<?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>226746</bug_id>
          
          <creation_ts>2021-06-07 17:16:24 -0700</creation_ts>
          <short_desc>Update wpt/tools to last Python 2 supporting version</short_desc>
          <delta_ts>2021-07-27 13:41:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>227255</dup_id>
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=222703</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Sneddon [:gsnedders]">gsnedders</reporter>
          <assigned_to name="Sam Sneddon [:gsnedders]">gsnedders</assigned_to>
          <cc>clopez</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1767604</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-06-07 17:16:24 -0700</bug_when>
    <thetext>Unlike the approach taken in Bug 222703 which made a much bigger jump forward, let us upgrade them to the last version that supports Python 2. This also has full support for Python 3, which means our next step can be &quot;simply&quot; changing the interpreter the server is running on, and then finally we can move beyond the revision Don used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767619</commentid>
    <comment_count>1</comment_count>
      <attachid>430796</attachid>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-06-07 17:56:12 -0700</bug_when>
    <thetext>Created attachment 430796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767747</commentid>
    <comment_count>2</comment_count>
      <attachid>430833</attachid>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-06-08 06:00:13 -0700</bug_when>
    <thetext>Created attachment 430833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769635</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-14 17:17:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/79315639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774859</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-07-05 14:58:20 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 227255 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430796</attachid>
            <date>2021-06-07 17:56:12 -0700</date>
            <delta_ts>2021-06-08 06:00:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226746-20210608015607.patch</filename>
            <type>text/plain</type>
            <size>7793579</size>
            <attacher name="Sam Sneddon [:gsnedders]">gsnedders</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTc4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWNmMDYwYTFmMzljMjc3NzBjZDI0YmMxNDQ4ZDQ2OWQw
MGI5MTk1YS4uZTAyMTI1ZmE1Njk4OTk4Y2M5ODI0MDNmMDdmNDFiZmZkYmNlMzhlNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIxLTA2LTA3ICBTYW0gU25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgVXBkYXRlIHdwdC90b29scyB0byBsYXN0IFB5dGhvbiAyIHN1cHBvcnRpbmcgdmVyc2lv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzQ2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZl
ci5weToKKyAgICAgICAgKFdlYlBsYXRmb3JtVGVzdFNlcnZlci5fX2luaXRfXyk6IFBhc3MgLS1w
eTIgd2hlbiBzdGFydGluZyB0aGUgc2VydmVyLCBsZXQgV1BUIGhhbmRsZSB0aGUgbG9naWMKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2Rvd25sb2FkZXIucHk6CisgICAgICAg
IChUZXN0RG93bmxvYWRlci51cGRhdGVfaW1wb3J0X2V4cGVjdGF0aW9ucyk6IE1hdGNoIFB5dGhv
biAzIGJlaGF2aW91ciB3aGVuIHNlcmlhbGlzaW5nIEpTT04KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5OgorICAgICAgICAoVGVzdEltcG9ydGVyLmltcG9y
dF90ZXN0cyk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIGEgcGF0aCB0aGF0IHByZXZpb3VzbHkgY29u
dGFpbmVkIGEgZmlsZSBpcyBub3cgYSBkaXJlY3RvcnkKKwogMjAyMS0wNi0wNyAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVcHN0cmVhbSBXZWJLaXQg
c3VwcG9ydCBmb3IgTGl2ZSBUZXh0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rf
c2VydmVyLnB5CmluZGV4IDhjNjc4OWRkMWQ4Mzg3Mjk2ZGNlYzkzNmYxMmRlYTQ3ZGFhNDhjZTYu
LjMzM2U0NjA3M2NiMzlmZGNiNDBiM2M2MjEzZDNmOTRiZTliNTYzZDYgMTAwNzU1Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rl
c3Rfc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Nl
cnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CkBAIC05NSwxMyArOTUsOCBAQCBjbGFz
cyBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFzZSk6
CiAgICAgICAgIHNlbGYuX2RvY19yb290X3BhdGggPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2Vs
Zi5fbGF5b3V0X3Jvb3QsIHNlbGYuX2RvY19yb290KQogICAgICAgICBzZWxmLl9jb25maWdfZmls
ZW5hbWUgPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fZG9jX3Jvb3RfcGF0aCwgImNvbmZp
Zy5qc29uIikKIAotICAgICAgICAjIEZJWE1FIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIyMjcwMwot
ICAgICAgICBweXRob25faW50ZXJwID0gc3lzLmV4ZWN1dGFibGUKLSAgICAgICAgaWYgc3lzLnZl
cnNpb25faW5mbyA+ICgzLCAwKToKLSAgICAgICAgICAgIHB5dGhvbl9pbnRlcnAgPSAncHl0aG9u
MicKLQogICAgICAgICB3cHRfZmlsZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nf
cm9vdF9wYXRoLCAid3B0LnB5IikKLSAgICAgICAgc2VsZi5fc3RhcnRfY21kID0gW3B5dGhvbl9p
bnRlcnAsIHdwdF9maWxlLCAic2VydmUiLCAiLS1jb25maWciLCBzZWxmLl9jb25maWdfZmlsZW5h
bWVdCisgICAgICAgIHNlbGYuX3N0YXJ0X2NtZCA9IFtzeXMuZXhlY3V0YWJsZSwgd3B0X2ZpbGUs
ICItLXB5MiIsICJzZXJ2ZSIsICItLWNvbmZpZyIsIHNlbGYuX2NvbmZpZ19maWxlbmFtZV0KIAog
ICAgICAgICBzZWxmLl9tYXBwaW5ncyA9IFtdCiAgICAgICAgIGNvbmZpZyA9IHdwdF9jb25maWdf
anNvbihwb3J0X29iaikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rl
c3RfZG93bmxvYWRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfZG93bmxv
YWRlci5weQppbmRleCA0M2JlMzJmYWYwMTUyMWNlZjg2N2Y0YTQyNjhhNjlkNWQzZmQxNDc1Li4w
NDc5YTE2ZGM5Yjc1M2UwOWQ1NzYwNjljZWMzNGUxNTU3YTA5NDExIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2Rvd25sb2FkZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVyLnB5CkBAIC0xMDgsNyArMTA4LDcgQEAg
Y2xhc3MgVGVzdERvd25sb2FkZXIob2JqZWN0KToKICAgICAgICAgaW1wb3J0X2xpbmVzID0ganNv
bi5sb2FkcyhzZWxmLl9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHNlbGYuaW1wb3J0X2V4cGVj
dGF0aW9uc19wYXRoKSkKICAgICAgICAgZm9yIHBhdGggaW4gdGVzdF9wYXRoczoKICAgICAgICAg
ICAgIGltcG9ydF9saW5lc1twYXRoXSA9ICdpbXBvcnQnCi0gICAgICAgIHNlbGYuX2ZpbGVzeXN0
ZW0ud3JpdGVfdGV4dF9maWxlKHNlbGYuaW1wb3J0X2V4cGVjdGF0aW9uc19wYXRoLCBqc29uLmR1
bXBzKGltcG9ydF9saW5lcywgc29ydF9rZXlzPVRydWUsIGluZGVudD00KSkKKyAgICAgICAgc2Vs
Zi5fZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUoc2VsZi5pbXBvcnRfZXhwZWN0YXRpb25zX3Bh
dGgsIGpzb24uZHVtcHMoaW1wb3J0X2xpbmVzLCBzb3J0X2tleXM9VHJ1ZSwgaW5kZW50PTQsIHNl
cGFyYXRvcnM9KCcsJywgJzogJykpKQogCiAgICAgZGVmIF9hZGRfdGVzdF9zdWl0ZV9wYXRocyhz
ZWxmLCB0ZXN0X3BhdGhzLCBkaXJlY3RvcnksIHdlYmtpdF9wYXRoKToKICAgICAgICAgZm9yIG5h
bWUgaW4gc2VsZi5fZmlsZXN5c3RlbS5saXN0ZGlyKGRpcmVjdG9yeSk6CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5weQppbmRleCA2MjhkYzY4YzE3MTU2Nzk3MTNl
ZTY3Mzg3NDRiMmE0NTAxYzZlZWUxLi42ZWY4MDJlYjI4ZjM2MzJiNjk0NGQ2MGNkNTEyODYzYTYy
NTk1NDFmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9y
dGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHkK
QEAgLTQ5NiwxNSArNDk2LDI3IEBAIGNsYXNzIFRlc3RJbXBvcnRlcihvYmplY3QpOgogCiAgICAg
ICAgICAgICAgICAgaWYgbm90KHNlbGYuZmlsZXN5c3RlbS5leGlzdHMoc2VsZi5maWxlc3lzdGVt
LmRpcm5hbWUobmV3X2ZpbGVwYXRoKSkpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmZpbGVz
eXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3Rvcnkoc2VsZi5maWxlc3lzdGVtLmRpcm5hbWUobmV3X2Zp
bGVwYXRoKSkKLQotICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLm9wdGlvbnMub3ZlcndyaXRl
IGFuZCBzZWxmLmZpbGVzeXN0ZW0uZXhpc3RzKG5ld19maWxlcGF0aCk6Ci0gICAgICAgICAgICAg
ICAgICAgIF9sb2cuaW5mbygnU2tpcHBpbmcgaW1wb3J0IG9mIGV4aXN0aW5nIGZpbGUgJyArIG5l
d19maWxlcGF0aCkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAj
IEZJWE1FOiBNYXliZSBkb2luZyBhIGZpbGUgZGlmZiBpcyBpbiBvcmRlciBoZXJlIGZvciBleGlz
dGluZyBmaWxlcz8KLSAgICAgICAgICAgICAgICAgICAgIyBJbiBvdGhlciB3b3JkcywgdGhlcmUn
cyBubyBzZW5zZSBpbiBvdmVyd3JpdGluZyBpZGVudGljYWwgZmlsZXMsIGJ1dAotICAgICAgICAg
ICAgICAgICAgICAjIHRoZXJlJ3Mgbm8gaGFybSBpbiBjb3B5aW5nIHRoZSBpZGVudGljYWwgdGhp
bmcuCi0gICAgICAgICAgICAgICAgICAgIF9sb2cuaW5mbygnSW1wb3J0aW5nOiAlcycsIG9yaWdf
ZmlsZXBhdGgpCi0gICAgICAgICAgICAgICAgICAgIF9sb2cuaW5mbygnICAgICAgIEFzOiAlcycs
IG5ld19maWxlcGF0aCkKKyAgICAgICAgICAgICAgICBlbGlmIG5vdCBzZWxmLmZpbGVzeXN0ZW0u
aXNkaXIoc2VsZi5maWxlc3lzdGVtLmRpcm5hbWUobmV3X2ZpbGVwYXRoKSk6CisgICAgICAgICAg
ICAgICAgICAgIGlmIHNlbGYub3B0aW9ucy5vdmVyd3JpdGU6CisgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLmZpbGVzeXN0ZW0ucmVtb3ZlKHNlbGYuZmlsZXN5c3RlbS5kaXJuYW1lKG5ld19m
aWxlcGF0aCkpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg
ICAgICBfbG9nLmluZm8oJ1NraXBwaW5nIGltcG9ydCBhcyBwYXJlbnQgZGlyZWN0b3J5IGlzblwn
dCBhIGRpcmVjdG9yeTogJyArIG5ld19maWxlcGF0aCkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmZpbGVzeXN0ZW0uZXhpc3RzKG5l
d19maWxlcGF0aCk6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLm9wdGlvbnMub3Zl
cndyaXRlOgorICAgICAgICAgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCdTa2lwcGluZyBpbXBv
cnQgb2YgZXhpc3RpbmcgZmlsZSAnICsgbmV3X2ZpbGVwYXRoKQorICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBzZWxmLmZpbGVzeXN0ZW0u
aXNkaXIobmV3X2ZpbGVwYXRoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmlsZXN5
c3RlbS5ybXRyZWUobmV3X2ZpbGVwYXRoKQorICAgICAgICAgICAgICAgICAgICBlbGlmIG5vdCBz
ZWxmLmZpbGVzeXN0ZW0uaXNmaWxlKG5ld19maWxlcGF0aCk6CisgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLmZpbGVzeXN0ZW0ucmVtb3ZlKG5ld19maWxlcGF0aCkKKworICAgICAgICAgICAg
ICAgICMgRklYTUU6IE1heWJlIGRvaW5nIGEgZmlsZSBkaWZmIGlzIGluIG9yZGVyIGhlcmUgZm9y
IGV4aXN0aW5nIGZpbGVzPworICAgICAgICAgICAgICAgICMgSW4gb3RoZXIgd29yZHMsIHRoZXJl
J3Mgbm8gc2Vuc2UgaW4gb3ZlcndyaXRpbmcgaWRlbnRpY2FsIGZpbGVzLCBidXQKKyAgICAgICAg
ICAgICAgICAjIHRoZXJlJ3Mgbm8gaGFybSBpbiBjb3B5aW5nIHRoZSBpZGVudGljYWwgdGhpbmcu
CisgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCdJbXBvcnRpbmc6ICVzJywgb3JpZ19maWxlcGF0
aCkKKyAgICAgICAgICAgICAgICBfbG9nLmluZm8oJyAgICAgICBBczogJXMnLCBuZXdfZmlsZXBh
dGgpCiAKICAgICAgICAgICAgICAgICAjIE9ubHkgaHRtbCwgeG1sLCBvciBjc3Mgc2hvdWxkIGJl
IGNvbnZlcnRlZAogICAgICAgICAgICAgICAgICMgRklYTUU6IEV2ZW50dWFsbHksIHNvIHNob3Vs
ZCBqcyB3aGVuIHN1cHBvcnQgaXMgYWRkZWQgZm9yIHRoaXMgdHlwZSBvZiBjb252ZXJzaW9uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYzljNGE1ODE5M2QxNDc5YjlmZTZmZTQxNDQ4MzE3Y2RlNTRmNjllMy4uMDg3NTM5YTRl
NGUxN2YwYzFhNGJhNGUwOWE5YTI2NWNlOGVmOWM4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisy
MDIxLTA2LTA3ICBTYW0gU25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CisKKyAgICAgICAg
VXBkYXRlIHdwdC90b29scyB0byBsYXN0IFB5dGhvbiAyIHN1cHBvcnRpbmcgdmVyc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzQ2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVpbXBvcnQgRmV0
Y2gsIHVwZGF0ZSBleHBlY3RhdGlvbnMgZm9yIHRoaXMuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L3JlcXVlc3QtaGVhZGVycy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0
Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiB0ZXN0cy1vcHRpb25zLmpzb246CisKIDIwMjEtMDYtMDcg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBzdHJl
YW0gV2ViS2l0IHN1cHBvcnQgZm9yIExpdmUgVGV4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggYmIyY2RhN2NiNTEzZmE2N2IwMTgzMDE3MDYzMjg2YTk4ZDQ5ZWU0ZC4uZGQ3NGI4
M2Y5MzYwZTY1YTY0NmZhNzljODJiZDE4YTAyMDYwYWJlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDYtMDcgIFNhbSBTbmVkZG9uICA8Z3Nu
ZWRkZXJzQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgd3B0L3Rvb2xzIHRvIGxhc3QgUHl0
aG9uIDIgc3VwcG9ydGluZyB2ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjY3NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsbHksIGR1ZSB0byBjaGFuZ2VzIGluIHRoZSB3cHRz
ZXJ2ZSBBUEksIHJlaW1wb3J0IHdwdC9mZXRjaAorCisgICAgICAgICogcmVzb3VyY2VzL1Rlc3RS
ZXBvc2l0b3JpZXM6IFVwZGF0ZSByZXZpc2lvbiB0byBmNTQ3MjRhYWZhLCBtb3ZlIGFsbCBwYXRo
cyB0byBpbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0
LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAgICBNb3ZlcyBmcm9tIGFib3ZlOyBhZGQgYSBidW5j
aCBtb3JlIGFzICJza2lwIiB0aGF0IHdlIGRvbid0IGltcG9ydDsgcmVkdWNlIGR1cGxpY2F0ZXMu
CisgICAgICAgICogcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb246IGZyb20gZmV0Y2ggcmVp
bXBvcnQKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvKjogcmVpbXBvcnQKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvKjogcmVpbXBvcnQKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd3B0OiByZWltcG9ydAorCiAyMDIxLTA2LTA3ICBJbWFub2wgRmVy
bmFuZGV6ICA8aWZlcm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVzZSAzRCBwb2ludHMg
dG8gbWFwIHRoZSBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSBib3VuZHMgdHJhbnNmb3JtCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBiYzcyZWMzZTNkNGFhYjhkYzdlY2ZiMzc4MGI5ZGUyMzFkY2Nj
MmFmLi5lMGY0MDgyYjhlYTZiYjc4M2Q0ZjU2ODU1YWQ5ZGMzYWNkODk0ZjU1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTk1NCw3ICs5NTQsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvYmFzaWMtYXV0aC1jYWNoZS10ZXN0Lmh0bWwgWyBJbQogIyBG
ZXRjaCBmZWF0dXJlcyB0aGF0IGFyZSBub3QgaW1wbGVtZW50ZWQuCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcmIgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YSBbIFNraXAgXQogCiAjIFRoZXNlIGZldGNo
IHRlc3RzIHRpbWUgb3V0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L2Rlc3RpbmF0aW9uL2ZldGNoLWRlc3RpbmF0aW9uLmh0dHBzLmh0bWwgWyBTa2lw
IF0KQEAgLTE0MDMsOCArMTQwMiw2IEBAIHdlYmtpdC5vcmcvYi8xNjg0NDggaHR0cC93cHQvcmVz
b3VyY2UtdGltaW5nL3J0LXNoYXJlZC1yZXNvdXJjZS1pbi13b3JrZXJzLmh0bWwKIAogd2Via2l0
Lm9yZy9iLzE2MTMxMiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1saW5rLWVsZW1lbnQvZG9jdW1lbnQtd2l0aG91dC1i
cm93c2luZy1jb250ZXh0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5odG1sIFsgRmFpbHVyZSBQ
YXNzIF0KLQogIyBOZXcgVzNDIHJlZiB0ZXN0cyB0aGF0IGFyZSBmYWlsaW5nLgogd2Via2l0Lm9y
Zy9iLzE0ODg1NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvdGhlLXZpZGVvLWVsZW1lbnQvdmlkZW9faW5pdGlhbGx5X3BhdXNl
ZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvc3ZnL2ludHJpbnNpY3NpemUvaW50
cmluc2ljc2l6ZS1zdmctaW1hZ2UudGVudGF0aXZlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvVGVzdFJlcG9z
aXRvcmllcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvVGVzdFJlcG9zaXRv
cmllcwppbmRleCA5YjNmODUzYzBkMTg4ZmE2MDEzMWE2YzIyZTIzYzg2Y2VhZDU3NTY1Li42MzFl
MzA1NzgzZmRhNGNlZWY0MDgyNmY1MGYzNTU3MTBhYjQ3NjA0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzCkBAIC0yLDIyICsy
LDkgQEAKICAgICB7CiAgICAgICAgICJuYW1lIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCiAgICAg
ICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0
IiwKLSAgICAgICAgInJldmlzaW9uIjogIjAzMTNkOWYiLAotICAgICAgICAicGF0aHNfdG9fc2tp
cCI6IFsKLSAgICAgICAgICAgICJjb25mb3JtYW5jZS1jaGVja2VycyIsCi0gICAgICAgICAgICAi
ZG9jcyIsCi0gICAgICAgICAgICAib2xkLXRlc3RzIiwKLSAgICAgICAgICAgICJyZXNvdXJjZXMv
dGVzdGhhcm5lc3MuY3NzIiwKLSAgICAgICAgICAgICJyZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiCi0gICAgICAgIF0sCi0gICAgICAgICJwYXRoc190b19pbXBvcnQiOiBbCi0gICAgICAg
ICAgICAiY29tbW9uIiwKLSAgICAgICAgICAgICJjb25maWcuZGVmYXVsdC5qc29uIiwKLSAgICAg
ICAgICAgICJmb250cyIsCi0gICAgICAgICAgICAiaW1hZ2VzIiwKLSAgICAgICAgICAgICJyZXNv
dXJjZXMiLAotICAgICAgICAgICAgInNlcnZlLnB5IgotICAgICAgICBdLAorICAgICAgICAicmV2
aXNpb24iOiAiZjU0NzI0YWFmYSIsCisgICAgICAgICJwYXRoc190b19za2lwIjogW10sCisgICAg
ICAgICJwYXRoc190b19pbXBvcnQiOiBbXSwKICAgICAgICAgImltcG9ydF9vcHRpb25zIjogWyJn
ZW5lcmF0ZV9pbml0X3B5Il0KICAgICB9CiBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDdk
N2QyM2MxNzczOTkyYTk1NzBhYTYwMmEzMTk0ZTUwN2RkZjg2NGQuLjY5MjQyNTVlMWY4MjZmN2My
NmMyOTg0MzkwNGI0NjMwNGJhMzc4ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCkBAIC0xLDQ1
MSArMSw0NTAgQEAKIHsKLSAgICAiTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pbWctZWxlbWVudC8i
OiAiaW1wb3J0IiwgCi0gICAgImFwbmciOiAiaW1wb3J0IiwgCi0gICAgImNzcy9jc3MtYW5pbWF0
aW9ucyI6ICJpbXBvcnQiLCAKLSAgICAiY3NzL2Nzcy1ib3giOiAiaW1wb3J0IiwgCi0gICAgImNz
cy9jc3MtY29sb3IiOiAiaW1wb3J0IiwgCi0gICAgImNzcy9jc3MtZmxleGJveCI6ICJpbXBvcnQi
LCAKLSAgICAiY3NzL2Nzcy1tYXNraW5nL2NsaXAtcGF0aC8iOiAiaW1wb3J0IiwgCi0gICAgImNz
cy9jc3MtbWFza2luZy9jbGlwLXBhdGgvY2xpcC1wYXRoLXdpdGgtem9vIjogImltcG9ydCIsIAot
ICAgICJjc3MvY3NzLW1hc2tpbmcvY2xpcC1wYXRoL2NsaXAtcGF0aC13aXRoLXpvb20qIjogImlt
cG9ydCIsIAotICAgICJjc3MvY3NzLW1hc2tpbmcvY2xpcC1wYXRoL2NsaXAtcGF0aC13aXRoLXpv
b20tKiI6ICJpbXBvcnQiLCAKLSAgICAiY3NzL2Nzcy1tdWx0aWNvbCI6ICJpbXBvcnQiLCAKLSAg
ICAiY3NzL2Nzcy1wb3NpdGlvbiI6ICJpbXBvcnQiLCAKLSAgICAiY3NzL2Nzcy1zaGFwZXMiOiAi
aW1wb3J0IiwgCi0gICAgImNzcy9jc3Mtc2l6aW5nIjogImltcG9ydCIsIAotICAgICJjc3MvY3Nz
LXN5bnRheCI6ICJpbXBvcnQiLCAKLSAgICAiY3NzL2Nzcy10ZXh0LWRlY29yIjogImltcG9ydCIs
IAotICAgICJjc3MvY3NzLXZhbHVlcyI6ICJpbXBvcnQiLCAKLSAgICAiY3NzL2dlb21ldHJ5Ijog
ImltcG9ydCIsIAotICAgICJjc3Mvc2VsZWN0b3JzIjogImltcG9ydCIsIAotICAgICJjc3Mvc3Vw
cG9ydCI6ICJpbXBvcnQiLCAKLSAgICAiY3VzdG9tLWVsZW1lbnRzIjogImltcG9ydCIsIAotICAg
ICJkZW5zaXR5LXNpemUtY29ycmVjdGlvbiI6ICJpbXBvcnQiLCAKLSAgICAiZW5jcnlwdGVkLW1l
ZGlhIjogImltcG9ydCIsIAotICAgICJwYWludC10aW1pbmcvIjogImltcG9ydCIsIAotICAgICJw
YWludC10aW1pbmcvZmNwLW9ubHkiOiAiaW1wb3J0IiwgCi0gICAgInBhaW50LXRpbWluZy9yZXNv
dXJjZXMiOiAiaW1wb3J0IiwgCi0gICAgInBhaW50LXRpbWluZy9yZXNvdXJjZXMvIjogImltcG9y
dCIsIAotICAgICJyZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiOiAiaW1wb3J0IiwgCi0gICAgInNo
YWRvdy1kb20iOiAiaW1wb3J0IiwgCi0gICAgInN0cmVhbXMiOiAiaW1wb3J0IiwgCi0gICAgInRv
b2xzIjogImltcG9ydCIsIAotICAgICJ3ZWItYW5pbWF0aW9ucyI6ICJpbXBvcnQiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL0RPTS1wYXJzaW5nIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL0RPTUV2ZW50cyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9G
aWxlQVBJIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJIjogImltcG9y
dCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURMIjogImltcG9ydCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2ludmFsaWQiOiAic2tpcCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvV2ViSURML3ZhbGlkIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL1hNTEh0dHBSZXF1ZXN0IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3QvYWJvcnQtYWZ0ZXItc3RvcC5odG0iOiAic2tpcCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvZXZlbnQtZXJyb3Itb3JkZXIuc3ViLmh0bWwi
OiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvZXZlbnQt
dGltZW91dC1vcmRlci5odG0iOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvWE1M
SHR0cFJlcXVlc3QvcHJlc2VydmUtdWEtaGVhZGVyLW9uLXJlZGlyZWN0Lmh0bSI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWFmdGVyLXNldHRp
bmctZG9jdW1lbnQtZG9tYWluLmh0bSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWF1dGhlbnRpY2F0aW9uLWJhc2ljLWNvcnMtbm90LWVuYWJs
ZWQuaHRtIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0
L3NlbmQtYXV0aGVudGljYXRpb24tYmFzaWMtc2V0cmVxdWVzdGhlYWRlci1leGlzdGluZy1zZXNz
aW9uLmh0bSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hY2NlbGVyb21ldGVy
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2FtYmllbnQtbGlnaHQiOiAic2tp
cCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYW5pbWF0aW9uLXRpbWluZyI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hbm5vdGF0aW9uLW1vZGVsIjogInNraXAiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2Fubm90YXRpb24tcHJvdG9jb2wiOiAic2tpcCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvYW5ub3RhdGlvbi12b2NhYiI6ICJza2lwIiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9hcG5nIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2FwcC11cmkiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXNzdW1wdGlvbnMi
OiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0IjogImltcG9y
dCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXV4Y2xpY2siOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaCI6ICJpbXBvcnQiLCAKLSAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2JhdHRlcnktc3RhdHVzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2JlYWNvbiI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Js
dWV0b290aCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9icm93c2VyLXBheW1l
bnQtYXBpIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2NsZWFyLXNpdGUtZGF0
YSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jbGlwYm9hcmQiOiAic2tpcCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY2xpcGJvYXJkLWFwaXMiOiAiaW1wb3J0IiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb21tb24iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9jb21wYXQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9j
b25zb2xlIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1
cml0eS1wb2xpY3kiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb29raWVz
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY29va2llcy9zZWN1cmUiOiAiaW1w
b3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb3JlLWFhbSI6ICJza2lwIiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9jb3JzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy1iYWNr
Z3JvdW5kcyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MtZm9udC1kaXNw
bGF5IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy1mb250LWxvYWRpbmci
OiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzLWZvbnRzIjogInNraXAiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy1wYWludC1hcGkiOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzLXNjb3BpbmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzLXNjcm9sbC1hbmNob3JpbmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzLXRpbWluZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MtdHlwZWQtb20iOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzLXZhbHVl
cyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvV09GRjIiOiAiaW1wb3J0
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFsaWduIjogImltcG9ydCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRpb25zIjogImltcG9ydCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRpb25zLyI6ICJpbXBvcnQiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYmFja2dyb3VuZHMiOiAiaW1wb3J0Iiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNhc2NhZGUiOiAiaW1wb3J0IiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yIjogImltcG9ydCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluIjogImltcG9ydCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250ZW50IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb3VudGVyLXN0eWxlcyI6ICJpbXBvcnQiLCAKLSAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZGlzcGxheSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZWFzaW5nIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1mbGV4Ym94IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1mb250LWxvYWRpbmciOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWZvbnRzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1mb250cy9tYXRoLXNjcmlwdC1sZXZlbC1hbmQtbWF0aC1zdHlsZS8iOiAiaW1w
b3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQiOiAiaW1wb3J0Iiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvYWJzcG9zIjogImltcG9ydCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2FsaWdubWVudC8iOiAiaW1w
b3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0
aW9uLyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9n
cmlkLWl0ZW1zLyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Z3JpZC9sYXlvdXQtYWxnb3JpdGhtIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1ncmlkL2xheW91dC1hbGdvcml0aG0vIjogImltcG9ydCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3BhcnNpbmcvIjogImltcG9ydCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1pbWFnZXMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWxpc3RzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1saXN0cy9wYXJzaW5nIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1sb2dpY2FsIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtb3ZlcmZsb3ciOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZpb3IiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaSI6ICJpbXBvcnQiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtcHNldWRvIjogImltcG9ydCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nIjogImltcG9ydCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcCI6ICJpbXBvcnQiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzIjogImltcG9ydCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFwZXMiOiAiaW1wb3J0IiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYXBlcy90ZXN0LXBsYW4vaW5kZXguaHRtbCI6ICJz
a2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9hc3BlY3QtcmF0
aW8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRleHQiOiAi
aW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aSI6ICJpbXBvcnQi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFyaWFibGVzIjogImltcG9ydCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13aWxsLWNoYW5nZSI6ICJpbXBvcnQi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2RlcyI6ICJpbXBv
cnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbSI6ICJpbXBvcnQiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3LyI6ICJpbXBvcnQiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRyeS8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvbWVkaWFxdWVyaWVzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL3JlZmVyZW5jZSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9yZXNvdXJjZXMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9jc3Mvc2Nyb2xsLXNuYXAiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9j
c3Mvc2VsZWN0b3JzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3N1
cHBvcnQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
djAiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9jcyI6ICJpbXBvcnQiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ldmVudHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVFbGVtZW50LW5hbWVzcGFjZS10ZXN0cy9lbXB0
eS5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1
bWVudC1jcmVhdGVFbGVtZW50LW5hbWVzcGFjZS10ZXN0cy9lbXB0eS5zdmciOiAic2tpcCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQt
bmFtZXNwYWNlLXRlc3RzL2VtcHR5LnhodG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVFbGVtZW50LW5hbWVzcGFjZS10ZXN0cy9l
bXB0eS54bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0Rv
Y3VtZW50LWNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbi54aHRtbCI6ICJza2lwIiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05h
bWUueGh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0Vs
ZW1lbnQtY2hpbGRFbGVtZW50LW51bGwtc3ZnLnN2ZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1jaGlsZEVsZW1lbnQtbnVsbC5zdmciOiAic2tp
cCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVt
ZW50LW51bGwueGh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQtZHluYW1pYy1hZGQtc3ZnLnN2ZyI6ICJza2lw
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1jaGlsZEVsZW1l
bnRDb3VudC1keW5hbWljLWFkZC5zdmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQtZHluYW1pYy1yZW1vdmUtc3Zn
LnN2ZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVu
dC1jaGlsZEVsZW1lbnRDb3VudC1keW5hbWljLXJlbW92ZS5zdmciOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQtZHlu
YW1pYy1yZW1vdmUueGh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQtbm9jaGlsZC1zdmcuc3ZnIjogInNraXAi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWNoaWxkRWxlbWVu
dENvdW50LW5vY2hpbGQuc3ZnIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9FbGVtZW50LWNoaWxkRWxlbWVudENvdW50LXN2Zy5zdmciOiAic2tpcCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQu
c3ZnIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50
LWNoaWxkRWxlbWVudENvdW50LnhodG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9FbGVtZW50LWZpcnN0RWxlbWVudENoaWxkLWVudGl0eS5zdmciOiAic2tp
cCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZmlyc3RFbGVt
ZW50Q2hpbGQtZW50aXR5LnhodG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ub2Rlcy9FbGVtZW50LWZpcnN0RWxlbWVudENoaWxkLW5hbWVzcGFjZS1zdmcuc3ZnIjog
InNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWZpcnN0
RWxlbWVudENoaWxkLW5hbWVzcGFjZS5zdmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZmlyc3RFbGVtZW50Q2hpbGQtbmFtZXNwYWNlLnhodG1s
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWZp
cnN0RWxlbWVudENoaWxkLXN2Zy5zdmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL0VsZW1lbnQtZmlyc3RFbGVtZW50Q2hpbGQuc3ZnIjogInNraXAiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWxhc3RFbGVtZW50Q2hpbGQt
c3ZnLnN2ZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxl
bWVudC1sYXN0RWxlbWVudENoaWxkLnN2ZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1sYXN0RWxlbWVudENoaWxkLnhodG1sIjogInNraXAiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LW5leHRFbGVtZW50U2li
bGluZy1zdmcuc3ZnIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9FbGVtZW50LW5leHRFbGVtZW50U2libGluZy5zdmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtcHJldmlvdXNFbGVtZW50U2libGluZy1zdmcu
c3ZnIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50
LXByZXZpb3VzRWxlbWVudFNpYmxpbmcuc3ZnIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LXNpYmxpbmdFbGVtZW50LW51bGwtc3ZnLnN2ZyI6ICJz
a2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1zaWJsaW5n
RWxlbWVudC1udWxsLnN2ZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvRWxlbWVudC1zaWJsaW5nRWxlbWVudC1udWxsLnhodG1sIjogInNraXAiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLW5vZGVOYW1lLnhodG1sIjogInNraXAi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9QYXJlbnROb2RlLXF1ZXJ5U2Vs
ZWN0b3ItQWxsLnhodCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJh
dmVyc2FsIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNh
bC91bmZpbmlzaGVkIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBhcnNp
bmciOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb214cGF0aCI6ICJpbXBv
cnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbXhwYXRoL3htbF94cGF0aF9ydW5uZXIu
aHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb214cGF0aC94bWxfeHBh
dGhfdGVzdHMueG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RwdWItYWFt
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RwdWItYXJpYSI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9lZGl0aW5nIjogInNraXAiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2VuY29kaW5nIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvZW5jcnlwdGVkLW1lZGlhIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jcnlwdGVkLW1lZGlhL0dvb2dsZSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9lbnRyaWVzLWFwaSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50
c291cmNlIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZXh0LXhodG1sLXB1
YmlkIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZlYXR1cmUtcG9saWN5Ijog
InNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZlYXR1cmUtcG9saWN5L3Jlc291cmNl
cyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZlYXR1cmUtcG9saWN5L3Jl
c291cmNlcy8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaCI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaSI6ICJpbXBvcnQiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzIjogImltcG9ydCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0IjogImltcG9ydCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcyI6ICJpbXBvcnQiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL29yaWdpbiI6ICJpbXBvcnQiLCAKLSAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZSI6ICJpbXBvcnQiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2Z1bGxzY3JlZW4iOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvZ2FtZXBhZCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9nZW5l
cmljLXNlbnNvciI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlv
bi1BUEkiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9neXJvc2NvcGUiOiAi
c2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZSI6ICJpbXBvcnQiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sLWltcG9ydHMiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC1sb25nZGVzYyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sLW1l
ZGlhLWNhcHR1cmUiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93
c2VycyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
YnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNhbC9icm93c2luZ19jb250ZXh0X25hbWUu
aHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jy
b3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwvYnJvd3NpbmdfY29udGV4dF9uYW1lX2Ny
b3NzX29yaWdpbl8yLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL2hpc3RvcnktdHJhdmVyc2FsL2Jyb3dzaW5nX2Nv
bnRleHRfbmFtZV9jcm9zc19vcmlnaW5fMy5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS9qb2ludC1zZXNzaW9uLWhpc3RvcnkiOiAi
c2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3Ro
ZS1oaXN0b3J5LWludGVyZmFjZS8wMDEuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlLzAwMi5o
dG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlz
dG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvY29tYmluYXRpb25faGlzdG9yeV8wMDIuaHRtbCI6
ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rvcnkv
dGhlLWhpc3RvcnktaW50ZXJmYWNlL2NvbWJpbmF0aW9uX2hpc3RvcnlfMDAzLmh0bWwiOiAic2tp
cCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1o
aXN0b3J5LWludGVyZmFjZS90cmF2ZXJzZV90aGVfaGlzdG9yeV8zLmh0bWwiOiAic2tpcCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlv
bi1pbnRlcmZhY2UvYXNzaWduX2FmdGVyX2xvYWQuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFj
ZS9hc3NpZ25fYmVmb3JlX2xvYWQuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlv
bl9hc3NpZ24uaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL29mZmxpbmUvYXBwbGljYXRpb24tY2FjaGUtYXBpIjogInNraXAiLCAKLSAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3Rz
L2Nyb3NzLW9yaWdpbi1vYmplY3RzLnN1Yi5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvc2FuZGJveGluZyI6ICJza2lwIiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0IjogImltcG9ydCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL2F1eGlsaWFy
eS1icm93c2luZy1jb250ZXh0cy8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29udGV4dC1maXJzdC1jcmVhdGVkLnho
dG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2lu
ZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2luZy1jb250ZXh0cy9m
cmFtZUVsZW1lbnQuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL3dpbmRvd3MvdGFyZ2V0aW5nLWNyb3NzLW9yaWdpbi1uZXN0ZWQtYnJvd3Npbmct
Y29udGV4dHMuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2Vs
ZW1lbnQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9l
bGVtZW50L3dpZGUtZ2FtdXQtY2FudmFzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvcmVzb3VyY2VzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvdG9vbHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2RvbSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvZG9tL2RvY3VtZW50cy9kb20tdHJlZS1hY2Nlc3NvcnMvRG9jdW1lbnQuY3VycmVudFNj
cmlwdC5zdWIuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Rv
bS9lbGVtZW50cy9yZXF1aXJlbWVudHMtcmVsYXRpbmctdG8tYmlkaXJlY3Rpb25hbC1hbGdvcml0
aG0tZm9ybWF0dGluZy1jaGFyYWN0ZXJzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvZG9tL3JlZmxlY3Rpb24tb3JpZ2luYWwuaHRtbCI6ICJza2lwIiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2VkaXRpbmciOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2lhbmEiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2luZnJhc3RydWN0dXJlIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3No
YXJlZC1hcnJheS1idWZmZXJzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvaW50ZXJhY3Rpb24iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2ludGVyYWN0aW9uL2ZvY3VzL3RoZS1hdXRvZm9jdXMtYXR0cmlidXRlIjogImltcG9ydCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9vYnNvbGV0ZSI6ICJza2lwIiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZv
ci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMvIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9yZXNvdXJjZXMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1tZXRhLWVsZW1lbnQvcHJh
Z21hLWRpcmVjdGl2ZXMiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLW1ldGEtZWxlbWVudC9wcmFnbWEtZGlyZWN0
aXZlcy9hdHRyLW1ldGEtaHR0cC1lcXVpdi1yZWZyZXNoIjogImltcG9ydCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudCI6ICJpbXBvcnQi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQtMCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L2ltYWdlLW1hcHMvaW1hZ2UtbWFwLXByb2Nlc3NpbmctbW9kZWwiOiAi
c2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy9hdWRpb19sb29wX2Jhc2UuaHRtbCI6ICJza2lwIiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL2Vycm9yLWNvZGVzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvbG9hZGlu
Zy10aGUtbWVkaWEtcmVzb3VyY2UiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9sb2NhdGlvbi1v
Zi10aGUtbWVkaWEtcmVzb3VyY2UvY3VycmVudFNyYy5odG1sIjogInNraXAiLCAKLSAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvbmV0d29ya1N0YXRlX2R1cmluZ19wcm9ncmVzcy5odG1sIjogInNraXAiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvb2Zmc2V0cy1pbnRvLXRoZS1tZWRpYS1yZXNvdXJjZS9jdXJyZW50VGltZS5odG1s
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1
c2UtcmVtb3ZlLWZyb20tZG9jdW1lbnQtbmV0d29ya1N0YXRlLmh0bWwiOiAic2tpcCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9wbGF5LWluLWRldGFjaGVkLWRv
Y3VtZW50Lmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeS1zdGF0ZXMvYXV0b3Bs
YXkuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3NlZWtpbmcvc2Vlay10by1jdXJyZW50
VGltZS5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvc2Vla2luZy9zZWVrLXRvLW1heC12
YWx1ZS5odG0iOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9zZWVraW5nL3NlZWstdG8tbmVnYXRp
dmUtdGltZS5odG0iOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9zeW5jaHJvbmlzaW5nLW11bHRp
cGxlLW1lZGlhLWVsZW1lbnRzL21lZGlhLWNvbnRyb2xsZXJzL3Rhc2stc291cmNlLmh0bWwiOiAi
c2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90cmFjay1lbGVtZW50IjogImltcG9ydCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy90cmFjay90cmFjay1lbGVtZW50L2NvcnMiOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy92aWRlb19sb29wX2Jhc2UuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1hcmVhLWVsZW1lbnQv
YXJlYV9ub2hyZWYueGh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtYXJlYS1lbGVtZW50L3Rlc3QtYXJlYS54
aHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxlbWVudCI6ICJpbXBvcnQiLCAKLSAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZh
cy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS53aGl0ZXNwYWNlLmh0bWwiOiAic2tpcCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC90aGUtZW1iZWQtZWxlbWVudC9lbWJlZC1yZXByZXNlbnQtbm90aGluZy0wNC5odG1sIjogInNr
aXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaW1nLWVsZW1lbnQvIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC90aGUtaW1nLWVsZW1lbnQvZGVjb2RlIjogInNraXAiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVt
ZW50L3JlbGV2YW50LW11dGF0aW9ucy5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L3Vw
ZGF0ZS10aGUtaW1hZ2UtZGF0YSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1vYmplY3QtZWxlbWVudC9vYmplY3Qt
ZXZlbnRzLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdC1ldmVudC5odG1sIjogInNraXAi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVs
ZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0UmFuZ2VUZXh0Lmh0bWwiOiAic2tpcCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLXRleHRh
cmVhLWVsZW1lbnQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtZGV0YWlscy1lbGVtZW50L3RvZ2dsZUV2
ZW50Lmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvdGhlLXN1bW1hcnktZWxlbWVudCI6ICJza2lwIiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9saW5rcy9kb3dubG9hZGluZy1y
ZXNvdXJjZXMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9saW5rcy9mb2xsb3dpbmctaHlwZXJsaW5rcyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9saW5rcy9saW5rcy1jcmVhdGVkLWJ5LWEtYW5kLWFy
ZWEtZWxlbWVudHMiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2V4ZWN1dGlvbi10aW1pbmciOiAi
c2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9z
Y3JpcHQtZm9yLWV2ZW50LnhodG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9zY3JpcHQtdGV4
dC54aHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy90YWJ1bGFyLWRhdGEiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy90YWJ1bGFyLWRhdGEvcHJvY2Vzc2luZy1tb2RlbC0xIjogImltcG9ydCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRp
Y3MvdGhlLWRhdGEtZWxlbWVudCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3N5bnRheCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvdGhl
LXhodG1sLXN5bnRheCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
dGhlLXhodG1sLXN5bnRheC9wYXJzaW5nLXhodG1sLWRvY3VtZW50cyI6ICJpbXBvcnQiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvdG9vbHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3VzZXItYWN0aXZhdGlvbiI6ICJpbXBvcnQiLCAKLSAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9keW5hbWljLWluc2VydGlvbiI6ICJpbXBvcnQi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9keW5hbWljLW1hcmt1
cC1pbnNlcnRpb24iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dl
YmFwcGFwaXMvaWRsZS1jYWxsYmFja3MiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1sb29wcy9taWNyb3Rhc2tfYWZ0ZXJf
cmFmLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBh
cGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvdW5oYW5kbGVkLXByb21pc2UtcmVqZWN0
aW9ucyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMv
dGhlLXdpbmRvd29yd29ya2VyZ2xvYmFsc2NvcGUtbWl4aW4iOiAiaW1wb3J0IiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9odHRwIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2ltYWdlLWRlY29kZXMiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2Vi
aXRtYXAtcmVuZGVyaW5nY29udGV4dCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2ltYWdlcyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3Ry
dWN0dXJlIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5uZXJUZXh0Ijog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW5wdXQtZXZlbnRzIjogInNraXAi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyZmFjZXMiOiAiaW1wb3J0IiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIiOiAiaW1wb3J0IiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9qcyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9rZXlib2FyZC1sb2NrIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2xv
YWRpbmcvbGF6eWxvYWQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9sb25n
dGFzay10aW1pbmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWFnbmV0b21l
dGVyIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbCI6ICJpbXBvcnQi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLWNhcGFiaWxpdGllcyI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UiOiAiaW1wb3J0IiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYWNhcHR1cmUtaW1hZ2UiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvbWljcm9kYXRhIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL21pbWVz
bmlmZiI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL21peGVkLWNvbnRlbnQi
OiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbXN0LWNvbnRlbnQtaGludCI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL25hdmlnYXRpb24tdGltaW5nIjogInNr
aXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL25ldGluZm8iOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL29sZC10ZXN0cyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9vcmllbnRhdGlvbi1ldmVudCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9v
cmllbnRhdGlvbi1zZW5zb3IiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGFn
ZS12aXNpYmlsaXR5IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQt
dGltaW5nIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtaGFuZGxl
ciI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LW1ldGhvZC1iYXNp
Yy1jYXJkIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtbWV0aG9k
LWlkIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdCI6
ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BlcmZvcm1hbmNlLXRpbWVsaW5l
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BpY3R1cmUtaW4tcGljdHVyZSI6
ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMiOiAiaW1w
b3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVybG9jayI6ICJza2lwIiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wcmVsb2FkIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3ByZXNlbnRhdGlvbi1hcGkiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvcHJvZ3Jlc3MtZXZlbnRzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L3Byb3hpbWl0eSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9xdWlya3MtbW9k
ZSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9xdWlya3MvdW5pdGxlc3MtbGVu
Z3RoIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcmVmZXJyZXItcG9saWN5
IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcmVtb3RlLXBsYXliYWNrIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjayI6
ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Jlc2l6ZS1vYnNlcnZlciI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Jlc2l6ZS1vYnNlcnZlci8iOiAiaW1w
b3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10aW1pbmciOiAiaW1wb3J0
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMiOiAiaW1wb3J0IiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvY2hyb21pdW0iOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QiOiAic2tpcCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvc2NyZWVuLW9yaWVudGF0aW9uIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3Njcm9sbC1hbmNob3JpbmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvc2Nyb2xsLWludG8tdmlldyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9zZWN1cmUtY29udGV4dHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9z
ZWxlY3Rpb24iOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2VsZWN0b3JzIjog
InNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlbGVjdG9ycy1hcGkiOiAic2tpcCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZyI6ICJpbXBvcnQiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2VycyI6ICJpbXBvcnQiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3VudHJpYWdlZCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9zcGVlY2gtYXBpIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvc3RhdGljcmFuZ2UiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc3RvcmFn
ZSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zIjogImltcG9ydCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy93cml0YWJsZS1zdHJlYW1zIjogInNr
aXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3N1YnJlc291cmNlLWludGVncml0eSI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3N2ZyI6ICJpbXBvcnQiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3N2Zy1hYW0iOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvdGVzdC9odG1sL2luZnJhc3RydWN0dXJlIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvdGVzdGhhcm5lc3NfcnVubmVyLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9fX2luaXRfXy5weSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2h0bWw1bGliIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbG9jYWxwYXRocy5weSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL21hbmlmZXN0IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9z
ZXJ2ZSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeCI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzIjogImltcG9y
dCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUiOiAiaW1wb3J0Iiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90b3VjaC1ldmVudHMiOiAiaW1wb3J0IiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy90cnVzdGVkLXR5cGVzIjogInNraXAiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3R5cGVkYXJyYXlzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3VpZXZlbnRzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdXBncmFk
ZS1pbnNlY3VyZS1yZXF1ZXN0cyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91
cmwiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91c2VyLXRpbWluZyI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ZpYnJhdGlvbiI6ICJza2lwIiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy92aXN1YWwtdmlld3BvcnQiOiAiaW1wb3J0IiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy93YWktYXJpYSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy93YXNtIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9q
c2FwaSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25z
IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2ViLW5mYyI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWItc2hhcmUiOiAiaW1wb3J0IiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpbyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1dGhuIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYmRy
aXZlciI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJnbCI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJtZXNzYWdpbmciOiAiaW1wb3J0IiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJtZXNzYWdpbmcvIjogImltcG9ydCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjLXByaW9yaXR5IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL2xlZ2FjeSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2Nr
ZXRzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2Vic3RvcmFnZSI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnN0b3JhZ2UvIjogImltcG9ydCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VidXNiIjogInNraXAiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnZyIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnZ0dCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ciI6ICJpbXBvcnQi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMiOiAiaW1wb3J0IiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3gtZnJhbWUtb3B0aW9ucyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy94aHIiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS90ZXN0L2h0bWwvaW5mcmFzdHJ1
Y3R1cmUiOiAiaW1wb3J0IgorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMiOiAiaW1wb3J0IiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzLy5naXRodWIiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy8ud2VsbC1rbm93biI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
MmRjb250ZXh0IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvQmFja2dyb3VuZFN5
bmMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9ET00tcGFyc2luZyI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL0RPTUV2ZW50cyI6ICJza2lwIiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQiI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5
cHRvQVBJIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJREwiOiAiaW1w
b3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL1dlYklETC9pbnZhbGlkIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML3ZhbGlkIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFmdGVyLXN0b3AuaHRtIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvZXZlbnQtZXJyb3Itb3JkZXIu
c3ViLmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVz
dC9ldmVudC10aW1lb3V0LW9yZGVyLmh0bSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL1hNTEh0dHBSZXF1ZXN0L3ByZXNlcnZlLXVhLWhlYWRlci1vbi1yZWRpcmVjdC5odG0iOiAi
c2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWFmdGVy
LXNldHRpbmctZG9jdW1lbnQtZG9tYWluLmh0bSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtYXV0aGVudGljYXRpb24tYmFzaWMtY29ycy1ub3Qt
ZW5hYmxlZC5odG0iOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVx
dWVzdC9zZW5kLWF1dGhlbnRpY2F0aW9uLWJhc2ljLXNldHJlcXVlc3RoZWFkZXItZXhpc3Rpbmct
c2Vzc2lvbi5odG0iOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hY2NlbGVyb21l
dGVyIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYWNjbmFtZSI6ICJza2lwIiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2FjaWQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9hbWJpZW50LWxpZ2h0IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
YW5pbWF0aW9uLXRpbWluZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2FuaW1h
dGlvbi13b3JrbGV0IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYW5ub3RhdGlv
bi1tb2RlbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Fubm90YXRpb24tcHJv
dG9jb2wiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hbm5vdGF0aW9uLXZvY2Fi
IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXBuZyI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXBwLXVyaSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2FwcG1hbmlmZXN0IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXNz
dW1wdGlvbnMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hc3luYy1sb2NhbC1z
dG9yYWdlIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0Ijog
ImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hdXhjbGljayI6ICJza2lwIiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91bmQtZmV0Y2giOiAiaW1wb3J0IiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2JhZGdpbmciOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9iYXR0ZXJ5LXN0YXR1cyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Jl
YWNvbiI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYmx1ZXRvb3RoIjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYnJvd3Nlci1wYXltZW50LWFwaSI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2NsZWFyLXNpdGUtZGF0YSI6ICJza2lwIiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2NsaWVudC1oaW50cyI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2NsaXBib2FyZCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2NsaXBib2FyZC1hcGlzIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb21t
b24iOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2NvbXBhdCI6ICJpbXBvcnQi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY29tcHJlc3Npb24iOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9jb25mb3JtYW5jZS1jaGVja2VycyI6ICJza2lwIiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2NvbnNvbGUiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2NvbnRhY3RzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1k
cHIiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LWluZGV4IjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kiOiAi
aW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnRlZGl0YWJsZSI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nvb2tpZS1zdG9yZSI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2Nvb2tpZXMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9jb29raWVzL3Jlc291cmNlcyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvY29va2llcy9zZWN1cmUiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nv
cmUtYWFtIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY29ycyI6ICJpbXBvcnQi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY29ycy1yZmMxOTE4IjogInNraXAiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50IjogImltcG9ydCIsCisgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MtYmFja2dyb3VuZHMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mt
Zm9udC1kaXNwbGF5IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzLWZvbnQt
bG9hZGluZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy1mb250cyI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy1wYWludC1hcGkiOiAic2tpcCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mtc2NvcGluZyI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy1zY3JvbGwtYW5jaG9yaW5nIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzLXRpbWluZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy10eXBlZC1vbSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy12YWx1
ZXMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvV09GRjIiOiAiaW1wb3J0
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYWxpZ24iOiAiaW1wb3J0IiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYW5pbWF0aW9ucyI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1iYWNrZ3JvdW5kcyI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ib3giOiAiaW1wb3J0IiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb2xvciI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRlbnQiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY291bnRlci1zdHlsZXMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZGlzcGxheSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1lYXNpbmciOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZmxl
eGJveCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250LWxv
YWRpbmciOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMi
OiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZCI6ICJpbXBv
cnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1pbWFnZXMiOiAiaW1wb3J0IiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbGlzdHMiOiAiaW1wb3J0IiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbG9naWNhbCI6ICJpbXBvcnQiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tYXNraW5nL2NsaXAtcGF0aCI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbCI6ICJpbXBvcnQiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyZmxvdyI6ICJpbXBvcnQiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Nyb2xsLWJlaGF2aW9yIjogImltcG9ydCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXBvc2l0aW9uIjogImltcG9ydCIsCisgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXByb3BlcnRpZXMtdmFsdWVzLWFwaSI6ICJpbXBv
cnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1wc2V1ZG8iOiAiaW1wb3J0IiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZyI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcCI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFkb3ctcGFydHMiOiAiaW1wb3J0IiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhcGVzIjogImltcG9ydCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYXBlcy90ZXN0LXBsYW4vaW5kZXguaHRtbCI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nIjogImltcG9ydCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXN5bnRheCI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0IjogImltcG9ydCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRleHQtZGVjb3IiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdmFsdWVzIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXZhcmlhYmxlcyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy13aWxsLWNoYW5nZSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy13cml0aW5nLW1vZGVzIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20iOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3IjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnkiOiAi
aW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9tZWRpYXF1ZXJpZXMiOiAiaW1w
b3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9yZWZlcmVuY2UiOiAiaW1wb3J0IiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9yZXNvdXJjZXMiOiAiaW1wb3J0IiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zY3JvbGwtc25hcCI6ICJpbXBvcnQiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL3N1cHBvcnQiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2N1c3RvbS1lbGVtZW50cyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL3YwIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LXN0YXRlLXBzZXVkby1jbGFzcyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Rl
bGVnYXRlZC1pbmsiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kZW5zaXR5LXNp
emUtY29ycmVjdGlvbiI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZGVwcmVj
YXRpb24tcmVwb3J0aW5nIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZGV2aWNl
LW1lbW9yeSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvY3MiOiAiaW1wb3J0
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvY3VtZW50LXBvbGljeSI6ICJza2lwIiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzL2Vt
cHR5Lmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9j
dW1lbnQtY3JlYXRlRWxlbWVudC1uYW1lc3BhY2UtdGVzdHMvZW1wdHkuc3ZnIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQt
bmFtZXNwYWNlLXRlc3RzL2VtcHR5LnhodG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzL2Vt
cHR5LnhtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1
bWVudC1jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ueGh0bWwiOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUu
eGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVu
dC1jaGlsZEVsZW1lbnQtbnVsbC1zdmcuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50LW51bGwuc3ZnIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50LW51
bGwueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxl
bWVudC1jaGlsZEVsZW1lbnRDb3VudC1keW5hbWljLWFkZC1zdmcuc3ZnIjogInNraXAiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQt
ZHluYW1pYy1hZGQuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQtZHluYW1pYy1yZW1vdmUtc3ZnLnN2ZyI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWNoaWxkRWxl
bWVudENvdW50LWR5bmFtaWMtcmVtb3ZlLnN2ZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWNoaWxkRWxlbWVudENvdW50LWR5bmFtaWMtcmVtb3Zl
LnhodG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1l
bnQtY2hpbGRFbGVtZW50Q291bnQtbm9jaGlsZC1zdmcuc3ZnIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQtbm9jaGls
ZC5zdmciOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVu
dC1jaGlsZEVsZW1lbnRDb3VudC1zdmcuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQuc3ZnIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291
bnQueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxl
bWVudC1maXJzdEVsZW1lbnRDaGlsZC1lbnRpdHkuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZmlyc3RFbGVtZW50Q2hpbGQtZW50aXR5Lnho
dG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQt
Zmlyc3RFbGVtZW50Q2hpbGQtbmFtZXNwYWNlLXN2Zy5zdmciOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1maXJzdEVsZW1lbnRDaGlsZC1uYW1lc3Bh
Y2Uuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1l
bnQtZmlyc3RFbGVtZW50Q2hpbGQtbmFtZXNwYWNlLnhodG1sIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZmlyc3RFbGVtZW50Q2hpbGQtc3ZnLnN2
ZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWZp
cnN0RWxlbWVudENoaWxkLnN2ZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9FbGVtZW50LWxhc3RFbGVtZW50Q2hpbGQtc3ZnLnN2ZyI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWxhc3RFbGVtZW50Q2hpbGQuc3Zn
IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtbGFz
dEVsZW1lbnRDaGlsZC54aHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9FbGVtZW50LW5leHRFbGVtZW50U2libGluZy1zdmcuc3ZnIjogInNraXAiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtbmV4dEVsZW1lbnRTaWJsaW5n
LnN2ZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50
LXByZXZpb3VzRWxlbWVudFNpYmxpbmctc3ZnLnN2ZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LXByZXZpb3VzRWxlbWVudFNpYmxpbmcuc3ZnIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtc2libGlu
Z0VsZW1lbnQtbnVsbC1zdmcuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL0VsZW1lbnQtc2libGluZ0VsZW1lbnQtbnVsbC5zdmciOiAic2tpcCIsCisgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1zaWJsaW5nRWxlbWVudC1udWxs
LnhodG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUt
bm9kZU5hbWUueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9k
ZXMvUGFyZW50Tm9kZS1xdWVyeVNlbGVjdG9yLUFsbC54aHQiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3VuZmluaXNoZWQiOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9kb214cGF0aCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9t
eHBhdGgveG1sX3hwYXRoX3J1bm5lci5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvZG9teHBhdGgveG1sX3hwYXRoX3Rlc3RzLnhtbCI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2RwdWItYWFtIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
ZHB1Yi1hcmlhIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZWRpdGluZyI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2VsZW1lbnQtdGltaW5nIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmciOiAiaW1wb3J0IiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2VuY29kaW5nLWRldGVjdGlvbiI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvZW5jcnlwdGVkLW1lZGlhL0dvb2dsZSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2VudHJpZXMtYXBpIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9l
dmVudC10aW1pbmciOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJj
ZSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZXh0LXhodG1sLXB1YmlkIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZmVhdHVyZS1wb2xpY3kiOiAic2tpcCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9mZWF0dXJlLXBvbGljeS9yZXNvdXJjZXMiOiAiaW1w
b3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoIjogImltcG9ydCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9mb2N1cyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2ZvbnQtYWNjZXNzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZm9yY2VkLWNv
bG9ycy1tb2RlIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZnVsbHNjcmVlbiI6
ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2dhbWVwYWQiOiAic2tpcCIsCisgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9nZW5lcmljLXNlbnNvciI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvZ2VvbG9jYXRpb24tc2Vuc29yIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvZ3JhcGhpY3MtYWFtIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZ3ly
b3Njb3BlIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZSI6ICJpbXBv
cnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbCI6ICJpbXBvcnQiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC1pbXBvcnRzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC1sb25nZGVzYyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwtbWVkaWEtY2FwdHVyZSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNhbC9icm93c2luZ19jb250
ZXh0X25hbWUuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNhbC9icm93c2luZ19jb250ZXh0
X25hbWVfY3Jvc3Nfb3JpZ2luXzIuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNhbC9icm93
c2luZ19jb250ZXh0X25hbWVfY3Jvc3Nfb3JpZ2luXzMuaHRtbCI6ICJza2lwIiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS9qb2ludC1zZXNzaW9uLWhpc3Rv
cnkiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rv
cnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlLzAwMS5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS8w
MDIuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
aGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvY29tYmluYXRpb25faGlzdG9yeV8wMDIuaHRt
bCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9y
eS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvY29tYmluYXRpb25faGlzdG9yeV8wMDMuaHRtbCI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUt
aGlzdG9yeS1pbnRlcmZhY2UvdHJhdmVyc2VfdGhlX2hpc3RvcnlfMy5odG1sIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlv
bi1pbnRlcmZhY2UvYXNzaWduX2FmdGVyX2xvYWQuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNl
L2Fzc2lnbl9iZWZvcmVfbG9hZC5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRpb25f
YXNzaWduLmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL29mZmxpbmUvYXBwbGljYXRpb24tY2FjaGUtYXBpIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9iamVjdHMvY3Jv
c3Mtb3JpZ2luLW9iamVjdHMuc3ViLmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL3NhbmRib3hpbmciOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29udGV4dC1maXJzdC1jcmVh
dGVkLnhodG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy93aW5kb3dzL25lc3RlZC1icm93c2luZy1jb250ZXh0cy9mcmFtZUVsZW1lbnQuaHRtbCI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy90YXJn
ZXRpbmctY3Jvc3Mtb3JpZ2luLW5lc3RlZC1icm93c2luZy1jb250ZXh0cy5odG1sIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZG9jdW1lbnRzL2RvbS10cmVlLWFj
Y2Vzc29ycy9Eb2N1bWVudC5jdXJyZW50U2NyaXB0LnN1Yi5odG1sIjogInNraXAiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZWxlbWVudHMvcmVxdWlyZW1lbnRzLXJlbGF0aW5n
LXRvLWJpZGlyZWN0aW9uYWwtYWxnb3JpdGhtLWZvcm1hdHRpbmctY2hhcmFjdGVycyI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL3JlZmxlY3Rpb24tb3JpZ2luYWwu
aHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1
cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YS9zaGFyZWQtYXJyYXktYnVmZmVycyI6
ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvb2Jzb2xldGUiOiAic2tpcCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZyI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJp
YnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWltYWdlcyI6ICJpbXBvcnQiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLW1l
dGEtZWxlbWVudC9wcmFnbWEtZGlyZWN0aXZlcyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1tZXRhLWVsZW1lbnQv
cHJhZ21hLWRpcmVjdGl2ZXMvYXR0ci1tZXRhLWh0dHAtZXF1aXYtcmVmcmVzaCI6ICJpbXBvcnQi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC0wIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9pbWFnZS1tYXBzL2ltYWdlLW1hcC1wcm9jZXNzaW5nLW1vZGVsIjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy9hdWRpb19sb29wX2Jhc2UuaHRtbCI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvZXJyb3ItY29kZXMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2xvYWRpbmctdGhl
LW1lZGlhLXJlc291cmNlIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9sb2NhdGlvbi1vZi10aGUt
bWVkaWEtcmVzb3VyY2UvY3VycmVudFNyYy5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9u
ZXR3b3JrU3RhdGVfZHVyaW5nX3Byb2dyZXNzLmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L29mZnNldHMtaW50by10aGUtbWVkaWEtcmVzb3VyY2UvY3VycmVudFRpbWUuaHRtbCI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2UtcmVtb3Zl
LWZyb20tZG9jdW1lbnQtbmV0d29ya1N0YXRlLmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BsYXktaW4tZGV0YWNoZWQtZG9jdW1lbnQuaHRt
bCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHktc3RhdGVzL2F1dG9wbGF5Lmh0bWwiOiAi
c2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L21lZGlhLWVsZW1lbnRzL3NlZWtpbmcvc2Vlay10by1jdXJyZW50VGltZS5odG1sIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy9zZWVraW5nL3NlZWstdG8tbWF4LXZhbHVlLmh0bSI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvc2Vla2luZy9zZWVrLXRvLW5lZ2F0aXZlLXRpbWUuaHRtIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy9zeW5jaHJvbmlzaW5nLW11bHRpcGxlLW1lZGlhLWVsZW1l
bnRzL21lZGlhLWNvbnRyb2xsZXJzL3Rhc2stc291cmNlLmh0bWwiOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL3RyYWNrL3RyYWNrLWVsZW1lbnQvY29ycyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
dmlkZW9fbG9vcF9iYXNlLmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1hcmVhLWVsZW1lbnQvYXJlYV9ub2hy
ZWYueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L3RoZS1hcmVhLWVsZW1lbnQvdGVzdC1hcmVhLnhodG1sIjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLndoaXRlc3BhY2Uu
aHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvdGhlLWVtYmVkLWVsZW1lbnQvZW1iZWQtcmVwcmVzZW50LW5vdGhpbmct
MDQuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L2RlY29kZSI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlt
Zy1lbGVtZW50L3JlbGV2YW50LW11dGF0aW9ucy5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaW1nLWVsZW1l
bnQvdXBkYXRlLXRoZS1pbWFnZS1kYXRhIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtb2JqZWN0LWVsZW1lbnQvb2Jq
ZWN0LWV2ZW50cy5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdC1ldmVudC5odG1sIjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZp
ZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRSYW5nZVRleHQuaHRtbCI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVs
ZW1lbnRzL3RoZS1kZXRhaWxzLWVsZW1lbnQvdG9nZ2xlRXZlbnQuaHRtbCI6ICJza2lwIiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRz
L3RoZS1zdW1tYXJ5LWVsZW1lbnQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9saW5rcy9mb2xsb3dpbmctaHlwZXJsaW5rcyI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmtzLWNyZWF0ZWQtYnkt
YS1hbmQtYXJlYS1lbGVtZW50cyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGlt
aW5nIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L3NjcmlwdC1mb3ItZXZlbnQueGh0bWwiOiAic2tp
cCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvc2NyaXB0LXRleHQueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtZGF0
YS1lbGVtZW50IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBh
cGlzL2lkbGUtY2FsbGJhY2tzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1sb29wcy9taWNyb3Rhc2tfYWZ0ZXJfcmFmLmh0
bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2Ny
aXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi91bmhhbmRsZWQtcHJvbWlzZS1yZWplY3Rpb25zIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHR0cCI6ICJza2lwIiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2lkbGUtZGV0ZWN0aW9uIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvaW1hZ2UtZGVjb2RlcyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2ltYWdlYml0bWFwLXJlbmRlcmluZ2NvbnRleHQiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2ltYWdlcyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW1w
b3J0LW1hcHMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbmVydCI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlIjogImltcG9ydCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbm5lclRleHQiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2lucHV0LWRldmljZS1jYXBhYmlsaXRpZXMiOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9pbnB1dC1ldmVudHMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9pbnN0YWxsZWRhcHAiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9p
bnRlcmZhY2VzIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rp
b24tb2JzZXJ2ZXIiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ludGVydmVu
dGlvbi1yZXBvcnRpbmciOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pcy1pbnB1
dC1wZW5kaW5nIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvanMiOiAic2tpcCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9rZXlib2FyZC1sb2NrIjogInNraXAiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMva2V5Ym9hcmQtbWFwIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvbGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50IjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvbGF5b3V0LWluc3RhYmlsaXR5IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvbGlmZWN5Y2xlIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbG9h
ZGluZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2xvYWRpbmcvbGF6eWxvYWQi
OiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2xvbmd0YXNrLXRpbWluZyI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL21hZ25ldG9tZXRlciI6ICJza2lwIiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvbWVhc3VyZS1tZW1vcnkiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtY2FwYWJp
bGl0aWVzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtZmVlZHMiOiAi
c2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1wbGF5YmFjay1xdWFsaXR5Ijog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlIjogImltcG9ydCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtZGVwdGgiOiAic2tpcCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtaW1hZ2UiOiAic2tpcCIsCisgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkIjogImltcG9ydCIsCisgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcyI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uIjogImltcG9ydCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9tZXJjaGFudC12YWxpZGF0aW9uIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvbWljcm9kYXRhIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
bWltZXNuaWZmIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9taXhlZC1jb250
ZW50IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbXN0LWNvbnRlbnQtaGludCI6
ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbmF0aXZlLWZpbGUtc3lzdGVtIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbmF0aXZlLWlvIjogInNraXAiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvbmF2aWdhdGlvbi10aW1pbmciOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9uZXRpbmZvIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvbmV0d29yay1lcnJvci1sb2dnaW5nIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvbm90aWZpY2F0aW9ucyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvb2Zm
c2NyZWVuLWNhbnZhcyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvb2xkLXRl
c3RzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvb3JpZW50YXRpb24tZXZlbnQi
OiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9vcmllbnRhdGlvbi1zZW5zb3IiOiAi
c2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9vcmlnaW4tcG9saWN5IjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGFnZS1saWZlY3ljbGUiOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9wYWdlLXZpc2liaWxpdHkiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1oYW5kbGVyIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1tZXRob2QtYmFzaWMtY2FyZCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtbWV0aG9kLWlkIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0IjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wZXJm
b3JtYW5jZS10aW1lbGluZSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Blcmlv
ZGljLWJhY2tncm91bmQtc3luYyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Bl
cm1pc3Npb25zIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGljdHVyZS1pbi1w
aWN0dXJlIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRz
IjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVybG9jayI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BvcnRhbHMiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9wcmVsb2FkIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
cHJlc2VudGF0aW9uLWFwaSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ByaW9y
aXR5LWhpbnRzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcHJvZ3Jlc3MtZXZl
bnRzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcHJveGltaXR5IjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcHVzaC1hcGkiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9xdWlya3MtbW9kZSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3F1aXJrcy91bml0bGVzcy1sZW5ndGgiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3Jhdy1zb2NrZXRzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcmVm
ZXJyZXItcG9saWN5IjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9yZW1vdGUt
cGxheWJhY2siOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9ydGluZyI6
ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2siOiAi
aW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Jlc2l6ZS1vYnNlcnZlciI6ICJpbXBv
cnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nIjogImltcG9ydCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMiOiAiaW1wb3J0IiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9jaHJvbWl1bSI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3Nhbml0aXplci1hcGkiOiAic2tpcCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9zYXZlZGF0YSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Nj
cmVlbi1jYXB0dXJlIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2NyZWVuLW9y
aWVudGF0aW9uIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2NyZWVuLXdha2Ut
bG9jayI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NjcmVlbl9lbnVtZXJhdGlv
biI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Njcm9sbC1hbmNob3JpbmciOiAi
c2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zY3JvbGwtYW5pbWF0aW9ucyI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Njcm9sbC1pbnRvLXZpZXciOiAic2tpcCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zY3JvbGwtdG8tdGV4dC1mcmFnbWVudCI6ICJza2lwIiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlY3VyZS1jb250ZXh0cyI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2VjdXJlLXBheW1lbnQtY29uZmlybWF0aW9uIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2VsZWN0aW9uIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VsZWN0b3JzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvc2VsZWN0b3JzLWFwaSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Nlcmlh
bCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZlci10aW1pbmciOiAiaW1w
b3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2VycyI6ICJpbXBvcnQi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbSI6ICJpbXBvcnQiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS91bnRyaWFnZWQiOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9zaGFwZS1kZXRlY3Rpb24iOiAic2tpcCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9zaWduZWQtZXhjaGFuZ2UiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9zcGVlY2gtYXBpIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zdGF0
aWNyYW5nZSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3N0b3JhZ2UiOiAic2tp
cCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zIjogImltcG9ydCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3dyaXRhYmxlLXN0cmVhbXMiOiAic2tpcCIsCisgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkiOiAiaW1wb3J0IiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3N2ZyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvc3ZnLWFhbSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Rlc3QvaHRt
bC9pbmZyYXN0cnVjdHVyZSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdGVz
dGhhcm5lc3NfcnVubmVyLmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90
aW1pbmctZW50cnl0eXBlcy1yZWdpc3RyeSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90b3VjaC1ldmVu
dHMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3RydXN0LXRva2VucyI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3RydXN0ZWQtdHlwZXMiOiAic2tpcCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90eXBlZGFycmF5cyI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3VhLWNsaWVudC1oaW50cyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3VpZXZlbnRzIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91cGdy
YWRlLWluc2VjdXJlLXJlcXVlc3RzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
dXJsIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91cmxwYXR0ZXJuIjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdXNlci10aW1pbmciOiAiaW1wb3J0IiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3ZpYnJhdGlvbiI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy92
aXN1YWwtdmlld3BvcnQiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dhaS1h
cmlhIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2FrZS1sb2NrIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYi1idW5kbGUiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWIt
bG9ja3MiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWItbmZjIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2ViLW90cCI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3dlYi1zaGFyZSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8iOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1dGhu
IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2ViY29kZWNzIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2ViZHJpdmVyIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvd2ViZ2wiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJn
cHUiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJoaWQiOiAic2tpcCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJtZXNzYWdpbmciOiAiaW1wb3J0IiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYm1pZGkiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRl
bnNpb25zIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWlkZW50aXR5
IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWluc2VydGFibGUtc3Ry
ZWFtcyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1wcmlvcml0eSI6
ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLXN0YXRzIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLXN2YyI6ICJza2lwIiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJzb2NrZXRzIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJzdG9yYWdlIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ0cmFuc3Bv
cnQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ1c2IiOiAic2tpcCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ2ciI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnZ0dCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyIjog
ImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93aW5kb3ctc2VnbWVudHMiOiAic2tp
cCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzIjogImltcG9ydCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMveC1mcmFtZS1vcHRpb25zIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
eGhyIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy94c2x0IjogInNraXAiCiB9
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uCmluZGV4IDFkODMyYzBjYmZl
MmFlYmE3MWJkMzkyYWM2NTFkZmEwMmRlMzNkZGMuLjExNDViOTFhOWEzZjQzZjkwM2RkNTU5YmJl
YmY3NWE5OGYwZmQ3ZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KQEAgLTI3NjEsNiArMjc2MSw3IEBACiAgICAg
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zdXBwb3J0L3NhbmRib3hlZC10ZXN0cy5o
dG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3N1cHBvcnQvc3luY194
aHJfdGFyZ2V0LnhtbCIsCiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMveGhyL3htbGh0dHBy
ZXF1ZXN0LXN5bmMtYmxvY2stZGVmZXItc2NyaXB0cy1zdWJmcmFtZS5odG1sIiwKLSAgICAgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3Qtc3luYy1ub3QtaGFuZy1zY3Jp
cHRsb2FkZXItc3ViZnJhbWUuaHRtbCIKKyAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy94aHIv
eG1saHR0cHJlcXVlc3Qtc3luYy1ub3QtaGFuZy1zY3JpcHRsb2FkZXItc3ViZnJhbWUuaHRtbCIs
CisgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjdXJpdHkvc3VwcG9ydC9lbWJl
ZGRlZC1jcmVkZW50aWFsLXdpbmRvdy5zdWIuaHRtbCIKICAgICBdCiB9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJv
cnQvY2FjaGUuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwODE1ZTY1ZmVlM2RiYjAyYTliYzdhZWI4ODlmNDU4ZTlkMTEyY2ZmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1QQVNTIFNpZ25hbHMgYXJlIG5v
dCBzdG9yZWQgaW4gdGhlIGNhY2hlIEFQSQotUEFTUyBTaWduYWxzIGFyZSBub3Qgc3RvcmVkIGlu
IHRoZSBjYWNoZSBBUEksIGV2ZW4gaWYgdGhleSdyZSBhbHJlYWR5IGFib3J0ZWQKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYWJvcnQvY2FjaGUuaHR0cHMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmFu
eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgxNWU2NWZlZTNkYmIwMmE5YmM3YWViODg5ZjQ1
OGU5ZDExMmNmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmFueS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgU2lnbmFscyBhcmUgbm90IHN0b3JlZCBpbiB0
aGUgY2FjaGUgQVBJCitQQVNTIFNpZ25hbHMgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIEFQ
SSwgZXZlbiBpZiB0aGV5J3JlIGFscmVhZHkgYWJvcnRlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9jYWNo
ZS5odHRwcy5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmFueS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIz
ODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9h
Ym9ydC9jYWNoZS5odHRwcy5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBp
cyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1w
bGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9y
dC9jYWNoZS5odHRwcy5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9jYWNoZS5odHRwcy5hbnkuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmRhZjBlNjllNTgwMTA0MGExOGNiOWQ0NzliOGZjM2NjNGEyMjlkOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Fib3J0L2NhY2hlLmh0dHBzLmFueS5qcwpAQCAtMCwwICsxLDQ3IEBACisvLyBNRVRBOiB0aXRs
ZT1SZXF1ZXN0IHNpZ25hbHMgJmFtcDsgdGhlIGNhY2hlIEFQSQorLy8gTUVUQTogZ2xvYmFsPXdp
bmRvdyx3b3JrZXIKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgYXdhaXQgY2FjaGVz
LmRlbGV0ZSgndGVzdCcpOworICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxl
cigpOworICBjb25zdCBzaWduYWwgPSBjb250cm9sbGVyLnNpZ25hbDsKKyAgY29uc3QgcmVxdWVz
dCA9IG5ldyBSZXF1ZXN0KCcuLi9yZXNvdXJjZXMvZGF0YS5qc29uJywgeyBzaWduYWwgfSk7CisK
KyAgY29uc3QgY2FjaGUgPSBhd2FpdCBjYWNoZXMub3BlbigndGVzdCcpOworICBhd2FpdCBjYWNo
ZS5wdXQocmVxdWVzdCwgbmV3IFJlc3BvbnNlKCcnKSk7CisKKyAgY29uc3QgcmVxdWVzdHMgPSBh
d2FpdCBjYWNoZS5rZXlzKCk7CisKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0cy5sZW5ndGgsIDEs
ICdFbnN1cmluZyBjbGVhbnVwIHdvcmtlZCcpOworCisgIGNvbnN0IFtjYWNoZWRSZXF1ZXN0XSA9
IHJlcXVlc3RzOworCisgIGNvbnRyb2xsZXIuYWJvcnQoKTsKKworICBhc3NlcnRfZmFsc2UoY2Fj
aGVkUmVxdWVzdC5zaWduYWwuYWJvcnRlZCwgIlJlcXVlc3QgZnJvbSBjYWNoZSBzaG91bGRuJ3Qg
YmUgYWJvcnRlZCIpOworCisgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaChjYWNoZWRSZXF1ZXN0
KS50aGVuKHIgPT4gci5qc29uKCkpOworICBhc3NlcnRfZXF1YWxzKGRhdGEua2V5LCAndmFsdWUn
LCAnRmV0Y2ggZnVsbHkgY29tcGxldGVzJyk7Cit9LCAiU2lnbmFscyBhcmUgbm90IHN0b3JlZCBp
biB0aGUgY2FjaGUgQVBJIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIGF3YWl0
IGNhY2hlcy5kZWxldGUoJ3Rlc3QnKTsKKyAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENv
bnRyb2xsZXIoKTsKKyAgY29uc3Qgc2lnbmFsID0gY29udHJvbGxlci5zaWduYWw7CisgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgnLi4vcmVzb3VyY2VzL2RhdGEuanNvbicsIHsgc2lnbmFs
IH0pOworICBjb250cm9sbGVyLmFib3J0KCk7CisKKyAgY29uc3QgY2FjaGUgPSBhd2FpdCBjYWNo
ZXMub3BlbigndGVzdCcpOworICBhd2FpdCBjYWNoZS5wdXQocmVxdWVzdCwgbmV3IFJlc3BvbnNl
KCcnKSk7CisKKyAgY29uc3QgcmVxdWVzdHMgPSBhd2FpdCBjYWNoZS5rZXlzKCk7CisKKyAgYXNz
ZXJ0X2VxdWFscyhyZXF1ZXN0cy5sZW5ndGgsIDEsICdFbnN1cmluZyBjbGVhbnVwIHdvcmtlZCcp
OworCisgIGNvbnN0IFtjYWNoZWRSZXF1ZXN0XSA9IHJlcXVlc3RzOworCisgIGFzc2VydF9mYWxz
ZShjYWNoZWRSZXF1ZXN0LnNpZ25hbC5hYm9ydGVkLCAiUmVxdWVzdCBmcm9tIGNhY2hlIHNob3Vs
ZG4ndCBiZSBhYm9ydGVkIik7CisKKyAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoKGNhY2hlZFJl
cXVlc3QpLnRoZW4ociA9PiByLmpzb24oKSk7CisgIGFzc2VydF9lcXVhbHMoZGF0YS5rZXksICd2
YWx1ZScsICdGZXRjaCBmdWxseSBjb21wbGV0ZXMnKTsKK30sICJTaWduYWxzIGFyZSBub3Qgc3Rv
cmVkIGluIHRoZSBjYWNoZSBBUEksIGV2ZW4gaWYgdGhleSdyZSBhbHJlYWR5IGFib3J0ZWQiKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQv
Y2FjaGUuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgxNWU2NWZl
ZTNkYmIwMmE5YmM3YWViODg5ZjQ1OGU5ZDExMmNmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2Nh
Y2hlLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNT
IFNpZ25hbHMgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIEFQSQorUEFTUyBTaWduYWxzIGFy
ZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZSBBUEksIGV2ZW4gaWYgdGhleSdyZSBhbHJlYWR5IGFi
b3J0ZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUuaHR0cHMuYW55Lndvcmtlci5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQv
Y2FjaGUuaHR0cHMuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9jYWNoZS5odHRw
cy5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRl
c3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDI1ZWQwZTFlOTE4M2I5YTczODg0OTQ0MzUyZGQ1Mjc4MGZkYTAwOTEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUuaHR0cHMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLSAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICA8dGl0bGU+UmVxdWVzdCBzaWdu
YWxzICZhbXA7IHRoZSBjYWNoZSBBUEk8L3RpdGxlPgotICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4K
LSAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKLSAgICBhd2FpdCBjYWNoZXMuZGVsZXRlKCd0
ZXN0Jyk7Ci0gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTsKLSAg
ICBjb25zdCBzaWduYWwgPSBjb250cm9sbGVyLnNpZ25hbDsKLSAgICBjb25zdCByZXF1ZXN0ID0g
bmV3IFJlcXVlc3QoJy4uL3Jlc291cmNlcy9kYXRhLmpzb24nLCB7IHNpZ25hbCB9KTsKLQotICAg
IGNvbnN0IGNhY2hlID0gYXdhaXQgY2FjaGVzLm9wZW4oJ3Rlc3QnKTsKLSAgICBhd2FpdCBjYWNo
ZS5wdXQocmVxdWVzdCwgbmV3IFJlc3BvbnNlKCcnKSk7Ci0KLSAgICBjb25zdCByZXF1ZXN0cyA9
IGF3YWl0IGNhY2hlLmtleXMoKTsKLQotICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdHMubGVuZ3Ro
LCAxLCAnRW5zdXJpbmcgY2xlYW51cCB3b3JrZWQnKTsKLQotICAgIGNvbnN0IFtjYWNoZWRSZXF1
ZXN0XSA9IHJlcXVlc3RzOwotCi0gICAgY29udHJvbGxlci5hYm9ydCgpOwotCi0gICAgYXNzZXJ0
X2ZhbHNlKGNhY2hlZFJlcXVlc3Quc2lnbmFsLmFib3J0ZWQsICJSZXF1ZXN0IGZyb20gY2FjaGUg
c2hvdWxkbid0IGJlIGFib3J0ZWQiKTsKLQotICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaChj
YWNoZWRSZXF1ZXN0KS50aGVuKHIgPT4gci5qc29uKCkpOwotICAgIGFzc2VydF9lcXVhbHMoZGF0
YS5rZXksICd2YWx1ZScsICdGZXRjaCBmdWxseSBjb21wbGV0ZXMnKTsKLSAgfSwgIlNpZ25hbHMg
YXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIEFQSSIpOwotCi0gIHByb21pc2VfdGVzdChhc3lu
YyAoKSA9PiB7Ci0gICAgYXdhaXQgY2FjaGVzLmRlbGV0ZSgndGVzdCcpOwotICAgIGNvbnN0IGNv
bnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7Ci0gICAgY29uc3Qgc2lnbmFsID0gY29u
dHJvbGxlci5zaWduYWw7Ci0gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCcuLi9yZXNv
dXJjZXMvZGF0YS5qc29uJywgeyBzaWduYWwgfSk7Ci0gICAgY29udHJvbGxlci5hYm9ydCgpOwot
Ci0gICAgY29uc3QgY2FjaGUgPSBhd2FpdCBjYWNoZXMub3BlbigndGVzdCcpOwotICAgIGF3YWl0
IGNhY2hlLnB1dChyZXF1ZXN0LCBuZXcgUmVzcG9uc2UoJycpKTsKLQotICAgIGNvbnN0IHJlcXVl
c3RzID0gYXdhaXQgY2FjaGUua2V5cygpOwotCi0gICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0cy5s
ZW5ndGgsIDEsICdFbnN1cmluZyBjbGVhbnVwIHdvcmtlZCcpOwotCi0gICAgY29uc3QgW2NhY2hl
ZFJlcXVlc3RdID0gcmVxdWVzdHM7Ci0KLSAgICBhc3NlcnRfZmFsc2UoY2FjaGVkUmVxdWVzdC5z
aWduYWwuYWJvcnRlZCwgIlJlcXVlc3QgZnJvbSBjYWNoZSBzaG91bGRuJ3QgYmUgYWJvcnRlZCIp
OwotCi0gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoKGNhY2hlZFJlcXVlc3QpLnRoZW4ociA9
PiByLmpzb24oKSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhkYXRhLmtleSwgJ3ZhbHVlJywgJ0ZldGNo
IGZ1bGx5IGNvbXBsZXRlcycpOwotICB9LCAiU2lnbmFscyBhcmUgbm90IHN0b3JlZCBpbiB0aGUg
Y2FjaGUgQVBJLCBldmVuIGlmIHRoZXkncmUgYWxyZWFkeSBhYm9ydGVkIik7Ci08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L3NlcnZpY2V3b3JrZXItaW50ZXJjZXB0
ZWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvc2VydmljZXdvcmtlci1pbnRlcmNlcHRlZC5odHRw
cy1leHBlY3RlZC50eHQKaW5kZXggNWNmOWMwZjZiYTg1ZDk4NDc5MjRiNjFmYTZmZTFkNzBlOWU5
NzIyMS4uYmFkZWRiNTEyZTYxYzFiZjk4MmIyZWY2OTg1MDc5YjQ3M2ZkOTc3ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
YWJvcnQvc2VydmljZXdvcmtlci1pbnRlcmNlcHRlZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJv
cnQvc2VydmljZXdvcmtlci1pbnRlcmNlcHRlZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTUsNSAr
NSw1IEBAIFBBU1MgcmVzcG9uc2UuYmxvYigpIHJlamVjdHMgaWYgYWxyZWFkeSBhYm9ydGVkCiBQ
QVNTIHJlc3BvbnNlLmZvcm1EYXRhKCkgcmVqZWN0cyBpZiBhbHJlYWR5IGFib3J0ZWQKIFBBU1Mg
cmVzcG9uc2UuanNvbigpIHJlamVjdHMgaWYgYWxyZWFkeSBhYm9ydGVkCiBQQVNTIHJlc3BvbnNl
LnRleHQoKSByZWplY3RzIGlmIGFscmVhZHkgYWJvcnRlZAotUEFTUyBTdHJlYW0gZXJyb3JzIG9u
Y2UgYWJvcnRlZC4KK0ZBSUwgU3RyZWFtIGVycm9ycyBvbmNlIGFib3J0ZWQuIGFzc2VydF91bnJl
YWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJs
ZSBjb2RlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvdzNjLWltcG9ydC5s
b2cKaW5kZXggNmViMWY3MmVjZTU0YjM1ZjBkOWZhZTE0MmEwYTQ4Zjc1ZDhiZmQ1Yy4uZDYzOWZl
NmI2ZTlmNGExYmI5NzM2N2Q1YzhhZjM4MjVhOWFjZmU3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvdzNjLWlt
cG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYWJvcnQvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDcgKzE0LDcgQEAgUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIExpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBz
LmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Fib3J0L2Rlc3Ryb3llZC1jb250ZXh0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9nZW5lcmFsLmFueS5qcwog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fi
b3J0L2tlZXBhbGl2ZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9hY2NlcHQtaGVhZGVyLmFueS5qcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL2FjY2VwdC1oZWFkZXIuYW55LmpzCmluZGV4IDNkODg2ZGZhZDVhMjVhZTE2NTA2ZTZlY2Ey
M2Q4NDVlM2E5OTcwMDcuLmNkNTRjZjJhMDNlOGE5MjYwNDIzNTZlZjlkMDMyYjczYzVkMWE1NDgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Jhc2ljL2FjY2VwdC1oZWFkZXIuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2FjY2VwdC1oZWFk
ZXIuYW55LmpzCkBAIC0xLDMgKzEsNCBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIK
IC8vIE1FVEE6IHNjcmlwdD0uLi9yZXNvdXJjZXMvdXRpbHMuanMKIAogcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL2NvbmRpdGlvbmFsLWdldC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwY2JiZTU4MWM3NjAzNWVjNjg3YzE5Nzg5YzE3OTE1NzllMWNjMzQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIFRlc3Rp
bmcgY29uZGl0aW9uYWwgR0VUIHdpdGggRVRhZ3MKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9u
YWwtZ2V0LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9jb25kaXRpb25hbC1nZXQuYW55LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMGNiYmU1ODFjNzYwMzVlYzY4N2MxOTc4OWMxNzkxNTc5ZTFjYzM0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0LmFueS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyBjb25kaXRpb25hbCBHRVQgd2l0aCBFVGFn
cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy9jb25kaXRpb25hbC1nZXQuYW55Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9jb25kaXRp
b25hbC1nZXQuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0
NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRpdGlvbmFsLWdldC5hbnku
aHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0
IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9jb25kaXRpb25hbC1nZXQuYW55
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0LmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjlmYTgxYzAyYjE4
YjhkNGM3MzZjYWYwMjJmYWI4NjBkNDQ4OGM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0
aW9uYWwtZ2V0LmFueS5qcwpAQCAtMCwwICsxLDM4IEBACisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0
IEVUYWcKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiBzY3JpcHQ9L2Nv
bW1vbi91dGlscy5qcworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBjYWNoZUJ1
c3RlciA9IHRva2VuKCk7IC8vIGVuc3VyZXMgZmlyc3QgcmVxdWVzdCBpcyB1bmNhY2hlZAorICB2
YXIgdXJsID0gIi4uL3Jlc291cmNlcy9jYWNoZS5weT92PSIgKyBjYWNoZUJ1c3RlcjsKKyAgdmFy
IGV0YWc7CisKKyAgLy8gbWFrZSB0aGUgZmlyc3QgcmVxdWVzdAorICByZXR1cm4gZmV0Y2godXJs
KS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgLy8gZW5zdXJlIHdlJ3JlIGdldHRpbmcg
dGhlIHJlZ3VsYXIsIHVuY2FjaGVkIHJlc3BvbnNlCisgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25z
ZS5zdGF0dXMsIDIwMCk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5oZWFkZXJzLmdldCgi
WC1IVFRQLVNUQVRVUyIpLCBudWxsKQorCisgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgLy8g
Y29uc3VtaW5nIHRoZSBib2R5LCBqdXN0IHRvIGJlIHNhZmUKKyAgfSkudGhlbihmdW5jdGlvbihi
b2R5KSB7CisgICAgLy8gbWFrZSBhIHNlY29uZCByZXF1ZXN0CisgICAgcmV0dXJuIGZldGNoKHVy
bCk7CisgIH0pLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAvLyB3aGlsZSB0aGUgc2Vy
dmVyIHJlc3BvbmRzIHdpdGggMzA0IGlmIG91ciBicm93c2VyIHNlbnQgdGhlIGNvcnJlY3QKKyAg
ICAvLyBJZi1Ob25lLU1hdGNoIHJlcXVlc3QgaGVhZGVyLCBhdCB0aGUgSmF2YVNjcmlwdCBsZXZl
bCB0aGlzIHN1cmZhY2VzCisgICAgLy8gYXMgMjAwCisgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25z
ZS5zdGF0dXMsIDIwMCk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5oZWFkZXJzLmdldCgi
WC1IVFRQLVNUQVRVUyIpLCAiMzA0IikKKworICAgIGV0YWcgPSByZXNwb25zZS5oZWFkZXJzLmdl
dCgiRVRhZyIpCisKKyAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyAvLyBjb25zdW1pbmcgdGhl
IGJvZHksIGp1c3QgdG8gYmUgc2FmZQorICB9KS50aGVuKGZ1bmN0aW9uKGJvZHkpIHsKKyAgICAv
LyBtYWtlIGEgdGhpcmQgcmVxdWVzdCwgZXhwbGljaXRseSBzZXR0aW5nIElmLU5vbmUtTWF0Y2gg
cmVxdWVzdCBoZWFkZXIKKyAgICB2YXIgaGVhZGVycyA9IHsgIklmLU5vbmUtTWF0Y2giOiBldGFn
IH0KKyAgICByZXR1cm4gZmV0Y2godXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMgfSkKKyAgfSkudGhl
bihmdW5jdGlvbihyZXNwb25zZSkgeworICAgIC8vIDMwNCBub3cgc3VyZmFjZXMgdGhhbmtzIHRv
IHRoZSBleHBsaWNpdCBJZi1Ob25lLU1hdGNoIHJlcXVlc3QgaGVhZGVyCisgICAgYXNzZXJ0X2Vx
dWFscyhyZXNwb25zZS5zdGF0dXMsIDMwNCk7CisgIH0pOworfSwgIlRlc3RpbmcgY29uZGl0aW9u
YWwgR0VUIHdpdGggRVRhZ3MiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRpdGlvbmFsLWdldC5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRpdGlvbmFsLWdldC5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMGNiYmU1ODFjNzYwMzVlYzY4N2MxOTc4OWMxNzkxNTc5ZTFj
YzM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0LmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgY29uZGl0aW9uYWwgR0VU
IHdpdGggRVRhZ3MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0LmFueS53b3JrZXIu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2Jhc2ljL2NvbmRpdGlvbmFsLWdldC5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4
MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL2NvbmRpdGlvbmFsLWdldC5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1
biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9jb25kaXRpb25hbC1nZXQuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjgwZTkyOWZlNmJiNTlkZTY3OTY3ZmRk
YTE1MThmY2Q4YTU1ZWYxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9iYXNpYy9jb25kaXRpb25hbC1nZXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUxICsw
LDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVxdWVzdCBFVGFnPC90aXRsZT4KLSAgICA8bWV0YSBu
YW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+
Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVh
ZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7
Ci0gICAgICB2YXIgY2FjaGVCdXN0ZXIgPSB0b2tlbigpOyAvLyBlbnN1cmVzIGZpcnN0IHJlcXVl
c3QgaXMgdW5jYWNoZWQKLSAgICAgIHZhciB1cmwgPSAiLi4vcmVzb3VyY2VzL2NhY2hlLnB5P3Y9
IiArIGNhY2hlQnVzdGVyOwotICAgICAgdmFyIGV0YWc7Ci0KLSAgICAgIC8vIG1ha2UgdGhlIGZp
cnN0IHJlcXVlc3QKLSAgICAgIHJldHVybiBmZXRjaCh1cmwpLnRoZW4oZnVuY3Rpb24ocmVzcG9u
c2UpIHsKLSAgICAgICAgLy8gZW5zdXJlIHdlJ3JlIGdldHRpbmcgdGhlIHJlZ3VsYXIsIHVuY2Fj
aGVkIHJlc3BvbnNlCi0gICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2Uuc3RhdHVzLCAyMDAp
OwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJYLUhUVFAtU1RB
VFVTIiksIG51bGwpCi0KLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgLy8gY29uc3Vt
aW5nIHRoZSBib2R5LCBqdXN0IHRvIGJlIHNhZmUKLSAgICAgIH0pLnRoZW4oZnVuY3Rpb24oYm9k
eSkgewotICAgICAgICAvLyBtYWtlIGEgc2Vjb25kIHJlcXVlc3QKLSAgICAgICAgcmV0dXJuIGZl
dGNoKHVybCk7Ci0gICAgICB9KS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgIC8v
IHdoaWxlIHRoZSBzZXJ2ZXIgcmVzcG9uZHMgd2l0aCAzMDQgaWYgb3VyIGJyb3dzZXIgc2VudCB0
aGUgY29ycmVjdAotICAgICAgICAvLyBJZi1Ob25lLU1hdGNoIHJlcXVlc3QgaGVhZGVyLCBhdCB0
aGUgSmF2YVNjcmlwdCBsZXZlbCB0aGlzIHN1cmZhY2VzCi0gICAgICAgIC8vIGFzIDIwMAotICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLnN0YXR1cywgMjAwKTsKLSAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZXNwb25zZS5oZWFkZXJzLmdldCgiWC1IVFRQLVNUQVRVUyIpLCAiMzA0IikKLQot
ICAgICAgICBldGFnID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoIkVUYWciKQotCi0gICAgICAgIHJl
dHVybiByZXNwb25zZS50ZXh0KCk7IC8vIGNvbnN1bWluZyB0aGUgYm9keSwganVzdCB0byBiZSBz
YWZlCi0gICAgICB9KS50aGVuKGZ1bmN0aW9uKGJvZHkpIHsKLSAgICAgICAgLy8gbWFrZSBhIHRo
aXJkIHJlcXVlc3QsIGV4cGxpY2l0bHkgc2V0dGluZyBJZi1Ob25lLU1hdGNoIHJlcXVlc3QgaGVh
ZGVyCi0gICAgICAgIHZhciBoZWFkZXJzID0geyAiSWYtTm9uZS1NYXRjaCI6IGV0YWcgfQotICAg
ICAgICByZXR1cm4gZmV0Y2godXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMgfSkKLSAgICAgIH0pLnRo
ZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgLy8gMzA0IG5vdyBzdXJmYWNlcyB0aGFu
a3MgdG8gdGhlIGV4cGxpY2l0IElmLU5vbmUtTWF0Y2ggcmVxdWVzdCBoZWFkZXIKLSAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZXNwb25zZS5zdGF0dXMsIDMwNCk7Ci0gICAgICB9KTsKLSAgICB9LCAi
VGVzdGluZyBjb25kaXRpb25hbCBHRVQgd2l0aCBFVGFncyIpOwotCi0gICAgZG9uZSgpOwotICAg
IDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRl
ci1yZXNwb25zZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3YmM4YzJjNWQyNTQ3ODRiNDE0
ZWY2OTM5ZWRkYmFkMzczYjQwNDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYmFzaWMvZXJyb3ItYWZ0ZXItcmVzcG9uc2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNCArMCwwIEBACi0KLVBBU1MgUmVzcG9uc2UgcmVhZGVyIHJlYWQoKSBwcm9t
aXNlIHNob3VsZCByZWplY3QgYWZ0ZXIgYSBuZXR3b3JrIGVycm9yIGhhcHBlbmluZyBhZnRlciBy
ZXNvbHZpbmcgZmV0Y2ggcHJvbWlzZQotUEFTUyBSZXNwb25zZSByZWFkZXIgY2xvc2VkIHByb21p
c2Ugc2hvdWxkIHJlamVjdCBhZnRlciBhIG5ldHdvcmsgZXJyb3IgaGFwcGVuaW5nIGFmdGVyIHJl
c29sdmluZyBmZXRjaCBwcm9taXNlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Vycm9yLWFmdGVyLXJlc3Bv
bnNlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS5hbnktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE3YmM4YzJjNWQyNTQ3ODRiNDE0ZWY2OTM5ZWRkYmFkMzczYjQw
NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS5hbnktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIFJlc3BvbnNlIHJlYWRlciByZWFkKCkgcHJv
bWlzZSBzaG91bGQgcmVqZWN0IGFmdGVyIGEgbmV0d29yayBlcnJvciBoYXBwZW5pbmcgYWZ0ZXIg
cmVzb2x2aW5nIGZldGNoIHByb21pc2UKK1BBU1MgUmVzcG9uc2UgcmVhZGVyIGNsb3NlZCBwcm9t
aXNlIHNob3VsZCByZWplY3QgYWZ0ZXIgYSBuZXR3b3JrIGVycm9yIGhhcHBlbmluZyBhZnRlciBy
ZXNvbHZpbmcgZmV0Y2ggcHJvbWlzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNw
b25zZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2Jhc2ljL2Vycm9yLWFmdGVyLXJlc3BvbnNlLmFueS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8
IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUg
dG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS5hbnkuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1h
ZnRlci1yZXNwb25zZS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjcxMTQ0MjVmOTU1MDRjMWU3Njg4NDIx
ZjE3Zjc0YmM4MzI2YjlkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Vycm9yLWFmdGVyLXJlc3Bv
bnNlLmFueS5qcwpAQCAtMCwwICsxLDI0IEBACisvLyBNRVRBOiB0aXRsZT1GZXRjaDogbmV0d29y
ayB0aW1lb3V0IGFmdGVyIHJlY2VpdmluZyB0aGUgSFRUUCByZXNwb25zZSBoZWFkZXJzCisvLyBN
RVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogdGltZW91dD1sb25nCisvLyBNRVRB
OiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCisKK2Z1bmN0aW9uIGNoZWNrUmVhZGVyKHRl
c3QsIHJlYWRlciwgcHJvbWlzZVRvVGVzdCkKK3sKKyAgICByZXR1cm4gcmVhZGVyLnJlYWQoKS50
aGVuKCh2YWx1ZSkgPT4geworICAgICAgICB2YWxpZGF0ZUJ1ZmZlckZyb21TdHJpbmcodmFsdWUu
dmFsdWUsICJURVNUX0NIVU5LIiwgIlNob3VsZCByZWNlaXZlIGZpcnN0IGNodW5rIik7CisgICAg
ICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCBwcm9taXNlVG9U
ZXN0KHJlYWRlcikpOworICAgIH0pOworfQorCitwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAg
ICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9iYWQtY2h1bmstZW5jb2RpbmcucHk/Y291bnQ9
MSIpLnRoZW4oKHJlc3BvbnNlKSA9PiB7CisgICAgICAgIHJldHVybiBjaGVja1JlYWRlcih0ZXN0
LCByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLCByZWFkZXIgPT4gcmVhZGVyLnJlYWQoKSk7Cisg
ICAgfSk7Cit9LCAiUmVzcG9uc2UgcmVhZGVyIHJlYWQoKSBwcm9taXNlIHNob3VsZCByZWplY3Qg
YWZ0ZXIgYSBuZXR3b3JrIGVycm9yIGhhcHBlbmluZyBhZnRlciByZXNvbHZpbmcgZmV0Y2ggcHJv
bWlzZSIpOworCitwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICByZXR1cm4gZmV0Y2goIi4u
L3Jlc291cmNlcy9iYWQtY2h1bmstZW5jb2RpbmcucHk/Y291bnQ9MSIpLnRoZW4oKHJlc3BvbnNl
KSA9PiB7CisgICAgICAgIHJldHVybiBjaGVja1JlYWRlcih0ZXN0LCByZXNwb25zZS5ib2R5Lmdl
dFJlYWRlcigpLCByZWFkZXIgPT4gcmVhZGVyLmNsb3NlZCk7CisgICAgfSk7Cit9LCAiUmVzcG9u
c2UgcmVhZGVyIGNsb3NlZCBwcm9taXNlIHNob3VsZCByZWplY3QgYWZ0ZXIgYSBuZXR3b3JrIGVy
cm9yIGhhcHBlbmluZyBhZnRlciByZXNvbHZpbmcgZmV0Y2ggcHJvbWlzZSIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
YmFzaWMvZXJyb3ItYWZ0ZXItcmVzcG9uc2UuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9l
cnJvci1hZnRlci1yZXNwb25zZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
N2JjOGMyYzVkMjU0Nzg0YjQxNGVmNjkzOWVkZGJhZDM3M2I0MDQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
YmFzaWMvZXJyb3ItYWZ0ZXItcmVzcG9uc2UuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACisKK1BBU1MgUmVzcG9uc2UgcmVhZGVyIHJlYWQoKSBwcm9taXNlIHNob3VsZCBy
ZWplY3QgYWZ0ZXIgYSBuZXR3b3JrIGVycm9yIGhhcHBlbmluZyBhZnRlciByZXNvbHZpbmcgZmV0
Y2ggcHJvbWlzZQorUEFTUyBSZXNwb25zZSByZWFkZXIgY2xvc2VkIHByb21pc2Ugc2hvdWxkIHJl
amVjdCBhZnRlciBhIG5ldHdvcmsgZXJyb3IgaGFwcGVuaW5nIGFmdGVyIHJlc29sdmluZyBmZXRj
aCBwcm9taXNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Vycm9yLWFmdGVyLXJlc3BvbnNlLmFueS53b3Jr
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL2Vycm9yLWFmdGVyLXJlc3BvbnNlLmFueS53b3JrZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYmFzaWMvZXJyb3ItYWZ0ZXItcmVzcG9uc2UuYW55Lndvcmtlci5odG1sCkBAIC0wLDAg
KzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0
cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Vycm9yLWFmdGVyLXJlc3BvbnNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9l
cnJvci1hZnRlci1yZXNwb25zZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
ZGIzNDI5MzI0YWYxNjk2OWQwNzZjMWM0ZGIwM2I4YjY4NDk2YmY2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Vycm9yLWFmdGVyLXJlc3BvbnNlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1s
PgotICA8aGVhZD4KLSAgICA8dGl0bGU+RmV0Y2g6IG5ldHdvcmsgdGltZW91dCBhZnRlciByZWNl
aXZpbmcgdGhlIEhUVFAgcmVzcG9uc2UgaGVhZGVyczwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3V0aWxzLmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8ZGl2IGlkPSJs
b2ciPjwvZGl2PgotICAgIDxzY3JpcHQ+Ci1mdW5jdGlvbiBjaGVja1JlYWRlcih0ZXN0LCByZWFk
ZXIsIHByb21pc2VUb1Rlc3QpCi17Ci0gICAgcmV0dXJuIHJlYWRlci5yZWFkKCkudGhlbigodmFs
dWUpID0+IHsKLSAgICAgICAgdmFsaWRhdGVCdWZmZXJGcm9tU3RyaW5nKHZhbHVlLnZhbHVlLCAi
VEVTVF9DSFVOSyIsICJTaG91bGQgcmVjZWl2ZSBmaXJzdCBjaHVuayIpOwotICAgICAgICByZXR1
cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcHJvbWlzZVRvVGVzdChyZWFk
ZXIpKTsKLSAgICB9KTsKLX0KLQotcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7Ci0gICAgcmV0dXJu
IGZldGNoKCIuLi9yZXNvdXJjZXMvYmFkLWNodW5rLWVuY29kaW5nLnB5P2NvdW50PTEiKS50aGVu
KChyZXNwb25zZSkgPT4gewotICAgICAgICByZXR1cm4gY2hlY2tSZWFkZXIodGVzdCwgcmVzcG9u
c2UuYm9keS5nZXRSZWFkZXIoKSwgcmVhZGVyID0+IHJlYWRlci5yZWFkKCkpOwotICAgIH0pOwot
fSwgIlJlc3BvbnNlIHJlYWRlciByZWFkKCkgcHJvbWlzZSBzaG91bGQgcmVqZWN0IGFmdGVyIGEg
bmV0d29yayBlcnJvciBoYXBwZW5pbmcgYWZ0ZXIgcmVzb2x2aW5nIGZldGNoIHByb21pc2UiKTsK
LQotcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJj
ZXMvYmFkLWNodW5rLWVuY29kaW5nLnB5P2NvdW50PTEiKS50aGVuKChyZXNwb25zZSkgPT4gewot
ICAgICAgICByZXR1cm4gY2hlY2tSZWFkZXIodGVzdCwgcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIo
KSwgcmVhZGVyID0+IHJlYWRlci5jbG9zZWQpOwotICAgIH0pOwotfSwgIlJlc3BvbnNlIHJlYWRl
ciBjbG9zZWQgcHJvbWlzZSBzaG91bGQgcmVqZWN0IGFmdGVyIGEgbmV0d29yayBlcnJvciBoYXBw
ZW5pbmcgYWZ0ZXIgcmVzb2x2aW5nIGZldGNoIHByb21pc2UiKTsKLSAgICA8L3NjcmlwdD4KLSAg
PC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9oaXN0b3JpY2FsLmFueS5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L2hpc3RvcmljYWwuYW55LmpzCmluZGV4IGFlYTQxODRhYzhiY2EwYzgyMGNiZjJkODIyY2MzODEy
NWY1MTJlOWEuLmM4MDgxMjYyMTY4ZTM2NzE2YTJmNzNlMzU2ODE1NDJjNDJjYTc3MzMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2Jhc2ljL2hpc3RvcmljYWwuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2hpc3RvcmljYWwuYW55LmpzCkBA
IC0xLDMgKzEsNSBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKwogdGVzdCgoKSA9
PiB7CiAgIGFzc2VydF9mYWxzZSgiZ2V0QWxsIiBpbiBuZXcgSGVhZGVycygpKTsKICAgYXNzZXJ0
X2ZhbHNlKCJnZXRBbGwiIGluIEhlYWRlcnMucHJvdG90eXBlKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3Jl
cXVlc3QtZm9yYmlkZGVuLWhlYWRlcnMuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1mb3JiaWRkZW4taGVh
ZGVycy5hbnkuanMKaW5kZXggZmVkYWJlZDU0MThiZWE4MWU5ZmYxOWMzYzMyNWQ1NDJiOTlmYWYz
MS4uNWQ4NWM0ZTYyZDMyYjBlMWRmZjAyNjU5Njc2OTNmZGU2ODg2OTRiMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFz
aWMvcmVxdWVzdC1mb3JiaWRkZW4taGVhZGVycy5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1mb3Ji
aWRkZW4taGVhZGVycy5hbnkuanMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRBOiBnbG9iYWw9d2lu
ZG93LHdvcmtlcgogLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcwogCiBmdW5j
dGlvbiByZXF1ZXN0Rm9yYmlkZGVuSGVhZGVycyhkZXNjLCBmb3JiaWRkZW5IZWFkZXJzKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWQuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkLmFueS5q
cwppbmRleCBkYzQzNWJmMGQ2ZGY5NDNiYzAyNDA2ZWE0NmVjMGNjZTQxMzRjNGQ5Li5lMGI2YWZh
MDc5YTQwMDBjYzk3ZGQ3MDJhNTMxZjY5YzU2OGVhZmNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0
LWhlYWQuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZC5hbnkuanMKQEAgLTEsMyArMSw1IEBA
CisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorCiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dGVzdCkgewogICB2YXIgcmVxdWVzdEluaXQgPSB7Im1ldGhvZCI6ICJIRUFEIiwgImJvZHkiOiAi
dGVzdCJ9OwogICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgZmV0
Y2goIi4iLCByZXF1ZXN0SW5pdCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLWNh
c2UuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLWNhc2UuYW55LmpzCmluZGV4IDA2N2VhYmIx
MzMyOWIxY2FhYjdmNTE1OWIyOWJiZThhNjZlMGZmODUuLjRjMTBlNzE3ZjhjMmU1OTRkMGUxZjYx
MmNlMGExOTE5MWFjNWZjODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy1jYXNlLmFu
eS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtY2FzZS5hbnkuanMKQEAgLTEsMyArMSw1IEBA
CisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorCiBwcm9taXNlX3Rlc3QoKCkgPT4gewog
ICByZXR1cm4gZmV0Y2goIi94aHIvcmVzb3VyY2VzL2VjaG8taGVhZGVycy5weSIsIHtoZWFkZXJz
OiBbWyJUSElTLWlzLUEtdGVzdCIsIDFdLCBbIlRISVMtSVMtQS1URVNUIiwgMl1dIH0pLnRoZW4o
cmVzID0+IHJlcy50ZXh0KCkpLnRoZW4oYm9keSA9PiB7CiAgICAgYXNzZXJ0X3JlZ2V4cF9tYXRj
aChib2R5LCAvVEhJUy1pcy1BLXRlc3Q6IDEsIDIvKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1o
ZWFkZXJzLW5vbmFzY2lpLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9u
YXNjaWkuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmZkZDllMDFkZTAyNDkzNWQ4MTc2
Y2Y4ZTcyMjRmZGY3YjMzNWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJz
LW5vbmFzY2lpLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgTm9uLWFz
Y2lpIGJ5dGVzIGluIHJlcXVlc3QgaGVhZGVycworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhl
YWRlcnMtbm9uYXNjaWkuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWkuYW55
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhj
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy1ub25hc2NpaS5hbnkuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNj
aWkuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLW5vbmFzY2lpLmFueS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YTlhODAxMTM4NTM1MTQ3M2YzMTkzNmI0YTVhODFmZWU1OGVjMjUwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLW5vbmFzY2lpLmFueS5qcwpAQCAtMCwwICsxLDI5IEBA
CisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorCisvLyBUaGlzIHRlc3RzIGNoYXJhY3Rl
cnMgdGhhdCBhcmUgbm90CisvLyBodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jYXNjaWkt
Y29kZS1wb2ludAorLy8gYnV0IGFyZSBzdGlsbAorLy8gaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3
Zy5vcmcvI2J5dGUtdmFsdWUKKy8vIGluIHJlcXVlc3QgaGVhZGVyIHZhbHVlcy4KKy8vIFN1Y2gg
cmVxdWVzdCBoZWFkZXIgdmFsdWVzIGFyZSB2YWxpZCBhbmQgdGh1cyBzZW50IHRvIHNlcnZlcnMu
CisvLyBDaGFyYWN0ZXJzIG91dHNpZGUgdGhlICNieXRlLXZhbHVlIHJhbmdlIGFyZSB0ZXN0ZWQg
ZS5nLiBpbgorLy8gZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMuaHRtbC4KKworcHJv
bWlzZV90ZXN0KCgpID0+IHsKKyAgcmV0dXJuIGZldGNoKAorICAgICIuLi9yZXNvdXJjZXMvaW5z
cGVjdC1oZWFkZXJzLnB5P2hlYWRlcnM9YWNjZXB0fHgtdGVzdCIsCisgICAge2hlYWRlcnM6IHsK
KyAgICAgICJBY2NlcHQiOiAiYmVmb3JlLcOmw7jDpS1hZnRlciIsCisgICAgICAiWC1UZXN0Ijog
ImJlZm9yZS3Dny1hZnRlciIKKyAgICB9fSkKKyAgICAudGhlbihyZXMgPT4geworICAgICAgYXNz
ZXJ0X2VxdWFscygKKyAgICAgICAgICByZXMuaGVhZGVycy5nZXQoIngtcmVxdWVzdC1hY2NlcHQi
KSwKKyAgICAgICAgICAiYmVmb3JlLcOmw7jDpS1hZnRlciIsCisgICAgICAgICAgIkFjY2VwdCBI
ZWFkZXIiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgcmVzLmhlYWRlcnMuZ2V0
KCJ4LXJlcXVlc3QteC10ZXN0IiksCisgICAgICAgICAgImJlZm9yZS3Dny1hZnRlciIsCisgICAg
ICAgICAgIlgtVGVzdCBIZWFkZXIiKTsKKyAgICB9KTsKK30sICJOb24tYXNjaWkgYnl0ZXMgaW4g
cmVxdWVzdCBoZWFkZXJzIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNj
aWkuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWku
YW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJmZGQ5ZTAxZGUwMjQ5MzVkODE3
NmNmOGU3MjI0ZmRmN2IzMzVjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVy
cy1ub25hc2NpaS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBOb24tYXNjaWkgYnl0ZXMgaW4gcmVxdWVzdCBoZWFkZXJzCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3Jl
cXVlc3QtaGVhZGVycy1ub25hc2NpaS5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRl
cnMtbm9uYXNjaWkuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhl
YWRlcnMtbm9uYXNjaWkuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBm
aWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhl
IHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMuYW55Lmpz
CmluZGV4IDRiYTcwZjdjNDk2YjdjNDA2ZTVlZDFhZWYzNWJhNWVmYjNkYzQ2ZWYuLmFjNTQyNTZl
NGM2YTYzNzc0MTRkM2EyNGRiZTFmZTM0YzhiYjY2NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3Qt
aGVhZGVycy5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmFueS5qcwpAQCAtMSwzICsx
LDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4v
cmVzb3VyY2VzL3V0aWxzLmpzCiAKIGZ1bmN0aW9uIGNoZWNrQ29udGVudFR5cGUoY29udGVudFR5
cGUsIGJvZHkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXJlZmVycmVyLmFueS5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3Jl
cXVlc3QtcmVmZXJyZXIuYW55LmpzCmluZGV4IDYyZmJkNDNlMWRkNDJkOWJhMzIwNTM2ZWI5OTIx
ZjZjNmVlMDQwMDQuLjBjMzM1NzY0MmQ2NzRiNzMyNzk2NmY4NDBmYWIyNzU1MDg4M2I3ZGEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtcmVmZXJyZXIuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtcmVm
ZXJyZXIuYW55LmpzCkBAIC0xLDMgKzEsNCBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3Jr
ZXIKIC8vIE1FVEE6IHNjcmlwdD0uLi9yZXNvdXJjZXMvdXRpbHMuanMKIAogZnVuY3Rpb24gdGVz
dFJlZmVycmVyKHJlZmVycmVyLCBleHBlY3RlZCwgZGVzYykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVx
dWVzdC11cGxvYWQuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11cGxvYWQuYW55LmpzCmluZGV4IDE0ZjRh
MDdhNDk4N2U0MjRlZTQyYTIzYWMwMjE4YWNjNzdhNDJiNzYuLjE0MTI4MTZhM2MyMjBkNjBjYTFi
M2M1MjVhYzU5NTNkMTAxNTdjM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtdXBsb2FkLmFueS5q
cworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC5hbnkuanMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRB
OiBnbG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGls
cy5qcwogCiBmdW5jdGlvbiB0ZXN0VXBsb2FkKGRlc2MsIHVybCwgbWV0aG9kLCBjcmVhdGVCb2R5
LCBleHBlY3RlZEJvZHkpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3NjaGVtZS1hYm91dC5hbnkuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNp
Yy9zY2hlbWUtYWJvdXQuYW55LmpzCmluZGV4IGViODkyZDMyZmZmOWYzYmY2OTM4NTNkMmRmMTVm
MTc5ZDQyOTRjYjUuLjQzMjliZDA3MDMyMGRkZjhlNDc1ZGUyYjk3YTg4NTlmMjAxY2ViYmQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL3NjaGVtZS1hYm91dC5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvc2NoZW1lLWFib3V0LmFu
eS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBN
RVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIGZ1bmN0aW9uIGNoZWNrTmV0d29y
a0Vycm9yKHVybCwgbWV0aG9kKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9zY2hlbWUtZGF0YS5hbnkuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9zY2hlbWUtZGF0YS5hbnkuanMKaW5kZXggZTRhODgwNzE5ZDM0MTBhNzdiNjg2ZTdlMTk0
M2NiYWY1NWQ0MzcyYi4uMWMzYjVkYzgxNmM4OGIyOGVkMmZkMDU2MDdhMjQ5MmJhOGI2ZjVhNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYmFzaWMvc2NoZW1lLWRhdGEuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3NjaGVtZS1kYXRhLmFu
eS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBN
RVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIGZ1bmN0aW9uIGNoZWNrRmV0Y2hS
ZXNwb25zZSh1cmwsIGRhdGEsIG1pbWUsIGZldGNoTW9kZSwgbWV0aG9kKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9zY2hlbWUtb3RoZXJzLnN1Yi5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9zY2hlbWUtb3RoZXJzLnN1Yi5hbnku
anMKaW5kZXggOWMzY2FkMTcwMjg1MjRhMmQyZDY1ZTNiNGZkZTc5ZDA2NjJiMDM3Yy4uNTUwZjY5
YzQxYjVhNDNhYTVjYTE5OTY3MDMzNzVmYTFlYTZmYmM4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvc2NoZW1l
LW90aGVycy5zdWIuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3NjaGVtZS1vdGhlcnMuc3ViLmFueS5qcwpAQCAt
MSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3Jp
cHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIGZ1bmN0aW9uIGNoZWNrS29VcmwodXJsLCBkZXNj
KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy9zdHJlYW0tcmVzcG9uc2UuYW55LmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvc3RyZWFtLXJl
c3BvbnNlLmFueS5qcwppbmRleCA1YjExMDE4ZWIzMTY0OGY1NTAzZWJhMWIxZTcxYTYxNmUyMTli
Mzc1Li40YTg4NTVhNjJkN2IwZDViNTNlOWYyNDk1ZjIwOTE3MDExNGFkNGI2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9zdHJlYW0tcmVzcG9uc2UuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3N0cmVhbS1yZXNwb25zZS5hbnku
anMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVU
QTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcwogCiBmdW5jdGlvbiBzdHJlYW1Cb2R5KHJl
YWRlciwgdGVzdCwgY291bnQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3RleHQtdXRmOC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9iYXNpYy90ZXh0LXV0ZjgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhZmJkMjQwODkxMzUzYWIyYWI4MGM2ZDUzZWIxYTcwNWE5MGRlMDgxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3RleHQtdXRmOC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0KLVBBU1MgVVRGLTggd2l0aCBC
T00gd2l0aCBSZXF1ZXN0LnRleHQoKQotUEFTUyBVVEYtOCB3aXRoIEJPTSB3aXRoIFJlc3BvbnNl
LnRleHQoKQotUEFTUyBVVEYtOCB3aXRoIEJPTSB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTggY2hh
cnNldCkKLVBBU1MgVVRGLTggd2l0aCBCT00gd2l0aCBmZXRjaGVkIGRhdGEgKFVURi0xNiBjaGFy
c2V0KQotUEFTUyBVVEYtOCB3aXRoIEJPTSAoUmVzcG9uc2Ugb2JqZWN0KQotUEFTUyBVVEYtOCB3
aXRoIEJPTSAoUmVxdWVzdCBvYmplY3QpCi1QQVNTIFVURi04IHdpdGhvdXQgQk9NIHdpdGggUmVx
dWVzdC50ZXh0KCkKLVBBU1MgVVRGLTggd2l0aG91dCBCT00gd2l0aCBSZXNwb25zZS50ZXh0KCkK
LVBBU1MgVVRGLTggd2l0aG91dCBCT00gd2l0aCBmZXRjaGVkIGRhdGEgKFVURi04IGNoYXJzZXQp
Ci1QQVNTIFVURi04IHdpdGhvdXQgQk9NIHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNl
dCkKLVBBU1MgVVRGLTggd2l0aG91dCBCT00gKFJlc3BvbnNlIG9iamVjdCkKLVBBU1MgVVRGLTgg
d2l0aG91dCBCT00gKFJlcXVlc3Qgb2JqZWN0KQotUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNv
ZGVkIGFzIFVURi04IHdpdGggUmVxdWVzdC50ZXh0KCkKLVBBU1MgVVRGLTE2QkUgd2l0aCBCT00g
ZGVjb2RlZCBhcyBVVEYtOCB3aXRoIFJlc3BvbnNlLnRleHQoKQotUEFTUyBVVEYtMTZCRSB3aXRo
IEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtOCBjaGFyc2V0KQot
UEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRh
IChVVEYtMTYgY2hhcnNldCkKLVBBU1MgVVRGLTE2QkUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYt
OCAoUmVzcG9uc2Ugb2JqZWN0KQotUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVU
Ri04IChSZXF1ZXN0IG9iamVjdCkKLVBBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBV
VEYtOCB3aXRoIFJlcXVlc3QudGV4dCgpCi1QQVNTIFVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQg
YXMgVVRGLTggd2l0aCBSZXNwb25zZS50ZXh0KCkKLVBBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVj
b2RlZCBhcyBVVEYtOCB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTggY2hhcnNldCkKLVBBU1MgVVRG
LTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTE2
IGNoYXJzZXQpCi1QQVNTIFVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQgYXMgVVRGLTggKFJlc3Bv
bnNlIG9iamVjdCkKLVBBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCAoUmVx
dWVzdCBvYmplY3QpCi1QQVNTIFVURi0xNiB3aXRob3V0IEJPTSBkZWNvZGVkIGFzIFVURi04IHdp
dGggUmVxdWVzdC50ZXh0KCkKLVBBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRG
LTggd2l0aCBSZXNwb25zZS50ZXh0KCkKLVBBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQg
YXMgVVRGLTggd2l0aCBmZXRjaGVkIGRhdGEgKFVURi04IGNoYXJzZXQpCi1QQVNTIFVURi0xNiB3
aXRob3V0IEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hh
cnNldCkKLVBBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggKFJlc3BvbnNl
IG9iamVjdCkKLVBBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggKFJlcXVl
c3Qgb2JqZWN0KQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0ZjguYW55LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL3RleHQtdXRmOC5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmYmQyNDA4OTEzNTNh
YjJhYjgwYzZkNTNlYjFhNzA1YTkwZGUwODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0
ZjguYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACisKK1BBU1MgVVRGLTggd2l0aCBC
T00gd2l0aCBSZXF1ZXN0LnRleHQoKQorUEFTUyBVVEYtOCB3aXRoIEJPTSB3aXRoIFJlc3BvbnNl
LnRleHQoKQorUEFTUyBVVEYtOCB3aXRoIEJPTSB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTggY2hh
cnNldCkKK1BBU1MgVVRGLTggd2l0aCBCT00gd2l0aCBmZXRjaGVkIGRhdGEgKFVURi0xNiBjaGFy
c2V0KQorUEFTUyBVVEYtOCB3aXRoIEJPTSAoUmVzcG9uc2Ugb2JqZWN0KQorUEFTUyBVVEYtOCB3
aXRoIEJPTSAoUmVxdWVzdCBvYmplY3QpCitQQVNTIFVURi04IHdpdGhvdXQgQk9NIHdpdGggUmVx
dWVzdC50ZXh0KCkKK1BBU1MgVVRGLTggd2l0aG91dCBCT00gd2l0aCBSZXNwb25zZS50ZXh0KCkK
K1BBU1MgVVRGLTggd2l0aG91dCBCT00gd2l0aCBmZXRjaGVkIGRhdGEgKFVURi04IGNoYXJzZXQp
CitQQVNTIFVURi04IHdpdGhvdXQgQk9NIHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNl
dCkKK1BBU1MgVVRGLTggd2l0aG91dCBCT00gKFJlc3BvbnNlIG9iamVjdCkKK1BBU1MgVVRGLTgg
d2l0aG91dCBCT00gKFJlcXVlc3Qgb2JqZWN0KQorUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNv
ZGVkIGFzIFVURi04IHdpdGggUmVxdWVzdC50ZXh0KCkKK1BBU1MgVVRGLTE2QkUgd2l0aCBCT00g
ZGVjb2RlZCBhcyBVVEYtOCB3aXRoIFJlc3BvbnNlLnRleHQoKQorUEFTUyBVVEYtMTZCRSB3aXRo
IEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtOCBjaGFyc2V0KQor
UEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRh
IChVVEYtMTYgY2hhcnNldCkKK1BBU1MgVVRGLTE2QkUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYt
OCAoUmVzcG9uc2Ugb2JqZWN0KQorUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVU
Ri04IChSZXF1ZXN0IG9iamVjdCkKK1BBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBV
VEYtOCB3aXRoIFJlcXVlc3QudGV4dCgpCitQQVNTIFVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQg
YXMgVVRGLTggd2l0aCBSZXNwb25zZS50ZXh0KCkKK1BBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVj
b2RlZCBhcyBVVEYtOCB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTggY2hhcnNldCkKK1BBU1MgVVRG
LTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTE2
IGNoYXJzZXQpCitQQVNTIFVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQgYXMgVVRGLTggKFJlc3Bv
bnNlIG9iamVjdCkKK1BBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCAoUmVx
dWVzdCBvYmplY3QpCitQQVNTIFVURi0xNiB3aXRob3V0IEJPTSBkZWNvZGVkIGFzIFVURi04IHdp
dGggUmVxdWVzdC50ZXh0KCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRG
LTggd2l0aCBSZXNwb25zZS50ZXh0KCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQg
YXMgVVRGLTggd2l0aCBmZXRjaGVkIGRhdGEgKFVURi04IGNoYXJzZXQpCitQQVNTIFVURi0xNiB3
aXRob3V0IEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hh
cnNldCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggKFJlc3BvbnNl
IG9iamVjdCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggKFJlcXVl
c3Qgb2JqZWN0KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0ZjguYW55Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0
LXV0ZjguYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2
MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3RleHQtdXRmOC5hbnkuaHRtbApAQCAt
MCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0ZjguYW55LmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvdGV4dC11
dGY4LmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWM4Yzg4ODI1ZDM3YmZhZmU2M2Q3NTdkMzNhOWEzNTI4
NGUyMmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvdGV4dC11dGY4LmFueS5qcwpAQCAtMCwwICsx
LDc0IEBACisvLyBNRVRBOiB0aXRsZT1GZXRjaDogUmVxdWVzdCBhbmQgUmVzcG9uc2UgdGV4dCgp
IHNob3VsZCBkZWNvZGUgYXMgVVRGLTgKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisv
LyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCisKK2Z1bmN0aW9uIHRlc3RUZXh0
RGVjb2RpbmcoYm9keSwgZXhwZWN0ZWRUZXh0LCB1cmxQYXJhbWV0ZXIsIHRpdGxlKQoreworICAg
IHZhciBhcnJheUJ1ZmZlciA9IHN0cmluZ1RvQXJyYXkoYm9keSk7CisKKyAgICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIi
LCB7bWV0aG9kOiAiUE9TVCIsIGJvZHk6IGFycmF5QnVmZmVyfSk7CisgICAgICAgIHJldHVybiBy
ZXF1ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHZhbHVlLCBleHBlY3RlZFRleHQsICJSZXF1ZXN0LnRleHQoKSBzaG91bGQgZGVjb2Rl
IGRhdGEgYXMgVVRGLTgiKTsKKyAgICAgICAgfSk7CisgICAgfSwgdGl0bGUgKyAiIHdpdGggUmVx
dWVzdC50ZXh0KCkiKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAg
ICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZShhcnJheUJ1ZmZlcik7CisgICAgICAgIHJl
dHVybiByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbih2YWx1ZSkgeworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyh2YWx1ZSwgZXhwZWN0ZWRUZXh0LCAiUmVzcG9uc2UudGV4dCgpIHNob3Vs
ZCBkZWNvZGUgZGF0YSBhcyBVVEYtOCIpOworICAgICAgICB9KTsKKyAgICB9LCB0aXRsZSArICIg
d2l0aCBSZXNwb25zZS50ZXh0KCkiKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0
KSB7CisgICAgICAgIHJldHVybiBmZXRjaCgiLi4vcmVzb3VyY2VzL3N0YXR1cy5weT9jb2RlPTIw
MCZ0eXBlPXRleHQlMkZwbGFpbiUzQmNoYXJzZXQlM0RVVEYtOCZjb250ZW50PSIgKyB1cmxQYXJh
bWV0ZXIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNw
b25zZS50ZXh0KCkudGhlbihmdW5jdGlvbih2YWx1ZSkgeworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHModmFsdWUsIGV4cGVjdGVkVGV4dCwgIkZldGNoZWQgUmVzcG9uc2UudGV4dCgpIHNo
b3VsZCBkZWNvZGUgZGF0YSBhcyBVVEYtOCIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0p
OworICAgIH0sIHRpdGxlICsgIiB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTggY2hhcnNldCkiKTsK
KworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgIHJldHVybiBmZXRj
aCgiLi4vcmVzb3VyY2VzL3N0YXR1cy5weT9jb2RlPTIwMCZ0eXBlPXRleHQlMkZwbGFpbiUzQmNo
YXJzZXQlM0RVVEYtMTYmY29udGVudD0iICsgdXJsUGFyYW1ldGVyKS50aGVuKGZ1bmN0aW9uKHJl
c3BvbnNlKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rp
b24odmFsdWUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBleHBlY3Rl
ZFRleHQsICJGZXRjaGVkIFJlc3BvbnNlLnRleHQoKSBzaG91bGQgZGVjb2RlIGRhdGEgYXMgVVRG
LTgiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9LCB0aXRsZSArICIgd2l0
aCBmZXRjaGVkIGRhdGEgKFVURi0xNiBjaGFyc2V0KSIpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHRlc3QpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZShib2R5KS5hcnJheUJ1
ZmZlcigpLnRoZW4oZnVuY3Rpb24oYnVmZmVyKSB7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKG5ldyBVaW50OEFycmF5KGJ1ZmZlciksIGVuY29kZV91dGY4KGJvZHkpLCAiUmVzcG9u
c2UuYXJyYXlCdWZmZXIoKSBzaG91bGQgY29udGFpbiBkYXRhIGVuY29kZWQgYXMgVVRGLTgiKTsK
KyAgICAgICAgfSk7CisgICAgfSwgdGl0bGUgKyAiIChSZXNwb25zZSBvYmplY3QpIik7CisKKyAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICByZXR1cm4gbmV3IFJlcXVl
c3QoIiIsIHttZXRob2Q6ICJQT1NUIiwgYm9keTogYm9keX0pLmFycmF5QnVmZmVyKCkudGhlbihm
dW5jdGlvbihidWZmZXIpIHsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobmV3IFVp
bnQ4QXJyYXkoYnVmZmVyKSwgZW5jb2RlX3V0ZjgoYm9keSksICJSZXF1ZXN0LmFycmF5QnVmZmVy
KCkgc2hvdWxkIGNvbnRhaW4gZGF0YSBlbmNvZGVkIGFzIFVURi04Iik7CisgICAgICAgIH0pOwor
ICAgIH0sIHRpdGxlICsgIiAoUmVxdWVzdCBvYmplY3QpIik7CisKK30KKwordmFyIHV0ZjhXaXRo
Qk9NID0gIlx4ZWZceGJiXHhiZlx4ZTRceGI4XHg4OVx4ZTZceDlkXHg5MVx4ZTNceDgxXHg4Ylx4
ZTNceDgxXHhhYVx4ZTVceGFkXHg5MCI7Cit2YXIgdXRmOFdpdGhCT01Bc1VSTFBhcmFtZXRlciA9
ICIlRUYlQkIlQkYlRTQlQjglODklRTYlOUQlOTElRTMlODElOEIlRTMlODElQUElRTUlQUQlOTAi
OwordmFyIHV0ZjhXaXRob3V0Qk9NID0gIlx4ZTRceGI4XHg4OVx4ZTZceDlkXHg5MVx4ZTNceDgx
XHg4Ylx4ZTNceDgxXHhhYVx4ZTVceGFkXHg5MCI7Cit2YXIgdXRmOFdpdGhvdXRCT01Bc1VSTFBh
cmFtZXRlciA9ICIlRTQlQjglODklRTYlOUQlOTElRTMlODElOEIlRTMlODElQUElRTUlQUQlOTAi
OwordmFyIHV0ZjhEZWNvZGVkID0gIuS4ieadkeOBi+OBquWtkCI7Cit0ZXN0VGV4dERlY29kaW5n
KHV0ZjhXaXRoQk9NLCB1dGY4RGVjb2RlZCwgdXRmOFdpdGhCT01Bc1VSTFBhcmFtZXRlciwgIlVU
Ri04IHdpdGggQk9NIik7Cit0ZXN0VGV4dERlY29kaW5nKHV0ZjhXaXRob3V0Qk9NLCB1dGY4RGVj
b2RlZCwgdXRmOFdpdGhvdXRCT01Bc1VSTFBhcmFtZXRlciwgIlVURi04IHdpdGhvdXQgQk9NIik7
CisKK3ZhciB1dGYxNkJFV2l0aEJPTSA9ICJceGZlXHhmZlx4NGVceDA5XHg2N1x4NTFceDMwXHg0
Ylx4MzBceDZhXHg1Ylx4NTAiOwordmFyIHV0ZjE2QkVXaXRoQk9NQXNVUkxQYXJhbWV0ZXIgPSAi
JWZlJWZmJTRlJTA5JTY3JTUxJTMwJTRiJTMwJTZhJTViJTUwIjsKK3ZhciB1dGYxNkJFV2l0aEJP
TURlY29kZWRBc1VURjggPSAi77+977+9Tlx0Z1EwSzBqW1AiOwordGVzdFRleHREZWNvZGluZyh1
dGYxNkJFV2l0aEJPTSwgdXRmMTZCRVdpdGhCT01EZWNvZGVkQXNVVEY4LCB1dGYxNkJFV2l0aEJP
TUFzVVJMUGFyYW1ldGVyLCAiVVRGLTE2QkUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCIpOwor
Cit2YXIgdXRmMTZMRVdpdGhCT00gPSAiXHhmZlx4ZmVceDA5XHg0ZVx4NTFceDY3XHg0Ylx4MzBc
eDZhXHgzMFx4NTBceDViIjsKK3ZhciB1dGYxNkxFV2l0aEJPTUFzVVJMUGFyYW1ldGVyID0gIiVm
ZiVmZSUwOSU0ZSU1MSU2NyU0YiUzMCU2YSUzMCU1MCU1YiI7Cit2YXIgdXRmMTZMRVdpdGhCT01E
ZWNvZGVkQXNVVEY4ID0gIu+/ve+/vVx0TlFnSzBqMFBbIjsKK3Rlc3RUZXh0RGVjb2RpbmcodXRm
MTZMRVdpdGhCT00sIHV0ZjE2TEVXaXRoQk9NRGVjb2RlZEFzVVRGOCwgdXRmMTZMRVdpdGhCT01B
c1VSTFBhcmFtZXRlciwgIlVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQgYXMgVVRGLTgiKTsKKwor
dmFyIHV0ZjE2V2l0aG91dEJPTSA9ICJceGU2XHgwMFx4ZjhceDAwXHhlNVx4MDBceDBhXHgwMFx4
YzZceDMwXHhiOVx4MzBceGM4XHgzMFx4MGFceDAwIjsKK3ZhciB1dGYxNldpdGhvdXRCT01Bc1VS
TFBhcmFtZXRlciA9ICIlRTYlMDAlRjglMDAlRTUlMDAlMEElMDAlQzYlMzAlQjklMzAlQzglMzAl
MEElMDAiOwordmFyIHV0ZjE2V2l0aG91dEJPTURlY29kZWQgPSAiXHVmZmZkXHUwMDAwXHVmZmZk
XHUwMDAwXHVmZmZkXHUwMDAwXHUwMDBhXHUwMDAwXHVmZmZkXHUwMDMwXHVmZmZkXHUwMDMwXHVm
ZmZkXHUwMDMwXHUwMDBhXHUwMDAwIjsKK3Rlc3RUZXh0RGVjb2RpbmcodXRmMTZXaXRob3V0Qk9N
LCB1dGYxNldpdGhvdXRCT01EZWNvZGVkLCB1dGYxNldpdGhvdXRCT01Bc1VSTFBhcmFtZXRlciwg
IlVURi0xNiB3aXRob3V0IEJPTSBkZWNvZGVkIGFzIFVURi04Iik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90
ZXh0LXV0ZjguYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0ZjguYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZiZDI0MDg5MTM1M2FiMmFiODBjNmQ1M2ViMWE3
MDVhOTBkZTA4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3RleHQtdXRmOC5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACisKK1BBU1MgVVRGLTggd2l0aCBCT00gd2l0aCBS
ZXF1ZXN0LnRleHQoKQorUEFTUyBVVEYtOCB3aXRoIEJPTSB3aXRoIFJlc3BvbnNlLnRleHQoKQor
UEFTUyBVVEYtOCB3aXRoIEJPTSB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTggY2hhcnNldCkKK1BB
U1MgVVRGLTggd2l0aCBCT00gd2l0aCBmZXRjaGVkIGRhdGEgKFVURi0xNiBjaGFyc2V0KQorUEFT
UyBVVEYtOCB3aXRoIEJPTSAoUmVzcG9uc2Ugb2JqZWN0KQorUEFTUyBVVEYtOCB3aXRoIEJPTSAo
UmVxdWVzdCBvYmplY3QpCitQQVNTIFVURi04IHdpdGhvdXQgQk9NIHdpdGggUmVxdWVzdC50ZXh0
KCkKK1BBU1MgVVRGLTggd2l0aG91dCBCT00gd2l0aCBSZXNwb25zZS50ZXh0KCkKK1BBU1MgVVRG
LTggd2l0aG91dCBCT00gd2l0aCBmZXRjaGVkIGRhdGEgKFVURi04IGNoYXJzZXQpCitQQVNTIFVU
Ri04IHdpdGhvdXQgQk9NIHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNldCkKK1BBU1Mg
VVRGLTggd2l0aG91dCBCT00gKFJlc3BvbnNlIG9iamVjdCkKK1BBU1MgVVRGLTggd2l0aG91dCBC
T00gKFJlcXVlc3Qgb2JqZWN0KQorUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVU
Ri04IHdpdGggUmVxdWVzdC50ZXh0KCkKK1BBU1MgVVRGLTE2QkUgd2l0aCBCT00gZGVjb2RlZCBh
cyBVVEYtOCB3aXRoIFJlc3BvbnNlLnRleHQoKQorUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNv
ZGVkIGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtOCBjaGFyc2V0KQorUEFTUyBVVEYt
MTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtMTYg
Y2hhcnNldCkKK1BBU1MgVVRGLTE2QkUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCAoUmVzcG9u
c2Ugb2JqZWN0KQorUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IChSZXF1
ZXN0IG9iamVjdCkKK1BBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRo
IFJlcXVlc3QudGV4dCgpCitQQVNTIFVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQgYXMgVVRGLTgg
d2l0aCBSZXNwb25zZS50ZXh0KCkKK1BBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBV
VEYtOCB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTggY2hhcnNldCkKK1BBU1MgVVRGLTE2TEUgd2l0
aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTE2IGNoYXJzZXQp
CitQQVNTIFVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQgYXMgVVRGLTggKFJlc3BvbnNlIG9iamVj
dCkKK1BBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCAoUmVxdWVzdCBvYmpl
Y3QpCitQQVNTIFVURi0xNiB3aXRob3V0IEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggUmVxdWVz
dC50ZXh0KCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggd2l0aCBS
ZXNwb25zZS50ZXh0KCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTgg
d2l0aCBmZXRjaGVkIGRhdGEgKFVURi04IGNoYXJzZXQpCitQQVNTIFVURi0xNiB3aXRob3V0IEJP
TSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNldCkKK1BB
U1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggKFJlc3BvbnNlIG9iamVjdCkK
K1BBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggKFJlcXVlc3Qgb2JqZWN0
KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0ZjguYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvdGV4dC11
dGY4LmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYw
YTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvdGV4dC11dGY4LmFueS53b3Jr
ZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2Vi
S2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0ZjguaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL3RleHQtdXRmOC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNWM1Njdi
OWM0NTMxMTEzYzEyYTNjNTZkMGY1ZDljMTUxNzU4OWEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3RleHQtdXRmOC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsODIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04Pgot
PHRpdGxlPkZldGNoOiBSZXF1ZXN0IGFuZCBSZXNwb25zZSB0ZXh0KCkgc2hvdWxkIGRlY29kZSBh
cyBVVEYtODwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0
d2cub3JnLyNib2R5LW1peGluIiAvPgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0aWxz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3RUZXh0RGVjb2RpbmcoYm9k
eSwgZXhwZWN0ZWRUZXh0LCB1cmxQYXJhbWV0ZXIsIHRpdGxlKQotewotICAgIHZhciBhcnJheUJ1
ZmZlciA9IHN0cmluZ1RvQXJyYXkoYm9keSk7Ci0KLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dGVzdCkgewotICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7bWV0aG9kOiAi
UE9TVCIsIGJvZHk6IGFycmF5QnVmZmVyfSk7Ci0gICAgICAgIHJldHVybiByZXF1ZXN0LnRleHQo
KS50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVl
LCBleHBlY3RlZFRleHQsICJSZXF1ZXN0LnRleHQoKSBzaG91bGQgZGVjb2RlIGRhdGEgYXMgVVRG
LTgiKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgdGl0bGUgKyAiIHdpdGggUmVxdWVzdC50ZXh0KCki
KTsKLQotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgIHZhciByZXNw
b25zZSA9IG5ldyBSZXNwb25zZShhcnJheUJ1ZmZlcik7Ci0gICAgICAgIHJldHVybiByZXNwb25z
ZS50ZXh0KCkudGhlbihmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyh2YWx1ZSwgZXhwZWN0ZWRUZXh0LCAiUmVzcG9uc2UudGV4dCgpIHNob3VsZCBkZWNvZGUgZGF0
YSBhcyBVVEYtOCIpOwotICAgICAgICB9KTsKLSAgICB9LCB0aXRsZSArICIgd2l0aCBSZXNwb25z
ZS50ZXh0KCkiKTsKLQotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAg
IHJldHVybiBmZXRjaCgiLi4vcmVzb3VyY2VzL3N0YXR1cy5weT9jb2RlPTIwMCZ0eXBlPXRleHQl
MkZwbGFpbiUzQmNoYXJzZXQlM0RVVEYtOCZjb250ZW50PSIgKyB1cmxQYXJhbWV0ZXIpLnRoZW4o
ZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCku
dGhlbihmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModmFs
dWUsIGV4cGVjdGVkVGV4dCwgIkZldGNoZWQgUmVzcG9uc2UudGV4dCgpIHNob3VsZCBkZWNvZGUg
ZGF0YSBhcyBVVEYtOCIpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0sIHRp
dGxlICsgIiB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTggY2hhcnNldCkiKTsKLQotICAgIHByb21p
c2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgIHJldHVybiBmZXRjaCgiLi4vcmVzb3Vy
Y2VzL3N0YXR1cy5weT9jb2RlPTIwMCZ0eXBlPXRleHQlMkZwbGFpbiUzQmNoYXJzZXQlM0RVVEYt
MTYmY29udGVudD0iICsgdXJsUGFyYW1ldGVyKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsK
LSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBleHBlY3RlZFRleHQsICJGZXRj
aGVkIFJlc3BvbnNlLnRleHQoKSBzaG91bGQgZGVjb2RlIGRhdGEgYXMgVVRGLTgiKTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9LCB0aXRsZSArICIgd2l0aCBmZXRjaGVkIGRh
dGEgKFVURi0xNiBjaGFyc2V0KSIpOwotCi0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3Qp
IHsKLSAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZShib2R5KS5hcnJheUJ1ZmZlcigpLnRoZW4o
ZnVuY3Rpb24oYnVmZmVyKSB7Ci0gICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBV
aW50OEFycmF5KGJ1ZmZlciksIGVuY29kZV91dGY4KGJvZHkpLCAiUmVzcG9uc2UuYXJyYXlCdWZm
ZXIoKSBzaG91bGQgY29udGFpbiBkYXRhIGVuY29kZWQgYXMgVVRGLTgiKTsKLSAgICAgICAgfSk7
Ci0gICAgfSwgdGl0bGUgKyAiIChSZXNwb25zZSBvYmplY3QpIik7Ci0KLSAgICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odGVzdCkgewotICAgICAgICByZXR1cm4gbmV3IFJlcXVlc3QoIiIsIHttZXRo
b2Q6ICJQT1NUIiwgYm9keTogYm9keX0pLmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbihidWZm
ZXIpIHsKLSAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoYnVm
ZmVyKSwgZW5jb2RlX3V0ZjgoYm9keSksICJSZXF1ZXN0LmFycmF5QnVmZmVyKCkgc2hvdWxkIGNv
bnRhaW4gZGF0YSBlbmNvZGVkIGFzIFVURi04Iik7Ci0gICAgICAgIH0pOwotICAgIH0sIHRpdGxl
ICsgIiAoUmVxdWVzdCBvYmplY3QpIik7Ci0KLX0KLQotdmFyIHV0ZjhXaXRoQk9NID0gIlx4ZWZc
eGJiXHhiZlx4ZTRceGI4XHg4OVx4ZTZceDlkXHg5MVx4ZTNceDgxXHg4Ylx4ZTNceDgxXHhhYVx4
ZTVceGFkXHg5MCI7Ci12YXIgdXRmOFdpdGhCT01Bc1VSTFBhcmFtZXRlciA9ICIlRUYlQkIlQkYl
RTQlQjglODklRTYlOUQlOTElRTMlODElOEIlRTMlODElQUElRTUlQUQlOTAiOwotdmFyIHV0ZjhX
aXRob3V0Qk9NID0gIlx4ZTRceGI4XHg4OVx4ZTZceDlkXHg5MVx4ZTNceDgxXHg4Ylx4ZTNceDgx
XHhhYVx4ZTVceGFkXHg5MCI7Ci12YXIgdXRmOFdpdGhvdXRCT01Bc1VSTFBhcmFtZXRlciA9ICIl
RTQlQjglODklRTYlOUQlOTElRTMlODElOEIlRTMlODElQUElRTUlQUQlOTAiOwotdmFyIHV0ZjhE
ZWNvZGVkID0gIuS4ieadkeOBi+OBquWtkCI7Ci10ZXN0VGV4dERlY29kaW5nKHV0ZjhXaXRoQk9N
LCB1dGY4RGVjb2RlZCwgdXRmOFdpdGhCT01Bc1VSTFBhcmFtZXRlciwgIlVURi04IHdpdGggQk9N
Iik7Ci10ZXN0VGV4dERlY29kaW5nKHV0ZjhXaXRob3V0Qk9NLCB1dGY4RGVjb2RlZCwgdXRmOFdp
dGhvdXRCT01Bc1VSTFBhcmFtZXRlciwgIlVURi04IHdpdGhvdXQgQk9NIik7Ci0KLXZhciB1dGYx
NkJFV2l0aEJPTSA9ICJceGZlXHhmZlx4NGVceDA5XHg2N1x4NTFceDMwXHg0Ylx4MzBceDZhXHg1
Ylx4NTAiOwotdmFyIHV0ZjE2QkVXaXRoQk9NQXNVUkxQYXJhbWV0ZXIgPSAiJWZlJWZmJTRlJTA5
JTY3JTUxJTMwJTRiJTMwJTZhJTViJTUwIjsKLXZhciB1dGYxNkJFV2l0aEJPTURlY29kZWRBc1VU
RjggPSAi77+977+9Tlx0Z1EwSzBqW1AiOwotdGVzdFRleHREZWNvZGluZyh1dGYxNkJFV2l0aEJP
TSwgdXRmMTZCRVdpdGhCT01EZWNvZGVkQXNVVEY4LCB1dGYxNkJFV2l0aEJPTUFzVVJMUGFyYW1l
dGVyLCAiVVRGLTE2QkUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCIpOwotCi12YXIgdXRmMTZM
RVdpdGhCT00gPSAiXHhmZlx4ZmVceDA5XHg0ZVx4NTFceDY3XHg0Ylx4MzBceDZhXHgzMFx4NTBc
eDViIjsKLXZhciB1dGYxNkxFV2l0aEJPTUFzVVJMUGFyYW1ldGVyID0gIiVmZiVmZSUwOSU0ZSU1
MSU2NyU0YiUzMCU2YSUzMCU1MCU1YiI7Ci12YXIgdXRmMTZMRVdpdGhCT01EZWNvZGVkQXNVVEY4
ID0gIu+/ve+/vVx0TlFnSzBqMFBbIjsKLXRlc3RUZXh0RGVjb2RpbmcodXRmMTZMRVdpdGhCT00s
IHV0ZjE2TEVXaXRoQk9NRGVjb2RlZEFzVVRGOCwgdXRmMTZMRVdpdGhCT01Bc1VSTFBhcmFtZXRl
ciwgIlVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQgYXMgVVRGLTgiKTsKLQotdmFyIHV0ZjE2V2l0
aG91dEJPTSA9ICJceGU2XHgwMFx4ZjhceDAwXHhlNVx4MDBceDBhXHgwMFx4YzZceDMwXHhiOVx4
MzBceGM4XHgzMFx4MGFceDAwIjsKLXZhciB1dGYxNldpdGhvdXRCT01Bc1VSTFBhcmFtZXRlciA9
ICIlRTYlMDAlRjglMDAlRTUlMDAlMEElMDAlQzYlMzAlQjklMzAlQzglMzAlMEElMDAiOwotdmFy
IHV0ZjE2V2l0aG91dEJPTURlY29kZWQgPSAiXHVmZmZkXHUwMDAwXHVmZmZkXHUwMDAwXHVmZmZk
XHUwMDAwXHUwMDBhXHUwMDAwXHVmZmZkXHUwMDMwXHVmZmZkXHUwMDMwXHVmZmZkXHUwMDMwXHUw
MDBhXHUwMDAwIjsKLXRlc3RUZXh0RGVjb2RpbmcodXRmMTZXaXRob3V0Qk9NLCB1dGYxNldpdGhv
dXRCT01EZWNvZGVkLCB1dGYxNldpdGhvdXRCT01Bc1VSTFBhcmFtZXRlciwgIlVURi0xNiB3aXRo
b3V0IEJPTSBkZWNvZGVkIGFzIFVURi04Iik7Ci0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy93M2MtaW1wb3J0LmxvZwppbmRleCBiYjBlMzUzM2M3OGRhZDg2
YTI3MWI1M2Q2NGE5YTkyNzYyNThiNGJlLi45MzQ3YmNjMjYxMGZkZTk4OTU0NTNkY2E2NjFjYWY0
NGM5MjBmNmZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy93M2MtaW1w
b3J0LmxvZwpAQCAtMTYsOCArMTYsOCBAQCBOb25lCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2FjY2Vw
dC1oZWFkZXIuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYmFzaWMvYmxvY2stbWltZS1hcy1zY3JpcHQuaHRtbAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRp
dGlvbmFsLWdldC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYmFzaWMvZXJyb3ItYWZ0ZXItcmVzcG9uc2UuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRp
dGlvbmFsLWdldC5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS5hbnkuanMKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9o
ZWFkZXItdmFsdWUtY29tYmluaW5nLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2hlYWRlci12YWx1ZS1udWxsLWJ5dGUu
YW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYmFzaWMvaGlzdG9yaWNhbC5hbnkuanMKQEAgLTMwLDYgKzMwLDcgQEAgTGlzdCBvZiBm
aWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9iYXNpYy9yZXF1ZXN0LWZvcmJpZGRlbi1oZWFkZXJzLmFueS5qcwogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3Qt
aGVhZC5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtY2FzZS5hbnkuanMKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0
LWhlYWRlcnMtbm9uYXNjaWkuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmFueS5qcwogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L3JlcXVlc3QtcmVmZXJyZXItcmVkaXJlY3RlZC13b3JrZXIuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtcmVm
ZXJyZXIuYW55LmpzCkBAIC00MSw0ICs0Miw0IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvc2NoZW1l
LW90aGVycy5zdWIuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvc3RyZWFtLXJlc3BvbnNlLmFueS5qcwogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3N0cmVh
bS1zYWZlLWNyZWF0aW9uLmFueS5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3RleHQtdXRmOC5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvdGV4dC11dGY4
LmFueS5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2JvZHkvbWlt
ZS10eXBlLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM5ODkxN2I0NDExOWJlZDgxYzlk
Nzc5YThiMzI1OTI3YmMzYWM5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2JvZHkvbWltZS10eXBlLmFueS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK0ZBSUwgUmVxdWVzdDogb3ZlcnJpZGluZyBl
eHBsaWNpdCBDb250ZW50LVR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRlc3QvdGVzdCIg
YnV0IGdvdCAidGV4dC9wbGFpbiIKK0ZBSUwgUmVzcG9uc2U6IG92ZXJyaWRpbmcgZXhwbGljaXQg
Q29udGVudC1UeXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXN0L3Rlc3QiIGJ1dCBnb3Qg
InRleHQvcGxhaW4iCitGQUlMIFJlcXVlc3Q6IHJlbW92aW5nIGltcGxpY2l0IENvbnRlbnQtVHlw
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiIiBidXQgZ290ICJhcHBsaWNhdGlvbi94LXd3dy1m
b3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIKK0ZBSUwgUmVzcG9uc2U6IHJlbW92aW5nIGlt
cGxpY2l0IENvbnRlbnQtVHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiIiBidXQgZ290ICJh
cHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIKK0ZBSUwgUmVx
dWVzdDogc2V0dGluZyBtaXNzaW5nIENvbnRlbnQtVHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAidGVzdC90ZXN0IiBidXQgZ290ICIiCitGQUlMIFJlc3BvbnNlOiBzZXR0aW5nIG1pc3Npbmcg
Q29udGVudC1UeXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXN0L3Rlc3QiIGJ1dCBnb3Qg
IiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9ib2R5L21pbWUtdHlwZS5hbnku
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJl
IHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEwZjkwYTBhYmRmYzNlNjcyOTk3NjA3NjExNDM4ZmYwMDQ5ZWNmMmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9ib2R5L21pbWUtdHlwZS5hbnkuanMKQEAgLTAsMCArMSw0MCBAQAorWworICgp
ID0+IG5ldyBSZXF1ZXN0KCJhYm91dDpibGFuayIsIHsgaGVhZGVyczogeyAiQ29udGVudC1UeXBl
IjogInRleHQvcGxhaW4iIH0gfSksCisgKCkgPT4gbmV3IFJlc3BvbnNlKCIiLCB7IGhlYWRlcnM6
IHsgIkNvbnRlbnQtVHlwZSI6ICJ0ZXh0L3BsYWluIiB9IH0pCitdLmZvckVhY2goYm9keUNvbnRh
aW5lckNyZWF0b3IgPT4geworICBjb25zdCBib2R5Q29udGFpbmVyID0gYm9keUNvbnRhaW5lckNy
ZWF0b3IoKTsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGFzc2VydF9lcXVhbHMo
Ym9keUNvbnRhaW5lci5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiksICJ0ZXh0L3BsYWluIik7
CisgICAgY29uc3QgbmV3TUlNRVR5cGUgPSAidGVzdC90ZXN0IjsKKyAgICBib2R5Q29udGFpbmVy
LmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCBuZXdNSU1FVHlwZSk7CisgICAgY29uc3QgYmxv
YiA9IGF3YWl0IGJvZHlDb250YWluZXIuYmxvYigpOworICAgIGFzc2VydF9lcXVhbHMoYmxvYi50
eXBlLCBuZXdNSU1FVHlwZSk7CisgIH0sIGAke2JvZHlDb250YWluZXIuY29uc3RydWN0b3IubmFt
ZX06IG92ZXJyaWRpbmcgZXhwbGljaXQgQ29udGVudC1UeXBlYCk7Cit9KTsKKworWworICAoKSA9
PiBuZXcgUmVxdWVzdCgiYWJvdXQ6YmxhbmsiLCB7IGJvZHk6IG5ldyBVUkxTZWFyY2hQYXJhbXMo
KSwgbWV0aG9kOiAiUE9TVCIgfSksCisgICgpID0+IG5ldyBSZXNwb25zZShuZXcgVVJMU2VhcmNo
UGFyYW1zKCkpLAorXS5mb3JFYWNoKGJvZHlDb250YWluZXJDcmVhdG9yID0+IHsKKyAgY29uc3Qg
Ym9keUNvbnRhaW5lciA9IGJvZHlDb250YWluZXJDcmVhdG9yKCk7CisgIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKGJvZHlDb250YWluZXIuaGVhZGVycy5nZXQo
IkNvbnRlbnQtVHlwZSIpLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJz
ZXQ9VVRGLTgiKTsKKyAgICBib2R5Q29udGFpbmVyLmhlYWRlcnMuZGVsZXRlKCJDb250ZW50LVR5
cGUiKTsKKyAgICBjb25zdCBibG9iID0gYXdhaXQgYm9keUNvbnRhaW5lci5ibG9iKCk7CisgICAg
YXNzZXJ0X2VxdWFscyhibG9iLnR5cGUsICIiKTsKKyAgfSwgYCR7Ym9keUNvbnRhaW5lci5jb25z
dHJ1Y3Rvci5uYW1lfTogcmVtb3ZpbmcgaW1wbGljaXQgQ29udGVudC1UeXBlYCk7Cit9KTsKKwor
WworICAoKSA9PiBuZXcgUmVxdWVzdCgiYWJvdXQ6YmxhbmsiLCB7IGJvZHk6IG5ldyBBcnJheUJ1
ZmZlcigpLCBtZXRob2Q6ICJQT1NUIiB9KSwKKyAgKCkgPT4gbmV3IFJlc3BvbnNlKG5ldyBBcnJh
eUJ1ZmZlcigpKSwKK10uZm9yRWFjaChib2R5Q29udGFpbmVyQ3JlYXRvciA9PiB7CisgIGNvbnN0
IGJvZHlDb250YWluZXIgPSBib2R5Q29udGFpbmVyQ3JlYXRvcigpOworICBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgICAgYXNzZXJ0X2VxdWFscyhib2R5Q29udGFpbmVyLmhlYWRlcnMuZ2V0
KCJDb250ZW50LVR5cGUiKSwgbnVsbCk7CisgICAgY29uc3QgbmV3TUlNRVR5cGUgPSAidGVzdC90
ZXN0IjsKKyAgICBib2R5Q29udGFpbmVyLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCBuZXdN
SU1FVHlwZSk7CisgICAgY29uc3QgYmxvYiA9IGF3YWl0IGJvZHlDb250YWluZXIuYmxvYigpOwor
ICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCBuZXdNSU1FVHlwZSk7CisgIH0sIGAke2JvZHlD
b250YWluZXIuY29uc3RydWN0b3IubmFtZX06IHNldHRpbmcgbWlzc2luZyBDb250ZW50LVR5cGVg
KTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
b2R5L21pbWUtdHlwZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Yzk4OTE3
YjQ0MTE5YmVkODFjOWQ3NzlhOGIzMjU5MjdiYzNhYzlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9t
aW1lLXR5cGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK0ZBSUwg
UmVxdWVzdDogb3ZlcnJpZGluZyBleHBsaWNpdCBDb250ZW50LVR5cGUgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgInRlc3QvdGVzdCIgYnV0IGdvdCAidGV4dC9wbGFpbiIKK0ZBSUwgUmVzcG9uc2U6
IG92ZXJyaWRpbmcgZXhwbGljaXQgQ29udGVudC1UeXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJ0ZXN0L3Rlc3QiIGJ1dCBnb3QgInRleHQvcGxhaW4iCitGQUlMIFJlcXVlc3Q6IHJlbW92aW5n
IGltcGxpY2l0IENvbnRlbnQtVHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiIiBidXQgZ290
ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIKK0ZBSUwg
UmVzcG9uc2U6IHJlbW92aW5nIGltcGxpY2l0IENvbnRlbnQtVHlwZSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiIiBidXQgZ290ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hh
cnNldD11dGYtOCIKK0ZBSUwgUmVxdWVzdDogc2V0dGluZyBtaXNzaW5nIENvbnRlbnQtVHlwZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGVzdC90ZXN0IiBidXQgZ290ICIiCitGQUlMIFJlc3Bv
bnNlOiBzZXR0aW5nIG1pc3NpbmcgQ29udGVudC1UeXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJ0ZXN0L3Rlc3QiIGJ1dCBnb3QgIiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55Lndv
cmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5
MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9ib2R5
L21pbWUtdHlwZS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUg
aXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVt
cGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9k
eS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2JvZHkvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE0M2VjMTRh
MzM0MTg4MTFmZDczMGExY2QxYWM4ZmE0Y2I2ZWIwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2JvZHkvdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55Lmpz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9jb3JzL2NvcnMtbXVsdGlwbGUtb3JpZ2lucy5zdWIuYW55LmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3Jz
LW11bHRpcGxlLW9yaWdpbnMuc3ViLmFueS5qcwppbmRleCBiMTAzNGViNzI3NGEzMDdkN2YxNGUw
OWQ2NTAyNzdhMzhiMzI5MjE0Li5iM2FiYjkyMjg0MWM2M2U1Y2NiYjYzM2Q2MGQyOWY3NjdmMDU4
NmFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtbXVsdGlwbGUtb3JpZ2lucy5zdWIuYW55LmpzCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Nv
cnMvY29ycy1tdWx0aXBsZS1vcmlnaW5zLnN1Yi5hbnkuanMKQEAgLTEsMyArMSw0IEBACisvLyBN
RVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91
dGlscy5qcwogCiBmdW5jdGlvbiBjb3JzTXVsdGlwbGVPcmlnaW5zKG9yaWdpbkxpc3QpIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVkaXJlY3QuYW55LmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZs
aWdodC1yZWRpcmVjdC5hbnkuanMKaW5kZXggN2VkNTQzMTliNGU5MGM5OGZmMDMyOGVlN2IzZTYx
Zjg1NTFlOWE1Zi4uMTVmNzY1OWFiZDIxNTY5Yjc5YzdiNDRjNDY5YzI3Mjc0MzM5YTYxYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWRpcmVjdC5hbnkuanMKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXBy
ZWZsaWdodC1yZWRpcmVjdC5hbnkuanMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRBOiBnbG9iYWw9
d2luZG93LHdvcmtlcgogLy8gTUVUQTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKIC8vIE1FVEE6
IHNjcmlwdD0uLi9yZXNvdXJjZXMvdXRpbHMuanMKIC8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL2dl
dC1ob3N0LWluZm8uc3ViLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVy
LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVyLmFueS1leHBlY3Rl
ZC50eHQKaW5kZXggMjZiNjMxNzBkOTllMTFiOWNjMWM3MWRkYTFmNDMyNzc1MGJjZmIyZi4uZWQ2
MDNkNWM4NDA1ZWE1MzMwZWZkZDc5OTkxNmZkZWFiOTM4M2EyYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3Jz
LXByZWZsaWdodC1yZWZlcnJlci5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGln
aHQtcmVmZXJyZXIuYW55LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDEwIEBACiAKIFBBU1MgUmVm
ZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlciBhbmQgcmVmZXJyZXI6IGRlZmF1bHQKIFBBU1MgUmVm
ZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlciBhbmQgcmVmZXJyZXI6ICdteXJlZmVycmVyJwotUEFT
UyBSZWZlcnJlciBwb2xpY3k6ICIiIGFuZCByZWZlcnJlcjogZGVmYXVsdAotUEFTUyBSZWZlcnJl
ciBwb2xpY3k6ICIiIGFuZCByZWZlcnJlcjogJ215cmVmZXJyZXInCitGQUlMIFJlZmVycmVyIHBv
bGljeTogIiIgYW5kIHJlZmVycmVyOiBkZWZhdWx0IGFzc2VydF9lcXVhbHM6IFByZWZsaWdodCdz
IHJlZmVycmVyIGlzIGNvcnJlY3QgZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC8iIGJ1
dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdo
dC1yZWZlcnJlci5hbnkuaHRtbCIKK0ZBSUwgUmVmZXJyZXIgcG9saWN5OiAiIiBhbmQgcmVmZXJy
ZXI6ICdteXJlZmVycmVyJyBhc3NlcnRfZXF1YWxzOiBQcmVmbGlnaHQncyByZWZlcnJlciBpcyBj
b3JyZWN0IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvIiBidXQgZ290ICJodHRwOi8v
bG9jYWxob3N0Ojg4MDAvZmV0Y2gvYXBpL2NvcnMvbXlyZWZlcnJlciIKK1BBU1MgUmVmZXJyZXIg
cG9saWN5OiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBhbmQgcmVmZXJyZXI6IGRlZmF1bHQK
K1BBU1MgUmVmZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBhbmQgcmVm
ZXJyZXI6ICdteXJlZmVycmVyJwogUEFTUyBSZWZlcnJlciBwb2xpY3k6IG9yaWdpbiBhbmQgcmVm
ZXJyZXI6IGRlZmF1bHQKIFBBU1MgUmVmZXJyZXIgcG9saWN5OiBvcmlnaW4gYW5kIHJlZmVycmVy
OiAnbXlyZWZlcnJlcicKIFBBU1MgUmVmZXJyZXIgcG9saWN5OiBvcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4gYW5kIHJlZmVycmVyOiBkZWZhdWx0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0
LXJlZmVycmVyLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVmZXJyZXIuYW55LmpzCmluZGV4
IDZkNjliMzI4NjQ0YThhYTIxNTViMjVhMTUzYjA5NGZlYzJiZjE4ZGUuLjVkZjlmY2YxNDI5YTdh
ZTBjNGI2MDIwY2ZjYjY2OWM3YWU2MGI5MmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQt
cmVmZXJyZXIuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVmZXJyZXIuYW55LmpzCkBA
IC0zNSw4ICszNSwxMSBAQCB2YXIgb3JpZ2luID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBfT1JJR0lO
ICsgIi8iOwogY29yc1ByZWZsaWdodFJlZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6IG5vLXJlZmVy
cmVyIiwgY29yc1VybCwgIm5vLXJlZmVycmVyIiwgdW5kZWZpbmVkLCAiIik7CiBjb3JzUHJlZmxp
Z2h0UmVmZXJyZXIoIlJlZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXIiLCBjb3JzVXJsLCAibm8t
cmVmZXJyZXIiLCAibXlyZWZlcnJlciIsICIiKTsKIAotY29yc1ByZWZsaWdodFJlZmVycmVyKCJS
ZWZlcnJlciBwb2xpY3k6IFwiXCIiLCBjb3JzVXJsLCAiIiwgdW5kZWZpbmVkLCBsb2NhdGlvbi50
b1N0cmluZygpKQotY29yc1ByZWZsaWdodFJlZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6IFwiXCIi
LCBjb3JzVXJsLCAiIiwgIm15cmVmZXJyZXIiLCBuZXcgVVJMKCJteXJlZmVycmVyIiwgbG9jYXRp
b24pLnRvU3RyaW5nKCkpOworY29yc1ByZWZsaWdodFJlZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6
IFwiXCIiLCBjb3JzVXJsLCAiIiwgdW5kZWZpbmVkLCBvcmlnaW4pOworY29yc1ByZWZsaWdodFJl
ZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6IFwiXCIiLCBjb3JzVXJsLCAiIiwgIm15cmVmZXJyZXIi
LCBvcmlnaW4pOworCitjb3JzUHJlZmxpZ2h0UmVmZXJyZXIoIlJlZmVycmVyIHBvbGljeTogbm8t
cmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiLCBjb3JzVXJsLCAibm8tcmVmZXJyZXItd2hlbi1kb3du
Z3JhZGUiLCB1bmRlZmluZWQsIGxvY2F0aW9uLnRvU3RyaW5nKCkpCitjb3JzUHJlZmxpZ2h0UmVm
ZXJyZXIoIlJlZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiLCBjb3Jz
VXJsLCAibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiLCAibXlyZWZlcnJlciIsIG5ldyBVUkwo
Im15cmVmZXJyZXIiLCBsb2NhdGlvbikudG9TdHJpbmcoKSk7CiAKIGNvcnNQcmVmbGlnaHRSZWZl
cnJlcigiUmVmZXJyZXIgcG9saWN5OiBvcmlnaW4iLCBjb3JzVXJsLCAib3JpZ2luIiwgdW5kZWZp
bmVkLCBvcmlnaW4pOwogY29yc1ByZWZsaWdodFJlZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6IG9y
aWdpbiIsIGNvcnNVcmwsICJvcmlnaW4iLCAibXlyZWZlcnJlciIsIG9yaWdpbik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVyLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29y
cy9jb3JzLXByZWZsaWdodC1yZWZlcnJlci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAy
NmI2MzE3MGQ5OWUxMWI5Y2MxYzcxZGRhMWY0MzI3NzUwYmNmYjJmLi4wOGZhN2E0M2VkOWQwZDBh
ZDA5MGMzNDhiMDc2NjY1MzlmZmQzNjBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJl
ZmVycmVyLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVm
ZXJyZXIuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwxMCBAQAogCiBQQVNTIFJl
ZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXIgYW5kIHJlZmVycmVyOiBkZWZhdWx0CiBQQVNTIFJl
ZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXIgYW5kIHJlZmVycmVyOiAnbXlyZWZlcnJlcicKLVBB
U1MgUmVmZXJyZXIgcG9saWN5OiAiIiBhbmQgcmVmZXJyZXI6IGRlZmF1bHQKLVBBU1MgUmVmZXJy
ZXIgcG9saWN5OiAiIiBhbmQgcmVmZXJyZXI6ICdteXJlZmVycmVyJworRkFJTCBSZWZlcnJlciBw
b2xpY3k6ICIiIGFuZCByZWZlcnJlcjogZGVmYXVsdCBhc3NlcnRfZXF1YWxzOiBQcmVmbGlnaHQn
cyByZWZlcnJlciBpcyBjb3JyZWN0IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvIiBi
dXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGln
aHQtcmVmZXJyZXIuYW55Lndvcmtlci5qcyIKK0ZBSUwgUmVmZXJyZXIgcG9saWN5OiAiIiBhbmQg
cmVmZXJyZXI6ICdteXJlZmVycmVyJyBhc3NlcnRfZXF1YWxzOiBQcmVmbGlnaHQncyByZWZlcnJl
ciBpcyBjb3JyZWN0IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvIiBidXQgZ290ICJo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvZmV0Y2gvYXBpL2NvcnMvbXlyZWZlcnJlciIKK1BBU1MgUmVm
ZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBhbmQgcmVmZXJyZXI6IGRl
ZmF1bHQKK1BBU1MgUmVmZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBh
bmQgcmVmZXJyZXI6ICdteXJlZmVycmVyJwogUEFTUyBSZWZlcnJlciBwb2xpY3k6IG9yaWdpbiBh
bmQgcmVmZXJyZXI6IGRlZmF1bHQKIFBBU1MgUmVmZXJyZXIgcG9saWN5OiBvcmlnaW4gYW5kIHJl
ZmVycmVyOiAnbXlyZWZlcnJlcicKIFBBU1MgUmVmZXJyZXIgcG9saWN5OiBvcmlnaW4td2hlbi1j
cm9zcy1vcmlnaW4gYW5kIHJlZmVycmVyOiBkZWZhdWx0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jcmVkZW50aWFscy9h
dXRoZW50aWNhdGlvbi1iYXNpYy5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jcmVkZW50aWFscy9hdXRoZW50aWNhdGlvbi1iYXNp
Yy5hbnkuanMKaW5kZXggNDk2OWIzMDQyZThkY2RlNTZiMGFkYjcwOGZiMmM1ZjY0ZDE4YTllYi4u
YmFiYzVkMDAzYjEwOGU2ZDI0OTllMGUwZWQwY2MyN2Y0MTMwYWYxOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY3JlZGVu
dGlhbHMvYXV0aGVudGljYXRpb24tYmFzaWMuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NyZWRlbnRpYWxzL2F1dGhlbnRp
Y2F0aW9uLWJhc2ljLmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5k
b3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIGZ1bmN0
aW9uIGJhc2ljQXV0aChkZXNjLCB1c2VyLCBwYXNzLCBtb2RlLCBzdGF0dXMpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2NyZWRlbnRpYWxzL2Nvb2tpZXMuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY3JlZGVudGlhbHMvY29va2llcy5hbnkuanMKaW5k
ZXggYjY1YTg2NmMwOWJjZTM4ZmM4ZGZmZjIwMjE2ZWY5NzgwYzAwZTgxNy4uZGUzMGU0Nzc2NTVj
Mjg1MTg3M2U3NWEzNDAxOWYzMDY0NDY3OWFjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY3JlZGVudGlhbHMvY29va2ll
cy5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvY3JlZGVudGlhbHMvY29va2llcy5hbnkuanMKQEAgLTEsMyArMSw0IEBACisv
LyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNl
cy91dGlscy5qcwogCiBmdW5jdGlvbiBjb29raWVzKGRlc2MsIGNyZWRlbnRpYWxzMSwgY3JlZGVu
dGlhbHMyICxjb29raWVzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDIyYzY5ZWM2NjIyYmM2ZDQxZmE4NTA0YzNmZjk2ZmZmYTQ2ODE0Mi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
ci12YWx1ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotCi1Q
QVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgeCUwMHggbmVlZHMgdG8gdGhyb3cKLVBBU1Mg
ZmV0Y2goKSB3aXRoIHZhbHVlIHglMDB4IG5lZWRzIHRvIHRocm93Ci1QQVNTIFhNTEh0dHBSZXF1
ZXN0IHdpdGggdmFsdWUgeCUwQXggbmVlZHMgdG8gdGhyb3cKLVBBU1MgZmV0Y2goKSB3aXRoIHZh
bHVlIHglMEF4IG5lZWRzIHRvIHRocm93Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUg
eCUwRHggbmVlZHMgdG8gdGhyb3cKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlIHglMER4IG5lZWRz
IHRvIHRocm93Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggYWxsIHZhbGlkIHZhbHVlcwotUEFT
UyBmZXRjaCgpIHdpdGggYWxsIHZhbGlkIHZhbHVlcwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
ci12YWx1ZXMtbm9ybWFsaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy1ub3Jt
YWxpemUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZmQ0ZmFi
ZTdhYjkwYjgxZGM0MDlmNThiMzM1NjU1MzI0MGFmNzQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy1ub3JtYWxpemUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotCi1QQVNTIFhNTEh0dHBS
ZXF1ZXN0IHdpdGggdmFsdWUgJTAwCi1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDAKLVBBU1Mg
WE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMDEKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUw
MQotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUwMgotUEFTUyBmZXRjaCgpIHdpdGgg
dmFsdWUgJTAyCi1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTAzCi1QQVNTIGZldGNo
KCkgd2l0aCB2YWx1ZSAlMDMKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMDQKLVBB
U1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwNAotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVl
ICUwNQotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTA1Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdp
dGggdmFsdWUgJTA2Ci1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDYKLVBBU1MgWE1MSHR0cFJl
cXVlc3Qgd2l0aCB2YWx1ZSAlMDcKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwNwotUEFTUyBY
TUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUwOAotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTA4
Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTA5Ci1QQVNTIGZldGNoKCkgd2l0aCB2
YWx1ZSAlMDkKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMEEKLVBBU1MgZmV0Y2go
KSB3aXRoIHZhbHVlICUwQQotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUwRAotUEFT
UyBmZXRjaCgpIHdpdGggdmFsdWUgJTBECi1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUg
JTBFCi1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMEUKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0
aCB2YWx1ZSAlMEYKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwRgotUEFTUyBYTUxIdHRwUmVx
dWVzdCB3aXRoIHZhbHVlICUxMAotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTEwCi1QQVNTIFhN
TEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTExCi1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTEK
LVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMTIKLVBBU1MgZmV0Y2goKSB3aXRoIHZh
bHVlICUxMgotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxMwotUEFTUyBmZXRjaCgp
IHdpdGggdmFsdWUgJTEzCi1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTE0Ci1QQVNT
IGZldGNoKCkgd2l0aCB2YWx1ZSAlMTQKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAl
MTUKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxNQotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRo
IHZhbHVlICUxNgotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTE2Ci1QQVNTIFhNTEh0dHBSZXF1
ZXN0IHdpdGggdmFsdWUgJTE3Ci1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTcKLVBBU1MgWE1M
SHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMTgKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxOAot
UEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxOQotUEFTUyBmZXRjaCgpIHdpdGggdmFs
dWUgJTE5Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTFBCi1QQVNTIGZldGNoKCkg
d2l0aCB2YWx1ZSAlMUEKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMUIKLVBBU1Mg
ZmV0Y2goKSB3aXRoIHZhbHVlICUxQgotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUx
QwotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTFDCi1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGgg
dmFsdWUgJTFECi1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMUQKLVBBU1MgWE1MSHR0cFJlcXVl
c3Qgd2l0aCB2YWx1ZSAlMUUKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxRQotUEFTUyBYTUxI
dHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxRgotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTFGCi1Q
QVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTIwCi1QQVNTIGZldGNoKCkgd2l0aCB2YWx1
ZSAlMjAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5hbnktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJmZDRmYWJlN2FiOTBiODFkYzQwOWY1OGIzMzU2NTUzMjQwYWY3NDAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXplLmFueS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2NCBAQAorCitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUg
JTAwCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0
aCB2YWx1ZSAlMDEKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwMQorUEFTUyBYTUxIdHRwUmVx
dWVzdCB3aXRoIHZhbHVlICUwMgorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTAyCitQQVNTIFhN
TEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTAzCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDMK
K1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMDQKK1BBU1MgZmV0Y2goKSB3aXRoIHZh
bHVlICUwNAorUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUwNQorUEFTUyBmZXRjaCgp
IHdpdGggdmFsdWUgJTA1CitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTA2CitQQVNT
IGZldGNoKCkgd2l0aCB2YWx1ZSAlMDYKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAl
MDcKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwNworUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRo
IHZhbHVlICUwOAorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTA4CitQQVNTIFhNTEh0dHBSZXF1
ZXN0IHdpdGggdmFsdWUgJTA5CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDkKK1BBU1MgWE1M
SHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMEEKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwQQor
UEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUwRAorUEFTUyBmZXRjaCgpIHdpdGggdmFs
dWUgJTBECitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTBFCitQQVNTIGZldGNoKCkg
d2l0aCB2YWx1ZSAlMEUKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMEYKK1BBU1Mg
ZmV0Y2goKSB3aXRoIHZhbHVlICUwRgorUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUx
MAorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTEwCitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGgg
dmFsdWUgJTExCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTEKK1BBU1MgWE1MSHR0cFJlcXVl
c3Qgd2l0aCB2YWx1ZSAlMTIKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxMgorUEFTUyBYTUxI
dHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxMworUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTEzCitQ
QVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTE0CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1
ZSAlMTQKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMTUKK1BBU1MgZmV0Y2goKSB3
aXRoIHZhbHVlICUxNQorUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxNgorUEFTUyBm
ZXRjaCgpIHdpdGggdmFsdWUgJTE2CitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTE3
CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTcKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2
YWx1ZSAlMTgKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxOAorUEFTUyBYTUxIdHRwUmVxdWVz
dCB3aXRoIHZhbHVlICUxOQorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTE5CitQQVNTIFhNTEh0
dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTFBCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMUEKK1BB
U1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMUIKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVl
ICUxQgorUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxQworUEFTUyBmZXRjaCgpIHdp
dGggdmFsdWUgJTFDCitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTFECitQQVNTIGZl
dGNoKCkgd2l0aCB2YWx1ZSAlMUQKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMUUK
K1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxRQorUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZh
bHVlICUxRgorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTFGCitQQVNTIFhNTEh0dHBSZXF1ZXN0
IHdpdGggdmFsdWUgJTIwCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMjAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aGVhZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZh
bHVlcy1ub3JtYWxpemUuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2
YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVl
cy1ub3JtYWxpemUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVx
dWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVk
IHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFs
aXplLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTQ3ODljNWIwYjU3OGQ1ZjM2NzRiMTY1Y2Y2OGQ2ZmJh
ZDYzNjY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5h
bnkuanMKQEAgLTAsMCArMSw3MCBAQAorLy8gTUVUQTogdGl0bGU9SGVhZGVyIHZhbHVlIG5vcm1h
bGl6aW5nIHRlc3QKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aW1l
b3V0PWxvbmcKKworZm9yKGxldCBpID0gMDsgaSA8IDB4MjE7IGkrKykgeworICBsZXQgZmFpbCA9
IGZhbHNlLAorICAgICAgc3RyaXAgPSBmYWxzZQorCisgIC8vIFJFTU9WRSAweDBCLzB4MEMgZXhj
ZXB0aW9uIG9uY2UgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNz
dWVzLzgzNzIgaXMgZml4ZWQKKyAgaWYoaSA9PT0gMHgwQiB8fCBpID09PSAweDBDKQorICAgIGNv
bnRpbnVlCisKKyAgaWYoaSA9PT0gMCkgeworICAgIGZhaWwgPSB0cnVlCisgIH0KKworICBpZihp
ID09PSAweDA5IHx8IGkgPT09IDB4MEEgfHwgaSA9PT0gMHgwRCB8fCBpID09PSAweDIwKSB7Cisg
ICAgc3RyaXAgPSB0cnVlCisgIH0KKworICBsZXQgdXJsID0gIi4uL3Jlc291cmNlcy9pbnNwZWN0
LWhlYWRlcnMucHk/aGVhZGVycz12YWwxfHZhbDJ8dmFsMyIsCisgICAgICB2YWwgPSBTdHJpbmcu
ZnJvbUNoYXJDb2RlKGkpLAorICAgICAgZXhwZWN0ZWRWYWwgPSBzdHJpcCA/ICIiIDogdmFsLAor
ICAgICAgdmFsMSA9IHZhbCwKKyAgICAgIGV4cGVjdGVkVmFsMSA9IGV4cGVjdGVkVmFsLAorICAg
ICAgdmFsMiA9ICJ4IiArIHZhbCwKKyAgICAgIGV4cGVjdGVkVmFsMiA9ICJ4IiArIGV4cGVjdGVk
VmFsLAorICAgICAgdmFsMyA9IHZhbCArICJ4IiwKKyAgICAgIGV4cGVjdGVkVmFsMyA9IGV4cGVj
dGVkVmFsICsgIngiCisKKyAgLy8gWE1MSHR0cFJlcXVlc3QgaXMgbm90IGF2YWlsYWJsZSBpbiBz
ZXJ2aWNlIHdvcmtlcnMKKyAgaWYgKCFzZWxmLkdMT0JBTC5pc1dvcmtlcigpKSB7CisgICAgYXN5
bmNfdGVzdCgodCkgPT4geworICAgICAgbGV0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpCisg
ICAgICB4aHIub3BlbigiUE9TVCIsIHVybCkKKyAgICAgIGlmKGZhaWwpIHsKKyAgICAgICAgICBh
c3NlcnRfdGhyb3dzX2RvbSgiU3ludGF4RXJyb3IiLCAoKSA9PiB4aHIuc2V0UmVxdWVzdEhlYWRl
cigidmFsMSIsIHZhbDEpKQorICAgICAgICAgIGFzc2VydF90aHJvd3NfZG9tKCJTeW50YXhFcnJv
ciIsICgpID0+IHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJ2YWwyIiwgdmFsMikpCisgICAgICAgICAg
YXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9yIiwgKCkgPT4geGhyLnNldFJlcXVlc3RIZWFk
ZXIoInZhbDMiLCB2YWwzKSkKKyAgICAgICAgICB0LmRvbmUoKQorICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoInZhbDEiLCB2YWwxKQorICAgICAgICB4aHIuc2V0
UmVxdWVzdEhlYWRlcigidmFsMiIsIHZhbDIpCisgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVy
KCJ2YWwzIiwgdmFsMykKKyAgICAgICAgeGhyLm9ubG9hZCA9IHQuc3RlcF9mdW5jX2RvbmUoKCkg
PT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMoeGhyLmdldFJlc3BvbnNlSGVhZGVyKCJ4LXJl
cXVlc3QtdmFsMSIpLCBleHBlY3RlZFZhbDEpCisgICAgICAgICAgYXNzZXJ0X2VxdWFscyh4aHIu
Z2V0UmVzcG9uc2VIZWFkZXIoIngtcmVxdWVzdC12YWwyIiksIGV4cGVjdGVkVmFsMikKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHhoci5nZXRSZXNwb25zZUhlYWRlcigieC1yZXF1ZXN0LXZhbDMi
KSwgZXhwZWN0ZWRWYWwzKQorICAgICAgICB9KQorICAgICAgICB4aHIuc2VuZCgpCisgICAgICB9
CisgICAgfSwgIlhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgIiArIGVuY29kZVVSSSh2YWwpKQor
ICB9CisKKyAgcHJvbWlzZV90ZXN0KCh0KSA9PiB7CisgICAgaWYoZmFpbCkgeworICAgICAgcmV0
dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgcHJvbWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJv
ciwgZmV0Y2godXJsLCB7IGhlYWRlcnM6IHsidmFsMSI6IHZhbDF9IH0pKSwKKyAgICAgICAgcHJv
bWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwgZmV0Y2godXJsLCB7IGhlYWRlcnM6IHsidmFs
MiI6IHZhbDJ9IH0pKSwKKyAgICAgICAgcHJvbWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwg
ZmV0Y2godXJsLCB7IGhlYWRlcnM6IHsidmFsMyI6IHZhbDN9IH0pKQorICAgICAgXSkKKyAgICB9
IGVsc2UgeworICAgICAgcmV0dXJuIGZldGNoKHVybCwgeyBoZWFkZXJzOiB7InZhbDEiOiB2YWwx
LCAidmFsMiI6IHZhbDIsICJ2YWwzIjogdmFsM30gfSkudGhlbigocmVzKSA9PiB7CisgICAgICAg
IGFzc2VydF9lcXVhbHMocmVzLmhlYWRlcnMuZ2V0KCJ4LXJlcXVlc3QtdmFsMSIpLCBleHBlY3Rl
ZFZhbDEpCisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzLmhlYWRlcnMuZ2V0KCJ4LXJlcXVlc3Qt
dmFsMiIpLCBleHBlY3RlZFZhbDIpCisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzLmhlYWRlcnMu
Z2V0KCJ4LXJlcXVlc3QtdmFsMyIpLCBleHBlY3RlZFZhbDMpCisgICAgICB9KQorICAgIH0KKyAg
fSwgImZldGNoKCkgd2l0aCB2YWx1ZSAiICsgZW5jb2RlVVJJKHZhbCkpCit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9o
ZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXplLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVh
ZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45YTU1ZTE3OTY3Y2EzOGMwYTUxOGZiYTIyM2NjYTA2NzEwZGI2Y2Q1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMzIEBACisKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwMAor
UEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTAxCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDIK
K1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwMworUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTA0
CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDUKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUw
NgorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTA3CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAl
MDgKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwOQorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUg
JTBBCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMEQKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVl
ICUwRQorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTBGCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1
ZSAlMTAKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxMQorUEFTUyBmZXRjaCgpIHdpdGggdmFs
dWUgJTEyCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTMKK1BBU1MgZmV0Y2goKSB3aXRoIHZh
bHVlICUxNAorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTE1CitQQVNTIGZldGNoKCkgd2l0aCB2
YWx1ZSAlMTYKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxNworUEFTUyBmZXRjaCgpIHdpdGgg
dmFsdWUgJTE4CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTkKK1BBU1MgZmV0Y2goKSB3aXRo
IHZhbHVlICUxQQorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTFCCitQQVNTIGZldGNoKCkgd2l0
aCB2YWx1ZSAlMUMKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxRAorUEFTUyBmZXRjaCgpIHdp
dGggdmFsdWUgJTFFCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMUYKK1BBU1MgZmV0Y2goKSB3
aXRoIHZhbHVlICUyMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXpl
LmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy1ub3JtYWxpemUuYW55Lndvcmtl
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4
YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXplLmFueS53
b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3Ig
V2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1
ZXMtbm9ybWFsaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXplLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyZGEzMjMzMmUwNDY4YWMzOTkzY2ZlOWYwYjc1
NGJiZTlhODkzMGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aGVhZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zjg+Ci08bWV0YSBu
YW1lPXRpbWVvdXQgY29udGVudD1sb25nPgotPHRpdGxlPkhlYWRlciB2YWx1ZSBub3JtYWxpemlu
ZyB0ZXN0PC90aXRsZT4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2Ny
aXB0PgotPGRpdiBpZD1sb2c+PC9kaXY+Ci08c2NyaXB0PgotZm9yKGxldCBpID0gMDsgaSA8IDB4
MjE7IGkrKykgewotICBsZXQgZmFpbCA9IGZhbHNlLAotICAgICAgc3RyaXAgPSBmYWxzZQotCi0g
IC8vIFJFTU9WRSAweDBCLzB4MEMgZXhjZXB0aW9uIG9uY2UgaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzgzNzIgaXMgZml4ZWQKLSAgaWYoaSA9PT0gMHgw
QiB8fCBpID09PSAweDBDKQotICAgIGNvbnRpbnVlCi0KLSAgaWYoaSA9PT0gMCkgewotICAgIGZh
aWwgPSB0cnVlCi0gIH0KLQotICBpZihpID09PSAweDA5IHx8IGkgPT09IDB4MEEgfHwgaSA9PT0g
MHgwRCB8fCBpID09PSAweDIwKSB7Ci0gICAgc3RyaXAgPSB0cnVlCi0gIH0KLQotICBsZXQgdXJs
ID0gIi4uL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHk/aGVhZGVycz12YWwxfHZhbDJ8dmFs
MyIsCi0gICAgICB2YWwgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpLAotICAgICAgZXhwZWN0ZWRW
YWwgPSBzdHJpcCA/ICIiIDogdmFsLAotICAgICAgdmFsMSA9IHZhbCwKLSAgICAgIGV4cGVjdGVk
VmFsMSA9IGV4cGVjdGVkVmFsLAotICAgICAgdmFsMiA9ICJ4IiArIHZhbCwKLSAgICAgIGV4cGVj
dGVkVmFsMiA9ICJ4IiArIGV4cGVjdGVkVmFsLAotICAgICAgdmFsMyA9IHZhbCArICJ4IiwKLSAg
ICAgIGV4cGVjdGVkVmFsMyA9IGV4cGVjdGVkVmFsICsgIngiCi0KLSAgYXN5bmNfdGVzdCgodCkg
PT4gewotICAgIGxldCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKQotICAgIHhoci5vcGVuKCJQ
T1NUIiwgdXJsKQotICAgIGlmKGZhaWwpIHsKLSAgICAgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5
bnRheEVycm9yIiwgKCkgPT4geGhyLnNldFJlcXVlc3RIZWFkZXIoInZhbDEiLCB2YWwxKSkKLSAg
ICAgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9yIiwgKCkgPT4geGhyLnNldFJlcXVl
c3RIZWFkZXIoInZhbDIiLCB2YWwyKSkKLSAgICAgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRh
eEVycm9yIiwgKCkgPT4geGhyLnNldFJlcXVlc3RIZWFkZXIoInZhbDMiLCB2YWwzKSkKLSAgICAg
ICAgdC5kb25lKCkKLSAgICB9IGVsc2UgewotICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoInZh
bDEiLCB2YWwxKQotICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoInZhbDIiLCB2YWwyKQotICAg
ICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoInZhbDMiLCB2YWwzKQotICAgICAgeGhyLm9ubG9hZCA9
IHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKHhoci5nZXRS
ZXNwb25zZUhlYWRlcigieC1yZXF1ZXN0LXZhbDEiKSwgZXhwZWN0ZWRWYWwxKQotICAgICAgICBh
c3NlcnRfZXF1YWxzKHhoci5nZXRSZXNwb25zZUhlYWRlcigieC1yZXF1ZXN0LXZhbDIiKSwgZXhw
ZWN0ZWRWYWwyKQotICAgICAgICBhc3NlcnRfZXF1YWxzKHhoci5nZXRSZXNwb25zZUhlYWRlcigi
eC1yZXF1ZXN0LXZhbDMiKSwgZXhwZWN0ZWRWYWwzKQotICAgICAgfSkKLSAgICAgIHhoci5zZW5k
KCkKLSAgICB9Ci0gIH0sICJYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICIgKyBlbmNvZGVVUkko
dmFsKSkKLQotICBwcm9taXNlX3Rlc3QoKHQpID0+IHsKLSAgICBpZihmYWlsKSB7Ci0gICAgICBy
ZXR1cm4gUHJvbWlzZS5hbGwoWwotICAgICAgICBwcm9taXNlX3JlamVjdHNfanModCwgVHlwZUVy
cm9yLCBmZXRjaCh1cmwsIHsgaGVhZGVyczogeyJ2YWwxIjogdmFsMX0gfSkpLAotICAgICAgICBw
cm9taXNlX3JlamVjdHNfanModCwgVHlwZUVycm9yLCBmZXRjaCh1cmwsIHsgaGVhZGVyczogeyJ2
YWwyIjogdmFsMn0gfSkpLAotICAgICAgICBwcm9taXNlX3JlamVjdHNfanModCwgVHlwZUVycm9y
LCBmZXRjaCh1cmwsIHsgaGVhZGVyczogeyJ2YWwzIjogdmFsM30gfSkpCi0gICAgICBdKQotICAg
IH0gZWxzZSB7Ci0gICAgICByZXR1cm4gZmV0Y2godXJsLCB7IGhlYWRlcnM6IHsidmFsMSI6IHZh
bDEsICJ2YWwyIjogdmFsMiwgInZhbDMiOiB2YWwzfSB9KS50aGVuKChyZXMpID0+IHsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXMuaGVhZGVycy5nZXQoIngtcmVxdWVzdC12YWwxIiksIGV4cGVj
dGVkVmFsMSkKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXMuaGVhZGVycy5nZXQoIngtcmVxdWVz
dC12YWwyIiksIGV4cGVjdGVkVmFsMikKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXMuaGVhZGVy
cy5nZXQoIngtcmVxdWVzdC12YWwzIiksIGV4cGVjdGVkVmFsMykKLSAgICAgIH0pCi0gICAgfQot
ICB9LCAiZmV0Y2goKSB3aXRoIHZhbHVlICIgKyBlbmNvZGVVUkkodmFsKSkKLX0KLTwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJz
L2hlYWRlci12YWx1ZXMuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjJjNjllYzY2MjJi
YzZkNDFmYTg1MDRjM2ZmOTZmZmZhNDY4MTQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFk
ZXItdmFsdWVzLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitQQVNTIFhNTEh0
dHBSZXF1ZXN0IHdpdGggdmFsdWUgeCUwMHggbmVlZHMgdG8gdGhyb3cKK1BBU1MgZmV0Y2goKSB3
aXRoIHZhbHVlIHglMDB4IG5lZWRzIHRvIHRocm93CitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGgg
dmFsdWUgeCUwQXggbmVlZHMgdG8gdGhyb3cKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlIHglMEF4
IG5lZWRzIHRvIHRocm93CitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgeCUwRHggbmVl
ZHMgdG8gdGhyb3cKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlIHglMER4IG5lZWRzIHRvIHRocm93
CitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggYWxsIHZhbGlkIHZhbHVlcworUEFTUyBmZXRjaCgp
IHdpdGggYWxsIHZhbGlkIHZhbHVlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMu
YW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4Mjkx
MzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRl
cnMvaGVhZGVyLXZhbHVlcy5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBp
cyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1w
bGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFk
ZXJzL2hlYWRlci12YWx1ZXMuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLmFueS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45YTgyOWQ4ZDRlZDYyMThiOGMzZWJkZTAzY2FmN2FlNzMyMTExYzEyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLmFueS5qcwpAQCAtMCwwICsxLDYxIEBACisv
LyBNRVRBOiB0aXRsZT1IZWFkZXIgdmFsdWUgdGVzdAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3
b3JrZXIKKy8vIE1FVEE6IHRpbWVvdXQ9bG9uZworCisvLyBJbnZhbGlkIHZhbHVlcworWzAsIDB4
MEEsIDB4MERdLmZvckVhY2godmFsID0+IHsKKyAgdmFsID0gIngiICsgU3RyaW5nLmZyb21DaGFy
Q29kZSh2YWwpICsgIngiCisKKyAgLy8gWE1MSHR0cFJlcXVlc3QgaXMgbm90IGF2YWlsYWJsZSBp
biBzZXJ2aWNlIHdvcmtlcnMKKyAgaWYgKCFzZWxmLkdMT0JBTC5pc1dvcmtlcigpKSB7CisgICAg
dGVzdCgoKSA9PiB7CisgICAgICBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCkKKyAgICAg
IHhoci5vcGVuKCJQT1NUIiwgIi8iKQorICAgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVy
cm9yIiwgKCkgPT4geGhyLnNldFJlcXVlc3RIZWFkZXIoInZhbHVlLXRlc3QiLCB2YWwpKQorICAg
IH0sICJYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICIgKyBlbmNvZGVVUkkodmFsKSArICIgbmVl
ZHMgdG8gdGhyb3ciKQorICB9CisKKyAgcHJvbWlzZV90ZXN0KHQgPT4gcHJvbWlzZV9yZWplY3Rz
X2pzKHQsIFR5cGVFcnJvciwgZmV0Y2goIi8iLCB7IGhlYWRlcnM6IHsidmFsdWUtdGVzdCI6IHZh
bH0gfSkpLCAiZmV0Y2goKSB3aXRoIHZhbHVlICIgKyBlbmNvZGVVUkkodmFsKSArICIgbmVlZHMg
dG8gdGhyb3ciKQorfSkKKworLy8gVmFsaWQgdmFsdWVzCitsZXQgaGVhZGVyVmFsdWVzID1bXQor
Zm9yKGxldCBpID0gMDsgaSA8IDB4MTAwOyBpKyspIHsKKyAgaWYoaSA9PT0gMCB8fCBpID09PSAw
eDBBIHx8IGkgPT09IDB4MEQpIHsKKyAgICBjb250aW51ZQorICB9CisgIGhlYWRlclZhbHVlcy5w
dXNoKCJ4IiArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSkgKyAieCIpCit9Cit2YXIgdXJsID0gIi4u
L3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHk/aGVhZGVycz0iCitoZWFkZXJWYWx1ZXMuZm9y
RWFjaCgoXywgaSkgPT4geworICB1cmwgKz0gInZhbCIgKyBpICsgInwiCit9KQorCisvLyBYTUxI
dHRwUmVxdWVzdCBpcyBub3QgYXZhaWxhYmxlIGluIHNlcnZpY2Ugd29ya2VycworaWYgKCFzZWxm
LkdMT0JBTC5pc1dvcmtlcigpKSB7CisgIGFzeW5jX3Rlc3QoKHQpID0+IHsKKyAgICBsZXQgeGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCkKKyAgICB4aHIub3BlbigiUE9TVCIsIHVybCkKKyAgICBo
ZWFkZXJWYWx1ZXMuZm9yRWFjaCgodmFsLCBpKSA9PiB7CisgICAgICB4aHIuc2V0UmVxdWVzdEhl
YWRlcigidmFsIiArIGksIHZhbCkKKyAgICB9KQorICAgIHhoci5vbmxvYWQgPSB0LnN0ZXBfZnVu
Y19kb25lKCgpID0+IHsKKyAgICAgIGhlYWRlclZhbHVlcy5mb3JFYWNoKCh2YWwsIGkpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyh4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIngtcmVxdWVzdC12
YWwiICsgaSksIHZhbCkKKyAgICAgIH0pCisgICAgfSkKKyAgICB4aHIuc2VuZCgpCisgIH0sICJY
TUxIdHRwUmVxdWVzdCB3aXRoIGFsbCB2YWxpZCB2YWx1ZXMiKQorfQorCitwcm9taXNlX3Rlc3Qo
KHQpID0+IHsKKyAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzCisgIGhlYWRlclZhbHVlcy5m
b3JFYWNoKCh2YWwsIGkpID0+IHsKKyAgICBoZWFkZXJzLmFwcGVuZCgidmFsIiArIGksIHZhbCkK
KyAgfSkKKyAgcmV0dXJuIGZldGNoKHVybCwgeyBoZWFkZXJzIH0pLnRoZW4oKHJlcykgPT4gewor
ICAgIGhlYWRlclZhbHVlcy5mb3JFYWNoKCh2YWwsIGkpID0+IHsKKyAgICAgIGFzc2VydF9lcXVh
bHMocmVzLmhlYWRlcnMuZ2V0KCJ4LXJlcXVlc3QtdmFsIiArIGkpLCB2YWwpCisgICAgfSkKKyAg
fSkKK30sICJmZXRjaCgpIHdpdGggYWxsIHZhbGlkIHZhbHVlcyIpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJz
L2hlYWRlci12YWx1ZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1
ZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY3YmVlNGM3Y2IxNTRmZTI1
MzBkOGJkOWQ0MzBiNDEwMjlhMGFmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZh
bHVlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBmZXRj
aCgpIHdpdGggdmFsdWUgeCUwMHggbmVlZHMgdG8gdGhyb3cKK1BBU1MgZmV0Y2goKSB3aXRoIHZh
bHVlIHglMEF4IG5lZWRzIHRvIHRocm93CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSB4JTBEeCBu
ZWVkcyB0byB0aHJvdworUEFTUyBmZXRjaCgpIHdpdGggYWxsIHZhbGlkIHZhbHVlcworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXIt
dmFsdWVzLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZj
NjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVz
LmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJl
ZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVz
dCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
ci12YWx1ZXMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhNjhiZmE5MWJmNWQ4MWQ5NTE0MWVlMTcwZjg1NmY5ZGVmZDg5OTRhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVy
LXZhbHVlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotPCFkb2N0eXBlIGh0
bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zjg+Ci08bWV0YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25n
PgotPHRpdGxlPkhlYWRlciB2YWx1ZSB0ZXN0PC90aXRsZT4KLTxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPGRpdiBpZD1sb2c+PC9kaXY+Ci08c2NyaXB0Pgot
Ly8gSW52YWxpZCB2YWx1ZXMKLVswLCAweDBBLCAweDBEXS5mb3JFYWNoKHZhbCA9PiB7Ci0gIHZh
bCA9ICJ4IiArIFN0cmluZy5mcm9tQ2hhckNvZGUodmFsKSArICJ4IgotICB0ZXN0KCgpID0+IHsK
LSAgICBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCkKLSAgICB4aHIub3BlbigiUE9TVCIs
ICIvIikKLSAgICBhc3NlcnRfdGhyb3dzX2RvbSgiU3ludGF4RXJyb3IiLCAoKSA9PiB4aHIuc2V0
UmVxdWVzdEhlYWRlcigidmFsdWUtdGVzdCIsIHZhbCkpCi0gIH0sICJYTUxIdHRwUmVxdWVzdCB3
aXRoIHZhbHVlICIgKyBlbmNvZGVVUkkodmFsKSArICIgbmVlZHMgdG8gdGhyb3ciKQotCi0gIHBy
b21pc2VfdGVzdCh0ID0+IHByb21pc2VfcmVqZWN0c19qcyh0LCBUeXBlRXJyb3IsIGZldGNoKCIv
IiwgeyBoZWFkZXJzOiB7InZhbHVlLXRlc3QiOiB2YWx9IH0pKSwgImZldGNoKCkgd2l0aCB2YWx1
ZSAiICsgZW5jb2RlVVJJKHZhbCkgKyAiIG5lZWRzIHRvIHRocm93IikKLX0pCi0KLS8vIFZhbGlk
IHZhbHVlcwotbGV0IGhlYWRlclZhbHVlcyA9W10KLWZvcihsZXQgaSA9IDA7IGkgPCAweDEwMDsg
aSsrKSB7Ci0gIGlmKGkgPT09IDAgfHwgaSA9PT0gMHgwQSB8fCBpID09PSAweDBEKSB7Ci0gICAg
Y29udGludWUKLSAgfQotICBoZWFkZXJWYWx1ZXMucHVzaCgieCIgKyBTdHJpbmcuZnJvbUNoYXJD
b2RlKGkpICsgIngiKQotfQotdmFyIHVybCA9ICIuLi9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJz
LnB5P2hlYWRlcnM9IgotaGVhZGVyVmFsdWVzLmZvckVhY2goKF8sIGkpID0+IHsKLSAgdXJsICs9
ICJ2YWwiICsgaSArICJ8IgotfSkKLQotYXN5bmNfdGVzdCgodCkgPT4gewotICBsZXQgeGhyID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCkKLSAgeGhyLm9wZW4oIlBPU1QiLCB1cmwpCi0gIGhlYWRlclZh
bHVlcy5mb3JFYWNoKCh2YWwsIGkpID0+IHsKLSAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigidmFs
IiArIGksIHZhbCkKLSAgfSkKLSAgeGhyLm9ubG9hZCA9IHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4g
ewotICAgIGhlYWRlclZhbHVlcy5mb3JFYWNoKCh2YWwsIGkpID0+IHsKLSAgICAgIGFzc2VydF9l
cXVhbHMoeGhyLmdldFJlc3BvbnNlSGVhZGVyKCJ4LXJlcXVlc3QtdmFsIiArIGkpLCB2YWwpCi0g
ICAgfSkKLSAgfSkKLSAgeGhyLnNlbmQoKQotfSwgIlhNTEh0dHBSZXF1ZXN0IHdpdGggYWxsIHZh
bGlkIHZhbHVlcyIpCi0KLXByb21pc2VfdGVzdCgodCkgPT4gewotICBjb25zdCBoZWFkZXJzID0g
bmV3IEhlYWRlcnMKLSAgaGVhZGVyVmFsdWVzLmZvckVhY2goKHZhbCwgaSkgPT4gewotICAgIGhl
YWRlcnMuYXBwZW5kKCJ2YWwiICsgaSwgdmFsKQotICB9KQotICByZXR1cm4gZmV0Y2godXJsLCB7
IGhlYWRlcnMgfSkudGhlbigocmVzKSA9PiB7Ci0gICAgaGVhZGVyVmFsdWVzLmZvckVhY2goKHZh
bCwgaSkgPT4gewotICAgICAgYXNzZXJ0X2VxdWFscyhyZXMuaGVhZGVycy5nZXQoIngtcmVxdWVz
dC12YWwiICsgaSksIHZhbCkKLSAgICB9KQotICB9KQotfSwgImZldGNoKCkgd2l0aCBhbGwgdmFs
aWQgdmFsdWVzIikKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI5YjI1MmFhZGYzZjVhNzRmZjE0NmUyNWJjY2RiZjYzNzExOTRl
ZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAK
LQotUEFTUyBDcmVhdGUgaGVhZGVycyBmcm9tIG5vIHBhcmFtZXRlcgotUEFTUyBDcmVhdGUgaGVh
ZGVycyBmcm9tIHVuZGVmaW5lZCBwYXJhbWV0ZXIKLVBBU1MgQ3JlYXRlIGhlYWRlcnMgZnJvbSBl
bXB0eSBvYmplY3QKLVBBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCBudWxsIHNob3VsZCB0aHJvdwot
UEFTUyBDcmVhdGUgaGVhZGVycyB3aXRoIDEgc2hvdWxkIHRocm93Ci1QQVNTIENyZWF0ZSBoZWFk
ZXJzIHdpdGggc2VxdWVuY2UKLVBBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCByZWNvcmQKLVBBU1Mg
Q3JlYXRlIGhlYWRlcnMgd2l0aCBleGlzdGluZyBoZWFkZXJzCi1QQVNTIENyZWF0ZSBoZWFkZXJz
IHdpdGggZXhpc3RpbmcgaGVhZGVycyB3aXRoIGN1c3RvbSBpdGVyYXRvcgotUEFTUyBDaGVjayBh
cHBlbmQgbWV0aG9kCi1QQVNTIENoZWNrIHNldCBtZXRob2QKLVBBU1MgQ2hlY2sgaGFzIG1ldGhv
ZAotUEFTUyBDaGVjayBkZWxldGUgbWV0aG9kCi1QQVNTIENoZWNrIGdldCBtZXRob2QKLVBBU1Mg
Q2hlY2sga2V5cyBtZXRob2QKLVBBU1MgQ2hlY2sgdmFsdWVzIG1ldGhvZAotUEFTUyBDaGVjayBl
bnRyaWVzIG1ldGhvZAotUEFTUyBDaGVjayBTeW1ib2wuaXRlcmF0b3IgbWV0aG9kCi1QQVNTIENo
ZWNrIGZvckVhY2ggbWV0aG9kCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLmFueS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjliMjUyYWFkZjNmNWE3NGZmMTQ2ZTI1YmNjZGJmNjM3MTE5NGVlZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjEgQEAKKworUEFTUyBDcmVhdGUgaGVhZGVycyBmcm9tIG5vIHBhcmFtZXRlcgorUEFTUyBDcmVh
dGUgaGVhZGVycyBmcm9tIHVuZGVmaW5lZCBwYXJhbWV0ZXIKK1BBU1MgQ3JlYXRlIGhlYWRlcnMg
ZnJvbSBlbXB0eSBvYmplY3QKK1BBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCBudWxsIHNob3VsZCB0
aHJvdworUEFTUyBDcmVhdGUgaGVhZGVycyB3aXRoIDEgc2hvdWxkIHRocm93CitQQVNTIENyZWF0
ZSBoZWFkZXJzIHdpdGggc2VxdWVuY2UKK1BBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCByZWNvcmQK
K1BBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCBleGlzdGluZyBoZWFkZXJzCitQQVNTIENyZWF0ZSBo
ZWFkZXJzIHdpdGggZXhpc3RpbmcgaGVhZGVycyB3aXRoIGN1c3RvbSBpdGVyYXRvcgorUEFTUyBD
aGVjayBhcHBlbmQgbWV0aG9kCitQQVNTIENoZWNrIHNldCBtZXRob2QKK1BBU1MgQ2hlY2sgaGFz
IG1ldGhvZAorUEFTUyBDaGVjayBkZWxldGUgbWV0aG9kCitQQVNTIENoZWNrIGdldCBtZXRob2QK
K1BBU1MgQ2hlY2sga2V5cyBtZXRob2QKK1BBU1MgQ2hlY2sgdmFsdWVzIG1ldGhvZAorUEFTUyBD
aGVjayBlbnRyaWVzIG1ldGhvZAorUEFTUyBDaGVjayBTeW1ib2wuaXRlcmF0b3IgbWV0aG9kCitQ
QVNTIENoZWNrIGZvckVhY2ggbWV0aG9kCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNp
Yy5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgy
OTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVh
ZGVycy9oZWFkZXJzLWJhc2ljLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRl
bXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1iYXNpYy5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuYW55LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVkZTcxZjQzYmI0ZmMzN2QzODAwNjYyNmZjNmM2Mjc2Y2Q3ZGJkNWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuYW55LmpzCkBAIC0wLDAgKzEsMjE4IEBA
CisvLyBNRVRBOiB0aXRsZT1IZWFkZXJzIHN0cnVjdHVyZQorLy8gTUVUQTogZ2xvYmFsPXdpbmRv
dyx3b3JrZXIKKwordGVzdChmdW5jdGlvbigpIHsKKyAgbmV3IEhlYWRlcnMoKTsKK30sICJDcmVh
dGUgaGVhZGVycyBmcm9tIG5vIHBhcmFtZXRlciIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBu
ZXcgSGVhZGVycyh1bmRlZmluZWQpOworfSwgIkNyZWF0ZSBoZWFkZXJzIGZyb20gdW5kZWZpbmVk
IHBhcmFtZXRlciIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBuZXcgSGVhZGVycyh7fSk7Cit9
LCAiQ3JlYXRlIGhlYWRlcnMgZnJvbSBlbXB0eSBvYmplY3QiKTsKKwordmFyIHBhcmFtZXRlcnMg
PSBbbnVsbCwgMV07CitwYXJhbWV0ZXJzLmZvckVhY2goZnVuY3Rpb24ocGFyYW1ldGVyKSB7Cisg
IHRlc3QoZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0
aW9uKCkgeyBuZXcgSGVhZGVycyhwYXJhbWV0ZXIpIH0pOworICB9LCAiQ3JlYXRlIGhlYWRlcnMg
d2l0aCAiICsgcGFyYW1ldGVyICsgIiBzaG91bGQgdGhyb3ciKTsKK30pOworCit2YXIgaGVhZGVy
RGljdCA9IHsibmFtZTEiOiAidmFsdWUxIiwKKyAgICAgICAgICAgICAgICAgICJuYW1lMiI6ICJ2
YWx1ZTIiLAorICAgICAgICAgICAgICAgICAgIm5hbWUzIjogInZhbHVlMyIsCisgICAgICAgICAg
ICAgICAgICAibmFtZTQiOiBudWxsLAorICAgICAgICAgICAgICAgICAgIm5hbWU1IjogdW5kZWZp
bmVkLAorICAgICAgICAgICAgICAgICAgIm5hbWU2IjogMSwKKyAgICAgICAgICAgICAgICAgICJD
b250ZW50LVR5cGUiOiAidmFsdWU0IgorfTsKKwordmFyIGhlYWRlclNlcSA9IFtdOworZm9yICh2
YXIgbmFtZSBpbiBoZWFkZXJEaWN0KQorICBoZWFkZXJTZXEucHVzaChbbmFtZSwgaGVhZGVyRGlj
dFtuYW1lXV0pOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFk
ZXJzKGhlYWRlclNlcSk7CisgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0KSB7CisgICAgYXNzZXJ0
X2VxdWFscyhoZWFkZXJzLmdldChuYW1lKSwgU3RyaW5nKGhlYWRlckRpY3RbbmFtZV0pLAorICAg
ICAgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBoZWFkZXJEaWN0W25hbWVdKTsK
KyAgfQorICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCJsZW5ndGgiKSwgbnVsbCwgImluaXQg
c2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBzZXF1ZW5jZSwgbm90IGFzIGEgZGljdGlvbmFyeSIpOwor
fSwgIkNyZWF0ZSBoZWFkZXJzIHdpdGggc2VxdWVuY2UiKTsKKwordGVzdChmdW5jdGlvbigpIHsK
KyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJEaWN0KTsKKyAgZm9yIChuYW1lIGlu
IGhlYWRlckRpY3QpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCBTdHJp
bmcoaGVhZGVyRGljdFtuYW1lXSksCisgICAgICAibmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1
ZTogIiArIGhlYWRlckRpY3RbbmFtZV0pOworICB9Cit9LCAiQ3JlYXRlIGhlYWRlcnMgd2l0aCBy
ZWNvcmQiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVy
cyhoZWFkZXJEaWN0KTsKKyAgdmFyIGhlYWRlcnMyID0gbmV3IEhlYWRlcnMoaGVhZGVycyk7Cisg
IGZvciAobmFtZSBpbiBoZWFkZXJEaWN0KSB7CisgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzMi5n
ZXQobmFtZSksIFN0cmluZyhoZWFkZXJEaWN0W25hbWVdKSwKKyAgICAgICJuYW1lOiAiICsgbmFt
ZSArICIgaGFzIHZhbHVlOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7CisgIH0KK30sICJDcmVhdGUg
aGVhZGVycyB3aXRoIGV4aXN0aW5nIGhlYWRlcnMiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
dmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpCisgIGhlYWRlcnNbU3ltYm9sLml0ZXJhdG9yXSA9
IGZ1bmN0aW9uICooKSB7CisgICAgeWllbGQgWyJ0ZXN0IiwgInRlc3QiXQorICB9CisgIHZhciBo
ZWFkZXJzMiA9IG5ldyBIZWFkZXJzKGhlYWRlcnMpCisgIGFzc2VydF9lcXVhbHMoaGVhZGVyczIu
Z2V0KCJ0ZXN0IiksICJ0ZXN0IikKK30sICJDcmVhdGUgaGVhZGVycyB3aXRoIGV4aXN0aW5nIGhl
YWRlcnMgd2l0aCBjdXN0b20gaXRlcmF0b3IiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFy
IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdCkgewor
ICAgIGhlYWRlcnMuYXBwZW5kKG5hbWUsIGhlYWRlckRpY3RbbmFtZV0pOworICAgIGFzc2VydF9l
cXVhbHMoaGVhZGVycy5nZXQobmFtZSksIFN0cmluZyhoZWFkZXJEaWN0W25hbWVdKSwKKyAgICAg
ICJuYW1lOiAiICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7Cisg
IH0KK30sICJDaGVjayBhcHBlbmQgbWV0aG9kIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZh
ciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKKyAgZm9yIChuYW1lIGluIGhlYWRlckRpY3QpIHsK
KyAgICBoZWFkZXJzLnNldChuYW1lLCBoZWFkZXJEaWN0W25hbWVdKTsKKyAgICBhc3NlcnRfZXF1
YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCBTdHJpbmcoaGVhZGVyRGljdFtuYW1lXSksCisgICAgICAi
bmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZTogIiArIGhlYWRlckRpY3RbbmFtZV0pOworICB9
Cit9LCAiQ2hlY2sgc2V0IG1ldGhvZCIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaGVh
ZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckRpY3QpOworICBmb3IgKG5hbWUgaW4gaGVhZGVyRGlj
dCkKKyAgICBhc3NlcnRfdHJ1ZShoZWFkZXJzLmhhcyhuYW1lKSwiaGVhZGVycyBoYXMgbmFtZSAi
ICsgbmFtZSk7CisKKyAgYXNzZXJ0X2ZhbHNlKGhlYWRlcnMuaGFzKCJuYW1lTm90SW5IZWFkZXJz
IiksImhlYWRlcnMgZG8gbm90IGhhdmUgaGVhZGVyOiBuYW1lTm90SW5IZWFkZXJzIik7Cit9LCAi
Q2hlY2sgaGFzIG1ldGhvZCIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaGVhZGVycyA9
IG5ldyBIZWFkZXJzKGhlYWRlckRpY3QpOworICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdCkgewor
ICAgIGFzc2VydF90cnVlKGhlYWRlcnMuaGFzKG5hbWUpLCJoZWFkZXJzIGhhdmUgYSBoZWFkZXI6
ICIgKyBuYW1lKTsKKyAgICBoZWFkZXJzLmRlbGV0ZShuYW1lKQorICAgIGFzc2VydF90cnVlKCFo
ZWFkZXJzLmhhcyhuYW1lKSwiaGVhZGVycyBkbyBub3QgaGF2ZSBhbnltb3JlIGEgaGVhZGVyOiAi
ICsgbmFtZSk7CisgIH0KK30sICJDaGVjayBkZWxldGUgbWV0aG9kIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyRGljdCk7CisgIGZvciAo
bmFtZSBpbiBoZWFkZXJEaWN0KQorICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQobmFtZSks
IFN0cmluZyhoZWFkZXJEaWN0W25hbWVdKSwKKyAgICAgICJuYW1lOiAiICsgbmFtZSArICIgaGFz
IHZhbHVlOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7CisKKyAgYXNzZXJ0X2VxdWFscyhoZWFkZXJz
LmdldCgibmFtZU5vdEluSGVhZGVycyIpLCBudWxsLCAiaGVhZGVyOiBuYW1lTm90SW5IZWFkZXJz
IGhhcyBubyB2YWx1ZSIpOworfSwgIkNoZWNrIGdldCBtZXRob2QiKTsKKwordmFyIGhlYWRlckVu
dHJpZXNEaWN0ID0geyJuYW1lMSI6ICJ2YWx1ZTEiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTmFtZTIiOiAidmFsdWUyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAi
dmFsdWUzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRlbnQtVHlwZSI6ICJ2YWx1
ZTQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29udGVudC1UeXAiOiAidmFsdWU1IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnRlbnQtVHlwZXMiOiAidmFsdWU2IgorfTsK
K3ZhciBzb3J0ZWRIZWFkZXJEaWN0ID0ge307Cit2YXIgaGVhZGVyVmFsdWVzID0gW107Cit2YXIg
c29ydGVkSGVhZGVyS2V5cyA9IE9iamVjdC5rZXlzKGhlYWRlckVudHJpZXNEaWN0KS5tYXAoZnVu
Y3Rpb24odmFsdWUpIHsKKyAgc29ydGVkSGVhZGVyRGljdFt2YWx1ZS50b0xvd2VyQ2FzZSgpXSA9
IGhlYWRlckVudHJpZXNEaWN0W3ZhbHVlXTsKKyAgaGVhZGVyVmFsdWVzLnB1c2goaGVhZGVyRW50
cmllc0RpY3RbdmFsdWVdKTsKKyAgcmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKCk7Cit9KS5zb3J0
KCk7CisKK3ZhciBpdGVyYXRvclByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihPYmpl
Y3QuZ2V0UHJvdG90eXBlT2YoW11bU3ltYm9sLml0ZXJhdG9yXSgpKSk7CitmdW5jdGlvbiBjaGVj
a0l0ZXJhdG9yUHJvcGVydGllcyhpdGVyYXRvcikgeworICB2YXIgcHJvdG90eXBlID0gT2JqZWN0
LmdldFByb3RvdHlwZU9mKGl0ZXJhdG9yKTsKKyAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJv
dG90eXBlT2YocHJvdG90eXBlKSwgaXRlcmF0b3JQcm90b3R5cGUpOworCisgIHZhciBkZXNjcmlw
dG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwcm90b3R5cGUsICJuZXh0Iik7
CisgIGFzc2VydF90cnVlKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlLCAiY29uZmlndXJhYmxlIik7
CisgIGFzc2VydF90cnVlKGRlc2NyaXB0b3IuZW51bWVyYWJsZSwgImVudW1lcmFibGUiKTsKKyAg
YXNzZXJ0X3RydWUoZGVzY3JpcHRvci53cml0YWJsZSwgIndyaXRhYmxlIik7Cit9CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyRW50cmllc0Rp
Y3QpOworICB2YXIgYWN0dWFsID0gaGVhZGVycy5rZXlzKCk7CisgIGNoZWNrSXRlcmF0b3JQcm9w
ZXJ0aWVzKGFjdHVhbCk7CisKKyAgc29ydGVkSGVhZGVyS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtl
eSkgeworICAgICAgZW50cnkgPSBhY3R1YWwubmV4dCgpOworICAgICAgYXNzZXJ0X2ZhbHNlKGVu
dHJ5LmRvbmUpOworICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS52YWx1ZSwga2V5KTsKKyAgfSk7
CisgIGFzc2VydF90cnVlKGFjdHVhbC5uZXh0KCkuZG9uZSk7CisgIGFzc2VydF90cnVlKGFjdHVh
bC5uZXh0KCkuZG9uZSk7CisKKyAgZm9yIChrZXkgb2YgaGVhZGVycy5rZXlzKCkpCisgICAgICBh
c3NlcnRfdHJ1ZShzb3J0ZWRIZWFkZXJLZXlzLmluZGV4T2Yoa2V5KSAhPSAtMSk7Cit9LCAiQ2hl
Y2sga2V5cyBtZXRob2QiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBu
ZXcgSGVhZGVycyhoZWFkZXJFbnRyaWVzRGljdCk7CisgIHZhciBhY3R1YWwgPSBoZWFkZXJzLnZh
bHVlcygpOworICBjaGVja0l0ZXJhdG9yUHJvcGVydGllcyhhY3R1YWwpOworCisgIHNvcnRlZEhl
YWRlcktleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsKKyAgICAgIGVudHJ5ID0gYWN0dWFsLm5l
eHQoKTsKKyAgICAgIGFzc2VydF9mYWxzZShlbnRyeS5kb25lKTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoZW50cnkudmFsdWUsIHNvcnRlZEhlYWRlckRpY3Rba2V5XSk7CisgIH0pOworICBhc3NlcnRf
dHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOworICBhc3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRv
bmUpOworCisgIGZvciAodmFsdWUgb2YgaGVhZGVycy52YWx1ZXMoKSkKKyAgICAgIGFzc2VydF90
cnVlKGhlYWRlclZhbHVlcy5pbmRleE9mKHZhbHVlKSAhPSAtMSk7Cit9LCAiQ2hlY2sgdmFsdWVz
IG1ldGhvZCIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFk
ZXJzKGhlYWRlckVudHJpZXNEaWN0KTsKKyAgdmFyIGFjdHVhbCA9IGhlYWRlcnMuZW50cmllcygp
OworICBjaGVja0l0ZXJhdG9yUHJvcGVydGllcyhhY3R1YWwpOworCisgIHNvcnRlZEhlYWRlcktl
eXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsKKyAgICAgIGVudHJ5ID0gYWN0dWFsLm5leHQoKTsK
KyAgICAgIGFzc2VydF9mYWxzZShlbnRyeS5kb25lKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoZW50
cnkudmFsdWVbMF0sIGtleSk7CisgICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5LnZhbHVlWzFdLCBz
b3J0ZWRIZWFkZXJEaWN0W2tleV0pOworICB9KTsKKyAgYXNzZXJ0X3RydWUoYWN0dWFsLm5leHQo
KS5kb25lKTsKKyAgYXNzZXJ0X3RydWUoYWN0dWFsLm5leHQoKS5kb25lKTsKKworICBmb3IgKGVu
dHJ5IG9mIGhlYWRlcnMuZW50cmllcygpKQorICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeVsxXSwg
c29ydGVkSGVhZGVyRGljdFtlbnRyeVswXV0pOworfSwgIkNoZWNrIGVudHJpZXMgbWV0aG9kIik7
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVy
RW50cmllc0RpY3QpOworICB2YXIgYWN0dWFsID0gaGVhZGVyc1tTeW1ib2wuaXRlcmF0b3JdKCk7
CisKKyAgc29ydGVkSGVhZGVyS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgeworICAgICAgZW50
cnkgPSBhY3R1YWwubmV4dCgpOworICAgICAgYXNzZXJ0X2ZhbHNlKGVudHJ5LmRvbmUpOworICAg
ICAgYXNzZXJ0X2VxdWFscyhlbnRyeS52YWx1ZVswXSwga2V5KTsKKyAgICAgIGFzc2VydF9lcXVh
bHMoZW50cnkudmFsdWVbMV0sIHNvcnRlZEhlYWRlckRpY3Rba2V5XSk7CisgIH0pOworICBhc3Nl
cnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOworICBhc3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgp
LmRvbmUpOworfSwgIkNoZWNrIFN5bWJvbC5pdGVyYXRvciBtZXRob2QiKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJFbnRyaWVzRGljdCk7
CisgIHZhciByZWZlcmVuY2UgPSBzb3J0ZWRIZWFkZXJLZXlzW1N5bWJvbC5pdGVyYXRvcl0oKTsK
KyAgaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbnRhaW5lcikgeworICAg
ICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLCBjb250YWluZXIpOworICAgICAgZW50cnkgPSByZWZl
cmVuY2UubmV4dCgpOworICAgICAgYXNzZXJ0X2ZhbHNlKGVudHJ5LmRvbmUpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhrZXksIGVudHJ5LnZhbHVlKTsKKyAgICAgIGFzc2VydF9lcXVhbHModmFsdWUs
IHNvcnRlZEhlYWRlckRpY3RbZW50cnkudmFsdWVdKTsKKyAgfSk7CisgIGFzc2VydF90cnVlKHJl
ZmVyZW5jZS5uZXh0KCkuZG9uZSk7Cit9LCAiQ2hlY2sgZm9yRWFjaCBtZXRob2QiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMv
aGVhZGVycy1iYXNpYy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWIyNTJh
YWRmM2Y1YTc0ZmYxNDZlMjViY2NkYmY2MzcxMTk0ZWVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVy
cy9oZWFkZXJzLWJhc2ljLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAK
KworUEFTUyBDcmVhdGUgaGVhZGVycyBmcm9tIG5vIHBhcmFtZXRlcgorUEFTUyBDcmVhdGUgaGVh
ZGVycyBmcm9tIHVuZGVmaW5lZCBwYXJhbWV0ZXIKK1BBU1MgQ3JlYXRlIGhlYWRlcnMgZnJvbSBl
bXB0eSBvYmplY3QKK1BBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCBudWxsIHNob3VsZCB0aHJvdwor
UEFTUyBDcmVhdGUgaGVhZGVycyB3aXRoIDEgc2hvdWxkIHRocm93CitQQVNTIENyZWF0ZSBoZWFk
ZXJzIHdpdGggc2VxdWVuY2UKK1BBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCByZWNvcmQKK1BBU1Mg
Q3JlYXRlIGhlYWRlcnMgd2l0aCBleGlzdGluZyBoZWFkZXJzCitQQVNTIENyZWF0ZSBoZWFkZXJz
IHdpdGggZXhpc3RpbmcgaGVhZGVycyB3aXRoIGN1c3RvbSBpdGVyYXRvcgorUEFTUyBDaGVjayBh
cHBlbmQgbWV0aG9kCitQQVNTIENoZWNrIHNldCBtZXRob2QKK1BBU1MgQ2hlY2sgaGFzIG1ldGhv
ZAorUEFTUyBDaGVjayBkZWxldGUgbWV0aG9kCitQQVNTIENoZWNrIGdldCBtZXRob2QKK1BBU1Mg
Q2hlY2sga2V5cyBtZXRob2QKK1BBU1MgQ2hlY2sgdmFsdWVzIG1ldGhvZAorUEFTUyBDaGVjayBl
bnRyaWVzIG1ldGhvZAorUEFTUyBDaGVjayBTeW1ib2wuaXRlcmF0b3IgbWV0aG9kCitQQVNTIENo
ZWNrIGZvckVhY2ggbWV0aG9kCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnku
d29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuYW55Lndvcmtlci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVy
ZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJh
c2ljLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1NGVmMDUxYzEyMjdjYzY3
NmRhZmJjOWYxYTNkOTFjOThhODliMDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwyMzAgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5IZWFkZXJzIHN0cnVjdHVyZTwvdGl0bGU+
Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5v
cmcvI2hlYWRlcnMiPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2Vh
cmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+
Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAg
ICBuZXcgSGVhZGVycygpOwotICAgICAgfSwgIkNyZWF0ZSBoZWFkZXJzIGZyb20gbm8gcGFyYW1l
dGVyIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIG5ldyBIZWFkZXJzKHVu
ZGVmaW5lZCk7Ci0gICAgICB9LCAiQ3JlYXRlIGhlYWRlcnMgZnJvbSB1bmRlZmluZWQgcGFyYW1l
dGVyIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIG5ldyBIZWFkZXJzKHt9
KTsKLSAgICAgIH0sICJDcmVhdGUgaGVhZGVycyBmcm9tIGVtcHR5IG9iamVjdCIpOwotCi0gICAg
ICB2YXIgcGFyYW1ldGVycyA9IFtudWxsLCAxXTsKLSAgICAgIHBhcmFtZXRlcnMuZm9yRWFjaChm
dW5jdGlvbihwYXJhbWV0ZXIpIHsKLSAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAg
ICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBIZWFkZXJzKHBh
cmFtZXRlcikgfSk7Ci0gICAgICAgIH0sICJDcmVhdGUgaGVhZGVycyB3aXRoICIgKyBwYXJhbWV0
ZXIgKyAiIHNob3VsZCB0aHJvdyIpOwotICAgICAgfSk7Ci0KLSAgICAgIHZhciBoZWFkZXJEaWN0
ID0geyJuYW1lMSI6ICJ2YWx1ZTEiLAotICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUyIjog
InZhbHVlMiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAibmFtZTMiOiAidmFsdWUzIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJuYW1lNCI6IG51bGwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAibmFtZTUiOiB1bmRlZmluZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAibmFtZTYi
OiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnRlbnQtVHlwZSI6ICJ2YWx1ZTQiCi0g
ICAgICB9OwotCi0gICAgICB2YXIgaGVhZGVyU2VxID0gW107Ci0gICAgICBmb3IgKHZhciBuYW1l
IGluIGhlYWRlckRpY3QpCi0gICAgICAgIGhlYWRlclNlcS5wdXNoKFtuYW1lLCBoZWFkZXJEaWN0
W25hbWVdXSk7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJz
ID0gbmV3IEhlYWRlcnMoaGVhZGVyU2VxKTsKLSAgICAgICAgZm9yIChuYW1lIGluIGhlYWRlckRp
Y3QpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCBTdHJpbmco
aGVhZGVyRGljdFtuYW1lXSksCi0gICAgICAgICAgICAibmFtZTogIiArIG5hbWUgKyAiIGhhcyB2
YWx1ZTogIiArIGhlYWRlckRpY3RbbmFtZV0pOwotICAgICAgICB9Ci0gICAgICAgIGFzc2VydF9l
cXVhbHMoaGVhZGVycy5nZXQoImxlbmd0aCIpLCBudWxsLCAiaW5pdCBzaG91bGQgYmUgdHJlYXRl
ZCBhcyBhIHNlcXVlbmNlLCBub3QgYXMgYSBkaWN0aW9uYXJ5Iik7Ci0gICAgICB9LCAiQ3JlYXRl
IGhlYWRlcnMgd2l0aCBzZXF1ZW5jZSIpOwotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAg
ICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckRpY3QpOwotICAgICAgICBmb3Ig
KG5hbWUgaW4gaGVhZGVyRGljdCkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5n
ZXQobmFtZSksIFN0cmluZyhoZWFkZXJEaWN0W25hbWVdKSwKLSAgICAgICAgICAgICJuYW1lOiAi
ICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7Ci0gICAgICAgIH0K
LSAgICAgIH0sICJDcmVhdGUgaGVhZGVycyB3aXRoIHJlY29yZCIpOwotCi0gICAgICB0ZXN0KGZ1
bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckRpY3Qp
OwotICAgICAgICB2YXIgaGVhZGVyczIgPSBuZXcgSGVhZGVycyhoZWFkZXJzKTsKLSAgICAgICAg
Zm9yIChuYW1lIGluIGhlYWRlckRpY3QpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRl
cnMyLmdldChuYW1lKSwgU3RyaW5nKGhlYWRlckRpY3RbbmFtZV0pLAotICAgICAgICAgICAgIm5h
bWU6ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBoZWFkZXJEaWN0W25hbWVdKTsKLSAgICAg
ICAgfQotICAgICAgfSwgIkNyZWF0ZSBoZWFkZXJzIHdpdGggZXhpc3RpbmcgaGVhZGVycyIpOwot
Ci0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFk
ZXJzKCkKLSAgICAgICAgaGVhZGVyc1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKigpIHsK
LSAgICAgICAgICB5aWVsZCBbInRlc3QiLCAidGVzdCJdCi0gICAgICAgIH0KLSAgICAgICAgdmFy
IGhlYWRlcnMyID0gbmV3IEhlYWRlcnMoaGVhZGVycykKLSAgICAgICAgYXNzZXJ0X2VxdWFscyho
ZWFkZXJzMi5nZXQoInRlc3QiKSwgInRlc3QiKQotICAgICAgfSwgIkNyZWF0ZSBoZWFkZXJzIHdp
dGggZXhpc3RpbmcgaGVhZGVycyB3aXRoIGN1c3RvbSBpdGVyYXRvciIpOwotCi0gICAgICB0ZXN0
KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7Ci0gICAg
ICAgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0KSB7Ci0gICAgICAgICAgaGVhZGVycy5hcHBlbmQo
bmFtZSwgaGVhZGVyRGljdFtuYW1lXSk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJz
LmdldChuYW1lKSwgU3RyaW5nKGhlYWRlckRpY3RbbmFtZV0pLAotICAgICAgICAgICAgIm5hbWU6
ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBoZWFkZXJEaWN0W25hbWVdKTsKLSAgICAgICAg
fQotICAgICAgfSwgIkNoZWNrIGFwcGVuZCBtZXRob2QiKTsKLQotICAgICAgdGVzdChmdW5jdGlv
bigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwotICAgICAgICBmb3Ig
KG5hbWUgaW4gaGVhZGVyRGljdCkgewotICAgICAgICAgIGhlYWRlcnMuc2V0KG5hbWUsIGhlYWRl
ckRpY3RbbmFtZV0pOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQobmFtZSks
IFN0cmluZyhoZWFkZXJEaWN0W25hbWVdKSwKLSAgICAgICAgICAgICJuYW1lOiAiICsgbmFtZSAr
ICIgaGFzIHZhbHVlOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7Ci0gICAgICAgIH0KLSAgICAgIH0s
ICJDaGVjayBzZXQgbWV0aG9kIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAg
IHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyRGljdCk7Ci0gICAgICAgIGZvciAobmFt
ZSBpbiBoZWFkZXJEaWN0KQotICAgICAgICAgIGFzc2VydF90cnVlKGhlYWRlcnMuaGFzKG5hbWUp
LCJoZWFkZXJzIGhhcyBuYW1lICIgKyBuYW1lKTsKLQotICAgICAgICBhc3NlcnRfZmFsc2UoaGVh
ZGVycy5oYXMoIm5hbWVOb3RJbkhlYWRlcnMiKSwiaGVhZGVycyBkbyBub3QgaGF2ZSBoZWFkZXI6
IG5hbWVOb3RJbkhlYWRlcnMiKTsKLSAgICAgIH0sICJDaGVjayBoYXMgbWV0aG9kIik7Ci0KLSAg
ICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMo
aGVhZGVyRGljdCk7Ci0gICAgICAgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0KSB7Ci0gICAgICAg
ICAgYXNzZXJ0X3RydWUoaGVhZGVycy5oYXMobmFtZSksImhlYWRlcnMgaGF2ZSBhIGhlYWRlcjog
IiArIG5hbWUpOwotICAgICAgICAgIGhlYWRlcnMuZGVsZXRlKG5hbWUpCi0gICAgICAgICAgYXNz
ZXJ0X3RydWUoIWhlYWRlcnMuaGFzKG5hbWUpLCJoZWFkZXJzIGRvIG5vdCBoYXZlIGFueW1vcmUg
YSBoZWFkZXI6ICIgKyBuYW1lKTsKLSAgICAgICAgfQotICAgICAgfSwgIkNoZWNrIGRlbGV0ZSBt
ZXRob2QiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMg
PSBuZXcgSGVhZGVycyhoZWFkZXJEaWN0KTsKLSAgICAgICAgZm9yIChuYW1lIGluIGhlYWRlckRp
Y3QpCi0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChuYW1lKSwgU3RyaW5nKGhl
YWRlckRpY3RbbmFtZV0pLAotICAgICAgICAgICAgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgdmFs
dWU6ICIgKyBoZWFkZXJEaWN0W25hbWVdKTsKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRl
cnMuZ2V0KCJuYW1lTm90SW5IZWFkZXJzIiksIG51bGwsICJoZWFkZXI6IG5hbWVOb3RJbkhlYWRl
cnMgaGFzIG5vIHZhbHVlIik7Ci0gICAgICB9LCAiQ2hlY2sgZ2V0IG1ldGhvZCIpOwotCi0gICAg
ICB2YXIgaGVhZGVyRW50cmllc0RpY3QgPSB7Im5hbWUxIjogInZhbHVlMSIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIk5hbWUyIjogInZhbHVlMiIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm5hbWUiOiAidmFsdWUzIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiY29udGVudC1UeXBlIjogInZhbHVlNCIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkNvbnRlbnQtVHlwIjogInZhbHVlNSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkNvbnRlbnQtVHlwZXMiOiAidmFsdWU2IgotICAgICAgfTsKLSAgICAgIHZhciBz
b3J0ZWRIZWFkZXJEaWN0ID0ge307Ci0gICAgICB2YXIgaGVhZGVyVmFsdWVzID0gW107Ci0gICAg
ICB2YXIgc29ydGVkSGVhZGVyS2V5cyA9IE9iamVjdC5rZXlzKGhlYWRlckVudHJpZXNEaWN0KS5t
YXAoZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAgc29ydGVkSGVhZGVyRGljdFt2YWx1ZS50b0xv
d2VyQ2FzZSgpXSA9IGhlYWRlckVudHJpZXNEaWN0W3ZhbHVlXTsKLSAgICAgICAgaGVhZGVyVmFs
dWVzLnB1c2goaGVhZGVyRW50cmllc0RpY3RbdmFsdWVdKTsKLSAgICAgICAgcmV0dXJuIHZhbHVl
LnRvTG93ZXJDYXNlKCk7Ci0gICAgICB9KS5zb3J0KCk7Ci0KLSAgICAgIHZhciBpdGVyYXRvclBy
b3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoW11b
U3ltYm9sLml0ZXJhdG9yXSgpKSk7Ci0gICAgICBmdW5jdGlvbiBjaGVja0l0ZXJhdG9yUHJvcGVy
dGllcyhpdGVyYXRvcikgewotICAgICAgICB2YXIgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3Rv
dHlwZU9mKGl0ZXJhdG9yKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90
eXBlT2YocHJvdG90eXBlKSwgaXRlcmF0b3JQcm90b3R5cGUpOwotCi0gICAgICAgIHZhciBkZXNj
cmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwcm90b3R5cGUsICJuZXh0
Iik7Ci0gICAgICAgIGFzc2VydF90cnVlKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlLCAiY29uZmln
dXJhYmxlIik7Ci0gICAgICAgIGFzc2VydF90cnVlKGRlc2NyaXB0b3IuZW51bWVyYWJsZSwgImVu
dW1lcmFibGUiKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoZGVzY3JpcHRvci53cml0YWJsZSwgIndy
aXRhYmxlIik7Ci0gICAgICB9Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZh
ciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyRW50cmllc0RpY3QpOwotICAgICAgICB2YXIg
YWN0dWFsID0gaGVhZGVycy5rZXlzKCk7Ci0gICAgICAgIGNoZWNrSXRlcmF0b3JQcm9wZXJ0aWVz
KGFjdHVhbCk7Ci0KLSAgICAgICAgc29ydGVkSGVhZGVyS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtl
eSkgewotICAgICAgICAgICAgZW50cnkgPSBhY3R1YWwubmV4dCgpOwotICAgICAgICAgICAgYXNz
ZXJ0X2ZhbHNlKGVudHJ5LmRvbmUpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS52
YWx1ZSwga2V5KTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGFzc2VydF90cnVlKGFjdHVhbC5uZXh0
KCkuZG9uZSk7Ci0gICAgICAgIGFzc2VydF90cnVlKGFjdHVhbC5uZXh0KCkuZG9uZSk7Ci0KLSAg
ICAgICAgZm9yIChrZXkgb2YgaGVhZGVycy5rZXlzKCkpCi0gICAgICAgICAgICBhc3NlcnRfdHJ1
ZShzb3J0ZWRIZWFkZXJLZXlzLmluZGV4T2Yoa2V5KSAhPSAtMSk7Ci0gICAgICB9LCAiQ2hlY2sg
a2V5cyBtZXRob2QiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhl
YWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJFbnRyaWVzRGljdCk7Ci0gICAgICAgIHZhciBhY3R1
YWwgPSBoZWFkZXJzLnZhbHVlcygpOwotICAgICAgICBjaGVja0l0ZXJhdG9yUHJvcGVydGllcyhh
Y3R1YWwpOwotCi0gICAgICAgIHNvcnRlZEhlYWRlcktleXMuZm9yRWFjaChmdW5jdGlvbihrZXkp
IHsKLSAgICAgICAgICAgIGVudHJ5ID0gYWN0dWFsLm5leHQoKTsKLSAgICAgICAgICAgIGFzc2Vy
dF9mYWxzZShlbnRyeS5kb25lKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkudmFs
dWUsIHNvcnRlZEhlYWRlckRpY3Rba2V5XSk7Ci0gICAgICAgIH0pOwotICAgICAgICBhc3NlcnRf
dHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOwotICAgICAgICBhc3NlcnRfdHJ1ZShhY3R1YWwubmV4
dCgpLmRvbmUpOwotCi0gICAgICAgIGZvciAodmFsdWUgb2YgaGVhZGVycy52YWx1ZXMoKSkKLSAg
ICAgICAgICAgIGFzc2VydF90cnVlKGhlYWRlclZhbHVlcy5pbmRleE9mKHZhbHVlKSAhPSAtMSk7
Ci0gICAgICB9LCAiQ2hlY2sgdmFsdWVzIG1ldGhvZCIpOwotCi0gICAgICB0ZXN0KGZ1bmN0aW9u
KCkgewotICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckVudHJpZXNEaWN0
KTsKLSAgICAgICAgdmFyIGFjdHVhbCA9IGhlYWRlcnMuZW50cmllcygpOwotICAgICAgICBjaGVj
a0l0ZXJhdG9yUHJvcGVydGllcyhhY3R1YWwpOwotCi0gICAgICAgIHNvcnRlZEhlYWRlcktleXMu
Zm9yRWFjaChmdW5jdGlvbihrZXkpIHsKLSAgICAgICAgICAgIGVudHJ5ID0gYWN0dWFsLm5leHQo
KTsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZShlbnRyeS5kb25lKTsKLSAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZW50cnkudmFsdWVbMF0sIGtleSk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGVudHJ5LnZhbHVlWzFdLCBzb3J0ZWRIZWFkZXJEaWN0W2tleV0pOwotICAgICAgICB9KTsK
LSAgICAgICAgYXNzZXJ0X3RydWUoYWN0dWFsLm5leHQoKS5kb25lKTsKLSAgICAgICAgYXNzZXJ0
X3RydWUoYWN0dWFsLm5leHQoKS5kb25lKTsKLQotICAgICAgICBmb3IgKGVudHJ5IG9mIGhlYWRl
cnMuZW50cmllcygpKQotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeVsxXSwgc29ydGVk
SGVhZGVyRGljdFtlbnRyeVswXV0pOwotICAgICAgfSwgIkNoZWNrIGVudHJpZXMgbWV0aG9kIik7
Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhl
YWRlcnMoaGVhZGVyRW50cmllc0RpY3QpOwotICAgICAgICB2YXIgYWN0dWFsID0gaGVhZGVyc1tT
eW1ib2wuaXRlcmF0b3JdKCk7Ci0KLSAgICAgICAgc29ydGVkSGVhZGVyS2V5cy5mb3JFYWNoKGZ1
bmN0aW9uKGtleSkgewotICAgICAgICAgICAgZW50cnkgPSBhY3R1YWwubmV4dCgpOwotICAgICAg
ICAgICAgYXNzZXJ0X2ZhbHNlKGVudHJ5LmRvbmUpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlbnRyeS52YWx1ZVswXSwga2V5KTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnku
dmFsdWVbMV0sIHNvcnRlZEhlYWRlckRpY3Rba2V5XSk7Ci0gICAgICAgIH0pOwotICAgICAgICBh
c3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOwotICAgICAgICBhc3NlcnRfdHJ1ZShhY3R1
YWwubmV4dCgpLmRvbmUpOwotICAgICAgfSwgIkNoZWNrIFN5bWJvbC5pdGVyYXRvciBtZXRob2Qi
KTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcg
SGVhZGVycyhoZWFkZXJFbnRyaWVzRGljdCk7Ci0gICAgICAgIHZhciByZWZlcmVuY2UgPSBzb3J0
ZWRIZWFkZXJLZXlzW1N5bWJvbC5pdGVyYXRvcl0oKTsKLSAgICAgICAgaGVhZGVycy5mb3JFYWNo
KGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbnRhaW5lcikgewotICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhoZWFkZXJzLCBjb250YWluZXIpOwotICAgICAgICAgICAgZW50cnkgPSByZWZlcmVuY2Uu
bmV4dCgpOwotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGVudHJ5LmRvbmUpOwotICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhrZXksIGVudHJ5LnZhbHVlKTsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHModmFsdWUsIHNvcnRlZEhlYWRlckRpY3RbZW50cnkudmFsdWVdKTsKLSAgICAgICAgfSk7
Ci0gICAgICAgIGFzc2VydF90cnVlKHJlZmVyZW5jZS5uZXh0KCkuZG9uZSk7Ci0gICAgICB9LCAi
Q2hlY2sgZm9yRWFjaCBtZXRob2QiKTsKLSAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY2FzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVh
ZGVycy1jYXNpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
Y2JkMTI5Zjc2ZmYyZjZhZjk5YTA1ZGE5MTEwMzYwMGUwNjllOTJlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jYXNpbmctZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0KLVBBU1MgQ3JlYXRlIGhlYWRl
cnMsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGggZGlmZmVyZW50IGNhc2UKLVBBU1MgQ2hlY2sg
YXBwZW5kIG1ldGhvZCwgbmFtZXMgdXNlIGNoYXJhY3RlcnMgd2l0aCBkaWZmZXJlbnQgY2FzZQot
UEFTUyBDaGVjayBzZXQgbWV0aG9kLCBuYW1lcyB1c2UgY2hhcmFjdGVycyB3aXRoIGRpZmZlcmVu
dCBjYXNlCi1QQVNTIENoZWNrIGRlbGV0ZSBtZXRob2QsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdp
dGggZGlmZmVyZW50IGNhc2UKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5hbnkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5hbnktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVjYmQxMjlmNzZmZjJmNmFmOTlhMDVkYTkxMTAzNjAwZTA2OWU5MmUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY2FzaW5nLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACisKK1BBU1MgQ3JlYXRlIGhlYWRlcnMsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGgg
ZGlmZmVyZW50IGNhc2UKK1BBU1MgQ2hlY2sgYXBwZW5kIG1ldGhvZCwgbmFtZXMgdXNlIGNoYXJh
Y3RlcnMgd2l0aCBkaWZmZXJlbnQgY2FzZQorUEFTUyBDaGVjayBzZXQgbWV0aG9kLCBuYW1lcyB1
c2UgY2hhcmFjdGVycyB3aXRoIGRpZmZlcmVudCBjYXNlCitQQVNTIENoZWNrIGRlbGV0ZSBtZXRo
b2QsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGggZGlmZmVyZW50IGNhc2UKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aGVhZGVycy9oZWFkZXJzLWNhc2luZy5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jYXNpbmcuYW55
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhj
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jYXNpbmcuYW55Lmh0bWwKQEAgLTAs
MCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJh
c3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5hbnkuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJz
L2hlYWRlcnMtY2FzaW5nLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2JlYzAxNjRlZDlhYmIxMDlhMDgz
NWM1YTZlY2I1MmViZGY4NTU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2lu
Zy5hbnkuanMKQEAgLTAsMCArMSw1MiBAQAorLy8gTUVUQTogdGl0bGU9SGVhZGVycyBjYXNlIG1h
bmFnZW1lbnQKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisKK3ZhciBoZWFkZXJEaWN0
Q2FzZSA9IHsiVVBQRVJDQVNFIjogInZhbHVlMSIsCisgICAgICAgICAgICAgICAgICAgICAgImxv
d2VyY2FzZSI6ICJ2YWx1ZTIiLAorICAgICAgICAgICAgICAgICAgICAgICJtaXhlZENhc2UiOiAi
dmFsdWUzIiwKKyAgICAgICAgICAgICAgICAgICAgICAiQ29udGVudC1UWVBFIjogInZhbHVlNCIK
KyAgICAgICAgICAgICAgICAgICAgICB9OworCitmdW5jdGlvbiBjaGVja0hlYWRlcnNDYXNlKG9y
aWdpbmFsTmFtZSwgaGVhZGVyc1RvQ2hlY2ssIGV4cGVjdGVkRGljdCkgeworICB2YXIgbG93Q2Fz
ZU5hbWUgPSBvcmlnaW5hbE5hbWUudG9Mb3dlckNhc2UoKTsKKyAgdmFyIHVwQ2FzZU5hbWUgPSBv
cmlnaW5hbE5hbWUudG9VcHBlckNhc2UoKTsKKyAgdmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3Rl
ZERpY3Rbb3JpZ2luYWxOYW1lXTsKKyAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzVG9DaGVjay5nZXQo
b3JpZ2luYWxOYW1lKSwgZXhwZWN0ZWRWYWx1ZSwKKyAgICAgICJuYW1lOiAiICsgb3JpZ2luYWxO
YW1lICsgIiBoYXMgdmFsdWU6ICIgKyBleHBlY3RlZFZhbHVlKTsKKyAgYXNzZXJ0X2VxdWFscyho
ZWFkZXJzVG9DaGVjay5nZXQobG93Q2FzZU5hbWUpLCBleHBlY3RlZFZhbHVlLAorICAgICAgIm5h
bWU6ICIgKyBsb3dDYXNlTmFtZSArICIgaGFzIHZhbHVlOiAiICsgZXhwZWN0ZWRWYWx1ZSk7Cisg
IGFzc2VydF9lcXVhbHMoaGVhZGVyc1RvQ2hlY2suZ2V0KHVwQ2FzZU5hbWUpLCBleHBlY3RlZFZh
bHVlLAorICAgICAgIm5hbWU6ICIgKyB1cENhc2VOYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBleHBl
Y3RlZFZhbHVlKTsKK30KKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcg
SGVhZGVycyhoZWFkZXJEaWN0Q2FzZSk7CisgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0Q2FzZSkK
KyAgICBjaGVja0hlYWRlcnNDYXNlKG5hbWUsIGhlYWRlcnMsIGhlYWRlckRpY3RDYXNlKQorfSwg
IkNyZWF0ZSBoZWFkZXJzLCBuYW1lcyB1c2UgY2hhcmFjdGVycyB3aXRoIGRpZmZlcmVudCBjYXNl
Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsK
KyAgZm9yIChuYW1lIGluIGhlYWRlckRpY3RDYXNlKSB7CisgICAgaGVhZGVycy5hcHBlbmQobmFt
ZSwgaGVhZGVyRGljdENhc2VbbmFtZV0pOworICAgIGNoZWNrSGVhZGVyc0Nhc2UobmFtZSwgaGVh
ZGVycywgaGVhZGVyRGljdENhc2UpOworICB9Cit9LCAiQ2hlY2sgYXBwZW5kIG1ldGhvZCwgbmFt
ZXMgdXNlIGNoYXJhY3RlcnMgd2l0aCBkaWZmZXJlbnQgY2FzZSIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7CisgIGZvciAobmFtZSBpbiBoZWFk
ZXJEaWN0Q2FzZSkgeworICAgIGhlYWRlcnMuc2V0KG5hbWUsIGhlYWRlckRpY3RDYXNlW25hbWVd
KTsKKyAgICBjaGVja0hlYWRlcnNDYXNlKG5hbWUsIGhlYWRlcnMsIGhlYWRlckRpY3RDYXNlKTsK
KyAgfQorfSwgIkNoZWNrIHNldCBtZXRob2QsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGggZGlm
ZmVyZW50IGNhc2UiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcg
SGVhZGVycygpOworICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdENhc2UpCisgICAgaGVhZGVycy5z
ZXQobmFtZSwgaGVhZGVyRGljdENhc2VbbmFtZV0pOworICBmb3IgKG5hbWUgaW4gaGVhZGVyRGlj
dENhc2UpCisgICAgaGVhZGVycy5kZWxldGUobmFtZS50b0xvd2VyQ2FzZSgpKTsKKyAgZm9yIChu
YW1lIGluIGhlYWRlckRpY3RDYXNlKQorICAgIGFzc2VydF9mYWxzZShoZWFkZXJzLmhhcyhuYW1l
KSwgImhlYWRlciAiICsgbmFtZSArICIgc2hvdWxkIGhhdmUgYmVlbiBkZWxldGVkIik7Cit9LCAi
Q2hlY2sgZGVsZXRlIG1ldGhvZCwgbmFtZXMgdXNlIGNoYXJhY3RlcnMgd2l0aCBkaWZmZXJlbnQg
Y2FzZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jYXNpbmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWNiZDEyOWY3NmZmMmY2YWY5OWEwNWRhOTExMDM2MDBlMDY5ZTkyZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jYXNpbmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw2IEBACisKK1BBU1MgQ3JlYXRlIGhlYWRlcnMsIG5hbWVzIHVzZSBjaGFyYWN0
ZXJzIHdpdGggZGlmZmVyZW50IGNhc2UKK1BBU1MgQ2hlY2sgYXBwZW5kIG1ldGhvZCwgbmFtZXMg
dXNlIGNoYXJhY3RlcnMgd2l0aCBkaWZmZXJlbnQgY2FzZQorUEFTUyBDaGVjayBzZXQgbWV0aG9k
LCBuYW1lcyB1c2UgY2hhcmFjdGVycyB3aXRoIGRpZmZlcmVudCBjYXNlCitQQVNTIENoZWNrIGRl
bGV0ZSBtZXRob2QsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGggZGlmZmVyZW50IGNhc2UKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hl
YWRlcnMtY2FzaW5nLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2Iz
YTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJz
LWNhc2luZy5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMg
cmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxh
dGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVy
cy9oZWFkZXJzLWNhc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTUwNWQ4MWNkYThjMTlmN2NiYjE2NDM2ZWEwOGZiM2Y5
MmM2ZjQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRl
cnMvaGVhZGVycy1jYXNpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTwh
ZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLSAgICA8dGl0bGU+SGVhZGVycyBjYXNlIG1hbmFnZW1lbnQ8L3RpdGxlPgotICAgIDxtZXRh
IG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0
LWhlYWRlci1saXN0LWFwcGVuZCI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fu
b24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgotICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0g
IDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICAgIHZhciBoZWFkZXJEaWN0Q2Fz
ZSA9IHsiVVBQRVJDQVNFIjogInZhbHVlMSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Imxvd2VyY2FzZSI6ICJ2YWx1ZTIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXhl
ZENhc2UiOiAidmFsdWUzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29udGVudC1U
WVBFIjogInZhbHVlNCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0KLSAgICAgIGZ1
bmN0aW9uIGNoZWNrSGVhZGVyc0Nhc2Uob3JpZ2luYWxOYW1lLCBoZWFkZXJzVG9DaGVjaywgZXhw
ZWN0ZWREaWN0KSB7Ci0gICAgICAgIHZhciBsb3dDYXNlTmFtZSA9IG9yaWdpbmFsTmFtZS50b0xv
d2VyQ2FzZSgpOwotICAgICAgICB2YXIgdXBDYXNlTmFtZSA9IG9yaWdpbmFsTmFtZS50b1VwcGVy
Q2FzZSgpOwotICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkRGljdFtvcmlnaW5h
bE5hbWVdOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnNUb0NoZWNrLmdldChvcmlnaW5h
bE5hbWUpLCBleHBlY3RlZFZhbHVlLAotICAgICAgICAgICAgIm5hbWU6ICIgKyBvcmlnaW5hbE5h
bWUgKyAiIGhhcyB2YWx1ZTogIiArIGV4cGVjdGVkVmFsdWUpOwotICAgICAgICBhc3NlcnRfZXF1
YWxzKGhlYWRlcnNUb0NoZWNrLmdldChsb3dDYXNlTmFtZSksIGV4cGVjdGVkVmFsdWUsCi0gICAg
ICAgICAgICAibmFtZTogIiArIGxvd0Nhc2VOYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBleHBlY3Rl
ZFZhbHVlKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzVG9DaGVjay5nZXQodXBDYXNl
TmFtZSksIGV4cGVjdGVkVmFsdWUsCi0gICAgICAgICAgICAibmFtZTogIiArIHVwQ2FzZU5hbWUg
KyAiIGhhcyB2YWx1ZTogIiArIGV4cGVjdGVkVmFsdWUpOwotICAgICAgfQotCi0gICAgICB0ZXN0
KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckRp
Y3RDYXNlKTsKLSAgICAgICAgZm9yIChuYW1lIGluIGhlYWRlckRpY3RDYXNlKQotICAgICAgICAg
IGNoZWNrSGVhZGVyc0Nhc2UobmFtZSwgaGVhZGVycywgaGVhZGVyRGljdENhc2UpCi0gICAgICB9
LCAiQ3JlYXRlIGhlYWRlcnMsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGggZGlmZmVyZW50IGNh
c2UiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBu
ZXcgSGVhZGVycygpOwotICAgICAgICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdENhc2UpIHsKLSAg
ICAgICAgICBoZWFkZXJzLmFwcGVuZChuYW1lLCBoZWFkZXJEaWN0Q2FzZVtuYW1lXSk7Ci0gICAg
ICAgICAgY2hlY2tIZWFkZXJzQ2FzZShuYW1lLCBoZWFkZXJzLCBoZWFkZXJEaWN0Q2FzZSk7Ci0g
ICAgICAgIH0KLSAgICAgIH0sICJDaGVjayBhcHBlbmQgbWV0aG9kLCBuYW1lcyB1c2UgY2hhcmFj
dGVycyB3aXRoIGRpZmZlcmVudCBjYXNlIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKLSAgICAgICAgZm9yIChuYW1lIGlu
IGhlYWRlckRpY3RDYXNlKSB7Ci0gICAgICAgICAgaGVhZGVycy5zZXQobmFtZSwgaGVhZGVyRGlj
dENhc2VbbmFtZV0pOwotICAgICAgICAgIGNoZWNrSGVhZGVyc0Nhc2UobmFtZSwgaGVhZGVycywg
aGVhZGVyRGljdENhc2UpOwotICAgICAgICB9Ci0gICAgICB9LCAiQ2hlY2sgc2V0IG1ldGhvZCwg
bmFtZXMgdXNlIGNoYXJhY3RlcnMgd2l0aCBkaWZmZXJlbnQgY2FzZSIpOwotCi0gICAgICB0ZXN0
KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7Ci0gICAg
ICAgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0Q2FzZSkKLSAgICAgICAgICBoZWFkZXJzLnNldChu
YW1lLCBoZWFkZXJEaWN0Q2FzZVtuYW1lXSk7Ci0gICAgICAgIGZvciAobmFtZSBpbiBoZWFkZXJE
aWN0Q2FzZSkKLSAgICAgICAgICBoZWFkZXJzLmRlbGV0ZShuYW1lLnRvTG93ZXJDYXNlKCkpOwot
ICAgICAgICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdENhc2UpCi0gICAgICAgICAgYXNzZXJ0X2Zh
bHNlKGhlYWRlcnMuaGFzKG5hbWUpLCAiaGVhZGVyICIgKyBuYW1lICsgIiBzaG91bGQgaGF2ZSBi
ZWVuIGRlbGV0ZWQiKTsKLSAgICAgIH0sICJDaGVjayBkZWxldGUgbWV0aG9kLCBuYW1lcyB1c2Ug
Y2hhcmFjdGVycyB3aXRoIGRpZmZlcmVudCBjYXNlIik7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2Y0NjFlNWRmZWY0NTM2YmJkNzMxMjM1Y2Q2ZGZiNzk4NDBjNGE1Zi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMt
Y29tYmluZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotUEFT
UyBDcmVhdGUgaGVhZGVycyB1c2luZyBzYW1lIG5hbWUgZm9yIGRpZmZlcmVudCB2YWx1ZXMKLVBB
U1MgQ2hlY2sgZGVsZXRlIGFuZCBoYXMgbWV0aG9kcyB3aGVuIHVzaW5nIHNhbWUgbmFtZSBmb3Ig
ZGlmZmVyZW50IHZhbHVlcwotUEFTUyBDaGVjayBzZXQgbWV0aG9kcyB3aGVuIGNhbGxlZCB3aXRo
IGFscmVhZHkgdXNlZCBuYW1lCi1QQVNTIENoZWNrIGFwcGVuZCBtZXRob2RzIHdoZW4gY2FsbGVk
IHdpdGggYWxyZWFkeSB1c2VkIG5hbWUKLVBBU1MgSXRlcmF0ZSBjb21iaW5lZCB2YWx1ZXMKLVBB
U1MgSXRlcmF0ZSBjb21iaW5lZCB2YWx1ZXMgaW4gc29ydGVkIG9yZGVyCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1jb21iaW5lLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY29t
YmluZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNDYxZTVkZmVmNDUzNmJiZDczMTIz
NWNkNmRmYjc5ODQwYzRhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY29tYmlu
ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorCitQQVNTIENyZWF0ZSBoZWFkZXJz
IHVzaW5nIHNhbWUgbmFtZSBmb3IgZGlmZmVyZW50IHZhbHVlcworUEFTUyBDaGVjayBkZWxldGUg
YW5kIGhhcyBtZXRob2RzIHdoZW4gdXNpbmcgc2FtZSBuYW1lIGZvciBkaWZmZXJlbnQgdmFsdWVz
CitQQVNTIENoZWNrIHNldCBtZXRob2RzIHdoZW4gY2FsbGVkIHdpdGggYWxyZWFkeSB1c2VkIG5h
bWUKK1BBU1MgQ2hlY2sgYXBwZW5kIG1ldGhvZHMgd2hlbiBjYWxsZWQgd2l0aCBhbHJlYWR5IHVz
ZWQgbmFtZQorUEFTUyBJdGVyYXRlIGNvbWJpbmVkIHZhbHVlcworUEFTUyBJdGVyYXRlIGNvbWJp
bmVkIHZhbHVlcyBpbiBzb3J0ZWQgb3JkZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNv
bWJpbmUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY29tYmluZS5hbnkuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvaGVhZGVycy9oZWFkZXJzLWNvbWJpbmUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1
biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXJzLWNvbWJpbmUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNvbWJp
bmUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhYjQ3ODg5YzQ1ZWYzY2RiODJmMTMxYTljN2Q3Y2M0ZDJl
ZDM4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY29tYmluZS5hbnkuanMKQEAg
LTAsMCArMSw2NCBAQAorLy8gTUVUQTogdGl0bGU9SGVhZGVycyBoYXZlIGNvbWJpbmVkIChhbmQg
c29ydGVkKSB2YWx1ZXMKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisKK3ZhciBoZWFk
ZXJTZXFDb21iaW5lID0gW1sic2luZ2xlIiwgInNpbmdsZVZhbHVlIl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICBbImRvdWJsZSIsICJkb3VibGVWYWx1ZTEiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIFsiZG91YmxlIiwgImRvdWJsZVZhbHVlMiJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgWyJ0cmlwbGUiLCAidHJpcGxlVmFsdWUxIl0sCisgICAgICAgICAgICAgICAgICAgICAgICBb
InRyaXBsZSIsICJ0cmlwbGVWYWx1ZTIiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFsidHJp
cGxlIiwgInRyaXBsZVZhbHVlMyJdCitdOwordmFyIGV4cGVjdGVkRGljdCA9IHsic2luZ2xlIjog
InNpbmdsZVZhbHVlIiwKKyAgICAgICAgICAgICAgICAgICAgImRvdWJsZSI6ICJkb3VibGVWYWx1
ZTEsIGRvdWJsZVZhbHVlMiIsCisgICAgICAgICAgICAgICAgICAgICJ0cmlwbGUiOiAidHJpcGxl
VmFsdWUxLCB0cmlwbGVWYWx1ZTIsIHRyaXBsZVZhbHVlMyIKK307CisKK3Rlc3QoZnVuY3Rpb24o
KSB7CisgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyU2VxQ29tYmluZSk7CisgIGZv
ciAobmFtZSBpbiBleHBlY3RlZERpY3QpCisgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChu
YW1lKSwgZXhwZWN0ZWREaWN0W25hbWVdKTsKK30sICJDcmVhdGUgaGVhZGVycyB1c2luZyBzYW1l
IG5hbWUgZm9yIGRpZmZlcmVudCB2YWx1ZXMiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFy
IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJTZXFDb21iaW5lKTsKKyAgZm9yIChuYW1lIGlu
IGV4cGVjdGVkRGljdCkgeworICAgIGFzc2VydF90cnVlKGhlYWRlcnMuaGFzKG5hbWUpLCAibmFt
ZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZShzKSIpOworICAgIGhlYWRlcnMuZGVsZXRlKG5hbWUp
OworICAgIGFzc2VydF9mYWxzZShoZWFkZXJzLmhhcyhuYW1lKSwgIm5hbWU6ICIgKyBuYW1lICsg
IiBoYXMgbm8gdmFsdWUocykgYW55bW9yZSIpOworICB9Cit9LCAiQ2hlY2sgZGVsZXRlIGFuZCBo
YXMgbWV0aG9kcyB3aGVuIHVzaW5nIHNhbWUgbmFtZSBmb3IgZGlmZmVyZW50IHZhbHVlcyIpOwor
Cit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlclNl
cUNvbWJpbmUpOworICBmb3IgKG5hbWUgaW4gZXhwZWN0ZWREaWN0KSB7CisgICAgaGVhZGVycy5z
ZXQobmFtZSwibmV3U2luZ2xlVmFsdWUiKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0
KG5hbWUpLCAibmV3U2luZ2xlVmFsdWUiLCAibmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZTog
bmV3U2luZ2xlVmFsdWUiKTsKKyAgfQorfSwgIkNoZWNrIHNldCBtZXRob2RzIHdoZW4gY2FsbGVk
IHdpdGggYWxyZWFkeSB1c2VkIG5hbWUiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhl
YWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJTZXFDb21iaW5lKTsKKyAgZm9yIChuYW1lIGluIGV4
cGVjdGVkRGljdCkgeworICAgIHZhciB2YWx1ZSA9IGhlYWRlcnMuZ2V0KG5hbWUpOworICAgIGhl
YWRlcnMuYXBwZW5kKG5hbWUsIm5ld1NpbmdsZVZhbHVlIik7CisgICAgYXNzZXJ0X2VxdWFscyho
ZWFkZXJzLmdldChuYW1lKSwgKHZhbHVlICsgIiwgIiArICJuZXdTaW5nbGVWYWx1ZSIpKTsKKyAg
fQorfSwgIkNoZWNrIGFwcGVuZCBtZXRob2RzIHdoZW4gY2FsbGVkIHdpdGggYWxyZWFkeSB1c2Vk
IG5hbWUiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhb
WyIxIiwgImEiXSxbIjEiLCAiYiJdXSk7CisgIGZvcihsZXQgaGVhZGVyIG9mIGhlYWRlcnMpIHsK
KyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGhlYWRlciwgWyIxIiwgImEsIGIiXSk7CisgIH0KK30s
ICJJdGVyYXRlIGNvbWJpbmVkIHZhbHVlcyIpOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgaGVh
ZGVycyA9IG5ldyBIZWFkZXJzKFtbIjIiLCAiYSJdLCBbIjEiLCAiYiJdLCBbIjIiLCAiYiJdXSks
CisgICAgICAgIGV4cGVjdGVkID0gW1siMSIsICJiIl0sIFsiMiIsICJhLCBiIl1dOworICBsZXQg
aSA9IDA7CisgIGZvcihsZXQgaGVhZGVyIG9mIGhlYWRlcnMpIHsKKyAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGhlYWRlciwgZXhwZWN0ZWRbaV0pOworICAgIGkrKzsKKyAgfQorICBhc3NlcnRfZXF1
YWxzKGksIDIpOworfSwgIkl0ZXJhdGUgY29tYmluZWQgdmFsdWVzIGluIHNvcnRlZCBvcmRlciIp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY29tYmluZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNmNDYxZTVkZmVmNDUzNmJiZDczMTIzNWNkNmRmYjc5ODQwYzRhNWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9oZWFkZXJzL2hlYWRlcnMtY29tYmluZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDggQEAKKworUEFTUyBDcmVhdGUgaGVhZGVycyB1c2luZyBzYW1lIG5hbWUgZm9yIGRp
ZmZlcmVudCB2YWx1ZXMKK1BBU1MgQ2hlY2sgZGVsZXRlIGFuZCBoYXMgbWV0aG9kcyB3aGVuIHVz
aW5nIHNhbWUgbmFtZSBmb3IgZGlmZmVyZW50IHZhbHVlcworUEFTUyBDaGVjayBzZXQgbWV0aG9k
cyB3aGVuIGNhbGxlZCB3aXRoIGFscmVhZHkgdXNlZCBuYW1lCitQQVNTIENoZWNrIGFwcGVuZCBt
ZXRob2RzIHdoZW4gY2FsbGVkIHdpdGggYWxyZWFkeSB1c2VkIG5hbWUKK1BBU1MgSXRlcmF0ZSBj
b21iaW5lZCB2YWx1ZXMKK1BBU1MgSXRlcmF0ZSBjb21iaW5lZCB2YWx1ZXMgaW4gc29ydGVkIG9y
ZGVyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLmFueS53b3JrZXIuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1jb21iaW5lLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEz
NTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVy
cy9oZWFkZXJzLWNvbWJpbmUuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4g
dGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY29tYmluZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzQxYjc3ZTg2YjdlZDdiZWZhMDM5
OGQzZjY4ZjUxNjI0ZGMxYmNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
NiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPkhlYWRlcnMgaGF2ZSBjb21iaW5lZCAoYW5kIHNv
cnRlZCkgdmFsdWVzPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jaGVhZGVycyI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0aG9y
IiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fu
b24uZnIiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICAgIHZhciBo
ZWFkZXJTZXFDb21iaW5lID0gW1sic2luZ2xlIiwgInNpbmdsZVZhbHVlIl0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbImRvdWJsZSIsICJkb3VibGVWYWx1ZTEiXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsiZG91YmxlIiwgImRvdWJsZVZhbHVlMiJdLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWyJ0cmlwbGUiLCAidHJpcGxlVmFsdWUxIl0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbInRyaXBsZSIsICJ0cmlwbGVWYWx1ZTIiXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsidHJpcGxlIiwgInRyaXBsZVZhbHVlMyJdCi0g
ICAgICBdOwotICAgICAgdmFyIGV4cGVjdGVkRGljdCA9IHsic2luZ2xlIjogInNpbmdsZVZhbHVl
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImRvdWJsZSI6ICJkb3VibGVWYWx1ZTEsIGRv
dWJsZVZhbHVlMiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmlwbGUiOiAidHJpcGxl
VmFsdWUxLCB0cmlwbGVWYWx1ZTIsIHRyaXBsZVZhbHVlMyIKLSAgICAgIH07Ci0KLSAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVy
U2VxQ29tYmluZSk7Ci0gICAgICAgIGZvciAobmFtZSBpbiBleHBlY3RlZERpY3QpCi0gICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChuYW1lKSwgZXhwZWN0ZWREaWN0W25hbWVdKTsK
LSAgICAgIH0sICJDcmVhdGUgaGVhZGVycyB1c2luZyBzYW1lIG5hbWUgZm9yIGRpZmZlcmVudCB2
YWx1ZXMiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMg
PSBuZXcgSGVhZGVycyhoZWFkZXJTZXFDb21iaW5lKTsKLSAgICAgICAgZm9yIChuYW1lIGluIGV4
cGVjdGVkRGljdCkgewotICAgICAgICAgIGFzc2VydF90cnVlKGhlYWRlcnMuaGFzKG5hbWUpLCAi
bmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZShzKSIpOwotICAgICAgICAgIGhlYWRlcnMuZGVs
ZXRlKG5hbWUpOwotICAgICAgICAgIGFzc2VydF9mYWxzZShoZWFkZXJzLmhhcyhuYW1lKSwgIm5h
bWU6ICIgKyBuYW1lICsgIiBoYXMgbm8gdmFsdWUocykgYW55bW9yZSIpOwotICAgICAgICB9Ci0g
ICAgICB9LCAiQ2hlY2sgZGVsZXRlIGFuZCBoYXMgbWV0aG9kcyB3aGVuIHVzaW5nIHNhbWUgbmFt
ZSBmb3IgZGlmZmVyZW50IHZhbHVlcyIpOwotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAg
ICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlclNlcUNvbWJpbmUpOwotICAgICAg
ICBmb3IgKG5hbWUgaW4gZXhwZWN0ZWREaWN0KSB7Ci0gICAgICAgICAgaGVhZGVycy5zZXQobmFt
ZSwibmV3U2luZ2xlVmFsdWUiKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0
KG5hbWUpLCAibmV3U2luZ2xlVmFsdWUiLCAibmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZTog
bmV3U2luZ2xlVmFsdWUiKTsKLSAgICAgICAgfQotICAgICAgfSwgIkNoZWNrIHNldCBtZXRob2Rz
IHdoZW4gY2FsbGVkIHdpdGggYWxyZWFkeSB1c2VkIG5hbWUiKTsKLQotICAgICAgdGVzdChmdW5j
dGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJTZXFDb21i
aW5lKTsKLSAgICAgICAgZm9yIChuYW1lIGluIGV4cGVjdGVkRGljdCkgewotICAgICAgICAgIHZh
ciB2YWx1ZSA9IGhlYWRlcnMuZ2V0KG5hbWUpOwotICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKG5h
bWUsIm5ld1NpbmdsZVZhbHVlIik7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdl
dChuYW1lKSwgKHZhbHVlICsgIiwgIiArICJuZXdTaW5nbGVWYWx1ZSIpKTsKLSAgICAgICAgfQot
ICAgICAgfSwgIkNoZWNrIGFwcGVuZCBtZXRob2RzIHdoZW4gY2FsbGVkIHdpdGggYWxyZWFkeSB1
c2VkIG5hbWUiKTsKLQotICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgIGNvbnN0IGhlYWRlcnMg
PSBuZXcgSGVhZGVycyhbWyIxIiwgImEiXSxbIjEiLCAiYiJdXSk7Ci0gICAgICAgIGZvcihsZXQg
aGVhZGVyIG9mIGhlYWRlcnMpIHsKLSAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGhlYWRl
ciwgWyIxIiwgImEsIGIiXSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJJdGVyYXRlIGNvbWJpbmVk
IHZhbHVlcyIpOwotCi0gICAgICB0ZXN0KCgpID0+IHsKLSAgICAgICAgY29uc3QgaGVhZGVycyA9
IG5ldyBIZWFkZXJzKFtbIjIiLCAiYSJdLCBbIjEiLCAiYiJdLCBbIjIiLCAiYiJdXSksCi0gICAg
ICAgICAgICAgIGV4cGVjdGVkID0gW1siMSIsICJiIl0sIFsiMiIsICJhLCBiIl1dOwotICAgICAg
ICBsZXQgaSA9IDA7Ci0gICAgICAgIGZvcihsZXQgaGVhZGVyIG9mIGhlYWRlcnMpIHsKLSAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGhlYWRlciwgZXhwZWN0ZWRbaV0pOwotICAgICAgICAg
IGkrKzsKLSAgICAgICAgfQotICAgICAgICBhc3NlcnRfZXF1YWxzKGksIDIpOwotICAgICAgfSwg
Ikl0ZXJhdGUgY29tYmluZWQgdmFsdWVzIGluIHNvcnRlZCBvcmRlciIpCi0gICAgPC9zY3JpcHQ+
Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWVycm9ycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDA2YjhlYjA2N2NkODZiNDdhMzhhYWE0YjU3NjE4ZTM3OTdiOWFm
ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLWVycm9ycy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBA
Ci0KLVBBU1MgQ3JlYXRlIGhlYWRlcnMgZ2l2aW5nIGFuIGFycmF5IGhhdmluZyBvbmUgc3RyaW5n
IGFzIGluaXQgYXJndW1lbnQKLVBBU1MgQ3JlYXRlIGhlYWRlcnMgZ2l2aW5nIGFuIGFycmF5IGhh
dmluZyB0aHJlZSBzdHJpbmdzIGFzIGluaXQgYXJndW1lbnQKLVBBU1MgQ3JlYXRlIGhlYWRlcnMg
Z2l2aW5nIGJhZCBoZWFkZXIgbmFtZSBhcyBpbml0IGFyZ3VtZW50Ci1QQVNTIENyZWF0ZSBoZWFk
ZXJzIGdpdmluZyBiYWQgaGVhZGVyIHZhbHVlIGFzIGluaXQgYXJndW1lbnQKLVBBU1MgQ2hlY2sg
aGVhZGVycyBnZXQgd2l0aCBhbiBpbnZhbGlkIG5hbWUgaW52YWxpZMSACi1QQVNTIENoZWNrIGhl
YWRlcnMgZ2V0IHdpdGggYW4gaW52YWxpZCBuYW1lIFtvYmplY3QgT2JqZWN0XQotUEFTUyBDaGVj
ayBoZWFkZXJzIGRlbGV0ZSB3aXRoIGFuIGludmFsaWQgbmFtZSBpbnZhbGlkxIAKLVBBU1MgQ2hl
Y2sgaGVhZGVycyBkZWxldGUgd2l0aCBhbiBpbnZhbGlkIG5hbWUgW29iamVjdCBPYmplY3RdCi1Q
QVNTIENoZWNrIGhlYWRlcnMgaGFzIHdpdGggYW4gaW52YWxpZCBuYW1lIGludmFsaWTEgAotUEFT
UyBDaGVjayBoZWFkZXJzIGhhcyB3aXRoIGFuIGludmFsaWQgbmFtZSBbb2JqZWN0IE9iamVjdF0K
LVBBU1MgQ2hlY2sgaGVhZGVycyBzZXQgd2l0aCBhbiBpbnZhbGlkIG5hbWUgaW52YWxpZMSACi1Q
QVNTIENoZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4gaW52YWxpZCBuYW1lIFtvYmplY3QgT2JqZWN0
XQotUEFTUyBDaGVjayBoZWFkZXJzIHNldCB3aXRoIGFuIGludmFsaWQgdmFsdWUgaW52YWxpZMSA
Ci1QQVNTIENoZWNrIGhlYWRlcnMgYXBwZW5kIHdpdGggYW4gaW52YWxpZCBuYW1lIGludmFsaWTE
gAotUEFTUyBDaGVjayBoZWFkZXJzIGFwcGVuZCB3aXRoIGFuIGludmFsaWQgbmFtZSBbb2JqZWN0
IE9iamVjdF0KLVBBU1MgQ2hlY2sgaGVhZGVycyBhcHBlbmQgd2l0aCBhbiBpbnZhbGlkIHZhbHVl
IGludmFsaWTEgAotUEFTUyBIZWFkZXJzIGZvckVhY2ggdGhyb3dzIGlmIGFyZ3VtZW50IGlzIG5v
dCBjYWxsYWJsZQotUEFTUyBIZWFkZXJzIGZvckVhY2ggbG9vcCBzaG91bGQgc3RvcCBpZiBjYWxs
YmFjayBpcyB0aHJvd2luZyBleGNlcHRpb24KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWVy
cm9ycy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWVycm9ycy5hbnktZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA2YjhlYjA2N2NkODZiNDdhMzhhYWE0YjU3NjE4ZTM3OTdiOWFmZjMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmFueS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorCitQQVNTIENyZWF0ZSBoZWFkZXJzIGdpdmluZyBhbiBhcnJheSBo
YXZpbmcgb25lIHN0cmluZyBhcyBpbml0IGFyZ3VtZW50CitQQVNTIENyZWF0ZSBoZWFkZXJzIGdp
dmluZyBhbiBhcnJheSBoYXZpbmcgdGhyZWUgc3RyaW5ncyBhcyBpbml0IGFyZ3VtZW50CitQQVNT
IENyZWF0ZSBoZWFkZXJzIGdpdmluZyBiYWQgaGVhZGVyIG5hbWUgYXMgaW5pdCBhcmd1bWVudAor
UEFTUyBDcmVhdGUgaGVhZGVycyBnaXZpbmcgYmFkIGhlYWRlciB2YWx1ZSBhcyBpbml0IGFyZ3Vt
ZW50CitQQVNTIENoZWNrIGhlYWRlcnMgZ2V0IHdpdGggYW4gaW52YWxpZCBuYW1lIGludmFsaWTE
gAorUEFTUyBDaGVjayBoZWFkZXJzIGdldCB3aXRoIGFuIGludmFsaWQgbmFtZSBbb2JqZWN0IE9i
amVjdF0KK1BBU1MgQ2hlY2sgaGVhZGVycyBkZWxldGUgd2l0aCBhbiBpbnZhbGlkIG5hbWUgaW52
YWxpZMSACitQQVNTIENoZWNrIGhlYWRlcnMgZGVsZXRlIHdpdGggYW4gaW52YWxpZCBuYW1lIFtv
YmplY3QgT2JqZWN0XQorUEFTUyBDaGVjayBoZWFkZXJzIGhhcyB3aXRoIGFuIGludmFsaWQgbmFt
ZSBpbnZhbGlkxIAKK1BBU1MgQ2hlY2sgaGVhZGVycyBoYXMgd2l0aCBhbiBpbnZhbGlkIG5hbWUg
W29iamVjdCBPYmplY3RdCitQQVNTIENoZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4gaW52YWxpZCBu
YW1lIGludmFsaWTEgAorUEFTUyBDaGVjayBoZWFkZXJzIHNldCB3aXRoIGFuIGludmFsaWQgbmFt
ZSBbb2JqZWN0IE9iamVjdF0KK1BBU1MgQ2hlY2sgaGVhZGVycyBzZXQgd2l0aCBhbiBpbnZhbGlk
IHZhbHVlIGludmFsaWTEgAorUEFTUyBDaGVjayBoZWFkZXJzIGFwcGVuZCB3aXRoIGFuIGludmFs
aWQgbmFtZSBpbnZhbGlkxIAKK1BBU1MgQ2hlY2sgaGVhZGVycyBhcHBlbmQgd2l0aCBhbiBpbnZh
bGlkIG5hbWUgW29iamVjdCBPYmplY3RdCitQQVNTIENoZWNrIGhlYWRlcnMgYXBwZW5kIHdpdGgg
YW4gaW52YWxpZCB2YWx1ZSBpbnZhbGlkxIAKK1BBU1MgSGVhZGVycyBmb3JFYWNoIHRocm93cyBp
ZiBhcmd1bWVudCBpcyBub3QgY2FsbGFibGUKK1BBU1MgSGVhZGVycyBmb3JFYWNoIGxvb3Agc2hv
dWxkIHN0b3AgaWYgY2FsbGJhY2sgaXMgdGhyb3dpbmcgZXhjZXB0aW9uCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1lcnJvcnMuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmFueS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmFueS5odG1sCkBAIC0wLDAg
KzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0
cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMuYW55LmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLWVycm9ycy5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI4YTExOGUyNTVmM2FkMmQ1N2I2ZDU3
YWU0YTVmMjYzNDYxYjcxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMu
YW55LmpzCkBAIC0wLDAgKzEsOTQgQEAKKy8vIE1FVEE6IHRpdGxlPUhlYWRlcnMgZXJyb3JzCisv
LyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorCit0ZXN0KGZ1bmN0aW9uKCkgeworICBhc3Nl
cnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBIZWFkZXJzKFtbIm5hbWUi
XV0pOyB9KTsKK30sICJDcmVhdGUgaGVhZGVycyBnaXZpbmcgYW4gYXJyYXkgaGF2aW5nIG9uZSBz
dHJpbmcgYXMgaW5pdCBhcmd1bWVudCIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBhc3NlcnRf
dGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBIZWFkZXJzKFtbImludmFsaWQi
LCAiaW52YWxpZFZhbHVlMSIsICJpbnZhbGlkVmFsdWUyIl1dKTsgfSk7Cit9LCAiQ3JlYXRlIGhl
YWRlcnMgZ2l2aW5nIGFuIGFycmF5IGhhdmluZyB0aHJlZSBzdHJpbmdzIGFzIGluaXQgYXJndW1l
bnQiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3Is
IGZ1bmN0aW9uKCkgeyBuZXcgSGVhZGVycyhbWyJpbnZhbGlkxIAiLCAiVmFsdWUxIl1dKTsgfSk7
Cit9LCAiQ3JlYXRlIGhlYWRlcnMgZ2l2aW5nIGJhZCBoZWFkZXIgbmFtZSBhcyBpbml0IGFyZ3Vt
ZW50Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9y
LCBmdW5jdGlvbigpIHsgbmV3IEhlYWRlcnMoW1sibmFtZSIsICJpbnZhbGlkVmFsdWXEgCJdXSk7
IH0pOworfSwgIkNyZWF0ZSBoZWFkZXJzIGdpdmluZyBiYWQgaGVhZGVyIHZhbHVlIGFzIGluaXQg
YXJndW1lbnQiKTsKKwordmFyIGJhZE5hbWVzID0gWyJpbnZhbGlkxIAiLCB7fV07Cit2YXIgYmFk
VmFsdWVzID0gWyJpbnZhbGlkxIAiXTsKKworYmFkTmFtZXMuZm9yRWFjaChmdW5jdGlvbihuYW1l
KSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygp
OworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgaGVhZGVycy5n
ZXQobmFtZSk7IH0pOworICB9LCAiQ2hlY2sgaGVhZGVycyBnZXQgd2l0aCBhbiBpbnZhbGlkIG5h
bWUgIiArIG5hbWUpOworfSk7CisKK2JhZE5hbWVzLmZvckVhY2goZnVuY3Rpb24obmFtZSkgewor
ICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKKyAg
ICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhlYWRlcnMuZGVsZXRl
KG5hbWUpOyB9KTsKKyAgfSwgIkNoZWNrIGhlYWRlcnMgZGVsZXRlIHdpdGggYW4gaW52YWxpZCBu
YW1lICIgKyBuYW1lKTsKK30pOworCitiYWROYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHsK
KyAgdGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7Cisg
ICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBoZWFkZXJzLmhhcyhu
YW1lKTsgfSk7CisgIH0sICJDaGVjayBoZWFkZXJzIGhhcyB3aXRoIGFuIGludmFsaWQgbmFtZSAi
ICsgbmFtZSk7Cit9KTsKKworYmFkTmFtZXMuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7CisgIHRl
c3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworICAgIGFz
c2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgaGVhZGVycy5zZXQobmFtZSwg
IlZhbHVlMSIpOyB9KTsKKyAgfSwgIkNoZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4gaW52YWxpZCBu
YW1lICIgKyBuYW1lKTsKK30pOworCitiYWRWYWx1ZXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkg
eworICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsK
KyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhlYWRlcnMuc2V0
KCJuYW1lIiwgdmFsdWUpOyB9KTsKKyAgfSwgIkNoZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4gaW52
YWxpZCB2YWx1ZSAiICsgdmFsdWUpOworfSk7CisKK2JhZE5hbWVzLmZvckVhY2goZnVuY3Rpb24o
bmFtZSkgeworICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRl
cnMoKTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhlYWRl
cnMuYXBwZW5kKCJpbnZhbGlkxIAiLCAiVmFsdWUxIik7IH0pOworICB9LCAiQ2hlY2sgaGVhZGVy
cyBhcHBlbmQgd2l0aCBhbiBpbnZhbGlkIG5hbWUgIiArIG5hbWUpOworfSk7CisKK2JhZFZhbHVl
cy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFy
IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9y
LCBmdW5jdGlvbigpIHsgaGVhZGVycy5hcHBlbmQoIm5hbWUiLCB2YWx1ZSk7IH0pOworICB9LCAi
Q2hlY2sgaGVhZGVycyBhcHBlbmQgd2l0aCBhbiBpbnZhbGlkIHZhbHVlICIgKyB2YWx1ZSk7Cit9
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJu
YW1lIiwgInZhbHVlIl1dKTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9u
KCkgeyBoZWFkZXJzLmZvckVhY2goKTsgfSk7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9y
LCBmdW5jdGlvbigpIHsgaGVhZGVycy5mb3JFYWNoKHVuZGVmaW5lZCk7IH0pOworICBhc3NlcnRf
dGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhlYWRlcnMuZm9yRWFjaCgxKTsgfSk7
Cit9LCAiSGVhZGVycyBmb3JFYWNoIHRocm93cyBpZiBhcmd1bWVudCBpcyBub3QgY2FsbGFibGUi
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJu
YW1lMSIsICJ2YWx1ZTEiXSwgWyJuYW1lMiIsICJ2YWx1ZTIiXSwgWyJuYW1lMyIsICJ2YWx1ZTMi
XV0pOworICB2YXIgY291bnRlciA9IDA7CisgIHRyeSB7CisgICAgICBoZWFkZXJzLmZvckVhY2go
ZnVuY3Rpb24odmFsdWUsIG5hbWUpIHsKKyAgICAgICAgICBjb3VudGVyKys7CisgICAgICAgICAg
aWYgKG5hbWUgPT0gIm5hbWUyIikKKyAgICAgICAgICAgICAgICB0aHJvdyAiZXJyb3IiOworICAg
ICAgfSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMoY291bnRlciwgMik7
CisgICAgICBhc3NlcnRfZXF1YWxzKGUsICJlcnJvciIpOworICAgICAgcmV0dXJuOworICB9Cisg
IGFzc2VydF91bnJlYWNoZWQoKTsKK30sICJIZWFkZXJzIGZvckVhY2ggbG9vcCBzaG91bGQgc3Rv
cCBpZiBjYWxsYmFjayBpcyB0aHJvd2luZyBleGNlcHRpb24iKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMv
aGVhZGVycy1lcnJvcnMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJy
b3JzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2YjhlYjA2N2NkODZiNDdh
MzhhYWE0YjU3NjE4ZTM3OTdiOWFmZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMt
ZXJyb3JzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKworUEFTUyBD
cmVhdGUgaGVhZGVycyBnaXZpbmcgYW4gYXJyYXkgaGF2aW5nIG9uZSBzdHJpbmcgYXMgaW5pdCBh
cmd1bWVudAorUEFTUyBDcmVhdGUgaGVhZGVycyBnaXZpbmcgYW4gYXJyYXkgaGF2aW5nIHRocmVl
IHN0cmluZ3MgYXMgaW5pdCBhcmd1bWVudAorUEFTUyBDcmVhdGUgaGVhZGVycyBnaXZpbmcgYmFk
IGhlYWRlciBuYW1lIGFzIGluaXQgYXJndW1lbnQKK1BBU1MgQ3JlYXRlIGhlYWRlcnMgZ2l2aW5n
IGJhZCBoZWFkZXIgdmFsdWUgYXMgaW5pdCBhcmd1bWVudAorUEFTUyBDaGVjayBoZWFkZXJzIGdl
dCB3aXRoIGFuIGludmFsaWQgbmFtZSBpbnZhbGlkxIAKK1BBU1MgQ2hlY2sgaGVhZGVycyBnZXQg
d2l0aCBhbiBpbnZhbGlkIG5hbWUgW29iamVjdCBPYmplY3RdCitQQVNTIENoZWNrIGhlYWRlcnMg
ZGVsZXRlIHdpdGggYW4gaW52YWxpZCBuYW1lIGludmFsaWTEgAorUEFTUyBDaGVjayBoZWFkZXJz
IGRlbGV0ZSB3aXRoIGFuIGludmFsaWQgbmFtZSBbb2JqZWN0IE9iamVjdF0KK1BBU1MgQ2hlY2sg
aGVhZGVycyBoYXMgd2l0aCBhbiBpbnZhbGlkIG5hbWUgaW52YWxpZMSACitQQVNTIENoZWNrIGhl
YWRlcnMgaGFzIHdpdGggYW4gaW52YWxpZCBuYW1lIFtvYmplY3QgT2JqZWN0XQorUEFTUyBDaGVj
ayBoZWFkZXJzIHNldCB3aXRoIGFuIGludmFsaWQgbmFtZSBpbnZhbGlkxIAKK1BBU1MgQ2hlY2sg
aGVhZGVycyBzZXQgd2l0aCBhbiBpbnZhbGlkIG5hbWUgW29iamVjdCBPYmplY3RdCitQQVNTIENo
ZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4gaW52YWxpZCB2YWx1ZSBpbnZhbGlkxIAKK1BBU1MgQ2hl
Y2sgaGVhZGVycyBhcHBlbmQgd2l0aCBhbiBpbnZhbGlkIG5hbWUgaW52YWxpZMSACitQQVNTIENo
ZWNrIGhlYWRlcnMgYXBwZW5kIHdpdGggYW4gaW52YWxpZCBuYW1lIFtvYmplY3QgT2JqZWN0XQor
UEFTUyBDaGVjayBoZWFkZXJzIGFwcGVuZCB3aXRoIGFuIGludmFsaWQgdmFsdWUgaW52YWxpZMSA
CitQQVNTIEhlYWRlcnMgZm9yRWFjaCB0aHJvd3MgaWYgYXJndW1lbnQgaXMgbm90IGNhbGxhYmxl
CitQQVNTIEhlYWRlcnMgZm9yRWFjaCBsb29wIHNob3VsZCBzdG9wIGlmIGNhbGxiYWNrIGlzIHRo
cm93aW5nIGV4Y2VwdGlvbgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmFueS53
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMuYW55Lndvcmtlci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1
cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMt
ZXJyb3JzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmOTkxNmQ4N2ZlMmFj
MTI1OTUzZWIyNWYwZTI3OGFhMzEwNzNiM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWVycm9ycy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTA3ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+SGVhZGVycyBlcnJvcnM8L3RpdGxl
PgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cu
b3JnLyNoZWFkZXJzIj4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNl
YXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFk
PgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAg
ICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBIZWFkZXJz
KFtbIm5hbWUiXV0pOyB9KTsKLSAgICAgIH0sICJDcmVhdGUgaGVhZGVycyBnaXZpbmcgYW4gYXJy
YXkgaGF2aW5nIG9uZSBzdHJpbmcgYXMgaW5pdCBhcmd1bWVudCIpOwotCi0gICAgICB0ZXN0KGZ1
bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7IG5ldyBIZWFkZXJzKFtbImludmFsaWQiLCAiaW52YWxpZFZhbHVlMSIsICJpbnZhbGlkVmFs
dWUyIl1dKTsgfSk7Ci0gICAgICB9LCAiQ3JlYXRlIGhlYWRlcnMgZ2l2aW5nIGFuIGFycmF5IGhh
dmluZyB0aHJlZSBzdHJpbmdzIGFzIGluaXQgYXJndW1lbnQiKTsKLQotICAgICAgdGVzdChmdW5j
dGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkg
eyBuZXcgSGVhZGVycyhbWyJpbnZhbGlkxIAiLCAiVmFsdWUxIl1dKTsgfSk7Ci0gICAgICB9LCAi
Q3JlYXRlIGhlYWRlcnMgZ2l2aW5nIGJhZCBoZWFkZXIgbmFtZSBhcyBpbml0IGFyZ3VtZW50Iik7
Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlw
ZUVycm9yLCBmdW5jdGlvbigpIHsgbmV3IEhlYWRlcnMoW1sibmFtZSIsICJpbnZhbGlkVmFsdWXE
gCJdXSk7IH0pOwotICAgICAgfSwgIkNyZWF0ZSBoZWFkZXJzIGdpdmluZyBiYWQgaGVhZGVyIHZh
bHVlIGFzIGluaXQgYXJndW1lbnQiKTsKLQotICAgICAgdmFyIGJhZE5hbWVzID0gWyJpbnZhbGlk
xIAiLCB7fV07Ci0gICAgICB2YXIgYmFkVmFsdWVzID0gWyJpbnZhbGlkxIAiXTsKLQotICAgICAg
YmFkTmFtZXMuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwotICAgICAgICAgIGFz
c2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgaGVhZGVycy5nZXQobmFtZSk7
IH0pOwotICAgICAgICB9LCAiQ2hlY2sgaGVhZGVycyBnZXQgd2l0aCBhbiBpbnZhbGlkIG5hbWUg
IiArIG5hbWUpOwotICAgICAgfSk7Ci0KLSAgICAgIGJhZE5hbWVzLmZvckVhY2goZnVuY3Rpb24o
bmFtZSkgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciBoZWFkZXJz
ID0gbmV3IEhlYWRlcnMoKTsKLSAgICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwg
ZnVuY3Rpb24oKSB7IGhlYWRlcnMuZGVsZXRlKG5hbWUpOyB9KTsKLSAgICAgICAgfSwgIkNoZWNr
IGhlYWRlcnMgZGVsZXRlIHdpdGggYW4gaW52YWxpZCBuYW1lICIgKyBuYW1lKTsKLSAgICAgIH0p
OwotCi0gICAgICBiYWROYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHsKLSAgICAgICAgdGVz
dChmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7Ci0g
ICAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBoZWFkZXJz
LmhhcyhuYW1lKTsgfSk7Ci0gICAgICAgIH0sICJDaGVjayBoZWFkZXJzIGhhcyB3aXRoIGFuIGlu
dmFsaWQgbmFtZSAiICsgbmFtZSk7Ci0gICAgICB9KTsKLQotICAgICAgYmFkTmFtZXMuZm9yRWFj
aChmdW5jdGlvbihuYW1lKSB7Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
dmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwotICAgICAgICAgIGFzc2VydF90aHJvd3NfanMo
VHlwZUVycm9yLCBmdW5jdGlvbigpIHsgaGVhZGVycy5zZXQobmFtZSwgIlZhbHVlMSIpOyB9KTsK
LSAgICAgICAgfSwgIkNoZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4gaW52YWxpZCBuYW1lICIgKyBu
YW1lKTsKLSAgICAgIH0pOwotCi0gICAgICBiYWRWYWx1ZXMuZm9yRWFjaChmdW5jdGlvbih2YWx1
ZSkgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciBoZWFkZXJzID0g
bmV3IEhlYWRlcnMoKTsKLSAgICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVu
Y3Rpb24oKSB7IGhlYWRlcnMuc2V0KCJuYW1lIiwgdmFsdWUpOyB9KTsKLSAgICAgICAgfSwgIkNo
ZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4gaW52YWxpZCB2YWx1ZSAiICsgdmFsdWUpOwotICAgICAg
fSk7Ci0KLSAgICAgIGJhZE5hbWVzLmZvckVhY2goZnVuY3Rpb24obmFtZSkgewotICAgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsK
LSAgICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhlYWRl
cnMuYXBwZW5kKCJpbnZhbGlkxIAiLCAiVmFsdWUxIik7IH0pOwotICAgICAgICB9LCAiQ2hlY2sg
aGVhZGVycyBhcHBlbmQgd2l0aCBhbiBpbnZhbGlkIG5hbWUgIiArIG5hbWUpOwotICAgICAgfSk7
Ci0KLSAgICAgIGJhZFZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwot
ICAgICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgaGVhZGVy
cy5hcHBlbmQoIm5hbWUiLCB2YWx1ZSk7IH0pOwotICAgICAgICB9LCAiQ2hlY2sgaGVhZGVycyBh
cHBlbmQgd2l0aCBhbiBpbnZhbGlkIHZhbHVlICIgKyB2YWx1ZSk7Ci0gICAgICB9KTsKLQotICAg
ICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhb
WyJuYW1lIiwgInZhbHVlIl1dKTsKLSAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3Is
IGZ1bmN0aW9uKCkgeyBoZWFkZXJzLmZvckVhY2goKTsgfSk7Ci0gICAgICAgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgaGVhZGVycy5mb3JFYWNoKHVuZGVmaW5lZCk7
IH0pOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhl
YWRlcnMuZm9yRWFjaCgxKTsgfSk7Ci0gICAgICB9LCAiSGVhZGVycyBmb3JFYWNoIHRocm93cyBp
ZiBhcmd1bWVudCBpcyBub3QgY2FsbGFibGUiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsK
LSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJuYW1lMSIsICJ2YWx1ZTEiXSwg
WyJuYW1lMiIsICJ2YWx1ZTIiXSwgWyJuYW1lMyIsICJ2YWx1ZTMiXV0pOwotICAgICAgICB2YXIg
Y291bnRlciA9IDA7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBoZWFkZXJzLmZvckVhY2go
ZnVuY3Rpb24odmFsdWUsIG5hbWUpIHsKLSAgICAgICAgICAgICAgICBjb3VudGVyKys7Ci0gICAg
ICAgICAgICAgICAgaWYgKG5hbWUgPT0gIm5hbWUyIikKLSAgICAgICAgICAgICAgICAgICAgIHRo
cm93ICJlcnJvciI7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudGVyLCAyKTsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZSwgImVycm9yIik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAg
ICAgYXNzZXJ0X3VucmVhY2hlZCgpOwotICAgICAgfSwgIkhlYWRlcnMgZm9yRWFjaCBsb29wIHNo
b3VsZCBzdG9wIGlmIGNhbGxiYWNrIGlzIHRocm93aW5nIGV4Y2VwdGlvbiIpOwotICAgPC9zY3Jp
cHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3Jz
LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm8tY29ycy5hbnktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk4OThiMjdlMGY0ZjY1ZDdhZDUwMDAyMTczOGVlNmRiNjdmYTc5OGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm8tY29ycy5hbnktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjUgQEAKKworUEFTUyBMb2FkaW5nIGRhdGHigKYKK1BBU1MgIm5vLWNvcnMiIEhl
YWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGFjY2VwdCBzZXQgdG8gc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcywgLCBz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3NzCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBh
Y2NlcHQtbGFuZ3VhZ2Ugc2V0IHRvIHNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MsICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcworUEFT
UyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVudC1sYW5ndWFnZSBz
ZXQgdG8gc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3NzcywgLCBzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzCitQQVNTICJuby1jb3JzIiBIZWFk
ZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQgc2V0IHRvICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcworUEFT
UyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgYWNjZXB0LWxhbmd1YWdlIHNl
dCB0byAsIHNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5v
dCBoYXZlIGNvbnRlbnQtbGFuZ3VhZ2Ugc2V0IHRvICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcworUEFTUyAibm8t
Y29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVudC10eXBlIHNldCB0byB0ZXh0
L3BsYWluO3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3NzLCB0ZXh0L3BsYWluCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5u
b3QgaGF2ZSBhY2NlcHQvIiBhcyBoZWFkZXIKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0
IGNhbm5vdCBoYXZlIGFjY2VwdC8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2
Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIz
NDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2NzggYXMgaGVhZGVyCitQQVNTICJuby1j
b3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQtbGFuZ3VhZ2UvASBhcyBoZWFk
ZXIKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGFjY2VwdC1sYW5n
dWFnZS9AIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhh
dmUgY29udGVudC1sYW5ndWFnZS8BIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBv
YmplY3QgY2Fubm90IGhhdmUgY29udGVudC1sYW5ndWFnZS9AIGFzIGhlYWRlcgorUEFTUyAibm8t
Y29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVudC10eXBlL3RleHQvaHRtbCBh
cyBoZWFkZXIKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRl
bnQtdHlwZS90ZXh0L3BsYWluOyBsb25nPTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx
MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4
OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEgYXMgaGVhZGVyCitQQVNTICJuby1jb3JzIiBIZWFkZXJz
IG9iamVjdCBjYW5ub3QgaGF2ZSB0ZXN0L2hpIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVh
ZGVycyBvYmplY3QgY2Fubm90IGhhdmUgZHByLzIgYXMgaGVhZGVyCitQQVNTICJuby1jb3JzIiBI
ZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBkb3dubGluay8xIGFzIGhlYWRlcgorUEFTUyAibm8t
Y29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgc2F2ZS1kYXRhL29uIGFzIGhlYWRlcgor
UEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgdmlld3BvcnQtd2lkdGgv
MTAwIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUg
d2lkdGgvMTAwIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90
IGhhdmUgdW5rbm93bi9kb2VzaXRtYXR0ZXIgYXMgaGVhZGVyCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMv
aGVhZGVycy1uby1jb3JzLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vLWNvcnMuYW55Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLmFueS5odG1sCkBAIC0wLDAgKzEg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVj
dHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLmFueS5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVh
ZGVycy1uby1jb3JzLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDk2NThlNjQxZWNkZjE0Mzc3OGRmM2Iw
MmI1Y2E1NDljNWI0YzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vLWNvcnMu
YW55LmpzCkBAIC0wLDAgKzEsNTUgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisK
K3Byb21pc2VfdGVzdCgoKSA9PiBmZXRjaCgiLi4vY29ycy9yZXNvdXJjZXMvbm90LWNvcnMtc2Fm
ZWxpc3RlZC5qc29uIikudGhlbihyZXMgPT4gcmVzLmpzb24oKS50aGVuKHJ1blRlc3RzKSksICJM
b2FkaW5nIGRhdGHigKYiKTsKKworY29uc3QgbG9uZ1ZhbHVlID0gInMiLnJlcGVhdCgxMjcpOwor
CitbCisgIHsKKyAgICAiaGVhZGVycyI6IFsiYWNjZXB0IiwgImFjY2VwdC1sYW5ndWFnZSIsICJj
b250ZW50LWxhbmd1YWdlIl0sCisgICAgInZhbHVlcyI6IFtsb25nVmFsdWUsICIiLCBsb25nVmFs
dWVdCisgIH0sCisgIHsKKyAgICAiaGVhZGVycyI6IFsiYWNjZXB0IiwgImFjY2VwdC1sYW5ndWFn
ZSIsICJjb250ZW50LWxhbmd1YWdlIl0sCisgICAgInZhbHVlcyI6IFsiIiwgbG9uZ1ZhbHVlXQor
ICB9LAorICB7CisgICAgImhlYWRlcnMiOiBbImNvbnRlbnQtdHlwZSJdLAorICAgICJ2YWx1ZXMi
OiBbInRleHQvcGxhaW47IiArICJzIi5yZXBlYXQoMTE2KSwgInRleHQvcGxhaW4iXQorICB9Citd
LmZvckVhY2godGVzdEl0ZW0gPT4geworICB0ZXN0SXRlbS5oZWFkZXJzLmZvckVhY2goaGVhZGVy
ID0+IHsKKyAgICB0ZXN0KCgpID0+IHsKKyAgICAgIGNvbnN0IG5vQ29yc0hlYWRlcnMgPSBuZXcg
UmVxdWVzdCgiYWJvdXQ6YmxhbmsiLCB7IG1vZGU6ICJuby1jb3JzIiB9KS5oZWFkZXJzOworICAg
ICAgdGVzdEl0ZW0udmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7CisgICAgICAgIG5vQ29yc0hl
YWRlcnMuYXBwZW5kKGhlYWRlciwgdmFsdWUpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG5vQ29y
c0hlYWRlcnMuZ2V0KGhlYWRlciksIHRlc3RJdGVtLnZhbHVlc1swXSwgJzEnKTsKKyAgICAgIH0p
OworICAgICAgbm9Db3JzSGVhZGVycy5zZXQoaGVhZGVyLCB0ZXN0SXRlbS52YWx1ZXMuam9pbigi
LCAiKSk7CisgICAgICBhc3NlcnRfZXF1YWxzKG5vQ29yc0hlYWRlcnMuZ2V0KGhlYWRlciksIHRl
c3RJdGVtLnZhbHVlc1swXSwgJzInKTsKKyAgICAgIG5vQ29yc0hlYWRlcnMuZGVsZXRlKGhlYWRl
cik7CisgICAgICBhc3NlcnRfZmFsc2Uobm9Db3JzSGVhZGVycy5oYXMoaGVhZGVyKSk7CisgICAg
fSwgIlwibm8tY29yc1wiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlICIgKyBoZWFkZXIgKyAi
IHNldCB0byAiICsgdGVzdEl0ZW0udmFsdWVzLmpvaW4oIiwgIikpOworICB9KTsKK30pOworCitm
dW5jdGlvbiBydW5UZXN0cyh0ZXN0QXJyYXkpIHsKKyAgdGVzdEFycmF5ID0gdGVzdEFycmF5LmNv
bmNhdChbCisgICAgWyJkcHIiLCAiMiJdLAorICAgIFsiZG93bmxpbmsiLCAiMSJdLAorICAgIFsi
c2F2ZS1kYXRhIiwgIm9uIl0sCisgICAgWyJ2aWV3cG9ydC13aWR0aCIsICIxMDAiXSwKKyAgICBb
IndpZHRoIiwgIjEwMCJdLAorICAgIFsidW5rbm93biIsICJkb2VzaXRtYXR0ZXIiXQorICBdKTsK
KyAgdGVzdEFycmF5LmZvckVhY2godGVzdEl0ZW0gPT4geworICAgIGNvbnN0IFtoZWFkZXJOYW1l
LCBoZWFkZXJWYWx1ZV0gPSB0ZXN0SXRlbTsKKyAgICB0ZXN0KCgpID0+IHsKKyAgICAgIGNvbnN0
IG5vQ29yc0hlYWRlcnMgPSBuZXcgUmVxdWVzdCgiYWJvdXQ6YmxhbmsiLCB7IG1vZGU6ICJuby1j
b3JzIiB9KS5oZWFkZXJzOworICAgICAgbm9Db3JzSGVhZGVycy5hcHBlbmQoaGVhZGVyTmFtZSwg
aGVhZGVyVmFsdWUpOworICAgICAgYXNzZXJ0X2ZhbHNlKG5vQ29yc0hlYWRlcnMuaGFzKGhlYWRl
ck5hbWUpKTsKKyAgICAgIG5vQ29yc0hlYWRlcnMuc2V0KGhlYWRlck5hbWUsIGhlYWRlclZhbHVl
KTsKKyAgICAgIGFzc2VydF9mYWxzZShub0NvcnNIZWFkZXJzLmhhcyhoZWFkZXJOYW1lKSk7Cisg
ICAgfSwgIlwibm8tY29yc1wiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlICIgKyBoZWFkZXJO
YW1lICsgIi8iICsgaGVhZGVyVmFsdWUgKyAiIGFzIGhlYWRlciIpOworICB9KTsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVy
cy9oZWFkZXJzLW5vLWNvcnMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg5
OGIyN2UwZjRmNjVkN2FkNTAwMDIxNzM4ZWU2ZGI2N2ZhNzk4ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1uby1jb3JzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjUgQEAKKworUEFTUyBMb2FkaW5nIGRhdGHigKYKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2Jq
ZWN0IGNhbm5vdCBoYXZlIGFjY2VwdCBzZXQgdG8gc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcywgLCBzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3NzCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQtbGFu
Z3VhZ2Ugc2V0IHRvIHNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MsICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcworUEFTUyAibm8tY29y
cyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVudC1sYW5ndWFnZSBzZXQgdG8gc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3NzcywgLCBzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVj
dCBjYW5ub3QgaGF2ZSBhY2NlcHQgc2V0IHRvICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcworUEFTUyAibm8tY29y
cyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgYWNjZXB0LWxhbmd1YWdlIHNldCB0byAsIHNz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3MKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNv
bnRlbnQtbGFuZ3VhZ2Ugc2V0IHRvICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcworUEFTUyAibm8tY29ycyIgSGVh
ZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVudC10eXBlIHNldCB0byB0ZXh0L3BsYWluO3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
LCB0ZXh0L3BsYWluCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBh
Y2NlcHQvIiBhcyBoZWFkZXIKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBo
YXZlIGFjY2VwdC8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1
Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEy
MzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2NzggYXMgaGVhZGVyCitQQVNTICJuby1jb3JzIiBIZWFk
ZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQtbGFuZ3VhZ2UvASBhcyBoZWFkZXIKK1BBU1Mg
Im5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGFjY2VwdC1sYW5ndWFnZS9AIGFz
IGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVu
dC1sYW5ndWFnZS8BIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fu
bm90IGhhdmUgY29udGVudC1sYW5ndWFnZS9AIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVh
ZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVudC10eXBlL3RleHQvaHRtbCBhcyBoZWFkZXIK
K1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRlbnQtdHlwZS90
ZXh0L3BsYWluOyBsb25nPTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkw
MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3
ODkwMTIzNDU2Nzg5MDEgYXMgaGVhZGVyCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBj
YW5ub3QgaGF2ZSB0ZXN0L2hpIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmpl
Y3QgY2Fubm90IGhhdmUgZHByLzIgYXMgaGVhZGVyCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9i
amVjdCBjYW5ub3QgaGF2ZSBkb3dubGluay8xIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVh
ZGVycyBvYmplY3QgY2Fubm90IGhhdmUgc2F2ZS1kYXRhL29uIGFzIGhlYWRlcgorUEFTUyAibm8t
Y29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgdmlld3BvcnQtd2lkdGgvMTAwIGFzIGhl
YWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgd2lkdGgvMTAw
IGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgdW5r
bm93bi9kb2VzaXRtYXR0ZXIgYXMgaGVhZGVyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1u
by1jb3JzLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLmFueS53b3JrZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vLWNvcnMuYW55Lndvcmtlci5odG1s
CkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVz
dCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLndpbmRv
dy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm8tY29ycy53aW5kb3ctZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODk4YjI3ZTBmNGY2NWQ3YWQ1MDAwMjE3
MzhlZTZkYjY3ZmE3OThmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLndpbmRvdy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyNSArMCwwIEBACi0KLVBBU1MgTG9hZGluZyBkYXRh4oCmCi1QQVNTICJuby1j
b3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQgc2V0IHRvIHNzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3MsICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3NzcwotUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90
IGhhdmUgYWNjZXB0LWxhbmd1YWdlIHNldCB0byBzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzLCAsIHNzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3MKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRlbnQtbGFu
Z3VhZ2Ugc2V0IHRvIHNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MsICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcwotUEFTUyAibm8tY29y
cyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgYWNjZXB0IHNldCB0byAsIHNzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3MKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGFjY2VwdC1sYW5n
dWFnZSBzZXQgdG8gLCBzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzCi1QQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVj
dCBjYW5ub3QgaGF2ZSBjb250ZW50LWxhbmd1YWdlIHNldCB0byAsIHNzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MKLVBB
U1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRlbnQtdHlwZSBzZXQg
dG8gdGV4dC9wbGFpbjtzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3NzcywgdGV4dC9wbGFpbgotUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmpl
Y3QgY2Fubm90IGhhdmUgYWNjZXB0LyIgYXMgaGVhZGVyCi1QQVNTICJuby1jb3JzIiBIZWFkZXJz
IG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQvMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5
MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2
Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4IGFzIGhlYWRlcgotUEFT
UyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgYWNjZXB0LWxhbmd1YWdlLwEg
YXMgaGVhZGVyCi1QQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2Nl
cHQtbGFuZ3VhZ2UvQCBhcyBoZWFkZXIKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNh
bm5vdCBoYXZlIGNvbnRlbnQtbGFuZ3VhZ2UvASBhcyBoZWFkZXIKLVBBU1MgIm5vLWNvcnMiIEhl
YWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRlbnQtbGFuZ3VhZ2UvQCBhcyBoZWFkZXIKLVBB
U1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRlbnQtdHlwZS90ZXh0
L2h0bWwgYXMgaGVhZGVyCi1QQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2
ZSBjb250ZW50LXR5cGUvdGV4dC9wbGFpbjsgbG9uZz0wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0
NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx
MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxIGFzIGhlYWRlcgotUEFTUyAibm8tY29ycyIg
SGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgdGVzdC9oaSBhcyBoZWFkZXIKLVBBU1MgIm5vLWNv
cnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGRwci8yIGFzIGhlYWRlcgotUEFTUyAibm8t
Y29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgZG93bmxpbmsvMSBhcyBoZWFkZXIKLVBB
U1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIHNhdmUtZGF0YS9vbiBhcyBo
ZWFkZXIKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIHZpZXdwb3J0
LXdpZHRoLzEwMCBhcyBoZWFkZXIKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5v
dCBoYXZlIHdpZHRoLzEwMCBhcyBoZWFkZXIKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0
IGNhbm5vdCBoYXZlIHVua25vd24vZG9lc2l0bWF0dGVyIGFzIGhlYWRlcgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9o
ZWFkZXJzL2hlYWRlcnMtbm8tY29ycy53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3Jz
LndpbmRvdy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzgyOTEzNTI4ZTY5
M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLndpbmRvdy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vLWNv
cnMud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vLWNvcnMud2luZG93LmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZjNhODE5YmExYTZkMWNiNzQxOGIwNTA3ZTZmODEzMDQ1OGJh
OTg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMv
aGVhZGVycy1uby1jb3JzLndpbmRvdy5qcworKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAK
LXByb21pc2VfdGVzdCgoKSA9PiBmZXRjaCgiLi4vY29ycy9yZXNvdXJjZXMvbm90LWNvcnMtc2Fm
ZWxpc3RlZC5qc29uIikudGhlbihyZXMgPT4gcmVzLmpzb24oKS50aGVuKHJ1blRlc3RzKSksICJM
b2FkaW5nIGRhdGHigKYiKTsKLQotY29uc3QgbG9uZ1ZhbHVlID0gInMiLnJlcGVhdCgxMjcpOwot
Ci1bCi0gIHsKLSAgICAiaGVhZGVycyI6IFsiYWNjZXB0IiwgImFjY2VwdC1sYW5ndWFnZSIsICJj
b250ZW50LWxhbmd1YWdlIl0sCi0gICAgInZhbHVlcyI6IFtsb25nVmFsdWUsICIiLCBsb25nVmFs
dWVdCi0gIH0sCi0gIHsKLSAgICAiaGVhZGVycyI6IFsiYWNjZXB0IiwgImFjY2VwdC1sYW5ndWFn
ZSIsICJjb250ZW50LWxhbmd1YWdlIl0sCi0gICAgInZhbHVlcyI6IFsiIiwgbG9uZ1ZhbHVlXQot
ICB9LAotICB7Ci0gICAgImhlYWRlcnMiOiBbImNvbnRlbnQtdHlwZSJdLAotICAgICJ2YWx1ZXMi
OiBbInRleHQvcGxhaW47IiArICJzIi5yZXBlYXQoMTE2KSwgInRleHQvcGxhaW4iXQotICB9Ci1d
LmZvckVhY2godGVzdEl0ZW0gPT4gewotICB0ZXN0SXRlbS5oZWFkZXJzLmZvckVhY2goaGVhZGVy
ID0+IHsKLSAgICB0ZXN0KCgpID0+IHsKLSAgICAgIGNvbnN0IG5vQ29yc0hlYWRlcnMgPSBuZXcg
UmVxdWVzdCgiYWJvdXQ6YmxhbmsiLCB7IG1vZGU6ICJuby1jb3JzIiB9KS5oZWFkZXJzOwotICAg
ICAgdGVzdEl0ZW0udmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7Ci0gICAgICAgIG5vQ29yc0hl
YWRlcnMuYXBwZW5kKGhlYWRlciwgdmFsdWUpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKG5vQ29y
c0hlYWRlcnMuZ2V0KGhlYWRlciksIHRlc3RJdGVtLnZhbHVlc1swXSwgJzEnKTsKLSAgICAgIH0p
OwotICAgICAgbm9Db3JzSGVhZGVycy5zZXQoaGVhZGVyLCB0ZXN0SXRlbS52YWx1ZXMuam9pbigi
LCAiKSk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKG5vQ29yc0hlYWRlcnMuZ2V0KGhlYWRlciksIHRl
c3RJdGVtLnZhbHVlc1swXSwgJzInKTsKLSAgICAgIG5vQ29yc0hlYWRlcnMuZGVsZXRlKGhlYWRl
cik7Ci0gICAgICBhc3NlcnRfZmFsc2Uobm9Db3JzSGVhZGVycy5oYXMoaGVhZGVyKSk7Ci0gICAg
fSwgIlwibm8tY29yc1wiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlICIgKyBoZWFkZXIgKyAi
IHNldCB0byAiICsgdGVzdEl0ZW0udmFsdWVzLmpvaW4oIiwgIikpOwotICB9KTsKLX0pOwotCi1m
dW5jdGlvbiBydW5UZXN0cyh0ZXN0QXJyYXkpIHsKLSAgdGVzdEFycmF5ID0gdGVzdEFycmF5LmNv
bmNhdChbCi0gICAgWyJkcHIiLCAiMiJdLAotICAgIFsiZG93bmxpbmsiLCAiMSJdLAotICAgIFsi
c2F2ZS1kYXRhIiwgIm9uIl0sCi0gICAgWyJ2aWV3cG9ydC13aWR0aCIsICIxMDAiXSwKLSAgICBb
IndpZHRoIiwgIjEwMCJdLAotICAgIFsidW5rbm93biIsICJkb2VzaXRtYXR0ZXIiXQotICBdKTsK
LSAgdGVzdEFycmF5LmZvckVhY2godGVzdEl0ZW0gPT4gewotICAgIGNvbnN0IFtoZWFkZXJOYW1l
LCBoZWFkZXJWYWx1ZV0gPSB0ZXN0SXRlbTsKLSAgICB0ZXN0KCgpID0+IHsKLSAgICAgIGNvbnN0
IG5vQ29yc0hlYWRlcnMgPSBuZXcgUmVxdWVzdCgiYWJvdXQ6YmxhbmsiLCB7IG1vZGU6ICJuby1j
b3JzIiB9KS5oZWFkZXJzOwotICAgICAgbm9Db3JzSGVhZGVycy5hcHBlbmQoaGVhZGVyTmFtZSwg
aGVhZGVyVmFsdWUpOwotICAgICAgYXNzZXJ0X2ZhbHNlKG5vQ29yc0hlYWRlcnMuaGFzKGhlYWRl
ck5hbWUpKTsKLSAgICAgIG5vQ29yc0hlYWRlcnMuc2V0KGhlYWRlck5hbWUsIGhlYWRlclZhbHVl
KTsKLSAgICAgIGFzc2VydF9mYWxzZShub0NvcnNIZWFkZXJzLmhhcyhoZWFkZXJOYW1lKSk7Ci0g
ICAgfSwgIlwibm8tY29yc1wiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlICIgKyBoZWFkZXJO
YW1lICsgIi8iICsgaGVhZGVyVmFsdWUgKyAiIGFzIGhlYWRlciIpOwotICB9KTsKLX0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJz
LW5vcm1hbGl6ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMw
ZDkwZTRkMGFlOThjZTQ2YjRlMDA5ZDdjNTFkZDMwZjM0NzNjZmYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vcm1hbGl6ZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotUEFTUyBDcmVhdGUgaGVh
ZGVycyB3aXRoIG5vdCBub3JtYWxpemVkIHZhbHVlcwotUEFTUyBDaGVjayBhcHBlbmQgbWV0aG9k
IHdpdGggbm90IG5vcm1hbGl6ZWQgdmFsdWVzCi1QQVNTIENoZWNrIHNldCBtZXRob2Qgd2l0aCBu
b3Qgbm9ybWFsaXplZCB2YWx1ZXMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vcm1hbGl6
ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vcm1hbGl6ZS5hbnktZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMwZDkwZTRkMGFlOThjZTQ2YjRlMDA5ZDdjNTFkZDMwZjM0NzNjZmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9ybWFsaXplLmFueS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCBub3Qgbm9ybWFs
aXplZCB2YWx1ZXMKK1BBU1MgQ2hlY2sgYXBwZW5kIG1ldGhvZCB3aXRoIG5vdCBub3JtYWxpemVk
IHZhbHVlcworUEFTUyBDaGVjayBzZXQgbWV0aG9kIHdpdGggbm90IG5vcm1hbGl6ZWQgdmFsdWVz
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxpemUuYW55Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hl
YWRlcnMtbm9ybWFsaXplLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1
NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9y
bWFsaXplLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0
IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVy
cy1ub3JtYWxpemUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vcm1hbGl6ZS5hbnkuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWViZDdhZTllYTk4OTg5MTdmZTNkN2ExNjYwNDc1ZjAyNGM1MWQxMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxpemUuYW55LmpzCkBAIC0wLDAgKzEsMzUgQEAK
Ky8vIE1FVEE6IHRpdGxlPUhlYWRlcnMgbm9ybWFsaXplIHZhbHVlcworLy8gTUVUQTogZ2xvYmFs
PXdpbmRvdyx3b3JrZXIKKwordmFyIGhlYWRlckRpY3RXUyA9IHsibmFtZTEiOiAiIHNwYWNlICIs
CisgICAgICAgICAgICAgICAgICAgICJuYW1lMiI6ICJcdHRhYlx0IiwKKyAgICAgICAgICAgICAg
ICAgICAgIm5hbWUzIjogIiBzcGFjZUFuZFRhYlx0IiwKKyAgICAgICAgICAgICAgICAgICAgIm5h
bWU0IjogIlxyXG4gbmV3TGluZSIsIC8vb2JzLWZvbGQgY2FzZXMKKyAgICAgICAgICAgICAgICAg
ICAgIm5hbWU1IjogIm5ld0xpbmVcclxuICIsCisgICAgICAgICAgICAgICAgICAgICJuYW1lNiI6
ICJcclxuXHRuZXdMaW5lIiwKKyAgICAgICAgICAgICAgICAgICAgfTsKKwordGVzdChmdW5jdGlv
bigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJEaWN0V1MpOworICBmb3Ig
KG5hbWUgaW4gaGVhZGVyRGljdFdTKQorICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQobmFt
ZSksIGhlYWRlckRpY3RXU1tuYW1lXS50cmltKCksCisgICAgICAibmFtZTogIiArIG5hbWUgKyAi
IGhhcyBub3JtYWxpemVkIHZhbHVlOiAiICsgaGVhZGVyRGljdFdTW25hbWVdLnRyaW0oKSk7Cit9
LCAiQ3JlYXRlIGhlYWRlcnMgd2l0aCBub3Qgbm9ybWFsaXplZCB2YWx1ZXMiKTsKKwordGVzdChm
dW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworICBmb3IgKG5hbWUg
aW4gaGVhZGVyRGljdFdTKSB7CisgICAgaGVhZGVycy5hcHBlbmQobmFtZSwgaGVhZGVyRGljdFdT
W25hbWVdKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCBoZWFkZXJEaWN0
V1NbbmFtZV0udHJpbSgpLAorICAgICAgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIg
KyBoZWFkZXJEaWN0V1NbbmFtZV0udHJpbSgpKTsKKyAgfQorfSwgIkNoZWNrIGFwcGVuZCBtZXRo
b2Qgd2l0aCBub3Qgbm9ybWFsaXplZCB2YWx1ZXMiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
dmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdFdT
KSB7CisgICAgaGVhZGVycy5zZXQobmFtZSwgaGVhZGVyRGljdFdTW25hbWVdKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCBoZWFkZXJEaWN0V1NbbmFtZV0udHJpbSgpLAor
ICAgICAgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBoZWFkZXJEaWN0V1NbbmFt
ZV0udHJpbSgpKTsKKyAgfQorfSwgIkNoZWNrIHNldCBtZXRob2Qgd2l0aCBub3Qgbm9ybWFsaXpl
ZCB2YWx1ZXMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxpemUuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9ybWFsaXplLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMwZDkwZTRkMGFlOThjZTQ2YjRlMDA5ZDdjNTFkZDMwZjM0NzNj
ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9ybWFsaXplLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIENyZWF0ZSBoZWFkZXJzIHdpdGgg
bm90IG5vcm1hbGl6ZWQgdmFsdWVzCitQQVNTIENoZWNrIGFwcGVuZCBtZXRob2Qgd2l0aCBub3Qg
bm9ybWFsaXplZCB2YWx1ZXMKK1BBU1MgQ2hlY2sgc2V0IG1ldGhvZCB3aXRoIG5vdCBub3JtYWxp
emVkIHZhbHVlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9ybWFsaXplLmFueS53b3Jr
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxpemUuYW55Lndvcmtlci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9ybWFsaXplLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsx
IEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1
Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9ybWFsaXplLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hl
YWRlcnMtbm9ybWFsaXplLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkZmNm
OWQ4MTk0Nzc2NDc5ZDUwMGE2ZjZjNmE1ODUxNDI0ZDllZmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vcm1hbGl6ZS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAg
PGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5IZWFkZXJzIG5v
cm1hbGl6ZSB2YWx1ZXM8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWhlYWRlci12YWx1ZS1ub3JtYWxpemUi
PgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIg
aHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5Pgot
ICAgIDxzY3JpcHQ+Ci0gICAgICB2YXIgaGVhZGVyRGljdFdTID0geyJuYW1lMSI6ICIgc3BhY2Ug
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUyIjogIlx0dGFiXHQiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAibmFtZTMiOiAiIHNwYWNlQW5kVGFiXHQiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAibmFtZTQiOiAiXHJcbiBuZXdMaW5lIiwgLy9vYnMtZm9sZCBjYXNl
cwotICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZTUiOiAibmV3TGluZVxyXG4gIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWU2IjogIlxyXG5cdG5ld0xpbmUiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIH07Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAg
IHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyRGljdFdTKTsKLSAgICAgICAgZm9yIChu
YW1lIGluIGhlYWRlckRpY3RXUykKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0
KG5hbWUpLCBoZWFkZXJEaWN0V1NbbmFtZV0udHJpbSgpLAotICAgICAgICAgICAgIm5hbWU6ICIg
KyBuYW1lICsgIiBoYXMgbm9ybWFsaXplZCB2YWx1ZTogIiArIGhlYWRlckRpY3RXU1tuYW1lXS50
cmltKCkpOwotICAgICAgfSwgIkNyZWF0ZSBoZWFkZXJzIHdpdGggbm90IG5vcm1hbGl6ZWQgdmFs
dWVzIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0g
bmV3IEhlYWRlcnMoKTsKLSAgICAgICAgZm9yIChuYW1lIGluIGhlYWRlckRpY3RXUykgewotICAg
ICAgICAgIGhlYWRlcnMuYXBwZW5kKG5hbWUsIGhlYWRlckRpY3RXU1tuYW1lXSk7Ci0gICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChuYW1lKSwgaGVhZGVyRGljdFdTW25hbWVdLnRy
aW0oKSwKLSAgICAgICAgICAgICJuYW1lOiAiICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVh
ZGVyRGljdFdTW25hbWVdLnRyaW0oKSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJDaGVjayBhcHBl
bmQgbWV0aG9kIHdpdGggbm90IG5vcm1hbGl6ZWQgdmFsdWVzIik7Ci0KLSAgICAgIHRlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKLSAgICAgICAg
Zm9yIChuYW1lIGluIGhlYWRlckRpY3RXUykgewotICAgICAgICAgIGhlYWRlcnMuc2V0KG5hbWUs
IGhlYWRlckRpY3RXU1tuYW1lXSk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdl
dChuYW1lKSwgaGVhZGVyRGljdFdTW25hbWVdLnRyaW0oKSwKLSAgICAgICAgICAgICJuYW1lOiAi
ICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVhZGVyRGljdFdTW25hbWVdLnRyaW0oKSk7Ci0g
ICAgICAgIH0KLSAgICAgIH0sICJDaGVjayBzZXQgbWV0aG9kIHdpdGggbm90IG5vcm1hbGl6ZWQg
dmFsdWVzIik7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1yZWNvcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMmU2MjE1MjFmM2Rh
ODUyYzU0N2JmMThhMmU2ZWUwZTY0ZDc4NzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0KLVBBU1MgUGFzc2luZyBub3RoaW5nIHRvIEhlYWRl
cnMgY29uc3RydWN0b3IKLVBBU1MgUGFzc2luZyB1bmRlZmluZWQgdG8gSGVhZGVycyBjb25zdHJ1
Y3RvcgotUEFTUyBQYXNzaW5nIG51bGwgdG8gSGVhZGVycyBjb25zdHJ1Y3RvcgotUEFTUyBCYXNp
YyBvcGVyYXRpb24gd2l0aCBvbmUgcHJvcGVydHkKLVBBU1MgQmFzaWMgb3BlcmF0aW9uIHdpdGgg
b25lIHByb3BlcnR5IGFuZCBhIHByb3RvCi1QQVNTIENvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5n
IHdpdGggdHdvIHByb3BlcnRpZXMKLVBBU1MgQ29ycmVjdCBvcGVyYXRpb24gb3JkZXJpbmcgd2l0
aCB0d28gcHJvcGVydGllcyBvbmUgb2Ygd2hpY2ggaGFzIGFuIGludmFsaWQgbmFtZQotUEFTUyBD
b3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHR3byBwcm9wZXJ0aWVzIG9uZSBvZiB3aGlj
aCBoYXMgYW4gaW52YWxpZCB2YWx1ZQotUEFTUyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3
aXRoIG5vbi1lbnVtZXJhYmxlIHByb3BlcnRpZXMKLVBBU1MgQ29ycmVjdCBvcGVyYXRpb24gb3Jk
ZXJpbmcgd2l0aCB1bmRlZmluZWQgZGVzY3JpcHRvcnMKLVBBU1MgQ29ycmVjdCBvcGVyYXRpb24g
b3JkZXJpbmcgd2l0aCByZXBlYXRlZCBrZXlzCi1QQVNTIEJhc2ljIG9wZXJhdGlvbiB3aXRoIFN5
bWJvbCBrZXlzCi1QQVNTIE9wZXJhdGlvbiB3aXRoIG5vbi1lbnVtZXJhYmxlIFN5bWJvbCBrZXlz
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1yZWNvcmQuYW55LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRl
cnMvaGVhZGVycy1yZWNvcmQuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDJlNjIxNTIx
ZjNkYTg1MmM1NDdiZjE4YTJlNmVlMGU2NGQ3ODczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLXJlY29yZC5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKKworUEFTUyBQ
YXNzaW5nIG5vdGhpbmcgdG8gSGVhZGVycyBjb25zdHJ1Y3RvcgorUEFTUyBQYXNzaW5nIHVuZGVm
aW5lZCB0byBIZWFkZXJzIGNvbnN0cnVjdG9yCitQQVNTIFBhc3NpbmcgbnVsbCB0byBIZWFkZXJz
IGNvbnN0cnVjdG9yCitQQVNTIEJhc2ljIG9wZXJhdGlvbiB3aXRoIG9uZSBwcm9wZXJ0eQorUEFT
UyBCYXNpYyBvcGVyYXRpb24gd2l0aCBvbmUgcHJvcGVydHkgYW5kIGEgcHJvdG8KK1BBU1MgQ29y
cmVjdCBvcGVyYXRpb24gb3JkZXJpbmcgd2l0aCB0d28gcHJvcGVydGllcworUEFTUyBDb3JyZWN0
IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHR3byBwcm9wZXJ0aWVzIG9uZSBvZiB3aGljaCBoYXMg
YW4gaW52YWxpZCBuYW1lCitQQVNTIENvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggdHdv
IHByb3BlcnRpZXMgb25lIG9mIHdoaWNoIGhhcyBhbiBpbnZhbGlkIHZhbHVlCitQQVNTIENvcnJl
Y3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggbm9uLWVudW1lcmFibGUgcHJvcGVydGllcworUEFT
UyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHVuZGVmaW5lZCBkZXNjcmlwdG9ycwor
UEFTUyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHJlcGVhdGVkIGtleXMKK1BBU1Mg
QmFzaWMgb3BlcmF0aW9uIHdpdGggU3ltYm9sIGtleXMKK1BBU1MgT3BlcmF0aW9uIHdpdGggbm9u
LWVudW1lcmFibGUgU3ltYm9sIGtleXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29y
ZC5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1yZWNvcmQuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4
MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1yZWNvcmQuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZp
bGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUg
dGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aGVhZGVycy9oZWFkZXJzLXJlY29yZC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtcmVjb3JkLmFueS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NTAzNmMyZGE0YzA3Njg4NGRlYmQ2NzNmZGVhMjNhYmI3YTlhMmJkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC5hbnkuanMKQEAgLTAsMCArMSwz
NTUgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisKK3ZhciBsb2cgPSBbXTsKK2Z1
bmN0aW9uIGNsZWFyTG9nKCkgeworICBsb2cgPSBbXTsKK30KK2Z1bmN0aW9uIGFkZExvZ0VudHJ5
KG5hbWUsIGFyZ3MpIHsKKyAgbG9nLnB1c2goWyBuYW1lLCAuLi5hcmdzIF0pOworfQorCit2YXIg
bG9nZ2luZ0hhbmRsZXIgPSB7Cit9OworCitzZXR1cChmdW5jdGlvbigpIHsKKyAgZm9yIChsZXQg
cHJvcCBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhSZWZsZWN0KSkgeworICAgIGxvZ2dp
bmdIYW5kbGVyW3Byb3BdID0gZnVuY3Rpb24oLi4uYXJncykgeworICAgICAgYWRkTG9nRW50cnko
cHJvcCwgYXJncyk7CisgICAgICByZXR1cm4gUmVmbGVjdFtwcm9wXSguLi5hcmdzKTsKKyAgICB9
CisgIH0KK30pOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaCA9IG5ldyBIZWFkZXJzKCk7
CisgIGFzc2VydF9lcXVhbHMoWy4uLmhdLmxlbmd0aCwgMCk7Cit9LCAiUGFzc2luZyBub3RoaW5n
IHRvIEhlYWRlcnMgY29uc3RydWN0b3IiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGgg
PSBuZXcgSGVhZGVycyh1bmRlZmluZWQpOworICBhc3NlcnRfZXF1YWxzKFsuLi5oXS5sZW5ndGgs
IDApOworfSwgIlBhc3NpbmcgdW5kZWZpbmVkIHRvIEhlYWRlcnMgY29uc3RydWN0b3IiKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9u
KCkgeworICAgIHZhciBoID0gbmV3IEhlYWRlcnMobnVsbCk7CisgIH0pOworfSwgIlBhc3Npbmcg
bnVsbCB0byBIZWFkZXJzIGNvbnN0cnVjdG9yIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHRo
aXMuYWRkX2NsZWFudXAoY2xlYXJMb2cpOworICB2YXIgcmVjb3JkID0geyBhOiAiYiIgfTsKKyAg
dmFyIHByb3h5ID0gbmV3IFByb3h5KHJlY29yZCwgbG9nZ2luZ0hhbmRsZXIpOworICB2YXIgaCA9
IG5ldyBIZWFkZXJzKHByb3h5KTsKKworICBhc3NlcnRfZXF1YWxzKGxvZy5sZW5ndGgsIDQpOwor
ICAvLyBUaGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtbR2V0XV0gb2YgU3ltYm9sLml0ZXJhdG9yIHRv
IGZpZ3VyZSBvdXQgd2hldGhlcgorICAvLyB3ZSdyZSBhIHNlcXVlbmNlLCBkdXJpbmcgb3Zlcmxv
YWQgcmVzb2x1dGlvbi4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFsiZ2V0IiwgcmVj
b3JkLCBTeW1ib2wuaXRlcmF0b3IsIHByb3h5XSk7CisgIC8vIFRoZW4gd2UgaGF2ZSB0aGUgW1tP
d25Qcm9wZXJ0eUtleXNdXSBmcm9tCisgIC8vIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJp
ZGwvI2VzLXRvLXJlY29yZCBzdGVwIDQuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBb
Im93bktleXMiLCByZWNvcmRdKTsKKyAgLy8gVGhlbiB0aGUgW1tHZXRPd25Qcm9wZXJ0eV1dIGZy
b20gc3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzJdLCBbImdldE93blByb3Bl
cnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImEiXSk7CisgIC8vIFRoZW4gdGhlIFtbR2V0XV0gZnJv
bSBzdGVwIDUuMi4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFsiZ2V0IiwgcmVjb3Jk
LCAiYSIsIHByb3h5XSk7CisKKyAgLy8gQ2hlY2sgdGhlIHJlc3VsdHMuCisgIGFzc2VydF9lcXVh
bHMoWy4uLmhdLmxlbmd0aCwgMSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLmgua2V5cygp
XSwgWyJhIl0pOworICBhc3NlcnRfdHJ1ZShoLmhhcygiYSIpKTsKKyAgYXNzZXJ0X2VxdWFscyho
LmdldCgiYSIpLCAiYiIpOworfSwgIkJhc2ljIG9wZXJhdGlvbiB3aXRoIG9uZSBwcm9wZXJ0eSIp
OworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKKyAg
dmFyIHJlY29yZFByb3RvID0geyBjOiAiZCIgfTsKKyAgdmFyIHJlY29yZCA9IE9iamVjdC5jcmVh
dGUocmVjb3JkUHJvdG8sIHsgYTogeyB2YWx1ZTogImIiLCBlbnVtZXJhYmxlOiB0cnVlIH0gfSk7
CisgIHZhciBwcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dpbmdIYW5kbGVyKTsKKyAgdmFy
IGggPSBuZXcgSGVhZGVycyhwcm94eSk7CisKKyAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA0
KTsKKyAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRv
ciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKKyAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92
ZXJsb2FkIHJlc29sdXRpb24uCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIs
IHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOworICAvLyBUaGVuIHdlIGhhdmUgdGhl
IFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQorICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8v
d2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sx
XSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7CisgIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHld
XSBmcm9tIHN0ZXAgNS4xLgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOworICAvLyBUaGVuIHRoZSBbW0dldF1d
IGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJl
Y29yZCwgImEiLCBwcm94eV0pOworCisgIC8vIENoZWNrIHRoZSByZXN1bHRzLgorICBhc3NlcnRf
ZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDEpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5oLmtl
eXMoKV0sIFsiYSJdKTsKKyAgYXNzZXJ0X3RydWUoaC5oYXMoImEiKSk7CisgIGFzc2VydF9lcXVh
bHMoaC5nZXQoImEiKSwgImIiKTsKK30sICJCYXNpYyBvcGVyYXRpb24gd2l0aCBvbmUgcHJvcGVy
dHkgYW5kIGEgcHJvdG8iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdGhpcy5hZGRfY2xlYW51
cChjbGVhckxvZyk7CisgIHZhciByZWNvcmQgPSB7IGE6ICJiIiwgYzogImQiIH07CisgIHZhciBw
cm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dpbmdIYW5kbGVyKTsKKyAgdmFyIGggPSBuZXcg
SGVhZGVycyhwcm94eSk7CisKKyAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA2KTsKKyAgLy8g
VGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1
cmUgb3V0IHdoZXRoZXIKKyAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJl
c29sdXRpb24uCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwg
U3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOworICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJv
cGVydHlLZXlzXV0gZnJvbQorICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNl
cy10by1yZWNvcmQgc3RlcCA0LgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25L
ZXlzIiwgcmVjb3JkXSk7CisgIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0
ZXAgNS4xLgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOworICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3Rl
cCA1LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJlY29yZCwgImEi
LCBwcm94eV0pOworICAvLyBUaGVuIHRoZSBzZWNvbmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20g
c3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbImdldE93blByb3BlcnR5
RGVzY3JpcHRvciIsIHJlY29yZCwgImMiXSk7CisgIC8vIFRoZW4gdGhlIHNlY29uZCBbW0dldF1d
IGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzVdLCBbImdldCIsIHJl
Y29yZCwgImMiLCBwcm94eV0pOworCisgIC8vIENoZWNrIHRoZSByZXN1bHRzLgorICBhc3NlcnRf
ZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDIpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5oLmtl
eXMoKV0sIFsiYSIsICJjIl0pOworICBhc3NlcnRfdHJ1ZShoLmhhcygiYSIpKTsKKyAgYXNzZXJ0
X2VxdWFscyhoLmdldCgiYSIpLCAiYiIpOworICBhc3NlcnRfdHJ1ZShoLmhhcygiYyIpKTsKKyAg
YXNzZXJ0X2VxdWFscyhoLmdldCgiYyIpLCAiZCIpOworfSwgIkNvcnJlY3Qgb3BlcmF0aW9uIG9y
ZGVyaW5nIHdpdGggdHdvIHByb3BlcnRpZXMiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdGhp
cy5hZGRfY2xlYW51cChjbGVhckxvZyk7CisgIHZhciByZWNvcmQgPSB7IGE6ICJiIiwgIlx1RkZG
RiI6ICJkIiB9OworICB2YXIgcHJveHkgPSBuZXcgUHJveHkocmVjb3JkLCBsb2dnaW5nSGFuZGxl
cik7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgICB2YXIg
aCA9IG5ldyBIZWFkZXJzKHByb3h5KTsKKyAgfSk7CisKKyAgYXNzZXJ0X2VxdWFscyhsb2cubGVu
Z3RoLCA1KTsKKyAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5p
dGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKKyAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVy
aW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBb
ImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOworICAvLyBUaGVuIHdlIGhh
dmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQorICAvLyBodHRwczovL2hleWNhbS5naXRo
dWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgorICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7CisgIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJv
cGVydHldXSBmcm9tIHN0ZXAgNS4xLgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOworICAvLyBUaGVuIHRoZSBb
W0dldF1dIGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdl
dCIsIHJlY29yZCwgImEiLCBwcm94eV0pOworICAvLyBUaGVuIHRoZSBzZWNvbmQgW1tHZXRPd25Q
cm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBb
ImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwgIlx1RkZGRiJdKTsKKyAgLy8gVGhl
IHNlY29uZCBbW0dldF1dIG5ldmVyIGhhcHBlbnMsIGJlY2F1c2Ugd2UgY29udmVydCB0aGUgaW52
YWxpZCBuYW1lIHRvIGEKKyAgLy8gQnl0ZVN0cmluZyBmaXJzdCBhbmQgdGhyb3cuCit9LCAiQ29y
cmVjdCBvcGVyYXRpb24gb3JkZXJpbmcgd2l0aCB0d28gcHJvcGVydGllcyBvbmUgb2Ygd2hpY2gg
aGFzIGFuIGludmFsaWQgbmFtZSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB0aGlzLmFkZF9j
bGVhbnVwKGNsZWFyTG9nKTsKKyAgdmFyIHJlY29yZCA9IHsgYTogIlx1RkZGRiIsIGM6ICJkIiB9
CisgIHZhciBwcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dpbmdIYW5kbGVyKTsKKyAgYXNz
ZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICAgIHZhciBoID0gbmV3IEhl
YWRlcnMocHJveHkpOworICB9KTsKKworICBhc3NlcnRfZXF1YWxzKGxvZy5sZW5ndGgsIDQpOwor
ICAvLyBUaGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtbR2V0XV0gb2YgU3ltYm9sLml0ZXJhdG9yIHRv
IGZpZ3VyZSBvdXQgd2hldGhlcgorICAvLyB3ZSdyZSBhIHNlcXVlbmNlLCBkdXJpbmcgb3Zlcmxv
YWQgcmVzb2x1dGlvbi4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFsiZ2V0IiwgcmVj
b3JkLCBTeW1ib2wuaXRlcmF0b3IsIHByb3h5XSk7CisgIC8vIFRoZW4gd2UgaGF2ZSB0aGUgW1tP
d25Qcm9wZXJ0eUtleXNdXSBmcm9tCisgIC8vIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJp
ZGwvI2VzLXRvLXJlY29yZCBzdGVwIDQuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBb
Im93bktleXMiLCByZWNvcmRdKTsKKyAgLy8gVGhlbiB0aGUgW1tHZXRPd25Qcm9wZXJ0eV1dIGZy
b20gc3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzJdLCBbImdldE93blByb3Bl
cnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImEiXSk7CisgIC8vIFRoZW4gdGhlIFtbR2V0XV0gZnJv
bSBzdGVwIDUuMi4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFsiZ2V0IiwgcmVjb3Jk
LCAiYSIsIHByb3h5XSk7CisgIC8vIE5vdGhpbmcgZWxzZSBhZnRlciB0aGlzLCBiZWNhdXNlIGNv
bnZlcnRpbmcgdGhlIHJlc3VsdCBvZiB0aGF0IFtbR2V0XV0gdG8gYQorICAvLyBCeXRlU3RyaW5n
IHRocm93cy4KK30sICJDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHR3byBwcm9wZXJ0
aWVzIG9uZSBvZiB3aGljaCBoYXMgYW4gaW52YWxpZCB2YWx1ZSIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKKyAgdmFyIHJlY29yZCA9IHt9Owor
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVjb3JkLCAiYSIsIHsgdmFsdWU6ICJiIiwgZW51bWVy
YWJsZTogZmFsc2UgfSk7CisgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZWNvcmQsICJjIiwgeyB2
YWx1ZTogImQiLCBlbnVtZXJhYmxlOiB0cnVlIH0pOworICBPYmplY3QuZGVmaW5lUHJvcGVydHko
cmVjb3JkLCAiZSIsIHsgdmFsdWU6ICJmIiwgZW51bWVyYWJsZTogZmFsc2UgfSk7CisgIHZhciBw
cm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dpbmdIYW5kbGVyKTsKKyAgdmFyIGggPSBuZXcg
SGVhZGVycyhwcm94eSk7CisKKyAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA2KTsKKyAgLy8g
VGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1
cmUgb3V0IHdoZXRoZXIKKyAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJl
c29sdXRpb24uCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwg
U3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOworICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJv
cGVydHlLZXlzXV0gZnJvbQorICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNl
cy10by1yZWNvcmQgc3RlcCA0LgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25L
ZXlzIiwgcmVjb3JkXSk7CisgIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0
ZXAgNS4xLgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOworICAvLyBObyBbW0dldF1dIGJlY2F1c2Ugbm90IGVu
dW1lcmFibGUKKyAgLy8gVGhlbiB0aGUgc2Vjb25kIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0
ZXAgNS4xLgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1szXSwgWyJnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IiLCByZWNvcmQsICJjIl0pOworICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3Rl
cCA1LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbImdldCIsIHJlY29yZCwgImMi
LCBwcm94eV0pOworICAvLyBUaGVuIHRoZSB0aGlyZCBbW0dldE93blByb3BlcnR5XV0gZnJvbSBz
dGVwIDUuMS4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0sIFsiZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yIiwgcmVjb3JkLCAiZSJdKTsKKyAgLy8gTm8gW1tHZXRdXSBiZWNhdXNlIG5vdCBl
bnVtZXJhYmxlCisKKyAgLy8gQ2hlY2sgdGhlIHJlc3VsdHMuCisgIGFzc2VydF9lcXVhbHMoWy4u
LmhdLmxlbmd0aCwgMSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLmgua2V5cygpXSwgWyJj
Il0pOworICBhc3NlcnRfdHJ1ZShoLmhhcygiYyIpKTsKKyAgYXNzZXJ0X2VxdWFscyhoLmdldCgi
YyIpLCAiZCIpOworfSwgIkNvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggbm9uLWVudW1l
cmFibGUgcHJvcGVydGllcyIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB0aGlzLmFkZF9jbGVh
bnVwKGNsZWFyTG9nKTsKKyAgdmFyIHJlY29yZCA9IHthOiAiYiIsIGM6ICJkIiwgZTogImYifTsK
KyAgdmFyIGx5aW5nSGFuZGxlciA9IHsKKyAgICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IGZ1
bmN0aW9uKHRhcmdldCwgbmFtZSkgeworICAgICAgaWYgKG5hbWUgPT0gImEiIHx8IG5hbWUgPT0g
ImUiKSB7CisgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICB9CisgICAgICByZXR1cm4g
UmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBuYW1lKTsKKyAgICB9Cisg
IH07CisgIHZhciBseWluZ1Byb3h5ID0gbmV3IFByb3h5KHJlY29yZCwgbHlpbmdIYW5kbGVyKTsK
KyAgdmFyIHByb3h5ID0gbmV3IFByb3h5KGx5aW5nUHJveHksIGxvZ2dpbmdIYW5kbGVyKTsKKyAg
dmFyIGggPSBuZXcgSGVhZGVycyhwcm94eSk7CisKKyAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3Ro
LCA2KTsKKyAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVy
YXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKKyAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5n
IG92ZXJsb2FkIHJlc29sdXRpb24uCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdl
dCIsIGx5aW5nUHJveHksIFN5bWJvbC5pdGVyYXRvciwgcHJveHldKTsKKyAgLy8gVGhlbiB3ZSBo
YXZlIHRoZSBbW093blByb3BlcnR5S2V5c11dIGZyb20KKyAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0
aHViLmlvL3dlYmlkbC8jZXMtdG8tcmVjb3JkIHN0ZXAgNC4KKyAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbMV0sIFsib3duS2V5cyIsIGx5aW5nUHJveHldKTsKKyAgLy8gVGhlbiB0aGUgW1tHZXRP
d25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzJd
LCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIGx5aW5nUHJveHksICJhIl0pOworICAvLyBO
byBbW0dldF1dIGJlY2F1c2Ugbm8gZGVzY3JpcHRvcgorICAvLyBUaGVuIHRoZSBzZWNvbmQgW1tH
ZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
WzNdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIGx5aW5nUHJveHksICJjIl0pOworICAv
LyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzRdLCBbImdldCIsIGx5aW5nUHJveHksICJjIiwgcHJveHldKTsKKyAgLy8gVGhlbiB0aGUg
dGhpcmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzVdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIGx5aW5nUHJveHksICJl
Il0pOworICAvLyBObyBbW0dldF1dIGJlY2F1c2Ugbm8gZGVzY3JpcHRvcgorCisgIC8vIENoZWNr
IHRoZSByZXN1bHRzLgorICBhc3NlcnRfZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDEpOworICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKFsuLi5oLmtleXMoKV0sIFsiYyJdKTsKKyAgYXNzZXJ0X3RydWUoaC5o
YXMoImMiKSk7CisgIGFzc2VydF9lcXVhbHMoaC5nZXQoImMiKSwgImQiKTsKK30sICJDb3JyZWN0
IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHVuZGVmaW5lZCBkZXNjcmlwdG9ycyIpOworCit0ZXN0
KGZ1bmN0aW9uKCkgeworICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKKyAgdmFyIHJlY29y
ZCA9IHthOiAiYiIsIGM6ICJkIn07CisgIHZhciBseWluZ0hhbmRsZXIgPSB7CisgICAgb3duS2V5
czogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4gWyAiYSIsICJjIiwgImEiLCAiYyIgXTsKKyAg
ICB9LAorICB9OworICB2YXIgbHlpbmdQcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGx5aW5nSGFu
ZGxlcik7CisgIHZhciBwcm94eSA9IG5ldyBQcm94eShseWluZ1Byb3h5LCBsb2dnaW5nSGFuZGxl
cik7CisKKyAgLy8gUmV0dXJuaW5nIGR1cGxpY2F0ZSBrZXlzIGZyb20gb3duS2V5cygpIHRocm93
cyBhIFR5cGVFcnJvci4KKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsCisgICAgICAgICAg
ICAgICAgICAgZnVuY3Rpb24oKSB7IHZhciBoID0gbmV3IEhlYWRlcnMocHJveHkpOyB9KTsKKwor
ICBhc3NlcnRfZXF1YWxzKGxvZy5sZW5ndGgsIDIpOworICAvLyBUaGUgZmlyc3QgdGhpbmcgaXMg
dGhlIFtbR2V0XV0gb2YgU3ltYm9sLml0ZXJhdG9yIHRvIGZpZ3VyZSBvdXQgd2hldGhlcgorICAv
LyB3ZSdyZSBhIHNlcXVlbmNlLCBkdXJpbmcgb3ZlcmxvYWQgcmVzb2x1dGlvbi4KKyAgYXNzZXJ0
X2FycmF5X2VxdWFscyhsb2dbMF0sIFsiZ2V0IiwgbHlpbmdQcm94eSwgU3ltYm9sLml0ZXJhdG9y
LCBwcm94eV0pOworICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJv
bQorICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3Rl
cCA0LgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgbHlpbmdQcm94
eV0pOworfSwgIkNvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggcmVwZWF0ZWQga2V5cyIp
OworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKKyAg
dmFyIHJlY29yZCA9IHsKKyAgICBhOiAiYiIsCisgICAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHsK
KyAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgVG9TdHJpbmcgY29udmVyc2lvbiBvZiB0aGUgdmFsdWUg
aGFwcGVucworICAgICAgLy8gYWZ0ZXIgdGhlIFRvU3RyaW5nIGNvbnZlcnNpb24gb2YgdGhlIGtl
eS4KKyAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IGFkZExvZ0VudHJ5KCJ0b1N0cmluZyIs
IFt0aGlzXSk7IHJldHVybiAibm9wZSI7IH0KKyAgICB9LAorICAgIGM6ICJkIiB9OworICB2YXIg
cHJveHkgPSBuZXcgUHJveHkocmVjb3JkLCBsb2dnaW5nSGFuZGxlcik7CisgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyB2YXIgaCA9
IG5ldyBIZWFkZXJzKHByb3h5KTsgfSk7CisKKyAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA3
KTsKKyAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRv
ciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKKyAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92
ZXJsb2FkIHJlc29sdXRpb24uCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIs
IHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOworICAvLyBUaGVuIHdlIGhhdmUgdGhl
IFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQorICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8v
d2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sx
XSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7CisgIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHld
XSBmcm9tIHN0ZXAgNS4xLgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOworICAvLyBUaGVuIHRoZSBbW0dldF1d
IGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJl
Y29yZCwgImEiLCBwcm94eV0pOworICAvLyBUaGVuIHRoZSBzZWNvbmQgW1tHZXRPd25Qcm9wZXJ0
eV1dIGZyb20gc3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbImdldE93
blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImMiXSk7CisgIC8vIFRoZW4gdGhlIHNlY29u
ZCBbW0dldF1dIGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzVdLCBb
ImdldCIsIHJlY29yZCwgImMiLCBwcm94eV0pOworICAvLyBUaGVuIHRoZSB0aGlyZCBbW0dldE93
blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNl0s
IFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFN5bWJvbC50b1N0cmluZ1RhZ10pOworICAvLyBUaGVuIHdlIHRocm93IGFu
IGV4Y2VwdGlvbiBjb252ZXJ0aW5nIHRoZSBTeW1ib2wgdG8gYSBzdHJpbmcsIGJlZm9yZSB3ZSBk
bworICAvLyB0aGUgdGhpcmQgW1tHZXRdXS4KK30sICJCYXNpYyBvcGVyYXRpb24gd2l0aCBTeW1i
b2wga2V5cyIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFy
TG9nKTsKKyAgdmFyIHJlY29yZCA9IHsKKyAgICBhOiB7CisgICAgICB0b1N0cmluZzogZnVuY3Rp
b24oKSB7IGFkZExvZ0VudHJ5KCJ0b1N0cmluZyIsIFt0aGlzXSk7IHJldHVybiAiYiI7IH0KKyAg
ICB9LAorICAgIFtTeW1ib2wudG9TdHJpbmdUYWddOiB7CisgICAgICB0b1N0cmluZzogZnVuY3Rp
b24gKCkgeyBhZGRMb2dFbnRyeSgidG9TdHJpbmciLCBbdGhpc10pOyByZXR1cm4gIm5vcGUiOyB9
CisgICAgfSwKKyAgICBjOiB7CisgICAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7IGFkZExvZ0Vu
dHJ5KCJ0b1N0cmluZyIsIFt0aGlzXSk7IHJldHVybiAiZCI7IH0KKyAgICB9CisgIH07CisgIC8v
IE5vdyBtYWtlIHRoYXQgU3ltYm9sLW5hbWVkIHByb3BlcnR5IG5vdCBlbnVtZXJhYmxlLgorICBP
YmplY3QuZGVmaW5lUHJvcGVydHkocmVjb3JkLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgZW51bWVy
YWJsZTogZmFsc2UgfSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoUmVmbGVjdC5vd25LZXlzKHJl
Y29yZCksCisgICAgICAgICAgICAgICAgICAgICAgWyJhIiwgImMiLCBTeW1ib2wudG9TdHJpbmdU
YWddKTsKKworICB2YXIgcHJveHkgPSBuZXcgUHJveHkocmVjb3JkLCBsb2dnaW5nSGFuZGxlcik7
CisgIHZhciBoID0gbmV3IEhlYWRlcnMocHJveHkpOworCisgIGFzc2VydF9lcXVhbHMobG9nLmxl
bmd0aCwgOSk7CisgIC8vIFRoZSBmaXJzdCB0aGluZyBpcyB0aGUgW1tHZXRdXSBvZiBTeW1ib2wu
aXRlcmF0b3IgdG8gZmlndXJlIG91dCB3aGV0aGVyCisgIC8vIHdlJ3JlIGEgc2VxdWVuY2UsIGR1
cmluZyBvdmVybG9hZCByZXNvbHV0aW9uLgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwg
WyJnZXQiLCByZWNvcmQsIFN5bWJvbC5pdGVyYXRvciwgcHJveHldKTsKKyAgLy8gVGhlbiB3ZSBo
YXZlIHRoZSBbW093blByb3BlcnR5S2V5c11dIGZyb20KKyAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0
aHViLmlvL3dlYmlkbC8jZXMtdG8tcmVjb3JkIHN0ZXAgNC4KKyAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbMV0sIFsib3duS2V5cyIsIHJlY29yZF0pOworICAvLyBUaGVuIHRoZSBbW0dldE93blBy
b3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFsi
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLCAiYSJdKTsKKyAgLy8gVGhlbiB0aGUg
W1tHZXRdXSBmcm9tIHN0ZXAgNS4yLgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1szXSwgWyJn
ZXQiLCByZWNvcmQsICJhIiwgcHJveHldKTsKKyAgLy8gVGhlbiB0aGUgVG9TdHJpbmcgb24gdGhl
IHZhbHVlLgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s0XSwgWyJ0b1N0cmluZyIsIHJlY29y
ZC5hXSk7CisgIC8vIFRoZW4gdGhlIHNlY29uZCBbW0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVw
IDUuMS4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0sIFsiZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yIiwgcmVjb3JkLCAiYyJdKTsKKyAgLy8gVGhlbiB0aGUgc2Vjb25kIFtbR2V0XV0gZnJv
bSBzdGVwIDUuMi4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNl0sIFsiZ2V0IiwgcmVjb3Jk
LCAiYyIsIHByb3h5XSk7CisgIC8vIFRoZW4gdGhlIFRvU3RyaW5nIG9uIHRoZSB2YWx1ZS4KKyAg
YXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbN10sIFsidG9TdHJpbmciLCByZWNvcmQuY10pOworICAv
LyBUaGVuIHRoZSB0aGlyZCBbW0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KKyAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhsb2dbOF0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVj
b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbC50b1N0cmluZ1RhZ10p
OworICAvLyBObyBbW0dldF1dIGJlY2F1c2Ugbm90IGVudW1lcmFibGUuCisKKyAgLy8gQ2hlY2sg
dGhlIHJlc3VsdHMuCisgIGFzc2VydF9lcXVhbHMoWy4uLmhdLmxlbmd0aCwgMik7CisgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoWy4uLmgua2V5cygpXSwgWyJhIiwgImMiXSk7CisgIGFzc2VydF90cnVl
KGguaGFzKCJhIikpOworICBhc3NlcnRfZXF1YWxzKGguZ2V0KCJhIiksICJiIik7CisgIGFzc2Vy
dF90cnVlKGguaGFzKCJjIikpOworICBhc3NlcnRfZXF1YWxzKGguZ2V0KCJjIiksICJkIik7Cit9
LCAiT3BlcmF0aW9uIHdpdGggbm9uLWVudW1lcmFibGUgU3ltYm9sIGtleXMiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVycy1yZWNvcmQuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hl
YWRlcnMtcmVjb3JkLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwMmU2MjE1
MjFmM2RhODUyYzU0N2JmMThhMmU2ZWUwZTY0ZDc4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJz
L2hlYWRlcnMtcmVjb3JkLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAK
KworUEFTUyBQYXNzaW5nIG5vdGhpbmcgdG8gSGVhZGVycyBjb25zdHJ1Y3RvcgorUEFTUyBQYXNz
aW5nIHVuZGVmaW5lZCB0byBIZWFkZXJzIGNvbnN0cnVjdG9yCitQQVNTIFBhc3NpbmcgbnVsbCB0
byBIZWFkZXJzIGNvbnN0cnVjdG9yCitQQVNTIEJhc2ljIG9wZXJhdGlvbiB3aXRoIG9uZSBwcm9w
ZXJ0eQorUEFTUyBCYXNpYyBvcGVyYXRpb24gd2l0aCBvbmUgcHJvcGVydHkgYW5kIGEgcHJvdG8K
K1BBU1MgQ29ycmVjdCBvcGVyYXRpb24gb3JkZXJpbmcgd2l0aCB0d28gcHJvcGVydGllcworUEFT
UyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHR3byBwcm9wZXJ0aWVzIG9uZSBvZiB3
aGljaCBoYXMgYW4gaW52YWxpZCBuYW1lCitQQVNTIENvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5n
IHdpdGggdHdvIHByb3BlcnRpZXMgb25lIG9mIHdoaWNoIGhhcyBhbiBpbnZhbGlkIHZhbHVlCitQ
QVNTIENvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggbm9uLWVudW1lcmFibGUgcHJvcGVy
dGllcworUEFTUyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHVuZGVmaW5lZCBkZXNj
cmlwdG9ycworUEFTUyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHJlcGVhdGVkIGtl
eXMKK1BBU1MgQmFzaWMgb3BlcmF0aW9uIHdpdGggU3ltYm9sIGtleXMKK1BBU1MgT3BlcmF0aW9u
IHdpdGggbm9uLWVudW1lcmFibGUgU3ltYm9sIGtleXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFk
ZXJzLXJlY29yZC5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtcmVjb3JkLmFueS53b3Jr
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0
OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC5hbnkud29ya2VyLmh0
bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0
ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aGVhZGVycy9oZWFkZXJzLXJlY29yZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjN2Q4ZDk5YTcwOTVlYmI2YjVkM2UzMTU0YWM2OTEwOGU4MTk2OThmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1yZWNvcmQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDM2MCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRh
IGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+PC90aXRsZT4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBsb2cgPSBbXTsKLWZ1bmN0aW9u
IGNsZWFyTG9nKCkgewotICBsb2cgPSBbXTsKLX0KLWZ1bmN0aW9uIGFkZExvZ0VudHJ5KG5hbWUs
IGFyZ3MpIHsKLSAgbG9nLnB1c2goWyBuYW1lLCAuLi5hcmdzIF0pOwotfQotCi12YXIgbG9nZ2lu
Z0hhbmRsZXIgPSB7Ci19OwotCi1zZXR1cChmdW5jdGlvbigpIHsKLSAgZm9yIChsZXQgcHJvcCBv
ZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhSZWZsZWN0KSkgewotICAgIGxvZ2dpbmdIYW5k
bGVyW3Byb3BdID0gZnVuY3Rpb24oLi4uYXJncykgewotICAgICAgYWRkTG9nRW50cnkocHJvcCwg
YXJncyk7Ci0gICAgICByZXR1cm4gUmVmbGVjdFtwcm9wXSguLi5hcmdzKTsKLSAgICB9Ci0gIH0K
LX0pOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB2YXIgaCA9IG5ldyBIZWFkZXJzKCk7Ci0gIGFz
c2VydF9lcXVhbHMoWy4uLmhdLmxlbmd0aCwgMCk7Ci19LCAiUGFzc2luZyBub3RoaW5nIHRvIEhl
YWRlcnMgY29uc3RydWN0b3IiKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgdmFyIGggPSBuZXcg
SGVhZGVycyh1bmRlZmluZWQpOwotICBhc3NlcnRfZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDApOwot
fSwgIlBhc3NpbmcgdW5kZWZpbmVkIHRvIEhlYWRlcnMgY29uc3RydWN0b3IiKTsKLQotdGVzdChm
dW5jdGlvbigpIHsKLSAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewot
ICAgIHZhciBoID0gbmV3IEhlYWRlcnMobnVsbCk7Ci0gIH0pOwotfSwgIlBhc3NpbmcgbnVsbCB0
byBIZWFkZXJzIGNvbnN0cnVjdG9yIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gIHRoaXMuYWRk
X2NsZWFudXAoY2xlYXJMb2cpOwotICB2YXIgcmVjb3JkID0geyBhOiAiYiIgfTsKLSAgdmFyIHBy
b3h5ID0gbmV3IFByb3h5KHJlY29yZCwgbG9nZ2luZ0hhbmRsZXIpOwotICB2YXIgaCA9IG5ldyBI
ZWFkZXJzKHByb3h5KTsKLQotICBhc3NlcnRfZXF1YWxzKGxvZy5sZW5ndGgsIDQpOwotICAvLyBU
aGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtbR2V0XV0gb2YgU3ltYm9sLml0ZXJhdG9yIHRvIGZpZ3Vy
ZSBvdXQgd2hldGhlcgotICAvLyB3ZSdyZSBhIHNlcXVlbmNlLCBkdXJpbmcgb3ZlcmxvYWQgcmVz
b2x1dGlvbi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFsiZ2V0IiwgcmVjb3JkLCBT
eW1ib2wuaXRlcmF0b3IsIHByb3h5XSk7Ci0gIC8vIFRoZW4gd2UgaGF2ZSB0aGUgW1tPd25Qcm9w
ZXJ0eUtleXNdXSBmcm9tCi0gIC8vIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2Vz
LXRvLXJlY29yZCBzdGVwIDQuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbIm93bktl
eXMiLCByZWNvcmRdKTsKLSAgLy8gVGhlbiB0aGUgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3Rl
cCA1LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzJdLCBbImdldE93blByb3BlcnR5RGVz
Y3JpcHRvciIsIHJlY29yZCwgImEiXSk7Ci0gIC8vIFRoZW4gdGhlIFtbR2V0XV0gZnJvbSBzdGVw
IDUuMi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFsiZ2V0IiwgcmVjb3JkLCAiYSIs
IHByb3h5XSk7Ci0KLSAgLy8gQ2hlY2sgdGhlIHJlc3VsdHMuCi0gIGFzc2VydF9lcXVhbHMoWy4u
LmhdLmxlbmd0aCwgMSk7Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLmgua2V5cygpXSwgWyJh
Il0pOwotICBhc3NlcnRfdHJ1ZShoLmhhcygiYSIpKTsKLSAgYXNzZXJ0X2VxdWFscyhoLmdldCgi
YSIpLCAiYiIpOwotfSwgIkJhc2ljIG9wZXJhdGlvbiB3aXRoIG9uZSBwcm9wZXJ0eSIpOwotCi10
ZXN0KGZ1bmN0aW9uKCkgewotICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKLSAgdmFyIHJl
Y29yZFByb3RvID0geyBjOiAiZCIgfTsKLSAgdmFyIHJlY29yZCA9IE9iamVjdC5jcmVhdGUocmVj
b3JkUHJvdG8sIHsgYTogeyB2YWx1ZTogImIiLCBlbnVtZXJhYmxlOiB0cnVlIH0gfSk7Ci0gIHZh
ciBwcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dpbmdIYW5kbGVyKTsKLSAgdmFyIGggPSBu
ZXcgSGVhZGVycyhwcm94eSk7Ci0KLSAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA0KTsKLSAg
Ly8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBm
aWd1cmUgb3V0IHdoZXRoZXIKLSAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2Fk
IHJlc29sdXRpb24uCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29y
ZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOwotICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3du
UHJvcGVydHlLZXlzXV0gZnJvbQotICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRs
LyNlcy10by1yZWNvcmQgc3RlcCA0LgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJv
d25LZXlzIiwgcmVjb3JkXSk7Ci0gIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9t
IHN0ZXAgNS4xLgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOwotICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20g
c3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJlY29yZCwg
ImEiLCBwcm94eV0pOwotCi0gIC8vIENoZWNrIHRoZSByZXN1bHRzLgotICBhc3NlcnRfZXF1YWxz
KFsuLi5oXS5sZW5ndGgsIDEpOwotICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5oLmtleXMoKV0s
IFsiYSJdKTsKLSAgYXNzZXJ0X3RydWUoaC5oYXMoImEiKSk7Ci0gIGFzc2VydF9lcXVhbHMoaC5n
ZXQoImEiKSwgImIiKTsKLX0sICJCYXNpYyBvcGVyYXRpb24gd2l0aCBvbmUgcHJvcGVydHkgYW5k
IGEgcHJvdG8iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgdGhpcy5hZGRfY2xlYW51cChjbGVh
ckxvZyk7Ci0gIHZhciByZWNvcmQgPSB7IGE6ICJiIiwgYzogImQiIH07Ci0gIHZhciBwcm94eSA9
IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dpbmdIYW5kbGVyKTsKLSAgdmFyIGggPSBuZXcgSGVhZGVy
cyhwcm94eSk7Ci0KLSAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA2KTsKLSAgLy8gVGhlIGZp
cnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0
IHdoZXRoZXIKLSAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRp
b24uCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9s
Lml0ZXJhdG9yLCBwcm94eV0pOwotICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlL
ZXlzXV0gZnJvbQotICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1y
ZWNvcmQgc3RlcCA0LgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwg
cmVjb3JkXSk7Ci0gIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4x
LgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IiLCByZWNvcmQsICJhIl0pOwotICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIu
Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJlY29yZCwgImEiLCBwcm94
eV0pOwotICAvLyBUaGVuIHRoZSBzZWNvbmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1
LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbImdldE93blByb3BlcnR5RGVzY3Jp
cHRvciIsIHJlY29yZCwgImMiXSk7Ci0gIC8vIFRoZW4gdGhlIHNlY29uZCBbW0dldF1dIGZyb20g
c3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzVdLCBbImdldCIsIHJlY29yZCwg
ImMiLCBwcm94eV0pOwotCi0gIC8vIENoZWNrIHRoZSByZXN1bHRzLgotICBhc3NlcnRfZXF1YWxz
KFsuLi5oXS5sZW5ndGgsIDIpOwotICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5oLmtleXMoKV0s
IFsiYSIsICJjIl0pOwotICBhc3NlcnRfdHJ1ZShoLmhhcygiYSIpKTsKLSAgYXNzZXJ0X2VxdWFs
cyhoLmdldCgiYSIpLCAiYiIpOwotICBhc3NlcnRfdHJ1ZShoLmhhcygiYyIpKTsKLSAgYXNzZXJ0
X2VxdWFscyhoLmdldCgiYyIpLCAiZCIpOwotfSwgIkNvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5n
IHdpdGggdHdvIHByb3BlcnRpZXMiKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgdGhpcy5hZGRf
Y2xlYW51cChjbGVhckxvZyk7Ci0gIHZhciByZWNvcmQgPSB7IGE6ICJiIiwgIlx1RkZGRiI6ICJk
IiB9OwotICB2YXIgcHJveHkgPSBuZXcgUHJveHkocmVjb3JkLCBsb2dnaW5nSGFuZGxlcik7Ci0g
IGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKLSAgICB2YXIgaCA9IG5l
dyBIZWFkZXJzKHByb3h5KTsKLSAgfSk7Ci0KLSAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA1
KTsKLSAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRv
ciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKLSAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92
ZXJsb2FkIHJlc29sdXRpb24uCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIs
IHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOwotICAvLyBUaGVuIHdlIGhhdmUgdGhl
IFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQotICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8v
d2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sx
XSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7Ci0gIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHld
XSBmcm9tIHN0ZXAgNS4xLgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOwotICAvLyBUaGVuIHRoZSBbW0dldF1d
IGZyb20gc3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJl
Y29yZCwgImEiLCBwcm94eV0pOwotICAvLyBUaGVuIHRoZSBzZWNvbmQgW1tHZXRPd25Qcm9wZXJ0
eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbImdldE93
blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwgIlx1RkZGRiJdKTsKLSAgLy8gVGhlIHNlY29u
ZCBbW0dldF1dIG5ldmVyIGhhcHBlbnMsIGJlY2F1c2Ugd2UgY29udmVydCB0aGUgaW52YWxpZCBu
YW1lIHRvIGEKLSAgLy8gQnl0ZVN0cmluZyBmaXJzdCBhbmQgdGhyb3cuCi19LCAiQ29ycmVjdCBv
cGVyYXRpb24gb3JkZXJpbmcgd2l0aCB0d28gcHJvcGVydGllcyBvbmUgb2Ygd2hpY2ggaGFzIGFu
IGludmFsaWQgbmFtZSIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB0aGlzLmFkZF9jbGVhbnVw
KGNsZWFyTG9nKTsKLSAgdmFyIHJlY29yZCA9IHsgYTogIlx1RkZGRiIsIGM6ICJkIiB9Ci0gIHZh
ciBwcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dpbmdIYW5kbGVyKTsKLSAgYXNzZXJ0X3Ro
cm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIHZhciBoID0gbmV3IEhlYWRlcnMo
cHJveHkpOwotICB9KTsKLQotICBhc3NlcnRfZXF1YWxzKGxvZy5sZW5ndGgsIDQpOwotICAvLyBU
aGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtbR2V0XV0gb2YgU3ltYm9sLml0ZXJhdG9yIHRvIGZpZ3Vy
ZSBvdXQgd2hldGhlcgotICAvLyB3ZSdyZSBhIHNlcXVlbmNlLCBkdXJpbmcgb3ZlcmxvYWQgcmVz
b2x1dGlvbi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFsiZ2V0IiwgcmVjb3JkLCBT
eW1ib2wuaXRlcmF0b3IsIHByb3h5XSk7Ci0gIC8vIFRoZW4gd2UgaGF2ZSB0aGUgW1tPd25Qcm9w
ZXJ0eUtleXNdXSBmcm9tCi0gIC8vIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2Vz
LXRvLXJlY29yZCBzdGVwIDQuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbIm93bktl
eXMiLCByZWNvcmRdKTsKLSAgLy8gVGhlbiB0aGUgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3Rl
cCA1LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzJdLCBbImdldE93blByb3BlcnR5RGVz
Y3JpcHRvciIsIHJlY29yZCwgImEiXSk7Ci0gIC8vIFRoZW4gdGhlIFtbR2V0XV0gZnJvbSBzdGVw
IDUuMi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbM10sIFsiZ2V0IiwgcmVjb3JkLCAiYSIs
IHByb3h5XSk7Ci0gIC8vIE5vdGhpbmcgZWxzZSBhZnRlciB0aGlzLCBiZWNhdXNlIGNvbnZlcnRp
bmcgdGhlIHJlc3VsdCBvZiB0aGF0IFtbR2V0XV0gdG8gYQotICAvLyBCeXRlU3RyaW5nIHRocm93
cy4KLX0sICJDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHR3byBwcm9wZXJ0aWVzIG9u
ZSBvZiB3aGljaCBoYXMgYW4gaW52YWxpZCB2YWx1ZSIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewot
ICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKLSAgdmFyIHJlY29yZCA9IHt9OwotICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkocmVjb3JkLCAiYSIsIHsgdmFsdWU6ICJiIiwgZW51bWVyYWJsZTog
ZmFsc2UgfSk7Ci0gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZWNvcmQsICJjIiwgeyB2YWx1ZTog
ImQiLCBlbnVtZXJhYmxlOiB0cnVlIH0pOwotICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVjb3Jk
LCAiZSIsIHsgdmFsdWU6ICJmIiwgZW51bWVyYWJsZTogZmFsc2UgfSk7Ci0gIHZhciBwcm94eSA9
IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dpbmdIYW5kbGVyKTsKLSAgdmFyIGggPSBuZXcgSGVhZGVy
cyhwcm94eSk7Ci0KLSAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA2KTsKLSAgLy8gVGhlIGZp
cnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0
IHdoZXRoZXIKLSAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRp
b24uCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9s
Lml0ZXJhdG9yLCBwcm94eV0pOwotICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlL
ZXlzXV0gZnJvbQotICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1y
ZWNvcmQgc3RlcCA0LgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwg
cmVjb3JkXSk7Ci0gIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4x
LgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IiLCByZWNvcmQsICJhIl0pOwotICAvLyBObyBbW0dldF1dIGJlY2F1c2Ugbm90IGVudW1lcmFi
bGUKLSAgLy8gVGhlbiB0aGUgc2Vjb25kIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4x
LgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1szXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IiLCByZWNvcmQsICJjIl0pOwotICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIu
Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbImdldCIsIHJlY29yZCwgImMiLCBwcm94
eV0pOwotICAvLyBUaGVuIHRoZSB0aGlyZCBbW0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUu
MS4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yIiwgcmVjb3JkLCAiZSJdKTsKLSAgLy8gTm8gW1tHZXRdXSBiZWNhdXNlIG5vdCBlbnVtZXJh
YmxlCi0KLSAgLy8gQ2hlY2sgdGhlIHJlc3VsdHMuCi0gIGFzc2VydF9lcXVhbHMoWy4uLmhdLmxl
bmd0aCwgMSk7Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLmgua2V5cygpXSwgWyJjIl0pOwot
ICBhc3NlcnRfdHJ1ZShoLmhhcygiYyIpKTsKLSAgYXNzZXJ0X2VxdWFscyhoLmdldCgiYyIpLCAi
ZCIpOwotfSwgIkNvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggbm9uLWVudW1lcmFibGUg
cHJvcGVydGllcyIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB0aGlzLmFkZF9jbGVhbnVwKGNs
ZWFyTG9nKTsKLSAgdmFyIHJlY29yZCA9IHthOiAiYiIsIGM6ICJkIiwgZTogImYifTsKLSAgdmFy
IGx5aW5nSGFuZGxlciA9IHsKLSAgICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IGZ1bmN0aW9u
KHRhcmdldCwgbmFtZSkgewotICAgICAgaWYgKG5hbWUgPT0gImEiIHx8IG5hbWUgPT0gImUiKSB7
Ci0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gUmVmbGVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBuYW1lKTsKLSAgICB9Ci0gIH07Ci0g
IHZhciBseWluZ1Byb3h5ID0gbmV3IFByb3h5KHJlY29yZCwgbHlpbmdIYW5kbGVyKTsKLSAgdmFy
IHByb3h5ID0gbmV3IFByb3h5KGx5aW5nUHJveHksIGxvZ2dpbmdIYW5kbGVyKTsKLSAgdmFyIGgg
PSBuZXcgSGVhZGVycyhwcm94eSk7Ci0KLSAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA2KTsK
LSAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0
byBmaWd1cmUgb3V0IHdoZXRoZXIKLSAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJs
b2FkIHJlc29sdXRpb24uCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIGx5
aW5nUHJveHksIFN5bWJvbC5pdGVyYXRvciwgcHJveHldKTsKLSAgLy8gVGhlbiB3ZSBoYXZlIHRo
ZSBbW093blByb3BlcnR5S2V5c11dIGZyb20KLSAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlv
L3dlYmlkbC8jZXMtdG8tcmVjb3JkIHN0ZXAgNC4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
MV0sIFsib3duS2V5cyIsIGx5aW5nUHJveHldKTsKLSAgLy8gVGhlbiB0aGUgW1tHZXRPd25Qcm9w
ZXJ0eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzJdLCBbImdl
dE93blByb3BlcnR5RGVzY3JpcHRvciIsIGx5aW5nUHJveHksICJhIl0pOwotICAvLyBObyBbW0dl
dF1dIGJlY2F1c2Ugbm8gZGVzY3JpcHRvcgotICAvLyBUaGVuIHRoZSBzZWNvbmQgW1tHZXRPd25Q
cm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBb
ImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIGx5aW5nUHJveHksICJjIl0pOwotICAvLyBUaGVu
IHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRd
LCBbImdldCIsIGx5aW5nUHJveHksICJjIiwgcHJveHldKTsKLSAgLy8gVGhlbiB0aGUgdGhpcmQg
W1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzVdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIGx5aW5nUHJveHksICJlIl0pOwot
ICAvLyBObyBbW0dldF1dIGJlY2F1c2Ugbm8gZGVzY3JpcHRvcgotCi0gIC8vIENoZWNrIHRoZSBy
ZXN1bHRzLgotICBhc3NlcnRfZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDEpOwotICBhc3NlcnRfYXJy
YXlfZXF1YWxzKFsuLi5oLmtleXMoKV0sIFsiYyJdKTsKLSAgYXNzZXJ0X3RydWUoaC5oYXMoImMi
KSk7Ci0gIGFzc2VydF9lcXVhbHMoaC5nZXQoImMiKSwgImQiKTsKLX0sICJDb3JyZWN0IG9wZXJh
dGlvbiBvcmRlcmluZyB3aXRoIHVuZGVmaW5lZCBkZXNjcmlwdG9ycyIpOwotCi10ZXN0KGZ1bmN0
aW9uKCkgewotICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKLSAgdmFyIHJlY29yZCA9IHth
OiAiYiIsIGM6ICJkIn07Ci0gIHZhciBseWluZ0hhbmRsZXIgPSB7Ci0gICAgb3duS2V5czogZnVu
Y3Rpb24oKSB7Ci0gICAgICByZXR1cm4gWyAiYSIsICJjIiwgImEiLCAiYyIgXTsKLSAgICB9LAot
ICB9OwotICB2YXIgbHlpbmdQcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGx5aW5nSGFuZGxlcik7
Ci0gIHZhciBwcm94eSA9IG5ldyBQcm94eShseWluZ1Byb3h5LCBsb2dnaW5nSGFuZGxlcik7Ci0K
LSAgLy8gUmV0dXJuaW5nIGR1cGxpY2F0ZSBrZXlzIGZyb20gb3duS2V5cygpIHRocm93cyBhIFR5
cGVFcnJvci4KLSAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAg
ICAgZnVuY3Rpb24oKSB7IHZhciBoID0gbmV3IEhlYWRlcnMocHJveHkpOyB9KTsKLQotICBhc3Nl
cnRfZXF1YWxzKGxvZy5sZW5ndGgsIDIpOwotICAvLyBUaGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtb
R2V0XV0gb2YgU3ltYm9sLml0ZXJhdG9yIHRvIGZpZ3VyZSBvdXQgd2hldGhlcgotICAvLyB3ZSdy
ZSBhIHNlcXVlbmNlLCBkdXJpbmcgb3ZlcmxvYWQgcmVzb2x1dGlvbi4KLSAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2dbMF0sIFsiZ2V0IiwgbHlpbmdQcm94eSwgU3ltYm9sLml0ZXJhdG9yLCBwcm94
eV0pOwotICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQotICAv
LyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0Lgot
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgbHlpbmdQcm94eV0pOwot
fSwgIkNvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggcmVwZWF0ZWQga2V5cyIpOwotCi10
ZXN0KGZ1bmN0aW9uKCkgewotICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKLSAgdmFyIHJl
Y29yZCA9IHsKLSAgICBhOiAiYiIsCi0gICAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHsKLSAgICAg
IC8vIE1ha2Ugc3VyZSB0aGUgVG9TdHJpbmcgY29udmVyc2lvbiBvZiB0aGUgdmFsdWUgaGFwcGVu
cwotICAgICAgLy8gYWZ0ZXIgdGhlIFRvU3RyaW5nIGNvbnZlcnNpb24gb2YgdGhlIGtleS4KLSAg
ICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IGFkZExvZ0VudHJ5KCJ0b1N0cmluZyIsIFt0aGlz
XSk7IHJldHVybiAibm9wZSI7IH0KLSAgICB9LAotICAgIGM6ICJkIiB9OwotICB2YXIgcHJveHkg
PSBuZXcgUHJveHkocmVjb3JkLCBsb2dnaW5nSGFuZGxlcik7Ci0gIGFzc2VydF90aHJvd3NfanMo
VHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyB2YXIgaCA9IG5ldyBI
ZWFkZXJzKHByb3h5KTsgfSk7Ci0KLSAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA3KTsKLSAg
Ly8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBm
aWd1cmUgb3V0IHdoZXRoZXIKLSAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2Fk
IHJlc29sdXRpb24uCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29y
ZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOwotICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3du
UHJvcGVydHlLZXlzXV0gZnJvbQotICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRs
LyNlcy10by1yZWNvcmQgc3RlcCA0LgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJv
d25LZXlzIiwgcmVjb3JkXSk7Ci0gIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9t
IHN0ZXAgNS4xLgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOwotICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20g
c3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJlY29yZCwg
ImEiLCBwcm94eV0pOwotICAvLyBUaGVuIHRoZSBzZWNvbmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZy
b20gc3RlcCA1LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbImdldE93blByb3Bl
cnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImMiXSk7Ci0gIC8vIFRoZW4gdGhlIHNlY29uZCBbW0dl
dF1dIGZyb20gc3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzVdLCBbImdldCIs
IHJlY29yZCwgImMiLCBwcm94eV0pOwotICAvLyBUaGVuIHRoZSB0aGlyZCBbW0dldE93blByb3Bl
cnR5XV0gZnJvbSBzdGVwIDUuMS4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNl0sIFsiZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFN5bWJvbC50b1N0cmluZ1RhZ10pOwotICAvLyBUaGVuIHdlIHRocm93IGFuIGV4Y2Vw
dGlvbiBjb252ZXJ0aW5nIHRoZSBTeW1ib2wgdG8gYSBzdHJpbmcsIGJlZm9yZSB3ZSBkbwotICAv
LyB0aGUgdGhpcmQgW1tHZXRdXS4KLX0sICJCYXNpYyBvcGVyYXRpb24gd2l0aCBTeW1ib2wga2V5
cyIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsK
LSAgdmFyIHJlY29yZCA9IHsKLSAgICBhOiB7Ci0gICAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7
IGFkZExvZ0VudHJ5KCJ0b1N0cmluZyIsIFt0aGlzXSk7IHJldHVybiAiYiI7IH0KLSAgICB9LAot
ICAgIFtTeW1ib2wudG9TdHJpbmdUYWddOiB7Ci0gICAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkg
eyBhZGRMb2dFbnRyeSgidG9TdHJpbmciLCBbdGhpc10pOyByZXR1cm4gIm5vcGUiOyB9Ci0gICAg
fSwKLSAgICBjOiB7Ci0gICAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7IGFkZExvZ0VudHJ5KCJ0
b1N0cmluZyIsIFt0aGlzXSk7IHJldHVybiAiZCI7IH0KLSAgICB9Ci0gIH07Ci0gIC8vIE5vdyBt
YWtlIHRoYXQgU3ltYm9sLW5hbWVkIHByb3BlcnR5IG5vdCBlbnVtZXJhYmxlLgotICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkocmVjb3JkLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgZW51bWVyYWJsZTog
ZmFsc2UgfSk7Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoUmVmbGVjdC5vd25LZXlzKHJlY29yZCks
Ci0gICAgICAgICAgICAgICAgICAgICAgWyJhIiwgImMiLCBTeW1ib2wudG9TdHJpbmdUYWddKTsK
LQotICB2YXIgcHJveHkgPSBuZXcgUHJveHkocmVjb3JkLCBsb2dnaW5nSGFuZGxlcik7Ci0gIHZh
ciBoID0gbmV3IEhlYWRlcnMocHJveHkpOwotCi0gIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwg
OSk7Ci0gIC8vIFRoZSBmaXJzdCB0aGluZyBpcyB0aGUgW1tHZXRdXSBvZiBTeW1ib2wuaXRlcmF0
b3IgdG8gZmlndXJlIG91dCB3aGV0aGVyCi0gIC8vIHdlJ3JlIGEgc2VxdWVuY2UsIGR1cmluZyBv
dmVybG9hZCByZXNvbHV0aW9uLgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgWyJnZXQi
LCByZWNvcmQsIFN5bWJvbC5pdGVyYXRvciwgcHJveHldKTsKLSAgLy8gVGhlbiB3ZSBoYXZlIHRo
ZSBbW093blByb3BlcnR5S2V5c11dIGZyb20KLSAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlv
L3dlYmlkbC8jZXMtdG8tcmVjb3JkIHN0ZXAgNC4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
MV0sIFsib3duS2V5cyIsIHJlY29yZF0pOwotICAvLyBUaGVuIHRoZSBbW0dldE93blByb3BlcnR5
XV0gZnJvbSBzdGVwIDUuMS4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFsiZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLCAiYSJdKTsKLSAgLy8gVGhlbiB0aGUgW1tHZXRd
XSBmcm9tIHN0ZXAgNS4yLgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1szXSwgWyJnZXQiLCBy
ZWNvcmQsICJhIiwgcHJveHldKTsKLSAgLy8gVGhlbiB0aGUgVG9TdHJpbmcgb24gdGhlIHZhbHVl
LgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s0XSwgWyJ0b1N0cmluZyIsIHJlY29yZC5hXSk7
Ci0gIC8vIFRoZW4gdGhlIHNlY29uZCBbW0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4K
LSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
IiwgcmVjb3JkLCAiYyJdKTsKLSAgLy8gVGhlbiB0aGUgc2Vjb25kIFtbR2V0XV0gZnJvbSBzdGVw
IDUuMi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNl0sIFsiZ2V0IiwgcmVjb3JkLCAiYyIs
IHByb3h5XSk7Ci0gIC8vIFRoZW4gdGhlIFRvU3RyaW5nIG9uIHRoZSB2YWx1ZS4KLSAgYXNzZXJ0
X2FycmF5X2VxdWFscyhsb2dbN10sIFsidG9TdHJpbmciLCByZWNvcmQuY10pOwotICAvLyBUaGVu
IHRoZSB0aGlyZCBbW0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KLSAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhsb2dbOF0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbC50b1N0cmluZ1RhZ10pOwotICAv
LyBObyBbW0dldF1dIGJlY2F1c2Ugbm90IGVudW1lcmFibGUuCi0KLSAgLy8gQ2hlY2sgdGhlIHJl
c3VsdHMuCi0gIGFzc2VydF9lcXVhbHMoWy4uLmhdLmxlbmd0aCwgMik7Ci0gIGFzc2VydF9hcnJh
eV9lcXVhbHMoWy4uLmgua2V5cygpXSwgWyJhIiwgImMiXSk7Ci0gIGFzc2VydF90cnVlKGguaGFz
KCJhIikpOwotICBhc3NlcnRfZXF1YWxzKGguZ2V0KCJhIiksICJiIik7Ci0gIGFzc2VydF90cnVl
KGguaGFzKCJjIikpOwotICBhc3NlcnRfZXF1YWxzKGguZ2V0KCJjIiksICJkIik7Ci19LCAiT3Bl
cmF0aW9uIHdpdGggbm9uLWVudW1lcmFibGUgU3ltYm9sIGtleXMiKTsKLTwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
cnMtc3RydWN0dXJlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmUyYzJiNDRlNWMxMDk5YjU5YmY3N2ZkNTU3ZjYyNzA2OTM5MmMyNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtc3RydWN0dXJlLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLQotUEFTUyBIZWFkZXJz
IGhhcyBhcHBlbmQgbWV0aG9kCi1QQVNTIEhlYWRlcnMgaGFzIGRlbGV0ZSBtZXRob2QKLVBBU1Mg
SGVhZGVycyBoYXMgZ2V0IG1ldGhvZAotUEFTUyBIZWFkZXJzIGhhcyBoYXMgbWV0aG9kCi1QQVNT
IEhlYWRlcnMgaGFzIHNldCBtZXRob2QKLVBBU1MgSGVhZGVycyBoYXMgZW50cmllcyBtZXRob2QK
LVBBU1MgSGVhZGVycyBoYXMga2V5cyBtZXRob2QKLVBBU1MgSGVhZGVycyBoYXMgdmFsdWVzIG1l
dGhvZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtc3RydWN0dXJlLmFueS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9oZWFkZXJzL2hlYWRlcnMtc3RydWN0dXJlLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmUyYzJiNDRlNWMxMDk5YjU5YmY3N2ZkNTU3ZjYyNzA2OTM5MmMyNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVycy1zdHJ1Y3R1cmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACisKK1BBU1MgSGVhZGVycyBoYXMgYXBwZW5kIG1ldGhvZAorUEFTUyBIZWFkZXJzIGhhcyBk
ZWxldGUgbWV0aG9kCitQQVNTIEhlYWRlcnMgaGFzIGdldCBtZXRob2QKK1BBU1MgSGVhZGVycyBo
YXMgaGFzIG1ldGhvZAorUEFTUyBIZWFkZXJzIGhhcyBzZXQgbWV0aG9kCitQQVNTIEhlYWRlcnMg
aGFzIGVudHJpZXMgbWV0aG9kCitQQVNTIEhlYWRlcnMgaGFzIGtleXMgbWV0aG9kCitQQVNTIEhl
YWRlcnMgaGFzIHZhbHVlcyBtZXRob2QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVj
dHVyZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1zdHJ1Y3R1cmUuYW55Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2hlYWRlcnMvaGVhZGVycy1zdHJ1Y3R1cmUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRv
IHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMt
c3RydWN0dXJlLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDcyOTBlYjIwOThiMzdhNjdlMmIxODliMzEw
MTY2YmExYTZhODI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5h
bnkuanMKQEAgLTAsMCArMSwxOCBAQAorLy8gTUVUQTogdGl0bGU9SGVhZGVycyBiYXNpYworLy8g
TUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKwordmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygp
OwordmFyIG1ldGhvZHMgPSBbImFwcGVuZCIsCisgICAgICAgICAgICAgICAgImRlbGV0ZSIsCisg
ICAgICAgICAgICAgICAgImdldCIsCisgICAgICAgICAgICAgICAgImhhcyIsCisgICAgICAgICAg
ICAgICAgInNldCIsCisgICAgICAgICAgICAgICAgLy9IZWFkZXJzIGlzIGl0ZXJhYmxlCisgICAg
ICAgICAgICAgICAgImVudHJpZXMiLAorICAgICAgICAgICAgICAgICJrZXlzIiwKKyAgICAgICAg
ICAgICAgICAidmFsdWVzIgorICAgICAgICAgICAgICAgIF07Citmb3IgKHZhciBpZHggaW4gbWV0
aG9kcykKKyAgdGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnRfdHJ1ZShtZXRob2RzW2lkeF0g
aW4gaGVhZGVycywgImhlYWRlcnMgaGFzICIgKyBtZXRob2RzW2lkeF0gKyAiIG1ldGhvZCIpOwor
ICB9LCAiSGVhZGVycyBoYXMgIiArIG1ldGhvZHNbaWR4XSArICIgbWV0aG9kIik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9oZWFkZXJzL2hlYWRlcnMtc3RydWN0dXJlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVy
cy9oZWFkZXJzLXN0cnVjdHVyZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZTJjMmI0NGU1YzEwOTliNTliZjc3ZmQ1NTdmNjI3MDY5MzkyYzI3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACisKK1BBU1MgSGVhZGVycyBoYXMgYXBwZW5kIG1ldGhvZAorUEFTUyBIZWFkZXJz
IGhhcyBkZWxldGUgbWV0aG9kCitQQVNTIEhlYWRlcnMgaGFzIGdldCBtZXRob2QKK1BBU1MgSGVh
ZGVycyBoYXMgaGFzIG1ldGhvZAorUEFTUyBIZWFkZXJzIGhhcyBzZXQgbWV0aG9kCitQQVNTIEhl
YWRlcnMgaGFzIGVudHJpZXMgbWV0aG9kCitQQVNTIEhlYWRlcnMgaGFzIGtleXMgbWV0aG9kCitQ
QVNTIEhlYWRlcnMgaGFzIHZhbHVlcyBtZXRob2QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJz
LXN0cnVjdHVyZS5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtc3RydWN0dXJlLmFueS53
b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgw
YjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5hbnkud29y
a2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVj
dHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5NDQ4ZTQ1MGM5YjgwZTUzZmZmN2M1MzcyODQ3YTk1ZWNiNTUzZjI3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVy
cy1zdHJ1Y3R1cmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLTwhZG9jdHlw
ZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAg
ICA8dGl0bGU+SGVhZGVycyBiYXNpYzwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2hlYWRlcnMiPgotICAgIDxtZXRhIG5h
bWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2lkbC1pdGVy
YWJsZSI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJh
bmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgotICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJv
ZHk+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwot
ICAgICAgICB2YXIgbWV0aG9kcyA9IFsiYXBwZW5kIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ImRlbGV0ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICJnZXQiLAotICAgICAgICAgICAgICAg
ICAgICAgICAiaGFzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgInNldCIsCi0gICAgICAgICAg
ICAgICAgICAgICAgIC8vSGVhZGVycyBpcyBpdGVyYWJsZQotICAgICAgICAgICAgICAgICAgICAg
ICAiZW50cmllcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICJrZXlzIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgInZhbHVlcyIKLSAgICAgICAgICAgICAgICAgICAgICAgXTsKLSAgICAgICAg
Zm9yICh2YXIgaWR4IGluIG1ldGhvZHMpCi0gICAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgIGFzc2VydF90cnVlKG1ldGhvZHNbaWR4XSBpbiBoZWFkZXJzLCAiaGVhZGVycyBo
YXMgIiArIG1ldGhvZHNbaWR4XSArICIgbWV0aG9kIik7Ci0gICAgICAgICAgfSwgIkhlYWRlcnMg
aGFzICIgKyBtZXRob2RzW2lkeF0gKyAiIG1ldGhvZCIpOwotICAgIDwvc2NyaXB0PgotICA8L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy93M2Mt
aW1wb3J0LmxvZwppbmRleCAxZTQxYmFlMzBmNzg4NDg1NTAxMTIwMTQ5YzU3NmI1M2RkN2ViNTdm
Li41ZjY5ZmZmOWQ5NGI1MzRkNGI3MWI0ZDlmOGJiOTg0OGI2Yzc4ZWZlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFk
ZXJzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDEzICsx
NCwxMyBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKIE5vbmUK
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9y
bWFsaXplLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNp
Yy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNvbWJpbmUu
aHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLndp
bmRvdy5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxpemUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1yZWNv
cmQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1zdHJ1Y3R1cmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVl
cy1ub3JtYWxpemUuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLmFueS5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVh
ZGVycy1iYXNpYy5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY2FzaW5nLmFueS5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVh
ZGVycy1jb21iaW5lLmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMuYW55LmpzCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLW5vLWNvcnMuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vcm1hbGl6ZS5hbnkuanMKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFk
ZXJzL2hlYWRlcnMtcmVjb3JkLmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1zdHJ1Y3R1cmUuYW55Lmpz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1iYWNrLXRvLW9yaWdpbmFsLW9yaWdpbi5hbnku
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZWRpcmVjdC9yZWRpcmVjdC1iYWNrLXRvLW9yaWdpbmFsLW9yaWdpbi5hbnkuanMKaW5kZXgg
MzJkNDEzY2IyZjE2ZGI2NzUzYmQ3MWNmYTAzOTVmZjhiZDdlZmVhOS4uNzRkNzMxZjI0MjUxYzE2
YjIwNGM1MGU5ZmE4MTUyN2VlZWNjODhjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtYmFj
ay10by1vcmlnaW5hbC1vcmlnaW4uYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LWJhY2stdG8t
b3JpZ2luYWwtb3JpZ2luLmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13
aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5q
cwogCiBjb25zdCBCQVNFID0gbG9jYXRpb24uaHJlZjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGly
ZWN0LWNvdW50LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1jb3VudC5hbnktZXhw
ZWN0ZWQudHh0CmluZGV4IDE3NTE4MTc1N2M0OTY3NmRmMTE5MzgyNzM5ZGU3MDI1YThkNDI3MDAu
LjFiMjY2MDMyMmFlN2E3N2ExOWVlZjJhNDllNjNlZjIzNTg2NzBkYTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGly
ZWN0L3JlZGlyZWN0LWNvdW50LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qt
Y291bnQuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAogCi1GQUlMIFJlZGlyZWN0
IDMwMSAyMCB0aW1lcyBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSdzIHN0YXR1cyBpcyAyMDAgZXhw
ZWN0ZWQgMjAwIGJ1dCBnb3QgMzAxCi1GQUlMIFJlZGlyZWN0IDMwMSAyMSB0aW1lcyBhc3NlcnRf
dW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFj
aGFibGUgY29kZQotRkFJTCBSZWRpcmVjdCAzMDIgMjAgdGltZXMgYXNzZXJ0X2VxdWFsczogUmVz
cG9uc2UncyBzdGF0dXMgaXMgMjAwIGV4cGVjdGVkIDIwMCBidXQgZ290IDMwMgotRkFJTCBSZWRp
cmVjdCAzMDIgMjEgdGltZXMgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6
IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgUmVkaXJlY3QgMzAzIDIw
IHRpbWVzIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNlJ3Mgc3RhdHVzIGlzIDIwMCBleHBlY3RlZCAy
MDAgYnV0IGdvdCAzMDMKLUZBSUwgUmVkaXJlY3QgMzAzIDIxIHRpbWVzIGFzc2VydF91bnJlYWNo
ZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBj
b2RlCi1GQUlMIFJlZGlyZWN0IDMwNyAyMCB0aW1lcyBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSdz
IHN0YXR1cyBpcyAyMDAgZXhwZWN0ZWQgMjAwIGJ1dCBnb3QgMzA3Ci1GQUlMIFJlZGlyZWN0IDMw
NyAyMSB0aW1lcyBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZp
bmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBSZWRpcmVjdCAzMDggMjAgdGltZXMg
YXNzZXJ0X2VxdWFsczogUmVzcG9uc2UncyBzdGF0dXMgaXMgMjAwIGV4cGVjdGVkIDIwMCBidXQg
Z290IDMwOAorUEFTUyBSZWRpcmVjdCAzMDEgMjAgdGltZXMKK1BBU1MgUmVkaXJlY3QgMzAxIDIx
IHRpbWVzCitQQVNTIFJlZGlyZWN0IDMwMiAyMCB0aW1lcworUEFTUyBSZWRpcmVjdCAzMDIgMjEg
dGltZXMKK1BBU1MgUmVkaXJlY3QgMzAzIDIwIHRpbWVzCitQQVNTIFJlZGlyZWN0IDMwMyAyMSB0
aW1lcworUEFTUyBSZWRpcmVjdCAzMDcgMjAgdGltZXMKK1BBU1MgUmVkaXJlY3QgMzA3IDIxIHRp
bWVzCitQQVNTIFJlZGlyZWN0IDMwOCAyMCB0aW1lcwogUEFTUyBSZWRpcmVjdCAzMDggMjEgdGlt
ZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtY291bnQuYW55LmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVk
aXJlY3QtY291bnQuYW55LmpzCmluZGV4IDRjZTA4MGU2OTAyN2JjMTJmMTgwZGM5M2QwMGYwZTdj
OTY4MzAyMmMuLmRkYTVkN2Y1MjkwMWFlNGY3MzZlOGRlZmJkNzY5NjNiZGViODYyNTkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlZGlyZWN0L3JlZGlyZWN0LWNvdW50LmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1j
b3VudC5hbnkuanMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtl
cgogLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcwogLy8gTUVUQTogc2NyaXB0
PS9jb21tb24vdXRpbHMuanMKIC8vIE1FVEE6IHRpbWVvdXQ9bG9uZwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJl
Y3QvcmVkaXJlY3QtY291bnQuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVj
dC1jb3VudC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBkMDAzZDRhMmI3ZjdlNTYwNjM5
YWM1MjYzYTYxOTA2MGMzYjQ3OGRjLi4xYjI2NjAzMjJhZTdhNzdhMTllZWYyYTQ5ZTYzZWYyMzU4
NjcwZGE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1jb3VudC5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1jb3VudC5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtMSwxMiArMSwxMiBAQAogCi1GQUlMIFJlZGlyZWN0IDMwMSAyMCB0aW1lcyBhc3NlcnRf
ZXF1YWxzOiBSZXNwb25zZSdzIHN0YXR1cyBpcyAyMDAgZXhwZWN0ZWQgMjAwIGJ1dCBnb3QgMzAx
Ci1GQUlMIFJlZGlyZWN0IDMwMSAyMSB0aW1lcyBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2
ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBSZWRp
cmVjdCAzMDIgMjAgdGltZXMgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UncyBzdGF0dXMgaXMgMjAw
IGV4cGVjdGVkIDIwMCBidXQgZ290IDMwMgotRkFJTCBSZWRpcmVjdCAzMDIgMjEgdGltZXMgYXNz
ZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVu
cmVhY2hhYmxlIGNvZGUKLUZBSUwgUmVkaXJlY3QgMzAzIDIwIHRpbWVzIGFzc2VydF9lcXVhbHM6
IFJlc3BvbnNlJ3Mgc3RhdHVzIGlzIDIwMCBleHBlY3RlZCAyMDAgYnV0IGdvdCAzMDMKLUZBSUwg
UmVkaXJlY3QgMzAzIDIxIHRpbWVzIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVj
dGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIFJlZGlyZWN0IDMw
NyAyMCB0aW1lcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IHRvbyBtYW55IEhUVFAgcmVkaXJlY3RzIgotRkFJTCBSZWRpcmVj
dCAzMDcgMjEgdGltZXMgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVu
ZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgUmVkaXJlY3QgMzA4IDIwIHRp
bWVzIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNlJ3Mgc3RhdHVzIGlzIDIwMCBleHBlY3RlZCAyMDAg
YnV0IGdvdCAzMDgKLUZBSUwgUmVkaXJlY3QgMzA4IDIxIHRpbWVzIGFzc2VydF91bnJlYWNoZWQ6
IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2Rl
CitQQVNTIFJlZGlyZWN0IDMwMSAyMCB0aW1lcworUEFTUyBSZWRpcmVjdCAzMDEgMjEgdGltZXMK
K1BBU1MgUmVkaXJlY3QgMzAyIDIwIHRpbWVzCitQQVNTIFJlZGlyZWN0IDMwMiAyMSB0aW1lcwor
UEFTUyBSZWRpcmVjdCAzMDMgMjAgdGltZXMKK1BBU1MgUmVkaXJlY3QgMzAzIDIxIHRpbWVzCitQ
QVNTIFJlZGlyZWN0IDMwNyAyMCB0aW1lcworUEFTUyBSZWRpcmVjdCAzMDcgMjEgdGltZXMKK1BB
U1MgUmVkaXJlY3QgMzA4IDIwIHRpbWVzCitQQVNTIFJlZGlyZWN0IDMwOCAyMSB0aW1lcwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1lbXB0eS1sb2NhdGlvbi5hbnkuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9y
ZWRpcmVjdC1lbXB0eS1sb2NhdGlvbi5hbnkuanMKaW5kZXggNzliMDRmNWM1ZWMyNzFmMWZkM2Ix
NzM3OGNjYzk3MGNhMWMzZmFiMy4uNDg3ZjRkNDJlOTIzOWYxMzE5YmZmNmE4Y2JjNDZiYjExMjMx
YmU2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtZW1wdHktbG9jYXRpb24uYW55LmpzCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlZGlyZWN0L3JlZGlyZWN0LWVtcHR5LWxvY2F0aW9uLmFueS5qcwpAQCAtMSwzICsxLDQgQEAK
Ky8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3Vy
Y2VzL3V0aWxzLmpzCiAKIC8vIFRlc3RzIHJlY2VpdmluZyBhIHJlZGlyZWN0IHJlc3BvbnNlIHdp
dGggYSBMb2NhdGlvbiBoZWFkZXIgd2l0aCBhbiBlbXB0eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVk
aXJlY3QtbG9jYXRpb24tZXNjYXBlLnRlbnRhdGl2ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1s
b2NhdGlvbi1lc2NhcGUudGVudGF0aXZlLmFueS5qcwppbmRleCAyOTc1ZTVmZTFhOTc1OGU0NWQ0
YWJmN2ZlZWNlYjBiMmI1OGUyNTdkLi43NzlhZDcwNTc5MzdmNjNjMDJjN2FkYzg5ZjM5Yjg5MGM2
OGQ0ODk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1sb2NhdGlvbi1lc2NhcGUudGVudGF0
aXZlLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1sb2NhdGlvbi1lc2NhcGUudGVudGF0aXZl
LmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAv
LyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIC8vIFNlZSBodHRwczovL2dp
dGh1Yi5jb20vd2hhdHdnL2ZldGNoL2lzc3Vlcy84ODMgZm9yIHRoZSBiZWhhdmlvciBjb3ZlcmVk
IGJ5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1sb2NhdGlvbi5hbnkuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9y
ZWRpcmVjdC1sb2NhdGlvbi5hbnkuanMKaW5kZXggOTFkYTI2MDIxZDA5YTAyNTRiN2U1NzFiOWVl
MTEyZmUxMDgwZDYwZi4uNWNiNmNjMjgwYzRjZDVmZGRiNjJmZDhiYTI5ZDk0Mjg5NDQ2MGQ0ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtbG9jYXRpb24uYW55LmpzCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3Jl
ZGlyZWN0LWxvY2F0aW9uLmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13
aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIGZ1
bmN0aW9uIHJlZGlyZWN0TG9jYXRpb24oZGVzYywgcmVkaXJlY3RVcmwsIHJlZGlyZWN0TG9jYXRp
b24sIHJlZGlyZWN0U3RhdHVzLCByZWRpcmVjdE1vZGUsIHNob3VsZFBhc3MpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlZGlyZWN0L3JlZGlyZWN0LW1ldGhvZC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1tZXRob2Qu
YW55LmpzCmluZGV4IGIyNGJiMDkyYzYwM2EyZjJjNjk0MmE5YzZiM2FiNTkzNmE3ZTE2ODcuLjlm
ZTA4NmE5ZGI3MThhNWRlODc1NmU0YjhhMzgzMGFlNDExODcxZTAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0
L3JlZGlyZWN0LW1ldGhvZC5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtbWV0aG9kLmFueS5q
cwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRB
OiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIC8vIENyZWF0ZXMgYSBwcm9taXNlX3Rl
c3QgdGhhdCBmZXRjaGVzIGEgVVJMIHRoYXQgcmV0dXJucyBhIHJlZGlyZWN0IHJlc3BvbnNlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtcmVmZXJyZXItb3ZlcnJpZGUuYW55LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlZGlyZWN0L3JlZGlyZWN0LXJlZmVycmVyLW92ZXJyaWRlLmFueS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTRlYTI4ODM1NTEyNGFjMTNlZWJjNGE5YzE2YTQ2YmFlNzkzYmEwOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXJlZmVycmVyLW92ZXJyaWRlLmFueS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMzAgQEAKKworUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlv
biwgbm8tcmVmZXJyZXIgaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENy
b3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgbm8tcmVmZXJyZXIgcmVk
aXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBp
bml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBuby1yZWZlcnJlci13aGVu
LWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24s
IG5vLXJlZmVycmVyIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3Jp
Z2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVy
CitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBvcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRp
cmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGly
ZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5p
dCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVj
dGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNT
IFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBzdHJpY3Qtb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVy
cmVyIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2lu
IHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5v
LXJlZmVycmVyIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3Qg
aGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCB1
bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24s
IG5vLXJlZmVycmVyIGluaXQsIHVuc2FmZS11cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUg
b3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0LCBuby1y
ZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBu
by1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFk
ZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdy
YWRlIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFT
UyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGlu
aXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1l
IG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgb3Jp
Z2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJl
ZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1Mg
U2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQs
IG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3Jp
Z2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0LCBvcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGly
ZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0LCBzYW1lLW9yaWdpbiByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13
aGVuLWRvd25ncmFkZSBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2Ft
ZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIHN0
cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlv
biwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVj
dCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4t
ZG93bmdyYWRlIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3Qg
aGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1k
b3duZ3JhZGUgaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93
bmdyYWRlIGluaXQsIHVuc2FmZS11cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdp
biByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgdW5zYWZlLXVy
bCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBp
bml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGly
ZWN0aW9uLCBvcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNh
bWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3du
Z3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgb3Jp
Z2luIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFT
UyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQsIG9yaWdpbiByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGlu
aXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mg
b3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGlu
aXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJl
Y3Rpb24sIG9yaWdpbiBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2Ft
ZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0
IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCBzdHJp
Y3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwg
b3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVh
ZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQsIHN0cmljdC1v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2lu
IHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BB
U1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgdW5zYWZlLXVybCByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNy
b3NzLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mg
b3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgbm8tcmVm
ZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmln
aW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVk
aXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4t
Y3Jvc3Mtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhl
YWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGly
ZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhl
YWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1Mg
Q3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwg
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdp
biByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1Mg
U2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBz
dHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rp
b24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0
IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVh
ZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVy
CitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4g
aW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGly
ZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgdW5zYWZlLXVybCByZWRpcmVj
dCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2luIGluaXQs
IG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rp
b24sIHNhbWUtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBT
YW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlv
biwgc2FtZS1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3Qg
aGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBv
cmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc2Ft
ZS1vcmlnaW4gaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiBy
ZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2lu
IGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2Ft
ZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2luIHJlZGly
ZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2luIGlu
aXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVj
dGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BB
U1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3Jp
Z2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1v
cmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFk
ZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBzdHJp
Y3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9y
aWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCB1
bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwg
c3RyaWN0LW9yaWdpbiBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdp
biBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1Mg
Q3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVy
LXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVj
dGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENy
b3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCBvcmlnaW4gcmVkaXJl
Y3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGlu
aXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mg
b3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIG9yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0
cmljdC1vcmlnaW4gaW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3Nz
IG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCBzYW1lLW9yaWdpbiByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4g
aW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJl
ZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVh
ZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIHN0
cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3Nz
IG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luLXdo
ZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVj
dGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFT
UyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwgdW5zYWZlLXVy
bCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVy
CitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbiBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmln
aW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgbm8t
cmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdp
biByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBuby1y
ZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4g
cmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFT
UyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdp
biBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENy
b3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBp
bml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUg
b3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQs
IHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rp
b24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgc2FtZS1vcmlnaW4gcmVk
aXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQ
QVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdp
biByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBzdHJp
Y3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBv
cmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwg
c3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2Ft
ZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5p
dCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0
aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHVuc2FmZS11cmwgcmVk
aXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGlu
aXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJl
Y3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNT
IFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIG5vLXJlZmVycmVyLXdo
ZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rp
b24sIHVuc2FmZS11cmwgaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3Qg
aGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIG9y
aWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNh
ZmUtdXJsIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVk
aXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGly
ZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5p
dCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9y
aWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIHNh
bWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwg
dW5zYWZlLXVybCBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9z
cyBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgc3RyaWN0LW9yaWdpbiByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5p
dCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1Mg
Q3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIHN0cmljdC1vcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGly
ZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIHVuc2FmZS11cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNT
IENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCB1bnNhZmUtdXJsIHJl
ZGlyZWN0IGhlYWRlcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1yZWZlcnJlci1vdmVy
cmlkZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXJlZmVycmVyLW92ZXJyaWRlLmFueS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1yZWZlcnJlci1vdmVycmlkZS5hbnkuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1yZWZlcnJlci1v
dmVycmlkZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1yZWZlcnJlci1vdmVycmlkZS5hbnkuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTZlNTVkNzllMTQxZmQ5MDEyNGMyZDVlYTRjZWY0MTllZThhOWNiZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXJlZmVycmVyLW92ZXJyaWRlLmFueS5qcwpA
QCAtMCwwICsxLDEwNCBAQAorLy8gTUVUQTogdGltZW91dD1sb25nCisvLyBNRVRBOiBzY3JpcHQ9
L2NvbW1vbi91dGlscy5qcworLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcwor
Ly8gTUVUQTogc2NyaXB0PS9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMKKworZnVuY3Rpb24g
Z2V0RXhwZWN0YXRpb24oZXhwZWN0YXRpb25zLCBpbml0LCBpbml0U2NlbmFyaW8sIHJlZGlyZWN0
UG9saWN5LCByZWRpcmVjdFNjZW5hcmlvKSB7CisgIGxldCBwb2xpY2llcyA9IFsKKyAgICBleHBl
Y3RhdGlvbnNbaW5pdFBvbGljeV1baW5pdFNjZW5hcmlvXSwKKyAgICBleHBlY3RhdGlvbnNbcmVk
aXJlY3RQb2xpY3ldW3JlZGlyZWN0U2NlbmFyaW9dCisgIF07CisKKyAgaWYgKHBvbGljaWVzLmlu
Y2x1ZGVzKCJvbWl0dGVkIikpIHsKKyAgICByZXR1cm4gbnVsbDsKKyAgfSBlbHNlIGlmIChwb2xp
Y2llcy5pbmNsdWRlcygib3JpZ2luIikpIHsKKyAgICByZXR1cm4gcmVmZXJyZXJPcmlnaW47Cisg
IH0gZWxzZSB7CisgICAgLy8gInN0cmlwcGVkLXJlZmVycmVyIgorICAgIHJldHVybiByZWZlcnJl
clVybDsKKyAgfQorfQorCitmdW5jdGlvbiB0ZXN0UmVmZXJyZXJBZnRlclJlZGlyZWN0aW9uKGRl
c2MsIHJlZGlyZWN0VXJsLCByZWRpcmVjdExvY2F0aW9uLCByZWZlcnJlclBvbGljeSwgcmVkaXJl
Y3RSZWZlcnJlclBvbGljeSwgZXhwZWN0ZWRSZWZlcnJlcikgeworICB2YXIgdXJsID0gcmVkaXJl
Y3RVcmw7CisgIHZhciB1cmxQYXJhbWV0ZXJzID0gIj9sb2NhdGlvbj0iICsgZW5jb2RlVVJJQ29t
cG9uZW50KHJlZGlyZWN0TG9jYXRpb24pOworICB2YXIgZGVzY3JpcHRpb24gPSBkZXNjICsgIiwg
IiArIHJlZmVycmVyUG9saWN5ICsgIiBpbml0LCAiICsgcmVkaXJlY3RSZWZlcnJlclBvbGljeSAr
ICIgcmVkaXJlY3QgaGVhZGVyICI7CisKKyAgaWYgKHJlZGlyZWN0UmVmZXJyZXJQb2xpY3kpCisg
ICAgdXJsUGFyYW1ldGVycyArPSAiJnJlZGlyZWN0X3JlZmVycmVycG9saWN5PSIgKyByZWRpcmVj
dFJlZmVycmVyUG9saWN5OworCisgIHZhciByZXF1ZXN0SW5pdCA9IHsicmVkaXJlY3QiOiAiZm9s
bG93IiwgInJlZmVycmVyUG9saWN5IjogcmVmZXJyZXJQb2xpY3l9OworICAgIHByb21pc2VfdGVz
dChmdW5jdGlvbih0ZXN0KSB7CisgICAgICByZXR1cm4gZmV0Y2godXJsICsgdXJsUGFyYW1ldGVy
cywgcmVxdWVzdEluaXQpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZXNwb25zZS5zdGF0dXMsIDIwMCwgIkluc3BlY3QgaGVhZGVyIHJlc3BvbnNlJ3Mg
c3RhdHVzIGlzIDIwMCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMu
Z2V0KCJ4LXJlcXVlc3QtcmVmZXJlciIpLCBleHBlY3RlZFJlZmVycmVyID8gZXhwZWN0ZWRSZWZl
cnJlciA6IG51bGwsICJDaGVjayByZWZlcnJlciBoZWFkZXIiKTsKKyAgICAgIH0pOworICAgIH0s
IGRlc2NyaXB0aW9uKTsKK30KKwordmFyIHJlZmVycmVyT3JpZ2luID0gZ2V0X2hvc3RfaW5mbygp
LkhUVFBfT1JJR0lOICsgIi8iOwordmFyIHJlZmVycmVyVXJsID0gbG9jYXRpb24uaHJlZjsKKwor
dmFyIHJlZGlyZWN0VXJsID0gUkVTT1VSQ0VTX0RJUiArICJyZWRpcmVjdC5weSI7Cit2YXIgbG9j
YXRpb25VcmwgPSBnZXRfaG9zdF9pbmZvKCkuSFRUUF9PUklHSU4gKyBkaXJuYW1lKGxvY2F0aW9u
LnBhdGhuYW1lKSArIFJFU09VUkNFU19ESVIgKyAiaW5zcGVjdC1oZWFkZXJzLnB5P2hlYWRlcnM9
cmVmZXJlciI7Cit2YXIgY3Jvc3NMb2NhdGlvblVybCA9IGdldF9ob3N0X2luZm8oKS5IVFRQX1JF
TU9URV9PUklHSU4gKyBkaXJuYW1lKGxvY2F0aW9uLnBhdGhuYW1lKSArIFJFU09VUkNFU19ESVIg
KyAiaW5zcGVjdC1oZWFkZXJzLnB5P2NvcnMmaGVhZGVycz1yZWZlcmVyIjsKKwordmFyIGV4cGVj
dGF0aW9ucyA9IHsKKyAgIm5vLXJlZmVycmVyIjogeworICAgICJzYW1lLW9yaWdpbiI6ICJvbWl0
dGVkIiwKKyAgICAiY3Jvc3Mtb3JpZ2luIjogIm9taXR0ZWQiCisgIH0sCisgICJuby1yZWZlcnJl
ci13aGVuLWRvd25ncmFkZSI6IHsKKyAgICAic2FtZS1vcmlnaW4iOiAic3RyaXBwZWQtcmVmZXJy
ZXIiLAorICAgICJjcm9zcy1vcmlnaW4iOiAic3RyaXBwZWQtcmVmZXJyZXIiCisgIH0sCisgICJv
cmlnaW4iOiB7CisgICAgInNhbWUtb3JpZ2luIjogIm9yaWdpbiIsCisgICAgImNyb3NzLW9yaWdp
biI6ICJvcmlnaW4iCisgIH0sCisgICJvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iOiB7CisgICAg
InNhbWUtb3JpZ2luIjogInN0cmlwcGVkLXJlZmVycmVyIiwKKyAgICAiY3Jvc3Mtb3JpZ2luIjog
Im9yaWdpbiIsCisgIH0sCisgICJzYW1lLW9yaWdpbiI6IHsKKyAgICAic2FtZS1vcmlnaW4iOiAi
c3RyaXBwZWQtcmVmZXJyZXIiLAorICAgICJjcm9zcy1vcmlnaW4iOiAib21pdHRlZCIKKyAgfSwK
KyAgInN0cmljdC1vcmlnaW4iOiB7CisgICAgInNhbWUtb3JpZ2luIjogIm9yaWdpbiIsCisgICAg
ImNyb3NzLW9yaWdpbiI6ICJvcmlnaW4iCisgIH0sCisgICJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jv
c3Mtb3JpZ2luIjogeworICAgICJzYW1lLW9yaWdpbiI6ICJzdHJpcHBlZC1yZWZlcnJlciIsCisg
ICAgImNyb3NzLW9yaWdpbiI6ICJvcmlnaW4iCisgIH0sCisgICJ1bnNhZmUtdXJsIjogeworICAg
ICJzYW1lLW9yaWdpbiI6ICJzdHJpcHBlZC1yZWZlcnJlciIsCisgICAgImNyb3NzLW9yaWdpbiI6
ICJzdHJpcHBlZC1yZWZlcnJlciIKKyAgfQorfTsKKworZm9yICh2YXIgaW5pdFBvbGljeSBpbiBl
eHBlY3RhdGlvbnMpIHsKKyAgZm9yICh2YXIgcmVkaXJlY3RQb2xpY3kgaW4gZXhwZWN0YXRpb25z
KSB7CisKKyAgICAvLyBSZWRpcmVjdCB0byBzYW1lLW9yaWdpbiBVUkwKKyAgICB0ZXN0UmVmZXJy
ZXJBZnRlclJlZGlyZWN0aW9uKAorICAgICAgIlNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uIiwKKyAg
ICAgIHJlZGlyZWN0VXJsLAorICAgICAgbG9jYXRpb25VcmwsCisgICAgICBpbml0UG9saWN5LAor
ICAgICAgcmVkaXJlY3RQb2xpY3ksCisgICAgICBnZXRFeHBlY3RhdGlvbihleHBlY3RhdGlvbnMs
IGluaXRQb2xpY3ksICJzYW1lLW9yaWdpbiIsIHJlZGlyZWN0UG9saWN5LCAic2FtZS1vcmlnaW4i
KSk7CisKKyAgICAvLyBSZWRpcmVjdCB0byBjcm9zcy1vcmlnaW4gVVJMCisgICAgdGVzdFJlZmVy
cmVyQWZ0ZXJSZWRpcmVjdGlvbigKKyAgICAgICJDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24iLAor
ICAgICAgcmVkaXJlY3RVcmwsCisgICAgICBjcm9zc0xvY2F0aW9uVXJsLAorICAgICAgaW5pdFBv
bGljeSwKKyAgICAgIHJlZGlyZWN0UG9saWN5LAorICAgICAgZ2V0RXhwZWN0YXRpb24oZXhwZWN0
YXRpb25zLCBpbml0UG9saWN5LCAic2FtZS1vcmlnaW4iLCByZWRpcmVjdFBvbGljeSwgImNyb3Nz
LW9yaWdpbiIpKTsKKyAgfQorfQorCitkb25lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVj
dC1yZWZlcnJlci1vdmVycmlkZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGly
ZWN0LXJlZmVycmVyLW92ZXJyaWRlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk0ZWEyODgzNTUxMjRhYzEzZWViYzRhOWMxNmE0NmJhZTc5M2JhMDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZWRpcmVjdC9yZWRpcmVjdC1yZWZlcnJlci1vdmVycmlkZS5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEzMCBAQAorCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBu
by1yZWZlcnJlciBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mg
b3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBuby1yZWZlcnJlciByZWRpcmVj
dCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQs
IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBv
cmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93
bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8t
cmVmZXJyZXIgaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4g
cmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BB
U1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIG9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0
aW9uLCBuby1yZWZlcnJlciBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3Qg
aGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBz
YW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9u
LCBuby1yZWZlcnJlciBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2Ft
ZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIHN0cmljdC1vcmlnaW4gcmVk
aXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIg
aW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVk
aXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVm
ZXJyZXIgaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFk
ZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIHVuc2Fm
ZS11cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8t
cmVmZXJyZXIgaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmln
aW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIG5vLXJlZmVy
cmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJl
ZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgor
UEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUg
aW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENy
b3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwg
bm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3Jp
Z2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0LCBvcmlnaW4g
cmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJy
ZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1l
IG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4g
cmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIG9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rp
b24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0
IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4t
ZG93bmdyYWRlIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9y
aWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgc3RyaWN0
LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBu
by1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhl
YWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3du
Z3JhZGUgaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFk
ZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25n
cmFkZSBpbml0LCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3Jh
ZGUgaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJl
ZGlyZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0LCB1bnNhZmUtdXJsIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQs
IG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rp
b24sIG9yaWdpbiBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBv
cmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFk
ZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4g
aW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNh
bWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCBvcmlnaW4gcmVk
aXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwg
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmln
aW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVk
aXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwg
c2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlv
biwgb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9y
aWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVh
ZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQsIHN0cmljdC1v
cmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmln
aW4gaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIK
K1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVk
aXJlY3Rpb24sIG9yaWdpbiBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBD
cm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0
IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmln
aW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBuby1yZWZlcnJl
ciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVj
dCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9z
cy1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVy
CitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4g
aW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rp
b24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVy
CitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4g
aW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9z
cyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBvcmln
aW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJl
ZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgc2FtZS1vcmlnaW4gcmVk
aXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4t
Y3Jvc3Mtb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1l
IG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHN0cmlj
dC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwg
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVh
ZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4gaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIK
K1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4g
aW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BB
U1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0
LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rp
b24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhl
YWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgbm8t
cmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwg
c2FtZS1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUg
b3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlci13aGVuLWRv
d25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBz
YW1lLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFk
ZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2luIGluaXQsIG9yaWdp
biByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9y
aWdpbiBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGly
ZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJl
Y3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5p
dCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9y
aWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3Qg
aGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwg
c2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9u
LCBzYW1lLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBD
cm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4g
cmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdp
biBpbml0LCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgor
UEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2luIGluaXQsIHN0cmljdC1v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2lu
IHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2luIGluaXQsIHVuc2Fm
ZS11cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJp
Y3Qtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBv
cmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJl
Y3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGlu
aXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9z
cyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9u
LCBzdHJpY3Qtb3JpZ2luIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mg
b3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIG9yaWdpbiByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwg
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmln
aW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0
LW9yaWdpbiBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3Jp
Z2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0
IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0
LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJl
Y3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIK
K1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwgc3RyaWN0
LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3Jp
Z2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1j
cm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9u
LCBzdHJpY3Qtb3JpZ2luIGluaXQsIHVuc2FmZS11cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENy
b3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCB1bnNhZmUtdXJsIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BB
U1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiBy
ZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBuby1yZWZl
cnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJl
ZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIG5vLXJlZmVy
cmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRp
cmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBvcmlnaW4gcmVk
aXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNh
bWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGlu
aXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mg
b3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQs
IG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmln
aW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgc2Ft
ZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwg
c3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVj
dCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1Mg
Q3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
IGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJl
ZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHN0cmljdC1v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdp
biByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBzdHJp
Y3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9y
aWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCB1
bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24s
IHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgdW5zYWZlLXVybCByZWRpcmVj
dCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwg
bm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlv
biwgdW5zYWZlLXVybCBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2Ft
ZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1k
b3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwg
dW5zYWZlLXVybCBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFk
ZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11
cmwgaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVj
dGlvbiwgdW5zYWZlLXVybCBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3Qg
aGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCBv
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2lu
IHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgc2FtZS1v
cmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNh
ZmUtdXJsIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9y
aWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0
IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCBz
dHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9z
cyBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rp
b24sIHVuc2FmZS11cmwgaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIHVuc2FmZS11cmwgcmVkaXJl
Y3QgaGVhZGVyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXJlZmVycmVyLW92ZXJyaWRl
LmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXJlZmVycmVyLW92ZXJyaWRlLmFueS53
b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgw
YjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtcmVmZXJyZXItb3ZlcnJp
ZGUuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVp
cmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0
ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3Jl
ZGlyZWN0LXNjaGVtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qtc2NoZW1lcy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlMTBjNjU1ZjkyYzVhOGFi
OGRlYzljNDFkNjFmNGY0MzhkZGU3NGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qtc2NoZW1lcy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotUEFTUyBGZXRjaDogaGFuZGxpbmcgZGlmZmVyZW50
IHNjaGVtZXMgaW4gcmVkaXJlY3RzCi1QQVNTIEZldGNoOiBoYW5kbGluZyBkaWZmZXJlbnQgc2No
ZW1lcyBpbiByZWRpcmVjdHMgMQotUEFTUyBGZXRjaDogaGFuZGxpbmcgZGlmZmVyZW50IHNjaGVt
ZXMgaW4gcmVkaXJlY3RzIDIKLVBBU1MgRmV0Y2g6IGhhbmRsaW5nIGRpZmZlcmVudCBzY2hlbWVz
IGluIHJlZGlyZWN0cyAzCi1QQVNTIEZldGNoOiBoYW5kbGluZyBkaWZmZXJlbnQgc2NoZW1lcyBp
biByZWRpcmVjdHMgNAotUEFTUyBGZXRjaDogaGFuZGxpbmcgZGlmZmVyZW50IHNjaGVtZXMgaW4g
cmVkaXJlY3RzIDUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qtc2NoZW1lcy5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qtc2NoZW1lcy5hbnktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZlMTBjNjU1ZjkyYzVhOGFiOGRlYzljNDFkNjFmNGY0MzhkZGU3NGEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hlbWVzLmFueS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4IEBACisKK1BBU1MgRmV0Y2g6IGhhbmRsaW5nIGRpZmZlcmVudCBzY2hlbWVzIGluIHJl
ZGlyZWN0cworUEFTUyBGZXRjaDogaGFuZGxpbmcgZGlmZmVyZW50IHNjaGVtZXMgaW4gcmVkaXJl
Y3RzIDEKK1BBU1MgRmV0Y2g6IGhhbmRsaW5nIGRpZmZlcmVudCBzY2hlbWVzIGluIHJlZGlyZWN0
cyAyCitQQVNTIEZldGNoOiBoYW5kbGluZyBkaWZmZXJlbnQgc2NoZW1lcyBpbiByZWRpcmVjdHMg
MworUEFTUyBGZXRjaDogaGFuZGxpbmcgZGlmZmVyZW50IHNjaGVtZXMgaW4gcmVkaXJlY3RzIDQK
K1BBU1MgRmV0Y2g6IGhhbmRsaW5nIGRpZmZlcmVudCBzY2hlbWVzIGluIHJlZGlyZWN0cyA1CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXNjaGVtZXMuYW55Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRp
cmVjdC1zY2hlbWVzLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2
NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hl
bWVzLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0t
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0
LXNjaGVtZXMuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qtc2NoZW1lcy5hbnkuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzFlYzEyNGZkNmEzZWRhNjBiMTY0MWZiM2NiYTk4M2NmMjMxN2ZjZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlZGlyZWN0L3JlZGlyZWN0LXNjaGVtZXMuYW55LmpzCkBAIC0wLDAgKzEsMTkgQEAKKy8v
IE1FVEE6IHRpdGxlPUZldGNoOiBoYW5kbGluZyBkaWZmZXJlbnQgc2NoZW1lcyBpbiByZWRpcmVj
dHMKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1v
bi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworCisvLyBBbGwgbm9uLUhUVFAoUykgc2NoZW1lcyBjYW5u
b3Qgc3Vydml2ZSByZWRpcmVjdHMKK3ZhciB1cmwgPSAiLi4vcmVzb3VyY2VzL3JlZGlyZWN0LnB5
P2xvY2F0aW9uPSI7Cit2YXIgdGVzdHMgPSBbCisgIHVybCArICJtYWlsdG86YUBhLmNvbSIsCisg
IHVybCArICJkYXRhOixISSIsCisgIHVybCArICJmYWNldGltZTphQGEub3JnIiwKKyAgdXJsICsg
ImFib3V0OmJsYW5rIiwKKyAgdXJsICsgImFib3V0OnVuaWNvcm4iLAorICB1cmwgKyAiYmxvYjpk
amZrc2ZqcyIKK107Cit0ZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKHVybCkgeworICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odGVzdCkgeworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwg
VHlwZUVycm9yLCBmZXRjaCh1cmwpKQorICB9KQorfSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGly
ZWN0LXNjaGVtZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hl
bWVzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlMTBjNjU1ZjkyYzVhOGFi
OGRlYzljNDFkNjFmNGY0MzhkZGU3NGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVj
dC1zY2hlbWVzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorCitQQVNT
IEZldGNoOiBoYW5kbGluZyBkaWZmZXJlbnQgc2NoZW1lcyBpbiByZWRpcmVjdHMKK1BBU1MgRmV0
Y2g6IGhhbmRsaW5nIGRpZmZlcmVudCBzY2hlbWVzIGluIHJlZGlyZWN0cyAxCitQQVNTIEZldGNo
OiBoYW5kbGluZyBkaWZmZXJlbnQgc2NoZW1lcyBpbiByZWRpcmVjdHMgMgorUEFTUyBGZXRjaDog
aGFuZGxpbmcgZGlmZmVyZW50IHNjaGVtZXMgaW4gcmVkaXJlY3RzIDMKK1BBU1MgRmV0Y2g6IGhh
bmRsaW5nIGRpZmZlcmVudCBzY2hlbWVzIGluIHJlZGlyZWN0cyA0CitQQVNTIEZldGNoOiBoYW5k
bGluZyBkaWZmZXJlbnQgc2NoZW1lcyBpbiByZWRpcmVjdHMgNQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVj
dC9yZWRpcmVjdC1zY2hlbWVzLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXNjaGVt
ZXMuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBh
NDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hlbWVz
LmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJl
ZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVz
dCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRp
cmVjdC1zY2hlbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hlbWVzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhYTdiY2VhNjk1NTg4MmZhZDM0ZjUyOWZjMjU0NGMyNGM1
NjBmM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJl
Y3QvcmVkaXJlY3Qtc2NoZW1lcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAot
PCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+RmV0Y2g6IGhh
bmRsaW5nIGRpZmZlcmVudCBzY2hlbWVzIGluIHJlZGlyZWN0czwvdGl0bGU+Ci08c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPWxvZz48L2Rp
dj4KLTxzY3JpcHQ+Ci0gIC8vIEFsbCBub24tSFRUUChTKSBzY2hlbWVzIGNhbm5vdCBzdXJ2aXZl
IHJlZGlyZWN0cwotICB2YXIgdXJsID0gIi4uL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlv
bj0iOwotICB2YXIgdGVzdHMgPSBbCi0gICAgdXJsICsgIm1haWx0bzphQGEuY29tIiwKLSAgICB1
cmwgKyAiZGF0YTosSEkiLAotICAgIHVybCArICJmYWNldGltZTphQGEub3JnIiwKLSAgICB1cmwg
KyAiYWJvdXQ6YmxhbmsiLAotICAgIHVybCArICJhYm91dDp1bmljb3JuIiwKLSAgICB1cmwgKyAi
YmxvYjpkamZrc2ZqcyIKLSAgXTsKLSAgdGVzdHMuZm9yRWFjaChmdW5jdGlvbih1cmwpIHsKLSAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIGZldGNoKHVybCkpCi0gICAgfSkKLSAgfSkKLTwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtdG8tZGF0YXVybC5hbnkuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVj
dC9yZWRpcmVjdC10by1kYXRhdXJsLmFueS5qcwppbmRleCAyZjM2ZjBiOWQyMWIyMjNjNGYyMGU5
YWUyY2MxNjIwZmIwODIxMmYzLi45ZDBmMTQ3MzQ5YzQ4ODcwYWFlMDBjOGMyYmU0YWEzZTM3NmQz
NmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC10by1kYXRhdXJsLmFueS5qcworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRp
cmVjdC9yZWRpcmVjdC10by1kYXRhdXJsLmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6
IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1p
bmZvLnN1Yi5qcwogCiB2YXIgZGF0YVVSTCA9ICJkYXRhOnRleHQvcGxhaW47YmFzZTY0LGNtVnpj
Rzl1YzJVbmN5QmliMlI1IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJl
Y3QvdzNjLWltcG9ydC5sb2cKaW5kZXggM2IyOTE3MjA3Y2RiNTliYjgyMjliODRlMWZiYWMyZjU4
ZjQxYWMzZC4uMDI1MTc0ZGFiYmFkOTkwODY0MmRkNzc3ZDc5ZmZkN2ExODkyMjE2MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVkaXJlY3QvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvdzNjLWltcG9ydC5sb2cKQEAg
LTIyLDYgKzIyLDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1tZXRob2QuYW55
LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVkaXJlY3QvcmVkaXJlY3QtbW9kZS5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1vcmlnaW4u
YW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtcmVmZXJyZXItb3ZlcnJpZGUuYW55LmpzCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3Qv
cmVkaXJlY3QtcmVmZXJyZXIuYW55LmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qtc2NoZW1lcy5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVk
aXJlY3QvcmVkaXJlY3Qtc2NoZW1lcy5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC10by1kYXRhdXJs
LmFueS5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9kZXN0aW5hdGlvbi9mZXRjaC1kZXN0aW5hdGlvbi1w
cmVmZXRjaC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uL2ZldGNoLWRlc3Rp
bmF0aW9uLXByZWZldGNoLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZmRjNTRiOTEwYjNkMTg4OTllZWFhZTg3NjExNTdmY2Q0NmM5MTY2YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9u
L2ZldGNoLWRlc3RpbmF0aW9uLXByZWZldGNoLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDYgKzAsMCBAQAotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9
IG51bGwKLQotUEFTUyBJbml0aWFsaXplIGdsb2JhbCBzdGF0ZQotVElNRU9VVCBIVE1MTGlua0Vs
ZW1lbnQgd2l0aCByZWw9cHJlZmV0Y2ggZmV0Y2hlcyB3aXRoIGFuIGVtcHR5IHN0cmluZyBSZXF1
ZXN0LmRlc3RpbmF0aW9uIFRlc3QgdGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1iYWQtcG9ydC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWJhZC1wb3J0LmFueS1l
eHBlY3RlZC50eHQKaW5kZXggOTAxYTBiMDk4Y2UwOGQ3ODA5ODU1MGU3YjYyNTI0ZjhhYTlkNTVm
Zi4uMGQwYmQzNDg3MWMyMzY1MDc5YjYzYTNmYjZjNzJhN2M1NzFmZGZlNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWJhZC1wb3J0LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWJhZC1wb3J0LmFueS1leHBlY3RlZC50eHQKQEAgLTE2LDcgKzE2LDYgQEAgUEFTUyBSZXF1ZXN0
IG9uIGJhZCBwb3J0IDM3IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24g
YmFkIHBvcnQgNDIgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQg
cG9ydCA0MyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0
IDUzIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCi1QQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNjkg
c2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA3NyBzaG91
bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDc5IHNob3VsZCB0
aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgODcgc2hvdWxkIHRocm93
IFR5cGVFcnJvci4KQEAgLTM0LDEwICszMyw4IEBAIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAx
MTcgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxMTkg
c2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxMjMgc2hv
dWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxMzUgc2hvdWxk
IHRocm93IFR5cGVFcnJvci4KLVBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxMzcgc2hvdWxkIHRo
cm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxMzkgc2hvdWxkIHRocm93
IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxNDMgc2hvdWxkIHRocm93IFR5
cGVFcnJvci4KLVBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxNjEgc2hvdWxkIHRocm93IFR5cGVF
cnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxNzkgc2hvdWxkIHRocm93IFR5cGVFcnJv
ci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAzODkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4K
IFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA0Mjcgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KQEAg
LTUyLDcgKzQ5LDYgQEAgUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDUzMSBzaG91bGQgdGhyb3cg
VHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDUzMiBzaG91bGQgdGhyb3cgVHlw
ZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDU0MCBzaG91bGQgdGhyb3cgVHlwZUVy
cm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDU0OCBzaG91bGQgdGhyb3cgVHlwZUVycm9y
LgotUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDU1NCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgog
UEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDU1NiBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFT
UyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDU2MyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBS
ZXF1ZXN0IG9uIGJhZCBwb3J0IDU4NyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgpAQCAtNjAsMjEg
KzU2LDE4IEBAIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2MDEgc2hvdWxkIHRocm93IFR5cGVF
cnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2MzYgc2hvdWxkIHRocm93IFR5cGVFcnJv
ci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA5OTMgc2hvdWxkIHRocm93IFR5cGVFcnJvci4K
IFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA5OTUgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KLVBB
U1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAyMDQ5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCi1QQVNT
IFJlcXVlc3Qgb24gYmFkIHBvcnQgMTcxOSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBS
ZXF1ZXN0IG9uIGJhZCBwb3J0IDE3MjAgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVx
dWVzdCBvbiBiYWQgcG9ydCAxNzIzIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCitQQVNTIFJlcXVl
c3Qgb24gYmFkIHBvcnQgMjA0OSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0
IG9uIGJhZCBwb3J0IDM2NTkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBv
biBiYWQgcG9ydCA0MDQ1IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24g
YmFkIHBvcnQgNTA2MCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJh
ZCBwb3J0IDUwNjEgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQg
cG9ydCA2MDAwIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCi1QQVNTIFJlcXVlc3Qgb24gYmFkIHBv
cnQgNjU2NiBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0
IDY2NjUgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2
NjY2IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNjY2
NyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDY2Njgg
c2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2NjY5IHNo
b3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNjY5NyBzaG91
bGQgdGhyb3cgVHlwZUVycm9yLgotUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDEwMDgwIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3IuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1iYWQtcG9ydC5h
bnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtYmFkLXBvcnQuYW55LmpzCmluZGV4IGYxNjc4OGQ4YWY0Yzhh
ZDU3MjA5NTRjOWFiZTI5OGY4YzhiNWYxYWQuLjMxYTA4ZWFhOTI5YmVhNDliNzVjZWU5NzFlMGY5
MzQyMDQ1ZGNkOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1iYWQtcG9ydC5hbnkuanMKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWJhZC1wb3J0LmFueS5qcwpAQCAtMjAsNyArMjAsNiBAQCB2YXIgQkxP
Q0tFRF9QT1JUU19MSVNUID0gWwogICAgIDQyLCAgIC8vIG5hbWUKICAgICA0MywgICAvLyBuaWNu
YW1lCiAgICAgNTMsICAgLy8gZG9tYWluCi0gICAgNjksICAgLy8gVEZUUAogICAgIDc3LCAgIC8v
IHByaXYtcmpzCiAgICAgNzksICAgLy8gZmluZ2VyCiAgICAgODcsICAgLy8gdHR5bGluawpAQCAt
MzgsMTAgKzM3LDggQEAgdmFyIEJMT0NLRURfUE9SVFNfTElTVCA9IFsKICAgICAxMTksICAvLyBu
bnRwCiAgICAgMTIzLCAgLy8gbnRwCiAgICAgMTM1LCAgLy8gbG9jLXNydiAvIGVwbWFwCi0gICAg
MTM3LCAgLy8gbmV0YmlvcwogICAgIDEzOSwgIC8vIG5ldGJpb3MKICAgICAxNDMsICAvLyBpbWFw
MgotICAgIDE2MSwgIC8vIFNOTVAKICAgICAxNzksICAvLyBiZ3AKICAgICAzODksICAvLyBsZGFw
CiAgICAgNDI3LCAgLy8gYWZwIChhbHRlcm5hdGUpCkBAIC01Niw3ICs1Myw2IEBAIHZhciBCTE9D
S0VEX1BPUlRTX0xJU1QgPSBbCiAgICAgNTMyLCAgLy8gbmV0bmV3cwogICAgIDU0MCwgIC8vIHV1
Y3AKICAgICA1NDgsICAvLyBhZnAKLSAgICA1NTQsICAvLyBydHNwCiAgICAgNTU2LCAgLy8gcmVt
b3RlZnMKICAgICA1NjMsICAvLyBubnRwK3NzbAogICAgIDU4NywgIC8vIHNtdHAgKG91dGdvaW5n
KQpAQCAtNjQsMjMgKzYwLDIwIEBAIHZhciBCTE9DS0VEX1BPUlRTX0xJU1QgPSBbCiAgICAgNjM2
LCAgLy8gbGRhcCtzc2wKICAgICA5OTMsICAvLyBsZGFwK3NzbAogICAgIDk5NSwgIC8vIHBvcDMr
c3NsCisgICAgMTcyMCwgLy8gaDMyM2hvc3RjYWxsCisgICAgMTcyMywgLy8gcHB0cAogICAgIDIw
NDksIC8vIG5mcwotICAgIDE3MTksIC8vIEgzMjMgKFJBUykKLSAgICAxNzIwLCAvLyBIMzIzIChR
OTMxKQotICAgIDE3MjMsIC8vIEgzMjMgKEgyNDUpCiAgICAgMzY1OSwgLy8gYXBwbGUtc2FzbAog
ICAgIDQwNDUsIC8vIGxvY2tkCiAgICAgNTA2MCwgLy8gc2lwCiAgICAgNTA2MSwgLy8gc2lwcwog
ICAgIDYwMDAsIC8vIHgxMQotICAgIDY1NjYsIC8vIFNBTkUKICAgICA2NjY1LCAvLyBpcmMgKGFs
dGVybmF0ZSkKICAgICA2NjY2LCAvLyBpcmMgKGFsdGVybmF0ZSkKICAgICA2NjY3LCAvLyBpcmMg
KGRlZmF1bHQpCiAgICAgNjY2OCwgLy8gaXJjIChhbHRlcm5hdGUpCiAgICAgNjY2OSwgLy8gaXJj
IChhbHRlcm5hdGUpCiAgICAgNjY5NywgLy8gaXJjK3RscwotICAgIDEwMDgwLCAvLyBhbWFuZGEK
IF07CiAKIEJMT0NLRURfUE9SVFNfTElTVC5tYXAoZnVuY3Rpb24oYSl7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtYmFkLXBvcnQuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtYmFkLXBvcnQuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggOTAxYTBiMDk4Y2UwOGQ3
ODA5ODU1MGU3YjYyNTI0ZjhhYTlkNTVmZi4uMGQwYmQzNDg3MWMyMzY1MDc5YjYzYTNmYjZjNzJh
N2M1NzFmZGZlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWJhZC1wb3J0LmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1iYWQtcG9ydC5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMTYsNyArMTYsNiBAQCBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgMzcgc2hv
dWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA0MiBzaG91bGQg
dGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDQzIHNob3VsZCB0aHJv
dyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTMgc2hvdWxkIHRocm93IFR5
cGVFcnJvci4KLVBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2OSBzaG91bGQgdGhyb3cgVHlwZUVy
cm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDc3IHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
CiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNzkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBB
U1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA4NyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgpAQCAtMzQs
MTAgKzMzLDggQEAgUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDExNyBzaG91bGQgdGhyb3cgVHlw
ZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDExOSBzaG91bGQgdGhyb3cgVHlwZUVy
cm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDEyMyBzaG91bGQgdGhyb3cgVHlwZUVycm9y
LgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDEzNSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgot
UEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDEzNyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFT
UyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDEzOSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBS
ZXF1ZXN0IG9uIGJhZCBwb3J0IDE0MyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgotUEFTUyBSZXF1
ZXN0IG9uIGJhZCBwb3J0IDE2MSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0
IG9uIGJhZCBwb3J0IDE3OSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9u
IGJhZCBwb3J0IDM4OSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJh
ZCBwb3J0IDQyNyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgpAQCAtNTIsNyArNDksNiBAQCBQQVNT
IFJlcXVlc3Qgb24gYmFkIHBvcnQgNTMxIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJl
cXVlc3Qgb24gYmFkIHBvcnQgNTMyIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVl
c3Qgb24gYmFkIHBvcnQgNTQwIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qg
b24gYmFkIHBvcnQgNTQ4IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCi1QQVNTIFJlcXVlc3Qgb24g
YmFkIHBvcnQgNTU0IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFk
IHBvcnQgNTU2IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBv
cnQgNTYzIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQg
NTg3IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCkBAIC02MCwyMSArNTYsMTggQEAgUEFTUyBSZXF1
ZXN0IG9uIGJhZCBwb3J0IDYwMSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0
IG9uIGJhZCBwb3J0IDYzNiBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9u
IGJhZCBwb3J0IDk5MyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJh
ZCBwb3J0IDk5NSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgotUEFTUyBSZXF1ZXN0IG9uIGJhZCBw
b3J0IDIwNDkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KLVBBU1MgUmVxdWVzdCBvbiBiYWQgcG9y
dCAxNzE5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQg
MTcyMCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDE3
MjMgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KK1BBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAyMDQ5
IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgMzY1OSBz
aG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDQwNDUgc2hv
dWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA1MDYwIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTA2MSBzaG91bGQg
dGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDYwMDAgc2hvdWxkIHRo
cm93IFR5cGVFcnJvci4KLVBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2NTY2IHNob3VsZCB0aHJv
dyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNjY2NSBzaG91bGQgdGhyb3cg
VHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDY2NjYgc2hvdWxkIHRocm93IFR5
cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2NjY3IHNob3VsZCB0aHJvdyBUeXBl
RXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNjY2OCBzaG91bGQgdGhyb3cgVHlwZUVy
cm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDY2Njkgc2hvdWxkIHRocm93IFR5cGVFcnJv
ci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2Njk3IHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
Ci1QQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgMTAwODAgc2hvdWxkIHRocm93IFR5cGVFcnJvci4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDA5NGZjYzljNzY1NjczMjBi
NWRiMzdjYjAwZWU5NzJjMzFlNmVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LWNvbmRpdGlvbmFsLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLQotUEFTUyBSZXF1ZXN0Q2Fj
aGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxv
d2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2lt
aWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBS
ZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFk
ZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRy
ZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFs
ZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1N
b2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlv
bmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFn
IGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0
aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91
dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIg
d2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUg
ImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCi1Q
QVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNl
IGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2Rp
ZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2Rl
IHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRv
ICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2Fj
aGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJl
YXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNo
IHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5v
bmUtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBo
ZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQg
c3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4g
SWYtTm9uZS1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlv
bmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0
LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQi
IG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3
aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0
b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVm
YXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1
ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAi
bm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVx
dWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgaXMg
dHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3Bv
bnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0
Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1v
ZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1v
ZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAi
bm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hl
ICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBz
aW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3Bv
bnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZp
ZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBo
ZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQg
c3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4g
SWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBh
ZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0
aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRl
ZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5n
IGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFy
bHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVl
c3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVy
IChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVh
dGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2gg
cmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5t
b2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3
aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIg
bW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxh
cmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQot
UEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNp
bmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBh
bmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGgg
YW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5v
LXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVl
c3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciAoZm9sbG93aW5n
IGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFy
bHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVl
c3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciAoZm9sbG93aW5n
IGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFy
bHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1Q
QVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciAo
Zm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1Q
QVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciAo
Zm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJl
c3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNo
IGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQg
c3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4g
SWYtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBM
YXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1
bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8g
Im5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNo
ZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UK
LVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVy
IChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVh
dGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UK
LVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVy
IChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVh
dGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUg
cmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFu
Z2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJz
KSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2gg
cmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFu
Z2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJz
KSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBh
bmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGgg
YW4gSWYtUmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0
aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1v
ZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0
b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RD
YWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciBpcyB0cmVhdGVkIHNp
bWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1Mg
UmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIGlzIHRy
ZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVz
aCByZXNwb25zZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC1jb25k
aXRpb25hbC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29u
ZGl0aW9uYWwuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDA5NGZjYzljNzY1NjczMjBi
NWRiMzdjYjAwZWU5NzJjMzFlNmVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNh
Y2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQyIEBA
CisKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQt
U2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFk
ZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3Rh
bGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYt
TW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRp
b25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFz
dC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0
IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1
ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAi
bm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hl
ICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dp
bmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2lu
Y2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFu
ZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0
b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RD
YWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0
cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9u
c2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQt
U2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0
LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQi
IG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3
aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0
b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVm
YXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1
ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAi
bm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVx
dWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgKGZv
bGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQg
c2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFT
UyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRl
ciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJl
YXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNo
IHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5v
bmUtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBF
dGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUg
d2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8t
c3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVz
dENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgaXMgdHJl
YXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNl
CitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2gg
aGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlm
aWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUg
d2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3
aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0
b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVm
YXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcg
YSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJs
eSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BB
U1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5j
ZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMp
IGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCBy
ZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1v
ZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9u
YWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3Qt
TW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIg
bW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxh
cmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1
ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRl
ciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBh
bmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGgg
YW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5v
LXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAi
ZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0
ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCBy
ZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRj
aCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMp
IGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSBy
ZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRj
aCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMp
IGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFu
ZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFs
IGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFu
ZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFs
IGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1v
ZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1v
ZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0
b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVm
YXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0
byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1Mg
UmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIGlzIHRy
ZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25z
ZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFk
ZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQg
YW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRo
IGFuIElmLVJhbmdlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9u
YWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcg
YW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRo
IGFuIElmLVJhbmdlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9u
YWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3Qt
TW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIg
bW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0
IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3
aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIg
bW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0
IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3
aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAi
ZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJs
eSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVz
dENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQg
c2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNw
b25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBo
ZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZy
ZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElm
LVJhbmdlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFz
dC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUt
ZGVmYXVsdC1jb25kaXRpb25hbC5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2Iz
YTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1
biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55LmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM1YjIwMDFjYzhmNmIwMjM3MmY0YzFmMTMwNmFiNzdkODM2NTQxNzIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC1jb25kaXRpb25hbC5hbnkuanMKQEAgLTAs
MCArMSwxNzAgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRs
ZT1SZXF1ZXN0IGNhY2hlIC0gZGVmYXVsdCB3aXRoIGNvbmRpdGlvbmFsIHJlcXVlc3RzCisvLyBN
RVRBOiB0aW1lb3V0PWxvbmcKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBN
RVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0
PXJlcXVlc3QtY2FjaGUuanMKKwordmFyIHRlc3RzID0gWworICB7CisgICAgbmFtZTogJ1JlcXVl
c3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciAo
Zm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCisgICAgc3RhdGU6ICJzdGFsZSIsCisgICAgcmVx
dWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKKyAgICByZXF1ZXN0X2hlYWRlcnM6
IFt7fSwgeyJJZi1Nb2RpZmllZC1TaW5jZSI6IG5vdy50b0dNVFN0cmluZygpfV0sCisgICAgZXhw
ZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9u
b19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAorICB9LAorICB7CisgICAgbmFtZTogJ1Jl
cXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRl
ciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJl
YXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAg
cmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKKyAgICByZXF1ZXN0X2hlYWRl
cnM6IFt7fSwgeyJJZi1Nb2RpZmllZC1TaW5jZSI6IG5vdy50b0dNVFN0cmluZygpfV0sCisgICAg
ZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3Rl
ZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAorICB9LAorICB7CisgICAgbmFtZTog
J1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhl
YWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKKyAgICBzdGF0ZTogInN0
YWxlIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAorICAgIHJl
cXVlc3RfaGVhZGVyczogW3siSWYtTW9kaWZpZWQtU2luY2UiOiBub3cudG9HTVRTdHJpbmcoKX0s
IHt9XSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAor
ICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCisgIH0sCisgIHsK
KyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZp
ZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAorICAg
IHN0YXRlOiAiZnJlc2giLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0
Il0sCisgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJZi1Nb2RpZmllZC1TaW5jZSI6IG5vdy50b0dN
VFN0cmluZygpfSwge31dLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNl
LCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwK
KyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1Ob25lLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0
aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCisgICAg
c3RhdGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQi
XSwKKyAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwgeyJJZi1Ob25lLU1hdGNoIjogJyJmb28iJ31d
LAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAg
ZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAgfSwKKyAgeworICAg
IG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNo
IGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykg
aXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCisgICAgc3RhdGU6ICJmcmVzaCIs
CisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKKyAgICByZXF1ZXN0
X2hlYWRlcnM6IFt7fSwgeyJJZi1Ob25lLU1hdGNoIjogJyJmb28iJ31dLAorICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2Fj
aGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0
Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciBpcyB0cmVh
dGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKKyAgICBzdGF0ZTogInN0YWxlIiwKKyAgICBy
ZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAorICAgIHJlcXVlc3RfaGVhZGVy
czogW3siSWYtTm9uZS1NYXRjaCI6ICciZm9vIid9LCB7fV0sCisgICAgZXhwZWN0ZWRfdmFsaWRh
dGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFk
ZXJzOiBbdHJ1ZSwgZmFsc2VdLAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAi
ZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2lt
aWxhcmx5IHRvICJuby1zdG9yZSInLAorICAgIHN0YXRlOiAiZnJlc2giLAorICAgIHJlcXVlc3Rf
Y2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJ
Zi1Ob25lLU1hdGNoIjogJyJmb28iJ30sIHt9XSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hl
YWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0
cnVlLCBmYWxzZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0
IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJl
cXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRv
ICJuby1zdG9yZSInLAorICAgIHN0YXRlOiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsi
ZGVmYXVsdCIsICJkZWZhdWx0Il0sCisgICAgcmVxdWVzdF9oZWFkZXJzOiBbe30sIHsiSWYtVW5t
b2RpZmllZC1TaW5jZSI6IG5vdy50b0dNVFN0cmluZygpfV0sCisgICAgZXhwZWN0ZWRfdmFsaWRh
dGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFk
ZXJzOiBbZmFsc2UsIHRydWVdLAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAi
ZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dp
bmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiJywKKyAgICBzdGF0ZTogImZyZXNoIiwKKyAgICByZXF1ZXN0X2Nh
Y2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAorICAgIHJlcXVlc3RfaGVhZGVyczogW3t9LCB7
IklmLVVubW9kaWZpZWQtU2luY2UiOiBub3cudG9HTVRTdHJpbmcoKX1dLAorICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2Fj
aGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0
Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciBp
cyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKKyAgICBzdGF0ZTogInN0YWxlIiwK
KyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAorICAgIHJlcXVlc3Rf
aGVhZGVyczogW3siSWYtVW5tb2RpZmllZC1TaW5jZSI6IG5vdy50b0dNVFN0cmluZygpfSwge31d
LAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAg
ZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwKKyAgfSwKKyAgeworICAg
IG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVk
LVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKKyAgICBz
dGF0ZTogImZyZXNoIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJd
LAorICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYtVW5tb2RpZmllZC1TaW5jZSI6IG5vdy50b0dN
VFN0cmluZygpfSwge31dLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNl
LCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwK
KyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFs
IGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAorICAgIHN0YXRl
OiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisg
ICAgcmVxdWVzdF9oZWFkZXJzOiBbe30sIHsiSWYtTWF0Y2giOiAnImZvbyInfV0sCisgICAgZXhw
ZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9u
b19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAorICB9LAorICB7CisgICAgbmFtZTogJ1Jl
cXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciAoZm9sbG93
aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1p
bGFybHkgdG8gIm5vLXN0b3JlIicsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9j
YWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKKyAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwg
eyJJZi1NYXRjaCI6ICciZm9vIid9XSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6
IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwg
dHJ1ZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2Rl
IHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9y
ZSInLAorICAgIHN0YXRlOiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIs
ICJkZWZhdWx0Il0sCisgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJZi1NYXRjaCI6ICciZm9vIid9
LCB7fV0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwK
KyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1ZSwgZmFsc2VdLAorICB9LAorICB7
CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNo
IGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKKyAgICBzdGF0ZTog
ImZyZXNoIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAorICAg
IHJlcXVlc3RfaGVhZGVyczogW3siSWYtTWF0Y2giOiAnImZvbyInfSwge31dLAorICAgIGV4cGVj
dGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9f
Y2FjaGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1
ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgKGZvbGxvd2lu
ZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxh
cmx5IHRvICJuby1zdG9yZSInLAorICAgIHN0YXRlOiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2Fj
aGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisgICAgcmVxdWVzdF9oZWFkZXJzOiBbe30sIHsi
SWYtUmFuZ2UiOiAnImZvbyInfV0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBb
ZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRy
dWVdLAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3
aXRoIGFuIElmLVJhbmdlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0
aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCisgICAg
c3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQi
XSwKKyAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwgeyJJZi1SYW5nZSI6ICciZm9vIid9XSwKKyAg
ICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVj
dGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCisgIH0sCisgIHsKKyAgICBuYW1l
OiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIGlz
IHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAorICAgIHN0YXRlOiAic3RhbGUiLAor
ICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisgICAgcmVxdWVzdF9o
ZWFkZXJzOiBbeyJJZi1SYW5nZSI6ICciZm9vIid9LCB7fV0sCisgICAgZXhwZWN0ZWRfdmFsaWRh
dGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFk
ZXJzOiBbdHJ1ZSwgZmFsc2VdLAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAi
ZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJs
eSB0byAibm8tc3RvcmUiJywKKyAgICBzdGF0ZTogImZyZXNoIiwKKyAgICByZXF1ZXN0X2NhY2hl
OiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAorICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYtUmFu
Z2UiOiAnImZvbyInfSwge31dLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2Zh
bHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3RydWUsIGZhbHNl
XSwKKyAgfSwKK107CitydW5fdGVzdHModGVzdHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC1jb25kaXRpb25hbC5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ZDA5NGZjYzljNzY1NjczMjBiNWRiMzdjYjAwZWU5NzJjMzFlNmVkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwu
YW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MiBAQAorCitQQVNTIFJlcXVlc3RD
YWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9s
bG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBz
aW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNT
IFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhl
YWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMg
dHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0
YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElm
LU1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0
aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0
YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3
aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRo
b3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3Jl
IiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNo
ZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVh
dGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2lu
Y2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1v
ZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1v
ZGUgd2l0aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkg
dG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RD
YWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0
cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJl
c2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYt
Tm9uZS1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFs
IGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFu
ZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1Ob25lLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0
aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExh
c3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVs
dCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0
IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8t
c3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJk
ZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJl
cXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRv
ICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBS
ZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciBp
cyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVz
cG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1N
YXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3Qt
TW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIg
bW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRv
ICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2Fj
aGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVk
IHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVz
cG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2Rp
ZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFs
IGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFu
ZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0
IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3
aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAi
ZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dp
bmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVx
dWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFk
ZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRy
ZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVz
aCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1V
bm1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUi
IHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0
IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1p
bGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNl
CitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQt
U2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFn
IGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0
aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAi
bm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVx
dWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIChmb2xsb3dp
bmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVx
dWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIChmb2xsb3dp
bmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVy
IChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVh
dGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVy
IChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVh
dGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2gg
cmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0
Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFu
ZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRo
IExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVm
YXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0
byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENh
Y2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2lt
aWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25z
ZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFk
ZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRy
ZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25z
ZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFk
ZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRy
ZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFs
ZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1S
YW5nZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRl
cnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVz
aCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1S
YW5nZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRl
cnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVk
IGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0
aCBhbiBJZi1SYW5nZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3
aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIg
bW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8t
c3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVz
dENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQg
c2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFT
UyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgaXMg
dHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZy
ZXNoIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LWNv
bmRpdGlvbmFsLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LWNv
bmRpdGlvbmFsLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVk
NTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNh
Y2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwh
LS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0
byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LWNvbmRpdGlvbmFsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC1jb25kaXRpb25hbC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxNDViMzAyNjJkYWJhMDBlMzMxOGQ3OGI5YzM2MTdhOGJkOTRm
M2JjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jYWNoZS1kZWZhdWx0LWNvbmRpdGlvbmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxODEgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5SZXF1ZXN0IGNhY2hlIC0gZGVmYXVsdCB3
aXRoIGNvbmRpdGlvbmFsIHJlcXVlc3RzPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIj4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2Zl
dGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1v
bi91dGlscy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3Qt
aW5mby5zdWIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXF1ZXN0LWNhY2hlLmpz
Ij48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgIHZhciB0
ZXN0cyA9IFsKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIg
bW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVz
dCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5v
LXN0b3JlIicsCi0gICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAgICByZXF1ZXN0X2NhY2hl
OiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAotICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwg
eyJJZi1Nb2RpZmllZC1TaW5jZSI6IG5vdy50b0dNVFN0cmluZygpfV0sCi0gICAgICAgIGV4cGVj
dGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVk
X25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCi0gICAgICB9LAotICAgICAgewotICAg
ICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZp
ZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBo
ZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKLSAgICAgICAgc3Rh
dGU6ICJmcmVzaCIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0
Il0sCi0gICAgICAgIHJlcXVlc3RfaGVhZGVyczogW3t9LCB7IklmLU1vZGlmaWVkLVNpbmNlIjog
bm93LnRvR01UU3RyaW5nKCl9XSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJz
OiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2Zh
bHNlLCB0cnVlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2Fj
aGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJl
YXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCi0gICAgICAgIHN0YXRlOiAic3RhbGUiLAot
ICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAotICAgICAgICBy
ZXF1ZXN0X2hlYWRlcnM6IFt7IklmLU1vZGlmaWVkLVNpbmNlIjogbm93LnRvR01UU3RyaW5nKCl9
LCB7fV0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxz
ZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCi0g
ICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBt
b2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5
IHRvICJuby1zdG9yZSInLAotICAgICAgICBzdGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVz
dF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAgICAgcmVxdWVzdF9oZWFkZXJz
OiBbeyJJZi1Nb2RpZmllZC1TaW5jZSI6IG5vdy50b0dNVFN0cmluZygpfSwge31dLAotICAgICAg
ICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBl
eHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1ZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICAg
IHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElm
LU5vbmUtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25h
bCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKLSAgICAgICAg
c3RhdGU6ICJzdGFsZSIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZh
dWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVhZGVyczogW3t9LCB7IklmLU5vbmUtTWF0Y2giOiAn
ImZvbyInfV0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBm
YWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0s
Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0
IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qg
d2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1z
dG9yZSInLAotICAgICAgICBzdGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTog
WyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbe30sIHsi
SWYtTm9uZS1NYXRjaCI6ICciZm9vIid9XSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9o
ZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVy
czogW2ZhbHNlLCB0cnVlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1
ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciBpcyB0
cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKLSAgICAgICAgc3RhdGU6ICJzdGFsZSIs
Ci0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCi0gICAgICAg
IHJlcXVlc3RfaGVhZGVyczogW3siSWYtTm9uZS1NYXRjaCI6ICciZm9vIid9LCB7fV0sCi0gICAg
ICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAg
IGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCi0gICAgICB9LAotICAg
ICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4g
SWYtTm9uZS1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIics
Ci0gICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1
bHQiLCAiZGVmYXVsdCJdLAotICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFt7IklmLU5vbmUtTWF0
Y2giOiAnImZvbyInfSwge31dLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6
IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1
ZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNo
ZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xs
b3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNp
bWlsYXJseSB0byAibm8tc3RvcmUiJywKLSAgICAgICAgc3RhdGU6ICJzdGFsZSIsCi0gICAgICAg
IHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCi0gICAgICAgIHJlcXVlc3Rf
aGVhZGVyczogW3t9LCB7IklmLVVubW9kaWZpZWQtU2luY2UiOiBub3cudG9HTVRTdHJpbmcoKX1d
LAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAot
ICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAotICAgICAg
fSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3
aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdp
dGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3Rv
cmUiJywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsi
ZGVmYXVsdCIsICJkZWZhdWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVhZGVyczogW3t9LCB7Iklm
LVVubW9kaWZpZWQtU2luY2UiOiBub3cudG9HTVRTdHJpbmcoKX1dLAotICAgICAgICBleHBlY3Rl
ZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9u
b19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAg
ICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZp
ZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAotICAg
ICAgICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0Iiwg
ImRlZmF1bHQiXSwKLSAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJZi1Vbm1vZGlmaWVkLVNp
bmNlIjogbm93LnRvR01UU3RyaW5nKCl9LCB7fV0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRp
b25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hl
YWRlcnM6IFt0cnVlLCBmYWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAn
UmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBo
ZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCi0gICAgICAgIHN0YXRl
OiAiZnJlc2giLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJd
LAotICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFt7IklmLVVubW9kaWZpZWQtU2luY2UiOiBub3cu
dG9HTVRTdHJpbmcoKX0sIHt9XSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJz
OiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3Ry
dWUsIGZhbHNlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2Fj
aGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJl
cXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRv
ICJuby1zdG9yZSInLAotICAgICAgICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAgcmVxdWVzdF9j
YWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBb
e30sIHsiSWYtTWF0Y2giOiAnImZvbyInfV0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25f
aGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRl
cnM6IFtmYWxzZSwgdHJ1ZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVx
dWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIChmb2xsb3dp
bmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiJywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHJl
cXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVh
ZGVyczogW3t9LCB7IklmLU1hdGNoIjogJyJmb28iJ31dLAotICAgICAgICBleHBlY3RlZF92YWxp
ZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNo
ZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFt
ZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciBp
cyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKLSAgICAgICAgc3RhdGU6ICJzdGFs
ZSIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCi0gICAg
ICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYtTWF0Y2giOiAnImZvbyInfSwge31dLAotICAgICAg
ICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBl
eHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1ZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICAg
IHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElm
LU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKLSAgICAg
ICAgc3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJk
ZWZhdWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYtTWF0Y2giOiAnImZvbyIn
fSwge31dLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFs
c2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1ZSwgZmFsc2VdLAot
ICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIg
bW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0
IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIics
Ci0gICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1
bHQiLCAiZGVmYXVsdCJdLAotICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwgeyJJZi1SYW5n
ZSI6ICciZm9vIid9XSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFs
c2UsIGZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0
cnVlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRl
ZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qg
d2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1z
dG9yZSInLAotICAgICAgICBzdGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTog
WyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbe30sIHsi
SWYtUmFuZ2UiOiAnImZvbyInfV0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVy
czogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtm
YWxzZSwgdHJ1ZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENh
Y2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2lt
aWxhcmx5IHRvICJuby1zdG9yZSInLAotICAgICAgICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAg
cmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAgICAgcmVxdWVzdF9o
ZWFkZXJzOiBbeyJJZi1SYW5nZSI6ICciZm9vIid9LCB7fV0sCi0gICAgICAgIGV4cGVjdGVkX3Zh
bGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2Nh
Y2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBu
YW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVy
IGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAotICAgICAgICBzdGF0ZTogImZy
ZXNoIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAg
ICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJZi1SYW5nZSI6ICciZm9vIid9LCB7fV0sCi0gICAg
ICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAg
IGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCi0gICAgICB9LAotICAg
IF07Ci0gICAgcnVuX3Rlc3RzKHRlc3RzKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2MDQxZDc0ZWM4ZGJiMTNhMzI3M2U5YTk2ZmU0Y2ExNzFjYzQ1NmYx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1jYWNoZS1kZWZhdWx0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICsw
LDAgQEAKLQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgY2hlY2tzIHRoZSBjYWNo
ZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBm
b3Igc3RhbGUgcmVzcG9uc2VzIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVx
dWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkg
Y2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgZm9yIHN0YWxlIHJlc3BvbnNl
cyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNo
ZSAiZGVmYXVsdCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBj
b250ZW50IGFuZCBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgYSBmcmVzaCByZXNwb25z
ZSBleGlzdHMgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUg
ImRlZmF1bHQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29u
dGVudCBhbmQgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGEgZnJlc2ggcmVzcG9uc2Ug
ZXhpc3RzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVzcG9u
c2VzIHdpdGggdGhlICJDYWNoZS1Db250cm9sOiBuby1zdG9yZSIgaGVhZGVyIGFyZSBub3Qgc3Rv
cmVkIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlc3Bv
bnNlcyB3aXRoIHRoZSAiQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUiIGhlYWRlciBhcmUgbm90IHN0
b3JlZCBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQot
UEFTUyBSZXNwb25zZXMgd2l0aCB0aGUgIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlIiBoZWFkZXIg
YXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UK
LVBBU1MgUmVzcG9uc2VzIHdpdGggdGhlICJDYWNoZS1Db250cm9sOiBuby1zdG9yZSIgaGVhZGVy
IGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNo
IHJlc3BvbnNlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LmFueS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC5hbnktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYwNDFkNzRlYzhkYmIxM2EzMjczZTlhOTZmZTRjYTE3MWNjNDU2ZjEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC5hbnktZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTAgQEAKKworUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUg
Y2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0
byB0aGUgbmV0d29yayBmb3Igc3RhbGUgcmVzcG9uc2VzIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVz
cG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUg
Zm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgZm9y
IHN0YWxlIHJlc3BvbnNlcyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQ
QVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2
aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYg
YSBmcmVzaCByZXNwb25zZSBleGlzdHMgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFT
UyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlv
dXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGEg
ZnJlc2ggcmVzcG9uc2UgZXhpc3RzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9u
c2UKK1BBU1MgUmVzcG9uc2VzIHdpdGggdGhlICJDYWNoZS1Db250cm9sOiBuby1zdG9yZSIgaGVh
ZGVyIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3Bv
bnNlCitQQVNTIFJlc3BvbnNlcyB3aXRoIHRoZSAiQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUiIGhl
YWRlciBhcmUgbm90IHN0b3JlZCBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBz
dGFsZSByZXNwb25zZQorUEFTUyBSZXNwb25zZXMgd2l0aCB0aGUgIkNhY2hlLUNvbnRyb2w6IG5v
LXN0b3JlIiBoZWFkZXIgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIHdpdGggRXRhZyBhbmQg
ZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVzcG9uc2VzIHdpdGggdGhlICJDYWNoZS1Db250cm9sOiBu
by1zdG9yZSIgaGVhZGVyIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9k
aWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1kZWZhdWx0LmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuYW55Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LmFueS5odG1sCkBAIC0w
LDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZy
YXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LmFueS5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZmE4MzY5
YzlhMzcxOThjZWVjMzMzZTdkM2YxNzQ4ZGFhODE1MDU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuYW55LmpzCkBAIC0wLDAgKzEsMzkgQEAKKy8vIE1FVEE6
IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGNhY2hlIC0gZGVm
YXVsdAorLy8gTUVUQTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKKy8vIE1FVEE6IHNjcmlwdD0v
Y29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzCisvLyBNRVRBOiBzY3JpcHQ9cmVxdWVzdC1jYWNo
ZS5qcworCit2YXIgdGVzdHMgPSBbCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZh
dWx0IiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQg
YW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgZm9yIHN0YWxlIHJlc3BvbnNlcycsCisgICAgc3RhdGU6
ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKKyAg
ICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCisgICAgZXhwZWN0
ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgIH0sCisgIHsKKyAgICBuYW1l
OiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZp
b3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBh
IGZyZXNoIHJlc3BvbnNlIGV4aXN0cycsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVz
dF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9u
X2hlYWRlcnM6IFtmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNl
XSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXNwb25zZXMgd2l0aCB0aGUgIkNhY2hlLUNvbnRy
b2w6IG5vLXN0b3JlIiBoZWFkZXIgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlJywKKyAgICBz
dGF0ZTogInN0YWxlIiwKKyAgICBjYWNoZV9jb250cm9sOiAibm8tc3RvcmUiLAorICAgIHJlcXVl
c3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlv
bl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJz
OiBbZmFsc2UsIGZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXNwb25zZXMgd2l0aCB0
aGUgIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlIiBoZWFkZXIgYXJlIG5vdCBzdG9yZWQgaW4gdGhl
IGNhY2hlJywKKyAgICBzdGF0ZTogImZyZXNoIiwKKyAgICBjYWNoZV9jb250cm9sOiAibm8tc3Rv
cmUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisgICAgZXhw
ZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9u
b19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgfSwKK107CitydW5fdGVzdHModGVz
dHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MDQxZDc0ZWM4ZGJiMTNhMzI3M2U5YTk2ZmU0Y2ExNzFjYzQ1
NmYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuYW55Lndv
cmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitQQVNTIFJlcXVlc3RDYWNoZSAi
ZGVmYXVsdCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250
ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGZvciBzdGFsZSByZXNwb25zZXMgd2l0aCBFdGFn
IGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgY2hl
Y2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0
aGUgbmV0d29yayBmb3Igc3RhbGUgcmVzcG9uc2VzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3Rh
bGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIGNoZWNrcyB0aGUg
Y2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkcyBnb2luZyB0byB0
aGUgbmV0d29yayBpZiBhIGZyZXNoIHJlc3BvbnNlIGV4aXN0cyB3aXRoIEV0YWcgYW5kIGZyZXNo
IHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSBjaGVja3MgdGhlIGNh
Y2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZHMgZ29pbmcgdG8gdGhl
IG5ldHdvcmsgaWYgYSBmcmVzaCByZXNwb25zZSBleGlzdHMgd2l0aCBMYXN0LU1vZGlmaWVkIGFu
ZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXNwb25zZXMgd2l0aCB0aGUgIkNhY2hlLUNvbnRyb2w6
IG5vLXN0b3JlIiBoZWFkZXIgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIHdpdGggRXRhZyBh
bmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVzcG9uc2VzIHdpdGggdGhlICJDYWNoZS1Db250cm9s
OiBuby1zdG9yZSIgaGVhZGVyIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZSB3aXRoIExhc3Qt
TW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlc3BvbnNlcyB3aXRoIHRoZSAiQ2Fj
aGUtQ29udHJvbDogbm8tc3RvcmUiIGhlYWRlciBhcmUgbm90IHN0b3JlZCBpbiB0aGUgY2FjaGUg
d2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXNwb25zZXMgd2l0aCB0aGUgIkNh
Y2hlLUNvbnRyb2w6IG5vLXN0b3JlIiBoZWFkZXIgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hl
IHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNh
Y2hlLWRlZmF1bHQuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y2FjaGUtZGVmYXVsdC5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZp
bGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUg
dGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1k
ZWZhdWx0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwZTM3YjJkMGM5YjYz
ODJkZmM3MmIxYzZiOTAxOTdiM2U1ZTAxNWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDUwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFk
PgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVxdWVzdCBjYWNoZSAt
IGRlZmF1bHQ8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0
Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9u
L3V0aWxzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1p
bmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlcXVlc3QtY2FjaGUuanMi
Pjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgdmFyIHRl
c3RzID0gWwotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBt
b2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdv
ZXMgdG8gdGhlIG5ldHdvcmsgZm9yIHN0YWxlIHJlc3BvbnNlcycsCi0gICAgICAgIHN0YXRlOiAi
c3RhbGUiLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAot
ICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCi0gICAg
ICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgfSwK
LSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSBjaGVj
a3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZHMgZ29p
bmcgdG8gdGhlIG5ldHdvcmsgaWYgYSBmcmVzaCByZXNwb25zZSBleGlzdHMnLAotICAgICAgICBz
dGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1
bHQiXSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2VdLAotICAg
ICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2VdLAotICAgICAgfSwKLSAgICAg
IHsKLSAgICAgICAgbmFtZTogJ1Jlc3BvbnNlcyB3aXRoIHRoZSAiQ2FjaGUtQ29udHJvbDogbm8t
c3RvcmUiIGhlYWRlciBhcmUgbm90IHN0b3JlZCBpbiB0aGUgY2FjaGUnLAotICAgICAgICBzdGF0
ZTogInN0YWxlIiwKLSAgICAgICAgY2FjaGVfY29udHJvbDogIm5vLXN0b3JlIiwKLSAgICAgICAg
cmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAgICAgZXhwZWN0ZWRf
dmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9f
Y2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAg
ICBuYW1lOiAnUmVzcG9uc2VzIHdpdGggdGhlICJDYWNoZS1Db250cm9sOiBuby1zdG9yZSIgaGVh
ZGVyIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZScsCi0gICAgICAgIHN0YXRlOiAiZnJlc2gi
LAotICAgICAgICBjYWNoZV9jb250cm9sOiAibm8tc3RvcmUiLAotICAgICAgICByZXF1ZXN0X2Nh
Y2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9u
X2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFk
ZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgIH0sCi0gICAgXTsKLSAgICBydW5fdGVzdHModGVz
dHMpOwotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY2FjaGUtZm9yY2UtY2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNh
Y2hlLWZvcmNlLWNhY2hlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTNhMjUzYmY2MzViNmMxOGY2OGI2NjQzM2Y5Mzk5MDZjZGQwMjM2OC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZm9y
Y2UtY2FjaGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotCi1Q
QVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3Ig
cHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWQgcmV2YWxpZGF0aW9uIGZvciBzdGFs
ZSByZXNwb25zZXMgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2Fj
aGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2Fj
aGVkIGNvbnRlbnQgYW5kIGF2b2lkIHJldmFsaWRhdGlvbiBmb3Igc3RhbGUgcmVzcG9uc2VzIHdp
dGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJm
b3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBj
b250ZW50IGFuZCBhdm9pZCByZXZhbGlkYXRpb24gZm9yIGZyZXNoIHJlc3BvbnNlcyB3aXRoIEV0
YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1v
ZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZv
aWQgcmV2YWxpZGF0aW9uIGZvciBmcmVzaCByZXNwb25zZXMgd2l0aCBMYXN0LU1vZGlmaWVkIGFu
ZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNo
ZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8g
dGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2UgaXMgbm90IGZvdW5kIHdpdGggRXRhZyBh
bmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBj
aGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRv
IHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3VuZCB3aXRoIExhc3Qt
TW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2Fj
aGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBh
bmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSBpcyBub3QgZm91bmQg
d2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNh
Y2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQg
YW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2UgaXMgbm90IGZvdW5k
IHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hl
ICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hl
ZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIHdv
dWxkIHZhcnkgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUg
ImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVk
IGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2Ugd291
bGQgdmFyeSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVl
c3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNs
eSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNw
b25zZSB3b3VsZCB2YXJ5IHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVz
dENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5
IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3Bv
bnNlIHdvdWxkIHZhcnkgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQotUEFT
UyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBzdG9yZXMgdGhlIHJlc3BvbnNlIGluIHRoZSBj
YWNoZSBpZiBpdCBnb2VzIHRvIHRoZSBuZXR3b3JrIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9u
c2UKLVBBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgc3RvcmVzIHRoZSByZXNwb25zZSBp
biB0aGUgY2FjaGUgaWYgaXQgZ29lcyB0byB0aGUgbmV0d29yayB3aXRoIExhc3QtTW9kaWZpZWQg
YW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIHN0b3Jl
cyB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGlmIGl0IGdvZXMgdG8gdGhlIG5ldHdvcmsgd2l0
aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hl
IiBzdG9yZXMgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBpZiBpdCBnb2VzIHRvIHRoZSBuZXR3
b3JrIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtY2FjaGUtZm9yY2UtY2FjaGUuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2Ey
NTNiZjYzNWI2YzE4ZjY4YjY2NDMzZjkzOTkwNmNkZDAyMzY4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxOCBAQAorCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRo
ZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWQgcmV2YWxpZGF0
aW9uIGZvciBzdGFsZSByZXNwb25zZXMgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFT
UyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHBy
ZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkIHJldmFsaWRhdGlvbiBmb3Igc3RhbGUg
cmVzcG9uc2VzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVx
dWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91
c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZCByZXZhbGlkYXRpb24gZm9yIGZyZXNoIHJlc3Bv
bnNlcyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9y
Y2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29u
dGVudCBhbmQgYXZvaWQgcmV2YWxpZGF0aW9uIGZvciBmcmVzaCByZXNwb25zZXMgd2l0aCBMYXN0
LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNh
Y2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQg
YW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2UgaXMgbm90IGZvdW5k
IHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1j
YWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50
IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3Vu
ZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNo
ZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNo
ZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSBp
cyBub3QgZm91bmQgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2Fj
aGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2Fj
aGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2Ug
aXMgbm90IGZvdW5kIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1Mg
UmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2
aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVk
IHJlc3BvbnNlIHdvdWxkIHZhcnkgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBS
ZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZp
b3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQg
cmVzcG9uc2Ugd291bGQgdmFyeSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNl
CitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBm
b3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBh
IGNhY2hlZCByZXNwb25zZSB3b3VsZCB2YXJ5IHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZv
ciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEg
Y2FjaGVkIHJlc3BvbnNlIHdvdWxkIHZhcnkgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCBy
ZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBzdG9yZXMgdGhlIHJlc3Bv
bnNlIGluIHRoZSBjYWNoZSBpZiBpdCBnb2VzIHRvIHRoZSBuZXR3b3JrIHdpdGggRXRhZyBhbmQg
c3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgc3RvcmVzIHRo
ZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgaWYgaXQgZ29lcyB0byB0aGUgbmV0d29yayB3aXRoIExh
c3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2Ut
Y2FjaGUiIHN0b3JlcyB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGlmIGl0IGdvZXMgdG8gdGhl
IG5ldHdvcmsgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUg
ImZvcmNlLWNhY2hlIiBzdG9yZXMgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBpZiBpdCBnb2Vz
IHRvIHRoZSBuZXR3b3JrIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmFueS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1
MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY2FjaGUtZm9yY2UtY2FjaGUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1
biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmFueS5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1jYWNoZS1mb3JjZS1jYWNoZS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBkY2UwOTZjNzI5MjQ5
NTYwNmQ4NjA2Yzg2NDllMDk2YmNhYzgxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1jYWNoZS1mb3JjZS1jYWNoZS5hbnkuanMKQEAgLTAsMCArMSw2NyBAQAorLy8gTUVUQTogZ2xv
YmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPVJlcXVlc3QgY2FjaGUgLSBmb3JjZS1j
YWNoZQorLy8gTUVUQTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKKy8vIE1FVEE6IHNjcmlwdD0v
Y29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzCisvLyBNRVRBOiBzY3JpcHQ9cmVxdWVzdC1jYWNo
ZS5qcworCit2YXIgdGVzdHMgPSBbCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3Jj
ZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250
ZW50IGFuZCBhdm9pZCByZXZhbGlkYXRpb24gZm9yIHN0YWxlIHJlc3BvbnNlcycsCisgICAgc3Rh
dGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImZvcmNlLWNhY2hl
Il0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2VdLAorICAgIGV4cGVj
dGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVx
dWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91
c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZCByZXZhbGlkYXRpb24gZm9yIGZyZXNoIHJlc3Bv
bnNlcycsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0
IiwgImZvcmNlLWNhY2hlIl0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFs
c2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0sCisgIH0sCisgIHsK
KyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNh
Y2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3Jr
IGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3VuZCcsCisgICAgc3RhdGU6ICJzdGFsZSIs
CisgICAgcmVxdWVzdF9jYWNoZTogWyJmb3JjZS1jYWNoZSJdLAorICAgIGV4cGVjdGVkX3ZhbGlk
YXRpb25faGVhZGVyczogW2ZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBb
ZmFsc2VdLAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUi
IG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQg
Z29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSBpcyBub3QgZm91bmQnLAor
ICAgIHN0YXRlOiAiZnJlc2giLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZm9yY2UtY2FjaGUiXSwK
KyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZV0sCisgICAgZXhwZWN0ZWRf
bm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0
Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkg
Y2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9u
c2Ugd291bGQgdmFyeScsCisgICAgc3RhdGU6ICJzdGFsZSIsCisgICAgdmFyeTogIioiLAorICAg
IHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJmb3JjZS1jYWNoZSJdLAorICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAgICBleHBlY3RlZF9ub19jYWNo
ZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0
Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkg
Y2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9u
c2Ugd291bGQgdmFyeScsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgdmFyeTogIioiLAorICAg
IHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJmb3JjZS1jYWNoZSJdLAorICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAgICBleHBlY3RlZF9ub19jYWNo
ZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0
Q2FjaGUgImZvcmNlLWNhY2hlIiBzdG9yZXMgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBpZiBp
dCBnb2VzIHRvIHRoZSBuZXR3b3JrJywKKyAgICBzdGF0ZTogInN0YWxlIiwKKyAgICByZXF1ZXN0
X2NhY2hlOiBbImZvcmNlLWNhY2hlIiwgImRlZmF1bHQiXSwKKyAgICBleHBlY3RlZF92YWxpZGF0
aW9uX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVy
czogW2ZhbHNlLCBmYWxzZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJm
b3JjZS1jYWNoZSIgc3RvcmVzIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgaWYgaXQgZ29lcyB0
byB0aGUgbmV0d29yaycsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTog
WyJmb3JjZS1jYWNoZSIsICJkZWZhdWx0Il0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFk
ZXJzOiBbZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0sCisg
IH0sCitdOworcnVuX3Rlc3RzKHRlc3RzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1mb3JjZS1jYWNoZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1mb3JjZS1jYWNoZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2EyNTNi
ZjYzNWI2YzE4ZjY4YjY2NDMzZjkzOTkwNmNkZDAyMzY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTggQEAKKworUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNr
cyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkIHJldmFs
aWRhdGlvbiBmb3Igc3RhbGUgcmVzcG9uc2VzIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZv
ciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZCByZXZhbGlkYXRpb24gZm9yIHN0
YWxlIHJlc3BvbnNlcyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNT
IFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJl
dmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWQgcmV2YWxpZGF0aW9uIGZvciBmcmVzaCBy
ZXNwb25zZXMgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUg
ImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVk
IGNvbnRlbnQgYW5kIGF2b2lkIHJldmFsaWRhdGlvbiBmb3IgZnJlc2ggcmVzcG9uc2VzIHdpdGgg
TGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3Jj
ZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250
ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBm
b3VuZCB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9y
Y2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29u
dGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSBpcyBub3Qg
Zm91bmQgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0
Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkg
Y2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9u
c2UgaXMgbm90IGZvdW5kIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVz
dENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5
IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3Bv
bnNlIGlzIG5vdCBmb3VuZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQ
QVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3Ig
cHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNh
Y2hlZCByZXNwb25zZSB3b3VsZCB2YXJ5IHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BB
U1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBw
cmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2Fj
aGVkIHJlc3BvbnNlIHdvdWxkIHZhcnkgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNw
b25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2Fj
aGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsg
aWYgYSBjYWNoZWQgcmVzcG9uc2Ugd291bGQgdmFyeSB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3Bv
bnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNo
ZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBp
ZiBhIGNhY2hlZCByZXNwb25zZSB3b3VsZCB2YXJ5IHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJl
c2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgc3RvcmVzIHRoZSBy
ZXNwb25zZSBpbiB0aGUgY2FjaGUgaWYgaXQgZ29lcyB0byB0aGUgbmV0d29yayB3aXRoIEV0YWcg
YW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIHN0b3Jl
cyB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGlmIGl0IGdvZXMgdG8gdGhlIG5ldHdvcmsgd2l0
aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZv
cmNlLWNhY2hlIiBzdG9yZXMgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBpZiBpdCBnb2VzIHRv
IHRoZSBuZXR3b3JrIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENh
Y2hlICJmb3JjZS1jYWNoZSIgc3RvcmVzIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgaWYgaXQg
Z29lcyB0byB0aGUgbmV0d29yayB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNl
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1mb3JjZS1jYWNoZS5hbnkud29ya2Vy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZm9yY2UtY2FjaGUuYW55Lndvcmtlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZm9yY2UtY2FjaGUuYW55Lndvcmtlci5o
dG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQg
dGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1mb3Jj
ZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkNDU3MjZmNTVlNjUyMzA2Yjc4MjYxMjlmNGJjZWU5
ODQwM2UzMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
OCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJlcXVlc3QgY2FjaGUgLSBmb3JjZS1jYWNoZTwv
dGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndo
YXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVxdWVzdC1jYWNoZS5qcyI+PC9zY3JpcHQ+
Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbCi0g
ICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNo
ZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkIHJl
dmFsaWRhdGlvbiBmb3Igc3RhbGUgcmVzcG9uc2VzJywKLSAgICAgICAgc3RhdGU6ICJzdGFsZSIs
Ci0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJmb3JjZS1jYWNoZSJdLAotICAg
ICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZV0sCi0gICAgICAgIGV4cGVj
dGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAg
ICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hl
IGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZCByZXZhbGlkYXRpb24gZm9y
IGZyZXNoIHJlc3BvbnNlcycsCi0gICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAgICAgICByZXF1
ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZm9yY2UtY2FjaGUiXSwKLSAgICAgICAgZXhwZWN0ZWRf
dmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9o
ZWFkZXJzOiBbZmFsc2VdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVl
c3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNs
eSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNw
b25zZSBpcyBub3QgZm91bmQnLAotICAgICAgICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAgcmVx
dWVzdF9jYWNoZTogWyJmb3JjZS1jYWNoZSJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9u
X2hlYWRlcnM6IFtmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtm
YWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJm
b3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBj
b250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5v
dCBmb3VuZCcsCi0gICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAgICAgICByZXF1ZXN0X2NhY2hl
OiBbImZvcmNlLWNhY2hlIl0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczog
W2ZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlXSwKLSAg
ICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hl
IiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5k
IGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2Ugd291bGQgdmFyeScsCi0g
ICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAgICB2YXJ5OiAiKiIsCi0gICAgICAgIHJlcXVl
c3RfY2FjaGU6IFsiZGVmYXVsdCIsICJmb3JjZS1jYWNoZSJdLAotICAgICAgICBleHBlY3RlZF92
YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2Nh
Y2hlX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAg
bmFtZTogJ1JlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBm
b3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBh
IGNhY2hlZCByZXNwb25zZSB3b3VsZCB2YXJ5JywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0g
ICAgICAgIHZhcnk6ICIqIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImZv
cmNlLWNhY2hlIl0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNl
LCB0cnVlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxz
ZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3Jj
ZS1jYWNoZSIgc3RvcmVzIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgaWYgaXQgZ29lcyB0byB0
aGUgbmV0d29yaycsCi0gICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAgICByZXF1ZXN0X2Nh
Y2hlOiBbImZvcmNlLWNhY2hlIiwgImRlZmF1bHQiXSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRh
dGlvbl9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9o
ZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6
ICdSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBzdG9yZXMgdGhlIHJlc3BvbnNlIGluIHRoZSBj
YWNoZSBpZiBpdCBnb2VzIHRvIHRoZSBuZXR3b3JrJywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIs
Ci0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZm9yY2UtY2FjaGUiLCAiZGVmYXVsdCJdLAotICAg
ICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZV0sCi0gICAgICAgIGV4cGVj
dGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0sCi0gICAgICB9LAotICAgIF07Ci0gICAgcnVu
X3Rlc3RzKHRlc3RzKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLWNhY2hlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1jYWNoZS1uby1jYWNoZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGVjOWY3ZDViYTU1MGJlOGFhNTVjYzhhZmFkNmVhMDdkOWFiNjEwMjAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hl
LW5vLWNhY2hlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1Q
QVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgc3RhbGUgcmVzcG9u
c2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNT
IFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2Vz
IGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNl
Ci1QQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgZnJlc2ggcmVz
cG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1Q
QVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgZnJlc2ggcmVzcG9u
c2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3Bv
bnNlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5hbnktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLWNhY2hlLmFueS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWM5ZjdkNWJhNTUwYmU4YWE1NWNjOGFmYWQ2ZWEwN2Q5YWI2MTAyMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5hbnktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2
YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5k
IHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxp
ZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZp
ZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUg
cmV2YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcg
YW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2
YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9k
aWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1uby1jYWNoZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5hbnkuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLWNhY2hlLmFueS5odG1sCkBA
IC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBp
bmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5h
bnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tY2FjaGUuYW55LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQx
ZmMyMmJhZjIzZGRkM2Y4MzJhMzhjODUzYTIwMzkyMGEzODA2MmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tY2FjaGUuYW55LmpzCkBAIC0wLDAgKzEsMjUgQEAKKy8v
IE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGNhY2hl
IDogbm8tY2FjaGUKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBz
Y3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0PXJlcXVl
c3QtY2FjaGUuanMKKwordmFyIHRlc3RzID0gWworICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNo
ZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZvdW5kIGluIHRo
ZSBjYWNoZScsCisgICAgc3RhdGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZh
dWx0IiwgIm5vLWNhY2hlIl0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFs
c2UsIHRydWVdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2Vd
LAorICAgIGV4cGVjdGVkX21heF9hZ2VfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAgfSwKKyAg
eworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm5vLWNhY2hlIiBtb2RlIHJldmFsaWRhdGVzIGZy
ZXNoIHJlc3BvbnNlcyBmb3VuZCBpbiB0aGUgY2FjaGUnLAorICAgIHN0YXRlOiAiZnJlc2giLAor
ICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJuby1jYWNoZSJdLAorICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAgICBleHBlY3RlZF9ub19jYWNo
ZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9tYXhfYWdlX2hlYWRlcnM6
IFtmYWxzZSwgdHJ1ZV0sCisgIH0sCitdOworcnVuX3Rlc3RzKHRlc3RzKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lYzlmN2Q1YmE1NTBiZThhYTU1Y2M4YWZhZDZlYTA3ZDlhYjYxMDIwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLWNhY2hlLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUg
cmV2YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcg
YW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2
YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9k
aWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1v
ZGUgcmV2YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIEV0
YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUg
cmV2YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIExhc3Qt
TW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1j
YWNoZS1uby1jYWNoZS5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tY2Fj
aGUuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBh
NDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8t
Y2FjaGUuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRl
ZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jYWNoZS1uby1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLWNhY2hl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzMGVkMTYyNjk2ODZhZTcxNjM4
NTNhNzk1ZDUyOWZiNGQ4NjliNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLWNhY2hlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwzNiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAg
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJlcXVlc3QgY2FjaGUgOiBuby1j
YWNoZTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5z
cGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRp
bHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8u
c3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVxdWVzdC1jYWNoZS5qcyI+PC9z
Y3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIgdGVzdHMg
PSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm5vLWNhY2hlIiBtb2Rl
IHJldmFsaWRhdGVzIHN0YWxlIHJlc3BvbnNlcyBmb3VuZCBpbiB0aGUgY2FjaGUnLAotICAgICAg
ICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm5v
LWNhY2hlIl0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0
cnVlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0s
Ci0gICAgICAgIGV4cGVjdGVkX21heF9hZ2VfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAg
IH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm5vLWNhY2hlIiBtb2Rl
IHJldmFsaWRhdGVzIGZyZXNoIHJlc3BvbnNlcyBmb3VuZCBpbiB0aGUgY2FjaGUnLAotICAgICAg
ICBzdGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm5v
LWNhY2hlIl0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0
cnVlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0s
Ci0gICAgICAgIGV4cGVjdGVkX21heF9hZ2VfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAg
IH0sCi0gICAgXTsKLSAgICBydW5fdGVzdHModGVzdHMpOwotICAgIDwvc2NyaXB0PgotICA8L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLXN0b3JlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI0MTFlZjVmYWZmOTE3N2VlM2U5MDQ3MjY0ZWVk
YTI1ZTE1MDg4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTAgKzAsMCBAQAotCi1QQVNTIFJlcXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9l
cyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBn
b2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25z
ZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBj
YWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29y
ayByZWdhcmRsZXNzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1Mg
UmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9y
IHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJk
bGVzcyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAibm8t
c3RvcmUiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hl
ZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBMYXN0LU1v
ZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBt
b2RlIGRvZXMgbm90IHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBFdGFnIGFu
ZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMg
bm90IHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1vZGlmaWVkIGFu
ZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMg
bm90IHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBFdGFnIGFuZCBmcmVzaCBy
ZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMgbm90IHN0b3Jl
IHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCBy
ZXNwb25zZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUuYW55LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5hbnktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIyNDExZWY1ZmFmZjkxNzdlZTNlOTA0NzI2NGVlZGEyNWUxNTA4ODAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUuYW55LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9k
ZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQg
YW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcyB3aXRoIEV0YWcgYW5kIHN0YWxlIHJl
c3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3QgY2hlY2sg
dGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBu
ZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQor
UEFTUyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBjYWNo
ZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBy
ZWdhcmRsZXNzIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hl
ICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkg
Y2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcyB3aXRoIExh
c3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tc3Rv
cmUiIG1vZGUgZG9lcyBub3Qgc3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSB3aXRoIEV0
YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUg
ZG9lcyBub3Qgc3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZp
ZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUg
ZG9lcyBub3Qgc3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIGZy
ZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3Qg
c3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZy
ZXNoIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5h
bnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5hbnkuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLXN0b3JlLmFueS5odG1sCkBAIC0wLDAgKzEgQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVy
ZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5hbnkuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhMjg3MThiZjIyOTJk
ZjVjMGY5YjcyOTBkZmUyNzRlZjBlMDE1ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtY2FjaGUtbm8tc3RvcmUuYW55LmpzCkBAIC0wLDAgKzEsMzcgQEAKKy8vIE1FVEE6IGdsb2Jh
bD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGNhY2hlIC0gbm8gc3RvcmUK
Ky8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1v
bi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0PXJlcXVlc3QtY2FjaGUuanMK
KwordmFyIHRlc3RzID0gWworICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAibm8tc3RvcmUi
IG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250
ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3MnLAorICAgIHN0YXRlOiAic3Rh
bGUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJuby1zdG9yZSJdLAorICAgIGV4
cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRf
bm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdS
ZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3Ig
cHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayByZWdhcmRs
ZXNzJywKKyAgICBzdGF0ZTogImZyZXNoIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQi
LCAibm8tc3RvcmUiXSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwg
ZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCisg
IH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5v
dCBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlJywKKyAgICBzdGF0ZTogInN0YWxlIiwK
KyAgICByZXF1ZXN0X2NhY2hlOiBbIm5vLXN0b3JlIiwgImRlZmF1bHQiXSwKKyAgICBleHBlY3Rl
ZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2Nh
Y2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVz
dENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhl
IGNhY2hlJywKKyAgICBzdGF0ZTogImZyZXNoIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbIm5vLXN0
b3JlIiwgImRlZmF1bHQiXSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxz
ZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0s
CisgIH0sCitdOworcnVuX3Rlc3RzKHRlc3RzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1j
YWNoZS1uby1zdG9yZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1uby1zdG9yZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjQxMWVmNWZh
ZmY5MTc3ZWUzZTkwNDcyNjRlZWRhMjVlMTUwODgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWNhY2hlLW5vLXN0b3JlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKKworUEFTUyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMgbm90IGNoZWNr
IHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUg
bmV0d29yayByZWdhcmRsZXNzIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVx
dWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHBy
ZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVz
cyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNo
ZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5
IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBF
dGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2Rl
IGRvZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBh
bmQgZ29lcyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQg
ZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5v
dCBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVz
cG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBzdG9yZSB0
aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVz
cG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBzdG9yZSB0
aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BB
U1MgUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBzdG9yZSB0aGUgcmVzcG9u
c2UgaW4gdGhlIGNhY2hlIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLXN0b3JlLmFueS53b3JrZXIuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCAr
MSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3Ry
dWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLXN0b3JlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzk2YjZhNjUwOTA1ZGVmNDAzYTA2MmEyMzdmYzc2MGRkY2RhNzBhYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUt
bm8tc3RvcmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhZG9jdHlwZSBo
dG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8
dGl0bGU+UmVxdWVzdCBjYWNoZSAtIG5vIHN0b3JlPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJo
ZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+Ci0gICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSJyZXF1ZXN0LWNhY2hlLmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAg
ICA8c2NyaXB0PgotICAgIHZhciB0ZXN0cyA9IFsKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1Jl
cXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBw
cmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxl
c3MnLAotICAgICAgICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJk
ZWZhdWx0IiwgIm5vLXN0b3JlIl0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVy
czogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtm
YWxzZSwgdHJ1ZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENh
Y2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3Vz
bHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcycsCi0g
ICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQi
LCAibm8tc3RvcmUiXSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFs
c2UsIGZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0
cnVlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm5v
LXN0b3JlIiBtb2RlIGRvZXMgbm90IHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUnLAot
ICAgICAgICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJuby1zdG9y
ZSIsICJkZWZhdWx0Il0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2Zh
bHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBm
YWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJu
by1zdG9yZSIgbW9kZSBkb2VzIG5vdCBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlJywK
LSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsibm8tc3Rv
cmUiLCAiZGVmYXVsdCJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtm
YWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1ZSwg
ZmFsc2VdLAotICAgICAgfSwKLSAgICBdOwotICAgIHJ1bl90ZXN0cyh0ZXN0cyk7Ci0gICAgPC9z
Y3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1vbmx5LWlmLWNhY2hlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25seS1p
Zi1jYWNoZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjU5
MGZjNjkxMzZkMmY3YzE4OWIwNjc3MjA5YWY5ZDRmYTg5MTY0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNh
Y2hlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0KLVBBU1Mg
UmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBw
cmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZHMgcmV2YWxpZGF0aW9uIGZvciBzdGFs
ZSByZXNwb25zZXMgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2Fj
aGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkg
Y2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkcyByZXZhbGlkYXRpb24gZm9yIHN0YWxlIHJlc3BvbnNl
cyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNo
ZSAib25seS1pZi1jYWNoZWQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBj
YWNoZWQgY29udGVudCBhbmQgYXZvaWRzIHJldmFsaWRhdGlvbiBmb3IgZnJlc2ggcmVzcG9uc2Vz
IHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlm
LWNhY2hlZCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250
ZW50IGFuZCBhdm9pZHMgcmV2YWxpZGF0aW9uIGZvciBmcmVzaCByZXNwb25zZXMgd2l0aCBMYXN0
LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYt
Y2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRl
bnQgYW5kIGRvZXMgbm90IGdvIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlz
IG5vdCBmb3VuZCB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNo
ZSAib25seS1pZi1jYWNoZWQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBj
YWNoZWQgY29udGVudCBhbmQgZG9lcyBub3QgZ28gdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQg
cmVzcG9uc2UgaXMgbm90IGZvdW5kIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9u
c2UKLVBBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2lu
IikgdXNlcyBjYWNoZWQgc2FtZS1vcmlnaW4gcmVkaXJlY3RzIHRvIHNhbWUtb3JpZ2luIGNvbnRl
bnQgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHkt
aWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4iKSB1c2VzIGNhY2hlZCBzYW1lLW9yaWdpbiBy
ZWRpcmVjdHMgdG8gc2FtZS1vcmlnaW4gY29udGVudCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZy
ZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJz
YW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUtb3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9y
aWdpbiBjb250ZW50IHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENh
Y2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgdXNlcyBjYWNoZWQgc2Ft
ZS1vcmlnaW4gcmVkaXJlY3RzIHRvIHNhbWUtb3JpZ2luIGNvbnRlbnQgd2l0aCBMYXN0LU1vZGlm
aWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVk
IiAod2l0aCAic2FtZS1vcmlnaW4iKSBkb2VzIG5vdCBmb2xsb3cgcmVkaXJlY3RzIGFjcm9zcyBv
cmlnaW5zIGFuZCByZWplY3RzIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVx
dWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgZG9lcyBub3Qg
Zm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3JpZ2lucyBhbmQgcmVqZWN0cyB3aXRoIExhc3QtTW9k
aWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNo
ZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIGRvZXMgbm90IGZvbGxvdyByZWRpcmVjdHMgYWNyb3Nz
IG9yaWdpbnMgYW5kIHJlamVjdHMgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBS
ZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4iKSBkb2VzIG5v
dCBmb2xsb3cgcmVkaXJlY3RzIGFjcm9zcyBvcmlnaW5zIGFuZCByZWplY3RzIHdpdGggTGFzdC1N
b2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNh
Y2hlLW9ubHktaWYtY2FjaGVkLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUt
b25seS1pZi1jYWNoZWQuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjU5MGZjNjkxMzZk
MmY3YzE4OWIwNjc3MjA5YWY5ZDRmYTg5MTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBA
QAorCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiIG1vZGUgY2hlY2tzIHRoZSBj
YWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWRzIHJldmFsaWRhdGlv
biBmb3Igc3RhbGUgcmVzcG9uc2VzIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1Mg
UmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBw
cmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZHMgcmV2YWxpZGF0aW9uIGZvciBzdGFs
ZSByZXNwb25zZXMgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBS
ZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHBy
ZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkcyByZXZhbGlkYXRpb24gZm9yIGZyZXNo
IHJlc3BvbnNlcyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNo
ZSAib25seS1pZi1jYWNoZWQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBj
YWNoZWQgY29udGVudCBhbmQgYXZvaWRzIHJldmFsaWRhdGlvbiBmb3IgZnJlc2ggcmVzcG9uc2Vz
IHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hl
ICJvbmx5LWlmLWNhY2hlZCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNh
Y2hlZCBjb250ZW50IGFuZCBkb2VzIG5vdCBnbyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCBy
ZXNwb25zZSBpcyBub3QgZm91bmQgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBS
ZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHBy
ZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGRvZXMgbm90IGdvIHRvIHRoZSBuZXR3b3JrIGlm
IGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3VuZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZy
ZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJz
YW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUtb3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9y
aWdpbiBjb250ZW50IHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENh
Y2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgdXNlcyBjYWNoZWQgc2Ft
ZS1vcmlnaW4gcmVkaXJlY3RzIHRvIHNhbWUtb3JpZ2luIGNvbnRlbnQgd2l0aCBMYXN0LU1vZGlm
aWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVk
IiAod2l0aCAic2FtZS1vcmlnaW4iKSB1c2VzIGNhY2hlZCBzYW1lLW9yaWdpbiByZWRpcmVjdHMg
dG8gc2FtZS1vcmlnaW4gY29udGVudCB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNT
IFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIHVzZXMg
Y2FjaGVkIHNhbWUtb3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9yaWdpbiBjb250ZW50IHdpdGgg
TGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5
LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgZG9lcyBub3QgZm9sbG93IHJlZGlyZWN0
cyBhY3Jvc3Mgb3JpZ2lucyBhbmQgcmVqZWN0cyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNl
CitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIp
IGRvZXMgbm90IGZvbGxvdyByZWRpcmVjdHMgYWNyb3NzIG9yaWdpbnMgYW5kIHJlamVjdHMgd2l0
aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm9u
bHktaWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4iKSBkb2VzIG5vdCBmb2xsb3cgcmVkaXJl
Y3RzIGFjcm9zcyBvcmlnaW5zIGFuZCByZWplY3RzIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9u
c2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2lu
IikgZG9lcyBub3QgZm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3JpZ2lucyBhbmQgcmVqZWN0cyB3
aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNhY2hlZC5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1vbmx5LWlmLWNhY2hlZC5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVk
NTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNh
Y2hlLW9ubHktaWYtY2FjaGVkLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRl
bXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNhY2hlZC5hbnkuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y2FjaGUtb25seS1pZi1jYWNoZWQuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzMDU3ODdjN2MxZDY2NDFl
ZDllYjExYmYwMTUxY2EzOTE4NzdhMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y2FjaGUtb25seS1pZi1jYWNoZWQuYW55LmpzCkBAIC0wLDAgKzEsNjYgQEAKKy8vIE1FVEE6IGds
b2JhbD13aW5kb3csZGVkaWNhdGVkd29ya2VyLHNoYXJlZHdvcmtlcgorLy8gTUVUQTogdGl0bGU9
UmVxdWVzdCBjYWNoZSAtIG9ubHktaWYtY2FjaGVkCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91
dGlscy5qcworLy8gTUVUQTogc2NyaXB0PS9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMKKy8v
IE1FVEE6IHNjcmlwdD1yZXF1ZXN0LWNhY2hlLmpzCisKKy8vIEZJWE1FOiBhdm9pZCBtaXhlZCBj
b250ZW50IHJlcXVlc3RzIHRvIGVuYWJsZSBzZXJ2aWNlIHdvcmtlciBnbG9iYWwKK3ZhciB0ZXN0
cyA9IFsKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2Rl
IGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lk
cyByZXZhbGlkYXRpb24gZm9yIHN0YWxlIHJlc3BvbnNlcycsCisgICAgc3RhdGU6ICJzdGFsZSIs
CisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm9ubHktaWYtY2FjaGVkIl0sCisgICAg
ZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2Nh
Y2hlX2hlYWRlcnM6IFtmYWxzZV0KKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUg
Im9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2Fj
aGVkIGNvbnRlbnQgYW5kIGF2b2lkcyByZXZhbGlkYXRpb24gZm9yIGZyZXNoIHJlc3BvbnNlcycs
CisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm9u
bHktaWYtY2FjaGVkIl0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2Vd
LAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0KKyAgfSwKKyAgeworICAg
IG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2Fj
aGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGRvZXMgbm90IGdvIHRvIHRoZSBu
ZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3VuZCcsCisgICAgc3RhdGU6ICJm
cmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJvbmx5LWlmLWNhY2hlZCJdLAorICAgIHJlc3Bv
bnNlOiBbImVycm9yIl0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbXSwKKyAg
ICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbXQorICB9LAorICB7CisgICAgbmFtZTogJ1Jl
cXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIHVzZXMgY2Fj
aGVkIHNhbWUtb3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9yaWdpbiBjb250ZW50JywKKyAgICBz
dGF0ZTogImZyZXNoIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAib25seS1pZi1j
YWNoZWQiXSwKKyAgICByZWRpcmVjdDogInNhbWUtb3JpZ2luIiwKKyAgICBleHBlY3RlZF92YWxp
ZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hl
YWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNo
ZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUt
b3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9yaWdpbiBjb250ZW50JywKKyAgICBzdGF0ZTogInN0
YWxlIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAib25seS1pZi1jYWNoZWQiXSwK
KyAgICByZWRpcmVjdDogInNhbWUtb3JpZ2luIiwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hl
YWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtm
YWxzZSwgZmFsc2VdLAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAib25seS1p
Zi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIGRvZXMgbm90IGZvbGxvdyByZWRpcmVjdHMg
YWNyb3NzIG9yaWdpbnMgYW5kIHJlamVjdHMnLAorICAgIHN0YXRlOiAiZnJlc2giLAorICAgIHJl
cXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJvbmx5LWlmLWNhY2hlZCJdLAorICAgIHJlZGlyZWN0
OiAiY3Jvc3Mtb3JpZ2luIiwKKyAgICByZXNwb25zZTogW251bGwsICJlcnJvciJdLAorICAgIGV4
cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRf
bm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAn
UmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgZG9lcyBu
b3QgZm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3JpZ2lucyBhbmQgcmVqZWN0cycsCisgICAgc3Rh
dGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm9ubHktaWYtY2Fj
aGVkIl0sCisgICAgcmVkaXJlY3Q6ICJjcm9zcy1vcmlnaW4iLAorICAgIHJlc3BvbnNlOiBbbnVs
bCwgImVycm9yIl0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZh
bHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAg
fSwKK107CitydW5fdGVzdHModGVzdHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hl
LW9ubHktaWYtY2FjaGVkLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNh
Y2hlLW9ubHktaWYtY2FjaGVkLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2
NTkwZmM2OTEzNmQyZjdjMTg5YjA2NzcyMDlhZjlkNGZhODkxNjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25seS1pZi1jYWNoZWQuYW55Lndvcmtlci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNiBAQAorCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQi
IG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQg
YXZvaWRzIHJldmFsaWRhdGlvbiBmb3Igc3RhbGUgcmVzcG9uc2VzIHdpdGggRXRhZyBhbmQgc3Rh
bGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgbW9kZSBjaGVj
a3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZHMgcmV2
YWxpZGF0aW9uIGZvciBzdGFsZSByZXNwb25zZXMgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFs
ZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNr
cyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkcyByZXZh
bGlkYXRpb24gZm9yIGZyZXNoIHJlc3BvbnNlcyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNl
CitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiIG1vZGUgY2hlY2tzIHRoZSBjYWNo
ZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWRzIHJldmFsaWRhdGlvbiBm
b3IgZnJlc2ggcmVzcG9uc2VzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgbW9kZSBjaGVja3MgdGhlIGNhY2hl
IGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBkb2VzIG5vdCBnbyB0byB0aGUgbmV0
d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSBpcyBub3QgZm91bmQgd2l0aCBFdGFnIGFuZCBmcmVz
aCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNr
cyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGRvZXMgbm90IGdv
IHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3VuZCB3aXRoIExh
c3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1p
Zi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUtb3JpZ2luIHJl
ZGlyZWN0cyB0byBzYW1lLW9yaWdpbiBjb250ZW50IHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9u
c2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2lu
IikgdXNlcyBjYWNoZWQgc2FtZS1vcmlnaW4gcmVkaXJlY3RzIHRvIHNhbWUtb3JpZ2luIGNvbnRl
bnQgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2Fj
aGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4iKSB1c2VzIGNhY2hlZCBzYW1l
LW9yaWdpbiByZWRpcmVjdHMgdG8gc2FtZS1vcmlnaW4gY29udGVudCB3aXRoIEV0YWcgYW5kIHN0
YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJz
YW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUtb3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9y
aWdpbiBjb250ZW50IHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1Mg
UmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgZG9lcyBu
b3QgZm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3JpZ2lucyBhbmQgcmVqZWN0cyB3aXRoIEV0YWcg
YW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3
aXRoICJzYW1lLW9yaWdpbiIpIGRvZXMgbm90IGZvbGxvdyByZWRpcmVjdHMgYWNyb3NzIG9yaWdp
bnMgYW5kIHJlamVjdHMgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFT
UyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4iKSBkb2Vz
IG5vdCBmb2xsb3cgcmVkaXJlY3RzIGFjcm9zcyBvcmlnaW5zIGFuZCByZWplY3RzIHdpdGggRXRh
ZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIg
KHdpdGggInNhbWUtb3JpZ2luIikgZG9lcyBub3QgZm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3Jp
Z2lucyBhbmQgcmVqZWN0cyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNhY2hlZC5hbnkud29ya2Vy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25seS1pZi1jYWNoZWQuYW55Lndvcmtlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25seS1pZi1jYWNoZWQuYW55Lndv
cmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBX
ZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1vbmx5LWlmLWNhY2hlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVk
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkYjMxYTM5N2E3NTljNDNmOTE4
YzBmODhhN2YyMDY3YmZhYzMzYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVh
ZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJlcXVlc3QgY2FjaGUg
LSBvbmx5LWlmLWNhY2hlZDwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dl
dC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVxdWVzdC1j
YWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAg
ICB2YXIgdGVzdHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm9u
bHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVk
IGNvbnRlbnQgYW5kIGF2b2lkcyByZXZhbGlkYXRpb24gZm9yIHN0YWxlIHJlc3BvbnNlcycsCi0g
ICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQi
LCAib25seS1pZi1jYWNoZWQiXSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJz
OiBbZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2VdCi0g
ICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJvbmx5LWlmLWNh
Y2hlZCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50
IGFuZCBhdm9pZHMgcmV2YWxpZGF0aW9uIGZvciBmcmVzaCByZXNwb25zZXMnLAotICAgICAgICBz
dGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm9ubHkt
aWYtY2FjaGVkIl0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNl
XSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlXQotICAgICAgfSwK
LSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiIG1v
ZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZG9l
cyBub3QgZ28gdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2UgaXMgbm90IGZvdW5k
JywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsib25s
eS1pZi1jYWNoZWQiXSwKLSAgICAgICAgcmVzcG9uc2U6IFsiZXJyb3IiXSwKLSAgICAgICAgZXhw
ZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVf
aGVhZGVyczogW10KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2Fj
aGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4iKSB1c2VzIGNhY2hlZCBzYW1l
LW9yaWdpbiByZWRpcmVjdHMgdG8gc2FtZS1vcmlnaW4gY29udGVudCcsCi0gICAgICAgIHN0YXRl
OiAiZnJlc2giLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAib25seS1pZi1j
YWNoZWQiXSwKLSAgICAgICAgcmVkaXJlY3Q6ICJzYW1lLW9yaWdpbiIsCi0gICAgICAgIGV4cGVj
dGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVk
X25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICAgIHsKLSAg
ICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9y
aWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUtb3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9yaWdpbiBj
b250ZW50JywKLSAgICAgICAgc3RhdGU6ICJzdGFsZSIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6
IFsiZGVmYXVsdCIsICJvbmx5LWlmLWNhY2hlZCJdLAotICAgICAgICByZWRpcmVjdDogInNhbWUt
b3JpZ2luIiwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZh
bHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0s
Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJvbmx5LWlm
LWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgZG9lcyBub3QgZm9sbG93IHJlZGlyZWN0cyBh
Y3Jvc3Mgb3JpZ2lucyBhbmQgcmVqZWN0cycsCi0gICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAg
ICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAib25seS1pZi1jYWNoZWQiXSwKLSAgICAg
ICAgcmVkaXJlY3Q6ICJjcm9zcy1vcmlnaW4iLAotICAgICAgICByZXNwb25zZTogW251bGwsICJl
cnJvciJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFs
c2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwK
LSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm9ubHktaWYt
Y2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4iKSBkb2VzIG5vdCBmb2xsb3cgcmVkaXJlY3RzIGFj
cm9zcyBvcmlnaW5zIGFuZCByZWplY3RzJywKLSAgICAgICAgc3RhdGU6ICJzdGFsZSIsCi0gICAg
ICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJvbmx5LWlmLWNhY2hlZCJdLAotICAgICAg
ICByZWRpcmVjdDogImNyb3NzLW9yaWdpbiIsCi0gICAgICAgIHJlc3BvbnNlOiBbbnVsbCwgImVy
cm9yIl0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxz
ZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAot
ICAgICAgfSwKLSAgICBdOwotICAgIHJ1bl90ZXN0cyh0ZXN0cyk7Ci0gICAgPC9zY3JpcHQ+Ci0g
IDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1yZWxvYWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3NGUxZGFhZmU2ZGUxOTNiOWUxZjYwNmI2MGYx
OWRmYmQ4ZjZkMDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxNCArMCwwIEBACi0KLVBBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBu
b3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2Vz
IHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQot
UEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUg
Zm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVn
YXJkbGVzcyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVl
c3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlv
dXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNzIHdp
dGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1v
ZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50
IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBMYXN0LU1vZGlmaWVkIGFu
ZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0
b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25z
ZQotUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25z
ZSBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFT
UyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0
aGUgY2FjaGUgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUg
InJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBM
YXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9h
ZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgZXZlbiBpZiBhIHBy
ZXZpb3VzIHJlc3BvbnNlIGlzIGFscmVhZHkgc3RvcmVkIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVz
cG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVz
cG9uc2UgaW4gdGhlIGNhY2hlIGV2ZW4gaWYgYSBwcmV2aW91cyByZXNwb25zZSBpcyBhbHJlYWR5
IHN0b3JlZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVl
c3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgc3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNo
ZSBldmVuIGlmIGEgcHJldmlvdXMgcmVzcG9uc2UgaXMgYWxyZWFkeSBzdG9yZWQgd2l0aCBFdGFn
IGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2Vz
IHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgZXZlbiBpZiBhIHByZXZpb3VzIHJlc3Bv
bnNlIGlzIGFscmVhZHkgc3RvcmVkIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9u
c2UKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5hbnktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU3NGUxZGFhZmU2ZGUxOTNiOWUxZjYwNmI2MGYxOWRmYmQ4ZjZkMDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtcmVsb2FkLmFueS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNCBAQAorCitQQVNTIFJlcXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgbm90IGNo
ZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0
aGUgbmV0d29yayByZWdhcmRsZXNzIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1Mg
UmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBw
cmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxl
c3Mgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2Fj
aGUgInJlbG9hZCIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkg
Y2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcyB3aXRoIEV0
YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRv
ZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQg
Z29lcyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJl
c2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0
aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BB
U1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4g
dGhlIGNhY2hlIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVx
dWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNh
Y2hlIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxv
YWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGggTGFzdC1N
b2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1v
ZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGV2ZW4gaWYgYSBwcmV2aW91
cyByZXNwb25zZSBpcyBhbHJlYWR5IHN0b3JlZCB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNl
CitQQVNTIFJlcXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgc3RvcmUgdGhlIHJlc3BvbnNl
IGluIHRoZSBjYWNoZSBldmVuIGlmIGEgcHJldmlvdXMgcmVzcG9uc2UgaXMgYWxyZWFkeSBzdG9y
ZWQgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2Fj
aGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgZXZl
biBpZiBhIHByZXZpb3VzIHJlc3BvbnNlIGlzIGFscmVhZHkgc3RvcmVkIHdpdGggRXRhZyBhbmQg
ZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9y
ZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGV2ZW4gaWYgYSBwcmV2aW91cyByZXNwb25zZSBp
cyBhbHJlYWR5IHN0b3JlZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1yZWxvYWQuYW55Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtY2FjaGUtcmVsb2FkLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y2FjaGUtcmVsb2FkLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRl
ZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jYWNoZS1yZWxvYWQuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5h
bnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzdiZmZmYjM5ODg5MGQ0NzhkMGE5OTU1YTY0MmE2NjViYzE4ZGYz
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1yZWxvYWQuYW55LmpzCkBA
IC0wLDAgKzEsNTEgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0
aXRsZT1SZXF1ZXN0IGNhY2hlIC0gcmVsb2FkCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGls
cy5qcworLy8gTUVUQTogc2NyaXB0PS9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMKKy8vIE1F
VEE6IHNjcmlwdD1yZXF1ZXN0LWNhY2hlLmpzCisKK3ZhciB0ZXN0cyA9IFsKKyAgeworICAgIG5h
bWU6ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUg
Zm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVn
YXJkbGVzcycsCisgICAgc3RhdGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZh
dWx0IiwgInJlbG9hZCJdLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNl
LCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwK
KyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIG5v
dCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMg
dG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcycsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVx
dWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgInJlbG9hZCJdLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRp
b25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVy
czogW2ZhbHNlLCB0cnVlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgInJl
bG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUnLAorICAgIHN0
YXRlOiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsicmVsb2FkIiwgImRlZmF1bHQiXSwK
KyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCisgICAgZXhw
ZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5h
bWU6ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBp
biB0aGUgY2FjaGUnLAorICAgIHN0YXRlOiAiZnJlc2giLAorICAgIHJlcXVlc3RfY2FjaGU6IFsi
cmVsb2FkIiwgImRlZmF1bHQiXSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtm
YWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3RydWVdLAorICB9LAorICB7
CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgc3RvcmUgdGhlIHJl
c3BvbnNlIGluIHRoZSBjYWNoZSBldmVuIGlmIGEgcHJldmlvdXMgcmVzcG9uc2UgaXMgYWxyZWFk
eSBzdG9yZWQnLAorICAgIHN0YXRlOiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVm
YXVsdCIsICJyZWxvYWQiLCAiZGVmYXVsdCJdLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVh
ZGVyczogW2ZhbHNlLCBmYWxzZSwgdHJ1ZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVy
czogW2ZhbHNlLCB0cnVlLCBmYWxzZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENh
Y2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGV2
ZW4gaWYgYSBwcmV2aW91cyByZXNwb25zZSBpcyBhbHJlYWR5IHN0b3JlZCcsCisgICAgc3RhdGU6
ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgInJlbG9hZCIsICJkZWZh
dWx0Il0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwK
KyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAorICB9LAorXTsK
K3J1bl90ZXN0cyh0ZXN0cyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtcmVsb2Fk
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzRlMWRhYWZlNmRlMTkzYjllMWY2MDZi
NjBmMTlkZmJkOGY2ZDA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJl
bG9hZC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKK1BBU1MgUmVx
dWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2
aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mg
d2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIg
bW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRl
bnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcyB3aXRoIExhc3QtTW9kaWZpZWQg
YW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMg
bm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29l
cyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNzIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hl
IGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJl
Z2FyZGxlc3Mgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1
ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2Fj
aGUgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9h
ZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1v
ZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9k
ZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBFdGFnIGFuZCBmcmVz
aCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRo
ZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNw
b25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNw
b25zZSBpbiB0aGUgY2FjaGUgZXZlbiBpZiBhIHByZXZpb3VzIHJlc3BvbnNlIGlzIGFscmVhZHkg
c3RvcmVkIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJy
ZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGV2ZW4gaWYg
YSBwcmV2aW91cyByZXNwb25zZSBpcyBhbHJlYWR5IHN0b3JlZCB3aXRoIExhc3QtTW9kaWZpZWQg
YW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMg
c3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBldmVuIGlmIGEgcHJldmlvdXMgcmVzcG9u
c2UgaXMgYWxyZWFkeSBzdG9yZWQgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBS
ZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUg
Y2FjaGUgZXZlbiBpZiBhIHByZXZpb3VzIHJlc3BvbnNlIGlzIGFscmVhZHkgc3RvcmVkIHdpdGgg
TGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWNhY2hlLXJlbG9hZC5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtcmVs
b2FkLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYw
YTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJl
bG9hZC5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVx
dWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVk
IHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWNhY2hlLXJlbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NWZmNTgzMjQ4MmRkOTcxYjQwNjIxMDA0
MTRkMGIyMTg3ZTQ3OGUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1yZWxvYWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDYyICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVxdWVzdCBjYWNoZSAtIHJlbG9hZDwvdGl0
bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3
Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVxdWVzdC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0g
IDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbCi0gICAg
ICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIG5vdCBj
aGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8g
dGhlIG5ldHdvcmsgcmVnYXJkbGVzcycsCi0gICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAg
ICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAicmVsb2FkIl0sCi0gICAgICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25v
X2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAg
ICBuYW1lOiAnUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNh
Y2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3Jr
IHJlZ2FyZGxlc3MnLAotICAgICAgICBzdGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVzdF9j
YWNoZTogWyJkZWZhdWx0IiwgInJlbG9hZCJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9u
X2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFk
ZXJzOiBbZmFsc2UsIHRydWVdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1Jl
cXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgc3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBj
YWNoZScsCi0gICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBb
InJlbG9hZCIsICJkZWZhdWx0Il0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVy
czogW2ZhbHNlLCB0cnVlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3Ry
dWUsIGZhbHNlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2Fj
aGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUnLAot
ICAgICAgICBzdGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJyZWxvYWQi
LCAiZGVmYXVsdCJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxz
ZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlXSwKLSAgICAgIH0s
Ci0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2Vz
IHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgZXZlbiBpZiBhIHByZXZpb3VzIHJlc3Bv
bnNlIGlzIGFscmVhZHkgc3RvcmVkJywKLSAgICAgICAgc3RhdGU6ICJzdGFsZSIsCi0gICAgICAg
IHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJyZWxvYWQiLCAiZGVmYXVsdCJdLAotICAgICAg
ICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2UsIHRydWVdLAotICAg
ICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWUsIGZhbHNlXSwKLSAg
ICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9k
ZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgZXZlbiBpZiBhIHByZXZpb3Vz
IHJlc3BvbnNlIGlzIGFscmVhZHkgc3RvcmVkJywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0g
ICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJyZWxvYWQiLCAiZGVmYXVsdCJdLAot
ICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAg
ICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAotICAgICAgfSwK
LSAgICBdOwotICAgIHJ1bl90ZXN0cyh0ZXN0cyk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNWI3ZWIzMWE3MTBhMTNlYzJiZjRiNDYxM2Y0YmVkNWZlMDM4
YzBjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY29uc3VtZS1lbXB0eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
NiArMCwwIEBACi0KLVBBU1MgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyB0ZXh0Ci1QQVNTIENv
bnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgotUEFTUyBDb25zdW1lIHJlcXVlc3QncyBib2R5
IGFzIGFycmF5QnVmZmVyCi1QQVNTIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMganNvbiAoZXJy
b3IgY2FzZSkKLUZBSUwgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBmb3JtRGF0YSB3aXRoIGNv
cnJlY3QgbXVsdGlwYXJ0IHR5cGUgKGVycm9yIGNhc2UpIHByb21pc2VfcmVqZWN0c19qczogZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyB1bmRlZmluZWQgd2l0aCB0eXBl
ICJ1bmRlZmluZWQiLCBub3QgYW4gb2JqZWN0Ci1GQUlMIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkg
YXMgZm9ybURhdGEgd2l0aCBjb3JyZWN0IHVybGVuY29kZWQgdHlwZSBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCi1GQUlMIENvbnN1bWUgcmVx
dWVzdCdzIGJvZHkgYXMgZm9ybURhdGEgd2l0aG91dCBjb3JyZWN0IHR5cGUgKGVycm9yIGNhc2Up
IHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0
aHJldyB1bmRlZmluZWQgd2l0aCB0eXBlICJ1bmRlZmluZWQiLCBub3QgYW4gb2JqZWN0Ci1QQVNT
IENvbnN1bWUgZW1wdHkgYmxvYiByZXF1ZXN0IGJvZHkgYXMgYXJyYXlCdWZmZXIKLVBBU1MgQ29u
c3VtZSBlbXB0eSB0ZXh0IHJlcXVlc3QgYm9keSBhcyBhcnJheUJ1ZmZlcgotUEFTUyBDb25zdW1l
IGVtcHR5IGJsb2IgcmVxdWVzdCBib2R5IGFzIHRleHQKLVBBU1MgQ29uc3VtZSBlbXB0eSB0ZXh0
IHJlcXVlc3QgYm9keSBhcyB0ZXh0Ci1QQVNTIENvbnN1bWUgZW1wdHkgVVJMU2VhcmNoUGFyYW1z
IHJlcXVlc3QgYm9keSBhcyB0ZXh0Ci1GQUlMIENvbnN1bWUgZW1wdHkgRm9ybURhdGEgcmVxdWVz
dCBib2R5IGFzIHRleHQgYXNzZXJ0X2VxdWFsczogUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVt
cHR5IGV4cGVjdGVkIDAgYnV0IGdvdCA0NAotUEFTUyBDb25zdW1lIGVtcHR5IEFycmF5QnVmZmVy
IHJlcXVlc3QgYm9keSBhcyB0ZXh0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1l
LWVtcHR5LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS5hbnkt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViN2ViMzFhNzEwYTEzZWMyYmY0YjQ2MTNmNGJlZDVm
ZTAzOGMwYzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS5h
bnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKKworUEFTUyBDb25zdW1lIHJlcXVlc3Qn
cyBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBibG9iCitQQVNT
IENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgYXJyYXlCdWZmZXIKK1BBU1MgQ29uc3VtZSByZXF1
ZXN0J3MgYm9keSBhcyBqc29uIChlcnJvciBjYXNlKQorRkFJTCBDb25zdW1lIHJlcXVlc3QncyBi
b2R5IGFzIGZvcm1EYXRhIHdpdGggY29ycmVjdCBtdWx0aXBhcnQgdHlwZSAoZXJyb3IgY2FzZSkg
cHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRo
cmV3IHVuZGVmaW5lZCB3aXRoIHR5cGUgInVuZGVmaW5lZCIsIG5vdCBhbiBvYmplY3QKK0ZBSUwg
Q29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBmb3JtRGF0YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2Rl
ZCB0eXBlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRl
ZmluZWQKK0ZBSUwgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBmb3JtRGF0YSB3aXRob3V0IGNv
cnJlY3QgdHlwZSAoZXJyb3IgY2FzZSkgcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IHVuZGVmaW5lZCB3aXRoIHR5cGUgInVuZGVmaW5l
ZCIsIG5vdCBhbiBvYmplY3QKK1BBU1MgQ29uc3VtZSBlbXB0eSBibG9iIHJlcXVlc3QgYm9keSBh
cyBhcnJheUJ1ZmZlcgorUEFTUyBDb25zdW1lIGVtcHR5IHRleHQgcmVxdWVzdCBib2R5IGFzIGFy
cmF5QnVmZmVyCitQQVNTIENvbnN1bWUgZW1wdHkgYmxvYiByZXF1ZXN0IGJvZHkgYXMgdGV4dAor
UEFTUyBDb25zdW1lIGVtcHR5IHRleHQgcmVxdWVzdCBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3Vt
ZSBlbXB0eSBVUkxTZWFyY2hQYXJhbXMgcmVxdWVzdCBib2R5IGFzIHRleHQKK0ZBSUwgQ29uc3Vt
ZSBlbXB0eSBGb3JtRGF0YSByZXF1ZXN0IGJvZHkgYXMgdGV4dCBhc3NlcnRfZXF1YWxzOiBSZXNv
bHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkgZXhwZWN0ZWQgMCBidXQgZ290IDQ0CitQQVNTIENv
bnN1bWUgZW1wdHkgQXJyYXlCdWZmZXIgcmVxdWVzdCBib2R5IGFzIHRleHQKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29u
c3VtZS1lbXB0eS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYw
YTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUt
ZW1wdHkuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQg
Zm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3Qg
LS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNvbnN1bWUtZW1wdHkuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuYW55Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAzNGE4NjA0MWE3NGY1OGM0ZDAzMTBlZjgwOWY2MTcwYjA5ZGJiMDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS5hbnkuanMKQEAgLTAs
MCArMSwxMDEgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRs
ZT1SZXF1ZXN0IGNvbnN1bWUgZW1wdHkgYm9kaWVzCisKK2Z1bmN0aW9uIGNoZWNrQm9keVRleHQo
dGVzdCwgcmVxdWVzdCkgeworICByZXR1cm4gcmVxdWVzdC50ZXh0KCkudGhlbihmdW5jdGlvbihi
b2R5QXNUZXh0KSB7CisgICAgYXNzZXJ0X2VxdWFscyhib2R5QXNUZXh0LCAiIiwgIlJlc29sdmVk
IHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOworICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlV
c2VkKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrQm9keUJsb2IodGVzdCwgcmVxdWVzdCkg
eworICByZXR1cm4gcmVxdWVzdC5ibG9iKCkudGhlbihmdW5jdGlvbihib2R5QXNCbG9iKSB7Cisg
ICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsK
KyAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgICAgcmVhZGVyLm9ubG9h
ZCA9IGZ1bmN0aW9uKGV2dCkgeworICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQpCisgICAg
ICB9OworICAgICAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgcmVqZWN0
KCJCbG9iJ3MgcmVhZGVyIGZhaWxlZCIpOworICAgICAgfTsKKyAgICAgIHJlYWRlci5yZWFkQXNU
ZXh0KGJvZHlBc0Jsb2IpOworICAgIH0pOworICAgIHJldHVybiBwcm9taXNlLnRoZW4oZnVuY3Rp
b24oYm9keSkgeworICAgICAgYXNzZXJ0X2VxdWFscyhib2R5LCAiIiwgIlJlc29sdmVkIHZhbHVl
IHNob3VsZCBiZSBlbXB0eSIpOworICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQp
OworICAgIH0pOworICB9KTsKK30KKworZnVuY3Rpb24gY2hlY2tCb2R5QXJyYXlCdWZmZXIodGVz
dCwgcmVxdWVzdCkgeworICByZXR1cm4gcmVxdWVzdC5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rp
b24oYm9keUFzQXJyYXlCdWZmZXIpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGJvZHlBc0FycmF5QnVm
ZmVyLmJ5dGVMZW5ndGgsIDAsICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkiKTsKKyAg
ICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNlZCk7CisgIH0pOworfQorCitmdW5jdGlvbiBj
aGVja0JvZHlKU09OKHRlc3QsIHJlcXVlc3QpIHsKKyAgcmV0dXJuIHJlcXVlc3QuanNvbigpLnRo
ZW4oCisgICAgZnVuY3Rpb24oYm9keUFzSlNPTikgeworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgi
SlNPTiBwYXJzaW5nIHNob3VsZCBmYWlsIik7CisgICAgfSwKKyAgICBmdW5jdGlvbigpIHsKKyAg
ICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkKTsKKyAgICB9KTsKK30KKworZnVuY3Rp
b24gY2hlY2tCb2R5Rm9ybURhdGEodGVzdCwgcmVxdWVzdCkgeworICByZXR1cm4gcmVxdWVzdC5m
b3JtRGF0YSgpLnRoZW4oZnVuY3Rpb24oYm9keUFzRm9ybURhdGEpIHsKKyAgICBhc3NlcnRfdHJ1
ZShib2R5QXNGb3JtRGF0YSBpbnN0YW5jZW9mIEZvcm1EYXRhLCAiU2hvdWxkIHJlY2VpdmUgYSBG
b3JtRGF0YSIpOworICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkKTsKKyAgfSk7Cit9
CisKK2Z1bmN0aW9uIGNoZWNrQm9keUZvcm1EYXRhRXJyb3IodGVzdCwgcmVxdWVzdCkgeworICBy
ZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcmVxdWVzdC5mb3JtRGF0
YSgpKS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2Vk
KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrUmVxdWVzdFdpdGhOb0JvZHkoYm9keVR5cGUs
IGNoZWNrRnVuY3Rpb24sIGhlYWRlcnMgPSBbXSkgeworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dGVzdCkgeworICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBP
U1QiLCAiaGVhZGVycyI6IGhlYWRlcnN9KTsKKyAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5
VXNlZCk7CisgICAgcmV0dXJuIGNoZWNrRnVuY3Rpb24odGVzdCwgcmVxdWVzdCk7CisgIH0sICJD
b25zdW1lIHJlcXVlc3QncyBib2R5IGFzICIgKyBib2R5VHlwZSk7Cit9CisKK2NoZWNrUmVxdWVz
dFdpdGhOb0JvZHkoInRleHQiLCBjaGVja0JvZHlUZXh0KTsKK2NoZWNrUmVxdWVzdFdpdGhOb0Jv
ZHkoImJsb2IiLCBjaGVja0JvZHlCbG9iKTsKK2NoZWNrUmVxdWVzdFdpdGhOb0JvZHkoImFycmF5
QnVmZmVyIiwgY2hlY2tCb2R5QXJyYXlCdWZmZXIpOworY2hlY2tSZXF1ZXN0V2l0aE5vQm9keSgi
anNvbiAoZXJyb3IgY2FzZSkiLCBjaGVja0JvZHlKU09OKTsKK2NoZWNrUmVxdWVzdFdpdGhOb0Jv
ZHkoImZvcm1EYXRhIHdpdGggY29ycmVjdCBtdWx0aXBhcnQgdHlwZSAoZXJyb3IgY2FzZSkiLCBj
aGVja0JvZHlGb3JtRGF0YUVycm9yLCBbWyJDb250ZW50LVR5cGUiLCAnbXVsdGlwYXJ0L2Zvcm0t
ZGF0YTsgYm91bmRhcnk9ImJvdW5kYXJ5IiddXSk7CitjaGVja1JlcXVlc3RXaXRoTm9Cb2R5KCJm
b3JtRGF0YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2RlZCB0eXBlIiwgY2hlY2tCb2R5Rm9ybURhdGEs
IFtbIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hh
cnNldD1VVEYtOCJdXSk7CitjaGVja1JlcXVlc3RXaXRoTm9Cb2R5KCJmb3JtRGF0YSB3aXRob3V0
IGNvcnJlY3QgdHlwZSAoZXJyb3IgY2FzZSkiLCBjaGVja0JvZHlGb3JtRGF0YUVycm9yKTsKKwor
ZnVuY3Rpb24gY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keShib2R5VHlwZSwgYm9keSwgYXNUZXh0
KSB7CisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIHJlcXVlc3QgPSBu
ZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogYm9keX0pOworICAgIGFz
c2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIp
OworICAgIGlmIChhc1RleHQpIHsKKyAgICAgIHJldHVybiByZXF1ZXN0LnRleHQoKS50aGVuKGZ1
bmN0aW9uKGJvZHlBc1N0cmluZykgeworICAgICAgICBhc3NlcnRfZXF1YWxzKGJvZHlBc1N0cmlu
Zy5sZW5ndGgsIDAsICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkiKTsKKyAgICAgICAg
YXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIHRydWUgYWZ0ZXIgYmVp
bmcgY29uc3VtZWQiKTsKKyAgICAgIH0pOworICAgIH0KKyAgICByZXR1cm4gcmVxdWVzdC5hcnJh
eUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oYm9keUFzQXJyYXlCdWZmZXIpIHsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoYm9keUFzQXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCwgMCwgIlJlc29sdmVkIHZhbHVl
IHNob3VsZCBiZSBlbXB0eSIpOworICAgICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwg
ImJvZHlVc2VkIGlzIHRydWUgYWZ0ZXIgYmVpbmcgY29uc3VtZWQiKTsKKyAgICB9KTsKKyAgfSwg
IkNvbnN1bWUgZW1wdHkgIiArIGJvZHlUeXBlICsgIiByZXF1ZXN0IGJvZHkgYXMgIiArIChhc1Rl
eHQgPyAidGV4dCIgOiAiYXJyYXlCdWZmZXIiKSk7Cit9CisKKy8vIEZJWE1FOiBBZGQgQnVmZmVy
U291cmNlLCBGb3JtRGF0YSBhbmQgVVJMU2VhcmNoUGFyYW1zLgorY2hlY2tSZXF1ZXN0V2l0aEVt
cHR5Qm9keSgiYmxvYiIsIG5ldyBCbG9iKFtdLCB7ICJ0eXBlIiA6ICJ0ZXh0L3BsYWluIiB9KSwg
ZmFsc2UpOworY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgidGV4dCIsICIiLCBmYWxzZSk7Citj
aGVja1JlcXVlc3RXaXRoRW1wdHlCb2R5KCJibG9iIiwgbmV3IEJsb2IoW10sIHsgInR5cGUiIDog
InRleHQvcGxhaW4iIH0pLCB0cnVlKTsKK2NoZWNrUmVxdWVzdFdpdGhFbXB0eUJvZHkoInRleHQi
LCAiIiwgdHJ1ZSk7CitjaGVja1JlcXVlc3RXaXRoRW1wdHlCb2R5KCJVUkxTZWFyY2hQYXJhbXMi
LCBuZXcgVVJMU2VhcmNoUGFyYW1zKCIiKSwgdHJ1ZSk7CisvLyBGSVhNRTogVGhpcyB0ZXN0IGFz
c3VtZXMgdGhhdCB0aGUgZW1wdHkgc3RyaW5nIGJlIHJldHVybmVkIGJ1dCBpdCBpcyBub3QgY2xl
YXIgd2hldGhlciB0aGF0IGlzIHJpZ2h0LiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvcHVsbC8zOTUwLgorY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgiRm9y
bURhdGEiLCBuZXcgRm9ybURhdGEoKSwgdHJ1ZSk7CitjaGVja1JlcXVlc3RXaXRoRW1wdHlCb2R5
KCJBcnJheUJ1ZmZlciIsIG5ldyBBcnJheUJ1ZmZlcigpLCB0cnVlKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWNvbnN1bWUtZW1wdHkuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWI3ZWIzMWE3MTBhMTNlYzJiZjRiNDYxM2Y0YmVkNWZlMDM4YzBjNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTYgQEAKKworUEFTUyBDb25zdW1lIHJlcXVlc3QncyBib2R5IGFzIHRleHQKK1BB
U1MgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBibG9iCitQQVNTIENvbnN1bWUgcmVxdWVzdCdz
IGJvZHkgYXMgYXJyYXlCdWZmZXIKK1BBU1MgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBqc29u
IChlcnJvciBjYXNlKQorRkFJTCBDb25zdW1lIHJlcXVlc3QncyBib2R5IGFzIGZvcm1EYXRhIHdp
dGggY29ycmVjdCBtdWx0aXBhcnQgdHlwZSAoZXJyb3IgY2FzZSkgcHJvbWlzZV9yZWplY3RzX2pz
OiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IHVuZGVmaW5lZCB3aXRo
IHR5cGUgInVuZGVmaW5lZCIsIG5vdCBhbiBvYmplY3QKK0ZBSUwgQ29uc3VtZSByZXF1ZXN0J3Mg
Ym9keSBhcyBmb3JtRGF0YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2RlZCB0eXBlIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKK0ZBSUwgQ29uc3Vt
ZSByZXF1ZXN0J3MgYm9keSBhcyBmb3JtRGF0YSB3aXRob3V0IGNvcnJlY3QgdHlwZSAoZXJyb3Ig
Y2FzZSkgcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBl
IH0iIHRocmV3IHVuZGVmaW5lZCB3aXRoIHR5cGUgInVuZGVmaW5lZCIsIG5vdCBhbiBvYmplY3QK
K1BBU1MgQ29uc3VtZSBlbXB0eSBibG9iIHJlcXVlc3QgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFT
UyBDb25zdW1lIGVtcHR5IHRleHQgcmVxdWVzdCBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENv
bnN1bWUgZW1wdHkgYmxvYiByZXF1ZXN0IGJvZHkgYXMgdGV4dAorUEFTUyBDb25zdW1lIGVtcHR5
IHRleHQgcmVxdWVzdCBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBlbXB0eSBVUkxTZWFyY2hQ
YXJhbXMgcmVxdWVzdCBib2R5IGFzIHRleHQKK0ZBSUwgQ29uc3VtZSBlbXB0eSBGb3JtRGF0YSBy
ZXF1ZXN0IGJvZHkgYXMgdGV4dCBhc3NlcnRfZXF1YWxzOiBSZXNvbHZlZCB2YWx1ZSBzaG91bGQg
YmUgZW1wdHkgZXhwZWN0ZWQgMCBidXQgZ290IDQ0CitQQVNTIENvbnN1bWUgZW1wdHkgQXJyYXlC
dWZmZXIgcmVxdWVzdCBib2R5IGFzIHRleHQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNv
bnN1bWUtZW1wdHkuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHku
YW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUw
NjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0
eS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRl
c3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWNvbnN1bWUtZW1wdHkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5Lmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxNTk5NTg4ZWVkM2Q0MTJhMzA2YWQ1M2Zk
NmVhNWY3YTQ3NGEyYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDExNCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJlcXVlc3QgY29uc3VtZSBlbXB0eSBib2Rp
ZXM8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3Bl
Yy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRw
czovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keS1taXhpbiI+Ci0gICAgPG1ldGEgbmFtZT0i
YXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5j
cmYuY2Fub24uZnIiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICBm
dW5jdGlvbiBjaGVja0JvZHlUZXh0KHRlc3QsIHJlcXVlc3QpIHsKLSAgICAgIHJldHVybiByZXF1
ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsKLSAgICAgICAgYXNzZXJ0X2Vx
dWFscyhib2R5QXNUZXh0LCAiIiwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOwot
ICAgICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNlZCk7Ci0gICAgICB9KTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBjaGVja0JvZHlCbG9iKHRlc3QsIHJlcXVlc3QpIHsKLSAgICAgIHJl
dHVybiByZXF1ZXN0LmJsb2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2IpIHsKLSAgICAgICAg
dmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAg
ICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKLSAgICAgICAgICByZWFkZXIu
b25sb2FkID0gZnVuY3Rpb24oZXZ0KSB7Ci0gICAgICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1
bHQpCi0gICAgICAgICAgfTsKLSAgICAgICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgcmVqZWN0KCJCbG9iJ3MgcmVhZGVyIGZhaWxlZCIpOwotICAgICAgICAg
IH07Ci0gICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYm9keUFzQmxvYik7Ci0gICAgICAgIH0p
OwotICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKGZ1bmN0aW9uKGJvZHkpIHsKLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGJvZHksICIiLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5
Iik7Ci0gICAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQpOwotICAgICAgICB9
KTsKLSAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNoZWNrQm9keUFycmF5QnVmZmVy
KHRlc3QsIHJlcXVlc3QpIHsKLSAgICAgIHJldHVybiByZXF1ZXN0LmFycmF5QnVmZmVyKCkudGhl
bihmdW5jdGlvbihib2R5QXNBcnJheUJ1ZmZlcikgewotICAgICAgICBhc3NlcnRfZXF1YWxzKGJv
ZHlBc0FycmF5QnVmZmVyLmJ5dGVMZW5ndGgsIDAsICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUg
ZW1wdHkiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQpOwotICAgICAg
fSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY2hlY2tCb2R5SlNPTih0ZXN0LCByZXF1ZXN0KSB7
Ci0gICAgICByZXR1cm4gcmVxdWVzdC5qc29uKCkudGhlbigKLSAgICAgICAgZnVuY3Rpb24oYm9k
eUFzSlNPTikgewotICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIkpTT04gcGFyc2luZyBzaG91
bGQgZmFpbCIpOwotICAgICAgICB9LAotICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICBh
c3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNlZCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIGNoZWNrQm9keUZvcm1EYXRhKHRlc3QsIHJlcXVlc3QpIHsKLSAgICAgIHJldHVy
biByZXF1ZXN0LmZvcm1EYXRhKCkudGhlbihmdW5jdGlvbihib2R5QXNGb3JtRGF0YSkgewotICAg
ICAgICBhc3NlcnRfdHJ1ZShib2R5QXNGb3JtRGF0YSBpbnN0YW5jZW9mIEZvcm1EYXRhLCAiU2hv
dWxkIHJlY2VpdmUgYSBGb3JtRGF0YSIpOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5i
b2R5VXNlZCk7Ci0gICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNoZWNrQm9keUZvcm1E
YXRhRXJyb3IodGVzdCwgcmVxdWVzdCkgewotICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19q
cyh0ZXN0LCBUeXBlRXJyb3IsIHJlcXVlc3QuZm9ybURhdGEoKSkudGhlbihmdW5jdGlvbigpIHsK
LSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQpOwotICAgICAgfSk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gY2hlY2tSZXF1ZXN0V2l0aE5vQm9keShib2R5VHlwZSwgY2hlY2tG
dW5jdGlvbiwgaGVhZGVycyA9IFtdKSB7Ci0gICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVz
dCkgewotICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQ
T1NUIiwgImhlYWRlcnMiOiBoZWFkZXJzfSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0
LmJvZHlVc2VkKTsKLSAgICAgICAgcmV0dXJuIGNoZWNrRnVuY3Rpb24odGVzdCwgcmVxdWVzdCk7
Ci0gICAgICB9LCAiQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyAiICsgYm9keVR5cGUpOwotICAg
IH0KLQotICAgIGNoZWNrUmVxdWVzdFdpdGhOb0JvZHkoInRleHQiLCBjaGVja0JvZHlUZXh0KTsK
LSAgICBjaGVja1JlcXVlc3RXaXRoTm9Cb2R5KCJibG9iIiwgY2hlY2tCb2R5QmxvYik7Ci0gICAg
Y2hlY2tSZXF1ZXN0V2l0aE5vQm9keSgiYXJyYXlCdWZmZXIiLCBjaGVja0JvZHlBcnJheUJ1ZmZl
cik7Ci0gICAgY2hlY2tSZXF1ZXN0V2l0aE5vQm9keSgianNvbiAoZXJyb3IgY2FzZSkiLCBjaGVj
a0JvZHlKU09OKTsKLSAgICBjaGVja1JlcXVlc3RXaXRoTm9Cb2R5KCJmb3JtRGF0YSB3aXRoIGNv
cnJlY3QgbXVsdGlwYXJ0IHR5cGUgKGVycm9yIGNhc2UpIiwgY2hlY2tCb2R5Rm9ybURhdGFFcnJv
ciwgW1siQ29udGVudC1UeXBlIiwgJ211bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSJib3Vu
ZGFyeSInXV0pOwotICAgIGNoZWNrUmVxdWVzdFdpdGhOb0JvZHkoImZvcm1EYXRhIHdpdGggY29y
cmVjdCB1cmxlbmNvZGVkIHR5cGUiLCBjaGVja0JvZHlGb3JtRGF0YSwgW1siQ29udGVudC1UeXBl
IiwgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Il1dKTsK
LSAgICBjaGVja1JlcXVlc3RXaXRoTm9Cb2R5KCJmb3JtRGF0YSB3aXRob3V0IGNvcnJlY3QgdHlw
ZSAoZXJyb3IgY2FzZSkiLCBjaGVja0JvZHlGb3JtRGF0YUVycm9yKTsKLQotICAgIGZ1bmN0aW9u
IGNoZWNrUmVxdWVzdFdpdGhFbXB0eUJvZHkoYm9keVR5cGUsIGJvZHksIGFzVGV4dCkgewotICAg
ICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBu
ZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogYm9keX0pOwotICAgICAg
ICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIGZhbHNlIGF0IGlu
aXQiKTsKLSAgICAgICAgaWYgKGFzVGV4dCkgewotICAgICAgICAgIHJldHVybiByZXF1ZXN0LnRl
eHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc1N0cmluZykgewotICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhib2R5QXNTdHJpbmcubGVuZ3RoLCAwLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVt
cHR5Iik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keVVz
ZWQgaXMgdHJ1ZSBhZnRlciBiZWluZyBjb25zdW1lZCIpOwotICAgICAgICAgIH0pOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiByZXF1ZXN0LmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbihi
b2R5QXNBcnJheUJ1ZmZlcikgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoYm9keUFzQXJyYXlC
dWZmZXIuYnl0ZUxlbmd0aCwgMCwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOwot
ICAgICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5VXNlZCBpcyB0cnVl
IGFmdGVyIGJlaW5nIGNvbnN1bWVkIik7Ci0gICAgICAgIH0pOwotICAgICAgfSwgIkNvbnN1bWUg
ZW1wdHkgIiArIGJvZHlUeXBlICsgIiByZXF1ZXN0IGJvZHkgYXMgIiArIChhc1RleHQgPyAidGV4
dCIgOiAiYXJyYXlCdWZmZXIiKSk7Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IEFkZCBCdWZmZXJT
b3VyY2UsIEZvcm1EYXRhIGFuZCBVUkxTZWFyY2hQYXJhbXMuCi0gICAgY2hlY2tSZXF1ZXN0V2l0
aEVtcHR5Qm9keSgiYmxvYiIsIG5ldyBCbG9iKFtdLCB7ICJ0eXBlIiA6ICJ0ZXh0L3BsYWluIiB9
KSwgZmFsc2UpOwotICAgIGNoZWNrUmVxdWVzdFdpdGhFbXB0eUJvZHkoInRleHQiLCAiIiwgZmFs
c2UpOwotICAgIGNoZWNrUmVxdWVzdFdpdGhFbXB0eUJvZHkoImJsb2IiLCBuZXcgQmxvYihbXSwg
eyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSksIHRydWUpOwotICAgIGNoZWNrUmVxdWVzdFdpdGhF
bXB0eUJvZHkoInRleHQiLCAiIiwgdHJ1ZSk7Ci0gICAgY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9k
eSgiVVJMU2VhcmNoUGFyYW1zIiwgbmV3IFVSTFNlYXJjaFBhcmFtcygiIiksIHRydWUpOwotICAg
IC8vIEZJWE1FOiBUaGlzIHRlc3QgYXNzdW1lcyB0aGF0IHRoZSBlbXB0eSBzdHJpbmcgYmUgcmV0
dXJuZWQgYnV0IGl0IGlzIG5vdCBjbGVhciB3aGV0aGVyIHRoYXQgaXMgcmlnaHQuIFNlZSBodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsLzM5NTAuCi0gICAgY2hl
Y2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgiRm9ybURhdGEiLCBuZXcgRm9ybURhdGEoKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgiQXJyYXlCdWZmZXIiLCBuZXcgQXJyYXlC
dWZmZXIoKSwgdHJ1ZSk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1j
b25zdW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM3Njhj
OWJjNTc1MGMwMzhiZTFlYmZmNWVlNmEyNzhmZDNmMTcyYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0KLVBBU1MgQ29uc3VtZSBTdHJpbmcg
cmVxdWVzdCdzIGJvZHkgYXMgdGV4dAotUEFTUyBDb25zdW1lIFN0cmluZyByZXF1ZXN0J3MgYm9k
eSBhcyBibG9iCi1QQVNTIENvbnN1bWUgU3RyaW5nIHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVm
ZmVyCi1QQVNTIENvbnN1bWUgU3RyaW5nIHJlcXVlc3QncyBib2R5IGFzIEpTT04KLVBBU1MgQ29u
c3VtZSBBcnJheUJ1ZmZlciByZXF1ZXN0J3MgYm9keSBhcyB0ZXh0Ci1QQVNTIENvbnN1bWUgQXJy
YXlCdWZmZXIgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgotUEFTUyBDb25zdW1lIEFycmF5QnVmZmVy
IHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCi1QQVNTIENvbnN1bWUgQXJyYXlCdWZmZXIg
cmVxdWVzdCdzIGJvZHkgYXMgSlNPTgotUEFTUyBDb25zdW1lIFVpbnQ4QXJyYXkgcmVxdWVzdCdz
IGJvZHkgYXMgdGV4dAotUEFTUyBDb25zdW1lIFVpbnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMg
YmxvYgotUEFTUyBDb25zdW1lIFVpbnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgYXJyYXlCdWZm
ZXIKLVBBU1MgQ29uc3VtZSBVaW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIEpTT04KLVBBU1Mg
Q29uc3VtZSBJbnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dAotUEFTUyBDb25zdW1lIElu
dDhBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBibG9iCi1QQVNTIENvbnN1bWUgSW50OEFycmF5IHJl
cXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCi1QQVNTIENvbnN1bWUgSW50OEFycmF5IHJlcXVl
c3QncyBib2R5IGFzIEpTT04KLVBBU1MgQ29uc3VtZSBGbG9hdDMyQXJyYXkgcmVxdWVzdCdzIGJv
ZHkgYXMgdGV4dAotUEFTUyBDb25zdW1lIEZsb2F0MzJBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBi
bG9iCi1QQVNTIENvbnN1bWUgRmxvYXQzMkFycmF5IHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVm
ZmVyCi1QQVNTIENvbnN1bWUgRmxvYXQzMkFycmF5IHJlcXVlc3QncyBib2R5IGFzIEpTT04KLVBB
U1MgQ29uc3VtZSBEYXRhVmlldyByZXF1ZXN0J3MgYm9keSBhcyB0ZXh0Ci1QQVNTIENvbnN1bWUg
RGF0YVZpZXcgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgotUEFTUyBDb25zdW1lIERhdGFWaWV3IHJl
cXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCi1QQVNTIENvbnN1bWUgRGF0YVZpZXcgcmVxdWVz
dCdzIGJvZHkgYXMgSlNPTgotUEFTUyBDb25zdW1lIEZvcm1EYXRhIHJlcXVlc3QncyBib2R5IGFz
IEZvcm1EYXRhCi1QQVNTIENvbnN1bWUgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMgYmxvYgotUEFT
UyBDb25zdW1lIGJsb2IgcmVzcG9uc2UncyBib2R5IGFzIHRleHQKLVBBU1MgQ29uc3VtZSBibG9i
IHJlc3BvbnNlJ3MgYm9keSBhcyBqc29uCi1QQVNTIENvbnN1bWUgYmxvYiByZXNwb25zZSdzIGJv
ZHkgYXMgYXJyYXlCdWZmZXIKLVBBU1MgQ29uc3VtZSBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyBi
bG9iIChlbXB0eSBibG9iIGFzIGlucHV0KQotUEFTUyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAn
Im51bGwiJwotUEFTUyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAnIjEiJwotUEFTUyBDb25zdW1l
IEpTT04gZnJvbSB0ZXh0OiAnInRydWUiJwotUEFTUyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAn
Ilwic3RyaW5nXCIiJwotRkFJTCBUcnlpbmcgdG8gY29uc3VtZSBiYWQgSlNPTiB0ZXh0IGFzIEpT
T046ICd1bmRlZmluZWQnIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBu
b3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQg
aW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFN5bnRheEVycm9yKCkgewotICAgIFtuYXRp
dmUgY29kZV0KLX0iICgiU3ludGF4RXJyb3IiKQotRkFJTCBUcnlpbmcgdG8gY29uc3VtZSBiYWQg
SlNPTiB0ZXh0IGFzIEpTT046ICd7JyBwcm9taXNlX3JlamVjdHNfanM6IGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmlu
ZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLiIgKCJTeW50YXhFcnJvciIpIGV4
cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsKLSAg
ICBbbmF0aXZlIGNvZGVdCi19IiAoIlN5bnRheEVycm9yIikKLUZBSUwgVHJ5aW5nIHRvIGNvbnN1
bWUgYmFkIEpTT04gdGV4dCBhcyBKU09OOiAnYScgcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFRo
ZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iICgiU3ludGF4RXJy
b3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gU3ludGF4RXJyb3Io
KSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJTeW50YXhFcnJvciIpCi1GQUlMIFRyeWluZyB0
byBjb25zdW1lIGJhZCBKU09OIHRleHQgYXMgSlNPTjogJ1snIHByb21pc2VfcmVqZWN0c19qczog
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVy
cm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uIiAoIlN5
bnRheEVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFN5bnRh
eEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiU3ludGF4RXJyb3IiKQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWNvbnN1bWUuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Mzc2OGM5YmM1NzUwYzAz
OGJlMWViZmY1ZWU2YTI3OGZkM2YxNzJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNvbnN1bWUuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ4IEBACisKK1BBU1MgQ29uc3Vt
ZSBTdHJpbmcgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dAorUEFTUyBDb25zdW1lIFN0cmluZyByZXF1
ZXN0J3MgYm9keSBhcyBibG9iCitQQVNTIENvbnN1bWUgU3RyaW5nIHJlcXVlc3QncyBib2R5IGFz
IGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgU3RyaW5nIHJlcXVlc3QncyBib2R5IGFzIEpTT04K
K1BBU1MgQ29uc3VtZSBBcnJheUJ1ZmZlciByZXF1ZXN0J3MgYm9keSBhcyB0ZXh0CitQQVNTIENv
bnN1bWUgQXJyYXlCdWZmZXIgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgorUEFTUyBDb25zdW1lIEFy
cmF5QnVmZmVyIHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgQXJy
YXlCdWZmZXIgcmVxdWVzdCdzIGJvZHkgYXMgSlNPTgorUEFTUyBDb25zdW1lIFVpbnQ4QXJyYXkg
cmVxdWVzdCdzIGJvZHkgYXMgdGV4dAorUEFTUyBDb25zdW1lIFVpbnQ4QXJyYXkgcmVxdWVzdCdz
IGJvZHkgYXMgYmxvYgorUEFTUyBDb25zdW1lIFVpbnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMg
YXJyYXlCdWZmZXIKK1BBU1MgQ29uc3VtZSBVaW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIEpT
T04KK1BBU1MgQ29uc3VtZSBJbnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dAorUEFTUyBD
b25zdW1lIEludDhBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBibG9iCitQQVNTIENvbnN1bWUgSW50
OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgSW50OEFy
cmF5IHJlcXVlc3QncyBib2R5IGFzIEpTT04KK1BBU1MgQ29uc3VtZSBGbG9hdDMyQXJyYXkgcmVx
dWVzdCdzIGJvZHkgYXMgdGV4dAorUEFTUyBDb25zdW1lIEZsb2F0MzJBcnJheSByZXF1ZXN0J3Mg
Ym9keSBhcyBibG9iCitQQVNTIENvbnN1bWUgRmxvYXQzMkFycmF5IHJlcXVlc3QncyBib2R5IGFz
IGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgRmxvYXQzMkFycmF5IHJlcXVlc3QncyBib2R5IGFz
IEpTT04KK1BBU1MgQ29uc3VtZSBEYXRhVmlldyByZXF1ZXN0J3MgYm9keSBhcyB0ZXh0CitQQVNT
IENvbnN1bWUgRGF0YVZpZXcgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgorUEFTUyBDb25zdW1lIERh
dGFWaWV3IHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgRGF0YVZp
ZXcgcmVxdWVzdCdzIGJvZHkgYXMgSlNPTgorUEFTUyBDb25zdW1lIEZvcm1EYXRhIHJlcXVlc3Qn
cyBib2R5IGFzIEZvcm1EYXRhCitQQVNTIENvbnN1bWUgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMg
YmxvYgorUEFTUyBDb25zdW1lIGJsb2IgcmVzcG9uc2UncyBib2R5IGFzIHRleHQKK1BBU1MgQ29u
c3VtZSBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyBqc29uCitQQVNTIENvbnN1bWUgYmxvYiByZXNw
b25zZSdzIGJvZHkgYXMgYXJyYXlCdWZmZXIKK1BBU1MgQ29uc3VtZSBibG9iIHJlc3BvbnNlJ3Mg
Ym9keSBhcyBibG9iIChlbXB0eSBibG9iIGFzIGlucHV0KQorUEFTUyBDb25zdW1lIEpTT04gZnJv
bSB0ZXh0OiAnIm51bGwiJworUEFTUyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAnIjEiJworUEFT
UyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAnInRydWUiJworUEFTUyBDb25zdW1lIEpTT04gZnJv
bSB0ZXh0OiAnIlwic3RyaW5nXCIiJworRkFJTCBUcnlpbmcgdG8gY29uc3VtZSBiYWQgSlNPTiB0
ZXh0IGFzIEpTT046ICd1bmRlZmluZWQnIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3Ry
aW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikg
ZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFN5bnRheEVycm9yKCkgewor
ICAgIFtuYXRpdmUgY29kZV0KK30iICgiU3ludGF4RXJyb3IiKQorRkFJTCBUcnlpbmcgdG8gY29u
c3VtZSBiYWQgSlNPTiB0ZXh0IGFzIEpTT046ICd7JyBwcm9taXNlX3JlamVjdHNfanM6IGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTeW50YXhFcnJvcjog
VGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLiIgKCJTeW50YXhF
cnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBTeW50YXhFcnJv
cigpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiAoIlN5bnRheEVycm9yIikKK0ZBSUwgVHJ5aW5n
IHRvIGNvbnN1bWUgYmFkIEpTT04gdGV4dCBhcyBKU09OOiAnYScgcHJvbWlzZV9yZWplY3RzX2pz
OiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4
RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iICgi
U3ludGF4RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gU3lu
dGF4RXJyb3IoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgKCJTeW50YXhFcnJvciIpCitGQUlM
IFRyeWluZyB0byBjb25zdW1lIGJhZCBKU09OIHRleHQgYXMgSlNPTjogJ1snIHByb21pc2VfcmVq
ZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3Qg
IlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRl
cm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0
aW9uIFN5bnRheEVycm9yKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iICgiU3ludGF4RXJyb3Ii
KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5hbnkuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1jb25zdW1lLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2
NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3Vt
ZS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3Ig
V2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29u
c3VtZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5hbnkuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZm
NWQ2NTI0NGExNWU5ZmI3Y2JkZWQxODBiY2RiNTVlZjY1YmUyYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1jb25zdW1lLmFueS5qcwpAQCAtMCwwICsxLDE0NSBAQAorLy8gTUVUQTog
Z2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPVJlcXVlc3QgY29uc3VtZQorLy8g
TUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcworCitmdW5jdGlvbiBjaGVja0JvZHlU
ZXh0KHJlcXVlc3QsIGV4cGVjdGVkQm9keSkgeworICByZXR1cm4gcmVxdWVzdC50ZXh0KCkudGhl
bihmdW5jdGlvbihib2R5QXNUZXh0KSB7CisgICAgYXNzZXJ0X2VxdWFscyhib2R5QXNUZXh0LCBl
eHBlY3RlZEJvZHksICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlcXVlc3QncyBib2R5Iik7CisgICAg
YXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwgImJvZHkgYXMgdGV4dDogYm9keVVzZWQgdHVy
bmVkIHRydWUiKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrQm9keUJsb2IocmVxdWVzdCwg
ZXhwZWN0ZWRCb2R5LCBjaGVja0NvbnRlbnRUeXBlKSB7CisgIHJldHVybiByZXF1ZXN0LmJsb2Io
KS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2IpIHsKKyAgICBpZiAoY2hlY2tDb250ZW50VHlwZSkK
KyAgICAgIGFzc2VydF9lcXVhbHMoYm9keUFzQmxvYi50eXBlLCAidGV4dC9wbGFpbiIsICJCbG9i
IGJvZHkgdHlwZSBzaG91bGQgYmUgY29tcHV0ZWQgZnJvbSB0aGUgcmVxdWVzdCBDb250ZW50LVR5
cGUiKTsKKworICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CisgICAgICBy
ZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAgIHJlc29sdmUocmVhZGVyLnJl
c3VsdCkKKyAgICAgIH07CisgICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICByZWplY3QoIkJsb2IncyByZWFkZXIgZmFpbGVkIik7CisgICAgICB9OworICAgICAgcmVh
ZGVyLnJlYWRBc1RleHQoYm9keUFzQmxvYik7CisgICAgfSk7CisgICAgcmV0dXJuIHByb21pc2Uu
dGhlbihmdW5jdGlvbihib2R5KSB7CisgICAgICBhc3NlcnRfZXF1YWxzKGJvZHksIGV4cGVjdGVk
Qm9keSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVxdWVzdCdzIGJvZHkiKTsKKyAgICAgIGFzc2Vy
dF90cnVlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5IGFzIGJsb2I6IGJvZHlVc2VkIHR1cm5lZCB0
cnVlIik7CisgICAgfSk7CisgIH0pOworfQorCitmdW5jdGlvbiBjaGVja0JvZHlBcnJheUJ1ZmZl
cihyZXF1ZXN0LCBleHBlY3RlZEJvZHkpIHsKKyAgcmV0dXJuIHJlcXVlc3QuYXJyYXlCdWZmZXIo
KS50aGVuKGZ1bmN0aW9uKGJvZHlBc0FycmF5QnVmZmVyKSB7CisgICAgdmFsaWRhdGVCdWZmZXJG
cm9tU3RyaW5nKGJvZHlBc0FycmF5QnVmZmVyLCBleHBlY3RlZEJvZHksICJSZXRyaWV2ZSBhbmQg
dmVyaWZ5IHJlcXVlc3QncyBib2R5Iik7CisgICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNl
ZCwgImJvZHkgYXMgYXJyYXlCdWZmZXI6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgIH0pOwor
fQorCitmdW5jdGlvbiBjaGVja0JvZHlKU09OKHJlcXVlc3QsIGV4cGVjdGVkQm9keSkgeworICBy
ZXR1cm4gcmVxdWVzdC5qc29uKCkudGhlbihmdW5jdGlvbihib2R5QXNKU09OKSB7CisgICAgdmFy
IHN0ckJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5QXNKU09OKQorICAgIGFzc2VydF9lcXVhbHMo
c3RyQm9keSwgZXhwZWN0ZWRCb2R5LCAiUmV0cmlldmUgYW5kIHZlcmlmeSByZXF1ZXN0J3MgYm9k
eSIpOworICAgIGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5IGFzIGpzb246IGJv
ZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgIH0pOworfQorCitmdW5jdGlvbiBjaGVja0JvZHlGb3Jt
RGF0YShyZXF1ZXN0LCBleHBlY3RlZEJvZHkpIHsKKyAgcmV0dXJuIHJlcXVlc3QuZm9ybURhdGEo
KS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Zvcm1EYXRhKSB7CisgICAgYXNzZXJ0X3RydWUoYm9keUFz
Rm9ybURhdGEgaW5zdGFuY2VvZiBGb3JtRGF0YSwgIlNob3VsZCByZWNlaXZlIGEgRm9ybURhdGEi
KTsKKyAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keSBhcyBmb3JtRGF0YTog
Ym9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrUmVxdWVz
dEJvZHkoYm9keSwgZXhwZWN0ZWQsIGJvZHlUeXBlKSB7CisgIHByb21pc2VfdGVzdChmdW5jdGlv
bih0ZXN0KSB7CisgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAi
UE9TVCIsICJib2R5IjogYm9keSwgImhlYWRlcnMiOiBbWyJDb250ZW50LVR5cGUiLCAidGV4dC9Q
TEFJTiJdXSB9KTsKKyAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNlZCwgImJvZHlVc2Vk
IGlzIGZhbHNlIGF0IGluaXQiKTsKKyAgICByZXR1cm4gY2hlY2tCb2R5VGV4dChyZXF1ZXN0LCBl
eHBlY3RlZCk7CisgIH0sICJDb25zdW1lICIgKyBib2R5VHlwZSAgKyAiIHJlcXVlc3QncyBib2R5
IGFzIHRleHQiKTsKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVx
dWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQT1NUIiwgImJvZHkiOiBib2R5IH0p
OworICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2Ug
YXQgaW5pdCIpOworICAgIHJldHVybiBjaGVja0JvZHlCbG9iKHJlcXVlc3QsIGV4cGVjdGVkKTsK
KyAgfSwgIkNvbnN1bWUgIiArIGJvZHlUeXBlICArICIgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYiIp
OworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZhciByZXF1ZXN0ID0gbmV3
IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6IGJvZHkgfSk7CisgICAgYXNz
ZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5VXNlZCBpcyBmYWxzZSBhdCBpbml0Iik7
CisgICAgcmV0dXJuIGNoZWNrQm9keUFycmF5QnVmZmVyKHJlcXVlc3QsIGV4cGVjdGVkKTsKKyAg
fSwgIkNvbnN1bWUgIiArIGJvZHlUeXBlICArICIgcmVxdWVzdCdzIGJvZHkgYXMgYXJyYXlCdWZm
ZXIiKTsKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVxdWVzdCA9
IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQT1NUIiwgImJvZHkiOiBib2R5IH0pOworICAg
IGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2UgYXQgaW5p
dCIpOworICAgIHJldHVybiBjaGVja0JvZHlKU09OKHJlcXVlc3QsIGV4cGVjdGVkKTsKKyAgfSwg
IkNvbnN1bWUgIiArIGJvZHlUeXBlICArICIgcmVxdWVzdCdzIGJvZHkgYXMgSlNPTiIpOworfQor
Cit2YXIgdGV4dERhdGEgPSBKU09OLnN0cmluZ2lmeSgiVGhpcyBpcyByZXNwb25zZSdzIGJvZHki
KTsKK3ZhciBibG9iID0gbmV3IEJsb2IoW3RleHREYXRhXSwgeyAidHlwZSIgOiAidGV4dC9wbGFp
biIgfSk7CisKK2NoZWNrUmVxdWVzdEJvZHkodGV4dERhdGEsIHRleHREYXRhLCAiU3RyaW5nIik7
CisKK3ZhciBzdHJpbmcgPSAiXCIxMjM0NTZcIiI7CitmdW5jdGlvbiBnZXRBcnJheUJ1ZmZlcigp
IHsKKyAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoOCk7CisgICAgdmFyIGlu
dDhBcnJheSA9IG5ldyBJbnQ4QXJyYXkoYXJyYXlCdWZmZXIpOworICAgIGZvciAodmFyIGNwdHIg
PSAwOyBjcHRyIDwgODsgY3B0cisrKQorICAgICAgICBpbnQ4QXJyYXlbY3B0cl0gPSBzdHJpbmcu
Y2hhckNvZGVBdChjcHRyKTsKKyAgICByZXR1cm4gYXJyYXlCdWZmZXI7Cit9CisKK2Z1bmN0aW9u
IGdldEFycmF5QnVmZmVyV2l0aFplcm9zKCkgeworICAgIHZhciBhcnJheUJ1ZmZlciA9IG5ldyBB
cnJheUJ1ZmZlcigxMCk7CisgICAgdmFyIGludDhBcnJheSA9IG5ldyBJbnQ4QXJyYXkoYXJyYXlC
dWZmZXIpOworICAgIGZvciAodmFyIGNwdHIgPSAwOyBjcHRyIDwgODsgY3B0cisrKQorICAgICAg
ICBpbnQ4QXJyYXlbY3B0ciArIDFdID0gc3RyaW5nLmNoYXJDb2RlQXQoY3B0cik7CisgICAgcmV0
dXJuIGFycmF5QnVmZmVyOworfQorCitjaGVja1JlcXVlc3RCb2R5KGdldEFycmF5QnVmZmVyKCks
IHN0cmluZywgIkFycmF5QnVmZmVyIik7CitjaGVja1JlcXVlc3RCb2R5KG5ldyBVaW50OEFycmF5
KGdldEFycmF5QnVmZmVyKCkpLCBzdHJpbmcsICJVaW50OEFycmF5Iik7CitjaGVja1JlcXVlc3RC
b2R5KG5ldyBJbnQ4QXJyYXkoZ2V0QXJyYXlCdWZmZXJXaXRoWmVyb3MoKSwgMSwgOCksIHN0cmlu
ZywgIkludDhBcnJheSIpOworY2hlY2tSZXF1ZXN0Qm9keShuZXcgRmxvYXQzMkFycmF5KGdldEFy
cmF5QnVmZmVyKCkpLCBzdHJpbmcsICJGbG9hdDMyQXJyYXkiKTsKK2NoZWNrUmVxdWVzdEJvZHko
bmV3IERhdGFWaWV3KGdldEFycmF5QnVmZmVyV2l0aFplcm9zKCksIDEsIDgpLCBzdHJpbmcsICJE
YXRhVmlldyIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICB2YXIgZm9ybURh
dGEgPSBuZXcgRm9ybURhdGEoKTsKKyAgZm9ybURhdGEuYXBwZW5kKCJuYW1lIiwgInZhbHVlIikK
KyAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5
IjogZm9ybURhdGEgfSk7CisgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keVVz
ZWQgaXMgZmFsc2UgYXQgaW5pdCIpOworICByZXR1cm4gY2hlY2tCb2R5Rm9ybURhdGEocmVxdWVz
dCwgZm9ybURhdGEpOworfSwgIkNvbnN1bWUgRm9ybURhdGEgcmVxdWVzdCdzIGJvZHkgYXMgRm9y
bURhdGEiKTsKKworZnVuY3Rpb24gY2hlY2tCbG9iUmVzcG9uc2VCb2R5KGJsb2JCb2R5LCBibG9i
RGF0YSwgYm9keVR5cGUsIGNoZWNrRnVuY3Rpb24pIHsKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHRlc3QpIHsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYmxvYkJvZHkpOworICAg
IGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIGZhbHNlIGF0IGlu
aXQiKTsKKyAgICByZXR1cm4gY2hlY2tGdW5jdGlvbihyZXNwb25zZSwgYmxvYkRhdGEpOworICB9
LCAiQ29uc3VtZSBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyAiICsgYm9keVR5cGUpOworfQorCitj
aGVja0Jsb2JSZXNwb25zZUJvZHkoYmxvYiwgdGV4dERhdGEsICJibG9iIiwgY2hlY2tCb2R5Qmxv
Yik7CitjaGVja0Jsb2JSZXNwb25zZUJvZHkoYmxvYiwgdGV4dERhdGEsICJ0ZXh0IiwgY2hlY2tC
b2R5VGV4dCk7CitjaGVja0Jsb2JSZXNwb25zZUJvZHkoYmxvYiwgdGV4dERhdGEsICJqc29uIiwg
Y2hlY2tCb2R5SlNPTik7CitjaGVja0Jsb2JSZXNwb25zZUJvZHkoYmxvYiwgdGV4dERhdGEsICJh
cnJheUJ1ZmZlciIsIGNoZWNrQm9keUFycmF5QnVmZmVyKTsKK2NoZWNrQmxvYlJlc3BvbnNlQm9k
eShuZXcgQmxvYihbIiJdKSwgIiIsICJibG9iIChlbXB0eSBibG9iIGFzIGlucHV0KSIsIGNoZWNr
Qm9keUJsb2IpOworCit2YXIgZ29vZEpTT05WYWx1ZXMgPSBbIm51bGwiLCAiMSIsICJ0cnVlIiwg
Ilwic3RyaW5nXCIiXTsKK2dvb2RKU09OVmFsdWVzLmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHsK
KyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVxdWVzdCA9IG5ldyBS
ZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQT1NUIiwgImJvZHkiOiB2YWx1ZX0pOworICAgIHJldHVy
biByZXF1ZXN0Lmpzb24oKS50aGVuKGZ1bmN0aW9uKHYpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMo
diwgSlNPTi5wYXJzZSh2YWx1ZSkpOworICAgIH0pOworICB9LCAiQ29uc3VtZSBKU09OIGZyb20g
dGV4dDogJyIgKyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgKyAiJyIpOworfSk7CisKK3ZhciBiYWRK
U09OVmFsdWVzID0gWyJ1bmRlZmluZWQiLCAieyIsICJhIiwgIlsiXTsKK2JhZEpTT05WYWx1ZXMu
Zm9yRWFjaChmdW5jdGlvbih2YWx1ZSkgeworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkg
eworICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAi
Ym9keSI6IHZhbHVlfSk7CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBTeW50
YXhFcnJvciwgcmVxdWVzdC5qc29uKCkpOworICB9LCAiVHJ5aW5nIHRvIGNvbnN1bWUgYmFkIEpT
T04gdGV4dCBhcyBKU09OOiAnIiArIHZhbHVlICsgIiciKTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNvbnN1bWUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y29uc3VtZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Mzc2OGM5YmM1NzUw
YzAzOGJlMWViZmY1ZWU2YTI3OGZkM2YxNzJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWNvbnN1bWUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OCBAQAorCitQ
QVNTIENvbnN1bWUgU3RyaW5nIHJlcXVlc3QncyBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBT
dHJpbmcgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgorUEFTUyBDb25zdW1lIFN0cmluZyByZXF1ZXN0
J3MgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25zdW1lIFN0cmluZyByZXF1ZXN0J3MgYm9k
eSBhcyBKU09OCitQQVNTIENvbnN1bWUgQXJyYXlCdWZmZXIgcmVxdWVzdCdzIGJvZHkgYXMgdGV4
dAorUEFTUyBDb25zdW1lIEFycmF5QnVmZmVyIHJlcXVlc3QncyBib2R5IGFzIGJsb2IKK1BBU1Mg
Q29uc3VtZSBBcnJheUJ1ZmZlciByZXF1ZXN0J3MgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBD
b25zdW1lIEFycmF5QnVmZmVyIHJlcXVlc3QncyBib2R5IGFzIEpTT04KK1BBU1MgQ29uc3VtZSBV
aW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBVaW50OEFycmF5
IHJlcXVlc3QncyBib2R5IGFzIGJsb2IKK1BBU1MgQ29uc3VtZSBVaW50OEFycmF5IHJlcXVlc3Qn
cyBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgVWludDhBcnJheSByZXF1ZXN0J3Mg
Ym9keSBhcyBKU09OCitQQVNTIENvbnN1bWUgSW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIHRl
eHQKK1BBU1MgQ29uc3VtZSBJbnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgorUEFTUyBD
b25zdW1lIEludDhBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25z
dW1lIEludDhBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBKU09OCitQQVNTIENvbnN1bWUgRmxvYXQz
MkFycmF5IHJlcXVlc3QncyBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBGbG9hdDMyQXJyYXkg
cmVxdWVzdCdzIGJvZHkgYXMgYmxvYgorUEFTUyBDb25zdW1lIEZsb2F0MzJBcnJheSByZXF1ZXN0
J3MgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25zdW1lIEZsb2F0MzJBcnJheSByZXF1ZXN0
J3MgYm9keSBhcyBKU09OCitQQVNTIENvbnN1bWUgRGF0YVZpZXcgcmVxdWVzdCdzIGJvZHkgYXMg
dGV4dAorUEFTUyBDb25zdW1lIERhdGFWaWV3IHJlcXVlc3QncyBib2R5IGFzIGJsb2IKK1BBU1Mg
Q29uc3VtZSBEYXRhVmlldyByZXF1ZXN0J3MgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25z
dW1lIERhdGFWaWV3IHJlcXVlc3QncyBib2R5IGFzIEpTT04KK1BBU1MgQ29uc3VtZSBGb3JtRGF0
YSByZXF1ZXN0J3MgYm9keSBhcyBGb3JtRGF0YQorUEFTUyBDb25zdW1lIGJsb2IgcmVzcG9uc2Un
cyBib2R5IGFzIGJsb2IKK1BBU1MgQ29uc3VtZSBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyB0ZXh0
CitQQVNTIENvbnN1bWUgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMganNvbgorUEFTUyBDb25zdW1l
IGJsb2IgcmVzcG9uc2UncyBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgYmxvYiBy
ZXNwb25zZSdzIGJvZHkgYXMgYmxvYiAoZW1wdHkgYmxvYiBhcyBpbnB1dCkKK1BBU1MgQ29uc3Vt
ZSBKU09OIGZyb20gdGV4dDogJyJudWxsIicKK1BBU1MgQ29uc3VtZSBKU09OIGZyb20gdGV4dDog
JyIxIicKK1BBU1MgQ29uc3VtZSBKU09OIGZyb20gdGV4dDogJyJ0cnVlIicKK1BBU1MgQ29uc3Vt
ZSBKU09OIGZyb20gdGV4dDogJyJcInN0cmluZ1wiIicKK0ZBSUwgVHJ5aW5nIHRvIGNvbnN1bWUg
YmFkIEpTT04gdGV4dCBhcyBKU09OOiAndW5kZWZpbmVkJyBwcm9taXNlX3JlamVjdHNfanM6IGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTeW50YXhFcnJv
cjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLiIgKCJTeW50
YXhFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBTeW50YXhF
cnJvcigpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiAoIlN5bnRheEVycm9yIikKK0ZBSUwgVHJ5
aW5nIHRvIGNvbnN1bWUgYmFkIEpTT04gdGV4dCBhcyBKU09OOiAneycgcHJvbWlzZV9yZWplY3Rz
X2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU3lu
dGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4i
ICgiU3ludGF4RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24g
U3ludGF4RXJyb3IoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgKCJTeW50YXhFcnJvciIpCitG
QUlMIFRyeWluZyB0byBjb25zdW1lIGJhZCBKU09OIHRleHQgYXMgSlNPTjogJ2EnIHByb21pc2Vf
cmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmpl
Y3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBh
dHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1
bmN0aW9uIFN5bnRheEVycm9yKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iICgiU3ludGF4RXJy
b3IiKQorRkFJTCBUcnlpbmcgdG8gY29uc3VtZSBiYWQgSlNPTiB0ZXh0IGFzIEpTT046ICdbJyBw
cm9taXNlX3JlamVjdHNfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhy
ZXcgb2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBl
Y3RlZCBwYXR0ZXJuLiIgKCJTeW50YXhFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0
aW9uICJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiAoIlN5
bnRheEVycm9yIikKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuYW55Lndvcmtl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJl
IHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1j
b25zdW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2ZWY4YTdkMzZkYjg5
OTkyN2U1ZDc2NDQ3ODgwZGViNjgyNTBmZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDE1OCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAg
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJlcXVlc3QgY29uc3VtZTwvdGl0
bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3
Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0
Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3Ii
IHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5v
bi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0aWxzLmpzIj48L3Njcmlw
dD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgIGZ1bmN0aW9uIGNoZWNr
Qm9keVRleHQocmVxdWVzdCwgZXhwZWN0ZWRCb2R5KSB7Ci0gICAgICByZXR1cm4gcmVxdWVzdC50
ZXh0KCkudGhlbihmdW5jdGlvbihib2R5QXNUZXh0KSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMo
Ym9keUFzVGV4dCwgZXhwZWN0ZWRCb2R5LCAiUmV0cmlldmUgYW5kIHZlcmlmeSByZXF1ZXN0J3Mg
Ym9keSIpOwotICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keSBhcyB0
ZXh0OiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gY2hlY2tCb2R5QmxvYihyZXF1ZXN0LCBleHBlY3RlZEJvZHksIGNoZWNrQ29udGVudFR5
cGUpIHsKLSAgICAgIHJldHVybiByZXF1ZXN0LmJsb2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Js
b2IpIHsKLSAgICAgICAgaWYgKGNoZWNrQ29udGVudFR5cGUpCi0gICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhib2R5QXNCbG9iLnR5cGUsICJ0ZXh0L3BsYWluIiwgIkJsb2IgYm9keSB0eXBlIHNob3Vs
ZCBiZSBjb21wdXRlZCBmcm9tIHRoZSByZXF1ZXN0IENvbnRlbnQtVHlwZSIpOwotCi0gICAgICAg
IHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewot
ICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwotICAgICAgICAgIHJlYWRl
ci5vbmxvYWQgPSBmdW5jdGlvbihldnQpIHsKLSAgICAgICAgICAgIHJlc29sdmUocmVhZGVyLnJl
c3VsdCkKLSAgICAgICAgICB9OwotICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICByZWplY3QoIkJsb2IncyByZWFkZXIgZmFpbGVkIik7Ci0gICAgICAg
ICAgfTsKLSAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChib2R5QXNCbG9iKTsKLSAgICAgICAg
fSk7Ci0gICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oZnVuY3Rpb24oYm9keSkgewotICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoYm9keSwgZXhwZWN0ZWRCb2R5LCAiUmV0cmlldmUgYW5kIHZlcmlm
eSByZXF1ZXN0J3MgYm9keSIpOwotICAgICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVz
ZWQsICJib2R5IGFzIGJsb2I6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7Ci0gICAgICAgIH0pOwot
ICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY2hlY2tCb2R5QXJyYXlCdWZmZXIocmVx
dWVzdCwgZXhwZWN0ZWRCb2R5KSB7Ci0gICAgICByZXR1cm4gcmVxdWVzdC5hcnJheUJ1ZmZlcigp
LnRoZW4oZnVuY3Rpb24oYm9keUFzQXJyYXlCdWZmZXIpIHsKLSAgICAgICAgdmFsaWRhdGVCdWZm
ZXJGcm9tU3RyaW5nKGJvZHlBc0FycmF5QnVmZmVyLCBleHBlY3RlZEJvZHksICJSZXRyaWV2ZSBh
bmQgdmVyaWZ5IHJlcXVlc3QncyBib2R5Iik7Ci0gICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3Qu
Ym9keVVzZWQsICJib2R5IGFzIGFycmF5QnVmZmVyOiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOwot
ICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY2hlY2tCb2R5SlNPTihyZXF1ZXN0LCBl
eHBlY3RlZEJvZHkpIHsKLSAgICAgIHJldHVybiByZXF1ZXN0Lmpzb24oKS50aGVuKGZ1bmN0aW9u
KGJvZHlBc0pTT04pIHsKLSAgICAgICAgdmFyIHN0ckJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5
QXNKU09OKQotICAgICAgICBhc3NlcnRfZXF1YWxzKHN0ckJvZHksIGV4cGVjdGVkQm9keSwgIlJl
dHJpZXZlIGFuZCB2ZXJpZnkgcmVxdWVzdCdzIGJvZHkiKTsKLSAgICAgICAgYXNzZXJ0X3RydWUo
cmVxdWVzdC5ib2R5VXNlZCwgImJvZHkgYXMganNvbjogYm9keVVzZWQgdHVybmVkIHRydWUiKTsK
LSAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNoZWNrQm9keUZvcm1EYXRhKHJlcXVl
c3QsIGV4cGVjdGVkQm9keSkgewotICAgICAgcmV0dXJuIHJlcXVlc3QuZm9ybURhdGEoKS50aGVu
KGZ1bmN0aW9uKGJvZHlBc0Zvcm1EYXRhKSB7Ci0gICAgICAgIGFzc2VydF90cnVlKGJvZHlBc0Zv
cm1EYXRhIGluc3RhbmNlb2YgRm9ybURhdGEsICJTaG91bGQgcmVjZWl2ZSBhIEZvcm1EYXRhIik7
Ci0gICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5IGFzIGZvcm1EYXRh
OiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOwotICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBjaGVja1JlcXVlc3RCb2R5KGJvZHksIGV4cGVjdGVkLCBib2R5VHlwZSkgewotICAgICAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVx
dWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogYm9keSwgImhlYWRlcnMiOiBbWyJD
b250ZW50LVR5cGUiLCAidGV4dC9QTEFJTiJdXSB9KTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJl
cXVlc3QuYm9keVVzZWQsICJib2R5VXNlZCBpcyBmYWxzZSBhdCBpbml0Iik7Ci0gICAgICAgIHJl
dHVybiBjaGVja0JvZHlUZXh0KHJlcXVlc3QsIGV4cGVjdGVkKTsKLSAgICAgIH0sICJDb25zdW1l
ICIgKyBib2R5VHlwZSAgKyAiIHJlcXVlc3QncyBib2R5IGFzIHRleHQiKTsKLSAgICAgIHByb21p
c2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6IGJvZHkgfSk7Ci0gICAgICAgIGFzc2Vy
dF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOwot
ICAgICAgICByZXR1cm4gY2hlY2tCb2R5QmxvYihyZXF1ZXN0LCBleHBlY3RlZCk7Ci0gICAgICB9
LCAiQ29uc3VtZSAiICsgYm9keVR5cGUgICsgIiByZXF1ZXN0J3MgYm9keSBhcyBibG9iIik7Ci0g
ICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgICAgICB2YXIgcmVxdWVzdCA9
IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQT1NUIiwgImJvZHkiOiBib2R5IH0pOwotICAg
ICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIGZhbHNlIGF0
IGluaXQiKTsKLSAgICAgICAgcmV0dXJuIGNoZWNrQm9keUFycmF5QnVmZmVyKHJlcXVlc3QsIGV4
cGVjdGVkKTsKLSAgICAgIH0sICJDb25zdW1lICIgKyBib2R5VHlwZSAgKyAiIHJlcXVlc3QncyBi
b2R5IGFzIGFycmF5QnVmZmVyIik7Ci0gICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkg
ewotICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQT1NU
IiwgImJvZHkiOiBib2R5IH0pOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNl
ZCwgImJvZHlVc2VkIGlzIGZhbHNlIGF0IGluaXQiKTsKLSAgICAgICAgcmV0dXJuIGNoZWNrQm9k
eUpTT04ocmVxdWVzdCwgZXhwZWN0ZWQpOwotICAgICAgfSwgIkNvbnN1bWUgIiArIGJvZHlUeXBl
ICArICIgcmVxdWVzdCdzIGJvZHkgYXMgSlNPTiIpOwotICAgIH0KLQotICAgIHZhciB0ZXh0RGF0
YSA9IEpTT04uc3RyaW5naWZ5KCJUaGlzIGlzIHJlc3BvbnNlJ3MgYm9keSIpOwotICAgIHZhciBi
bG9iID0gbmV3IEJsb2IoW3RleHREYXRhXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSk7Ci0K
LSAgICBjaGVja1JlcXVlc3RCb2R5KHRleHREYXRhLCB0ZXh0RGF0YSwgIlN0cmluZyIpOwotCi0g
ICAgdmFyIHN0cmluZyA9ICJcIjEyMzQ1NlwiIjsKLSAgICBmdW5jdGlvbiBnZXRBcnJheUJ1ZmZl
cigpIHsKLSAgICAgICAgdmFyIGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDgpOwotICAg
ICAgICB2YXIgaW50OEFycmF5ID0gbmV3IEludDhBcnJheShhcnJheUJ1ZmZlcik7Ci0gICAgICAg
IGZvciAodmFyIGNwdHIgPSAwOyBjcHRyIDwgODsgY3B0cisrKQotICAgICAgICAgICAgaW50OEFy
cmF5W2NwdHJdID0gc3RyaW5nLmNoYXJDb2RlQXQoY3B0cik7Ci0gICAgICAgIHJldHVybiBhcnJh
eUJ1ZmZlcjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBnZXRBcnJheUJ1ZmZlcldpdGhaZXJvcygp
IHsKLSAgICAgICAgdmFyIGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDEwKTsKLSAgICAg
ICAgdmFyIGludDhBcnJheSA9IG5ldyBJbnQ4QXJyYXkoYXJyYXlCdWZmZXIpOwotICAgICAgICBm
b3IgKHZhciBjcHRyID0gMDsgY3B0ciA8IDg7IGNwdHIrKykKLSAgICAgICAgICAgIGludDhBcnJh
eVtjcHRyICsgMV0gPSBzdHJpbmcuY2hhckNvZGVBdChjcHRyKTsKLSAgICAgICAgcmV0dXJuIGFy
cmF5QnVmZmVyOwotICAgIH0KLQotICAgIGNoZWNrUmVxdWVzdEJvZHkoZ2V0QXJyYXlCdWZmZXIo
KSwgc3RyaW5nLCAiQXJyYXlCdWZmZXIiKTsKLSAgICBjaGVja1JlcXVlc3RCb2R5KG5ldyBVaW50
OEFycmF5KGdldEFycmF5QnVmZmVyKCkpLCBzdHJpbmcsICJVaW50OEFycmF5Iik7Ci0gICAgY2hl
Y2tSZXF1ZXN0Qm9keShuZXcgSW50OEFycmF5KGdldEFycmF5QnVmZmVyV2l0aFplcm9zKCksIDEs
IDgpLCBzdHJpbmcsICJJbnQ4QXJyYXkiKTsKLSAgICBjaGVja1JlcXVlc3RCb2R5KG5ldyBGbG9h
dDMyQXJyYXkoZ2V0QXJyYXlCdWZmZXIoKSksIHN0cmluZywgIkZsb2F0MzJBcnJheSIpOwotICAg
IGNoZWNrUmVxdWVzdEJvZHkobmV3IERhdGFWaWV3KGdldEFycmF5QnVmZmVyV2l0aFplcm9zKCks
IDEsIDgpLCBzdHJpbmcsICJEYXRhVmlldyIpOwotCi0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHRlc3QpIHsKLSAgICAgIHZhciBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwotICAgICAgZm9y
bURhdGEuYXBwZW5kKCJuYW1lIiwgInZhbHVlIikKLSAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJl
cXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6IGZvcm1EYXRhIH0pOwotICAgICAg
YXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5VXNlZCBpcyBmYWxzZSBhdCBpbml0
Iik7Ci0gICAgICByZXR1cm4gY2hlY2tCb2R5Rm9ybURhdGEocmVxdWVzdCwgZm9ybURhdGEpOwot
ICAgIH0sICJDb25zdW1lIEZvcm1EYXRhIHJlcXVlc3QncyBib2R5IGFzIEZvcm1EYXRhIik7Ci0K
LSAgICBmdW5jdGlvbiBjaGVja0Jsb2JSZXNwb25zZUJvZHkoYmxvYkJvZHksIGJsb2JEYXRhLCBi
b2R5VHlwZSwgY2hlY2tGdW5jdGlvbikgewotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRl
c3QpIHsKLSAgICAgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKGJsb2JCb2R5KTsKLSAg
ICAgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2Ug
YXQgaW5pdCIpOwotICAgICAgICByZXR1cm4gY2hlY2tGdW5jdGlvbihyZXNwb25zZSwgYmxvYkRh
dGEpOwotICAgICAgfSwgIkNvbnN1bWUgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMgIiArIGJvZHlU
eXBlKTsKLSAgICB9Ci0KLSAgICBjaGVja0Jsb2JSZXNwb25zZUJvZHkoYmxvYiwgdGV4dERhdGEs
ICJibG9iIiwgY2hlY2tCb2R5QmxvYik7Ci0gICAgY2hlY2tCbG9iUmVzcG9uc2VCb2R5KGJsb2Is
IHRleHREYXRhLCAidGV4dCIsIGNoZWNrQm9keVRleHQpOwotICAgIGNoZWNrQmxvYlJlc3BvbnNl
Qm9keShibG9iLCB0ZXh0RGF0YSwgImpzb24iLCBjaGVja0JvZHlKU09OKTsKLSAgICBjaGVja0Js
b2JSZXNwb25zZUJvZHkoYmxvYiwgdGV4dERhdGEsICJhcnJheUJ1ZmZlciIsIGNoZWNrQm9keUFy
cmF5QnVmZmVyKTsKLSAgICBjaGVja0Jsb2JSZXNwb25zZUJvZHkobmV3IEJsb2IoWyIiXSksICIi
LCAiYmxvYiAoZW1wdHkgYmxvYiBhcyBpbnB1dCkiLCBjaGVja0JvZHlCbG9iKTsKLQotICAgIHZh
ciBnb29kSlNPTlZhbHVlcyA9IFsibnVsbCIsICIxIiwgInRydWUiLCAiXCJzdHJpbmdcIiJdOwot
ICAgIGdvb2RKU09OVmFsdWVzLmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgIHByb21p
c2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6IHZhbHVlfSk7Ci0gICAgICAgIHJldHVy
biByZXF1ZXN0Lmpzb24oKS50aGVuKGZ1bmN0aW9uKHYpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHYsIEpTT04ucGFyc2UodmFsdWUpKTsKLSAgICAgICAgfSk7Ci0gICAgICB9LCAiQ29uc3Vt
ZSBKU09OIGZyb20gdGV4dDogJyIgKyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgKyAiJyIpOwotICAg
IH0pOwotCi0gICAgdmFyIGJhZEpTT05WYWx1ZXMgPSBbInVuZGVmaW5lZCIsICJ7IiwgImEiLCAi
WyJdOwotICAgIGJhZEpTT05WYWx1ZXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkgewotICAgICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcg
UmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogdmFsdWV9KTsKLSAgICAgICAg
cmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBTeW50YXhFcnJvciwgcmVxdWVzdC5qc29u
KCkpOwotICAgICAgfSwgIlRyeWluZyB0byBjb25zdW1lIGJhZCBKU09OIHRleHQgYXMgSlNPTjog
JyIgKyB2YWx1ZSArICInIik7Ci0gICAgfSk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZhZWI4NzlkYjE1YWYxNmZiMTc4Zjg3N2ZjOTc4MDAzM2M4ZjM3MmEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRp
c3R1cmJlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0KLVBB
U1MgUmVxdWVzdCdzIGJvZHk6IGluaXRpYWwgc3RhdGUKLVBBU1MgUmVxdWVzdCB3aXRob3V0IGJv
ZHkgY2Fubm90IGJlIGRpc3R1cmJlZAotUEFTUyBDaGVjayBjbG9uaW5nIGEgZGlzdHVyYmVkIHJl
cXVlc3QKLVBBU1MgQ2hlY2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCBmcm9tIGEgZGlzdHVyYmVk
IHJlcXVlc3QKLVBBU1MgQ2hlY2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCB3aXRoIGEgbmV3IGJv
ZHkgZnJvbSBhIGRpc3R1cmJlZCByZXF1ZXN0Ci1GQUlMIElucHV0IHJlcXVlc3QgdXNlZCBmb3Ig
Y3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRpc3R1cmJlZCBhc3NlcnRfZXF1YWxzOiBib2R5
IHNob3VsZCBub3QgY2hhbmdlIGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBSZWFkYWJsZVN0cmVh
bV0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJlYWRhYmxlU3RyZWFtXSIKLUZBSUwgSW5wdXQg
cmVxdWVzdCB1c2VkIGZvciBjcmVhdGluZyBuZXcgcmVxdWVzdCBiZWNhbWUgZGlzdHVyYmVkIGV2
ZW4gaWYgYm9keSBpcyBub3QgdXNlZCBhc3NlcnRfdHJ1ZTogYm9keVVzZWQgaXMgdHJ1ZSB3aGVu
IHJlcXVlc3QgaXMgZGlzdHVyYmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1QQVNTIENoZWNr
IGNvbnN1bWluZyBhIGRpc3R1cmJlZCByZXF1ZXN0Ci1QQVNTIFJlcXVlc3QgY29uc3RydWN0aW9u
IGZhaWx1cmUgc2hvdWxkIG5vdCBzZXQgImJvZHlVc2VkIgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtZGlzdHVyYmVkLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVk
LmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFlYjg3OWRiMTVhZjE2ZmIxNzhmODc3ZmM5
NzgwMDMzYzhmMzcyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQu
YW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACisKK1BBU1MgUmVxdWVzdCdzIGJvZHk6
IGluaXRpYWwgc3RhdGUKK1BBU1MgUmVxdWVzdCB3aXRob3V0IGJvZHkgY2Fubm90IGJlIGRpc3R1
cmJlZAorUEFTUyBDaGVjayBjbG9uaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QKK1BBU1MgQ2hlY2sg
Y3JlYXRpbmcgYSBuZXcgcmVxdWVzdCBmcm9tIGEgZGlzdHVyYmVkIHJlcXVlc3QKK1BBU1MgQ2hl
Y2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCB3aXRoIGEgbmV3IGJvZHkgZnJvbSBhIGRpc3R1cmJl
ZCByZXF1ZXN0CitGQUlMIElucHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVl
c3QgYmVjYW1lIGRpc3R1cmJlZCBhc3NlcnRfZXF1YWxzOiBib2R5IHNob3VsZCBub3QgY2hhbmdl
IGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBSZWFkYWJsZVN0cmVhbV0iIGJ1dCBnb3Qgb2JqZWN0
ICJbb2JqZWN0IFJlYWRhYmxlU3RyZWFtXSIKK0ZBSUwgSW5wdXQgcmVxdWVzdCB1c2VkIGZvciBj
cmVhdGluZyBuZXcgcmVxdWVzdCBiZWNhbWUgZGlzdHVyYmVkIGV2ZW4gaWYgYm9keSBpcyBub3Qg
dXNlZCBhc3NlcnRfdHJ1ZTogYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVy
YmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIENoZWNrIGNvbnN1bWluZyBhIGRpc3R1
cmJlZCByZXF1ZXN0CitQQVNTIFJlcXVlc3QgY29uc3RydWN0aW9uIGZhaWx1cmUgc2hvdWxkIG5v
dCBzZXQgImJvZHlVc2VkIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmFu
eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgy
OTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRo
ZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJi
ZWQuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMTFkZTc4ZmY2ZTBlZDhhOTcwYTI0MzI1YjFjMTI2ZWJl
YmNkOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmFueS5qcwpA
QCAtMCwwICsxLDEwOSBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6
IHRpdGxlPVJlcXVlc3QgZGlzdHVyYmVkCisvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0
aWxzLmpzCisKK3ZhciBpbml0VmFsdWVzRGljdCA9IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAiYm9keSIgOiAiUmVxdWVzdCdzIGJvZHkiCit9OworCit2YXIgbm9C
b2R5Q29uc3VtZWQgPSBuZXcgUmVxdWVzdCgiIik7Cit2YXIgYm9keUNvbnN1bWVkID0gbmV3IFJl
cXVlc3QoIiIsIGluaXRWYWx1ZXNEaWN0KTsKKwordGVzdCgoKSA9PiB7CisgIGFzc2VydF9lcXVh
bHMobm9Cb2R5Q29uc3VtZWQuYm9keSwgbnVsbCwgImJvZHkncyBkZWZhdWx0IHZhbHVlIGlzIG51
bGwiKTsKKyAgYXNzZXJ0X2ZhbHNlKG5vQm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2Vk
IGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3QgZGlzdHVyYmVkIik7CisgIGFzc2VydF9ub3Rf
ZXF1YWxzKGJvZHlDb25zdW1lZC5ib2R5LCBudWxsLCAibm9uLW51bGwgYm9keSIpOworICBhc3Nl
cnRfdHJ1ZShib2R5Q29uc3VtZWQuYm9keSBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtLCAibm9u
LW51bGwgYm9keSB0eXBlIik7CisgIGFzc2VydF9mYWxzZShub0JvZHlDb25zdW1lZC5ib2R5VXNl
ZCwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3QgZGlzdHVyYmVkIik7Cit9
LCAiUmVxdWVzdCdzIGJvZHk6IGluaXRpYWwgc3RhdGUiKTsKKworbm9Cb2R5Q29uc3VtZWQuYmxv
YigpOworYm9keUNvbnN1bWVkLmJsb2IoKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0
X2ZhbHNlKG5vQm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4g
cmVxdWVzdCBpcyBub3QgZGlzdHVyYmVkIik7CisgIHRyeSB7CisgICAgbm9Cb2R5Q29uc3VtZWQu
Y2xvbmUoKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGFzc2VydF91bnJlYWNoZWQoIkNhbiB1c2Ug
cmVxdWVzdCBub3QgZGlzdHVyYmVkIGZvciBjcmVhdGluZyBvciBjbG9uaW5nIHJlcXVlc3QiKTsK
KyAgfQorfSwgIlJlcXVlc3Qgd2l0aG91dCBib2R5IGNhbm5vdCBiZSBkaXN0dXJiZWQiKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X3RydWUoYm9keUNvbnN1bWVkLmJvZHlVc2VkICwg
ImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOworICBhc3NlcnRf
dGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGJvZHlDb25zdW1lZC5jbG9uZSgpOyB9
KTsKK30sICJDaGVjayBjbG9uaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QiKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgYXNzZXJ0X3RydWUoYm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2Vk
IGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOworICBhc3NlcnRfdGhyb3dzX2pz
KFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KGJvZHlDb25zdW1lZCk7IH0pOwor
fSwgIkNoZWNrIGNyZWF0aW5nIGEgbmV3IHJlcXVlc3QgZnJvbSBhIGRpc3R1cmJlZCByZXF1ZXN0
Iik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X3RydWUoYm9keUNvbnN1
bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJl
ZCIpOworICBjb25zdCBvcmlnaW5hbEJvZHkgPSBib2R5Q29uc3VtZWQuYm9keTsKKyAgY29uc3Qg
Ym9keVJlcGxhY2VkID0gbmV3IFJlcXVlc3QoYm9keUNvbnN1bWVkLCB7IGJvZHk6ICJSZXBsYWNl
ZCBib2R5IiB9KTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMoYm9keVJlcGxhY2VkLmJvZHksIG9yaWdp
bmFsQm9keSwgIm5ldyByZXF1ZXN0J3MgYm9keSBpcyBuZXciKTsKKyAgYXNzZXJ0X2ZhbHNlKGJv
ZHlSZXBsYWNlZC5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBu
b3QgZGlzdHVyYmVkIik7CisgIHJldHVybiBib2R5UmVwbGFjZWQudGV4dCgpLnRoZW4odGV4dCA9
PiB7CisgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCAiUmVwbGFjZWQgYm9keSIpOworICB9KTsKK30s
ICJDaGVjayBjcmVhdGluZyBhIG5ldyByZXF1ZXN0IHdpdGggYSBuZXcgYm9keSBmcm9tIGEgZGlz
dHVyYmVkIHJlcXVlc3QiKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgYm9k
eVJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgaW5pdFZhbHVlc0RpY3QpOworICBjb25zdCBvcmln
aW5hbEJvZHkgPSBib2R5UmVxdWVzdC5ib2R5OworICBhc3NlcnRfZmFsc2UoYm9keVJlcXVlc3Qu
Ym9keVVzZWQgLCAiYm9keVVzZWQgaXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5vdCBkaXN0dXJi
ZWQiKTsKKyAgdmFyIHJlcXVlc3RGcm9tUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGJvZHlSZXF1ZXN0
KTsKKyAgYXNzZXJ0X3RydWUoYm9keVJlcXVlc3QuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgdHJ1
ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIik7CisgIGFzc2VydF9lcXVhbHMoYm9keVJlcXVl
c3QuYm9keSwgb3JpZ2luYWxCb2R5LCAiYm9keSBzaG91bGQgbm90IGNoYW5nZSIpOworICBhc3Nl
cnRfbm90X2VxdWFscyhvcmlnaW5hbEJvZHksIHVuZGVmaW5lZCwgImJvZHkgc2hvdWxkIG5vdCBi
ZSB1bmRlZmluZWQiKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMob3JpZ2luYWxCb2R5LCBudWxsLCAi
Ym9keSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMocmVxdWVzdEZy
b21SZXF1ZXN0LmJvZHksIG9yaWdpbmFsQm9keSwgIm5ldyByZXF1ZXN0J3MgYm9keSBpcyBuZXci
KTsKKyAgcmV0dXJuIHJlcXVlc3RGcm9tUmVxdWVzdC50ZXh0KCkudGhlbih0ZXh0ID0+IHsKKyAg
ICBhc3NlcnRfZXF1YWxzKHRleHQsICJSZXF1ZXN0J3MgYm9keSIpOworICB9KTsKK30sICJJbnB1
dCByZXF1ZXN0IHVzZWQgZm9yIGNyZWF0aW5nIG5ldyByZXF1ZXN0IGJlY2FtZSBkaXN0dXJiZWQi
KTsKKworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgY29uc3QgYm9keVJlcXVlc3QgPSBuZXcgUmVx
dWVzdCgiIiwgaW5pdFZhbHVlc0RpY3QpOworICBjb25zdCBvcmlnaW5hbEJvZHkgPSBib2R5UmVx
dWVzdC5ib2R5OworICBhc3NlcnRfZmFsc2UoYm9keVJlcXVlc3QuYm9keVVzZWQgLCAiYm9keVVz
ZWQgaXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5vdCBkaXN0dXJiZWQiKTsKKyAgY29uc3QgcmVx
dWVzdEZyb21SZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYm9keVJlcXVlc3QsIHsgYm9keSA6ICJpbml0
IGJvZHkiIH0pOworICBhc3NlcnRfdHJ1ZShib2R5UmVxdWVzdC5ib2R5VXNlZCAsICJib2R5VXNl
ZCBpcyB0cnVlIHdoZW4gcmVxdWVzdCBpcyBkaXN0dXJiZWQiKTsKKyAgYXNzZXJ0X2VxdWFscyhi
b2R5UmVxdWVzdC5ib2R5LCBvcmlnaW5hbEJvZHksICJib2R5IHNob3VsZCBub3QgY2hhbmdlIik7
CisgIGFzc2VydF9ub3RfZXF1YWxzKG9yaWdpbmFsQm9keSwgdW5kZWZpbmVkLCAiYm9keSBzaG91
bGQgbm90IGJlIHVuZGVmaW5lZCIpOworICBhc3NlcnRfbm90X2VxdWFscyhvcmlnaW5hbEJvZHks
IG51bGwsICJib2R5IHNob3VsZCBub3QgYmUgbnVsbCIpOworICBhc3NlcnRfbm90X2VxdWFscyhy
ZXF1ZXN0RnJvbVJlcXVlc3QuYm9keSwgb3JpZ2luYWxCb2R5LCAibmV3IHJlcXVlc3QncyBib2R5
IGlzIG5ldyIpOworCisgIHJldHVybiByZXF1ZXN0RnJvbVJlcXVlc3QudGV4dCgpLnRoZW4odGV4
dCA9PiB7CisgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCAiaW5pdCBib2R5Iik7CisgIH0pOworfSwg
IklucHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRpc3R1
cmJlZCBldmVuIGlmIGJvZHkgaXMgbm90IHVzZWQiKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHRlc3QpIHsKKyAgYXNzZXJ0X3RydWUoYm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2Vk
IGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOworICByZXR1cm4gcHJvbWlzZV9y
ZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgYm9keUNvbnN1bWVkLmJsb2IoKSk7Cit9LCAiQ2hl
Y2sgY29uc3VtaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QiKTsKKwordGVzdChmdW5jdGlvbigpIHsK
KyAgdmFyIHJlcSA9IG5ldyBSZXF1ZXN0KFVSTCwge21ldGhvZDogJ1BPU1QnLCBib2R5OiAnaGVs
bG8nfSk7CisgIGFzc2VydF9mYWxzZShyZXEuYm9keVVzZWQsCisgICAgICAgICAgICAgICAgJ1Jl
cXVlc3Qgc2hvdWxkIG5vdCBiZSBmbGFnZ2VkIGFzIHVzZWQgaWYgaXQgaGFzIG5vdCBiZWVuICcg
KworICAgICAgICAgICAgICAgICdjb25zdW1lZC4nKTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBl
RXJyb3IsCisgICAgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KHJlcSwge21ldGhvZDogJ0dFVCd9
KTsgfSwKKyAgICAnQSBnZXQgcmVxdWVzdCBtYXkgbm90IGhhdmUgYm9keS4nKTsKKworICBhc3Nl
cnRfZmFsc2UocmVxLmJvZHlVc2VkLCAnQWZ0ZXIgdGhlIEdFVCBjYXNlJyk7CisKKyAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsCisgICAgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KHJlcSwg
e21ldGhvZDogJ0NPTk5FQ1QnfSk7IH0sCisgICAgJ1JlcXVlc3QoKSB3aXRoIGEgZm9yYmlkZGVu
IG1ldGhvZCBtdXN0IHRocm93LicpOworCisgIGFzc2VydF9mYWxzZShyZXEuYm9keVVzZWQsICdB
ZnRlciB0aGUgZm9yYmlkZGVuIG1ldGhvZCBjYXNlJyk7CisKKyAgdmFyIHJlcTIgPSBuZXcgUmVx
dWVzdChyZXEpOworICBhc3NlcnRfdHJ1ZShyZXEuYm9keVVzZWQsCisgICAgICAgICAgICAgICdS
ZXF1ZXN0IHNob3VsZCBiZSBmbGFnZ2VkIGFzIHVzZWQgaWYgaXQgaGFzIGJlZW4gY29uc3VtZWQu
Jyk7Cit9LCAnUmVxdWVzdCBjb25zdHJ1Y3Rpb24gZmFpbHVyZSBzaG91bGQgbm90IHNldCAiYm9k
eVVzZWQiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mYWViODc5ZGIxNWFmMTZmYjE3OGY4NzdmYzk3ODAwMzNjOGYzNzJh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACisKK1BBU1MgUmVxdWVzdCdzIGJvZHk6IGluaXRp
YWwgc3RhdGUKK1BBU1MgUmVxdWVzdCB3aXRob3V0IGJvZHkgY2Fubm90IGJlIGRpc3R1cmJlZAor
UEFTUyBDaGVjayBjbG9uaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QKK1BBU1MgQ2hlY2sgY3JlYXRp
bmcgYSBuZXcgcmVxdWVzdCBmcm9tIGEgZGlzdHVyYmVkIHJlcXVlc3QKK1BBU1MgQ2hlY2sgY3Jl
YXRpbmcgYSBuZXcgcmVxdWVzdCB3aXRoIGEgbmV3IGJvZHkgZnJvbSBhIGRpc3R1cmJlZCByZXF1
ZXN0CitGQUlMIElucHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVj
YW1lIGRpc3R1cmJlZCBhc3NlcnRfZXF1YWxzOiBib2R5IHNob3VsZCBub3QgY2hhbmdlIGV4cGVj
dGVkIG9iamVjdCAiW29iamVjdCBSZWFkYWJsZVN0cmVhbV0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2Jq
ZWN0IFJlYWRhYmxlU3RyZWFtXSIKK0ZBSUwgSW5wdXQgcmVxdWVzdCB1c2VkIGZvciBjcmVhdGlu
ZyBuZXcgcmVxdWVzdCBiZWNhbWUgZGlzdHVyYmVkIGV2ZW4gaWYgYm9keSBpcyBub3QgdXNlZCBh
c3NlcnRfdHJ1ZTogYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIENoZWNrIGNvbnN1bWluZyBhIGRpc3R1cmJlZCBy
ZXF1ZXN0CitQQVNTIFJlcXVlc3QgY29uc3RydWN0aW9uIGZhaWx1cmUgc2hvdWxkIG5vdCBzZXQg
ImJvZHlVc2VkIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmFueS53b3Jr
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuYW55Lndvcmtlci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsx
IEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1
Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtZGlzdHVyYmVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4ZDhh
MzM0NzhlYWQ3YWY5NDA4ZTE1YTQxZmNmNzNmMTc1Mjc2MmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0g
IDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVxdWVzdCBk
aXN0dXJiZWQ8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0
Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVm
PSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keS1taXhpbiI+Ci0gICAgPG1ldGEg
bmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczov
L3d3dy5jcmYuY2Fub24uZnIiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4K
LSAgICAgIHZhciBpbml0VmFsdWVzRGljdCA9IHsibWV0aG9kIiA6ICJQT1NUIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiYm9keSIgOiAiUmVxdWVzdCdzIGJvZHkiCi0gICAgICB9Owot
Ci0gICAgICB2YXIgbm9Cb2R5Q29uc3VtZWQgPSBuZXcgUmVxdWVzdCgiIik7Ci0gICAgICB2YXIg
Ym9keUNvbnN1bWVkID0gbmV3IFJlcXVlc3QoIiIsIGluaXRWYWx1ZXNEaWN0KTsKLQotICAgICAg
dGVzdCgoKSA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMobm9Cb2R5Q29uc3VtZWQuYm9keSwg
bnVsbCwgImJvZHkncyBkZWZhdWx0IHZhbHVlIGlzIG51bGwiKTsKLSAgICAgICAgYXNzZXJ0X2Zh
bHNlKG5vQm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVx
dWVzdCBpcyBub3QgZGlzdHVyYmVkIik7Ci0gICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGJvZHlD
b25zdW1lZC5ib2R5LCBudWxsLCAibm9uLW51bGwgYm9keSIpOwotICAgICAgICBhc3NlcnRfdHJ1
ZShib2R5Q29uc3VtZWQuYm9keSBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtLCAibm9uLW51bGwg
Ym9keSB0eXBlIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZShub0JvZHlDb25zdW1lZC5ib2R5VXNl
ZCwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3QgZGlzdHVyYmVkIik7Ci0g
ICAgICB9LCAiUmVxdWVzdCdzIGJvZHk6IGluaXRpYWwgc3RhdGUiKTsKLQotICAgICAgbm9Cb2R5
Q29uc3VtZWQuYmxvYigpOwotICAgICAgYm9keUNvbnN1bWVkLmJsb2IoKTsKLQotICAgICAgdGVz
dChmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKG5vQm9keUNvbnN1bWVkLmJvZHlV
c2VkICwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3QgZGlzdHVyYmVkIik7
Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbm9Cb2R5Q29uc3VtZWQuY2xvbmUoKTsKLSAgICAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIkNhbiB1c2UgcmVx
dWVzdCBub3QgZGlzdHVyYmVkIGZvciBjcmVhdGluZyBvciBjbG9uaW5nIHJlcXVlc3QiKTsKLSAg
ICAgICAgfQotICAgICAgfSwgIlJlcXVlc3Qgd2l0aG91dCBib2R5IGNhbm5vdCBiZSBkaXN0dXJi
ZWQiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUoYm9k
eUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRp
c3R1cmJlZCIpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7IGJvZHlDb25zdW1lZC5jbG9uZSgpOyB9KTsKLSAgICAgIH0sICJDaGVjayBjbG9uaW5nIGEg
ZGlzdHVyYmVkIHJlcXVlc3QiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAg
YXNzZXJ0X3RydWUoYm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIHRydWUgd2hl
biByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KGJvZHlDb25zdW1lZCk7IH0pOwotICAgICAg
fSwgIkNoZWNrIGNyZWF0aW5nIGEgbmV3IHJlcXVlc3QgZnJvbSBhIGRpc3R1cmJlZCByZXF1ZXN0
Iik7Ci0KLSAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3Ry
dWUoYm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0
IGlzIGRpc3R1cmJlZCIpOwotICAgICAgICBjb25zdCBvcmlnaW5hbEJvZHkgPSBib2R5Q29uc3Vt
ZWQuYm9keTsKLSAgICAgICAgY29uc3QgYm9keVJlcGxhY2VkID0gbmV3IFJlcXVlc3QoYm9keUNv
bnN1bWVkLCB7IGJvZHk6ICJSZXBsYWNlZCBib2R5IiB9KTsKLSAgICAgICAgYXNzZXJ0X25vdF9l
cXVhbHMoYm9keVJlcGxhY2VkLmJvZHksIG9yaWdpbmFsQm9keSwgIm5ldyByZXF1ZXN0J3MgYm9k
eSBpcyBuZXciKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGJvZHlSZXBsYWNlZC5ib2R5VXNlZCwg
ImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3QgZGlzdHVyYmVkIik7Ci0gICAg
ICAgIHJldHVybiBib2R5UmVwbGFjZWQudGV4dCgpLnRoZW4odGV4dCA9PiB7Ci0gICAgICAgICAg
YXNzZXJ0X2VxdWFscyh0ZXh0LCAiUmVwbGFjZWQgYm9keSIpOwotICAgICAgICB9KTsKLSAgICAg
IH0sICJDaGVjayBjcmVhdGluZyBhIG5ldyByZXF1ZXN0IHdpdGggYSBuZXcgYm9keSBmcm9tIGEg
ZGlzdHVyYmVkIHJlcXVlc3QiKTsKLQotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgewot
ICAgICAgICB2YXIgYm9keVJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgaW5pdFZhbHVlc0RpY3Qp
OwotICAgICAgICBjb25zdCBvcmlnaW5hbEJvZHkgPSBib2R5UmVxdWVzdC5ib2R5OwotICAgICAg
ICBhc3NlcnRfZmFsc2UoYm9keVJlcXVlc3QuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgZmFsc2Ug
d2hlbiByZXF1ZXN0IGlzIG5vdCBkaXN0dXJiZWQiKTsKLSAgICAgICAgdmFyIHJlcXVlc3RGcm9t
UmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGJvZHlSZXF1ZXN0KTsKLSAgICAgICAgYXNzZXJ0X3RydWUo
Ym9keVJlcXVlc3QuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMg
ZGlzdHVyYmVkIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYm9keVJlcXVlc3QuYm9keSwgb3Jp
Z2luYWxCb2R5LCAiYm9keSBzaG91bGQgbm90IGNoYW5nZSIpOwotICAgICAgICBhc3NlcnRfbm90
X2VxdWFscyhvcmlnaW5hbEJvZHksIHVuZGVmaW5lZCwgImJvZHkgc2hvdWxkIG5vdCBiZSB1bmRl
ZmluZWQiKTsKLSAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMob3JpZ2luYWxCb2R5LCBudWxsLCAi
Ym9keSBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVx
dWVzdEZyb21SZXF1ZXN0LmJvZHksIG9yaWdpbmFsQm9keSwgIm5ldyByZXF1ZXN0J3MgYm9keSBp
cyBuZXciKTsKLSAgICAgICAgcmV0dXJuIHJlcXVlc3RGcm9tUmVxdWVzdC50ZXh0KCkudGhlbih0
ZXh0ID0+IHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHRleHQsICJSZXF1ZXN0J3MgYm9keSIp
OwotICAgICAgICB9KTsKLSAgICAgIH0sICJJbnB1dCByZXF1ZXN0IHVzZWQgZm9yIGNyZWF0aW5n
IG5ldyByZXF1ZXN0IGJlY2FtZSBkaXN0dXJiZWQiKTsKLQotICAgICAgcHJvbWlzZV90ZXN0KCgp
ID0+IHsKLSAgICAgICAgY29uc3QgYm9keVJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgaW5pdFZh
bHVlc0RpY3QpOwotICAgICAgICBjb25zdCBvcmlnaW5hbEJvZHkgPSBib2R5UmVxdWVzdC5ib2R5
OwotICAgICAgICBhc3NlcnRfZmFsc2UoYm9keVJlcXVlc3QuYm9keVVzZWQgLCAiYm9keVVzZWQg
aXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5vdCBkaXN0dXJiZWQiKTsKLSAgICAgICAgY29uc3Qg
cmVxdWVzdEZyb21SZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYm9keVJlcXVlc3QsIHsgYm9keSA6ICJp
bml0IGJvZHkiIH0pOwotICAgICAgICBhc3NlcnRfdHJ1ZShib2R5UmVxdWVzdC5ib2R5VXNlZCAs
ICJib2R5VXNlZCBpcyB0cnVlIHdoZW4gcmVxdWVzdCBpcyBkaXN0dXJiZWQiKTsKLSAgICAgICAg
YXNzZXJ0X2VxdWFscyhib2R5UmVxdWVzdC5ib2R5LCBvcmlnaW5hbEJvZHksICJib2R5IHNob3Vs
ZCBub3QgY2hhbmdlIik7Ci0gICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKG9yaWdpbmFsQm9keSwg
dW5kZWZpbmVkLCAiYm9keSBzaG91bGQgbm90IGJlIHVuZGVmaW5lZCIpOwotICAgICAgICBhc3Nl
cnRfbm90X2VxdWFscyhvcmlnaW5hbEJvZHksIG51bGwsICJib2R5IHNob3VsZCBub3QgYmUgbnVs
bCIpOwotICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhyZXF1ZXN0RnJvbVJlcXVlc3QuYm9keSwg
b3JpZ2luYWxCb2R5LCAibmV3IHJlcXVlc3QncyBib2R5IGlzIG5ldyIpOwotCi0gICAgICAgIHJl
dHVybiByZXF1ZXN0RnJvbVJlcXVlc3QudGV4dCgpLnRoZW4odGV4dCA9PiB7Ci0gICAgICAgICAg
YXNzZXJ0X2VxdWFscyh0ZXh0LCAiaW5pdCBib2R5Iik7Ci0gICAgICAgIH0pOwotICAgICAgfSwg
IklucHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRpc3R1
cmJlZCBldmVuIGlmIGJvZHkgaXMgbm90IHVzZWQiKTsKLQotICAgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUoYm9keUNvbnN1bWVkLmJvZHlVc2Vk
ICwgImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOwotICAgICAg
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgYm9keUNvbnN1bWVk
LmJsb2IoKSk7Ci0gICAgICB9LCAiQ2hlY2sgY29uc3VtaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3Qi
KTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHJlcSA9IG5ldyBSZXF1
ZXN0KFVSTCwge21ldGhvZDogJ1BPU1QnLCBib2R5OiAnaGVsbG8nfSk7Ci0gICAgICAgIGFzc2Vy
dF9mYWxzZShyZXEuYm9keVVzZWQsCi0gICAgICAgICAgICAgICAgICAgICAnUmVxdWVzdCBzaG91
bGQgbm90IGJlIGZsYWdnZWQgYXMgdXNlZCBpZiBpdCBoYXMgbm90IGJlZW4gJyArCi0gICAgICAg
ICAgICAgICAgICAgICAnY29uc3VtZWQuJyk7Ci0gICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlw
ZUVycm9yLAotICAgICAgICAgIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdChyZXEsIHttZXRob2Q6
ICdHRVQnfSk7IH0sCi0gICAgICAgICAgJ0EgZ2V0IHJlcXVlc3QgbWF5IG5vdCBoYXZlIGJvZHku
Jyk7Ci0KLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcS5ib2R5VXNlZCwgJ0FmdGVyIHRoZSBHRVQg
Y2FzZScpOwotCi0gICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLAotICAgICAgICAg
IGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdChyZXEsIHttZXRob2Q6ICdDT05ORUNUJ30pOyB9LAot
ICAgICAgICAgICdSZXF1ZXN0KCkgd2l0aCBhIGZvcmJpZGRlbiBtZXRob2QgbXVzdCB0aHJvdy4n
KTsKLQotICAgICAgICBhc3NlcnRfZmFsc2UocmVxLmJvZHlVc2VkLCAnQWZ0ZXIgdGhlIGZvcmJp
ZGRlbiBtZXRob2QgY2FzZScpOwotCi0gICAgICAgIHZhciByZXEyID0gbmV3IFJlcXVlc3QocmVx
KTsKLSAgICAgICAgYXNzZXJ0X3RydWUocmVxLmJvZHlVc2VkLAotICAgICAgICAgICAgICAgICAg
ICAnUmVxdWVzdCBzaG91bGQgYmUgZmxhZ2dlZCBhcyB1c2VkIGlmIGl0IGhhcyBiZWVuIGNvbnN1
bWVkLicpOwotICAgICAgfSwgJ1JlcXVlc3QgY29uc3RydWN0aW9uIGZhaWx1cmUgc2hvdWxkIG5v
dCBzZXQgImJvZHlVc2VkIicpOwotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1lcnJvci5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwNzI5ZWY5MWFmYThlNTI1
OWQyM2JiYTQyMzdlMmE1NWMyMThkZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
ZXJyb3IuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACisKK1BBU1MgUmVxdWVzdElu
aXQncyB3aW5kb3cgaXMgbm90IG51bGwKK1BBU1MgSW5wdXQgVVJMIGlzIG5vdCB2YWxpZAorUEFT
UyBJbnB1dCBVUkwgaGFzIGNyZWRlbnRpYWxzCitQQVNTIFJlcXVlc3RJbml0J3MgbW9kZSBpcyBu
YXZpZ2F0ZQorUEFTUyBSZXF1ZXN0SW5pdCdzIHJlZmVycmVyIGlzIGludmFsaWQKK1BBU1MgUmVx
dWVzdEluaXQncyBtZXRob2QgaXMgaW52YWxpZAorUEFTUyBSZXF1ZXN0SW5pdCdzIG1ldGhvZCBp
cyBmb3JiaWRkZW4KK1BBU1MgUmVxdWVzdEluaXQncyBtb2RlIGlzIG5vLWNvcnMgYW5kIG1ldGhv
ZCBpcyBub3Qgc2ltcGxlCitQQVNTIFJlcXVlc3RJbml0J3MgY2FjaGUgbW9kZSBpcyBvbmx5LWlm
LWNhY2hlZCBhbmQgbW9kZSBpcyBub3Qgc2FtZS1vcmlnaW4KK1BBU1MgUmVxdWVzdCB3aXRoIGNh
Y2hlIG1vZGU6IG9ubHktaWYtY2FjaGVkIGFuZCBmZXRjaCBtb2RlIGNvcnMKK1BBU1MgUmVxdWVz
dCB3aXRoIGNhY2hlIG1vZGU6IG9ubHktaWYtY2FjaGVkIGFuZCBmZXRjaCBtb2RlIG5vLWNvcnMK
K1BBU1MgQmFkIHJlZmVycmVyUG9saWN5IGluaXQgcGFyYW1ldGVyIHZhbHVlCitQQVNTIEJhZCBt
b2RlIGluaXQgcGFyYW1ldGVyIHZhbHVlCitQQVNTIEJhZCBjcmVkZW50aWFscyBpbml0IHBhcmFt
ZXRlciB2YWx1ZQorUEFTUyBCYWQgY2FjaGUgaW5pdCBwYXJhbWV0ZXIgdmFsdWUKK1BBU1MgQmFk
IHJlZGlyZWN0IGluaXQgcGFyYW1ldGVyIHZhbHVlCitQQVNTIFJlcXVlc3Qgc2hvdWxkIGdldCBp
dHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdAorUEFTUyBSZXF1ZXN0IHNob3Vs
ZCBub3QgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgaW5pdCByZXF1ZXN0IGlmIGluaXQg
aGVhZGVycyBhcmUgcHJvdmlkZWQKK1BBU1MgUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50
LXR5cGUgZnJvbSB0aGUgYm9keSBpZiBub25lIGlzIHByb3ZpZGVkCitQQVNTIFJlcXVlc3Qgc2hv
dWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gaW5pdCBoZWFkZXJzIGlmIG9uZSBpcyBwcm92
aWRlZAorUEFTUyBSZXF1ZXN0IHdpdGggY2FjaGUgbW9kZTogb25seS1pZi1jYWNoZWQgYW5kIGZl
dGNoIG1vZGU6IHNhbWUtb3JpZ2luCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5h
bnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEz
NTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWVycm9yLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBs
YXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1lcnJvci5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuYW55LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY3ZWQ3MGM1ZGIyZjA5YWFlZDNhOTdmYzI0OTAyMmIyMGQ0Yjk0MWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuYW55LmpzCkBAIC0wLDAgKzEsNDggQEAKKy8v
IE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGVycm9y
CisvLyBNRVRBOiBzY3JpcHQ9cmVxdWVzdC1lcnJvci5qcworCisvLyBiYWRSZXF1ZXN0QXJnVGVz
dHMgaXMgZnJvbSByZXNwb25zZS1lcnJvci5qcworZm9yIChjb25zdCB7IGFyZ3MsIHRlc3ROYW1l
IH0gb2YgYmFkUmVxdWVzdEFyZ1Rlc3RzKSB7CisgIHRlc3QoKCkgPT4geworICAgIGFzc2VydF90
aHJvd3NfanMoCisgICAgICBUeXBlRXJyb3IsCisgICAgICAoKSA9PiBuZXcgUmVxdWVzdCguLi5h
cmdzKSwKKyAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIKKyAgICApOworICB9LCB0
ZXN0TmFtZSk7Cit9CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBpbml0aWFsSGVhZGVycyA9
IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOworICB2YXIgaW5pdGlh
bFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzfSk7
CisgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOworICBhc3NlcnRf
ZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAicG90YXRvIik7Cit9
LCAiUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgaW5pdCByZXF1
ZXN0Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBI
ZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOworICB2YXIgaW5pdGlhbFJlcXVl
c3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzfSk7CisgIHZh
ciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoW10pOworICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0
KGluaXRpYWxSZXF1ZXN0LCB7ImhlYWRlcnMiIDogaGVhZGVyc30pOworICBhc3NlcnRfZmFsc2Uo
cmVxdWVzdC5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIikpOworfSwgIlJlcXVlc3Qgc2hvdWxk
IG5vdCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QgaWYgaW5pdCBo
ZWFkZXJzIGFyZSBwcm92aWRlZCIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaW5pdGlh
bEhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUtRXh0cmEiLCAicG90YXRvIl1d
KTsKKyAgdmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyIgOiBp
bml0aWFsSGVhZGVycywgImJvZHkiIDogInRoaXMgaXMgbXkgcGxhdGUiLCAibWV0aG9kIiA6ICJQ
T1NUIn0pOworICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0KTsKKyAg
YXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSwgInRleHQv
cGxhaW47Y2hhcnNldD1VVEYtOCIpOworfSwgIlJlcXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVu
dC10eXBlIGZyb20gdGhlIGJvZHkgaWYgbm9uZSBpcyBwcm92aWRlZCIpOworCit0ZXN0KGZ1bmN0
aW9uKCkgeworICB2YXIgaW5pdGlhbEhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5
cGUiLCAicG90YXRvIl1dKTsKKyAgdmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIs
IHsiaGVhZGVycyIgOiBpbml0aWFsSGVhZGVycywgImJvZHkiIDogInRoaXMgaXMgbXkgcGxhdGUi
LCAibWV0aG9kIiA6ICJQT1NUIn0pOworICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRp
YWxSZXF1ZXN0KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50
LVR5cGUiKSwgInBvdGF0byIpOworfSwgIlJlcXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10
eXBlIGZyb20gaW5pdCBoZWFkZXJzIGlmIG9uZSBpcyBwcm92aWRlZCIpOworCit0ZXN0KGZ1bmN0
aW9uKCkgeworICB2YXIgb3B0aW9ucyA9IHsiY2FjaGUiOiAib25seS1pZi1jYWNoZWQiLCAibW9k
ZSI6ICJzYW1lLW9yaWdpbiJ9OworICBuZXcgUmVxdWVzdCgidGVzdCIsIG9wdGlvbnMpOworfSwg
IlJlcXVlc3Qgd2l0aCBjYWNoZSBtb2RlOiBvbmx5LWlmLWNhY2hlZCBhbmQgZmV0Y2ggbW9kZTog
c2FtZS1vcmlnaW4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MDcyOWVmOTFhZmE4ZTUyNTlkMjNiYmE0MjM3ZTJhNTVjMjE4ZGYwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9yLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjMgQEAKKworUEFTUyBSZXF1ZXN0SW5pdCdzIHdpbmRvdyBpcyBub3Qg
bnVsbAorUEFTUyBJbnB1dCBVUkwgaXMgbm90IHZhbGlkCitQQVNTIElucHV0IFVSTCBoYXMgY3Jl
ZGVudGlhbHMKK1BBU1MgUmVxdWVzdEluaXQncyBtb2RlIGlzIG5hdmlnYXRlCitQQVNTIFJlcXVl
c3RJbml0J3MgcmVmZXJyZXIgaXMgaW52YWxpZAorUEFTUyBSZXF1ZXN0SW5pdCdzIG1ldGhvZCBp
cyBpbnZhbGlkCitQQVNTIFJlcXVlc3RJbml0J3MgbWV0aG9kIGlzIGZvcmJpZGRlbgorUEFTUyBS
ZXF1ZXN0SW5pdCdzIG1vZGUgaXMgbm8tY29ycyBhbmQgbWV0aG9kIGlzIG5vdCBzaW1wbGUKK1BB
U1MgUmVxdWVzdEluaXQncyBjYWNoZSBtb2RlIGlzIG9ubHktaWYtY2FjaGVkIGFuZCBtb2RlIGlz
IG5vdCBzYW1lLW9yaWdpbgorUEFTUyBSZXF1ZXN0IHdpdGggY2FjaGUgbW9kZTogb25seS1pZi1j
YWNoZWQgYW5kIGZldGNoIG1vZGUgY29ycworUEFTUyBSZXF1ZXN0IHdpdGggY2FjaGUgbW9kZTog
b25seS1pZi1jYWNoZWQgYW5kIGZldGNoIG1vZGUgbm8tY29ycworUEFTUyBCYWQgcmVmZXJyZXJQ
b2xpY3kgaW5pdCBwYXJhbWV0ZXIgdmFsdWUKK1BBU1MgQmFkIG1vZGUgaW5pdCBwYXJhbWV0ZXIg
dmFsdWUKK1BBU1MgQmFkIGNyZWRlbnRpYWxzIGluaXQgcGFyYW1ldGVyIHZhbHVlCitQQVNTIEJh
ZCBjYWNoZSBpbml0IHBhcmFtZXRlciB2YWx1ZQorUEFTUyBCYWQgcmVkaXJlY3QgaW5pdCBwYXJh
bWV0ZXIgdmFsdWUKK1BBU1MgUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJv
bSB0aGUgaW5pdCByZXF1ZXN0CitQQVNTIFJlcXVlc3Qgc2hvdWxkIG5vdCBnZXQgaXRzIGNvbnRl
bnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QgaWYgaW5pdCBoZWFkZXJzIGFyZSBwcm92aWRl
ZAorUEFTUyBSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBib2R5
IGlmIG5vbmUgaXMgcHJvdmlkZWQKK1BBU1MgUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50
LXR5cGUgZnJvbSBpbml0IGhlYWRlcnMgaWYgb25lIGlzIHByb3ZpZGVkCitQQVNTIFJlcXVlc3Qg
d2l0aCBjYWNoZSBtb2RlOiBvbmx5LWlmLWNhY2hlZCBhbmQgZmV0Y2ggbW9kZTogc2FtZS1vcmln
aW4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9yLmFueS53b3JrZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1lcnJvci5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2
OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1lcnJvci5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUg
aXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVt
cGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjIyYmEzZjRjMjhjNmQ1NTJmMjA1YjM0OTIwMjZhOWU3
MzFiZDRhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtZXJyb3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLTwh
ZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLSAgICA8dGl0bGU+UmVxdWVzdCBlcnJvcjwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxt
ZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5
LW1peGluIj4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBG
cmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0icmVxdWVzdC1lcnJvci5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAg
PHNjcmlwdD4KLSAgICAgIC8vIGJhZFJlcXVlc3RBcmdUZXN0cyBpcyBmcm9tIHJlc3BvbnNlLWVy
cm9yLmpzCi0gICAgICBmb3IgKGNvbnN0IHsgYXJncywgdGVzdE5hbWUgfSBvZiBiYWRSZXF1ZXN0
QXJnVGVzdHMpIHsKLSAgICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgICAgYXNzZXJ0X3Rocm93
c19qcygKLSAgICAgICAgICAgIFR5cGVFcnJvciwKLSAgICAgICAgICAgICgpID0+IG5ldyBSZXF1
ZXN0KC4uLmFyZ3MpLAotICAgICAgICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIgot
ICAgICAgICAgICk7Ci0gICAgICAgIH0sIHRlc3ROYW1lKTsKLSAgICAgIH0KLQotICAgICAgdGVz
dChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhlYWRlcnMo
W1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7Ci0gICAgICAgIHZhciBpbml0aWFsUmVxdWVz
dCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRlcnN9KTsKLSAgICAg
ICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCk7Ci0gICAgICAgIGFz
c2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiksICJwb3RhdG8i
KTsKLSAgICAgIH0sICJSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRo
ZSBpbml0IHJlcXVlc3QiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFy
IGluaXRpYWxIZWFkZXJzID0gbmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJd
XSk7Ci0gICAgICAgIHZhciBpbml0aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRl
cnMiIDogaW5pdGlhbEhlYWRlcnN9KTsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVy
cyhbXSk7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3Qs
IHsiaGVhZGVycyIgOiBoZWFkZXJzfSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0Lmhl
YWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKSk7Ci0gICAgICB9LCAiUmVxdWVzdCBzaG91bGQgbm90
IGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdCBpZiBpbml0IGhlYWRl
cnMgYXJlIHByb3ZpZGVkIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZh
ciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZS1FeHRyYSIsICJw
b3RhdG8iXV0pOwotICAgICAgICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwg
eyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzLCAiYm9keSIgOiAidGhpcyBpcyBteSBwbGF0ZSIs
ICJtZXRob2QiIDogIlBPU1QifSk7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3Qo
aW5pdGlhbFJlcXVlc3QpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5n
ZXQoIkNvbnRlbnQtVHlwZSIpLCAidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Iik7Ci0gICAgICB9
LCAiUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgYm9keSBpZiBu
b25lIGlzIHByb3ZpZGVkIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZh
ciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8i
XV0pOwotICAgICAgICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFk
ZXJzIiA6IGluaXRpYWxIZWFkZXJzLCAiYm9keSIgOiAidGhpcyBpcyBteSBwbGF0ZSIsICJtZXRo
b2QiIDogIlBPU1QifSk7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlh
bFJlcXVlc3QpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNv
bnRlbnQtVHlwZSIpLCAicG90YXRvIik7Ci0gICAgICB9LCAiUmVxdWVzdCBzaG91bGQgZ2V0IGl0
cyBjb250ZW50LXR5cGUgZnJvbSBpbml0IGhlYWRlcnMgaWYgb25lIGlzIHByb3ZpZGVkIik7Ci0K
LSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBvcHRpb25zID0geyJjYWNoZSI6
ICJvbmx5LWlmLWNhY2hlZCIsICJtb2RlIjogInNhbWUtb3JpZ2luIn07Ci0gICAgICAgIG5ldyBS
ZXF1ZXN0KCJ0ZXN0Iiwgb3B0aW9ucyk7Ci0gICAgICB9LCAiUmVxdWVzdCB3aXRoIGNhY2hlIG1v
ZGU6IG9ubHktaWYtY2FjaGVkIGFuZCBmZXRjaCBtb2RlOiBzYW1lLW9yaWdpbiIpOwotICAgIDwv
c2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVh
ZGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMTdhMThjMTFhYzYyNzFlNzZjMGI0M2E1YmFi
MmFjOTgzMzY2YjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NTkgKzAsMCBAQAotCi1QQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29udGVudC1U
eXBlOiBPSyIKLVBBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJQb3RhdG86IE9LIgot
UEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgInByb3h5OiBPSyIKLVBBU1MgQWRkaW5n
IHZhbGlkIHJlcXVlc3QgaGVhZGVyICJwcm94eWE6IE9LIgotUEFTUyBBZGRpbmcgdmFsaWQgcmVx
dWVzdCBoZWFkZXIgInNlYzogT0siCi1QQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAi
c2VjYjogT0siCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBY2NlcHQtQ2hh
cnNldDogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJhY2NlcHQtY2hh
cnNldDogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBQ0NFUFQtRU5D
T0RJTkc6IEtPIgotUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUVu
Y29kaW5nOiBLTyIKLVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkFjY2Vzcy1D
b250cm9sLVJlcXVlc3QtSGVhZGVyczogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3Qg
aGVhZGVyICJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZDogS08iCi1QQVNTIEFkZGluZyBp
bnZhbGlkIHJlcXVlc3QgaGVhZGVyICJDb25uZWN0aW9uOiBLTyIKLVBBU1MgQWRkaW5nIGludmFs
aWQgcmVxdWVzdCBoZWFkZXIgIkNvbnRlbnQtTGVuZ3RoOiBLTyIKLVBBU1MgQWRkaW5nIGludmFs
aWQgcmVxdWVzdCBoZWFkZXIgIkNvb2tpZTogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVl
c3QgaGVhZGVyICJDb29raWUyOiBLTyIKLVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFk
ZXIgIkRhdGU6IEtPIgotUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiRE5UOiBL
TyIKLVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkV4cGVjdDogS08iCi1QQVNT
IEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJIb3N0OiBLTyIKLVBBU1MgQWRkaW5nIGlu
dmFsaWQgcmVxdWVzdCBoZWFkZXIgIktlZXAtQWxpdmU6IEtPIgotUEFTUyBBZGRpbmcgaW52YWxp
ZCByZXF1ZXN0IGhlYWRlciAiT3JpZ2luOiBLTyIKLVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVz
dCBoZWFkZXIgIlJlZmVyZXI6IEtPIgotUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRl
ciAiVEU6IEtPIgotUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVHJhaWxlcjog
S08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJUcmFuc2Zlci1FbmNvZGlu
ZzogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJVcGdyYWRlOiBLTyIK
LVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlZpYTogS08iCi1QQVNTIEFkZGlu
ZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJQcm94eS06IEtPIgotUEFTUyBBZGRpbmcgaW52YWxp
ZCByZXF1ZXN0IGhlYWRlciAicHJveHktYTogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVl
c3QgaGVhZGVyICJTZWMtOiBLTyIKLVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIg
InNlYy1iOiBLTyIKLVBBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgIkFj
Y2VwdDogT0siCi1QQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJBY2Nl
cHQtTGFuZ3VhZ2U6IE9LIgotUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRl
ciAiY29udGVudC1sYW5ndWFnZTogT0siCi1QQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVl
c3QgaGVhZGVyICJjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl
ZCIKLVBBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtdHlw
ZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiCi1QQVNT
IEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6IG11bHRp
cGFydC9mb3JtLWRhdGEiCi1QQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVy
ICJjb250ZW50LXR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGE7Y2hhcnNldD1VVEYtOCIKLVBBU1Mg
QWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtVFlQRTogdGV4dC9w
bGFpbiIKLVBBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgIkNPTlRFTlQt
dHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04IgotUEFTUyBBZGRpbmcgaW52YWxpZCBuby1j
b3JzIHJlcXVlc3QgaGVhZGVyICJDb250ZW50LVR5cGU6IEtPIgotUEFTUyBBZGRpbmcgaW52YWxp
ZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJQb3RhdG86IEtPIgotUEFTUyBBZGRpbmcgaW52YWxp
ZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJwcm94eTogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlk
IG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInByb3h5YTogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlk
IG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInNlYzogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIG5v
LWNvcnMgcmVxdWVzdCBoZWFkZXIgInNlY2I6IEtPIgotUEFTUyBDaGVjayB0aGF0IHJlcXVlc3Qg
Y29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0
ZXIKLVBBU1MgQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVy
aW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIKLVBBU1MgQ2hlY2sgdGhhdCBu
by1jb3JzIHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQg
YXMgcGFydCBvZiByZXF1ZXN0IHBhcmFtZXRlcgotUEFTUyBSZXF1ZXN0IHNob3VsZCBnZXQgaXRz
IGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QKLVBBU1MgUmVxdWVzdCBzaG91bGQg
bm90IGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdCBpZiBpbml0IGhl
YWRlcnMgYXJlIHByb3ZpZGVkCi1QQVNTIFJlcXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10
eXBlIGZyb20gdGhlIGJvZHkgaWYgbm9uZSBpcyBwcm92aWRlZAotUEFTUyBSZXF1ZXN0IHNob3Vs
ZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIGluaXQgaGVhZGVycyBpZiBvbmUgaXMgcHJvdmlk
ZWQKLVBBU1MgVGVzdGluZyByZXF1ZXN0IGhlYWRlciBjcmVhdGlvbnMgd2l0aCB2YXJpb3VzIG9i
amVjdHMKLVBBU1MgVGVzdGluZyBlbXB0eSBSZXF1ZXN0IENvbnRlbnQtVHlwZSBoZWFkZXIKLVBB
U1MgVGVzdCB0aGF0IFJlcXVlc3QuaGVhZGVycyBoYXMgdGhlIFtTYW1lT2JqZWN0XSBleHRlbmRl
ZCBhdHRyaWJ1dGUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMuYW55LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTExN2ExOGMxMWFjNjI3MWU3NmMwYjQzYTViYWIyYWM5ODMzNjZiMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
OSBAQAorCitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29udGVudC1UeXBlOiBP
SyIKK1BBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJQb3RhdG86IE9LIgorUEFTUyBB
ZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgInByb3h5OiBPSyIKK1BBU1MgQWRkaW5nIHZhbGlk
IHJlcXVlc3QgaGVhZGVyICJwcm94eWE6IE9LIgorUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBo
ZWFkZXIgInNlYzogT0siCitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAic2VjYjog
T0siCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBY2NlcHQtQ2hhcnNldDog
S08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJhY2NlcHQtY2hhcnNldDog
S08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBQ0NFUFQtRU5DT0RJTkc6
IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUVuY29kaW5n
OiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkFjY2Vzcy1Db250cm9s
LVJlcXVlc3QtSGVhZGVyczogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVy
ICJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZDogS08iCitQQVNTIEFkZGluZyBpbnZhbGlk
IHJlcXVlc3QgaGVhZGVyICJDb25uZWN0aW9uOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVx
dWVzdCBoZWFkZXIgIkNvbnRlbnQtTGVuZ3RoOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVx
dWVzdCBoZWFkZXIgIkNvb2tpZTogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVh
ZGVyICJDb29raWUyOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkRh
dGU6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiRE5UOiBLTyIKK1BB
U1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkV4cGVjdDogS08iCitQQVNTIEFkZGlu
ZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJIb3N0OiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQg
cmVxdWVzdCBoZWFkZXIgIktlZXAtQWxpdmU6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1
ZXN0IGhlYWRlciAiT3JpZ2luOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFk
ZXIgIlJlZmVyZXI6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVEU6
IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVHJhaWxlcjogS08iCitQ
QVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJUcmFuc2Zlci1FbmNvZGluZzogS08i
CitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJVcGdyYWRlOiBLTyIKK1BBU1Mg
QWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlZpYTogS08iCitQQVNTIEFkZGluZyBpbnZh
bGlkIHJlcXVlc3QgaGVhZGVyICJQcm94eS06IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1
ZXN0IGhlYWRlciAicHJveHktYTogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVh
ZGVyICJTZWMtOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgInNlYy1i
OiBLTyIKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgIkFjY2VwdDog
T0siCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJBY2NlcHQtTGFu
Z3VhZ2U6IE9LIgorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiY29u
dGVudC1sYW5ndWFnZTogT0siCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVh
ZGVyICJjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKK1BB
U1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtdHlwZTogYXBw
bGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiCitQQVNTIEFkZGlu
ZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6IG11bHRpcGFydC9m
b3JtLWRhdGEiCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250
ZW50LXR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGE7Y2hhcnNldD1VVEYtOCIKK1BBU1MgQWRkaW5n
IHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtVFlQRTogdGV4dC9wbGFpbiIK
K1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgIkNPTlRFTlQtdHlwZTog
dGV4dC9wbGFpbjtjaGFyc2V0PVVURi04IgorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJl
cXVlc3QgaGVhZGVyICJDb250ZW50LVR5cGU6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1j
b3JzIHJlcXVlc3QgaGVhZGVyICJQb3RhdG86IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1j
b3JzIHJlcXVlc3QgaGVhZGVyICJwcm94eTogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIG5vLWNv
cnMgcmVxdWVzdCBoZWFkZXIgInByb3h5YTogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIG5vLWNv
cnMgcmVxdWVzdCBoZWFkZXIgInNlYzogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIG5vLWNvcnMg
cmVxdWVzdCBoZWFkZXIgInNlY2I6IEtPIgorUEFTUyBDaGVjayB0aGF0IHJlcXVlc3QgY29uc3Ry
dWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIKK1BB
U1MgQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhl
YWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIKK1BBU1MgQ2hlY2sgdGhhdCBuby1jb3Jz
IHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgcGFy
dCBvZiByZXF1ZXN0IHBhcmFtZXRlcgorUEFTUyBSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRl
bnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QKK1BBU1MgUmVxdWVzdCBzaG91bGQgbm90IGdl
dCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdCBpZiBpbml0IGhlYWRlcnMg
YXJlIHByb3ZpZGVkCitQQVNTIFJlcXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZy
b20gdGhlIGJvZHkgaWYgbm9uZSBpcyBwcm92aWRlZAorUEFTUyBSZXF1ZXN0IHNob3VsZCBnZXQg
aXRzIGNvbnRlbnQtdHlwZSBmcm9tIGluaXQgaGVhZGVycyBpZiBvbmUgaXMgcHJvdmlkZWQKK1BB
U1MgVGVzdGluZyByZXF1ZXN0IGhlYWRlciBjcmVhdGlvbnMgd2l0aCB2YXJpb3VzIG9iamVjdHMK
K1BBU1MgVGVzdGluZyBlbXB0eSBSZXF1ZXN0IENvbnRlbnQtVHlwZSBoZWFkZXIKK1BBU1MgVGVz
dCB0aGF0IFJlcXVlc3QuaGVhZGVycyBoYXMgdGhlIFtTYW1lT2JqZWN0XSBleHRlbmRlZCBhdHRy
aWJ1dGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMuYW55Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtaGVhZGVycy5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVk
NTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhl
YWRlcnMuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQg
Zm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3Qg
LS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWhlYWRlcnMuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMuYW55LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM0OGUyNGU1YmM2M2Y2NGM3MDUzMTUyMTQ5ZWVlNmUxNzIzNGVmNzgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy5hbnkuanMKQEAgLTAsMCArMSwxNzMgQEAKKy8vIE1F
VEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IEhlYWRlcnMK
KwordmFyIHZhbGlkUmVxdWVzdEhlYWRlcnMgPSBbCisgIFsiQ29udGVudC1UeXBlIiwgIk9LIl0s
CisgIFsiUG90YXRvIiwgIk9LIl0sCisgIFsicHJveHkiLCAiT0siXSwKKyAgWyJwcm94eWEiLCAi
T0siXSwKKyAgWyJzZWMiLCAiT0siXSwKKyAgWyJzZWNiIiwgIk9LIl0sCitdOwordmFyIGludmFs
aWRSZXF1ZXN0SGVhZGVycyA9IFsKKyAgWyJBY2NlcHQtQ2hhcnNldCIsICJLTyJdLAorICBbImFj
Y2VwdC1jaGFyc2V0IiwgIktPIl0sCisgIFsiQUNDRVBULUVOQ09ESU5HIiwgIktPIl0sCisgIFsi
QWNjZXB0LUVuY29kaW5nIiwgIktPIl0sCisgIFsiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFk
ZXJzIiwgIktPIl0sCisgIFsiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QiLCAiS08iXSwK
KyAgWyJDb25uZWN0aW9uIiwgIktPIl0sCisgIFsiQ29udGVudC1MZW5ndGgiLCAiS08iXSwKKyAg
WyJDb29raWUiLCAiS08iXSwKKyAgWyJDb29raWUyIiwgIktPIl0sCisgIFsiRGF0ZSIsICJLTyJd
LAorICBbIkROVCIsICJLTyJdLAorICBbIkV4cGVjdCIsICJLTyJdLAorICBbIkhvc3QiLCAiS08i
XSwKKyAgWyJLZWVwLUFsaXZlIiwgIktPIl0sCisgIFsiT3JpZ2luIiwgIktPIl0sCisgIFsiUmVm
ZXJlciIsICJLTyJdLAorICBbIlRFIiwgIktPIl0sCisgIFsiVHJhaWxlciIsICJLTyJdLAorICBb
IlRyYW5zZmVyLUVuY29kaW5nIiwgIktPIl0sCisgIFsiVXBncmFkZSIsICJLTyJdLAorICBbIlZp
YSIsICJLTyJdLAorICBbIlByb3h5LSIsICJLTyJdLAorICBbInByb3h5LWEiLCAiS08iXSwKKyAg
WyJTZWMtIiwgIktPIl0sCisgIFsic2VjLWIiLCAiS08iXSwKK107CisKK3ZhciB2YWxpZFJlcXVl
c3ROb0NvcnNIZWFkZXJzID0gWworICBbIkFjY2VwdCIsICJPSyJdLAorICBbIkFjY2VwdC1MYW5n
dWFnZSIsICJPSyJdLAorICBbImNvbnRlbnQtbGFuZ3VhZ2UiLCAiT0siXSwKKyAgWyJjb250ZW50
LXR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIl0sCisgIFsiY29udGVu
dC10eXBlIiwgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04
Il0sCisgIFsiY29udGVudC10eXBlIiwgIm11bHRpcGFydC9mb3JtLWRhdGEiXSwKKyAgWyJjb250
ZW50LXR5cGUiLCAibXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04Il0sCisgIFsiY29u
dGVudC1UWVBFIiwgInRleHQvcGxhaW4iXSwKKyAgWyJDT05URU5ULXR5cGUiLCAidGV4dC9wbGFp
bjtjaGFyc2V0PVVURi04Il0sCitdOwordmFyIGludmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycyA9
IFsKKyAgWyJDb250ZW50LVR5cGUiLCAiS08iXSwKKyAgWyJQb3RhdG8iLCAiS08iXSwKKyAgWyJw
cm94eSIsICJLTyJdLAorICBbInByb3h5YSIsICJLTyJdLAorICBbInNlYyIsICJLTyJdLAorICBb
InNlY2IiLCAiS08iXSwKK107CisKK3ZhbGlkUmVxdWVzdEhlYWRlcnMuZm9yRWFjaChmdW5jdGlv
bihoZWFkZXIpIHsKKyAgdGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgcmVxdWVzdCA9IG5ldyBS
ZXF1ZXN0KCIiKTsKKyAgICByZXF1ZXN0LmhlYWRlcnMuc2V0KGhlYWRlclswXSwgaGVhZGVyWzFd
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoaGVhZGVyWzBdKSwgaGVh
ZGVyWzFdKTsKKyAgfSwgIkFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciBcIiIgKyBoZWFkZXJb
MF0gKyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7Cit9KTsKK2ludmFsaWRSZXF1ZXN0SGVhZGVy
cy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgeworICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZh
ciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIpOworICAgIHJlcXVlc3QuaGVhZGVycy5zZXQoaGVh
ZGVyWzBdLCBoZWFkZXJbMV0pOworICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdl
dChoZWFkZXJbMF0pLCBudWxsKTsKKyAgfSwgIkFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVy
IFwiIiArIGhlYWRlclswXSArICI6ICIgKyBoZWFkZXJbMV0gKyAiXCIiKTsKK30pOworCit2YWxp
ZFJlcXVlc3ROb0NvcnNIZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7CisgIHRlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlcXVlc3ROb0NvcnMgPSBuZXcgUmVxdWVzdCgiIiwgeyJt
b2RlIjogIm5vLWNvcnMifSk7CisgICAgcmVxdWVzdE5vQ29ycy5oZWFkZXJzLnNldChoZWFkZXJb
MF0sIGhlYWRlclsxXSk7CisgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0Tm9Db3JzLmhlYWRlcnMu
Z2V0KGhlYWRlclswXSksIGhlYWRlclsxXSk7CisgIH0sICJBZGRpbmcgdmFsaWQgbm8tY29ycyBy
ZXF1ZXN0IGhlYWRlciBcIiIgKyBoZWFkZXJbMF0gKyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7
Cit9KTsKK2ludmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRl
cikgeworICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciByZXF1ZXN0Tm9Db3JzID0gbmV3IFJl
cXVlc3QoIiIsIHsibW9kZSI6ICJuby1jb3JzIn0pOworICAgIHJlcXVlc3ROb0NvcnMuaGVhZGVy
cy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOworICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdE5v
Q29ycy5oZWFkZXJzLmdldChoZWFkZXJbMF0pLCBudWxsKTsKKyAgfSwgIkFkZGluZyBpbnZhbGlk
IG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgXCIiICsgaGVhZGVyWzBdICsgIjogIiArIGhlYWRlclsx
XSArICJcIiIpOworfSk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBoZWFkZXJzID0gbmV3
IEhlYWRlcnMoW1siQ29va2llMiIsICJwb3RhdG8iXV0pOworICB2YXIgcmVxdWVzdCA9IG5ldyBS
ZXF1ZXN0KCIiLCB7ImhlYWRlcnMiOiBoZWFkZXJzfSk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVz
dC5oZWFkZXJzLmdldCgiQ29va2llMiIpLCBudWxsKTsKK30sICJDaGVjayB0aGF0IHJlcXVlc3Qg
Y29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0
ZXIiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhb
WyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKKyAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVz
dCgiIiwgeyJoZWFkZXJzIjogaGVhZGVycywgIm1vZGUiOiAibm8tY29ycyJ9KTsKKyAgYXNzZXJ0
X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSwgbnVsbCk7Cit9LCAi
Q2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRl
cnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
dmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsK
KyAgdmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyI6IGhlYWRl
cnN9KTsKKyAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCwgeyJtb2Rl
IjogIm5vLWNvcnMifSk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29u
dGVudC1UeXBlIiksIG51bGwpOworfSwgIkNoZWNrIHRoYXQgbm8tY29ycyByZXF1ZXN0IGNvbnN0
cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIHBhcnQgb2YgcmVxdWVzdCBw
YXJhbWV0ZXIiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGluaXRpYWxIZWFkZXJzID0g
bmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7CisgIHZhciBpbml0aWFs
UmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRlcnN9KTsK
KyAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCk7CisgIGFzc2VydF9l
cXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiksICJwb3RhdG8iKTsKK30s
ICJSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVl
c3QiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhl
YWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7CisgIHZhciBpbml0aWFsUmVxdWVz
dCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRlcnN9KTsKKyAgdmFy
IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbXSk7CisgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3Qo
aW5pdGlhbFJlcXVlc3QsIHsiaGVhZGVycyIgOiBoZWFkZXJzfSk7CisgIGFzc2VydF9mYWxzZShy
ZXF1ZXN0LmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKSk7Cit9LCAiUmVxdWVzdCBzaG91bGQg
bm90IGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdCBpZiBpbml0IGhl
YWRlcnMgYXJlIHByb3ZpZGVkIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBpbml0aWFs
SGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZS1FeHRyYSIsICJwb3RhdG8iXV0p
OworICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGlu
aXRpYWxIZWFkZXJzLCAiYm9keSIgOiAidGhpcyBpcyBteSBwbGF0ZSIsICJtZXRob2QiIDogIlBP
U1QifSk7CisgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOworICBh
c3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAidGV4dC9w
bGFpbjtjaGFyc2V0PVVURi04Iik7Cit9LCAiUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50
LXR5cGUgZnJvbSB0aGUgYm9keSBpZiBub25lIGlzIHByb3ZpZGVkIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgIHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlw
ZSIsICJwb3RhdG8iXV0pOworICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwg
eyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzLCAiYm9keSIgOiAidGhpcyBpcyBteSBwbGF0ZSIs
ICJtZXRob2QiIDogIlBPU1QifSk7CisgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlh
bFJlcXVlc3QpOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQt
VHlwZSIpLCAicG90YXRvIik7Cit9LCAiUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5
cGUgZnJvbSBpbml0IGhlYWRlcnMgaWYgb25lIGlzIHByb3ZpZGVkIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgIHZhciBhcnJheSA9IFtbImhlbGxvIiwgIndvcmxkQUhIIl1dOworICB2YXIgb2Jq
ZWN0ID0geyJoZWxsbyI6ICd3b3JsZE9PSCd9OworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJz
KGFycmF5KTsKKworICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCJoZWxsbyIpLCAid29ybGRB
SEgiKTsKKworICB2YXIgcmVxdWVzdDEgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogaGVh
ZGVyc30pOworICB2YXIgcmVxdWVzdDIgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogYXJy
YXl9KTsKKyAgdmFyIHJlcXVlc3QzID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyI6IG9iamVj
dH0pOworCisgIGFzc2VydF9lcXVhbHMocmVxdWVzdDEuaGVhZGVycy5nZXQoImhlbGxvIiksICJ3
b3JsZEFISCIpOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QyLmhlYWRlcnMuZ2V0KCJoZWxsbyIp
LCAid29ybGRBSEgiKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0My5oZWFkZXJzLmdldCgiaGVs
bG8iKSwgIndvcmxkT09IIik7Cit9LCAiVGVzdGluZyByZXF1ZXN0IGhlYWRlciBjcmVhdGlvbnMg
d2l0aCB2YXJpb3VzIG9iamVjdHMiKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsK
KyAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IFtbIkNvbnRlbnQt
VHlwZSIsICIiXV0sICJib2R5IiA6ICJ0aGlzIGlzIG15IHBsYXRlIiwgIm1ldGhvZCIgOiAiUE9T
VCJ9KTsKKyAgcmV0dXJuIHJlcXVlc3QuYmxvYigpLnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAg
IGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCAiIiwgIkJsb2IgdHlwZSBzaG91bGQgYmUgdGhlIGVt
cHR5IHN0cmluZyIpOworICB9KTsKK30sICJUZXN0aW5nIGVtcHR5IFJlcXVlc3QgQ29udGVudC1U
eXBlIGhlYWRlciIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBjb25zdCByZXF1ZXN0MSA9IG5l
dyBSZXF1ZXN0KCIiKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0MS5oZWFkZXJzLCByZXF1ZXN0
MS5oZWFkZXJzKTsKKworICBjb25zdCByZXF1ZXN0MiA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRl
cnMiOiB7IlgtRm9vIjogImJhciJ9fSk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdDIuaGVhZGVy
cywgcmVxdWVzdDIuaGVhZGVycyk7CisgIGNvbnN0IGhlYWRlcnMgPSByZXF1ZXN0Mi5oZWFkZXJz
OworICByZXF1ZXN0Mi5oZWFkZXJzLnNldCgiWC1Gb28iLCAicXV1eCIpOworICBhc3NlcnRfZXF1
YWxzKGhlYWRlcnMsIHJlcXVlc3QyLmhlYWRlcnMpOworICBoZWFkZXJzLnNldCgiWC1PdGhlci1I
ZWFkZXIiLCAiYmF6Iik7CisgIGFzc2VydF9lcXVhbHMoaGVhZGVycywgcmVxdWVzdDIuaGVhZGVy
cyk7Cit9LCAiVGVzdCB0aGF0IFJlcXVlc3QuaGVhZGVycyBoYXMgdGhlIFtTYW1lT2JqZWN0XSBl
eHRlbmRlZCBhdHRyaWJ1dGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTExN2ExOGMxMWFjNjI3MWU3NmMwYjQzYTViYWIyYWM5
ODMzNjZiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTkgQEAKKworUEFTUyBBZGRpbmcgdmFsaWQgcmVx
dWVzdCBoZWFkZXIgIkNvbnRlbnQtVHlwZTogT0siCitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0
IGhlYWRlciAiUG90YXRvOiBPSyIKK1BBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJw
cm94eTogT0siCitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAicHJveHlhOiBPSyIK
K1BBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJzZWM6IE9LIgorUEFTUyBBZGRpbmcg
dmFsaWQgcmVxdWVzdCBoZWFkZXIgInNlY2I6IE9LIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1
ZXN0IGhlYWRlciAiQWNjZXB0LUNoYXJzZXQ6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1
ZXN0IGhlYWRlciAiYWNjZXB0LWNoYXJzZXQ6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1
ZXN0IGhlYWRlciAiQUNDRVBULUVOQ09ESU5HOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVx
dWVzdCBoZWFkZXIgIkFjY2VwdC1FbmNvZGluZzogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJl
cXVlc3QgaGVhZGVyICJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnM6IEtPIgorUEFTUyBB
ZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRo
b2Q6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29ubmVjdGlvbjog
S08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJDb250ZW50LUxlbmd0aDog
S08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJDb29raWU6IEtPIgorUEFT
UyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29va2llMjogS08iCitQQVNTIEFkZGlu
ZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJEYXRlOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQg
cmVxdWVzdCBoZWFkZXIgIkROVDogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVh
ZGVyICJFeHBlY3Q6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiSG9z
dDogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJLZWVwLUFsaXZlOiBL
TyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIk9yaWdpbjogS08iCitQQVNT
IEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJSZWZlcmVyOiBLTyIKK1BBU1MgQWRkaW5n
IGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlRFOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVx
dWVzdCBoZWFkZXIgIlRyYWlsZXI6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhl
YWRlciAiVHJhbnNmZXItRW5jb2Rpbmc6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0
IGhlYWRlciAiVXBncmFkZTogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVy
ICJWaWE6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiUHJveHktOiBL
TyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgInByb3h5LWE6IEtPIgorUEFT
UyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiU2VjLTogS08iCitQQVNTIEFkZGluZyBp
bnZhbGlkIHJlcXVlc3QgaGVhZGVyICJzZWMtYjogS08iCitQQVNTIEFkZGluZyB2YWxpZCBuby1j
b3JzIHJlcXVlc3QgaGVhZGVyICJBY2NlcHQ6IE9LIgorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29y
cyByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUxhbmd1YWdlOiBPSyIKK1BBU1MgQWRkaW5nIHZhbGlk
IG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtbGFuZ3VhZ2U6IE9LIgorUEFTUyBBZGRp
bmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiY29udGVudC10eXBlOiBhcHBsaWNhdGlv
bi94LXd3dy1mb3JtLXVybGVuY29kZWQiCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVl
c3QgaGVhZGVyICJjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl
ZDtjaGFyc2V0PVVURi04IgorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRl
ciAiY29udGVudC10eXBlOiBtdWx0aXBhcnQvZm9ybS1kYXRhIgorUEFTUyBBZGRpbmcgdmFsaWQg
bm8tY29ycyByZXF1ZXN0IGhlYWRlciAiY29udGVudC10eXBlOiBtdWx0aXBhcnQvZm9ybS1kYXRh
O2NoYXJzZXQ9VVRGLTgiCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVy
ICJjb250ZW50LVRZUEU6IHRleHQvcGxhaW4iCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJl
cXVlc3QgaGVhZGVyICJDT05URU5ULXR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIKK1BB
U1MgQWRkaW5nIGludmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiQ29udGVudC1UeXBlOiBL
TyIKK1BBU1MgQWRkaW5nIGludmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiUG90YXRvOiBL
TyIKK1BBU1MgQWRkaW5nIGludmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAicHJveHk6IEtP
IgorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJwcm94eWE6IEtP
IgorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJzZWM6IEtPIgor
UEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJzZWNiOiBLTyIKK1BB
U1MgQ2hlY2sgdGhhdCByZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHBy
b3ZpZGVkIGFzIGluaXQgcGFyYW1ldGVyCitQQVNTIENoZWNrIHRoYXQgbm8tY29ycyByZXF1ZXN0
IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIGluaXQgcGFyYW1l
dGVyCitQQVNTIENoZWNrIHRoYXQgbm8tY29ycyByZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRl
cmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIHBhcnQgb2YgcmVxdWVzdCBwYXJhbWV0ZXIKK1BBU1Mg
UmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgaW5pdCByZXF1ZXN0
CitQQVNTIFJlcXVlc3Qgc2hvdWxkIG5vdCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBp
bml0IHJlcXVlc3QgaWYgaW5pdCBoZWFkZXJzIGFyZSBwcm92aWRlZAorUEFTUyBSZXF1ZXN0IHNo
b3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBib2R5IGlmIG5vbmUgaXMgcHJvdmlk
ZWQKK1BBU1MgUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSBpbml0IGhl
YWRlcnMgaWYgb25lIGlzIHByb3ZpZGVkCitQQVNTIFRlc3RpbmcgcmVxdWVzdCBoZWFkZXIgY3Jl
YXRpb25zIHdpdGggdmFyaW91cyBvYmplY3RzCitQQVNTIFRlc3RpbmcgZW1wdHkgUmVxdWVzdCBD
b250ZW50LVR5cGUgaGVhZGVyCitQQVNTIFRlc3QgdGhhdCBSZXF1ZXN0LmhlYWRlcnMgaGFzIHRo
ZSBbU2FtZU9iamVjdF0gZXh0ZW5kZWQgYXR0cmlidXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1oZWFkZXJzLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmFueS53
b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgw
YjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMuYW55Lndvcmtl
ci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJL
aXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMTRmMmZiMmQ1ODYxNjY5NjIzNjk3M2I1NTE5Y2JmN2Q5ZWI2ZTNkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFk
ZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxODYgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+
Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRs
ZT5SZXF1ZXN0IEhlYWRlcnM8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KLSAgICA8bWV0YSBuYW1lPSJh
dXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNy
Zi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgICAg
dmFyIHZhbGlkUmVxdWVzdEhlYWRlcnMgPSBbCi0gICAgICAgIFsiQ29udGVudC1UeXBlIiwgIk9L
Il0sCi0gICAgICAgIFsiUG90YXRvIiwgIk9LIl0sCi0gICAgICAgIFsicHJveHkiLCAiT0siXSwK
LSAgICAgICAgWyJwcm94eWEiLCAiT0siXSwKLSAgICAgICAgWyJzZWMiLCAiT0siXSwKLSAgICAg
ICAgWyJzZWNiIiwgIk9LIl0sCi0gICAgICBdOwotICAgICAgdmFyIGludmFsaWRSZXF1ZXN0SGVh
ZGVycyA9IFsKLSAgICAgICAgWyJBY2NlcHQtQ2hhcnNldCIsICJLTyJdLAotICAgICAgICBbImFj
Y2VwdC1jaGFyc2V0IiwgIktPIl0sCi0gICAgICAgIFsiQUNDRVBULUVOQ09ESU5HIiwgIktPIl0s
Ci0gICAgICAgIFsiQWNjZXB0LUVuY29kaW5nIiwgIktPIl0sCi0gICAgICAgIFsiQWNjZXNzLUNv
bnRyb2wtUmVxdWVzdC1IZWFkZXJzIiwgIktPIl0sCi0gICAgICAgIFsiQWNjZXNzLUNvbnRyb2wt
UmVxdWVzdC1NZXRob2QiLCAiS08iXSwKLSAgICAgICAgWyJDb25uZWN0aW9uIiwgIktPIl0sCi0g
ICAgICAgIFsiQ29udGVudC1MZW5ndGgiLCAiS08iXSwKLSAgICAgICAgWyJDb29raWUiLCAiS08i
XSwKLSAgICAgICAgWyJDb29raWUyIiwgIktPIl0sCi0gICAgICAgIFsiRGF0ZSIsICJLTyJdLAot
ICAgICAgICBbIkROVCIsICJLTyJdLAotICAgICAgICBbIkV4cGVjdCIsICJLTyJdLAotICAgICAg
ICBbIkhvc3QiLCAiS08iXSwKLSAgICAgICAgWyJLZWVwLUFsaXZlIiwgIktPIl0sCi0gICAgICAg
IFsiT3JpZ2luIiwgIktPIl0sCi0gICAgICAgIFsiUmVmZXJlciIsICJLTyJdLAotICAgICAgICBb
IlRFIiwgIktPIl0sCi0gICAgICAgIFsiVHJhaWxlciIsICJLTyJdLAotICAgICAgICBbIlRyYW5z
ZmVyLUVuY29kaW5nIiwgIktPIl0sCi0gICAgICAgIFsiVXBncmFkZSIsICJLTyJdLAotICAgICAg
ICBbIlZpYSIsICJLTyJdLAotICAgICAgICBbIlByb3h5LSIsICJLTyJdLAotICAgICAgICBbInBy
b3h5LWEiLCAiS08iXSwKLSAgICAgICAgWyJTZWMtIiwgIktPIl0sCi0gICAgICAgIFsic2VjLWIi
LCAiS08iXSwKLSAgICAgIF07Ci0KLSAgICAgIHZhciB2YWxpZFJlcXVlc3ROb0NvcnNIZWFkZXJz
ID0gWwotICAgICAgICBbIkFjY2VwdCIsICJPSyJdLAotICAgICAgICBbIkFjY2VwdC1MYW5ndWFn
ZSIsICJPSyJdLAotICAgICAgICBbImNvbnRlbnQtbGFuZ3VhZ2UiLCAiT0siXSwKLSAgICAgICAg
WyJjb250ZW50LXR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIl0sCi0g
ICAgICAgIFsiY29udGVudC10eXBlIiwgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl
ZDtjaGFyc2V0PVVURi04Il0sCi0gICAgICAgIFsiY29udGVudC10eXBlIiwgIm11bHRpcGFydC9m
b3JtLWRhdGEiXSwKLSAgICAgICAgWyJjb250ZW50LXR5cGUiLCAibXVsdGlwYXJ0L2Zvcm0tZGF0
YTtjaGFyc2V0PVVURi04Il0sCi0gICAgICAgIFsiY29udGVudC1UWVBFIiwgInRleHQvcGxhaW4i
XSwKLSAgICAgICAgWyJDT05URU5ULXR5cGUiLCAidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Il0s
Ci0gICAgICBdOwotICAgICAgdmFyIGludmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycyA9IFsKLSAg
ICAgICAgWyJDb250ZW50LVR5cGUiLCAiS08iXSwKLSAgICAgICAgWyJQb3RhdG8iLCAiS08iXSwK
LSAgICAgICAgWyJwcm94eSIsICJLTyJdLAotICAgICAgICBbInByb3h5YSIsICJLTyJdLAotICAg
ICAgICBbInNlYyIsICJLTyJdLAotICAgICAgICBbInNlY2IiLCAiS08iXSwKLSAgICAgIF07Ci0K
LSAgICAgIHZhbGlkUmVxdWVzdEhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHsKLSAg
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1
ZXN0KCIiKTsKLSAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMuc2V0KGhlYWRlclswXSwgaGVhZGVy
WzFdKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoaGVhZGVy
WzBdKSwgaGVhZGVyWzFdKTsKLSAgICAgICAgfSwgIkFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRl
ciBcIiIgKyBoZWFkZXJbMF0gKyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7Ci0gICAgICB9KTsK
LSAgICAgIGludmFsaWRSZXF1ZXN0SGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgewot
ICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJl
cXVlc3QoIiIpOwotICAgICAgICAgIHJlcXVlc3QuaGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFk
ZXJbMV0pOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldChoZWFk
ZXJbMF0pLCBudWxsKTsKLSAgICAgICAgfSwgIkFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVy
IFwiIiArIGhlYWRlclswXSArICI6ICIgKyBoZWFkZXJbMV0gKyAiXCIiKTsKLSAgICAgIH0pOwot
Ci0gICAgICB2YWxpZFJlcXVlc3ROb0NvcnNIZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVy
KSB7Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIHJlcXVlc3ROb0Nv
cnMgPSBuZXcgUmVxdWVzdCgiIiwgeyJtb2RlIjogIm5vLWNvcnMifSk7Ci0gICAgICAgICAgcmVx
dWVzdE5vQ29ycy5oZWFkZXJzLnNldChoZWFkZXJbMF0sIGhlYWRlclsxXSk7Ci0gICAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZXF1ZXN0Tm9Db3JzLmhlYWRlcnMuZ2V0KGhlYWRlclswXSksIGhlYWRl
clsxXSk7Ci0gICAgICAgIH0sICJBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciBc
IiIgKyBoZWFkZXJbMF0gKyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7Ci0gICAgICB9KTsKLSAg
ICAgIGludmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikg
ewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciByZXF1ZXN0Tm9Db3Jz
ID0gbmV3IFJlcXVlc3QoIiIsIHsibW9kZSI6ICJuby1jb3JzIn0pOwotICAgICAgICAgIHJlcXVl
c3ROb0NvcnMuaGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOwotICAgICAgICAgIGFz
c2VydF9lcXVhbHMocmVxdWVzdE5vQ29ycy5oZWFkZXJzLmdldChoZWFkZXJbMF0pLCBudWxsKTsK
LSAgICAgICAgfSwgIkFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgXCIiICsg
aGVhZGVyWzBdICsgIjogIiArIGhlYWRlclsxXSArICJcIiIpOwotICAgICAgfSk7Ci0KLSAgICAg
IHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoW1si
Q29va2llMiIsICJwb3RhdG8iXV0pOwotICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0
KCIiLCB7ImhlYWRlcnMiOiBoZWFkZXJzfSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVz
dC5oZWFkZXJzLmdldCgiQ29va2llMiIpLCBudWxsKTsKLSAgICAgIH0sICJDaGVjayB0aGF0IHJl
cXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBw
YXJhbWV0ZXIiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRl
cnMgPSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKLSAgICAgICAg
dmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogaGVhZGVycywgIm1vZGUi
OiAibm8tY29ycyJ9KTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0
KCJDb250ZW50LVR5cGUiKSwgbnVsbCk7Ci0gICAgICB9LCAiQ2hlY2sgdGhhdCBuby1jb3JzIHJl
cXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBw
YXJhbWV0ZXIiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRl
cnMgPSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKLSAgICAgICAg
dmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyI6IGhlYWRlcnN9
KTsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCwgeyJt
b2RlIjogIm5vLWNvcnMifSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJz
LmdldCgiQ29udGVudC1UeXBlIiksIG51bGwpOwotICAgICAgfSwgIkNoZWNrIHRoYXQgbm8tY29y
cyByZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIHBh
cnQgb2YgcmVxdWVzdCBwYXJhbWV0ZXIiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAg
ICAgICAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwg
InBvdGF0byJdXSk7Ci0gICAgICAgIHZhciBpbml0aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIi
LCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRlcnN9KTsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBu
ZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVz
dC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiksICJwb3RhdG8iKTsKLSAgICAgIH0sICJSZXF1
ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QiKTsK
LQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGluaXRpYWxIZWFkZXJzID0g
bmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7Ci0gICAgICAgIHZhciBp
bml0aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRl
cnN9KTsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbXSk7Ci0gICAgICAgIHZh
ciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QsIHsiaGVhZGVycyIgOiBoZWFk
ZXJzfSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmhlYWRlcnMuaGFzKCJDb250ZW50
LVR5cGUiKSk7Ci0gICAgICB9LCAiUmVxdWVzdCBzaG91bGQgbm90IGdldCBpdHMgY29udGVudC10
eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdCBpZiBpbml0IGhlYWRlcnMgYXJlIHByb3ZpZGVkIik7
Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBpbml0aWFsSGVhZGVycyA9
IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZS1FeHRyYSIsICJwb3RhdG8iXV0pOwotICAgICAg
ICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRp
YWxIZWFkZXJzLCAiYm9keSIgOiAidGhpcyBpcyBteSBwbGF0ZSIsICJtZXRob2QiIDogIlBPU1Qi
fSk7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOwot
ICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIp
LCAidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Iik7Ci0gICAgICB9LCAiUmVxdWVzdCBzaG91bGQg
Z2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgYm9keSBpZiBub25lIGlzIHByb3ZpZGVkIik7
Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBpbml0aWFsSGVhZGVycyA9
IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOwotICAgICAgICB2YXIg
aW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFk
ZXJzLCAiYm9keSIgOiAidGhpcyBpcyBteSBwbGF0ZSIsICJtZXRob2QiIDogIlBPU1QifSk7Ci0g
ICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOwotICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAicG90
YXRvIik7Ci0gICAgICB9LCAiUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJv
bSBpbml0IGhlYWRlcnMgaWYgb25lIGlzIHByb3ZpZGVkIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rp
b24oKSB7Ci0gICAgICAgIHZhciBhcnJheSA9IFtbImhlbGxvIiwgIndvcmxkQUhIIl1dOwotICAg
ICAgICB2YXIgb2JqZWN0ID0geyJoZWxsbyI6ICd3b3JsZE9PSCd9OwotICAgICAgICB2YXIgaGVh
ZGVycyA9IG5ldyBIZWFkZXJzKGFycmF5KTsKLQotICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRl
cnMuZ2V0KCJoZWxsbyIpLCAid29ybGRBSEgiKTsKLQotICAgICAgICB2YXIgcmVxdWVzdDEgPSBu
ZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogaGVhZGVyc30pOwotICAgICAgICB2YXIgcmVxdWVz
dDIgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogYXJyYXl9KTsKLSAgICAgICAgdmFyIHJl
cXVlc3QzID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyI6IG9iamVjdH0pOwotCi0gICAgICAg
IGFzc2VydF9lcXVhbHMocmVxdWVzdDEuaGVhZGVycy5nZXQoImhlbGxvIiksICJ3b3JsZEFISCIp
OwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QyLmhlYWRlcnMuZ2V0KCJoZWxsbyIpLCAi
d29ybGRBSEgiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0My5oZWFkZXJzLmdldCgi
aGVsbG8iKSwgIndvcmxkT09IIik7Ci0gICAgICB9LCAiVGVzdGluZyByZXF1ZXN0IGhlYWRlciBj
cmVhdGlvbnMgd2l0aCB2YXJpb3VzIG9iamVjdHMiKTsKLQotICAgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJo
ZWFkZXJzIiA6IFtbIkNvbnRlbnQtVHlwZSIsICIiXV0sICJib2R5IiA6ICJ0aGlzIGlzIG15IHBs
YXRlIiwgIm1ldGhvZCIgOiAiUE9TVCJ9KTsKLSAgICAgICAgcmV0dXJuIHJlcXVlc3QuYmxvYigp
LnRoZW4oZnVuY3Rpb24oYmxvYikgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBl
LCAiIiwgIkJsb2IgdHlwZSBzaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZyIpOwotICAgICAgICB9
KTsKLSAgICAgIH0sICJUZXN0aW5nIGVtcHR5IFJlcXVlc3QgQ29udGVudC1UeXBlIGhlYWRlciIp
OwotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICBjb25zdCByZXF1ZXN0MSA9IG5l
dyBSZXF1ZXN0KCIiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0MS5oZWFkZXJzLCBy
ZXF1ZXN0MS5oZWFkZXJzKTsKLQotICAgICAgICBjb25zdCByZXF1ZXN0MiA9IG5ldyBSZXF1ZXN0
KCIiLCB7ImhlYWRlcnMiOiB7IlgtRm9vIjogImJhciJ9fSk7Ci0gICAgICAgIGFzc2VydF9lcXVh
bHMocmVxdWVzdDIuaGVhZGVycywgcmVxdWVzdDIuaGVhZGVycyk7Ci0gICAgICAgIGNvbnN0IGhl
YWRlcnMgPSByZXF1ZXN0Mi5oZWFkZXJzOwotICAgICAgICByZXF1ZXN0Mi5oZWFkZXJzLnNldCgi
WC1Gb28iLCAicXV1eCIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMsIHJlcXVlc3Qy
LmhlYWRlcnMpOwotICAgICAgICBoZWFkZXJzLnNldCgiWC1PdGhlci1IZWFkZXIiLCAiYmF6Iik7
Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycywgcmVxdWVzdDIuaGVhZGVycyk7Ci0gICAg
ICB9LCAiVGVzdCB0aGF0IFJlcXVlc3QuaGVhZGVycyBoYXMgdGhlIFtTYW1lT2JqZWN0XSBleHRl
bmRlZCBhdHRyaWJ1dGUiKTsKLQotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWluaXQtMDAyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTFiOWIwYTNlMDgyZmRiMWRjZDEwZThhMzE5NWU2NDAyNWFjY2QyZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDItZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotCi1QQVNTIEluaXRpYWxp
emUgUmVxdWVzdCB3aXRoIGhlYWRlcnMgdmFsdWVzCi1QQVNTIEluaXRpYWxpemUgUmVxdWVzdCdz
IGJvZHkgd2l0aCAidW5kZWZpbmVkIiwgdW5kZWZpbmVkCi1QQVNTIEluaXRpYWxpemUgUmVxdWVz
dCdzIGJvZHkgd2l0aCAibnVsbCIsIG51bGwKLVBBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9k
eSB3aXRoICJbb2JqZWN0IEJsb2JdIiwgYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5Ci1QQVNTIElu
aXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCAiW29iamVjdCBGb3JtRGF0YV0iLCBtdWx0aXBh
cnQvZm9ybS1kYXRhCi1QQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCAiVGhpcyBp
cyBhIFVTVlN0cmluZyIsIHRleHQvcGxhaW47Y2hhcnNldD1VVEYtOAotUEFTUyBJbml0aWFsaXpl
IFJlcXVlc3QncyBib2R5IHdpdGggImhpISIsIHRleHQvcGxhaW47Y2hhcnNldD1VVEYtOAotUEFT
UyBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggIm5hbWU9dmFsdWUiLCBhcHBsaWNhdGlv
bi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtaW5pdC0wMDIuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAw
Mi5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxYjliMGEzZTA4MmZkYjFkY2QxMGU4YTMx
OTVlNjQwMjVhY2NkMmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIu
YW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1
ZXN0IHdpdGggaGVhZGVycyB2YWx1ZXMKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3
aXRoICJ1bmRlZmluZWQiLCB1bmRlZmluZWQKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9k
eSB3aXRoICJudWxsIiwgbnVsbAorUEFTUyBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGgg
IltvYmplY3QgQmxvYl0iLCBhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkKK1BBU1MgSW5pdGlhbGl6
ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJbb2JqZWN0IEZvcm1EYXRhXSIsIG11bHRpcGFydC9mb3Jt
LWRhdGEKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJUaGlzIGlzIGEgVVNW
U3RyaW5nIiwgdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIEluaXRpYWxpemUgUmVxdWVz
dCdzIGJvZHkgd2l0aCAiaGkhIiwgdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIEluaXRp
YWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCAibmFtZT12YWx1ZSIsIGFwcGxpY2F0aW9uL3gtd3d3
LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1pbml0LTAwMi5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5hbnkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLmFueS5odG1sCkBAIC0wLDAgKzEgQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVy
ZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5hbnkuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtaW5pdC0wMDIuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiYjY2ODlmMWU4NDRhY2I1MDc5MjlmNzAx
ZjNmODg1MmMwOTk0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIu
YW55LmpzCkBAIC0wLDAgKzEsNjAgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisv
LyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGluaXQ6IGhlYWRlcnMgYW5kIGJvZHkKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgdmFyIGhlYWRlckRpY3QgPSB7Im5hbWUxIjogInZhbHVlMSIsCisgICAgICAg
ICAgICAgICAgICAgICJuYW1lMiI6ICJ2YWx1ZTIiLAorICAgICAgICAgICAgICAgICAgICAibmFt
ZTMiOiAidmFsdWUzIgorICAgICAgICAgICAgICAgICAgICB9OworICB2YXIgaGVhZGVycyA9IG5l
dyBIZWFkZXJzKGhlYWRlckRpY3QpOworICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7
ICJoZWFkZXJzIiA6IGhlYWRlcnMgfSkKKyAgZm9yICh2YXIgbmFtZSBpbiBoZWFkZXJEaWN0KSB7
CisgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KG5hbWUpLCBoZWFkZXJEaWN0
W25hbWVdLAorICAgICAgInJlcXVlc3QncyBoZWFkZXJzIGhhcyAiICsgbmFtZSArICIgOiAiICsg
aGVhZGVyRGljdFtuYW1lXSk7CisgIH0KK30sICJJbml0aWFsaXplIFJlcXVlc3Qgd2l0aCBoZWFk
ZXJzIHZhbHVlcyIpOworCitmdW5jdGlvbiBtYWtlUmVxdWVzdEluaXQoYm9keSwgbWV0aG9kKSB7
CisgIHJldHVybiB7Im1ldGhvZCI6IG1ldGhvZCwgImJvZHkiOiBib2R5fTsKK30KKworZnVuY3Rp
b24gY2hlY2tSZXF1ZXN0SW5pdChib2R5LCBib2R5VHlwZSwgZXhwZWN0ZWRUZXh0Qm9keSkgewor
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZhciByZXF1ZXN0ID0gbmV3IFJl
cXVlc3QoIiIsIG1ha2VSZXF1ZXN0SW5pdChib2R5LCAiUE9TVCIpKTsKKyAgICBpZiAoYm9keSkg
eworICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcgUmVx
dWVzdCgiIiwgbWFrZVJlcXVlc3RJbml0KGJvZHksICJHRVQiKSk7IH0pOworICAgICAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdCgiIiwgbWFrZVJl
cXVlc3RJbml0KGJvZHksICJIRUFEIikpOyB9KTsKKyAgICB9IGVsc2UgeworICAgICAgbmV3IFJl
cXVlc3QoIiIsIG1ha2VSZXF1ZXN0SW5pdChib2R5LCAiR0VUIikpOyAvLyBzaG91bGQgbm90IHRo
cm93CisgICAgfQorICAgIHZhciByZXFIZWFkZXJzID0gcmVxdWVzdC5oZWFkZXJzOworICAgIHZh
ciBtaW1lID0gcmVxSGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpOworICAgIGFzc2VydF90cnVl
KCFib2R5IHx8IChtaW1lICYmIG1pbWUuc2VhcmNoKGJvZHlUeXBlKSA+IC0xKSwgIkNvbnRlbnQt
VHlwZSBoZWFkZXIgc2hvdWxkIGJlIFwiIiArIGJvZHlUeXBlICsgIlwiLCBub3QgXCIiICsgbWlt
ZSArICJcIiIpOworICAgIHJldHVybiByZXF1ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlB
c1RleHQpIHsKKyAgICAgIC8vbm90IGVxdWFsczogY2Fubm90IGd1ZXNzIGZvcm1EYXRhIGV4YWN0
IHZhbHVlCisgICAgICBhc3NlcnRfdHJ1ZSggYm9keUFzVGV4dC5zZWFyY2goZXhwZWN0ZWRUZXh0
Qm9keSkgPiAtMSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVxdWVzdCBib2R5Iik7CisgICAgfSk7
CisgIH0sIGBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggIiR7Ym9keX0iLCAke2JvZHlU
eXBlfWApOworfQorCit2YXIgYmxvYiA9IG5ldyBCbG9iKFsiVGhpcyBpcyBhIGJsb2IiXSwge3R5
cGU6ICJhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkifSk7Cit2YXIgZm9ybWFEYXRhID0gbmV3IEZv
cm1EYXRhKCk7Citmb3JtYURhdGEuYXBwZW5kKCJuYW1lIiwgInZhbHVlIik7Cit2YXIgdXN2U3Ry
aW5nID0gIlRoaXMgaXMgYSBVU1ZTdHJpbmciCisKK2NoZWNrUmVxdWVzdEluaXQodW5kZWZpbmVk
LCB1bmRlZmluZWQsICIiKTsKK2NoZWNrUmVxdWVzdEluaXQobnVsbCwgbnVsbCwgIiIpOworY2hl
Y2tSZXF1ZXN0SW5pdChibG9iLCAiYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5IiwgIlRoaXMgaXMg
YSBibG9iIik7CitjaGVja1JlcXVlc3RJbml0KGZvcm1hRGF0YSwgIm11bHRpcGFydC9mb3JtLWRh
dGEiLCAibmFtZT1cIm5hbWVcIlxyXG5cclxudmFsdWUiKTsKK2NoZWNrUmVxdWVzdEluaXQodXN2
U3RyaW5nLCAidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04IiwgIlRoaXMgaXMgYSBVU1ZTdHJpbmci
KTsKK2NoZWNrUmVxdWVzdEluaXQoe3RvU3RyaW5nOiAoKSA9PiAiaGkhIn0sICJ0ZXh0L3BsYWlu
O2NoYXJzZXQ9VVRGLTgiLCAiaGkhIik7CisKKy8vIEVuc3VyZSB0ZXN0IGRvZXMgbm90IHRpbWUg
b3V0IGluIGNhc2Ugb2YgbWlzc2luZyBVUkxTZWFyY2hQYXJhbXMgc3VwcG9ydC4KK2lmIChzZWxm
LlVSTFNlYXJjaFBhcmFtcykgeworICB2YXIgdXJsU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJj
aFBhcmFtcygibmFtZT12YWx1ZSIpOworICBjaGVja1JlcXVlc3RJbml0KHVybFNlYXJjaFBhcmFt
cywgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IiwgIm5h
bWU9dmFsdWUiKTsKK30gZWxzZSB7CisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Cisg
ICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJVUkxTZWFyY2hQYXJhbXMgbm90IHN1cHBvcnRlZCIp
OworICB9LCAiSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoIGFwcGxpY2F0aW9uL3gtd3d3
LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Iik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtaW5pdC0wMDIuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5p
dC0wMDIuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTFiOWIwYTNlMDgyZmRi
MWRjZDEwZThhMzE5NWU2NDAyNWFjY2QyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1pbml0LTAwMi5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BB
U1MgSW5pdGlhbGl6ZSBSZXF1ZXN0IHdpdGggaGVhZGVycyB2YWx1ZXMKK1BBU1MgSW5pdGlhbGl6
ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJ1bmRlZmluZWQiLCB1bmRlZmluZWQKK1BBU1MgSW5pdGlh
bGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJudWxsIiwgbnVsbAorUEFTUyBJbml0aWFsaXplIFJl
cXVlc3QncyBib2R5IHdpdGggIltvYmplY3QgQmxvYl0iLCBhcHBsaWNhdGlvbi9vY3RldC1iaW5h
cnkKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJbb2JqZWN0IEZvcm1EYXRh
XSIsIG11bHRpcGFydC9mb3JtLWRhdGEKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3
aXRoICJUaGlzIGlzIGEgVVNWU3RyaW5nIiwgdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNT
IEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCAiaGkhIiwgdGV4dC9wbGFpbjtjaGFyc2V0
PVVURi04CitQQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCAibmFtZT12YWx1ZSIs
IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtaW5pdC0wMDIuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
aW5pdC0wMDIuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBs
YXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1pbml0LTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0YmUyNzc0MjIwOGJlZmZlN2Y3MTIzNzcxODEy
ZGUwNzNjZmYxZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCww
IEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJlcXVlc3QgaW5pdDogaGVhZGVycyBhbmQgYm9keTwvdGl0
bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3
Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJl
c2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hl
YWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAg
ICAgICB2YXIgaGVhZGVyRGljdCA9IHsibmFtZTEiOiAidmFsdWUxIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIm5hbWUyIjogInZhbHVlMiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICJuYW1lMyI6ICJ2YWx1ZTMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAg
dmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJEaWN0KTsKLSAgICAgICAgdmFyIHJlcXVl
c3QgPSBuZXcgUmVxdWVzdCgiIiwgeyAiaGVhZGVycyIgOiBoZWFkZXJzIH0pCi0gICAgICAgIGZv
ciAodmFyIG5hbWUgaW4gaGVhZGVyRGljdCkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVx
dWVzdC5oZWFkZXJzLmdldChuYW1lKSwgaGVhZGVyRGljdFtuYW1lXSwKLSAgICAgICAgICAgInJl
cXVlc3QncyBoZWFkZXJzIGhhcyAiICsgbmFtZSArICIgOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7
Ci0gICAgICAgIH0KLSAgICAgIH0sICJJbml0aWFsaXplIFJlcXVlc3Qgd2l0aCBoZWFkZXJzIHZh
bHVlcyIpOwotCi0gICAgICBmdW5jdGlvbiBtYWtlUmVxdWVzdEluaXQoYm9keSwgbWV0aG9kKSB7
Ci0gICAgICAgIHJldHVybiB7Im1ldGhvZCI6IG1ldGhvZCwgImJvZHkiOiBib2R5fTsKLSAgICAg
IH0KLQotICAgICAgZnVuY3Rpb24gY2hlY2tSZXF1ZXN0SW5pdChib2R5LCBib2R5VHlwZSwgZXhw
ZWN0ZWRUZXh0Qm9keSkgewotICAgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewot
ICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIG1ha2VSZXF1ZXN0SW5pdChi
b2R5LCAiUE9TVCIpKTsKLSAgICAgICAgICBpZiAoYm9keSkgewotICAgICAgICAgICAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdCgiIiwgbWFrZVJl
cXVlc3RJbml0KGJvZHksICJHRVQiKSk7IH0pOwotICAgICAgICAgICAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdCgiIiwgbWFrZVJlcXVlc3RJbml0
KGJvZHksICJIRUFEIikpOyB9KTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbmV3
IFJlcXVlc3QoIiIsIG1ha2VSZXF1ZXN0SW5pdChib2R5LCAiR0VUIikpOyAvLyBzaG91bGQgbm90
IHRocm93Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciByZXFIZWFkZXJzID0gcmVxdWVzdC5o
ZWFkZXJzOwotICAgICAgICAgIHZhciBtaW1lID0gcmVxSGVhZGVycy5nZXQoIkNvbnRlbnQtVHlw
ZSIpOwotICAgICAgICAgIGFzc2VydF90cnVlKCFib2R5IHx8IChtaW1lICYmIG1pbWUuc2VhcmNo
KGJvZHlUeXBlKSA+IC0xKSwgIkNvbnRlbnQtVHlwZSBoZWFkZXIgc2hvdWxkIGJlIFwiIiArIGJv
ZHlUeXBlICsgIlwiLCBub3QgXCIiICsgbWltZSArICJcIiIpOwotICAgICAgICAgIHJldHVybiBy
ZXF1ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsKLSAgICAgICAgICAgIC8v
bm90IGVxdWFsczogY2Fubm90IGd1ZXNzIGZvcm1EYXRhIGV4YWN0IHZhbHVlCi0gICAgICAgICAg
ICBhc3NlcnRfdHJ1ZSggYm9keUFzVGV4dC5zZWFyY2goZXhwZWN0ZWRUZXh0Qm9keSkgPiAtMSwg
IlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVxdWVzdCBib2R5Iik7Ci0gICAgICAgICAgfSk7Ci0gICAg
ICAgIH0sIGBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggIiR7Ym9keX0iLCAke2JvZHlU
eXBlfWApOwotICAgICAgfQotCi0gICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFsiVGhpcyBpcyBh
IGJsb2IiXSwge3R5cGU6ICJhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkifSk7Ci0gICAgICB2YXIg
Zm9ybWFEYXRhID0gbmV3IEZvcm1EYXRhKCk7Ci0gICAgICBmb3JtYURhdGEuYXBwZW5kKCJuYW1l
IiwgInZhbHVlIik7Ci0gICAgICB2YXIgdXN2U3RyaW5nID0gIlRoaXMgaXMgYSBVU1ZTdHJpbmci
Ci0KLSAgICAgIGNoZWNrUmVxdWVzdEluaXQodW5kZWZpbmVkLCB1bmRlZmluZWQsICIiKTsKLSAg
ICAgIGNoZWNrUmVxdWVzdEluaXQobnVsbCwgbnVsbCwgIiIpOwotICAgICAgY2hlY2tSZXF1ZXN0
SW5pdChibG9iLCAiYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5IiwgIlRoaXMgaXMgYSBibG9iIik7
Ci0gICAgICBjaGVja1JlcXVlc3RJbml0KGZvcm1hRGF0YSwgIm11bHRpcGFydC9mb3JtLWRhdGEi
LCAibmFtZT1cIm5hbWVcIlxyXG5cclxudmFsdWUiKTsKLSAgICAgIGNoZWNrUmVxdWVzdEluaXQo
dXN2U3RyaW5nLCAidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04IiwgIlRoaXMgaXMgYSBVU1ZTdHJp
bmciKTsKLSAgICAgIGNoZWNrUmVxdWVzdEluaXQoe3RvU3RyaW5nOiAoKSA9PiAiaGkhIn0sICJ0
ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiLCAiaGkhIik7Ci0KLSAgICAgIC8vIEVuc3VyZSB0ZXN0
IGRvZXMgbm90IHRpbWUgb3V0IGluIGNhc2Ugb2YgbWlzc2luZyBVUkxTZWFyY2hQYXJhbXMgc3Vw
cG9ydC4KLSAgICAgIGlmICh3aW5kb3cuVVJMU2VhcmNoUGFyYW1zKSB7Ci0gICAgICAgIHZhciB1
cmxTZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCJuYW1lPXZhbHVlIik7Ci0gICAg
ICAgIGNoZWNrUmVxdWVzdEluaXQodXJsU2VhcmNoUGFyYW1zLCAiYXBwbGljYXRpb24veC13d3ct
Zm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiLCAibmFtZT12YWx1ZSIpOwotICAgICAgfSBl
bHNlIHsKLSAgICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5yZWplY3QoIlVSTFNlYXJjaFBhcmFtcyBub3Qgc3VwcG9ydGVkIik7Ci0g
ICAgICAgIH0sICJJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggYXBwbGljYXRpb24veC13
d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiKTsKLSAgICAgIH0KLSAgICA8L3Njcmlw
dD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtc3Ry
ZWFtLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC1zdHJlYW0uYW55LWV4cGVj
dGVkLnR4dAppbmRleCBiZjY1MjVjODNjNDYyMzZmN2RmMzZhNmEzYjMzN2ZmZmY3MTkwMjMyLi5k
YTVkYmY1ZTNjZjMwY2I2OTNjODRkMGExOTQ2NGM3MTM3ODczNzY0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtaW5pdC1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
aW5pdC1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKIAorUEFTUyBDb25z
dHJ1Y3RpbmcgYSBSZXF1ZXN0IHdpdGggYSBzdHJlYW0gaG9sZHMgdGhlIG9yaWdpbmFsIG9iamVj
dC4KIFBBU1MgQ29uc3RydWN0aW5nIGEgUmVxdWVzdCB3aXRoIGEgc3RyZWFtIG9uIHdoaWNoIGdl
dFJlYWRlcigpIGlzIGNhbGxlZAogUEFTUyBDb25zdHJ1Y3RpbmcgYSBSZXF1ZXN0IHdpdGggYSBz
dHJlYW0gb24gd2hpY2ggcmVhZCgpIGlzIGNhbGxlZAogUEFTUyBDb25zdHJ1Y3RpbmcgYSBSZXF1
ZXN0IHdpdGggYSBzdHJlYW0gb24gd2hpY2ggcmVhZCgpIGFuZCByZWxlYXNlTG9jaygpIGFyZSBj
YWxsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LXN0cmVhbS5hbnkuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtaW5pdC1zdHJlYW0uYW55LmpzCmluZGV4IGU3ZmZhNzI5ZDE1Yjg0MWUzMDdkNDlj
YmRjNzk5NGNlNzhiMmYwNTkuLjhjNTBjNDkyOWU3NWRhY2I2MWEzYTc0MDU0YTE2OWFlMjM0NmJi
ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LXN0cmVhbS5hbnkuanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWluaXQtc3RyZWFtLmFueS5qcwpAQCAtMiw2ICsyLDEyIEBACiAKICJ1c2Ugc3Ry
aWN0IjsKIAordGVzdCgoKSA9PiB7CisgIGNvbnN0IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVh
bSgpOworICBjb25zdCByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIi4uLiIsIHsgbWV0aG9kOiJQT1NU
IiwgYm9keTogc3RyZWFtIH0pOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuYm9keSwgc3RyZWFt
KTsKK30sICJDb25zdHJ1Y3RpbmcgYSBSZXF1ZXN0IHdpdGggYSBzdHJlYW0gaG9sZHMgdGhlIG9y
aWdpbmFsIG9iamVjdC4iKTsKKwogYXN5bmMgZnVuY3Rpb24gYXNzZXJ0X3JlcXVlc3QodGVzdCwg
aW5wdXQsIGluaXQpIHsKICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IG5ldyBS
ZXF1ZXN0KGlucHV0LCBpbml0KSwgIm5ldyBSZXF1ZXN0KCkiKTsKICAgYXdhaXQgcHJvbWlzZV9y
ZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgZmV0Y2goaW5wdXQsIGluaXQpLCAiZmV0Y2goKSIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtc3RyZWFtLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtc3RyZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IGJmNjUyNWM4M2M0NjIzNmY3ZGYzNmE2YTNiMzM3ZmZmZjcxOTAyMzIuLmRhNWRiZjVl
M2NmMzBjYjY5M2M4NGQwYTE5NDY0YzcxMzc4NzM3NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1pbml0LXN0cmVhbS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
aW5pdC1zdHJlYW0uYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw1IEBACiAKK1BB
U1MgQ29uc3RydWN0aW5nIGEgUmVxdWVzdCB3aXRoIGEgc3RyZWFtIGhvbGRzIHRoZSBvcmlnaW5h
bCBvYmplY3QuCiBQQVNTIENvbnN0cnVjdGluZyBhIFJlcXVlc3Qgd2l0aCBhIHN0cmVhbSBvbiB3
aGljaCBnZXRSZWFkZXIoKSBpcyBjYWxsZWQKIFBBU1MgQ29uc3RydWN0aW5nIGEgUmVxdWVzdCB3
aXRoIGEgc3RyZWFtIG9uIHdoaWNoIHJlYWQoKSBpcyBjYWxsZWQKIFBBU1MgQ29uc3RydWN0aW5n
IGEgUmVxdWVzdCB3aXRoIGEgc3RyZWFtIG9uIHdoaWNoIHJlYWQoKSBhbmQgcmVsZWFzZUxvY2so
KSBhcmUgY2FsbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qta2VlcGFsaXZlLmFueS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qta2VlcGFsaXZlLmFueS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTJhNWI2ZGM0OGFlNDdhNTdmOTZmNWUyODU3ZTRmOTYyYmVkZGY0YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKKworUEFTUyBrZWVwYWxpdmUgZmxhZworUEFTUyBrZWVwYWxpdmUgZmxhZyB3aXRo
IHN0cmVhbSBib2R5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUuYW55Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3Qta2VlcGFsaXZlLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1
MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3Qta2VlcGFsaXZlLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRl
bXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWtlZXBhbGl2ZS5h
bnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2I0NTA2ZGI0NmM5MzFjYTM0N2IwNWE3Y2FhMTA4MjkyZTQ4MGZj
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUuYW55LmpzCkBAIC0w
LDAgKzEsMTcgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRs
ZT1SZXF1ZXN0IGtlZXBhbGl2ZQorLy8gTUVUQTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKKy8v
IE1FVEE6IHNjcmlwdD0vY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzCisKK3Rlc3QoKCkgPT4g
eworICBhc3NlcnRfZmFsc2UobmV3IFJlcXVlc3QoJy8nKS5rZWVwYWxpdmUsICdkZWZhdWx0Jyk7
CisgIGFzc2VydF90cnVlKG5ldyBSZXF1ZXN0KCcvJywge2tlZXBhbGl2ZTogdHJ1ZX0pLmtlZXBh
bGl2ZSwgJ3RydWUnKTsKKyAgYXNzZXJ0X2ZhbHNlKG5ldyBSZXF1ZXN0KCcvJywge2tlZXBhbGl2
ZTogZmFsc2V9KS5rZWVwYWxpdmUsICdmYWxzZScpOworICBhc3NlcnRfdHJ1ZShuZXcgUmVxdWVz
dCgnLycsIHtrZWVwYWxpdmU6IDF9KS5rZWVwYWxpdmUsICd0cnVpc2gnKTsKKyAgYXNzZXJ0X2Zh
bHNlKG5ldyBSZXF1ZXN0KCcvJywge2tlZXBhbGl2ZTogMH0pLmtlZXBhbGl2ZSwgJ2ZhbHN5Jyk7
Cit9LCAna2VlcGFsaXZlIGZsYWcnKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGluaXQgPSB7
bWV0aG9kOiAnUE9TVCcsIGtlZXBhbGl2ZTogdHJ1ZSwgYm9keTogbmV3IFJlYWRhYmxlU3RyZWFt
KCl9OworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4ge25ldyBSZXF1ZXN0KCcv
JywgaW5pdCl9KTsKK30sICdrZWVwYWxpdmUgZmxhZyB3aXRoIHN0cmVhbSBib2R5Jyk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3Qta2VlcGFsaXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWtlZXBhbGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45MmE1YjZkYzQ4YWU0N2E1N2Y5NmY1ZTI4NTdlNGY5NjJiZWRkZjRiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWtlZXBhbGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKworUEFTUyBrZWVwYWxpdmUgZmxhZworUEFTUyBrZWVwYWxpdmUgZmxhZyB3
aXRoIHN0cmVhbSBib2R5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUuYW55
Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWtlZXBhbGl2ZS5hbnkud29ya2VyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUuYW55Lndvcmtlci5odG1sCkBAIC0w
LDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZy
YXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1rZWVwYWxpdmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTE2NTQyMjE2NmU5NTMxYjY4OTIwODI3MWY0YzI2OTFlMTQxNWNmNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qta2VlcGFsaXZlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+UmVxdWVzdCBrZWVwYWxp
dmU8L3RpdGxlPgotPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndo
YXR3Zy5vcmcvI3JlcXVlc3QiPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotdGVzdCgoKSA9PiB7Ci0gIGFzc2VydF9mYWxzZShuZXcg
UmVxdWVzdCgnLycpLmtlZXBhbGl2ZSwgJ2RlZmF1bHQnKTsKLSAgYXNzZXJ0X3RydWUobmV3IFJl
cXVlc3QoJy8nLCB7a2VlcGFsaXZlOiB0cnVlfSkua2VlcGFsaXZlLCAndHJ1ZScpOwotICBhc3Nl
cnRfZmFsc2UobmV3IFJlcXVlc3QoJy8nLCB7a2VlcGFsaXZlOiBmYWxzZX0pLmtlZXBhbGl2ZSwg
J2ZhbHNlJyk7Ci0gIGFzc2VydF90cnVlKG5ldyBSZXF1ZXN0KCcvJywge2tlZXBhbGl2ZTogMX0p
LmtlZXBhbGl2ZSwgJ3RydWlzaCcpOwotICBhc3NlcnRfZmFsc2UobmV3IFJlcXVlc3QoJy8nLCB7
a2VlcGFsaXZlOiAwfSkua2VlcGFsaXZlLCAnZmFsc3knKTsKLX0sICdrZWVwYWxpdmUgZmxhZycp
OwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgaW5pdCA9IHttZXRob2Q6ICdQT1NUJywga2VlcGFs
aXZlOiB0cnVlLCBib2R5OiBuZXcgUmVhZGFibGVTdHJlYW0oKX07Ci0gIGFzc2VydF90aHJvd3Nf
anMoVHlwZUVycm9yLCAoKSA9PiB7bmV3IFJlcXVlc3QoJy8nLCBpbml0KX0pOwotfSwgJ2tlZXBh
bGl2ZSBmbGFnIHdpdGggc3RyZWFtIGJvZHknKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3Qtc3RydWN0dXJlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYWFlZWRmZTk2YjY0NTE3MzdlN2RhYzY2N2E5YmRjZmNjYzVmYzE3MS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0
dXJlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLQotUEFTUyBS
ZXF1ZXN0IGhhcyBjbG9uZSBtZXRob2QKLVBBU1MgUmVxdWVzdCBoYXMgYXJyYXlCdWZmZXIgbWV0
aG9kCi1QQVNTIFJlcXVlc3QgaGFzIGJsb2IgbWV0aG9kCi1QQVNTIFJlcXVlc3QgaGFzIGZvcm1E
YXRhIG1ldGhvZAotUEFTUyBSZXF1ZXN0IGhhcyBqc29uIG1ldGhvZAotUEFTUyBSZXF1ZXN0IGhh
cyB0ZXh0IG1ldGhvZAotUEFTUyBDaGVjayBtZXRob2QgYXR0cmlidXRlCi1QQVNTIENoZWNrIHVy
bCBhdHRyaWJ1dGUKLVBBU1MgQ2hlY2sgaGVhZGVycyBhdHRyaWJ1dGUKLUZBSUwgQ2hlY2sgZGVz
dGluYXRpb24gYXR0cmlidXRlIGFzc2VydF9lcXVhbHM6IEF0dHJpYnV0ZSBkZXN0aW5hdGlvbiBp
cyByZWFkIG9ubHkuIERlZmF1bHQgdmFsdWUgaXMgZW1wdHkgZXhwZWN0ZWQgImVtcHR5IiBidXQg
Z290ICIiCi1QQVNTIENoZWNrIHJlZmVycmVyIGF0dHJpYnV0ZQotUEFTUyBDaGVjayByZWZlcnJl
clBvbGljeSBhdHRyaWJ1dGUKLVBBU1MgQ2hlY2sgbW9kZSBhdHRyaWJ1dGUKLVBBU1MgQ2hlY2sg
Y3JlZGVudGlhbHMgYXR0cmlidXRlCi1QQVNTIENoZWNrIGNhY2hlIGF0dHJpYnV0ZQotUEFTUyBD
aGVjayByZWRpcmVjdCBhdHRyaWJ1dGUKLVBBU1MgQ2hlY2sgaW50ZWdyaXR5IGF0dHJpYnV0ZQot
RkFJTCBDaGVjayBpc1JlbG9hZE5hdmlnYXRpb24gYXR0cmlidXRlIGFzc2VydF90cnVlOiByZXF1
ZXN0IGhhcyBpc1JlbG9hZE5hdmlnYXRpb24gYXR0cmlidXRlIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIENoZWNrIGlzSGlzdG9yeU5hdmlnYXRpb24gYXR0cmlidXRlIGFzc2VydF90cnVl
OiByZXF1ZXN0IGhhcyBpc0hpc3RvcnlOYXZpZ2F0aW9uIGF0dHJpYnV0ZSBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotUEFTUyBDaGVjayBib2R5VXNlZCBhdHRyaWJ1dGUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0
cnVjdHVyZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0OTU5YjNiNzljZGQwNjYyMTMz
MTgxYTM5MjFjYjY1MGRjYzEwYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3Ry
dWN0dXJlLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorCitQQVNTIFJlcXVlc3Qg
aGFzIGNsb25lIG1ldGhvZAorUEFTUyBSZXF1ZXN0IGhhcyBhcnJheUJ1ZmZlciBtZXRob2QKK1BB
U1MgUmVxdWVzdCBoYXMgYmxvYiBtZXRob2QKK1BBU1MgUmVxdWVzdCBoYXMgZm9ybURhdGEgbWV0
aG9kCitQQVNTIFJlcXVlc3QgaGFzIGpzb24gbWV0aG9kCitQQVNTIFJlcXVlc3QgaGFzIHRleHQg
bWV0aG9kCitQQVNTIENoZWNrIG1ldGhvZCBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgdXJsIGF0dHJp
YnV0ZQorUEFTUyBDaGVjayBoZWFkZXJzIGF0dHJpYnV0ZQorUEFTUyBDaGVjayBkZXN0aW5hdGlv
biBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgcmVmZXJyZXIgYXR0cmlidXRlCitQQVNTIENoZWNrIHJl
ZmVycmVyUG9saWN5IGF0dHJpYnV0ZQorUEFTUyBDaGVjayBtb2RlIGF0dHJpYnV0ZQorUEFTUyBD
aGVjayBjcmVkZW50aWFscyBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgY2FjaGUgYXR0cmlidXRlCitQ
QVNTIENoZWNrIHJlZGlyZWN0IGF0dHJpYnV0ZQorUEFTUyBDaGVjayBpbnRlZ3JpdHkgYXR0cmli
dXRlCitGQUlMIENoZWNrIGlzUmVsb2FkTmF2aWdhdGlvbiBhdHRyaWJ1dGUgYXNzZXJ0X3RydWU6
IHJlcXVlc3QgaGFzIGlzUmVsb2FkTmF2aWdhdGlvbiBhdHRyaWJ1dGUgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgQ2hlY2sgaXNIaXN0b3J5TmF2aWdhdGlvbiBhdHRyaWJ1dGUgYXNzZXJ0
X3RydWU6IHJlcXVlc3QgaGFzIGlzSGlzdG9yeU5hdmlnYXRpb24gYXR0cmlidXRlIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTIENoZWNrIGJvZHlVc2VkIGF0dHJpYnV0ZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVj
dHVyZS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYw
OTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnku
aHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0
IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJl
LmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZjFi
OTZiMmI5MDQyY2Q5Zjk2NTZmMTI1Yzc1NmU5YjRlNWZmODcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmFueS5qcwpAQCAtMCwwICsxLDEyOCBAQAorLy8gTUVUQTog
Z2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPVJlcXVlc3Qgc3RydWN0dXJlCisK
K3ZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIpOwordmFyIG1ldGhvZHMgPSBbImNsb25lIiwK
KyAgICAgICAgICAgICAgICAvL1JlcXVlc3QgaW1wbGVtZW50cyBCb2R5CisgICAgICAgICAgICAg
ICAgImFycmF5QnVmZmVyIiwKKyAgICAgICAgICAgICAgICAiYmxvYiIsCisgICAgICAgICAgICAg
ICAgImZvcm1EYXRhIiwKKyAgICAgICAgICAgICAgICAianNvbiIsCisgICAgICAgICAgICAgICAg
InRleHQiCisgICAgICAgICAgICAgIF07Cit2YXIgYXR0cmlidXRlcyA9IFsibWV0aG9kIiwKKyAg
ICAgICAgICAgICAgICAgICJ1cmwiLAorICAgICAgICAgICAgICAgICAgImhlYWRlcnMiLAorICAg
ICAgICAgICAgICAgICAgImRlc3RpbmF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICJyZWZlcnJl
ciIsCisgICAgICAgICAgICAgICAgICAicmVmZXJyZXJQb2xpY3kiLAorICAgICAgICAgICAgICAg
ICAgIm1vZGUiLAorICAgICAgICAgICAgICAgICAgImNyZWRlbnRpYWxzIiwKKyAgICAgICAgICAg
ICAgICAgICJjYWNoZSIsCisgICAgICAgICAgICAgICAgICAicmVkaXJlY3QiLAorICAgICAgICAg
ICAgICAgICAgImludGVncml0eSIsCisgICAgICAgICAgICAgICAgICAiaXNSZWxvYWROYXZpZ2F0
aW9uIiwKKyAgICAgICAgICAgICAgICAgICJpc0hpc3RvcnlOYXZpZ2F0aW9uIiwKKyAgICAgICAg
ICAgICAgICAgIC8vUmVxdWVzdCBpbXBsZW1lbnRzIEJvZHkKKyAgICAgICAgICAgICAgICAgICJi
b2R5VXNlZCIKKyAgICAgICAgICAgICAgICAgIF07CisKK2Z1bmN0aW9uIElzcmVhZE9ubHkocmVx
dWVzdCwgYXR0cmlidXRlVG9DaGVjaykgeworICB2YXIgZGVmYXVsdFZhbHVlID0gdW5kZWZpbmVk
OworICB2YXIgbmV3VmFsdWUgPSB1bmRlZmluZWQ7CisgIHN3aXRjaCAoYXR0cmlidXRlVG9DaGVj
aykgeworICAgIGNhc2UgIm1ldGhvZCI6CisgICAgICBkZWZhdWx0VmFsdWUgPSAiR0VUIjsKKyAg
ICAgIG5ld1ZhbHVlID0gIlBPU1QiOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlICJ1cmwiOgor
ICAgICAgLy9kZWZhdWx0IHZhbHVlIGlzIGJhc2UgdXJsCisgICAgICAvL2kuZSBodHRwOi8vZXhh
bXBsZS5jb20vZmV0Y2gvYXBpL3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwKKyAgICAgIG5ld1ZhbHVl
ID0gImh0dHA6Ly91cmwudGVzdCI7CisgICAgICBicmVhazsKKworICAgIGNhc2UgImhlYWRlcnMi
OgorICAgICAgcmVxdWVzdC5oZWFkZXJzID0gbmV3IEhlYWRlcnMgKHsibmFtZSI6InZhbHVlIn0p
OworICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuaGVhZGVycy5oYXMoIm5hbWUiKSwgIkhlYWRl
cnMgYXR0cmlidXRlIGlzIHJlYWQgb25seSIpOworICAgICAgcmV0dXJuOworICAgICAgYnJlYWs7
CisKKyAgICBjYXNlICJkZXN0aW5hdGlvbiI6CisgICAgICBkZWZhdWx0VmFsdWUgPSAiIjsKKyAg
ICAgIG5ld1ZhbHVlID0gIndvcmtlciI7CisgICAgICBicmVhazsKKworICAgIGNhc2UgInJlZmVy
cmVyIjoKKyAgICAgIGRlZmF1bHRWYWx1ZSA9ICJhYm91dDpjbGllbnQiOworICAgICAgbmV3VmFs
dWUgPSAiaHR0cDovL3VybC50ZXN0IjsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSAicmVmZXJy
ZXJQb2xpY3kiOgorICAgICAgZGVmYXVsdFZhbHVlID0gIiI7CisgICAgICBuZXdWYWx1ZSA9ICJ1
bnNhZmUtdXJsIjsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSAibW9kZSI6CisgICAgICBkZWZh
dWx0VmFsdWUgPSAiY29ycyI7CisgICAgICBuZXdWYWx1ZSA9ICJuYXZpZ2F0ZSI7CisgICAgICBi
cmVhazsKKworICAgIGNhc2UgImNyZWRlbnRpYWxzIjoKKyAgICAgIGRlZmF1bHRWYWx1ZSA9ICJz
YW1lLW9yaWdpbiI7CisgICAgICBuZXdWYWx1ZSA9ICJjb3JzIjsKKyAgICAgIGJyZWFrOworCisg
ICAgY2FzZSAiY2FjaGUiOgorICAgICAgZGVmYXVsdFZhbHVlID0gImRlZmF1bHQiOworICAgICAg
bmV3VmFsdWUgPSAicmVsb2FkIjsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSAicmVkaXJlY3Qi
OgorICAgICAgZGVmYXVsdFZhbHVlID0gImZvbGxvdyI7CisgICAgICBuZXdWYWx1ZSA9ICJtYW51
YWwiOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlICJpbnRlZ3JpdHkiOgorICAgICAgbmV3VmFs
dWUgPSAiQ2Fubm90V3JpdGVJbnRlZ3JpdHkiOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlICJi
b2R5VXNlZCI6CisgICAgICBkZWZhdWx0VmFsdWUgPSBmYWxzZTsKKyAgICAgIG5ld1ZhbHVlID0g
dHJ1ZTsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSAiaXNSZWxvYWROYXZpZ2F0aW9uIjoKKyAg
ICAgIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOworICAgICAgbmV3VmFsdWUgPSB0cnVlOworICAgICAg
YnJlYWs7CisKKyAgICBjYXNlICJpc0hpc3RvcnlOYXZpZ2F0aW9uIjoKKyAgICAgIGRlZmF1bHRW
YWx1ZSA9IGZhbHNlOworICAgICAgbmV3VmFsdWUgPSB0cnVlOworICAgICAgYnJlYWs7CisKKyAg
ICBkZWZhdWx0OgorICAgICAgcmV0dXJuOworICB9CisKKyAgcmVxdWVzdFthdHRyaWJ1dGVUb0No
ZWNrXSA9IG5ld1ZhbHVlOworICBpZiAoZGVmYXVsdFZhbHVlID09PSB1bmRlZmluZWQpCisgICAg
YXNzZXJ0X25vdF9lcXVhbHMocmVxdWVzdFthdHRyaWJ1dGVUb0NoZWNrXSwgbmV3VmFsdWUsICJB
dHRyaWJ1dGUgIiArIGF0dHJpYnV0ZVRvQ2hlY2sgKyAiIGlzIHJlYWQgb25seSIpOworICBlbHNl
CisgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0W2F0dHJpYnV0ZVRvQ2hlY2tdLCBkZWZhdWx0VmFs
dWUsCisgICAgICAiQXR0cmlidXRlICIgKyBhdHRyaWJ1dGVUb0NoZWNrICsgIiBpcyByZWFkIG9u
bHkuIERlZmF1bHQgdmFsdWUgaXMgIiArIGRlZmF1bHRWYWx1ZSk7Cit9CisKK2ZvciAodmFyIGlk
eCBpbiBtZXRob2RzKSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X3RydWUobWV0
aG9kc1tpZHhdIGluIHJlcXVlc3QsICJyZXF1ZXN0IGhhcyAiICsgbWV0aG9kc1tpZHhdICsgIiBt
ZXRob2QiKTsKKyAgfSwgIlJlcXVlc3QgaGFzICIgKyBtZXRob2RzW2lkeF0gKyAiIG1ldGhvZCIp
OworfQorCitmb3IgKHZhciBpZHggaW4gYXR0cmlidXRlcykgeworICB0ZXN0KGZ1bmN0aW9uKCkg
eworICAgIGFzc2VydF90cnVlKGF0dHJpYnV0ZXNbaWR4XSBpbiByZXF1ZXN0LCAicmVxdWVzdCBo
YXMgIiArIGF0dHJpYnV0ZXNbaWR4XSArICIgYXR0cmlidXRlIik7CisgICAgSXNyZWFkT25seShy
ZXF1ZXN0LCBhdHRyaWJ1dGVzW2lkeF0pOworICB9LCAiQ2hlY2sgIiArIGF0dHJpYnV0ZXNbaWR4
XSArICIgYXR0cmlidXRlIik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJl
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDk1OWIzYjc5Y2RkMDY2MjEzMzE4MWEzOTIx
Y2I2NTBkY2MxMGIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACisKK1BBU1MgUmVxdWVzdCBo
YXMgY2xvbmUgbWV0aG9kCitQQVNTIFJlcXVlc3QgaGFzIGFycmF5QnVmZmVyIG1ldGhvZAorUEFT
UyBSZXF1ZXN0IGhhcyBibG9iIG1ldGhvZAorUEFTUyBSZXF1ZXN0IGhhcyBmb3JtRGF0YSBtZXRo
b2QKK1BBU1MgUmVxdWVzdCBoYXMganNvbiBtZXRob2QKK1BBU1MgUmVxdWVzdCBoYXMgdGV4dCBt
ZXRob2QKK1BBU1MgQ2hlY2sgbWV0aG9kIGF0dHJpYnV0ZQorUEFTUyBDaGVjayB1cmwgYXR0cmli
dXRlCitQQVNTIENoZWNrIGhlYWRlcnMgYXR0cmlidXRlCitQQVNTIENoZWNrIGRlc3RpbmF0aW9u
IGF0dHJpYnV0ZQorUEFTUyBDaGVjayByZWZlcnJlciBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgcmVm
ZXJyZXJQb2xpY3kgYXR0cmlidXRlCitQQVNTIENoZWNrIG1vZGUgYXR0cmlidXRlCitQQVNTIENo
ZWNrIGNyZWRlbnRpYWxzIGF0dHJpYnV0ZQorUEFTUyBDaGVjayBjYWNoZSBhdHRyaWJ1dGUKK1BB
U1MgQ2hlY2sgcmVkaXJlY3QgYXR0cmlidXRlCitQQVNTIENoZWNrIGludGVncml0eSBhdHRyaWJ1
dGUKK0ZBSUwgQ2hlY2sgaXNSZWxvYWROYXZpZ2F0aW9uIGF0dHJpYnV0ZSBhc3NlcnRfdHJ1ZTog
cmVxdWVzdCBoYXMgaXNSZWxvYWROYXZpZ2F0aW9uIGF0dHJpYnV0ZSBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorRkFJTCBDaGVjayBpc0hpc3RvcnlOYXZpZ2F0aW9uIGF0dHJpYnV0ZSBhc3NlcnRf
dHJ1ZTogcmVxdWVzdCBoYXMgaXNIaXN0b3J5TmF2aWdhdGlvbiBhdHRyaWJ1dGUgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQ2hlY2sgYm9keVVzZWQgYXR0cmlidXRlCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LXN0cnVjdHVyZS5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1
ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1z
dHJ1Y3R1cmUuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBs
YXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA2NjA2Y2Y2MjdjMTE1YWFkNGMzZmQ4OWQ0
Y2MyMzc3YTNjOGE2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5SZXF1ZXN0IHN0cnVjdHVyZTwvdGl0bGU+Ci0gICAg
PG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jl
cXVlc3QiPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZy
YW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxi
b2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiKTsK
LSAgICAgIHZhciBtZXRob2RzID0gWyJjbG9uZSIsCi0gICAgICAgICAgICAgICAgICAgICAvL1Jl
cXVlc3QgaW1wbGVtZW50cyBCb2R5Ci0gICAgICAgICAgICAgICAgICAgICAiYXJyYXlCdWZmZXIi
LAotICAgICAgICAgICAgICAgICAgICAgImJsb2IiLAotICAgICAgICAgICAgICAgICAgICAgImZv
cm1EYXRhIiwKLSAgICAgICAgICAgICAgICAgICAgICJqc29uIiwKLSAgICAgICAgICAgICAgICAg
ICAgICJ0ZXh0IgotICAgICAgICAgICAgICAgICAgICBdOwotICAgICAgdmFyIGF0dHJpYnV0ZXMg
PSBbIm1ldGhvZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAidXJsIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJoZWFkZXJzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJkZXN0aW5h
dGlvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXIiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgInJlZmVycmVyUG9saWN5IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJt
b2RlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJjcmVkZW50aWFscyIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAiY2FjaGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlZ3JpdHkiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgImlzUmVsb2FkTmF2aWdhdGlvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
aXNIaXN0b3J5TmF2aWdhdGlvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAvL1JlcXVlc3Qg
aW1wbGVtZW50cyBCb2R5Ci0gICAgICAgICAgICAgICAgICAgICAgICAiYm9keVVzZWQiCi0gICAg
ICAgICAgICAgICAgICAgICAgIF07Ci0KLSAgICAgIGZ1bmN0aW9uIElzcmVhZE9ubHkocmVxdWVz
dCwgYXR0cmlidXRlVG9DaGVjaykgewotICAgICAgICB2YXIgZGVmYXVsdFZhbHVlID0gdW5kZWZp
bmVkOwotICAgICAgICB2YXIgbmV3VmFsdWUgPSB1bmRlZmluZWQ7Ci0gICAgICAgIHN3aXRjaCAo
YXR0cmlidXRlVG9DaGVjaykgewotICAgICAgICAgIGNhc2UgIm1ldGhvZCI6Ci0gICAgICAgICAg
ICBkZWZhdWx0VmFsdWUgPSAiR0VUIjsKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gIlBPU1QiOwot
ICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBjYXNlICJ1cmwiOgotICAgICAgICAgICAg
Ly9kZWZhdWx0IHZhbHVlIGlzIGJhc2UgdXJsCi0gICAgICAgICAgICAvL2kuZSBodHRwOi8vZXhh
bXBsZS5jb20vZmV0Y2gvYXBpL3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwKLSAgICAgICAgICAgIG5l
d1ZhbHVlID0gImh0dHA6Ly91cmwudGVzdCI7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAg
ICAgIGNhc2UgImhlYWRlcnMiOgotICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzID0gbmV3IEhl
YWRlcnMgKHsibmFtZSI6InZhbHVlIn0pOwotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVl
c3QuaGVhZGVycy5oYXMoIm5hbWUiKSwgIkhlYWRlcnMgYXR0cmlidXRlIGlzIHJlYWQgb25seSIp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBj
YXNlICJkZXN0aW5hdGlvbiI6Ci0gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiZW1wdHkiOwot
ICAgICAgICAgICAgbmV3VmFsdWUgPSAid29ya2VyIjsKLSAgICAgICAgICAgIGJyZWFrOwotCi0g
ICAgICAgICAgY2FzZSAicmVmZXJyZXIiOgotICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gImFi
b3V0OmNsaWVudCI7Ci0gICAgICAgICAgICBuZXdWYWx1ZSA9ICJodHRwOi8vdXJsLnRlc3QiOwot
ICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBjYXNlICJyZWZlcnJlclBvbGljeSI6Ci0g
ICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiIjsKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gInVu
c2FmZS11cmwiOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBjYXNlICJtb2RlIjoK
LSAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJjb3JzIjsKLSAgICAgICAgICAgIG5ld1ZhbHVl
ID0gIm5hdmlnYXRlIjsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgY2FzZSAiY3Jl
ZGVudGlhbHMiOgotICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gInNhbWUtb3JpZ2luIjsKLSAg
ICAgICAgICAgIG5ld1ZhbHVlID0gImNvcnMiOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAg
ICAgICBjYXNlICJjYWNoZSI6Ci0gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiZGVmYXVsdCI7
Ci0gICAgICAgICAgICBuZXdWYWx1ZSA9ICJyZWxvYWQiOwotICAgICAgICAgICAgYnJlYWs7Ci0K
LSAgICAgICAgICBjYXNlICJyZWRpcmVjdCI6Ci0gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAi
Zm9sbG93IjsKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gIm1hbnVhbCI7Ci0gICAgICAgICAgICBi
cmVhazsKLQotICAgICAgICAgIGNhc2UgImludGVncml0eSI6Ci0gICAgICAgICAgICBuZXdWYWx1
ZSA9ICJDYW5ub3RXcml0ZUludGVncml0eSI7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAg
ICAgIGNhc2UgImJvZHlVc2VkIjoKLSAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwot
ICAgICAgICAgICAgbmV3VmFsdWUgPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAg
ICAgICBjYXNlICJpc1JlbG9hZE5hdmlnYXRpb24iOgotICAgICAgICAgICAgZGVmYXVsdFZhbHVl
ID0gZmFsc2U7Ci0gICAgICAgICAgICBuZXdWYWx1ZSA9IHRydWU7Ci0gICAgICAgICAgICBicmVh
azsKLQotICAgICAgICAgIGNhc2UgImlzSGlzdG9yeU5hdmlnYXRpb24iOgotICAgICAgICAgICAg
ZGVmYXVsdFZhbHVlID0gZmFsc2U7Ci0gICAgICAgICAgICBuZXdWYWx1ZSA9IHRydWU7Ci0gICAg
ICAgICAgICBicmVhazsKLQotICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLQotICAgICAgICByZXF1ZXN0W2F0dHJpYnV0ZVRvQ2hlY2tdID0gbmV3VmFs
dWU7Ci0gICAgICAgIGlmIChkZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICBh
c3NlcnRfbm90X2VxdWFscyhyZXF1ZXN0W2F0dHJpYnV0ZVRvQ2hlY2tdLCBuZXdWYWx1ZSwgIkF0
dHJpYnV0ZSAiICsgYXR0cmlidXRlVG9DaGVjayArICIgaXMgcmVhZCBvbmx5Iik7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3RbYXR0cmlidXRlVG9DaGVja10s
IGRlZmF1bHRWYWx1ZSwKLSAgICAgICAgICAgIkF0dHJpYnV0ZSAiICsgYXR0cmlidXRlVG9DaGVj
ayArICIgaXMgcmVhZCBvbmx5LiBEZWZhdWx0IHZhbHVlIGlzICIgKyBkZWZhdWx0VmFsdWUpOwot
ICAgICAgfQotCi0gICAgICBmb3IgKHZhciBpZHggaW4gbWV0aG9kcykgewotICAgICAgICB0ZXN0
KGZ1bmN0aW9uKCkgewotICAgICAgICAgIGFzc2VydF90cnVlKG1ldGhvZHNbaWR4XSBpbiByZXF1
ZXN0LCAicmVxdWVzdCBoYXMgIiArIG1ldGhvZHNbaWR4XSArICIgbWV0aG9kIik7Ci0gICAgICAg
IH0sICJSZXF1ZXN0IGhhcyAiICsgbWV0aG9kc1tpZHhdICsgIiBtZXRob2QiKTsKLSAgICAgIH0K
LQotICAgICAgZm9yICh2YXIgaWR4IGluIGF0dHJpYnV0ZXMpIHsKLSAgICAgICAgdGVzdChmdW5j
dGlvbigpIHsKLSAgICAgICAgICBhc3NlcnRfdHJ1ZShhdHRyaWJ1dGVzW2lkeF0gaW4gcmVxdWVz
dCwgInJlcXVlc3QgaGFzICIgKyBhdHRyaWJ1dGVzW2lkeF0gKyAiIGF0dHJpYnV0ZSIpOwotICAg
ICAgICAgIElzcmVhZE9ubHkocmVxdWVzdCwgYXR0cmlidXRlc1tpZHhdKTsKLSAgICAgICAgfSwg
IkNoZWNrICIgKyBhdHRyaWJ1dGVzW2lkeF0gKyAiIGF0dHJpYnV0ZSIpOwotICAgICAgfQotICAg
IDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jlc291cmNl
cy9jYWNoZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVzb3VyY2VzL2NhY2hlLnB5CmluZGV4IDEwMTIyZjY0Mzk2MTVj
ODQwZTMzZDUyMzE0YmRjMTRiZmI0NDM0MjAuLmNhMGJkNjQ0YjRmNzk4YzRmYTY0ZDEwNDFiNjI4
YTM3NDBiYzBiYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVzb3VyY2VzL2NhY2hlLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVzb3VyY2VzL2NhY2hlLnB5CkBAIC0xLDI0ICsxLDI2IEBACitmcm9tIHdwdHNlcnZlLnV0
aWxzIGltcG9ydCBpc29tb3JwaGljX2RlY29kZQorCiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25z
ZSk6Ci0gICAgdG9rZW4gPSByZXF1ZXN0LkdFVC5maXJzdCgidG9rZW4iLCBOb25lKQotICAgIGlm
ICJxdWVyeXN0YXRlIiBpbiByZXF1ZXN0LkdFVDoKKyAgICB0b2tlbiA9IHJlcXVlc3QuR0VULmZp
cnN0KGIidG9rZW4iLCBOb25lKQorICAgIGlmIGIicXVlcnlzdGF0ZSIgaW4gcmVxdWVzdC5HRVQ6
CiAgICAgICAgIGZyb20ganNvbiBpbXBvcnQgSlNPTkVuY29kZXIKLSAgICAgICAgcmVzcG9uc2Uu
aGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIikKKyAgICAgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQvcGxhaW4iKQogICAgICAgICBy
ZXR1cm4gSlNPTkVuY29kZXIoKS5lbmNvZGUocmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZSh0b2tl
bikpCi0gICAgY29udGVudCA9IHJlcXVlc3QuR0VULmZpcnN0KCJjb250ZW50IiwgTm9uZSkKLSAg
ICB0YWcgPSByZXF1ZXN0LkdFVC5maXJzdCgidGFnIiwgTm9uZSkKLSAgICBkYXRlID0gcmVxdWVz
dC5HRVQuZmlyc3QoImRhdGUiLCBOb25lKQotICAgIGV4cGlyZXMgPSByZXF1ZXN0LkdFVC5maXJz
dCgiZXhwaXJlcyIsIE5vbmUpCi0gICAgdmFyeSA9IHJlcXVlc3QuR0VULmZpcnN0KCJ2YXJ5Iiwg
Tm9uZSkKLSAgICBjYyA9IHJlcXVlc3QuR0VULmZpcnN0KCJjYWNoZV9jb250cm9sIiwgTm9uZSkK
LSAgICByZWRpcmVjdCA9IHJlcXVlc3QuR0VULmZpcnN0KCJyZWRpcmVjdCIsIE5vbmUpCi0gICAg
aW5tID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiSWYtTm9uZS1NYXRjaCIsIE5vbmUpCi0gICAgaW1z
ID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiSWYtTW9kaWZpZWQtU2luY2UiLCBOb25lKQotICAgIHBy
YWdtYSA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIlByYWdtYSIsIE5vbmUpCi0gICAgY2FjaGVfY29u
dHJvbCA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIkNhY2hlLUNvbnRyb2wiLCBOb25lKQotICAgIGln
bm9yZSA9ICJpZ25vcmUiIGluIHJlcXVlc3QuR0VUCisgICAgY29udGVudCA9IHJlcXVlc3QuR0VU
LmZpcnN0KGIiY29udGVudCIsIE5vbmUpCisgICAgdGFnID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJ0
YWciLCBOb25lKQorICAgIGRhdGUgPSByZXF1ZXN0LkdFVC5maXJzdChiImRhdGUiLCBOb25lKQor
ICAgIGV4cGlyZXMgPSByZXF1ZXN0LkdFVC5maXJzdChiImV4cGlyZXMiLCBOb25lKQorICAgIHZh
cnkgPSByZXF1ZXN0LkdFVC5maXJzdChiInZhcnkiLCBOb25lKQorICAgIGNjID0gcmVxdWVzdC5H
RVQuZmlyc3QoYiJjYWNoZV9jb250cm9sIiwgTm9uZSkKKyAgICByZWRpcmVjdCA9IHJlcXVlc3Qu
R0VULmZpcnN0KGIicmVkaXJlY3QiLCBOb25lKQorICAgIGlubSA9IHJlcXVlc3QuaGVhZGVycy5n
ZXQoYiJJZi1Ob25lLU1hdGNoIiwgTm9uZSkKKyAgICBpbXMgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0
KGIiSWYtTW9kaWZpZWQtU2luY2UiLCBOb25lKQorICAgIHByYWdtYSA9IHJlcXVlc3QuaGVhZGVy
cy5nZXQoYiJQcmFnbWEiLCBOb25lKQorICAgIGNhY2hlX2NvbnRyb2wgPSByZXF1ZXN0LmhlYWRl
cnMuZ2V0KGIiQ2FjaGUtQ29udHJvbCIsIE5vbmUpCisgICAgaWdub3JlID0gYiJpZ25vcmUiIGlu
IHJlcXVlc3QuR0VUCiAKICAgICBpZiB0YWc6Ci0gICAgICAgIHRhZyA9ICciJXMiJyAlIHRhZwor
ICAgICAgICB0YWcgPSBiJyIlcyInICUgdGFnCiAKICAgICBzZXJ2ZXJfc3RhdGUgPSByZXF1ZXN0
LnNlcnZlci5zdGFzaC50YWtlKHRva2VuKQogICAgIGlmIG5vdCBzZXJ2ZXJfc3RhdGU6CkBAIC0y
Niw0MCArMjgsNDAgQEAgZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIHN0YXRlID0g
ZGljdCgpCiAgICAgaWYgbm90IGlnbm9yZToKICAgICAgICAgaWYgaW5tOgotICAgICAgICAgICAg
c3RhdGVbIklmLU5vbmUtTWF0Y2giXSA9IGlubQorICAgICAgICAgICAgc3RhdGVbdSJJZi1Ob25l
LU1hdGNoIl0gPSBpc29tb3JwaGljX2RlY29kZShpbm0pCiAgICAgICAgIGlmIGltczoKLSAgICAg
ICAgICAgIHN0YXRlWyJJZi1Nb2RpZmllZC1TaW5jZSJdID0gaW1zCisgICAgICAgICAgICBzdGF0
ZVt1IklmLU1vZGlmaWVkLVNpbmNlIl0gPSBpc29tb3JwaGljX2RlY29kZShpbXMpCiAgICAgICAg
IGlmIHByYWdtYToKLSAgICAgICAgICAgIHN0YXRlWyJQcmFnbWEiXSA9IHByYWdtYQorICAgICAg
ICAgICAgc3RhdGVbdSJQcmFnbWEiXSA9IGlzb21vcnBoaWNfZGVjb2RlKHByYWdtYSkKICAgICAg
ICAgaWYgY2FjaGVfY29udHJvbDoKLSAgICAgICAgICAgIHN0YXRlWyJDYWNoZS1Db250cm9sIl0g
PSBjYWNoZV9jb250cm9sCisgICAgICAgICAgICBzdGF0ZVt1IkNhY2hlLUNvbnRyb2wiXSA9IGlz
b21vcnBoaWNfZGVjb2RlKGNhY2hlX2NvbnRyb2wpCiAgICAgc2VydmVyX3N0YXRlLmFwcGVuZChz
dGF0ZSkKICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQodG9rZW4sIHNlcnZlcl9zdGF0ZSkK
IAogICAgIGlmIHRhZzoKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkVUYWciLCAnJXMn
ICUgdGFnKQorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkVUYWciLCBiJyVzJyAlIHRh
ZykKICAgICBlbGlmIGRhdGU6Ci0gICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJMYXN0LU1v
ZGlmaWVkIiwgZGF0ZSkKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJMYXN0LU1vZGlm
aWVkIiwgZGF0ZSkKICAgICBpZiBleHBpcmVzOgotICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNl
dCgiRXhwaXJlcyIsIGV4cGlyZXMpCisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiRXhw
aXJlcyIsIGV4cGlyZXMpCiAgICAgaWYgdmFyeToKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5z
ZXQoIlZhcnkiLCB2YXJ5KQorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIlZhcnkiLCB2
YXJ5KQogICAgIGlmIGNjOgotICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ2FjaGUtQ29u
dHJvbCIsIGNjKQorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNhY2hlLUNvbnRyb2wi
LCBjYykKIAogICAgICMgVGhlIG9ubHktaWYtY2FjaGVkIHJlZGlyZWN0IHRlc3RzIHdhbnRzIENP
UlMgdG8gYmUgb2theSwgdGhlIG90aGVyIHRlc3RzCiAgICAgIyBhcmUgYWxsIHNhbWUtb3JpZ2lu
IGFueXdheXMgYW5kIGRvbid0IGNhcmUuCi0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkFjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChi
IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsIGIiKiIpCiAKICAgICBpZiByZWRpcmVjdDoK
LSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkxvY2F0aW9uIiwgcmVkaXJlY3QpCi0gICAg
ICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgzMDIsICJSZWRpcmVjdCIpCi0gICAgICAgIHJldHVybiAi
IgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkxvY2F0aW9uIiwgcmVkaXJlY3QpCisg
ICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgzMDIsIGIiUmVkaXJlY3QiKQorICAgICAgICByZXR1
cm4gYiIiCiAgICAgZWxpZiAoKGlubSBpcyBub3QgTm9uZSBhbmQgaW5tID09IHRhZykgb3IKICAg
ICAgICAgICAoaW1zIGlzIG5vdCBOb25lIGFuZCBpbXMgPT0gZGF0ZSkpOgotICAgICAgICByZXNw
b25zZS5zdGF0dXMgPSAoMzA0LCAiTm90IE1vZGlmaWVkIikKLSAgICAgICAgcmV0dXJuICIiCisg
ICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgzMDQsIGIiTm90IE1vZGlmaWVkIikKKyAgICAgICAg
cmV0dXJuIGIiIgogICAgIGVsc2U6Ci0gICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgyMDAsICJP
SyIpCi0gICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAidGV4dC9w
bGFpbiIpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgyMDAsIGIiT0siKQorICAgICAgICBy
ZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9wbGFpbiIpCiAgICAg
ICAgIHJldHVybiBjb250ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC93M2MtaW1wb3J0LmxvZwppbmRleCA5NTMyZGY2Y2ZkOTUzZDQxOTJiYmVhN2ZhNTJiZTk3OGY1
MjVjYzdiLi4wMzEwMDFlMGJiMzQ4ZGE4YjliODQzYTRiYmVkMWZmZWE5ZDMwZGNkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvdzNjLWltcG9ydC5sb2cKQEAgLTE0
LDI4ICsxNCwyOCBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
IE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtYmFk
LXBvcnQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LWNvbmRpdGlvbmFsLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZv
cmNlLWNhY2hlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tY2FjaGUuaHRtbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jYWNoZS1uby1zdG9yZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYt
Y2FjaGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtcmVsb2FkLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtYmFkLXBvcnQuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9u
YWwuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuYW55LmpzCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNo
ZS5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUuYW55LmpzCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1yZWxv
YWQuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1
Yi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1j
b25zdW1lLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
ZXJyb3IuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5LmFueS5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1jb25zdW1lLmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuYW55LmpzCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWVycm9yLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5qcwotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1oZWFkZXJzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy5hbnkuanMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtaW5pdC0wMDEuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1pbml0LTAwMi5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDMuc3ViLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC1zdHJlYW0uYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWtlZXBh
bGl2ZS1xdW90YS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWtlZXBhbGl2ZS5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWtlZXBhbGl2ZS5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtcmVzZXQtYXR0cmlidXRlcy5odHRw
cy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVj
dHVyZS5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3VybC1lbmNvZGluZy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMv
YXV0aGVudGljYXRpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvYXV0aGVudGljYXRpb24ucHkKaW5kZXggYjY1MDQ3
ZDc2NTcwM2I4ZTQ0MDAzOTZhMzA2YjAyNjMxNmZjNmQwOS4uOGI2YjAwYjA4NzNiMzhlNTdlNTc5
ZjNkN2YyNjUxZmI5NzkxN2I4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2F1dGhlbnRpY2F0aW9uLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc291cmNlcy9hdXRoZW50aWNhdGlvbi5weQpAQCAtMiwxMyArMiwxMyBAQCBkZWYgbWFp
bihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgdXNlciA9IHJlcXVlc3QuYXV0aC51c2VybmFtZQog
ICAgIHBhc3N3b3JkID0gcmVxdWVzdC5hdXRoLnBhc3N3b3JkCiAKLSAgICBpZiB1c2VyID09ICJ1
c2VyIiBhbmQgcGFzc3dvcmQgPT0gInBhc3N3b3JkIjoKLSAgICAgICAgcmV0dXJuICJBdXRoZW50
aWNhdGlvbiBkb25lIgorICAgIGlmIHVzZXIgPT0gYiJ1c2VyIiBhbmQgcGFzc3dvcmQgPT0gYiJw
YXNzd29yZCI6CisgICAgICAgIHJldHVybiBiIkF1dGhlbnRpY2F0aW9uIGRvbmUiCiAKLSAgICBy
ZWFsbSA9ICJ0ZXN0IgotICAgIGlmICJyZWFsbSIgaW4gcmVxdWVzdC5HRVQ6Ci0gICAgICAgIHJl
YWxtID0gcmVxdWVzdC5HRVQuZmlyc3QoInJlYWxtIikKKyAgICByZWFsbSA9IGIidGVzdCIKKyAg
ICBpZiBiInJlYWxtIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgcmVhbG0gPSByZXF1ZXN0LkdF
VC5maXJzdChiInJlYWxtIikKIAotICAgIHJldHVybiAoKDQwMSwgIlVuYXV0aG9yaXplZCIpLAot
ICAgICAgICAgICAgWygiV1dXLUF1dGhlbnRpY2F0ZSIsICdCYXNpYyByZWFsbT0iJyArIHJlYWxt
ICsgJyInKV0sCi0gICAgICAgICAgICAiUGxlYXNlIGxvZ2luIHdpdGggY3JlZGVudGlhbHMgJ3Vz
ZXInIGFuZCAncGFzc3dvcmQnIikKKyAgICByZXR1cm4gKCg0MDEsIGIiVW5hdXRob3JpemVkIiks
CisgICAgICAgICAgICBbKGIiV1dXLUF1dGhlbnRpY2F0ZSIsIGInQmFzaWMgcmVhbG09IicgKyBy
ZWFsbSArIGInIicpXSwKKyAgICAgICAgICAgIGIiUGxlYXNlIGxvZ2luIHdpdGggY3JlZGVudGlh
bHMgJ3VzZXInIGFuZCAncGFzc3dvcmQnIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9iYWQtY2h1bmst
ZW5jb2RpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNvdXJjZXMvYmFkLWNodW5rLWVuY29kaW5nLnB5CmluZGV4IDIzYzdiM2Y0
N2M0ZDExZjUxYzUxNzRiODY1NDFlZmM1OTg4YmExNTUuLjk0YTc3YWRlYWQ4NThiNDgxMzdlMzk4
OGQwYzY3NGNkOTQ1YTQyNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9iYWQtY2h1bmstZW5jb2Rpbmcu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzb3VyY2VzL2JhZC1jaHVuay1lbmNvZGluZy5weQpAQCAtMSwxMyArMSwxMyBAQAog
aW1wb3J0IHRpbWUKIAogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGRlbGF5ID0g
ZmxvYXQocmVxdWVzdC5HRVQuZmlyc3QoIm1zIiwgMTAwMCkpIC8gMUUzCi0gICAgY291bnQgPSBp
bnQocmVxdWVzdC5HRVQuZmlyc3QoImNvdW50IiwgNTApKQorICAgIGRlbGF5ID0gZmxvYXQocmVx
dWVzdC5HRVQuZmlyc3QoYiJtcyIsIDEwMDApKSAvIDFFMworICAgIGNvdW50ID0gaW50KHJlcXVl
c3QuR0VULmZpcnN0KGIiY291bnQiLCA1MCkpCiAgICAgdGltZS5zbGVlcChkZWxheSkKLSAgICBy
ZXNwb25zZS5oZWFkZXJzLnNldCgiVHJhbnNmZXItRW5jb2RpbmciLCAiY2h1bmtlZCIpCisgICAg
cmVzcG9uc2UuaGVhZGVycy5zZXQoYiJUcmFuc2Zlci1FbmNvZGluZyIsIGIiY2h1bmtlZCIpCiAg
ICAgcmVzcG9uc2Uud3JpdGVfc3RhdHVzX2hlYWRlcnMoKQogICAgIHRpbWUuc2xlZXAoZGVsYXkp
Ci0gICAgZm9yIGkgaW4geHJhbmdlKGNvdW50KToKLSAgICAgICAgcmVzcG9uc2Uud3JpdGVyLndy
aXRlX2NvbnRlbnQoImFcclxuVEVTVF9DSFVOS1xyXG4iKQorICAgIGZvciBpIGluIHJhbmdlKGNv
dW50KToKKyAgICAgICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX2NvbnRlbnQoYiJhXHJcblRFU1Rf
Q0hVTktcclxuIikKICAgICAgICAgdGltZS5zbGVlcChkZWxheSkKLSAgICByZXNwb25zZS53cml0
ZXIud3JpdGVfY29udGVudCgiZ2FyYmFnZSIpCisgICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX2Nv
bnRlbnQoYiJnYXJiYWdlIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9jYWNoZS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9j
YWNoZS5weQppbmRleCA4OTk2Mzg3MTZhMTAwYTY2YzA2Y2ViYmY5MmMzMWRlN2M3MDU0OThiLi40
ZGU3NTFlMzBiZmM2YTVmNmE4YjAyY2QzZWQ0N2FhNjY2ZDE5M2U2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJj
ZXMvY2FjaGUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2NhY2hlLnB5CkBAIC0xLDE4ICsxLDE4IEBACi1FVEFH
ID0gJyIxMjNhYmMiJwotQ09OVEVOVF9UWVBFID0gInRleHQvcGxhaW4iCi1DT05URU5UID0gImxv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0IgorRVRBRyA9IGInIjEyM2FiYyInCitDT05URU5UX1RZ
UEUgPSBiInRleHQvcGxhaW4iCitDT05URU5UID0gYiJsb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1l
dCIKIAogCiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgIyBsZXQgY2FjaGluZyBr
aWNrIGluIGlmIHBvc3NpYmxlIChjb25kaXRpb25hbCBHRVQpCi0gICAgZXRhZyA9IHJlcXVlc3Qu
aGVhZGVycy5nZXQoIklmLU5vbmUtTWF0Y2giLCBOb25lKQorICAgIGV0YWcgPSByZXF1ZXN0Lmhl
YWRlcnMuZ2V0KGIiSWYtTm9uZS1NYXRjaCIsIE5vbmUpCiAgICAgaWYgZXRhZyA9PSBFVEFHOgot
ICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiWC1IVFRQLVNUQVRVUyIsIDMwNCkKLSAgICAg
ICAgcmVzcG9uc2Uuc3RhdHVzID0gKDMwNCwgIk5vdCBNb2RpZmllZCIpCi0gICAgICAgIHJldHVy
biAiIgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIlgtSFRUUC1TVEFUVVMiLCAzMDQp
CisgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgzMDQsIGIiTm90IE1vZGlmaWVkIikKKyAgICAg
ICAgcmV0dXJuIGIiIgogCiAgICAgIyBjYWNoZSBtaXNzLCBzbyByZXNwb25kIHdpdGggdGhlIGFj
dHVhbCBjb250ZW50Ci0gICAgcmVzcG9uc2Uuc3RhdHVzID0gKDIwMCwgIk9LIikKLSAgICByZXNw
b25zZS5oZWFkZXJzLnNldCgiRVRhZyIsIEVUQUcpCi0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQo
IkNvbnRlbnQtVHlwZSIsIENPTlRFTlRfVFlQRSkKKyAgICByZXNwb25zZS5zdGF0dXMgPSAoMjAw
LCBiIk9LIikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkVUYWciLCBFVEFHKQorICAgIHJl
c3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgQ09OVEVOVF9UWVBFKQogICAgIHJl
dHVybiBDT05URU5UCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvY2xlYW4tc3Rhc2gucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMv
Y2xlYW4tc3Rhc2gucHkKaW5kZXggM2FlNzMxMDUyNjkyZTA0OGEwN2Q2NWE2ZTAxNWZlNWE3NjM2
MjA5OC4uZWU4YzY5YWM0NDZlYTk3OWY2M2MwZjgyYWZkMzA2MTYxMGI0YjUyMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzb3VyY2VzL2NsZWFuLXN0YXNoLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9jbGVhbi1zdGFzaC5weQpAQCAt
MSw2ICsxLDYgQEAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICB0b2tlbiA9IHJl
cXVlc3QuR0VULmZpcnN0KCJ0b2tlbiIpCisgICAgdG9rZW4gPSByZXF1ZXN0LkdFVC5maXJzdChi
InRva2VuIikKICAgICBpZiByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKHRva2VuKSBpcyBub3Qg
Tm9uZToKLSAgICAgICAgcmV0dXJuICIxIgorICAgICAgICByZXR1cm4gYiIxIgogICAgIGVsc2U6
Ci0gICAgICAgIHJldHVybiAiMCIKKyAgICAgICAgcmV0dXJuIGIiMCIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291
cmNlcy9lY2hvLWNvbnRlbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvZWNoby1jb250ZW50LnB5CmluZGV4IDlhMDM4
ZjMyOWM4N2U0ZTlkYWI5NmNhYThkNmZkYTk3Mzg4MGQ3MzIuLjVlMTM3ZTE1ZDdkM2IwZjY4NGI3
YTFhMmFhMGIyN2E3MTk3MzBlYjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9lY2hvLWNvbnRlbnQucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzb3VyY2VzL2VjaG8tY29udGVudC5weQpAQCAtMSwxMCArMSwxMiBAQAorZnJvbSB3cHRz
ZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19lbmNvZGUKKwogZGVmIG1haW4ocmVxdWVzdCwg
cmVzcG9uc2UpOgogCi0gICAgaGVhZGVycyA9IFsoIlgtUmVxdWVzdC1NZXRob2QiLCByZXF1ZXN0
Lm1ldGhvZCksCi0gICAgICAgICAgICAgICAoIlgtUmVxdWVzdC1Db250ZW50LUxlbmd0aCIsIHJl
cXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIiwgIk5PIikpLAotICAgICAgICAgICAg
ICAgKCJYLVJlcXVlc3QtQ29udGVudC1UeXBlIiwgcmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVu
dC1UeXBlIiwgIk5PIikpLAorICAgIGhlYWRlcnMgPSBbKGIiWC1SZXF1ZXN0LU1ldGhvZCIsIGlz
b21vcnBoaWNfZW5jb2RlKHJlcXVlc3QubWV0aG9kKSksCisgICAgICAgICAgICAgICAoYiJYLVJl
cXVlc3QtQ29udGVudC1MZW5ndGgiLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIiQ29udGVudC1MZW5n
dGgiLCBiIk5PIikpLAorICAgICAgICAgICAgICAgKGIiWC1SZXF1ZXN0LUNvbnRlbnQtVHlwZSIs
IHJlcXVlc3QuaGVhZGVycy5nZXQoYiJDb250ZW50LVR5cGUiLCBiIk5PIikpLAogICAgICAgICAg
ICAgICAgIyBBdm9pZCBhbnkga2luZCBvZiBjb250ZW50IHNuaWZmaW5nIG9uIHRoZSByZXNwb25z
ZS4KLSAgICAgICAgICAgICAgICgiQ29udGVudC1UeXBlIiwgInRleHQvcGxhaW4iKV0KKyAgICAg
ICAgICAgICAgIChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9wbGFpbiIpXQogICAgIGNvbnRlbnQg
PSByZXF1ZXN0LmJvZHkKIAogICAgIHJldHVybiBoZWFkZXJzLCBjb250ZW50CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNvdXJjZXMvaW5maW5pdGUtc2xvdy1yZXNwb25zZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbmZpbml0ZS1zbG93
LXJlc3BvbnNlLnB5CmluZGV4IGZhMmM0ODJlYzE5ZDk0MzM2ZjcyOWNiZDUyNjczODIwODczZDQy
NjguLmEyNmNkODA2NGM4ODUzMWU2ODc3ZDI1NjFjZDE2ZGY5NjRlYjdmNmUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c291cmNlcy9pbmZpbml0ZS1zbG93LXJlc3BvbnNlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbmZpbml0ZS1z
bG93LXJlc3BvbnNlLnB5CkBAIC0yLDcgKzIsNyBAQCBpbXBvcnQgdGltZQogCiAKIGRlZiB1cmxf
ZGlyKHJlcXVlc3QpOgotICAgIHJldHVybiAnLycuam9pbihyZXF1ZXN0LnVybF9wYXJ0cy5wYXRo
LnNwbGl0KCcvJylbOi0xXSkgKyAnLycKKyAgICByZXR1cm4gdScvJy5qb2luKHJlcXVlc3QudXJs
X3BhcnRzLnBhdGguc3BsaXQodScvJylbOi0xXSkgKyB1Jy8nCiAKIAogZGVmIHN0YXNoX3dyaXRl
KHJlcXVlc3QsIGtleSwgdmFsdWUpOgpAQCAtMTIsMjQgKzEyLDIzIEBAIGRlZiBzdGFzaF93cml0
ZShyZXF1ZXN0LCBrZXksIHZhbHVlKToKIAogCiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6
Ci0gICAgc3RhdGVLZXkgPSByZXF1ZXN0LkdFVC5maXJzdCgic3RhdGVLZXkiLCAiIikKLSAgICBh
Ym9ydEtleSA9IHJlcXVlc3QuR0VULmZpcnN0KCJhYm9ydEtleSIsICIiKQorICAgIHN0YXRlS2V5
ID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJzdGF0ZUtleSIsIGIiIikKKyAgICBhYm9ydEtleSA9IHJl
cXVlc3QuR0VULmZpcnN0KGIiYWJvcnRLZXkiLCBiIiIpCiAKICAgICBpZiBzdGF0ZUtleToKICAg
ICAgICAgc3Rhc2hfd3JpdGUocmVxdWVzdCwgc3RhdGVLZXksICdvcGVuJykKIAotICAgIHJlc3Bv
bnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LXR5cGUiLCAidGV4dC9wbGFpbiIpCisgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoYiJDb250ZW50LXR5cGUiLCBiInRleHQvcGxhaW4iKQogICAgIHJlc3Bv
bnNlLndyaXRlX3N0YXR1c19oZWFkZXJzKCkKIAogICAgICMgV3JpdGluZyBhbiBpbml0aWFsIDJr
IHNvIGJyb3dzZXJzIHJlYWxpc2UgaXQncyB0aGVyZS4gKnNocnVnKgotICAgIHJlc3BvbnNlLndy
aXRlci53cml0ZSgiLiIgKiAyMDQ4KQorICAgIHJlc3BvbnNlLndyaXRlci53cml0ZShiIi4iICog
MjA0OCkKIAogICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGlmIG5vdCByZXNwb25zZS53cml0ZXIu
Zmx1c2goKToKKyAgICAgICAgaWYgbm90IHJlc3BvbnNlLndyaXRlci53cml0ZShiIi4iKToKICAg
ICAgICAgICAgIGJyZWFrCiAgICAgICAgIGlmIGFib3J0S2V5IGFuZCByZXF1ZXN0LnNlcnZlci5z
dGFzaC50YWtlKGFib3J0S2V5LCB1cmxfZGlyKHJlcXVlc3QpKToKICAgICAgICAgICAgIGJyZWFr
Ci0gICAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZSgiLiIpCiAgICAgICAgIHRpbWUuc2xlZXAo
MC4wMSkKIAogICAgIGlmIHN0YXRlS2V5OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2luc3BlY3QtaGVh
ZGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHkKaW5kZXggMTBhMTJlYjg4M2ExN2M3
MDFkOTA5Y2RlNjUwNzk5ZjIxZWM4OThjMS4uOWVkNTY2ZTYwN2IwZTA3ZDcwYWM2YTE4M2MwYTlh
MDI1YmNhZGU1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2luc3BlY3QtaGVhZGVycy5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNv
dXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5CkBAIC0xLDI0ICsxLDI0IEBACiBkZWYgbWFpbihyZXF1
ZXN0LCByZXNwb25zZSk6CiAgICAgaGVhZGVycyA9IFtdCi0gICAgaWYgImhlYWRlcnMiIGluIHJl
cXVlc3QuR0VUOgotICAgICAgICBjaGVja2VkX2hlYWRlcnMgPSByZXF1ZXN0LkdFVC5maXJzdCgi
aGVhZGVycyIpLnNwbGl0KCJ8IikKKyAgICBpZiBiImhlYWRlcnMiIGluIHJlcXVlc3QuR0VUOgor
ICAgICAgICBjaGVja2VkX2hlYWRlcnMgPSByZXF1ZXN0LkdFVC5maXJzdChiImhlYWRlcnMiKS5z
cGxpdChiInwiKQogICAgICAgICBmb3IgaGVhZGVyIGluIGNoZWNrZWRfaGVhZGVyczoKICAgICAg
ICAgICAgIGlmIGhlYWRlciBpbiByZXF1ZXN0LmhlYWRlcnM6Ci0gICAgICAgICAgICAgICAgaGVh
ZGVycy5hcHBlbmQoKCJ4LXJlcXVlc3QtIiArIGhlYWRlciwgcmVxdWVzdC5oZWFkZXJzLmdldCho
ZWFkZXIsICIiKSkpCisgICAgICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIieC1yZXF1ZXN0
LSIgKyBoZWFkZXIsIHJlcXVlc3QuaGVhZGVycy5nZXQoaGVhZGVyLCBiIiIpKSkKIAotICAgIGlm
ICJjb3JzIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAgICAgaWYgIk9yaWdpbiIgaW4gcmVxdWVzdC5o
ZWFkZXJzOgotICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxv
dy1PcmlnaW4iLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJPcmlnaW4iLCAiIikpKQorICAgIGlmIGIi
Y29ycyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIGlmIGIiT3JpZ2luIiBpbiByZXF1ZXN0Lmhl
YWRlcnM6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoYiJBY2Nlc3MtQ29udHJvbC1BbGxv
dy1PcmlnaW4iLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIiT3JpZ2luIiwgYiIiKSkpCiAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbiIsICIqIikpCi0gICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wt
QWxsb3ctQ3JlZGVudGlhbHMiLCAidHJ1ZSIpKQotICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFj
Y2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCAiR0VULCBQT1NULCBIRUFEIikpCi0gICAgICAg
IGV4cG9zZWRfaGVhZGVycyA9IFsieC1yZXF1ZXN0LSIgKyBoZWFkZXIgZm9yIGhlYWRlciBpbiBj
aGVja2VkX2hlYWRlcnNdCi0gICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wt
RXhwb3NlLUhlYWRlcnMiLCAiLCAiLmpvaW4oZXhwb3NlZF9oZWFkZXJzKSkpCi0gICAgICAgIGlm
ICJhbGxvd19oZWFkZXJzIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAgICAgICAgIGhlYWRlcnMuYXBw
ZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIHJlcXVlc3QuR0VUWydhbGxvd19o
ZWFkZXJzJ10pKQorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wt
QWxsb3ctT3JpZ2luIiwgYiIqIikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1D
b250cm9sLUFsbG93LUNyZWRlbnRpYWxzIiwgYiJ0cnVlIikpCisgICAgICAgIGhlYWRlcnMuYXBw
ZW5kKChiIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCBiIkdFVCwgUE9TVCwgSEVBRCIp
KQorICAgICAgICBleHBvc2VkX2hlYWRlcnMgPSBbYiJ4LXJlcXVlc3QtIiArIGhlYWRlciBmb3Ig
aGVhZGVyIGluIGNoZWNrZWRfaGVhZGVyc10KKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNj
ZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCBiIiwgIi5qb2luKGV4cG9zZWRfaGVhZGVycykp
KQorICAgICAgICBpZiBiImFsbG93X2hlYWRlcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAg
ICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIHJlcXVl
c3QuR0VUW2InYWxsb3dfaGVhZGVycyddKSkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGhl
YWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsICIsICIuam9pbihy
ZXF1ZXN0LmhlYWRlcnMpKSkKKyAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1D
b250cm9sLUFsbG93LUhlYWRlcnMiLCBiIiwgIi5qb2luKHJlcXVlc3QuaGVhZGVycykpKQogCi0g
ICAgaGVhZGVycy5hcHBlbmQoKCJjb250ZW50LXR5cGUiLCAidGV4dC9wbGFpbiIpKQotICAgIHJl
dHVybiBoZWFkZXJzLCAiIgorICAgIGhlYWRlcnMuYXBwZW5kKChiImNvbnRlbnQtdHlwZSIsIGIi
dGV4dC9wbGFpbiIpKQorICAgIHJldHVybiBoZWFkZXJzLCBiIiIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNl
cy9tZXRob2QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNvdXJjZXMvbWV0aG9kLnB5CmluZGV4IDc5NWFkMWZmMTFkMDg1ZDgyY2Iw
MTBiOTY5NzUzYjk0Y2JlMDZiNTMuLmMxYTExMWI0Y2RmOThkYzZkOGRiNzAyYjBjYzIwZDQzODI1
Nzc5YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9tZXRob2QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL21ldGhvZC5w
eQpAQCAtMSwxNiArMSwxOCBAQAorZnJvbSB3cHRzZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhp
Y19lbmNvZGUKKwogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIGhlYWRlcnMgPSBb
XQotICAgIGlmICJjb3JzIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAgICAgaGVhZGVycy5hcHBlbmQo
KCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAiKiIpKQotICAgICAgICBoZWFkZXJzLmFw
cGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIiwgInRydWUiKSkKLSAgICAg
ICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIiwgIkdFVCwg
UE9TVCwgUFVULCBGT08iKSkKLSAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJv
bC1BbGxvdy1IZWFkZXJzIiwgIngtdGVzdCwgeC1mb28iKSkKLSAgICAgICAgaGVhZGVycy5hcHBl
bmQoKCJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ4LXJlcXVlc3QtbWV0aG9kIikp
CisgICAgaWYgYiJjb3JzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgaGVhZGVycy5hcHBlbmQo
KGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgYiIqIikpCisgICAgICAgIGhlYWRlcnMu
YXBwZW5kKChiIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIiwgYiJ0cnVlIikpCisg
ICAgICAgIGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCBi
IkdFVCwgUE9TVCwgUFVULCBGT08iKSkKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNz
LUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIGIieC10ZXN0LCB4LWZvbyIpKQorICAgICAgICBoZWFk
ZXJzLmFwcGVuZCgoYiJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsIGIieC1yZXF1ZXN0
LW1ldGhvZCIpKQogCi0gICAgaGVhZGVycy5hcHBlbmQoKCJ4LXJlcXVlc3QtbWV0aG9kIiwgcmVx
dWVzdC5tZXRob2QpKQotICAgIGhlYWRlcnMuYXBwZW5kKCgieC1yZXF1ZXN0LWNvbnRlbnQtdHlw
ZSIsIHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIsICJOTyIpKSkKLSAgICBoZWFk
ZXJzLmFwcGVuZCgoIngtcmVxdWVzdC1jb250ZW50LWxlbmd0aCIsIHJlcXVlc3QuaGVhZGVycy5n
ZXQoIkNvbnRlbnQtTGVuZ3RoIiwgIk5PIikpKQotICAgIGhlYWRlcnMuYXBwZW5kKCgieC1yZXF1
ZXN0LWNvbnRlbnQtZW5jb2RpbmciLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LUVuY29k
aW5nIiwgIk5PIikpKQotICAgIGhlYWRlcnMuYXBwZW5kKCgieC1yZXF1ZXN0LWNvbnRlbnQtbGFu
Z3VhZ2UiLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LUxhbmd1YWdlIiwgIk5PIikpKQot
ICAgIGhlYWRlcnMuYXBwZW5kKCgieC1yZXF1ZXN0LWNvbnRlbnQtbG9jYXRpb24iLCByZXF1ZXN0
LmhlYWRlcnMuZ2V0KCJDb250ZW50LUxvY2F0aW9uIiwgIk5PIikpKQorICAgIGhlYWRlcnMuYXBw
ZW5kKChiIngtcmVxdWVzdC1tZXRob2QiLCBpc29tb3JwaGljX2VuY29kZShyZXF1ZXN0Lm1ldGhv
ZCkpKQorICAgIGhlYWRlcnMuYXBwZW5kKChiIngtcmVxdWVzdC1jb250ZW50LXR5cGUiLCByZXF1
ZXN0LmhlYWRlcnMuZ2V0KGIiQ29udGVudC1UeXBlIiwgYiJOTyIpKSkKKyAgICBoZWFkZXJzLmFw
cGVuZCgoYiJ4LXJlcXVlc3QtY29udGVudC1sZW5ndGgiLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIi
Q29udGVudC1MZW5ndGgiLCBiIk5PIikpKQorICAgIGhlYWRlcnMuYXBwZW5kKChiIngtcmVxdWVz
dC1jb250ZW50LWVuY29kaW5nIiwgcmVxdWVzdC5oZWFkZXJzLmdldChiIkNvbnRlbnQtRW5jb2Rp
bmciLCBiIk5PIikpKQorICAgIGhlYWRlcnMuYXBwZW5kKChiIngtcmVxdWVzdC1jb250ZW50LWxh
bmd1YWdlIiwgcmVxdWVzdC5oZWFkZXJzLmdldChiIkNvbnRlbnQtTGFuZ3VhZ2UiLCBiIk5PIikp
KQorICAgIGhlYWRlcnMuYXBwZW5kKChiIngtcmVxdWVzdC1jb250ZW50LWxvY2F0aW9uIiwgcmVx
dWVzdC5oZWFkZXJzLmdldChiIkNvbnRlbnQtTG9jYXRpb24iLCBiIk5PIikpKQogICAgIHJldHVy
biBoZWFkZXJzLCByZXF1ZXN0LmJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9wcmVmbGlnaHQucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNvdXJjZXMvcHJlZmxpZ2h0LnB5CmluZGV4IGEyNTUyYzI1NjVhZDliZTZkMTdkZWExY2I2YTkw
ZmY5ZWIyMTExOTAuLmY5ODNlZjk1MjI3MmE3NWE2NzA2ZDNjZGZhYmIwOGFjZWQ3ZWZjN2IgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9wcmVmbGlnaHQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3ByZWZsaWdodC5weQpA
QCAtMSw1OCArMSw1OCBAQAogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGhlYWRl
cnMgPSBbKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpXQotICAgIHN0YXNoZWRfZGF0YSA9
IHsnY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnOiAiIiwgJ3ByZWZsaWdodCc6ICIwIiwgJ3ByZWZs
aWdodF9yZWZlcnJlcic6ICIifQorICAgIGhlYWRlcnMgPSBbKGIiQ29udGVudC1UeXBlIiwgYiJ0
ZXh0L3BsYWluIildCisgICAgc3Rhc2hlZF9kYXRhID0ge2InY29udHJvbF9yZXF1ZXN0X2hlYWRl
cnMnOiBiIiIsIGIncHJlZmxpZ2h0JzogYiIwIiwgYidwcmVmbGlnaHRfcmVmZXJyZXInOiBiIiJ9
CiAKICAgICB0b2tlbiA9IE5vbmUKLSAgICBpZiAidG9rZW4iIGluIHJlcXVlc3QuR0VUOgotICAg
ICAgICB0b2tlbiA9IHJlcXVlc3QuR0VULmZpcnN0KCJ0b2tlbiIpCisgICAgaWYgYiJ0b2tlbiIg
aW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIHRva2VuID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJ0b2tl
biIpCiAKLSAgICBpZiAib3JpZ2luIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAgICAgZm9yIG9yaWdp
biBpbiByZXF1ZXN0LkdFVFsnb3JpZ2luJ10uc3BsaXQoIiwgIik6Ci0gICAgICAgICAgICBoZWFk
ZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsIG9yaWdpbikpCisgICAg
aWYgYiJvcmlnaW4iIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBmb3Igb3JpZ2luIGluIHJlcXVl
c3QuR0VUW2Inb3JpZ2luJ10uc3BsaXQoYiIsICIpOgorICAgICAgICAgICAgaGVhZGVycy5hcHBl
bmQoKGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgb3JpZ2luKSkKICAgICBlbHNlOgot
ICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIq
IikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdp
biIsIGIiKiIpKQogCi0gICAgaWYgImNsZWFyLXN0YXNoIiBpbiByZXF1ZXN0LkdFVDoKKyAgICBp
ZiBiImNsZWFyLXN0YXNoIiBpbiByZXF1ZXN0LkdFVDoKICAgICAgICAgaWYgcmVxdWVzdC5zZXJ2
ZXIuc3Rhc2gudGFrZSh0b2tlbikgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gaGVh
ZGVycywgIjEiCisgICAgICAgICAgICByZXR1cm4gaGVhZGVycywgYiIxIgogICAgICAgICBlbHNl
OgotICAgICAgICAgICAgcmV0dXJuIGhlYWRlcnMsICIwIgorICAgICAgICAgICAgcmV0dXJuIGhl
YWRlcnMsIGIiMCIKIAotICAgIGlmICJjcmVkZW50aWFscyIgaW4gcmVxdWVzdC5HRVQ6Ci0gICAg
ICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMiLCAi
dHJ1ZSIpKQorICAgIGlmIGIiY3JlZGVudGlhbHMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBo
ZWFkZXJzLmFwcGVuZCgoYiJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscyIsIGIidHJ1
ZSIpKQogCi0gICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gIk9QVElPTlMiOgotICAgICAgICBpZiBu
b3QgIkFjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0aG9kIiBpbiByZXF1ZXN0LmhlYWRlcnM6Ci0g
ICAgICAgICAgICByZXNwb25zZS5zZXRfZXJyb3IoNDAwLCAiTm8gQWNjZXNzLUNvbnRyb2wtUmVx
dWVzdC1NZXRob2QgaGVhZGVyIikKLSAgICAgICAgICAgIHJldHVybiAiRVJST1I6IE5vIGFjY2Vz
cy1jb250cm9sLXJlcXVlc3QtbWV0aG9kIGluIHByZWZsaWdodCEiCisgICAgaWYgcmVxdWVzdC5t
ZXRob2QgPT0gdSJPUFRJT05TIjoKKyAgICAgICAgaWYgbm90IGIiQWNjZXNzLUNvbnRyb2wtUmVx
dWVzdC1NZXRob2QiIGluIHJlcXVlc3QuaGVhZGVyczoKKyAgICAgICAgICAgIHJlc3BvbnNlLnNl
dF9lcnJvcig0MDAsIHUiTm8gQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QgaGVhZGVyIikK
KyAgICAgICAgICAgIHJldHVybiBiIkVSUk9SOiBObyBhY2Nlc3MtY29udHJvbC1yZXF1ZXN0LW1l
dGhvZCBpbiBwcmVmbGlnaHQhIgogCi0gICAgICAgIGlmIHJlcXVlc3QuaGVhZGVycy5nZXQoIkFj
Y2VwdCIsICIiKSAhPSAiKi8qIjoKLSAgICAgICAgICAgIHJlc3BvbnNlLnNldF9lcnJvcig0MDAs
ICJSZXF1ZXN0IGRvZXMgbm90IGhhdmUgJ0FjY2VwdDogKi8qJyBoZWFkZXIiKQotICAgICAgICAg
ICAgcmV0dXJuICJFUlJPUjogSW52YWxpZCBhY2Nlc3MgaW4gcHJlZmxpZ2h0ISIKKyAgICAgICAg
aWYgcmVxdWVzdC5oZWFkZXJzLmdldChiIkFjY2VwdCIsIGIiIikgIT0gYiIqLyoiOgorICAgICAg
ICAgICAgcmVzcG9uc2Uuc2V0X2Vycm9yKDQwMCwgdSJSZXF1ZXN0IGRvZXMgbm90IGhhdmUgJ0Fj
Y2VwdDogKi8qJyBoZWFkZXIiKQorICAgICAgICAgICAgcmV0dXJuIGIiRVJST1I6IEludmFsaWQg
YWNjZXNzIGluIHByZWZsaWdodCEiCiAKLSAgICAgICAgaWYgImNvbnRyb2xfcmVxdWVzdF9oZWFk
ZXJzIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAgICAgICAgIHN0YXNoZWRfZGF0YVsnY29udHJvbF9y
ZXF1ZXN0X2hlYWRlcnMnXSA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIkFjY2Vzcy1Db250cm9sLVJl
cXVlc3QtSGVhZGVycyIsIE5vbmUpCisgICAgICAgIGlmIGIiY29udHJvbF9yZXF1ZXN0X2hlYWRl
cnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgc3Rhc2hlZF9kYXRhW2InY29udHJvbF9y
ZXF1ZXN0X2hlYWRlcnMnXSA9IHJlcXVlc3QuaGVhZGVycy5nZXQoYiJBY2Nlc3MtQ29udHJvbC1S
ZXF1ZXN0LUhlYWRlcnMiLCBOb25lKQogCi0gICAgICAgIGlmICJtYXhfYWdlIiBpbiByZXF1ZXN0
LkdFVDoKLSAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtTWF4LUFn
ZSIsIHJlcXVlc3QuR0VUWydtYXhfYWdlJ10pKQorICAgICAgICBpZiBiIm1heF9hZ2UiIGluIHJl
cXVlc3QuR0VUOgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wt
TWF4LUFnZSIsIHJlcXVlc3QuR0VUW2InbWF4X2FnZSddKSkKIAotICAgICAgICBpZiAiYWxsb3df
aGVhZGVycyIgaW4gcmVxdWVzdC5HRVQ6Ci0gICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFj
Y2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiLCByZXF1ZXN0LkdFVFsnYWxsb3dfaGVhZGVycydd
KSkKKyAgICAgICAgaWYgYiJhbGxvd19oZWFkZXJzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAg
ICAgIGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiLCByZXF1
ZXN0LkdFVFtiJ2FsbG93X2hlYWRlcnMnXSkpCiAKLSAgICAgICAgaWYgImFsbG93X21ldGhvZHMi
IGluIHJlcXVlc3QuR0VUOgotICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1NZXRob2RzIiwgcmVxdWVzdC5HRVRbJ2FsbG93X21ldGhvZHMnXSkpCisgICAg
ICAgIGlmIGIiYWxsb3dfbWV0aG9kcyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgICAgICBoZWFk
ZXJzLmFwcGVuZCgoYiJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIiwgcmVxdWVzdC5HRVRb
YidhbGxvd19tZXRob2RzJ10pKQogCiAgICAgICAgIHByZWZsaWdodF9zdGF0dXMgPSAyMDAKLSAg
ICAgICAgaWYgInByZWZsaWdodF9zdGF0dXMiIGluIHJlcXVlc3QuR0VUOgotICAgICAgICAgICAg
cHJlZmxpZ2h0X3N0YXR1cyA9IGludChyZXF1ZXN0LkdFVC5maXJzdCgicHJlZmxpZ2h0X3N0YXR1
cyIpKQorICAgICAgICBpZiBiInByZWZsaWdodF9zdGF0dXMiIGluIHJlcXVlc3QuR0VUOgorICAg
ICAgICAgICAgcHJlZmxpZ2h0X3N0YXR1cyA9IGludChyZXF1ZXN0LkdFVC5maXJzdChiInByZWZs
aWdodF9zdGF0dXMiKSkKIAotICAgICAgICBzdGFzaGVkX2RhdGFbJ3ByZWZsaWdodCddID0gIjEi
Ci0gICAgICAgIHN0YXNoZWRfZGF0YVsncHJlZmxpZ2h0X3JlZmVycmVyJ10gPSByZXF1ZXN0Lmhl
YWRlcnMuZ2V0KCJSZWZlcmVyIiwgIiIpCi0gICAgICAgIHN0YXNoZWRfZGF0YVsncHJlZmxpZ2h0
X3VzZXJfYWdlbnQnXSA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIlVzZXItQWdlbnQiLCAiIikKKyAg
ICAgICAgc3Rhc2hlZF9kYXRhW2IncHJlZmxpZ2h0J10gPSBiIjEiCisgICAgICAgIHN0YXNoZWRf
ZGF0YVtiJ3ByZWZsaWdodF9yZWZlcnJlciddID0gcmVxdWVzdC5oZWFkZXJzLmdldChiIlJlZmVy
ZXIiLCBiIiIpCisgICAgICAgIHN0YXNoZWRfZGF0YVtiJ3ByZWZsaWdodF91c2VyX2FnZW50J10g
PSByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIiVXNlci1BZ2VudCIsIGIiIikKICAgICAgICAgaWYgdG9r
ZW46CiAgICAgICAgICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQodG9rZW4sIHN0YXNoZWRf
ZGF0YSkKIAotICAgICAgICByZXR1cm4gcHJlZmxpZ2h0X3N0YXR1cywgaGVhZGVycywgIiIKKyAg
ICAgICAgcmV0dXJuIHByZWZsaWdodF9zdGF0dXMsIGhlYWRlcnMsIGIiIgogCiAKICAgICBpZiB0
b2tlbjoKQEAgLTYwLDE5ICs2MCwxOSBAQCBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAg
ICAgICAgIGlmIGRhdGE6CiAgICAgICAgICAgICBzdGFzaGVkX2RhdGEgPSBkYXRhCiAKLSAgICBp
ZiAiY2hlY2tVc2VyQWdlbnRIZWFkZXJJblByZWZsaWdodCIgaW4gcmVxdWVzdC5HRVQgYW5kIHJl
cXVlc3QuaGVhZGVycy5nZXQoIlVzZXItQWdlbnQiKSAhPSBzdGFzaGVkX2RhdGFbJ3ByZWZsaWdo
dF91c2VyX2FnZW50J106Ci0gICAgICAgIHJldHVybiA0MDAsIGhlYWRlcnMsICJFUlJPUjogTm8g
dXNlci1hZ2VudCBoZWFkZXIgaW4gcHJlZmxpZ2h0IgorICAgIGlmIGIiY2hlY2tVc2VyQWdlbnRI
ZWFkZXJJblByZWZsaWdodCIgaW4gcmVxdWVzdC5HRVQgYW5kIHJlcXVlc3QuaGVhZGVycy5nZXQo
YiJVc2VyLUFnZW50IikgIT0gc3Rhc2hlZF9kYXRhW2IncHJlZmxpZ2h0X3VzZXJfYWdlbnQnXToK
KyAgICAgICAgcmV0dXJuIDQwMCwgaGVhZGVycywgYiJFUlJPUjogTm8gdXNlci1hZ2VudCBoZWFk
ZXIgaW4gcHJlZmxpZ2h0IgogCiAgICAgI3VzZSB4LSogaGVhZGVycyBmb3IgcmV0dXJuaW5nIHZh
bHVlIHRvIGJvZHlsZXNzIHJlc3BvbnNlcwotICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNv
bnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAieC1kaWQtcHJlZmxpZ2h0LCB4LWNvbnRyb2wtcmVxdWVz
dC1oZWFkZXJzLCB4LXJlZmVycmVyLCB4LXByZWZsaWdodC1yZWZlcnJlciwgeC1vcmlnaW4iKSkK
LSAgICBoZWFkZXJzLmFwcGVuZCgoIngtZGlkLXByZWZsaWdodCIsIHN0YXNoZWRfZGF0YVsncHJl
ZmxpZ2h0J10pKQotICAgIGlmIHN0YXNoZWRfZGF0YVsnY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMn
XSAhPSBOb25lOgotICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIngtY29udHJvbC1yZXF1ZXN0LWhl
YWRlcnMiLCBzdGFzaGVkX2RhdGFbJ2NvbnRyb2xfcmVxdWVzdF9oZWFkZXJzJ10pKQotICAgIGhl
YWRlcnMuYXBwZW5kKCgieC1wcmVmbGlnaHQtcmVmZXJyZXIiLCBzdGFzaGVkX2RhdGFbJ3ByZWZs
aWdodF9yZWZlcnJlciddKSkKLSAgICBoZWFkZXJzLmFwcGVuZCgoIngtcmVmZXJyZXIiLCByZXF1
ZXN0LmhlYWRlcnMuZ2V0KCJSZWZlcmVyIiwgIiIpKSkKLSAgICBoZWFkZXJzLmFwcGVuZCgoIngt
b3JpZ2luIiwgcmVxdWVzdC5oZWFkZXJzLmdldCgiT3JpZ2luIiwgIiIpKSkKKyAgICBoZWFkZXJz
LmFwcGVuZCgoYiJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsIGIieC1kaWQtcHJlZmxp
Z2h0LCB4LWNvbnRyb2wtcmVxdWVzdC1oZWFkZXJzLCB4LXJlZmVycmVyLCB4LXByZWZsaWdodC1y
ZWZlcnJlciwgeC1vcmlnaW4iKSkKKyAgICBoZWFkZXJzLmFwcGVuZCgoYiJ4LWRpZC1wcmVmbGln
aHQiLCBzdGFzaGVkX2RhdGFbYidwcmVmbGlnaHQnXSkpCisgICAgaWYgc3Rhc2hlZF9kYXRhW2In
Y29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnXSAhPSBOb25lOgorICAgICAgICBoZWFkZXJzLmFwcGVu
ZCgoYiJ4LWNvbnRyb2wtcmVxdWVzdC1oZWFkZXJzIiwgc3Rhc2hlZF9kYXRhW2InY29udHJvbF9y
ZXF1ZXN0X2hlYWRlcnMnXSkpCisgICAgaGVhZGVycy5hcHBlbmQoKGIieC1wcmVmbGlnaHQtcmVm
ZXJyZXIiLCBzdGFzaGVkX2RhdGFbYidwcmVmbGlnaHRfcmVmZXJyZXInXSkpCisgICAgaGVhZGVy
cy5hcHBlbmQoKGIieC1yZWZlcnJlciIsIHJlcXVlc3QuaGVhZGVycy5nZXQoYiJSZWZlcmVyIiwg
YiIiKSkpCisgICAgaGVhZGVycy5hcHBlbmQoKGIieC1vcmlnaW4iLCByZXF1ZXN0LmhlYWRlcnMu
Z2V0KGIiT3JpZ2luIiwgYiIiKSkpCiAKICAgICBpZiB0b2tlbjoKICAgICAgICAgcmVxdWVzdC5z
ZXJ2ZXIuc3Rhc2gucHV0KHRva2VuLCBzdGFzaGVkX2RhdGEpCiAKLSAgICByZXR1cm4gaGVhZGVy
cywgIiIKKyAgICByZXR1cm4gaGVhZGVycywgYiIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcmVkaXJl
Y3QtZW1wdHktbG9jYXRpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcmVkaXJlY3QtZW1wdHktbG9jYXRpb24ucHkK
aW5kZXggMmJhYWJhZTAzYjBiZjM2OGJiY2Q5YjI2YTAxZDIyZWNkOGU4NjQ3MC4uMWE1ZjdmZWIy
YTRiMzI5NDczZDI5ZDQ1YzFiMjQ1YzY2MjU4ZDhkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3JlZGly
ZWN0LWVtcHR5LWxvY2F0aW9uLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9yZWRpcmVjdC1lbXB0eS1sb2NhdGlv
bi5weQpAQCAtMSwzICsxLDMgQEAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBo
ZWFkZXJzID0gWygiTG9jYXRpb24iLCAiIildCi0gICAgcmV0dXJuIDMwMiwgaGVhZGVycywgIiIK
KyAgICBoZWFkZXJzID0gWyhiIkxvY2F0aW9uIiwgYiIiKV0KKyAgICByZXR1cm4gMzAyLCBoZWFk
ZXJzLCBiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9zY3JpcHQtd2l0aC1oZWFkZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJj
ZXMvc2NyaXB0LXdpdGgtaGVhZGVyLnB5CmluZGV4IDUzMzdjYzk3YmRkNzczN2U0MDM5OGNiMDY2
YTk4YTUyNDZiYTQzOTIuLjlhOWM3MGVmNWNmMDBkN2YxNjk2MzAwNGU3N2ZmMTM1ZWQ5MmFmYjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc291cmNlcy9zY3JpcHQtd2l0aC1oZWFkZXIucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3Nj
cmlwdC13aXRoLWhlYWRlci5weQpAQCAtMSw3ICsxLDcgQEAKIGRlZiBtYWluKHJlcXVlc3QsIHJl
c3BvbnNlKToKLSAgICBoZWFkZXJzID0gWygiQ29udGVudC10eXBlIiwgcmVxdWVzdC5HRVQuZmly
c3QoIm1pbWUiKSldCi0gICAgaWYgImNvbnRlbnQiIGluIHJlcXVlc3QuR0VUIGFuZCByZXF1ZXN0
LkdFVC5maXJzdCgiY29udGVudCIpID09ICJlbXB0eSI6Ci0gICAgICAgIGNvbnRlbnQgPSAnJwor
ICAgIGhlYWRlcnMgPSBbKGIiQ29udGVudC10eXBlIiwgcmVxdWVzdC5HRVQuZmlyc3QoYiJtaW1l
IikpXQorICAgIGlmIGIiY29udGVudCIgaW4gcmVxdWVzdC5HRVQgYW5kIHJlcXVlc3QuR0VULmZp
cnN0KGIiY29udGVudCIpID09IGIiZW1wdHkiOgorICAgICAgICBjb250ZW50ID0gYicnCiAgICAg
ZWxzZToKLSAgICAgICAgY29udGVudCA9ICJjb25zb2xlLmxvZygnU2NyaXB0IGxvYWRlZCcpIgor
ICAgICAgICBjb250ZW50ID0gYiJjb25zb2xlLmxvZygnU2NyaXB0IGxvYWRlZCcpIgogICAgIHJl
dHVybiAyMDAsIGhlYWRlcnMsIGNvbnRlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9zdGFzaC1wdXQu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNvdXJjZXMvc3Rhc2gtcHV0LnB5CmluZGV4IDM2NTI3Yjk4YjcxNzg1ODA5Y2Q2YTQ5MDE5
NmRkOTExMmZlZjkxODEuLmRiYzdjZWViYjg4MmViYjc3YTAyMDJiM2M5YTgyOGUyYzcwZGMzYmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc291cmNlcy9zdGFzaC1wdXQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3N0YXNoLXB1dC5w
eQpAQCAtMSwxNCArMSwxNyBAQAorZnJvbSB3cHRzZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhp
Y19kZWNvZGUKKwogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGlmIHJlcXVlc3Qu
bWV0aG9kID09ICdPUFRJT05TJzoKKyAgICBpZiByZXF1ZXN0Lm1ldGhvZCA9PSB1J09QVElPTlMn
OgogICAgICAgICAjIENPUlMgcHJlZmxpZ2h0Ci0gICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpCi0gICAgICAgIHJlc3BvbnNlLmhl
YWRlcnMuc2V0KCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzJywgJyonKQotICAgICAgICBy
ZXNwb25zZS5oZWFkZXJzLnNldCgnQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycycsICcqJykK
KyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYidBY2Nlc3MtQ29udHJvbC1BbGxvdy1Pcmln
aW4nLCBiJyonKQorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiJ0FjY2Vzcy1Db250cm9s
LUFsbG93LU1ldGhvZHMnLCBiJyonKQorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiJ0Fj
Y2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnLCBiJyonKQogICAgICAgICByZXR1cm4gJ2RvbmUn
CiAKLSAgICB1cmxfZGlyID0gJy8nLmpvaW4ocmVxdWVzdC51cmxfcGFydHMucGF0aC5zcGxpdCgn
LycpWzotMV0pICsgJy8nCi0gICAga2V5ID0gcmVxdWVzdC5HRVQuZmlyc3QoImtleSIpCi0gICAg
dmFsdWUgPSByZXF1ZXN0LkdFVC5maXJzdCgidmFsdWUiKQotICAgIHJlcXVlc3Quc2VydmVyLnN0
YXNoLnB1dChrZXksIHZhbHVlLCB1cmxfZGlyKQotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCdB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpCisgICAgdXJsX2RpciA9IHUnLycuam9p
bihyZXF1ZXN0LnVybF9wYXJ0cy5wYXRoLnNwbGl0KHUnLycpWzotMV0pICsgdScvJworICAgIGtl
eSA9IHJlcXVlc3QuR0VULmZpcnN0KGIia2V5IikKKyAgICB2YWx1ZSA9IHJlcXVlc3QuR0VULmZp
cnN0KGIidmFsdWUiKQorICAgICMgdmFsdWUgaGVyZSBtdXN0IGJlIGEgdGV4dCBzdHJpbmcuIEl0
IHdpbGwgYmUganNvbi5kdW1wKCknZWQgaW4gc3Rhc2gtdGFrZS5weS4KKyAgICByZXF1ZXN0LnNl
cnZlci5zdGFzaC5wdXQoa2V5LCBpc29tb3JwaGljX2RlY29kZSh2YWx1ZSksIHVybF9kaXIpCisg
ICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYidBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCBi
JyonKQogICAgIHJldHVybiAiZG9uZSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9zdGFzaC10YWtlLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzb3VyY2VzL3N0YXNoLXRha2UucHkKaW5kZXggZmNhZjk2Yzk2YTY0MTFmNTM5MTI3NmU5ODRh
YWEyMjZjOGNiMTViNi4uZTZkYjgwZGQ4NmRmMWU1YTgwZTE3N2I3OGJkNDBhNTkyMzQ4ODViMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzb3VyY2VzL3N0YXNoLXRha2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3N0YXNoLXRha2Uu
cHkKQEAgLTMsNyArMyw3IEBAIGZyb20gd3B0c2VydmUuaGFuZGxlcnMgaW1wb3J0IGpzb25faGFu
ZGxlcgogCiBAanNvbl9oYW5kbGVyCiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAg
ZGlyID0gJy8nLmpvaW4ocmVxdWVzdC51cmxfcGFydHMucGF0aC5zcGxpdCgnLycpWzotMV0pICsg
Jy8nCi0gICAga2V5ID0gcmVxdWVzdC5HRVQuZmlyc3QoImtleSIpCi0gICAgcmVzcG9uc2UuaGVh
ZGVycy5zZXQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJykKKyAgICBkaXIgPSB1
Jy8nLmpvaW4ocmVxdWVzdC51cmxfcGFydHMucGF0aC5zcGxpdCh1Jy8nKVs6LTFdKSArIHUnLycK
KyAgICBrZXkgPSByZXF1ZXN0LkdFVC5maXJzdChiImtleSIpCisgICAgcmVzcG9uc2UuaGVhZGVy
cy5zZXQoYidBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCBiJyonKQogICAgIHJldHVybiBy
ZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKGtleSwgZGlyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3N0
YXR1cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9zdGF0dXMucHkKaW5kZXggNWQ3MmUxMGIyNGJmZDVhMzZkNzE5OTQw
Mzg4YmI1NWQ0NDQzMzU0Ni4uMDVhNTlkNWE2MzdlZGRlOGZiMDQ5NjI3ZmRjZThhM2EwZTgzNjcx
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3N0YXR1cy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvc3RhdHVzLnB5CkBA
IC0xLDkgKzEsMTEgQEAKK2Zyb20gd3B0c2VydmUudXRpbHMgaW1wb3J0IGlzb21vcnBoaWNfZW5j
b2RlCisKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBjb2RlID0gaW50KHJlcXVl
c3QuR0VULmZpcnN0KCJjb2RlIiwgMjAwKSkKLSAgICB0ZXh0ID0gcmVxdWVzdC5HRVQuZmlyc3Qo
InRleHQiLCAiT01HIikKLSAgICBjb250ZW50ID0gcmVxdWVzdC5HRVQuZmlyc3QoImNvbnRlbnQi
LCAiIikKLSAgICB0eXBlID0gcmVxdWVzdC5HRVQuZmlyc3QoInR5cGUiLCAiIikKKyAgICBjb2Rl
ID0gaW50KHJlcXVlc3QuR0VULmZpcnN0KGIiY29kZSIsIDIwMCkpCisgICAgdGV4dCA9IHJlcXVl
c3QuR0VULmZpcnN0KGIidGV4dCIsIGIiT01HIikKKyAgICBjb250ZW50ID0gcmVxdWVzdC5HRVQu
Zmlyc3QoYiJjb250ZW50IiwgYiIiKQorICAgIHR5cGUgPSByZXF1ZXN0LkdFVC5maXJzdChiInR5
cGUiLCBiIiIpCiAgICAgc3RhdHVzID0gKGNvZGUsIHRleHQpCi0gICAgaGVhZGVycyA9IFsoIkNv
bnRlbnQtVHlwZSIsIHR5cGUpLAotICAgICAgICAgICAgICAgKCJYLVJlcXVlc3QtTWV0aG9kIiwg
cmVxdWVzdC5tZXRob2QpXQorICAgIGhlYWRlcnMgPSBbKGIiQ29udGVudC1UeXBlIiwgdHlwZSks
CisgICAgICAgICAgICAgICAoYiJYLVJlcXVlc3QtTWV0aG9kIiwgaXNvbW9ycGhpY19lbmNvZGUo
cmVxdWVzdC5tZXRob2QpKV0KICAgICByZXR1cm4gc3RhdHVzLCBoZWFkZXJzLCBjb250ZW50CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNvdXJjZXMvdHJpY2tsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90cmlja2xlLnB5CmluZGV4IDli
M2FhMzdiMjVjOWM5OWZlMWZjNmE5ODhjZDc5ZWE2Yzc5M2MyODcuLjUwOTFhMmIzZmRkY2U3ZTlh
NDRjZjZlZjk0ZTkyMmY3OWQ5MTM2OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90cmlja2xlLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc291cmNlcy90cmlja2xlLnB5CkBAIC0xMiw1ICsxMiw1IEBAIGRlZiBtYWluKHJlcXVlc3Qs
IHJlc3BvbnNlKToKICAgICByZXNwb25zZS53cml0ZV9zdGF0dXNfaGVhZGVycygpCiAgICAgdGlt
ZS5zbGVlcChkZWxheSkKICAgICBmb3IgaSBpbiB4cmFuZ2UoY291bnQpOgotICAgICAgICByZXNw
b25zZS53cml0ZXIud3JpdGVfY29udGVudCh1IlRFU1RfVFJJQ0tMRVxuIikKKyAgICAgICAgcmVz
cG9uc2Uud3JpdGVyLndyaXRlX2NvbnRlbnQoYiJURVNUX1RSSUNLTEVcbiIpCiAgICAgICAgIHRp
bWUuc2xlZXAoZGVsYXkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1ib2R5LXJlYWQtdGFz
ay1oYW5kbGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1ib2R5LXJlYWQtdGFzay1o
YW5kbGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThkNjdkMjkyNzYyYzQyZWU3NmE3NTRl
NjExNzM1YzkwM2QwN2Y1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWJvZHkt
cmVhZC10YXNrLWhhbmRsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBy
ZWFkaW5nIGZyb20gYSBib2R5IHN0cmVhbSBzaG91bGQgb2NjdXIgaW4gYSBtaWNyb3Rhc2sgc2Nv
cGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtYm9keS1yZWFkLXRhc2staGFuZGxpbmcu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWJvZHktcmVhZC10YXNrLWhhbmRsaW5nLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzJjOTBlYWE4YmQ5NTFjZjdkNTE2OGU3Nzk2ZGQxY2I4ZGNmOWNkZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWJvZHktcmVhZC10YXNrLWhhbmRsaW5nLmh0bWwKQEAg
LTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8bWV0YSBj
aGFyc2V0PSJVVEYtOCI+CisgIDx0aXRsZT48L3RpdGxlPgorICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2Ny
aXB0PgorZnVuY3Rpb24gcGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKSB7CisgICAgZG9jdW1l
bnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LCAtMSwgeworICAgICAgICBhY2NlcHROb2Rl
KCkgeworICAgICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVDsKKyAgICAg
ICAgfQorICAgIH0pLm5leHROb2RlKCk7Cit9CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsK
KyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRhLmpzb24iKS50aGVuKGZ1bmN0aW9u
KHJlc3BvbnNlKSB7CisgICAgICAgIC8vIEFkZCBhIGdldHRlciBmb3IgInRoZW4iIHRoYXQgd2ls
bCBpbmNpZGVudGFsbHkgYmUgaW52b2tlZAorICAgICAgICAvLyBkdXJpbmcgcHJvbWlzZSByZXNv
bHV0aW9uLgorICAgICAgICBPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18oJ3RoZW4n
LCAoKSA9PiB7CisgICAgICAgICAgICAvLyBDbGVhbiB1cCBiZWhpbmQgb3Vyc2VsdmVzLgorICAg
ICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5cGUudGhlbjsKKworICAgICAgICAgICAgLy8g
VGhpcyBwcm9taXNlIHNob3VsZCAobGlrZSBhbGwgcHJvbWlzZXMpIGJlIHJlc29sdmVkCisgICAg
ICAgICAgICAvLyBhc3luY2hyb25vdXNseS4KKyAgICAgICAgICAgIHZhciBleGVjdXRlZCA9IGZh
bHNlOworICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihfID0+IHsgZXhlY3V0ZWQg
PSB0cnVlOyB9KTsKKworICAgICAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgcnVuIG1pY3JvdGFz
a3MhICBUaGV5IHNob3VsZCBvbmx5IHJ1bgorICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIGZldGNo
IGlzIHJlc29sdmVkLgorICAgICAgICAgICAgcGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsK
KworICAgICAgICAgICAgLy8gVGhlIGZ1bGZpbGwgaGFuZGxlciBhYm92ZSBzaG91bGRuJ3QgaGF2
ZSBydW4geWV0LiAgSWYgaXQgaGFzIHJ1biwKKyAgICAgICAgICAgIC8vIHRocm93IHRvIHJlamVj
dCB0aGlzIHByb21pc2UgYW5kIGZhaWwgdGhlIHRlc3QuCisgICAgICAgICAgICBpZiAoZXhlY3V0
ZWQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyAic2hvdWxkbid0IGhhdmUgcnVuIG1pY3JvdGFz
a3MgeWV0IjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGFjdCBh
cyBpZiB0aGVyZSdzIG5vICJ0aGVuIiBwcm9wZXJ0eSBzbyB0aGUgcHJvbWlzZQorICAgICAgICAg
ICAgLy8gZnVsZmlsbHMgYW5kIHRoZSB0ZXN0IHBhc3Nlcy4KKyAgICAgICAgICAgIHJldHVybiB1
bmRlZmluZWQ7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIENyZWF0ZSBhIHJlYWQgcmVxdWVz
dCwgaW5jaWRlbnRhbGx5IHJlc29sdmluZyBhIHByb21pc2Ugd2l0aCBhbgorICAgICAgICAvLyBv
YmplY3QgdmFsdWUsIHRoZXJlYnkgaW52b2tpbmcgdGhlIGdldHRlciBpbnN0YWxsZWQgYWJvdmUu
CisgICAgICAgIHJldHVybiByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLnJlYWQoKTsKKyAgICB9
KTsKK30sICJyZWFkaW5nIGZyb20gYSBib2R5IHN0cmVhbSBzaG91bGQgb2NjdXIgaW4gYSBtaWNy
b3Rhc2sgc2NvcGUiKTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1jYW5jZWwtc3RyZWFtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWNhbmNlbC1zdHJlYW0tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiMWM0MjhjMzEzZGQxMWQ3MzM1MDAwMmZmZDUyYWRlNjEwMjg4OGU5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNhbmNl
bC1zdHJlYW0tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0KLVBB
U1MgQ2FuY2VsbGluZyBhIHN0YXJ0aW5nIGJsb2IgUmVzcG9uc2Ugc3RyZWFtCi1QQVNTIENhbmNl
bGxpbmcgYSBsb2FkaW5nIGJsb2IgUmVzcG9uc2Ugc3RyZWFtCi1QQVNTIENhbmNlbGxpbmcgYSBj
bG9zZWQgYmxvYiBSZXNwb25zZSBzdHJlYW0KLVBBU1MgQ2FuY2VsbGluZyBhIHN0YXJ0aW5nIFJl
c3BvbnNlIHN0cmVhbQotUEFTUyBDYW5jZWxsaW5nIGEgbG9hZGluZyBSZXNwb25zZSBzdHJlYW0K
LVBBU1MgQ2FuY2VsbGluZyBhIGNsb3NlZCBSZXNwb25zZSBzdHJlYW0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtY2FuY2VsLXN0cmVhbS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxYzQyOGMz
MTNkZDExZDczMzUwMDAyZmZkNTJhZGU2MTAyODg4ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1jYW5jZWwtc3RyZWFtLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBA
CisKK1BBU1MgQ2FuY2VsbGluZyBhIHN0YXJ0aW5nIGJsb2IgUmVzcG9uc2Ugc3RyZWFtCitQQVNT
IENhbmNlbGxpbmcgYSBsb2FkaW5nIGJsb2IgUmVzcG9uc2Ugc3RyZWFtCitQQVNTIENhbmNlbGxp
bmcgYSBjbG9zZWQgYmxvYiBSZXNwb25zZSBzdHJlYW0KK1BBU1MgQ2FuY2VsbGluZyBhIHN0YXJ0
aW5nIFJlc3BvbnNlIHN0cmVhbQorUEFTUyBDYW5jZWxsaW5nIGEgbG9hZGluZyBSZXNwb25zZSBz
dHJlYW0KK1BBU1MgQ2FuY2VsbGluZyBhIGNsb3NlZCBSZXNwb25zZSBzdHJlYW0KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnkuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWNhbmNlbC1zdHJlYW0uYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1
ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LWNhbmNlbC1zdHJlYW0uYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMg
cmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxh
dGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jYW5jZWwt
c3RyZWFtLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWE0NmRlNDAzOWIxNzZjMzBlMGU4YTQ5ZWU3NWFj
YmQyMGU2NDUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVh
bS5hbnkuanMKQEAgLTAsMCArMSw1NyBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIK
Ky8vIE1FVEE6IHRpdGxlPVJlc3BvbnNlIGNvbnN1bWUgYmxvYiBhbmQgaHR0cCBib2RpZXMKKy8v
IE1FVEE6IHNjcmlwdD0uLi9yZXNvdXJjZXMvdXRpbHMuanMKKworcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHRlc3QpIHsKKyAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG5ldyBCbG9iKFtdLCB7ICJ0eXBl
IiA6ICJ0ZXh0L3BsYWluIiB9KSkuYm9keS5jYW5jZWwoKTsKK30sICJDYW5jZWxsaW5nIGEgc3Rh
cnRpbmcgYmxvYiBSZXNwb25zZSBzdHJlYW0iKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRl
c3QpIHsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UobmV3IEJsb2IoWyJUaGlzIGlz
IGRhdGEiXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSkpOworICAgIHZhciByZWFkZXIgPSBy
ZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOworICAgIHJlYWRlci5yZWFkKCk7CisgICAgcmV0dXJu
IHJlYWRlci5jYW5jZWwoKTsKK30sICJDYW5jZWxsaW5nIGEgbG9hZGluZyBibG9iIFJlc3BvbnNl
IHN0cmVhbSIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZhciByZXNw
b25zZSA9IG5ldyBSZXNwb25zZShuZXcgQmxvYihbIlQiXSwgeyAidHlwZSIgOiAidGV4dC9wbGFp
biIgfSkpOworICAgIHZhciByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOworCisg
ICAgdmFyIGNsb3NlZFByb21pc2UgPSByZWFkZXIuY2xvc2VkLnRoZW4oZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHJldHVybiByZWFkZXIuY2FuY2VsKCk7CisgICAgfSk7CisgICAgcmVhZGVyLnJlYWQo
KS50aGVuKGZ1bmN0aW9uIHJlYWRNb3JlKHtkb25lLCB2YWx1ZX0pIHsKKyAgICAgIGlmICghZG9u
ZSkgcmV0dXJuIHJlYWRlci5yZWFkKCkudGhlbihyZWFkTW9yZSk7CisgICAgfSk7CisgICAgcmV0
dXJuIGNsb3NlZFByb21pc2U7Cit9LCAiQ2FuY2VsbGluZyBhIGNsb3NlZCBibG9iIFJlc3BvbnNl
IHN0cmVhbSIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHJldHVybiBm
ZXRjaChSRVNPVVJDRVNfRElSICsgInRyaWNrbGUucHk/bXM9MzAmY291bnQ9MTAwIikudGhlbihm
dW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICByZXR1cm4gcmVzcG9uc2UuYm9keS5jYW5jZWwo
KTsKKyAgICB9KTsKK30sICJDYW5jZWxsaW5nIGEgc3RhcnRpbmcgUmVzcG9uc2Ugc3RyZWFtIik7
CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gZmV0Y2goUkVTT1VSQ0VT
X0RJUiArICJ0cmlja2xlLnB5P21zPTMwJmNvdW50PTEwMCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9u
c2UpIHsKKyAgICAgICAgdmFyIHJlYWRlciA9IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7Cisg
ICAgICAgIHJldHVybiByZWFkZXIucmVhZCgpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICByZXR1cm4gcmVhZGVyLmNhbmNlbCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJDYW5j
ZWxsaW5nIGEgbG9hZGluZyBSZXNwb25zZSBzdHJlYW0iKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKCkgeworICAgIGFzeW5jIGZ1bmN0aW9uIHJlYWRBbGwocmVhZGVyKSB7CisgICAgICB3aGls
ZSAodHJ1ZSkgeworICAgICAgICBjb25zdCB7dmFsdWUsIGRvbmV9ID0gYXdhaXQgcmVhZGVyLnJl
YWQoKTsKKyAgICAgICAgaWYgKGRvbmUpCisgICAgICAgICAgcmV0dXJuOworICAgICAgfQorICAg
IH0KKworICAgIHJldHVybiBmZXRjaChSRVNPVVJDRVNfRElSICsgInRvcC50eHQiKS50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHZhciByZWFkZXIgPSByZXNwb25zZS5ib2R5Lmdl
dFJlYWRlcigpOworICAgICAgICByZXR1cm4gcmVhZEFsbChyZWFkZXIpLnRoZW4oKCkgPT4gcmVh
ZGVyLmNhbmNlbCgpKTsKKyAgICB9KTsKK30sICJDYW5jZWxsaW5nIGEgY2xvc2VkIFJlc3BvbnNl
IHN0cmVhbSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNhbmNlbC1zdHJlYW0uYW55Lndv
cmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFjNDI4YzMxM2RkMTFkNzMzNTAwMDJmZmQ1
MmFkZTYxMDI4ODhlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNhbmNlbC1z
dHJlYW0uYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BBU1MgQ2Fu
Y2VsbGluZyBhIHN0YXJ0aW5nIGJsb2IgUmVzcG9uc2Ugc3RyZWFtCitQQVNTIENhbmNlbGxpbmcg
YSBsb2FkaW5nIGJsb2IgUmVzcG9uc2Ugc3RyZWFtCitQQVNTIENhbmNlbGxpbmcgYSBjbG9zZWQg
YmxvYiBSZXNwb25zZSBzdHJlYW0KK1BBU1MgQ2FuY2VsbGluZyBhIHN0YXJ0aW5nIFJlc3BvbnNl
IHN0cmVhbQorUEFTUyBDYW5jZWxsaW5nIGEgbG9hZGluZyBSZXNwb25zZSBzdHJlYW0KK1BBU1Mg
Q2FuY2VsbGluZyBhIGNsb3NlZCBSZXNwb25zZSBzdHJlYW0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1j
YW5jZWwtc3RyZWFtLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2Iz
YTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY2FuY2VsLXN0cmVhbS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0
aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
Y2FuY2VsLXN0cmVhbS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmY2FlZDA0
ZDgzZTMxYTQzNzY5NWI1NWI1MGJlYjc0MjVhNWEzZmI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNhbmNlbC1zdHJlYW0uaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+
Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVzcG9u
c2UgY29uc3VtZSBibG9iIGFuZCBodHRwIGJvZGllczwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KLSAg
ICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8j
Ym9keS1taXhpbiI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFy
Y2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgotICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4K
LSAgPGJvZHk+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91dGlscy5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdD4KLXByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgcmV0
dXJuIG5ldyBSZXNwb25zZShuZXcgQmxvYihbXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSkp
LmJvZHkuY2FuY2VsKCk7Ci19LCAiQ2FuY2VsbGluZyBhIHN0YXJ0aW5nIGJsb2IgUmVzcG9uc2Ug
c3RyZWFtIik7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgdmFyIHJlc3Bv
bnNlID0gbmV3IFJlc3BvbnNlKG5ldyBCbG9iKFsiVGhpcyBpcyBkYXRhIl0sIHsgInR5cGUiIDog
InRleHQvcGxhaW4iIH0pKTsKLSAgICB2YXIgcmVhZGVyID0gcmVzcG9uc2UuYm9keS5nZXRSZWFk
ZXIoKTsKLSAgICByZWFkZXIucmVhZCgpOwotICAgIHJldHVybiByZWFkZXIuY2FuY2VsKCk7Ci19
LCAiQ2FuY2VsbGluZyBhIGxvYWRpbmcgYmxvYiBSZXNwb25zZSBzdHJlYW0iKTsKLQotcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2Uo
bmV3IEJsb2IoWyJUIl0sIHsgInR5cGUiIDogInRleHQvcGxhaW4iIH0pKTsKLSAgICB2YXIgcmVh
ZGVyID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsKLQotICAgIHZhciBjbG9zZWRQcm9taXNl
ID0gcmVhZGVyLmNsb3NlZC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICByZXR1cm4gcmVhZGVy
LmNhbmNlbCgpOwotICAgIH0pOwotICAgIHJlYWRlci5yZWFkKCkudGhlbihmdW5jdGlvbiByZWFk
TW9yZSh7ZG9uZSwgdmFsdWV9KSB7Ci0gICAgICBpZiAoIWRvbmUpIHJldHVybiByZWFkZXIucmVh
ZCgpLnRoZW4ocmVhZE1vcmUpOwotICAgIH0pOwotICAgIHJldHVybiBjbG9zZWRQcm9taXNlOwot
fSwgIkNhbmNlbGxpbmcgYSBjbG9zZWQgYmxvYiBSZXNwb25zZSBzdHJlYW0iKTsKLQotcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICByZXR1cm4gZmV0Y2goUkVTT1VSQ0VTX0RJUiAr
ICJ0cmlja2xlLnB5P21zPTMwJmNvdW50PTEwMCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsK
LSAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkuY2FuY2VsKCk7Ci0gICAgfSk7Ci19LCAiQ2Fu
Y2VsbGluZyBhIHN0YXJ0aW5nIFJlc3BvbnNlIHN0cmVhbSIpOwotCi1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgcmV0dXJuIGZldGNoKFJFU09VUkNFU19ESVIgKyAidHJpY2tsZS5weT9t
cz0zMCZjb3VudD0xMDAiKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgIHZhciBy
ZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOwotICAgICAgICByZXR1cm4gcmVhZGVy
LnJlYWQoKS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcmV0dXJuIHJlYWRlci5jYW5j
ZWwoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19LCAiQ2FuY2VsbGluZyBhIGxvYWRpbmcgUmVz
cG9uc2Ugc3RyZWFtIik7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbigpIHsKLSAgICBhc3luYyBm
dW5jdGlvbiByZWFkQWxsKHJlYWRlcikgewotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAg
Y29uc3Qge3ZhbHVlLCBkb25lfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7Ci0gICAgICAgIGlmIChk
b25lKQotICAgICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gZmV0
Y2goUkVTT1VSQ0VTX0RJUiArICJ0b3AudHh0IikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewot
ICAgICAgICB2YXIgcmVhZGVyID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsKLSAgICAgICAg
cmV0dXJuIHJlYWRBbGwocmVhZGVyKS50aGVuKCgpID0+IHJlYWRlci5jYW5jZWwoKSk7Ci0gICAg
fSk7Ci19LCAiQ2FuY2VsbGluZyBhIGNsb3NlZCBSZXNwb25zZSBzdHJlYW0iKTsKLSAgICA8L3Nj
cmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xv
bmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNmU4OTQ1NjNkZjYyZjFiMmI2ZGFkYmMwYWFkZjI2
YmM1MGNiYjM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLWNsb25lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIw
ICswLDAgQEAKLQotUEFTUyBDaGVjayBSZXNwb25zZSdzIGNsb25lIHdpdGggZGVmYXVsdCB2YWx1
ZXMsIHdpdGhvdXQgYm9keQotUEFTUyBDaGVjayBSZXNwb25zZSdzIGNsb25lIGhhcyB0aGUgZXhw
ZWN0ZWQgYXR0cmlidXRlIHZhbHVlcwotUEFTUyBDaGVjayBvcmdpbmFsIHJlc3BvbnNlJ3MgYm9k
eSBhZnRlciBjbG9uaW5nCi1QQVNTIENoZWNrIGNsb25lZCByZXNwb25zZSdzIGJvZHkKLVBBU1Mg
Q2Fubm90IGNsb25lIGEgZGlzdHVyYmVkIHJlc3BvbnNlCi1QQVNTIENsb25lZCByZXNwb25zZXMg
c2hvdWxkIHByb3ZpZGUgdGhlIHNhbWUgZGF0YQotUEFTUyBDYW5jZWxsaW5nIHN0cmVhbSBzaG91
bGQgbm90IGFmZmVjdCBjbG9uZWQgb25lCi1QQVNTIENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBz
dHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKEludDhBcnJheWNodW5rKQot
UEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVh
ZGFibGVTdHJlYW1zIChJbnQxNkFycmF5Y2h1bmspCi1QQVNTIENoZWNrIHJlc3BvbnNlIGNsb25l
IHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKEludDMyQXJyYXlj
aHVuaykKLUZBSUwgQ2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0
ZWVkIFJlYWRhYmxlU3RyZWFtcyAoQXJyYXlCdWZmZXJjaHVuaykgYXNzZXJ0X2FycmF5X2VxdWFs
czogQ2xvbmVkIGJ1ZmZlciBjaHVua3MgaGF2ZSB0aGUgc2FtZSBjb250ZW50IHZhbHVlIGlzIG9i
amVjdCAiW29iamVjdCBBcnJheUJ1ZmZlcl0iLCBleHBlY3RlZCBhcnJheQotUEFTUyBDaGVjayBy
ZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1z
IChVaW50OEFycmF5Y2h1bmspCi1QQVNTIENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1
cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKFVpbnQ4Q2xhbXBlZEFycmF5Y2h1bmsp
Ci1QQVNTIENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBS
ZWFkYWJsZVN0cmVhbXMgKFVpbnQxNkFycmF5Y2h1bmspCi1QQVNTIENoZWNrIHJlc3BvbnNlIGNs
b25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKFVpbnQzMkFy
cmF5Y2h1bmspCi1QQVNTIENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBm
b3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKEZsb2F0MzJBcnJheWNodW5rKQotUEFTUyBDaGVjayBy
ZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1z
IChGbG9hdDY0QXJyYXljaHVuaykKLUZBSUwgQ2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVj
dHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoRGF0YVZpZXdjaHVuaykgYXNzZXJ0
X2FycmF5X2VxdWFsczogQ2xvbmVkIGJ1ZmZlciBjaHVua3MgaGF2ZSB0aGUgc2FtZSBjb250ZW50
IHZhbHVlIGlzIG9iamVjdCAiW29iamVjdCBEYXRhVmlld10iLCBleHBlY3RlZCBhcnJheQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2UtY2xvbmUuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmU4OTQ1NjNkZjYy
ZjFiMmI2ZGFkYmMwYWFkZjI2YmM1MGNiYjM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtY2xvbmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACisKK1BBU1MgQ2hl
Y2sgUmVzcG9uc2UncyBjbG9uZSB3aXRoIGRlZmF1bHQgdmFsdWVzLCB3aXRob3V0IGJvZHkKK1BB
U1MgQ2hlY2sgUmVzcG9uc2UncyBjbG9uZSBoYXMgdGhlIGV4cGVjdGVkIGF0dHJpYnV0ZSB2YWx1
ZXMKK1BBU1MgQ2hlY2sgb3JnaW5hbCByZXNwb25zZSdzIGJvZHkgYWZ0ZXIgY2xvbmluZworUEFT
UyBDaGVjayBjbG9uZWQgcmVzcG9uc2UncyBib2R5CitQQVNTIENhbm5vdCBjbG9uZSBhIGRpc3R1
cmJlZCByZXNwb25zZQorUEFTUyBDbG9uZWQgcmVzcG9uc2VzIHNob3VsZCBwcm92aWRlIHRoZSBz
YW1lIGRhdGEKK1BBU1MgQ2FuY2VsbGluZyBzdHJlYW0gc2hvdWxkIG5vdCBhZmZlY3QgY2xvbmVk
IG9uZQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRl
ZWQgUmVhZGFibGVTdHJlYW1zIChJbnQ4QXJyYXljaHVuaykKK1BBU1MgQ2hlY2sgcmVzcG9uc2Ug
Y2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoSW50MTZB
cnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUg
Zm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChJbnQzMkFycmF5Y2h1bmspCitGQUlMIENoZWNrIHJl
c3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMg
KEFycmF5QnVmZmVyY2h1bmspIGFzc2VydF9hcnJheV9lcXVhbHM6IENsb25lZCBidWZmZXIgY2h1
bmtzIGhhdmUgdGhlIHNhbWUgY29udGVudCB2YWx1ZSBpcyBvYmplY3QgIltvYmplY3QgQXJyYXlC
dWZmZXJdIiwgZXhwZWN0ZWQgYXJyYXkKK1BBU1MgQ2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0
cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoVWludDhBcnJheWNodW5rKQor
UEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVh
ZGFibGVTdHJlYW1zIChVaW50OENsYW1wZWRBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25z
ZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChVaW50
MTZBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xv
bmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChVaW50MzJBcnJheWNodW5rKQorUEFTUyBDaGVj
ayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJl
YW1zIChGbG9hdDMyQXJyYXljaHVuaykKK1BBU1MgQ2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0
cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoRmxvYXQ2NEFycmF5Y2h1bmsp
CitGQUlMIENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBS
ZWFkYWJsZVN0cmVhbXMgKERhdGFWaWV3Y2h1bmspIGFzc2VydF9hcnJheV9lcXVhbHM6IENsb25l
ZCBidWZmZXIgY2h1bmtzIGhhdmUgdGhlIHNhbWUgY29udGVudCB2YWx1ZSBpcyBvYmplY3QgIltv
YmplY3QgRGF0YVZpZXddIiwgZXhwZWN0ZWQgYXJyYXkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtY2xvbmUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS5hbnkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJl
IHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuYW55LmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY2xvbmUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYzhmMjA1ZmE1NWQzNWU0MzNhMWFiOGJjMDhm
NjJhZjhiZmI2OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS5hbnku
anMKQEAgLTAsMCArMSwxMjQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBN
RVRBOiB0aXRsZT1SZXNwb25zZSBjbG9uZQorLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91
dGlscy5qcworCit2YXIgZGVmYXVsdFZhbHVlcyA9IHsgInR5cGUiIDogImRlZmF1bHQiLAorICAg
ICAgICAgICAgICAgICAgICAgICJ1cmwiIDogIiIsCisgICAgICAgICAgICAgICAgICAgICAgIm9r
IiA6IHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyIgOiAyMDAsCisgICAgICAg
ICAgICAgICAgICAgICAgInN0YXR1c1RleHQiIDogIiIKK307CisKK3ZhciByZXNwb25zZSA9IG5l
dyBSZXNwb25zZSgpOwordmFyIGNsb25lZFJlc3BvbnNlID0gcmVzcG9uc2UuY2xvbmUoKTsKK3Rl
c3QoZnVuY3Rpb24oKSB7CisgIGZvciAodmFyIGF0dHJpYnV0ZU5hbWUgaW4gZGVmYXVsdFZhbHVl
cykgeworICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBkZWZhdWx0VmFsdWVzW2F0dHJpYnV0ZU5h
bWVdOworICAgICAgYXNzZXJ0X2VxdWFscyhjbG9uZWRSZXNwb25zZVthdHRyaWJ1dGVOYW1lXSwg
ZXhwZWN0ZWRWYWx1ZSwKKyAgICAgICAgIkV4cGVjdCBkZWZhdWx0IHJlc3BvbnNlLiIgKyBhdHRy
aWJ1dGVOYW1lICsgIiBpcyAiICsgZXhwZWN0ZWRWYWx1ZSk7CisgIH0KK30sICJDaGVjayBSZXNw
b25zZSdzIGNsb25lIHdpdGggZGVmYXVsdCB2YWx1ZXMsIHdpdGhvdXQgYm9keSIpOworCit2YXIg
Ym9keSA9ICJUaGlzIGlzIHJlc3BvbnNlIGJvZHkiOwordmFyIGhlYWRlcnNJbml0ID0geyAibmFt
ZSIgOiAidmFsdWUiIH07Cit2YXIgcmVzcG9uc2VJbml0ICA9IHsgInN0YXR1cyIgOiAyMDAsCisg
ICAgICAgICAgICAgICAgICAgICAgInN0YXR1c1RleHQiIDogIkdPT0QiLAorICAgICAgICAgICAg
ICAgICAgICAgICJoZWFkZXJzIiA6IGhlYWRlcnNJbml0Cit9OwordmFyIHJlc3BvbnNlID0gbmV3
IFJlc3BvbnNlKGJvZHksIHJlc3BvbnNlSW5pdCk7Cit2YXIgY2xvbmVkUmVzcG9uc2UgPSByZXNw
b25zZS5jbG9uZSgpOwordGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X2VxdWFscyhjbG9uZWRS
ZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlSW5pdFsic3RhdHVzIl0sCisgICAgIkV4cGVjdCByZXNw
b25zZS5zdGF0dXMgaXMgIiArIHJlc3BvbnNlSW5pdFsic3RhdHVzIl0pOworICBhc3NlcnRfZXF1
YWxzKGNsb25lZFJlc3BvbnNlLnN0YXR1c1RleHQsIHJlc3BvbnNlSW5pdFsic3RhdHVzVGV4dCJd
LAorICAgICJFeHBlY3QgcmVzcG9uc2Uuc3RhdHVzVGV4dCBpcyAiICsgcmVzcG9uc2VJbml0WyJz
dGF0dXNUZXh0Il0pOworICBhc3NlcnRfZXF1YWxzKGNsb25lZFJlc3BvbnNlLmhlYWRlcnMuZ2V0
KCJuYW1lIiksICJ2YWx1ZSIsCisgICAgIkV4cGVjdCByZXNwb25zZS5oZWFkZXJzIGhhcyBuYW1l
OnZhbHVlIGhlYWRlciIpOworfSwgIkNoZWNrIFJlc3BvbnNlJ3MgY2xvbmUgaGFzIHRoZSBleHBl
Y3RlZCBhdHRyaWJ1dGUgdmFsdWVzIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7
CisgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFk
ZXIoKSwgYm9keSk7Cit9LCAiQ2hlY2sgb3JnaW5hbCByZXNwb25zZSdzIGJvZHkgYWZ0ZXIgY2xv
bmluZyIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICByZXR1cm4gdmFsaWRh
dGVTdHJlYW1Gcm9tU3RyaW5nKGNsb25lZFJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCksIGJvZHkp
OworfSwgIkNoZWNrIGNsb25lZCByZXNwb25zZSdzIGJvZHkiKTsKKworcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHRlc3QpIHsKKyAgdmFyIGRpc3R1cmJlZFJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCJk
YXRhIik7CisgIHJldHVybiBkaXN0dXJiZWRSZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgIGFzc2VydF90cnVlKGRpc3R1cmJlZFJlc3BvbnNlLmJvZHlVc2VkLCAicmVzcG9u
c2UgaXMgZGlzdHVyYmVkIik7CisgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVu
Y3Rpb24oKSB7IGRpc3R1cmJlZFJlc3BvbnNlLmNsb25lKCk7IH0sCisgICAgICAgICJFeHBlY3Qg
VHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICB9KTsKK30sICJDYW5ub3QgY2xvbmUgYSBkaXN0dXJi
ZWQgcmVzcG9uc2UiKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgY2xv
bmU7CisgICAgdmFyIHJlc3VsdDsKKyAgICB2YXIgcmVzcG9uc2U7CisgICAgcmV0dXJuIGZldGNo
KCcuLi9yZXNvdXJjZXMvdHJpY2tsZS5weT9jb3VudD0yJmRlbGF5PTEwMCcpLnRoZW4oZnVuY3Rp
b24ocmVzKSB7CisgICAgICAgIGNsb25lID0gcmVzLmNsb25lKCk7CisgICAgICAgIHJlc3BvbnNl
ID0gcmVzOworICAgICAgICByZXR1cm4gY2xvbmUudGV4dCgpOworICAgIH0pLnRoZW4oZnVuY3Rp
b24ocikgeworICAgICAgICBhc3NlcnRfZXF1YWxzKHIubGVuZ3RoLCAyNik7CisgICAgICAgIHJl
c3VsdCA9IHI7CisgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgfSkudGhlbihm
dW5jdGlvbihyKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMociwgcmVzdWx0LCAiY2xvbmVkIHJl
c3BvbnNlcyBzaG91bGQgcHJvdmlkZSB0aGUgc2FtZSBkYXRhIik7CisgICAgfSk7CisgIH0sICdD
bG9uZWQgcmVzcG9uc2VzIHNob3VsZCBwcm92aWRlIHRoZSBzYW1lIGRhdGEnKTsKKworcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgY2xvbmU7CisgICAgcmV0dXJuIGZldGNoKCcu
Li9yZXNvdXJjZXMvdHJpY2tsZS5weT9jb3VudD0yJmRlbGF5PTEwMCcpLnRoZW4oZnVuY3Rpb24o
cmVzKSB7CisgICAgICAgIGNsb25lID0gcmVzLmNsb25lKCk7CisgICAgICAgIHJlcy5ib2R5LmNh
bmNlbCgpOworICAgICAgICBhc3NlcnRfdHJ1ZShyZXMuYm9keVVzZWQpOworICAgICAgICBhc3Nl
cnRfZmFsc2UoY2xvbmUuYm9keVVzZWQpOworICAgICAgICByZXR1cm4gY2xvbmUuYXJyYXlCdWZm
ZXIoKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhy
LmJ5dGVMZW5ndGgsIDI2KTsKKyAgICAgICAgYXNzZXJ0X3RydWUoY2xvbmUuYm9keVVzZWQpOwor
ICAgIH0pOworfSwgJ0NhbmNlbGxpbmcgc3RyZWFtIHNob3VsZCBub3QgYWZmZWN0IGNsb25lZCBv
bmUnKTsKKworZnVuY3Rpb24gdGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUoaW5pdGlhbEJ1ZmZlciwg
YnVmZmVyVHlwZSkKK3sKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAg
ICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UobmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydCA6
IGZ1bmN0aW9uKGNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShp
bml0aWFsQnVmZmVyKTsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTsKKyAgICAgICAg
fX0pKTsKKworICAgICAgICB2YXIgY2xvbmUgPSByZXNwb25zZS5jbG9uZSgpOworICAgICAgICB2
YXIgc3RyZWFtMSA9IHJlc3BvbnNlLmJvZHk7CisgICAgICAgIHZhciBzdHJlYW0yID0gY2xvbmUu
Ym9keTsKKworICAgICAgICB2YXIgYnVmZmVyOworICAgICAgICByZXR1cm4gc3RyZWFtMS5nZXRS
ZWFkZXIoKS5yZWFkKCkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICBhc3NlcnRf
ZmFsc2UoZGF0YS5kb25lKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YS52YWx1ZSwg
aW5pdGlhbEJ1ZmZlciwgIkJ1ZmZlciBvZiBiZWluZy1jbG9uZWQgcmVzcG9uc2Ugc3RyZWFtIGlz
IHRoZSBzYW1lIGFzIHRoZSBvcmlnaW5hbCBidWZmZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBz
dHJlYW0yLmdldFJlYWRlcigpLnJlYWQoKTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRh
KSB7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGF0YS5kb25lKTsKKyAgICAgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoZGF0YS52YWx1ZSwgaW5pdGlhbEJ1ZmZlciwgIkNsb25lZCBidWZm
ZXIgY2h1bmtzIGhhdmUgdGhlIHNhbWUgY29udGVudCIpOworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YoZGF0YS52YWx1ZSksIE9iamVjdC5nZXRQcm90b3R5
cGVPZihpbml0aWFsQnVmZmVyKSwgIkNsb25lZCBidWZmZXJzIGhhdmUgdGhlIHNhbWUgdHlwZSIp
OworICAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoZGF0YS52YWx1ZSwgaW5pdGlhbEJ1ZmZl
ciwgIkJ1ZmZlciBvZiBjbG9uZWQgcmVzcG9uc2Ugc3RyZWFtIGlzIGEgY2xvbmUgb2YgdGhlIG9y
aWdpbmFsIGJ1ZmZlciIpOworICAgICAgICB9KTsKKyAgICB9LCAiQ2hlY2sgcmVzcG9uc2UgY2xv
bmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoIiArIGJ1ZmZl
clR5cGUgICsgImNodW5rKSIpOworfQorCit2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZm
ZXIoMTYpOwordGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUobmV3IEludDhBcnJheShhcnJheUJ1ZmZl
ciwgMSksICJJbnQ4QXJyYXkiKTsKK3Rlc3RSZWFkYWJsZVN0cmVhbUNsb25lKG5ldyBJbnQxNkFy
cmF5KGFycmF5QnVmZmVyLCAyLCAyKSwgIkludDE2QXJyYXkiKTsKK3Rlc3RSZWFkYWJsZVN0cmVh
bUNsb25lKG5ldyBJbnQzMkFycmF5KGFycmF5QnVmZmVyKSwgIkludDMyQXJyYXkiKTsKK3Rlc3RS
ZWFkYWJsZVN0cmVhbUNsb25lKGFycmF5QnVmZmVyLCAiQXJyYXlCdWZmZXIiKTsKK3Rlc3RSZWFk
YWJsZVN0cmVhbUNsb25lKG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKSwgIlVpbnQ4QXJyYXki
KTsKK3Rlc3RSZWFkYWJsZVN0cmVhbUNsb25lKG5ldyBVaW50OENsYW1wZWRBcnJheShhcnJheUJ1
ZmZlciksICJVaW50OENsYW1wZWRBcnJheSIpOwordGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUobmV3
IFVpbnQxNkFycmF5KGFycmF5QnVmZmVyLCAyKSwgIlVpbnQxNkFycmF5Iik7Cit0ZXN0UmVhZGFi
bGVTdHJlYW1DbG9uZShuZXcgVWludDMyQXJyYXkoYXJyYXlCdWZmZXIpLCAiVWludDMyQXJyYXki
KTsKK3Rlc3RSZWFkYWJsZVN0cmVhbUNsb25lKG5ldyBGbG9hdDMyQXJyYXkoYXJyYXlCdWZmZXIp
LCAiRmxvYXQzMkFycmF5Iik7Cit0ZXN0UmVhZGFibGVTdHJlYW1DbG9uZShuZXcgRmxvYXQ2NEFy
cmF5KGFycmF5QnVmZmVyKSwgIkZsb2F0NjRBcnJheSIpOwordGVzdFJlYWRhYmxlU3RyZWFtQ2xv
bmUobmV3IERhdGFWaWV3KGFycmF5QnVmZmVyLCAyLCA4KSwgIkRhdGFWaWV3Iik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLWNsb25lLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2ZTg5
NDU2M2RmNjJmMWIyYjZkYWRiYzBhYWRmMjZiYzUwY2JiMzQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1jbG9uZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIw
IEBACisKK1BBU1MgQ2hlY2sgUmVzcG9uc2UncyBjbG9uZSB3aXRoIGRlZmF1bHQgdmFsdWVzLCB3
aXRob3V0IGJvZHkKK1BBU1MgQ2hlY2sgUmVzcG9uc2UncyBjbG9uZSBoYXMgdGhlIGV4cGVjdGVk
IGF0dHJpYnV0ZSB2YWx1ZXMKK1BBU1MgQ2hlY2sgb3JnaW5hbCByZXNwb25zZSdzIGJvZHkgYWZ0
ZXIgY2xvbmluZworUEFTUyBDaGVjayBjbG9uZWQgcmVzcG9uc2UncyBib2R5CitQQVNTIENhbm5v
dCBjbG9uZSBhIGRpc3R1cmJlZCByZXNwb25zZQorUEFTUyBDbG9uZWQgcmVzcG9uc2VzIHNob3Vs
ZCBwcm92aWRlIHRoZSBzYW1lIGRhdGEKK1BBU1MgQ2FuY2VsbGluZyBzdHJlYW0gc2hvdWxkIG5v
dCBhZmZlY3QgY2xvbmVkIG9uZQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0
dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChJbnQ4QXJyYXljaHVuaykKK1BBU1Mg
Q2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxl
U3RyZWFtcyAoSW50MTZBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ug
c3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChJbnQzMkFycmF5Y2h1bmsp
CitGQUlMIENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBS
ZWFkYWJsZVN0cmVhbXMgKEFycmF5QnVmZmVyY2h1bmspIGFzc2VydF9hcnJheV9lcXVhbHM6IENs
b25lZCBidWZmZXIgY2h1bmtzIGhhdmUgdGhlIHNhbWUgY29udGVudCB2YWx1ZSBpcyBvYmplY3Qg
IltvYmplY3QgQXJyYXlCdWZmZXJdIiwgZXhwZWN0ZWQgYXJyYXkKK1BBU1MgQ2hlY2sgcmVzcG9u
c2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoVWlu
dDhBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xv
bmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChVaW50OENsYW1wZWRBcnJheWNodW5rKQorUEFT
UyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFi
bGVTdHJlYW1zIChVaW50MTZBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1
c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChVaW50MzJBcnJheWNo
dW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRl
ZWQgUmVhZGFibGVTdHJlYW1zIChGbG9hdDMyQXJyYXljaHVuaykKK1BBU1MgQ2hlY2sgcmVzcG9u
c2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoRmxv
YXQ2NEFycmF5Y2h1bmspCitGQUlMIENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVD
bG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKERhdGFWaWV3Y2h1bmspIGFzc2VydF9hcnJh
eV9lcXVhbHM6IENsb25lZCBidWZmZXIgY2h1bmtzIGhhdmUgdGhlIHNhbWUgY29udGVudCB2YWx1
ZSBpcyBvYmplY3QgIltvYmplY3QgRGF0YVZpZXddIiwgZXhwZWN0ZWQgYXJyYXkKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY2xvbmUuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1
NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1j
bG9uZS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVx
dWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVk
IHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2UtY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25lLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyMjUxNDE2ODQ3NmY1ZTI5N2ZmMzkwMWFiYTJkZmE1YTYz
M2RmZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2UtY2xvbmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi08
IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci0gICAgPHRpdGxlPlJlc3BvbnNlIGNsb25lPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRw
czovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2UiPgotICAgIDxtZXRhIG5hbWU9ImF1
dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3Jm
LmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQ+Ci0gICAgICB2YXIgZGVm
YXVsdFZhbHVlcyA9IHsgInR5cGUiIDogImRlZmF1bHQiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ1cmwiIDogIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9rIiA6IHRy
dWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyIgOiAyMDAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN0YXR1c1RleHQiIDogIiIKLSAgICAgIH07Ci0KLSAgICAg
IHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpOwotICAgICAgdmFyIGNsb25lZFJlc3BvbnNl
ID0gcmVzcG9uc2UuY2xvbmUoKTsKLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGZv
ciAodmFyIGF0dHJpYnV0ZU5hbWUgaW4gZGVmYXVsdFZhbHVlcykgewotICAgICAgICAgICAgdmFy
IGV4cGVjdGVkVmFsdWUgPSBkZWZhdWx0VmFsdWVzW2F0dHJpYnV0ZU5hbWVdOwotICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjbG9uZWRSZXNwb25zZVthdHRyaWJ1dGVOYW1lXSwgZXhwZWN0ZWRW
YWx1ZSwKLSAgICAgICAgICAgICAgIkV4cGVjdCBkZWZhdWx0IHJlc3BvbnNlLiIgKyBhdHRyaWJ1
dGVOYW1lICsgIiBpcyAiICsgZXhwZWN0ZWRWYWx1ZSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJD
aGVjayBSZXNwb25zZSdzIGNsb25lIHdpdGggZGVmYXVsdCB2YWx1ZXMsIHdpdGhvdXQgYm9keSIp
OwotCi0gICAgICB2YXIgYm9keSA9ICJUaGlzIGlzIHJlc3BvbnNlIGJvZHkiOwotICAgICAgdmFy
IGhlYWRlcnNJbml0ID0geyAibmFtZSIgOiAidmFsdWUiIH07Ci0gICAgICB2YXIgcmVzcG9uc2VJ
bml0ICA9IHsgInN0YXR1cyIgOiAyMDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1c1RleHQiIDogIkdPT0QiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWFkZXJz
IiA6IGhlYWRlcnNJbml0Ci0gICAgICB9OwotICAgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3Bv
bnNlKGJvZHksIHJlc3BvbnNlSW5pdCk7Ci0gICAgICB2YXIgY2xvbmVkUmVzcG9uc2UgPSByZXNw
b25zZS5jbG9uZSgpOwotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjbG9uZWRSZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlSW5pdFsic3RhdHVzIl0sCi0gICAg
ICAgICAgIkV4cGVjdCByZXNwb25zZS5zdGF0dXMgaXMgIiArIHJlc3BvbnNlSW5pdFsic3RhdHVz
Il0pOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGNsb25lZFJlc3BvbnNlLnN0YXR1c1RleHQsIHJl
c3BvbnNlSW5pdFsic3RhdHVzVGV4dCJdLAotICAgICAgICAgICJFeHBlY3QgcmVzcG9uc2Uuc3Rh
dHVzVGV4dCBpcyAiICsgcmVzcG9uc2VJbml0WyJzdGF0dXNUZXh0Il0pOwotICAgICAgICBhc3Nl
cnRfZXF1YWxzKGNsb25lZFJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJuYW1lIiksICJ2YWx1ZSIsCi0g
ICAgICAgICAgIkV4cGVjdCByZXNwb25zZS5oZWFkZXJzIGhhcyBuYW1lOnZhbHVlIGhlYWRlciIp
OwotICAgICAgfSwgIkNoZWNrIFJlc3BvbnNlJ3MgY2xvbmUgaGFzIHRoZSBleHBlY3RlZCBhdHRy
aWJ1dGUgdmFsdWVzIik7Ci0KLSAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0g
ICAgICAgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmcocmVzcG9uc2UuYm9keS5nZXRS
ZWFkZXIoKSwgYm9keSk7Ci0gICAgICB9LCAiQ2hlY2sgb3JnaW5hbCByZXNwb25zZSdzIGJvZHkg
YWZ0ZXIgY2xvbmluZyIpOwotCi0gICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewot
ICAgICAgICByZXR1cm4gdmFsaWRhdGVTdHJlYW1Gcm9tU3RyaW5nKGNsb25lZFJlc3BvbnNlLmJv
ZHkuZ2V0UmVhZGVyKCksIGJvZHkpOwotICAgICAgfSwgIkNoZWNrIGNsb25lZCByZXNwb25zZSdz
IGJvZHkiKTsKLQotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAg
dmFyIGRpc3R1cmJlZFJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCJkYXRhIik7Ci0gICAgICAgIHJl
dHVybiBkaXN0dXJiZWRSZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgIGFzc2VydF90cnVlKGRpc3R1cmJlZFJlc3BvbnNlLmJvZHlVc2VkLCAicmVzcG9uc2UgaXMg
ZGlzdHVyYmVkIik7Ci0gICAgICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVu
Y3Rpb24oKSB7IGRpc3R1cmJlZFJlc3BvbnNlLmNsb25lKCk7IH0sCi0gICAgICAgICAgICAgICJF
eHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOwotICAgICAgICB9KTsKLSAgICAgIH0sICJDYW5u
b3QgY2xvbmUgYSBkaXN0dXJiZWQgcmVzcG9uc2UiKTsKLQotICAgIHByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7Ci0gICAgICAgIHZhciBjbG9uZTsKLSAgICAgICAgdmFyIHJlc3VsdDsKLSAgICAg
ICAgdmFyIHJlc3BvbnNlOwotICAgICAgICByZXR1cm4gZmV0Y2goJy4uL3Jlc291cmNlcy90cmlj
a2xlLnB5P2NvdW50PTImZGVsYXk9MTAwJykudGhlbihmdW5jdGlvbihyZXMpIHsKLSAgICAgICAg
ICAgIGNsb25lID0gcmVzLmNsb25lKCk7Ci0gICAgICAgICAgICByZXNwb25zZSA9IHJlczsKLSAg
ICAgICAgICAgIHJldHVybiBjbG9uZS50ZXh0KCk7Ci0gICAgICAgIH0pLnRoZW4oZnVuY3Rpb24o
cikgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyLmxlbmd0aCwgMjYpOwotICAgICAgICAg
ICAgcmVzdWx0ID0gcjsKLSAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7Ci0gICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyLCBy
ZXN1bHQsICJjbG9uZWQgcmVzcG9uc2VzIHNob3VsZCBwcm92aWRlIHRoZSBzYW1lIGRhdGEiKTsK
LSAgICAgICAgfSk7Ci0gICAgIH0sICdDbG9uZWQgcmVzcG9uc2VzIHNob3VsZCBwcm92aWRlIHRo
ZSBzYW1lIGRhdGEnKTsKLQotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgICAg
IHZhciBjbG9uZTsKLSAgICAgICAgcmV0dXJuIGZldGNoKCcuLi9yZXNvdXJjZXMvdHJpY2tsZS5w
eT9jb3VudD0yJmRlbGF5PTEwMCcpLnRoZW4oZnVuY3Rpb24ocmVzKSB7Ci0gICAgICAgICAgICBj
bG9uZSA9IHJlcy5jbG9uZSgpOwotICAgICAgICAgICAgcmVzLmJvZHkuY2FuY2VsKCk7Ci0gICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShyZXMuYm9keVVzZWQpOwotICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKGNsb25lLmJvZHlVc2VkKTsKLSAgICAgICAgICAgIHJldHVybiBjbG9uZS5hcnJheUJ1ZmZl
cigpOwotICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKHIpIHsKLSAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoci5ieXRlTGVuZ3RoLCAyNik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShjbG9uZS5i
b2R5VXNlZCk7Ci0gICAgICAgIH0pOwotICAgIH0sICdDYW5jZWxsaW5nIHN0cmVhbSBzaG91bGQg
bm90IGFmZmVjdCBjbG9uZWQgb25lJyk7Ci0KLWZ1bmN0aW9uIHRlc3RSZWFkYWJsZVN0cmVhbUNs
b25lKGluaXRpYWxCdWZmZXIsIGJ1ZmZlclR5cGUpCi17Ci0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG5ldyBSZWFk
YWJsZVN0cmVhbSh7c3RhcnQgOiBmdW5jdGlvbihjb250cm9sbGVyKSB7Ci0gICAgICAgICAgICBj
b250cm9sbGVyLmVucXVldWUoaW5pdGlhbEJ1ZmZlcik7Ci0gICAgICAgICAgICBjb250cm9sbGVy
LmNsb3NlKCk7Ci0gICAgICAgIH19KSk7Ci0KLSAgICAgICAgdmFyIGNsb25lID0gcmVzcG9uc2Uu
Y2xvbmUoKTsKLSAgICAgICAgdmFyIHN0cmVhbTEgPSByZXNwb25zZS5ib2R5OwotICAgICAgICB2
YXIgc3RyZWFtMiA9IGNsb25lLmJvZHk7Ci0KLSAgICAgICAgdmFyIGJ1ZmZlcjsKLSAgICAgICAg
cmV0dXJuIHN0cmVhbTEuZ2V0UmVhZGVyKCkucmVhZCgpLnRoZW4oZnVuY3Rpb24oZGF0YSkgewot
ICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRhdGEuZG9uZSk7Ci0gICAgICAgICAgICBhc3NlcnRf
dHJ1ZShkYXRhLnZhbHVlID09PSBpbml0aWFsQnVmZmVyLCAiQnVmZmVyIG9mIGJlaW5nLWNsb25l
ZCByZXNwb25zZSBzdHJlYW0gaXMgdGhlIHNhbWUgYXMgdGhlIG9yaWdpbmFsIGJ1ZmZlciIpOwot
ICAgICAgICAgICAgcmV0dXJuIHN0cmVhbTIuZ2V0UmVhZGVyKCkucmVhZCgpOwotICAgICAgICB9
KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZShkYXRhLmRv
bmUpOwotICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhkYXRhLnZhbHVlLCBpbml0aWFs
QnVmZmVyLCAiQ2xvbmVkIGJ1ZmZlciBjaHVua3MgaGF2ZSB0aGUgc2FtZSBjb250ZW50Iik7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZihkYXRhLnZhbHVl
KSwgT2JqZWN0LmdldFByb3RvdHlwZU9mKGluaXRpYWxCdWZmZXIpLCAiQ2xvbmVkIGJ1ZmZlcnMg
aGF2ZSB0aGUgc2FtZSB0eXBlIik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYXRhLnZhbHVl
ICE9PSBpbml0aWFsQnVmZmVyLCAiQnVmZmVyIG9mIGNsb25lZCByZXNwb25zZSBzdHJlYW0gaXMg
YSBjbG9uZSBvZiB0aGUgb3JpZ2luYWwgYnVmZmVyIik7Ci0gICAgICAgIH0pOwotICAgIH0sICJD
aGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVT
dHJlYW1zICgiICsgYnVmZmVyVHlwZSAgKyAiY2h1bmspIik7Ci19Ci0KLXZhciBhcnJheUJ1ZmZl
ciA9IG5ldyBBcnJheUJ1ZmZlcigxNik7Ci10ZXN0UmVhZGFibGVTdHJlYW1DbG9uZShuZXcgSW50
OEFycmF5KGFycmF5QnVmZmVyLCAxKSwgIkludDhBcnJheSIpOwotdGVzdFJlYWRhYmxlU3RyZWFt
Q2xvbmUobmV3IEludDE2QXJyYXkoYXJyYXlCdWZmZXIsIDIsIDIpLCAiSW50MTZBcnJheSIpOwot
dGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUobmV3IEludDMyQXJyYXkoYXJyYXlCdWZmZXIpLCAiSW50
MzJBcnJheSIpOwotdGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUoYXJyYXlCdWZmZXIsICJBcnJheUJ1
ZmZlciIpOwotdGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZm
ZXIpLCAiVWludDhBcnJheSIpOwotdGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUobmV3IFVpbnQ4Q2xh
bXBlZEFycmF5KGFycmF5QnVmZmVyKSwgIlVpbnQ4Q2xhbXBlZEFycmF5Iik7Ci10ZXN0UmVhZGFi
bGVTdHJlYW1DbG9uZShuZXcgVWludDE2QXJyYXkoYXJyYXlCdWZmZXIsIDIpLCAiVWludDE2QXJy
YXkiKTsKLXRlc3RSZWFkYWJsZVN0cmVhbUNsb25lKG5ldyBVaW50MzJBcnJheShhcnJheUJ1ZmZl
ciksICJVaW50MzJBcnJheSIpOwotdGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUobmV3IEZsb2F0MzJB
cnJheShhcnJheUJ1ZmZlciksICJGbG9hdDMyQXJyYXkiKTsKLXRlc3RSZWFkYWJsZVN0cmVhbUNs
b25lKG5ldyBGbG9hdDY0QXJyYXkoYXJyYXlCdWZmZXIpLCAiRmxvYXQ2NEFycmF5Iik7Ci10ZXN0
UmVhZGFibGVTdHJlYW1DbG9uZShuZXcgRGF0YVZpZXcoYXJyYXlCdWZmZXIsIDIsIDgpLCAiRGF0
YVZpZXciKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtY29uc3VtZS1lbXB0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25z
ZS1jb25zdW1lLWVtcHR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTk2OWU4MjU3Mzg4MjVjZjAwNDUyOTRlMDVlMjllYmRiYTExNDhkMS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1l
LWVtcHR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLQotUEFT
UyBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keSBhcyB0ZXh0Ci1QQVNTIENvbnN1bWUgcmVzcG9uc2Un
cyBib2R5IGFzIGJsb2IKLVBBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgYXJyYXlCdWZm
ZXIKLVBBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMganNvbiAoZXJyb3IgY2FzZSkKLUZB
SUwgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgZm9ybURhdGEgd2l0aCBjb3JyZWN0IG11bHRp
cGFydCB0eXBlIChlcnJvciBjYXNlKSBwcm9taXNlX3JlamVjdHNfanM6IGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgdW5kZWZpbmVkIHdpdGggdHlwZSAidW5kZWZpbmVk
Iiwgbm90IGFuIG9iamVjdAotRkFJTCBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keSBhcyBmb3JtRGF0
YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2RlZCB0eXBlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKLUZBSUwgQ29uc3VtZSByZXNwb25zZSdzIGJv
ZHkgYXMgZm9ybURhdGEgd2l0aG91dCBjb3JyZWN0IHR5cGUgKGVycm9yIGNhc2UpIHByb21pc2Vf
cmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyB1bmRl
ZmluZWQgd2l0aCB0eXBlICJ1bmRlZmluZWQiLCBub3QgYW4gb2JqZWN0Ci1QQVNTIENvbnN1bWUg
ZW1wdHkgYmxvYiByZXNwb25zZSBib2R5IGFzIGFycmF5QnVmZmVyCi1QQVNTIENvbnN1bWUgZW1w
dHkgdGV4dCByZXNwb25zZSBib2R5IGFzIGFycmF5QnVmZmVyCi1QQVNTIENvbnN1bWUgZW1wdHkg
YmxvYiByZXNwb25zZSBib2R5IGFzIHRleHQKLVBBU1MgQ29uc3VtZSBlbXB0eSB0ZXh0IHJlc3Bv
bnNlIGJvZHkgYXMgdGV4dAotUEFTUyBDb25zdW1lIGVtcHR5IFVSTFNlYXJjaFBhcmFtcyByZXNw
b25zZSBib2R5IGFzIHRleHQKLUZBSUwgQ29uc3VtZSBlbXB0eSBGb3JtRGF0YSByZXNwb25zZSBi
b2R5IGFzIHRleHQgYXNzZXJ0X2VxdWFsczogUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5
IGV4cGVjdGVkIDAgYnV0IGdvdCA0NAotUEFTUyBDb25zdW1lIGVtcHR5IEFycmF5QnVmZmVyIHJl
c3BvbnNlIGJvZHkgYXMgdGV4dAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1l
LWVtcHR5LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LmFu
eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk2OWU4MjU3Mzg4MjVjZjAwNDUyOTRlMDVlMjll
YmRiYTExNDhkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1w
dHkuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACisKK1BBU1MgQ29uc3VtZSByZXNw
b25zZSdzIGJvZHkgYXMgdGV4dAorUEFTUyBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keSBhcyBibG9i
CitQQVNTIENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1
bWUgcmVzcG9uc2UncyBib2R5IGFzIGpzb24gKGVycm9yIGNhc2UpCitGQUlMIENvbnN1bWUgcmVz
cG9uc2UncyBib2R5IGFzIGZvcm1EYXRhIHdpdGggY29ycmVjdCBtdWx0aXBhcnQgdHlwZSAoZXJy
b3IgY2FzZSkgcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJv
dyBlIH0iIHRocmV3IHVuZGVmaW5lZCB3aXRoIHR5cGUgInVuZGVmaW5lZCIsIG5vdCBhbiBvYmpl
Y3QKK0ZBSUwgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgZm9ybURhdGEgd2l0aCBjb3JyZWN0
IHVybGVuY29kZWQgdHlwZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogdW5kZWZpbmVkCitGQUlMIENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGZvcm1EYXRh
IHdpdGhvdXQgY29ycmVjdCB0eXBlIChlcnJvciBjYXNlKSBwcm9taXNlX3JlamVjdHNfanM6IGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgdW5kZWZpbmVkIHdpdGggdHlw
ZSAidW5kZWZpbmVkIiwgbm90IGFuIG9iamVjdAorUEFTUyBDb25zdW1lIGVtcHR5IGJsb2IgcmVz
cG9uc2UgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25zdW1lIGVtcHR5IHRleHQgcmVzcG9u
c2UgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25zdW1lIGVtcHR5IGJsb2IgcmVzcG9uc2Ug
Ym9keSBhcyB0ZXh0CitQQVNTIENvbnN1bWUgZW1wdHkgdGV4dCByZXNwb25zZSBib2R5IGFzIHRl
eHQKK1BBU1MgQ29uc3VtZSBlbXB0eSBVUkxTZWFyY2hQYXJhbXMgcmVzcG9uc2UgYm9keSBhcyB0
ZXh0CitGQUlMIENvbnN1bWUgZW1wdHkgRm9ybURhdGEgcmVzcG9uc2UgYm9keSBhcyB0ZXh0IGFz
c2VydF9lcXVhbHM6IFJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSBleHBlY3RlZCAwIGJ1
dCBnb3QgNDQKK1BBU1MgQ29uc3VtZSBlbXB0eSBBcnJheUJ1ZmZlciByZXNwb25zZSBib2R5IGFz
IHRleHQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1lbXB0eS5hbnkuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1wdHkuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4
MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1wdHkuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRv
IHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1lbXB0eS5hbnkuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1jb25zdW1lLWVtcHR5LmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmE4NWVjYmNiMmQ3Yjkw
OTMzMDdiMTg5YzM5MmFhOWM1MjhkOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY29uc3VtZS1lbXB0eS5hbnkuanMKQEAgLTAsMCArMSw5OSBAQAorLy8gTUVUQTogZ2xvYmFs
PXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPVJlc3BvbnNlIGNvbnN1bWUgZW1wdHkgYm9k
aWVzCisKK2Z1bmN0aW9uIGNoZWNrQm9keVRleHQodGVzdCwgcmVzcG9uc2UpIHsKKyAgcmV0dXJu
IHJlc3BvbnNlLnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsKKyAgICBhc3NlcnRf
ZXF1YWxzKGJvZHlBc1RleHQsICIiLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7
CisgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkKTsKKyAgfSk7Cit9CisKK2Z1bmN0
aW9uIGNoZWNrQm9keUJsb2IodGVzdCwgcmVzcG9uc2UpIHsKKyAgcmV0dXJuIHJlc3BvbnNlLmJs
b2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2IpIHsKKyAgICB2YXIgcHJvbWlzZSA9IG5ldyBQ
cm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIHJlYWRlciA9IG5l
dyBGaWxlUmVhZGVyKCk7CisgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZXZ0KSB7Cisg
ICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCkKKyAgICAgIH07CisgICAgICByZWFkZXIub25l
cnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICByZWplY3QoIkJsb2IncyByZWFkZXIgZmFpbGVk
Iik7CisgICAgICB9OworICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYm9keUFzQmxvYik7CisgICAg
fSk7CisgICAgcmV0dXJuIHByb21pc2UudGhlbihmdW5jdGlvbihib2R5KSB7CisgICAgICBhc3Nl
cnRfZXF1YWxzKGJvZHksICIiLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7Cisg
ICAgICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQpOworICAgIH0pOworICB9KTsKK30K
KworZnVuY3Rpb24gY2hlY2tCb2R5QXJyYXlCdWZmZXIodGVzdCwgcmVzcG9uc2UpIHsKKyAgcmV0
dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbihib2R5QXNBcnJheUJ1ZmZl
cikgeworICAgIGFzc2VydF9lcXVhbHMoYm9keUFzQXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCwgMCwg
IlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOworICAgIGFzc2VydF9mYWxzZShyZXNw
b25zZS5ib2R5VXNlZCk7CisgIH0pOworfQorCitmdW5jdGlvbiBjaGVja0JvZHlKU09OKHRlc3Qs
IHJlc3BvbnNlKSB7CisgIHJldHVybiByZXNwb25zZS5qc29uKCkudGhlbigKKyAgICBmdW5jdGlv
bihib2R5QXNKU09OKSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJKU09OIHBhcnNpbmcgc2hv
dWxkIGZhaWwiKTsKKyAgICB9LAorICAgIGZ1bmN0aW9uKCkgeworICAgICAgYXNzZXJ0X2ZhbHNl
KHJlc3BvbnNlLmJvZHlVc2VkKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY2hlY2tCb2R5Rm9y
bURhdGEodGVzdCwgcmVzcG9uc2UpIHsKKyAgcmV0dXJuIHJlc3BvbnNlLmZvcm1EYXRhKCkudGhl
bihmdW5jdGlvbihib2R5QXNGb3JtRGF0YSkgeworICAgIGFzc2VydF90cnVlKGJvZHlBc0Zvcm1E
YXRhIGluc3RhbmNlb2YgRm9ybURhdGEsICJTaG91bGQgcmVjZWl2ZSBhIEZvcm1EYXRhIik7Cisg
ICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9u
IGNoZWNrQm9keUZvcm1EYXRhRXJyb3IodGVzdCwgcmVzcG9uc2UpIHsKKyAgcmV0dXJuIHByb21p
c2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNlLmZvcm1EYXRhKCkpLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkKTsKKyAgfSk7
Cit9CisKK2Z1bmN0aW9uIGNoZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KGJvZHlUeXBlLCBjaGVja0Z1
bmN0aW9uLCBoZWFkZXJzID0gW10pIHsKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsK
KyAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UodW5kZWZpbmVkLCB7ICJoZWFkZXJzIjog
aGVhZGVycyB9KTsKKyAgICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQpOworICAgIHJl
dHVybiBjaGVja0Z1bmN0aW9uKHRlc3QsIHJlc3BvbnNlKTsKKyAgfSwgIkNvbnN1bWUgcmVzcG9u
c2UncyBib2R5IGFzICIgKyBib2R5VHlwZSk7Cit9CisKK2NoZWNrUmVzcG9uc2VXaXRoTm9Cb2R5
KCJ0ZXh0IiwgY2hlY2tCb2R5VGV4dCk7CitjaGVja1Jlc3BvbnNlV2l0aE5vQm9keSgiYmxvYiIs
IGNoZWNrQm9keUJsb2IpOworY2hlY2tSZXNwb25zZVdpdGhOb0JvZHkoImFycmF5QnVmZmVyIiwg
Y2hlY2tCb2R5QXJyYXlCdWZmZXIpOworY2hlY2tSZXNwb25zZVdpdGhOb0JvZHkoImpzb24gKGVy
cm9yIGNhc2UpIiwgY2hlY2tCb2R5SlNPTik7CitjaGVja1Jlc3BvbnNlV2l0aE5vQm9keSgiZm9y
bURhdGEgd2l0aCBjb3JyZWN0IG11bHRpcGFydCB0eXBlIChlcnJvciBjYXNlKSIsIGNoZWNrQm9k
eUZvcm1EYXRhRXJyb3IsIFtbIkNvbnRlbnQtVHlwZSIsICdtdWx0aXBhcnQvZm9ybS1kYXRhOyBi
b3VuZGFyeT0iYm91bmRhcnkiJ11dKTsKK2NoZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KCJmb3JtRGF0
YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2RlZCB0eXBlIiwgY2hlY2tCb2R5Rm9ybURhdGEsIFtbIkNv
bnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1V
VEYtOCJdXSk7CitjaGVja1Jlc3BvbnNlV2l0aE5vQm9keSgiZm9ybURhdGEgd2l0aG91dCBjb3Jy
ZWN0IHR5cGUgKGVycm9yIGNhc2UpIiwgY2hlY2tCb2R5Rm9ybURhdGFFcnJvcik7CisKK2Z1bmN0
aW9uIGNoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KGJvZHlUeXBlLCBib2R5LCBhc1RleHQpIHsK
KyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcg
UmVzcG9uc2UoYm9keSk7CisgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAiYm9k
eVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOworICAgIGlmIChhc1RleHQpIHsKKyAgICAgIHJldHVy
biByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbihib2R5QXNTdHJpbmcpIHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhib2R5QXNTdHJpbmcubGVuZ3RoLCAwLCAiUmVzb2x2ZWQgdmFsdWUgc2hv
dWxkIGJlIGVtcHR5Iik7CisgICAgICAgIGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2VkLCAi
Ym9keVVzZWQgaXMgdHJ1ZSBhZnRlciBiZWluZyBjb25zdW1lZCIpOworICAgICAgfSk7CisgICAg
fQorICAgIHJldHVybiByZXNwb25zZS5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oYm9keUFz
QXJyYXlCdWZmZXIpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMoYm9keUFzQXJyYXlCdWZmZXIuYnl0
ZUxlbmd0aCwgMCwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOworICAgICAgYXNz
ZXJ0X3RydWUocmVzcG9uc2UuYm9keVVzZWQsICJib2R5VXNlZCBpcyB0cnVlIGFmdGVyIGJlaW5n
IGNvbnN1bWVkIik7CisgICAgfSk7CisgIH0sICJDb25zdW1lIGVtcHR5ICIgKyBib2R5VHlwZSAr
ICIgcmVzcG9uc2UgYm9keSBhcyAiICsgKGFzVGV4dCA/ICJ0ZXh0IiA6ICJhcnJheUJ1ZmZlciIp
KTsKK30KKworY2hlY2tSZXNwb25zZVdpdGhFbXB0eUJvZHkoImJsb2IiLCBuZXcgQmxvYihbXSwg
eyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSksIGZhbHNlKTsKK2NoZWNrUmVzcG9uc2VXaXRoRW1w
dHlCb2R5KCJ0ZXh0IiwgIiIsIGZhbHNlKTsKK2NoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJi
bG9iIiwgbmV3IEJsb2IoW10sIHsgInR5cGUiIDogInRleHQvcGxhaW4iIH0pLCB0cnVlKTsKK2No
ZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJ0ZXh0IiwgIiIsIHRydWUpOworY2hlY2tSZXNwb25z
ZVdpdGhFbXB0eUJvZHkoIlVSTFNlYXJjaFBhcmFtcyIsIG5ldyBVUkxTZWFyY2hQYXJhbXMoIiIp
LCB0cnVlKTsKK2NoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJGb3JtRGF0YSIsIG5ldyBGb3Jt
RGF0YSgpLCB0cnVlKTsKK2NoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJBcnJheUJ1ZmZlciIs
IG5ldyBBcnJheUJ1ZmZlcigpLCB0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNv
bnN1bWUtZW1wdHkuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25z
dW1lLWVtcHR5LmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5NjllODI1NzM4
ODI1Y2YwMDQ1Mjk0ZTA1ZTI5ZWJkYmExMTQ4ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1jb25zdW1lLWVtcHR5LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTYgQEAKKworUEFTUyBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keSBhcyB0ZXh0CitQQVNTIENvbnN1
bWUgcmVzcG9uc2UncyBib2R5IGFzIGJsb2IKK1BBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkg
YXMgYXJyYXlCdWZmZXIKK1BBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMganNvbiAoZXJy
b3IgY2FzZSkKK0ZBSUwgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgZm9ybURhdGEgd2l0aCBj
b3JyZWN0IG11bHRpcGFydCB0eXBlIChlcnJvciBjYXNlKSBwcm9taXNlX3JlamVjdHNfanM6IGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgdW5kZWZpbmVkIHdpdGggdHlw
ZSAidW5kZWZpbmVkIiwgbm90IGFuIG9iamVjdAorRkFJTCBDb25zdW1lIHJlc3BvbnNlJ3MgYm9k
eSBhcyBmb3JtRGF0YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2RlZCB0eXBlIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKK0ZBSUwgQ29uc3VtZSBy
ZXNwb25zZSdzIGJvZHkgYXMgZm9ybURhdGEgd2l0aG91dCBjb3JyZWN0IHR5cGUgKGVycm9yIGNh
c2UpIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9
IiB0aHJldyB1bmRlZmluZWQgd2l0aCB0eXBlICJ1bmRlZmluZWQiLCBub3QgYW4gb2JqZWN0CitQ
QVNTIENvbnN1bWUgZW1wdHkgYmxvYiByZXNwb25zZSBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNT
IENvbnN1bWUgZW1wdHkgdGV4dCByZXNwb25zZSBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENv
bnN1bWUgZW1wdHkgYmxvYiByZXNwb25zZSBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBlbXB0
eSB0ZXh0IHJlc3BvbnNlIGJvZHkgYXMgdGV4dAorUEFTUyBDb25zdW1lIGVtcHR5IFVSTFNlYXJj
aFBhcmFtcyByZXNwb25zZSBib2R5IGFzIHRleHQKK0ZBSUwgQ29uc3VtZSBlbXB0eSBGb3JtRGF0
YSByZXNwb25zZSBib2R5IGFzIHRleHQgYXNzZXJ0X2VxdWFsczogUmVzb2x2ZWQgdmFsdWUgc2hv
dWxkIGJlIGVtcHR5IGV4cGVjdGVkIDAgYnV0IGdvdCA0NAorUEFTUyBDb25zdW1lIGVtcHR5IEFy
cmF5QnVmZmVyIHJlc3BvbnNlIGJvZHkgYXMgdGV4dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1jb25zdW1lLWVtcHR5LmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1
bWUtZW1wdHkuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1
NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1j
b25zdW1lLWVtcHR5LmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25z
dW1lLWVtcHR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1ODdlNjM1YzY1
NWExM2M0Y2I3MDVkY2I5NzU2YzYwMzYzMmE1OTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1lbXB0eS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0g
IDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVzcG9uc2Ug
Y29uc3VtZSBlbXB0eSBib2RpZXM8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZSI+Ci0gICAgPG1ldGEgbmFt
ZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4i
PgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIg
aHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5Pgot
ICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gY2hlY2tCb2R5VGV4dCh0ZXN0LCByZXNwb25zZSkg
ewotICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc1RleHQp
IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhib2R5QXNUZXh0LCAiIiwgIlJlc29sdmVkIHZhbHVl
IHNob3VsZCBiZSBlbXB0eSIpOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVz
ZWQpOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY2hlY2tCb2R5QmxvYih0ZXN0
LCByZXNwb25zZSkgewotICAgICAgcmV0dXJuIHJlc3BvbnNlLmJsb2IoKS50aGVuKGZ1bmN0aW9u
KGJvZHlBc0Jsb2IpIHsKLSAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlv
bihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFk
ZXIoKTsKLSAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZXZ0KSB7Ci0gICAgICAg
ICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQpCi0gICAgICAgICAgfTsKLSAgICAgICAgICByZWFk
ZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcmVqZWN0KCJCbG9iJ3MgcmVh
ZGVyIGZhaWxlZCIpOwotICAgICAgICAgIH07Ci0gICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQo
Ym9keUFzQmxvYik7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKGZ1
bmN0aW9uKGJvZHkpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJvZHksICIiLCAiUmVzb2x2
ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7Ci0gICAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlc3Bv
bnNlLmJvZHlVc2VkKTsKLSAgICAgICAgfSk7Ci0gICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBjaGVja0JvZHlBcnJheUJ1ZmZlcih0ZXN0LCByZXNwb25zZSkgewotICAgICAgcmV0dXJu
IHJlc3BvbnNlLmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbihib2R5QXNBcnJheUJ1ZmZlcikg
ewotICAgICAgICBhc3NlcnRfZXF1YWxzKGJvZHlBc0FycmF5QnVmZmVyLmJ5dGVMZW5ndGgsIDAs
ICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNl
KHJlc3BvbnNlLmJvZHlVc2VkKTsKLSAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNo
ZWNrQm9keUpTT04odGVzdCwgcmVzcG9uc2UpIHsKLSAgICAgIHJldHVybiByZXNwb25zZS5qc29u
KCkudGhlbigKLSAgICAgICAgZnVuY3Rpb24oYm9keUFzSlNPTikgewotICAgICAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoIkpTT04gcGFyc2luZyBzaG91bGQgZmFpbCIpOwotICAgICAgICB9LAotICAg
ICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVz
ZWQpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVja0JvZHlGb3JtRGF0
YSh0ZXN0LCByZXNwb25zZSkgewotICAgICAgcmV0dXJuIHJlc3BvbnNlLmZvcm1EYXRhKCkudGhl
bihmdW5jdGlvbihib2R5QXNGb3JtRGF0YSkgewotICAgICAgICBhc3NlcnRfdHJ1ZShib2R5QXNG
b3JtRGF0YSBpbnN0YW5jZW9mIEZvcm1EYXRhLCAiU2hvdWxkIHJlY2VpdmUgYSBGb3JtRGF0YSIp
OwotICAgICAgICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQpOwotICAgICB9KTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVja0JvZHlGb3JtRGF0YUVycm9yKHRlc3QsIHJlc3BvbnNl
KSB7Ci0gICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcmVz
cG9uc2UuZm9ybURhdGEoKSkudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X2ZhbHNl
KHJlc3BvbnNlLmJvZHlVc2VkKTsKLSAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNo
ZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KGJvZHlUeXBlLCBjaGVja0Z1bmN0aW9uLCBoZWFkZXJzID0g
W10pIHsKLSAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgIHZhciBy
ZXNwb25zZSA9IG5ldyBSZXNwb25zZSh1bmRlZmluZWQsIHsgImhlYWRlcnMiOiBoZWFkZXJzIH0p
OwotICAgICAgICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQpOwotICAgICAgICByZXR1
cm4gY2hlY2tGdW5jdGlvbih0ZXN0LCByZXNwb25zZSk7Ci0gICAgICB9LCAiQ29uc3VtZSByZXNw
b25zZSdzIGJvZHkgYXMgIiArIGJvZHlUeXBlKTsKLSAgICB9Ci0KLSAgICBjaGVja1Jlc3BvbnNl
V2l0aE5vQm9keSgidGV4dCIsIGNoZWNrQm9keVRleHQpOwotICAgIGNoZWNrUmVzcG9uc2VXaXRo
Tm9Cb2R5KCJibG9iIiwgY2hlY2tCb2R5QmxvYik7Ci0gICAgY2hlY2tSZXNwb25zZVdpdGhOb0Jv
ZHkoImFycmF5QnVmZmVyIiwgY2hlY2tCb2R5QXJyYXlCdWZmZXIpOwotICAgIGNoZWNrUmVzcG9u
c2VXaXRoTm9Cb2R5KCJqc29uIChlcnJvciBjYXNlKSIsIGNoZWNrQm9keUpTT04pOwotICAgIGNo
ZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KCJmb3JtRGF0YSB3aXRoIGNvcnJlY3QgbXVsdGlwYXJ0IHR5
cGUgKGVycm9yIGNhc2UpIiwgY2hlY2tCb2R5Rm9ybURhdGFFcnJvciwgW1siQ29udGVudC1UeXBl
IiwgJ211bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSJib3VuZGFyeSInXV0pOwotICAgIGNo
ZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KCJmb3JtRGF0YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2RlZCB0
eXBlIiwgY2hlY2tCb2R5Rm9ybURhdGEsIFtbIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi94
LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCJdXSk7Ci0gICAgY2hlY2tSZXNwb25z
ZVdpdGhOb0JvZHkoImZvcm1EYXRhIHdpdGhvdXQgY29ycmVjdCB0eXBlIChlcnJvciBjYXNlKSIs
IGNoZWNrQm9keUZvcm1EYXRhRXJyb3IpOwotCi0gICAgZnVuY3Rpb24gY2hlY2tSZXNwb25zZVdp
dGhFbXB0eUJvZHkoYm9keVR5cGUsIGJvZHksIGFzVGV4dCkgewotICAgICAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKGJv
ZHkpOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQsICJib2R5VXNlZCBp
cyBmYWxzZSBhdCBpbml0Iik7Ci0gICAgICAgIGlmIChhc1RleHQpIHsKLSAgICAgICAgICByZXR1
cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24oYm9keUFzU3RyaW5nKSB7Ci0gICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGJvZHlBc1N0cmluZy5sZW5ndGgsIDAsICJSZXNvbHZlZCB2YWx1
ZSBzaG91bGQgYmUgZW1wdHkiKTsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKHJlc3BvbnNlLmJv
ZHlVc2VkLCAiYm9keVVzZWQgaXMgdHJ1ZSBhZnRlciBiZWluZyBjb25zdW1lZCIpOwotICAgICAg
ICAgIH0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXNwb25zZS5hcnJheUJ1ZmZlcigp
LnRoZW4oZnVuY3Rpb24oYm9keUFzQXJyYXlCdWZmZXIpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGJvZHlBc0FycmF5QnVmZmVyLmJ5dGVMZW5ndGgsIDAsICJSZXNvbHZlZCB2YWx1ZSBzaG91
bGQgYmUgZW1wdHkiKTsKLSAgICAgICAgICBhc3NlcnRfdHJ1ZShyZXNwb25zZS5ib2R5VXNlZCwg
ImJvZHlVc2VkIGlzIHRydWUgYWZ0ZXIgYmVpbmcgY29uc3VtZWQiKTsKLSAgICAgICAgfSk7Ci0g
ICAgICB9LCAiQ29uc3VtZSBlbXB0eSAiICsgYm9keVR5cGUgKyAiIHJlc3BvbnNlIGJvZHkgYXMg
IiArIChhc1RleHQgPyAidGV4dCIgOiAiYXJyYXlCdWZmZXIiKSk7Ci0gICAgfQotCi0gICAgY2hl
Y2tSZXNwb25zZVdpdGhFbXB0eUJvZHkoImJsb2IiLCBuZXcgQmxvYihbXSwgeyAidHlwZSIgOiAi
dGV4dC9wbGFpbiIgfSksIGZhbHNlKTsKLSAgICBjaGVja1Jlc3BvbnNlV2l0aEVtcHR5Qm9keSgi
dGV4dCIsICIiLCBmYWxzZSk7Ci0gICAgY2hlY2tSZXNwb25zZVdpdGhFbXB0eUJvZHkoImJsb2Ii
LCBuZXcgQmxvYihbXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSksIHRydWUpOwotICAgIGNo
ZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJ0ZXh0IiwgIiIsIHRydWUpOwotICAgIGNoZWNrUmVz
cG9uc2VXaXRoRW1wdHlCb2R5KCJVUkxTZWFyY2hQYXJhbXMiLCBuZXcgVVJMU2VhcmNoUGFyYW1z
KCIiKSwgdHJ1ZSk7Ci0gICAgY2hlY2tSZXNwb25zZVdpdGhFbXB0eUJvZHkoIkZvcm1EYXRhIiwg
bmV3IEZvcm1EYXRhKCksIHRydWUpOwotICAgIGNoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJB
cnJheUJ1ZmZlciIsIG5ldyBBcnJheUJ1ZmZlcigpLCB0cnVlKTsKLSAgICA8L3NjcmlwdD4KLSAg
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJl
YW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0tZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NGE2OWQ3NWM1MWFlNjVhMzIwNjgz
OWJmMDBkOWNlYTI4ODVhNmY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLQotUEFTUyBSZWFkIGVtcHR5IHRleHQgcmVzcG9u
c2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCi1QQVNTIFJlYWQgZW1wdHkgYmxvYiByZXNwb25z
ZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KLVBBU1MgUmVhZCBibG9iIHJlc3BvbnNlJ3MgYm9k
eSBhcyByZWFkYWJsZVN0cmVhbQotUEFTUyBSZWFkIHRleHQgcmVzcG9uc2UncyBib2R5IGFzIHJl
YWRhYmxlU3RyZWFtCi1QQVNTIFJlYWQgVVJMU2VhcmNoUGFyYW1zIHJlc3BvbnNlJ3MgYm9keSBh
cyByZWFkYWJsZVN0cmVhbQotUEFTUyBSZWFkIGFycmF5IGJ1ZmZlciByZXNwb25zZSdzIGJvZHkg
YXMgcmVhZGFibGVTdHJlYW0KLUZBSUwgUmVhZCBmb3JtIGRhdGEgcmVzcG9uc2UncyBib2R5IGFz
IHJlYWRhYmxlU3RyZWFtIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBOb3QgaW1wbGVtZW50ZWQiCi1QQVNTIEdl
dHRpbmcgYW4gZXJyb3IgUmVzcG9uc2Ugc3RyZWFtCi1QQVNTIEdldHRpbmcgYSByZWRpcmVjdCBS
ZXNwb25zZSBzdHJlYW0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJl
YW0uYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRhNjlkNzVjNTFhZTY1YTMyMDY4MzliZjAwZDljZWEy
ODg1YTZmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFt
LmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorCitQQVNTIFJlYWQgZW1wdHkgdGV4
dCByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KK1BBU1MgUmVhZCBlbXB0eSBibG9i
IHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQorUEFTUyBSZWFkIGJsb2IgcmVzcG9u
c2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCitQQVNTIFJlYWQgdGV4dCByZXNwb25zZSdzIGJv
ZHkgYXMgcmVhZGFibGVTdHJlYW0KK1BBU1MgUmVhZCBVUkxTZWFyY2hQYXJhbXMgcmVzcG9uc2Un
cyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCitQQVNTIFJlYWQgYXJyYXkgYnVmZmVyIHJlc3BvbnNl
J3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQorRkFJTCBSZWFkIGZvcm0gZGF0YSByZXNwb25zZSdz
IGJvZHkgYXMgcmVhZGFibGVTdHJlYW0gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IE5vdCBpbXBsZW1lbnRlZCIK
K1BBU1MgR2V0dGluZyBhbiBlcnJvciBSZXNwb25zZSBzdHJlYW0KK1BBU1MgR2V0dGluZyBhIHJl
ZGlyZWN0IFJlc3BvbnNlIHN0cmVhbQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25z
dW1lLXN0cmVhbS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS5hbnkuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0
cmVhbS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS5hbnkuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDViMGMzODhjYzc1YjZlZDVmY2UzZGYyMWYzZWNjZWI4YWM2MDZkNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS5qcwpAQCAtMCwwICsx
LDU5IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogdGl0bGU9UmVz
cG9uc2UgY29uc3VtZQorLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcworCitw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZhciBib2R5ID0gIiI7CisgICAgdmFy
IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCIiKTsKKyAgICByZXR1cm4gdmFsaWRhdGVTdHJlYW1G
cm9tU3RyaW5nKHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCksICIiKTsKK30sICJSZWFkIGVtcHR5
IHRleHQgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIik7CisKK3Byb21pc2VfdGVz
dChmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG5ldyBC
bG9iKFtdLCB7ICJ0eXBlIiA6ICJ0ZXh0L3BsYWluIiB9KSk7CisgICAgcmV0dXJuIHZhbGlkYXRl
U3RyZWFtRnJvbVN0cmluZyhyZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLCAiIik7Cit9LCAiUmVh
ZCBlbXB0eSBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSIpOworCit2YXIg
Zm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKK2Zvcm1EYXRhLmFwcGVuZCgibmFtZSIsICJ2YWx1
ZSIpOwordmFyIHRleHREYXRhID0gSlNPTi5zdHJpbmdpZnkoIlRoaXMgaXMgcmVzcG9uc2UncyBi
b2R5Iik7Cit2YXIgYmxvYiA9IG5ldyBCbG9iKFt0ZXh0RGF0YV0sIHsgInR5cGUiIDogInRleHQv
cGxhaW4iIH0pOwordmFyIHVybFNlYXJjaFBhcmFtc0RhdGEgPSAibmFtZT12YWx1ZSI7Cit2YXIg
dXJsU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmxTZWFyY2hQYXJhbXNEYXRh
KTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVzcG9uc2UgPSBu
ZXcgUmVzcG9uc2UoYmxvYik7CisgICAgcmV0dXJuIHZhbGlkYXRlU3RyZWFtRnJvbVN0cmluZyhy
ZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLCB0ZXh0RGF0YSk7Cit9LCAiUmVhZCBibG9iIHJlc3Bv
bnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dGVzdCkgeworICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSh0ZXh0RGF0YSk7CisgICAg
cmV0dXJuIHZhbGlkYXRlU3RyZWFtRnJvbVN0cmluZyhyZXNwb25zZS5ib2R5LmdldFJlYWRlcigp
LCB0ZXh0RGF0YSk7Cit9LCAiUmVhZCB0ZXh0IHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0
cmVhbSIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZhciByZXNwb25z
ZSA9IG5ldyBSZXNwb25zZSh1cmxTZWFyY2hQYXJhbXMpOworICAgIHJldHVybiB2YWxpZGF0ZVN0
cmVhbUZyb21TdHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgdXJsU2VhcmNoUGFyYW1z
RGF0YSk7Cit9LCAiUmVhZCBVUkxTZWFyY2hQYXJhbXMgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRh
YmxlU3RyZWFtIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIGFy
cmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHRleHREYXRhLmxlbmd0aCk7CisgICAgdmFyIGlu
dDhBcnJheSA9IG5ldyBJbnQ4QXJyYXkoYXJyYXlCdWZmZXIpOworICAgIGZvciAodmFyIGNwdHIg
PSAwOyBjcHRyIDwgdGV4dERhdGEubGVuZ3RoOyBjcHRyKyspCisgICAgICAgIGludDhBcnJheVtj
cHRyXSA9IHRleHREYXRhLmNoYXJDb2RlQXQoY3B0cik7CisKKyAgICByZXR1cm4gdmFsaWRhdGVT
dHJlYW1Gcm9tU3RyaW5nKG5ldyBSZXNwb25zZShhcnJheUJ1ZmZlcikuYm9keS5nZXRSZWFkZXIo
KSwgdGV4dERhdGEpOworfSwgIlJlYWQgYXJyYXkgYnVmZmVyIHJlc3BvbnNlJ3MgYm9keSBhcyBy
ZWFkYWJsZVN0cmVhbSIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZh
ciByZXNwb25zZSA9IG5ldyBSZXNwb25zZShmb3JtRGF0YSk7CisgICAgcmV0dXJuIHZhbGlkYXRl
U3RyZWFtRnJvbVBhcnRpYWxTdHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwKKyAgICAg
ICJDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9XCJuYW1lXCJcclxuXHJcbnZh
bHVlIik7Cit9LCAiUmVhZCBmb3JtIGRhdGEgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3Ry
ZWFtIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X2VxdWFscyhSZXNwb25zZS5l
cnJvcigpLmJvZHksIG51bGwpOworfSwgIkdldHRpbmcgYW4gZXJyb3IgUmVzcG9uc2Ugc3RyZWFt
Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X2VxdWFscyhSZXNwb25zZS5yZWRp
cmVjdCgiLyIpLmJvZHksIG51bGwpOworfSwgIkdldHRpbmcgYSByZWRpcmVjdCBSZXNwb25zZSBz
dHJlYW0iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55Lndv
cmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRhNjlkNzVjNTFhZTY1YTMyMDY4MzliZjAw
ZDljZWEyODg1YTZmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUt
c3RyZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKKworUEFTUyBS
ZWFkIGVtcHR5IHRleHQgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCitQQVNTIFJl
YWQgZW1wdHkgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KK1BBU1MgUmVh
ZCBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQorUEFTUyBSZWFkIHRleHQg
cmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCitQQVNTIFJlYWQgVVJMU2VhcmNoUGFy
YW1zIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQorUEFTUyBSZWFkIGFycmF5IGJ1
ZmZlciByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KK0ZBSUwgUmVhZCBmb3JtIGRh
dGEgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBOb3Qg
aW1wbGVtZW50ZWQiCitQQVNTIEdldHRpbmcgYW4gZXJyb3IgUmVzcG9uc2Ugc3RyZWFtCitQQVNT
IEdldHRpbmcgYSByZWRpcmVjdCBSZXNwb25zZSBzdHJlYW0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
Y29uc3VtZS1zdHJlYW0uYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkz
YjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1jb25zdW1lLXN0cmVhbS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1
biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWNvbnN1bWUtc3RyZWFtLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhh
OTdmYTBjOTBmNDhiZGFjMDhiMGFkYjI3ZTJkOGE2MTllOTc2MjEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJl
YW0uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgot
PGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+
UmVzcG9uc2UgY29uc3VtZTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KLSAgICA8bWV0YSBuYW1lPSJo
ZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keS1taXhpbiI+Ci0g
ICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVm
PSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy91dGlscy5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlw
dD4KLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICB2YXIgYm9keSA9ICIiOwot
ICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSgiIik7Ci0gICAgcmV0dXJuIHZhbGlkYXRl
U3RyZWFtRnJvbVN0cmluZyhyZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLCAiIik7Ci19LCAiUmVh
ZCBlbXB0eSB0ZXh0IHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSIpOwotCi1wcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25z
ZShuZXcgQmxvYihbXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSkpOwotICAgIHJldHVybiB2
YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgIiIpOwot
fSwgIlJlYWQgZW1wdHkgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsK
LQotdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7Ci1mb3JtRGF0YS5hcHBlbmQoIm5hbWUi
LCAidmFsdWUiKTsKLXZhciB0ZXh0RGF0YSA9IEpTT04uc3RyaW5naWZ5KCJUaGlzIGlzIHJlc3Bv
bnNlJ3MgYm9keSIpOwotdmFyIGJsb2IgPSBuZXcgQmxvYihbdGV4dERhdGFdLCB7ICJ0eXBlIiA6
ICJ0ZXh0L3BsYWluIiB9KTsKLXZhciB1cmxTZWFyY2hQYXJhbXNEYXRhID0gIm5hbWU9dmFsdWUi
OwotdmFyIHVybFNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsU2VhcmNoUGFy
YW1zRGF0YSk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgdmFyIHJlc3Bv
bnNlID0gbmV3IFJlc3BvbnNlKGJsb2IpOwotICAgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21T
dHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgdGV4dERhdGEpOwotfSwgIlJlYWQgYmxv
YiByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsKLQotcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHRlc3QpIHsKLSAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UodGV4dERhdGEp
OwotICAgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmcocmVzcG9uc2UuYm9keS5nZXRS
ZWFkZXIoKSwgdGV4dERhdGEpOwotfSwgIlJlYWQgdGV4dCByZXNwb25zZSdzIGJvZHkgYXMgcmVh
ZGFibGVTdHJlYW0iKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICB2YXIg
cmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UodXJsU2VhcmNoUGFyYW1zKTsKLSAgICByZXR1cm4gdmFs
aWRhdGVTdHJlYW1Gcm9tU3RyaW5nKHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCksIHVybFNlYXJj
aFBhcmFtc0RhdGEpOwotfSwgIlJlYWQgVVJMU2VhcmNoUGFyYW1zIHJlc3BvbnNlJ3MgYm9keSBh
cyByZWFkYWJsZVN0cmVhbSIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAg
IHZhciBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcih0ZXh0RGF0YS5sZW5ndGgpOwotICAg
IHZhciBpbnQ4QXJyYXkgPSBuZXcgSW50OEFycmF5KGFycmF5QnVmZmVyKTsKLSAgICBmb3IgKHZh
ciBjcHRyID0gMDsgY3B0ciA8IHRleHREYXRhLmxlbmd0aDsgY3B0cisrKQotICAgICAgICBpbnQ4
QXJyYXlbY3B0cl0gPSB0ZXh0RGF0YS5jaGFyQ29kZUF0KGNwdHIpOwotCi0gICAgcmV0dXJuIHZh
bGlkYXRlU3RyZWFtRnJvbVN0cmluZyhuZXcgUmVzcG9uc2UoYXJyYXlCdWZmZXIpLmJvZHkuZ2V0
UmVhZGVyKCksIHRleHREYXRhKTsKLX0sICJSZWFkIGFycmF5IGJ1ZmZlciByZXNwb25zZSdzIGJv
ZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsK
LSAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoZm9ybURhdGEpOwotICAgIHJldHVybiB2
YWxpZGF0ZVN0cmVhbUZyb21QYXJ0aWFsU3RyaW5nKHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCks
Ci0gICAgICAiQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwibmFtZVwiXHJc
blxyXG52YWx1ZSIpOwotfSwgIlJlYWQgZm9ybSBkYXRhIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFk
YWJsZVN0cmVhbSIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGFzc2VydF9lcXVhbHMoUmVz
cG9uc2UuZXJyb3IoKS5ib2R5LCBudWxsKTsKLX0sICJHZXR0aW5nIGFuIGVycm9yIFJlc3BvbnNl
IHN0cmVhbSIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGFzc2VydF9lcXVhbHMoUmVzcG9u
c2UucmVkaXJlY3QoIi8iKS5ib2R5LCBudWxsKTsKLX0sICJHZXR0aW5nIGEgcmVkaXJlY3QgUmVz
cG9uc2Ugc3RyZWFtIik7Ci0KLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtZXJyb3ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTUw
ZTcyNDhlOTk3MjgwNDM5YjZmNzk1OTc0YzNjZDhlMmUyMGVkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLQotUEFTUyBUaHJvd3MgUmFuZ2VF
cnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1cyBpcyAwCi1QQVNTIFRocm93cyBSYW5nZUVy
cm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzIGlzIDEwMAotUEFTUyBUaHJvd3MgUmFuZ2VF
cnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1cyBpcyAxOTkKLVBBU1MgVGhyb3dzIFJhbmdl
RXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0dXMgaXMgNjAwCi1QQVNTIFRocm93cyBSYW5n
ZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzIGlzIDEwMDAKLVBBU1MgVGhyb3dzIFR5
cGVFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1c1RleHQgaXMKLQotUEFTUyBUaHJvd3Mg
VHlwZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzVGV4dCBpcyDEgAotUEFTUyBUaHJv
d3MgVHlwZUVycm9yIHdoZW4gYnVpbGRpbmcgYSByZXNwb25zZSB3aXRoIGJvZHkgYW5kIGEgYm9k
eSBzdGF0dXMgb2YgMjA0Ci1QQVNTIFRocm93cyBUeXBlRXJyb3Igd2hlbiBidWlsZGluZyBhIHJl
c3BvbnNlIHdpdGggYm9keSBhbmQgYSBib2R5IHN0YXR1cyBvZiAyMDUKLVBBU1MgVGhyb3dzIFR5
cGVFcnJvciB3aGVuIGJ1aWxkaW5nIGEgcmVzcG9uc2Ugd2l0aCBib2R5IGFuZCBhIGJvZHkgc3Rh
dHVzIG9mIDMwNAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0cmVh
bS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0cmVhbS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3MjQ0OTQ0MDY4Yjc4MTYyMDJm
MjMxNzJhOTk3OTllNWM5YWE1OTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1zdHJlYW0tZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotCi1QQVNTIFJlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlciBQcm9taXNlIHJlY2VpdmVzIFJlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IK
LVBBU1MgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIFByb21pc2UgcmVjZWl2ZXMgUmVhZGFi
bGVTdHJlYW0gcHVsbCgpIEVycm9yCi1GQUlMIFJlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3Ig
cHJvcGFnYXRlcyB0byBSZXNwb25zZS5hcnJheUJ1ZmZlcigpIFByb21pc2UgcHJvbWlzZV9yZWpl
Y3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBT
dGFydCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFN0
YXJ0IGVycm9yIgotRkFJTCBSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMg
dG8gUmVzcG9uc2UuYmxvYigpIFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3Rv
bVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93
IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBTdGFydCBlcnJvciIgYnV0IHdl
IGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFN0YXJ0IGVycm9yIgotRkFJTCBS
ZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuZm9ybURh
dGEoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hv
dWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9i
amVjdCAiVHlwZUVycm9yOiBFcnJvcjogU3RhcnQgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0
byB0aHJvdyBvYmplY3QgIkVycm9yOiBTdGFydCBlcnJvciIKLUZBSUwgUmVhZGFibGVTdHJlYW0g
c3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmpzb24oKSBQcm9taXNlIHByb21p
c2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBF
cnJvcjogU3RhcnQgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVy
cm9yOiBTdGFydCBlcnJvciIKLUZBSUwgUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvciBwcm9w
YWdhdGVzIHRvIFJlc3BvbnNlLnRleHQoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5
OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogU3RhcnQgZXJyb3Ii
IGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBTdGFydCBlcnJvciIK
LUZBSUwgUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2Uu
YXJyYXlCdWZmZXIoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0
RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0i
IHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogUHVsbCBlcnJvciIgYnV0IHdlIGV4cGVj
dGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFB1bGwgZXJyb3IiCi1GQUlMIFJlYWRhYmxl
U3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmJsb2IoKSBQcm9taXNl
IHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0
ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVy
cm9yOiBFcnJvcjogUHVsbCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVj
dCAiRXJyb3I6IFB1bGwgZXJyb3IiCi1GQUlMIFJlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBw
cm9wYWdhdGVzIHRvIFJlc3BvbnNlLmZvcm1EYXRhKCkgUHJvbWlzZSBwcm9taXNlX3JlamVjdHNf
ZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogRXJyb3I6IFB1bGwg
ZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBQdWxsIGVy
cm9yIgotRkFJTCBSZWFkYWJsZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNw
b25zZS5qc29uKCkgUHJvbWlzZSBwcm9taXNlX3JlamVjdHNfZXhhY3RseTogQ3VzdG9tVGVzdEVy
cm9yIHNob3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0
aHJldyBvYmplY3QgIlR5cGVFcnJvcjogRXJyb3I6IFB1bGwgZXJyb3IiIGJ1dCB3ZSBleHBlY3Rl
ZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBQdWxsIGVycm9yIgotRkFJTCBSZWFkYWJsZVN0
cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS50ZXh0KCkgUHJvbWlzZSBw
cm9taXNlX3JlamVjdHNfZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJv
cjogRXJyb3I6IFB1bGwgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3Qg
IkVycm9yOiBQdWxsIGVycm9yIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1m
cm9tLXN0cmVhbS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1z
dHJlYW0uYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzI0NDk0NDA2OGI3ODE2MjAyZjIz
MTcyYTk5Nzk5ZTVjOWFhNTkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJy
b3ItZnJvbS1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKK1BBU1Mg
UmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIFByb21pc2UgcmVjZWl2ZXMgUmVhZGFibGVTdHJl
YW0gc3RhcnQoKSBFcnJvcgorUEFTUyBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgUHJvbWlz
ZSByZWNlaXZlcyBSZWFkYWJsZVN0cmVhbSBwdWxsKCkgRXJyb3IKK0ZBSUwgUmVhZGFibGVTdHJl
YW0gc3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmFycmF5QnVmZmVyKCkgUHJv
bWlzZSBwcm9taXNlX3JlamVjdHNfZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9w
YWdhdGUgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5
cGVFcnJvcjogRXJyb3I6IFN0YXJ0IGVycm9yIiBidXQgd2UgZXhwZWN0ZWQgaXQgdG8gdGhyb3cg
b2JqZWN0ICJFcnJvcjogU3RhcnQgZXJyb3IiCitGQUlMIFJlYWRhYmxlU3RyZWFtIHN0YXJ0KCkg
RXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5ibG9iKCkgUHJvbWlzZSBwcm9taXNlX3JlamVj
dHNfZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogRXJyb3I6IFN0
YXJ0IGVycm9yIiBidXQgd2UgZXhwZWN0ZWQgaXQgdG8gdGhyb3cgb2JqZWN0ICJFcnJvcjogU3Rh
cnQgZXJyb3IiCitGQUlMIFJlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IgcHJvcGFnYXRlcyB0
byBSZXNwb25zZS5mb3JtRGF0YSgpIFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1
c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRo
cm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBTdGFydCBlcnJvciIgYnV0
IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFN0YXJ0IGVycm9yIgorRkFJ
TCBSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuanNv
bigpIFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91
bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2Jq
ZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBTdGFydCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRv
IHRocm93IG9iamVjdCAiRXJyb3I6IFN0YXJ0IGVycm9yIgorRkFJTCBSZWFkYWJsZVN0cmVhbSBz
dGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UudGV4dCgpIFByb21pc2UgcHJvbWlz
ZV9yZWplY3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVy
cm9yOiBTdGFydCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJy
b3I6IFN0YXJ0IGVycm9yIgorRkFJTCBSZWFkYWJsZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFn
YXRlcyB0byBSZXNwb25zZS5hcnJheUJ1ZmZlcigpIFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4
YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBQdWxsIGVy
cm9yIiBidXQgd2UgZXhwZWN0ZWQgaXQgdG8gdGhyb3cgb2JqZWN0ICJFcnJvcjogUHVsbCBlcnJv
ciIKK0ZBSUwgUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9u
c2UuYmxvYigpIFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJv
ciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhy
ZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBQdWxsIGVycm9yIiBidXQgd2UgZXhwZWN0ZWQg
aXQgdG8gdGhyb3cgb2JqZWN0ICJFcnJvcjogUHVsbCBlcnJvciIKK0ZBSUwgUmVhZGFibGVTdHJl
YW0gcHVsbCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuZm9ybURhdGEoKSBQcm9taXNl
IHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0
ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVy
cm9yOiBFcnJvcjogUHVsbCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVj
dCAiRXJyb3I6IFB1bGwgZXJyb3IiCitGQUlMIFJlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBw
cm9wYWdhdGVzIHRvIFJlc3BvbnNlLmpzb24oKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFj
dGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogUHVsbCBlcnJv
ciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFB1bGwgZXJyb3Ii
CitGQUlMIFJlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNl
LnRleHQoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Ig
c2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3
IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogUHVsbCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0
IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFB1bGwgZXJyb3IiCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLWVycm9yLWZyb20tc3RyZWFtLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJy
b3ItZnJvbS1zdHJlYW0uYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2
YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVy
cm9yLWZyb20tc3RyZWFtLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBs
YXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLWVycm9yLWZyb20tc3RyZWFtLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVy
cm9yLWZyb20tc3RyZWFtLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMThlYjdkNWNiMzk4YzFhMjdhZWZi
MmU4YzIzNThhODUxYzNiZmFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJy
b3ItZnJvbS1zdHJlYW0uYW55LmpzCkBAIC0wLDAgKzEsNTkgQEAKKy8vIE1FVEE6IGdsb2JhbD13
aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXNwb25zZSBSZWNlaXZlcyBQcm9wYWdhdGVk
IEVycm9yIGZyb20gUmVhZGFibGVTdHJlYW0KKworZnVuY3Rpb24gbmV3U3RyZWFtV2l0aFN0YXJ0
RXJyb3IoKSB7CisgIHZhciBlcnIgPSBuZXcgRXJyb3IoIlN0YXJ0IGVycm9yIik7CisgIHJldHVy
biBbbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgICAgIHN0YXJ0KGNvbnRyb2xsZXIpIHsK
KyAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVycm9yKGVycik7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgfSksCisgICAgICAgICAgZXJyXQorfQorCitmdW5jdGlvbiBuZXdTdHJlYW1XaXRo
UHVsbEVycm9yKCkgeworICB2YXIgZXJyID0gbmV3IEVycm9yKCJQdWxsIGVycm9yIik7CisgIHJl
dHVybiBbbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgICAgIHB1bGwoY29udHJvbGxlcikg
eworICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICB9KSwKKyAgICAgICAgICBlcnJdCit9CisKK2Z1bmN0aW9uIHJ1blJlcXVlc3RQ
cm9taXNlVGVzdChbc3RyZWFtLCBlcnJdLCByZXNwb25zZVJlYWRlck1ldGhvZCwgdGVzdERlc2Ny
aXB0aW9uKSB7CisgIHByb21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgICByZXR1cm4gcHJvbWlzZV9y
ZWplY3RzX2V4YWN0bHkoCisgICAgICB0ZXN0LAorICAgICAgZXJyLAorICAgICAgbmV3IFJlc3Bv
bnNlKHN0cmVhbSlbcmVzcG9uc2VSZWFkZXJNZXRob2RdKCksCisgICAgICAnQ3VzdG9tVGVzdEVy
cm9yIHNob3VsZCBwcm9wYWdhdGUnCisgICAgKQorICB9LCB0ZXN0RGVzY3JpcHRpb24pCit9CisK
KworcHJvbWlzZV90ZXN0KHRlc3QgPT4geworICB2YXIgW3N0cmVhbSwgZXJyXSA9IG5ld1N0cmVh
bVdpdGhTdGFydEVycm9yKCk7CisgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZXhhY3RseSh0ZXN0
LCBlcnIsIHN0cmVhbS5nZXRSZWFkZXIoKS5yZWFkKCksICdDdXN0b21UZXN0RXJyb3Igc2hvdWxk
IHByb3BhZ2F0ZScpCit9LCAiUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIFByb21pc2UgcmVj
ZWl2ZXMgUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvciIpCisKK3Byb21pc2VfdGVzdCh0ZXN0
ID0+IHsKKyAgdmFyIFtzdHJlYW0sIGVycl0gPSBuZXdTdHJlYW1XaXRoUHVsbEVycm9yKCk7Cisg
IHJldHVybiBwcm9taXNlX3JlamVjdHNfZXhhY3RseSh0ZXN0LCBlcnIsIHN0cmVhbS5nZXRSZWFk
ZXIoKS5yZWFkKCksICdDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZScpCit9LCAiUmVh
ZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIFByb21pc2UgcmVjZWl2ZXMgUmVhZGFibGVTdHJlYW0g
cHVsbCgpIEVycm9yIikKKworCisvLyB0ZXN0IHN0YXJ0KCkgZXJyb3JzIGZvciBhbGwgQm9keSBy
ZWFkZXIgbWV0aG9kcworcnVuUmVxdWVzdFByb21pc2VUZXN0KG5ld1N0cmVhbVdpdGhTdGFydEVy
cm9yKCksICdhcnJheUJ1ZmZlcicsICdSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3Bh
Z2F0ZXMgdG8gUmVzcG9uc2UuYXJyYXlCdWZmZXIoKSBQcm9taXNlJyk7CitydW5SZXF1ZXN0UHJv
bWlzZVRlc3QobmV3U3RyZWFtV2l0aFN0YXJ0RXJyb3IoKSwgJ2Jsb2InLCAgICAgICAgJ1JlYWRh
YmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5ibG9iKCkgUHJv
bWlzZScpOworcnVuUmVxdWVzdFByb21pc2VUZXN0KG5ld1N0cmVhbVdpdGhTdGFydEVycm9yKCks
ICdmb3JtRGF0YScsICAgICdSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMg
dG8gUmVzcG9uc2UuZm9ybURhdGEoKSBQcm9taXNlJyk7CitydW5SZXF1ZXN0UHJvbWlzZVRlc3Qo
bmV3U3RyZWFtV2l0aFN0YXJ0RXJyb3IoKSwgJ2pzb24nLCAgICAgICAgJ1JlYWRhYmxlU3RyZWFt
IHN0YXJ0KCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5qc29uKCkgUHJvbWlzZScpOwor
cnVuUmVxdWVzdFByb21pc2VUZXN0KG5ld1N0cmVhbVdpdGhTdGFydEVycm9yKCksICd0ZXh0Jywg
ICAgICAgICdSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9u
c2UudGV4dCgpIFByb21pc2UnKTsKKworLy8gdGVzdCBwdWxsKCkgZXJyb3JzIGZvciBhbGwgQm9k
eSByZWFkZXIgbWV0aG9kcworcnVuUmVxdWVzdFByb21pc2VUZXN0KG5ld1N0cmVhbVdpdGhQdWxs
RXJyb3IoKSwgJ2FycmF5QnVmZmVyJywgJ1JlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9w
YWdhdGVzIHRvIFJlc3BvbnNlLmFycmF5QnVmZmVyKCkgUHJvbWlzZScpOworcnVuUmVxdWVzdFBy
b21pc2VUZXN0KG5ld1N0cmVhbVdpdGhQdWxsRXJyb3IoKSwgJ2Jsb2InLCAgICAgICAgJ1JlYWRh
YmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmJsb2IoKSBQcm9t
aXNlJyk7CitydW5SZXF1ZXN0UHJvbWlzZVRlc3QobmV3U3RyZWFtV2l0aFB1bGxFcnJvcigpLCAn
Zm9ybURhdGEnLCAgICAnUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8g
UmVzcG9uc2UuZm9ybURhdGEoKSBQcm9taXNlJyk7CitydW5SZXF1ZXN0UHJvbWlzZVRlc3QobmV3
U3RyZWFtV2l0aFB1bGxFcnJvcigpLCAnanNvbicsICAgICAgICAnUmVhZGFibGVTdHJlYW0gcHVs
bCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuanNvbigpIFByb21pc2UnKTsKK3J1blJl
cXVlc3RQcm9taXNlVGVzdChuZXdTdHJlYW1XaXRoUHVsbEVycm9yKCksICd0ZXh0JywgICAgICAg
ICdSZWFkYWJsZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS50ZXh0
KCkgUHJvbWlzZScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1zdHJl
YW0uYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0
cmVhbS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzI0NDk0NDA2OGI3ODE2
MjAyZjIzMTcyYTk5Nzk5ZTVjOWFhNTkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtZXJyb3ItZnJvbS1zdHJlYW0uYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NCBAQAorCitQQVNTIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBQcm9taXNlIHJlY2VpdmVz
IFJlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IKK1BBU1MgUmVhZGFibGVTdHJlYW1EZWZhdWx0
UmVhZGVyIFByb21pc2UgcmVjZWl2ZXMgUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVycm9yCitGQUlM
IFJlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5hcnJh
eUJ1ZmZlcigpIFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJv
ciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhy
ZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBTdGFydCBlcnJvciIgYnV0IHdlIGV4cGVjdGVk
IGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFN0YXJ0IGVycm9yIgorRkFJTCBSZWFkYWJsZVN0
cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuYmxvYigpIFByb21pc2Ug
cHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRl
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJy
b3I6IEVycm9yOiBTdGFydCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVj
dCAiRXJyb3I6IFN0YXJ0IGVycm9yIgorRkFJTCBSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9y
IHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuZm9ybURhdGEoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0
c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogU3Rh
cnQgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBTdGFy
dCBlcnJvciIKK0ZBSUwgUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRv
IFJlc3BvbnNlLmpzb24oKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21U
ZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBl
IH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogU3RhcnQgZXJyb3IiIGJ1dCB3ZSBl
eHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBTdGFydCBlcnJvciIKK0ZBSUwgUmVh
ZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLnRleHQoKSBQ
cm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHBy
b3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAi
VHlwZUVycm9yOiBFcnJvcjogU3RhcnQgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJv
dyBvYmplY3QgIkVycm9yOiBTdGFydCBlcnJvciIKK0ZBSUwgUmVhZGFibGVTdHJlYW0gcHVsbCgp
IEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuYXJyYXlCdWZmZXIoKSBQcm9taXNlIHByb21p
c2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBF
cnJvcjogUHVsbCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJy
b3I6IFB1bGwgZXJyb3IiCitGQUlMIFJlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdh
dGVzIHRvIFJlc3BvbnNlLmJsb2IoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBD
dXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0
aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogUHVsbCBlcnJvciIgYnV0
IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFB1bGwgZXJyb3IiCitGQUlM
IFJlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmZvcm1E
YXRhKCkgUHJvbWlzZSBwcm9taXNlX3JlamVjdHNfZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNo
b3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlR5cGVFcnJvcjogRXJyb3I6IFB1bGwgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0
byB0aHJvdyBvYmplY3QgIkVycm9yOiBQdWxsIGVycm9yIgorRkFJTCBSZWFkYWJsZVN0cmVhbSBw
dWxsKCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5qc29uKCkgUHJvbWlzZSBwcm9taXNl
X3JlamVjdHNfZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogRXJy
b3I6IFB1bGwgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9y
OiBQdWxsIGVycm9yIgorRkFJTCBSZWFkYWJsZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRl
cyB0byBSZXNwb25zZS50ZXh0KCkgUHJvbWlzZSBwcm9taXNlX3JlamVjdHNfZXhhY3RseTogQ3Vz
dG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhy
b3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogRXJyb3I6IFB1bGwgZXJyb3IiIGJ1dCB3
ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBQdWxsIGVycm9yIgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0cmVhbS5hbnkud29ya2VyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0cmVhbS5hbnkud29ya2VyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLWZyb20tc3RyZWFtLmFueS53b3JrZXIuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9t
LXN0cmVhbS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1zdHJlYW0uaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzcwZjZiYTc4ZDczNDFhZDdiZTU5YmQ2MTE1MDQ5
YWMwMzQyOGUxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0cmVhbS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNjkgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5SZXNwb25zZSBSZWNlaXZlcyBQcm9wYWdh
dGVkIEVycm9yIGZyb20gUmVhZGFibGVTdHJlYW08L3RpdGxlPgotICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJv
ZHk+Ci0gICAgPHNjcmlwdD4KLSAgICAgIGZ1bmN0aW9uIG5ld1N0cmVhbVdpdGhTdGFydEVycm9y
KCkgewotICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKCJTdGFydCBlcnJvciIpOwotICAgICAg
ICByZXR1cm4gW25ldyBSZWFkYWJsZVN0cmVhbSh7Ci0gICAgICAgICAgICAgICAgICBzdGFydChj
b250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnIp
OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0pLAotICAgICAgICAgICAg
ICAgIGVycl0KLSAgICAgIH0KLQotICAgICAgZnVuY3Rpb24gbmV3U3RyZWFtV2l0aFB1bGxFcnJv
cigpIHsKLSAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcigiUHVsbCBlcnJvciIpOwotICAgICAg
ICByZXR1cm4gW25ldyBSZWFkYWJsZVN0cmVhbSh7Ci0gICAgICAgICAgICAgICAgICBwdWxsKGNv
bnRyb2xsZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVycm9yKGVycik7
Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSksCi0gICAgICAgICAgICAg
ICAgZXJyXQotICAgICAgfQotCi0gICAgICBmdW5jdGlvbiBydW5SZXF1ZXN0UHJvbWlzZVRlc3Qo
W3N0cmVhbSwgZXJyXSwgcmVzcG9uc2VSZWFkZXJNZXRob2QsIHRlc3REZXNjcmlwdGlvbikgewot
ICAgICAgICBwcm9taXNlX3Rlc3QodGVzdCA9PiB7Ci0gICAgICAgICAgcmV0dXJuIHByb21pc2Vf
cmVqZWN0c19leGFjdGx5KAotICAgICAgICAgICAgdGVzdCwKLSAgICAgICAgICAgIGVyciwKLSAg
ICAgICAgICAgIG5ldyBSZXNwb25zZShzdHJlYW0pW3Jlc3BvbnNlUmVhZGVyTWV0aG9kXSgpLAot
ICAgICAgICAgICAgJ0N1c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlJwotICAgICAgICAg
ICkKLSAgICAgICAgfSwgdGVzdERlc2NyaXB0aW9uKQotICAgICAgfQotCi0KLSAgICAgIHByb21p
c2VfdGVzdCh0ZXN0ID0+IHsKLSAgICAgICAgdmFyIFtzdHJlYW0sIGVycl0gPSBuZXdTdHJlYW1X
aXRoU3RhcnRFcnJvcigpOwotICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2V4YWN0bHko
dGVzdCwgZXJyLCBzdHJlYW0uZ2V0UmVhZGVyKCkucmVhZCgpLCAnQ3VzdG9tVGVzdEVycm9yIHNo
b3VsZCBwcm9wYWdhdGUnKQotICAgICAgfSwgIlJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBQ
cm9taXNlIHJlY2VpdmVzIFJlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IiKQotCi0gICAgICBw
cm9taXNlX3Rlc3QodGVzdCA9PiB7Ci0gICAgICAgIHZhciBbc3RyZWFtLCBlcnJdID0gbmV3U3Ry
ZWFtV2l0aFB1bGxFcnJvcigpOwotICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2V4YWN0
bHkodGVzdCwgZXJyLCBzdHJlYW0uZ2V0UmVhZGVyKCkucmVhZCgpLCAnQ3VzdG9tVGVzdEVycm9y
IHNob3VsZCBwcm9wYWdhdGUnKQotICAgICAgfSwgIlJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
ciBQcm9taXNlIHJlY2VpdmVzIFJlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciIpCi0KLQotICAg
ICAgLy8gdGVzdCBzdGFydCgpIGVycm9ycyBmb3IgYWxsIEJvZHkgcmVhZGVyIG1ldGhvZHMKLSAg
ICAgIHJ1blJlcXVlc3RQcm9taXNlVGVzdChuZXdTdHJlYW1XaXRoU3RhcnRFcnJvcigpLCAnYXJy
YXlCdWZmZXInLCAnUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJl
c3BvbnNlLmFycmF5QnVmZmVyKCkgUHJvbWlzZScpOwotICAgICAgcnVuUmVxdWVzdFByb21pc2VU
ZXN0KG5ld1N0cmVhbVdpdGhTdGFydEVycm9yKCksICdibG9iJywgICAgICAgICdSZWFkYWJsZVN0
cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuYmxvYigpIFByb21pc2Un
KTsKLSAgICAgIHJ1blJlcXVlc3RQcm9taXNlVGVzdChuZXdTdHJlYW1XaXRoU3RhcnRFcnJvcigp
LCAnZm9ybURhdGEnLCAgICAnUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvciBwcm9wYWdhdGVz
IHRvIFJlc3BvbnNlLmZvcm1EYXRhKCkgUHJvbWlzZScpOwotICAgICAgcnVuUmVxdWVzdFByb21p
c2VUZXN0KG5ld1N0cmVhbVdpdGhTdGFydEVycm9yKCksICdqc29uJywgICAgICAgICdSZWFkYWJs
ZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuanNvbigpIFByb21p
c2UnKTsKLSAgICAgIHJ1blJlcXVlc3RQcm9taXNlVGVzdChuZXdTdHJlYW1XaXRoU3RhcnRFcnJv
cigpLCAndGV4dCcsICAgICAgICAnUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvciBwcm9wYWdh
dGVzIHRvIFJlc3BvbnNlLnRleHQoKSBQcm9taXNlJyk7Ci0KLSAgICAgIC8vIHRlc3QgcHVsbCgp
IGVycm9ycyBmb3IgYWxsIEJvZHkgcmVhZGVyIG1ldGhvZHMKLSAgICAgIHJ1blJlcXVlc3RQcm9t
aXNlVGVzdChuZXdTdHJlYW1XaXRoUHVsbEVycm9yKCksICdhcnJheUJ1ZmZlcicsICdSZWFkYWJs
ZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5hcnJheUJ1ZmZlcigp
IFByb21pc2UnKTsKLSAgICAgIHJ1blJlcXVlc3RQcm9taXNlVGVzdChuZXdTdHJlYW1XaXRoUHVs
bEVycm9yKCksICdibG9iJywgICAgICAgICdSZWFkYWJsZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJv
cGFnYXRlcyB0byBSZXNwb25zZS5ibG9iKCkgUHJvbWlzZScpOwotICAgICAgcnVuUmVxdWVzdFBy
b21pc2VUZXN0KG5ld1N0cmVhbVdpdGhQdWxsRXJyb3IoKSwgJ2Zvcm1EYXRhJywgICAgJ1JlYWRh
YmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmZvcm1EYXRhKCkg
UHJvbWlzZScpOwotICAgICAgcnVuUmVxdWVzdFByb21pc2VUZXN0KG5ld1N0cmVhbVdpdGhQdWxs
RXJyb3IoKSwgJ2pzb24nLCAgICAgICAgJ1JlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9w
YWdhdGVzIHRvIFJlc3BvbnNlLmpzb24oKSBQcm9taXNlJyk7Ci0gICAgICBydW5SZXF1ZXN0UHJv
bWlzZVRlc3QobmV3U3RyZWFtV2l0aFB1bGxFcnJvcigpLCAndGV4dCcsICAgICAgICAnUmVhZGFi
bGVTdHJlYW0gcHVsbCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UudGV4dCgpIFByb21p
c2UnKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2UtZXJyb3IuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9y
LmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU1MGU3MjQ4ZTk5NzI4MDQzOWI2Zjc5NTk3
NGMzY2Q4ZTJlMjBlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFu
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCitQQVNTIFRocm93cyBSYW5nZUVycm9y
IHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzIGlzIDAKK1BBU1MgVGhyb3dzIFJhbmdlRXJyb3Ig
d2hlbiByZXNwb25zZUluaXQncyBzdGF0dXMgaXMgMTAwCitQQVNTIFRocm93cyBSYW5nZUVycm9y
IHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzIGlzIDE5OQorUEFTUyBUaHJvd3MgUmFuZ2VFcnJv
ciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1cyBpcyA2MDAKK1BBU1MgVGhyb3dzIFJhbmdlRXJy
b3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0dXMgaXMgMTAwMAorUEFTUyBUaHJvd3MgVHlwZUVy
cm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzVGV4dCBpcworCitQQVNTIFRocm93cyBUeXBl
RXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0dXNUZXh0IGlzIMSACitQQVNTIFRocm93cyBU
eXBlRXJyb3Igd2hlbiBidWlsZGluZyBhIHJlc3BvbnNlIHdpdGggYm9keSBhbmQgYSBib2R5IHN0
YXR1cyBvZiAyMDQKK1BBU1MgVGhyb3dzIFR5cGVFcnJvciB3aGVuIGJ1aWxkaW5nIGEgcmVzcG9u
c2Ugd2l0aCBib2R5IGFuZCBhIGJvZHkgc3RhdHVzIG9mIDIwNQorUEFTUyBUaHJvd3MgVHlwZUVy
cm9yIHdoZW4gYnVpbGRpbmcgYSByZXNwb25zZSB3aXRoIGJvZHkgYW5kIGEgYm9keSBzdGF0dXMg
b2YgMzA0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2UtZXJyb3IuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1
ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LWVycm9yLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0
IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWVycm9yLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNzZiYzQzODAyODZmYWM0N2I5NjQyNWFiYWE2MjE3ZWQ1MjkxZTUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3IuYW55LmpzCkBAIC0wLDAgKzEsMjcgQEAKKy8vIE1F
VEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXNwb25zZSBlcnJvcgor
Cit2YXIgaW52YWxpZFN0YXR1cyA9IFswLCAxMDAsIDE5OSwgNjAwLCAxMDAwXTsKK2ludmFsaWRT
dGF0dXMuZm9yRWFjaChmdW5jdGlvbihzdGF0dXMpIHsKKyAgdGVzdChmdW5jdGlvbigpIHsKKyAg
ICBhc3NlcnRfdGhyb3dzX2pzKFJhbmdlRXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcgUmVzcG9uc2Uo
IiIsIHsgInN0YXR1cyIgOiBzdGF0dXMgfSk7IH0sCisgICAgICAiRXhwZWN0IFJhbmdlRXJyb3Ig
ZXhjZXB0aW9uIHdoZW4gc3RhdHVzIGlzICIgKyBzdGF0dXMpOworICB9LCJUaHJvd3MgUmFuZ2VF
cnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1cyBpcyAiICsgc3RhdHVzKTsKK30pOworCit2
YXIgaW52YWxpZFN0YXR1c1RleHQgPSBbIlxuIiwgIsSAIl07CitpbnZhbGlkU3RhdHVzVGV4dC5m
b3JFYWNoKGZ1bmN0aW9uKHN0YXR1c1RleHQpIHsKKyAgdGVzdChmdW5jdGlvbigpIHsKKyAgICBh
c3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBSZXNwb25zZSgiIiwg
eyAic3RhdHVzVGV4dCIgOiBzdGF0dXNUZXh0IH0pOyB9LAorICAgICAgIkV4cGVjdCBUeXBlRXJy
b3IgZXhjZXB0aW9uICIgKyBzdGF0dXNUZXh0KTsKKyAgfSwiVGhyb3dzIFR5cGVFcnJvciB3aGVu
IHJlc3BvbnNlSW5pdCdzIHN0YXR1c1RleHQgaXMgIiArIHN0YXR1c1RleHQpOworfSk7CisKK3Zh
ciBudWxsQm9keVN0YXR1cyA9IFsyMDQsIDIwNSwgMzA0XTsKK251bGxCb2R5U3RhdHVzLmZvckVh
Y2goZnVuY3Rpb24oc3RhdHVzKSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X3Ro
cm93c19qcyhUeXBlRXJyb3IsCisgICAgICBmdW5jdGlvbigpIHsgbmV3IFJlc3BvbnNlKCJib2R5
IiwgeyJzdGF0dXMiIDogc3RhdHVzIH0pOyB9LAorICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhj
ZXB0aW9uICIpOworICB9LCJUaHJvd3MgVHlwZUVycm9yIHdoZW4gYnVpbGRpbmcgYSByZXNwb25z
ZSB3aXRoIGJvZHkgYW5kIGEgYm9keSBzdGF0dXMgb2YgIiArIHN0YXR1cyk7Cit9KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2UtZXJyb3IuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU1
MGU3MjQ4ZTk5NzI4MDQzOWI2Zjc5NTk3NGMzY2Q4ZTJlMjBlZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTMgQEAKKworUEFTUyBUaHJvd3MgUmFuZ2VFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1
cyBpcyAwCitQQVNTIFRocm93cyBSYW5nZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVz
IGlzIDEwMAorUEFTUyBUaHJvd3MgUmFuZ2VFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1
cyBpcyAxOTkKK1BBU1MgVGhyb3dzIFJhbmdlRXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0
dXMgaXMgNjAwCitQQVNTIFRocm93cyBSYW5nZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3Rh
dHVzIGlzIDEwMDAKK1BBU1MgVGhyb3dzIFR5cGVFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0
YXR1c1RleHQgaXMKKworUEFTUyBUaHJvd3MgVHlwZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mg
c3RhdHVzVGV4dCBpcyDEgAorUEFTUyBUaHJvd3MgVHlwZUVycm9yIHdoZW4gYnVpbGRpbmcgYSBy
ZXNwb25zZSB3aXRoIGJvZHkgYW5kIGEgYm9keSBzdGF0dXMgb2YgMjA0CitQQVNTIFRocm93cyBU
eXBlRXJyb3Igd2hlbiBidWlsZGluZyBhIHJlc3BvbnNlIHdpdGggYm9keSBhbmQgYSBib2R5IHN0
YXR1cyBvZiAyMDUKK1BBU1MgVGhyb3dzIFR5cGVFcnJvciB3aGVuIGJ1aWxkaW5nIGEgcmVzcG9u
c2Ugd2l0aCBib2R5IGFuZCBhIGJvZHkgc3RhdHVzIG9mIDMwNAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1lcnJvci5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci5h
bnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2
MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS53
b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3Ig
V2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1l
cnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggN2NiYjEzODM0NTk2NGY1NDhhZGQ2N2E5YjI5MDY1N2RlM2FlY2ViZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25z
ZS1lcnJvci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPCFkb2N0eXBlIGh0
bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0
aXRsZT5SZXNwb25zZSBlcnJvcjwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KLSAgICA8bWV0YSBuYW1l
PSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3
LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAg
ICAgdmFyIGludmFsaWRTdGF0dXMgPSBbMCwgMTAwLCAxOTksIDYwMCwgMTAwMF07Ci0gICAgICBp
bnZhbGlkU3RhdHVzLmZvckVhY2goZnVuY3Rpb24oc3RhdHVzKSB7Ci0gICAgICAgIHRlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhSYW5nZUVycm9yLCBmdW5jdGlv
bigpIHsgbmV3IFJlc3BvbnNlKCIiLCB7ICJzdGF0dXMiIDogc3RhdHVzIH0pOyB9LAotICAgICAg
ICAgICAgIkV4cGVjdCBSYW5nZUVycm9yIGV4Y2VwdGlvbiB3aGVuIHN0YXR1cyBpcyAiICsgc3Rh
dHVzKTsKLSAgICAgICAgfSwiVGhyb3dzIFJhbmdlRXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBz
dGF0dXMgaXMgIiArIHN0YXR1cyk7Ci0gICAgICB9KTsKLQotICAgICAgdmFyIGludmFsaWRTdGF0
dXNUZXh0ID0gWyJcbiIsICLEgCJdOwotICAgICAgaW52YWxpZFN0YXR1c1RleHQuZm9yRWFjaChm
dW5jdGlvbihzdGF0dXNUZXh0KSB7Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcgUmVzcG9uc2Uo
IiIsIHsgInN0YXR1c1RleHQiIDogc3RhdHVzVGV4dCB9KTsgfSwKLSAgICAgICAgICAgICJFeHBl
Y3QgVHlwZUVycm9yIGV4Y2VwdGlvbiAiICsgc3RhdHVzVGV4dCk7Ci0gICAgICAgIH0sIlRocm93
cyBUeXBlRXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0dXNUZXh0IGlzICIgKyBzdGF0dXNU
ZXh0KTsKLSAgICAgIH0pOwotCi0gICAgICB2YXIgbnVsbEJvZHlTdGF0dXMgPSBbMjA0LCAyMDUs
IDMwNF07Ci0gICAgICBudWxsQm9keVN0YXR1cy5mb3JFYWNoKGZ1bmN0aW9uKHN0YXR1cykgewot
ICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlw
ZUVycm9yLAotICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBSZXNwb25zZSgiYm9keSIsIHsi
c3RhdHVzIiA6IHN0YXR1cyB9KTsgfSwKLSAgICAgICAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4
Y2VwdGlvbiAiKTsKLSAgICAgICAgfSwiVGhyb3dzIFR5cGVFcnJvciB3aGVuIGJ1aWxkaW5nIGEg
cmVzcG9uc2Ugd2l0aCBib2R5IGFuZCBhIGJvZHkgc3RhdHVzIG9mICIgKyBzdGF0dXMpOwotICAg
ICAgfSk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLWluaXQtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQt
MDAxLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2QxMzAxYzg0
NmU5NGQ1YWQ0MTg3MTg3NDNkN2U0NjRiZTBlZGZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0KLVBBU1MgQ2hlY2sgZGVmYXVsdCB2
YWx1ZSBmb3IgdHlwZSBhdHRyaWJ1dGUKLVBBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3IgdXJs
IGF0dHJpYnV0ZQotUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZvciBvayBhdHRyaWJ1dGUKLVBB
U1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3Igc3RhdHVzIGF0dHJpYnV0ZQotUEFTUyBDaGVjayBk
ZWZhdWx0IHZhbHVlIGZvciBzdGF0dXNUZXh0IGF0dHJpYnV0ZQotUEFTUyBDaGVjayBkZWZhdWx0
IHZhbHVlIGZvciBib2R5IGF0dHJpYnV0ZQotUEFTUyBDaGVjayBzdGF0dXMgaW5pdCB2YWx1ZXMg
YW5kIGFzc29jaWF0ZWQgZ2V0dGVyCi1QQVNTIENoZWNrIHN0YXR1c1RleHQgaW5pdCB2YWx1ZXMg
YW5kIGFzc29jaWF0ZWQgZ2V0dGVyCi1QQVNTIFRlc3QgdGhhdCBSZXNwb25zZS5oZWFkZXJzIGhh
cyB0aGUgW1NhbWVPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1pbml0LTAwMS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5p
dC0wMDEuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDEzMDFjODQ2ZTk0ZDVhZDQxODcx
ODc0M2Q3ZTQ2NGJlMGVkZmUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5p
dC0wMDEuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACisKK1BBU1MgQ2hlY2sgZGVm
YXVsdCB2YWx1ZSBmb3IgdHlwZSBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBm
b3IgdXJsIGF0dHJpYnV0ZQorUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZvciBvayBhdHRyaWJ1
dGUKK1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3Igc3RhdHVzIGF0dHJpYnV0ZQorUEFTUyBD
aGVjayBkZWZhdWx0IHZhbHVlIGZvciBzdGF0dXNUZXh0IGF0dHJpYnV0ZQorUEFTUyBDaGVjayBk
ZWZhdWx0IHZhbHVlIGZvciBib2R5IGF0dHJpYnV0ZQorUEFTUyBDaGVjayBzdGF0dXMgaW5pdCB2
YWx1ZXMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyCitQQVNTIENoZWNrIHN0YXR1c1RleHQgaW5pdCB2
YWx1ZXMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyCitQQVNTIFRlc3QgdGhhdCBSZXNwb25zZS5oZWFk
ZXJzIGhhcyB0aGUgW1NhbWVPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQt
MDAxLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5
ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnku
aHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0
IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAw
MS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnkuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU5
ZTQ5YWQxMWZmZTEzYTdhMjkxOTM1ZjY1NDBiNmExNzdlNGM5ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLmFueS5qcwpAQCAtMCwwICsxLDY0IEBACisvLyBNRVRB
OiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogdGl0bGU9UmVzcG9uc2UgaW5pdDogc2lt
cGxlIGNhc2VzCisKK3ZhciBkZWZhdWx0VmFsdWVzID0geyAidHlwZSIgOiAiZGVmYXVsdCIsCisg
ICAgICAgICAgICAgICAgICAgICAgInVybCIgOiAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAi
b2siIDogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIiA6IDIwMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAic3RhdHVzVGV4dCIgOiAiIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAiYm9keSIgOiBudWxsCit9OworCit2YXIgc3RhdHVzQ29kZXMgPSB7ICJnaXZlblZhbHVlcyIg
OiBbMjAwLCAzMDAsIDQwMCwgNTAwLCA1OTldLAorICAgICAgICAgICAgICAgICAgICAiZXhwZWN0
ZWRWYWx1ZXMiIDogWzIwMCwgMzAwLCA0MDAsIDUwMCwgNTk5XQorfTsKK3ZhciBzdGF0dXNUZXh0
cyA9IHsgImdpdmVuVmFsdWVzIiA6IFsiIiwgIk9LIiwgIndpdGggc3BhY2UiLCBTdHJpbmcuZnJv
bUNoYXJDb2RlKDB4ODApXSwKKyAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6
IFsiIiwgIk9LIiwgIndpdGggc3BhY2UiLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ODApXQorfTsK
K3ZhciBpbml0VmFsdWVzRGljdCA9IHsgInN0YXR1cyIgOiBzdGF0dXNDb2RlcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJzdGF0dXNUZXh0IiA6IHN0YXR1c1RleHRzCit9OworCitmdW5jdGlv
biBpc09rU3RhdHVzKHN0YXR1cykgeworICByZXR1cm4gMjAwIDw9IHN0YXR1cyAmJiAgMjk5ID49
IHN0YXR1czsKK30KKwordmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCk7Citmb3IgKHZhciBh
dHRyaWJ1dGVOYW1lIGluIGRlZmF1bHRWYWx1ZXMpIHsKKyAgdGVzdChmdW5jdGlvbigpIHsKKyAg
ICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGRlZmF1bHRWYWx1ZXNbYXR0cmlidXRlTmFtZV07CisgICAg
YXNzZXJ0X2VxdWFscyhyZXNwb25zZVthdHRyaWJ1dGVOYW1lXSwgZXhwZWN0ZWRWYWx1ZSwKKyAg
ICAgICJFeHBlY3QgZGVmYXVsdCByZXNwb25zZS4iICsgYXR0cmlidXRlTmFtZSArICIgaXMgIiAr
IGV4cGVjdGVkVmFsdWUpOworICB9LCAiQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3IgIiArIGF0dHJp
YnV0ZU5hbWUgKyAiIGF0dHJpYnV0ZSIpOworfQorCitmb3IgKHZhciBhdHRyaWJ1dGVOYW1lIGlu
IGluaXRWYWx1ZXNEaWN0KSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIHZhbHVlc1Rv
VGVzdCA9IGluaXRWYWx1ZXNEaWN0W2F0dHJpYnV0ZU5hbWVdOworICAgIGZvciAodmFyIHZhbHVl
SWR4IGluIHZhbHVlc1RvVGVzdFsiZ2l2ZW5WYWx1ZXMiXSkgeworICAgICAgdmFyIGdpdmVuVmFs
dWUgPSB2YWx1ZXNUb1Rlc3RbImdpdmVuVmFsdWVzIl1bdmFsdWVJZHhdOworICAgICAgdmFyIGV4
cGVjdGVkVmFsdWUgPSB2YWx1ZXNUb1Rlc3RbImV4cGVjdGVkVmFsdWVzIl1bdmFsdWVJZHhdOwor
ICAgICAgdmFyIHJlc3BvbnNlSW5pdCA9IHt9OworICAgICAgcmVzcG9uc2VJbml0W2F0dHJpYnV0
ZU5hbWVdID0gZ2l2ZW5WYWx1ZTsKKyAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSgi
IiwgcmVzcG9uc2VJbml0KTsKKyAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2VbYXR0cmlidXRl
TmFtZV0sIGV4cGVjdGVkVmFsdWUsCisgICAgICAgICJFeHBlY3QgcmVzcG9uc2UuIiArIGF0dHJp
YnV0ZU5hbWUgKyAiIGlzICIgKyBleHBlY3RlZFZhbHVlICsKKyAgICAgICAgIiB3aGVuIGluaXRp
YWxpemVkIHdpdGggIiArIGdpdmVuVmFsdWUpOworICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25z
ZS5vaywgaXNPa1N0YXR1cyhyZXNwb25zZS5zdGF0dXMpLAorICAgICAgICAiRXhwZWN0IHJlc3Bv
bnNlLm9rIGlzICIgKyBpc09rU3RhdHVzKHJlc3BvbnNlLnN0YXR1cykpOworICAgIH0KKyAgfSwg
IkNoZWNrICIgKyBhdHRyaWJ1dGVOYW1lICsgIiBpbml0IHZhbHVlcyBhbmQgYXNzb2NpYXRlZCBn
ZXR0ZXIiKTsKK30KKwordGVzdChmdW5jdGlvbigpIHsKKyAgY29uc3QgcmVzcG9uc2UxID0gbmV3
IFJlc3BvbnNlKCIiKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZTEuaGVhZGVycywgcmVzcG9u
c2UxLmhlYWRlcnMpOworCisgIGNvbnN0IHJlc3BvbnNlMiA9IG5ldyBSZXNwb25zZSgiIiwgeyJo
ZWFkZXJzIjogeyJYLUZvbyI6ICJiYXIifX0pOworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlMi5o
ZWFkZXJzLCByZXNwb25zZTIuaGVhZGVycyk7CisgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZTIu
aGVhZGVyczsKKyAgcmVzcG9uc2UyLmhlYWRlcnMuc2V0KCJYLUZvbyIsICJxdXV4Iik7CisgIGFz
c2VydF9lcXVhbHMoaGVhZGVycywgcmVzcG9uc2UyLmhlYWRlcnMpOworICBoZWFkZXJzLnNldCgi
WC1PdGhlci1IZWFkZXIiLCAiYmF6Iik7CisgIGFzc2VydF9lcXVhbHMoaGVhZGVycywgcmVzcG9u
c2UyLmhlYWRlcnMpOworfSwgIlRlc3QgdGhhdCBSZXNwb25zZS5oZWFkZXJzIGhhcyB0aGUgW1Nh
bWVPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtaW5pdC0wMDEuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0
LTAwMS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDEzMDFjODQ2ZTk0ZDVh
ZDQxODcxODc0M2Q3ZTQ2NGJlMGVkZmUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtaW5pdC0wMDEuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorCitQ
QVNTIENoZWNrIGRlZmF1bHQgdmFsdWUgZm9yIHR5cGUgYXR0cmlidXRlCitQQVNTIENoZWNrIGRl
ZmF1bHQgdmFsdWUgZm9yIHVybCBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBm
b3Igb2sgYXR0cmlidXRlCitQQVNTIENoZWNrIGRlZmF1bHQgdmFsdWUgZm9yIHN0YXR1cyBhdHRy
aWJ1dGUKK1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3Igc3RhdHVzVGV4dCBhdHRyaWJ1dGUK
K1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3IgYm9keSBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sg
c3RhdHVzIGluaXQgdmFsdWVzIGFuZCBhc3NvY2lhdGVkIGdldHRlcgorUEFTUyBDaGVjayBzdGF0
dXNUZXh0IGluaXQgdmFsdWVzIGFuZCBhc3NvY2lhdGVkIGdldHRlcgorUEFTUyBUZXN0IHRoYXQg
UmVzcG9uc2UuaGVhZGVycyBoYXMgdGhlIFtTYW1lT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEuYW55Lndvcmtlci5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5
MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRv
IHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LWluaXQtMDAxLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhZjIzZDMxMGYx
YWNlOWFkOTgyN2I4ZGQ0ZTllNWNhMTdkMjZiNWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFk
PgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVzcG9uc2UgaW5pdDog
c2ltcGxlIGNhc2VzPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2UiPgotICAgIDxtZXRhIG5hbWU9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LXJlc3BvbnNlIj4K
LSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhy
ZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAg
ICA8c2NyaXB0PgotICAgICAgdmFyIGRlZmF1bHRWYWx1ZXMgPSB7ICJ0eXBlIiA6ICJkZWZhdWx0
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidXJsIiA6ICIiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJvayIgOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdGF0dXMiIDogMjAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXNUZXh0
IiA6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJib2R5IiA6IG51bGwKLSAgICAg
IH07Ci0KLSAgICAgIHZhciBzdGF0dXNDb2RlcyA9IHsgImdpdmVuVmFsdWVzIiA6IFsyMDAsIDMw
MCwgNDAwLCA1MDAsIDU5OV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZFZh
bHVlcyIgOiBbMjAwLCAzMDAsIDQwMCwgNTAwLCA1OTldCi0gICAgICB9OwotICAgICAgdmFyIHN0
YXR1c1RleHRzID0geyAiZ2l2ZW5WYWx1ZXMiIDogWyIiLCAiT0siLCAid2l0aCBzcGFjZSIsIFN0
cmluZy5mcm9tQ2hhckNvZGUoMHg4MCldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWRWYWx1ZXMiIDogWyIiLCAiT0siLCAid2l0aCBzcGFjZSIsIFN0cmluZy5mcm9tQ2hhckNv
ZGUoMHg4MCldCi0gICAgICB9OwotICAgICAgdmFyIGluaXRWYWx1ZXNEaWN0ID0geyAic3RhdHVz
IiA6IHN0YXR1c0NvZGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzVGV4
dCIgOiBzdGF0dXNUZXh0cwotICAgICAgfTsKLQotICAgICAgZnVuY3Rpb24gaXNPa1N0YXR1cyhz
dGF0dXMpIHsKLSAgICAgICAgcmV0dXJuIDIwMCA8PSBzdGF0dXMgJiYgIDI5OSA+PSBzdGF0dXM7
Ci0gICAgICB9Ci0KLSAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpOwotICAgICAg
Zm9yICh2YXIgYXR0cmlidXRlTmFtZSBpbiBkZWZhdWx0VmFsdWVzKSB7Ci0gICAgICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBkZWZhdWx0VmFsdWVz
W2F0dHJpYnV0ZU5hbWVdOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2VbYXR0cmli
dXRlTmFtZV0sIGV4cGVjdGVkVmFsdWUsCi0gICAgICAgICAgICAiRXhwZWN0IGRlZmF1bHQgcmVz
cG9uc2UuIiArIGF0dHJpYnV0ZU5hbWUgKyAiIGlzICIgKyBleHBlY3RlZFZhbHVlKTsKLSAgICAg
ICAgfSwgIkNoZWNrIGRlZmF1bHQgdmFsdWUgZm9yICIgKyBhdHRyaWJ1dGVOYW1lICsgIiBhdHRy
aWJ1dGUiKTsKLSAgICAgIH0KLQotICAgICAgZm9yICh2YXIgYXR0cmlidXRlTmFtZSBpbiBpbml0
VmFsdWVzRGljdCkgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciB2
YWx1ZXNUb1Rlc3QgPSBpbml0VmFsdWVzRGljdFthdHRyaWJ1dGVOYW1lXTsKLSAgICAgICAgICBm
b3IgKHZhciB2YWx1ZUlkeCBpbiB2YWx1ZXNUb1Rlc3RbImdpdmVuVmFsdWVzIl0pIHsKLSAgICAg
ICAgICAgIHZhciBnaXZlblZhbHVlID0gdmFsdWVzVG9UZXN0WyJnaXZlblZhbHVlcyJdW3ZhbHVl
SWR4XTsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gdmFsdWVzVG9UZXN0WyJleHBl
Y3RlZFZhbHVlcyJdW3ZhbHVlSWR4XTsKLSAgICAgICAgICAgIHZhciByZXNwb25zZUluaXQgPSB7
fTsKLSAgICAgICAgICAgIHJlc3BvbnNlSW5pdFthdHRyaWJ1dGVOYW1lXSA9IGdpdmVuVmFsdWU7
Ci0gICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoIiIsIHJlc3BvbnNlSW5p
dCk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlW2F0dHJpYnV0ZU5hbWVdLCBl
eHBlY3RlZFZhbHVlLAotICAgICAgICAgICAgICAiRXhwZWN0IHJlc3BvbnNlLiIgKyBhdHRyaWJ1
dGVOYW1lICsgIiBpcyAiICsgZXhwZWN0ZWRWYWx1ZSArCi0gICAgICAgICAgICAgICIgd2hlbiBp
bml0aWFsaXplZCB3aXRoICIgKyBnaXZlblZhbHVlKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVzcG9uc2Uub2ssIGlzT2tTdGF0dXMocmVzcG9uc2Uuc3RhdHVzKSwKLSAgICAgICAgICAg
ICAgIkV4cGVjdCByZXNwb25zZS5vayBpcyAiICsgaXNPa1N0YXR1cyhyZXNwb25zZS5zdGF0dXMp
KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0sICJDaGVjayAiICsgYXR0cmlidXRlTmFtZSArICIg
aW5pdCB2YWx1ZXMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIik7Ci0gICAgICB9Ci0KLSAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGNvbnN0IHJlc3BvbnNlMSA9IG5ldyBSZXNwb25zZSgi
Iik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UxLmhlYWRlcnMsIHJlc3BvbnNlMS5o
ZWFkZXJzKTsKLQotICAgICAgICBjb25zdCByZXNwb25zZTIgPSBuZXcgUmVzcG9uc2UoIiIsIHsi
aGVhZGVycyI6IHsiWC1Gb28iOiAiYmFyIn19KTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNw
b25zZTIuaGVhZGVycywgcmVzcG9uc2UyLmhlYWRlcnMpOwotICAgICAgICBjb25zdCBoZWFkZXJz
ID0gcmVzcG9uc2UyLmhlYWRlcnM7Ci0gICAgICAgIHJlc3BvbnNlMi5oZWFkZXJzLnNldCgiWC1G
b28iLCAicXV1eCIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMsIHJlc3BvbnNlMi5o
ZWFkZXJzKTsKLSAgICAgICAgaGVhZGVycy5zZXQoIlgtT3RoZXItSGVhZGVyIiwgImJheiIpOwot
ICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMsIHJlc3BvbnNlMi5oZWFkZXJzKTsKLSAgICAg
IH0sICJUZXN0IHRoYXQgUmVzcG9uc2UuaGVhZGVycyBoYXMgdGhlIFtTYW1lT2JqZWN0XSBleHRl
bmRlZCBhdHRyaWJ1dGUiKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtaW5pdC0wMDItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMGE1YjZiYWFkNTdiMWIwYmU5ODAyN2YwOWQ4ZDgxOWFhMWJhZTJiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAy
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLQotUEFTUyBJbml0
aWFsaXplIFJlc3BvbnNlIHdpdGggaGVhZGVycyB2YWx1ZXMKLVBBU1MgSW5pdGlhbGl6ZSBSZXNw
b25zZSdzIGJvZHkgd2l0aCBhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkKLVBBU1MgSW5pdGlhbGl6
ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCBtdWx0aXBhcnQvZm9ybS1kYXRhCi1QQVNTIEluaXRpYWxp
emUgUmVzcG9uc2UncyBib2R5IHdpdGggYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk
O2NoYXJzZXQ9VVRGLTgKLVBBU1MgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCB0ZXh0
L3BsYWluO2NoYXJzZXQ9VVRGLTgKLVBBU1MgUmVhZCBSZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFi
bGVTdHJlYW0KLVBBU1MgVGVzdGluZyBlbXB0eSBSZXNwb25zZSBDb250ZW50LVR5cGUgaGVhZGVy
Ci1QQVNTIFRlc3RpbmcgbnVsbCBSZXNwb25zZSBib2R5Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLWluaXQtMDAyLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAw
Mi5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwYTViNmJhYWQ1N2IxYjBiZTk4MDI3ZjA5
ZDhkODE5YWExYmFlMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAw
Mi5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworUEFTUyBJbml0aWFsaXplIFJl
c3BvbnNlIHdpdGggaGVhZGVycyB2YWx1ZXMKK1BBU1MgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJv
ZHkgd2l0aCBhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkKK1BBU1MgSW5pdGlhbGl6ZSBSZXNwb25z
ZSdzIGJvZHkgd2l0aCBtdWx0aXBhcnQvZm9ybS1kYXRhCitQQVNTIEluaXRpYWxpemUgUmVzcG9u
c2UncyBib2R5IHdpdGggYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9
VVRGLTgKK1BBU1MgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCB0ZXh0L3BsYWluO2No
YXJzZXQ9VVRGLTgKK1BBU1MgUmVhZCBSZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0K
K1BBU1MgVGVzdGluZyBlbXB0eSBSZXNwb25zZSBDb250ZW50LVR5cGUgaGVhZGVyCitQQVNTIFRl
c3RpbmcgbnVsbCBSZXNwb25zZSBib2R5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWlu
aXQtMDAyLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDIuYW55Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmFueS5odG1sCkBAIC0wLDAgKzEgQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVy
ZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmFueS5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLWluaXQtMDAyLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzBhNDZlNDgwNDA2YzM1OWFiY2M3
Y2MzMTU4MTBhODQ0ZmZmNmVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5p
dC0wMDIuYW55LmpzCkBAIC0wLDAgKzEsNjEgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29y
a2VyCisvLyBNRVRBOiB0aXRsZT1SZXNwb25zZSBpbml0OiBib2R5IGFuZCBoZWFkZXJzCisvLyBN
RVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
IHZhciBoZWFkZXJEaWN0ID0geyJuYW1lMSI6ICJ2YWx1ZTEiLAorICAgICAgICAgICAgICAgICAg
ICAibmFtZTIiOiAidmFsdWUyIiwKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUzIjogInZhbHVl
MyIKKyAgfTsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJEaWN0KTsKKyAgdmFy
IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCIiLCB7ICJoZWFkZXJzIiA6IGhlYWRlcnMgfSkKKyAg
Zm9yICh2YXIgbmFtZSBpbiBoZWFkZXJEaWN0KSB7CisgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25z
ZS5oZWFkZXJzLmdldChuYW1lKSwgaGVhZGVyRGljdFtuYW1lXSwKKyAgICAgICJyZXNwb25zZSdz
IGhlYWRlcnMgaGFzICIgKyBuYW1lICsgIiA6ICIgKyBoZWFkZXJEaWN0W25hbWVdKTsKKyAgfQor
fSwgIkluaXRpYWxpemUgUmVzcG9uc2Ugd2l0aCBoZWFkZXJzIHZhbHVlcyIpOworCitmdW5jdGlv
biBjaGVja1Jlc3BvbnNlSW5pdChib2R5LCBib2R5VHlwZSwgZXhwZWN0ZWRUZXh0Qm9keSkgewor
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZhciByZXNwb25zZSA9IG5ldyBS
ZXNwb25zZShib2R5KTsKKyAgICB2YXIgcmVzSGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7Cisg
ICAgdmFyIG1pbWUgPSByZXNIZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIik7CisgICAgYXNzZXJ0
X3RydWUobWltZSAmJiBtaW1lLnNlYXJjaChib2R5VHlwZSkgPiAtMSwgIkNvbnRlbnQtVHlwZSBo
ZWFkZXIgc2hvdWxkIGJlIFwiIiArIGJvZHlUeXBlICsgIlwiICIpOworICAgIHJldHVybiByZXNw
b25zZS50ZXh0KCkudGhlbihmdW5jdGlvbihib2R5QXNUZXh0KSB7CisgICAgICAvL25vdCBlcXVh
bHM6IGNhbm5vdCBndWVzcyBmb3JtRGF0YSBleGFjdCB2YWx1ZQorICAgICAgYXNzZXJ0X3RydWUo
Ym9keUFzVGV4dC5zZWFyY2goZXhwZWN0ZWRUZXh0Qm9keSkgPiAtMSwgIlJldHJpZXZlIGFuZCB2
ZXJpZnkgcmVzcG9uc2UgYm9keSIpOworICAgIH0pOworICB9LCAiSW5pdGlhbGl6ZSBSZXNwb25z
ZSdzIGJvZHkgd2l0aCAiICsgYm9keVR5cGUpOworfQorCit2YXIgYmxvYiA9IG5ldyBCbG9iKFsi
VGhpcyBpcyBhIGJsb2IiXSwge3R5cGU6ICJhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkifSk7Cit2
YXIgZm9ybWFEYXRhID0gbmV3IEZvcm1EYXRhKCk7Citmb3JtYURhdGEuYXBwZW5kKCJuYW1lIiwg
InZhbHVlIik7Cit2YXIgdXJsU2VhcmNoUGFyYW1zID0gIlVSTFNlYXJjaFBhcmFtcyBhcmUgbm90
IHN1cHBvcnRlZCI7CisvL2F2b2lkIHRlc3QgdGltZW91dCBpZiBub3QgaW1wbGVtZW50ZWQKK2lm
IChzZWxmLlVSTFNlYXJjaFBhcmFtcykKKyAgdXJsU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJj
aFBhcmFtcygibmFtZT12YWx1ZSIpOwordmFyIHVzdlN0cmluZyA9ICJUaGlzIGlzIGEgVVNWU3Ry
aW5nIgorCitjaGVja1Jlc3BvbnNlSW5pdChibG9iLCAiYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5
IiwgIlRoaXMgaXMgYSBibG9iIik7CitjaGVja1Jlc3BvbnNlSW5pdChmb3JtYURhdGEsICJtdWx0
aXBhcnQvZm9ybS1kYXRhIiwgIm5hbWU9XCJuYW1lXCJcclxuXHJcbnZhbHVlIik7CitjaGVja1Jl
c3BvbnNlSW5pdCh1cmxTZWFyY2hQYXJhbXMsICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVu
Y29kZWQ7Y2hhcnNldD1VVEYtOCIsICJuYW1lPXZhbHVlIik7CitjaGVja1Jlc3BvbnNlSW5pdCh1
c3ZTdHJpbmcsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiLCAiVGhpcyBpcyBhIFVTVlN0cmlu
ZyIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICB2YXIgYm9keSA9ICJUaGlz
IGlzIHJlc3BvbnNlIGJvZHkiOworICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSk7
CisgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFk
ZXIoKSwgYm9keSk7Cit9LCAiUmVhZCBSZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0i
KTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgdmFyIHJlc3BvbnNlID0gbmV3
IFJlc3BvbnNlKCJUaGlzIGlzIG15IGZvcmsiLCB7ImhlYWRlcnMiIDogW1siQ29udGVudC1UeXBl
IiwgIiJdXX0pOworICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4oZnVuY3Rpb24oYmxvYikg
eworICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCAiIiwgIkJsb2IgdHlwZSBzaG91bGQgYmUg
dGhlIGVtcHR5IHN0cmluZyIpOworICB9KTsKK30sICJUZXN0aW5nIGVtcHR5IFJlc3BvbnNlIENv
bnRlbnQtVHlwZSBoZWFkZXIiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIHJlc3BvbnNl
ID0gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IDIwNH0pOworICBhc3NlcnRfZXF1YWxzKHJl
c3BvbnNlLmJvZHksIG51bGwpOworfSwgIlRlc3RpbmcgbnVsbCBSZXNwb25zZSBib2R5Iik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAwYTViNmJhYWQ1N2IxYjBiZTk4MDI3ZjA5ZDhkODE5YWExYmFlMmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgSW5pdGlhbGl6ZSBSZXNwb25zZSB3aXRoIGhlYWRl
cnMgdmFsdWVzCitQQVNTIEluaXRpYWxpemUgUmVzcG9uc2UncyBib2R5IHdpdGggYXBwbGljYXRp
b24vb2N0ZXQtYmluYXJ5CitQQVNTIEluaXRpYWxpemUgUmVzcG9uc2UncyBib2R5IHdpdGggbXVs
dGlwYXJ0L2Zvcm0tZGF0YQorUEFTUyBJbml0aWFsaXplIFJlc3BvbnNlJ3MgYm9keSB3aXRoIGFw
cGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04CitQQVNTIEluaXRp
YWxpemUgUmVzcG9uc2UncyBib2R5IHdpdGggdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNT
IFJlYWQgUmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCitQQVNTIFRlc3RpbmcgZW1w
dHkgUmVzcG9uc2UgQ29udGVudC1UeXBlIGhlYWRlcgorUEFTUyBUZXN0aW5nIG51bGwgUmVzcG9u
c2UgYm9keQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi5hbnkud29ya2Vy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsx
IEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1
Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2UtaW5pdC0wMDIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQ4
YWY4MzM2NDRlZmVhNTM3Mzk2M2ZjMWNlMThhMjAyZGQ0NTRjNS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4K
LSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5SZXNwb25z
ZSBpbml0OiBib2R5IGFuZCBoZWFkZXJzPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBo
cmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2UiPgotICAgIDxtZXRh
IG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0
LXJlc3BvbnNlIj4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJj
aCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgot
ICA8Ym9keT4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0aWxzLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0PgotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhl
YWRlckRpY3QgPSB7Im5hbWUxIjogInZhbHVlMSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICJuYW1lMiI6ICJ2YWx1ZTIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZTMiOiAi
dmFsdWUzIgotICAgICAgICB9OwotICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhl
YWRlckRpY3QpOwotICAgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoIiIsIHsgImhl
YWRlcnMiIDogaGVhZGVycyB9KQotICAgICAgICBmb3IgKHZhciBuYW1lIGluIGhlYWRlckRpY3Qp
IHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KG5hbWUpLCBo
ZWFkZXJEaWN0W25hbWVdLAotICAgICAgICAgICAicmVzcG9uc2UncyBoZWFkZXJzIGhhcyAiICsg
bmFtZSArICIgOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJJ
bml0aWFsaXplIFJlc3BvbnNlIHdpdGggaGVhZGVycyB2YWx1ZXMiKTsKLQotICAgICAgZnVuY3Rp
b24gY2hlY2tSZXNwb25zZUluaXQoYm9keSwgYm9keVR5cGUsIGV4cGVjdGVkVGV4dEJvZHkpIHsK
LSAgICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgICB2YXIgcmVz
cG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSk7Ci0gICAgICAgICAgdmFyIHJlc0hlYWRlcnMgPSBy
ZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgIHZhciBtaW1lID0gcmVzSGVhZGVycy5nZXQoIkNv
bnRlbnQtVHlwZSIpOwotICAgICAgICAgIGFzc2VydF90cnVlKG1pbWUgJiYgbWltZS5zZWFyY2go
Ym9keVR5cGUpID4gLTEsICJDb250ZW50LVR5cGUgaGVhZGVyIHNob3VsZCBiZSBcIiIgKyBib2R5
VHlwZSArICJcIiAiKTsKLSAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVu
Y3Rpb24oYm9keUFzVGV4dCkgewotICAgICAgICAgICAgLy9ub3QgZXF1YWxzOiBjYW5ub3QgZ3Vl
c3MgZm9ybURhdGEgZXhhY3QgdmFsdWUKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGJvZHlBc1Rl
eHQuc2VhcmNoKGV4cGVjdGVkVGV4dEJvZHkpID4gLTEsICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJl
c3BvbnNlIGJvZHkiKTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSwgIkluaXRpYWxpemUgUmVz
cG9uc2UncyBib2R5IHdpdGggIiArIGJvZHlUeXBlKTsKLSAgICAgIH0KLQotICAgICAgdmFyIGJs
b2IgPSBuZXcgQmxvYihbIlRoaXMgaXMgYSBibG9iIl0sIHt0eXBlOiAiYXBwbGljYXRpb24vb2N0
ZXQtYmluYXJ5In0pOwotICAgICAgdmFyIGZvcm1hRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwotICAg
ICAgZm9ybWFEYXRhLmFwcGVuZCgibmFtZSIsICJ2YWx1ZSIpOwotICAgICAgdmFyIHVybFNlYXJj
aFBhcmFtcyA9ICJVUkxTZWFyY2hQYXJhbXMgYXJlIG5vdCBzdXBwb3J0ZWQiOwotICAgICAgLy9h
dm9pZCB0ZXN0IHRpbWVvdXQgaWYgbm90IGltcGxlbWVudGVkCi0gICAgICBpZiAod2luZG93LlVS
TFNlYXJjaFBhcmFtcykKLSAgICAgICAgdXJsU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBh
cmFtcygibmFtZT12YWx1ZSIpOwotICAgICAgdmFyIHVzdlN0cmluZyA9ICJUaGlzIGlzIGEgVVNW
U3RyaW5nIgotCi0gICAgICBjaGVja1Jlc3BvbnNlSW5pdChibG9iLCAiYXBwbGljYXRpb24vb2N0
ZXQtYmluYXJ5IiwgIlRoaXMgaXMgYSBibG9iIik7Ci0gICAgICBjaGVja1Jlc3BvbnNlSW5pdChm
b3JtYURhdGEsICJtdWx0aXBhcnQvZm9ybS1kYXRhIiwgIm5hbWU9XCJuYW1lXCJcclxuXHJcbnZh
bHVlIik7Ci0gICAgICBjaGVja1Jlc3BvbnNlSW5pdCh1cmxTZWFyY2hQYXJhbXMsICJhcHBsaWNh
dGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIsICJuYW1lPXZhbHVlIik7
Ci0gICAgICBjaGVja1Jlc3BvbnNlSW5pdCh1c3ZTdHJpbmcsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9
VVRGLTgiLCAiVGhpcyBpcyBhIFVTVlN0cmluZyIpOwotCi0gICAgICBwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odGVzdCkgewotICAgICAgICB2YXIgYm9keSA9ICJUaGlzIGlzIHJlc3BvbnNlIGJvZHki
OwotICAgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSk7Ci0gICAgICAgIHJl
dHVybiB2YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwg
Ym9keSk7Ci0gICAgICB9LCAiUmVhZCBSZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0i
KTsKLQotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJl
c3BvbnNlID0gbmV3IFJlc3BvbnNlKCJUaGlzIGlzIG15IGZvcmsiLCB7ImhlYWRlcnMiIDogW1si
Q29udGVudC1UeXBlIiwgIiJdXX0pOwotICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRo
ZW4oZnVuY3Rpb24oYmxvYikgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCAi
IiwgIkJsb2IgdHlwZSBzaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZyIpOwotICAgICAgICB9KTsK
LSAgICAgIH0sICJUZXN0aW5nIGVtcHR5IFJlc3BvbnNlIENvbnRlbnQtVHlwZSBoZWFkZXIiKTsK
LQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJl
c3BvbnNlKG51bGwsIHtzdGF0dXM6IDIwNH0pOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3Bv
bnNlLmJvZHksIG51bGwpOwotICAgICAgfSwgIlRlc3RpbmcgbnVsbCBSZXNwb25zZSBib2R5Iik7
Ci0KLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2Utc3RhdGljLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRp
Yy1lcnJvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZGNm
NTEzZGMwZjFlYjMwZTM3N2Y5MTEyNTEwZWE3NWI3NjZjYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1QQVNTIENoZWNrIHJl
c3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgZXJyb3IoKQotUEFTUyB0aGUgJ2d1YXJk
JyBvZiB0aGUgSGVhZGVycyBpbnN0YW5jZSBzaG91bGQgYmUgaW1tdXRhYmxlCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2Utc3RhdGljLWVycm9yLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFkY2Y1
MTNkYzBmMWViMzBlMzc3ZjkxMTI1MTBlYTc1Yjc2NmNiMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorCitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgZXJyb3Io
KQorUEFTUyB0aGUgJ2d1YXJkJyBvZiB0aGUgSGVhZGVycyBpbnN0YW5jZSBzaG91bGQgYmUgaW1t
dXRhYmxlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5hbnkuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgy
OTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0g
VGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBy
dW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5hbnkuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1zdGF0aWMtZXJyb3IuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwOTdlYWIzN2I0YzkwZThjNDUz
MDI3Yjk5ZmJmNGVkMzFhMDhiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1z
dGF0aWMtZXJyb3IuYW55LmpzCkBAIC0wLDAgKzEsMjIgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5k
b3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXNwb25zZTogZXJyb3Igc3RhdGljIG1ldGhvZAor
Cit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgcmVzcG9uc2VFcnJvciA9IFJlc3BvbnNlLmVycm9y
KCk7CisgIGFzc2VydF9lcXVhbHMocmVzcG9uc2VFcnJvci50eXBlLCAiZXJyb3IiLCAiTmV0d29y
ayBlcnJvciByZXNwb25zZSdzIHR5cGUgaXMgZXJyb3IiKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXNw
b25zZUVycm9yLnN0YXR1cywgMCwgIk5ldHdvcmsgZXJyb3IgcmVzcG9uc2UncyBzdGF0dXMgaXMg
MCIpOworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlRXJyb3Iuc3RhdHVzVGV4dCwgIiIsICJOZXR3
b3JrIGVycm9yIHJlc3BvbnNlJ3Mgc3RhdHVzVGV4dCBpcyBlbXB0eSIpOworICBhc3NlcnRfZXF1
YWxzKHJlc3BvbnNlRXJyb3IuYm9keSwgbnVsbCwgIk5ldHdvcmsgZXJyb3IgcmVzcG9uc2UncyBi
b2R5IGlzIG51bGwiKTsKKworICBhc3NlcnRfdHJ1ZShyZXNwb25zZUVycm9yLmhlYWRlcnMuZW50
cmllcygpLm5leHQoKS5kb25lLCAiSGVhZGVycyBzaG91bGQgYmUgZW1wdHkiKTsKK30sICJDaGVj
ayByZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0aG9kIGVycm9yKCkiKTsKKwordGVzdChm
dW5jdGlvbigpIHsKKyAgY29uc3QgaGVhZGVycyA9IFJlc3BvbnNlLmVycm9yKCkuaGVhZGVyczsK
KworICAvLyBBdm9pZCBmYWxzZSBwb3NpdGl2ZXMgaWYgZXhwZWN0ZWQgQVBJIGlzIG5vdCBhdmFp
bGFibGUKKyAgYXNzZXJ0X3RydWUoISFoZWFkZXJzKTsKKyAgYXNzZXJ0X2VxdWFscyh0eXBlb2Yg
aGVhZGVycy5hcHBlbmQsICdmdW5jdGlvbicpOworCisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVy
cm9yLCBmdW5jdGlvbiAoKSB7IGhlYWRlcnMuYXBwZW5kKCduYW1lJywgJ3ZhbHVlJyk7IH0pOwor
fSwgInRoZSAnZ3VhcmQnIG9mIHRoZSBIZWFkZXJzIGluc3RhbmNlIHNob3VsZCBiZSBpbW11dGFi
bGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWRjZjUxM2RjMGYxZWIzMGUzNzdmOTExMjUxMGVhNzVi
NzY2Y2IwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIENoZWNrIHJlc3Bv
bnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgZXJyb3IoKQorUEFTUyB0aGUgJ2d1YXJkJyBv
ZiB0aGUgSGVhZGVycyBpbnN0YW5jZSBzaG91bGQgYmUgaW1tdXRhYmxlCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1zdGF0aWMtZXJyb3IuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1Mjhl
NjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1zdGF0aWMtZXJyb3IuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0g
VGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBy
dW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2Utc3RhdGljLWVycm9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyZDZl
ODJkNDI3OWI3YzkxMWYzOGU0ZmU4Mjk0ZDAzYjUxZWM5ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1s
PgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJlc3Bv
bnNlOiBlcnJvciBzdGF0aWMgbWV0aG9kPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBo
cmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2UiPgotICAgIDxtZXRh
IG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0
LW5ldHdvcmstZXJyb3IiPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJl
c2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hl
YWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAg
ICAgICB2YXIgcmVzcG9uc2VFcnJvciA9IFJlc3BvbnNlLmVycm9yKCk7Ci0gICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVzcG9uc2VFcnJvci50eXBlLCAiZXJyb3IiLCAiTmV0d29yayBlcnJvciByZXNw
b25zZSdzIHR5cGUgaXMgZXJyb3IiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZUVy
cm9yLnN0YXR1cywgMCwgIk5ldHdvcmsgZXJyb3IgcmVzcG9uc2UncyBzdGF0dXMgaXMgMCIpOwot
ICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlRXJyb3Iuc3RhdHVzVGV4dCwgIiIsICJOZXR3
b3JrIGVycm9yIHJlc3BvbnNlJ3Mgc3RhdHVzVGV4dCBpcyBlbXB0eSIpOwotICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlc3BvbnNlRXJyb3IuYm9keSwgbnVsbCwgIk5ldHdvcmsgZXJyb3IgcmVzcG9u
c2UncyBib2R5IGlzIG51bGwiKTsKLQotICAgICAgICBhc3NlcnRfdHJ1ZShyZXNwb25zZUVycm9y
LmhlYWRlcnMuZW50cmllcygpLm5leHQoKS5kb25lLCAiSGVhZGVycyBzaG91bGQgYmUgZW1wdHki
KTsKLSAgICAgIH0sICJDaGVjayByZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0aG9kIGVy
cm9yKCkiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgY29uc3QgaGVhZGVy
cyA9IFJlc3BvbnNlLmVycm9yKCkuaGVhZGVyczsKLQotICAgICAgICAvLyBBdm9pZCBmYWxzZSBw
b3NpdGl2ZXMgaWYgZXhwZWN0ZWQgQVBJIGlzIG5vdCBhdmFpbGFibGUKLSAgICAgICAgYXNzZXJ0
X3RydWUoISFoZWFkZXJzKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgaGVhZGVycy5h
cHBlbmQsICdmdW5jdGlvbicpOwotCi0gICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9y
LCBmdW5jdGlvbiAoKSB7IGhlYWRlcnMuYXBwZW5kKCduYW1lJywgJ3ZhbHVlJyk7IH0pOwotICAg
ICAgfSwgInRoZSAnZ3VhcmQnIG9mIHRoZSBIZWFkZXJzIGluc3RhbmNlIHNob3VsZCBiZSBpbW11
dGFibGUiKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0YXRpYy1yZWRpcmVjdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg4OWNhNjk3NDNiN2ZiMjI4NWFhOGQ5ZWFjNGVmZDQ4OTk5MDQwYmIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3Rh
dGljLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAK
LQotUEFTUyBDaGVjayBkZWZhdWx0IHJlZGlyZWN0IHJlc3BvbnNlCi1QQVNTIENoZWNrIHJlc3Bv
bnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzAxCi1Q
QVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwg
c3RhdHVzID0gMzAyCi1QQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRo
b2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzAzCi1QQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVk
IGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzA3Ci1QQVNTIENoZWNrIHJl
c3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzA4
Ci1QQVNTIENoZWNrIGVycm9yIHJldHVybmVkIHdoZW4gZ2l2aW5nIGludmFsaWQgdXJsIHRvIHJl
ZGlyZWN0KCkKLVBBU1MgQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hlbiBnaXZpbmcgaW52YWxpZCBz
dGF0dXMgdG8gcmVkaXJlY3QoKSwgc3RhdHVzID0gMjAwCi1QQVNTIENoZWNrIGVycm9yIHJldHVy
bmVkIHdoZW4gZ2l2aW5nIGludmFsaWQgc3RhdHVzIHRvIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMw
OQotUEFTUyBDaGVjayBlcnJvciByZXR1cm5lZCB3aGVuIGdpdmluZyBpbnZhbGlkIHN0YXR1cyB0
byByZWRpcmVjdCgpLCBzdGF0dXMgPSA0MDAKLVBBU1MgQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hl
biBnaXZpbmcgaW52YWxpZCBzdGF0dXMgdG8gcmVkaXJlY3QoKSwgc3RhdHVzID0gNTAwCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5hbnktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0LmFueS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODg5Y2E2OTc0M2I3ZmIyMjg1YWE4ZDllYWM0ZWZkNDg5OTkwNDBiYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5hbnktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKKworUEFTUyBDaGVjayBkZWZhdWx0IHJlZGlyZWN0IHJlc3BvbnNl
CitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3Qo
KSwgc3RhdHVzID0gMzAxCitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBt
ZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzAyCitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVy
bmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzAzCitQQVNTIENoZWNr
IHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0g
MzA3CitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJl
Y3QoKSwgc3RhdHVzID0gMzA4CitQQVNTIENoZWNrIGVycm9yIHJldHVybmVkIHdoZW4gZ2l2aW5n
IGludmFsaWQgdXJsIHRvIHJlZGlyZWN0KCkKK1BBU1MgQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hl
biBnaXZpbmcgaW52YWxpZCBzdGF0dXMgdG8gcmVkaXJlY3QoKSwgc3RhdHVzID0gMjAwCitQQVNT
IENoZWNrIGVycm9yIHJldHVybmVkIHdoZW4gZ2l2aW5nIGludmFsaWQgc3RhdHVzIHRvIHJlZGly
ZWN0KCksIHN0YXR1cyA9IDMwOQorUEFTUyBDaGVjayBlcnJvciByZXR1cm5lZCB3aGVuIGdpdmlu
ZyBpbnZhbGlkIHN0YXR1cyB0byByZWRpcmVjdCgpLCBzdGF0dXMgPSA0MDAKK1BBU1MgQ2hlY2sg
ZXJyb3IgcmV0dXJuZWQgd2hlbiBnaXZpbmcgaW52YWxpZCBzdGF0dXMgdG8gcmVkaXJlY3QoKSwg
c3RhdHVzID0gNTAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVj
dC5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5hbnkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0LmFueS5odG1sCkBAIC0w
LDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZy
YXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5h
bnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QuYW55LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk3MWJhZWM0OTA5ZGU2N2I3ZmU4MDAxZTYwMGM3ZDc3YzFkZjIzZWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QuYW55LmpzCkBAIC0wLDAgKzEsNDAg
QEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXNwb25z
ZTogcmVkaXJlY3Qgc3RhdGljIG1ldGhvZAorCit2YXIgdXJsID0gImh0dHA6Ly90ZXN0LnVybDox
MjM0LyI7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICByZWRpcmVjdFJlc3BvbnNlID0gUmVzcG9uc2Uu
cmVkaXJlY3QodXJsKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWRpcmVjdFJlc3BvbnNlLnR5cGUsICJk
ZWZhdWx0Iik7CisgIGFzc2VydF9mYWxzZShyZWRpcmVjdFJlc3BvbnNlLnJlZGlyZWN0ZWQpOwor
ICBhc3NlcnRfZmFsc2UocmVkaXJlY3RSZXNwb25zZS5vayk7CisgIGFzc2VydF9lcXVhbHMocmVk
aXJlY3RSZXNwb25zZS5zdGF0dXMsIDMwMiwgIkRlZmF1bHQgcmVkaXJlY3Qgc3RhdHVzIGlzIDMw
MiIpOworICBhc3NlcnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2UuaGVhZGVycy5nZXQoIkxvY2F0
aW9uIiksIHVybCwKKyAgICAicmVkaXJlY3RlZCByZXNwb25zZSBoYXMgTG9jYXRpb24gaGVhZGVy
IHdpdGggdGhlIGNvcnJlY3QgdXJsIik7CisgIGFzc2VydF9lcXVhbHMocmVkaXJlY3RSZXNwb25z
ZS5zdGF0dXNUZXh0LCAiIik7Cit9LCAiQ2hlY2sgZGVmYXVsdCByZWRpcmVjdCByZXNwb25zZSIp
OworCitbMzAxLCAzMDIsIDMwMywgMzA3LCAzMDhdLmZvckVhY2goZnVuY3Rpb24oc3RhdHVzKSB7
CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgcmVkaXJlY3RSZXNwb25zZSA9IFJlc3BvbnNlLnJl
ZGlyZWN0KHVybCwgc3RhdHVzKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2Uu
dHlwZSwgImRlZmF1bHQiKTsKKyAgICBhc3NlcnRfZmFsc2UocmVkaXJlY3RSZXNwb25zZS5yZWRp
cmVjdGVkKTsKKyAgICBhc3NlcnRfZmFsc2UocmVkaXJlY3RSZXNwb25zZS5vayk7CisgICAgYXNz
ZXJ0X2VxdWFscyhyZWRpcmVjdFJlc3BvbnNlLnN0YXR1cywgc3RhdHVzLCAiUmVkaXJlY3Qgc3Rh
dHVzIGlzICIgKyBzdGF0dXMpOworICAgIGFzc2VydF9lcXVhbHMocmVkaXJlY3RSZXNwb25zZS5o
ZWFkZXJzLmdldCgiTG9jYXRpb24iKSwgdXJsKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlZGlyZWN0
UmVzcG9uc2Uuc3RhdHVzVGV4dCwgIiIpOworICB9LCAiQ2hlY2sgcmVzcG9uc2UgcmV0dXJuZWQg
Ynkgc3RhdGljIG1ldGhvZCByZWRpcmVjdCgpLCBzdGF0dXMgPSAiICsgc3RhdHVzKTsKK30pOwor
Cit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaW52YWxpZFVybCA9ICJodHRwOi8vOlRoaXMgaXMg
bm90IGFuIHVybCI7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsg
UmVzcG9uc2UucmVkaXJlY3QoaW52YWxpZFVybCk7IH0sCisgICAgIkV4cGVjdCBUeXBlRXJyb3Ig
ZXhjZXB0aW9uIik7Cit9LCAiQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hlbiBnaXZpbmcgaW52YWxp
ZCB1cmwgdG8gcmVkaXJlY3QoKSIpOworCit2YXIgaW52YWxpZFJlZGlyZWN0U3RhdHVzID0gWzIw
MCwgMzA5LCA0MDAsIDUwMF07CitpbnZhbGlkUmVkaXJlY3RTdGF0dXMuZm9yRWFjaChmdW5jdGlv
bihpbnZhbGlkU3RhdHVzKSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X3Rocm93
c19qcyhSYW5nZUVycm9yLCBmdW5jdGlvbigpIHsgUmVzcG9uc2UucmVkaXJlY3QodXJsLCBpbnZh
bGlkU3RhdHVzKTsgfSwKKyAgICAgICAgIkV4cGVjdCBSYW5nZUVycm9yIGV4Y2VwdGlvbiIpOwor
ICB9LCAiQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hlbiBnaXZpbmcgaW52YWxpZCBzdGF0dXMgdG8g
cmVkaXJlY3QoKSwgc3RhdHVzID0gIiArIGludmFsaWRTdGF0dXMpOworfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QuYW55Lndvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODg5Y2E2OTc0M2I3ZmIyMjg1YWE4ZDllYWM0ZWZkNDg5OTkwNDBiYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACisKK1BBU1MgQ2hlY2sgZGVmYXVsdCByZWRp
cmVjdCByZXNwb25zZQorUEFTUyBDaGVjayByZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0
aG9kIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMwMQorUEFTUyBDaGVjayByZXNwb25zZSByZXR1cm5l
ZCBieSBzdGF0aWMgbWV0aG9kIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMwMgorUEFTUyBDaGVjayBy
ZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0aG9kIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMw
MworUEFTUyBDaGVjayByZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0aG9kIHJlZGlyZWN0
KCksIHN0YXR1cyA9IDMwNworUEFTUyBDaGVjayByZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMg
bWV0aG9kIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMwOAorUEFTUyBDaGVjayBlcnJvciByZXR1cm5l
ZCB3aGVuIGdpdmluZyBpbnZhbGlkIHVybCB0byByZWRpcmVjdCgpCitQQVNTIENoZWNrIGVycm9y
IHJldHVybmVkIHdoZW4gZ2l2aW5nIGludmFsaWQgc3RhdHVzIHRvIHJlZGlyZWN0KCksIHN0YXR1
cyA9IDIwMAorUEFTUyBDaGVjayBlcnJvciByZXR1cm5lZCB3aGVuIGdpdmluZyBpbnZhbGlkIHN0
YXR1cyB0byByZWRpcmVjdCgpLCBzdGF0dXMgPSAzMDkKK1BBU1MgQ2hlY2sgZXJyb3IgcmV0dXJu
ZWQgd2hlbiBnaXZpbmcgaW52YWxpZCBzdGF0dXMgdG8gcmVkaXJlY3QoKSwgc3RhdHVzID0gNDAw
CitQQVNTIENoZWNrIGVycm9yIHJldHVybmVkIHdoZW4gZ2l2aW5nIGludmFsaWQgc3RhdHVzIHRv
IHJlZGlyZWN0KCksIHN0YXR1cyA9IDUwMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1z
dGF0aWMtcmVkaXJlY3QuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJl
ZGlyZWN0LmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZj
NjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3Rh
dGljLXJlZGlyZWN0LmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0
YXRpYy1yZWRpcmVjdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNjQ3YjZk
ZWJlYjg5MzBmOTg4NjhiMTA2NTJjZDhlMmNhNTI3Mzg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRt
bD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5SZXNw
b25zZTogcmVkaXJlY3Qgc3RhdGljIG1ldGhvZDwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KLSAgICA8
bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVk
aXJlY3Qtc3RhdHVzIj4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNl
YXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFk
PgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgICAgdmFyIHVybCA9ICJodHRwOi8vdGVzdC51
cmw6MTIzNC8iOwotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgcmVkaXJlY3RSZXNw
b25zZSA9IFJlc3BvbnNlLnJlZGlyZWN0KHVybCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVk
aXJlY3RSZXNwb25zZS50eXBlLCAiZGVmYXVsdCIpOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVk
aXJlY3RSZXNwb25zZS5yZWRpcmVjdGVkKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlZGlyZWN0
UmVzcG9uc2Uub2spOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2Uuc3Rh
dHVzLCAzMDIsICJEZWZhdWx0IHJlZGlyZWN0IHN0YXR1cyBpcyAzMDIiKTsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZWRpcmVjdFJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJMb2NhdGlvbiIpLCB1cmws
Ci0gICAgICAgICAgInJlZGlyZWN0ZWQgcmVzcG9uc2UgaGFzIExvY2F0aW9uIGhlYWRlciB3aXRo
IHRoZSBjb3JyZWN0IHVybCIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9u
c2Uuc3RhdHVzVGV4dCwgIiIpOwotICAgICAgfSwgIkNoZWNrIGRlZmF1bHQgcmVkaXJlY3QgcmVz
cG9uc2UiKTsKLQotICAgICAgWzMwMSwgMzAyLCAzMDMsIDMwNywgMzA4XS5mb3JFYWNoKGZ1bmN0
aW9uKHN0YXR1cykgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJlZGly
ZWN0UmVzcG9uc2UgPSBSZXNwb25zZS5yZWRpcmVjdCh1cmwsIHN0YXR1cyk7Ci0gICAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZWRpcmVjdFJlc3BvbnNlLnR5cGUsICJkZWZhdWx0Iik7Ci0gICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKHJlZGlyZWN0UmVzcG9uc2UucmVkaXJlY3RlZCk7Ci0gICAgICAgICAg
YXNzZXJ0X2ZhbHNlKHJlZGlyZWN0UmVzcG9uc2Uub2spOwotICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVkaXJlY3RSZXNwb25zZS5zdGF0dXMsIHN0YXR1cywgIlJlZGlyZWN0IHN0YXR1cyBpcyAi
ICsgc3RhdHVzKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2UuaGVh
ZGVycy5nZXQoIkxvY2F0aW9uIiksIHVybCk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWRp
cmVjdFJlc3BvbnNlLnN0YXR1c1RleHQsICIiKTsKLSAgICAgICAgfSwgIkNoZWNrIHJlc3BvbnNl
IHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gIiArIHN0YXR1
cyk7Ci0gICAgICB9KTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGlu
dmFsaWRVcmwgPSAiaHR0cDovLzpUaGlzIGlzIG5vdCBhbiB1cmwiOwotICAgICAgICBhc3NlcnRf
dGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IFJlc3BvbnNlLnJlZGlyZWN0KGludmFs
aWRVcmwpOyB9LAotICAgICAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOwotICAg
ICAgfSwgIkNoZWNrIGVycm9yIHJldHVybmVkIHdoZW4gZ2l2aW5nIGludmFsaWQgdXJsIHRvIHJl
ZGlyZWN0KCkiKTsKLQotICAgICAgdmFyIGludmFsaWRSZWRpcmVjdFN0YXR1cyA9IFsyMDAsIDMw
OSwgNDAwLCA1MDBdOwotICAgICAgaW52YWxpZFJlZGlyZWN0U3RhdHVzLmZvckVhY2goZnVuY3Rp
b24oaW52YWxpZFN0YXR1cykgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAg
IGFzc2VydF90aHJvd3NfanMoUmFuZ2VFcnJvciwgZnVuY3Rpb24oKSB7IFJlc3BvbnNlLnJlZGly
ZWN0KHVybCwgaW52YWxpZFN0YXR1cyk7IH0sCi0gICAgICAgICAgICAgICJFeHBlY3QgUmFuZ2VF
cnJvciBleGNlcHRpb24iKTsKLSAgICAgICAgfSwgIkNoZWNrIGVycm9yIHJldHVybmVkIHdoZW4g
Z2l2aW5nIGludmFsaWQgc3RhdHVzIHRvIHJlZGlyZWN0KCksIHN0YXR1cyA9ICIgKyBpbnZhbGlk
U3RhdHVzKTsKLSAgICAgIH0pOwotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0xLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDkxOTIyMTE1NWM2Yzk0OGJhYWU5Y2Y4ZjNhMWExOTIw
NzRkMDZmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNiArMCwwIEBACi0KLVBBU1MgR2V0dGluZyBibG9iIGFmdGVyIGdldHRpbmcgdGhl
IFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkCi1QQVNTIEdldHRpbmcg
dGV4dCBhZnRlciBnZXR0aW5nIHRoZSBSZXNwb25zZSBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90
IGxvY2tlZAotUEFTUyBHZXR0aW5nIGpzb24gYWZ0ZXIgZ2V0dGluZyB0aGUgUmVzcG9uc2UgYm9k
eSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQKLVBBU1MgR2V0dGluZyBhcnJheUJ1ZmZlciBh
ZnRlciBnZXR0aW5nIHRoZSBSZXNwb25zZSBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tl
ZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEuYW55LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMS5hbnktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA5MTkyMjExNTVjNmM5NDhiYWFlOWNmOGYzYTFhMTkyMDc0ZDA2
ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEu
YW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBHZXR0aW5nIGJsb2IgYWZ0
ZXIgZ2V0dGluZyB0aGUgUmVzcG9uc2UgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQK
K1BBU1MgR2V0dGluZyB0ZXh0IGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3Qg
ZGlzdHVyYmVkLCBub3QgbG9ja2VkCitQQVNTIEdldHRpbmcganNvbiBhZnRlciBnZXR0aW5nIHRo
ZSBSZXNwb25zZSBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZAorUEFTUyBHZXR0aW5n
IGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVy
YmVkLCBub3QgbG9ja2VkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0
dXJiZWQtMS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMS5hbnku
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0xLmFu
eS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJL
aXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVh
bS1kaXN0dXJiZWQtMS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEu
YW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ4MDA0OWEyYTQ1NWUxYWZjOWExZGYyNDQzMTliMTY0MTQxZjk5
NWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEu
YW55LmpzCkBAIC0wLDAgKzEsNDIgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisv
LyBNRVRBOiB0aXRsZT1Db25zdW1pbmcgUmVzcG9uc2UgYm9keSBhZnRlciBnZXR0aW5nIGEgUmVh
ZGFibGVTdHJlYW0KKworZnVuY3Rpb24gY3JlYXRlUmVzcG9uc2VXaXRoUmVhZGFibGVTdHJlYW0o
Y2FsbGJhY2spIHsKKyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRhLmpzb24iKS50
aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHZhciByZWFkZXIgPSByZXNwb25zZS5i
b2R5LmdldFJlYWRlcigpOworICAgICAgICByZWFkZXIucmVsZWFzZUxvY2soKTsKKyAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKHJlc3BvbnNlKTsKKyAgICB9KTsKK30KKworcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKCkgeworICAgIHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhSZWFkYWJsZVN0cmVhbShm
dW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4o
ZnVuY3Rpb24oYmxvYikgeworICAgICAgICAgICAgYXNzZXJ0X3RydWUoYmxvYiBpbnN0YW5jZW9m
IEJsb2IpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0
dGluZyB0aGUgUmVzcG9uc2UgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQiKTsKKwor
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhS
ZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICByZXR1cm4gcmVzcG9u
c2UudGV4dCgpLnRoZW4oZnVuY3Rpb24odGV4dCkgeworICAgICAgICAgICAgYXNzZXJ0X3RydWUo
dGV4dC5sZW5ndGggPiAwKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9LCAiR2V0dGluZyB0ZXh0
IGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9j
a2VkIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gY3JlYXRlUmVz
cG9uc2VXaXRoUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgcmV0
dXJuIHJlc3BvbnNlLmpzb24oKS50aGVuKGZ1bmN0aW9uKGpzb24pIHsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHModHlwZW9mIGpzb24sICJvYmplY3QiKTsKKyAgICAgICAgfSk7CisgICAgfSk7
Cit9LCAiR2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3Qg
ZGlzdHVyYmVkLCBub3QgbG9ja2VkIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAg
ICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9u
c2UpIHsKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlv
bihhcnJheUJ1ZmZlcikgeworICAgICAgICAgICAgYXNzZXJ0X3RydWUoYXJyYXlCdWZmZXIuYnl0
ZUxlbmd0aCA+IDApOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJHZXR0aW5nIGFycmF5QnVm
ZmVyIGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3Qg
bG9ja2VkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEu
YW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVk
LTEuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkxOTIyMTE1NWM2Yzk0OGJh
YWU5Y2Y4ZjNhMWExOTIwNzRkMDZmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LXN0cmVhbS1kaXN0dXJiZWQtMS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKKworUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVzcG9uc2UgYm9keSAt
IG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQKK1BBU1MgR2V0dGluZyB0ZXh0IGFmdGVyIGdldHRp
bmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkCitQQVNTIEdl
dHRpbmcganNvbiBhZnRlciBnZXR0aW5nIHRoZSBSZXNwb25zZSBib2R5IC0gbm90IGRpc3R1cmJl
ZCwgbm90IGxvY2tlZAorUEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgdGhl
IFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMS5hbnkud29ya2VyLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEuYW55Lndvcmtlci5odG1sCkBA
IC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBp
bmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJi
ZWQtMS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0xLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5ZGI4Zjc3YjliYWRjMzQ0OGQ1Y2U2MDk5ZWYyYmE4
MjA1N2ExNDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0xLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw1NyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPkNvbnN1bWluZyBSZXNwb25zZSBib2R5IGFm
dGVyIGdldHRpbmcgYSBSZWFkYWJsZVN0cmVhbTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KLSAgICA8
bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9k
eS1taXhpbiI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2gg
RnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgotICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAg
PGJvZHk+Ci0gICAgPHNjcmlwdD4KLQotZnVuY3Rpb24gY3JlYXRlUmVzcG9uc2VXaXRoUmVhZGFi
bGVTdHJlYW0oY2FsbGJhY2spIHsKLSAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRh
Lmpzb24iKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgIHZhciByZWFkZXIgPSBy
ZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOwotICAgICAgICByZWFkZXIucmVsZWFzZUxvY2soKTsK
LSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHJlc3BvbnNlKTsKLSAgICB9KTsKLX0KLQotcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhSZWFkYWJs
ZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxv
YigpLnRoZW4oZnVuY3Rpb24oYmxvYikgewotICAgICAgICAgICAgYXNzZXJ0X3RydWUoYmxvYiBp
bnN0YW5jZW9mIEJsb2IpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0sICJHZXR0aW5nIGJsb2Ig
YWZ0ZXIgZ2V0dGluZyB0aGUgUmVzcG9uc2UgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2Nr
ZWQiKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBjcmVhdGVSZXNw
b25zZVdpdGhSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICByZXR1
cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24odGV4dCkgewotICAgICAgICAgICAgYXNz
ZXJ0X3RydWUodGV4dC5sZW5ndGggPiAwKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19LCAiR2V0
dGluZyB0ZXh0IGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVk
LCBub3QgbG9ja2VkIik7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbigpIHsKLSAgICByZXR1cm4g
Y3JlYXRlUmVzcG9uc2VXaXRoUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAg
ICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKS50aGVuKGZ1bmN0aW9uKGpzb24pIHsKLSAgICAg
ICAgICAgIGFzc2VydF90cnVlKHR5cGVvZiBqc29uID09PSAib2JqZWN0Iik7Ci0gICAgICAgIH0p
OwotICAgIH0pOwotfSwgIkdldHRpbmcganNvbiBhZnRlciBnZXR0aW5nIHRoZSBSZXNwb25zZSBi
b2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rp
b24oKSB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aFJlYWRhYmxlU3RyZWFtKGZ1bmN0
aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgIHJldHVybiByZXNwb25zZS5hcnJheUJ1ZmZlcigpLnRo
ZW4oZnVuY3Rpb24oYXJyYXlCdWZmZXIpIHsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGFycmF5
QnVmZmVyLmJ5dGVMZW5ndGggPiAwKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19LCAiR2V0dGlu
ZyBhcnJheUJ1ZmZlciBhZnRlciBnZXR0aW5nIHRoZSBSZXNwb25zZSBib2R5IC0gbm90IGRpc3R1
cmJlZCwgbm90IGxvY2tlZCIpOwotCi0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTItZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMmVlYjFmMTcyMjY5MzQ3ZDVhNTI4NWMyN2NiZDJi
YTVjZGVjNjAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw2ICswLDAgQEAKLQotUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyBh
IGxvY2tlZCBSZXNwb25zZSBib2R5Ci1QQVNTIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEg
bG9ja2VkIFJlc3BvbnNlIGJvZHkKLVBBU1MgR2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgYSBs
b2NrZWQgUmVzcG9uc2UgYm9keQotUEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRp
bmcgYSBsb2NrZWQgUmVzcG9uc2UgYm9keQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1z
dHJlYW0tZGlzdHVyYmVkLTIuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVh
bS1kaXN0dXJiZWQtMi5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyZWViMWYxNzIyNjkz
NDdkNWE1Mjg1YzI3Y2JkMmJhNWNkZWM2MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
KworUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXNwb25zZSBib2R5
CitQQVNTIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlc3BvbnNlIGJvZHkK
K1BBU1MgR2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVzcG9uc2UgYm9keQor
UEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVzcG9uc2Ug
Ym9keQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMi5hbnkuaHRtbApAQCAt
MCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVk
LTIuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0yLmFueS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jY2ZmNTQ3NTU2ZTcyNGRiMGUxYjYyZGEzNmY3MDQxZTUwMzM5MWVlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0yLmFueS5qcwpAQCAt
MCwwICsxLDMzIEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogdGl0
bGU9Q29uc3VtaW5nIFJlc3BvbnNlIGJvZHkgYWZ0ZXIgZ2V0dGluZyBhIFJlYWRhYmxlU3RyZWFt
CisKK2Z1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlV2l0aExvY2tlZFJlYWRhYmxlU3RyZWFtKGNhbGxi
YWNrKSB7CisgICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihm
dW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICB2YXIgcmVhZGVyID0gcmVzcG9uc2UuYm9keS5n
ZXRSZWFkZXIoKTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHJlc3BvbnNlKTsKKyAgICB9KTsK
K30KKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICByZXR1cm4gY3JlYXRlUmVz
cG9uc2VXaXRoTG9ja2VkUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAg
ICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNlLmJs
b2IoKSk7CisgICAgfSk7Cit9LCAiR2V0dGluZyBibG9iIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQg
UmVzcG9uc2UgYm9keSIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHJl
dHVybiBjcmVhdGVSZXNwb25zZVdpdGhMb2NrZWRSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNw
b25zZSkgeworICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJv
ciwgcmVzcG9uc2UudGV4dCgpKTsKKyAgICB9KTsKK30sICJHZXR0aW5nIHRleHQgYWZ0ZXIgZ2V0
dGluZyBhIGxvY2tlZCBSZXNwb25zZSBib2R5Iik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0
ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aExvY2tlZFJlYWRhYmxlU3RyZWFt
KGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanMo
dGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5qc29uKCkpOworICAgIH0pOworfSwgIkdldHRpbmcg
anNvbiBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlc3BvbnNlIGJvZHkiKTsKKworcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoTG9ja2Vk
UmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgcmV0dXJuIHByb21p
c2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNlLmFycmF5QnVmZmVyKCkpOwor
ICAgIH0pOworfSwgIkdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBS
ZXNwb25zZSBib2R5Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVy
YmVkLTIuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTIuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJlZWIxZjE3MjI2
OTM0N2Q1YTUyODVjMjdjYmQyYmE1Y2RlYzYwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMi5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDYgQEAKKworUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXNw
b25zZSBib2R5CitQQVNTIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlc3Bv
bnNlIGJvZHkKK1BBU1MgR2V0dGluZyBqc29uIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVzcG9u
c2UgYm9keQorUEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQg
UmVzcG9uc2UgYm9keQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVy
YmVkLTIuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0y
LmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1
MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRp
c3R1cmJlZC0yLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBp
cyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1w
bGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0
cmVhbS1kaXN0dXJiZWQtMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NWNj
NGE1OTcwNjI1OWU2ZTViZjk1YTgwMzIzMjhkNjQ0YjcxZTY0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJi
ZWQtMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+
Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRs
ZT5Db25zdW1pbmcgUmVzcG9uc2UgYm9keSBhZnRlciBnZXR0aW5nIGEgUmVhZGFibGVTdHJlYW08
L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53
aGF0d2cub3JnLyNyZXNwb25zZSI+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgotICAgIDxtZXRhIG5hbWU9ImF1
dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3Jm
LmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0KLWZ1bmN0
aW9uIGNyZWF0ZVJlc3BvbnNlV2l0aExvY2tlZFJlYWRhYmxlU3RyZWFtKGNhbGxiYWNrKSB7Ci0g
ICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5jdGlvbihy
ZXNwb25zZSkgewotICAgICAgICB2YXIgcmVhZGVyID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIo
KTsKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHJlc3BvbnNlKTsKLSAgICB9KTsKLX0KLQotcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRo
TG9ja2VkUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgcmV0dXJu
IHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNlLmJsb2IoKSk7Ci0g
ICAgfSk7Ci19LCAiR2V0dGluZyBibG9iIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVzcG9uc2Ug
Ym9keSIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgIHJldHVybiBjcmVh
dGVSZXNwb25zZVdpdGhMb2NrZWRSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgewot
ICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcmVzcG9u
c2UudGV4dCgpKTsKLSAgICB9KTsKLX0sICJHZXR0aW5nIHRleHQgYWZ0ZXIgZ2V0dGluZyBhIGxv
Y2tlZCBSZXNwb25zZSBib2R5Iik7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0g
ICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aExvY2tlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9u
KHJlc3BvbnNlKSB7Ci0gICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlw
ZUVycm9yLCByZXNwb25zZS5qc29uKCkpOwotICAgIH0pOwotfSwgIkdldHRpbmcganNvbiBhZnRl
ciBnZXR0aW5nIGEgbG9ja2VkIFJlc3BvbnNlIGJvZHkiKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHRlc3QpIHsKLSAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoTG9ja2VkUmVhZGFibGVT
dHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0
c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNlLmFycmF5QnVmZmVyKCkpOwotICAgIH0pOwot
fSwgIkdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXNwb25zZSBi
b2R5Iik7Ci0KLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGRiNWMxZmJhYTBjNTAyMTY2ZjgyODM0NmIwYjlmYjM2ZTEyZjU2MTYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2Utc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYg
KzAsMCBAQAotCi1QQVNTIEdldHRpbmcgYmxvYiBhZnRlciByZWFkaW5nIHRoZSBSZXNwb25zZSBi
b2R5Ci1QQVNTIEdldHRpbmcgdGV4dCBhZnRlciByZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5Ci1Q
QVNTIEdldHRpbmcganNvbiBhZnRlciByZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5Ci1QQVNTIEdl
dHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgcmVhZGluZyB0aGUgUmVzcG9uc2UgYm9keQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTMuYW55LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMy5hbnktZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRiNWMxZmJhYTBjNTAyMTY2ZjgyODM0NmIwYjlmYjM2ZTEyZjU2MTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTMuYW55LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgcmVhZGlu
ZyB0aGUgUmVzcG9uc2UgYm9keQorUEFTUyBHZXR0aW5nIHRleHQgYWZ0ZXIgcmVhZGluZyB0aGUg
UmVzcG9uc2UgYm9keQorUEFTUyBHZXR0aW5nIGpzb24gYWZ0ZXIgcmVhZGluZyB0aGUgUmVzcG9u
c2UgYm9keQorUEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIHJlYWRpbmcgdGhlIFJlc3Bv
bnNlIGJvZHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0z
LmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0zLmFueS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTMuYW55Lmh0bWwK
QEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0
IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1
cmJlZC0zLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMy5hbnkuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzJjMTE2MjVlYjQ1NDIzN2Y0Mjk2ZWFhY2Q5YzIxMzE5MjE0NmYzMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMy5hbnkuanMK
QEAgLTAsMCArMSwzNCBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6
IHRpdGxlPUNvbnN1bWluZyBSZXNwb25zZSBib2R5IGFmdGVyIGdldHRpbmcgYSBSZWFkYWJsZVN0
cmVhbQorCitmdW5jdGlvbiBjcmVhdGVSZXNwb25zZVdpdGhEaXN0dXJiZWRSZWFkYWJsZVN0cmVh
bShjYWxsYmFjaykgeworICAgIHJldHVybiBmZXRjaCgiLi4vcmVzb3VyY2VzL2RhdGEuanNvbiIp
LnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgdmFyIHJlYWRlciA9IHJlc3BvbnNl
LmJvZHkuZ2V0UmVhZGVyKCk7CisgICAgICAgIHJlYWRlci5yZWFkKCk7CisgICAgICAgIHJldHVy
biBjYWxsYmFjayhyZXNwb25zZSk7CisgICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChmdW5jdGlv
bih0ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aERpc3R1cmJlZFJlYWRhYmxl
U3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVj
dHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5ibG9iKCkpOworICAgIH0pOworfSwgIkdl
dHRpbmcgYmxvYiBhZnRlciByZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5Iik7CisKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aERpc3R1
cmJlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBw
cm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS50ZXh0KCkpOworICAg
IH0pOworfSwgIkdldHRpbmcgdGV4dCBhZnRlciByZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5Iik7
CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3Bv
bnNlV2l0aERpc3R1cmJlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAg
ICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5q
c29uKCkpOworICAgIH0pOworfSwgIkdldHRpbmcganNvbiBhZnRlciByZWFkaW5nIHRoZSBSZXNw
b25zZSBib2R5Iik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJu
IGNyZWF0ZVJlc3BvbnNlV2l0aERpc3R1cmJlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3Bv
bnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9y
LCByZXNwb25zZS5hcnJheUJ1ZmZlcigpKTsKKyAgICB9KTsKK30sICJHZXR0aW5nIGFycmF5QnVm
ZmVyIGFmdGVyIHJlYWRpbmcgdGhlIFJlc3BvbnNlIGJvZHkiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kYjVjMWZiYWEwYzUwMjE2NmY4MjgzNDZiMGI5ZmIzNmUxMmY1NjE2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0zLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIEdldHRpbmcgYmxvYiBhZnRl
ciByZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5CitQQVNTIEdldHRpbmcgdGV4dCBhZnRlciByZWFk
aW5nIHRoZSBSZXNwb25zZSBib2R5CitQQVNTIEdldHRpbmcganNvbiBhZnRlciByZWFkaW5nIHRo
ZSBSZXNwb25zZSBib2R5CitQQVNTIEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgcmVhZGluZyB0
aGUgUmVzcG9uc2UgYm9keQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTMuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJl
ZC0zLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYw
YTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFt
LWRpc3R1cmJlZC0zLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LXN0cmVhbS1kaXN0dXJiZWQtMy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
OTUzNTdlNmZkZGNhODY4NTA3YTE3YTI5NTVkZWE0YWJjYjU1ZjFhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0
dXJiZWQtMy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCFkb2N0eXBlIGh0
bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0
aXRsZT5Db25zdW1pbmcgUmVzcG9uc2UgYm9keSBhZnRlciBnZXR0aW5nIGEgUmVhZGFibGVTdHJl
YW08L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3Bl
Yy53aGF0d2cub3JnLyNyZXNwb25zZSI+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgotICAgIDxtZXRhIG5hbWU9
ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cu
Y3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIGNyZWF0ZVJlc3BvbnNlV2l0aERpc3R1cmJlZFJlYWRhYmxlU3RyZWFtKGNhbGxiYWNr
KSB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgewotICAgICAgICB2YXIgcmVhZGVyID0gcmVzcG9uc2UuYm9keS5nZXRS
ZWFkZXIoKTsKLSAgICAgICAgcmVhZGVyLnJlYWQoKTsKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KHJlc3BvbnNlKTsKLSAgICB9KTsKLX0KLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsK
LSAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoRGlzdHVyYmVkUmVhZGFibGVTdHJlYW0oZnVu
Y3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0
LCBUeXBlRXJyb3IsIHJlc3BvbnNlLmJsb2IoKSk7Ci0gICAgfSk7Ci19LCAiR2V0dGluZyBibG9i
IGFmdGVyIHJlYWRpbmcgdGhlIFJlc3BvbnNlIGJvZHkiKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHRlc3QpIHsKLSAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoRGlzdHVyYmVkUmVhZGFi
bGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNlLnRleHQoKSk7Ci0gICAgfSk7Ci19LCAi
R2V0dGluZyB0ZXh0IGFmdGVyIHJlYWRpbmcgdGhlIFJlc3BvbnNlIGJvZHkiKTsKLQotcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoRGlz
dHVyYmVkUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgcmV0dXJu
IHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNlLmpzb24oKSk7Ci0g
ICAgfSk7Ci19LCAiR2V0dGluZyBqc29uIGFmdGVyIHJlYWRpbmcgdGhlIFJlc3BvbnNlIGJvZHki
KTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICByZXR1cm4gY3JlYXRlUmVz
cG9uc2VXaXRoRGlzdHVyYmVkUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAg
ICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNl
LmFycmF5QnVmZmVyKCkpOwotICAgIH0pOwotfSwgIkdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIg
cmVhZGluZyB0aGUgUmVzcG9uc2UgYm9keSIpOwotCi0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTQtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTdkYTM0ZjMyMTRhMDBkNmFjNmM1
MmIzOGUwMDcxMWE3NTQ1MDg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLQotUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIg
Y2FuY2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keQotUEFTUyBHZXR0aW5nIHRleHQgYWZ0ZXIgY2Fu
Y2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keQotUEFTUyBHZXR0aW5nIGpzb24gYWZ0ZXIgY2FuY2Vs
bGluZyB0aGUgUmVzcG9uc2UgYm9keQotUEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGNh
bmNlbGxpbmcgdGhlIFJlc3BvbnNlIGJvZHkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
c3RyZWFtLWRpc3R1cmJlZC00LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJl
YW0tZGlzdHVyYmVkLTQuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTdkYTM0ZjMyMTRh
MDBkNmFjNmM1MmIzOGUwMDcxMWE3NTQ1MDg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2Utc3RyZWFtLWRpc3R1cmJlZC00LmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CisKK1BBU1MgR2V0dGluZyBibG9iIGFmdGVyIGNhbmNlbGxpbmcgdGhlIFJlc3BvbnNlIGJvZHkK
K1BBU1MgR2V0dGluZyB0ZXh0IGFmdGVyIGNhbmNlbGxpbmcgdGhlIFJlc3BvbnNlIGJvZHkKK1BB
U1MgR2V0dGluZyBqc29uIGFmdGVyIGNhbmNlbGxpbmcgdGhlIFJlc3BvbnNlIGJvZHkKK1BBU1Mg
R2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBjYW5jZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC5hbnkuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC5hbnkuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC00LmFueS5odG1sCkBAIC0wLDAgKzEg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVj
dHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC5hbnku
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTQuYW55LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU4MzMxYWUxZDBjOGE3ZTUyZWNiNzFjOGM1MTMxODE4YzE3ZTEwZGMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTQuYW55LmpzCkBAIC0wLDAgKzEs
MzMgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1Db25z
dW1pbmcgUmVzcG9uc2UgYm9keSBhZnRlciBnZXR0aW5nIGEgUmVhZGFibGVTdHJlYW0KKworZnVu
Y3Rpb24gY3JlYXRlUmVzcG9uc2VXaXRoQ2FuY2VsbGVkUmVhZGFibGVTdHJlYW0oY2FsbGJhY2sp
IHsKKyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRhLmpzb24iKS50aGVuKGZ1bmN0
aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJlc3BvbnNlLmJvZHkuY2FuY2VsKCk7CisgICAgICAg
IHJldHVybiBjYWxsYmFjayhyZXNwb25zZSk7CisgICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChm
dW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aENhbmNlbGxlZFJl
YWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNl
X3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5ibG9iKCkpOworICAgIH0pOwor
fSwgIkdldHRpbmcgYmxvYiBhZnRlciBjYW5jZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5Iik7CisK
K3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNl
V2l0aENhbmNlbGxlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAg
IHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS50ZXh0
KCkpOworICAgIH0pOworfSwgIkdldHRpbmcgdGV4dCBhZnRlciBjYW5jZWxsaW5nIHRoZSBSZXNw
b25zZSBib2R5Iik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJu
IGNyZWF0ZVJlc3BvbnNlV2l0aENhbmNlbGxlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3Bv
bnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9y
LCByZXNwb25zZS5qc29uKCkpOworICAgIH0pOworfSwgIkdldHRpbmcganNvbiBhZnRlciBjYW5j
ZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5Iik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0
KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aENhbmNlbGxlZFJlYWRhYmxlU3RyZWFt
KGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanMo
dGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5hcnJheUJ1ZmZlcigpKTsKKyAgICB9KTsKK30sICJH
ZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGNhbmNlbGxpbmcgdGhlIFJlc3BvbnNlIGJvZHkiKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTdkYTM0ZjMyMTRhMDBkNmFjNmM1MmIzOGUw
MDcxMWE3NTQ1MDg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRp
c3R1cmJlZC00LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNT
IEdldHRpbmcgYmxvYiBhZnRlciBjYW5jZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5CitQQVNTIEdl
dHRpbmcgdGV4dCBhZnRlciBjYW5jZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5CitQQVNTIEdldHRp
bmcganNvbiBhZnRlciBjYW5jZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5CitQQVNTIEdldHRpbmcg
YXJyYXlCdWZmZXIgYWZ0ZXIgY2FuY2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTQuYW55Lndvcmtlci5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC00LmFueS53b3JrZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC00LmFueS53b3JrZXIuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzM4NzY5OTM1MzMyMGZkMDI1NjA2MjZkYTU0
NTJhYzcxNTYxZmRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDggKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAg
PG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5Db25zdW1pbmcgUmVzcG9uc2UgYm9k
eSBhZnRlciBnZXR0aW5nIGEgUmVhZGFibGVTdHJlYW08L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZSI+Ci0g
ICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcv
I2JvZHktbWl4aW4iPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2Vh
cmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+
Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlV2l0aENh
bmNlbGxlZFJlYWRhYmxlU3RyZWFtKGNhbGxiYWNrKSB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9y
ZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICBy
ZXNwb25zZS5ib2R5LmNhbmNlbCgpOwotICAgICAgICByZXR1cm4gY2FsbGJhY2socmVzcG9uc2Up
OwotICAgIH0pOwotfQotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgIHJldHVy
biBjcmVhdGVSZXNwb25zZVdpdGhDYW5jZWxsZWRSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNw
b25zZSkgewotICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJv
ciwgcmVzcG9uc2UuYmxvYigpKTsKLSAgICB9KTsKLX0sICJHZXR0aW5nIGJsb2IgYWZ0ZXIgY2Fu
Y2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keSIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVz
dCkgewotICAgIHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhDYW5jZWxsZWRSZWFkYWJsZVN0cmVh
bShmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pz
KHRlc3QsIFR5cGVFcnJvciwgcmVzcG9uc2UudGV4dCgpKTsKLSAgICB9KTsKLX0sICJHZXR0aW5n
IHRleHQgYWZ0ZXIgY2FuY2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keSIpOwotCi1wcm9taXNlX3Rl
c3QoZnVuY3Rpb24odGVzdCkgewotICAgIHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhDYW5jZWxs
ZWRSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICByZXR1cm4gcHJv
bWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcmVzcG9uc2UuanNvbigpKTsKLSAgICB9
KTsKLX0sICJHZXR0aW5nIGpzb24gYWZ0ZXIgY2FuY2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keSIp
OwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgIHJldHVybiBjcmVhdGVSZXNw
b25zZVdpdGhDYW5jZWxsZWRSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgewotICAg
ICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcmVzcG9uc2Uu
YXJyYXlCdWZmZXIoKSk7Ci0gICAgfSk7Ci19LCAiR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBj
YW5jZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5Iik7Ci0KLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwY2YwYTJkZThmZDU5Yzg4NDgx
NmU5NjI0OWYwZDdjY2JjZTM0YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1QQVNTIEdldHRpbmcgYSBib2R5IHJl
YWRlciBhZnRlciBjb25zdW1pbmcgYXMgYmxvYgotUEFTUyBHZXR0aW5nIGEgYm9keSByZWFkZXIg
YWZ0ZXIgY29uc3VtaW5nIGFzIHRleHQKLVBBU1MgR2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVy
IGNvbnN1bWluZyBhcyBqc29uCi1QQVNTIEdldHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25z
dW1pbmcgYXMgYXJyYXlCdWZmZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFt
LWRpc3R1cmJlZC01LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTUuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGNmMGEyZGU4ZmQ1OWM4ODQ4
MTZlOTYyNDlmMGQ3Y2NiY2UzNGI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
c3RyZWFtLWRpc3R1cmJlZC01LmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BB
U1MgR2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVyIGNvbnN1bWluZyBhcyBibG9iCitQQVNTIEdl
dHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25zdW1pbmcgYXMgdGV4dAorUEFTUyBHZXR0aW5n
IGEgYm9keSByZWFkZXIgYWZ0ZXIgY29uc3VtaW5nIGFzIGpzb24KK1BBU1MgR2V0dGluZyBhIGJv
ZHkgcmVhZGVyIGFmdGVyIGNvbnN1bWluZyBhcyBhcnJheUJ1ZmZlcgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25z
ZS1zdHJlYW0tZGlzdHVyYmVkLTUuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNi
M2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0cmVhbS1kaXN0dXJiZWQtNS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRo
ZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTUuYW55LmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01LmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmUwYzkzZjM1YTA3
YmM4ZDJhM2M4Y2EyYTgzZGFlMzVlOTI2NTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01LmFueS5qcwpAQCAtMCwwICsxLDM0IEBACisvLyBNRVRB
OiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogdGl0bGU9Q29uc3VtaW5nIFJlc3BvbnNl
IGJvZHkgYWZ0ZXIgZ2V0dGluZyBhIFJlYWRhYmxlU3RyZWFtCisKK3Byb21pc2VfdGVzdChmdW5j
dGlvbigpIHsKKyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRhLmpzb24iKS50aGVu
KGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJlc3BvbnNlLmJsb2IoKTsKKyAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMocmVzcG9uc2UuYm9keSwgbnVsbCk7CisgICAgICAgIGFzc2VydF90
aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIo
KTsgfSk7CisgICAgfSk7Cit9LCAiR2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVyIGNvbnN1bWlu
ZyBhcyBibG9iIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gZmV0
Y2goIi4uL3Jlc291cmNlcy9kYXRhLmpzb24iKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Cisg
ICAgICAgIHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVzcG9u
c2UuYm9keSwgbnVsbCk7CisgICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5j
dGlvbigpIHsgcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsgfSk7CisgICAgfSk7Cit9LCAiR2V0
dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVyIGNvbnN1bWluZyBhcyB0ZXh0Iik7CisKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRhLmpz
b24iKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJlc3BvbnNlLmpzb24oKTsK
KyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVzcG9uc2UuYm9keSwgbnVsbCk7CisgICAgICAg
IGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgcmVzcG9uc2UuYm9keS5n
ZXRSZWFkZXIoKTsgfSk7CisgICAgfSk7Cit9LCAiR2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVy
IGNvbnN1bWluZyBhcyBqc29uIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICBy
ZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRhLmpzb24iKS50aGVuKGZ1bmN0aW9uKHJlc3Bv
bnNlKSB7CisgICAgICAgIHJlc3BvbnNlLmFycmF5QnVmZmVyKCk7CisgICAgICAgIGFzc2VydF9u
b3RfZXF1YWxzKHJlc3BvbnNlLmJvZHksIG51bGwpOworICAgICAgICBhc3NlcnRfdGhyb3dzX2pz
KFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7IH0pOwor
ICAgIH0pOworfSwgIkdldHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25zdW1pbmcgYXMgYXJy
YXlCdWZmZXIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQt
NS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJi
ZWQtNS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGNmMGEyZGU4ZmQ1OWM4
ODQ4MTZlOTYyNDlmMGQ3Y2NiY2UzNGI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2Utc3RyZWFtLWRpc3R1cmJlZC01LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorCitQQVNTIEdldHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25zdW1pbmcgYXMgYmxv
YgorUEFTUyBHZXR0aW5nIGEgYm9keSByZWFkZXIgYWZ0ZXIgY29uc3VtaW5nIGFzIHRleHQKK1BB
U1MgR2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVyIGNvbnN1bWluZyBhcyBqc29uCitQQVNTIEdl
dHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25zdW1pbmcgYXMgYXJyYXlCdWZmZXIKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01LmFueS53b3JrZXIuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNS5hbnkud29ya2VyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNS5hbnkud29ya2Vy
Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktp
dCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFt
LWRpc3R1cmJlZC01Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTUuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODMwYTQxYmM4MDk2MjA1ZTdkYWUzYzhi
NTZjYWQyOTM3OGE1MzQwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgot
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+Q29uc3VtaW5nIFJlc3BvbnNl
IGJvZHkgYWZ0ZXIgZ2V0dGluZyBhIFJlYWRhYmxlU3RyZWFtPC90aXRsZT4KLSAgICA8bWV0YSBu
YW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2Ui
PgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cu
b3JnLyNib2R5LW1peGluIj4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBS
ZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgPC9o
ZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7
Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5jdGlv
bihyZXNwb25zZSkgewotICAgICAgICByZXNwb25zZS5ibG9iKCk7Ci0gICAgICAgIGFzc2VydF9u
b3RfZXF1YWxzKHJlc3BvbnNlLmJvZHksIG51bGwpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pz
KFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7IH0pOwot
ICAgIH0pOwotfSwgIkdldHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25zdW1pbmcgYXMgYmxv
YiIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9y
ZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICBy
ZXNwb25zZS50ZXh0KCk7Ci0gICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlc3BvbnNlLmJvZHks
IG51bGwpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7
IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7IH0pOwotICAgIH0pOwotfSwgIkdldHRpbmcgYSBi
b2R5IHJlYWRlciBhZnRlciBjb25zdW1pbmcgYXMgdGV4dCIpOwotCi1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24oKSB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMvZGF0YS5qc29uIikudGhl
bihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICByZXNwb25zZS5qc29uKCk7Ci0gICAgICAg
IGFzc2VydF9ub3RfZXF1YWxzKHJlc3BvbnNlLmJvZHksIG51bGwpOwotICAgICAgICBhc3NlcnRf
dGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVy
KCk7IH0pOwotICAgIH0pOwotfSwgIkdldHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25zdW1p
bmcgYXMganNvbiIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGZl
dGNoKCIuLi9yZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewot
ICAgICAgICByZXNwb25zZS5hcnJheUJ1ZmZlcigpOwotICAgICAgICBhc3NlcnRfbm90X2VxdWFs
cyhyZXNwb25zZS5ib2R5LCBudWxsKTsKLSAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJy
b3IsIGZ1bmN0aW9uKCkgeyByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOyB9KTsKLSAgICB9KTsK
LX0sICJHZXR0aW5nIGEgYm9keSByZWFkZXIgYWZ0ZXIgY29uc3VtaW5nIGFzIGFycmF5QnVmZmVy
Iik7Ci0KLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0cmVhbS1kaXN0dXJiZWQtNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDVmNWRmMDRjMDk2YmU4ZGNkN2ExYWNhYjdlOGMwN2QzOTUwODEyOTUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
c3RyZWFtLWRpc3R1cmJlZC02LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAs
MCBAQAotCi1QQVNTIEEgbm9uLWNsb3NlZCBzdHJlYW0gb24gd2hpY2ggcmVhZCgpIGhhcyBiZWVu
IGNhbGxlZAotUEFTUyBBIG5vbi1jbG9zZWQgc3RyZWFtIG9uIHdoaWNoIGNhbmNlbCgpIGhhcyBi
ZWVuIGNhbGxlZAotUEFTUyBBIGNsb3NlZCBzdHJlYW0gb24gd2hpY2ggcmVhZCgpIGhhcyBiZWVu
IGNhbGxlZAotUEFTUyBBbiBlcnJvcmVkIHN0cmVhbSBvbiB3aGljaCByZWFkKCkgaGFzIGJlZW4g
Y2FsbGVkCi1QQVNTIEFuIGVycm9yZWQgc3RyZWFtIG9uIHdoaWNoIGNhbmNlbCgpIGhhcyBiZWVu
IGNhbGxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTYu
YW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNi5hbnkt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNWRmMDRjMDk2YmU4ZGNkN2ExYWNhYjdlOGMwN2Qz
OTUwODEyOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVy
YmVkLTYuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworUEFTUyBBIG5vbi1jbG9z
ZWQgc3RyZWFtIG9uIHdoaWNoIHJlYWQoKSBoYXMgYmVlbiBjYWxsZWQKK1BBU1MgQSBub24tY2xv
c2VkIHN0cmVhbSBvbiB3aGljaCBjYW5jZWwoKSBoYXMgYmVlbiBjYWxsZWQKK1BBU1MgQSBjbG9z
ZWQgc3RyZWFtIG9uIHdoaWNoIHJlYWQoKSBoYXMgYmVlbiBjYWxsZWQKK1BBU1MgQW4gZXJyb3Jl
ZCBzdHJlYW0gb24gd2hpY2ggcmVhZCgpIGhhcyBiZWVuIGNhbGxlZAorUEFTUyBBbiBlcnJvcmVk
IHN0cmVhbSBvbiB3aGljaCBjYW5jZWwoKSBoYXMgYmVlbiBjYWxsZWQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02LmFueS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2Utc3RyZWFtLWRpc3R1cmJlZC02LmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkz
YjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1zdHJlYW0tZGlzdHVyYmVkLTYuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0
aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02LmFueS5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNi5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFkODU0NGYwNzg2
YzgwM2YyNzkzZDQ2MzM5MDUzN2ZmN2Q3OGZjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNi5hbnkuanMKQEAgLTAsMCArMSw3NiBAQAorLy8gTUVU
QTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPVJlYWRhYmxlU3RyZWFtIGRp
c3R1cmJlZCB0ZXN0cywgdmlhIFJlc3BvbnNlJ3MgYm9keVVzZWQgcHJvcGVydHkKKworInVzZSBz
dHJpY3QiOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3Ry
ZWFtKCk7CisgIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVhbSk7CisgIGFzc2Vy
dF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgIk9uIGNvbnN0cnVjdGlvbiIpOworCisgIGNvbnN0
IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTsKKyAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJv
ZHlVc2VkLCAiQWZ0ZXIgZ2V0dGluZyBhIHJlYWRlciIpOworCisgIHJlYWRlci5yZWFkKCk7Cisg
IGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2VkLCAiQWZ0ZXIgY2FsbGluZyBzdHJlYW0ucmVh
ZCgpIik7Cit9LCAiQSBub24tY2xvc2VkIHN0cmVhbSBvbiB3aGljaCByZWFkKCkgaGFzIGJlZW4g
Y2FsbGVkIik7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBzdHJlYW0gPSBuZXcgUmVhZGFibGVT
dHJlYW0oKTsKKyAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2Uoc3RyZWFtKTsKKyAgYXNz
ZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAiT24gY29uc3RydWN0aW9uIik7CisKKyAgY29u
c3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpOworICBhc3NlcnRfZmFsc2UocmVzcG9uc2Uu
Ym9keVVzZWQsICJBZnRlciBnZXR0aW5nIGEgcmVhZGVyIik7CisKKyAgcmVhZGVyLmNhbmNlbCgp
OworICBhc3NlcnRfdHJ1ZShyZXNwb25zZS5ib2R5VXNlZCwgIkFmdGVyIGNhbGxpbmcgc3RyZWFt
LmNhbmNlbCgpIik7Cit9LCAiQSBub24tY2xvc2VkIHN0cmVhbSBvbiB3aGljaCBjYW5jZWwoKSBo
YXMgYmVlbiBjYWxsZWQiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IHN0cmVhbSA9IG5ldyBS
ZWFkYWJsZVN0cmVhbSh7CisgICAgc3RhcnQoYykgeworICAgICAgYy5jbG9zZSgpOworICAgIH0K
KyAgfSk7CisgIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVhbSk7CisgIGFzc2Vy
dF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgIk9uIGNvbnN0cnVjdGlvbiIpOworCisgIGNvbnN0
IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTsKKyAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJv
ZHlVc2VkLCAiQWZ0ZXIgZ2V0dGluZyBhIHJlYWRlciIpOworCisgIHJlYWRlci5yZWFkKCk7Cisg
IGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2VkLCAiQWZ0ZXIgY2FsbGluZyBzdHJlYW0ucmVh
ZCgpIik7Cit9LCAiQSBjbG9zZWQgc3RyZWFtIG9uIHdoaWNoIHJlYWQoKSBoYXMgYmVlbiBjYWxs
ZWQiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVh
bSh7CisgICAgc3RhcnQoYykgeworICAgICAgYy5lcnJvcihuZXcgRXJyb3IoInNvbWUgZXJyb3Ii
KSk7CisgICAgfQorICB9KTsKKyAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2Uoc3RyZWFt
KTsKKyAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAiT24gY29uc3RydWN0aW9uIik7
CisKKyAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpOworICBhc3NlcnRfZmFsc2Uo
cmVzcG9uc2UuYm9keVVzZWQsICJBZnRlciBnZXR0aW5nIGEgcmVhZGVyIik7CisKKyAgcmVhZGVy
LnJlYWQoKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgYXNzZXJ0X3RydWUocmVzcG9u
c2UuYm9keVVzZWQsICJBZnRlciBjYWxsaW5nIHN0cmVhbS5yZWFkKCkiKTsKK30sICJBbiBlcnJv
cmVkIHN0cmVhbSBvbiB3aGljaCByZWFkKCkgaGFzIGJlZW4gY2FsbGVkIik7CisKK3Rlc3QoKCkg
PT4geworICBjb25zdCBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgIHN0YXJ0KGMp
IHsKKyAgICAgIGMuZXJyb3IobmV3IEVycm9yKCJzb21lIGVycm9yIikpOworICAgIH0KKyAgfSk7
CisgIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVhbSk7CisgIGFzc2VydF9mYWxz
ZShyZXNwb25zZS5ib2R5VXNlZCwgIk9uIGNvbnN0cnVjdGlvbiIpOworCisgIGNvbnN0IHJlYWRl
ciA9IHN0cmVhbS5nZXRSZWFkZXIoKTsKKyAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2Vk
LCAiQWZ0ZXIgZ2V0dGluZyBhIHJlYWRlciIpOworCisgIHJlYWRlci5jYW5jZWwoKS50aGVuKCgp
ID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgYXNzZXJ0X3RydWUocmVzcG9uc2UuYm9keVVzZWQsICJB
ZnRlciBjYWxsaW5nIHN0cmVhbS5jYW5jZWwoKSIpOworfSwgIkFuIGVycm9yZWQgc3RyZWFtIG9u
IHdoaWNoIGNhbmNlbCgpIGhhcyBiZWVuIGNhbGxlZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02LmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVmNWRmMDRjMDk2YmU4ZGNkN2ExYWNhYjdlOGMwN2QzOTUwODEyOTUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTYuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKK1BBU1MgQSBub24tY2xvc2VkIHN0cmVhbSBv
biB3aGljaCByZWFkKCkgaGFzIGJlZW4gY2FsbGVkCitQQVNTIEEgbm9uLWNsb3NlZCBzdHJlYW0g
b24gd2hpY2ggY2FuY2VsKCkgaGFzIGJlZW4gY2FsbGVkCitQQVNTIEEgY2xvc2VkIHN0cmVhbSBv
biB3aGljaCByZWFkKCkgaGFzIGJlZW4gY2FsbGVkCitQQVNTIEFuIGVycm9yZWQgc3RyZWFtIG9u
IHdoaWNoIHJlYWQoKSBoYXMgYmVlbiBjYWxsZWQKK1BBU1MgQW4gZXJyb3JlZCBzdHJlYW0gb24g
d2hpY2ggY2FuY2VsKCkgaGFzIGJlZW4gY2FsbGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0cmVhbS1kaXN0dXJiZWQtNi5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1z
dHJlYW0tZGlzdHVyYmVkLTYuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1Mjhl
NjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTYuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVy
ZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNi5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDMwNDkyZDQ3MmZlZTYyMWE3NWQ1N2UyOGNlY2E3YmQ3ZWE3ZDFmZGQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2Utc3RyZWFtLWRpc3R1cmJlZC02Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5SZWFkYWJs
ZVN0cmVhbSBkaXN0dXJiZWQgdGVzdHMsIHZpYSBSZXNwb25zZSdzIGJvZHlVc2VkIHByb3BlcnR5
PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRG9tZW5pYyBEZW5pY29sYSIgaHJl
Zj0ibWFpbHRvOmRAZG9tZW5pYy5tZSI+Ci08bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlRha2Vz
aGkgWW9zaGlubyIgaHJlZj0ibWFpbHRvOnR5b3NoaW5vQGNocm9taXVtLm9yZyI+Ci0KLTxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zdHJlYW1zLnNwZWMud2hhdHdnLm9yZy8jaXMtcmVh
ZGFibGUtc3RyZWFtLWRpc3R1cmJlZCI+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZmV0Y2guc3BlYy53aGF0d2cub3JnLyNkb20tYm9keS1ib2R5dXNlZCI+Ci0KLTxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLSJ1c2Ug
c3RyaWN0IjsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0
cmVhbSgpOwotICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNwb25zZShzdHJlYW0pOwotICBhc3Nl
cnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQsICJPbiBjb25zdHJ1Y3Rpb24iKTsKLQotICBjb25z
dCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7Ci0gIGFzc2VydF9mYWxzZShyZXNwb25zZS5i
b2R5VXNlZCwgIkFmdGVyIGdldHRpbmcgYSByZWFkZXIiKTsKLQotICByZWFkZXIucmVhZCgpOwot
ICBhc3NlcnRfdHJ1ZShyZXNwb25zZS5ib2R5VXNlZCwgIkFmdGVyIGNhbGxpbmcgc3RyZWFtLnJl
YWQoKSIpOwotfSwgIkEgbm9uLWNsb3NlZCBzdHJlYW0gb24gd2hpY2ggcmVhZCgpIGhhcyBiZWVu
IGNhbGxlZCIpOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxl
U3RyZWFtKCk7Ci0gIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVhbSk7Ci0gIGFz
c2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgIk9uIGNvbnN0cnVjdGlvbiIpOwotCi0gIGNv
bnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTsKLSAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNl
LmJvZHlVc2VkLCAiQWZ0ZXIgZ2V0dGluZyBhIHJlYWRlciIpOwotCi0gIHJlYWRlci5jYW5jZWwo
KTsKLSAgYXNzZXJ0X3RydWUocmVzcG9uc2UuYm9keVVzZWQsICJBZnRlciBjYWxsaW5nIHN0cmVh
bS5jYW5jZWwoKSIpOwotfSwgIkEgbm9uLWNsb3NlZCBzdHJlYW0gb24gd2hpY2ggY2FuY2VsKCkg
aGFzIGJlZW4gY2FsbGVkIik7Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCBzdHJlYW0gPSBuZXcg
UmVhZGFibGVTdHJlYW0oewotICAgIHN0YXJ0KGMpIHsKLSAgICAgIGMuY2xvc2UoKTsKLSAgICB9
Ci0gIH0pOwotICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNwb25zZShzdHJlYW0pOwotICBhc3Nl
cnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQsICJPbiBjb25zdHJ1Y3Rpb24iKTsKLQotICBjb25z
dCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7Ci0gIGFzc2VydF9mYWxzZShyZXNwb25zZS5i
b2R5VXNlZCwgIkFmdGVyIGdldHRpbmcgYSByZWFkZXIiKTsKLQotICByZWFkZXIucmVhZCgpOwot
ICBhc3NlcnRfdHJ1ZShyZXNwb25zZS5ib2R5VXNlZCwgIkFmdGVyIGNhbGxpbmcgc3RyZWFtLnJl
YWQoKSIpOwotfSwgIkEgY2xvc2VkIHN0cmVhbSBvbiB3aGljaCByZWFkKCkgaGFzIGJlZW4gY2Fs
bGVkIik7Ci0KLXRlc3QoKCkgPT4gewotICBjb25zdCBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJl
YW0oewotICAgIHN0YXJ0KGMpIHsKLSAgICAgIGMuZXJyb3IobmV3IEVycm9yKCJzb21lIGVycm9y
IikpOwotICAgIH0KLSAgfSk7Ci0gIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVh
bSk7Ci0gIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgIk9uIGNvbnN0cnVjdGlvbiIp
OwotCi0gIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTsKLSAgYXNzZXJ0X2ZhbHNl
KHJlc3BvbnNlLmJvZHlVc2VkLCAiQWZ0ZXIgZ2V0dGluZyBhIHJlYWRlciIpOwotCi0gIHJlYWRl
ci5yZWFkKCkudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7Ci0gIGFzc2VydF90cnVlKHJlc3Bv
bnNlLmJvZHlVc2VkLCAiQWZ0ZXIgY2FsbGluZyBzdHJlYW0ucmVhZCgpIik7Ci19LCAiQW4gZXJy
b3JlZCBzdHJlYW0gb24gd2hpY2ggcmVhZCgpIGhhcyBiZWVuIGNhbGxlZCIpOwotCi10ZXN0KCgp
ID0+IHsKLSAgY29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKLSAgICBzdGFydChj
KSB7Ci0gICAgICBjLmVycm9yKG5ldyBFcnJvcigic29tZSBlcnJvciIpKTsKLSAgICB9Ci0gIH0p
OwotICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNwb25zZShzdHJlYW0pOwotICBhc3NlcnRfZmFs
c2UocmVzcG9uc2UuYm9keVVzZWQsICJPbiBjb25zdHJ1Y3Rpb24iKTsKLQotICBjb25zdCByZWFk
ZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7Ci0gIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNl
ZCwgIkFmdGVyIGdldHRpbmcgYSByZWFkZXIiKTsKLQotICByZWFkZXIuY2FuY2VsKCkudGhlbigo
KSA9PiB7IH0sICgpID0+IHsgfSk7Ci0gIGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2VkLCAi
QWZ0ZXIgY2FsbGluZyBzdHJlYW0uY2FuY2VsKCkiKTsKLX0sICJBbiBlcnJvcmVkIHN0cmVhbSBv
biB3aGljaCBjYW5jZWwoKSBoYXMgYmVlbiBjYWxsZWQiKTsKLQotPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLWJ5LXBpcGUuYW55LmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC1ieS1waXBlLmFueS5qcwppbmRleCBmMDA2NmMy
MzMzYTFjMTAzOGE1MDZmYjkxMGFlOWMyODA1ODNjOTZlLi41MzQxYjc1MjcxZWFkNTliZTUwMjJh
ZmQ5OWZmYmUyMmEyNjYyOGZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLWJ5LXBpcGUuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJi
ZWQtYnktcGlwZS5hbnkuanMKQEAgLTEsMyArMSw1IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93
LHdvcmtlcgorCiB0ZXN0KCgpID0+IHsKICAgY29uc3QgciA9IG5ldyBSZXNwb25zZShuZXcgUmVh
ZGFibGVTdHJlYW0oKSk7CiAgIC8vIGhpZ2hXYXRlck1hcms6IDAgbWVhbnMgdGhhdCBub3RoaW5n
IHdpbGwgYWN0dWFsbHkgYmUgcmVhZCBmcm9tIHRoZSBib2R5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2Utc3RyZWFtLXdpdGgtYnJva2VuLXRoZW4uYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
c3RyZWFtLXdpdGgtYnJva2VuLXRoZW4uYW55LmpzCmluZGV4IGI4MzM2NWQ3M2FmNWY0MzBlNTg5
YWRiZTRlMWVhMTY1NDE5ZjA0N2MuLjhmZWY2NmM4YTI4MWM2MjQ4ZmQzNjc2Mzg4OWJjOTVhYTg5
OWY3Y2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS13aXRoLWJyb2tlbi10aGVu
LmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0td2l0aC1icm9rZW4tdGhlbi5hbnku
anMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVU
QTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKCkg
PT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS93M2MtaW1wb3J0
LmxvZwppbmRleCA1OTI5MDk5OTczNzcyOWM4Zjg4MjQ0NzUzMWFlNWNiNmEzOGM0MjRjLi4xODQ2
Yzc4MTBkY2FkMmQzZTY4MzIxYjQ4N2E2ZTYwMzljODFiOGRmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS93
M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS93M2MtaW1wb3J0LmxvZwpAQCAtMTQsMjQgKzE0LDI1
IEBAIFByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgogTm9uZQogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNhbmNlbC1zdHJl
YW0uaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWJvZHktcmVhZC10YXNrLWhhbmRsaW5nLmh0bWwKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1jYW5jZWwtc3RyZWFtLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25l
LWlmcmFtZS53aW5kb3cuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtY29uc3VtZS1lbXB0eS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0u
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25lLmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1
bWUtZW1wdHkuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55LmpzCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtY29uc3VtZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1z
dHJlYW0uaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1l
cnJvci1mcm9tLXN0cmVhbS5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci5hbnkuanMKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1mcm9tLXN0cmVhbS5hbnkuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAw
MS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0
YXRpYy1lcnJvci5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0Lmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0
cmVhbS1kaXN0dXJiZWQtMi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0z
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTQuaHRtbAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRp
c3R1cmJlZC02Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnkuanMKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1pbml0LTAwMi5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtZXJyb3IuYW55
LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0LmFueS5qcworL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0cmVhbS1kaXN0dXJiZWQtMS5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTIuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0zLmFueS5q
cworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC5hbnkuanMKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1zdHJlYW0tZGlzdHVyYmVkLTUuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRp
c3R1cmJlZC02LmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtYnktcGlw
ZS5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0td2l0aC1icm9rZW4tdGhlbi5hbnkuanMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29ubmVjdGlvbi1wb29sL25ldHdvcmstcGFydGl0aW9uLWtleS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5l
Y3Rpb24tcG9vbC9uZXR3b3JrLXBhcnRpdGlvbi1rZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhmNjQ2ZmY0ZGRmMzg3NDViYmY0MTA5ZjIyZTgxOWRkYmU1NDk0NTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nv
bm5lY3Rpb24tcG9vbC9uZXR3b3JrLXBhcnRpdGlvbi1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKKworCitQQVNTIFdpdGggY3JlZGVudGlhbHMKK1BBU1MgV2l0aG91dCBjcmVkZW50
aWFscworUEFTUyBDcm9zcy1zaXRlIHJlc291cmNlcyB3aXRoIGNyZWRlbnRpYWxzCitQQVNTIENy
b3NzLXNpdGUgcmVzb3VyY2VzIHdpdGhvdXQgY3JlZGVudGlhbHMKK1BBU1MgSWZyYW1lcworUEFT
UyBXb3JrZXJzCitQQVNTIFdvcmtlcnMgd2l0aCBjcm9zcy1zaXRlIHJlc291cmNlcworRkFJTCBD
U1Agc2FuZGJveCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
ImFzc2VydF9lcXVhbHM6IFNvY2tldCB1bmV4cGVjdGVkbHkgcmV1c2VkIGV4cGVjdGVkIFwib2tc
IiBidXQgZ290IFwiTXVsdGlwbGUgcGFydGl0aW9uIElEcyB1c2VkIG9uIGEgc29ja2V0XCIiCitG
QUlMIGFib3V0OmJsYW5rIGZyb20gb3BhcXVlIG9yaWdpbiBpZnJhbWUgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJhc3NlcnRfZXF1YWxzOiBTb2NrZXQgdW5l
eHBlY3RlZGx5IHJldXNlZCBleHBlY3RlZCBcIm9rXCIgYnV0IGdvdCBcIk11bHRpcGxlIHBhcnRp
dGlvbiBJRHMgdXNlZCBvbiBhIHNvY2tldFwiIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9uZXR3
b3JrLXBhcnRpdGlvbi1rZXkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL25ldHdvcmstcGFydGl0aW9uLWtleS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYwYTc4NGNkODRlZDkyYmJjZDM0YWFlMDUwMjg5YTI2NzZlZDQ1YmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9uZXR3b3JrLXBhcnRpdGlvbi1rZXkuaHRtbApA
QCAtMCwwICsxLDI2NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgIDx0aXRsZT5Db25uZWN0aW9uIHBhcnRpdGlvbmluZyBieSBz
aXRlPC90aXRsZT4KKyAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVj
LndoYXR3Zy5vcmcvI25ldHdvcmstcGFydGl0aW9uLWtleXMiPgorICA8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIj4KKyAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3Nj
cmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8IS0tIFVzZWQgdG8gb3BlbiBhYm91dDpibGFuayB0YWJz
IGZyb20gb3BhcXVlIG9yaWdpbnMgLS0+Cis8aWZyYW1lIGlkPSJpZnJhbWUwIiBzYW5kYm94PSJh
bGxvdy1wb3B1cHMgYWxsb3ctc2NyaXB0cyBhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3gi
PjwvaWZyYW1lPgorPGlmcmFtZSBpZD0iaWZyYW1lMSIgc2FuZGJveD0iYWxsb3ctcG9wdXBzIGFs
bG93LXNjcmlwdHMgYWxsb3ctcG9wdXBzLXRvLWVzY2FwZS1zYW5kYm94Ij48L2lmcmFtZT4KKzxz
Y3JpcHQ+Citjb25zdCBob3N0ID0gZ2V0X2hvc3RfaW5mbygpOworCisvLyBUaGVzZSB0d28gb3Jp
Z2lucyBtdXN0IGNvcnJlc3BvbmQgdG8gZGlmZmVyZW50IHNpdGVzIGZvciB0aGlzIHRlc3QgdG8g
cGFzcy4KK2NvbnN0IFBPUFVQX09SSUdJTlMgPSBbCisgIGhvc3QuT1JJR0lOLAorICBob3N0LkhU
VFBfTk9UU0FNRVNJVEVfT1JJR0lOCitdOworCisvLyBUaGlzIG9yaWdpbiBzaG91bGQgaWRlYWxs
eSBjb3JyZXNwb25kIHRvIGEgZGlmZmVyZW50IHNpdGUgZnJvbSB0aGUgdHdvIGFib3ZlLCBidXQg
dGhlCisvLyB0ZXN0cyB3aWxsIHN0aWxsIHBhc3MgaWYgaXQgbWF0Y2hlcyB0aGUgc2l0ZSBvZiBv
bmUgb2YgdGhlIG90aGVyIHR3byBvcmlnaW5zLgorY29uc3QgT1RIRVJfT1JJR0lOID0gaG9zdC5S
RU1PVEVfT1JJR0lOOworCisvLyBFeGNlcHQgZm9yIHRoZSBjc3Bfc2FuZGJveCBhbmQgYWJvdXQ6
YmxhbmtzLCBlYWNoIHRlc3Qgb3BlbnMgdXAgdHdvIHdpbmRvd3MsIG9uZSBhdAorLy8gUE9QVVBf
T1JJR0lOU1swXSwgb25lIGF0IFBPUFVQX09SSUdJTlNbMV0sIGFuZCBoYXMgdGhlbSByZXF1ZXN0
IHN1YnJlc291cmNlcyBmcm9tCisvLyBzdWJyZXNvdXJjZV9vcmlnaW4uIEFsbCByZXF1ZXN0cyAo
SFRNTCwgSlMsIGFuZCBmZXRjaCByZXF1ZXN0cykgZm9yIGVhY2ggd2luZG93IGdvCisvLyB0aHJv
dWdoIG5ldHdvcmstcGFydGl0aW9uLWtleS5weSBhbmQgaGF2ZSBhIHBhcnRpdGlvbl9pZCBwYXJh
bWV0ZXIsIHdoaWNoIGlzIHVzZWQKKy8vIHRvIGNoZWNrIGlmIGFueSByZXF1ZXN0IGZvciBvbmUg
d2luZG93IHVzZXMgdGhlIHNhbWUgc29ja2V0IGFzIGEgcmVxdWVzdCBmb3IgdGhlCisvLyBvdGhl
ciB3aW5kb3cuCisvLworLy8gV2hlbmV2ZXIgcmVxdWVzdHMgZnJvbSB0aGUgdHdvIGRpZmZlcmVu
dCBwb3B1cCB3aW5kb3dzIHVzZSB0aGUgc2FtZSBjb25uZWN0aW9uLCB0aGUKKy8vIGZldGNoIHJl
cXVlc3RzIGFsbCBzdGFydCByZXR1cm5pbmcgNDAwIGVycm9ycywgYnV0IG90aGVyIHJlcXVlc3Rz
IHdpbGwgY29udGludWUgdG8KKy8vIHN1Y2NlZWQsIHRvIG1ha2UgZm9yIGNsZWFyZXIgZXJyb3Jz
LgorLy8KKy8vIGluY2x1ZGVfY3JlZGVudGlhbHMgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZldGNo
IHJlcXVlc3RzIHVzZSBjcmVkZW50aWFscyBvciBub3QsCisvLyB3aGljaCBpcyBpbnRlcmVzdGlu
ZyBhcyB1bmNyZWRlbnRpYWxlZCBzb2NrZXRzIGhhdmUgc2VwYXJhdGUgY29ubmVjdGlvbiBwb29s
cy4KK2NvbnN0IHRlc3RzID0gWworICB7CisgICAgbmFtZTogJ1dpdGggY3JlZGVudGlhbHMnLAor
ICAgIHN1YnJlc291cmNlX29yaWdpbjogUE9QVVBfT1JJR0lOU1swXSwKKyAgICBpbmNsdWRlX2Ny
ZWRlbnRpYWxzOiB0cnVlLAorICAgIHBvcHVwX3BhcmFtczogWworICAgICAge3R5cGU6ICdtYWlu
X2ZyYW1lJ30sCisgICAgICB7dHlwZTogJ21haW5fZnJhbWUnfQorICAgIF0KKyAgfSwKKyAgewor
ICAgIG5hbWU6ICdXaXRob3V0IGNyZWRlbnRpYWxzJywKKyAgICBzdWJyZXNvdXJjZV9vcmlnaW46
IFBPUFVQX09SSUdJTlNbMF0sCisgICAgaW5jbHVkZV9jcmVkZW50aWFsczogZmFsc2UsCisgICAg
cG9wdXBfcGFyYW1zOiBbCisgICAgICB7dHlwZTogJ21haW5fZnJhbWUnfSwKKyAgICAgIHt0eXBl
OiAnbWFpbl9mcmFtZSd9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogJ0Nyb3NzLXNpdGUg
cmVzb3VyY2VzIHdpdGggY3JlZGVudGlhbHMnLAorICAgIHN1YnJlc291cmNlX29yaWdpbjogT1RI
RVJfT1JJR0lOLAorICAgIGluY2x1ZGVfY3JlZGVudGlhbHM6IHRydWUsCisgICAgcG9wdXBfcGFy
YW1zOiBbCisgICAgICB7dHlwZTogJ21haW5fZnJhbWUnfSwKKyAgICAgIHt0eXBlOiAnbWFpbl9m
cmFtZSd9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogJ0Nyb3NzLXNpdGUgcmVzb3VyY2Vz
IHdpdGhvdXQgY3JlZGVudGlhbHMnLAorICAgIHN1YnJlc291cmNlX29yaWdpbjogT1RIRVJfT1JJ
R0lOLAorICAgIGluY2x1ZGVfY3JlZGVudGlhbHM6IGZhbHNlLAorICAgIHBvcHVwX3BhcmFtczog
WworICAgICAge3R5cGU6ICdtYWluX2ZyYW1lJ30sCisgICAgICB7dHlwZTogJ21haW5fZnJhbWUn
fQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICdJZnJhbWVzJywKKyAgICBzdWJyZXNvdXJj
ZV9vcmlnaW46IE9USEVSX09SSUdJTiwKKyAgICBpbmNsdWRlX2NyZWRlbnRpYWxzOiB0cnVlLAor
ICAgIHBvcHVwX3BhcmFtczogWworICAgICAgeworICAgICAgICB0eXBlOiAnaWZyYW1lJywKKyAg
ICAgICAgaWZyYW1lX29yaWdpbjogT1RIRVJfT1JJR0lOCisgICAgICB9LAorICAgICAgeworICAg
ICAgICB0eXBlOiAnaWZyYW1lJywKKyAgICAgICAgaWZyYW1lX29yaWdpbjogT1RIRVJfT1JJR0lO
CisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogJ1dvcmtlcnMnLAorICAgIHN1
YnJlc291cmNlX29yaWdpbjogUE9QVVBfT1JJR0lOU1swXSwKKyAgICBpbmNsdWRlX2NyZWRlbnRp
YWxzOiB0cnVlLAorICAgIHBvcHVwX3BhcmFtczogWworICAgICAge3R5cGU6ICd3b3JrZXInfSwK
KyAgICAgIHt0eXBlOiAnd29ya2VyJ30KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAnV29y
a2VycyB3aXRoIGNyb3NzLXNpdGUgcmVzb3VyY2VzJywKKyAgICBzdWJyZXNvdXJjZV9vcmlnaW46
IE9USEVSX09SSUdJTiwKKyAgICBpbmNsdWRlX2NyZWRlbnRpYWxzOiB0cnVlLAorICAgIHBvcHVw
X3BhcmFtczogWworICAgICAge3R5cGU6ICd3b3JrZXInfSwKKyAgICAgIHt0eXBlOiAnd29ya2Vy
J30KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAnQ1NQIHNhbmRib3gnLAorICAgIHN1YnJl
c291cmNlX29yaWdpbjogUE9QVVBfT1JJR0lOU1swXSwKKyAgICBpbmNsdWRlX2NyZWRlbnRpYWxz
OiB0cnVlLAorICAgIHBvcHVwX3BhcmFtczogWworICAgICAge3R5cGU6ICdjc3Bfc2FuZGJveCd9
LAorICAgICAge3R5cGU6ICdjc3Bfc2FuZGJveCd9CisgICAgXQorICB9LAorICB7CisgICAgbmFt
ZTogJ2Fib3V0OmJsYW5rIGZyb20gb3BhcXVlIG9yaWdpbiBpZnJhbWUnLAorICAgIHN1YnJlc291
cmNlX29yaWdpbjogT1RIRVJfT1JJR0lOLAorICAgIGluY2x1ZGVfY3JlZGVudGlhbHM6IHRydWUs
CisgICAgcG9wdXBfcGFyYW1zOiBbCisgICAgICB7dHlwZTogJ29wYXF1ZV9hYm91dF9ibGFuayd9
LAorICAgICAge3R5cGU6ICdvcGFxdWVfYWJvdXRfYmxhbmsnfQorICAgIF0KKyAgfSwKK107CisK
K2NvbnN0IEJBU0VfUEFUSCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9cL1te
XC9dKiQvLCAnLycpOworCitmdW5jdGlvbiBjcmVhdGVfc2NyaXB0X3VybChvcmlnaW4sIHV1aWQs
IHBhcnRpdGlvbl9pZCwgZGlzcGF0Y2gpIHsKKyAgcmV0dXJuIGAke29yaWdpbn0ke0JBU0VfUEFU
SH1yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24ta2V5LnB5P3V1aWQ9JHt1dWlkfSZwYXJ0aXRp
b25faWQ9JHtwYXJ0aXRpb25faWR9JmRpc3BhdGNoPSR7ZGlzcGF0Y2h9YAorfQorCitmdW5jdGlv
biBydW5fdGVzdCh0ZXN0KSB7CisgIHZhciB1dWlkID0gdG9rZW4oKTsKKworICAvLyBVc2VkIHRv
IHRyYWNrIHRoZSBvcGVuZWQgcG9wdXAgd2luZG93cywgc28gdGhleSBjYW4gYmUgY2xvc2VkIGF0
IHRoZSBlbmQgb2YgdGhlIHRlc3QuCisgIC8vIFRoZXkgY291bGQgYmUgY2xvc2VkIGltbWVkaWF0
ZWx5IGFmdGVyIHVzZSwgYnV0IHNhZmVzdCB0byBrZWVwIHRoZW0gb3BlbiwgYXMgYnJvd3NlcnMK
KyAgLy8gY291bGQgdXNlIGNsb3NpbmcgYSB3aW5kb3cgYXMgYSBoaW50IHRvIGNsb3NlIGlkbGUg
c29ja2V0cyB0aGF0IHRoZSB3aW5kb3cgdXNlZC4KKyAgdmFyIHBvcHVwX3dpbmRvd3MgPSBbXTsK
KworICAvLyBDcmVhdGVzIGEgcG9wdXAgd2luZG93IGF0IHx1cmx8IGFuZCB3YWl0cyBmb3IgYSB0
ZXN0IHJlc3VsdC4gUmV0dXJucyBhIHByb21pc2UuCisgIGZ1bmN0aW9uIGNyZWF0ZV9wb3B1cF9h
bmRfd2FpdF9mb3JfcmVzdWx0KHVybCkgeworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlv
bihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHBvcHVwX3dpbmRvd3MucHVzaCh3aW5kb3cub3Bl
bih1cmwpKTsKKyAgICAgIC8vIExpc3RlbiBmb3IgdGhlIHJlc3VsdAorICAgICAgZnVuY3Rpb24g
bWVzc2FnZV9saXN0ZW5lcihldmVudCkgeworICAgICAgICBpZiAoZXZlbnQuZGF0YS5yZXN1bHQg
PT09ICdzdWNjZXNzJykgeworICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSBlbHNlIGlm
IChldmVudC5kYXRhLnJlc3VsdCA9PT0gJ2Vycm9yJykgeworICAgICAgICAgIHJlamVjdChldmVu
dC5kYXRhLmRldGFpbHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHJlamVjdCgnVW5l
eHBlY3RlZCBtZXNzYWdlLicpOworICAgICAgICB9CisgICAgICB9CisgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG1lc3NhZ2VfbGlzdGVuZXIsIHtvbmNlOiAndHJ1ZSd9
KTsKKyAgICB9KTsKKyAgfQorCisgIC8vIE5hdmlnYXRlcyBpZnJhbWUgdG8gdXJsIGFuZCB3YWl0
cyBmb3IgYSB0ZXN0IHJlc3VsdC4gUmV0dXJucyBhIHByb21pc2UuCisgIGZ1bmN0aW9uIG5hdmln
YXRlX2lmcmFtZV9hbmRfd2FpdF9mb3JfcmVzdWx0KGlmcmFtZSwgdXJsKSB7CisgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgaWZyYW1lLnNy
YyA9IHVybDsKKyAgICAgIC8vIExpc3RlbiBmb3IgdGhlIHJlc3VsdAorICAgICAgZnVuY3Rpb24g
bWVzc2FnZV9saXN0ZW5lcihldmVudCkgeworICAgICAgICBpZiAoZXZlbnQuZGF0YS5yZXN1bHQg
PT09ICdzdWNjZXNzJykgeworICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSBlbHNlIGlm
IChldmVudC5kYXRhLnJlc3VsdCA9PT0gJ2Vycm9yJykgeworICAgICAgICAgIHJlamVjdChldmVu
dC5kYXRhLmRldGFpbHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHJlamVjdCgnVW5l
eHBlY3RlZCBtZXNzYWdlLicpOworICAgICAgICB9CisgICAgICB9CisgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG1lc3NhZ2VfbGlzdGVuZXIsIHtvbmNlOiAndHJ1ZSd9
KTsKKyAgICB9KTsKKyAgfQorCisgIGZ1bmN0aW9uIG1ha2VfdGVzdF9mdW5jdGlvbih0ZXN0LCBp
bmRleCkgeworICAgIHZhciBwb3B1cF9wYXJhbXMgPSB0ZXN0LnBvcHVwX3BhcmFtc1tpbmRleF07
CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHBvcHVwX3BhdGg7CisgICAgICB2
YXIgYWRkaXRpb25hbF91cmxfcGFyYW1zID0gJyc7CisgICAgICB2YXIgb3JpZ2luID0gUE9QVVBf
T1JJR0lOU1tpbmRleF07CisgICAgICB2YXIgcGFydGl0aW9uX2lkID0gUE9QVVBfT1JJR0lOU1tp
bmRleF07CisgICAgICBpZiAocG9wdXBfcGFyYW1zLnR5cGUgPT0gJ21haW5fZnJhbWUnKSB7Cisg
ICAgICAgIHBvcHVwX3BhdGggPSAncmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWNoZWNrZXIu
aHRtbCc7CisgICAgICB9IGVsc2UgaWYgKHBvcHVwX3BhcmFtcy50eXBlID09ICdpZnJhbWUnKSB7
CisgICAgICAgIHBvcHVwX3BhdGggPSAncmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWlmcmFt
ZS1jaGVja2VyLmh0bWwnOworICAgICAgICBhZGRpdGlvbmFsX3VybF9wYXJhbXMgPSBgJm90aGVy
X29yaWdpbj0ke3BvcHVwX3BhcmFtcy5pZnJhbWVfb3JpZ2lufWA7CisgICAgICB9IGVsc2UgaWYg
KHBvcHVwX3BhcmFtcy50eXBlID09ICd3b3JrZXInKSB7CisgICAgICAgIHBvcHVwX3BhdGggPSAn
cmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLXdvcmtlci1jaGVja2VyLmh0bWwnOworICAgICAg
ICAvLyBUaGUgb3JpZ2luIG9mIHRoZSBkZWRpY2F0ZWQgd29ya2VyIG11c3QgbXV0Y2ggdGhlIHBh
Z2UgdGhhdCBsb2FkcyBpdC4KKyAgICAgICAgYWRkaXRpb25hbF91cmxfcGFyYW1zID0gYCZvdGhl
cl9vcmlnaW49JHtQT1BVUF9PUklHSU5TW2luZGV4XX1gOworICAgICAgfSBlbHNlIGlmIChwb3B1
cF9wYXJhbXMudHlwZSA9PSAnY3NwX3NhbmRib3gnKSB7CisgICAgICAgIC8vIEZvciB0aGUgQ29u
dGVudC1TZWN1cml0eS1Qb2xpY3kgc2FuZGJveCB0ZXN0LCBhbGwgcmVxdWVzdHMgYXJlIGZyb20g
dGhlIHNhbWUgb3JpZ2luLCBidXQKKyAgICAgICAgLy8gdGhlIG9yaWdpbiBzaG91bGQgYmUgdHJl
YXRlZCBhcyBhbiBvcGFxdWUgb3JpZ2luLCBzbyBzb2NrZXRzIHNob3VsZCBub3QgYmUgcmV1c2Vk
LgorICAgICAgICBvcmlnaW4gPSB0ZXN0LnN1YnJlc291cmNlX29yaWdpbjsKKyAgICAgICAgcGFy
dGl0aW9uX2lkID0gaW5kZXg7CisgICAgICAgIHBvcHVwX3BhdGggPSAncmVzb3VyY2VzL25ldHdv
cmstcGFydGl0aW9uLWNoZWNrZXIuaHRtbCc7CisgICAgICAgIC8vIERvbid0IGNoZWNrIHBhcnRp
dGlvbiBvZiByb290IGRvY3VtZW50LCBzaW5jZSB0aGUgZG9jdW1lbnQgaXNuJ3Qgc2FuZGJveGVk
IHVudGlsIHRoZQorICAgICAgICAvLyByb290IGRvY3VtZW50IGlzIGZldGNoZWQuCisgICAgICAg
IGFkZGl0aW9uYWxfdXJsX3BhcmFtcyA9ICcmc2FuZGJveD10cnVlJm5vY2hlY2tfcGFydGl0aW9u
PXRydWUnCisgICAgICB9IGVsc2UgaWYgKHBvcHVwX3BhcmFtcy50eXBlPT0nb3BhcXVlX2Fib3V0
X2JsYW5rJykgeworICAgICAgICBwb3B1cF9wYXRoID0gJ3Jlc291cmNlcy9uZXR3b3JrLXBhcnRp
dGlvbi1hYm91dC1ibGFuay1jaGVja2VyLmh0bWwnOworICAgICAgfSBlbHNlIGlmIChwb3B1cF9w
YXJhbXMudHlwZSA9PSAnaWZyYW1lJykgeworICAgICAgICB0aHJvdyAnVW5yZWNvZ25pemVkIHBv
cHVwX3BhcmFtcy50eXBlLic7CisgICAgICB9CisgICAgICB2YXIgdXJsID0gY3JlYXRlX3Njcmlw
dF91cmwob3JpZ2luLCB1dWlkLCBwYXJ0aXRpb25faWQsICdmZXRjaF9maWxlJyk7CisgICAgICB1
cmwgKz0gYCZzdWJyZXNvdXJjZV9vcmlnaW49JHt0ZXN0LnN1YnJlc291cmNlX29yaWdpbn1gCisg
ICAgICB1cmwgKz0gYCZpbmNsdWRlX2NyZWRlbnRpYWxzPSR7dGVzdC5pbmNsdWRlX2NyZWRlbnRp
YWxzfWAKKyAgICAgIHVybCArPSBgJnBhdGg9JHtCQVNFX1BBVEguc3Vic3RyaW5nKDEpfSR7cG9w
dXBfcGF0aH1gOworICAgICAgdXJsICs9IGFkZGl0aW9uYWxfdXJsX3BhcmFtczsKKworICAgICAg
aWYgKHBvcHVwX3BhcmFtcy50eXBlPT0nb3BhcXVlX2Fib3V0X2JsYW5rJykgeworICAgICAgICBy
ZXR1cm4gbmF2aWdhdGVfaWZyYW1lX2FuZF93YWl0X2Zvcl9yZXN1bHQoaWZyYW1lID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScgKyBpbmRleCksIHVybCk7CisgICAgICB9CisKKyAg
ICAgIHJldHVybiBjcmVhdGVfcG9wdXBfYW5kX3dhaXRfZm9yX3Jlc3VsdCh1cmwpOworICAgIH0K
KyAgfQorCisgIC8vIFRha2VzIGEgUHJvbWlzZSwgYW5kIGNsZWFucyB1cCBzdGF0ZSB3aGVuIHRo
ZSBwcm9taXNlIGhhcyBjb21wbGV0ZWQsIHN1Y2Nlc3NmdWxseSBvciBub3QsIHJlLXRocm93aW5n
CisgIC8vIGFueSBleGNlcHRpb24gZnJvbSB0aGUgcGFzc2VkIGluIFByb21pc2UuCisgIGFzeW5j
IGZ1bmN0aW9uIGNsZWFuX3VwX3doZW5fZG9uZShwcm9taXNlKSB7CisgICAgdmFyIGVycm9yOwor
ICAgIHRyeSB7CisgICAgICBhd2FpdCBwcm9taXNlOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
IGVycm9yID0gZTsKKyAgICB9CisKKyAgICBwb3B1cF93aW5kb3dzLm1hcChmdW5jdGlvbiAod2lu
KSB7IHdpbi5jbG9zZSgpOyB9KTsKKworICAgIHRyeSB7CisgICAgICB2YXIgY2xlYW51cF91cmwg
PSBjcmVhdGVfc2NyaXB0X3VybChob3N0Lk9SSUdJTiwgdXVpZCwgaG9zdC5PUklHSU4sICdjbGVh
bl91cCcpOworICAgICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goY2xlYW51cF91cmwsIHtj
cmVkZW50aWFsczogJ29taXQnLCBtb2RlOiAnY29ycyd9KTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
YXdhaXQgcmVzcG9uc2UudGV4dCgpLCAnY2xlYW51cCBjb21wbGV0ZScsIGBTZXZlciBzdGF0ZSBj
bGVhbnVwIGZhaWxlZGApOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIC8vIFByZWZlciBlcnJv
ciBmcm9tIHRoZSBwYXNzZWQgaW4gUHJvbWlzZSBvdmVyIGVycm9ycyBmcm9tIHRoZSBmZXRjaCBy
ZXF1ZXN0IHRvIGNsZWFuIHVwIHNlcnZlciBzdGF0ZS4KKyAgICAgIGVycm9yID0gZXJyb3IgfHwg
ZTsKKyAgICB9CisgICAgaWYgKGVycm9yKQorICAgICAgdGhyb3cgZXJyb3I7CisgIH0KKworICBy
ZXR1cm4gY2xlYW5fdXBfd2hlbl9kb25lKAorICAgICAgbWFrZV90ZXN0X2Z1bmN0aW9uKHRlc3Qs
IDApKCkKKyAgICAgIC50aGVuKG1ha2VfdGVzdF9mdW5jdGlvbih0ZXN0LCAxKSkpOworfQorCit0
ZXN0cy5mb3JFYWNoKGZ1bmN0aW9uICh0ZXN0KSB7CisgIHByb21pc2VfdGVzdCgKKyAgICAgIGZ1
bmN0aW9uKCkgeyByZXR1cm4gcnVuX3Rlc3QodGVzdCk7IH0sCisgICAgICB0ZXN0Lm5hbWUpOwor
fSkKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9y
ZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24tYWJvdXQtYmxhbmstY2hlY2tlci5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9u
LXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWFib3V0LWJsYW5rLWNoZWNrZXIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43YThiNjEzMjM3NTJkMmJlMGU3NmY3MGZmMzUyNDk4NmFkOWY2OGViCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWFi
b3V0LWJsYW5rLWNoZWNrZXIuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgPHRpdGxlPmFib3V0
OmJsYW5rIE5ldHdvcmsgUGFydGl0aW9uIENoZWNrZXI8L3RpdGxlPgorICA8bWV0YSBuYW1lPSJo
ZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jbmV0d29yay1wYXJ0aXRp
b24ta2V5cyI+CisgIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Im5vcm1hbCI+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgIGFzeW5jIGZ1bmN0aW9uIGZldGNoX2FuZF9yZXBseSgp
IHsKKyAgICAvLyBMb2FkIGFib3V0OmJsYW5rIGluIGEgbmV3IHRhYiwgYW5kIGluamVjdCB0aGUg
bmV0d29yayBwYXJ0aXRpb24gY2hlY2tpbmcgY29kZSBpbnRvIGl0LgorICAgIHZhciB3aW47Cisg
ICAgdHJ5IHsKKyAgICAgIHdpbiA9IHdpbmRvdy5vcGVuKCk7CisgICAgICB2YXIgdXJsID0gJ1NV
QlJFU09VUkNFX1BSRUZJWDomZGlzcGF0Y2g9ZmV0Y2hfZmlsZSZwYXRoPWZldGNoL2Nvbm5lY3Rp
b24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24tY2hlY2tlci5odG1sJnNhbmRib3g9
dHJ1ZSc7CisgICAgICB2YXIgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtjcmVkZW50aWFs
czogJ29taXQnLCBtb2RlOiAnY29ycyd9KTsKKyAgICAgIHdpbi5kb2N1bWVudC53cml0ZShhd2Fp
dCByZXNwb25zZS50ZXh0KCkpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIHdpbi5jbG9zZSgp
OworICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7cmVzdWx0OiAnZXJyb3InLCBkZXRh
aWxzOiBlLm1lc3NhZ2V9LCAnKicpOworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIExp
c3RlbiBmb3IgZmlyc3QgbWVzc2FnZSBmcm9tIHRoZSBuZXcgd2luZG93IGFuZCBwYXNzIGl0IGJh
Y2sgdG8gdGhlIHBhcmVudC4KKyAgICBmdW5jdGlvbiBtZXNzYWdlX2xpc3RlbmVyKGV2ZW50KSB7
CisgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEsICcqJyk7CisgICAg
ICB3aW4uY2xvc2UoKTsKKyAgICB9CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3Nh
Z2UnLCBtZXNzYWdlX2xpc3RlbmVyLCB7b25jZTogdHJ1ZX0pOworICB9CisgIGZldGNoX2FuZF9y
ZXBseSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9v
bC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24tY2hlY2tlci5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVz
b3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWNoZWNrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDU4ZjYx
MTI0MmJiOGNjZTQ1NzE0MDllZjMwYzhlYTBkN2VkMjJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9u
LXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWNoZWNrZXIuaHRtbApAQCAtMCwwICsx
LDMwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKyAgPHRpdGxlPk5ldHdvcmsgUGFydGl0aW9uIENoZWNrZXI8L3RpdGxlPgorICA8
bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jbmV0
d29yay1wYXJ0aXRpb24ta2V5cyI+CisgIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Im5v
cm1hbCI+CisgIDxzY3JpcHQgc3JjPSJTVUJSRVNPVVJDRV9QUkVGSVg6JmRpc3BhdGNoPWZldGNo
X2ZpbGUmcGF0aD1jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iU1VC
UkVTT1VSQ0VfUFJFRklYOiZkaXNwYXRjaD1mZXRjaF9maWxlJnBhdGg9cmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9IlNVQlJFU09VUkNFX1BSRUZJWDom
ZGlzcGF0Y2g9ZmV0Y2hfZmlsZSZwYXRoPWZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMv
bmV0d29yay1wYXJ0aXRpb24ta2V5LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KKyAgYXN5bmMgZnVuY3Rpb24gZmV0Y2hfYW5kX3JlcGx5KCkgeworICAgIC8vIElmIHRo
aXMgaXMgYSB0b3AgbGV2ZWwgd2luZG93LCByZXBvcnQgdG8gdGhlIG9wZW5lci4gT3RoZXJ3aXNl
LCB0aGlzIGlzIGFuIGlmcmFtZSwKKyAgICAvLyBzbyByZXBvcnQgdG8gdGhlIHBhcmVudC4KKyAg
ICB2YXIgcmVwb3J0X3RvID0gd2luZG93Lm9wZW5lcjsKKyAgICBpZiAoIXJlcG9ydF90bykKKyAg
ICAgIHJlcG9ydF90byA9IHdpbmRvdy5wYXJlbnQ7CisgICAgdHJ5IHsKKyAgICAgICBhd2FpdCBj
aGVja19wYXJ0aXRpb25faWRzKCk7CisgICAgICAgcmVwb3J0X3RvLnBvc3RNZXNzYWdlKHtyZXN1
bHQ6ICdzdWNjZXNzJ30sICcqJyk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICByZXBvcnRfdG8u
cG9zdE1lc3NhZ2Uoe3Jlc3VsdDogJ2Vycm9yJywgZGV0YWlsczogZS5tZXNzYWdlfSwgJyonKTsK
KyAgICB9CisgIH0KKyAgZmV0Y2hfYW5kX3JlcGx5KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1p
ZnJhbWUtY2hlY2tlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9u
LWlmcmFtZS1jaGVja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc2ZWQxODQ0NzE5YzlmODhiNTNlNWYy
ZDM1ZjdhODZkODY2M2MzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9u
ZXR3b3JrLXBhcnRpdGlvbi1pZnJhbWUtY2hlY2tlci5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
ICA8dGl0bGU+SWZyYW1lIE5ldHdvcmsgUGFydGl0aW9uIENoZWNrZXI8L3RpdGxlPgorICA8bWV0
YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jbmV0d29y
ay1wYXJ0aXRpb24ta2V5cyI+CisgIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Im5vcm1h
bCI+CisgIDxzY3JpcHQgc3JjPSJTVUJSRVNPVVJDRV9QUkVGSVg6JmRpc3BhdGNoPWZldGNoX2Zp
bGUmcGF0aD1jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iU1VCUkVT
T1VSQ0VfUFJFRklYOiZkaXNwYXRjaD1mZXRjaF9maWxlJnBhdGg9cmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9IlNVQlJFU09VUkNFX1BSRUZJWDomZGlz
cGF0Y2g9ZmV0Y2hfZmlsZSZwYXRoPWZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0
d29yay1wYXJ0aXRpb24ta2V5LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKyAgLy8gTGlzdGVuIGZvciBmaXJzdCBtZXNzYWdlIGZyb20gdGhlIGlmcmFtZSwgYW5kIHBh
c3MgaXQgYmFjayB0byB0aGUgb3BlbmVyLgorICBmdW5jdGlvbiBtZXNzYWdlX2xpc3RlbmVyKGV2
ZW50KSB7CisgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZShldmVudC5kYXRhLCAnKicpOwor
ICB9CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgbWVzc2FnZV9saXN0ZW5l
ciwge29uY2U6ICd0cnVlJ30pOworPC9zY3JpcHQ+Cis8aWZyYW1lIHNyYz0iU1VCUkVTT1VSQ0Vf
UFJFRklYOiZkaXNwYXRjaD1mZXRjaF9maWxlJnBhdGg9ZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jl
c291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1jaGVja2VyLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0
aW9uLWtleS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1rZXkuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmQ2NjEwOTM4MGYyMWVmMTcxY2I5MGY2YzdhMWRkYWZkN2RkOTIxMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1rZXku
anMKQEAgLTAsMCArMSw0NyBAQAorLy8gUnVucyBtdWx0aXBsZSBmZXRjaGVzIHRoYXQgdmFsaWRh
dGUgY29ubmVjdGlvbnMgc2VlIG9ubHkgYSBzaW5nbGUgcGFydGl0aW9uX2lkLgorLy8gUmVxdWVz
dHMgYXJlIHJ1biBpbiBwYXJhbGxlbCBzbyB0aGF0IHRoZXkgdXNlIG11bHRpcGxlIGNvbm5lY3Rp
b25zIHRvIG1heGltaXplIHRoZQorLy8gY2hhbmNlIG9mIGV4ZXJjaXNpbmcgYWxsIG1hdGNoaW5n
IGNvbm5lY3Rpb25zIGluIHRoZSBjb25uZWN0aW9uIHBvb2wuIE9ubHkgcmV0dXJucworLy8gb25j
ZSBhbGwgcmVxdWVzdHMgaGF2ZSBjb21wbGV0ZWQgdG8gbWFrZSBjbGVhbmluZyB1cCBzZXJ2ZXIg
c3RhdGUgbm9uLXJhY3kuCitmdW5jdGlvbiBjaGVja19wYXJ0aXRpb25faWRzKGxvY2F0aW9uKSB7
CisgIGNvbnN0IE5VTV9GRVRDSEVTID0gMjA7CisKKyAgdmFyIGJhc2VfdXJsID0gJ1NVQlJFU09V
UkNFX1BSRUZJWDomZGlzcGF0Y2g9Y2hlY2tfcGFydGl0aW9uJzsKKworICAvLyBOb3QgYSBwZXJm
ZWN0IHBhcnNlIG9mIHRoZSBxdWVyeSBzdHJpbmcsIGJ1dCBnb29kIGVub3VnaCBmb3IgdGhpcyB0
ZXN0LgorICB2YXIgaW5jbHVkZV9jcmVkZW50aWFscyA9IGJhc2VfdXJsLnNlYXJjaCgnaW5jbHVk
ZV9jcmVkZW50aWFscz10cnVlJykgIT0gLTE7CisgIHZhciBleGNsdWRlX2NyZWRlbnRpYWxzID0g
YmFzZV91cmwuc2VhcmNoKCdpbmNsdWRlX2NyZWRlbnRpYWxzPWZhbHNlJykgIT0gLTE7CisgIGlm
IChpbmNsdWRlX2NyZWRlbnRpYWxzICE9ICFleGNsdWRlX2NyZWRlbnRpYWxzKQorICAgIHRocm93
IG5ldyBFeGNlcHRpb24oJ0NyZWRlbnRpYWxzIG1vZGUgbm90IHNwZWNpZmllZCcpOworCisKKyAg
Ly8gUnVuIE5VTV9GRVRDSEVTIGluIHBhcmFsbGVsLgorICB2YXIgZmV0Y2hlcyA9IFtdOworICBm
b3IgKGkgPSAwOyBpIDwgTlVNX0ZFVENIRVM7ICsraSkgeworICAgIHZhciBmZXRjaF9wYXJhbXMg
PSB7CisgICAgICBjcmVkZW50aWFsczogJ29taXQnLAorICAgICAgbW9kZTogJ2NvcnMnLAorICAg
ICAgaGVhZGVyczogeworICAgICAgICAnSGVhZGVyLVRvLUZvcmNlLUNPUlMnOiAnY29ycycKKyAg
ICAgIH0sCisgICAgfTsKKworICAgIC8vIFVzZSBhIHVuaXF1ZSBVUkwgZm9yIGVhY2ggcmVxdWVz
dCwgaW4gY2FzZSB0aGUgY2FjaGluZyBsYXllciBzZXJpYWxpemVzIG11bHRpcGxlCisgICAgLy8g
cmVxdWVzdHMgZm9yIHRoZSBzYW1lIFVSTC4KKyAgICB2YXIgdXJsID0gYCR7YmFzZV91cmx9JiR7
dG9rZW4oKX1gOworCisgICAgZmV0Y2hlcy5wdXNoKGZldGNoKHVybCwgZmV0Y2hfcGFyYW1zKS50
aGVuKAorICAgICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICByZXR1cm4gcmVz
cG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24odGV4dCkgeworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyh0ZXh0LCAnb2snLCBgU29ja2V0IHVuZXhwZWN0ZWRseSByZXVzZWRgKTsKKyAgICAgICAg
ICB9KTsKKyAgICAgICAgfSkpOworICB9CisKKyAgLy8gV2FpdCBmb3IgYWxsIHByb21pc2VzIHRv
IGNvbXBsZXRlLgorICByZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGZldGNoZXMpLnRoZW4oZnVu
Y3Rpb24gKHJlc3VsdHMpIHsKKyAgICByZXN1bHRzLmZvckVhY2goZnVuY3Rpb24gKHJlc3VsdCkg
eworICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgIT0gJ2Z1bGZpbGxlZCcpCisgICAgICAgIHRocm93
IHJlc3VsdC5yZWFzb247CisgICAgfSk7CisgIH0pOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wv
cmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWtleS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9u
ZXR3b3JrLXBhcnRpdGlvbi1rZXkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFlMDQ5NmZjYTM1ZDM1OTAwOGEx
MWYyYjU4MTU1NWNiNmQ5NDAyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNl
cy9uZXR3b3JrLXBhcnRpdGlvbi1rZXkucHkKQEAgLTAsMCArMSwxMTYgQEAKKyMhL3Vzci9iaW4v
ZW52IHB5dGhvbgorCitpbXBvcnQgbWltZXR5cGVzCitpbXBvcnQgb3MKKworZnJvbSB3cHRzZXJ2
ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19kZWNvZGUsIGlzb21vcnBoaWNfZW5jb2RlCisKKyMg
VGVzdCBzZXJ2ZXIgdGhhdCB0cmFja3MgdGhlIGxhc3QgcGFydGl0aW9uX2lkIHdhcyB1c2VkIHdp
dGggZWFjaCBjb25uZWN0aW9uIGZvciBlYWNoIHV1aWQsIGFuZAorIyBsZXRzIGNvbnN1bWVycyBx
dWVyeSBpZiBtdWx0aXBsZSBkaWZmZXJlbnQgcGFydGl0aW9uX2lkcyBoYXZlIGJlZW4gYmVlbiB1
c2VkIGZvciBhbnkgc29ja2V0LgorIworIyBTZXJ2ZXIgYXNzdW1lcyB0aGF0IHBvcnRzIGFyZW4n
dCByZXVzZWQsIHNvIGEgY2xpZW50IGFkZHJlc3MgYW5kIGEgc2VydmVyIHBvcnQgdW5pcXVlbHkg
aWRlbnRpZnkKKyMgYSBjb25uZWN0aW9uLiBJZiB0aGF0IGNvbnN0cmFpbnQgaXMgZXZlciB2aW9s
YXRlZCwgdGhlIHRlc3Qgd2lsbCBiZSBmbGFreS4gTm8gc29ja2V0cyBiZWluZworIyBjbG9zZWQg
Zm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgdGVzdCBpcyBzdWZmaWNpZW50IHRvIGVuc3VyZSB0aGF0
LCB0aG91Z2ggZXZlbiBpZiBzb2NrZXRzIGFyZQorIyBjbG9zZWQsIHRoZSBPUyBzaG91bGQgZ2Vu
ZXJhbGx5IHByZWZlciB0byB1c2UgbmV3IHBvcnRzIGZvciBuZXcgY29ubmVjdGlvbnMsIGlmIGFu
eSBhcmUKKyMgYXZhaWxhYmxlLgorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIHJl
c3BvbnNlLmhlYWRlcnMuc2V0KGIiQ2FjaGUtQ29udHJvbCIsIGIibm8tc3RvcmUiKQorICAgIGRp
c3BhdGNoID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJkaXNwYXRjaCIsIE5vbmUpCisgICAgdXVpZCA9
IHJlcXVlc3QuR0VULmZpcnN0KGIidXVpZCIsIE5vbmUpCisgICAgcGFydGl0aW9uX2lkID0gcmVx
dWVzdC5HRVQuZmlyc3QoYiJwYXJ0aXRpb25faWQiLCBOb25lKQorCisgICAgaWYgbm90IHV1aWQg
b3Igbm90IGRpc3BhdGNoIG9yIG5vdCBwYXJ0aXRpb25faWQ6CisgICAgICAgIHJldHVybiBzaW1w
bGVfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIDQwNCwgYiJOb3QgZm91bmQiLCBiIkludmFs
aWQgcXVlcnkgcGFyYW1ldGVycyIpCisKKyAgICAjIFVubGVzcyBub2NoZWNrX3BhcnRpdGlvbiBp
cyB0cnVlLCBjaGVjayBwYXJ0aXRpb25faWQgYWdhaW5zdCBzZXJ2ZXJfc3RhdGUsIGFuZCB1cGRh
dGUgc2VydmVyX3N0YXRlLgorICAgIHN0YXNoID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gKKyAgICB0
ZXN0X2ZhaWxlZCA9IEZhbHNlCisgICAgaWYgcmVxdWVzdC5HRVQuZmlyc3QoYiJub2NoZWNrX3Bh
cnRpdGlvbiIsIE5vbmUpICE9IGIiVHJ1ZSI6CisgICAgICAgICMgTmVlZCB0byBncmFiIHRoZSBs
b2NrIHRvIGFjY2VzcyB0aGUgU3Rhc2gsIHNpbmNlIHJlcXVlc3RzIGFyZSBtYWRlIGluIHBhcmFs
bGVsLgorICAgICAgICB3aXRoIHN0YXNoLmxvY2s6CisgICAgICAgICAgICAjIERvbid0IHVzZSBz
ZXJ2ZXIgaG9zdG5hbWUgaGVyZSwgc2luY2UgSDIgYWxsb3dzIG11bHRpcGxlIGhvc3RzIHRvIHJl
dXNlIGEgY29ubmVjdGlvbi4KKyAgICAgICAgICAgICMgU2VydmVyIElQIGlzIG5vdCBjdXJyZW50
bHkgYXZhaWxhYmxlLCB1bmZvcnR1bmF0ZWx5LgorICAgICAgICAgICAgYWRkcmVzc19rZXkgPSBp
c29tb3JwaGljX2VuY29kZShzdHIocmVxdWVzdC5jbGllbnRfYWRkcmVzcykgKyB1InwiICsgc3Ry
KHJlcXVlc3QudXJsX3BhcnRzLnBvcnQpKQorICAgICAgICAgICAgc2VydmVyX3N0YXRlID0gc3Rh
c2gudGFrZSh1dWlkKSBvciB7YiJ0ZXN0X2ZhaWxlZCI6IEZhbHNlfQorICAgICAgICAgICAgaWYg
YWRkcmVzc19rZXkgaW4gc2VydmVyX3N0YXRlIGFuZCBzZXJ2ZXJfc3RhdGVbYWRkcmVzc19rZXld
ICE9IHBhcnRpdGlvbl9pZDoKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfc3RhdGVbYiJ0ZXN0X2Zh
aWxlZCJdID0gVHJ1ZQorICAgICAgICAgICAgc2VydmVyX3N0YXRlW2FkZHJlc3Nfa2V5XSA9IHBh
cnRpdGlvbl9pZAorICAgICAgICAgICAgdGVzdF9mYWlsZWQgPSBzZXJ2ZXJfc3RhdGVbYiJ0ZXN0
X2ZhaWxlZCJdCisgICAgICAgICAgICBzdGFzaC5wdXQodXVpZCwgc2VydmVyX3N0YXRlKQorCisg
ICAgb3JpZ2luID0gcmVxdWVzdC5oZWFkZXJzLmdldChiIk9yaWdpbiIpCisgICAgaWYgb3JpZ2lu
OgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiIsIG9yaWdpbikKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1DcmVkZW50aWFscyIsIGIidHJ1ZSIpCisKKyAgICBpZiByZXF1ZXN0Lm1ldGhv
ZCA9PSB1Ik9QVElPTlMiOgorICAgICAgICByZXR1cm4gaGFuZGxlX3ByZWZsaWdodChyZXF1ZXN0
LCByZXNwb25zZSkKKworICAgIGlmIGRpc3BhdGNoID09IGIiZmV0Y2hfZmlsZSI6CisgICAgICAg
IHJldHVybiBoYW5kbGVfZmV0Y2hfZmlsZShyZXF1ZXN0LCByZXNwb25zZSwgcGFydGl0aW9uX2lk
LCB1dWlkKQorCisgICAgaWYgZGlzcGF0Y2ggPT0gYiJjaGVja19wYXJ0aXRpb24iOgorICAgICAg
ICBpZiB0ZXN0X2ZhaWxlZDoKKyAgICAgICAgICAgIHJldHVybiBzaW1wbGVfcmVzcG9uc2UocmVx
dWVzdCwgcmVzcG9uc2UsIDIwMCwgYiJPSyIsIGIiTXVsdGlwbGUgcGFydGl0aW9uIElEcyB1c2Vk
IG9uIGEgc29ja2V0IikKKyAgICAgICAgcmV0dXJuIHNpbXBsZV9yZXNwb25zZShyZXF1ZXN0LCBy
ZXNwb25zZSwgMjAwLCBiIk9LIiwgYiJvayIpCisKKyAgICBpZiBkaXNwYXRjaCA9PSBiImNsZWFu
X3VwIjoKKyAgICAgICAgc3Rhc2gudGFrZSh1dWlkKQorICAgICAgICBpZiB0ZXN0X2ZhaWxlZDoK
KyAgICAgICAgICAgIHJldHVybiBzaW1wbGVfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIDIw
MCwgYiJPSyIsIGIiVGVzdCBmYWlsZWQsIGJ1dCBjbGVhbnVwIGNvbXBsZXRlZC4iKQorICAgICAg
ICByZXR1cm4gc2ltcGxlX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCAyMDAsIGIiT0siLCBi
ImNsZWFudXAgY29tcGxldGUiKQorCisgICAgcmV0dXJuIHNpbXBsZV9yZXNwb25zZShyZXF1ZXN0
LCByZXNwb25zZSwgNDA0LCBiIk5vdCBGb3VuZCIsIGIiVW5yZWNvZ25pemVkIGRpc3BhdGNoIHBh
cmFtZXRlcjogIiArIGRpc3BhdGNoKQorCitkZWYgaGFuZGxlX3ByZWZsaWdodChyZXF1ZXN0LCBy
ZXNwb25zZSk6CisgICAgcmVzcG9uc2Uuc3RhdHVzID0gKDIwMCwgYiJPSyIpCisgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoYiJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIiwgYiJHRVQiKQor
ICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIs
IGIiaGVhZGVyLXRvLWZvcmNlLWNvcnMiKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQWNj
ZXNzLUNvbnRyb2wtTWF4LUFnZSIsIGIiODY0MDAiKQorICAgIHJldHVybiBiIlByZWZsaWdodCBy
ZXF1ZXN0IgorCitkZWYgc2ltcGxlX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCBzdGF0dXNf
Y29kZSwgc3RhdHVzX21lc3NhZ2UsIGJvZHksIGNvbnRlbnRfdHlwZT1iInRleHQvcGxhaW4iKToK
KyAgICByZXNwb25zZS5zdGF0dXMgPSAoc3RhdHVzX2NvZGUsIHN0YXR1c19tZXNzYWdlKQorICAg
IHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgY29udGVudF90eXBlKQorICAg
IHJldHVybiBib2R5CisKK2RlZiBoYW5kbGVfZmV0Y2hfZmlsZShyZXF1ZXN0LCByZXNwb25zZSwg
cGFydGl0aW9uX2lkLCB1dWlkKToKKyAgICBzdWJyZXNvdXJjZV9vcmlnaW4gPSByZXF1ZXN0LkdF
VC5maXJzdChiInN1YnJlc291cmNlX29yaWdpbiIsIE5vbmUpCisgICAgcmVsX3BhdGggPSByZXF1
ZXN0LkdFVC5maXJzdChiInBhdGgiLCBOb25lKQorCisgICAgIyBUaGlzIG5lZWRzIHRvIGJlIHBh
c3NlZCBvbiB0byBzdWJyZXNvdXJjZXMgc28gdGhleSBhbGwgaGF2ZSBhY2Nlc3MgdG8gaXQuCisg
ICAgaW5jbHVkZV9jcmVkZW50aWFscyA9IHJlcXVlc3QuR0VULmZpcnN0KGIiaW5jbHVkZV9jcmVk
ZW50aWFscyIsIE5vbmUpCisgICAgaWYgbm90IHN1YnJlc291cmNlX29yaWdpbiBvciBub3QgcmVs
X3BhdGggb3Igbm90IGluY2x1ZGVfY3JlZGVudGlhbHM6CisgICAgICAgIHJldHVybiBzaW1wbGVf
cmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIDQwNCwgYiJOb3QgZm91bmQiLCBiIkludmFsaWQg
cXVlcnkgcGFyYW1ldGVycyIpCisKKyAgICBjdXJfcGF0aCA9IG9zLnBhdGgucmVhbHBhdGgoaXNv
bW9ycGhpY19kZWNvZGUoX19maWxlX18pKQorICAgIGJhc2VfcGF0aCA9IG9zLnBhdGguYWJzcGF0
aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKGN1cl9wYXRoKSwgb3MucGFyZGlyLCBvcy5w
YXJkaXIsIG9zLnBhcmRpcikpCisgICAgcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpv
aW4oYmFzZV9wYXRoLCBpc29tb3JwaGljX2RlY29kZShyZWxfcGF0aCkpKQorCisgICAgIyBCYXNp
YyBzZWN1cml0eSBjaGVjay4KKyAgICBpZiBub3QgcGF0aC5zdGFydHN3aXRoKGJhc2VfcGF0aCk6
CisgICAgICAgIHJldHVybiBzaW1wbGVfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIDQwNCwg
YiJOb3QgZm91bmQiLCBiIkludmFsaWQgcGF0aCIpCisKKyAgICBzYW5kYm94ID0gcmVxdWVzdC5H
RVQuZmlyc3QoYiJzYW5kYm94IiwgTm9uZSkKKyAgICBpZiBzYW5kYm94ID09IGIidHJ1ZSI6Cisg
ICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiLCBi
InNhbmRib3ggYWxsb3ctc2NyaXB0cyIpCisKKyAgICBmaWxlID0gb3BlbihwYXRoLCBtb2RlPSJy
YiIpCisgICAgYm9keSA9IGZpbGUucmVhZCgpCisgICAgZmlsZS5jbG9zZSgpCisKKyAgICBzdWJy
ZXNvdXJjZV9wYXRoID0gYiIvIiArIGlzb21vcnBoaWNfZW5jb2RlKG9zLnBhdGgucmVscGF0aChp
c29tb3JwaGljX2RlY29kZShfX2ZpbGVfXyksIGJhc2VfcGF0aCkpLnJlcGxhY2UoYidcXCcsIGIn
LycpCisgICAgc3VicmVzb3VyY2VfcGFyYW1zID0gYiI/cGFydGl0aW9uX2lkPSIgKyBwYXJ0aXRp
b25faWQgKyBiIiZ1dWlkPSIgKyB1dWlkICsgYiImc3VicmVzb3VyY2Vfb3JpZ2luPSIgKyBzdWJy
ZXNvdXJjZV9vcmlnaW4gKyBiIiZpbmNsdWRlX2NyZWRlbnRpYWxzPSIgKyBpbmNsdWRlX2NyZWRl
bnRpYWxzCisgICAgYm9keSA9IGJvZHkucmVwbGFjZShiIlNVQlJFU09VUkNFX1BSRUZJWDoiLCBz
dWJyZXNvdXJjZV9vcmlnaW4gKyBzdWJyZXNvdXJjZV9wYXRoICsgc3VicmVzb3VyY2VfcGFyYW1z
KQorCisgICAgb3RoZXJfb3JpZ2luID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJvdGhlcl9vcmlnaW4i
LCBOb25lKQorICAgIGlmIG90aGVyX29yaWdpbjoKKyAgICAgICAgYm9keSA9IGJvZHkucmVwbGFj
ZShiIk9USEVSX1BSRUZJWDoiLCBvdGhlcl9vcmlnaW4gKyBzdWJyZXNvdXJjZV9wYXRoICsgc3Vi
cmVzb3VyY2VfcGFyYW1zKQorCisgICAgbWltZXR5cGVzLmluaXQoKQorICAgIG1pbWV0eXBlX3Bh
aXIgPSBtaW1ldHlwZXMuZ3Vlc3NfdHlwZShwYXRoKQorICAgIG1pbWV0eXBlID0gbWltZXR5cGVf
cGFpclswXQorCisgICAgaWYgbWltZXR5cGUgPT0gTm9uZSBvciBtaW1ldHlwZV9wYWlyWzFdICE9
IE5vbmU6CisgICAgICAgIHJldHVybiBzaW1wbGVfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2Us
IDUwMCwgYiJTZXJ2ZXIgRXJyb3IiLCBiIlVua25vd24gTUlNRSB0eXBlIikKKyAgICByZXR1cm4g
c2ltcGxlX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlLCAyMDAsIGIiT0siLCBib2R5LCBtaW1l
dHlwZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi13
b3JrZXItY2hlY2tlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9u
LXdvcmtlci1jaGVja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTZiN2VhNzY3M2ZlNzk4YjJlNWE3Mzcw
NTYwMDdiNWEyNWUzYzc5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9u
ZXR3b3JrLXBhcnRpdGlvbi13b3JrZXItY2hlY2tlci5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
ICA8dGl0bGU+V29ya2VyIE5ldHdvcmsgUGFydGl0aW9uIENoZWNrZXI8L3RpdGxlPgorICA8bWV0
YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jbmV0d29y
ay1wYXJ0aXRpb24ta2V5cyI+CisgIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Im5vcm1h
bCI+CisgIDxzY3JpcHQgc3JjPSJTVUJSRVNPVVJDRV9QUkVGSVg6JmRpc3BhdGNoPWZldGNoX2Zp
bGUmcGF0aD1jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iU1VCUkVT
T1VSQ0VfUFJFRklYOiZkaXNwYXRjaD1mZXRjaF9maWxlJnBhdGg9cmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9IlNVQlJFU09VUkNFX1BSRUZJWDomZGlz
cGF0Y2g9ZmV0Y2hfZmlsZSZwYXRoPWZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0
d29yay1wYXJ0aXRpb24ta2V5LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKyAgICAvLyBXb3JrZXJzIG11c3QgYmUgc2FtZSBvcmlnaW4gYXMgdGhlIHBhZ2UgbG9hZGlu
ZyB0aGVtLCBidXQgaXQncyBzaW1wbGVyIHRvIHJldXNlIHRoZQorICAgIC8vIE9USEVSX1BSRUZJ
WCBtZWNoYW5pc20gaW4gdGhlIFB5dGhvbiBjb2RlIHRoYW4gdG8gY3JhZnQgdGhlIFVSTCBpbiBK
YXZhc2NyaXB0IGhlcmUuCisgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoJ09USEVSX1BSRUZJ
WDomZGlzcGF0Y2g9ZmV0Y2hfZmlsZSZwYXRoPWZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJj
ZXMvbmV0d29yay1wYXJ0aXRpb24td29ya2VyLmpzJyk7CisgICAgZnVuY3Rpb24gbWVzc2FnZV9s
aXN0ZW5lcihldmVudCkgeworICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZShldmVudC5k
YXRhLCAnKicpOworICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpOworICAgIH0KKyAgICB3b3JrZXIu
YWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG1lc3NhZ2VfbGlzdGVuZXIpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29y
ay1wYXJ0aXRpb24td29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0
aW9uLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzQ1ZWRmYWNiMTMwZjVhMGMxNzcyOTZmYTYzMjRh
Y2M0NWFiOWY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmst
cGFydGl0aW9uLXdvcmtlci5qcwpAQCAtMCwwICsxLDE1IEBACisvLyBUaGlzIHRlc3RzIHRoZSBw
YXJ0aXRpb24ga2V5IG9mIGZldGNoZXMgdG8gc3VicmVzb3VjZV9vcmlnaW4gbWFkZSBieSB0aGUg
d29ya2VyIGFuZAorLy8gaW1wb3J0ZWQgc2NyaXB0cyBmcm9tIHN1YnJlc291cmNlX29yaWdpbi4K
K2ltcG9ydFNjcmlwdHMoJ1NVQlJFU09VUkNFX1BSRUZJWDomZGlzcGF0Y2g9ZmV0Y2hfZmlsZSZw
YXRoPWNvbW1vbi91dGlscy5qcycpOworaW1wb3J0U2NyaXB0cygnU1VCUkVTT1VSQ0VfUFJFRklY
OiZkaXNwYXRjaD1mZXRjaF9maWxlJnBhdGg9cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJyk7Citp
bXBvcnRTY3JpcHRzKCdTVUJSRVNPVVJDRV9QUkVGSVg6JmRpc3BhdGNoPWZldGNoX2ZpbGUmcGF0
aD1mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWtleS5q
cycpOworCithc3luYyBmdW5jdGlvbiBmZXRjaF9hbmRfcmVwbHkoKSB7CisgIHRyeSB7CisgICAg
IGF3YWl0IGNoZWNrX3BhcnRpdGlvbl9pZHMoKTsKKyAgICAgc2VsZi5wb3N0TWVzc2FnZSh7cmVz
dWx0OiAnc3VjY2Vzcyd9KTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHNlbGYucG9zdE1lc3NhZ2Uo
e3Jlc3VsdDogJ2Vycm9yJywgZGV0YWlsczogZS5tZXNzYWdlfSk7CisgIH0KK30KK2ZldGNoX2Fu
ZF9yZXBseSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25u
ZWN0aW9uLXBvb2wvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwZTU2NzMw
MDVhOTczM2VhZjY4ZjNjMzNkYWU4YTExYTE5ZTdhODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24t
cG9vbC9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMyBAQAorVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
CitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0
aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWFib3V0LWJsYW5rLWNoZWNrZXIu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
Y29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1jaGVja2VyLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5l
Y3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24taWZyYW1lLWNoZWNrZXIuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29u
bmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1rZXkuanMKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9v
bC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24ta2V5LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2Vz
L25ldHdvcmstcGFydGl0aW9uLXdvcmtlci1jaGVja2VyLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJj
ZXMvbmV0d29yay1wYXJ0aXRpb24td29ya2VyLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29ubmVjdGlvbi1wb29sL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiNzAxNTBk
ZTJmNGY0ZTk3NGYxZjA2OThkNTJjMTVkMGRmZDhhMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24t
cG9vbC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9u
ZXR3b3JrLXBhcnRpdGlvbi1rZXkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb250ZW50LWVuY29kaW5nL2JhZC1nemlw
LWJvZHkuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9jb250ZW50LWVuY29kaW5nL2JhZC1nemlwLWJvZHkuYW55LmpzCmluZGV4IGY4MjAz
MjI2NjhjMWNkNzlmMTQ1M2NiYTkxOGYxY2YzOGJmOGExYmIuLjE3YmMxMjYxYTNmNWMzNmE5Nzk3
YzVhMTcxOTkwYzUyMmNmZTc1OTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29udGVudC1lbmNvZGluZy9iYWQtZ3ppcC1ib2R5
LmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2NvbnRlbnQtZW5jb2RpbmcvYmFkLWd6aXAtYm9keS5hbnkuanMKQEAgLTEsMyArMSw1
IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorCiBwcm9taXNlX3Rlc3QoKHRlc3Qp
ID0+IHsKICAgICByZXR1cm4gZmV0Y2goInJlc291cmNlcy9iYWQtZ3ppcC1ib2R5LnB5IikudGhl
bihyZXMgPT4gewogICAgICAgYXNzZXJ0X2VxdWFscyhyZXMuc3RhdHVzLCAyMDApOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9j
b250ZW50LWVuY29kaW5nL3Jlc291cmNlcy9iYWQtZ3ppcC1ib2R5LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb250ZW50LWVuY29kaW5nL3Jl
c291cmNlcy9iYWQtZ3ppcC1ib2R5LnB5CmluZGV4IGIyZjhjZmVmZDdlNDkxMjYwNjQ4ZTMzYWRm
ZTlmYmQzZjhmNzJmZTYuLmE3OWI5NGVkMDQxZDBlMDg1MmU3MWJkZDVjZGJhNTc4OTdhMWYxOTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29udGVudC1lbmNvZGluZy9yZXNvdXJjZXMvYmFkLWd6aXAtYm9keS5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvbnRlbnQt
ZW5jb2RpbmcvcmVzb3VyY2VzL2JhZC1nemlwLWJvZHkucHkKQEAgLTEsMyArMSwzIEBACiBkZWYg
bWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtRW5jb2Rp
bmciLCAiZ3ppcCIpXQotICAgIHJldHVybiBoZWFkZXJzLCAibm90IGFjdHVhbGx5IGd6aXAiCisg
ICAgaGVhZGVycyA9IFsoYiJDb250ZW50LUVuY29kaW5nIiwgYiJnemlwIildCisgICAgcmV0dXJu
IGhlYWRlcnMsIGIibm90IGFjdHVhbGx5IGd6aXAiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvbnRlbnQtdHlwZS9yZXNvdXJj
ZXMvY29udGVudC10eXBlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9jb250ZW50LXR5cGUvcmVzb3VyY2VzL2NvbnRlbnQtdHlwZS5weQppbmRl
eCAwYjVlOTNiOTM3YzI5MzI1MGIzM2FlMmNiMmU1Y2JlNDNlMzgxYTg2Li45MWZjZDk3YTdjYjY3
ZDg1OTZjMDIxZDgyYmNjZTA3ZWU4NWIzMTQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvbnRlbnQtdHlwZS9yZXNvdXJjZXMv
Y29udGVudC10eXBlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvY29udGVudC10eXBlL3Jlc291cmNlcy9jb250ZW50LXR5cGUucHkKQEAg
LTEsMTUgKzEsMTcgQEAKK2Zyb20gd3B0c2VydmUudXRpbHMgaW1wb3J0IGlzb21vcnBoaWNfZW5j
b2RlCisKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICB2YWx1ZXMgPSByZXF1ZXN0
LkdFVC5nZXRfbGlzdCgidmFsdWUiKQotICAgIGNvbnRlbnQgPSByZXF1ZXN0LkdFVC5maXJzdCgi
Y29udGVudCIsICI8Yj5oaTwvYj5cbiIpCi0gICAgb3V0cHV0ID0gICJIVFRQLzEuMSAyMDAgT0tc
clxuIgotICAgIG91dHB1dCArPSAiWC1Db250ZW50LVR5cGUtT3B0aW9uczogbm9zbmlmZlxyXG4i
Ci0gICAgaWYgInNpbmdsZV9oZWFkZXIiIGluIHJlcXVlc3QuR0VUOgotICAgICAgICBvdXRwdXQg
Kz0gIkNvbnRlbnQtVHlwZTogIiArICIsIi5qb2luKHZhbHVlcykgKyAiXHJcbiIKKyAgICB2YWx1
ZXMgPSByZXF1ZXN0LkdFVC5nZXRfbGlzdChiInZhbHVlIikKKyAgICBjb250ZW50ID0gcmVxdWVz
dC5HRVQuZmlyc3QoYiJjb250ZW50IiwgYiI8Yj5oaTwvYj5cbiIpCisgICAgb3V0cHV0ID0gYiJI
VFRQLzEuMSAyMDAgT0tcclxuIgorICAgIG91dHB1dCArPSBiIlgtQ29udGVudC1UeXBlLU9wdGlv
bnM6IG5vc25pZmZcclxuIgorICAgIGlmIGIic2luZ2xlX2hlYWRlciIgaW4gcmVxdWVzdC5HRVQ6
CisgICAgICAgIG91dHB1dCArPSBiIkNvbnRlbnQtVHlwZTogIiArIGIiLCIuam9pbih2YWx1ZXMp
ICsgYiJcclxuIgogICAgIGVsc2U6CiAgICAgICAgIGZvciB2YWx1ZSBpbiB2YWx1ZXM6Ci0gICAg
ICAgICAgICBvdXRwdXQgKz0gIkNvbnRlbnQtVHlwZTogIiArIHZhbHVlICsgIlxyXG4iCi0gICAg
b3V0cHV0ICs9ICJDb250ZW50LUxlbmd0aDogIiArIHN0cihsZW4oY29udGVudCkpICsgIlxyXG4i
Ci0gICAgb3V0cHV0ICs9ICJcclxuIgorICAgICAgICAgICAgb3V0cHV0ICs9IGIiQ29udGVudC1U
eXBlOiAiICsgdmFsdWUgKyBiIlxyXG4iCisgICAgb3V0cHV0ICs9IGIiQ29udGVudC1MZW5ndGg6
ICIgKyBpc29tb3JwaGljX2VuY29kZShzdHIobGVuKGNvbnRlbnQpKSkgKyBiIlxyXG4iCisgICAg
b3V0cHV0ICs9IGIiXHJcbiIKICAgICBvdXRwdXQgKz0gY29udGVudAogICAgIHJlc3BvbnNlLndy
aXRlci53cml0ZShvdXRwdXQpCiAgICAgcmVzcG9uc2UuY2xvc2VfY29ubmVjdGlvbiA9IFRydWUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29udGVudC10eXBlL3Jlc3BvbnNlLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvbnRlbnQtdHlwZS9y
ZXNwb25zZS53aW5kb3ctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlZjhiY2JkY2YwYjIxODA4ZTZmZmZlMzdjM2IxOTg1ZDEzNTU0MmE4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29udGVudC10eXBlL3Jlc3BvbnNlLndpbmRvdy1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMjUgKzAsMCBAQAotCi1IYXJuZXNzIEVy
cm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotUEFTUyBMb2FkaW5nIEpTT07igKYKLVBB
U1MgPGlmcmFtZT46IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogIHRleHQvcGxhaW4K
LVBBU1MgPGlmcmFtZT46IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogIHRleHQvcGxh
aW4KLVBBU1MgZmV0Y2goKTogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiAgdGV4dC9w
bGFpbgotRkFJTCBmZXRjaCgpOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6ICB0ZXh0
L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1G
QUlMIFJlcXVlc3Q6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogIHRleHQvcGxhaW4g
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBnb3QgIiIKLUZBSUwgUmVz
cG9uc2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogIHRleHQvcGxhaW4gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBnb3QgIiIKLVRJTUVPVVQgPGlmcmFt
ZT46IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbiAgVGVzdCB0aW1l
ZCBvdXQKLVBBU1MgPGlmcmFtZT46IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4
dC9wbGFpbgotRkFJTCBmZXRjaCgpOiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRl
eHQvcGxhaW4gIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIi
Ci1QQVNTIGZldGNoKCk6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bgotRkFJTCBSZXF1ZXN0OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxh
aW4gIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1GQUlM
IFJlc3BvbnNlOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1QQVNTIDxpZnJh
bWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbCB0ZXh0L3BsYWlu
Ci1GQUlMIDxpZnJhbWU+OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRt
bCB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICI8Yj5oaTwvYj5cbiIgYnV0IGdv
dCAiaGlcbiIKLVBBU1MgZmV0Y2goKTogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0
ZXh0L2h0bWwgdGV4dC9wbGFpbgotRkFJTCBmZXRjaCgpOiBjb21iaW5lZCByZXNwb25zZSBDb250
ZW50LVR5cGU6IHRleHQvaHRtbCB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0
ZXh0L3BsYWluIiBidXQgZ290ICJ0ZXh0L2h0bWwiCi1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVkIHJl
c3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVk
IHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBnb3QgIiIKLVBBU1MgPGlmcmFtZT46IHNlcGFy
YXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L2h0
bWwKLUZBSUwgPGlmcmFtZT46IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9w
bGFpbjtjaGFyc2V0PWdiayB0ZXh0L2h0bWwgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlVURi04
IiBidXQgZ290ICJHQksiCi1QQVNTIGZldGNoKCk6IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L2h0bWwKLUZBSUwgZmV0Y2goKTogY29t
YmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIHRleHQv
aHRtbCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sIiBidXQgZ290ICJ0ZXh0L3Bs
YWluIgotRkFJTCBSZXF1ZXN0OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQv
cGxhaW47Y2hhcnNldD1nYmsgdGV4dC9odG1sIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0
L2h0bWwiIGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L2h0bWwgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgInRleHQvaHRtbCIgYnV0IGdvdCAiIgotUEFTUyA8aWZyYW1lPjogc2VwYXJhdGUg
cmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIHRleHQvaHRtbDtj
aGFyc2V0PXdpbmRvd3MtMTI1NAotRkFJTCA8aWZyYW1lPjogY29tYmluZWQgcmVzcG9uc2UgQ29u
dGVudC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIHRleHQvaHRtbDtjaGFyc2V0PXdpbmRv
d3MtMTI1NCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiV0lORE9XUy0xMjU0IiBidXQgZ290ICJH
QksiCi1GQUlMIGZldGNoKCk6IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9w
bGFpbjtjaGFyc2V0PWdiayB0ZXh0L2h0bWw7Y2hhcnNldD13aW5kb3dzLTEyNTQgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgInRleHQvaHRtbDtjaGFyc2V0PXdpbmRvd3MtMTI1NCIgYnV0IGdvdCAi
dGV4dC9odG1sIgotRkFJTCBmZXRjaCgpOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6
IHRleHQvcGxhaW47Y2hhcnNldD1nYmsgdGV4dC9odG1sO2NoYXJzZXQ9d2luZG93cy0xMjU0IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWw7Y2hhcnNldD13aW5kb3dzLTEyNTQiIGJ1
dCBnb3QgInRleHQvcGxhaW4iCi1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L2h0bWw7Y2hhcnNldD13aW5kb3dz
LTEyNTQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbDtjaGFyc2V0PXdpbmRvd3Mt
MTI1NCIgYnV0IGdvdCAiIgotRkFJTCBSZXNwb25zZTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVu
dC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIHRleHQvaHRtbDtjaGFyc2V0PXdpbmRvd3Mt
MTI1NCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sO2NoYXJzZXQ9d2luZG93cy0x
MjU0IiBidXQgZ290ICIiCi1GQUlMIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50
LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYmsgdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiR0JLIiBidXQgZ290ICJVVEYtOCIKLVBBU1MgPGlmcmFtZT46IGNvbWJpbmVkIHJl
c3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L3BsYWluCi1G
QUlMIGZldGNoKCk6IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtj
aGFyc2V0PWdiayB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWlu
O2NoYXJzZXQ9Z2JrIiBidXQgZ290ICJ0ZXh0L3BsYWluIgotRkFJTCBmZXRjaCgpOiBjb21iaW5l
ZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYmsgdGV4dC9wbGFp
biBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9wbGFpbjtjaGFyc2V0PWdiayIgYnV0IGdv
dCAidGV4dC9wbGFpbiIKLUZBSUwgUmVxdWVzdDogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1U
eXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgInRleHQvcGxhaW47Y2hhcnNldD1nYmsiIGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6
IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0
ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluO2NoYXJzZXQ9Z2Jr
IiBidXQgZ290ICIiCi1QQVNTIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5
cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYmsgdGV4dC9wbGFpbjtjaGFyc2V0PXdpbmRvd3MtMTI1
MgotRkFJTCA8aWZyYW1lPjogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3Bs
YWluO2NoYXJzZXQ9Z2JrIHRleHQvcGxhaW47Y2hhcnNldD13aW5kb3dzLTEyNTIgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIldJTkRPV1MtMTI1MiIgYnV0IGdvdCAiR0JLIgotRkFJTCBmZXRjaCgp
OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYmsg
dGV4dC9wbGFpbjtjaGFyc2V0PXdpbmRvd3MtMTI1MiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
dGV4dC9wbGFpbjtjaGFyc2V0PXdpbmRvd3MtMTI1MiIgYnV0IGdvdCAidGV4dC9wbGFpbiIKLUZB
SUwgZmV0Y2goKTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO2No
YXJzZXQ9Z2JrIHRleHQvcGxhaW47Y2hhcnNldD13aW5kb3dzLTEyNTIgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgInRleHQvcGxhaW47Y2hhcnNldD13aW5kb3dzLTEyNTIiIGJ1dCBnb3QgInRleHQv
cGxhaW4iCi1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4
dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L3BsYWluO2NoYXJzZXQ9d2luZG93cy0xMjUyIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluO2NoYXJzZXQ9d2luZG93cy0xMjUyIiBidXQg
Z290ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRl
eHQvcGxhaW47Y2hhcnNldD1nYmsgdGV4dC9wbGFpbjtjaGFyc2V0PXdpbmRvd3MtMTI1MiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9wbGFpbjtjaGFyc2V0PXdpbmRvd3MtMTI1MiIgYnV0
IGdvdCAiIgotRkFJTCA8aWZyYW1lPjogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0
ZXh0L2h0bWw7Y2hhcnNldD1nYmsgdGV4dC9odG1sO3g9Iix0ZXh0L3BsYWluIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJHQksiIGJ1dCBnb3QgIlVURi04IgotUEFTUyA8aWZyYW1lPjogY29tYmlu
ZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7Y2hhcnNldD1nYmsgdGV4dC9odG1s
O3g9Iix0ZXh0L3BsYWluCi1GQUlMIGZldGNoKCk6IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQt
VHlwZTogdGV4dC9odG1sO2NoYXJzZXQ9Z2JrIHRleHQvaHRtbDt4PSIsdGV4dC9wbGFpbiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sO3g9XCIsdGV4dC9wbGFpblwiO2NoYXJzZXQ9
Z2JrIiBidXQgZ290ICJ0ZXh0L2h0bWwiCi1GQUlMIGZldGNoKCk6IGNvbWJpbmVkIHJlc3BvbnNl
IENvbnRlbnQtVHlwZTogdGV4dC9odG1sO2NoYXJzZXQ9Z2JrIHRleHQvaHRtbDt4PSIsdGV4dC9w
bGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sO3g9XCIsdGV4dC9wbGFpblwi
O2NoYXJzZXQ9Z2JrIiBidXQgZ290ICJ0ZXh0L2h0bWwiCi1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVk
IHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sO2NoYXJzZXQ9Z2JrIHRleHQvaHRtbDt4
PSIsdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sO3g9XCIsdGV4
dC9wbGFpblwiO2NoYXJzZXQ9Z2JrIiBidXQgZ290ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5l
ZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDtjaGFyc2V0PWdiayB0ZXh0L2h0bWw7
eD0iLHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbDt4PVwiLHRl
eHQvcGxhaW5cIjtjaGFyc2V0PWdiayIgYnV0IGdvdCAiIgotRkFJTCA8aWZyYW1lPjogc2VwYXJh
dGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrO3g9Zm9vIHRl
eHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIkdCSyIgYnV0IGdvdCAiVVRGLTgiCi1Q
QVNTIDxpZnJhbWU+OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47
Y2hhcnNldD1nYms7eD1mb28gdGV4dC9wbGFpbgotRkFJTCBmZXRjaCgpOiBzZXBhcmF0ZSByZXNw
b25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYms7eD1mb28gdGV4dC9wbGFp
biBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9wbGFpbjtjaGFyc2V0PWdiayIgYnV0IGdv
dCAidGV4dC9wbGFpbiIKLUZBSUwgZmV0Y2goKTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1U
eXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrO3g9Zm9vIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgInRleHQvcGxhaW47Y2hhcnNldD1nYmsiIGJ1dCBnb3QgInRleHQvcGxhaW4i
Ci1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjtjaGFyc2V0PWdiazt4PWZvbyB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0
ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIiBidXQgZ290ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5l
ZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYms7eD1mb28gdGV4
dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9wbGFpbjtjaGFyc2V0PWdiayIg
YnV0IGdvdCAiIgotUEFTUyA8aWZyYW1lPjogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBl
OiB0ZXh0L2h0bWw7Y2hhcnNldD1nYmsgdGV4dC9wbGFpbiB0ZXh0L2h0bWwKLUZBSUwgPGlmcmFt
ZT46IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sO2NoYXJzZXQ9Z2Jr
IHRleHQvcGxhaW4gdGV4dC9odG1sIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJVVEYtOCIgYnV0
IGdvdCAiR0JLIgotUEFTUyBmZXRjaCgpOiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6
IHRleHQvaHRtbDtjaGFyc2V0PWdiayB0ZXh0L3BsYWluIHRleHQvaHRtbAotUEFTUyBmZXRjaCgp
OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDtjaGFyc2V0PWdiayB0
ZXh0L3BsYWluIHRleHQvaHRtbAotRkFJTCBSZXF1ZXN0OiBjb21iaW5lZCByZXNwb25zZSBDb250
ZW50LVR5cGU6IHRleHQvaHRtbDtjaGFyc2V0PWdiayB0ZXh0L3BsYWluIHRleHQvaHRtbCBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sIiBidXQgZ290ICIiCi1GQUlMIFJlc3BvbnNl
OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDtjaGFyc2V0PWdiayB0
ZXh0L3BsYWluIHRleHQvaHRtbCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sIiBi
dXQgZ290ICIiCi1USU1FT1VUIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5
cGU6IHRleHQvcGxhaW4gKi8qIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIDxpZnJhbWU+OiBjb21i
aW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gKi8qIFRlc3QgdGltZWQgb3V0
Ci1GQUlMIGZldGNoKCk6IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFp
biAqLyogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBnb3QgIiovKiIK
LVBBU1MgZmV0Y2goKTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu
ICovKgotRkFJTCBSZXF1ZXN0OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQv
cGxhaW4gKi8qIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIi
Ci1GQUlMIFJlc3BvbnNlOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxh
aW4gKi8qIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1U
SU1FT1VUIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRt
bCAqLyogVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgPGlmcmFtZT46IGNvbWJpbmVkIHJlc3BvbnNl
IENvbnRlbnQtVHlwZTogdGV4dC9odG1sICovKiBUZXN0IHRpbWVkIG91dAotRkFJTCBmZXRjaCgp
OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbCAqLyogYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgInRleHQvaHRtbCIgYnV0IGdvdCAiKi8qIgotUEFTUyBmZXRjaCgpOiBj
b21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbCAqLyoKLUZBSUwgUmVxdWVz
dDogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWwgKi8qIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNv
bWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sICovKiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAidGV4dC9odG1sIiBidXQgZ290ICIiCi1QQVNTIDxpZnJhbWU+OiBzZXBhcmF0
ZSByZXNwb25zZSBDb250ZW50LVR5cGU6ICovKiB0ZXh0L2h0bWwKLVRJTUVPVVQgPGlmcmFtZT46
IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogKi8qIHRleHQvaHRtbCBUZXN0IHRpbWVk
IG91dAotUEFTUyBmZXRjaCgpOiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6ICovKiB0
ZXh0L2h0bWwKLUZBSUwgZmV0Y2goKTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiAq
LyogdGV4dC9odG1sIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3Qg
IiovKiIKLUZBSUwgUmVxdWVzdDogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiAqLyog
dGV4dC9odG1sIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgIiIK
LUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogKi8qIHRleHQv
aHRtbCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sIiBidXQgZ290ICIiCi1USU1F
T1VUIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4g
Ki8qO2NoYXJzZXQ9Z2JrIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIDxpZnJhbWU+OiBjb21iaW5l
ZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gKi8qO2NoYXJzZXQ9Z2JrIFRlc3Qg
dGltZWQgb3V0Ci1GQUlMIGZldGNoKCk6IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTog
dGV4dC9wbGFpbiAqLyo7Y2hhcnNldD1nYmsgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQv
cGxhaW4iIGJ1dCBnb3QgIiovKiIKLVBBU1MgZmV0Y2goKTogY29tYmluZWQgcmVzcG9uc2UgQ29u
dGVudC1UeXBlOiB0ZXh0L3BsYWluICovKjtjaGFyc2V0PWdiawotRkFJTCBSZXF1ZXN0OiBjb21i
aW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gKi8qO2NoYXJzZXQ9Z2JrIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1GQUlMIFJlc3Bv
bnNlOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gKi8qO2NoYXJz
ZXQ9Z2JrIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1U
SU1FT1VUIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRt
bCAqLyo7Y2hhcnNldD1nYmsgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgPGlmcmFtZT46IGNvbWJp
bmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sICovKjtjaGFyc2V0PWdiayBUZXN0
IHRpbWVkIG91dAotRkFJTCBmZXRjaCgpOiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6
IHRleHQvaHRtbCAqLyo7Y2hhcnNldD1nYmsgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQv
aHRtbCIgYnV0IGdvdCAiKi8qIgotUEFTUyBmZXRjaCgpOiBjb21iaW5lZCByZXNwb25zZSBDb250
ZW50LVR5cGU6IHRleHQvaHRtbCAqLyo7Y2hhcnNldD1nYmsKLUZBSUwgUmVxdWVzdDogY29tYmlu
ZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWwgKi8qO2NoYXJzZXQ9Z2JrIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6
IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sICovKjtjaGFyc2V0PWdi
ayBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sIiBidXQgZ290ICIiCi1GQUlMIDxp
ZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDt4PSIgdGV4
dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYiIgYnV0IGdvdCAicHJlIgotUEFTUyA8
aWZyYW1lPjogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7eD0iIHRl
eHQvcGxhaW4KLUZBSUwgZmV0Y2goKTogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0
ZXh0L2h0bWw7eD0iIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRt
bDt4PVwiLCB0ZXh0L3BsYWluXCIiIGJ1dCBnb3QgInRleHQvcGxhaW4iCi1GQUlMIGZldGNoKCk6
IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sO3g9IiB0ZXh0L3BsYWlu
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWw7eD1cIiwgdGV4dC9wbGFpblwiIiBi
dXQgZ290ICJ0ZXh0L2h0bWwiCi1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRl
bnQtVHlwZTogdGV4dC9odG1sO3g9IiB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJ0ZXh0L2h0bWw7eD1cIiwgdGV4dC9wbGFpblwiIiBidXQgZ290ICIiCi1GQUlMIFJlc3BvbnNl
OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDt4PSIgdGV4dC9wbGFp
biBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sO3g9XCIsIHRleHQvcGxhaW5cIiIg
YnV0IGdvdCAiIgotRkFJTCA8aWZyYW1lPjogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBl
OiB0ZXh0L2h0bWw7IiB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJiIiBidXQg
Z290ICJwcmUiCi1QQVNTIDxpZnJhbWU+OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6
IHRleHQvaHRtbDsiIHRleHQvcGxhaW4KLUZBSUwgZmV0Y2goKTogc2VwYXJhdGUgcmVzcG9uc2Ug
Q29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgInRleHQvcGxhaW4iCi1QQVNTIGZldGNoKCk6IGNvbWJp
bmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyIgdGV4dC9wbGFpbgotRkFJTCBS
ZXF1ZXN0OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDsiIHRleHQv
cGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbCIgYnV0IGdvdCAiIgotRkFJ
TCBSZXNwb25zZTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiB0
ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgIiIK
LUZBSUwgPGlmcmFtZT46IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1s
OyIgXCIgdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYiIgYnV0IGdvdCAicHJl
IgotUEFTUyA8aWZyYW1lPjogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0
bWw7IiBcIiB0ZXh0L3BsYWluCi1GQUlMIGZldGNoKCk6IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRl
bnQtVHlwZTogdGV4dC9odG1sOyIgXCIgdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAidGV4dC9odG1sIiBidXQgZ290ICJ0ZXh0L3BsYWluIgotUEFTUyBmZXRjaCgpOiBjb21iaW5l
ZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDsiIFwiIHRleHQvcGxhaW4KLUZBSUwg
UmVxdWVzdDogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiBcIiB0
ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgIiIK
LUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1s
OyIgXCIgdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sIiBidXQg
Z290ICIiCi1USU1FT1VUIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6
IHRleHQvaHRtbDsiIFwiIHRleHQvcGxhaW4gIjtjaGFyc2V0PUdCSyBUZXN0IHRpbWVkIG91dAot
UEFTUyA8aWZyYW1lPjogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7
IiBcIiB0ZXh0L3BsYWluICI7Y2hhcnNldD1HQksKLUZBSUwgZmV0Y2goKTogc2VwYXJhdGUgcmVz
cG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiBcIiB0ZXh0L3BsYWluICI7Y2hhcnNldD1H
QksgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbDtjaGFyc2V0PUdCSyIgYnV0IGdv
dCAiXCIiCi1GQUlMIGZldGNoKCk6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4
dC9odG1sOyIgXCIgdGV4dC9wbGFpbiAiO2NoYXJzZXQ9R0JLIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0L2h0bWw7Y2hhcnNldD1HQksiIGJ1dCBnb3QgInRleHQvaHRtbCIKLUZBSUwgUmVx
dWVzdDogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiBcIiB0ZXh0
L3BsYWluICI7Y2hhcnNldD1HQksgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbDtj
aGFyc2V0PUdCSyIgYnV0IGdvdCAiIgotRkFJTCBSZXNwb25zZTogY29tYmluZWQgcmVzcG9uc2Ug
Q29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiBcIiB0ZXh0L3BsYWluICI7Y2hhcnNldD1HQksgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbDtjaGFyc2V0PUdCSyIgYnV0IGdvdCAiIgot
UEFTUyA8aWZyYW1lPjogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7
IiAiIHRleHQvcGxhaW4KLUZBSUwgPGlmcmFtZT46IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQt
VHlwZTogdGV4dC9odG1sOyIgIiB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICI8
Yj5oaTwvYj5cbiIgYnV0IGdvdCAiaGlcbiIKLVBBU1MgZmV0Y2goKTogc2VwYXJhdGUgcmVzcG9u
c2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiAiIHRleHQvcGxhaW4KLUZBSUwgZmV0Y2goKTog
Y29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiAiIHRleHQvcGxhaW4g
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBnb3QgInRleHQvaHRtbCIK
LUZBSUwgUmVxdWVzdDogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7
IiAiIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBn
b3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4
dC9odG1sOyIgIiB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWlu
IiBidXQgZ290ICIiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29udGVudC10eXBlL3NjcmlwdC53aW5kb3ctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9j
b250ZW50LXR5cGUvc2NyaXB0LndpbmRvdy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGU0NDMxY2M4ODY1NGVlNzIyNmYzYzg4MGVmZWZlZmE2ZjA0NjYxOWYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb250ZW50LXR5cGUvc2NyaXB0
LndpbmRvdy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0KLVBB
U1MgTG9hZGluZyBKU09O4oCmCi1QQVNTIHNlcGFyYXRlIHRleHQvamF2YXNjcmlwdDtjaGFyc2V0
PXdpbmRvd3MtMTI1MgotUEFTUyBzZXBhcmF0ZSB0ZXh0L2phdmFzY3JpcHQ7IjtjaGFyc2V0PXdp
bmRvd3MtMTI1MgotRkFJTCBzZXBhcmF0ZSB0ZXh0L2phdmFzY3JpcHQMIGFzc2VydF91bnJlYWNo
ZWQ6IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotUEFTUyBzZXBhcmF0ZSAidGV4dC9qYXZhc2Ny
aXB0IgotUEFTUyBzZXBhcmF0ZSB0ZXh0LyBqYXZhc2NyaXB0Ci1QQVNTIHNlcGFyYXRlIHRleHQg
L2phdmFzY3JpcHQKLVBBU1Mgc2VwYXJhdGUgeC94IHRleHQvamF2YXNjcmlwdAotRkFJTCBjb21i
aW5lZCB4L3ggdGV4dC9qYXZhc2NyaXB0IGFzc2VydF91bnJlYWNoZWQ6IFJlYWNoZWQgdW5yZWFj
aGFibGUgY29kZQotUEFTUyBzZXBhcmF0ZSB4L3g7Y2hhcnNldD13aW5kb3dzLTEyNTIgdGV4dC9q
YXZhc2NyaXB0Ci1GQUlMIGNvbWJpbmVkIHgveDtjaGFyc2V0PXdpbmRvd3MtMTI1MiB0ZXh0L2ph
dmFzY3JpcHQgYXNzZXJ0X3VucmVhY2hlZDogUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1QQVNT
IHNlcGFyYXRlIHRleHQvamF2YXNjcmlwdCB4L3gKLUZBSUwgY29tYmluZWQgdGV4dC9qYXZhc2Ny
aXB0IHgveCBhc3NlcnRfdW5yZWFjaGVkOiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwg
c2VwYXJhdGUgdGV4dC9qYXZhc2NyaXB0OyBjaGFyc2V0PXdpbmRvd3MtMTI1MiB0ZXh0L2phdmFz
Y3JpcHQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIsOi4oCawqwiIGJ1dCBnb3QgIuKCrCIKLVBB
U1MgY29tYmluZWQgdGV4dC9qYXZhc2NyaXB0OyBjaGFyc2V0PXdpbmRvd3MtMTI1MiB0ZXh0L2ph
dmFzY3JpcHQKLUZBSUwgc2VwYXJhdGUgdGV4dC9qYXZhc2NyaXB0OyIgeC94IGFzc2VydF91bnJl
YWNoZWQ6IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotUEFTUyBjb21iaW5lZCB0ZXh0L2phdmFz
Y3JpcHQ7IiB4L3gKLUZBSUwgc2VwYXJhdGUgdGV4dC9qYXZhc2NyaXB0ICBhc3NlcnRfdW5yZWFj
aGVkOiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLVBBU1MgY29tYmluZWQgdGV4dC9qYXZhc2Ny
aXB0Ci1GQUlMIHNlcGFyYXRlIHRleHQvamF2YXNjcmlwdCBlcnJvciBhc3NlcnRfdW5yZWFjaGVk
OiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLVBBU1MgY29tYmluZWQgdGV4dC9qYXZhc2NyaXB0
IGVycm9yCi1QQVNTIHNlcGFyYXRlIHRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXdpbmRvd3MtMTI1
MiB4L3ggdGV4dC9qYXZhc2NyaXB0Ci1GQUlMIGNvbWJpbmVkIHRleHQvamF2YXNjcmlwdDtjaGFy
c2V0PXdpbmRvd3MtMTI1MiB4L3ggdGV4dC9qYXZhc2NyaXB0IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICLigqwiIGJ1dCBnb3QgIsOi4oCawqwiCi1GQUlMIHNlcGFyYXRlIHRleHQvamF2YXNjcmlw
dDtjaGFyc2V0PXdpbmRvd3MtMTI1MiBlcnJvciB0ZXh0L2phdmFzY3JpcHQgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIsOi4oCawqwiIGJ1dCBnb3QgIuKCrCIKLVBBU1MgY29tYmluZWQgdGV4dC9q
YXZhc2NyaXB0O2NoYXJzZXQ9d2luZG93cy0xMjUyIGVycm9yIHRleHQvamF2YXNjcmlwdAotRkFJ
TCBzZXBhcmF0ZSB0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD13aW5kb3dzLTEyNTIgIHRleHQvamF2
YXNjcmlwdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiw6LigJrCrCIgYnV0IGdvdCAi4oKsIgot
UEFTUyBjb21iaW5lZCB0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD13aW5kb3dzLTEyNTIgIHRleHQv
amF2YXNjcmlwdAotRkFJTCBzZXBhcmF0ZSB0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD13aW5kb3dz
LTEyNTI7IiBcIiB4L3ggYXNzZXJ0X3VucmVhY2hlZDogUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2Rl
Ci1QQVNTIGNvbWJpbmVkIHRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXdpbmRvd3MtMTI1MjsiIFwi
IHgveAotUEFTUyBzZXBhcmF0ZSB4L3g7IiB4L3k7XCIgdGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9
d2luZG93cy0xMjUyOyIgdGV4dC9qYXZhc2NyaXB0Ci1GQUlMIGNvbWJpbmVkIHgveDsiIHgveTtc
IiB0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD13aW5kb3dzLTEyNTI7IiB0ZXh0L2phdmFzY3JpcHQg
YXNzZXJ0X3VucmVhY2hlZDogUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29yYi9z
Y3JpcHQtcmVzb3VyY2Utd2l0aC1qc29uLXBhcnNlci1icmVha2VyLnRlbnRhdGl2ZS5zdWItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9jb3JiL3NjcmlwdC1yZXNvdXJjZS13aXRoLWpzb24tcGFyc2VyLWJyZWFrZXIudGVudGF0
aXZlLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkZDUw
NzQ4NWJkZmYyZmRmNTVmMTkzM2IyYzcwYTIyYmI3NzU4ZmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JiL3NjcmlwdC1yZXNvdXJjZS13aXRoLWpzb24tcGFyc2Vy
LWJyZWFrZXIudGVudGF0aXZlLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1
OCArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9j
YWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5
cGU9dGV4dC9odG1sJmJvZHk9KSU1RCU3RCUyNwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHA6Ly93d3cxLmxvY2FsaG9zdDo4ODAwL2ZldGNoL2NvcmIvcmVzb3VyY2VzL3NuaWZm
YWJsZS1yZXNvdXJjZS5weT90eXBlPXRleHQvaHRtbCZib2R5PSU3QiU3RCUyNiUyNgotQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cxLmxvY2FsaG9zdDo4ODAwL2ZldGNo
L2NvcmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNvdXJjZS5weT90eXBlPXRleHQvaHRtbCZib2R5
PSU3QiU3RCUyMCUyNiUyNgotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93
d3cxLmxvY2FsaG9zdDo4ODAwL2ZldGNoL2NvcmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNvdXJj
ZS5weT90eXBlPXRleHQveG1sJmJvZHk9KSU1RCU3RCUyNwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHA6Ly93d3cxLmxvY2FsaG9zdDo4ODAwL2ZldGNoL2NvcmIvcmVzb3VyY2Vz
L3NuaWZmYWJsZS1yZXNvdXJjZS5weT90eXBlPXRleHQveG1sJmJvZHk9JTdCJTdEJTI2JTI2Ci1C
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAv
ZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9dGV4dC94bWwm
Ym9keT0lN0IlN0QlMjAlMjYlMjYKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9jb3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVz
b3VyY2UucHk/dHlwZT10ZXh0L2pzb24mYm9keT0pJTVEJTdEJTI3Ci1CbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNv
dXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9dGV4dC9qc29uJmJvZHk9JTdCJTdEJTI2
JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0
Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9dGV4
dC9qc29uJmJvZHk9JTdCJTdEJTIwJTI2JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZh
YmxlLXJlc291cmNlLnB5P3R5cGU9dGV4dC9wbGFpbiZib2R5PSklNUQlN0QlMjcKLUJsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9j
b3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVzb3VyY2UucHk/dHlwZT10ZXh0L3BsYWluJmJvZHk9
JTdCJTdEJTI2JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEu
bG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5
P3R5cGU9dGV4dC9wbGFpbiZib2R5PSU3QiU3RCUyMCUyNiUyNgotQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cxLmxvY2FsaG9zdDo4ODAwL2ZldGNoL2NvcmIvcmVzb3Vy
Y2VzL3NuaWZmYWJsZS1yZXNvdXJjZS5weT90eXBlPWFwcGxpY2F0aW9uL2phdmFzY3JpcHQmYm9k
eT0pJTVEJTdEJTI3Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEu
bG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5
P3R5cGU9YXBwbGljYXRpb24vamF2YXNjcmlwdCZib2R5PSU3QiU3RCUyNiUyNgotQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cxLmxvY2FsaG9zdDo4ODAwL2ZldGNoL2Nv
cmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNvdXJjZS5weT90eXBlPWFwcGxpY2F0aW9uL2phdmFz
Y3JpcHQmYm9keT0lN0IlN0QlMjAlMjYlMjYKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9jb3JiL3Jlc291cmNlcy9zbmlmZmFi
bGUtcmVzb3VyY2UucHk/dHlwZT1pbWFnZS9wbmcmYm9keT0pJTVEJTdEJTI3Ci1CbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29y
Yi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9aW1hZ2UvcG5nJmJvZHk9JTdC
JTdEJTI2JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9j
YWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5
cGU9aW1hZ2UvcG5nJmJvZHk9JTdCJTdEJTIwJTI2JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMv
c25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9aW1hZ2Uvc3ZnK3htbCZib2R5PSklNUQlN0QlMjcK
LUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgw
MC9mZXRjaC9jb3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVzb3VyY2UucHk/dHlwZT1pbWFnZS9z
dmcreG1sJmJvZHk9JTdCJTdEJTI2JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxl
LXJlc291cmNlLnB5P3R5cGU9aW1hZ2Uvc3ZnK3htbCZib2R5PSU3QiU3RCUyMCUyNiUyNgotQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cxLmxvY2FsaG9zdDo4ODAwL2Zl
dGNoL2NvcmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNvdXJjZS5weT90eXBlPWFwcGxpY2F0aW9u
L3BkZiZib2R5PSklNUQlN0QlMjcKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9jb3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVz
b3VyY2UucHk/dHlwZT1hcHBsaWNhdGlvbi9wZGYmYm9keT0lN0IlN0QlMjYlMjYKLUJsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9j
b3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVzb3VyY2UucHk/dHlwZT1hcHBsaWNhdGlvbi9wZGYm
Ym9keT0lN0IlN0QlMjAlMjYlMjYKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9jb3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVz
b3VyY2UucHk/dHlwZT1hcHBsaWNhdGlvbi96aXAmYm9keT0pJTVEJTdEJTI3Ci1CbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29y
Yi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9YXBwbGljYXRpb24vemlwJmJv
ZHk9JTdCJTdEJTI2JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3
dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNl
LnB5P3R5cGU9YXBwbGljYXRpb24vemlwJmJvZHk9JTdCJTdEJTIwJTI2JTI2Ci0KLUhhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIENPUkItYmxvY2tzICd0
ZXh0L2h0bWwnIHRoYXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2luZyBKU09OIHBhcnNlciBicmVh
a2VyOiApXX0nIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIENPUkItYmxvY2tzICd0ZXh0L2h0bWwn
IHRoYXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2luZyBKU09OIHBhcnNlciBicmVha2VyOiB7fSYm
IFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIENPUkItYmxvY2tzICd0ZXh0L2h0bWwnIHRoYXQgc3Rh
cnRzIHdpdGggdGhlIGZvbGxvd2luZyBKU09OIHBhcnNlciBicmVha2VyOiB7fSAmJiBUZXN0IHRp
bWVkIG91dAotVElNRU9VVCBDT1JCLWJsb2NrcyAndGV4dC94bWwnIHRoYXQgc3RhcnRzIHdpdGgg
dGhlIGZvbGxvd2luZyBKU09OIHBhcnNlciBicmVha2VyOiApXX0nIFRlc3QgdGltZWQgb3V0Ci1U
SU1FT1VUIENPUkItYmxvY2tzICd0ZXh0L3htbCcgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93
aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9JiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09S
Qi1ibG9ja3MgJ3RleHQveG1sJyB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgSlNPTiBw
YXJzZXIgYnJlYWtlcjoge30gJiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3Mg
J3RleHQvanNvbicgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJy
ZWFrZXI6ICldfScgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ3RleHQvanNv
bicgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9
JiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ3RleHQvanNvbicgdGhhdCBz
dGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9ICYmIFRlc3Qg
dGltZWQgb3V0Ci1USU1FT1VUIENPUkItYmxvY2tzICd0ZXh0L3BsYWluJyB0aGF0IHN0YXJ0cyB3
aXRoIHRoZSBmb2xsb3dpbmcgSlNPTiBwYXJzZXIgYnJlYWtlcjogKV19JyBUZXN0IHRpbWVkIG91
dAotVElNRU9VVCBDT1JCLWJsb2NrcyAndGV4dC9wbGFpbicgdGhhdCBzdGFydHMgd2l0aCB0aGUg
Zm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9JiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVP
VVQgQ09SQi1ibG9ja3MgJ3RleHQvcGxhaW4nIHRoYXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2lu
ZyBKU09OIHBhcnNlciBicmVha2VyOiB7fSAmJiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBDT1JC
LWJsb2NrcyAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9s
bG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6ICldfScgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQg
Q09SQi1ibG9ja3MgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnIHRoYXQgc3RhcnRzIHdpdGggdGhl
IGZvbGxvd2luZyBKU09OIHBhcnNlciBicmVha2VyOiB7fSYmIFRlc3QgdGltZWQgb3V0Ci1USU1F
T1VUIENPUkItYmxvY2tzICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JyB0aGF0IHN0YXJ0cyB3aXRo
IHRoZSBmb2xsb3dpbmcgSlNPTiBwYXJzZXIgYnJlYWtlcjoge30gJiYgVGVzdCB0aW1lZCBvdXQK
LVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2ltYWdlL3BuZycgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9s
bG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6ICldfScgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQg
Q09SQi1ibG9ja3MgJ2ltYWdlL3BuZycgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpT
T04gcGFyc2VyIGJyZWFrZXI6IHt9JiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9j
a3MgJ2ltYWdlL3BuZycgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2Vy
IGJyZWFrZXI6IHt9ICYmIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIENPUkItYmxvY2tzICdpbWFn
ZS9zdmcreG1sJyB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgSlNPTiBwYXJzZXIgYnJl
YWtlcjogKV19JyBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBDT1JCLWJsb2NrcyAnaW1hZ2Uvc3Zn
K3htbCcgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6
IHt9JiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2ltYWdlL3N2Zyt4bWwn
IHRoYXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2luZyBKU09OIHBhcnNlciBicmVha2VyOiB7fSAm
JiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBDT1JCLWJsb2NrcyAnYXBwbGljYXRpb24vcGRmJyB0
aGF0IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgSlNPTiBwYXJzZXIgYnJlYWtlcjogKV19JyBU
ZXN0IHRpbWVkIG91dAotVElNRU9VVCBDT1JCLWJsb2NrcyAnYXBwbGljYXRpb24vcGRmJyB0aGF0
IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgSlNPTiBwYXJzZXIgYnJlYWtlcjoge30mJiBUZXN0
IHRpbWVkIG91dAotVElNRU9VVCBDT1JCLWJsb2NrcyAnYXBwbGljYXRpb24vcGRmJyB0aGF0IHN0
YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgSlNPTiBwYXJzZXIgYnJlYWtlcjoge30gJiYgVGVzdCB0
aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2FwcGxpY2F0aW9uL3ppcCcgdGhhdCBzdGFy
dHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6ICldfScgVGVzdCB0aW1l
ZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2FwcGxpY2F0aW9uL3ppcCcgdGhhdCBzdGFydHMg
d2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9JiYgVGVzdCB0aW1lZCBv
dXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2FwcGxpY2F0aW9uL3ppcCcgdGhhdCBzdGFydHMgd2l0
aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9ICYmIFRlc3QgdGltZWQgb3V0
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY29yYi9zY3JpcHQtcmVzb3VyY2Utd2l0aC1qc29uLXBhcnNlci1icmVha2VyLnRl
bnRhdGl2ZS5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvY29yYi9zY3JpcHQtcmVzb3VyY2Utd2l0aC1qc29uLXBhcnNlci1icmVha2Vy
LnRlbnRhdGl2ZS5zdWIuaHRtbAppbmRleCBkNDY5NDQ3MjdmOGVlOWZjMTQ0Y2FlYzQzN2E1NTA1
YmU3NWUzZDRiLi4xYTgwOTVlYzY1ODE5NzgzM2NmMDdmMWYwODQwN2FjOTk3MGYzM2M0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2NvcmIvc2NyaXB0LXJlc291cmNlLXdpdGgtanNvbi1wYXJzZXItYnJlYWtlci50ZW50YXRpdmUu
c3ViLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9jb3JiL3NjcmlwdC1yZXNvdXJjZS13aXRoLWpzb24tcGFyc2VyLWJyZWFrZXIudGVu
dGF0aXZlLnN1Yi5odG1sCkBAIC0xLDQgKzEsNSBAQAogPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+CiA8IS0tIFRlc3QgdmVyaWZpZXMgQ09SQiB3aWxsIGJsb2NrIHJlc3Bv
bnNlcyBiZWdpbm5pbmcgd2l0aCBhIEpTT04gcGFyc2VyCiAgIGJyZWFrZXIgcmVnYXJkbGVzcyBv
ZiB0aGVpciBNSU1FIHR5cGUgKGV4Y2x1ZGluZyB0ZXh0L2NzcyAtIHNlZSBiZWxvdykuCiAKQEAg
LTE4LDcgKzE5LDYgQEAKICAgc3R5bGUtY3NzLXdpdGgtanNvbi1wYXJzZXItYnJlYWtlci5zdWIu
aHRtbCkgY2FuIHBhcnNlIGFzIHZhbGlkIHN0eWxlc2hlZXQKICAgZXZlbiBpbiBwcmVzZW5jZSBv
ZiBhIEpTT04gcGFyc2VyIGJyZWFrZXIuCiAtLT4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9jb3JiL3NjcmlwdC1yZXNvdXJjZS13aXRoLW5vbnNuaWZmYWJsZS10
eXBlcy50ZW50YXRpdmUuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2NvcmIvc2NyaXB0LXJlc291cmNlLXdpdGgtbm9uc25pZmZhYmxl
LXR5cGVzLnRlbnRhdGl2ZS5zdWIuaHRtbAppbmRleCA4MWUyNTYwMDNiNjg1MzA1NTUxZmI1NGJm
NzI5NDYxMDI0ODUzY2Y0Li42ZDQ5MGQ1NWJjZTI1ZjgwN2IyZmU4NGFkMTEwY2ViMTY2ZjMwZjhm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2NvcmIvc2NyaXB0LXJlc291cmNlLXdpdGgtbm9uc25pZmZhYmxlLXR5cGVzLnRlbnRh
dGl2ZS5zdWIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2NvcmIvc2NyaXB0LXJlc291cmNlLXdpdGgtbm9uc25pZmZhYmxlLXR5cGVz
LnRlbnRhdGl2ZS5zdWIuaHRtbApAQCAtNDIsMTIgKzQyLDcgQEAgZnVuY3Rpb24gdGVzdChtaW1l
X3R5cGUsIGlzX2Jsb2NraW5nX2V4cGVjdGVkKSB7CiAgICAgfSk7CiAKICAgICAvLyB3d3cxIGlz
IGNyb3NzLW9yaWdpbiwgc28gdGhlIEhUVFAgcmVzcG9uc2UgaXMgQ09SQi1lbGlnaWJsZS4KLSAg
ICAvLwotICAgIC8vIFRPRE8obHVrYXN6YUBjaHJvbWl1bS5vcmcpOiBPbmNlIGh0dHBzOi8vY3Ji
dWcuY29tLzg4ODA3OSBhbmQKLSAgICAvLyBodHRwczovL2NyYnVnLmNvbS8xMDk4OTM4IGFyZSBm
aXhlZCwgd2Ugc2hvdWxkIHVzZSBhIGNyb3NzLSpvcmlnaW4qCi0gICAgLy8gcmF0aGVyIHRoYW4g
Y3Jvc3MtKnNpdGUqIFVSTCBiZWxvdyAoZS5nLiBzL2hvc3RzW2FsdF0vZG9tYWlucy9nKS4KLSAg
ICAvLyBTZWUgYWxzbyBodHRwczovL2NyYnVnLmNvbS85MTg2NjAgZm9yIG1vcmUgY29udGV4dC4K
LSAgICB2YXIgc3JjX3ByZWZpeCA9ICJodHRwOi8ve3tob3N0c1thbHRdW3d3dzFdfX06e3twb3J0
c1todHRwXVswXX19L2ZldGNoL2NvcmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNvdXJjZS5weSI7
CisgICAgdmFyIHNyY19wcmVmaXggPSAiaHR0cDovL3t7ZG9tYWluc1t3d3cxXX19Ont7cG9ydHNb
aHR0cF1bMF19fS9mZXRjaC9jb3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVzb3VyY2UucHkiOwog
ICAgIGJvZHkgPSBgd2luZG93Wycke3NjcmlwdF9oYXNfcnVuX3Rva2VufSddID0gdHJ1ZTtgCiAg
ICAgc2NyaXB0LnNyYyA9IHNyY19wcmVmaXggKyAiP3R5cGU9IiArIG1pbWVfdHlwZSArICImYm9k
eT0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGJvZHkpOwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoc2NyaXB0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvbm9uLXNlY3VyZS1jb250ZXh0LndpbmRv
dy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9ub24tc2VjdXJlLWNvbnRleHQud2luZG93LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMjIwNmM5OWEwOTBiZDM3MTQyNzRlNGQ4MTFiMjkwZjdiN2YyNWJh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvbm9uLXNlY3VyZS1jb250ZXh0LndpbmRvdy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdl
ID0gRXJyb3I6IGFzc2VydF9mYWxzZTogZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKKworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2NvcnMtcmZjMTkxOC9ub24tc2VjdXJlLWNvbnRleHQud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9ub24t
c2VjdXJlLWNvbnRleHQud2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1
ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L25vbi1zZWN1
cmUtY29udGV4dC53aW5kb3cuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0
ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkx
OC9ub24tc2VjdXJlLWNvbnRleHQud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvbm9uLXNlY3VyZS1jb250ZXh0
LndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjQ5YTVjYmVkZGE3ZWNlOGE1OThjYjFjNjY4YWJkOTAw
NTFmZTY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvbm9uLXNlY3VyZS1jb250ZXh0LndpbmRv
dy5qcwpAQCAtMCwwICsxLDMxIEBACisvLyBNRVRBOiBzY3JpcHQ9cmVzb3VyY2VzL3N1cHBvcnQu
anMKKy8vCisvLyBTcGVjOiBodHRwczovL3dpY2cuZ2l0aHViLmlvL2NvcnMtcmZjMTkxOC8jaW50
ZWdyYXRpb24tZmV0Y2gKKy8vCisvLyBUaGlzIGZpbGUgY292ZXJzIG9ubHkgdGhvc2UgdGVzdHMg
dGhhdCBtdXN0IGV4ZWN1dGUgaW4gYSBub24gc2VjdXJlIGNvbnRleHQuCisvLyBPdGhlciB0ZXN0
cyBhcmUgZGVmaW5lZCBpbjogc2VjdXJlLWNvbnRleHQud2luZG93LmpzCisKK3NldHVwKCgpID0+
IHsKKyAgLy8gTWFraW5nIHN1cmUgd2UgYXJlIGluIGEgbm9uIHNlY3VyZSBjb250ZXh0LCBhcyBl
eHBlY3RlZC4KKyAgYXNzZXJ0X2ZhbHNlKHdpbmRvdy5pc1NlY3VyZUNvbnRleHQpOworfSk7CisK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgcmV0dXJuIGZldGNoKCIvY29tbW9uL2JsYW5r
Lmh0bWwiKQorICAgICAgLmNhdGNoKHJlYXNvbiA9PiB7dW5yZWFjaGVkX2Z1bmMocmVhc29uKX0p
OworfSwgIkxvY2FsIG5vbiBzZWN1cmUgcGFnZSBmZXRjaGVzIGxvY2FsIHBhZ2UuIik7CisKKy8v
IEZvciB0aGUgZm9sbG93aW5nIHRlc3RzLCB3ZSBnbyB0aHJvdWdoIGFuIGlmcmFtZSwgYmVjYXVz
ZSBpdCBpcyBub3QgcG9zc2libGUKKy8vIHRvIGRpcmVjdGx5IGltcG9ydCB0aGUgdGVzdCBoYXJu
ZXNzIGZyb20gYSBzZWN1cmVkIHB1YmxpYyBwYWdlLgorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICBsZXQgaWZyYW1lID0gYXdhaXQgYXBwZW5kSWZyYW1lKHQsIGRvY3VtZW50LAorICAgICAg
InJlc291cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5odG1sIik7CisgIGxldCByZXBseSA9
IGZ1dHVyZU1lc3NhZ2UoKTsKKyAgaWZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoIi9j
b21tb24vYmxhbmsuaHRtbCIsICIqIik7CisgIGFzc2VydF9lcXVhbHMoYXdhaXQgcmVwbHksICJm
YWlsdXJlIik7Cit9LCAiUHVibGljIG5vbiBzZWN1cmUgcGFnZSBmZXRjaGVzIGxvY2FsIHBhZ2Uu
Iik7CisKKy8vIFRPRE8oaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
aXNzdWVzLzI2MTY2KToKKy8vIEFkZCB0ZXN0cyBmb3IgcHVibGljIHZhcmlhdGlvbnMgd2hlbiB3
ZSBhcmUgYWJsZSB0byBmZXRjaCByZXNvdXJjZXMgdXNpbmcgYQorLy8gbWVjaGFuaXNtIGNvbXBh
dGlibGUgd2l0aCBXUFQgZ3VpZGVsaW5lcyByZWdhcmRpbmcgYmVpbmcgc2VsZi1jb250YWluZWQu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNlcy9zdXBwb3J0LmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVzb3Vy
Y2VzL3N1cHBvcnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU0OWM1MTVlZjU0MjI3NDNlNjE4ZTY3YTQyMGJk
MDQ4YWJjZTg5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNlcy9zdXBwb3J0Lmpz
CkBAIC0wLDAgKzEsMzQgQEAKKy8vIENyZWF0ZXMgYSBuZXcgaWZyYW1lIGluIHxkb2N8LCBjYWxs
cyB8ZnVuY3wgb24gaXQgYW5kIGFwcGVuZHMgaXQgYXMgYSBjaGlsZAorLy8gb2YgfGRvY3wuCisv
LyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBpZnJhbWUgb25jZSBsb2Fk
ZWQgKHN1Y2Nlc3NmdWxseSBvcgorLy8gbm90KS4KKy8vIFRoZSBpZnJhbWUgaXMgcmVtb3ZlZCBm
cm9tIHxkb2N8IG9uY2UgdGVzdCB8dHwgaXMgZG9uZSBydW5uaW5nLgorLy8KKy8vIE5PVEU6IEJl
Y2F1c2UgaWZyYW1lIGVsZW1lbnRzIGFsd2F5cyBpbnZva2UgdGhlIG9ubG9hZCBldmVudCBoYW5k
bGVyLCBldmVuCisvLyBpbiBjYXNlIG9mIGVycm9yLCB3ZSBjYW5ub3Qgd2lyZSBvbmVycm9yIHRv
IGEgcHJvbWlzZSByZWplY3Rpb24uIFRoZSBQcm9taXNlCisvLyBjb25zdHJ1Y3RvciByZXF1aXJl
cyB1c2VycyB0byByZXNvbHZlIFhPUiByZWplY3QgdGhlIHByb21pc2UuCitmdW5jdGlvbiBhcHBl
bmRJZnJhbWVXaXRoKHQsIGRvYywgZnVuYykgeworICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7CisgICAgICBjb25zdCBjaGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
KyAgICAgIGZ1bmMoY2hpbGQpOworICAgICAgY2hpbGQub25sb2FkID0gKCkgPT4geyByZXNvbHZl
KGNoaWxkKTsgfTsKKyAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4geyBkb2MuYm9keS5yZW1vdmVDaGlsZChjaGlsZCk7IH0pOworICAg
IH0pOworfQorCisvLyBBcHBlbmRzIGEgY2hpbGQgaWZyYW1lIHRvIHxkb2N8IHNvdXJjZWQgZnJv
bSB8c3JjfC4KKy8vCisvLyBTZWUgYXBwZW5kX2NoaWxkX2ZyYW1lX3dpdGgoKSBmb3IgbW9yZSBk
ZXRhaWxzLgorZnVuY3Rpb24gYXBwZW5kSWZyYW1lKHQsIGRvYywgc3JjKSB7CisgIHJldHVybiBh
cHBlbmRJZnJhbWVXaXRoKHQsIGRvYywgY2hpbGQgPT4geyBjaGlsZC5zcmMgPSBzcmM7IH0pOwor
fQorCisvLyBSZWdpc3RlciBhbiBldmVudCBsaXN0ZW5lciB0aGF0IHdpbGwgcmVzb2x2ZSB0aGlz
IHByb21pc2Ugd2hlbiB0aGlzCisvLyB3aW5kb3cgcmVjZWl2ZXMgYSBtZXNzYWdlIHBvc3RlZCB0
byBpdC4KK2Z1bmN0aW9uIGZ1dHVyZU1lc3NhZ2UoKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKKyAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZSA9
PiByZXNvbHZlKGUuZGF0YSkpOworICB9KTsKK307CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291
cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVzb3VyY2VzL3RyZWF0
LWFzLXB1YmxpYy1hZGRyZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E4ZjZmMDlhNTE3ZjBkYjY5NWE1
NTQzNjg3MDc5MGE3NzYzODcwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNlcy90
cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5odG1sCkBAIC0wLDAgKzEsOCBAQAorPHNjcmlwdD4KKyAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAg
ICBmZXRjaChldmVudC5kYXRhKQorICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7cGFyZW50LnBv
c3RNZXNzYWdlKCJzdWNjZXNzIiwgIioiKX0pCisgICAgICAgIC5jYXRjaChlcnJvciA9PiB7cGFy
ZW50LnBvc3RNZXNzYWdlKCJmYWlsdXJlIiwgIioiKX0pOworICB9KTsKKzwvc2NyaXB0PgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2NvcnMtcmZjMTkxOC9yZXNvdXJjZXMvdHJlYXQtYXMtcHVibGljLWFkZHJlc3MuaHRtbC5o
ZWFkZXJzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9jb3JzLXJmYzE5MTgvcmVzb3VyY2VzL3RyZWF0LWFzLXB1YmxpYy1hZGRyZXNzLmh0bWwuaGVh
ZGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NjM3MWM2MjA5ZTQ2ZjI0ZTYxMWE2Njg5ZDI2YjZmMWJiZmFmZjlj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVzb3VyY2VzL3RyZWF0LWFzLXB1YmxpYy1hZGRy
ZXNzLmh0bWwuaGVhZGVycwpAQCAtMCwwICsxIEBACitDb250ZW50LVNlY3VyaXR5LVBvbGljeTog
dHJlYXQtYXMtcHVibGljLWFkZHJlc3M7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9yZXNvdXJjZXMvdHJl
YXQtYXMtcHVibGljLWFkZHJlc3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNlcy90cmVhdC1h
cy1wdWJsaWMtYWRkcmVzcy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhOGY2ZjA5YTUxN2YwZGI2
OTVhNTU0MzY4NzA3OTBhNzc2Mzg3MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9yZXNvdXJj
ZXMvdHJlYXQtYXMtcHVibGljLWFkZHJlc3MuaHR0cHMuaHRtbApAQCAtMCwwICsxLDggQEAKKzxz
Y3JpcHQ+CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGV2
ZW50KSB7CisgICAgZmV0Y2goZXZlbnQuZGF0YSkKKyAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4g
e3BhcmVudC5wb3N0TWVzc2FnZSgic3VjY2VzcyIsICIqIil9KQorICAgICAgICAuY2F0Y2goZXJy
b3IgPT4ge3BhcmVudC5wb3N0TWVzc2FnZSgiZmFpbHVyZSIsICIqIil9KTsKKyAgfSk7Cis8L3Nj
cmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVzb3VyY2VzL3RyZWF0LWFzLXB1YmxpYy1hZGRy
ZXNzLmh0dHBzLmh0bWwuaGVhZGVycyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNlcy90cmVhdC1hcy1wdWJsaWMt
YWRkcmVzcy5odHRwcy5odG1sLmhlYWRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYzNzFjNjIwOWU0NmYyNGU2
MTFhNjY4OWQyNmI2ZjFiYmZhZmY5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNl
cy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5odHRwcy5odG1sLmhlYWRlcnMKQEAgLTAsMCArMSBA
QAorQ29udGVudC1TZWN1cml0eS1Qb2xpY3k6IHRyZWF0LWFzLXB1YmxpYy1hZGRyZXNzOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9jb3JzLXJmYzE5MTgvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVzb3VyY2Vz
L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZGNlNWMyMjk0MjFiZjJlMjQwMmFiNGJlYzc0
YzY4NmQwY2M0ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9yZXNvdXJjZXMvdzNjLWltcG9y
dC5sb2cKQEAgLTAsMCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVzb3VyY2VzL3N1cHBvcnQu
anMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nv
cnMtcmZjMTkxOC9yZXNvdXJjZXMvdHJlYXQtYXMtcHVibGljLWFkZHJlc3MuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4
L3Jlc291cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5odG1sLmhlYWRlcnMKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9y
ZXNvdXJjZXMvdHJlYXQtYXMtcHVibGljLWFkZHJlc3MuaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291
cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5odHRwcy5odG1sLmhlYWRlcnMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29y
cy1yZmMxOTE4L3NlY3VyZS1jb250ZXh0Lmh0dHBzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkx
OC9zZWN1cmUtY29udGV4dC5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcy
OTUyMTNmZWZlZDI2NjkwMmQzMjI0NDA4NjEzY2YyNTE2YTZiNDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMt
cmZjMTkxOC9zZWN1cmUtY29udGV4dC5odHRwcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorCitQQVNTIExvY2FsIHNlY3VyZSBwYWdlIGZldGNoZXMgbG9jYWwgcGFnZS4KK1BB
U1MgUHVibGljIHNlY3VyZSBwYWdlIGZldGNoZXMgbG9jYWwgcGFnZS4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJm
YzE5MTgvc2VjdXJlLWNvbnRleHQuaHR0cHMud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9zZWN1cmUtY29u
dGV4dC5odHRwcy53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZj
NjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvc2VjdXJlLWNvbnRl
eHQuaHR0cHMud2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVx
dWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVk
IHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgv
c2VjdXJlLWNvbnRleHQuaHR0cHMud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvc2VjdXJlLWNvbnRleHQuaHR0
cHMud2luZG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlZDAyOGEzOTBjMTljZGRmNzU1ODc5MTA3MThiMmQ1
ODY3YzMxOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9zZWN1cmUtY29udGV4dC5odHRwcy53
aW5kb3cuanMKQEAgLTAsMCArMSwzMSBAQAorLy8gTUVUQTogc2NyaXB0PXJlc291cmNlcy9zdXBw
b3J0LmpzCisvLworLy8gU3BlYzogaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb3JzLXJmYzE5MTgv
I2ludGVncmF0aW9uLWZldGNoCisvLworLy8gVGhpcyBmaWxlIGNvdmVycyBvbmx5IHRob3NlIHRl
c3RzIHRoYXQgbXVzdCBleGVjdXRlIGluIGEgc2VjdXJlIGNvbnRleHQuCisvLyBPdGhlciB0ZXN0
cyBhcmUgZGVmaW5lZCBpbjogbm9uLXNlY3VyZS1jb250ZXh0LndpbmRvdy5qcworCitzZXR1cCgo
KSA9PiB7CisgIC8vIE1ha2luZyBzdXJlIHdlIGFyZSBpbiBhIHNlY3VyZSBjb250ZXh0LCBhcyBl
eHBlY3RlZC4KKyAgYXNzZXJ0X3RydWUod2luZG93LmlzU2VjdXJlQ29udGV4dCk7Cit9KTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICByZXR1cm4gZmV0Y2goIi9jb21tb24vYmxhbmsu
aHRtbCIpCisgICAgICAuY2F0Y2gocmVhc29uID0+IHt1bnJlYWNoZWRfZnVuYyhyZWFzb24pfSk7
Cit9LCAiTG9jYWwgc2VjdXJlIHBhZ2UgZmV0Y2hlcyBsb2NhbCBwYWdlLiIpOworCisvLyBGb3Ig
dGhlIGZvbGxvd2luZyB0ZXN0cywgd2UgZ28gdGhyb3VnaCBhbiBpZnJhbWUsIGJlY2F1c2UgaXQg
aXMgbm90IHBvc3NpYmxlCisvLyB0byBkaXJlY3RseSBpbXBvcnQgdGhlIHRlc3QgaGFybmVzcyBm
cm9tIGEgc2VjdXJlZCBwdWJsaWMgcGFnZS4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
bGV0IGlmcmFtZSA9IGF3YWl0IGFwcGVuZElmcmFtZSh0LCBkb2N1bWVudCwKKyAgICAgICJyZXNv
dXJjZXMvdHJlYXQtYXMtcHVibGljLWFkZHJlc3MuaHR0cHMuaHRtbCIpOworICBsZXQgcmVwbHkg
PSBmdXR1cmVNZXNzYWdlKCk7CisgIGlmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCIv
Y29tbW9uL2JsYW5rLmh0bWwiLCAiKiIpOworICBhc3NlcnRfZXF1YWxzKGF3YWl0IHJlcGx5LCAi
c3VjY2VzcyIpOworfSwgIlB1YmxpYyBzZWN1cmUgcGFnZSBmZXRjaGVzIGxvY2FsIHBhZ2UuIik7
CisKKy8vIFRPRE8oaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNz
dWVzLzI2MTY2KToKKy8vIEFkZCB0ZXN0cyBmb3IgcHVibGljIHZhcmlhdGlvbnMgd2hlbiB3ZSBh
cmUgYWJsZSB0byBmZXRjaCByZXNvdXJjZXMgdXNpbmcgYQorLy8gbWVjaGFuaXNtIGNvbXBhdGli
bGUgd2l0aCBXUFQgZ3VpZGVsaW5lcyByZWdhcmRpbmcgYmVpbmcgc2VsZi1jb250YWluZWQuCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29ycy1yZmMxOTE4L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvdzNjLWltcG9ydC5sb2cK
aW5kZXggYmY0OWVjYjEzMjY5NzVhZDIyZTNmNjE3NDYwZGIzNWU0ZDdmOWE3MS4uNThmMGE4NTFh
MjQ2MjI4MDJlMGJmNTU4OWRlOTAwOWVkYTRiMjAxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvdzNjLWlt
cG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9jb3JzLXJmYzE5MTgvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDMgKzE1LDUgQEAgTm9u
ZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVu
dGF0aXZlLmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY29ycy1yZmMxOTE4L25vbi1zZWN1cmUtY29udGV4dC53aW5kb3cuanMKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkx
OC9zZWN1cmUtY29udGV4dC5odHRwcy53aW5kb3cuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291
cmNlLXBvbGljeS9mZXRjaC1pbi1zZXJ2aWNlLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdpbi1y
ZXNvdXJjZS1wb2xpY3kvZmV0Y2gtaW4tc2VydmljZS13b3JrZXItZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MmZjODlmYTZmMTc5YTVjODRiNWRhZjY3ODkzMTRm
Njg4MDBmNTMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mt
b3JpZ2luLXJlc291cmNlLXBvbGljeS9mZXRjaC1pbi1zZXJ2aWNlLXdvcmtlci1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0KLVBBU1MgZmV0Y2guYW55LmpzIHRl
c3QKLVBBU1MgU2FtZS1vcmlnaW4gZmV0Y2ggd2l0aCBhICdDcm9zcy1PcmlnaW4tUmVzb3VyY2Ut
UG9saWN5OiBzYW1lLW9yaWdpbicgcmVzcG9uc2UgaGVhZGVyLgotUEFTUyBTYW1lLW9yaWdpbiBm
ZXRjaCB3aXRoIGEgJ0Nyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3k6IHNhbWUtc2l0ZScgcmVz
cG9uc2UgaGVhZGVyLgotUEFTUyBDcm9zcy1vcmlnaW4gY29ycyBmZXRjaCB3aXRoIGEgJ0Nyb3Nz
LU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3k6IHNhbWUtb3JpZ2luJyByZXNwb25zZSBoZWFkZXIuCi1Q
QVNTIENyb3NzLW9yaWdpbiBjb3JzIGZldGNoIHdpdGggYSAnQ3Jvc3MtT3JpZ2luLVJlc291cmNl
LVBvbGljeTogc2FtZS1zaXRlJyByZXNwb25zZSBoZWFkZXIuCi1QQVNTIENyb3NzLW9yaWdpbiBu
by1jb3JzIGZldGNoIHdpdGggYSAnQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeTogc2FtZS1v
cmlnaW4nIHJlc3BvbnNlIGhlYWRlci4KLVBBU1MgQ3Jvc3Mtb3JpZ2luIG5vLWNvcnMgZmV0Y2gg
d2l0aCBhICdDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5OiBzYW1lLXNpdGUnIHJlc3BvbnNl
IGhlYWRlci4KLVBBU1MgQ3Jvc3Mtc2NoZW1lIChIVFRQIHRvIEhUVFBTKSBuby1jb3JzIGZldGNo
IHRvIGEgc2FtZS1zaXRlIFVSTCB3aXRoIGEgJ0Nyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3k6
IHNhbWUtc2l0ZScgcmVzcG9uc2UgaGVhZGVyLgotUEFTUyBDcm9zcy1vcmlnaW4gbm8tY29ycyBm
ZXRjaCB0byBhIHNhbWUtc2l0ZSBVUkwgd2l0aCBhICdDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9s
aWN5OiBzYW1lLW9yaWdpbicgcmVzcG9uc2UgaGVhZGVyLgotUEFTUyBWYWxpZCBjcm9zcy1vcmln
aW4gbm8tY29ycyBmZXRjaCB3aXRoIGEgJ0Nyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3k6IHNh
bWUtc2l0ZScgcmVzcG9uc2UgaGVhZGVyLgotUEFTUyBDcm9zcy1vcmlnaW4gbm8tY29ycyBmZXRj
aCB3aXRoIGEgJ0Nyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3k6IHNhbWUtb3JpZ2luJyByZXNw
b25zZSBoZWFkZXIgYWZ0ZXIgYSByZWRpcmVjdGlvbi4KLVBBU1MgQ3Jvc3Mtb3JpZ2luIG5vLWNv
cnMgZmV0Y2ggd2l0aCBhICdDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5OiBzYW1lLW9yaWdp
bicgcmVzcG9uc2UgaGVhZGVyIGFmdGVyIGEgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9uLgotUEFT
UyBDcm9zcy1vcmlnaW4gbm8tY29ycyBmZXRjaCB3aXRoIGEgJ0Nyb3NzLU9yaWdpbi1SZXNvdXJj
ZS1Qb2xpY3k6IHNhbWUtb3JpZ2luJyByZWRpcmVjdCByZXNwb25zZSBoZWFkZXIuCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
Y3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeS9mZXRjaC1pbi1zZXJ2aWNlLXdvcmtlci5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jcm9z
cy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5L2ZldGNoLWluLXNlcnZpY2Utd29ya2VyLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1NDY4YzAwZTRhNzE2MTRjMTJjMzdmMTA1YWQ0
NzkwMWVmNzlhZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jcm9z
cy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5L2ZldGNoLWluLXNlcnZpY2Utd29ya2VyLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5Dcm9z
cy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IGluIFNlcnZpY2UgV29ya2VyPC90aXRsZT4KLTxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMu
c3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXNlcnZpY2Vfd29ya2VyX3Rlc3QoCi0gICAg
J2ZldGNoLmFueS53b3JrZXIuanMnLAotICAgICdmZXRjaC5hbnkuanMgdGVzdCcpOwotCi08L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvZGF0YS11cmxzL2Jhc2U2NC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2RhdGEtdXJscy9iYXNlNjQuYW55LmpzCmlu
ZGV4IGM0MDgwNTM2NGU5ZDNlNGIxMTI4M2I4MDkwMmM5NTYyYmQyNjJhNjIuLjgzZjM0ZGIxNzc3
ZDk5ZDZjMTIxMmE3NWFiNGRiNDRkY2JkNzA3MjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvZGF0YS11cmxzL2Jhc2U2NC5hbnku
anMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9kYXRhLXVybHMvYmFzZTY0LmFueS5qcwpAQCAtMSwzICsxLDUgQEAKKy8vIE1FVEE6IGdsb2Jh
bD13aW5kb3csd29ya2VyCisKIHByb21pc2VfdGVzdCgoKSA9PiBmZXRjaCgicmVzb3VyY2VzL2Jh
c2U2NC5qc29uIikudGhlbihyZXMgPT4gcmVzLmpzb24oKSkudGhlbihydW5CYXNlNjRUZXN0cyks
ICJTZXR1cC4iKTsKIGZ1bmN0aW9uIHJ1bkJhc2U2NFRlc3RzKHRlc3RzKSB7CiAgIGZvcihsZXQg
aSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9kYXRhLXVybHMvcHJvY2Vzc2lu
Zy5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2RhdGEtdXJscy9wcm9jZXNzaW5nLmFueS5qcwppbmRleCA5NDBlNWNlYTM4NzhiOTQ2MWUw
NGNkNjRlMGY1YmRlNmIyMmUwM2QyLi5jZWM5N2JkNmJlMmIyZTNmMWIzOWM3YTVlODEyOGVlNDhk
N2FjM2Q0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2RhdGEtdXJscy9wcm9jZXNzaW5nLmFueS5qcworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2RhdGEtdXJscy9wcm9jZXNz
aW5nLmFueS5qcwpAQCAtMSwzICsxLDUgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2Vy
CisKIHByb21pc2VfdGVzdCgoKSA9PiBmZXRjaCgicmVzb3VyY2VzL2RhdGEtdXJscy5qc29uIiku
dGhlbihyZXMgPT4gcmVzLmpzb24oKSkudGhlbihydW5EYXRhVVJMVGVzdHMpLCAiU2V0dXAuIik7
CiBmdW5jdGlvbiBydW5EYXRhVVJMVGVzdHModGVzdHMpIHsKICAgZm9yKGxldCBpID0gMDsgaSA8
IHRlc3RzLmxlbmd0aDsgaSsrKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2gxLXBhcnNpbmcvcmVzb3VyY2VzL2RvY3VtZW50
LXdpdGgtMHgwMC1pbi1oZWFkZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2gxLXBhcnNpbmcvcmVzb3VyY2VzL2RvY3VtZW50LXdpdGgtMHgw
MC1pbi1oZWFkZXIucHkKaW5kZXggNmU4ZGI2MTk1OTEwZWY0Yzg1ZGNlZDhiMjQ1NDFlY2RlODNj
NTQwNS4uMjIzYjNjNDAyNzgyNmYyYmJhMTM5NGRiNDY1YzkzZWM3Y2JiZTAwMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9oMS1w
YXJzaW5nL3Jlc291cmNlcy9kb2N1bWVudC13aXRoLTB4MDAtaW4taGVhZGVyLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaDEtcGFyc2lu
Zy9yZXNvdXJjZXMvZG9jdW1lbnQtd2l0aC0weDAwLWluLWhlYWRlci5weQpAQCAtMSw0ICsxLDQg
QEAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICByZXNwb25zZS5oZWFkZXJzLnNl
dCgiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIpCi0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQo
IkN1c3RvbSIsICJcMCIpCi0gICAgcmV0dXJuICI8IWRvY3R5cGUgaHRtbD48Yj5UaGlzIGlzIGEg
ZG9jdW1lbnQuPC9iPiIKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIs
IGIidGV4dC9odG1sIikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkN1c3RvbSIsIGIiXDAi
KQorICAgIHJldHVybiBiIjwhZG9jdHlwZSBodG1sPjxiPlRoaXMgaXMgYSBkb2N1bWVudC48L2I+
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9oMS1wYXJzaW5nL3Jlc291cmNlcy9zY3JpcHQtd2l0aC0weDAwLWluLWhlYWRlci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaDEt
cGFyc2luZy9yZXNvdXJjZXMvc2NyaXB0LXdpdGgtMHgwMC1pbi1oZWFkZXIucHkKaW5kZXggZjRh
MDE2YTM2OTgzMWVlNWRjZGIzNTYzNDY4Y2NmOGRkMGIwOTgyYi4uMzlmNThkODI3MGU3NjcxYmY3
NGU0MGFjODRlMDVhNzU1OGRmNGY2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9oMS1wYXJzaW5nL3Jlc291cmNlcy9zY3JpcHQt
d2l0aC0weDAwLWluLWhlYWRlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2gxLXBhcnNpbmcvcmVzb3VyY2VzL3NjcmlwdC13aXRoLTB4
MDAtaW4taGVhZGVyLnB5CkBAIC0xLDQgKzEsNCBAQAogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9u
c2UpOgotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAidGV4dC9qYXZh
c2NyaXB0IikKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ3VzdG9tIiwgIlwwIikKLSAgICBy
ZXR1cm4gInZhciB0aGlzSXNKYXZhU2NyaXB0ID0gMCIKKyAgICByZXNwb25zZS5oZWFkZXJzLnNl
dChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9qYXZhc2NyaXB0IikKKyAgICByZXNwb25zZS5oZWFk
ZXJzLnNldChiIkN1c3RvbSIsIGIiXDAiKQorICAgIHJldHVybiBiInZhciB0aGlzSXNKYXZhU2Ny
aXB0ID0gMCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS8zMDQtdXBkYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS8z
MDQtdXBkYXRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdl
OWFiMzZjN2M1N2JmNGMyNzVmNTVjMjJjYWFiMzRjNDM4ZmY0Zi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLQotUEFTUyBIVFRQIGNhY2hlIHVwZGF0ZXMg
cmV0dXJuZWQgaGVhZGVycyBmcm9tIGEgTGFzdC1Nb2RpZmllZCAzMDQKLVBBU1MgSFRUUCBjYWNo
ZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJzIGZyb20gYSBMYXN0LU1vZGlmaWVkIDMwNAotUEFTUyBI
VFRQIGNhY2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVhZGVycyBmcm9tIGEgRVRhZyAzMDQKLVBBU1Mg
SFRUUCBjYWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJzIGZyb20gYSBFVGFnIDMwNAotRkFJTCBD
b250ZW50LSogaGVhZGVyIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNlIDIgaGVhZGVyIENvbnRlbnQt
VGVzdC1IZWFkZXIgaXMgIkEiLCBub3QgIkIiIGV4cGVjdGVkICJCIiBidXQgZ290ICJBIgotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlLzMwNC11cGRh
dGUuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2U5YWIzNmM3YzU3YmY0YzI3NWY1NWMy
MmNhYWIzNGM0MzhmZjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlLzMwNC11cGRhdGUuYW55LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworUEFTUyBIVFRQIGNhY2hlIHVwZGF0ZXMgcmV0
dXJuZWQgaGVhZGVycyBmcm9tIGEgTGFzdC1Nb2RpZmllZCAzMDQKK1BBU1MgSFRUUCBjYWNoZSB1
cGRhdGVzIHN0b3JlZCBoZWFkZXJzIGZyb20gYSBMYXN0LU1vZGlmaWVkIDMwNAorUEFTUyBIVFRQ
IGNhY2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVhZGVycyBmcm9tIGEgRVRhZyAzMDQKK1BBU1MgSFRU
UCBjYWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJzIGZyb20gYSBFVGFnIDMwNAorRkFJTCBDb250
ZW50LSogaGVhZGVyIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNlIDIgaGVhZGVyIENvbnRlbnQtVGVz
dC1IZWFkZXIgaXMgIkEiLCBub3QgIkIiIGV4cGVjdGVkICJCIiBidXQgZ290ICJBIgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS8zMDQtdXBkYXRlLmFueS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8
IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUg
dG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnku
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTU0ODRmMDFlYjMyYmUzMTRmMDUzNzY5NGJiMWE4NWE3M2JjMmJhMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS8zMDQtdXBkYXRlLmFueS5qcwpAQCAtMCwwICsxLDE0NiBA
QAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPUhUVFAgQ2Fj
aGUgLSAzMDQgVXBkYXRlcworLy8gTUVUQTogdGltZW91dD1sb25nCisvLyBNRVRBOiBzY3JpcHQ9
L2NvbW1vbi91dGlscy5qcworLy8gTUVUQTogc2NyaXB0PS9jb21tb24vZ2V0LWhvc3QtaW5mby5z
dWIuanMKKy8vIE1FVEE6IHNjcmlwdD1odHRwLWNhY2hlLmpzCisKK3ZhciB0ZXN0cyA9IFsKKyAg
eworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVhZGVycyBmcm9tIGEg
TGFzdC1Nb2RpZmllZCAzMDQiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJl
c3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCAtNTAwMF0sCisgICAgICAg
ICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAi
QSJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRl
cnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCAtMzAwMF0sCisgICAgICAgICAgWyJMYXN0LU1v
ZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCisgICAgICAg
IF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJsbV92YWxpZGF0ZWQiLAorICAgICAgICBleHBl
Y3RlZF9yZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJCIl0K
KyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNh
Y2hlIHVwZGF0ZXMgc3RvcmVkIGhlYWRlcnMgZnJvbSBhIExhc3QtTW9kaWZpZWQgMzA0IiwKKyAg
ICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAg
ICAgICAgWyJFeHBpcmVzIiwgLTUwMDBdLAorICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0z
MDAwXSwKKyAgICAgICAgICBbIlRlc3QtSGVhZGVyIiwgIkEiXQorICAgICAgICBdCisgICAgICB9
LAorICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBp
cmVzIiwgMzAwMF0sCisgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAg
ICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5
cGU6ICJsbV92YWxpZGF0ZWQiLAorICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9oZWFkZXJzOiBb
CisgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJCIl0KKyAgICAgICAgXSwKKyAgICAgICAgcGF1
c2VfYWZ0ZXI6IHRydWUKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6
ICJjYWNoZWQiLAorICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAg
ICAgWyJUZXN0LUhlYWRlciIsICJCIl0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgfSwK
KyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVhZGVycyBmcm9t
IGEgRVRhZyAzMDQiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNl
X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCAtNTAwMF0sCisgICAgICAgICAgWyJF
VGFnIiwgIkFCQyJdLAorICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQSJdCisgICAgICAgIF0K
KyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAg
ICBbIkV4cGlyZXMiLCAtMzAwMF0sCisgICAgICAgICAgWyJFVGFnIiwgIkFCQyJdLAorICAgICAg
ICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5
cGU6ICJldGFnX3ZhbGlkYXRlZCIsCisgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2hlYWRlcnM6
IFsKKyAgICAgICAgICBbIlRlc3QtSGVhZGVyIiwgIkIiXQorICAgICAgICBdCisgICAgICB9Cisg
ICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgdXBkYXRlcyBzdG9yZWQgaGVh
ZGVycyBmcm9tIGEgRVRhZyAzMDQiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAg
IHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCAtNTAwMF0sCisgICAg
ICAgICAgWyJFVGFnIiwgIkRFRiJdLAorICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQSJdCisg
ICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsK
KyAgICAgICAgICBbIkV4cGlyZXMiLCAzMDAwXSwKKyAgICAgICAgICBbIkVUYWciLCAiREVGIl0s
CisgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJCIl0KKyAgICAgICAgXSwKKyAgICAgICAgZXhw
ZWN0ZWRfdHlwZTogImV0YWdfdmFsaWRhdGVkIiwKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2Vf
aGVhZGVyczogWworICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCisgICAgICAgIF0sCisg
ICAgICAgIHBhdXNlX2FmdGVyOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICBleHBl
Y3RlZF90eXBlOiAiY2FjaGVkIiwKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfaGVhZGVyczog
WworICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCisgICAgICAgIF0KKyAgICAgIH0KKyAg
ICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiQ29udGVudC0qIGhlYWRlciIsCisgICAgcmVxdWVz
dHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsi
RXhwaXJlcyIsIC01MDAwXSwKKyAgICAgICAgICBbIkVUYWciLCAiR0hJIl0sCisgICAgICAgICAg
WyJDb250ZW50LVRlc3QtSGVhZGVyIiwgIkEiXQorICAgICAgICBdCisgICAgICB9LAorICAgICAg
eworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwgMzAw
MF0sCisgICAgICAgICAgWyJFVGFnIiwgIkdISSJdLAorICAgICAgICAgIFsiQ29udGVudC1UZXN0
LUhlYWRlciIsICJCIl0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImV0YWdf
dmFsaWRhdGVkIiwKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfaGVhZGVyczogWworICAgICAg
ICAgIFsiQ29udGVudC1UZXN0LUhlYWRlciIsICJCIl0KKyAgICAgICAgXSwKKyAgICAgICAgcGF1
c2VfYWZ0ZXI6IHRydWUKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6
ICJjYWNoZWQiLAorICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAg
ICAgWyJDb250ZW50LVRlc3QtSGVhZGVyIiwgIkIiXQorICAgICAgICBdCisgICAgICB9CisgICAg
XQorICB9LAorXTsKK3J1bl90ZXN0cyh0ZXN0cyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0
ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS8zMDQtdXBkYXRlLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3ZTlhYjM2YzdjNTdiZjRjMjc1ZjU1YzIyY2FhYjM0YzQz
OGZmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworUEFTUyBIVFRQIGNhY2hlIHVwZGF0ZXMgcmV0dXJu
ZWQgaGVhZGVycyBmcm9tIGEgTGFzdC1Nb2RpZmllZCAzMDQKK1BBU1MgSFRUUCBjYWNoZSB1cGRh
dGVzIHN0b3JlZCBoZWFkZXJzIGZyb20gYSBMYXN0LU1vZGlmaWVkIDMwNAorUEFTUyBIVFRQIGNh
Y2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVhZGVycyBmcm9tIGEgRVRhZyAzMDQKK1BBU1MgSFRUUCBj
YWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJzIGZyb20gYSBFVGFnIDMwNAorRkFJTCBDb250ZW50
LSogaGVhZGVyIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNlIDIgaGVhZGVyIENvbnRlbnQtVGVzdC1I
ZWFkZXIgaXMgIkEiLCBub3QgIkIiIGV4cGVjdGVkICJCIiBidXQgZ290ICJBIgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnku
d29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4
MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS8zMDQtdXBkYXRlLmFueS53b3JrZXIuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hl
LzMwNC11cGRhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDZkODQ4MWU4
NzQyNzgxNjExMzM5N2JiZWQ0OWYzMGIzZTQzYzMzNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTU3ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+SFRUUCBDYWNoZSAtIDMwNCBVcGRh
dGVzPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNw
ZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+Ci0gICAgPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJodHRwLWNhY2hlLmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgot
ICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgIHZhciB0ZXN0cyA9IFsKLSAgICAgIHsKLSAgICAg
ICAgbmFtZTogIkhUVFAgY2FjaGUgdXBkYXRlcyByZXR1cm5lZCBoZWFkZXJzIGZyb20gYSBMYXN0
LU1vZGlmaWVkIDMwNCIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAg
ICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCAtNTAw
MF0sCi0gICAgICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKLSAgICAgICAgICAg
ICAgWyJUZXN0LUhlYWRlciIsICJBIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAg
WyJFeHBpcmVzIiwgLTMwMDBdLAotICAgICAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAw
MF0sCi0gICAgICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCi0gICAgICAgICAgICBdLAot
ICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImxtX3ZhbGlkYXRlZCIsCi0gICAgICAgICAgICBl
eHBlY3RlZF9yZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiVGVzdC1IZWFkZXIi
LCAiQiJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAot
ICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJz
IGZyb20gYSBMYXN0LU1vZGlmaWVkIDMwNCIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAg
ICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4
cGlyZXMiLCAtNTAwMF0sCi0gICAgICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwK
LSAgICAgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJBIl0KLSAgICAgICAgICAgIF0KLSAgICAg
ICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAg
ICAgICAgICAgICAgWyJFeHBpcmVzIiwgMzAwMF0sCi0gICAgICAgICAgICAgIFsiTGFzdC1Nb2Rp
ZmllZCIsIC0zMDAwXSwKLSAgICAgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJCIl0KLSAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibG1fdmFsaWRhdGVkIiwKLSAg
ICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJU
ZXN0LUhlYWRlciIsICJCIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBwYXVzZV9hZnRl
cjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgZXhwZWN0ZWRf
dHlwZTogImNhY2hlZCIsCi0gICAgICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9oZWFkZXJzOiBb
Ci0gICAgICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCi0gICAgICAgICAgICBdCi0gICAg
ICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRU
UCBjYWNoZSB1cGRhdGVzIHJldHVybmVkIGhlYWRlcnMgZnJvbSBhIEVUYWcgMzA0IiwKLSAgICAg
ICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJz
OiBbCi0gICAgICAgICAgICAgIFsiRXhwaXJlcyIsIC01MDAwXSwKLSAgICAgICAgICAgICAgWyJF
VGFnIiwgIkFCQyJdLAotICAgICAgICAgICAgICBbIlRlc3QtSGVhZGVyIiwgIkEiXQotICAgICAg
ICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2Vf
aGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCAtMzAwMF0sCi0gICAgICAgICAg
ICAgIFsiRVRhZyIsICJBQkMiXSwKLSAgICAgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJCIl0K
LSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiZXRhZ192YWxpZGF0
ZWQiLAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAg
ICAgICBbIlRlc3QtSGVhZGVyIiwgIkIiXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0KLSAg
ICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgdXBk
YXRlcyBzdG9yZWQgaGVhZGVycyBmcm9tIGEgRVRhZyAzMDQiLAotICAgICAgICByZXF1ZXN0czog
WwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAg
ICAgICAgWyJFeHBpcmVzIiwgLTUwMDBdLAotICAgICAgICAgICAgICBbIkVUYWciLCAiREVGIl0s
Ci0gICAgICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQSJdCi0gICAgICAgICAgICBdCi0gICAg
ICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0g
ICAgICAgICAgICAgIFsiRXhwaXJlcyIsIDMwMDBdLAotICAgICAgICAgICAgICBbIkVUYWciLCAi
REVGIl0sCi0gICAgICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCi0gICAgICAgICAgICBd
LAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImV0YWdfdmFsaWRhdGVkIiwKLSAgICAgICAg
ICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJUZXN0LUhl
YWRlciIsICJCIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBwYXVzZV9hZnRlcjogdHJ1
ZQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTog
ImNhY2hlZCIsCi0gICAgICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9oZWFkZXJzOiBbCi0gICAg
ICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAg
fQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiQ29udGVudC0q
IGhlYWRlciIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAg
cmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCAtNTAwMF0sCi0g
ICAgICAgICAgICAgIFsiRVRhZyIsICJHSEkiXSwKLSAgICAgICAgICAgICAgWyJDb250ZW50LVRl
c3QtSGVhZGVyIiwgIkEiXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAg
ewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGly
ZXMiLCAzMDAwXSwKLSAgICAgICAgICAgICAgWyJFVGFnIiwgIkdISSJdLAotICAgICAgICAgICAg
ICBbIkNvbnRlbnQtVGVzdC1IZWFkZXIiLCAiQiJdCi0gICAgICAgICAgICBdLAotICAgICAgICAg
ICAgZXhwZWN0ZWRfdHlwZTogImV0YWdfdmFsaWRhdGVkIiwKLSAgICAgICAgICAgIGV4cGVjdGVk
X3Jlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDb250ZW50LVRlc3QtSGVhZGVy
IiwgIkIiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHBhdXNlX2FmdGVyOiB0cnVlCi0g
ICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2Fj
aGVkIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAg
ICAgICAgWyJDb250ZW50LVRlc3QtSGVhZGVyIiwgIkIiXQotICAgICAgICAgICAgXQotICAgICAg
ICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICBdOwotICAgIHJ1bl90ZXN0cyh0ZXN0cyk7
Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYWNo
ZS1tb2RlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhjYmM1ZGE4NWRlNmIzODk4NTQ0MGQ3MjQ4NDVjMjM4MTFmYmU0YzYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorCitQQVNTIEZldGNoIHNlbmRzIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCB3aGVu
IGNhY2hlIG1vZGUgaXMgbm8tY2FjaGUKK1BBU1MgRmV0Y2ggZG9lc24ndCB0b3VjaCBDYWNoZS1D
b250cm9sIHdoZW4gY2FjaGUgbW9kZSBpcyBuby1jYWNoZSBhbmQgQ2FjaGUtQ29udHJvbCBpcyBh
bHJlYWR5IHByZXNlbnQKK1BBU1MgRmV0Y2ggc2VuZHMgQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUg
YW5kIFByYWdtYTogbm8tY2FjaGUgd2hlbiBjYWNoZSBtb2RlIGlzIG5vLXN0b3JlCitQQVNTIEZl
dGNoIGRvZXNuJ3QgdG91Y2ggQ2FjaGUtQ29udHJvbCB3aGVuIGNhY2hlIG1vZGUgaXMgbm8tc3Rv
cmUgYW5kIENhY2hlLUNvbnRyb2wgaXMgYWxyZWFkeSBwcmVzZW50CitQQVNTIEZldGNoIGRvZXNu
J3QgdG91Y2ggUHJhZ21hIHdoZW4gY2FjaGUgbW9kZSBpcyBuby1zdG9yZSBhbmQgUHJhZ21hIGlz
IGFscmVhZHkgcHJlc2VudAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnkuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1j
YWNoZS9jYWNoZS1tb2RlLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1
NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5h
bnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2Vi
S2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnku
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY0MDZkNWE2YTUwMDM0NmZl
YmRjNWNkNWFjNDBmZjYxM2Q1MTQ3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYWNoZS1tb2Rl
LmFueS5qcwpAQCAtMCwwICsxLDYxIEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgor
Ly8gTUVUQTogdGl0bGU9RmV0Y2ggLSBDYWNoZSBNb2RlCisvLyBNRVRBOiB0aW1lb3V0PWxvbmcK
Ky8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1v
bi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0PWh0dHAtY2FjaGUuanMKKwor
dmFyIHRlc3RzID0gWworICB7CisgICAgbmFtZTogIkZldGNoIHNlbmRzIENhY2hlLUNvbnRyb2w6
IG1heC1hZ2U9MCB3aGVuIGNhY2hlIG1vZGUgaXMgbm8tY2FjaGUiLAorICAgIHJlcXVlc3RzOiBb
CisgICAgICB7CisgICAgICAgIGNhY2hlOiAibm8tY2FjaGUiLAorICAgICAgICBleHBlY3RlZF9y
ZXF1ZXN0X2hlYWRlcnM6IFtbJ2NhY2hlLWNvbnRyb2wnLCAnbWF4LWFnZT0wJ11dCisgICAgICB9
CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkZldGNoIGRvZXNuJ3QgdG91Y2ggQ2FjaGUt
Q29udHJvbCB3aGVuIGNhY2hlIG1vZGUgaXMgbm8tY2FjaGUgYW5kIENhY2hlLUNvbnRyb2wgaXMg
YWxyZWFkeSBwcmVzZW50IiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICBjYWNo
ZTogIm5vLWNhY2hlIiwKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbWydjYWNoZS1jb250cm9s
JywgJ2ZvbyddXSwKKyAgICAgICAgZXhwZWN0ZWRfcmVxdWVzdF9oZWFkZXJzOiBbWydjYWNoZS1j
b250cm9sJywgJ2ZvbyddXQorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJG
ZXRjaCBzZW5kcyBDYWNoZS1Db250cm9sOiBuby1jYWNoZSBhbmQgUHJhZ21hOiBuby1jYWNoZSB3
aGVuIGNhY2hlIG1vZGUgaXMgbm8tc3RvcmUiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7Cisg
ICAgICAgIGNhY2hlOiAibm8tc3RvcmUiLAorICAgICAgICBleHBlY3RlZF9yZXF1ZXN0X2hlYWRl
cnM6IFsKKyAgICAgICAgICBbJ2NhY2hlLWNvbnRyb2wnLCAnbm8tY2FjaGUnXSwKKyAgICAgICAg
ICBbJ3ByYWdtYScsICduby1jYWNoZSddCisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIH0s
CisgIHsKKyAgICBuYW1lOiAiRmV0Y2ggZG9lc24ndCB0b3VjaCBDYWNoZS1Db250cm9sIHdoZW4g
Y2FjaGUgbW9kZSBpcyBuby1zdG9yZSBhbmQgQ2FjaGUtQ29udHJvbCBpcyBhbHJlYWR5IHByZXNl
bnQiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIGNhY2hlOiAibm8tc3RvcmUi
LAorICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFtbJ2NhY2hlLWNvbnRyb2wnLCAnZm9vJ11dLAor
ICAgICAgICBleHBlY3RlZF9yZXF1ZXN0X2hlYWRlcnM6IFtbJ2NhY2hlLWNvbnRyb2wnLCAnZm9v
J11dCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkZldGNoIGRvZXNuJ3Qg
dG91Y2ggUHJhZ21hIHdoZW4gY2FjaGUgbW9kZSBpcyBuby1zdG9yZSBhbmQgUHJhZ21hIGlzIGFs
cmVhZHkgcHJlc2VudCIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgY2FjaGU6
ICJuby1zdG9yZSIsCisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogW1sncHJhZ21hJywgJ2Zvbydd
XSwKKyAgICAgICAgZXhwZWN0ZWRfcmVxdWVzdF9oZWFkZXJzOiBbWydwcmFnbWEnLCAnZm9vJ11d
CisgICAgICB9CisgICAgXQorICB9CitdOworcnVuX3Rlc3RzKHRlc3RzKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1j
YWNoZS9jYWNoZS1tb2RlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NhY2hlLW1vZGUu
YW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGNiYzVkYTg1ZGU2YjM4OTg1NDQw
ZDcyNDg0NWMyMzgxMWZiZTRjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYWNoZS1tb2RlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIEZldGNoIHNlbmRz
IENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCB3aGVuIGNhY2hlIG1vZGUgaXMgbm8tY2FjaGUKK1BB
U1MgRmV0Y2ggZG9lc24ndCB0b3VjaCBDYWNoZS1Db250cm9sIHdoZW4gY2FjaGUgbW9kZSBpcyBu
by1jYWNoZSBhbmQgQ2FjaGUtQ29udHJvbCBpcyBhbHJlYWR5IHByZXNlbnQKK1BBU1MgRmV0Y2gg
c2VuZHMgQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUgYW5kIFByYWdtYTogbm8tY2FjaGUgd2hlbiBj
YWNoZSBtb2RlIGlzIG5vLXN0b3JlCitQQVNTIEZldGNoIGRvZXNuJ3QgdG91Y2ggQ2FjaGUtQ29u
dHJvbCB3aGVuIGNhY2hlIG1vZGUgaXMgbm8tc3RvcmUgYW5kIENhY2hlLUNvbnRyb2wgaXMgYWxy
ZWFkeSBwcmVzZW50CitQQVNTIEZldGNoIGRvZXNuJ3QgdG91Y2ggUHJhZ21hIHdoZW4gY2FjaGUg
bW9kZSBpcyBuby1zdG9yZSBhbmQgUHJhZ21hIGlzIGFscmVhZHkgcHJlc2VudAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnku
d29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4
MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYWNoZS1tb2RlLmFueS53b3JrZXIuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2MtcmVxdWVzdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvY2MtcmVxdWVzdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRlMzQ2NjljZGRjZjIxOWU4MjM1NjJmMDM3ZGYxYTQ2NjU3MWI2ZDIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJlcXVlc3QtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotCi1QQVNTIEhUVFAgY2Fj
aGUgZG9lc24ndCB1c2UgYWdlZCBidXQgZnJlc2ggcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRh
aW5zIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MAotRkFJTCBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNl
IGFnZWQgYnV0IGZyZXNoIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250
cm9sOiBtYXgtYWdlPTEgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMiBjb21lcyBmcm9tIGNhY2hl
IGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1GQUlMIEhUVFAgY2FjaGUgZG9lc24ndCB1c2UgZnJlc2gg
cmVzcG9uc2Ugd2l0aCBBZ2UgaGVhZGVyIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250
cm9sOiBtYXgtYWdlIHRoYXQgaXMgZ3JlYXRlciB0aGFuIHJlbWFpbmluZyBmcmVzaG5lc3MgYXNz
ZXJ0X2VxdWFsczogUmVzcG9uc2UgMiBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDIgYnV0IGdv
dCAxCi1QQVNTIEhUVFAgY2FjaGUgZG9lcyB1c2UgYWdlZCBzdGFsZSByZXNwb25zZSB3aGVuIHJl
cXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWF4LXN0YWxlIHRoYXQgcGVybWl0cyBpdHMg
dXNlCi1QQVNTIEhUVFAgY2FjaGUgZG9lcyByZXVzZSBzdGFsZSByZXNwb25zZSB3aXRoIEFnZSBo
ZWFkZXIgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1zdGFsZSB0aGF0
IHBlcm1pdHMgaXRzIHVzZQotRkFJTCBIVFRQIGNhY2hlIGRvZXNuJ3QgcmV1c2UgZnJlc2ggcmVz
cG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1pbi1mcmVzaCB0aGF0
IHdhbnRzIGl0IGZyZXNoZXIgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMiBjb21lcyBmcm9tIGNh
Y2hlIGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1GQUlMIEhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBm
cmVzaCByZXNwb25zZSB3aXRoIEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hl
LUNvbnRyb2w6IG1pbi1mcmVzaCB0aGF0IHdhbnRzIGl0IGZyZXNoZXIgYXNzZXJ0X2VxdWFsczog
UmVzcG9uc2UgMiBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1QQVNTIEhU
VFAgY2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFp
bnMgQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUKLVBBU1MgSFRUUCBjYWNoZSB2YWxpZGF0ZXMgZnJl
c2ggcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNo
ZS1Db250cm9sOiBuby1jYWNoZQotUEFTUyBIVFRQIGNhY2hlIHZhbGlkYXRlcyBmcmVzaCByZXNw
b25zZSB3aXRoIEVUYWcgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG5vLWNh
Y2hlCi1GQUlMIEhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3aGVuIHJl
cXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUgYXNzZXJ0X2VxdWFsczogUmVz
cG9uc2UgMiBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1GQUlMIEhUVFAg
Y2FjaGUgZ2VuZXJhdGVzIDUwNCBzdGF0dXMgY29kZSB3aGVuIG5vdGhpbmcgaXMgaW4gY2FjaGUg
YW5kIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogb25seS1pZi1jYWNoZWQgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiBjYW7igJl0IGxvYWQgZnJvbSBuZXR3b3JrIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2MtcmVxdWVz
dC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJlcXVlc3QuYW55LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40ZTM0NjY5Y2RkY2YyMTllODIzNTYyZjAzN2RmMWE0NjY1NzFiNmQyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlL2NjLXJlcXVlc3QuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0
IEBACisKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBhZ2VkIGJ1dCBmcmVzaCByZXNwb25z
ZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0wCitGQUlMIEhU
VFAgY2FjaGUgZG9lc24ndCB1c2UgYWdlZCBidXQgZnJlc2ggcmVzcG9uc2Ugd2hlbiByZXF1ZXN0
IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MSBhc3NlcnRfZXF1YWxzOiBSZXNwb25z
ZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNo
ZSBkb2Vzbid0IHVzZSBmcmVzaCByZXNwb25zZSB3aXRoIEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0
IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UgdGhhdCBpcyBncmVhdGVyIHRoYW4gcmVt
YWluaW5nIGZyZXNobmVzcyBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2Fj
aGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIHVzZSBhZ2VkIHN0
YWxlIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBtYXgtc3Rh
bGUgdGhhdCBwZXJtaXRzIGl0cyB1c2UKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIHJldXNlIHN0YWxl
IHJlc3BvbnNlIHdpdGggQWdlIGhlYWRlciB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29u
dHJvbDogbWF4LXN0YWxlIHRoYXQgcGVybWl0cyBpdHMgdXNlCitGQUlMIEhUVFAgY2FjaGUgZG9l
c24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29u
dHJvbDogbWluLWZyZXNoIHRoYXQgd2FudHMgaXQgZnJlc2hlciBhc3NlcnRfZXF1YWxzOiBSZXNw
b25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK0ZBSUwgSFRUUCBj
YWNoZSBkb2Vzbid0IHJldXNlIGZyZXNoIHJlc3BvbnNlIHdpdGggQWdlIGhlYWRlciB3aGVuIHJl
cXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWluLWZyZXNoIHRoYXQgd2FudHMgaXQgZnJl
c2hlciBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQg
MiBidXQgZ290IDEKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHJldXNlIGZyZXNoIHJlc3BvbnNl
IHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBuby1jYWNoZQorUEFTUyBIVFRQ
IGNhY2hlIHZhbGlkYXRlcyBmcmVzaCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgd2hlbiBy
ZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlCitQQVNTIEhUVFAgY2FjaGUg
dmFsaWRhdGVzIGZyZXNoIHJlc3BvbnNlIHdpdGggRVRhZyB3aGVuIHJlcXVlc3QgY29udGFpbnMg
Q2FjaGUtQ29udHJvbDogbm8tY2FjaGUKK0ZBSUwgSFRUUCBjYWNoZSBkb2Vzbid0IHJldXNlIGZy
ZXNoIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBuby1zdG9y
ZSBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBi
dXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBnZW5lcmF0ZXMgNTA0IHN0YXR1cyBjb2RlIHdoZW4g
bm90aGluZyBpcyBpbiBjYWNoZSBhbmQgcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBv
bmx5LWlmLWNhY2hlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGNhbuKAmXQgbG9hZCBmcm9tIG5ldHdvcmsiCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
aHR0cC1jYWNoZS9jYy1yZXF1ZXN0LmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJlcXVlc3QuYW55Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0LmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwh
LS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0
byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0LmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0LmFueS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNTU2NTY2ODQxNDRmODk3MThjYWQxOWQ5YmY1Y2U3ZmM2ODI2OGE5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJlcXVlc3QuYW55LmpzCkBAIC0wLDAgKzEsMjAyIEBA
CisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogdGl0bGU9SFRUUCBDYWNo
ZSAtIENhY2hlLUNvbnRyb2wgUmVxdWVzdCBEaXJlY3RpdmVzCisvLyBNRVRBOiB0aW1lb3V0PWxv
bmcKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9L2Nv
bW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0PWh0dHAtY2FjaGUuanMK
KwordmFyIHRlc3RzID0gWworICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCB1c2Ug
YWdlZCBidXQgZnJlc2ggcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRy
b2w6IG1heC1hZ2U9MCIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgdGVtcGxh
dGU6ICJmcmVzaCIsCisgICAgICAgIHBhdXNlX2FmdGVyOiB0cnVlCisgICAgICB9LAorICAgICAg
eworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wi
LCAibWF4LWFnZT0wIl0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9j
YWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUg
ZG9lc24ndCB1c2UgYWdlZCBidXQgZnJlc2ggcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5z
IENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MSIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAg
ICAgICAgdGVtcGxhdGU6ICJmcmVzaCIsCisgICAgICAgIHBhdXNlX2FmdGVyOiB0cnVlCisgICAg
ICB9LAorICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNh
Y2hlLUNvbnRyb2wiLCAibWF4LWFnZT0xIl0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRf
dHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTog
IkhUVFAgY2FjaGUgZG9lc24ndCB1c2UgZnJlc2ggcmVzcG9uc2Ugd2l0aCBBZ2UgaGVhZGVyIHdo
ZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBtYXgtYWdlIHRoYXQgaXMgZ3JlYXRl
ciB0aGFuIHJlbWFpbmluZyBmcmVzaG5lc3MiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7Cisg
ICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAi
bWF4LWFnZT0zNjAwIl0sCisgICAgICAgICAgWyJBZ2UiLCAiMTgwMCJdCisgICAgICAgIF0KKyAg
ICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsi
Q2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTYwMCJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVj
dGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5h
bWU6ICJIVFRQIGNhY2hlIGRvZXMgdXNlIGFnZWQgc3RhbGUgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0
IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1zdGFsZSB0aGF0IHBlcm1pdHMgaXRzIHVzZSIs
CisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwor
ICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTEiXQorICAgICAgICBdLAorICAg
ICAgICBwYXVzZV9hZnRlcjogdHJ1ZQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgcmVxdWVz
dF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1zdGFsZT0xMDAw
Il0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKKyAgICAgIH0K
KyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIHJldXNlIHN0YWxl
IHJlc3BvbnNlIHdpdGggQWdlIGhlYWRlciB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29u
dHJvbDogbWF4LXN0YWxlIHRoYXQgcGVybWl0cyBpdHMgdXNlIiwKKyAgICByZXF1ZXN0czogWwor
ICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1D
b250cm9sIiwgIm1heC1hZ2U9MTUwMCJdLAorICAgICAgICAgIFsiQWdlIiwgIjIwMDAiXQorICAg
ICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAg
ICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LXN0YWxlPTEwMDAiXQorICAgICAgICBdLAor
ICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAg
eworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXNuJ3QgcmV1c2UgZnJlc2ggcmVzcG9uc2Ugd2hl
biByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1pbi1mcmVzaCB0aGF0IHdhbnRzIGl0
IGZyZXNoZXIiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hl
YWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0xNTAwIl0KKyAg
ICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisg
ICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1pbi1mcmVzaD0yMDAwIl0KKyAgICAgICAgXSwK
KyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9
LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25z
ZSB3aXRoIEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1p
bi1mcmVzaCB0aGF0IHdhbnRzIGl0IGZyZXNoZXIiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7
CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wi
LCAibWF4LWFnZT0xNTAwIl0sCisgICAgICAgICAgWyJBZ2UiLCAiMTAwMCJdCisgICAgICAgIF0K
KyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAg
IFsiQ2FjaGUtQ29udHJvbCIsICJtaW4tZnJlc2g9MTAwMCJdCisgICAgICAgIF0sCisgICAgICAg
IGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgewor
ICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXNuJ3QgcmV1c2UgZnJlc2ggcmVzcG9uc2Ugd2hlbiBy
ZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlIiwKKyAgICByZXF1ZXN0czog
WworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNo
ZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7
CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIs
ICJuby1jYWNoZSJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2Fj
aGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHZh
bGlkYXRlcyBmcmVzaCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgd2hlbiByZXF1ZXN0IGNv
bnRhaW5zIENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlIiwKKyAgICByZXF1ZXN0czogWworICAgICAg
eworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9s
IiwgIm1heC1hZ2U9MzYwMCJdLAorICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0xMDAwMF0K
KyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBb
CisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm5vLWNhY2hlIl0KKyAgICAgICAgXSwKKyAg
ICAgICAgZXhwZWN0ZWRfdHlwZTogImxtX3ZhbGlkYXRlIgorICAgICAgfQorICAgIF0KKyAgfSwK
KyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHZhbGlkYXRlcyBmcmVzaCByZXNwb25zZSB3aXRo
IEVUYWcgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlIiwKKyAg
ICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAg
ICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAorICAgICAgICAgIFsiRVRh
ZyIsIGh0dHBfY29udGVudCgiYWJjIildCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7Cisg
ICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJu
by1jYWNoZSJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJldGFnX3ZhbGlk
YXRlIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRv
ZXNuJ3QgcmV1c2UgZnJlc2ggcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNv
bnRyb2w6IG5vLXN0b3JlIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNw
b25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYw
MCJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVy
czogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJuby1zdG9yZSJdCisgICAgICAgIF0s
CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAg
fSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGdlbmVyYXRlcyA1MDQgc3RhdHVzIGNvZGUg
d2hlbiBub3RoaW5nIGlzIGluIGNhY2hlIGFuZCByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRy
b2w6IG9ubHktaWYtY2FjaGVkIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICBy
ZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAib25seS1pZi1j
YWNoZWQiXQorICAgICAgICBdLAorICAgICAgICBleHBlY3RlZF9zdGF0dXM6IDUwNCwKKyAgICAg
ICAgZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogbnVsbAorICAgICAgfQorICAgIF0KKyAgfQorXTsK
K3J1bl90ZXN0cyh0ZXN0cyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2MtcmVxdWVzdC5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0LmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRlMzQ2NjljZGRjZjIxOWU4MjM1NjJmMDM3ZGYxYTQ2NjU3MWI2ZDIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2h0dHAtY2FjaGUvY2MtcmVxdWVzdC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE0IEBACisKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBhZ2VkIGJ1dCBmcmVz
aCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0w
CitGQUlMIEhUVFAgY2FjaGUgZG9lc24ndCB1c2UgYWdlZCBidXQgZnJlc2ggcmVzcG9uc2Ugd2hl
biByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MSBhc3NlcnRfZXF1YWxz
OiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK0ZBSUwg
SFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBmcmVzaCByZXNwb25zZSB3aXRoIEFnZSBoZWFkZXIgd2hl
biByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UgdGhhdCBpcyBncmVhdGVy
IHRoYW4gcmVtYWluaW5nIGZyZXNobmVzcyBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVz
IGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIHVz
ZSBhZ2VkIHN0YWxlIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9s
OiBtYXgtc3RhbGUgdGhhdCBwZXJtaXRzIGl0cyB1c2UKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIHJl
dXNlIHN0YWxlIHJlc3BvbnNlIHdpdGggQWdlIGhlYWRlciB3aGVuIHJlcXVlc3QgY29udGFpbnMg
Q2FjaGUtQ29udHJvbDogbWF4LXN0YWxlIHRoYXQgcGVybWl0cyBpdHMgdXNlCitGQUlMIEhUVFAg
Y2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMg
Q2FjaGUtQ29udHJvbDogbWluLWZyZXNoIHRoYXQgd2FudHMgaXQgZnJlc2hlciBhc3NlcnRfZXF1
YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK0ZB
SUwgSFRUUCBjYWNoZSBkb2Vzbid0IHJldXNlIGZyZXNoIHJlc3BvbnNlIHdpdGggQWdlIGhlYWRl
ciB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWluLWZyZXNoIHRoYXQgd2Fu
dHMgaXQgZnJlc2hlciBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUg
ZXhwZWN0ZWQgMiBidXQgZ290IDEKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHJldXNlIGZyZXNo
IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBuby1jYWNoZQor
UEFTUyBIVFRQIGNhY2hlIHZhbGlkYXRlcyBmcmVzaCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZp
ZWQgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlCitQQVNTIEhU
VFAgY2FjaGUgdmFsaWRhdGVzIGZyZXNoIHJlc3BvbnNlIHdpdGggRVRhZyB3aGVuIHJlcXVlc3Qg
Y29udGFpbnMgQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUKK0ZBSUwgSFRUUCBjYWNoZSBkb2Vzbid0
IHJldXNlIGZyZXNoIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9s
OiBuby1zdG9yZSBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhw
ZWN0ZWQgMiBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBnZW5lcmF0ZXMgNTA0IHN0YXR1cyBj
b2RlIHdoZW4gbm90aGluZyBpcyBpbiBjYWNoZSBhbmQgcmVxdWVzdCBjb250YWlucyBDYWNoZS1D
b250cm9sOiBvbmx5LWlmLWNhY2hlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGNhbuKAmXQgbG9hZCBmcm9tIG5ldHdvcmsi
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0LmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1y
ZXF1ZXN0LmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZj
NjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJlcXVlc3QuYW55
Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0t
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvY2MtcmVxdWVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlNzMyNjgzZDdkZTFjYjkxNGU2ODdlMjViOTAyYTM0ZTVlNDYyYzBjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwyMTMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAg
PGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5IVFRQIENhY2hl
IC0gQ2FjaGUtQ29udHJvbCBSZXF1ZXN0IERpcmVjdGl2ZXM8L3RpdGxlPgotICAgIDxtZXRhIG5h
bWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4K
LSAgICA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KLSAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1v
bi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Imh0dHAt
Y2FjaGUuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0g
ICAgdmFyIHRlc3RzID0gWwotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vz
bid0IHVzZSBhZ2VkIGJ1dCBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2Fj
aGUtQ29udHJvbDogbWF4LWFnZT0wIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7
Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImZyZXNoIiwKLSAgICAgICAgICAgIHBhdXNlX2FmdGVy
OiB0cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hl
YWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MCJdCi0g
ICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0g
ICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAi
SFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBhZ2VkIGJ1dCBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVl
c3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0xIiwKLSAgICAgICAgcmVxdWVzdHM6
IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImZyZXNoIiwKLSAgICAgICAg
ICAgIHBhdXNlX2FmdGVyOiB0cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAg
ICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwg
Im1heC1hZ2U9MSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTog
Im5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewot
ICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBmcmVzaCByZXNwb25zZSB3aXRo
IEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1hZ2Ug
dGhhdCBpcyBncmVhdGVyIHRoYW4gcmVtYWluaW5nIGZyZXNobmVzcyIsCi0gICAgICAgIHJlcXVl
c3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAg
ICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAg
ICAgIFsiQWdlIiwgIjE4MDAiXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAg
ICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2Fj
aGUtQ29udHJvbCIsICJtYXgtYWdlPTYwMCJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAg
ZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAg
ICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIHVzZSBhZ2VkIHN0
YWxlIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBtYXgtc3Rh
bGUgdGhhdCBwZXJtaXRzIGl0cyB1c2UiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAg
IHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNo
ZS1Db250cm9sIiwgIm1heC1hZ2U9MSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcGF1
c2VfYWZ0ZXI6IHRydWUKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
cXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LXN0
YWxlPTEwMDAiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJj
YWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAg
ICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIHJldXNlIHN0YWxlIHJlc3BvbnNlIHdpdGggQWdlIGhl
YWRlciB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWF4LXN0YWxlIHRoYXQg
cGVybWl0cyBpdHMgdXNlIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJv
bCIsICJtYXgtYWdlPTE1MDAiXSwKLSAgICAgICAgICAgICAgWyJBZ2UiLCAiMjAwMCJdCi0gICAg
ICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0
X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1zdGFsZT0x
MDAwIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVk
IgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFt
ZTogIkhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3Qg
Y29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWluLWZyZXNoIHRoYXQgd2FudHMgaXQgZnJlc2hlciIs
Ci0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2Vf
aGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0xNTAw
Il0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAg
IHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWlu
LWZyZXNoPTIwMDAiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6
ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsK
LSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3
aXRoIEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1pbi1m
cmVzaCB0aGF0IHdhbnRzIGl0IGZyZXNoZXIiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJD
YWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MTUwMCJdLAotICAgICAgICAgICAgICBbIkFnZSIsICIx
MDAwIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAi
bWluLWZyZXNoPTEwMDAiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5
cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAg
IHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25z
ZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUiLAotICAgICAg
ICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6
IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdCi0gICAg
ICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0
X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm5vLWNhY2hlIl0K
LSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIK
LSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6
ICJIVFRQIGNhY2hlIHZhbGlkYXRlcyBmcmVzaCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQg
d2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlIiwKLSAgICAgICAg
cmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBb
Ci0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTM2MDAiXSwKLSAgICAg
ICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTEwMDAwXQotICAgICAgICAgICAgXQotICAgICAg
ICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAg
ICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSJdCi0gICAgICAgICAgICBdLAot
ICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImxtX3ZhbGlkYXRlIgotICAgICAgICAgIH0KLSAg
ICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgdmFs
aWRhdGVzIGZyZXNoIHJlc3BvbnNlIHdpdGggRVRhZyB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2Fj
aGUtQ29udHJvbDogbm8tY2FjaGUiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsK
LSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1D
b250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAotICAgICAgICAgICAgICBbIkVUYWciLCBodHRwX2Nv
bnRlbnQoImFiYyIpXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAgewot
ICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29u
dHJvbCIsICJuby1jYWNoZSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRf
dHlwZTogImV0YWdfdmFsaWRhdGUiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAot
ICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHJldXNlIGZyZXNoIHJl
c3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBuby1zdG9yZSIsCi0g
ICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVh
ZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0K
LSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
cXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibm8tc3Rv
cmUiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2Fj
aGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAg
bmFtZTogIkhUVFAgY2FjaGUgZ2VuZXJhdGVzIDUwNCBzdGF0dXMgY29kZSB3aGVuIG5vdGhpbmcg
aXMgaW4gY2FjaGUgYW5kIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogb25seS1pZi1j
YWNoZWQiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
cXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAib25seS1p
Zi1jYWNoZWQiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3N0YXR1czog
NTA0LAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogbnVsbAotICAgICAgICAg
IH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF07Ci0gICAgcnVuX3Rlc3RzKHRlc3RzKTsKLSAg
ICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVz
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2ZjZGIxMmFjMjQ1MGZjMmFhMmE3NDA4YWExYmQwMjU0MWY3Y2Ey
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJl
c2huZXNzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLQotUEFT
UyBIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3BvbnNlIHdpdGggYSBmdXR1cmUgRXhwaXJlcwotUEFT
UyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBhIHBhc3QgRXhwaXJl
cwotUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBhIHByZXNl
bnQgRXhwaXJlcwotUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0
aCBhbiBpbnZhbGlkIEV4cGlyZXMKLVBBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3
aXRoIHBvc2l0aXZlIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UKLVBBU1MgSFRUUCBjYWNoZSBkb2Vz
IG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0wCi1QQVNT
IEhUVFAgY2FjaGUgcmV1c2VzIGEgcmVzcG9uc2Ugd2l0aCBwb3NpdGl2ZSBDYWNoZS1Db250cm9s
OiBtYXgtYWdlIGFuZCBhIHBhc3QgRXhwaXJlcwotUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIHJl
c3BvbnNlIHdpdGggcG9zaXRpdmUgQ2FjaGUtQ29udHJvbDogbWF4LWFnZSBhbmQgYW4gaW52YWxp
ZCBFeHBpcmVzCi1QQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2UgYSByZXNwb25zZSB3aXRo
IENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCBhbmQgYSBmdXR1cmUgRXhwaXJlcwotUEFTUyBIVFRQ
IGNhY2hlIGRvZXMgbm90IHByZWZlciBDYWNoZS1Db250cm9sOiBzLW1heGFnZSBvdmVyIENhY2hl
LUNvbnRyb2w6IG1heC1hZ2UKLVBBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3Bv
bnNlIHdoZW4gdGhlIEFnZSBoZWFkZXIgaXMgZ3JlYXRlciB0aGFuIGl0cyBmcmVzaG5lc3MgbGlm
ZXRpbWUKLVBBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCBzdG9yZSBhIHJlc3BvbnNlIHdpdGggQ2Fj
aGUtQ29udHJvbDogbm8tc3RvcmUKLVBBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCBzdG9yZSBhIHJl
c3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIGV2ZW4gd2l0aCBtYXgtYWdlIGFu
ZCBFeHBpcmVzCi1QQVNTIEhUVFAgY2FjaGUgc3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1D
b250cm9sOiBuby1jYWNoZSwgYnV0IHJldmFsaWRhdGVzIHVwb24gdXNlCi1QQVNTIEhUVFAgY2Fj
aGUgc3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBuby1jYWNoZSwgYnV0IHJl
dmFsaWRhdGVzIHVwb24gdXNlLCBldmVuIHdpdGggbWF4LWFnZSBhbmQgRXhwaXJlcwotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvZnJlc2huZXNzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLmFu
eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZjZGIxMmFjMjQ1MGZjMmFhMmE3NDA4YWExYmQw
MjU0MWY3Y2EyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9mcmVzaG5lc3MuYW55LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE3IEBACisKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25z
ZSB3aXRoIGEgZnV0dXJlIEV4cGlyZXMKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBh
IHJlc3BvbnNlIHdpdGggYSBwYXN0IEV4cGlyZXMKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCBy
ZXVzZSBhIHJlc3BvbnNlIHdpdGggYSBwcmVzZW50IEV4cGlyZXMKK1BBU1MgSFRUUCBjYWNoZSBk
b2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggYW4gaW52YWxpZCBFeHBpcmVzCitQQVNTIEhU
VFAgY2FjaGUgcmV1c2VzIGEgcmVzcG9uc2Ugd2l0aCBwb3NpdGl2ZSBDYWNoZS1Db250cm9sOiBt
YXgtYWdlCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2UgYSByZXNwb25zZSB3aXRoIENh
Y2hlLUNvbnRyb2w6IG1heC1hZ2U9MAorUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3BvbnNl
IHdpdGggcG9zaXRpdmUgQ2FjaGUtQ29udHJvbDogbWF4LWFnZSBhbmQgYSBwYXN0IEV4cGlyZXMK
K1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3aXRoIHBvc2l0aXZlIENhY2hlLUNv
bnRyb2w6IG1heC1hZ2UgYW5kIGFuIGludmFsaWQgRXhwaXJlcworUEFTUyBIVFRQIGNhY2hlIGRv
ZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBtYXgtYWdlPTAgYW5k
IGEgZnV0dXJlIEV4cGlyZXMKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCBwcmVmZXIgQ2FjaGUt
Q29udHJvbDogcy1tYXhhZ2Ugb3ZlciBDYWNoZS1Db250cm9sOiBtYXgtYWdlCitQQVNTIEhUVFAg
Y2FjaGUgZG9lcyBub3QgcmV1c2UgYSByZXNwb25zZSB3aGVuIHRoZSBBZ2UgaGVhZGVyIGlzIGdy
ZWF0ZXIgdGhhbiBpdHMgZnJlc2huZXNzIGxpZmV0aW1lCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBu
b3Qgc3RvcmUgYSByZXNwb25zZSB3aXRoIENhY2hlLUNvbnRyb2w6IG5vLXN0b3JlCitQQVNTIEhU
VFAgY2FjaGUgZG9lcyBub3Qgc3RvcmUgYSByZXNwb25zZSB3aXRoIENhY2hlLUNvbnRyb2w6IG5v
LXN0b3JlLCBldmVuIHdpdGggbWF4LWFnZSBhbmQgRXhwaXJlcworUEFTUyBIVFRQIGNhY2hlIHN0
b3JlcyBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIGJ1dCByZXZhbGlk
YXRlcyB1cG9uIHVzZQorUEFTUyBIVFRQIGNhY2hlIHN0b3JlcyBhIHJlc3BvbnNlIHdpdGggQ2Fj
aGUtQ29udHJvbDogbm8tY2FjaGUsIGJ1dCByZXZhbGlkYXRlcyB1cG9uIHVzZSwgZXZlbiB3aXRo
IG1heC1hZ2UgYW5kIEV4cGlyZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVzcy5hbnkuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0
cC1jYWNoZS9mcmVzaG5lc3MuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1
ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9mcmVzaG5lc3Mu
YW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVzcy5hbnku
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvZnJlc2huZXNzLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Yjk3YzgyNDRmNjQ3YzlkY2Ji
OTVjY2QyYTllMDY3OTZlNzA0NDRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVzcy5h
bnkuanMKQEAgLTAsMCArMSwyMTUgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisv
LyBNRVRBOiB0aXRsZT1IVFRQIENhY2hlIC0gRnJlc2huZXNzCisvLyBNRVRBOiB0aW1lb3V0PWxv
bmcKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9L2Nv
bW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0PWh0dHAtY2FjaGUuanMK
KwordmFyIHRlc3RzID0gWworICAvLyByZXNwb25zZSBkaXJlY3RpdmVzCisgIHsKKyAgICBuYW1l
OiAiSFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3aXRoIGEgZnV0dXJlIEV4cGlyZXMiLAor
ICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAg
ICAgICAgICBbIkV4cGlyZXMiLCAoMzAgKiAyNCAqIDYwICogNjApXQorICAgICAgICBdCisgICAg
ICB9LAorICAgICAgeworICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgorICAgICAgfQor
ICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEg
cmVzcG9uc2Ugd2l0aCBhIHBhc3QgRXhwaXJlcyIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsK
KyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiRXhwaXJlcyIsICgtMzAg
KiAyNCAqIDYwICogNjApXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICBl
eHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAg
ICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggYSBwcmVz
ZW50IEV4cGlyZXMiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNl
X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCAwXQorICAgICAgICBdCisgICAgICB9
LAorICAgICAgeworICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKKyAgICAgIH0K
KyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBh
IHJlc3BvbnNlIHdpdGggYW4gaW52YWxpZCBFeHBpcmVzIiwKKyAgICByZXF1ZXN0czogWworICAg
ICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwg
IjAiXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICBleHBlY3RlZF90eXBl
OiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRU
UCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3aXRoIHBvc2l0aXZlIENhY2hlLUNvbnRyb2w6IG1h
eC1hZ2UiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRl
cnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0KKyAgICAg
ICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIK
KyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5v
dCByZXVzZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0wIiwKKyAgICBy
ZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAg
ICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MCJdCisgICAgICAgIF0KKyAgICAgIH0sCisg
ICAgICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAg
IF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3BvbnNlIHdp
dGggcG9zaXRpdmUgQ2FjaGUtQ29udHJvbDogbWF4LWFnZSBhbmQgYSBwYXN0IEV4cGlyZXMiLAor
ICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAg
ICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCisgICAgICAgICAgWyJF
eHBpcmVzIiwgLTEwMDAwXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICBl
eHBlY3RlZF90eXBlOiAiY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5h
bWU6ICJIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3BvbnNlIHdpdGggcG9zaXRpdmUgQ2FjaGUtQ29u
dHJvbDogbWF4LWFnZSBhbmQgYW4gaW52YWxpZCBFeHBpcmVzIiwKKyAgICByZXF1ZXN0czogWwor
ICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1D
b250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAorICAgICAgICAgIFsiRXhwaXJlcyIsICIwIl0KKyAg
ICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hl
ZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vz
IG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0wIGFuZCBh
IGZ1dHVyZSBFeHBpcmVzIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNw
b25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MCJd
LAorICAgICAgICAgIFsiRXhwaXJlcyIsIDEwMDAwXQorICAgICAgICBdCisgICAgICB9LAorICAg
ICAgeworICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBd
CisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5vdCBwcmVmZXIgQ2FjaGUt
Q29udHJvbDogcy1tYXhhZ2Ugb3ZlciBDYWNoZS1Db250cm9sOiBtYXgtYWdlIiwKKyAgICByZXF1
ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAg
WyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MSwgcy1tYXhhZ2U9MzYwMCJdCisgICAgICAgIF0s
CisgICAgICAgIHBhdXNlX2FmdGVyOiB0cnVlLAorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAg
ZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7Cisg
ICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2UgYSByZXNwb25zZSB3aGVuIHRoZSBB
Z2UgaGVhZGVyIGlzIGdyZWF0ZXIgdGhhbiBpdHMgZnJlc2huZXNzIGxpZmV0aW1lIiwKKyAgICBy
ZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAg
ICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAorICAgICAgICAgIFsiQWdlIiwg
IjEyMDAwIl0KKyAgICAgICAgXSwKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGV4cGVjdGVk
X3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6
ICJIVFRQIGNhY2hlIGRvZXMgbm90IHN0b3JlIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9s
OiBuby1zdG9yZSIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVzcG9uc2Vf
aGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJuby1zdG9yZSJdCisgICAg
ICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2Fj
aGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRv
ZXMgbm90IHN0b3JlIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBuby1zdG9yZSwgZXZl
biB3aXRoIG1heC1hZ2UgYW5kIEV4cGlyZXMiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7Cisg
ICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAi
bWF4LWFnZT0xMDAwMCwgbm8tc3RvcmUiXSwKKyAgICAgICAgICBbIkV4cGlyZXMiLCAxMDAwMF0K
KyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5v
dF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2Fj
aGUgc3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBuby1jYWNoZSwgYnV0IHJl
dmFsaWRhdGVzIHVwb24gdXNlIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICBy
ZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm5vLWNhY2hl
Il0sCisgICAgICAgICAgWyJFVGFnIiwgImFiY2QiXQorICAgICAgICBdCisgICAgICB9LAorICAg
ICAgeworICAgICAgICBleHBlY3RlZF90eXBlOiAiZXRhZ192YWxpZGF0ZWQiCisgICAgICB9Cisg
ICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgc3RvcmVzIGEgcmVzcG9uc2Ug
d2l0aCBDYWNoZS1Db250cm9sOiBuby1jYWNoZSwgYnV0IHJldmFsaWRhdGVzIHVwb24gdXNlLCBl
dmVuIHdpdGggbWF4LWFnZSBhbmQgRXhwaXJlcyIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsK
KyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIs
ICJtYXgtYWdlPTEwMDAwLCBuby1jYWNoZSJdLAorICAgICAgICAgIFsiRXhwaXJlcyIsIDEwMDAw
XSwKKyAgICAgICAgICBbIkVUYWciLCAiYWJjZCJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAg
ICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJldGFnX3ZhbGlkYXRlZCIKKyAgICAgIH0KKyAg
ICBdCisgIH0sCitdOworcnVuX3Rlc3RzKHRlc3RzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9mcmVzaG5l
c3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmY2RiMTJhYzI0NTBmYzJhYTJhNzQwOGFhMWJkMDI1NDFm
N2NhMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKworUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3Bv
bnNlIHdpdGggYSBmdXR1cmUgRXhwaXJlcworUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNl
IGEgcmVzcG9uc2Ugd2l0aCBhIHBhc3QgRXhwaXJlcworUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90
IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBhIHByZXNlbnQgRXhwaXJlcworUEFTUyBIVFRQIGNhY2hl
IGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBhbiBpbnZhbGlkIEV4cGlyZXMKK1BBU1Mg
SFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3aXRoIHBvc2l0aXZlIENhY2hlLUNvbnRyb2w6
IG1heC1hZ2UKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGgg
Q2FjaGUtQ29udHJvbDogbWF4LWFnZT0wCitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgcmVzcG9u
c2Ugd2l0aCBwb3NpdGl2ZSBDYWNoZS1Db250cm9sOiBtYXgtYWdlIGFuZCBhIHBhc3QgRXhwaXJl
cworUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3BvbnNlIHdpdGggcG9zaXRpdmUgQ2FjaGUt
Q29udHJvbDogbWF4LWFnZSBhbmQgYW4gaW52YWxpZCBFeHBpcmVzCitQQVNTIEhUVFAgY2FjaGUg
ZG9lcyBub3QgcmV1c2UgYSByZXNwb25zZSB3aXRoIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCBh
bmQgYSBmdXR1cmUgRXhwaXJlcworUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHByZWZlciBDYWNo
ZS1Db250cm9sOiBzLW1heGFnZSBvdmVyIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UKK1BBU1MgSFRU
UCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdoZW4gdGhlIEFnZSBoZWFkZXIgaXMg
Z3JlYXRlciB0aGFuIGl0cyBmcmVzaG5lc3MgbGlmZXRpbWUKK1BBU1MgSFRUUCBjYWNoZSBkb2Vz
IG5vdCBzdG9yZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUKK1BBU1Mg
SFRUUCBjYWNoZSBkb2VzIG5vdCBzdG9yZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDog
bm8tc3RvcmUsIGV2ZW4gd2l0aCBtYXgtYWdlIGFuZCBFeHBpcmVzCitQQVNTIEhUVFAgY2FjaGUg
c3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBuby1jYWNoZSwgYnV0IHJldmFs
aWRhdGVzIHVwb24gdXNlCitQQVNTIEhUVFAgY2FjaGUgc3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBD
YWNoZS1Db250cm9sOiBuby1jYWNoZSwgYnV0IHJldmFsaWRhdGVzIHVwb24gdXNlLCBldmVuIHdp
dGggbWF4LWFnZSBhbmQgRXhwaXJlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLmFueS53
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9mcmVzaG5lc3MuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIz
ODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAt
Y2FjaGUvZnJlc2huZXNzLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRo
ZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvZnJlc2huZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDM4YTQ1N2NiZWJhYjZjNWFjNmQ0OGJlYjljMThhODU0ZTFlYThj
YmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2Zy
ZXNobmVzcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjI2ICswLDAgQEAKLTwhZG9jdHlwZSBo
dG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8
dGl0bGU+SFRUUCBDYWNoZSAtIEZyZXNobmVzczwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgotICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9j
b21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1o
b3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iaHR0cC1jYWNoZS5q
cyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIg
dGVzdHMgPSBbCi0gICAgICAvLyByZXNwb25zZSBkaXJlY3RpdmVzCi0gICAgICB7Ci0gICAgICAg
IG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3BvbnNlIHdpdGggYSBmdXR1cmUgRXhwaXJl
cyIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9u
c2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCAoMzAgKiAyNCAqIDYwICog
NjApXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAg
ICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAg
IH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEg
cmVzcG9uc2Ugd2l0aCBhIHBhc3QgRXhwaXJlcyIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAg
ICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBb
IkV4cGlyZXMiLCAoLTMwICogMjQgKiA2MCAqIDYwKV0KLSAgICAgICAgICAgIF0KLSAgICAgICAg
ICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVk
IgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFt
ZTogIkhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2UgYSByZXNwb25zZSB3aXRoIGEgcHJlc2VudCBF
eHBpcmVzIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRXhwaXJlcyIsIDBdCi0gICAgICAg
ICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90
eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAg
ICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ug
d2l0aCBhbiBpbnZhbGlkIEV4cGlyZXMiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAg
IHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJFeHBp
cmVzIiwgIjAiXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAg
ICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAg
ICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSByZXVzZXMg
YSByZXNwb25zZSB3aXRoIHBvc2l0aXZlIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UiLAotICAgICAg
ICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6
IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdCi0gICAg
ICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3Rl
ZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAg
IHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2UgYSByZXNwb25zZSB3
aXRoIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAg
ICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBb
IkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0wIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9
LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgot
ICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTog
IkhUVFAgY2FjaGUgcmV1c2VzIGEgcmVzcG9uc2Ugd2l0aCBwb3NpdGl2ZSBDYWNoZS1Db250cm9s
OiBtYXgtYWdlIGFuZCBhIHBhc3QgRXhwaXJlcyIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAg
ICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBb
IkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAgICAgIFsiRXhwaXJl
cyIsIC0xMDAwMF0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAg
ICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBd
Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSByZXVzZXMgYSBy
ZXNwb25zZSB3aXRoIHBvc2l0aXZlIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UgYW5kIGFuIGludmFs
aWQgRXhwaXJlcyIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAg
ICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAi
bWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAgICAgIFsiRXhwaXJlcyIsICIwIl0KLSAgICAgICAg
ICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5
cGU6ICJjYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewot
ICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGgg
Q2FjaGUtQ29udHJvbDogbWF4LWFnZT0wIGFuZCBhIGZ1dHVyZSBFeHBpcmVzIiwKLSAgICAgICAg
cmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBb
Ci0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTAiXSwKLSAgICAgICAg
ICAgICAgWyJFeHBpcmVzIiwgMTAwMDBdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAg
ICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAg
ICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQ
IGNhY2hlIGRvZXMgbm90IHByZWZlciBDYWNoZS1Db250cm9sOiBzLW1heGFnZSBvdmVyIENhY2hl
LUNvbnRyb2w6IG1heC1hZ2UiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250
cm9sIiwgIm1heC1hZ2U9MSwgcy1tYXhhZ2U9MzYwMCJdCi0gICAgICAgICAgICBdLAotICAgICAg
ICAgICAgcGF1c2VfYWZ0ZXI6IHRydWUsCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAg
IF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXMgbm90
IHJldXNlIGEgcmVzcG9uc2Ugd2hlbiB0aGUgQWdlIGhlYWRlciBpcyBncmVhdGVyIHRoYW4gaXRz
IGZyZXNobmVzcyBsaWZldGltZSIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewot
ICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNv
bnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAgICAgIFsiQWdlIiwgIjEyMDAwIl0K
LSAgICAgICAgICAgIF0sCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBl
eHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAg
IH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXMgbm90IHN0b3JlIGEg
cmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBuby1zdG9yZSIsCi0gICAgICAgIHJlcXVlc3Rz
OiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAg
ICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibm8tc3RvcmUiXQotICAgICAgICAgICAgXQotICAg
ICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9j
YWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAg
ICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5vdCBzdG9yZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUt
Q29udHJvbDogbm8tc3RvcmUsIGV2ZW4gd2l0aCBtYXgtYWdlIGFuZCBFeHBpcmVzIiwKLSAgICAg
ICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJz
OiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTEwMDAwLCBuby1z
dG9yZSJdLAotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCAxMDAwMF0KLSAgICAgICAgICAgIF0K
LSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJu
b3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAg
ICAgICAgbmFtZTogIkhUVFAgY2FjaGUgc3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250
cm9sOiBuby1jYWNoZSwgYnV0IHJldmFsaWRhdGVzIHVwb24gdXNlIiwKLSAgICAgICAgcmVxdWVz
dHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAg
ICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSJdLAotICAgICAgICAgICAgICBb
IkVUYWciLCAiYWJjZCJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7
Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiZXRhZ192YWxpZGF0ZWQiCi0gICAgICAgICAg
fQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNo
ZSBzdG9yZXMgYSByZXNwb25zZSB3aXRoIENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBidXQgcmV2
YWxpZGF0ZXMgdXBvbiB1c2UsIGV2ZW4gd2l0aCBtYXgtYWdlIGFuZCBFeHBpcmVzIiwKLSAgICAg
ICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJz
OiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTEwMDAwLCBuby1j
YWNoZSJdLAotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCAxMDAwMF0sCi0gICAgICAgICAgICAg
IFsiRVRhZyIsICJhYmNkIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAg
IHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJldGFnX3ZhbGlkYXRlZCIKLSAgICAgICAg
ICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgXTsKLSAgICBydW5fdGVzdHModGVzdHMpOwot
ICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlz
dGljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyMmQ3OWVjYTQ0ZWEwNGExNTBlNWJlODg3NzI2Y2MwYWVjNzY3
MzY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9o
ZXVyaXN0aWMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotCi1G
QUlMIEhUVFAgY2FjaGUgcmV1c2VzIGFuIHVua25vd24gcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlm
aWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcyB3aGVuIENhY2hlLUNvbnRyb2w6IHB1
YmxpYyBpcyBwcmVzZW50IGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29t
ZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgotUEFT
UyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGFuIHVua25vd24gcmVzcG9uc2Ugd2l0aCBMYXN0
LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcyB3aGVuIENhY2hlLUNvbnRy
b2w6IHB1YmxpYyBpcyBub3QgcHJlc2VudAotUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIDIwMCBP
SyByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2hu
ZXNzCi1QQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgMjAzIE5vbi1BdXRob3JpdGF0aXZlIEluZm9y
bWF0aW9uIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBm
cmVzaG5lc3MKLVBBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSAyMDQgTm8gQ29udGVudCByZXNwb25z
ZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCi1QQVNT
IEhUVFAgY2FjaGUgcmV1c2VzIGEgNDA0IE5vdCBGb3VuZCByZXNwb25zZSB3aXRoIExhc3QtTW9k
aWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCi1QQVNTIEhUVFAgY2FjaGUgcmV1
c2VzIGEgNDA1IE1ldGhvZCBOb3QgQWxsb3dlZCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQg
YmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCi1QQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEg
NDEwIEdvbmUgcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGlj
IGZyZXNobmVzcwotUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIDQxNCBVUkkgVG9vIExvbmcgcmVz
cG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcwot
UEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIDUwMSBOb3QgSW1wbGVtZW50ZWQgcmVzcG9uc2Ugd2l0
aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcwotUEFTUyBIVFRQ
IGNhY2hlIGRvZXMgbm90IHVzZSBhIDIwMSBDcmVhdGVkIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2Rp
ZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKLVBBU1MgSFRUUCBjYWNoZSBkb2Vz
IG5vdCB1c2UgYSAyMDIgQWNjZXB0ZWQgcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2Vk
IHVwb24gaGV1cmlzdGljIGZyZXNobmVzcwotUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHVzZSBh
IDQwMyBGb3JiaWRkZW4gcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1
cmlzdGljIGZyZXNobmVzcwotUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHVzZSBhIDUwMiBCYWQg
R2F0ZXdheSByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMg
ZnJlc2huZXNzCi1QQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgNTAzIFNlcnZpY2UgVW5h
dmFpbGFibGUgcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGlj
IGZyZXNobmVzcwotUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHVzZSBhIDUwNCBHYXRld2F5IFRp
bWVvdXQgcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZy
ZXNobmVzcwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLmFueS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2Fj
aGUvaGV1cmlzdGljLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjJkNzllY2E0NGVhMDRh
MTUwZTViZTg4NzcyNmNjMGFlYzc2NzM2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0
aWMuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACisKK0ZBSUwgSFRUUCBjYWNoZSBy
ZXVzZXMgYW4gdW5rbm93biByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBo
ZXVyaXN0aWMgZnJlc2huZXNzIHdoZW4gQ2FjaGUtQ29udHJvbDogcHVibGljIGlzIHByZXNlbnQg
YXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitQQVNTIEhUVFAgY2FjaGUgZG9l
cyBub3QgcmV1c2UgYW4gdW5rbm93biByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQg
dXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzIHdoZW4gQ2FjaGUtQ29udHJvbDogcHVibGljIGlzIG5v
dCBwcmVzZW50CitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgMjAwIE9LIHJlc3BvbnNlIHdpdGgg
TGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBj
YWNoZSByZXVzZXMgYSAyMDMgTm9uLUF1dGhvcml0YXRpdmUgSW5mb3JtYXRpb24gcmVzcG9uc2Ug
d2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcworUEFTUyBI
VFRQIGNhY2hlIHJldXNlcyBhIDIwNCBObyBDb250ZW50IHJlc3BvbnNlIHdpdGggTGFzdC1Nb2Rp
ZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSByZXVz
ZXMgYSA0MDQgTm90IEZvdW5kIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9u
IGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSA0MDUgTWV0aG9k
IE5vdCBBbGxvd2VkIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJp
c3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSA0MTAgR29uZSByZXNwb25z
ZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNT
IEhUVFAgY2FjaGUgcmV1c2VzIGEgNDE0IFVSSSBUb28gTG9uZyByZXNwb25zZSB3aXRoIExhc3Qt
TW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUg
cmV1c2VzIGEgNTAxIE5vdCBJbXBsZW1lbnRlZCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQg
YmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3Qg
dXNlIGEgMjAxIENyZWF0ZWQgcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24g
aGV1cmlzdGljIGZyZXNobmVzcworUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHVzZSBhIDIwMiBB
Y2NlcHRlZCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMg
ZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgNDAzIEZvcmJpZGRlbiBy
ZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNz
CitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgNTAyIEJhZCBHYXRld2F5IHJlc3BvbnNl
IHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1Mg
SFRUUCBjYWNoZSBkb2VzIG5vdCB1c2UgYSA1MDMgU2VydmljZSBVbmF2YWlsYWJsZSByZXNwb25z
ZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNT
IEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgNTA0IEdhdGV3YXkgVGltZW91dCByZXNwb25zZSB3
aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
aHR0cC1jYWNoZS9oZXVyaXN0aWMuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLmFueS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0g
VGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBy
dW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2hldXJpc3RpYy5hbnkuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDg0NjEzMTg4ODI4OGNiODYzMzA4MDgxZWVlOTI3MWNhYTEwOGEwOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMuYW55LmpzCkBAIC0wLDAgKzEsOTMgQEAKKy8vIE1F
VEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1IVFRQIENhY2hlIC0gSGV1
cmlzdGljIEZyZXNobmVzcworLy8gTUVUQTogdGltZW91dD1sb25nCisvLyBNRVRBOiBzY3JpcHQ9
L2NvbW1vbi91dGlscy5qcworLy8gTUVUQTogc2NyaXB0PS9jb21tb24vZ2V0LWhvc3QtaW5mby5z
dWIuanMKKy8vIE1FVEE6IHNjcmlwdD1odHRwLWNhY2hlLmpzCisKK3ZhciB0ZXN0cyA9IFsKKyAg
eworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyBhbiB1bmtub3duIHJlc3BvbnNlIHdpdGgg
TGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3Mgd2hlbiBDYWNoZS1D
b250cm9sOiBwdWJsaWMgaXMgcHJlc2VudCIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAg
ICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjk5LCAiV2hhdGV2ZXIiXSwKKyAgICAgICAgcmVzcG9u
c2VfaGVhZGVyczogWworICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsICgtMyAqIDEwMCldLAor
ICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJwdWJsaWMiXQorICAgICAgICBdLAorICAgICAg
fSwKKyAgICAgIHsKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIsCisgICAgICAgIHJl
c3BvbnNlX3N0YXR1czogWzI5OSwgIldoYXRldmVyIl0KKyAgICAgIH0KKyAgICBdCisgIH0sCisg
IHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhbiB1bmtub3duIHJlc3Bv
bnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3Mgd2hl
biBDYWNoZS1Db250cm9sOiBwdWJsaWMgaXMgbm90IHByZXNlbnQiLAorICAgIHJlcXVlc3RzOiBb
CisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzI5OSwgIldoYXRldmVyIl0sCisg
ICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAo
LTMgKiAxMDApXQorICAgICAgICBdLAorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZXhwZWN0
ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9CitdOworCitmdW5jdGlv
biBjaGVja19zdGF0dXMoc3RhdHVzKSB7CisgIHZhciBzdWNjZWVkID0gc3RhdHVzWzBdOworICB2
YXIgY29kZSA9IHN0YXR1c1sxXTsKKyAgdmFyIHBocmFzZSA9IHN0YXR1c1syXTsKKyAgdmFyIGJv
ZHkgPSBzdGF0dXNbM107CisgIGlmIChib2R5ID09PSB1bmRlZmluZWQpIHsKKyAgICBib2R5ID0g
aHR0cF9jb250ZW50KGNvZGUpOworICB9CisgIHZhciBleHBlY3RlZF90eXBlID0gIm5vdF9jYWNo
ZWQiOworICB2YXIgZGVzaXJlZCA9ICJkb2VzIG5vdCB1c2UiCisgIGlmIChzdWNjZWVkID09PSB0
cnVlKSB7CisgICAgZXhwZWN0ZWRfdHlwZSA9ICJjYWNoZWQiOworICAgIGRlc2lyZWQgPSAicmV1
c2VzIjsKKyAgfQorICB0ZXN0cy5wdXNoKAorICAgIHsKKyAgICAgIG5hbWU6ICJIVFRQIGNhY2hl
ICIgKyBkZXNpcmVkICsgIiBhICIgKyBjb2RlICsgIiAiICsgcGhyYXNlICsgIiByZXNwb25zZSB3
aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzIiwKKyAgICAg
IHJlcXVlc3RzOiBbCisgICAgICAgIHsKKyAgICAgICAgICByZXNwb25zZV9zdGF0dXM6IFtjb2Rl
LCBwaHJhc2VdLAorICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICAgIFsi
TGFzdC1Nb2RpZmllZCIsICgtMyAqIDEwMCldCisgICAgICAgICAgXSwKKyAgICAgICAgICByZXNw
b25zZV9ib2R5OiBib2R5CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBleHBlY3Rl
ZF90eXBlOiBleHBlY3RlZF90eXBlLAorICAgICAgICAgIHJlc3BvbnNlX3N0YXR1czogW2NvZGUs
IHBocmFzZV0sCisgICAgICAgICAgcmVzcG9uc2VfYm9keTogYm9keQorICAgICAgICB9CisgICAg
ICBdCisgICAgfQorICApCit9CitbCisgIFt0cnVlLCAyMDAsICJPSyJdLAorICBbdHJ1ZSwgMjAz
LCAiTm9uLUF1dGhvcml0YXRpdmUgSW5mb3JtYXRpb24iXSwKKyAgW3RydWUsIDIwNCwgIk5vIENv
bnRlbnQiLCAiIl0sCisgIFt0cnVlLCA0MDQsICJOb3QgRm91bmQiXSwKKyAgW3RydWUsIDQwNSwg
Ik1ldGhvZCBOb3QgQWxsb3dlZCJdLAorICBbdHJ1ZSwgNDEwLCAiR29uZSJdLAorICBbdHJ1ZSwg
NDE0LCAiVVJJIFRvbyBMb25nIl0sCisgIFt0cnVlLCA1MDEsICJOb3QgSW1wbGVtZW50ZWQiXQor
XS5mb3JFYWNoKGNoZWNrX3N0YXR1cyk7CitbCisgIFtmYWxzZSwgMjAxLCAiQ3JlYXRlZCJdLAor
ICBbZmFsc2UsIDIwMiwgIkFjY2VwdGVkIl0sCisgIFtmYWxzZSwgNDAzLCAiRm9yYmlkZGVuIl0s
CisgIFtmYWxzZSwgNTAyLCAiQmFkIEdhdGV3YXkiXSwKKyAgW2ZhbHNlLCA1MDMsICJTZXJ2aWNl
IFVuYXZhaWxhYmxlIl0sCisgIFtmYWxzZSwgNTA0LCAiR2F0ZXdheSBUaW1lb3V0Il0sCitdLmZv
ckVhY2goY2hlY2tfc3RhdHVzKTsKK3J1bl90ZXN0cyh0ZXN0cyk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
aGV1cmlzdGljLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2hldXJpc3RpYy5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMmQ3OWVjYTQ0ZWEwNGExNTBlNWJlODg3NzI2
Y2MwYWVjNzY3MzY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2hldXJpc3RpYy5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACisKK0ZBSUwgSFRUUCBjYWNoZSByZXVzZXMg
YW4gdW5rbm93biByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0
aWMgZnJlc2huZXNzIHdoZW4gQ2FjaGUtQ29udHJvbDogcHVibGljIGlzIHByZXNlbnQgYXNzZXJ0
X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3Qg
cmV1c2UgYW4gdW5rbm93biByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBo
ZXVyaXN0aWMgZnJlc2huZXNzIHdoZW4gQ2FjaGUtQ29udHJvbDogcHVibGljIGlzIG5vdCBwcmVz
ZW50CitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgMjAwIE9LIHJlc3BvbnNlIHdpdGggTGFzdC1N
b2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSBy
ZXVzZXMgYSAyMDMgTm9uLUF1dGhvcml0YXRpdmUgSW5mb3JtYXRpb24gcmVzcG9uc2Ugd2l0aCBM
YXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcworUEFTUyBIVFRQIGNh
Y2hlIHJldXNlcyBhIDIwNCBObyBDb250ZW50IHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBi
YXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSA0
MDQgTm90IEZvdW5kIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJp
c3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSA0MDUgTWV0aG9kIE5vdCBB
bGxvd2VkIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBm
cmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSA0MTAgR29uZSByZXNwb25zZSB3aXRo
IExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAg
Y2FjaGUgcmV1c2VzIGEgNDE0IFVSSSBUb28gTG9uZyByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZp
ZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgcmV1c2Vz
IGEgNTAxIE5vdCBJbXBsZW1lbnRlZCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQg
dXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEg
MjAxIENyZWF0ZWQgcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlz
dGljIGZyZXNobmVzcworUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHVzZSBhIDIwMiBBY2NlcHRl
ZCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2hu
ZXNzCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgNDAzIEZvcmJpZGRlbiByZXNwb25z
ZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNT
IEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgNTAyIEJhZCBHYXRld2F5IHJlc3BvbnNlIHdpdGgg
TGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBj
YWNoZSBkb2VzIG5vdCB1c2UgYSA1MDMgU2VydmljZSBVbmF2YWlsYWJsZSByZXNwb25zZSB3aXRo
IExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAg
Y2FjaGUgZG9lcyBub3QgdXNlIGEgNTA0IEdhdGV3YXkgVGltZW91dCByZXNwb25zZSB3aXRoIExh
c3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1j
YWNoZS9oZXVyaXN0aWMuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2hldXJpc3RpYy5hbnkud29ya2Vy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhj
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMuYW55Lndvcmtlci5odG1sCkBAIC0w
LDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZy
YXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0
aWMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzIzMzNjZDlmMDVjZjA5NmJk
ZGRiN2E0YzlkNTYwMTI1YmNiMmRlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5IVFRQIENhY2hlIC0gSGV1cmlzdGljIEZyZXNobmVz
czwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVj
LndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9
ImxvbmciPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0iaHR0cC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAg
PGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbCi0gICAgICB7Ci0gICAgICAg
IG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyBhbiB1bmtub3duIHJlc3BvbnNlIHdpdGggTGFzdC1N
b2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3Mgd2hlbiBDYWNoZS1Db250cm9s
OiBwdWJsaWMgaXMgcHJlc2VudCIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewot
ICAgICAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjk5LCAiV2hhdGV2ZXIiXSwKLSAgICAgICAg
ICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwg
KC0zICogMTAwKV0sCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJwdWJsaWMiXQot
ICAgICAgICAgICAgXSwKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGV4
cGVjdGVkX3R5cGU6ICJjYWNoZWQiLAotICAgICAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjk5
LCAiV2hhdGV2ZXIiXQotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsK
LSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2UgYW4gdW5rbm93biByZXNw
b25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzIHdo
ZW4gQ2FjaGUtQ29udHJvbDogcHVibGljIGlzIG5vdCBwcmVzZW50IiwKLSAgICAgICAgcmVxdWVz
dHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9zdGF0dXM6IFsyOTksICJX
aGF0ZXZlciJdLAotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAg
ICBbIkxhc3QtTW9kaWZpZWQiLCAoLTMgKiAxMDApXQotICAgICAgICAgICAgXSwKLSAgICAgICAg
ICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVk
IgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF07Ci0KLSAgICBmdW5jdGlv
biBjaGVja19zdGF0dXMoc3RhdHVzKSB7Ci0gICAgICB2YXIgc3VjY2VlZCA9IHN0YXR1c1swXTsK
LSAgICAgIHZhciBjb2RlID0gc3RhdHVzWzFdOwotICAgICAgdmFyIHBocmFzZSA9IHN0YXR1c1sy
XTsKLSAgICAgIHZhciBib2R5ID0gc3RhdHVzWzNdOwotICAgICAgaWYgKGJvZHkgPT09IHVuZGVm
aW5lZCkgewotICAgICAgICBib2R5ID0gaHR0cF9jb250ZW50KGNvZGUpOwotICAgICAgfQotICAg
ICAgdmFyIGV4cGVjdGVkX3R5cGUgPSAibm90X2NhY2hlZCI7Ci0gICAgICB2YXIgZGVzaXJlZCA9
ICJkb2VzIG5vdCB1c2UiCi0gICAgICBpZiAoc3VjY2VlZCA9PT0gdHJ1ZSkgewotICAgICAgICBl
eHBlY3RlZF90eXBlID0gImNhY2hlZCI7Ci0gICAgICAgIGRlc2lyZWQgPSAicmV1c2VzIjsKLSAg
ICAgIH0KLSAgICAgIHRlc3RzLnB1c2goCi0gICAgICAgIHsKLSAgICAgICAgICBuYW1lOiAiSFRU
UCBjYWNoZSAiICsgZGVzaXJlZCArICIgYSAiICsgY29kZSArICIgIiArIHBocmFzZSArICIgcmVz
cG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcyIs
Ci0gICAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgcmVz
cG9uc2Vfc3RhdHVzOiBbY29kZSwgcGhyYXNlXSwKLSAgICAgICAgICAgICAgcmVzcG9uc2VfaGVh
ZGVyczogWwotICAgICAgICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsICgtMyAqIDEwMCldCi0g
ICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgIHJlc3BvbnNlX2JvZHk6IGJvZHkKLSAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6IGV4
cGVjdGVkX3R5cGUsCi0gICAgICAgICAgICAgIHJlc3BvbnNlX3N0YXR1czogW2NvZGUsIHBocmFz
ZV0sCi0gICAgICAgICAgICAgIHJlc3BvbnNlX2JvZHk6IGJvZHkKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICBdCi0gICAgICAgIH0KLSAgICAgICkKLSAgICB9Ci0gICAgWwotICAgICAgW3RydWUs
IDIwMCwgIk9LIl0sCi0gICAgICBbdHJ1ZSwgMjAzLCAiTm9uLUF1dGhvcml0YXRpdmUgSW5mb3Jt
YXRpb24iXSwKLSAgICAgIFt0cnVlLCAyMDQsICJObyBDb250ZW50IiwgIiJdLAotICAgICAgW3Ry
dWUsIDQwNCwgIk5vdCBGb3VuZCJdLAotICAgICAgW3RydWUsIDQwNSwgIk1ldGhvZCBOb3QgQWxs
b3dlZCJdLAotICAgICAgW3RydWUsIDQxMCwgIkdvbmUiXSwKLSAgICAgIFt0cnVlLCA0MTQsICJV
UkkgVG9vIExvbmciXSwKLSAgICAgIFt0cnVlLCA1MDEsICJOb3QgSW1wbGVtZW50ZWQiXQotICAg
IF0uZm9yRWFjaChjaGVja19zdGF0dXMpOwotICAgIFsKLSAgICAgIFtmYWxzZSwgMjAxLCAiQ3Jl
YXRlZCJdLAotICAgICAgW2ZhbHNlLCAyMDIsICJBY2NlcHRlZCJdLAotICAgICAgW2ZhbHNlLCA0
MDMsICJGb3JiaWRkZW4iXSwKLSAgICAgIFtmYWxzZSwgNTAyLCAiQmFkIEdhdGV3YXkiXSwKLSAg
ICAgIFtmYWxzZSwgNTAzLCAiU2VydmljZSBVbmF2YWlsYWJsZSJdLAotICAgICAgW2ZhbHNlLCA1
MDQsICJHYXRld2F5IFRpbWVvdXQiXSwKLSAgICBdLmZvckVhY2goY2hlY2tfc3RhdHVzKTsKLSAg
ICBydW5fdGVzdHModGVzdHMpOwotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2h0dHAtY2FjaGUvaW52YWxpZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaW52YWxpZGF0ZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjM2I1MWZjMjkyNzQ0
ZTc3N2NmYjgzMjc2ZDY3NjE0ZGRiZTdlZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTcgKzAsMCBAQAotCi1QQVNTIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIg
YSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBQT1NUCi1GQUlMIEhUVFAgY2FjaGUgZG9lcyBu
b3QgaW52YWxpZGF0ZSBhZnRlciBhIGZhaWxlZCByZXNwb25zZSBmcm9tIGFuIHVuc2FmZSByZXF1
ZXN0IGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDMgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hl
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAzIGJ1dCBnb3QgMwotUEFTUyBIVFRQIGNhY2hl
IGludmFsaWRhdGVzIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgUFVUCi1QQVNT
IEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20g
YSBERUxFVEUKLVBBU1MgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBhZnRlciBhIHN1Y2Nlc3NmdWwg
cmVzcG9uc2UgZnJvbSBhbiB1bmtub3duIG1ldGhvZAotRkFJTCBIVFRQIGNhY2hlIGludmFsaWRh
dGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBPU1Qg
YXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMyBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDMgYnV0
IGdvdCAxCi1QQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgaW52YWxpZGF0ZSBMb2NhdGlvbiBVUkwg
YWZ0ZXIgYSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVxdWVzdAotRkFJTCBIVFRQ
IGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9u
c2UgZnJvbSBhIFBVVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUg
ZXhwZWN0ZWQgMyBidXQgZ290IDEKLUZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBMb2NhdGlv
biBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBERUxFVEUgYXNzZXJ0X2Vx
dWFsczogUmVzcG9uc2UgMyBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDMgYnV0IGdvdCAxCi1G
QUlMIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgTG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1
bCByZXNwb25zZSBmcm9tIGFuIHVua25vd24gbWV0aG9kIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNl
IDMgY29tZXMgZnJvbSBjYWNoZSBleHBlY3RlZCAzIGJ1dCBnb3QgMQotRkFJTCBIVFRQIGNhY2hl
IGludmFsaWRhdGVzIENvbnRlbnQtTG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNw
b25zZSBmcm9tIGEgUE9TVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2Fj
aGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKLVBBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCBpbnZhbGlk
YXRlIENvbnRlbnQtTG9jYXRpb24gVVJMIGFmdGVyIGEgZmFpbGVkIHJlc3BvbnNlIGZyb20gYW4g
dW5zYWZlIHJlcXVlc3QKLUZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0
aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBVVCBhc3NlcnRfZXF1
YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKLUZB
SUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1
Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIERFTEVURSBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAz
IGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKLUZBSUwgSFRUUCBjYWNoZSBp
bnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9u
c2UgZnJvbSBhbiB1bmtub3duIG1ldGhvZCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVz
IGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFs
aWRhdGUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9pbnZhbGlkYXRlLmFueS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWMzYjUxZmMyOTI3NDRlNzc3Y2ZiODMyNzZkNjc2MTRkZGJlN2VmMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvaHR0cC1jYWNoZS9pbnZhbGlkYXRlLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNyBAQAorCitQQVNTIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVs
IHJlc3BvbnNlIGZyb20gYSBQT1NUCitGQUlMIEhUVFAgY2FjaGUgZG9lcyBub3QgaW52YWxpZGF0
ZSBhZnRlciBhIGZhaWxlZCByZXNwb25zZSBmcm9tIGFuIHVuc2FmZSByZXF1ZXN0IGFzc2VydF9s
ZXNzX3RoYW46IFJlc3BvbnNlIDMgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiAzIGJ1dCBnb3QgMworUEFTUyBIVFRQIGNhY2hlIGludmFsaWRhdGVz
IGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgUFVUCitQQVNTIEhUVFAgY2FjaGUg
aW52YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBERUxFVEUKK1BB
U1MgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJv
bSBhbiB1bmtub3duIG1ldGhvZAorRkFJTCBIVFRQIGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9u
IFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBPU1QgYXNzZXJ0X2VxdWFs
czogUmVzcG9uc2UgMyBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDMgYnV0IGdvdCAxCitQQVNT
IEhUVFAgY2FjaGUgZG9lcyBub3QgaW52YWxpZGF0ZSBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBmYWls
ZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVxdWVzdAorRkFJTCBIVFRQIGNhY2hlIGludmFs
aWRhdGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBV
VCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBi
dXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBMb2NhdGlvbiBVUkwgYWZ0ZXIg
YSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBERUxFVEUgYXNzZXJ0X2VxdWFsczogUmVzcG9u
c2UgMyBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDMgYnV0IGdvdCAxCitGQUlMIEhUVFAgY2Fj
aGUgaW52YWxpZGF0ZXMgTG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBm
cm9tIGFuIHVua25vd24gbWV0aG9kIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNlIDMgY29tZXMgZnJv
bSBjYWNoZSBleHBlY3RlZCAzIGJ1dCBnb3QgMQorRkFJTCBIVFRQIGNhY2hlIGludmFsaWRhdGVz
IENvbnRlbnQtTG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEg
UE9TVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQg
MyBidXQgZ290IDEKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCBpbnZhbGlkYXRlIENvbnRlbnQt
TG9jYXRpb24gVVJMIGFmdGVyIGEgZmFpbGVkIHJlc3BvbnNlIGZyb20gYW4gdW5zYWZlIHJlcXVl
c3QKK0ZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRl
ciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBVVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25z
ZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNo
ZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVz
cG9uc2UgZnJvbSBhIERFTEVURSBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20g
Y2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBD
b250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhbiB1
bmtub3duIG1ldGhvZCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUg
ZXhwZWN0ZWQgMyBidXQgZ290IDEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvaW52YWxpZGF0ZS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2Iz
YTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRh
dGUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUu
YW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmODA5MGFjZTY1OWQy
YjljYzQ0Mjc0YjAzNzlhMzBmMDhkOTQ5ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaW52YWxp
ZGF0ZS5hbnkuanMKQEAgLTAsMCArMSwyMzUgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29y
a2VyCisvLyBNRVRBOiB0aXRsZT1IVFRQIENhY2hlIC0gSW52YWxpZGF0aW9uCisvLyBNRVRBOiB0
aW1lb3V0PWxvbmcKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBz
Y3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0PWh0dHAt
Y2FjaGUuanMKKwordmFyIHRlc3RzID0gWworICB7CisgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52
YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBQT1NUJywKKyAgICBy
ZXF1ZXN0czogWworICAgICAgeworICAgICAgICB0ZW1wbGF0ZTogImZyZXNoIgorICAgICAgfSwg
eworICAgICAgICByZXF1ZXN0X21ldGhvZDogIlBPU1QiLAorICAgICAgICByZXF1ZXN0X2JvZHk6
ICJhYmMiCisgICAgICB9LCB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgor
ICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICdIVFRQIGNhY2hlIGRvZXMgbm90
IGludmFsaWRhdGUgYWZ0ZXIgYSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVxdWVz
dCcsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU6ICJmcmVzaCIK
KyAgICAgIH0sIHsKKyAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJQT1NUIiwKKyAgICAgICAgcmVx
dWVzdF9ib2R5OiAiYWJjIiwKKyAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbNTAwLCAiSW50ZXJu
YWwgU2VydmVyIEVycm9yIl0KKyAgICAgIH0sIHsKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNh
Y2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAnSFRUUCBjYWNoZSBp
bnZhbGlkYXRlcyBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBVVCcsCisgICAg
cmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU6ICJmcmVzaCIKKyAgICAgIH0s
IHsKKyAgICAgICAgdGVtcGxhdGU6ICJmcmVzaCIsCisgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAi
UFVUIiwKKyAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIgorICAgICAgfSwgeworICAgICAgICBl
eHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAg
ICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9u
c2UgZnJvbSBhIERFTEVURScsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgdGVt
cGxhdGU6ICJmcmVzaCIKKyAgICAgIH0sIHsKKyAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJERUxF
VEUiLAorICAgICAgICByZXF1ZXN0X2JvZHk6ICJhYmMiCisgICAgICB9LCB7CisgICAgICAgIGV4
cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAg
IG5hbWU6ICdIVFRQIGNhY2hlIGludmFsaWRhdGVzIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25z
ZSBmcm9tIGFuIHVua25vd24gbWV0aG9kJywKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAg
ICAgICB0ZW1wbGF0ZTogImZyZXNoIgorICAgICAgfSwgeworICAgICAgICByZXF1ZXN0X21ldGhv
ZDogIkZPTyIsCisgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKKyAgICAgIH0sIHsKKyAgICAg
ICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorCisK
KyAgeworICAgIG5hbWU6ICdIVFRQIGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9uIFVSTCBhZnRl
ciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBPU1QnLAorICAgIHJlcXVlc3RzOiBbCisg
ICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAibG9jYXRpb24iCisgICAgICB9LCB7CisgICAgICAg
IHJlcXVlc3RfbWV0aG9kOiAiUE9TVCIsCisgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIsCisg
ICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNlIgorICAgICAgfSwgeworICAgICAgICB0ZW1w
bGF0ZTogImxvY2F0aW9uIiwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisg
ICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogJ0hUVFAgY2FjaGUgZG9lcyBub3Qg
aW52YWxpZGF0ZSBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1
bnNhZmUgcmVxdWVzdCcsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgdGVtcGxh
dGU6ICJsb2NhdGlvbiIKKyAgICAgIH0sIHsKKyAgICAgICAgdGVtcGxhdGU6ICJsY2xfcmVzcG9u
c2UiLAorICAgICAgICByZXF1ZXN0X21ldGhvZDogIlBPU1QiLAorICAgICAgICByZXF1ZXN0X2Jv
ZHk6ICJhYmMiLAorICAgICAgICByZXNwb25zZV9zdGF0dXM6IFs1MDAsICJJbnRlcm5hbCBTZXJ2
ZXIgRXJyb3IiXQorICAgICAgfSwgeworICAgICAgICB0ZW1wbGF0ZTogImxvY2F0aW9uIiwKKyAg
ICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsK
KyAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBz
dWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBQVVQnLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7
CisgICAgICAgIHRlbXBsYXRlOiAibG9jYXRpb24iCisgICAgICB9LCB7CisgICAgICAgIHRlbXBs
YXRlOiAibGNsX3Jlc3BvbnNlIiwKKyAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJQVVQiLAorICAg
ICAgICByZXF1ZXN0X2JvZHk6ICJhYmMiCisgICAgICB9LCB7CisgICAgICAgIHRlbXBsYXRlOiAi
bG9jYXRpb24iLAorICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKKyAgICAgIH0K
KyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBMb2Nh
dGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBERUxFVEUnLAorICAg
IHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAibG9jYXRpb24iCisgICAg
ICB9LCB7CisgICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNlIiwKKyAgICAgICAgcmVxdWVz
dF9tZXRob2Q6ICJERUxFVEUiLAorICAgICAgICByZXF1ZXN0X2JvZHk6ICJhYmMiCisgICAgICB9
LCB7CisgICAgICAgIHRlbXBsYXRlOiAibG9jYXRpb24iLAorICAgICAgICBleHBlY3RlZF90eXBl
OiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAnSFRU
UCBjYWNoZSBpbnZhbGlkYXRlcyBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3Bv
bnNlIGZyb20gYW4gdW5rbm93biBtZXRob2QnLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7Cisg
ICAgICAgIHRlbXBsYXRlOiAibG9jYXRpb24iCisgICAgICB9LCB7CisgICAgICAgIHRlbXBsYXRl
OiAibGNsX3Jlc3BvbnNlIiwKKyAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJGT08iLAorICAgICAg
ICByZXF1ZXN0X2JvZHk6ICJhYmMiCisgICAgICB9LCB7CisgICAgICAgIHRlbXBsYXRlOiAibG9j
YXRpb24iLAorICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAg
ICBdCisgIH0sCisKKworCisgIHsKKyAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBD
b250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBP
U1QnLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAiY29udGVu
dF9sb2NhdGlvbiIKKyAgICAgIH0sIHsKKyAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJQT1NUIiwK
KyAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIiwKKyAgICAgICAgdGVtcGxhdGU6ICJsY2xfcmVz
cG9uc2UiCisgICAgICB9LCB7CisgICAgICAgIHRlbXBsYXRlOiAiY29udGVudF9sb2NhdGlvbiIs
CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAg
fSwKKyAgeworICAgIG5hbWU6ICdIVFRQIGNhY2hlIGRvZXMgbm90IGludmFsaWRhdGUgQ29udGVu
dC1Mb2NhdGlvbiBVUkwgYWZ0ZXIgYSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVx
dWVzdCcsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU6ICJjb250
ZW50X2xvY2F0aW9uIgorICAgICAgfSwgeworICAgICAgICB0ZW1wbGF0ZTogImxjbF9yZXNwb25z
ZSIsCisgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiUE9TVCIsCisgICAgICAgIHJlcXVlc3RfYm9k
eTogImFiYyIsCisgICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzUwMCwgIkludGVybmFsIFNlcnZl
ciBFcnJvciJdCisgICAgICB9LCB7CisgICAgICAgIHRlbXBsYXRlOiAiY29udGVudF9sb2NhdGlv
biIsCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiCisgICAgICB9CisgICAgXQorICB9
LAorICB7CisgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgQ29udGVudC1Mb2NhdGlv
biBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBQVVQnLAorICAgIHJlcXVl
c3RzOiBbCisgICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAiY29udGVudF9sb2NhdGlvbiIKKyAg
ICAgIH0sIHsKKyAgICAgICAgdGVtcGxhdGU6ICJsY2xfcmVzcG9uc2UiLAorICAgICAgICByZXF1
ZXN0X21ldGhvZDogIlBVVCIsCisgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKKyAgICAgIH0s
IHsKKyAgICAgICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9uIiwKKyAgICAgICAgZXhwZWN0
ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFt
ZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgQ29udGVudC1Mb2NhdGlvbiBVUkwgYWZ0ZXIgYSBz
dWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBERUxFVEUnLAorICAgIHJlcXVlc3RzOiBbCisgICAg
ICB7CisgICAgICAgIHRlbXBsYXRlOiAiY29udGVudF9sb2NhdGlvbiIKKyAgICAgIH0sIHsKKyAg
ICAgICAgdGVtcGxhdGU6ICJsY2xfcmVzcG9uc2UiLAorICAgICAgICByZXF1ZXN0X21ldGhvZDog
IkRFTEVURSIsCisgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKKyAgICAgIH0sIHsKKyAgICAg
ICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9uIiwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTog
Im5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogJ0hUVFAg
Y2FjaGUgaW52YWxpZGF0ZXMgQ29udGVudC1Mb2NhdGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVs
IHJlc3BvbnNlIGZyb20gYW4gdW5rbm93biBtZXRob2QnLAorICAgIHJlcXVlc3RzOiBbCisgICAg
ICB7CisgICAgICAgIHRlbXBsYXRlOiAiY29udGVudF9sb2NhdGlvbiIKKyAgICAgIH0sIHsKKyAg
ICAgICAgdGVtcGxhdGU6ICJsY2xfcmVzcG9uc2UiLAorICAgICAgICByZXF1ZXN0X21ldGhvZDog
IkZPTyIsCisgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKKyAgICAgIH0sIHsKKyAgICAgICAg
dGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9uIiwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5v
dF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9CisKK107CitydW5fdGVzdHModGVzdHMpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
aW52YWxpZGF0ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzNiNTFmYzI5
Mjc0NGU3NzdjZmI4MzI3NmQ2NzYxNGRkYmU3ZWYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2lu
dmFsaWRhdGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCitQQVNT
IEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20g
YSBQT1NUCitGQUlMIEhUVFAgY2FjaGUgZG9lcyBub3QgaW52YWxpZGF0ZSBhZnRlciBhIGZhaWxl
ZCByZXNwb25zZSBmcm9tIGFuIHVuc2FmZSByZXF1ZXN0IGFzc2VydF9sZXNzX3RoYW46IFJlc3Bv
bnNlIDMgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhh
biAzIGJ1dCBnb3QgMworUEFTUyBIVFRQIGNhY2hlIGludmFsaWRhdGVzIGFmdGVyIGEgc3VjY2Vz
c2Z1bCByZXNwb25zZSBmcm9tIGEgUFVUCitQQVNTIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0
ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBERUxFVEUKK1BBU1MgSFRUUCBjYWNoZSBp
bnZhbGlkYXRlcyBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhbiB1bmtub3duIG1l
dGhvZAorRkFJTCBIVFRQIGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1
Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBPU1QgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMyBj
b21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDMgYnV0IGdvdCAxCitQQVNTIEhUVFAgY2FjaGUgZG9l
cyBub3QgaW52YWxpZGF0ZSBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBmYWlsZWQgcmVzcG9uc2UgZnJv
bSBhbiB1bnNhZmUgcmVxdWVzdAorRkFJTCBIVFRQIGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9u
IFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBVVCBhc3NlcnRfZXF1YWxz
OiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK0ZBSUwg
SFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJl
c3BvbnNlIGZyb20gYSBERUxFVEUgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMyBjb21lcyBmcm9t
IGNhY2hlIGV4cGVjdGVkIDMgYnV0IGdvdCAxCitGQUlMIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMg
TG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGFuIHVua25vd24g
bWV0aG9kIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNlIDMgY29tZXMgZnJvbSBjYWNoZSBleHBlY3Rl
ZCAzIGJ1dCBnb3QgMQorRkFJTCBIVFRQIGNhY2hlIGludmFsaWRhdGVzIENvbnRlbnQtTG9jYXRp
b24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgUE9TVCBhc3NlcnRfZXF1
YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK1BB
U1MgSFRUUCBjYWNoZSBkb2VzIG5vdCBpbnZhbGlkYXRlIENvbnRlbnQtTG9jYXRpb24gVVJMIGFm
dGVyIGEgZmFpbGVkIHJlc3BvbnNlIGZyb20gYW4gdW5zYWZlIHJlcXVlc3QKK0ZBSUwgSFRUUCBj
YWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwg
cmVzcG9uc2UgZnJvbSBhIFBVVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20g
Y2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBD
b250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIERF
TEVURSBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQg
MyBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9u
IFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhbiB1bmtub3duIG1ldGhvZCBh
c3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQg
Z290IDEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55Lndvcmtlci5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hl
L2ludmFsaWRhdGUuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaW52YWxpZGF0
ZS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRl
c3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFs
aWRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9pbnZhbGlkYXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRiZjcyN2MwZWFhZTllODYxMDVlNTBlZjg1OGY5NTM0NDQ4MDE4OTAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDI0NiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1s
PgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPkhUVFAg
Q2FjaGUgLSBJbnZhbGlkYXRpb248L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KLSAgICA8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL3V0
aWxzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZv
LnN1Yi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Imh0dHAtY2FjaGUuanMiPjwvc2Ny
aXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgdmFyIHRlc3RzID0g
WwotICAgICAgewotICAgICAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBhZnRlciBh
IHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBPU1QnLAotICAgICAgICByZXF1ZXN0czogWwot
ICAgICAgICAgIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAiZnJlc2giCi0gICAgICAgICAgfSwg
ewotICAgICAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJQT1NUIiwKLSAgICAgICAgICAgIHJlcXVl
c3RfYm9keTogImFiYyIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBl
OiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7
Ci0gICAgICAgIG5hbWU6ICdIVFRQIGNhY2hlIGRvZXMgbm90IGludmFsaWRhdGUgYWZ0ZXIgYSBm
YWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVxdWVzdCcsCi0gICAgICAgIHJlcXVlc3Rz
OiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgdGVtcGxhdGU6ICJmcmVzaCIKLSAgICAgICAg
ICB9LCB7Ci0gICAgICAgICAgICByZXF1ZXN0X21ldGhvZDogIlBPU1QiLAotICAgICAgICAgICAg
cmVxdWVzdF9ib2R5OiAiYWJjIiwKLSAgICAgICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzUwMCwg
IkludGVybmFsIFNlcnZlciBFcnJvciJdCi0gICAgICAgICAgfSwgewotICAgICAgICAgICAgZXhw
ZWN0ZWRfdHlwZTogImNhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0g
ICAgICB7Ci0gICAgICAgIG5hbWU6ICdIVFRQIGNhY2hlIGludmFsaWRhdGVzIGFmdGVyIGEgc3Vj
Y2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgUFVUJywKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImZyZXNoIgotICAgICAgICAgIH0sIHsKLSAg
ICAgICAgICAgIHRlbXBsYXRlOiAiZnJlc2giLAotICAgICAgICAgICAgcmVxdWVzdF9tZXRob2Q6
ICJQVVQiLAotICAgICAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIgotICAgICAgICAgIH0sIHsK
LSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAg
ICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52
YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBERUxFVEUnLAotICAg
ICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAiZnJl
c2giCi0gICAgICAgICAgfSwgewotICAgICAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJERUxFVEUi
LAotICAgICAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIgotICAgICAgICAgIH0sIHsKLSAgICAg
ICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAg
XQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0
ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYW4gdW5rbm93biBtZXRob2QnLAot
ICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAi
ZnJlc2giCi0gICAgICAgICAgfSwgewotICAgICAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJGT08i
LAotICAgICAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIgotICAgICAgICAgIH0sIHsKLSAgICAg
ICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAg
XQotICAgICAgfSwKLQotCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdIVFRQIGNhY2hlIGludmFs
aWRhdGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBP
U1QnLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHRlbXBs
YXRlOiAibG9jYXRpb24iCi0gICAgICAgICAgfSwgewotICAgICAgICAgICAgcmVxdWVzdF9tZXRo
b2Q6ICJQT1NUIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIsCi0gICAgICAgICAg
ICB0ZW1wbGF0ZTogImxjbF9yZXNwb25zZSIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0
ZW1wbGF0ZTogImxvY2F0aW9uIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2Fj
aGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAg
bmFtZTogJ0hUVFAgY2FjaGUgZG9lcyBub3QgaW52YWxpZGF0ZSBMb2NhdGlvbiBVUkwgYWZ0ZXIg
YSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVxdWVzdCcsCi0gICAgICAgIHJlcXVl
c3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgdGVtcGxhdGU6ICJsb2NhdGlvbiIKLSAg
ICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImxjbF9yZXNwb25zZSIsCi0gICAg
ICAgICAgICByZXF1ZXN0X21ldGhvZDogIlBPU1QiLAotICAgICAgICAgICAgcmVxdWVzdF9ib2R5
OiAiYWJjIiwKLSAgICAgICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzUwMCwgIkludGVybmFsIFNl
cnZlciBFcnJvciJdCi0gICAgICAgICAgfSwgewotICAgICAgICAgICAgdGVtcGxhdGU6ICJsb2Nh
dGlvbiIsCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0K
LSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ0hUVFAgY2FjaGUg
aW52YWxpZGF0ZXMgTG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9t
IGEgUFVUJywKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICB0
ZW1wbGF0ZTogImxvY2F0aW9uIgotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIHRlbXBsYXRl
OiAibGNsX3Jlc3BvbnNlIiwKLSAgICAgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiUFVUIiwKLSAg
ICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAg
ICB0ZW1wbGF0ZTogImxvY2F0aW9uIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3Rf
Y2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAg
ICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgTG9jYXRpb24gVVJMIGFmdGVyIGEgc3Vj
Y2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgREVMRVRFJywKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAg
ICAgICAgICB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImxvY2F0aW9uIgotICAgICAgICAgIH0s
IHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNlIiwKLSAgICAgICAgICAgIHJl
cXVlc3RfbWV0aG9kOiAiREVMRVRFIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIK
LSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImxvY2F0aW9uIiwKLSAgICAg
ICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAg
XQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0
ZXMgTG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGFuIHVua25v
d24gbWV0aG9kJywKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAg
ICB0ZW1wbGF0ZTogImxvY2F0aW9uIgotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIHRlbXBs
YXRlOiAibGNsX3Jlc3BvbnNlIiwKLSAgICAgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiRk9PIiwK
LSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKLSAgICAgICAgICB9LCB7Ci0gICAgICAg
ICAgICB0ZW1wbGF0ZTogImxvY2F0aW9uIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJu
b3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLQotCi0KLSAgICAg
IHsKLSAgICAgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgQ29udGVudC1Mb2NhdGlv
biBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBQT1NUJywKLSAgICAgICAg
cmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImNvbnRlbnRf
bG9jYXRpb24iCi0gICAgICAgICAgfSwgewotICAgICAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJQ
T1NUIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIsCi0gICAgICAgICAgICB0ZW1w
bGF0ZTogImxjbF9yZXNwb25zZSIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0
ZTogImNvbnRlbnRfbG9jYXRpb24iLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9j
YWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAg
ICBuYW1lOiAnSFRUUCBjYWNoZSBkb2VzIG5vdCBpbnZhbGlkYXRlIENvbnRlbnQtTG9jYXRpb24g
VVJMIGFmdGVyIGEgZmFpbGVkIHJlc3BvbnNlIGZyb20gYW4gdW5zYWZlIHJlcXVlc3QnLAotICAg
ICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAiY29u
dGVudF9sb2NhdGlvbiIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImxj
bF9yZXNwb25zZSIsCi0gICAgICAgICAgICByZXF1ZXN0X21ldGhvZDogIlBPU1QiLAotICAgICAg
ICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIiwKLSAgICAgICAgICAgIHJlc3BvbnNlX3N0YXR1czog
WzUwMCwgIkludGVybmFsIFNlcnZlciBFcnJvciJdCi0gICAgICAgICAgfSwgewotICAgICAgICAg
ICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9uIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5
cGU6ICJjYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewot
ICAgICAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVS
TCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBVVCcsCi0gICAgICAgIHJlcXVl
c3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0
aW9uIgotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNl
IiwKLSAgICAgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiUFVUIiwKLSAgICAgICAgICAgIHJlcXVl
c3RfYm9keTogImFiYyIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImNv
bnRlbnRfbG9jYXRpb24iLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQi
Ci0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1l
OiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1
Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIERFTEVURScsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0g
ICAgICAgICAgewotICAgICAgICAgICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9uIgotICAg
ICAgICAgIH0sIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNlIiwKLSAgICAg
ICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiREVMRVRFIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9k
eTogImFiYyIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImNvbnRlbnRf
bG9jYXRpb24iLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAg
ICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnSFRU
UCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3Nm
dWwgcmVzcG9uc2UgZnJvbSBhbiB1bmtub3duIG1ldGhvZCcsCi0gICAgICAgIHJlcXVlc3RzOiBb
Ci0gICAgICAgICAgewotICAgICAgICAgICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9uIgot
ICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNlIiwKLSAg
ICAgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiRk9PIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9k
eTogImFiYyIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImNvbnRlbnRf
bG9jYXRpb24iLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAg
ICAgICAgfQotICAgICAgICBdCi0gICAgICB9Ci0KLSAgICBdOwotICAgIHJ1bl90ZXN0cyh0ZXN0
cyk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9w
YXJ0aWFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0aWFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNjE4NWI4M2FlYzVmZTBkNzg0MTM0M2YxYjUyZWU4N2FhY2Ex
OWM1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
cGFydGlhbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0KLVBB
U1MgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBjb250ZW50IGFuZCByZXVzZXMgaXQKLUZBSUwg
SFRUUCBjYWNoZSBzdG9yZXMgY29tcGxldGUgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJh
bmdlcyBmcm9tIGl0IChieXRlLXJhbmdlLXNwZWMpIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNl
IDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
IGJ1dCBnb3QgMgotRkFJTCBIVFRQIGNhY2hlIHN0b3JlcyBjb21wbGV0ZSByZXNwb25zZSBhbmQg
c2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGFic2VudCBsYXN0LWJ5dGUtcG9zKSBhc3Nl
cnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3Rl
ZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKLUZBSUwgSFRUUCBjYWNoZSBzdG9yZXMg
Y29tcGxldGUgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChzdWZm
aXgtYnl0ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90
IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIK
LUZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxs
ZXIgcmFuZ2VzIGZyb20gaXQgKGJ5dGUtcmFuZ2Utc3BlYykgYXNzZXJ0X2xlc3NfdGhhbjogUmVz
cG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIDIgYnV0IGdvdCAyCi1GQUlMIEhUVFAgY2FjaGUgc3RvcmVzIHBhcnRpYWwgcmVzcG9uc2Ug
YW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChhYnNlbnQgbGFzdC1ieXRlLXBvcykg
YXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCi1GQUlMIEhUVFAgY2FjaGUgc3Rv
cmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChz
dWZmaXgtYnl0ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMg
bm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290
IDIKLUZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBjb250ZW50IGFuZCBjb21wbGV0ZXMg
aXQgYXNzZXJ0X2VxdWFsczogcmVxdWVzdCAyIGhlYWRlciByYW5nZSB2YWx1ZSBpcyAidW5kZWZp
bmVkIiwgbm90ICJieXRlcz01LSIgZXhwZWN0ZWQgKHN0cmluZykgImJ5dGVzPTUtIiBidXQgZ290
ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlL3BhcnRpYWwuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTg1
YjgzYWVjNWZlMGQ3ODQxMzQzZjFiNTJlZTg3YWFjYTE5YzVmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNh
Y2hlL3BhcnRpYWwuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgSFRU
UCBjYWNoZSBzdG9yZXMgcGFydGlhbCBjb250ZW50IGFuZCByZXVzZXMgaXQKK0ZBSUwgSFRUUCBj
YWNoZSBzdG9yZXMgY29tcGxldGUgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBm
cm9tIGl0IChieXRlLXJhbmdlLXNwZWMpIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9l
cyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBn
b3QgMgorRkFJTCBIVFRQIGNhY2hlIHN0b3JlcyBjb21wbGV0ZSByZXNwb25zZSBhbmQgc2VydmVz
IHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGFic2VudCBsYXN0LWJ5dGUtcG9zKSBhc3NlcnRfbGVz
c190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgY29tcGxl
dGUgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChzdWZmaXgtYnl0
ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUg
ZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZBSUwg
SFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFu
Z2VzIGZyb20gaXQgKGJ5dGUtcmFuZ2Utc3BlYykgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2Ug
MiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIg
YnV0IGdvdCAyCitGQUlMIEhUVFAgY2FjaGUgc3RvcmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNl
cnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChhYnNlbnQgbGFzdC1ieXRlLXBvcykgYXNzZXJ0
X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitGQUlMIEhUVFAgY2FjaGUgc3RvcmVzIHBh
cnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChzdWZmaXgt
Ynl0ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNv
bWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZB
SUwgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBjb250ZW50IGFuZCBjb21wbGV0ZXMgaXQgYXNz
ZXJ0X2VxdWFsczogcmVxdWVzdCAyIGhlYWRlciByYW5nZSB2YWx1ZSBpcyAidW5kZWZpbmVkIiwg
bm90ICJieXRlcz01LSIgZXhwZWN0ZWQgKHN0cmluZykgImJ5dGVzPTUtIiBidXQgZ290ICh1bmRl
ZmluZWQpIHVuZGVmaW5lZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5hbnkuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNo
ZS9wYXJ0aWFsLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBh
NDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5hbnkuaHRtbApA
QCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3Qg
aW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5hbnkuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFy
dGlhbC5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc1YjgxMTVmNWNiNTRjZTYyZjlhZjQ0NTEwZmM1MWI2
OTgyNmI4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0aWFsLmFueS5qcwpAQCAtMCwwICsx
LDE4NyBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPUhU
VFAgQ2FjaGUgLSBQYXJ0aWFsIENvbnRlbnQKKy8vIE1FVEE6IHRpbWVvdXQ9bG9uZworLy8gTUVU
QTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL2dldC1o
b3N0LWluZm8uc3ViLmpzCisvLyBNRVRBOiBzY3JpcHQ9aHR0cC1jYWNoZS5qcworCit2YXIgdGVz
dHMgPSBbCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBjb250ZW50
IGFuZCByZXVzZXMgaXQiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlcXVl
c3RfaGVhZGVyczogWworICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9LTUiXQorICAgICAgICBd
LAorICAgICAgICByZXNwb25zZV9zdGF0dXM6IFsyMDYsICJQYXJ0aWFsIENvbnRlbnQiXSwKKyAg
ICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJt
YXgtYWdlPTM2MDAiXSwKKyAgICAgICAgICBbIkNvbnRlbnQtUmFuZ2UiLCAiYnl0ZXMgNC05LzEw
Il0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9uc2VfYm9keTogIjAxMjM0IiwKKyAgICAgICAg
ZXhwZWN0ZWRfcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJSYW5nZSIsICJieXRlcz0t
NSJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVy
czogWworICAgICAgICAgIFsiUmFuZ2UiLCAiYnl0ZXM9LTUiXQorICAgICAgICBdLAorICAgICAg
ICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIiwKKyAgICAgICAgZXhwZWN0ZWRfc3RhdHVzOiAyMDYs
CisgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX3RleHQ6ICIwMTIzNCIKKyAgICAgIH0KKyAgICBd
CisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBzdG9yZXMgY29tcGxldGUgcmVzcG9u
c2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChieXRlLXJhbmdlLXNwZWMpIiwK
KyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisg
ICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdCisgICAgICAgIF0sCisg
ICAgICAgIHJlc3BvbnNlX2JvZHk6ICIwMTIzNDU2Nzg5MCIKKyAgICAgIH0sCisgICAgICB7Cisg
ICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9MC0x
Il0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIsCisgICAgICAg
IGV4cGVjdGVkX3N0YXR1czogMjA2LAorICAgICAgICBleHBlY3RlZF9yZXNwb25zZV90ZXh0OiAi
MDEiCisgICAgICB9LAorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0
b3JlcyBjb21wbGV0ZSByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQg
KGFic2VudCBsYXN0LWJ5dGUtcG9zKSIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAg
ICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgt
YWdlPTM2MDAiXSwKKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9uc2VfYm9keTogIjAxMjM0NTY3
ODkwIgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAg
ICAgICAgWydSYW5nZScsICJieXRlcz0xLSJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVk
X3R5cGU6ICJjYWNoZWQiLAorICAgICAgICBleHBlY3RlZF9zdGF0dXM6IDIwNiwKKyAgICAgICAg
ZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogIjEyMzQ1Njc4OTAiCisgICAgICB9CisgICAgXQorICB9
LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgc3RvcmVzIGNvbXBsZXRlIHJlc3BvbnNlIGFu
ZCBzZXJ2ZXMgc21hbGxlciByYW5nZXMgZnJvbSBpdCAoc3VmZml4LWJ5dGUtcmFuZ2Utc3BlYyki
LAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsK
KyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCisgICAgICAgIF0s
CisgICAgICAgIHJlc3BvbnNlX2JvZHk6ICIwMTIzNDU2Nzg5QSIKKyAgICAgIH0sCisgICAgICB7
CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9
LTEiXQorICAgICAgICBdLAorICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIiwKKyAgICAg
ICAgZXhwZWN0ZWRfc3RhdHVzOiAyMDYsCisgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX3RleHQ6
ICJBIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0
b3JlcyBwYXJ0aWFsIHJlc3BvbnNlIGFuZCBzZXJ2ZXMgc21hbGxlciByYW5nZXMgZnJvbSBpdCAo
Ynl0ZS1yYW5nZS1zcGVjKSIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVx
dWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWydSYW5nZScsICJieXRlcz0tNSJdCisgICAgICAg
IF0sCisgICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzIwNiwgIlBhcnRpYWwgQ29udGVudCJdLAor
ICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwg
Im1heC1hZ2U9MzYwMCJdLAorICAgICAgICAgIFsiQ29udGVudC1SYW5nZSIsICJieXRlcyA0LTkv
MTAiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9ib2R5OiAiMDEyMzQiCisgICAgICB9
LAorICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbJ1Jhbmdl
JywgImJ5dGVzPTYtOCJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNo
ZWQiLAorICAgICAgICBleHBlY3RlZF9zdGF0dXM6IDIwNiwKKyAgICAgICAgZXhwZWN0ZWRfcmVz
cG9uc2VfdGV4dDogIjIzNCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAi
SFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFu
Z2VzIGZyb20gaXQgKGFic2VudCBsYXN0LWJ5dGUtcG9zKSIsCisgICAgcmVxdWVzdHM6IFsKKyAg
ICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWydSYW5nZScsICJi
eXRlcz0tNSJdCisgICAgICAgIF0sCisgICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzIwNiwgIlBh
cnRpYWwgQ29udGVudCJdLAorICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAg
WyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAorICAgICAgICAgIFsiQ29udGVudC1S
YW5nZSIsICJieXRlcyA0LTkvMTAiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9ib2R5
OiAiMDEyMzQiCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsK
KyAgICAgICAgICBbIlJhbmdlIiwgImJ5dGVzPTYtIl0KKyAgICAgICAgXSwKKyAgICAgICAgZXhw
ZWN0ZWRfdHlwZTogImNhY2hlZCIsCisgICAgICAgIGV4cGVjdGVkX3N0YXR1czogMjA2LAorICAg
ICAgICBleHBlY3RlZF9yZXNwb25zZV90ZXh0OiAiMjM0IgorICAgICAgfQorICAgIF0KKyAgfSwK
KyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0b3JlcyBwYXJ0aWFsIHJlc3BvbnNlIGFuZCBz
ZXJ2ZXMgc21hbGxlciByYW5nZXMgZnJvbSBpdCAoc3VmZml4LWJ5dGUtcmFuZ2Utc3BlYykiLAor
ICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAg
ICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9LTUiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25z
ZV9zdGF0dXM6IFsyMDYsICJQYXJ0aWFsIENvbnRlbnQiXSwKKyAgICAgICAgcmVzcG9uc2VfaGVh
ZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTM2MDAiXSwKKyAg
ICAgICAgICBbIkNvbnRlbnQtUmFuZ2UiLCAiYnl0ZXMgNC05LzEwIl0KKyAgICAgICAgXSwKKyAg
ICAgICAgcmVzcG9uc2VfYm9keTogIjAxMjM0IgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAg
cmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWydSYW5nZScsICJieXRlcz0tMSJdCisgICAg
ICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiLAorICAgICAgICBleHBlY3Rl
ZF9zdGF0dXM6IDIwNiwKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogIjQiCisgICAg
ICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgc3RvcmVzIHBhcnRp
YWwgY29udGVudCBhbmQgY29tcGxldGVzIGl0IiwKKyAgICByZXF1ZXN0czogWworICAgICAgewor
ICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbJ1JhbmdlJywgImJ5dGVzPS01
Il0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjA2LCAiUGFydGlhbCBD
b250ZW50Il0sCisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hl
LUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCisgICAgICAgICAgWyJDb250ZW50LVJhbmdlIiwg
ImJ5dGVzIDAtNC8xMCJdCisgICAgICAgIF0sCisgICAgICAgIHJlc3BvbnNlX2JvZHk6ICIwMTIz
NCIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGV4cGVjdGVkX3JlcXVlc3RfaGVhZGVyczog
WworICAgICAgICAgIFsicmFuZ2UiLCAiYnl0ZXM9NS0iXQorICAgICAgICBdCisgICAgICB9Cisg
ICAgXQorICB9LAorXTsKK3J1bl90ZXN0cyh0ZXN0cyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlh
bC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0aWFsLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYxODViODNhZWM1ZmUwZDc4NDEzNDNmMWI1MmVlODdhYWNhMTlj
NWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBjb250
ZW50IGFuZCByZXVzZXMgaXQKK0ZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgY29tcGxldGUgcmVzcG9u
c2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChieXRlLXJhbmdlLXNwZWMpIGFz
c2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgorRkFJTCBIVFRQIGNhY2hlIHN0b3Jl
cyBjb21wbGV0ZSByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGFi
c2VudCBsYXN0LWJ5dGUtcG9zKSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90
IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIK
K0ZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgY29tcGxldGUgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFs
bGVyIHJhbmdlcyBmcm9tIGl0IChzdWZmaXgtYnl0ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVzc190
aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBy
ZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGJ5dGUtcmFuZ2Utc3Bl
YykgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUg
ZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitGQUlMIEhUVFAgY2FjaGUg
c3RvcmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0
IChhYnNlbnQgbGFzdC1ieXRlLXBvcykgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2Vz
IG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdv
dCAyCitGQUlMIEhUVFAgY2FjaGUgc3RvcmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBz
bWFsbGVyIHJhbmdlcyBmcm9tIGl0IChzdWZmaXgtYnl0ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVz
c190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlh
bCBjb250ZW50IGFuZCBjb21wbGV0ZXMgaXQgYXNzZXJ0X2VxdWFsczogcmVxdWVzdCAyIGhlYWRl
ciByYW5nZSB2YWx1ZSBpcyAidW5kZWZpbmVkIiwgbm90ICJieXRlcz01LSIgZXhwZWN0ZWQgKHN0
cmluZykgImJ5dGVzPTUtIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvcGFydGlhbC5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5hbnkud29ya2Vy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhj
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0aWFsLmFueS53b3JrZXIuaHRtbApAQCAtMCww
ICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3BhcnRpYWwuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGYwYjUyOGU4Y2UzOTZjOTBhODdmYzc2
YjY0ZjkzMGU5OTcwMDA2OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvcGFydGlhbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTk4ICswLDAgQEAK
LTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLSAgICA8dGl0bGU+SFRUUCBDYWNoZSAtIFBhcnRpYWwgQ29udGVudDwvdGl0bGU+Ci0g
ICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcv
I3JlcXVlc3QiPgotICAgIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgotICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iaHR0cC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAg
PHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQ
IGNhY2hlIHN0b3JlcyBwYXJ0aWFsIGNvbnRlbnQgYW5kIHJldXNlcyBpdCIsCi0gICAgICAgIHJl
cXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0g
ICAgICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9LTUiXQotICAgICAgICAgICAgXSwKLSAgICAg
ICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzIwNiwgIlBhcnRpYWwgQ29udGVudCJdLAotICAgICAg
ICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wi
LCAibWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAgICAgIFsiQ29udGVudC1SYW5nZSIsICJieXRl
cyA0LTkvMTAiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2JvZHk6ICIw
MTIzNCIsCi0gICAgICAgICAgICBleHBlY3RlZF9yZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAg
ICAgICAgWyJSYW5nZSIsICJieXRlcz0tNSJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwK
LSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAg
ICAgWyJSYW5nZSIsICJieXRlcz0tNSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhw
ZWN0ZWRfdHlwZTogImNhY2hlZCIsCi0gICAgICAgICAgICBleHBlY3RlZF9zdGF0dXM6IDIwNiwK
LSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX3RleHQ6ICIwMTIzNCIKLSAgICAgICAgICB9
Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hl
IHN0b3JlcyBjb21wbGV0ZSByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20g
aXQgKGJ5dGUtcmFuZ2Utc3BlYykiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsK
LSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1D
b250cm9sIiwgIm1heC1hZ2U9MzYwMCJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVz
cG9uc2VfYm9keTogIjAxMjM0NTY3ODkwIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAg
ICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0
ZXM9MC0xIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2Fj
aGVkIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3N0YXR1czogMjA2LAotICAgICAgICAgICAgZXhw
ZWN0ZWRfcmVzcG9uc2VfdGV4dDogIjAxIgotICAgICAgICAgIH0sCi0gICAgICAgIF0KLSAgICAg
IH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0b3JlcyBjb21wbGV0ZSBy
ZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGFic2VudCBsYXN0LWJ5
dGUtcG9zKSIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAg
cmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4
LWFnZT0zNjAwIl0sCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2VfYm9keTog
IjAxMjM0NTY3ODkwIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVx
dWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9MS0iXQotICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiLAotICAgICAg
ICAgICAgZXhwZWN0ZWRfc3RhdHVzOiAyMDYsCi0gICAgICAgICAgICBleHBlY3RlZF9yZXNwb25z
ZV90ZXh0OiAiMTIzNDU2Nzg5MCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0g
ICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0b3JlcyBjb21wbGV0ZSByZXNwb25z
ZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKHN1ZmZpeC1ieXRlLXJhbmdlLXNw
ZWMpIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNw
b25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdl
PTM2MDAiXSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25zZV9ib2R5OiAiMDEy
MzQ1Njc4OUEiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0
X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWydSYW5nZScsICJieXRlcz0tMSJdCi0gICAgICAg
ICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIsCi0gICAgICAgICAg
ICBleHBlY3RlZF9zdGF0dXM6IDIwNiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX3Rl
eHQ6ICJBIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAg
ICAgbmFtZTogIkhUVFAgY2FjaGUgc3RvcmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBz
bWFsbGVyIHJhbmdlcyBmcm9tIGl0IChieXRlLXJhbmdlLXNwZWMpIiwKLSAgICAgICAgcmVxdWVz
dHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAg
ICAgICAgICAgWydSYW5nZScsICJieXRlcz0tNSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAg
ICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjA2LCAiUGFydGlhbCBDb250ZW50Il0sCi0gICAgICAgICAg
ICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJt
YXgtYWdlPTM2MDAiXSwKLSAgICAgICAgICAgICAgWyJDb250ZW50LVJhbmdlIiwgImJ5dGVzIDQt
OS8xMCJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2VfYm9keTogIjAxMjM0
IgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJz
OiBbCi0gICAgICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9Ni04Il0KLSAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIiwKLSAgICAgICAgICAgIGV4cGVj
dGVkX3N0YXR1czogMjA2LAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogIjIz
NCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5h
bWU6ICJIVFRQIGNhY2hlIHN0b3JlcyBwYXJ0aWFsIHJlc3BvbnNlIGFuZCBzZXJ2ZXMgc21hbGxl
ciByYW5nZXMgZnJvbSBpdCAoYWJzZW50IGxhc3QtYnl0ZS1wb3MpIiwKLSAgICAgICAgcmVxdWVz
dHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAg
ICAgICAgICAgWydSYW5nZScsICJieXRlcz0tNSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAg
ICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjA2LCAiUGFydGlhbCBDb250ZW50Il0sCi0gICAgICAgICAg
ICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJt
YXgtYWdlPTM2MDAiXSwKLSAgICAgICAgICAgICAgWyJDb250ZW50LVJhbmdlIiwgImJ5dGVzIDQt
OS8xMCJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2VfYm9keTogIjAxMjM0
IgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJz
OiBbCi0gICAgICAgICAgICAgIFsiUmFuZ2UiLCAiYnl0ZXM9Ni0iXQotICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiLAotICAgICAgICAgICAgZXhwZWN0
ZWRfc3RhdHVzOiAyMDYsCi0gICAgICAgICAgICBleHBlY3RlZF9yZXNwb25zZV90ZXh0OiAiMjM0
IgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFt
ZTogIkhUVFAgY2FjaGUgc3RvcmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVy
IHJhbmdlcyBmcm9tIGl0IChzdWZmaXgtYnl0ZS1yYW5nZS1zcGVjKSIsCi0gICAgICAgIHJlcXVl
c3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAg
ICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9LTUiXQotICAgICAgICAgICAgXSwKLSAgICAgICAg
ICAgIHJlc3BvbnNlX3N0YXR1czogWzIwNiwgIlBhcnRpYWwgQ29udGVudCJdLAotICAgICAgICAg
ICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAi
bWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAgICAgIFsiQ29udGVudC1SYW5nZSIsICJieXRlcyA0
LTkvMTAiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2JvZHk6ICIwMTIz
NCIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVy
czogWwotICAgICAgICAgICAgICBbJ1JhbmdlJywgImJ5dGVzPS0xIl0KLSAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIiwKLSAgICAgICAgICAgIGV4cGVj
dGVkX3N0YXR1czogMjA2LAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogIjQi
Ci0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1l
OiAiSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBjb250ZW50IGFuZCBjb21wbGV0ZXMgaXQiLAot
ICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVh
ZGVyczogWwotICAgICAgICAgICAgICBbJ1JhbmdlJywgImJ5dGVzPS01Il0KLSAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICByZXNwb25zZV9zdGF0dXM6IFsyMDYsICJQYXJ0aWFsIENvbnRlbnQi
XSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNo
ZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAotICAgICAgICAgICAgICBbIkNvbnRlbnQtUmFu
Z2UiLCAiYnl0ZXMgMC00LzEwIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25z
ZV9ib2R5OiAiMDEyMzQiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBl
eHBlY3RlZF9yZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJyYW5nZSIsICJieXRl
cz01LSJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAot
ICAgIF07Ci0gICAgcnVuX3Rlc3RzKHRlc3RzKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bv
c3QtcGF0Y2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Y2Jj
NzVhYzk1Y2E0ZjA0NWU4ZTMzMGNlMDBlZTQ1YjkyOWVhMzg3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNoLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1GQUlMIEhUVFAgY2FjaGUgdXNlcyBjb250
ZW50IGFmdGVyIFBBVENIIHJlcXVlc3Qgd2l0aCByZXNwb25zZSBjb250YWluaW5nIENvbnRlbnQt
TG9jYXRpb24gYW5kIGNhY2hlLWFsbG93aW5nIGhlYWRlciBhc3NlcnRfbGVzc190aGFuOiBSZXNw
b25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gMiBidXQgZ290IDIKLUZBSUwgSFRUUCBjYWNoZSB1c2VzIGNvbnRlbnQgYWZ0ZXIgUE9TVCBy
ZXF1ZXN0IHdpdGggcmVzcG9uc2UgY29udGFpbmluZyBDb250ZW50LUxvY2F0aW9uIGFuZCBjYWNo
ZS1hbGxvd2luZyBoZWFkZXIgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBj
b21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNoLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcG9zdC1w
YXRjaC5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYmM3NWFjOTVjYTRmMDQ1ZThlMzMw
Y2UwMGVlNDViOTI5ZWEzODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcG9zdC1wYXRjaC5hbnkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitGQUlMIEhUVFAgY2FjaGUgdXNlcyBjb250
ZW50IGFmdGVyIFBBVENIIHJlcXVlc3Qgd2l0aCByZXNwb25zZSBjb250YWluaW5nIENvbnRlbnQt
TG9jYXRpb24gYW5kIGNhY2hlLWFsbG93aW5nIGhlYWRlciBhc3NlcnRfbGVzc190aGFuOiBSZXNw
b25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gMiBidXQgZ290IDIKK0ZBSUwgSFRUUCBjYWNoZSB1c2VzIGNvbnRlbnQgYWZ0ZXIgUE9TVCBy
ZXF1ZXN0IHdpdGggcmVzcG9uc2UgY29udGFpbmluZyBDb250ZW50LUxvY2F0aW9uIGFuZCBjYWNo
ZS1hbGxvd2luZyBoZWFkZXIgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBj
b21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNoLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guYW55
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhj
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNoLmFueS5odG1sCkBAIC0wLDAgKzEg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVj
dHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNoLmFueS5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNo
LmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wYTY5YmFhNWM2NjQ2YzUzMzk3NjE4YThmNjgxMGJhN2Y3MDNl
ZjkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guYW55LmpzCkBAIC0wLDAgKzEs
NDYgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1IVFRQ
IENhY2hlIC0gQ2FjaGluZyBQT1NUIGFuZCBQQVRDSCByZXNwb25zZXMKKy8vIE1FVEE6IHRpbWVv
dXQ9bG9uZworLy8gTUVUQTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKKy8vIE1FVEE6IHNjcmlw
dD0vY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzCisvLyBNRVRBOiBzY3JpcHQ9aHR0cC1jYWNo
ZS5qcworCit2YXIgdGVzdHMgPSBbCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSB1c2VzIGNv
bnRlbnQgYWZ0ZXIgUEFUQ0ggcmVxdWVzdCB3aXRoIHJlc3BvbnNlIGNvbnRhaW5pbmcgQ29udGVu
dC1Mb2NhdGlvbiBhbmQgY2FjaGUtYWxsb3dpbmcgaGVhZGVyIiwKKyAgICByZXF1ZXN0czogWwor
ICAgICAgeworICAgICAgICByZXF1ZXN0X21ldGhvZDogIlBBVENIIiwKKyAgICAgICAgcmVxdWVz
dF9ib2R5OiAiYWJjIiwKKyAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjAwLCAiT0siXSwKKyAg
ICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsnQ2FjaGUtQ29udHJvbCcsICJw
cml2YXRlLCBtYXgtYWdlPTEwMDAiXSwKKyAgICAgICAgICBbJ0NvbnRlbnQtTG9jYXRpb24nLCAi
Il0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9uc2VfYm9keTogImFiYyIKKyAgICAgIH0sCisg
ICAgICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiCisgICAgICB9CisgICAgXQor
ICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgdXNlcyBjb250ZW50IGFmdGVyIFBPU1Qg
cmVxdWVzdCB3aXRoIHJlc3BvbnNlIGNvbnRhaW5pbmcgQ29udGVudC1Mb2NhdGlvbiBhbmQgY2Fj
aGUtYWxsb3dpbmcgaGVhZGVyIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICBy
ZXF1ZXN0X21ldGhvZDogIlBPU1QiLAorICAgICAgICByZXF1ZXN0X2JvZHk6ICJhYmMiLAorICAg
ICAgICByZXNwb25zZV9zdGF0dXM6IFsyMDAsICJPSyJdLAorICAgICAgICByZXNwb25zZV9oZWFk
ZXJzOiBbCisgICAgICAgICAgWydDYWNoZS1Db250cm9sJywgInByaXZhdGUsIG1heC1hZ2U9MTAw
MCJdLAorICAgICAgICAgIFsnQ29udGVudC1Mb2NhdGlvbicsICIiXQorICAgICAgICBdLAorICAg
ICAgICByZXNwb25zZV9ib2R5OiAiYWJjIgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZXhw
ZWN0ZWRfdHlwZTogImNhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0KK107CitydW5fdGVzdHMo
dGVzdHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guYW55Lndvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvcG9zdC1wYXRjaC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
Y2JjNzVhYzk1Y2E0ZjA0NWU4ZTMzMGNlMDBlZTQ1YjkyOWVhMzg3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL3Bvc3QtcGF0Y2guYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CisKK0ZBSUwgSFRUUCBjYWNoZSB1c2VzIGNvbnRlbnQgYWZ0ZXIgUEFUQ0ggcmVxdWVzdCB3aXRo
IHJlc3BvbnNlIGNvbnRhaW5pbmcgQ29udGVudC1Mb2NhdGlvbiBhbmQgY2FjaGUtYWxsb3dpbmcg
aGVhZGVyIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNh
Y2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgorRkFJTCBIVFRQIGNh
Y2hlIHVzZXMgY29udGVudCBhZnRlciBQT1NUIHJlcXVlc3Qgd2l0aCByZXNwb25zZSBjb250YWlu
aW5nIENvbnRlbnQtTG9jYXRpb24gYW5kIGNhY2hlLWFsbG93aW5nIGhlYWRlciBhc3NlcnRfbGVz
c190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2gu
YW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guYW55Lndvcmtlci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvcG9zdC1wYXRjaC5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRv
IHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNoLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwMjVhOTZlNGUzNTAzODMwZDNkZjY5ZTZlMDAz
NWUzMjE3ZGYxZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL3Bvc3QtcGF0Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLTwh
ZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KLSAgICA8dGl0bGU+SFRUUCBDYWNoZSAtIENhY2hpbmcgUE9TVCBhbmQgUEFUQ0ggcmVzcG9u
c2VzPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNw
ZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+Ci0gICAgPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJodHRwLWNhY2hlLmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgot
ICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgIHZhciB0ZXN0cyA9IFsKLSAgICAgIHsKLSAgICAg
ICAgbmFtZTogIkhUVFAgY2FjaGUgdXNlcyBjb250ZW50IGFmdGVyIFBBVENIIHJlcXVlc3Qgd2l0
aCByZXNwb25zZSBjb250YWluaW5nIENvbnRlbnQtTG9jYXRpb24gYW5kIGNhY2hlLWFsbG93aW5n
IGhlYWRlciIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAg
cmVxdWVzdF9tZXRob2Q6ICJQQVRDSCIsCi0gICAgICAgICAgICByZXF1ZXN0X2JvZHk6ICJhYmMi
LAotICAgICAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjAwLCAiT0siXSwKLSAgICAgICAgICAg
IHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWydDYWNoZS1Db250cm9sJywgInBy
aXZhdGUsIG1heC1hZ2U9MTAwMCJdLAotICAgICAgICAgICAgICBbJ0NvbnRlbnQtTG9jYXRpb24n
LCAiIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25zZV9ib2R5OiAiYWJjIgot
ICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNh
Y2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAg
IG5hbWU6ICJIVFRQIGNhY2hlIHVzZXMgY29udGVudCBhZnRlciBQT1NUIHJlcXVlc3Qgd2l0aCBy
ZXNwb25zZSBjb250YWluaW5nIENvbnRlbnQtTG9jYXRpb24gYW5kIGNhY2hlLWFsbG93aW5nIGhl
YWRlciIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVx
dWVzdF9tZXRob2Q6ICJQT1NUIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIsCi0g
ICAgICAgICAgICByZXNwb25zZV9zdGF0dXM6IFsyMDAsICJPSyJdLAotICAgICAgICAgICAgcmVz
cG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbJ0NhY2hlLUNvbnRyb2wnLCAicHJpdmF0
ZSwgbWF4LWFnZT0xMDAwIl0sCi0gICAgICAgICAgICAgIFsnQ29udGVudC1Mb2NhdGlvbicsICIi
XQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2JvZHk6ICJhYmMiCi0gICAg
ICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVk
IgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF07Ci0gICAgcnVuX3Rlc3Rz
KHRlc3RzKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNh
Y2hlL3Jlc291cmNlcy9odHRwLWNhY2hlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Jlc291cmNlcy9odHRwLWNhY2hlLnB5
CmluZGV4IDM1MWIyZWIzYzllZWMwMDZkODk3NmRjNWZhZDFmNmRiOTkwY2Q3MzMuLmMxNzZiMjU1
YTNmMjU2NzM4ZDUxNGUzNzkwNWVkNzczNzM5ODZiMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9yZXNvdXJj
ZXMvaHR0cC1jYWNoZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcmVzb3VyY2VzL2h0dHAtY2FjaGUucHkKQEAgLTUs
OTggKzUsMTAwIEBAIGltcG9ydCBqc29uCiBpbXBvcnQgdGltZQogZnJvbSBiYXNlNjQgaW1wb3J0
IGI2NGRlY29kZQogCi1OT1RFSERSUyA9IHNldChbJ2NvbnRlbnQtdHlwZScsICdhY2Nlc3MtY29u
dHJvbC1hbGxvdy1vcmlnaW4nLCAnbGFzdC1tb2RpZmllZCcsICdldGFnJ10pCitmcm9tIHdwdHNl
cnZlLnV0aWxzIGltcG9ydCBpc29tb3JwaGljX2RlY29kZSwgaXNvbW9ycGhpY19lbmNvZGUKKwor
Tk9URUhEUlMgPSBzZXQoW3UnY29udGVudC10eXBlJywgdSdhY2Nlc3MtY29udHJvbC1hbGxvdy1v
cmlnaW4nLCB1J2xhc3QtbW9kaWZpZWQnLCB1J2V0YWcnXSkKIE5PQk9EWVNUQVRVUyA9IHNldChb
MjA0LCAzMDRdKQotTE9DQVRJT05IRFJTID0gc2V0KFsnbG9jYXRpb24nLCAnY29udGVudC1sb2Nh
dGlvbiddKQotREFURUhEUlMgPSBzZXQoWydkYXRlJywgJ2V4cGlyZXMnLCAnbGFzdC1tb2RpZmll
ZCddKQorTE9DQVRJT05IRFJTID0gc2V0KFt1J2xvY2F0aW9uJywgdSdjb250ZW50LWxvY2F0aW9u
J10pCitEQVRFSERSUyA9IHNldChbdSdkYXRlJywgdSdleHBpcmVzJywgdSdsYXN0LW1vZGlmaWVk
J10pCiAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBkaXNwYXRjaCA9IHJlcXVl
c3QuR0VULmZpcnN0KCJkaXNwYXRjaCIsIE5vbmUpCi0gICAgdXVpZCA9IHJlcXVlc3QuR0VULmZp
cnN0KCJ1dWlkIiwgTm9uZSkKKyAgICBkaXNwYXRjaCA9IHJlcXVlc3QuR0VULmZpcnN0KGIiZGlz
cGF0Y2giLCBOb25lKQorICAgIHV1aWQgPSByZXF1ZXN0LkdFVC5maXJzdChiInV1aWQiLCBOb25l
KQogCi0gICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gIk9QVElPTlMiOgorICAgIGlmIHJlcXVlc3Qu
bWV0aG9kID09IHUiT1BUSU9OUyI6CiAgICAgICAgIHJldHVybiBoYW5kbGVfcHJlZmxpZ2h0KHV1
aWQsIHJlcXVlc3QsIHJlc3BvbnNlKQogICAgIGlmIG5vdCB1dWlkOgotICAgICAgICByZXNwb25z
ZS5zdGF0dXMgPSAoNDA0LCAiTm90IEZvdW5kIikKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5z
ZXQoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIikKLSAgICAgICAgcmV0dXJuICJVVUlEIG5v
dCBmb3VuZCIKLSAgICBpZiBkaXNwYXRjaCA9PSAndGVzdCc6CisgICAgICAgIHJlc3BvbnNlLnN0
YXR1cyA9ICg0MDQsIGIiTm90IEZvdW5kIikKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQo
YiJDb250ZW50LVR5cGUiLCBiInRleHQvcGxhaW4iKQorICAgICAgICByZXR1cm4gYiJVVUlEIG5v
dCBmb3VuZCIKKyAgICBpZiBkaXNwYXRjaCA9PSBiJ3Rlc3QnOgogICAgICAgICByZXR1cm4gaGFu
ZGxlX3Rlc3QodXVpZCwgcmVxdWVzdCwgcmVzcG9uc2UpCi0gICAgZWxpZiBkaXNwYXRjaCA9PSAn
c3RhdGUnOgorICAgIGVsaWYgZGlzcGF0Y2ggPT0gYidzdGF0ZSc6CiAgICAgICAgIHJldHVybiBo
YW5kbGVfc3RhdGUodXVpZCwgcmVxdWVzdCwgcmVzcG9uc2UpCi0gICAgcmVzcG9uc2Uuc3RhdHVz
ID0gKDQwNCwgIk5vdCBGb3VuZCIpCi0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQt
VHlwZSIsICJ0ZXh0L3BsYWluIikKLSAgICByZXR1cm4gIkZhbGx0aHJvdWdoIgorICAgIHJlc3Bv
bnNlLnN0YXR1cyA9ICg0MDQsIGIiTm90IEZvdW5kIikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNl
dChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9wbGFpbiIpCisgICAgcmV0dXJuIGIiRmFsbHRocm91
Z2giCiAKIGRlZiBoYW5kbGVfcHJlZmxpZ2h0KHV1aWQsIHJlcXVlc3QsIHJlc3BvbnNlKToKLSAg
ICByZXNwb25zZS5zdGF0dXMgPSAoMjAwLCAiT0siKQotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAiKiIpCi0gICAgcmVzcG9uc2UuaGVhZGVy
cy5zZXQoIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCAiR0VUIikKLSAgICByZXNwb25z
ZS5oZWFkZXJzLnNldCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsICIqIikKLSAgICBy
ZXNwb25zZS5oZWFkZXJzLnNldCgiQWNjZXNzLUNvbnRyb2wtTWF4LUFnZSIsICI4NjQwMCIpCi0g
ICAgcmV0dXJuICJQcmVmbGlnaHQgcmVxdWVzdCIKKyAgICByZXNwb25zZS5zdGF0dXMgPSAoMjAw
LCBiIk9LIikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbiIsIGIiKiIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJBY2Nlc3MtQ29udHJv
bC1BbGxvdy1NZXRob2RzIiwgYiJHRVQiKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIGIiKiIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5z
ZXQoYiJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlIiwgYiI4NjQwMCIpCisgICAgcmV0dXJuIGIiUHJl
ZmxpZ2h0IHJlcXVlc3QiCiAKIGRlZiBoYW5kbGVfc3RhdGUodXVpZCwgcmVxdWVzdCwgcmVzcG9u
c2UpOgotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFp
biIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQvcGxh
aW4iKQogICAgIHJldHVybiBqc29uLmR1bXBzKHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UodXVp
ZCkpCiAKIGRlZiBoYW5kbGVfdGVzdCh1dWlkLCByZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgc2Vy
dmVyX3N0YXRlID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZSh1dWlkKSBvciBbXQogICAgIHRy
eToKLSAgICAgICAgcmVxdWVzdHMgPSBqc29uLmxvYWRzKGI2NGRlY29kZShyZXF1ZXN0LmhlYWRl
cnMuZ2V0KCdUZXN0LVJlcXVlc3RzJywgIiIpKSkKKyAgICAgICAgcmVxdWVzdHMgPSBqc29uLmxv
YWRzKGI2NGRlY29kZShyZXF1ZXN0LmhlYWRlcnMuZ2V0KGInVGVzdC1SZXF1ZXN0cycsIGIiIikp
KQogICAgIGV4Y2VwdDoKLSAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gKDQwMCwgIkJhZCBSZXF1
ZXN0IikKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0
L3BsYWluIikKLSAgICAgICAgcmV0dXJuICJObyBvciBiYWQgVGVzdC1SZXF1ZXN0cyByZXF1ZXN0
IGhlYWRlciIKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gKDQwMCwgYiJCYWQgUmVxdWVzdCIp
CisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L3Bs
YWluIikKKyAgICAgICAgcmV0dXJuIGIiTm8gb3IgYmFkIFRlc3QtUmVxdWVzdHMgcmVxdWVzdCBo
ZWFkZXIiCiAgICAgY29uZmlnID0gcmVxdWVzdHNbbGVuKHNlcnZlcl9zdGF0ZSldCiAgICAgaWYg
bm90IGNvbmZpZzoKLSAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gKDQwNCwgIk5vdCBGb3VuZCIp
Ci0gICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFp
biIpCi0gICAgICAgIHJldHVybiAiQ29uZmlnIG5vdCBmb3VuZCIKKyAgICAgICAgcmVzcG9uc2Uu
c3RhdHVzID0gKDQwNCwgYiJOb3QgRm91bmQiKQorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNl
dChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9wbGFpbiIpCisgICAgICAgIHJldHVybiBiIkNvbmZp
ZyBub3QgZm91bmQiCiAgICAgbm90ZWRfaGVhZGVycyA9IHt9CiAgICAgbm93ID0gdGltZS50aW1l
KCkKLSAgICBmb3IgaGVhZGVyIGluIGNvbmZpZy5nZXQoJ3Jlc3BvbnNlX2hlYWRlcnMnLCBbXSk6
CisgICAgZm9yIGhlYWRlciBpbiBjb25maWcuZ2V0KHUncmVzcG9uc2VfaGVhZGVycycsIFtdKToK
ICAgICAgICAgaWYgaGVhZGVyWzBdLmxvd2VyKCkgaW4gTE9DQVRJT05IRFJTOiAjIG1hZ2ljIGxv
Y2F0aW9ucwogICAgICAgICAgICAgaWYgKGxlbihoZWFkZXJbMV0pID4gMCk6Ci0gICAgICAgICAg
ICAgICAgaGVhZGVyWzFdID0gIiVzJnRhcmdldD0lcyIgJSAocmVxdWVzdC51cmwsIGhlYWRlclsx
XSkKKyAgICAgICAgICAgICAgICBoZWFkZXJbMV0gPSB1IiVzJnRhcmdldD0lcyIgJSAocmVxdWVz
dC51cmwsIGhlYWRlclsxXSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgaGVh
ZGVyWzFdID0gcmVxdWVzdC51cmwKICAgICAgICAgaWYgaGVhZGVyWzBdLmxvd2VyKCkgaW4gREFU
RUhEUlMgYW5kIGlzaW5zdGFuY2UoaGVhZGVyWzFdLCBpbnQpOiAgIyBtYWdpYyBkYXRlcwogICAg
ICAgICAgICAgaGVhZGVyWzFdID0gaHR0cF9kYXRlKG5vdywgaGVhZGVyWzFdKQotICAgICAgICBy
ZXNwb25zZS5oZWFkZXJzLnNldChoZWFkZXJbMF0sIGhlYWRlclsxXSkKKyAgICAgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoaXNvbW9ycGhpY19lbmNvZGUoaGVhZGVyWzBdKSwgaXNvbW9ycGhpY19l
bmNvZGUoaGVhZGVyWzFdKSkKICAgICAgICAgaWYgaGVhZGVyWzBdLmxvd2VyKCkgaW4gTk9URUhE
UlM6CiAgICAgICAgICAgICBub3RlZF9oZWFkZXJzW2hlYWRlclswXS5sb3dlcigpXSA9IGhlYWRl
clsxXQogICAgIHN0YXRlID0gewotICAgICAgICAnbm93Jzogbm93LAotICAgICAgICAncmVxdWVz
dF9tZXRob2QnOiByZXF1ZXN0Lm1ldGhvZCwKLSAgICAgICAgJ3JlcXVlc3RfaGVhZGVycyc6IGRp
Y3QoW1toLmxvd2VyKCksIHJlcXVlc3QuaGVhZGVyc1toXV0gZm9yIGggaW4gcmVxdWVzdC5oZWFk
ZXJzXSksCi0gICAgICAgICdyZXNwb25zZV9oZWFkZXJzJzogbm90ZWRfaGVhZGVycworICAgICAg
ICB1J25vdyc6IG5vdywKKyAgICAgICAgdSdyZXF1ZXN0X21ldGhvZCc6IHJlcXVlc3QubWV0aG9k
LAorICAgICAgICB1J3JlcXVlc3RfaGVhZGVycyc6IGRpY3QoW1tpc29tb3JwaGljX2RlY29kZSho
Lmxvd2VyKCkpLCBpc29tb3JwaGljX2RlY29kZShyZXF1ZXN0LmhlYWRlcnNbaF0pXSBmb3IgaCBp
biByZXF1ZXN0LmhlYWRlcnNdKSwKKyAgICAgICAgdSdyZXNwb25zZV9oZWFkZXJzJzogbm90ZWRf
aGVhZGVycwogICAgIH0KICAgICBzZXJ2ZXJfc3RhdGUuYXBwZW5kKHN0YXRlKQogICAgIHJlcXVl
c3Quc2VydmVyLnN0YXNoLnB1dCh1dWlkLCBzZXJ2ZXJfc3RhdGUpCiAKLSAgICBpZiAiYWNjZXNz
LWNvbnRyb2wtYWxsb3ctb3JpZ2luIiBub3QgaW4gbm90ZWRfaGVhZGVyczoKLSAgICAgICAgcmVz
cG9uc2UuaGVhZGVycy5zZXQoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIikKLSAg
ICBpZiAiY29udGVudC10eXBlIiBub3QgaW4gbm90ZWRfaGVhZGVyczoKLSAgICAgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIikKLSAgICByZXNwb25z
ZS5oZWFkZXJzLnNldCgiU2VydmVyLVJlcXVlc3QtQ291bnQiLCBsZW4oc2VydmVyX3N0YXRlKSkK
KyAgICBpZiB1ImFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbiIgbm90IGluIG5vdGVkX2hlYWRl
cnM6CisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luIiwgYiIqIikKKyAgICBpZiB1ImNvbnRlbnQtdHlwZSIgbm90IGluIG5vdGVkX2hlYWRl
cnM6CisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0
L3BsYWluIikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIlNlcnZlci1SZXF1ZXN0LUNvdW50
IiwgbGVuKHNlcnZlcl9zdGF0ZSkpCiAKLSAgICBjb2RlLCBwaHJhc2UgPSBjb25maWcuZ2V0KCJy
ZXNwb25zZV9zdGF0dXMiLCBbMjAwLCAiT0siXSkKLSAgICBpZiBjb25maWcuZ2V0KCJleHBlY3Rl
ZF90eXBlIiwgIiIpLmVuZHN3aXRoKCd2YWxpZGF0ZWQnKToKLSAgICAgICAgcmVmX2hkcnMgPSBz
ZXJ2ZXJfc3RhdGVbMF1bJ3Jlc3BvbnNlX2hlYWRlcnMnXQotICAgICAgICBwcmV2aW91c19sbSA9
IHJlZl9oZHJzLmdldCgnbGFzdC1tb2RpZmllZCcsIEZhbHNlKQotICAgICAgICBpZiBwcmV2aW91
c19sbSBhbmQgcmVxdWVzdC5oZWFkZXJzLmdldCgiSWYtTW9kaWZpZWQtU2luY2UiLCBGYWxzZSkg
PT0gcHJldmlvdXNfbG06Ci0gICAgICAgICAgICBjb2RlLCBwaHJhc2UgPSBbMzA0LCAiTm90IE1v
ZGlmaWVkIl0KLSAgICAgICAgcHJldmlvdXNfZXRhZyA9IHJlZl9oZHJzLmdldCgnZXRhZycsIEZh
bHNlKQotICAgICAgICBpZiBwcmV2aW91c19ldGFnIGFuZCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJJ
Zi1Ob25lLU1hdGNoIiwgRmFsc2UpID09IHByZXZpb3VzX2V0YWc6Ci0gICAgICAgICAgICBjb2Rl
LCBwaHJhc2UgPSBbMzA0LCAiTm90IE1vZGlmaWVkIl0KKyAgICBjb2RlLCBwaHJhc2UgPSBjb25m
aWcuZ2V0KHUicmVzcG9uc2Vfc3RhdHVzIiwgWzIwMCwgYiJPSyJdKQorICAgIGlmIGNvbmZpZy5n
ZXQodSJleHBlY3RlZF90eXBlIiwgdSIiKS5lbmRzd2l0aCh1J3ZhbGlkYXRlZCcpOgorICAgICAg
ICByZWZfaGRycyA9IHNlcnZlcl9zdGF0ZVswXVt1J3Jlc3BvbnNlX2hlYWRlcnMnXQorICAgICAg
ICBwcmV2aW91c19sbSA9IHJlZl9oZHJzLmdldCh1J2xhc3QtbW9kaWZpZWQnLCBGYWxzZSkKKyAg
ICAgICAgaWYgcHJldmlvdXNfbG0gYW5kIHJlcXVlc3QuaGVhZGVycy5nZXQoYiJJZi1Nb2RpZmll
ZC1TaW5jZSIsIEZhbHNlKSA9PSBpc29tb3JwaGljX2VuY29kZShwcmV2aW91c19sbSk6CisgICAg
ICAgICAgICBjb2RlLCBwaHJhc2UgPSBbMzA0LCBiIk5vdCBNb2RpZmllZCJdCisgICAgICAgIHBy
ZXZpb3VzX2V0YWcgPSByZWZfaGRycy5nZXQodSdldGFnJywgRmFsc2UpCisgICAgICAgIGlmIHBy
ZXZpb3VzX2V0YWcgYW5kIHJlcXVlc3QuaGVhZGVycy5nZXQoYiJJZi1Ob25lLU1hdGNoIiwgRmFs
c2UpID09IGlzb21vcnBoaWNfZW5jb2RlKHByZXZpb3VzX2V0YWcpOgorICAgICAgICAgICAgY29k
ZSwgcGhyYXNlID0gWzMwNCwgYiJOb3QgTW9kaWZpZWQiXQogICAgICAgICBpZiBjb2RlICE9IDMw
NDoKLSAgICAgICAgICAgIGNvZGUsIHBocmFzZSA9IFs5OTksICczMDQgTm90IEdlbmVyYXRlZCdd
CisgICAgICAgICAgICBjb2RlLCBwaHJhc2UgPSBbOTk5LCBiJzMwNCBOb3QgR2VuZXJhdGVkJ10K
ICAgICByZXNwb25zZS5zdGF0dXMgPSAoY29kZSwgcGhyYXNlKQogCi0gICAgY29udGVudCA9IGNv
bmZpZy5nZXQoInJlc3BvbnNlX2JvZHkiLCB1dWlkKQorICAgIGNvbnRlbnQgPSBjb25maWcuZ2V0
KHUicmVzcG9uc2VfYm9keSIsIHV1aWQpCiAgICAgaWYgY29kZSBpbiBOT0JPRFlTVEFUVVM6Ci0g
ICAgICAgIHJldHVybiAiIgorICAgICAgICByZXR1cm4gYiIiCiAgICAgcmV0dXJuIGNvbnRlbnQK
IAogCkBAIC0xMDcsMTMgKzEwOSwxMyBAQCBkZWYgZ2V0X2hlYWRlcihoZWFkZXJzLCBoZWFkZXJf
bmFtZSk6CiAgICAgICAgICAgICByZXN1bHQgPSBoZWFkZXJbMV0KICAgICByZXR1cm4gcmVzdWx0
CiAKLVdFRUtEQVlTID0gWydNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcs
ICdTdW4nXQotTU9OVEhTID0gW05vbmUsICdKYW4nLCAnRmViJywgJ01hcicsICdBcHInLCAnTWF5
JywgJ0p1bicsICdKdWwnLAotICAgICAgICAgICdBdWcnLCAnU2VwJywgJ09jdCcsICdOb3YnLCAn
RGVjJ10KK1dFRUtEQVlTID0gW3UnTW9uJywgdSdUdWUnLCB1J1dlZCcsIHUnVGh1JywgdSdGcmkn
LCB1J1NhdCcsIHUnU3VuJ10KK01PTlRIUyA9IFtOb25lLCB1J0phbicsIHUnRmViJywgdSdNYXIn
LCB1J0FwcicsIHUnTWF5JywgdSdKdW4nLCB1J0p1bCcsCisgICAgICAgICAgdSdBdWcnLCB1J1Nl
cCcsIHUnT2N0JywgdSdOb3YnLCB1J0RlYyddCiAKIGRlZiBodHRwX2RhdGUobm93LCBkZWx0YV9z
ZWNzPTApOgogICAgIGRhdGUgPSBkYXRldGltZS5kYXRldGltZS51dGNmcm9tdGltZXN0YW1wKG5v
dyArIGRlbHRhX3NlY3MpCi0gICAgcmV0dXJuICIlcywgJS4yZCAlcyAlLjRkICUuMmQ6JS4yZDol
LjJkIEdNVCIgJSAoCisgICAgcmV0dXJuIHUiJXMsICUuMmQgJXMgJS40ZCAlLjJkOiUuMmQ6JS4y
ZCBHTVQiICUgKAogICAgICAgICBXRUVLREFZU1tkYXRlLndlZWtkYXkoKV0sCiAgICAgICAgIGRh
dGUuZGF5LAogICAgICAgICBNT05USFNbZGF0ZS5tb250aF0sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcmVz
b3VyY2VzL3NlY3VyZWRpbWFnZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9yZXNvdXJjZXMvc2VjdXJlZGltYWdlLnB5Cmlu
ZGV4IDQ0NWIwYmRkMmVjOTVhMWFjOWJlMDgyMjg1MDM0NzViMzg2Y2Y5NjEuLmNhYzljZmVkZDI3
ZWE4MTExNDcxNTBiNDJmZjg5YzU4Y2JjYWVkMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9yZXNvdXJjZXMv
c2VjdXJlZGltYWdlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9yZXNvdXJjZXMvc2VjdXJlZGltYWdlLnB5CkBAIC0x
LDE3ICsxLDE5IEBACiAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0KIAorZnJvbSB3cHRzZXJ2ZS51dGls
cyBpbXBvcnQgaXNvbW9ycGhpY19kZWNvZGUsIGlzb21vcnBoaWNfZW5jb2RlCisKIGRlZiBtYWlu
KHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBpbWFnZV91cmwgPSBzdHIucmVwbGFjZShyZXF1ZXN0
LnVybCwgImZldGNoL2h0dHAtY2FjaGUvcmVzb3VyY2VzL3NlY3VyZWRpbWFnZS5weSIsICJpbWFn
ZXMvZ3JlZW4ucG5nIikKKyAgICBpbWFnZV91cmwgPSBzdHIucmVwbGFjZShyZXF1ZXN0LnVybCwg
dSJmZXRjaC9odHRwLWNhY2hlL3Jlc291cmNlcy9zZWN1cmVkaW1hZ2UucHkiLCB1ImltYWdlcy9n
cmVlbi5wbmciKQogCi0gICAgaWYgImF1dGhvcml6YXRpb24iIG5vdCBpbiByZXF1ZXN0LmhlYWRl
cnM6CisgICAgaWYgYiJhdXRob3JpemF0aW9uIiBub3QgaW4gcmVxdWVzdC5oZWFkZXJzOgogICAg
ICAgICByZXNwb25zZS5zdGF0dXMgPSA0MDEKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQo
IldXVy1BdXRoZW50aWNhdGUiLCAiQmFzaWMiKQorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNl
dChiIldXVy1BdXRoZW50aWNhdGUiLCBiIkJhc2ljIikKICAgICAgICAgcmV0dXJuCiAgICAgZWxz
ZToKLSAgICAgICAgYXV0aCA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIkF1dGhvcml6YXRpb24iKQot
ICAgICAgICBpZiBhdXRoICE9ICJCYXNpYyBkR1Z6ZEhWelpYSTZkR1Z6ZEhCaGMzTT0iOgotICAg
ICAgICAgICAgcmVzcG9uc2Uuc2V0X2Vycm9yKDQwMywgIkludmFsaWQgdXNlcm5hbWUgb3IgcGFz
c3dvcmQgLSAiICsgYXV0aCkKKyAgICAgICAgYXV0aCA9IHJlcXVlc3QuaGVhZGVycy5nZXQoYiJB
dXRob3JpemF0aW9uIikKKyAgICAgICAgaWYgYXV0aCAhPSBiIkJhc2ljIGRHVnpkSFZ6WlhJNmRH
VnpkSEJoYzNNPSI6CisgICAgICAgICAgICByZXNwb25zZS5zZXRfZXJyb3IoNDAzLCB1IkludmFs
aWQgdXNlcm5hbWUgb3IgcGFzc3dvcmQgLSAiICsgaXNvbW9ycGhpY19kZWNvZGUoYXV0aCkpCiAg
ICAgICAgICAgICByZXR1cm4KIAogICAgIHJlc3BvbnNlLnN0YXR1cyA9IDMwMQotICAgIHJlc3Bv
bnNlLmhlYWRlcnMuc2V0KCJMb2NhdGlvbiIsIGltYWdlX3VybCkKKyAgICByZXNwb25zZS5oZWFk
ZXJzLnNldChiIkxvY2F0aW9uIiwgaXNvbW9ycGhpY19lbmNvZGUoaW1hZ2VfdXJsKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
aHR0cC1jYWNoZS9zdGF0dXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljYjkzY2Y3N2EwNWI5Y2Q2NzNmZmVjM2Zh
MjM3ZjA4MjkxYjUzMjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
dHRwLWNhY2hlL3N0YXR1cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCww
IEBACi0KLVBBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0
YWxlIDIwMCByZXNwb25zZQotUEFTUyBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0
d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyMDAgcmVzcG9uc2UKLVBBU1MgSFRUUCBjYWNoZSBnb2Vz
IHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDIwMyByZXNwb25zZQotUEFTUyBIVFRQ
IGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyMDMg
cmVzcG9uc2UKLVBBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBh
IHN0YWxlIDIwNCByZXNwb25zZQotUEFTUyBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUg
bmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyMDQgcmVzcG9uc2UKLVBBU1MgSFRUUCBjYWNoZSBn
b2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDI5OSByZXNwb25zZQotRkFJTCBI
VFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAy
OTkgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZy
b20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCi1QQVNTIEhU
VFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSA0MDAgcmVzcG9u
c2UKLUZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFz
IGEgZnJlc2ggNDAwIHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBu
b3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3Qg
MgotUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUg
NDA0IHJlc3BvbnNlCi1QQVNTIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3Jr
IGlmIGl0IGhhcyBhIGZyZXNoIDQwNCByZXNwb25zZQotUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8g
dGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNDEwIHJlc3BvbnNlCi1QQVNTIEhUVFAgY2Fj
aGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDQxMCByZXNw
b25zZQotUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3Rh
bGUgNDk5IHJlc3BvbnNlCi1GQUlMIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3
b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDQ5OSByZXNwb25zZSBhc3NlcnRfbGVzc190aGFuOiBSZXNw
b25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gMiBidXQgZ290IDIKLVBBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0
IGhhcyBhIHN0YWxlIDUwMCByZXNwb25zZQotRkFJTCBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0
byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCA1MDAgcmVzcG9uc2UgYXNzZXJ0X2xlc3Nf
dGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCi1QQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0
d29yayBpZiBpdCBoYXMgYSBzdGFsZSA1MDIgcmVzcG9uc2UKLUZBSUwgSFRUUCBjYWNoZSBhdm9p
ZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggNTAyIHJlc3BvbnNlIGFz
c2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgotUEFTUyBIVFRQIGNhY2hlIGdvZXMg
dG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNTAzIHJlc3BvbnNlCi1GQUlMIEhUVFAg
Y2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDUwMyBy
ZXNwb25zZSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBj
YWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKLVBBU1MgSFRUUCBj
YWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDUwNCByZXNwb25zZQot
RkFJTCBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBm
cmVzaCA1MDQgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBj
b21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCi1Q
QVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSA1OTkg
cmVzcG9uc2UKLUZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYg
aXQgaGFzIGEgZnJlc2ggNTk5IHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIg
ZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1
dCBnb3QgMgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvc3RhdHVzLmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
c3RhdHVzLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNiOTNjZjc3YTA1YjljZDY3M2Zm
ZWMzZmEyMzdmMDgyOTFiNTMyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9zdGF0dXMuYW55LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACisKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRo
ZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDIwMCByZXNwb25zZQorUEFTUyBIVFRQIGNhY2hl
IGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyMDAgcmVzcG9u
c2UKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxl
IDIwMyByZXNwb25zZQorUEFTUyBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29y
ayBpZiBpdCBoYXMgYSBmcmVzaCAyMDMgcmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRv
IHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDIwNCByZXNwb25zZQorUEFTUyBIVFRQIGNh
Y2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyMDQgcmVz
cG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0
YWxlIDI5OSByZXNwb25zZQorRkFJTCBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0
d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyOTkgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjogUmVz
cG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIDIgYnV0IGdvdCAyCitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBp
dCBoYXMgYSBzdGFsZSA0MDAgcmVzcG9uc2UKK0ZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcg
dG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggNDAwIHJlc3BvbnNlIGFzc2VydF9sZXNz
X3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVt
YmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgorUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5l
dHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNDA0IHJlc3BvbnNlCitQQVNTIEhUVFAgY2FjaGUgYXZv
aWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDQwNCByZXNwb25zZQor
UEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNDEw
IHJlc3BvbnNlCitQQVNTIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlm
IGl0IGhhcyBhIGZyZXNoIDQxMCByZXNwb25zZQorUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhl
IG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNDk5IHJlc3BvbnNlCitGQUlMIEhUVFAgY2FjaGUg
YXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDQ5OSByZXNwb25z
ZSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK1BBU1MgSFRUUCBjYWNoZSBn
b2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDUwMCByZXNwb25zZQorRkFJTCBI
VFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCA1
MDAgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZy
b20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitQQVNTIEhU
VFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSA1MDIgcmVzcG9u
c2UKK0ZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFz
IGEgZnJlc2ggNTAyIHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBu
b3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3Qg
MgorUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUg
NTAzIHJlc3BvbnNlCitGQUlMIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3Jr
IGlmIGl0IGhhcyBhIGZyZXNoIDUwMyByZXNwb25zZSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25z
ZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
MiBidXQgZ290IDIKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhh
cyBhIHN0YWxlIDUwNCByZXNwb25zZQorRkFJTCBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0
aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCA1MDQgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhh
bjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIg
bGVzcyB0aGFuIDIgYnV0IGdvdCAyCitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29y
ayBpZiBpdCBoYXMgYSBzdGFsZSA1OTkgcmVzcG9uc2UKK0ZBSUwgSFRUUCBjYWNoZSBhdm9pZHMg
Z29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggNTk5IHJlc3BvbnNlIGFzc2Vy
dF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvc3RhdHVz
LmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlL3N0YXR1cy5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5
M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1
cy5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3Ig
V2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvc3RhdHVzLmFueS5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0
cC1jYWNoZS9zdGF0dXMuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYzgzYTI1YTI2ZGMwNDQxZjUwYWVi
ZTY0NmU4YWM2ODcwMGUyNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvc3RhdHVzLmFueS5qcwpA
QCAtMCwwICsxLDYwIEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTog
dGl0bGU9SFRUUCBDYWNoZSAtIFN0YXR1cyBDb2RlcworLy8gTUVUQTogdGltZW91dD1sb25nCisv
LyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcworLy8gTUVUQTogc2NyaXB0PS9jb21tb24v
Z2V0LWhvc3QtaW5mby5zdWIuanMKKy8vIE1FVEE6IHNjcmlwdD1odHRwLWNhY2hlLmpzCisKK3Zh
ciB0ZXN0cyA9IFtdOworZnVuY3Rpb24gY2hlY2tfc3RhdHVzKHN0YXR1cykgeworICB2YXIgY29k
ZSA9IHN0YXR1c1swXTsKKyAgdmFyIHBocmFzZSA9IHN0YXR1c1sxXTsKKyAgdmFyIGJvZHkgPSBz
dGF0dXNbMl07CisgIGlmIChib2R5ID09PSB1bmRlZmluZWQpIHsKKyAgICBib2R5ID0gaHR0cF9j
b250ZW50KGNvZGUpOworICB9CisgIHRlc3RzLnB1c2goeworICAgIG5hbWU6ICJIVFRQIGNhY2hl
IGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgIiArIGNvZGUgKyAiIHJlc3Bv
bnNlIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICB0ZW1wbGF0ZTogInN0YWxl
IiwKKyAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbY29kZSwgcGhyYXNlXSwKKyAgICAgICAgcmVz
cG9uc2VfYm9keTogYm9keQorICAgICAgfSwgeworICAgICAgICBleHBlY3RlZF90eXBlOiAibm90
X2NhY2hlZCIsCisgICAgICAgIHJlc3BvbnNlX3N0YXR1czogW2NvZGUsIHBocmFzZV0sCisgICAg
ICAgIHJlc3BvbnNlX2JvZHk6IGJvZHkKKyAgICAgIH0KKyAgICBdCisgIH0pCisgIHRlc3RzLnB1
c2goeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBp
ZiBpdCBoYXMgYSBmcmVzaCAiICsgY29kZSArICIgcmVzcG9uc2UiLAorICAgIHJlcXVlc3RzOiBb
CisgICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAiZnJlc2giLAorICAgICAgICByZXNwb25zZV9z
dGF0dXM6IFtjb2RlLCBwaHJhc2VdLAorICAgICAgICByZXNwb25zZV9ib2R5OiBib2R5CisgICAg
ICB9LCB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiLAorICAgICAgICByZXNwb25z
ZV9zdGF0dXM6IFtjb2RlLCBwaHJhc2VdLAorICAgICAgICByZXNwb25zZV9ib2R5OiBib2R5Cisg
ICAgICB9CisgICAgXQorICB9KQorfQorWworICBbMjAwLCAiT0siXSwKKyAgWzIwMywgIk5vbi1B
dXRob3JpdGF0aXZlIEluZm9ybWF0aW9uIl0sCisgIFsyMDQsICJObyBDb250ZW50IiwgbnVsbF0s
CisgIFsyOTksICJXaGF0ZXZlciJdLAorICBbNDAwLCAiQmFkIFJlcXVlc3QiXSwKKyAgWzQwNCwg
Ik5vdCBGb3VuZCJdLAorICBbNDEwLCAiR29uZSJdLAorICBbNDk5LCAiV2hhdGV2ZXIiXSwKKyAg
WzUwMCwgIkludGVybmFsIFNlcnZlciBFcnJvciJdLAorICBbNTAyLCAiQmFkIEdhdGV3YXkiXSwK
KyAgWzUwMywgIlNlcnZpY2UgVW5hdmFpbGFibGUiXSwKKyAgWzUwNCwgIkdhdGV3YXkgVGltZW91
dCJdLAorICBbNTk5LCAiV2hhdGV2ZXIiXQorXS5mb3JFYWNoKGNoZWNrX3N0YXR1cyk7CitydW5f
dGVzdHModGVzdHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
aHR0cC1jYWNoZS9zdGF0dXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNi
OTNjZjc3YTA1YjljZDY3M2ZmZWMzZmEyMzdmMDgyOTFiNTMyNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1j
YWNoZS9zdGF0dXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyOCBAQAorCitQ
QVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSAyMDAg
cmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYg
aXQgaGFzIGEgZnJlc2ggMjAwIHJlc3BvbnNlCitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUg
bmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSAyMDMgcmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBh
dm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggMjAzIHJlc3BvbnNl
CitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSAy
MDQgcmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsg
aWYgaXQgaGFzIGEgZnJlc2ggMjA0IHJlc3BvbnNlCitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0
aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSAyOTkgcmVzcG9uc2UKK0ZBSUwgSFRUUCBjYWNo
ZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggMjk5IHJlc3Bv
bnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hl
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgorUEFTUyBIVFRQIGNhY2hl
IGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNDAwIHJlc3BvbnNlCitGQUlM
IEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNo
IDQwMCByZXNwb25zZSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUg
ZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK1BBU1Mg
SFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDQwNCByZXNw
b25zZQorUEFTUyBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBo
YXMgYSBmcmVzaCA0MDQgcmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3
b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDQxMCByZXNwb25zZQorUEFTUyBIVFRQIGNhY2hlIGF2b2lk
cyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCA0MTAgcmVzcG9uc2UKK1BB
U1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDQ5OSBy
ZXNwb25zZQorRkFJTCBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBp
dCBoYXMgYSBmcmVzaCA0OTkgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBk
b2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0
IGdvdCAyCitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBz
dGFsZSA1MDAgcmVzcG9uc2UKK0ZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5l
dHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggNTAwIHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJl
c3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiAyIGJ1dCBnb3QgMgorUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYg
aXQgaGFzIGEgc3RhbGUgNTAyIHJlc3BvbnNlCitGQUlMIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5n
IHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDUwMiByZXNwb25zZSBhc3NlcnRfbGVz
c190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBu
ZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDUwMyByZXNwb25zZQorRkFJTCBIVFRQIGNhY2hlIGF2
b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCA1MDMgcmVzcG9uc2Ug
YXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitQQVNTIEhUVFAgY2FjaGUgZ29l
cyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSA1MDQgcmVzcG9uc2UKK0ZBSUwgSFRU
UCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggNTA0
IHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9t
IGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgorUEFTUyBIVFRQ
IGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNTk5IHJlc3BvbnNl
CitGQUlMIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBh
IGZyZXNoIDU5OSByZXNwb25zZSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90
IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvc3RhdHVzLmFu
eS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYw
OTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy5hbnkud29ya2VyLmh0bWwK
QEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0
IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTVkOWUzY2YyNGE0OTYzMTY2
NzdhOGJlOWQxZDU0ZDIxZDljM2I4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9zdGF0dXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAg
QEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLSAgICA8dGl0bGU+SFRUUCBDYWNoZSAtIFN0YXR1cyBDb2RlczwvdGl0bGU+Ci0g
ICAgPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Ci0gICAgPG1ldGEgbmFtZT0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iaHR0cC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAg
PHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbXTsKLSAgICBmdW5jdGlvbiBjaGVja19zdGF0dXMo
c3RhdHVzKSB7Ci0gICAgICB2YXIgY29kZSA9IHN0YXR1c1swXTsKLSAgICAgIHZhciBwaHJhc2Ug
PSBzdGF0dXNbMV07Ci0gICAgICB2YXIgYm9keSA9IHN0YXR1c1syXTsKLSAgICAgIGlmIChib2R5
ID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgYm9keSA9IGh0dHBfY29udGVudChjb2RlKTsKLSAg
ICAgIH0KLSAgICAgIHRlc3RzLnB1c2goewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBnb2Vz
IHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlICIgKyBjb2RlICsgIiByZXNwb25zZSIs
Ci0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgdGVtcGxhdGU6
ICJzdGFsZSIsCi0gICAgICAgICAgICByZXNwb25zZV9zdGF0dXM6IFtjb2RlLCBwaHJhc2VdLAot
ICAgICAgICAgICAgcmVzcG9uc2VfYm9keTogYm9keQotICAgICAgICAgIH0sIHsKLSAgICAgICAg
ICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIiwKLSAgICAgICAgICAgIHJlc3BvbnNlX3N0
YXR1czogW2NvZGUsIHBocmFzZV0sCi0gICAgICAgICAgICByZXNwb25zZV9ib2R5OiBib2R5Ci0g
ICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9KQotICAgICAgdGVzdHMucHVzaCh7Ci0gICAg
ICAgIG5hbWU6ICJIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBo
YXMgYSBmcmVzaCAiICsgY29kZSArICIgcmVzcG9uc2UiLAotICAgICAgICByZXF1ZXN0czogWwot
ICAgICAgICAgIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAiZnJlc2giLAotICAgICAgICAgICAg
cmVzcG9uc2Vfc3RhdHVzOiBbY29kZSwgcGhyYXNlXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2Jv
ZHk6IGJvZHkKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2Fj
aGVkIiwKLSAgICAgICAgICAgIHJlc3BvbnNlX3N0YXR1czogW2NvZGUsIHBocmFzZV0sCi0gICAg
ICAgICAgICByZXNwb25zZV9ib2R5OiBib2R5Ci0gICAgICAgICAgfQotICAgICAgICBdCi0gICAg
ICB9KQotICAgIH0KLSAgICBbCi0gICAgICBbMjAwLCAiT0siXSwKLSAgICAgIFsyMDMsICJOb24t
QXV0aG9yaXRhdGl2ZSBJbmZvcm1hdGlvbiJdLAotICAgICAgWzIwNCwgIk5vIENvbnRlbnQiLCBu
dWxsXSwKLSAgICAgIFsyOTksICJXaGF0ZXZlciJdLAotICAgICAgWzQwMCwgIkJhZCBSZXF1ZXN0
Il0sCi0gICAgICBbNDA0LCAiTm90IEZvdW5kIl0sCi0gICAgICBbNDEwLCAiR29uZSJdLAotICAg
ICAgWzQ5OSwgIldoYXRldmVyIl0sCi0gICAgICBbNTAwLCAiSW50ZXJuYWwgU2VydmVyIEVycm9y
Il0sCi0gICAgICBbNTAyLCAiQmFkIEdhdGV3YXkiXSwKLSAgICAgIFs1MDMsICJTZXJ2aWNlIFVu
YXZhaWxhYmxlIl0sCi0gICAgICBbNTA0LCAiR2F0ZXdheSBUaW1lb3V0Il0sCi0gICAgICBbNTk5
LCAiV2hhdGV2ZXIiXQotICAgIF0uZm9yRWFjaChjaGVja19zdGF0dXMpOwotICAgIHJ1bl90ZXN0
cyh0ZXN0cyk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1j
YWNoZS92YXJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ4MTM4N2NhNzQwZmYzYjE0ZmU0N2M1ZWQwYzY4YWEyZmEy
YjY4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
dmFyeS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0KLVBBU1Mg
SFRUUCBjYWNoZSByZXVzZXMgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgbWF0Y2hlcwotUEFT
UyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNu
J3QgbWF0Y2gKLVBBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBWYXJ5IHJlc3BvbnNlIHdoZW4g
cmVxdWVzdCBvbWl0cyB2YXJpYW50IGhlYWRlcgotRkFJTCBIVFRQIGNhY2hlIGRvZXNuJ3QgaW52
YWxpZGF0ZSBleGlzdGluZyBWYXJ5IHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNl
IDMgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAz
IGJ1dCBnb3QgMwotUEFTUyBIVFRQIGNhY2hlIGRvZXNuJ3QgcGF5IGF0dGVudGlvbiB0byBoZWFk
ZXJzIG5vdCBsaXN0ZWQgaW4gVmFyeQotUEFTUyBIVFRQIGNhY2hlIHJldXNlcyB0d28td2F5IFZh
cnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG1hdGNoZXMKLVBBU1MgSFRUUCBjYWNoZSBkb2Vzbid0
IHVzZSB0d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2gKLVBB
U1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1
ZXN0IG9taXRzIHZhcmlhbnQgaGVhZGVyCi1QQVNTIEhUVFAgY2FjaGUgcmV1c2VzIHRocmVlLXdh
eSBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBtYXRjaGVzCi1QQVNTIEhUVFAgY2FjaGUgZG9l
c24ndCB1c2UgdGhyZWUtd2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0
Y2gKLVBBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3
aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaCwgcmVnYXJkbGVzcyBvZiBoZWFkZXIgb3JkZXIKLVBB
U1MgSFRUUCBjYWNoZSB1c2VzIHRocmVlLXdheSBWYXJ5IHJlc3BvbnNlIHdoZW4gYm90aCByZXF1
ZXN0IGFuZCB0aGUgb3JpZ2luYWwgcmVxdWVzdCBvbWl0ZWQgYSB2YXJpYW50IGhlYWRlcgotUEFT
UyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZhcnkgcmVzcG9uc2Ugd2l0aCBhIGZpZWxkIHZhbHVl
IG9mICcqJwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFyeS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Zh
cnkuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDgxMzg3Y2E3NDBmZjNiMTRmZTQ3YzVl
ZDBjNjhhYTJmYTJiNjg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3ZhcnkuYW55LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE1IEBACisKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgVmFyeSByZXNw
b25zZSB3aGVuIHJlcXVlc3QgbWF0Y2hlcworUEFTUyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZh
cnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2gKK1BBU1MgSFRUUCBjYWNoZSBk
b2Vzbid0IHVzZSBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBvbWl0cyB2YXJpYW50IGhlYWRl
cgorRkFJTCBIVFRQIGNhY2hlIGRvZXNuJ3QgaW52YWxpZGF0ZSBleGlzdGluZyBWYXJ5IHJlc3Bv
bnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDMgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hl
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAzIGJ1dCBnb3QgMworUEFTUyBIVFRQIGNhY2hl
IGRvZXNuJ3QgcGF5IGF0dGVudGlvbiB0byBoZWFkZXJzIG5vdCBsaXN0ZWQgaW4gVmFyeQorUEFT
UyBIVFRQIGNhY2hlIHJldXNlcyB0d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG1h
dGNoZXMKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0d28td2F5IFZhcnkgcmVzcG9uc2Ug
d2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2gKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0
d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG9taXRzIHZhcmlhbnQgaGVhZGVyCitQ
QVNTIEhUVFAgY2FjaGUgcmV1c2VzIHRocmVlLXdheSBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVz
dCBtYXRjaGVzCitQQVNTIEhUVFAgY2FjaGUgZG9lc24ndCB1c2UgdGhyZWUtd2F5IFZhcnkgcmVz
cG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2gKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0
IHVzZSB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaCwg
cmVnYXJkbGVzcyBvZiBoZWFkZXIgb3JkZXIKK1BBU1MgSFRUUCBjYWNoZSB1c2VzIHRocmVlLXdh
eSBWYXJ5IHJlc3BvbnNlIHdoZW4gYm90aCByZXF1ZXN0IGFuZCB0aGUgb3JpZ2luYWwgcmVxdWVz
dCBvbWl0ZWQgYSB2YXJpYW50IGhlYWRlcgorUEFTUyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZh
cnkgcmVzcG9uc2Ugd2l0aCBhIGZpZWxkIHZhbHVlIG9mICcqJworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
dmFyeS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1Mjhl
NjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFy
eS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3Ig
V2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFyeS5hbnkuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAt
Y2FjaGUvdmFyeS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNmZDIyNmFmODExNzM5NjM3YTE3M2RlZGQ5
ZjVkNWM4MWZmYjY2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LmFueS5qcwpAQCAtMCww
ICsxLDMxMyBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxl
PUhUVFAgQ2FjaGUgLSBWYXJ5CisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKKy8vIE1FVEE6IHNjcmlw
dD0vY29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZv
LnN1Yi5qcworLy8gTUVUQTogc2NyaXB0PWh0dHAtY2FjaGUuanMKKwordmFyIHRlc3RzID0gWwor
ICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgcmV1c2VzIFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1
ZXN0IG1hdGNoZXMiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlcXVlc3Rf
aGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwgIjEiXQorICAgICAgICBdLAorICAgICAgICBy
ZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0sCisgICAgICAg
ICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAgIFsiVmFyeSIsICJGb28iXQor
ICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsK
KyAgICAgICAgICBbIkZvbyIsICIxIl0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlw
ZTogImNhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBj
YWNoZSBkb2Vzbid0IHVzZSBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBkb2Vzbid0IG1hdGNo
IiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsK
KyAgICAgICAgICBbIkZvbyIsICIxIl0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9uc2VfaGVh
ZGVyczogWworICAgICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAorICAgICAgICAgIFsiTGFzdC1N
b2RpZmllZCIsIC0zMDAwXSwKKyAgICAgICAgICBbIlZhcnkiLCAiRm9vIl0KKyAgICAgICAgXQor
ICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAg
WyJGb28iLCAiMiJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2Fj
aGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRv
ZXNuJ3QgdXNlIFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG9taXRzIHZhcmlhbnQgaGVhZGVy
IiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsK
KyAgICAgICAgICBbIkZvbyIsICIxIl0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9uc2VfaGVh
ZGVyczogWworICAgICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAorICAgICAgICAgIFsiTGFzdC1N
b2RpZmllZCIsIC0zMDAwXSwKKyAgICAgICAgICBbIlZhcnkiLCAiRm9vIl0KKyAgICAgICAgXQor
ICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisg
ICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCBp
bnZhbGlkYXRlIGV4aXN0aW5nIFZhcnkgcmVzcG9uc2UiLAorICAgIHJlcXVlc3RzOiBbCisgICAg
ICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwgIjEiXQor
ICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBp
cmVzIiwgNTAwMF0sCisgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAg
ICAgIFsiVmFyeSIsICJGb28iXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9ib2R5OiBo
dHRwX2NvbnRlbnQoJ2Zvb18xJykKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3Rf
aGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwgIjIiXQorICAgICAgICBdLAorICAgICAgICBy
ZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0sCisgICAgICAg
ICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAgIFsiVmFyeSIsICJGb28iXQor
ICAgICAgICBdLAorICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIsCisgICAgICAg
IHJlc3BvbnNlX2JvZHk6IGh0dHBfY29udGVudCgnZm9vXzInKSwKKyAgICAgIH0sCisgICAgICB7
CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwgIjEiXQorICAg
ICAgICBdLAorICAgICAgICByZXNwb25zZV9ib2R5OiBodHRwX2NvbnRlbnQoJ2Zvb18xJyksCisg
ICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7
CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCBwYXkgYXR0ZW50aW9uIHRvIGhlYWRlcnMg
bm90IGxpc3RlZCBpbiBWYXJ5IiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICBy
ZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkZvbyIsICIxIl0sCisgICAgICAgICAgWyJP
dGhlciIsICIyIl0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAg
ICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAorICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0z
MDAwXSwKKyAgICAgICAgICBbIlZhcnkiLCAiRm9vIl0KKyAgICAgICAgXSwKKyAgICAgIH0sCisg
ICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwgIjEi
XSwKKyAgICAgICAgICBbIk90aGVyIiwgIjMiXQorICAgICAgICBdLAorICAgICAgICBleHBlY3Rl
ZF90eXBlOiAiY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJI
VFRQIGNhY2hlIHJldXNlcyB0d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG1hdGNo
ZXMiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczog
WworICAgICAgICAgIFsiRm9vIiwgIjEiXSwKKyAgICAgICAgICBbIkJhciIsICJhYmMiXQorICAg
ICAgICBdLAorICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVz
IiwgNTAwMF0sCisgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAg
IFsiVmFyeSIsICJGb28sIEJhciJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAg
ICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwgIjEiXSwKKyAgICAgICAg
ICBbIkJhciIsICJhYmMiXQorICAgICAgICBdLAorICAgICAgICBleHBlY3RlZF90eXBlOiAiY2Fj
aGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRv
ZXNuJ3QgdXNlIHR3by13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRj
aCIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBb
CisgICAgICAgICAgWyJGb28iLCAiMSJdLAorICAgICAgICAgIFsiQmFyIiwgImFiYyJdCisgICAg
ICAgIF0sCisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMi
LCA1MDAwXSwKKyAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCisgICAgICAgICAg
WyJWYXJ5IiwgIkZvbywgQmFyIl0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAg
ICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJGb28iLCAiMiJdLAorICAgICAgICAg
IFsiQmFyIiwgImFiYyJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3Rf
Y2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hl
IGRvZXNuJ3QgdXNlIHR3by13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3Qgb21pdHMgdmFy
aWFudCBoZWFkZXIiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlcXVlc3Rf
aGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwgIjEiXQorICAgICAgICBdLAorICAgICAgICBy
ZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0sCisgICAgICAg
ICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAgIFsiVmFyeSIsICJGb28sIEJh
ciJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6
ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQ
IGNhY2hlIHJldXNlcyB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgbWF0Y2hl
cyIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBb
CisgICAgICAgICAgWyJGb28iLCAiMSJdLAorICAgICAgICAgIFsiQmFyIiwgImFiYyJdLAorICAg
ICAgICAgIFsiQmF6IiwgIjc4OSJdCisgICAgICAgIF0sCisgICAgICAgIHJlc3BvbnNlX2hlYWRl
cnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKKyAgICAgICAgICBbIkxhc3QtTW9k
aWZpZWQiLCAtMzAwMF0sCisgICAgICAgICAgWyJWYXJ5IiwgIkZvbywgQmFyLCBCYXoiXQorICAg
ICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAg
ICAgICAgICBbIkZvbyIsICIxIl0sCisgICAgICAgICAgWyJCYXIiLCAiYWJjIl0sCisgICAgICAg
ICAgWyJCYXoiLCAiNzg5Il0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNh
Y2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBk
b2Vzbid0IHVzZSB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBt
YXRjaCIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJz
OiBbCisgICAgICAgICAgWyJGb28iLCAiMSJdLAorICAgICAgICAgIFsiQmFyIiwgImFiYyJdLAor
ICAgICAgICAgIFsiQmF6IiwgIjc4OSJdCisgICAgICAgIF0sCisgICAgICAgIHJlc3BvbnNlX2hl
YWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKKyAgICAgICAgICBbIkxhc3Qt
TW9kaWZpZWQiLCAtMzAwMF0sCisgICAgICAgICAgWyJWYXJ5IiwgIkZvbywgQmFyLCBCYXoiXQor
ICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsK
KyAgICAgICAgICBbIkZvbyIsICIyIl0sCisgICAgICAgICAgWyJCYXIiLCAiYWJjIl0sCisgICAg
ICAgICAgWyJCYXoiLCAiNzg5Il0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTog
Im5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAg
Y2FjaGUgZG9lc24ndCB1c2UgdGhyZWUtd2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRv
ZXNuJ3QgbWF0Y2gsIHJlZ2FyZGxlc3Mgb2YgaGVhZGVyIG9yZGVyIiwKKyAgICByZXF1ZXN0czog
WworICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkZvbyIs
ICIxIl0sCisgICAgICAgICAgWyJCYXIiLCAiYWJjNCJdLAorICAgICAgICAgIFsiQmF6IiwgIjc4
OSJdCisgICAgICAgIF0sCisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBb
IkV4cGlyZXMiLCA1MDAwXSwKKyAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCisg
ICAgICAgICAgWyJWYXJ5IiwgIkZvbywgQmFyLCBCYXoiXQorICAgICAgICBdCisgICAgICB9LAor
ICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkZvbyIsICIx
Il0sCisgICAgICAgICAgWyJCYXIiLCAiYWJjIl0sCisgICAgICAgICAgWyJCYXoiLCAiNzg5Il0K
KyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9
CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgdXNlcyB0aHJlZS13YXkg
VmFyeSByZXNwb25zZSB3aGVuIGJvdGggcmVxdWVzdCBhbmQgdGhlIG9yaWdpbmFsIHJlcXVlc3Qg
b21pdGVkIGEgdmFyaWFudCBoZWFkZXIiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAg
ICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwgIjEiXSwKKyAgICAgICAg
ICBbIkJheiIsICI3ODkiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBb
CisgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0sCisgICAgICAgICAgWyJMYXN0LU1vZGlmaWVk
IiwgLTMwMDBdLAorICAgICAgICAgIFsiVmFyeSIsICJGb28sIEJhciwgQmF6Il0KKyAgICAgICAg
XQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAg
ICAgWyJGb28iLCAiMSJdLAorICAgICAgICAgIFsiQmF6IiwgIjc4OSJdCisgICAgICAgIF0sCisg
ICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7
CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCB1c2UgVmFyeSByZXNwb25zZSB3aXRoIGEg
ZmllbGQgdmFsdWUgb2YgJyonIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICBy
ZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkZvbyIsICIxIl0sCisgICAgICAgICAgWyJC
YXoiLCAiNzg5Il0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAg
ICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAorICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0z
MDAwXSwKKyAgICAgICAgICBbIlZhcnkiLCAiKiJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAg
ICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiKiIsICIxIl0sCisg
ICAgICAgICAgWyJCYXoiLCAiNzg5Il0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlw
ZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9CitdOworcnVuX3Rlc3RzKHRlc3Rz
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Zh
cnkuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ4MTM4N2NhNzQwZmYzYjE0
ZmU0N2M1ZWQwYzY4YWEyZmEyYjY4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LmFueS53
b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKKworUEFTUyBIVFRQIGNhY2hlIHJl
dXNlcyBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBtYXRjaGVzCitQQVNTIEhUVFAgY2FjaGUg
ZG9lc24ndCB1c2UgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaAorUEFT
UyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG9taXRz
IHZhcmlhbnQgaGVhZGVyCitGQUlMIEhUVFAgY2FjaGUgZG9lc24ndCBpbnZhbGlkYXRlIGV4aXN0
aW5nIFZhcnkgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMyBkb2VzIG5vdCBj
b21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDMgYnV0IGdvdCAzCitQ
QVNTIEhUVFAgY2FjaGUgZG9lc24ndCBwYXkgYXR0ZW50aW9uIHRvIGhlYWRlcnMgbm90IGxpc3Rl
ZCBpbiBWYXJ5CitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIHR3by13YXkgVmFyeSByZXNwb25zZSB3
aGVuIHJlcXVlc3QgbWF0Y2hlcworUEFTUyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIHR3by13YXkg
VmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaAorUEFTUyBIVFRQIGNhY2hl
IGRvZXNuJ3QgdXNlIHR3by13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3Qgb21pdHMgdmFy
aWFudCBoZWFkZXIKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgdGhyZWUtd2F5IFZhcnkgcmVzcG9u
c2Ugd2hlbiByZXF1ZXN0IG1hdGNoZXMKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0aHJl
ZS13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaAorUEFTUyBIVFRQ
IGNhY2hlIGRvZXNuJ3QgdXNlIHRocmVlLXdheSBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBk
b2Vzbid0IG1hdGNoLCByZWdhcmRsZXNzIG9mIGhlYWRlciBvcmRlcgorUEFTUyBIVFRQIGNhY2hl
IHVzZXMgdGhyZWUtd2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiBib3RoIHJlcXVlc3QgYW5kIHRoZSBv
cmlnaW5hbCByZXF1ZXN0IG9taXRlZCBhIHZhcmlhbnQgaGVhZGVyCitQQVNTIEhUVFAgY2FjaGUg
ZG9lc24ndCB1c2UgVmFyeSByZXNwb25zZSB3aXRoIGEgZmllbGQgdmFsdWUgb2YgJyonCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvaHR0cC1jYWNoZS92YXJ5LmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LmFueS53b3JrZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3ZhcnkuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVj
dHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFyeS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjFkNmU3OWI1MjQ4ZWQ3YTQzMzRkNzU0YjgwMzljMzY2
MDkwMDUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNo
ZS92YXJ5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMjMgKzAsMCBAQAotPCFkb2N0eXBlIGh0
bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0
aXRsZT5IVFRQIENhY2hlIC0gVmFyeTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29t
bW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iaHR0
cC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4K
LSAgICB2YXIgdGVzdHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJl
dXNlcyBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBtYXRjaGVzIiwKLSAgICAgICAgcmVxdWVz
dHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAg
ICAgICAgICAgWyJGb28iLCAiMSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9u
c2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKLSAgICAgICAg
ICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAotICAgICAgICAgICAgICBbIlZhcnkiLCAi
Rm9vIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIsICIxIl0KLSAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAg
IH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2Fj
aGUgZG9lc24ndCB1c2UgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaCIs
Ci0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9o
ZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRm9vIiwgIjEiXQotICAgICAgICAgICAgXSwKLSAg
ICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwg
NTAwMF0sCi0gICAgICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKLSAgICAgICAg
ICAgICAgWyJWYXJ5IiwgIkZvbyJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJG
b28iLCAiMiJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5v
dF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAg
ICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVx
dWVzdCBvbWl0cyB2YXJpYW50IGhlYWRlciIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAg
ICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRm9v
IiwgIjEiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsK
LSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0sCi0gICAgICAgICAgICAgIFsiTGFzdC1N
b2RpZmllZCIsIC0zMDAwXSwKLSAgICAgICAgICAgICAgWyJWYXJ5IiwgIkZvbyJdCi0gICAgICAg
ICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90
eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAg
ICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXNuJ3QgaW52YWxpZGF0ZSBleGlzdGlu
ZyBWYXJ5IHJlc3BvbnNlIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJGb28iLCAiMSJdCi0g
ICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAg
ICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKLSAgICAgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwg
LTMwMDBdLAotICAgICAgICAgICAgICBbIlZhcnkiLCAiRm9vIl0KLSAgICAgICAgICAgIF0sCi0g
ICAgICAgICAgICByZXNwb25zZV9ib2R5OiBodHRwX2NvbnRlbnQoJ2Zvb18xJykKLSAgICAgICAg
ICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAg
ICAgICAgICBbIkZvbyIsICIyIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25z
ZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAotICAgICAgICAg
ICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCi0gICAgICAgICAgICAgIFsiVmFyeSIsICJG
b28iXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2Fj
aGVkIiwKLSAgICAgICAgICAgIHJlc3BvbnNlX2JvZHk6IGh0dHBfY29udGVudCgnZm9vXzInKSwK
LSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczog
WwotICAgICAgICAgICAgICBbIkZvbyIsICIxIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICByZXNwb25zZV9ib2R5OiBodHRwX2NvbnRlbnQoJ2Zvb18xJyksCi0gICAgICAgICAgICBleHBl
Y3RlZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAg
ICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCBwYXkgYXR0ZW50aW9uIHRv
IGhlYWRlcnMgbm90IGxpc3RlZCBpbiBWYXJ5IiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJG
b28iLCAiMSJdLAotICAgICAgICAgICAgICBbIk90aGVyIiwgIjIiXQotICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJFeHBpcmVz
IiwgNTAwMF0sCi0gICAgICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKLSAgICAg
ICAgICAgICAgWyJWYXJ5IiwgIkZvbyJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgIH0sCi0g
ICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAg
IFsiRm9vIiwgIjEiXSwKLSAgICAgICAgICAgICAgWyJPdGhlciIsICIzIl0KLSAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0KLSAg
ICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgcmV1
c2VzIHR3by13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgbWF0Y2hlcyIsCi0gICAgICAg
IHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBb
Ci0gICAgICAgICAgICAgIFsiRm9vIiwgIjEiXSwKLSAgICAgICAgICAgICAgWyJCYXIiLCAiYWJj
Il0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAg
ICAgICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAotICAgICAgICAgICAgICBbIkxhc3QtTW9kaWZp
ZWQiLCAtMzAwMF0sCi0gICAgICAgICAgICAgIFsiVmFyeSIsICJGb28sIEJhciJdCi0gICAgICAg
ICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hl
YWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJGb28iLCAiMSJdLAotICAgICAgICAgICAgICBbIkJh
ciIsICJhYmMiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJj
YWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAg
ICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hl
biByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2giLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAg
IHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIs
ICIxIl0sCi0gICAgICAgICAgICAgIFsiQmFyIiwgImFiYyJdCi0gICAgICAgICAgICBdLAotICAg
ICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCA1
MDAwXSwKLSAgICAgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAotICAgICAgICAg
ICAgICBbIlZhcnkiLCAiRm9vLCBCYXIiXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0g
ICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAg
IFsiRm9vIiwgIjIiXSwKLSAgICAgICAgICAgICAgWyJCYXIiLCAiYWJjIl0KLSAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9
Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hl
IGRvZXNuJ3QgdXNlIHR3by13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3Qgb21pdHMgdmFy
aWFudCBoZWFkZXIiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIsICIxIl0KLSAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAg
IFsiRXhwaXJlcyIsIDUwMDBdLAotICAgICAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAw
MF0sCi0gICAgICAgICAgICAgIFsiVmFyeSIsICJGb28sIEJhciJdCi0gICAgICAgICAgICBdCi0g
ICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90
X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAg
ICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3aGVu
IHJlcXVlc3QgbWF0Y2hlcyIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAg
ICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRm9vIiwgIjEiXSwK
LSAgICAgICAgICAgICAgWyJCYXIiLCAiYWJjIl0sCi0gICAgICAgICAgICAgIFsiQmF6IiwgIjc4
OSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAg
ICAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKLSAgICAgICAgICAgICAgWyJMYXN0LU1vZGlm
aWVkIiwgLTMwMDBdLAotICAgICAgICAgICAgICBbIlZhcnkiLCAiRm9vLCBCYXIsIEJheiJdCi0g
ICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1
ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJGb28iLCAiMSJdLAotICAgICAgICAgICAg
ICBbIkJhciIsICJhYmMiXSwKLSAgICAgICAgICAgICAgWyJCYXoiLCAiNzg5Il0KLSAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0K
LSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUg
ZG9lc24ndCB1c2UgdGhyZWUtd2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3Qg
bWF0Y2giLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
cXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIsICIxIl0sCi0gICAgICAgICAg
ICAgIFsiQmFyIiwgImFiYyJdLAotICAgICAgICAgICAgICBbIkJheiIsICI3ODkiXQotICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAg
WyJFeHBpcmVzIiwgNTAwMF0sCi0gICAgICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAw
XSwKLSAgICAgICAgICAgICAgWyJWYXJ5IiwgIkZvbywgQmFyLCBCYXoiXQotICAgICAgICAgICAg
XQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJz
OiBbCi0gICAgICAgICAgICAgIFsiRm9vIiwgIjIiXSwKLSAgICAgICAgICAgICAgWyJCYXIiLCAi
YWJjIl0sCi0gICAgICAgICAgICAgIFsiQmF6IiwgIjc4OSJdCi0gICAgICAgICAgICBdLAotICAg
ICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAg
ICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0
IHVzZSB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaCwg
cmVnYXJkbGVzcyBvZiBoZWFkZXIgb3JkZXIiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkZv
byIsICIxIl0sCi0gICAgICAgICAgICAgIFsiQmFyIiwgImFiYzQiXSwKLSAgICAgICAgICAgICAg
WyJCYXoiLCAiNzg5Il0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25zZV9oZWFk
ZXJzOiBbCi0gICAgICAgICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAotICAgICAgICAgICAgICBb
Ikxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCi0gICAgICAgICAgICAgIFsiVmFyeSIsICJGb28sIEJh
ciwgQmF6Il0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIsICIxIl0sCi0g
ICAgICAgICAgICAgIFsiQmFyIiwgImFiYyJdLAotICAgICAgICAgICAgICBbIkJheiIsICI3ODki
XQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVk
IgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFt
ZTogIkhUVFAgY2FjaGUgdXNlcyB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3aGVuIGJvdGggcmVx
dWVzdCBhbmQgdGhlIG9yaWdpbmFsIHJlcXVlc3Qgb21pdGVkIGEgdmFyaWFudCBoZWFkZXIiLAot
ICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVh
ZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIsICIxIl0sCi0gICAgICAgICAgICAgIFsiQmF6
IiwgIjc4OSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczog
WwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKLSAgICAgICAgICAgICAgWyJMYXN0
LU1vZGlmaWVkIiwgLTMwMDBdLAotICAgICAgICAgICAgICBbIlZhcnkiLCAiRm9vLCBCYXIsIEJh
eiJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAg
ICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJGb28iLCAiMSJdLAotICAgICAg
ICAgICAgICBbIkJheiIsICI3ODkiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVj
dGVkX3R5cGU6ICJjYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAg
ICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBWYXJ5IHJlc3BvbnNl
IHdpdGggYSBmaWVsZCB2YWx1ZSBvZiAnKiciLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkZv
byIsICIxIl0sCi0gICAgICAgICAgICAgIFsiQmF6IiwgIjc4OSJdCi0gICAgICAgICAgICBdLAot
ICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMi
LCA1MDAwXSwKLSAgICAgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAotICAgICAg
ICAgICAgICBbIlZhcnkiLCAiKiJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyIq
IiwgIjEiXSwKLSAgICAgICAgICAgICAgWyJCYXoiLCAiNzg5Il0KLSAgICAgICAgICAgIF0sCi0g
ICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAg
ICAgIF0KLSAgICAgIH0KLSAgICBdOwotICAgIHJ1bl90ZXN0cyh0ZXN0cyk7Ci0gICAgPC9zY3Jp
cHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1j
YWNoZS93M2MtaW1wb3J0LmxvZwppbmRleCBlODE1NzU4ZmFkOGYyNDFiOGFkNWFiYjk3NjgxNGQw
NDI1YjUxNmFiLi5hYTE4OWM1NTU5YTQ3MDMyZGZmYWViNmY5YjhlZDlmZDFjYjc0MjU0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3czYy1pbXBvcnQubG9nCkBAIC0x
NCwxNyArMTQsMTggQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlLzMwNC11cGRhdGUu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
aHR0cC1jYWNoZS8zMDQtdXBkYXRlLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9SRUFETUUubWQKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvYmFzaWMt
YXV0aC1jYWNoZS10ZXN0LWV4cGVjdGVkLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvYmFzaWMtYXV0aC1jYWNoZS10ZXN0
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvY2MtcmVxdWVzdC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVzcy5odG1sCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2hl
dXJpc3RpYy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9odHRwLWNhY2hlL2NhY2hlLW1vZGUuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJlcXVlc3QuYW55
LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
dHRwLWNhY2hlL2ZyZXNobmVzcy5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLmFueS5qcwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9o
dHRwLWNhY2hlLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0aWFsLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2Fj
aGUvcG9zdC1wYXRjaC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55LmpzCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3BhcnRpYWwu
YW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3NwbGl0LWNhY2hlLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2Fj
aGUvc3RhdHVzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFyeS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy5hbnkuanMKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
dmFyeS5hbnkuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvTUVUQS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL01FVEEueW1sCmluZGV4IDRl
N2ExM2EwYjdmM2JlZmU5NmY2OTNiOTg4YzZmZGZmOTNiODgwNWQuLjg1ZjBhN2QyZWUxMjYxNmFh
N2E1Njk4YjM0Njk1NDgyOWQ4YThiYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvTUVUQS55bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9N
RVRBLnltbApAQCAtMSw0ICsxLDQgQEAKK3NwZWM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJh
cHBzZWMtZmV0Y2gtbWV0YWRhdGEvCiBzdWdnZXN0ZWRfcmV2aWV3ZXJzOgotICAtIHpjb3JwYW4K
ICAgLSBtaWtld2VzdAogICAtIGlWYW5sSXNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2Rvd25sb2FkLmh0dHBz
LnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL21ldGFkYXRhL2Rvd25sb2FkLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxODc5ZTAyYTdmMDk3MjdjODM1NWIwMzRlZjJk
MDI5MzI5Y2ZkZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRh
ZGF0YS9kb3dubG9hZC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NCArMCwwIEBACi0yNzIwYTdmYy04OGMxLTRlNDctODBmZS1kMGI2NGQzOTM2OWUKLQotUEFTUyBs
b2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgZG93bmxvYWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9lbWJl
ZC5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9lbWJlZC5odHRwcy5zdWItZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTE5OTkyMzkyYTAzYmMwNGVjMGZlM2Nl
OTQxYmVkNjlhN2JkZjMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvZW1iZWQuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDIxICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5s
b2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9m
aWxlPWVtYmVkLXNhbWUtc2l0ZS05NjUyNjY4Yy0zYjA3LTQwODktYTk1Zi1kOWE1MzI4MjZhMWIK
LUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0
My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXBvc3QtZW1i
ZWQtc2FtZS1zaXRlLTk2NTI2NjhjLTNiMDctNDA4OS1hOTVmLWQ5YTUzMjgyNmExYgotQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNo
L21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9ZW1iZWQtY3Jvc3Mtc2l0
ZS05NjUyNjY4Yy0zYjA3LTQwODktYTk1Zi1kOWE1MzI4MjZhMWIKLUJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0My9mZXRjaC9tZXRhZGF0YS9y
ZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXBvc3QtZW1iZWQtY3Jvc3Mtc2l0ZS05NjUy
NjY4Yy0zYjA3LTQwODktYTk1Zi1kOWE1MzI4MjZhMWIKLQotCi1QQVNTIFdyYXBwZXI6IHNhbWUt
b3JpZ2luIGVtYmVkCi1QQVNTIFdyYXBwZXI6IE5hdmlnYXRlIHRvIHNhbWUtb3JpZ2luIGVtYmVk
Ci1GQUlMIFdyYXBwZXI6IHNhbWUtc2l0ZSBlbWJlZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRp
c2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRlciBoYXMgYmVlbiByZWNvcmRlZCIKLUZBSUwgV3JhcHBl
cjogTmF2aWdhdGUgdG8gc2FtZS1zaXRlIGVtYmVkIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlz
YWxsb3dlZCB2YWx1ZSAiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIgotRkFJTCBXcmFwcGVy
OiBjcm9zcy1zaXRlIGVtYmVkIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1
ZSAiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIgotRkFJTCBXcmFwcGVyOiBOYXZpZ2F0ZSB0
byBjcm9zcy1zaXRlIGVtYmVkIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1
ZSAiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIgotRkFJTCBzYW1lLW9yaWdpbiBlbWJlZDog
c2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImVtYmVkIiBidXQgZ290ICIi
Ci1GQUlMIHNhbWUtb3JpZ2luIGVtYmVkOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgc2FtZS1vcmlnaW4gZW1iZWQ6IHNl
Yy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdv
dCAiIgotUEFTUyBzYW1lLW9yaWdpbiBlbWJlZDogc2VjLWZldGNoLXVzZXIKLUZBSUwgTmF2aWdh
dGUgdG8gc2FtZS1vcmlnaW4gZW1iZWQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJlbWJlZCIgYnV0IGdvdCAiIgotRkFJTCBOYXZpZ2F0ZSB0byBzYW1lLW9yaWdpbiBl
bWJlZDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5hdmlnYXRlIiBi
dXQgZ290ICIiCi1GQUlMIE5hdmlnYXRlIHRvIHNhbWUtb3JpZ2luIGVtYmVkOiBzZWMtZmV0Y2gt
c2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBB
U1MgTmF2aWdhdGUgdG8gc2FtZS1vcmlnaW4gZW1iZWQ6IHNlYy1mZXRjaC11c2VyCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvZW1iZWQuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2VtYmVkLmh0dHBzLnN1Yi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTU5YjgyMWI0NTU0NDg0ODI3OTAzNTkyMWRm
MDQxYjlkNjNjMDMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0
YWRhdGEvZW1iZWQuaHR0cHMuc3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+Ci08bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibXRyem9zQGdvb2dsZS5jb20iIHRpdGxlPSJNYWNpZWsgVHJ6b3MiPgotPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0v
ZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PS9jb21tb24vdXRpbHMuanM+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0gIGNvbnN0IG5v
bmNlID0gdG9rZW4oKTsKLQotICBjb25zdCBvcmlnaW5zID0gewotICAgICJzYW1lLW9yaWdpbiI6
ICJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0iLAotICAgICJzYW1lLXNpdGUi
OiAgICJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fSIsCi0gICAg
ImNyb3NzLXNpdGUiOiAgImh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBz
XVswXX19IiwKLSAgfTsKLQotICBmb3IgKGxldCBzaXRlIGluIG9yaWdpbnMpIHsKLSAgICBwcm9t
aXNlX3Rlc3QodCA9PiB7Ci0gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4gewotICAgICAgICBsZXQga2V5ID0gImVtYmVkLSIgKyBzaXRlICsgIi0iICsgbm9uY2U7
Ci0KLSAgICAgICAgbGV0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZW1iZWQnKTsKLSAg
ICAgICAgZWwuc3JjID0gb3JpZ2luc1tzaXRlXSArICIvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2Vz
L3JlY29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5OwotICAgICAgICBlbC5vbmxvYWQgPSBfID0+
IHsKLSAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3QiOiAiZW1iZWQiLCAic2l0ZSI6IHNp
dGUsICJ1c2VyIjogIiIsICJtb2RlIjogIm5hdmlnYXRlIn07Ci0gICAgICAgICAgdmFsaWRhdGVf
ZXhwZWN0YXRpb25zKGtleSwgZXhwZWN0ZWQsIHNpdGUgKyAiIGVtYmVkIikKLSAgICAgICAgICAg
IC50aGVuKHJlc29sdmUpCi0gICAgICAgICAgICAuY2F0Y2gocmVqZWN0KTsKLSAgICAgICAgfTsK
LQotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKTsKLSAgICAgIH0pCi0gICAg
fSwgIldyYXBwZXI6ICIgKyBzaXRlICsgIiBlbWJlZCIpOwotCi0gICAgcHJvbWlzZV90ZXN0KHQg
PT4gewotICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAg
ICAgICAgbGV0IGtleSA9ICJwb3N0LWVtYmVkLSIgKyBzaXRlICsgIi0iICsgbm9uY2U7Ci0KLSAg
ICAgICAgbGV0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZW1iZWQnKTsKLSAgICAgICAg
ZWwuc3JjID0gIi9jb21tb24vYmxhbmsuaHRtbCI7Ci0gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCBfID0+IHsKLSAgICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
XyA9PiB7Ci0gICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3QiOiAiZW1iZWQiLCAic2l0
ZSI6IHNpdGUsICJ1c2VyIjoiIiwgIm1vZGUiOiJuYXZpZ2F0ZSJ9OwotICAgICAgICAgICAgdmFs
aWRhdGVfZXhwZWN0YXRpb25zKGtleSwgZXhwZWN0ZWQsICJOYXZpZ2F0ZSB0byAiICsgc2l0ZSAr
ICIgZW1iZWQiKQotICAgICAgICAgICAgICAudGhlbihyZXNvbHZlKQotICAgICAgICAgICAgICAu
Y2F0Y2gocmVqZWN0KTsKLSAgICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7Ci0KLSAgICAgICAg
ICAvLyBOYXZpZ2F0ZSB0aGUgZXhpc3RpbmcgYDxlbWJlZD5gCi0gICAgICAgICAgd2luZG93LmZy
YW1lc1t3aW5kb3cubGVuZ3RoIC0gMV0ubG9jYXRpb24gPSBvcmlnaW5zW3NpdGVdICsgIi9mZXRj
aC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ci0gICAg
ICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKLQotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGVsKTsKLSAgICAgIH0pCi0gICAgfSwgIldyYXBwZXI6IE5hdmlnYXRlIHRvICIgKyBzaXRl
ICsgIiBlbWJlZCIpOwotICB9Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZW1iZWQuaHR0cHMu
c3ViLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9lbWJlZC5odHRwcy5zdWIudGVudGF0aXZlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTkwMGRiZGYwODEzOWMwMDgyMmY0NTQ1NDI1Y2JlNTJkMzVlZjU2MgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvbWV0YWRhdGEvZW1iZWQuaHR0cHMuc3ViLnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEs
NjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KKzxsaW5rIHJl
bD0iYXV0aG9yIiBocmVmPSJtdHJ6b3NAZ29vZ2xlLmNvbSIgdGl0bGU9Ik1hY2llayBUcnpvcyI+
Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9L2NvbW1vbi91dGlscy5qcz48L3NjcmlwdD4KKzxib2R5PgorCis8cD5SZWxldmFudCBp
c3N1ZTogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy81MTMi
PgorJmx0O2VtYmVkPiBzaG91bGQgc3VwcG9ydCBsb2FkaW5nIHJhbmRvbSBIVE1MIGRvY3VtZW50
cywgbGlrZSAmbHQ7b2JqZWN0PgorPC9hPjwvcD4KKworPHNjcmlwdD4KKyAgY29uc3Qgbm9uY2Ug
PSB0b2tlbigpOworCisgIGNvbnN0IG9yaWdpbnMgPSB7CisgICAgInNhbWUtb3JpZ2luIjogImh0
dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11bMF19fSIsCisgICAgInNhbWUtc2l0ZSI6ICAg
Imh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19IiwKKyAgICAiY3Jv
c3Mtc2l0ZSI6ICAiaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBd
fX0iLAorICB9OworCisgIGZvciAobGV0IHNpdGUgaW4gb3JpZ2lucykgeworICAgIHByb21pc2Vf
dGVzdCh0ID0+IHsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9
PiB7CisgICAgICAgIGxldCBrZXkgPSAiZW1iZWQtIiArIHNpdGUgKyAiLSIgKyBub25jZTsKKwor
ICAgICAgICBsZXQgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbWJlZCcpOworICAgICAg
ICBlbC5zcmMgPSBvcmlnaW5zW3NpdGVdICsgIi9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVj
b3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7CisgICAgICAgIGVsLm9ubG9hZCA9IF8gPT4gewor
ICAgICAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdCI6ICJlbWJlZCIsICJzaXRlIjogc2l0ZSwg
InVzZXIiOiAiIiwgIm1vZGUiOiAibmF2aWdhdGUifTsKKyAgICAgICAgICB2YWxpZGF0ZV9leHBl
Y3RhdGlvbnMoa2V5LCBleHBlY3RlZCwgc2l0ZSArICIgZW1iZWQiKQorICAgICAgICAgICAgLnRo
ZW4ocmVzb2x2ZSkKKyAgICAgICAgICAgIC5jYXRjaChyZWplY3QpOworICAgICAgICB9OworCisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpOworICAgICAgfSkKKyAgICB9LCAi
V3JhcHBlcjogIiArIHNpdGUgKyAiIGVtYmVkIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7
CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICBsZXQga2V5ID0gInBvc3QtZW1iZWQtIiArIHNpdGUgKyAiLSIgKyBub25jZTsKKworICAgICAg
ICBsZXQgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdlbWJlZCcpOworICAgICAgICBlbC5z
cmMgPSAiL2NvbW1vbi9ibGFuay5odG1sIjsKKyAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIF8gPT4geworICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBfID0+
IHsKKyAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdCI6ICJlbWJlZCIsICJzaXRlIjog
c2l0ZSwgInVzZXIiOiIiLCAibW9kZSI6Im5hdmlnYXRlIn07CisgICAgICAgICAgICB2YWxpZGF0
ZV9leHBlY3RhdGlvbnMoa2V5LCBleHBlY3RlZCwgIk5hdmlnYXRlIHRvICIgKyBzaXRlICsgIiBl
bWJlZCIpCisgICAgICAgICAgICAgIC50aGVuKHJlc29sdmUpCisgICAgICAgICAgICAgIC5jYXRj
aChyZWplY3QpOworICAgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICAgIC8v
IE5hdmlnYXRlIHRoZSBleGlzdGluZyBgPGVtYmVkPmAKKyAgICAgICAgICB3aW5kb3cuZnJhbWVz
W3dpbmRvdy5sZW5ndGggLSAxXS5sb2NhdGlvbiA9IG9yaWdpbnNbc2l0ZV0gKyAiL2ZldGNoL21l
dGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9IiArIGtleTsKKyAgICAgICAg
fSwgeyBvbmNlOiB0cnVlIH0pOworCisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZWwpOworICAgICAgfSkKKyAgICB9LCAiV3JhcHBlcjogTmF2aWdhdGUgdG8gIiArIHNpdGUgKyAi
IGVtYmVkIik7CisgIH0KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mYXZpY29uLmh0dHBzLnN1
Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL21ldGFkYXRhL2Zhdmljb24uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY3NGIxOTY0MGFjMTBmYWNjNmIzZDc3MGQ4MzA1ZjM4
NjEwM2JjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRh
L2Zhdmljb24uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAs
MCBAQAotCi1GQUlMIFNhbWUtT3JpZ2luIGZhdmljb24gYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBk
aXNhbGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFzIGJlZW4gcmVjb3JkZWQiCi1GQUlMIFNhbWUt
U2l0ZSBmYXZpY29uIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiTm8g
aGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIgotRkFJTCBDcm9zcy1TaXRlIGZhdmljb24gYXNzZXJ0
X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFzIGJlZW4gcmVj
b3JkZWQiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gtcHJlZmxpZ2h0Lmh0dHBzLnN1Yi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL2ZldGNoLXByZWZsaWdodC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDUyYzZjNGE5NDY4YmZjMjZlOWY3NDY1YTg0NTkwMWVm
MTI4YzZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
ZmV0Y2gtcHJlZmxpZ2h0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw2ICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5s
b2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5Ci1C
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMv
ZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weQotCi1GQUlMIFNhbWUtc2l0
ZSBmZXRjaCB3aXRoIHByZWZsaWdodCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCi1GQUlMIENyb3NzLXNp
dGUgZmV0Y2ggd2l0aCBwcmVmbGlnaHQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFk
YXRhL2ZldGNoLXByZWZsaWdodC5odHRwcy5zdWIuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLXByZWZsaWdo
dC5odHRwcy5zdWIuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2
MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gtcHJlZmxpZ2h0Lmh0
dHBzLnN1Yi5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJl
ZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVz
dCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLXBy
ZWZsaWdodC5odHRwcy5zdWIuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC1wcmVmbGlnaHQuaHR0cHMuc3ViLmFu
eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kNTI0NzQzNTNiYTU1NzNlZTQ1YTQwMDU2NzNjYWY1NjY3ZmQ4OGY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC1wcmVmbGlnaHQuaHR0cHMuc3ViLmFueS5qcwpA
QCAtMCwwICsxLDI5IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTog
c2NyaXB0PS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzCisKKy8vIFNpdGUKK3By
b21pc2VfdGVzdCh0ID0+IHsKKyAgcmV0dXJuIHZhbGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0b21f
dXJsKCJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9t
ZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5IiwKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICBtb2RlOiAiY29ycyIsCisgICAgICAgICAgICAgICAgICBoZWFkZXJz
OiB7ICd4LXRlc3QnOiAndGVzdGluZycgfQorICAgICAgICAgICAgICAgIH0sIHsKKyAgICAgICAg
ICAic2l0ZSI6ICJzYW1lLXNpdGUiLAorICAgICAgICAgICJ1c2VyIjogIiIsCisgICAgICAgICAg
Im1vZGUiOiAiY29ycyIsCisgICAgICAgICAgImRlc3QiOiAiZW1wdHkiCisgICAgICAgIH0sICJT
YW1lLXNpdGUgZmV0Y2ggd2l0aCBwcmVmbGlnaHQiKTsKK30sICJTYW1lLXNpdGUgZmV0Y2ggd2l0
aCBwcmVmbGlnaHQiKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICByZXR1cm4gdmFsaWRhdGVf
ZXhwZWN0YXRpb25zX2N1c3RvbV91cmwoImh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3Bv
cnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHki
LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIG1vZGU6ICJjb3JzIiwKKyAg
ICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ3gtdGVzdCc6ICd0ZXN0aW5nJyB9CisgICAgICAg
ICAgICAgICAgfSwgeworICAgICAgICAgICJzaXRlIjogImNyb3NzLXNpdGUiLAorICAgICAgICAg
ICJ1c2VyIjogIiIsCisgICAgICAgICAgIm1vZGUiOiAiY29ycyIsCisgICAgICAgICAgImRlc3Qi
OiAiZW1wdHkiCisgICAgICAgIH0sICJDcm9zcy1zaXRlIGZldGNoIHdpdGggcHJlZmxpZ2h0Iik7
Cit9LCAiQ3Jvc3Mtc2l0ZSBmZXRjaCB3aXRoIHByZWZsaWdodCIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9m
ZXRjaC1wcmVmbGlnaHQuaHR0cHMuc3ViLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gtcHJlZmxp
Z2h0Lmh0dHBzLnN1Yi5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNi
M2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gtcHJl
ZmxpZ2h0Lmh0dHBzLnN1Yi5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0
aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9t
ZXRhZGF0YS9mZXRjaC1wcmVmbGlnaHQuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLXByZWZsaWdo
dC5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM5ODdlMWNh
NGI4YjIzMmU0NWQ4ZTY0OWIzYjFiN2FkNjMxZDFhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLXByZWZsaWdodC5odHRwcy5zdWIuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gv
bWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcz48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gIC8vIFNp
dGUKLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlv
bnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hvc3RzW11bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBd
fX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weSIsCi0gICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICBtb2RlOiAiY29ycyIsCi0gICAgICAgICAgICAg
ICAgICAgaGVhZGVyczogeyAneC10ZXN0JzogJ3Rlc3RpbmcnIH0KLSAgICAgICAgICAgICAgICAg
fSwgewotICAgICAgICAgICAgInNpdGUiOiAic2FtZS1zaXRlIiwKLSAgICAgICAgICAgICJ1c2Vy
IjogIiIsCi0gICAgICAgICAgICAibW9kZSI6ICJjb3JzIiwKLSAgICAgICAgICAgICJkZXN0Ijog
ImVtcHR5IgotICAgICAgICAgIH0sICJTYW1lLXNpdGUgZmV0Y2ggd2l0aCBwcmVmbGlnaHQiKTsK
LSAgfSwgIlNhbWUtc2l0ZSBmZXRjaCB3aXRoIHByZWZsaWdodCIpOwotCi0gIHByb21pc2VfdGVz
dCh0ID0+IHsKLSAgICByZXR1cm4gdmFsaWRhdGVfZXhwZWN0YXRpb25zX2N1c3RvbV91cmwoImh0
dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFk
YXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkiLAotICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgbW9kZTogImNvcnMiLAotICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6
IHsgJ3gtdGVzdCc6ICd0ZXN0aW5nJyB9Ci0gICAgICAgICAgICAgICAgIH0sIHsKLSAgICAgICAg
ICAgICJzaXRlIjogImNyb3NzLXNpdGUiLAotICAgICAgICAgICAgInVzZXIiOiAiIiwKLSAgICAg
ICAgICAgICJtb2RlIjogImNvcnMiLAotICAgICAgICAgICAgImRlc3QiOiAiZW1wdHkiCi0gICAg
ICAgICAgfSwgIkNyb3NzLXNpdGUgZmV0Y2ggd2l0aCBwcmVmbGlnaHQiKTsKLSAgfSwgIkNyb3Nz
LXNpdGUgZmV0Y2ggd2l0aCBwcmVmbGlnaHQiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9m
ZXRjaC12aWEtc2VydmljZXdvcmtlci0tZmFsbGJhY2suaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRh
dGEvZmV0Y2gtdmlhLXNlcnZpY2V3b3JrZXItLWZhbGxiYWNrLmh0dHBzLnN1Yi1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyZjBkYjEwZGM0OGJiYzhlM2Y3NzZl
OGQ5MmM2MGExYmQwZTVhZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS9mZXRjaC12aWEtc2VydmljZXdvcmtlci0tZmFsbGJhY2suaHR0cHMuc3ViLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotCi1QQVNTIFNlYy1GZXRj
aCBoZWFkZXJzIGFmdGVyIFNXIGZhbGxiYWNrCi1GQUlMIHVuZGVmaW5lZDogc2VjLWZldGNoLWRl
c3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImVtcHR5IiBidXQgZ290ICIiCi1GQUlMIHVuZGVm
aW5lZDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5vLWNvcnMiIGJ1
dCBnb3QgIiIKLUZBSUwgdW5kZWZpbmVkOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1MgdW5kZWZpbmVkOiBzZWMtZmV0
Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLXZpYS1zZXJ2aWNld29ya2VyLS1yZXNwb25k
V2l0aC5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC12aWEtc2VydmljZXdvcmtlci0t
cmVzcG9uZFdpdGguaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYTJmMGRiMTBkYzQ4YmJjOGUzZjc3NmU4ZDkyYzYwYTFiZDBlNWFlNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLXZpYS1zZXJ2
aWNld29ya2VyLS1yZXNwb25kV2l0aC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNyArMCwwIEBACi0KLVBBU1MgU2VjLUZldGNoIGhlYWRlcnMgYWZ0ZXIgU1cgZmFs
bGJhY2sKLUZBSUwgdW5kZWZpbmVkOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiZW1wdHkiIGJ1dCBnb3QgIiIKLUZBSUwgdW5kZWZpbmVkOiBzZWMtZmV0Y2gtbW9kZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibm8tY29ycyIgYnV0IGdvdCAiIgotRkFJTCB1bmRlZmlu
ZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIg
YnV0IGdvdCAiIgotUEFTUyB1bmRlZmluZWQ6IHNlYy1mZXRjaC11c2VyCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRh
dGEvZmV0Y2guaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2guaHR0cHMuc3ViLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQyNDMyZDk0NmM5ZGJlY2Q2
ZjhlYjY1ZmM1ZmJjMjk1MjcwM2NiOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyNiArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6
Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNv
bi5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAu
MTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkKLQotUEFTUyBT
YW1lLW9yaWdpbiBmZXRjaAotRkFJTCBTYW1lLXNpdGUgZmV0Y2ggcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9y
IgotRkFJTCBDcm9zcy1zaXRlIGZldGNoIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLVBBU1MgU2FtZS1v
cmlnaW4gbW9kZQotUEFTUyBDT1JTIG1vZGUKLVBBU1Mgbm8tQ09SUyBtb2RlCi1GQUlMIFNhbWUt
b3JpZ2luIGZldGNoOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZW1w
dHkiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1vcmlnaW4gZmV0Y2g6IHNlYy1mZXRjaC1tb2RlIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJjb3JzIiBidXQgZ290ICIiCi1GQUlMIFNhbWUtb3JpZ2lu
IGZldGNoOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmln
aW4iIGJ1dCBnb3QgIiIKLVBBU1MgU2FtZS1vcmlnaW4gZmV0Y2g6IHNlYy1mZXRjaC11c2VyCi1G
QUlMIFNhbWUtb3JpZ2luIG1vZGU6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJlbXB0eSIgYnV0IGdvdCAiIgotRkFJTCBTYW1lLW9yaWdpbiBtb2RlOiBzZWMtZmV0Y2gt
bW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLUZB
SUwgU2FtZS1vcmlnaW4gbW9kZTogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIFNhbWUtb3JpZ2luIG1vZGU6IHNlYy1m
ZXRjaC11c2VyCi1GQUlMIENPUlMgbW9kZTogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgImVtcHR5IiBidXQgZ290ICIiCi1GQUlMIENPUlMgbW9kZTogc2VjLWZldGNoLW1v
ZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNvcnMiIGJ1dCBnb3QgIiIKLUZBSUwgQ09SUyBt
b2RlOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4i
IGJ1dCBnb3QgIiIKLVBBU1MgQ09SUyBtb2RlOiBzZWMtZmV0Y2gtdXNlcgotRkFJTCBuby1DT1JT
IG1vZGU6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJlbXB0eSIgYnV0
IGdvdCAiIgotRkFJTCBuby1DT1JTIG1vZGU6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJuby1jb3JzIiBidXQgZ290ICIiCi1GQUlMIG5vLUNPUlMgbW9kZTogc2VjLWZl
dGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIi
Ci1QQVNTIG5vLUNPUlMgbW9kZTogc2VjLWZldGNoLXVzZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRj
aC5odHRwcy5zdWIuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0dHBzLnN1Yi5hbnkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS9mZXRjaC5odHRwcy5zdWIuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1
biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS9mZXRjaC5odHRwcy5zdWIuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC5odHRwcy5zdWIuYW55
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFlZWM1Y2RmMmRjMTFkZTEzN2NkNGE1ZWViYmE5MzFjZDE2YTkzN2QK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0dHBzLnN1Yi5hbnkuanMKQEAgLTAsMCArMSw1
OCBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHNjcmlwdD0vZmV0
Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcworCisvLyBTaXRlCitwcm9taXNlX3Rlc3Qo
dCA9PiB7CisgIHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6
Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9l
Y2hvLWFzLWpzb24ucHkiLCB7fSwgeworICAgICAgICAgICJzaXRlIjogInNhbWUtb3JpZ2luIiwK
KyAgICAgICAgICAidXNlciI6ICIiLAorICAgICAgICAgICJtb2RlIjogImNvcnMiLAorICAgICAg
ICAgICJkZXN0IjogImVtcHR5IgorICAgICAgICB9LCAiU2FtZS1vcmlnaW4gZmV0Y2giKTsKK30s
ICJTYW1lLW9yaWdpbiBmZXRjaCIpOworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgIHJldHVybiB2
YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hvc3RzW11bd3d3XX19
Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNv
bi5weSIsIHt9LCB7CisgICAgICAgICAgInNpdGUiOiAic2FtZS1zaXRlIiwKKyAgICAgICAgICAi
dXNlciI6ICIiLAorICAgICAgICAgICJtb2RlIjogImNvcnMiLAorICAgICAgICAgICJkZXN0Ijog
ImVtcHR5IgorICAgICAgICB9LCAiU2FtZS1zaXRlIGZldGNoIik7Cit9LCAiU2FtZS1zaXRlIGZl
dGNoIik7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgcmV0dXJuIHZhbGlkYXRlX2V4cGVjdGF0
aW9uc19jdXN0b21fdXJsKCJodHRwczovL3t7aG9zdHNbYWx0XVt3d3ddfX06e3twb3J0c1todHRw
c11bMF19fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5Iiwge30sIHsK
KyAgICAgICAgICAic2l0ZSI6ICJjcm9zcy1zaXRlIiwKKyAgICAgICAgICAidXNlciI6ICIiLAor
ICAgICAgICAgICJtb2RlIjogImNvcnMiLAorICAgICAgICAgICJkZXN0IjogImVtcHR5IgorICAg
ICAgICB9LCAiQ3Jvc3Mtc2l0ZSBmZXRjaCIpOworfSwgIkNyb3NzLXNpdGUgZmV0Y2giKTsKKwor
Ly8gTW9kZQorcHJvbWlzZV90ZXN0KHQgPT4geworICByZXR1cm4gdmFsaWRhdGVfZXhwZWN0YXRp
b25zX2N1c3RvbV91cmwoImh0dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11bMF19fS9mZXRj
aC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5Iiwge21vZGU6ICJzYW1lLW9yaWdp
biJ9LCB7CisgICAgICAgICAgInNpdGUiOiAic2FtZS1vcmlnaW4iLAorICAgICAgICAgICJ1c2Vy
IjogIiIsCisgICAgICAgICAgIm1vZGUiOiAic2FtZS1vcmlnaW4iLAorICAgICAgICAgICJkZXN0
IjogImVtcHR5IgorICAgICAgICB9LCAiU2FtZS1vcmlnaW4gbW9kZSIpOworfSwgIlNhbWUtb3Jp
Z2luIG1vZGUiKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICByZXR1cm4gdmFsaWRhdGVfZXhw
ZWN0YXRpb25zX2N1c3RvbV91cmwoImh0dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11bMF19
fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5Iiwge21vZGU6ICJjb3Jz
In0sIHsKKyAgICAgICAgICAic2l0ZSI6ICJzYW1lLW9yaWdpbiIsCisgICAgICAgICAgInVzZXIi
OiAiIiwKKyAgICAgICAgICAibW9kZSI6ICJjb3JzIiwKKyAgICAgICAgICAiZGVzdCI6ICJlbXB0
eSIKKyAgICAgICAgfSwgIkNPUlMgbW9kZSIpOworfSwgIkNPUlMgbW9kZSIpOworCitwcm9taXNl
X3Rlc3QodCA9PiB7CisgIHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3VybCgi
aHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFkYXRhL3Jlc291
cmNlcy9lY2hvLWFzLWpzb24ucHkiLCB7bW9kZTogIm5vLWNvcnMifSwgeworICAgICAgICAgICJz
aXRlIjogInNhbWUtb3JpZ2luIiwKKyAgICAgICAgICAidXNlciI6ICIiLAorICAgICAgICAgICJt
b2RlIjogIm5vLWNvcnMiLAorICAgICAgICAgICJkZXN0IjogImVtcHR5IgorICAgICAgICB9LCAi
bm8tQ09SUyBtb2RlIik7Cit9LCAibm8tQ09SUyBtb2RlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNo
Lmh0dHBzLnN1Yi5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0dHBzLnN1Yi5hbnkud29ya2Vy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhj
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2guaHR0cHMuc3ViLmFueS53b3JrZXIuaHRtbApA
QCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3Qg
aW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0dHBzLnN1Yi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9m
ZXRjaC5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI3ZDIw
MDA5NDQyYWMwMmM1ZTgwMTFkMjhiNjdjYzAwMTQzMzljNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9mZXRjaC9tZXRhZGF0
YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAgLy8gU2l0ZQotICBw
cm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIHZhbGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0
b21fdXJsKCJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0YWRh
dGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weSIsIHt9LCB7Ci0gICAgICAgICAgICAic2l0ZSI6
ICJzYW1lLW9yaWdpbiIsCi0gICAgICAgICAgICAidXNlciI6ICIiLAotICAgICAgICAgICAgIm1v
ZGUiOiAiY29ycyIsCi0gICAgICAgICAgICAiZGVzdCI6ICJlbXB0eSIKLSAgICAgICAgICB9LCAi
U2FtZS1vcmlnaW4gZmV0Y2giKTsKLSAgfSwgIlNhbWUtb3JpZ2luIGZldGNoIik7Ci0KLSAgcHJv
bWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9t
X3VybCgiaHR0cHM6Ly97e2hvc3RzW11bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gv
bWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weSIsIHt9LCB7Ci0gICAgICAgICAgICAi
c2l0ZSI6ICJzYW1lLXNpdGUiLAotICAgICAgICAgICAgInVzZXIiOiAiIiwKLSAgICAgICAgICAg
ICJtb2RlIjogImNvcnMiLAotICAgICAgICAgICAgImRlc3QiOiAiZW1wdHkiCi0gICAgICAgICAg
fSwgIlNhbWUtc2l0ZSBmZXRjaCIpOwotICB9LCAiU2FtZS1zaXRlIGZldGNoIik7Ci0KLSAgcHJv
bWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9t
X3VybCgiaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0
Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weSIsIHt9LCB7Ci0gICAgICAgICAg
ICAic2l0ZSI6ICJjcm9zcy1zaXRlIiwKLSAgICAgICAgICAgICJ1c2VyIjogIiIsCi0gICAgICAg
ICAgICAibW9kZSI6ICJjb3JzIiwKLSAgICAgICAgICAgICJkZXN0IjogImVtcHR5IgotICAgICAg
ICAgIH0sICJDcm9zcy1zaXRlIGZldGNoIik7Ci0gIH0sICJDcm9zcy1zaXRlIGZldGNoIik7Ci0K
LSAgLy8gTW9kZQotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIHZhbGlkYXRlX2V4
cGVjdGF0aW9uc19jdXN0b21fdXJsKCJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBd
fX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weSIsIHttb2RlOiAic2Ft
ZS1vcmlnaW4ifSwgewotICAgICAgICAgICAgInNpdGUiOiAic2FtZS1vcmlnaW4iLAotICAgICAg
ICAgICAgInVzZXIiOiAiIiwKLSAgICAgICAgICAgICJtb2RlIjogInNhbWUtb3JpZ2luIiwKLSAg
ICAgICAgICAgICJkZXN0IjogImVtcHR5IgotICAgICAgICAgIH0sICJTYW1lLW9yaWdpbiBtb2Rl
Iik7Ci0gIH0sICJTYW1lLW9yaWdpbiBtb2RlIik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewot
ICAgIHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hv
c3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFz
LWpzb24ucHkiLCB7bW9kZTogImNvcnMifSwgewotICAgICAgICAgICAgInNpdGUiOiAic2FtZS1v
cmlnaW4iLAotICAgICAgICAgICAgInVzZXIiOiAiIiwKLSAgICAgICAgICAgICJtb2RlIjogImNv
cnMiLAotICAgICAgICAgICAgImRlc3QiOiAiZW1wdHkiCi0gICAgICAgICAgfSwgIkNPUlMgbW9k
ZSIpOwotICB9LCAiQ09SUyBtb2RlIik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJl
dHVybiB2YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hvc3R9fTp7
e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24u
cHkiLCB7bW9kZTogIm5vLWNvcnMifSwgewotICAgICAgICAgICAgInNpdGUiOiAic2FtZS1vcmln
aW4iLAotICAgICAgICAgICAgInVzZXIiOiAiIiwKLSAgICAgICAgICAgICJtb2RlIjogIm5vLWNv
cnMiLAotICAgICAgICAgICAgImRlc3QiOiAiZW1wdHkiCi0gICAgICAgICAgfSwgIm5vLUNPUlMg
bW9kZSIpOwotICB9LCAibm8tQ09SUyBtb2RlIik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
ZmV0Y2guc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2guc3ViLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWFlMGQyMDJiZDExYmNmNWFlMzEyOWE0MzY3Y2UwNjM4
YTA5NTJiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRh
L2ZldGNoLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0K
LVBBU1MgaHR0cC0+aHR0cHMgZmV0Y2ggKGNyb3NzLXNjaGVtZSA9PiBjcm9zcy1zaXRlKQotUEFT
UyBodHRwLT5odHRwIGZldGNoIChub24tdHJ1c3R3b3J0aHkgZGVzdGluYXRpb24gPT4gbm8gbWV0
YWRhdGEpCi1GQUlMIGh0dHAtPmh0dHBzIGZldGNoIChjcm9zcy1zY2hlbWUgPT4gY3Jvc3Mtc2l0
ZSk6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJlbXB0eSIgYnV0IGdv
dCAiIgotRkFJTCBodHRwLT5odHRwcyBmZXRjaCAoY3Jvc3Mtc2NoZW1lID0+IGNyb3NzLXNpdGUp
OiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY29ycyIgYnV0IGdvdCAi
IgotRkFJTCBodHRwLT5odHRwcyBmZXRjaCAoY3Jvc3Mtc2NoZW1lID0+IGNyb3NzLXNpdGUpOiBz
ZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY3Jvc3Mtc2l0ZSIgYnV0IGdv
dCAiIgotUEFTUyBodHRwLT5odHRwcyBmZXRjaCAoY3Jvc3Mtc2NoZW1lID0+IGNyb3NzLXNpdGUp
OiBzZWMtZmV0Y2gtdXNlcgotUEFTUyBodHRwLT5odHRwIGZldGNoIChub24tdHJ1c3R3b3J0aHkg
ZGVzdGluYXRpb24gPT4gbm8gbWV0YWRhdGEpOiBzZWMtZmV0Y2gtZGVzdAotUEFTUyBodHRwLT5o
dHRwIGZldGNoIChub24tdHJ1c3R3b3J0aHkgZGVzdGluYXRpb24gPT4gbm8gbWV0YWRhdGEpOiBz
ZWMtZmV0Y2gtbW9kZQotUEFTUyBodHRwLT5odHRwIGZldGNoIChub24tdHJ1c3R3b3J0aHkgZGVz
dGluYXRpb24gPT4gbm8gbWV0YWRhdGEpOiBzZWMtZmV0Y2gtc2l0ZQotUEFTUyBodHRwLT5odHRw
IGZldGNoIChub24tdHJ1c3R3b3J0aHkgZGVzdGluYXRpb24gPT4gbm8gbWV0YWRhdGEpOiBzZWMt
ZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZvbnQuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRh
dGEvZm9udC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1YjkyMDBlZGZlOTI2ZjJlZWFkZGRlY2MxYmZiOWZjNWE1MGU5ZmIxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZm9udC5odHRwcy5zdWItZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRh
L3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9Zm9udC1zYW1lLXNpdGUKLUJsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0My9mZXRjaC9t
ZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPWZvbnQtY3Jvc3Mtc2l0ZQot
MQotMgotMwotCi1QQVNTIFNhbWUtT3JpZ2luIGZvbnQKLUZBSUwgU2FtZS1TaXRlIGZvbnQgYXNz
ZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFzIGJlZW4g
cmVjb3JkZWQiCi1GQUlMIENyb3NzLVNpdGUgZm9udCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRp
c2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRlciBoYXMgYmVlbiByZWNvcmRlZCIKLUZBSUwgU2FtZS1P
cmlnaW4gZm9udDogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImZvbnQi
IGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1PcmlnaW4gZm9udDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImNvcnMiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1PcmlnaW4gZm9u
dDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBi
dXQgZ290ICIiCi1QQVNTIFNhbWUtT3JpZ2luIGZvbnQ6IHNlYy1mZXRjaC11c2VyCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvZm9ybS5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mb3JtLmh0dHBzLnN1Yi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyNDYyMjBkMjIzOGUx
Y2I3NWMzMDE5YTVmNDJkOGI3YTMwZjUwM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9tZXRhZGF0YS9mb3JtLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyMSArMCwwIEBACi0KLQotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBt
ZXNzYWdlID0gbnVsbAotCi1QQVNTIGxvY2FsaG9zdCAtPiBsb2NhbGhvc3Q6OTQ0MyBpZnJhbWU6
IGZvcmNlZAotVElNRU9VVCBsb2NhbGhvc3QgLT4gd3d3LmxvY2FsaG9zdDo5NDQzIGlmcmFtZTog
Zm9yY2VkIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGxvY2FsaG9zdCAtPiB3d3cuMTI3LjAuMC4x
Ojk0NDMgaWZyYW1lOiBmb3JjZWQgVGVzdCB0aW1lZCBvdXQKLVBBU1MgbG9jYWxob3N0IC0+IGxv
Y2FsaG9zdDo5NDQzIGlmcmFtZTogdXNlci1hY3RpdmF0ZWQKLVRJTUVPVVQgbG9jYWxob3N0IC0+
IHd3dy5sb2NhbGhvc3Q6OTQ0MyBpZnJhbWU6IHVzZXItYWN0aXZhdGVkIFRlc3QgdGltZWQgb3V0
Ci1USU1FT1VUIGxvY2FsaG9zdCAtPiB3d3cuMTI3LjAuMC4xOjk0NDMgaWZyYW1lOiB1c2VyLWFj
dGl2YXRlZCBUZXN0IHRpbWVkIG91dAotRkFJTCBsb2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMg
aWZyYW1lOiBmb3JjZWQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJk
b2N1bWVudCIgYnV0IGdvdCAiIgotRkFJTCBsb2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZy
YW1lOiBmb3JjZWQ6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJuYXZp
Z2F0ZSIgYnV0IGdvdCAiIgotRkFJTCBsb2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZyYW1l
OiBmb3JjZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9y
aWdpbiIgYnV0IGdvdCAiIgotUEFTUyBsb2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZyYW1l
OiBmb3JjZWQ6IHNlYy1mZXRjaC11c2VyCi1GQUlMIGxvY2FsaG9zdCAtPiBsb2NhbGhvc3Q6OTQ0
MyBpZnJhbWU6IHVzZXItYWN0aXZhdGVkOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiZG9jdW1lbnQiIGJ1dCBnb3QgIiIKLUZBSUwgbG9jYWxob3N0IC0+IGxvY2FsaG9z
dDo5NDQzIGlmcmFtZTogdXNlci1hY3RpdmF0ZWQ6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJuYXZpZ2F0ZSIgYnV0IGdvdCAiIgotRkFJTCBsb2NhbGhvc3QgLT4gbG9j
YWxob3N0Ojk0NDMgaWZyYW1lOiB1c2VyLWFjdGl2YXRlZDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1GQUlMIGxvY2FsaG9z
dCAtPiBsb2NhbGhvc3Q6OTQ0MyBpZnJhbWU6IHVzZXItYWN0aXZhdGVkOiBzZWMtZmV0Y2gtdXNl
ciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiPzEiIGJ1dCBnb3QgIiIKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0
YS9oaXN0b3J5Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2hpc3RvcnkuaHR0cHMuc3ViLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJkZDMyNWFjYTE1NDU1
MTk3NTQ5MDRhNmY5MDAwZmJkNmE1MjdmNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL21ldGFkYXRhL2hpc3RvcnkuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE0ICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10
by1vd25lci5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEy
Ny4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci1C
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMv
ZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2dvLWJhY2suaHRtbAotCi1IYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElNRU9VVCBiYWNrIHRvIHNhbWUtb3JpZ2luLWlu
aXRpYXRlZCBuYXZpZ2F0aW9uIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGJhY2sgdG8gc2FtZS1z
aXRlLWluaXRpYXRlZCBuYXZpZ2F0aW9uIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGJhY2sgdG8g
Y3Jvc3Mtc2l0ZS1pbml0aWF0ZWQgbmF2aWdhdGlvbiBUZXN0IHRpbWVkIG91dAotRkFJTCBiYWNr
IHRvIHNhbWUtb3JpZ2luLWluaXRpYXRlZCBuYXZpZ2F0aW9uIDE6IHNlYy1mZXRjaC1kZXN0IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJkb2N1bWVudCIgYnV0IGdvdCAiIgotRkFJTCBiYWNrIHRv
IHNhbWUtb3JpZ2luLWluaXRpYXRlZCBuYXZpZ2F0aW9uIDE6IHNlYy1mZXRjaC1tb2RlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJuYXZpZ2F0ZSIgYnV0IGdvdCAiIgotRkFJTCBiYWNrIHRvIHNh
bWUtb3JpZ2luLWluaXRpYXRlZCBuYXZpZ2F0aW9uIDE6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyBiYWNrIHRvIHNh
bWUtb3JpZ2luLWluaXRpYXRlZCBuYXZpZ2F0aW9uIDE6IHNlYy1mZXRjaC11c2VyCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvaGlzdG9yeS5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvaGlzdG9yeS5odHRwcy5zdWIuaHRt
bAppbmRleCAwYTEwZjMyYmVhZjU4ZjIyMmQwNDZkMTJmZTQ1MmE1YzRmMTEzNWM3Li5mMDExOWU2
Yzc1NGQzNjNmMmFjZDJkMjc5NDA0M2RmOTFiNzg4YTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2hpc3Rvcnku
aHR0cHMuc3ViLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9oaXN0b3J5Lmh0dHBzLnN1Yi5odG1sCkBAIC05LDggKzks
OCBAQAogLy8vIGhlYWRlcnMpIGFyZSB1c2VkIGluIG5hdmlnYXRpb25zIHRyaWdnZXJlZCBieSB8
aGlzdG9yeS5iYWNrKCl8LgogZnVuY3Rpb24gYWRkX3Rlc3QoZGVzY3JpcHRpb24sIHJlcG9ydF9o
b3N0LCBnb19iYWNrX2hvc3QsIGV4cGVjdGF0aW9ucykgewogICBhc3luY190ZXN0KHQgPT4gewot
ICAgIC8vIFNURVAxOiBOYXZpZ2F0ZSBhIG5ldyB3aW5kb3cgdG8gcmVwb3J0X2hvc3QvcG9zdC10
by1vd25lci5weQotICAgIGNvbnN0IHVybF9zdWZmaXggPSAnL2ZldGNoL21ldGFkYXRhL3Jlc291
cmNlcy9wb3N0LXRvLW93bmVyLnB5JzsKKyAgICAvLyBTVEVQMTogTmF2aWdhdGUgYSBuZXcgd2lu
ZG93IHRvIHJlcG9ydF9ob3N0L3Bvc3QtdG8tb3duZXItb25sb2FkLnB5CisgICAgY29uc3QgdXJs
X3N1ZmZpeCA9ICcvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXItb25sb2Fk
LnB5JzsKICAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly8ke3JlcG9ydF9ob3N0fSR7dXJsX3N1ZmZp
eH1gOwogICAgIGNvbnN0IHcgPSB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTsKIApAQCAtMjQs
MTUgKzI0LDEwIEBAIGZ1bmN0aW9uIGFkZF90ZXN0KGRlc2NyaXB0aW9uLCByZXBvcnRfaG9zdCwg
Z29fYmFja19ob3N0LCBleHBlY3RhdGlvbnMpIHsKICAgICAgICAgLy8gaGVhZGVycyBhcmUgdXNl
ZCBoZXJlIGFuZCBpbiBTVEVQNSkuCiAgICAgICAgIGFzc2VydF9oZWFkZXJfZXF1YWxzKGUuZGF0
YSwgZXhwZWN0YXRpb25zLCBkZXNjcmlwdGlvbiArICIgMSIpOwogCi0gICAgICAgIC8vIFNURVAz
OiBHbyB0byBnb19iYWNrX2hvc3QvZ28tYmFjay5odG1sIChwb3N0cG9uaW5nIHRoaXMgdmlhCi0g
ICAgICAgIC8vIHN0ZXBfdGltZW91dCBlbnN1cmVzIHRoYXQgZ28tYmFjay5odG1sIHdpbGwgZ2V0
IGEgc2VwYXJhdGUKLSAgICAgICAgLy8gaGlzdG9yeSBlbnRyeSAtIG90aGVyd2lzZSBpdCBtaWdo
dCBiZSB0cmVhdGVkIGFzIGEgY2xpZW50LXNpZGUKLSAgICAgICAgLy8gcmVkaXJlY3QgYW5kIHdl
IG1pZ2h0IGVuZCB1cCB3aXRoIG5vd2hlcmUgdG8gZ28gYmFjayB0bykuCi0gICAgICAgIHQuc3Rl
cF90aW1lb3V0KCgpID0+IHsKLSAgICAgICAgICBjb25zdCB1cmxfc3VmZml4ID0gJy9mZXRjaC9t
ZXRhZGF0YS9yZXNvdXJjZXMvZ28tYmFjay5odG1sJzsKLSAgICAgICAgICBjb25zdCB1cmwgPSBg
aHR0cHM6Ly8ke2dvX2JhY2tfaG9zdH0ke3VybF9zdWZmaXh9YDsKLSAgICAgICAgICB3LmxvY2F0
aW9uID0gdXJsOwotICAgICAgICB9KTsKKyAgICAgICAgLy8gU1RFUDM6IEdvIHRvIGdvX2JhY2tf
aG9zdC9nby1iYWNrLmh0bWwKKyAgICAgICAgY29uc3QgdXJsX3N1ZmZpeCA9ICcvZmV0Y2gvbWV0
YWRhdGEvcmVzb3VyY2VzL2dvLWJhY2suaHRtbCc7CisgICAgICAgIGNvbnN0IHVybCA9IGBodHRw
czovLyR7Z29fYmFja19ob3N0fSR7dXJsX3N1ZmZpeH1gOworICAgICAgICB3LmxvY2F0aW9uID0g
dXJsOwogCiAgICAgICAgIC8vIFNURVA0IChlbHNld2hlcmUgLSBpbnNpZGUgZ28tYmFjay5odG1s
KTogQ2FsbCBoaXN0b3J5LmJhY2soKS4KICAgICAgIH0gZWxzZSBpZiAobXNnX2NvdW50ZXIgPT0g
MikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9tZXRhZGF0YS9pZnJhbWUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvaWZy
YW1lLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDExYjEwYTA0Zjk3OWZhZmFkNGJmNzY2MTcwNjk2OGQ0NTIzYWU1ZTUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9pZnJhbWUuaHR0cHMuc3ViLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9y
ZXNvdXJjZXMvcG9zdC10by1vd25lci5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9wb3N0
LXRvLW93bmVyLnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cu
bG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkK
LUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0
My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weQotVGhpcyBpcyBhIGxp
bmshVGhpcyBpcyBhIGxpbmshVGhpcyBpcyBhIGxpbmshCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCi1QQVNTIGxvY2FsaG9zdCAtPiBsb2NhbGhvc3Q6OTQ0MyBp
ZnJhbWU6IGZvcmNlZAotVElNRU9VVCBsb2NhbGhvc3QgLT4gd3d3LmxvY2FsaG9zdDo5NDQzIGlm
cmFtZTogZm9yY2VkIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGxvY2FsaG9zdCAtPiB3d3cuMTI3
LjAuMC4xOjk0NDMgaWZyYW1lOiBmb3JjZWQgVGVzdCB0aW1lZCBvdXQKLVBBU1MgbG9jYWxob3N0
IC0+IGxvY2FsaG9zdDo5NDQzIGlmcmFtZTogdXNlci1hY3RpdmF0ZWQKLVRJTUVPVVQgbG9jYWxo
b3N0IC0+IHd3dy5sb2NhbGhvc3Q6OTQ0MyBpZnJhbWU6IHVzZXItYWN0aXZhdGVkIFRlc3QgdGlt
ZWQgb3V0Ci1USU1FT1VUIGxvY2FsaG9zdCAtPiB3d3cuMTI3LjAuMC4xOjk0NDMgaWZyYW1lOiB1
c2VyLWFjdGl2YXRlZCBUZXN0IHRpbWVkIG91dAotRkFJTCBsb2NhbGhvc3QgLT4gbG9jYWxob3N0
Ojk0NDMgaWZyYW1lOiBmb3JjZWQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJpZnJhbWUiIGJ1dCBnb3QgIiIKLUZBSUwgbG9jYWxob3N0IC0+IGxvY2FsaG9zdDo5NDQz
IGlmcmFtZTogZm9yY2VkOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
bmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgbG9jYWxob3N0IC0+IGxvY2FsaG9zdDo5NDQzIGlm
cmFtZTogZm9yY2VkOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2Ft
ZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1MgbG9jYWxob3N0IC0+IGxvY2FsaG9zdDo5NDQzIGlm
cmFtZTogZm9yY2VkOiBzZWMtZmV0Y2gtdXNlcgotRkFJTCBsb2NhbGhvc3QgLT4gbG9jYWxob3N0
Ojk0NDMgaWZyYW1lOiB1c2VyLWFjdGl2YXRlZDogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgImlmcmFtZSIgYnV0IGdvdCAiIgotRkFJTCBsb2NhbGhvc3QgLT4gbG9jYWxo
b3N0Ojk0NDMgaWZyYW1lOiB1c2VyLWFjdGl2YXRlZDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIm5hdmlnYXRlIiBidXQgZ290ICIiCi1GQUlMIGxvY2FsaG9zdCAtPiBs
b2NhbGhvc3Q6OTQ0MyBpZnJhbWU6IHVzZXItYWN0aXZhdGVkOiBzZWMtZmV0Y2gtc2l0ZSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLUZBSUwgbG9jYWxo
b3N0IC0+IGxvY2FsaG9zdDo5NDQzIGlmcmFtZTogdXNlci1hY3RpdmF0ZWQ6IHNlYy1mZXRjaC11
c2VyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICI/MSIgYnV0IGdvdCAiIgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFk
YXRhL2lmcmFtZS5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9pZnJhbWUuc3ViLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmY5ZGRiOTg2NDlkZWUwM2YyZjAxMGFmZDhm
MTlkYWVhNTA1YTVmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21l
dGFkYXRhL2lmcmFtZS5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAs
MCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cubG9jYWxob3N0
Ojg4MDAvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkKLUJsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3LjEyNy4wLjAuMTo4ODAwL2ZldGNoL21l
dGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci0KLQotSGFybmVzcyBFcnJvciAoVElN
RU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVBBU1MgTm9uLXNlY3VyZSBzYW1lLW9yaWdpbiBpZnJh
bWUgPT4gTm8gaGVhZGVycwotVElNRU9VVCBOb24tc2VjdXJlIHNhbWUtc2l0ZSBpZnJhbWUgPT4g
Tm8gaGVhZGVycyBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBOb24tc2VjdXJlIGNyb3NzLXNpdGUg
aWZyYW1lID0+IE5vIGhlYWRlcnMuIFRlc3QgdGltZWQgb3V0Ci1QQVNTIFNlY3VyZSwgY3Jvc3Mt
c2l0ZSAoY3Jvc3Mtc2NoZW1lLCBzYW1lLWhvc3QpIGlmcmFtZQotUEFTUyBOb24tc2VjdXJlIHNh
bWUtb3JpZ2luIGlmcmFtZSA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtZGVzdAotUEFTUyBOb24t
c2VjdXJlIHNhbWUtb3JpZ2luIGlmcmFtZSA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtbW9kZQot
UEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2luIGlmcmFtZSA9PiBObyBoZWFkZXJzOiBzZWMtZmV0
Y2gtc2l0ZQotUEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2luIGlmcmFtZSA9PiBObyBoZWFkZXJz
OiBzZWMtZmV0Y2gtdXNlcgotRkFJTCBTZWN1cmUsIGNyb3NzLXNpdGUgKGNyb3NzLXNjaGVtZSwg
c2FtZS1ob3N0KSBpZnJhbWU6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJpZnJhbWUiIGJ1dCBnb3QgIiIKLUZBSUwgU2VjdXJlLCBjcm9zcy1zaXRlIChjcm9zcy1zY2hl
bWUsIHNhbWUtaG9zdCkgaWZyYW1lOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgU2VjdXJlLCBjcm9zcy1zaXRlIChjcm9z
cy1zY2hlbWUsIHNhbWUtaG9zdCkgaWZyYW1lOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiY3Jvc3Mtc2l0ZSIgYnV0IGdvdCAiIgotUEFTUyBTZWN1cmUsIGNyb3NzLXNp
dGUgKGNyb3NzLXNjaGVtZSwgc2FtZS1ob3N0KSBpZnJhbWU6IHNlYy1mZXRjaC11c2VyCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbWV0YWRhdGEvaW1nLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ltZy5odHRwcy5zdWIt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDY0ZjRhNzY2YjQ1
NGUyOTVkYzkxMGU4YmNkMjcwM2I5MzE4NTc0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvbWV0YWRhdGEvaW1nLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMiArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291
cmNlL2ltYWdlLnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cu
MTI3LjAuMC4xOjk0NDMvY29tbW9uL3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2ltYWdl
LnB5Ci0KLQotUEFTUyBTYW1lLW9yaWdpbiBpbWFnZQotRkFJTCBTYW1lLXNpdGUgaW1hZ2UgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiW29iamVj
dCBFdmVudF0iCi1GQUlMIENyb3NzLXNpdGUgaW1hZ2UgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiW29iamVjdCBFdmVudF0iCi1GQUlMIFNhbWUt
b3JpZ2luIGltYWdlOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3Ry
aW5nKSAiaW1hZ2UiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIFNhbWUtb3Jp
Z2luIGltYWdlOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5n
KSAiY29ycyIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgU2FtZS1vcmlnaW4g
aW1hZ2U6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJz
YW1lLW9yaWdpbiIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLVBBU1MgU2FtZS1vcmln
aW4gaW1hZ2U6IHNlYy1mZXRjaC11c2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvb2JqZWN0Lmh0dHBzLnN1
Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL21ldGFkYXRhL29iamVjdC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmFmODliYWY1NTU1Zjc4NDJkZmU3MGFlYTQ1NTFjZDI4
ODdjODFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
b2JqZWN0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCww
IEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0
Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1vYmpl
Y3Qtc2FtZS1zaXRlMTFiZmFmNTEtNTQxNS00ZjA2LWIzYjItYTZlOGMwYTc0OTIyCi1CbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvZmV0Y2gv
bWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1vYmplY3QtY3Jvc3Mtc2l0
ZTExYmZhZjUxLTU0MTUtNGYwNi1iM2IyLWE2ZThjMGE3NDkyMgotCi0KLVBBU1MgU2FtZS1Pcmln
aW4gb2JqZWN0Ci1GQUlMIFNhbWUtU2l0ZSBvYmplY3QgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBk
aXNhbGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFzIGJlZW4gcmVjb3JkZWQiCi1GQUlMIENyb3Nz
LVNpdGUgb2JqZWN0IGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiTm8g
aGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIgotRkFJTCBTYW1lLU9yaWdpbiBvYmplY3Q6IHNlYy1m
ZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgIiIKLUZB
SUwgU2FtZS1PcmlnaW4gb2JqZWN0OiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1PcmlnaW4gb2JqZWN0OiBzZWMt
ZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3Qg
IiIKLVBBU1MgU2FtZS1PcmlnaW4gb2JqZWN0OiBzZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFk
YXRhL3BvcnRhbC5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9wb3J0YWwuaHR0cHMuc3ViLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTAzMWJiZDQ0MjdhN2E1
OTI0NzkxYmI2ZjhlZGRhNjZkM2JiMDBlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL21ldGFkYXRhL3BvcnRhbC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNSArMCwwIEBACi0KLUZBSUwgbG9jYWxob3N0IC0+IGxvY2FsaG9zdDo5NDQz
IHBvcnRhbCBhc3NlcnRfaW1wbGVtZW50czogUG9ydGFscyBhcmUgbm90IHN1cHBvcnRlZC4gdW5k
ZWZpbmVkCi1GQUlMIGxvY2FsaG9zdCAtPiB3d3cubG9jYWxob3N0Ojk0NDMgcG9ydGFsIGFzc2Vy
dF9pbXBsZW1lbnRzOiBQb3J0YWxzIGFyZSBub3Qgc3VwcG9ydGVkLiB1bmRlZmluZWQKLUZBSUwg
bG9jYWxob3N0IC0+IHd3dy4xMjcuMC4wLjE6OTQ0MyBwb3J0YWwgYXNzZXJ0X2ltcGxlbWVudHM6
IFBvcnRhbHMgYXJlIG5vdCBzdXBwb3J0ZWQuIHVuZGVmaW5lZAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Bv
cnRhbC5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcG9ydGFsLmh0dHBzLnN1Yi5odG1sCmluZGV4IDg0MDNh
Mjk2ZmUxMjc4NmJmNzU2NzVjZGU0N2Y0ZDQxYjY4NGNkYWYuLjU1YjU1NWExYjhlYzQ0OThmOWRj
ODk3ZTNmNjRmMDlhMmQ2MWRmOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcG9ydGFsLmh0dHBzLnN1Yi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvcG9ydGFsLmh0dHBzLnN1Yi5odG1sCkBAIC01LDYgKzUsNyBAQAogPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9L2NvbW1vbi91dGlscy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9wb3J0YWxzL3Jlc291
cmNlcy9zdGFzaC11dGlscy5zdWIuanM+PC9zY3JpcHQ+CiA8Ym9keT4KIDxzY3JpcHQ+CiAgIGNv
bnN0IFVTRVIgPSB0cnVlOwpAQCAtMTUsMTIgKzE2LDEyIEBACiAgICAgICBhc3NlcnRfaW1wbGVt
ZW50cygiSFRNTFBvcnRhbEVsZW1lbnQiIGluIHdpbmRvdywgIlBvcnRhbHMgYXJlIG5vdCBzdXBw
b3J0ZWQuIik7CiAKICAgICAgIGxldCBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncG9ydGFs
Jyk7Ci0gICAgICBwLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhlID0+
IHsKLSAgICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoZS5kYXRhLCBleHBlY3RhdGlvbnMsIGB7
e2hvc3R9fSAtPiAke2hvc3R9IHBvcnRhbGApOwotICAgICAgICB0LmRvbmUoKTsKKyAgICAgIGNv
bnN0IGtleSA9IHRva2VuKCk7CisgICAgICBTdGFzaFV0aWxzLnRha2VWYWx1ZShrZXkpLnRoZW4o
dC5zdGVwX2Z1bmNfZG9uZSh2YWx1ZSA9PiB7CisgICAgICAgIGFzc2VydF9oZWFkZXJfZXF1YWxz
KHZhbHVlLCBleHBlY3RhdGlvbnMsIGB7e2hvc3R9fSAtPiAke2hvc3R9IHBvcnRhbGApOwogICAg
ICAgfSkpOwogCi0gICAgICBsZXQgdXJsID0gYGh0dHBzOi8vJHtob3N0fS9mZXRjaC9tZXRhZGF0
YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weWA7CisgICAgICBsZXQgdXJsID0gYGh0dHBzOi8v
JHtob3N0fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weT9rZXk9JHtr
ZXl9YDsKICAgICAgIHAuc3JjID0gdXJsOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChwKTsKICAgICB9LCBge3tob3N0fX0gLT4gJHtob3N0fSBwb3J0YWxgKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRh
dGEvcHJlZmV0Y2guaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcHJlZmV0Y2guaHR0cHMuc3Vi
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDc3NDhmNzk4Zjdh
MjAzNDljYzM4MjY2YzM5ZWIxNmQ2NGVkZmMxOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL21ldGFkYXRhL3ByZWZldGNoLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3Jl
Y29yZC1oZWFkZXIucHk/ZmlsZT1wcmVmZXRjaGZiNzBhM2ZlLWUwMWMtNDM0OC04NjdmLWVmMThh
YWU2MTkxYQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4w
LjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9
cHJlZmV0Y2hhZTJkNjIxYS1jZGVhLTQ0ZDMtOTFhNC01ZDA0NzI1MjczMWUKLQotSGFybmVzcyBF
cnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVBBU1MgQnJvd3NlciBzdXBwb3J0cyBw
cmVmZXRjaC4KLVRJTUVPVVQgPGxpbmsgcmVsPSdwcmVmZXRjaCcgaHJlZj0naHR0cHM6Ly9sb2Nh
bGhvc3Q6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCA8bGluayByZWw9J3ByZWZl
dGNoJyBocmVmPSdodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91
dAotVElNRU9VVCA8bGluayByZWw9J3ByZWZldGNoJyBocmVmPSdodHRwczovL3d3dy4xMjcuMC4w
LjE6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91dAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3ByZWxvYWQuaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcHJlbG9hZC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjcxZDRiNmM0OWM4MDZhODM2NDkzMzc1MWYw
NDc4ZDU0YjBjNWMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0
YWRhdGEvcHJlbG9hZC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NTkgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3Lmxv
Y2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2Zp
bGU9ZmV0Y2gxZDA1YTlhNi04YjhlLTQ4YjQtYTVmZS1mZTVhMzIyMTg3YzAKLUJsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0My9mZXRjaC9tZXRh
ZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPWZldGNoMzBlM2U4Y2EtN2I5ZS00
N2Q4LTg1YjctM2NkMzlhNjk4MzkzCi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1o
ZWFkZXIucHk/ZmlsZT1mb250MmQ5MjU4MTgtYmVkMy00YjU4LThjOTQtODc2MmRjYTA0YzIyCi1C
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMv
ZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1mb250MzdlNGE3
MmQtZDY2Zi00NDJmLThhZGUtOWNlY2Y1YmM4NTZlCi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5h
bCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2Vz
L3JlY29yZC1oZWFkZXIucHk/ZmlsZT1pbWFnZTY3ZDFiZjU4LTMyOTItNDQzNy1iZjUyLWQ1ZmY1
NWFkZmI4NwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4w
LjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9
aW1hZ2VjMzBmZmVjZS02MjYwLTQ3ZjItODlmMS1mNGU5MTZlYjM0NjgKLUJsb2NrZWQgYWNjZXNz
IHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0
YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXNjcmlwdDBkZGM2MGZmLWI2YjEtNDQ5
OC04ZTQ0LWExNTAwOWRlOTVhMAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVh
ZGVyLnB5P2ZpbGU9c2NyaXB0NWE4NWY0ZjQtZWMwZS00NzZmLWJlMGQtOWZhYjlmMzRlN2I0Ci1C
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMv
ZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1zdHlsZTdlZWUx
MDQ5LWJkMzItNDU3NC04MGJhLWQ2ZGRkY2I3ZDEwZAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNl
cy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9c3R5bGVjZjJlMjA3ZC1hZDI5LTQ2YzAtYWUxMS1jOWZl
MzYyNzc3YWUKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2Nh
bGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxl
PXRyYWNrODJlNDljMmEtZmI0Ni00YmU2LTlhMmMtZjVjNjgyOWRlYjQ4Ci1CbG9ja2VkIGFjY2Vz
cyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvZmV0Y2gvbWV0YWRh
dGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT10cmFja2NjMjE1ZjRmLTJmZmItNDll
MS04NzZlLTIzODg2MGEyODk0NwotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9
IG51bGwKLQotUEFTUyBCcm93c2VyIHN1cHBvcnRzIHByZWxvYWQuCi1QQVNTIDxsaW5rIHJlbD0n
cHJlbG9hZCcgYXM9J2ZldGNoJyBocmVmPSdodHRwczovL2xvY2FsaG9zdDo5NDQzLy4uLic+Ci1U
SU1FT1VUIDxsaW5rIHJlbD0ncHJlbG9hZCcgYXM9J2ZldGNoJyBocmVmPSdodHRwczovL3d3dy5s
b2NhbGhvc3Q6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCA8bGluayByZWw9J3By
ZWxvYWQnIGFzPSdmZXRjaCcgaHJlZj0naHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvLi4uJz4g
VGVzdCB0aW1lZCBvdXQKLVBBU1MgPGxpbmsgcmVsPSdwcmVsb2FkJyBhcz0nZm9udCcgaHJlZj0n
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My8uLi4nPgotRkFJTCA8bGluayByZWw9J3ByZWxvYWQnIGFz
PSdmb250JyBocmVmPSdodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My8uLi4nPiBhc3NlcnRfbm90
X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRlciBoYXMgYmVlbiByZWNvcmRl
ZCIKLUZBSUwgPGxpbmsgcmVsPSdwcmVsb2FkJyBhcz0nZm9udCcgaHJlZj0naHR0cHM6Ly93d3cu
MTI3LjAuMC4xOjk0NDMvLi4uJz4gYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZh
bHVlICJObyBoZWFkZXIgaGFzIGJlZW4gcmVjb3JkZWQiCi1QQVNTIDxsaW5rIHJlbD0ncHJlbG9h
ZCcgYXM9J2ltYWdlJyBocmVmPSdodHRwczovL2xvY2FsaG9zdDo5NDQzLy4uLic+Ci1USU1FT1VU
IDxsaW5rIHJlbD0ncHJlbG9hZCcgYXM9J2ltYWdlJyBocmVmPSdodHRwczovL3d3dy5sb2NhbGhv
c3Q6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCA8bGluayByZWw9J3ByZWxvYWQn
IGFzPSdpbWFnZScgaHJlZj0naHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvLi4uJz4gVGVzdCB0
aW1lZCBvdXQKLVBBU1MgPGxpbmsgcmVsPSdwcmVsb2FkJyBhcz0nc2NyaXB0JyBocmVmPSdodHRw
czovL2xvY2FsaG9zdDo5NDQzLy4uLic+Ci1USU1FT1VUIDxsaW5rIHJlbD0ncHJlbG9hZCcgYXM9
J3NjcmlwdCcgaHJlZj0naHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvLi4uJz4gVGVzdCB0aW1l
ZCBvdXQKLVRJTUVPVVQgPGxpbmsgcmVsPSdwcmVsb2FkJyBhcz0nc2NyaXB0JyBocmVmPSdodHRw
czovL3d3dy4xMjcuMC4wLjE6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91dAotUEFTUyA8bGluayBy
ZWw9J3ByZWxvYWQnIGFzPSdzdHlsZScgaHJlZj0naHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My8uLi4n
PgotVElNRU9VVCA8bGluayByZWw9J3ByZWxvYWQnIGFzPSdzdHlsZScgaHJlZj0naHR0cHM6Ly93
d3cubG9jYWxob3N0Ojk0NDMvLi4uJz4gVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgPGxpbmsgcmVs
PSdwcmVsb2FkJyBhcz0nc3R5bGUnIGhyZWY9J2h0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzLy4u
Lic+IFRlc3QgdGltZWQgb3V0Ci1QQVNTIDxsaW5rIHJlbD0ncHJlbG9hZCcgYXM9J3RyYWNrJyBo
cmVmPSdodHRwczovL2xvY2FsaG9zdDo5NDQzLy4uLic+Ci1USU1FT1VUIDxsaW5rIHJlbD0ncHJl
bG9hZCcgYXM9J3RyYWNrJyBocmVmPSdodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My8uLi4nPiBU
ZXN0IHRpbWVkIG91dAotVElNRU9VVCA8bGluayByZWw9J3ByZWxvYWQnIGFzPSd0cmFjaycgaHJl
Zj0naHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvLi4uJz4gVGVzdCB0aW1lZCBvdXQKLUZBSUwg
cHJlbG9hZCBmb250IGxvY2FsaG9zdDo5NDQzOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiZm9udCIgYnV0IGdvdCAiIgotRkFJTCBwcmVsb2FkIGZvbnQgbG9jYWxob3N0
Ojk0NDM6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjb3JzIiBidXQg
Z290ICIiCi1GQUlMIHByZWxvYWQgZm9udCBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLXNpdGUg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIHBy
ZWxvYWQgZm9udCBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLXVzZXIKLUZBSUwgcHJlbG9hZCBz
dHlsZSBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInN0eWxlIiBidXQgZ290ICIiCi1GQUlMIHByZWxvYWQgc3R5bGUgbG9jYWxob3N0Ojk0NDM6
IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjb3JzIiBidXQgZ290ICIi
Ci1GQUlMIHByZWxvYWQgc3R5bGUgbG9jYWxob3N0Ojk0NDM6IHNlYy1mZXRjaC1zaXRlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyBwcmVsb2Fk
IHN0eWxlIGxvY2FsaG9zdDo5NDQzOiBzZWMtZmV0Y2gtdXNlcgotRkFJTCBwcmVsb2FkIHRyYWNr
IGxvY2FsaG9zdDo5NDQzOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
dHJhY2siIGJ1dCBnb3QgIiIKLUZBSUwgcHJlbG9hZCB0cmFjayBsb2NhbGhvc3Q6OTQ0Mzogc2Vj
LWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNvcnMiIGJ1dCBnb3QgIiIKLUZB
SUwgcHJlbG9hZCB0cmFjayBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIHByZWxvYWQgdHJh
Y2sgbG9jYWxob3N0Ojk0NDM6IHNlYy1mZXRjaC11c2VyCi1GQUlMIHByZWxvYWQgZmV0Y2ggbG9j
YWxob3N0Ojk0NDM6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJlbXB0
eSIgYnV0IGdvdCAiIgotRkFJTCBwcmVsb2FkIGZldGNoIGxvY2FsaG9zdDo5NDQzOiBzZWMtZmV0
Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY29ycyIgYnV0IGdvdCAiIgotRkFJTCBw
cmVsb2FkIGZldGNoIGxvY2FsaG9zdDo5NDQzOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1MgcHJlbG9hZCBmZXRjaCBs
b2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLXVzZXIKLUZBSUwgcHJlbG9hZCBpbWFnZSBsb2NhbGhv
c3Q6OTQ0Mzogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImltYWdlIiBi
dXQgZ290ICIiCi1GQUlMIHByZWxvYWQgaW1hZ2UgbG9jYWxob3N0Ojk0NDM6IHNlYy1mZXRjaC1t
b2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjb3JzIiBidXQgZ290ICIiCi1GQUlMIHByZWxv
YWQgaW1hZ2UgbG9jYWxob3N0Ojk0NDM6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyBwcmVsb2FkIGltYWdlIGxvY2Fs
aG9zdDo5NDQzOiBzZWMtZmV0Y2gtdXNlcgotRkFJTCBwcmVsb2FkIHNjcmlwdCBsb2NhbGhvc3Q6
OTQ0Mzogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNjcmlwdCIgYnV0
IGdvdCAiIgotRkFJTCBwcmVsb2FkIHNjcmlwdCBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLW1v
ZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNvcnMiIGJ1dCBnb3QgIiIKLUZBSUwgcHJlbG9h
ZCBzY3JpcHQgbG9jYWxob3N0Ojk0NDM6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyBwcmVsb2FkIHNjcmlwdCBsb2Nh
bGhvc3Q6OTQ0Mzogc2VjLWZldGNoLXVzZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9jcm9z
cy1zaXRlLXJlZGlyZWN0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L2Nyb3Nz
LXNpdGUtcmVkaXJlY3QuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTM2MGU2NTkxOWQ0OWJkMmJhNThiZDk5NDk4MGEyODdmNjQwZTU0Mi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L2Ny
b3NzLXNpdGUtcmVkaXJlY3QuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDkgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3
LjEyNy4wLjAuMTo5NDQzL3hoci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249aHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5w
eT9maWxlPXJlZGlyZWN0LWNyb3NzLXNpdGUtc2FtZS1vcmlnaW5lNzdiN2NiMi1iYjFiLTRiYjEt
ODkzNy0yMWY4ODBiNmQ5NTMKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczov
L3d3dy4xMjcuMC4wLjE6OTQ0My94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0
dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQt
aGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3QtY3Jvc3Mtc2l0ZS1zYW1lLXNpdGVlNzdiN2NiMi1iYjFi
LTRiYjEtODkzNy0yMWY4ODBiNmQ5NTMKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0My94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0
aW9uPWh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9y
ZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3QtY3Jvc3Mtc2l0ZS1jcm9zcy1zaXRlZTc3Yjdj
YjItYmIxYi00YmIxLTg5MzctMjFmODgwYjZkOTUzCi0KLQotRkFJTCBDcm9zcy1TaXRlIC0+IFNh
bWUtT3JpZ2luIHJlZGlyZWN0IGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1
ZSAiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIgotRkFJTCBDcm9zcy1TaXRlIC0+IFNhbWUt
U2l0ZSByZWRpcmVjdCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgIk5v
IGhlYWRlciBoYXMgYmVlbiByZWNvcmRlZCIKLUZBSUwgQ3Jvc3MtU2l0ZSAtPiBDcm9zcy1TaXRl
IHJlZGlyZWN0IGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiTm8gaGVh
ZGVyIGhhcyBiZWVuIHJlY29yZGVkIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L211bHRpcGxl
LXJlZGlyZWN0LWNyb3NzLXNpdGUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3Qv
bXVsdGlwbGUtcmVkaXJlY3QtY3Jvc3Mtc2l0ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTc0NTI0MTNjNWI0MjVjNDU5NmIxNmYyNDkzYzdk
YWJlOGMxZTE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRh
dGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtY3Jvc3Mtc2l0ZS5odHRwcy5zdWItZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMveGhyL3Jlc291cmNlcy9yZWRp
cmVjdC5weT9sb2NhdGlvbj1odHRwczovL2xvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jl
c291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3QtbXVsdGlwbGUtY3Jvc3Mtc2l0
ZTVhNDBlYjNjLTk2YWMtNDllYy04M2Y1LTRkMDYzZGE2OTUxNgotCi0KLUhhcm5lc3MgRXJyb3Ig
KFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIFNhbWUtT3JpZ2luIC0+IENyb3Nz
LVNpdGUgLT4gU2FtZS1PcmlnaW4gcmVkaXJlY3QgVGVzdCB0aW1lZCBvdXQKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRh
ZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1odHRwcy1kb3duZ3JhZGUtdXBncmFkZS1w
cmVmZXRjaC5vcHRpb25hbC5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1y
ZWRpcmVjdC1odHRwcy1kb3duZ3JhZGUtdXBncmFkZS1wcmVmZXRjaC5vcHRpb25hbC5zdWItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWViMDY4YzQxNzBmM2Zk
OGQ0ZTJiMzEzMTMxODdlNTY5MGIwZjJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtaHR0cHMtZG93bmdy
YWRlLXVwZ3JhZGUtcHJlZmV0Y2gub3B0aW9uYWwuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDUgKzAsMCBAQAotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9
IG51bGwKLQotVElNRU9VVCBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBwcmVmZXRjaCA9PiBObyBo
ZWFkZXJzIFRlc3QgdGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUt
cmVkaXJlY3QtaHR0cHMtZG93bmdyYWRlLXVwZ3JhZGUuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVk
aXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtaHR0cHMtZG93bmdyYWRlLXVwZ3JhZGUuc3ViLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2ViN2QxMDA5NmI1N2I4MmY3
ZDRiNGM2MmQwMzliMThjOTY5ZWQ4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L211bHRpcGxlLXJlZGlyZWN0LWh0dHBzLWRvd25ncmFk
ZS11cGdyYWRlLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBA
Ci1Eb3duZ3JhZGVkIHRoZW4gdXBncmFkZWQgZm9udAotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCi1QQVNTIEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIGlmcmFt
ZQotUEFTUyBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSB0b3AgbGV2ZWwgbmF2aWdhdGlvbgotUEFT
UyBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBlbWJlZAotUEFTUyBIdHRwcyBkb3duZ3JhZGUtdXBn
cmFkZSBmZXRjaCgpIGFwaQotUEFTUyBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBvYmplY3QKLVBB
U1MgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgcHJlbG9hZAotUEFTUyBIdHRwcyBkb3duZ3JhZGUt
dXBncmFkZSBzdHlsZXNoZWV0Ci1USU1FT1VUIEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIHRyYWNr
IFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgaW1hZ2UgPT4g
Tm8gaGVhZGVycwotUEFTUyBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBzY3JpcHQgPT4gTm8gaGVh
ZGVycwotRkFJTCBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBzY3JpcHQgPT4gTm8gaGVhZGVyczog
c2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNjcmlwdCIgYnV0IGdvdCAi
IgotRkFJTCBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBzY3JpcHQgPT4gTm8gaGVhZGVyczogc2Vj
LWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5vLWNvcnMiIGJ1dCBnb3QgIiIK
LUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgc2NyaXB0ID0+IE5vIGhlYWRlcnM6IHNlYy1m
ZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjcm9zcy1zaXRlIiBidXQgZ290ICIi
Ci1QQVNTIEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMt
ZmV0Y2gtdXNlcgotRkFJTCBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBpZnJhbWU6IHNlYy1mZXRj
aC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJpZnJhbWUiIGJ1dCBnb3QgIiIKLUZBSUwg
SHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgaWZyYW1lOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMgZG93bmdyYWRl
LXVwZ3JhZGUgaWZyYW1lOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
Y3Jvc3Mtc2l0ZSIgYnV0IGdvdCAiIgotUEFTUyBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBpZnJh
bWU6IHNlYy1mZXRjaC11c2VyCi1GQUlMIEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIHRvcCBsZXZl
bCBuYXZpZ2F0aW9uOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZG9j
dW1lbnQiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgdG9wIGxldmVs
IG5hdmlnYXRpb246IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJuYXZp
Z2F0ZSIgYnV0IGdvdCAiIgotRkFJTCBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSB0b3AgbGV2ZWwg
bmF2aWdhdGlvbjogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNyb3Nz
LXNpdGUiIGJ1dCBnb3QgIiIKLVBBU1MgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgdG9wIGxldmVs
IG5hdmlnYXRpb246IHNlYy1mZXRjaC11c2VyCi1OT1RSVU4gSHR0cHMgZG93bmdyYWRlLXVwZ3Jh
ZGUgZm9udCA9PiBObyBoZWFkZXJzCi1GQUlMIEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIGVtYmVk
OiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZW1iZWQiIGJ1dCBnb3Qg
IiIKLUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgZW1iZWQ6IHNlYy1mZXRjaC1tb2RlIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJuYXZpZ2F0ZSIgYnV0IGdvdCAiIgotRkFJTCBIdHRwcyBk
b3duZ3JhZGUtdXBncmFkZSBlbWJlZDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgImNyb3NzLXNpdGUiIGJ1dCBnb3QgIiIKLVBBU1MgSHR0cHMgZG93bmdyYWRlLXVwZ3Jh
ZGUgZW1iZWQ6IHNlYy1mZXRjaC11c2VyCi1GQUlMIEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIGZl
dGNoKCkgYXBpOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZW1wdHki
IGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgZmV0Y2goKSBhcGk6IHNl
Yy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjb3JzIiBidXQgZ290ICIiCi1G
QUlMIEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIGZldGNoKCkgYXBpOiBzZWMtZmV0Y2gtc2l0ZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY3Jvc3Mtc2l0ZSIgYnV0IGdvdCAiIgotUEFTUyBIdHRw
cyBkb3duZ3JhZGUtdXBncmFkZSBmZXRjaCgpIGFwaTogc2VjLWZldGNoLXVzZXIKLUZBSUwgSHR0
cHMgZG93bmdyYWRlLXVwZ3JhZGUgb2JqZWN0OiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICIiCi1GQUlMIEh0dHBzIGRvd25ncmFkZS11cGdy
YWRlIG9iamVjdDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5hdmln
YXRlIiBidXQgZ290ICIiCi1GQUlMIEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIG9iamVjdDogc2Vj
LWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNyb3NzLXNpdGUiIGJ1dCBnb3Qg
IiIKLVBBU1MgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgb2JqZWN0OiBzZWMtZmV0Y2gtdXNlcgot
RkFJTCBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBzdHlsZXNoZWV0OiBzZWMtZmV0Y2gtZGVzdCBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic3R5bGUiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMgZG93
bmdyYWRlLXVwZ3JhZGUgc3R5bGVzaGVldDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIm5vLWNvcnMiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3Jh
ZGUgc3R5bGVzaGVldDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNy
b3NzLXNpdGUiIGJ1dCBnb3QgIiIKLVBBU1MgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgc3R5bGVz
aGVldDogc2VjLWZldGNoLXVzZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1y
ZWRpcmVjdC1zYW1lLXNpdGUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvbXVs
dGlwbGUtcmVkaXJlY3Qtc2FtZS1zaXRlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5YWUxZmIzZjcxNDFhODdmNTg4YWI4YTNhMDkxZTBkNjli
Mjc1ZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9y
ZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1zYW1lLXNpdGUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL3hoci9yZXNvdXJjZXMvcmVkaXJlY3Qu
cHk/bG9jYXRpb249aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJj
ZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXJlZGlyZWN0LW11bHRpcGxlLXNhbWUtc2l0ZTM2ZTBi
Y2ZmLTZmNWMtNDkzNS1iZDFlLTllNmFlNzBhY2YyNwotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIFNhbWUtT3JpZ2luIC0+IFNhbWUtU2l0ZSAt
PiBTYW1lLU9yaWdpbiByZWRpcmVjdCBUZXN0IHRpbWVkIG91dAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jl
ZGlyZWN0L3JlZGlyZWN0LWh0dHAtdXBncmFkZS1wcmVmZXRjaC5vcHRpb25hbC5zdWItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS9yZWRpcmVjdC9yZWRpcmVjdC1odHRwLXVwZ3JhZGUtcHJlZmV0Y2gub3B0aW9u
YWwuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmYwNzc5
YmZmMWZlODFjMDczM2VlNzc1YmU3NWZlNzAwNDFlMzgzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L3JlZGlyZWN0LWh0dHAtdXBncmFk
ZS1wcmVmZXRjaC5vcHRpb25hbC5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NSArMCwwIEBACi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1U
SU1FT1VUIEh0dHAgdXBncmFkZSBwcmVmZXRjaCA9PiBObyBoZWFkZXJzIFRlc3QgdGltZWQgb3V0
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvcmVkaXJlY3QtaHR0cC11cGdyYWRlLnN1Yi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL21ldGFkYXRhL3JlZGlyZWN0L3JlZGlyZWN0LWh0dHAtdXBncmFkZS5zdWItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDliYjI0MGNmNjYxZjI1NWFjNWNj
MTAwY2M2NmMxOWY3MDZmZjAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbWV0YWRhdGEvcmVkaXJlY3QvcmVkaXJlY3QtaHR0cC11cGdyYWRlLnN1Yi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1VcGdyYWRlZCBmb250Ci0KLQotSGFy
bmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVBBU1MgSHR0cCB1cGdyYWRl
IGlmcmFtZQotUEFTUyBIdHRwIHVwZ3JhZGUgdG9wIGxldmVsIG5hdmlnYXRpb24KLVBBU1MgSHR0
cCB1cGdyYWRlIGVtYmVkCi1QQVNTIEh0dHAgdXBncmFkZSBmZXRjaCgpIGFwaQotUEFTUyBIdHRw
IHVwZ3JhZGUgb2JqZWN0Ci1QQVNTIEh0dHAgdXBncmFkZSBwcmVsb2FkCi1QQVNTIEh0dHAgdXBn
cmFkZSBzdHlsZXNoZWV0Ci1USU1FT1VUIEh0dHAgdXBncmFkZSB0cmFjayBUZXN0IHRpbWVkIG91
dAotTk9UUlVOIEh0dHAgdXBncmFkZSBpbWFnZSA9PiBObyBoZWFkZXJzCi1QQVNTIEh0dHAgdXBn
cmFkZSBzY3JpcHQgPT4gTm8gaGVhZGVycwotRkFJTCBIdHRwIHVwZ3JhZGUgc2NyaXB0ID0+IE5v
IGhlYWRlcnM6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzY3JpcHQi
IGJ1dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRlIHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMt
ZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibm8tY29ycyIgYnV0IGdvdCAiIgot
RkFJTCBIdHRwIHVwZ3JhZGUgc2NyaXB0ID0+IE5vIGhlYWRlcnM6IHNlYy1mZXRjaC1zaXRlIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJjcm9zcy1zaXRlIiBidXQgZ290ICIiCi1QQVNTIEh0dHAg
dXBncmFkZSBzY3JpcHQgPT4gTm8gaGVhZGVyczogc2VjLWZldGNoLXVzZXIKLUZBSUwgSHR0cCB1
cGdyYWRlIGlmcmFtZTogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImlm
cmFtZSIgYnV0IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3JhZGUgaWZyYW1lOiBzZWMtZmV0Y2gtbW9k
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0
cCB1cGdyYWRlIGlmcmFtZTogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
ImNyb3NzLXNpdGUiIGJ1dCBnb3QgIiIKLVBBU1MgSHR0cCB1cGdyYWRlIGlmcmFtZTogc2VjLWZl
dGNoLXVzZXIKLUZBSUwgSHR0cCB1cGdyYWRlIHRvcCBsZXZlbCBuYXZpZ2F0aW9uOiBzZWMtZmV0
Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZG9jdW1lbnQiIGJ1dCBnb3QgIiIKLUZB
SUwgSHR0cCB1cGdyYWRlIHRvcCBsZXZlbCBuYXZpZ2F0aW9uOiBzZWMtZmV0Y2gtbW9kZSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdy
YWRlIHRvcCBsZXZlbCBuYXZpZ2F0aW9uOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiY3Jvc3Mtc2l0ZSIgYnV0IGdvdCAiIgotUEFTUyBIdHRwIHVwZ3JhZGUgdG9wIGxl
dmVsIG5hdmlnYXRpb246IHNlYy1mZXRjaC11c2VyCi1OT1RSVU4gSHR0cCB1cGdyYWRlIGZvbnQg
PT4gTm8gaGVhZGVycwotRkFJTCBIdHRwIHVwZ3JhZGUgZW1iZWQ6IHNlYy1mZXRjaC1kZXN0IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJlbWJlZCIgYnV0IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3Jh
ZGUgZW1iZWQ6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJuYXZpZ2F0
ZSIgYnV0IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3JhZGUgZW1iZWQ6IHNlYy1mZXRjaC1zaXRlIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJjcm9zcy1zaXRlIiBidXQgZ290ICIiCi1QQVNTIEh0dHAg
dXBncmFkZSBlbWJlZDogc2VjLWZldGNoLXVzZXIKLUZBSUwgSHR0cCB1cGdyYWRlIGZldGNoKCkg
YXBpOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZW1wdHkiIGJ1dCBn
b3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRlIGZldGNoKCkgYXBpOiBzZWMtZmV0Y2gtbW9kZSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiY29ycyIgYnV0IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3JhZGUg
ZmV0Y2goKSBhcGk6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjcm9z
cy1zaXRlIiBidXQgZ290ICIiCi1QQVNTIEh0dHAgdXBncmFkZSBmZXRjaCgpIGFwaTogc2VjLWZl
dGNoLXVzZXIKLUZBSUwgSHR0cCB1cGdyYWRlIG9iamVjdDogc2VjLWZldGNoLWRlc3QgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3JhZGUg
b2JqZWN0OiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUi
IGJ1dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRlIG9iamVjdDogc2VjLWZldGNoLXNpdGUgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNyb3NzLXNpdGUiIGJ1dCBnb3QgIiIKLVBBU1MgSHR0cCB1
cGdyYWRlIG9iamVjdDogc2VjLWZldGNoLXVzZXIKLUZBSUwgSHR0cCB1cGdyYWRlIHN0eWxlc2hl
ZXQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzdHlsZSIgYnV0IGdv
dCAiIgotRkFJTCBIdHRwIHVwZ3JhZGUgc3R5bGVzaGVldDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIm5vLWNvcnMiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRl
IHN0eWxlc2hlZXQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjcm9z
cy1zaXRlIiBidXQgZ290ICIiCi1QQVNTIEh0dHAgdXBncmFkZSBzdHlsZXNoZWV0OiBzZWMtZmV0
Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L3JlZGlyZWN0LWh0dHBzLWRvd25ncmFk
ZS1wcmVmZXRjaC5vcHRpb25hbC5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9yZWRpcmVj
dC1odHRwcy1kb3duZ3JhZGUtcHJlZmV0Y2gub3B0aW9uYWwuc3ViLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWJlMzNkMTFlY2ZhNjBmODliNWY0NTgwZDNiMjdl
ZWYyMjI3YTg2Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFk
YXRhL3JlZGlyZWN0L3JlZGlyZWN0LWh0dHBzLWRvd25ncmFkZS1wcmVmZXRjaC5vcHRpb25hbC5z
dWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLUhhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIEh0dHBzIGRvd25ncmFk
ZSBwcmVmZXRjaCA9PiBObyBoZWFkZXJzIFRlc3QgdGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
cmVkaXJlY3QvcmVkaXJlY3QtaHR0cHMtZG93bmdyYWRlLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jl
ZGlyZWN0L3JlZGlyZWN0LWh0dHBzLWRvd25ncmFkZS5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjk2Njc5YjgxYjk4OTkyNzRmYjI4OWM5MjBjZjQxNjE4
ZjQ5NTQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
cmVkaXJlY3QvcmVkaXJlY3QtaHR0cHMtZG93bmdyYWRlLnN1Yi1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1Eb3duZ3JhZGVkIGZvbnQKLQotCi1IYXJuZXNzIEVy
cm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotUEFTUyBIdHRwcyBkb3duZ3JhZGUgaWZy
YW1lCi1QQVNTIEh0dHBzIGRvd25ncmFkZSB0b3AgbGV2ZWwgbmF2aWdhdGlvbgotUEFTUyBIdHRw
cyBkb3duZ3JhZGUgZW1iZWQKLVBBU1MgSHR0cHMgZG93bmdyYWRlIGZldGNoKCkgYXBpCi1QQVNT
IEh0dHBzIGRvd25ncmFkZSBvYmplY3QKLVBBU1MgSHR0cHMgZG93bmdyYWRlIHByZWxvYWQKLVBB
U1MgSHR0cHMgZG93bmdyYWRlIHN0eWxlc2hlZXQKLVRJTUVPVVQgSHR0cHMgZG93bmdyYWRlIHRy
YWNrIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gSHR0cHMgZG93bmdyYWRlIGltYWdlID0+IE5vIGhl
YWRlcnMKLVBBU1MgSHR0cHMgZG93bmdyYWRlIHNjcmlwdCA9PiBObyBoZWFkZXJzCi1QQVNTIEh0
dHBzIGRvd25ncmFkZSBzY3JpcHQgPT4gTm8gaGVhZGVyczogc2VjLWZldGNoLW1vZGUKLVBBU1Mg
SHR0cHMgZG93bmdyYWRlIHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtc2l0ZQotUEFT
UyBIdHRwcyBkb3duZ3JhZGUgc2NyaXB0ID0+IE5vIGhlYWRlcnM6IHNlYy1mZXRjaC11c2VyCi1Q
QVNTIEh0dHBzIGRvd25ncmFkZSBzY3JpcHQgPT4gTm8gaGVhZGVyczogc2VjLWZldGNoLWRlc3QK
LVBBU1MgSHR0cHMgZG93bmdyYWRlIGlmcmFtZTogc2VjLWZldGNoLWRlc3QKLVBBU1MgSHR0cHMg
ZG93bmdyYWRlIGlmcmFtZTogc2VjLWZldGNoLW1vZGUKLVBBU1MgSHR0cHMgZG93bmdyYWRlIGlm
cmFtZTogc2VjLWZldGNoLXNpdGUKLVBBU1MgSHR0cHMgZG93bmdyYWRlIGlmcmFtZTogc2VjLWZl
dGNoLXVzZXIKLVBBU1MgSHR0cHMgZG93bmdyYWRlIHRvcCBsZXZlbCBuYXZpZ2F0aW9uOiBzZWMt
ZmV0Y2gtZGVzdAotUEFTUyBIdHRwcyBkb3duZ3JhZGUgdG9wIGxldmVsIG5hdmlnYXRpb246IHNl
Yy1mZXRjaC1tb2RlCi1QQVNTIEh0dHBzIGRvd25ncmFkZSB0b3AgbGV2ZWwgbmF2aWdhdGlvbjog
c2VjLWZldGNoLXNpdGUKLVBBU1MgSHR0cHMgZG93bmdyYWRlIHRvcCBsZXZlbCBuYXZpZ2F0aW9u
OiBzZWMtZmV0Y2gtdXNlcgotTk9UUlVOIEh0dHBzIGRvd25ncmFkZSBmb250ID0+IE5vIGhlYWRl
cnMKLVBBU1MgSHR0cHMgZG93bmdyYWRlIGVtYmVkOiBzZWMtZmV0Y2gtZGVzdAotUEFTUyBIdHRw
cyBkb3duZ3JhZGUgZW1iZWQ6IHNlYy1mZXRjaC1tb2RlCi1QQVNTIEh0dHBzIGRvd25ncmFkZSBl
bWJlZDogc2VjLWZldGNoLXNpdGUKLVBBU1MgSHR0cHMgZG93bmdyYWRlIGVtYmVkOiBzZWMtZmV0
Y2gtdXNlcgotUEFTUyBIdHRwcyBkb3duZ3JhZGUgZmV0Y2goKSBhcGk6IHNlYy1mZXRjaC1kZXN0
Ci1QQVNTIEh0dHBzIGRvd25ncmFkZSBmZXRjaCgpIGFwaTogc2VjLWZldGNoLW1vZGUKLVBBU1Mg
SHR0cHMgZG93bmdyYWRlIGZldGNoKCkgYXBpOiBzZWMtZmV0Y2gtc2l0ZQotUEFTUyBIdHRwcyBk
b3duZ3JhZGUgZmV0Y2goKSBhcGk6IHNlYy1mZXRjaC11c2VyCi1QQVNTIEh0dHBzIGRvd25ncmFk
ZSBvYmplY3Q6IHNlYy1mZXRjaC1kZXN0Ci1QQVNTIEh0dHBzIGRvd25ncmFkZSBvYmplY3Q6IHNl
Yy1mZXRjaC1tb2RlCi1QQVNTIEh0dHBzIGRvd25ncmFkZSBvYmplY3Q6IHNlYy1mZXRjaC1zaXRl
Ci1QQVNTIEh0dHBzIGRvd25ncmFkZSBvYmplY3Q6IHNlYy1mZXRjaC11c2VyCi1QQVNTIEh0dHBz
IGRvd25ncmFkZSBzdHlsZXNoZWV0OiBzZWMtZmV0Y2gtZGVzdAotUEFTUyBIdHRwcyBkb3duZ3Jh
ZGUgc3R5bGVzaGVldDogc2VjLWZldGNoLW1vZGUKLVBBU1MgSHR0cHMgZG93bmdyYWRlIHN0eWxl
c2hlZXQ6IHNlYy1mZXRjaC1zaXRlCi1QQVNTIEh0dHBzIGRvd25ncmFkZSBzdHlsZXNoZWV0OiBz
ZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L3NhbWUtb3JpZ2luLXJlZGly
ZWN0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L3NhbWUtb3JpZ2luLXJlZGly
ZWN0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDMyYTYzN2E1ODhiYTMwYzAxOTMxZmZmZGY4MmI1NmNkZmU3YWQxYjIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9zYW1lLW9yaWdpbi1y
ZWRpcmVjdC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAs
MCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9z
dDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVk
aXJlY3Qtc2FtZS1vcmlnaW4tc2FtZS1zaXRlZTYyNmZlNWQtMTQyYi00M2ZmLWFmYzMtMTNmNWI4
Y2U1NDQ0Ci0KLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVBB
U1MgU2FtZS1PcmlnaW4gLT4gU2FtZS1PcmlnaW4gcmVkaXJlY3QKLVRJTUVPVVQgU2FtZS1Pcmln
aW4gLT4gU2FtZS1TaXRlIHJlZGlyZWN0IFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gU2FtZS1Pcmln
aW4gLT4gQ3Jvc3MtU2l0ZSByZWRpcmVjdAotRkFJTCB1bmRlZmluZWQ6IHNlYy1mZXRjaC1kZXN0
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJpbWFnZSIgYnV0IGdvdCAiIgotRkFJTCB1bmRlZmlu
ZWQ6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJuby1jb3JzIiBidXQg
Z290ICIiCi1GQUlMIHVuZGVmaW5lZDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIHVuZGVmaW5lZDogc2VjLWZldGNo
LXVzZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9zYW1lLXNpdGUtcmVkaXJlY3QuaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3Qvc2FtZS1zaXRlLXJlZGlyZWN0Lmh0dHBzLnN1
Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5MGQ5YTA1ZWFk
ZjdjOWM3ZmVmNDg5Mzk3MjUwNDQ5NDJkNTc3M2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9zYW1lLXNpdGUtcmVkaXJlY3QuaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL3hoci9yZXNv
dXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRjaC9t
ZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXJlZGlyZWN0LXNhbWUtc2l0
ZS1zYW1lLW9yaWdpbjQ4OTRjZjIyLTRkM2UtNDVmNy1iOWQyLWE0YzllMjRlNjFlNwotQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL3hoci9y
ZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRj
aC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXJlZGlyZWN0LXNhbWUt
c2l0ZS1zYW1lLXNpdGU0ODk0Y2YyMi00ZDNlLTQ1ZjctYjlkMi1hNGM5ZTI0ZTYxZTcKLUJsb2Nr
ZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My94aHIv
cmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQz
L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3Qt
c2FtZS1zaXRlLWNyb3NzLXNpdGU0ODk0Y2YyMi00ZDNlLTQ1ZjctYjlkMi1hNGM5ZTI0ZTYxZTcK
LQotCi1GQUlMIFNhbWUtU2l0ZSAtPiBTYW1lLU9yaWdpbiByZWRpcmVjdCBhc3NlcnRfbm90X2Vx
dWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRlciBoYXMgYmVlbiByZWNvcmRlZCIK
LUZBSUwgU2FtZS1TaXRlIC0+IFNhbWUtU2l0ZSByZWRpcmVjdCBhc3NlcnRfbm90X2VxdWFsczog
Z290IGRpc2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRlciBoYXMgYmVlbiByZWNvcmRlZCIKLUZBSUwg
U2FtZS1TaXRlIC0+IENyb3NzLVNpdGUgcmVkaXJlY3QgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBk
aXNhbGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFzIGJlZW4gcmVjb3JkZWQiCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0
YWRhdGEvcmVwb3J0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlcG9ydC5odHRwcy5zdWIt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjQ3ZDM2NzMwMGY3
NDE4ZDAyODg1OTI0OTJlZTdmYWMyODZmZTU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVwb3J0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29y
ZC1oZWFkZXIucHk/ZmlsZT1yZXBvcnQtc2FtZS1zaXRlCi1CbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3Vy
Y2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1yZXBvcnQtY3Jvc3Mtc2l0ZQotQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFk
YXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVwb3J0LXNhbWUtc2l0ZQotQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2Zl
dGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVwb3J0LWNyb3Nz
LXNpdGUKLQotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBVbmhhbmRsZWQgcmVqZWN0
aW9uOiBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRlciBo
YXMgYmVlbiByZWNvcmRlZCIKLQotUEFTUyBzYW1lLW9yaWdpbiByZXBvcnQKLVRJTUVPVVQgc2Ft
ZS1zaXRlIHJlcG9ydCBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBjcm9zcy1zaXRlIHJlcG9ydCBU
ZXN0IHRpbWVkIG91dAotRkFJTCBzYW1lLW9yaWdpbiByZXBvcnQ6IHNlYy1mZXRjaC1kZXN0IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZXBvcnQiIGJ1dCBnb3QgIiIKLUZBSUwgc2FtZS1vcmln
aW4gcmVwb3J0OiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibm8tY29y
cyIgYnV0IGdvdCAiIgotRkFJTCBzYW1lLW9yaWdpbiByZXBvcnQ6IHNlYy1mZXRjaC1zaXRlIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyBzYW1l
LW9yaWdpbiByZXBvcnQ6IHNlYy1mZXRjaC11c2VyCi0KLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBt
ZXNzYWdlID0gVW5oYW5kbGVkIHJlamVjdGlvbjogYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNh
bGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFzIGJlZW4gcmVjb3JkZWQiCi0KLVBBU1Mgc2FtZS1v
cmlnaW4gcmVwb3J0Ci1USU1FT1VUIHNhbWUtc2l0ZSByZXBvcnQgVGVzdCB0aW1lZCBvdXQKLVRJ
TUVPVVQgY3Jvc3Mtc2l0ZSByZXBvcnQgVGVzdCB0aW1lZCBvdXQKLUZBSUwgc2FtZS1vcmlnaW4g
cmVwb3J0OiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAicmVwb3J0IiBi
dXQgZ290ICIiCi1GQUlMIHNhbWUtb3JpZ2luIHJlcG9ydDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIm5vLWNvcnMiIGJ1dCBnb3QgIiIKLUZBSUwgc2FtZS1vcmlnaW4g
cmVwb3J0OiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmln
aW4iIGJ1dCBnb3QgIiIKLVBBU1Mgc2FtZS1vcmlnaW4gcmVwb3J0OiBzZWMtZmV0Y2gtdXNlcgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9l
Y2hvLWFzLWpzb24ucHkKaW5kZXggNzY0NGE4NTA3ZDk3ZjlmNGQzMDEwNmRjMzhmZDIyY2ZjNmIx
MDc5Ni4uNDRmNjhlOGZlOWUyMDI1YjI5NDBlZjJhNmNkODM5MGJlNjM3NjU4MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRh
ZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMt
anNvbi5weQpAQCAtMSwyNyArMSwyOSBAQAogaW1wb3J0IGpzb24KIAorZnJvbSB3cHRzZXJ2ZS51
dGlscyBpbXBvcnQgaXNvbW9ycGhpY19kZWNvZGUKKwogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9u
c2UpOgotICAgIGhlYWRlcnMgPSBbKCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vanNvbiIp
LAotICAgICAgICAgICAgICAgKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscyIsICJ0
cnVlIildCisgICAgaGVhZGVycyA9IFsoYiJDb250ZW50LVR5cGUiLCBiImFwcGxpY2F0aW9uL2pz
b24iKSwKKyAgICAgICAgICAgICAgIChiIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxz
IiwgYiJ0cnVlIildCiAKLSAgICBpZiAib3JpZ2luIiBpbiByZXF1ZXN0LmhlYWRlcnM6Ci0gICAg
ICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgcmVxdWVz
dC5oZWFkZXJzWyJvcmlnaW4iXSkpCisgICAgaWYgYiJvcmlnaW4iIGluIHJlcXVlc3QuaGVhZGVy
czoKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
IiwgcmVxdWVzdC5oZWFkZXJzW2Iib3JpZ2luIl0pKQogCi0gICAgYm9keSA9ICIiCisgICAgYm9k
eSA9IHUiIgogCiAgICAgIyBJZiB3ZSdyZSBpbiBhIHByZWZsaWdodCwgdmVyaWZ5IHRoYXQgYFNl
Yy1GZXRjaC1Nb2RlYCBpcyBgY29yc2AuCi0gICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gJ09QVElP
TlMnOgotICAgICAgICBpZiByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJzZWMtZmV0Y2gtbW9kZSIpICE9
ICJjb3JzIjoKLSAgICAgICAgICAgIHJldHVybiAoNDAzLCAiRmFpbGVkIiksIFtdLCBib2R5Cisg
ICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gdSdPUFRJT05TJzoKKyAgICAgICAgaWYgcmVxdWVzdC5o
ZWFkZXJzLmdldChiInNlYy1mZXRjaC1tb2RlIikgIT0gYiJjb3JzIjoKKyAgICAgICAgICAgIHJl
dHVybiAoNDAzLCBiIkZhaWxlZCIpLCBbXSwgYm9keQogCi0gICAgICAgIGhlYWRlcnMuYXBwZW5k
KCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcyIsICIqIikpCi0gICAgICAgIGhlYWRlcnMu
YXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsICIqIikpCisgICAgICAgIGhl
YWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCBiIioiKSkKKyAg
ICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIGIi
KiIpKQogICAgIGVsc2U6CiAgICAgICAgIGJvZHkgPSBqc29uLmR1bXBzKHsKLSAgICAgICAgICAg
ICJkZXN0IjogcmVxdWVzdC5oZWFkZXJzLmdldCgic2VjLWZldGNoLWRlc3QiLCAiIiksCi0gICAg
ICAgICAgICAibW9kZSI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC1tb2RlIiwgIiIp
LAotICAgICAgICAgICAgInNpdGUiOiByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJzZWMtZmV0Y2gtc2l0
ZSIsICIiKSwKLSAgICAgICAgICAgICJ1c2VyIjogcmVxdWVzdC5oZWFkZXJzLmdldCgic2VjLWZl
dGNoLXVzZXIiLCAiIiksCisgICAgICAgICAgICB1ImRlc3QiOiBpc29tb3JwaGljX2RlY29kZShy
ZXF1ZXN0LmhlYWRlcnMuZ2V0KGIic2VjLWZldGNoLWRlc3QiLCBiIiIpKSwKKyAgICAgICAgICAg
IHUibW9kZSI6IGlzb21vcnBoaWNfZGVjb2RlKHJlcXVlc3QuaGVhZGVycy5nZXQoYiJzZWMtZmV0
Y2gtbW9kZSIsIGIiIikpLAorICAgICAgICAgICAgdSJzaXRlIjogaXNvbW9ycGhpY19kZWNvZGUo
cmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC1zaXRlIiwgYiIiKSksCisgICAgICAgICAg
ICB1InVzZXIiOiBpc29tb3JwaGljX2RlY29kZShyZXF1ZXN0LmhlYWRlcnMuZ2V0KGIic2VjLWZl
dGNoLXVzZXIiLCBiIiIpKSwKICAgICAgICAgICAgIH0pCiAKICAgICByZXR1cm4gaGVhZGVycywg
Ym9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291
cmNlcy9lY2hvLWFzLXNjcmlwdC5weQppbmRleCA3ODg0YjA5NmQ5OTRiNDFhMzY1Y2RiYzE5OTc5
NjMzZTljZjY1NDE5Li4xZTdiYzkxMTg0ZmRkNmRlOWZkZjk5ODIxNDZlMDA5MjExNzM3YzljIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlwdC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNl
cy9lY2hvLWFzLXNjcmlwdC5weQpAQCAtMSwxMyArMSwxNCBAQAogaW1wb3J0IGpzb24KIAotZGVm
IG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGhlYWRlcnMgPSBbKCJDb250ZW50LVR5cGUi
LCAidGV4dC9qYXZhc2NyaXB0IildCitmcm9tIHdwdHNlcnZlLnV0aWxzIGltcG9ydCBpc29tb3Jw
aGljX2RlY29kZQogCi0gICAgYm9keSA9ICJ2YXIgaGVhZGVyID0gJXM7IiAlIGpzb24uZHVtcHMo
ewotICAgICAgICAiZGVzdCI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC1kZXN0Iiwg
IiIpLAotICAgICAgICAibW9kZSI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC1tb2Rl
IiwgIiIpLAotICAgICAgICAic2l0ZSI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC1z
aXRlIiwgIiIpLAotICAgICAgICAidXNlciI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRj
aC11c2VyIiwgIiIpLAotICAgICAgICB9KTsKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToK
KyAgICBoZWFkZXJzID0gWyhiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9qYXZhc2NyaXB0IildCisg
ICAgYm9keSA9IHUidmFyIGhlYWRlciA9ICVzOyIgJSBqc29uLmR1bXBzKHsKKyAgICAgICAgdSJk
ZXN0IjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC1k
ZXN0IiwgYiIiKSksCisgICAgICAgIHUibW9kZSI6IGlzb21vcnBoaWNfZGVjb2RlKHJlcXVlc3Qu
aGVhZGVycy5nZXQoYiJzZWMtZmV0Y2gtbW9kZSIsIGIiIikpLAorICAgICAgICB1InNpdGUiOiBp
c29tb3JwaGljX2RlY29kZShyZXF1ZXN0LmhlYWRlcnMuZ2V0KGIic2VjLWZldGNoLXNpdGUiLCBi
IiIpKSwKKyAgICAgICAgdSJ1c2VyIjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVzdC5oZWFkZXJz
LmdldChiInNlYy1mZXRjaC11c2VyIiwgYiIiKSksCisgICAgICAgIH0pCiAKICAgICByZXR1cm4g
aGVhZGVycywgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci1vbmxv
YWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLW9ubG9hZC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
NDU5ZWRiZDY4YTA4NWYxNWNkYTVmZDViMzNiZTZhODAyMDJhODExCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRh
ZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci1vbmxvYWQucHkKQEAgLTAsMCArMSwzNCBAQAor
aW1wb3J0IGpzb24KKworZnJvbSB3cHRzZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19kZWNv
ZGUKKworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGhlYWRlcnMgPSBbCisgICAg
ICAgIChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9odG1sIiksCisgICAgICAgIChiIkNhY2hlLUNv
bnRyb2wiLCBiIm5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlIikKKyAgICBdCisg
ICAga2V5ID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJrZXkiLCBOb25lKQorCisgICAgYm9keSA9IHUi
IiIKKyAgICAgICAgPCFET0NUWVBFIGh0bWw+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvcG9ydGFs
cy9yZXNvdXJjZXMvc3Rhc2gtdXRpbHMuc3ViLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dD4KKyAgICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2
YXIgZGF0YSA9ICVzOworICAgICAgICAgICAgaWYgKHdpbmRvdy5vcGVuZXIpCisgICAgICAgICAg
ICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZShkYXRhLCAiKiIpOworICAgICAgICAgICAg
aWYgKHdpbmRvdy50b3AgIT0gd2luZG93KQorICAgICAgICAgICAgICAgIHdpbmRvdy50b3AucG9z
dE1lc3NhZ2UoZGF0YSwgIioiKTsKKworICAgICAgICAgICAgY29uc3Qga2V5ID0gJXM7CisgICAg
ICAgICAgICBpZiAoa2V5KQorICAgICAgICAgICAgICAgIFN0YXNoVXRpbHMucHV0VmFsdWUoa2V5
LCBkYXRhKTsKKyAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgICIiIiAlIChqc29u
LmR1bXBzKHsKKyAgICAgICAgdSJkZXN0IjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVzdC5oZWFk
ZXJzLmdldChiInNlYy1mZXRjaC1kZXN0IiwgYiIiKSksCisgICAgICAgIHUibW9kZSI6IGlzb21v
cnBoaWNfZGVjb2RlKHJlcXVlc3QuaGVhZGVycy5nZXQoYiJzZWMtZmV0Y2gtbW9kZSIsIGIiIikp
LAorICAgICAgICB1InNpdGUiOiBpc29tb3JwaGljX2RlY29kZShyZXF1ZXN0LmhlYWRlcnMuZ2V0
KGIic2VjLWZldGNoLXNpdGUiLCBiIiIpKSwKKyAgICAgICAgdSJ1c2VyIjogaXNvbW9ycGhpY19k
ZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC11c2VyIiwgYiIiKSksCisgICAg
ICAgIH0pLCBqc29uLmR1bXBzKGtleSkpCisgICAgcmV0dXJuIGhlYWRlcnMsIGJvZHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRv
LW93bmVyLnB5CmluZGV4IDA5NmYzM2IwNGEyMmYzNGVjY2JjZjk5ODEwMTBmZjZlNDNjOGVhNzku
LjI1NmRkNmU0OWRjY2E5MGQ1MDNiOWI3YzJhNGQxY2YwNGNiMzMwZDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
cmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25l
ci5weQpAQCAtMSwyNiArMSwzNiBAQAogaW1wb3J0IGpzb24KIAorZnJvbSB3cHRzZXJ2ZS51dGls
cyBpbXBvcnQgaXNvbW9ycGhpY19kZWNvZGUKKwogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2Up
OgogICAgIGhlYWRlcnMgPSBbCi0gICAgICAgICgiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIp
LAotICAgICAgICAoIkNhY2hlLUNvbnRyb2wiLCAibm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJl
dmFsaWRhdGUiKQorICAgICAgICAoYiJDb250ZW50LVR5cGUiLCBiInRleHQvaHRtbCIpLAorICAg
ICAgICAoYiJDYWNoZS1Db250cm9sIiwgYiJuby1jYWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxp
ZGF0ZSIpCiAgICAgXQorICAgIGtleSA9IHJlcXVlc3QuR0VULmZpcnN0KGIia2V5IiwgTm9uZSkK
KworICAgICMgV2Ugc2VyaWFsaXplIHRoZSBrZXkgaW50byBKU09OLCBzbyBoYXZlIHRvIGRlY29k
ZSBpdCBmaXJzdC4KKyAgICBpZiBrZXkgaXMgbm90IE5vbmU6CisgICAgICBrZXkgPSBrZXkuZGVj
b2RlKCd1dGYtOCcpCiAKLSAgICBib2R5ID0gIiIiCisgICAgYm9keSA9IHUiIiIKICAgICAgICAg
PCFET0NUWVBFIGh0bWw+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvcG9ydGFscy9yZXNvdXJjZXMv
c3Rhc2gtdXRpbHMuc3ViLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdD4KICAgICAgICAg
ICAgIHZhciBkYXRhID0gJXM7CiAgICAgICAgICAgICBpZiAod2luZG93Lm9wZW5lcikKICAgICAg
ICAgICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKGRhdGEsICIqIik7CiAgICAgICAg
ICAgICBpZiAod2luZG93LnRvcCAhPSB3aW5kb3cpCiAgICAgICAgICAgICAgICAgd2luZG93LnRv
cC5wb3N0TWVzc2FnZShkYXRhLCAiKiIpOwotICAgICAgICAgICAgaWYgKHdpbmRvdy5wb3J0YWxI
b3N0KQotICAgICAgICAgICAgICAgIHdpbmRvdy5wb3J0YWxIb3N0LnBvc3RNZXNzYWdlKGRhdGEs
ICIqIik7CisKKyAgICAgICAgICAgIGNvbnN0IGtleSA9ICVzOworICAgICAgICAgICAgaWYgKGtl
eSkKKyAgICAgICAgICAgICAgICBTdGFzaFV0aWxzLnB1dFZhbHVlKGtleSwgZGF0YSk7CiAgICAg
ICAgIDwvc2NyaXB0PgotICAgICIiIiAlIGpzb24uZHVtcHMoewotICAgICAgICAiZGVzdCI6IHJl
cXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC1kZXN0IiwgIiIpLAotICAgICAgICAibW9kZSI6
IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC1tb2RlIiwgIiIpLAotICAgICAgICAic2l0
ZSI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC1zaXRlIiwgIiIpLAotICAgICAgICAi
dXNlciI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC11c2VyIiwgIiIpLAotICAgICAg
ICB9KQorICAgICIiIiAlIChqc29uLmR1bXBzKHsKKyAgICAgICAgdSJkZXN0IjogaXNvbW9ycGhp
Y19kZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC1kZXN0IiwgYiIiKSksCisg
ICAgICAgIHUibW9kZSI6IGlzb21vcnBoaWNfZGVjb2RlKHJlcXVlc3QuaGVhZGVycy5nZXQoYiJz
ZWMtZmV0Y2gtbW9kZSIsIGIiIikpLAorICAgICAgICB1InNpdGUiOiBpc29tb3JwaGljX2RlY29k
ZShyZXF1ZXN0LmhlYWRlcnMuZ2V0KGIic2VjLWZldGNoLXNpdGUiLCBiIiIpKSwKKyAgICAgICAg
dSJ1c2VyIjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRj
aC11c2VyIiwgYiIiKSksCisgICAgICAgIH0pLCBqc29uLmR1bXBzKGtleSkpCiAgICAgcmV0dXJu
IGhlYWRlcnMsIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFk
YXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5CmluZGV4IDM2NGM4MDBhMTljZTZmMjA2MGE5
NzAxOWQyMjJhY2JmNzEwNDVlOTMuLjA1YjYwZWJhMTNiMWNmNDYxNTU1NzZmOTEwNTgwYjFkYjhh
ZmZlYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9y
ZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weQpAQCAtMSwyOSArMSwyOSBAQAogaW1wb3J0IG9zCi1p
bXBvcnQgdXVpZAogaW1wb3J0IGhhc2hsaWIKLWltcG9ydCB0aW1lCiBpbXBvcnQganNvbgogCitm
cm9tIHdwdHNlcnZlLnV0aWxzIGltcG9ydCBpc29tb3JwaGljX2RlY29kZQorCiBkZWYgbWFpbihy
ZXF1ZXN0LCByZXNwb25zZSk6CiAgICMjIEdldCB0aGUgcXVlcnkgcGFyYW1ldGVyIChrZXkpIGZy
b20gVVJMICMjCiAgICMjIFRlc3RzIHdpbGwgcmVjb3JkIFBPU1QgcmVxdWVzdHMgKENTUCBSZXBv
cnQpIGFuZCBHRVQgKHJlc3QpICMjCiAgIGlmIHJlcXVlc3QuR0VUOgotICAgIGtleSA9IHJlcXVl
c3QuR0VUWydmaWxlJ10KKyAgICBrZXkgPSByZXF1ZXN0LkdFVFtiJ2ZpbGUnXQogICBlbGlmIHJl
cXVlc3QuUE9TVDoKLSAgICBrZXkgPSByZXF1ZXN0LlBPU1RbJ2ZpbGUnXQorICAgIGtleSA9IHJl
cXVlc3QuUE9TVFtiJ2ZpbGUnXQogCiAgICMjIENvbnZlcnQgdGhlIGtleSBmcm9tIFN0cmluZyB0
byBVVUlEIHZhbGlkIFN0cmluZyAjIwogICB0ZXN0SWQgPSBoYXNobGliLm1kNShrZXkpLmhleGRp
Z2VzdCgpCiAKICAgIyMgSGFuZGxlIHRoZSBoZWFkZXIgcmV0cmlldmFsIHJlcXVlc3QgIyMKLSAg
aWYgJ3JldHJpZXZlJyBpbiByZXF1ZXN0LkdFVDoKKyAgaWYgYidyZXRyaWV2ZScgaW4gcmVxdWVz
dC5HRVQ6CiAgICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX3N0YXR1cygyMDApCiAgICAgcmVzcG9u
c2Uud3JpdGVyLmVuZF9oZWFkZXJzKCkKICAgICB0cnk6CiAgICAgICBoZWFkZXJfdmFsdWUgPSBy
ZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKHRlc3RJZCkKICAgICAgIHJlc3BvbnNlLndyaXRlci53
cml0ZShoZWFkZXJfdmFsdWUpCiAgICAgZXhjZXB0IChLZXlFcnJvciwgVmFsdWVFcnJvcikgYXMg
ZToKLSAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZSgiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29y
ZGVkIikKKyAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZSh1Ik5vIGhlYWRlciBoYXMgYmVlbiBy
ZWNvcmRlZCIpCiAgICAgICBwYXNzCiAKICAgICByZXNwb25zZS5jbG9zZV9jb25uZWN0aW9uID0g
VHJ1ZQpAQCAtMzQsMTAgKzM0LDEwIEBAIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKICAg
ICAgICMjIFJldHVybiBhIHNlcmlhbGl6ZWQgSlNPTiBvYmplY3Qgd2l0aCBvbmUgbWVtYmVyIHBl
ciBoZWFkZXIuIElmIHRoZSAjIwogICAgICAgIyMgaGVhZGVyIGlzbid0IHByZXNlbnQsIHRoZSBt
ZW1iZXIgd2lsbCBjb250YWluIGFuIGVtcHR5IHN0cmluZy4gICAgICMjCiAgICAgICBoZWFkZXIg
PSBqc29uLmR1bXBzKHsKLSAgICAgICAgImRlc3QiOiByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJzZWMt
ZmV0Y2gtZGVzdCIsICIiKSwKLSAgICAgICAgIm1vZGUiOiByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJz
ZWMtZmV0Y2gtbW9kZSIsICIiKSwKLSAgICAgICAgInNpdGUiOiByZXF1ZXN0LmhlYWRlcnMuZ2V0
KCJzZWMtZmV0Y2gtc2l0ZSIsICIiKSwKLSAgICAgICAgInVzZXIiOiByZXF1ZXN0LmhlYWRlcnMu
Z2V0KCJzZWMtZmV0Y2gtdXNlciIsICIiKSwKKyAgICAgICAgdSJkZXN0IjogaXNvbW9ycGhpY19k
ZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC1kZXN0IiwgYiIiKSksCisgICAg
ICAgIHUibW9kZSI6IGlzb21vcnBoaWNfZGVjb2RlKHJlcXVlc3QuaGVhZGVycy5nZXQoYiJzZWMt
ZmV0Y2gtbW9kZSIsIGIiIikpLAorICAgICAgICB1InNpdGUiOiBpc29tb3JwaGljX2RlY29kZShy
ZXF1ZXN0LmhlYWRlcnMuZ2V0KGIic2VjLWZldGNoLXNpdGUiLCBiIiIpKSwKKyAgICAgICAgdSJ1
c2VyIjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC11
c2VyIiwgYiIiKSksCiAgICAgICB9KQogICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHRl
c3RJZCwgaGVhZGVyKQogICAgIGV4Y2VwdCBLZXlFcnJvcjoKQEAgLTQ1LDEwMSArNDUsMTAxIEBA
IGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICAgIHBhc3MKIAogICAgICMjIFByZXZl
bnQgdGhlIGJyb3dzZXIgZnJvbSBjYWNoaW5nIHJldHVybmVkIHJlc3BvbnNlcyBhbmQgYWxsb3cg
Q09SUyAjIwotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4iLCAiKiIpCi0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNhY2hlLUNvbnRyb2wiLCAi
bm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKQotICAgIHJlc3BvbnNlLmhlYWRl
cnMuc2V0KCJQcmFnbWEiLCAibm8tY2FjaGUiKQotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJF
eHBpcmVzIiwgIjAiKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQWNjZXNzLUNvbnRyb2wt
QWxsb3ctT3JpZ2luIiwgYiIqIikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNhY2hlLUNv
bnRyb2wiLCBiIm5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlIikKKyAgICByZXNw
b25zZS5oZWFkZXJzLnNldChiIlByYWdtYSIsIGIibm8tY2FjaGUiKQorICAgIHJlc3BvbnNlLmhl
YWRlcnMuc2V0KGIiRXhwaXJlcyIsIGIiMCIpCiAKICAgICAjIyBBZGQgYSB2YWxpZCBTZXJ2aWNl
V29ya2VyIENvbnRlbnQtVHlwZSAjIwotICAgIGlmIGtleS5zdGFydHN3aXRoKCJzZXJ2aWNld29y
a2VyIik6Ci0gICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiKQorICAgIGlmIGtleS5zdGFydHN3aXRoKGIic2VydmljZXdvcmtl
ciIpOgorICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiKQogCiAgICAgIyMgQWRkIGEgdmFsaWQgaW1hZ2UgQ29udGVudC1U
eXBlICMjCi0gICAgaWYga2V5LnN0YXJ0c3dpdGgoImltYWdlIik6Ci0gICAgICByZXNwb25zZS5o
ZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgImltYWdlL3BuZyIpCi0gICAgICBmaWxlID0gb3Bl
bihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwgIm1lZGlhIiwgIjF4MS1ncmVlbi5wbmci
KSwgInIiKQorICAgIGlmIGtleS5zdGFydHN3aXRoKGIiaW1hZ2UiKToKKyAgICAgIHJlc3BvbnNl
LmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJpbWFnZS9wbmciKQorICAgICAgZmlsZSA9
IG9wZW4ob3MucGF0aC5qb2luKHJlcXVlc3QuZG9jX3Jvb3QsIHUibWVkaWEiLCB1IjF4MS1ncmVl
bi5wbmciKSwgdSJyYiIpCiAgICAgICBpbWFnZSA9IGZpbGUucmVhZCgpCiAgICAgICBmaWxlLmNs
b3NlKCkKICAgICAgIHJldHVybiBpbWFnZQogCiAgICAgIyMgUmV0dXJuIGEgdmFsaWQgLnZ0dCBj
b250ZW50IGZvciB0aGUgPHRyYWNrPiB0YWcgIyMKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgidHJh
Y2siKToKLSAgICAgIHJldHVybiAiV0VCVlRUIgorICAgIGlmIGtleS5zdGFydHN3aXRoKGIidHJh
Y2siKToKKyAgICAgIHJldHVybiBiIldFQlZUVCIKIAogICAgICMjIFJldHVybiBhIHZhbGlkIFNo
YXJlZFdvcmtlciAjIwotICAgIGlmIGtleS5zdGFydHN3aXRoKCJzaGFyZWR3b3JrZXIiKToKLSAg
ICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2
YXNjcmlwdCIpCi0gICAgICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9v
dCwgImZldGNoIiwgIm1ldGFkYXRhIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVzb3VyY2VzIiwgInNoYXJlZFdvcmtlci5qcyIpLCAiciIpCisgICAgaWYga2V5LnN0YXJ0c3dp
dGgoYiJzaGFyZWR3b3JrZXIiKToKKyAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVu
dC1UeXBlIiwgYiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IikKKyAgICAgIGZpbGUgPSBvcGVuKG9z
LnBhdGguam9pbihyZXF1ZXN0LmRvY19yb290LCB1ImZldGNoIiwgdSJtZXRhZGF0YSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdSJyZXNvdXJjZXMiLCB1InNoYXJlZFdvcmtlci5q
cyIpLCB1InJiIikKICAgICAgIHNoYXJlZF93b3JrZXIgPSBmaWxlLnJlYWQoKQogICAgICAgZmls
ZS5jbG9zZSgpCiAgICAgICByZXR1cm4gc2hhcmVkX3dvcmtlcgogCiAgICAgIyMgUmV0dXJuIGEg
dmFsaWQgZm9udCBjb250ZW50IGFuZCBDb250ZW50LVR5cGUgIyMKLSAgICBpZiBrZXkuc3RhcnRz
d2l0aCgiZm9udCIpOgotICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIs
ICJhcHBsaWNhdGlvbi94LWZvbnQtdHRmIikKLSAgICAgIGZpbGUgPSBvcGVuKG9zLnBhdGguam9p
bihyZXF1ZXN0LmRvY19yb290LCAiZm9udHMiLCAiQWhlbS50dGYiKSwgInIiKQorICAgIGlmIGtl
eS5zdGFydHN3aXRoKGIiZm9udCIpOgorICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250
ZW50LVR5cGUiLCBiImFwcGxpY2F0aW9uL3gtZm9udC10dGYiKQorICAgICAgZmlsZSA9IG9wZW4o
b3MucGF0aC5qb2luKHJlcXVlc3QuZG9jX3Jvb3QsIHUiZm9udHMiLCB1IkFoZW0udHRmIiksIHUi
cmIiKQogICAgICAgZm9udCA9IGZpbGUucmVhZCgpCiAgICAgICBmaWxlLmNsb3NlKCkKICAgICAg
IHJldHVybiBmb250CiAKICAgICAjIyBSZXR1cm4gYSB2YWxpZCBhdWRpbyBjb250ZW50IGFuZCBD
b250ZW50LVR5cGUgIyMKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgiYXVkaW8iKToKLSAgICAgIHJl
c3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAiYXVkaW8vbXBlZyIpCi0gICAgICBm
aWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwgIm1lZGlhIiwgInNvdW5k
XzUubXAzIiksICJyIikKKyAgICBpZiBrZXkuc3RhcnRzd2l0aChiImF1ZGlvIik6CisgICAgICBy
ZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIiYXVkaW8vbXBlZyIpCisgICAg
ICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwgdSJtZWRpYSIsIHUi
c291bmRfNS5tcDMiKSwgdSJyYiIpCiAgICAgICBhdWRpbyA9IGZpbGUucmVhZCgpCiAgICAgICBm
aWxlLmNsb3NlKCkKICAgICAgIHJldHVybiBhdWRpbwogCiAgICAgIyMgUmV0dXJuIGEgdmFsaWQg
dmlkZW8gY29udGVudCBhbmQgQ29udGVudC1UeXBlICMjCi0gICAgaWYga2V5LnN0YXJ0c3dpdGgo
InZpZGVvIik6Ci0gICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgInZp
ZGVvL21wNCIpCi0gICAgICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9v
dCwgIm1lZGlhIiwgIkE0Lm1wNCIpLCAiciIpCisgICAgaWYga2V5LnN0YXJ0c3dpdGgoYiJ2aWRl
byIpOgorICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInZpZGVv
L21wNCIpCisgICAgICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwg
dSJtZWRpYSIsIHUiQTQubXA0IiksIHUicmIiKQogICAgICAgdmlkZW8gPSBmaWxlLnJlYWQoKQog
ICAgICAgZmlsZS5jbG9zZSgpCiAgICAgICByZXR1cm4gdmlkZW8KIAogICAgICMjIFJldHVybiB2
YWxpZCBzdHlsZSBjb250ZW50IGFuZCBDb250ZW50LVR5cGUgIyMKLSAgICBpZiBrZXkuc3RhcnRz
d2l0aCgic3R5bGUiKToKLSAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUi
LCAidGV4dC9jc3MiKQotICAgICAgcmV0dXJuICJkaXYgeyB9IgorICAgIGlmIGtleS5zdGFydHN3
aXRoKGIic3R5bGUiKToKKyAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBl
IiwgYiJ0ZXh0L2NzcyIpCisgICAgICByZXR1cm4gYiJkaXYgeyB9IgogCiAgICAgIyMgUmV0dXJu
IGEgdmFsaWQgZW1iZWQvb2JqZWN0IGNvbnRlbnQgYW5kIENvbnRlbnQtVHlwZSAjIwotICAgIGlm
IGtleS5zdGFydHN3aXRoKCJlbWJlZCIpIG9yIGtleS5zdGFydHN3aXRoKCJvYmplY3QiKToKLSAg
ICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIikKLSAg
ICAgIHJldHVybiAiPGh0bWw+RU1CRUQhPC9odG1sPiIKKyAgICBpZiBrZXkuc3RhcnRzd2l0aChi
ImVtYmVkIikgb3Iga2V5LnN0YXJ0c3dpdGgoYiJvYmplY3QiKToKKyAgICAgIHJlc3BvbnNlLmhl
YWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2h0bWwiKQorICAgICAgcmV0dXJuIGIi
PGh0bWw+RU1CRUQhPC9odG1sPiIKIAogICAgICMjIFJldHVybiBhIHZhbGlkIGltYWdlIGNvbnRl
bnQgYW5kIENvbnRlbnQtVHlwZSBmb3IgcmVkaXJlY3QgcmVxdWVzdHMgIyMKLSAgICBpZiBrZXku
c3RhcnRzd2l0aCgicmVkaXJlY3QiKToKLSAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250
ZW50LVR5cGUiLCAiaW1hZ2UvanBlZyIpCi0gICAgICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4o
cmVxdWVzdC5kb2Nfcm9vdCwgIm1lZGlhIiwgIjF4MS1ncmVlbi5wbmciKSwgInIiKQorICAgIGlm
IGtleS5zdGFydHN3aXRoKGIicmVkaXJlY3QiKToKKyAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KGIiQ29udGVudC1UeXBlIiwgYiJpbWFnZS9qcGVnIikKKyAgICAgIGZpbGUgPSBvcGVuKG9zLnBh
dGguam9pbihyZXF1ZXN0LmRvY19yb290LCB1Im1lZGlhIiwgdSIxeDEtZ3JlZW4ucG5nIiksIHUi
cmIiKQogICAgICAgaW1hZ2UgPSBmaWxlLnJlYWQoKQogICAgICAgZmlsZS5jbG9zZSgpCiAgICAg
ICByZXR1cm4gaW1hZ2UKIAogICAgICMjIFJldHVybiBhIHZhbGlkIGRlZGljYXRlZCB3b3JrZXIK
LSAgICBpZiBrZXkuc3RhcnRzd2l0aCgid29ya2VyIik6Ci0gICAgICByZXNwb25zZS5oZWFkZXJz
LnNldCgiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiKQotICAgICAgcmV0
dXJuICJzZWxmLnBvc3RNZXNzYWdlKCdsb2FkZWQnKTsiCisgICAgaWYga2V5LnN0YXJ0c3dpdGgo
YiJ3b3JrZXIiKToKKyAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwg
YiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IikKKyAgICAgIHJldHVybiBiInNlbGYucG9zdE1lc3Nh
Z2UoJ2xvYWRlZCcpOyIKIAogICAgICMjIFJldHVybiBhbiBhcHBjYWNoZSBtYW5pZmVzdAotICAg
IGlmIGtleS5zdGFydHN3aXRoKCJhcHBjYWNoZS1tYW5pZmVzdCIpOgotICAgICAgcmVzcG9uc2Uu
aGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2NhY2hlLW1hbmlmZXN0IikKLSAgICAg
IHJldHVybiAiIiJDQUNIRSBNQU5JRkVTVAorICAgIGlmIGtleS5zdGFydHN3aXRoKGIiYXBwY2Fj
aGUtbWFuaWZlc3QiKToKKyAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBl
IiwgYiJ0ZXh0L2NhY2hlLW1hbmlmZXN0IikKKyAgICAgIHJldHVybiBiIiIiQ0FDSEUgTUFOSUZF
U1QKIC9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPWFwcGNh
Y2hlLXJlc291cmNlJXMKIAogTkVUV09SSzoKICoiIiIgJSBrZXlbMTc6XQogCiAgICAgIyMgUmV0
dXJuIGFuIGFwcGNhY2hlIHJlc291cmNlCi0gICAgaWYga2V5LnN0YXJ0c3dpdGgoImFwcGNhY2hl
LXJlc291cmNlIik6Ci0gICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwg
InRleHQvaHRtbCIpCi0gICAgICByZXR1cm4gIjxodG1sPkFwcGNhY2hlITwvaHRtbD4iCisgICAg
aWYga2V5LnN0YXJ0c3dpdGgoYiJhcHBjYWNoZS1yZXNvdXJjZSIpOgorICAgICAgcmVzcG9uc2Uu
aGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQvaHRtbCIpCisgICAgICByZXR1cm4g
YiI8aHRtbD5BcHBjYWNoZSE8L2h0bWw+IgogCiAgICAgIyMgUmV0dXJuIGEgdmFsaWQgWFNMVAot
ICAgIGlmIGtleS5zdGFydHN3aXRoKCJ4c2x0Iik6Ci0gICAgICByZXNwb25zZS5oZWFkZXJzLnNl
dCgiQ29udGVudC1UeXBlIiwgInRleHQveHNsIikKLSAgICAgIHJldHVybiAiIiI8P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorICAgIGlmIGtleS5zdGFydHN3aXRoKGIieHNs
dCIpOgorICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQv
eHNsIikKKyAgICAgIHJldHVybiBiIiIiPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG
LTgiPz4KIDx4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
WFNML1RyYW5zZm9ybSIgdmVyc2lvbj0iMS4wIj4KICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iQCp8
bm9kZSgpIj4KICAgICA8eHNsOmNvcHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCmluZGV4IGNiODQ3OGJiYWFhYjRi
MzBhOWZkYWVjZDZlOGZmNjA1ODcyYzUxNWIuLjVmNDc0OTdkODk5YTgxNmQxZjNmYjY5NTk4MTU0
OGNjZTA0OTZjOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRh
dGEvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCkBAIC0yMyw2ICsyMyw3IEBAIExpc3Qgb2YgZmls
ZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9t
ZXRhZGF0YS9yZXNvdXJjZXMvZmV0Y2gtdmlhLXNlcnZpY2V3b3JrZXItLXJlc3BvbmRXaXRoLS1z
dy5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvcmVzb3VyY2VzL2dvLWJhY2suaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcwor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRh
dGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXItb25sb2FkLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10
by1vd25lci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHkKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9y
ZWRpcmVjdFRlc3RIZWxwZXIuc3ViLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3NjcmlwdC5odHRwcy5zdWIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9tZXRhZGF0YS9zY3JpcHQuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYmYxYmU2NWE2M2ZjNWYzYzY3OGZhYWUwNzM5ZjQ0NDM2ZWZj
ZTNhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Nj
cmlwdC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBA
QAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5
NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlwdC5weQotQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21l
dGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlwdC5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291
cmNlcy9lY2hvLWFzLXNjcmlwdC5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFz
LXNjcmlwdC5weQotCi1QQVNTIFNhbWUtb3JpZ2luIHNjcmlwdAotRkFJTCBTYW1lLW9yaWdpbiBz
Y3JpcHQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzY3JpcHQiIGJ1
dCBnb3QgIiIKLUZBSUwgU2FtZS1vcmlnaW4gc2NyaXB0OiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAibm8tY29ycyIgYnV0IGdvdCAiIgotRkFJTCBTYW1lLW9yaWdpbiBz
Y3JpcHQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdp
biIgYnV0IGdvdCAiIgotUEFTUyBTYW1lLW9yaWdpbiBzY3JpcHQ6IHNlYy1mZXRjaC11c2VyCi1Q
QVNTIFNhbWUtc2l0ZSBzY3JpcHQKLUZBSUwgU2FtZS1zaXRlIHNjcmlwdDogc2VjLWZldGNoLWRl
c3QgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1ZS5kZXN0JykKLUZBSUwg
U2FtZS1zaXRlIHNjcmlwdDogc2VjLWZldGNoLW1vZGUgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICd2YWx1ZS5tb2RlJykKLUZBSUwgU2FtZS1zaXRlIHNjcmlwdDogc2VjLWZldGNo
LXNpdGUgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1ZS5zaXRlJykKLUZB
SUwgU2FtZS1zaXRlIHNjcmlwdDogc2VjLWZldGNoLXVzZXIgbnVsbCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICd2YWx1ZS51c2VyJykKLVBBU1MgQ3Jvc3Mtc2l0ZSBzY3JpcHQKLUZBSUwg
Q3Jvc3Mtc2l0ZSBzY3JpcHQ6IHNlYy1mZXRjaC1kZXN0IG51bGwgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAndmFsdWUuZGVzdCcpCi1GQUlMIENyb3NzLXNpdGUgc2NyaXB0OiBzZWMtZmV0
Y2gtbW9kZSBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3ZhbHVlLm1vZGUnKQot
RkFJTCBDcm9zcy1zaXRlIHNjcmlwdDogc2VjLWZldGNoLXNpdGUgbnVsbCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICd2YWx1ZS5zaXRlJykKLUZBSUwgQ3Jvc3Mtc2l0ZSBzY3JpcHQ6IHNl
Yy1mZXRjaC11c2VyIG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndmFsdWUudXNl
cicpCi1QQVNTIFNhbWUtb3JpZ2luIENPUlMgc2NyaXB0Ci1GQUlMIFNhbWUtb3JpZ2luIENPUlMg
c2NyaXB0OiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2NyaXB0IiBi
dXQgZ290ICIiCi1GQUlMIFNhbWUtb3JpZ2luIENPUlMgc2NyaXB0OiBzZWMtZmV0Y2gtbW9kZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY29ycyIgYnV0IGdvdCAiIgotRkFJTCBTYW1lLW9yaWdp
biBDT1JTIHNjcmlwdDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNh
bWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIFNhbWUtb3JpZ2luIENPUlMgc2NyaXB0OiBzZWMt
ZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3NjcmlwdC5zdWItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9z
Y3JpcHQuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjc0
MjUxNThmNGVkZjAxYTczNGE0ZDRhOGU2N2FmMzNjZGE1NDBlMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3NjcmlwdC5zdWItZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHA6Ly93d3cubG9jYWxob3N0Ojg4MDAvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2Vj
aG8tYXMtc2NyaXB0LnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3
dy4xMjcuMC4wLjE6ODgwMC9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQu
cHkKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3LmxvY2FsaG9zdDo4
ODAwL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlwdC5weQotQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cuMTI3LjAuMC4xOjg4MDAvZmV0Y2gvbWV0
YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtc2NyaXB0LnB5Ci0KLVBBU1MgTm9uLXNlY3VyZSBzYW1l
LW9yaWdpbiBzY3JpcHQgPT4gTm8gaGVhZGVycwotUEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2lu
IHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtZGVzdAotUEFTUyBOb24tc2VjdXJlIHNh
bWUtb3JpZ2luIHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtbW9kZQotUEFTUyBOb24t
c2VjdXJlIHNhbWUtb3JpZ2luIHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtc2l0ZQot
UEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2luIHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0
Y2gtdXNlcgotUEFTUyBOb24tc2VjdXJlIHNhbWUtc2l0ZSBzY3JpcHQgPT4gTm8gaGVhZGVycwot
RkFJTCBOb24tc2VjdXJlIHNhbWUtc2l0ZSBzY3JpcHQgPT4gTm8gaGVhZGVyczogc2VjLWZldGNo
LWRlc3QgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1ZS5kZXN0JykKLUZB
SUwgTm9uLXNlY3VyZSBzYW1lLXNpdGUgc2NyaXB0ID0+IE5vIGhlYWRlcnM6IHNlYy1mZXRjaC1t
b2RlIG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndmFsdWUubW9kZScpCi1GQUlM
IE5vbi1zZWN1cmUgc2FtZS1zaXRlIHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtc2l0
ZSBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3ZhbHVlLnNpdGUnKQotRkFJTCBO
b24tc2VjdXJlIHNhbWUtc2l0ZSBzY3JpcHQgPT4gTm8gaGVhZGVyczogc2VjLWZldGNoLXVzZXIg
bnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1ZS51c2VyJykKLVBBU1MgTm9u
LXNlY3VyZSBjcm9zcy1zaXRlIHNjcmlwdCA9PiBObyBoZWFkZXJzCi1GQUlMIE5vbi1zZWN1cmUg
Y3Jvc3Mtc2l0ZSBzY3JpcHQgPT4gTm8gaGVhZGVyczogc2VjLWZldGNoLWRlc3QgbnVsbCBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1ZS5kZXN0JykKLUZBSUwgTm9uLXNlY3VyZSBj
cm9zcy1zaXRlIHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtbW9kZSBudWxsIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3ZhbHVlLm1vZGUnKQotRkFJTCBOb24tc2VjdXJlIGNy
b3NzLXNpdGUgc2NyaXB0ID0+IE5vIGhlYWRlcnM6IHNlYy1mZXRjaC1zaXRlIG51bGwgaXMgbm90
IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndmFsdWUuc2l0ZScpCi1GQUlMIE5vbi1zZWN1cmUgY3Jv
c3Mtc2l0ZSBzY3JpcHQgPT4gTm8gaGVhZGVyczogc2VjLWZldGNoLXVzZXIgbnVsbCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1ZS51c2VyJykKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9zZXJ2
aWNld29ya2VyLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3NlcnZpY2V3b3JrZXIuaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDBhMzBhNjMz
MjYxYmFlZWVmMTkzZjFkMTI5N2NmNjkxZWUzYWMxZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3NlcnZpY2V3b3JrZXIuaHR0cHMuc3ViLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLQotUEFTUyBtZXRhZGF0YSBmb3Ig
c2VydmljZSB3b3JrZXIgc2NyaXB0cwotRkFJTCBSZWdpc3RlciBzZXJ2aWNlIHdvcmtlcjogc2Vj
LWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNlcnZpY2V3b3JrZXIiIGJ1dCBn
b3QgIiIKLUZBSUwgUmVnaXN0ZXIgc2VydmljZSB3b3JrZXI6IHNlYy1mZXRjaC1tb2RlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotRkFJTCBSZWdpc3Rl
ciBzZXJ2aWNlIHdvcmtlcjogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
InNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIFJlZ2lzdGVyIHNlcnZpY2Ugd29ya2VyOiBz
ZWMtZmV0Y2gtdXNlcgotRkFJTCBVcGRhdGUgc2VydmljZSB3b3JrZXI6IHNlYy1mZXRjaC1kZXN0
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzZXJ2aWNld29ya2VyIiBidXQgZ290ICIiCi1GQUlM
IFVwZGF0ZSBzZXJ2aWNlIHdvcmtlcjogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1GQUlMIFVwZGF0ZSBzZXJ2aWNlIHdvcmtl
cjogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBi
dXQgZ290ICIiCi1QQVNTIFVwZGF0ZSBzZXJ2aWNlIHdvcmtlcjogc2VjLWZldGNoLXVzZXIKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9tZXRhZGF0YS9zaGFyZWR3b3JrZXIuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvc2hh
cmVkd29ya2VyLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRlNzMyNjgxYTVhOWFiMjc1MTY5YzJmNzA3MGM1MWZjNzFjZjc2MDMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9zaGFyZWR3b3JrZXIuaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1IYXJu
ZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTaGFyZWRXb3JrZXIKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3N0eWxlLmh0dHBzLnN1Yi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL21ldGFkYXRhL3N0eWxlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGZmYjAzNDg5ZGFiMzIxNDdlNzNlZDU5MWRmMTkzN2FlOWZlMWNl
NTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9zdHls
ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAot
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQz
L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9c3R5bGUtc2Ft
ZS1zaXRlNjFmNTNmNzAtMjRhZS00N2E3LTg2ODMtNzllMjc0MGM1M2U1Ci0KLUhhcm5lc3MgRXJy
b3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1QQVNTIFNhbWUtT3JpZ2luIHN0eWxlCi1U
SU1FT1VUIFNhbWUtU2l0ZSBzdHlsZSBUZXN0IHRpbWVkIG91dAotTk9UUlVOIENyb3NzLVNpdGUg
c3R5bGUKLU5PVFJVTiBTYW1lLU9yaWdpbiwgY29ycyBzdHlsZQotRkFJTCBTYW1lLU9yaWdpbiBz
dHlsZTogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInN0eWxlIiBidXQg
Z290ICIiCi1GQUlMIFNhbWUtT3JpZ2luIHN0eWxlOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAibm8tY29ycyIgYnV0IGdvdCAiIgotRkFJTCBTYW1lLU9yaWdpbiBzdHls
ZTogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBi
dXQgZ290ICIiCi1QQVNTIFNhbWUtT3JpZ2luIHN0eWxlOiBzZWMtZmV0Y2gtdXNlcgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL3RyYWNrLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3RyYWNrLmh0dHBzLnN1
Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxZmVlNzY4NDM2
MGZlMTI3NzE5MWMyNDg0ZDEzMzBmZGZiZmI3NWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS90cmFjay5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0KLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1l
c3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgU2FtZS1PcmlnaW4gdHJhY2sgVGVzdCB0aW1lZCBvdXQK
LU5PVFJVTiBTYW1lLVNpdGUgdHJhY2sKLU5PVFJVTiBDcm9zcy1TaXRlIHRyYWNrCi1OT1RSVU4g
U2FtZS1PcmlnaW4sIENPUlMgdHJhY2sKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS90cmFpbGluZy1kb3QuaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdHJhaWxpbmctZG90Lmh0dHBzLnN1Yi1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkYmNiNjI0MDEyOGNmM2YyZDdjY2Fk
NzhlMzZjOWUyZjRmY2FhNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS90cmFpbGluZy1kb3QuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDggKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vbG9jYWxob3N0Ljo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24u
cHkKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Qu
Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weQotQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMS46OTQ0My9mZXRjaC9t
ZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5Ci0KLUZBSUwgRmV0Y2hpbmcgYSByZXNv
dXJjZSBmcm9tIHRoZSBzYW1lIG9yaWdpbiwgYnV0IHNwZWxsZWQgd2l0aCBhIHRyYWlsaW5nIGRv
dC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBGZXRjaGluZyBhIHJlc291cmNlIGZyb20gdGhl
IHNhbWUgc2l0ZSwgYnV0IHNwZWxsZWQgd2l0aCBhIHRyYWlsaW5nIGRvdC4gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBl
IGVycm9yIgotRkFJTCBGZXRjaGluZyBhIHJlc291cmNlIGZyb20gYSBjcm9zcy1zaXRlIGhvc3Qs
IHNwZWxsZWQgd2l0aCBhIHRyYWlsaW5nIGRvdC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL3RyYWlsaW5nLWRvdC5odHRwcy5zdWIuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3RyYWlsaW5nLWRv
dC5odHRwcy5zdWIuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2
MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdHJhaWxpbmctZG90Lmh0dHBz
LnN1Yi5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBm
b3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAt
LT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3RyYWlsaW5nLWRv
dC5odHRwcy5zdWIuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS90cmFpbGluZy1kb3QuaHR0cHMuc3ViLmFueS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZTMyZmM0ZTdmNmE0NGQyNjQ2ZTA5M2NjOTk0NWZhMDFkYTc3ZWRhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9tZXRhZGF0YS90cmFpbGluZy1kb3QuaHR0cHMuc3ViLmFueS5qcwpAQCAtMCwwICsxLDMw
IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogc2NyaXB0PS9mZXRj
aC9tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzCisKKy8vIFNpdGUKK3Byb21pc2VfdGVzdCh0
ID0+IHsKKyAgcmV0dXJuIHZhbGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0b21fdXJsKCJodHRwczov
L3t7aG9zdH19Ljp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9l
Y2hvLWFzLWpzb24ucHkiLCB7fSwgeworICAgICAgICAgICJzaXRlIjogImNyb3NzLXNpdGUiLAor
ICAgICAgICAgICJ1c2VyIjogIiIsCisgICAgICAgICAgIm1vZGUiOiAiY29ycyIsCisgICAgICAg
ICAgImRlc3QiOiAiZW1wdHkiCisgICAgICAgIH0sICJGZXRjaGluZyBhIHJlc291cmNlIGZyb20g
dGhlIHNhbWUgb3JpZ2luLCBidXQgc3BlbGxlZCB3aXRoIGEgdHJhaWxpbmcgZG90LiIpOworfSwg
IkZldGNoaW5nIGEgcmVzb3VyY2UgZnJvbSB0aGUgc2FtZSBvcmlnaW4sIGJ1dCBzcGVsbGVkIHdp
dGggYSB0cmFpbGluZyBkb3QuIik7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgcmV0dXJuIHZh
bGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0b21fdXJsKCJodHRwczovL3t7aG9zdHNbXVt3d3ddfX0u
Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNv
bi5weSIsIHt9LCB7CisgICAgICAgICAgInNpdGUiOiAiY3Jvc3Mtc2l0ZSIsCisgICAgICAgICAg
InVzZXIiOiAiIiwKKyAgICAgICAgICAibW9kZSI6ICJjb3JzIiwKKyAgICAgICAgICAiZGVzdCI6
ICJlbXB0eSIKKyAgICAgICAgfSwgIkZldGNoaW5nIGEgcmVzb3VyY2UgZnJvbSB0aGUgc2FtZSBz
aXRlLCBidXQgc3BlbGxlZCB3aXRoIGEgdHJhaWxpbmcgZG90LiIpOworfSwgIkZldGNoaW5nIGEg
cmVzb3VyY2UgZnJvbSB0aGUgc2FtZSBzaXRlLCBidXQgc3BlbGxlZCB3aXRoIGEgdHJhaWxpbmcg
ZG90LiIpOworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgIHJldHVybiB2YWxpZGF0ZV9leHBlY3Rh
dGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ljp7e3BvcnRzW2h0
dHBzXVswXX19L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkiLCB7fSwg
eworICAgICAgICAgICJzaXRlIjogImNyb3NzLXNpdGUiLAorICAgICAgICAgICJ1c2VyIjogIiIs
CisgICAgICAgICAgIm1vZGUiOiAiY29ycyIsCisgICAgICAgICAgImRlc3QiOiAiZW1wdHkiCisg
ICAgICAgIH0sICJGZXRjaGluZyBhIHJlc291cmNlIGZyb20gYSBjcm9zcy1zaXRlIGhvc3QsIHNw
ZWxsZWQgd2l0aCBhIHRyYWlsaW5nIGRvdC4iKTsKK30sICJGZXRjaGluZyBhIHJlc291cmNlIGZy
b20gYSBjcm9zcy1zaXRlIGhvc3QsIHNwZWxsZWQgd2l0aCBhIHRyYWlsaW5nIGRvdC4iKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbWV0YWRhdGEvdHJhaWxpbmctZG90Lmh0dHBzLnN1Yi5hbnkud29ya2VyLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Ry
YWlsaW5nLWRvdC5odHRwcy5zdWIuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1
MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Ry
YWlsaW5nLWRvdC5odHRwcy5zdWIuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0g
VGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBy
dW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbWV0YWRhdGEvdHJhaWxpbmctZG90Lmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS90cmFpbGluZy1kb3Qu
aHR0cHMuc3ViLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmZDg3NmYwNTI0
ZGQ0MGEwZjc3Yjc0MzQwOWU4OTY4YTg5ZjgxZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS90cmFpbGluZy1kb3QuaHR0cHMuc3ViLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL21ldGFk
YXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAvLyBTaXRlCi0g
IHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gdmFsaWRhdGVfZXhwZWN0YXRpb25zX2N1
c3RvbV91cmwoImh0dHBzOi8ve3tob3N0fX0uOnt7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0
YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weSIsIHt9LCB7Ci0gICAgICAgICAgICAic2l0
ZSI6ICJjcm9zcy1zaXRlIiwKLSAgICAgICAgICAgICJ1c2VyIjogIiIsCi0gICAgICAgICAgICAi
bW9kZSI6ICJjb3JzIiwKLSAgICAgICAgICAgICJkZXN0IjogImVtcHR5IgotICAgICAgICAgIH0s
ICJGZXRjaGluZyBhIHJlc291cmNlIGZyb20gdGhlIHNhbWUgb3JpZ2luLCBidXQgc3BlbGxlZCB3
aXRoIGEgdHJhaWxpbmcgZG90LiIpOwotICB9LCAiRmV0Y2hpbmcgYSByZXNvdXJjZSBmcm9tIHRo
ZSBzYW1lIG9yaWdpbiwgYnV0IHNwZWxsZWQgd2l0aCBhIHRyYWlsaW5nIGRvdC4iKTsKLQotICBw
cm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIHZhbGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0
b21fdXJsKCJodHRwczovL3t7aG9zdHNbXVt3d3ddfX0uOnt7cG9ydHNbaHR0cHNdWzBdfX0vZmV0
Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weSIsIHt9LCB7Ci0gICAgICAgICAg
ICAic2l0ZSI6ICJjcm9zcy1zaXRlIiwKLSAgICAgICAgICAgICJ1c2VyIjogIiIsCi0gICAgICAg
ICAgICAibW9kZSI6ICJjb3JzIiwKLSAgICAgICAgICAgICJkZXN0IjogImVtcHR5IgotICAgICAg
ICAgIH0sICJGZXRjaGluZyBhIHJlc291cmNlIGZyb20gdGhlIHNhbWUgc2l0ZSwgYnV0IHNwZWxs
ZWQgd2l0aCBhIHRyYWlsaW5nIGRvdC4iKTsKLSAgfSwgIkZldGNoaW5nIGEgcmVzb3VyY2UgZnJv
bSB0aGUgc2FtZSBzaXRlLCBidXQgc3BlbGxlZCB3aXRoIGEgdHJhaWxpbmcgZG90LiIpOwotCi0g
IHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gdmFsaWRhdGVfZXhwZWN0YXRpb25zX2N1
c3RvbV91cmwoImh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fS46e3twb3J0c1todHRwc11bMF19
fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5Iiwge30sIHsKLSAgICAg
ICAgICAgICJzaXRlIjogImNyb3NzLXNpdGUiLAotICAgICAgICAgICAgInVzZXIiOiAiIiwKLSAg
ICAgICAgICAgICJtb2RlIjogImNvcnMiLAotICAgICAgICAgICAgImRlc3QiOiAiZW1wdHkiCi0g
ICAgICAgICAgfSwgIkZldGNoaW5nIGEgcmVzb3VyY2UgZnJvbSBhIGNyb3NzLXNpdGUgaG9zdCwg
c3BlbGxlZCB3aXRoIGEgdHJhaWxpbmcgZG90LiIpOwotICB9LCAiRmV0Y2hpbmcgYSByZXNvdXJj
ZSBmcm9tIGEgY3Jvc3Mtc2l0ZSBob3N0LCBzcGVsbGVkIHdpdGggYSB0cmFpbGluZyBkb3QuIik7
Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdW5sb2FkLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFk
YXRhL3VubG9hZC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5ZDBhN2QzMTUwYWIwNTdlY2M4Y2FlZmRiODI1ZDFjYTRkYmEzN2ZkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdW5sb2FkLmh0dHBzLnN1
Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotCi1QQVNTIEZl
dGNoIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIKLUZBSUwgdW5kZWZpbmVkOiBzZWMtZmV0Y2gtZGVz
dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZW1wdHkiIGJ1dCBnb3QgIiIKLUZBSUwgdW5kZWZp
bmVkOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibm8tY29ycyIgYnV0
IGdvdCAiIgotRkFJTCB1bmRlZmluZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyB1bmRlZmluZWQ6IHNlYy1mZXRj
aC11c2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3czYy1pbXBvcnQubG9n
CmluZGV4IDBiNTE1MjA4OWE3NTg4NDkzMDY1OTBiNGQxNTUxYTE0ZTk4ZWJhZTUuLjUyYTM4YTQ3
YWNkZGQ1NjhhNWY0MjMyOTRhYjFjZWQxZTcxMGQ3ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdzNjLWltcG9y
dC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9tZXRhZGF0YS93M2MtaW1wb3J0LmxvZwpAQCAtMTcsMTIgKzE3LDEyIEBAIExpc3Qgb2Yg
ZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS9NRVRBLnltbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvUkVBRE1FLm1kCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9kb3dubG9hZC5odHRwcy5zdWIu
aHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvZW1iZWQuaHR0cHMuc3ViLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2VtYmVkLmh0dHBzLnN1Yi50ZW50YXRp
dmUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbWV0YWRhdGEvZmF2aWNvbi5odHRwcy5zdWIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gtcHJlZmxpZ2h0Lmh0
dHBzLnN1Yi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC1wcmVmbGlnaHQuaHR0cHMuc3ViLmFueS5qcwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0
Y2gtdmlhLXNlcnZpY2V3b3JrZXItLWZhbGxiYWNrLmh0dHBzLnN1Yi5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC12
aWEtc2VydmljZXdvcmtlci0tcmVzcG9uZFdpdGguaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0
dHBzLnN1Yi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC5odHRwcy5zdWIuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC5zdWIuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0
YWRhdGEvZm9udC5odHRwcy5zdWIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZm9ybS5odHRwcy5zdWIuaHRtbApAQCAtNDMs
NyArNDMsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvc2hhcmVkd29ya2VyLmh0dHBzLnN1Yi5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRh
ZGF0YS9zdHlsZS5odHRwcy5zdWIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdHJhY2suaHR0cHMuc3ViLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Ry
YWlsaW5nLWRvdC5odHRwcy5zdWIuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdHJhaWxpbmctZG90Lmh0dHBzLnN1Yi5hbnku
anMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21l
dGFkYXRhL3VubG9hZC5odHRwcy5zdWIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvd2luZG93LW9wZW4uaHR0cHMuc3ViLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21l
dGFkYXRhL3dvcmtlci5odHRwcy5zdWIuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS93aW5kb3ctb3Blbi5o
dHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS93aW5kb3ctb3Blbi5odHRwcy5zdWItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzE1YmI5YzNiYjgyNDVlNTE0ZWY4
MTlkNWU5YjJjNDMxMTdjYzY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbWV0YWRhdGEvd2luZG93LW9wZW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMyICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
czovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1v
d25lci5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4w
LjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci1CbG9j
a2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0
Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkKLUJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0My9mZXRjaC9tZXRhZGF0YS9y
ZXNvdXJjZXMvcG9zdC10by1vd25lci5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9wb3N0
LXRvLW93bmVyLnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cu
MTI3LjAuMC4xOjk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkK
LQotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotUEFTUyBTYW1l
LW9yaWdpbiB3aW5kb3csIGZvcmNlZAotVElNRU9VVCBTYW1lLXNpdGUgd2luZG93LCBmb3JjZWQg
VGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ3Jvc3Mtc2l0ZSB3aW5kb3csIGZvcmNlZCBUZXN0IHRp
bWVkIG91dAotUEFTUyBTYW1lLW9yaWdpbiB3aW5kb3csIGZvcmNlZCwgcmVsb2FkZWQKLVRJTUVP
VVQgU2FtZS1zaXRlIHdpbmRvdywgZm9yY2VkLCByZWxvYWRlZCBUZXN0IHRpbWVkIG91dAotVElN
RU9VVCBDcm9zcy1zaXRlIHdpbmRvdywgZm9yY2VkLCByZWxvYWRlZCBUZXN0IHRpbWVkIG91dAot
UEFTUyBTYW1lLW9yaWdpbiB3aW5kb3csIHVzZXItYWN0aXZhdGVkCi1USU1FT1VUIFNhbWUtc2l0
ZSB3aW5kb3csIHVzZXItYWN0aXZhdGVkIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIENyb3NzLXNp
dGUgd2luZG93LCB1c2VyLWFjdGl2YXRlZCBUZXN0IHRpbWVkIG91dAotRkFJTCBTYW1lLW9yaWdp
biB3aW5kb3csIGZvcmNlZDogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
ImRvY3VtZW50IiBidXQgZ290ICIiCi1GQUlMIFNhbWUtb3JpZ2luIHdpbmRvdywgZm9yY2VkOiBz
ZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3Qg
IiIKLUZBSUwgU2FtZS1vcmlnaW4gd2luZG93LCBmb3JjZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyBTYW1lLW9y
aWdpbiB3aW5kb3csIGZvcmNlZDogc2VjLWZldGNoLXVzZXIKLUZBSUwgU2FtZS1vcmlnaW4gd2lu
ZG93LCBmb3JjZWQsIHJlbG9hZGVkOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiZG9jdW1lbnQiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1vcmlnaW4gd2luZG93LCBmb3Jj
ZWQsIHJlbG9hZGVkOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2
aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1vcmlnaW4gd2luZG93LCBmb3JjZWQsIHJlbG9h
ZGVkOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4i
IGJ1dCBnb3QgIiIKLVBBU1MgU2FtZS1vcmlnaW4gd2luZG93LCBmb3JjZWQsIHJlbG9hZGVkOiBz
ZWMtZmV0Y2gtdXNlcgotRkFJTCBTYW1lLW9yaWdpbiB3aW5kb3csIHVzZXItYWN0aXZhdGVkOiBz
ZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZG9jdW1lbnQiIGJ1dCBnb3Qg
IiIKLUZBSUwgU2FtZS1vcmlnaW4gd2luZG93LCB1c2VyLWFjdGl2YXRlZDogc2VjLWZldGNoLW1v
ZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5hdmlnYXRlIiBidXQgZ290ICIiCi1GQUlMIFNh
bWUtb3JpZ2luIHdpbmRvdywgdXNlci1hY3RpdmF0ZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotRkFJTCBTYW1lLW9yaWdp
biB3aW5kb3csIHVzZXItYWN0aXZhdGVkOiBzZWMtZmV0Y2gtdXNlciBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiPzEiIGJ1dCBnb3QgIiIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS93b3JrZXIuaHR0cHMuc3Vi
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvbWV0YWRhdGEvd29ya2VyLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkOGUwOGVmZTFhMDAxMWZlMzU0NjhlOTA5MDM2MmUwOTA2
NGE2YzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS93
b3JrZXIuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBA
QAotCi1QQVNTIFNhbWUtT3JpZ2luIHdvcmtlcgotRkFJTCB1bmRlZmluZWQ6IHNlYy1mZXRjaC1k
ZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ3b3JrZXIiIGJ1dCBnb3QgIiIKLUZBSUwgdW5k
ZWZpbmVkOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmln
aW4iIGJ1dCBnb3QgIiIKLUZBSUwgdW5kZWZpbmVkOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1MgdW5kZWZpbmVkOiBz
ZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3hzbHQuaHR0cHMuc3ViLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0
YWRhdGEveHNsdC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjMWVhMmYzZTE5ZjMxZWQ4MGIyOTk4Nzk4MTU1YTJiZWFjYmYyZDliLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEveHNsdC5odHRwcy5zdWIt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0KLVBBU1MgU2FtZS1P
cmlnaW4geHNsdAotRkFJTCB1bmRlZmluZWQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJ4c2x0IiBidXQgZ290ICIiCi1GQUlMIHVuZGVmaW5lZDogc2VjLWZldGNoLW1v
ZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1GQUlM
IHVuZGVmaW5lZDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUt
b3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIHVuZGVmaW5lZDogc2VjLWZldGNoLXVzZXIKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9ub3NuaWZmL3BhcnNpbmctbm9zbmlmZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvcGFyc2luZy1ub3NuaWZm
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQ5Y2Q5MjhhZmI2
M2QzN2JhMTk1ZDg1M2FjYzk1ZWQwZDU0MzA2NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL25vc25pZmYvcGFyc2luZy1ub3NuaWZmLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDggKzAsMCBAQAotCi1QQVNTIFVSTCBxdWVyeTogZmlyc3QKLVBBU1MgVVJM
IHF1ZXJ5OiB1cHBlcmNhc2UKLVBBU1MgVVJMIHF1ZXJ5OiBsYXN0Ci1QQVNTIFVSTCBxdWVyeTog
cXVvdGVkCi1QQVNTIFVSTCBxdWVyeTogcXVvdGVkLXNpbmdsZQotUEFTUyBVUkwgcXVlcnk6IG5v
LXgKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9ub3NuaWZmL3BhcnNpbmctbm9zbmlmZi53aW5kb3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZm
L3BhcnNpbmctbm9zbmlmZi53aW5kb3ctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2M2U1YWI2Y2EyMjlhMWMzMWYzNGZmNjE2ZjEzYzMzMzFiMGQxMjhmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9wYXJzaW5nLW5vc25p
ZmYud2luZG93LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLQot
UEFTUyBMb2FkaW5nIEpTT07igKYKLVBBU1MgWC1Db250ZW50LVR5cGUtT3B0aW9ucyUzQSUyME5P
U05JRkYKLVBBU1MgeC1jb250ZW50LXR5cGUtT1BUSU9OUyUzQSUyMG5vc25pZmYKLVBBU1MgWC1D
b250ZW50LVR5cGUtT3B0aW9ucyUzQSUyMG5vc25pZmYlMkMlMkMlNDAlMjMlMjQlMjMlMjUlMjUl
MjYlNUUlMjYlNUUqKCkoKTExIQotUEFTUyBYLUNvbnRlbnQtVHlwZS1PcHRpb25zJTNBJTIwJTQw
JTIzJTI0JTIzJTI1JTI1JTI2JTVFJTI2JTVFKigpKCkxMSElMkNub3NuaWZmCi1QQVNTIFgtQ29u
dGVudC1UeXBlLU9wdGlvbnMlM0ElMjBub3NuaWZmJTBEJTBBWC1Db250ZW50LVR5cGUtT3B0aW9u
cyUzQSUyMG5vCi1QQVNTIFgtQ29udGVudC1UeXBlLU9wdGlvbnMlM0ElMjBubyUwRCUwQVgtQ29u
dGVudC1UeXBlLU9wdGlvbnMlM0ElMjBub3NuaWZmCi1QQVNTIFgtQ29udGVudC1UeXBlLU9wdGlv
bnMlM0ElMEQlMEFYLUNvbnRlbnQtVHlwZS1PcHRpb25zJTNBJTIwbm9zbmlmZgotUEFTUyBYLUNv
bnRlbnQtVHlwZS1PcHRpb25zJTNBJTIwJTJDbm9zbmlmZgotRkFJTCBYLUNvbnRlbnQtVHlwZS1P
cHRpb25zJTNBJTIwbm9zbmlmZiUwQyBhc3NlcnRfdW5yZWFjaGVkOiBTY3JpcHQgc2hvdWxkIGhh
dmUgbG9hZGVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBYLUNvbnRlbnQtVHlwZS1P
cHRpb25zJTNBJTIwbm9zbmlmZiUwQiBhc3NlcnRfdW5yZWFjaGVkOiBTY3JpcHQgc2hvdWxkIGhh
dmUgbG9hZGVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotUEFTUyBYLUNvbnRlbnQtVHlwZS1P
cHRpb25zJTNBJTIwbm9zbmlmZiUwQiUyQ25vc25pZmYKLVBBU1MgWC1Db250ZW50LVR5cGUtT3B0
aW9ucyUzQSUyMCdOb3NuaUZGJwotUEFTUyBYLUNvbnRlbnQtVHlwZS1PcHRpb25zJTNBJTIwJTIy
bm9zbmlGRiUyMgotUEFTUyBDb250ZW50LVR5cGUtT3B0aW9ucyUzQSUyMG5vc25pZmYKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9vcmlnaW4vcmVzb3VyY2VzL3JlZGlyZWN0LWFuZC1zdGFzaC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvb3JpZ2luL3Jlc291cmNlcy9yZWRp
cmVjdC1hbmQtc3Rhc2gucHkKaW5kZXggYWE5ZWIzNWRiMmJkZGI1OWFjYjFjN2ViY2JiOTcxYWIz
OGQzNDRiOS4uOWJmOWUxZjE4YzJiMTcxYmQ4OTFiOTI3NmUxYzQwZDU0OWI4NTM5ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9v
cmlnaW4vcmVzb3VyY2VzL3JlZGlyZWN0LWFuZC1zdGFzaC5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL29yaWdpbi9yZXNvdXJjZXMvcmVk
aXJlY3QtYW5kLXN0YXNoLnB5CkBAIC0xLDMwICsxLDMyIEBACiBpbXBvcnQganNvbgogCitmcm9t
IHdwdHNlcnZlLnV0aWxzIGltcG9ydCBpc29tb3JwaGljX2RlY29kZQorCiBkZWYgbWFpbihyZXF1
ZXN0LCByZXNwb25zZSk6Ci0gICAga2V5ID0gcmVxdWVzdC5HRVQuZmlyc3QoInN0YXNoIikKLSAg
ICBvcmlnaW4gPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJvcmlnaW4iKQorICAgIGtleSA9IHJlcXVl
c3QuR0VULmZpcnN0KGIic3Rhc2giKQorICAgIG9yaWdpbiA9IHJlcXVlc3QuaGVhZGVycy5nZXQo
YiJvcmlnaW4iKQogICAgIGlmIG9yaWdpbiBpcyBOb25lOgotICAgICAgICBvcmlnaW4gPSAibm8g
T3JpZ2luIGhlYWRlciIKKyAgICAgICAgb3JpZ2luID0gYiJubyBPcmlnaW4gaGVhZGVyIgogCiAg
ICAgb3JpZ2luX2xpc3QgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKGtleSkKIAotICAgIGlm
ICJkdW1wIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNv
bnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qc29uIikKKyAgICBpZiBiImR1bXAiIGluIHJlcXVl
c3QuR0VUOgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIi
YXBwbGljYXRpb24vanNvbiIpCiAgICAgICAgIHJlc3BvbnNlLmNvbnRlbnQgPSBqc29uLmR1bXBz
KG9yaWdpbl9saXN0KQogICAgICAgICByZXR1cm4KIAogICAgIGlmIG9yaWdpbl9saXN0IGlzIE5v
bmU6Ci0gICAgICAgIG9yaWdpbl9saXN0ID0gW29yaWdpbl0KKyAgICAgICAgb3JpZ2luX2xpc3Qg
PSBbaXNvbW9ycGhpY19kZWNvZGUob3JpZ2luKV0KICAgICBlbHNlOgotICAgICAgICBvcmlnaW5f
bGlzdC5hcHBlbmQob3JpZ2luKQorICAgICAgICBvcmlnaW5fbGlzdC5hcHBlbmQoaXNvbW9ycGhp
Y19kZWNvZGUob3JpZ2luKSkKIAogICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dChrZXksIG9y
aWdpbl9saXN0KQogCi0gICAgaWYgImxvY2F0aW9uIiBpbiByZXF1ZXN0LkdFVDoKKyAgICBpZiBi
ImxvY2F0aW9uIiBpbiByZXF1ZXN0LkdFVDoKICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gMzA4
Ci0gICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJMb2NhdGlvbiIsIHJlcXVlc3QuR0VULmZp
cnN0KCJsb2NhdGlvbiIpKQorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkxvY2F0aW9u
IiwgcmVxdWVzdC5HRVQuZmlyc3QoYiJsb2NhdGlvbiIpKQogICAgICAgICByZXR1cm4KIAotICAg
IHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIikKLSAgICBy
ZXNwb25zZS5oZWFkZXJzLnNldCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgIioiKQot
ICAgIHJlc3BvbnNlLmNvbnRlbnQgPSAiPG1ldGEgY2hhcnNldD11dGYtOD5cbjxib2R5PjxzY3Jp
cHQ+cGFyZW50LnBvc3RNZXNzYWdlKCdsb2FkZWQnLCcqJyk8L3NjcmlwdD48L2JvZHk+IgorICAg
IHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2h0bWwiKQorICAg
IHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgYiIq
IikKKyAgICByZXNwb25zZS5jb250ZW50ID0gYiI8bWV0YSBjaGFyc2V0PXV0Zi04PlxuPGJvZHk+
PHNjcmlwdD5wYXJlbnQucG9zdE1lc3NhZ2UoJ2xvYWRlZCcsJyonKTwvc2NyaXB0PjwvYm9keT4i
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL29yaWdpbi9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9vcmlnaW4vcmVzb3VyY2VzL3Jl
ZmVycmVyLXBvbGljeS5weQppbmRleCAyMmI3MWUzM2I1NDE2MGM0NTFmMWJiZmM4YTE1NzYwMGVl
YjcwNTlmLi4xNTcxNmUwNjhiOWUzZmQzNzZiOTk1MzczYmNkOWM0YWY2ZmU3NTBlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL29y
aWdpbi9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvb3JpZ2luL3Jlc291cmNlcy9yZWZlcnJl
ci1wb2xpY3kucHkKQEAgLTEsNyArMSw3IEBACiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6
Ci0gICAgaWYgInJlZmVycmVyUG9saWN5IiBpbiByZXF1ZXN0LkdFVDoKLSAgICAgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoIlJlZmVycmVyLVBvbGljeSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QuR0VULmZpcnN0KCJyZWZlcnJlclBvbGljeSIpKQorICAgIGlmIGIicmVm
ZXJyZXJQb2xpY3kiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNl
dChiIlJlZmVycmVyLVBvbGljeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QuR0VULmZpcnN0KGIicmVmZXJyZXJQb2xpY3kiKSkKICAgICByZXNwb25zZS5zdGF0dXMgPSAy
MDAKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIp
Ci0gICAgcmVzcG9uc2UuY29udGVudCA9ICI8bWV0YSBjaGFyc2V0PXV0Zi04PlxuPGJvZHk+PHNj
cmlwdD5wYXJlbnQucG9zdE1lc3NhZ2UoJ2FjdGlvbicsJyonKTwvc2NyaXB0PjwvYm9keT4iCisg
ICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQvaHRtbCIpCisg
ICAgcmVzcG9uc2UuY29udGVudCA9IGIiPG1ldGEgY2hhcnNldD11dGYtOD5cbjxib2R5PjxzY3Jp
cHQ+cGFyZW50LnBvc3RNZXNzYWdlKCdhY3Rpb24nLCcqJyk8L3NjcmlwdD48L2JvZHk+IgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9yYW5nZS9nZW5lcmFsLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJhbC5hbnkuanMKaW5kZXggNjU2YWMxY2VlYTI1
MTFkOTYwY2RiMjFiMjVhMjg0NmViMDkyYjhjNC4uODA3OTFjMzg0N2VhYzc1MDExOTFiNDRlNTQx
ZDg1ZjViOGYyOTNiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLmFueS5qcworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwuYW55
LmpzCkBAIC0xLDMgKzEsNCBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKIC8vIE1F
VEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCiAKIC8vIEhlbHBlcnMgdGhhdCByZXR1cm4gaGVh
ZGVycyBvYmplY3RzIHdpdGggYSBwYXJ0aWN1bGFyIGd1YXJkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNl
cy9sb25nLXdhdi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL2xvbmctd2F2LnB5CmluZGV4IDhhZjJhY2E4YTk1OWIz
OWM3Y2JkOTE3MDRlOTIyOGExMTlmMmIyZDguLmJlN2RmN2I4M2Q4NzIzZmZkOGM5NzdkM2Y0YjVj
NDJhMjNkNzkxOGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL2xvbmctd2F2LnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3Vy
Y2VzL2xvbmctd2F2LnB5CkBAIC0xMTgsMTIgKzExOCwxMSBAQCBkZWYgbWFpbihyZXF1ZXN0LCBy
ZXNwb25zZSk6CiAgICAgYnl0ZXNfcmVtYWluaW5nX3RvX3NlbmQgLT0gbGVuKGluaXRpYWxfd3Jp
dGUpCiAKICAgICB3aGlsZSBieXRlc19yZW1haW5pbmdfdG9fc2VuZCA+IDA6Ci0gICAgICAgIGlm
IG5vdCByZXNwb25zZS53cml0ZXIuZmx1c2goKToKLSAgICAgICAgICAgIGJyZWFrCi0KICAgICAg
ICAgdG9fc2VuZCA9IGInXHgwMCcgKiBtaW4oYnl0ZXNfcmVtYWluaW5nX3RvX3NlbmQsIHNhbXBs
ZV9yYXRlKQogICAgICAgICBieXRlc19yZW1haW5pbmdfdG9fc2VuZCAtPSBsZW4odG9fc2VuZCkK
IAotICAgICAgICByZXNwb25zZS53cml0ZXIud3JpdGUodG9fc2VuZCkKKyAgICAgICAgaWYgbm90
IHJlc3BvbnNlLndyaXRlci53cml0ZSh0b19zZW5kKToKKyAgICAgICAgICAgIGJyZWFrCisKICAg
ICAgICAgIyBUaHJvdHRsZSB0aGUgc3RyZWFtCiAgICAgICAgIHRpbWUuc2xlZXAoMC41KQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9yZWRpcmVjdC1uYXZpZ2F0ZS8zMDItZm91bmQtcG9zdC1oYW5kbGVyLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0
ZS8zMDItZm91bmQtcG9zdC1oYW5kbGVyLnB5CmluZGV4IDIzYmY0YjJjNTIyYjdjMDBhYjZiZDBm
YzNlYjk5ZjA3MzdkNTEyZWMuLjQwYTIyNGY2NTY1YmFlM2UyYzRiMzJmNzdlMmJmNGZkNWQ1NDUx
ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvMzAyLWZvdW5kLXBvc3QtaGFuZGxlci5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JlZGly
ZWN0LW5hdmlnYXRlLzMwMi1mb3VuZC1wb3N0LWhhbmRsZXIucHkKQEAgLTEsMTMgKzEsMTUgQEAK
K2Zyb20gd3B0c2VydmUudXRpbHMgaW1wb3J0IGlzb21vcnBoaWNfZW5jb2RlCisKIGRlZiBtYWlu
KHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBpZiByZXF1ZXN0Lm1ldGhvZCA9PSAiUE9TVCI6Cisg
ICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gdSJQT1NUIjoKICAgICAgICAgcmVzcG9uc2UuYWRkX3Jl
cXVpcmVkX2hlYWRlcnMgPSBGYWxzZQogICAgICAgICByZXNwb25zZS53cml0ZXIud3JpdGVfc3Rh
dHVzKDMwMikKLSAgICAgICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX2hlYWRlcigiTG9jYXRpb24i
LCByZXF1ZXN0LnVybCkKKyAgICAgICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX2hlYWRlcihiIkxv
Y2F0aW9uIiwgaXNvbW9ycGhpY19lbmNvZGUocmVxdWVzdC51cmwpKQogICAgICAgICByZXNwb25z
ZS53cml0ZXIuZW5kX2hlYWRlcnMoKQotICAgICAgICByZXNwb25zZS53cml0ZXIud3JpdGUoIiIp
Ci0gICAgZWxpZiByZXF1ZXN0Lm1ldGhvZCA9PSAiR0VUIjoKLSAgICAgICAgcmV0dXJuIChbKCJD
b250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpXSwKLSAgICAgICAgICAgICAgICAiT0siKQorICAg
ICAgICByZXNwb25zZS53cml0ZXIud3JpdGUoYiIiKQorICAgIGVsaWYgcmVxdWVzdC5tZXRob2Qg
PT0gdSJHRVQiOgorICAgICAgICByZXR1cm4gKFsoYiJDb250ZW50LVR5cGUiLCBiInRleHQvcGxh
aW4iKV0sCisgICAgICAgICAgICAgICAgYiJPSyIpCiAgICAgZWxzZToKLSAgICAgICAgcmV0dXJu
IChbKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpXSwKLSAgICAgICAgICAgICAgICAiRkFJ
TCIpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorICAgICAgICByZXR1cm4gKFsoYiJDb250
ZW50LVR5cGUiLCBiInRleHQvcGxhaW4iKV0sCisgICAgICAgICAgICAgICAgYiJGQUlMIikKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JlZGlyZWN0LW5hdmlnYXRlL3ByZXNlcnZl
LWZyYWdtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvcHJlc2VydmUtZnJhZ21lbnQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjQ1YTc0MjA3YTA4NzRj
ZDRkNTM5YmZiYzFiNjliMDBiOTAyMTkwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvcHJlc2VydmUtZnJhZ21lbnQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAgQEAKLQotCi1QQVNTIFtIVFRQIC0gU2FtZU9y
aWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzAxIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2Ft
ZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzAyIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0g
U2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzAzIHJlZGlyZWN0Ci1QQVNTIFtIVFRQ
IC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzA3IHJlZGlyZWN0Ci1QQVNTIFtI
VFRQIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzA4IHJlZGlyZWN0Ci1QQVNT
IFtIVFRQIC0gU2FtZU9yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVu
Y2UgaW4gMzAxIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUmVkaXJlY3QgVVJM
IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzAyIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0g
U2FtZU9yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzAz
IHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50
IHRha2VzIHByZWNlZGVuY2UgaW4gMzA3IHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdp
bl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzA4IHJlZGlyZWN0
Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUg
MzAxIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50
IGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMKLVBBU1MgW0hUVFAgLSBTYW1lT3JpZ2luXSBQcmVz
ZXJ2ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAzMDMgcmVkaXJlY3RzCi1QQVNTIFtIVFRQIC0gU2Ft
ZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzA3IHJlZGlyZWN0cwotUEFT
UyBbSFRUUCAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwOCBy
ZWRpcmVjdHMKLVBBU1MgW0hUVFAgLSBTYW1lT3JpZ2luXSBEZXN0aW5hdGlvbiBVUkwgZnJhZ21l
bnQgdGFrZXMgcHJlY2VkZW5jZSBpbiBtdWx0aXBsZSAzMDEgcmVkaXJlY3RzCi1QQVNTIFtIVFRQ
IC0gU2FtZU9yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ug
aW4gbXVsdGlwbGUgMzAyIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNhbWVPcmlnaW5dIERlc3Rp
bmF0aW9uIFVSTCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGluIG11bHRpcGxlIDMwMyByZWRp
cmVjdHMKLVBBU1MgW0hUVFAgLSBTYW1lT3JpZ2luXSBEZXN0aW5hdGlvbiBVUkwgZnJhZ21lbnQg
dGFrZXMgcHJlY2VkZW5jZSBpbiBtdWx0aXBsZSAzMDcgcmVkaXJlY3RzCi1QQVNTIFtIVFRQIC0g
U2FtZU9yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4g
bXVsdGlwbGUgMzA4IHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNhbWVPcmlnaW5dIEZpbmFsIHJl
ZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVs
dGlwbGUgMzAxIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNhbWVPcmlnaW5dIEZpbmFsIHJlZGly
ZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlw
bGUgMzAyIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNhbWVPcmlnaW5dIEZpbmFsIHJlZGlyZWN0
IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUg
MzAzIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNhbWVPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZy
YWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzA3
IHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNhbWVPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdt
ZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzA4IHJl
ZGlyZWN0cwotRkFJTCBbSFRUUCAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGludGVybWVkaWF0ZSBm
cmFnbWVudCBpbiBtdWx0aXBsZSAzMDEgcmVkaXJlY3RzIGFzc2VydF90cnVlOiBVbmV4cGVjdGVk
IGZyYWdtZW50OiBodHRwOi8vbG9jYWxob3N0Ojg4MDAvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUv
cmVzb3VyY2VzL2Rlc3RpbmF0aW9uLmh0bWwjdGFyZ2V0IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50
IGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21l
bnQ6IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJj
ZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
W0hUVFAgLSBTYW1lT3JpZ2luXSBQcmVzZXJ2ZSBpbnRlcm1lZGlhdGUgZnJhZ21lbnQgaW4gbXVs
dGlwbGUgMzAzIHJlZGlyZWN0cyBhc3NlcnRfdHJ1ZTogVW5leHBlY3RlZCBmcmFnbWVudDogaHR0
cDovL2xvY2FsaG9zdDo4ODAwL2ZldGNoL3JlZGlyZWN0LW5hdmlnYXRlL3Jlc291cmNlcy9kZXN0
aW5hdGlvbi5odG1sI3RhcmdldCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBbSFRUUCAt
IFNhbWVPcmlnaW5dIFByZXNlcnZlIGludGVybWVkaWF0ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAz
MDcgcmVkaXJlY3RzIGFzc2VydF90cnVlOiBVbmV4cGVjdGVkIGZyYWdtZW50OiBodHRwOi8vbG9j
YWxob3N0Ojg4MDAvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvcmVzb3VyY2VzL2Rlc3RpbmF0aW9u
Lmh0bWwjdGFyZ2V0IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFtIVFRQIC0gU2FtZU9y
aWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwOCByZWRp
cmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHA6Ly9sb2NhbGhvc3Q6
ODgwMC9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0
YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0g
UHJlc2VydmUgZnJhZ21lbnQgaW4gMzAxIHJlZGlyZWN0Ci1QQVNTIFtIVFRQUyAtIFNhbWVPcmln
aW5dIFByZXNlcnZlIGZyYWdtZW50IGluIDMwMiByZWRpcmVjdAotUEFTUyBbSFRUUFMgLSBTYW1l
T3JpZ2luXSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiAzMDMgcmVkaXJlY3QKLVBBU1MgW0hUVFBTIC0g
U2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzA3IHJlZGlyZWN0Ci1QQVNTIFtIVFRQ
UyAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIDMwOCByZWRpcmVjdAotUEFTUyBb
SFRUUFMgLSBTYW1lT3JpZ2luXSBSZWRpcmVjdCBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5j
ZSBpbiAzMDEgcmVkaXJlY3QKLVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0gUmVkaXJlY3QgVVJM
IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzAyIHJlZGlyZWN0Ci1QQVNTIFtIVFRQUyAt
IFNhbWVPcmlnaW5dIFJlZGlyZWN0IFVSTCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGluIDMw
MyByZWRpcmVjdAotUEFTUyBbSFRUUFMgLSBTYW1lT3JpZ2luXSBSZWRpcmVjdCBVUkwgZnJhZ21l
bnQgdGFrZXMgcHJlY2VkZW5jZSBpbiAzMDcgcmVkaXJlY3QKLVBBU1MgW0hUVFBTIC0gU2FtZU9y
aWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzA4IHJlZGly
ZWN0Ci1QQVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIG11bHRp
cGxlIDMwMSByZWRpcmVjdHMKLVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJh
Z21lbnQgaW4gbXVsdGlwbGUgMzAyIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBTYW1lT3JpZ2lu
XSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAzMDMgcmVkaXJlY3RzCi1QQVNTIFtIVFRQ
UyAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwNyByZWRpcmVj
dHMKLVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlw
bGUgMzA4IHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBTYW1lT3JpZ2luXSBEZXN0aW5hdGlvbiBV
UkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiBtdWx0aXBsZSAzMDEgcmVkaXJlY3RzCi1Q
QVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIERlc3RpbmF0aW9uIFVSTCBmcmFnbWVudCB0YWtlcyBw
cmVjZWRlbmNlIGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMKLVBBU1MgW0hUVFBTIC0gU2FtZU9y
aWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlw
bGUgMzAzIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBTYW1lT3JpZ2luXSBEZXN0aW5hdGlvbiBV
UkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiBtdWx0aXBsZSAzMDcgcmVkaXJlY3RzCi1Q
QVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIERlc3RpbmF0aW9uIFVSTCBmcmFnbWVudCB0YWtlcyBw
cmVjZWRlbmNlIGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMKLVBBU1MgW0hUVFBTIC0gU2FtZU9y
aWdpbl0gRmluYWwgcmVkaXJlY3QgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGludGVy
bWVkaWF0ZSBpbiBtdWx0aXBsZSAzMDEgcmVkaXJlY3RzCi1QQVNTIFtIVFRQUyAtIFNhbWVPcmln
aW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1l
ZGlhdGUgaW4gbXVsdGlwbGUgMzAyIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBTYW1lT3JpZ2lu
XSBGaW5hbCByZWRpcmVjdCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaW50ZXJtZWRp
YXRlIGluIG11bHRpcGxlIDMwMyByZWRpcmVjdHMKLVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0g
RmluYWwgcmVkaXJlY3QgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGludGVybWVkaWF0
ZSBpbiBtdWx0aXBsZSAzMDcgcmVkaXJlY3RzCi1QQVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIEZp
bmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUg
aW4gbXVsdGlwbGUgMzA4IHJlZGlyZWN0cwotRkFJTCBbSFRUUFMgLSBTYW1lT3JpZ2luXSBQcmVz
ZXJ2ZSBpbnRlcm1lZGlhdGUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAxIHJlZGlyZWN0cyBhc3Nl
cnRfdHJ1ZTogVW5leHBlY3RlZCBmcmFnbWVudDogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRj
aC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgW0hUVFBTIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUg
aW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMgYXNzZXJ0X3Ry
dWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvZmV0Y2gvcmVk
aXJlY3QtbmF2aWdhdGUvcmVzb3VyY2VzL2Rlc3RpbmF0aW9uLmh0bWwjdGFyZ2V0IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIFtIVFRQUyAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGludGVy
bWVkaWF0ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAzMDMgcmVkaXJlY3RzIGFzc2VydF90cnVlOiBV
bmV4cGVjdGVkIGZyYWdtZW50OiBodHRwczovL2xvY2FsaG9zdDo5NDQzL2ZldGNoL3JlZGlyZWN0
LW5hdmlnYXRlL3Jlc291cmNlcy9kZXN0aW5hdGlvbi5odG1sI3RhcmdldCBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBbSFRUUFMgLSBTYW1lT3JpZ2luXSBQcmVzZXJ2ZSBpbnRlcm1lZGlh
dGUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzA3IHJlZGlyZWN0cyBhc3NlcnRfdHJ1ZTogVW5leHBl
Y3RlZCBmcmFnbWVudDogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRjaC9yZWRpcmVjdC1uYXZp
Z2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgW0hUVFBTIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZy
YWdtZW50IGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQg
ZnJhZ21lbnQ6IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUv
cmVzb3VyY2VzL2Rlc3RpbmF0aW9uLmh0bWwjdGFyZ2V0IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIDMwMSByZWRp
cmVjdAotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2luXSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiAzMDIg
cmVkaXJlY3QKLVBBU1MgW0hUVFAgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4g
MzAzIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50
IGluIDMwNyByZWRpcmVjdAotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2luXSBQcmVzZXJ2ZSBmcmFn
bWVudCBpbiAzMDggcmVkaXJlY3QKLVBBU1MgW0hUVFAgLSBDcm9zc09yaWdpbl0gUmVkaXJlY3Qg
VVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzAxIHJlZGlyZWN0Ci1QQVNTIFtIVFRQ
IC0gQ3Jvc3NPcmlnaW5dIFJlZGlyZWN0IFVSTCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGlu
IDMwMiByZWRpcmVjdAotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2luXSBSZWRpcmVjdCBVUkwgZnJh
Z21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiAzMDMgcmVkaXJlY3QKLVBBU1MgW0hUVFAgLSBDcm9z
c09yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzA3IHJl
ZGlyZWN0Ci1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIFJlZGlyZWN0IFVSTCBmcmFnbWVudCB0
YWtlcyBwcmVjZWRlbmNlIGluIDMwOCByZWRpcmVjdAotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2lu
XSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAzMDEgcmVkaXJlY3RzCi1QQVNTIFtIVFRQ
IC0gQ3Jvc3NPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwMiByZWRpcmVj
dHMKLVBBU1MgW0hUVFAgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlw
bGUgMzAzIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2luXSBQcmVzZXJ2ZSBmcmFn
bWVudCBpbiBtdWx0aXBsZSAzMDcgcmVkaXJlY3RzCi1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5d
IFByZXNlcnZlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMKLVBBU1MgW0hUVFAg
LSBDcm9zc09yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ug
aW4gbXVsdGlwbGUgMzAxIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2luXSBEZXN0
aW5hdGlvbiBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiBtdWx0aXBsZSAzMDIgcmVk
aXJlY3RzCi1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIERlc3RpbmF0aW9uIFVSTCBmcmFnbWVu
dCB0YWtlcyBwcmVjZWRlbmNlIGluIG11bHRpcGxlIDMwMyByZWRpcmVjdHMKLVBBU1MgW0hUVFAg
LSBDcm9zc09yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ug
aW4gbXVsdGlwbGUgMzA3IHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2luXSBEZXN0
aW5hdGlvbiBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiBtdWx0aXBsZSAzMDggcmVk
aXJlY3RzCi1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50
IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzAxIHJlZGly
ZWN0cwotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2luXSBGaW5hbCByZWRpcmVjdCBmcmFnbWVudCB0
YWtlcyBwcmVjZWRlbmNlIG92ZXIgaW50ZXJtZWRpYXRlIGluIG11bHRpcGxlIDMwMiByZWRpcmVj
dHMKLVBBU1MgW0hUVFAgLSBDcm9zc09yaWdpbl0gRmluYWwgcmVkaXJlY3QgZnJhZ21lbnQgdGFr
ZXMgcHJlY2VkZW5jZSBvdmVyIGludGVybWVkaWF0ZSBpbiBtdWx0aXBsZSAzMDMgcmVkaXJlY3Rz
Ci1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2Vz
IHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzA3IHJlZGlyZWN0cwot
UEFTUyBbSFRUUCAtIENyb3NzT3JpZ2luXSBGaW5hbCByZWRpcmVjdCBmcmFnbWVudCB0YWtlcyBw
cmVjZWRlbmNlIG92ZXIgaW50ZXJtZWRpYXRlIGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMKLUZB
SUwgW0hUVFAgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGlu
IG11bHRpcGxlIDMwMSByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6
IGh0dHA6Ly8xMjcuMC4wLjE6ODgwMC9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMv
ZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgW0hU
VFAgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRp
cGxlIDMwMiByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHA6
Ly8xMjcuMC4wLjE6ODgwMC9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGlu
YXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgW0hUVFAgLSBD
cm9zc09yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMw
MyByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHA6Ly8xMjcu
MC4wLjE6ODgwMC9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24u
aHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgW0hUVFAgLSBDcm9zc09y
aWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwNyByZWRp
cmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHA6Ly8xMjcuMC4wLjE6
ODgwMC9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0
YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgW0hUVFAgLSBDcm9zc09yaWdpbl0g
UHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMg
YXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHA6Ly8xMjcuMC4wLjE6ODgwMC9m
ZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLVBBU1MgW0hUVFBTIC0gQ3Jvc3NPcmlnaW5dIFByZXNl
cnZlIGZyYWdtZW50IGluIDMwMSByZWRpcmVjdAotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0g
UHJlc2VydmUgZnJhZ21lbnQgaW4gMzAyIHJlZGlyZWN0Ci1QQVNTIFtIVFRQUyAtIENyb3NzT3Jp
Z2luXSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiAzMDMgcmVkaXJlY3QKLVBBU1MgW0hUVFBTIC0gQ3Jv
c3NPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIDMwNyByZWRpcmVjdAotUEFTUyBbSFRUUFMg
LSBDcm9zc09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzA4IHJlZGlyZWN0Ci1QQVNTIFtI
VFRQUyAtIENyb3NzT3JpZ2luXSBSZWRpcmVjdCBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5j
ZSBpbiAzMDEgcmVkaXJlY3QKLVBBU1MgW0hUVFBTIC0gQ3Jvc3NPcmlnaW5dIFJlZGlyZWN0IFVS
TCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGluIDMwMiByZWRpcmVjdAotUEFTUyBbSFRUUFMg
LSBDcm9zc09yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4g
MzAzIHJlZGlyZWN0Ci1QQVNTIFtIVFRQUyAtIENyb3NzT3JpZ2luXSBSZWRpcmVjdCBVUkwgZnJh
Z21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiAzMDcgcmVkaXJlY3QKLVBBU1MgW0hUVFBTIC0gQ3Jv
c3NPcmlnaW5dIFJlZGlyZWN0IFVSTCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGluIDMwOCBy
ZWRpcmVjdAotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4g
bXVsdGlwbGUgMzAxIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2Vy
dmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAyIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9z
c09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAzIHJlZGlyZWN0cwotUEFT
UyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzA3
IHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQg
aW4gbXVsdGlwbGUgMzA4IHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gRGVz
dGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzAxIHJl
ZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdt
ZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzAyIHJlZGlyZWN0cwotUEFTUyBbSFRU
UFMgLSBDcm9zc09yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVu
Y2UgaW4gbXVsdGlwbGUgMzAzIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0g
RGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzA3
IHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZy
YWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzA4IHJlZGlyZWN0cwotUEFTUyBb
SFRUUFMgLSBDcm9zc09yaWdpbl0gRmluYWwgcmVkaXJlY3QgZnJhZ21lbnQgdGFrZXMgcHJlY2Vk
ZW5jZSBvdmVyIGludGVybWVkaWF0ZSBpbiBtdWx0aXBsZSAzMDEgcmVkaXJlY3RzCi1QQVNTIFtI
VFRQUyAtIENyb3NzT3JpZ2luXSBGaW5hbCByZWRpcmVjdCBmcmFnbWVudCB0YWtlcyBwcmVjZWRl
bmNlIG92ZXIgaW50ZXJtZWRpYXRlIGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMKLVBBU1MgW0hU
VFBTIC0gQ3Jvc3NPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVu
Y2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzAzIHJlZGlyZWN0cwotUEFTUyBbSFRU
UFMgLSBDcm9zc09yaWdpbl0gRmluYWwgcmVkaXJlY3QgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5j
ZSBvdmVyIGludGVybWVkaWF0ZSBpbiBtdWx0aXBsZSAzMDcgcmVkaXJlY3RzCi1QQVNTIFtIVFRQ
UyAtIENyb3NzT3JpZ2luXSBGaW5hbCByZWRpcmVjdCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNl
IG92ZXIgaW50ZXJtZWRpYXRlIGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMKLUZBSUwgW0hUVFBT
IC0gQ3Jvc3NPcmlnaW5dIFByZXNlcnZlIGludGVybWVkaWF0ZSBmcmFnbWVudCBpbiBtdWx0aXBs
ZSAzMDEgcmVkaXJlY3RzIGFzc2VydF90cnVlOiBVbmV4cGVjdGVkIGZyYWdtZW50OiBodHRwczov
LzEyNy4wLjAuMTo5NDQzL2ZldGNoL3JlZGlyZWN0LW5hdmlnYXRlL3Jlc291cmNlcy9kZXN0aW5h
dGlvbi5odG1sI3RhcmdldCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBbSFRUUFMgLSBD
cm9zc09yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMw
MiByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHBzOi8vMTI3
LjAuMC4xOjk0NDMvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvcmVzb3VyY2VzL2Rlc3RpbmF0aW9u
Lmh0bWwjdGFyZ2V0IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFtIVFRQUyAtIENyb3Nz
T3JpZ2luXSBQcmVzZXJ2ZSBpbnRlcm1lZGlhdGUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAzIHJl
ZGlyZWN0cyBhc3NlcnRfdHJ1ZTogVW5leHBlY3RlZCBmcmFnbWVudDogaHR0cHM6Ly8xMjcuMC4w
LjE6OTQ0My9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRt
bCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgW0hUVFBTIC0gQ3Jvc3NPcmln
aW5dIFByZXNlcnZlIGludGVybWVkaWF0ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAzMDcgcmVkaXJl
Y3RzIGFzc2VydF90cnVlOiBVbmV4cGVjdGVkIGZyYWdtZW50OiBodHRwczovLzEyNy4wLjAuMTo5
NDQzL2ZldGNoL3JlZGlyZWN0LW5hdmlnYXRlL3Jlc291cmNlcy9kZXN0aW5hdGlvbi5odG1sI3Rh
cmdldCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBbSFRUUFMgLSBDcm9zc09yaWdpbl0g
UHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMg
YXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
ZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvcmVzb3VyY2VzL2Rlc3RpbmF0aW9uLmh0bWwjdGFyZ2V0
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL1JFQURNRS5tZCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1l
dGFkYXRhL1JFQURNRS5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQ2MGFhMWVj
Yjk0MTExOGI2OTk5MjA5YmE0NjAxZWIxNDVhNjFiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9SRUFETUUubWQKKysrIC9kZXYvbnVsbApAQCAt
MSwxMSArMCwwIEBACi1gU2VjLU1ldGFkYXRhYCBUZXN0cwotPT09PT09PT09PT09PT09PT09PT0K
LQotVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgdGVzdHMgcmVsYXRlZCB0byB0aGUgYFNlYy1NZXRh
ZGF0YWAgcHJvcG9zYWw6Ci0KLTogICBFeHBsYWluZXIKLTo6ICA8aHR0cHM6Ly9naXRodWIuY29t
L21pa2V3ZXN0L3NlYy1tZXRhZGF0YT4KLTogICAiU3BlYyIKLTo6ICA8aHR0cHM6Ly9taWtld2Vz
dC5naXRodWIuaW8vc2VjLW1ldGFkYXRhLz4KLQotTm90ZTogQWxsIG9mIHRoaXMgaXMgdGVudGF0
aXZlLCBhbmQgd2lsbCBjaGFuZ2UgKHJhcGlkbHkpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvZW1iZWQu
dGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9lbWJlZC50ZW50YXRpdmUu
aHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTAw
MzYxM2IyYzljZGExZmU4ODA4NjMxNTBmZmZlZTA4ZjkzYjIzYy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9lbWJlZC50ZW50YXRpdmUuaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi0KLUhhcm5l
c3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIFNhbWUtT3JpZ2lu
IGVtYmVkIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gU2FtZS1TaXRlIGVtYmVkCi1OT1RSVU4gQ3Jv
c3MtU2l0ZSBlbWJlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9lbWJlZC50ZW50YXRpdmUuaHR0cHMu
c3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3NlYy1tZXRhZGF0YS9lbWJlZC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0NWVmNDJkNDg0ZjUyNThmNDZmZmM2ZWU5NDQ3ZmU1ZDhk
M2MxNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRh
dGEvZW1iZWQudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjUg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPgotPGxpbmsg
cmVsPSJhdXRob3IiIGhyZWY9Im10cnpvc0Bnb29nbGUuY29tIiB0aXRsZT0iTWFjaWVrIFRyem9z
Ij4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0Pgot
PGJvZHk+Ci08c2NyaXB0PgotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAgIGxldCBrZXkgPSAiZW1iZWQtc2Ft
ZS1vcmlnaW4iOwotCi0gICAgICBsZXQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2VtYmVk
Jyk7Ci0gICAgICBlLnNyYyA9ICJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0v
ZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9IiArIGtl
eTsKLSAgICAgIGUub25sb2FkID0gZSA9PiB7Ci0gICAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVz
dGluYXRpb24iOiJlbWJlZCIsICJzaXRlIjoic2FtZS1vcmlnaW4ifTsKLSAgICAgICAgZmV0Y2go
Ii9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9
dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2Uu
dGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4
dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAg
IC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0gIH0sICJTYW1lLU9yaWdpbiBlbWJlZCIpOwotCi0g
IHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJlbWJlZC1zYW1lLXNpdGUiOwotCi0gICAgICBs
ZXQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2VtYmVkJyk7Ci0gICAgICBlLnNyYyA9ICJo
dHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0
YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5OwotICAgICAgZS5v
bmxvYWQgPSBlID0+IHsKLSAgICAgICAgbGV0IGV4cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6ImVt
YmVkIiwgInNpdGUiOiJzYW1lLXNpdGUifTsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0
YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBr
ZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAg
ICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQot
ICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJl
amVjdChlKSk7Ci0gICAgICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUp
OwotICAgIH0pCi0gIH0sICJTYW1lLVNpdGUgZW1iZWQiKTsKLQotICBwcm9taXNlX3Rlc3QodCA9
PiB7Ci0gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAg
IGxldCBrZXkgPSAiZW1iZWQtY3Jvc3Mtc2l0ZSI7Ci0KLSAgICAgIGxldCBlID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZW1iZWQnKTsKLSAgICAgIGUuc3JjID0gImh0dHBzOi8ve3tob3N0c1th
bHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJj
ZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ci0gICAgICBlLm9ubG9hZCA9IGUgPT4g
ewotICAgICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoiZW1iZWQiLCAic2l0ZSI6
ImNyb3NzLXNpdGUifTsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3Vy
Y2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAg
ICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRl
eHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50
aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0g
ICAgICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0g
IH0sICJDcm9zcy1TaXRlIGVtYmVkIik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2Zl
dGNoLnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvZmV0Y2gudGVudGF0
aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQ1Y2Y5OGRjN2Q5Y2Q2MzBhODg4ZDYxY2FmNjM3N2IzMjdmNTUzYjguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvZmV0Y2gudGVudGF0aXZlLmh0
dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUJsb2Nr
ZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weQotQ09OU09MRSBNRVNTQUdF
OiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gv
c2VjLW1ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkgZHVlIHRvIGFjY2VzcyBjb250
cm9sIGNoZWNrcy4KLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3Q6OTQ0My9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2Vj
aG8tYXMtanNvbi5weQotQ09OU09MRSBNRVNTQUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0
cHM6Ly93d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jl
c291cmNlcy9lY2hvLWFzLWpzb24ucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLQot
RkFJTCBTYW1lLW9yaWdpbiBmZXRjaCBhc3NlcnRfbm90X2VxdWFsczogRW1wdHkgU2VjLU1ldGFk
YXRhIGhlYWRlci4gZ290IGRpc2FsbG93ZWQgdmFsdWUgIiIKLUZBSUwgU2FtZS1zaXRlIGZldGNo
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgQ3Jvc3Mtc2l0ZSBmZXRjaCBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2ZldGNoLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2Vj
LW1ldGFkYXRhL2ZldGNoLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDE4MDQyY2E5OGIwODNjYjdlYmU3YjQyMDcwYWZlNDdkYWE0YjQ3Yy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9mZXRj
aC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVy
LmpzPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVy
biBmZXRjaCgiaHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1t
ZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5IikKLSAgICAgICAgLnRoZW4ociA9PiBy
Lmpzb24oKSkKLSAgICAgICAgLnRoZW4oaiA9PiB7Ci0gICAgICAgICAgYXNzZXJ0X2hlYWRlcl9l
cXVhbHMoai5oZWFkZXIsIHsKLSAgICAgICAgICAgICJjYXVzZSI6IHVuZGVmaW5lZCwKLSAgICAg
ICAgICAgICJkZXN0aW5hdGlvbiI6ICJlbXB0eSIsCi0gICAgICAgICAgICAic2l0ZSI6ICJzYW1l
LW9yaWdpbiIKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gIH0sICJTYW1lLW9yaWdpbiBm
ZXRjaCIpOwotCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gZmV0Y2goImh0dHBz
Oi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5IikKLSAgICAgICAgLnRoZW4ociA9PiByLmpzb24o
KSkKLSAgICAgICAgLnRoZW4oaiA9PiB7Ci0gICAgICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMo
ai5oZWFkZXIsIHsKLSAgICAgICAgICAgICJjYXVzZSI6IHVuZGVmaW5lZCwKLSAgICAgICAgICAg
ICJkZXN0aW5hdGlvbiI6ICJlbXB0eSIsCi0gICAgICAgICAgICAic2l0ZSI6ICJzYW1lLXNpdGUi
Ci0gICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICB9LCAiU2FtZS1zaXRlIGZldGNoIik7Ci0K
LSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBmZXRjaCgiaHR0cHM6Ly97e2hvc3Rz
W2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291
cmNlcy9lY2hvLWFzLWpzb24ucHkiKQotICAgICAgICAudGhlbihyID0+IHIuanNvbigpKQotICAg
ICAgICAudGhlbihqID0+IHsKLSAgICAgICAgICBhc3NlcnRfaGVhZGVyX2VxdWFscyhqLmhlYWRl
ciwgewotICAgICAgICAgICAgImNhdXNlIjogdW5kZWZpbmVkLAotICAgICAgICAgICAgImRlc3Rp
bmF0aW9uIjogImVtcHR5IiwKLSAgICAgICAgICAgICJzaXRlIjogImNyb3NzLXNpdGUiCi0gICAg
ICAgICAgfSk7Ci0gICAgICAgIH0pOwotICB9LCAiQ3Jvc3Mtc2l0ZSBmZXRjaCIpOwotPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9mb250LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9z
ZWMtbWV0YWRhdGEvZm9udC50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDYxZDU3MWVmOTUzMjM1YWY1MWU3MzQ3MGE0ZmMzMjRh
NmI0MjNmZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRh
ZGF0YS9mb250LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTAgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhl
YWRlci5weT9maWxlPWZvbnQtc2FtZS1zaXRlCi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgaHR0cHM6Ly93d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFk
YXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9Zm9udC1jcm9zcy1zaXRlCi0xCi0y
Ci0zCi0KLUZBSUwgU2FtZS1PcmlnaW4gZm9udCBhc3NlcnRfZXF1YWxzOiBkZXN0aW5hdGlvbiBl
eHBlY3RlZCAoc3RyaW5nKSAiZm9udCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZB
SUwgU2FtZS1TaXRlIGZvbnQgYXNzZXJ0X2VxdWFsczogZGVzdGluYXRpb24gZXhwZWN0ZWQgKHN0
cmluZykgImZvbnQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIENyb3NzLVNp
dGUgZm9udCBhc3NlcnRfZXF1YWxzOiBkZXN0aW5hdGlvbiBleHBlY3RlZCAoc3RyaW5nKSAiZm9u
dCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvZm9u
dC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9mb250LnRlbnRhdGl2ZS5odHRwcy5z
dWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE3NTUzMWM0MDVmYzZkYjMz
MjBjYWVjNTU2N2JlYzFhYzM4Yzc2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3NlYy1tZXRhZGF0YS9mb250LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDg0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08bGluayBy
ZWw9ImF1dGhvciIgaHJlZj0ibXRyem9zQGdvb2dsZS5jb20iIHRpdGxlPSJNYWNpZWsgVHJ6b3Mi
PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci08
Ym9keT4KLSAgPGRpdiBpZD0idGVzdDEiPjE8L2Rpdj4KLSAgPGRpdiBpZD0idGVzdDIiPjI8L2Rp
dj4KLSAgPGRpdiBpZD0idGVzdDMiPjM8L2Rpdj4KLSAgPCEtLSBTYW1lLU9yaWdpbiByZXF1ZXN0
IC0tPgotICA8c3R5bGU+Ci0gICAgQGZvbnQtZmFjZSB7Ci0gICAgICBmb250LWZhbWlseTogbXlG
aXJzdEZvbnQ7Ci0gICAgICBzcmM6IHVybChodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNd
WzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9
Zm9udC1zYW1lLW9yaWdpbik7Ci0gICAgfQotICAgICN0ZXN0MSB7Ci0gICAgICBmb250LWZhbWls
eTogbXlGaXJzdEZvbnQ7Ci0gICAgfQotICA8L3N0eWxlPgotCi0gIDwhLS0gU2FtZS1TaXRlIHJl
cXVlc3QgLS0+Ci0gIDxzdHlsZT4KLSAgICBAZm9udC1mYWNlIHsKLSAgICAgIGZvbnQtZmFtaWx5
OiBteVNlY29uZEZvbnQ7Ci0gICAgICBzcmM6IHVybChodHRwczovL3t7aG9zdHNbXVt3d3ddfX06
e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1o
ZWFkZXIucHk/ZmlsZT1mb250LXNhbWUtc2l0ZSk7Ci0gICAgfQotICAgICN0ZXN0MiB7Ci0gICAg
ICBmb250LWZhbWlseTogbXlTZWNvbmRGb250OwotICAgIH0KLSAgPC9zdHlsZT4KLQotICA8IS0t
IENyb3NzLVNpdGUgcmVxdWVzdCAtLT4KLSAgPHN0eWxlPgotICAgIEBmb250LWZhY2UgewotICAg
ICAgZm9udC1mYW1pbHk6IG15VGhpcmRGb250OwotICAgICAgc3JjOiB1cmwoaHR0cHM6Ly97e2hv
c3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jl
c291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9Zm9udC1jcm9zcy1zaXRlKTsKLSAgICB9Ci0g
ICAgI3Rlc3QzIHsKLSAgICAgIGZvbnQtZmFtaWx5OiBteVRoaXJkRm9udDsKLSAgICB9Ci0gIDwv
c3R5bGU+Ci08L2JvZHk+Ci08c2NyaXB0PgotICBkb2N1bWVudC5mb250cy5yZWFkeS50aGVuKGZ1
bmN0aW9uICgpIHsKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICByZXR1cm4gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICBsZXQga2V5ID0gImZvbnQtc2Ft
ZS1vcmlnaW4iOwotICAgICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoiZm9udCIs
ICJzaXRlIjoic2FtZS1vcmlnaW4ifTsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRh
dGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkp
Ci0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAg
IC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAg
ICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVj
dChlKSk7Ci0gICAgICAgIH0pOwotICAgIH0sICJTYW1lLU9yaWdpbiBmb250Iik7Ci0KLSAgICBw
cm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4gewotICAgICAgICBsZXQga2V5ID0gImZvbnQtc2FtZS1zaXRlIjsKLSAgICAgICAg
bGV0IGV4cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6ImZvbnQiLCAic2l0ZSI6InNhbWUtc2l0ZSJ9
OwotICAgICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhl
YWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAgICAudGhlbihyZXNw
b25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRf
aGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAgLnRoZW4oXyA9PiByZXNv
bHZlKCkpCi0gICAgICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSwgIlNhbWUtU2l0ZSBmb250Iik7Ci0KLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICBsZXQg
a2V5ID0gImZvbnQtY3Jvc3Mtc2l0ZSI7Ci0gICAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGlu
YXRpb24iOiJmb250IiwgInNpdGUiOiJjcm9zcy1zaXRlIn07Ci0gICAgICAgIGZldGNoKCIvZmV0
Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUm
ZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQo
KSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4
cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0
Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgICB9KTsKLSAgICB9LCAiQ3Jvc3MtU2l0ZSBmb250
Iik7Ci0KLSAgfSk7Ci08L3NjcmlwdD4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2lmcmFt
ZS50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2lmcmFtZS50ZW50YXRp
dmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODA0MzAwNmMwNTIwZDkyNzgwNWFhMDc4YTg2ZmY5MWRkNGQ1OGI4MS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9pZnJhbWUudGVudGF0aXZlLmh0
dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1CbG9j
a2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0
Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci1CbG9ja2VkIGFjY2Vz
cyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0Ojk0NDMv
ZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci0KLQotSGFybmVz
cyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLUZBSUwgU2FtZS1vcmlnaW4gaWZy
YW1lIGFzc2VydF9ub3RfZXF1YWxzOiBFbXB0eSBTZWMtTWV0YWRhdGEgaGVhZGVyLiBnb3QgZGlz
YWxsb3dlZCB2YWx1ZSAiIgotVElNRU9VVCBTYW1lLXNpdGUgaWZyYW1lIFRlc3QgdGltZWQgb3V0
Ci1USU1FT1VUIENyb3NzLXNpdGUgaWZyYW1lIFRlc3QgdGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1l
dGFkYXRhL2lmcmFtZS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9pZnJhbWUudGVu
dGF0aXZlLmh0dHBzLnN1Yi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDg5
Y2RhODkzNmNjMzNhMjJlMDg5OWEyYzhiMzU2MGI3ZWYyMGJkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2lmcmFtZS50ZW50YXRpdmUuaHR0cHMu
c3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPGJv
ZHk+Ci08c2NyaXB0PgotICBhc3luY190ZXN0KHQgPT4gewotICAgIGxldCBpID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Ci0gICAgaS5zcmMgPSAiaHR0cHM6Ly97e2hvc3R9fTp7
e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1v
d25lci5weSI7Ci0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBf
ZnVuYyhlID0+IHsKLSAgICAgIGlmIChlLnNvdXJjZSAhPSBpLmNvbnRlbnRXaW5kb3cpCi0gICAg
ICAgIHJldHVybjsKLQotICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoZS5kYXRhLCB7Ci0gICAg
ICAgICJjYXVzZSI6ICJmb3JjZWQiLAotICAgICAgICAiZGVzdGluYXRpb24iOiAibmVzdGVkLWRv
Y3VtZW50IiwKLSAgICAgICAgInNpdGUiOiAic2FtZS1vcmlnaW4iCi0gICAgICB9KTsKLSAgICAg
IHQuZG9uZSgpOwotICAgIH0pKTsKLQotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7
Ci0gIH0sICJTYW1lLW9yaWdpbiBpZnJhbWUiKTsKLQotICBhc3luY190ZXN0KHQgPT4gewotICAg
IGxldCBpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Ci0gICAgaS5zcmMgPSAi
aHR0cHM6Ly97e2hvc3RzW11bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1l
dGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5IjsKLSAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jKGUgPT4gewotICAgICAgaWYgKGUuc291cmNl
ICE9IGkuY29udGVudFdpbmRvdykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgICBhc3NlcnRfaGVh
ZGVyX2VxdWFscyhlLmRhdGEsIHsKLSAgICAgICAgImNhdXNlIjogImZvcmNlZCIsCi0gICAgICAg
ICJkZXN0aW5hdGlvbiI6ICJuZXN0ZWQtZG9jdW1lbnQiLAotICAgICAgICAic2l0ZSI6ICJzYW1l
LXNpdGUiCi0gICAgICB9KTsKLSAgICAgIHQuZG9uZSgpOwotICAgIH0pKTsKLQotICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7Ci0gIH0sICJTYW1lLXNpdGUgaWZyYW1lIik7Ci0KLSAg
YXN5bmNfdGVzdCh0ID0+IHsKLSAgICBsZXQgaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lm
cmFtZScpOwotICAgIGkuc3JjID0gImh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRz
W2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5w
eSI7Ci0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhl
ID0+IHsKLSAgICAgIGlmIChlLnNvdXJjZSAhPSBpLmNvbnRlbnRXaW5kb3cpCi0gICAgICAgIHJl
dHVybjsKLQotICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoZS5kYXRhLCB7Ci0gICAgICAgICJj
YXVzZSI6ICJmb3JjZWQiLAotICAgICAgICAiZGVzdGluYXRpb24iOiAibmVzdGVkLWRvY3VtZW50
IiwKLSAgICAgICAgInNpdGUiOiAiY3Jvc3Mtc2l0ZSIKLSAgICAgIH0pOwotICAgICAgdC5kb25l
KCk7Ci0gICAgfSkpOwotCi0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTsKLSAgfSwg
IkNyb3NzLXNpdGUgaWZyYW1lIik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2ltZy50
ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2ltZy50ZW50YXRpdmUuaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTA1OWM3
ZDliNmUxMTIwYWRhZDA1ZjlhZTc2MzkxMTgwYzJhNzMwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9pbWcudGVudGF0aXZlLmh0dHBzLnN1Yi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotRkFJTCBTYW1lLW9y
aWdpbiBpbWFnZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBsb2FkSW1hZ2VJbldpbmRvdwotRkFJTCBT
YW1lLXNpdGUgaW1hZ2UgQ2FuJ3QgZmluZCB2YXJpYWJsZTogbG9hZEltYWdlSW5XaW5kb3cKLUZB
SUwgQ3Jvc3Mtc2l0ZSBpbWFnZSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBsb2FkSW1hZ2VJbldpbmRv
dwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9pbWcudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRh
dGEvaW1nLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjA3MDFhNjUxNDY1M2Y4NmUzM2IzY2RmNzAwZWNkMDYyODA5N2Q2Yy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9pbWcudGVudGF0aXZl
Lmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPS9yZWZlcnJlci1wb2xpY3kvZ2VuZXJpYy9jb21tb24uanM+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3Jp
cHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0gIC8vIFRoZXNlIHRlc3RzIHJldXNlIHRoZSBgcmVmZXJy
ZXItcG9saWN5YCBpbmZyYXN0cnVjdHVyZSB0byBsb2FkIGltYWdlcyB0aGF0Ci0gIC8vIGVuY29k
ZSB0aGVpciByZXF1ZXN0IGhlYWRlcnMgaW4gdGhlaXIgcGl4ZWxzLiBGdW4gc3R1ZmYhCi0gIGFz
eW5jX3Rlc3QodCA9PiB7Ci0gICAgbG9hZEltYWdlSW5XaW5kb3coCi0gICAgICAiaHR0cHM6Ly97
e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L3JlZmVycmVyLXBvbGljeS9nZW5lcmljL3N1YnJl
c291cmNlL2ltYWdlLnB5IiwKLSAgICAgIHQuc3RlcF9mdW5jX2RvbmUoaW1nID0+IHsKLSAgICAg
ICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoZGVjb2RlSW1hZ2VEYXRhKGV4dHJhY3RJbWFnZURhdGEo
aW1nKSkuaGVhZGVyc1sic2VjLW1ldGFkYXRhIl0sIHsKLSAgICAgICAgICAiY2F1c2UiOiB1bmRl
ZmluZWQsCi0gICAgICAgICAgImRlc3RpbmF0aW9uIjogImltYWdlIiwKLSAgICAgICAgICAic2l0
ZSI6ICJzYW1lLW9yaWdpbiIKLSAgICAgICAgfSk7Ci0gICAgICB9KSwKLSAgICAgIFtdLAotICAg
ICAgd2luZG93KTsKLSAgfSwgIlNhbWUtb3JpZ2luIGltYWdlIik7Ci0KLSAgYXN5bmNfdGVzdCh0
ID0+IHsKLSAgICBsb2FkSW1hZ2VJbldpbmRvdygKLSAgICAgICJodHRwczovL3t7aG9zdHNbXVt3
d3ddfX06e3twb3J0c1todHRwc11bMF19fS9yZWZlcnJlci1wb2xpY3kvZ2VuZXJpYy9zdWJyZXNv
dXJjZS9pbWFnZS5weSIsCi0gICAgICB0LnN0ZXBfZnVuY19kb25lKGltZyA9PiB7Ci0gICAgICAg
IGFzc2VydF9oZWFkZXJfZXF1YWxzKGRlY29kZUltYWdlRGF0YShleHRyYWN0SW1hZ2VEYXRhKGlt
ZykpLmhlYWRlcnNbInNlYy1tZXRhZGF0YSJdLCB7Ci0gICAgICAgICAgImNhdXNlIjogdW5kZWZp
bmVkLAotICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICJpbWFnZSIsCi0gICAgICAgICAgInNpdGUi
OiAic2FtZS1zaXRlIgotICAgICAgICB9KTsKLSAgICAgIH0pLAotICAgICAgW10sCi0gICAgICB3
aW5kb3cpOwotICB9LCAiU2FtZS1zaXRlIGltYWdlIik7Ci0KLSAgYXN5bmNfdGVzdCh0ID0+IHsK
LSAgICBsb2FkSW1hZ2VJbldpbmRvdygKLSAgICAgICJodHRwczovL3t7aG9zdHNbYWx0XVt3d3dd
fX06e3twb3J0c1todHRwc11bMF19fS9yZWZlcnJlci1wb2xpY3kvZ2VuZXJpYy9zdWJyZXNvdXJj
ZS9pbWFnZS5weSIsCi0gICAgICB0LnN0ZXBfZnVuY19kb25lKGltZyA9PiB7Ci0gICAgICAgIGFz
c2VydF9oZWFkZXJfZXF1YWxzKGRlY29kZUltYWdlRGF0YShleHRyYWN0SW1hZ2VEYXRhKGltZykp
LmhlYWRlcnNbInNlYy1tZXRhZGF0YSJdLCB7Ci0gICAgICAgICAgImNhdXNlIjogdW5kZWZpbmVk
LAotICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICJpbWFnZSIsCi0gICAgICAgICAgInNpdGUiOiAi
Y3Jvc3Mtc2l0ZSIKLSAgICAgICAgfSk7Ci0gICAgICB9KSwKLSAgICAgIFtdLAotICAgICAgd2lu
ZG93KTsKLSAgfSwgIkNyb3NzLXNpdGUgaW1hZ2UiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0
YWRhdGEvb2JqZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvb2Jq
ZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1YmJlMTNlNWJjNTRmNjdmNDZjMzNjNTk3NTQ1MDk5ODUzZTU0NmQ0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL29iamVjdC50
ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAs
MCBAQAotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1F
T1VUIFNhbWUtT3JpZ2luIG9iamVjdCBUZXN0IHRpbWVkIG91dAotTk9UUlVOIFNhbWUtU2l0ZSBv
YmplY3QKLU5PVFJVTiBDcm9zcy1TaXRlIG9iamVjdAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9vYmpl
Y3QudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvb2JqZWN0LnRlbnRhdGl2ZS5odHRw
cy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTFhYzUzMTU3ZTAyM2E5
YzZiYzQ4MDZmZWRhMmU3ODJlZjRlZWZhNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9vYmplY3QudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCIvPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im10cnpvc0Bnb29nbGUuY29t
IiB0aXRsZT0iTWFjaWVrIFRyem9zIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMv
aGVscGVyLmpzPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0PgotICBwcm9taXNlX3Rlc3QodCA9
PiB7Ci0gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAg
IGxldCBrZXkgPSAib2JqZWN0LXNhbWUtb3JpZ2luIjsKLQotICAgICAgbGV0IGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdvYmplY3QnKTsKLSAgICAgIGUuZGF0YSA9ICJodHRwczovL3t7aG9z
dH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNv
cmQtaGVhZGVyLnB5P2ZpbGU9IiArIGtleTsKLSAgICAgIGUub25sb2FkID0gZSA9PiB7Ci0gICAg
ICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJvYmplY3QiLCAic2l0ZSI6InNhbWUt
b3JpZ2luIn07Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9y
ZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50
aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+
IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihf
ID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAg
fTsKLQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQotICB9LCAi
U2FtZS1PcmlnaW4gb2JqZWN0Iik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gIm9i
amVjdC1zYW1lLXNpdGUiOwotCi0gICAgICBsZXQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J29iamVjdCcpOwotICAgICAgZS5kYXRhID0gImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3Bv
cnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRl
ci5weT9maWxlPSIgKyBrZXk7Ci0gICAgICBlLm9ubG9hZCA9IGUgPT4gewotICAgICAgICBsZXQg
ZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoib2JqZWN0IiwgInNpdGUiOiJzYW1lLXNpdGUifTsK
LSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFk
ZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9u
c2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hl
YWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2
ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotCi0gICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0gIH0sICJTYW1lLVNpdGUg
b2JqZWN0Iik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gIm9iamVjdC1jcm9zcy1z
aXRlIjsKLQotICAgICAgbGV0IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvYmplY3QnKTsK
LSAgICAgIGUuZGF0YSA9ICJodHRwczovL3t7aG9zdHNbYWx0XVt3d3ddfX06e3twb3J0c1todHRw
c11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/Zmls
ZT0iICsga2V5OwotICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAgICAgICAgbGV0IGV4cGVjdGVk
ID0geyJkZXN0aW5hdGlvbiI6Im9iamVjdCIsICJzaXRlIjoiY3Jvc3Mtc2l0ZSJ9OwotICAgICAg
ICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9y
ZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiBy
ZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2Vx
dWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0g
ICAgICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsKLSAgICAgIH07Ci0KLSAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7Ci0gICAgfSkKLSAgfSwgIkNyb3NzLVNpdGUgb2JqZWN0
Iik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L2Nyb3NzLXNpdGUtcmVk
aXJlY3QudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9j
cm9zcy1zaXRlLXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTFhMWI0MGIxZjQ3MmJjNWRmY2M2NmMwMGIxMTY4
YWJjOTNjZGEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1l
dGFkYXRhL3JlZGlyZWN0L2Nyb3NzLXNpdGUtcmVkaXJlY3QudGVudGF0aXZlLmh0dHBzLnN1Yi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUJsb2NrZWQgYWNjZXNz
IHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Q6OTQ0My94
aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMv
ZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJl
Y3QtY3Jvc3Mtc2l0ZS1zYW1lLW9yaWdpbgotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDo5NDQzL3hoci9yZXNvdXJjZXMvcmVk
aXJlY3QucHk/bG9jYXRpb249aHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvc2VjLW1l
dGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3QtY3Jvc3Mtc2l0
ZS1zYW1lLXNpdGUKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3Q6OTQ0My94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0
aW9uPWh0dHBzOi8vd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDo5NDQzL2ZldGNoL3NlYy1tZXRh
ZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXJlZGlyZWN0LWNyb3NzLXNpdGUt
Y3Jvc3Mtc2l0ZQotCi0KLUZBSUwgQ3Jvc3MtU2l0ZSAtPiBTYW1lLU9yaWdpbiByZWRpcmVjdCBh
c3NlcnRfZXF1YWxzOiBkZXN0aW5hdGlvbiBleHBlY3RlZCAoc3RyaW5nKSAiaW1hZ2UiIGJ1dCBn
b3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIENyb3NzLVNpdGUgLT4gU2FtZS1TaXRlIHJl
ZGlyZWN0IGFzc2VydF9lcXVhbHM6IGRlc3RpbmF0aW9uIGV4cGVjdGVkIChzdHJpbmcpICJpbWFn
ZSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgQ3Jvc3MtU2l0ZSAtPiBDcm9z
cy1TaXRlIHJlZGlyZWN0IGFzc2VydF9lcXVhbHM6IGRlc3RpbmF0aW9uIGV4cGVjdGVkIChzdHJp
bmcpICJpbWFnZSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0
YWRhdGEvcmVkaXJlY3QvY3Jvc3Mtc2l0ZS1yZWRpcmVjdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Nl
Yy1tZXRhZGF0YS9yZWRpcmVjdC9jcm9zcy1zaXRlLXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5z
dWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWY0OTdhOWI2MmI4MGRhNGVm
ZjJlMzUyMjBjMWQ2MzE3ZTBlMjgxNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9jcm9zcy1zaXRlLXJlZGlyZWN0LnRlbnRhdGl2
ZS5odHRwcy5zdWIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotCi08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibXRyem9zQGdvb2dsZS5jb20iIHRp
dGxlPSJNYWNpZWsgVHJ6b3MiPgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxw
ZXIuanM+PC9zY3JpcHQ+Ci08Ym9keT48L2JvZHk+Ci08c2NyaXB0PgotcHJvbWlzZV90ZXN0KHQg
PT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAg
ICBsZXQga2V5ID0gInJlZGlyZWN0LWNyb3NzLXNpdGUtc2FtZS1vcmlnaW4iOwotCi0gICAgICBs
ZXQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwotICAgICAgZS5zcmMgPSAiaHR0
cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0veGhyL3Jlc291cmNl
cy9yZWRpcmVjdC5weT9sb2NhdGlvbj1odHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBd
fX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9IiAr
IGtleTsKLSAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJpbWFnZSIsICJzaXRl
IjoiY3Jvc3Mtc2l0ZSJ9OwotICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAgICAgICAgZmV0Y2go
Ii9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9
dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2Uu
dGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4
dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAg
IC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotICAgICAgZS5vbmVycm9yID0gZSA9
PiB7Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQt
aGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJl
c3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2Vy
dF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJl
c29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLQot
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQotICB9LCAiQ3Jvc3Mt
U2l0ZSAtPiBTYW1lLU9yaWdpbiByZWRpcmVjdCIpOwotCi0gIHByb21pc2VfdGVzdCh0ID0+IHsK
LSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0
IGtleSA9ICJyZWRpcmVjdC1jcm9zcy1zaXRlLXNhbWUtc2l0ZSI7Ci0KLSAgICAgIGxldCBlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gICAgICBlLnNyYyA9ICJodHRwczovL3t7
aG9zdHNbYWx0XVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS94aHIvcmVzb3VyY2VzL3JlZGly
ZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVsw
XX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIg
KyBrZXk7Ci0gICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoiaW1hZ2UiLCAic2l0
ZSI6ImNyb3NzLXNpdGUifTsKLSAgICAgIGUub25sb2FkID0gZSA9PiB7Ci0gICAgICAgIGZldGNo
KCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZl
PXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNl
LnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRl
eHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAg
ICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLSAgICAgIGUub25lcnJvciA9IGUg
PT4gewotICAgICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3Jk
LWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAgICAudGhlbihy
ZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3Nl
cnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAgLnRoZW4oXyA9PiBy
ZXNvbHZlKCkpCi0gICAgICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsKLSAgICAgIH07Ci0K
LSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7Ci0gICAgfSkKLSAgfSwgIkNyb3Nz
LVNpdGUgLT4gU2FtZS1TaXRlIHJlZGlyZWN0Iik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewot
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQg
a2V5ID0gInJlZGlyZWN0LWNyb3NzLXNpdGUtY3Jvc3Mtc2l0ZSI7Ci0KLSAgICAgIGxldCBlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gICAgICBlLnNyYyA9ICJodHRwczovL3t7
aG9zdHNbYWx0XVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS94aHIvcmVzb3VyY2VzL3JlZGly
ZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBz
XVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxl
PSIgKyBrZXk7Ci0gICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoiaW1hZ2UiLCAi
c2l0ZSI6ImNyb3NzLXNpdGUifTsKLSAgICAgIGUub25sb2FkID0gZSA9PiB7Ci0gICAgICAgIGZl
dGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJp
ZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3Bv
bnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxz
KHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAg
ICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLSAgICAgIGUub25lcnJvciA9
IGUgPT4gewotICAgICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVj
b3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAgICAudGhl
bihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAgLnRoZW4odGV4dCA9PiBh
c3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAgLnRoZW4oXyA9
PiByZXNvbHZlKCkpCi0gICAgICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsKLSAgICAgIH07
Ci0KLSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7Ci0gICAgfSkKLSAgfSwgIkNy
b3NzLVNpdGUgLT4gQ3Jvc3MtU2l0ZSByZWRpcmVjdCIpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1t
ZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1jcm9zcy1zaXRlLnRlbnRhdGl2ZS5o
dHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3Qt
Y3Jvc3Mtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDYwYzVmYTA2MmRlMjIwYWE0ZjE4NzdhYmM4NGJkZDQ1ZWQ5Nzhm
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9y
ZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1jcm9zcy1zaXRlLnRlbnRhdGl2ZS5odHRwcy5zdWIt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1CbG9ja2VkIGFjY2Vz
cyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0Ojk0NDMv
eGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1odHRwczovL2xvY2FsaG9zdDo5NDQz
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXJlZGly
ZWN0LW11bHRpcGxlLWNyb3NzLXNpdGUKLQotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVz
c2FnZSA9IG51bGwKLQotVElNRU9VVCBTYW1lLU9yaWdpbiAtPiBDcm9zcy1TaXRlIC0+IFNhbWUt
T3JpZ2luIHJlZGlyZWN0IFRlc3QgdGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGly
ZWN0L211bHRpcGxlLXJlZGlyZWN0LWNyb3NzLXNpdGUudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMt
bWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtY3Jvc3Mtc2l0ZS50ZW50YXRpdmUu
aHR0cHMuc3ViLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkZDg3MzNiYTZk
NjgyYjFmNmI1NWZiNGUzNzM4ZDAzYTFmYmJiNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtY3Jv
c3Mtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im10cnpv
c0Bnb29nbGUuY29tIiB0aXRsZT0iTWFjaWVrIFRyem9zIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPGJvZHk+PC9ib2R5PgotPHNjcmlwdD4K
LXByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJyZWRpcmVjdC1tdWx0aXBsZS1jcm9zcy1zaXRl
IjsKLQotICAgICAgbGV0IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKLSAgICAg
IGUuc3JjID0gImh0dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11bMF19fS94aHIvcmVzb3Vy
Y2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPSIgKy8vIHNhbWUtb3JpZ2luCi0gICAgICAiaHR0cHM6
Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0veGhyL3Jlc291cmNlcy9y
ZWRpcmVjdC5weT9sb2NhdGlvbj0iICsvLyBjcm9zcy1zaXRlCi0gICAgICAiaHR0cHM6Ly97e2hv
c3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVj
b3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ly8gc2FtZS1vcmlnaW4KLSAgICAgIGxldCBleHBl
Y3RlZCA9IHsiZGVzdGluYXRpb24iOiJpbWFnZSIsICJzaXRlIjoiY3Jvc3Mtc2l0ZSJ9OwotCi0g
ICAgICBlLm9ubG9hZCA9IGUgPT4gewotICAgICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkK
LSAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAg
LnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAg
ICAgICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAgICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0
KGUpKTsKLSAgICAgIH07Ci0gICAgICBlLm9uZXJyb3IgPSBlID0+IHsKLSAgICAgICAgZmV0Y2go
Ii9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9
dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2Uu
dGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4
dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAg
IC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0gIH0sICJTYW1lLU9yaWdpbiAtPiBDcm9zcy1TaXRl
IC0+IFNhbWUtT3JpZ2luIHJlZGlyZWN0Iik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRh
L3JlZGlyZWN0L211bHRpcGxlLXJlZGlyZWN0LXNhbWUtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3Vi
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L211bHRpcGxlLXJlZGlyZWN0LXNhbWUtc2l0
ZS50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMGM0NWI1ZjEyOWY2NmIyM2YxOWQxOGM1NTQ2ZTBmOTk2MTFkYmU5Yy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9t
dWx0aXBsZS1yZWRpcmVjdC1zYW1lLXNpdGUudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVy
bmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My94aHIvcmVzb3VyY2VzL3JlZGlyZWN0
LnB5P2xvY2F0aW9uPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jl
c291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3QtbXVsdGlwbGUtc2FtZS1zaXRl
Ci0KLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQg
U2FtZS1PcmlnaW4gLT4gU2FtZS1TaXRlIC0+IFNhbWUtT3JpZ2luIHJlZGlyZWN0IFRlc3QgdGlt
ZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L211bHRpcGxlLXJlZGlyZWN0LXNh
bWUtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBs
ZS1yZWRpcmVjdC1zYW1lLXNpdGUudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4ZmRjOTQzZjRjOTZjMDYxNjc3OGMzMzE2NTg3ZjNjYzU5ODYw
NmViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRh
L3JlZGlyZWN0L211bHRpcGxlLXJlZGlyZWN0LXNhbWUtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3Vi
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQot
PGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im10cnpvc0Bnb29nbGUuY29tIiB0aXRsZT0iTWFjaWVr
IFRyem9zIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2Ny
aXB0PgotPGJvZHk+PC9ib2R5PgotPHNjcmlwdD4KLXByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0IGtleSA9
ICJyZWRpcmVjdC1tdWx0aXBsZS1zYW1lLXNpdGUiOwotCi0gICAgICBsZXQgZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwotICAgICAgZS5zcmMgPSAiaHR0cHM6Ly97e2hvc3R9fTp7
e3BvcnRzW2h0dHBzXVswXX19L3hoci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249IiAr
Ly8gc2FtZS1vcmlnaW4KLSAgICAgICJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1to
dHRwc11bMF19fS94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPSIgKy8vIHNhbWUt
c2l0ZQotICAgICAgImh0dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9z
ZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5Oy8vIHNh
bWUtb3JpZ2luCi0gICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoiaW1hZ2UiLCAi
c2l0ZSI6InNhbWUtc2l0ZSJ9OwotCi0gICAgICBlLm9ubG9hZCA9IGUgPT4gewotICAgICAgICBm
ZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRy
aWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNw
b25zZS50ZXh0KCkpCi0gICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFs
cyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAg
ICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsKLSAgICAgIH07Ci0gICAgICBlLm9uZXJyb3Ig
PSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3Jl
Y29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRo
ZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4g
YXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8g
PT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9
OwotCi0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0gIH0sICJT
YW1lLU9yaWdpbiAtPiBTYW1lLVNpdGUgLT4gU2FtZS1PcmlnaW4gcmVkaXJlY3QiKTsKLTwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3Qvc2FtZS1vcmlnaW4tcmVkaXJlY3QudGVu
dGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9zYW1lLW9yaWdp
bi1yZWRpcmVjdC50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggODRmNjQ2NWJjNTQwNmIzZWEyOTliYzQwYThjYjJmZmQ0NTdmNWY3
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9y
ZWRpcmVjdC9zYW1lLW9yaWdpbi1yZWRpcmVjdC50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL3NlYy1tZXRhZGF0YS9y
ZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXJlZGlyZWN0LXNhbWUtb3JpZ2luLXNhbWUt
c2l0ZQotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1GQUlM
IFNhbWUtT3JpZ2luIC0+IFNhbWUtT3JpZ2luIHJlZGlyZWN0IGFzc2VydF9ub3RfZXF1YWxzOiBF
bXB0eSBTZWMtTWV0YWRhdGEgaGVhZGVyLiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotVElNRU9V
VCBTYW1lLU9yaWdpbiAtPiBTYW1lLVNpdGUgcmVkaXJlY3QgVGVzdCB0aW1lZCBvdXQKLU5PVFJV
TiBTYW1lLU9yaWdpbiAtPiBDcm9zcy1TaXRlIHJlZGlyZWN0Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRh
L3JlZGlyZWN0L3NhbWUtb3JpZ2luLXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1l
dGFkYXRhL3JlZGlyZWN0L3NhbWUtb3JpZ2luLXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGVhNzFjM2Y2N2RjYTY5NGUwNWYz
YzAwZGIxZDJkN2FlYTVmMzc0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9zYW1lLW9yaWdpbi1yZWRpcmVjdC50ZW50YXRpdmUu
aHR0cHMuc3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLQotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im10cnpvc0Bnb29nbGUuY29tIiB0aXRs
ZT0iTWFjaWVrIFRyem9zIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVy
LmpzPjwvc2NyaXB0PgotPGJvZHk+PC9ib2R5PgotPHNjcmlwdD4KLXByb21pc2VfdGVzdCh0ID0+
IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAg
bGV0IGtleSA9ICJyZWRpcmVjdC1zYW1lLW9yaWdpbi1zYW1lLW9yaWdpbiI7Ci0KLSAgICAgIGxl
dCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gICAgICBlLnNyYyA9ICIveGhy
L3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1odHRwczovL3t7aG9zdH19Ont7cG9ydHNb
aHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5
P2ZpbGU9IiArIGtleTsKLSAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJpbWFn
ZSIsICJzaXRlIjoic2FtZS1vcmlnaW4ifTsKLQotICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAg
ICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIu
cHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2Ug
PT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRl
cl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgp
KQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotICAgICAgZS5v
bmVycm9yID0gZSA9PiB7Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291
cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAg
ICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0
ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAu
dGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwot
ICAgICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQot
ICB9LCAiU2FtZS1PcmlnaW4gLT4gU2FtZS1PcmlnaW4gcmVkaXJlY3QiKTsKLQotcHJvbWlzZV90
ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7
Ci0gICAgICBsZXQga2V5ID0gInJlZGlyZWN0LXNhbWUtb3JpZ2luLXNhbWUtc2l0ZSI7Ci0KLSAg
ICAgIGxldCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gICAgICBlLnNyYyA9
ICIveGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1odHRwczovL3t7aG9zdHNbXVt3
d3ddfX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3Jl
Y29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5OwotICAgICAgbGV0IGV4cGVjdGVkID0geyJkZXN0
aW5hdGlvbiI6ImltYWdlIiwgInNpdGUiOiJzYW1lLXNpdGUifTsKLQotICAgICAgZS5vbmxvYWQg
PSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3Jl
Y29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRo
ZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4g
YXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8g
PT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9
OwotICAgICAgZS5vbmVycm9yID0gZSA9PiB7Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1l
dGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsg
a2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAg
ICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkK
LSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiBy
ZWplY3QoZSkpOwotICAgICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChl
KTsKLSAgICB9KQotICB9LCAiU2FtZS1PcmlnaW4gLT4gU2FtZS1TaXRlIHJlZGlyZWN0Iik7Ci0K
LXByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJyZWRpcmVjdC1zYW1lLW9yaWdpbi1jcm9zcy1z
aXRlIjsKLQotICAgICAgbGV0IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKLSAg
ICAgIGUuc3JjID0gIi94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8v
e3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ci0gICAgICBsZXQgZXhw
ZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoiaW1hZ2UiLCAic2l0ZSI6ImNyb3NzLXNpdGUifTsKLQot
ICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRh
dGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkp
Ci0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAg
IC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAg
ICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVj
dChlKSk7Ci0gICAgICB9OwotICAgICAgZS5vbmVycm9yID0gZSA9PiB7Ci0gICAgICAgIGZldGNo
KCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZl
PXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNl
LnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRl
eHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAg
ICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQotICB9LCAiU2FtZS1PcmlnaW4gLT4gQ3Jvc3MtU2l0
ZSByZWRpcmVjdCIpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9zYW1l
LXNpdGUtcmVkaXJlY3QudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9y
ZWRpcmVjdC9zYW1lLXNpdGUtcmVkaXJlY3QudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmY2EwMTNhOTczOTJmYzBlNzE1NTQy
M2QxNjg5YzhkOTQ4OWJjOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVkaXJlY3Qvc2FtZS1zaXRlLXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRw
cy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1CbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMveGhyL3Jl
c291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1odHRwczovL2xvY2FsaG9zdDo5NDQzL2ZldGNo
L3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXJlZGlyZWN0LXNh
bWUtc2l0ZS1zYW1lLW9yaWdpbgotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3LmxvY2FsaG9zdDo5NDQzL3hoci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29y
ZC1oZWFkZXIucHk/ZmlsZT1yZWRpcmVjdC1zYW1lLXNpdGUtc2FtZS1zaXRlCi1CbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMveGhyL3Jlc291
cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1odHRwczovL3d3dy5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3Q6OTQ0My9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/Zmls
ZT1yZWRpcmVjdC1zYW1lLXNpdGUtY3Jvc3Mtc2l0ZQotCi0KLUZBSUwgU2FtZS1TaXRlIC0+IFNh
bWUtT3JpZ2luIHJlZGlyZWN0IGFzc2VydF9lcXVhbHM6IGRlc3RpbmF0aW9uIGV4cGVjdGVkIChz
dHJpbmcpICJpbWFnZSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgU2FtZS1T
aXRlIC0+IFNhbWUtU2l0ZSByZWRpcmVjdCBhc3NlcnRfZXF1YWxzOiBkZXN0aW5hdGlvbiBleHBl
Y3RlZCAoc3RyaW5nKSAiaW1hZ2UiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlM
IFNhbWUtU2l0ZSAtPiBDcm9zcy1TaXRlIHJlZGlyZWN0IGFzc2VydF9lcXVhbHM6IGRlc3RpbmF0
aW9uIGV4cGVjdGVkIChzdHJpbmcpICJpbWFnZSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmlu
ZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3Qvc2FtZS1zaXRlLXJlZGlyZWN0LnRlbnRh
dGl2ZS5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L3NhbWUtc2l0ZS1yZWRpcmVjdC50
ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3
MTE2M2ExYmZjYjA5MTk2MDgzZGQxYTM4ZjRhNjg2M2Y0NmVjYTguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3Qvc2FtZS1zaXRlLXJl
ZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotCi08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibXRyem9z
QGdvb2dsZS5jb20iIHRpdGxlPSJNYWNpZWsgVHJ6b3MiPgotPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRh
L3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci08Ym9keT48L2JvZHk+Ci08c2NyaXB0Pgot
cHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVq
ZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gInJlZGlyZWN0LXNhbWUtc2l0ZS1zYW1lLW9yaWdp
biI7Ci0KLSAgICAgIGxldCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gICAg
ICBlLnNyYyA9ICJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS94
aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8ve3tob3N0fX06e3twb3J0
c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIu
cHk/ZmlsZT0iICsga2V5OwotICAgICAgbGV0IGV4cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6Imlt
YWdlIiwgInNpdGUiOiJzYW1lLXNpdGUifTsKLQotICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAg
ICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIu
cHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2Ug
PT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRl
cl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgp
KQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotICAgICAgZS5v
bmVycm9yID0gZSA9PiB7Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291
cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAg
ICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0
ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAu
dGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwot
ICAgICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQot
ICB9LCAiU2FtZS1TaXRlIC0+IFNhbWUtT3JpZ2luIHJlZGlyZWN0Iik7Ci0KLXByb21pc2VfdGVz
dCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewot
ICAgICAgbGV0IGtleSA9ICJyZWRpcmVjdC1zYW1lLXNpdGUtc2FtZS1zaXRlIjsKLQotICAgICAg
bGV0IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKLSAgICAgIGUuc3JjID0gImh0
dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L3hoci9yZXNvdXJjZXMv
cmVkaXJlY3QucHk/bG9jYXRpb249aHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBr
ZXk7Ci0gICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoiaW1hZ2UiLCAic2l0ZSI6
InNhbWUtc2l0ZSJ9OwotCi0gICAgICBlLm9ubG9hZCA9IGUgPT4gewotICAgICAgICBmZXRjaCgi
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10
cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50
ZXh0KCkpCi0gICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0
LCBleHBlY3RlZCkpCi0gICAgICAgICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAgICAgICAg
LmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsKLSAgICAgIH07Ci0gICAgICBlLm9uZXJyb3IgPSBlID0+
IHsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1o
ZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVz
cG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0
X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVz
b2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotCi0g
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0gIH0sICJTYW1lLVNp
dGUgLT4gU2FtZS1TaXRlIHJlZGlyZWN0Iik7Ci0KLXByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0IGtleSA9
ICJyZWRpcmVjdC1zYW1lLXNpdGUtY3Jvc3Mtc2l0ZSI7Ci0KLSAgICAgIGxldCBlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gICAgICBlLnNyYyA9ICJodHRwczovL3t7aG9zdHNb
XVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xv
Y2F0aW9uPWh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2Zl
dGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7
Ci0gICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoiaW1hZ2UiLCAic2l0ZSI6ImNy
b3NzLXNpdGUifTsKLQotICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9m
ZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1
ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4
dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwg
ZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5j
YXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotICAgICAgZS5vbmVycm9yID0gZSA9PiB7
Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVh
ZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3Bv
bnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9o
ZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29s
dmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLQotICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQotICB9LCAiU2FtZS1TaXRl
IC0+IENyb3NzLVNpdGUgcmVkaXJlY3QiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEv
cmVkaXJlY3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDMwMTVmNTdlOTk4Y2Q1ZTQ1YWU3NDlhNGU3
YjQ2M2M5Nzc5NjI1NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Nl
Yy1tZXRhZGF0YS9yZWRpcmVjdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIx
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L2Nyb3NzLXNpdGUtcmVkaXJlY3QudGVu
dGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3Qt
Y3Jvc3Mtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9tdWx0
aXBsZS1yZWRpcmVjdC1zYW1lLXNpdGUudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEv
cmVkaXJlY3Qvc2FtZS1vcmlnaW4tcmVkaXJlY3QudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0
YWRhdGEvcmVkaXJlY3Qvc2FtZS1zaXRlLXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVwb3J0LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9z
ZWMtbWV0YWRhdGEvcmVwb3J0LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDgyYzVlMWI0ZThjMDhlMWIyNmQ4NWY2OGQ4Yzc5
ZmVhYmQyNjExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1l
dGFkYXRhL3JlcG9ydC50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDkgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGxvYWQgaHR0
cHM6Ly9mb28uYmFyLyBiZWNhdXNlIGl0IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgc3R5bGUtc3Jj
IGRpcmVjdGl2ZSBvZiB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuCi1DT05TT0xFIE1FU1NB
R0U6IFJlZnVzZWQgdG8gbG9hZCBodHRwczovL2Zvby5iYXIvIGJlY2F1c2UgaXQgZG9lcyBub3Qg
YXBwZWFyIGluIHRoZSBzdHlsZS1zcmMgZGlyZWN0aXZlIG9mIHRoZSBDb250ZW50IFNlY3VyaXR5
IFBvbGljeS4KLUNPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIGh0dHBzOi8vZm9vLmJh
ci8gYmVjYXVzZSBpdCBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIHN0eWxlLXNyYyBkaXJlY3RpdmUg
b2YgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LgotQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2Vk
IHRvIGxvYWQgaHR0cHM6Ly9mb28uYmFyLyBiZWNhdXNlIGl0IGRvZXMgbm90IGFwcGVhciBpbiB0
aGUgc3R5bGUtc3JjIGRpcmVjdGl2ZSBvZiB0aGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kuCi1D
T05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9hZCBodHRwczovL2Zvby5iYXIvIGJlY2F1c2Ug
aXQgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBzdHlsZS1zcmMgZGlyZWN0aXZlIG9mIHRoZSBDb250
ZW50IFNlY3VyaXR5IFBvbGljeS4KLUNPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIGh0
dHBzOi8vZm9vLmJhci8gYmVjYXVzZSBpdCBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIHN0eWxlLXNy
YyBkaXJlY3RpdmUgb2YgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LgotCi1QQVNTIEluaXRp
YWxpemF0aW9uLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXBvcnQudGVudGF0aXZlLmh0dHBzLnN1
Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVwb3J0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTc0ZGE2YTdhN2Q2MGZjZGMzNWRkMzI4NzNlYTI1Y2Y1ZTM1
NmRlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXBvcnQudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzEg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibXRyem9z
QGdvb2dsZS5jb20iIHRpdGxlPSJNYWNpZWsgVHJ6b3MiPgotPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRh
L3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci08bGluayBpZD0ic3R5bGUiIGhyZWY9Imh0
dHBzOi8vZm9vLmJhciIgcmVsPSJzdHlsZXNoZWV0Ij4KLTxib2R5PjwvYm9keT4KLTxzY3JpcHQ+
Ci0gIGZ1bmN0aW9uIGdlbmVyYXRlX3Rlc3QoZXhwZWN0ZWQsIG5hbWUpIHsKLSAgICBhc3luY190
ZXN0KHQgPT4gewotICAgICAgdC5zdGVwX3RpbWVvdXQoXyA9PiB7Ci0gICAgICAgIHJldHVybiBm
ZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRy
aWV2ZT10cnVlJmZpbGU9cmVwb3J0LSIgKyBuYW1lKQotICAgICAgICAgICAgLnRoZW4ocmVzcG9u
c2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRf
aGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAgICAudGhlbihfID0+IHQu
ZG9uZSgpKTsKLSAgICAgIH0sIDEwMDApOwotICAgIH0sIG5hbWUgKyAiIHJlcG9ydCIpOwotICB9
Ci0KLSAgdGVzdChfID0+IHsKLSAgICBsZXQgY291bnRlciA9IDA7Ci0gICAgZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigic2VjdXJpdHlwb2xpY3l2aW9sYXRpb24iLCAoZSkgPT4gewotICAgICAg
Y291bnRlcisrOwotICAgICAgaWYgKGNvdW50ZXIgPT0gMykgewotICAgICAgICBnZW5lcmF0ZV90
ZXN0KHsiZGVzdGluYXRpb24iOiJyZXBvcnQiLCAic2l0ZSI6InNhbWUtb3JpZ2luIn0sICJzYW1l
LW9yaWdpbiIpOwotICAgICAgICBnZW5lcmF0ZV90ZXN0KHsiZGVzdGluYXRpb24iOiJyZXBvcnQi
LCAic2l0ZSI6InNhbWUtc2l0ZSJ9LCAic2FtZS1zaXRlIik7Ci0gICAgICAgIGdlbmVyYXRlX3Rl
c3QoeyJkZXN0aW5hdGlvbiI6InJlcG9ydCIsICJzaXRlIjoiY3Jvc3Mtc2l0ZSJ9LCAiY3Jvc3Mt
c2l0ZSIpOwotICAgICAgfQotICAgIH0pOwotICB9LCAiSW5pdGlhbGl6YXRpb24uIik7Ci08L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlcG9ydC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwu
c3ViLmhlYWRlcnMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXBvcnQudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sLnN1Yi5o
ZWFkZXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YzhiYzU4YWQ0NzJlZDlkZTg0
MTQ5MWRmNGUzZTllMjZlMmUxYzcwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvc2VjLW1ldGFkYXRhL3JlcG9ydC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwuc3ViLmhl
YWRlcnMKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLUNvbnRlbnQtU2VjdXJpdHktUG9s
aWN5OiBzdHlsZS1zcmMgJ3NlbGYnICd1bnNhZmUtaW5saW5lJzsgcmVwb3J0LXVyaSAvZmV0Y2gv
c2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVwb3J0LXNhbWUt
b3JpZ2luCi1Db250ZW50LVNlY3VyaXR5LVBvbGljeTogc3R5bGUtc3JjICdzZWxmJyAndW5zYWZl
LWlubGluZSc7IHJlcG9ydC11cmkgaHR0cHM6Ly97e2hvc3RzW11bd3d3XX19Ont7cG9ydHNbaHR0
cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2Zp
bGU9cmVwb3J0LXNhbWUtc2l0ZQotQ29udGVudC1TZWN1cml0eS1Qb2xpY3k6IHN0eWxlLXNyYyAn
c2VsZicgJ3Vuc2FmZS1pbmxpbmUnOyByZXBvcnQtdXJpIGh0dHBzOi8ve3tob3N0c1thbHRdW3d3
d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVj
b3JkLWhlYWRlci5weT9maWxlPXJlcG9ydC1jcm9zcy1zaXRlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9y
ZXNvdXJjZXMvZGVkaWNhdGVkV29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2RlZGljYXRlZFdv
cmtlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTg2MjZkM2Q4NDU4Yjk2Nzgy
OWI3MjRmYWJlYmMxMGU5MzliNjJhOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZGVkaWNhdGVkV29ya2VyLmpzCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotc2VsZi5wb3N0TWVzc2FnZSgiTG9hZGVkIik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Nl
Yy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2Vj
aG8tYXMtanNvbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTZjYzY3Nzc0Zjc2
MzQ3ZTVjNzEyMjBmNTkwYTgyYTM3MzAyY2ZmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotaW1wb3J0IGpzb24KLQotZGVmIG1haW4ocmVxdWVz
dCwgcmVzcG9uc2UpOgotICAgIGhlYWRlcnMgPSBbKCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRp
b24vanNvbiIpLAotICAgICAgICAgICAgICAgKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50
aWFscyIsICJ0cnVlIildCi0KLSAgICBpZiAib3JpZ2luIiBpbiByZXF1ZXN0LmhlYWRlcnM6Ci0g
ICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgcmVx
dWVzdC5oZWFkZXJzWyJvcmlnaW4iXSkpCi0KLQotICAgIGJvZHkgPSBqc29uLmR1bXBzKHsgImhl
YWRlciI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1tZXRhZGF0YSIsICIiKSB9KQotICAgIHJl
dHVybiBoZWFkZXJzLCBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1z
Y3JpcHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGMxYzZhNDY3M2FjZmJkYTE3ZTJhNzA0NWEzMDRhMzAwODIyODhk
MWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEv
cmVzb3VyY2VzL2VjaG8tYXMtc2NyaXB0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBA
Ci1pbXBvcnQganNvbgotCi1kZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgaGVhZGVy
cyA9IFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2phdmFzY3JpcHQiKV0KLQotICAgIGJvZHkgPSAi
dmFyIGhlYWRlciA9ICVzOyIgJSBqc29uLmR1bXBzKHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1t
ZXRhZGF0YSIsICIiKSk7Ci0KLSAgICByZXR1cm4gaGVhZGVycywgYm9keQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0
YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzN2Y3ZTFlMWRlYjkyOTMyMmIyNmVlNTQzNjEy
M2E3YjI0ZGI5MmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMt
bWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAg
QEAKLWZ1bmN0aW9uIHBhcnNlX21ldGFkYXRhKHZhbHVlKSB7Ci0gIGxldCByZXN1bHQgPSB7fTsK
LSAgdmFsdWUuc3BsaXQoJywnKS5mb3JFYWNoKGl0ZW0gPT4gewotICAgIGxldCBwYXJzZWQgPSBp
dGVtLnRyaW0oKS5zcGxpdCgnPScpOwotICAgIHJlc3VsdFtwYXJzZWRbMF1dID0gcGFyc2VkWzFd
OwotICB9KTsKLSAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZnVuY3Rpb24gYXNzZXJ0X2hlYWRlcl9l
cXVhbHModmFsdWUsIGV4cGVjdGVkKSB7Ci0gIC8vIGNoZWNrIHRoYXQgdGhlIHJldHVybmVkIHZh
bHVlIGlzIGFuIG9iamVjdCwgbm90IGEgU3RyaW5nCi0gIGFzc2VydF9ub3RfZXF1YWxzKHZhbHVl
LCAiIiwgIkVtcHR5IFNlYy1NZXRhZGF0YSBoZWFkZXIuIik7Ci0gIGxldCByZXN1bHQgPSBwYXJz
ZV9tZXRhZGF0YSh2YWx1ZSk7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LmNhdXNlLCBleHBlY3Rl
ZC5jYXVzZSwgImNhdXNlIik7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LmRlc3RpbmF0aW9uLCBl
eHBlY3RlZC5kZXN0aW5hdGlvbiwgImRlc3RpbmF0aW9uIik7Ci0gIGFzc2VydF9lcXVhbHMocmVz
dWx0LnRhcmdldCwgZXhwZWN0ZWQudGFyZ2V0LCAidGFyZ2V0Iik7Ci0gIGFzc2VydF9lcXVhbHMo
cmVzdWx0LnNpdGUsIGV4cGVjdGVkLnNpdGUsICJzaXRlIik7Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93
bmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDcyYWE1YjQ3ZTQyNGJiNjU5
MGQ2Yzc1N2RmNjM1ZWI0YjZkZDFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMTYgKzAsMCBAQAotaW1wb3J0IGpzb24KLQotZGVmIG1haW4ocmVxdWVzdCwgcmVz
cG9uc2UpOgotICAgIGhlYWRlcnMgPSBbKCJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIildCi0K
LSAgICBib2R5ID0gIiIiCi0gICAgICAgIDwhRE9DVFlQRSBodG1sPgotICAgICAgICA8c2NyaXB0
PgotICAgICAgICAgICAgdmFyIGRhdGEgPSAlczsKLSAgICAgICAgICAgIGlmICh3aW5kb3cub3Bl
bmVyKQotICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoZGF0YSwgIioi
KTsKLSAgICAgICAgICAgIGlmICh3aW5kb3cudG9wICE9IHdpbmRvdykKLSAgICAgICAgICAgICAg
ICB3aW5kb3cudG9wLnBvc3RNZXNzYWdlKGRhdGEsICIqIik7Ci0gICAgICAgIDwvc2NyaXB0Pgot
ICAgICIiIiAlIGpzb24uZHVtcHMocmVxdWVzdC5oZWFkZXJzLmdldCgiU2VjLU1ldGFkYXRhIiwg
IiIpKQotICAgIHJldHVybiBoZWFkZXJzLCBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJj
ZXMvcmVjb3JkLWhlYWRlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGY5YTUzZmExNzAyNDUzN2I4ZmNlNDgwMjNh
NTJiNjJkODUzYTEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2Vj
LW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MTE2ICswLDAgQEAKLWltcG9ydCBvcwotaW1wb3J0IHV1aWQKLWltcG9ydCBoYXNobGliCi1pbXBv
cnQgdGltZQotCi1kZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICMjIEdldCB0aGUgcXVl
cnkgcGFyYW1ldGVyIChrZXkpIGZyb20gVVJMICMjCi0gICMjIFRlc3RzIHdpbGwgcmVjb3JkIFBP
U1QgcmVxdWVzdHMgKENTUCBSZXBvcnQpIGFuZCBHRVQgKHJlc3QpICMjCi0gIGlmIHJlcXVlc3Qu
R0VUOgotICAgIGtleSA9IHJlcXVlc3QuR0VUWydmaWxlJ10KLSAgZWxpZiByZXF1ZXN0LlBPU1Q6
Ci0gICAga2V5ID0gcmVxdWVzdC5QT1NUWydmaWxlJ10KLQotICAjIyBDb252ZXJ0IHRoZSBrZXkg
ZnJvbSBTdHJpbmcgdG8gVVVJRCB2YWxpZCBTdHJpbmcgIyMKLSAgdGVzdElkID0gaGFzaGxpYi5t
ZDUoa2V5KS5oZXhkaWdlc3QoKQotCi0gICMjIEhhbmRsZSB0aGUgaGVhZGVyIHJldHJpZXZhbCBy
ZXF1ZXN0ICMjCi0gIGlmICdyZXRyaWV2ZScgaW4gcmVxdWVzdC5HRVQ6Ci0gICAgcmVzcG9uc2Uu
d3JpdGVyLndyaXRlX3N0YXR1cygyMDApCi0gICAgcmVzcG9uc2Uud3JpdGVyLmVuZF9oZWFkZXJz
KCkKLSAgICB0cnk6Ci0gICAgICBoZWFkZXJfdmFsdWUgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50
YWtlKHRlc3RJZCkKLSAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZShoZWFkZXJfdmFsdWUpCi0g
ICAgZXhjZXB0IChLZXlFcnJvciwgVmFsdWVFcnJvcikgYXMgZToKLSAgICAgIHJlc3BvbnNlLndy
aXRlci53cml0ZSgiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIikKLSAgICAgIHBhc3MKLQot
ICAgIHJlc3BvbnNlLmNsb3NlX2Nvbm5lY3Rpb24gPSBUcnVlCi0KLSAgIyMgUmVjb3JkIGluY29t
aW5nIFNlYy1NZXRhZGF0YSBoZWFkZXIgdmFsdWUKLSAgZWxzZToKLSAgICB0cnk6Ci0gICAgICAj
IyBSZXR1cm4gZW1wdHkgc3RyaW5nIGFzIGEgZGVmYXVsdCB2YWx1ZSAjIwotICAgICAgaGVhZGVy
ID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiU2VjLU1ldGFkYXRhIiwgIiIpCi0gICAgICByZXF1ZXN0
LnNlcnZlci5zdGFzaC5wdXQodGVzdElkLCBoZWFkZXIpCi0gICAgZXhjZXB0IEtleUVycm9yOgot
ICAgICAgIyMgVGhlIGhlYWRlciBpcyBhbHJlYWR5IHJlY29yZGVkIG9yIGl0IGRvZXNuJ3QgZXhp
c3QKLSAgICAgIHBhc3MKLQotICAgICMjIFByZXZlbnQgdGhlIGJyb3dzZXIgZnJvbSBjYWNoaW5n
IHJldHVybmVkIHJlc3BvbnNlcyBhbmQgYWxsb3cgQ09SUyAjIwotICAgIHJlc3BvbnNlLmhlYWRl
cnMuc2V0KCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAiKiIpCi0gICAgcmVzcG9uc2Uu
aGVhZGVycy5zZXQoIkNhY2hlLUNvbnRyb2wiLCAibm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJl
dmFsaWRhdGUiKQotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJQcmFnbWEiLCAibm8tY2FjaGUi
KQotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJFeHBpcmVzIiwgIjAiKQotCi0gICAgIyMgQWRk
IGEgdmFsaWQgU2VydmljZVdvcmtlciBDb250ZW50LVR5cGUgIyMKLSAgICBpZiBrZXkuc3RhcnRz
d2l0aCgic2VydmljZXdvcmtlciIpOgotICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRl
bnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IikKLQotICAgICMjIFJldHVybiBhIHZh
bGlkIC52dHQgY29udGVudCBmb3IgdGhlIDx0cmFjaz4gdGFnICMjCi0gICAgaWYga2V5LnN0YXJ0
c3dpdGgoInRyYWNrIik6Ci0gICAgICByZXR1cm4gIldFQlZUVCIKLQotICAgICMjIFJldHVybiBh
IHZhbGlkIFNoYXJlZFdvcmtlciAjIwotICAgIGlmIGtleS5zdGFydHN3aXRoKCJzaGFyZWR3b3Jr
ZXIiKToKLSAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAiYXBwbGlj
YXRpb24vamF2YXNjcmlwdCIpCi0gICAgICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVz
dC5kb2Nfcm9vdCwgImZldGNoIiwgInNlYy1tZXRhZGF0YSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlc291cmNlcyIsICJzaGFyZWRXb3JrZXIuanMiKSwgInIiKQotICAgICAg
c2hhcmVkX3dvcmtlciA9IGZpbGUucmVhZCgpCi0gICAgICBmaWxlLmNsb3NlKCkKLSAgICAgIHJl
dHVybiBzaGFyZWRfd29ya2VyCi0KLSAgICAjIyBSZXR1cm4gYSB2YWxpZCBmb250IGNvbnRlbnQg
YW5kIENvbnRlbnQtVHlwZSAjIwotICAgIGlmIGtleS5zdGFydHN3aXRoKCJmb250Iik6Ci0gICAg
ICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL3gtZm9u
dC10dGYiKQotICAgICAgZmlsZSA9IG9wZW4ob3MucGF0aC5qb2luKHJlcXVlc3QuZG9jX3Jvb3Qs
ICJmb250cyIsICJBaGVtLnR0ZiIpLCAiciIpCi0gICAgICBmb250ID0gZmlsZS5yZWFkKCkKLSAg
ICAgIGZpbGUuY2xvc2UoKQotICAgICAgcmV0dXJuIGZvbnQKLQotICAgICMjIFJldHVybiBhIHZh
bGlkIGF1ZGlvIGNvbnRlbnQgYW5kIENvbnRlbnQtVHlwZSAjIwotICAgIGlmIGtleS5zdGFydHN3
aXRoKCJhdWRpbyIpOgotICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIs
ICJhdWRpby9tcGVnIikKLSAgICAgIGZpbGUgPSBvcGVuKG9zLnBhdGguam9pbihyZXF1ZXN0LmRv
Y19yb290LCAibWVkaWEiLCAic291bmRfNS5tcDMiKSwgInIiKQotICAgICAgYXVkaW8gPSBmaWxl
LnJlYWQoKQotICAgICAgZmlsZS5jbG9zZSgpCi0gICAgICByZXR1cm4gYXVkaW8KLQotICAgICMj
IFJldHVybiBhIHZhbGlkIHZpZGVvIGNvbnRlbnQgYW5kIENvbnRlbnQtVHlwZSAjIwotICAgIGlm
IGtleS5zdGFydHN3aXRoKCJ2aWRlbyIpOgotICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNv
bnRlbnQtVHlwZSIsICJ2aWRlby9tcDQiKQotICAgICAgZmlsZSA9IG9wZW4ob3MucGF0aC5qb2lu
KHJlcXVlc3QuZG9jX3Jvb3QsICJtZWRpYSIsICJBNC5tcDQiKSwgInIiKQotICAgICAgdmlkZW8g
PSBmaWxlLnJlYWQoKQotICAgICAgZmlsZS5jbG9zZSgpCi0gICAgICByZXR1cm4gdmlkZW8KLQot
ICAgICMjIFJldHVybiBhIHZhbGlkIHN0eWxlIGNvbnRlbnQgYW5kIENvbnRlbnQtVHlwZSAjIwot
ICAgIGlmIGtleS5zdGFydHN3aXRoKCJzdHlsZSIpIG9yIGtleS5zdGFydHN3aXRoKCJlbWJlZCIp
IG9yIGtleS5zdGFydHN3aXRoKCJvYmplY3QiKToKLSAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KCJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIikKLSAgICAgIHJldHVybiAiPGh0bWw+RU1CRUQh
PC9odG1sPiIKLQotICAgICMjIFJldHVybiBhIHZhbGlkIGltYWdlIGNvbnRlbnQgYW5kIENvbnRl
bnQtVHlwZSBmb3IgcmVkaXJlY3QgcmVxdWVzdHMgIyMKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgi
cmVkaXJlY3QiKToKLSAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAi
aW1hZ2UvanBlZyIpCi0gICAgICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nf
cm9vdCwgIm1lZGlhIiwgIjF4MS1ncmVlbi5wbmciKSwgInIiKQotICAgICAgaW1hZ2UgPSBmaWxl
LnJlYWQoKQotICAgICAgZmlsZS5jbG9zZSgpCi0gICAgICByZXR1cm4gaW1hZ2UKLQotICAgICMj
IFJldHVybiBhIHZhbGlkIGRlZGljYXRlZCB3b3JrZXIKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgi
d29ya2VyIik6Ci0gICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgImFw
cGxpY2F0aW9uL2phdmFzY3JpcHQiKQotICAgICAgcmV0dXJuICJzZWxmLnBvc3RNZXNzYWdlKCds
b2FkZWQnKTsiCi0KLSAgICAjIyBSZXR1cm4gYSB2YWxpZCBYU0xUCi0gICAgaWYga2V5LnN0YXJ0
c3dpdGgoInhzbHQiKToKLSAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUi
LCAidGV4dC94c2wiKQotICAgICAgcmV0dXJuICIiIjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9IlVURi04Ij8+Ci08eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L1hTTC9UcmFuc2Zvcm0iIHZlcnNpb249IjEuMCI+Ci0gIDx4c2w6dGVtcGxhdGUgbWF0
Y2g9IkAqfG5vZGUoKSI+Ci0gICAgPHhzbDpjb3B5PgotICAgICAgPHhzbDphcHBseS10ZW1wbGF0
ZXMgc2VsZWN0PSJAKnxub2RlKCkiLz4KLSAgICA8L3hzbDpjb3B5PgotICA8L3hzbDp0ZW1wbGF0
ZT4KLTwveHNsOnN0eWxlc2hlZXQ+IiIiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9z
aGFyZWRXb3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvc2hhcmVkV29ya2VyLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZWI4OWNiNGY2OGEwOTgxNTRjZjM2MDVmNTMzMThhZjJm
NWU1NmYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFk
YXRhL3Jlc291cmNlcy9zaGFyZWRXb3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAg
QEAKLW9uY29ubmVjdCA9IGZ1bmN0aW9uKGUpIHsKLSAgdmFyIHBvcnQgPSBlLnBvcnRzWzBdOwot
Ci0gIHBvcnQuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKLSAgICBw
b3J0LnBvc3RNZXNzYWdlKCJSZWFkeSIpOwotICB9KTsKLQotICBwb3J0LnN0YXJ0KCk7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJj
ZXMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4YTJhODAz
ZTFkMTE5NGRhNjAxMWY2YzY3NDZkOGJlZjQzMGIzZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2Rl
ZGljYXRlZFdvcmtlci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpz
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMt
bWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVj
b3JkLWhlYWRlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9zaGFyZWRXb3JrZXIuanMKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9y
ZXNvdXJjZXMveHNsdC10ZXN0LnN1Yi54bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy94
c2x0LXRlc3Quc3ViLnhtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy94c2x0LXRlc3Quc3ViLnhtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJlYjlhZjhkMjgyZjI2NzJhYjA4YzRjMzY5ZDFm
ZTBiMDYxZTgwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1t
ZXRhZGF0YS9yZXNvdXJjZXMveHNsdC10ZXN0LnN1Yi54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPD94bWwt
c3R5bGVzaGVldCBocmVmPSJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0
Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9eHNsdC1zYW1l
LW9yaWdpbiIgdHlwZT0idGV4dC94c2wiID8+Ci08P3htbC1zdHlsZXNoZWV0IGhyZWY9Imh0dHBz
Oi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXhzbHQtc2FtZS1zaXRlIiB0eXBlPSJ0
ZXh0L3hzbCIgPz4KLTw/eG1sLXN0eWxlc2hlZXQgaHJlZj0iaHR0cHM6Ly97e2hvc3RzW2FsdF1b
d3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9y
ZWNvcmQtaGVhZGVyLnB5P2ZpbGU9eHNsdC1jcm9zcy1zaXRlIiB0eXBlPSJ0ZXh0L3hzbCIgPz4K
LQotPCEtLSBwb3N0TWVzc2FnZSBwYXJlbnQgYmFjayB3aGVuIHRoZSByZXNvdXJjZXMgYXJlIGxv
YWRlZCAtLT4KLTxzY3JpcHQgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjwh
W0NEQVRBWwotICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Ci0gICAgaWYgKHdpbmRvdy5vcGVuZXIp
Ci0gICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoIiIsICIqIik7Ci0gICAgaWYgKHdp
bmRvdy50b3AgIT0gd2luZG93KQotICAgICAgICB3aW5kb3cudG9wLnBvc3RNZXNzYWdlKCIiLCAi
KiIpO30sIDEwMCk7Ci1dXT48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NjcmlwdC50ZW50
YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NjcmlwdC50ZW50YXRpdmUuaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzkwYzE0
NThiZjZmOTJkMTY5ZWRlNmJlY2NlZDEyYjVmMzI4MzEyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9zY3JpcHQudGVudGF0aXZlLmh0dHBzLnN1
Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUJsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9zZWMt
bWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtc2NyaXB0LnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0Ojk0NDMvZmV0Y2gv
c2VjLW1ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlwdC5weQotQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL3NlYy1tZXRh
ZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQucHkKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVy
bmFsIFVSTCBodHRwczovL3d3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Q6OTQ0My9mZXRjaC9zZWMt
bWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtc2NyaXB0LnB5Ci0KLUZBSUwgU2FtZS1vcmlnaW4g
c2NyaXB0IGFzc2VydF9ub3RfZXF1YWxzOiBFbXB0eSBTZWMtTWV0YWRhdGEgaGVhZGVyLiBnb3Qg
ZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBTYW1lLXNpdGUgc2NyaXB0IG51bGwgaXMgbm90IGFu
IG9iamVjdCAoZXZhbHVhdGluZyAndmFsdWUuc3BsaXQnKQotRkFJTCBDcm9zcy1zaXRlIHNjcmlw
dCBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3ZhbHVlLnNwbGl0JykKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zZWMtbWV0YWRhdGEvc2NyaXB0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Nj
cmlwdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDY0M2UxMTgyN2Y1NjVhZDExNDE2NTg5YWU2MDFkMThjZDgwMDgyMzkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc2NyaXB0LnRlbnRhdGl2
ZS5odHRwcy5zdWIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3Jp
cHQ+Ci0KLTwhLS0gU2FtZS1vcmlnaW4gc2NyaXB0IC0tPgotPHNjcmlwdCBzcmM9Imh0dHBzOi8v
e3tob3N0fX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2Vz
L2VjaG8tYXMtc2NyaXB0LnB5Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gIHRlc3QodCA9PiB7Ci0g
ICAgdC5hZGRfY2xlYW51cChfID0+IHsgaGVhZGVyID0gbnVsbDsgfSk7Ci0KLSAgICBhc3NlcnRf
aGVhZGVyX2VxdWFscyhoZWFkZXIsIHsKLSAgICAgICJjYXVzZSI6IHVuZGVmaW5lZCwKLSAgICAg
ICJkZXN0aW5hdGlvbiI6ICJzY3JpcHQiLAotICAgICAgInNpdGUiOiAic2FtZS1vcmlnaW4iCi0g
ICAgfSk7Ci0gIH0sICJTYW1lLW9yaWdpbiBzY3JpcHQiKTsKLTwvc2NyaXB0PgotCi08IS0tIFNh
bWUtc2l0ZSBzY3JpcHQgLS0+Ci08c2NyaXB0IHNyYz0iaHR0cHM6Ly97e2hvc3RzW11bd3d3XX19
Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFz
LXNjcmlwdC5weSI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICB0ZXN0KHQgPT4gewotICAgIHQuYWRk
X2NsZWFudXAoXyA9PiB7IGhlYWRlciA9IG51bGw7IH0pOwotCi0gICAgYXNzZXJ0X2hlYWRlcl9l
cXVhbHMoaGVhZGVyLCB7Ci0gICAgICAiY2F1c2UiOiB1bmRlZmluZWQsCi0gICAgICAiZGVzdGlu
YXRpb24iOiAic2NyaXB0IiwKLSAgICAgICJzaXRlIjogInNhbWUtc2l0ZSIKLSAgICB9KTsKLSAg
fSwgIlNhbWUtc2l0ZSBzY3JpcHQiKTsKLTwvc2NyaXB0PgotCi08IS0tIENyb3NzLXNpdGUgc2Ny
aXB0IC0tPgotPHNjcmlwdCBzcmM9Imh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRz
W2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQu
cHkiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAgdGVzdCh0ID0+IHsKLSAgICB0LmFkZF9jbGVhbnVw
KF8gPT4geyBoZWFkZXIgPSBudWxsOyB9KTsKLQotICAgIGFzc2VydF9oZWFkZXJfZXF1YWxzKGhl
YWRlciwgewotICAgICAgImNhdXNlIjogdW5kZWZpbmVkLAotICAgICAgImRlc3RpbmF0aW9uIjog
InNjcmlwdCIsCi0gICAgICAic2l0ZSI6ICJjcm9zcy1zaXRlIgotICAgIH0pOwotICB9LCAiQ3Jv
c3Mtc2l0ZSBzY3JpcHQiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc2VydmljZXdv
cmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NlcnZpY2V3b3Jr
ZXIudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDg2ODJiYzllNDUyOTAwMzFlYTJhMjE5MDg0NGRiMzM0ZmMyNjNjOTQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc2VydmljZXdv
cmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotCi1GQUlMIFVudGl0bGVkIGFzc2VydF9ub3RfZXF1YWxzOiBFbXB0eSBTZWMt
TWV0YWRhdGEgaGVhZGVyLiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRh
ZGF0YS9zZXJ2aWNld29ya2VyLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NlcnZp
Y2V3b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjZWZhYmIyMGFhYTQwYzkxZjVkOTBkMTgwZjUyZDU5NjA4NmE1NWNkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NlcnZpY2V3b3Jr
ZXIudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPgotPGxpbmsgcmVsPSJh
dXRob3IiIGhyZWY9Im10cnpvc0Bnb29nbGUuY29tIiB0aXRsZT0iTWFjaWVrIFRyem9zIj4KLTxz
Y3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPGJvZHk+
Ci0gIDxzY3JpcHQ+Ci0gICAgICBpZiAoJ3NlcnZpY2VXb3JrZXInIGluIG5hdmlnYXRvcikgewot
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCdodHRwczovL3t7aG9zdH19
Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQt
aGVhZGVyLnB5P2ZpbGU9c2VydmljZXdvcmtlci1zYW1lLW9yaWdpbicpLnRoZW4oZnVuY3Rpb24o
cmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgICB0ZXN0X3NhbWVfb3JpZ2luKCk7Ci0KLSAgICAg
ICAgICAgIC8vIHVuaW5zdGFsbCB0aGUgc2VydmljZXdvcmtlciBhZnRlciB0aGUgdGVzdAotICAg
ICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9ucykgewotICAgICAgICAgICAgICBmb3IobGV0IHJlZ2lzdHJh
dGlvbiBvZiByZWdpc3RyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uLnVu
cmVnaXN0ZXIoKQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KQotICAgICAgICAgIH0s
IGZ1bmN0aW9uKGVycikgewotICAgICAgICAgICAgLy8gcmVnaXN0cmF0aW9uIGZhaWxlZAotICAg
ICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAgIH0KLSAgICAgIGVsc2UgewotICAgICAgICB0
ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgZG9uZSgpOwotICAgICAgICAgICAgfSwg
IkJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBzZXJ2aWNld29ya2VyIik7Ci0gICAgICB9Ci0gIDwv
c2NyaXB0PgotPC9ib2R5PgotCi08c2NyaXB0PgotICBmdW5jdGlvbiB0ZXN0X3NhbWVfb3JpZ2lu
KCl7Ci0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gInNlcnZpY2V3b3JrZXItc2FtZS1v
cmlnaW4iOwotICAgICAgbGV0IGV4cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6InNlcnZpY2V3b3Jr
ZXIiLCAic2l0ZSI6InNhbWUtb3JpZ2luIn07Ci0gICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRh
ZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtl
eSkKLSAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAu
dGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAg
ICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7
Ci0gICAgICB9KQotICAgIH0pCi0gIH0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc2hh
cmVkd29ya2VyLnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc2hhcmVk
d29ya2VyLnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1MDBmMTEwNTY3MjViMWMzZmQzNjJiYzNmOTEwNTM5OGIyMTRjYWIzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NoYXJl
ZHdvcmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDQgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCi0KLUZBSUwgVW50aXRsZWQgUmVmZXJlbmNlRXJyb3I6
IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9z
aGFyZWR3b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc2hhcmVkd29ya2Vy
LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDkwMTdjY2JiM2EyYjFiODc4ZDE1ZTQxOTlkNTljYWQyOWEyMjc3YS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9zaGFyZWR3b3JrZXIudGVudGF0
aXZlLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci0KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtdHJ6b3NAZ29vZ2xlLmNvbSIg
dGl0bGU9Ik1hY2llayBUcnpvcyI+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2hl
bHBlci5qcz48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLSAgLy8gVEVTVFMgLy8KLSAgaWYgKHdpbmRv
dy5Xb3JrZXIpIHsKLQotICAgICAgLy8gIFNhbWUtT3JpZ2luIHRlc3QKLSAgICAgIHZhciBzaGFy
ZWRXb3JrZXIgPSBuZXcgU2hhcmVkV29ya2VyKCcvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNl
cy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9c2hhcmVkd29ya2VyLXNhbWUtb3JpZ2luJyk7Ci0gICAg
ICBzaGFyZWRXb3JrZXIucG9ydC5zdGFydCgpOwotCi0gICAgICBzaGFyZWRXb3JrZXIub25lcnJv
ciA9IGZ1bmN0aW9uKCl7Ci0gICAgICAgIHRlc3Rfc2FtZV9vcmlnaW4oKTsKLSAgICAgIH0KLSAg
ICAgIHNoYXJlZFdvcmtlci5wb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
dGVzdF9zYW1lX29yaWdpbigpOwotICAgICAgfQotICAgICAgc2hhcmVkV29ya2VyLnBvcnQucG9z
dE1lc3NhZ2UoIlJlYWR5Iik7Ci0gICAgfQotCi0gIGZ1bmN0aW9uIHRlc3Rfc2FtZV9vcmlnaW4o
KXsKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICBsZXQga2V5ID0gInNoYXJlZHdvcmtlci1zYW1l
LW9yaWdpbiI7Ci0gICAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJzaGFyZWR3
b3JrZXIiLCAic2l0ZSI6InNhbWUtb3JpZ2luIn07Ci0KLSAgICAgICAgZmV0Y2goIi9mZXRjaC9z
ZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxl
PSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQot
ICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0
ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChl
ID0+IHJlamVjdChlKSk7Ci0gICAgICB9KQotICAgIH0sICJTYW1lLU9yaWdpbiBzaGFyZWR3b3Jr
ZXIiKQotICB9Ci08L3NjcmlwdD4KLTxib2R5PjwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3N0
eWxlLnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc3R5bGUudGVudGF0
aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhlOTY1MDE4OTZhYTYyZmNkZDEyMWUxYWIwNmI3MjM1M2NiYWQ5NjAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc3R5bGUudGVudGF0aXZlLmh0
dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNP
TEUgTUVTU0FHRTogRGlkIG5vdCBwYXJzZSBzdHlsZXNoZWV0IGF0ICdodHRwczovL2xvY2FsaG9z
dDo5NDQzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxl
PXN0eWxlLXNhbWUtb3JpZ2luJyBiZWNhdXNlIG5vbiBDU1MgTUlNRSB0eXBlcyBhcmUgbm90IGFs
bG93ZWQgaW4gc3RyaWN0IG1vZGUuCi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNv
cmQtaGVhZGVyLnB5P2ZpbGU9c3R5bGUtc2FtZS1zaXRlCi1CbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0Ojk0NDMvZmV0Y2gvc2Vj
LW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9c3R5bGUtY3Jvc3Mtc2l0
ZQotCi1GQUlMIFNhbWUtT3JpZ2luIHN0eWxlIGFzc2VydF9ub3RfZXF1YWxzOiBFbXB0eSBTZWMt
TWV0YWRhdGEgaGVhZGVyLiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBTYW1lLVNpdGUg
c3R5bGUgYXNzZXJ0X2VxdWFsczogZGVzdGluYXRpb24gZXhwZWN0ZWQgKHN0cmluZykgInN0eWxl
IiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBDcm9zcy1TaXRlIHN0eWxlIGFz
c2VydF9lcXVhbHM6IGRlc3RpbmF0aW9uIGV4cGVjdGVkIChzdHJpbmcpICJzdHlsZSIgYnV0IGdv
dCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc3R5bGUudGVudGF0
aXZlLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc3R5bGUudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MDlkNTc2NGYwOGNhNWIzMjQyNjkyZjRi
ZGQ5NGYyYjM2NDQ4MWIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
c2VjLW1ldGFkYXRhL3N0eWxlLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDcwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibXRyem9zQGdvb2dsZS5jb20iIHRpdGxlPSJNYWNpZWsgVHJ6b3MiPgotPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0v
ZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci08Ym9keT48
L2JvZHk+Ci08c2NyaXB0PgotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAgIGxldCBrZXkgPSAic3R5bGUtc2Ft
ZS1vcmlnaW4iOwotCi0gICAgICBsZXQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsn
KTsKLSAgICAgIGUucmVsID0gInN0eWxlc2hlZXQiOwotICAgICAgZS5ocmVmID0gImh0dHBzOi8v
e3tob3N0fX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2Vz
L3JlY29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5OwotICAgICAgZS5vbmxvYWQgPSBlID0+IHsK
LSAgICAgICAgbGV0IGV4cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6InN0eWxlIiwgInNpdGUiOiJz
YW1lLW9yaWdpbiJ9OwotICAgICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJj
ZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAg
ICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAgLnRoZW4odGV4
dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAgLnRo
ZW4oXyA9PiByZXNvbHZlKCkpCi0gICAgICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsKLSAg
ICAgIH07Ci0KLSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7Ci0gICAgfSkKLSAg
fSwgIlNhbWUtT3JpZ2luIHN0eWxlIik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0g
InN0eWxlLXNhbWUtc2l0ZSI7Ci0KLSAgICAgIGxldCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnbGluaycpOwotICAgICAgZS5yZWwgPSAic3R5bGVzaGVldCI7Ci0gICAgICBlLmhyZWYgPSAi
aHR0cHM6Ly97e2hvc3RzW11bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1l
dGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9IiArIGtleTsKLSAgICAgIGUu
b25sb2FkID0gZSA9PiB7Ci0gICAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJz
dHlsZSIsICJzaXRlIjoic2FtZS1zaXRlIn07Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1l
dGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsg
a2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAg
ICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkK
LSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiBy
ZWplY3QoZSkpOwotICAgICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChl
KTsKLSAgICB9KQotICB9LCAiU2FtZS1TaXRlIHN0eWxlIik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQg
PT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAg
ICBsZXQga2V5ID0gInN0eWxlLWNyb3NzLXNpdGUiOwotCi0gICAgICBsZXQgZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLSAgICAgIGUucmVsID0gInN0eWxlc2hlZXQiOwotICAg
ICAgZS5ocmVmID0gImh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVsw
XX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIg
KyBrZXk7Ci0gICAgICBlLm9ubG9hZCA9IGUgPT4gewotICAgICAgICBsZXQgZXhwZWN0ZWQgPSB7
ImRlc3RpbmF0aW9uIjoic3R5bGUiLCAic2l0ZSI6ImNyb3NzLXNpdGUifTsKLSAgICAgICAgZmV0
Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmll
dmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9u
c2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHMo
dGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAg
ICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotCi0gICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0gIH0sICJDcm9zcy1TaXRlIHN0eWxlIik7Ci08
L3NjcmlwdD4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvdHJhY2sudGVudGF0aXZlLmh0
dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS90cmFjay50ZW50YXRpdmUuaHR0cHMuc3ViLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGJhZTZjZjMzN2I5YTE0
Yjk4ZTQwNTEzMWQwYmU1NzI1NmY0YTdmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3NlYy1tZXRhZGF0YS90cmFjay50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi0KLUhhcm5lc3MgRXJyb3IgKFRJ
TUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIFNhbWUtT3JpZ2luIHRyYWNrIFRlc3Qg
dGltZWQgb3V0Ci1OT1RSVU4gU2FtZS1TaXRlIHRyYWNrCi1OT1RSVU4gQ3Jvc3MtU2l0ZSB0cmFj
awotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3NlYy1tZXRhZGF0YS90cmFjay50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRh
ZGF0YS90cmFjay50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU4OWQ0NzQ1ZmYyZGIyMzRlM2U0OWVlMjhkZDhhZjE1YWNiYzk3MzEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvdHJhY2sudGVu
dGF0aXZlLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci0KLTxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtdHJ6b3NAZ29vZ2xlLmNv
bSIgdGl0bGU9Ik1hY2llayBUcnpvcyI+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2Vz
L2hlbHBlci5qcz48L3NjcmlwdD4KLTxib2R5PgotPC9ib2R5PgotPHNjcmlwdD4KLSAgZnVuY3Rp
b24gY3JlYXRlVmlkZW9FbGVtZW50KCkgewotICAgIGxldCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3ZpZGVvJyk7Ci0gICAgZWwuc3JjID0gIi9tZWRpYS9tb3ZpZV81Lm1wNCI7Ci0gICAg
ZWwuc2V0QXR0cmlidXRlKCJjb250cm9scyIsICIiKTsKLSAgICBlbC5zZXRBdHRyaWJ1dGUoImNy
b3Nzb3JpZ2luIiwgIiIpOwotICAgIHJldHVybiBlbDsKLSAgfQotCi0gIGZ1bmN0aW9uIGNyZWF0
ZVRyYWNrKCkgewotICAgIGxldCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyYWNrIik7
Ci0gICAgZWwuc2V0QXR0cmlidXRlKCJkZWZhdWx0IiwgIiIpOwotICAgIGVsLnNldEF0dHJpYnV0
ZSgia2luZCIsICJjYXB0aW9ucyIpOwotICAgIGVsLnNldEF0dHJpYnV0ZSgic3JjbGFuZyIsICJl
biIpOwotICAgIHJldHVybiBlbDsKLSAgfQotCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0IHZpZGVv
ID0gY3JlYXRlVmlkZW9FbGVtZW50KCk7Ci0gICAgICBsZXQgZWwgPSBjcmVhdGVUcmFjaygpOwot
ICAgICAgZWwuc3JjID0gImh0dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11bMF19fS9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT10cmFjay1zYW1l
LW9yaWdpbiI7Ci0gICAgICBlbC5vbmxvYWQgPSB0LnN0ZXBfZnVuYyhfID0+IHsKLSAgICAgICAg
ZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoidHJhY2siLCAic2l0ZSI6InNhbWUtb3JpZ2luIn07
Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVh
ZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT10cmFjay1zYW1lLW9yaWdpbiIpCi0gICAgICAgICAg
ICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAgICAudGhlbih0
ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAg
IC50aGVuKF8gPT4gcmVzb2x2ZSgpKTsKLSAgICAgIH0pOwotICAgICAgdmlkZW8uYXBwZW5kQ2hp
bGQoZWwpOwotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7Ci0gICAgfSk7
Ci0gIH0sICJTYW1lLU9yaWdpbiB0cmFjayIpOwotCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0IHZp
ZGVvID0gY3JlYXRlVmlkZW9FbGVtZW50KCk7Ci0gICAgICBsZXQgZWwgPSBjcmVhdGVUcmFjaygp
OwotICAgICAgZWwuc3JjID0gImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBz
XVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxl
PXRyYWNrLXNhbWUtc2l0ZSI7Ci0gICAgICBlbC5vbmxvYWQgPSB0LnN0ZXBfZnVuYyhfID0+IHsK
LSAgICAgICAgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoidHJhY2siLCAic2l0ZSI6InNhbWUt
c2l0ZSJ9OwotICAgICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVj
b3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9dHJhY2stc2FtZS1zaXRlIikKLSAgICAg
ICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAgIC50
aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAg
ICAgICAgLnRoZW4ocmVzb2x2ZSkKLSAgICAgICAgICAgIC5jYXRjaChyZWplY3QpOwotCi0gICAg
ICB9KTsKLSAgICAgIHZpZGVvLmFwcGVuZENoaWxkKGVsKTsKLSAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQodmlkZW8pOwotICAgIH0pOwotICB9LCAiU2FtZS1TaXRlIHRyYWNrIik7Ci0K
LSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7Ci0gICAgICBsZXQgdmlkZW8gPSBjcmVhdGVWaWRlb0VsZW1lbnQoKTsKLSAg
ICAgIGxldCBlbCA9IGNyZWF0ZVRyYWNrKCk7Ci0gICAgICBlbC5zcmMgPSAiaHR0cHM6Ly97e2hv
c3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jl
c291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9dHJhY2stY3Jvc3Mtc2l0ZSI7Ci0gICAgICBl
bC5vbmxvYWQgPSB0LnN0ZXBfZnVuYyhfID0+IHsKLSAgICAgICAgZXhwZWN0ZWQgPSB7ImRlc3Rp
bmF0aW9uIjoidHJhY2siLCAic2l0ZSI6ImNyb3NzLXNpdGUifTsKLSAgICAgICAgZmV0Y2goIi9m
ZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1
ZSZmaWxlPXRyYWNrLWNyb3NzLXNpdGUiKQotICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4g
cmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVy
X2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAgICAudGhlbihyZXNvbHZlKQotICAg
ICAgICAgICAgLmNhdGNoKHJlamVjdCk7Ci0gICAgICB9KTsKLSAgICAgIHZpZGVvLmFwcGVuZENo
aWxkKGVsKTsKLSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOwotICAgIH0p
OwotICB9LCAiQ3Jvc3MtU2l0ZSB0cmFjayIpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmYjllZWIxMjNmZGRmYTcwZGRjNDgzYzA3NDY4NGU2YzgyNzllMDk5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEv
UkVBRE1FLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zZWMtbWV0YWRhdGEvZW1iZWQudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEv
ZmV0Y2gudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvZm9udC50ZW50YXRpdmUuaHR0
cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3NlYy1tZXRhZGF0YS9pZnJhbWUudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRh
dGEvaW1nLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL29iamVjdC50ZW50YXRpdmUu
aHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXBvcnQudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0
YWRhdGEvcmVwb3J0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbC5zdWIuaGVhZGVycwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRh
L3NjcmlwdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9zZXJ2aWNld29ya2VyLnRl
bnRhdGl2ZS5odHRwcy5zdWIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NoYXJlZHdvcmtlci50ZW50YXRpdmUuaHR0
cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3NlYy1tZXRhZGF0YS9zdHlsZS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YS90cmFjay50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS93aW5kb3ctb3Blbi50ZW50
YXRpdmUuaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS93b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1Yi5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9z
ZWMtbWV0YWRhdGEveHNsdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFk
YXRhL3dpbmRvdy1vcGVuLnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEv
d2luZG93LW9wZW4udGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQ2OGI4OTYzMWI0ZGQ3NDhjODdlNjJjZTQzMjI2NGM0NjRkNjE5
MWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEv
d2luZG93LW9wZW4udGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxMyArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6
Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRv
LW93bmVyLnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubm90
LXdlYi1wbGF0Zm9ybS50ZXN0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0
LXRvLW93bmVyLnB5Ci0KLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxs
Ci0KLUZBSUwgU2FtZS1vcmlnaW4gd2luZG93LCBmb3JjZWQgYXNzZXJ0X25vdF9lcXVhbHM6IEVt
cHR5IFNlYy1NZXRhZGF0YSBoZWFkZXIuIGdvdCBkaXNhbGxvd2VkIHZhbHVlICIiCi1USU1FT1VU
IFNhbWUtc2l0ZSB3aW5kb3csIGZvcmNlZCBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBDcm9zcy1z
aXRlIHdpbmRvdywgZm9yY2VkIFRlc3QgdGltZWQgb3V0Ci1GQUlMIFNhbWUtb3JpZ2luIHdpbmRv
dywgdXNlci1hY3RpdmF0ZWQgQ2FuJ3QgZmluZCB2YXJpYWJsZTogdGVzdF9kcml2ZXIKLUZBSUwg
U2FtZS1zaXRlIHdpbmRvdywgdXNlci1hY3RpdmF0ZWQgQ2FuJ3QgZmluZCB2YXJpYWJsZTogdGVz
dF9kcml2ZXIKLUZBSUwgQ3Jvc3Mtc2l0ZSB3aW5kb3csIHVzZXItYWN0aXZhdGVkIENhbid0IGZp
bmQgdmFyaWFibGU6IHRlc3RfZHJpdmVyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3dpbmRvdy1vcGVu
LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3dpbmRvdy1vcGVuLnRlbnRhdGl2ZS5o
dHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NkNjE5MGY5NDQ4
MTYyNThiMjk1NDZlZjg5ZWM1OTQ3ZmFhMDM1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS93aW5kb3ctb3Blbi50ZW50YXRpdmUuaHR0cHMuc3Vi
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGRyaXZlci12ZW5kb3IuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2Vj
LW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+
Ci0gIC8vIEZvcmNlZCBuYXZpZ2F0aW9uczoKLSAgYXN5bmNfdGVzdCh0ID0+IHsKLSAgICBsZXQg
dyA9IHdpbmRvdy5vcGVuKCJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0
Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Iik7Ci0gICAgdC5hZGRf
Y2xlYW51cChfID0+IHcuY2xvc2UoKSk7Ci0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCB0LnN0ZXBfZnVuYyhlID0+IHsKLSAgICAgIGlmIChlLnNvdXJjZSAhPSB3KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICAgIGFzc2VydF9oZWFkZXJfZXF1YWxzKGUuZGF0YSwgewotICAg
ICAgICAiY2F1c2UiOiAiZm9yY2VkIiwKLSAgICAgICAgImRlc3RpbmF0aW9uIjogImRvY3VtZW50
IiwKLSAgICAgICAgInNpdGUiOiAic2FtZS1vcmlnaW4iCi0gICAgICB9KTsKLSAgICAgIHQuZG9u
ZSgpOwotICAgIH0pKTsKLSAgfSwgIlNhbWUtb3JpZ2luIHdpbmRvdywgZm9yY2VkIik7Ci0KLSAg
YXN5bmNfdGVzdCh0ID0+IHsKLSAgICBsZXQgdyA9IHdpbmRvdy5vcGVuKCJodHRwczovL3t7aG9z
dHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3Vy
Y2VzL3Bvc3QtdG8tb3duZXIucHkiKTsKLSAgICB0LmFkZF9jbGVhbnVwKF8gPT4gdy5jbG9zZSgp
KTsKLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jKGUg
PT4gewotICAgICAgaWYgKGUuc291cmNlICE9IHcpCi0gICAgICAgIHJldHVybjsKLQotICAgICAg
YXNzZXJ0X2hlYWRlcl9lcXVhbHMoZS5kYXRhLCB7Ci0gICAgICAgICJjYXVzZSI6ICJmb3JjZWQi
LAotICAgICAgICAiZGVzdGluYXRpb24iOiAiZG9jdW1lbnQiLAotICAgICAgICAic2l0ZSI6ICJz
YW1lLXNpdGUiCi0gICAgICB9KTsKLSAgICAgIHQuZG9uZSgpOwotICAgIH0pKTsKLSAgfSwgIlNh
bWUtc2l0ZSB3aW5kb3csIGZvcmNlZCIpOwotCi0gIGFzeW5jX3Rlc3QodCA9PiB7Ci0gICAgbGV0
IHcgPSB3aW5kb3cub3BlbigiaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0
cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Iik7
Ci0gICAgdC5hZGRfY2xlYW51cChfID0+IHcuY2xvc2UoKSk7Ci0gICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhlID0+IHsKLSAgICAgIGlmIChlLnNvdXJj
ZSAhPSB3KQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIGFzc2VydF9oZWFkZXJfZXF1YWxzKGUu
ZGF0YSwgewotICAgICAgICAiY2F1c2UiOiAiZm9yY2VkIiwKLSAgICAgICAgImRlc3RpbmF0aW9u
IjogImRvY3VtZW50IiwKLSAgICAgICAgInNpdGUiOiAiY3Jvc3Mtc2l0ZSIKLSAgICAgIH0pOwot
ICAgICAgdC5kb25lKCk7Ci0gICAgfSkpOwotICB9LCAiQ3Jvc3Mtc2l0ZSB3aW5kb3csIGZvcmNl
ZCIpOwotCi0gIC8vIFVzZXItYWN0aXZhdGVkIG5hdmlnYXRpb25zOgotICBhc3luY190ZXN0KHQg
PT4gewotICAgIGxldCBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7Ci0gICAg
Yi5vbmNsaWNrID0gdC5zdGVwX2Z1bmMoXyA9PiB7Ci0gICAgICBsZXQgdyA9IHdpbmRvdy5vcGVu
KCJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRh
L3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Iik7Ci0gICAgICB0LmFkZF9jbGVhbnVwKF8gPT4g
dy5jbG9zZSgpKTsKLSAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5z
dGVwX2Z1bmMoZSA9PiB7Ci0gICAgICAgIGlmIChlLnNvdXJjZSAhPSB3KQotICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBhc3NlcnRfaGVhZGVyX2VxdWFscyhlLmRhdGEsIHsKLSAgICAgICAg
ICAiY2F1c2UiOiAidXNlci1hY3RpdmF0ZWQiLAotICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICJk
b2N1bWVudCIsCi0gICAgICAgICAgInNpdGUiOiAic2FtZS1vcmlnaW4iCi0gICAgICAgIH0pOwot
ICAgICAgICB0LmRvbmUoKTsKLSAgICAgIH0pKTsKLSAgICB9KTsKLSAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGIpOwotICAgIHRlc3RfZHJpdmVyLmNsaWNrKGIpOwotICB9LCAiU2FtZS1v
cmlnaW4gd2luZG93LCB1c2VyLWFjdGl2YXRlZCIpOwotCi0gIGFzeW5jX3Rlc3QodCA9PiB7Ci0g
ICAgbGV0IGIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKLSAgICBiLm9uY2xp
Y2sgPSB0LnN0ZXBfZnVuYyhfID0+IHsKLSAgICAgIGxldCB3ID0gd2luZG93Lm9wZW4oImh0dHBz
Oi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weSIpOwotICAgICAgdC5hZGRfY2xlYW51cChfID0+
IHcuY2xvc2UoKSk7Ci0gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQu
c3RlcF9mdW5jKGUgPT4gewotICAgICAgICBpZiAoZS5zb3VyY2UgIT0gdykKLSAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoZS5kYXRhLCB7Ci0gICAgICAg
ICAgImNhdXNlIjogInVzZXItYWN0aXZhdGVkIiwKLSAgICAgICAgICAiZGVzdGluYXRpb24iOiAi
ZG9jdW1lbnQiLAotICAgICAgICAgICJzaXRlIjogInNhbWUtc2l0ZSIKLSAgICAgICAgfSk7Ci0g
ICAgICAgIHQuZG9uZSgpOwotICAgICAgfSkpOwotICAgIH0pOwotICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoYik7Ci0gICAgdGVzdF9kcml2ZXIuY2xpY2soYik7Ci0gIH0sICJTYW1lLXNp
dGUgd2luZG93LCB1c2VyLWFjdGl2YXRlZCIpOwotCi0gIGFzeW5jX3Rlc3QodCA9PiB7Ci0gICAg
bGV0IGIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKLSAgICBiLm9uY2xpY2sg
PSB0LnN0ZXBfZnVuYyhfID0+IHsKLSAgICAgIGxldCB3ID0gd2luZG93Lm9wZW4oImh0dHBzOi8v
e3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weSIpOwotICAgICAgdC5hZGRfY2xlYW51cChfID0+
IHcuY2xvc2UoKSk7Ci0gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQu
c3RlcF9mdW5jKGUgPT4gewotICAgICAgICBpZiAoZS5zb3VyY2UgIT0gdykKLSAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoZS5kYXRhLCB7Ci0gICAgICAg
ICAgImNhdXNlIjogInVzZXItYWN0aXZhdGVkIiwKLSAgICAgICAgICAiZGVzdGluYXRpb24iOiAi
ZG9jdW1lbnQiLAotICAgICAgICAgICJzaXRlIjogImNyb3NzLXNpdGUiCi0gICAgICAgIH0pOwot
ICAgICAgICB0LmRvbmUoKTsKLSAgICAgIH0pKTsKLSAgICB9KTsKLSAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGIpOwotICAgIHRlc3RfZHJpdmVyLmNsaWNrKGIpOwotICB9LCAiQ3Jvc3Mt
c2l0ZSB3aW5kb3csIHVzZXItYWN0aXZhdGVkIik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFk
YXRhL3dvcmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3dvcmtl
ci50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzNkOTIyZTA3MTQzOGE2OWMwZDY3MjExYjI2YjQ0ZjE5YTcwOTZmMS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS93b3JrZXIudGVu
dGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotRkFJTCBTYW1lLU9yaWdpbiB3b3JrZXIgYXNzZXJ0X25vdF9lcXVhbHM6IEVtcHR5IFNl
Yy1NZXRhZGF0YSBoZWFkZXIuIGdvdCBkaXNhbGxvd2VkIHZhbHVlICIiCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1l
dGFkYXRhL3dvcmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS93b3JrZXIudGVu
dGF0aXZlLmh0dHBzLnN1Yi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZmY2
NmZjYzc4MTFkOWFhY2NlZDc5OWQ2NzA3ZjhmOWVkY2FmYTliLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3dvcmtlci50ZW50YXRpdmUuaHR0cHMu
c3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LQotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im10cnpvc0Bnb29nbGUuY29tIiB0aXRsZT0iTWFj
aWVrIFRyem9zIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwv
c2NyaXB0PgotPHNjcmlwdD4KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gIndvcmtlci1z
YW1lLW9yaWdpbiI7Ci0gICAgICBsZXQgdyA9IG5ldyBXb3JrZXIoIi9mZXRjaC9zZWMtbWV0YWRh
dGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5KTsKLSAgICAgIHcub25t
ZXNzYWdlID0gZSA9PiB7Ci0gICAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJ3
b3JrZXIiLCAic2l0ZSI6InNhbWUtb3JpZ2luIn07Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2Vj
LW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0i
ICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAg
ICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVk
KSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9
PiByZWplY3QoZSkpOwotICAgICAgfTsKLSAgICB9KTsKLSAgfSwgIlNhbWUtT3JpZ2luIHdvcmtl
ciIpOwotPC9zY3JpcHQ+Ci08Ym9keT48L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS94c2x0LnRl
bnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEveHNsdC50ZW50YXRpdmUuaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ2Yjk4
ZjlmZjY0NzMwNDZjYTg2NTZhNDBmY2JkOTAzMTI5YjI2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS94c2x0LnRlbnRhdGl2ZS5odHRwcy5zdWIt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IFVuc2FmZSBhdHRlbXB0IHRvIGxvYWQgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQz
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXhzbHQt
c2FtZS1zaXRlIGZyb20gb3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMuIERvbWFpbnMsIHBy
b3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KLQotQ09OU09MRSBNRVNTQUdFOiBVbnNhZmUg
YXR0ZW1wdCB0byBsb2FkIFVSTCBodHRwczovL3d3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Q6OTQ0
My9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT14c2x0
LWNyb3NzLXNpdGUgZnJvbSBvcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My4gRG9tYWlucywg
cHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgotCi0KLUZBSUwgU2FtZS1PcmlnaW4geHNs
dCBhc3NlcnRfbm90X2VxdWFsczogRW1wdHkgU2VjLU1ldGFkYXRhIGhlYWRlci4gZ290IGRpc2Fs
bG93ZWQgdmFsdWUgIiIKLUZBSUwgU2FtZS1zaXRlIHhzbHQgYXNzZXJ0X2VxdWFsczogZGVzdGlu
YXRpb24gZXhwZWN0ZWQgKHN0cmluZykgInhzbHQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkCi1GQUlMIENyb3NzLXNpdGUgeHNsdCBhc3NlcnRfZXF1YWxzOiBkZXN0aW5hdGlvbiBleHBl
Y3RlZCAoc3RyaW5nKSAieHNsdCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zZWMtbWV0YWRhdGEveHNsdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS94c2x0
LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGZmOTk2Njc5ZmY5MDBjZjNlM2ZlODIzODFlZjI5ZWE1ZjU4ODliNS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS94c2x0LnRlbnRhdGl2ZS5odHRw
cy5zdWIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotCi08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibXRyem9zQGdvb2dsZS5jb20iIHRpdGxlPSJN
YWNpZWsgVHJ6b3MiPgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAvLyBPcGVuIGEgd2luZG93IHdpdGggWE1MIGRvY3VtZW50
IHdoaWNoIGxvYWRzIHJlc291cmNlcyB2aWEgPD94bWwtc3R5bGVzaGVldC8+IHRhZwotICBsZXQg
dyA9IHdpbmRvdy5vcGVuKCJyZXNvdXJjZXMveHNsdC10ZXN0LnN1Yi54bWwiKTsKLSAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7Ci0gICAgaWYgKGUuc291
cmNlICE9IHcpCi0gICAgICByZXR1cm47Ci0KLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAg
ICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoieHNsdCIsICJzaXRlIjoic2FtZS1vcmln
aW4ifTsKLSAgICAgIHJldHVybiBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMv
cmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9eHNsdC1zYW1lLW9yaWdpbiIpCi0g
ICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50
aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKTsKLSAgICB9
LCAiU2FtZS1PcmlnaW4geHNsdCIpOwotCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAg
bGV0IGV4cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6InhzbHQiLCAic2l0ZSI6InNhbWUtc2l0ZSJ9
OwotICAgICAgcmV0dXJuIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNv
cmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT14c2x0LXNhbWUtc2l0ZSIpCi0gICAgICAg
ICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRl
eHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKTsKLSAgICB9LCAiU2Ft
ZS1zaXRlIHhzbHQiKTsKLQotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgIGxldCBleHBl
Y3RlZCA9IHsiZGVzdGluYXRpb24iOiJ4c2x0IiwgInNpdGUiOiJjcm9zcy1zaXRlIn07Ci0gICAg
ICByZXR1cm4gZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFk
ZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPXhzbHQtY3Jvc3Mtc2l0ZSIpCi0gICAgICAgICAgLnRo
ZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4g
YXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKTsKLSAgICB9LCAiQ3Jvc3Mtc2l0
ZSB4c2x0Iik7Ci0KLSAgICB3LmNsb3NlKCk7Ci0gIH0pOwotCi08L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3Rh
bGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUv
ZmV0Y2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NmIxMTEz
NDM0MjlmY2Y2OTYzM2YzOTdkNDM5ZmFmMTI2MDJmNDU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBTZWNvbmQgZmV0Y2ggcmV0
dXJucyBzYW1lIHJlc3BvbnNlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC5h
bnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZldGNoLmFueS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzZiMTExMzQzNDI5ZmNmNjk2MzNmMzk3ZDQzOWZhZjEyNjAyZjQ1NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC5hbnktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIFNlY29uZCBmZXRjaCByZXR1cm5zIHNhbWUgcmVzcG9uc2UK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZldGNoLmFueS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZh
bGlkYXRlL2ZldGNoLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2
NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZmV0
Y2guYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRl
L2ZldGNoLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC5hbnkuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzY4MmI5ZDJjMzE3NmVhZTg1ZmYyZjJhMzQxOTQ4YjM3YjhmNjc5OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3Rh
bGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC5hbnkuanMKQEAgLTAsMCArMSwzMiBAQAorLy8gTUVU
QTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPVRlc3RzIFN0YWxlIFdoaWxl
IFJldmFsaWRhdGUgaXMgZXhlY3V0ZWQgZm9yIGZldGNoIEFQSQorLy8gTUVUQTogc2NyaXB0PS9j
b21tb24vdXRpbHMuanMKKworZnVuY3Rpb24gd2FpdDI1bXModGVzdCkgeworICByZXR1cm4gbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgdGVzdC5zdGVwX3RpbWVvdXQoKCkgPT4geworICAg
ICAgcmVzb2x2ZSgpOworICAgIH0sIDI1KTsKKyAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChhc3lu
YyAodGVzdCkgPT4geworICB2YXIgcmVxdWVzdF90b2tlbiA9IHRva2VuKCk7CisKKyAgY29uc3Qg
cmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgcmVzb3VyY2VzL3N0YWxlLXNjcmlwdC5weT90b2tlbj1g
ICsgcmVxdWVzdF90b2tlbik7CisgIC8vIFdhaXQgdW50aWwgcmVzb3VyY2UgaXMgY29tcGxldGVs
eSBmZXRjaGVkIHRvIGFsbG93IGNhY2hpbmcgYmVmb3JlIG5leHQgZmV0Y2guCisgIGNvbnN0IGJv
ZHkgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7CisgIGNvbnN0IHJlc3BvbnNlMiA9IGF3YWl0IGZl
dGNoKGByZXNvdXJjZXMvc3RhbGUtc2NyaXB0LnB5P3Rva2VuPWAgKyByZXF1ZXN0X3Rva2VuKTsK
KworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdVbmlxdWUtSWQnKSwgcmVz
cG9uc2UyLmhlYWRlcnMuZ2V0KCdVbmlxdWUtSWQnKSk7CisgIGNvbnN0IGJvZHkyID0gYXdhaXQg
cmVzcG9uc2UyLnRleHQoKTsKKyAgYXNzZXJ0X2VxdWFscyhib2R5LCBib2R5Mik7CisKKyAgd2hp
bGUodHJ1ZSkgeworICAgIGNvbnN0IHJldmFsaWRhdGlvbl9jaGVjayA9IGF3YWl0IGZldGNoKGBy
ZXNvdXJjZXMvc3RhbGUtc2NyaXB0LnB5P3F1ZXJ5JnRva2VuPWAgKyByZXF1ZXN0X3Rva2VuKTsK
KyAgICBpZiAocmV2YWxpZGF0aW9uX2NoZWNrLmhlYWRlcnMuZ2V0KCdDb3VudCcpID09ICcyJykg
eworICAgICAgYnJlYWs7CisgICAgfQorICAgIGF3YWl0IHdhaXQyNW1zKHRlc3QpOworICB9Cit9
LCAnU2Vjb25kIGZldGNoIHJldHVybnMgc2FtZSByZXNwb25zZScpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGls
ZS1yZXZhbGlkYXRlL2ZldGNoLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlk
YXRlL2ZldGNoLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2YjExMTM0MzQy
OWZjZjY5NjMzZjM5N2Q0MzlmYWYxMjYwMmY0NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJl
dmFsaWRhdGUvZmV0Y2guYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgU2Vjb25kIGZldGNoIHJldHVybnMgc2FtZSByZXNwb25zZQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdo
aWxlLXJldmFsaWRhdGUvZmV0Y2guYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2Zl
dGNoLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYw
YTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZldGNo
LmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJl
ZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVz
dCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFs
aWRhdGUvZmV0Y2guaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjMjg3MDgwMTlmYTQ2NThhNDVlNjYzN2YwNDUwNzc1ODViYjA1
NjA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUt
cmV2YWxpZGF0ZS9mZXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+VGVzdHMgU3RhbGUg
V2hpbGUgUmV2YWxpZGF0ZSBpcyBleGVjdXRlZCBmb3IgZmV0Y2ggQVBJPC90aXRsZT4KLTxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB3YWl0MjVt
cyh0ZXN0KSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICB0ZXN0LnN0
ZXBfdGltZW91dCgoKSA9PiB7Ci0gICAgICByZXNvbHZlKCk7Ci0gICAgfSwgMjUpOwotICB9KTsK
LX0KLQotcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7Ci0gIHZhciByZXF1ZXN0X3Rva2Vu
ID0gdG9rZW4oKTsKLQotICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGByZXNvdXJjZXMv
c3RhbGUtc2NyaXB0LnB5P3Rva2VuPWAgKyByZXF1ZXN0X3Rva2VuKTsKLSAgLy8gV2FpdCB1bnRp
bCByZXNvdXJjZSBpcyBjb21wbGV0ZWx5IGZldGNoZWQgdG8gYWxsb3cgY2FjaGluZyBiZWZvcmUg
bmV4dCBmZXRjaC4KLSAgY29uc3QgYm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsKLSAgY29u
c3QgcmVzcG9uc2UyID0gYXdhaXQgZmV0Y2goYHJlc291cmNlcy9zdGFsZS1zY3JpcHQucHk/dG9r
ZW49YCArIHJlcXVlc3RfdG9rZW4pOwotCi0gIGFzc2VydF9lcXVhbHMocmVzcG9uc2UuaGVhZGVy
cy5nZXQoJ1VuaXF1ZS1JZCcpLCByZXNwb25zZTIuaGVhZGVycy5nZXQoJ1VuaXF1ZS1JZCcpKTsK
LSAgY29uc3QgYm9keTIgPSBhd2FpdCByZXNwb25zZTIudGV4dCgpOwotICBhc3NlcnRfZXF1YWxz
KGJvZHksIGJvZHkyKTsKLQotICB3aGlsZSh0cnVlKSB7Ci0gICAgY29uc3QgcmV2YWxpZGF0aW9u
X2NoZWNrID0gYXdhaXQgZmV0Y2goYHJlc291cmNlcy9zdGFsZS1zY3JpcHQucHk/cXVlcnkmdG9r
ZW49YCArIHJlcXVlc3RfdG9rZW4pOwotICAgIGlmIChyZXZhbGlkYXRpb25fY2hlY2suaGVhZGVy
cy5nZXQoJ0NvdW50JykgPT0gJzInKSB7Ci0gICAgICBicmVhazsKLSAgICB9Ci0gICAgYXdhaXQg
d2FpdDI1bXModGVzdCk7Ci0gIH0KLX0sICdTZWNvbmQgZmV0Y2ggcmV0dXJucyBzYW1lIHJlc3Bv
bnNlJyk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1v
dmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE3YmEyMDgyZmFkYmNjN2U3OWYy
YTBmZTlmYjBmOTY5Y2RiMWUxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotCi1QQVNTIEZyYW1lIHJlbW92YWwgc2hvdWxk
IGNhbmNlbCBpdHMgcmV2YWxpZGF0aW9ucwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUv
ZnJhbWUtcmVtb3ZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E0MGVhZjQ4OTA3NDgxZTU5M2I3ZjMzY2Rl
MjE2YjMzYzU3ZjZjYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0
YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08
dGl0bGU+VGVzdCB0aGF0IGZyYW1lIHJlbW92YWwgY2FuY2VscyBpdHMgcmV2YWxpZGF0aW9uczwv
dGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiB3YWl0MjVtcyh0ZXN0KSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKLSAgICB0ZXN0LnN0ZXBfdGltZW91dCgoKSA9PiB7Ci0gICAgICByZXNvbHZlKCk7
Ci0gICAgfSwgMjUpOwotICB9KTsKLX0KLQotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHZh
ciByZXF1ZXN0X3Rva2VuID0gdG9rZW4oKTsKLSAgY29uc3QgdXJsID0gYHJlc291cmNlcy9zdGFs
ZS1mcmFtZS5weT90b2tlbj1gICsgcmVxdWVzdF90b2tlbgotCi0gIC8vIGZpcnN0IGZyYW1lIGxv
YWQKLSAgbGV0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gIGZy
YW1lLnNyYyA9IHVybDsKLSAgZnJhbWUub25sb2FkID0gKCkgPT4gewotICAgIC8vIHNlY29uZCBm
cmFtZSBsb2FkLCB0cmlnZ2VycyByZXZhbGlkYXRpb24KLSAgICBsZXQgZnJhbWUyID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAgZnJhbWUyLnNyYyA9IHVybDsKLSAgICBm
cmFtZTIub25sb2FkID0gYXN5bmMgKCkgPT4gewotICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAg
ICAgY29uc3QgcmV2YWxpZGF0aW9uX2NoZWNrID0gYXdhaXQgZmV0Y2goYHJlc291cmNlcy9zdGFs
ZS1mcmFtZS5weT9xdWVyeSZ0b2tlbj1gICsgcmVxdWVzdF90b2tlbik7Ci0gICAgICAgIGlmIChy
ZXZhbGlkYXRpb25fY2hlY2suaGVhZGVycy5nZXQoJ0NvdW50JykgPT0gJzEnKQotICAgICAgICAg
IGJyZWFrOwotICAgICAgICBhd2FpdCB3YWl0MjVtcyh0KTsKLSAgICAgIH0KLSAgICAgIC8vIHJl
bW92ZSBmcmFtZSwgY2FuY2VsaW5nIHJldmFsaWRhdGlvbgotICAgICAgZnJhbWUyLnJlbW92ZSgp
OwotICAgICAgLy8gdGhpcmQgZnJhbWUgbG9hZCwgdHJpZ2dlcnMgbmV3IHJldmFsaWRhdGlvbgot
ICAgICAgbGV0IGZyYW1lMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAg
ICAgZnJhbWUzLnNyYyA9IHVybDsKLSAgICAgIGZyYW1lMy5vbmxvYWQgPSBhc3luYyAoKSA9PiB7
Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgY29uc3QgcmV2YWxpZGF0aW9uX2No
ZWNrID0gYXdhaXQgZmV0Y2goYHJlc291cmNlcy9zdGFsZS1mcmFtZS5weT9xdWVyeSZ0b2tlbj1g
ICsgcmVxdWVzdF90b2tlbik7Ci0gICAgICAgICAgaWYgKHJldmFsaWRhdGlvbl9jaGVjay5oZWFk
ZXJzLmdldCgnQ291bnQnKSA9PSAnMicpCi0gICAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAg
ICBhd2FpdCB3YWl0MjVtcyh0KTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChmcmFtZTMpOwotICAgIH0KLSAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGZyYW1lMik7Ci0gIH0KLSAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7
Ci19LCAnRnJhbWUgcmVtb3ZhbCBzaG91bGQgY2FuY2VsIGl0cyByZXZhbGlkYXRpb25zJyk7Ci08
L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMv
c3RhbGUtZnJhbWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvcmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OWE1OWZhZTg3MmE0NjBjMGFlYzkyNzE4
ZjQzOWFhOWZkYjdkNWFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
c3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwzNSArMCwwIEBACi1pbXBvcnQgcmFuZG9tLCBzdHJpbmcsIGRhdGV0aW1lLCB0
aW1lCi0KLWRlZiBpZF90b2tlbigpOgotICAgbGV0dGVycyA9IHN0cmluZy5hc2NpaV9sb3dlcmNh
c2UKLSAgIHJldHVybiAnJy5qb2luKHJhbmRvbS5jaG9pY2UobGV0dGVycykgZm9yIGkgaW4gcmFu
Z2UoMjApKQotCi1kZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgaXNfcmV2YWxpZGF0
aW9uID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiSWYtTm9uZS1NYXRjaCIsIE5vbmUpCi0gICAgdG9r
ZW4gPSByZXF1ZXN0LkdFVC5maXJzdCgidG9rZW4iLCBOb25lKQotICAgIGlzX3F1ZXJ5ID0gcmVx
dWVzdC5HRVQuZmlyc3QoInF1ZXJ5IiwgTm9uZSkgIT0gTm9uZQotICAgIHdpdGggcmVxdWVzdC5z
ZXJ2ZXIuc3Rhc2gubG9jazoKLSAgICAgIHZhbHVlID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFr
ZSh0b2tlbikKLSAgICAgIGNvdW50ID0gMAotICAgICAgaWYgdmFsdWUgIT0gTm9uZToKLSAgICAg
ICAgY291bnQgPSBpbnQodmFsdWUpCi0gICAgICBpZiBpc19xdWVyeToKLSAgICAgICAgaWYgY291
bnQgPCAyOgotICAgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwgY291bnQp
Ci0gICAgICBlbHNlOgotICAgICAgICBpZiBpc19yZXZhbGlkYXRpb24gaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgY291bnQgPSBjb3VudCArIDEKLSAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gu
cHV0KHRva2VuLCBjb3VudCkKLQotICAgIGlmIGlzX3F1ZXJ5OgotICAgICAgaGVhZGVycyA9IFso
IkNvdW50IiwgY291bnQpLCAoIlRlc3QiLCBzdHIocmVxdWVzdC5yYXdfaGVhZGVycykpXQotICAg
ICAgY29udGVudCA9ICIiCi0gICAgICByZXR1cm4gMjAwLCBoZWFkZXJzLCBjb250ZW50Ci0gICAg
ZWxzZToKLSAgICAgIHVuaXF1ZV9pZCA9IGlkX3Rva2VuKCkKLSAgICAgIGhlYWRlcnMgPSBbKCJD
b250ZW50LVR5cGUiLCAidGV4dC9odG1sIiksCi0gICAgICAgICAgICAgICAgICgiQ2FjaGUtQ29u
dHJvbCIsICJwcml2YXRlLCBtYXgtYWdlPTAsIHN0YWxlLXdoaWxlLXJldmFsaWRhdGU9NjAiKSwK
LSAgICAgICAgICAgICAgICAgKCJFVGFnIiwgJyJzd3IiJyksCi0gICAgICAgICAgICAgICAgICgi
VW5pcXVlLUlkIiwgdW5pcXVlX2lkKV0KLSAgICAgIGNvbnRlbnQgPSAiPGJvZHk+e308L2JvZHk+
Ii5mb3JtYXQodW5pcXVlX2lkKQotICAgICAgcmV0dXJuIDIwMCwgaGVhZGVycywgY29udGVudApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3N0YWxlLWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFs
aWRhdGUvc3RhbGUtaW1hZ2UuaHRtbAppbmRleCBlNThlYjhmNTBmOTk5ODA5ZDBmYjExZmUzMTU5
YWVlNGU0MzBjMzAzLi5kODZiZGZiZGUyY2Y4NGJhNmVjNWI3NDEwYWRiYTA0OTdiMGJhM2NjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvc3RhbGUtaW1hZ2UuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJl
dmFsaWRhdGUvc3RhbGUtaW1hZ2UuaHRtbApAQCAtMTAsMTEgKzEwLDggQEAgVXNlIGEgY2hpbGQg
ZG9jdW1lbnQgdG8gbG9hZCB0aGUgc2Vjb25kIHN0YWxlIGltYWdlIGludG8gYmVjYXVzZQogYW4g
aW1hZ2UgbG9hZGVkIGludG8gdGhlIHNhbWUgZG9jdW1lbnQgd2lsbCBza2lwIGNhY2hlLWNvbnRy
b2wgaGVhZGVycy4KIFNlZTogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jdGhlLWxpc3Qt
b2YtYXZhaWxhYmxlLWltYWdlcwogLS0+Ci08ZGl2IGlkPSJmcmFtZXMiPgogPGlmcmFtZSBpZD0i
Y2hpbGQxIiBzcmNkb2M9IiI+PC9pZnJhbWU+CiA8aWZyYW1lIGlkPSJjaGlsZDIiIHNyY2RvYz0i
Ij48L2lmcmFtZT4KLTxpZnJhbWUgaWQ9ImNoaWxkMyIgc3JjZG9jPSIiPjwvaWZyYW1lPgotPC9k
aXY+CiA8c2NyaXB0PgogCiB2YXIgcmVxdWVzdF90b2tlbiA9IHRva2VuKCk7CkBAIC0zMiwxMCAr
MjksMTAgQEAgbGV0IGxvYWRJbWFnZSA9IGFzeW5jIChkb2N1bWVudCkgPT4gewogcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewogICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHdpbmRvdy5vbmxvYWQg
PSByKTsKIAotICBsZXQgaW1nMSA9IGF3YWl0IGxvYWRJbWFnZShjaGlsZDEuY29udGVudERvY3Vt
ZW50KTsKKyAgbGV0IGltZzEgPSBhd2FpdCBsb2FkSW1hZ2UoZG9jdW1lbnQpOwogICBhc3NlcnRf
ZXF1YWxzKGltZzEud2lkdGgsIDE2LCAiKGluaXRpYWwgdmVyc2lvbiBsb2FkZWQpIik7CiAKLSAg
bGV0IGltZzIgPSBhd2FpdCBsb2FkSW1hZ2UoY2hpbGQyLmNvbnRlbnREb2N1bWVudCk7CisgIGxl
dCBpbWcyID0gYXdhaXQgbG9hZEltYWdlKGNoaWxkMS5jb250ZW50RG9jdW1lbnQpOwogICBhc3Nl
cnRfZXF1YWxzKGltZzIud2lkdGgsIDE2LCAiKHN0YWxlIHZlcnNpb24gbG9hZGVkKSIpOwogCiAg
IC8vIFF1ZXJ5IHRoZSBzZXJ2ZXIgYWdhaW4gYW5kIGFnYWluLiBBdCBzb21lIHBvaW50IGl0IG11
c3QgaGF2ZSByZWNlaXZlZCB0aGUKQEAgLTQ5LDEwICs0Niw5IEBAIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKICAgICAgIGJyZWFrOwogICB9CiAKLSAgbGV0IGltZzMgPSBhd2FpdCBsb2FkSW1h
Z2UoY2hpbGQzLmNvbnRlbnREb2N1bWVudCk7CisgIGxldCBpbWczID0gYXdhaXQgbG9hZEltYWdl
KGNoaWxkMi5jb250ZW50RG9jdW1lbnQpOwogICBhc3NlcnRfZXF1YWxzKGltZzMud2lkdGgsIDI1
NiwgIihyZXZhbGlkYXRlZCB2ZXJzaW9uIGxvYWRlZCkiKTsKIAotICBmcmFtZXMuaW5uZXJIVE1M
ID0gIiI7CiB9LCAnQ2FjaGUgcmV0dXJucyBzdGFsZSByZXNvdXJjZScpOwogCiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxp
ZGF0ZS93M2MtaW1wb3J0LmxvZwppbmRleCBmMWRiNGExYjYwZTUxYzE1ZmQ5ZjkzMWU3ZmFkMmQ3
YWI1MGUzZDYyLi43NGU0ZmE5ZDRlZmE3NmM2MTA4ODNhYzVkNzk4OTg2MjE2YjNlZDE0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlk
YXRlL3czYy1pbXBvcnQubG9nCkBAIC0xNSw3ICsxNSw3IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZmV0Y2gtc3cuaHR0cHMuaHRtbAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZldGNoLmFueS5q
cwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3Rh
bGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXZhbGlkYXRlLW5vdC1ibG9ja2VkLWJ5LWNzcC5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13
aGlsZS1yZXZhbGlkYXRlL3N0YWxlLWNzcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3N0YWxlLWlt
YWdlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvTUVUQS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL01FVEEueW1sCmluZGV4IDNlYjg5M2Y0ZTY1YzNjMGU1NTY3Njg4
YmQzMDcyNWJjMjFlYjQwY2IuLmJiOGVkMDM5ZGMzOWVkNDEwNWRlMzA2MzAyMzk4YmUyNWUwMzdm
MDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvTUVUQS55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9NRVRBLnltbApAQCAtMSw1ICsxLDQgQEAKIHN1Z2dlc3RlZF9yZXZp
ZXdlcnM6CiAgIC0gamdyYWhhbQotICAtIEhleGNsZXMKICAgLSBzdGVwaGVubWNncnVlcgogICAt
IEx1a2VaaWVsaW5za2kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LmtleSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LmtleQppbmRleCAz
YTNlNDg3YTgzZGUwZjU2NzZlNDgxZTcyNDBiNjgxMDdiN2VlMzRlLi42YjI0MGU1MmIyMzdjMTdh
NDYwZWFlOTBmZjMxODYwZjdiNTU3ZGJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5rZXkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jYWNl
cnQua2V5CkBAIC0xLDMwICsxLDMwIEBACiAtLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtF
WS0tLS0tCi1NSUlGSERCT0Jna3Foa2lHOXcwQkJRMHdRVEFwQmdrcWhraUc5dzBCQlF3d0hBUUlS
dTdzY0krVjVaUUNBZ2dBCi1NQXdHQ0NxR1NJYjNEUUlKQlFBd0ZBWUlLb1pJaHZjTkF3Y0VDTkRw
am5jb01lazBCSUlFeU5kU0V6ZUdnRlRjCi0ybWRsanNwZzIwMjhFRnBENndBSzdYYmNvQThXSE44
MXFrSkE0YTRYUVFGZ3A0UklEN0RRYzk1RUxzNGF3TUx1Ci1Ta1kxOUY0VkVUclMwUnZqUFlJUWtj
T1FNdVBpY1ZHcm1IOWNEcHRYditJTTI0QnVCWGZqNjkyQjFaTmhFOEdkCi10SGxScFNpU2dhN2ph
MTYzNW1KNGxjWnNOSkhpRFZwRUkvYUl5K1h5L0c1aEhGY2crUzIydzc5N3R1S3hHMk1aCi1QRzlt
bkkxUy9QRjFLWmJiSkpaZVpFMnU2MEd4R1FZaXYzc09VT2Q0dE5acU1MdDJOem8wSnJqUUpDd3hG
Z0ZLCi03RXpSck40MUcySXVTdVNNU3JuOUNFQURidkIxaGdEV0VnYzh0VzRqRTI4ZDlOaG9pSStM
d3pxMzNXQk42dHlHCi1vSmx5MzZ3OEowVk5CcWhxUVNMendBUStDaFQyL2E1OUdKNFI1THZGQ1Ay
QXhER2thZzFpTjVGZFE5NmFJb0NBCi16QWV2SHRETm1Hdmo0NHFwa0FpUmxBQ2lGallYSzd2Ujla
aUIrQ0loZTBkeG05a1lDY2U5UzJEdTM1NDFhLy9QCi0yWXRmalNjVjNtbWEyMWUreFVNUHpnTlIr
cDhPOU9ZMkRTTWkzbTU2Y1hGZlI1ZW9LQUZ2QlVhbE9Cakp1OVdwCi1rOWRwTFpsYkU4cUJkOHBs
RWpucTNpZTMrRFNrV09hcThLSTRPZUJhMFp5RTZrUm5DKzJxWVEyYWFmR3EveTVkCi1vOFYvUDl4
cHZaSmZIL1FzRnBhUU05VFAzYmlJOHdkTjF3K3VVNVpYL2c5enBna1ZTQlI0alZXYmptU2RwY044
Ci1JZFZOSW9oTFpEdFNTR0RBK3l6RytULzN0bG9TN3VCM2RJUWdqcUlOY0pxcDNsNlc4Y2hialpv
ZTJXREFKSDZ1Ci1GK1Z0aENvODJkVGdEcG4reVBXc0tOVHlKYzlCNGJiQ2dIa1pDalgwRU5rc0p0
MjJPaTlCcTIrdUNVOVJkS1o4Ci1LeEwzN09scUF3THZEZzhYZ1Yvb3gzbHpjTW1TUi9ZMXhZNVhk
VVM0Y3JzWGNTWk10YWtFSGxZdDlVMnM4U3NICi1XcWRpVXJkVEM3WUpIUmVKL0Zob29FbzlUazRi
ZnhKdFNlT0pNdnpIa0UxNGpSVy9vdnkxdFlDcHlKSTdRK0R5Ci05eisraGkvRHVOdXNXb0hqdzNL
TE90UFNUMm8vWWR1QlBHQks4OHNQRVZVSVpYZEovSkxlMUNRR2IrMUl1S3h3Ci1YQURoTk1JR1cz
MWk1dW9hTTdlVmdSTTVvWjZGVWhLMzU2dkJnSlZ1MzlxU3RCdWM4ZHExOWx1MGlPZmd0VldZCi1X
RVFkN1B1d0puWnJjcHo2WWlQSFRydENEQXBQVDUzUm51WUpnUGxER2tXL3lVa2paazhRemNnNHll
czR6WmFUCi1aa3RzL0JpR3RRNGJnVGtPWnR3RTh4Q0krTlpUbmhXeUl5TWsrdXMyZlN2SkpHRXNu
QnRKOFBPNVh3b1p2SHhRCi1ETVA0TW9hWnQxL1RWNVRYTVllbC9zaHZwQ1dJYktGVkc5bnBrM2Jv
bUMyQXBVSmJObHJ2T0tyeFM1dmFWZDFpCi1iWlhpZ1laY3luRFlTc1k0Ukk4akszblNwMnVSOEM0
WUNhQlUxd3MwdWowWkF2WStTeHVZU1FURXMxZVFkMHJhCi1RTU9saG1VQXlkSGtQK2tUMnpVVFlh
NHVGbjJGL0tNaFEvcjJuQXRwZ0cvd1Q2Z1llT3o1Ymk4YkdsNitkZnZVCi05SFQ2SldGTk9LYUZW
VFZ2bHUzMlZHcGU0bmJVc3pWUWxnWEx1KzF0SEw0SzB5UmdMTDZuR3BMSDMxVTRNOVlWCi1UK2FK
R2pDQkVzSDU2aXBNTXkwS2UvTmZKeWZ3RytIRWtnOUVYSytyZSsxenNtNHZXSTVBcnU0ZUFwTjNJ
bStOCi1UbklFN3k1T1pDUUVZZ29sWm90enZQb1hEQWVzb2ZScHQyUm9BTU5JTC9wUlpaR0tHKzZi
b2pxMEFJcktpNnJwCi02eTJuRjNOalNqR0JNOEsyRklzajJPUmNoYkd6dzN6dTRRT0JzTWZMTzMy
L1NoZU1oYXl0cVBWdDNQa3NzNXhiCi1pdkJJMUZOVk1jR0pZQTlTKzRaRjNRPT0KK01JSUZIREJP
QmdrcWhraUc5dzBCQlEwd1FUQXBCZ2txaGtpRzl3MEJCUXd3SEFRSTY2Nm8rdG1CZ1hZQ0FnZ0EK
K01Bd0dDQ3FHU0liM0RRSUpCUUF3RkFZSUtvWklodmNOQXdjRUNJTFpnaDBLcEU5TUJJSUV5Q2dN
Q0NGa1NsRG0KK3dQRHBRMHJGQ3lReUFjZFA1SE1uTE0vVysyejVUWURxZGh0TGQrWHFEMmxHcXI0
bENkMzNDb0R1YlJ4Wm9VL3QKK1ZRMFR1RFFjZmhDejhIRzZuWE1wYWkyTkRyYzVPdDI5ZlZGZE1G
a2s4bmExN1JoTUtVYzZHYW4vVERpK0U0aTgKK2UyWWFrSjVKZ2FCVUZCZi9qeXFKZkxzWUplek5G
aG41K25Dc3orS2JaQm9odDJCK1cvcnEvRkFVendQR0orWWMKKzhKMmdWY3VSVWN0WHdTNDd5SThh
a2xYaElod21MODlJb2FkM3JweXBlRFgzdHU1VGVHMm52L2QxdVYzL0ZuZ0MKKy8xOGI0ZUp6NmRw
cWRUVk41VW9hM05qSGpZOGE4bWNCdldLQkw2bVd5MmRUVmw5Vzh3ZGd0Vmt2YzBQc0YzUHUKK29K
eTVvZVdoUDZkU3FBdkRIVERYYTM4cnQzSDlJUm1Uc0lYZDBWVk9JaEZqZzh0RFFUQlIvQ3lKS3A0
Sk84T3kKK3kvUkdac2RxY08wM3Vqb2xXT2xEWTRQaThlN0pwSEsrMWt5aEdPVGltaS85SnVXdGlT
cDQwZ0tEenlsTDFvYXcKK2hyMVVhUEhsL2tBL2dKZ3BEQktUK1BYUXQyR205cWplOStCL1U2emoz
MWJWZDByMVMwcU1sWHo4MXQvSytCY0gKK3UvNU5hWnNEWHlFOHJ1Znl4QUhQQktQeFhNWk9ORzd5
NkViRjg2OEVIVXJDQUtsRWxmSHRUbnZQL2s2OFYzZUgKK0duVnpzSWQ4ZWlyenV0clJkdWdQWFM3
UGcxVWoxQ0w2R2E4aWE5TWZFSWJTeC9nMkZROVNNbnVyWFZlV3YxcU0KK3VNTlpiUlpVa2tKRDhU
L1ZxQjdlenJJNTUzaVRxWkZHcjZmUTBkeVhCUzBtMXBoUFNrbVBjcUU0MnNZQ0laY3kKK0taR1ll
V1MxTGtGUm9UeG9Bd1JTOGNmMTROam1vRytBYnk0aXlCM1FpTURPbXN5bFpERjB2c1llVWJVSWt4
eXoKK0duU24yTGFWcFQzWmV1emlMbk5uM0phZUl5OTQ2akVnWkVUdkNEcnV1clY1QW9BYjlwWEcy
WHV5c2V2eC9BdVYKK093eno4MlBxRzMwOGtxNnhoY0dOSyt2OUZSYmFnSGFHWjVFRytpVlVUak4z
NDhOakpJcmlEVmRySDA2ZkJxZSsKK1VGRDlmQW5OL0tqNGRJSktVQ3VuNFVaaXoyakhlTm5BbWtM
d09abi9lVEsxTGJVcm1UMEorM2V1cGFGN3p6eG8KK0NlZG5BUnpIdkFpRVZBWDhXZDVEYXVJamN6
ZXNqZHJPOXlzN2RUTWVaZXlWNXQvczhXNjZUQjZ0VkRJUXdUSXAKKzNza2RoYncyMnpJMmxjckRo
WmJiWWh3TzlSNmQ0bGlFTlVaL1c1SVNMRFhuK3c4a3FxaDFxWG9FOHZSMGx4cHkKK096MjdrZzVE
QnF5VWZseDk5SHdMajhlcE1OcEd6ZXBNQWVGWFRkK2dMRktrN2dXdFUvNW1KSXRURWZCdThJaWgK
K0ZUMy9lZXNDbHh4ekJtMk1rMXZpdi9pS3NwVEg5MittS0V6Mm5nNmpPTld4SFhrZnV4TldlNHdY
K0ttTzdzN1AKK3BsenhuYnIyVGxOVGV3YnVZcXlLTXdlOUtPaVhvc2RmeFVrSnE2RDhSMGJmK0E2
OU0vZGdnTzdCVmR4TmZGNzEKKyt4ZGZxaldqbGwvNThsUTE1S2RseWNmVmxZajZpRHZLMUNocks0
VUgybXlHYm1oVGhJSXRlelBtOE9vNGkzSTYKK2lQazhucy9CcWZGSDJyYUU3Y3c3RzNVZzZjRUpy
YzhPRzRjMW1mQnVIUEFlRHJDV051N3RFcXdLckdHSlZBM2IKKzFHaUJvNzJ6NVhWT2lQN2xrdTcw
OFpFZnJ6aDJVR3VTdngwZ2JwVzNhTUROblZxMk82ZXVJcXVadWdlZXdja3EKKzJPeDlDMXZBRElB
OHVnUmRIYlNWUlFFMzNZaVUxUVMzTXZROVRZVy9adjdCdXVocmRrMlMxV0xScGtXdytxUjYKKzYy
RUZGQXc2d2pwSy92Y2lHdWNyVjhHeXliZHhQRnFaUE10UWtnaGFPUFVPODRRc3gyclpYQVIrNC9n
WnVIR20KK3YyTDN0WVNERW1RKzZrRXluV3RYL3c9PQogLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZB
VEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbQppbmRleCBlOWI1
ZmRhNTVjMzgwY2Y4ODUwZjRiOTQ1MjRiNjIwNTVjOWNhMzYwLi5mY2M5NzdiZTA1OWQ2ODgwMzI0
Y2M1MjdmOWExZGJiYWJmMzY1NzdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5wZW0KKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jYWNlcnQu
cGVtCkBAIC0xLDE2ICsxLDE2IEBACiAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSkFo
ekNDUDIrZ0F3SUJBZ0lERGV1Zk1BMEdDU3FHU0liM0RRRUJDd1VBTUIweEd6QVpCZ05WQkFNTUVu
ZGwKLVlpMXdiR0YwWm05eWJTMTBaWE4wY3pBZUZ3MHlNREV3TVRJd01ETXdORGRhRncweU1URXdN
VEl3TURNd05EZGEKK01JSkFoekNDUDIrZ0F3SUJBZ0lEQmxWRk1BMEdDU3FHU0liM0RRRUJDd1VB
TUIweEd6QVpCZ05WQkFNTUVuZGwKK1lpMXdiR0YwWm05eWJTMTBaWE4wY3pBZUZ3MHlNVEF4TVRJ
eE5qRXpNamhhRncweU1qQXhNVEl4TmpFek1qaGEKIE1CMHhHekFaQmdOVkJBTU1FbmRsWWkxd2JH
RjBabTl5YlMxMFpYTjBjekNDQVNJd0RRWUpLb1pJaHZjTkFRRUIKLUJRQURnZ0VQQURDQ0FRb0Nn
Z0VCQU9Ha1Avd0R1WmFCNUYrZHlETkQzeWVnUjArdUEvUHNQektjcEFMd2pyNkcKLUFrRVdTcU9w
MUg1cEx0VjBMK1Z1RkpNN2s5T2hpaHJYOWdRRjNORzJvVmlVbzhGWTB1OTBOUVVPRk9wS2Fpb2wK
LXBRRXRDMG5XN1JKTUU5aTZPcUhwOG9FVkVVbVROM3NnWG5tTHpuTy9FVnBianM3Z0VWOGJkdklV
ZWcyMjRJOUQKLUx5N1FjRjkwR0hXSGpwOVNJN0ViT0RoYkU3b0IwN2w1NS9kZFRzakNRRTMyS0Fk
ekxNTHJvd0l2Zk1IdEdJRzcKLURLdEV6TTRtdVhhSEpJbURKZGlYTGR2NjRabGJwd2p3cWhFek5C
ZGZHaFBuRXFDcURLMC9HcW41VmZTK1V6Y0QKLS91UXJNV3NvTC9vVXJ3VHp0azJ1SSt6Y0tZQ1hv
b0tsRXZ6QVFtTmxYbWNDQXdFQUFhT0NQYzR3Z2ozS01Bd0cKLUExVWRFd1FGTUFNQkFmOHdIUVlE
VlIwT0JCWUVGSUZ1d0JWQlFIY1BERG9laSsrbHRDTTBLdFFQTUVjR0ExVWQKLUl3UkFNRDZBRklG
dXdCVkJRSGNQRERvZWkrK2x0Q00wS3RRUG9TR2tIekFkTVJzd0dRWURWUVFEREJKM1pXSXQKLWNH
eGhkR1p2Y20wdGRHVnpkSE9DQXczcm56QUxCZ05WSFE4RUJBTUNBZ1F3Z2grYkJnTlZIUjRFZ2gr
U01JSWYKK0JRQURnZ0VQQURDQ0FRb0NnZ0VCQUtsQWMrNTJRa0ZHczN4alQwT2lUM3Q3SGFqcUZx
ZWxOcDV0b1ZaZkwvU0YKK2NYcXZobGR2V3psS3MzWFc0K09LbkdRUDFuQjdxbVpaOEdqU1kwMk5o
bzM2VnErWWR6bUhJSFlQWmNBbGZtTk8KKzZpWS9uY2E3QzlNRUlWSnZ4UXNHL0M1WlVUa0tKOTNp
RGVoR2F5NVlGOHdpSWIrazZjbWFWNWNEcytvQndtd3UKK1gzaHhzRGpPa2xVWUNWWTRXdmQ0ZlUv
elIvTGRJM1FaVEFsTmE0ZUx1N3YvOHowdm84dkc3VDhWUzA5bWM2ZWgKK0JqQjB4MUw3WEU2bis0
djNnR0U4UmJ4ZWFJcFpidjh2VldLMUxMTFEwMWdDT2lORmp1dUQzVmNCcW5aVGJWOS8KK3Y0TXFI
clBGZlptMU14ZXNCL2t5Yk1UdmU0WTZQalQxVTN6Z0pzclYwVWNDQXdFQUFhT0NQYzR3Z2ozS01B
d0cKK0ExVWRFd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGTnh0aldMZFZKaklZQmZDMDFHenYzTmJY
SkM1TUVjR0ExVWQKK0l3UkFNRDZBRk54dGpXTGRWSmpJWUJmQzAxR3p2M05iWEpDNW9TR2tIekFk
TVJzd0dRWURWUVFEREJKM1pXSXQKK2NHeGhkR1p2Y20wdGRHVnpkSE9DQXdaVlJUQUxCZ05WSFE4
RUJBTUNBZ1F3Z2grYkJnTlZIUjRFZ2grU01JSWYKIGpxQ0NING93RTRJUmQyVmlMWEJzWVhSbWIz
SnRMblJsYzNRd0Y0SVZiM0E0TG5kbFlpMXdiR0YwWm05eWJTNTAKIFpYTjBNQmVDRlc5d055NTNa
V0l0Y0d4aGRHWnZjbTB1ZEdWemREQVhnaFZ2Y0RrdWQyVmlMWEJzWVhSbWIzSnQKIExuUmxjM1F3
RjRJVmIzQTBMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBNQmVDRlc1dmRDMTNaV0l0Y0d4aGRHWnYK
QEAgLTMzNywxMSArMzM3LDExIEBAIGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ09uaHVMUzFzZG1V
dE5teGhaQzU0YmkwdGJqaHFObVJ6TlROc2QzZHIKIGNuRm9kakk0WVM1dWIzUXRkMlZpTFhCc1lY
Um1iM0p0TG5SbGMzU0NRWGh1TFMxdU9HbzJaSE0xTTJ4M2QydHkKIGNXaDJNamhoTG5odUxTMXVP
R28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjAKIGdrVjRiaTB0
YmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1NGJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTQK
LVlTNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3RFFZSktvWklodmNOQVFFTEJRQURnZ0VC
QUJWMEZkZDQKLW1CWWNwZXBJRHN3MFJnOWtWQTF4cnVzdUNCdkpCbUhFQWlCVDBCalB1UHFLbVZu
U0hlS0tOOXlQYitNb1pwVlYKLXA5c1lLMWRzdmc3azdQczluL2tVUjVEYVlYRlMwTDZDMTNhaTli
OEtTWGJmY0lwT1JqN2todHczcTJjN21YQlQKLVdKRzc3M3JsOWQ0SktnelVIeE14T3NzcVdnRnlW
REk2aVZJSUt0d1RjUGdrd2pJa3ptU0RYbXpLRzNVM3krRzEKLXV1c1g4T0lUejJZYm1FL2dQVU5F
d1VVYjh3RzJZdlN4bHFsNW9UbHRBbU8wQjdPTEt4VEo2eGI4MC8zTld0MTQKLUExcGU3NDJwN2Z6
MkVDUEJ4L3dIanZiRmYyamtNZ3RSeldLMStBOWFYQUpuWm5aaEtCZlcvTU5QNUo0QWlSblkKLXNz
VkUrcnA4cjhSZEhYZz0KK1lTNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3RFFZSktvWklo
dmNOQVFFTEJRQURnZ0VCQUhPR3AySmkKK3hLdnZxTnVjTDJncEZCSXBzVDhhYm1LQkxCbTRMc1NC
R0VGUHkxMmZEenRrV0JWVEVOL1dpeUhSTDkzUFBubjIKK1lGbjMvalN1QWdxMExrU3g4VkIvWG4y
Q1pnWTkrV3pMNCsrR042STZrWUF1dXZHNC9QNml3d0RDd1g3eTJjb0QKK0Q3NUU0V1ZWVGpFc0tH
MnZSaVZXemNjbWcvQlRtdlhRSlU4RFNQaHpQUXRVL0Q4cUhVSWUvTWNIbUVXOXN4cEcKK2t0SlNY
cUFlMFZudndQWGhKL3NjT2l5SmFYdkM4bVJqTTUwblVHbnkwbjlOeXdsdG0zb3hPQVZBWklhaFph
N2cKK0tNblJ5d29qTnFsa2NjWGVIQ2pIMXdYT2h6dXlRWCtNdnZCcXE5Njh0dElWL2hiVVhoK0Qv
U3U5TTBxUWNsYkEKKzA5dmRYZWxkK3JTeFA4cz0KIC0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3Qua2V5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5rZXkK
aW5kZXggOTU3ZGZiMjM0ZjhiOTBlYmI0MGExZmI0OGQ1ODYyMzg3NWYyZTAzZC4uYjY5ZWQyYTk5
OWQ2NWJkYjdhNDY4NTRjZGIwMWEwMzAxNzU2M2IwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0u
dGVzdC5rZXkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5rZXkKQEAgLTEsMjggKzEsMjggQEAKIC0t
LS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQotTUlJRXZnSUJBREFOQmdrcWhraUc5dzBCQVFFRkFB
U0NCS2d3Z2dTa0FnRUFBb0lCQVFDcnU4djBINUthMk5QRwotV1ZWNVkwaDlFUi85eW5DTExTbXkv
akhqY3ZZdHdOcEFmU2dIdW0xQ2JXemU5eUU3Yk5hUTlGWGJBMzNWM2NuaAotMGd6VXlPSzgxeXhj
VTVWa0tweU5KY1lGQi9wak9NQjY2clMyUURSMlBFckpUZHVoMXkzc1g2SmJLMWFBUThhYwotU25G
WE16MkwyOHN3bVhnbUZZbUN4V0hCOHhWc1BSNXhxSWF2NWNualF5VmZpN0JsY1pDVWFqRXh2dWdr
RXRqdAotY2tTWnpCS215TFlXSWpWY0VJd1VhYXBFeXRzMW1FSkwycVFIUm9FSFZza293MTJWdVBP
YW5JaHBCY21yRElSbAotcG5UaFp1SFpPL2FPZUtXRzlzS0ZWZkNPUkFVcnUrMy91ZFhSYkJMUUxt
cEJaaVdPOEYxRXVMTnFVaHNXeC9iRgotc245NjMwRVBBZ01CQUFFQ2dnRUFRYWQvTnFwbll2bW9K
UGw4T3ZjZy9HZHlvcFVsWjUveGhETzRJT3VQZ0RodAotZUNBaEVLdE9JQW96aUI1VXZ5SkIrWkxm
eStaTzBsZURXZWp5N05xTURJUDZ1cVZkeExpaHR6aU10dG13K1FQMgotV2tlbXBOSncvQTdhekpF
T2VaWUpRWWZpU3hhTGNHZjQ0MEYyaVU3V3BjUjJydkxOUTBvU2swTWd0NFJXV1ZWNAotRlU0QTlj
Z0o0KytLaEF0bEN5c2tERytab0ZFajRPOTNXWHFhTy9vRjhZLyttakQ3eG9Md201bzhVMUUwMEZa
UQotT1FrSjI2b2JMZk9RUmNiczNadExjcXNiWmw0NkR6bW1HOERkcGRzdDJZOGhrZU1QZkk4M2k0
eHUyYjV1ait3TwotU1pxd2NIbzRvUkdFUUVVajRXR25OOVpqVmE5QVdjRE5BWTYzL0Z2VDBRS0Jn
UURXT3dmWXpzZEczL1IzVFEwWAotN1ZxN3RnWUxEb1dWRlJzMk8xdmJFKy8rZjZ6UnlDbzg0SXZL
ZDRLRkcvbWxjWnI2T2RvNkgySFNuUWlSWDQvdwotTEdqRytwckFxbDkwSU9EWmxqZ1lYRUt1UWVz
ZUh6NmhIQUwvazlnS0hTT1NtR213NU1tT3c0VFV1SUkwK29jKwotNWVBclhqdXU5U1gyQUM5MzVp
cjN2WUVRbHdLQmdRRE5ONWp4SE9SR2R0SjkyWXIvcmtWVVNSaXI1LzdPaEJqegotczJLNjAvaFNI
YldmZWptV2dHcHFFRXA5cUhCWXVYR1B1T1JXUi9BMzdxcDYxdzNIaTMvV3A3bkpjam43c1VRSwot
OXBoWjhCbW1XMkZJdkMyMko4dWkzM2ZqWC9WYmJkNGloZEJvbmY2RzlmdnBaMWtrVS9uOGNvM2RS
ZFFrR056SQotSVE2a0pNVnFTUUtCZ1FDOGhqdzBqbHVOd24zM0VzWm4vUWR3MHhGa1g0WXNtT05X
aVV3ZmNkOHNQcDBPQzdFbgotMjQ4SlFMeUtlUURybUJzREF6QkpIOTdOSWtZczhFVFIzYkxqRUJ4
cFdrVWdBK0w3ZUJlclVGMlp6Z2FqZm1sMgotREJtVFlqNm5QOWRUSlc4MUxWRTJvbGJkZi9XTnU3
NlRHbVo0bzdld0Vxb3lYeDFtelJXWTZKcVF4d0tCZ1FEQwotMEovaGJTTUwvYXNQaStCWG54SHox
THlXSFZRWXF2Q2hFVStOdXNMRythczhyU1JVU3E0NjZDSS9MaE1STjJLbQotSk1pblcvMmdxM0t0
ME5Baytib3ZoZVJxWjRUQittTjA0T3A2bnVOS3VQOGV0SDNVcWV5NFB0cXFRS05FMjRVQQotVXZZ
cENxdmhaVTF6SXdoTjQyYXpEL0M2K1pwTmRrakp1QkFWSlU4LytRS0JnQWdyMzlzNjhadzhlc1B2
M0FtUAotN1F4K0Q5aGxlRDA3eG0zaUhEMEVVL1dLM0lXMlRxVU4yVnBMM2xwa3VjSDNNMHYxZG00
OStUM05RdzUyNE5KSwotbmZ5dGdDYStSRVJtbzh0L2VwSkc2ZFdaZ2VzVW5paVN2QWNrR3JpWmpj
c2dPRXhZeUhlN3Z1MWRIT0xlVTJTLwotTkRLUjdmcmdFVTdFaUd0TlFFYTh1Y0xECitNSUlFdmdJ
QkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLZ3dnZ1NrQWdFQUFvSUJBUURjd2hkemlFdjJXQWt2
CitLL3dwZWNuNUxSQXByYldSamFvdGFjWHZrdG94UzBhSzJmZjM0d2lWN0dyQnVjeHhVODFpM0xD
dWNuZDgyZEdUCis0dkhmelRLS2FiNS8rdnV0MUZOb0c1QkttR1laQ3BPbzZNWk9XQUpKNHpYWVFC
QUVlS3VyU2pnbHpPWFdtalNwCitBRXpNOVRxVUc2Nmxwb1NLNTh6djdnbmVEYmpEbkpoYktZWlF1
ck5PbTNQTE1kMGVwMy95eHF3cVZpYTFuT24rCit4YTRab0ZyV3dndVdES3gwOXloQktFVkRIWHRB
R2ZacDlFV0FUcXVFc3FGU29lTHF5UUR2ZmU1SGVmaTRkUG1ZCiszMk9pSkc0QXJTS2VneHlSZWtR
WjhFNHgzbW5sdDNwckM2blpGZXhMRzYwVU9peC9BTjNSaWZwSERleThacS9MCitwR3N5K05UN0Fn
TUJBQUVDZ2dFQkFKcmtPQTRoQUtOczY2ekVZTjQ5REtDZnBLcUpyazdkSmgxTkRNdG1yMTlNCis0
TWNGM3IxMzk0c3g0VW5oOG5kRmhHTXNVMjlpODBHUGwwUDdSUmh4WWxmSmtCYzk0NTc0empqS3Rq
Z1FxL28vCisrSkRZR21QWHptdEhWMzFPbmE1MWVJWHJ3bStMVDJ4K3NCb3dFckx3RVZUZ0EyOUk0
ZENRaWJPQ3dqdWlSeFEvCittbjJBNFE2ME9sbElSQ3dTRTMvdUE5K21VcGVNcDVqZ0pkK29OM3VU
NThUbWUvU1JOWHhPS2dDaWU4V1JVbnVlCitYL2NnaEtZU05tQXlEU2tiSjBLWTRvYXZiNVlSS1hO
cEF0MmhOVzlKc04wcWQzK2o2SloyMW9kaHlkRGJ0cVNxCitteGpQVFVGUU5GZUxWdkRUYVJZdyt6
SytJL25vWklybFFzUzZKUE5mWGtFQ2dZRUErbTNMOWpMZTJsejBTSm1HCitObkZ1WThyd3dZVkpt
NFRMaGpZRG1kbVliR2NZQ1BvOUNISEtoUjZaWHJtTnp4Y1h2d2FaazhaVHNwQVoyQnp3CisxQU01
Mm1oR1plalI3eVY1RkVDaCtVS3J4L0F1ZCtqbTBXaFB0d1lqaXh6OElobUdHODFvcll1ZXV4NTBI
VWNPCitRL0s1TnFvMWVzQkJDK1g1WWEycmIzalNoR0VDZ1lFQTRhdFJuNlA1RENqNHVnM1NTbFVO
SVMzZEp4YmUzUWhCCitsVGtDdFhVUUMrcCtWSVVJMG1WazZOZ040ZHJnVmlLT2xoek1LWURNdGlW
WTJYTFhRTlZQRUo0bmdNU0MxdXpyCit0R2VmTXVML1dScHN5c3h3ak4wYiswZkRWZVh0TTE2Q3RY
T3Bxbm9ZaTNYWC9SNmFJcVozelZpL3R0d0VPeTZHCitUZGduWk5jSlZ0c0NnWUFXNzB0SXB1d0Y3
NUZudkxldjhMOTlZQzZnYW9hTk9hSXlEbXhTQUwyVzMvSXhrRWxhCitwcUUzZzgvai92WmZ5dXVm
MFFqcm9iUTBuRUhocXZUYlZkaE1pbFE0TFJSYzVIK3NQU2NZWHVUQWtOeVFtc0hZCisxOGJGS2tq
RENzcUVqUFhkUWZpZVBEVXpTZHkwZWJkeXZaMzh4YVhVTWh0QzdiTGpJVGFjSk9LU3dRS0JnR2xK
Cisxa1ptYWI4cnFvaWNCRDVjR2trZHJlNGI5SlVwMGZkK1p1NGtsUDBLUmpERzlRdTg5T3pTU1Av
VWNCQ2dCT2l5Cit2T3FzUmxiQmJBZmdWZC9RNWhlNXduS0l2UWJyK1RqdGs5QlpLb3YzRVVVNVIx
WGhuN21JalBHWjJpYTZkTCtXCitIRllHcTBiK0QyendoemVkZFkzZ1YycElrc3pOOHltRXJUU1dR
Nnc3QW9HQkFJRUNCTXdFM1lMMFRHV1BkVTlBCitSVjNhNUc5c2x1bnFoVkdRQ3d2QmZXd2o2dElw
bGh0T0xBcDR5NDAwREhidzRKd2k1WitoRFF1OVB6TUdoaHd1CitxWkxNSlpKNEJBVWFWSG9FY3Vv
MXNhYjI1VUg2YTBwZEdmN0JnQ21qS2pQQUh0dnpNeWZ3ZktwanU3Wk9icHF4CitZZXQxRE1wdm1Q
bFgxa1pzRWgwNzJ6QnMKIC0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2Vi
LXBsYXRmb3JtLnRlc3QucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5wZW0KaW5kZXggNjFkN2U0ZDE4
OTI2NjUwMGVmYjM3OWRhOTYwZWFmYmIzOGFjYTUzMC4uZTc5MzIzZDY2ZmQ3ZTZkNDdhNzk1MWEy
MDFhYmExYjlmNGFhOTYyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5wZW0KKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93
ZWItcGxhdGZvcm0udGVzdC5wZW0KQEAgLTEsNDMgKzEsNDMgQEAKIENlcnRpZmljYXRlOgogICAg
IERhdGE6CiAgICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjog
OTEyMjg4ICgweGRlYmEwKQorICAgICAgICBTZXJpYWwgTnVtYmVyOiA0MTUwNDYgKDB4NjU1NDYp
CiAgICAgICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCiAg
ICAgICAgIElzc3VlcjogQ049d2ViLXBsYXRmb3JtLXRlc3RzCiAgICAgICAgIFZhbGlkaXR5Ci0g
ICAgICAgICAgICBOb3QgQmVmb3JlOiBPY3QgMTIgMDA6MzA6NDcgMjAyMCBHTVQKLSAgICAgICAg
ICAgIE5vdCBBZnRlciA6IE9jdCAxMiAwMDozMDo0NyAyMDIxIEdNVAorICAgICAgICAgICAgTm90
IEJlZm9yZTogSmFuIDEyIDE2OjEzOjI4IDIwMjEgR01UCisgICAgICAgICAgICBOb3QgQWZ0ZXIg
OiBKYW4gMTIgMTY6MTM6MjggMjAyMiBHTVQKICAgICAgICAgU3ViamVjdDogQ049d2ViLXBsYXRm
b3JtLnRlc3QKICAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86CiAgICAgICAgICAgICBQ
dWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgogICAgICAgICAgICAgICAgIFJTQSBQ
dWJsaWMtS2V5OiAoMjA0OCBiaXQpCiAgICAgICAgICAgICAgICAgTW9kdWx1czoKLSAgICAgICAg
ICAgICAgICAgICAgMDA6YWI6YmI6Y2I6ZjQ6MWY6OTI6OWE6ZDg6ZDM6YzY6NTk6NTU6Nzk6NjM6
Ci0gICAgICAgICAgICAgICAgICAgIDQ4OjdkOjExOjFmOmZkOmNhOjcwOjhiOjJkOjI5OmIyOmZl
OjMxOmUzOjcyOgotICAgICAgICAgICAgICAgICAgICBmNjoyZDpjMDpkYTo0MDo3ZDoyODowNzpi
YTo2ZDo0Mjo2ZDo2YzpkZTpmNzoKLSAgICAgICAgICAgICAgICAgICAgMjE6M2I6NmM6ZDY6OTA6
ZjQ6NTU6ZGI6MDM6N2Q6ZDU6ZGQ6Yzk6ZTE6ZDI6Ci0gICAgICAgICAgICAgICAgICAgIDBjOmQ0
OmM4OmUyOmJjOmQ3OjJjOjVjOjUzOjk1OjY0OjJhOjljOjhkOjI1OgotICAgICAgICAgICAgICAg
ICAgICBjNjowNTowNzpmYTo2MzozODpjMDo3YTplYTpiNDpiNjo0MDozNDo3NjozYzoKLSAgICAg
ICAgICAgICAgICAgICAgNGE6Yzk6NGQ6ZGI6YTE6ZDc6MmQ6ZWM6NWY6YTI6NWI6MmI6NTY6ODA6
NDM6Ci0gICAgICAgICAgICAgICAgICAgIGM2OjljOjRhOjcxOjU3OjMzOjNkOjhiOmRiOmNiOjMw
Ojk5Ojc4OjI2OjE1OgotICAgICAgICAgICAgICAgICAgICA4OTo4MjpjNTo2MTpjMTpmMzoxNTo2
YzozZDoxZTo3MTphODo4NjphZjplNToKLSAgICAgICAgICAgICAgICAgICAgYzk6ZTM6NDM6MjU6
NWY6OGI6YjA6NjU6NzE6OTA6OTQ6NmE6MzE6MzE6YmU6Ci0gICAgICAgICAgICAgICAgICAgIGU4
OjI0OjEyOmQ4OmVkOjcyOjQ0Ojk5OmNjOjEyOmE2OmM4OmI2OjE2OjIyOgotICAgICAgICAgICAg
ICAgICAgICAzNTo1YzoxMDo4YzoxNDo2OTphYTo0NDpjYTpkYjozNTo5ODo0Mjo0YjpkYToKLSAg
ICAgICAgICAgICAgICAgICAgYTQ6MDc6NDY6ODE6MDc6NTY6Yzk6Mjg6YzM6NWQ6OTU6Yjg6ZjM6
OWE6OWM6Ci0gICAgICAgICAgICAgICAgICAgIDg4OjY5OjA1OmM5OmFiOjBjOjg0OjY1OmE2Ojc0
OmUxOjY2OmUxOmQ5OjNiOgotICAgICAgICAgICAgICAgICAgICBmNjo4ZTo3ODphNTo4NjpmNjpj
Mjo4NTo1NTpmMDo4ZTo0NDowNToyYjpiYjoKLSAgICAgICAgICAgICAgICAgICAgZWQ6ZmY6Yjk6
ZDU6ZDE6NmM6MTI6ZDA6MmU6NmE6NDE6NjY6MjU6OGU6ZjA6Ci0gICAgICAgICAgICAgICAgICAg
IDVkOjQ0OmI4OmIzOjZhOjUyOjFiOjE2OmM3OmY2OmM1OmIyOjdmOjdhOmRmOgotICAgICAgICAg
ICAgICAgICAgICA0MTowZgorICAgICAgICAgICAgICAgICAgICAwMDpkYzpjMjoxNzo3Mzo4ODo0
YjpmNjo1ODowOToyZjoyYjpmYzoyOTo3OToKKyAgICAgICAgICAgICAgICAgICAgYzk6Zjk6MmQ6
MTA6Mjk6YWQ6YjU6OTE6OGQ6YWE6MmQ6Njk6YzU6ZWY6OTI6CisgICAgICAgICAgICAgICAgICAg
IGRhOjMxOjRiOjQ2OjhhOmQ5OmY3OmY3OmUzOjA4Ojk1OmVjOjZhOmMxOmI5OgorICAgICAgICAg
ICAgICAgICAgICBjYzo3MTo1MzpjZDo2MjpkYzpiMDphZTo3Mjo3Nzo3YzpkOTpkMTo5MzplMjoK
KyAgICAgICAgICAgICAgICAgICAgZjE6ZGY6Y2Q6MzI6OGE6Njk6YmU6N2Y6ZmE6ZmI6YWQ6ZDQ6
NTM6Njg6MWI6CisgICAgICAgICAgICAgICAgICAgIDkwOjRhOjk4OjY2OjE5OjBhOjkzOmE4OmU4
OmM2OjRlOjU4OjAyOjQ5OmUzOgorICAgICAgICAgICAgICAgICAgICAzNTpkODo0MDoxMDowNDo3
ODphYjphYjo0YTozODoyNTpjYzplNTpkNjo5YToKKyAgICAgICAgICAgICAgICAgICAgMzQ6YTk6
MDA6NGM6Y2M6ZjU6M2E6OTQ6MWI6YWU6YTU6YTY6ODQ6OGE6ZTc6CisgICAgICAgICAgICAgICAg
ICAgIGNjOmVmOmVlOjA5OmRlOjBkOmI4OmMzOjljOjk4OjViOjI5Ojg2OjUwOmJhOgorICAgICAg
ICAgICAgICAgICAgICBiMzo0ZTo5Yjo3MzpjYjozMTpkZDoxZTphNzo3ZjpmMjpjNjphYzoyYTo1
NjoKKyAgICAgICAgICAgICAgICAgICAgMjY6YjU6OWM6ZTk6ZmU6YzU6YWU6MTk6YTA6NWE6ZDY6
YzI6MGI6OTY6MGM6CisgICAgICAgICAgICAgICAgICAgIGFjOjc0OmY3OjI4OjQxOjI4OjQ1OjQz
OjFkOjdiOjQwOjE5OmY2OjY5OmY0OgorICAgICAgICAgICAgICAgICAgICA0NTo4MDo0ZTphYjo4
NDpiMjphMTo1MjphMTplMjplYTpjOTowMDplZjo3ZDoKKyAgICAgICAgICAgICAgICAgICAgZWU6
NDc6Nzk6Zjg6Yjg6NzQ6Zjk6OTg6ZGY6NjM6YTI6MjQ6NmU6MDA6YWQ6CisgICAgICAgICAgICAg
ICAgICAgIDIyOjllOjgzOjFjOjkxOjdhOjQ0OjE5OmYwOjRlOjMxOmRlOjY5OmU1OmI3OgorICAg
ICAgICAgICAgICAgICAgICA3YTo2YjowYjphOTpkOToxNTplYzo0YjoxYjphZDoxNDozYToyYzo3
ZjowMDoKKyAgICAgICAgICAgICAgICAgICAgZGQ6ZDE6ODk6ZmE6NDc6MGQ6ZWM6YmM6NjY6YWY6
Y2I6YTQ6NmI6MzI6Zjg6CisgICAgICAgICAgICAgICAgICAgIGQ0OmZiCiAgICAgICAgICAgICAg
ICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQogICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoK
ICAgICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czogCiAgICAgICAgICAgICAgICAg
Q0E6RkFMU0UKICAgICAgICAgICAgIFg1MDl2MyBTdWJqZWN0IEtleSBJZGVudGlmaWVyOiAKLSAg
ICAgICAgICAgICAgICA4QzpENDo0ODowMToxQjpGRjo5Rjo0MjowRDo4MTpEMjowNToyRDo0NzpD
QTo4RTpGNDpEQjoxODowNworICAgICAgICAgICAgICAgIENEOkYxOkM4OjYyOkQxOkVDOkE1OjNE
OkU0OjFBOjkxOjcwOkYxOjAyOkU2OjZFOkJDOjJGOkUyOjA1CiAgICAgICAgICAgICBYNTA5djMg
QXV0aG9yaXR5IEtleSBJZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICBrZXlpZDo4MTo2RTpD
MDoxNTo0MTo0MDo3NzowRjowQzozQToxRTo4QjpFRjpBNTpCNDoyMzozNDoyQTpENDowRgorICAg
ICAgICAgICAgICAgIGtleWlkOkRDOjZEOjhEOjYyOkREOjU0Ojk4OkM4OjYwOjE3OkMyOkQzOjUx
OkIzOkJGOjczOjVCOjVDOjkwOkI5CiAKICAgICAgICAgICAgIFg1MDl2MyBLZXkgVXNhZ2U6IAog
ICAgICAgICAgICAgICAgIERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBF
bmNpcGhlcm1lbnQKQEAgLTQ2LDMzICs0NiwzMyBAQCBDZXJ0aWZpY2F0ZToKICAgICAgICAgICAg
IFg1MDl2MyBTdWJqZWN0IEFsdGVybmF0aXZlIE5hbWU6IAogICAgICAgICAgICAgICAgIEROUzp3
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNy53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wOS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNC53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNi53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wMy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMi53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wMS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy53ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wNS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODgud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDk4LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4NS53ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wODkud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDY2LndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjQud2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDQxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3OS53ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wOTEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDU5LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3AzOS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjAud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDU4LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyOC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3
dzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDE0LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2
OS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDAud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDc0
LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzMS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTgu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDczLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3Ny53
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDU0Lndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2My53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzEud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDk1LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxNi53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wMzYud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI3LndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3AyOS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTQud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDQ0LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzMy53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wODQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDMyLndlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3A2MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzAud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp3d3cyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0My53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wNzgud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI2LndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A3Ni53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTIud2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpvcDk5LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4Ni53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wNDYud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDE3LndlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A5MC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTMud2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDEwLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1NS53ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wNDcud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDUxLndlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3A0NS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODAud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDY4LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0OS53ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wNTcud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM1LndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A2Ny53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTIud2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDE1LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxMy53ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wNzUud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDY0LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3A5Ny53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzcud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDU2LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
ODIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI1LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3Ax
MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTAud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM4
LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4My53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODEu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDIwLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyMS53
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjMud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQyLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyMi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjUud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDk2LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4Ny53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wMTkud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDUzLndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3AzMC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDgud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDM0LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2Lm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wMy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDIubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3
dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud3d3LndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNC5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDgubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5Lm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wMS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM2Lm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wNTMubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1MC5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI0Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wMzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5NS5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDgzLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIubm90LXdlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3A3My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDE5Lm5vdC13
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4
MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDcwLm5vdC13ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wNzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0MC5ub3Qtd2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpvcDI1Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjUubm90LXdlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnd3dzIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDgwLm5v
dC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3A2OC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQ1Lm5vdC13ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wNzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3Mi5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDkwLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODkubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0OS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDc3
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A4Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud3d3MS53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wMTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzOS5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDQ0Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1OC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDE0Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzAubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3A2Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDYxLm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wOTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyOS5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDk4Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjQu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyNi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDIyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTQubm90LXdlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3AzOC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDMzLm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wMjMubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1Ny5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDU0Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
ODUubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDk3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzIubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A2MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk2Lm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wNTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0MS5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM1Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wOTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDY3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzcubm90LXdlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3A0OC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDU1Lm5vdC13
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4
NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM0Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wNjkubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxMS5ub3Qtd2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpvcDkzLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEud3d3LndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3A4Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDEzLm5v
dC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjAubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3A3Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI3Lm5vdC13ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wMTcubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3NS5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDE1Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDcubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxOC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDYz
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjgubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A0My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDY2Lm5vdC13ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOnd3dzIud3d3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5MS5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDc0Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTkubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4OC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDg3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTAubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3AxNi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3dzIud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp3d3cyLnd3dzIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnd3dzEu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3
d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnd3dzEud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy53d3cy
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
dCwgRE5TOnd3dy53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIud3d3Mi5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6d3d3MS53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEud3d3Mi5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud3d3LndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6eG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy54bi0tbHZlLTZs
YWQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2
ZS02bGFkLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnhuLS1sdmUtNmxhZC53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6d3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZl
LTZsYWQud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnhuLS1sdmUtNmxhZC5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIERO
Uzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUt
NmxhZC54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cueG4tLW44ajZkczUz
bHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4
YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRl
c3QsIEROUzp3d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6eG4tLWx2ZS02bGFkLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3
d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4t
LW44ajZkczUzbHd3a3JxaHYyOGEud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1u
OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS54
bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnhu
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2
ZHM1M2x3d2tycWh2MjhhLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZk
czUzbHd3a3JxaHYyOGEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2
ZS02bGFkLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4t
LW44ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdCwg
RE5TOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4
YS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2
ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdAogICAgIFNpZ25hdHVyZSBBbGdv
cml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgICA3OTpjYjphMToxNzoxNDpm
OTozNDo4YjpmNTplZjpjYjoyMToyMjo0NzpkYzpiMTozMjoxNzoKLSAgICAgICAgIDBmOjE0OmQz
OmQ3OjAzOjc2OmRmOjQxOjIwOjg0OjUwOjYzOmEyOjdjOmI3OjMxOmZlOmEwOgotICAgICAgICAg
ZjI6Yzk6MzA6Nzk6MmM6MzA6NmI6Zjc6ZWI6MzY6MTM6YWM6Mjc6NWU6NGE6MDY6NDk6NmM6Ci0g
ICAgICAgICBjMjo5YzpmNjpiMDo1NjphOTo2ZToyNTplMjo4Mjo5MTplOTphYzozYjoyZDo5Zjpj
ZDphNDoKLSAgICAgICAgIGY5OmMxOjc0OjRjOjE1OmI3OjY4OmVmOjAxOjZmOmUwOmYyOjliOmJl
OjBjOjQ4Ojk2OjNmOgotICAgICAgICAgNmU6NDI6NzE6ZTk6Zjc6ZDg6MDg6YmE6M2Q6ZTY6YWI6
YzA6Y2Y6NDQ6YzA6YTg6Y2E6NjI6Ci0gICAgICAgICA4NDoxYzpjMjo0NjowMjpiMDo3Nzo5ODox
NTpiYTo3ZDo2MDpiOTplNTplOTpmZjpkOTo3ODoKLSAgICAgICAgIDYyOmNkOjViOjBhOjhlOjI1
OmZlOmEzOjI1OjEwOjgzOjRlOjg0Ojc0OjI1OjYxOjU0OjMzOgotICAgICAgICAgNDU6ZDQ6ODQ6
Y2I6NzY6OTE6YmI6YWI6NDE6ZDU6OTg6YjE6NDQ6OTE6NGI6ZTI6ZDI6YTU6Ci0gICAgICAgICA3
NToxNTpmYjo1ZjpkNzo3Mzo2ZDo2ZDpjNjo0Yjo5Nzo3NDozYjowYjpmMzpmMTpmYTpkYToKLSAg
ICAgICAgIDE5OjZkOjZiOjI3OjdjOjhkOmYxOjk5Ojg2OmYxOjExOmIxOjgxOjJmOmEwOjJjOmZi
OmZlOgotICAgICAgICAgOWQ6Njc6ZDI6NDk6NWQ6ZjU6MGQ6ZGI6MDM6MjY6ZmM6YzE6NGI6YWI6
ZGQ6MTg6ZDU6N2U6Ci0gICAgICAgICA3YTo2NDo2MTo2OTozYjo5MDo0ZjoyZDphZDoyMTo0MDow
NzpkMTo1YTpmMDozMDo2YTplZDoKLSAgICAgICAgIDBjOjg0OjU4OmExOjU1OjNjOjAwOmUxOjIz
OjNlOjYwOmNiOmQ0OjU3OjFhOjY5OjJkOjJlOgotICAgICAgICAgNTY6M2E6NTE6MTQKKyAgICAg
ICAgIDM4OmE3OmVmOmViOjU1OjMwOmU4OjZmOmJmOjUxOmE5OmViOjUyOjlhOjY2OmVjOjNkOjE5
OgorICAgICAgICAgNWQ6ZjQ6MWQ6ODQ6MTc6YzA6ZjI6MjY6M2U6MmI6NjY6NWQ6N2E6YTk6NDQ6
ODY6YzM6YmE6CisgICAgICAgICBkNzpmMDo5ZTplNzpiMjpiMzowNTowYzoyNTplZjplMTpiNzo5
NDo4Yzo0NDoxYzpkMjo1NzoKKyAgICAgICAgIDRjOjMwOjUxOjk2OjI5Ojk2OjJlOmIzOmUzOjFj
OmY4OjljOmU2OjdkOjk2OjE0OjNmOjNmOgorICAgICAgICAgM2U6YTY6OTY6NGI6MDE6ZGM6ZjI6
ZWQ6YmY6ZmM6ZTM6NjQ6OTM6NDk6ODE6YmU6Yzk6ZGQ6CisgICAgICAgICBkZDoxYjpjZTpkYTo3
Mjo0NTpkMToyZDpjYTo5OTpjZDpkMTo3ZDpmOToxNzplMTplZToxMjoKKyAgICAgICAgIGY0OmVk
Ojc2OjQxOmNhOjZmOmE1OjVjOjcyOjAwOjRhOjhkOjc2OmM1OjJiOmI3OjE4OjdiOgorICAgICAg
ICAgY2U6ZTg6YWI6NzY6OWE6NzU6ZTk6MWQ6NTM6OWI6NzU6OTM6NmQ6MGI6MmU6NDk6M2Y6YmY6
CisgICAgICAgICA4NDoxZjo3MTpiZTo0OToyMzphYjoyYzpmODphNjphMjoyODo5Mzo4MjowNDo2
Yzo4ZTo4NToKKyAgICAgICAgIDIyOjBlOmI2OjZkOmM1OjFlOjgyOmQxOjBkOmM2OjA4OjlhOjg2
OmExOjI5OjVjOjc5OjUzOgorICAgICAgICAgZDM6YWU6ZDY6YzQ6MzM6NGI6ZDI6MDQ6NWE6ZDk6
YTA6YzM6NmQ6MjY6ZWM6ZTg6MzU6MDY6CisgICAgICAgICBlNzo4ODoxMjowMzo3YzpjNTo4Mzoy
NjpiMjpiNTozMjphMzo0MTo1MTpiNDo5NDpiMDo4NDoKKyAgICAgICAgIDBkOjRhOjA1OjUyOjAy
OjI5OjQxOjViOjAzOjA0OmYwOmMzOmU1OjI0OmU2OjVhOmVmOjcwOgorICAgICAgICAgNDU6NDU6
NTg6MjU6MmI6NWU6YmU6N2Q6Y2E6NzM6MDI6MmI6MWQ6NGY6M2M6NGI6MDA6ZjQ6CisgICAgICAg
ICA2OTo1ZjoxYTo2ZQogLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlndkRDQ0g2U2dB
d0lCQWdJRERldWdNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1CMHhHekFaQmdOVkJBTU1FbmRsCi1ZaTF3
YkdGMFptOXliUzEwWlhOMGN6QWVGdzB5TURFd01USXdNRE13TkRkYUZ3MHlNVEV3TVRJd01ETXdO
RGRhCitNSUlndkRDQ0g2U2dBd0lCQWdJREJsVkdNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1CMHhHekFa
QmdOVkJBTU1FbmRsCitZaTF3YkdGMFptOXliUzEwWlhOMGN6QWVGdzB5TVRBeE1USXhOakV6TWpo
YUZ3MHlNakF4TVRJeE5qRXpNamhhCiBNQnd4R2pBWUJnTlZCQU1NRVhkbFlpMXdiR0YwWm05eWJT
NTBaWE4wTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGCi1BQU9DQVE4QU1JSUJDZ0tDQVFFQXE3dkw5
QitTbXRqVHhsbFZlV05JZlJFZi9jcHdpeTBwc3Y0eDQzTDJMY0RhCi1RSDBvQjdwdFFtMXMzdmNo
TzJ6V2tQUlYyd045MWQzSjRkSU0xTWppdk5jc1hGT1ZaQ3FjalNYR0JRZjZZempBCi1ldXEwdGtB
MGRqeEt5VTNib2RjdDdGK2lXeXRXZ0VQR25FcHhWek05aTl2TE1KbDRKaFdKZ3NWaHdmTVZiRDBl
Ci1jYWlHcitYSjQwTWxYNHV3WlhHUWxHb3hNYjdvSkJMWTdYSkVtY3dTcHNpMkZpSTFYQkNNRkdt
cVJNcmJOWmhDCi1TOXFrQjBhQkIxYkpLTU5kbGJqem1weUlhUVhKcXd5RVphWjA0V2JoMlR2Mmpu
aWxodmJDaFZYd2prUUZLN3Z0Ci0vN25WMFd3UzBDNXFRV1lsanZCZFJMaXphbEliRnNmMnhiSi9l
dDlCRHdJREFRQUJvNEllQkRDQ0hnQXdDUVlECi1WUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVqTlJJ
QVJ2L24wSU5nZElGTFVmS2p2VGJHQWN3SHdZRFZSMGpCQmd3Ci1Gb0FVZ1c3QUZVRkFkdzhNT2g2
TDc2VzBJelFxMUE4d0N3WURWUjBQQkFRREFnWGdNQk1HQTFVZEpRUU1NQW9HCitBQU9DQVE4QU1J
SUJDZ0tDQVFFQTNNSVhjNGhMOWxnSkx5djhLWG5KK1MwUUthMjFrWTJxTFduRjc1TGFNVXRHCitp
dG4zOStNSWxleHF3Ym5NY1ZQTll0eXdybkozZk5uUmsrTHgzODB5aW1tK2YvcjdyZFJUYUJ1UVNw
aG1HUXFUCitxT2pHVGxnQ1NlTTEyRUFRQkhpcnEwbzRKY3psMXBvMHFRQk16UFU2bEJ1dXBhYUVp
dWZNNys0SjNnMjR3NXlZCitXeW1HVUxxelRwdHp5ekhkSHFkLzhzYXNLbFltdFp6cC9zV3VHYUJh
MXNJTGxneXNkUGNvUVNoRlF4MTdRQm4yCithZlJGZ0U2cmhMS2hVcUhpNnNrQTczM3VSM240dUhU
NW1OOWpvaVJ1QUswaW5vTWNrWHBFR2ZCT01kNXA1YmQ2Cithd3VwMlJYc1N4dXRGRG9zZndEZDBZ
bjZSdzNzdkdhdnk2UnJNdmpVK3dJREFRQUJvNEllQkRDQ0hnQXdDUVlECitWUjBUQkFJd0FEQWRC
Z05WSFE0RUZnUVV6ZkhJWXRIc3BUM2tHcEZ3OFFMbWJyd3Y0Z1V3SHdZRFZSMGpCQmd3CitGb0FV
M0cyTll0MVVtTWhnRjhMVFViTy9jMXRja0xrd0N3WURWUjBQQkFRREFnWGdNQk1HQTFVZEpRUU1N
QW9HCiBDQ3NHQVFVRkJ3TUJNSUlkandZRFZSMFJCSUlkaGpDQ0hZS0NFWGRsWWkxd2JHRjBabTl5
YlM1MFpYTjBnaFZ2CiBjRGd1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDRlc5d055NTNaV0l0Y0d4
aGRHWnZjbTB1ZEdWemRJSVZiM0E1CiBMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaFZ2Y0RRdWQy
VmlMWEJzWVhSbWIzSnRMblJsYzNTQ0ZXNXZkQzEzCkBAIC0yMzEsMTAgKzIzMSwxMCBAQCBObXho
WkM1NGJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRM
blJsCiBjM1NDUVhodUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmh1TFMxdU9HbzJaSE0x
TTJ4M2QydHljV2gyCiBNamhoTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2tWNGJpMHRiamhxTm1S
ek5UTnNkM2RyY25Gb2RqSTRZUzU0CiBiaTB0YmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1dWIz
UXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdEUVlKCi1Lb1pJaHZjTkFRRUxCUUFEZ2dFQkFIbkxv
UmNVK1RTTDllL0xJU0pIM0xFeUZ3OFUwOWNEZHQ5QklJUlFZNko4Ci10ekgrb1BMSk1Ia3NNR3Yz
NnpZVHJDZGVTZ1pKYk1LYzlyQldxVzRsNG9LUjZhdzdMWi9OcFBuQmRFd1Z0Mmp2Ci1BVy9nOHB1
K0RFaVdQMjVDY2VuMzJBaTZQZWFyd005RXdLaktZb1Fjd2tZQ3NIZVlGYnA5WUxubDZmL1plR0xO
Ci1Xd3FPSmY2akpSQ0RUb1IwSldGVU0wWFVoTXQya2J1clFkV1lzVVNSUytMU3BYVVYrMS9YYzIx
dHhrdVhkRHNMCi04L0g2MmhsdGF5ZDhqZkdaaHZFUnNZRXZvQ3o3L3AxbjBrbGQ5UTNiQXliOHdV
dXIzUmpWZm5wa1lXazdrRTh0Ci1yU0ZBQjlGYThEQnE3UXlFV0tGVlBBRGhJejVneTlSWEdta3RM
bFk2VVJRPQorS29aSWh2Y05BUUVMQlFBRGdnRUJBRGluNyt0Vk1PaHZ2MUdwNjFLYVp1dzlHVjMw
SFlRWHdQSW1QaXRtWFhxcAorUkliRHV0ZndudWV5c3dVTUplL2h0NVNNUkJ6U1Ywd3dVWllwbGk2
ejR4ejRuT1o5bGhRL1B6Nm1sa3NCM1BMdAordi96alpKTkpnYjdKM2QwYnp0cHlSZEV0eXBuTjBY
MzVGK0h1RXZUdGRrSEtiNlZjY2dCS2pYYkZLN2NZZTg3bworcTNhYWRla2RVNXQxazIwTExray92
NFFmY2I1Skk2c3MrS2FpS0pPQ0JHeU9oU0lPdG0zRkhvTFJEY1lJbW9haAorS1Z4NVU5T3Uxc1F6
UzlJRVd0bWd3MjBtN09nMUJ1ZUlFZ044eFlNbXNyVXlvMEZSdEpTd2hBMUtCVklDS1VGYgorQXdU
d3crVWs1bHJ2Y0VWRldDVXJYcjU5eW5NQ0t4MVBQRXNBOUdsZkdtND0KIC0tLS0tRU5EIENFUlRJ
RklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jaHJvbWUueW1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxs
X2Nocm9tZS55bWwKaW5kZXggZmQ2NTBlODBhYWFkMzA5YzhlOTgzMjc0ZDJiODIzYmJhOTFiMWZi
MS4uOWNjZGM0OWJhMGVlMWZhNDM4MmNmNWUwNmM5OGExNDk4OTM4YTMzOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS9pbnN0YWxsX2Nocm9tZS55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2Nocm9tZS55bWwKQEAgLTIsOCAr
Miw5IEBAIHN0ZXBzOgogIyBUaGUgY29uZmxpY3RpbmcgZ29vZ2xlLWNocm9tZSBhbmQgY2hyb21l
ZHJpdmVyIGNhc2tzIGFyZSBmaXJzdCB1bmluc3RhbGxlZC4KICMgVGhlIHJhdyBnb29nbGUtY2hy
b21lLWRldiBjYXNrIFVSTCBpcyB1c2VkIHRvIGJ5cGFzcyBjYWNoaW5nLgogLSBzY3JpcHQ6IHwK
LSAgICBIT01FQlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcgY2FzayB1bmluc3RhbGwgZ29vZ2xl
LWNocm9tZSB8fCB0cnVlCi0gICAgSE9NRUJSRVdfTk9fQVVUT19VUERBVEU9MSBicmV3IGNhc2sg
dW5pbnN0YWxsIGNocm9tZWRyaXZlciB8fCB0cnVlCi0gICAgSE9NRUJSRVdfTk9fQVVUT19VUERB
VEU9MSBicmV3IGNhc2sgaW5zdGFsbCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20v
SG9tZWJyZXcvaG9tZWJyZXctY2Fzay12ZXJzaW9ucy9tYXN0ZXIvQ2Fza3MvZ29vZ2xlLWNocm9t
ZS1kZXYucmIKKyAgICBIT01FQlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcgdW5pbnN0YWxsIC0t
Y2FzayBnb29nbGUtY2hyb21lIHx8IHRydWUKKyAgICBIT01FQlJFV19OT19BVVRPX1VQREFURT0x
IGJyZXcgdW5pbnN0YWxsIC0tY2FzayBjaHJvbWVkcml2ZXIgfHwgdHJ1ZQorICAgIGN1cmwgaHR0
cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0hvbWVicmV3L2hvbWVicmV3LWNhc2stdmVy
c2lvbnMvbWFzdGVyL0Nhc2tzL2dvb2dsZS1jaHJvbWUtZGV2LnJiID4gZ29vZ2xlLWNocm9tZS1k
ZXYucmIKKyAgICBIT01FQlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcgaW5zdGFsbCAtLWNhc2sg
Z29vZ2xlLWNocm9tZS1kZXYucmIKICAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIENocm9tZSBEZXYn
CiAgIGNvbmRpdGlvbjogYW5kKHN1Y2NlZWRlZCgpLCBlcSh2YXJpYWJsZXNbJ0FnZW50Lk9TJ10s
ICdEYXJ3aW4nKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9maXJlZm94LnltbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFs
bF9maXJlZm94LnltbAppbmRleCBkZTZkMDMzNWYyMjFmNmQyMjE1ZWJkYzhlZjVkMmVlMjY5ZmRm
ZGYzLi43YjhjN2JlMDVmZWU5YmM2ZDZkYjk2MDlhMjFhNzFiOGNjOTNiMjZhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6
dXJlL2luc3RhbGxfZmlyZWZveC55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZpcmVmb3gueW1sCkBAIC0x
LDYgKzEsOCBAQAogc3RlcHM6CiAjIFRoaXMgaXMgZXF1aXZhbGVudCB0byBgSG9tZWJyZXcvaG9t
ZWJyZXctY2Fzay12ZXJzaW9ucy9maXJlZm94LW5pZ2h0bHlgLAogIyBidXQgdGhlIHJhdyBVUkwg
aXMgdXNlZCB0byBieXBhc3MgY2FjaGluZy4KLS0gc2NyaXB0OiBIT01FQlJFV19OT19BVVRPX1VQ
REFURT0xIGJyZXcgY2FzayBpbnN0YWxsIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNv
bS9Ib21lYnJldy9ob21lYnJldy1jYXNrLXZlcnNpb25zL21hc3Rlci9DYXNrcy9maXJlZm94LW5p
Z2h0bHkucmIKKy0gc2NyaXB0OiB8CisgICAgY3VybCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29u
dGVudC5jb20vSG9tZWJyZXcvaG9tZWJyZXctY2Fzay12ZXJzaW9ucy9tYXN0ZXIvQ2Fza3MvZmly
ZWZveC1uaWdodGx5LnJiID4gZmlyZWZveC1uaWdodGx5LnJiCisgICAgSE9NRUJSRVdfTk9fQVVU
T19VUERBVEU9MSBicmV3IGluc3RhbGwgLS1jYXNrIGZpcmVmb3gtbmlnaHRseS5yYgogICBkaXNw
bGF5TmFtZTogJ0luc3RhbGwgRmlyZWZveCBOaWdodGx5JwogICBjb25kaXRpb246IGFuZChzdWNj
ZWVkZWQoKSwgZXEodmFyaWFibGVzWydBZ2VudC5PUyddLCAnRGFyd2luJykpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6
dXJlL2luc3RhbGxfcHl0aG9uLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9weXRob24ueW1sCmluZGV4IDY1ODUy
MzliYzhjY2Q5NjU0ZGYxODgwNDIzYzc2MTFlNmRiYmVhNjIuLjYyNTcxNzIwMjFkNWE4YTA0MzQ2
OWY5MzgwMGQ5ZWQ4Zjc5ZWZjNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9weXRob24ueW1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
YXp1cmUvaW5zdGFsbF9weXRob24ueW1sCkBAIC0xLDE1ICsxLDM2IEBACiBzdGVwczoKIC0gcG93
ZXJzaGVsbDogfAotICAgIFN0YXJ0LUJpdHNUcmFuc2ZlciAtU291cmNlIGh0dHBzOi8vd3d3LnB5
dGhvbi5vcmcvZnRwL3B5dGhvbi8yLjcuMTUvcHl0aG9uLTIuNy4xNS5hbWQ2NC5tc2kgLURlc3Rp
bmF0aW9uIHB5dGhvbi5tc2kKLSAgICAkaGFzaCA9IChHZXQtRmlsZUhhc2ggcHl0aG9uLm1zaSku
SGFzaC5Ub0xvd2VyKCkKLSAgICAkZXhwZWN0ZWRIYXNoID0gIjVlODVmM2M0YzIwOWRlOTg0ODBh
Y2JmMmJhMmU3MWE5MDdmZDU1NjdhODM4YWQ0YjY3NDhjNzZkZWIyODZhZDciCisgICAgJHB5dGhv
blBhdGggPSAnQzpcUHl0aG9uMzgnCisgICAgJHB5dGhvbkluc3RhbGxlckxvZ1BhdGggPSAncHl0
aG9uX2luc3RhbGxlci5sb2cnCisgICAgJGluc3RhbGxBcmdzID0gIi9wYXNzaXZlIC9sb2cgJHB5
dGhvbkluc3RhbGxlckxvZ1BhdGggVGFyZ2V0RGlyPSRweXRob25QYXRoIgorCisgICAgV3JpdGUt
SG9zdCAiRG93bmxvYWRpbmcgcHl0aG9uIGluc3RhbGxlciBleGUiCisgICAgJGRvd25sb2FkUGF0
aCA9ICdweXRob25faW5zdGFsbGVyLmV4ZScKKyAgICBTdGFydC1CaXRzVHJhbnNmZXIgLVNvdXJj
ZSBodHRwczovL3d3dy5weXRob24ub3JnL2Z0cC9weXRob24vMy44LjUvcHl0aG9uLTMuOC41LWFt
ZDY0LmV4ZSAgLURlc3RpbmF0aW9uICRkb3dubG9hZFBhdGgKKyAgICAkaGFzaCA9IChHZXQtRmls
ZUhhc2ggJGRvd25sb2FkUGF0aCkuSGFzaC5Ub0xvd2VyKCkKKyAgICAkZXhwZWN0ZWRIYXNoID0g
ImNkNDI3YzdiMTczMzdkN2MxMzc2MWNhMjA4NzdkMmQ4YmU2NjFiZDMwNDE1ZGRjMTcwNzJhMzFh
NjVhOTFiNjQiCiAgICAgaWYgKCRoYXNoLkVxdWFscygkZXhwZWN0ZWRIYXNoKSkgewotICAgICAg
V3JpdGUtSG9zdCAicHl0aG9uLm1zaSBoYXNoIHZlcmlmaWVkIgorICAgICAgV3JpdGUtSG9zdCAi
JGRvd25sb2FkUGF0aCBoYXNoIHZlcmlmaWVkIgogICAgIH0gZWxzZSB7Ci0gICAgICBUaHJvdyAi
cHl0aG9uLm1zaSBoYXNoIG1pc21hdGNoLCBnb3QgJGhhc2gsIGV4cGVjdGVkICRleHBlY3RlZEhh
c2giCisgICAgICBUaHJvdyAiJGRvd25sb2FkUGF0aCBoYXNoIG1pc21hdGNoLCBnb3QgJGhhc2gs
IGV4cGVjdGVkICRleHBlY3RlZEhhc2giCiAgICAgfQotICAgIG1zaWV4ZWMgL2kgcHl0aG9uLm1z
aSBUQVJHRVRESVI9QzpcUHl0aG9uMjcgL3EKLSAgICBXcml0ZS1Ib3N0ICIjI3Zzb1t0YXNrLnBy
ZXBlbmRwYXRoXUM6XFB5dGhvbjI3IgotICAgIFdyaXRlLUhvc3QgIiMjdnNvW3Rhc2sucHJlcGVu
ZHBhdGhdQzpcUHl0aG9uMjdcU2NyaXB0cyIKKworICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQ
YXRoICRweXRob25QYXRoKSB7CisgICAgICAgIFdyaXRlLUhvc3QgIiRweXRob25QYXRoIGFscmVh
ZHkgZXhpc3RzLCB1bmluc3RhbGwgaXQiCisgICAgICAgICR1bmluc3RhbGxBcmdzID0gJGluc3Rh
bGxBcmdzICsgIiAvdW5pbnN0YWxsIC9xdWlldCIKKyAgICAgICAgJHAgPSBTdGFydC1Qcm9jZXNz
IC1GaWxlUGF0aCAkZG93bmxvYWRQYXRoIC1WZXJiIFJ1bkFzIC1Bcmd1bWVudExpc3QgJHVuaW5z
dGFsbEFyZ3MgLVBhc3NUaHJ1IC1XYWl0CisgICAgICAgIFdyaXRlLUhvc3QgIlVuaW5zdGFsbCBm
aW5pc2hlZC4gRXhpdCBjb2RlIHdhczogJCgkcC5FeGl0Q29kZSkiCisgICAgfQorCisgICAgV3Jp
dGUtSG9zdCAiUnVubmluZyAkZG93bmxvYWRQYXRoIHdpdGggYXJncyAkaW5zdGFsbEFyZ3MiCisg
ICAgJHAgPSBTdGFydC1Qcm9jZXNzIC1GaWxlUGF0aCAkZG93bmxvYWRQYXRoIC1WZXJiIFJ1bkFz
IC1Bcmd1bWVudExpc3QgJGluc3RhbGxBcmdzIC1QYXNzVGhydSAtV2FpdAorICAgIFdyaXRlLUhv
c3QgIiRkb3dubG9hZFBhdGggZmluaXNoZWQuIEV4aXQgY29kZSB3YXM6ICQoJHAuRXhpdENvZGUp
IgorCisgICAgV3JpdGUtSG9zdCAiQWRkaW5nIFB5dGhvbiBkaXJzIHRvIHBhdGgiCisgICAgV3Jp
dGUtSG9zdCAiIyN2c29bdGFzay5wcmVwZW5kcGF0aF1DOlxQeXRob24zOCIKKyAgICBXcml0ZS1I
b3N0ICIjI3Zzb1t0YXNrLnByZXBlbmRwYXRoXUM6XFB5dGhvbjM4XFNjcmlwdHMiCisKKyAgICBX
cml0ZS1Ib3N0ICJEdW1waW5nIGluc3RhbGwgbG9nIGZpbGU6IgorICAgIEdldC1Db250ZW50IC1Q
YXRoICJweXRob25faW5zdGFsbGVyLmxvZyIKICAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIFB5dGhv
biAoV2luZG93cyknCiAgIGNvbmRpdGlvbjogYW5kKHN1Y2NlZWRlZCgpLCBlcSh2YXJpYWJsZXNb
J0FnZW50Lk9TJ10sICdXaW5kb3dzX05UJykpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfc2FmYXJp
LnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvYXp1cmUvaW5zdGFsbF9zYWZhcmkueW1sCmluZGV4IDZjMWI1NjJkNDExYTJhZWVjYzMwZDNm
YmMxYWVkNjM2MmYzNTI2ZTUuLjE2MzZiOGU3NDc0MzJkN2YwMTYyODc5ZTg2ODAxNmRmOTlkN2Qy
NTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZhcmkueW1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZh
cmkueW1sCkBAIC04LDcgKzgsNyBAQCBzdGVwczoKICAgY29uZGl0aW9uOiBlcSh2YXJpYWJsZXNb
J3NhZmFyaWRyaXZlcl9kaWFnbm9zZSddLCB0cnVlKQogLSAke3sgaWYgZXEocGFyYW1ldGVycy5j
aGFubmVsLCAncHJldmlldycpIH19OgogICAtIHNjcmlwdDogfAotICAgICAgSE9NRUJSRVdfTk9f
QVVUT19VUERBVEU9MSBicmV3IGNhc2sgaW5zdGFsbCB0b29scy9jaS9henVyZS9zYWZhcmktdGVj
aG5vbG9neS1wcmV2aWV3LnJiCisgICAgICBIT01FQlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcg
aW5zdGFsbCAtLWNhc2sgdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5y
YgogICAgICAgIyBXb3JrYXJvdW5kIGZvciBgc3VkbyBzYWZhcmRyaXZlciAtLWVuYWJsZWAgbm90
IHdvcmtpbmcgb24gQ2F0YWxpbmE6CiAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yMTc1MQogICAgICAgbWtkaXIgLXAgfi9MaWJyYXJ5L1dl
YkRyaXZlci8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYiBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUv
c2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYgppbmRleCAxMTVkZDFiOGYyMTBiNjM5YTY5YThm
M2NmYTIxZjRlZGY3NTc5MjQzLi43MTQ5ZTZiMmYwZmQyOTAwZTg4NWRjODBmMWVkMWQ5ZWNiYzEx
OGIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2F6dXJlL3NhZmFyaS10ZWNobm9sb2d5LXByZXZpZXcucmIKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9z
YWZhcmktdGVjaG5vbG9neS1wcmV2aWV3LnJiCkBAIC0xLDEwICsxLDEwIEBACiBjYXNrICJzYWZh
cmktdGVjaG5vbG9neS1wcmV2aWV3IiBkbwogICBpZiBNYWNPUy52ZXJzaW9uIDw9IDpjYXRhbGlu
YQotICAgIHZlcnNpb24gIjExNSwwMDEtNjI2NTEtMjAyMDEwMjItNmNkOTJlMTgtYmZiZS00OGNj
LTkzODUtZDg0ZGE4ZjNjMjRjIgotICAgIHNoYTI1NiAiZTRiMjlhYzJhMGQ2MGU0OGJhZTdkOWM2
MzU4NTNmZjdkYWRjNTlhODJkZDUzZjM0MGI2MjNlZWI1NTM4ZjY1NyIKKyAgICB2ZXJzaW9uICIx
MTksMDAxLTk3NzkzLTIwMjEwMTI2LTdhYTQ5Y2VkLWMyZjItNDE1ZC1hNTY0LTZmYWIyNWZjYjhl
NiIKKyAgICBzaGEyNTYgImY1Y2E2YWNjMjNkNjVlMjNhYWYwZGY1ZmYzNWZiM2UyOGM5YWU3YTQw
ZTQ2MzMxMTIyZDI5YTNlNzg4Y2EyYzEiCiAgIGVsc2UKLSAgICB2ZXJzaW9uICIxMTUsMDAxLTYy
Njc5LTIwMjAxMDIyLTQyZTBkNjNhLTUyN2EtNDVhZi1iZWIxLTAyY2Q0MDk1ZTM0MSIKLSAgICBz
aGEyNTYgIjgxNTI3NmNhODE0ZTQ5YTZiMmU4ZWI4NDI5ZDZlNjY0NGRlMmRiODk1MjdmYmJjZTgz
Y2I5ZDY5ZjU0NzgzZjciCisgICAgdmVyc2lvbiAiMTE5LDAwMS05ODg3NS0yMDIxMDEyNi03Njk5
Zjc2ZS1lM2E1LTRmNDUtODBmOS04OTc1YzIzNmQzMzciCisgICAgc2hhMjU2ICIwNDhlNWFjMWU3
NjFkZjc1NzA3NTEzNGZhM2QxZjgwYWU3ZGE1NmQ1ZWVmMjUxMTk3MGFlYWMzNGY1ZWQwMDI3Igog
ICBlbmQKIAogICB1cmwgImh0dHBzOi8vc2VjdXJlLWFwcGxkbmxkLmFwcGxlLmNvbS9TVFAvI3t2
ZXJzaW9uLmFmdGVyX2NvbW1hfS9TYWZhcmlUZWNobm9sb2d5UHJldmlldy5kbWciCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L2F6dXJlL3VwZGF0ZV9ob3N0cy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3VwZGF0ZV9ob3N0cy55bWwKaW5kZXggNjNjN2U0
NTgxMTI5N2EyZGQ1MzQyYjNiM2FiOTA5M2FjYWI2ZjVjZC4uNjRhZmY3Y2Y0NmE4M2UwYWQwMDQ1
MDY1YjVlYzJlNzhkZWI2NTA2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91cGRhdGVfaG9zdHMueW1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1
cmUvdXBkYXRlX2hvc3RzLnltbApAQCAtMSwzICsxLDYgQEAKK3BhcmFtZXRlcnM6CisgIHB5Zmxh
ZzogLS1weTMKKwogc3RlcHM6CiAtIHNjcmlwdDogLi93cHQgbWFrZS1ob3N0cy1maWxlIHwgc3Vk
byB0ZWUgLWEgL2V0Yy9ob3N0cwogICBkaXNwbGF5TmFtZTogJ1VwZGF0ZSBob3N0cyAobWFjT1Mp
JwpAQCAtNSw2ICs4LDYgQEAgc3RlcHM6CiAtIHBvd2Vyc2hlbGw6IHwKICAgICAkaG9zdEZpbGUg
PSAiJGVudjpzeXN0ZW1yb290XFN5c3RlbTMyXGRyaXZlcnNcZXRjXGhvc3RzIgogICAgIENvcHkt
SXRlbSAtUGF0aCAkaG9zdEZpbGUgLURlc3RpbmF0aW9uICIkaG9zdEZpbGUuYmFjayIgLUZvcmNl
Ci0gICAgcHl0aG9uIHdwdCBtYWtlLWhvc3RzLWZpbGUgfCBPdXQtRmlsZSAkZW52OnN5c3RlbXJv
b3RcU3lzdGVtMzJcZHJpdmVyc1xldGNcaG9zdHMgLUVuY29kaW5nIGFzY2lpIC1BcHBlbmQKKyAg
ICBweXRob24gd3B0ICR7eyBwYXJhbWV0ZXJzLnB5ZmxhZyB9fSBtYWtlLWhvc3RzLWZpbGUgfCBP
dXQtRmlsZSAkZW52OnN5c3RlbXJvb3RcU3lzdGVtMzJcZHJpdmVyc1xldGNcaG9zdHMgLUVuY29k
aW5nIGFzY2lpIC1BcHBlbmQKICAgZGlzcGxheU5hbWU6ICdVcGRhdGUgaG9zdHMgKFdpbmRvd3Mp
JwogICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQoKSwgZXEodmFyaWFibGVzWydBZ2VudC5PUydd
LCAnV2luZG93c19OVCcpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91cGRhdGVfbWFuaWZlc3QueW1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91
cGRhdGVfbWFuaWZlc3QueW1sCmluZGV4IDQ1M2FjMmFjM2MwNWNmODczYmNmNjZkMWJlOTkwMzI0
YmQyMDAzNmUuLmU4ZjI4MjE3ZjFlYWE5YWYzZWM2N2UyYjFhNjQzNjVjOGFhODdhODEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvYXp1cmUvdXBkYXRlX21hbmlmZXN0LnltbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3VwZGF0ZV9tYW5pZmVzdC55bWwK
QEAgLTEsNCArMSw3IEBACitwYXJhbWV0ZXJzOgorICBweWZsYWc6IC0tcHkzCisKIHN0ZXBzOgog
IyBgcHl0aG9uIHdwdGAgaW5zdGVhZCBvZiBgLi93cHRgIGlzIHRvIG1ha2UgdGhpcyB3b3JrIG9u
IFdpbmRvd3M6Ci0tIHNjcmlwdDogcHl0aG9uIHdwdCBtYW5pZmVzdAorLSBzY3JpcHQ6IHB5dGhv
biB3cHQgJHt7IHBhcmFtZXRlcnMucHlmbGFnIH19IG1hbmlmZXN0CiAgIGRpc3BsYXlOYW1lOiAn
VXBkYXRlIG1hbmlmZXN0JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUuc2gg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2Np
X3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaAppbmRleCAwNzA5Mjk1ZjRhMjA0ZmFkYmZkZjAw
YWIxMjllOWZiOTBjY2VkMjE0Li45N2FjMTdjZGYyZTE0MmNiMzU4MjZkOWI2YTQwODNjOWU0ZjM3
MmFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdHJ1bm5l
cl9pbmZyYXN0cnVjdHVyZS5zaApAQCAtNiwyMiArNiwxOCBAQCBXUFRfUk9PVD0kU0NSSVBUX0RJ
Ui8uLi8uLgogY2QgJFdQVF9ST09UCiAKIHRlc3RfaW5mcmFzdHJ1Y3R1cmUoKSB7Ci0gICAgUFkz
X0ZMQUc9IiQyIgotICAgIFRFUk09ZHVtYiAuL3dwdCAkUFkzX0ZMQUcgcnVuIC0tbG9nLW1hY2gg
LSAtLXllcyAtLW1hbmlmZXN0IH4vbWV0YS9NQU5JRkVTVC5qc29uIC0tbWV0YWRhdGEgaW5mcmFz
dHJ1Y3R1cmUvbWV0YWRhdGEvIC0taW5zdGFsbC1mb250cyAtLWluc3RhbGwtd2ViZHJpdmVyICQx
ICRQUk9EVUNUIGluZnJhc3RydWN0dXJlLworICAgIFBZMl9GTEFHPSIkMiIKKyAgICBURVJNPWR1
bWIgLi93cHQgJFBZMl9GTEFHIHJ1biAtLWxvZy1tYWNoIC0gLS15ZXMgLS1tYW5pZmVzdCB+L21l
dGEvTUFOSUZFU1QuanNvbiAtLW1ldGFkYXRhIGluZnJhc3RydWN0dXJlL21ldGFkYXRhLyAtLWlu
c3RhbGwtZm9udHMgLS1pbnN0YWxsLXdlYmRyaXZlciAkMSAkUFJPRFVDVCBpbmZyYXN0cnVjdHVy
ZS8KIH0KIAogbWFpbigpIHsKLSAgICBpZiBbWyAkIyAtZXEgMSAmJiAiJDEiID0gIi0tcHkzIiBd
XTsgdGhlbgotICAgICAgICBQUk9EVUNUUz0oICJjaHJvbWUiICkKLSAgICBlbHNlCi0gICAgICAg
IFBST0RVQ1RTPSggImZpcmVmb3giICJjaHJvbWUiICkKLSAgICBmaQorICAgIFBST0RVQ1RTPSgg
ImZpcmVmb3giICJjaHJvbWUiICkKICAgICAuL3dwdCBtYW5pZmVzdCAtLXJlYnVpbGQgLXAgfi9t
ZXRhL01BTklGRVNULmpzb24KICAgICBmb3IgUFJPRFVDVCBpbiAiJHtQUk9EVUNUU1tAXX0iOyBk
bwogICAgICAgICBpZiBbWyAiJFBST0RVQ1QiID09ICJjaHJvbWUiIF1dOyB0aGVuCiAgICAgICAg
ICAgICB0ZXN0X2luZnJhc3RydWN0dXJlICItLWJpbmFyeT0kKHdoaWNoIGdvb2dsZS1jaHJvbWUt
dW5zdGFibGUpIC0tY2hhbm5lbCBkZXYiICIkMSIKICAgICAgICAgZWxzZQotICAgICAgICAgICAg
dGVzdF9pbmZyYXN0cnVjdHVyZSAiLS1iaW5hcnk9fi9idWlsZC9maXJlZm94L2ZpcmVmb3giCisg
ICAgICAgICAgICB0ZXN0X2luZnJhc3RydWN0dXJlICItLWJpbmFyeT1+L2J1aWxkL2ZpcmVmb3gv
ZmlyZWZveCIgIiQxIgogICAgICAgICBmaQogICAgIGRvbmUKIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcHJfcHJldmll
dy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvcHJfcHJldmlldy5weQppbmRleCAyMzk2ZTliOGFlZThhMTY2YzNiOTMyMWM3ZTllYzJlOGY5
YjU0OWMwLi5jNjkzMmRhYjI1NTQ1NjU4OTdlODY1ZmY3NWRiZmIwMzc0ZDZlZTE3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3ByX3ByZXZpZXcucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9wcl9wcmV2aWV3LnB5CkBAIC0xMiw3ICsxMiw2IEBAIGltcG9ydCBh
cmdwYXJzZQogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKLWltcG9ydCBz
dWJwcm9jZXNzCiBpbXBvcnQgdGltZQogCiBpbXBvcnQgcmVxdWVzdHMKQEAgLTI1LDcgKzI0LDcg
QEAgQVBJX1JBVEVfTElNSVRfVEhSRVNIT0xEID0gMC4yCiBMQUJFTCA9ICdzYWZlIGZvciBwcmV2
aWV3JwogIyBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdG8gd2FpdCBiZXR3ZWVuIGF0dGVtcHRzIHRv
IHZlcmlmeSB0aGF0IGEgc3VibWlzc2lvbgogIyBwcmV2aWV3IGlzIGF2YWlsYWJsZSBvbiB0aGUg
UHVsbCBSZXF1ZXN0IHByZXZpZXcgc2VydmVyCi1QT0xMSU5HX1BFUklPRCA9IDUKK1BPTExJTkdf
UEVSSU9EID0gMTUKICMgUHVsbCBSZXF1ZXN0cyBmcm9tIGF1dGhvcnMgd2l0aCB0aGUgZm9sbG93
aW5nIGFzc29jaWF0aW9ucyB0byB0aGUgcHJvamVjdAogIyBzaG91bGQgYXV0b21hdGljYWxseSBy
ZWNlaXZlIHByZXZpZXdzCiAjCkBAIC00NCw3ICs0Myw3IEBAIGxvZ2dpbmcuYmFzaWNDb25maWco
bGV2ZWw9bG9nZ2luZy5JTkZPKQogbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18p
CiAKIGRlZiBnaF9yZXF1ZXN0KG1ldGhvZF9uYW1lLCB1cmwsIGJvZHk9Tm9uZSwgbWVkaWFfdHlw
ZT1Ob25lKToKLSAgICBnaXRodWJfdG9rZW4gPSBvcy5lbnZpcm9uWydERVBMT1lfVE9LRU4nXQor
ICAgIGdpdGh1Yl90b2tlbiA9IG9zLmVudmlyb25bJ0dJVEhVQl9UT0tFTiddCiAKICAgICBrd2Fy
Z3MgPSB7CiAgICAgICAgICdoZWFkZXJzJzogewpAQCAtNjMsMTAgKzYyLDIxIEBAIGRlZiBnaF9y
ZXF1ZXN0KG1ldGhvZF9uYW1lLCB1cmwsIGJvZHk9Tm9uZSwgbWVkaWFfdHlwZT1Ob25lKToKIAog
ICAgIGxvZ2dlci5pbmZvKCdSZXNwb25zZSBzdGF0dXMgY29kZTogJXMnLCByZXNwLnN0YXR1c19j
b2RlKQogCisgICAgIyBJZiBHaXRIdWIgdGhpbmtzIHRoZSBmaWVsZHMgYXJlIGludmFsaWQsIGl0
IHdpbGwgc2VuZCBhIDQyMiBiYWNrIGFuZAorICAgICMgaW5jbHVkZSBkZWJ1Z2dpbmcgaW5mb3Jt
YXRpb24gaW4gdGhlIGJvZHkuIFNlZQorICAgICMgaHR0cHM6Ly9kZXZlbG9wZXIuZ2l0aHViLmNv
bS92My8jY2xpZW50LWVycm9ycworICAgIGlmIHJlc3Auc3RhdHVzX2NvZGUgPT0gNDIyOgorICAg
ICAgICBsb2dnZXIuZXJyb3IocmVzcC5qc29uKCkpCisKICAgICByZXNwLnJhaXNlX2Zvcl9zdGF0
dXMoKQogCisgICAgaWYgcmVzcC5zdGF0dXNfY29kZSA9PSAyMDQ6CisgICAgICAgIHJldHVybiBO
b25lCiAgICAgcmV0dXJuIHJlc3AuanNvbigpCiAKK2NsYXNzIEdpdEh1YlJhdGVMaW1pdEV4Y2Vw
dGlvbihFeGNlcHRpb24pOgorICAgIHBhc3MKKwogZGVmIGd1YXJkKHJlc291cmNlKToKICAgICAn
JydEZWNvcmF0ZSBhIGBQcm9qZWN0YCBpbnN0YW5jZSBtZXRob2Qgd2hpY2ggaW50ZXJhY3RzIHdp
dGggdGhlIEdpdEh1YgogICAgIEFQSSwgZW5zdXJpbmcgdGhhdCB0aGUgc3Vic2VxdWVudCByZXF1
ZXN0IHdpbGwgbm90IGRlcGxldGUgdGhlIHJlbGV2YW50CkBAIC05MCw3ICsxMDAsNyBAQCBkZWYg
Z3VhcmQocmVzb3VyY2UpOgogICAgICAgICAgICAgKQogCiAgICAgICAgICAgICBpZiBsaW1pdCBh
bmQgZmxvYXQocmVtYWluaW5nKSAvIGxpbWl0IDwgQVBJX1JBVEVfTElNSVRfVEhSRVNIT0xEOgot
ICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICByYWlzZSBH
aXRIdWJSYXRlTGltaXRFeGNlcHRpb24oCiAgICAgICAgICAgICAgICAgICAgICdFeGl0aW5nIHRv
IGF2b2lkIEdpdEh1Yi5jb20gQVBJIHJlcXVlc3QgdGhyb3R0bGluZy4nCiAgICAgICAgICAgICAg
ICAgKQogCkBAIC0xMDMsNTQgKzExMyw2IEBAIGNsYXNzIFByb2plY3Qob2JqZWN0KToKICAgICAg
ICAgc2VsZi5faG9zdCA9IGhvc3QKICAgICAgICAgc2VsZi5fZ2l0aHViX3Byb2plY3QgPSBnaXRo
dWJfcHJvamVjdAogCi0gICAgQGd1YXJkKCdjb3JlJykKLSAgICBkZWYgZ2V0X3B1bGxfcmVxdWVz
dChzZWxmLCBudW1iZXIpOgotICAgICAgICB1cmwgPSAne30vcmVwb3Mve30vcHVsbHMve30nLmZv
cm1hdCgKLSAgICAgICAgICAgIHNlbGYuX2hvc3QsIHNlbGYuX2dpdGh1Yl9wcm9qZWN0LCBudW1i
ZXIKLSAgICAgICAgKQotCi0gICAgICAgIGxvZ2dlci5pbmZvKCdGZXRjaGluZyBQdWxsIFJlcXVl
c3QgJXMnLCBudW1iZXIpCi0gICAgICAgIHJldHVybiBnaF9yZXF1ZXN0KCdHRVQnLCB1cmwpCi0K
LSAgICBAZ3VhcmQoJ3NlYXJjaCcpCi0gICAgZGVmIGdldF9wdWxsX3JlcXVlc3RzKHNlbGYsIHVw
ZGF0ZWRfc2luY2UpOgotICAgICAgICB3aW5kb3dfc3RhcnQgPSB0aW1lLnN0cmZ0aW1lKCclWS0l
bS0lZFQlSDolTTolU1onLCB1cGRhdGVkX3NpbmNlKQotICAgICAgICB1cmwgPSAne30vc2VhcmNo
L2lzc3Vlcz9xPXJlcG86e30raXM6cHIrdXBkYXRlZDo+e30nLmZvcm1hdCgKLSAgICAgICAgICAg
IHNlbGYuX2hvc3QsIHNlbGYuX2dpdGh1Yl9wcm9qZWN0LCB3aW5kb3dfc3RhcnQKLSAgICAgICAg
KQotCi0gICAgICAgIGxvZ2dlci5pbmZvKAotICAgICAgICAgICAgJ1NlYXJjaGluZyBmb3IgUHVs
bCBSZXF1ZXN0cyB1cGRhdGVkIHNpbmNlICVzJywgd2luZG93X3N0YXJ0Ci0gICAgICAgICkKLQot
ICAgICAgICBkYXRhID0gZ2hfcmVxdWVzdCgnR0VUJywgdXJsKQotCi0gICAgICAgIGxvZ2dlci5p
bmZvKCdGb3VuZCAlZCBQdWxsIFJlcXVlc3RzJywgbGVuKGRhdGFbJ2l0ZW1zJ10pKQotCi0gICAg
ICAgIGlmIGRhdGFbJ2luY29tcGxldGVfcmVzdWx0cyddOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdJbmNvbXBsZXRlIHJlc3VsdHMnKQotCi0gICAgICAgIHJldHVybiB7cHJbJ251bWJl
ciddOiBwciBmb3IgcHIgaW4gZGF0YVsnaXRlbXMnXX0KLQotICAgIGRlZiBwdWxsX3JlcXVlc3Rf
aXNfZnJvbV9mb3JrKHNlbGYsIHB1bGxfcmVxdWVzdCk6Ci0gICAgICAgIHByX251bWJlciA9IHB1
bGxfcmVxdWVzdFsnbnVtYmVyJ10KLSAgICAgICAgbG9nZ2VyLmluZm8oJ0NoZWNraW5nIGlmIHB1
bGwgcmVxdWVzdCAlcyBpcyBmcm9tIGEgZm9yaycsIHByX251bWJlcikKLQotICAgICAgICAjIFdl
IG1heSBhbHJlYWR5IGhhdmUgdGhpcyBpbmZvcm1hdGlvbjsgaWYgc28gbm8gbmVlZCB0byBtYWtl
IGFub3RoZXIKLSAgICAgICAgIyBBUEkgY2FsbC4KLSAgICAgICAgaWYgJ2hlYWQnIG5vdCBpbiBw
dWxsX3JlcXVlc3Q6Ci0gICAgICAgICAgICBwdWxsX3JlcXVlc3QgPSBzZWxmLmdldF9wdWxsX3Jl
cXVlc3QocHJfbnVtYmVyKQotCi0gICAgICAgIHJlcG9fbmFtZSA9IHB1bGxfcmVxdWVzdFsnaGVh
ZCddWydyZXBvJ11bJ2Z1bGxfbmFtZSddCi0gICAgICAgIGlzX2ZvcmsgPSByZXBvX25hbWUgIT0g
c2VsZi5fZ2l0aHViX3Byb2plY3QKLQotICAgICAgICBsb2dnZXIuaW5mbygKLSAgICAgICAgICAg
ICdQdWxsIHJlcXVlc3QgJXMgaXMgZnJvbSBcJyVzXCcuIElzIGEgZm9yazogJXMnLAotICAgICAg
ICAgICAgcHJfbnVtYmVyLCByZXBvX25hbWUsIGlzX2ZvcmsKLSAgICAgICAgKQotCi0gICAgICAg
IHJldHVybiBpc19mb3JrCi0KICAgICBAZ3VhcmQoJ2NvcmUnKQogICAgIGRlZiBjcmVhdGVfcmVm
KHNlbGYsIHJlZnNwZWMsIHJldmlzaW9uKToKICAgICAgICAgdXJsID0gJ3t9L3JlcG9zL3t9L2dp
dC9yZWZzJy5mb3JtYXQoc2VsZi5faG9zdCwgc2VsZi5fZ2l0aHViX3Byb2plY3QpCkBAIC0xNjIs
NiArMTI0LDIzIEBAIGNsYXNzIFByb2plY3Qob2JqZWN0KToKICAgICAgICAgICAgICdzaGEnOiBy
ZXZpc2lvbgogICAgICAgICB9KQogCisgICAgQGd1YXJkKCdjb3JlJykKKyAgICBkZWYgZ2V0X3Jl
Zl9yZXZpc2lvbihzZWxmLCByZWZzcGVjKToKKyAgICAgICAgdXJsID0gJ3t9L3JlcG9zL3t9L2dp
dC9yZWZzL3t9Jy5mb3JtYXQoCisgICAgICAgICAgICBzZWxmLl9ob3N0LCBzZWxmLl9naXRodWJf
cHJvamVjdCwgcmVmc3BlYworICAgICAgICApCisKKyAgICAgICAgbG9nZ2VyLmluZm8oJ0ZldGNo
aW5nIHJlZiAiJXMiJywgcmVmc3BlYykKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBib2R5
ID0gZ2hfcmVxdWVzdCgnR0VUJywgdXJsKQorICAgICAgICAgICAgbG9nZ2VyLmluZm8oJ1JlZiBk
YXRhOiAlcycsIGpzb24uZHVtcHMoYm9keSwgaW5kZW50PTIpKQorICAgICAgICAgICAgcmV0dXJu
IGJvZHlbJ29iamVjdCddWydzaGEnXQorICAgICAgICBleGNlcHQgcmVxdWVzdHMuZXhjZXB0aW9u
cy5IVFRQRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIGUucmVzcG9uc2Uuc3RhdHVzX2NvZGUg
PT0gNDA0OgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICByYWlzZSBl
CisKICAgICBAZ3VhcmQoJ2NvcmUnKQogICAgIGRlZiB1cGRhdGVfcmVmKHNlbGYsIHJlZnNwZWMs
IHJldmlzaW9uKToKICAgICAgICAgdXJsID0gJ3t9L3JlcG9zL3t9L2dpdC9yZWZzL3t9Jy5mb3Jt
YXQoCkBAIC0xNzIsNiArMTUxLDE2IEBAIGNsYXNzIFByb2plY3Qob2JqZWN0KToKIAogICAgICAg
ICBnaF9yZXF1ZXN0KCdQQVRDSCcsIHVybCwgeydzaGEnOiByZXZpc2lvbn0pCiAKKyAgICBAZ3Vh
cmQoJ2NvcmUnKQorICAgIGRlZiBkZWxldGVfcmVmKHNlbGYsIHJlZnNwZWMpOgorICAgICAgICB1
cmwgPSAne30vcmVwb3Mve30vZ2l0L3JlZnMve30nLmZvcm1hdCgKKyAgICAgICAgICAgIHNlbGYu
X2hvc3QsIHNlbGYuX2dpdGh1Yl9wcm9qZWN0LCByZWZzcGVjCisgICAgICAgICkKKworICAgICAg
ICBsb2dnZXIuaW5mbygnRGVsZXRpbmcgcmVmICIlcyInLCByZWZzcGVjKQorCisgICAgICAgIGdo
X3JlcXVlc3QoJ0RFTEVURScsIHVybCkKKwogICAgIEBndWFyZCgnY29yZScpCiAgICAgZGVmIGNy
ZWF0ZV9kZXBsb3ltZW50KHNlbGYsIHB1bGxfcmVxdWVzdCwgcmV2aXNpb24pOgogICAgICAgICB1
cmwgPSAne30vcmVwb3Mve30vZGVwbG95bWVudHMnLmZvcm1hdCgKQEAgLTIwNiw3ICsxOTUsNyBA
QCBjbGFzcyBQcm9qZWN0KG9iamVjdCk6CiAgICAgICAgIHJldHVybiBkZXBsb3ltZW50cy5wb3Ao
KSBpZiBsZW4oZGVwbG95bWVudHMpIGVsc2UgTm9uZQogCiAgICAgQGd1YXJkKCdjb3JlJykKLSAg
ICBkZWYgdXBkYXRlX2RlcGxveW1lbnQoc2VsZiwgdGFyZ2V0LCBkZXBsb3ltZW50LCBzdGF0ZSwg
ZGVzY3JpcHRpb249JycpOgorICAgIGRlZiBhZGRfZGVwbG95bWVudF9zdGF0dXMoc2VsZiwgdGFy
Z2V0LCBkZXBsb3ltZW50LCBzdGF0ZSwgZGVzY3JpcHRpb249JycpOgogICAgICAgICBpZiBzdGF0
ZSBpbiAoJ3BlbmRpbmcnLCAnc3VjY2VzcycpOgogICAgICAgICAgICAgcHJfbnVtYmVyID0gZGVw
bG95bWVudFsnZW52aXJvbm1lbnQnXVtsZW4oREVQTE9ZTUVOVF9QUkVGSVgpOl0KICAgICAgICAg
ICAgIGVudmlyb25tZW50X3VybCA9ICd7fS97fScuZm9ybWF0KHRhcmdldCwgcHJfbnVtYmVyKQpA
QCAtMjIyLDczICsyMTEsNiBAQCBjbGFzcyBQcm9qZWN0KG9iamVjdCk6CiAgICAgICAgICAgICAn
ZW52aXJvbm1lbnRfdXJsJzogZW52aXJvbm1lbnRfdXJsCiAgICAgICAgIH0sICdhcHBsaWNhdGlv
bi92bmQuZ2l0aHViLmFudC1tYW4tcHJldmlldytqc29uJykKIAotY2xhc3MgUmVtb3RlKG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGdpdGh1Yl9wcm9qZWN0KToKLSAgICAgICAgIyBU
aGUgcmVwb3NpdG9yeSBpbiB0aGUgR2l0SHViIEFjdGlvbnMgZW52aXJvbm1lbnQgaXMgY29uZmln
dXJlZCB3aXRoCi0gICAgICAgICMgYSByZW1vdGUgd2hvc2UgVVJMIHVzZXMgdW5hdXRoZW50aWNh
dGVkIEhUVFBTLCBtYWtpbmcgaXQgdW5zdWl0YWJsZQotICAgICAgICAjIGZvciBwdXNoaW5nIGNo
YW5nZXMuCi0gICAgICAgIHNlbGYuX3Rva2VuID0gb3MuZW52aXJvblsnREVQTE9ZX1RPS0VOJ10K
LQotICAgIGRlZiBfZ2l0KHNlbGYsIGNvbW1hbmQpOgotICAgICAgICByZXR1cm4gc3VicHJvY2Vz
cy5jaGVja19vdXRwdXQoWwotICAgICAgICAgICAgJ2dpdCcsCi0gICAgICAgICAgICAnLWMnLAot
ICAgICAgICAgICAgJ2NyZWRlbnRpYWwudXNlcm5hbWU9e30nLmZvcm1hdChzZWxmLl90b2tlbiks
Ci0gICAgICAgICAgICAnLWMnLAotICAgICAgICAgICAgJ2NvcmUuYXNrUGFzcz10cnVlJywKLSAg
ICAgICAgXSArIGNvbW1hbmQpCi0KLSAgICBkZWYgZ2V0X3JldmlzaW9uKHNlbGYsIHJlZnNwZWMp
OgotICAgICAgICBvdXRwdXQgPSBzZWxmLl9naXQoWwotICAgICAgICAgICAgJ2xzLXJlbW90ZScs
Ci0gICAgICAgICAgICAnb3JpZ2luJywKLSAgICAgICAgICAgICdyZWZzL3t9Jy5mb3JtYXQocmVm
c3BlYykKLSAgICAgICAgXSkKLQotICAgICAgICBpZiBub3Qgb3V0cHV0OgotICAgICAgICAgICAg
cmV0dXJuIE5vbmUKLQotICAgICAgICByZXR1cm4gb3V0cHV0LmRlY29kZSgndXRmLTgnKS5zcGxp
dCgpWzBdCi0KLSAgICBkZWYgZGVsZXRlX3JlZihzZWxmLCByZWZzcGVjKToKLSAgICAgICAgZnVs
bF9yZWYgPSAncmVmcy97fScuZm9ybWF0KHJlZnNwZWMpCi0KLSAgICAgICAgbG9nZ2VyLmluZm8o
J0RlbGV0aW5nIHJlZiAiJXMiJywgcmVmc3BlYykKLQotICAgICAgICBzZWxmLl9naXQoWwotICAg
ICAgICAgICAgJ3B1c2gnLAotICAgICAgICAgICAgJ29yaWdpbicsCi0gICAgICAgICAgICAnLS1k
ZWxldGUnLAotICAgICAgICAgICAgZnVsbF9yZWYKLSAgICAgICAgXSkKLQotICAgIGRlZiBnZXRf
cHVsbF9yZXF1ZXN0c193aXRoX29wZW5fcmVmKHNlbGYpOgotICAgICAgICAnJydSZXR1cm5zIHB1
bGwgcmVxdWVzdHMgdGhhdCBoYXZlIGFuIG9wZW4gcmVmLgotCi0gICAgICAgIFRoaXMgY2hlY2tz
IGZvciBhbGwgcmVmcyB0aGF0IG1hdGNoIHRoZSBwYXR0ZXJuICdyZWZzL3Bycy1vcGVuL3twcn0n
LAotICAgICAgICBhbmQgdGhlbiByZXR1cm5zIHRoZW0gYXMgYSBsaXN0IG9mIHB1bGwgcmVxdWVz
dCBudW1iZXJzLiBOb3RlIHRoYXQgdGhpcwotICAgICAgICBtZXRob2QgZG9lcyBub3QgcXVlcnkg
Z2l0aHViOyB0aGlzIGlzIG9ubHkgdGhlIG9wZW4gcHVsbCByZXF1ZXN0cyBhcwotICAgICAgICBm
YXIgYXMgV1BUIGtub3dzLgotICAgICAgICAnJycKLQotICAgICAgICByZWZzcGVjID0gJ3JlZnMv
cHJzLW9wZW4vKicKLQotICAgICAgICBsb2dnZXIuaW5mbygnRmV0Y2hpbmcgYWxsIHJlZiBuYW1l
cyBtYXRjaGluZyAiJXMiJywgcmVmc3BlYykKLQotICAgICAgICBvdXRwdXQgPSBzZWxmLl9naXQo
WwotICAgICAgICAgICAgJ2xzLXJlbW90ZScsCi0gICAgICAgICAgICAnb3JpZ2luJywKLSAgICAg
ICAgICAgIHJlZnNwZWMsCi0gICAgICAgIF0pCi0KLSAgICAgICAgaWYgbm90IG91dHB1dDoKLSAg
ICAgICAgICAgIHJldHVybiBbXQotCi0gICAgICAgIHJlZl9uYW1lcyA9IFtsaW5lLnNwbGl0KClb
MV0gZm9yIGxpbmUgaW4gb3V0cHV0LmRlY29kZSgndXRmLTgnKS5zcGxpdGxpbmVzKCldCi0gICAg
ICAgIGxvZ2dlci5pbmZvKCclcyByZWYgbmFtZXMgZm91bmQnLCBsZW4ocmVmX25hbWVzKSkKLSAg
ICAgICAgcmV0dXJuIFtpbnQocmVmX25hbWUuc3BsaXQoJy8nKVsyXSkgZm9yIHJlZl9uYW1lIGlu
IHJlZl9uYW1lc10KLQotCiBkZWYgaXNfb3BlbihwdWxsX3JlcXVlc3QpOgogICAgIHJldHVybiBu
b3QgcHVsbF9yZXF1ZXN0WydjbG9zZWRfYXQnXQogCkBAIC0zMDYsMTMxICsyMjgsMTI4IEBAIGRl
ZiBzaG91bGRfYmVfbWlycm9yZWQocHJvamVjdCwgcHVsbF9yZXF1ZXN0KToKICAgICAgICAgICAg
ICAgICBwdWxsX3JlcXVlc3RbJ3VzZXInXVsnbG9naW4nXSBub3QgaW4gQVVUT01BVElPTl9HSVRI
VUJfVVNFUlMgYW5kCiAgICAgICAgICAgICAgICAgcHVsbF9yZXF1ZXN0WydhdXRob3JfYXNzb2Np
YXRpb24nXSBpbiBUUlVTVEVEX0FVVEhPUl9BU1NPQ0lBVElPTlMKICAgICAgICAgICAgICkKLSAg
ICAgICAgKSBhbmQKLSAgICAgICAgIyBRdWVyeSB0aGlzIGxhc3QgYXMgaXQgcmVxdWlyZXMgYW5v
dGhlciBBUEkgY2FsbCB0byB2ZXJpZnkKLSAgICAgICAgbm90IHByb2plY3QucHVsbF9yZXF1ZXN0
X2lzX2Zyb21fZm9yayhwdWxsX3JlcXVlc3QpCisgICAgICAgICkKICAgICApCiAKIGRlZiBpc19k
ZXBsb3llZChob3N0LCBkZXBsb3ltZW50KToKICAgICB3b3JrdHJlZV9uYW1lID0gZGVwbG95bWVu
dFsnZW52aXJvbm1lbnQnXVtsZW4oREVQTE9ZTUVOVF9QUkVGSVgpOl0KLSAgICByZXNwb25zZSA9
IHJlcXVlc3RzLmdldCgKLSAgICAgICAgJ3t9Ly5naXQvd29ya3RyZWVzL3t9L0hFQUQnLmZvcm1h
dChob3N0LCB3b3JrdHJlZV9uYW1lKQotICAgICkKKyAgICB1cmwgPSAne30vLmdpdC93b3JrdHJl
ZXMve30vSEVBRCcuZm9ybWF0KGhvc3QsIHdvcmt0cmVlX25hbWUpCisgICAgbG9nZ2VyLmluZm8o
J0lzc3VpbmcgcmVxdWVzdDogR0VUICVzJywgdXJsKQorICAgIHJlc3BvbnNlID0gcmVxdWVzdHMu
Z2V0KHVybCkKIAorICAgIGxvZ2dlci5pbmZvKCdSZXNwb25zZSBzdGF0dXMgY29kZTogJXMnLCBy
ZXNwb25zZS5zdGF0dXNfY29kZSkKICAgICBpZiByZXNwb25zZS5zdGF0dXNfY29kZSAhPSAyMDA6
CiAgICAgICAgIHJldHVybiBGYWxzZQogCisgICAgbG9nZ2VyLmluZm8oJ1Jlc3BvbnNlIHRleHQ6
ICVzJywgcmVzcG9uc2UudGV4dC5zdHJpcCgpKQogICAgIHJldHVybiByZXNwb25zZS50ZXh0LnN0
cmlwKCkgPT0gZGVwbG95bWVudFsnc2hhJ10KIAotZGVmIHN5bmNocm9uaXplKGhvc3QsIGdpdGh1
Yl9wcm9qZWN0LCB3aW5kb3cpOgotICAgICcnJ0luc3BlY3QgYWxsIFB1bGwgUmVxdWVzdHMgd2hp
Y2ggaGF2ZSBiZWVuIG1vZGlmaWVkIGluIGEgZ2l2ZW4gd2luZG93IG9mCi0gICAgdGltZS4gQWRk
IG9yIHJlbW92ZSB0aGUgInByZXZpZXciIGxhYmVsIGFuZCB1cGRhdGUgb3IgZGVsZXRlIHRoZSBy
ZWxldmFudAotICAgIGdpdCByZWZzIGFjY29yZGluZyB0byB0aGUgc3RhdHVzIG9mIGVhY2ggUHVs
bCBSZXF1ZXN0LicnJworZGVmIHVwZGF0ZV9taXJyb3JfcmVmcyhwcm9qZWN0LCBwdWxsX3JlcXVl
c3QpOgorICAgICcnJ1VwZGF0ZSB0aGUgV1BUIHJlZnMgdGhhdCBjb250cm9sIG1pcnJvcmluZyBv
ZiB0aGlzIHB1bGwgcmVxdWVzdC4KIAotICAgIHByb2plY3QgPSBQcm9qZWN0KGhvc3QsIGdpdGh1
Yl9wcm9qZWN0KQotICAgIHJlbW90ZSA9IFJlbW90ZShnaXRodWJfcHJvamVjdCkKKyAgICBUd28g
c2V0cyBvZiByZWZzIGFyZSB1c2VkIHRvIGNvbnRyb2wgd3B0cHIubGl2ZSdzIG1pcnJvcmluZyBv
ZiBwdWxsCisgICAgcmVxdWVzdHM6CiAKLSAgICBwdWxsX3JlcXVlc3RzID0gcHJvamVjdC5nZXRf
cHVsbF9yZXF1ZXN0cygKLSAgICAgICAgdGltZS5nbXRpbWUodGltZS50aW1lKCkgLSB3aW5kb3cp
Ci0gICAgKQorICAgICAgICAxLiByZWZzL3Bycy10cnVzdGVkLWZvci1wcmV2aWV3L3tudW1iZXJ9
CisgICAgICAgIDIuIHJlZnMvcHJzLW9wZW4ve251bWJlcn0KIAotICAgICMgSXQgaXMgcG9zc2li
bGUgd2UgbWF5IG1pc3Mgc29tZSBwdWxsIHJlcXVlc3RzIGlmIHRoaXMgc2NyaXB0IGJyZWFrcyBv
ciBpcwotICAgICMgbm90IHJ1biBmb3IgYSB3aGlsZSBhbmQgdGhlIFBSIGZhbGxzIG91dHNpZGUg
dGhlIGNoZWNrZWQgd2luZG93LiBUbwotICAgICMgZW5zdXJlIHRoYXQgY2xvc2VkIHB1bGwgcmVx
dWVzdHMgYXJlIGRlbGV0ZWQsIGV4dGVuZCB0aGUgbGlzdCBvZiBwdWxsCi0gICAgIyByZXF1ZXN0
cyB0byBsb29rIGF0IHdpdGggYW55IHRoYXQgaGF2ZSBhbiBleGlzdGluZyByZWZzL3Bycy1vcGVu
L3twcn0gcmVmCi0gICAgIyBpbiB0aGUgcmVwby4KLSAgICBleGlzdGluZ19wcl9udW1iZXJzID0g
cmVtb3RlLmdldF9wdWxsX3JlcXVlc3RzX3dpdGhfb3Blbl9yZWYoKQotICAgIGZvciBwcl9udW1i
ZXIgaW4gZXhpc3RpbmdfcHJfbnVtYmVyczoKLSAgICAgICAgaWYgcHJfbnVtYmVyIGluIHB1bGxf
cmVxdWVzdHM6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICBwdWxsX3JlcXVlc3QgPSBw
cm9qZWN0LmdldF9wdWxsX3JlcXVlc3QocHJfbnVtYmVyKQotICAgICAgICBwdWxsX3JlcXVlc3Rz
W3B1bGxfcmVxdWVzdFsnbnVtYmVyJ11dID0gcHVsbF9yZXF1ZXN0Ci0KLSAgICBmb3IgcHVsbF9y
ZXF1ZXN0IGluIHB1bGxfcmVxdWVzdHMudmFsdWVzKCk6Ci0gICAgICAgIGxvZ2dlci5pbmZvKCdQ
cm9jZXNzaW5nIFB1bGwgUmVxdWVzdCAjJShudW1iZXIpZCcsIHB1bGxfcmVxdWVzdCkKLQotICAg
ICAgICByZWZzcGVjX3RydXN0ZWQgPSAncHJzLXRydXN0ZWQtZm9yLXByZXZpZXcve251bWJlcn0n
LmZvcm1hdCgKLSAgICAgICAgICAgICoqcHVsbF9yZXF1ZXN0Ci0gICAgICAgICkKLSAgICAgICAg
cmVmc3BlY19vcGVuID0gJ3Bycy1vcGVuL3tudW1iZXJ9Jy5mb3JtYXQoKipwdWxsX3JlcXVlc3Qp
Ci0gICAgICAgIHJldmlzaW9uX2xhdGVzdCA9IHJlbW90ZS5nZXRfcmV2aXNpb24oCi0gICAgICAg
ICAgICAncHVsbC97bnVtYmVyfS9oZWFkJy5mb3JtYXQoKipwdWxsX3JlcXVlc3QpCi0gICAgICAg
ICkKLSAgICAgICAgcmV2aXNpb25fdHJ1c3RlZCA9IHJlbW90ZS5nZXRfcmV2aXNpb24ocmVmc3Bl
Y190cnVzdGVkKQotICAgICAgICByZXZpc2lvbl9vcGVuID0gcmVtb3RlLmdldF9yZXZpc2lvbihy
ZWZzcGVjX29wZW4pCisgICAgd3B0cHIubGl2ZSB3aWxsIG9ubHkgbWlycm9yIGEgcHVsbCByZXF1
ZXN0IGlmIGJvdGggZXhpc3QgZm9yIHRoZSBnaXZlbiBwdWxsCisgICAgcmVxdWVzdCBudW1iZXI7
IG90aGVyd2lzZSB0aGUgcHVsbCByZXF1ZXN0IGlzIGVpdGhlciBub3Qgb3BlbiBvciBpcyBub3QK
KyAgICB0cnVzdHdvcnRoeSAoZS5nLiBjYW1lIGZyb20gc29tZW9uZSB3aG8gZG9lc24ndCBoYXZl
IHB1c2ggYWNjZXNzIGFueXdheS4pCiAKLSAgICAgICAgaWYgc2hvdWxkX2JlX21pcnJvcmVkKHBy
b2plY3QsIHB1bGxfcmVxdWVzdCk6Ci0gICAgICAgICAgICBsb2dnZXIuaW5mbygnUHVsbCBSZXF1
ZXN0IHNob3VsZCBiZSBtaXJyb3JlZCcpCisgICAgVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgcmV2
aXNpb24gdGhhdCBpcyBiZWluZyBtaXJyb3JlZCwgb3IgTm9uZSBpZiB0aGUKKyAgICBwdWxsIHJl
cXVlc3Qgc2hvdWxkIG5vdCBiZSBtaXJyb3JlZC4KKyAgICAnJycKIAotICAgICAgICAgICAgaWYg
cmV2aXNpb25fdHJ1c3RlZCBpcyBOb25lOgotICAgICAgICAgICAgICAgIHByb2plY3QuY3JlYXRl
X3JlZihyZWZzcGVjX3RydXN0ZWQsIHJldmlzaW9uX2xhdGVzdCkKLSAgICAgICAgICAgIGVsaWYg
cmV2aXNpb25fdHJ1c3RlZCAhPSByZXZpc2lvbl9sYXRlc3Q6Ci0gICAgICAgICAgICAgICAgcHJv
amVjdC51cGRhdGVfcmVmKHJlZnNwZWNfdHJ1c3RlZCwgcmV2aXNpb25fbGF0ZXN0KQorICAgIHJl
ZnNwZWNfdHJ1c3RlZCA9ICdwcnMtdHJ1c3RlZC1mb3ItcHJldmlldy97bnVtYmVyfScuZm9ybWF0
KAorICAgICAgICAqKnB1bGxfcmVxdWVzdAorICAgICkKKyAgICByZWZzcGVjX29wZW4gPSAncHJz
LW9wZW4ve251bWJlcn0nLmZvcm1hdCgqKnB1bGxfcmVxdWVzdCkKIAotICAgICAgICAgICAgaWYg
cmV2aXNpb25fb3BlbiBpcyBOb25lOgotICAgICAgICAgICAgICAgIHByb2plY3QuY3JlYXRlX3Jl
ZihyZWZzcGVjX29wZW4sIHJldmlzaW9uX2xhdGVzdCkKLSAgICAgICAgICAgIGVsaWYgcmV2aXNp
b25fb3BlbiAhPSByZXZpc2lvbl9sYXRlc3Q6Ci0gICAgICAgICAgICAgICAgcHJvamVjdC51cGRh
dGVfcmVmKHJlZnNwZWNfb3BlbiwgcmV2aXNpb25fbGF0ZXN0KQorICAgIHJldmlzaW9uX2xhdGVz
dCA9IHB1bGxfcmVxdWVzdFsnaGVhZCddWydzaGEnXQorICAgIHJldmlzaW9uX3RydXN0ZWQgPSBw
cm9qZWN0LmdldF9yZWZfcmV2aXNpb24ocmVmc3BlY190cnVzdGVkKQorICAgIHJldmlzaW9uX29w
ZW4gPSBwcm9qZWN0LmdldF9yZWZfcmV2aXNpb24ocmVmc3BlY19vcGVuKQogCi0gICAgICAgICAg
ICBpZiBwcm9qZWN0LmdldF9kZXBsb3ltZW50KHJldmlzaW9uX2xhdGVzdCkgaXMgTm9uZToKLSAg
ICAgICAgICAgICAgICBwcm9qZWN0LmNyZWF0ZV9kZXBsb3ltZW50KAotICAgICAgICAgICAgICAg
ICAgICBwdWxsX3JlcXVlc3QsIHJldmlzaW9uX2xhdGVzdAotICAgICAgICAgICAgICAgICkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdQdWxsIFJlcXVlc3Qgc2hvdWxk
IG5vdCBiZSBtaXJyb3JlZCcpCisgICAgaWYgc2hvdWxkX2JlX21pcnJvcmVkKHByb2plY3QsIHB1
bGxfcmVxdWVzdCk6CisgICAgICAgIGxvZ2dlci5pbmZvKCdQdWxsIFJlcXVlc3Qgc2hvdWxkIGJl
IG1pcnJvcmVkJykKIAotICAgICAgICAgICAgaWYgbm90IGhhc19taXJyb3JpbmdfbGFiZWwocHVs
bF9yZXF1ZXN0KSBhbmQgcmV2aXNpb25fdHJ1c3RlZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICByZW1vdGUuZGVsZXRlX3JlZihyZWZzcGVjX3RydXN0ZWQpCisgICAgICAgIGlmIHJldmlz
aW9uX3RydXN0ZWQgaXMgTm9uZToKKyAgICAgICAgICAgIHByb2plY3QuY3JlYXRlX3JlZihyZWZz
cGVjX3RydXN0ZWQsIHJldmlzaW9uX2xhdGVzdCkKKyAgICAgICAgZWxpZiByZXZpc2lvbl90cnVz
dGVkICE9IHJldmlzaW9uX2xhdGVzdDoKKyAgICAgICAgICAgIHByb2plY3QudXBkYXRlX3JlZihy
ZWZzcGVjX3RydXN0ZWQsIHJldmlzaW9uX2xhdGVzdCkKIAotICAgICAgICAgICAgaWYgcmV2aXNp
b25fb3BlbiBpcyBub3QgTm9uZSBhbmQgbm90IGlzX29wZW4ocHVsbF9yZXF1ZXN0KToKLSAgICAg
ICAgICAgICAgICByZW1vdGUuZGVsZXRlX3JlZihyZWZzcGVjX29wZW4pCisgICAgICAgIGlmIHJl
dmlzaW9uX29wZW4gaXMgTm9uZToKKyAgICAgICAgICAgIHByb2plY3QuY3JlYXRlX3JlZihyZWZz
cGVjX29wZW4sIHJldmlzaW9uX2xhdGVzdCkKKyAgICAgICAgZWxpZiByZXZpc2lvbl9vcGVuICE9
IHJldmlzaW9uX2xhdGVzdDoKKyAgICAgICAgICAgIHByb2plY3QudXBkYXRlX3JlZihyZWZzcGVj
X29wZW4sIHJldmlzaW9uX2xhdGVzdCkKIAotZGVmIGRldGVjdChob3N0LCBnaXRodWJfcHJvamVj
dCwgdGFyZ2V0LCB0aW1lb3V0KToKLSAgICAnJydNYW5hZ2UgdGhlIHN0YXR1cyBvZiBhIEdpdEh1
YiBEZXBsb3ltZW50IGJ5IHBvbGxpbmcgdGhlIFB1bGwgUmVxdWVzdAotICAgIHByZXZpZXcgd2Vi
c2l0ZSB1bnRpbCB0aGUgRGVwbG95bWVudCBpcyBjb21wbGV0ZSBvciBhIHRpbWVvdXQgaXMKLSAg
ICByZWFjaGVkLicnJworICAgICAgICByZXR1cm4gcmV2aXNpb25fbGF0ZXN0CiAKLSAgICBwcm9q
ZWN0ID0gUHJvamVjdChob3N0LCBnaXRodWJfcHJvamVjdCkKKyAgICBsb2dnZXIuaW5mbygnUHVs
bCBSZXF1ZXN0IHNob3VsZCBub3QgYmUgbWlycm9yZWQnKQogCi0gICAgd2l0aCBvcGVuKG9zLmVu
dmlyb25bJ0dJVEhVQl9FVkVOVF9QQVRIJ10pIGFzIGhhbmRsZToKLSAgICAgICAgZGF0YSA9IGpz
b24ubG9hZHMoaGFuZGxlLnJlYWQoKSkKKyAgICBpZiBub3QgaGFzX21pcnJvcmluZ19sYWJlbChw
dWxsX3JlcXVlc3QpIGFuZCByZXZpc2lvbl90cnVzdGVkIGlzIG5vdCBOb25lOgorICAgICAgICBw
cm9qZWN0LmRlbGV0ZV9yZWYocmVmc3BlY190cnVzdGVkKQogCi0gICAgbG9nZ2VyLmluZm8oJ0V2
ZW50IGRhdGE6ICVzJywganNvbi5kdW1wcyhkYXRhLCBpbmRlbnQ9MikpCisgICAgaWYgcmV2aXNp
b25fb3BlbiBpcyBub3QgTm9uZSBhbmQgbm90IGlzX29wZW4ocHVsbF9yZXF1ZXN0KToKKyAgICAg
ICAgcHJvamVjdC5kZWxldGVfcmVmKHJlZnNwZWNfb3BlbikKIAotICAgIGRlcGxveW1lbnQgPSBk
YXRhWydkZXBsb3ltZW50J10KKyAgICAjIE5vIHJldmlzaW9uIHRvIGJlIGRlcGxveWVkIHRvIHdw
dHByLmxpdmUKKyAgICByZXR1cm4gTm9uZQogCi0gICAgaWYgbm90IGRlcGxveW1lbnRbJ2Vudmly
b25tZW50J10uc3RhcnRzd2l0aChERVBMT1lNRU5UX1BSRUZJWCk6Ci0gICAgICAgIGxvZ2dlci5p
bmZvKAotICAgICAgICAgICAgJ0RlcGxveW1lbnQgZW52aXJvbm1lbnQgIiVzIiBpcyB1bnJlY29n
bml6ZWQuIEV4aXRpbmcuJywKLSAgICAgICAgICAgIGRlcGxveW1lbnRbJ2Vudmlyb25tZW50J10K
LSAgICAgICAgKQorY2xhc3MgRGVwbG95bWVudEZhaWxlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgor
ICAgIHBhc3MKKworZGVmIGRlcGxveShwcm9qZWN0LCB0YXJnZXQsIHB1bGxfcmVxdWVzdCwgcmV2
aXNpb24sIHRpbWVvdXQpOgorICAgICcnJ0NyZWF0ZSBhIEdpdEh1YiBkZXBsb3ltZW50IGZvciB0
aGUgZ2l2ZW4gcHVsbCByZXF1ZXN0IGFuZCByZXZpc2lvbi4KKworICAgIFRoaXMgbWV0aG9kIGNy
ZWF0ZXMgYSBwZW5kaW5nIEdpdEh1YiBkZXBsb3ltZW50LCB3YWl0cyBmb3IgdGhlCisgICAgY29y
cmVzcG9uZGluZyByZXZpc2lvbiB0byBiZSBhdmFpbGFibGUgb24gd3B0cHIubGl2ZSBhbmQgbWFy
a3MgdGhlCisgICAgZGVwbG95bWVudCBhcyBzdWNjZXNzZnVsLiBJZiB0aGUgcmV2aXNpb24gZG9l
cyBub3QgYXBwZWFyIGluIHRoZSBnaXZlbgorICAgIHRpbWVvdXQsIHRoZSBkZXBsb3ltZW50IGlz
IG1hcmtlZCBhcyBlcnJvcmVkIGluc3RlYWQuJycnCisgICAgaWYgcHJvamVjdC5nZXRfZGVwbG95
bWVudChyZXZpc2lvbikgaXMgbm90IE5vbmU6CiAgICAgICAgIHJldHVybgogCisgICAgZGVwbG95
bWVudCA9IHByb2plY3QuY3JlYXRlX2RlcGxveW1lbnQocHVsbF9yZXF1ZXN0LCByZXZpc2lvbikK
KwogICAgIG1lc3NhZ2UgPSAnV2FpdGluZyB1cCB0byB7fSBzZWNvbmRzIGZvciBEZXBsb3ltZW50
IHt9IHRvIGJlIGF2YWlsYWJsZSBvbiB7fScuZm9ybWF0KAogICAgICAgICB0aW1lb3V0LCBkZXBs
b3ltZW50WydlbnZpcm9ubWVudCddLCB0YXJnZXQKICAgICApCiAgICAgbG9nZ2VyLmluZm8obWVz
c2FnZSkKLSAgICBwcm9qZWN0LnVwZGF0ZV9kZXBsb3ltZW50KHRhcmdldCwgZGVwbG95bWVudCwg
J3BlbmRpbmcnLCBtZXNzYWdlKQorICAgIHByb2plY3QuYWRkX2RlcGxveW1lbnRfc3RhdHVzKHRh
cmdldCwgZGVwbG95bWVudCwgJ3BlbmRpbmcnLCBtZXNzYWdlKQogCiAgICAgc3RhcnQgPSB0aW1l
LnRpbWUoKQotCiAgICAgd2hpbGUgbm90IGlzX2RlcGxveWVkKHRhcmdldCwgZGVwbG95bWVudCk6
CiAgICAgICAgIGlmIHRpbWUudGltZSgpIC0gc3RhcnQgPiB0aW1lb3V0OgogICAgICAgICAgICAg
bWVzc2FnZSA9ICdEZXBsb3ltZW50IGRpZCBub3QgYmVjb21lIGF2YWlsYWJsZSBhZnRlciB7fSBz
ZWNvbmRzJy5mb3JtYXQodGltZW91dCkKLSAgICAgICAgICAgIHByb2plY3QudXBkYXRlX2RlcGxv
eW1lbnQodGFyZ2V0LCBkZXBsb3ltZW50LCAnZXJyb3InLCBtZXNzYWdlKQotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKG1lc3NhZ2UpCisgICAgICAgICAgICBwcm9qZWN0LmFkZF9kZXBsb3lt
ZW50X3N0YXR1cyh0YXJnZXQsIGRlcGxveW1lbnQsICdlcnJvcicsIG1lc3NhZ2UpCisgICAgICAg
ICAgICByYWlzZSBEZXBsb3ltZW50RmFpbGVkRXhjZXB0aW9uKG1lc3NhZ2UpCiAKICAgICAgICAg
dGltZS5zbGVlcChQT0xMSU5HX1BFUklPRCkKIAotICAgIHJlc3VsdCA9IHByb2plY3QudXBkYXRl
X2RlcGxveW1lbnQodGFyZ2V0LCBkZXBsb3ltZW50LCAnc3VjY2VzcycpCisgICAgcmVzdWx0ID0g
cHJvamVjdC5hZGRfZGVwbG95bWVudF9zdGF0dXModGFyZ2V0LCBkZXBsb3ltZW50LCAnc3VjY2Vz
cycpCiAgICAgbG9nZ2VyLmluZm8oanNvbi5kdW1wcyhyZXN1bHQsIGluZGVudD0yKSkKIAorZGVm
IG1haW4oaG9zdCwgZ2l0aHViX3Byb2plY3QsIHRhcmdldCwgdGltZW91dCk6CisgICAgcHJvamVj
dCA9IFByb2plY3QoaG9zdCwgZ2l0aHViX3Byb2plY3QpCisKKyAgICB3aXRoIG9wZW4ob3MuZW52
aXJvblsnR0lUSFVCX0VWRU5UX1BBVEgnXSkgYXMgaGFuZGxlOgorICAgICAgICBkYXRhID0ganNv
bi5sb2FkKGhhbmRsZSkKKworICAgIGxvZ2dlci5pbmZvKCdFdmVudCBkYXRhOiAlcycsIGpzb24u
ZHVtcHMoZGF0YSwgaW5kZW50PTIpKQorCisgICAgcHVsbF9yZXF1ZXN0ID0gZGF0YVsncHVsbF9y
ZXF1ZXN0J10KKworICAgIGxvZ2dlci5pbmZvKCdQcm9jZXNzaW5nIFB1bGwgUmVxdWVzdCAjJShu
dW1iZXIpZCcsIHB1bGxfcmVxdWVzdCkKKworICAgIHJldmlzaW9uX3RvX21pcnJvciA9IHVwZGF0
ZV9taXJyb3JfcmVmcyhwcm9qZWN0LCBwdWxsX3JlcXVlc3QpCisgICAgaWYgcmV2aXNpb25fdG9f
bWlycm9yOgorICAgICAgICBkZXBsb3kocHJvamVjdCwgdGFyZ2V0LCBwdWxsX3JlcXVlc3QsIHJl
dmlzaW9uX3RvX21pcnJvciwgdGltZW91dCkKKwogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
ICAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigKLSAgICAgICAgZGVzY3JpcHRp
b249JycnU3luY2hyb25pemUgdGhlIHN0YXRlIG9mIGEgR2l0SHViLmNvbSBwcm9qZWN0IHdpdGgg
dGhlCi0gICAgICAgICAgICB1bmRlcmx5aW5nIGdpdCByZXBvc2l0b3J5IGluIG9yZGVyIHRvIHN1
cHBvcnQgYSBleHRlcm5hbGx5LWhvc3RlZAotICAgICAgICAgICAgUHVsbCBSZXF1ZXN0IHByZXZp
ZXcgc3lzdGVtLiBDb21tdW5pY2F0ZSB0aGUgc3RhdGUgb2YgdGhhdCBzeXN0ZW0KLSAgICAgICAg
ICAgIHZpYSBHaXRIdWIgRGVwbG95bWVudHMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggUHVsbCBSZXF1
ZXN0LicnJworICAgICAgICBkZXNjcmlwdGlvbj0nJydNaXJyb3IgYSBwdWxsIHJlcXVlc3QgdG8g
YW4gZXh0ZXJuYWxseS1ob3N0ZWQgcHJldmlldworICAgICAgICAgICAgc3lzdGVtLCBhbmQgY3Jl
YXRlIGEgR2l0SHViIERlcGxveW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWxsCisgICAgICAg
ICAgICByZXF1ZXN0IHBvaW50aW5nIGF0IHRoZSBwcmV2aWV3LicnJwogICAgICkKICAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAnLS1ob3N0JywgcmVxdWlyZWQ9VHJ1ZSwgaGVscD0n
dGhlIGxvY2F0aW9uIG9mIHRoZSBHaXRIdWIgQVBJIHNlcnZlcicKQEAgLTQ0MSwzNiArMzYwLDE5
IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgICAgIGhlbHA9JycndGhlIEdpdEh1
YiBvcmdhbml6YXRpb24gYW5kIEdpdEh1YiBwcm9qZWN0IG5hbWUsIHNlcGFyYXRlZCBieQogICAg
ICAgICAgICAgYSBmb3J3YXJkIHNsYXNoIChlLmcuICJ3ZWItcGxhdGZvcm0tdGVzdHMvd3B0Iikn
JycKICAgICApCi0gICAgc3VicGFyc2VycyA9IHBhcnNlci5hZGRfc3VicGFyc2Vycyh0aXRsZT0n
c3ViY29tbWFuZHMnKQotCi0gICAgcGFyc2VyX3N5bmMgPSBzdWJwYXJzZXJzLmFkZF9wYXJzZXIo
Ci0gICAgICAgICdzeW5jaHJvbml6ZScsIGhlbHA9c3luY2hyb25pemUuX19kb2NfXwotICAgICkK
LSAgICBwYXJzZXJfc3luYy5hZGRfYXJndW1lbnQoCi0gICAgICAgICctLXdpbmRvdycsCi0gICAg
ICAgIHR5cGU9aW50LAotICAgICAgICByZXF1aXJlZD1UcnVlLAotICAgICAgICBoZWxwPScnJ3Ro
ZSBudW1iZXIgb2Ygc2Vjb25kcyBwcmlvciB0byB0aGUgY3VycmVudCBtb21lbnQgd2l0aGluIHdo
aWNoCi0gICAgICAgICAgICB0byBzZWFyY2ggZm9yIEdpdEh1YiBQdWxsIFJlcXVlc3RzLiBBbnkg
UHVsbCBSZXF1ZXN0cyB1cGRhdGVkIGluCi0gICAgICAgICAgICB0aGlzIHRpbWUgZnJhbWUgd2ls
bCBiZSBjb25zaWRlcmVkIGZvciBzeW5jaHJvbml6YXRpb24uJycnCi0gICAgKQotICAgIHBhcnNl
cl9zeW5jLnNldF9kZWZhdWx0cyhmdW5jPXN5bmNocm9uaXplKQotCi0gICAgcGFyc2VyX2RldGVj
dCA9IHN1YnBhcnNlcnMuYWRkX3BhcnNlcignZGV0ZWN0JywgaGVscD1kZXRlY3QuX19kb2NfXykK
LSAgICBwYXJzZXJfZGV0ZWN0LmFkZF9hcmd1bWVudCgKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KAogICAgICAgICAnLS10YXJnZXQnLAogICAgICAgICByZXF1aXJlZD1UcnVlLAogICAgICAgICBo
ZWxwPScnJ3RoZSBVUkwgb2YgdGhlIHdlYnNpdGUgdG8gd2hpY2ggc3VibWlzc2lvbiBwcmV2aWV3
cyBhcmUKICAgICAgICAgICAgIGV4cGVjdGVkIHRvIGJlY29tZSBhdmFpbGFibGUnJycKICAgICAp
Ci0gICAgcGFyc2VyX2RldGVjdC5hZGRfYXJndW1lbnQoCisgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgKICAgICAgICAgJy0tdGltZW91dCcsCiAgICAgICAgIHR5cGU9aW50LAogICAgICAgICByZXF1
aXJlZD1UcnVlLAogICAgICAgICBoZWxwPScnJ3RoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0
IGZvciBhIHN1Ym1pc3Npb24gcHJldmlldyB0bwogICAgICAgICAgICAgYmVjb21lIGF2YWlsYWJs
ZSBiZWZvcmUgcmVwb3J0aW5nIGEgR2l0SHViIERlcGxveW1lbnQgZmFpbHVyZScnJwogICAgICkK
LSAgICBwYXJzZXJfZGV0ZWN0LnNldF9kZWZhdWx0cyhmdW5jPWRldGVjdCkKIAogICAgIHZhbHVl
cyA9IGRpY3QodmFycyhwYXJzZXIucGFyc2VfYXJncygpKSkKLSAgICB2YWx1ZXMucG9wKCdmdW5j
JykoKip2YWx1ZXMpCisgICAgbWFpbigqKnZhbHVlcykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVu
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90YXNrY2x1c3Rlci1ydW4ucHkKaW5kZXggNDlhN2QxNjMzODU2MjgzMjBiZTg1ZDZlNjFjMjdj
NDEzMTRkN2Y4OS4uMzU2MDIyMDM0YjE0NDhlMDdkYmZiNmFmNzFhNzBjNmNkZjg2YmM0MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS90YXNrY2x1c3Rlci1ydW4ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90YXNrY2x1c3Rlci1ydW4ucHkKQEAgLTYyLDcgKzYy
LDcgQEAgZGVmIG1haW4ocHJvZHVjdCwgY2hhbm5lbCwgY29tbWl0X3JhbmdlLCB3cHRfYXJncyk6
CiAgICAgKQogICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCiAKLSAgICBzdWJwcm9jZXNz
LmNhbGwoWydweXRob24nLCAnLi93cHQnLCAnbWFuaWZlc3QtZG93bmxvYWQnXSkKKyAgICBzdWJw
cm9jZXNzLmNhbGwoWydweXRob24zJywgJy4vd3B0JywgJ21hbmlmZXN0LWRvd25sb2FkJ10pCiAK
ICAgICBpZiBjb21taXRfcmFuZ2U6CiAgICAgICAgIGxvZ2dlci5pbmZvKApAQCAtODgsNyArODgs
NyBAQCBkZWYgbWFpbihwcm9kdWN0LCBjaGFubmVsLCBjb21taXRfcmFuZ2UsIHdwdF9hcmdzKToK
ICAgICBpZiBwcm9kdWN0ID09ICJzZXJ2byIgYW5kICItLXRlc3QtdHlwZT13ZHNwZWMiIGluIHdw
dF9hcmdzOgogICAgICAgICB3cHRfYXJncyA9IFtpdGVtIGZvciBpdGVtIGluIHdwdF9hcmdzIGlm
IG5vdCBpdGVtLnN0YXJ0c3dpdGgoIi0tcHJvY2Vzc2VzIildCiAKLSAgICBjb21tYW5kID0gWyJw
eXRob24iLCAiLi93cHQiLCAicnVuIl0gKyB3cHRfYXJncyArIFtwcm9kdWN0XQorICAgIGNvbW1h
bmQgPSBbInB5dGhvbjMiLCAiLi93cHQiLCAicnVuIl0gKyB3cHRfYXJncyArIFtwcm9kdWN0XQog
CiAgICAgbG9nZ2VyLmluZm8oIkV4ZWN1dGluZyBjb21tYW5kOiAlcyIgJSAiICIuam9pbihjb21t
YW5kKSkKICAgICB3aXRoIG9wZW4oIi9ob21lL3Rlc3QvYXJ0aWZhY3RzL2NoZWNrcnVuLm1kIiwg
ImEiKSBhcyBmOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kZWNpc2lvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvZGVjaXNpb24ucHkKaW5kZXggZjUy
ZjViMDkzZjBmNDE2MzI2MTM1NzhmNDQ5MTg4ZjgyYmMwM2FiOS4uYjA4OTA3NzUwNmM2MjkxMjIz
NTNmNGEyZWI1ZDEyMzg0NWU5YzY3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kZWNpc2lvbi5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL2RlY2lz
aW9uLnB5CkBAIC0xMzgsNyArMTM4LDcgQEAgZGVmIGdldF9mZXRjaF9yZXYoZXZlbnQpOgogICAg
ICAgICAgICAgICAgIGlmIG5vdCBvdXRwdXQ6CiAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5l
cnJvcigiRmFpbGVkIHRvIGdldCBjb21taXQgZm9yICVzIiAlIHJlZikKICAgICAgICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzaGEgPSBvdXRwdXQuc3BsaXQoKVswXQorICAg
ICAgICAgICAgICAgICAgICBzaGEgPSBvdXRwdXQuZGVjb2RlKCJ1dGYtOCIpLnNwbGl0KClbMF0K
ICAgICAgICAgICAgIHJ2LmFwcGVuZChzaGEpCiAgICAgICAgIHJ2ID0gdHVwbGUocnYpCiAgICAg
ZWxzZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvdGFza3MvdGVzdC55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3Rlc3QueW1sCmluZGV4IDU3
OGI3Njk0NTViMmFmYmFlNDNmYTFkNmFkMDZmOWY0NDc0MzUzMzUuLmIzYTM5NjA2ODkzMzY2MTg0
OWU2MjhjZWVlYmIxMGY2YTkwYmU1MzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGFza3MvdGVzdC55bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90
YXNrcy90ZXN0LnltbApAQCAtNTgxLDcgKzU4MSw3IEBAIHRhc2tzOgogICAgICAgICAtIHdwdC1i
YXNlCiAgICAgICAgIC0gdHJpZ2dlci1wcgogICAgICAgICAtIGJyb3dzZXItZmlyZWZveAotICAg
ICAgY29tbWFuZDogLi90b29scy9jaS9jaV93cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUuc2gKKyAg
ICAgIGNvbW1hbmQ6IC4vdG9vbHMvY2kvY2lfd3B0cnVubmVyX2luZnJhc3RydWN0dXJlLnNoIC0t
cHkyCiAgICAgICBpbnN0YWxsOgogICAgICAgICAtIGxpYm5zczMtdG9vbHMKICAgICAgICAgLSBs
aWJhcHBpbmRpY2F0b3IxCkBAIC02MDYsNyArNjA2LDggQEAgdGFza3M6CiAgICAgICB1c2U6CiAg
ICAgICAgIC0gd3B0LWJhc2UKICAgICAgICAgLSB0cmlnZ2VyLXByCi0gICAgICBjb21tYW5kOiAu
L3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaCAtLXB5MworICAgICAgICAt
IGJyb3dzZXItZmlyZWZveAorICAgICAgY29tbWFuZDogLi90b29scy9jaS9jaV93cHRydW5uZXJf
aW5mcmFzdHJ1Y3R1cmUuc2gKICAgICAgIGluc3RhbGw6CiAgICAgICAgIC0gcHl0aG9uMy1waXAK
ICAgICAgICAgLSBsaWJuc3MzLXRvb2xzCkBAIC02MTUsNiArNjE2LDcgQEAgdGFza3M6CiAgICAg
ICBvcHRpb25zOgogICAgICAgICBvb20ta2lsbGVyOiB0cnVlCiAgICAgICAgIGJyb3dzZXI6Cisg
ICAgICAgICAgLSBmaXJlZm94CiAgICAgICAgICAgLSBjaHJvbWUKICAgICAgICAgY2hhbm5lbDog
ZXhwZXJpbWVudGFsCiAgICAgICAgIHh2ZmI6IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF9k
ZWNpc2lvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvdGMvdGVzdHMvdGVzdF9kZWNpc2lvbi5weQppbmRleCA0MjViNTgyOWVkZDM2MGIx
NDVhY2ViZjI0OWY0YjFhYzNmNmQxMzk2Li4xZGNjMzVjZjY5NDgzN2M2MjY4OTMyMzUxN2Y1MzJl
ZmNmZWFlNDVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfZGVjaXNpb24ucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90
ZXN0X2RlY2lzaW9uLnB5CkBAIC0xLDkgKzEsMTYgQEAKIGltcG9ydCBtb2NrCiBpbXBvcnQgcHl0
ZXN0CitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKIAotZnJvbSB0b29scy5jaS50YyBpbXBvcnQgZGVj
aXNpb24KIGZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIAoraGVyZSA9IG9zLnBhdGguZGlybmFt
ZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIu
LiIsICIuLiIsICIuLiIsICIuLiIpKQorc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3QpCisKK2Zyb20g
dG9vbHMuY2kudGMgaW1wb3J0IGRlY2lzaW9uCisKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJydW5fam9icyx0YXNrcyxleHBlY3RlZCIsIFsKICAgICAoW10sIHsidGFzay1uby1zY2hlZHVs
ZS1pZiI6IHt9fSwgWyJ0YXNrLW5vLXNjaGVkdWxlLWlmIl0pLApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90
ZXN0X3Rhc2tncmFwaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF90YXNrZ3JhcGgucHkKaW5kZXggZGQ4NTM1YmI2
NDcwZmY5MTkyNTE5NzNiMDczZDI0NDg5ZWRmZmY4Yi4uNTg1MDkzMmZhMGNkNGQzY2E5NGU0ZmEy
NTBlZDExMjJkNDkzZTcxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3Rhc2tncmFwaC5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rj
L3Rlc3RzL3Rlc3RfdGFza2dyYXBoLnB5CkBAIC0xLDYgKzEsMTIgQEAKK2ltcG9ydCBvcwogaW1w
b3J0IHB5dGVzdAoraW1wb3J0IHN5cwogaW1wb3J0IHlhbWwKIAoraGVyZSA9IG9zLnBhdGguZGly
bmFtZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUs
ICIuLiIsICIuLiIsICIuLiIsICIuLiIpKQorc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3QpCisKIGZy
b20gdG9vbHMuY2kudGMgaW1wb3J0IHRhc2tncmFwaAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImRhdGEsIHVwZGF0ZV9kYXRhLCBleHBlY3RlZCIsIFsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVz
dF92YWxpZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvdGMvdGVzdHMvdGVzdF92YWxpZC5weQppbmRleCA0ZjZiY2MyZjBhOGQ0YzQwNGI0
MjNiNmM2MGMyOGM5ZDI4YjgxODNhLi4zMGZkZmRjMTNkODhlZTA1YWEwMTVmYjc1MjlmNGEzZTY3
YWFlZGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdmFsaWQucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3Zh
bGlkLnB5CkBAIC0xLDYgKzEsNyBAQAogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogZnJvbSBpbyBp
bXBvcnQgb3BlbgoraW1wb3J0IHN5cwogCiBpbXBvcnQganNvbmUKIGltcG9ydCBtb2NrCkBAIC05
LDEwICsxMCwxMSBAQCBpbXBvcnQgcmVxdWVzdHMKIGltcG9ydCB5YW1sCiBmcm9tIGpzb25zY2hl
bWEgaW1wb3J0IHZhbGlkYXRlCiAKLWZyb20gdG9vbHMuY2kudGMgaW1wb3J0IGRlY2lzaW9uCi0K
IGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiByb290ID0gb3MucGF0aC5hYnNwYXRo
KG9zLnBhdGguam9pbihoZXJlLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4iKSkKK3N5cy5wYXRoLmlu
c2VydCgwLCByb290KQorCitmcm9tIHRvb2xzLmNpLnRjIGltcG9ydCBkZWNpc2lvbgogCiAKIGRl
ZiBkYXRhX3BhdGgoZmlsZW5hbWUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0cy90ZXN0X2pvYnMucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rl
c3Rfam9icy5weQppbmRleCBhYTEyNzM4MjA0ZjM2NTJlMmRmOTY0NDQ0NjkzNjhlMGU2MjYxOTIz
Li45NmViZThiZjI4OTIxMmRlY2M4YWM0NmM2NjNhNWQzNjdhZDk2YzZmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3Rz
L3Rlc3Rfam9icy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9icy5weQpAQCAtMSwzICsxLDEwIEBACitpbXBv
cnQgb3MKK2ltcG9ydCBzeXMKKworaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK3Jv
b3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIuLiIsICIuLiIp
KQorc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3QpCisKIGZyb20gdG9vbHMuY2kgaW1wb3J0IGpvYnMK
IAogYWxsX2pvYnMgPSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3RfcHJfcHJldmlldy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVz
dF9wcl9wcmV2aWV3LnB5CmluZGV4IGVkNjMxMGMxZWExMjliMTlmMzEzYzI5Yzk4ZTUyMzhhODU1
NDZlNDIuLmEyNjgzODNlZDBiMTIxODYzNjIzY2NhOTQ2OWFhYTBjMDBiYTI2NmEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
dGVzdHMvdGVzdF9wcl9wcmV2aWV3LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9wcl9wcmV2aWV3LnB5CkBAIC0x
NCwxMCArMTQsMTEgQEAgaW1wb3J0IHN5cwogaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgdGhyZWFk
aW5nCiAKLXN1YmplY3QgPSBvcy5wYXRoLmpvaW4oCi0gICAgb3MucGF0aC5kaXJuYW1lKG9zLnBh
dGguYWJzcGF0aChfX2ZpbGVfXykpLCAnLi4nLCAncHJfcHJldmlldy5weScKLSkKLXRlc3RfaG9z
dCA9ICdsb2NhbGhvc3QnCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKG9zLnBh
dGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nKSkpCitpbXBvcnQgcHJfcHJl
dmlldworCisKK1RFU1RfSE9TVCA9ICdsb2NhbGhvc3QnCiAKIAogZGVmIHNhbWVfbWVtYmVycyhh
LCBiKToKQEAgLTgxLDcgKzgyLDEwIEBAIGNsYXNzIE1vY2tIYW5kbGVyKEJhc2VIVFRQUmVxdWVz
dEhhbmRsZXIsIG9iamVjdCk6CiAgICAgICAgIHNlbGYuc2VydmVyLmFjdHVhbF90cmFmZmljLmFw
cGVuZCgocmVxdWVzdCwgcmVzcG9uc2UpKQogICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UocmVz
cG9uc2VbMF0pCiAgICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQotICAgICAgICBzZWxmLndmaWxl
LndyaXRlKGpzb24uZHVtcHMocmVzcG9uc2VbMV0pLmVuY29kZSgndXRmLTgnKSkKKyAgICAgICAg
aWYgc2VsZi5zZXJ2ZXIucmVwb25zZV9ib2R5X2lzX2pzb246CisgICAgICAgICAgICBzZWxmLndm
aWxlLndyaXRlKGpzb24uZHVtcHMocmVzcG9uc2VbMV0pLmVuY29kZSgndXRmLTgnKSkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUocmVzcG9uc2VbMV0uZW5jb2Rl
KCd1dGYtOCcpKQogCiAgICAgZGVmIGRvX0RFTEVURShzZWxmKToKICAgICAgICAgcmV0dXJuIHNl
bGYuZG9fYWxsKCkKQEAgLTEwMCwxMCArMTA0LDExIEBAIGNsYXNzIE1vY2tTZXJ2ZXIoSFRUUFNl
cnZlciwgb2JqZWN0KToKICAgICAnJydIVFRQIHNlcnZlciB0aGF0IHJlc3BvbmRzIHRvIGFsbCBy
ZXF1ZXN0cyB3aXRoIHN0YXR1cyBjb2RlIDIwMCBhbmQgYm9keQogICAgICd7fScgdW5sZXNzIGFu
IGFsdGVybmF0aXZlIHN0YXR1cyBjb2RlIGFuZCBib2R5IGFyZSBzcGVjaWZpZWQgZm9yIHRoZSBn
aXZlbgogICAgIG1ldGhvZCBhbmQgcGF0aCBpbiB0aGUgYHJlc3BvbnNlc2AgcGFyYW1ldGVyLicn
JwotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzLCBleHBlY3RlZF90cmFmZmljKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgYWRkcmVzcywgZXhwZWN0ZWRfdHJhZmZpYywgcmVwb25zZV9i
b2R5X2lzX2pzb249VHJ1ZSk6CiAgICAgICAgIHN1cGVyKE1vY2tTZXJ2ZXIsIHNlbGYpLl9faW5p
dF9fKGFkZHJlc3MsIE1vY2tIYW5kbGVyKQogICAgICAgICBzZWxmLmV4cGVjdGVkX3RyYWZmaWMg
PSBleHBlY3RlZF90cmFmZmljCiAgICAgICAgIHNlbGYuYWN0dWFsX3RyYWZmaWMgPSBbXQorICAg
ICAgICBzZWxmLnJlcG9uc2VfYm9keV9pc19qc29uID0gcmVwb25zZV9ib2R5X2lzX2pzb24KIAog
ICAgIGRlZiBfX2VudGVyX18oc2VsZik6CiAgICAgICAgIHRocmVhZGluZy5UaHJlYWQodGFyZ2V0
PWxhbWJkYTogc2VsZi5zZXJ2ZV9mb3JldmVyKCkpLnN0YXJ0KCkKQEAgLTExNSwyMSArMTIwLDMx
IEBAIGNsYXNzIE1vY2tTZXJ2ZXIoSFRUUFNlcnZlciwgb2JqZWN0KToKIAogY2xhc3MgUmVxdWVz
dHMob2JqZWN0KToKICAgICBnZXRfcmF0ZSA9ICgnR0VUJywgJy9yYXRlX2xpbWl0Jywge30pCi0g
ICAgc2VhcmNoID0gKCdHRVQnLCAnL3NlYXJjaC9pc3N1ZXMnLCB7fSkKLSAgICBwcl9kZXRhaWxz
ID0gKCdHRVQnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9wdWxscy8yMycsIHt9KQogICAg
IHJlZl9jcmVhdGVfb3BlbiA9ICgKLSAgICAgICAgJ1BPU1QnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rl
c3QtcmVwby9naXQvcmVmcycsIHsncmVmJzoncmVmcy9wcnMtb3Blbi8yMyd9CisgICAgICAgICdQ
T1NUJywgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZ2l0L3JlZnMnLCB7J3JlZic6J3JlZnMv
cHJzLW9wZW4vNDUnfQogICAgICkKICAgICByZWZfY3JlYXRlX3RydXN0ZWQgPSAoCiAgICAgICAg
ICdQT1NUJywKICAgICAgICAgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZ2l0L3JlZnMnLAot
ICAgICAgICB7J3JlZic6J3JlZnMvcHJzLXRydXN0ZWQtZm9yLXByZXZpZXcvMjMnfQorICAgICAg
ICB7J3JlZic6J3JlZnMvcHJzLXRydXN0ZWQtZm9yLXByZXZpZXcvNDUnfQorICAgICkKKyAgICBy
ZWZfZ2V0X29wZW4gPSAoCisgICAgICAgICdHRVQnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVw
by9naXQvcmVmcy9wcnMtb3Blbi80NScsIHt9CisgICAgKQorICAgIHJlZl9nZXRfdHJ1c3RlZCA9
ICgKKyAgICAgICAgJ0dFVCcsICcvcmVwb3MvdGVzdC1vcmcvdGVzdC1yZXBvL2dpdC9yZWZzL3By
cy10cnVzdGVkLWZvci1wcmV2aWV3LzQ1Jywge30KICAgICApCiAgICAgcmVmX3VwZGF0ZV9vcGVu
ID0gKAotICAgICAgICAnUEFUQ0gnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9naXQvcmVm
cy9wcnMtb3Blbi8yMycsIHt9CisgICAgICAgICdQQVRDSCcsICcvcmVwb3MvdGVzdC1vcmcvdGVz
dC1yZXBvL2dpdC9yZWZzL3Bycy1vcGVuLzQ1Jywge30KICAgICApCiAgICAgcmVmX3VwZGF0ZV90
cnVzdGVkID0gKAotICAgICAgICAnUEFUQ0gnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9n
aXQvcmVmcy9wcnMtdHJ1c3RlZC1mb3ItcHJldmlldy8yMycsIHt9CisgICAgICAgICdQQVRDSCcs
ICcvcmVwb3MvdGVzdC1vcmcvdGVzdC1yZXBvL2dpdC9yZWZzL3Bycy10cnVzdGVkLWZvci1wcmV2
aWV3LzQ1Jywge30KKyAgICApCisgICAgcmVmX2RlbGV0ZV9vcGVuID0gKAorICAgICAgICAnREVM
RVRFJywgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZ2l0L3JlZnMvcHJzLW9wZW4vNDUnLCB7
fQorICAgICkKKyAgICByZWZfZGVsZXRlX3RydXN0ZWQgPSAoCisgICAgICAgICdERUxFVEUnLCAn
L3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9naXQvcmVmcy9wcnMtdHJ1c3RlZC1mb3ItcHJldmll
dy80NScsIHt9CiAgICAgKQogICAgIGRlcGxveW1lbnRfZ2V0ID0gKCdHRVQnLCAnL3JlcG9zL3Rl
c3Qtb3JnL3Rlc3QtcmVwby9kZXBsb3ltZW50cycsIHt9KQogICAgIGRlcGxveW1lbnRfY3JlYXRl
ID0gKCdQT1NUJywgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZGVwbG95bWVudHMnLCB7fSkK
QEAgLTE2OCw3ICsxODMsOSBAQCBjbGFzcyBSZXNwb25zZXMob2JqZWN0KToKIAogQGNvbnRleHRs
aWIuY29udGV4dG1hbmFnZXIKIGRlZiB0ZW1wX3JlcG8oKToKKyAgICBvcmlnaW5hbF9kaXIgPSBv
cy5nZXRjd2QoKQogICAgIGRpcmVjdG9yeSA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgIG9zLmNo
ZGlyKGRpcmVjdG9yeSkKIAogICAgIHRyeToKICAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxs
KFsnZ2l0JywgJ2luaXQnXSwgY3dkPWRpcmVjdG9yeSkKQEAgLTE5MiwxMzUgKzIwOSw3NyBAQCBk
ZWYgdGVtcF9yZXBvKCk6CiAKICAgICAgICAgeWllbGQgZGlyZWN0b3J5CiAgICAgZmluYWxseToK
KyAgICAgICAgb3MuY2hkaXIob3JpZ2luYWxfZGlyKQogICAgICAgICBzaHV0aWwucm10cmVlKAog
ICAgICAgICAgICAgZGlyZWN0b3J5LCBpZ25vcmVfZXJyb3JzPUZhbHNlLCBvbmVycm9yPWhhbmRs
ZV9yZW1vdmVfcmVhZG9ubHkKICAgICAgICAgKQogCi1kZWYgc3luY2hyb25pemUoZXhwZWN0ZWRf
dHJhZmZpYywgcmVmcz17fSk6Ci0gICAgZW52ID0gewotICAgICAgICAnREVQTE9ZX1RPS0VOJzog
J2MwZmZlZScKLSAgICB9Ci0gICAgZW52LnVwZGF0ZShvcy5lbnZpcm9uKQotICAgIHNlcnZlciA9
IE1vY2tTZXJ2ZXIoKHRlc3RfaG9zdCwgMCksIGV4cGVjdGVkX3RyYWZmaWMpCi0gICAgdGVzdF9w
b3J0ID0gc2VydmVyLnNlcnZlcl9hZGRyZXNzWzFdCi0gICAgcmVtb3RlX3JlZnMgPSB7fQotCi0g
ICAgd2l0aCB0ZW1wX3JlcG8oKSBhcyBsb2NhbF9yZXBvLCB0ZW1wX3JlcG8oKSBhcyByZW1vdGVf
cmVwbywgc2VydmVyOgotICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoCi0gICAgICAgICAg
ICBbJ2dpdCcsICdjb21taXQnLCAnLS1hbGxvdy1lbXB0eScsICctbScsICdmaXJzdCddLAotICAg
ICAgICAgICAgY3dkPXJlbW90ZV9yZXBvCi0gICAgICAgICkKLSAgICAgICAgc3VicHJvY2Vzcy5j
aGVja19jYWxsKAotICAgICAgICAgICAgWydnaXQnLCAnY29tbWl0JywgJy0tYWxsb3ctZW1wdHkn
LCAnLW0nLCAnc2Vjb25kJ10sCi0gICAgICAgICAgICBjd2Q9cmVtb3RlX3JlcG8KLSAgICAgICAg
KQotICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoCi0gICAgICAgICAgICBbJ2dpdCcsICdy
ZW1vdGUnLCAnYWRkJywgJ29yaWdpbicsIHJlbW90ZV9yZXBvXSwgY3dkPWxvY2FsX3JlcG8KLSAg
ICAgICAgKQorZGVmIHVwZGF0ZV9taXJyb3JfcmVmcyhwdWxsX3JlcXVlc3QsIGV4cGVjdGVkX3Ry
YWZmaWMpOgorICAgIG9zLmVudmlyb25bJ0dJVEhVQl9UT0tFTiddID0gJ2MwZmZlZScKIAotICAg
ICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gcmVmcy5pdGVtcygpOgotICAgICAgICAgICAgc3VicHJv
Y2Vzcy5jaGVja19jYWxsKAotICAgICAgICAgICAgICAgIFsnZ2l0JywgJ3VwZGF0ZS1yZWYnLCBu
YW1lLCB2YWx1ZV0sCi0gICAgICAgICAgICAgICAgY3dkPXJlbW90ZV9yZXBvCi0gICAgICAgICAg
ICApCi0KLSAgICAgICAgY2hpbGQgPSBzdWJwcm9jZXNzLlBvcGVuKAotICAgICAgICAgICAgWwot
ICAgICAgICAgICAgICAgIHN5cy5leGVjdXRhYmxlLAotICAgICAgICAgICAgICAgIHN1YmplY3Qs
Ci0gICAgICAgICAgICAgICAgJy0taG9zdCcsCi0gICAgICAgICAgICAgICAgJ2h0dHA6Ly97fTp7
fScuZm9ybWF0KHRlc3RfaG9zdCwgdGVzdF9wb3J0KSwKLSAgICAgICAgICAgICAgICAnLS1naXRo
dWItcHJvamVjdCcsCi0gICAgICAgICAgICAgICAgJ3Rlc3Qtb3JnL3Rlc3QtcmVwbycsCi0gICAg
ICAgICAgICAgICAgJ3N5bmNocm9uaXplJywKLSAgICAgICAgICAgICAgICAnLS13aW5kb3cnLAot
ICAgICAgICAgICAgICAgICczMDAwJwotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGN3ZD1s
b2NhbF9yZXBvLAotICAgICAgICAgICAgZW52PWVudgotICAgICAgICApCisgICAgZ2l0aHViX3Nl
cnZlciA9IE1vY2tTZXJ2ZXIoKFRFU1RfSE9TVCwgMCksIGV4cGVjdGVkX3RyYWZmaWMpCisgICAg
Z2l0aHViX3BvcnQgPSBnaXRodWJfc2VydmVyLnNlcnZlcl9hZGRyZXNzWzFdCiAKLSAgICAgICAg
Y2hpbGQuY29tbXVuaWNhdGUoKQotICAgICAgICBsaW5lcyA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0
cHV0KAotICAgICAgICAgICAgWydnaXQnLCAnbHMtcmVtb3RlJywgJ29yaWdpbiddLCBjd2Q9bG9j
YWxfcmVwbworICAgIG1ldGhvZF90aHJldyA9IEZhbHNlCisgICAgd2l0aCB0ZW1wX3JlcG8oKSwg
Z2l0aHViX3NlcnZlcjoKKyAgICAgICAgcHJvamVjdCA9IHByX3ByZXZpZXcuUHJvamVjdCgKKyAg
ICAgICAgICAgICdodHRwOi8ve306e30nLmZvcm1hdChURVNUX0hPU1QsIGdpdGh1Yl9wb3J0KSwK
KyAgICAgICAgICAgICd0ZXN0LW9yZy90ZXN0LXJlcG8nLAogICAgICAgICApCi0gICAgICAgIGZv
ciBsaW5lIGluIGxpbmVzLmRlY29kZSgndXRmLTgnKS5zdHJpcCgpLnNwbGl0KCdcbicpOgotICAg
ICAgICAgICAgcmV2aXNpb24sIHJlZiA9IGxpbmUuc3BsaXQoKQotCi0gICAgICAgICAgICBpZiBu
b3QgcmVmIG9yIHJlZiBpbiAoJ0hFQUQnLCAncmVmcy9oZWFkcy9tYXN0ZXInKToKLSAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwcl9wcmV2aWV3LnVw
ZGF0ZV9taXJyb3JfcmVmcyhwcm9qZWN0LCBwdWxsX3JlcXVlc3QpCisgICAgICAgIGV4Y2VwdCBw
cl9wcmV2aWV3LkdpdEh1YlJhdGVMaW1pdEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIG1ldGhvZF90
aHJldyA9IFRydWUKIAotICAgICAgICAgICAgcmVtb3RlX3JlZnNbcmVmXSA9IHJldmlzaW9uCisg
ICAgcmV0dXJuICgKKyAgICAgICAgbWV0aG9kX3RocmV3LAorICAgICAgICBnaXRodWJfc2VydmVy
LmFjdHVhbF90cmFmZmljLAorICAgICkKIAotICAgIHJldHVybiBjaGlsZC5yZXR1cm5jb2RlLCBz
ZXJ2ZXIuYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzCiAKK2RlZiBkZXBsb3kocHJfbnVtLCBy
ZXZpc2lvbiwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZp
Yyk6CisgICAgb3MuZW52aXJvblsnR0lUSFVCX1RPS0VOJ10gPSAnYzBmZmVlJwogCi1kZWYgZGV0
ZWN0KGV2ZW50LCBleHBlY3RlZF9naXRodWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFm
ZmljKToKLSAgICBlbnYgPSB7Ci0gICAgICAgICdERVBMT1lfVE9LRU4nOiAnYzBmZmVlJwotICAg
IH0KLSAgICBlbnYudXBkYXRlKG9zLmVudmlyb24pCi0gICAgZ2l0aHViX3NlcnZlciA9IE1vY2tT
ZXJ2ZXIoKHRlc3RfaG9zdCwgMCksIGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljKQorICAgIGdpdGh1
Yl9zZXJ2ZXIgPSBNb2NrU2VydmVyKChURVNUX0hPU1QsIDApLCBleHBlY3RlZF9naXRodWJfdHJh
ZmZpYykKICAgICBnaXRodWJfcG9ydCA9IGdpdGh1Yl9zZXJ2ZXIuc2VydmVyX2FkZHJlc3NbMV0K
LSAgICBwcmV2aWV3X3NlcnZlciA9IE1vY2tTZXJ2ZXIoKHRlc3RfaG9zdCwgMCksIGV4cGVjdGVk
X3ByZXZpZXdfdHJhZmZpYykKKyAgICBwcmV2aWV3X3NlcnZlciA9IE1vY2tTZXJ2ZXIoKFRFU1Rf
SE9TVCwgMCksIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYywgcmVwb25zZV9ib2R5X2lzX2pzb249
RmFsc2UpCiAgICAgcHJldmlld19wb3J0ID0gcHJldmlld19zZXJ2ZXIuc2VydmVyX2FkZHJlc3Nb
MV0KIAotICAgIHdpdGggdGVtcF9yZXBvKCkgYXMgcmVwbywgZ2l0aHViX3NlcnZlciwgcHJldmll
d19zZXJ2ZXI6Ci0gICAgICAgIGVudlsnR0lUSFVCX0VWRU5UX1BBVEgnXSA9IHJlcG8gKyAnL2V2
ZW50Lmpzb24nCi0KLSAgICAgICAgd2l0aCBvcGVuKGVudlsnR0lUSFVCX0VWRU5UX1BBVEgnXSwg
J3cnKSBhcyBoYW5kbGU6Ci0gICAgICAgICAgICBoYW5kbGUud3JpdGUoanNvbi5kdW1wcyhldmVu
dCkpCi0KLSAgICAgICAgY2hpbGQgPSBzdWJwcm9jZXNzLlBvcGVuKAotICAgICAgICAgICAgWwot
ICAgICAgICAgICAgICAgIHN5cy5leGVjdXRhYmxlLAotICAgICAgICAgICAgICAgIHN1YmplY3Qs
Ci0gICAgICAgICAgICAgICAgJy0taG9zdCcsCi0gICAgICAgICAgICAgICAgJ2h0dHA6Ly97fTp7
fScuZm9ybWF0KHRlc3RfaG9zdCwgZ2l0aHViX3BvcnQpLAotICAgICAgICAgICAgICAgICctLWdp
dGh1Yi1wcm9qZWN0JywKLSAgICAgICAgICAgICAgICAndGVzdC1vcmcvdGVzdC1yZXBvJywKLSAg
ICAgICAgICAgICAgICAnZGV0ZWN0JywKLSAgICAgICAgICAgICAgICAnLS10YXJnZXQnLAotICAg
ICAgICAgICAgICAgICdodHRwOi8ve306e30nLmZvcm1hdCh0ZXN0X2hvc3QsIHByZXZpZXdfcG9y
dCksCi0gICAgICAgICAgICAgICAgJy0tdGltZW91dCcsCi0gICAgICAgICAgICAgICAgJzEnCi0g
ICAgICAgICAgICBdLAotICAgICAgICAgICAgY3dkPXJlcG8sCi0gICAgICAgICAgICBlbnY9ZW52
CisgICAgbWV0aG9kX3RocmV3ID0gRmFsc2UKKyAgICB3aXRoIGdpdGh1Yl9zZXJ2ZXIsIHByZXZp
ZXdfc2VydmVyOgorICAgICAgICBwcm9qZWN0ID0gcHJfcHJldmlldy5Qcm9qZWN0KAorICAgICAg
ICAgICAgJ2h0dHA6Ly97fTp7fScuZm9ybWF0KFRFU1RfSE9TVCwgZ2l0aHViX3BvcnQpLAorICAg
ICAgICAgICAgJ3Rlc3Qtb3JnL3Rlc3QtcmVwbycsCiAgICAgICAgICkKLSAgICAgICAgY2hpbGQu
Y29tbXVuaWNhdGUoKQorICAgICAgICB0YXJnZXQgPSAnaHR0cDovL3t9Ont9Jy5mb3JtYXQoVEVT
VF9IT1NULCBwcmV2aWV3X3BvcnQpCisgICAgICAgIHB1bGxfcmVxdWVzdCA9IHsnbnVtYmVyJzog
cHJfbnVtfQorICAgICAgICB0aW1lb3V0ID0gMQorICAgICAgICB0cnk6CisgICAgICAgICAgICBw
cl9wcmV2aWV3LmRlcGxveShwcm9qZWN0LCB0YXJnZXQsIHB1bGxfcmVxdWVzdCwgcmV2aXNpb24s
IHRpbWVvdXQpCisgICAgICAgIGV4Y2VwdCAocHJfcHJldmlldy5HaXRIdWJSYXRlTGltaXRFeGNl
cHRpb24sIHByX3ByZXZpZXcuRGVwbG95bWVudEZhaWxlZEV4Y2VwdGlvbik6CisgICAgICAgICAg
ICBtZXRob2RfdGhyZXcgPSBUcnVlCiAKICAgICByZXR1cm4gKAotICAgICAgICBjaGlsZC5yZXR1
cm5jb2RlLAorICAgICAgICBtZXRob2RfdGhyZXcsCiAgICAgICAgIGdpdGh1Yl9zZXJ2ZXIuYWN0
dWFsX3RyYWZmaWMsCiAgICAgICAgIHByZXZpZXdfc2VydmVyLmFjdHVhbF90cmFmZmljCiAgICAg
KQogCi0KLWRlZiB0ZXN0X3N5bmNocm9uaXplX3plcm9fcmVzdWx0cygpOgotICAgIGV4cGVjdGVk
X3RyYWZmaWMgPSBbCi0gICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xp
bWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAotICAgICAgICAgICAgMjAwLAotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICdpdGVtcyc6IFtdLAotICAgICAgICAgICAgICAg
ICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQotICAgICAgICAgICAgfQotICAgICAgICApKQot
ICAgIF0KLQotICAgIHJldHVybmNvZGUsIGFjdHVhbF90cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5
bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMpCi0KLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAw
Ci0gICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZp
YykKLQotZGVmIHRlc3Rfc3luY2hyb25pemVfZmFpbF9zZWFyY2hfdGhyb3R0bGVkKCk6CitkZWYg
dGVzdF91cGRhdGVfbWlycm9yX3JlZnNfZmFpbF9yYXRlX2xpbWl0ZWQoKToKKyAgICBwdWxsX3Jl
cXVlc3QgPSB7CisgICAgICAgICdudW1iZXInOiA0NSwKKyAgICAgICAgJ2hlYWQnOiB7J3NoYSc6
ICdhYmMxMjMnfSwKKyAgICAgICAgJ2xhYmVscyc6IFtdLAorICAgICAgICAndXNlcic6IHsnbG9n
aW4nOiAnc3RlcGhlbm1jZ3J1ZXInfSwKKyAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdD
T0xMQUJPUkFUT1InLAorICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwKKyAgICB9CiAgICAgZXhw
ZWN0ZWRfdHJhZmZpYyA9IFsKICAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCAoCiAgICAgICAg
ICAgICAyMDAsCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgJ3Jlc291cmNlcyc6IHsK
LSAgICAgICAgICAgICAgICAgICAgJ3NlYXJjaCc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ2Nv
cmUnOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAncmVtYWluaW5nJzogMSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICdsaW1pdCc6IDEwCiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTMy
OSw0NTEgKzI4OCwyODAgQEAgZGVmIHRlc3Rfc3luY2hyb25pemVfZmFpbF9zZWFyY2hfdGhyb3R0
bGVkKCk6CiAgICAgICAgICkpCiAgICAgXQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZm
aWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKLQotICAgIGFz
c2VydCByZXR1cm5jb2RlICE9IDAKLSAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3Ry
YWZmaWMsIGFjdHVhbF90cmFmZmljKQotCi1kZWYgdGVzdF9zeW5jaHJvbml6ZV9mYWlsX2luY29t
cGxldGVfcmVzdWx0cygpOgotICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBbCi0gICAgICAgIChSZXF1
ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLnNl
YXJjaCwgKAotICAgICAgICAgICAgMjAwLAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICdpdGVtcyc6IFtdLAotICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBUcnVl
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICkpCi0gICAgXQotCi0gICAgcmV0dXJuY29kZSwgYWN0
dWFsX3RyYWZmaWMsIHJlbW92ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykK
KyAgICBtZXRob2RfdGhyZXcsIGFjdHVhbF90cmFmZmljID0gdXBkYXRlX21pcnJvcl9yZWZzKAor
ICAgICAgICBwdWxsX3JlcXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMKKyAgICApCiAKLSAgICBhc3Nl
cnQgcmV0dXJuY29kZSAhPSAwCisgICAgYXNzZXJ0IG1ldGhvZF90aHJldwogICAgIGFzc2VydCBz
YW1lX21lbWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMpCiAKIGRlZiB0ZXN0
X3N5bmNocm9uaXplX2lnbm9yZV9jbG9zZWQoKToKKyAgICAjIE5vIGV4aXN0aW5nIHJlZnMsIGJ1
dCBhIGNsb3NlZCBQUiBldmVudCBjb21lcyBpbi4gTm90aGluZyBzaG91bGQgaGFwcGVuLgorICAg
IHB1bGxfcmVxdWVzdCA9IHsKKyAgICAgICAgJ251bWJlcic6IDQ1LAorICAgICAgICAnaGVhZCc6
IHsnc2hhJzogJ2FiYzEyMyd9LAorICAgICAgICAnbGFiZWxzJzogW10sCisgICAgICAgICd1c2Vy
Jzogeydsb2dpbic6ICdzdGVwaGVubWNncnVlcid9LAorICAgICAgICAnYXV0aG9yX2Fzc29jaWF0
aW9uJzogJ0NPTExBQk9SQVRPUicsCisgICAgICAgICdjbG9zZWRfYXQnOiAnMjAxOS0xMC0yOCcs
CisgICAgfQogICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBbCiAgICAgICAgIChSZXF1ZXN0cy5nZXRf
cmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAot
ICAgICAgICAgICAgMjAwLAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdpdGVtcyc6
IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgJ251bWJl
cic6IDIzLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVscyc6IFtdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6ICcyMDE5LTEwLTI4JywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdncmFjZSd9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT0xMQUJPUkFUT1InCi0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICdpbmNvbXBsZXRl
X3Jlc3VsdHMnOiBGYWxzZQotICAgICAgICAgICAgfQotICAgICAgICApKQorICAgICAgICAoUmVx
dWVzdHMucmVmX2dldF90cnVzdGVkLCAoNDA0LCB7fSkpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0
X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0X29w
ZW4sICg0MDQsIHt9KSksCiAgICAgXQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMs
IHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKKyAgICBtZXRob2Rf
dGhyZXcsIGFjdHVhbF90cmFmZmljID0gdXBkYXRlX21pcnJvcl9yZWZzKAorICAgICAgICBwdWxs
X3JlcXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMKKyAgICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29k
ZSA9PSAwCisgICAgYXNzZXJ0IG5vdCBtZXRob2RfdGhyZXcKICAgICBhc3NlcnQgc2FtZV9tZW1i
ZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQogCi1kZWYgdGVzdF9zeW5jaHJv
bml6ZV9zeW5jX2NvbGxhYm9yYXRvcigpOgorZGVmIHRlc3RfdXBkYXRlX21pcnJvcl9yZWZzX2Nv
bGxhYm9yYXRvcigpOgorICAgIHB1bGxfcmVxdWVzdCA9IHsKKyAgICAgICAgJ251bWJlcic6IDQ1
LAorICAgICAgICAnaGVhZCc6IHsnc2hhJzogJ2FiYzEyMyd9LAorICAgICAgICAnbGFiZWxzJzog
W10sCisgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdzdGVwaGVubWNncnVlcid9LAorICAgICAg
ICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9SQVRPUicsCisgICAgICAgICdjbG9zZWRf
YXQnOiBOb25lLAorICAgIH0KICAgICBleHBlY3RlZF90cmFmZmljID0gWwogICAgICAgICAoUmVx
dWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5y
ZWZfZ2V0X3RydXN0ZWQsICg0MDQsIHt9KSksCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwg
UmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLnJlZl9nZXRfb3BlbiwgKDQw
NCwge30pKSwKICAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQp
LAotICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCi0gICAg
ICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJl
cXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMu
c2VhcmNoLCAoCi0gICAgICAgICAgICAyMDAsCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgJ2l0ZW1zJzogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAnbnVtYmVyJzogMjMsCi0gICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWxzJzogW10s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdncmFjZSd9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT0xMQUJPUkFUT1InCi0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICdpbmNvbXBs
ZXRlX3Jlc3VsdHMnOiBGYWxzZQotICAgICAgICAgICAgfQotICAgICAgICApKSwKLSAgICAgICAg
KFJlcXVlc3RzLnByX2RldGFpbHMsICgyMDAsCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgJ2hlYWQnOiB7Ci0gICAgICAgICAgICAgICAgICAgICdyZXBvJzogewotICAgICAgICAgICAg
ICAgICAgICAgICAgJ2Z1bGxfbmFtZSc6ICd0ZXN0LW9yZy90ZXN0LXJlcG8nCi0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICkp
LAogICAgICAgICAoUmVxdWVzdHMucmVmX2NyZWF0ZV9vcGVuLCAoMjAwLCB7fSkpLAorICAgICAg
ICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCiAgICAgICAgIChSZXF1
ZXN0cy5yZWZfY3JlYXRlX3RydXN0ZWQsICgyMDAsIHt9KSksCi0gICAgICAgIChSZXF1ZXN0cy5k
ZXBsb3ltZW50X2dldCwgKDIwMCwge30pKSwKLSAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRf
Y3JlYXRlLCAoMjAwLCB7fSkpCiAgICAgXQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZm
aWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKKyAgICBtZXRo
b2RfdGhyZXcsIGFjdHVhbF90cmFmZmljLCA9IHVwZGF0ZV9taXJyb3JfcmVmcygKKyAgICAgICAg
cHVsbF9yZXF1ZXN0LCBleHBlY3RlZF90cmFmZmljCisgICAgKQogCi0gICAgYXNzZXJ0IHJldHVy
bmNvZGUgPT0gMAorICAgIGFzc2VydCBub3QgbWV0aG9kX3RocmV3CiAgICAgYXNzZXJ0IHNhbWVf
bWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKIAotZGVmIHRlc3Rfc3lu
Y2hyb25pemVfaWdub3JlX2NvbGxhYm9yYXRvcl9ib3QoKToKK2RlZiB0ZXN0X3VwZGF0ZV9taXJy
b3JfcmVmc19pZ25vcmVfY29sbGFib3JhdG9yX2JvdCgpOgorICAgIHB1bGxfcmVxdWVzdCA9IHsK
KyAgICAgICAgJ251bWJlcic6IDQ1LAorICAgICAgICAnaGVhZCc6IHsnc2hhJzogJ2FiYzEyMyd9
LAorICAgICAgICAnbGFiZWxzJzogW10sCisgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdjaHJv
bWl1bS13cHQtZXhwb3J0LWJvdCd9LAorICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NP
TExBQk9SQVRPUicsCisgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAorICAgIH0KICAgICBleHBl
Y3RlZF90cmFmZmljID0gWwogICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5u
b19saW1pdCksCi0gICAgICAgIChSZXF1ZXN0cy5zZWFyY2gsICgKLSAgICAgICAgICAgIDIwMCwK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAnaXRlbXMnOiBbCi0gICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICdudW1iZXInOiAyMywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICdsYWJlbHMnOiBbXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICdj
bG9zZWRfYXQnOiBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2lu
JzogJ2Nocm9taXVtLXdwdC1leHBvcnQtYm90J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAn
YXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9SQVRPUicKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgJ2luY29tcGxldGVfcmVzdWx0
cyc6IEZhbHNlCi0gICAgICAgICAgICB9Ci0gICAgICAgICkpCi0gICAgXQotCi0gICAgcmV0dXJu
Y29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRf
dHJhZmZpYykKLQotICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSAgICBhc3NlcnQgc2FtZV9t
ZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQotCi1kZWYgdGVzdF9zeW5j
aHJvbml6ZV9pZ25vcmVfdW50cnVzdGVkX2NvbnRyaWJ1dG9yKCk6Ci0gICAgZXhwZWN0ZWRfdHJh
ZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLnJlZl9nZXRfdHJ1c3RlZCwgKDQwNCwge30pKSwK
ICAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAg
ICAoUmVxdWVzdHMuc2VhcmNoLCAoCi0gICAgICAgICAgICAyMDAsCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgJ2l0ZW1zJzogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAnbnVtYmVyJzogMjMsCi0gICAgICAgICAgICAgICAgICAgICAgICAn
bGFiZWxzJzogW10sCi0gICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdncmFjZSd9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT05UUklCVVRPUicK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAg
ICAgJ2luY29tcGxldGVfcmVzdWx0cyc6IEZhbHNlCi0gICAgICAgICAgICB9Ci0gICAgICAgICkp
CisgICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0X29wZW4sICg0MDQsIHt9KSksCiAgICAgXQogCi0g
ICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUo
ZXhwZWN0ZWRfdHJhZmZpYykKKyAgICBtZXRob2RfdGhyZXcsIGFjdHVhbF90cmFmZmljID0gdXBk
YXRlX21pcnJvcl9yZWZzKAorICAgICAgICBwdWxsX3JlcXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMK
KyAgICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IG5vdCBtZXRo
b2RfdGhyZXcKICAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVh
bF90cmFmZmljKQogCi1kZWYgdGVzdF9zeW5jaHJvbml6ZV9pZ25vcmVfcHVsbF9yZXF1ZXN0X2Zy
b21fZm9yaygpOgorZGVmIHRlc3RfdXBkYXRlX21pcnJvcl9yZWZzX2lnbm9yZV91bnRydXN0ZWRf
Y29udHJpYnV0b3IoKToKKyAgICBwdWxsX3JlcXVlc3QgPSB7CisgICAgICAgICdudW1iZXInOiA0
NSwKKyAgICAgICAgJ2hlYWQnOiB7J3NoYSc6ICdhYmMxMjMnfSwKKyAgICAgICAgJ2xhYmVscyc6
IFtdLAorICAgICAgICAndXNlcic6IHsnbG9naW4nOiAnc3RlcGhlbm1jZ3J1ZXInfSwKKyAgICAg
ICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT05UUklCVVRPUicsCisgICAgICAgICdjbG9zZWRf
YXQnOiBOb25lLAorICAgIH0KICAgICBleHBlY3RlZF90cmFmZmljID0gWwogICAgICAgICAoUmVx
dWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5y
ZWZfZ2V0X3RydXN0ZWQsICg0MDQsIHt9KSksCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwg
UmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAotICAgICAg
ICAgICAgMjAwLAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdpdGVtcyc6IFsKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgJ251bWJlcic6IDIz
LAotICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVscyc6IFtdLAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ2Nsb3NlZF9hdCc6IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAndXNl
cic6IHsnbG9naW4nOiAnZ3JhY2UnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICdhdXRob3Jf
YXNzb2NpYXRpb24nOiAnQ09MTEFCT1JBVE9SJwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAnaW5jb21wbGV0ZV9yZXN1bHRzJzogRmFs
c2UKLSAgICAgICAgICAgIH0KLSAgICAgICAgKSksCi0gICAgICAgIChSZXF1ZXN0cy5wcl9kZXRh
aWxzLCAoMjAwLAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdoZWFkJzogewotICAg
ICAgICAgICAgICAgICAgICAncmVwbyc6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICdmdWxs
X25hbWUnOiAnc29tZS1vdGhlci1vcmcvdGVzdC1yZXBvJwotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICApKSwKKyAgICAgICAg
KFJlcXVlc3RzLnJlZl9nZXRfb3BlbiwgKDQwNCwge30pKSwKICAgICBdCiAKLSAgICByZXR1cm5j
b2RlLCBhY3R1YWxfdHJhZmZpYywgcmVtb3RlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90
cmFmZmljKQorICAgIG1ldGhvZF90aHJldywgYWN0dWFsX3RyYWZmaWMgPSB1cGRhdGVfbWlycm9y
X3JlZnMoCisgICAgICAgIHB1bGxfcmVxdWVzdCwgZXhwZWN0ZWRfdHJhZmZpYworICAgICkKIAot
ICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKKyAgICBhc3NlcnQgbm90IG1ldGhvZF90aHJldwog
ICAgIGFzc2VydCBzYW1lX21lbWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMp
CiAKLWRlZiB0ZXN0X3N5bmNocm9uaXplX3N5bmNfdHJ1c3RlZF9jb250cmlidXRvcigpOgorZGVm
IHRlc3RfdXBkYXRlX21pcnJvcl9yZWZzX3RydXN0ZWRfY29udHJpYnV0b3IoKToKKyAgICBwdWxs
X3JlcXVlc3QgPSB7CisgICAgICAgICdudW1iZXInOiA0NSwKKyAgICAgICAgJ2hlYWQnOiB7J3No
YSc6ICdhYmMxMjMnfSwKKyAgICAgICAgIyB1c2VyIGhlcmUgaXMgYSBjb250cmlidXRvciAodW50
cnVzdGVkKSwgYnV0IHRoZSBpc3N1ZQorICAgICAgICAjIGhhcyBiZWVuIGxhYmVsbGVkIGFzIHNh
ZmUuCisgICAgICAgICdsYWJlbHMnOiBbeyduYW1lJzogJ3NhZmUgZm9yIHByZXZpZXcnfV0sCisg
ICAgICAgICd1c2VyJzogeydsb2dpbic6ICdIZXhjbGVzJ30sCisgICAgICAgICdhdXRob3JfYXNz
b2NpYXRpb24nOiAnQ09OVFJJQlVUT1InLAorICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwKKyAg
ICB9CiAgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKICAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRl
LCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMucmVmX2dldF90cnVzdGVk
LCAoNDA0LCB7fSkpLAogICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19s
aW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0X29wZW4sICg0MDQsIHt9KSksCiAgICAg
ICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJl
cXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMu
Z2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCi0gICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0
ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAotICAg
ICAgICAgICAgMjAwLAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdpdGVtcyc6IFsK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgJ251bWJlcic6
IDIzLAotICAgICAgICAgICAgICAgICAgICAgICAgIyB1c2VyIGhlcmUgaXMgYSBjb250cmlidXRv
ciAodW50cnVzdGVkKSwgYnV0IHRoZSBpc3N1ZQotICAgICAgICAgICAgICAgICAgICAgICAgIyBo
YXMgYmVlbiBsYWJlbGxlZCBhcyBzYWZlLgotICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVs
cyc6IFt7J25hbWUnOiAnc2FmZSBmb3IgcHJldmlldyd9XSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICdjbG9zZWRfYXQnOiBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXInOiB7
J2xvZ2luJzogJ0hleGNsZXMnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICdhdXRob3JfYXNz
b2NpYXRpb24nOiAnQ09OVFJJQlVUT1InCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBdLAotICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQot
ICAgICAgICAgICAgfQotICAgICAgICApKSwKLSAgICAgICAgKFJlcXVlc3RzLnByX2RldGFpbHMs
ICgyMDAsCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2hlYWQnOiB7Ci0gICAgICAg
ICAgICAgICAgICAgICdyZXBvJzogewotICAgICAgICAgICAgICAgICAgICAgICAgJ2Z1bGxfbmFt
ZSc6ICd0ZXN0LW9yZy90ZXN0LXJlcG8nCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICkpLAogICAgICAgICAoUmVxdWVzdHMu
cmVmX2NyZWF0ZV9vcGVuLCAoMjAwLCB7fSkpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUs
IFJlc3BvbnNlcy5ub19saW1pdCksCiAgICAgICAgIChSZXF1ZXN0cy5yZWZfY3JlYXRlX3RydXN0
ZWQsICgyMDAsIHt9KSksCi0gICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X2dldCwgKDIwMCwg
W10pKSwKLSAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfY3JlYXRlLCAoMjAwLCB7fSkpCiAg
ICAgXQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3lu
Y2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKKyAgICBtZXRob2RfdGhyZXcsIGFjdHVhbF90cmFm
ZmljID0gdXBkYXRlX21pcnJvcl9yZWZzKAorICAgICAgICBwdWxsX3JlcXVlc3QsIGV4cGVjdGVk
X3RyYWZmaWMKKyAgICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0
IG5vdCBtZXRob2RfdGhyZXcKICAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZm
aWMsIGFjdHVhbF90cmFmZmljKQogCiBkZWYgdGVzdF9zeW5jaHJvbml6ZV9zeW5jX2JvdF93aXRo
X2xhYmVsKCk6CisgICAgcHVsbF9yZXF1ZXN0ID0geworICAgICAgICAnbnVtYmVyJzogNDUsCisg
ICAgICAgICdoZWFkJzogeydzaGEnOiAnYWJjMTIzJ30sCisgICAgICAgICMgdXNlciBoZXJlIGlz
IGEgYm90IHdoaWNoIGlzIG5vcm1hbGx5IG5vdCBtaXJyb3JlZCwKKyAgICAgICAgIyBidXQgdGhl
IGlzc3VlIGhhcyBiZWVuIGxhYmVsbGVkIGFzIHNhZmUuCisgICAgICAgICdsYWJlbHMnOiBbeydu
YW1lJzogJ3NhZmUgZm9yIHByZXZpZXcnfV0sCisgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdj
aHJvbWl1bS13cHQtZXhwb3J0LWJvdCd9LAorICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzog
J0NPTExBQk9SQVRPUicsCisgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAorICAgIH0KICAgICBl
eHBlY3RlZF90cmFmZmljID0gWwogICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNl
cy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0X3RydXN0ZWQsICg0MDQsIHt9
KSksCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAg
ICAgICAgKFJlcXVlc3RzLnJlZl9nZXRfb3BlbiwgKDQwNCwge30pKSwKICAgICAgICAgKFJlcXVl
c3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuZ2V0
X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCi0gICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwg
UmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25z
ZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuc2VhcmNoLCAoCi0gICAgICAgICAgICAy
MDAsCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2l0ZW1zJzogWwotICAgICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnbnVtYmVyJzogMjMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAjIHVzZXIgaGVyZSBpcyBhIGJvdCB3aGljaCBpcyBub3JtYWxs
eSBub3QgbWlycm9yZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAjIGJ1dCB0aGUgaXNzdWUg
aGFzIGJlZW4gbGFiZWxsZWQgYXMgc2FmZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICdsYWJl
bHMnOiBbeyduYW1lJzogJ3NhZmUgZm9yIHByZXZpZXcnfV0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAnY2xvc2VkX2F0JzogTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzog
eydsb2dpbic6ICdjaHJvbWl1bS13cHQtZXhwb3J0LWJvdCd9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT0xMQUJPUkFUT1InCi0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICdpbmNvbXBsZXRl
X3Jlc3VsdHMnOiBGYWxzZQotICAgICAgICAgICAgfQotICAgICAgICApKSwKLSAgICAgICAgKFJl
cXVlc3RzLnByX2RldGFpbHMsICgyMDAsCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
J2hlYWQnOiB7Ci0gICAgICAgICAgICAgICAgICAgICdyZXBvJzogewotICAgICAgICAgICAgICAg
ICAgICAgICAgJ2Z1bGxfbmFtZSc6ICd0ZXN0LW9yZy90ZXN0LXJlcG8nCi0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICkpLAog
ICAgICAgICAoUmVxdWVzdHMucmVmX2NyZWF0ZV9vcGVuLCAoMjAwLCB7fSkpLAorICAgICAgICAo
UmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCiAgICAgICAgIChSZXF1ZXN0
cy5yZWZfY3JlYXRlX3RydXN0ZWQsICgyMDAsIHt9KSksCi0gICAgICAgIChSZXF1ZXN0cy5kZXBs
b3ltZW50X2dldCwgKDIwMCwgW10pKSwKLSAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfY3Jl
YXRlLCAoMjAwLCB7fSkpCiAgICAgXQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMs
IHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKKyAgICBtZXRob2Rf
dGhyZXcsIGFjdHVhbF90cmFmZmljID0gdXBkYXRlX21pcnJvcl9yZWZzKAorICAgICAgICBwdWxs
X3JlcXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMKKyAgICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29k
ZSA9PSAwCisgICAgYXNzZXJ0IG5vdCBtZXRob2RfdGhyZXcKICAgICBhc3NlcnQgc2FtZV9tZW1i
ZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQogCi1kZWYgdGVzdF9zeW5jaHJv
bml6ZV91cGRhdGVfY29sbGFib3JhdG9yKCk6CitkZWYgdGVzdF91cGRhdGVfbWlycm9yX3JlZnNf
dXBkYXRlX2NvbGxhYm9yYXRvcigpOgorICAgIHB1bGxfcmVxdWVzdCA9IHsKKyAgICAgICAgJ251
bWJlcic6IDQ1LAorICAgICAgICAnaGVhZCc6IHsnc2hhJzogJ2FiYzEyMyd9LAorICAgICAgICAn
bGFiZWxzJzogW10sCisgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdzdGVwaGVubWNncnVlcid9
LAorICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9SQVRPUicsCisgICAgICAg
ICdjbG9zZWRfYXQnOiBOb25lLAorICAgIH0KICAgICBleHBlY3RlZF90cmFmZmljID0gWwogICAg
ICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCi0gICAgICAgIChS
ZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3Rz
LmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuZ2V0X3Jh
dGUsIFJlc3BvbnNlcy5ub19saW1pdCksCi0gICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVz
cG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMu
bm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuc2VhcmNoLCAoMjAwLAorICAgICAgICAoUmVx
dWVzdHMucmVmX2dldF90cnVzdGVkLCAoCisgICAgICAgICAgICAyMDAsCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgJ2l0ZW1zJzogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAnbnVtYmVyJzogMjMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAnbGFiZWxzJzogW10sCi0gICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogTm9u
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdncmFjZSd9LAot
ICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT0xMQUJPUkFU
T1InCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAg
ICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQorICAgICAgICAgICAgICAgICdvYmpl
Y3QnOiB7J3NoYSc6ICdkZWYyMzQnfSwKICAgICAgICAgICAgIH0KICAgICAgICAgKSksCi0gICAg
ICAgIChSZXF1ZXN0cy5wcl9kZXRhaWxzLCAoMjAwLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3Jh
dGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0X29wZW4s
ICgKKyAgICAgICAgICAgIDIwMCwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAnaGVh
ZCc6IHsKLSAgICAgICAgICAgICAgICAgICAgJ3JlcG8nOiB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAnZnVsbF9uYW1lJzogJ3Rlc3Qtb3JnL3Rlc3QtcmVwbycKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAnb2JqZWN0JzogeydzaGEn
OiAnZGVmMjM0J30sCiAgICAgICAgICAgICB9CiAgICAgICAgICkpLAotICAgICAgICAoUmVxdWVz
dHMuZGVwbG95bWVudF9nZXQsICgyMDAsIFtdKSksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0
ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKICAgICAgICAgKFJlcXVlc3RzLnJlZl91cGRhdGVfb3Bl
biwgKDIwMCwge30pKSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9f
bGltaXQpLAogICAgICAgICAoUmVxdWVzdHMucmVmX3VwZGF0ZV90cnVzdGVkLCAoMjAwLCB7fSkp
LAotICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9jcmVhdGUsICgyMDAsIHt9KSkKICAgICBd
Ci0gICAgcmVmcyA9IHsKLSAgICAgICAgJ3JlZnMvcHVsbC8yMy9oZWFkJzogJ0hFQUQnLAotICAg
ICAgICAncmVmcy9wcnMtb3Blbi8yMyc6ICdIRUFEficsCi0gICAgICAgICdyZWZzL3Bycy10cnVz
dGVkLWZvci1wcmV2aWV3LzIzJzogJ0hFQUR+JwotICAgIH0KIAotICAgIHJldHVybmNvZGUsIGFj
dHVhbF90cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMs
IHJlZnMpCisgICAgbWV0aG9kX3RocmV3LCBhY3R1YWxfdHJhZmZpYyA9IHVwZGF0ZV9taXJyb3Jf
cmVmcygKKyAgICAgICAgcHVsbF9yZXF1ZXN0LCBleHBlY3RlZF90cmFmZmljCisgICAgKQogCi0g
ICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBub3QgbWV0aG9kX3RocmV3CiAg
ICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykK
IAogZGVmIHRlc3Rfc3luY2hyb25pemVfdXBkYXRlX21lbWJlcigpOgorICAgIHB1bGxfcmVxdWVz
dCA9IHsKKyAgICAgICAgJ251bWJlcic6IDQ1LAorICAgICAgICAnaGVhZCc6IHsnc2hhJzogJ2Fi
YzEyMyd9LAorICAgICAgICAnbGFiZWxzJzogW10sCisgICAgICAgICd1c2VyJzogeydsb2dpbic6
ICdqZ3JhaGFtJ30sCisgICAgICAgICdhdXRob3JfYXNzb2NpYXRpb24nOiAnTUVNQkVSJywKKyAg
ICAgICAgJ2Nsb3NlZF9hdCc6IE5vbmUsCisgICAgfQogICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBb
CiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAg
ICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVx
dWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCi0gICAgICAgIChSZXF1ZXN0cy5n
ZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRl
LCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuc2VhcmNoLCAoMjAwLAor
ICAgICAgICAoUmVxdWVzdHMucmVmX2dldF90cnVzdGVkLCAoCisgICAgICAgICAgICAyMDAsCiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2l0ZW1zJzogWwotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnbnVtYmVyJzogMjMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAnbGFiZWxzJzogW10sCi0gICAgICAgICAgICAgICAgICAgICAgICAnY2xv
c2VkX2F0JzogTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6
ICdncmFjZSd9LAotICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6
ICdNRU1CRVInCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAg
ICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQorICAgICAgICAgICAgICAg
ICdvYmplY3QnOiB7J3NoYSc6ICdkZWYyMzQnfSwKICAgICAgICAgICAgIH0KICAgICAgICAgKSks
Ci0gICAgICAgIChSZXF1ZXN0cy5wcl9kZXRhaWxzLCAoMjAwLAorICAgICAgICAoUmVxdWVzdHMu
Z2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0
X29wZW4sICgKKyAgICAgICAgICAgIDIwMCwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAnaGVhZCc6IHsKLSAgICAgICAgICAgICAgICAgICAgJ3JlcG8nOiB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAnZnVsbF9uYW1lJzogJ3Rlc3Qtb3JnL3Rlc3QtcmVwbycKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAnb2JqZWN0Jzog
eydzaGEnOiAnZGVmMjM0J30sCiAgICAgICAgICAgICB9CiAgICAgICAgICkpLAotICAgICAgICAo
UmVxdWVzdHMuZGVwbG95bWVudF9nZXQsICgyMDAsIFt7J3NvbWUnOiAnZGVwbG95bWVudCd9XSkp
LAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCiAgICAg
ICAgIChSZXF1ZXN0cy5yZWZfdXBkYXRlX29wZW4sICgyMDAsIHt9KSksCisgICAgICAgIChSZXF1
ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKICAgICAgICAgKFJlcXVlc3RzLnJl
Zl91cGRhdGVfdHJ1c3RlZCwgKDIwMCwge30pKQogICAgIF0KLSAgICByZWZzID0gewotICAgICAg
ICAncmVmcy9wdWxsLzIzL2hlYWQnOiAnSEVBRCcsCi0gICAgICAgICdyZWZzL3Bycy1vcGVuLzIz
JzogJ0hFQUR+JywKLSAgICAgICAgJ3JlZnMvcHJzLXRydXN0ZWQtZm9yLXByZXZpZXcvMjMnOiAn
SEVBRH4nCi0gICAgfQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9y
ZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYywgcmVmcykKKyAgICBtZXRob2RfdGhy
ZXcsIGFjdHVhbF90cmFmZmljID0gdXBkYXRlX21pcnJvcl9yZWZzKAorICAgICAgICBwdWxsX3Jl
cXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMKKyAgICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9
PSAwCisgICAgYXNzZXJ0IG5vdCBtZXRob2RfdGhyZXcKICAgICBhc3NlcnQgc2FtZV9tZW1iZXJz
KGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQogCi1kZWYgdGVzdF9zeW5jaHJvbml6
ZV9kZWxldGVfY29sbGFib3JhdG9yKCk6Ci0gICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKLSAgICAg
ICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVx
dWVzdHMuc2VhcmNoLCAoMjAwLAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdpdGVt
cyc6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgJ251
bWJlcic6IDIzLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVscyc6IFtdLAotICAgICAg
ICAgICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6ICcyMDE5LTEwLTMwJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdncmFjZSd9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT0xMQUJPUkFUT1InCi0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICdpbmNvbXBs
ZXRlX3Jlc3VsdHMnOiBGYWxzZQotICAgICAgICAgICAgfQotICAgICAgICApKQotICAgIF0KLSAg
ICByZWZzID0gewotICAgICAgICAncmVmcy9wdWxsLzIzL2hlYWQnOiAnSEVBRCcsCi0gICAgICAg
ICdyZWZzL3Bycy1vcGVuLzIzJzogJ0hFQUR+JywKLSAgICAgICAgJ3JlZnMvcHJzLXRydXN0ZWQt
Zm9yLXByZXZpZXcvMjMnOiAnSEVBRH4nCitkZWYgdGVzdF91cGRhdGVfbWlycm9yX3JlZnNfZGVs
ZXRlX2NvbGxhYm9yYXRvcigpOgorICAgIHB1bGxfcmVxdWVzdCA9IHsKKyAgICAgICAgJ251bWJl
cic6IDQ1LAorICAgICAgICAnaGVhZCc6IHsnc2hhJzogJ2FiYzEyMyd9LAorICAgICAgICAnbGFi
ZWxzJzogW10sCisgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdzdGVwaGVubWNncnVlcid9LAor
ICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9SQVRPUicsCisgICAgICAgICdj
bG9zZWRfYXQnOiAyMDE5LTEwLTMwLAogICAgIH0KLQotICAgIHJldHVybmNvZGUsIGFjdHVhbF90
cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMsIHJlZnMp
Ci0KLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0gICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhl
eHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKLSAgICBhc3NlcnQgbGlzdChyZW1vdGVf
cmVmcykgPT0gWydyZWZzL3B1bGwvMjMvaGVhZCddCi0KLQotZGVmIHRlc3Rfc3luY2hyb25pemVf
ZGVsZXRlX29sZF9wcigpOgotICAgICMgTm8gcHVsbCByZXF1ZXN0cyBmcm9tIHRoZSBzZWFyY2gs
IGJ1dCBvbmUgb3V0c3RhbmRpbmcgY2xvc2VkIFBSLgogICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBb
CiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAg
ICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVx
dWVzdHMuc2VhcmNoLCAoMjAwLAorICAgICAgICAoUmVxdWVzdHMucmVmX2dldF90cnVzdGVkLCAo
CisgICAgICAgICAgICAyMDAsCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2l0ZW1z
JzogW10sCi0gICAgICAgICAgICAgICAgJ2luY29tcGxldGVfcmVzdWx0cyc6IEZhbHNlCisgICAg
ICAgICAgICAgICAgJ29iamVjdCc6IHsnc2hhJzogJ2RlZjIzNCd9LAogICAgICAgICAgICAgfQog
ICAgICAgICApKSwKLSAgICAgICAgKFJlcXVlc3RzLnByX2RldGFpbHMsICgyMDAsCisgICAgICAg
IChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVl
c3RzLnJlZl9nZXRfb3BlbiwgKAorICAgICAgICAgICAgMjAwLAogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICdudW1iZXInOiAyMywKLSAgICAgICAgICAgICAgICAnbGFiZWxzJzogW10s
Ci0gICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6ICcyMDE5LTEwLTI4JywKLSAgICAgICAgICAg
ICAgICAnaGVhZCc6IHsKLSAgICAgICAgICAgICAgICAgICAgJ3JlcG8nOiB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAnZnVsbF9uYW1lJzogJ3Rlc3Qtb3JnL3Rlc3QtcmVwbycKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAnb2JqZWN0
JzogeydzaGEnOiAnZGVmMjM0J30sCiAgICAgICAgICAgICB9CiAgICAgICAgICkpLAorICAgICAg
ICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1
ZXN0cy5yZWZfZGVsZXRlX3RydXN0ZWQsICgyMDQsIE5vbmUpKSwKKyAgICAgICAgKFJlcXVlc3Rz
LmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMucmVmX2Rl
bGV0ZV9vcGVuLCAoMjA0LCBOb25lKSksCiAgICAgXQotICAgIHJlZnMgPSB7Ci0gICAgICAgICdy
ZWZzL3B1bGwvMjMvaGVhZCc6ICdIRUFEJywKLSAgICAgICAgJ3JlZnMvcHJzLW9wZW4vMjMnOiAn
SEVBRH4nLAotICAgICAgICAncmVmcy9wcnMtdHJ1c3RlZC1mb3ItcHJldmlldy8yMyc6ICdIRUFE
ficKLSAgICB9CiAKLSAgICByZXR1cm5jb2RlLCBhY3R1YWxfdHJhZmZpYywgcmVtb3RlX3JlZnMg
PSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmljLCByZWZzKQotCi0gICAgYXNzZXJ0IHJldHVy
bmNvZGUgPT0gMAotICAgIGFzc2VydCBzYW1lX21lbWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0
dWFsX3RyYWZmaWMpCi0gICAgYXNzZXJ0IGxpc3QocmVtb3RlX3JlZnMpID09IFsncmVmcy9wdWxs
LzIzL2hlYWQnXQotCi0KLWRlZiB0ZXN0X2RldGVjdF9pZ25vcmVfdW5rbm93bl9lbnYoKToKLSAg
ICBleHBlY3RlZF9naXRodWJfdHJhZmZpYyA9IFtdCi0gICAgZXhwZWN0ZWRfcHJldmlld190cmFm
ZmljID0gW10KLSAgICBldmVudCA9IHsKLSAgICAgICAgJ2RlcGxveW1lbnQnOiB7Ci0gICAgICAg
ICAgICAnaWQnOiAyNDYwMSwKLSAgICAgICAgICAgICdlbnZpcm9ubWVudCc6ICdnaG9zdHMnLAot
ICAgICAgICAgICAgJ3NoYSc6ICczMjMyJwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJu
Y29kZSwgYWN0dWFsX2dpdGh1Yl90cmFmZmljLCBhY3R1YWxfcHJldmlld190cmFmZmljID0gZGV0
ZWN0KAotICAgICAgICBldmVudCwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMsIGV4cGVjdGVkX3By
ZXZpZXdfdHJhZmZpYworICAgIG1ldGhvZF90aHJldywgYWN0dWFsX3RyYWZmaWMgPSB1cGRhdGVf
bWlycm9yX3JlZnMoCisgICAgICAgIHB1bGxfcmVxdWVzdCwgZXhwZWN0ZWRfdHJhZmZpYwogICAg
ICkKIAotICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSAgICBhc3NlcnQgbGVuKGFjdHVhbF9n
aXRodWJfdHJhZmZpYykgPT0gMAotICAgIGFzc2VydCBsZW4oYWN0dWFsX3ByZXZpZXdfdHJhZmZp
YykgPT0gMAorICAgIGFzc2VydCBub3QgbWV0aG9kX3RocmV3CisgICAgYXNzZXJ0IHNhbWVfbWVt
YmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKIAotZGVmIHRlc3RfZGV0ZWN0
X2ZhaWxfc2VhcmNoX3Rocm90dGxlZCgpOgorZGVmIHRlc3RfZGVwbG95X2ZhaWxfcmF0ZV9saW1p
dGVkKCk6CiAgICAgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMgPSBbCiAgICAgICAgIChSZXF1ZXN0
cy5nZXRfcmF0ZSwgKAogICAgICAgICAgICAgMjAwLApAQCAtNzg4LDk5ICs1NzYsMTA3IEBAIGRl
ZiB0ZXN0X2RldGVjdF9mYWlsX3NlYXJjaF90aHJvdHRsZWQoKToKICAgICAgICAgKSkKICAgICBd
CiAgICAgZXhwZWN0ZWRfcHJldmlld190cmFmZmljID0gW10KLSAgICBldmVudCA9IHsKLSAgICAg
ICAgJ2RlcGxveW1lbnQnOiB7Ci0gICAgICAgICAgICAnaWQnOiAyNDYwMSwKLSAgICAgICAgICAg
ICdlbnZpcm9ubWVudCc6ICd3cHQtcHJldmlldy00NScsCi0gICAgICAgICAgICAnc2hhJzogJzMy
MzInCi0gICAgICAgIH0KLSAgICB9CiAKLSAgICByZXR1cm5jb2RlLCBhY3R1YWxfZ2l0aHViX3Ry
YWZmaWMsIGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMgPSBkZXRlY3QoCi0gICAgICAgIGV2ZW50LCBl
eHBlY3RlZF9naXRodWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFmZmljCisgICAgcHJf
bnVtID0gNDUKKyAgICByZXZpc2lvbiA9ICJhYmNkZWYxMjMiCisgICAgbWV0aG9kX3RocmV3LCBh
Y3R1YWxfZ2l0aHViX3RyYWZmaWMsIGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMgPSBkZXBsb3koCisg
ICAgICAgIHByX251bSwgcmV2aXNpb24sIGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljLCBleHBlY3Rl
ZF9wcmV2aWV3X3RyYWZmaWMKICAgICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAxCisg
ICAgYXNzZXJ0IG1ldGhvZF90aHJldwogICAgIGFzc2VydCBhY3R1YWxfZ2l0aHViX3RyYWZmaWMg
PT0gZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMKICAgICBhc3NlcnQgYWN0dWFsX3ByZXZpZXdfdHJh
ZmZpYyA9PSBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMKIAotZGVmIHRlc3RfZGV0ZWN0X3N1Y2Nl
c3MoKToKK2RlZiB0ZXN0X2RlcGxveV9zdWNjZXNzKCk6CisgICAgcHJfbnVtID0gNDUKKyAgICBy
ZXZpc2lvbiA9ICdhYmNkZWYxMjMnCisKICAgICBleHBlY3RlZF9naXRodWJfdHJhZmZpYyA9IFsK
KyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAg
ICAoUmVxdWVzdHMuZGVwbG95bWVudF9nZXQsICgyMDAsIFtdKSksCisgICAgICAgIChSZXF1ZXN0
cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmRlcGxv
eW1lbnRfY3JlYXRlLCAoMjAwLCB7CisgICAgICAgICAgICAnaWQnOiAyNDYwMSwKKyAgICAgICAg
ICAgICdzaGEnOiByZXZpc2lvbiwKKyAgICAgICAgICAgICdlbnZpcm9ubWVudCc6ICd3cHQtcHJl
dmlldy00NScsCisgICAgICAgIH0pKSwKICAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNw
b25zZXMubm9fbGltaXQpLAogICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9zdGF0dXNfY3Jl
YXRlX3BlbmRpbmcsICgyMDAsIHt9KSksCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVz
cG9uc2VzLm5vX2xpbWl0KSwKICAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfc3RhdHVzX2Ny
ZWF0ZV9zdWNjZXNzLCAoMjAwLCB7fSkpCiAgICAgXQogICAgIGV4cGVjdGVkX3ByZXZpZXdfdHJh
ZmZpYyA9IFsKLSAgICAgICAgKFJlcXVlc3RzLnByZXZpZXcsICgyMDAsIDMyMzIpKQorICAgICAg
ICAoUmVxdWVzdHMucHJldmlldywgKDIwMCwgcmV2aXNpb24pKQogICAgIF0KLSAgICBldmVudCA9
IHsKLSAgICAgICAgJ2RlcGxveW1lbnQnOiB7Ci0gICAgICAgICAgICAnaWQnOiAyNDYwMSwKLSAg
ICAgICAgICAgICdlbnZpcm9ubWVudCc6ICd3cHQtcHJldmlldy00NScsCi0gICAgICAgICAgICAn
c2hhJzogJzMyMzInCi0gICAgICAgIH0KLSAgICB9CiAKLSAgICByZXR1cm5jb2RlLCBhY3R1YWxf
Z2l0aHViX3RyYWZmaWMsIGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMgPSBkZXRlY3QoCi0gICAgICAg
IGV2ZW50LCBleHBlY3RlZF9naXRodWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFmZmlj
CisgICAgbWV0aG9kX3RocmV3LCBhY3R1YWxfZ2l0aHViX3RyYWZmaWMsIGFjdHVhbF9wcmV2aWV3
X3RyYWZmaWMgPSBkZXBsb3koCisgICAgICAgIHByX251bSwgcmV2aXNpb24sIGV4cGVjdGVkX2dp
dGh1Yl90cmFmZmljLCBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMKICAgICApCiAKLSAgICBhc3Nl
cnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IG5vdCBtZXRob2RfdGhyZXcKICAgICBhc3Nl
cnQgYWN0dWFsX2dpdGh1Yl90cmFmZmljID09IGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljCiAgICAg
YXNzZXJ0IGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMgPT0gZXhwZWN0ZWRfcHJldmlld190cmFmZmlj
CiAKLWRlZiB0ZXN0X2RldGVjdF90aW1lb3V0X21pc3NpbmcoKToKK2RlZiB0ZXN0X2RlcGxveV90
aW1lb3V0X21pc3NpbmcoKToKKyAgICBwcl9udW0gPSA0NQorICAgIHJldmlzaW9uID0gJ2FiY2Rl
ZjEyMycKKwogICAgIGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljID0gWworICAgICAgICAoUmVxdWVz
dHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5kZXBs
b3ltZW50X2dldCwgKDIwMCwgW10pKSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNw
b25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9jcmVhdGUsICgy
MDAsIHsKKyAgICAgICAgICAgICdpZCc6IDI0NjAxLAorICAgICAgICAgICAgJ3NoYSc6IHJldmlz
aW9uLAorICAgICAgICAgICAgJ2Vudmlyb25tZW50JzogJ3dwdC1wcmV2aWV3LTQ1JywKKyAgICAg
ICAgfSkpLAogICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCks
CiAgICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X3N0YXR1c19jcmVhdGVfcGVuZGluZywgKDIw
MCwge30pKSwKICAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQp
LAogICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX2Vycm9yLCAoMjAw
LCB7fSkpCiAgICAgXQogICAgIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyA9IFsKLSAgICAgICAg
KFJlcXVlc3RzLnByZXZpZXcsICg0MDQsIHt9KSkKKyAgICAgICAgKFJlcXVlc3RzLnByZXZpZXcs
ICg0MDQsICIiKSkKICAgICBdCi0gICAgZXZlbnQgPSB7Ci0gICAgICAgICdkZXBsb3ltZW50Jzog
ewotICAgICAgICAgICAgJ2lkJzogMjQ2MDEsCi0gICAgICAgICAgICAnZW52aXJvbm1lbnQnOiAn
d3B0LXByZXZpZXctNDUnLAotICAgICAgICAgICAgJ3NoYSc6ICczMjMyJwotICAgICAgICB9Ci0g
ICAgfQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX2dpdGh1Yl90cmFmZmljLCBhY3R1YWxfcHJl
dmlld190cmFmZmljID0gZGV0ZWN0KAotICAgICAgICBldmVudCwgZXhwZWN0ZWRfZ2l0aHViX3Ry
YWZmaWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYworICAgIG1ldGhvZF90aHJldywgYWN0dWFs
X2dpdGh1Yl90cmFmZmljLCBhY3R1YWxfcHJldmlld190cmFmZmljID0gZGVwbG95KAorICAgICAg
ICBwcl9udW0sIHJldmlzaW9uLCBleHBlY3RlZF9naXRodWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJl
dmlld190cmFmZmljCiAgICAgKQogCi0gICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMQorICAgIGFz
c2VydCBtZXRob2RfdGhyZXcKICAgICBhc3NlcnQgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMgPT0g
YWN0dWFsX2dpdGh1Yl90cmFmZmljCiAgICAgcGluZ19jb3VudCA9IGxlbihhY3R1YWxfcHJldmll
d190cmFmZmljKQogICAgIGFzc2VydCBwaW5nX2NvdW50ID4gMAogICAgIGFzc2VydCBhY3R1YWxf
cHJldmlld190cmFmZmljID09IGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyAqIHBpbmdfY291bnQK
IAotZGVmIHRlc3RfZGV0ZWN0X3RpbWVvdXRfd3JvbmdfcmV2aXNpb24oKToKK2RlZiB0ZXN0X2Rl
cGxveV90aW1lb3V0X3dyb25nX3JldmlzaW9uKCk6CisgICAgcHJfbnVtID0gNDUKKyAgICByZXZp
c2lvbiA9ICdhYmNkZWYxMjMnCisKICAgICBleHBlY3RlZF9naXRodWJfdHJhZmZpYyA9IFsKKyAg
ICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAo
UmVxdWVzdHMuZGVwbG95bWVudF9nZXQsICgyMDAsIFtdKSksCisgICAgICAgIChSZXF1ZXN0cy5n
ZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1l
bnRfY3JlYXRlLCAoMjAwLCB7CisgICAgICAgICAgICAnaWQnOiAyNDYwMSwKKyAgICAgICAgICAg
ICdzaGEnOiByZXZpc2lvbiwKKyAgICAgICAgICAgICdlbnZpcm9ubWVudCc6ICd3cHQtcHJldmll
dy00NScsCisgICAgICAgIH0pKSwKICAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25z
ZXMubm9fbGltaXQpLAogICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9zdGF0dXNfY3JlYXRl
X3BlbmRpbmcsICgyMDAsIHt9KSksCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9u
c2VzLm5vX2xpbWl0KSwKICAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfc3RhdHVzX2NyZWF0
ZV9lcnJvciwgKDIwMCwge30pKQogICAgIF0KICAgICBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMg
PSBbCi0gICAgICAgIChSZXF1ZXN0cy5wcmV2aWV3LCAoMjAwLCAxMjM0KSkKKyAgICAgICAgIyB3
cHRwci5saXZlIGhhcyB0aGUgd3JvbmcgcmV2aXNpb24gZGVwbG95ZWQKKyAgICAgICAgKFJlcXVl
c3RzLnByZXZpZXcsICgyMDAsICdnaGlqa2w0NTYnKSkKICAgICBdCi0gICAgZXZlbnQgPSB7Ci0g
ICAgICAgICdkZXBsb3ltZW50JzogewotICAgICAgICAgICAgJ2lkJzogMjQ2MDEsCi0gICAgICAg
ICAgICAnZW52aXJvbm1lbnQnOiAnd3B0LXByZXZpZXctNDUnLAotICAgICAgICAgICAgJ3NoYSc6
ICczMjMyJwotICAgICAgICB9Ci0gICAgfQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX2dpdGh1
Yl90cmFmZmljLCBhY3R1YWxfcHJldmlld190cmFmZmljID0gZGV0ZWN0KAotICAgICAgICBldmVu
dCwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYworICAg
IG1ldGhvZF90aHJldywgYWN0dWFsX2dpdGh1Yl90cmFmZmljLCBhY3R1YWxfcHJldmlld190cmFm
ZmljID0gZGVwbG95KAorICAgICAgICBwcl9udW0sIHJldmlzaW9uLCBleHBlY3RlZF9naXRodWJf
dHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFmZmljCiAgICAgKQogCi0gICAgYXNzZXJ0IHJl
dHVybmNvZGUgPT0gMQorICAgIGFzc2VydCBtZXRob2RfdGhyZXcKICAgICBhc3NlcnQgZXhwZWN0
ZWRfZ2l0aHViX3RyYWZmaWMgPT0gYWN0dWFsX2dpdGh1Yl90cmFmZmljCiAgICAgcGluZ19jb3Vu
dCA9IGxlbihhY3R1YWxfcHJldmlld190cmFmZmljKQogICAgIGFzc2VydCBwaW5nX2NvdW50ID4g
MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS93ZWJzaXRlX2J1aWxkLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93ZWJzaXRlX2J1aWxkLnNoCmluZGV4IGY2YjI2MzEw
YWFiY2UyMDBmYzBkNzc4NDRmNWYzYWQyOGRlMGJiN2YuLmZjMjU1YWU4M2YyMjE5ZDNlMzJhODU5
ZjBkNjM3NDVlZDY4MmI0MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvd2Vic2l0ZV9idWlsZC5zaAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3dlYnNpdGVfYnVp
bGQuc2gKQEAgLTE0LDcgKzE0LDcgQEAgcmVtb3RlX3VybD1odHRwczovLyR7REVQTE9ZX1RPS0VO
fUBnaXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0CiAKIGZ1bmN0aW9uIGpzb25f
cHJvcGVydHkgewogICBjYXQgJHsxfSB8IFwKLSAgICBweXRob24gLWMgImltcG9ydCBqc29uLCBz
eXM7IHByaW50IGpzb24ubG9hZChzeXMuc3RkaW4pLmdldChcIiR7Mn1cIiwgXCJcIikiCisgICAg
cHl0aG9uIC1jICJpbXBvcnQganNvbiwgc3lzOyBwcmludChqc29uLmxvYWQoc3lzLnN0ZGluKS5n
ZXQoXCIkezJ9XCIsIFwiXCIpKSIKIH0KIAogZnVuY3Rpb24gaXNfcHVsbF9yZXF1ZXN0IHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvZG9ja2VyL2RvY3VtZW50YXRpb24vRG9ja2VyZmlsZSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24vRG9ja2Vy
ZmlsZQppbmRleCBlMDFmOThlNGQ0ZGYwZTdmNzUwMWJiNWQ3MDU3ZDFkNTI4MjIxYmRlLi4wMWVh
MGJkOTViZjZkMTQ2OGQ0YTM4YWZhMTIxZjlmY2EwMWYzZTk1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9kb2N1bWVu
dGF0aW9uL0RvY2tlcmZpbGUKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvZG9jdW1lbnRhdGlvbi9Eb2NrZXJmaWxlCkBAIC0xLDMg
KzEsMyBAQAotRlJPTSBweXRob246Mi1zdHJldGNoCitGUk9NIHB5dGhvbjozLjgtYnVzdGVyCiAK
LVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLS15ZXMgZ2l0CitSVU4gYXB0
LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC0teWVzIGdpdCB2aXJ0dWFsZW52CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2dpdGlnbm9yZS9naXRpZ25vcmUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9naXRpZ25vcmUucHkKaW5kZXggMmEyNzYxNTE4
NjYzY2E5NDkwMTFmYTNkYzdkZDdmYzM5MGY3OTM2Yy4uZGJlODNjMjdlZWU3OGQ0YmUyNDg4ZmFh
YjRlMGY3MTY2ZTJjOTliYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvZ2l0aWdub3JlLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL2dp
dGlnbm9yZS5weQpAQCAtMTU1LDcgKzE1NSwxMCBAQCBjbGFzcyBQYXRoRmlsdGVyKG9iamVjdCk6
CiAgICAgICAgIHNlbGYubGl0ZXJhbHNfZGlyID0gZGVmYXVsdGRpY3QoZGljdCkgICMgdHlwZTog
RGljdFtPcHRpb25hbFtieXRlc10sIERpY3RbYnl0ZXMsIExpc3RbVHVwbGVbYm9vbCwgUGF0dGVy
bltieXRlc11dXV1dCiAgICAgICAgIHNlbGYucGF0dGVybnNfZmlsZSA9IFtdICAjIHR5cGU6IExp
c3RbVHVwbGVbVHVwbGVbYm9vbCwgUGF0dGVybltieXRlc11dLCBMaXN0W1R1cGxlW2Jvb2wsIFBh
dHRlcm5bYnl0ZXNdXV1dXQogICAgICAgICBzZWxmLnBhdHRlcm5zX2RpciA9IFtdICAjIHR5cGU6
IExpc3RbVHVwbGVbVHVwbGVbYm9vbCwgUGF0dGVybltieXRlc11dLCBMaXN0W1R1cGxlW2Jvb2ws
IFBhdHRlcm5bYnl0ZXNdXV1dXQotICAgICAgICBzZWxmLmNhY2hlID0gY2FjaGUgb3Ige30gICMg
dHlwZTogTXV0YWJsZU1hcHBpbmdbYnl0ZXMsIGJvb2xdCisKKyAgICAgICAgaWYgY2FjaGUgaXMg
Tm9uZToKKyAgICAgICAgICAgIGNhY2hlID0ge30KKyAgICAgICAgc2VsZi5jYWNoZSA9IGNhY2hl
ICAjIHR5cGU6IE11dGFibGVNYXBwaW5nW2J5dGVzLCBib29sXQogCiAgICAgICAgIGlmIGV4dHJh
cyBpcyBOb25lOgogICAgICAgICAgICAgZXh0cmFzID0gW10KQEAgLTI0Niw3ICsyNDksNyBAQCBj
bGFzcyBQYXRoRmlsdGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3Qg
c2VsZi5jYWNoZVtwYXRoXToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYXBw
ZW5kKGl0ZW0pCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAg
ICAgICAgICBmb3IgcnVsZV9kaXIgaW4gW05vbmUsIGRpcnBhdGhdOgorICAgICAgICAgICAgICAg
ICAgICBmb3IgcnVsZV9kaXIgaW4gW05vbmUsIGRpcnBhdGggaWYgZGlycGF0aCAhPSBiIi4iIGVs
c2UgYiIiXToKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5hbWUgaW4gbGl0ZXJhbHMuZ2V0
KHJ1bGVfZGlyLCBlbXB0eSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZSA9
IGxpdGVyYWxzW3J1bGVfZGlyXVtuYW1lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IG5vdCBhbnkocnVsZS5tYXRjaChuYW1lIGlmIG5hbWVfb25seSBlbHNlIHBhdGgpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvbGludC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC9saW50LnB5CmluZGV4IDM4MjI1ZWM5NTg4NjJlYzc5MzY1NjAxMzIyNmNjMDNk
NDY5Yjg1M2QuLjE4NzJlNjI3MjU5OTNiZDE2ZWU3YzU3MjM2YjQwZGQwMDA3MzFlNzQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC9saW50LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC9saW50LnB5CkBAIC02NTUsNiArNjU1LDE2IEBAIGRlZiBjaGVja19w
YXJzZWQocmVwb19yb290LCBwYXRoLCBmKToKICAgICAgICAgaWYgaW5jb3JyZWN0X3BhdGgoInRl
c3Rkcml2ZXItdmVuZG9yLmpzIiwgc3JjKToKICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVs
ZXMuVGVzdGRyaXZlclZlbmRvclBhdGguZXJyb3IocGF0aCkpCiAKKyAgICAgICAgc2NyaXB0X3Bh
dGggPSBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNjcmlwdF9wYXRoID0gdXJsc3Bs
aXQodXJsam9pbihzb3VyY2VfZmlsZS51cmwsIHNyYykpLnBhdGgKKyAgICAgICAgZXhjZXB0IFZh
bHVlRXJyb3I6CisgICAgICAgICAgICAjIFRoaXMgaGFwcGVucyBpZiB0aGUgY29udGVudHMgb2Yg
c3JjIGlzbid0IHNvbWV0aGluZyB0aGF0IGxvb2tzIGxpa2UgYSBVUkwgdG8gUHl0aG9uCisgICAg
ICAgICAgICBwYXNzCisgICAgICAgIGlmIChzY3JpcHRfcGF0aCA9PSAiL2NvbW1vbi9yZWZ0ZXN0
LXdhaXQuanMiIGFuZAorICAgICAgICAgICAgInJlZnRlc3Qtd2FpdCIgbm90IGluIHNvdXJjZV9m
aWxlLnJvb3QuYXR0cmliLmdldCgiY2xhc3MiLCAiIikuc3BsaXQoKSk6CisgICAgICAgICAgICBl
cnJvcnMuYXBwZW5kKHJ1bGVzLk1pc3NpbmdSZWZ0ZXN0V2FpdC5lcnJvcihwYXRoKSkKKwogICAg
IHJldHVybiBlcnJvcnMKIAogY2xhc3MgQVNUQ2hlY2sod2l0aF9tZXRhY2xhc3MoYWJjLkFCQ01l
dGEpKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC9ydWxlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9ydWxlcy5weQppbmRleCBmNmUyM2FlZjU4YWQzYTk3
YTBiYThiZjU1MTRjYjgwMmYyZTBmMzFiLi5iMzg5ZTNkOGYwODU0Y2MzNGM4NGU3Y2M5OGM3MDk2
ZmVmZDJmMmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvcnVsZXMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3J1bGVzLnB5CkBAIC0xOTcsNiArMTk3
LDE0IEBAIGNsYXNzIE11bHRpcGxlVGVzdGhhcm5lc3MoUnVsZSk6CiAgICAgIiIiCiAKIAorY2xh
c3MgTWlzc2luZ1JlZnRlc3RXYWl0KFJ1bGUpOgorICAgIG5hbWUgPSAiTUlTU0lORy1SRUZURVNU
V0FJVCIKKyAgICBkZXNjcmlwdGlvbiA9ICJNaXNzaW5nIGBjbGFzcz1yZWZ0ZXN0LXdhaXRgIgor
ICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICBlbnN1cmUgdGVzdHMgdGhhdCBpbmNsdWRlIHJlZnRl
c3Qtd2FpdC5qcyBhbHNvIHVzZSBjbGFzcz1yZWZ0ZXN0LXdhaXQgb24gdGhlIHJvb3QgZWxlbWVu
dC4KKyAgICAiIiIKKworCiBjbGFzcyBNaXNzaW5nVGVzdGhhcm5lc3NSZXBvcnQoUnVsZSk6CiAg
ICAgbmFtZSA9ICJNSVNTSU5HLVRFU1RIQVJORVNTUkVQT1JUIgogICAgIGRlc2NyaXB0aW9uID0g
Ik1pc3NpbmcgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz5g
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL3Rlc3RfbGludC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2xpbnQucHkKaW5kZXgg
NTVkYmJlOTJkZmMzZjRkZjg4YzU5NGNhMTYxMTZlYjI3MTRlZGY3Zi4uNzk4ZGQ3Yjk0MzFkN2Zm
NTI1NjgxYmNmMTRiZmUzNzU0Nzc5ODQwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfbGludC5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvdGVzdF9saW50LnB5CkBAIC02LDkgKzYsMTMgQEAgaW1wb3J0IHN5cwogaW1wb3J0
IG1vY2sKIGltcG9ydCBzaXgKIAotZnJvbSAuLi5sb2NhbHBhdGhzIGltcG9ydCByZXBvX3Jvb3QK
LWZyb20gLi4gaW1wb3J0IGxpbnQgYXMgbGludF9tb2QKLWZyb20gLi5saW50IGltcG9ydCBmaWx0
ZXJfaWdub3JlbGlzdF9lcnJvcnMsIHBhcnNlX2lnbm9yZWxpc3QsIGxpbnQsIGNyZWF0ZV9wYXJz
ZXIKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCityb290ID0gb3MucGF0aC5hYnNw
YXRoKG9zLnBhdGguam9pbihoZXJlLCAiLi4iLCAiLi4iLCAiLi4iKSkKK3N5cy5wYXRoLmluc2Vy
dCgwLCByb290KQorCitmcm9tIHRvb2xzLmxvY2FscGF0aHMgaW1wb3J0IHJlcG9fcm9vdAorZnJv
bSB0b29scy5saW50IGltcG9ydCBsaW50IGFzIGxpbnRfbW9kCitmcm9tIHRvb2xzLmxpbnQubGlu
dCBpbXBvcnQgZmlsdGVyX2lnbm9yZWxpc3RfZXJyb3JzLCBwYXJzZV9pZ25vcmVsaXN0LCBsaW50
LCBjcmVhdGVfcGFyc2VyCiAKIF9kdW1teV9yZXBvID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGly
bmFtZShfX2ZpbGVfXyksICJkdW1teSIpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbG9jYWxwYXRocy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbG9jYWxwYXRocy5weQpp
bmRleCA1MWFlY2VhNzcxMmEyZjkwYWIxNzc4ZDYyZmU4Yjc0ZDcyMjc4NWU2Li5hNzlhY2I4MmE1
MGM1NWVjZTU4YmI2MDQwZjZiOWExOTgwOGM4YTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xvY2FscGF0aHMucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9sb2NhbHBh
dGhzLnB5CkBAIC0xMCw4ICsxMCwxMSBAQCBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2lu
KGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJhdG9taWN3cml0ZXMiKSkKIHN5cy5wYXRoLmluc2VydCgw
LCBvcy5wYXRoLmpvaW4oaGVyZSwgInRoaXJkX3BhcnR5IiwgImF0dHJzIiwgInNyYyIpKQogc3lz
LnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihoZXJlLCAidGhpcmRfcGFydHkiLCAiZnVuY3Np
Z3MiKSkKIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgInRoaXJkX3BhcnR5
IiwgImh0bWw1bGliIikpCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0
aGlyZF9wYXJ0eSIsICJ6aXBwIikpCiBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhl
cmUsICJ0aGlyZF9wYXJ0eSIsICJtb3JlLWl0ZXJ0b29scyIpKQotc3lzLnBhdGguaW5zZXJ0KDAs
IG9zLnBhdGguam9pbihoZXJlLCAidGhpcmRfcGFydHkiLCAicGx1Z2d5IikpCitzeXMucGF0aC5p
bnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJwYWNrYWdpbmciKSkK
K3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgInRoaXJkX3BhcnR5IiwgInBh
dGhsaWIyIikpCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9w
YXJ0eSIsICJwbHVnZ3kiLCAic3JjIikpCiBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2lu
KGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJweSIpKQogc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGgu
am9pbihoZXJlLCAidGhpcmRfcGFydHkiLCAicHl0ZXN0IikpCiBzeXMucGF0aC5pbnNlcnQoMCwg
b3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJweXRlc3QiLCAic3JjIikpCkBAIC0y
Miw2ICsyNSw4IEBAIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgInRoaXJk
X3BhcnR5IiwgImhwYWNrIikpCiBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUs
ICJ0aGlyZF9wYXJ0eSIsICJoeXBlcmZyYW1lIikpCiBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0
aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJjZXJ0aWZpIikpCiBzeXMucGF0aC5pbnNlcnQo
MCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJoeXBlciIpKQoraWYgc3lzLnZl
cnNpb25faW5mbyA8ICgzLCA4KToKKyAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2lu
KGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJpbXBvcnRsaWJfbWV0YWRhdGEiKSkKIHN5cy5wYXRoLmlu
c2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgIndlYmRyaXZlciIpKQogc3lzLnBhdGguaW5zZXJ0
KDAsIG9zLnBhdGguam9pbihoZXJlLCAid3B0cnVubmVyIikpCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvaXRl
bS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvaXRlbS5weQppbmRleCA5YTQzYTY4ZjFmYmNjOTc3MTVjNTQ0NmI4MjNmMDIyNTk2
ZDZjYjAxLi44NTdjODQ4NWRkMDI1NTIyOThlNDhmYTlmYWUxNzY0NmM0YzAyZjQyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L2l0ZW0ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9tYW5pZmVzdC9pdGVtLnB5CkBAIC0xLDcgKzEsNyBAQAogaW1wb3J0IG9z
LnBhdGgKIGZyb20gaW5zcGVjdCBpbXBvcnQgaXNhYnN0cmFjdAogZnJvbSBzaXggaW1wb3J0IGl0
ZXJpdGVtcywgd2l0aF9tZXRhY2xhc3MKLWZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBv
cnQgdXJsam9pbiwgdXJscGFyc2UKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQg
dXJsam9pbiwgdXJscGFyc2UsIHBhcnNlX3FzCiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJz
dHJhY3Rwcm9wZXJ0eQogCiBmcm9tIC51dGlscyBpbXBvcnQgdG9fb3NfcGF0aApAQCAtMTA0LDcg
KzEwNCw3IEBAIGNsYXNzIE1hbmlmZXN0SXRlbSh3aXRoX21ldGFjbGFzcyhNYW5pZmVzdEl0ZW1N
ZXRhKSk6CiAKIAogY2xhc3MgVVJMTWFuaWZlc3RJdGVtKE1hbmlmZXN0SXRlbSk6Ci0gICAgX19z
bG90c19fID0gKCJ1cmxfYmFzZSIsICJfdXJsIiwgIl9leHRyYXMiKQorICAgIF9fc2xvdHNfXyA9
ICgidXJsX2Jhc2UiLCAiX3VybCIsICJfZXh0cmFzIiwgIl9mbGFncyIpCiAKICAgICBkZWYgX19p
bml0X18oc2VsZiwKICAgICAgICAgICAgICAgICAgdGVzdHNfcm9vdCwgICMgdHlwZTogVGV4dApA
QCAtMTIwLDYgKzEyMCw5IEBAIGNsYXNzIFVSTE1hbmlmZXN0SXRlbShNYW5pZmVzdEl0ZW0pOgog
ICAgICAgICBhc3NlcnQgdXJsIGlzIE5vbmUgb3IgdXJsWzBdICE9ICIvIgogICAgICAgICBzZWxm
Ll91cmwgPSB1cmwKICAgICAgICAgc2VsZi5fZXh0cmFzID0gZXh0cmFzCisgICAgICAgIHBhcnNl
ZF91cmwgPSB1cmxwYXJzZShzZWxmLnVybCkKKyAgICAgICAgc2VsZi5fZmxhZ3MgPSAoc2V0KHBh
cnNlZF91cmwucGF0aC5yc3BsaXQoIi8iLCAxKVsxXS5zcGxpdCgiLiIpWzE6LTFdKSB8CisgICAg
ICAgICAgICAgICAgICAgICAgIHNldChwYXJzZV9xcyhwYXJzZWRfdXJsLnF1ZXJ5KS5nZXQoIndw
dF9mbGFncyIsIFtdKSkpCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaWQoc2VsZik6CkBAIC0x
MzgsMjIgKzE0MSwxOSBAQCBjbGFzcyBVUkxNYW5pZmVzdEl0ZW0oTWFuaWZlc3RJdGVtKToKICAg
ICBAcHJvcGVydHkKICAgICBkZWYgaHR0cHMoc2VsZik6CiAgICAgICAgICMgdHlwZTogKCkgLT4g
Ym9vbAotICAgICAgICBmbGFncyA9IHNldCh1cmxwYXJzZShzZWxmLnVybCkucGF0aC5yc3BsaXQo
Ii8iLCAxKVsxXS5zcGxpdCgiLiIpWzE6LTFdKQotICAgICAgICByZXR1cm4gImh0dHBzIiBpbiBm
bGFncyBvciAic2VydmljZXdvcmtlciIgaW4gZmxhZ3MKKyAgICAgICAgcmV0dXJuICJodHRwcyIg
aW4gc2VsZi5fZmxhZ3Mgb3IgInNlcnZpY2V3b3JrZXIiIGluIHNlbGYuX2ZsYWdzCiAKICAgICBA
cHJvcGVydHkKICAgICBkZWYgaDIoc2VsZik6CiAgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAot
ICAgICAgICBmbGFncyA9IHNldCh1cmxwYXJzZShzZWxmLnVybCkucGF0aC5yc3BsaXQoIi8iLCAx
KVsxXS5zcGxpdCgiLiIpWzE6LTFdKQotICAgICAgICByZXR1cm4gImgyIiBpbiBmbGFncworICAg
ICAgICByZXR1cm4gImgyIiBpbiBzZWxmLl9mbGFncwogCiAgICAgQHByb3BlcnR5CiAgICAgZGVm
IHN1YmRvbWFpbihzZWxmKToKICAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCi0gICAgICAgIGZs
YWdzID0gc2V0KHVybHBhcnNlKHNlbGYudXJsKS5wYXRoLnJzcGxpdCgiLyIsIDEpWzFdLnNwbGl0
KCIuIilbMTotMV0pCiAgICAgICAgICMgTm90ZTogdGhpcyBpcyBjdXJyZW50bHkgaGFyZC1jb2Rl
ZCB0byBjaGVjayBmb3IgYHd3d2AsIHJhdGhlciB0aGFuCiAgICAgICAgICMgYWxsIHBvc3NpYmxl
IHZhbGlkIHN1YmRvbWFpbnMuIEl0IGNhbiBiZSBleHRlbmRlZCBpZiBuZWVkZWQuCi0gICAgICAg
IHJldHVybiAid3d3IiBpbiBmbGFncworICAgICAgICByZXR1cm4gInd3dyIgaW4gc2VsZi5fZmxh
Z3MKIAogICAgIGRlZiB0b19qc29uKHNlbGYpOgogICAgICAgICAjIHR5cGU6ICgpIC0+IFR1cGxl
W09wdGlvbmFsW1RleHRdLCBEaWN0W0FueSwgQW55XV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvanNvbmxpYi5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFu
aWZlc3QvanNvbmxpYi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lN2YwN2MzYWQyYTJkZDQzNTY3NThhYzg0YWQ1
NGNmMTk4Yjc2Mjk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9qc29ubGliLnB5CkBAIC0wLDAgKzEs
MTQ0IEBACitpbXBvcnQgcmUKK2ltcG9ydCBqc29uCisKK2Zyb20gc2l4IGltcG9ydCBQWTMKKwor
CitNWVBZID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4g
cnVuIHVuZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQW55U3RyLCBDYWxs
YWJsZSwgRGljdCwgSU8sIFRleHQKKworCitfX2FsbF9fID0gWyJsb2FkIiwgImR1bXBfbG9jYWwi
LCAiZHVtcF9sb2NhbCIsICJkdW1wX2Rpc3QiLCAiZHVtcHNfZGlzdCJdCisKKwordHJ5OgorICAg
IGltcG9ydCB1anNvbgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGhhc191anNvbiA9IEZhbHNl
CitlbHNlOgorICAgIGhhc191anNvbiA9IFRydWUKKworIworIyBsb2FkCisjCisKK2lmIGhhc191
anNvbjoKKyAgICBsb2FkID0gdWpzb24ubG9hZCAgIyB0eXBlOiBDYWxsYWJsZVtbSU9bQW55U3Ry
XV0sIEFueV0KKworZWxzZToKKyAgICBsb2FkID0ganNvbi5sb2FkCisKKworIworIyBsb2Fkcwor
IworCitpZiBoYXNfdWpzb246CisgICAgbG9hZHMgPSB1anNvbi5sb2FkcyAgIyB0eXBlOiBDYWxs
YWJsZVtbQW55U3RyXSwgQW55XQorCitlbHNlOgorICAgIGxvYWRzID0ganNvbi5sb2FkcworCisK
KyMKKyMgZHVtcC9kdW1wc19sb2NhbCBvcHRpb25zIGZvciBzb21lIGxpYnJhcmllcworIworX3Vq
c29uX2R1bXBfbG9jYWxfa3dhcmdzID0geworICAgICdlbnN1cmVfYXNjaWknOiBGYWxzZSwKKyAg
ICAnZXNjYXBlX2ZvcndhcmRfc2xhc2hlcyc6IEZhbHNlLAorICAgICdpbmRlbnQnOiAxLAorfSAg
IyB0eXBlOiBEaWN0W3N0ciwgQW55XQorCitpZiBQWTM6CisgICAgX3Vqc29uX2R1bXBfbG9jYWxf
a3dhcmdzWydyZWplY3RfYnl0ZXMnXSA9IFRydWUKKworCitfanNvbl9kdW1wX2xvY2FsX2t3YXJn
cyA9IHsKKyAgICAnZW5zdXJlX2FzY2lpJzogRmFsc2UsCisgICAgJ2luZGVudCc6IDEsCisgICAg
J3NlcGFyYXRvcnMnOiAoJywnLCAnOiAnKSwKK30gICMgdHlwZTogRGljdFtzdHIsIEFueV0KKwor
CisjCisjIGR1bXBfbG9jYWwgKGZvciBsb2NhbCwgbm9uLWRpc3RyaWJ1dGVkIHVzYWdlIG9mIEpT
T04pCisjCisKK2lmIGhhc191anNvbjoKKyAgICBkZWYgZHVtcF9sb2NhbChvYmosIGZwKToKKyAg
ICAgICAgIyB0eXBlOiAoQW55LCBJT1tzdHJdKSAtPiBOb25lCisgICAgICAgIHJldHVybiB1anNv
bi5kdW1wKG9iaiwgZnAsICoqX3Vqc29uX2R1bXBfbG9jYWxfa3dhcmdzKQorCitlbHNlOgorICAg
IGRlZiBkdW1wX2xvY2FsKG9iaiwgZnApOgorICAgICAgICAjIHR5cGU6IChBbnksIElPW3N0cl0p
IC0+IE5vbmUKKyAgICAgICAgcmV0dXJuIGpzb24uZHVtcChvYmosIGZwLCAqKl9qc29uX2R1bXBf
bG9jYWxfa3dhcmdzKQorCisKKyMKKyMgZHVtcHNfbG9jYWwgKGZvciBsb2NhbCwgbm9uLWRpc3Ry
aWJ1dGVkIHVzYWdlIG9mIEpTT04pCisjCisKK2lmIGhhc191anNvbjoKKyAgICBkZWYgZHVtcHNf
bG9jYWwob2JqKToKKyAgICAgICAgIyB0eXBlOiAoQW55KSAtPiBUZXh0CisgICAgICAgIHJldHVy
biB1anNvbi5kdW1wcyhvYmosICoqX3Vqc29uX2R1bXBfbG9jYWxfa3dhcmdzKQorCitlbHNlOgor
ICAgIGRlZiBkdW1wc19sb2NhbChvYmopOgorICAgICAgICAjIHR5cGU6IChBbnkpIC0+IFRleHQK
KyAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMob2JqLCAqKl9qc29uX2R1bXBfbG9jYWxfa3dhcmdz
KQorCisKKyMKKyMgZHVtcC9kdW1wc19kaXN0IChmb3IgZGlzdHJpYnV0ZWQgdXNhZ2Ugb2YgSlNP
TiB3aGVyZSBmaWxlcyBzaG91bGQgc2FmZWx5IHJvdW5kdHJpcCkKKyMKKworX3Vqc29uX2R1bXBf
ZGlzdF9rd2FyZ3MgPSB7CisgICAgJ3NvcnRfa2V5cyc6IFRydWUsCisgICAgJ2luZGVudCc6IDEs
Cit9ICAjIHR5cGU6IERpY3Rbc3RyLCBBbnldCisKK2lmIFBZMzoKKyAgICBfdWpzb25fZHVtcF9k
aXN0X2t3YXJnc1sncmVqZWN0X2J5dGVzJ10gPSBUcnVlCisKK19qc29uX2R1bXBfZGlzdF9rd2Fy
Z3MgPSB7CisgICAgJ3NvcnRfa2V5cyc6IFRydWUsCisgICAgJ2luZGVudCc6IDEsCisgICAgJ3Nl
cGFyYXRvcnMnOiAoJywnLCAnOiAnKSwKK30gICMgdHlwZTogRGljdFtzdHIsIEFueV0KKworCitp
ZiBoYXNfdWpzb246CisgICAgaWYgdWpzb24uZHVtcHMoW10sIGluZGVudD0xKSA9PSAiW10iOgor
ICAgICAgICAjIG9wdGltaXN0aWNhbGx5IHNlZSBpZiBodHRwczovL2dpdGh1Yi5jb20vdWx0cmFq
c29uL3VsdHJhanNvbi9pc3N1ZXMvNDI5IGlzIGZpeGVkCisgICAgICAgIGRlZiBfdWpzb25fZml4
dXAocyk6CisgICAgICAgICAgICAjIHR5cGU6IChzdHIpIC0+IHN0cgorICAgICAgICAgICAgcmV0
dXJuIHMKKyAgICBlbHNlOgorICAgICAgICBfdWpzb25fZml4dXBfcmUgPSByZS5jb21waWxlKHIi
KFtcW3tdKVtcblx4MjBdKyhbfVxdXSkiKQorCisgICAgICAgIGRlZiBfdWpzb25fZml4dXAocyk6
CisgICAgICAgICAgICAjIHR5cGU6IChzdHIpIC0+IHN0cgorICAgICAgICAgICAgcmV0dXJuIF91
anNvbl9maXh1cF9yZS5zdWIoCisgICAgICAgICAgICAgICAgbGFtYmRhIG06IG0uZ3JvdXAoMSkg
KyBtLmdyb3VwKDIpLAorICAgICAgICAgICAgICAgIHMKKyAgICAgICAgICAgICkKKworICAgIGRl
ZiBkdW1wX2Rpc3Qob2JqLCBmcCk6CisgICAgICAgICMgdHlwZTogKEFueSwgSU9bc3RyXSkgLT4g
Tm9uZQorICAgICAgICBmcC53cml0ZShfdWpzb25fZml4dXAodWpzb24uZHVtcHMob2JqLCAqKl91
anNvbl9kdW1wX2Rpc3Rfa3dhcmdzKSkpCisKKyAgICBkZWYgZHVtcHNfZGlzdChvYmopOgorICAg
ICAgICAjIHR5cGU6IChBbnkpIC0+IFRleHQKKyAgICAgICAgcmV0dXJuIF91anNvbl9maXh1cCh1
anNvbi5kdW1wcyhvYmosICoqX3Vqc29uX2R1bXBfZGlzdF9rd2FyZ3MpKQorZWxzZToKKyAgICBk
ZWYgZHVtcF9kaXN0KG9iaiwgZnApOgorICAgICAgICAjIHR5cGU6IChBbnksIElPW3N0cl0pIC0+
IE5vbmUKKyAgICAgICAganNvbi5kdW1wKG9iaiwgZnAsICoqX2pzb25fZHVtcF9kaXN0X2t3YXJn
cykKKworICAgIGRlZiBkdW1wc19kaXN0KG9iaik6CisgICAgICAgICMgdHlwZTogKEFueSkgLT4g
VGV4dAorICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhvYmosICoqX2pzb25fZHVtcF9kaXN0X2t3
YXJncykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvbG9nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9sb2cucHkKaW5kZXggOWUyYWQ3NDA4MWU0
YTFiMzhiOWMzYzNiYTYxZDQ5YmUyZTgxNTFmZC4uNjU1MWMyYjVmN2NjMGY2MWE4NWVmNWZmYjRi
YmM0NjZhNTg1YjFhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9sb2cucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9sb2cucHkKQEAgLTEs
MTUgKzEsMTAgQEAKIGltcG9ydCBsb2dnaW5nCi1pbXBvcnQgc3lzCiAKIGxvZ2dlciA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCJtYW5pZmVzdCIpCiAKLWRlZiBzZXR1cCgpOgorZGVmIGVuYWJsZV9kZWJ1
Z19sb2dnaW5nKCk6CiAgICAgIyB0eXBlOiAoKSAtPiBOb25lCiAgICAgbG9nZ2VyLnNldExldmVs
KGxvZ2dpbmcuREVCVUcpCi0gICAgaGFuZGxlciA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcihzeXMu
c3Rkb3V0KQotICAgIGZvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKGxvZ2dpbmcuQkFTSUNf
Rk9STUFULCBOb25lKQotICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKLSAgICBs
b2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQogCiBkZWYgZ2V0X2xvZ2dlcigpOgogICAgICMgdHlw
ZTogKCkgLT4gbG9nZ2luZy5Mb2dnZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbWFuaWZlc3QucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L21h
bmlmZXN0LnB5CmluZGV4IDQ0OWNkMjQ1YWNiYzU5OTM4OWE3NmNkNzFmMWY4YWUyOTMyMzA2NmIu
LjEyM2YwNDUxODc0Yzk0OGUzODQ1YjExZjAwNGZiZWE1N2Q3ODg5OWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
bWFuaWZlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weQpAQCAtMSw3ICsxLDcgQEAKIGltcG9ydCBp
bwogaW1wb3J0IGl0ZXJ0b29scwotaW1wb3J0IGpzb24KIGltcG9ydCBvcworaW1wb3J0IHN5cwog
ZnJvbSBhdG9taWN3cml0ZXMgaW1wb3J0IGF0b21pY193cml0ZQogZnJvbSBjb3B5IGltcG9ydCBk
ZWVwY29weQogZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0IFBvb2wsIGNwdV9jb3VudApAQCAt
MTMsNiArMTMsNyBAQCBmcm9tIHNpeCBpbXBvcnQgKAogICAgIHN0cmluZ190eXBlcywKICkKIAor
ZnJvbSAuIGltcG9ydCBqc29ubGliCiBmcm9tIC4gaW1wb3J0IHZjcwogZnJvbSAuaXRlbSBpbXBv
cnQgKENvbmZvcm1hbmNlQ2hlY2tlclRlc3QsCiAgICAgICAgICAgICAgICAgICAgQ3Jhc2hUZXN0
LApAQCAtNDUsMTEgKzQ2LDYgQEAgaWYgTVlQWToKICAgICBmcm9tIHR5cGluZyBpbXBvcnQgVHlw
ZQogICAgIGZyb20gdHlwaW5nIGltcG9ydCBVbmlvbgogCi10cnk6Ci0gICAgaW1wb3J0IHVqc29u
Ci0gICAgZmFzdF9qc29uID0gdWpzb24KLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBmYXN0X2pz
b24gPSBqc29uICAjIHR5cGU6IGlnbm9yZQogCiBDVVJSRU5UX1ZFUlNJT04gPSA4ICAjIHR5cGU6
IGludAogCkBAIC0xNzgsNiArMTc0LDggQEAgY2xhc3MgTWFuaWZlc3Qob2JqZWN0KToKICAgICAg
ICAgY29uc3RydWN0ZWQgaW4gdGhlIGNhc2Ugd2UgYXJlIG5vdCB1cGRhdGluZyBhIHBhdGgsIGJ1
dCB0aGUgYWJzZW5jZSBvZiBhbiBpdGVtIGZyb20KICAgICAgICAgdGhlIGl0ZXJhdG9yIG1heSBi
ZSB1c2VkIHRvIHJlbW92ZSBkZWZ1bmN0IGVudHJpZXMgZnJvbSB0aGUgbWFuaWZlc3QuIiIiCiAK
KyAgICAgICAgbG9nZ2VyID0gZ2V0X2xvZ2dlcigpCisKICAgICAgICAgY2hhbmdlZCA9IEZhbHNl
CiAKICAgICAgICAgIyBDcmVhdGUgbG9jYWwgdmFyaWFibGUgcmVmZXJlbmNlcyB0byB0aGVzZSBk
aWN0cyBzbyB3ZSBhdm9pZCB0aGUKQEAgLTIyNiwyMCArMjI0LDM0IEBAIGNsYXNzIE1hbmlmZXN0
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHRvX3VwZGF0ZS5hcHBlbmQoc291cmNlX2Zp
bGUpCiAKICAgICAgICAgaWYgdG9fdXBkYXRlOgorICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJD
b21wdXRpbmcgbWFuaWZlc3QgdXBkYXRlIGZvciAlcyBpdGVtcyIgJSBsZW4odG9fdXBkYXRlKSkK
ICAgICAgICAgICAgIGNoYW5nZWQgPSBUcnVlCiAKKworICAgICAgICAjIDI1IGl0ZW1zIHdhcyBk
ZXJpdmVkIGV4cGVyaW1lbnRhbGx5ICgyMDIwLTAxKSB0byBiZSBhcHByb3hpbWF0ZWx5IHRoZQor
ICAgICAgICAjIHBvaW50IGF0IHdoaWNoIGl0IGlzIHF1aWNrZXIgdG8gY3JlYXRlIGEgUG9vbCBh
bmQgcGFyYWxsZWxpemUgdXBkYXRlLgorICAgICAgICBwb29sID0gTm9uZQogICAgICAgICBpZiBw
YXJhbGxlbCBhbmQgbGVuKHRvX3VwZGF0ZSkgPiAyNSBhbmQgY3B1X2NvdW50KCkgPiAxOgotICAg
ICAgICAgICAgIyAyNSBkZXJpdmVkIGV4cGVyaW1lbnRhbGx5ICgyMDIwLTAxKSB0byBiZSBhcHBy
b3hpbWF0ZWx5Ci0gICAgICAgICAgICAjIHRoZSBwb2ludCBhdCB3aGljaCBpdCBpcyBxdWlja2Vy
IHRvIGNyZWF0ZSBQb29sIGFuZAotICAgICAgICAgICAgIyBwYXJhbGxlbGl6ZSB0aGlzCi0gICAg
ICAgICAgICBwb29sID0gUG9vbCgpCisgICAgICAgICAgICAjIE9uIFB5dGhvbiAzIG9uIFdpbmRv
d3MsIHVzaW5nID49IE1BWElNVU1fV0FJVF9PQkpFQ1RTIHByb2Nlc3NlcworICAgICAgICAgICAg
IyBjYXVzZXMgYSBjcmFzaCBpbiB0aGUgbXVsdGlwcm9jZXNzaW5nIG1vZHVsZS4gV2hpbHN0IHRo
aXMgZW51bQorICAgICAgICAgICAgIyBjYW4gdGVjaG5pY2FsbHkgaGF2ZSBhbnkgdmFsdWUsIGl0
IGlzIHVzdWFsbHkgNjQuIEZvciBzYWZldHksCisgICAgICAgICAgICAjIHJlc3RyaWN0IG1hbmlm
ZXN0IHJlZ2VuZXJhdGlvbiB0byA0OCBwcm9jZXNzZXMgb24gV2luZG93cy4KKyAgICAgICAgICAg
ICMKKyAgICAgICAgICAgICMgU2VlIGh0dHBzOi8vYnVncy5weXRob24ub3JnL2lzc3VlMjY5MDMg
YW5kIGh0dHBzOi8vYnVncy5weXRob24ub3JnL2lzc3VlNDAyNjMKKyAgICAgICAgICAgIHByb2Nl
c3NlcyA9IGNwdV9jb3VudCgpCisgICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMy
IiBhbmQgcHJvY2Vzc2VzID4gNDg6CisgICAgICAgICAgICAgICAgcHJvY2Vzc2VzID0gNDgKKyAg
ICAgICAgICAgIHBvb2wgPSBQb29sKHByb2Nlc3NlcykKIAogICAgICAgICAgICAgIyBjaHVua3Np
emUgc2V0ID4gMSB3aGVuIG1vcmUgdGhhbiAxMDAwMCB0ZXN0cywgYmVjYXVzZQogICAgICAgICAg
ICAgIyBjaHVua2luZyBpcyBhIG5ldC1nYWluIG9uY2Ugd2UgZ2V0IHRvIHZlcnkgbGFyZ2UgbnVt
YmVycwogICAgICAgICAgICAgIyBvZiBpdGVtcyAoYWdhaW4sIGV4cGVyaW1lbnRhbGx5LCAyMDIw
LTAxKQorICAgICAgICAgICAgY2h1bmtzaXplID0gbWF4KDEsIGxlbih0b191cGRhdGUpIC8vIDEw
MDAwKQorICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJEb2luZyBhIG11bHRpcHJvY2Vzc2VkIHVw
ZGF0ZS4gQ1BVIGNvdW50OiAlcywgIgorICAgICAgICAgICAgICAgICJwcm9jZXNzZXM6ICVzLCBj
aHVua3NpemU6ICVzIiAlIChjcHVfY291bnQoKSwgcHJvY2Vzc2VzLCBjaHVua3NpemUpKQogICAg
ICAgICAgICAgcmVzdWx0cyA9IHBvb2wuaW1hcF91bm9yZGVyZWQoY29tcHV0ZV9tYW5pZmVzdF9p
dGVtcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvX3VwZGF0
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rc2l6ZT1t
YXgoMSwgbGVuKHRvX3VwZGF0ZSkgLy8gMTAwMDApCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjaHVua3NpemU9Y2h1bmtzaXplCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICApICAjIHR5cGU6IEl0ZXJhdG9yW1R1cGxlW1R1cGxlW1Rl
eHQsIC4uLl0sIFRleHQsIFNldFtNYW5pZmVzdEl0ZW1dLCBUZXh0XV0KICAgICAgICAgZWxpZiBQ
WTM6CiAgICAgICAgICAgICByZXN1bHRzID0gbWFwKGNvbXB1dGVfbWFuaWZlc3RfaXRlbXMsIHRv
X3VwZGF0ZSkKQEAgLTI1MSw2ICsyNjMsMTEgQEAgY2xhc3MgTWFuaWZlc3Qob2JqZWN0KToKICAg
ICAgICAgICAgIGRhdGFbbmV3X3R5cGVdW3JlbF9wYXRoX3BhcnRzXSA9IG1hbmlmZXN0X2l0ZW1z
CiAgICAgICAgICAgICBkYXRhW25ld190eXBlXS5oYXNoZXNbcmVsX3BhdGhfcGFydHNdID0gZmls
ZV9oYXNoCiAKKyAgICAgICAgIyBNYWtlIHN1cmUgdG8gdGVybWluYXRlIHRoZSBQb29sLCB0byBh
dm9pZCBoYW5ncyBvbiBQeXRob24gMy4KKyAgICAgICAgIyBodHRwczovL2RvY3MucHl0aG9uLm9y
Zy8zL2xpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLmh0bWwjbXVsdGlwcm9jZXNzaW5nLnBvb2wuUG9v
bAorICAgICAgICBpZiBwb29sIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcG9vbC50ZXJtaW5h
dGUoKQorCiAgICAgICAgIGlmIHJlbWFpbmluZ19tYW5pZmVzdF9wYXRoczoKICAgICAgICAgICAg
IGNoYW5nZWQgPSBUcnVlCiAgICAgICAgICAgICBmb3IgcmVsX3BhdGhfcGFydHMgaW4gcmVtYWlu
aW5nX21hbmlmZXN0X3BhdGhzOgpAQCAtMzU0LDcgKzM3MSw3IEBAIGRlZiBfbG9hZChsb2dnZXIs
ICAjIHR5cGU6IExvZ2dlcgogICAgICAgICB0cnk6CiAgICAgICAgICAgICB3aXRoIGlvLm9wZW4o
bWFuaWZlc3QsICJyIiwgZW5jb2Rpbmc9InV0Zi04IikgYXMgZjoKICAgICAgICAgICAgICAgICBy
diA9IE1hbmlmZXN0LmZyb21fanNvbih0ZXN0c19yb290LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZhc3RfanNvbi5sb2FkKGYpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGpzb25saWIubG9hZChmKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlcz10eXBlcywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjYWxsZWVfb3duc19vYmo9VHJ1ZSkKICAgICAgICAgZXhjZXB0
IElPRXJyb3I6CkBAIC0zNjQsNyArMzgxLDcgQEAgZGVmIF9sb2FkKGxvZ2dlciwgICMgdHlwZTog
TG9nZ2VyCiAgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgIGVsc2U6CiAgICAgICAgIHJ2ID0g
TWFuaWZlc3QuZnJvbV9qc29uKHRlc3RzX3Jvb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZhc3RfanNvbi5sb2FkKG1hbmlmZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAganNvbmxpYi5sb2FkKG1hbmlmZXN0KSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZXM9dHlwZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
bGxlZV9vd25zX29iaj1UcnVlKQogCkBAIC00NDksNiArNDY2LDcgQEAgZGVmIF9sb2FkX2FuZF91
cGRhdGUodGVzdHNfcm9vdCwgICMgdHlwZTogVGV4dAogICAgICAgICB1cGRhdGUgPSBUcnVlCiAK
ICAgICBpZiByZWJ1aWxkIG9yIHVwZGF0ZToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlVwZGF0aW5n
IG1hbmlmZXN0IikKICAgICAgICAgZm9yIHJldHJ5IGluIHJhbmdlKDIpOgogICAgICAgICAgICAg
dHJ5OgogICAgICAgICAgICAgICAgIHRyZWUgPSB2Y3MuZ2V0X3RyZWUodGVzdHNfcm9vdCwgbWFu
aWZlc3QsIG1hbmlmZXN0X3BhdGgsIGNhY2hlX3Jvb3QsCkBAIC00NzYsNiArNDk0LDUgQEAgZGVm
IHdyaXRlKG1hbmlmZXN0LCBtYW5pZmVzdF9wYXRoKToKICAgICB3aXRoIGF0b21pY193cml0ZSht
YW5pZmVzdF9wYXRoLCBvdmVyd3JpdGU9VHJ1ZSkgYXMgZjoKICAgICAgICAgIyBVc2UgJywnIGlu
c3RlYWQgb2YgdGhlIGRlZmF1bHQgJywgJyBzZXBhcmF0b3IgdG8gcHJldmVudCB0cmFpbGluZwog
ICAgICAgICAjIHNwYWNlczogaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L2pzb24u
aHRtbCNqc29uLmR1bXAKLSAgICAgICAganNvbi5kdW1wKG1hbmlmZXN0LnRvX2pzb24oY2FsbGVy
X293bnNfb2JqPVRydWUpLCBmLAotICAgICAgICAgICAgICAgICAgc29ydF9rZXlzPVRydWUsIGlu
ZGVudD0xLCBzZXBhcmF0b3JzPSgnLCcsICc6ICcpKQorICAgICAgICBqc29ubGliLmR1bXBfZGlz
dChtYW5pZmVzdC50b19qc29uKGNhbGxlcl9vd25zX29iaj1UcnVlKSwgZikKICAgICAgICAgZi53
cml0ZSgiXG4iKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9zb3VyY2VmaWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9zb3VyY2VmaWxlLnB5
CmluZGV4IDZlOTBhYzA1NDc1ZmM2NTZkZTIyYmVmYzVhZGRjM2ZkNWY1MWU5MTMuLmNlODFjNjI1
YmI4MDVhMzI5ZDljMWE5Yjc2NGIxNWQ5OGE1N2EyNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qvc291cmNlZmls
ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHkKQEAgLTE2NywyNyArMTY3LDI3IEBAIGRlZiBnbG9i
YWxfdmFyaWFudF91cmwodXJsLCBzdWZmaXgpOgogCiAKIGRlZiBfcGFyc2VfaHRtbChmKToKLSAg
ICAjIHR5cGU6IChCaW5hcnlJTykgLT4gRWxlbWVudFRyZWUuRWxlbWVudFRyZWUKKyAgICAjIHR5
cGU6IChCaW5hcnlJTykgLT4gRWxlbWVudFRyZWUuRWxlbWVudAogICAgIGRvYyA9IGh0bWw1bGli
LnBhcnNlKGYsIHRyZWVidWlsZGVyPSJldHJlZSIsIHVzZUNoYXJkZXQ9RmFsc2UpCiAgICAgaWYg
TVlQWToKLSAgICAgICAgcmV0dXJuIGNhc3QoRWxlbWVudFRyZWUuRWxlbWVudFRyZWUsIGRvYykK
KyAgICAgICAgcmV0dXJuIGNhc3QoRWxlbWVudFRyZWUuRWxlbWVudCwgZG9jKQogICAgIHJldHVy
biBkb2MKIAogZGVmIF9wYXJzZV94bWwoZik6Ci0gICAgIyB0eXBlOiAoQmluYXJ5SU8pIC0+IEVs
ZW1lbnRUcmVlLkVsZW1lbnRUcmVlCisgICAgIyB0eXBlOiAoQmluYXJ5SU8pIC0+IEVsZW1lbnRU
cmVlLkVsZW1lbnQKICAgICB0cnk6CiAgICAgICAgICMgcmFpc2VzIFZhbHVlRXJyb3Igd2l0aCBh
biB1bnN1cHBvcnRlZCBlbmNvZGluZywKICAgICAgICAgIyBQYXJzZUVycm9yIHdoZW4gdGhlcmUn
cyBhbiB1bmRlZmluZWQgZW50aXR5Ci0gICAgICAgIHJldHVybiBFbGVtZW50VHJlZS5wYXJzZShm
KQorICAgICAgICByZXR1cm4gRWxlbWVudFRyZWUucGFyc2UoZikuZ2V0cm9vdCgpCiAgICAgZXhj
ZXB0IChWYWx1ZUVycm9yLCBFbGVtZW50VHJlZS5QYXJzZUVycm9yKToKICAgICAgICAgZi5zZWVr
KDApCi0gICAgICAgIHJldHVybiBFbGVtZW50VHJlZS5wYXJzZShmLCBYTUxQYXJzZXIuWE1MUGFy
c2VyKCkpICAjIHR5cGU6IGlnbm9yZQorICAgICAgICByZXR1cm4gRWxlbWVudFRyZWUucGFyc2Uo
ZiwgWE1MUGFyc2VyLlhNTFBhcnNlcigpKS5nZXRyb290KCkgICMgdHlwZTogaWdub3JlCiAKIAog
Y2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogICAgIHBhcnNlcnMgPSB7dSJodG1sIjpfcGFyc2Vf
aHRtbCwKICAgICAgICAgICAgICAgIHUieGh0bWwiOl9wYXJzZV94bWwsCi0gICAgICAgICAgICAg
ICB1InN2ZyI6X3BhcnNlX3htbH0gICMgdHlwZTogRGljdFtUZXh0LCBDYWxsYWJsZVtbQmluYXJ5
SU9dLCBFbGVtZW50VHJlZS5FbGVtZW50VHJlZV1dCisgICAgICAgICAgICAgICB1InN2ZyI6X3Bh
cnNlX3htbH0gICMgdHlwZTogRGljdFtUZXh0LCBDYWxsYWJsZVtbQmluYXJ5SU9dLCBFbGVtZW50
VHJlZS5FbGVtZW50XV0KIAogICAgIHJvb3RfZGlyX25vbl90ZXN0ID0ge3UiY29tbW9uIn0KIApA
QCAtNDQ3LDcgKzQ0Nyw3IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNo
ZWRfcHJvcGVydHkKICAgICBkZWYgcm9vdChzZWxmKToKLSAgICAgICAgIyB0eXBlOiAoKSAtPiBP
cHRpb25hbFtVbmlvbltFbGVtZW50VHJlZS5FbGVtZW50LCBFbGVtZW50VHJlZS5FbGVtZW50VHJl
ZV1dCisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbRWxlbWVudFRyZWUuRWxlbWVudF0K
ICAgICAgICAgIiIiUmV0dXJuIGFuIEVsZW1lbnRUcmVlIEVsZW1lbnQgZm9yIHRoZSByb290IG5v
ZGUgb2YgdGhlIGZpbGUgaWYgaXQgY29udGFpbnMKICAgICAgICAgbWFya3VwLCBvciBOb25lIGlm
IGl0IGRvZXMgbm90IiIiCiAgICAgICAgIGlmIG5vdCBzZWxmLm1hcmt1cF90eXBlOgpAQCAtNDYx
LDEyICs0NjEsNyBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAgICAgICAgICAgICBleGNl
cHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICAgICAgaWYg
aGFzYXR0cih0cmVlLCAiZ2V0cm9vdCIpOgotICAgICAgICAgICAgcm9vdCA9IHRyZWUuZ2V0cm9v
dCgpICAjIHR5cGU6IFVuaW9uW0VsZW1lbnRUcmVlLkVsZW1lbnQsIEVsZW1lbnRUcmVlLkVsZW1l
bnRUcmVlXQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcm9vdCA9IHRyZWUKLQotICAgICAg
ICByZXR1cm4gcm9vdAorICAgICAgICByZXR1cm4gdHJlZQogCiAgICAgQGNhY2hlZF9wcm9wZXJ0
eQogICAgIGRlZiB0aW1lb3V0X25vZGVzKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0
X2l0ZW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfaXRlbS5weQppbmRleCA0ZjJmYzhmMDNmMmQ2MTFmMzVl
MGEzNTJjNzA4MDYwNjA2ZmQxYTc3Li5kZDFjNGUyMDA0ZGFjOWYyNTg0ZGRmMzRlN2UyNDA4Zjk4
NzkxNGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfaXRlbS5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rl
c3RfaXRlbS5weQpAQCAtMTM0LDMgKzEzNCwyNSBAQCBkZWYgdGVzdF9pdGVtX3R5cGVzKCk6CiAg
ICAgZm9yIGtleSwgdmFsdWUgaW4gaXRlbV90eXBlcy5pdGVtcygpOgogICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShrZXksIHN0cikKICAgICAgICAgYXNzZXJ0IG5vdCBpbnNwZWN0LmlzYWJzdHJh
Y3QodmFsdWUpCisKKworZGVmIHRlc3Rfd3B0X2ZsYWdzKCk6CisgICAgbTEgPSBIYXJuZXNzVGVz
dCgiL2ZvbyIsICJiYXIiLCAiLyIsICJiYXIiICsgIj93cHRfZmxhZ3M9d3d3IikKKyAgICBhc3Nl
cnQgbTEuc3ViZG9tYWluIGlzIFRydWUKKyAgICBhc3NlcnQgbTEuaHR0cHMgaXMgRmFsc2UKKyAg
ICBhc3NlcnQgbTEuaDIgaXMgRmFsc2UKKworICAgIG0yID0gSGFybmVzc1Rlc3QoIi9mb28iLCAi
YmFyIiwgIi8iLCAiYmFyIiArICI/d3B0X2ZsYWdzPWh0dHBzIikKKyAgICBhc3NlcnQgbTIuc3Vi
ZG9tYWluIGlzIEZhbHNlCisgICAgYXNzZXJ0IG0yLmh0dHBzIGlzIFRydWUKKyAgICBhc3NlcnQg
bTIuaDIgaXMgRmFsc2UKKworICAgIG0zID0gSGFybmVzc1Rlc3QoIi9mb28iLCAiYmFyIiwgIi8i
LCAiYmFyIiArICI/d3B0X2ZsYWdzPWgyIikKKyAgICBhc3NlcnQgbTMuc3ViZG9tYWluIGlzIEZh
bHNlCisgICAgYXNzZXJ0IG0zLmh0dHBzIGlzIEZhbHNlCisgICAgYXNzZXJ0IG0zLmgyIGlzIFRy
dWUKKworICAgIG00ID0gSGFybmVzc1Rlc3QoIi9mb28iLCAiYmFyIiwgIi8iLCAiYmFyIiArICI/
d3B0X2ZsYWdzPWh0dHBzJndwdF9mbGFncz13d3ciKQorICAgIGFzc2VydCBtNC5zdWJkb21haW4g
aXMgVHJ1ZQorICAgIGFzc2VydCBtNC5odHRwcyBpcyBUcnVlCisgICAgYXNzZXJ0IG00LmgyIGlz
IEZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfbWFuaWZlc3QucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rl
c3RfbWFuaWZlc3QucHkKaW5kZXggMjZhOGZkYzE3NjMzZGIxYzQ5MTgzZmI1NDk4ZGEzOTc5Y2Rk
NTRlMC4uMjkzYWUwZWJjYzczNDVlM2I3M2JiMTI4Y2ZjMWZmZWIyMjdhMmEyZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC90ZXN0cy90ZXN0X21hbmlmZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9tYW5pZmVzdC5w
eQpAQCAtMSw0ICsxLDUgQEAKIGltcG9ydCBvcworaW1wb3J0IHN5cwogCiBpbXBvcnQgbW9jawog
CkBAIC03LDcgKzgsMTEgQEAgaW1wb3J0IGh5cG90aGVzaXMuc3RyYXRlZ2llcyBhcyBocwogCiBm
cm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCiAKLWZyb20gLi4gaW1wb3J0IG1hbmlmZXN0LCBzb3Vy
Y2VmaWxlLCBpdGVtLCB1dGlscworaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK3Jv
b3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIuLiIsICIuLiIp
KQorc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3QpCisKK2Zyb20gdG9vbHMubWFuaWZlc3QgaW1wb3J0
IG1hbmlmZXN0LCBzb3VyY2VmaWxlLCBpdGVtLCB1dGlscwogCiBNWVBZID0gRmFsc2UKIGlmIE1Z
UFk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L3VwZGF0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRlLnB5CmluZGV4IDI5NjUzM2E2
YmFiZjE3NmU0NTE0YmNmM2YyOWUxNjNmZGY5YTlmZGYuLmE4NmVmN2M4YWEyOGYxZjIwOWYxMGI3
MjU0ZDFjYTA3Y2IxN2RmNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRlLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRl
LnB5CkBAIC00LDcgKzQsNyBAQCBpbXBvcnQgb3MKIAogZnJvbSAuIGltcG9ydCBtYW5pZmVzdAog
ZnJvbSAuIGltcG9ydCB2Y3MKLWZyb20gLmxvZyBpbXBvcnQgZ2V0X2xvZ2dlcgorZnJvbSAubG9n
IGltcG9ydCBnZXRfbG9nZ2VyLCBlbmFibGVfZGVidWdfbG9nZ2luZwogZnJvbSAuZG93bmxvYWQg
aW1wb3J0IGRvd25sb2FkX2Zyb21fZ2l0aHViCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19m
aWxlX18pCkBAIC02NCw2ICs2NCw5IEBAIGRlZiBhYnNfcGF0aChwYXRoKToKIGRlZiBjcmVhdGVf
cGFyc2VyKCk6CiAgICAgIyB0eXBlOiAoKSAtPiBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcgogICAg
IHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3Vt
ZW50KAorICAgICAgICAiLXYiLCAiLS12ZXJib3NlIiwgZGVzdD0idmVyYm9zZSIsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgIGhlbHA9IlR1cm4gb24gdmVyYm9z
ZSBsb2dnaW5nIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAiLXAiLCAiLS1w
YXRoIiwgdHlwZT1hYnNfcGF0aCwgaGVscD0iUGF0aCB0byBtYW5pZmVzdCBmaWxlLiIpCiAgICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgKQEAgLTkwLDYgKzkzLDggQEAgZGVmIHJ1bigqYXJncywgKipr
d2FyZ3MpOgogICAgICMgdHlwZTogKCpBbnksICoqQW55KSAtPiBOb25lCiAgICAgaWYga3dhcmdz
WyJwYXRoIl0gaXMgTm9uZToKICAgICAgICAga3dhcmdzWyJwYXRoIl0gPSBvcy5wYXRoLmpvaW4o
a3dhcmdzWyJ0ZXN0c19yb290Il0sICJNQU5JRkVTVC5qc29uIikKKyAgICBpZiBrd2FyZ3NbInZl
cmJvc2UiXToKKyAgICAgICAgZW5hYmxlX2RlYnVnX2xvZ2dpbmcoKQogICAgIHVwZGF0ZV9mcm9t
X2NsaSgqKmt3YXJncykKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Zjcy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdmNzLnB5CmluZGV4
IDM0NDU3NTI3NmI0MmNiMzNlYmIxZDgxZjVlMWEyMWVhYzM5ZGIyZTYuLjRmM2JmZGFmMTI0NDAy
YjFhNzE3NTBmOWU5OWUxMzczMDM0YjI4ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdmNzLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
dmNzLnB5CkBAIC0xLDUgKzEsNCBAQAogaW1wb3J0IGFiYwotaW1wb3J0IGpzb24KIGltcG9ydCBv
cwogaW1wb3J0IHN0YXQKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCkBAIC03LDYgKzYs
NyBAQCBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQogZnJvbSBzaXggaW1wb3J0IHdpdGhf
bWV0YWNsYXNzLCBQWTIKIGZyb20gc2l4Lm1vdmVzLmNvbGxlY3Rpb25zX2FiYyBpbXBvcnQgTXV0
YWJsZU1hcHBpbmcKIAorZnJvbSAuIGltcG9ydCBqc29ubGliCiBmcm9tIC51dGlscyBpbXBvcnQg
Z2l0CiAKICMgQ2Fubm90IGRvIGBmcm9tIC4uZ2l0aWdub3JlIGltcG9ydCBnaXRpZ25vcmVgIGJl
Y2F1c2UKQEAgLTI0LDYgKzI0LDEwIEBAIGlmIE1ZUFk6CiAgICAgZWxzZToKICAgICAgICAgc3Rh
dF9yZXN1bHQgPSBvcy5zdGF0X3Jlc3VsdAogCisgICAgR2l0SWdub3JlQ2FjaGVUeXBlID0gTXV0
YWJsZU1hcHBpbmdbYnl0ZXMsIGJvb2xdCitlbHNlOgorICAgIEdpdElnbm9yZUNhY2hlVHlwZSA9
IE11dGFibGVNYXBwaW5nCisKIAogZGVmIGdldF90cmVlKHRlc3RzX3Jvb3QsIG1hbmlmZXN0LCBt
YW5pZmVzdF9wYXRoLCBjYWNoZV9yb290LAogICAgICAgICAgICAgIHdvcmtpbmdfY29weT1UcnVl
LCByZWJ1aWxkPUZhbHNlKToKQEAgLTE0OCw3ICsxNTIsNyBAQCBjbGFzcyBDYWNoZUZpbGUod2l0
aF9tZXRhY2xhc3MoYWJjLkFCQ01ldGEpKToKICAgICAgICAgaWYgbm90IHNlbGYubW9kaWZpZWQ6
CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgd2l0aCBvcGVuKHNlbGYucGF0aCwgJ3cnKSBh
cyBmOgotICAgICAgICAgICAganNvbi5kdW1wKHNlbGYuZGF0YSwgZiwgaW5kZW50PTEpCisgICAg
ICAgICAgICBqc29ubGliLmR1bXBfbG9jYWwoc2VsZi5kYXRhLCBmKQogCiAgICAgZGVmIGxvYWQo
c2VsZiwgcmVidWlsZD1GYWxzZSk6CiAgICAgICAgICMgdHlwZTogKGJvb2wpIC0+IERpY3RbVGV4
dCwgQW55XQpAQCAtMTU3LDcgKzE2MSw3IEBAIGNsYXNzIENhY2hlRmlsZSh3aXRoX21ldGFjbGFz
cyhhYmMuQUJDTWV0YSkpOgogICAgICAgICAgICAgaWYgbm90IHJlYnVpbGQ6CiAgICAgICAgICAg
ICAgICAgd2l0aCBvcGVuKHNlbGYucGF0aCwgJ3InKSBhcyBmOgogICAgICAgICAgICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0ganNvbi5sb2FkKGYpCisgICAg
ICAgICAgICAgICAgICAgICAgICBkYXRhID0ganNvbmxpYi5sb2FkKGYpCiAgICAgICAgICAgICAg
ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgogICAgICAgICAgICAgICAgICAgICAgICAgcGFzcwog
ICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLmNoZWNrX3ZhbGlkKGRhdGEpCkBAIC0yMjAsOCAr
MjI0LDggQEAgY2xhc3MgTXRpbWVDYWNoZShDYWNoZUZpbGUpOgogICAgICAgICBzdXBlcihNdGlt
ZUNhY2hlLCBzZWxmKS5kdW1wKCkKIAogCi1jbGFzcyBHaXRJZ25vcmVDYWNoZShDYWNoZUZpbGUs
IE11dGFibGVNYXBwaW5nKTogICMgdHlwZTogaWdub3JlCi0gICAgZmlsZV9uYW1lID0gImdpdGln
bm9yZS5qc29uIgorY2xhc3MgR2l0SWdub3JlQ2FjaGUoQ2FjaGVGaWxlLCBHaXRJZ25vcmVDYWNo
ZVR5cGUpOgorICAgIGZpbGVfbmFtZSA9ICJnaXRpZ25vcmUyLmpzb24iCiAKICAgICBkZWYgY2hl
Y2tfdmFsaWQoc2VsZiwgZGF0YSk6CiAgICAgICAgICMgdHlwZTogKERpY3RbQW55LCBBbnldKSAt
PiBEaWN0W0FueSwgQW55XQpAQCAtMjM1LDI3ICsyMzksMzUgQEAgY2xhc3MgR2l0SWdub3JlQ2Fj
aGUoQ2FjaGVGaWxlLCBNdXRhYmxlTWFwcGluZyk6ICAjIHR5cGU6IGlnbm9yZQogCiAgICAgZGVm
IF9fY29udGFpbnNfXyhzZWxmLCBrZXkpOgogICAgICAgICAjIHR5cGU6IChBbnkpIC0+IGJvb2wK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAga2V5ID0ga2V5LmRlY29kZSgidXRmLTgiKQorICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKICAgICAg
ICAgcmV0dXJuIGtleSBpbiBzZWxmLmRhdGEKIAogICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBr
ZXkpOgotICAgICAgICAjIHR5cGU6IChUZXh0KSAtPiBib29sCi0gICAgICAgIHYgPSBzZWxmLmRh
dGFba2V5XQorICAgICAgICAjIHR5cGU6IChieXRlcykgLT4gYm9vbAorICAgICAgICByZWFsX2tl
eSA9IGtleS5kZWNvZGUoInV0Zi04IikKKyAgICAgICAgdiA9IHNlbGYuZGF0YVtyZWFsX2tleV0K
ICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodiwgYm9vbCkKICAgICAgICAgcmV0dXJuIHYKIAog
ICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKToKLSAgICAgICAgIyB0eXBlOiAo
VGV4dCwgYm9vbCkgLT4gTm9uZQotICAgICAgICBpZiBzZWxmLmRhdGEuZ2V0KGtleSkgIT0gdmFs
dWU6CisgICAgICAgICMgdHlwZTogKGJ5dGVzLCBib29sKSAtPiBOb25lCisgICAgICAgIHJlYWxf
a2V5ID0ga2V5LmRlY29kZSgidXRmLTgiKQorICAgICAgICBpZiBzZWxmLmRhdGEuZ2V0KHJlYWxf
a2V5KSAhPSB2YWx1ZToKICAgICAgICAgICAgIHNlbGYubW9kaWZpZWQgPSBUcnVlCi0gICAgICAg
ICAgICBzZWxmLmRhdGFba2V5XSA9IHZhbHVlCisgICAgICAgICAgICBzZWxmLmRhdGFbcmVhbF9r
ZXldID0gdmFsdWUKIAogICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgotICAgICAgICAj
IHR5cGU6IChUZXh0KSAtPiBOb25lCi0gICAgICAgIGRlbCBzZWxmLmRhdGFba2V5XQorICAgICAg
ICAjIHR5cGU6IChieXRlcykgLT4gTm9uZQorICAgICAgICByZWFsX2tleSA9IGtleS5kZWNvZGUo
InV0Zi04IikKKyAgICAgICAgZGVsIHNlbGYuZGF0YVtyZWFsX2tleV0KIAogICAgIGRlZiBfX2l0
ZXJfXyhzZWxmKToKLSAgICAgICAgIyB0eXBlOiAoKSAtPiBJdGVyYXRvcltUZXh0XQotICAgICAg
ICByZXR1cm4gaXRlcihzZWxmLmRhdGEpCisgICAgICAgICMgdHlwZTogKCkgLT4gSXRlcmF0b3Jb
Ynl0ZXNdCisgICAgICAgIHJldHVybiAoa2V5LmVuY29kZSgidXRmLTgiKSBmb3Iga2V5IGluIHNl
bGYuZGF0YSkKIAogICAgIGRlZiBfX2xlbl9fKHNlbGYpOgogICAgICAgICAjIHR5cGU6ICgpIC0+
IGludApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdzNjLWltcG9ydC5sb2cKaW5k
ZXggMzg4ZmJiMTFlZDlkOGRhMDE0M2Y4MmVkYzAyZDEwYzk3OWJlMzcyZC4uZGY3NTlmZWY5MDM1
YjAwNmRiNGM3MDk3NjU2NTdjMmU0NjI2YWY4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0Lmxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L21hbmlmZXN0L3czYy1pbXBvcnQubG9nCkBAIC0xOSw2ICsxOSw3IEBAIExpc3Qgb2YgZmlsZXM6
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC9jb21tYW5kcy5qc29uCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9tYW5pZmVzdC9kb3dubG9hZC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvaXRlbS5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvanNvbmxp
Yi5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvbG9nLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qvc291cmNlZmlsZS5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9t
eXB5LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbXlweS5pbmkKaW5kZXggYjk0M2I2ZDA4OWE0YjhmODFlOWI2ZTIzYzc2ODgwZmI5M2NmNjY1
YS4uNGQzNTIzMDJkODBlMzIwN2QyYTMzZDMxMzBhMzU5ZGUzZTUzZGYwOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9teXB5Lmlu
aQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L215cHkuaW5pCkBAIC0yMiw2ICsyMiw5IEBAIGlnbm9yZV9taXNzaW5nX2ltcG9ydHMgPSBUcnVl
CiBbbXlweS1weXRlc3QuKl0KIGlnbm9yZV9taXNzaW5nX2ltcG9ydHMgPSBUcnVlCiAKK1tteXB5
LXVqc29uLipdCitpZ25vcmVfbWlzc2luZ19pbXBvcnRzID0gVHJ1ZQorCiBbbXlweS16c3RhbmRh
cmQuKl0KIGlnbm9yZV9taXNzaW5nX2ltcG9ydHMgPSBUcnVlCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
Q09OVFJJQlVUSU5HIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9DT05UUklCVVRJTkcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY0MTVmNWQwMTFmM2UyMmJlNTU0ZmY3NTVjMDc4MDUyMjEzYWZhOTAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9DT05UUklCVVRJTkcK
KysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1Gb3IgaW5zdHJ1Y3Rpb25zIGZvciBjb250
cmlidXRpbmcgY29kZSwgcGxlYXNlIHJlYWQ6Ci1odHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3B5
d2Vic29ja2V0L3dpa2kvQ29kZVJldmlld0luc3RydWN0aW9uCi0KLVlvdSBtdXN0IGNvbXBsZXRl
IHRoZSBJbmRpdmlkdWFsIENvbnRyaWJ1dG9yIExpY2Vuc2UgQWdyZWVtZW50LgotaHR0cHM6Ly9j
bGEuZGV2ZWxvcGVycy5nb29nbGUuY29tL2Fib3V0L2dvb2dsZS1pbmRpdmlkdWFsCi1Zb3UgY2Fu
IGRvIHRoaXMgb25saW5lLCBhbmQgaXQgb25seSB0YWtlcyBhIG1pbnV0ZS4KLQotSWYgeW91IGFy
ZSBjb250cmlidXRpbmcgb24gYmVoYWxmIG9mIGEgY29ycG9yYXRpb24sIHlvdSBtdXN0IGZpbGwg
b3V0IHRoZQotQ29ycG9yYXRlIENvbnRyaWJ1dG9yIExpY2Vuc2UgQWdyZWVtZW50Ci1odHRwczov
L2NsYS5kZXZlbG9wZXJzLmdvb2dsZS5jb20vYWJvdXQvZ29vZ2xlLWNvcnBvcmF0ZQotYW5kIHNl
bmQgaXQgdG8gdXMgYXMgZGVzY3JpYmVkIG9uIHRoYXQgcGFnZS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
TElDRU5TRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvTElDRU5TRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTg5
ZDAyZTRjZDA5MjM3ODA2ZjdkZjhiZWFlY2M2OTE1MjczNDI4ZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L0xJQ0VOU0UKKysrIC9kZXYvbnVsbApA
QCAtMSwyOCArMCwwIEBACi1Db3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLUFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1U
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L01B
TklGRVNULmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9NQU5JRkVTVC5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTkyNTY4ODJjNTZmZWI3MjgxMmM5OWM4YTgzNzk5NzllNjNlNGEwYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L01BTklGRVNULmluCisrKyAv
ZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1pbmNsdWRlIENPUFlJTkcKLWluY2x1ZGUgTUFOSUZF
U1QuaW4KLWluY2x1ZGUgUkVBRE1FCi1yZWN1cnNpdmUtaW5jbHVkZSBleGFtcGxlICoucHkKLXJl
Y3Vyc2l2ZS1pbmNsdWRlIG1vZF9weXdlYnNvY2tldCAqLnB5Ci1yZWN1cnNpdmUtaW5jbHVkZSB0
ZXN0ICoucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVBRE1FIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFETUUKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4Yzc1OGY1ZWVmNGM3MzE4OTI2NDFkZTMzM2U1ZDc1ZDEw
YTNlNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1JTlNUQUxMCi0KLVRvIGlu
c3RhbGwgdGhpcyBwYWNrYWdlIHRvIHRoZSBzeXN0ZW0sIHJ1biB0aGlzOgotJCBweXRob24gc2V0
dXAucHkgYnVpbGQKLSQgc3VkbyBweXRob24gc2V0dXAucHkgaW5zdGFsbAotCi1UbyBpbnN0YWxs
IHRoaXMgcGFja2FnZSBhcyBhIG5vcm1hbCB1c2VyLCBydW4gdGhpcyBpbnN0ZWFkOgotJCBweXRo
b24gc2V0dXAucHkgYnVpbGQKLSQgcHl0aG9uIHNldHVwLnB5IGluc3RhbGwgLS11c2VyCi0KLUxB
VU5DSAotCi1UbyB1c2UgcHl3ZWJzb2NrZXQgYXMgQXBhY2hlIG1vZHVsZSwgcnVuIHRoaXMgdG8g
cmVhZCB0aGUgZG9jdW1lbnQ6Ci0kIHB5ZG9jIG1vZF9weXdlYnNvY2tldAotCi1UbyB1c2UgcHl3
ZWJzb2NrZXQgYXMgc3RhbmRhbG9uZSBzZXJ2ZXIsIHJ1biB0aGlzIHRvIHJlYWQgdGhlIGRvY3Vt
ZW50OgotJCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQuc3RhbmRhbG9uZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9SRUFETUUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L1JFQURNRS5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWU4ZTkxMGE4NGVmOTk1NjY5ZWEwNzIzZjFiYzdmMjk5MzQ2NjU4OS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L1JFQURNRS5tZAorKysgL2Rl
di9udWxsCkBAIC0xLDggKzAsMCBAQAotCi0jIHB5d2Vic29ja2V0ICMKLQotVGhlIHB5d2Vic29j
a2V0IHByb2plY3QgYWltcyB0byBwcm92aWRlIGEgW1dlYlNvY2tldF0oaHR0cHM6Ly90b29scy5p
ZXRmLm9yZy9odG1sL3JmYzY0NTUpIHN0YW5kYWxvbmUgc2VydmVyIGFuZCBhIFdlYlNvY2tldCBl
eHRlbnNpb24gZm9yIFtBcGFjaGUgSFRUUCBTZXJ2ZXJdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9y
Zy8pLCBtb2RcX3B5d2Vic29ja2V0LgotCi1weXdlYnNvY2tldCBpcyBpbnRlbmRlZCBmb3IgKip0
ZXN0aW5nKiogb3IgKipleHBlcmltZW50YWwqKiBwdXJwb3Nlcy4KLQotUGxlYXNlIHNlZSBbV2lr
aV0oLi4vLi4vd2lraSkgZm9yIG1vcmUgZGV0YWlscy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93
c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwODAyM2ExZmU5MWUyZjI5Nzdi
MTYzZjk3N2RhZTY4NTAwMDlhYTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93c2gucHkKKysrIC9kZXYv
bnVsbApAQCAtMSw0MyArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFu
ZHNoYWtlKHJlcXVlc3QpOgotICAgIHJhaXNlIGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0
aW9uKAotICAgICAgICAiQWJvcnRlZCBpbiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSIp
Ci0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBwYXNzCi0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRfd3No
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2Fib3J0X3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMmJiZjAwNWY2YTM3YzYwOWUxNmFiZGU0ZGY5NDAyNDI2OGQwZGFlZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRf
d3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotCi0KLWRlZiB3ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9z
b2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByYWlzZSBoYW5kc2hha2UuQWJvcnRl
ZEJ5VXNlckV4Y2VwdGlvbigKLSAgICAgICAgIkFib3J0ZWQgaW4gd2ViX3NvY2tldF90cmFuc2Zl
cl9kYXRhIikKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hcnJheWJ1ZmZlcl9i
ZW5jaG1hcmsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY5Y2Q3ZTFlZTY1
M2Q1OWYwNGI4MDJmZjM0YzhkMDgxMzE3Y2E4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYXJyYXlidWZmZXJfYmVuY2htYXJrLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTMs
IEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLW1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLWNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLWlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi10aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi1TUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+QXJyYXlCdWZmZXIgYmVuY2htYXJr
PC90aXRsZT4KLTxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIg
UFJJTlRfU0laRSA9IHRydWU7Ci0KLS8vIEluaXRpYWwgc2l6ZSBvZiBhcnJheXMuCi12YXIgU1RB
UlRfU0laRSA9IDEwICogMTAyNDsKLS8vIFN0b3BzIGJlbmNobWFyayB3aGVuIHRoZSBzaXplIG9m
IGFuIGFycmF5IGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQuCi12YXIgU1RPUF9USFJFU0hPTEQgPSAx
MDAwMDAgKiAxMDI0OwotLy8gSWYgdGhlIHNpemUgb2YgZWFjaCBhcnJheSBpcyBzbWFsbCwgd3Jp
dGUvcmVhZCB0aGUgYXJyYXkgbXVsdGlwbGUgdGltZXMKLS8vIHVudGlsIHRoZSBzdW0gb2Ygc2l6
ZXMgcmVhY2hlcyB0aGlzIHRocmVzaG9sZC4KLXZhciBNSU5fVE9UQUwgPSAxMDAwMDAgKiAxMDI0
OwotdmFyIE1VTFRJUExJRVJTID0gWzUsIDJdOwotCi0vLyBSZXBlYXQgYmVuY2htYXJrIGZvciBz
ZXZlcmFsIHRpbWVzIHRvIG1lYXN1cmUgcGVyZm9ybWFuY2Ugb2Ygb3B0aW1pemVkCi0vLyAoc3Vj
aCBhcyBKSVQpIHJ1bi4KLXZhciBSRVBFQVRfRk9SX1dBUk1VUCA9IDM7Ci0KLWZ1bmN0aW9uIHdy
aXRlQmVuY2htYXJrKHNpemUsIG1pblRvdGFsKSB7Ci0gIHZhciB0b3RhbFNpemUgPSAwOwotICB3
aGlsZSAodG90YWxTaXplIDwgbWluVG90YWwpIHsKLSAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcg
QXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICAvLyBXcml0ZSAnYSdzLgotICAgIGZpbGxBcnJheUJ1
ZmZlcihhcnJheUJ1ZmZlciwgMHg2MSk7Ci0KLSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAgfQot
ICByZXR1cm4gdG90YWxTaXplOwotfQotCi1mdW5jdGlvbiByZWFkQmVuY2htYXJrKHNpemUsIG1p
blRvdGFsKSB7Ci0gIHZhciB0b3RhbFNpemUgPSAwOwotICB3aGlsZSAodG90YWxTaXplIDwgbWlu
VG90YWwpIHsKLSAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0K
LSAgICBpZiAoIXZlcmlmeUFycmF5QnVmZmVyKGFycmF5QnVmZmVyLCAweDAwKSkgewotICAgICAg
cXVldWVMb2coJ1ZlcmlmaWNhdGlvbiBmYWlsZWQnKTsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9
Ci0KLSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAgfQotICByZXR1cm4gdG90YWxTaXplOwotfQot
Ci1mdW5jdGlvbiBydW5CZW5jaG1hcmsoYmVuY2htYXJrRnVuY3Rpb24sCi0gICAgICAgICAgICAg
ICAgICAgICAgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICBzdG9wVGhyZXNob2xkLAotICAg
ICAgICAgICAgICAgICAgICAgIG1pblRvdGFsLAotICAgICAgICAgICAgICAgICAgICAgIG11bHRp
cGxpZXJzLAotICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXJJbmRleCkgewotICB3aGls
ZSAoc2l6ZSA8PSBzdG9wVGhyZXNob2xkKSB7Ci0gICAgdmFyIG1heFNwZWVkID0gMDsKLQotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgUkVQRUFUX0ZPUl9XQVJNVVA7ICsraSkgewotICAgICAgdmFy
IHN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLQotICAgICAgdmFyIHRvdGFsU2l6ZSA9
IGJlbmNobWFya0Z1bmN0aW9uKHNpemUsIG1pblRvdGFsKTsKLQotICAgICAgbWF4U3BlZWQgPSBN
YXRoLm1heChtYXhTcGVlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlU3Bl
ZWRJbktCKHRvdGFsU2l6ZSwgc3RhcnRUaW1lSW5NcykpOwotICAgIH0KLSAgICBxdWV1ZUxvZyhm
b3JtYXRSZXN1bHRJbktpQihzaXplLCBtYXhTcGVlZCwgUFJJTlRfU0laRSkpOwotCi0gICAgc2l6
ZSAqPSBtdWx0aXBsaWVyc1ttdWx0aXBsaWVySW5kZXhdOwotICAgIG11bHRpcGxpZXJJbmRleCA9
IChtdWx0aXBsaWVySW5kZXggKyAxKSAlIG11bHRpcGxpZXJzLmxlbmd0aDsKLSAgfQotfQotCi1m
dW5jdGlvbiBydW5CZW5jaG1hcmtzKCkgewotICBxdWV1ZUxvZygnTWVzc2FnZSBzaXplIGluIEtp
QiwgU3BlZWQgaW4ga0IvcycpOwotCi0gIHF1ZXVlTG9nKCdXcml0ZSBiZW5jaG1hcmsnKTsKLSAg
cnVuQmVuY2htYXJrKAotICAgICAgd3JpdGVCZW5jaG1hcmssIFNUQVJUX1NJWkUsIFNUT1BfVEhS
RVNIT0xELCBNSU5fVE9UQUwsIE1VTFRJUExJRVJTLCAwKTsKLSAgcXVldWVMb2coJ0ZpbmlzaGVk
Jyk7Ci0KLSAgcXVldWVMb2coJ1JlYWQgYmVuY2htYXJrJyk7Ci0gIHJ1bkJlbmNobWFyaygKLSAg
ICAgIHJlYWRCZW5jaG1hcmssIFNUQVJUX1NJWkUsIFNUT1BfVEhSRVNIT0xELCBNSU5fVE9UQUws
IE1VTFRJUExJRVJTLCAwKTsKLSAgYWRkVG9Mb2coJ0ZpbmlzaGVkJyk7Ci19Ci0KLWZ1bmN0aW9u
IGluaXQoKSB7Ci0gIGxvZ0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKLQot
ICBxdWV1ZUxvZyh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLQot
ICBhZGRUb0xvZygnU3RhcnRlZC4uLicpOwotCi0gIHNldFRpbWVvdXQocnVuQmVuY2htYXJrcywg
MCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotPHRl
eHRhcmVhCi0gICAgaWQ9ImxvZyIgcm93cz0iNTAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9u
bHk+PC90ZXh0YXJlYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9iZW5jaF93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2hfd3NoLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1MDY3Y2E3ZDg5NTVmYzE2M2Q1MDAxY2Q4ODEyZTZhZTIwYzE2Mjkz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhh
bXBsZS9iZW5jaF93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0jIENvcHly
aWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0j
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi0iIiJBIHNpbXBsZSBsb2FkIHRlc3RlciBmb3IgV2ViU29ja2V0IGNsaWVu
dHMuCi0KLUEgY2xpZW50IHByb2dyYW0gc2VuZHMgYSBtZXNzYWdlIGZvcm1hdHRlZCBhcyAiPHRp
bWU+IDxjb3VudD4gPG1lc3NhZ2U+IiB0bwotdGhpcyBoYW5kbGVyLiBUaGlzIGhhbmRsZXIgc3Rh
cnRzIHNlbmRpbmcgdG90YWwgPGNvdW50PiBXZWJTb2NrZXQgbWVzc2FnZXMKLWNvbnRhaW5pbmcg
PG1lc3NhZ2U+IGV2ZXJ5IDx0aW1lPiBzZWNvbmRzLiA8dGltZT4gY2FuIGJlIGEgZmxvYXRpbmcg
cG9pbnQKLXZhbHVlLiA8Y291bnQ+IG11c3QgYmUgYW4gaW50ZWdlciB2YWx1ZS4KLSIiIgotCi0K
LWltcG9ydCB0aW1lCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVl
c3QpOgotICAgIHBhc3MgICMgQWx3YXlzIGFjY2VwdC4KLQotCi1kZWYgd2ViX3NvY2tldF90cmFu
c2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIGxpbmUgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZl
X21lc3NhZ2UoKQotICAgIHBhcnRzID0gbGluZS5zcGxpdCgnICcpCi0gICAgaWYgbGVuKHBhcnRz
KSAhPSAzOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcGFyYW1ldGVyIGZvcm1hdCcp
Ci0gICAgd2FpdCA9IGZsb2F0KHBhcnRzWzBdKQotICAgIGNvdW50ID0gaW50KHBhcnRzWzFdKQot
ICAgIG1lc3NhZ2UgPSBwYXJ0c1syXQotICAgIGZvciBpIGluIHhyYW5nZShjb3VudCk6Ci0gICAg
ICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICB0aW1l
LnNsZWVwKHdhaXQpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvYmVuY2htYXJrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MjM4NjNhOTk1Njk3NjNhYjc5NzZhN2RlNzgyMDVj
YTYxOTJhMmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL2JlbmNobWFyay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTc1ICswLDAg
QEAKLTwhLS0KLUNvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci1ub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmlidXRpb24uCi0gICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi1jb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLU9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRp
dGxlPldlYlNvY2tldCBiZW5jaG1hcms8L3RpdGxlPgotPHNjcmlwdCBzcmM9InV0aWxfbWFpbi5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iYmVuY2htYXJrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgYWRkcmVzc0JveCA9IG51
bGw7Ci0KLWZ1bmN0aW9uIGdldENvbmZpZygpIHsKLSAgcmV0dXJuIHsKLSAgICBwcmVmaXhVcmw6
IGFkZHJlc3NCb3gudmFsdWUsCi0gICAgcHJpbnRTaXplOiBnZXRCb29sRnJvbUNoZWNrQm94KCdw
cmludHNpemUnKSwKLSAgICBudW1Tb2NrZXRzOiBnZXRJbnRGcm9tSW5wdXQoJ251bXNvY2tldHMn
KSwKLSAgICAvLyBJbml0aWFsIHNpemUgb2YgbWVzc2FnZXMuCi0gICAgbnVtSXRlcmF0aW9uczog
Z2V0SW50RnJvbUlucHV0KCdudW1pdGVyYXRpb25zJyksCi0gICAgbnVtV2FybVVwSXRlcmF0aW9u
czogZ2V0SW50RnJvbUlucHV0KCdudW13YXJtdXBpdGVyYXRpb25zJyksCi0gICAgc3RhcnRTaXpl
OiBnZXRJbnRGcm9tSW5wdXQoJ3N0YXJ0c2l6ZScpLAotICAgIC8vIFN0b3BzIGJlbmNobWFyayB3
aGVuIHRoZSBzaXplIG9mIG1lc3NhZ2UgZXhjZWVkcyB0aGlzIHRocmVzaG9sZC4KLSAgICBzdG9w
VGhyZXNob2xkOiBnZXRJbnRGcm9tSW5wdXQoJ3N0b3B0aHJlc2hvbGQnKSwKLSAgICAvLyBJZiB0
aGUgc2l6ZSBvZiBlYWNoIG1lc3NhZ2UgaXMgc21hbGwsIHNlbmQvcmVjZWl2ZSBtdWx0aXBsZSBt
ZXNzYWdlcwotICAgIC8vIHVudGlsIHRoZSBzdW0gb2Ygc2l6ZXMgcmVhY2hlcyB0aGlzIHRocmVz
aG9sZC4KLSAgICBtaW5Ub3RhbDogZ2V0SW50RnJvbUlucHV0KCdtaW50b3RhbCcpLAotICAgIG11
bHRpcGxpZXJzOiBnZXRGbG9hdEFycmF5RnJvbUlucHV0KCdtdWx0aXBsaWVycycpLAotICAgIHZl
cmlmeURhdGE6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ZlcmlmeWRhdGEnKSwKLSAgICBhZGRUb0xv
ZzogYWRkVG9Mb2csCi0gICAgYWRkVG9TdW1tYXJ5OiBhZGRUb1N1bW1hcnksCi0gICAgbWVhc3Vy
ZVZhbHVlOiBtZWFzdXJlVmFsdWUsCi0gICAgbm90aWZ5QWJvcnQ6IG5vdGlmeUFib3J0Ci0gIH07
Ci19Ci0KLWZ1bmN0aW9uIG9uU2VuZEJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENv
bmZpZygpOwotICBkb0FjdGlvbihjb25maWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicp
LCAnc2VuZEJlbmNobWFyaycpOwotfQotCi1mdW5jdGlvbiBvblJlY2VpdmVCZW5jaG1hcmsoKSB7
Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29s
RnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ3JlY2VpdmVCZW5jaG1hcmsnKTsKLX0KLQotZnVuY3Rp
b24gb25CYXRjaEJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBk
b0FjdGlvbihjb25maWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnYmF0Y2hCZW5j
aG1hcmsnKTsKLX0KLQotZnVuY3Rpb24gb25TdG9wKCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29u
ZmlnKCk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyks
ICdzdG9wJyk7Ci19Ci0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIGFkZHJlc3NCb3ggPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYWRkcmVzcycpOwotICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbG9nJyk7Ci0KLSAgc3VtbWFyeUJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzdW1tYXJ5Jyk7Ci0KLSAgdmFyIHNjaGVtZSA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9
PSAnaHR0cHM6JyA/ICd3c3M6Ly8nIDogJ3dzOi8vJzsKLSAgdmFyIGRlZmF1bHRBZGRyZXNzID0g
c2NoZW1lICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL2JlbmNobWFya19oZWxwZXInOwotCi0g
IGFkZHJlc3NCb3gudmFsdWUgPSBkZWZhdWx0QWRkcmVzczsKLQotICBhZGRUb0xvZyh3aW5kb3cu
bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLSAgYWRkVG9TdW1tYXJ5KHdpbmRv
dy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwotCi0gIGlmICghKCdXZWJTb2Nr
ZXQnIGluIHdpbmRvdykpIHsKLSAgICBhZGRUb0xvZygnV2ViU29ja2V0IGlzIG5vdCBhdmFpbGFi
bGUnKTsKLSAgfQotCi0gIGluaXRXb3JrZXIoJ1dlYlNvY2tldCcsICcnKTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotCi08ZGl2IGlkPSJiZW5jaG1hcmtf
ZGl2Ij4KLSAgdXJsIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYWRkcmVzcyIgc2l6ZT0iNDAiPgot
ICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic2VuZCIgb25jbGljaz0ib25TZW5kQmVuY2ht
YXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0icmVjZWl2ZSIgb25jbGljaz0i
b25SZWNlaXZlQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iYmF0
Y2giIG9uY2xpY2s9Im9uQmF0Y2hCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24i
IHZhbHVlPSJzdG9wIiBvbmNsaWNrPSJvblN0b3AoKSI+Ci0KLSAgPGJyLz4KLQotICA8aW5wdXQg
dHlwZT0iY2hlY2tib3giIGlkPSJwcmludHNpemUiIGNoZWNrZWQ+Ci0gIDxsYWJlbCBmb3I9InBy
aW50c2l6ZSI+UHJpbnQgc2l6ZSBhbmQgdGltZSBwZXIgbWVzc2FnZTwvbGFiZWw+Ci0gIDxpbnB1
dCB0eXBlPSJjaGVja2JveCIgaWQ9InZlcmlmeWRhdGEiIGNoZWNrZWQ+Ci0gIDxsYWJlbCBmb3I9
InZlcmlmeWRhdGEiPlZlcmlmeSBkYXRhPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94
IiBpZD0id29ya2VyIj4KLSAgPGxhYmVsIGZvcj0id29ya2VyIj5SdW4gb24gd29ya2VyPC9sYWJl
bD4KLQotICA8YnIvPgotCi0gIFBhcmFtZXRlcnM6Ci0KLSAgPGJyLz4KLQotICA8dGFibGU+Ci0g
ICAgPHRyPgotICAgICAgPHRkPk51bSBzb2NrZXRzPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9Im51bXNvY2tldHMiIHZhbHVlPSIxIj48L3RkPgotICAgIDwvdHI+Ci0gICAg
PHRyPgotICAgICAgPHRkPk51bWJlciBvZiBpdGVyYXRpb25zPC90ZD4KLSAgICAgIDx0ZD48aW5w
dXQgdHlwZT0idGV4dCIgaWQ9Im51bWl0ZXJhdGlvbnMiIHZhbHVlPSIxIj48L3RkPgotICAgIDwv
dHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk51bWJlciBvZiB3YXJtLXVwIGl0ZXJhdGlvbnM8L3Rk
PgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtd2FybXVwaXRlcmF0aW9ucyIg
dmFsdWU9IjAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3RhcnQgc2l6
ZTwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdGFydHNpemUiIHZhbHVl
PSIxMDI0MCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5TdG9wIHRocmVz
aG9sZDwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdG9wdGhyZXNob2xk
IiB2YWx1ZT0iMTAyNDAwMDAwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRk
Pk1pbmltdW0gdG90YWw8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibWlu
dG90YWwiIHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAg
ICA8dGQ+TXVsdGlwbGllcnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
bXVsdGlwbGllcnMiIHZhbHVlPSI1LCAyIj48L3RkPgotICAgIDwvdHI+Ci0gIDwvdGFibGU+Ci08
L2Rpdj4KLQotPGRpdiBpZD0ibG9nX2RpdiI+Ci0gIDx0ZXh0YXJlYQotICAgICAgaWQ9ImxvZyIg
cm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvZGl2
PgotPGRpdiBpZD0ic3VtbWFyeV9kaXYiPgotICBTdW1tYXJ5Ci0gIDx0ZXh0YXJlYQotICAgICAg
aWQ9InN1bW1hcnkiIHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4
dGFyZWE+Ci08L2Rpdj4KLQotTm90ZTogRWZmZWN0IG9mIFJUVCBpcyBub3QgZWxpbWluYXRlZC4K
LQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFyay5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg1NjQzNWQxZDBkZDc4ZDk3OTRhYTg0YzAyOWM4YWI0ZjczMzllYzEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFy
ay5qcworKysgL2Rldi9udWxsCkBAIC0xLDIxNCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFVzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0vLyBsaWNlbnNlIHRoYXQgY2FuIGJl
IGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2ZWxvcGVycy5n
b29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi1pZiAodHlwZW9mIGltcG9ydFNj
cmlwdHMgIT09ICJ1bmRlZmluZWQiKSB7Ci0gIC8vIFJ1bm5pbmcgb24gYSB3b3JrZXIKLSAgaW1w
b3J0U2NyaXB0cygndXRpbC5qcycsICd1dGlsX3dvcmtlci5qcycpOwotfQotCi0vLyBOYW1lc3Bh
Y2UgZm9yIGhvbGRpbmcgZ2xvYmFscy4KLXZhciBiZW5jaG1hcmsgPSB7c3RhcnRUaW1lSW5Nczog
MH07Ci0KLXZhciBzb2NrZXRzID0gW107Ci12YXIgbnVtRXN0YWJsaXNoZWRTb2NrZXRzID0gMDsK
LQotdmFyIHRpbWVySUQgPSBudWxsOwotCi1mdW5jdGlvbiBkZXN0cm95U29ja2V0KHNvY2tldCkg
ewotICBzb2NrZXQub25vcGVuID0gbnVsbDsKLSAgc29ja2V0Lm9ubWVzc2FnZSA9IG51bGw7Ci0g
IHNvY2tldC5vbmVycm9yID0gbnVsbDsKLSAgc29ja2V0Lm9uY2xvc2UgPSBudWxsOwotICBzb2Nr
ZXQuY2xvc2UoKTsKLX0KLQotZnVuY3Rpb24gZGVzdHJveUFsbFNvY2tldHMoKSB7Ci0gIGZvciAo
dmFyIGkgPSAwOyBpIDwgc29ja2V0cy5sZW5ndGg7ICsraSkgewotICAgIGRlc3Ryb3lTb2NrZXQo
c29ja2V0c1tpXSk7Ci0gIH0KLSAgc29ja2V0cyA9IFtdOwotfQotCi1mdW5jdGlvbiBzZW5kQmVu
Y2htYXJrU3RlcChzaXplLCBjb25maWcsIGlzV2FybVVwKSB7Ci0gIHRpbWVySUQgPSBudWxsOwot
Ci0gIHZhciB0b3RhbFNpemUgPSAwOwotICB2YXIgdG90YWxSZXBsaWVkID0gMDsKLQotICB2YXIg
b25NZXNzYWdlSGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgaWYgKCF2ZXJpZnlBY2tu
b3dsZWRnZW1lbnQoY29uZmlnLCBldmVudC5kYXRhLCBzaXplKSkgewotICAgICAgZGVzdHJveUFs
bFNvY2tldHMoKTsKLSAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOwotICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIHRvdGFsUmVwbGllZCArPSBzaXplOwotCi0gICAgaWYgKHRvdGFsUmVwbGll
ZCA8IHRvdGFsU2l6ZSkgewotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNhbGN1bGF0ZUFu
ZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1zLCB0b3RhbFNp
emUsCi0gICAgICAgIGlzV2FybVVwKTsKLQotICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH07
Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb2NrZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgdmFy
IHNvY2tldCA9IHNvY2tldHNbaV07Ci0gICAgc29ja2V0Lm9ubWVzc2FnZSA9IG9uTWVzc2FnZUhh
bmRsZXI7Ci0gIH0KLQotICB2YXIgZGF0YUFycmF5ID0gW107Ci0KLSAgd2hpbGUgKHRvdGFsU2l6
ZSA8IGNvbmZpZy5taW5Ub3RhbCkgewotICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIo
c2l6ZSk7Ci0KLSAgICBmaWxsQXJyYXlCdWZmZXIoYnVmZmVyLCAweDYxKTsKLQotICAgIGRhdGFB
cnJheS5wdXNoKGJ1ZmZlcik7Ci0gICAgdG90YWxTaXplICs9IHNpemU7Ci0gIH0KLQotICBiZW5j
aG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotCi0gIHRvdGFsU2l6ZSA9IDA7
Ci0KLSAgdmFyIHNvY2tldEluZGV4ID0gMDsKLSAgdmFyIGRhdGFJbmRleCA9IDA7Ci0gIHdoaWxl
ICh0b3RhbFNpemUgPCBjb25maWcubWluVG90YWwpIHsKLSAgICB2YXIgY29tbWFuZCA9IFsnc2Vu
ZCddOwotICAgIGNvbW1hbmQucHVzaChjb25maWcudmVyaWZ5RGF0YSA/ICcxJyA6ICcwJyk7Ci0g
ICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZChjb21tYW5kLmpvaW4oJyAnKSk7Ci0gICAgc29j
a2V0c1tzb2NrZXRJbmRleF0uc2VuZChkYXRhQXJyYXlbZGF0YUluZGV4XSk7Ci0gICAgc29ja2V0
SW5kZXggPSAoc29ja2V0SW5kZXggKyAxKSAlIHNvY2tldHMubGVuZ3RoOwotCi0gICAgdG90YWxT
aXplICs9IHNpemU7Ci0gICAgKytkYXRhSW5kZXg7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcmVjZWl2
ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBpc1dhcm1VcCkgewotICB0aW1lcklEID0gbnVs
bDsKLQotICB2YXIgdG90YWxTaXplID0gMDsKLSAgdmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0KLSAg
dmFyIG9uTWVzc2FnZUhhbmRsZXIgPSBmdW5jdGlvbihldmVudCkgewotICAgIHZhciBieXRlc1Jl
Y2VpdmVkID0gZXZlbnQuZGF0YS5ieXRlTGVuZ3RoOwotICAgIGlmIChieXRlc1JlY2VpdmVkICE9
IHNpemUpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnRXhwZWN0ZWQgJyArIHNpemUgKyAnQiBi
dXQgcmVjZWl2ZWQgJyArCi0gICAgICAgICAgYnl0ZXNSZWNlaXZlZCArICdCJyk7Ci0gICAgICBk
ZXN0cm95QWxsU29ja2V0cygpOwotICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhICYmICF2ZXJpZnlBcnJh
eUJ1ZmZlcihldmVudC5kYXRhLCAweDYxKSkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdSZXNw
b25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7Ci0gICAgICBkZXN0cm95QWxsU29ja2V0cygpOwot
ICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
dG90YWxSZXBsaWVkICs9IGJ5dGVzUmVjZWl2ZWQ7Ci0KLSAgICBpZiAodG90YWxSZXBsaWVkIDwg
dG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY2FsY3VsYXRlQW5kTG9n
UmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSwK
LSAgICAgICAgaXNXYXJtVXApOwotCi0gICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgfTsKLQot
ICBmb3IgKHZhciBpID0gMDsgaSA8IHNvY2tldHMubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgc29j
a2V0ID0gc29ja2V0c1tpXTsKLSAgICBzb2NrZXQuYmluYXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7
Ci0gICAgc29ja2V0Lm9ubWVzc2FnZSA9IG9uTWVzc2FnZUhhbmRsZXI7Ci0gIH0KLQotICBiZW5j
aG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotCi0gIHZhciBzb2NrZXRJbmRl
eCA9IDA7Ci0gIHdoaWxlICh0b3RhbFNpemUgPCBjb25maWcubWluVG90YWwpIHsKLSAgICBzb2Nr
ZXRzW3NvY2tldEluZGV4XS5zZW5kKCdyZWNlaXZlICcgKyBzaXplKTsKLSAgICBzb2NrZXRJbmRl
eCA9IChzb2NrZXRJbmRleCArIDEpICUgc29ja2V0cy5sZW5ndGg7Ci0KLSAgICB0b3RhbFNpemUg
Kz0gc2l6ZTsKLSAgfQotfQotCi1mdW5jdGlvbiBjcmVhdGVTb2NrZXQoY29uZmlnKSB7Ci0gIC8v
IFRPRE8odHlvc2hpbm8pOiBBZGQgVENQIHdhcm0gdXAuCi0gIHZhciB1cmwgPSBjb25maWcucHJl
Zml4VXJsOwotCi0gIGNvbmZpZy5hZGRUb0xvZygnQ29ubmVjdCAnICsgdXJsKTsKLQotICB2YXIg
c29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmwpOwotICBzb2NrZXQub25tZXNzYWdlID0gZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ1VuZXhwZWN0ZWQgbWVzc2FnZSByZWNl
aXZlZC4gQWJvcnRpbmcuJyk7Ci0gIH07Ci0gIHNvY2tldC5vbmVycm9yID0gZnVuY3Rpb24oKSB7
Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdFcnJvcicpOwotICB9OwotICBzb2NrZXQub25jbG9zZSA9
IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdDbG9zZWQnKTsKLSAgICBj
b25maWcubm90aWZ5QWJvcnQoKTsKLSAgfTsKLSAgcmV0dXJuIHNvY2tldDsKLX0KLQotZnVuY3Rp
b24gc3RhcnRCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNsZWFyVGltZW91dCh0aW1lcklEKTsKLSAg
ZGVzdHJveUFsbFNvY2tldHMoKTsKLQotICBudW1Fc3RhYmxpc2hlZFNvY2tldHMgPSAwOwotCi0g
IGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bVNvY2tldHM7ICsraSkgewotICAgIHZhciBz
b2NrZXQgPSBjcmVhdGVTb2NrZXQoY29uZmlnKTsKLSAgICBzb2NrZXQub25vcGVuID0gZnVuY3Rp
b24oKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ09wZW5lZCcpOwotCi0gICAgICArK251bUVz
dGFibGlzaGVkU29ja2V0czsKLQotICAgICAgaWYgKG51bUVzdGFibGlzaGVkU29ja2V0cyA9PSBz
b2NrZXRzLmxlbmd0aCkgewotICAgICAgICBydW5OZXh0VGFzayhjb25maWcpOwotICAgICAgfQot
ICAgIH07Ci0gICAgc29ja2V0cy5wdXNoKHNvY2tldCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gZ2V0
Q29uZmlnU3RyaW5nKGNvbmZpZykgewotICByZXR1cm4gJyhXZWJTb2NrZXQnICsKLSAgICAnLCAn
ICsgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAidW5kZWZpbmVkIiA/ICdXb3JrZXInIDogJ01h
aW4nKSArCi0gICAgJywgbnVtU29ja2V0cz0nICsgY29uZmlnLm51bVNvY2tldHMgKwotICAgICcs
IG51bUl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1JdGVyYXRpb25zICsKLSAgICAnLCB2ZXJpZnlE
YXRhPScgKyBjb25maWcudmVyaWZ5RGF0YSArCi0gICAgJywgbWluVG90YWw9JyArIGNvbmZpZy5t
aW5Ub3RhbCArCi0gICAgJywgbnVtV2FybVVwSXRlcmF0aW9ucz0nICsgY29uZmlnLm51bVdhcm1V
cEl0ZXJhdGlvbnMgKwotICAgICcpJzsKLX0KLQotZnVuY3Rpb24gYmF0Y2hCZW5jaG1hcmsoY29u
ZmlnKSB7Ci0gIGNvbmZpZy5hZGRUb0xvZygnQmF0Y2ggYmVuY2htYXJrJyk7Ci0gIGNvbmZpZy5h
ZGRUb0xvZyhidWlsZExlZ2VuZFN0cmluZyhjb25maWcpKTsKLQotICB0YXNrcyA9IFtdOwotICBj
bGVhckF2ZXJhZ2VEYXRhKCk7Ci0gIGFkZFRhc2tzKGNvbmZpZywgc2VuZEJlbmNobWFya1N0ZXAp
OwotICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywgJ1NlbmQgQmVuY2htYXJrICcgKyBn
ZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0gIGFkZFRhc2tzKGNvbmZpZywgcmVjZWl2ZUJlbmNo
bWFya1N0ZXApOwotICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywgJ1JlY2VpdmUgQmVu
Y2htYXJrICcgKwotICAgICAgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICBzdGFydEJlbmNo
bWFyayhjb25maWcpOwotfQotCi1mdW5jdGlvbiBjbGVhbnVwKCkgewotICBkZXN0cm95QWxsU29j
a2V0cygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3No
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0NGFkMGJmZWVmYzZmNDQzMDU3MWI3YjUzMjMzZmI3OTUwNjE0Y2Yy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhh
bXBsZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAg
QEAKLSMgQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkhhbmRsZXIgZm9yIGJlbmNobWFyay5odG1sLiIi
IgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICAj
IFR1cm4gb2ZmIGNvbXByZXNzaW9uLgotICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3Nv
cnMgPSBbXQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAg
ZGF0YSA9ICcnCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjb21tYW5kID0gcmVxdWVzdC53
c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgaWYgY29tbWFuZCBpcyBOb25lOgot
ICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWFuZCwg
dW5pY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQg
ZGF0YTonICsgY29tbWFuZCkKLSAgICAgICAgY29tbWFuZHMgPSBjb21tYW5kLnNwbGl0KCcgJykK
LSAgICAgICAgaWYgbGVuKGNvbW1hbmRzKSA9PSAwOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcignSW52YWxpZCBjb21tYW5kIGRhdGE6ICcgKyBjb21tYW5kKQotCi0gICAgICAgIGlmIGNv
bW1hbmRzWzBdID09ICdyZWNlaXZlJzoKLSAgICAgICAgICAgIGlmIGxlbihjb21tYW5kcykgIT0g
MjoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ0lsbGVnYWwgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3Igc2VuZCBjb21tYW5kJyArCi0g
ICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kKQotICAgICAgICAgICAgc2l6ZSA9IGludChj
b21tYW5kc1sxXSkKLQotICAgICAgICAgICAgIyBSZXVzZSBkYXRhIGlmIHBvc3NpYmxlLgotICAg
ICAgICAgICAgaWYgbGVuKGRhdGEpICE9IHNpemU6Ci0gICAgICAgICAgICAgICAgZGF0YSA9ICdh
JyAqIHNpemUKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShkYXRh
LCBiaW5hcnk9VHJ1ZSkKLSAgICAgICAgZWxpZiBjb21tYW5kc1swXSA9PSAnc2VuZCc6Ci0gICAg
ICAgICAgICBpZiBsZW4oY29tbWFuZHMpICE9IDI6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICdJbGxlZ2FsIG51bWJlciBvZiBhcmd1
bWVudHMgZm9yIHJlY2VpdmUgY29tbWFuZCcgKwotICAgICAgICAgICAgICAgICAgICAgICAgY29t
bWFuZCkKLSAgICAgICAgICAgIHZlcmlmeV9kYXRhID0gY29tbWFuZHNbMV0gPT0gJzEnCi0KLSAg
ICAgICAgICAgIGRhdGEgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAg
ICAgICAgICAgaWYgZGF0YSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ1BheWxvYWQgbm90IHJlY2VpdmVkJykKLSAgICAgICAgICAgIHNpemUgPSBsZW4oZGF0YSkK
LQotICAgICAgICAgICAgaWYgdmVyaWZ5X2RhdGE6Ci0gICAgICAgICAgICAgICAgaWYgZGF0YSAh
PSAnYScgKiBzaXplOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdQYXls
b2FkIHZlcmlmaWNhdGlvbiBmYWlsZWQnKQotCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVh
bS5zZW5kX21lc3NhZ2Uoc3RyKHNpemUpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcignSW52YWxpZCBjb21tYW5kOiAnICsgY29tbWFuZHNbMF0pCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY2xvc2Vfd3NoLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL2Nsb3NlX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjZiMDgzODQwODEyNDUzOTc5NzY1N2Q0MGQ2NDI3OGYxYTY0ODFjMC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY2xvc2Vfd3NoLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xl
IEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9y
dCBzdHJ1Y3QKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IHN0cmVhbQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hh
bmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KToKLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBsaW5lID0gcmVxdWVzdC53
c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgaWYgbGluZSBpcyBOb25lOgotICAg
ICAgICAgICAgcmV0dXJuCi0gICAgICAgIGNvZGUsIHJlYXNvbiA9IGxpbmUuc3BsaXQoJyAnLCAx
KQotICAgICAgICBpZiBjb2RlIGlzIE5vbmUgb3IgcmVhc29uIGlzIE5vbmU6Ci0gICAgICAgICAg
ICByZXR1cm4KLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbihpbnQo
Y29kZSksIHJlYXNvbikKLSAgICAgICAgIyBjbG9zZV9jb25uZWN0aW9uKCkgaW5pdGlhdGVzIGNs
b3NpbmcgaGFuZHNoYWtlLiBJdCB2YWxpZGF0ZXMgY29kZQotICAgICAgICAjIGFuZCByZWFzb24u
IElmIHlvdSB3YW50IHRvIHNlbmQgYSBicm9rZW4gY2xvc2UgZnJhbWUgZm9yIGEgdGVzdCwKLSAg
ICAgICAgIyBmb2xsb3dpbmcgY29kZSB3aWxsIGJlIHVzZWZ1bC4KLSAgICAgICAgIyA+IGRhdGEg
PSBzdHJ1Y3QucGFjaygnIUgnLCBpbnQoY29kZSkpICsgcmVhc29uLmVuY29kZSgnVVRGLTgnKQot
ICAgICAgICAjID4gcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKHN0cmVhbS5jcmVhdGVfY2xvc2Vf
ZnJhbWUoZGF0YSkpCi0gICAgICAgICMgPiAjIFN1cHByZXNzIHRvIHJlLXJlc3BvbmQgY2xpZW50
IHJlc3BvbmRpbmcgY2xvc2UgZnJhbWUuCi0gICAgICAgICMgPiByYWlzZSBFeGNlcHRpb24oImN1
c3RvbWl6ZWQgc2VydmVyIGluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZSIpCi0KLQotZGVmIHdl
Yl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICAjIFNpbXBs
eSBlY2hvIGEgY2xvc2Ugc3RhdHVzIGNvZGUKLSAgICBjb2RlLCByZWFzb24gPSByZXF1ZXN0Lndz
X2Nsb3NlX2NvZGUsIHJlcXVlc3Qud3NfY2xvc2VfcmVhc29uCi0KLSAgICAjIHB5d2Vic29ja2V0
IHNldHMgcHNldWRvIGNvZGUgZm9yIHJlY2VpdmluZyBhbiBlbXB0eSBib2R5IGNsb3NlIGZyYW1l
LgotICAgIGlmIGNvZGUgPT0gY29tbW9uLlNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQ6Ci0gICAg
ICAgIGNvZGUgPSBOb25lCi0gICAgICAgIHJlYXNvbiA9ICcnCi0gICAgcmV0dXJuIGNvZGUsIHJl
YXNvbgotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nv
bnNvbGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb25zb2xlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNjZDZkOGY4MDY3NmI5OTkxZTIyZGZjN2VjODUwODM0MTFkZGQwYjMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2NvbnNvbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxNyArMCwwIEBACi08IS0tCi1Db3B5
cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPCEtLQotQSBzaW1wbGUgY29uc29sZSBmb3IgdGVzdGlu
ZyBXZWJTb2NrZXQgc2VydmVyLgotCi1UeXBlIGFuIGFkZHJlc3MgaW50byB0aGUgdG9wIHRleHQg
aW5wdXQgYW5kIGNsaWNrIGNvbm5lY3QgdG8gZXN0YWJsaXNoCi1XZWJTb2NrZXQuIFRoZW4sIHR5
cGUgc29tZSBtZXNzYWdlIGludG8gdGhlIGJvdHRvbSB0ZXh0IGlucHV0IGFuZCBjbGljayBzZW5k
Ci10byBzZW5kIHRoZSBtZXNzYWdlLiBSZWNlaXZlZC9zZW50IG1lc3NhZ2VzIGFuZCBjb25uZWN0
aW9uIHN0YXRlIHdpbGwgYmUgc2hvd24KLW9uIHRoZSBtaWRkbGUgdGV4dGFyZWEuCi0tLT4KLQot
PGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5XZWJTb2NrZXQgY29uc29sZTwvdGl0bGU+Ci08c2NyaXB0
PgotdmFyIHNvY2tldCA9IG51bGw7Ci0KLXZhciBzaG93VGltZVN0YW1wID0gZmFsc2U7Ci0KLXZh
ciBhZGRyZXNzQm94ID0gbnVsbDsKLXZhciBwcm90b2NvbHNCb3ggPSBudWxsOwotdmFyIGxvZ0Jv
eCA9IG51bGw7Ci12YXIgbWVzc2FnZUJveCA9IG51bGw7Ci12YXIgZmlsZUJveCA9IG51bGw7Ci12
YXIgY29kZUJveCA9IG51bGw7Ci12YXIgcmVhc29uQm94ID0gbnVsbDsKLQotZnVuY3Rpb24gZ2V0
VGltZVN0YW1wKCkgewotICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7Ci19Ci0KLWZ1bmN0
aW9uIGFkZFRvTG9nKGxvZykgewotICBpZiAoc2hvd1RpbWVTdGFtcCkgewotICAgIGxvZ0JveC52
YWx1ZSArPSAnWycgKyBnZXRUaW1lU3RhbXAoKSArICddICc7Ci0gIH0KLSAgbG9nQm94LnZhbHVl
ICs9IGxvZyArICdcbicKLSAgLy8gTGFyZ2UgZW5vdWdoIHRvIGtlZXAgc2hvd2luZyB0aGUgbGF0
ZXN0IG1lc3NhZ2UuCi0gIGxvZ0JveC5zY3JvbGxUb3AgPSAxMDAwMDAwOwotfQotCi1mdW5jdGlv
biBzZXRiaW5hcnl0eXBlKGJpbmFyeVR5cGUpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAgICBhZGRU
b0xvZygnTm90IGNvbm5lY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5iaW5h
cnlUeXBlID0gYmluYXJ5VHlwZTsKLSAgYWRkVG9Mb2coJ1NldCBiaW5hcnlUeXBlIHRvICcgKyBi
aW5hcnlUeXBlKTsKLX0KLQotZnVuY3Rpb24gc2VuZCgpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAg
ICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tl
dC5zZW5kKG1lc3NhZ2VCb3gudmFsdWUpOwotICBhZGRUb0xvZygnPiAnICsgbWVzc2FnZUJveC52
YWx1ZSk7Ci0gIG1lc3NhZ2VCb3gudmFsdWUgPSAnJzsKLX0KLQotZnVuY3Rpb24gc2VuZGZpbGUo
KSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAg
ICByZXR1cm47Ci0gIH0KLQotICB2YXIgZmlsZXMgPSBmaWxlQm94LmZpbGVzOwotCi0gIGlmIChm
aWxlcy5sZW5ndGggPT0gMCkgewotICAgIGFkZFRvTG9nKCdGaWxlIG5vdCBzZWxlY3RlZCcpOwot
ICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5zZW5kKGZpbGVzWzBdKTsKLSAgYWRkVG9Mb2co
Jz4gU2VuZCAnICsgZmlsZXNbMF0ubmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xz
KHByb3RvY29sc1RleHQpIHsKLSAgdmFyIHByb3RvY29scyA9IHByb3RvY29sc1RleHQuc3BsaXQo
JywnKTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm90b2NvbHMubGVuZ3RoOyArK2kpIHsKLSAg
ICBwcm90b2NvbHNbaV0gPSBwcm90b2NvbHNbaV0udHJpbSgpOwotICB9Ci0KLSAgaWYgKHByb3Rv
Y29scy5sZW5ndGggPT0gMCkgewotICAgIC8vIERvbid0IHBhc3MuCi0gICAgcHJvdG9jb2xzID0g
bnVsbDsKLSAgfSBlbHNlIGlmIChwcm90b2NvbHMubGVuZ3RoID09IDEpIHsKLSAgICBpZiAocHJv
dG9jb2xzWzBdLmxlbmd0aCA9PSAwKSB7Ci0gICAgICAvLyBEb24ndCBwYXNzLgotICAgICAgcHJv
dG9jb2xzID0gbnVsbDsKLSAgICB9IGVsc2UgewotICAgICAgLy8gUGFzcyBhcyBhIHN0cmluZy4K
LSAgICAgIHByb3RvY29scyA9IHByb3RvY29sc1swXTsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4g
cHJvdG9jb2xzOwotfQotCi1mdW5jdGlvbiBjb25uZWN0KCkgewotICB2YXIgdXJsID0gYWRkcmVz
c0JveC52YWx1ZTsKLSAgdmFyIHByb3RvY29scyA9IHBhcnNlUHJvdG9jb2xzKHByb3RvY29sc0Jv
eC52YWx1ZSk7Ci0KLSAgaWYgKCdXZWJTb2NrZXQnIGluIHdpbmRvdykgewotICAgIGlmIChwcm90
b2NvbHMpIHsKLSAgICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJsLCBwcm90b2NvbHMpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICBzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVybCk7Ci0gICAgfQot
ICB9IGVsc2UgewotICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5vbm9wZW4gPSBmdW5jdGlv
biAoKSB7Ci0gICAgdmFyIGV4dHJhSW5mbyA9IFtdOwotICAgIGlmICgoJ3Byb3RvY29sJyBpbiBz
b2NrZXQpICYmIHNvY2tldC5wcm90b2NvbCkgewotICAgICAgZXh0cmFJbmZvLnB1c2goJ3Byb3Rv
Y29sID0gJyArIHNvY2tldC5wcm90b2NvbCk7Ci0gICAgfQotICAgIGlmICgoJ2V4dGVuc2lvbnMn
IGluIHNvY2tldCkgJiYgc29ja2V0LmV4dGVuc2lvbnMpIHsKLSAgICAgIGV4dHJhSW5mby5wdXNo
KCdleHRlbnNpb25zID0gJyArIHNvY2tldC5leHRlbnNpb25zKTsKLSAgICB9Ci0KLSAgICB2YXIg
bG9nTWVzc2FnZSA9ICdPcGVuZWQnOwotICAgIGlmIChleHRyYUluZm8ubGVuZ3RoID4gMCkgewot
ICAgICAgbG9nTWVzc2FnZSArPSAnICgnICsgZXh0cmFJbmZvLmpvaW4oJywgJykgKyAnKSc7Ci0g
ICAgfQotICAgIGFkZFRvTG9nKGxvZ01lc3NhZ2UpOwotICB9OwotICBzb2NrZXQub25tZXNzYWdl
ID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgaWYgKCgnQXJyYXlCdWZmZXInIGluIHdpbmRvdykg
JiYgKGV2ZW50LmRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpIHsKLSAgICAgIGFkZFRvTG9n
KCc8IFJlY2VpdmVkIGFuIEFycmF5QnVmZmVyIG9mICcgKyBldmVudC5kYXRhLmJ5dGVMZW5ndGgg
KwotICAgICAgICAgICAgICAgJyBieXRlcycpCi0gICAgfSBlbHNlIGlmICgoJ0Jsb2InIGluIHdp
bmRvdykgJiYgKGV2ZW50LmRhdGEgaW5zdGFuY2VvZiBCbG9iKSkgewotICAgICAgYWRkVG9Mb2co
JzwgUmVjZWl2ZWQgYSBCbG9iIG9mICcgKyBldmVudC5kYXRhLnNpemUgKyAnIGJ5dGVzJykKLSAg
ICB9IGVsc2UgewotICAgICAgYWRkVG9Mb2coJzwgJyArIGV2ZW50LmRhdGEpOwotICAgIH0KLSAg
fTsKLSAgc29ja2V0Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7Ci0gICAgYWRkVG9Mb2coJ0Vycm9y
Jyk7Ci0gIH07Ci0gIHNvY2tldC5vbmNsb3NlID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgdmFy
IGxvZ01lc3NhZ2UgPSAnQ2xvc2VkICgnOwotICAgIGlmICgoYXJndW1lbnRzLmxlbmd0aCA9PSAx
KSAmJiAoJ0Nsb3NlRXZlbnQnIGluIHdpbmRvdykgJiYKLSAgICAgICAgKGV2ZW50IGluc3RhbmNl
b2YgQ2xvc2VFdmVudCkpIHsKLSAgICAgIGxvZ01lc3NhZ2UgKz0gJ3dhc0NsZWFuID0gJyArIGV2
ZW50Lndhc0NsZWFuOwotICAgICAgLy8gY29kZSBhbmQgcmVhc29uIGFyZSBwcmVzZW50IG9ubHkg
Zm9yCi0gICAgICAvLyBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDYgYW5k
IGxhdGVyCi0gICAgICBpZiAoJ2NvZGUnIGluIGV2ZW50KSB7Ci0gICAgICAgIGxvZ01lc3NhZ2Ug
Kz0gJywgY29kZSA9ICcgKyBldmVudC5jb2RlOwotICAgICAgfQotICAgICAgaWYgKCdyZWFzb24n
IGluIGV2ZW50KSB7Ci0gICAgICAgIGxvZ01lc3NhZ2UgKz0gJywgcmVhc29uID0gJyArIGV2ZW50
LnJlYXNvbjsKLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgbG9nTWVzc2FnZSArPSAnQ2xv
c2VFdmVudCBpcyBub3QgYXZhaWxhYmxlJzsKLSAgICB9Ci0gICAgYWRkVG9Mb2cobG9nTWVzc2Fn
ZSArICcpJyk7Ci0gIH07Ci0KLSAgaWYgKHByb3RvY29scykgewotICAgIGFkZFRvTG9nKCdDb25u
ZWN0ICcgKyB1cmwgKyAnIChwcm90b2NvbHMgPSAnICsgcHJvdG9jb2xzICsgJyknKTsKLSAgfSBl
bHNlIHsKLSAgICBhZGRUb0xvZygnQ29ubmVjdCAnICsgdXJsKTsKLSAgfQotfQotCi1mdW5jdGlv
biBjbG9zZVNvY2tldCgpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNv
bm5lY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGlmIChjb2RlQm94LnZhbHVlIHx8IHJl
YXNvbkJveC52YWx1ZSkgewotICAgIHNvY2tldC5jbG9zZShjb2RlQm94LnZhbHVlLCByZWFzb25C
b3gudmFsdWUpOwotICB9IGVsc2UgewotICAgIHNvY2tldC5jbG9zZSgpOwotICB9Ci19Ci0KLWZ1
bmN0aW9uIHByaW50U3RhdGUoKSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05v
dCBjb25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBhZGRUb0xvZygKLSAgICAgICd1
cmwgPSAnICsgc29ja2V0LnVybCArCi0gICAgICAnLCByZWFkeVN0YXRlID0gJyArIHNvY2tldC5y
ZWFkeVN0YXRlICsKLSAgICAgICcsIGJ1ZmZlcmVkQW1vdW50ID0gJyArIHNvY2tldC5idWZmZXJl
ZEFtb3VudCk7Ci19Ci0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIHZhciBzY2hlbWUgPSB3aW5kb3cu
bG9jYXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicgPyAnd3NzOi8vJyA6ICd3czovLyc7Ci0gIHZh
ciBkZWZhdWx0QWRkcmVzcyA9IHNjaGVtZSArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgJy9lY2hv
JzsKLQotICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZHJlc3MnKTsK
LSAgcHJvdG9jb2xzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb3RvY29scycpOwot
ICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0gIG1lc3NhZ2VCb3gg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVzc2FnZScpOwotICBmaWxlQm94ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGUnKTsKLSAgY29kZUJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb2RlJyk7Ci0gIHJlYXNvbkJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZWFzb24nKTsKLQotICBhZGRyZXNzQm94LnZhbHVlID0gZGVmYXVsdEFkZHJlc3M7Ci0KLSAgaWYg
KCEoJ1dlYlNvY2tldCcgaW4gd2luZG93KSkgewotICAgIGFkZFRvTG9nKCdXZWJTb2NrZXQgaXMg
bm90IGF2YWlsYWJsZScpOwotICB9Ci19Ci08L3NjcmlwdD4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+Ci1mb3JtIHsKLSAgbWFyZ2luOiAwcHg7Ci19Ci0KLSNjb25uZWN0X2RpdiwgI2xvZ19kaXYs
ICNzZW5kX2RpdiwgI3NlbmRmaWxlX2RpdiwgI2Nsb3NlX2RpdiwgI3ByaW50c3RhdGVfZGl2IHsK
LSAgcGFkZGluZzogNXB4OwotICBtYXJnaW46IDVweDsKLSAgYm9yZGVyLXdpZHRoOiAwcHggMHB4
IDBweCAxMHB4OwotICBib3JkZXItc3R5bGU6IHNvbGlkOwotICBib3JkZXItY29sb3I6IHNpbHZl
cjsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci0KLTxkaXY+
Ci0KLTxkaXYgaWQ9ImNvbm5lY3RfZGl2Ij4KLSAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0i
Y29ubmVjdCgpOyByZXR1cm4gZmFsc2U7Ij4KLSAgICB1cmwgPGlucHV0IHR5cGU9InRleHQiIGlk
PSJhZGRyZXNzIiBzaXplPSI0MCI+Ci0gICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ImNv
bm5lY3QiPgotICAgIDxici8+Ci0gICAgcHJvdG9jb2xzIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
cHJvdG9jb2xzIiBzaXplPSIyMCI+Ci0gIDwvZm9ybT4KLTwvZGl2PgotCi08ZGl2IGlkPSJsb2df
ZGl2Ij4KLSAgPHRleHRhcmVhIGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xzPSI0MCIgcmVhZG9ubHk+
PC90ZXh0YXJlYT4KLSAgPGJyLz4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IgotICAgICAgICAg
bmFtZT0ic2hvd3RpbWVzdGFtcCIKLSAgICAgICAgIHZhbHVlPSJzaG93dGltZXN0YW1wIgotICAg
ICAgICAgb25jbGljaz0ic2hvd1RpbWVTdGFtcCA9IHRoaXMuY2hlY2tlZCI+U2hvdyB0aW1lIHN0
YW1wCi08L2Rpdj4KLQotPGRpdiBpZD0ic2VuZF9kaXYiPgotICA8Zm9ybSBhY3Rpb249IiMiIG9u
c3VibWl0PSJzZW5kKCk7IHJldHVybiBmYWxzZTsiPgotICAgIGRhdGEgPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJtZXNzYWdlIiBzaXplPSI0MCI+Ci0gICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFs
dWU9InNlbmQiPgotICA8L2Zvcm0+Ci08L2Rpdj4KLQotPGRpdiBpZD0ic2VuZGZpbGVfZGl2Ij4K
LSAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0ic2VuZGZpbGUoKTsgcmV0dXJuIGZhbHNlOyI+
Ci0gICAgPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlIiBzaXplPSI0MCI+Ci0gICAgPGlucHV0
IHR5cGU9InN1Ym1pdCIgdmFsdWU9InNlbmQgZmlsZSI+Ci0gIDwvZm9ybT4KLQotICBTZXQgYmlu
YXJ5VHlwZQotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJiaW5hcnl0eXBl
IgotICAgICAgICAgdmFsdWU9ImJsb2IiCi0gICAgICAgICBvbmNsaWNrPSJzZXRiaW5hcnl0eXBl
KCdibG9iJykiIGNoZWNrZWQ+YmxvYgotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBu
YW1lPSJiaW5hcnl0eXBlIgotICAgICAgICAgdmFsdWU9ImFycmF5YnVmZmVyIgotICAgICAgICAg
b25jbGljaz0ic2V0YmluYXJ5dHlwZSgnYXJyYXlidWZmZXInKSI+YXJyYXlidWZmZXIKLTwvZGl2
PgotCi08ZGl2IGlkPSJjbG9zZV9kaXYiPgotICA8Zm9ybSBhY3Rpb249IiMiIG9uc3VibWl0PSJj
bG9zZVNvY2tldCgpOyByZXR1cm4gZmFsc2U7Ij4KLSAgICBjb2RlIDxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iY29kZSIgc2l6ZT0iMTAiPgotICAgIHJlYXNvbiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9
InJlYXNvbiIgc2l6ZT0iMjAiPgotICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJjbG9z
ZSI+Ci0gIDwvZm9ybT4KLTwvZGl2PgotCi08ZGl2IGlkPSJwcmludHN0YXRlX2RpdiI+Ci0gIDxp
bnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJwcmludCBzdGF0ZSIgb25jbGljaz0icHJpbnRTdGF0
ZSgpOyI+Ci08L2Rpdj4KLQotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9jb29raWVfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nvb2tpZV93c2gucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiMzI3MTUyZTcwMWY3ZDIwMzFkN2M5Y2Uw
NDYyNGNmYTg0YWMxNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2Nvb2tpZV93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMiAr
MCwwIEBACi0jIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxl
Ci0jIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAot
IyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QK
LQotCi1pbXBvcnQgdXJscGFyc2UKLQotCi1kZWYgX2FkZF9zZXRfY29va2llKHJlcXVlc3QsIHZh
bHVlKToKLSAgICByZXF1ZXN0LmV4dHJhX2hlYWRlcnMuYXBwZW5kKCgnU2V0LUNvb2tpZScsIHZh
bHVlKSkKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0g
ICAgY29tcG9uZW50cyA9IHVybHBhcnNlLnVybHBhcnNlKHJlcXVlc3QudXJpKQotICAgIGNvbW1h
bmQgPSBjb21wb25lbnRzWzRdCi0KLSAgICBPTkVfREFZX0xJRkUgPSAnTWF4LUFnZT04NjQwMCcK
LQotICAgIGlmIGNvbW1hbmQgPT0gJ3NldCc6Ci0gICAgICAgIF9hZGRfc2V0X2Nvb2tpZShyZXF1
ZXN0LCAnOyAnLmpvaW4oWydmb289YmFyJywgT05FX0RBWV9MSUZFXSkpCi0gICAgZWxpZiBjb21t
YW5kID09ICdzZXRfaHR0cG9ubHknOgotICAgICAgICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwK
LSAgICAgICAgICAgICc7ICcuam9pbihbJ2h0dHBPbmx5Rm9vPWJhcicsIE9ORV9EQVlfTElGRSwg
J2h0dHBPbmx5J10pKQotICAgIGVsaWYgY29tbWFuZCA9PSAnY2xlYXInOgotICAgICAgICBfYWRk
X3NldF9jb29raWUocmVxdWVzdCwgJ2Zvbz0wOyBNYXgtQWdlPTAnKQotICAgICAgICBfYWRkX3Nl
dF9jb29raWUocmVxdWVzdCwgJ2h0dHBPbmx5Rm9vPTA7IE1heC1BZ2U9MCcpCi0KLQotZGVmIHdl
Yl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBwYXNzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvZWNob19jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19jbGllbnQucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhYzc0MGU3MDU4YmQzMWE3OGJjZjFiMWI4
OTdkM2JkZjNmYzdkNGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTEy
OSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LSIiIlNpbXBsZSBXZWJTb2NrZXQgY2xpZW50IG5hbWVkIGVjaG9fY2xpZW50IGp1c3QgYmVjYXVz
ZSBvZiBoaXN0b3JpY2FsIHJlYXNvbi4KLQotbW9kX3B5d2Vic29ja2V0IGRpcmVjdG9yeSBtdXN0
IGJlIGluIFBZVEhPTlBBVEguCi0KLUV4YW1wbGUgVXNhZ2U6Ci0KLSMgc2VydmVyIHNldHVwCi0g
JSBjZCAkcHl3ZWJzb2NrZXQKLSAlIFBZVEhPTlBBVEg9JGN3ZC9zcmMgcHl0aG9uIC4vbW9kX3B5
d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgLXAgODg4MCBcCi0gICAgLWQgJGN3ZC9zcmMvZXhhbXBs
ZQotCi0jIHJ1biBjbGllbnQKLSAlIFBZVEhPTlBBVEg9JGN3ZC9zcmMgcHl0aG9uIC4vc3JjL2V4
YW1wbGUvZWNob19jbGllbnQucHkgLXAgODg4MCBcCi0gICAgIC1zIGxvY2FsaG9zdCBcCi0gICAg
IC1vIGh0dHA6Ly9sb2NhbGhvc3QgLXIgL2VjaG8gLW0gdGVzdAotCi1vcgotCi0jIHJ1biBlY2hv
IGNsaWVudCB0byB0ZXN0IElFVEYgSHlCaSAwMCBwcm90b2NvbAotIHJ1biB3aXRoIC0tcHJvdG9j
b2wtdmVyc2lvbj1oeWJpMDAKLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5j
dGlvbgotCi0KLWltcG9ydCBiYXNlNjQKLWltcG9ydCBjb2RlY3MKLWltcG9ydCBsb2dnaW5nCi1m
cm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIKLWltcG9ydCBvcwotaW1wb3J0IHJhbmRv
bQotaW1wb3J0IHJlCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgc3lzCi0K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
LmV4dGVuc2lvbnMgaW1wb3J0IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNp
b25Qcm9jZXNzb3IKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IF9QZXJN
ZXNzYWdlRGVmbGF0ZUZyYW1lcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBv
cnQgX3BhcnNlX3dpbmRvd19iaXRzCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0
IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1IaXhpZTc1
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbU9wdGlvbnMKLWZyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQotX1RJTUVPVVRfU0VDID0gMTAKLV9VTkRF
RklORURfUE9SVCA9IC0xCi0KLV9VUEdSQURFX0hFQURFUiA9ICdVcGdyYWRlOiB3ZWJzb2NrZXRc
clxuJwotX1VQR1JBREVfSEVBREVSX0hJWElFNzUgPSAnVXBncmFkZTogV2ViU29ja2V0XHJcbicK
LV9DT05ORUNUSU9OX0hFQURFUiA9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLQotIyBTcGVj
aWFsIG1lc3NhZ2UgdGhhdCB0ZWxscyB0aGUgZWNobyBzZXJ2ZXIgdG8gc3RhcnQgY2xvc2luZyBo
YW5kc2hha2UKLV9HT09EQllFX01FU1NBR0UgPSAnR29vZGJ5ZScKLQotX1BST1RPQ09MX1ZFUlNJ
T05fSFlCSTEzID0gJ2h5YmkxMycKLV9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCA9ICdoeWJpMDgn
Ci1fUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDAgPSAnaHliaTAwJwotX1BST1RPQ09MX1ZFUlNJT05f
SElYSUU3NSA9ICdoaXhpZTc1JwotCi0jIENvbnN0YW50cyBmb3IgdGhlIC0tdGxzX21vZHVsZSBm
bGFnLgotX1RMU19CWV9TVEFOREFSRF9NT0RVTEUgPSAnc3NsJwotX1RMU19CWV9QWU9QRU5TU0wg
PSAncHlvcGVuc3NsJwotCi0jIFZhbHVlcyB1c2VkIGJ5IHRoZSAtLXRscy12ZXJzaW9uIGZsYWcu
Ci1fVExTX1ZFUlNJT05fU1NMMjMgPSAnc3NsMjMnCi1fVExTX1ZFUlNJT05fU1NMMyA9ICdzc2wz
JwotX1RMU19WRVJTSU9OX1RMUzEgPSAndGxzMScKLQotCi1jbGFzcyBDbGllbnRIYW5kc2hha2VF
cnJvcihFeGNlcHRpb24pOgotICAgIHBhc3MKLQotCi1kZWYgX2J1aWxkX21ldGhvZF9saW5lKHJl
c291cmNlKToKLSAgICByZXR1cm4gJ0dFVCAlcyBIVFRQLzEuMVxyXG4nICUgcmVzb3VyY2UKLQot
Ci1kZWYgX29yaWdpbl9oZWFkZXIoaGVhZGVyLCBvcmlnaW4pOgotICAgICMgNC4xIDEzLiBjb25j
YXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgIk9yaWdpbjoiLCBhIFUrMDAyMCBTUEFDRSBjaGFyYWN0
ZXIsCi0gICAgIyBhbmQgdGhlIC9vcmlnaW4vIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93
ZXJjYXNlLCB0byAvZmllbGRzLy4KLSAgICByZXR1cm4gJyVzOiAlc1xyXG4nICUgKGhlYWRlciwg
b3JpZ2luLmxvd2VyKCkpCi0KLQotZGVmIF9mb3JtYXRfaG9zdF9oZWFkZXIoaG9zdCwgcG9ydCwg
c2VjdXJlKToKLSAgICAjIDQuMSA5LiBMZXQgL2hvc3Rwb3J0LyBiZSBhbiBlbXB0eSBzdHJpbmcu
Ci0gICAgIyA0LjEgMTAuIEFwcGVuZCB0aGUgL2hvc3QvIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVND
SUkgbG93ZXJjYXNlLCB0bwotICAgICMgL2hvc3Rwb3J0LwotICAgIGhvc3Rwb3J0ID0gaG9zdC5s
b3dlcigpCi0gICAgIyA0LjEgMTEuIElmIC9zZWN1cmUvIGlzIGZhbHNlLCBhbmQgL3BvcnQvIGlz
IG5vdCA4MCwgb3IgaWYgL3NlY3VyZS8KLSAgICAjIGlzIHRydWUsIGFuZCAvcG9ydC8gaXMgbm90
IDQ0MywgdGhlbiBhcHBlbmQgYSBVKzAwM0EgQ09MT04gY2hhcmFjdGVyCi0gICAgIyAoOikgZm9s
bG93ZWQgYnkgdGhlIHZhbHVlIG9mIC9wb3J0LywgZXhwcmVzc2VkIGFzIGEgYmFzZS10ZW4gaW50
ZWdlciwKLSAgICAjIHRvIC9ob3N0cG9ydC8KLSAgICBpZiAoKG5vdCBzZWN1cmUgYW5kIHBvcnQg
IT0gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUKSBvcgotICAgICAgICAoc2VjdXJlIGFu
ZCBwb3J0ICE9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfU0VDVVJFX1BPUlQpKToKLSAgICAg
ICAgaG9zdHBvcnQgKz0gJzonICsgc3RyKHBvcnQpCi0gICAgIyA0LjEgMTIuIGNvbmNhdGVuYXRp
b24gb2YgdGhlIHN0cmluZyAiSG9zdDoiLCBhIFUrMDAyMCBTUEFDRQotICAgICMgY2hhcmFjdGVy
LCBhbmQgL2hvc3Rwb3J0LywgdG8gL2ZpZWxkcy8uCi0gICAgcmV0dXJuICclczogJXNcclxuJyAl
IChjb21tb24uSE9TVF9IRUFERVIsIGhvc3Rwb3J0KQotCi0KLWRlZiBfcmVjZWl2ZV9ieXRlcyhz
b2NrZXQsIGxlbmd0aCk6Ci0gICAgYnl0ZXMgPSBbXQotICAgIHJlbWFpbmluZyA9IGxlbmd0aAot
ICAgIHdoaWxlIHJlbWFpbmluZyA+IDA6Ci0gICAgICAgIHJlY2VpdmVkX2J5dGVzID0gc29ja2V0
LnJlY3YocmVtYWluaW5nKQotICAgICAgICBpZiBub3QgcmVjZWl2ZWRfYnl0ZXM6Ci0gICAgICAg
ICAgICByYWlzZSBJT0Vycm9yKAotICAgICAgICAgICAgICAgICdDb25uZWN0aW9uIGNsb3NlZCBi
ZWZvcmUgcmVjZWl2aW5nIHJlcXVlc3RlZCBsZW5ndGggJwotICAgICAgICAgICAgICAgICcocmVx
dWVzdGVkICVkIGJ5dGVzIGJ1dCByZWNlaXZlZCBvbmx5ICVkIGJ5dGVzKScgJQotICAgICAgICAg
ICAgICAgIChsZW5ndGgsIGxlbmd0aCAtIHJlbWFpbmluZykpCi0gICAgICAgIGJ5dGVzLmFwcGVu
ZChyZWNlaXZlZF9ieXRlcykKLSAgICAgICAgcmVtYWluaW5nIC09IGxlbihyZWNlaXZlZF9ieXRl
cykKLSAgICByZXR1cm4gJycuam9pbihieXRlcykKLQotCi1kZWYgX2dldF9tYW5kYXRvcnlfaGVh
ZGVyKGZpZWxkcywgbmFtZSk6Ci0gICAgIiIiR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGhlYWRlciBz
cGVjaWZpZWQgYnkgbmFtZSBmcm9tIGZpZWxkcy4KLQotICAgIFRoaXMgZnVuY3Rpb24gZXhwZWN0
cyB0aGF0IHRoZXJlJ3Mgb25seSBvbmUgaGVhZGVyIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lCi0g
ICAgaW4gZmllbGRzLiBPdGhlcndpc2UsIHJhaXNlcyBhbiBDbGllbnRIYW5kc2hha2VFcnJvci4K
LSAgICAiIiIKLQotICAgIHZhbHVlcyA9IGZpZWxkcy5nZXQobmFtZS5sb3dlcigpKQotICAgIGlm
IHZhbHVlcyBpcyBOb25lIG9yIGxlbih2YWx1ZXMpID09IDA6Ci0gICAgICAgIHJhaXNlIENsaWVu
dEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgJyVzIGhlYWRlciBub3QgZm91bmQ6ICVyJyAl
IChuYW1lLCB2YWx1ZXMpKQotICAgIGlmIGxlbih2YWx1ZXMpID4gMToKLSAgICAgICAgcmFpc2Ug
Q2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAnTXVsdGlwbGUgJXMgaGVhZGVycyBm
b3VuZDogJXInICUgKG5hbWUsIHZhbHVlcykpCi0gICAgcmV0dXJuIHZhbHVlc1swXQotCi0KLWRl
ZiBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcihmaWVsZHMsIG5hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdmFsdWUsIGNhc2Vfc2Vuc2l0aXZlPUZhbHNlKToK
LSAgICAiIiJHZXRzIGFuZCB2YWxpZGF0ZXMgdGhlIHZhbHVlIG9mIHRoZSBoZWFkZXIgc3BlY2lm
aWVkIGJ5IG5hbWUgZnJvbQotICAgIGZpZWxkcy4KLQotICAgIElmIGV4cGVjdGVkX3ZhbHVlIGlz
IHNwZWNpZmllZCwgY29tcGFyZXMgZXhwZWN0ZWQgdmFsdWUgYW5kIGFjdHVhbCB2YWx1ZQotICAg
IGFuZCByYWlzZXMgYW4gQ2xpZW50SGFuZHNoYWtlRXJyb3Igb24gZmFpbHVyZS4gWW91IGNhbiBz
cGVjaWZ5IGNhc2UKLSAgICBzZW5zaXRpdmVuZXNzIGluIHRoaXMgY29tcGFyaXNvbiBieSBjYXNl
X3NlbnNpdGl2ZSBwYXJhbWV0ZXIuIFRoaXMgZnVuY3Rpb24KLSAgICBleHBlY3RzIHRoYXQgdGhl
cmUncyBvbmx5IG9uZSBoZWFkZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgaW4gZmllbGRzLgot
ICAgIE90aGVyd2lzZSwgcmFpc2VzIGFuIENsaWVudEhhbmRzaGFrZUVycm9yLgotICAgICIiIgot
Ci0gICAgdmFsdWUgPSBfZ2V0X21hbmRhdG9yeV9oZWFkZXIoZmllbGRzLCBuYW1lKQotCi0gICAg
aWYgKChjYXNlX3NlbnNpdGl2ZSBhbmQgdmFsdWUgIT0gZXhwZWN0ZWRfdmFsdWUpIG9yCi0gICAg
ICAgIChub3QgY2FzZV9zZW5zaXRpdmUgYW5kIHZhbHVlLmxvd2VyKCkgIT0gZXhwZWN0ZWRfdmFs
dWUubG93ZXIoKSkpOgotICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAg
ICAgICAgICdJbGxlZ2FsIHZhbHVlIGZvciBoZWFkZXIgJXM6ICVyIChleHBlY3RlZCkgdnMgJXIg
KGFjdHVhbCknICUKLSAgICAgICAgICAgIChuYW1lLCBleHBlY3RlZF92YWx1ZSwgdmFsdWUpKQot
Ci0KLWNsYXNzIF9UTFNTb2NrZXQob2JqZWN0KToKLSAgICAiIiJXcmFwcGVyIGZvciBhIFRMUyBj
b25uZWN0aW9uLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsCi0gICAgICAgICAgICAgICAg
IHJhd19zb2NrZXQsIHRsc19tb2R1bGUsIHRsc192ZXJzaW9uLCBkaXNhYmxlX3Rsc19jb21wcmVz
c2lvbik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxm
KQotCi0gICAgICAgIGlmIHRsc19tb2R1bGUgPT0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEU6Ci0g
ICAgICAgICAgICBpZiB0bHNfdmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fU1NMMjM6Ci0gICAgICAg
ICAgICAgICAgdmVyc2lvbiA9IHNzbC5QUk9UT0NPTF9TU0x2MjMKLSAgICAgICAgICAgIGVsaWYg
dGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1NTTDM6Ci0gICAgICAgICAgICAgICAgdmVyc2lv
biA9IHNzbC5QUk9UT0NPTF9TU0x2MwotICAgICAgICAgICAgZWxpZiB0bHNfdmVyc2lvbiA9PSBf
VExTX1ZFUlNJT05fVExTMToKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gc3NsLlBST1RPQ09M
X1RMU3YxCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoCi0gICAgICAgICAgICAgICAgICAgICdJbnZhbGlkIC0tdGxzLXZlcnNpb24gZmxhZzogJXIn
ICUgdGxzX3ZlcnNpb24pCi0KLSAgICAgICAgICAgIGlmIGRpc2FibGVfdGxzX2NvbXByZXNzaW9u
OgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAg
ICctLWRpc2FibGUtdGxzLWNvbXByZXNzaW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHNzbCAnCi0g
ICAgICAgICAgICAgICAgICAgICdtb2R1bGUnKQotCi0gICAgICAgICAgICBzZWxmLl90bHNfc29j
a2V0ID0gc3NsLndyYXBfc29ja2V0KHJhd19zb2NrZXQsIHNzbF92ZXJzaW9uPXZlcnNpb24pCi0K
LSAgICAgICAgICAgICMgUHJpbnQgY2lwaGVyIGluIHVzZS4gSGFuZHNoYWtlIGlzIGRvbmUgb24g
d3JhcF9zb2NrZXQgY2FsbC4KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCJDaXBoZXI6
ICVzIiwgc2VsZi5fdGxzX3NvY2tldC5jaXBoZXIoKSkKLSAgICAgICAgZWxpZiB0bHNfbW9kdWxl
ID09IF9UTFNfQllfUFlPUEVOU1NMOgotICAgICAgICAgICAgaWYgdGxzX3ZlcnNpb24gPT0gX1RM
U19WRVJTSU9OX1NTTDIzOgotICAgICAgICAgICAgICAgIHZlcnNpb24gPSBPcGVuU1NMLlNTTC5T
U0x2MjNfTUVUSE9ECi0gICAgICAgICAgICBlbGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lP
Tl9TU0wzOgotICAgICAgICAgICAgICAgIHZlcnNpb24gPSBPcGVuU1NMLlNTTC5TU0x2M19NRVRI
T0QKLSAgICAgICAgICAgIGVsaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1RMUzE6Ci0g
ICAgICAgICAgICAgICAgdmVyc2lvbiA9IE9wZW5TU0wuU1NMLlRMU3YxX01FVEhPRAotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAg
ICAgICAgICAgICAnSW52YWxpZCAtLXRscy12ZXJzaW9uIGZsYWc6ICVyJyAlIHRsc192ZXJzaW9u
KQotCi0gICAgICAgICAgICBjb250ZXh0ID0gT3BlblNTTC5TU0wuQ29udGV4dCh2ZXJzaW9uKQot
Ci0gICAgICAgICAgICBpZiBkaXNhYmxlX3Rsc19jb21wcmVzc2lvbjoKLSAgICAgICAgICAgICAg
ICAjIE9QX05PX0NPTVBSRVNTSU9OIGlzIG5vdCBkZWZpbmVkIGluIE9wZW5TU0wgbW9kdWxlLgot
ICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0X29wdGlvbnMoMHgwMDAyMDAwMCkKLQotICAgICAg
ICAgICAgc2VsZi5fdGxzX3NvY2tldCA9IE9wZW5TU0wuU1NMLkNvbm5lY3Rpb24oY29udGV4dCwg
cmF3X3NvY2tldCkKLSAgICAgICAgICAgICMgQ2xpZW50IG1vZGUuCi0gICAgICAgICAgICBzZWxm
Ll90bHNfc29ja2V0LnNldF9jb25uZWN0X3N0YXRlKCkKLSAgICAgICAgICAgIHNlbGYuX3Rsc19z
b2NrZXQuc2V0YmxvY2tpbmcoVHJ1ZSkKLQotICAgICAgICAgICAgIyBEbyBoYW5kc2hha2Ugbm93
IChub3QgbmVjZXNzYXJ5KS4KLSAgICAgICAgICAgIHNlbGYuX3Rsc19zb2NrZXQuZG9faGFuZHNo
YWtlKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ05vIFRM
UyBzdXBwb3J0IG1vZHVsZSBpcyBhdmFpbGFibGUnKQotCi0gICAgZGVmIHNlbmQoc2VsZiwgZGF0
YSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNfc29ja2V0LndyaXRlKGRhdGEpCi0KLSAgICBk
ZWYgc2VuZGFsbChzZWxmLCBkYXRhKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19zb2NrZXQu
c2VuZGFsbChkYXRhKQotCi0gICAgZGVmIHJlY3Yoc2VsZiwgc2l6ZT0tMSk6Ci0gICAgICAgIHJl
dHVybiBzZWxmLl90bHNfc29ja2V0LnJlYWQoc2l6ZSkKLQotICAgIGRlZiBjbG9zZShzZWxmKToK
LSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19zb2NrZXQuY2xvc2UoKQotCi0gICAgZGVmIGdldHBl
ZXJuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tldC5nZXRwZWVybmFt
ZSgpCi0KLQotY2xhc3MgQ2xpZW50SGFuZHNoYWtlQmFzZShvYmplY3QpOgotICAgICIiIkEgYmFz
ZSBjbGFzcyBmb3IgV2ViU29ja2V0IG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvcnMgZm9yIGVh
Y2gKLSAgICBwcm90b2NvbCB2ZXJzaW9uLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikK
LQotICAgIGRlZiBfcmVhZF9maWVsZHMoc2VsZik6Ci0gICAgICAgICMgNC4xIDMyLiBsZXQgL2Zp
ZWxkcy8gYmUgYSBsaXN0IG9mIG5hbWUtdmFsdWUgcGFpcnMsIGluaXRpYWxseSBlbXB0eS4KLSAg
ICAgICAgZmllbGRzID0ge30KLSAgICAgICAgd2hpbGUgVHJ1ZTogICMgIkZpZWxkIgotICAgICAg
ICAgICAgIyA0LjEgMzMuIGxldCAvbmFtZS8gYW5kIC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJh
eXMKLSAgICAgICAgICAgIG5hbWUgPSAnJwotICAgICAgICAgICAgdmFsdWUgPSAnJwotICAgICAg
ICAgICAgIyA0LjEgMzQuIHJlYWQgL25hbWUvCi0gICAgICAgICAgICBuYW1lID0gc2VsZi5fcmVh
ZF9uYW1lKCkKLSAgICAgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICAgICAgIyA0LjEgMzUuIHJlYWQgc3BhY2VzCi0gICAgICAgICAgICAjIFRP
RE8odHlvc2hpbm8pOiBTa2lwIG9ubHkgb25lIHNwYWNlIGFzIGRlc2NyaWJlZCBpbiB0aGUgc3Bl
Yy4KLSAgICAgICAgICAgIGNoID0gc2VsZi5fc2tpcF9zcGFjZXMoKQotICAgICAgICAgICAgIyA0
LjEgMzYuIHJlYWQgL3ZhbHVlLwotICAgICAgICAgICAgdmFsdWUgPSBzZWxmLl9yZWFkX3ZhbHVl
KGNoKQotICAgICAgICAgICAgIyA0LjEgMzcuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgot
ICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAg
ICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50
SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdFeHBlY3RlZCBMRiBidXQgZm91
bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3IgJwotICAgICAgICAgICAgICAgICAgICAn
aGVhZGVyICVyJyAlIChjaCwgdmFsdWUsIG5hbWUpKQotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdSZWNlaXZlZCAlciBoZWFkZXInLCBuYW1lKQotICAgICAgICAgICAgIyA0LjEgMzgu
IGFwcGVuZCBhbiBlbnRyeSB0byB0aGUgL2ZpZWxkcy8gbGlzdCB0aGF0IGhhcyB0aGUgbmFtZQot
ICAgICAgICAgICAgIyBnaXZlbiBieSB0aGUgc3RyaW5nIG9idGFpbmVkIGJ5IGludGVycHJldGlu
ZyB0aGUgL25hbWUvIGJ5dGUKLSAgICAgICAgICAgICMgYXJyYXkgYXMgYSBVVEYtOCBzdHJlYW0g
YW5kIHRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgc3RyaW5nCi0gICAgICAgICAgICAjIG9idGFpbmVk
IGJ5IGludGVycHJldGluZyB0aGUgL3ZhbHVlLyBieXRlIGFycmF5IGFzIGEgVVRGLTggYnl0ZQot
ICAgICAgICAgICAgIyBzdHJlYW0uCi0gICAgICAgICAgICBmaWVsZHMuc2V0ZGVmYXVsdChuYW1l
LCBbXSkuYXBwZW5kKHZhbHVlKQotICAgICAgICAgICAgIyA0LjEgMzkuIHJldHVybiB0byB0aGUg
IkZpZWxkIiBzdGVwIGFib3ZlCi0gICAgICAgIHJldHVybiBmaWVsZHMKLQotICAgIGRlZiBfcmVh
ZF9uYW1lKHNlbGYpOgotICAgICAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBiZSBlbXB0eSBieXRl
IGFycmF5cwotICAgICAgICBuYW1lID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
ICAgICMgNC4xIDM0LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAgICAgICAgIGNo
ID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgaWYgY2ggPT0g
J1xyJzogICMgMHgwRAotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBl
bGlmIGNoID09ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5k
c2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgTEYgd2hlbiByZWFk
aW5nIGhlYWRlciBuYW1lICVyJyAlIG5hbWUpCi0gICAgICAgICAgICBlbGlmIGNoID09ICc6Jzog
ICMgMHgzQQotICAgICAgICAgICAgICAgIHJldHVybiBuYW1lCi0gICAgICAgICAgICBlbGlmIGNo
ID49ICdBJyBhbmQgY2ggPD0gJ1onOiAgIyBSYW5nZSAweDMxIHRvIDB4NUEKLSAgICAgICAgICAg
ICAgICBjaCA9IGNocihvcmQoY2gpICsgMHgyMCkKLSAgICAgICAgICAgICAgICBuYW1lICs9IGNo
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG5hbWUgKz0gY2gKLQotICAgIGRl
ZiBfc2tpcF9zcGFjZXMoc2VsZik6Ci0gICAgICAgICMgNC4xIDM1LiByZWFkIGEgYnl0ZSBmcm9t
IHRoZSBzZXJ2ZXIKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGNoID0gX3JlY2Vp
dmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgaWYgY2ggPT0gJyAnOiAgIyAw
eDIwCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHJldHVybiBjaAotCi0g
ICAgZGVmIF9yZWFkX3ZhbHVlKHNlbGYsIGNoKToKLSAgICAgICAgIyA0LjEgMzMuIGxldCAvdmFs
dWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgICAgIHZhbHVlID0gJycKLSAgICAgICAgIyA0
LjEgMzYuIHJlYWQgYSBieXRlIGZyb20gc2VydmVyLgotICAgICAgICB3aGlsZSBUcnVlOgotICAg
ICAgICAgICAgaWYgY2ggPT0gJ1xyJzogICMgMHgwRAotICAgICAgICAgICAgICAgIHJldHVybiB2
YWx1ZQotICAgICAgICAgICAgZWxpZiBjaCA9PSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICAg
ICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdVbmV4
cGVjdGVkIExGIHdoZW4gcmVhZGluZyBoZWFkZXIgdmFsdWUgJXInICUgdmFsdWUpCi0gICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHZhbHVlICs9IGNoCi0gICAgICAgICAgICBjaCA9
IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLQotCi1kZWYgX2dldF9wZXJtZXNzYWdl
X2RlZmxhdGVfZnJhbWVyKGV4dGVuc2lvbl9yZXNwb25zZSk6Ci0gICAgIiIiVmFsaWRhdGUgdGhl
IHJlc3BvbnNlIGFuZCByZXR1cm4gYSBmcmFtZXIgb2JqZWN0IHVzaW5nIHRoZSBwYXJhbWV0ZXJz
IGluCi0gICAgdGhlIHJlc3BvbnNlLiBUaGlzIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCB0aGUgc2Vy
dmVyXy4qIHBhcmFtZXRlcnMuCi0gICAgIiIiCi0KLSAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRz
ID0gTm9uZQotICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0gTm9uZQotCi0gICAgY2xp
ZW50X21heF93aW5kb3dfYml0c19uYW1lID0gKAotICAgICAgICAgICAgUGVyTWVzc2FnZURlZmxh
dGVFeHRlbnNpb25Qcm9jZXNzb3IuCi0gICAgICAgICAgICAgICAgICAgIF9DTElFTlRfTUFYX1dJ
TkRPV19CSVRTX1BBUkFNKQotICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyX25hbWUgPSAo
Ci0gICAgICAgICAgICBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nvci4KLSAgICAg
ICAgICAgICAgICAgICAgX0NMSUVOVF9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNKQotCi0gICAg
IyBXZSBkaWRuJ3Qgc2VuZCBhbnkgc2VydmVyXy4qIHBhcmFtZXRlci4KLSAgICAjIEhhbmRsZSB0
aG9zZSBwYXJhbWV0ZXJzIGFzIGludmFsaWQgaWYgZm91bmQgaW4gdGhlIHJlc3BvbnNlLgotCi0g
ICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVlIGluIGV4dGVuc2lvbl9yZXNwb25zZS5nZXRf
cGFyYW1ldGVycygpOgotICAgICAgICBpZiBwYXJhbV9uYW1lID09IGNsaWVudF9tYXhfd2luZG93
X2JpdHNfbmFtZToKLSAgICAgICAgICAgIGlmIGNsaWVudF9tYXhfd2luZG93X2JpdHMgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnTXVsdGlwbGUgJXMgZm91bmQnICUgY2xpZW50X21heF93aW5k
b3dfYml0c19uYW1lKQotCi0gICAgICAgICAgICBwYXJzZWRfdmFsdWUgPSBfcGFyc2Vfd2luZG93
X2JpdHMocGFyYW1fdmFsdWUpCi0gICAgICAgICAgICBpZiBwYXJzZWRfdmFsdWUgaXMgTm9uZToK
LSAgICAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAg
ICAgICAgICAgICAgICdCYWQgJXM6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAoY2xp
ZW50X21heF93aW5kb3dfYml0c19uYW1lLCBwYXJhbV92YWx1ZSkpCi0gICAgICAgICAgICBjbGll
bnRfbWF4X3dpbmRvd19iaXRzID0gcGFyc2VkX3ZhbHVlCi0gICAgICAgIGVsaWYgcGFyYW1fbmFt
ZSA9PSBjbGllbnRfbm9fY29udGV4dF90YWtlb3Zlcl9uYW1lOgotICAgICAgICAgICAgaWYgY2xp
ZW50X25vX2NvbnRleHRfdGFrZW92ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGlw
bGUgJXMgZm91bmQnICUgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXJfbmFtZSkKLQotICAgICAg
ICAgICAgaWYgcGFyYW1fdmFsdWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
Q2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAnQmFkICVzOiBI
YXMgdmFsdWUgJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgIChjbGllbnRfbm9fY29udGV4
dF90YWtlb3Zlcl9uYW1lLCBwYXJhbV92YWx1ZSkpCi0gICAgICAgICAgICBjbGllbnRfbm9fY29u
dGV4dF90YWtlb3ZlciA9IFRydWUKLQotICAgIGlmIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVy
IGlzIE5vbmU6Ci0gICAgICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0gRmFsc2UKLQot
ICAgIHJldHVybiBfUGVyTWVzc2FnZURlZmxhdGVGcmFtZXIoY2xpZW50X21heF93aW5kb3dfYml0
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9ub19jb250ZXh0
X3Rha2VvdmVyKQotCi0KLWNsYXNzIENsaWVudEhhbmRzaGFrZVByb2Nlc3NvcihDbGllbnRIYW5k
c2hha2VCYXNlKToKLSAgICAiIiJXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29y
IGZvcgotICAgIGRyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wNiBhbmQgbGF0
ZXIuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0LCBvcHRpb25zKToK
LSAgICAgICAgc3VwZXIoQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29yLCBzZWxmKS5fX2luaXRfXygp
Ci0KLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0gICAgICAgIHNlbGYuX29wdGlvbnMg
PSBvcHRpb25zCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2Vy
KHNlbGYpCi0KLSAgICBkZWYgaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICAiIiJQZXJmb3JtcyBv
cGVuaW5nIGhhbmRzaGFrZSBvbiB0aGUgc3BlY2lmaWVkIHNvY2tldC4KLQotICAgICAgICBSYWlz
ZXM6Ci0gICAgICAgICAgICBDbGllbnRIYW5kc2hha2VFcnJvcjogaGFuZHNoYWtlIGZhaWxlZC4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgcmVxdWVzdF9saW5lID0gX2J1aWxkX21ldGhvZF9saW5l
KHNlbGYuX29wdGlvbnMucmVzb3VyY2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xp
ZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlIFJlcXVlc3QtTGluZTogJXInLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdF9saW5lKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFs
bChyZXF1ZXN0X2xpbmUpCi0KLSAgICAgICAgZmllbGRzID0gW10KLSAgICAgICAgZmllbGRzLmFw
cGVuZChfZm9ybWF0X2hvc3RfaGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2
ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQsCi0gICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpKQotICAgICAgICBmaWVsZHMuYXBwZW5kKF9VUEdS
QURFX0hFQURFUikKLSAgICAgICAgZmllbGRzLmFwcGVuZChfQ09OTkVDVElPTl9IRUFERVIpCi0g
ICAgICAgIGlmIHNlbGYuX29wdGlvbnMub3JpZ2luIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
aWYgc2VsZi5fb3B0aW9ucy5wcm90b2NvbF92ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZ
QkkwODoKLSAgICAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKAotICAg
ICAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9PUklHSU5fSEVBREVSLAotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLm9yaWdpbikpCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFkZXIoY29tbW9uLk9S
SUdJTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLm9yaWdpbikpCi0KLSAgICAgICAgb3JpZ2luYWxfa2V5ID0gb3MudXJh
bmRvbSgxNikKLSAgICAgICAgc2VsZi5fa2V5ID0gYmFzZTY0LmI2NGVuY29kZShvcmlnaW5hbF9r
ZXkpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICclczogJXIgKCVz
KScsCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSLAotICAgICAg
ICAgICAgc2VsZi5fa2V5LAotICAgICAgICAgICAgdXRpbC5oZXhpZnkob3JpZ2luYWxfa2V5KSkK
LSAgICAgICAgZmllbGRzLmFwcGVuZCgKLSAgICAgICAgICAgICclczogJXNcclxuJyAlIChjb21t
b24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSLCBzZWxmLl9rZXkpKQotCi0gICAgICAgIGlmIHNl
bGYuX29wdGlvbnMudmVyc2lvbl9oZWFkZXIgPiAwOgotICAgICAgICAgICAgZmllbGRzLmFwcGVu
ZCgnJXM6ICVkXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnZl
cnNpb25faGVhZGVyKSkKLSAgICAgICAgZWxpZiBzZWxmLl9vcHRpb25zLnByb3RvY29sX3ZlcnNp
b24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTA4OgotICAgICAgICAgICAgZmllbGRzLmFwcGVu
ZCgnJXM6ICVkXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uVkVSU0lPTl9I
WUJJMDgpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnJXM6ICVk
XHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVT
VCkpCi0KLSAgICAgICAgZXh0ZW5zaW9uc190b19yZXF1ZXN0ID0gW10KLQotICAgICAgICBpZiBz
ZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWU6Ci0gICAgICAgICAgICBleHRlbnNpb25zX3RvX3Jl
cXVlc3QuYXBwZW5kKAotICAgICAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
Y29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKSkKLQotICAgICAgICBpZiBzZWxmLl9vcHRp
b25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGU6Ci0gICAgICAgICAgICBleHRlbnNpb24gPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVT
U0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgICAgICMgQWNjZXB0IHRoZSBjbGllbnRf
bWF4X3dpbmRvd19iaXRzIGV4dGVuc2lvbiBwYXJhbWV0ZXIgYnkgZGVmYXVsdC4KLSAgICAgICAg
ICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAgICAgICBQZXJNZXNz
YWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nvci4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgTm9u
ZSkKLSAgICAgICAgICAgIGV4dGVuc2lvbnNfdG9fcmVxdWVzdC5hcHBlbmQoZXh0ZW5zaW9uKQot
Ci0gICAgICAgIGlmIGxlbihleHRlbnNpb25zX3RvX3JlcXVlc3QpICE9IDA6Ci0gICAgICAgICAg
ICBmaWVsZHMuYXBwZW5kKAotICAgICAgICAgICAgICAgICclczogJXNcclxuJyAlCi0gICAgICAg
ICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLAotICAgICAg
ICAgICAgICAgICBjb21tb24uZm9ybWF0X2V4dGVuc2lvbnMoZXh0ZW5zaW9uc190b19yZXF1ZXN0
KSkpCi0KLSAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKLSAgICAgICAgICAgIHNlbGYuX3Nv
Y2tldC5zZW5kYWxsKGZpZWxkKQotCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxu
JykKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbnQgY2xpZW50XCdzIG9wZW5pbmcg
aGFuZHNoYWtlIGhlYWRlcnM6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxk
cykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTdGFydCByZWFkaW5nIFN0YXR1cy1MaW5l
JykKLQotICAgICAgICBzdGF0dXNfbGluZSA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAg
ICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAg
IHN0YXR1c19saW5lICs9IGNoCi0gICAgICAgICAgICBpZiBjaCA9PSAnXG4nOgotICAgICAgICAg
ICAgICAgIGJyZWFrCi0KLSAgICAgICAgbSA9IHJlLm1hdGNoKCdIVFRQL1xcZCtcXC5cXGQrIChc
XGRcXGRcXGQpIC4qXHJcbicsIHN0YXR1c19saW5lKQotICAgICAgICBpZiBtIGlzIE5vbmU6Ci0g
ICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAn
V3Jvbmcgc3RhdHVzIGxpbmUgZm9ybWF0OiAlcicgJSBzdGF0dXNfbGluZSkKLSAgICAgICAgc3Rh
dHVzX2NvZGUgPSBtLmdyb3VwKDEpCi0gICAgICAgIGlmIHN0YXR1c19jb2RlICE9ICcxMDEnOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdVbmV4cGVjdGVkIHN0YXR1cyBjb2RlICVz
IHdpdGggZm9sbG93aW5nICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVhZGVy
czogJXInLCBzdGF0dXNfY29kZSwgc2VsZi5fcmVhZF9maWVsZHMoKSkKLSAgICAgICAgICAgIHJh
aXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBIVFRQ
IHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXInICUgc3RhdHVzX2NvZGUpCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCB2YWxpZCBTdGF0dXMtTGluZScpCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3RhcnQgcmVhZGluZyBoZWFkZXJzIHVudGlsIHdlIHNlZSBh
biBlbXB0eSBsaW5lJykKLQotICAgICAgICBmaWVsZHMgPSBzZWxmLl9yZWFkX2ZpZWxkcygpCi0K
LSAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgIGlm
IGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVy
cm9yKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBMRiBidXQgZm91bmQgJXIgd2hpbGUgcmVh
ZGluZyB2YWx1ZSAlciBmb3IgaGVhZGVyICcKLSAgICAgICAgICAgICAgICAnbmFtZSAlcicgJSAo
Y2gsIHZhbHVlLCBuYW1lKSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVk
IGFuIGVtcHR5IGxpbmUnKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlcnZlclwncyBv
cGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsIGZpZWxkcykKLQotICAgICAgICBfdmFsaWRh
dGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywKLSAgICAgICAgICAgIGNv
bW1vbi5VUEdSQURFX0hFQURFUiwKLSAgICAgICAgICAgIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFE
RV9UWVBFLAotICAgICAgICAgICAgRmFsc2UpCi0KLSAgICAgICAgX3ZhbGlkYXRlX21hbmRhdG9y
eV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsCi0gICAgICAgICAgICBjb21tb24uQ09OTkVD
VElPTl9IRUFERVIsCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUs
Ci0gICAgICAgICAgICBGYWxzZSkKLQotICAgICAgICBhY2NlcHQgPSBfZ2V0X21hbmRhdG9yeV9o
ZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsIGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9I
RUFERVIpCi0KLSAgICAgICAgIyBWYWxpZGF0ZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBi
aW5hcnlfYWNjZXB0ID0gYmFzZTY0LmI2NGRlY29kZShhY2NlcHQpCi0gICAgICAgIGV4Y2VwdCBU
eXBlRXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAg
ICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVyICVzOiAlcicgJQotICAgICAgICAgICAgICAg
IChjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLCBhY2NlcHQpKQotCi0gICAgICAg
IGlmIGxlbihiaW5hcnlfYWNjZXB0KSAhPSAyMDoKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhh
bmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdEZWNvZGVkIHZhbHVlIG9mICVzIGlzIG5v
dCAyMC1ieXRlIGxvbmcnICUKLSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9B
Q0NFUFRfSEVBREVSKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAg
ICdSZXNwb25zZSBmb3IgY2hhbGxlbmdlIDogJXIgKCVzKScsCi0gICAgICAgICAgICBhY2NlcHQs
IHV0aWwuaGV4aWZ5KGJpbmFyeV9hY2NlcHQpKQotCi0gICAgICAgIGJpbmFyeV9leHBlY3RlZF9h
Y2NlcHQgPSB1dGlsLnNoYTFfaGFzaCgKLSAgICAgICAgICAgIHNlbGYuX2tleSArIGNvbW1vbi5X
RUJTT0NLRVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgpCi0gICAgICAgIGV4cGVjdGVkX2FjY2VwdCA9
IGJhc2U2NC5iNjRlbmNvZGUoYmluYXJ5X2V4cGVjdGVkX2FjY2VwdCkKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRXhwZWN0ZWQgcmVzcG9uc2UgZm9yIGNoYWxs
ZW5nZTogJXIgKCVzKScsCi0gICAgICAgICAgICBleHBlY3RlZF9hY2NlcHQsIHV0aWwuaGV4aWZ5
KGJpbmFyeV9leHBlY3RlZF9hY2NlcHQpKQotCi0gICAgICAgIGlmIGFjY2VwdCAhPSBleHBlY3Rl
ZF9hY2NlcHQ6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAg
ICAgICAgICAgICAnSW52YWxpZCAlcyBoZWFkZXI6ICVyIChleHBlY3RlZDogJXMpJyAlCi0gICAg
ICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIsIGFjY2VwdCwg
ZXhwZWN0ZWRfYWNjZXB0KSkKLQotICAgICAgICBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gRmFs
c2UKLSAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRlX2FjY2VwdGVkID0gRmFsc2UKLQotICAgICAg
ICBleHRlbnNpb25zX2hlYWRlciA9IGZpZWxkcy5nZXQoCi0gICAgICAgICAgICBjb21tb24uU0VD
X1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUi5sb3dlcigpKQotICAgICAgICBhY2NlcHRlZF9l
eHRlbnNpb25zID0gW10KLSAgICAgICAgaWYgZXh0ZW5zaW9uc19oZWFkZXIgaXMgbm90IE5vbmUg
YW5kIGxlbihleHRlbnNpb25zX2hlYWRlcikgIT0gMDoKLSAgICAgICAgICAgIGFjY2VwdGVkX2V4
dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucyhleHRlbnNpb25zX2hlYWRlclswXSkK
LQotICAgICAgICAjIFRPRE8oYmFzaGkpOiBTdXBwb3J0IHRoZSBuZXcgc3R5bGUgcGVyZnJhbWUg
Y29tcHJlc3Npb24gZXh0ZW5zaW9uLgotICAgICAgICBmb3IgZXh0ZW5zaW9uIGluIGFjY2VwdGVk
X2V4dGVuc2lvbnM6Ci0gICAgICAgICAgICBleHRlbnNpb25fbmFtZSA9IGV4dGVuc2lvbi5uYW1l
KCkKLSAgICAgICAgICAgIGlmIChleHRlbnNpb25fbmFtZSA9PSBjb21tb24uREVGTEFURV9GUkFN
RV9FWFRFTlNJT04gYW5kCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2Zy
YW1lKToKLSAgICAgICAgICAgICAgICBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gVHJ1ZQotICAg
ICAgICAgICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3Nvcihl
eHRlbnNpb24pCi0gICAgICAgICAgICAgICAgdW51c2VkX2V4dGVuc2lvbl9yZXNwb25zZSA9IHBy
b2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgICAgICAgICBzZWxmLl9v
cHRpb25zLmRlZmxhdGVfZnJhbWUgPSBwcm9jZXNzb3IKLSAgICAgICAgICAgICAgICBjb250aW51
ZQotICAgICAgICAgICAgZWxpZiAoZXh0ZW5zaW9uX25hbWUgPT0gY29tbW9uLlBFUk1FU1NBR0Vf
REVGTEFURV9FWFRFTlNJT04gYW5kCi0gICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVz
ZV9wZXJtZXNzYWdlX2RlZmxhdGUpOgotICAgICAgICAgICAgICAgIHBlcm1lc3NhZ2VfZGVmbGF0
ZV9hY2NlcHRlZCA9IFRydWUKLQotICAgICAgICAgICAgICAgIGZyYW1lciA9IF9nZXRfcGVybWVz
c2FnZV9kZWZsYXRlX2ZyYW1lcihleHRlbnNpb24pCi0gICAgICAgICAgICAgICAgZnJhbWVyLnNl
dF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRydWUpCi0gICAgICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlID0gZnJhbWVyCi0gICAgICAgICAgICAgICAg
Y29udGludWUKLQotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAg
ICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXh0ZW5zaW9uICVyJyAlIGV4dGVuc2lvbl9uYW1lKQot
Ci0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgYW5kIG5vdCBkZWZsYXRl
X2ZyYW1lX2FjY2VwdGVkKToKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9y
KAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgJXMsIGJ1dCB0aGUgc2VydmVyIHJlamVjdGVk
IGl0JyAlCi0gICAgICAgICAgICAgICAgY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQot
Ci0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUgYW5kCi0g
ICAgICAgICAgICBub3QgcGVybWVzc2FnZV9kZWZsYXRlX2FjY2VwdGVkKToKLSAgICAgICAgICAg
IHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnUmVxdWVz
dGVkICVzLCBidXQgdGhlIHNlcnZlciByZWplY3RlZCBpdCcgJQotICAgICAgICAgICAgICAgICAg
ICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLQotICAgICAgICAjIFRPRE8o
dHlvc2hpbm8pOiBIYW5kbGUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbAotICAgICAgICAjIFRPRE8o
dHlvc2hpbm8pOiBIYW5kbGUgQ29va2llLCBldGMuCi0KLQotY2xhc3MgQ2xpZW50SGFuZHNoYWtl
UHJvY2Vzc29ySHliaTAwKENsaWVudEhhbmRzaGFrZUJhc2UpOgotICAgICIiIldlYlNvY2tldCBv
cGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yCi0gICAgZHJhZnQtaWV0Zi1oeWJpLXRoZXdl
YnNvY2tldHByb3RvY29sLTAwIChlcXVpdmFsZW50IHRvCi0gICAgZHJhZnQtaGl4aWUtdGhld2Vi
c29ja2V0cHJvdG9jb2wtNzYpLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNv
Y2tldCwgb3B0aW9ucyk6Ci0gICAgICAgIHN1cGVyKENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvckh5
YmkwMCwgc2VsZikuX19pbml0X18oKQotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAot
ICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9
IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIGlmIChzZWxmLl9vcHRpb25z
LmRlZmxhdGVfZnJhbWUgb3IKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3Nh
Z2VfZGVmbGF0ZSk6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdIeUJpIDAwIGRvZXNu
XCd0IHN1cHBvcnQgZXh0ZW5zaW9ucy4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAg
IGRlZiBoYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgICIiIlBlcmZvcm1zIG9wZW5pbmcgaGFuZHNo
YWtlIG9uIHRoZSBzcGVjaWZpZWQgc29ja2V0LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAg
ICAgIENsaWVudEhhbmRzaGFrZUVycm9yOiBoYW5kc2hha2UgZmFpbGVkLgotICAgICAgICAiIiIK
LQotICAgICAgICAjIDQuMSA1LiBzZW5kIHJlcXVlc3QgbGluZS4KLSAgICAgICAgc2VsZi5fc29j
a2V0LnNlbmRhbGwoX2J1aWxkX21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMucmVzb3VyY2UpKQot
ICAgICAgICAjIDQuMSA2LiBMZXQgL2ZpZWxkcy8gYmUgYW4gZW1wdHkgbGlzdCBvZiBzdHJpbmdz
LgotICAgICAgICBmaWVsZHMgPSBbXQotICAgICAgICAjIDQuMSA3LiBBZGQgdGhlIHN0cmluZyAi
VXBncmFkZTogV2ViU29ja2V0IiB0byAvZmllbGRzLy4KLSAgICAgICAgZmllbGRzLmFwcGVuZChf
VVBHUkFERV9IRUFERVJfSElYSUU3NSkKLSAgICAgICAgIyA0LjEgOC4gQWRkIHRoZSBzdHJpbmcg
IkNvbm5lY3Rpb246IFVwZ3JhZGUiIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5k
KF9DT05ORUNUSU9OX0hFQURFUikKLSAgICAgICAgIyA0LjEgOS0xMi4gQWRkIEhvc3Q6IGZpZWxk
IHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9mb3JtYXRfaG9zdF9oZWFkZXIo
Ci0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAotICAgICAgICAgICAgc2Vs
Zi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3Rs
cykpCi0gICAgICAgICMgNC4xIDEzLiBBZGQgT3JpZ2luOiBmaWVsZCB0byAvZmllbGRzLy4KLSAg
ICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMub3JpZ2luOgotICAgICAgICAgICAgcmFpc2UgQ2xp
ZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ1NwZWNpZnkgdGhlIG9yaWdpbiBv
ZiB0aGUgY29ubmVjdGlvbiBieSAtLW9yaWdpbiBmbGFnJykKLSAgICAgICAgZmllbGRzLmFwcGVu
ZChfb3JpZ2luX2hlYWRlcihjb21tb24uT1JJR0lOX0hFQURFUiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLm9yaWdpbikpCi0gICAgICAgICMgVE9E
TzogNC4xIDE0IEFkZCBTZWMtV2ViU29ja2V0LVByb3RvY29sOiBmaWVsZCB0byAvZmllbGRzLy4K
LSAgICAgICAgIyBUT0RPOiA0LjEgMTUgQWRkIGNvb2tpZSBoZWFkZXJzIHRvIC9maWVsZHMvLgot
Ci0gICAgICAgICMgNC4xIDE2LTIzLiBBZGQgU2VjLVdlYlNvY2tldC1LZXk8bj4gdG8gL2ZpZWxk
cy8uCi0gICAgICAgIHNlbGYuX251bWJlcjEsIGtleTEgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vi
c29ja2V0X2tleSgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMTogJWQnLCBz
ZWxmLl9udW1iZXIxKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCclczogJXNcclxuJyAlIChjb21t
b24uU0VDX1dFQlNPQ0tFVF9LRVkxX0hFQURFUiwga2V5MSkpCi0gICAgICAgIHNlbGYuX251bWJl
cjIsIGtleTIgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCi0gICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMjogJWQnLCBzZWxmLl9udW1iZXIyKQotICAgICAgICBm
aWVsZHMuYXBwZW5kKCclczogJXNcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkyX0hF
QURFUiwga2V5MikpCi0KLSAgICAgICAgZmllbGRzLmFwcGVuZCgnJXM6IDBcclxuJyAlIGNvbW1v
bi5TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUikKLQotICAgICAgICAjIDQuMSAyNC4gRm9yIGVh
Y2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBhIHJhbmRvbSBvcmRlcjogc2VuZCB0aGUKLSAgICAg
ICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRGLTgsIGZvbGxvd2VkIGJ5IGEgVVRGLTggZW5jb2Rl
ZCBVKzAwMEQgQ0FSUklBR0UKLSAgICAgICAgIyBSRVRVUk4gVSswMDBBIExJTkUgRkVFRCBjaGFy
YWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAgIHJhbmRvbS5zaHVmZmxlKGZpZWxkcykKLSAgICAg
ICAgZm9yIGZpZWxkIGluIGZpZWxkczoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxs
KGZpZWxkKQotICAgICAgICAjIDQuMSAyNS4gc2VuZCBhIFVURi04LWVuY29kZWQgVSswMDBEIENB
UlJJQUdFIFJFVFVSTiBVKzAwMEEgTElORSBGRUVECi0gICAgICAgICMgY2hhcmFjdGVyIHBhaXIg
KENSTEYpLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCi0gICAgICAgICMg
NC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9t
IGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVn
ZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgotICAgICAgICBzZWxmLl9rZXkzID0g
c2VsZi5fZ2VuZXJhdGVfa2V5MygpCi0gICAgICAgICMgNC4xIDI3LiBzZW5kIC9rZXkzLyB0byB0
aGUgc2VydmVyLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9rZXkzKQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnS2V5MzogJXIgKCVzKScsIHNl
bGYuX2tleTMsIHV0aWwuaGV4aWZ5KHNlbGYuX2tleTMpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5pbmZvKCdTZW50IGhhbmRzaGFrZScpCi0KLSAgICAgICAgIyA0LjEgMjguIFJlYWQgYnl0ZXMg
ZnJvbSB0aGUgc2VydmVyIHVudGlsIGVpdGhlciB0aGUgY29ubmVjdGlvbgotICAgICAgICAjIGNs
b3Nlcywgb3IgYSAweDBBIGJ5dGUgaXMgcmVhZC4gbGV0IC9maWVsZC8gYmUgdGhlc2UgYnl0ZXMs
IGluY2x1ZGluZwotICAgICAgICAjIHRoZSAweDBBIGJ5dGVzLgotICAgICAgICBmaWVsZCA9ICcn
Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNl
bGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGZpZWxkICs9IGNoCi0gICAgICAgICAgICBpZiBj
aCA9PSAnXG4nOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICMgaWYgL2ZpZWxkLyBp
cyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0ZXMgbG9uZywgb3IgaWYgdGhlIGxhc3QKLSAgICAgICAg
IyB0d28gYnl0ZXMgYXJlbid0IDB4MEQgYW5kIDB4MEEgcmVzcGVjdGl2ZWx5LCBvciBpZiBpdCBk
b2VzIG5vdAotICAgICAgICAjIGNvbnRhaW4gYXQgbGVhc3QgdHdvIDB4MjAgYnl0ZXMsIHRoZW4g
ZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24KLSAgICAgICAgIyBhbmQgYWJvcnQgdGhlc2Ug
c3RlcHMuCi0gICAgICAgIGlmIGxlbihmaWVsZCkgPCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgn
XHJcbicpOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoJ1dyb25nIHN0
YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgbSA9IHJlLm1hdGNoKCdbXiBdKiAoW14g
XSopIC4qJywgZmllbGQpCi0gICAgICAgIGlmIG0gaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNl
IENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdObyBIVFRQIHN0YXR1cyBj
b2RlIGZvdW5kIGluIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgIyA0LjEgMjku
IGxldCAvY29kZS8gYmUgdGhlIHN1YnN0cmluZyBvZiAvZmllbGQvIHRoYXQgc3RhcnRzIGZyb20g
dGhlCi0gICAgICAgICMgYnl0ZSBhZnRlciB0aGUgZmlyc3QgMHgyMCBieXRlLCBhbmQgZW5kcyB3
aXRoIHRoZSBieXRlIGJlZm9yZSB0aGUKLSAgICAgICAgIyBzZWNvbmQgMHgyMCBieXRlLgotICAg
ICAgICBjb2RlID0gbS5ncm91cCgxKQotICAgICAgICAjIDQuMSAzMC4gaWYgL2NvZGUvIGlzIG5v
dCB0aHJlZSBieXRlcyBsb25nLCBvciBpZiBhbnkgb2YgdGhlIGJ5dGVzIGluCi0gICAgICAgICMg
L2NvZGUvIGFyZSBub3QgaW4gdGhlIHJhbmdlIDB4MzAgdG8gMHg5MCwgdGhlbiBmYWlsIHRoZSBX
ZWJTb2NrZXQKLSAgICAgICAgIyBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAg
ICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTldWzAtOV0nLCBjb2RlKToKLSAgICAgICAg
ICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdIVFRQIHN0
YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdpdCBpbiBzdGF0dXMgbGluZTogJXInICUKLSAg
ICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQotICAgICAgICAjIDQuMSAzMS4gaWYgL2NvZGUv
LCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEwMSIsIHRoZW4gbW92ZSB0byB0aGUKLSAgICAg
ICAgIyBuZXh0IHN0ZXAuCi0gICAgICAgIGlmIGNvZGUgIT0gJzEwMSc6Ci0gICAgICAgICAgICBy
YWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgSFRU
UCBzdGF0dXMgY29kZSAxMDEgYnV0IGZvdW5kICVyIGluIHN0YXR1cyBsaW5lOiAnCi0gICAgICAg
ICAgICAgICAgJyVyJyAlIChjb2RlLCBmaWVsZCkpCi0gICAgICAgICMgNC4xIDMyLTM5LiByZWFk
IGZpZWxkcyBpbnRvIC9maWVsZHMvCi0gICAgICAgIGZpZWxkcyA9IHNlbGYuX3JlYWRfZmllbGRz
KCkKLSAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMgcHJvY2Vzc2luZ18KLSAgICAgICAgIyByZWFk
IGEgYnl0ZSBmcm9tIHNlcnZlcgotICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3Nv
Y2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFp
c2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlcicgJSBjaCkK
LSAgICAgICAgIyA0LjEgNDEuIGNoZWNrIC9maWVsZHMvCi0gICAgICAgICMgVE9ETyh1a2FpKTog
cHJvdG9jb2wKLSAgICAgICAgIyBpZiB0aGUgZW50cnkncyBuYW1lIGlzICJ1cGdyYWRlIgotICAg
ICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4YWN0bHkgZXF1YWwgdG8gdGhlIHN0cmluZyAi
V2ViU29ja2V0IiwKLSAgICAgICAgIyAgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlv
biBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVh
ZGVyKAotICAgICAgICAgICAgZmllbGRzLAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVB
REVSLAotICAgICAgICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEVfSElYSUU3NSwK
LSAgICAgICAgICAgIFRydWUpCi0gICAgICAgICMgaWYgdGhlIGVudHJ5J3MgbmFtZSBpcyAiY29u
bmVjdGlvbiIKLSAgICAgICAgIyAgaWYgdGhlIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93
ZXJjYXNlLCBpcyBub3QgZXhhY3RseSBlcXVhbAotICAgICAgICAjICB0byB0aGUgc3RyaW5nICJ1
cGdyYWRlIiwgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQKLSAgICAgICAg
IyAgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVy
KAotICAgICAgICAgICAgZmllbGRzLAotICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVB
REVSLAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFLAotICAgICAg
ICAgICAgRmFsc2UpCi0KLSAgICAgICAgb3JpZ2luID0gX2dldF9tYW5kYXRvcnlfaGVhZGVyKAot
ICAgICAgICAgICAgZmllbGRzLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9PUklHSU5fSEVBREVSKQot
Ci0gICAgICAgIGxvY2F0aW9uID0gX2dldF9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAg
ZmllbGRzLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9MT0NBVElPTl9IRUFERVIpCi0KLSAgICAgICAg
IyBUT0RPKHVrYWkpOiBjaGVjayBvcmlnaW4sIGxvY2F0aW9uLCBjb29raWUsIC4uCi0KLSAgICAg
ICAgIyA0LjEgNDIuIGxldCAvY2hhbGxlbmdlLyBiZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiAvbnVt
YmVyXzEvLAotICAgICAgICAjIGV4cHJlc3NlZCBhcyBhIGJpZyBlbmRpYW4gMzIgYml0IGludGVn
ZXIsIC9udW1iZXJfMi8sIGV4cHJlc3NlZAotICAgICAgICAjIGFzIGJpZyBlbmRpYW4gMzIgYml0
IGludGVnZXIsIGFuZCB0aGUgZWlnaHQgYnl0ZXMgb2YgL2tleV8zLyBpbiB0aGUKLSAgICAgICAg
IyBvcmRlciB0aGV5IHdlcmUgc2VudCBvbiB0aGUgd2lyZS4KLSAgICAgICAgY2hhbGxlbmdlID0g
c3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVtYmVyMSkKLSAgICAgICAgY2hhbGxlbmdlICs9IHN0
cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjIpCi0gICAgICAgIGNoYWxsZW5nZSArPSBzZWxm
Ll9rZXkzCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0NoYWxs
ZW5nZTogJXIgKCVzKScsIGNoYWxsZW5nZSwgdXRpbC5oZXhpZnkoY2hhbGxlbmdlKSkKLQotICAg
ICAgICAjIDQuMSA0My4gbGV0IC9leHBlY3RlZC8gYmUgdGhlIE1ENSBmaW5nZXJwcmludCBvZiAv
Y2hhbGxlbmdlLyBhcyBhCi0gICAgICAgICMgYmlnLWVuZGlhbiAxMjggYml0IHN0cmluZy4KLSAg
ICAgICAgZXhwZWN0ZWQgPSB1dGlsLm1kNV9oYXNoKGNoYWxsZW5nZSkuZGlnZXN0KCkKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0V4cGVjdGVkIGNoYWxsZW5nZSBy
ZXNwb25zZTogJXIgKCVzKScsCi0gICAgICAgICAgICBleHBlY3RlZCwgdXRpbC5oZXhpZnkoZXhw
ZWN0ZWQpKQotCi0gICAgICAgICMgNC4xIDQ0LiByZWFkIHNpeHRlZW4gYnl0ZXMgZnJvbSB0aGUg
c2VydmVyLgotICAgICAgICAjIGxldCAvcmVwbHkvIGJlIHRob3NlIGJ5dGVzLgotICAgICAgICBy
ZXBseSA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMTYpCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdBY3R1YWwgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAo
JXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5KSkKLQotICAgICAgICAjIDQuMSA0NS4gaWYg
L3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFsIC9leHBlY3RlZC8sIHRoZW4gZmFpbAotICAg
ICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0g
ICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5OgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFu
ZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0JhZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVy
IChleHBlY3RlZCkgIT0gJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAoZXhwZWN0ZWQs
IHJlcGx5KSkKLSAgICAgICAgIyA0LjEgNDYuIFRoZSAqV2ViU29ja2V0IGNvbm5lY3Rpb24gaXMg
ZXN0YWJsaXNoZWQqLgotCi0gICAgZGVmIF9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleShzZWxm
KToKLSAgICAgICAgIyA0LjEgMTYuIGxldCAvc3BhY2VzX24vIGJlIGEgcmFuZG9tIGludGVnZXIg
ZnJvbSAxIHRvIDEyIGluY2x1c2l2ZS4KLSAgICAgICAgc3BhY2VzID0gcmFuZG9tLnJhbmRpbnQo
MSwgMTIpCi0gICAgICAgICMgNC4xIDE3LiBsZXQgL21heF9uLyBiZSB0aGUgbGFyZ2VzdCBpbnRl
Z2VyIG5vdCBncmVhdGVyIHRoYW4KLSAgICAgICAgIyAgNCwyOTQsOTY3LDI5NSBkaXZpZGVkIGJ5
IC9zcGFjZXNfbi8uCi0gICAgICAgIG1heG51bSA9IDQyOTQ5NjcyOTUgLyBzcGFjZXMKLSAgICAg
ICAgIyA0LjEgMTguIGxldCAvbnVtYmVyX24vIGJlIGEgcmFuZG9tIGludGVnZXIgZnJvbSAwIHRv
IC9tYXhfbi8KLSAgICAgICAgIyBpbmNsdXNpdmUuCi0gICAgICAgIG51bWJlciA9IHJhbmRvbS5y
YW5kaW50KDAsIG1heG51bSkKLSAgICAgICAgIyA0LjEgMTkuIGxldCAvcHJvZHVjdF9uLyBiZSB0
aGUgcmVzdWx0IG9mIG11bHRpcGx5aW5nIC9udW1iZXJfbi8gYW5kCi0gICAgICAgICMgL3NwYWNl
c19uLyB0b2dldGhlci4KLSAgICAgICAgcHJvZHVjdCA9IG51bWJlciAqIHNwYWNlcwotICAgICAg
ICAjIDQuMSAyMC4gbGV0IC9rZXlfbi8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiAvcHJvZHVj
dF9uLywgZXhwcmVzc2VkCi0gICAgICAgICMgaW4gYmFzZSB0ZW4gdXNpbmcgdGhlIG51bWVyYWxz
IGluIHRoZSByYW5nZSBVKzAwMzAgRElHSVQgWkVSTyAoMCkgdG8KLSAgICAgICAgIyBVKzAwMzkg
RElHSVQgTklORSAoOSkuCi0gICAgICAgIGtleSA9IHN0cihwcm9kdWN0KQotICAgICAgICAjIDQu
MSAyMS4gaW5zZXJ0IGJldHdlZW4gb25lIGFuZCB0d2VsdmUgcmFuZG9tIGNoYXJhY3RlcnMgZnJv
bSB0aGUKLSAgICAgICAgIyByYW5nZSBVKzAwMjEgdG8gVSswMDJGIGFuZCBVKzAwM0EgdG8gVSsw
MDdFIGludG8gL2tleV9uLyBhdCByYW5kb20KLSAgICAgICAgIyBwb3NpdGlvbnMuCi0gICAgICAg
IGF2YWlsYWJsZV9jaGFycyA9IHJhbmdlKDB4MjEsIDB4MmYgKyAxKSArIHJhbmdlKDB4M2EsIDB4
N2UgKyAxKQotICAgICAgICBuID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCi0gICAgICAgIGZvciBf
IGluIHhyYW5nZShuKToKLSAgICAgICAgICAgIGNoID0gcmFuZG9tLmNob2ljZShhdmFpbGFibGVf
Y2hhcnMpCi0gICAgICAgICAgICBwb3MgPSByYW5kb20ucmFuZGludCgwLCBsZW4oa2V5KSkKLSAg
ICAgICAgICAgIGtleSA9IGtleVswOnBvc10gKyBjaHIoY2gpICsga2V5W3BvczpdCi0gICAgICAg
ICMgNC4xIDIyLiBpbnNlcnQgL3NwYWNlc19uLyBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVycyBpbnRv
IC9rZXlfbi8gYXQKLSAgICAgICAgIyByYW5kb20gcG9zaXRpb25zIG90aGVyIHRoYW4gc3RhcnQg
b3IgZW5kIG9mIHRoZSBzdHJpbmcuCi0gICAgICAgIGZvciBfIGluIHhyYW5nZShzcGFjZXMpOgot
ICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQoMSwgbGVuKGtleSkgLSAxKQotICAgICAg
ICAgICAga2V5ID0ga2V5WzA6cG9zXSArICcgJyArIGtleVtwb3M6XQotICAgICAgICByZXR1cm4g
bnVtYmVyLCBrZXkKLQotICAgIGRlZiBfZ2VuZXJhdGVfa2V5MyhzZWxmKToKLSAgICAgICAgIyA0
LjEgMjYuIGxldCAva2V5My8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiBlaWdodCByYW5kb20g
Ynl0ZXMgKG9yCi0gICAgICAgICMgZXF1aXZhbGVudGx5LCBhIHJhbmRvbSA2NCBiaXQgaW50ZWdl
ciBlbmNvZGVkIGluIGEgYmlnLWVuZGlhbiBvcmRlcikuCi0gICAgICAgIHJldHVybiAnJy5qb2lu
KFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIF8gaW4geHJhbmdlKDgpXSkKLQotCi1j
bGFzcyBDbGllbnRDb25uZWN0aW9uKG9iamVjdCk6Ci0gICAgIiIiQSB3cmFwcGVyIGZvciBzb2Nr
ZXQgb2JqZWN0IHRvIHByb3ZpZGUgdGhlIG1wX2Nvbm4gaW50ZXJmYWNlLgotICAgIG1vZF9weXdl
YnNvY2tldCBsaWJyYXJ5IGlzIGRlc2lnbmVkIHRvIGJlIHdvcmtpbmcgb24gQXBhY2hlIG1vZF9w
eXRob24ncwotICAgIG1wX2Nvbm4gb2JqZWN0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHNvY2tldCk6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAgZGVm
IHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChkYXRhKQot
Ci0gICAgZGVmIHJlYWQoc2VsZiwgbik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9zb2NrZXQucmVj
dihuKQotCi0gICAgZGVmIGdldF9yZW1vdGVfYWRkcihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3NvY2tldC5nZXRwZWVybmFtZSgpCi0gICAgcmVtb3RlX2FkZHIgPSBwcm9wZXJ0eShnZXRf
cmVtb3RlX2FkZHIpCi0KLQotY2xhc3MgQ2xpZW50UmVxdWVzdChvYmplY3QpOgotICAgICIiIkEg
d3JhcHBlciBjbGFzcyBqdXN0IHRvIG1ha2UgaXQgYWJsZSB0byBwYXNzIGEgc29ja2V0IG9iamVj
dCB0bwotICAgIGZ1bmN0aW9ucyB0aGF0IGV4cGVjdCBhIG1wX3JlcXVlc3Qgb2JqZWN0LgotICAg
ICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCk6Ci0gICAgICAgIHNlbGYuX2xv
Z2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3NvY2tl
dCA9IHNvY2tldAotICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBDbGllbnRDb25uZWN0aW9uKHNv
Y2tldCkKLQotCi1kZWYgX2ltcG9ydF9zc2woKToKLSAgICBnbG9iYWwgc3NsCi0gICAgdHJ5Ogot
ICAgICAgICBpbXBvcnQgc3NsCi0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZXhjZXB0IEltcG9y
dEVycm9yOgotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1kZWYgX2ltcG9ydF9weW9wZW5zc2wo
KToKLSAgICBnbG9iYWwgT3BlblNTTAotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IE9wZW5TU0wu
U1NMCi0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAg
ICByZXR1cm4gRmFsc2UKLQotCi1jbGFzcyBFY2hvQ2xpZW50KG9iamVjdCk6Ci0gICAgIiIiV2Vi
U29ja2V0IGVjaG8gY2xpZW50LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMp
OgotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9zb2NrZXQg
PSBOb25lCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNl
bGYpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICAiIiJSdW4gdGhlIGNsaWVudC4KLQot
ICAgICAgICBTaGFrZSBoYW5kcyBhbmQgdGhlbiByZXBlYXQgc2VuZGluZyBtZXNzYWdlIGFuZCBy
ZWNlaXZpbmcgaXRzIGVjaG8uCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9
IHNvY2tldC5zb2NrZXQoKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2V0dGltZW91dChzZWxmLl9v
cHRpb25zLnNvY2tldF90aW1lb3V0KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9z
b2NrZXQuY29ubmVjdCgoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0KSkKLSAgICAgICAg
ICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX3RsczoKLSAgICAgICAgICAgICAgICBzZWxmLl9zb2Nr
ZXQgPSBfVExTU29ja2V0KAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQsCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudGxzX21vZHVsZSwKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy50bHNfdmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fb3B0aW9ucy5kaXNhYmxlX3Rsc19jb21wcmVzc2lvbikKLQotICAgICAgICAgICAgdmVyc2lv
biA9IHNlbGYuX29wdGlvbnMucHJvdG9jb2xfdmVyc2lvbgotCi0gICAgICAgICAgICBpZiAodmVy
c2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDggb3IKLSAgICAgICAgICAgICAgICB2ZXJz
aW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
aGFuZHNoYWtlID0gQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29yKAotICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9zb2NrZXQsIHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAgICBlbGlmIHZlcnNpb24g
PT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwOgotICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRz
aGFrZSA9IENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvckh5YmkwMCgKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fc29ja2V0LCBzZWxmLl9vcHRpb25zKQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnSW52YWxp
ZCAtLXByb3RvY29sLXZlcnNpb24gZmxhZzogJXInICUgdmVyc2lvbikKLQotICAgICAgICAgICAg
c2VsZi5faGFuZHNoYWtlLmhhbmRzaGFrZSgpCi0KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykKLQotICAgICAgICAgICAgcmVxdWVzdCA9IENs
aWVudFJlcXVlc3Qoc2VsZi5fc29ja2V0KQotCi0gICAgICAgICAgICB2ZXJzaW9uX21hcCA9IHsK
LSAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDg6IGNvbW1vbi5WRVJTSU9O
X0hZQkkwOCwKLSAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMTM6IGNvbW1v
bi5WRVJTSU9OX0hZQkkxMywKLSAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJ
MDA6IGNvbW1vbi5WRVJTSU9OX0hZQkkwMH0KLSAgICAgICAgICAgIHJlcXVlc3Qud3NfdmVyc2lv
biA9IHZlcnNpb25fbWFwW3ZlcnNpb25dCi0KLSAgICAgICAgICAgIGlmICh2ZXJzaW9uID09IF9Q
Uk9UT0NPTF9WRVJTSU9OX0hZQkkwOCBvcgotICAgICAgICAgICAgICAgIHZlcnNpb24gPT0gX1BS
T1RPQ09MX1ZFUlNJT05fSFlCSTEzKToKLSAgICAgICAgICAgICAgICBzdHJlYW1fb3B0aW9uID0g
U3RyZWFtT3B0aW9ucygpCi0gICAgICAgICAgICAgICAgc3RyZWFtX29wdGlvbi5tYXNrX3NlbmQg
PSBUcnVlCi0gICAgICAgICAgICAgICAgc3RyZWFtX29wdGlvbi51bm1hc2tfcmVjZWl2ZSA9IEZh
bHNlCi0KLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgaXMg
bm90IEZhbHNlOgotICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IgPSBzZWxmLl9vcHRpb25z
LmRlZmxhdGVfZnJhbWUKLSAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLnNldHVwX3N0cmVh
bV9vcHRpb25zKHN0cmVhbV9vcHRpb24pCi0KLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRp
b25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUgaXMgbm90IEZhbHNlOgotICAgICAgICAgICAgICAg
ICAgICBmcmFtZXIgPSBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUKLSAgICAg
ICAgICAgICAgICAgICAgZnJhbWVyLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb24p
Ci0KLSAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0gPSBTdHJlYW0ocmVxdWVzdCwgc3RyZWFt
X29wdGlvbikKLSAgICAgICAgICAgIGVsaWYgdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9I
WUJJMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtID0gU3RyZWFtSGl4aWU3NShyZXF1
ZXN0LCBUcnVlKQotCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9vcHRpb25zLm1lc3Nh
Z2Uuc3BsaXQoJywnKToKLSAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9tZXNzYWdl
KGxpbmUpCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3NlOgotICAgICAg
ICAgICAgICAgICAgICBwcmludCgnU2VuZDogJXMnICUgbGluZSkKLSAgICAgICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkID0gc2VsZi5fc3RyZWFtLnJlY2VpdmVf
bWVzc2FnZSgpCi0KLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3Nl
OgotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ1JlY3Y6ICVzJyAlIHJlY2VpdmVkKQot
ICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3NlOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnQoJ0Vycm9yOiAlcycgJSBlKQotICAgICAgICAgICAgICAgICAgICByYWlzZQotCi0gICAgICAg
ICAgICBzZWxmLl9kb19jbG9zaW5nX2hhbmRzaGFrZSgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICBzZWxmLl9zb2NrZXQuY2xvc2UoKQotCi0gICAgZGVmIF9kb19jbG9zaW5nX2hhbmRz
aGFrZShzZWxmKToKLSAgICAgICAgIiIiUGVyZm9ybSBjbG9zaW5nIGhhbmRzaGFrZSB1c2luZyB0
aGUgc3BlY2lmaWVkIGNsb3NpbmcgZnJhbWUuIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy5tZXNzYWdlLnNwbGl0KCcsJylbLTFdID09IF9HT09EQllFX01FU1NBR0U6Ci0gICAgICAgICAg
ICAjIHJlcXVlc3RlZCBzZXJ2ZXIgaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlLCBzbwotICAg
ICAgICAgICAgIyBleHBlY3RpbmcgY2xvc2luZyBoYW5kc2hha2UgbWVzc2FnZSBmcm9tIHNlcnZl
ci4KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdXYWl0IGZvciBzZXJ2ZXItaW5pdGlh
dGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9zdHJl
YW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAg
ICAgICAgICAgICAgICBwcmludCgnUmVjdiBjbG9zZScpCi0gICAgICAgICAgICAgICAgcHJpbnQo
J1NlbmQgYWNrJykKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygKLSAgICAgICAg
ICAgICAgICAgICAgJ1JlY2VpdmVkIGNsb3NpbmcgaGFuZHNoYWtlIGFuZCBzZW50IGFjaycpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHByaW50KCdTZW5kIGNsb3NlJykKLSAgICAg
ICAgc2VsZi5fc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotICAgICAgICBzZWxmLl9sb2dnZXIu
aW5mbygnU2VudCBjbG9zaW5nIGhhbmRzaGFrZScpCi0gICAgICAgIHByaW50KCdSZWN2IGFjaycp
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdSZWNlaXZlZCBhY2snKQotCi0KLWRlZiBtYWlu
KCk6Ci0gICAgc3lzLnN0ZG91dCA9IGNvZGVjcy5nZXR3cml0ZXIoJ3V0Zi04Jykoc3lzLnN0ZG91
dCkKLQotICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcigpCi0gICAgIyBXZSBhY2NlcHQgLS1jb21t
YW5kX2xpbmVfZmxhZyBzdHlsZSBmbGFncyB3aGljaCBpcyB0aGUgc2FtZSBhcyBHb29nbGUKLSAg
ICAjIGdmbGFncyBpbiBhZGRpdGlvbiB0byBjb21tb24gLS1jb21tYW5kLWxpbmUtZmxhZyBzdHls
ZSBmbGFncy4KLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zZXJ2ZXItaG9zdCcsICct
LXNlcnZlcl9ob3N0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2ZXJfaG9zdCcs
IHR5cGU9J3N0cmluZycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nbG9jYWxob3N0
JywgaGVscD0nc2VydmVyIGhvc3QnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXNl
cnZlci1wb3J0JywgJy0tc2VydmVyX3BvcnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
J3NlcnZlcl9wb3J0JywgdHlwZT0naW50JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PV9VTkRFRklORURfUE9SVCwgaGVscD0nc2VydmVyIHBvcnQnKQotICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctbycsICctLW9yaWdpbicsIGRlc3Q9J29yaWdpbicsIHR5cGU9J3N0cmluZycsCi0gICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLCBoZWxwPSdvcmlnaW4nKQotICAgIHBhcnNl
ci5hZGRfb3B0aW9uKCctcicsICctLXJlc291cmNlJywgZGVzdD0ncmVzb3VyY2UnLCB0eXBlPSdz
dHJpbmcnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Jy9lY2hvJywgaGVscD0ncmVz
b3VyY2UgcGF0aCcpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1tJywgJy0tbWVzc2FnZScsIGRl
c3Q9J21lc3NhZ2UnLCB0eXBlPSdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
KCdjb21tYS1zZXBhcmF0ZWQgbWVzc2FnZXMgdG8gc2VuZC4gJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJyVzIHdpbGwgZm9yY2UgY2xvc2UgdGhlIGNvbm5lY3Rpb24gZnJvbSBzZXJ2ZXIu
JyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgX0dPT0RCWUVfTUVTU0FHRSkpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVpZXQnLCBkZXN0PSd2ZXJib3NlJywgYWN0aW9u
PSdzdG9yZV9mYWxzZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVlLCBoZWxw
PSdzdXBwcmVzcyBtZXNzYWdlcycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy10JywgJy0tdGxz
JywgZGVzdD0ndXNlX3RscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRMUyAod3NzOi8vKS4gQnkgZGVmYXVsdCwg
JwotICAgICAgICAgICAgICAgICAgICAgICdpdCBsb29rcyBmb3Igc3NsIGFuZCBweU9wZW5TU0wg
bW9kdWxlIGFuZCB1c2VzIGZvdW5kICcKLSAgICAgICAgICAgICAgICAgICAgICAnb25lLiBVc2Ug
LS10bHMtbW9kdWxlIG9wdGlvbiB0byBzcGVjaWZ5IHdoaWNoIG1vZHVsZSAnCi0gICAgICAgICAg
ICAgICAgICAgICAgJ3RvIHVzZScpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGxzLW1vZHVs
ZScsICctLXRsc19tb2R1bGUnLCBkZXN0PSd0bHNfbW9kdWxlJywKLSAgICAgICAgICAgICAgICAg
ICAgICB0eXBlPSdjaG9pY2UnLAotICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9W19UTFNf
QllfU1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BFTlNTTF0sCi0gICAgICAgICAgICAgICAg
ICAgICAgaGVscD0nVXNlIHNzbCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQuICcKLSAgICAg
ICAgICAgICAgICAgICAgICAnVXNlIHB5T3BlblNTTCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZp
ZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAoX1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9U
TFNfQllfUFlPUEVOU1NMKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtdmVyc2lvbics
ICctLXRsc192ZXJzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd0bHNfdmVyc2lv
bicsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0nc3RyaW5nJywgZGVmYXVsdD1fVExTX1ZF
UlNJT05fU1NMMjMsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nVExTL1NTTCB2ZXJzaW9u
IHRvIHVzZS4gT25lIG9mIFwnJyArCi0gICAgICAgICAgICAgICAgICAgICAgX1RMU19WRVJTSU9O
X1NTTDIzICsgJ1wnIChTU0wgdmVyc2lvbiAyIG9yIDMpLCBcJycgKwotICAgICAgICAgICAgICAg
ICAgICAgIF9UTFNfVkVSU0lPTl9TU0wzICsgJ1wnIChTU0wgdmVyc2lvbiAzKSwgXCcnICsKLSAg
ICAgICAgICAgICAgICAgICAgICBfVExTX1ZFUlNJT05fVExTMSArICdcJyAoVExTIHZlcnNpb24g
MSknKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRpc2FibGUtdGxzLWNvbXByZXNzaW9uJywg
Jy0tZGlzYWJsZV90bHNfY29tcHJlc3Npb24nLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
J2Rpc2FibGVfdGxzX2NvbXByZXNzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249
J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
J0Rpc2FibGUgVExTIGNvbXByZXNzaW9uLiBBdmFpbGFibGUgb25seSB3aGVuICcKLSAgICAgICAg
ICAgICAgICAgICAgICAncHlPcGVuU1NMIG1vZHVsZSBpcyB1c2VkLicpCi0gICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy1rJywgJy0tc29ja2V0LXRpbWVvdXQnLCAnLS1zb2NrZXRfdGltZW91dCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc29ja2V0X3RpbWVvdXQnLCB0eXBlPSdpbnQnLCBk
ZWZhdWx0PV9USU1FT1VUX1NFQywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdUaW1lb3V0
KHNlYykgZm9yIHNvY2tldHMnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRyYWZ0NzUnLCBk
ZXN0PSdkcmFmdDc1JywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUn
LCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J09ic29sZXRlIG9w
dGlvbi4gRG9uXCd0IHVzZSB0aGlzLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tcHJvdG9j
b2wtdmVyc2lvbicsICctLXByb3RvY29sX3ZlcnNpb24nLAotICAgICAgICAgICAgICAgICAgICAg
IGRlc3Q9J3Byb3RvY29sX3ZlcnNpb24nLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3N0
cmluZycsIGRlZmF1bHQ9X1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzLAotICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9J1dlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uIHRvIHVzZS4gT25lIG9mIFwn
JyArCi0gICAgICAgICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzICsgJ1wn
LCBcJycgKwotICAgICAgICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCAr
ICdcJywgXCcnICsKLSAgICAgICAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJ
MDAgKyAnXCcnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXZlcnNpb24taGVhZGVyJywgJy0t
dmVyc2lvbl9oZWFkZXInLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ZlcnNpb25faGVh
ZGVyJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQnLCBkZWZhdWx0PS0xLAotICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9J1NwZWNpZnkgU2VjLVdlYlNvY2tldC1WZXJzaW9uIGhl
YWRlciB2YWx1ZScpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZGVmbGF0ZS1mcmFtZScsICct
LWRlZmxhdGVfZnJhbWUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2RlZmxhdGVfZnJh
bWUnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9
RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNlIHRoZSBkZWZsYXRlLWZyYW1l
IGV4dGVuc2lvbi4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXVzZS1wZXJtZXNzYWdlLWRl
ZmxhdGUnLCAnLS11c2VfcGVybWVzc2FnZV9kZWZsYXRlJywKLSAgICAgICAgICAgICAgICAgICAg
ICBkZXN0PSd1c2VfcGVybWVzc2FnZV9kZWZsYXRlJywKLSAgICAgICAgICAgICAgICAgICAgICBh
Y3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9J1VzZSB0aGUgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4nKQotICAgIHBhcnNl
ci5hZGRfb3B0aW9uKCctLWxvZy1sZXZlbCcsICctLWxvZ19sZXZlbCcsIHR5cGU9J2Nob2ljZScs
Ci0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nbG9nX2xldmVsJywgZGVmYXVsdD0nd2Fybics
Ci0gICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2RlYnVnJywgJ2luZm8nLCAnd2Fybics
ICdlcnJvcicsICdjcml0aWNhbCddLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBs
ZXZlbC4nKQotCi0gICAgKG9wdGlvbnMsIHVudXNlZF9hcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdz
KCkKLQotICAgIGxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2luZy5nZXRMZXZlbE5hbWUo
b3B0aW9ucy5sb2dfbGV2ZWwudXBwZXIoKSkpCi0KLSAgICBpZiBvcHRpb25zLmRyYWZ0NzU6Ci0g
ICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJy0tZHJhZnQ3NSBvcHRpb24gaXMgb2Jzb2xldGUuJykK
LSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIG9wdGlvbnMucHJvdG9jb2xfdmVyc2lvbiA9
PSBfUFJPVE9DT0xfVkVSU0lPTl9ISVhJRTc1OgotICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAot
ICAgICAgICAgICAgJ1ZhbHVlICVzIGlzIG9ic29sZXRlIGZvciAtLXByb3RvY29sX3ZlcnNpb24g
b3B0aW9ucycgJQotICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSElYSUU3NSkKLSAgICAg
ICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIG9wdGlvbnMudXNlX3RsczoKLSAgICAgICAgaWYgb3B0
aW9ucy50bHNfbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICBpZiBfaW1wb3J0X3NzbCgpOgot
ICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9IF9UTFNfQllfU1RBTkRBUkRfTU9E
VUxFCi0gICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNpbmcgc3NsIG1vZHVsZScpCi0g
ICAgICAgICAgICBlbGlmIF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgICAgICAgICAgICAgb3B0
aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9QWU9QRU5TU0wKLSAgICAgICAgICAgICAgICBsb2dn
aW5nLmRlYnVnKCdVc2luZyBweU9wZW5TU0wgbW9kdWxlJykKLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICAgICAgICAgICAg
ICdUTFMgc3VwcG9ydCByZXF1aXJlcyBzc2wgb3IgcHlPcGVuU1NMIG1vZHVsZS4nKQotICAgICAg
ICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9kdWxlID09
IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAgICAgaWYgbm90IF9pbXBvcnRfc3Ns
KCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnc3NsIG1vZHVsZSBpcyBub3Qg
YXZhaWxhYmxlJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgICAgICBlbGlmIG9w
dGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAgICAgICAgICAgIGlmIG5v
dCBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwo
J3B5T3BlblNTTCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScpCi0gICAgICAgICAgICAgICAgc3lz
LmV4aXQoMSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ0lu
dmFsaWQgLS10bHMtbW9kdWxlIG9wdGlvbjogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25zLnRsc19tb2R1bGUpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAg
ICAgIGlmIChvcHRpb25zLmRpc2FibGVfdGxzX2NvbXByZXNzaW9uIGFuZAotICAgICAgICAgICAg
b3B0aW9ucy50bHNfbW9kdWxlICE9IF9UTFNfQllfUFlPUEVOU1NMKToKLSAgICAgICAgICAgIGxv
Z2dpbmcuY3JpdGljYWwoJ1lvdSBjYW4gZGlzYWJsZSBUTFMgY29tcHJlc3Npb24gb25seSB3aGVu
ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B5T3BlblNTTCBtb2R1bGUgaXMgdXNl
ZC4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICBlbHNlOgotICAgICAgICBpZiBvcHRp
b25zLnRsc19tb2R1bGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2Fs
KCdVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiBvbmx5IHRvZ2V0aGVyIHdpdGggJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnLS11c2UtdGxzIG9wdGlvbi4nKQotICAgICAgICAgICAgc3lz
LmV4aXQoMSkKLQotICAgICAgICBpZiBvcHRpb25zLmRpc2FibGVfdGxzX2NvbXByZXNzaW9uOgot
ICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVXNlIC0tZGlzYWJsZS10bHMtY29tcHJlc3Np
b24gb25seSB0b2dldGhlciAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aXRoIC0t
dXNlLXRscyBvcHRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAjIERlZmF1
bHQgcG9ydCBudW1iZXIgZGVwZW5kcyBvbiB3aGV0aGVyIFRMUyBpcyB1c2VkLgotICAgIGlmIG9w
dGlvbnMuc2VydmVyX3BvcnQgPT0gX1VOREVGSU5FRF9QT1JUOgotICAgICAgICBpZiBvcHRpb25z
LnVzZV90bHM6Ci0gICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9wb3J0ID0gY29tbW9uLkRFRkFV
TFRfV0VCX1NPQ0tFVF9TRUNVUkVfUE9SVAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3B0
aW9ucy5zZXJ2ZXJfcG9ydCA9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVAotCi0gICAg
IyBvcHRwYXJzZSBkb2Vzbid0IHNlZW0gdG8gaGFuZGxlIG5vbi1hc2NpaSBkZWZhdWx0IHZhbHVl
cy4KLSAgICAjIFNldCBkZWZhdWx0IG1lc3NhZ2UgaGVyZS4KLSAgICBpZiBub3Qgb3B0aW9ucy5t
ZXNzYWdlOgotICAgICAgICBvcHRpb25zLm1lc3NhZ2UgPSB1J0hlbGxvLFx1NjVlNVx1NjcyYycg
ICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKLQotICAgIEVjaG9DbGllbnQob3B0aW9ucykucnVuKCkK
LQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIG1haW4oKQotCi0KLSMgdmk6c3Rz
PTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxZGY1MTUxMjI3MTExZTExNDQyNGM1NTg2YTE0MmE5YWRiN2Q2MDRkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX25v
ZXh0X3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLSMgQ29weXJpZ2h0IDIw
MTMsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0KLV9HT09EQllFX01FU1NBR0UgPSB1J0dvb2RieWUnCi0KLQotZGVmIHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgICIiIlJlY2VpdmVkIFNlYy1XZWJTb2Nr
ZXQtRXh0ZW5zaW9ucyBoZWFkZXIgdmFsdWUgaXMgcGFyc2VkIGludG8KLSAgICByZXF1ZXN0Lndz
X3JlcXVlc3RlZF9leHRlbnNpb25zLiBweXdlYnNvY2tldCBjcmVhdGVzIGV4dGVuc2lvbgotICAg
IHByb2Nlc3NvcnMgdXNpbmcgaXQgYmVmb3JlIGRvX2V4dHJhX2hhbmRzaGFrZSBjYWxsIGFuZCBu
ZXZlciBsb29rcyBhdCBpdAotICAgIGFmdGVyIHRoZSBjYWxsLgotCi0gICAgVG8gcmVqZWN0IHJl
cXVlc3RlZCBleHRlbnNpb25zLCBjbGVhciB0aGUgcHJvY2Vzc29yIGxpc3QuCi0gICAgIiIiCi0K
LSAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gW10KLQotCi1kZWYgd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgICIiIkVjaG8uIFNhbWUgYXMgZWNob193
c2gucHkuIiIiCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBsaW5lID0gcmVxdWVzdC53c19z
dHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgaWYgbGluZSBpcyBOb25lOgotICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgIGlmIGlzaW5zdGFuY2UobGluZSwgdW5pY29kZSk6Ci0gICAg
ICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PUZhbHNl
KQotICAgICAgICAgICAgaWYgbGluZSA9PSBfR09PREJZRV9NRVNTQUdFOgotICAgICAgICAgICAg
ICAgIHJldHVybgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0u
c2VuZF9tZXNzYWdlKGxpbmUsIGJpbmFyeT1UcnVlKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9f
d3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODY0NmMzMmNlYjUxNWYxNWRk
NTcyNjIyNjg5Yzc5ZWU2MWU1NDNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDU0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLV9HT09EQllFX01FU1NBR0UgPSB1J0dv
b2RieWUnCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgot
ICAgICMgVGhpcyBleGFtcGxlIGhhbmRsZXIgYWNjZXB0cyBhbnkgcmVxdWVzdC4gU2VlIG9yaWdp
bl9jaGVja193c2gucHkgZm9yIGhvdwotICAgICMgdG8gcmVqZWN0IGFjY2VzcyBmcm9tIHVudHJ1
c3RlZCBzY3JpcHRzIGJhc2VkIG9uIG9yaWdpbiB2YWx1ZS4KLQotICAgIHBhc3MgICMgQWx3YXlz
IGFjY2VwdC4KLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAg
IHdoaWxlIFRydWU6Ci0gICAgICAgIGxpbmUgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21l
c3NhZ2UoKQotICAgICAgICBpZiBsaW5lIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAg
ICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCB1bmljb2RlKToKLSAgICAgICAgICAgIHJlcXVlc3Qu
d3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5lLCBiaW5hcnk9RmFsc2UpCi0gICAgICAgICAgICBp
ZiBsaW5lID09IF9HT09EQllFX01FU1NBR0U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGlu
ZSwgYmluYXJ5PVRydWUpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dpIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2V2ZW50c291cmNlLmNnaQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRkZGYyMzdjZjdkNDc2NDk3MzQ3ZDA5NWEx
MjI5OTQxNzdlMTQwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dpCisrKyAvZGV2L251bGwKQEAgLTEsNTQg
KzAsMCBAQAotIyEvdXNyL2Jpbi9weXRob24KLQotIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhp
cyBDR0kgc2NyaXB0IGdlbmVyYXRlcyB0ZXh0L2V2ZW50LXN0cmVhbSB0eXBlIGRhdGEgc3RyZWFt
IGZvciB0ZXN0aW5nCi10aGUgU2VydmVyLVNlbnQgRXZlbnRzLgotCi1JdCB3aWxsIG9ubHkgd29y
ayBjb3JyZWN0bHkgd2l0aCBIVFRQIHNlcnZlcnMgdGhhdCBkbyBub3QgYnVmZmVyIHRoZSBvdXRw
dXQgb2YKLUNHSSBzY3JpcHRzLgotIiIiCi0KLQotaW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKLQot
c3lzLnN0ZG91dC53cml0ZSgnQ29udGVudC10eXBlOiB0ZXh0L2V2ZW50LXN0cmVhbVxyXG5cclxu
JykKLQotaWQgPSAwCi0KLXdoaWxlIFRydWU6Ci0gIHN5cy5zdGRvdXQud3JpdGUoJ2RhdGE6IEhl
bGxvXHJcbmlkOiAlZFxyXG5cclxuJyAlIGlkKQotICBzeXMuc3Rkb3V0LmZsdXNoKCkKLQotICBp
ZCA9IGlkICsgMQotCi0gIHRpbWUuc2xlZXAoMSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9l
dmVudHNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2V2ZW50c291cmNlLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1OThhODgwN2QxZmZjY2VjZjU4NWYxYmI2NTZmZDJkOTAy
ZmNkMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2V2ZW50c291cmNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBA
Ci08IS0tCi1Db3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPCEtLQotU2ltcGxlIGV4YW1wbGUg
b2YgdGhlIFNlcnZlci1TZW50IEV2ZW50cwotaHR0cDovL2Rldi53My5vcmcvaHRtbDUvZXZlbnRz
b3VyY2UvCi0KLUZvciBjb21wYXJpc29uIHdpdGggdGhlIFdlYlNvY2tldCBQcm90b2NvbCAmIEFQ
SS4KLQotUnVuIHRoZSBweXdlYnNvY2tldCB3aXRoIHRoZSAtLWNnaV9wYXRoIHBhcmFtZXRlci4K
LS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlNlcnZlci1TZW50IEV2ZW50cyBFeGFtcGxl
PC90aXRsZT4KLTxzY3JpcHQ+Ci12YXIgZXZlbnRTb3VyY2UgPSBudWxsOwotCi1mdW5jdGlvbiBh
ZGRUb0xvZyhkYXRhKSB7Ci0gIGxvZ0JveC52YWx1ZSArPSBkYXRhICsgJ1xuJzsKLSAgbG9nQm94
LnNjcm9sbFRvcCA9IDEwMDAwMDA7Ci19Ci0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIGxvZ0JveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKLQotICBldmVudFNvdXJjZSAgPSBuZXcg
RXZlbnRTb3VyY2UoJy9ldmVudHNvdXJjZS5jZ2knKTsKLSAgZXZlbnRTb3VyY2Uub25vcGVuID0g
ZnVuY3Rpb24oKSB7Ci0gICAgYWRkVG9Mb2coJ29ub3BlbiAocmVhZHlTdGF0ZSA9ICcgKyBldmVu
dFNvdXJjZS5yZWFkeVN0YXRlICsgJyknKTsKLSAgfQotICBldmVudFNvdXJjZS5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgewotICAgIGFkZFRvTG9nKGV2ZW50LmRhdGEpOwotICB9Ci0gIGV2
ZW50U291cmNlLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgIGFkZFRvTG9nKCdvbmVy
cm9yIChyZWFkeVN0YXRlID0gJyArIGV2ZW50U291cmNlLnJlYWR5U3RhdGUgKyAnKScpOwotICB9
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTx0ZXh0YXJl
YSBpZD0ibG9nIiByb3dzPSIxMCIgY29scz0iNDAiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08cCBz
dHlsZT0iZm9udC1zaXplOiBzbWFsbCI+Ci0gIE1ha2Ugc3VyZSB0aGF0IHB5d2Vic29ja2V0IGlz
IHJ1biB3aXRoIC0tY2dpX3BhdGggcGFyYW1ldGVyLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX2JlbmNobWFyay5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2ZldGNoX2JlbmNobWFyay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
MTA1ZWI2N2E1NTMyYjc2YmM5N2JmODMxMDhhMTllMDQzZTU0ZjMxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5jaG1h
cmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2MyArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQg
MjAxNSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1Vc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotbGljZW5zZSB0aGF0IGNhbiBiZSBm
b3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci1odHRwczovL2RldmVsb3BlcnMuZ29vZ2xl
LmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLS0tPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRs
ZT5GZXRjaCBBUEkgYmVuY2htYXJrPC90aXRsZT4KLTxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
ImZldGNoX2JlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGFkZHJlc3NCb3gg
PSBudWxsOwotCi1mdW5jdGlvbiBnZXRDb25maWcoKSB7Ci0gIHJldHVybiB7Ci0gICAgcHJlZml4
VXJsOiBhZGRyZXNzQm94LnZhbHVlLAotICAgIHByaW50U2l6ZTogZ2V0Qm9vbEZyb21DaGVja0Jv
eCgncHJpbnRzaXplJyksCi0gICAgbnVtRmV0Y2hlczogZ2V0SW50RnJvbUlucHV0KCdudW1GZXRj
aGVzJyksCi0gICAgLy8gSW5pdGlhbCBzaXplIG9mIG1lc3NhZ2VzLgotICAgIG51bUl0ZXJhdGlv
bnM6IGdldEludEZyb21JbnB1dCgnbnVtaXRlcmF0aW9ucycpLAotICAgIG51bVdhcm1VcEl0ZXJh
dGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtd2FybXVwaXRlcmF0aW9ucycpLAotICAgIHN0YXJ0
U2l6ZTogZ2V0SW50RnJvbUlucHV0KCdzdGFydHNpemUnKSwKLSAgICAvLyBTdG9wcyBiZW5jaG1h
cmsgd2hlbiB0aGUgc2l6ZSBvZiBtZXNzYWdlIGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQuCi0gICAg
c3RvcFRocmVzaG9sZDogZ2V0SW50RnJvbUlucHV0KCdzdG9wdGhyZXNob2xkJyksCi0gICAgbXVs
dGlwbGllcnM6IGdldEZsb2F0QXJyYXlGcm9tSW5wdXQoJ211bHRpcGxpZXJzJyksCi0gICAgdmVy
aWZ5RGF0YTogZ2V0Qm9vbEZyb21DaGVja0JveCgndmVyaWZ5ZGF0YScpLAotICAgIGFkZFRvTG9n
OiBhZGRUb0xvZywKLSAgICBhZGRUb1N1bW1hcnk6IGFkZFRvU3VtbWFyeSwKLSAgICBtZWFzdXJl
VmFsdWU6IG1lYXN1cmVWYWx1ZSwKLSAgICBub3RpZnlBYm9ydDogbm90aWZ5QWJvcnQKLSAgfTsK
LX0KLQotZnVuY3Rpb24gb25TZW5kQmVuY2htYXJrKCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29u
ZmlnKCk7Ci0gIGNvbmZpZy5kYXRhVHlwZSA9IGdldFN0cmluZ0Zyb21SYWRpb0JveCgnZGF0YXR5
cGVyYWRpbycpOwotICBkb0FjdGlvbihjb25maWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtl
cicpLCAnc2VuZEJlbmNobWFyaycpOwotfQotCi1mdW5jdGlvbiBvblJlY2VpdmVCZW5jaG1hcmso
KSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLSAgY29uZmlnLmRhdGFUeXBlID0gZ2V0
U3RyaW5nRnJvbVJhZGlvQm94KCdkYXRhdHlwZXJhZGlvJyk7Ci0gIGRvQWN0aW9uKGNvbmZpZywg
Z2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdyZWNlaXZlQmVuY2htYXJrJyk7Ci19Ci0K
LWZ1bmN0aW9uIG9uQmF0Y2hCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWco
KTsKLSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ2Jh
dGNoQmVuY2htYXJrJyk7Ci19Ci0KLWZ1bmN0aW9uIG9uU3RvcCgpIHsKLSAgdmFyIGNvbmZpZyA9
IGdldENvbmZpZygpOwotICBkb0FjdGlvbihjb25maWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dv
cmtlcicpLCAnc3RvcCcpOwotfQotCi1mdW5jdGlvbiBpbml0KCkgewotICBhZGRyZXNzQm94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZHJlc3MnKTsKLSAgbG9nQm94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2xvZycpOwotCi0gIHN1bW1hcnlCb3ggPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3VtbWFyeScpOwotCi0gIC8vIFNwZWNpYWwgYWRkcmVzcyBvZiBweXdlYnNvY2tl
dCBmb3IgWEhSL0ZldGNoIEFQSSBiZW5jaG1hcmsuCi0gIGFkZHJlc3NCb3gudmFsdWUgPSAnLzA3
M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFjMjQ1JzsKLQotICBhZGRUb0xvZyh3aW5kb3cubmF2
aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLSAgYWRkVG9TdW1tYXJ5KHdpbmRvdy5u
YXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwotCi0gIGluaXRXb3JrZXIoJ2ZldGNo
JywgJycpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci0K
LTxmb3JtIGlkPSJiZW5jaG1hcmtfZm9ybSI+Ci0gIHVybCBwcmVmaXggPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVl
PSJzZW5kIiBvbmNsaWNrPSJvblNlbmRCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0
b24iIHZhbHVlPSJyZWNlaXZlIiBvbmNsaWNrPSJvblJlY2VpdmVCZW5jaG1hcmsoKSI+Ci0gIDxp
bnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJiYXRjaCIgb25jbGljaz0ib25CYXRjaEJlbmNobWFy
aygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InN0b3AiIG9uY2xpY2s9Im9uU3Rv
cCgpIj4KLQotICA8YnIvPgotCi0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InByaW50c2l6
ZSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0icHJpbnRzaXplIj5QcmludCBzaXplIGFuZCB0aW1l
IHBlciBtZXNzYWdlPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idmVyaWZ5
ZGF0YSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0idmVyaWZ5ZGF0YSI+VmVyaWZ5IGRhdGE8L2xh
YmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ3b3JrZXIiPgotICA8bGFiZWwgZm9y
PSJ3b3JrZXIiPlJ1biBvbiB3b3JrZXI8L2xhYmVsPgotCi0gIDxici8+Ci0KLSAgUGFyYW1ldGVy
czoKLQotICA8YnIvPgotCi0gIDx0YWJsZT4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVyIG9m
IGZldGNoKCkgcmVxdWVzdHM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
bnVtRmV0Y2hlcyIgdmFsdWU9IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8
dGQ+TnVtYmVyIG9mIGl0ZXJhdGlvbnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0ibnVtaXRlcmF0aW9ucyIgdmFsdWU9IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+
Ci0gICAgICA8dGQ+TnVtYmVyIG9mIHdhcm0tdXAgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+
PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW13YXJtdXBpdGVyYXRpb25zIiB2YWx1ZT0iMCI+PC90
ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5TdGFydCBzaXplPC90ZD4KLSAgICAg
IDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InN0YXJ0c2l6ZSIgdmFsdWU9IjEwMjQwIj48L3Rk
PgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPlN0b3AgdGhyZXNob2xkPC90ZD4KLSAg
ICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InN0b3B0aHJlc2hvbGQiIHZhbHVlPSIxMDI0
MDAwMDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TXVsdGlwbGllcnM8
L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibXVsdGlwbGllcnMiIHZhbHVl
PSI1LCAyIj48L3RkPgotICAgIDwvdHI+Ci0gIDwvdGFibGU+Ci0KLSAgU2V0IGRhdGEgdHlwZQot
ICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJkYXRhdHlwZXJhZGlvIgotICAg
ICAgICAgaWQ9ImRhdGF0eXBlcmFkaW90ZXh0IgotICAgICAgICAgdmFsdWU9InRleHQiCi0gICAg
ICAgICBjaGVja2VkPjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFkaW90ZXh0Ij50ZXh0PC9sYWJlbD4K
LSAgPGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKLSAg
ICAgICAgIGlkPSJkYXRhdHlwZXJhZGlvYmxvYiIKLSAgICAgICAgIHZhbHVlPSJibG9iIgotICAg
ICAgICAgPjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFkaW9ibG9iIj5ibG9iPC9sYWJlbD4KLSAgPGlu
cHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKLSAgICAgICAg
IGlkPSJkYXRhdHlwZXJhZGlvYXJyYXlidWZmZXIiCi0gICAgICAgICB2YWx1ZT0iYXJyYXlidWZm
ZXIiCi0gICAgICAgICA+PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb2FycmF5YnVmZmVyIj5hcnJh
eWJ1ZmZlcjwvbGFiZWw+Ci08L2Zvcm0+Ci0KLTxkaXYgaWQ9ImxvZ19kaXYiPgotICA8dGV4dGFy
ZWEKLSAgICAgIGlkPSJsb2ciIHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5
PjwvdGV4dGFyZWE+Ci08L2Rpdj4KLTxkaXYgaWQ9InN1bW1hcnlfZGl2Ij4KLSAgU3VtbWFyeQot
ICA8dGV4dGFyZWEKLSAgICAgIGlkPSJzdW1tYXJ5IiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAx
MDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9kaXY+Ci0KLTxkaXYgaWQ9Im5vdGVfZGl2Ij4K
LSAgTm90ZToKLSAgPHVsPgotICAgIDxsaT5FZmZlY3Qgb2YgUlRUIGFuZCB0aW1lIHNwZW50IGZv
ciBBcnJheUJ1ZmZlciBjcmVhdGlvbiBpbiByZWNlaXZlIGJlbmNobWFya3MgYXJlIG5vdCBlbGlt
aW5hdGVkLjwvbGk+Ci0gICAgPGxpPlRoZSBTdGRkZXYgY29sdW1uIHNob3dzIE5hTiB3aGVuIHRo
ZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBpcyBzZXQgdG8gMS48L2xpPgotICA8L3VsPgotPC9kaXY+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5j
aG1hcmsuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMzk1MjE5MGE4ZTA3MzllM2EwZjJhNDhjYjgzZGJlOWIzMDE1Mzk2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhh
bXBsZS9mZXRjaF9iZW5jaG1hcmsuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMjUgKzAsMCBAQAot
Ly8gQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0v
LyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8g
bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBo
dHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQot
dmFyIGlzV29ya2VyID0gdHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiOwotCi1p
ZiAoaXNXb3JrZXIpIHsKLSAgLy8gUnVubmluZyBvbiBhIHdvcmtlcgotICBpbXBvcnRTY3JpcHRz
KCd1dGlsLmpzJywgJ3V0aWxfd29ya2VyLmpzJyk7Ci19Ci0KLS8vIE5hbWVzcGFjZSBmb3IgaG9s
ZGluZyBnbG9iYWxzLgotdmFyIGJlbmNobWFyayA9IHt9OwotYmVuY2htYXJrLnN0YXJ0VGltZUlu
TXMgPSAwOwotCi12YXIgdGltZXJJRCA9IG51bGw7Ci0KLWZ1bmN0aW9uIHNlbmRCZW5jaG1hcmtT
dGVwKHNpemUsIGNvbmZpZywgaXNXYXJtVXApIHsKLSAgdGltZXJJRCA9IG51bGw7Ci0gIGJlbmNo
bWFyay5zdGFydFRpbWVJbk1zID0gbnVsbDsKLQotICAvLyBQcmVwYXJlIGRhdGEuCi0gIHZhciBk
YXRhQXJyYXkgPSBbXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtRmV0Y2hlczsg
KytpKSB7Ci0gICAgdmFyIGRhdGEgPSBudWxsOwotICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT0g
J2FycmF5YnVmZmVyJyB8fAotICAgICAgICBjb25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7Ci0g
ICAgICBkYXRhID0gbmV3IEFycmF5QnVmZmVyKHNpemUpOwotCi0gICAgICBmaWxsQXJyYXlCdWZm
ZXIoZGF0YSwgMHg2MSk7Ci0KLSAgICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7
Ci0gICAgICAgIGRhdGEgPSBuZXcgQmxvYihbZGF0YV0pOwotICAgICAgfQotICAgIH0gZWxzZSB7
Ci0gICAgICBkYXRhID0gcmVwZWF0U3RyaW5nKCdhJywgc2l6ZSk7Ci0gICAgfQotCi0gICAgZGF0
YUFycmF5LnB1c2goZGF0YSk7Ci0gIH0KLQotICAvLyBTdGFydCB0aW1lIG1lYXN1cmluZy4KLSAg
YmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLQotICAvLyBTdGFydCBm
ZXRjaC4KLSAgdmFyIHByb21pc2VzID0gW107Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmln
Lm51bUZldGNoZXM7ICsraSkgewotICAgIHZhciBkYXRhID0gZGF0YUFycmF5W2ldOwotICAgIHZh
ciBwcm9taXNlID0gZmV0Y2goY29uZmlnLnByZWZpeFVybCArICdfc2VuZCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICB7bWV0aG9kOiAnUE9TVCcsIGJvZHk6IGRhdGF9KQotICAgICAgICAudGhl
bihmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9
IDIwMCkgewotICAgICAgICAgICAgY29uZmlnLmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0nICsg
cmVzcG9uc2Uuc3RhdHVzICsgJyknKTsKLSAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVj
dCgpOwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBDaGVjayBhbmQgd2FybiBpZiBwcm94eSBp
cyBlbmFibGVkLgotICAgICAgICAgIGlmIChyZXNwb25zZS5oZWFkZXJzLmdldCgnVmlhJykgIT09
IG51bGwpIHsKLSAgICAgICAgICAgIGNvbmZpZy5hZGRUb0xvZygnV0FSTklORzogcHJveHkgc2Vl
bXMgZW5hYmxlZC4nKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGNvbmZpZy52ZXJpZnlE
YXRhKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpCi0gICAgICAgICAgICAg
ICAgLnRoZW4oZnVuY3Rpb24odGV4dCkgewotICAgICAgICAgICAgICAgICAgaWYgKCF2ZXJpZnlB
Y2tub3dsZWRnZW1lbnQoY29uZmlnLCB0ZXh0LCBzaXplKSkgewotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIHByb21pc2VzLnB1c2go
cHJvbWlzZSk7Ci0gIH0KLQotICAvLyBGaW5pc2ggYW5kIHJlcG9ydCB0aW1lIG1lYXN1cmluZy4K
LSAgUHJvbWlzZS5hbGwocHJvbWlzZXMpCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAg
ICAgaWYgKGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsKLSAgICAgICAgICBjb25m
aWcuYWRkVG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90IHNldCcpOwotICAgICAgICAgIHJldHVybiBQ
cm9taXNlLnJlamVjdCgpOwotICAgICAgICB9Ci0gICAgICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3Vs
dChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1zLAotICAgICAgICAgIHNpemUg
KiBjb25maWcubnVtRmV0Y2hlcywgaXNXYXJtVXApOwotICAgICAgICBydW5OZXh0VGFzayhjb25m
aWcpOwotICAgICAgfSkKLSAgICAgIC5jYXRjaChmdW5jdGlvbihlKSB7Ci0gICAgICAgIGNvbmZp
Zy5hZGRUb0xvZygiRVJST1I6ICIgKyBlKTsKLSAgICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7
Ci0gICAgICB9KTsKLX0KLQotZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29u
ZmlnLCBpc1dhcm1VcCkgewotICB0aW1lcklEID0gbnVsbDsKLSAgYmVuY2htYXJrLnN0YXJ0VGlt
ZUluTXMgPSBudWxsOwotCi0gIC8vIFN0YXJ0IHRpbWUgbWVhc3VyaW5nLgotICBiZW5jaG1hcmsu
c3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotCi0gIC8vIFN0YXJ0IGZldGNoLgotICB2
YXIgcHJvbWlzZXMgPSBbXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtRmV0Y2hl
czsgKytpKSB7Ci0gICAgdmFyIHJlcXVlc3Q7Ci0gICAgaWYgKGNvbmZpZy5tZXRob2RBbmRDYWNo
ZSA9PT0gJ0dFVC1OT0NBQ0hFJykgewotICAgICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGNvbmZp
Zy5wcmVmaXhVcmwgKyAnX3JlY2VpdmVfZ2V0bm9jYWNoZT8nICsgc2l6ZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnR0VUJ30pOwotICAgIH0gZWxzZSBpZiAoY29uZmln
Lm1ldGhvZEFuZENhY2hlID09PSAnR0VULUNBQ0hFJykgewotICAgICAgcmVxdWVzdCA9IG5ldyBS
ZXF1ZXN0KGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmVfZ2V0Y2FjaGU/JyArIHNpemUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogJ0dFVCd9KTsKLSAgICB9IGVsc2Ug
ewotICAgICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2Vp
dmUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICdQT1NUJywgYm9keTog
c2l6ZSArICcgbm9uZSd9KTsKLSAgICB9Ci0gICAgdmFyIHByb21pc2UgPSBmZXRjaChyZXF1ZXN0
KQotICAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICAgIGlmIChyZXNw
b25zZS5zdGF0dXMgIT0gMjAwKSB7Ci0gICAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ0ZhaWxl
ZCAoc3RhdHVzPScgKyB0aGlzLnN0YXR1cyArICcpJyk7Ci0gICAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5yZWplY3QoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gQ2hlY2sgYW5kIHdhcm4g
aWYgcHJveHkgaXMgZW5hYmxlZC4KLSAgICAgICAgICBpZiAocmVzcG9uc2UuaGVhZGVycy5nZXQo
J1ZpYScpICE9PSBudWxsKSB7Ci0gICAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ1dBUk5JTkc6
IHByb3h5IHNlZW1zIGVuYWJsZWQuJyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChjb25m
aWcuZGF0YVR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHsKLSAgICAgICAgICAgIHJldHVybiByZXNw
b25zZS5hcnJheUJ1ZmZlcigpCi0gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oYXJyYXlC
dWZmZXIpIHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiBbYXJyYXlCdWZmZXIuYnl0ZUxlbmd0
aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKCFjb25maWcudmVyaWZ5RGF0YSB8fAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5QXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIsIDB4
NjEpKV07Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChjb25maWcu
ZGF0YVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigp
Ci0gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oYmxvYikgewotICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAg
ICAgICAgICAgICAgICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgdmVyaWZ5QmxvYihjb25maWcsIGJsb2IsIDB4NjEsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuY3Rpb24ocmVjZWl2ZWRTaXplLCB2ZXJpZmljYXRpb25SZXN1bHQpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW3JlY2VpdmVkU2l6ZSwgdmVy
aWZpY2F0aW9uUmVzdWx0XSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc29s
dmUoW2Jsb2Iuc2l6ZSwgdHJ1ZV0pOwotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkKLSAgICAgICAgICAgICAgICAudGhl
bihmdW5jdGlvbih0ZXh0KSB7Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gW3RleHQubGVuZ3Ro
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAoIWNvbmZpZy52ZXJpZnlEYXRhIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID09IHJlcGVhdFN0cmluZygnYScsIHRleHQubGVu
Z3RoKSldOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgIH0KLSAgICAgICAgfSkKLSAg
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVjZWl2ZWRTaXplQW5kVmVyaWZpY2F0aW9uUmVzdWx0KSB7
Ci0gICAgICAgICAgdmFyIHJlY2VpdmVkU2l6ZSA9IHJlY2VpdmVkU2l6ZUFuZFZlcmlmaWNhdGlv
blJlc3VsdFswXTsKLSAgICAgICAgICB2YXIgdmVyaWZpY2F0aW9uUmVzdWx0ID0gcmVjZWl2ZWRT
aXplQW5kVmVyaWZpY2F0aW9uUmVzdWx0WzFdOwotICAgICAgICAgIGlmIChyZWNlaXZlZFNpemUg
IT09IHNpemUpIHsKLSAgICAgICAgICAgIGNvbmZpZy5hZGRUb0xvZygnRXhwZWN0ZWQgJyArIHNp
emUgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCIGJ1dCByZWNlaXZlZCAnICsgcmVj
ZWl2ZWRTaXplICsgJ0InKTsKLSAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOwot
ICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoIXZlcmlmaWNhdGlvblJlc3VsdCkgewotICAgICAg
ICAgICAgY29uZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7Ci0g
ICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTsKLSAgICAgICAgICB9Ci0gICAgICAg
IH0pOwotICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7Ci0gIH0KLQotICAvLyBGaW5pc2ggYW5k
IHJlcG9ydCB0aW1lIG1lYXN1cmluZy4KLSAgUHJvbWlzZS5hbGwocHJvbWlzZXMpCi0gICAgICAu
dGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09
IG51bGwpIHsKLSAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90IHNl
dCcpOwotICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOwotICAgICAgICB9Ci0gICAg
ICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRp
bWVJbk1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSAqIGNvbmZpZy5udW1G
ZXRjaGVzLCBpc1dhcm1VcCk7Ci0gICAgICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gICAgICB9
KQotICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgY29uZmlnLmFkZFRvTG9nKCJF
UlJPUjogIiArIGUpOwotICAgICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAgICAgIH0pOwot
fQotCi0KLWZ1bmN0aW9uIGdldENvbmZpZ1N0cmluZyhjb25maWcpIHsKLSAgcmV0dXJuICcoJyAr
IGNvbmZpZy5kYXRhVHlwZSArCi0gICAgJywgdmVyaWZ5RGF0YT0nICsgY29uZmlnLnZlcmlmeURh
dGEgKwotICAgICcsICcgKyAoaXNXb3JrZXIgPyAnV29ya2VyJyA6ICdNYWluJykgKwotICAgICcs
IG51bUZldGNoZXM9JyArIGNvbmZpZy5udW1GZXRjaGVzICsKLSAgICAnLCBudW1JdGVyYXRpb25z
PScgKyBjb25maWcubnVtSXRlcmF0aW9ucyArCi0gICAgJywgbnVtV2FybVVwSXRlcmF0aW9ucz0n
ICsgY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMgKwotICAgICcpJzsKLX0KLQotZnVuY3Rpb24g
c3RhcnRCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNsZWFyVGltZW91dCh0aW1lcklEKTsKLQotICBy
dW5OZXh0VGFzayhjb25maWcpOwotfQotCi1mdW5jdGlvbiBiYXRjaEJlbmNobWFyayhvcmlnaW5h
bENvbmZpZykgewotICBvcmlnaW5hbENvbmZpZy5hZGRUb0xvZygnQmF0Y2ggYmVuY2htYXJrJyk7
Ci0KLSAgdGFza3MgPSBbXTsKLSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotCi0gIHZhciBkYXRhVHlw
ZXMgPSBbJ3RleHQnLCAnYmxvYicsICdhcnJheWJ1ZmZlciddOwotICB2YXIgc3RlcEZ1bmNzID0g
W3NlbmRCZW5jaG1hcmtTdGVwLCByZWNlaXZlQmVuY2htYXJrU3RlcF07Ci0gIHZhciBuYW1lcyA9
IFsnU2VuZCcsICdSZWNlaXZlJ107Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RlcEZ1bmNzLmxl
bmd0aDsgKytpKSB7Ci0gICAgZm9yICh2YXIgaiA9IDA7IGogPCBkYXRhVHlwZXMubGVuZ3RoOyAr
K2opIHsKLSAgICAgIHZhciBjb25maWcgPSBjbG9uZUNvbmZpZyhvcmlnaW5hbENvbmZpZyk7Ci0g
ICAgICBjb25maWcuZGF0YVR5cGUgPSBkYXRhVHlwZXNbal07Ci0gICAgICBhZGRUYXNrcyhjb25m
aWcsIHN0ZXBGdW5jc1tpXSk7Ci0gICAgICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywK
LSAgICAgICAgICBuYW1lc1tpXSArICcgYmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29u
ZmlnKSk7Ci0gICAgfQotICB9Ci0KLSAgc3RhcnRCZW5jaG1hcmsoY29uZmlnKTsKLX0KLQotZnVu
Y3Rpb24gY2xlYW51cCgpIHsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9wZXJm
b3JtYW5jZV90ZXN0X2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX3BlcmZvcm1hbmNl
X3Rlc3RfaWZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMmRmMmU3
ZGY0ZDNlYTYyZGMyYTBiZDVlODFiZThiZjViNWRiYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX3BlcmZvcm1hbmNlX3Rl
c3RfaWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImZl
dGNoX2JlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvaGFuZGxlcl9tYXAudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2hhbmRsZXJfbWFwLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjFjNGMwOWFhMDA5MWQ4YmFmMjkwODk1OTkwNTg2
Nzg0MmFlYjg2NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAs
MCBAQAotIyB3ZWJzb2NrZXQgaGFuZGxlciBtYXAgZmlsZSwgdXNlZCBieSBzdGFuZGFsb25lLnB5
IC1tIG9wdGlvbi4KLSMgQSBsaW5lIHN0YXJ0aW5nIHdpdGggJyMnIGlzIGEgY29tbWVudCBsaW5l
LgotIyBFYWNoIGxpbmUgY29uc2lzdHMgb2YgJ2FsaWFzX3Jlc291cmNlX3BhdGgnIGFuZCAnZXhp
c3RpbmdfcmVzb3VyY2VfcGF0aCcKLSMgc2VwYXJhdGVkIGJ5IHNwYWNlcy4KLSMgQWxpYXNpbmcg
aXMgcHJvY2Vzc2VkIGZyb20gdGhlIHRvcCB0byB0aGUgYm90dG9tIG9mIHRoZSBsaW5lLCBhbmQK
LSMgJ2V4aXN0aW5nX3Jlc291cmNlX3BhdGgnIG11c3QgZXhpc3QgYmVmb3JlIGl0IGlzIGFsaWFz
ZWQuCi0jIEZvciBleGFtcGxlLAotIyAgLyAvZWNobwotIyBtZWFucyB0aGF0IGEgcmVxdWVzdCB0
byAnLycgd2lsbCBiZSBoYW5kbGVkIGJ5IGhhbmRsZXJzIGZvciAnL2VjaG8nLgotLyAvZWNobwot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaHN0c193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaHN0
c193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4NjE5NDY5MjFhZjA0NTk0
ZDYyMDI2YjQ2ZjA3NzU4ZGRmZTQwMmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2hzdHNfd3NoLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsNDAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0j
IGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0j
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0
cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHJlcXVlc3QuZXh0cmFfaGVhZGVycy5hcHBlbmQo
Ci0gICAgICAgICgnU3RyaWN0LVRyYW5zcG9ydC1TZWN1cml0eScsICdtYXgtYWdlPTg2NDAwJykp
Ci0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0
LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ0hlbGxvJywgYmluYXJ5PUZhbHNlKQotCi0KLSMgdmk6
c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dz
aC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS9pbnRlcm5hbF9lcnJvcl93c2gucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZlNTgxYjU0YTY0OGMwOWEyMmYyNTQ1MTI3ZDcwZGYwNTEzNDkyMzQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2ludGVybmFsX2Vycm9yX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAK
LSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGls
Ci0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBh
c3MKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJhaXNl
IG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdJbnRlbnRpb25hbCcpCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvb3JpZ2luX2NoZWNrX3dzaC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlMDU3NjdhYjkzMmZiNTgyODI0YWFmMWE1N2Q5MjQ5YzMwNGJkNTFlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9v
cmlnaW5fY2hlY2tfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotIyBDb3B5
cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLSMgVGhpcyBleGFtcGxlIGlzIGRlcml2ZWQgZnJvbSB0ZXN0L3Rlc3RkYXRh
L2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkuCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0
cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIGlmIHJlcXVlc3Qud3Nfb3JpZ2luID09ICdodHRw
Oi8vZXhhbXBsZS5jb20nOgotICAgICAgICByZXR1cm4KLSAgICByYWlzZSBWYWx1ZUVycm9yKCdV
bmFjY2VwdGFibGUgb3JpZ2luOiAlcicgJSByZXF1ZXN0LndzX29yaWdpbikKLQotCi1kZWYgd2Vi
X3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0ZSgnb3JpZ2luX2NoZWNrX3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19w
cm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5j
ZV90ZXN0X2lmcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OGFlZGU5
N2ExNDMwNDI4NTRlNTU1NzI4OTM3MjI4ZmVhYzdiZWIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lm
cmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InBl
cmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJiZW5jaG1h
cmsuanMiPjwvc2NyaXB0PgotPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZv
cm1hbmNlX3Rlc3RfaWZyYW1lLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZy
YW1lLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjViMjViZDFmZmQ2Mzc1OTNl
ZjNmN2YwNmYwYTRmZTY2MGFkMGU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5qcworKysg
L2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLWZ1bmN0aW9uIHBlcmZUZXN0QWRkVG9Mb2codGV4
dCkgewotICBwYXJlbnQucG9zdE1lc3NhZ2Uoeydjb21tYW5kJzogJ2xvZycsICd2YWx1ZSc6IHRl
eHR9LCAnKicpOwotfQotCi1mdW5jdGlvbiBwZXJmVGVzdEFkZFRvU3VtbWFyeSh0ZXh0KSB7Ci19
Ci0KLWZ1bmN0aW9uIHBlcmZUZXN0TWVhc3VyZVZhbHVlKHZhbHVlKSB7Ci0gIHBhcmVudC5wb3N0
TWVzc2FnZSh7J2NvbW1hbmQnOiAnbWVhc3VyZVZhbHVlJywgJ3ZhbHVlJzogdmFsdWV9LCAnKicp
OwotfQotCi1mdW5jdGlvbiBwZXJmVGVzdE5vdGlmeUFib3J0KCkgewotICBwYXJlbnQucG9zdE1l
c3NhZ2Uoeydjb21tYW5kJzogJ25vdGlmeUFib3J0J30sICcqJyk7Ci19Ci0KLWZ1bmN0aW9uIGdl
dENvbmZpZ0ZvclBlcmZvcm1hbmNlVGVzdChjb25uZWN0aW9uVHlwZSwgZGF0YVR5cGUsIGFzeW5j
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmeURhdGEsIG51bUl0
ZXJhdGlvbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtV2FybVVw
SXRlcmF0aW9ucykgewotICB2YXIgcHJlZml4VXJsOwotICBpZiAoY29ubmVjdGlvblR5cGUgPT09
ICdXZWJTb2NrZXQnKSB7Ci0gICAgcHJlZml4VXJsID0gJ3dzOi8vJyArIGxvY2F0aW9uLmhvc3Qg
KyAnL2JlbmNobWFya19oZWxwZXInOwotICB9IGVsc2UgewotICAgIC8vIFhIUiBvciBmZXRjaAot
ICAgIHByZWZpeFVybCA9ICdodHRwOi8vJyArIGxvY2F0aW9uLmhvc3QgKyAnLzA3M2JlMDAxZTEw
OTUwNjkyY2NiZjNhMmFkMjFjMjQ1JzsKLSAgfQotCi0gIHJldHVybiB7Ci0gICAgcHJlZml4VXJs
OiBwcmVmaXhVcmwsCi0gICAgcHJpbnRTaXplOiB0cnVlLAotICAgIG51bVhIUnM6IDEsCi0gICAg
bnVtRmV0Y2hlczogMSwKLSAgICBudW1Tb2NrZXRzOiAxLAotICAgIC8vICsgMSBpcyBmb3IgYSB3
YXJtdXAgaXRlcmF0aW9uIGJ5IHRoZSBUZWxlbWV0cnkgZnJhbWV3b3JrLgotICAgIG51bUl0ZXJh
dGlvbnM6IG51bUl0ZXJhdGlvbnMgKyBudW1XYXJtVXBJdGVyYXRpb25zICsgMSwKLSAgICBudW1X
YXJtVXBJdGVyYXRpb25zOiBudW1XYXJtVXBJdGVyYXRpb25zLAotICAgIG1pblRvdGFsOiAxMDI0
MDAwMCwKLSAgICBzdGFydFNpemU6IDEwMjQwMDAwLAotICAgIHN0b3BUaHJlc2hvbGQ6IDEwMjQw
MDAwLAotICAgIG11bHRpcGxpZXJzOiBbMl0sCi0gICAgdmVyaWZ5RGF0YTogdmVyaWZ5RGF0YSwK
LSAgICBkYXRhVHlwZTogZGF0YVR5cGUsCi0gICAgYXN5bmM6IGFzeW5jLAotICAgIGFkZFRvTG9n
OiBwZXJmVGVzdEFkZFRvTG9nLAotICAgIGFkZFRvU3VtbWFyeTogcGVyZlRlc3RBZGRUb1N1bW1h
cnksCi0gICAgbWVhc3VyZVZhbHVlOiBwZXJmVGVzdE1lYXN1cmVWYWx1ZSwKLSAgICBub3RpZnlB
Ym9ydDogcGVyZlRlc3ROb3RpZnlBYm9ydAotICB9OwotfQotCi12YXIgZGF0YTsKLW9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKLSAgdmFyIGFjdGlvbjsKLSAgaWYgKG1lc3NhZ2UuZGF0
YS5jb21tYW5kID09PSAnc3RhcnQnKSB7Ci0gICAgZGF0YSA9IG1lc3NhZ2UuZGF0YTsKLSAgICBp
bml0V29ya2VyKGRhdGEuY29ubmVjdGlvblR5cGUsICdodHRwOi8vJyArIGxvY2F0aW9uLmhvc3Qp
OwotICAgIGFjdGlvbiA9IGRhdGEuYmVuY2htYXJrTmFtZTsKLSAgfSBlbHNlIHsKLSAgICBhY3Rp
b24gPSAnc3RvcCc7Ci0gIH0KLQotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnRm9yUGVyZm9ybWFu
Y2VUZXN0KGRhdGEuY29ubmVjdGlvblR5cGUsIGRhdGEuZGF0YVR5cGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5hc3luYywgZGF0YS52ZXJpZnlEYXRh
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEubnVtSXRl
cmF0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh
Lm51bVdhcm1VcEl0ZXJhdGlvbnMpOwotICBkb0FjdGlvbihjb25maWcsIGRhdGEuaXNXb3JrZXIs
IGFjdGlvbik7Ci19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3B5d2Vic29ja2V0LmNvbmYg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29uZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzM1ZDEzMGE1Yzg0ZjY5ZGU0ZjgxZDM1OGZiMmNkYjViZGU0YWY2ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcHl3ZWJz
b2NrZXQuY29uZgorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIw
MTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0jCi0jIFNhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIGFwYWNoZTIKLSMKLUxvZ0xl
dmVsIGRlYnVnCi08SWZNb2R1bGUgcHl0aG9uX21vZHVsZT4KLSAgUHl0aG9uUGF0aCAic3lzLnBh
dGgrWycvbW9kX3B5d2Vic29ja2V0J10iCi0gIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQu
aGFuZGxlcl9yb290IC92YXIvd3d3Ci0gIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFu
ZGxlcl9zY2FuIC92YXIvd3d3L3dzCi0gICNQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmFs
bG93X2RyYWZ0NzUgT24KLSAgPExvY2F0aW9uIC93cz4KLSAgICBQeXRob25IZWFkZXJQYXJzZXJI
YW5kbGVyIG1vZF9weXdlYnNvY2tldC5oZWFkZXJwYXJzZXJoYW5kbGVyCi0gIDwvTG9jYXRpb24+
Ci08L0lmTW9kdWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3NwZWNpYWxfaGVhZGVycy5j
Z2kgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvc3BlY2lhbF9oZWFkZXJzLmNnaQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWE1MDgwZjFmMWFlYTNhMzdhN2U3MjljNjc4ZDZhMTIzMzdiZWRiNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
c3BlY2lhbF9oZWFkZXJzLmNnaQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLSMhL3Vz
ci9iaW4vcHl0aG9uCi0KLSMgQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC
U0Qtc3R5bGUKLSMgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxl
IG9yIGF0Ci0jIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vu
c2VzL2JzZAotCi0iIiJDR0kgc2NyaXB0IHNhbXBsZSBmb3IgdGVzdGluZyBlZmZlY3Qgb2YgSFRU
UCBoZWFkZXJzIG9uIHRoZSBvcmlnaW4gcGFnZS4KLQotTm90ZSB0aGF0IENHSSBzY3JpcHRzIGRv
bid0IHdvcmsgb24gdGhlIHN0YW5kYWxvbmUgcHl3ZWJzb2NrZXQgcnVubmluZyBpbiBUTFMKLW1v
ZGUuCi0iIiIKLQotCi1wcmludCAiIiJDb250ZW50LXR5cGU6IHRleHQvaHRtbAotQ29udGVudC1T
ZWN1cml0eS1Qb2xpY3k6IGNvbm5lY3Qtc3JjIHNlbGYKLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRs
ZT48L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotdmFyIHNvY2tldCA9IG5ldyBX
ZWJTb2NrZXQoIndzOi8vZXhhbXBsZS5jb20iKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PiIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWwuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRp
bC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVjMDAwN2IxZWRkNWEwYzU3MTdh
MjhkYTA1NTIxODdhNjdkYTlhNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMyNyAr
MCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwot
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0v
LyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQot
Ly8gVXRpbGl0aWVzIGZvciBleGFtcGxlIGFwcGxpY2F0aW9ucyAoZm9yIGJvdGggbWFpbiBhbmQg
d29ya2VyIHRocmVhZCkuCi0KLXZhciByZXN1bHRzID0ge307Ci0KLWZ1bmN0aW9uIGdldFRpbWVT
dGFtcCgpIHsKLSAgcmV0dXJuIERhdGUubm93KCk7Ci19Ci0KLWZ1bmN0aW9uIGZvcm1hdFJlc3Vs
dEluS2lCKHNpemUsIHRpbWVQZXJNZXNzYWdlSW5Ncywgc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1z
LAotICAgIHNwZWVkLCBwcmludFNpemUpIHsKLSAgaWYgKHByaW50U2l6ZSkgewotICAgIHJldHVy
biAoc2l6ZSAvIDEwMjQpICsKLSAgICAgICAgJ1x0JyArIHRpbWVQZXJNZXNzYWdlSW5Ncy50b0Zp
eGVkKDMpICsKLSAgICAgICAgKHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5NcyA9PSAtMSA/Ci0gICAg
ICAgICAgICAnJyA6Ci0gICAgICAgICAgICAnXHQnICsgc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1z
LnRvRml4ZWQoMykpICsKLSAgICAgICAgJ1x0JyArIHNwZWVkLnRvRml4ZWQoMyk7Ci0gIH0gZWxz
ZSB7Ci0gICAgcmV0dXJuIHNwZWVkLnRvU3RyaW5nKCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gY2xl
YXJBdmVyYWdlRGF0YSgpIHsKLSAgcmVzdWx0cyA9IHt9OwotfQotCi1mdW5jdGlvbiByZXBvcnRB
dmVyYWdlRGF0YShjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvU3VtbWFyeSgKLSAgICAgICdTaXpl
W0tpQl1cdEF2ZXJhZ2UgdGltZVttc11cdFN0ZGRldiB0aW1lW21zXVx0U3BlZWRbS0Ivc10nKTsK
LSAgZm9yICh2YXIgc2l6ZSBpbiByZXN1bHRzKSB7Ci0gICAgdmFyIGF2ZXJhZ2VUaW1lUGVyTWVz
c2FnZUluTXMgPSByZXN1bHRzW3NpemVdLnN1bV90IC8gcmVzdWx0c1tzaXplXS5uOwotICAgIHZh
ciBzcGVlZCA9IGNhbGN1bGF0ZVNwZWVkSW5LQihzaXplLCBhdmVyYWdlVGltZVBlck1lc3NhZ2VJ
bk1zKTsKLSAgICAvLyBDYWxjdWxhdGUgc2FtcGxlIHN0YW5kYXJkIGRldmlhdGlvbgotICAgIHZh
ciBzdGRkZXZUaW1lUGVyTWVzc2FnZUluTXMgPSBNYXRoLnNxcnQoCi0gICAgICAgIChyZXN1bHRz
W3NpemVdLnN1bV90MiAvIHJlc3VsdHNbc2l6ZV0ubiAtCi0gICAgICAgICAgICBhdmVyYWdlVGlt
ZVBlck1lc3NhZ2VJbk1zICogYXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5NcykgKgotICAgICAgICBy
ZXN1bHRzW3NpemVdLm4gLwotICAgICAgICAocmVzdWx0c1tzaXplXS5uIC0gMSkpOwotICAgIGNv
bmZpZy5hZGRUb1N1bW1hcnkoZm9ybWF0UmVzdWx0SW5LaUIoCi0gICAgICAgIHNpemUsIGF2ZXJh
Z2VUaW1lUGVyTWVzc2FnZUluTXMsIHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5Ncywgc3BlZWQsCi0g
ICAgICAgIHRydWUpKTsKLSAgfQotfQotCi1mdW5jdGlvbiBjYWxjdWxhdGVTcGVlZEluS0Ioc2l6
ZSwgdGltZVNwZW50SW5NcykgewotICByZXR1cm4gTWF0aC5yb3VuZChzaXplIC8gdGltZVNwZW50
SW5NcyAqIDEwMDApIC8gMTAwMDsKLX0KLQotZnVuY3Rpb24gY2FsY3VsYXRlQW5kTG9nUmVzdWx0
KGNvbmZpZywgc2l6ZSwgc3RhcnRUaW1lSW5NcywgdG90YWxTaXplLAotICAgIGlzV2FybVVwKSB7
Ci0gIHZhciB0aW1lU3BlbnRJbk1zID0gZ2V0VGltZVN0YW1wKCkgLSBzdGFydFRpbWVJbk1zOwot
ICB2YXIgc3BlZWQgPSBjYWxjdWxhdGVTcGVlZEluS0IodG90YWxTaXplLCB0aW1lU3BlbnRJbk1z
KTsKLSAgdmFyIHRpbWVQZXJNZXNzYWdlSW5NcyA9IHRpbWVTcGVudEluTXMgLyAodG90YWxTaXpl
IC8gc2l6ZSk7Ci0gIGlmICghaXNXYXJtVXApIHsKLSAgICBjb25maWcubWVhc3VyZVZhbHVlKHRp
bWVQZXJNZXNzYWdlSW5Ncyk7Ci0gICAgaWYgKCFyZXN1bHRzW3NpemVdKSB7Ci0gICAgICByZXN1
bHRzW3NpemVdID0ge246IDAsIHN1bV90OiAwLCBzdW1fdDI6IDB9OwotICAgIH0KLSAgICByZXN1
bHRzW3NpemVdLm4gKys7Ci0gICAgcmVzdWx0c1tzaXplXS5zdW1fdCArPSB0aW1lUGVyTWVzc2Fn
ZUluTXM7Ci0gICAgcmVzdWx0c1tzaXplXS5zdW1fdDIgKz0gdGltZVBlck1lc3NhZ2VJbk1zICog
dGltZVBlck1lc3NhZ2VJbk1zOwotICB9Ci0gIGNvbmZpZy5hZGRUb0xvZyhmb3JtYXRSZXN1bHRJ
bktpQihzaXplLCB0aW1lUGVyTWVzc2FnZUluTXMsIC0xLCBzcGVlZCwKLSAgICAgIGNvbmZpZy5w
cmludFNpemUpKTsKLX0KLQotZnVuY3Rpb24gcmVwZWF0U3RyaW5nKHN0ciwgY291bnQpIHsKLSAg
dmFyIGRhdGEgPSAnJzsKLSAgdmFyIGV4cENodW5rID0gc3RyOwotICB2YXIgcmVtYWluID0gY291
bnQ7Ci0gIHdoaWxlICh0cnVlKSB7Ci0gICAgaWYgKHJlbWFpbiAlIDIpIHsKLSAgICAgIGRhdGEg
Kz0gZXhwQ2h1bms7Ci0gICAgICByZW1haW4gPSAocmVtYWluIC0gMSkgLyAyOwotICAgIH0gZWxz
ZSB7Ci0gICAgICByZW1haW4gLz0gMjsKLSAgICB9Ci0KLSAgICBpZiAocmVtYWluID09IDApCi0g
ICAgICBicmVhazsKLQotICAgIGV4cENodW5rID0gZXhwQ2h1bmsgKyBleHBDaHVuazsKLSAgfQot
ICByZXR1cm4gZGF0YTsKLX0KLQotZnVuY3Rpb24gZmlsbEFycmF5QnVmZmVyKGJ1ZmZlciwgYykg
ewotICB2YXIgaTsKLQotICB2YXIgdTMyQ29udGVudCA9IGMgKiAweDAxMDEwMTAxOwotCi0gIHZh
ciB1MzJCbG9ja3MgPSBNYXRoLmZsb29yKGJ1ZmZlci5ieXRlTGVuZ3RoIC8gNCk7Ci0gIHZhciB1
MzJWaWV3ID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlciwgMCwgdTMyQmxvY2tzKTsKLSAgLy8gbGVu
Z3RoIGF0dHJpYnV0ZSBpcyBzbG93IG9uIENocm9tZS4gRG9uJ3QgdXNlIGl0IGZvciBsb29wIGNv
bmRpdGlvbi4KLSAgZm9yIChpID0gMDsgaSA8IHUzMkJsb2NrczsgKytpKSB7Ci0gICAgdTMyVmll
d1tpXSA9IHUzMkNvbnRlbnQ7Ci0gIH0KLQotICAvLyBGcmFjdGlvbgotICB2YXIgdThCbG9ja3Mg
PSBidWZmZXIuYnl0ZUxlbmd0aCAtIHUzMkJsb2NrcyAqIDQ7Ci0gIHZhciB1OFZpZXcgPSBuZXcg
VWludDhBcnJheShidWZmZXIsIHUzMkJsb2NrcyAqIDQsIHU4QmxvY2tzKTsKLSAgZm9yIChpID0g
MDsgaSA8IHU4QmxvY2tzOyArK2kpIHsKLSAgICB1OFZpZXdbaV0gPSBjOwotICB9Ci19Ci0KLWZ1
bmN0aW9uIHZlcmlmeUFycmF5QnVmZmVyKGJ1ZmZlciwgZXhwZWN0ZWRDaGFyKSB7Ci0gIHZhciBp
OwotCi0gIHZhciBleHBlY3RlZFUzMlZhbHVlID0gZXhwZWN0ZWRDaGFyICogMHgwMTAxMDEwMTsK
LQotICB2YXIgdTMyQmxvY2tzID0gTWF0aC5mbG9vcihidWZmZXIuYnl0ZUxlbmd0aCAvIDQpOwot
ICB2YXIgdTMyVmlldyA9IG5ldyBVaW50MzJBcnJheShidWZmZXIsIDAsIHUzMkJsb2Nrcyk7Ci0g
IGZvciAoaSA9IDA7IGkgPCB1MzJCbG9ja3M7ICsraSkgewotICAgIGlmICh1MzJWaWV3W2ldICE9
IGV4cGVjdGVkVTMyVmFsdWUpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gIH0KLQot
ICB2YXIgdThCbG9ja3MgPSBidWZmZXIuYnl0ZUxlbmd0aCAtIHUzMkJsb2NrcyAqIDQ7Ci0gIHZh
ciB1OFZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIsIHUzMkJsb2NrcyAqIDQsIHU4QmxvY2tz
KTsKLSAgZm9yIChpID0gMDsgaSA8IHU4QmxvY2tzOyArK2kpIHsKLSAgICBpZiAodThWaWV3W2ld
ICE9IGV4cGVjdGVkQ2hhcikgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgfQotCi0g
IHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiB2ZXJpZnlCbG9iKGNvbmZpZywgYmxvYiwgZXhw
ZWN0ZWRDaGFyLCBkb25lQ2FsbGJhY2spIHsKLSAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVy
KGJsb2IpOwotICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgIGNvbmZpZy5hZGRU
b0xvZygnRmlsZVJlYWRlciBFcnJvcjogJyArIHJlYWRlci5lcnJvci5tZXNzYWdlKTsKLSAgICBk
b25lQ2FsbGJhY2soYmxvYi5zaXplLCBmYWxzZSk7Ci0gIH0KLSAgcmVhZGVyLm9ubG9hZGVuZCA9
IGZ1bmN0aW9uKCkgewotICAgIHZhciByZXN1bHQgPSB2ZXJpZnlBcnJheUJ1ZmZlcihyZWFkZXIu
cmVzdWx0LCBleHBlY3RlZENoYXIpOwotICAgIGRvbmVDYWxsYmFjayhibG9iLnNpemUsIHJlc3Vs
dCk7Ci0gIH0KLSAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpOwotfQotCi1mdW5jdGlv
biB2ZXJpZnlBY2tub3dsZWRnZW1lbnQoY29uZmlnLCBtZXNzYWdlLCBzaXplKSB7Ci0gIGlmICh0
eXBlb2YgbWVzc2FnZSAhPSAnc3RyaW5nJykgewotICAgIGNvbmZpZy5hZGRUb0xvZygnSW52YWxp
ZCBhY2sgdHlwZTogJyArIHR5cGVvZiBtZXNzYWdlKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0K
LSAgdmFyIHBhcnNlZEFjayA9IHBhcnNlSW50KG1lc3NhZ2UpOwotICBpZiAoaXNOYU4ocGFyc2Vk
QWNrKSkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnSW52YWxpZCBhY2sgdmFsdWU6ICcgKyBtZXNz
YWdlKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgaWYgKHBhcnNlZEFjayAhPSBzaXplKSB7
Ci0gICAgY29uZmlnLmFkZFRvTG9nKAotICAgICAgICAnRXhwZWN0ZWQgYWNrIGZvciAnICsgc2l6
ZSArICdCIGJ1dCByZWNlaXZlZCBvbmUgZm9yICcgKyBwYXJzZWRBY2sgKwotICAgICAgICAnQicp
OwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlv
biBjbG9uZUNvbmZpZyhvYmopIHsKLSAgdmFyIG5ld09iaiA9IHt9OwotICBmb3IgKGtleSBpbiBv
YmopIHsKLSAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldOwotICB9Ci0gIHJldHVybiBuZXdPYmo7
Ci19Ci0KLXZhciB0YXNrcyA9IFtdOwotCi1mdW5jdGlvbiBydW5OZXh0VGFzayhjb25maWcpIHsK
LSAgdmFyIHRhc2sgPSB0YXNrcy5zaGlmdCgpOwotICBpZiAodGFzayA9PSB1bmRlZmluZWQpIHsK
LSAgICBjb25maWcuYWRkVG9Mb2coJ0ZpbmlzaGVkJyk7Ci0gICAgY2xlYW51cCgpOwotICAgIHJl
dHVybjsKLSAgfQotICB0aW1lcklEID0gc2V0VGltZW91dCh0YXNrLCAwKTsKLX0KLQotZnVuY3Rp
b24gYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSB7Ci0gIHZhciBsZWdlbmQgPSAnJwotICBpZiAo
Y29uZmlnLnByaW50U2l6ZSkKLSAgICBsZWdlbmQgPSAnTWVzc2FnZSBzaXplIGluIEtpQiwgVGlt
ZS9tZXNzYWdlIGluIG1zLCAnOwotICBsZWdlbmQgKz0gJ1NwZWVkIGluIGtCL3MnOwotICByZXR1
cm4gbGVnZW5kOwotfQotCi1mdW5jdGlvbiBhZGRUYXNrcyhjb25maWcsIHN0ZXBGdW5jKSB7Ci0g
IGZvciAodmFyIGkgPSAwOwotICAgICAgaSA8IGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsg
Y29uZmlnLm51bUl0ZXJhdGlvbnM7ICsraSkgewotICAgIHZhciBtdWx0aXBsaWVySW5kZXggPSAw
OwotICAgIGZvciAodmFyIHNpemUgPSBjb25maWcuc3RhcnRTaXplOwotICAgICAgICAgc2l6ZSA8
PSBjb25maWcuc3RvcFRocmVzaG9sZDsKLSAgICAgICAgICsrbXVsdGlwbGllckluZGV4KSB7Ci0g
ICAgICB2YXIgdGFzayA9IHN0ZXBGdW5jLmJpbmQoCi0gICAgICAgICAgbnVsbCwKLSAgICAgICAg
ICBzaXplLAotICAgICAgICAgIGNvbmZpZywKLSAgICAgICAgICBpIDwgY29uZmlnLm51bVdhcm1V
cEl0ZXJhdGlvbnMpOwotICAgICAgdGFza3MucHVzaCh0YXNrKTsKLSAgICAgIHZhciBtdWx0aXBs
aWVyID0gY29uZmlnLm11bHRpcGxpZXJzWwotICAgICAgICBtdWx0aXBsaWVySW5kZXggJSBjb25m
aWcubXVsdGlwbGllcnMubGVuZ3RoXTsKLSAgICAgIGlmIChtdWx0aXBsaWVyIDw9IDEpIHsKLSAg
ICAgICAgY29uZmlnLmFkZFRvTG9nKCdJbnZhbGlkIG11bHRpcGxpZXIgJyArIG11bHRpcGxpZXIp
OwotICAgICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdJbnZhbGlkIG11bHRpcGxlcicpOwotICAgICAgfQotICAgICAgc2l6ZSA9IE1hdGguY2VpbChz
aXplICogbXVsdGlwbGllcik7Ci0gICAgfQotICB9Ci19Ci0KLWZ1bmN0aW9uIGFkZFJlc3VsdFJl
cG9ydGluZ1Rhc2soY29uZmlnLCB0aXRsZSkgewotICB0YXNrcy5wdXNoKGZ1bmN0aW9uKCl7Ci0g
ICAgICB0aW1lcklEID0gbnVsbDsKLSAgICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkodGl0bGUpOwot
ICAgICAgcmVwb3J0QXZlcmFnZURhdGEoY29uZmlnKTsKLSAgICAgIGNsZWFyQXZlcmFnZURhdGEo
KTsKLSAgICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH0pOwotfQotCi1mdW5jdGlvbiBzZW5k
QmVuY2htYXJrKGNvbmZpZykgewotICBjb25maWcuYWRkVG9Mb2coJ1NlbmQgYmVuY2htYXJrJyk7
Ci0gIGNvbmZpZy5hZGRUb0xvZyhidWlsZExlZ2VuZFN0cmluZyhjb25maWcpKTsKLQotICB0YXNr
cyA9IFtdOwotICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gIGFkZFRhc2tzKGNvbmZpZywgc2VuZEJl
bmNobWFya1N0ZXApOwotICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywgJ1NlbmQgQmVu
Y2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0gIHN0YXJ0QmVuY2htYXJrKGNv
bmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIHJlY2VpdmVCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNvbmZp
Zy5hZGRUb0xvZygnUmVjZWl2ZSBiZW5jaG1hcmsnKTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1aWxk
TGVnZW5kU3RyaW5nKGNvbmZpZykpOwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURh
dGEoKTsKLSAgYWRkVGFza3MoY29uZmlnLCByZWNlaXZlQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJl
c3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLAotICAgICAgJ1JlY2VpdmUgQmVuY2htYXJrICcgKyBn
ZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0K
LWZ1bmN0aW9uIHN0b3AoY29uZmlnKSB7Ci0gIGNsZWFyVGltZW91dCh0aW1lcklEKTsKLSAgdGlt
ZXJJRCA9IG51bGw7Ci0gIHRhc2tzID0gW107Ci0gIGNvbmZpZy5hZGRUb0xvZygnU3RvcHBlZCcp
OwotICBjbGVhbnVwKCk7Ci19Ci0KLXZhciB3b3JrZXI7Ci0KLWZ1bmN0aW9uIGluaXRXb3JrZXIo
Y29ubmVjdGlvblR5cGUsIG9yaWdpbikgewotICB2YXIgc2NyaXB0UGF0aCA9Ci0gICAgY29ubmVj
dGlvblR5cGUgPT09ICdXZWJTb2NrZXQnID8gJy9iZW5jaG1hcmsuanMnIDoKLSAgICBjb25uZWN0
aW9uVHlwZSA9PT0gJ1hIUicgPyAnL3hocl9iZW5jaG1hcmsuanMnIDoKLSAgICAnL2ZldGNoX2Jl
bmNobWFyay5qcyc7IC8vIGNvbm5lY3Rpb25UeXBlID09PSAnZmV0Y2gnCi0gIHdvcmtlciA9IG5l
dyBXb3JrZXIob3JpZ2luICsgc2NyaXB0UGF0aCk7Ci19Ci0KLWZ1bmN0aW9uIGRvQWN0aW9uKGNv
bmZpZywgaXNXaW5kb3dUb1dvcmtlciwgYWN0aW9uKSB7Ci0gIGlmIChpc1dpbmRvd1RvV29ya2Vy
KSB7Ci0gICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGFkZFRvTG9nLCBhZGRUb1N1bW1h
cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVWYWx1ZSwgbm90aWZ5
QWJvcnQsIG1lc3NhZ2UpIHsKLSAgICAgIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ2FkZFRv
TG9nJykKLSAgICAgICAgYWRkVG9Mb2cobWVzc2FnZS5kYXRhLmRhdGEpOwotICAgICAgZWxzZSBp
ZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdhZGRUb1N1bW1hcnknKQotICAgICAgICBhZGRUb1N1
bW1hcnkobWVzc2FnZS5kYXRhLmRhdGEpOwotICAgICAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5
cGUgPT09ICdtZWFzdXJlVmFsdWUnKQotICAgICAgICBtZWFzdXJlVmFsdWUobWVzc2FnZS5kYXRh
LmRhdGEpOwotICAgICAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdub3RpZnlBYm9y
dCcpCi0gICAgICAgIG5vdGlmeUFib3J0KCk7Ci0gICAgfS5iaW5kKHVuZGVmaW5lZCwgY29uZmln
LmFkZFRvTG9nLCBjb25maWcuYWRkVG9TdW1tYXJ5LAotICAgICAgICAgICBjb25maWcubWVhc3Vy
ZVZhbHVlLCBjb25maWcubm90aWZ5QWJvcnQpOwotICAgIGNvbmZpZy5hZGRUb0xvZyA9IHVuZGVm
aW5lZDsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5ID0gdW5kZWZpbmVkOwotICAgIGNvbmZpZy5t
ZWFzdXJlVmFsdWUgPSB1bmRlZmluZWQ7Ci0gICAgY29uZmlnLm5vdGlmeUFib3J0ID0gdW5kZWZp
bmVkOwotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTogYWN0aW9uLCBjb25maWc6IGNvbmZp
Z30pOwotICB9IGVsc2UgewotICAgIGlmIChhY3Rpb24gPT09ICdzZW5kQmVuY2htYXJrJykKLSAg
ICAgIHNlbmRCZW5jaG1hcmsoY29uZmlnKTsKLSAgICBlbHNlIGlmIChhY3Rpb24gPT09ICdyZWNl
aXZlQmVuY2htYXJrJykKLSAgICAgIHJlY2VpdmVCZW5jaG1hcmsoY29uZmlnKTsKLSAgICBlbHNl
IGlmIChhY3Rpb24gPT09ICdiYXRjaEJlbmNobWFyaycpCi0gICAgICBiYXRjaEJlbmNobWFyayhj
b25maWcpOwotICAgIGVsc2UgaWYgKGFjdGlvbiA9PT0gJ3N0b3AnKQotICAgICAgc3RvcChjb25m
aWcpOwotICB9Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbF9tYWluLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL3V0aWxfbWFpbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDcx
ZWQ2M2ZiNWQ3NDlkMGVkMjE4MWI1YWFiY2NlMmU5MzY1Yjg3ZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbF9tYWluLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBp
biB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNv
bS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotLy8gVXRpbGl0aWVzIGZvciBleGFtcGxlIGFw
cGxpY2F0aW9ucyAoZm9yIHRoZSBtYWluIHRocmVhZCBvbmx5KS4KLQotdmFyIGxvZ0JveCA9IG51
bGw7Ci12YXIgcXVldWVkTG9nID0gJyc7Ci0KLXZhciBzdW1tYXJ5Qm94ID0gbnVsbDsKLQotZnVu
Y3Rpb24gcXVldWVMb2cobG9nKSB7Ci0gIHF1ZXVlZExvZyArPSBsb2cgKyAnXG4nOwotfQotCi1m
dW5jdGlvbiBhZGRUb0xvZyhsb2cpIHsKLSAgbG9nQm94LnZhbHVlICs9IHF1ZXVlZExvZzsKLSAg
cXVldWVkTG9nID0gJyc7Ci0gIGxvZ0JveC52YWx1ZSArPSBsb2cgKyAnXG4nOwotICBsb2dCb3gu
c2Nyb2xsVG9wID0gMTAwMDAwMDsKLX0KLQotZnVuY3Rpb24gYWRkVG9TdW1tYXJ5KGxvZykgewot
ICBzdW1tYXJ5Qm94LnZhbHVlICs9IGxvZyArICdcbic7Ci0gIHN1bW1hcnlCb3guc2Nyb2xsVG9w
ID0gMTAwMDAwMDsKLX0KLQotLy8gdmFsdWU6IGV4ZWN1dGlvbiB0aW1lIGluIG1pbGxpc2Vjb25k
cy4KLS8vIGNvbmZpZy5tZWFzdXJlVmFsdWUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBQZXJm
b3JtYW5jZSBUZXN0cy4KLS8vIERvIG5vdGhpbmcgaGVyZSBpbiBub24tUGVyZm9ybWFuY2VUZXN0
LgotZnVuY3Rpb24gbWVhc3VyZVZhbHVlKHZhbHVlKSB7Ci19Ci0KLS8vIGNvbmZpZy5ub3RpZnlB
Ym9ydCBpcyBjYWxsZWQgd2hlbiB0aGUgYmVuY2htYXJrIGZhaWxlZCBhbmQgYWJvcnRlZCwgYW5k
Ci0vLyBpbnRlbmRlZCB0byBiZSB1c2VkIGluIFBlcmZvcm1hbmNlIFRlc3RzLgotLy8gRG8gbm90
aGluZyBoZXJlIGluIG5vbi1QZXJmb3JtYW5jZVRlc3QuCi1mdW5jdGlvbiBub3RpZnlBYm9ydCgp
IHsKLX0KLQotZnVuY3Rpb24gZ2V0SW50RnJvbUlucHV0KGlkKSB7Ci0gIHJldHVybiBwYXJzZUlu
dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkudmFsdWUpOwotfQotCi1mdW5jdGlvbiBnZXRT
dHJpbmdGcm9tUmFkaW9Cb3gobmFtZSkgewotICB2YXIgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdiZW5jaG1hcmtfZm9ybScpW25hbWVdOwotICBmb3IgKHZhciBpID0gMDsgaSA8IGxp
c3QubGVuZ3RoOyArK2kpCi0gICAgaWYgKGxpc3QuaXRlbShpKS5jaGVja2VkKQotICAgICAgcmV0
dXJuIGxpc3QuaXRlbShpKS52YWx1ZTsKLSAgcmV0dXJuIHVuZGVmaW5lZDsKLX0KLWZ1bmN0aW9u
IGdldEJvb2xGcm9tQ2hlY2tCb3goaWQpIHsKLSAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGlkKS5jaGVja2VkOwotfQotCi1mdW5jdGlvbiBnZXRJbnRBcnJheUZyb21JbnB1dChpZCkg
ewotICB2YXIgc3RyQXJyYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkudmFsdWUuc3Bs
aXQoJywnKTsKLSAgcmV0dXJuIHN0ckFycmF5Lm1hcChmdW5jdGlvbihzdHIpIHsgcmV0dXJuIHBh
cnNlSW50KHN0ciwgMTApOyB9KTsKLX0KLQotZnVuY3Rpb24gZ2V0RmxvYXRBcnJheUZyb21JbnB1
dChpZCkgewotICB2YXIgc3RyQXJyYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkudmFs
dWUuc3BsaXQoJywnKTsKLSAgcmV0dXJuIHN0ckFycmF5Lm1hcChwYXJzZUZsb2F0KTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsX3dvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGls
X3dvcmtlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOThkY2Y0NDE3Mjk5Zjlj
OWQ2MWRlZWZjYjFhNTk1YWVhYjA1ZDU2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbF93b3JrZXIuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwyMCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotLy8KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGEgQlNELXN0eWxlCi0vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZ
SU5HIGZpbGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291
cmNlL2xpY2Vuc2VzL2JzZAotCi0vLyBVdGlsaXRpZXMgZm9yIGV4YW1wbGUgYXBwbGljYXRpb25z
IChmb3IgdGhlIHdvcmtlciB0aHJlYWRzIG9ubHkpLgotCi1vbm1lc3NhZ2UgPSBmdW5jdGlvbiAo
bWVzc2FnZSkgewotICB2YXIgY29uZmlnID0gbWVzc2FnZS5kYXRhLmNvbmZpZzsKLSAgY29uZmln
LmFkZFRvTG9nID0gZnVuY3Rpb24odGV4dCkgewotICAgICAgcG9zdE1lc3NhZ2Uoe3R5cGU6ICdh
ZGRUb0xvZycsIGRhdGE6IHRleHR9KTsgfTsKLSAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGZ1bmN0
aW9uKHRleHQpIHsKLSAgICAgIHBvc3RNZXNzYWdlKHt0eXBlOiAnYWRkVG9TdW1tYXJ5JywgZGF0
YTogdGV4dH0pOyB9OwotICBjb25maWcubWVhc3VyZVZhbHVlID0gZnVuY3Rpb24odmFsdWUpIHsK
LSAgICAgIHBvc3RNZXNzYWdlKHt0eXBlOiAnbWVhc3VyZVZhbHVlJywgZGF0YTogdmFsdWV9KTsg
fTsKLSAgY29uZmlnLm5vdGlmeUFib3J0ID0gZnVuY3Rpb24oKSB7IHBvc3RNZXNzYWdlKHt0eXBl
OiAnbm90aWZ5QWJvcnQnfSk7IH07Ci0KLSAgZG9BY3Rpb24oY29uZmlnLCBmYWxzZSwgbWVzc2Fn
ZS5kYXRhLnR5cGUpOwotfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMGY5M2I4YjY5NTViMDYyNWE2MTE0N2QzYzMzYjI3ZTllOWI1NWQ3ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvYWJvcnRfaGFuZHNoYWtlX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hYm9ydF93c2gucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvYXJyYXlidWZmZXJfYmVuY2htYXJrLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
YmVuY2hfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFyay5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2JlbmNobWFyay5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvZXhhbXBsZS9jbG9zZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY29uc29sZS5odG1sCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2Nvb2tpZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19jbGllbnQucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvZWNob19ub2V4dF93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob193c2gucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2V2ZW50c291cmNl
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
ZmV0Y2hfYmVuY2htYXJrLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX3BlcmZvcm1hbmNlX3Rlc3Rf
aWZyYW1lLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2hzdHNfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dzaC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rl
c3RfaWZyYW1lLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29uZgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9zcGVjaWFsX2hl
YWRlcnMuY2dpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWwuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbF9tYWlu
LmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL3V0aWxfd29ya2VyLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5j
aG1hcmsuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfYmVuY2htYXJrLmpzCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L3hocl9ldmVudF9sb2dnZXIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfcGVyZm9ybWFuY2VfdGVz
dF9pZnJhbWUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS94aHJfYmVuY2htYXJrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDgwMGQyMGM5Y2NiNGFiZWNmMjM5Yzc1YjE4NTc3YjBkMWZmMTFjOTIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3ho
cl9iZW5jaG1hcmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIxMiArMCwwIEBACi08IS0tCi1D
b3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5YTUxIdHRw
UmVxdWVzdCBiZW5jaG1hcms8L3RpdGxlPgotPHNjcmlwdCBzcmM9InV0aWxfbWFpbi5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ieGhy
X2JlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGFkZHJlc3NCb3ggPSBudWxs
OwotCi1mdW5jdGlvbiBnZXRDb25maWcoKSB7Ci0gIHJldHVybiB7Ci0gICAgcHJlZml4VXJsOiBh
ZGRyZXNzQm94LnZhbHVlLAotICAgIHByaW50U2l6ZTogZ2V0Qm9vbEZyb21DaGVja0JveCgncHJp
bnRzaXplJyksCi0gICAgbnVtWEhSczogZ2V0SW50RnJvbUlucHV0KCdudW1YSFJzJyksCi0gICAg
YXN5bmM6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ2FzeW5jJyksCi0gICAgLy8gSW5pdGlhbCBzaXpl
IG9mIG1lc3NhZ2VzLgotICAgIG51bUl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtaXRl
cmF0aW9ucycpLAotICAgIG51bVdhcm1VcEl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVt
d2FybXVwaXRlcmF0aW9ucycpLAotICAgIHN0YXJ0U2l6ZTogZ2V0SW50RnJvbUlucHV0KCdzdGFy
dHNpemUnKSwKLSAgICAvLyBTdG9wcyBiZW5jaG1hcmsgd2hlbiB0aGUgc2l6ZSBvZiBtZXNzYWdl
IGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQuCi0gICAgc3RvcFRocmVzaG9sZDogZ2V0SW50RnJvbUlu
cHV0KCdzdG9wdGhyZXNob2xkJyksCi0gICAgbXVsdGlwbGllcnM6IGdldEZsb2F0QXJyYXlGcm9t
SW5wdXQoJ211bHRpcGxpZXJzJyksCi0gICAgdmVyaWZ5RGF0YTogZ2V0Qm9vbEZyb21DaGVja0Jv
eCgndmVyaWZ5ZGF0YScpLAotICAgIG1ldGhvZEFuZENhY2hlOiBnZXRTdHJpbmdGcm9tUmFkaW9C
b3goJ21ldGhvZGFuZGNhY2hlJyksCi0gICAgYWRkVG9Mb2c6IGFkZFRvTG9nLAotICAgIGFkZFRv
U3VtbWFyeTogYWRkVG9TdW1tYXJ5LAotICAgIG1lYXN1cmVWYWx1ZTogbWVhc3VyZVZhbHVlLAot
ICAgIG5vdGlmeUFib3J0OiBub3RpZnlBYm9ydAotICB9OwotfQotCi1mdW5jdGlvbiBvblNlbmRC
ZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLSAgY29uZmlnLmRhdGFU
eXBlID0gZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdkYXRhdHlwZXJhZGlvJyk7Ci0gIGRvQWN0aW9u
KGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdzZW5kQmVuY2htYXJrJyk7
Ci19Ci0KLWZ1bmN0aW9uIG9uUmVjZWl2ZUJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdl
dENvbmZpZygpOwotICBjb25maWcuZGF0YVR5cGUgPSBnZXRTdHJpbmdGcm9tUmFkaW9Cb3goJ2Rh
dGF0eXBlcmFkaW8nKTsKLSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3
b3JrZXInKSwgJ3JlY2VpdmVCZW5jaG1hcmsnKTsKLX0KLQotZnVuY3Rpb24gb25CYXRjaEJlbmNo
bWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBkb0FjdGlvbihjb25maWcs
IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnYmF0Y2hCZW5jaG1hcmsnKTsKLX0KLQot
ZnVuY3Rpb24gb25TdG9wKCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGRvQWN0
aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdzdG9wJyk7Ci19Ci0K
LWZ1bmN0aW9uIGluaXQoKSB7Ci0gIGFkZHJlc3NCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYWRkcmVzcycpOwotICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7
Ci0KLSAgc3VtbWFyeUJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdW1tYXJ5Jyk7Ci0K
LSAgLy8gU3BlY2lhbCBhZGRyZXNzIG9mIHB5d2Vic29ja2V0IGZvciBYSFIgYmVuY2htYXJrLgot
ICBhZGRyZXNzQm94LnZhbHVlID0gJy8wNzNiZTAwMWUxMDk1MDY5MmNjYmYzYTJhZDIxYzI0NSc7
Ci0KLSAgYWRkVG9Mb2cod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7
Ci0gIGFkZFRvU3VtbWFyeSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgp
KTsKLQotICBpbml0V29ya2VyKCdYSFInLCAnJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0iaW5pdCgpIj4KLQotPGZvcm0gaWQ9ImJlbmNobWFya19mb3JtIj4KLSAgdXJs
IHByZWZpeCA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFkZHJlc3MiIHNpemU9IjQwIj4KLSAgPGlu
cHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InNlbmQiIG9uY2xpY2s9Im9uU2VuZEJlbmNobWFyaygp
Ij4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InJlY2VpdmUiIG9uY2xpY2s9Im9uUmVj
ZWl2ZUJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9ImJhdGNoIiBv
bmNsaWNrPSJvbkJhdGNoQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1
ZT0ic3RvcCIgb25jbGljaz0ib25TdG9wKCkiPgotCi0gIDxici8+Ci0KLSAgPGlucHV0IHR5cGU9
ImNoZWNrYm94IiBpZD0icHJpbnRzaXplIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJwcmludHNp
emUiPlByaW50IHNpemUgYW5kIHRpbWUgcGVyIG1lc3NhZ2U8L2xhYmVsPgotICA8aW5wdXQgdHlw
ZT0iY2hlY2tib3giIGlkPSJ2ZXJpZnlkYXRhIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJ2ZXJp
ZnlkYXRhIj5WZXJpZnkgZGF0YTwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9
IndvcmtlciI+Ci0gIDxsYWJlbCBmb3I9IndvcmtlciI+UnVuIG9uIHdvcmtlcjwvbGFiZWw+Ci0g
IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImFzeW5jIiBjaGVja2VkPgotICA8bGFiZWwgZm9y
PSJhc3luYyI+QXN5bmM8L2xhYmVsPjxicj4KLSAgKFJlY2VpdmUgJmFtcDsmYW1wOyBOb24tV29y
a2VyICZhbXA7JmFtcDsgU3luYyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHNwZWMpCi0KLSAgPGJyLz4K
LQotICBQYXJhbWV0ZXJzOgotCi0gIDxici8+Ci0KLSAgPHRhYmxlPgotICAgIDx0cj4KLSAgICAg
IDx0ZD5OdW0gWEhSczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1Y
SFJzIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW1i
ZXIgb2YgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJu
dW1pdGVyYXRpb25zIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAg
IDx0ZD5OdW1iZXIgb2Ygd2FybS11cCBpdGVyYXRpb25zPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQg
dHlwZT0idGV4dCIgaWQ9Im51bXdhcm11cGl0ZXJhdGlvbnMiIHZhbHVlPSIwIj48L3RkPgotICAg
IDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPlN0YXJ0IHNpemU8L3RkPgotICAgICAgPHRkPjxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RhcnRzaXplIiB2YWx1ZT0iMTAyNDAiPjwvdGQ+Ci0gICAg
PC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3RvcCB0aHJlc2hvbGQ8L3RkPgotICAgICAgPHRk
PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RvcHRocmVzaG9sZCIgdmFsdWU9IjEwMjQwMDAwMCI+
PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5NdWx0aXBsaWVyczwvdGQ+Ci0g
ICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJtdWx0aXBsaWVycyIgdmFsdWU9IjUsIDIi
PjwvdGQ+Ci0gICAgPC90cj4KLSAgPC90YWJsZT4KLQotICBTZXQgZGF0YSB0eXBlCi0gIDxpbnB1
dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCi0gICAgICAgICBp
ZD0iZGF0YXR5cGVyYWRpb3RleHQiCi0gICAgICAgICB2YWx1ZT0idGV4dCIKLSAgICAgICAgIGNo
ZWNrZWQ+PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb3RleHQiPnRleHQ8L2xhYmVsPgotICA8aW5w
dXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJkYXRhdHlwZXJhZGlvIgotICAgICAgICAg
aWQ9ImRhdGF0eXBlcmFkaW9ibG9iIgotICAgICAgICAgdmFsdWU9ImJsb2IiCi0gICAgICAgICA+
PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb2Jsb2IiPmJsb2I8L2xhYmVsPgotICA8aW5wdXQgdHlw
ZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJkYXRhdHlwZXJhZGlvIgotICAgICAgICAgaWQ9ImRh
dGF0eXBlcmFkaW9hcnJheWJ1ZmZlciIKLSAgICAgICAgIHZhbHVlPSJhcnJheWJ1ZmZlciIKLSAg
ICAgICAgID48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvYXJyYXlidWZmZXIiPmFycmF5YnVmZmVy
PC9sYWJlbD4KLQotICA8YnI+Ci0gIFNldCBIVFRQIG1ldGhvZCBhbmQgY2FjaGUgY29udHJvbAot
ICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJtZXRob2RhbmRjYWNoZSIKLSAg
ICAgICAgIGlkPSJtZXRob2RhbmRjYWNoZVBPU1QiCi0gICAgICAgICB2YWx1ZT0iUE9TVCIKLSAg
ICAgICAgIGNoZWNrZWQ+PGxhYmVsIGZvcj0ibWV0aG9kYW5kY2FjaGVQT1NUIj5QT1NUIChObyBD
YWNoZSk8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJtZXRo
b2RhbmRjYWNoZSIKLSAgICAgICAgIGlkPSJtZXRob2RhbmRjYWNoZUdFVE5PQ0FDSEUiCi0gICAg
ICAgICB2YWx1ZT0iR0VULU5PQ0FDSEUiCi0gICAgICAgICA+PGxhYmVsIGZvcj0ibWV0aG9kYW5k
Y2FjaGVHRVROT0NBQ0hFIj5HRVQgKE5vIENhY2hlKTwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJy
YWRpbyIKLSAgICAgICAgIG5hbWU9Im1ldGhvZGFuZGNhY2hlIgotICAgICAgICAgaWQ9Im1ldGhv
ZGFuZGNhY2hlR0VUQ0FDSEUiCi0gICAgICAgICB2YWx1ZT0iR0VULUNBQ0hFIgotICAgICAgICAg
PjxsYWJlbCBmb3I9Im1ldGhvZGFuZGNhY2hlR0VUQ0FDSEUiPkdFVCAoQ2FjaGUpPC9sYWJlbD4K
LSAgPGJyPgotICA8c3BhbiBzdHlsZT0iZm9udC1zaXplOiA4MCUiPihDYWNoZSBjb250cm9sOiBy
ZWNlaXZlIG9ubHkuIENhY2hlIGlzIHZhbGlkIGZvciAxMCBzZWNvbmRzLiBUaGlzIGNvbmZpZyBj
b250cm9scyBDYWNoZS1jb250cm9sIEhUVFAgcmVzcG9uc2UgaGVhZGVyLiBCcm93c2VycyBtaWdo
dCBub3QgY2FjaGUgZGF0YSBlLmcuIHdoZW4gaXQgaXMgbGFyZ2UpPC9zcGFuPgotPC9mb3JtPgot
Ci08ZGl2IGlkPSJsb2dfZGl2Ij4KLSAgPHRleHRhcmVhCi0gICAgICBpZD0ibG9nIiByb3dzPSIy
MCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9kaXY+Ci08ZGl2
IGlkPSJzdW1tYXJ5X2RpdiI+Ci0gIFN1bW1hcnkKLSAgPHRleHRhcmVhCi0gICAgICBpZD0ic3Vt
bWFyeSIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4K
LTwvZGl2PgotCi08ZGl2IGlkPSJub3RlX2RpdiI+Ci0gIE5vdGU6Ci0gIDx1bD4KLSAgICA8bGk+
RWZmZWN0IG9mIFJUVCBhbmQgdGltZSBzcGVudCBmb3IgQXJyYXlCdWZmZXIgY3JlYXRpb24gaW4g
cmVjZWl2ZSBiZW5jaG1hcmtzIGFyZSBub3QgZWxpbWluYXRlZC48L2xpPgotICAgIDxsaT5UaGUg
U3RkZGV2IGNvbHVtbiBzaG93cyBOYU4gd2hlbiB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaXMg
c2V0IHRvIDEuPC9saT4KLSAgPC91bD4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2JlbmNobWFyay5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJf
YmVuY2htYXJrLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGE5N2U4ZmI4M2U5
NDhjODVmOWYwMjEwMjFkYzc0NzkzMDVlNmMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfYmVuY2htYXJrLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMjkyICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhl
IENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Bl
bi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLXZhciBpc1dvcmtlciA9IHR5cGVvZiBpbXBvcnRTY3Jp
cHRzICE9PSAidW5kZWZpbmVkIjsKLQotaWYgKGlzV29ya2VyKSB7Ci0gIC8vIFJ1bm5pbmcgb24g
YSB3b3JrZXIKLSAgaW1wb3J0U2NyaXB0cygndXRpbC5qcycsICd1dGlsX3dvcmtlci5qcycpOwot
fQotCi0vLyBOYW1lc3BhY2UgZm9yIGhvbGRpbmcgZ2xvYmFscy4KLXZhciBiZW5jaG1hcmsgPSB7
fTsKLWJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gMDsKLQotdmFyIHhocnMgPSBbXTsKLQotdmFy
IHRpbWVySUQgPSBudWxsOwotCi1mdW5jdGlvbiBkZXN0cm95QWxsWEhScygpIHsKLSAgZm9yICh2
YXIgaSA9IDA7IGkgPCB4aHJzLmxlbmd0aDsgKytpKSB7Ci0gICAgeGhyc1tpXS5vbnJlYWR5c3Rh
dGVjaGFuZ2UgPSBudWxsOwotICAgIC8vIEFib3J0IFhIUnMgaWYgdGhleSBhcmUgbm90IHlldCBE
T05FIHN0YXRlLgotICAgIC8vIENhbGxpbmcgYWJvcnQoKSBoZXJlIChpLmUuIGluIG9ucmVhZHlz
dGF0ZWNoYW5nZSBoYW5kbGVyKSAKLSAgICAvLyBjYXVzZXMgIk5ldHdvcmtFcnJvciIgbWVzc2Fn
ZXMgaW4gRGV2VG9vbHMgaW4gc3luYyBtb2RlLAotICAgIC8vIGV2ZW4gaWYgaXQgaXMgYWZ0ZXIg
dHJhbnNpdGlvbiB0byBET05FIHN0YXRlLgotICAgIGlmICh4aHJzW2ldLnJlYWR5U3RhdGUgIT0g
WE1MSHR0cFJlcXVlc3QuRE9ORSkKLSAgICAgIHhocnNbaV0uYWJvcnQoKTsKLSAgfQotICB4aHJz
ID0gW107Ci0gIC8vIGdjKCkgbWlnaHQgYmUgbmVlZGVkIGZvciBDaHJvbWUvQmxvYgotfQotCi1m
dW5jdGlvbiBzZW5kQmVuY2htYXJrU3RlcChzaXplLCBjb25maWcsIGlzV2FybVVwKSB7Ci0gIHRp
bWVySUQgPSBudWxsOwotCi0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gbnVsbDsKLSAgdmFy
IHRvdGFsU2l6ZSA9IDA7Ci0gIHZhciB0b3RhbFJlcGxpZWQgPSAwOwotCi0gIHZhciBvblJlYWR5
U3RhdGVDaGFuZ2VIYW5kbGVyID0gZnVuY3Rpb24gKCkgewotICAgIGlmICh0aGlzLnJlYWR5U3Rh
dGUgIT0gdGhpcy5ET05FKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHRoaXMu
c3RhdHVzICE9IDIwMCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0n
ICsgdGhpcy5zdGF0dXMgKyAnKScpOwotICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIGNv
bmZpZy5ub3RpZnlBYm9ydCgpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChjb25m
aWcudmVyaWZ5RGF0YSAmJgotICAgICAgICAhdmVyaWZ5QWNrbm93bGVkZ2VtZW50KGNvbmZpZywg
dGhpcy5yZXNwb25zZSwgc2l6ZSkpIHsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICBj
b25maWcubm90aWZ5QWJvcnQoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB0b3RhbFJl
cGxpZWQgKz0gc2l6ZTsKLQotICAgIGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNpemUpIHsKLSAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPT0g
bnVsbCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdzdGFydFRpbWVJbk1zIG5vdCBzZXQnKTsK
LSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBDaGVjayBhbmQgd2FybiBpZiBwcm94eSBpcyBl
bmFibGVkLgotICAgIGlmICh0aGlzLmdldFJlc3BvbnNlSGVhZGVyKCdWaWEnKSAhPT0gbnVsbCkg
ewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdXQVJOSU5HOiBwcm94eSBzZWVtcyBlbmFibGVkLicp
OwotICAgIH0KLQotICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNo
bWFyay5zdGFydFRpbWVJbk1zLCB0b3RhbFNpemUsCi0gICAgICAgIGlzV2FybVVwKTsKLQotICAg
IGRlc3Ryb3lBbGxYSFJzKCk7Ci0KLSAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9OwotCi0g
IGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bVhIUnM7ICsraSkgewotICAgIHZhciB4aHIg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gb25S
ZWFkeVN0YXRlQ2hhbmdlSGFuZGxlcjsKLSAgICB4aHJzLnB1c2goeGhyKTsKLSAgfQotCi0gIHZh
ciBkYXRhQXJyYXkgPSBbXTsKLQotICBmb3IgKHZhciBpID0gMDsgaSA8IHhocnMubGVuZ3RoOyAr
K2kpIHsKLSAgICB2YXIgZGF0YSA9IG51bGw7Ci0gICAgaWYgKGNvbmZpZy5kYXRhVHlwZSA9PSAn
YXJyYXlidWZmZXInIHx8Ci0gICAgICAgIGNvbmZpZy5kYXRhVHlwZSA9PSAnYmxvYicpIHsKLSAg
ICAgIGRhdGEgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICAgIGZpbGxBcnJheUJ1ZmZl
cihkYXRhLCAweDYxKTsKLQotICAgICAgaWYgKGNvbmZpZy5kYXRhVHlwZSA9PSAnYmxvYicpIHsK
LSAgICAgICAgZGF0YSA9IG5ldyBCbG9iKFtkYXRhXSk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsK
LSAgICAgIGRhdGEgPSByZXBlYXRTdHJpbmcoJ2EnLCBzaXplKTsKLSAgICB9Ci0KLSAgICBkYXRh
QXJyYXkucHVzaChkYXRhKTsKLSAgfQotCi0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBn
ZXRUaW1lU3RhbXAoKTsKLSAgdG90YWxTaXplID0gc2l6ZSAqIHhocnMubGVuZ3RoOwotCi0gIGZv
ciAodmFyIGkgPSAwOyBpIDwgeGhycy5sZW5ndGg7ICsraSkgewotICAgIHZhciBkYXRhID0gZGF0
YUFycmF5W2ldOwotICAgIHZhciB4aHIgPSB4aHJzW2ldOwotICAgIHhoci5vcGVuKCdQT1NUJywg
Y29uZmlnLnByZWZpeFVybCArICdfc2VuZCcsIGNvbmZpZy5hc3luYyk7Ci0gICAgeGhyLnNlbmQo
ZGF0YSk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29u
ZmlnLCBpc1dhcm1VcCkgewotICB0aW1lcklEID0gbnVsbDsKLQotICBiZW5jaG1hcmsuc3RhcnRU
aW1lSW5NcyA9IG51bGw7Ci0gIHZhciB0b3RhbFNpemUgPSAwOwotICB2YXIgdG90YWxSZXBsaWVk
ID0gMDsKLQotICB2YXIgY2hlY2tSZXN1bHRBbmRDb250aW51ZSA9IGZ1bmN0aW9uIChieXRlc1Jl
Y2VpdmVkLCB2ZXJpZmljYXRpb25SZXN1bHQpIHsKLSAgICBpZiAoIXZlcmlmaWNhdGlvblJlc3Vs
dCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVk
Jyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwotICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7
Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdG90YWxSZXBsaWVkICs9IGJ5dGVzUmVjZWl2
ZWQ7Ci0KLSAgICBpZiAodG90YWxSZXBsaWVkIDwgdG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgaWYgKGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsKLSAg
ICAgIGNvbmZpZy5hZGRUb0xvZygnc3RhcnRUaW1lSW5NcyBub3Qgc2V0Jyk7Ci0gICAgICBkZXN0
cm95QWxsWEhScygpOwotICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2ht
YXJrLnN0YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSwKLSAgICAgICAgaXNXYXJtVXApOwotCi0gICAg
ZGVzdHJveUFsbFhIUnMoKTsKLQotICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH0KLQotICB2
YXIgb25SZWFkeVN0YXRlQ2hhbmdlSGFuZGxlciA9IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAodGhp
cy5yZWFkeVN0YXRlICE9IHRoaXMuRE9ORSkgewotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmICh0aGlzLnN0YXR1cyAhPSAyMDApIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnRmFpbGVk
IChzdGF0dXM9JyArIHRoaXMuc3RhdHVzICsgJyknKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7
Ci0gICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICAvLyBDaGVjayBhbmQgd2FybiBpZiBwcm94eSBpcyBlbmFibGVkLgotICAgIGlmICh0aGlzLmdl
dFJlc3BvbnNlSGVhZGVyKCdWaWEnKSAhPT0gbnVsbCkgewotICAgICAgY29uZmlnLmFkZFRvTG9n
KCdXQVJOSU5HOiBwcm94eSBzZWVtcyBlbmFibGVkLicpOwotICAgIH0KLQotICAgIHZhciBieXRl
c1JlY2VpdmVkID0gLTE7Ci0gICAgaWYgKHRoaXMucmVzcG9uc2VUeXBlID09ICdhcnJheWJ1ZmZl
cicpIHsKLSAgICAgIGJ5dGVzUmVjZWl2ZWQgPSB0aGlzLnJlc3BvbnNlLmJ5dGVMZW5ndGg7Ci0g
ICAgfSBlbHNlIGlmICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYmxvYicpIHsKLSAgICAgIGJ5dGVz
UmVjZWl2ZWQgPSB0aGlzLnJlc3BvbnNlLnNpemU7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGJ5dGVz
UmVjZWl2ZWQgPSB0aGlzLnJlc3BvbnNlLmxlbmd0aDsKLSAgICB9Ci0gICAgaWYgKGJ5dGVzUmVj
ZWl2ZWQgIT0gc2l6ZSkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdFeHBlY3RlZCAnICsgc2l6
ZSArCi0gICAgICAgICAgJ0IgYnV0IHJlY2VpdmVkICcgKyBieXRlc1JlY2VpdmVkICsgJ0InKTsK
LSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAodGhpcy5yZXNwb25zZVR5cGUgPT0gJ2FycmF5
YnVmZmVyJykgewotICAgICAgY2hlY2tSZXN1bHRBbmRDb250aW51ZShieXRlc1JlY2VpdmVkLAot
ICAgICAgICAgICFjb25maWcudmVyaWZ5RGF0YSB8fCB2ZXJpZnlBcnJheUJ1ZmZlcih0aGlzLnJl
c3BvbnNlLCAweDYxKSk7Ci0gICAgfSBlbHNlIGlmICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYmxv
YicpIHsKLSAgICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSkKLSAgICAgICAgdmVyaWZ5QmxvYihj
b25maWcsIHRoaXMucmVzcG9uc2UsIDB4NjEsIGNoZWNrUmVzdWx0QW5kQ29udGludWUpOwotICAg
ICAgZWxzZQotICAgICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKGJ5dGVzUmVjZWl2ZWQsIHRy
dWUpOwotICAgIH0gZWxzZSB7Ci0gICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKAotICAgICAg
ICAgIGJ5dGVzUmVjZWl2ZWQsCi0gICAgICAgICAgIWNvbmZpZy52ZXJpZnlEYXRhIHx8Ci0gICAg
ICAgICAgICAgIHRoaXMucmVzcG9uc2UgPT0gcmVwZWF0U3RyaW5nKCdhJywgdGhpcy5yZXNwb25z
ZS5sZW5ndGgpKTsKLSAgICB9Ci0gIH07Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcu
bnVtWEhSczsgKytpKSB7Ci0gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAg
IHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBvblJlYWR5U3RhdGVDaGFuZ2VIYW5kbGVyOwotICAg
IHhocnMucHVzaCh4aHIpOwotICB9Ci0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRU
aW1lU3RhbXAoKTsKLSAgdG90YWxTaXplID0gc2l6ZSAqIHhocnMubGVuZ3RoOwotCi0gIGZvciAo
dmFyIGkgPSAwOyBpIDwgeGhycy5sZW5ndGg7ICsraSkgewotICAgIHZhciB4aHIgPSB4aHJzW2ld
OwotICAgIGlmIChjb25maWcubWV0aG9kQW5kQ2FjaGUgPT09ICdHRVQtTk9DQUNIRScpIHsKLSAg
ICAgIHhoci5vcGVuKCdHRVQnLCBjb25maWcucHJlZml4VXJsICsgJ19yZWNlaXZlX2dldG5vY2Fj
aGU/JyArIHNpemUsCi0gICAgICAgICAgY29uZmlnLmFzeW5jKTsKLSAgICAgIHhoci5yZXNwb25z
ZVR5cGUgPSBjb25maWcuZGF0YVR5cGU7Ci0gICAgICB4aHIuc2VuZCgpOwotICAgIH0gZWxzZSBp
ZiAoY29uZmlnLm1ldGhvZEFuZENhY2hlID09PSAnR0VULUNBQ0hFJykgewotICAgICAgeGhyLm9w
ZW4oJ0dFVCcsIGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmVfZ2V0Y2FjaGU/JyArIHNpemUs
Ci0gICAgICAgICAgY29uZmlnLmFzeW5jKTsKLSAgICAgIHhoci5yZXNwb25zZVR5cGUgPSBjb25m
aWcuZGF0YVR5cGU7Ci0gICAgICB4aHIuc2VuZCgpOwotICAgIH0gZWxzZSB7Ci0gICAgICB4aHIu
b3BlbignUE9TVCcsIGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmUnLCBjb25maWcuYXN5bmMp
OwotICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9IGNvbmZpZy5kYXRhVHlwZTsKLSAgICAgIHhoci5z
ZW5kKHNpemUgKyAnIG5vbmUnKTsKLSAgICB9Ci0gIH0KLX0KLQotCi1mdW5jdGlvbiBnZXRDb25m
aWdTdHJpbmcoY29uZmlnKSB7Ci0gIHJldHVybiAnKCcgKyBjb25maWcuZGF0YVR5cGUgKwotICAg
ICcsIHZlcmlmeURhdGE9JyArIGNvbmZpZy52ZXJpZnlEYXRhICsKLSAgICAnLCAnICsgKGlzV29y
a2VyID8gJ1dvcmtlcicgOiAnTWFpbicpICsKLSAgICAnLCAnICsgKGNvbmZpZy5hc3luYyA/ICdB
c3luYycgOiAnU3luYycpICsKLSAgICAnLCBudW1YSFJzPScgKyBjb25maWcubnVtWEhScyArCi0g
ICAgJywgbnVtSXRlcmF0aW9ucz0nICsgY29uZmlnLm51bUl0ZXJhdGlvbnMgKwotICAgICcsIG51
bVdhcm1VcEl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsKLSAgICAn
KSc7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0QmVuY2htYXJrKGNvbmZpZykgewotICBjbGVhclRpbWVv
dXQodGltZXJJRCk7Ci0gIGRlc3Ryb3lBbGxYSFJzKCk7Ci0KLSAgcnVuTmV4dFRhc2soY29uZmln
KTsKLX0KLQotZnVuY3Rpb24gYmF0Y2hCZW5jaG1hcmsob3JpZ2luYWxDb25maWcpIHsKLSAgb3Jp
Z2luYWxDb25maWcuYWRkVG9Mb2coJ0JhdGNoIGJlbmNobWFyaycpOwotCi0gIHRhc2tzID0gW107
Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLQotICB2YXIgZGF0YVR5cGVzID0gWyd0ZXh0JywgJ2Js
b2InLCAnYXJyYXlidWZmZXInXTsKLSAgdmFyIHN0ZXBGdW5jcyA9IFtzZW5kQmVuY2htYXJrU3Rl
cCwgcmVjZWl2ZUJlbmNobWFya1N0ZXBdOwotICB2YXIgbmFtZXMgPSBbJ1NlbmQnLCAnUmVjZWl2
ZSddOwotICB2YXIgYXN5bmMgPSBbdHJ1ZSwgZmFsc2VdOwotICBmb3IgKHZhciBpID0gMDsgaSA8
IHN0ZXBGdW5jcy5sZW5ndGg7ICsraSkgewotICAgIGZvciAodmFyIGogPSAwOyBqIDwgZGF0YVR5
cGVzLmxlbmd0aDsgKytqKSB7Ci0gICAgICBmb3IgKHZhciBrID0gMDsgayA8IGFzeW5jLmxlbmd0
aDsgKytrKSB7Ci0gICAgICAgIHZhciBjb25maWcgPSBjbG9uZUNvbmZpZyhvcmlnaW5hbENvbmZp
Zyk7Ci0gICAgICAgIGNvbmZpZy5kYXRhVHlwZSA9IGRhdGFUeXBlc1tqXTsKLSAgICAgICAgY29u
ZmlnLmFzeW5jID0gYXN5bmNba107Ci0KLSAgICAgICAgLy8gUmVjZWl2ZSAmJiBOb24tV29ya2Vy
ICYmIFN5bmMgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgc3BlYwotICAgICAgICBpZiAoc3RlcEZ1
bmNzW2ldID09PSByZWNlaXZlQmVuY2htYXJrU3RlcCAmJiAhaXNXb3JrZXIgJiYKLSAgICAgICAg
ICAgICFjb25maWcuYXN5bmMpCi0gICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgYWRkVGFz
a3MoY29uZmlnLCBzdGVwRnVuY3NbaV0pOwotICAgICAgICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNr
KGNvbmZpZywKLSAgICAgICAgICAgIG5hbWVzW2ldICsgJyBiZW5jaG1hcmsgJyArIGdldENvbmZp
Z1N0cmluZyhjb25maWcpKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICBzdGFydEJlbmNobWFy
ayhjb25maWcpOwotfQotCi1mdW5jdGlvbiBjbGVhbnVwKCkgewotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL3hocl9ldmVudF9sb2dnZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfZXZlbnRf
bG9nZ2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwZGIwZmJlYzQ5NDY1
MDkxMzI5YmRhZjQ3MTdkNzIxOTg4NmFkNmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9ldmVudF9sb2dnZXIuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgMjAxNCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUg
Q09QWUlORyBmaWxlIG9yIGF0Ci1odHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNv
dXJjZS9saWNlbnNlcy9ic2QKLS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlhIUiBldmVu
dCBsb2dnZXI8L3RpdGxlPgotPHNjcmlwdCBzcmM9InV0aWxfbWFpbi5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotdmFyIGV2ZW50cyA9IFtdOwotdmFyIHN0YXJ0VGltZSA9IDA7Ci0KLWZ1bmN0aW9u
IHJ1bigpIHsKLSAgZXZlbnRzID0gW107Ci0gIHN0YXJ0VGltZSA9IERhdGUubm93KCk7Ci0KLSAg
ZnVuY3Rpb24gcHVzaFRvTG9nKHR5cGUpIHsKLSAgICB2YXIgdGltZSA9IERhdGUubm93KCk7Ci0g
ICAgaWYgKGV2ZW50cy5sZW5ndGggIT0gMCAmJiB0eXBlID09PSBldmVudHNbZXZlbnRzLmxlbmd0
aCAtIDFdLnR5cGUpIHsKLSAgICAgIGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV0uY291bnQgKz0g
MTsKLSAgICAgIGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV0ubGFzdCA9IHRpbWU7Ci0gICAgfSBl
bHNlIHsKLSAgICAgIGV2ZW50cy5wdXNoKHt0eXBlOiB0eXBlLCBjb3VudDogMSwgZmlyc3Q6IHRp
bWUsIGxhc3Q6IHRpbWV9KTsKLSAgICB9Ci0gIH0KLQotICB2YXIgeGhyID0gbmV3IFhNTEh0dHBS
ZXF1ZXN0KCk7Ci0KLSAgZnVuY3Rpb24gZ2V0UHJvZ3Jlc3NFdmVudER1bXAoZSkgewotICAgIHJl
dHVybiAnKCcgKyBlLmxlbmd0aENvbXB1dGFibGUgKyAnLCAnICsgZS5sb2FkZWQgKyAnLCAnICsg
ZS50b3RhbCArICcpJzsKLSAgfQotCi0gIHZhciBkdW1wUHJvZ3Jlc3NFdmVudCA9IGdldEJvb2xG
cm9tQ2hlY2tCb3goJ2R1bXBwcm9ncmVzc2V2ZW50Jyk7Ci0KLSAgZnVuY3Rpb24gbG9nKGUpIHsK
LSAgICB2YXIgdHlwZSA9IGUudHlwZTsKLSAgICBpZiAodHlwZSA9PT0gJ3JlYWR5c3RhdGVjaGFu
Z2UnKSB7Ci0gICAgICB0eXBlICs9IGUudGFyZ2V0LnJlYWR5U3RhdGU7Ci0gICAgfQotICAgIGlm
IChkdW1wUHJvZ3Jlc3NFdmVudCAmJiAoZSBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpKSB7Ci0g
ICAgICB0eXBlICs9IGdldFByb2dyZXNzRXZlbnREdW1wKGUpOwotICAgIH0KLSAgICBwdXNoVG9M
b2codHlwZSk7Ci0gIH07Ci0KLSAgZnVuY3Rpb24gbG9nVXBsb2FkKGUpIHsKLSAgICB2YXIgdHlw
ZSA9IGUudHlwZTsKLSAgICBpZiAoZHVtcFByb2dyZXNzRXZlbnQgJiYgKGUgaW5zdGFuY2VvZiBQ
cm9ncmVzc0V2ZW50KSkgewotICAgICAgdHlwZSArPSBnZXRQcm9ncmVzc0V2ZW50RHVtcChlKTsK
LSAgICB9Ci0gICAgcHVzaFRvTG9nKCd1cGxvYWQnICsgdHlwZSk7Ci0gIH0KLQotICBpZiAoZ2V0
Qm9vbEZyb21DaGVja0JveCgndXBsb2FkJykpIHsKLSAgICB2YXIgdXBsb2FkID0geGhyLnVwbG9h
ZDsKLSAgICB1cGxvYWQub25sb2Fkc3RhcnQgPSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9ucHJv
Z3Jlc3MgPSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9uYWJvcnQgPSBsb2dVcGxvYWQ7Ci0gICAg
dXBsb2FkLm9uZXJyb3IgPSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9ubG9hZCA9IGxvZ1VwbG9h
ZDsKLSAgICB1cGxvYWQub250aW1lb3V0ID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbmxvYWRl
bmQgPSBsb2dVcGxvYWQ7Ci0gIH0KLQotICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gbG9nOwot
ICB4aHIub25sb2Fkc3RhcnQgPSBsb2c7Ci0gIHhoci5vbnByb2dyZXNzID0gbG9nOwotICB4aHIu
b25hYm9ydCA9IGxvZzsKLSAgeGhyLm9uZXJyb3IgPSBsb2c7Ci0gIHhoci5vbmxvYWQgPSBsb2c7
Ci0gIHhoci5vbnRpbWVvdXQgPSBsb2c7Ci0gIHhoci5vbmxvYWRlbmQgPSBsb2c7Ci0KLSAgeGhy
Lm9wZW4oJ1BPU1QnLCAnLzA3M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFjMjQ1X3JlY2VpdmUn
LAotICAgICAgICAgICBnZXRCb29sRnJvbUNoZWNrQm94KCdhc3luYycpKTsKLSAgdmFyIHNpemUg
PSBnZXRJbnRGcm9tSW5wdXQoJ3NpemUnKTsKLSAgdmFyIGNodW5rZWRNb2RlID0gJ25vbmUnOwot
ICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnY2h1bmtlZHJlc3BvbnNlJykpIHsKLSAgICBjaHVu
a2VkTW9kZSA9ICdjaHVua2VkJzsKLSAgfQotICB4aHIuc2VuZChzaXplICsgJyAnICsgY2h1bmtl
ZE1vZGUpOwotfQotCi1mdW5jdGlvbiBwcmludCgpIHsKLSAgdmFyIHJlc3VsdCA9ICcnOwotICBm
b3IgKHZhciBpID0gMDsgaSA8IGV2ZW50cy5sZW5ndGg7ICsraSkgewotICAgIHZhciBldmVudCA9
IGV2ZW50c1tpXTsKLSAgICB2YXIgbGluZSA9ICcnOwotICAgIGxpbmUgKz0gKGV2ZW50LmZpcnN0
IC0gc3RhcnRUaW1lKSArICJtcyI7Ci0gICAgaWYgKGV2ZW50LmNvdW50ID4gMSkKLSAgICAgIGxp
bmUgKz0gIi0iICsgKGV2ZW50Lmxhc3QgLSBzdGFydFRpbWUpICsgIm1zIjsKLSAgICBlbHNlCi0g
ICAgICBsaW5lICs9ICIgICAgICAgICI7Ci0gICAgd2hpbGUobGluZS5sZW5ndGggPCAxNSkKLSAg
ICAgIGxpbmUgKz0gIiAiOwotICAgIGxpbmUgKz0gIjogIiArIGV2ZW50LnR5cGUgKyAnICogJyAr
IGV2ZW50LmNvdW50ICsgJ1xuJzsKLSAgICByZXN1bHQgKz0gbGluZTsKLSAgfQotICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbG9nJykudmFsdWUgPSByZXN1bHQ7Ci19Ci08L3NjcmlwdD4KLQot
PGJvZHk+Ci0gIDx0ZXh0YXJlYSBpZD0ibG9nIiByb3dzPSIxMCIgY29scz0iNzAiIHJlYWRvbmx5
PjwvdGV4dGFyZWE+Ci0gIDxici8+Ci0gIFNpemU6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic2l6
ZSIgdmFsdWU9IjY1NTM2Ij48YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaHVu
a2VkcmVzcG9uc2UiPgotICA8bGFiZWwgZm9yPSJjaHVua2VkcmVzcG9uc2UiPlVzZSBDaHVua2Vk
IFQtRSBmb3IgcmVzcG9uc2U8L2xhYmVsPjxici8+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIg
aWQ9InVwbG9hZCI+Ci0gIDxsYWJlbCBmb3I9InVwbG9hZCI+VXBsb2FkIHByb2dyZXNzPC9sYWJl
bD48YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJkdW1wcHJvZ3Jlc3NldmVudCI+
Ci0gIDxsYWJlbCBmb3I9ImR1bXBwcm9ncmVzc2V2ZW50Ij4KLSAgICBEdW1wIGxlbmd0aENvbXB1
dGFibGUvbG9hZGVkL3RvdGFsPC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3gi
IGlkPSJhc3luYyIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0iYXN5bmMiPkFzeW5jPC9sYWJlbD48
YnIvPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJydW4oKSIgdmFsdWU9IlJ1biBY
SFIiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJwcmludCgpIiB2YWx1ZT0iUHJp
bnQgbG9nIj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJf
cGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfcGVyZm9ybWFu
Y2VfdGVzdF9pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWIwMmM5
ZWE1NmY2YzEwZDAzYmVjMTAzOGQ2NzIyZGU2ZThkMzFlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX3BlcmZvcm1hbmNlX3Rl
c3RfaWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Inho
cl9iZW5jaG1hcmsuanMiPjwvc2NyaXB0PgotPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fX2luaXRfXy5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA5MzNhMjIwNDUxZmFkYjZhMDFhNWMx
ZDQ1YzI1NTE0NjhkN2Q4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBA
IC0xLDIyNCArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0j
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJXZWJTb2NrZXQgZXh0ZW5z
aW9uIGZvciBBcGFjaGUgSFRUUCBTZXJ2ZXIuCi0KLW1vZF9weXdlYnNvY2tldCBpcyBhIFdlYlNv
Y2tldCBleHRlbnNpb24gZm9yIEFwYWNoZSBIVFRQIFNlcnZlcgotaW50ZW5kZWQgZm9yIHRlc3Rp
bmcgb3IgZXhwZXJpbWVudGFsIHB1cnBvc2VzLiBtb2RfcHl0aG9uIGlzIHJlcXVpcmVkLgotCi0K
LUluc3RhbGxhdGlvbgotPT09PT09PT09PT09Ci0KLTAuIFByZXBhcmUgYW4gQXBhY2hlIEhUVFAg
U2VydmVyIGZvciB3aGljaCBtb2RfcHl0aG9uIGlzIGVuYWJsZWQuCi0KLTEuIFNwZWNpZnkgdGhl
IGZvbGxvd2luZyBBcGFjaGUgSFRUUCBTZXJ2ZXIgZGlyZWN0aXZlcyB0byBzdWl0IHlvdXIKLSAg
IGNvbmZpZ3VyYXRpb24uCi0KLSAgIElmIG1vZF9weXdlYnNvY2tldCBpcyBub3QgaW4gdGhlIFB5
dGhvbiBwYXRoLCBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcuCi0gICA8d2Vic29ja19saWI+IGlzIHRo
ZSBkaXJlY3Rvcnkgd2hlcmUgbW9kX3B5d2Vic29ja2V0IGlzIGluc3RhbGxlZC4KLQotICAgICAg
IFB5dGhvblBhdGggInN5cy5wYXRoK1snPHdlYnNvY2tfbGliPiddIgotCi0gICBBbHdheXMgc3Bl
Y2lmeSB0aGUgZm9sbG93aW5nLiA8d2Vic29ja19oYW5kbGVycz4gaXMgdGhlIGRpcmVjdG9yeSB3
aGVyZQotICAgdXNlci13cml0dGVuIFdlYlNvY2tldCBoYW5kbGVycyBhcmUgcGxhY2VkLgotCi0g
ICAgICAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5oYW5kbGVyX3Jvb3QgPHdlYnNvY2tf
aGFuZGxlcnM+Ci0gICAgICAgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBtb2RfcHl3ZWJzb2Nr
ZXQuaGVhZGVycGFyc2VyaGFuZGxlcgotCi0gICBUbyBsaW1pdCB0aGUgc2VhcmNoIGZvciBXZWJT
b2NrZXQgaGFuZGxlcnMgdG8gYSBkaXJlY3RvcnkgPHNjYW5fZGlyPgotICAgdW5kZXIgPHdlYnNv
Y2tfaGFuZGxlcnM+LCBjb25maWd1cmUgYXMgZm9sbG93czoKLQotICAgICAgIFB5dGhvbk9wdGlv
biBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9zY2FuIDxzY2FuX2Rpcj4KLQotICAgPHNjYW5fZGly
PiBpcyB1c2VmdWwgaW4gc2F2aW5nIHNjYW4gdGltZSB3aGVuIDx3ZWJzb2NrX2hhbmRsZXJzPgot
ICAgY29udGFpbnMgbWFueSBub24tV2ViU29ja2V0IGhhbmRsZXIgZmlsZXMuCi0KLSAgIElmIHlv
dSB3YW50IHRvIGFsbG93IGhhbmRsZXJzIHdob3NlIGNhbm9uaWNhbCBwYXRoIGlzIG5vdCB1bmRl
ciB0aGUgcm9vdAotICAgZGlyZWN0b3J5IChpLmUuIHN5bWJvbGljIGxpbmsgaXMgaW4gcm9vdCBk
aXJlY3RvcnkgYnV0IGl0cyB0YXJnZXQgaXMgbm90KSwKLSAgIGNvbmZpZ3VyZSBhcyBmb2xsb3dz
OgotCi0gICAgICAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5hbGxvd19oYW5kbGVyc19v
dXRzaWRlX3Jvb3RfZGlyIE9uCi0KLSAgIEV4YW1wbGUgc25pcHBldCBvZiBodHRwZC5jb25mOgot
ICAgKG1vZF9weXdlYnNvY2tldCBpcyBpbiAvd2Vic29ja19saWIsIFdlYlNvY2tldCBoYW5kbGVy
cyBhcmUgaW4KLSAgIC93ZWJzb2NrX2hhbmRsZXJzLCBwb3J0IGlzIDgwIGZvciB3cywgNDQzIGZv
ciB3c3MuKQotCi0gICAgICAgPElmTW9kdWxlIHB5dGhvbl9tb2R1bGU+Ci0gICAgICAgICBQeXRo
b25QYXRoICJzeXMucGF0aCtbJy93ZWJzb2NrX2xpYiddIgotICAgICAgICAgUHl0aG9uT3B0aW9u
IG1vZF9weXdlYnNvY2tldC5oYW5kbGVyX3Jvb3QgL3dlYnNvY2tfaGFuZGxlcnMKLSAgICAgICAg
IFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIgbW9kX3B5d2Vic29ja2V0LmhlYWRlcnBhcnNlcmhh
bmRsZXIKLSAgICAgICA8L0lmTW9kdWxlPgotCi0yLiBUdW5lIEFwYWNoZSBwYXJhbWV0ZXJzIGZv
ciBzZXJ2aW5nIFdlYlNvY2tldC4gV2UnZCBsaWtlIHRvIG5vdGUgdGhhdCBhdAotICAgbGVhc3Qg
VGltZU91dCBkaXJlY3RpdmUgZnJvbSBjb3JlIGZlYXR1cmVzIGFuZCBSZXF1ZXN0UmVhZFRpbWVv
dXQKLSAgIGRpcmVjdGl2ZSBmcm9tIG1vZF9yZXF0aW1lb3V0IHNob3VsZCBiZSBtb2RpZmllZCBu
b3QgdG8ga2lsbCBjb25uZWN0aW9ucwotICAgaW4gb25seSBhIGZldyBzZWNvbmRzIG9mIGlkbGUg
dGltZS4KLQotMy4gVmVyaWZ5IGluc3RhbGxhdGlvbi4gWW91IGNhbiB1c2UgZXhhbXBsZS9jb25z
b2xlLmh0bWwgdG8gcG9rZSB0aGUgc2VydmVyLgotCi0KLVdyaXRpbmcgV2ViU29ja2V0IGhhbmRs
ZXJzCi09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1XaGVuIGEgV2ViU29ja2V0IHJlcXVl
c3QgY29tZXMgaW4sIHRoZSByZXNvdXJjZSBuYW1lCi1zcGVjaWZpZWQgaW4gdGhlIGhhbmRzaGFr
ZSBpcyBjb25zaWRlcmVkIGFzIGlmIGl0IGlzIGEgZmlsZSBwYXRoIHVuZGVyCi08d2Vic29ja19o
YW5kbGVycz4gYW5kIHRoZSBoYW5kbGVyIGRlZmluZWQgaW4KLTx3ZWJzb2NrX2hhbmRsZXJzPi88
cmVzb3VyY2VfbmFtZT5fd3NoLnB5IGlzIGludm9rZWQuCi0KLUZvciBleGFtcGxlLCBpZiB0aGUg
cmVzb3VyY2UgbmFtZSBpcyAvZXhhbXBsZS9jaGF0LCB0aGUgaGFuZGxlciBkZWZpbmVkIGluCi08
d2Vic29ja19oYW5kbGVycz4vZXhhbXBsZS9jaGF0X3dzaC5weSBpcyBpbnZva2VkLgotCi1BIFdl
YlNvY2tldCBoYW5kbGVyIGlzIGNvbXBvc2VkIG9mIHRoZSBmb2xsb3dpbmcgdGhyZWUgZnVuY3Rp
b25zOgotCi0gICAgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCkKLSAgICB3
ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICB3ZWJfc29ja2V0X3Bhc3NpdmVf
Y2xvc2luZ19oYW5kc2hha2UocmVxdWVzdCkKLQotd2hlcmU6Ci0gICAgcmVxdWVzdDogbW9kX3B5
dGhvbiByZXF1ZXN0LgotCi13ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQg
ZHVyaW5nIHRoZSBoYW5kc2hha2UgYWZ0ZXIgdGhlCi1oZWFkZXJzIGFyZSBzdWNjZXNzZnVsbHkg
cGFyc2VkIGFuZCBXZWJTb2NrZXQgcHJvcGVydGllcyAod3NfbG9jYXRpb24sCi13c19vcmlnaW4s
IGFuZCB3c19yZXNvdXJjZSkgYXJlIGFkZGVkIHRvIHJlcXVlc3QuIEEgaGFuZGxlcgotY2FuIHJl
amVjdCB0aGUgcmVxdWVzdCBieSByYWlzaW5nIGFuIGV4Y2VwdGlvbi4KLQotQSByZXF1ZXN0IG9i
amVjdCBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHRoYXQgeW91IGNhbiB1c2UgZHVyaW5n
IHRoZQotZXh0cmEgaGFuZHNoYWtlICh3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSk6Ci0t
IHdzX3Jlc291cmNlCi0tIHdzX29yaWdpbgotLSB3c192ZXJzaW9uCi0tIHdzX2xvY2F0aW9uIChI
eUJpIDAwIG9ubHkpCi0tIHdzX2V4dGVuc2lvbnMgKEh5QmkgMDYgYW5kIGxhdGVyKQotLSB3c19k
ZWZsYXRlIChIeUJpIDA2IGFuZCBsYXRlcikKLS0gd3NfcHJvdG9jb2wKLS0gd3NfcmVxdWVzdGVk
X3Byb3RvY29scyAoSHlCaSAwNiBhbmQgbGF0ZXIpCi0KLVRoZSBsYXN0IHR3byBhcmUgYSBiaXQg
dHJpY2t5LiBTZWUgdGhlIG5leHQgc3Vic2VjdGlvbi4KLQotCi1TdWJwcm90b2NvbCBOZWdvdGlh
dGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotRm9yIEh5QmkgMDYgYW5kIGxhdGVyLCB3
c19wcm90b2NvbCBpcyBhbHdheXMgc2V0IHRvIE5vbmUgd2hlbgotd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UgaXMgY2FsbGVkLiBJZiB3c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdAot
Tm9uZSwgeW91IG11c3QgY2hvb3NlIG9uZSBzdWJwcm90b2NvbCBmcm9tIHRoaXMgbGlzdCBhbmQg
c2V0IGl0IHRvCi13c19wcm90b2NvbC4KLQotRm9yIEh5QmkgMDAsIHdoZW4gd2ViX3NvY2tldF9k
b19leHRyYV9oYW5kc2hha2UgaXMgY2FsbGVkLAotd3NfcHJvdG9jb2wgaXMgc2V0IHRvIHRoZSB2
YWx1ZSBnaXZlbiBieSB0aGUgY2xpZW50IGluCi1TZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRl
ciBvciBOb25lIGlmCi1zdWNoIGhlYWRlciB3YXMgbm90IGZvdW5kIGluIHRoZSBvcGVuaW5nIGhh
bmRzaGFrZSByZXF1ZXN0LiBGaW5pc2ggZXh0cmEKLWhhbmRzaGFrZSB3aXRoIHdzX3Byb3RvY29s
IHVudG91Y2hlZCB0byBhY2NlcHQgdGhlIHJlcXVlc3Qgc3VicHJvdG9jb2wuCi1UaGVuLCBTZWMt
V2ViU29ja2V0LVByb3RvY29sIGhlYWRlciB3aWxsIGJlIHNlbnQgdG8KLXRoZSBjbGllbnQgaW4g
cmVzcG9uc2Ugd2l0aCB0aGUgc2FtZSB2YWx1ZSBhcyByZXF1ZXN0ZWQuIFJhaXNlIGFuIGV4Y2Vw
dGlvbgotaW4gd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgdG8gcmVqZWN0IHRoZSByZXF1
ZXN0ZWQgc3VicHJvdG9jb2wuCi0KLQotRGF0YSBUcmFuc2ZlcgotLS0tLS0tLS0tLS0tLQotCi13
ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEgaXMgY2FsbGVkIGFmdGVyIHRoZSBoYW5kc2hha2UgY29t
cGxldGVkCi1zdWNjZXNzZnVsbHkuIEEgaGFuZGxlciBjYW4gcmVjZWl2ZS9zZW5kIG1lc3NhZ2Vz
IGZyb20vdG8gdGhlIGNsaWVudAotdXNpbmcgcmVxdWVzdC4gbW9kX3B5d2Vic29ja2V0Lm1zZ3V0
aWwgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdGllcwotZm9yIGRhdGEgdHJhbnNmZXIuCi0KLVlvdSBj
YW4gcmVjZWl2ZSBhIG1lc3NhZ2UgYnkgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQuCi0KLSAgICBt
ZXNzYWdlID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLQotVGhpcyBjYWxs
IGJsb2NrcyB1bnRpbCBhbnkgY29tcGxldGUgdGV4dCBmcmFtZSBhcnJpdmVzLCBhbmQgdGhlIHBh
eWxvYWQgZGF0YQotb2YgdGhlIGluY29taW5nIGZyYW1lIHdpbGwgYmUgc3RvcmVkIGludG8gbWVz
c2FnZS4gV2hlbiB5b3UncmUgdXNpbmcgSUVURgotSHlCaSAwMCBvciBsYXRlciBwcm90b2NvbCwg
cmVjZWl2ZV9tZXNzYWdlKCkgd2lsbCByZXR1cm4gTm9uZSBvbiByZWNlaXZpbmcKLWNsaWVudC1p
bml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UuIFdoZW4gYW55IGVycm9yIG9jY3VycywgcmVjZWl2
ZV9tZXNzYWdlKCkKLXdpbGwgcmFpc2Ugc29tZSBleGNlcHRpb24uCi0KLVlvdSBjYW4gc2VuZCBh
IG1lc3NhZ2UgYnkgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQuCi0KLSAgICByZXF1ZXN0LndzX3N0
cmVhbS5zZW5kX21lc3NhZ2UobWVzc2FnZSkKLQotCi1DbG9zaW5nIENvbm5lY3Rpb24KLS0tLS0t
LS0tLS0tLS0tLS0tLQotCi1FeGVjdXRpbmcgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQgb3IganVz
dCByZXR1cm4taW5nIGZyb20KLXdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSBjYXVzZSBjb25uZWN0
aW9uIGNsb3NlLgotCi0gICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCi0K
LWNsb3NlX2Nvbm5lY3Rpb24gd2lsbCB3YWl0Ci1mb3IgY2xvc2luZyBoYW5kc2hha2UgYWNrbm93
bGVkZ2VtZW50IGNvbWluZyBmcm9tIHRoZSBjbGllbnQuIFdoZW4gaXQKLWNvdWxkbid0IHJlY2Vp
dmUgYSB2YWxpZCBhY2tub3dsZWRnZW1lbnQsIHJhaXNlcyBhbiBleGNlcHRpb24uCi0KLXdlYl9z
b2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIHNlcnZl
ciByZWNlaXZlcwotaW5jb21pbmcgY2xvc2luZyBmcmFtZSBmcm9tIHRoZSBjbGllbnQgcGVlciBp
bW1lZGlhdGVseS4gWW91IGNhbiBzcGVjaWZ5Ci1jb2RlIGFuZCByZWFzb24gYnkgcmV0dXJuIHZh
bHVlcy4gVGhleSBhcmUgc2VudCBhcyBhIG91dGdvaW5nIGNsb3NpbmcgZnJhbWUKLWZyb20gdGhl
IHNlcnZlci4gQSByZXF1ZXN0IG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHRo
YXQgeW91IGNhbgotdXNlIGluIHdlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZS4K
LS0gd3NfY2xvc2VfY29kZQotLSB3c19jbG9zZV9yZWFzb24KLQotCi1UaHJlYWRpbmcKLS0tLS0t
LS0tLQotCi1BIFdlYlNvY2tldCBoYW5kbGVyIG11c3QgYmUgdGhyZWFkLXNhZmUgaWYgdGhlIHNl
cnZlciAoQXBhY2hlIG9yCi1zdGFuZGFsb25lLnB5KSBpcyBjb25maWd1cmVkIHRvIHVzZSB0aHJl
YWRzLgotCi0KLUNvbmZpZ3VyaW5nIFdlYlNvY2tldCBFeHRlbnNpb24gUHJvY2Vzc29ycwotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVNlZSBleHRlbnNpb25z
LnB5IGZvciBzdXBwb3J0ZWQgV2ViU29ja2V0IGV4dGVuc2lvbnMuIE5vdGUgdGhhdCB0aGV5IGFy
ZQotdW5zdGFibGUgYW5kIHRoZWlyIEFQSXMgYXJlIHN1YmplY3QgdG8gY2hhbmdlIHN1YnN0YW50
aWFsbHkuCi0KLUEgcmVxdWVzdCBvYmplY3QgaGFzIHRoZXNlIGV4dGVuc2lvbiBwcm9jZXNzaW5n
IHJlbGF0ZWQgYXR0cmlidXRlcy4KLQotLSB3c19yZXF1ZXN0ZWRfZXh0ZW5zaW9uczoKLQotICBB
IGxpc3Qgb2YgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlciBpbnN0YW5jZXMgcmVwcmVzZW50aW5n
IGV4dGVuc2lvbgotICBwYXJhbWV0ZXJzIHJlY2VpdmVkIGZyb20gdGhlIGNsaWVudCBpbiB0aGUg
Y2xpZW50J3Mgb3BlbmluZyBoYW5kc2hha2UuCi0gIFlvdSBzaG91bGRuJ3QgbW9kaWZ5IGl0IG1h
bnVhbGx5LgotCi0tIHdzX2V4dGVuc2lvbnM6Ci0KLSAgQSBsaXN0IG9mIGNvbW1vbi5FeHRlbnNp
b25QYXJhbWV0ZXIgaW5zdGFuY2VzIHJlcHJlc2VudGluZyBleHRlbnNpb24KLSAgcGFyYW1ldGVy
cyB0byBzZW5kIGJhY2sgdG8gdGhlIGNsaWVudCBpbiB0aGUgc2VydmVyJ3Mgb3BlbmluZyBoYW5k
c2hha2UuCi0gIFlvdSBzaG91bGRuJ3QgdG91Y2ggaXQgZGlyZWN0bHkuIEluc3RlYWQsIGNhbGwg
bWV0aG9kcyBvbiBleHRlbnNpb24KLSAgcHJvY2Vzc29ycy4KLQotLSB3c19leHRlbnNpb25fcHJv
Y2Vzc29yczoKLQotICBBIGxpc3Qgb2YgbG9hZGVkIGV4dGVuc2lvbiBwcm9jZXNzb3JzLiBGaW5k
IHRoZSBwcm9jZXNzb3IgZm9yIHRoZQotICBleHRlbnNpb24geW91IHdhbnQgdG8gY29uZmlndXJl
IGZyb20gaXQsIGFuZCBjYWxsIGl0cyBtZXRob2RzLgotIiIiCi0KLQotIyB2aTpzdHM9NCBzdz00
IGV0IHR3PTcyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2Uu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDIxYTEyNTRhZTZkMGUzNmZiNWU5Nzk4MTI4M2M1N2IxNWRmNmYzZWIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvX3N0cmVhbV9iYXNlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTgxICswLDAg
QEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkJhc2Ugc3RyZWFtIGNsYXNzLgotIiIiCi0KLQot
IyBOb3RlOiByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUvcmVhZCBhcmUgdXNlZCBpbiB0aGlzIG1v
ZHVsZSwgZXZlbiB0aG91Z2gKLSMgbW9kX3B5dGhvbiBkb2N1bWVudCBzYXlzIHRoYXQgdGhleSBz
aG91bGQgYmUgdXNlZCBvbmx5IGluIGNvbm5lY3Rpb24KLSMgaGFuZGxlcnMuIFVuZm9ydHVuYXRl
bHksIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9ucy4gRm9yIGV4YW1wbGUsCi0jIHJlcXVlc3Qud3Jp
dGUvcmVhZCBhcmUgbm90IHN1aXRhYmxlIGJlY2F1c2UgdGhleSBkb24ndCBhbGxvdyBkaXJlY3Qg
cmF3IGJ5dGVzCi0jIHdyaXRpbmcvcmVhZGluZy4KLQotCi1pbXBvcnQgc29ja2V0Ci0KLWZyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQotIyBFeGNlcHRpb25zCi0KLQotY2xhc3Mg
Q29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4
Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIGEgY29ubmVjdGlvbiBpcyB0ZXJtaW5hdGVkCi0g
ICAgdW5leHBlY3RlZGx5LgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIEludmFsaWRG
cmFtZUV4Y2VwdGlvbihDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhp
cyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiB3ZSByZWNlaXZlZCBhbiBpbnZhbGlkIGZy
YW1lIHdlCi0gICAgY2Fubm90IHBhcnNlLgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNz
IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9u
IHdpbGwgYmUgcmFpc2VkIHdoZW4gc2VuZF9tZXNzYWdlKCkgaXMgY2FsbGVkIG9uCi0gICAgc2Vy
dmVyLXRlcm1pbmF0ZWQgY29ubmVjdGlvbiBvciByZWNlaXZlX21lc3NhZ2UoKSBpcyBjYWxsZWQg
b24KLSAgICBjbGllbnQtdGVybWluYXRlZCBjb25uZWN0aW9uLgotICAgICIiIgotCi0gICAgcGFz
cwotCi0KLWNsYXNzIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAi
IiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIHdlIHJlY2VpdmUgYSBmcmFtZSB3
aXRoIGZsYWcsIG9wY29kZQotICAgIHdlIGNhbm5vdCBoYW5kbGUuIEhhbmRsZXJzIGNhbiBqdXN0
IGNhdGNoIGFuZCBpZ25vcmUgdGhpcyBleGNlcHRpb24gYW5kCi0gICAgY2FsbCByZWNlaXZlX21l
c3NhZ2UoKSBhZ2FpbiB0byBjb250aW51ZSBwcm9jZXNzaW5nIHRoZSBuZXh0IGZyYW1lLgotICAg
ICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIEludmFsaWRVVEY4RXhjZXB0aW9uKEV4Y2VwdGlv
bik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiB3ZSByZWNlaXZl
IGEgdGV4dCBmcmFtZSB3aGljaAotICAgIGNvbnRhaW5zIGludmFsaWQgVVRGLTggc3RyaW5ncy4K
LSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBTdHJlYW1CYXNlKG9iamVjdCk6Ci0gICAg
IiIiQmFzZSBzdHJlYW0gY2xhc3MuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVz
dCk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAiIiIKLQot
ICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAg
ICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotCi0gICAgZGVmIF9yZWFkKHNlbGYsIGxlbmd0
aCk6Ci0gICAgICAgICIiIlJlYWRzIGxlbmd0aCBieXRlcyBmcm9tIGNvbm5lY3Rpb24uIEluIGNh
c2Ugd2UgY2F0Y2ggYW55IGV4Y2VwdGlvbiwKLSAgICAgICAgcHJlcGVuZHMgcmVtb3RlIGFkZHJl
c3MgdG8gdGhlIGV4Y2VwdGlvbiBtZXNzYWdlIGFuZCByYWlzZSBhZ2Fpbi4KLQotICAgICAgICBS
YWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiBy
ZWFkIHJldHVybnMgZW1wdHkgc3RyaW5nLgotICAgICAgICAiIiIKLQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICByZWFkX2J5dGVzID0gc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJlYWQobGVu
Z3RoKQotICAgICAgICAgICAgaWYgbm90IHJlYWRfYnl0ZXM6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdS
ZWNlaXZpbmcgJWQgYnl0ZSBmYWlsZWQuIFBlZXIgKCVyKSBjbG9zZWQgY29ubmVjdGlvbicgJQot
ICAgICAgICAgICAgICAgICAgICAobGVuZ3RoLCAoc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJl
bW90ZV9hZGRyLCkpKQotICAgICAgICAgICAgcmV0dXJuIHJlYWRfYnl0ZXMKLSAgICAgICAgZXhj
ZXB0IHNvY2tldC5lcnJvciBhcyBlOgotICAgICAgICAgICAgIyBDYXRjaCBhIHNvY2tldC5lcnJv
ci4gQmVjYXVzZSBpdCdzIG5vdCBhIGNoaWxkIGNsYXNzIG9mIHRoZQotICAgICAgICAgICAgIyBJ
T0Vycm9yIHByaW9yIHRvIFB5dGhvbiAyLjYsIHdlIGNhbm5vdCBvbWl0IHRoaXMgZXhjZXB0IGNs
YXVzZS4KLSAgICAgICAgICAgICMgVXNlICVzIHJhdGhlciB0aGFuICVyIGZvciB0aGUgZXhjZXB0
aW9uIHRvIHVzZSBodW1hbiBmcmllbmRseQotICAgICAgICAgICAgIyBmb3JtYXQuCi0gICAgICAg
ICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBzb2NrZXQuZXJyb3IgKCVzKSBvY2N1cnJlZCcg
JQotICAgICAgICAgICAgICAgIChsZW5ndGgsIGUpKQotICAgICAgICBleGNlcHQgSU9FcnJvciBh
cyBlOgotICAgICAgICAgICAgIyBBbHNvIGNhdGNoIGFuIElPRXJyb3IgYmVjYXVzZSBtb2RfcHl0
aG9uIHRocm93cyBpdC4KLSAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZWNlaXZpbmcgJWQgYnl0ZSBmYWlsZWQuIElPRXJy
b3IgKCVzKSBvY2N1cnJlZCcgJQotICAgICAgICAgICAgICAgIChsZW5ndGgsIGUpKQotCi0gICAg
ZGVmIF93cml0ZShzZWxmLCBieXRlc190b193cml0ZSk6Ci0gICAgICAgICIiIldyaXRlcyBnaXZl
biBieXRlcyB0byBjb25uZWN0aW9uLiBJbiBjYXNlIHdlIGNhdGNoIGFueSBleGNlcHRpb24sCi0g
ICAgICAgIHByZXBlbmRzIHJlbW90ZSBhZGRyZXNzIHRvIHRoZSBleGNlcHRpb24gbWVzc2FnZSBh
bmQgcmFpc2UgYWdhaW4uCi0gICAgICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShieXRlc190b193cml0ZSkKLSAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2Vf
dG9fZXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHNlbmQgbWVzc2Fn
ZSB0byAlcjogJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3Qu
Y29ubmVjdGlvbi5yZW1vdGVfYWRkciwpLAotICAgICAgICAgICAgICAgICAgICBlKQotICAgICAg
ICAgICAgcmFpc2UKLQotICAgIGRlZiByZWNlaXZlX2J5dGVzKHNlbGYsIGxlbmd0aCk6Ci0gICAg
ICAgICIiIlJlY2VpdmVzIG11bHRpcGxlIGJ5dGVzLiBSZXRyaWVzIHJlYWQgd2hlbiB3ZSBjb3Vs
ZG4ndCByZWNlaXZlIHRoZQotICAgICAgICBzcGVjaWZpZWQgYW1vdW50LgotCi0gICAgICAgIFJh
aXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJl
YWQgcmV0dXJucyBlbXB0eSBzdHJpbmcuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJlYWRfYnl0
ZXMgPSBbXQotICAgICAgICB3aGlsZSBsZW5ndGggPiAwOgotICAgICAgICAgICAgbmV3X3JlYWRf
Ynl0ZXMgPSBzZWxmLl9yZWFkKGxlbmd0aCkKLSAgICAgICAgICAgIHJlYWRfYnl0ZXMuYXBwZW5k
KG5ld19yZWFkX2J5dGVzKQotICAgICAgICAgICAgbGVuZ3RoIC09IGxlbihuZXdfcmVhZF9ieXRl
cykKLSAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVhZF9ieXRlcykKLQotICAgIGRlZiBfcmVhZF91
bnRpbChzZWxmLCBkZWxpbV9jaGFyKToKLSAgICAgICAgIiIiUmVhZHMgYnl0ZXMgdW50aWwgd2Ug
ZW5jb3VudGVyIGRlbGltX2NoYXIuIFRoZSByZXN1bHQgd2lsbCBub3QKLSAgICAgICAgY29udGFp
biBkZWxpbV9jaGFyLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eSBzdHJpbmcuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHJlYWRfYnl0ZXMgPSBbXQotICAgICAgICB3aGlsZSBUcnVlOgot
ICAgICAgICAgICAgY2ggPSBzZWxmLl9yZWFkKDEpCi0gICAgICAgICAgICBpZiBjaCA9PSBkZWxp
bV9jaGFyOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICByZWFkX2J5dGVzLmFw
cGVuZChjaCkKLSAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVhZF9ieXRlcykKLQotCi0jIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faGl4
aWU3NS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faGl4aWU3NS5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjZjViMzFiYTBmYzNjM2EzNDc3ZGU4MjI5N2EwYzI2
ZGExYzQ4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2hpeGllNzUucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwyMjkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0j
IGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0j
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVz
IGEgY2xhc3MgZm9yIHBhcnNpbmcvYnVpbGRpbmcgZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQKLXBy
b3RvY29sIHZlcnNpb24gSHlCaSAwMCBhbmQgSGl4aWUgNzUuCi0KLVNwZWNpZmljYXRpb246Ci0t
IEh5QmkgMDAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXRoZXdl
YnNvY2tldHByb3RvY29sLTAwCi0tIEhpeGllIDc1IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1s
L2RyYWZ0LWhpeGllLXRoZXdlYnNvY2tldHByb3RvY29sLTc1Ci0iIiIKLQotCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jh
c2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KLWZy
b20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgU3RyZWFtQmFzZQotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0
aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLWNsYXNzIFN0cmVhbUhp
eGllNzUoU3RyZWFtQmFzZSk6Ci0gICAgIiIiQSBjbGFzcyBmb3IgcGFyc2luZy9idWlsZGluZyBm
cmFtZXMgb2YgdGhlIFdlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uCi0gICAgSHlCaSAwMCBhbmQg
SGl4aWUgNzUuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZW5h
YmxlX2Nsb3NpbmdfaGFuZHNoYWtlPUZhbHNlKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGlu
c3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9u
IHJlcXVlc3QuCi0gICAgICAgICAgICBlbmFibGVfY2xvc2luZ19oYW5kc2hha2U6IHRvIGxldCBT
dHJlYW1IaXhpZTc1IHBlcmZvcm0gY2xvc2luZwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoYW5kc2hha2UgYXMgc3BlY2lmaWVkIGluIEh5QmkgMDAsIHNldAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIG9wdGlvbiB0byBUcnVlLgotICAg
ICAgICAiIiIKLQotICAgICAgICBTdHJlYW1CYXNlLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0K
LSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAg
ICAgICAgc2VsZi5fZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlID0gZW5hYmxlX2Nsb3NpbmdfaGFu
ZHNoYWtlCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWluYXRlZCA9IEZhbHNl
Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBGYWxzZQotCi0gICAg
ZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToK
LSAgICAgICAgIiIiU2VuZCBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBt
ZXNzYWdlOiB1bmljb2RlIHN0cmluZyB0byBzZW5kLgotICAgICAgICAgICAgYmluYXJ5OiBub3Qg
dXNlZCBpbiBoaXhpZTc1LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJh
dGlvbkV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgb24gYSBzZXJ2ZXItdGVybWluYXRlZAotICAgICAg
ICAgICAgICAgIGNvbm5lY3Rpb24uCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIG5vdCBlbmQ6
Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgJ1N0cmVhbUhpeGllNzUgZG9lc25cJ3Qgc3VwcG9ydCBzZW5kX21lc3NhZ2Ugd2l0aCBlbmQ9
RmFsc2UnKQotCi0gICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJh
dGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnU3RyZWFtSGl4aWU3NSBkb2VzblwndCBz
dXBwb3J0IHNlbmRfbWVzc2FnZSB3aXRoIGJpbmFyeT1UcnVlJykKLQotICAgICAgICBpZiBzZWxm
Ll9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0
aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgc2VuZF9tZXNzYWdlIGFm
dGVyIHNlbmRpbmcgb3V0IGEgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgIHNlbGYuX3dy
aXRlKCcnLmpvaW4oWydceDAwJywgbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JyksICdceGZmJ10pKQot
Ci0gICAgZGVmIF9yZWFkX3BheWxvYWRfbGVuZ3RoX2hpeGllNzUoc2VsZik6Ci0gICAgICAgICIi
IlJlYWRzIGEgbGVuZ3RoIGhlYWRlciBpbiBhIEhpeGllNzUgdmVyc2lvbiBmcmFtZSB3aXRoIGxl
bmd0aC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRl
ZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkgc3RyaW5nLgotICAgICAgICAiIiIK
LQotICAgICAgICBsZW5ndGggPSAwCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBi
X3N0ciA9IHNlbGYuX3JlYWQoMSkKLSAgICAgICAgICAgIGIgPSBvcmQoYl9zdHIpCi0gICAgICAg
ICAgICBsZW5ndGggPSBsZW5ndGggKiAxMjggKyAoYiAmIDB4N2YpCi0gICAgICAgICAgICBpZiAo
YiAmIDB4ODApID09IDA6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgcmV0dXJuIGxl
bmd0aAotCi0gICAgZGVmIHJlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAgIiIiUmVjZWl2
ZSBhIFdlYlNvY2tldCBmcmFtZSBhbmQgcmV0dXJuIGl0cyBwYXlsb2FkIGFuIHVuaWNvZGUgc3Ry
aW5nLgotCi0gICAgICAgIFJldHVybnM6Ci0gICAgICAgICAgICBwYXlsb2FkIHVuaWNvZGUgc3Ry
aW5nIGluIGEgV2ViU29ja2V0IGZyYW1lLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAg
IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eQot
ICAgICAgICAgICAgICAgIHN0cmluZy4KLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlv
bjogd2hlbiBjYWxsZWQgb24gYSBjbGllbnQtdGVybWluYXRlZAotICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24uCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuY2xpZW50
X3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCByZWNlaXZlX21lc3NhZ2UgYWZ0ZXIgcmVjZWl2aW5n
IGEgY2xvc2luZyAnCi0gICAgICAgICAgICAgICAgJ2hhbmRzaGFrZScpCi0KLSAgICAgICAgd2hp
bGUgVHJ1ZToKLSAgICAgICAgICAgICMgUmVhZCAxIGJ5dGUuCi0gICAgICAgICAgICAjIG1wX2Nv
bm4ucmVhZCB3aWxsIGJsb2NrIGlmIG5vIGJ5dGVzIGFyZSBhdmFpbGFibGUuCi0gICAgICAgICAg
ICAjIFRpbWVvdXQgaXMgY29udHJvbGxlZCBieSBUaW1lT3V0IGRpcmVjdGl2ZSBvZiBBcGFjaGUu
Ci0gICAgICAgICAgICBmcmFtZV90eXBlX3N0ciA9IHNlbGYucmVjZWl2ZV9ieXRlcygxKQotICAg
ICAgICAgICAgZnJhbWVfdHlwZSA9IG9yZChmcmFtZV90eXBlX3N0cikKLSAgICAgICAgICAgIGlm
IChmcmFtZV90eXBlICYgMHg4MCkgPT0gMHg4MDoKLSAgICAgICAgICAgICAgICAjIFRoZSBwYXls
b2FkIGxlbmd0aCBpcyBzcGVjaWZpZWQgaW4gdGhlIGZyYW1lLgotICAgICAgICAgICAgICAgICMg
UmVhZCBhbmQgZGlzY2FyZC4KLSAgICAgICAgICAgICAgICBsZW5ndGggPSBzZWxmLl9yZWFkX3Bh
eWxvYWRfbGVuZ3RoX2hpeGllNzUoKQotICAgICAgICAgICAgICAgIGlmIGxlbmd0aCA+IDA6Ci0g
ICAgICAgICAgICAgICAgICAgIF8gPSBzZWxmLnJlY2VpdmVfYnl0ZXMobGVuZ3RoKQotICAgICAg
ICAgICAgICAgICMgNS4zIDMuIDEyLiBpZiAvdHlwZS8gaXMgMHhGRiBhbmQgL2xlbmd0aC8gaXMg
MCwgdGhlbiBzZXQgdGhlCi0gICAgICAgICAgICAgICAgIyAvY2xpZW50IHRlcm1pbmF0ZWQvIGZs
YWcgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9l
bmFibGVfY2xvc2luZ19oYW5kc2hha2U6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0K
LSAgICAgICAgICAgICAgICBpZiBmcmFtZV90eXBlID09IDB4RkYgYW5kIGxlbmd0aCA9PSAwOgot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVkID0gVHJ1
ZQotCi0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0
ZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGFjayBmb3Igc2VydmVyLWluaXRpYXRlZCBj
bG9zaW5nICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZHNoYWtlJykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGNsaWVu
dC1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX3NlbmRfY2xvc2luZ19oYW5kc2hha2UoKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICAgICAnU2VudCBhY2sgZm9yIGNsaWVu
dC1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gTm9uZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIFRoZSBwYXlsb2Fk
IGlzIGRlbGltaXRlZCB3aXRoIFx4ZmYuCi0gICAgICAgICAgICAgICAgYnl0ZXMgPSBzZWxmLl9y
ZWFkX3VudGlsKCdceGZmJykKLSAgICAgICAgICAgICAgICAjIFRoZSBXZWJTb2NrZXQgcHJvdG9j
b2wgc2VjdGlvbiA0LjQgc3BlY2lmaWVzIHRoYXQgaW52YWxpZAotICAgICAgICAgICAgICAgICMg
Y2hhcmFjdGVycyBtdXN0IGJlIHJlcGxhY2VkIHdpdGggVStmZmZkIFJFUExBQ0VNRU5UCi0gICAg
ICAgICAgICAgICAgIyBDSEFSQUNURVIuCi0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGJ5dGVz
LmRlY29kZSgndXRmLTgnLCAncmVwbGFjZScpCi0gICAgICAgICAgICAgICAgaWYgZnJhbWVfdHlw
ZSA9PSAweDAwOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotICAgICAgICAg
ICAgICAgICMgRGlzY2FyZCBkYXRhIG9mIG90aGVyIHR5cGVzLgotCi0gICAgZGVmIF9zZW5kX2Ns
b3NpbmdfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5fZW5hYmxlX2Nsb3Np
bmdfaGFuZHNoYWtlOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICdDbG9zaW5nIGhhbmRzaGFrZSBpcyBub3Qgc3VwcG9ydGVkIGluIEhp
eGllIDc1IHByb3RvY29sJykKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5h
dGVkID0gVHJ1ZQotCi0gICAgICAgICMgNS4zIHRoZSBzZXJ2ZXIgbWF5IGRlY2lkZSB0byB0ZXJt
aW5hdGUgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGJ5Ci0gICAgICAgICMgcnVubmluZyB0aHJv
dWdoIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICMgMS4gc2VuZCBhIDB4RkYgYnl0ZSBh
bmQgYSAweDAwIGJ5dGUgdG8gdGhlIGNsaWVudCB0byBpbmRpY2F0ZSB0aGUKLSAgICAgICAgIyBz
dGFydCBvZiB0aGUgY2xvc2luZyBoYW5kc2hha2UuCi0gICAgICAgIHNlbGYuX3dyaXRlKCdceGZm
XHgwMCcpCi0KLSAgICBkZWYgY2xvc2VfY29ubmVjdGlvbihzZWxmLCB1bnVzZWRfY29kZT0nJywg
dW51c2VkX3JlYXNvbj0nJyk6Ci0gICAgICAgICIiIkNsb3NlcyBhIFdlYlNvY2tldCBjb25uZWN0
aW9uLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVk
RXhjZXB0aW9uOiB3aGVuIGNsb3NpbmcgaGFuZHNoYWtlIHdhcwotICAgICAgICAgICAgICAgIG5v
dCBzdWNjZXNzZnVsbC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5z
ZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAg
ICAgICAgICAgICAnUmVxdWVzdGVkIGNsb3NlX2Nvbm5lY3Rpb24gYnV0IHNlcnZlciBpcyBhbHJl
YWR5IHRlcm1pbmF0ZWQnKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgbm90IHNl
bGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qu
c2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J0Nvbm5lY3Rpb24gY2xvc2VkJykKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHNlbGYu
X3NlbmRfY2xvc2luZ19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Nl
bnQgc2VydmVyLWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAgICAgICAgIyBUT0RP
KHVrYWkpOiAyLiB3YWl0IHVudGlsIHRoZSAvY2xpZW50IHRlcm1pbmF0ZWQvIGZsYWcgaGFzIGJl
ZW4gc2V0LAotICAgICAgICAjIG9yIHVudGlsIGEgc2VydmVyLWRlZmluZWQgdGltZW91dCBleHBp
cmVzLgotICAgICAgICAjCi0gICAgICAgICMgRm9yIG5vdywgd2UgZXhwZWN0IHJlY2VpdmluZyBj
bG9zaW5nIGhhbmRzaGFrZSByaWdodCBhZnRlciBzZW5kaW5nCi0gICAgICAgICMgb3V0IGNsb3Np
bmcgaGFuZHNoYWtlLCBhbmQgaWYgd2UgY291bGRuJ3QgcmVjZWl2ZSBub24taGFuZHNoYWtlCi0g
ICAgICAgICMgZnJhbWUsIHdlIHRha2UgaXQgYXMgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRp
b24uCi0gICAgICAgIG1lc3NhZ2UgPSBzZWxmLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlm
IG1lc3NhZ2UgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWlu
YXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRGlkblwndCByZWNlaXZlIHZhbGlkIGFj
ayBmb3IgY2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICAjIFRPRE86IDMuIGNsb3NlIHRoZSBX
ZWJTb2NrZXQgY29ubmVjdGlvbi4KLSAgICAgICAgIyBub3RlOiBtb2RfcHl0aG9uIENvbm5lY3Rp
b24gKG1wX2Nvbm4pIGRvZXNuJ3QgaGF2ZSBjbG9zZSBtZXRob2QuCi0KLSAgICBkZWYgc2VuZF9w
aW5nKHNlbGYsIGJvZHkpOgotICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0g
ICAgICAgICAgICAnU3RyZWFtSGl4aWU3NSBkb2VzblwndCBzdXBwb3J0IHNlbmRfcGluZycpCi0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9f
c3RyZWFtX2h5YmkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2h5YmkucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxOGU4ZmZhMzk1NWQ1YWY1YzNiN2M1MTZiY2Zh
OTgwZWZlNmRkODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oeWJpLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsODk0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBwcm92aWRl
cyBjbGFzc2VzIGFuZCBoZWxwZXIgZnVuY3Rpb25zIGZvciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1l
cwotb2YgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAoUkZDIDY0NTUpLgotCi1TcGVjaWZpY2F0aW9u
OgotaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1NQotIiIiCi0KLQotZnJvbSBjb2xs
ZWN0aW9ucyBpbXBvcnQgZGVxdWUKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBz
dHJ1Y3QKLWltcG9ydCB0aW1lCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldC5f
c3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNl
cHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZFVU
RjhFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgU3Ry
ZWFtQmFzZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBv
cnRlZEZyYW1lRXhjZXB0aW9uCi0KLQotX05PT1BfTUFTS0VSID0gdXRpbC5Ob29wTWFza2VyKCkK
LQotCi1jbGFzcyBGcmFtZShvYmplY3QpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbj0x
LCByc3YxPTAsIHJzdjI9MCwgcnN2Mz0wLAotICAgICAgICAgICAgICAgICBvcGNvZGU9Tm9uZSwg
cGF5bG9hZD0nJyk6Ci0gICAgICAgIHNlbGYuZmluID0gZmluCi0gICAgICAgIHNlbGYucnN2MSA9
IHJzdjEKLSAgICAgICAgc2VsZi5yc3YyID0gcnN2MgotICAgICAgICBzZWxmLnJzdjMgPSByc3Yz
Ci0gICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgIHNlbGYucGF5bG9hZCA9IHBh
eWxvYWQKLQotCi0jIEhlbHBlciBmdW5jdGlvbnMgbWFkZSBwdWJsaWMgdG8gYmUgdXNlZCBmb3Ig
d3JpdGluZyB1bml0dGVzdHMgZm9yIFdlYlNvY2tldAotIyBjbGllbnRzLgotCi0KLWRlZiBjcmVh
dGVfbGVuZ3RoX2hlYWRlcihsZW5ndGgsIG1hc2spOgotICAgICIiIkNyZWF0ZXMgYSBsZW5ndGgg
aGVhZGVyLgotCi0gICAgQXJnczoKLSAgICAgICAgbGVuZ3RoOiBGcmFtZSBsZW5ndGguIE11c3Qg
YmUgbGVzcyB0aGFuIDJeNjMuCi0gICAgICAgIG1hc2s6IE1hc2sgYml0LiBNdXN0IGJlIGJvb2xl
YW4uCi0KLSAgICBSYWlzZXM6Ci0gICAgICAgIFZhbHVlRXJyb3I6IHdoZW4gYmFkIGRhdGEgaXMg
Z2l2ZW4uCi0gICAgIiIiCi0KLSAgICBpZiBtYXNrOgotICAgICAgICBtYXNrX2JpdCA9IDEgPDwg
NwotICAgIGVsc2U6Ci0gICAgICAgIG1hc2tfYml0ID0gMAotCi0gICAgaWYgbGVuZ3RoIDwgMDoK
LSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignbGVuZ3RoIG11c3QgYmUgbm9uIG5lZ2F0aXZlIGlu
dGVnZXInKQotICAgIGVsaWYgbGVuZ3RoIDw9IDEyNToKLSAgICAgICAgcmV0dXJuIGNocihtYXNr
X2JpdCB8IGxlbmd0aCkKLSAgICBlbGlmIGxlbmd0aCA8ICgxIDw8IDE2KToKLSAgICAgICAgcmV0
dXJuIGNocihtYXNrX2JpdCB8IDEyNikgKyBzdHJ1Y3QucGFjaygnIUgnLCBsZW5ndGgpCi0gICAg
ZWxpZiBsZW5ndGggPCAoMSA8PCA2Myk6Ci0gICAgICAgIHJldHVybiBjaHIobWFza19iaXQgfCAx
MjcpICsgc3RydWN0LnBhY2soJyFRJywgbGVuZ3RoKQotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ1BheWxvYWQgaXMgdG9vIGJpZyBmb3Igb25lIGZyYW1lJykKLQotCi1kZWYg
Y3JlYXRlX2hlYWRlcihvcGNvZGUsIHBheWxvYWRfbGVuZ3RoLCBmaW4sIHJzdjEsIHJzdjIsIHJz
djMsIG1hc2spOgotICAgICIiIkNyZWF0ZXMgYSBmcmFtZSBoZWFkZXIuCi0KLSAgICBSYWlzZXM6
Ci0gICAgICAgIEV4Y2VwdGlvbjogd2hlbiBiYWQgZGF0YSBpcyBnaXZlbi4KLSAgICAiIiIKLQot
ICAgIGlmIG9wY29kZSA8IDAgb3IgMHhmIDwgb3Bjb2RlOgotICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdPcGNvZGUgb3V0IG9mIHJhbmdlJykKLQotICAgIGlmIHBheWxvYWRfbGVuZ3RoIDwgMCBv
ciAoMSA8PCA2MykgPD0gcGF5bG9hZF9sZW5ndGg6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
J3BheWxvYWRfbGVuZ3RoIG91dCBvZiByYW5nZScpCi0KLSAgICBpZiAoZmluIHwgcnN2MSB8IHJz
djIgfCByc3YzKSAmIH4xOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdGSU4gYml0IGFuZCBS
ZXNlcnZlZCBiaXQgcGFyYW1ldGVyIG11c3QgYmUgMCBvciAxJykKLQotICAgIGhlYWRlciA9ICcn
Ci0KLSAgICBmaXJzdF9ieXRlID0gKChmaW4gPDwgNykKLSAgICAgICAgICAgICAgICAgIHwgKHJz
djEgPDwgNikgfCAocnN2MiA8PCA1KSB8IChyc3YzIDw8IDQpCi0gICAgICAgICAgICAgICAgICB8
IG9wY29kZSkKLSAgICBoZWFkZXIgKz0gY2hyKGZpcnN0X2J5dGUpCi0gICAgaGVhZGVyICs9IGNy
ZWF0ZV9sZW5ndGhfaGVhZGVyKHBheWxvYWRfbGVuZ3RoLCBtYXNrKQotCi0gICAgcmV0dXJuIGhl
YWRlcgotCi0KLWRlZiBfYnVpbGRfZnJhbWUoaGVhZGVyLCBib2R5LCBtYXNrKToKLSAgICBpZiBu
b3QgbWFzazoKLSAgICAgICAgcmV0dXJuIGhlYWRlciArIGJvZHkKLQotICAgIG1hc2tpbmdfbm9u
Y2UgPSBvcy51cmFuZG9tKDQpCi0gICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlciht
YXNraW5nX25vbmNlKQotCi0gICAgcmV0dXJuIGhlYWRlciArIG1hc2tpbmdfbm9uY2UgKyBtYXNr
ZXIubWFzayhib2R5KQotCi0KLWRlZiBfZmlsdGVyX2FuZF9mb3JtYXRfZnJhbWVfb2JqZWN0KGZy
YW1lLCBtYXNrLCBmcmFtZV9maWx0ZXJzKToKLSAgICBmb3IgZnJhbWVfZmlsdGVyIGluIGZyYW1l
X2ZpbHRlcnM6Ci0gICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCi0KLSAgICBoZWFk
ZXIgPSBjcmVhdGVfaGVhZGVyKAotICAgICAgICBmcmFtZS5vcGNvZGUsIGxlbihmcmFtZS5wYXls
b2FkKSwgZnJhbWUuZmluLAotICAgICAgICBmcmFtZS5yc3YxLCBmcmFtZS5yc3YyLCBmcmFtZS5y
c3YzLCBtYXNrKQotICAgIHJldHVybiBfYnVpbGRfZnJhbWUoaGVhZGVyLCBmcmFtZS5wYXlsb2Fk
LCBtYXNrKQotCi0KLWRlZiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAotICAgIG1lc3NhZ2UsIG9wY29k
ZT1jb21tb24uT1BDT0RFX0JJTkFSWSwgZmluPTEsIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9
W10pOgotICAgICIiIkNyZWF0ZXMgYSBzaW1wbGUgYmluYXJ5IGZyYW1lIHdpdGggbm8gZXh0ZW5z
aW9uLCByZXNlcnZlZCBiaXQuIiIiCi0KLSAgICBmcmFtZSA9IEZyYW1lKGZpbj1maW4sIG9wY29k
ZT1vcGNvZGUsIHBheWxvYWQ9bWVzc2FnZSkKLSAgICByZXR1cm4gX2ZpbHRlcl9hbmRfZm9ybWF0
X2ZyYW1lX29iamVjdChmcmFtZSwgbWFzaywgZnJhbWVfZmlsdGVycykKLQotCi1kZWYgY3JlYXRl
X3RleHRfZnJhbWUoCi0gICAgbWVzc2FnZSwgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCwgZmlu
PTEsIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9W10pOgotICAgICIiIkNyZWF0ZXMgYSBzaW1w
bGUgdGV4dCBmcmFtZSB3aXRoIG5vIGV4dGVuc2lvbiwgcmVzZXJ2ZWQgYml0LiIiIgotCi0gICAg
ZW5jb2RlZF9tZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykKLSAgICByZXR1cm4gY3Jl
YXRlX2JpbmFyeV9mcmFtZShlbmNvZGVkX21lc3NhZ2UsIG9wY29kZSwgZmluLCBtYXNrLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX2ZpbHRlcnMpCi0KLQotZGVmIHBhcnNl
X2ZyYW1lKHJlY2VpdmVfYnl0ZXMsIGxvZ2dlcj1Ob25lLAotICAgICAgICAgICAgICAgIHdzX3Zl
cnNpb249Y29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QsCi0gICAgICAgICAgICAgICAgdW5tYXNr
X3JlY2VpdmU9VHJ1ZSk6Ci0gICAgIiIiUGFyc2VzIGEgZnJhbWUuIFJldHVybnMgYSB0dXBsZSBj
b250YWluaW5nIGVhY2ggaGVhZGVyIGZpZWxkIGFuZAotICAgIHBheWxvYWQuCi0KLSAgICBBcmdz
OgotICAgICAgICByZWNlaXZlX2J5dGVzOiBhIGZ1bmN0aW9uIHRoYXQgcmVhZHMgZnJhbWUgZGF0
YSBmcm9tIGEgc3RyZWFtIG9yCi0gICAgICAgICAgICBzb21ldGhpbmcgc2ltaWxhci4gVGhlIGZ1
bmN0aW9uIHRha2VzIGxlbmd0aCBvZiB0aGUgYnl0ZXMgdG8gYmUKLSAgICAgICAgICAgIHJlYWQu
IFRoZSBmdW5jdGlvbiBtdXN0IHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uIGlm
Ci0gICAgICAgICAgICB0aGVyZSBpcyBub3QgZW5vdWdoIGRhdGEgdG8gYmUgcmVhZC4KLSAgICAg
ICAgbG9nZ2VyOiBhIGxvZ2dpbmcgb2JqZWN0LgotICAgICAgICB3c192ZXJzaW9uOiB0aGUgdmVy
c2lvbiBvZiBXZWJTb2NrZXQgcHJvdG9jb2wuCi0gICAgICAgIHVubWFza19yZWNlaXZlOiB1bm1h
c2sgcmVjZWl2ZWQgZnJhbWVzLiBXaGVuIHJlY2VpdmVkIHVubWFza2VkCi0gICAgICAgICAgICBm
cmFtZSwgcmFpc2VzIEludmFsaWRGcmFtZUV4Y2VwdGlvbi4KLQotICAgIFJhaXNlczoKLSAgICAg
ICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVjZWl2ZV9ieXRlcyByYWlz
ZXMgaXQuCi0gICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUgZnJhbWUgY29u
dGFpbnMgaW52YWxpZCBkYXRhLgotICAgICIiIgotCi0gICAgaWYgbm90IGxvZ2dlcjoKLSAgICAg
ICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQotCi0gICAgbG9nZ2VyLmxvZyhjb21tb24u
TE9HTEVWRUxfRklORSwgJ1JlY2VpdmUgdGhlIGZpcnN0IDIgb2N0ZXRzIG9mIGEgZnJhbWUnKQot
Ci0gICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKDIpCi0KLSAgICBmaXJzdF9ieXRlID0gb3Jk
KHJlY2VpdmVkWzBdKQotICAgIGZpbiA9IChmaXJzdF9ieXRlID4+IDcpICYgMQotICAgIHJzdjEg
PSAoZmlyc3RfYnl0ZSA+PiA2KSAmIDEKLSAgICByc3YyID0gKGZpcnN0X2J5dGUgPj4gNSkgJiAx
Ci0gICAgcnN2MyA9IChmaXJzdF9ieXRlID4+IDQpICYgMQotICAgIG9wY29kZSA9IGZpcnN0X2J5
dGUgJiAweGYKLQotICAgIHNlY29uZF9ieXRlID0gb3JkKHJlY2VpdmVkWzFdKQotICAgIG1hc2sg
PSAoc2Vjb25kX2J5dGUgPj4gNykgJiAxCi0gICAgcGF5bG9hZF9sZW5ndGggPSBzZWNvbmRfYnl0
ZSAmIDB4N2YKLQotICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAg
ICAgICAgICAnRklOPSVzLCBSU1YxPSVzLCBSU1YyPSVzLCBSU1YzPSVzLCBvcGNvZGU9JXMsICcK
LSAgICAgICAgICAgICAgICdNYXNrPSVzLCBQYXlsb2FkX2xlbmd0aD0lcycsCi0gICAgICAgICAg
ICAgICBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgbWFzaywgcGF5bG9hZF9sZW5ndGgp
Ci0KLSAgICBpZiAobWFzayA9PSAxKSAhPSB1bm1hc2tfcmVjZWl2ZToKLSAgICAgICAgcmFpc2Ug
SW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgJ01hc2sgYml0IG9uIHRoZSByZWNl
aXZlZCBmcmFtZSBkaWRcJ250IG1hdGNoIG1hc2tpbmcgJwotICAgICAgICAgICAgJ2NvbmZpZ3Vy
YXRpb24gZm9yIHJlY2VpdmVkIGZyYW1lcycpCi0KLSAgICAjIFRoZSBIeUJpIGFuZCBsYXRlciBz
cGVjcyBkaXNhbGxvdyBwdXR0aW5nIGEgdmFsdWUgaW4gMHgwLTB4RkZGRgotICAgICMgaW50byB0
aGUgOC1vY3RldCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBmaWVsZCAob3IgMHgwLTB4RkQgaW4K
LSAgICAjIDItb2N0ZXQgZmllbGQpLgotICAgIHZhbGlkX2xlbmd0aF9lbmNvZGluZyA9IFRydWUK
LSAgICBsZW5ndGhfZW5jb2RpbmdfYnl0ZXMgPSAxCi0gICAgaWYgcGF5bG9hZF9sZW5ndGggPT0g
MTI3OgotICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAg
ICAgICAgICAgICdSZWNlaXZlIDgtb2N0ZXQgZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGgnKQotCi0g
ICAgICAgIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoID0gcmVjZWl2ZV9ieXRlcyg4KQotICAgICAg
ICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCi0gICAgICAgICAgICAnIVEnLCBleHRl
bmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KLSAgICAgICAgaWYgcGF5bG9hZF9sZW5ndGggPiAweDdG
RkZGRkZGRkZGRkZGRkY6Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ0V4dGVuZGVkIHBheWxvYWQgbGVuZ3RoID49IDJeNjMnKQotICAg
ICAgICBpZiB3c192ZXJzaW9uID49IDEzIGFuZCBwYXlsb2FkX2xlbmd0aCA8IDB4MTAwMDA6Ci0g
ICAgICAgICAgICB2YWxpZF9sZW5ndGhfZW5jb2RpbmcgPSBGYWxzZQotICAgICAgICAgICAgbGVu
Z3RoX2VuY29kaW5nX2J5dGVzID0gOAotCi0gICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xF
VkVMX0ZJTkUsCi0gICAgICAgICAgICAgICAgICAgJ0RlY29kZWRfcGF5bG9hZF9sZW5ndGg9JXMn
LCBwYXlsb2FkX2xlbmd0aCkKLSAgICBlbGlmIHBheWxvYWRfbGVuZ3RoID09IDEyNjoKLSAgICAg
ICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICAgICAgICAn
UmVjZWl2ZSAyLW9jdGV0IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoJykKLQotICAgICAgICBleHRl
bmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0ZXMoMikKLSAgICAgICAgcGF5bG9hZF9s
ZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAgICAgJyFIJywgZXh0ZW5kZWRfcGF5bG9h
ZF9sZW5ndGgpWzBdCi0gICAgICAgIGlmIHdzX3ZlcnNpb24gPj0gMTMgYW5kIHBheWxvYWRfbGVu
Z3RoIDwgMTI2OgotICAgICAgICAgICAgdmFsaWRfbGVuZ3RoX2VuY29kaW5nID0gRmFsc2UKLSAg
ICAgICAgICAgIGxlbmd0aF9lbmNvZGluZ19ieXRlcyA9IDIKLQotICAgICAgICBsb2dnZXIubG9n
KGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgICAgICAgICdEZWNvZGVkX3BheWxv
YWRfbGVuZ3RoPSVzJywgcGF5bG9hZF9sZW5ndGgpCi0KLSAgICBpZiBub3QgdmFsaWRfbGVuZ3Ro
X2VuY29kaW5nOgotICAgICAgICBsb2dnZXIud2FybmluZygKLSAgICAgICAgICAgICdQYXlsb2Fk
IGxlbmd0aCBpcyBub3QgZW5jb2RlZCB1c2luZyB0aGUgbWluaW1hbCBudW1iZXIgb2YgJwotICAg
ICAgICAgICAgJ2J5dGVzICglZCBpcyBlbmNvZGVkIHVzaW5nICVkIGJ5dGVzKScsCi0gICAgICAg
ICAgICBwYXlsb2FkX2xlbmd0aCwKLSAgICAgICAgICAgIGxlbmd0aF9lbmNvZGluZ19ieXRlcykK
LQotICAgIGlmIG1hc2sgPT0gMToKLSAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxf
RklORSwgJ1JlY2VpdmUgbWFzaycpCi0KLSAgICAgICAgbWFza2luZ19ub25jZSA9IHJlY2VpdmVf
Ynl0ZXMoNCkKLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcihtYXNraW5n
X25vbmNlKQotCi0gICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdNYXNr
PSVyJywgbWFza2luZ19ub25jZSkKLSAgICBlbHNlOgotICAgICAgICBtYXNrZXIgPSBfTk9PUF9N
QVNLRVIKLQotICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdSZWNlaXZlIHBh
eWxvYWQgZGF0YScpCi0gICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxf
RklORSk6Ci0gICAgICAgIHJlY2VpdmVfc3RhcnQgPSB0aW1lLnRpbWUoKQotCi0gICAgcmF3X3Bh
eWxvYWRfYnl0ZXMgPSByZWNlaXZlX2J5dGVzKHBheWxvYWRfbGVuZ3RoKQotCi0gICAgaWYgbG9n
Z2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6Ci0gICAgICAgIGxvZ2dlci5s
b2coCi0gICAgICAgICAgICBjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICdEb25l
IHJlY2VpdmluZyBwYXlsb2FkIGRhdGEgYXQgJXMgTUIvcycsCi0gICAgICAgICAgICBwYXlsb2Fk
X2xlbmd0aCAvICh0aW1lLnRpbWUoKSAtIHJlY2VpdmVfc3RhcnQpIC8gMTAwMCAvIDEwMDApCi0g
ICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ1VubWFzayBwYXlsb2FkIGRhdGEn
KQotCi0gICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6Ci0g
ICAgICAgIHVubWFza19zdGFydCA9IHRpbWUudGltZSgpCi0KLSAgICB1bm1hc2tlZF9ieXRlcyA9
IG1hc2tlci5tYXNrKHJhd19wYXlsb2FkX2J5dGVzKQotCi0gICAgaWYgbG9nZ2VyLmlzRW5hYmxl
ZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6Ci0gICAgICAgIGxvZ2dlci5sb2coCi0gICAgICAg
ICAgICBjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICdEb25lIHVubWFza2luZyBw
YXlsb2FkIGRhdGEgYXQgJXMgTUIvcycsCi0gICAgICAgICAgICBwYXlsb2FkX2xlbmd0aCAvICh0
aW1lLnRpbWUoKSAtIHVubWFza19zdGFydCkgLyAxMDAwIC8gMTAwMCkKLQotICAgIHJldHVybiBv
cGNvZGUsIHVubWFza2VkX2J5dGVzLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMKLQotCi1jbGFzcyBG
cmFnbWVudGVkRnJhbWVCdWlsZGVyKG9iamVjdCk6Ci0gICAgIiIiQSBzdGF0ZWZ1bCBjbGFzcyB0
byBzZW5kIGEgbWVzc2FnZSBhcyBmcmFnbWVudHMuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbWFzaywgZnJhbWVfZmlsdGVycz1bXSwgZW5jb2RlX3V0Zjg9VHJ1ZSk6Ci0gICAgICAgICIi
IkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuIiIiCi0KLSAgICAgICAgc2VsZi5fbWFzayA9IG1hc2sK
LSAgICAgICAgc2VsZi5fZnJhbWVfZmlsdGVycyA9IGZyYW1lX2ZpbHRlcnMKLSAgICAgICAgIyBU
aGlzIGlzIGZvciBza2lwcGluZyBVVEYtOCBlbmNvZGluZyB3aGVuIGJ1aWxkaW5nIHRleHQgdHlw
ZSBmcmFtZXMKLSAgICAgICAgIyBmcm9tIGNvbXByZXNzZWQgZGF0YS4KLSAgICAgICAgc2VsZi5f
ZW5jb2RlX3V0ZjggPSBlbmNvZGVfdXRmOAotCi0gICAgICAgIHNlbGYuX3N0YXJ0ZWQgPSBGYWxz
ZQotCi0gICAgICAgICMgSG9sZCBvcGNvZGUgb2YgdGhlIGZpcnN0IGZyYW1lIGluIG1lc3NhZ2Vz
IHRvIHZlcmlmeSB0eXBlcyBvZiBvdGhlcgotICAgICAgICAjIGZyYW1lcyBpbiB0aGUgbWVzc2Fn
ZSBhcmUgYWxsIHRoZSBzYW1lLgotICAgICAgICBzZWxmLl9vcGNvZGUgPSBjb21tb24uT1BDT0RF
X1RFWFQKLQotICAgIGRlZiBidWlsZChzZWxmLCBwYXlsb2FkX2RhdGEsIGVuZCwgYmluYXJ5KToK
LSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAgZnJhbWVfdHlwZSA9IGNvbW1vbi5PUENP
REVfQklOQVJZCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmcmFtZV90eXBlID0gY29tbW9u
Lk9QQ09ERV9URVhUCi0gICAgICAgIGlmIHNlbGYuX3N0YXJ0ZWQ6Ci0gICAgICAgICAgICBpZiBz
ZWxmLl9vcGNvZGUgIT0gZnJhbWVfdHlwZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdNZXNzYWdlIHR5cGVzIGFyZSBkaWZmZXJlbnQgaW4gZnJhbWVzIGZvciAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIHNhbWUgbWVzc2FnZScpCi0gICAgICAgICAg
ICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTgotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgb3Bjb2RlID0gZnJhbWVfdHlwZQotICAgICAgICAgICAgc2VsZi5fb3Bjb2RlID0g
ZnJhbWVfdHlwZQotCi0gICAgICAgIGlmIGVuZDoKLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0ZWQg
PSBGYWxzZQotICAgICAgICAgICAgZmluID0gMQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
c2VsZi5fc3RhcnRlZCA9IFRydWUKLSAgICAgICAgICAgIGZpbiA9IDAKLQotICAgICAgICBpZiBi
aW5hcnkgb3Igbm90IHNlbGYuX2VuY29kZV91dGY4OgotICAgICAgICAgICAgcmV0dXJuIGNyZWF0
ZV9iaW5hcnlfZnJhbWUoCi0gICAgICAgICAgICAgICAgcGF5bG9hZF9kYXRhLCBvcGNvZGUsIGZp
biwgc2VsZi5fbWFzaywgc2VsZi5fZnJhbWVfZmlsdGVycykKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHJldHVybiBjcmVhdGVfdGV4dF9mcmFtZSgKLSAgICAgICAgICAgICAgICBwYXlsb2Fk
X2RhdGEsIG9wY29kZSwgZmluLCBzZWxmLl9tYXNrLCBzZWxmLl9mcmFtZV9maWx0ZXJzKQotCi0K
LWRlZiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUob3Bjb2RlLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0
ZXJzKToKLSAgICBmcmFtZSA9IEZyYW1lKG9wY29kZT1vcGNvZGUsIHBheWxvYWQ9Ym9keSkKLQot
ICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gZnJhbWVfZmlsdGVyczoKLSAgICAgICAgZnJhbWVfZmls
dGVyLmZpbHRlcihmcmFtZSkKLQotICAgIGlmIGxlbihmcmFtZS5wYXlsb2FkKSA+IDEyNToKLSAg
ICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgJ1BheWxvYWQg
ZGF0YSBzaXplIG9mIGNvbnRyb2wgZnJhbWVzIG11c3QgYmUgMTI1IGJ5dGVzIG9yIGxlc3MnKQot
Ci0gICAgaGVhZGVyID0gY3JlYXRlX2hlYWRlcigKLSAgICAgICAgZnJhbWUub3Bjb2RlLCBsZW4o
ZnJhbWUucGF5bG9hZCksIGZyYW1lLmZpbiwKLSAgICAgICAgZnJhbWUucnN2MSwgZnJhbWUucnN2
MiwgZnJhbWUucnN2MywgbWFzaykKLSAgICByZXR1cm4gX2J1aWxkX2ZyYW1lKGhlYWRlciwgZnJh
bWUucGF5bG9hZCwgbWFzaykKLQotCi1kZWYgY3JlYXRlX3BpbmdfZnJhbWUoYm9keSwgbWFzaz1G
YWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAgcmV0dXJuIF9jcmVhdGVfY29udHJvbF9mcmFt
ZShjb21tb24uT1BDT0RFX1BJTkcsIGJvZHksIG1hc2ssIGZyYW1lX2ZpbHRlcnMpCi0KLQotZGVm
IGNyZWF0ZV9wb25nX2ZyYW1lKGJvZHksIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9W10pOgot
ICAgIHJldHVybiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUoY29tbW9uLk9QQ09ERV9QT05HLCBib2R5
LCBtYXNrLCBmcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBjcmVhdGVfY2xvc2VfZnJhbWUoYm9keSwg
bWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAgcmV0dXJuIF9jcmVhdGVfY29udHJv
bF9mcmFtZSgKLSAgICAgICAgY29tbW9uLk9QQ09ERV9DTE9TRSwgYm9keSwgbWFzaywgZnJhbWVf
ZmlsdGVycykKLQotCi1kZWYgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkoY29kZSwgcmVh
c29uKToKLSAgICBib2R5ID0gJycKLSAgICBpZiBjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICBp
ZiAoY29kZSA+IGNvbW1vbi5TVEFUVVNfVVNFUl9QUklWQVRFX01BWCBvcgotICAgICAgICAgICAg
Y29kZSA8IGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpOgotICAgICAgICAgICAgcmFpc2Ug
QmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdTdGF0dXMgY29kZSBpcyBvdXQgb2YgcmFuZ2UnKQotICAg
ICAgICBpZiAoY29kZSA9PSBjb21tb24uU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCBvcgotICAg
ICAgICAgICAgY29kZSA9PSBjb21tb24uU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUgb3IKLSAgICAg
ICAgICAgIGNvZGUgPT0gY29tbW9uLlNUQVRVU19UTFNfSEFORFNIQUtFKToKLSAgICAgICAgICAg
IHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbignU3RhdHVzIGNvZGUgaXMgcmVzZXJ2ZWQgcHNl
dWRvICcKLSAgICAgICAgICAgICAgICAnY29kZScpCi0gICAgICAgIGVuY29kZWRfcmVhc29uID0g
cmVhc29uLmVuY29kZSgndXRmLTgnKQotICAgICAgICBib2R5ID0gc3RydWN0LnBhY2soJyFIJywg
Y29kZSkgKyBlbmNvZGVkX3JlYXNvbgotICAgIHJldHVybiBib2R5Ci0KLQotY2xhc3MgU3RyZWFt
T3B0aW9ucyhvYmplY3QpOgotICAgICIiIkhvbGRzIG9wdGlvbiB2YWx1ZXMgdG8gY29uZmlndXJl
IFN0cmVhbSBvYmplY3RzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICAi
IiJDb25zdHJ1Y3RzIFN0cmVhbU9wdGlvbnMuIiIiCi0KLSAgICAgICAgIyBGaWx0ZXJzIGFwcGxp
ZWQgdG8gZnJhbWVzLgotICAgICAgICBzZWxmLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMgPSBbXQot
ICAgICAgICBzZWxmLmluY29taW5nX2ZyYW1lX2ZpbHRlcnMgPSBbXQotCi0gICAgICAgICMgRmls
dGVycyBhcHBsaWVkIHRvIG1lc3NhZ2VzLiBDb250cm9sIGZyYW1lcyBhcmUgbm90IGFmZmVjdGVk
IGJ5IHRoZW0uCi0gICAgICAgIHNlbGYub3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJzID0gW10KLSAg
ICAgICAgc2VsZi5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnMgPSBbXQotCi0gICAgICAgIHNlbGYu
ZW5jb2RlX3RleHRfbWVzc2FnZV90b191dGY4ID0gVHJ1ZQotICAgICAgICBzZWxmLm1hc2tfc2Vu
ZCA9IEZhbHNlCi0gICAgICAgIHNlbGYudW5tYXNrX3JlY2VpdmUgPSBUcnVlCi0KLQotY2xhc3Mg
U3RyZWFtKFN0cmVhbUJhc2UpOgotICAgICIiIkEgY2xhc3MgZm9yIHBhcnNpbmcvYnVpbGRpbmcg
ZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wKLSAgICAoUkZDIDY0NTUpLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIG9wdGlvbnMpOgotICAgICAgICAi
IiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBy
ZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgICIiIgotCi0gICAgICAgIFN0cmVh
bUJhc2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0
aW9ucwotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQgPSBGYWxzZQot
ICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gRmFsc2UKLQotICAgICAg
ICAjIEhvbGRzIGJvZHkgb2YgcmVjZWl2ZWQgZnJhZ21lbnRzLgotICAgICAgICBzZWxmLl9yZWNl
aXZlZF9mcmFnbWVudHMgPSBbXQotICAgICAgICAjIEhvbGRzIHRoZSBvcGNvZGUgb2YgdGhlIGZp
cnN0IGZyYWdtZW50LgotICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPSBOb25lCi0KLSAg
ICAgICAgc2VsZi5fd3JpdGVyID0gRnJhZ21lbnRlZEZyYW1lQnVpbGRlcigKLSAgICAgICAgICAg
IHNlbGYuX29wdGlvbnMubWFza19zZW5kLCBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2Zp
bHRlcnMsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLmVuY29kZV90ZXh0X21lc3NhZ2VfdG9f
dXRmOCkKLQotICAgICAgICBzZWxmLl9waW5nX3F1ZXVlID0gZGVxdWUoKQotCi0gICAgZGVmIF9y
ZWNlaXZlX2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJSZWNlaXZlcyBhIGZyYW1lIGFuZCByZXR1
cm4gZGF0YSBpbiB0aGUgZnJhbWUgYXMgYSB0dXBsZSBjb250YWluaW5nCi0gICAgICAgIGVhY2gg
aGVhZGVyIGZpZWxkIGFuZCBwYXlsb2FkIHNlcGFyYXRlbHkuCi0KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1
cm5zIGVtcHR5Ci0gICAgICAgICAgICAgICAgc3RyaW5nLgotICAgICAgICAgICAgSW52YWxpZEZy
YW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBjb250YWlucyBpbnZhbGlkIGRhdGEuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIGRlZiBfcmVjZWl2ZV9ieXRlcyhsZW5ndGgpOgotICAgICAgICAg
ICAgcmV0dXJuIHNlbGYucmVjZWl2ZV9ieXRlcyhsZW5ndGgpCi0KLSAgICAgICAgcmV0dXJuIHBh
cnNlX2ZyYW1lKHJlY2VpdmVfYnl0ZXM9X3JlY2VpdmVfYnl0ZXMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2dnZXI9c2VsZi5fbG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd3NfdmVyc2lvbj1zZWxmLl9yZXF1ZXN0LndzX3ZlcnNpb24sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bm1hc2tfcmVjZWl2ZT1zZWxmLl9vcHRpb25zLnVubWFza19yZWNlaXZlKQot
Ci0gICAgZGVmIF9yZWNlaXZlX2ZyYW1lX2FzX2ZyYW1lX29iamVjdChzZWxmKToKLSAgICAgICAg
b3Bjb2RlLCB1bm1hc2tlZF9ieXRlcywgZmluLCByc3YxLCByc3YyLCByc3YzID0gc2VsZi5fcmVj
ZWl2ZV9mcmFtZSgpCi0KLSAgICAgICAgcmV0dXJuIEZyYW1lKGZpbj1maW4sIHJzdjE9cnN2MSwg
cnN2Mj1yc3YyLCByc3YzPXJzdjMsCi0gICAgICAgICAgICAgICAgICAgICBvcGNvZGU9b3Bjb2Rl
LCBwYXlsb2FkPXVubWFza2VkX2J5dGVzKQotCi0gICAgZGVmIHJlY2VpdmVfZmlsdGVyZWRfZnJh
bWUoc2VsZik6Ci0gICAgICAgICIiIlJlY2VpdmVzIGEgZnJhbWUgYW5kIGFwcGxpZXMgZnJhbWUg
ZmlsdGVycyBhbmQgbWVzc2FnZSBmaWx0ZXJzLgotICAgICAgICBUaGUgZnJhbWUgdG8gYmUgcmVj
ZWl2ZWQgbXVzdCBzYXRpc2Z5IGZvbGxvd2luZyBjb25kaXRpb25zOgotICAgICAgICAtIFRoZSBm
cmFtZSBpcyBub3QgZnJhZ21lbnRlZC4KLSAgICAgICAgLSBUaGUgb3Bjb2RlIG9mIHRoZSBmcmFt
ZSBpcyBURVhUIG9yIEJJTkFSWS4KLQotICAgICAgICBETyBOT1QgVVNFIHRoaXMgbWV0aG9kIGV4
Y2VwdCBmb3IgdGVzdGluZyBwdXJwb3NlLgotICAgICAgICAiIiIKLQotICAgICAgICBmcmFtZSA9
IHNlbGYuX3JlY2VpdmVfZnJhbWVfYXNfZnJhbWVfb2JqZWN0KCkKLSAgICAgICAgaWYgbm90IGZy
YW1lLmZpbjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAnU2VnbWVudGVkIGZyYW1lcyBtdXN0IG5vdCBiZSByZWNlaXZlZCB2aWEgJwot
ICAgICAgICAgICAgICAgICdyZWNlaXZlX2ZpbHRlcmVkX2ZyYW1lKCknKQotICAgICAgICBpZiAo
ZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVfVEVYVCBhbmQKLSAgICAgICAgICAgIGZyYW1l
Lm9wY29kZSAhPSBjb21tb24uT1BDT0RFX0JJTkFSWSk6Ci0gICAgICAgICAgICByYWlzZSBJbnZh
bGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0NvbnRyb2wgZnJhbWVzIG11c3Qg
bm90IGJlIHJlY2VpdmVkIHZpYSAnCi0gICAgICAgICAgICAgICAgJ3JlY2VpdmVfZmlsdGVyZWRf
ZnJhbWUoKScpCi0KLSAgICAgICAgZm9yIGZyYW1lX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmlu
Y29taW5nX2ZyYW1lX2ZpbHRlcnM6Ci0gICAgICAgICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZy
YW1lKQotICAgICAgICBmb3IgbWVzc2FnZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5pbmNvbWlu
Z19tZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAgICAgICBmcmFtZS5wYXlsb2FkID0gbWVzc2FnZV9m
aWx0ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIHJldHVybiBmcmFtZQotCi0gICAg
ZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToK
LSAgICAgICAgIiIiU2VuZCBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBt
ZXNzYWdlOiB0ZXh0IGluIHVuaWNvZGUgb3IgYmluYXJ5IGluIHN0ciB0byBzZW5kLgotICAgICAg
ICAgICAgYmluYXJ5OiBzZW5kIG1lc3NhZ2UgYXMgYmluYXJ5IGZyYW1lLgotCi0gICAgICAgIFJh
aXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgb24g
YSBzZXJ2ZXItdGVybWluYXRlZAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gb3IgY2FsbGVk
IHdpdGggaW5jb25zaXN0ZW50IG1lc3NhZ2UgdHlwZSBvcgotICAgICAgICAgICAgICAgIGJpbmFy
eSBwYXJhbWV0ZXIuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2Vy
dmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBzZW5kX21lc3NhZ2UgYWZ0ZXIgc2VuZGluZyBv
dXQgYSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAgICAgICAgaWYgYmluYXJ5IGFuZCBpc2luc3Rh
bmNlKG1lc3NhZ2UsIHVuaWNvZGUpOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdNZXNzYWdlIGZvciBiaW5hcnkgZnJhbWUgbXVzdCBi
ZSBpbnN0YW5jZSBvZiBzdHInKQotCi0gICAgICAgIGZvciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxm
Ll9vcHRpb25zLm91dGdvaW5nX21lc3NhZ2VfZmlsdGVyczoKLSAgICAgICAgICAgIG1lc3NhZ2Ug
PSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIobWVzc2FnZSwgZW5kLCBiaW5hcnkpCi0KLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgIyBTZXQgdGhpcyB0byBhbnkgcG9zaXRpdmUgaW50ZWdlciB0byBs
aW1pdCBtYXhpbXVtIHNpemUgb2YgZGF0YSBpbgotICAgICAgICAgICAgIyBwYXlsb2FkIGRhdGEg
b2YgZWFjaCBmcmFtZS4KLSAgICAgICAgICAgIE1BWF9QQVlMT0FEX0RBVEFfU0laRSA9IC0xCi0K
LSAgICAgICAgICAgIGlmIE1BWF9QQVlMT0FEX0RBVEFfU0laRSA8PSAwOgotICAgICAgICAgICAg
ICAgIHNlbGYuX3dyaXRlKHNlbGYuX3dyaXRlci5idWlsZChtZXNzYWdlLCBlbmQsIGJpbmFyeSkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgICAgIGJ5dGVzX3dyaXR0ZW4gPSAw
Ci0gICAgICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgICAgIGVuZF9mb3JfdGhpc19m
cmFtZSA9IGVuZAotICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3dyaXRlID0gbGVuKG1lc3NhZ2Up
IC0gYnl0ZXNfd3JpdHRlbgotICAgICAgICAgICAgICAgIGlmIChNQVhfUEFZTE9BRF9EQVRBX1NJ
WkUgPiAwIGFuZAotICAgICAgICAgICAgICAgICAgICBieXRlc190b193cml0ZSA+IE1BWF9QQVlM
T0FEX0RBVEFfU0laRSk6Ci0gICAgICAgICAgICAgICAgICAgIGVuZF9mb3JfdGhpc19mcmFtZSA9
IEZhbHNlCi0gICAgICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3dyaXRlID0gTUFYX1BBWUxPQURf
REFUQV9TSVpFCi0KLSAgICAgICAgICAgICAgICBmcmFtZSA9IHNlbGYuX3dyaXRlci5idWlsZCgK
LSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVtieXRlc193cml0dGVuOmJ5dGVzX3dyaXR0ZW4g
KyBieXRlc190b193cml0ZV0sCi0gICAgICAgICAgICAgICAgICAgIGVuZF9mb3JfdGhpc19mcmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgYmluYXJ5KQotICAgICAgICAgICAgICAgIHNlbGYuX3dy
aXRlKGZyYW1lKQotCi0gICAgICAgICAgICAgICAgYnl0ZXNfd3JpdHRlbiArPSBieXRlc190b193
cml0ZQotCi0gICAgICAgICAgICAgICAgIyBUaGlzIGlmIG11c3QgYmUgcGxhY2VkIGhlcmUgKHRo
ZSBlbmQgb2Ygd2hpbGUgYmxvY2spIHNvIHRoYXQKLSAgICAgICAgICAgICAgICAjIGF0IGxlYXN0
IG9uZSBmcmFtZSBpcyBzZW50LgotICAgICAgICAgICAgICAgIGlmIGxlbihtZXNzYWdlKSA8PSBi
eXRlc193cml0dGVuOgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICBleGNlcHQg
VmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9u
KGUpCi0KLSAgICBkZWYgX2dldF9tZXNzYWdlX2Zyb21fZnJhbWUoc2VsZiwgZnJhbWUpOgotICAg
ICAgICAiIiJHZXRzIGEgbWVzc2FnZSBmcm9tIGZyYW1lLiBJZiB0aGUgbWVzc2FnZSBpcyBjb21w
b3NlZCBvZiBmcmFnbWVudGVkCi0gICAgICAgIGZyYW1lcyBhbmQgdGhlIGZyYW1lIGlzIG5vdCB0
aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lLCB0aGlzIG1ldGhvZAotICAgICAgICByZXR1cm5zIE5v
bmUuIFRoZSB3aG9sZSBtZXNzYWdlIHdpbGwgYmUgcmV0dXJuZWQgd2hlbiB0aGUgbGFzdAotICAg
ICAgICBmcmFnbWVudGVkIGZyYW1lIGlzIHBhc3NlZCB0byB0aGlzIG1ldGhvZC4KLQotICAgICAg
ICBSYWlzZXM6Ci0gICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIGZy
YW1lIGRvZXNuJ3QgbWF0Y2ggZGVmcmFnbWVudGF0aW9uCi0gICAgICAgICAgICAgICAgY29udGV4
dCwgb3IgdGhlIGZyYW1lIGNvbnRhaW5zIGludmFsaWQgZGF0YS4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgaWYgZnJhbWUub3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAg
ICAgICAgICAgaWYgbm90IHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50czoKLSAgICAgICAgICAgICAg
ICBpZiBmcmFtZS5maW46Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4
Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBhIHRlcm1pbmF0aW9u
IGZyYW1lIGJ1dCBmcmFnbWVudGF0aW9uICcKLSAgICAgICAgICAgICAgICAgICAgICAgICdub3Qg
c3RhcnRlZCcpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFp
c2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2Vp
dmVkIGFuIGludGVybWVkaWF0ZSBmcmFtZSBidXQgJwotICAgICAgICAgICAgICAgICAgICAgICAg
J2ZyYWdtZW50YXRpb24gbm90IHN0YXJ0ZWQnKQotCi0gICAgICAgICAgICBpZiBmcmFtZS5maW46
Ci0gICAgICAgICAgICAgICAgIyBFbmQgb2YgZnJhZ21lbnRhdGlvbiBmcmFtZQotICAgICAgICAg
ICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gJycuam9pbihzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMp
Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzID0gW10KLSAgICAgICAg
ICAgICAgICByZXR1cm4gbWVzc2FnZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAjIEludGVybWVkaWF0ZSBmcmFtZQotICAgICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVkX2Zy
YWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9u
ZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRz
OgotICAgICAgICAgICAgICAgIGlmIGZyYW1lLmZpbjoKLSAgICAgICAgICAgICAgICAgICAgcmFp
c2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2Vp
dmVkIGFuIHVuZnJhZ21lbnRlZCBmcmFtZSB3aXRob3V0ICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICd0ZXJtaW5hdGluZyBleGlzdGluZyBmcmFnbWVudGF0aW9uJykKLSAgICAgICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgICAgICAgICAnTmV3IGZyYWdtZW50YXRpb24gc3RhcnRlZCB3aXRo
b3V0IHRlcm1pbmF0aW5nICcKLSAgICAgICAgICAgICAgICAgICAgICAgICdleGlzdGluZyBmcmFn
bWVudGF0aW9uJykKLQotICAgICAgICAgICAgaWYgZnJhbWUuZmluOgotICAgICAgICAgICAgICAg
ICMgVW5mcmFnbWVudGVkIGZyYW1lCi0KLSAgICAgICAgICAgICAgICBzZWxmLl9vcmlnaW5hbF9v
cGNvZGUgPSBmcmFtZS5vcGNvZGUKLSAgICAgICAgICAgICAgICByZXR1cm4gZnJhbWUucGF5bG9h
ZAotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIFN0YXJ0IG9mIGZyYWdtZW50
YXRpb24gZnJhbWUKLQotICAgICAgICAgICAgICAgIGlmIGNvbW1vbi5pc19jb250cm9sX29wY29k
ZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAnQ29udHJvbCBmcmFtZXMgbXVzdCBu
b3QgYmUgZnJhZ21lbnRlZCcpCi0KLSAgICAgICAgICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNv
ZGUgPSBmcmFtZS5vcGNvZGUKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVu
dHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQot
ICAgIGRlZiBfcHJvY2Vzc19jbG9zZV9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAi
IiJQcm9jZXNzZXMgY2xvc2UgbWVzc2FnZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
bWVzc2FnZTogY2xvc2UgbWVzc2FnZS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBJ
bnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIG1lc3NhZ2UgaXMgaW52YWxpZC4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWluYXRlZCA9IFRydWUK
LQotICAgICAgICAjIFN0YXR1cyBjb2RlIGlzIG9wdGlvbmFsLiBXZSBjYW4gaGF2ZSBzdGF0dXMg
cmVhc29uIG9ubHkgaWYgd2UKLSAgICAgICAgIyBoYXZlIHN0YXR1cyBjb2RlLiBTdGF0dXMgcmVh
c29uIGNhbiBiZSBlbXB0eSBzdHJpbmcuIFNvLAotICAgICAgICAjIGFsbG93ZWQgY2FzZXMgYXJl
Ci0gICAgICAgICMgLSBubyBhcHBsaWNhdGlvbiBkYXRhOiBubyBjb2RlIG5vIHJlYXNvbgotICAg
ICAgICAjIC0gMiBvY3RldCBvZiBhcHBsaWNhdGlvbiBkYXRhOiBoYXMgY29kZSBidXQgbm8gcmVh
c29uCi0gICAgICAgICMgLSAzIG9yIG1vcmUgb2N0ZXQgb2YgYXBwbGljYXRpb24gZGF0YTogYm90
aCBjb2RlIGFuZCByZWFzb24KLSAgICAgICAgaWYgbGVuKG1lc3NhZ2UpID09IDA6Ci0gICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkIGNsb3NlIGZyYW1lIChlbXB0eSBib2R5
KScpCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX2NvZGUgPSAoCi0gICAgICAg
ICAgICAgICAgY29tbW9uLlNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQpCi0gICAgICAgIGVsaWYg
bGVuKG1lc3NhZ2UpID09IDE6Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ0lmIGEgY2xvc2UgZnJhbWUgaGFzIHN0YXR1cyBjb2RlLCB0
aGUgbGVuZ3RoIG9mICcKLSAgICAgICAgICAgICAgICAnc3RhdHVzIGNvZGUgbXVzdCBiZSAyIG9j
dGV0JykKLSAgICAgICAgZWxpZiBsZW4obWVzc2FnZSkgPj0gMjoKLSAgICAgICAgICAgIHNlbGYu
X3JlcXVlc3Qud3NfY2xvc2VfY29kZSA9IHN0cnVjdC51bnBhY2soCi0gICAgICAgICAgICAgICAg
JyFIJywgbWVzc2FnZVswOjJdKVswXQotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9z
ZV9yZWFzb24gPSBtZXNzYWdlWzI6XS5kZWNvZGUoCi0gICAgICAgICAgICAgICAgJ3V0Zi04Jywg
J3JlcGxhY2UnKQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAg
ICAgICdSZWNlaXZlZCBjbG9zZSBmcmFtZSAoY29kZT0lZCwgcmVhc29uPSVyKScsCi0gICAgICAg
ICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9jb2RlLAotICAgICAgICAgICAgICAgIHNl
bGYuX3JlcXVlc3Qud3NfY2xvc2VfcmVhc29uKQotCi0gICAgICAgICMgQXMgd2UndmUgcmVjZWl2
ZWQgYSBjbG9zZSBmcmFtZSwgbm8gbW9yZSBkYXRhIGlzIGNvbWluZyBvdmVyIHRoZQotICAgICAg
ICAjIHNvY2tldC4gV2UgY2FuIG5vdyBzYWZlbHkgY2xvc2UgdGhlIHNvY2tldCB3aXRob3V0IHdv
cnJ5aW5nIGFib3V0Ci0gICAgICAgICMgUlNUIHNlbmRpbmcuCi0KLSAgICAgICAgaWYgc2VsZi5f
cmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKLSAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgYWNrIGZvciBzZXJ2ZXItaW5pdGlhdGVkIGNs
b3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdSZWNlaXZlZCBjbGllbnQtaW5pdGlhdGVkIGNsb3Np
bmcgaGFuZHNoYWtlJykKLQotICAgICAgICBjb2RlID0gY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xP
U1VSRQotICAgICAgICByZWFzb24gPSAnJwotICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX3JlcXVl
c3QsICdfZGlzcGF0Y2hlcicpOgotICAgICAgICAgICAgZGlzcGF0Y2hlciA9IHNlbGYuX3JlcXVl
c3QuX2Rpc3BhdGNoZXIKLSAgICAgICAgICAgIGNvZGUsIHJlYXNvbiA9IGRpc3BhdGNoZXIucGFz
c2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSgKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0KQot
ICAgICAgICAgICAgaWYgY29kZSBpcyBOb25lIGFuZCByZWFzb24gaXMgbm90IE5vbmUgYW5kIGxl
bihyZWFzb24pID4gMDoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIud2FybmluZygKLSAg
ICAgICAgICAgICAgICAgICAgJ0hhbmRsZXIgc3BlY2lmaWVkIHJlYXNvbiBkZXNwaXRlIGNvZGUg
YmVpbmcgTm9uZScpCi0gICAgICAgICAgICAgICAgcmVhc29uID0gJycKLSAgICAgICAgICAgIGlm
IHJlYXNvbiBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcnCi0gICAgICAgIHNl
bGYuX3NlbmRfY2xvc2luZ19oYW5kc2hha2UoY29kZSwgcmVhc29uKQotICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnQWNrbm93bGVkZ2VkIGNsb3NpbmcgaGFuZHNoYWtl
IGluaXRpYXRlZCBieSB0aGUgcGVlciAnCi0gICAgICAgICAgICAnKGNvZGU9JXIsIHJlYXNvbj0l
ciknLCBjb2RlLCByZWFzb24pCi0KLSAgICBkZWYgX3Byb2Nlc3NfcGluZ19tZXNzYWdlKHNlbGYs
IG1lc3NhZ2UpOgotICAgICAgICAiIiJQcm9jZXNzZXMgcGluZyBtZXNzYWdlLgotCi0gICAgICAg
IEFyZ3M6Ci0gICAgICAgICAgICBtZXNzYWdlOiBwaW5nIG1lc3NhZ2UuCi0gICAgICAgICIiIgot
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhhbmRsZXIgPSBzZWxmLl9yZXF1ZXN0Lm9uX3Bp
bmdfaGFuZGxlcgotICAgICAgICAgICAgaWYgaGFuZGxlcjoKLSAgICAgICAgICAgICAgICBoYW5k
bGVyKHNlbGYuX3JlcXVlc3QsIG1lc3NhZ2UpCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAg
ICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciBhcyBlOgotICAgICAgICAgICAgcGFzcwotICAgICAg
ICBzZWxmLl9zZW5kX3BvbmcobWVzc2FnZSkKLQotICAgIGRlZiBfcHJvY2Vzc19wb25nX21lc3Nh
Z2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIlByb2Nlc3NlcyBwb25nIG1lc3NhZ2UuCi0K
LSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6IHBvbmcgbWVzc2FnZS4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogQWRkIHBpbmcgdGltZW91dCBoYW5k
bGluZy4KLQotICAgICAgICBpbmZsaWdodF9waW5ncyA9IGRlcXVlKCkKLQotICAgICAgICB3aGls
ZSBUcnVlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGV4cGVjdGVkX2JvZHkg
PSBzZWxmLl9waW5nX3F1ZXVlLnBvcGxlZnQoKQotICAgICAgICAgICAgICAgIGlmIGV4cGVjdGVk
X2JvZHkgPT0gbWVzc2FnZToKLSAgICAgICAgICAgICAgICAgICAgIyBpbmZsaWdodF9waW5ncyBj
b250YWlucyBwaW5ncyBpZ25vcmVkIGJ5IHRoZQotICAgICAgICAgICAgICAgICAgICAjIG90aGVy
IHBlZXIuIEp1c3QgZm9yZ2V0IHRoZW0uCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICdQaW5nICVyIGlzIGFja2VkICglZCBw
aW5ncyB3ZXJlIGlnbm9yZWQpJywKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2Jv
ZHksIGxlbihpbmZsaWdodF9waW5ncykpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAg
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgaW5mbGlnaHRfcGluZ3MuYXBw
ZW5kKGV4cGVjdGVkX2JvZHkpCi0gICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJvciBhcyBlOgot
ICAgICAgICAgICAgICAgICMgVGhlIHJlY2VpdmVkIHBvbmcgd2FzIHVuc29saWNpdGVkIHBvbmcu
IEtlZXAgdGhlCi0gICAgICAgICAgICAgICAgIyBwaW5nIHF1ZXVlIGFzIGlzLgotICAgICAgICAg
ICAgICAgIHNlbGYuX3BpbmdfcXVldWUgPSBpbmZsaWdodF9waW5ncwotICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgYSB1bnNvbGljaXRlZCBwb25nJykKLSAgICAg
ICAgICAgICAgICBicmVhawotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhhbmRsZXIgPSBz
ZWxmLl9yZXF1ZXN0Lm9uX3BvbmdfaGFuZGxlcgotICAgICAgICAgICAgaWYgaGFuZGxlcjoKLSAg
ICAgICAgICAgICAgICBoYW5kbGVyKHNlbGYuX3JlcXVlc3QsIG1lc3NhZ2UpCi0gICAgICAgIGV4
Y2VwdCBBdHRyaWJ1dGVFcnJvciBhcyBlOgotICAgICAgICAgICAgcGFzcwotCi0gICAgZGVmIHJl
Y2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAgIiIiUmVjZWl2ZSBhIFdlYlNvY2tldCBmcmFt
ZSBhbmQgcmV0dXJuIGl0cyBwYXlsb2FkIGFzIGEgdGV4dCBpbgotICAgICAgICB1bmljb2RlIG9y
IGEgYmluYXJ5IGluIHN0ci4KLQotICAgICAgICBSZXR1cm5zOgotICAgICAgICAgICAgcGF5bG9h
ZCBkYXRhIG9mIHRoZSBmcmFtZQotICAgICAgICAgICAgLSBhcyB1bmljb2RlIGluc3RhbmNlIGlm
IHJlY2VpdmVkIHRleHQgZnJhbWUKLSAgICAgICAgICAgIC0gYXMgc3RyIGluc3RhbmNlIGlmIHJl
Y2VpdmVkIGJpbmFyeSBmcmFtZQotICAgICAgICAgICAgb3IgTm9uZSBpZmYgcmVjZWl2ZWQgY2xv
c2luZyBoYW5kc2hha2UuCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgb24gYSBjbGllbnQtdGVybWluYXRlZAotICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24uCi0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2Vw
dGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkKLSAgICAgICAgICAgICAgICBzdHJpbmcuCi0g
ICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIGZyYW1lIGNvbnRhaW5z
IGludmFsaWQKLSAgICAgICAgICAgICAgICBkYXRhLgotICAgICAgICAgICAgVW5zdXBwb3J0ZWRG
cmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUgcmVjZWl2ZWQgZnJhbWUgaGFzCi0gICAgICAgICAgICAg
ICAgZmxhZ3MsIG9wY29kZSB3ZSBjYW5ub3QgaGFuZGxlLiBZb3UgY2FuIGlnbm9yZSB0aGlzCi0g
ICAgICAgICAgICAgICAgZXhjZXB0aW9uIGFuZCBjb250aW51ZSByZWNlaXZpbmcgdGhlIG5leHQg
ZnJhbWUuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rl
cm1pbmF0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ1JlcXVlc3RlZCByZWNlaXZlX21lc3NhZ2UgYWZ0ZXIgcmVjZWl2aW5nIGEg
Y2xvc2luZyAnCi0gICAgICAgICAgICAgICAgJ2hhbmRzaGFrZScpCi0KLSAgICAgICAgd2hpbGUg
VHJ1ZToKLSAgICAgICAgICAgICMgbXBfY29ubi5yZWFkIHdpbGwgYmxvY2sgaWYgbm8gYnl0ZXMg
YXJlIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICMgVGltZW91dCBpcyBjb250cm9sbGVkIGJ5IFRp
bWVPdXQgZGlyZWN0aXZlIG9mIEFwYWNoZS4KLQotICAgICAgICAgICAgZnJhbWUgPSBzZWxmLl9y
ZWNlaXZlX2ZyYW1lX2FzX2ZyYW1lX29iamVjdCgpCi0KLSAgICAgICAgICAgICMgQ2hlY2sgdGhl
IGNvbnN0cmFpbnQgb24gdGhlIHBheWxvYWQgc2l6ZSBmb3IgY29udHJvbCBmcmFtZXMKLSAgICAg
ICAgICAgICMgYmVmb3JlIGV4dGVuc2lvbiBwcm9jZXNzZXMgdGhlIGZyYW1lLgotICAgICAgICAg
ICAgIyBTZWUgYWxzbyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU1I3NlY3Rpb24t
NS41Ci0gICAgICAgICAgICBpZiAoY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29k
ZSkgYW5kCi0gICAgICAgICAgICAgICAgbGVuKGZyYW1lLnBheWxvYWQpID4gMTI1KToKLSAgICAg
ICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
ICAgICdQYXlsb2FkIGRhdGEgc2l6ZSBvZiBjb250cm9sIGZyYW1lcyBtdXN0IGJlIDEyNSBieXRl
cyBvciAnCi0gICAgICAgICAgICAgICAgICAgICdsZXNzJykKLQotICAgICAgICAgICAgZm9yIGZy
YW1lX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmluY29taW5nX2ZyYW1lX2ZpbHRlcnM6Ci0gICAg
ICAgICAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFtZSkKLQotICAgICAgICAgICAgaWYg
ZnJhbWUucnN2MSBvciBmcmFtZS5yc3YyIG9yIGZyYW1lLnJzdjM6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ1Vu
c3VwcG9ydGVkIGZsYWcgaXMgc2V0IChyc3YgPSAlZCVkJWQpJyAlCi0gICAgICAgICAgICAgICAg
ICAgIChmcmFtZS5yc3YxLCBmcmFtZS5yc3YyLCBmcmFtZS5yc3YzKSkKLQotICAgICAgICAgICAg
bWVzc2FnZSA9IHNlbGYuX2dldF9tZXNzYWdlX2Zyb21fZnJhbWUoZnJhbWUpCi0gICAgICAgICAg
ICBpZiBtZXNzYWdlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAg
ICAgICAgZm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMuaW5jb21pbmdfbWVzc2Fn
ZV9maWx0ZXJzOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlX2ZpbHRlci5maWx0
ZXIobWVzc2FnZSkKLQotICAgICAgICAgICAgaWYgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID09IGNv
bW1vbi5PUENPREVfVEVYVDoKLSAgICAgICAgICAgICAgICAjIFRoZSBXZWJTb2NrZXQgcHJvdG9j
b2wgc2VjdGlvbiA0LjQgc3BlY2lmaWVzIHRoYXQgaW52YWxpZAotICAgICAgICAgICAgICAgICMg
Y2hhcmFjdGVycyBtdXN0IGJlIHJlcGxhY2VkIHdpdGggVStmZmZkIFJFUExBQ0VNRU5UCi0gICAg
ICAgICAgICAgICAgIyBDSEFSQUNURVIuCi0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbWVzc2FnZS5kZWNvZGUoJ3V0Zi04JykKLSAgICAgICAgICAgICAg
ICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgICAgIHJh
aXNlIEludmFsaWRVVEY4RXhjZXB0aW9uKGUpCi0gICAgICAgICAgICBlbGlmIHNlbGYuX29yaWdp
bmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RFX0JJTkFSWToKLSAgICAgICAgICAgICAgICByZXR1
cm4gbWVzc2FnZQotICAgICAgICAgICAgZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0gY29t
bW9uLk9QQ09ERV9DTE9TRToKLSAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2Nsb3NlX21l
c3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAg
ZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9QSU5HOgotICAgICAg
ICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfcGluZ19tZXNzYWdlKG1lc3NhZ2UpCi0gICAgICAgICAg
ICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RFX1BPTkc6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19wb25nX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAgICAgJ09wY29kZSAlZCBpcyBub3Qgc3VwcG9ydGVkJyAlIHNl
bGYuX29yaWdpbmFsX29wY29kZSkKLQotICAgIGRlZiBfc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShz
ZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAgICBib2R5ID0gY3JlYXRlX2Nsb3NpbmdfaGFuZHNo
YWtlX2JvZHkoY29kZSwgcmVhc29uKQotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9jbG9zZV9mcmFt
ZSgKLSAgICAgICAgICAgIGJvZHksIG1hc2s9c2VsZi5fb3B0aW9ucy5tYXNrX3NlbmQsCi0gICAg
ICAgICAgICBmcmFtZV9maWx0ZXJzPXNlbGYuX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVy
cykKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQotCi0g
ICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQotCi0gICAgZGVmIGNsb3NlX2Nvbm5lY3Rpb24oc2Vs
ZiwgY29kZT1jb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249JycsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgd2FpdF9yZXNwb25zZT1UcnVlKToKLSAgICAgICAgIiIiQ2xvc2Vz
IGEgV2ViU29ja2V0IGNvbm5lY3Rpb24uIE5vdGUgdGhhdCB0aGlzIG1ldGhvZCBibG9ja3MgdW50
aWwKLSAgICAgICAgaXQgcmVjZWl2ZXMgYWNrbm93bGVkZ2VtZW50IHRvIHRoZSBjbG9zaW5nIGhh
bmRzaGFrZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY29kZTogU3RhdHVzIGNvZGUg
Zm9yIGNsb3NlIGZyYW1lLiBJZiBjb2RlIGlzIE5vbmUsIGEgY2xvc2UKLSAgICAgICAgICAgICAg
ICBmcmFtZSB3aXRoIGVtcHR5IGJvZHkgd2lsbCBiZSBzZW50LgotICAgICAgICAgICAgcmVhc29u
OiBzdHJpbmcgcmVwcmVzZW50aW5nIGNsb3NlIHJlYXNvbi4KLSAgICAgICAgICAgIHdhaXRfcmVz
cG9uc2U6IFRydWUgd2hlbiBjYWxsZXIgd2FudCB0byB3YWl0IHRoZSByZXNwb25zZS4KLSAgICAg
ICAgUmFpc2VzOgotICAgICAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIHJlYXNv
biBpcyBzcGVjaWZpZWQgd2l0aCBjb2RlIE5vbmUKLSAgICAgICAgICAgIG9yIHJlYXNvbiBpcyBu
b3QgYW4gaW5zdGFuY2Ugb2YgYm90aCBzdHIgYW5kIHVuaWNvZGUuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBjbG9zZV9jb25u
ZWN0aW9uIGJ1dCBzZXJ2ZXIgaXMgYWxyZWFkeSB0ZXJtaW5hdGVkJykKLSAgICAgICAgICAgIHJl
dHVybgotCi0gICAgICAgICMgV2hlbiB3ZSByZWNlaXZlIGEgY2xvc2UgZnJhbWUsIHdlIGNhbGwg
X3Byb2Nlc3NfY2xvc2VfbWVzc2FnZSgpLgotICAgICAgICAjIF9wcm9jZXNzX2Nsb3NlX21lc3Nh
Z2UoKSBpbW1lZGlhdGVseSBhY2tub3dsZWRnZXMgdG8gdGhlCi0gICAgICAgICMgc2VydmVyLWlu
aXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZSBhbmQgc2V0cyBzZXJ2ZXJfdGVybWluYXRlZCB0bwot
ICAgICAgICAjIFRydWUuIFNvLCBoZXJlIHdlIGNhbiBhc3N1bWUgdGhhdCB3ZSBoYXZlbid0IHJl
Y2VpdmVkIGFueSBjbG9zZQotICAgICAgICAjIGZyYW1lLiBXZSdyZSBpbml0aWF0aW5nIGEgY2xv
c2luZyBoYW5kc2hha2UuCi0KLSAgICAgICAgaWYgY29kZSBpcyBOb25lOgotICAgICAgICAgICAg
aWYgcmVhc29uIGlzIG5vdCBOb25lIGFuZCBsZW4ocmVhc29uKSA+IDA6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnY2xv
c2UgcmVhc29uIG11c3Qgbm90IGJlIHNwZWNpZmllZCBpZiBjb2RlIGlzIE5vbmUnKQotICAgICAg
ICAgICAgcmVhc29uID0gJycKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKHJlYXNvbiwgc3RyKSBhbmQgbm90IGlzaW5zdGFuY2UocmVhc29uLCB1bmljb2RlKToK
LSAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgICAgICdjbG9zZSByZWFzb24gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBzdHIgb3IgdW5p
Y29kZScpCi0KLSAgICAgICAgc2VsZi5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShjb2RlLCByZWFz
b24pCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdJbml0aWF0ZWQg
Y2xvc2luZyBoYW5kc2hha2UgKGNvZGU9JXIsIHJlYXNvbj0lciknLAotICAgICAgICAgICAgY29k
ZSwgcmVhc29uKQotCi0gICAgICAgIGlmIChjb2RlID09IGNvbW1vbi5TVEFUVVNfR09JTkdfQVdB
WSBvcgotICAgICAgICAgICAgY29kZSA9PSBjb21tb24uU1RBVFVTX1BST1RPQ09MX0VSUk9SKSBv
ciBub3Qgd2FpdF9yZXNwb25zZToKLSAgICAgICAgICAgICMgSXQgZG9lc24ndCBtYWtlIHNlbnNl
IHRvIHdhaXQgZm9yIGEgY2xvc2UgZnJhbWUgaWYgdGhlIHJlYXNvbiBpcwotICAgICAgICAgICAg
IyBwcm90b2NvbCBlcnJvciBvciB0aGF0IHRoZSBzZXJ2ZXIgaXMgZ29pbmcgYXdheS4gRm9yIHNv
bWUgb2YKLSAgICAgICAgICAgICMgb3RoZXIgcmVhc29ucywgaXQgbWlnaHQgbm90IG1ha2Ugc2Vu
c2UgdG8gd2FpdCBmb3IgYSBjbG9zZSBmcmFtZSwKLSAgICAgICAgICAgICMgYnV0IGl0J3Mgbm90
IGNsZWFyLCB5ZXQuCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAjIFRPRE8odWthaSk6
IDIuIHdhaXQgdW50aWwgdGhlIC9jbGllbnQgdGVybWluYXRlZC8gZmxhZyBoYXMgYmVlbiBzZXQs
Ci0gICAgICAgICMgb3IgdW50aWwgYSBzZXJ2ZXItZGVmaW5lZCB0aW1lb3V0IGV4cGlyZXMuCi0g
ICAgICAgICMKLSAgICAgICAgIyBGb3Igbm93LCB3ZSBleHBlY3QgcmVjZWl2aW5nIGNsb3Npbmcg
aGFuZHNoYWtlIHJpZ2h0IGFmdGVyIHNlbmRpbmcKLSAgICAgICAgIyBvdXQgY2xvc2luZyBoYW5k
c2hha2UuCi0gICAgICAgIG1lc3NhZ2UgPSBzZWxmLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAg
IGlmIG1lc3NhZ2UgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVy
bWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRGlkblwndCByZWNlaXZlIHZhbGlk
IGFjayBmb3IgY2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICAjIFRPRE86IDMuIGNsb3NlIHRo
ZSBXZWJTb2NrZXQgY29ubmVjdGlvbi4KLSAgICAgICAgIyBub3RlOiBtb2RfcHl0aG9uIENvbm5l
Y3Rpb24gKG1wX2Nvbm4pIGRvZXNuJ3QgaGF2ZSBjbG9zZSBtZXRob2QuCi0KLSAgICBkZWYgc2Vu
ZF9waW5nKHNlbGYsIGJvZHk9JycpOgotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9waW5nX2ZyYW1l
KAotICAgICAgICAgICAgYm9keSwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMubWFza19zZW5k
LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzKQotICAg
ICAgICBzZWxmLl93cml0ZShmcmFtZSkKLQotICAgICAgICBzZWxmLl9waW5nX3F1ZXVlLmFwcGVu
ZChib2R5KQotCi0gICAgZGVmIF9zZW5kX3Bvbmcoc2VsZiwgYm9keSk6Ci0gICAgICAgIGZyYW1l
ID0gY3JlYXRlX3BvbmdfZnJhbWUoCi0gICAgICAgICAgICBib2R5LAotICAgICAgICAgICAgc2Vs
Zi5fb3B0aW9ucy5tYXNrX3NlbmQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLm91dGdvaW5n
X2ZyYW1lX2ZpbHRlcnMpCi0gICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQotCi0gICAgZGVmIGdl
dF9sYXN0X3JlY2VpdmVkX29wY29kZShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJucyB0aGUgb3Bj
b2RlIG9mIHRoZSBXZWJTb2NrZXQgbWVzc2FnZSB3aGljaCB0aGUgbGFzdCByZWNlaXZlZAotICAg
ICAgICBmcmFtZSBiZWxvbmdzIHRvLiBUaGUgcmV0dXJuIHZhbHVlIGlzIHZhbGlkIGlmZiBpbW1l
ZGlhdGVseSBhZnRlcgotICAgICAgICByZWNlaXZlX21lc3NhZ2UgY2FsbC4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgcmV0dXJuIHNlbGYuX29yaWdpbmFsX29wY29kZQotCi0KLSMgdmk6c3RzPTQg
c3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvY29tbW9uLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvY29tbW9uLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5ZjczZDY2NTYwZDY0NDE1NWVlMGY1ZjJhNTUwOTg4OTg3MTMwZDliLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2Nv
bW1vbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDMwNiArMCwwIEBACi0jIENvcHlyaWdodCAyMDEy
LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotCi0iIiJUaGlzIGZpbGUgbXVzdCBub3QgZGVwZW5kIG9uIGFueSBtb2R1bGUgc3BlY2lmaWMg
dG8gdGhlIFdlYlNvY2tldCBwcm90b2NvbC4KLSIiIgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBodHRwX2hlYWRlcl91dGlsCi0KLQotIyBBZGRpdGlvbmFsIGxvZyBsZXZlbCBkZWZp
bml0aW9ucy4KLUxPR0xFVkVMX0ZJTkUgPSA5Ci0KLSMgQ29uc3RhbnRzIGluZGljYXRpbmcgV2Vi
U29ja2V0IHByb3RvY29sIHZlcnNpb24uCi1WRVJTSU9OX0hJWElFNzUgPSAtMQotVkVSU0lPTl9I
WUJJMDAgPSAwCi1WRVJTSU9OX0hZQkkwMSA9IDEKLVZFUlNJT05fSFlCSTAyID0gMgotVkVSU0lP
Tl9IWUJJMDMgPSAyCi1WRVJTSU9OX0hZQkkwNCA9IDQKLVZFUlNJT05fSFlCSTA1ID0gNQotVkVS
U0lPTl9IWUJJMDYgPSA2Ci1WRVJTSU9OX0hZQkkwNyA9IDcKLVZFUlNJT05fSFlCSTA4ID0gOAot
VkVSU0lPTl9IWUJJMDkgPSA4Ci1WRVJTSU9OX0hZQkkxMCA9IDgKLVZFUlNJT05fSFlCSTExID0g
OAotVkVSU0lPTl9IWUJJMTIgPSA4Ci1WRVJTSU9OX0hZQkkxMyA9IDEzCi1WRVJTSU9OX0hZQkkx
NCA9IDEzCi1WRVJTSU9OX0hZQkkxNSA9IDEzCi1WRVJTSU9OX0hZQkkxNiA9IDEzCi1WRVJTSU9O
X0hZQkkxNyA9IDEzCi0KLSMgQ29uc3RhbnRzIGluZGljYXRpbmcgV2ViU29ja2V0IHByb3RvY29s
IGxhdGVzdCB2ZXJzaW9uLgotVkVSU0lPTl9IWUJJX0xBVEVTVCA9IFZFUlNJT05fSFlCSTEzCi0K
LSMgUG9ydCBudW1iZXJzCi1ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCA9IDgwCi1ERUZBVUxUX1dF
Ql9TT0NLRVRfU0VDVVJFX1BPUlQgPSA0NDMKLQotIyBTY2hlbWVzCi1XRUJfU09DS0VUX1NDSEVN
RSA9ICd3cycKLVdFQl9TT0NLRVRfU0VDVVJFX1NDSEVNRSA9ICd3c3MnCi0KLSMgRnJhbWUgb3Bj
b2RlcyBkZWZpbmVkIGluIHRoZSBzcGVjLgotT1BDT0RFX0NPTlRJTlVBVElPTiA9IDB4MAotT1BD
T0RFX1RFWFQgPSAweDEKLU9QQ09ERV9CSU5BUlkgPSAweDIKLU9QQ09ERV9DTE9TRSA9IDB4OAot
T1BDT0RFX1BJTkcgPSAweDkKLU9QQ09ERV9QT05HID0gMHhhCi0KLSMgVVVJRHMgdXNlZCBieSBI
eUJpIDA0IGFuZCBsYXRlciBvcGVuaW5nIGhhbmRzaGFrZSBhbmQgZnJhbWUgbWFza2luZy4KLVdF
QlNPQ0tFVF9BQ0NFUFRfVVVJRCA9ICcyNThFQUZBNS1FOTE0LTQ3REEtOTVDQS1DNUFCMERDODVC
MTEnCi0KLSMgT3BlbmluZyBoYW5kc2hha2UgaGVhZGVyIG5hbWVzIGFuZCBleHBlY3RlZCB2YWx1
ZXMuCi1VUEdSQURFX0hFQURFUiA9ICdVcGdyYWRlJwotV0VCU09DS0VUX1VQR1JBREVfVFlQRSA9
ICd3ZWJzb2NrZXQnCi1XRUJTT0NLRVRfVVBHUkFERV9UWVBFX0hJWElFNzUgPSAnV2ViU29ja2V0
JwotQ09OTkVDVElPTl9IRUFERVIgPSAnQ29ubmVjdGlvbicKLVVQR1JBREVfQ09OTkVDVElPTl9U
WVBFID0gJ1VwZ3JhZGUnCi1IT1NUX0hFQURFUiA9ICdIb3N0JwotT1JJR0lOX0hFQURFUiA9ICdP
cmlnaW4nCi1TRUNfV0VCU09DS0VUX09SSUdJTl9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1Pcmln
aW4nCi1TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1LZXknCi1TRUNf
V0VCU09DS0VUX0FDQ0VQVF9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1BY2NlcHQnCi1TRUNfV0VC
U09DS0VUX1ZFUlNJT05fSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbicKLVNFQ19XRUJT
T0NLRVRfUFJPVE9DT0xfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnCi1TRUNfV0VC
U09DS0VUX0VYVEVOU0lPTlNfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucycKLVNF
Q19XRUJTT0NLRVRfRFJBRlRfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtRHJhZnQnCi1TRUNfV0VC
U09DS0VUX0tFWTFfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtS2V5MScKLVNFQ19XRUJTT0NLRVRf
S0VZMl9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1LZXkyJwotU0VDX1dFQlNPQ0tFVF9MT0NBVElP
Tl9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbicKLQotIyBFeHRlbnNpb25zCi1ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTiA9ICdkZWZsYXRlLWZyYW1lJwotUEVSTUVTU0FHRV9ERUZMQVRF
X0VYVEVOU0lPTiA9ICdwZXJtZXNzYWdlLWRlZmxhdGUnCi1YX1dFQktJVF9ERUZMQVRFX0ZSQU1F
X0VYVEVOU0lPTiA9ICd4LXdlYmtpdC1kZWZsYXRlLWZyYW1lJwotTVVYX0VYVEVOU0lPTiA9ICdt
dXhfRE9fTk9UX1VTRScKLQotIyBTdGF0dXMgY29kZXMKLSMgQ29kZSBTVEFUVVNfTk9fU1RBVFVT
X1JFQ0VJVkVELCBTVEFUVVNfQUJOT1JNQUxfQ0xPU1VSRSwgYW5kCi0jIFNUQVRVU19UTFNfSEFO
RFNIQUtFIGFyZSBwc2V1ZG8gY29kZXMgdG8gaW5kaWNhdGUgc3BlY2lmaWMgZXJyb3IgY2FzZXMu
Ci0jIENvdWxkIG5vdCBiZSB1c2VkIGZvciBjb2RlcyBpbiBhY3R1YWwgY2xvc2luZyBmcmFtZXMu
Ci0jIEFwcGxpY2F0aW9uIGxldmVsIGVycm9ycyBtdXN0IHVzZSBjb2RlcyBpbiB0aGUgcmFuZ2UK
LSMgU1RBVFVTX1VTRVJfUkVHSVNURVJFRF9CQVNFIHRvIFNUQVRVU19VU0VSX1BSSVZBVEVfTUFY
LiBUaGUgY29kZXMgaW4gdGhlCi0jIHJhbmdlIFNUQVRVU19VU0VSX1JFR0lTVEVSRURfQkFTRSB0
byBTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX01BWCBhcmUgbWFuYWdlZAotIyBieSBJQU5BLiBVc3Vh
bGx5IGFwcGxpY2F0aW9uIG11c3QgZGVmaW5lIHVzZXIgcHJvdG9jb2wgbGV2ZWwgZXJyb3JzIGlu
IHRoZQotIyByYW5nZSBTVEFUVVNfVVNFUl9QUklWQVRFX0JBU0UgdG8gU1RBVFVTX1VTRVJfUFJJ
VkFURV9NQVguCi1TVEFUVVNfTk9STUFMX0NMT1NVUkUgPSAxMDAwCi1TVEFUVVNfR09JTkdfQVdB
WSA9IDEwMDEKLVNUQVRVU19QUk9UT0NPTF9FUlJPUiA9IDEwMDIKLVNUQVRVU19VTlNVUFBPUlRF
RF9EQVRBID0gMTAwMwotU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCA9IDEwMDUKLVNUQVRVU19B
Qk5PUk1BTF9DTE9TVVJFID0gMTAwNgotU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRB
ID0gMTAwNwotU1RBVFVTX1BPTElDWV9WSU9MQVRJT04gPSAxMDA4Ci1TVEFUVVNfTUVTU0FHRV9U
T09fQklHID0gMTAwOQotU1RBVFVTX01BTkRBVE9SWV9FWFRFTlNJT04gPSAxMDEwCi1TVEFUVVNf
SU5URVJOQUxfRU5EUE9JTlRfRVJST1IgPSAxMDExCi1TVEFUVVNfVExTX0hBTkRTSEFLRSA9IDEw
MTUKLVNUQVRVU19VU0VSX1JFR0lTVEVSRURfQkFTRSA9IDMwMDAKLVNUQVRVU19VU0VSX1JFR0lT
VEVSRURfTUFYID0gMzk5OQotU1RBVFVTX1VTRVJfUFJJVkFURV9CQVNFID0gNDAwMAotU1RBVFVT
X1VTRVJfUFJJVkFURV9NQVggPSA0OTk5Ci0jIEZvbGxvd2luZyBkZWZpbml0aW9ucyBhcmUgYWxp
YXNlcyB0byBrZWVwIGNvbXBhdGliaWxpdHkuIEFwcGxpY2F0aW9ucyBtdXN0Ci0jIG5vdCB1c2Ug
dGhlc2Ugb2Jzb2xldGVkIGRlZmluaXRpb25zIGFueW1vcmUuCi1TVEFUVVNfTk9STUFMID0gU1RB
VFVTX05PUk1BTF9DTE9TVVJFCi1TVEFUVVNfVU5TVVBQT1JURUQgPSBTVEFUVVNfVU5TVVBQT1JU
RURfREFUQQotU1RBVFVTX0NPREVfTk9UX0FWQUlMQUJMRSA9IFNUQVRVU19OT19TVEFUVVNfUkVD
RUlWRUQKLVNUQVRVU19BQk5PUk1BTF9DTE9TRSA9IFNUQVRVU19BQk5PUk1BTF9DTE9TVVJFCi1T
VEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlMT0FEID0gU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9B
RF9EQVRBCi1TVEFUVVNfTUFOREFUT1JZX0VYVCA9IFNUQVRVU19NQU5EQVRPUllfRVhURU5TSU9O
Ci0KLSMgSFRUUCBzdGF0dXMgY29kZXMKLUhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUID0gNDAwCi1I
VFRQX1NUQVRVU19GT1JCSURERU4gPSA0MDMKLUhUVFBfU1RBVFVTX05PVF9GT1VORCA9IDQwNAot
Ci0KLWRlZiBpc19jb250cm9sX29wY29kZShvcGNvZGUpOgotICAgIHJldHVybiAob3Bjb2RlID4+
IDMpID09IDEKLQotCi1jbGFzcyBFeHRlbnNpb25QYXJhbWV0ZXIob2JqZWN0KToKLQotICAgICIi
IlRoaXMgaXMgZXhjaGFuZ2VkIG9uIGV4dGVuc2lvbiBuZWdvdGlhdGlvbiBpbiBvcGVuaW5nIGhh
bmRzaGFrZS4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgc2Vs
Zi5fbmFtZSA9IG5hbWUKLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogQ2hhbmdlIHRoZSBkYXRh
IHN0cnVjdHVyZSB0byBtb3JlIGVmZmljaWVudCBvbmUgc3VjaAotICAgICAgICAjIGFzIGRpY3Qg
d2hlbiB0aGUgc3BlYyBjaGFuZ2VzIHRvIHNheSBsaWtlCi0gICAgICAgICMgLSBQYXJhbWV0ZXIg
bmFtZXMgbXVzdCBiZSB1bmlxdWUKLSAgICAgICAgIyAtIFRoZSBvcmRlciBvZiBwYXJhbWV0ZXJz
IGlzIG5vdCBzaWduaWZpY2FudAotICAgICAgICBzZWxmLl9wYXJhbWV0ZXJzID0gW10KLQotICAg
IGRlZiBuYW1lKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIGV4dGVuc2lvbiBuYW1lLiIi
IgotICAgICAgICByZXR1cm4gc2VsZi5fbmFtZQotCi0gICAgZGVmIGFkZF9wYXJhbWV0ZXIoc2Vs
ZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICAiIiJBZGQgYSBwYXJhbWV0ZXIuIiIiCi0gICAgICAg
IHNlbGYuX3BhcmFtZXRlcnMuYXBwZW5kKChuYW1lLCB2YWx1ZSkpCi0KLSAgICBkZWYgZ2V0X3Bh
cmFtZXRlcnMoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgcGFyYW1ldGVycy4iIiIKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX3BhcmFtZXRlcnMKLQotICAgIGRlZiBnZXRfcGFyYW1ldGVyX25h
bWVzKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIG5hbWVzIG9mIHRoZSBwYXJhbWV0ZXJz
LiIiIgotICAgICAgICByZXR1cm4gW25hbWUgZm9yIG5hbWUsIHVudXNlZF92YWx1ZSBpbiBzZWxm
Ll9wYXJhbWV0ZXJzXQotCi0gICAgZGVmIGhhc19wYXJhbWV0ZXIoc2VsZiwgbmFtZSk6Ci0gICAg
ICAgICIiIlRlc3QgaWYgYSBwYXJhbWV0ZXIgZXhpc3RzLiIiIgotICAgICAgICBmb3IgcGFyYW1f
bmFtZSwgcGFyYW1fdmFsdWUgaW4gc2VsZi5fcGFyYW1ldGVyczoKLSAgICAgICAgICAgIGlmIHBh
cmFtX25hbWUgPT0gbmFtZToKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBy
ZXR1cm4gRmFsc2UKLQotICAgIGRlZiBnZXRfcGFyYW1ldGVyX3ZhbHVlKHNlbGYsIG5hbWUpOgot
ICAgICAgICAiIiJHZXQgdGhlIHZhbHVlIG9mIGEgc3BlY2lmaWMgcGFyYW1ldGVyLiIiIgotICAg
ICAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW1fdmFsdWUgaW4gc2VsZi5fcGFyYW1ldGVyczoKLSAg
ICAgICAgICAgIGlmIHBhcmFtX25hbWUgPT0gbmFtZToKLSAgICAgICAgICAgICAgICByZXR1cm4g
cGFyYW1fdmFsdWUKLQotCi1jbGFzcyBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKEV4Y2VwdGlv
bik6Ci0KLSAgICAiIiJFeGNlcHRpb24gdG8gaGFuZGxlIGVycm9ycyBpbiBleHRlbnNpb24gcGFy
c2luZy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgc3VwZXIo
RXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbiwgc2VsZikuX19pbml0X18obmFtZSkKLQotCi1kZWYg
X3BhcnNlX2V4dGVuc2lvbl9wYXJhbShzdGF0ZSwgZGVmaW5pdGlvbik6Ci0gICAgcGFyYW1fbmFt
ZSA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tlbihzdGF0ZSkKLQotICAgIGlmIHBhcmFt
X25hbWUgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbign
Tm8gdmFsaWQgcGFyYW1ldGVyIG5hbWUgZm91bmQnKQotCi0gICAgaHR0cF9oZWFkZXJfdXRpbC5j
b25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3Vt
ZV9zdHJpbmcoc3RhdGUsICc9Jyk6Ci0gICAgICAgIGRlZmluaXRpb24uYWRkX3BhcmFtZXRlcihw
YXJhbV9uYW1lLCBOb25lKQotICAgICAgICByZXR1cm4KLQotICAgIGh0dHBfaGVhZGVyX3V0aWwu
Y29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICMgVE9ETyh0eW9zaGlubyk6IEFkZCBjb2RlIHRv
IHZhbGlkYXRlIHRoYXQgcGFyc2VkIHBhcmFtX3ZhbHVlIGlzIHRva2VuCi0gICAgcGFyYW1fdmFs
dWUgPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW5fb3JfcXVvdGVkX3N0cmluZyhzdGF0
ZSkKLSAgICBpZiBwYXJhbV92YWx1ZSBpcyBOb25lOgotICAgICAgICByYWlzZSBFeHRlbnNpb25Q
YXJzaW5nRXhjZXB0aW9uKAotICAgICAgICAgICAgJ05vIHZhbGlkIHBhcmFtZXRlciB2YWx1ZSBm
b3VuZCBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlIG9mICcKLSAgICAgICAgICAgICdwYXJhbWV0ZXIg
JXInICUgcGFyYW1fbmFtZSkKLQotICAgIGRlZmluaXRpb24uYWRkX3BhcmFtZXRlcihwYXJhbV9u
YW1lLCBwYXJhbV92YWx1ZSkKLQotCi1kZWYgX3BhcnNlX2V4dGVuc2lvbihzdGF0ZSk6Ci0gICAg
ZXh0ZW5zaW9uX3Rva2VuID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuKHN0YXRlKQot
ICAgIGlmIGV4dGVuc2lvbl90b2tlbiBpcyBOb25lOgotICAgICAgICByZXR1cm4gTm9uZQotCi0g
ICAgZXh0ZW5zaW9uID0gRXh0ZW5zaW9uUGFyYW1ldGVyKGV4dGVuc2lvbl90b2tlbikKLQotICAg
IHdoaWxlIFRydWU6Ci0gICAgICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0
ZSkKLQotICAgICAgICBpZiBub3QgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3N0cmluZyhzdGF0
ZSwgJzsnKToKLSAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5j
b25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIF9wYXJzZV9l
eHRlbnNpb25fcGFyYW0oc3RhdGUsIGV4dGVuc2lvbikKLSAgICAgICAgZXhjZXB0IEV4dGVuc2lv
blBhcnNpbmdFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNp
bmdFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBwYXJzZSBwYXJhbWV0ZXIg
Zm9yICVyICglciknICUKLSAgICAgICAgICAgICAgICAoZXh0ZW5zaW9uX3Rva2VuLCBlKSkKLQot
ICAgIHJldHVybiBleHRlbnNpb24KLQotCi1kZWYgcGFyc2VfZXh0ZW5zaW9ucyhkYXRhKToKLSAg
ICAiIiJQYXJzZSBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIHZhbHVlLgotCi0gICAg
UmV0dXJucyBhIGxpc3Qgb2YgRXh0ZW5zaW9uUGFyYW1ldGVyIG9iamVjdHMuCi0gICAgTGVhZGlu
ZyBMV1NlcyBtdXN0IGJlIHRyaW1tZWQuCi0gICAgIiIiCi0gICAgc3RhdGUgPSBodHRwX2hlYWRl
cl91dGlsLlBhcnNpbmdTdGF0ZShkYXRhKQotCi0gICAgZXh0ZW5zaW9uX2xpc3QgPSBbXQotICAg
IHdoaWxlIFRydWU6Ci0gICAgICAgIGV4dGVuc2lvbiA9IF9wYXJzZV9leHRlbnNpb24oc3RhdGUp
Ci0gICAgICAgIGlmIGV4dGVuc2lvbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGV4dGVuc2lv
bl9saXN0LmFwcGVuZChleHRlbnNpb24pCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25z
dW1lX2x3c2VzKHN0YXRlKQotCi0gICAgICAgIGlmIGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0
ZSkgaXMgTm9uZToKLSAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgbm90IGh0dHBfaGVh
ZGVyX3V0aWwuY29uc3VtZV9zdHJpbmcoc3RhdGUsICcsJyk6Ci0gICAgICAgICAgICByYWlzZSBF
eHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gcGFy
c2UgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlcjogJwotICAgICAgICAgICAgICAgICdF
eHBlY3RlZCBhIGNvbW1hIGJ1dCBmb3VuZCAlcicgJQotICAgICAgICAgICAgICAgIGh0dHBfaGVh
ZGVyX3V0aWwucGVlayhzdGF0ZSkpCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1l
X2x3c2VzKHN0YXRlKQotCi0gICAgaWYgbGVuKGV4dGVuc2lvbl9saXN0KSA9PSAwOgotICAgICAg
ICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKAotICAgICAgICAgICAgJ05vIHZhbGlk
IGV4dGVuc2lvbiBlbnRyeSBmb3VuZCcpCi0KLSAgICByZXR1cm4gZXh0ZW5zaW9uX2xpc3QKLQot
Ci1kZWYgZm9ybWF0X2V4dGVuc2lvbihleHRlbnNpb24pOgotICAgICIiIkZvcm1hdCBhbiBFeHRl
bnNpb25QYXJhbWV0ZXIgb2JqZWN0LiIiIgotICAgIGZvcm1hdHRlZF9wYXJhbXMgPSBbZXh0ZW5z
aW9uLm5hbWUoKV0KLSAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW1fdmFsdWUgaW4gZXh0ZW5zaW9u
LmdldF9wYXJhbWV0ZXJzKCk6Ci0gICAgICAgIGlmIHBhcmFtX3ZhbHVlIGlzIE5vbmU6Ci0gICAg
ICAgICAgICBmb3JtYXR0ZWRfcGFyYW1zLmFwcGVuZChwYXJhbV9uYW1lKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgcXVvdGVkX3ZhbHVlID0gaHR0cF9oZWFkZXJfdXRpbC5xdW90ZV9pZl9u
ZWNlc3NhcnkocGFyYW1fdmFsdWUpCi0gICAgICAgICAgICBmb3JtYXR0ZWRfcGFyYW1zLmFwcGVu
ZCgnJXM9JXMnICUgKHBhcmFtX25hbWUsIHF1b3RlZF92YWx1ZSkpCi0gICAgcmV0dXJuICc7ICcu
am9pbihmb3JtYXR0ZWRfcGFyYW1zKQotCi0KLWRlZiBmb3JtYXRfZXh0ZW5zaW9ucyhleHRlbnNp
b25fbGlzdCk6Ci0gICAgIiIiRm9ybWF0IGEgbGlzdCBvZiBFeHRlbnNpb25QYXJhbWV0ZXIgb2Jq
ZWN0cy4iIiIKLSAgICBmb3JtYXR0ZWRfZXh0ZW5zaW9uX2xpc3QgPSBbXQotICAgIGZvciBleHRl
bnNpb24gaW4gZXh0ZW5zaW9uX2xpc3Q6Ci0gICAgICAgIGZvcm1hdHRlZF9leHRlbnNpb25fbGlz
dC5hcHBlbmQoZm9ybWF0X2V4dGVuc2lvbihleHRlbnNpb24pKQotICAgIHJldHVybiAnLCAnLmpv
aW4oZm9ybWF0dGVkX2V4dGVuc2lvbl9saXN0KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZGlzcGF0Y2gucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC9kaXNwYXRjaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU5MWZl
OGI5ZTllYWYyZThlYjRkNmQ4YmNmY2JhNzJlMDMwYmI0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDM5MyArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJEaXNwYXRjaCBXZWJTb2NrZXQgcmVxdWVzdC4KLSIiIgotCi0KLWltcG9ydCBsb2dnaW5nCi1p
bXBvcnQgb3MKLWltcG9ydCByZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9u
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgbXNndXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG11eAotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IHV0aWwKLQotCi1fU09VUkNFX1BBVEhfUEFUVEVSTiA9IHJlLmNvbXBpbGUocicoP2kpX3dz
aFwucHkkJykKLV9TT1VSQ0VfU1VGRklYID0gJ193c2gucHknCi1fRE9fRVhUUkFfSEFORFNIQUtF
X0hBTkRMRVJfTkFNRSA9ICd3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZScKLV9UUkFOU0ZF
Ul9EQVRBX0hBTkRMRVJfTkFNRSA9ICd3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEnCi1fUEFTU0lW
RV9DTE9TSU5HX0hBTkRTSEFLRV9IQU5ETEVSX05BTUUgPSAoCi0gICAgJ3dlYl9zb2NrZXRfcGFz
c2l2ZV9jbG9zaW5nX2hhbmRzaGFrZScpCi0KLQotY2xhc3MgRGlzcGF0Y2hFeGNlcHRpb24oRXhj
ZXB0aW9uKToKLSAgICAiIiJFeGNlcHRpb24gaW4gZGlzcGF0Y2hpbmcgV2ViU29ja2V0IHJlcXVl
c3QuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc3RhdHVzPWNvbW1vbi5IVFRQ
X1NUQVRVU19OT1RfRk9VTkQpOgotICAgICAgICBzdXBlcihEaXNwYXRjaEV4Y2VwdGlvbiwgc2Vs
ZikuX19pbml0X18obmFtZSkKLSAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKLQotCi1kZWYg
X2RlZmF1bHRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyKHJlcXVlc3QpOgotICAg
ICIiIkRlZmF1bHQgd2ViX3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlIGhhbmRsZXIu
IiIiCi0KLSAgICByZXR1cm4gY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgJycKLQotCi1k
ZWYgX25vcm1hbGl6ZV9wYXRoKHBhdGgpOgotICAgICIiIk5vcm1hbGl6ZSBwYXRoLgotCi0gICAg
QXJnczoKLSAgICAgICAgcGF0aDogdGhlIHBhdGggdG8gbm9ybWFsaXplLgotCi0gICAgUGF0aCBp
cyBjb252ZXJ0ZWQgdG8gdGhlIGFic29sdXRlIHBhdGguCi0gICAgVGhlIGlucHV0IHBhdGggY2Fu
IHVzZSBlaXRoZXIgJ1xcJyBvciAnLycgYXMgdGhlIHNlcGFyYXRvci4KLSAgICBUaGUgbm9ybWFs
aXplZCBwYXRoIGFsd2F5cyB1c2VzICcvJyByZWdhcmRsZXNzIG9mIHRoZSBwbGF0Zm9ybS4KLSAg
ICAiIiIKLQotICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoJ1xcJywgb3MucGF0aC5zZXApCi0gICAg
cGF0aCA9IG9zLnBhdGgucmVhbHBhdGgocGF0aCkKLSAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCdc
XCcsICcvJykKLSAgICByZXR1cm4gcGF0aAotCi0KLWRlZiBfY3JlYXRlX3BhdGhfdG9fcmVzb3Vy
Y2VfY29udmVydGVyKGJhc2VfZGlyKToKLSAgICAiIiJSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBj
b252ZXJ0cyB0aGUgcGF0aCBvZiBhIFdlYlNvY2tldCBoYW5kbGVyIHNvdXJjZQotICAgIGZpbGUg
dG8gYSByZXNvdXJjZSBzdHJpbmcgYnkgcmVtb3ZpbmcgdGhlIHBhdGggdG8gdGhlIGJhc2UgZGly
ZWN0b3J5IGZyb20KLSAgICBpdHMgaGVhZCwgcmVtb3ZpbmcgX1NPVVJDRV9TVUZGSVggZnJvbSBp
dHMgdGFpbCwgYW5kIHJlcGxhY2luZyBwYXRoCi0gICAgc2VwYXJhdG9ycyBpbiBpdCB3aXRoICcv
Jy4KLQotICAgIEFyZ3M6Ci0gICAgICAgIGJhc2VfZGlyOiB0aGUgcGF0aCB0byB0aGUgYmFzZSBk
aXJlY3RvcnkuCi0gICAgIiIiCi0KLSAgICBiYXNlX2RpciA9IF9ub3JtYWxpemVfcGF0aChiYXNl
X2RpcikKLQotICAgIGJhc2VfbGVuID0gbGVuKGJhc2VfZGlyKQotICAgIHN1ZmZpeF9sZW4gPSBs
ZW4oX1NPVVJDRV9TVUZGSVgpCi0KLSAgICBkZWYgY29udmVydGVyKHBhdGgpOgotICAgICAgICBp
ZiBub3QgcGF0aC5lbmRzd2l0aChfU09VUkNFX1NVRkZJWCk6Ci0gICAgICAgICAgICByZXR1cm4g
Tm9uZQotICAgICAgICAjIF9ub3JtYWxpemVfcGF0aCBtdXN0IG5vdCBiZSB1c2VkIGJlY2F1c2Ug
cmVzb2x2aW5nIHN5bWxpbmsgYnJlYWtzCi0gICAgICAgICMgZm9sbG93aW5nIHBhdGggY2hlY2su
Ci0gICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoJ1xcJywgJy8nKQotICAgICAgICBpZiBub3Qg
cGF0aC5zdGFydHN3aXRoKGJhc2VfZGlyKToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAg
ICAgIHJldHVybiBwYXRoW2Jhc2VfbGVuOi1zdWZmaXhfbGVuXQotCi0gICAgcmV0dXJuIGNvbnZl
cnRlcgotCi0KLWRlZiBfZW51bWVyYXRlX2hhbmRsZXJfZmlsZV9wYXRocyhkaXJlY3RvcnkpOgot
ICAgICIiIlJldHVybnMgYSBnZW5lcmF0b3IgdGhhdCBlbnVtZXJhdGVzIFdlYlNvY2tldCBIYW5k
bGVyIHNvdXJjZSBmaWxlIG5hbWVzCi0gICAgaW4gdGhlIGdpdmVuIGRpcmVjdG9yeS4KLSAgICAi
IiIKLQotICAgIGZvciByb290LCB1bnVzZWRfZGlycywgZmlsZXMgaW4gb3Mud2FsayhkaXJlY3Rv
cnkpOgotICAgICAgICBmb3IgYmFzZSBpbiBmaWxlczoKLSAgICAgICAgICAgIHBhdGggPSBvcy5w
YXRoLmpvaW4ocm9vdCwgYmFzZSkKLSAgICAgICAgICAgIGlmIF9TT1VSQ0VfUEFUSF9QQVRURVJO
LnNlYXJjaChwYXRoKToKLSAgICAgICAgICAgICAgICB5aWVsZCBwYXRoCi0KLQotY2xhc3MgX0hh
bmRsZXJTdWl0ZShvYmplY3QpOgotICAgICIiIkEgaGFuZGxlciBzdWl0ZSBob2xkZXIgY2xhc3Mu
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZG9fZXh0cmFfaGFuZHNoYWtlLCB0cmFuc2Zl
cl9kYXRhLAotICAgICAgICAgICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlKToKLSAg
ICAgICAgc2VsZi5kb19leHRyYV9oYW5kc2hha2UgPSBkb19leHRyYV9oYW5kc2hha2UKLSAgICAg
ICAgc2VsZi50cmFuc2Zlcl9kYXRhID0gdHJhbnNmZXJfZGF0YQotICAgICAgICBzZWxmLnBhc3Np
dmVfY2xvc2luZ19oYW5kc2hha2UgPSBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlCi0KLQotZGVm
IF9zb3VyY2VfaGFuZGxlcl9maWxlKGhhbmRsZXJfZGVmaW5pdGlvbik6Ci0gICAgIiIiU291cmNl
IGEgaGFuZGxlciBkZWZpbml0aW9uIHN0cmluZy4KLQotICAgIEFyZ3M6Ci0gICAgICAgIGhhbmRs
ZXJfZGVmaW5pdGlvbjogYSBzdHJpbmcgY29udGFpbmluZyBQeXRob24gc3RhdGVtZW50cyB0aGF0
IGRlZmluZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIgZnVuY3Rpb25zLgot
ICAgICIiIgotCi0gICAgZ2xvYmFsX2RpYyA9IHt9Ci0gICAgdHJ5OgotICAgICAgICBleGVjKGhh
bmRsZXJfZGVmaW5pdGlvbiwgZ2xvYmFsX2RpYykKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAg
ICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignRXJyb3IgaW4gc291cmNpbmcgaGFuZGxlcjon
ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbC5nZXRfc3RhY2tfdHJhY2Uo
KSkKLSAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIgPSBOb25lCi0gICAgdHJ5
OgotICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIgPSBfZXh0cmFjdF9o
YW5kbGVyKAotICAgICAgICAgICAgZ2xvYmFsX2RpYywgX1BBU1NJVkVfQ0xPU0lOR19IQU5EU0hB
S0VfSEFORExFUl9OQU1FKQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIHBhc3NpdmVf
Y2xvc2luZ19oYW5kc2hha2VfaGFuZGxlciA9ICgKLSAgICAgICAgICAgIF9kZWZhdWx0X3Bhc3Np
dmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcikKLSAgICByZXR1cm4gX0hhbmRsZXJTdWl0ZSgK
LSAgICAgICAgX2V4dHJhY3RfaGFuZGxlcihnbG9iYWxfZGljLCBfRE9fRVhUUkFfSEFORFNIQUtF
X0hBTkRMRVJfTkFNRSksCi0gICAgICAgIF9leHRyYWN0X2hhbmRsZXIoZ2xvYmFsX2RpYywgX1RS
QU5TRkVSX0RBVEFfSEFORExFUl9OQU1FKSwKLSAgICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRz
aGFrZV9oYW5kbGVyKQotCi0KLWRlZiBfZXh0cmFjdF9oYW5kbGVyKGRpYywgbmFtZSk6Ci0gICAg
IiIiRXh0cmFjdHMgYSBjYWxsYWJsZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSBmcm9tIHRoZSBn
aXZlbiBkaWN0aW9uYXJ5Ci0gICAgZGljLgotICAgICIiIgotCi0gICAgaWYgbmFtZSBub3QgaW4g
ZGljOgotICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignJXMgaXMgbm90IGRlZmluZWQu
JyAlIG5hbWUpCi0gICAgaGFuZGxlciA9IGRpY1tuYW1lXQotICAgIGlmIG5vdCBjYWxsYWJsZSho
YW5kbGVyKToKLSAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJyVzIGlzIG5vdCBjYWxs
YWJsZS4nICUgbmFtZSkKLSAgICByZXR1cm4gaGFuZGxlcgotCi0KLWNsYXNzIERpc3BhdGNoZXIo
b2JqZWN0KToKLSAgICAiIiJEaXNwYXRjaGVzIFdlYlNvY2tldCByZXF1ZXN0cy4KLQotICAgIFRo
aXMgY2xhc3MgbWFpbnRhaW5zIGEgbWFwIGZyb20gcmVzb3VyY2UgbmFtZSB0byBoYW5kbGVycy4K
LSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXygKLSAgICAgICAgc2VsZiwgcm9vdF9kaXIsIHNj
YW5fZGlyPU5vbmUsCi0gICAgICAgIGFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXI9VHJ1
ZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgcm9vdF9kaXI6IFRoZSBkaXJlY3Rvcnkgd2hlcmUgaGFuZGxlciBkZWZpbml0
aW9uIGZpbGVzIGFyZQotICAgICAgICAgICAgICAgICAgICAgIHBsYWNlZC4KLSAgICAgICAgICAg
IHNjYW5fZGlyOiBUaGUgZGlyZWN0b3J5IHdoZXJlIGhhbmRsZXIgZGVmaW5pdGlvbiBmaWxlcyBh
cmUKLSAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hlZC4gc2Nhbl9kaXIgbXVzdCBiZSBhIGRp
cmVjdG9yeSB1bmRlciByb290X2RpciwKLSAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcg
cm9vdF9kaXIgaXRzZWxmLiAgSWYgc2Nhbl9kaXIgaXMgTm9uZSwKLSAgICAgICAgICAgICAgICAg
ICAgICByb290X2RpciBpcyB1c2VkIGFzIHNjYW5fZGlyLiBzY2FuX2RpciBjYW4gYmUgdXNlZnVs
Ci0gICAgICAgICAgICAgICAgICAgICAgaW4gc2F2aW5nIHNjYW4gdGltZSB3aGVuIHJvb3RfZGly
IGNvbnRhaW5zIG1hbnkKLSAgICAgICAgICAgICAgICAgICAgICBzdWJkaXJlY3Rvcmllcy4KLSAg
ICAgICAgICAgIGFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXI6IFNjYW5zIGhhbmRsZXIg
ZmlsZXMgZXZlbiBpZiB0aGVpcgotICAgICAgICAgICAgICAgICAgICAgIGNhbm9uaWNhbCBwYXRo
IGlzIG5vdCB1bmRlciByb290X2Rpci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9n
Z2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5faGFuZGxl
cl9zdWl0ZV9tYXAgPSB7fQotICAgICAgICBzZWxmLl9zb3VyY2Vfd2FybmluZ3MgPSBbXQotICAg
ICAgICBpZiBzY2FuX2RpciBpcyBOb25lOgotICAgICAgICAgICAgc2Nhbl9kaXIgPSByb290X2Rp
cgotICAgICAgICBpZiBub3Qgb3MucGF0aC5yZWFscGF0aChzY2FuX2Rpcikuc3RhcnRzd2l0aCgK
LSAgICAgICAgICAgICAgICBvcy5wYXRoLnJlYWxwYXRoKHJvb3RfZGlyKSk6Ci0gICAgICAgICAg
ICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignc2Nhbl9kaXI6JXMgbXVzdCBiZSBhIGRpcmVjdG9y
eSB1bmRlciAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncm9vdF9kaXI6
JXMuJyAlIChzY2FuX2Rpciwgcm9vdF9kaXIpKQotICAgICAgICBzZWxmLl9zb3VyY2VfaGFuZGxl
cl9maWxlc19pbl9kaXIoCi0gICAgICAgICAgICByb290X2Rpciwgc2Nhbl9kaXIsIGFsbG93X2hh
bmRsZXJzX291dHNpZGVfcm9vdF9kaXIpCi0KLSAgICBkZWYgYWRkX3Jlc291cmNlX3BhdGhfYWxp
YXMoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNfcmVzb3VyY2Vf
cGF0aCwgZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCk6Ci0gICAgICAgICIiIkFkZCByZXNvdXJjZSBw
YXRoIGFsaWFzLgotCi0gICAgICAgIE9uY2UgYWRkZWQsIHJlcXVlc3QgdG8gYWxpYXNfcmVzb3Vy
Y2VfcGF0aCB3b3VsZCBiZSBoYW5kbGVkIGJ5Ci0gICAgICAgIGhhbmRsZXIgcmVnaXN0ZXJlZCBm
b3IgZXhpc3RpbmdfcmVzb3VyY2VfcGF0aC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
YWxpYXNfcmVzb3VyY2VfcGF0aDogYWxpYXMgcmVzb3VyY2UgcGF0aAotICAgICAgICAgICAgZXhp
c3RpbmdfcmVzb3VyY2VfcGF0aDogZXhpc3RpbmcgcmVzb3VyY2UgcGF0aAotICAgICAgICAiIiIK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuX2hhbmRsZXJf
c3VpdGVfbWFwW2V4aXN0aW5nX3Jlc291cmNlX3BhdGhdCi0gICAgICAgICAgICBzZWxmLl9oYW5k
bGVyX3N1aXRlX21hcFthbGlhc19yZXNvdXJjZV9wYXRoXSA9IGhhbmRsZXJfc3VpdGUKLSAgICAg
ICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24o
J05vIGhhbmRsZXIgZm9yOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCkKLQotICAgIGRlZiBzb3VyY2Vfd2FybmluZ3Moc2Vs
Zik6Ci0gICAgICAgICIiIlJldHVybiB3YXJuaW5ncyBpbiBzb3VyY2luZyBoYW5kbGVycy4iIiIK
LQotICAgICAgICByZXR1cm4gc2VsZi5fc291cmNlX3dhcm5pbmdzCi0KLSAgICBkZWYgZG9fZXh0
cmFfaGFuZHNoYWtlKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAiIiJEbyBleHRyYSBjaGVja2lu
ZyBpbiBXZWJTb2NrZXQgaGFuZHNoYWtlLgotCi0gICAgICAgIFNlbGVjdCBhIGhhbmRsZXIgYmFz
ZWQgb24gcmVxdWVzdC51cmkgYW5kIGNhbGwgaXRzCi0gICAgICAgIHdlYl9zb2NrZXRfZG9fZXh0
cmFfaGFuZHNoYWtlIGZ1bmN0aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1
ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAg
RGlzcGF0Y2hFeGNlcHRpb246IHdoZW4gaGFuZGxlciB3YXMgbm90IGZvdW5kCi0gICAgICAgICAg
ICBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uOiB3aGVuIHVzZXIgaGFuZGxlciBhYm9ydCBjb25uZWN0
aW9uCi0gICAgICAgICAgICBIYW5kc2hha2VFeGNlcHRpb246IHdoZW4gb3BlbmluZyBoYW5kc2hh
a2UgZmFpbGVkCi0gICAgICAgICIiIgotCi0gICAgICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxmLmdl
dF9oYW5kbGVyX3N1aXRlKHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAgICAgIGlmIGhhbmRsZXJf
c3VpdGUgaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdObyBo
YW5kbGVyIGZvcjogJXInICUgcmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAgZG9fZXh0cmFf
aGFuZHNoYWtlXyA9IGhhbmRsZXJfc3VpdGUuZG9fZXh0cmFfaGFuZHNoYWtlCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIGRvX2V4dHJhX2hhbmRzaGFrZV8ocmVxdWVzdCkKLSAgICAgICAgZXhj
ZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAj
IFJlLXJhaXNlIHRvIHRlbGwgdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uIHRvIGZpbmlzaCB0
aGlzCi0gICAgICAgICAgICAjIGNvbm5lY3Rpb24gd2l0aG91dCBzZW5kaW5nIGFueSBlcnJvci4K
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCB1dGlsLmdldF9zdGFja190cmFj
ZSgpKQotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICAgICAnJXMgcmFpc2VkIGV4Y2VwdGlvbiBmb3IgJXM6ICcgJSAoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgX0RPX0VYVFJBX0hBTkRTSEFLRV9IQU5ETEVSX05BTUUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSksCi0gICAgICAgICAg
ICAgICAgICAgIGUpCi0gICAgICAgICAgICByYWlzZSBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0
aW9uKGUsIGNvbW1vbi5IVFRQX1NUQVRVU19GT1JCSURERU4pCi0KLSAgICBkZWYgdHJhbnNmZXJf
ZGF0YShzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIiIiTGV0IGEgaGFuZGxlciB0cmFuc2Zlcl9k
YXRhIHdpdGggYSBXZWJTb2NrZXQgY2xpZW50LgotCi0gICAgICAgIFNlbGVjdCBhIGhhbmRsZXIg
YmFzZWQgb24gcmVxdWVzdC53c19yZXNvdXJjZSBhbmQgY2FsbCBpdHMKLSAgICAgICAgd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhIGZ1bmN0aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAg
ICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAg
ICAgICAgRGlzcGF0Y2hFeGNlcHRpb246IHdoZW4gaGFuZGxlciB3YXMgbm90IGZvdW5kCi0gICAg
ICAgICAgICBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uOiB3aGVuIHVzZXIgaGFuZGxlciBhYm9ydCBj
b25uZWN0aW9uCi0gICAgICAgICIiIgotCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFRlcm1p
bmF0ZSB1bmRlcmx5aW5nIFRDUCBjb25uZWN0aW9uIGlmIHBvc3NpYmxlLgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBpZiBtdXgudXNlX211eChyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBt
dXguc3RhcnQocmVxdWVzdCwgc2VsZikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0X2hhbmRsZXJfc3VpdGUocmVxdWVzdC53c19yZXNv
dXJjZSkKLSAgICAgICAgICAgICAgICBpZiBoYW5kbGVyX3N1aXRlIGlzIE5vbmU6Ci0gICAgICAg
ICAgICAgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdObyBoYW5kbGVyIGZvcjogJXIn
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53
c19yZXNvdXJjZSkKLSAgICAgICAgICAgICAgICB0cmFuc2Zlcl9kYXRhXyA9IGhhbmRsZXJfc3Vp
dGUudHJhbnNmZXJfZGF0YQotICAgICAgICAgICAgICAgIHRyYW5zZmVyX2RhdGFfKHJlcXVlc3Qp
Ci0KLSAgICAgICAgICAgIGlmIG5vdCByZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAg
ICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotICAgICAgICAj
IENhdGNoIG5vbi1jcml0aWNhbCBleGNlcHRpb25zIHRoZSBoYW5kbGVyIGRpZG4ndCBoYW5kbGUu
Ci0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIHV0aWwuZ2V0X3N0YWNrX3RyYWNl
KCkpCi0gICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQgbXNndXRpbC5CYWRPcGVyYXRp
b25FeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBl
KQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigKLSAgICAg
ICAgICAgICAgICBjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SKQotICAgICAg
ICBleGNlcHQgbXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
ICMgSW52YWxpZEZyYW1lRXhjZXB0aW9uIG11c3QgYmUgY2F1Z2h0IGJlZm9yZQotICAgICAgICAg
ICAgIyBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiB0aGF0IGNhdGNoZXMgSW52YWxpZEZy
YW1lRXhjZXB0aW9uLgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0g
ICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFU
VVNfUFJPVE9DT0xfRVJST1IpCi0gICAgICAgIGV4Y2VwdCBtc2d1dGlsLlVuc3VwcG9ydGVkRnJh
bWVFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBl
KQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbihjb21tb24u
U1RBVFVTX1VOU1VQUE9SVEVEX0RBVEEpCi0gICAgICAgIGV4Y2VwdCBzdHJlYW0uSW52YWxpZFVU
RjhFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBl
KQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigKLSAgICAg
ICAgICAgICAgICBjb21tb24uU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBKQotICAg
ICAgICBleGNlcHQgbXNndXRpbC5Db25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgIGV4Y2VwdCBF
eGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICMgQW55IG90aGVyIGV4Y2VwdGlvbnMgYXJlIGZv
cndhcmRlZCB0byB0aGUgY2FsbGVyIG9mIHRoaXMKLSAgICAgICAgICAgICMgZnVuY3Rpb24uCi0g
ICAgICAgICAgICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJyVzIHJhaXNlZCBleGNlcHRpb24gZm9yICVzOiAnICUgKAotICAgICAgICAgICAgICAg
ICAgICBfVFJBTlNGRVJfREFUQV9IQU5ETEVSX05BTUUsIHJlcXVlc3Qud3NfcmVzb3VyY2UpLAot
ICAgICAgICAgICAgICAgIGUpCi0gICAgICAgICAgICByYWlzZQotCi0gICAgZGVmIHBhc3NpdmVf
Y2xvc2luZ19oYW5kc2hha2Uoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICIiIlByZXBhcmUgY29k
ZSBhbmQgcmVhc29uIGZvciByZXNwb25kaW5nIGNsaWVudCBpbml0aWF0ZWQgY2xvc2luZwotICAg
ICAgICBoYW5kc2hha2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIGhhbmRsZXJfc3VpdGUgPSBz
ZWxmLmdldF9oYW5kbGVyX3N1aXRlKHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAgICAgIGlmIGhh
bmRsZXJfc3VpdGUgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBfZGVmYXVsdF9wYXNzaXZl
X2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIocmVxdWVzdCkKLSAgICAgICAgcmV0dXJuIGhhbmRs
ZXJfc3VpdGUucGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZShyZXF1ZXN0KQotCi0gICAgZGVmIGdl
dF9oYW5kbGVyX3N1aXRlKHNlbGYsIHJlc291cmNlKToKLSAgICAgICAgIiIiUmV0cmlldmVzIHR3
byBoYW5kbGVycyAob25lIGZvciBleHRyYSBoYW5kc2hha2UgcHJvY2Vzc2luZywgYW5kIG9uZQot
ICAgICAgICBmb3IgZGF0YSB0cmFuc2ZlcikgZm9yIHRoZSBnaXZlbiByZXF1ZXN0IGFzIGEgSGFu
ZGxlclN1aXRlIG9iamVjdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZnJhZ21lbnQgPSBOb25l
Ci0gICAgICAgIGlmICcjJyBpbiByZXNvdXJjZToKLSAgICAgICAgICAgIHJlc291cmNlLCBmcmFn
bWVudCA9IHJlc291cmNlLnNwbGl0KCcjJywgMSkKLSAgICAgICAgaWYgJz8nIGluIHJlc291cmNl
OgotICAgICAgICAgICAgcmVzb3VyY2UgPSByZXNvdXJjZS5zcGxpdCgnPycsIDEpWzBdCi0gICAg
ICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxmLl9oYW5kbGVyX3N1aXRlX21hcC5nZXQocmVzb3VyY2Up
Ci0gICAgICAgIGlmIGhhbmRsZXJfc3VpdGUgYW5kIGZyYWdtZW50OgotICAgICAgICAgICAgcmFp
c2UgRGlzcGF0Y2hFeGNlcHRpb24oJ0ZyYWdtZW50IGlkZW50aWZpZXJzIE1VU1QgTk9UIGJlIHVz
ZWQgb24gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dlYlNvY2tldCBV
UklzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5IVFRQX1NU
QVRVU19CQURfUkVRVUVTVCkKLSAgICAgICAgcmV0dXJuIGhhbmRsZXJfc3VpdGUKLQotICAgIGRl
ZiBfc291cmNlX2hhbmRsZXJfZmlsZXNfaW5fZGlyKAotICAgICAgICBzZWxmLCByb290X2Rpciwg
c2Nhbl9kaXIsIGFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIpOgotICAgICAgICAiIiJT
b3VyY2UgYWxsIHRoZSBoYW5kbGVyIHNvdXJjZSBmaWxlcyBpbiB0aGUgc2Nhbl9kaXIgZGlyZWN0
b3J5LgotCi0gICAgICAgIFRoZSByZXNvdXJjZSBwYXRoIGlzIGRldGVybWluZWQgcmVsYXRpdmUg
dG8gcm9vdF9kaXIuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgV2UgYnVpbGQgYSBtYXAgZnJv
bSByZXNvdXJjZSB0byBoYW5kbGVyIGNvZGUgYXNzdW1pbmcgdGhhdCB0aGVyZSdzCi0gICAgICAg
ICMgb25seSBvbmUgcGF0aCBmcm9tIHJvb3RfZGlyIHRvIHNjYW5fZGlyIGFuZCBpdCBjYW4gYmUg
b2J0YWluZWQgYnkKLSAgICAgICAgIyBjb21wYXJpbmcgcmVhbHBhdGggb2YgdGhlbS4KLQotICAg
ICAgICAjIEhlcmUgd2UgY2Fubm90IHVzZSBhYnNwYXRoLiBTZWUKLSAgICAgICAgIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE2MDMKLQotICAgICAgICBjb252ZXJ0
ID0gX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcihyb290X2RpcikKLSAgICAgICAg
c2Nhbl9yZWFscGF0aCA9IG9zLnBhdGgucmVhbHBhdGgoc2Nhbl9kaXIpCi0gICAgICAgIHJvb3Rf
cmVhbHBhdGggPSBvcy5wYXRoLnJlYWxwYXRoKHJvb3RfZGlyKQotICAgICAgICBmb3IgcGF0aCBp
biBfZW51bWVyYXRlX2hhbmRsZXJfZmlsZV9wYXRocyhzY2FuX3JlYWxwYXRoKToKLSAgICAgICAg
ICAgIGlmIChub3QgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpciBhbmQKLSAgICAgICAg
ICAgICAgICAobm90IG9zLnBhdGgucmVhbHBhdGgocGF0aCkuc3RhcnRzd2l0aChyb290X3JlYWxw
YXRoKSkpOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAg
ICAgICAgICAgJ0Nhbm9uaWNhbCBwYXRoIG9mICVzIGlzIG5vdCB1bmRlciByb290IGRpcmVjdG9y
eScgJQotICAgICAgICAgICAgICAgICAgICBwYXRoKQotICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IF9zb3Vy
Y2VfaGFuZGxlcl9maWxlKG9wZW4ocGF0aCkucmVhZCgpKQotICAgICAgICAgICAgZXhjZXB0IERp
c3BhdGNoRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc291cmNlX3dhcm5p
bmdzLmFwcGVuZCgnJXM6ICVzJyAlIChwYXRoLCBlKSkKLSAgICAgICAgICAgICAgICBjb250aW51
ZQotICAgICAgICAgICAgcmVzb3VyY2UgPSBjb252ZXJ0KHBhdGgpCi0gICAgICAgICAgICBpZiBy
ZXNvdXJjZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAg
ICAgICAgICAgICAgICAgICAgJ1BhdGggdG8gcmVzb3VyY2UgY29udmVyc2lvbiBvbiAlcyBmYWls
ZWQnICUgcGF0aCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5faGFu
ZGxlcl9zdWl0ZV9tYXBbY29udmVydChwYXRoKV0gPSBoYW5kbGVyX3N1aXRlCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25z
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZXh0ZW5zaW9ucy5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDFiZTc0OWZmZjU5ODk2NTE3ZmM1MTU3MTc0NmM3ZjFjMmE3ZWIwOS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9leHRlbnNpb25zLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzUwICswLDAgQEAK
LSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldC5o
dHRwX2hlYWRlcl91dGlsIGltcG9ydCBxdW90ZV9pZl9uZWNlc3NhcnkKLQotCi0jIFRoZSBsaXN0
IG9mIGF2YWlsYWJsZSBzZXJ2ZXIgc2lkZSBleHRlbnNpb24gcHJvY2Vzc29yIGNsYXNzZXMuCi1f
YXZhaWxhYmxlX3Byb2Nlc3NvcnMgPSB7fQotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcyA9
IFtdCi0KLQotY2xhc3MgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlKG9iamVjdCk6Ci0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1
ZXN0Ci0gICAgICAgIHNlbGYuX2FjdGl2ZSA9IFRydWUKLQotICAgIGRlZiByZXF1ZXN0KHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdAotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0g
ICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgY2hlY2tfY29uc2lzdGVuY3lfd2l0aF9vdGhl
cl9wcm9jZXNzb3JzKHNlbGYsIHByb2Nlc3NvcnMpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYg
c2V0X2FjdGl2ZShzZWxmLCBhY3RpdmUpOgotICAgICAgICBzZWxmLl9hY3RpdmUgPSBhY3RpdmUK
LQotICAgIGRlZiBpc19hY3RpdmUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9hY3RpdmUK
LQotICAgIGRlZiBfZ2V0X2V4dGVuc2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxmKToKLSAgICAg
ICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBnZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKHNlbGYpOgot
ICAgICAgICBpZiBub3Qgc2VsZi5fYWN0aXZlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdFeHRlbnNpb24gJXMgaXMgZGVhY3RpdmF0ZWQnLCBzZWxmLm5hbWUoKSkKLSAgICAgICAg
ICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLl9nZXRfZXh0ZW5zaW9u
X3Jlc3BvbnNlX2ludGVybmFsKCkKLSAgICAgICAgaWYgcmVzcG9uc2UgaXMgTm9uZToKLSAgICAg
ICAgICAgIHNlbGYuX2FjdGl2ZSA9IEZhbHNlCi0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0g
ICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9u
cyk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBzZXR1cF9zdHJlYW1fb3B0aW9ucyhzZWxmLCBz
dHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIGlmIHNlbGYuX2FjdGl2ZToKLSAgICAgICAgICAgIHNl
bGYuX3NldHVwX3N0cmVhbV9vcHRpb25zX2ludGVybmFsKHN0cmVhbV9vcHRpb25zKQotCi0KLWRl
ZiBfbG9nX291dGdvaW5nX2NvbXByZXNzaW9uX3JhdGlvKAotICAgICAgICBsb2dnZXIsIG9yaWdp
bmFsX2J5dGVzLCBmaWx0ZXJlZF9ieXRlcywgYXZlcmFnZV9yYXRpbyk6Ci0gICAgIyBQcmludCBp
bmYgd2hlbiByYXRpbyBpcyBub3QgYXZhaWxhYmxlLgotICAgIHJhdGlvID0gZmxvYXQoJ2luZicp
Ci0gICAgaWYgb3JpZ2luYWxfYnl0ZXMgIT0gMDoKLSAgICAgICAgcmF0aW8gPSBmbG9hdChmaWx0
ZXJlZF9ieXRlcykgLyBvcmlnaW5hbF9ieXRlcwotCi0gICAgbG9nZ2VyLmRlYnVnKCdPdXRnb2lu
ZyBjb21wcmVzc2lvbiByYXRpbzogJWYgKGF2ZXJhZ2U6ICVmKScgJQotICAgICAgICAgICAgKHJh
dGlvLCBhdmVyYWdlX3JhdGlvKSkKLQotCi1kZWYgX2xvZ19pbmNvbWluZ19jb21wcmVzc2lvbl9y
YXRpbygKLSAgICAgICAgbG9nZ2VyLCByZWNlaXZlZF9ieXRlcywgZmlsdGVyZWRfYnl0ZXMsIGF2
ZXJhZ2VfcmF0aW8pOgotICAgICMgUHJpbnQgaW5mIHdoZW4gcmF0aW8gaXMgbm90IGF2YWlsYWJs
ZS4KLSAgICByYXRpbyA9IGZsb2F0KCdpbmYnKQotICAgIGlmIGZpbHRlcmVkX2J5dGVzICE9IDA6
Ci0gICAgICAgIHJhdGlvID0gZmxvYXQocmVjZWl2ZWRfYnl0ZXMpIC8gZmlsdGVyZWRfYnl0ZXMK
LQotICAgIGxvZ2dlci5kZWJ1ZygnSW5jb21pbmcgY29tcHJlc3Npb24gcmF0aW86ICVmIChhdmVy
YWdlOiAlZiknICUKLSAgICAgICAgICAgIChyYXRpbywgYXZlcmFnZV9yYXRpbykpCi0KLQotZGVm
IF9wYXJzZV93aW5kb3dfYml0cyhiaXRzKToKLSAgICAiIiJSZXR1cm4gcGFyc2VkIGludGVnZXIg
dmFsdWUgaWZmIHRoZSBnaXZlbiBzdHJpbmcgY29uZm9ybXMgdG8gdGhlCi0gICAgZ3JhbW1hciBv
ZiB0aGUgd2luZG93IGJpdHMgZXh0ZW5zaW9uIHBhcmFtZXRlcnMuCi0gICAgIiIiCi0KLSAgICBp
ZiBiaXRzIGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1ZhbHVlIGlzIHJlcXVp
cmVkJykKLQotICAgICMgRm9yIG5vbiBpbnRlZ2VyIHZhbHVlcyBzdWNoIGFzICIxMC4wIiwgVmFs
dWVFcnJvciB3aWxsIGJlIHJhaXNlZC4KLSAgICBpbnRfYml0cyA9IGludChiaXRzKQotCi0gICAg
IyBGaXJzdCBjb25kaXRpb24gaXMgdG8gZHJvcCBsZWFkaW5nIHplcm8gY2FzZSBlLmcuICIwOCIu
Ci0gICAgaWYgYml0cyAhPSBzdHIoaW50X2JpdHMpIG9yIGludF9iaXRzIDwgOCBvciBpbnRfYml0
cyA+IDE1OgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIHZhbHVlOiAlcicgJSBi
aXRzKQotCi0gICAgcmV0dXJuIGludF9iaXRzCi0KLQotY2xhc3MgX0F2ZXJhZ2VSYXRpb0NhbGN1
bGF0b3Iob2JqZWN0KToKLSAgICAiIiJTdG9yZXMgdG90YWwgYnl0ZXMgb2Ygb3JpZ2luYWwgYW5k
IHJlc3VsdCBkYXRhLCBhbmQgY2FsY3VsYXRlcyBhdmVyYWdlCi0gICAgcmVzdWx0IC8gb3JpZ2lu
YWwgcmF0aW8uCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNl
bGYuX3RvdGFsX29yaWdpbmFsX2J5dGVzID0gMAotICAgICAgICBzZWxmLl90b3RhbF9yZXN1bHRf
Ynl0ZXMgPSAwCi0KLSAgICBkZWYgYWRkX29yaWdpbmFsX2J5dGVzKHNlbGYsIHZhbHVlKToKLSAg
ICAgICAgc2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0ZXMgKz0gdmFsdWUKLQotICAgIGRlZiBhZGRf
cmVzdWx0X2J5dGVzKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fdG90YWxfcmVzdWx0X2J5
dGVzICs9IHZhbHVlCi0KLSAgICBkZWYgZ2V0X2F2ZXJhZ2VfcmF0aW8oc2VsZik6Ci0gICAgICAg
IGlmIHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5dGVzICE9IDA6Ci0gICAgICAgICAgICByZXR1cm4g
KGZsb2F0KHNlbGYuX3RvdGFsX3Jlc3VsdF9ieXRlcykgLwotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl90b3RhbF9vcmlnaW5hbF9ieXRlcykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJl
dHVybiBmbG9hdCgnaW5mJykKLQotCi1jbGFzcyBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNz
b3IoRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlKToKLSAgICAiIiJkZWZsYXRlLWZyYW1lIGV4
dGVuc2lvbiBwcm9jZXNzb3IuCi0KLSAgICBTcGVjaWZpY2F0aW9uOgotICAgIGh0dHA6Ly90b29s
cy5pZXRmLm9yZy9odG1sL2RyYWZ0LXR5b3NoaW5vLWh5Ymktd2Vic29ja2V0LXBlcmZyYW1lLWRl
ZmxhdGUKLSAgICAiIiIKLQotICAgIF9XSU5ET1dfQklUU19QQVJBTSA9ICdtYXhfd2luZG93X2Jp
dHMnCi0gICAgX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0gPSAnbm9fY29udGV4dF90YWtlb3Zl
cicKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgRXh0ZW5zaW9u
UHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0gICAgICAgIHNlbGYu
X2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3Jl
c3BvbnNlX3dpbmRvd19iaXRzID0gTm9uZQotICAgICAgICBzZWxmLl9yZXNwb25zZV9ub19jb250
ZXh0X3Rha2VvdmVyID0gRmFsc2UKLSAgICAgICAgc2VsZi5fYmZpbmFsID0gRmFsc2UKLQotICAg
ICAgICAjIENhbGN1bGF0ZXMKLSAgICAgICAgIyAgICAgKFRvdGFsIG91dGdvaW5nIGJ5dGVzIHN1
cHBsaWVkIHRvIHRoaXMgZmlsdGVyKSAvCi0gICAgICAgICMgICAgIChUb3RhbCBieXRlcyBzZW50
IHRvIHRoZSBuZXR3b3JrIGFmdGVyIGFwcGx5aW5nIHRoaXMgZmlsdGVyKQotICAgICAgICBzZWxm
Ll9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IgPSBfQXZlcmFnZVJhdGlvQ2FsY3Vs
YXRvcigpCi0KLSAgICAgICAgIyBDYWxjdWxhdGVzCi0gICAgICAgICMgICAgIChUb3RhbCBieXRl
cyByZWNlaXZlZCBmcm9tIHRoZSBuZXR3b3JrKSAvCi0gICAgICAgICMgICAgIChUb3RhbCBpbmNv
bWluZyBieXRlcyBvYnRhaW5lZCBhZnRlciBhcHBseWluZyB0aGlzIGZpbHRlcikKLSAgICAgICAg
c2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yID0gX0F2ZXJhZ2VSYXRpb0Nh
bGN1bGF0b3IoKQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBjb21tb24u
REVGTEFURV9GUkFNRV9FWFRFTlNJT04KLQotICAgIGRlZiBfZ2V0X2V4dGVuc2lvbl9yZXNwb25z
ZV9pbnRlcm5hbChzZWxmKToKLSAgICAgICAgIyBBbnkgdW5rbm93biBwYXJhbWV0ZXIgd2lsbCBi
ZSBqdXN0IGlnbm9yZWQuCi0KLSAgICAgICAgd2luZG93X2JpdHMgPSBOb25lCi0gICAgICAgIGlm
IHNlbGYuX3JlcXVlc3QuaGFzX3BhcmFtZXRlcihzZWxmLl9XSU5ET1dfQklUU19QQVJBTSk6Ci0g
ICAgICAgICAgICB3aW5kb3dfYml0cyA9IHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1
ZSgKLSAgICAgICAgICAgICAgICBzZWxmLl9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICB3aW5kb3dfYml0cyA9IF9wYXJzZV93aW5kb3dfYml0cyh3
aW5kb3dfYml0cykKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBub19jb250ZXh0X3Rha2VvdmVyID0gc2Vs
Zi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAotICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9U
QUtFT1ZFUl9QQVJBTSkKLSAgICAgICAgaWYgKG5vX2NvbnRleHRfdGFrZW92ZXIgYW5kCi0gICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFsdWUoCi0gICAgICAgICAgICAg
ICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkgaXMgbm90IE5vbmUpOgotICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyID0gdXRp
bC5fUkZDMTk3OURlZmxhdGVyKAotICAgICAgICAgICAgd2luZG93X2JpdHMsIG5vX2NvbnRleHRf
dGFrZW92ZXIpCi0KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9pbmZsYXRlciA9IHV0aWwuX1JGQzE5
NzlJbmZsYXRlcigpCi0KLSAgICAgICAgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmcgPSBUcnVlCi0K
LSAgICAgICAgcmVzcG9uc2UgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKHNlbGYuX3JlcXVl
c3QubmFtZSgpKQotCi0gICAgICAgIGlmIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAg
ICAgICBzZWxmLl9XSU5ET1dfQklUU19QQVJBTSwgc3RyKHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19i
aXRzKSkKLSAgICAgICAgaWYgc2VsZi5fcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3ZlcjoKLSAg
ICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5f
Tk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwgTm9uZSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoCi0gICAgICAgICAgICAnRW5hYmxlICVzIGV4dGVuc2lvbiAoJwotICAgICAgICAgICAg
J3JlcXVlc3Q6IHdpbmRvd19iaXRzPSVzOyBub19jb250ZXh0X3Rha2VvdmVyPSVyLCAnCi0gICAg
ICAgICAgICAncmVzcG9uc2U6IHdpbmRvd193Yml0cz0lczsgbm9fY29udGV4dF90YWtlb3Zlcj0l
ciknICUKLSAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0Lm5hbWUoKSwKLSAgICAgICAgICAgICB3
aW5kb3dfYml0cywKLSAgICAgICAgICAgICBub19jb250ZXh0X3Rha2VvdmVyLAotICAgICAgICAg
ICAgIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzLAotICAgICAgICAgICAgIHNlbGYuX3Jlc3Bv
bnNlX25vX2NvbnRleHRfdGFrZW92ZXIpKQotCi0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0g
ICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9u
cyk6Ci0KLSAgICAgICAgY2xhc3MgX091dGdvaW5nRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAg
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuX3Bh
cmVudCA9IHBhcmVudAotCi0gICAgICAgICAgICBkZWYgZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAg
ICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuX291dGdvaW5nX2ZpbHRlcihmcmFtZSkKLQotICAg
ICAgICBjbGFzcyBfSW5jb21pbmdGaWx0ZXIob2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFy
ZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWUpOgotICAgICAgICAgICAg
ICAgIHNlbGYuX3BhcmVudC5faW5jb21pbmdfZmlsdGVyKGZyYW1lKQotCi0gICAgICAgIHN0cmVh
bV9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMuYXBwZW5kKAotICAgICAgICAgICAgX091
dGdvaW5nRmlsdGVyKHNlbGYpKQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5pbmNvbWluZ19mcmFt
ZV9maWx0ZXJzLmluc2VydCgKLSAgICAgICAgICAgIDAsIF9JbmNvbWluZ0ZpbHRlcihzZWxmKSkK
LQotICAgIGRlZiBzZXRfcmVzcG9uc2Vfd2luZG93X2JpdHMoc2VsZiwgdmFsdWUpOgotICAgICAg
ICBzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0cyA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X3Jlc3Bv
bnNlX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9yZXNw
b25zZV9ub19jb250ZXh0X3Rha2VvdmVyID0gdmFsdWUKLQotICAgIGRlZiBzZXRfYmZpbmFsKHNl
bGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fYmZpbmFsID0gdmFsdWUKLQotICAgIGRlZiBlbmFi
bGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6Ci0gICAgICAgIHNlbGYuX2NvbXByZXNzX291
dGdvaW5nID0gVHJ1ZQotCi0gICAgZGVmIGRpc2FibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2Vs
Zik6Ci0gICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nID0gRmFsc2UKLQotICAgIGRlZiBf
b3V0Z29pbmdfZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgIiIiVHJhbnNmb3JtIG91dGdv
aW5nIGZyYW1lcy4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9ubHkgYnkKLSAgICAgICAgYW4gX091
dGdvaW5nRmlsdGVyIGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICBvcmlnaW5hbF9w
YXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5bG9hZCkKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdf
YXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRlcygKLSAgICAgICAgICAg
ICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgaWYgKG5vdCBzZWxmLl9jb21w
cmVzc19vdXRnb2luZyBvcgotICAgICAgICAgICAgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZy
YW1lLm9wY29kZSkpOgotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19j
YWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCi0gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFs
X3BheWxvYWRfc2l6ZSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGZyYW1lLnBheWxv
YWQgPSBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyLmZpbHRlcigKLSAgICAgICAgICAgIGZyYW1lLnBh
eWxvYWQsIGJmaW5hbD1zZWxmLl9iZmluYWwpCi0gICAgICAgIGZyYW1lLnJzdjEgPSAxCi0KLSAg
ICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0gbGVuKGZyYW1lLnBheWxvYWQpCi0gICAgICAg
IHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVz
KAotICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9n
X291dGdvaW5nX2NvbXByZXNzaW9uX3JhdGlvKAotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ciwKLSAgICAgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAg
ICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIHNlbGYuX291dGdvaW5n
X2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5nZXRfYXZlcmFnZV9yYXRpbygpKQotCi0gICAgZGVm
IF9pbmNvbWluZ19maWx0ZXIoc2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJUcmFuc2Zvcm0gaW5j
b21pbmcgZnJhbWVzLiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb25seSBieQotICAgICAgICBhbiBf
SW5jb21pbmdGaWx0ZXIgaW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJlY2VpdmVk
X3BheWxvYWRfc2l6ZSA9IGxlbihmcmFtZS5wYXlsb2FkKQotICAgICAgICBzZWxmLl9pbmNvbWlu
Z19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAg
ICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgaWYgZnJhbWUucnN2MSAhPSAx
IG9yIGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAg
c2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRl
cygKLSAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplKQotICAgICAgICAg
ICAgcmV0dXJuCi0KLSAgICAgICAgZnJhbWUucGF5bG9hZCA9IHNlbGYuX3JmYzE5NzlfaW5mbGF0
ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIGZyYW1lLnJzdjEgPSAwCi0KLSAgICAg
ICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0gbGVuKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIHNl
bGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMo
Ci0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIF9sb2df
aW5jb21pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LAotICAgICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAg
ICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgc2VsZi5faW5jb21pbmdf
YXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmdldF9hdmVyYWdlX3JhdGlvKCkpCi0KLQotX2F2YWls
YWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTl0gPSAoCi0gICAg
RGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKQotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9u
YW1lcy5hcHBlbmQoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotCi1fYXZhaWxhYmxl
X3Byb2Nlc3NvcnNbY29tbW9uLlhfV0VCS0lUX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OXSA9ICgK
LSAgICBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IpCi1fY29tcHJlc3Npb25fZXh0ZW5z
aW9uX25hbWVzLmFwcGVuZChjb21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04p
Ci0KLQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoRXh0ZW5zaW9u
UHJvY2Vzc29ySW50ZXJmYWNlKToKLSAgICAiIiJwZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9u
IHByb2Nlc3Nvci4KLQotICAgIFNwZWNpZmljYXRpb246Ci0gICAgaHR0cDovL3Rvb2xzLmlldGYu
b3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXBlcm1lc3NhZ2UtY29tcHJlc3Npb24tMDgKLSAgICAi
IiIKLQotICAgIF9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNID0gJ3NlcnZlcl9tYXhfd2lu
ZG93X2JpdHMnCi0gICAgX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNID0gJ3NlcnZl
cl9ub19jb250ZXh0X3Rha2VvdmVyJwotICAgIF9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFN
ID0gJ2NsaWVudF9tYXhfd2luZG93X2JpdHMnCi0gICAgX0NMSUVOVF9OT19DT05URVhUX1RBS0VP
VkVSX1BBUkFNID0gJ2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyJwotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgUGVyTWVzc2FnZURlZmxh
dGVFeHRlbnNpb25Qcm9jZXNzb3IuIiIiCi0KLSAgICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50
ZXJmYWNlLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGll
bnRfbWF4X3dpbmRvd19iaXRzID0gTm9uZQotICAgICAgICBzZWxmLl9jbGllbnRfbm9fY29udGV4
dF90YWtlb3ZlciA9IEZhbHNlCi0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgIyBUaGlz
IG1ldGhvZCByZXR1cm5zICJkZWZsYXRlIiAobm90ICJwZXJtZXNzYWdlLWRlZmxhdGUiKSBmb3IK
LSAgICAgICAgIyBjb21wYXRpYmlsaXR5LgotICAgICAgICByZXR1cm4gJ2RlZmxhdGUnCi0KLSAg
ICBkZWYgX2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoc2VsZik6Ci0gICAgICAgIGZv
ciBuYW1lIGluIHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl9uYW1lcygpOgotICAgICAgICAg
ICAgaWYgbmFtZSBub3QgaW4gW3NlbGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9W
RVJfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9X
SU5ET1dfQklUU19QQVJBTV06Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdV
bmtub3duIHBhcmFtZXRlcjogJXInLCBuYW1lKQotICAgICAgICAgICAgICAgIHJldHVybiBOb25l
Ci0KLSAgICAgICAgc2VydmVyX21heF93aW5kb3dfYml0cyA9IE5vbmUKLSAgICAgICAgaWYgc2Vs
Zi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKHNlbGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFS
QU0pOgotICAgICAgICAgICAgc2VydmVyX21heF93aW5kb3dfYml0cyA9IHNlbGYuX3JlcXVlc3Qu
Z2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX01B
WF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBz
ZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gX3BhcnNlX3dpbmRvd19iaXRzKAotICAgICAgICAgICAg
ICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKQotICAgICAgICAgICAgZXhjZXB0IFZhbHVl
RXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0JhZCAlcyBw
YXJhbWV0ZXI6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
U0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgIHNlcnZl
cl9ub19jb250ZXh0X3Rha2VvdmVyID0gc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAotICAg
ICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0pCi0gICAgICAg
IGlmIChzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciBhbmQKLSAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJf
Tk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkgaXMgbm90IE5vbmUpOgotICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCclcyBwYXJhbWV0ZXIgbXVzdCBub3QgaGF2ZSBhIHZhbHVlOiAlcics
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRf
VEFLRU9WRVJfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX25v
X2NvbnRleHRfdGFrZW92ZXIpCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgICMg
Y2xpZW50X21heF93aW5kb3dfYml0cyBmcm9tIGEgY2xpZW50IGluZGljYXRlcyB3aGV0aGVyIHRo
ZSBjbGllbnQgY2FuCi0gICAgICAgICMgYWNjZXB0IGNsaWVudF9tYXhfd2luZG93X2JpdHMgZnJv
bSBhIHNlcnZlciBvciBub3QuCi0gICAgICAgIGNsaWVudF9jbGllbnRfbWF4X3dpbmRvd19iaXRz
ID0gc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAotICAgICAgICAgICAgc2VsZi5fQ0xJRU5U
X01BWF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAgaWYgKGNsaWVudF9jbGllbnRfbWF4X3dp
bmRvd19iaXRzIGFuZAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3Zh
bHVlKAotICAgICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0p
IGlzIG5vdCBOb25lKToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMgcGFyYW1l
dGVyIG11c3Qgbm90IGhhdmUgYSB2YWx1ZSBpbiBhICcKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnY2xpZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlOiAlcicsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0
cykKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9kZWZs
YXRlciA9IHV0aWwuX1JGQzE5NzlEZWZsYXRlcigKLSAgICAgICAgICAgIHNlcnZlcl9tYXhfd2lu
ZG93X2JpdHMsIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgICAgICMgTm90ZSB0
aGF0IHdlIHByZXBhcmUgZm9yIGluY29taW5nIG1lc3NhZ2VzIGNvbXByZXNzZWQgd2l0aCB3aW5k
b3cKLSAgICAgICAgIyBiaXRzIHVwdG8gMTUgcmVnYXJkbGVzcyBvZiB0aGUgY2xpZW50X21heF93
aW5kb3dfYml0cyB2YWx1ZSB0byBiZQotICAgICAgICAjIHNlbnQgdG8gdGhlIGNsaWVudC4KLSAg
ICAgICAgc2VsZi5fcmZjMTk3OV9pbmZsYXRlciA9IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCi0K
LSAgICAgICAgc2VsZi5fZnJhbWVyID0gX1Blck1lc3NhZ2VEZWZsYXRlRnJhbWVyKAotICAgICAg
ICAgICAgc2VydmVyX21heF93aW5kb3dfYml0cywgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIp
Ci0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXRfYmZpbmFsKEZhbHNlKQotICAgICAgICBzZWxmLl9m
cmFtZXIuc2V0X2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQoVHJ1ZSkKLQotICAgICAgICByZXNw
b25zZSA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoc2VsZi5fcmVxdWVzdC5uYW1lKCkpCi0K
LSAgICAgICAgaWYgc2VydmVyX21heF93aW5kb3dfYml0cyBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVS
X01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAgICAgICAgICAgICBzdHIoc2VydmVyX21heF93
aW5kb3dfYml0cykpCi0KLSAgICAgICAgaWYgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXI6Ci0g
ICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIHNlbGYu
X1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNLCBOb25lKQotCi0gICAgICAgIGlmIHNl
bGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgaWYgbm90IGNsaWVudF9jbGllbnRfbWF4X3dpbmRvd19iaXRzOgotICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUHJvY2Vzc29yIGlzIGNvbmZpZ3VyZWQgdG8gdXNlICVz
IGJ1dCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgY2xpZW50IGNh
bm5vdCBhY2NlcHQgaXQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKQotICAgICAgICAgICAgICAgIHJldHVybiBO
b25lCi0gICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAg
IHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAgICAgc3Ry
KHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKSkKLQotICAgICAgICBpZiBz
ZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcjoKLSAgICAgICAgICAgIHJlc3BvbnNlLmFk
ZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX05PX0NPTlRFWFRfVEFL
RU9WRVJfUEFSQU0sIE5vbmUpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAg
ICAgICAgJ0VuYWJsZSAlcyBleHRlbnNpb24gKCcKLSAgICAgICAgICAgICdyZXF1ZXN0OiBzZXJ2
ZXJfbWF4X3dpbmRvd19iaXRzPSVzOyAnCi0gICAgICAgICAgICAnc2VydmVyX25vX2NvbnRleHRf
dGFrZW92ZXI9JXIsICcKLSAgICAgICAgICAgICdyZXNwb25zZTogY2xpZW50X21heF93aW5kb3df
Yml0cz0lczsgJwotICAgICAgICAgICAgJ2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyPSVyKScg
JQotICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QubmFtZSgpLAotICAgICAgICAgICAgIHNlcnZl
cl9tYXhfd2luZG93X2JpdHMsCi0gICAgICAgICAgICAgc2VydmVyX25vX2NvbnRleHRfdGFrZW92
ZXIsCi0gICAgICAgICAgICAgc2VsZi5fcHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMs
Ci0gICAgICAgICAgICAgc2VsZi5fY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIpKQotCi0gICAg
ICAgIHJldHVybiByZXNwb25zZQotCi0gICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRl
cm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXR1cF9z
dHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9ucykKLQotICAgIGRlZiBzZXRfY2xpZW50X21heF93
aW5kb3dfYml0cyhzZWxmLCB2YWx1ZSk6Ci0gICAgICAgICIiIklmIHRoaXMgb3B0aW9uIGlzIHNw
ZWNpZmllZCwgdGhpcyBjbGFzcyBhZGRzIHRoZQotICAgICAgICBjbGllbnRfbWF4X3dpbmRvd19i
aXRzIGV4dGVuc2lvbiBwYXJhbWV0ZXIgdG8gdGhlIGhhbmRzaGFrZSByZXNwb25zZSwKLSAgICAg
ICAgYnV0IGRvZXNuJ3QgcmVkdWNlIHRoZSBMWjc3IHNsaWRpbmcgd2luZG93IHNpemUgb2YgaXRz
IGluZmxhdGVyLgotICAgICAgICBJLmUuLCB5b3UgY2FuIHVzZSB0aGlzIGZvciB0ZXN0aW5nIGNs
aWVudCBpbXBsZW1lbnRhdGlvbiBidXQgY2Fubm90Ci0gICAgICAgIHJlZHVjZSBtZW1vcnkgdXNh
Z2Ugb2YgdGhpcyBjbGFzcy4KLQotICAgICAgICBJZiB0aGlzIG1ldGhvZCBoYXMgYmVlbiBjYWxs
ZWQgd2l0aCBUcnVlIGFuZCBhbiBvZmZlciB3aXRob3V0IHRoZQotICAgICAgICBjbGllbnRfbWF4
X3dpbmRvd19iaXRzIGV4dGVuc2lvbiBwYXJhbWV0ZXIgaXMgcmVjZWl2ZWQsCi0gICAgICAgIC0g
KFdoZW4gcHJvY2Vzc2luZyB0aGUgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbikgdGhpcyBw
cm9jZXNzb3IKLSAgICAgICAgICBkZWNsaW5lcyB0aGUgcmVxdWVzdC4KLSAgICAgICAgLSAoV2hl
biBwcm9jZXNzaW5nIHRoZSBwZXJtZXNzYWdlLWNvbXByZXNzIGV4dGVuc2lvbikgdGhpcyBwcm9j
ZXNzb3IKLSAgICAgICAgICBhY2NlcHRzIHRoZSByZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAg
ICAgICBzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21heF93aW5kb3dfYml0cyA9IHZhbHVlCi0KLSAg
ICBkZWYgc2V0X2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYsIHZhbHVlKToKLSAgICAg
ICAgIiIiSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGlzIGNsYXNzIGFkZHMgdGhlCi0g
ICAgICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyIGV4dGVuc2lvbiBwYXJhbWV0ZXIgdG8g
dGhlIGhhbmRzaGFrZQotICAgICAgICByZXNwb25zZSwgYnV0IGRvZXNuJ3QgcmVzZXQgaW5mbGF0
ZXIgZm9yIGVhY2ggbWVzc2FnZS4gSS5lLiwgeW91IGNhbgotICAgICAgICB1c2UgdGhpcyBmb3Ig
dGVzdGluZyBjbGllbnQgaW1wbGVtZW50YXRpb24gYnV0IGNhbm5vdCByZWR1Y2UgbWVtb3J5Ci0g
ICAgICAgIHVzYWdlIG9mIHRoaXMgY2xhc3MuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYu
X2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0gdmFsdWUKLQotICAgIGRlZiBzZXRfYmZpbmFs
KHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9iZmluYWwodmFsdWUpCi0K
LSAgICBkZWYgZW5hYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKHNlbGYpOgotICAgICAgICBzZWxm
Ll9mcmFtZXIuc2V0X2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQoVHJ1ZSkKLQotICAgIGRlZiBk
aXNhYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKHNlbGYpOgotICAgICAgICBzZWxmLl9mcmFtZXIu
c2V0X2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQoRmFsc2UpCi0KLQotY2xhc3MgX1Blck1lc3Nh
Z2VEZWZsYXRlRnJhbWVyKG9iamVjdCk6Ci0gICAgIiIiQSBmcmFtZXIgZm9yIGV4dGVuc2lvbnMg
d2l0aCBwZXItbWVzc2FnZSBERUZMQVRFIGZlYXR1cmUuIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgZGVmbGF0ZV9tYXhfd2luZG93X2JpdHMsIGRlZmxhdGVfbm9fY29udGV4dF90YWtlb3Zl
cik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQot
Ci0gICAgICAgIHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIgPSB1dGlsLl9SRkMxOTc5RGVmbGF0ZXIo
Ci0gICAgICAgICAgICBkZWZsYXRlX21heF93aW5kb3dfYml0cywgZGVmbGF0ZV9ub19jb250ZXh0
X3Rha2VvdmVyKQotCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIgPSB1dGlsLl9SRkMx
OTc5SW5mbGF0ZXIoKQotCi0gICAgICAgIHNlbGYuX2JmaW5hbCA9IEZhbHNlCi0KLSAgICAgICAg
c2VsZi5fY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZCA9IEZhbHNlCi0KLSAgICAgICAgIyBUcnVl
IGlmIGEgbWVzc2FnZSBpcyBmcmFnbWVudGVkIGFuZCBjb21wcmVzc2lvbiBpcyBvbmdvaW5nLgot
ICAgICAgICBzZWxmLl9jb21wcmVzc19vbmdvaW5nID0gRmFsc2UKLQotICAgICAgICAjIENhbGN1
bGF0ZXMKLSAgICAgICAgIyAgICAgKFRvdGFsIG91dGdvaW5nIGJ5dGVzIHN1cHBsaWVkIHRvIHRo
aXMgZmlsdGVyKSAvCi0gICAgICAgICMgICAgIChUb3RhbCBieXRlcyBzZW50IHRvIHRoZSBuZXR3
b3JrIGFmdGVyIGFwcGx5aW5nIHRoaXMgZmlsdGVyKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19h
dmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IgPSBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcigpCi0KLSAg
ICAgICAgIyBDYWxjdWxhdGVzCi0gICAgICAgICMgICAgIChUb3RhbCBieXRlcyByZWNlaXZlZCBm
cm9tIHRoZSBuZXR3b3JrKSAvCi0gICAgICAgICMgICAgIChUb3RhbCBpbmNvbWluZyBieXRlcyBv
YnRhaW5lZCBhZnRlciBhcHBseWluZyB0aGlzIGZpbHRlcikKLSAgICAgICAgc2VsZi5faW5jb21p
bmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQot
Ci0gICAgZGVmIHNldF9iZmluYWwoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9iZmluYWwg
PSB2YWx1ZQotCi0gICAgZGVmIHNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKHNlbGYsIHZh
bHVlKToKLSAgICAgICAgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZCA9IHZhbHVlCi0K
LSAgICBkZWYgX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBkZWNvbXBy
ZXNzKToKLSAgICAgICAgaWYgbm90IGRlY29tcHJlc3M6Ci0gICAgICAgICAgICByZXR1cm4gbWVz
c2FnZQotCi0gICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSA9IGxlbihtZXNzYWdlKQotICAg
ICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9i
eXRlcygKLSAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAg
bWVzc2FnZSA9IHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIuZmlsdGVyKG1lc3NhZ2UpCi0KLSAgICAg
ICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0gbGVuKG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX2lu
Y29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAg
ICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIF9sb2dfaW5jb21p
bmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLAotICAg
ICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBmaWx0
ZXJlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFn
ZV9yYXRpb19jYWxjdWxhdG9yLmdldF9hdmVyYWdlX3JhdGlvKCkpCi0KLSAgICAgICAgcmV0dXJu
IG1lc3NhZ2UKLQotICAgIGRlZiBfcHJvY2Vzc19vdXRnb2luZ19tZXNzYWdlKHNlbGYsIG1lc3Nh
Z2UsIGVuZCwgYmluYXJ5KToKLSAgICAgICAgaWYgbm90IGJpbmFyeToKLSAgICAgICAgICAgIG1l
c3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRmLTgnKQotCi0gICAgICAgIGlmIG5vdCBzZWxmLl9j
b21wcmVzc19vdXRnb2luZ19lbmFibGVkOgotICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQot
ICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUgPSBsZW4obWVzc2FnZSkKLSAgICAgICAgc2Vs
Zi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRlcygK
LSAgICAgICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBtZXNzYWdlID0g
c2VsZi5fcmZjMTk3OV9kZWZsYXRlci5maWx0ZXIoCi0gICAgICAgICAgICBtZXNzYWdlLCBlbmQ9
ZW5kLCBiZmluYWw9c2VsZi5fYmZpbmFsKQotCi0gICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6
ZSA9IGxlbihtZXNzYWdlKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2Nh
bGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRf
c2l6ZSkKLQotICAgICAgICBfbG9nX291dGdvaW5nX2NvbXByZXNzaW9uX3JhdGlvKAotICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2Fk
X3NpemUsCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAotICAgICAgICAg
ICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5nZXRfYXZlcmFn
ZV9yYXRpbygpKQotCi0gICAgICAgIGlmIG5vdCBzZWxmLl9jb21wcmVzc19vbmdvaW5nOgotICAg
ICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyLnNldF9jb21wcmVzc2lvbl9iaXQo
KQotICAgICAgICBzZWxmLl9jb21wcmVzc19vbmdvaW5nID0gbm90IGVuZAotICAgICAgICByZXR1
cm4gbWVzc2FnZQotCi0gICAgZGVmIF9wcm9jZXNzX2luY29taW5nX2ZyYW1lKHNlbGYsIGZyYW1l
KToKLSAgICAgICAgaWYgZnJhbWUucnN2MSA9PSAxIGFuZCBub3QgY29tbW9uLmlzX2NvbnRyb2xf
b3Bjb2RlKGZyYW1lLm9wY29kZSk6Ci0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19tZXNzYWdl
X2ZpbHRlci5kZWNvbXByZXNzX25leHRfbWVzc2FnZSgpCi0gICAgICAgICAgICBmcmFtZS5yc3Yx
ID0gMAotCi0gICAgZGVmIF9wcm9jZXNzX291dGdvaW5nX2ZyYW1lKHNlbGYsIGZyYW1lLCBjb21w
cmVzc2lvbl9iaXQpOgotICAgICAgICBpZiAobm90IGNvbXByZXNzaW9uX2JpdCBvcgotICAgICAg
ICAgICAgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSkpOgotICAgICAgICAg
ICAgcmV0dXJuCi0KLSAgICAgICAgZnJhbWUucnN2MSA9IDEKLQotICAgIGRlZiBzZXR1cF9zdHJl
YW1fb3B0aW9ucyhzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgICIiIkNyZWF0ZXMgZmls
dGVycyBhbmQgc2V0cyB0aGVtIHRvIHRoZSBTdHJlYW1PcHRpb25zLiIiIgotCi0gICAgICAgIGNs
YXNzIF9PdXRnb2luZ01lc3NhZ2VGaWx0ZXIob2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFy
ZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJp
bmFyeT1GYWxzZSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5fcHJvY2Vz
c19vdXRnb2luZ19tZXNzYWdlKAotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLCBlbmQsIGJp
bmFyeSkKLQotICAgICAgICBjbGFzcyBfSW5jb21pbmdNZXNzYWdlRmlsdGVyKG9iamVjdCk6Ci0K
LSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgotICAgICAgICAgICAgICAg
IHNlbGYuX3BhcmVudCA9IHBhcmVudAotICAgICAgICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3Nf
bmV4dF9tZXNzYWdlID0gRmFsc2UKLQotICAgICAgICAgICAgZGVmIGRlY29tcHJlc3NfbmV4dF9t
ZXNzYWdlKHNlbGYpOgotICAgICAgICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNz
YWdlID0gVHJ1ZQotCi0gICAgICAgICAgICBkZWYgZmlsdGVyKHNlbGYsIG1lc3NhZ2UpOgotICAg
ICAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9wYXJlbnQuX3Byb2Nlc3NfaW5jb21pbmdfbWVz
c2FnZSgKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwgc2VsZi5fZGVjb21wcmVzc19uZXh0
X21lc3NhZ2UpCi0gICAgICAgICAgICAgICAgc2VsZi5fZGVjb21wcmVzc19uZXh0X21lc3NhZ2Ug
PSBGYWxzZQotICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlCi0KLSAgICAgICAgc2VsZi5f
b3V0Z29pbmdfbWVzc2FnZV9maWx0ZXIgPSBfT3V0Z29pbmdNZXNzYWdlRmlsdGVyKHNlbGYpCi0g
ICAgICAgIHNlbGYuX2luY29taW5nX21lc3NhZ2VfZmlsdGVyID0gX0luY29taW5nTWVzc2FnZUZp
bHRlcihzZWxmKQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5vdXRnb2luZ19tZXNzYWdlX2ZpbHRl
cnMuYXBwZW5kKAotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfbWVzc2FnZV9maWx0ZXIpCi0g
ICAgICAgIHN0cmVhbV9vcHRpb25zLmluY29taW5nX21lc3NhZ2VfZmlsdGVycy5hcHBlbmQoCi0g
ICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcikKLQotICAgICAgICBjbGFz
cyBfT3V0Z29pbmdGcmFtZUZpbHRlcihvYmplY3QpOgotCi0gICAgICAgICAgICBkZWYgX19pbml0
X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQK
LSAgICAgICAgICAgICAgICBzZWxmLl9zZXRfY29tcHJlc3Npb25fYml0ID0gRmFsc2UKLQotICAg
ICAgICAgICAgZGVmIHNldF9jb21wcmVzc2lvbl9iaXQoc2VsZik6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9IFRydWUKLQotICAgICAgICAgICAgZGVmIGZpbHRl
cihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50Ll9wcm9jZXNzX291
dGdvaW5nX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBmcmFtZSwgc2VsZi5fc2V0X2NvbXBy
ZXNzaW9uX2JpdCkKLSAgICAgICAgICAgICAgICBzZWxmLl9zZXRfY29tcHJlc3Npb25fYml0ID0g
RmFsc2UKLQotICAgICAgICBjbGFzcyBfSW5jb21pbmdGcmFtZUZpbHRlcihvYmplY3QpOgotCi0g
ICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAgICAgICBz
ZWxmLl9wYXJlbnQgPSBwYXJlbnQKLQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBmcmFt
ZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50Ll9wcm9jZXNzX2luY29taW5nX2ZyYW1l
KGZyYW1lKQotCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciA9IF9PdXRnb2lu
Z0ZyYW1lRmlsdGVyKHNlbGYpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlciA9
IF9JbmNvbWluZ0ZyYW1lRmlsdGVyKHNlbGYpCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLm91dGdv
aW5nX2ZyYW1lX2ZpbHRlcnMuYXBwZW5kKAotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJh
bWVfZmlsdGVyKQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJz
LmFwcGVuZCgKLSAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlcikKLQotICAg
ICAgICBzdHJlYW1fb3B0aW9ucy5lbmNvZGVfdGV4dF9tZXNzYWdlX3RvX3V0ZjggPSBGYWxzZQot
Ci0KLV9hdmFpbGFibGVfcHJvY2Vzc29yc1tjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVO
U0lPTl0gPSAoCi0gICAgICAgIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKQot
IyBUT0RPKHR5b3NoaW5vKTogUmVvcmdhbml6ZSBjbGFzcyBuYW1lcy4KLV9jb21wcmVzc2lvbl9l
eHRlbnNpb25fbmFtZXMuYXBwZW5kKCdkZWZsYXRlJykKLQotCi1jbGFzcyBNdXhFeHRlbnNpb25Q
cm9jZXNzb3IoRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlKToKLSAgICAiIiJXZWJTb2NrZXQg
bXVsdGlwbGV4aW5nIGV4dGVuc2lvbiBwcm9jZXNzb3IuIiIiCi0KLSAgICBfUVVPVEFfUEFSQU0g
PSAncXVvdGEnCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIEV4
dGVuc2lvblByb2Nlc3NvckludGVyZmFjZS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0KQotICAgICAg
ICBzZWxmLl9xdW90YSA9IDAKLSAgICAgICAgc2VsZi5fZXh0ZW5zaW9ucyA9IFtdCi0KLSAgICBk
ZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuIGNvbW1vbi5NVVhfRVhURU5TSU9OCi0KLSAg
ICBkZWYgY2hlY2tfY29uc2lzdGVuY3lfd2l0aF9vdGhlcl9wcm9jZXNzb3JzKHNlbGYsIHByb2Nl
c3NvcnMpOgotICAgICAgICBiZWZvcmVfbXV4ID0gVHJ1ZQotICAgICAgICBmb3IgcHJvY2Vzc29y
IGluIHByb2Nlc3NvcnM6Ci0gICAgICAgICAgICBuYW1lID0gcHJvY2Vzc29yLm5hbWUoKQotICAg
ICAgICAgICAgaWYgbmFtZSA9PSBzZWxmLm5hbWUoKToKLSAgICAgICAgICAgICAgICBiZWZvcmVf
bXV4ID0gRmFsc2UKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgbm90
IHByb2Nlc3Nvci5pc19hY3RpdmUoKToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAg
ICAgICAgaWYgYmVmb3JlX211eDoKLSAgICAgICAgICAgICAgICAjIE11eCBleHRlbnNpb24gY2Fu
bm90IGJlIHVzZWQgYWZ0ZXIgZXh0ZW5zaW9ucwotICAgICAgICAgICAgICAgICMgdGhhdCBkZXBl
bmQgb24gZnJhbWUgYm91bmRhcnksIGV4dGVuc2lvbiBkYXRhIGZpZWxkLCBvciBhbnkKLSAgICAg
ICAgICAgICAgICAjIHJlc2VydmVkIGJpdHMgd2hpY2ggYXJlIGF0dHJpYnV0ZWQgdG8gZWFjaCBm
cmFtZS4KLSAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSBjb21tb24uREVGTEFURV9GUkFNRV9F
WFRFTlNJT04gb3IKLSAgICAgICAgICAgICAgICAgICAgbmFtZSA9PSBjb21tb24uWF9XRUJLSVRf
REVGTEFURV9GUkFNRV9FWFRFTlNJT04pOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnNldF9h
Y3RpdmUoRmFsc2UpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAjIE11eCBleHRlbnNpb24gc2hvdWxkIG5vdCBiZSBhcHBsaWVk
IGJlZm9yZSBhbnkgaGlzdG9yeS1iYXNlZAotICAgICAgICAgICAgICAgICMgY29tcHJlc3Npb24g
ZXh0ZW5zaW9uLgotICAgICAgICAgICAgICAgIGlmIChuYW1lID09ICdkZWZsYXRlJyBvcgotICAg
ICAgICAgICAgICAgICAgICBuYW1lID09IGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiBv
cgotICAgICAgICAgICAgICAgICAgICBuYW1lID09IGNvbW1vbi5YX1dFQktJVF9ERUZMQVRFX0ZS
QU1FX0VYVEVOU0lPTik6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0X2FjdGl2ZShGYWxz
ZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAgICBkZWYgX2dldF9leHRlbnNpb25f
cmVzcG9uc2VfaW50ZXJuYWwoc2VsZik6Ci0gICAgICAgIHNlbGYuX2FjdGl2ZSA9IEZhbHNlCi0g
ICAgICAgIHF1b3RhID0gc2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKHNlbGYuX1FV
T1RBX1BBUkFNKQotICAgICAgICBpZiBxdW90YSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICBxdW90YSA9IGludChxdW90YSkKLSAgICAgICAgICAgIGV4Y2Vw
dCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAg
ICAgIGlmIHF1b3RhIDwgMCBvciBxdW90YSA+PSAyICoqIDMyOgotICAgICAgICAgICAgICAgIHJl
dHVybiBOb25lCi0gICAgICAgICAgICBzZWxmLl9xdW90YSA9IHF1b3RhCi0KLSAgICAgICAgc2Vs
Zi5fYWN0aXZlID0gVHJ1ZQotICAgICAgICByZXR1cm4gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRl
cihjb21tb24uTVVYX0VYVEVOU0lPTikKLQotICAgIGRlZiBfc2V0dXBfc3RyZWFtX29wdGlvbnNf
aW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYg
c2V0X3F1b3RhKHNlbGYsIHF1b3RhKToKLSAgICAgICAgc2VsZi5fcXVvdGEgPSBxdW90YQotCi0g
ICAgZGVmIHF1b3RhKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcXVvdGEKLQotICAgIGRl
ZiBzZXRfZXh0ZW5zaW9ucyhzZWxmLCBleHRlbnNpb25zKToKLSAgICAgICAgc2VsZi5fZXh0ZW5z
aW9ucyA9IGV4dGVuc2lvbnMKLQotICAgIGRlZiBleHRlbnNpb25zKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5fZXh0ZW5zaW9ucwotCi0KLV9hdmFpbGFibGVfcHJvY2Vzc29yc1tjb21tb24u
TVVYX0VYVEVOU0lPTl0gPSBNdXhFeHRlbnNpb25Qcm9jZXNzb3IKLQotCi1kZWYgZ2V0X2V4dGVu
c2lvbl9wcm9jZXNzb3IoZXh0ZW5zaW9uX3JlcXVlc3QpOgotICAgICIiIkdpdmVuIGFuIEV4dGVu
c2lvblBhcmFtZXRlciByZXByZXNlbnRpbmcgYW4gZXh0ZW5zaW9uIG9mZmVyIHJlY2VpdmVkCi0g
ICAgZnJvbSBhIGNsaWVudCwgY29uZmlndXJlcyBhbmQgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiB0
aGUgY29ycmVzcG9uZGluZwotICAgIGV4dGVuc2lvbiBwcm9jZXNzb3IgY2xhc3MuCi0gICAgIiIi
Ci0KLSAgICBwcm9jZXNzb3JfY2xhc3MgPSBfYXZhaWxhYmxlX3Byb2Nlc3NvcnMuZ2V0KGV4dGVu
c2lvbl9yZXF1ZXN0Lm5hbWUoKSkKLSAgICBpZiBwcm9jZXNzb3JfY2xhc3MgaXMgTm9uZToKLSAg
ICAgICAgcmV0dXJuIE5vbmUKLSAgICByZXR1cm4gcHJvY2Vzc29yX2NsYXNzKGV4dGVuc2lvbl9y
ZXF1ZXN0KQotCi0KLWRlZiBpc19jb21wcmVzc2lvbl9leHRlbnNpb24oZXh0ZW5zaW9uX25hbWUp
OgotICAgIHJldHVybiBleHRlbnNpb25fbmFtZSBpbiBfY29tcHJlc3Npb25fZXh0ZW5zaW9uX25h
bWVzCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNv
Y2tldC9mYXN0X21hc2tpbmcuaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5p
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZGFhZDI3ZjUzYzQ2YmUyYTcxYzcwNGM3
MDhmYmIzZjQyZjFhM2QxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pCisrKyAvZGV2L251bGwK
QEAgLTEsOTggKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0vLyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8g
bWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8v
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLSVtb2R1bGUgZmFzdF9tYXNraW5nCi0KLSVpbmNsdWRlICJjc3RyaW5nLmkiCi0K
LSV7Ci0jaW5jbHVkZSA8Y3N0cmluZz4KLQotI2lmZGVmIF9fU1NFMl9fCi0jaW5jbHVkZSA8ZW1t
aW50cmluLmg+Ci0jZW5kaWYKLSV9Ci0KLSVhcHBseSAoY2hhciAqU1RSSU5HLCBpbnQgTEVOR1RI
KSB7Ci0gICAgKGNvbnN0IGNoYXIqIHBheWxvYWQsIGludCBwYXlsb2FkX2xlbmd0aCksCi0gICAg
KGNvbnN0IGNoYXIqIG1hc2tpbmdfa2V5LCBpbnQgbWFza2luZ19rZXlfbGVuZ3RoKSB9OwotJWNz
dHJpbmdfb3V0cHV0X2FsbG9jYXRlX3NpemUoCi0gICAgY2hhcioqIHJlc3VsdCwgaW50KiByZXN1
bHRfbGVuZ3RoLCBkZWxldGUgW10gKiQxKTsKLQotJWlubGluZSAlewotCi12b2lkIG1hc2soCi0g
ICAgY29uc3QgY2hhciogcGF5bG9hZCwgaW50IHBheWxvYWRfbGVuZ3RoLAotICAgIGNvbnN0IGNo
YXIqIG1hc2tpbmdfa2V5LCBpbnQgbWFza2luZ19rZXlfbGVuZ3RoLAotICAgIGludCBtYXNraW5n
X2tleV9pbmRleCwKLSAgICBjaGFyKiogcmVzdWx0LCBpbnQqIHJlc3VsdF9sZW5ndGgpIHsKLSAg
KnJlc3VsdCA9IG5ldyBjaGFyW3BheWxvYWRfbGVuZ3RoXTsKLSAgKnJlc3VsdF9sZW5ndGggPSBw
YXlsb2FkX2xlbmd0aDsKLSAgbWVtY3B5KCpyZXN1bHQsIHBheWxvYWQsIHBheWxvYWRfbGVuZ3Ro
KTsKLQotICBjaGFyKiBjdXJzb3IgPSAqcmVzdWx0OwotICBjaGFyKiBjdXJzb3JfZW5kID0gKnJl
c3VsdCArICpyZXN1bHRfbGVuZ3RoOwotCi0jaWZkZWYgX19TU0UyX18KLSAgd2hpbGUgKChjdXJz
b3IgPCBjdXJzb3JfZW5kKSAmJgotICAgICAgICAgKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90Pihj
dXJzb3IpICYgMHhmKSkgewotICAgICpjdXJzb3IgXj0gbWFza2luZ19rZXlbbWFza2luZ19rZXlf
aW5kZXhdOwotICAgICsrY3Vyc29yOwotICAgIG1hc2tpbmdfa2V5X2luZGV4ID0gKG1hc2tpbmdf
a2V5X2luZGV4ICsgMSkgJSBtYXNraW5nX2tleV9sZW5ndGg7Ci0gIH0KLSAgaWYgKGN1cnNvciA9
PSBjdXJzb3JfZW5kKSB7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgY29uc3QgaW50IGtCbG9ja1Np
emUgPSAxNjsKLSAgX19tMTI4aSBtYXNraW5nX2tleV9ibG9jazsKLSAgZm9yIChpbnQgaSA9IDA7
IGkgPCBrQmxvY2tTaXplOyArK2kpIHsKLSAgICAqKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZt
YXNraW5nX2tleV9ibG9jaykgKyBpKSA9Ci0gICAgICAgIG1hc2tpbmdfa2V5W21hc2tpbmdfa2V5
X2luZGV4XTsKLSAgICBtYXNraW5nX2tleV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRleCArIDEp
ICUgbWFza2luZ19rZXlfbGVuZ3RoOwotICB9Ci0KLSAgd2hpbGUgKGN1cnNvciArIGtCbG9ja1Np
emUgPD0gY3Vyc29yX2VuZCkgewotICAgIF9fbTEyOGkgcGF5bG9hZF9ibG9jayA9Ci0gICAgICAg
IF9tbV9sb2FkX3NpMTI4KHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4aSo+KGN1cnNvcikpOwotICAg
IF9tbV9zdHJlYW1fc2kxMjgocmVpbnRlcnByZXRfY2FzdDxfX20xMjhpKj4oY3Vyc29yKSwKLSAg
ICAgICAgICAgICAgICAgICAgIF9tbV94b3Jfc2kxMjgocGF5bG9hZF9ibG9jaywgbWFza2luZ19r
ZXlfYmxvY2spKTsKLSAgICBjdXJzb3IgKz0ga0Jsb2NrU2l6ZTsKLSAgfQotI2VuZGlmCi0KLSAg
d2hpbGUgKGN1cnNvciA8IGN1cnNvcl9lbmQpIHsKLSAgICAqY3Vyc29yIF49IG1hc2tpbmdfa2V5
W21hc2tpbmdfa2V5X2luZGV4XTsKLSAgICArK2N1cnNvcjsKLSAgICBtYXNraW5nX2tleV9pbmRl
eCA9IChtYXNraW5nX2tleV9pbmRleCArIDEpICUgbWFza2luZ19rZXlfbGVuZ3RoOwotICB9Ci19
Ci0KLSV9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwNzI2M2E2OWZlOTUxNTZiNWYzYjM5ZDU4ODNkYjk3
NTI1OWQzNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMTEwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoK
LSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldlYlNvY2tldCBvcGVu
aW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IuIFRoaXMgY2xhc3MgdHJ5IHRvIGFwcGx5IGF2YWlsYWJs
ZQotb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29ycyBmb3IgZWFjaCBwcm90b2NvbCB2ZXJzaW9u
IHVudGlsIGEgY29ubmVjdGlvbiBpcwotc3VjY2Vzc2Z1bGx5IGVzdGFibGlzaGVkLgotIiIiCi0K
LQotaW1wb3J0IGxvZ2dpbmcKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlIGltcG9ydCBoeWJpMDAKLWZyb20gbW9kX3B5
d2Vic29ja2V0LmhhbmRzaGFrZSBpbXBvcnQgaHliaQotIyBFeHBvcnQgQWJvcnRlZEJ5VXNlckV4
Y2VwdGlvbiwgSGFuZHNoYWtlRXhjZXB0aW9uLCBhbmQgVmVyc2lvbkV4Y2VwdGlvbgotIyBzeW1i
b2wgZnJvbSB0aGlzIG1vZHVsZS4KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFz
ZSBpbXBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFu
ZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29j
a2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgVmVyc2lvbkV4Y2VwdGlvbgotCi0KLV9MT0dHRVIg
PSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi1kZWYgZG9faGFuZHNoYWtlKHJlcXVl
c3QsIGRpc3BhdGNoZXIsIGFsbG93RHJhZnQ3NT1GYWxzZSwgc3RyaWN0PUZhbHNlKToKLSAgICAi
IiJQZXJmb3JtcyBXZWJTb2NrZXQgaGFuZHNoYWtlLgotCi0gICAgQXJnczoKLSAgICAgICAgcmVx
dWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVy
IChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KLSAgICAgICAgYWxsb3dEcmFmdDc1OiBvYnNvbGV0ZSBh
cmd1bWVudC4gaWdub3JlZC4KLSAgICAgICAgc3RyaWN0OiBvYnNvbGV0ZSBhcmd1bWVudC4gaWdu
b3JlZC4KLQotICAgIEhhbmRzaGFrZXIgd2lsbCBhZGQgYXR0cmlidXRlcyBzdWNoIGFzIHdzX3Jl
c291cmNlIGluIHBlcmZvcm1pbmcKLSAgICBoYW5kc2hha2UuCi0gICAgIiIiCi0KLSAgICBfTE9H
R0VSLmRlYnVnKCdDbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hha2UgcmVzb3VyY2U6ICVyJywgcmVx
dWVzdC51cmkpCi0gICAgIyBUbyBwcmludCBtaW1ldG9vbHMuTWVzc2FnZSBhcyBlc2NhcGVkIG9u
ZS1saW5lIHN0cmluZywgd2UgY29udmVydHMKLSAgICAjIGhlYWRlcnNfaW4gdG8gZGljdCBvYmpl
Y3QuIFdpdGhvdXQgY29udmVyc2lvbiwgaWYgd2UgdXNlICVyLCBpdCBqdXN0Ci0gICAgIyBwcmlu
dHMgdGhlIHR5cGUgYW5kIGFkZHJlc3MsIGFuZCBpZiB3ZSB1c2UgJXMsIGl0IHByaW50cyB0aGUg
b3JpZ2luYWwKLSAgICAjIGhlYWRlciBzdHJpbmcgYXMgbXVsdGlwbGUgbGluZXMuCi0gICAgIwot
ICAgICMgQm90aCBtaW1ldG9vbHMuTWVzc2FnZSBhbmQgTXBUYWJsZV9UeXBlIG9mIG1vZF9weXRo
b24gY2FuIGJlCi0gICAgIyBjb252ZXJ0ZWQgdG8gZGljdC4KLSAgICAjCi0gICAgIyBtaW1ldG9v
bHMuTWVzc2FnZS5fX3N0cl9fIHJldHVybnMgdGhlIG9yaWdpbmFsIGhlYWRlciBzdHJpbmcuCi0g
ICAgIyBkaWN0KG1pbWV0b29scy5NZXNzYWdlIG9iamVjdCkgcmV0dXJucyB0aGUgbWFwIGZyb20g
aGVhZGVyIG5hbWVzIHRvCi0gICAgIyBoZWFkZXIgdmFsdWVzLiBXaGlsZSBNcFRhYmxlX1R5cGUg
ZG9lc24ndCBoYXZlIHN1Y2ggX19zdHJfXyBidXQganVzdAotICAgICMgX19yZXByX18gd2hpY2gg
Zm9ybWF0cyBpdHNlbGYgYXMgd2VsbCBhcyBkaWN0aW9uYXJ5IG9iamVjdC4KLSAgICBfTE9HR0VS
LmRlYnVnKAotICAgICAgICAnQ2xpZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlIGhlYWRlcnM6ICVy
JywgZGljdChyZXF1ZXN0LmhlYWRlcnNfaW4pKQotCi0gICAgaGFuZHNoYWtlcnMgPSBbXQotICAg
IGhhbmRzaGFrZXJzLmFwcGVuZCgKLSAgICAgICAgKCdSRkMgNjQ1NScsIGh5YmkuSGFuZHNoYWtl
cihyZXF1ZXN0LCBkaXNwYXRjaGVyKSkpCi0gICAgaGFuZHNoYWtlcnMuYXBwZW5kKAotICAgICAg
ICAoJ0h5QmkgMDAnLCBoeWJpMDAuSGFuZHNoYWtlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKSkpCi0K
LSAgICBmb3IgbmFtZSwgaGFuZHNoYWtlciBpbiBoYW5kc2hha2VyczoKLSAgICAgICAgX0xPR0dF
Ui5kZWJ1ZygnVHJ5aW5nIHByb3RvY29sIHZlcnNpb24gJXMnLCBuYW1lKQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICBfTE9H
R0VSLmluZm8oJ0VzdGFibGlzaGVkICglcyBwcm90b2NvbCknLCBuYW1lKQotICAgICAgICAgICAg
cmV0dXJuCi0gICAgICAgIGV4Y2VwdCBIYW5kc2hha2VFeGNlcHRpb24gYXMgZToKLSAgICAgICAg
ICAgIF9MT0dHRVIuZGVidWcoCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBjb21wbGV0ZSBv
cGVuaW5nIGhhbmRzaGFrZSBhcyAlcyBwcm90b2NvbDogJXInLAotICAgICAgICAgICAgICAgIG5h
bWUsIGUpCi0gICAgICAgICAgICBpZiBlLnN0YXR1czoKLSAgICAgICAgICAgICAgICByYWlzZSBl
Ci0gICAgICAgIGV4Y2VwdCBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAg
ICByYWlzZQotICAgICAgICBleGNlcHQgVmVyc2lvbkV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAg
ICAgcmFpc2UKLQotICAgICMgVE9ETyh0b3lvc2hpbSk6IEFkZCBhIHRlc3QgdG8gY292ZXIgdGhl
IGNhc2UgYWxsIGhhbmRzaGFrZXJzIGZhaWwuCi0gICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9u
KAotICAgICAgICAnRmFpbGVkIHRvIGNvbXBsZXRlIG9wZW5pbmcgaGFuZHNoYWtlIGZvciBhbGwg
YXZhaWxhYmxlIHByb3RvY29scycsCi0gICAgICAgIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNf
QkFEX1JFUVVFU1QpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9o
YW5kc2hha2UvX2Jhc2UucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhZjA1MjQy
YmZjZDZmYzk2Y2JkODgzOWIwNzAzODQ0MjRhN2UyOWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19i
YXNlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTgyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIs
IEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0j
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0KLSIiIkNvbW1vbiBmdW5jdGlvbnMgYW5kIGV4Y2VwdGlvbnMgdXNlZCBieSBXZWJTb2NrZXQg
b3BlbmluZyBoYW5kc2hha2UKLXByb2Nlc3NvcnMuCi0iIiIKLQotCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaHR0cF9oZWFk
ZXJfdXRpbAotCi0KLWNsYXNzIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAg
ICAiIiJFeGNlcHRpb24gZm9yIGFib3J0aW5nIGEgY29ubmVjdGlvbiBpbnRlbnRpb25hbGx5Lgot
Ci0gICAgSWYgdGhpcyBleGNlcHRpb24gaXMgcmFpc2VkIGluIGRvX2V4dHJhX2hhbmRzaGFrZSBo
YW5kbGVyLCB0aGUgY29ubmVjdGlvbgotICAgIHdpbGwgYmUgYWJhbmRvbmVkLiBObyBvdGhlciBX
ZWJTb2NrZXQgb3IgSFRUUChTKSBoYW5kbGVyIHdpbGwgYmUgaW52b2tlZC4KLQotICAgIElmIHRo
aXMgZXhjZXB0aW9uIGlzIHJhaXNlZCBpbiB0cmFuc2Zlcl9kYXRhX2hhbmRsZXIsIHRoZSBjb25u
ZWN0aW9uIHdpbGwKLSAgICBiZSBjbG9zZWQgd2l0aG91dCBjbG9zaW5nIGhhbmRzaGFrZS4gTm8g
b3RoZXIgV2ViU29ja2V0IG9yIEhUVFAoUykgaGFuZGxlcgotICAgIHdpbGwgYmUgaW52b2tlZC4K
LSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBIYW5kc2hha2VFeGNlcHRpb24oRXhjZXB0
aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIGFuIGVycm9y
IG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcKLSAgICBXZWJTb2NrZXQgaW5pdGlhbCBoYW5kc2hh
a2UuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc3RhdHVzPU5vbmUp
OgotICAgICAgICBzdXBlcihIYW5kc2hha2VFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUp
Ci0gICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCi0KLQotY2xhc3MgVmVyc2lvbkV4Y2VwdGlv
bihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4g
YSB2ZXJzaW9uIG9mIGNsaWVudCByZXF1ZXN0IGRvZXMgbm90Ci0gICAgbWF0Y2ggd2l0aCB2ZXJz
aW9uIHRoZSBzZXJ2ZXIgc3VwcG9ydHMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbmFtZSwgc3VwcG9ydGVkX3ZlcnNpb25zPScnKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFu
IGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBzdXBwb3J0ZWRfdmVyc2lv
bjogYSBzdHIgb2JqZWN0IHRvIHNob3cgc3VwcG9ydGVkIGh5YmkgdmVyc2lvbnMuCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGUuZy4gJzgsIDEzJykKLSAgICAgICAgIiIiCi0gICAg
ICAgIHN1cGVyKFZlcnNpb25FeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCi0gICAgICAg
IHNlbGYuc3VwcG9ydGVkX3ZlcnNpb25zID0gc3VwcG9ydGVkX3ZlcnNpb25zCi0KLQotZGVmIGdl
dF9kZWZhdWx0X3BvcnQoaXNfc2VjdXJlKToKLSAgICBpZiBpc19zZWN1cmU6Ci0gICAgICAgIHJl
dHVybiBjb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1NFQ1VSRV9QT1JUCi0gICAgZWxzZToKLSAg
ICAgICAgcmV0dXJuIGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVAotCi0KLWRlZiB2YWxp
ZGF0ZV9zdWJwcm90b2NvbChzdWJwcm90b2NvbCk6Ci0gICAgIiIiVmFsaWRhdGUgYSB2YWx1ZSBp
biB0aGUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBmaWVsZC4KLQotICAgIFNlZSB0aGUgU2VjdGlv
biA0LjEuLCA0LjIuMi4sIGFuZCA0LjMuIG9mIFJGQyA2NDU1LgotICAgICIiIgotCi0gICAgaWYg
bm90IHN1YnByb3RvY29sOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFs
aWQgc3VicHJvdG9jb2wgbmFtZTogZW1wdHknKQotCi0gICAgIyBQYXJhbWV0ZXIgc2hvdWxkIGJl
IGVuY29kZWQgSFRUUCB0b2tlbi4KLSAgICBzdGF0ZSA9IGh0dHBfaGVhZGVyX3V0aWwuUGFyc2lu
Z1N0YXRlKHN1YnByb3RvY29sKQotICAgIHRva2VuID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1l
X3Rva2VuKHN0YXRlKQotICAgIHJlc3QgPSBodHRwX2hlYWRlcl91dGlsLnBlZWsoc3RhdGUpCi0g
ICAgIyBJZiB8cmVzdHwgaXMgbm90IE5vbmUsIHxzdWJwcm90b2NvbHwgaXMgbm90IG9uZSB0b2tl
biBvciBpbnZhbGlkLiBJZgotICAgICMgfHJlc3R8IGlzIE5vbmUsIHx0b2tlbnwgbXVzdCBub3Qg
YmUgTm9uZSBiZWNhdXNlIHxzdWJwcm90b2NvbHwgaXMKLSAgICAjIGNvbmNhdGVuYXRpb24gb2Yg
fHRva2VufCBhbmQgfHJlc3R8IGFuZCBpcyBub3QgTm9uZS4KLSAgICBpZiByZXN0IGlzIG5vdCBO
b25lOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFsaWQgbm9uLXRva2Vu
IHN0cmluZyBpbiBzdWJwcm90b2NvbCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnbmFtZTogJXInICUgcmVzdCkKLQotCi1kZWYgcGFyc2VfaG9zdF9oZWFkZXIocmVxdWVzdCk6
Ci0gICAgZmllbGRzID0gcmVxdWVzdC5oZWFkZXJzX2luW2NvbW1vbi5IT1NUX0hFQURFUl0uc3Bs
aXQoJzonLCAxKQotICAgIGlmIGxlbihmaWVsZHMpID09IDE6Ci0gICAgICAgIHJldHVybiBmaWVs
ZHNbMF0sIGdldF9kZWZhdWx0X3BvcnQocmVxdWVzdC5pc19odHRwcygpKQotICAgIHRyeToKLSAg
ICAgICAgcmV0dXJuIGZpZWxkc1swXSwgaW50KGZpZWxkc1sxXSkKLSAgICBleGNlcHQgVmFsdWVF
cnJvciBhcyBlOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFsaWQgcG9y
dCBudW1iZXIgZm9ybWF0OiAlcicgJSBlKQotCi0KLWRlZiBmb3JtYXRfaGVhZGVyKG5hbWUsIHZh
bHVlKToKLSAgICByZXR1cm4gJyVzOiAlc1xyXG4nICUgKG5hbWUsIHZhbHVlKQotCi0KLWRlZiBn
ZXRfbWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXkpOgotICAgIHZhbHVlID0gcmVxdWVzdC5o
ZWFkZXJzX2luLmdldChrZXkpCi0gICAgaWYgdmFsdWUgaXMgTm9uZToKLSAgICAgICAgcmFpc2Ug
SGFuZHNoYWtlRXhjZXB0aW9uKCdIZWFkZXIgJXMgaXMgbm90IGRlZmluZWQnICUga2V5KQotICAg
IHJldHVybiB2YWx1ZQotCi0KLWRlZiB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKHJlcXVlc3Qs
IGtleSwgZXhwZWN0ZWRfdmFsdWUsIGZhaWxfc3RhdHVzPU5vbmUpOgotICAgIHZhbHVlID0gZ2V0
X21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5KQotCi0gICAgaWYgdmFsdWUubG93ZXIoKSAh
PSBleHBlY3RlZF92YWx1ZS5sb3dlcigpOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRp
b24oCi0gICAgICAgICAgICAnRXhwZWN0ZWQgJXIgZm9yIGhlYWRlciAlcyBidXQgZm91bmQgJXIg
KGNhc2UtaW5zZW5zaXRpdmUpJyAlCi0gICAgICAgICAgICAoZXhwZWN0ZWRfdmFsdWUsIGtleSwg
dmFsdWUpLCBzdGF0dXM9ZmFpbF9zdGF0dXMpCi0KLQotZGVmIGNoZWNrX3JlcXVlc3RfbGluZShy
ZXF1ZXN0KToKLSAgICAjIDUuMSAxLiBUaGUgdGhyZWUgY2hhcmFjdGVyIFVURi04IHN0cmluZyAi
R0VUIi4KLSAgICAjIDUuMSAyLiBBIFVURi04LWVuY29kZWQgVSswMDIwIFNQQUNFIGNoYXJhY3Rl
ciAoMHgyMCBieXRlKS4KLSAgICBpZiByZXF1ZXN0Lm1ldGhvZCAhPSAnR0VUJzoKLSAgICAgICAg
cmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdNZXRob2QgaXMgbm90IEdFVDogJXInICUgcmVxdWVz
dC5tZXRob2QpCi0KLSAgICBpZiByZXF1ZXN0LnByb3RvY29sICE9ICdIVFRQLzEuMSc6Ci0gICAg
ICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignVmVyc2lvbiBpcyBub3QgSFRUUC8xLjE6ICVy
JyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnByb3RvY29sKQot
Ci0KLWRlZiBwYXJzZV90b2tlbl9saXN0KGRhdGEpOgotICAgICIiIlBhcnNlcyBhIGhlYWRlciB2
YWx1ZSB3aGljaCBmb2xsb3dzIDEjdG9rZW4gYW5kIHJldHVybnMgcGFyc2VkIGVsZW1lbnRzCi0g
ICAgYXMgYSBsaXN0IG9mIHN0cmluZ3MuCi0KLSAgICBMZWFkaW5nIExXU2VzIG11c3QgYmUgdHJp
bW1lZC4KLSAgICAiIiIKLQotICAgIHN0YXRlID0gaHR0cF9oZWFkZXJfdXRpbC5QYXJzaW5nU3Rh
dGUoZGF0YSkKLQotICAgIHRva2VuX2xpc3QgPSBbXQotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAg
ICAgdG9rZW4gPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCi0gICAgICAg
IGlmIHRva2VuIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdG9rZW5fbGlzdC5hcHBlbmQodG9r
ZW4pCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0g
ICAgICAgIGlmIGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkgaXMgTm9uZToKLSAgICAgICAg
ICAgIGJyZWFrCi0KLSAgICAgICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJp
bmcoc3RhdGUsICcsJyk6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ0V4cGVjdGVkIGEgY29tbWEgYnV0IGZvdW5kICVyJyAlIGh0dHBfaGVh
ZGVyX3V0aWwucGVlayhzdGF0ZSkpCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1l
X2x3c2VzKHN0YXRlKQotCi0gICAgaWYgbGVuKHRva2VuX2xpc3QpID09IDA6Ci0gICAgICAgIHJh
aXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignTm8gdmFsaWQgdG9rZW4gZm91bmQnKQotCi0gICAgcmV0
dXJuIHRva2VuX2xpc3QKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
aGFuZHNoYWtlL2h5YmkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkYmYyNWEx
ZGNjYTc3Y2Q1ODlkYmE3MDU0ZjRlNjI3MmM2ZGVhMjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5
YmkucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MjAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIHRoZSBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3Ig
Zm9yIHRoZSBXZWJTb2NrZXQKLXByb3RvY29sIChSRkMgNjQ1NSkuCi0KLVNwZWNpZmljYXRpb246
Ci1odHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU1Ci0iIiIKLQotCi0jIE5vdGU6IHJl
cXVlc3QuY29ubmVjdGlvbi53cml0ZSBpcyB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3Vn
aCBtb2RfcHl0aG9uCi0jIGRvY3VtZW50IHNheXMgdGhhdCBpdCBzaG91bGQgYmUgdXNlZCBvbmx5
IGluIGNvbm5lY3Rpb24gaGFuZGxlcnMuCi0jIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gb3Ro
ZXIgb3B0aW9ucy4gRm9yIGV4YW1wbGUsIHJlcXVlc3Qud3JpdGUgaXMgbm90Ci0jIHN1aXRhYmxl
IGJlY2F1c2UgaXQgZG9lc24ndCBhbGxvdyBkaXJlY3QgcmF3IGJ5dGVzIHdyaXRpbmcuCi0KLQot
aW1wb3J0IGJhc2U2NAotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHJlCi0KLWZy
b20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4
dGVuc2lvbnMgaW1wb3J0IGdldF9leHRlbnNpb25fcHJvY2Vzc29yCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5leHRlbnNpb25zIGltcG9ydCBpc19jb21wcmVzc2lvbl9leHRlbnNpb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgY2hlY2tfcmVxdWVzdF9saW5lCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGZvcm1hdF9oZWFkZXIK
LWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZ2V0X21hbmRhdG9y
eV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFu
ZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1w
b3J0IHBhcnNlX3Rva2VuX2xpc3QKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFz
ZSBpbXBvcnQgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
aGFuZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0ZV9zdWJwcm90b2NvbAotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBWZXJzaW9uRXhjZXB0aW9uCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
c3RyZWFtIGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
dXRpbAotCi0KLSMgVXNlZCB0byB2YWxpZGF0ZSB0aGUgdmFsdWUgaW4gdGhlIFNlYy1XZWJTb2Nr
ZXQtS2V5IGhlYWRlciBzdHJpY3RseS4gUkZDIDQ2NDgKLSMgZGlzYWxsb3dzIG5vbi16ZXJvIHBh
ZGRpbmcsIHNvIHRoZSBjaGFyYWN0ZXIgcmlnaHQgYmVmb3JlID09IG11c3QgYmUgYW55IG9mCi0j
IEEsIFEsIGcgYW5kIHcuCi1fU0VDX1dFQlNPQ0tFVF9LRVlfUkVHRVggPSByZS5jb21waWxlKCde
WysvMC05QS1aYS16XXsyMX1bQVFnd109PSQnKQotCi0jIERlZmluaW5nIGFsaWFzZXMgZm9yIHZh
bHVlcyB1c2VkIGZyZXF1ZW50bHkuCi1fVkVSU0lPTl9MQVRFU1QgPSBjb21tb24uVkVSU0lPTl9I
WUJJX0xBVEVTVAotX1ZFUlNJT05fTEFURVNUX1NUUklORyA9IHN0cihfVkVSU0lPTl9MQVRFU1Qp
Ci1fU1VQUE9SVEVEX1ZFUlNJT05TID0gWwotICAgIF9WRVJTSU9OX0xBVEVTVCwKLV0KLQotCi1k
ZWYgY29tcHV0ZV9hY2NlcHQoa2V5KToKLSAgICAiIiJDb21wdXRlcyB2YWx1ZSBmb3IgdGhlIFNl
Yy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlciBmcm9tIHZhbHVlIG9mIHRoZQotICAgIFNlYy1XZWJT
b2NrZXQtS2V5IGhlYWRlci4KLSAgICAiIiIKLQotICAgIGFjY2VwdF9iaW5hcnkgPSB1dGlsLnNo
YTFfaGFzaCgKLSAgICAgICAga2V5ICsgY29tbW9uLldFQlNPQ0tFVF9BQ0NFUFRfVVVJRCkuZGln
ZXN0KCkKLSAgICBhY2NlcHQgPSBiYXNlNjQuYjY0ZW5jb2RlKGFjY2VwdF9iaW5hcnkpCi0KLSAg
ICByZXR1cm4gKGFjY2VwdCwgYWNjZXB0X2JpbmFyeSkKLQotCi1jbGFzcyBIYW5kc2hha2VyKG9i
amVjdCk6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29j
a2V0IHByb3RvY29sIChSRkMgNjQ1NSkuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVx
dWVzdCwgZGlzcGF0Y2hlcik6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQot
ICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0Lgot
ICAgICAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlciAoZGlzcGF0Y2guRGlzcGF0Y2hlciku
Ci0KLSAgICAgICAgSGFuZHNoYWtlciB3aWxsIGFkZCBhdHRyaWJ1dGVzIHN1Y2ggYXMgd3NfcmVz
b3VyY2UgZHVyaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9n
Z2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVz
dCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5fZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXIKLQotICAg
IGRlZiBfdmFsaWRhdGVfY29ubmVjdGlvbl9oZWFkZXIoc2VsZik6Ci0gICAgICAgIGNvbm5lY3Rp
b24gPSBnZXRfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QsIGNv
bW1vbi5DT05ORUNUSU9OX0hFQURFUikKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb25u
ZWN0aW9uX3Rva2VucyA9IHBhcnNlX3Rva2VuX2xpc3QoY29ubmVjdGlvbikKLSAgICAgICAgZXhj
ZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtl
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gcGFyc2UgJXM6ICVzJyAlIChj
b21tb24uQ09OTkVDVElPTl9IRUFERVIsIGUpKQotCi0gICAgICAgIGNvbm5lY3Rpb25faXNfdmFs
aWQgPSBGYWxzZQotICAgICAgICBmb3IgdG9rZW4gaW4gY29ubmVjdGlvbl90b2tlbnM6Ci0gICAg
ICAgICAgICBpZiB0b2tlbi5sb3dlcigpID09IGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQ
RS5sb3dlcigpOgotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25faXNfdmFsaWQgPSBUcnVlCi0g
ICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgaWYgbm90IGNvbm5lY3Rpb25faXNfdmFsaWQ6
Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
JyVzIGhlYWRlciBkb2VzblwndCBjb250YWluICIlcyInICUKLSAgICAgICAgICAgICAgICAoY29t
bW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUpKQot
Ci0gICAgZGVmIGRvX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19j
bG9zZV9jb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbiA9
IE5vbmUKLQotICAgICAgICAjIFBhcnNpbmcuCi0KLSAgICAgICAgY2hlY2tfcmVxdWVzdF9saW5l
KHNlbGYuX3JlcXVlc3QpCi0KLSAgICAgICAgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKLSAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3QsCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9IRUFE
RVIsCi0gICAgICAgICAgICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSkKLQotICAgICAg
ICBzZWxmLl92YWxpZGF0ZV9jb25uZWN0aW9uX2hlYWRlcigpCi0KLSAgICAgICAgc2VsZi5fcmVx
dWVzdC53c19yZXNvdXJjZSA9IHNlbGYuX3JlcXVlc3QudXJpCi0KLSAgICAgICAgdW51c2VkX2hv
c3QgPSBnZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LCBjb21tb24uSE9TVF9IRUFE
RVIpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c192ZXJzaW9uID0gc2VsZi5fY2hlY2tfdmVy
c2lvbigpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fZ2V0X29yaWdpbigpCi0g
ICAgICAgICAgICBzZWxmLl9zZXRfcHJvdG9jb2woKQotICAgICAgICAgICAgc2VsZi5fcGFyc2Vf
ZXh0ZW5zaW9ucygpCi0KLSAgICAgICAgICAgICMgS2V5IHZhbGlkYXRpb24sIHJlc3BvbnNlIGdl
bmVyYXRpb24uCi0KLSAgICAgICAgICAgIGtleSA9IHNlbGYuX2dldF9rZXkoKQotICAgICAgICAg
ICAgKGFjY2VwdCwgYWNjZXB0X2JpbmFyeSkgPSBjb21wdXRlX2FjY2VwdChrZXkpCi0gICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgJyVzOiAlciAoJXMpJywK
LSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLAotICAg
ICAgICAgICAgICAgIGFjY2VwdCwKLSAgICAgICAgICAgICAgICB1dGlsLmhleGlmeShhY2NlcHRf
YmluYXJ5KSkKLQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdQcm90b2NvbCB2ZXJz
aW9uIGlzIFJGQyA2NDU1JykKLQotICAgICAgICAgICAgIyBTZXR1cCBleHRlbnNpb24gcHJvY2Vz
c29ycy4KLQotICAgICAgICAgICAgcHJvY2Vzc29ycyA9IFtdCi0gICAgICAgICAgICBpZiBzZWxm
Ll9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgICAgIGZvciBleHRlbnNpb25fcmVxdWVzdCBpbiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3Rl
ZF9leHRlbnNpb25zOgotICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IgPSBnZXRfZXh0ZW5z
aW9uX3Byb2Nlc3NvcihleHRlbnNpb25fcmVxdWVzdCkKLSAgICAgICAgICAgICAgICAgICAgIyBV
bmtub3duIGV4dGVuc2lvbiByZXF1ZXN0cyBhcmUganVzdCBpZ25vcmVkLgotICAgICAgICAgICAg
ICAgICAgICBpZiBwcm9jZXNzb3IgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBwcm9jZXNzb3JzLmFwcGVuZChwcm9jZXNzb3IpCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gcHJvY2Vzc29ycwotCi0gICAgICAgICAgICAjIExp
c3Qgb2YgZXh0cmEgaGVhZGVycy4gVGhlIGV4dHJhIGhhbmRzaGFrZSBoYW5kbGVyIG1heSBhZGQg
aGVhZGVyCi0gICAgICAgICAgICAjIGRhdGEgYXMgbmFtZS92YWx1ZSBwYWlycyB0byB0aGlzIGxp
c3QgYW5kIHB5d2Vic29ja2V0IGFwcGVuZHMKLSAgICAgICAgICAgICMgdGhlbSB0byB0aGUgV2Vi
U29ja2V0IGhhbmRzaGFrZS4KLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuZXh0cmFfaGVhZGVy
cyA9IFtdCi0KLSAgICAgICAgICAgICMgRXh0cmEgaGFuZHNoYWtlIGhhbmRsZXIgbWF5IG1vZGlm
eS9yZW1vdmUgcHJvY2Vzc29ycy4KLSAgICAgICAgICAgIHNlbGYuX2Rpc3BhdGNoZXIuZG9fZXh0
cmFfaGFuZHNoYWtlKHNlbGYuX3JlcXVlc3QpCi0gICAgICAgICAgICBwcm9jZXNzb3JzID0gZmls
dGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3NvciBpcyBub3QgTm9uZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29y
cykKLQotICAgICAgICAgICAgIyBBc2sgZWFjaCBwcm9jZXNzb3IgaWYgdGhlcmUgYXJlIGV4dGVu
c2lvbnMgb24gdGhlIHJlcXVlc3Qgd2hpY2gKLSAgICAgICAgICAgICMgY2Fubm90IGNvLWV4aXN0
LiBXaGVuIHByb2Nlc3NvciBkZWNpZGVkIG90aGVyIHByb2Nlc3NvcnMgY2Fubm90Ci0gICAgICAg
ICAgICAjIGNvLWV4aXN0IHdpdGggaXQsIHRoZSBwcm9jZXNzb3IgbWFya3MgdGhlbSAob3IgaXRz
ZWxmKSBhcwotICAgICAgICAgICAgIyAiaW5hY3RpdmUiLiBUaGUgZmlyc3QgZXh0ZW5zaW9uIHBy
b2Nlc3NvciBoYXMgdGhlIHJpZ2h0IHRvCi0gICAgICAgICAgICAjIG1ha2UgdGhlIGZpbmFsIGNh
bGwuCi0gICAgICAgICAgICBmb3IgcHJvY2Vzc29yIGluIHJldmVyc2VkKHByb2Nlc3NvcnMpOgot
ICAgICAgICAgICAgICAgIGlmIHByb2Nlc3Nvci5pc19hY3RpdmUoKToKLSAgICAgICAgICAgICAg
ICAgICAgcHJvY2Vzc29yLmNoZWNrX2NvbnNpc3RlbmN5X3dpdGhfb3RoZXJfcHJvY2Vzc29ycygK
LSAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMpCi0gICAgICAgICAgICBwcm9jZXNz
b3JzID0gZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3Nvci5pc19hY3RpdmUoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29ycykKLQotICAgICAgICAgICAg
YWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IFtdCi0KLSAgICAgICAgICAgICMgV2UgbmVlZCB0byB0YWtl
IGludG8gYWNjb3VudCBvZiBtdXggZXh0ZW5zaW9uIGhlcmUuCi0gICAgICAgICAgICAjIElmIG11
eCBleHRlbnNpb24gZXhpc3RzOgotICAgICAgICAgICAgIyAtIFJlbW92ZSBwcm9jZXNzb3JzIG9m
IGV4dGVuc2lvbnMgZm9yIGxvZ2ljYWwgY2hhbm5lbCwKLSAgICAgICAgICAgICMgICB3aGljaCBh
cmUgcHJvY2Vzc29ycyBsb2NhdGVkIGJlZm9yZSB0aGUgbXV4IHByb2Nlc3NvcgotICAgICAgICAg
ICAgIyAtIFBhc3MgZXh0ZW5zaW9uIHJlcXVlc3RzIGZvciBsb2dpY2FsIGNoYW5uZWwgdG8gbXV4
IHByb2Nlc3NvcgotICAgICAgICAgICAgIyAtIEF0dGFjaCB0aGUgbXV4IHByb2Nlc3NvciB0byB0
aGUgcmVxdWVzdC4gSXQgd2lsbCBiZSByZWZlcnJlZAotICAgICAgICAgICAgIyAgIGJ5IGRpc3Bh
dGNoZXIgdG8gc2VlIHdoZXRoZXIgdGhlIGRpc3BhdGNoZXIgc2hvdWxkIHVzZSBtdXgKLSAgICAg
ICAgICAgICMgICBoYW5kbGVyIG9yIG5vdC4KLSAgICAgICAgICAgIG11eF9pbmRleCA9IC0xCi0g
ICAgICAgICAgICBmb3IgaSwgcHJvY2Vzc29yIGluIGVudW1lcmF0ZShwcm9jZXNzb3JzKToKLSAg
ICAgICAgICAgICAgICBpZiBwcm9jZXNzb3IubmFtZSgpID09IGNvbW1vbi5NVVhfRVhURU5TSU9O
OgotICAgICAgICAgICAgICAgICAgICBtdXhfaW5kZXggPSBpCi0gICAgICAgICAgICAgICAgICAg
IGJyZWFrCi0gICAgICAgICAgICBpZiBtdXhfaW5kZXggPj0gMDoKLSAgICAgICAgICAgICAgICBs
b2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucyA9IFtdCi0gICAgICAgICAgICAgICAgZm9yIHByb2Nl
c3NvciBpbiBwcm9jZXNzb3JzWzptdXhfaW5kZXhdOgotICAgICAgICAgICAgICAgICAgICBsb2dp
Y2FsX2NoYW5uZWxfZXh0ZW5zaW9ucy5hcHBlbmQocHJvY2Vzc29yLnJlcXVlc3QoKSkKLSAgICAg
ICAgICAgICAgICAgICAgcHJvY2Vzc29yLnNldF9hY3RpdmUoRmFsc2UpCi0gICAgICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC5tdXhfcHJvY2Vzc29yID0gcHJvY2Vzc29yc1ttdXhfaW5kZXhdCi0g
ICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnNldF9leHRlbnNpb25z
KAotICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucykKLSAgICAg
ICAgICAgICAgICBwcm9jZXNzb3JzID0gZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3Nv
ci5pc19hY3RpdmUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nl
c3NvcnMpCi0KLSAgICAgICAgICAgIHN0cmVhbV9vcHRpb25zID0gU3RyZWFtT3B0aW9ucygpCi0K
LSAgICAgICAgICAgIGZvciBpbmRleCwgcHJvY2Vzc29yIGluIGVudW1lcmF0ZShwcm9jZXNzb3Jz
KToKLSAgICAgICAgICAgICAgICBpZiBub3QgcHJvY2Vzc29yLmlzX2FjdGl2ZSgpOgotICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9uX3Jlc3Bv
bnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICAgICAgICAg
IGlmIGV4dGVuc2lvbl9yZXNwb25zZSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICAjIFJl
amVjdGVkLgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAg
YWNjZXB0ZWRfZXh0ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uX3Jlc3BvbnNlKQotCi0gICAgICAg
ICAgICAgICAgcHJvY2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb25zKQot
Ci0gICAgICAgICAgICAgICAgaWYgbm90IGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbihwcm9jZXNz
b3IubmFtZSgpKToKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAg
ICAgICMgSW5hY3RpdmF0ZSBhbGwgb2YgdGhlIGZvbGxvd2luZyBjb21wcmVzc2lvbiBleHRlbnNp
b25zLgotICAgICAgICAgICAgICAgIGZvciBqIGluIHhyYW5nZShpbmRleCArIDEsIGxlbihwcm9j
ZXNzb3JzKSk6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGlzX2NvbXByZXNzaW9uX2V4dGVuc2lv
bihwcm9jZXNzb3JzW2pdLm5hbWUoKSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNz
b3JzW2pdLnNldF9hY3RpdmUoRmFsc2UpCi0KLSAgICAgICAgICAgIGlmIGxlbihhY2NlcHRlZF9l
eHRlbnNpb25zKSA+IDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNp
b25zID0gYWNjZXB0ZWRfZXh0ZW5zaW9ucwotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgJ0V4dGVuc2lvbnMgYWNjZXB0ZWQ6ICVyJywKLSAg
ICAgICAgICAgICAgICAgICAgbWFwKGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIubmFtZSwgYWNj
ZXB0ZWRfZXh0ZW5zaW9ucykpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNl
bGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyA9IE5vbmUKLQotICAgICAgICAgICAgc2VsZi5fcmVx
dWVzdC53c19zdHJlYW0gPSBzZWxmLl9jcmVhdGVfc3RyZWFtKHN0cmVhbV9vcHRpb25zKQotCi0g
ICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBO
b25lOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnZG9fZXh0cmFfaGFuZHNoYWtlIG11c3QgY2hvb3NlIG9uZSBz
dWJwcm90b2NvbCBmcm9tICcKLSAgICAgICAgICAgICAgICAgICAgICAgICd3c19yZXF1ZXN0ZWRf
cHJvdG9jb2xzIGFuZCBzZXQgaXQgdG8gd3NfcHJvdG9jb2wnKQotICAgICAgICAgICAgICAgIHZh
bGlkYXRlX3N1YnByb3RvY29sKHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICdTdWJwcm90
b2NvbCBhY2NlcHRlZDogJXInLAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lndz
X3Byb3RvY29sKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9y
ZXF1ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICByYWlz
ZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAnd3NfcHJvdG9j
b2wgbXVzdCBiZSBOb25lIHdoZW4gdGhlIGNsaWVudCBkaWRuXCd0ICcKLSAgICAgICAgICAgICAg
ICAgICAgICAgICdyZXF1ZXN0IGFueSBzdWJwcm90b2NvbCcpCi0KLSAgICAgICAgICAgIHNlbGYu
X3NlbmRfaGFuZHNoYWtlKGFjY2VwdCkKLSAgICAgICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlv
biBhcyBlOgotICAgICAgICAgICAgaWYgbm90IGUuc3RhdHVzOgotICAgICAgICAgICAgICAgICMg
RmFsbGJhY2sgdG8gNDAwIGJhZCByZXF1ZXN0IGJ5IGRlZmF1bHQuCi0gICAgICAgICAgICAgICAg
ZS5zdGF0dXMgPSBjb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QKLSAgICAgICAgICAgIHJh
aXNlIGUKLQotICAgIGRlZiBfZ2V0X29yaWdpbihzZWxmKToKLSAgICAgICAgb3JpZ2luX2hlYWRl
ciA9IGNvbW1vbi5PUklHSU5fSEVBREVSCi0gICAgICAgIG9yaWdpbiA9IHNlbGYuX3JlcXVlc3Qu
aGVhZGVyc19pbi5nZXQob3JpZ2luX2hlYWRlcikKLSAgICAgICAgaWYgb3JpZ2luIGlzIE5vbmU6
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NsaWVudCByZXF1ZXN0IGRvZXMgbm90
IGhhdmUgb3JpZ2luIGhlYWRlcicpCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nfb3JpZ2luID0g
b3JpZ2luCi0KLSAgICBkZWYgX2NoZWNrX3ZlcnNpb24oc2VsZik6Ci0gICAgICAgIHZlcnNpb24g
PSBnZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIp
Ci0gICAgICAgIGlmIHZlcnNpb24gPT0gX1ZFUlNJT05fTEFURVNUX1NUUklORzoKLSAgICAgICAg
ICAgIHJldHVybiBfVkVSU0lPTl9MQVRFU1QKLQotICAgICAgICBpZiB2ZXJzaW9uLmZpbmQoJywn
KSA+PSAwOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICdNdWx0aXBsZSB2ZXJzaW9ucyAoJXIpIGFyZSBub3QgYWxsb3dlZCBmb3IgaGVhZGVy
ICVzJyAlCi0gICAgICAgICAgICAgICAgKHZlcnNpb24sIGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZF
UlNJT05fSEVBREVSKSwKLSAgICAgICAgICAgICAgICBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVT
X0JBRF9SRVFVRVNUKQotICAgICAgICByYWlzZSBWZXJzaW9uRXhjZXB0aW9uKAotICAgICAgICAg
ICAgJ1Vuc3VwcG9ydGVkIHZlcnNpb24gJXIgZm9yIGhlYWRlciAlcycgJQotICAgICAgICAgICAg
KHZlcnNpb24sIGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSKSwKLSAgICAgICAg
ICAgIHN1cHBvcnRlZF92ZXJzaW9ucz0nLCAnLmpvaW4obWFwKHN0ciwgX1NVUFBPUlRFRF9WRVJT
SU9OUykpKQotCi0gICAgZGVmIF9zZXRfcHJvdG9jb2woc2VsZik6Ci0gICAgICAgIHNlbGYuX3Jl
cXVlc3Qud3NfcHJvdG9jb2wgPSBOb25lCi0KLSAgICAgICAgcHJvdG9jb2xfaGVhZGVyID0gc2Vs
Zi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldCgKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09D
S0VUX1BST1RPQ09MX0hFQURFUikKLQotICAgICAgICBpZiBwcm90b2NvbF9oZWFkZXIgaXMgTm9u
ZToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scyA9IE5v
bmUKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVz
dGVkX3Byb3RvY29scyA9IHBhcnNlX3Rva2VuX2xpc3QoCi0gICAgICAgICAgICBwcm90b2NvbF9o
ZWFkZXIpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3VicHJvdG9jb2xzIHJlcXVlc3Rl
ZDogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1
ZXN0ZWRfcHJvdG9jb2xzKQotCi0gICAgZGVmIF9wYXJzZV9leHRlbnNpb25zKHNlbGYpOgotICAg
ICAgICBleHRlbnNpb25zX2hlYWRlciA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoCi0g
ICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUikKLSAgICAg
ICAgaWYgbm90IGV4dGVuc2lvbnNfaGVhZGVyOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53
c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucyA9IE5vbmUKLSAgICAgICAgICAgIHJldHVybgotCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lv
bnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICAgICBleHRlbnNpb25z
X2hlYWRlcikKLSAgICAgICAgZXhjZXB0IGNvbW1vbi5FeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9u
IGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ0ZhaWxlZCB0byBwYXJzZSBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyOiAl
cicgJSBlKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdFeHRl
bnNpb25zIHJlcXVlc3RlZDogJXInLAotICAgICAgICAgICAgbWFwKGNvbW1vbi5FeHRlbnNpb25Q
YXJhbWV0ZXIubmFtZSwKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3Rl
ZF9leHRlbnNpb25zKSkKLQotICAgIGRlZiBfdmFsaWRhdGVfa2V5KHNlbGYsIGtleSk6Ci0gICAg
ICAgIGlmIGtleS5maW5kKCcsJykgPj0gMDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4
Y2VwdGlvbignUmVxdWVzdCBoYXMgbXVsdGlwbGUgJXMgaGVhZGVyIGxpbmVzIG9yICcKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0
ZXIgXCcsXCc6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bW1vbi5TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIsIGtleSkpCi0KLSAgICAgICAgIyBWYWxpZGF0
ZQotICAgICAgICBrZXlfaXNfdmFsaWQgPSBGYWxzZQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICAjIFZhbGlkYXRlIGtleSBieSBxdWljayByZWdleCBtYXRjaCBiZWZvcmUgcGFyc2luZyBieSBi
YXNlNjQKLSAgICAgICAgICAgICMgbW9kdWxlLiBCZWNhdXNlIGJhc2U2NCBtb2R1bGUgc2tpcHMg
aW52YWxpZCBjaGFyYWN0ZXJzLCB3ZSBoYXZlCi0gICAgICAgICAgICAjIHRvIGRvIHRoaXMgaW4g
YWR2YW5jZSB0byBtYWtlIHRoaXMgc2VydmVyIHN0cmljdGx5IHJlamVjdCBpbGxlZ2FsCi0gICAg
ICAgICAgICAjIGtleXMuCi0gICAgICAgICAgICBpZiBfU0VDX1dFQlNPQ0tFVF9LRVlfUkVHRVgu
bWF0Y2goa2V5KToKLSAgICAgICAgICAgICAgICBkZWNvZGVkX2tleSA9IGJhc2U2NC5iNjRkZWNv
ZGUoa2V5KQotICAgICAgICAgICAgICAgIGlmIGxlbihkZWNvZGVkX2tleSkgPT0gMTY6Ci0gICAg
ICAgICAgICAgICAgICAgIGtleV9pc192YWxpZCA9IFRydWUKLSAgICAgICAgZXhjZXB0IFR5cGVF
cnJvciBhcyBlOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIGlmIG5vdCBrZXlfaXNfdmFs
aWQ6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgJ0lsbGVnYWwgdmFsdWUgZm9yIGhlYWRlciAlczogJXInICUKLSAgICAgICAgICAgICAgICAo
Y29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwga2V5KSkKLQotICAgICAgICByZXR1cm4g
ZGVjb2RlZF9rZXkKLQotICAgIGRlZiBfZ2V0X2tleShzZWxmKToKLSAgICAgICAga2V5ID0gZ2V0
X21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LCBjb21tb24uU0VD
X1dFQlNPQ0tFVF9LRVlfSEVBREVSKQotCi0gICAgICAgIGRlY29kZWRfa2V5ID0gc2VsZi5fdmFs
aWRhdGVfa2V5KGtleSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAg
ICAnJXM6ICVyICglcyknLAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hF
QURFUiwKLSAgICAgICAgICAgIGtleSwKLSAgICAgICAgICAgIHV0aWwuaGV4aWZ5KGRlY29kZWRf
a2V5KSkKLQotICAgICAgICByZXR1cm4ga2V5Ci0KLSAgICBkZWYgX2NyZWF0ZV9zdHJlYW0oc2Vs
Ziwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICByZXR1cm4gU3RyZWFtKHNlbGYuX3JlcXVlc3Qs
IHN0cmVhbV9vcHRpb25zKQotCi0gICAgZGVmIF9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlKHNl
bGYsIGFjY2VwdCk6Ci0gICAgICAgIHJlc3BvbnNlID0gW10KLQotICAgICAgICByZXNwb25zZS5h
cHBlbmQoJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicpCi0KLSAgICAgICAg
IyBXZWJTb2NrZXQgaGVhZGVycwotICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRl
cigKLSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9V
UEdSQURFX1RZUEUpKQotICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAg
ICAgICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVD
VElPTl9UWVBFKSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAg
ICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLCBhY2NlcHQpKQotICAg
ICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICAgICAgY29tbW9u
LlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSLAotICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3Qud3NfcHJvdG9jb2wpKQotICAgICAgICBpZiAoc2VsZi5fcmVxdWVzdC53c19leHRlbnNp
b25zIGlzIG5vdCBOb25lIGFuZAotICAgICAgICAgICAgbGVuKHNlbGYuX3JlcXVlc3Qud3NfZXh0
ZW5zaW9ucykgIT0gMCk6Ci0gICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRl
cigKLSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURF
UiwKLSAgICAgICAgICAgICAgICBjb21tb24uZm9ybWF0X2V4dGVuc2lvbnMoc2VsZi5fcmVxdWVz
dC53c19leHRlbnNpb25zKSkpCi0KLSAgICAgICAgIyBIZWFkZXJzIG5vdCBzcGVjaWZpYyBmb3Ig
V2ViU29ja2V0Ci0gICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLl9yZXF1ZXN0LmV4dHJh
X2hlYWRlcnM6Ci0gICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcihuYW1l
LCB2YWx1ZSkpCi0KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdcclxuJykKLQotICAgICAgICBy
ZXR1cm4gJycuam9pbihyZXNwb25zZSkKLQotICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZiwg
YWNjZXB0KToKLSAgICAgICAgcmF3X3Jlc3BvbnNlID0gc2VsZi5fY3JlYXRlX2hhbmRzaGFrZV9y
ZXNwb25zZShhY2NlcHQpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShy
YXdfcmVzcG9uc2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VudCBzZXJ2ZXJcJ3Mg
b3BlbmluZyBoYW5kc2hha2U6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd19y
ZXNwb25zZSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpMDAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5k
c2hha2UvaHliaTAwLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzU3NzE3YTYz
OWJhYzNkYjA1ZDRjYjMwMjdlMDU1ZmRiZjdmM2NmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJp
MDAucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyOTMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIHRoZSBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3Ig
Zm9yIHRoZSBXZWJTb2NrZXQKLXByb3RvY29sIHZlcnNpb24gSHlCaSAwMC4KLQotU3BlY2lmaWNh
dGlvbjoKLWh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaHliaS10aGV3ZWJz
b2NrZXRwcm90b2NvbC0wMAotIiIiCi0KLQotIyBOb3RlOiByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dGUvcmVhZCBhcmUgdXNlZCBpbiB0aGlzIG1vZHVsZSwgZXZlbiB0aG91Z2gKLSMgbW9kX3B5dGhv
biBkb2N1bWVudCBzYXlzIHRoYXQgdGhleSBzaG91bGQgYmUgdXNlZCBvbmx5IGluIGNvbm5lY3Rp
b24KLSMgaGFuZGxlcnMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9ucy4g
Rm9yIGV4YW1wbGUsCi0jIHJlcXVlc3Qud3JpdGUvcmVhZCBhcmUgbm90IHN1aXRhYmxlIGJlY2F1
c2UgdGhleSBkb24ndCBhbGxvdyBkaXJlY3QgcmF3IGJ5dGVzCi0jIHdyaXRpbmcvcmVhZGluZy4K
LQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IHJlCi1pbXBvcnQgc3RydWN0Ci0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBp
bXBvcnQgU3RyZWFtSGl4aWU3NQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZy
b20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0
aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGNoZWNrX3Jl
cXVlc3RfbGluZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBm
b3JtYXRfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0
IGdldF9kZWZhdWx0X3BvcnQKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBp
bXBvcnQgZ2V0X21hbmRhdG9yeV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFr
ZS5fYmFzZSBpbXBvcnQgcGFyc2VfaG9zdF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0Lmhh
bmRzaGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcgotCi0KLV9NQU5E
QVRPUllfSEVBREVSUyA9IFsKLSAgICAjIGtleSwgZXhwZWN0ZWQgdmFsdWUgb3IgTm9uZQotICAg
IFtjb21tb24uVVBHUkFERV9IRUFERVIsIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFX0hJ
WElFNzVdLAotICAgIFtjb21tb24uQ09OTkVDVElPTl9IRUFERVIsIGNvbW1vbi5VUEdSQURFX0NP
Tk5FQ1RJT05fVFlQRV0sCi1dCi0KLQotZGVmIF92YWxpZGF0ZV9zdWJwcm90b2NvbChzdWJwcm90
b2NvbCk6Ci0gICAgIiIiQ2hlY2tzIGlmIGNoYXJhY3RlcnMgaW4gc3VicHJvdG9jb2wgYXJlIGlu
IHJhbmdlIGJldHdlZW4gVSswMDIwIGFuZAotICAgIFUrMDA3RS4gQSB2YWx1ZSBpbiB0aGUgU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbCBmaWVsZCBuZWVkIHRvIHNhdGlzZnkgdGhpcwotICAgIHJlcXVp
cmVtZW50LgotCi0gICAgU2VlIHRoZSBTZWN0aW9uIDQuMS4gT3BlbmluZyBoYW5kc2hha2Ugb2Yg
dGhlIHNwZWMuCi0gICAgIiIiCi0KLSAgICBpZiBub3Qgc3VicHJvdG9jb2w6Ci0gICAgICAgIHJh
aXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSW52YWxpZCBzdWJwcm90b2NvbCBuYW1lOiBlbXB0eScp
Ci0KLSAgICAjIFBhcmFtZXRlciBzaG91bGQgYmUgaW4gdGhlIHJhbmdlIFUrMDAyMCB0byBVKzAw
N0UuCi0gICAgZm9yIGMgaW4gc3VicHJvdG9jb2w6Ci0gICAgICAgIGlmIG5vdCAweDIwIDw9IG9y
ZChjKSA8PSAweDdlOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICdJbGxlZ2FsIGNoYXJhY3RlciBpbiBzdWJwcm90b2NvbCBuYW1lOiAlcicg
JSBjKQotCi0KLWRlZiBfY2hlY2tfaGVhZGVyX2xpbmVzKHJlcXVlc3QsIG1hbmRhdG9yeV9oZWFk
ZXJzKToKLSAgICBjaGVja19yZXF1ZXN0X2xpbmUocmVxdWVzdCkKLQotICAgICMgVGhlIGV4cGVj
dGVkIGZpZWxkIG5hbWVzLCBhbmQgdGhlIG1lYW5pbmcgb2YgdGhlaXIgY29ycmVzcG9uZGluZwot
ICAgICMgdmFsdWVzLCBhcmUgYXMgZm9sbG93cy4KLSAgICAjICB8VXBncmFkZXwgYW5kIHxDb25u
ZWN0aW9ufAotICAgIGZvciBrZXksIGV4cGVjdGVkX3ZhbHVlIGluIG1hbmRhdG9yeV9oZWFkZXJz
OgotICAgICAgICB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKHJlcXVlc3QsIGtleSwgZXhwZWN0
ZWRfdmFsdWUpCi0KLQotZGVmIF9idWlsZF9sb2NhdGlvbihyZXF1ZXN0KToKLSAgICAiIiJCdWls
ZCBXZWJTb2NrZXQgbG9jYXRpb24gZm9yIHJlcXVlc3QuIiIiCi0KLSAgICBsb2NhdGlvbl9wYXJ0
cyA9IFtdCi0gICAgaWYgcmVxdWVzdC5pc19odHRwcygpOgotICAgICAgICBsb2NhdGlvbl9wYXJ0
cy5hcHBlbmQoY29tbW9uLldFQl9TT0NLRVRfU0VDVVJFX1NDSEVNRSkKLSAgICBlbHNlOgotICAg
ICAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQoY29tbW9uLldFQl9TT0NLRVRfU0NIRU1FKQotICAg
IGxvY2F0aW9uX3BhcnRzLmFwcGVuZCgnOi8vJykKLSAgICBob3N0LCBwb3J0ID0gcGFyc2VfaG9z
dF9oZWFkZXIocmVxdWVzdCkKLSAgICBjb25uZWN0aW9uX3BvcnQgPSByZXF1ZXN0LmNvbm5lY3Rp
b24ubG9jYWxfYWRkclsxXQotICAgIGlmIHBvcnQgIT0gY29ubmVjdGlvbl9wb3J0OgotICAgICAg
ICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0hlYWRlci9jb25uZWN0aW9uIHBvcnQgbWlzbWF0
Y2g6ICVkLyVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9ydCwgY29u
bmVjdGlvbl9wb3J0KSkKLSAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQoaG9zdCkKLSAgICBpZiAo
cG9ydCAhPSBnZXRfZGVmYXVsdF9wb3J0KHJlcXVlc3QuaXNfaHR0cHMoKSkpOgotICAgICAgICBs
b2NhdGlvbl9wYXJ0cy5hcHBlbmQoJzonKQotICAgICAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQo
c3RyKHBvcnQpKQotICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChyZXF1ZXN0LnVucGFyc2VkX3Vy
aSkKLSAgICByZXR1cm4gJycuam9pbihsb2NhdGlvbl9wYXJ0cykKLQotCi1jbGFzcyBIYW5kc2hh
a2VyKG9iamVjdCk6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUg
V2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24gSHlCaSAwMC4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRjaGVyKToKLSAgICAgICAgIiIiQ29uc3RydWN0
IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2Rf
cHl0aG9uIHJlcXVlc3QuCi0gICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIChkaXNw
YXRjaC5EaXNwYXRjaGVyKS4KLQotICAgICAgICBIYW5kc2hha2VyIHdpbGwgYWRkIGF0dHJpYnV0
ZXMgc3VjaCBhcyB3c19yZXNvdXJjZSBpbiBwZXJmb3JtaW5nCi0gICAgICAgIGhhbmRzaGFrZS4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9n
Z2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2Vs
Zi5fZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXIKLQotICAgIGRlZiBkb19oYW5kc2hha2Uoc2VsZik6
Ci0gICAgICAgICIiIlBlcmZvcm0gV2ViU29ja2V0IEhhbmRzaGFrZS4KLQotICAgICAgICBPbiBf
cmVxdWVzdCwgd2Ugc2V0Ci0gICAgICAgICAgICB3c19yZXNvdXJjZSwgd3NfcHJvdG9jb2wsIHdz
X2xvY2F0aW9uLCB3c19vcmlnaW4sIHdzX2NoYWxsZW5nZSwKLSAgICAgICAgICAgIHdzX2NoYWxs
ZW5nZV9tZDU6IFdlYlNvY2tldCBoYW5kc2hha2UgaW5mb3JtYXRpb24uCi0gICAgICAgICAgICB3
c19zdHJlYW06IEZyYW1lIGdlbmVyYXRpb24vcGFyc2luZyBjbGFzcy4KLSAgICAgICAgICAgIHdz
X3ZlcnNpb246IFByb3RvY29sIHZlcnNpb24uCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAg
ICAgSGFuZHNoYWtlRXhjZXB0aW9uOiB3aGVuIGFueSBlcnJvciBoYXBwZW5lZCBpbiBwYXJzaW5n
IHRoZSBvcGVuaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRzaGFrZSBy
ZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAgICAjIDUuMSBSZWFkaW5nIHRoZSBjbGllbnQn
cyBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgIyBkaXNwYXRjaGVyIHNldHMgaXQgaW4gc2Vs
Zi5fcmVxdWVzdC4KLSAgICAgICAgX2NoZWNrX2hlYWRlcl9saW5lcyhzZWxmLl9yZXF1ZXN0LCBf
TUFOREFUT1JZX0hFQURFUlMpCi0gICAgICAgIHNlbGYuX3NldF9yZXNvdXJjZSgpCi0gICAgICAg
IHNlbGYuX3NldF9zdWJwcm90b2NvbCgpCi0gICAgICAgIHNlbGYuX3NldF9sb2NhdGlvbigpCi0g
ICAgICAgIHNlbGYuX3NldF9vcmlnaW4oKQotICAgICAgICBzZWxmLl9zZXRfY2hhbGxlbmdlX3Jl
c3BvbnNlKCkKLSAgICAgICAgc2VsZi5fc2V0X3Byb3RvY29sX3ZlcnNpb24oKQotCi0gICAgICAg
IHNlbGYuX2Rpc3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYuX3JlcXVlc3QpCi0KLSAg
ICAgICAgc2VsZi5fc2VuZF9oYW5kc2hha2UoKQotCi0gICAgZGVmIF9zZXRfcmVzb3VyY2Uoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVzb3VyY2UgPSBzZWxmLl9yZXF1ZXN0LnVy
aQotCi0gICAgZGVmIF9zZXRfc3VicHJvdG9jb2woc2VsZik6Ci0gICAgICAgICMgfFNlYy1XZWJT
b2NrZXQtUHJvdG9jb2x8Ci0gICAgICAgIHN1YnByb3RvY29sID0gc2VsZi5fcmVxdWVzdC5oZWFk
ZXJzX2luLmdldCgKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1BST1RPQ09MX0hF
QURFUikKLSAgICAgICAgaWYgc3VicHJvdG9jb2wgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBf
dmFsaWRhdGVfc3VicHJvdG9jb2woc3VicHJvdG9jb2wpCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qu
d3NfcHJvdG9jb2wgPSBzdWJwcm90b2NvbAotCi0gICAgZGVmIF9zZXRfbG9jYXRpb24oc2VsZik6
Ci0gICAgICAgICMgfEhvc3R8Ci0gICAgICAgIGhvc3QgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNf
aW4uZ2V0KGNvbW1vbi5IT1NUX0hFQURFUikKLSAgICAgICAgaWYgaG9zdCBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfbG9jYXRpb24gPSBfYnVpbGRfbG9jYXRpb24o
c2VsZi5fcmVxdWVzdCkKLSAgICAgICAgIyBUT0RPKHVrYWkpOiBjaGVjayBob3N0IGlzIHRoaXMg
aG9zdC4KLQotICAgIGRlZiBfc2V0X29yaWdpbihzZWxmKToKLSAgICAgICAgIyB8T3JpZ2lufAot
ICAgICAgICBvcmlnaW4gPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KGNvbW1vbi5PUklH
SU5fSEVBREVSKQotICAgICAgICBpZiBvcmlnaW4gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBz
ZWxmLl9yZXF1ZXN0LndzX29yaWdpbiA9IG9yaWdpbgotCi0gICAgZGVmIF9zZXRfcHJvdG9jb2xf
dmVyc2lvbihzZWxmKToKLSAgICAgICAgIyB8U2VjLVdlYlNvY2tldC1EcmFmdHwKLSAgICAgICAg
ZHJhZnQgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KGNvbW1vbi5TRUNfV0VCU09DS0VU
X0RSQUZUX0hFQURFUikKLSAgICAgICAgaWYgZHJhZnQgaXMgbm90IE5vbmUgYW5kIGRyYWZ0ICE9
ICcwJzoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSWxsZWdhbCB2YWx1
ZSBmb3IgJXM6ICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bW1vbi5TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZHJhZnQpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUHJv
dG9jb2wgdmVyc2lvbiBpcyBIeUJpIDAwJykKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c192ZXJz
aW9uID0gY29tbW9uLlZFUlNJT05fSFlCSTAwCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nfc3Ry
ZWFtID0gU3RyZWFtSGl4aWU3NShzZWxmLl9yZXF1ZXN0LCBUcnVlKQotCi0gICAgZGVmIF9zZXRf
Y2hhbGxlbmdlX3Jlc3BvbnNlKHNlbGYpOgotICAgICAgICAjIDUuMiA0LTguCi0gICAgICAgIHNl
bGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlID0gc2VsZi5fZ2V0X2NoYWxsZW5nZSgpCi0gICAgICAg
ICMgNS4yIDkuIGxldCAvcmVzcG9uc2UvIGJlIHRoZSBNRDUgZmludGVycHJpbnQgb2YgL2NoYWxs
ZW5nZS8KLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1ID0gdXRpbC5tZDVf
aGFzaCgKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlKS5kaWdlc3QoKQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnQ2hhbGxlbmdlOiAlciAo
JXMpJywKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlLAotICAgICAgICAg
ICAgdXRpbC5oZXhpZnkoc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UpKQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnQ2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMp
JywKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlX21kNSwKLSAgICAgICAg
ICAgIHV0aWwuaGV4aWZ5KHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlX21kNSkpCi0KLSAgICBk
ZWYgX2dldF9rZXlfdmFsdWUoc2VsZiwga2V5X2ZpZWxkKToKLSAgICAgICAga2V5X3ZhbHVlID0g
Z2V0X21hbmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwga2V5X2ZpZWxkKQotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXM6ICVyJywga2V5X2ZpZWxkLCBrZXlfdmFsdWUpCi0KLSAg
ICAgICAgIyA1LjIgNC4gbGV0IC9rZXktbnVtYmVyX24vIGJlIHRoZSBkaWdpdHMgKGNoYXJhY3Rl
cnMgaW4gdGhlIHJhbmdlCi0gICAgICAgICMgVSswMDMwIERJR0lUIFpFUk8gKDApIHRvIFUrMDAz
OSBESUdJVCBOSU5FICg5KSkgaW4gL2tleV9uLywKLSAgICAgICAgIyBpbnRlcnByZXRlZCBhcyBh
IGJhc2UgdGVuIGludGVnZXIsIGlnbm9yaW5nIGFsbCBvdGhlciBjaGFyYWN0ZXJzCi0gICAgICAg
ICMgaW4gL2tleV9uLy4KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAga2V5X251bWJlciA9IGlu
dChyZS5zdWIoIlxcRCIsICIiLCBrZXlfdmFsdWUpKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAg
ICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJyVzIGZpZWxkIGNvbnRhaW5zIG5vIGRpZ2l0
JyAlIGtleV9maWVsZCkKLSAgICAgICAgIyA1LjIgNS4gbGV0IC9zcGFjZXNfbi8gYmUgdGhlIG51
bWJlciBvZiBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVycwotICAgICAgICAjIGluIC9rZXlfbi8uCi0g
ICAgICAgIHNwYWNlcyA9IHJlLnN1Ym4oIiAiLCAiIiwga2V5X3ZhbHVlKVsxXQotICAgICAgICBp
ZiBzcGFjZXMgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignJXMg
ZmllbGQgY29udGFpbnMgbm8gc3BhY2UnICUga2V5X2ZpZWxkKQotCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygKLSAgICAgICAgICAgICclczogS2V5LW51bWJlciBpcyAlZCBhbmQgbnVtYmVy
IG9mIHNwYWNlcyBpcyAlZCcsCi0gICAgICAgICAgICBrZXlfZmllbGQsIGtleV9udW1iZXIsIHNw
YWNlcykKLQotICAgICAgICAjIDUuMiA2LiBpZiAva2V5LW51bWJlcl9uLyBpcyBub3QgYW4gaW50
ZWdyYWwgbXVsdGlwbGUgb2YgL3NwYWNlc19uLwotICAgICAgICAjIHRoZW4gYWJvcnQgdGhlIFdl
YlNvY2tldCBjb25uZWN0aW9uLgotICAgICAgICBpZiBrZXlfbnVtYmVyICUgc3BhY2VzICE9IDA6
Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
JyVzOiBLZXktbnVtYmVyICglZCkgaXMgbm90IGFuIGludGVncmFsIG11bHRpcGxlIG9mIHNwYWNl
cyAnCi0gICAgICAgICAgICAgICAgJyglZCknICUgKGtleV9maWVsZCwga2V5X251bWJlciwgc3Bh
Y2VzKSkKLSAgICAgICAgIyA1LjIgNy4gbGV0IC9wYXJ0X24vIGJlIC9rZXktbnVtYmVyX24vIGRp
dmlkZWQgYnkgL3NwYWNlc19uLy4KLSAgICAgICAgcGFydCA9IGtleV9udW1iZXIgLyBzcGFjZXMK
LSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclczogUGFydCBpcyAlZCcsIGtleV9maWVsZCwg
cGFydCkKLSAgICAgICAgcmV0dXJuIHBhcnQKLQotICAgIGRlZiBfZ2V0X2NoYWxsZW5nZShzZWxm
KToKLSAgICAgICAgIyA1LjIgNC03LgotICAgICAgICBrZXkxID0gc2VsZi5fZ2V0X2tleV92YWx1
ZShjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkxX0hFQURFUikKLSAgICAgICAga2V5MiA9IHNlbGYu
X2dldF9rZXlfdmFsdWUoY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZMl9IRUFERVIpCi0gICAgICAg
ICMgNS4yIDguIGxldCAvY2hhbGxlbmdlLyBiZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiAvcGFydF8x
LywKLSAgICAgICAgY2hhbGxlbmdlID0gJycKLSAgICAgICAgY2hhbGxlbmdlICs9IHN0cnVjdC5w
YWNrKCchSScsIGtleTEpICAjIG5ldHdvcmsgYnl0ZW9yZGVyIGludAotICAgICAgICBjaGFsbGVu
Z2UgKz0gc3RydWN0LnBhY2soJyFJJywga2V5MikgICMgbmV0d29yayBieXRlb3JkZXIgaW50Ci0g
ICAgICAgIGNoYWxsZW5nZSArPSBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ucmVhZCg4KQotICAg
ICAgICByZXR1cm4gY2hhbGxlbmdlCi0KLSAgICBkZWYgX3NlbmRfaGFuZHNoYWtlKHNlbGYpOgot
ICAgICAgICByZXNwb25zZSA9IFtdCi0KLSAgICAgICAgIyA1LjIgMTAuIHNlbmQgdGhlIGZvbGxv
d2luZyBsaW5lLgotICAgICAgICByZXNwb25zZS5hcHBlbmQoJ0hUVFAvMS4xIDEwMSBXZWJTb2Nr
ZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicpCi0KLSAgICAgICAgIyA1LjIgMTEuIHNlbmQgdGhl
IGZvbGxvd2luZyBmaWVsZHMgdG8gdGhlIGNsaWVudC4KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5k
KGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9IRUFERVIsIGNvbW1v
bi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFX0hJWElFNzUpKQotICAgICAgICByZXNwb25zZS5hcHBl
bmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwg
Y29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFKSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5k
KGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9MT0NBVElP
Tl9IRUFERVIsIHNlbGYuX3JlcXVlc3Qud3NfbG9jYXRpb24pKQotICAgICAgICByZXNwb25zZS5h
cHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX09S
SUdJTl9IRUFERVIsIHNlbGYuX3JlcXVlc3Qud3Nfb3JpZ2luKSkKLSAgICAgICAgaWYgc2VsZi5f
cmVxdWVzdC53c19wcm90b2NvbDoKLSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRf
aGVhZGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1BST1RPQ09MX0hF
QURFUiwKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sKSkKLSAgICAg
ICAgIyA1LjIgMTIuIHNlbmQgdHdvIGJ5dGVzIDB4MEQgMHgwQS4KLSAgICAgICAgcmVzcG9uc2Uu
YXBwZW5kKCdcclxuJykKLSAgICAgICAgIyA1LjIgMTMuIHNlbmQgL3Jlc3BvbnNlLwotICAgICAg
ICByZXNwb25zZS5hcHBlbmQoc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1KQotCi0gICAg
ICAgIHJhd19yZXNwb25zZSA9ICcnLmpvaW4ocmVzcG9uc2UpCi0gICAgICAgIHNlbGYuX3JlcXVl
c3QuY29ubmVjdGlvbi53cml0ZShyYXdfcmVzcG9uc2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnU2VudCBzZXJ2ZXJcJ3Mgb3BlbmluZyBoYW5kc2hha2U6ICVyJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJhd19yZXNwb25zZSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjU3YTQ4YzYyN2JiZDI4MDM2Y2U2YjczN2M2NWFiZDNlZDA2
YmVjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2Uv
X19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHliaS5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L2hhbmRzaGFrZS9oeWJpMDAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJz
ZXJoYW5kbGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNmU3NjM4NTk3OTg1
YTk2YTRjMDBlYTAwNTJhMGQzNzE3ZTQ0MDNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRs
ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNTcgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBmb3IgbW9kX3B5d2Vic29ja2V0LgotCi1B
cGFjaGUgSFRUUCBTZXJ2ZXIgYW5kIG1vZF9weXRob24gbXVzdCBiZSBjb25maWd1cmVkIHN1Y2gg
dGhhdCB0aGlzCi1mdW5jdGlvbiBpcyBjYWxsZWQgdG8gaGFuZGxlIFdlYlNvY2tldCByZXF1ZXN0
LgotIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLQotZnJvbSBtb2RfcHl0aG9uIGltcG9ydCBhcGFj
aGUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQgaW1wb3J0IGRpc3BhdGNoCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNo
YWtlCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLSMgUHl0aG9uT3B0aW9u
IHRvIHNwZWNpZnkgdGhlIGhhbmRsZXIgcm9vdCBkaXJlY3RvcnkuCi1fUFlPUFRfSEFORExFUl9S
T09UID0gJ21vZF9weXdlYnNvY2tldC5oYW5kbGVyX3Jvb3QnCi0KLSMgUHl0aG9uT3B0aW9uIHRv
IHNwZWNpZnkgdGhlIGhhbmRsZXIgc2NhbiBkaXJlY3RvcnkuCi0jIFRoaXMgbXVzdCBiZSBhIGRp
cmVjdG9yeSB1bmRlciB0aGUgcm9vdCBkaXJlY3RvcnkuCi0jIFRoZSBkZWZhdWx0IGlzIHRoZSBy
b290IGRpcmVjdG9yeS4KLV9QWU9QVF9IQU5ETEVSX1NDQU4gPSAnbW9kX3B5d2Vic29ja2V0Lmhh
bmRsZXJfc2NhbicKLQotIyBQeXRob25PcHRpb24gdG8gYWxsb3cgaGFuZGxlcnMgd2hvc2UgY2Fu
b25pY2FsIHBhdGggaXMKLSMgbm90IHVuZGVyIHRoZSByb290IGRpcmVjdG9yeS4gSXQncyBkaXNh
bGxvd2VkIGJ5IGRlZmF1bHQuCi0jIFNldCB0aGlzIG9wdGlvbiB3aXRoIHZhbHVlIG9mICd5ZXMn
IHRvIGFsbG93LgotX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVCA9ICgKLSAgICAn
bW9kX3B5d2Vic29ja2V0LmFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXInKQotIyBNYXAg
ZnJvbSB2YWx1ZXMgdG8gdGhlaXIgbWVhbmluZ3MuICdZZXMnIGFuZCAnTm8nIGFyZSBhbGxvd2Vk
IGp1c3QgZm9yCi0jIGNvbXBhdGliaWxpdHkuCi1fUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lE
RV9ST09UX0RFRklOSVRJT04gPSB7Ci0gICAgJ29mZic6IEZhbHNlLCAnbm8nOiBGYWxzZSwgJ29u
JzogVHJ1ZSwgJ3llcyc6IFRydWV9Ci0KLSMgKE9ic29sZXRlIG9wdGlvbi4gSWdub3JlZC4pCi0j
IFB5dGhvbk9wdGlvbiB0byBzcGVjaWZ5IHRvIGFsbG93IGhhbmRzaGFrZSBkZWZpbmVkIGluIEhp
eGllIDc1IHZlcnNpb24KLSMgcHJvdG9jb2wuIFRoZSBkZWZhdWx0IGlzIE5vbmUgKE9mZikKLV9Q
WU9QVF9BTExPV19EUkFGVDc1ID0gJ21vZF9weXdlYnNvY2tldC5hbGxvd19kcmFmdDc1JwotIyBN
YXAgZnJvbSB2YWx1ZXMgdG8gdGhlaXIgbWVhbmluZ3MuCi1fUFlPUFRfQUxMT1dfRFJBRlQ3NV9E
RUZJTklUSU9OID0geydvZmYnOiBGYWxzZSwgJ29uJzogVHJ1ZX0KLQotCi1jbGFzcyBBcGFjaGVM
b2dIYW5kbGVyKGxvZ2dpbmcuSGFuZGxlcik6Ci0KLSAgICAiIiJXcmFwcGVyIGxvZ2dpbmcuSGFu
ZGxlciB0byBlbWl0IGxvZyBtZXNzYWdlIHRvIGFwYWNoZSdzIGVycm9yLmxvZy4iIiIKLQotICAg
IF9MRVZFTFMgPSB7Ci0gICAgICAgIGxvZ2dpbmcuREVCVUc6IGFwYWNoZS5BUExPR19ERUJVRywK
LSAgICAgICAgbG9nZ2luZy5JTkZPOiBhcGFjaGUuQVBMT0dfSU5GTywKLSAgICAgICAgbG9nZ2lu
Zy5XQVJOSU5HOiBhcGFjaGUuQVBMT0dfV0FSTklORywKLSAgICAgICAgbG9nZ2luZy5FUlJPUjog
YXBhY2hlLkFQTE9HX0VSUiwKLSAgICAgICAgbG9nZ2luZy5DUklUSUNBTDogYXBhY2hlLkFQTE9H
X0NSSVQsCi0gICAgICAgIH0KLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0PU5vbmUp
OgotICAgICAgICBsb2dnaW5nLkhhbmRsZXIuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5f
bG9nX2Vycm9yID0gYXBhY2hlLmxvZ19lcnJvcgotICAgICAgICBpZiByZXF1ZXN0IGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgc2VsZi5fbG9nX2Vycm9yID0gcmVxdWVzdC5sb2dfZXJyb3IKLQot
ICAgICAgICAjIFRpbWUgYW5kIGxldmVsIHdpbGwgYmUgcHJpbnRlZCBieSBBcGFjaGUuCi0gICAg
ICAgIHNlbGYuX2Zvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKCclKG5hbWUpczogJShtZXNz
YWdlKXMnKQotCi0gICAgZGVmIGVtaXQoc2VsZiwgcmVjb3JkKToKLSAgICAgICAgYXBhY2hlX2xl
dmVsID0gYXBhY2hlLkFQTE9HX0RFQlVHCi0gICAgICAgIGlmIHJlY29yZC5sZXZlbG5vIGluIEFw
YWNoZUxvZ0hhbmRsZXIuX0xFVkVMUzoKLSAgICAgICAgICAgIGFwYWNoZV9sZXZlbCA9IEFwYWNo
ZUxvZ0hhbmRsZXIuX0xFVkVMU1tyZWNvcmQubGV2ZWxub10KLQotICAgICAgICBtc2cgPSBzZWxm
Ll9mb3JtYXR0ZXIuZm9ybWF0KHJlY29yZCkKLQotICAgICAgICAjICJzZXJ2ZXIiIHBhcmFtZXRl
ciBtdXN0IGJlIHBhc3NlZCB0byBoYXZlICJsZXZlbCIgcGFyYW1ldGVyIHdvcmsuCi0gICAgICAg
ICMgSWYgb25seSAibGV2ZWwiIHBhcmFtZXRlciBpcyBwYXNzZWQsIG5vdGhpbmcgc2hvd3MgdXAg
b24gQXBhY2hlJ3MKLSAgICAgICAgIyBsb2cuIEhvd2V2ZXIsIGF0IHRoaXMgcG9pbnQsIHdlIGNh
bm5vdCBnZXQgdGhlIHNlcnZlciBvYmplY3Qgb2YgdGhlCi0gICAgICAgICMgdmlydHVhbCBob3N0
IHdoaWNoIHdpbGwgcHJvY2VzcyBXZWJTb2NrZXQgcmVxdWVzdHMuIFRoZSBvbmx5IHNlcnZlcgot
ICAgICAgICAjIG9iamVjdCB3ZSBjYW4gZ2V0IGhlcmUgaXMgYXBhY2hlLm1haW5fc2VydmVyLiBC
dXQgV2hlcmV2ZXIgKHNlcnZlcgotICAgICAgICAjIGNvbmZpZ3VyYXRpb24gY29udGV4dCBvciB2
aXJ0dWFsIGhvc3QgY29udGV4dCkgd2UgcHV0Ci0gICAgICAgICMgUHl0aG9uSGVhZGVyUGFyc2Vy
SGFuZGxlciBkaXJlY3RpdmUsIGFwYWNoZS5tYWluX3NlcnZlciBqdXN0IHBvaW50cwotICAgICAg
ICAjIHRoZSBtYWluIHNlcnZlciBpbnN0YW5jZSAobm90IGFueSBvZiB2aXJ0dWFsIHNlcnZlciBp
bnN0YW5jZSkuIFRoZW4sCi0gICAgICAgICMgQXBhY2hlIGZvbGxvd3MgTG9nTGV2ZWwgZGlyZWN0
aXZlIGluIHRoZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBjb250ZXh0Ci0gICAgICAgICMgdG8gZmls
dGVyIGxvZ3MuIFNvLCB3ZSBuZWVkIHRvIHNwZWNpZnkgTG9nTGV2ZWwgaW4gdGhlIHNlcnZlcgot
ICAgICAgICAjIGNvbmZpZ3VyYXRpb24gY29udGV4dC4gRXZlbiBpZiB3ZSBzcGVjaWZ5ICJMb2dM
ZXZlbCBkZWJ1ZyIgaW4gdGhlCi0gICAgICAgICMgdmlydHVhbCBob3N0IGNvbnRleHQgd2hpY2gg
YWN0dWFsbHkgaGFuZGxlcyBXZWJTb2NrZXQgY29ubmVjdGlvbnMsCi0gICAgICAgICMgREVCVUcg
bGV2ZWwgbG9ncyBuZXZlciBzaG93IHVwIHVubGVzcyAiTG9nTGV2ZWwgZGVidWciIGlzIHNwZWNp
ZmllZAotICAgICAgICAjIGluIHRoZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBjb250ZXh0LgotICAg
ICAgICAjCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFByb3ZpZGUgbG9nZ2luZyBtZXRob2Rz
IG9uIHJlcXVlc3Qgb2JqZWN0LiBXaGVuCi0gICAgICAgICMgcmVxdWVzdCBpcyBtcF9yZXF1ZXN0
IG9iamVjdCAod2hlbiB1c2VkIHRvZ2V0aGVyIHdpdGggQXBhY2hlKSwgdGhlCi0gICAgICAgICMg
bWV0aG9kcyBjYWxsIHJlcXVlc3QubG9nX2Vycm9yIGluZGlyZWN0bHkuIFdoZW4gcmVxdWVzdCBp
cwotICAgICAgICAjIF9TdGFuZGFsb25lUmVxdWVzdCwgdGhlIG1ldGhvZHMgY2FsbCBQeXRob24n
cyBsb2dnaW5nIGZhY2lsaXR5IHdoaWNoCi0gICAgICAgICMgd2UgY3JlYXRlIGluIHN0YW5kYWxv
bmUucHkuCi0gICAgICAgIHNlbGYuX2xvZ19lcnJvcihtc2csIGFwYWNoZV9sZXZlbCwgYXBhY2hl
Lm1haW5fc2VydmVyKQotCi0KLWRlZiBfY29uZmlndXJlX2xvZ2dpbmcoKToKLSAgICBsb2dnZXIg
PSBsb2dnaW5nLmdldExvZ2dlcigpCi0gICAgIyBMb2dzIGFyZSBmaWx0ZXJlZCBieSBBcGFjaGUg
YmFzZWQgb24gTG9nTGV2ZWwgZGlyZWN0aXZlIGluIEFwYWNoZQotICAgICMgY29uZmlndXJhdGlv
biBmaWxlLiBXZSBtdXN0IGp1c3QgcGFzcyBsb2dzIGZvciBhbGwgbGV2ZWxzIHRvCi0gICAgIyBB
cGFjaGVMb2dIYW5kbGVyLgotICAgIGxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQotICAg
IGxvZ2dlci5hZGRIYW5kbGVyKEFwYWNoZUxvZ0hhbmRsZXIoKSkKLQotCi1fY29uZmlndXJlX2xv
Z2dpbmcoKQotCi1fTE9HR0VSID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0KLQotZGVm
IF9wYXJzZV9vcHRpb24obmFtZSwgdmFsdWUsIGRlZmluaXRpb24pOgotICAgICIiIlJldHVybiB0
aGUgbWVhbmluZyBvZiBhIG9wdGlvbiB2YWx1ZS4iIiIKLSAgICBpZiB2YWx1ZSBpcyBOb25lOgot
ICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIG1lYW5pbmcgPSBkZWZpbml0aW9uLmdldCh2YWx1
ZS5sb3dlcigpKQotICAgIGlmIG1lYW5pbmcgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdJbnZhbGlkIHZhbHVlIGZvciBQeXRob25PcHRpb24gJXM6ICVyJyAlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAobmFtZSwgdmFsdWUpKQotICAgIHJldHVybiBtZWFuaW5nCi0KLQotZGVm
IF9jcmVhdGVfZGlzcGF0Y2hlcigpOgotICAgICIiIkluaXRpYWxpemUgYSBkaXNwYXRjaC5EaXNw
YXRjaGVyLiIiIgotICAgIF9MT0dHRVIuaW5mbygnSW5pdGlhbGl6aW5nIERpc3BhdGNoZXInKQot
Ci0gICAgb3B0aW9ucyA9IGFwYWNoZS5tYWluX3NlcnZlci5nZXRfb3B0aW9ucygpCi0KLSAgICBo
YW5kbGVyX3Jvb3QgPSBvcHRpb25zLmdldChfUFlPUFRfSEFORExFUl9ST09ULCBOb25lKQotICAg
IGlmIG5vdCBoYW5kbGVyX3Jvb3Q6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUHl0aG9uT3B0
aW9uICVzIGlzIG5vdCBkZWZpbmVkJyAlIF9QWU9QVF9IQU5ETEVSX1JPT1QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfRVJSKQotCi0gICAgaGFuZGxlcl9zY2FuID0gb3B0
aW9ucy5nZXQoX1BZT1BUX0hBTkRMRVJfU0NBTiwgaGFuZGxlcl9yb290KQotCi0gICAgYWxsb3df
aGFuZGxlcnNfb3V0c2lkZV9yb290ID0gX3BhcnNlX29wdGlvbigKLSAgICAgICAgX1BZT1BUX0FM
TE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVCwKLSAgICAgICAgb3B0aW9ucy5nZXQoX1BZT1BUX0FM
TE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVCksCi0gICAgICAgIF9QWU9QVF9BTExPV19IQU5ETEVS
U19PVVRTSURFX1JPT1RfREVGSU5JVElPTikKLQotICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5E
aXNwYXRjaGVyKAotICAgICAgICBoYW5kbGVyX3Jvb3QsIGhhbmRsZXJfc2NhbiwgYWxsb3dfaGFu
ZGxlcnNfb3V0c2lkZV9yb290KQotCi0gICAgZm9yIHdhcm5pbmcgaW4gZGlzcGF0Y2hlci5zb3Vy
Y2Vfd2FybmluZ3MoKToKLSAgICAgICAgYXBhY2hlLmxvZ19lcnJvcigKLSAgICAgICAgICAgICdt
b2RfcHl3ZWJzb2NrZXQ6IFdhcm5pbmcgaW4gc291cmNlIGxvYWRpbmc6ICVzJyAlIHdhcm5pbmcs
Ci0gICAgICAgICAgICBhcGFjaGUuQVBMT0dfV0FSTklORykKLQotICAgIHJldHVybiBkaXNwYXRj
aGVyCi0KLQotIyBJbml0aWFsaXplCi1fZGlzcGF0Y2hlciA9IF9jcmVhdGVfZGlzcGF0Y2hlcigp
Ci0KLQotZGVmIGhlYWRlcnBhcnNlcmhhbmRsZXIocmVxdWVzdCk6Ci0gICAgIiIiSGFuZGxlIHJl
cXVlc3QuCi0KLSAgICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3Qu
Ci0KLSAgICBUaGlzIGZ1bmN0aW9uIGlzIG5hbWVkIGhlYWRlcnBhcnNlcmhhbmRsZXIgYmVjYXVz
ZSBpdCBpcyB0aGUgZGVmYXVsdAotICAgIG5hbWUgZm9yIGEgUHl0aG9uSGVhZGVyUGFyc2VySGFu
ZGxlci4KLSAgICAiIiIKLSAgICBoYW5kc2hha2VfaXNfZG9uZSA9IEZhbHNlCi0gICAgdHJ5Ogot
ICAgICAgICAjIEZhbGxiYWNrIHRvIGRlZmF1bHQgaHR0cCBoYW5kbGVyIGZvciByZXF1ZXN0IHBh
dGhzIGZvciB3aGljaAotICAgICAgICAjIHdlIGRvbid0IGhhdmUgcmVxdWVzdCBoYW5kbGVycy4K
LSAgICAgICAgaWYgbm90IF9kaXNwYXRjaGVyLmdldF9oYW5kbGVyX3N1aXRlKHJlcXVlc3QudXJp
KToKLSAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAgICAgICAgICdtb2Rf
cHl3ZWJzb2NrZXQ6IE5vIGhhbmRsZXIgZm9yIHJlc291cmNlOiAlcicgJSByZXF1ZXN0LnVyaSwK
LSAgICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICAgICAgICAgIHJlcXVlc3Qu
bG9nX2Vycm9yKAotICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IEZhbGxiYWNrIHRv
IEFwYWNoZScsIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICAgICAgcmV0dXJuIGFwYWNoZS5E
RUNMSU5FRAotICAgIGV4Y2VwdCBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiBhcyBlOgotICAg
ICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IERp
c3BhdGNoIGZhaWxlZCBmb3IgZXJyb3I6ICVzJyAlIGUsCi0gICAgICAgICAgICBhcGFjaGUuQVBM
T0dfSU5GTykKLSAgICAgICAgaWYgbm90IGhhbmRzaGFrZV9pc19kb25lOgotICAgICAgICAgICAg
cmV0dXJuIGUuc3RhdHVzCi0KLSAgICB0cnk6Ci0gICAgICAgIGFsbG93X2RyYWZ0NzUgPSBfcGFy
c2Vfb3B0aW9uKAotICAgICAgICAgICAgX1BZT1BUX0FMTE9XX0RSQUZUNzUsCi0gICAgICAgICAg
ICBhcGFjaGUubWFpbl9zZXJ2ZXIuZ2V0X29wdGlvbnMoKS5nZXQoX1BZT1BUX0FMTE9XX0RSQUZU
NzUpLAotICAgICAgICAgICAgX1BZT1BUX0FMTE9XX0RSQUZUNzVfREVGSU5JVElPTikKLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kc2hha2UuZG9faGFuZHNoYWtlKAotICAgICAgICAg
ICAgICAgIHJlcXVlc3QsIF9kaXNwYXRjaGVyLCBhbGxvd0RyYWZ0NzU9YWxsb3dfZHJhZnQ3NSkK
LSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5WZXJzaW9uRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAg
ICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0
OiBIYW5kc2hha2UgZmFpbGVkIGZvciB2ZXJzaW9uIGVycm9yOiAlcycgJSBlLAotICAgICAgICAg
ICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICAgICAgcmVxdWVzdC5lcnJfaGVhZGVy
c19vdXQuYWRkKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3VwcG9ydGVkX3ZlcnNpb25zKQotICAg
ICAgICAgICAgcmV0dXJuIGFwYWNoZS5IVFRQX0JBRF9SRVFVRVNUCi0gICAgICAgIGV4Y2VwdCBo
YW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAjIEhhbmRzaGFr
ZSBmb3Igd3Mvd3NzIGZhaWxlZC4KLSAgICAgICAgICAgICMgU2VuZCBodHRwIHJlc3BvbnNlIHdp
dGggZXJyb3Igc3RhdHVzLgotICAgICAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCi0gICAgICAg
ICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogSGFuZHNoYWtlIGZhaWxlZCBmb3IgZXJyb3I6ICVz
JyAlIGUsCi0gICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgICAgICAgICBy
ZXR1cm4gZS5zdGF0dXMKLQotICAgICAgICBoYW5kc2hha2VfaXNfZG9uZSA9IFRydWUKLSAgICAg
ICAgcmVxdWVzdC5fZGlzcGF0Y2hlciA9IF9kaXNwYXRjaGVyCi0gICAgICAgIF9kaXNwYXRjaGVy
LnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVz
ZXJFeGNlcHRpb24gYXMgZToKLSAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoJ21vZF9weXdlYnNv
Y2tldDogQWJvcnRlZDogJXMnICUgZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYXBhY2hl
LkFQTE9HX0lORk8pCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAjIERpc3Bh
dGNoRXhjZXB0aW9uIGNhbiBhbHNvIGJlIHRocm93biBpZiBzb21ldGhpbmcgaXMgd3JvbmcgaW4K
LSAgICAgICAgIyBweXdlYnNvY2tldCBjb2RlLiBJdCdzIGNhdWdodCBoZXJlLCB0aGVuLgotCi0g
ICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKCdtb2RfcHl3ZWJzb2NrZXQ6IEV4Y2VwdGlvbiBvY2N1
cnJlZDogJXNcbiVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChlLCB1dGlsLmdldF9z
dGFja190cmFjZSgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0VS
UikKLSAgICAgICAgIyBVbmtub3duIGV4Y2VwdGlvbnMgYmVmb3JlIGhhbmRzaGFrZSBtZWFuIEFw
YWNoZSBtdXN0IGhhbmRsZSBpdHMKLSAgICAgICAgIyByZXF1ZXN0IHdpdGggYW5vdGhlciBoYW5k
bGVyLgotICAgICAgICBpZiBub3QgaGFuZHNoYWtlX2lzX2RvbmU6Ci0gICAgICAgICAgICByZXR1
cm4gYXBhY2hlLkRFQ0xJTkVECi0gICAgIyBTZXQgYXNzYmFja3dhcmRzIHRvIHN1cHByZXNzIHJl
c3BvbnNlIGhlYWRlciBnZW5lcmF0aW9uIGJ5IEFwYWNoZS4KLSAgICByZXF1ZXN0LmFzc2JhY2t3
YXJkcyA9IDEKLSAgICByZXR1cm4gYXBhY2hlLkRPTkUgICMgUmV0dXJuIERPTkUgc3VjaCB0aGF0
IG5vIG90aGVyIGhhbmRsZXJzIGFyZSBpbnZva2VkLgotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJfdXRpbC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVhZGVyX3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhlMDU4NGM1ZGFjOGNjNDRjNzc2ZjdjY2I0ZTZhNTA0MGNlNTIyMjQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvaHR0cF9oZWFkZXJfdXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI2MyArMCww
IEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJVdGlsaXRpZXMgZm9yIHBhcnNpbmcgYW5kIGZv
cm1hdHRpbmcgaGVhZGVycyB0aGF0IGZvbGxvdyB0aGUgZ3JhbW1hciBkZWZpbmVkCi1pbiBIVFRQ
IFJGQyBodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyNjE2LnR4dC4KLSIiIgotCi0KLWZyb20g
c2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKLQotCi1fU0VQQVJBVE9SUyA9ICcoKTw+QCw7OlxcIi9b
XT89e30gXHQnCi0KLQotZGVmIF9pc19jaGFyKGMpOgotICAgICIiIlJldHVybnMgdHJ1ZSBpZmYg
YyBpcyBpbiBDSEFSIGFzIHNwZWNpZmllZCBpbiBIVFRQIFJGQy4iIiIKLQotICAgIHJldHVybiBv
cmQoYykgPD0gMTI3Ci0KLQotZGVmIF9pc19jdGwoYyk6Ci0gICAgIiIiUmV0dXJucyB0cnVlIGlm
ZiBjIGlzIGluIENUTCBhcyBzcGVjaWZpZWQgaW4gSFRUUCBSRkMuIiIiCi0KLSAgICByZXR1cm4g
b3JkKGMpIDw9IDMxIG9yIG9yZChjKSA9PSAxMjcKLQotCi1jbGFzcyBQYXJzaW5nU3RhdGUob2Jq
ZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhKToKLSAgICAgICAgc2VsZi5kYXRh
ID0gZGF0YQotICAgICAgICBzZWxmLmhlYWQgPSAwCi0KLQotZGVmIHBlZWsoc3RhdGUsIHBvcz0w
KToKLSAgICAiIiJQZWVrcyB0aGUgY2hhcmFjdGVyIGF0IHBvcyBmcm9tIHRoZSBoZWFkIG9mIGRh
dGEuIiIiCi0KLSAgICBpZiBzdGF0ZS5oZWFkICsgcG9zID49IGxlbihzdGF0ZS5kYXRhKToKLSAg
ICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHJldHVybiBzdGF0ZS5kYXRhW3N0YXRlLmhlYWQgKyBw
b3NdCi0KLQotZGVmIGNvbnN1bWUoc3RhdGUsIGFtb3VudD0xKToKLSAgICAiIiJDb25zdW1lcyBz
cGVjaWZpZWQgYW1vdW50IG9mIGJ5dGVzIGZyb20gdGhlIGhlYWQgYW5kIHJldHVybnMgdGhlCi0g
ICAgY29uc3VtZWQgYnl0ZXMuIElmIHRoZXJlJ3Mgbm90IGVub3VnaCBieXRlcyB0byBjb25zdW1l
LCByZXR1cm5zIE5vbmUuCi0gICAgIiIiCi0KLSAgICBpZiBzdGF0ZS5oZWFkICsgYW1vdW50ID4g
bGVuKHN0YXRlLmRhdGEpOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgcmVzdWx0ID0gc3Rh
dGUuZGF0YVtzdGF0ZS5oZWFkOnN0YXRlLmhlYWQgKyBhbW91bnRdCi0gICAgc3RhdGUuaGVhZCA9
IHN0YXRlLmhlYWQgKyBhbW91bnQKLSAgICByZXR1cm4gcmVzdWx0Ci0KLQotZGVmIGNvbnN1bWVf
c3RyaW5nKHN0YXRlLCBleHBlY3RlZCk6Ci0gICAgIiIiR2l2ZW4gYSBwYXJzaW5nIHN0YXRlIGFu
ZCBhIGV4cGVjdGVkIHN0cmluZywgY29uc3VtZXMgdGhlIHN0cmluZyBmcm9tCi0gICAgdGhlIGhl
YWQuIFJldHVybnMgVHJ1ZSBpZiBjb25zdW1lZCBzdWNjZXNzZnVsbHkuIE90aGVyd2lzZSwgcmV0
dXJucwotICAgIEZhbHNlLgotICAgICIiIgotCi0gICAgcG9zID0gMAotCi0gICAgZm9yIGMgaW4g
ZXhwZWN0ZWQ6Ci0gICAgICAgIGlmIGMgIT0gcGVlayhzdGF0ZSwgcG9zKToKLSAgICAgICAgICAg
IHJldHVybiBGYWxzZQotICAgICAgICBwb3MgKz0gMQotCi0gICAgY29uc3VtZShzdGF0ZSwgcG9z
KQotICAgIHJldHVybiBUcnVlCi0KLQotZGVmIGNvbnN1bWVfbHdzKHN0YXRlKToKLSAgICAiIiJD
b25zdW1lcyBhIExXUyBmcm9tIHRoZSBoZWFkLiBSZXR1cm5zIFRydWUgaWYgYW55IExXUyBpcyBj
b25zdW1lZC4KLSAgICBPdGhlcndpc2UsIHJldHVybnMgRmFsc2UuCi0KLSAgICBMV1MgPSBbQ1JM
Rl0gMSooIFNQIHwgSFQgKQotICAgICIiIgotCi0gICAgb3JpZ2luYWxfaGVhZCA9IHN0YXRlLmhl
YWQKLQotICAgIGNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnXHJcbicpCi0KLSAgICBwb3MgPSAwCi0K
LSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjID0gcGVlayhzdGF0ZSwgcG9zKQotICAgICAgICBp
ZiBjID09ICcgJyBvciBjID09ICdcdCc6Ci0gICAgICAgICAgICBwb3MgKz0gMQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgaWYgcG9zID09IDA6Ci0gICAgICAgICAgICAgICAgc3RhdGUuaGVh
ZCA9IG9yaWdpbmFsX2hlYWQKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgY29uc3VtZShzdGF0ZSwgcG9zKQotICAgICAgICAg
ICAgICAgIHJldHVybiBUcnVlCi0KLQotZGVmIGNvbnN1bWVfbHdzZXMoc3RhdGUpOgotICAgICIi
IkNvbnN1bWVzICpMV1MgZnJvbSB0aGUgaGVhZC4iIiIKLQotICAgIHdoaWxlIGNvbnN1bWVfbHdz
KHN0YXRlKToKLSAgICAgICAgcGFzcwotCi0KLWRlZiBjb25zdW1lX3Rva2VuKHN0YXRlKToKLSAg
ICAiIiJDb25zdW1lcyBhIHRva2VuIGZyb20gdGhlIGhlYWQuIFJldHVybnMgdGhlIHRva2VuIG9y
IE5vbmUgaWYgbm8gdG9rZW4KLSAgICB3YXMgZm91bmQuCi0gICAgIiIiCi0KLSAgICBwb3MgPSAw
Ci0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjID0gcGVlayhzdGF0ZSwgcG9zKQotICAgICAg
ICBpZiBjIGlzIE5vbmUgb3IgYyBpbiBfU0VQQVJBVE9SUyBvciBfaXNfY3RsKGMpIG9yIG5vdCBf
aXNfY2hhcihjKToKLSAgICAgICAgICAgIGlmIHBvcyA9PSAwOgotICAgICAgICAgICAgICAgIHJl
dHVybiBOb25lCi0KLSAgICAgICAgICAgIHJldHVybiBjb25zdW1lKHN0YXRlLCBwb3MpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBwb3MgKz0gMQotCi0KLWRlZiBjb25zdW1lX3Rva2VuX29y
X3F1b3RlZF9zdHJpbmcoc3RhdGUpOgotICAgICIiIkNvbnN1bWVzIGEgdG9rZW4gb3IgYSBxdW90
ZWQtc3RyaW5nLCBhbmQgcmV0dXJucyB0aGUgdG9rZW4gb3IgdW5xdW90ZWQKLSAgICBzdHJpbmcu
IElmIG5vIHRva2VuIG9yIHF1b3RlZC1zdHJpbmcgd2FzIGZvdW5kLCByZXR1cm5zIE5vbmUuCi0g
ICAgIiIiCi0KLSAgICBvcmlnaW5hbF9oZWFkID0gc3RhdGUuaGVhZAotCi0gICAgaWYgbm90IGNv
bnN1bWVfc3RyaW5nKHN0YXRlLCAnIicpOgotICAgICAgICByZXR1cm4gY29uc3VtZV90b2tlbihz
dGF0ZSkKLQotICAgIHJlc3VsdCA9IFtdCi0KLSAgICBleHBlY3RfcXVvdGVkX3BhaXIgPSBGYWxz
ZQotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgaWYgbm90IGV4cGVjdF9xdW90ZWRfcGFpciBh
bmQgY29uc3VtZV9sd3Moc3RhdGUpOgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpCi0g
ICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgIGMgPSBjb25zdW1lKHN0YXRlKQotICAgICAg
ICBpZiBjIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIHF1b3RlZC1zdHJpbmcgaXMgbm90IGVuY2xv
c2VkIHdpdGggZG91YmxlIHF1b3RhdGlvbgotICAgICAgICAgICAgc3RhdGUuaGVhZCA9IG9yaWdp
bmFsX2hlYWQKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsaWYgZXhwZWN0X3F1
b3RlZF9wYWlyOgotICAgICAgICAgICAgZXhwZWN0X3F1b3RlZF9wYWlyID0gRmFsc2UKLSAgICAg
ICAgICAgIGlmIF9pc19jaGFyKGMpOgotICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYykK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBOb24gQ0hBUiBjaGFyYWN0ZXIg
Zm91bmQgaW4gcXVvdGVkLXBhaXIKLSAgICAgICAgICAgICAgICBzdGF0ZS5oZWFkID0gb3JpZ2lu
YWxfaGVhZAotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsaWYgYyA9PSAn
XFwnOgotICAgICAgICAgICAgZXhwZWN0X3F1b3RlZF9wYWlyID0gVHJ1ZQotICAgICAgICBlbGlm
IGMgPT0gJyInOgotICAgICAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0KQotICAgICAgICBl
bGlmIF9pc19jdGwoYyk6Ci0gICAgICAgICAgICAjIEludmFsaWQgY2hhcmFjdGVyICVyIGZvdW5k
IGluIHFkdGV4dAotICAgICAgICAgICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQKLSAgICAg
ICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKGMpCi0KLQotZGVmIHF1b3RlX2lmX25lY2Vzc2FyeShzKToKLSAgICAiIiJRdW90ZXMgYXJi
aXRyYXJ5IHN0cmluZyBpbnRvIHF1b3RlZC1zdHJpbmcuIiIiCi0KLSAgICBxdW90ZSA9IEZhbHNl
Ci0gICAgaWYgcyA9PSAnJzoKLSAgICAgICAgcmV0dXJuICciIicKLQotICAgIHJlc3VsdCA9IFtd
Ci0gICAgZm9yIGMgaW4gczoKLSAgICAgICAgaWYgYyA9PSAnIicgb3IgYyBpbiBfU0VQQVJBVE9S
UyBvciBfaXNfY3RsKGMpIG9yIG5vdCBfaXNfY2hhcihjKToKLSAgICAgICAgICAgIHF1b3RlID0g
VHJ1ZQotCi0gICAgICAgIGlmIGMgPT0gJyInIG9yIF9pc19jdGwoYyk6Ci0gICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCdcXCcgKyBjKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZChjKQotCi0gICAgaWYgcXVvdGU6Ci0gICAgICAgIHJldHVybiAnIicgKyAnJy5qb2lu
KHJlc3VsdCkgKyAnIicKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gJycuam9pbihyZXN1bHQp
Ci0KLQotZGVmIHBhcnNlX3VyaSh1cmkpOgotICAgICIiIlBhcnNlIGFic29sdXRlIFVSSSB0aGVu
IHJldHVybiBob3N0LCBwb3J0IGFuZCByZXNvdXJjZS4iIiIKLQotICAgIHBhcnNlZCA9IHVybGxp
Yi5wYXJzZS51cmxzcGxpdCh1cmkpCi0gICAgaWYgcGFyc2VkLnNjaGVtZSAhPSAnd3NzJyBhbmQg
cGFyc2VkLnNjaGVtZSAhPSAnd3MnOgotICAgICAgICAjIHx1cml8IG11c3QgYmUgYSByZWxhdGl2
ZSBVUkkuCi0gICAgICAgICMgVE9ETyh0b3lvc2hpbSk6IFNob3VsZCB2YWxpZGF0ZSB8dXJpfC4K
LSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIHVyaQotCi0gICAgaWYgcGFyc2VkLmhvc3RuYW1l
IGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBOb25lLCBOb25lLCBOb25lCi0KLSAgICBwb3J0ID0g
Tm9uZQotICAgIHRyeToKLSAgICAgICAgcG9ydCA9IHBhcnNlZC5wb3J0Ci0gICAgZXhjZXB0IFZh
bHVlRXJyb3IgYXMgZToKLSAgICAgICAgIyBwb3J0IHByb3BlcnR5IGNhdXNlIFZhbHVlRXJyb3Ig
b24gaW52YWxpZCBudWxsIHBvcnQgZGVzY3JpcHRpb24gbGlrZQotICAgICAgICAjICd3czovL2hv
c3Q6L3BhdGgnLgotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQotCi0gICAgaWYgcG9y
dCBpcyBOb25lOgotICAgICAgICBpZiBwYXJzZWQuc2NoZW1lID09ICd3cyc6Ci0gICAgICAgICAg
ICBwb3J0ID0gODAKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHBvcnQgPSA0NDMKLQotICAg
IHBhdGggPSBwYXJzZWQucGF0aAotICAgIGlmIG5vdCBwYXRoOgotICAgICAgICBwYXRoICs9ICcv
JwotICAgIGlmIHBhcnNlZC5xdWVyeToKLSAgICAgICAgcGF0aCArPSAnPycgKyBwYXJzZWQucXVl
cnkKLSAgICBpZiBwYXJzZWQuZnJhZ21lbnQ6Ci0gICAgICAgIHBhdGggKz0gJyMnICsgcGFyc2Vk
LmZyYWdtZW50Ci0KLSAgICByZXR1cm4gcGFyc2VkLmhvc3RuYW1lLCBwb3J0LCBwYXRoCi0KLQot
dHJ5OgotICAgIHVybGxpYi5wYXJzZS51c2VzX25ldGxvYy5pbmRleCgnd3MnKQotZXhjZXB0IFZh
bHVlRXJyb3IgYXMgZToKLSAgICAjIHVybHBhcnNlIGluIFB5dGhvbjIuNS4xIGRvZXNuJ3QgaGF2
ZSAnd3MnIGFuZCAnd3NzJyBlbnRyaWVzLgotICAgIHVybGxpYi5wYXJzZS51c2VzX25ldGxvYy5h
cHBlbmQoJ3dzJykKLSAgICB1cmxsaWIucGFyc2UudXNlc19uZXRsb2MuYXBwZW5kKCd3c3MnKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
bWVtb3JpemluZ2ZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzdhZmNjMTU3ZWQ3YTFkOTQyY2JmNDM1
OGFmYTA0NTQ4NDZmMDFkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDk4ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1l
dDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIk1lbW9yaXppbmcg
ZmlsZS4KLQotQSBtZW1vcml6aW5nIGZpbGUgd3JhcHMgYSBmaWxlIGFuZCBtZW1vcml6ZXMgbGlu
ZXMgcmVhZCBieSByZWFkbGluZS4KLSIiIgotCi0KLWNsYXNzIE1lbW9yaXppbmdGaWxlKG9iamVj
dCk6Ci0KLSAgICAiIiJNZW1vcml6aW5nRmlsZSB3cmFwcyBhIGZpbGUgYW5kIG1lbW9yaXplcyBs
aW5lcyByZWFkIGJ5IHJlYWRsaW5lLgotCi0gICAgTm90ZSB0aGF0IGRhdGEgcmVhZCBieSBvdGhl
ciBtZXRob2RzIGFyZSBub3QgbWVtb3JpemVkLiBUaGlzIGJlaGF2aW9yCi0gICAgaXMgZ29vZCBl
bm91Z2ggZm9yIG1lbW9yaXppbmcgbGluZXMgU2ltcGxlSFRUUFNlcnZlciByZWFkcyBiZWZvcmUK
LSAgICB0aGUgY29udHJvbCByZWFjaGVzIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVfLCBtYXhfbWVtb3JpemVkX2xpbmVzPTB4
N0ZGRkZGRkYpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIGZpbGVfOiB0aGUgZmlsZSBvYmplY3QgdG8gd3JhcC4KLSAgICAg
ICAgICAgIG1heF9tZW1vcml6ZWRfbGluZXM6IHRoZSBtYXhpbXVtIG51bWJlciBvZiBsaW5lcyB0
byBtZW1vcml6ZS4KLSAgICAgICAgICAgICAgICBPbmx5IHRoZSBmaXJzdCBtYXhfbWVtb3JpemVk
X2xpbmVzIGFyZSBtZW1vcml6ZWQuCi0gICAgICAgICAgICAgICAgRGVmYXVsdDogc3lzLm1heGlu
dC4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX2ZpbGUgPSBmaWxlXwotICAgICAgICBzZWxm
Ll9tZW1vcml6ZWRfbGluZXMgPSBbXQotICAgICAgICBzZWxmLl9tYXhfbWVtb3JpemVkX2xpbmVz
ID0gbWF4X21lbW9yaXplZF9saW5lcwotICAgICAgICBzZWxmLl9idWZmZXJlZCA9IEZhbHNlCi0g
ICAgICAgIHNlbGYuX2J1ZmZlcmVkX2xpbmUgPSBOb25lCi0KLSAgICBkZWYgX19nZXRhdHRyaWJ1
dGVfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgIiIiUmV0dXJuIGEgZmlsZSBhdHRyaWJ1dGUuCi0K
LSAgICAgICAgUmV0dXJucyB0aGUgdmFsdWUgb3ZlcnJpZGRlbiBieSB0aGlzIGNsYXNzIGZvciBz
b21lIGF0dHJpYnV0ZXMsCi0gICAgICAgIGFuZCBmb3J3YXJkcyB0aGUgY2FsbCB0byBfZmlsZSBm
b3IgdGhlIG90aGVyIGF0dHJpYnV0ZXMuCi0gICAgICAgICIiIgotICAgICAgICBpZiBuYW1lIGlu
ICgnX2ZpbGUnLCAnX21lbW9yaXplZF9saW5lcycsICdfbWF4X21lbW9yaXplZF9saW5lcycsCi0g
ICAgICAgICAgICAgICAgICAgICdfYnVmZmVyZWQnLCAnX2J1ZmZlcmVkX2xpbmUnLCAncmVhZGxp
bmUnLAotICAgICAgICAgICAgICAgICAgICAnZ2V0X21lbW9yaXplZF9saW5lcycpOgotICAgICAg
ICAgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpCi0gICAgICAg
IHJldHVybiBzZWxmLl9maWxlLl9fZ2V0YXR0cmlidXRlX18obmFtZSkKLQotICAgIGRlZiByZWFk
bGluZShzZWxmLCBzaXplPS0xKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgZmlsZS5yZWFkbGluZSBh
bmQgbWVtb3JpemUgdGhlIGxpbmUgcmVhZC4KLQotICAgICAgICBOb3RlIHRoYXQgZXZlbiBpZiBz
aXplIGlzIHNwZWNpZmllZCBhbmQgc21hbGxlciB0aGFuIGFjdHVhbCBzaXplLAotICAgICAgICB0
aGUgd2hvbGUgbGluZSB3aWxsIGJlIHJlYWQgb3V0IGZyb20gdW5kZXJseWluZyBmaWxlIG9iamVj
dCBieQotICAgICAgICBzdWJzZXF1ZW50IHJlYWRsaW5lIGNhbGxzLgotICAgICAgICAiIiIKLSAg
ICAgICAgaWYgc2VsZi5fYnVmZmVyZWQ6Ci0gICAgICAgICAgICBsaW5lID0gc2VsZi5fYnVmZmVy
ZWRfbGluZQotICAgICAgICAgICAgc2VsZi5fYnVmZmVyZWQgPSBGYWxzZQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgbGluZSA9IHNlbGYuX2ZpbGUucmVhZGxpbmUoKQotICAgICAgICAgICAg
aWYgbGluZSBhbmQgbGVuKHNlbGYuX21lbW9yaXplZF9saW5lcykgPCBzZWxmLl9tYXhfbWVtb3Jp
emVkX2xpbmVzOgotICAgICAgICAgICAgICAgIHNlbGYuX21lbW9yaXplZF9saW5lcy5hcHBlbmQo
bGluZSkKLSAgICAgICAgaWYgc2l6ZSA+PSAwIGFuZCBzaXplIDwgbGVuKGxpbmUpOgotICAgICAg
ICAgICAgc2VsZi5fYnVmZmVyZWQgPSBUcnVlCi0gICAgICAgICAgICBzZWxmLl9idWZmZXJlZF9s
aW5lID0gbGluZVtzaXplOl0KLSAgICAgICAgICAgIHJldHVybiBsaW5lWzpzaXplXQotICAgICAg
ICByZXR1cm4gbGluZQotCi0gICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAg
ICAgICIiIkdldCBsaW5lcyBtZW1vcml6ZWQgc28gZmFyLiIiIgotICAgICAgICByZXR1cm4gc2Vs
Zi5fbWVtb3JpemVkX2xpbmVzCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC9tc2d1dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXNn
dXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmM2YzViMWRiY2U5N2Q3MmYy
NmNiNzdjZGI3Zjg0Njc0MWIxYmIzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tc2d1dGlsLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMjE5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1l
dDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIk1lc3NhZ2UgcmVs
YXRlZCB1dGlsaXRpZXMuCi0KLU5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZS9yZWFkIGFy
ZSB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAotbW9kX3B5dGhvbiBkb2N1bWVudCBz
YXlzIHRoYXQgdGhleSBzaG91bGQgYmUgdXNlZCBvbmx5IGluIGNvbm5lY3Rpb24KLWhhbmRsZXJz
LiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIG90aGVyIG9wdGlvbnMuIEZvciBleGFtcGxlLAot
cmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVjYXVzZSB0aGV5IGRvbid0IGFs
bG93IGRpcmVjdCByYXcKLWJ5dGVzIHdyaXRpbmcvcmVhZGluZy4KLSIiIgotCi0KLWZyb20gc2l4
Lm1vdmVzIGltcG9ydCBxdWV1ZQotaW1wb3J0IHRocmVhZGluZwotCi0KLSMgRXhwb3J0IEV4Y2Vw
dGlvbiBzeW1ib2xzIGZyb20gbXNndXRpbCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRl
ZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZh
bGlkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBv
cnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jh
c2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24KLQotCi0jIEFuIEFQSSBmb3IgaGFu
ZGxlciB0byBzZW5kL3JlY2VpdmUgV2ViU29ja2V0IG1lc3NhZ2VzLgotZGVmIGNsb3NlX2Nvbm5l
Y3Rpb24ocmVxdWVzdCk6Ci0gICAgIiIiQ2xvc2UgY29ubmVjdGlvbi4KLQotICAgIEFyZ3M6Ci0g
ICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAiIiIKLSAgICByZXF1ZXN0
LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKLQotCi1kZWYgc2VuZF9tZXNzYWdlKHJlcXVl
c3QsIHBheWxvYWRfZGF0YSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgIiIiU2VuZCBh
IG1lc3NhZ2UgKG9yIHBhcnQgb2YgYSBtZXNzYWdlKS4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJl
cXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgcGF5bG9hZF9kYXRhOiB1bmljb2Rl
IHRleHQgb3Igc3RyIGJpbmFyeSB0byBzZW5kLgotICAgICAgICBlbmQ6IFRydWUgdG8gdGVybWlu
YXRlIGEgbWVzc2FnZS4KLSAgICAgICAgICAgICBGYWxzZSB0byBzZW5kIHBheWxvYWRfZGF0YSBh
cyBwYXJ0IG9mIGEgbWVzc2FnZSB0aGF0IGlzIHRvIGJlCi0gICAgICAgICAgICAgdGVybWluYXRl
ZCBieSBuZXh0IG9yIGxhdGVyIHNlbmRfbWVzc2FnZSBjYWxsIHdpdGggZW5kPVRydWUuCi0gICAg
ICAgIGJpbmFyeTogc2VuZCBwYXlsb2FkX2RhdGEgYXMgYmluYXJ5IGZyYW1lKHMpLgotICAgIFJh
aXNlczoKLSAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIHNlcnZlciBhbHJlYWR5
IHRlcm1pbmF0ZWQuCi0gICAgIiIiCi0gICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdl
KHBheWxvYWRfZGF0YSwgZW5kLCBiaW5hcnkpCi0KLQotZGVmIHJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KToKLSAgICAiIiJSZWNlaXZlIGEgV2ViU29ja2V0IGZyYW1lIGFuZCByZXR1cm4gaXRzIHBh
eWxvYWQgYXMgYSB0ZXh0IGluCi0gICAgdW5pY29kZSBvciBhIGJpbmFyeSBpbiBzdHIuCi0KLSAg
ICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgUmFpc2Vz
OgotICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246ICAgICB3aGVuIGNsaWVudCBzZW5kIGlu
dmFsaWQgZnJhbWUuCi0gICAgICAgIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb246IHdoZW4gY2xp
ZW50IHNlbmQgdW5zdXBwb3J0ZWQgZnJhbWUgZS5nLiBzb21lCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9mIHJlc2VydmVkIGJpdCBpcyBzZXQgYnV0IG5vIGV4dGVuc2lvbiBj
YW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIGl0LgotICAg
ICAgICBJbnZhbGlkVVRGOEV4Y2VwdGlvbjogICAgICB3aGVuIGNsaWVudCBzZW5kIGEgdGV4dCBm
cmFtZSBjb250YWluaW5nIGFueQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnZhbGlkIFVURi04IHN0cmluZy4KLSAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRp
b246IHdoZW4gdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuZXhwZWN0ZWRseS4KLSAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9u
OiAgICAgd2hlbiBjbGllbnQgYWxyZWFkeSB0ZXJtaW5hdGVkLgotICAgICIiIgotICAgIHJldHVy
biByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotCi0KLWRlZiBzZW5kX3Bpbmco
cmVxdWVzdCwgYm9keT0nJyk6Ci0gICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5nKGJvZHkp
Ci0KLQotY2xhc3MgTWVzc2FnZVJlY2VpdmVyKHRocmVhZGluZy5UaHJlYWQpOgotICAgICIiIlRo
aXMgY2xhc3MgcmVjZWl2ZXMgbWVzc2FnZXMgZnJvbSB0aGUgY2xpZW50LgotCi0gICAgVGhpcyBj
bGFzcyBwcm92aWRlcyB0aHJlZSB3YXlzIHRvIHJlY2VpdmUgbWVzc2FnZXM6IGJsb2NraW5nLAot
ICAgIG5vbi1ibG9ja2luZywgYW5kIHZpYSBjYWxsYmFjay4gQ2FsbGJhY2sgaGFzIHRoZSBoaWdo
ZXN0IHByZWNlZGVuY2UuCi0KLSAgICBOb3RlOiBUaGlzIGNsYXNzIHNob3VsZCBub3QgYmUgdXNl
ZCB3aXRoIHRoZSBzdGFuZGFsb25lIHNlcnZlciBmb3Igd3NzCi0gICAgYmVjYXVzZSBweU9wZW5T
U0wgdXNlZCBieSB0aGUgc2VydmVyIHJhaXNlcyBhIGZhdGFsIGVycm9yIGlmIHRoZSBzb2NrZXQK
LSAgICBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCi0gICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgb25tZXNzYWdlPU5vbmUpOgotICAgICAgICAiIiJD
b25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVl
c3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgICAgIG9ubWVzc2FnZTogYSBmdW5jdGlv
biB0byBiZSBjYWxsZWQgd2hlbiBhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQuCi0gICAgICAgICAgICAg
ICAgICAgICAgIE1heSBiZSBOb25lLiBJZiBub3QgTm9uZSwgdGhlIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBvbgotICAgICAgICAgICAgICAgICAgICAgICBhbm90aGVyIHRocmVhZC4gSW4gdGhhdCBjYXNl
LCBNZXNzYWdlUmVjZWl2ZXIucmVjZWl2ZQotICAgICAgICAgICAgICAgICAgICAgICBhbmQgTWVz
c2FnZVJlY2VpdmVyLnJlY2VpdmVfbm93YWl0IGFyZSB1c2VsZXNzCi0gICAgICAgICAgICAgICAg
ICAgICAgIGJlY2F1c2UgdGhleSB3aWxsIG5ldmVyIHJldHVybiBhbnkgbWVzc2FnZXMuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAg
ICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5fcXVldWUgPSBxdWV1ZS5R
dWV1ZSgpCi0gICAgICAgIHNlbGYuX29ubWVzc2FnZSA9IG9ubWVzc2FnZQotICAgICAgICBzZWxm
Ll9zdG9wX3JlcXVlc3RlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0g
ICAgICAgIHNlbGYuc3RhcnQoKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAg
ICAgIG1lc3NhZ2UgPSByZWNlaXZlX21lc3NhZ2Uoc2VsZi5fcmVxdWVzdCkKLSAgICAgICAgICAg
ICAgICBpZiBzZWxmLl9vbm1lc3NhZ2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29ubWVz
c2FnZShtZXNzYWdlKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX3F1ZXVlLnB1dChtZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
Y2xvc2VfY29ubmVjdGlvbihzZWxmLl9yZXF1ZXN0KQotCi0gICAgZGVmIHJlY2VpdmUoc2VsZik6
Ci0gICAgICAgICIiIiBSZWNlaXZlIGEgbWVzc2FnZSBmcm9tIHRoZSBjaGFubmVsLCBibG9ja2lu
Zy4KLQotICAgICAgICBSZXR1cm5zOgotICAgICAgICAgICAgbWVzc2FnZSBhcyBhIHVuaWNvZGUg
c3RyaW5nLgotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3F1ZXVlLmdldCgpCi0K
LSAgICBkZWYgcmVjZWl2ZV9ub3dhaXQoc2VsZik6Ci0gICAgICAgICIiIiBSZWNlaXZlIGEgbWVz
c2FnZSBmcm9tIHRoZSBjaGFubmVsLCBub24tYmxvY2tpbmcuCi0KLSAgICAgICAgUmV0dXJuczoK
LSAgICAgICAgICAgIG1lc3NhZ2UgYXMgYSB1bmljb2RlIHN0cmluZyBpZiBhdmFpbGFibGUuIE5v
bmUgb3RoZXJ3aXNlLgotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbWVz
c2FnZSA9IHNlbGYuX3F1ZXVlLmdldF9ub3dhaXQoKQotICAgICAgICBleGNlcHQgcXVldWUuRW1w
dHk6Ci0gICAgICAgICAgICBtZXNzYWdlID0gTm9uZQotICAgICAgICByZXR1cm4gbWVzc2FnZQot
Ci0gICAgZGVmIHN0b3Aoc2VsZik6Ci0gICAgICAgICIiIlJlcXVlc3QgdG8gc3RvcCB0aGlzIGlu
c3RhbmNlLgotCi0gICAgICAgIFRoZSBpbnN0YW5jZSB3aWxsIGJlIHN0b3BwZWQgYWZ0ZXIgcmVj
ZWl2aW5nIHRoZSBuZXh0IG1lc3NhZ2UuCi0gICAgICAgIFRoaXMgbWV0aG9kIG1heSBub3QgYmUg
dmVyeSB1c2VmdWwsIGJ1dCB0aGVyZSBpcyBubyBjbGVhbiB3YXkKLSAgICAgICAgaW4gUHl0aG9u
IHRvIGZvcmNlZnVsbHkgc3RvcCBhIHJ1bm5pbmcgdGhyZWFkLgotICAgICAgICAiIiIKLSAgICAg
ICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBUcnVlCi0KLQotY2xhc3MgTWVzc2FnZVNlbmRlcih0
aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJUaGlzIGNsYXNzIHNlbmRzIG1lc3NhZ2VzIHRvIHRo
ZSBjbGllbnQuCi0KLSAgICBUaGlzIGNsYXNzIHByb3ZpZGVzIGJvdGggc3luY2hyb25vdXMgYW5k
IGFzeW5jaHJvbm91cyB3YXlzIHRvIHNlbmQKLSAgICBtZXNzYWdlcy4KLQotICAgIE5vdGU6IFRo
aXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSB1c2VkIHdpdGggdGhlIHN0YW5kYWxvbmUgc2VydmVyIGZv
ciB3c3MKLSAgICBiZWNhdXNlIHB5T3BlblNTTCB1c2VkIGJ5IHRoZSBzZXJ2ZXIgcmFpc2VzIGEg
ZmF0YWwgZXJyb3IgaWYgdGhlIHNvY2tldAotICAgIGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUg
dGhyZWFkcy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAg
ICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAg
ICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgICIiIgotICAgICAgICB0
aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSBy
ZXF1ZXN0Ci0gICAgICAgIHNlbGYuX3F1ZXVlID0gcXVldWUuUXVldWUoKQotICAgICAgICBzZWxm
LnNldERhZW1vbihUcnVlKQotICAgICAgICBzZWxmLnN0YXJ0KCkKLQotICAgIGRlZiBydW4oc2Vs
Zik6Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBtZXNzYWdlLCBjb25kaXRpb24g
PSBzZWxmLl9xdWV1ZS5nZXQoKQotICAgICAgICAgICAgY29uZGl0aW9uLmFjcXVpcmUoKQotICAg
ICAgICAgICAgc2VuZF9tZXNzYWdlKHNlbGYuX3JlcXVlc3QsIG1lc3NhZ2UpCi0gICAgICAgICAg
ICBjb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgICAgIGNvbmRpdGlvbi5yZWxlYXNlKCkKLQot
ICAgIGRlZiBzZW5kKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJTZW5kIGEgbWVzc2FnZSwg
YmxvY2tpbmcuIiIiCi0KLSAgICAgICAgY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigp
Ci0gICAgICAgIGNvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fcXVldWUucHV0KCht
ZXNzYWdlLCBjb25kaXRpb24pKQotICAgICAgICBjb25kaXRpb24ud2FpdCgpCi0KLSAgICBkZWYg
c2VuZF9ub3dhaXQoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIlNlbmQgYSBtZXNzYWdlLCBu
b24tYmxvY2tpbmcuIiIiCi0KLSAgICAgICAgc2VsZi5fcXVldWUucHV0KChtZXNzYWdlLCB0aHJl
YWRpbmcuQ29uZGl0aW9uKCkpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQvbXV4LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXV4LnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTRmOGExNDY0NWM1NGI2NzRiODE0NTgz
NjczMTliNjYwMzA0NDdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L211eC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE4
ODUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIGNs
YXNzZXMgYW5kIGhlbHBlciBmdW5jdGlvbnMgZm9yIG11bHRpcGxleGluZyBleHRlbnNpb24uCi0K
LVNwZWNpZmljYXRpb246Ci1odHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWh5
Ymktd2Vic29ja2V0LW11bHRpcGxleGluZy0wNgotIiIiCi0KLQotaW1wb3J0IGNvbGxlY3Rpb25z
Ci1pbXBvcnQgY29weQotaW1wb3J0IGVtYWlsCi1pbXBvcnQgZW1haWwucGFyc2VyCi1pbXBvcnQg
bG9nZ2luZwotaW1wb3J0IG1hdGgKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCB0aHJlYWRpbmcKLWlt
cG9ydCB0cmFjZWJhY2sKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IHV0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFk
T3BlcmF0aW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1w
b3J0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5f
c3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBGcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHli
aSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJp
IGltcG9ydCBjcmVhdGVfYmluYXJ5X2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFt
X2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5Ci1mcm9tIG1vZF9weXdl
YnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2xlbmd0aF9oZWFkZXIKLWZyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgcGFyc2VfZnJhbWUKLWZyb20gbW9kX3B5
d2Vic29ja2V0LmhhbmRzaGFrZSBpbXBvcnQgaHliaQotCi0KLV9DT05UUk9MX0NIQU5ORUxfSUQg
PSAwCi1fREVGQVVMVF9DSEFOTkVMX0lEID0gMQotCi1fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9S
RVFVRVNUID0gMAotX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0UgPSAxCi1fTVVYX09Q
Q09ERV9GTE9XX0NPTlRST0wgPSAyCi1fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwgPSAzCi1fTVVY
X09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UID0gNAotCi1fTUFYX0NIQU5ORUxfSUQgPSAyICoqIDI5
IC0gMQotCi1fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUyA9IDY0Ci1fSU5JVElBTF9R
VU9UQV9GT1JfQ0xJRU5UID0gOCAqIDEwMjQKLQotX0hBTkRTSEFLRV9FTkNPRElOR19JREVOVElU
WSA9IDAKLV9IQU5EU0hBS0VfRU5DT0RJTkdfREVMVEEgPSAxCi0KLSMgV2UgbmVlZCBvbmx5IHRo
ZXNlIHN0YXR1cyBjb2RlIGZvciBub3cuCi1fSFRUUF9CQURfUkVTUE9OU0VfTUVTU0FHRVMgPSB7
Ci0gICAgY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUOiAnQmFkIFJlcXVlc3QnLAotfQot
Ci0jIERyb3BDaGFubmVsIHJlYXNvbiBjb2RlCi0jIFRPRE8oYmFzaGkpOiBEZWZpbmUgYWxsIHJl
YXNvbiBjb2RlIGRlZmluZWQgaW4gLTA1IGRyYWZ0LgotX0RST1BfQ09ERV9OT1JNQUxfQ0xPU1VS
RSA9IDEwMDAKLQotX0RST1BfQ09ERV9JTlZBTElEX0VOQ0FQU1VMQVRJTkdfTUVTU0FHRSA9IDIw
MDEKLV9EUk9QX0NPREVfQ0hBTk5FTF9JRF9UUlVOQ0FURUQgPSAyMDAyCi1fRFJPUF9DT0RFX0VO
Q0FQU1VMQVRFRF9GUkFNRV9JU19UUlVOQ0FURUQgPSAyMDAzCi1fRFJPUF9DT0RFX1VOS05PV05f
TVVYX09QQ09ERSA9IDIwMDQKLV9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSyA9
IDIwMDUKLV9EUk9QX0NPREVfQ0hBTk5FTF9BTFJFQURZX0VYSVNUUyA9IDIwMDYKLV9EUk9QX0NP
REVfTkVXX0NIQU5ORUxfU0xPVF9WSU9MQVRJT04gPSAyMDA3Ci1fRFJPUF9DT0RFX1VOS05PV05f
UkVRVUVTVF9FTkNPRElORyA9IDIwMTAKLQotX0RST1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElP
TiA9IDMwMDUKLV9EUk9QX0NPREVfU0VORF9RVU9UQV9PVkVSRkxPVyA9IDMwMDYKLV9EUk9QX0NP
REVfQUNLTk9XTEVER0VEID0gMzAwOAotX0RST1BfQ09ERV9CQURfRlJBR01FTlRBVElPTiA9IDMw
MDkKLQotCi1jbGFzcyBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0KLSAgICAi
IiJFeGNlcHRpb24gaW4gaGFuZGxpbmcgbXVsdGlwbGV4aW5nIGV4dGVuc2lvbi4iIiIKLQotICAg
IHBhc3MKLQotCi0jIFRlbXBvcmFyeQotY2xhc3MgTXV4Tm90SW1wbGVtZW50ZWRFeGNlcHRpb24o
RXhjZXB0aW9uKToKLQotICAgICIiIlJhaXNlZCB3aGVuIGEgZmxvdyBlbnRlcnMgdW5pbXBsZW1l
bnRlZCBjb2RlIHBhdGguIiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3MgTG9naWNhbENvbm5lY3Rp
b25DbG9zZWRFeGNlcHRpb24oRXhjZXB0aW9uKToKLQotICAgICIiIlJhaXNlZCB3aGVuIGxvZ2lj
YWwgY29ubmVjdGlvbiBpcyBncmFjZWZ1bGx5IGNsb3NlZC4iIiIKLQotICAgIHBhc3MKLQotCi1j
bGFzcyBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihFeGNlcHRpb24pOgotCi0gICAgIiIiUmFpc2Vk
IHdoZW4gdGhlcmUgaXMgYSBwaHlzaWNhbCBjb25uZWN0aW9uIGVycm9yLiIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIGRyb3BfY29kZSwgbWVzc2FnZT0nJyk6Ci0gICAgICAgIHN1cGVyKFBo
eXNpY2FsQ29ubmVjdGlvbkVycm9yLCBzZWxmKS5fX2luaXRfXygKLSAgICAgICAgICAgICdjb2Rl
PSVkLCBtZXNzYWdlPSVyJyAlIChkcm9wX2NvZGUsIG1lc3NhZ2UpKQotICAgICAgICBzZWxmLmRy
b3BfY29kZSA9IGRyb3BfY29kZQotICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCi0KLQot
Y2xhc3MgTG9naWNhbENoYW5uZWxFcnJvcihFeGNlcHRpb24pOgotCi0gICAgIiIiUmFpc2VkIHdo
ZW4gdGhlcmUgaXMgYSBsb2dpY2FsIGNoYW5uZWwgZXJyb3IuIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgY2hhbm5lbF9pZCwgZHJvcF9jb2RlLCBtZXNzYWdlPScnKToKLSAgICAgICAgIiIi
SW5pdGlhbGl6ZSB0aGUgZXJyb3Igd2l0aCBhIHN0YXR1cyBtZXNzYWdlLiIiIgotICAgICAgICBz
dXBlcihMb2dpY2FsQ2hhbm5lbEVycm9yLCBzZWxmKS5fX2luaXRfXygKLSAgICAgICAgICAgICdj
aGFubmVsX2lkPSVkLCBjb2RlPSVkLCBtZXNzYWdlPSVyJyAlICgKLSAgICAgICAgICAgICAgICBj
aGFubmVsX2lkLCBkcm9wX2NvZGUsIG1lc3NhZ2UpKQotICAgICAgICBzZWxmLmNoYW5uZWxfaWQg
PSBjaGFubmVsX2lkCi0gICAgICAgIHNlbGYuZHJvcF9jb2RlID0gZHJvcF9jb2RlCi0gICAgICAg
IHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKLQotCi1kZWYgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5u
ZWxfaWQpOgotICAgIGlmIGNoYW5uZWxfaWQgPCAwOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCdDaGFubmVsIGlkICVkIG11c3Qgbm90IGJlIG5lZ2F0aXZlJyAlIGNoYW5uZWxfaWQpCi0KLSAg
ICBpZiBjaGFubmVsX2lkIDwgMiAqKiA3OgotICAgICAgICByZXR1cm4gY2hyKGNoYW5uZWxfaWQp
Ci0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMTQ6Ci0gICAgICAgIHJldHVybiBzdHJ1Y3QucGFj
aygnIUgnLCAweDgwMDAgKyBjaGFubmVsX2lkKQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDIx
OgotICAgICAgICBmaXJzdCA9IGNocigweGMwICsgKGNoYW5uZWxfaWQgPj4gMTYpKQotICAgICAg
ICByZXR1cm4gZmlyc3QgKyBzdHJ1Y3QucGFjaygnIUgnLCBjaGFubmVsX2lkICYgMHhmZmZmKQot
ICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDI5OgotICAgICAgICByZXR1cm4gc3RydWN0LnBhY2so
JyFMJywgMHhlMDAwMDAwMCArIGNoYW5uZWxfaWQpCi0KLSAgICByYWlzZSBWYWx1ZUVycm9yKCdD
aGFubmVsIGlkICVkIGlzIHRvbyBsYXJnZScgJSBjaGFubmVsX2lkKQotCi0KLWRlZiBfZW5jb2Rl
X251bWJlcihudW1iZXIpOgotICAgIHJldHVybiBjcmVhdGVfbGVuZ3RoX2hlYWRlcihudW1iZXIs
IEZhbHNlKQotCi0KLWRlZiBfY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQs
IGVuY29kZWRfaGFuZHNoYWtlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5j
b2Rpbmc9MCwgcmVqZWN0ZWQ9RmFsc2UpOgotICAgIGlmIGVuY29kaW5nICE9IDAgYW5kIGVuY29k
aW5nICE9IDE6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgZW5jb2RpbmcgJWQn
ICUgZW5jb2RpbmcpCi0KLSAgICBmaXJzdF9ieXRlID0gKChfTVVYX09QQ09ERV9BRERfQ0hBTk5F
TF9SRVNQT05TRSA8PCA1KSB8Ci0gICAgICAgICAgICAgICAgICAocmVqZWN0ZWQgPDwgNCkgfCBl
bmNvZGluZykKLSAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKwotICAgICAgICAgICAgIF9l
bmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCi0gICAgICAgICAgICAgX2VuY29kZV9udW1i
ZXIobGVuKGVuY29kZWRfaGFuZHNoYWtlKSkgKwotICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlKQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBfY3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFu
bmVsX2lkLCBjb2RlPU5vbmUsIG1lc3NhZ2U9JycpOgotICAgIGlmIGxlbihtZXNzYWdlKSA+IDAg
YW5kIGNvZGUgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ29kZSBtdXN0IGJl
IHNwZWNpZmllZCBpZiBtZXNzYWdlIGlzIHNwZWNpZmllZCcpCi0KLSAgICBmaXJzdF9ieXRlID0g
X01VWF9PUENPREVfRFJPUF9DSEFOTkVMIDw8IDUKLSAgICBibG9jayA9IGNocihmaXJzdF9ieXRl
KSArIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKQotICAgIGlmIGNvZGUgaXMgTm9uZToK
LSAgICAgICAgYmxvY2sgKz0gX2VuY29kZV9udW1iZXIoMCkgICMgUmVhc29uIHNpemUKLSAgICBl
bHNlOgotICAgICAgICByZWFzb24gPSBzdHJ1Y3QucGFjaygnIUgnLCBjb2RlKSArIG1lc3NhZ2UK
LSAgICAgICAgcmVhc29uX3NpemUgPSBfZW5jb2RlX251bWJlcihsZW4ocmVhc29uKSkKLSAgICAg
ICAgYmxvY2sgKz0gcmVhc29uX3NpemUgKyByZWFzb24KLQotICAgIHJldHVybiBibG9jawotCi0K
LWRlZiBfY3JlYXRlX2Zsb3dfY29udHJvbChjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSk6
Ci0gICAgZmlyc3RfYnl0ZSA9IF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCA8PCA1Ci0gICAgYmxv
Y2sgPSAoY2hyKGZpcnN0X2J5dGUpICsKLSAgICAgICAgICAgICBfZW5jb2RlX2NoYW5uZWxfaWQo
Y2hhbm5lbF9pZCkgKwotICAgICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKHJlcGxlbmlzaGVkX3F1
b3RhKSkKLSAgICByZXR1cm4gYmxvY2sKLQotCi1kZWYgX2NyZWF0ZV9uZXdfY2hhbm5lbF9zbG90
KHNsb3RzLCBzZW5kX3F1b3RhKToKLSAgICBpZiBzbG90cyA8IDAgb3Igc2VuZF9xdW90YSA8IDA6
Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3Nsb3RzIGFuZCBzZW5kX3F1b3RhIG11c3QgYmUg
bm9uLW5lZ2F0aXZlLicpCi0gICAgZmlyc3RfYnl0ZSA9IF9NVVhfT1BDT0RFX05FV19DSEFOTkVM
X1NMT1QgPDwgNQotICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArCi0gICAgICAgICAgICAg
X2VuY29kZV9udW1iZXIoc2xvdHMpICsKLSAgICAgICAgICAgICBfZW5jb2RlX251bWJlcihzZW5k
X3F1b3RhKSkKLSAgICByZXR1cm4gYmxvY2sKLQotCi1kZWYgX2NyZWF0ZV9mYWxsYmFja19uZXdf
Y2hhbm5lbF9zbG90KCk6Ci0gICAgZmlyc3RfYnl0ZSA9IChfTVVYX09QQ09ERV9ORVdfQ0hBTk5F
TF9TTE9UIDw8IDUpIHwgMSAgIyBTZXQgdGhlIEYgZmxhZwotICAgIGJsb2NrID0gKGNocihmaXJz
dF9ieXRlKSArIF9lbmNvZGVfbnVtYmVyKDApICsgX2VuY29kZV9udW1iZXIoMCkpCi0gICAgcmV0
dXJuIGJsb2NrCi0KLQotZGVmIF9wYXJzZV9yZXF1ZXN0X3RleHQocmVxdWVzdF90ZXh0KToKLSAg
ICByZXF1ZXN0X2xpbmUsIGhlYWRlcl9saW5lcyA9IHJlcXVlc3RfdGV4dC5zcGxpdCgnXHJcbics
IDEpCi0KLSAgICB3b3JkcyA9IHJlcXVlc3RfbGluZS5zcGxpdCgnICcpCi0gICAgaWYgbGVuKHdv
cmRzKSAhPSAzOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgUmVxdWVzdC1MaW5lIHN5
bnRheCAlcicgJSByZXF1ZXN0X2xpbmUpCi0gICAgW2NvbW1hbmQsIHBhdGgsIHZlcnNpb25dID0g
d29yZHMKLSAgICBpZiB2ZXJzaW9uICE9ICdIVFRQLzEuMSc6Ci0gICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ0JhZCByZXF1ZXN0IHZlcnNpb24gJXInICUgdmVyc2lvbikKLQotICAgICMgZW1haWwu
cGFyc2VyLlBhcnNlcigpIHBhcnNlcyBSRkMgMjgyMiAoUkZDIDgyMikgc3R5bGUgaGVhZGVycy4K
LSAgICAjIFJGQyA2NDU1IHJlZmVycyBSRkMgMjYxNiBmb3IgaGFuZHNoYWtlIHBhcnNpbmcsIGFu
ZCBSRkMgMjYxNiByZWZlcnMKLSAgICAjIFJGQyA4MjIuCi0gICAgaGVhZGVycyA9IGVtYWlsLnBh
cnNlci5QYXJzZXIoKS5wYXJzZXN0cihoZWFkZXJfbGluZXMpCi0gICAgcmV0dXJuIGNvbW1hbmQs
IHBhdGgsIHZlcnNpb24sIGhlYWRlcnMKLQotCi1jbGFzcyBfQ29udHJvbEJsb2NrKG9iamVjdCk6
Ci0KLSAgICAiIiJBIHN0cnVjdHVyZSB0aGF0IGhvbGRzIHBhcnNpbmcgcmVzdWx0IG9mIG11bHRp
cGxleGluZyBjb250cm9sIGJsb2NrLgotCi0gICAgQ29udHJvbCBibG9jayBzcGVjaWZpYyBhdHRy
aWJ1dGVzIHdpbGwgYmUgYWRkZWQgYnkgX011eEZyYW1lUGF5bG9hZFBhcnNlci4KLSAgICAoZS5n
LiBlbmNvZGVkX2hhbmRzaGFrZSB3aWxsIGJlIGFkZGVkIGZvciBBZGRDaGFubmVsUmVxdWVzdCBh
bmQKLSAgICBBZGRDaGFubmVsUmVzcG9uc2UpCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgb3Bjb2RlKToKLSAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUKLQotCi1jbGFzcyBf
TXV4RnJhbWVQYXlsb2FkUGFyc2VyKG9iamVjdCk6Ci0KLSAgICAiIiJBIGNsYXNzIHRoYXQgcGFy
c2VzIG11bHRpcGxleGVkIGZyYW1lIHBheWxvYWQuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcGF5bG9hZCk6Ci0gICAgICAgIHNlbGYuX2RhdGEgPSBwYXlsb2FkCi0gICAgICAgIHNlbGYu
X3JlYWRfcG9zaXRpb24gPSAwCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQotCi0gICAgZGVmIHJlYWRfY2hhbm5lbF9pZChzZWxmKToKLSAgICAgICAg
IiIiUmVhZCBjaGFubmVsIGlkLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIFZhbHVl
RXJyb3I6IHdoZW4gdGhlIHBheWxvYWQgZG9lc24ndCBjb250YWluCi0gICAgICAgICAgICAgICAg
dmFsaWQgY2hhbm5lbCBpZC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJlbWFpbmluZ19sZW5ndGgg
PSBsZW4oc2VsZi5fZGF0YSkgLSBzZWxmLl9yZWFkX3Bvc2l0aW9uCi0gICAgICAgIHBvcyA9IHNl
bGYuX3JlYWRfcG9zaXRpb24KLSAgICAgICAgaWYgcmVtYWluaW5nX2xlbmd0aCA9PSAwOgotICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0K
LSAgICAgICAgY2hhbm5lbF9pZCA9IG9yZChzZWxmLl9kYXRhW3Bvc10pCi0gICAgICAgIGNoYW5u
ZWxfaWRfbGVuZ3RoID0gMQotICAgICAgICBpZiBjaGFubmVsX2lkICYgMHhlMCA9PSAweGUwOgot
ICAgICAgICAgICAgaWYgcmVtYWluaW5nX2xlbmd0aCA8IDQ6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAgICAgICBj
aGFubmVsX2lkID0gc3RydWN0LnVucGFjaygnIUwnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fZGF0YVtwb3M6cG9zKzRdKVswXSAmIDB4MWZmZmZmZmYKLSAg
ICAgICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gNAotICAgICAgICBlbGlmIGNoYW5uZWxfaWQg
JiAweGMwID09IDB4YzA6Ci0gICAgICAgICAgICBpZiByZW1haW5pbmdfbGVuZ3RoIDwgMzoKLSAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0
JykKLSAgICAgICAgICAgIGNoYW5uZWxfaWQgPSAoKChjaGFubmVsX2lkICYgMHgxZikgPDwgMTYp
ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0LnVucGFjaygnIUgnLCBzZWxmLl9k
YXRhW3BvcysxOnBvcyszXSlbMF0pCi0gICAgICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDMK
LSAgICAgICAgZWxpZiBjaGFubmVsX2lkICYgMHg4MCA9PSAweDgwOgotICAgICAgICAgICAgaWYg
cmVtYWluaW5nX2xlbmd0aCA8IDI6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcign
SW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAgICAgICBjaGFubmVsX2lkID0gc3Ry
dWN0LnVucGFjaygnIUgnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fZGF0YVtwb3M6cG9zKzJdKVswXSAmIDB4M2ZmZgotICAgICAgICAgICAgY2hhbm5lbF9p
ZF9sZW5ndGggPSAyCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gY2hhbm5lbF9pZF9s
ZW5ndGgKLQotICAgICAgICByZXR1cm4gY2hhbm5lbF9pZAotCi0gICAgZGVmIHJlYWRfaW5uZXJf
ZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIlJlYWQgYW4gaW5uZXIgZnJhbWUuCi0KLSAgICAgICAg
UmFpc2VzOgotICAgICAgICAgICAgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3I6IHdoZW4gdGhlIGlu
bmVyIGZyYW1lIGlzIGludmFsaWQuCi0gICAgICAgICIiIgotICAgICAgICBpZiBsZW4oc2VsZi5f
ZGF0YSkgPT0gc2VsZi5fcmVhZF9wb3NpdGlvbjoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2Fs
Q29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfRU5DQVBTVUxBVEVE
X0ZSQU1FX0lTX1RSVU5DQVRFRCkKLQotICAgICAgICBiaXRzID0gb3JkKHNlbGYuX2RhdGFbc2Vs
Zi5fcmVhZF9wb3NpdGlvbl0pCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gMQotICAg
ICAgICBmaW4gPSAoYml0cyAmIDB4ODApID09IDB4ODAKLSAgICAgICAgcnN2MSA9IChiaXRzICYg
MHg0MCkgPT0gMHg0MAotICAgICAgICByc3YyID0gKGJpdHMgJiAweDIwKSA9PSAweDIwCi0gICAg
ICAgIHJzdjMgPSAoYml0cyAmIDB4MTApID09IDB4MTAKLSAgICAgICAgb3Bjb2RlID0gYml0cyAm
IDB4ZgotICAgICAgICBwYXlsb2FkID0gc2VsZi5yZW1haW5pbmdfZGF0YSgpCi0gICAgICAgICMg
Q29uc3VtZSByZXN0IG9mIHRoZSBtZXNzYWdlIHdoaWNoIGlzIHBheWxvYWQgZGF0YSBvZiB0aGUg
b3JpZ2luYWwKLSAgICAgICAgIyBmcmFtZS4KLSAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiA9
IGxlbihzZWxmLl9kYXRhKQotICAgICAgICByZXR1cm4gZmluLCByc3YxLCByc3YyLCByc3YzLCBv
cGNvZGUsIHBheWxvYWQKLQotICAgIGRlZiBfcmVhZF9udW1iZXIoc2VsZik6Ci0gICAgICAgIGlm
IHNlbGYuX3JlYWRfcG9zaXRpb24gKyAxID4gbGVuKHNlbGYuX2RhdGEpOgotICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAnQ2Fubm90IHJlYWQgdGhlIGZpcnN0
IGJ5dGUgb2YgbnVtYmVyIGZpZWxkJykKLQotICAgICAgICBudW1iZXIgPSBvcmQoc2VsZi5fZGF0
YVtzZWxmLl9yZWFkX3Bvc2l0aW9uXSkKLSAgICAgICAgaWYgbnVtYmVyICYgMHg4MCA9PSAweDgw
OgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAnVGhlIG1v
c3Qgc2lnbmlmaWNhbnQgYml0IG9mIHRoZSBmaXJzdCBieXRlIG9mIG51bWJlciBzaG91bGQgJwot
ICAgICAgICAgICAgICAgICdiZSB1bnNldCcpCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24g
Kz0gMQotICAgICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9uCi0gICAgICAgIGlmIG51bWJl
ciA9PSAxMjc6Ci0gICAgICAgICAgICBpZiBwb3MgKyA4ID4gbGVuKHNlbGYuX2RhdGEpOgotICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgbnVtYmVyIGZpZWxkJykKLSAg
ICAgICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gOAotICAgICAgICAgICAgbnVtYmVyID0g
c3RydWN0LnVucGFjaygnIVEnLCBzZWxmLl9kYXRhW3Bvczpwb3MrOF0pWzBdCi0gICAgICAgICAg
ICBpZiBudW1iZXIgPiAweDdGRkZGRkZGRkZGRkZGRkY6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcignRW5jb2RlZCBudW1iZXIoJWQpID49IDJeNjMnICUgbnVtYmVyKQotICAgICAg
ICAgICAgaWYgbnVtYmVyIDw9IDB4RkZGRjoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKAotICAgICAgICAgICAgICAgICAgICAnJWQgc2hvdWxkIG5vdCBiZSBlbmNvZGVkIGJ5IDkg
Ynl0ZXMgZW5jb2RpbmcnICUgbnVtYmVyKQotICAgICAgICAgICAgcmV0dXJuIG51bWJlcgotICAg
ICAgICBpZiBudW1iZXIgPT0gMTI2OgotICAgICAgICAgICAgaWYgcG9zICsgMiA+IGxlbihzZWxm
Ll9kYXRhKToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIG51bWJl
ciBmaWVsZCcpCi0gICAgICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDIKLSAgICAgICAg
ICAgIG51bWJlciA9IHN0cnVjdC51bnBhY2soJyFIJywgc2VsZi5fZGF0YVtwb3M6cG9zKzJdKVsw
XQotICAgICAgICAgICAgaWYgbnVtYmVyIDw9IDEyNToKLSAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnJWQgc2hvdWxkIG5vdCBiZSBlbmNvZGVk
IGJ5IDMgYnl0ZXMgZW5jb2RpbmcnICUgbnVtYmVyKQotICAgICAgICByZXR1cm4gbnVtYmVyCi0K
LSAgICBkZWYgX3JlYWRfc2l6ZV9hbmRfY29udGVudHMoc2VsZik6Ci0gICAgICAgICIiIlJlYWQg
ZGF0YSB0aGF0IGNvbnNpc3RzIG9mIHRoZSBmb2xsb3dpbmc6Ci0gICAgICAgICAgICAtIHRoZSBz
aXplIG9mIHRoZSBjb250ZW50cyBlbmNvZGVkIHRoZSBzYW1lIHdheSBhcyBwYXlsb2FkIGxlbmd0
aAotICAgICAgICAgICAgICBvZiB0aGUgV2ViU29ja2V0IFByb3RvY29sIHdpdGggMSBiaXQgcGFk
ZGluZyBhdCB0aGUgaGVhZC4KLSAgICAgICAgICAgIC0gdGhlIGNvbnRlbnRzLgotICAgICAgICAi
IiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2l6ZSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkK
LSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNp
Y2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihlKSkKLSAgICAg
ICAgcG9zID0gc2VsZi5fcmVhZF9wb3NpdGlvbgotICAgICAgICBpZiBwb3MgKyBzaXplID4gbGVu
KHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3Io
Ci0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAot
ICAgICAgICAgICAgICAgICdDYW5ub3QgcmVhZCAlZCBieXRlcyBkYXRhJyAlIHNpemUpCi0KLSAg
ICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiArPSBzaXplCi0gICAgICAgIHJldHVybiBzZWxmLl9k
YXRhW3Bvczpwb3Mrc2l6ZV0KLQotICAgIGRlZiBfcmVhZF9hZGRfY2hhbm5lbF9yZXF1ZXN0KHNl
bGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spOgotICAgICAgICByZXNlcnZlZCA9IChmaXJz
dF9ieXRlID4+IDIpICYgMHg3Ci0gICAgICAgIGlmIHJlc2VydmVkICE9IDA6Ci0gICAgICAgICAg
ICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9D
T0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgJ1Jlc2VydmVk
IGJpdHMgbXVzdCBiZSB1bnNldCcpCi0KLSAgICAgICAgIyBJbnZhbGlkIGVuY29kaW5nIHdpbGwg
YmUgaGFuZGxlZCBieSBNdXhIYW5kbGVyLgotICAgICAgICBlbmNvZGluZyA9IGZpcnN0X2J5dGUg
JiAweDMKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lk
ID0gc2VsZi5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBl
OgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9J
TlZBTElEX01VWF9DT05UUk9MX0JMT0NLKQotICAgICAgICBjb250cm9sX2Jsb2NrLmVuY29kaW5n
ID0gZW5jb2RpbmcKLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBzZWxmLl9yZWFkX3NpemVf
YW5kX2NvbnRlbnRzKCkKLSAgICAgICAgY29udHJvbF9ibG9jay5lbmNvZGVkX2hhbmRzaGFrZSA9
IGVuY29kZWRfaGFuZHNoYWtlCi0gICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCi0KLSAgICBk
ZWYgX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2Uoc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9i
bG9jayk6Ci0gICAgICAgIHJlc2VydmVkID0gKGZpcnN0X2J5dGUgPj4gMikgJiAweDMKLSAgICAg
ICAgaWYgcmVzZXJ2ZWQgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlv
bkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9C
TE9DSywKLSAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKLQot
ICAgICAgICBjb250cm9sX2Jsb2NrLmFjY2VwdGVkID0gKGZpcnN0X2J5dGUgPj4gNCkgJiAxCi0g
ICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RpbmcgPSBmaXJzdF9ieXRlICYgMHgzCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9pZCA9IHNlbGYucmVhZF9j
aGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAg
IHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09O
VFJPTF9CTE9DSykKLSAgICAgICAgY29udHJvbF9ibG9jay5lbmNvZGVkX2hhbmRzaGFrZSA9IHNl
bGYuX3JlYWRfc2l6ZV9hbmRfY29udGVudHMoKQotICAgICAgICByZXR1cm4gY29udHJvbF9ibG9j
awotCi0gICAgZGVmIF9yZWFkX2Zsb3dfY29udHJvbChzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9s
X2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQgPSBmaXJzdF9ieXRlICYgMHgxZgotICAgICAgICBp
ZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJy
b3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NL
LAotICAgICAgICAgICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5zZXQnKQotCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9pZCA9IHNlbGYucmVh
ZF9jaGFubmVsX2lkKCkKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suc2VuZF9xdW90YSA9IHNl
bGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAg
ICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9N
VVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0cihlKSkKLQotICAgICAgICByZXR1cm4gY29udHJvbF9ibG9jawotCi0gICAgZGVmIF9y
ZWFkX2Ryb3BfY2hhbm5lbChzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAg
ICAgcmVzZXJ2ZWQgPSBmaXJzdF9ieXRlICYgMHgxZgotICAgICAgICBpZiByZXNlcnZlZCAhPSAw
OgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAg
ICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAg
ICAgICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5zZXQnKQotCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9pZCA9IHNlbGYucmVhZF9jaGFubmVsX2lkKCkK
LSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNp
Y2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSykK
LSAgICAgICAgcmVhc29uID0gc2VsZi5fcmVhZF9zaXplX2FuZF9jb250ZW50cygpCi0gICAgICAg
IGlmIGxlbihyZWFzb24pID09IDA6Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLmRyb3BfY29k
ZSA9IE5vbmUKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9tZXNzYWdlID0gJycKLSAg
ICAgICAgZWxpZiBsZW4ocmVhc29uKSA+PSAyOgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5k
cm9wX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHJlYXNvbls6Ml0pWzBdCi0gICAgICAgICAg
ICBjb250cm9sX2Jsb2NrLmRyb3BfbWVzc2FnZSA9IHJlYXNvblsyOl0KLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAg
ICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAg
ICAnUmVjZWl2ZWQgRHJvcENoYW5uZWwgdGhhdCBjb25haW5zIG9ubHkgMS1ieXRlIHJlYXNvbicp
Ci0gICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCi0KLSAgICBkZWYgX3JlYWRfbmV3X2NoYW5u
ZWxfc2xvdChzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2
ZWQgPSBmaXJzdF9ieXRlICYgMHgxZQotICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAg
ICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RS
T1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZXNl
cnZlZCBiaXRzIG11c3QgYmUgdW5zZXQnKQotICAgICAgICBjb250cm9sX2Jsb2NrLmZhbGxiYWNr
ID0gZmlyc3RfYnl0ZSAmIDEKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29udHJvbF9ibG9j
ay5zbG90cyA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2su
c2VuZF9xdW90YSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJy
b3IgYXMgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9Q
X0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cihlKSkKLSAgICAgICAgcmV0dXJuIGNvbnRyb2xfYmxvY2sK
LQotICAgIGRlZiByZWFkX2NvbnRyb2xfYmxvY2tzKHNlbGYpOgotICAgICAgICAiIiJSZWFkIGNv
bnRyb2wgYmxvY2socykuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICBQaHlzaWNhbENv
bm5lY3Rpb25FcnJvcjogd2hlbiB0aGUgcGF5bG9hZCBjb250YWlucyBpbnZhbGlkIGNvbnRyb2wK
LSAgICAgICAgICAgICAgIGJsb2NrKHMpLgotICAgICAgICAgICBTdG9wSXRlcmF0aW9uOiB3aGVu
IG5vIGNvbnRyb2wgYmxvY2tzIGxlZnQuCi0gICAgICAgICIiIgotICAgICAgICB3aGlsZSBzZWxm
Ll9yZWFkX3Bvc2l0aW9uIDwgbGVuKHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgZmlyc3RfYnl0
ZSA9IG9yZChzZWxmLl9kYXRhW3NlbGYuX3JlYWRfcG9zaXRpb25dKQotICAgICAgICAgICAgc2Vs
Zi5fcmVhZF9wb3NpdGlvbiArPSAxCi0gICAgICAgICAgICBvcGNvZGUgPSAoZmlyc3RfYnl0ZSA+
PiA1KSAmIDB4NwotICAgICAgICAgICAgY29udHJvbF9ibG9jayA9IF9Db250cm9sQmxvY2sob3Bj
b2RlPW9wY29kZSkKLSAgICAgICAgICAgIGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hB
Tk5FTF9SRVFVRVNUOgotICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuX3JlYWRfYWRkX2NoYW5u
ZWxfcmVxdWVzdChmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxpZiBv
cGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAgICAgICAgICAg
ICAgeWllbGQgc2VsZi5fcmVhZF9hZGRfY2hhbm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAgICAg
ICAgICAgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2Rl
ID09IF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTDoKLSAgICAgICAgICAgICAgICB5aWVsZCBzZWxm
Ll9yZWFkX2Zsb3dfY29udHJvbChmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQotICAgICAgICAg
ICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfRFJPUF9DSEFOTkVMOgotICAgICAgICAgICAg
ICAgIHlpZWxkIHNlbGYuX3JlYWRfZHJvcF9jaGFubmVsKGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxv
Y2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9T
TE9UOgotICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuX3JlYWRfbmV3X2NoYW5uZWxfc2xvdChm
aXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICAgICAg
X0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUsCi0gICAgICAgICAgICAgICAgICAgICdJbnZh
bGlkIG9wY29kZSAlZCcgJSBvcGNvZGUpCi0KLSAgICAgICAgYXNzZXJ0IHNlbGYuX3JlYWRfcG9z
aXRpb24gPT0gbGVuKHNlbGYuX2RhdGEpCi0gICAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24KLQot
ICAgIGRlZiByZW1haW5pbmdfZGF0YShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIHJlbWFpbmlu
ZyBkYXRhLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9u
Ol0KLQotCi1jbGFzcyBfTG9naWNhbFJlcXVlc3Qob2JqZWN0KToKLQotICAgICIiIk1pbWljcyBt
b2RfcHl0aG9uIHJlcXVlc3QuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgY2hhbm5lbF9p
ZCwgY29tbWFuZCwgcGF0aCwgcHJvdG9jb2wsIGhlYWRlcnMsCi0gICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24pOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ6IHRoZSBjaGFubmVsIGlkIG9mIHRoZSBsb2dp
Y2FsIGNoYW5uZWwuCi0gICAgICAgICAgICBjb21tYW5kOiBIVFRQIHJlcXVlc3QgY29tbWFuZC4K
LSAgICAgICAgICAgIHBhdGg6IEhUVFAgcmVxdWVzdCBwYXRoLgotICAgICAgICAgICAgaGVhZGVy
czogSFRUUCBoZWFkZXJzLgotICAgICAgICAgICAgY29ubmVjdGlvbjogX0xvZ2ljYWxDb25uZWN0
aW9uIGluc3RhbmNlLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5jaGFubmVsX2lkID0gY2hh
bm5lbF9pZAotICAgICAgICBzZWxmLm1ldGhvZCA9IGNvbW1hbmQKLSAgICAgICAgc2VsZi51cmkg
PSBwYXRoCi0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAotICAgICAgICBzZWxmLmhl
YWRlcnNfaW4gPSBoZWFkZXJzCi0gICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb24K
LSAgICAgICAgc2VsZi5zZXJ2ZXJfdGVybWluYXRlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuY2xp
ZW50X3Rlcm1pbmF0ZWQgPSBGYWxzZQotCi0gICAgZGVmIGlzX2h0dHBzKHNlbGYpOgotICAgICAg
ICAiIiJNaW1pYyByZXF1ZXN0LmlzX2h0dHBzKCkuCi0KLSAgICAgICAgUmV0dXJucyBGYWxzZSBi
ZWNhdXNlIHRoaXMgbWV0aG9kIGlzIHVzZWQgb25seSBieSBvbGQgcHJvdG9jb2xzCi0gICAgICAg
IChoaXhpZSBhbmQgaHliaTAwKS4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBGYWxzZQot
Ci0KLWNsYXNzIF9Mb2dpY2FsQ29ubmVjdGlvbihvYmplY3QpOgotCi0gICAgIiIiTWltaWNzIG1v
ZF9weXRob24gbXBfY29ubi4iIiIKLQotICAgICMgRm9yIGRldGFpbHMsIHNlZSB0aGUgY29tbWVu
dCBvZiBzZXRfcmVhZF9zdGF0ZSgpLgotICAgIFNUQVRFX0FDVElWRSA9IDEKLSAgICBTVEFURV9H
UkFDRUZVTExZX0NMT1NFRCA9IDIKLSAgICBTVEFURV9URVJNSU5BVEVEID0gMwotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIG11eF9oYW5kbGVyLCBjaGFubmVsX2lkKToKLSAgICAgICAgIiIiQ29u
c3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtdXhfaGFu
ZGxlcjogX011eEhhbmRsZXIgaW5zdGFuY2UuCi0gICAgICAgICAgICBjaGFubmVsX2lkOiBjaGFu
bmVsIGlkIG9mIHRoaXMgY29ubmVjdGlvbi4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX211
eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIKLSAgICAgICAgc2VsZi5fY2hhbm5lbF9pZCA9IGNoYW5u
ZWxfaWQKLSAgICAgICAgc2VsZi5faW5jb21pbmdfZGF0YSA9ICcnCi0KLSAgICAgICAgIyAtIFBy
b3RlY3RzIF93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24KLSAgICAgICAgIyAtIFNpZ25hbHMgdGhl
IHRocmVhZCB3YWl0aW5nIGZvciBjb21wbGV0aW9uIG9mIHdyaXRlIGJ5IG11eCBoYW5kbGVyCi0g
ICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotICAg
ICAgICBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24gPSBGYWxzZQotCi0gICAgICAgIHNl
bGYuX3JlYWRfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0gICAgICAgIHNlbGYu
X3JlYWRfc3RhdGUgPSBzZWxmLlNUQVRFX0FDVElWRQotCi0gICAgZGVmIGdldF9sb2NhbF9hZGRy
KHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgbXBfY29ubi5sb2NhbF9hZGRyLiIi
IgotICAgICAgICByZXR1cm4gc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfY29ubmVjdGlvbi5n
ZXRfbG9jYWxfYWRkcigpCi0gICAgbG9jYWxfYWRkciA9IHByb3BlcnR5KGdldF9sb2NhbF9hZGRy
KQotCi0gICAgZGVmIGdldF9yZW1vdGVfYWRkcihzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRv
IG1pbWljIG1wX2Nvbm4ucmVtb3RlX2FkZHIuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9tdXhf
aGFuZGxlci5waHlzaWNhbF9jb25uZWN0aW9uLmdldF9yZW1vdGVfYWRkcigpCi0gICAgcmVtb3Rl
X2FkZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2FkZHIpCi0KLSAgICBkZWYgZ2V0X21lbW9yaXpl
ZF9saW5lcyhzZWxmKToKLSAgICAgICAgIiIiR2V0IG1lbW9yaXplZCBsaW5lcy4gTm90IHN1cHBv
cnRlZC4iIiIKLSAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbignX0xvZ2ljYWxD
b25uZWN0aW9uIGRvZXMgbm90IHN1cHBvcnQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdnZXRfbWVtb3JpemVkX2xpbmVzJykKLQotICAgIGRlZiB3cml0ZShzZWxmLCBk
YXRhKToKLSAgICAgICAgIiIiV3JpdGUgZGF0YS4gbXV4X2hhbmRsZXIgc2VuZHMgZGF0YSBhc3lu
Y2hyb25vdXNseS4KLQotICAgICAgICBUaGUgY2FsbGVyIHdpbGwgYmUgc3VzcGVuZGVkIHVudGls
IHdyaXRlIGRvbmUuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8g
YmUgd3JpdHRlbi4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBNdXhVbmV4cGVjdGVk
RXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBiZWZvcmUgZmluaXNoaW5nIHRoZSBwcmV2aW91cwotICAg
ICAgICAgICAgICAgIHdyaXRlLgotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5f
d2FpdGluZ193cml0ZV9jb21wbGV0aW9uOgotICAgICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhw
ZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdMb2dpY2FsIGNvbm5lY3Rpb24g
JWQgaXMgYWxyZWFkeSB3YWl0aW5nIHRoZSBjb21wbGV0aW9uICcKLSAgICAgICAgICAgICAgICAg
ICAgJ29mIHdyaXRlJyAlIHNlbGYuX2NoYW5uZWxfaWQpCi0KLSAgICAgICAgICAgIHNlbGYuX3dh
aXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IFRydWUKLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5k
bGVyLnNlbmRfZGF0YShzZWxmLl9jaGFubmVsX2lkLCBkYXRhKQotICAgICAgICAgICAgc2VsZi5f
d3JpdGVfY29uZGl0aW9uLndhaXQoKQotICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogUmFp
c2UgYW4gZXhjZXB0aW9uIGlmIHdva2UgdXAgYnkgb25fd3JpdGVyX2RvbmUuCi0gICAgICAgIGZp
bmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAg
ICBkZWYgd3JpdGVfY29udHJvbF9kYXRhKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJXcml0ZSBk
YXRhIHZpYSB0aGUgY29udHJvbCBjaGFubmVsLgotCi0gICAgICAgIERvbid0IHdhaXQgZmluaXNo
aW5nIHdyaXRlIGJlY2F1c2UgdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZCBieQotICAgICAgICBt
dXggZGlzcGF0Y2hlci4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZGF0YTogZGF0YSB0
byBiZSB3cml0dGVuLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuc2Vu
ZF9jb250cm9sX2RhdGEoZGF0YSkKLQotICAgIGRlZiBvbl93cml0ZV9kYXRhX2RvbmUoc2VsZik6
Ci0gICAgICAgICIiIkNhbGxlZCB3aGVuIHNlbmRpbmcgZGF0YSBpcyBjb21wbGV0ZWQuIiIiCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5hY3F1aXJlKCkK
LSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb246Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAgICAgJ0ludmFsaWQgY2FsbCBvZiBvbl93cml0ZV9kYXRhX2RvbmUgZm9yIGxvZ2ljYWwgJwot
ICAgICAgICAgICAgICAgICAgICAnY29ubmVjdGlvbiAlZCcgJSBzZWxmLl9jaGFubmVsX2lkKQot
ICAgICAgICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKLSAgICAg
ICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIG9u
X3dyaXRlcl9kb25lKHNlbGYpOgotICAgICAgICAiIiJDYWxsZWQgYnkgdGhlIG11eCBoYW5kbGVy
IHdoZW4gdGhlIHdyaXRlciB0aHJlYWQgaGFzIGZpbmlzaGVkLiIiIgotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBz
ZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24gPSBGYWxzZQotICAgICAgICAgICAgc2VsZi5f
d3JpdGVfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBz
ZWxmLl93cml0ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgYXBwZW5kX2ZyYW1lX2Rh
dGEoc2VsZiwgZnJhbWVfZGF0YSk6Ci0gICAgICAgICIiIkFwcGVuZCBpbmNvbWluZyBmcmFtZSBk
YXRhLgotCi0gICAgICAgIENhbGxlZCB3aGVuIG11eF9oYW5kbGVyIGRpc3BhdGNoZXMgZnJhbWUg
ZGF0YSB0byB0aGUgY29ycmVzcG9uZGluZwotICAgICAgICBhcHBsaWNhdGlvbi4KLQotICAgICAg
ICBBcmdzOgotICAgICAgICAgICAgZnJhbWVfZGF0YTogaW5jb21pbmcgZnJhbWUgZGF0YS4KLSAg
ICAgICAgIiIiCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAg
ICBzZWxmLl9pbmNvbWluZ19kYXRhICs9IGZyYW1lX2RhdGEKLSAgICAgICAgc2VsZi5fcmVhZF9j
b25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24ucmVsZWFzZSgp
Ci0KLSAgICBkZWYgcmVhZChzZWxmLCBsZW5ndGgpOgotICAgICAgICAiIiJSZWFkIGRhdGEuCi0K
LSAgICAgICAgQmxvY2tzIHVudGlsIGVub3VnaCBkYXRhIGhhcyBhcnJpdmVkIHZpYSBwaHlzaWNh
bCBjb25uZWN0aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBsZW5ndGg6IGxlbmd0
aCBvZiBkYXRhIHRvIGJlIHJlYWQuCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIExvZ2lj
YWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uOiB3aGVuIGNsb3NpbmcgaGFuZHNoYWtlIGZvciB0
aGlzCi0gICAgICAgICAgICAgICAgbG9naWNhbCBjaGFubmVsIGhhcyBiZWVuIHJlY2VpdmVkLgot
ICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gdGhlIHBoeXNp
Y2FsIGNvbm5lY3Rpb24gaGFzCi0gICAgICAgICAgICAgICAgY2xvc2VkLCBvciBhbiBlcnJvciBp
cyBjYXVzZWQgb24gdGhlIHJlYWRlciB0aHJlYWQuCi0gICAgICAgICIiIgotICAgICAgICBzZWxm
Ll9yZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgd2hpbGUgKHNlbGYuX3JlYWRfc3Rh
dGUgPT0gc2VsZi5TVEFURV9BQ1RJVkUgYW5kCi0gICAgICAgICAgICAgICBsZW4oc2VsZi5faW5j
b21pbmdfZGF0YSkgPCBsZW5ndGgpOgotICAgICAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24u
d2FpdCgpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaWYgc2VsZi5fcmVhZF9zdGF0ZSA9
PSBzZWxmLlNUQVRFX0dSQUNFRlVMTFlfQ0xPU0VEOgotICAgICAgICAgICAgICAgIHJhaXNlIExv
Z2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnTG9n
aWNhbCBjaGFubmVsICVkIGhhcyBjbG9zZWQuJyAlIHNlbGYuX2NoYW5uZWxfaWQpCi0gICAgICAg
ICAgICBlbGlmIHNlbGYuX3JlYWRfc3RhdGUgPT0gc2VsZi5TVEFURV9URVJNSU5BVEVEOgotICAg
ICAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBMb2dpY2FsIGNoYW5uZWwg
KCVkKSBjbG9zZWQnICUKLSAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCwgc2VsZi5fY2hhbm5l
bF9pZCkpCi0KLSAgICAgICAgICAgIHZhbHVlID0gc2VsZi5faW5jb21pbmdfZGF0YVs6bGVuZ3Ro
XQotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfZGF0YSA9IHNlbGYuX2luY29taW5nX2RhdGFb
bGVuZ3RoOl0KLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3JlYWRfY29uZGl0
aW9uLnJlbGVhc2UoKQotCi0gICAgICAgIHJldHVybiB2YWx1ZQotCi0gICAgZGVmIHNldF9yZWFk
X3N0YXRlKHNlbGYsIG5ld19zdGF0ZSk6Ci0gICAgICAgICIiIlNldCB0aGUgc3RhdGUgb2YgdGhp
cyBjb25uZWN0aW9uLgotCi0gICAgICAgIENhbGxlZCB3aGVuIGFuIGV2ZW50IGZvciB0aGlzIGNv
bm5lY3Rpb24gaGFzIG9jY3VycmVkLgotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbmV3X3N0
YXRlOiBzdGF0ZSB0byBiZSBzZXQuIG5ld19zdGF0ZSBtdXN0IGJlIG9uZSBvZiBmb2xsb3dpbmdz
OgotICAgICAgICAgICAgLSBTVEFURV9HUkFDRUZVTExZX0NMT1NFRDogd2hlbiBjbG9zaW5nIGhh
bmRzaGFrZSBmb3IgdGhpcwotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gaGFzIGJlZW4gcmVj
ZWl2ZWQuCi0gICAgICAgICAgICAtIFNUQVRFX1RFUk1JTkFURUQ6IHdoZW4gdGhlIHBoeXNpY2Fs
IGNvbm5lY3Rpb24gaGFzIGNsb3NlZCBvcgotICAgICAgICAgICAgICAgIERyb3BDaGFubmVsIG9m
IHRoaXMgY29ubmVjdGlvbiBoYXMgcmVjZWl2ZWQuCi0gICAgICAgICIiIgotICAgICAgICBzZWxm
Ll9yZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fcmVhZF9zdGF0ZSA9IG5l
d19zdGF0ZQotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBz
ZWxmLl9yZWFkX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotCi1jbGFzcyBfSW5uZXJNZXNzYWdlKG9i
amVjdCk6Ci0KLSAgICAiIiJIb2xkIHRoZSByZXN1bHQgb2YgX0lubmVyTWVzc2FnZUJ1aWxkZXIu
YnVpbGQoKS4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcGNvZGUsIHBheWxvYWQpOgot
ICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQotICAgICAgICBzZWxmLnBheWxvYWQgPSBwYXls
b2FkCi0KLQotY2xhc3MgX0lubmVyTWVzc2FnZUJ1aWxkZXIob2JqZWN0KToKLQotICAgICIiIkNs
YXNzIHRvIGJ1aWxkIGFuIF9Jbm5lck1lc3NhZ2UuCi0KLSAgICBBIGNsYXNzIHRoYXQgaG9sZHMg
dGhlIGNvbnRleHQgb2YgaW5uZXIgbWVzc2FnZSBmcmFnbWVudGF0aW9uIGFuZAotICAgIGJ1aWxk
cyBhIG1lc3NhZ2UgZnJvbSBmcmFnbWVudGVkIGlubmVyIGZyYW1lKHMpLgotICAgICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLl9jb250cm9sX29wY29kZSA9IE5v
bmUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50cyA9IFtdCi0gICAgICAg
IHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5nX21lc3Nh
Z2VfZnJhZ21lbnRzID0gW10KLSAgICAgICAgc2VsZi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hh
bmRsZV9maXJzdAotCi0gICAgZGVmIF9oYW5kbGVfZmlyc3Qoc2VsZiwgZnJhbWUpOgotICAgICAg
ICBpZiBmcmFtZS5vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAg
ICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oJ1NlbmRpbmcgaW52YWxpZCBjb250aW51
YXRpb24gb3Bjb2RlJykKLQotICAgICAgICBpZiBjb21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJh
bWUub3Bjb2RlKToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jZXNzX2ZpcnN0X2ZyYWdt
ZW50ZWRfY29udHJvbChmcmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfbWVzc2FnZShmcmFtZSkKLQotICAgIGRlZiBf
cHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX2NvbnRyb2woc2VsZiwgZnJhbWUpOgotICAgICAgICBz
ZWxmLl9jb250cm9sX29wY29kZSA9IGZyYW1lLm9wY29kZQotICAgICAgICBzZWxmLl9wZW5kaW5n
X2NvbnRyb2xfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAgICAgICBpZiBub3Qg
ZnJhbWUuZmluOgotICAgICAgICAgICAgc2VsZi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRs
ZV9mcmFnbWVudGVkX2NvbnRyb2wKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJl
dHVybiBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfY29udHJvbCgpCi0KLSAgICBkZWYgX3By
b2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYsIGZyYW1lKToKLSAgICAgICAgc2Vs
Zi5fbWVzc2FnZV9vcGNvZGUgPSBmcmFtZS5vcGNvZGUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19t
ZXNzYWdlX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgaWYgbm90IGZy
YW1lLmZpbjoKLSAgICAgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVf
ZnJhZ21lbnRlZF9tZXNzYWdlCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1
cm4gc2VsZi5fcmVhc3NlbWJsZV9mcmFnbWVudGVkX21lc3NhZ2UoKQotCi0gICAgZGVmIF9oYW5k
bGVfZnJhZ21lbnRlZF9jb250cm9sKHNlbGYsIGZyYW1lKToKLSAgICAgICAgaWYgZnJhbWUub3Bj
b2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgcmFpc2UgSW52
YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdTZW5kaW5nIGludmFsaWQgb3Bj
b2RlICVkIHdoaWxlIHNlbmRpbmcgZnJhZ21lbnRlZCBjb250cm9sICcKLSAgICAgICAgICAgICAg
ICAnbWVzc2FnZScgJSBmcmFtZS5vcGNvZGUpCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfY29udHJv
bF9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIGlmIG5vdCBmcmFtZS5m
aW46Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gc2VsZi5fcmVhc3Nl
bWJsZV9mcmFnbWVudGVkX2NvbnRyb2woKQotCi0gICAgZGVmIF9yZWFzc2VtYmxlX2ZyYWdtZW50
ZWRfY29udHJvbChzZWxmKToKLSAgICAgICAgb3Bjb2RlID0gc2VsZi5fY29udHJvbF9vcGNvZGUK
LSAgICAgICAgcGF5bG9hZCA9ICcnLmpvaW4oc2VsZi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50
cykKLSAgICAgICAgc2VsZi5fY29udHJvbF9vcGNvZGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3Bl
bmRpbmdfY29udHJvbF9mcmFnbWVudHMgPSBbXQotICAgICAgICBpZiBzZWxmLl9tZXNzYWdlX29w
Y29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxm
Ll9oYW5kbGVfZnJhZ21lbnRlZF9tZXNzYWdlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz
ZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxlX2ZpcnN0Ci0gICAgICAgIHJldHVybiBf
SW5uZXJNZXNzYWdlKG9wY29kZSwgcGF5bG9hZCkKLQotICAgIGRlZiBfaGFuZGxlX2ZyYWdtZW50
ZWRfbWVzc2FnZShzZWxmLCBmcmFtZSk6Ci0gICAgICAgICMgU2VuZGVyIGNhbiBpbnRlcmxlYXZl
IGEgY29udHJvbCBtZXNzYWdlIHdoaWxlIHNlbmRpbmcgZnJhZ21lbnRlZAotICAgICAgICAjIG1l
c3NhZ2VzLgotICAgICAgICBpZiBjb21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2Rl
KToKLSAgICAgICAgICAgIGlmIHNlbGYuX2NvbnRyb2xfb3Bjb2RlIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgICAgICdTaG91bGQgbm90IHJlYWNoIGhlcmUoQnVnIGluIGJ1aWxkZXIpJykKLSAgICAgICAg
ICAgIHJldHVybiBzZWxmLl9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfY29udHJvbChmcmFtZSkK
LQotICAgICAgICBpZiBmcmFtZS5vcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046
Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgJ1NlbmRpbmcgaW52YWxpZCBvcGNvZGUgJWQgd2hpbGUgc2VuZGluZyBmcmFnbWVudGVkIG1l
c3NhZ2UnICUKLSAgICAgICAgICAgICAgICBmcmFtZS5vcGNvZGUpCi0gICAgICAgIHNlbGYuX3Bl
bmRpbmdfbWVzc2FnZV9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIGlm
IG5vdCBmcmFtZS5maW46Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4g
c2VsZi5fcmVhc3NlbWJsZV9mcmFnbWVudGVkX21lc3NhZ2UoKQotCi0gICAgZGVmIF9yZWFzc2Vt
YmxlX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgb3Bjb2RlID0gc2VsZi5fbWVz
c2FnZV9vcGNvZGUKLSAgICAgICAgcGF5bG9hZCA9ICcnLmpvaW4oc2VsZi5fcGVuZGluZ19tZXNz
YWdlX2ZyYWdtZW50cykKLSAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBOb25lCi0gICAg
ICAgIHNlbGYuX3BlbmRpbmdfbWVzc2FnZV9mcmFnbWVudHMgPSBbXQotICAgICAgICBzZWxmLl9m
cmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxlX2ZpcnN0Ci0gICAgICAgIHJldHVybiBfSW5uZXJN
ZXNzYWdlKG9wY29kZSwgcGF5bG9hZCkKLQotICAgIGRlZiBidWlsZChzZWxmLCBmcmFtZSk6Ci0g
ICAgICAgICIiIkJ1aWxkIGFuIGlubmVyIG1lc3NhZ2UuCi0KLSAgICAgICAgUmV0dXJucyBhbiBf
SW5uZXJNZXNzYWdlIGluc3RhbmNlIHdoZW4gdGhlIGdpdmVuIGZyYW1lIGlzIHRoZSBsYXN0Ci0g
ICAgICAgIGZyYWdtZW50ZWQgZnJhbWUuIFJldHVybnMgTm9uZSBvdGhlcndpc2UuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIGZyYW1lOiBhbiBpbm5lciBmcmFtZS4KLSAgICAgICAgUmFp
c2VzOgotICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHJlY2VpdmVkIGlu
dmFsaWQgb3Bjb2RlLiAoZS5nLgotICAgICAgICAgICAgICAgIHJlY2VpdmluZyBub24gY29udGlu
dWF0aW9uIGRhdGEgb3Bjb2RlIGJ1dCB0aGUgZmluIGZsYWcgb2YKLSAgICAgICAgICAgICAgICB0
aGUgcHJldmlvdXMgaW5uZXIgZnJhbWUgd2FzIG5vdCBzZXQuKQotICAgICAgICAiIiIKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX2ZyYW1lX2hhbmRsZXIoZnJhbWUpCi0KLQotY2xhc3MgX0xvZ2ljYWxT
dHJlYW0oU3RyZWFtKToKLQotICAgICIiIk1pbWljcyB0aGUgU3RyZWFtIGNsYXNzLgotCi0gICAg
VGhpcyBjbGFzcyBpbnRlcnByZXRzIG11bHRpcGxleGVkIFdlYlNvY2tldCBmcmFtZXMuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgc3RyZWFtX29wdGlvbnMsIHNl
bmRfcXVvdGEsIHJlY2VpdmVfcXVvdGEpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFu
Y2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IF9Mb2dpY2FsUmVxdWVz
dCBpbnN0YW5jZS4KLSAgICAgICAgICAgIHN0cmVhbV9vcHRpb25zOiBTdHJlYW1PcHRpb25zIGlu
c3RhbmNlLgotICAgICAgICAgICAgc2VuZF9xdW90YTogSW5pdGlhbCBzZW5kIHF1b3RhLgotICAg
ICAgICAgICAgcmVjZWl2ZV9xdW90YTogSW5pdGlhbCByZWNlaXZlIHF1b3RhLgotICAgICAgICAi
IiIKLSAgICAgICAgIyBQaHlzaWNhbCBzdHJlYW0gaXMgcmVzcG9uc2libGUgZm9yIG1hc2tpbmcu
Ci0gICAgICAgIHN0cmVhbV9vcHRpb25zLnVubWFza19yZWNlaXZlID0gRmFsc2UKLSAgICAgICAg
U3RyZWFtLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIHN0cmVhbV9vcHRpb25zKQotCi0gICAgICAg
IHNlbGYuX3NlbmRfY2xvc2VkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fc2VuZF9xdW90YSA9IHNl
bmRfcXVvdGEKLSAgICAgICAgIyAtIFByb3RlY3RzIF9zZW5kX2Nsb3NlZCBhbmQgX3NlbmRfcXVv
dGEKLSAgICAgICAgIyAtIFNpZ25hbHMgdGhlIHRocmVhZCB3YWl0aW5nIGZvciBzZW5kIHF1b3Rh
IHJlcGxlbmlzaGVkCi0gICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNv
bmRpdGlvbigpCi0KLSAgICAgICAgIyBUaGUgb3Bjb2RlIG9mIHRoZSBmaXJzdCBmcmFtZSBpbiBt
ZXNzYWdlcy4KLSAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBjb21tb24uT1BDT0RFX1RF
WFQKLSAgICAgICAgIyBUcnVlIHdoZW4gdGhlIGxhc3QgbWVzc2FnZSB3YXMgZnJhZ21lbnRlZC4K
LSAgICAgICAgc2VsZi5fbGFzdF9tZXNzYWdlX3dhc19mcmFnbWVudGVkID0gRmFsc2UKLQotICAg
ICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhID0gcmVjZWl2ZV9xdW90YQotICAgICAgICBzZWxmLl93
cml0ZV9pbm5lcl9mcmFtZV9zZW1hcGhvcmUgPSB0aHJlYWRpbmcuU2VtYXBob3JlKCkKLQotICAg
ICAgICBzZWxmLl9pbm5lcl9tZXNzYWdlX2J1aWxkZXIgPSBfSW5uZXJNZXNzYWdlQnVpbGRlcigp
Ci0KLSAgICBkZWYgX2NyZWF0ZV9pbm5lcl9mcmFtZShzZWxmLCBvcGNvZGUsIHBheWxvYWQsIGVu
ZD1UcnVlKToKLSAgICAgICAgZnJhbWUgPSBGcmFtZShmaW49ZW5kLCBvcGNvZGU9b3Bjb2RlLCBw
YXlsb2FkPXBheWxvYWQpCi0gICAgICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9u
cy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzOgotICAgICAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRl
cihmcmFtZSkKLQotICAgICAgICBpZiBsZW4ocGF5bG9hZCkgIT0gbGVuKGZyYW1lLnBheWxvYWQp
OgotICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnTXV4IGV4dGVuc2lvbiBtdXN0IG5vdCBiZSB1c2VkIGFmdGVyIGV4dGVuc2lvbnMgd2hp
Y2ggY2hhbmdlICcKLSAgICAgICAgICAgICAgICAnIGZyYW1lIGJvdW5kYXJ5JykKLQotICAgICAg
ICBmaXJzdF9ieXRlID0gKChmcmFtZS5maW4gPDwgNykgfCAoZnJhbWUucnN2MSA8PCA2KSB8Ci0g
ICAgICAgICAgICAgICAgICAgICAgKGZyYW1lLnJzdjIgPDwgNSkgfCAoZnJhbWUucnN2MyA8PCA0
KSB8IGZyYW1lLm9wY29kZSkKLSAgICAgICAgcmV0dXJuIGNocihmaXJzdF9ieXRlKSArIGZyYW1l
LnBheWxvYWQKLQotICAgIGRlZiBfd3JpdGVfaW5uZXJfZnJhbWUoc2VsZiwgb3Bjb2RlLCBwYXls
b2FkLCBlbmQ9VHJ1ZSk6Ci0gICAgICAgIHBheWxvYWRfbGVuZ3RoID0gbGVuKHBheWxvYWQpCi0g
ICAgICAgIHdyaXRlX3Bvc2l0aW9uID0gMAotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMg
QW4gaW5uZXIgZnJhbWUgd2lsbCBiZSBmcmFnbWVudGVkIGlmIHRoZXJlIGlzIG5vIGVub3VnaCBz
ZW5kCi0gICAgICAgICAgICAjIHF1b3RhLiBUaGlzIHNlbWFwaG9yZSBlbnN1cmVzIHRoYXQgZnJh
Z21lbnRlZCBpbm5lciBmcmFtZXMgYXJlCi0gICAgICAgICAgICAjIHNlbnQgaW4gb3JkZXIgb24g
dGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgICAgICMgTm90ZSB0aGF0IGZyYW1lcyB0aGF0
IGNvbWUgZnJvbSBvdGhlciBsb2dpY2FsIGNoYW5uZWxzIG9yCi0gICAgICAgICAgICAjIG11bHRp
cGxleGluZyBjb250cm9sIGJsb2NrcyBjYW4gYmUgaW5zZXJ0ZWQgYmV0d2VlbiBmcmFnbWVudGVk
Ci0gICAgICAgICAgICAjIGlubmVyIGZyYW1lcyBvbiB0aGUgcGh5c2ljYWwgY2hhbm5lbC4KLSAg
ICAgICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1lX3NlbWFwaG9yZS5hY3F1aXJlKCkKLQot
ICAgICAgICAgICAgIyBDb25zdW1lIGFuIG9jdGV0IHF1b3RhIHdoZW4gdGhpcyBpcyB0aGUgZmly
c3QgZnJhZ21lbnRlZCBmcmFtZS4KLSAgICAgICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BD
T0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgICAgICAgICB3
aGlsZSAobm90IHNlbGYuX3NlbmRfY2xvc2VkKSBhbmQgc2VsZi5fc2VuZF9xdW90YSA9PSAwOgot
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ud2FpdCgpCi0KLSAg
ICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2VuZF9jbG9zZWQ6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ0xvZ2ljYWwgY29ubmVjdGlvbiAlZCBpcyBjbG9zZWQnICUKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0KLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSAtPSAxCi0gICAgICAgICAgICAgICAgZmluYWxseToK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAg
ICAgICAgICAgIHdoaWxlIHdyaXRlX3Bvc2l0aW9uIDwgcGF5bG9hZF9sZW5ndGg6Ci0gICAgICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5h
Y3F1aXJlKCkKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG5vdCBzZWxmLl9zZW5kX2Nsb3Nl
ZCkgYW5kIHNlbGYuX3NlbmRfcXVvdGEgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTm8gcXVvdGEu
IFdhaXRpbmcgRmxvd0NvbnRyb2wgbWVzc2FnZSBmb3IgJWQuJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ud2FpdCgpCi0KLSAgICAgICAgICAgICAgICAgICAg
aWYgc2VsZi5fc2VuZF9jbG9zZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBCYWRP
cGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xvZ2ljYWwg
Y29ubmVjdGlvbiAlZCBpcyBjbG9zZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLnJlcXVlc3QuX2NoYW5uZWxfaWQpCi0KLSAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5n
ID0gcGF5bG9hZF9sZW5ndGggLSB3cml0ZV9wb3NpdGlvbgotICAgICAgICAgICAgICAgICAgICB3
cml0ZV9sZW5ndGggPSBtaW4oc2VsZi5fc2VuZF9xdW90YSwgcmVtYWluaW5nKQotICAgICAgICAg
ICAgICAgICAgICBpbm5lcl9mcmFtZV9lbmQgPSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBl
bmQgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAod3JpdGVfcG9zaXRpb24gKyB3cml0ZV9s
ZW5ndGggPT0gcGF5bG9hZF9sZW5ndGgpKQotCi0gICAgICAgICAgICAgICAgICAgIGlubmVyX2Zy
YW1lID0gc2VsZi5fY3JlYXRlX2lubmVyX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICAgICAg
b3Bjb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZFt3cml0ZV9wb3NpdGlvbjp3
cml0ZV9wb3NpdGlvbit3cml0ZV9sZW5ndGhdLAotICAgICAgICAgICAgICAgICAgICAgICAgaW5u
ZXJfZnJhbWVfZW5kKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX3F1b3RhIC09IHdy
aXRlX2xlbmd0aAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbnN1
bWVkIHF1b3RhPSVkLCByZW1haW5pbmc9JWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh3cml0ZV9sZW5ndGgsIHNlbGYuX3NlbmRfcXVvdGEpKQotICAgICAgICAg
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9u
LnJlbGVhc2UoKQotCi0gICAgICAgICAgICAgICAgIyBXcml0aW5nIGRhdGEgd2lsbCBibG9jayB0
aGUgd29ya2VyIHNvIHdlIG5lZWQgdG8gcmVsZWFzZQotICAgICAgICAgICAgICAgICMgX3NlbmRf
Y29uZGl0aW9uIGJlZm9yZSB3cml0aW5nLgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnU2VuZGluZyBpbm5lciBmcmFtZTogJXInICUgaW5uZXJfZnJhbWUpCi0gICAgICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKGlubmVyX2ZyYW1lKQotICAgICAg
ICAgICAgICAgIHdyaXRlX3Bvc2l0aW9uICs9IHdyaXRlX2xlbmd0aAotCi0gICAgICAgICAgICAg
ICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04KLQotICAgICAgICBleGNlcHQg
VmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9u
KGUpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFt
ZV9zZW1hcGhvcmUucmVsZWFzZSgpCi0KLSAgICBkZWYgcmVwbGVuaXNoX3NlbmRfcXVvdGEoc2Vs
Ziwgc2VuZF9xdW90YSk6Ci0gICAgICAgICIiIlJlcGxlbmlzaCBzZW5kIHF1b3RhLiIiIgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgICAgIGlmIHNlbGYuX3NlbmRfcXVvdGEgKyBzZW5kX3F1b3RhID4gMHg3RkZGRkZGRkZG
RkZGRkZGOgotICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgPSAwCi0gICAgICAgICAg
ICAgICAgcmFpc2UgTG9naWNhbENoYW5uZWxFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fcmVxdWVzdC5jaGFubmVsX2lkLCBfRFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1cpCi0g
ICAgICAgICAgICBzZWxmLl9zZW5kX3F1b3RhICs9IHNlbmRfcXVvdGEKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnUmVwbGVuaXNoZWQgc2VuZCBxdW90YSBmb3IgY2hhbm5lbCBpZCAl
ZDogJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5j
aGFubmVsX2lkLCBzZWxmLl9zZW5kX3F1b3RhKSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAg
ICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgICAgICBzZWxmLl9zZW5k
X2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBjb25zdW1lX3JlY2VpdmVfcXVvdGEoc2Vs
ZiwgYW1vdW50KToKLSAgICAgICAgIiIiQ29uc3VtZSByZWNlaXZlIHF1b3RhLiBSZXR1cm5zIEZh
bHNlIG9uIGZhaWx1cmUuIiIiCi0gICAgICAgIGlmIHNlbGYuX3JlY2VpdmVfcXVvdGEgPCBhbW91
bnQ6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Zpb2xhdGUgcXVvdGEgb24gY2hh
bm5lbCBpZCAlZDogJWQgPCAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3JlY2VpdmVfcXVvdGEsIGFtb3VudCkpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UK
LSAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSAtPSBhbW91bnQKLSAgICAgICAgcmV0dXJuIFRy
dWUKLQotICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFy
eT1GYWxzZSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5zZW5kX21lc3NhZ2UuIiIiCi0g
ICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICBy
YWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBz
ZW5kX21lc3NhZ2UgYWZ0ZXIgc2VuZGluZyBvdXQgYSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAg
ICAgICAgaWYgYmluYXJ5IGFuZCBpc2luc3RhbmNlKG1lc3NhZ2UsIHVuaWNvZGUpOgotICAgICAg
ICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNZXNz
YWdlIGZvciBiaW5hcnkgZnJhbWUgbXVzdCBiZSBpbnN0YW5jZSBvZiBzdHInKQotCi0gICAgICAg
IGlmIGJpbmFyeToKLSAgICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfQklOQVJZCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX1RFWFQKLSAg
ICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRmLTgnKQotCi0gICAgICAgIGZv
ciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLm91dGdvaW5nX21lc3NhZ2VfZmlsdGVy
czoKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIobWVzc2FnZSwg
ZW5kLCBiaW5hcnkpCi0KLSAgICAgICAgaWYgc2VsZi5fbGFzdF9tZXNzYWdlX3dhc19mcmFnbWVu
dGVkOgotICAgICAgICAgICAgaWYgb3Bjb2RlICE9IHNlbGYuX21lc3NhZ2Vfb3Bjb2RlOgotICAg
ICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbignTWVzc2FnZSB0eXBlcyBh
cmUgZGlmZmVyZW50IGluICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2ZyYW1lcyBmb3IgdGhlIHNhbWUgbWVzc2FnZScpCi0gICAgICAgICAgICBvcGNvZGUg
PSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTgotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
c2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBvcGNvZGUKLQotICAgICAgICBzZWxmLl93cml0ZV9pbm5l
cl9mcmFtZShvcGNvZGUsIG1lc3NhZ2UsIGVuZCkKLSAgICAgICAgc2VsZi5fbGFzdF9tZXNzYWdl
X3dhc19mcmFnbWVudGVkID0gbm90IGVuZAotCi0gICAgZGVmIF9yZWNlaXZlX2ZyYW1lKHNlbGYp
OgotICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0uX3JlY2VpdmVfZnJhbWUuCi0KLSAgICAgICAg
SW4gYWRkaXRpb24gdG8gY2FsbCBTdHJlYW0uX3JlY2VpdmVfZnJhbWUsIHRoaXMgbWV0aG9kIGFk
ZHMgdGhlIGFtb3VudAotICAgICAgICBvZiBwYXlsb2FkIHRvIHJlY2VpdmluZyBxdW90YSBhbmQg
c2VuZHMgRmxvd0NvbnRyb2wgdG8gdGhlIGNsaWVudC4KLSAgICAgICAgV2UgbmVlZCB0byBkbyBp
dCBoZXJlIGJlY2F1c2UgU3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpIGhhbmRsZXMKLSAgICAgICAg
Y29udHJvbCBmcmFtZXMgaW50ZXJuYWxseS4KLSAgICAgICAgIiIiCi0gICAgICAgIG9wY29kZSwg
cGF5bG9hZCwgZmluLCByc3YxLCByc3YyLCByc3YzID0gU3RyZWFtLl9yZWNlaXZlX2ZyYW1lKHNl
bGYpCi0gICAgICAgIGFtb3VudCA9IGxlbihwYXlsb2FkKQotICAgICAgICAjIFJlcGxlbmlzaCBl
eHRyYSBvbmUgb2N0ZXQgd2hlbiByZWNlaXZpbmcgdGhlIGZpcnN0IGZyYWdtZW50ZWQgZnJhbWUu
Ci0gICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAg
ICAgICAgIGFtb3VudCArPSAxCi0gICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEgKz0gYW1vdW50
Ci0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2Zsb3dfY29udHJvbChzZWxmLl9yZXF1ZXN0
LmNoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
bW91bnQpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGluZyBmbG93IGNvbnRyb2wg
Zm9yICVkLCByZXBsZW5pc2hlZD0lZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNl
bGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgYW1vdW50KSkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5j
b25uZWN0aW9uLndyaXRlX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRhKQotICAgICAgICByZXR1cm4g
b3Bjb2RlLCBwYXlsb2FkLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMKLQotICAgIGRlZiBfZ2V0X21l
c3NhZ2VfZnJvbV9mcmFtZShzZWxmLCBmcmFtZSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIFN0cmVh
bS5fZ2V0X21lc3NhZ2VfZnJvbV9mcmFtZS4iIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
aW5uZXJfbWVzc2FnZSA9IHNlbGYuX2lubmVyX21lc3NhZ2VfYnVpbGRlci5idWlsZChmcmFtZSkK
LSAgICAgICAgZXhjZXB0IEludmFsaWRGcmFtZUV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHJhaXNl
IExvZ2ljYWxDaGFubmVsRXJyb3IoCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFu
bmVsX2lkLCBfRFJPUF9DT0RFX0JBRF9GUkFHTUVOVEFUSU9OKQotCi0gICAgICAgIGlmIGlubmVy
X21lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHNlbGYu
X29yaWdpbmFsX29wY29kZSA9IGlubmVyX21lc3NhZ2Uub3Bjb2RlCi0gICAgICAgIHJldHVybiBp
bm5lcl9tZXNzYWdlLnBheWxvYWQKLQotICAgIGRlZiByZWNlaXZlX21lc3NhZ2Uoc2VsZik6Ci0g
ICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5yZWNlaXZlX21lc3NhZ2UuIiIiCi0gICAgICAgICMg
SnVzdCBjYWxsIFN0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKSwgYnV0IGNhdGNoCi0gICAgICAgICMg
TG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNlcHRpb24sIHdoaWNoIGlzIHJhaXNlZCB3aGVuIHRo
ZSBsb2dpY2FsCi0gICAgICAgICMgY29ubmVjdGlvbiBoYXMgY2xvc2VkIGdyYWNlZnVsbHkuCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBTdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKHNl
bGYpCi0gICAgICAgIGV4Y2VwdCBMb2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbiBhcyBl
OgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICBy
ZXR1cm4gTm9uZQotCi0gICAgZGVmIF9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKHNlbGYsIGNvZGUs
IHJlYXNvbik6Ci0gICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5fc2VuZF9jbG9zaW5nX2hhbmRz
aGFrZS4iIiIKLSAgICAgICAgYm9keSA9IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KGNv
ZGUsIHJlYXNvbikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGNsb3Npbmcg
aGFuZHNoYWtlIGZvciAlZDogKCVyLCAlciknICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGNvZGUsIHJlYXNvbikpCi0gICAgICAgIHNlbGYu
X3dyaXRlX2lubmVyX2ZyYW1lKGNvbW1vbi5PUENPREVfQ0xPU0UsIGJvZHksIGVuZD1UcnVlKQot
Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICBk
ZWYgc2VuZF9waW5nKHNlbGYsIGJvZHk9JycpOgotICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0u
c2VuZF9waW5nLiIiIgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgcGluZyBv
biBsb2dpY2FsIGNoYW5uZWwgJWQ6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBib2R5KSkKLSAgICAgICAgc2VsZi5fd3JpdGVfaW5u
ZXJfZnJhbWUoY29tbW9uLk9QQ09ERV9QSU5HLCBib2R5LCBlbmQ9VHJ1ZSkKLQotICAgICAgICBz
ZWxmLl9waW5nX3F1ZXVlLmFwcGVuZChib2R5KQotCi0gICAgZGVmIF9zZW5kX3Bvbmcoc2VsZiwg
Ym9keSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5fc2VuZF9wb25nLiIiIgotICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgcG9uZyBvbiBsb2dpY2FsIGNoYW5uZWwgJWQ6
ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVs
X2lkLCBib2R5KSkKLSAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUoY29tbW9uLk9QQ09E
RV9QT05HLCBib2R5LCBlbmQ9VHJ1ZSkKLQotICAgIGRlZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYs
IGNvZGU9Y29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToKLSAgICAgICAg
IiIiT3ZlcnJpZGUgU3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24uIiIiCi0gICAgICAgICMgVE9ETyhi
YXNoaSk6IEltcGxlbWVudAotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Nsb3NpbmcgbG9n
aWNhbCBjb25uZWN0aW9uICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0
ZWQgPSBUcnVlCi0KLSAgICBkZWYgc3RvcF9zZW5kaW5nKHNlbGYpOgotICAgICAgICAiIiJTdG9w
IGFjY2VwdGluZyBuZXcgc2VuZCBvcGVyYXRpb24gKF93cml0ZV9pbm5lcl9mcmFtZSkuIiIiCi0g
ICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9zZW5k
X2Nsb3NlZCA9IFRydWUKLSAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ubm90aWZ5KCkKLSAg
ICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLQotY2xhc3MgX091dGdvaW5n
RGF0YShvYmplY3QpOgotCi0gICAgIiIiU2ltcGxlIGRhdGEvY2hhbm5lbCBjb250YWluZXIuCi0K
LSAgICBBIHN0cnVjdHVyZSB0aGF0IGhvbGRzIGRhdGEgdG8gYmUgc2VudCB2aWEgcGh5c2ljYWwg
Y29ubmVjdGlvbiBhbmQKLSAgICBvcmlnaW4gb2YgdGhlIGRhdGEuCi0gICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgY2hhbm5lbF9pZCwgZGF0YSk6Ci0gICAgICAgIHNlbGYuY2hhbm5l
bF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgc2VsZi5kYXRhID0gZGF0YQotCi0KLWNsYXNzIF9Q
aHlzaWNhbENvbm5lY3Rpb25Xcml0ZXIodGhyZWFkaW5nLlRocmVhZCk6Ci0KLSAgICAiIiJBIHRo
cmVhZCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB3cml0aW5nIGRhdGEgdG8gcGh5c2ljYWwgY29u
bmVjdGlvbi4KLQotICAgIFRPRE8oYmFzaGkpOiBNYWtlIHN1cmUgdGhlcmUgaXMgbm8gdGhyZWFk
LXNhZmV0eSBwcm9ibGVtIHdoZW4gdGhlIHJlYWRlcgotICAgIHRocmVhZCByZWFkcyBkYXRhIGZy
b20gdGhlIHNhbWUgc29ja2V0IGF0IGEgdGltZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBtdXhfaGFuZGxlcik6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGlu
c3RhbmNlLgotICAgICAgICAiIiIKLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhz
ZWxmKQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikK
LSAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBtdXhfaGFuZGxlcgotICAgICAgICBzZWxmLnNl
dERhZW1vbihUcnVlKQotCi0gICAgICAgICMgV2hlbiBzZXQsIG1ha2UgdGhpcyB0aHJlYWQgc3Rv
cCBhY2NlcHRpbmcgbmV3IGRhdGEsIGZsdXNoIHBlbmRpbmcKLSAgICAgICAgIyBkYXRhIGFuZCBl
eGl0LgotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IEZhbHNlCi0gICAgICAgICMgVGhl
IGNsb3NlIGNvZGUgb2YgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0gICAgICAgIHNlbGYuX2Ns
b3NlX2NvZGUgPSBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFCi0gICAgICAgICMgRGVxdWUg
Zm9yIHBhc3Npbmcgd3JpdGUgZGF0YS4gSXQncyBwcm90ZWN0ZWQgYnkgX2RlcXVlX2NvbmRpdGlv
bgotICAgICAgICAjIHVudGlsIF9zdG9wX3JlcXVlc3RlZCBpcyBzZXQuCi0gICAgICAgIHNlbGYu
X2RlcXVlID0gY29sbGVjdGlvbnMuZGVxdWUoKQotICAgICAgICAjIC0gUHJvdGVjdHMgX2RlcXVl
LCBfc3RvcF9yZXF1ZXN0ZWQgYW5kIF9jbG9zZV9jb2RlCi0gICAgICAgICMgLSBTaWduYWxzIHRo
cmVhZHMgd2FpdGluZyBmb3IgdGhlbSB0byBiZSBhdmFpbGFibGUKLSAgICAgICAgc2VsZi5fZGVx
dWVfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0KLSAgICBkZWYgcHV0X291dGdv
aW5nX2RhdGEoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIlB1dCBvdXRnb2luZyBkYXRhLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBkYXRhOiBfT3V0Z29pbmdEYXRhIGluc3RhbmNlLgot
ICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4g
dGhlIHRocmVhZCBoYXMgYmVlbiByZXF1ZXN0ZWQgdG8KLSAgICAgICAgICAgICAgICB0ZXJtaW5h
dGUuCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9kZXF1ZV9j
b25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBzZWxmLl9zdG9wX3JlcXVlc3RlZDoK
LSAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oJ0Nhbm5vdCB3cml0
ZSBkYXRhIGFueW1vcmUnKQotCi0gICAgICAgICAgICBzZWxmLl9kZXF1ZS5hcHBlbmQoZGF0YSkK
LSAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBmaW5h
bGx5OgotICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAg
ZGVmIF93cml0ZV9kYXRhKHNlbGYsIG91dGdvaW5nX2RhdGEpOgotICAgICAgICBtZXNzYWdlID0g
KF9lbmNvZGVfY2hhbm5lbF9pZChvdXRnb2luZ19kYXRhLmNoYW5uZWxfaWQpICsKLSAgICAgICAg
ICAgICAgICAgICBvdXRnb2luZ19kYXRhLmRhdGEpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX3N0cmVhbS5zZW5kX21lc3NhZ2UoCi0gICAgICAg
ICAgICAgICAgbWVzc2FnZT1tZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PVRydWUpCi0gICAgICAg
IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdl
X3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHNlbmQgbWVzc2FnZSB0
byAlcjogJyAlCi0gICAgICAgICAgICAgICAgKHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX2Nv
bm5lY3Rpb24ucmVtb3RlX2FkZHIsKSwgZSkKLSAgICAgICAgICAgIHJhaXNlCi0KLSAgICAgICAg
IyBUT0RPKGJhc2hpKTogSXQgd291bGQgYmUgYmV0dGVyIHRvIGJsb2NrIHRoZSB0aHJlYWQgdGhh
dCBzZW5kcwotICAgICAgICAjIGNvbnRyb2wgZGF0YSBhcyB3ZWxsLgotICAgICAgICBpZiBvdXRn
b2luZ19kYXRhLmNoYW5uZWxfaWQgIT0gX0NPTlRST0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAg
IHNlbGYuX211eF9oYW5kbGVyLm5vdGlmeV93cml0ZV9kYXRhX2RvbmUob3V0Z29pbmdfZGF0YS5j
aGFubmVsX2lkKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgd2hpbGUgbm90
IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAgICAgIGlmIGxlbihzZWxmLl9kZXF1
ZSkgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLndhaXQo
KQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAgb3V0Z29p
bmdfZGF0YSA9IHNlbGYuX2RlcXVlLnBvcGxlZnQoKQotCi0gICAgICAgICAgICAgICAgc2VsZi5f
ZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQotICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2Rh
dGEob3V0Z29pbmdfZGF0YSkKLSAgICAgICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24u
YWNxdWlyZSgpCi0KLSAgICAgICAgICAgICMgRmx1c2ggZGVxdWUuCi0gICAgICAgICAgICAjCi0g
ICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHNlbGYuX2RlcXVlX2NvbmRpdGlvbiBpcyBhbHdh
eXMgYWNxdWlyZWQuCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgd2hpbGUgbGVu
KHNlbGYuX2RlcXVlKSA+IDA6Ci0gICAgICAgICAgICAgICAgICAgIG91dGdvaW5nX2RhdGEgPSBz
ZWxmLl9kZXF1ZS5wb3BsZWZ0KCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfZGF0
YShvdXRnb2luZ19kYXRhKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBz
ZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgICAgICMgQ2xvc2UgcGh5
c2ljYWwgY29ubmVjdGlvbi4KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAjIERv
bid0IHdhaXQgdGhlIHJlc3BvbnNlIGhlcmUuIFRoZSByZXNwb25zZSB3aWxsIGJlIHJlYWQKLSAg
ICAgICAgICAgICAgICAjIGJ5IHRoZSByZWFkZXIgdGhyZWFkLgotICAgICAgICAgICAgICAgIHNl
bGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKAotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9jbG9zZV9jb2RlLCB3YWl0X3Jlc3BvbnNlPUZhbHNlKQotICAg
ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIHV0aWwucHJl
cGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0
byBjbG9zZSB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbjogJXInICUgZSkKLSAgICAgICAgICAgICAg
ICByYWlzZQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIu
bm90aWZ5X3dyaXRlcl9kb25lKCkKLQotICAgIGRlZiBzdG9wKHNlbGYsIGNsb3NlX2NvZGU9Y29t
bW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSk6Ci0gICAgICAgICIiIlN0b3AgdGhlIHdyaXRlciB0
aHJlYWQuIiIiCi0gICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAg
ICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBUcnVlCi0gICAgICAgIHNlbGYuX2Nsb3NlX2NvZGUg
PSBjbG9zZV9jb2RlCi0gICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5ub3RpZnkoKQotICAg
ICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0KLQotY2xhc3MgX1BoeXNpY2Fs
Q29ubmVjdGlvblJlYWRlcih0aHJlYWRpbmcuVGhyZWFkKToKLQotICAgICIiIkEgdGhyZWFkIHRo
YXQgaXMgcmVzcG9uc2libGUgZm9yIHJlYWRpbmcgZGF0YSBmcm9tIHBoeXNpY2FsIGNvbm5lY3Rp
b24uCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXV4X2hhbmRsZXIpOgotICAg
ICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAg
ICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0gICAg
ICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fbG9nZ2Vy
ID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNlbGYuX211eF9oYW5kbGVy
ID0gbXV4X2hhbmRsZXIKLSAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLQotICAgIGRlZiBy
dW4oc2VsZik6Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgcGh5c2ljYWxfc3RyZWFtID0gc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfc3Ry
ZWFtCi0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IHBoeXNpY2FsX3N0cmVhbS5yZWNlaXZlX21l
c3NhZ2UoKQotICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAg
ICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAjIEJlbG93IGhhcHBlbnMgb25seSB3aGVu
IGEgZGF0YSBtZXNzYWdlIGlzIHJlY2VpdmVkLgotICAgICAgICAgICAgICAgIG9wY29kZSA9IHBo
eXNpY2FsX3N0cmVhbS5nZXRfbGFzdF9yZWNlaXZlZF9vcGNvZGUoKQotICAgICAgICAgICAgICAg
IGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0JJTkFSWToKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fbXV4X2hhbmRsZXIuZmFpbF9waHlzaWNhbF9jb25uZWN0aW9uKAotICAgICAgICAgICAg
ICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX0VOQ0FQU1VMQVRJTkdfTUVTU0FHRSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBhIHRleHQgbWVzc2FnZSBvbiBwaHlzaWNh
bCBjb25uZWN0aW9uJykKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAg
ZXhjZXB0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICAgICAgYnJlYWsKLQot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmRpc3Bh
dGNoX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgIGV4Y2VwdCBQaHlzaWNhbENvbm5lY3Rp
b25FcnJvciBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmZhaWxfcGh5
c2ljYWxfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICAgICAgZS5kcm9wX2NvZGUsIGUubWVz
c2FnZSkKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZXhjZXB0IExvZ2ljYWxD
aGFubmVsRXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWls
X2xvZ2ljYWxfY2hhbm5lbCgKLSAgICAgICAgICAgICAgICAgICAgZS5jaGFubmVsX2lkLCBlLmRy
b3BfY29kZSwgZS5tZXNzYWdlKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zyh0cmFjZWJhY2suZm9ybWF0X2V4Yygp
KQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIubm90
aWZ5X3JlYWRlcl9kb25lKCkKLQotCi1jbGFzcyBfV29ya2VyKHRocmVhZGluZy5UaHJlYWQpOgot
Ci0gICAgIiIiQSB0aHJlYWQgdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgcnVubmluZyB0aGUgY29y
cmVzcG9uZGluZyBhcHBsaWNhdGlvbgotICAgIGhhbmRsZXIuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgbXV4X2hhbmRsZXIsIHJlcXVlc3QpOgotICAgICAgICAiIiJDb25zdHJ1
Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG11eF9oYW5kbGVy
OiBfTXV4SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgICAgIHJlcXVlc3Q6IF9Mb2dpY2FsUmVx
dWVzdCBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19p
bml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2Vy
KHNlbGYpCi0gICAgICAgIHNlbGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIKLSAgICAgICAg
c2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLQot
ICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTG9naWNhbCBj
aGFubmVsIHdvcmtlciBzdGFydGVkLiAoaWQ9JWQpJyAlCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
ICMgTm9uLWNyaXRpY2FsIGV4Y2VwdGlvbnMgd2lsbCBiZSBoYW5kbGVkIGJ5IGRpc3BhdGNoZXIu
Ci0gICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEo
c2VsZi5fcmVxdWVzdCkKLSAgICAgICAgZXhjZXB0IExvZ2ljYWxDaGFubmVsRXJyb3IgYXMgZToK
LSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmZhaWxfbG9naWNhbF9jaGFubmVsKAotICAg
ICAgICAgICAgICAgIGUuY2hhbm5lbF9pZCwgZS5kcm9wX2NvZGUsIGUubWVzc2FnZSkKLSAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLm5vdGlmeV93b3JrZXJf
ZG9uZShzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0KLQotY2xhc3MgX011eEhhbmRzaGFrZXIo
aHliaS5IYW5kc2hha2VyKToKLQotICAgICIiIk9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBm
b3IgbXVsdGlwbGV4aW5nLiIiIgotCi0gICAgX0RVTU1ZX1dFQlNPQ0tFVF9LRVkgPSAnZEdobElI
TmhiWEJzWlNCdWIyNWpaUT09JwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRp
c3BhdGNoZXIsIHNlbmRfcXVvdGEsIHJlY2VpdmVfcXVvdGEpOgotICAgICAgICAiIiJDb25zdHJ1
Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IF9M
b2dpY2FsUmVxdWVzdCBpbnN0YW5jZS4KLSAgICAgICAgICAgIGRpc3BhdGNoZXI6IERpc3BhdGNo
ZXIgaW5zdGFuY2UgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgotICAgICAgICAgICAgc2VuZF9xdW90
YTogSW5pdGlhbCBzZW5kIHF1b3RhLgotICAgICAgICAgICAgcmVjZWl2ZV9xdW90YTogSW5pdGlh
bCByZWNlaXZlIHF1b3RhLgotICAgICAgICAiIiIKLSAgICAgICAgaHliaS5IYW5kc2hha2VyLl9f
aW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIHNlbGYuX3NlbmRfcXVv
dGEgPSBzZW5kX3F1b3RhCi0gICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEgPSByZWNlaXZlX3F1
b3RhCi0KLSAgICAgICAgIyBBcHBlbmQgaGVhZGVycyB3aGljaCBzaG91bGQgbm90IGJlIGluY2x1
ZGVkIGluIGhhbmRzaGFrZSBmaWVsZCBvZgotICAgICAgICAjIEFkZENoYW5uZWxSZXF1ZXN0Lgot
ICAgICAgICAjIFRPRE8oYmFzaGkpOiBNYWtlIHN1cmUgd2hldGhlciB3ZSBzaG91bGQgcmFpc2Ug
ZXhjZXB0aW9uIHdoZW4KLSAgICAgICAgIyAgICAgdGhlc2UgaGVhZGVycyBhcmUgaW5jbHVkZWQg
YWxyZWFkeS4KLSAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luW2NvbW1vbi5VUEdSQURFX0hFQURF
Ul0gPSAoCi0gICAgICAgICAgICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSkKLSAgICAg
ICAgcmVxdWVzdC5oZWFkZXJzX2luW2NvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVS
XSA9ICgKLSAgICAgICAgICAgIHN0cihjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVCkpCi0gICAg
ICAgIHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSXSA9
ICgKLSAgICAgICAgICAgIHNlbGYuX0RVTU1ZX1dFQlNPQ0tFVF9LRVkpCi0KLSAgICBkZWYgX2Ny
ZWF0ZV9zdHJlYW0oc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICAiIiJPdmVycmlkZSBo
eWJpLkhhbmRzaGFrZXIuX2NyZWF0ZV9zdHJlYW0uIiIiCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnQ3JlYXRpbmcgbG9naWNhbCBzdHJlYW0gZm9yICVkJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgIHJldHVybiBfTG9n
aWNhbFN0cmVhbSgKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QsIHN0cmVhbV9vcHRpb25zLCBz
ZWxmLl9zZW5kX3F1b3RhLAotICAgICAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSkKLQotICAg
IGRlZiBfY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZShzZWxmLCBhY2NlcHQpOgotICAgICAgICAi
IiJPdmVycmlkZSBoeWJpLl9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlLiIiIgotICAgICAgICBy
ZXNwb25zZSA9IFtdCi0KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdIVFRQLzEuMSAxMDEgU3dp
dGNoaW5nIFByb3RvY29sc1xyXG4nKQotCi0gICAgICAgICMgVXBncmFkZSBhbmQgU2VjLVdlYlNv
Y2tldC1BY2NlcHQgc2hvdWxkIGJlIGV4Y2x1ZGVkLgotICAgICAgICByZXNwb25zZS5hcHBlbmQo
JyVzOiAlc1xyXG4nICUgKAotICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBj
b21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUpKQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0
LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCcl
czogJXNcclxuJyAlICgKLSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9QUk9U
T0NPTF9IRUFERVIsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkp
Ci0gICAgICAgIGlmIChzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMgaXMgbm90IE5vbmUgYW5k
Ci0gICAgICAgICAgICBsZW4oc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zKSAhPSAwKToKLSAg
ICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnJXM6ICVzXHJcbicgJSAoCi0gICAgICAgICAgICAg
ICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIsCi0gICAgICAgICAgICAg
ICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykp
KQotICAgICAgICByZXNwb25zZS5hcHBlbmQoJ1xyXG4nKQotCi0gICAgICAgIHJldHVybiAnJy5q
b2luKHJlc3BvbnNlKQotCi0gICAgZGVmIF9zZW5kX2hhbmRzaGFrZShzZWxmLCBhY2NlcHQpOgot
ICAgICAgICAiIiJPdmVycmlkZSBoeWJpLkhhbmRzaGFrZXIuX3NlbmRfaGFuZHNoYWtlLiIiIgot
ICAgICAgICAjIERvbid0IHNlbmQgaGFuZHNoYWtlIHJlc3BvbnNlIGZvciB0aGUgZGVmYXVsdCBj
aGFubmVsCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCA9PSBfREVGQVVMVF9D
SEFOTkVMX0lEOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaGFuZHNoYWtlX3Jlc3Bv
bnNlID0gc2VsZi5fY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZShhY2NlcHQpCi0gICAgICAgIGZy
YW1lX2RhdGEgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBoYW5kc2hha2VfcmVzcG9uc2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2Vu
ZGluZyBoYW5kc2hha2UgcmVzcG9uc2UgZm9yICVkOiAlcicgJQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgZnJhbWVfZGF0YSkpCi0gICAgICAg
IHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZV9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkK
LQotCi1jbGFzcyBfTG9naWNhbENoYW5uZWxEYXRhKG9iamVjdCk6Ci0KLSAgICAiIiJBIHN0cnVj
dHVyZSB0aGF0IGhvbGRzIGluZm9ybWF0aW9uIGFib3V0IGxvZ2ljYWwgY2hhbm5lbC4iIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCB3b3JrZXIpOgotICAgICAgICBzZWxmLnJl
cXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYud29ya2VyID0gd29ya2VyCi0gICAgICAgIHNl
bGYuZHJvcF9jb2RlID0gX0RST1BfQ09ERV9OT1JNQUxfQ0xPU1VSRQotICAgICAgICBzZWxmLmRy
b3BfbWVzc2FnZSA9ICcnCi0KLQotY2xhc3MgX0hhbmRzaGFrZURlbHRhQmFzZShvYmplY3QpOgot
ICAgICIiIkEgY2xhc3MgdGhhdCBob2xkcyBpbmZvcm1hdGlvbiBmb3IgZGVsdGEtZW5jb2RlZCBo
YW5kc2hha2UuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgaGVhZGVycyk6Ci0gICAgICAg
IHNlbGYuX2hlYWRlcnMgPSBoZWFkZXJzCi0KLSAgICBkZWYgY3JlYXRlX2hlYWRlcnMoc2VsZiwg
ZGVsdGE9Tm9uZSk6Ci0gICAgICAgICIiIkNyZWF0ZXMgcmVxdWVzdCBoZWFkZXJzIGZvciBhbiBB
ZGRDaGFubmVsUmVxdWVzdCB0aGF0IGhhcwotICAgICAgICBkZWx0YS1lbmNvZGVkIGhhbmRzaGFr
ZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZGVsdGE6IGhlYWRlcnMgc2hvdWxkIGJl
IG92ZXJyaWRkZW4uCi0gICAgICAgICIiIgotCi0gICAgICAgIGhlYWRlcnMgPSBjb3B5LmNvcHko
c2VsZi5faGVhZGVycykKLSAgICAgICAgaWYgZGVsdGE6Ci0gICAgICAgICAgICBmb3Iga2V5LCB2
YWx1ZSBpbiBkZWx0YS5pdGVtcygpOgotICAgICAgICAgICAgICAgICMgVGhlIHNwZWMgcmVxdWly
ZXMgdGhhdCBhIGhlYWRlciB3aXRoIGFuIGVtcHR5IHZhbHVlIGlzCi0gICAgICAgICAgICAgICAg
IyByZW1vdmVkIGZyb20gdGhlIGRlbHRhIGJhc2UuCi0gICAgICAgICAgICAgICAgaWYgbGVuKHZh
bHVlKSA9PSAwIGFuZCBoZWFkZXJzLmhhc19rZXkoa2V5KToKLSAgICAgICAgICAgICAgICAgICAg
ZGVsIGhlYWRlcnNba2V5XQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ICAgIGhlYWRlcnNba2V5XSA9IHZhbHVlCi0gICAgICAgIHJldHVybiBoZWFkZXJzCi0KLQotY2xh
c3MgX011eEhhbmRsZXIob2JqZWN0KToKLSAgICAiIiJNdWx0aXBsZXhpbmcgaGFuZGxlci4gV2hl
biBhIGhhbmRsZXIgc3RhcnRzLCBpdCBsYXVuY2hlcyB0aHJlZQotICAgIHRocmVhZHM7IHRoZSBy
ZWFkZXIgdGhyZWFkLCB0aGUgd3JpdGVyIHRocmVhZCwgYW5kIGEgd29ya2VyIHRocmVhZC4KLQot
ICAgIFRoZSByZWFkZXIgdGhyZWFkIHJlYWRzIGRhdGEgZnJvbSB0aGUgcGh5c2ljYWwgc3RyZWFt
LCBpLmUuLCB0aGUKLSAgICB3c19zdHJlYW0gb2JqZWN0IG9mIHRoZSB1bmRlcmx5aW5nIHdlYnNv
Y2tldCBjb25uZWN0aW9uLiBUaGUgcmVhZGVyCi0gICAgdGhyZWFkIGludGVycHJldHMgbXVsdGlw
bGV4ZWQgZnJhbWVzIGFuZCBkaXNwYXRjaGVzIHRoZW0gdG8gbG9naWNhbAotICAgIGNoYW5uZWxz
LiBNZXRob2RzIG9mIHRoaXMgY2xhc3MgYXJlIG1vc3RseSBjYWxsZWQgYnkgdGhlIHJlYWRlciB0
aHJlYWQuCi0KLSAgICBUaGUgd3JpdGVyIHRocmVhZCBzZW5kcyBtdWx0aXBsZXhlZCBmcmFtZXMg
d2hpY2ggYXJlIGNyZWF0ZWQgYnkKLSAgICBsb2dpY2FsIGNoYW5uZWxzIHZpYSB0aGUgcGh5c2lj
YWwgY29ubmVjdGlvbi4KLQotICAgIFRoZSB3b3JrZXIgdGhyZWFkIGxhdW5jaGVkIGF0IHRoZSBz
dGFydGluZyBwb2ludCBoYW5kbGVzIHRoZQotICAgICJJbXBsaWNpdGx5IE9wZW5lZCBDb25uZWN0
aW9uIi4gSWYgbXVsdGlwbGV4aW5nIGhhbmRsZXIgcmVjZWl2ZXMKLSAgICBhbiBBZGRDaGFubmVs
UmVxdWVzdCBhbmQgYWNjZXB0cyBpdCwgdGhlIGhhbmRsZXIgd2lsbCBsYXVuY2ggYSBuZXcgd29y
a2VyCi0gICAgdGhyZWFkIGFuZCBkaXNwYXRjaCB0aGUgcmVxdWVzdCB0byBpdC4KLSAgICAiIiIK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRjaGVyKToKLSAgICAgICAg
IiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
cmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0IG9mIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLgot
ICAgICAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlciBpbnN0YW5jZSAoZGlzcGF0Y2guRGlz
cGF0Y2hlcikuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdCA9
IHJlcXVlc3QKLSAgICAgICAgc2VsZi5kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcgotICAgICAgICBz
ZWxmLnBoeXNpY2FsX2Nvbm5lY3Rpb24gPSByZXF1ZXN0LmNvbm5lY3Rpb24KLSAgICAgICAgc2Vs
Zi5waHlzaWNhbF9zdHJlYW0gPSByZXF1ZXN0LndzX3N0cmVhbQotICAgICAgICBzZWxmLl9sb2dn
ZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLSAgICAgICAgc2VsZi5fbG9naWNhbF9j
aGFubmVscyA9IHt9Ci0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uID0g
dGhyZWFkaW5nLkNvbmRpdGlvbigpCi0gICAgICAgICMgSG9sZHMgY2xpZW50J3MgaW5pdGlhbCBx
dW90YQotICAgICAgICBzZWxmLl9jaGFubmVsX3Nsb3RzID0gY29sbGVjdGlvbnMuZGVxdWUoKQot
ICAgICAgICBzZWxmLl9oYW5kc2hha2VfYmFzZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fd29ya2Vy
X2RvbmVfbm90aWZ5X3JlY2VpdmVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fcmVhZGVyID0gTm9u
ZQotICAgICAgICBzZWxmLl93cml0ZXIgPSBOb25lCi0KLSAgICBkZWYgc3RhcnQoc2VsZik6Ci0g
ICAgICAgICIiIlN0YXJ0cyB0aGUgaGFuZGxlci4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAg
ICAgICBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uOiB3aGVuIHRoZSBoYW5kbGVyIGFscmVhZHkgc3Rh
cnRlZCwgb3Igd2hlbgotICAgICAgICAgICAgICAgIG9wZW5pbmcgaGFuZHNoYWtlIG9mIHRoZSBk
ZWZhdWx0IGNoYW5uZWwgZmFpbHMuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3Jl
YWRlciBvciBzZWxmLl93cml0ZXI6Ci0gICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhj
ZXB0aW9uKCdNdXhIYW5kbGVyIGFscmVhZHkgc3RhcnRlZCcpCi0KLSAgICAgICAgc2VsZi5fcmVh
ZGVyID0gX1BoeXNpY2FsQ29ubmVjdGlvblJlYWRlcihzZWxmKQotICAgICAgICBzZWxmLl93cml0
ZXIgPSBfUGh5c2ljYWxDb25uZWN0aW9uV3JpdGVyKHNlbGYpCi0gICAgICAgIHNlbGYuX3JlYWRl
ci5zdGFydCgpCi0gICAgICAgIHNlbGYuX3dyaXRlci5zdGFydCgpCi0KLSAgICAgICAgIyBDcmVh
dGUgIkltcGxpY2l0bHkgT3BlbmVkIENvbm5lY3Rpb24iLgotICAgICAgICBsb2dpY2FsX2Nvbm5l
Y3Rpb24gPSBfTG9naWNhbENvbm5lY3Rpb24oc2VsZiwgX0RFRkFVTFRfQ0hBTk5FTF9JRCkKLSAg
ICAgICAgaGVhZGVycyA9IGNvcHkuY29weShzZWxmLm9yaWdpbmFsX3JlcXVlc3QuaGVhZGVyc19p
bikKLSAgICAgICAgIyBBZGQgZXh0ZW5zaW9ucyBmb3IgbG9naWNhbCBjaGFubmVsLgotICAgICAg
ICBoZWFkZXJzW2NvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSXSA9ICgKLSAg
ICAgICAgICAgIGNvbW1vbi5mb3JtYXRfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICAgICBzZWxm
Lm9yaWdpbmFsX3JlcXVlc3QubXV4X3Byb2Nlc3Nvci5leHRlbnNpb25zKCkpKQotICAgICAgICBz
ZWxmLl9oYW5kc2hha2VfYmFzZSA9IF9IYW5kc2hha2VEZWx0YUJhc2UoaGVhZGVycykKLSAgICAg
ICAgbG9naWNhbF9yZXF1ZXN0ID0gX0xvZ2ljYWxSZXF1ZXN0KAotICAgICAgICAgICAgX0RFRkFV
TFRfQ0hBTk5FTF9JRCwKLSAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdC5tZXRob2Qs
Ci0gICAgICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QudXJpLAotICAgICAgICAgICAgc2Vs
Zi5vcmlnaW5hbF9yZXF1ZXN0LnByb3RvY29sLAotICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtl
X2Jhc2UuY3JlYXRlX2hlYWRlcnMoKSwKLSAgICAgICAgICAgIGxvZ2ljYWxfY29ubmVjdGlvbikK
LSAgICAgICAgIyBDbGllbnQncyBzZW5kIHF1b3RhIGZvciB0aGUgaW1wbGljaXRseSBvcGVuZWQg
Y29ubmVjdGlvbiBpcyB6ZXJvLAotICAgICAgICAjIGJ1dCB3ZSB3aWxsIHNlbmQgRmxvd0NvbnRy
b2wgbGF0ZXIgc28gc2V0IHRoZSBpbml0aWFsIHF1b3RhIHRvCi0gICAgICAgICMgX0lOSVRJQUxf
UVVPVEFfRk9SX0NMSUVOVC4KLSAgICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cy5hcHBlbmQoX0lO
SVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLSAgICAgICAgc2VuZF9xdW90YSA9IHNlbGYub3JpZ2lu
YWxfcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnF1b3RhKCkKLSAgICAgICAgaWYgbm90IHNlbGYuX2Rv
X2hhbmRzaGFrZV9mb3JfbG9naWNhbF9yZXF1ZXN0KAotICAgICAgICAgICAgbG9naWNhbF9yZXF1
ZXN0LCBzZW5kX3F1b3RhPXNlbmRfcXVvdGEpOgotICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBl
Y3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRmFpbGVkIGhhbmRzaGFrZSBvbiB0aGUg
ZGVmYXVsdCBjaGFubmVsIGlkJykKLSAgICAgICAgc2VsZi5fYWRkX2xvZ2ljYWxfY2hhbm5lbChs
b2dpY2FsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBTZW5kIEZsb3dDb250cm9sIGZvciB0aGUgaW1w
bGljaXRseSBvcGVuZWQgY29ubmVjdGlvbi4KLSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVf
Zmxvd19jb250cm9sKF9ERUZBVUxUX0NIQU5ORUxfSUQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBfSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotICAgICAgICBs
b2dpY2FsX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZV9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkK
LQotICAgIGRlZiBhZGRfY2hhbm5lbF9zbG90cyhzZWxmLCBzbG90cywgc2VuZF9xdW90YSk6Ci0g
ICAgICAgICIiIkFkZHMgY2hhbm5lbCBzbG90cy4KLQotICAgICAgICBBcmdzOgotICAgICAgICAg
ICAgc2xvdHM6IG51bWJlciBvZiBzbG90cyB0byBiZSBhZGRlZC4KLSAgICAgICAgICAgIHNlbmRf
cXVvdGE6IGluaXRpYWwgc2VuZCBxdW90YSBmb3Igc2xvdHMuCi0gICAgICAgICIiIgotCi0gICAg
ICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMuZXh0ZW5kKFtzZW5kX3F1b3RhXSAqIHNsb3RzKQotICAg
ICAgICAjIFNlbmQgTmV3Q2hhbm5lbFNsb3QgdG8gY2xpZW50LgotICAgICAgICBmcmFtZV9kYXRh
ID0gX2NyZWF0ZV9uZXdfY2hhbm5lbF9zbG90KHNsb3RzLCBzZW5kX3F1b3RhKQotICAgICAgICBz
ZWxmLnNlbmRfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0KLSAgICBkZWYgd2FpdF91bnRpbF9k
b25lKHNlbGYsIHRpbWVvdXQ9Tm9uZSk6Ci0gICAgICAgICIiIldhaXRzIHVudGlsIGFsbCB3b3Jr
ZXJzIGFyZSBkb25lLiBSZXR1cm5zIEZhbHNlIHdoZW4gdGltZW91dCBoYXMKLSAgICAgICAgb2Nj
dXJyZWQuIFJldHVybnMgVHJ1ZSBvbiBzdWNjZXNzLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAg
ICAgICB0aW1lb3V0OiB0aW1lb3V0IGluIHNlYy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2Vs
Zi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHdoaWxlIGxlbihzZWxmLl9sb2dpY2FsX2NoYW5uZWxzKSA+IDA6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdXYWl0aW5nIHdvcmtlcnMoJWQpLi4uJyAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzKSkKLSAgICAgICAgICAgICAgICBzZWxmLl93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQg
PSBGYWxzZQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
LndhaXQodGltZW91dCkKLSAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fd29ya2VyX2RvbmVf
bm90aWZ5X3JlY2VpdmVkOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1dhaXRpbmcgd29ya2VyKHMpIHRpbWVkIG91dCcpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgIyBGbHVzaCBwZW5kaW5nIG91dGdv
aW5nIGRhdGEKLSAgICAgICAgc2VsZi5fd3JpdGVyLnN0b3AoKQotICAgICAgICBzZWxmLl93cml0
ZXIuam9pbigpCi0KLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiBub3RpZnlfd3JpdGVf
ZGF0YV9kb25lKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICAiIiJDYWxsZWQgYnkgdGhlIHdy
aXRlciB0aHJlYWQgd2hlbiBhIHdyaXRlIG9wZXJhdGlvbiBoYXMgZG9uZS4KLQotICAgICAgICBB
cmdzOgotICAgICAgICAgICAgY2hhbm5lbF9pZDogb2JqZWN0aXZlIGNoYW5uZWwgaWQuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgY2hhbm5lbF9pZCBpbiBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0KLSAgICAgICAgICAgICAgICBjaGFubmVsX2Rh
dGEucmVxdWVzdC5jb25uZWN0aW9uLm9uX3dyaXRlX2RhdGFfZG9uZSgpCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VlbXMgdGhhdCBsb2dp
Y2FsIGNoYW5uZWwgZm9yICVkIGhhcyBnb25lJwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAlIGNoYW5uZWxfaWQpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBzZW5kX2Nv
bnRyb2xfZGF0YShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiU2VuZHMgZGF0YSB2aWEgdGhlIGNv
bnRyb2wgY2hhbm5lbC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZGF0YTogZGF0YSB0
byBiZSBzZW50LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl93cml0ZXIucHV0X291dGdv
aW5nX2RhdGEoX091dGdvaW5nRGF0YSgKLSAgICAgICAgICAgICAgICBjaGFubmVsX2lkPV9DT05U
Uk9MX0NIQU5ORUxfSUQsIGRhdGE9ZGF0YSkpCi0KLSAgICBkZWYgc2VuZF9kYXRhKHNlbGYsIGNo
YW5uZWxfaWQsIGRhdGEpOgotICAgICAgICAiIiJTZW5kcyBkYXRhIHZpYSBnaXZlbiBsb2dpY2Fs
IGNoYW5uZWwuIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieQotICAgICAgICB3b3JrZXIgdGhyZWFk
cy4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY2hhbm5lbF9pZDogb2JqZWN0aXZlIGNo
YW5uZWwgaWQuCi0gICAgICAgICAgICBkYXRhOiBkYXRhIHRvIGJlIHNlbnQuCi0gICAgICAgICIi
IgotCi0gICAgICAgIHNlbGYuX3dyaXRlci5wdXRfb3V0Z29pbmdfZGF0YShfT3V0Z29pbmdEYXRh
KAotICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQ9Y2hhbm5lbF9pZCwgZGF0YT1kYXRhKSkKLQot
ICAgIGRlZiBfc2VuZF9kcm9wX2NoYW5uZWwoc2VsZiwgY2hhbm5lbF9pZCwgY29kZT1Ob25lLCBt
ZXNzYWdlPScnKToKLSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfZHJvcF9jaGFubmVsKGNo
YW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAg
ICAgICAgICAgICdTZW5kaW5nIGRyb3AgY2hhbm5lbCBmb3IgY2hhbm5lbCBpZCAlZCcgJSBjaGFu
bmVsX2lkKQotICAgICAgICBzZWxmLnNlbmRfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0KLSAg
ICBkZWYgX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxfcmVzcG9uc2Uoc2VsZiwgY2hhbm5lbF9pZCwg
c3RhdHVzPU5vbmUpOgotICAgICAgICBpZiBzdGF0dXMgaXMgTm9uZToKLSAgICAgICAgICAgIHN0
YXR1cyA9IGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVAotCi0gICAgICAgIGlmIHN0YXR1
cyBpbiBfSFRUUF9CQURfUkVTUE9OU0VfTUVTU0FHRVM6Ci0gICAgICAgICAgICBtZXNzYWdlID0g
X0hUVFBfQkFEX1JFU1BPTlNFX01FU1NBR0VTW3N0YXR1c10KLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVzcG9uc2UgbWVzc2FnZSBmb3IgJWQgaXMgbm90
IGZvdW5kJyAlIHN0YXR1cykKLSAgICAgICAgICAgIG1lc3NhZ2UgPSAnPz8/JwotCi0gICAgICAg
IHJlc3BvbnNlID0gJ0hUVFAvMS4xICVkICVzXHJcblxyXG4nICUgKHN0YXR1cywgbWVzc2FnZSkK
LSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9uc2UoY2hhbm5l
bF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW5jb2RlZF9oYW5kc2hha2U9cmVzcG9uc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPTAsIHJlamVjdGVkPVRydWUpCi0gICAgICAg
IHNlbGYuc2VuZF9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkKLQotICAgIGRlZiBfY3JlYXRlX2xv
Z2ljYWxfcmVxdWVzdChzZWxmLCBibG9jayk6Ci0gICAgICAgIGlmIGJsb2NrLmNoYW5uZWxfaWQg
PT0gX0NPTlRST0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAgICMgVE9ETyhiYXNoaSk6IFJhaXNl
IFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yIHdpdGggY29kZSAyMDA2Ci0gICAgICAgICAgICAjIGlu
c3RlYWQgb2YgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbi4KLSAgICAgICAgICAgIHJhaXNlIE11eFVu
ZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlY2VpdmVkIHRoZSBjb250cm9s
IGNoYW5uZWwgaWQgKDApIGFzIG9iamVjdGl2ZSBjaGFubmVsICcKLSAgICAgICAgICAgICAgICAn
aWQgZm9yIEFkZENoYW5uZWwnKQotCi0gICAgICAgIGlmIGJsb2NrLmVuY29kaW5nID4gX0hBTkRT
SEFLRV9FTkNPRElOR19ERUxUQToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlv
bkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfVU5LTk9XTl9SRVFVRVNUX0VOQ09E
SU5HKQotCi0gICAgICAgIG1ldGhvZCwgcGF0aCwgdmVyc2lvbiwgaGVhZGVycyA9IF9wYXJzZV9y
ZXF1ZXN0X3RleHQoCi0gICAgICAgICAgICBibG9jay5lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAg
ICAgaWYgYmxvY2suZW5jb2RpbmcgPT0gX0hBTkRTSEFLRV9FTkNPRElOR19ERUxUQToKLSAgICAg
ICAgICAgIGhlYWRlcnMgPSBzZWxmLl9oYW5kc2hha2VfYmFzZS5jcmVhdGVfaGVhZGVycyhoZWFk
ZXJzKQotCi0gICAgICAgIGNvbm5lY3Rpb24gPSBfTG9naWNhbENvbm5lY3Rpb24oc2VsZiwgYmxv
Y2suY2hhbm5lbF9pZCkKLSAgICAgICAgcmVxdWVzdCA9IF9Mb2dpY2FsUmVxdWVzdChibG9jay5j
aGFubmVsX2lkLCBtZXRob2QsIHBhdGgsIHZlcnNpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVhZGVycywgY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIHJlcXVlc3QK
LQotICAgIGRlZiBfZG9faGFuZHNoYWtlX2Zvcl9sb2dpY2FsX3JlcXVlc3Qoc2VsZiwgcmVxdWVz
dCwgc2VuZF9xdW90YT0wKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmVjZWl2ZV9xdW90
YSA9IHNlbGYuX2NoYW5uZWxfc2xvdHMucG9wbGVmdCgpCi0gICAgICAgIGV4Y2VwdCBJbmRleEVy
cm9yOgotICAgICAgICAgICAgcmFpc2UgTG9naWNhbENoYW5uZWxFcnJvcigKLSAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNoYW5uZWxfaWQsIF9EUk9QX0NPREVfTkVXX0NIQU5ORUxfU0xPVF9WSU9M
QVRJT04pCi0KLSAgICAgICAgaGFuZHNoYWtlciA9IF9NdXhIYW5kc2hha2VyKHJlcXVlc3QsIHNl
bGYuZGlzcGF0Y2hlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRf
cXVvdGEsIHJlY2VpdmVfcXVvdGEpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhhbmRzaGFr
ZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5WZXJzaW9uRXhjZXB0
aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnJXMnLCBlKQotICAgICAg
ICAgICAgc2VsZi5fc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNoYW5uZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfQkFEX1JF
UVVFU1QpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgZXhjZXB0IGhhbmRzaGFr
ZS5IYW5kc2hha2VFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICMgVE9ETyhiYXNoaSk6IFNo
b3VsZCB3ZSBfRmFpbCB0aGUgTG9naWNhbCBDaGFubmVsXyB3aXRoIDMwMDEKLSAgICAgICAgICAg
ICMgaW5zdGVhZD8KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCclcycsIGUpCi0gICAg
ICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHJlcXVlc3QuY2hh
bm5lbF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdHVzPWUuc3RhdHVzKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGV4
Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmluZm8oJyVzJywgZSkKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfZXJyb3Jf
YWRkX2NoYW5uZWxfcmVzcG9uc2UocmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCi0KLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiBfYWRkX2xvZ2ljYWxf
Y2hhbm5lbChzZWxmLCBsb2dpY2FsX3JlcXVlc3QpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAg
IGlmIGxvZ2ljYWxfcmVxdWVzdC5jaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDaGFubmVsIGlkICVkIGFscmVh
ZHkgZXhpc3RzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxf
cmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVj
dGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0NIQU5ORUxfQUxSRUFE
WV9FWElTVFMsCi0gICAgICAgICAgICAgICAgICAgICdDaGFubmVsIGlkICVkIGFscmVhZHkgZXhp
c3RzJyAlCi0gICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdC5jaGFubmVsX2lkKQot
ICAgICAgICAgICAgd29ya2VyID0gX1dvcmtlcihzZWxmLCBsb2dpY2FsX3JlcXVlc3QpCi0gICAg
ICAgICAgICBjaGFubmVsX2RhdGEgPSBfTG9naWNhbENoYW5uZWxEYXRhKGxvZ2ljYWxfcmVxdWVz
dCwgd29ya2VyKQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tsb2dpY2FsX3Jl
cXVlc3QuY2hhbm5lbF9pZF0gPSBjaGFubmVsX2RhdGEKLSAgICAgICAgICAgIHdvcmtlci5zdGFy
dCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
X2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBfcHJvY2Vzc19hZGRfY2hhbm5lbF9yZXF1
ZXN0KHNlbGYsIGJsb2NrKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbG9naWNhbF9yZXF1
ZXN0ID0gc2VsZi5fY3JlYXRlX2xvZ2ljYWxfcmVxdWVzdChibG9jaykKLSAgICAgICAgZXhjZXB0
IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFpbGVk
IHRvIGNyZWF0ZSBsb2dpY2FsIHJlcXVlc3Q6ICVyJyAlIGUpCi0gICAgICAgICAgICBzZWxmLl9z
ZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAotICAgICAgICAgICAgICAgIGJsb2NrLmNo
YW5uZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0gICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgaWYgc2VsZi5fZG9faGFuZHNoYWtlX2Zvcl9sb2dpY2FsX3Jl
cXVlc3QobG9naWNhbF9yZXF1ZXN0KToKLSAgICAgICAgICAgIGlmIGJsb2NrLmVuY29kaW5nID09
IF9IQU5EU0hBS0VfRU5DT0RJTkdfSURFTlRJVFk6Ci0gICAgICAgICAgICAgICAgIyBVcGRhdGUg
aGFuZHNoYWtlIGJhc2UuCi0gICAgICAgICAgICAgICAgIyBUT0RPKGJhc2hpKTogTWFrZSBzdXJl
IHRoaXMgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIHVwZGF0ZQotICAgICAgICAgICAgICAgICMgaGFu
ZHNoYWtlIGJhc2UuCi0gICAgICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlX2Jhc2UgPSBfSGFu
ZHNoYWtlRGVsdGFCYXNlKAotICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX3JlcXVlc3QuaGVh
ZGVyc19pbikKLSAgICAgICAgICAgIHNlbGYuX2FkZF9sb2dpY2FsX2NoYW5uZWwobG9naWNhbF9y
ZXF1ZXN0KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fc2VuZF9lcnJvcl9hZGRf
Y2hhbm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAgICAgICBibG9jay5jaGFubmVsX2lkLCBzdGF0
dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotCi0gICAgZGVmIF9wcm9jZXNzX2Zs
b3dfY29udHJvbChzZWxmLCBibG9jayk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbm90
IGJsb2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHNbYmxvY2suY2hhbm5lbF9pZF0KLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0
LndzX3N0cmVhbS5yZXBsZW5pc2hfc2VuZF9xdW90YSgKLSAgICAgICAgICAgICAgICBibG9jay5z
ZW5kX3F1b3RhKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9j
aGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgX3Byb2Nlc3NfZHJvcF9jaGFu
bmVsKHNlbGYsIGJsb2NrKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAg
ICAgJ0Ryb3BDaGFubmVsIHJlY2VpdmVkIGZvciAlZDogY29kZT0lciwgcmVhc29uPSVyJyAlCi0g
ICAgICAgICAgICAoYmxvY2suY2hhbm5lbF9pZCwgYmxvY2suZHJvcF9jb2RlLCBibG9jay5kcm9w
X21lc3NhZ2UpKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIG5vdCBibG9jay5jaGFubmVs
X2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2Jsb2NrLmNo
YW5uZWxfaWRdCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEuZHJvcF9jb2RlID0gX0RST1BfQ09E
RV9BQ0tOT1dMRURHRUQKLQotICAgICAgICAgICAgIyBDbG9zZSB0aGUgbG9naWNhbCBjaGFubmVs
Ci0gICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLnNldF9yZWFkX3N0
YXRlKAotICAgICAgICAgICAgICAgIF9Mb2dpY2FsQ29ubmVjdGlvbi5TVEFURV9URVJNSU5BVEVE
KQotICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qud3Nfc3RyZWFtLnN0b3Bfc2VuZGlu
ZygpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
X2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBfcHJvY2Vzc19jb250cm9sX2Jsb2Nrcyhz
ZWxmLCBwYXJzZXIpOgotICAgICAgICBmb3IgY29udHJvbF9ibG9jayBpbiBwYXJzZXIucmVhZF9j
b250cm9sX2Jsb2NrcygpOgotICAgICAgICAgICAgb3Bjb2RlID0gY29udHJvbF9ibG9jay5vcGNv
ZGUKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnY29udHJvbCBibG9jayByZWNlaXZl
ZCwgb3Bjb2RlOiAlZCcgJSBvcGNvZGUpCi0gICAgICAgICAgICBpZiBvcGNvZGUgPT0gX01VWF9P
UENPREVfQUREX0NIQU5ORUxfUkVRVUVTVDoKLSAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNz
X2FkZF9jaGFubmVsX3JlcXVlc3QoY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bj
b2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgotICAgICAgICAgICAgICAg
IHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAgICBfRFJP
UF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgICAgICdS
ZWNlaXZlZCBBZGRDaGFubmVsUmVzcG9uc2UnKQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0g
X01VWF9PUENPREVfRkxPV19DT05UUk9MOgotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3Nf
Zmxvd19jb250cm9sKGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBf
TVVYX09QQ09ERV9EUk9QX0NIQU5ORUw6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19k
cm9wX2NoYW5uZWwoY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9N
VVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1Q6Ci0gICAgICAgICAgICAgICAgcmFpc2UgUGh5c2lj
YWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJ
RF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIE5ld0No
YW5uZWxTbG90JykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgTXV4
VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgb3Bj
b2RlICVyJyAlIG9wY29kZSkKLQotICAgIGRlZiBfcHJvY2Vzc19sb2dpY2FsX2ZyYW1lKHNlbGYs
IGNoYW5uZWxfaWQsIHBhcnNlcik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2
ZWQgYSBmcmFtZS4gY2hhbm5lbCBpZD0lZCcgJSBjaGFubmVsX2lkKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0g
ICAgICAgICAgICAgICAgIyBXZSBtdXN0IGlnbm9yZSB0aGUgbWVzc2FnZSBmb3IgYW4gaW5hY3Rp
dmUgY2hhbm5lbC4KLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxf
ZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0KLSAgICAgICAgICAgIGZp
biwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkID0gcGFyc2VyLnJlYWRfaW5uZXJf
ZnJhbWUoKQotICAgICAgICAgICAgY29uc3VtaW5nX2J5dGUgPSBsZW4ocGF5bG9hZCkKLSAgICAg
ICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAg
ICAgICAgICBjb25zdW1pbmdfYnl0ZSArPSAxCi0gICAgICAgICAgICBpZiBub3QgY2hhbm5lbF9k
YXRhLnJlcXVlc3Qud3Nfc3RyZWFtLmNvbnN1bWVfcmVjZWl2ZV9xdW90YSgKLSAgICAgICAgICAg
ICAgICBjb25zdW1pbmdfYnl0ZSk6Ci0gICAgICAgICAgICAgICAgIyBUaGUgY2xpZW50IHZpb2xh
dGVzIHF1b3RhLiBDbG9zZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAgICAgICAgICAgcmFpc2Ug
TG9naWNhbENoYW5uZWxFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwgX0RS
T1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElPTikKLSAgICAgICAgICAgIGhlYWRlciA9IGNyZWF0
ZV9oZWFkZXIob3Bjb2RlLCBsZW4ocGF5bG9hZCksIGZpbiwgcnN2MSwgcnN2MiwgcnN2MywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaz1GYWxzZSkKLSAgICAgICAgICAg
IGZyYW1lX2RhdGEgPSBoZWFkZXIgKyBwYXlsb2FkCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEu
cmVxdWVzdC5jb25uZWN0aW9uLmFwcGVuZF9mcmFtZV9kYXRhKGZyYW1lX2RhdGEpCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgIGRlZiBkaXNwYXRjaF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAg
ICAgICAiIiJEaXNwYXRjaGVzIG1lc3NhZ2UuIFRoZSByZWFkZXIgdGhyZWFkIGNhbGxzIHRoaXMg
bWV0aG9kLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtZXNzYWdlOiBhIG1lc3NhZ2Ug
dGhhdCBjb250YWlucyBlbmNhcHN1bGF0ZWQgZnJhbWUuCi0gICAgICAgIFJhaXNlczoKLSAgICAg
ICAgICAgIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yOiBpZiB0aGUgbWVzc2FnZSBjb250YWlucyBw
aHlzaWNhbAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gbGV2ZWwgZXJyb3JzLgotICAgICAg
ICAgICAgTG9naWNhbENoYW5uZWxFcnJvcjogaWYgdGhlIG1lc3NhZ2UgY29udGFpbnMgbG9naWNh
bCBjaGFubmVsCi0gICAgICAgICAgICAgICAgbGV2ZWwgZXJyb3JzLgotICAgICAgICAiIiIKLQot
ICAgICAgICBwYXJzZXIgPSBfTXV4RnJhbWVQYXlsb2FkUGFyc2VyKG1lc3NhZ2UpCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkK
LSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNp
Y2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfQ0hBTk5FTF9JRF9UUlVOQ0FURUQpCi0gICAg
ICAgIGlmIGNoYW5uZWxfaWQgPT0gX0NPTlRST0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAgIHNl
bGYuX3Byb2Nlc3NfY29udHJvbF9ibG9ja3MocGFyc2VyKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgc2VsZi5fcHJvY2Vzc19sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQsIHBhcnNlcikKLQot
ICAgIGRlZiBub3RpZnlfd29ya2VyX2RvbmUoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgICIi
IkNhbGxlZCB3aGVuIGEgd29ya2VyIGhhcyBmaW5pc2hlZC4KLQotICAgICAgICBBcmdzOgotICAg
ICAgICAgICAgY2hhbm5lbF9pZDogY2hhbm5lbCBpZCBjb3JyZXNwb25kZWQgd2l0aCB0aGUgd29y
a2VyLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dvcmtlciBm
b3IgY2hhbm5lbCBpZCAlZCB0ZXJtaW5hdGVkJyAlIGNoYW5uZWxfaWQpCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQot
ICAgICAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoK
LSAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICAgICAnQ2hhbm5lbCBpZCAlZCBub3QgZm91bmQnICUgY2hhbm5lbF9pZCkKLSAgICAg
ICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMucG9wKGNoYW5uZWxf
aWQpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93b3JrZXJfZG9uZV9ub3Rp
ZnlfcmVjZWl2ZWQgPSBUcnVlCi0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2Nv
bmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25k
aXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgaWYgbm90IGNoYW5uZWxfZGF0YS5yZXF1ZXN0LnNl
cnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgc2VsZi5fc2VuZF9kcm9wX2NoYW5uZWwoCi0g
ICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwgY29kZT1jaGFubmVsX2RhdGEuZHJvcF9jb2RlLAot
ICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y2hhbm5lbF9kYXRhLmRyb3BfbWVzc2FnZSkKLQotICAg
IGRlZiBub3RpZnlfcmVhZGVyX2RvbmUoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBieSB0aGUgcmVhZGVyIHRocmVhZCB3aGVuIHRoZSByZWFkZXIgaGFzCi0gICAgICAg
IGZpbmlzaGVkLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0g
ICAgICAgICAgICAnVGVybWlhdGluZyBhbGwgbG9naWNhbCBjb25uZWN0aW9ucyB3YWl0aW5nIGZv
ciBpbmNvbWluZyBkYXRhICcKLSAgICAgICAgICAgICcuLi4nKQotICAgICAgICBzZWxmLl9sb2dp
Y2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgZm9yIGNoYW5uZWxfZGF0
YSBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzLnZhbHVlcygpOgotICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRf
c3RhdGUoCi0gICAgICAgICAgICAgICAgICAgIF9Mb2dpY2FsQ29ubmVjdGlvbi5TVEFURV9URVJN
SU5BVEVEKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKLSAgICAgICAgc2VsZi5f
bG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgbm90aWZ5X3dy
aXRlcl9kb25lKHNlbGYpOgotICAgICAgICAiIiJUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgdGhl
IHdyaXRlciB0aHJlYWQgd2hlbiB0aGUgd3JpdGVyIGhhcwotICAgICAgICBmaW5pc2hlZC4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ1Rl
cm1pYXRpbmcgYWxsIGxvZ2ljYWwgY29ubmVjdGlvbnMgd2FpdGluZyBmb3Igd3JpdGUgJwotICAg
ICAgICAgICAgJ2NvbXBsZXRpb24gLi4uJykKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIGZvciBjaGFubmVsX2RhdGEgaW4gc2VsZi5f
bG9naWNhbF9jaGFubmVscy52YWx1ZXMoKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLm9uX3dyaXRlcl9kb25lKCkKLSAg
ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIGZhaWxfcGh5c2ljYWxfY29ubmVj
dGlvbihzZWxmLCBjb2RlLCBtZXNzYWdlKToKLSAgICAgICAgIiIiRmFpbCB0aGUgcGh5c2ljYWwg
Y29ubmVjdGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY29kZTogZHJvcCByZWFz
b24gY29kZS4KLSAgICAgICAgICAgIG1lc3NhZ2U6IGRyb3AgbWVzc2FnZS4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdGYWlsaW5nIHRoZSBwaHlzaWNhbCBjb25u
ZWN0aW9uLi4uJykKLSAgICAgICAgc2VsZi5fc2VuZF9kcm9wX2NoYW5uZWwoX0NPTlRST0xfQ0hB
Tk5FTF9JRCwgY29kZSwgbWVzc2FnZSkKLSAgICAgICAgc2VsZi5fd3JpdGVyLnN0b3AoY29tbW9u
LlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUikKLQotICAgIGRlZiBmYWlsX2xvZ2ljYWxf
Y2hhbm5lbChzZWxmLCBjaGFubmVsX2lkLCBjb2RlLCBtZXNzYWdlKToKLSAgICAgICAgIiIiRmFp
bCBhIGxvZ2ljYWwgY2hhbm5lbC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY2hhbm5l
bF9pZDogY2hhbm5lbCBpZC4KLSAgICAgICAgICAgIGNvZGU6IGRyb3AgcmVhc29uIGNvZGUuCi0g
ICAgICAgICAgICBtZXNzYWdlOiBkcm9wIG1lc3NhZ2UuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFpbGluZyBsb2dpY2FsIGNoYW5uZWwgJWQuLi4nICUgY2hh
bm5lbF9pZCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBjaGFubmVsX2lkIGluIHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5f
bG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXQotICAgICAgICAgICAgICAgICMgQ2xvc2UgdGhl
IGxvZ2ljYWwgY2hhbm5lbC4gbm90aWZ5X3dvcmtlcl9kb25lKCkgd2lsbCBiZQotICAgICAgICAg
ICAgICAgICMgY2FsbGVkIGxhdGVyIGFuZCBpdCB3aWxsIHNlbmQgRHJvcENoYW5uZWwuCi0gICAg
ICAgICAgICAgICAgY2hhbm5lbF9kYXRhLmRyb3BfY29kZSA9IGNvZGUKLSAgICAgICAgICAgICAg
ICBjaGFubmVsX2RhdGEuZHJvcF9tZXNzYWdlID0gbWVzc2FnZQotCi0gICAgICAgICAgICAgICAg
Y2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVjdGlvbi5zZXRfcmVhZF9zdGF0ZSgKLSAgICAgICAg
ICAgICAgICAgICAgX0xvZ2ljYWxDb25uZWN0aW9uLlNUQVRFX1RFUk1JTkFURUQpCi0gICAgICAg
ICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qud3Nfc3RyZWFtLnN0b3Bfc2VuZGluZygpCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfZHJvcF9jaGFubmVs
KGNoYW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotCi1kZWYgdXNl
X211eChyZXF1ZXN0KToKLSAgICByZXR1cm4gaGFzYXR0cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3Nv
cicpIGFuZCAoCi0gICAgICAgIHJlcXVlc3QubXV4X3Byb2Nlc3Nvci5pc19hY3RpdmUoKSkKLQot
Ci1kZWYgc3RhcnQocmVxdWVzdCwgZGlzcGF0Y2hlcik6Ci0gICAgbXV4X2hhbmRsZXIgPSBfTXV4
SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQot
ICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKF9JTklUSUFMX05VTUJFUl9PRl9DSEFO
TkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9JTklUSUFMX1FV
T1RBX0ZPUl9DTElFTlQpCi0KLSAgICBtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUoKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3Rh
bmRhbG9uZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjODc4NjA2NDg4OWU4NGYxMTVhNzU2NzlhYjcxYzc0NDY2
YTBjNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDEyMDgg
KzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJTdGFuZGFsb25lIFdlYlNvY2tldCBzZXJ2ZXIuCi0KLVVzZSB0aGlzIGZpbGUgdG8gbGF1bmNo
IHB5d2Vic29ja2V0IHdpdGhvdXQgQXBhY2hlIEhUVFAgU2VydmVyLgotCi0KLUJBU0lDIFVTQUdF
Ci09PT09PT09PT09PQotCi1HbyB0byB0aGUgc3JjIGRpcmVjdG9yeSBhbmQgcnVuCi0KLSAgJCBw
eXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgWy1wIDx3c19wb3J0Pl0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWy13IDx3ZWJzb2NrX2hhbmRsZXJz
Pl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWy1kIDxkb2N1bWVu
dF9yb290Pl0KLQotPHdzX3BvcnQ+IGlzIHRoZSBwb3J0IG51bWJlciB0byB1c2UgZm9yIHdzOi8v
IGNvbm5lY3Rpb24uCi0KLTxkb2N1bWVudF9yb290PiBpcyB0aGUgcGF0aCB0byB0aGUgcm9vdCBk
aXJlY3Rvcnkgb2YgSFRNTCBmaWxlcy4KLQotPHdlYnNvY2tfaGFuZGxlcnM+IGlzIHRoZSBwYXRo
IHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiBXZWJTb2NrZXQgaGFuZGxlcnMuCi1JZiBub3Qgc3Bl
Y2lmaWVkLCA8ZG9jdW1lbnRfcm9vdD4gd2lsbCBiZSB1c2VkLiBTZWUgX19pbml0X18ucHkgKG9y
Ci1ydW4gJCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQpIGZvciBob3cgdG8gd3JpdGUgV2ViU29ja2V0
IGhhbmRsZXJzLgotCi1Gb3IgbW9yZSBkZXRhaWwgYW5kIG90aGVyIG9wdGlvbnMsIHJ1bgotCi0g
ICQgcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IC0taGVscAotCi1vciBzZWUg
X2J1aWxkX29wdGlvbl9wYXJzZXIgbWV0aG9kIGJlbG93LgotCi1Gb3IgdHJvdWJsZSBzaG9vdGlu
ZywgYWRkaW5nICItLWxvZ19sZXZlbCBkZWJ1ZyIgbWlnaHQgaGVscCB5b3UuCi0KLQotVFJZIERF
TU8KLT09PT09PT09Ci0KLUdvIHRvIHRoZSBzcmMgZGlyZWN0b3J5IGFuZCBydW4gc3RhbmRhbG9u
ZS5weSB3aXRoIC1kIG9wdGlvbiB0byBzZXQgdGhlCi1kb2N1bWVudCByb290IHRvIHRoZSBkaXJl
Y3RvcnkgY29udGFpbmluZyBleGFtcGxlIEhUTUxzIGFuZCBoYW5kbGVycyBsaWtlIHRoaXM6Ci0K
LSAgJCBjZCBzcmMKLSAgJCBQWVRIT05QQVRIPS4gcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFu
ZGFsb25lLnB5IC1kIGV4YW1wbGUKLQotdG8gbGF1bmNoIHB5d2Vic29ja2V0IHdpdGggdGhlIHNh
bXBsZSBoYW5kbGVyIGFuZCBodG1sIG9uIHBvcnQgODAuIE9wZW4KLWh0dHA6Ly9sb2NhbGhvc3Qv
Y29uc29sZS5odG1sLCBjbGljayB0aGUgY29ubmVjdCBidXR0b24sIHR5cGUgc29tZXRoaW5nIGlu
dG8KLXRoZSB0ZXh0IGJveCBuZXh0IHRvIHRoZSBzZW5kIGJ1dHRvbiBhbmQgY2xpY2sgdGhlIHNl
bmQgYnV0dG9uLiBJZiBldmVyeXRoaW5nCi1pcyB3b3JraW5nLCB5b3UnbGwgc2VlIHRoZSBtZXNz
YWdlIHlvdSB0eXBlZCBlY2hvZWQgYnkgdGhlIHNlcnZlci4KLQotCi1VU0lORyBUTFMKLT09PT09
PT09PQotCi1UbyBydW4gdGhlIHN0YW5kYWxvbmUgc2VydmVyIHdpdGggVExTIHN1cHBvcnQsIHJ1
biBpdCB3aXRoIC10LCAtaywgYW5kIC1jCi1vcHRpb25zLiBXaGVuIFRMUyBpcyBlbmFibGVkLCB0
aGUgc3RhbmRhbG9uZSBzZXJ2ZXIgYWNjZXB0cyBvbmx5IFRMUyBjb25uZWN0aW9uLgotCi1Ob3Rl
IHRoYXQgd2hlbiBzc2wgbW9kdWxlIGlzIHVzZWQgYW5kIHRoZSBrZXkvY2VydCBsb2NhdGlvbiBp
cyBpbmNvcnJlY3QsCi1UTFMgY29ubmVjdGlvbiBzaWxlbnRseSBmYWlscyB3aGlsZSBweU9wZW5T
U0wgZmFpbHMgb24gc3RhcnR1cC4KLQotRXhhbXBsZToKLQotICAkIFBZVEhPTlBBVEg9LiBweXRo
b24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgXAotICAgICAgICAtZCBleGFtcGxlIFwK
LSAgICAgICAgLXAgMTA0NDMgXAotICAgICAgICAtdCBcCi0gICAgICAgIC1jIC4uL3Rlc3QvY2Vy
dC9jZXJ0LnBlbSBcCi0gICAgICAgIC1rIC4uL3Rlc3QvY2VydC9rZXkucGVtIFwKLQotTm90ZSB0
aGF0IHdoZW4gcGFzc2luZyBhIHJlbGF0aXZlIHBhdGggdG8gLWMgYW5kIC1rIG9wdGlvbiwgaXQg
d2lsbCBiZSByZXNvbHZlZAotdXNpbmcgdGhlIGRvY3VtZW50IHJvb3QgZGlyZWN0b3J5IGFzIHRo
ZSBiYXNlLgotCi0KLVVTSU5HIENMSUVOVCBBVVRIRU5USUNBVElPTgotPT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0KLVRvIHJ1biB0aGUgc3RhbmRhbG9uZSBzZXJ2ZXIgd2l0aCBUTFMgY2xp
ZW50IGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQsIHJ1biBpdCB3aXRoCi0tLXRscy1jbGllbnQtYXV0
aCBhbmQgLS10bHMtY2xpZW50LWNhIG9wdGlvbnMgaW4gYWRkaXRpb24gdG8gb25lcyByZXF1aXJl
ZCBmb3IKLVRMUyBzdXBwb3J0LgotCi1FeGFtcGxlOgotCi0gICQgUFlUSE9OUEFUSD0uIHB5dGhv
biBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSAtZCBleGFtcGxlIC1wIDEwNDQzIC10IFwK
LSAgICAgICAgLWMgLi4vdGVzdC9jZXJ0L2NlcnQucGVtIC1rIC4uL3Rlc3QvY2VydC9rZXkucGVt
IFwKLSAgICAgICAgLS10bHMtY2xpZW50LWF1dGggXAotICAgICAgICAtLXRscy1jbGllbnQtY2E9
Li4vdGVzdC9jZXJ0L2NhY2VydC5wZW0KLQotTm90ZSB0aGF0IHdoZW4gcGFzc2luZyBhIHJlbGF0
aXZlIHBhdGggdG8gLS10bHMtY2xpZW50LWNhIG9wdGlvbiwgaXQgd2lsbCBiZQotcmVzb2x2ZWQg
dXNpbmcgdGhlIGRvY3VtZW50IHJvb3QgZGlyZWN0b3J5IGFzIHRoZSBiYXNlLgotCi0KLUNPTkZJ
R1VSQVRJT04gRklMRQotPT09PT09PT09PT09PT09PT09Ci0KLVlvdSBjYW4gYWxzbyB3cml0ZSBh
IGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgdXNlIGl0IGJ5IHNwZWNpZnlpbmcgdGhlIHBhdGggdG8K
LXRoZSBjb25maWd1cmF0aW9uIGZpbGUgYnkgLS1jb25maWcgb3B0aW9uLiBQbGVhc2Ugd3JpdGUg
YSBjb25maWd1cmF0aW9uIGZpbGUKLWZvbGxvd2luZyB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUg
UHl0aG9uIENvbmZpZ1BhcnNlciBsaWJyYXJ5LiBOYW1lIG9mIGVhY2gKLWVudHJ5IG11c3QgYmUg
dGhlIGxvbmcgdmVyc2lvbiBhcmd1bWVudCBuYW1lLiBFLmcuIHRvIHNldCBsb2cgbGV2ZWwgdG8g
ZGVidWcsCi1hZGQgdGhlIGZvbGxvd2luZyBsaW5lOgotCi1sb2dfbGV2ZWw9ZGVidWcKLQotRm9y
IG9wdGlvbnMgd2hpY2ggZG9lc24ndCB0YWtlIHZhbHVlLCBwbGVhc2UgYWRkIHNvbWUgZmFrZSB2
YWx1ZS4gRS5nLiBmb3IKLS0tdGxzIG9wdGlvbiwgYWRkIHRoZSBmb2xsb3dpbmcgbGluZToKLQot
dGxzPVRydWUKLQotTm90ZSB0aGF0IHRscyB3aWxsIGJlIGVuYWJsZWQgZXZlbiBpZiB5b3Ugd3Jp
dGUgdGxzPUZhbHNlIGFzIHRoZSB2YWx1ZSBwYXJ0IGlzCi1mYWtlLgotCi1XaGVuIGJvdGggYSBj
b21tYW5kIGxpbmUgYXJndW1lbnQgYW5kIGEgY29uZmlndXJhdGlvbiBmaWxlIGVudHJ5IGFyZSBz
ZXQgZm9yCi10aGUgc2FtZSBjb25maWd1cmF0aW9uIGl0ZW0sIHRoZSBjb21tYW5kIGxpbmUgdmFs
dWUgd2lsbCBvdmVycmlkZSBvbmUgaW4gdGhlCi1jb25maWd1cmF0aW9uIGZpbGUuCi0KLQotVEhS
RUFESU5HCi09PT09PT09PT0KLQotVGhpcyBzZXJ2ZXIgaXMgZGVyaXZlZCBmcm9tIHNvY2tldHNl
cnZlci5UaHJlYWRpbmdNaXhJbi4gSGVuY2UgYSB0aHJlYWQgaXMKLXVzZWQgZm9yIGVhY2ggcmVx
dWVzdC4KLQotCi1TRUNVUklUWSBXQVJOSU5HCi09PT09PT09PT09PT09PT09Ci0KLVRoaXMgdXNl
cyBDR0lIVFRQU2VydmVyIGFuZCBDR0lIVFRQU2VydmVyIGlzIG5vdCBzZWN1cmUuCi1JdCBtYXkg
ZXhlY3V0ZSBhcmJpdHJhcnkgUHl0aG9uIGNvZGUgb3IgZXh0ZXJuYWwgcHJvZ3JhbXMuIEl0IHNo
b3VsZCBub3QgYmUKLXVzZWQgb3V0c2lkZSBhIGZpcmV3YWxsLgotIiIiCi0KLWZyb20gc2l4Lm1v
dmVzIGltcG9ydCBCYXNlSFRUUFNlcnZlcgotZnJvbSBzaXgubW92ZXMgaW1wb3J0IENHSUhUVFBT
ZXJ2ZXIKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBTaW1wbGVIVFRQU2VydmVyCi1mcm9tIHNpeC5t
b3ZlcyBpbXBvcnQgc29ja2V0c2VydmVyCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY29uZmlncGFy
c2VyCi1pbXBvcnQgYmFzZTY0Ci1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgaHR0cF9jbGllbnQKLWlt
cG9ydCBsb2dnaW5nCi1pbXBvcnQgbG9nZ2luZy5oYW5kbGVycwotaW1wb3J0IG9wdHBhcnNlCi1p
bXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0IHNlbGVjdAotaW1wb3J0IHNvY2tldAotaW1wb3J0
IHN5cwotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHRpbWUKLWZyb20gc2l4Lm1vdmVzIGltcG9y
dCB1cmxsaWIKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3BhdGNoCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
aGFuZHNoYWtlCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1lbW9yaXppbmdmaWxlCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQueGhyX2JlbmNobWFya19o
YW5kbGVyIGltcG9ydCBYSFJCZW5jaG1hcmtIYW5kbGVyCi0KLQotX0RFRkFVTFRfTE9HX01BWF9C
WVRFUyA9IDEwMjQgKiAyNTYKLV9ERUZBVUxUX0xPR19CQUNLVVBfQ09VTlQgPSA1Ci0KLV9ERUZB
VUxUX1JFUVVFU1RfUVVFVUVfU0laRSA9IDEyOAotCi0jIDEwMjQgaXMgcHJhY3RpY2FsbHkgbGFy
Z2UgZW5vdWdoIHRvIGNvbnRhaW4gV2ViU29ja2V0IGhhbmRzaGFrZSBsaW5lcy4KLV9NQVhfTUVN
T1JJWkVEX0xJTkVTID0gMTAyNAotCi0jIENvbnN0YW50cyBmb3IgdGhlIC0tdGxzX21vZHVsZSBm
bGFnLgotX1RMU19CWV9TVEFOREFSRF9NT0RVTEUgPSAnc3NsJwotX1RMU19CWV9QWU9QRU5TU0wg
PSAncHlvcGVuc3NsJwotCi0KLWNsYXNzIF9TdGFuZGFsb25lQ29ubmVjdGlvbihvYmplY3QpOgot
ICAgICIiIk1pbWljIG1vZF9weXRob24gbXBfY29ubi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCByZXF1ZXN0X2hhbmRsZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2Uu
Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3RfaGFuZGxlcjogQSBXZWJTb2Nr
ZXRSZXF1ZXN0SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5f
cmVxdWVzdF9oYW5kbGVyID0gcmVxdWVzdF9oYW5kbGVyCi0KLSAgICBkZWYgZ2V0X2xvY2FsX2Fk
ZHIoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyBtcF9jb25uLmxvY2FsX2FkZHIu
IiIiCi0KLSAgICAgICAgcmV0dXJuIChzZWxmLl9yZXF1ZXN0X2hhbmRsZXIuc2VydmVyLnNlcnZl
cl9uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5zZXJ2ZXIuc2Vy
dmVyX3BvcnQpCi0gICAgbG9jYWxfYWRkciA9IHByb3BlcnR5KGdldF9sb2NhbF9hZGRyKQotCi0g
ICAgZGVmIGdldF9yZW1vdGVfYWRkcihzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWlj
IG1wX2Nvbm4ucmVtb3RlX2FkZHIuCi0KLSAgICAgICAgU2V0dGluZyB0aGUgcHJvcGVydHkgaW4g
X19pbml0X18gd29uJ3Qgd29yayBiZWNhdXNlIHRoZSByZXF1ZXN0Ci0gICAgICAgIGhhbmRsZXIg
aXMgbm90IGluaXRpYWxpemVkIHlldCB0aGVyZS4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5f
cmVxdWVzdF9oYW5kbGVyLmNsaWVudF9hZGRyZXNzCi0gICAgcmVtb3RlX2FkZHIgPSBwcm9wZXJ0
eShnZXRfcmVtb3RlX2FkZHIpCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAg
ICIiIk1pbWljIG1wX2Nvbm4ud3JpdGUoKS4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVx
dWVzdF9oYW5kbGVyLndmaWxlLndyaXRlKGRhdGEpCi0KLSAgICBkZWYgcmVhZChzZWxmLCBsZW5n
dGgpOgotICAgICAgICAiIiJNaW1pYyBtcF9jb25uLnJlYWQoKS4iIiIKLQotICAgICAgICByZXR1
cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnJmaWxlLnJlYWQobGVuZ3RoKQotCi0gICAgZGVmIGdl
dF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAgICAgICIiIkdldCBtZW1vcml6ZWQgbGluZXMu
IiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5yZmlsZS5nZXRfbWVt
b3JpemVkX2xpbmVzKCkKLQotCi1jbGFzcyBfU3RhbmRhbG9uZVJlcXVlc3Qob2JqZWN0KToKLSAg
ICAiIiJNaW1pYyBtb2RfcHl0aG9uIHJlcXVlc3QuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcmVxdWVzdF9oYW5kbGVyLCB1c2VfdGxzKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGlu
c3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXI6IEEg
V2ViU29ja2V0UmVxdWVzdEhhbmRsZXIgaW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNl
bGYuX3JlcXVlc3RfaGFuZGxlciA9IHJlcXVlc3RfaGFuZGxlcgotICAgICAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBfU3RhbmRhbG9uZUNvbm5lY3Rpb24ocmVxdWVzdF9oYW5kbGVyKQotICAgICAgICBz
ZWxmLl91c2VfdGxzID0gdXNlX3RscwotICAgICAgICBzZWxmLmhlYWRlcnNfaW4gPSByZXF1ZXN0
X2hhbmRsZXIuaGVhZGVycwotCi0gICAgZGVmIGdldF91cmkoc2VsZik6Ci0gICAgICAgICIiIkdl
dHRlciB0byBtaW1pYyByZXF1ZXN0LnVyaS4KLQotICAgICAgICBUaGlzIG1ldGhvZCByZXR1cm5z
IHRoZSByYXcgZGF0YSBhdCB0aGUgUmVxdWVzdC1VUkkgcGFydCBvZiB0aGUKLSAgICAgICAgUmVx
dWVzdC1MaW5lLCB3aGlsZSB0aGUgdXJpIG1ldGhvZCBvbiB0aGUgcmVxdWVzdCBvYmplY3Qgb2Yg
bW9kX3B5dGhvbgotICAgICAgICByZXR1cm5zIHRoZSBwYXRoIHBvcnRpb24gYWZ0ZXIgcGFyc2lu
ZyB0aGUgcmF3IGRhdGEuIFRoaXMgYmVoYXZpb3IgaXMKLSAgICAgICAga2VwdCBmb3IgY29tcGF0
aWJpbGl0eS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFu
ZGxlci5wYXRoCi0gICAgdXJpID0gcHJvcGVydHkoZ2V0X3VyaSkKLQotICAgIGRlZiBnZXRfdW5w
YXJzZWRfdXJpKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC51bnBh
cnNlZF91cmkuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5wYXRo
Ci0gICAgdW5wYXJzZWRfdXJpID0gcHJvcGVydHkoZ2V0X3VucGFyc2VkX3VyaSkKLQotICAgIGRl
ZiBnZXRfbWV0aG9kKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC5t
ZXRob2QuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5jb21tYW5k
Ci0gICAgbWV0aG9kID0gcHJvcGVydHkoZ2V0X21ldGhvZCkKLQotICAgIGRlZiBnZXRfcHJvdG9j
b2woc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyByZXF1ZXN0LnByb3RvY29sLiIi
IgotCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIucmVxdWVzdF92ZXJzaW9u
Ci0gICAgcHJvdG9jb2wgPSBwcm9wZXJ0eShnZXRfcHJvdG9jb2wpCi0KLSAgICBkZWYgaXNfaHR0
cHMoc2VsZik6Ci0gICAgICAgICIiIk1pbWljIHJlcXVlc3QuaXNfaHR0cHMoKS4iIiIKLQotICAg
ICAgICByZXR1cm4gc2VsZi5fdXNlX3RscwotCi0KLWRlZiBfaW1wb3J0X3NzbCgpOgotICAgIGds
b2JhbCBzc2wKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBzc2wKLSAgICAgICAgcmV0dXJuIFRy
dWUKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWRl
ZiBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgIGdsb2JhbCBPcGVuU1NMCi0gICAgdHJ5OgotICAg
ICAgICBpbXBvcnQgT3BlblNTTC5TU0wKLSAgICAgICAgcmV0dXJuIFRydWUKLSAgICBleGNlcHQg
SW1wb3J0RXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWNsYXNzIF9TdGFuZGFsb25l
U1NMQ29ubmVjdGlvbihvYmplY3QpOgotICAgICIiIkEgd3JhcHBlciBjbGFzcyBmb3IgT3BlblNT
TC5TU0wuQ29ubmVjdGlvbiB0bwotICAgIC0gcHJvdmlkZSBtYWtlZmlsZSBtZXRob2Qgd2hpY2gg
aXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY2xhc3MKLSAgICAtIHR3ZWFrIHNodXRkb3duIG1ldGhv
ZCBzaW5jZSBPcGVuU1NMLlNTTC5Db25uZWN0aW9uLnNodXRkb3duIGRvZXNuJ3QKLSAgICAgIGFj
Y2VwdCB0aGUgImhvdyIgYXJndW1lbnQuCi0gICAgLSBjb252ZXJ0IFN5c0NhbGxFcnJvciBleGNl
cHRpb25zIHRoYXQgaXRzIHJlY3YgbWV0aG9kIG1heSByYWlzZSBpbnRvIGEKLSAgICAgIHJldHVy
biB2YWx1ZSBvZiAnJywgbWVhbmluZyBFT0YuIFdlIGNhbm5vdCBvdmVyd3JpdGUgdGhlIHJlY3Yg
bWV0aG9kIG9uCi0gICAgICBzZWxmLl9jb25uZWN0aW9uIHNpbmNlIGl0J3MgaW1tdXRhYmxlLgot
ICAgICIiIgotCi0gICAgX09WRVJSSURERU5fQVRUUklCVVRFUyA9IFsnX2Nvbm5lY3Rpb24nLCAn
bWFrZWZpbGUnLCAnc2h1dGRvd24nLCAncmVjdiddCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
Y29ubmVjdGlvbik6Ci0gICAgICAgIHNlbGYuX2Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uCi0KLSAg
ICBkZWYgX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgaWYgbmFtZSBpbiBf
U3RhbmRhbG9uZVNTTENvbm5lY3Rpb24uX09WRVJSSURERU5fQVRUUklCVVRFUzoKLSAgICAgICAg
ICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKQotICAgICAgICBy
ZXR1cm4gc2VsZi5fY29ubmVjdGlvbi5fX2dldGF0dHJpYnV0ZV9fKG5hbWUpCi0KLSAgICBkZWYg
X19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICBpZiBuYW1lIGluIF9TdGFu
ZGFsb25lU1NMQ29ubmVjdGlvbi5fT1ZFUlJJRERFTl9BVFRSSUJVVEVTOgotICAgICAgICAgICAg
cmV0dXJuIG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSkKLSAgICAgICAgcmV0
dXJuIHNlbGYuX2Nvbm5lY3Rpb24uX19zZXRhdHRyX18obmFtZSwgdmFsdWUpCi0KLSAgICBkZWYg
bWFrZWZpbGUoc2VsZiwgbW9kZT0ncicsIGJ1ZnNpemU9LTEpOgotICAgICAgICByZXR1cm4gc29j
a2V0Ll9maWxlb2JqZWN0KHNlbGYsIG1vZGUsIGJ1ZnNpemUpCi0KLSAgICBkZWYgc2h1dGRvd24o
c2VsZiwgdW51c2VkX2hvdyk6Ci0gICAgICAgIHNlbGYuX2Nvbm5lY3Rpb24uc2h1dGRvd24oKQot
Ci0gICAgZGVmIHJlY3Yoc2VsZiwgYnVmc2l6ZSwgZmxhZ3M9MCk6Ci0gICAgICAgIGlmIGZsYWdz
ICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdOb24temVybyBmbGFncyBub3Qg
YWxsb3dlZCcpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm5l
Y3Rpb24ucmVjdihidWZzaXplKQotICAgICAgICBleGNlcHQgT3BlblNTTC5TU0wuU3lzQ2FsbEVy
cm9yIGFzIGU6Ci0gICAgICAgICAgICBpZiBlLmFyZ3NbMF0gPT0gLTE6Ci0gICAgICAgICAgICAg
ICAgIyBTdXBwcmVzcyAidW5leHBlY3RlZCBFT0YiIGV4Y2VwdGlvbi4gU2VlIHRoZSBPcGVuU1NM
IGRvY3VtZW50Ci0gICAgICAgICAgICAgICAgIyBmb3IgU1NMX2dldF9lcnJvci4KLSAgICAgICAg
ICAgICAgICByZXR1cm4gJycKLSAgICAgICAgICAgIHJhaXNlCi0KLQotZGVmIF9hbGlhc19oYW5k
bGVycyhkaXNwYXRjaGVyLCB3ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlKToKLSAgICAiIiJTZXQg
YWxpYXNlcyBzcGVjaWZpZWQgaW4gd2Vic29ja19oYW5kbGVyX21hcF9maWxlIGluIGRpc3BhdGNo
ZXIuCi0KLSAgICBBcmdzOgotICAgICAgICBkaXNwYXRjaGVyOiBkaXNwYXRjaC5EaXNwYXRjaGVy
IGluc3RhbmNlCi0gICAgICAgIHdlYnNvY2tfaGFuZGxlcl9tYXBfZmlsZTogYWxpYXMgbWFwIGZp
bGUKLSAgICAiIiIKLQotICAgIGZwID0gb3Blbih3ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlKQot
ICAgIHRyeToKLSAgICAgICAgZm9yIGxpbmUgaW4gZnA6Ci0gICAgICAgICAgICBpZiBsaW5lWzBd
ID09ICcjJyBvciBsaW5lLmlzc3BhY2UoKToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAg
ICAgICAgICAgbSA9IHJlLm1hdGNoKHInKFxTKylccysoXFMrKScsIGxpbmUpCi0gICAgICAgICAg
ICBpZiBub3QgbToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoJ1dyb25nIGZvcm1h
dCBpbiBtYXAgZmlsZTonICsgbGluZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIuYWRkX3Jlc291cmNlX3BhdGhf
YWxpYXMoCi0gICAgICAgICAgICAgICAgICAgIG0uZ3JvdXAoMSksIG0uZ3JvdXAoMikpCi0gICAg
ICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24gYXMgZToKLSAgICAgICAg
ICAgICAgICBsb2dnaW5nLmVycm9yKHN0cihlKSkKLSAgICBmaW5hbGx5OgotICAgICAgICBmcC5j
bG9zZSgpCi0KLQotY2xhc3MgV2ViU29ja2V0U2VydmVyKHNvY2tldHNlcnZlci5UaHJlYWRpbmdN
aXhJbiwgQmFzZUhUVFBTZXJ2ZXIuSFRUUFNlcnZlcik6Ci0gICAgIiIiSFRUUFNlcnZlciBzcGVj
aWFsaXplZCBmb3IgV2ViU29ja2V0LiIiIgotCi0gICAgIyBPdmVycmlkZXMgc29ja2V0c2VydmVy
LlRocmVhZGluZ01peEluLmRhZW1vbl90aHJlYWRzCi0gICAgZGFlbW9uX3RocmVhZHMgPSBUcnVl
Ci0gICAgIyBPdmVycmlkZXMgQmFzZUhUVFBTZXJ2ZXIuSFRUUFNlcnZlci5hbGxvd19yZXVzZV9h
ZGRyZXNzCi0gICAgYWxsb3dfcmV1c2VfYWRkcmVzcyA9IFRydWUKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgc29ja2V0c2VydmVyLlRDUFNl
cnZlci5fX2luaXRfXyB0byBzZXQgU1NMIGVuYWJsZWQKLSAgICAgICAgc29ja2V0IG9iamVjdCB0
byBzZWxmLnNvY2tldCBiZWZvcmUgc2VydmVyX2JpbmQgYW5kIHNlcnZlcl9hY3RpdmF0ZSwKLSAg
ICAgICAgaWYgbmVjZXNzYXJ5LgotICAgICAgICAiIiIKLQotICAgICAgICAjIFNoYXJlIGEgRGlz
cGF0Y2hlciBhbW9uZyByZXF1ZXN0IGhhbmRsZXJzIHRvIHNhdmUgdGltZSBmb3IKLSAgICAgICAg
IyBpbnN0YW50aWF0aW9uLiAgRGlzcGF0Y2hlciBjYW4gYmUgc2hhcmVkIGJlY2F1c2UgaXQgaXMg
dGhyZWFkLXNhZmUuCi0gICAgICAgIG9wdGlvbnMuZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3Bh
dGNoZXIoCi0gICAgICAgICAgICBvcHRpb25zLndlYnNvY2tfaGFuZGxlcnMsCi0gICAgICAgICAg
ICBvcHRpb25zLnNjYW5fZGlyLAotICAgICAgICAgICAgb3B0aW9ucy5hbGxvd19oYW5kbGVyc19v
dXRzaWRlX3Jvb3RfZGlyKQotICAgICAgICBpZiBvcHRpb25zLndlYnNvY2tfaGFuZGxlcnNfbWFw
X2ZpbGU6Ci0gICAgICAgICAgICBfYWxpYXNfaGFuZGxlcnMob3B0aW9ucy5kaXNwYXRjaGVyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMud2Vic29ja19oYW5kbGVyc19tYXBf
ZmlsZSkKLSAgICAgICAgd2FybmluZ3MgPSBvcHRpb25zLmRpc3BhdGNoZXIuc291cmNlX3dhcm5p
bmdzKCkKLSAgICAgICAgaWYgd2FybmluZ3M6Ci0gICAgICAgICAgICBmb3Igd2FybmluZyBpbiB3
YXJuaW5nczoKLSAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoJ1dhcm5pbmcgaW4gc291
cmNlIGxvYWRpbmc6ICVzJyAlIHdhcm5pbmcpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRp
bC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5yZXF1ZXN0X3F1ZXVlX3Np
emUgPSBvcHRpb25zLnJlcXVlc3RfcXVldWVfc2l6ZQotICAgICAgICBzZWxmLl9fd3NfaXNfc2h1
dF9kb3duID0gdGhyZWFkaW5nLkV2ZW50KCkKLSAgICAgICAgc2VsZi5fX3dzX3NlcnZpbmcgPSBG
YWxzZQotCi0gICAgICAgIHNvY2tldHNlcnZlci5CYXNlU2VydmVyLl9faW5pdF9fKAotICAgICAg
ICAgICAgc2VsZiwgKG9wdGlvbnMuc2VydmVyX2hvc3QsIG9wdGlvbnMucG9ydCksIFdlYlNvY2tl
dFJlcXVlc3RIYW5kbGVyKQotCi0gICAgICAgICMgRXhwb3NlIHRoZSBvcHRpb25zIG9iamVjdCB0
byBhbGxvdyBoYW5kbGVyIG9iamVjdHMgYWNjZXNzIGl0LiBXZSBuYW1lCi0gICAgICAgICMgaXQg
d2l0aCB3ZWJzb2NrZXRfIHByZWZpeCB0byBhdm9pZCBjb25mbGljdC4KLSAgICAgICAgc2VsZi53
ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMgPSBvcHRpb25zCi0KLSAgICAgICAgc2VsZi5fY3JlYXRl
X3NvY2tldHMoKQotICAgICAgICBzZWxmLnNlcnZlcl9iaW5kKCkKLSAgICAgICAgc2VsZi5zZXJ2
ZXJfYWN0aXZhdGUoKQotCi0gICAgZGVmIF9jcmVhdGVfc29ja2V0cyhzZWxmKToKLSAgICAgICAg
c2VsZi5zZXJ2ZXJfbmFtZSwgc2VsZi5zZXJ2ZXJfcG9ydCA9IHNlbGYuc2VydmVyX2FkZHJlc3MK
LSAgICAgICAgc2VsZi5fc29ja2V0cyA9IFtdCi0gICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlcl9u
YW1lOgotICAgICAgICAgICAgIyBPbiBwbGF0Zm9ybXMgdGhhdCBkb2Vzbid0IHN1cHBvcnQgSVB2
NiwgdGhlIGZpcnN0IGJpbmQgZmFpbHMuCi0gICAgICAgICAgICAjIE9uIHBsYXRmb3JtcyB0aGF0
IHN1cHBvcnRzIElQdjYKLSAgICAgICAgICAgICMgLSBJZiBpdCBiaW5kcyBib3RoIElQdjQgYW5k
IElQdjYgb24gY2FsbCB3aXRoIEFGX0lORVQ2LCB0aGUKLSAgICAgICAgICAgICMgICBmaXJzdCBi
aW5kIHN1Y2NlZWRzIGFuZCB0aGUgc2Vjb25kIGZhaWxzICh3ZSdsbCBzZWUgJ0FkZHJlc3MKLSAg
ICAgICAgICAgICMgICBhbHJlYWR5IGluIHVzZScgZXJyb3IpLgotICAgICAgICAgICAgIyAtIElm
IGl0IGJpbmRzIG9ubHkgSVB2NiBvbiBjYWxsIHdpdGggQUZfSU5FVDYsIGJvdGggY2FsbCBhcmUK
LSAgICAgICAgICAgICMgICBleHBlY3RlZCB0byBzdWNjZWVkIHRvIGxpc3RlbiBib3RoIHByb3Rv
Y29sLgotICAgICAgICAgICAgYWRkcmluZm9fYXJyYXkgPSBbCi0gICAgICAgICAgICAgICAgKHNv
Y2tldC5BRl9JTkVUNiwgc29ja2V0LlNPQ0tfU1RSRUFNLCAnJywgJycsICcnKSwKLSAgICAgICAg
ICAgICAgICAoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSwgJycsICcnLCAnJyld
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBhZGRyaW5mb19hcnJheSA9IHNvY2tldC5nZXRh
ZGRyaW5mbyhzZWxmLnNlcnZlcl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5BRl9VTlNQRUMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuU09DS19TVFJFQU0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQu
SVBQUk9UT19UQ1ApCi0gICAgICAgIGZvciBhZGRyaW5mbyBpbiBhZGRyaW5mb19hcnJheToKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDcmVhdGUgc29ja2V0IG9uOiAlcicsIGFkZHJp
bmZvKQotICAgICAgICAgICAgZmFtaWx5LCBzb2NrdHlwZSwgcHJvdG8sIGNhbm9ubmFtZSwgc29j
a2FkZHIgPSBhZGRyaW5mbwotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNvY2tl
dF8gPSBzb2NrZXQuc29ja2V0KGZhbWlseSwgc29ja3R5cGUpCi0gICAgICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NraXAg
YnkgZmFpbHVyZTogJXInLCBlKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAg
ICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCi0gICAgICAg
ICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy51c2VfdGxzOgotICAgICAgICAgICAgICAgICMgRm9yIHRo
ZSBjYXNlIG9mIF9IQVNfT1BFTl9TU0wsIHdlIGRvIHdyYXBwZXIgc2V0dXAgYWZ0ZXIKLSAgICAg
ICAgICAgICAgICAjIGFjY2VwdC4KLSAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50
bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAgICAgICAgICAg
ICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2F1dGg6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xpZW50X2NlcnRfID0gc3NsLkNFUlRfT1BUSU9OQUwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpZW50X2NlcnRfID0gc3NsLkNFUlRfUkVRVUlSRUQKLSAgICAgICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9jZXJ0XyA9IHNzbC5DRVJUX05PTkUK
LSAgICAgICAgICAgICAgICAgICAgc29ja2V0XyA9IHNzbC53cmFwX3NvY2tldChzb2NrZXRfLAot
ICAgICAgICAgICAgICAgICAgICAgICAga2V5ZmlsZT1zZXJ2ZXJfb3B0aW9ucy5wcml2YXRlX2tl
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRmaWxlPXNlcnZlcl9vcHRpb25zLmNlcnRp
ZmljYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgc3NsX3ZlcnNpb249c3NsLlBST1RPQ09M
X1NTTHYyMywKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhX2NlcnRzPXNlcnZlcl9vcHRpb25z
LnRsc19jbGllbnRfY2EsCi0gICAgICAgICAgICAgICAgICAgICAgICBjZXJ0X3JlcXM9Y2xpZW50
X2NlcnRfLAotICAgICAgICAgICAgICAgICAgICAgICAgZG9faGFuZHNoYWtlX29uX2Nvbm5lY3Q9
RmFsc2UpCi0gICAgICAgICAgICBzZWxmLl9zb2NrZXRzLmFwcGVuZCgoc29ja2V0XywgYWRkcmlu
Zm8pKQotCi0gICAgZGVmIHNlcnZlcl9iaW5kKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBz
b2NrZXRzZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9iaW5kIHRvIGVuYWJsZSBtdWx0aXBsZQotICAg
ICAgICBzb2NrZXRzIGJpbmQuCi0gICAgICAgICIiIgotCi0gICAgICAgIGZhaWxlZF9zb2NrZXRz
ID0gW10KLQotICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBzZWxmLl9zb2NrZXRzOgotICAgICAg
ICAgICAgc29ja2V0XywgYWRkcmluZm8gPSBzb2NrZXRpbmZvCi0gICAgICAgICAgICBzZWxmLl9s
b2dnZXIuaW5mbygnQmluZCBvbjogJXInLCBhZGRyaW5mbykKLSAgICAgICAgICAgIGlmIHNlbGYu
YWxsb3dfcmV1c2VfYWRkcmVzczoKLSAgICAgICAgICAgICAgICBzb2NrZXRfLnNldHNvY2tvcHQo
c29ja2V0LlNPTF9TT0NLRVQsIHNvY2tldC5TT19SRVVTRUFERFIsIDEpCi0gICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgc29ja2V0Xy5iaW5kKHNlbGYuc2VydmVyX2FkZHJlc3MpCi0g
ICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmluZm8oJ1NraXAgYnkgZmFpbHVyZTogJXInLCBlKQotICAgICAgICAgICAgICAgIHNv
Y2tldF8uY2xvc2UoKQotICAgICAgICAgICAgICAgIGZhaWxlZF9zb2NrZXRzLmFwcGVuZChzb2Nr
ZXRpbmZvKQotICAgICAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfYWRkcmVzc1sxXSA9PSAwOgotICAg
ICAgICAgICAgICAgICMgVGhlIG9wZXJhdGluZyBzeXN0ZW0gYXNzaWducyB0aGUgYWN0dWFsIHBv
cnQgbnVtYmVyIGZvciBwb3J0Ci0gICAgICAgICAgICAgICAgIyBudW1iZXIgMC4gVGhpcyBjYXNl
LCB0aGUgc2Vjb25kIGFuZCBsYXRlciBzb2NrZXRzIHNob3VsZCB1c2UKLSAgICAgICAgICAgICAg
ICAjIHRoZSBzYW1lIHBvcnQgbnVtYmVyLiBBbHNvIHNlbGYuc2VydmVyX3BvcnQgaXMgcmV3cml0
dGVuCi0gICAgICAgICAgICAgICAgIyBiZWNhdXNlIGl0IGlzIGV4cG9ydGVkLCBhbmQgd2lsbCBi
ZSB1c2VkIGJ5IGV4dGVybmFsIGNvZGUuCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfYWRk
cmVzcyA9ICgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfbmFtZSwgc29ja2V0Xy5n
ZXRzb2NrbmFtZSgpWzFdKQotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX3BvcnQgPSBzZWxm
LnNlcnZlcl9hZGRyZXNzWzFdCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1Bv
cnQgJXIgaXMgYXNzaWduZWQnLCBzZWxmLnNlcnZlcl9wb3J0KQotCi0gICAgICAgIGZvciBzb2Nr
ZXRpbmZvIGluIGZhaWxlZF9zb2NrZXRzOgotICAgICAgICAgICAgc2VsZi5fc29ja2V0cy5yZW1v
dmUoc29ja2V0aW5mbykKLQotICAgIGRlZiBzZXJ2ZXJfYWN0aXZhdGUoc2VsZik6Ci0gICAgICAg
ICIiIk92ZXJyaWRlIHNvY2tldHNlcnZlci5UQ1BTZXJ2ZXIuc2VydmVyX2FjdGl2YXRlIHRvIGVu
YWJsZSBtdWx0aXBsZQotICAgICAgICBzb2NrZXRzIGxpc3Rlbi4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgZmFpbGVkX3NvY2tldHMgPSBbXQotCi0gICAgICAgIGZvciBzb2NrZXRpbmZvIGluIHNl
bGYuX3NvY2tldHM6Ci0gICAgICAgICAgICBzb2NrZXRfLCBhZGRyaW5mbyA9IHNvY2tldGluZm8K
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdMaXN0ZW4gb246ICVyJywgYWRkcmluZm8p
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc29ja2V0Xy5saXN0ZW4oc2VsZi5y
ZXF1ZXN0X3F1ZXVlX3NpemUpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NraXAgYnkgZmFpbHVyZTogJXInLCBl
KQotICAgICAgICAgICAgICAgIHNvY2tldF8uY2xvc2UoKQotICAgICAgICAgICAgICAgIGZhaWxl
ZF9zb2NrZXRzLmFwcGVuZChzb2NrZXRpbmZvKQotCi0gICAgICAgIGZvciBzb2NrZXRpbmZvIGlu
IGZhaWxlZF9zb2NrZXRzOgotICAgICAgICAgICAgc2VsZi5fc29ja2V0cy5yZW1vdmUoc29ja2V0
aW5mbykKLQotICAgICAgICBpZiBsZW4oc2VsZi5fc29ja2V0cykgPT0gMDoKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5jcml0aWNhbCgKLSAgICAgICAgICAgICAgICAnTm8gc29ja2V0cyBhY3Rp
dmF0ZWQuIFVzZSBpbmZvIGxvZyBsZXZlbCB0byBzZWUgdGhlIHJlYXNvbi4nKQotCi0gICAgZGVm
IHNlcnZlcl9jbG9zZShzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgc29ja2V0c2VydmVyLlRD
UFNlcnZlci5zZXJ2ZXJfY2xvc2UgdG8gZW5hYmxlIG11bHRpcGxlCi0gICAgICAgIHNvY2tldHMg
Y2xvc2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIGZvciBzb2NrZXRpbmZvIGluIHNlbGYuX3Nv
Y2tldHM6Ci0gICAgICAgICAgICBzb2NrZXRfLCBhZGRyaW5mbyA9IHNvY2tldGluZm8KLSAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDbG9zZSBvbjogJXInLCBhZGRyaW5mbykKLSAgICAg
ICAgICAgIHNvY2tldF8uY2xvc2UoKQotCi0gICAgZGVmIGZpbGVubyhzZWxmKToKLSAgICAgICAg
IiIiT3ZlcnJpZGUgc29ja2V0c2VydmVyLlRDUFNlcnZlci5maWxlbm8uIiIiCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmNyaXRpY2FsKCdOb3Qgc3VwcG9ydGVkOiBmaWxlbm8nKQotICAgICAgICBy
ZXR1cm4gc2VsZi5fc29ja2V0c1swXVswXS5maWxlbm8oKQotCi0gICAgZGVmIGhhbmRsZV9lcnJv
cihzZWxmLCByZXF1ZXN0LCBjbGllbnRfYWRkcmVzcyk6Ci0gICAgICAgICIiIk92ZXJyaWRlIHNv
Y2tldHNlcnZlci5oYW5kbGVfZXJyb3IuIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmVycm9y
KAotICAgICAgICAgICAgJ0V4Y2VwdGlvbiBpbiBwcm9jZXNzaW5nIHJlcXVlc3QgZnJvbTogJXJc
biVzJywKLSAgICAgICAgICAgIGNsaWVudF9hZGRyZXNzLAotICAgICAgICAgICAgdXRpbC5nZXRf
c3RhY2tfdHJhY2UoKSkKLSAgICAgICAgIyBOb3RlOiBjbGllbnRfYWRkcmVzcyBpcyBhIHR1cGxl
LgotCi0gICAgZGVmIGdldF9yZXF1ZXN0KHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBUQ1BT
ZXJ2ZXIuZ2V0X3JlcXVlc3QgdG8gd3JhcCBPcGVuU1NMLlNTTC5Db25uZWN0aW9uCi0gICAgICAg
IG9iamVjdCB3aXRoIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbiB0byBwcm92aWRlIG1ha2VmaWxl
IG1ldGhvZC4gV2UKLSAgICAgICAgY2Fubm90IHN1YnN0aXR1dGUgT3BlblNTTC5TU0wuQ29ubmVj
dGlvbi5tYWtlZmlsZSBzaW5jZSBpdCdzIHJlYWRvbmx5Ci0gICAgICAgIGF0dHJpYnV0ZS4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgYWNjZXB0ZWRfc29ja2V0LCBjbGllbnRfYWRkcmVzcyA9IHNl
bGYuc29ja2V0LmFjY2VwdCgpCi0KLSAgICAgICAgc2VydmVyX29wdGlvbnMgPSBzZWxmLndlYnNv
Y2tldF9zZXJ2ZXJfb3B0aW9ucwotICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy51c2VfdGxzOgot
ICAgICAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1NUQU5E
QVJEX01PRFVMRToKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGFj
Y2VwdGVkX3NvY2tldC5kb19oYW5kc2hha2UoKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBzc2wu
U1NMRXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCcl
cicsIGUpCi0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0KLSAgICAgICAgICAgICAgICAjIFBy
aW50IGNpcGhlciBpbiB1c2UuIEhhbmRzaGFrZSBpcyBkb25lIG9uIGFjY2VwdC4KLSAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NpcGhlcjogJXMnLCBhY2NlcHRlZF9zb2NrZXQu
Y2lwaGVyKCkpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgY2Vy
dDogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2Nr
ZXQuZ2V0cGVlcmNlcnQoKSkKLSAgICAgICAgICAgIGVsaWYgc2VydmVyX29wdGlvbnMudGxzX21v
ZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAgICAgICAgICAgICAgICAjIFdlIGNhbm5vdCBw
cmludCB0aGUgY2lwaGVyIGluIHVzZS4gcHlPcGVuU1NMIGRvZXNuJ3QgcHJvdmlkZQotICAgICAg
ICAgICAgICAgICMgYW55IG1ldGhvZCB0byBmZXRjaCB0aGF0LgotCi0gICAgICAgICAgICAgICAg
Y3R4ID0gT3BlblNTTC5TU0wuQ29udGV4dChPcGVuU1NMLlNTTC5TU0x2MjNfTUVUSE9EKQotICAg
ICAgICAgICAgICAgIGN0eC51c2VfcHJpdmF0ZWtleV9maWxlKHNlcnZlcl9vcHRpb25zLnByaXZh
dGVfa2V5KQotICAgICAgICAgICAgICAgIGN0eC51c2VfY2VydGlmaWNhdGVfZmlsZShzZXJ2ZXJf
b3B0aW9ucy5jZXJ0aWZpY2F0ZSkKLQotICAgICAgICAgICAgICAgIGRlZiBkZWZhdWx0X2NhbGxi
YWNrKGNvbm4sIGNlcnQsIGVycm51bSwgZXJyZGVwdGgsIG9rKToKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG9rID09IDEKLQotICAgICAgICAgICAgICAgICMgU2VlIHRoZSBPcGVuU1NMIGRv
Y3VtZW50IGZvciBTU0xfQ1RYX3NldF92ZXJpZnkuCi0gICAgICAgICAgICAgICAgaWYgc2VydmVy
X29wdGlvbnMudGxzX2NsaWVudF9hdXRoOgotICAgICAgICAgICAgICAgICAgICB2ZXJpZnlfbW9k
ZSA9IE9wZW5TU0wuU1NMLlZFUklGWV9QRUVSCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBz
ZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB2ZXJpZnlfbW9kZSB8PSBPcGVuU1NMLlNTTC5WRVJJRllfRkFJTF9JRl9OT19QRUVS
X0NFUlQKLSAgICAgICAgICAgICAgICAgICAgY3R4LnNldF92ZXJpZnkodmVyaWZ5X21vZGUsIGRl
ZmF1bHRfY2FsbGJhY2spCi0gICAgICAgICAgICAgICAgICAgIGN0eC5sb2FkX3ZlcmlmeV9sb2Nh
dGlvbnMoc2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9jYSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgIGN0eC5zZXRfdmVyaWZ5KE9wZW5TU0wuU1NMLlZFUklGWV9OT05F
LCBkZWZhdWx0X2NhbGxiYWNrKQotCi0gICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0ID0g
T3BlblNTTC5TU0wuQ29ubmVjdGlvbihjdHgsIGFjY2VwdGVkX3NvY2tldCkKLSAgICAgICAgICAg
ICAgICBhY2NlcHRlZF9zb2NrZXQuc2V0X2FjY2VwdF9zdGF0ZSgpCi0KLSAgICAgICAgICAgICAg
ICAjIENvbnZlcnQgU1NMIHJlbGF0ZWQgZXJyb3IgaW50byBzb2NrZXQuZXJyb3Igc28gdGhhdAot
ICAgICAgICAgICAgICAgICMgU29ja2V0U2VydmVyIGlnbm9yZXMgdGhlbSBhbmQga2VlcHMgcnVu
bmluZy4KLSAgICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5v
KTogQ29udmVydCBhbGwga2luZHMgb2YgZXJyb3JzLgotICAgICAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0LmRvX2hhbmRzaGFrZSgpCi0gICAgICAg
ICAgICAgICAgZXhjZXB0IE9wZW5TU0wuU1NMLkVycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAg
ICAgICMgU2V0IGVycm5vIHBhcnQgdG8gMSAoU1NMX0VSUk9SX1NTTCkgbGlrZSB0aGUgc3NsIG1v
ZHVsZQotICAgICAgICAgICAgICAgICAgICAjIGRvZXMuCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnJXInLCBlKQotICAgICAgICAgICAgICAgICAgICByYWlzZSBzb2Nr
ZXQuZXJyb3IoMSwgJyVyJyAlIGUpCi0gICAgICAgICAgICAgICAgY2VydCA9IGFjY2VwdGVkX3Nv
Y2tldC5nZXRfcGVlcl9jZXJ0aWZpY2F0ZSgpCi0gICAgICAgICAgICAgICAgaWYgY2VydCBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQg
Y2VydCBzdWJqZWN0OiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjZXJ0LmdldF9zdWJqZWN0KCkuZ2V0X2NvbXBvbmVudHMoKSkKLSAgICAgICAgICAgICAgICBh
Y2NlcHRlZF9zb2NrZXQgPSBfU3RhbmRhbG9uZVNTTENvbm5lY3Rpb24oYWNjZXB0ZWRfc29ja2V0
KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdO
byBUTFMgc3VwcG9ydCBtb2R1bGUgaXMgYXZhaWxhYmxlJykKLQotICAgICAgICByZXR1cm4gYWNj
ZXB0ZWRfc29ja2V0LCBjbGllbnRfYWRkcmVzcwotCi0gICAgZGVmIHNlcnZlX2ZvcmV2ZXIoc2Vs
ZiwgcG9sbF9pbnRlcnZhbD0wLjUpOgotICAgICAgICAiIiJPdmVycmlkZSBzb2NrZXRzZXJ2ZXIu
QmFzZVNlcnZlci5zZXJ2ZV9mb3JldmVyLiIiIgotCi0gICAgICAgIHNlbGYuX193c19zZXJ2aW5n
ID0gVHJ1ZQotICAgICAgICBzZWxmLl9fd3NfaXNfc2h1dF9kb3duLmNsZWFyKCkKLSAgICAgICAg
aGFuZGxlX3JlcXVlc3QgPSBzZWxmLmhhbmRsZV9yZXF1ZXN0Ci0gICAgICAgIGlmIGhhc2F0dHIo
c2VsZiwgJ19oYW5kbGVfcmVxdWVzdF9ub2Jsb2NrJyk6Ci0gICAgICAgICAgICBoYW5kbGVfcmVx
dWVzdCA9IHNlbGYuX2hhbmRsZV9yZXF1ZXN0X25vYmxvY2sKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci53YXJuaW5nKCdGYWxsYmFjayB0byBibG9ja2luZyByZXF1ZXN0
IGhhbmRsZXInKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aGlsZSBzZWxmLl9fd3Nfc2Vy
dmluZzoKLSAgICAgICAgICAgICAgICByLCB3LCBlID0gc2VsZWN0LnNlbGVjdCgKLSAgICAgICAg
ICAgICAgICAgICAgW3NvY2tldF9bMF0gZm9yIHNvY2tldF8gaW4gc2VsZi5fc29ja2V0c10sCi0g
ICAgICAgICAgICAgICAgICAgIFtdLCBbXSwgcG9sbF9pbnRlcnZhbCkKLSAgICAgICAgICAgICAg
ICBmb3Igc29ja2V0XyBpbiByOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnNvY2tldCA9IHNv
Y2tldF8KLSAgICAgICAgICAgICAgICAgICAgaGFuZGxlX3JlcXVlc3QoKQotICAgICAgICAgICAg
ICAgIHNlbGYuc29ja2V0ID0gTm9uZQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2Vs
Zi5fX3dzX2lzX3NodXRfZG93bi5zZXQoKQotCi0gICAgZGVmIHNodXRkb3duKHNlbGYpOgotICAg
ICAgICAiIiJPdmVycmlkZSBzb2NrZXRzZXJ2ZXIuQmFzZVNlcnZlci5zaHV0ZG93bi4iIiIKLQot
ICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9IEZhbHNlCi0gICAgICAgIHNlbGYuX193c19pc19z
aHV0X2Rvd24ud2FpdCgpCi0KLQotY2xhc3MgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIoQ0dJSFRU
UFNlcnZlci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIpOgotICAgICIiIkNHSUhUVFBSZXF1ZXN0SGFu
ZGxlciBzcGVjaWFsaXplZCBmb3IgV2ViU29ja2V0LiIiIgotCi0gICAgIyBVc2UgaHR0cF9jbGll
bnQuSFRUUE1lc3NhZ2UgaW5zdGVhZCBvZiBtaW1ldG9vbHMuTWVzc2FnZS4KLSAgICBNZXNzYWdl
Q2xhc3MgPSBodHRwX2NsaWVudC5IVFRQTWVzc2FnZQotCi0gICAgcHJvdG9jb2xfdmVyc2lvbiA9
ICJIVFRQLzEuMSIKLQotICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUg
c29ja2V0c2VydmVyLlN0cmVhbVJlcXVlc3RIYW5kbGVyLnNldHVwIHRvIHdyYXAgcmZpbGUKLSAg
ICAgICAgd2l0aCBNZW1vcml6aW5nRmlsZS4KLQotICAgICAgICBUaGlzIG1ldGhvZCB3aWxsIGJl
IGNhbGxlZCBieSBCYXNlUmVxdWVzdEhhbmRsZXIncyBjb25zdHJ1Y3RvcgotICAgICAgICBiZWZv
cmUgY2FsbGluZyBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLmhhbmRsZS4KLSAgICAgICAgQmFzZUhU
VFBSZXF1ZXN0SGFuZGxlci5oYW5kbGUgd2lsbCBjYWxsCi0gICAgICAgIEJhc2VIVFRQUmVxdWVz
dEhhbmRsZXIuaGFuZGxlX29uZV9yZXF1ZXN0IGFuZCBpdCB3aWxsIGNhbGwKLSAgICAgICAgV2Vi
U29ja2V0UmVxdWVzdEhhbmRsZXIucGFyc2VfcmVxdWVzdC4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgIyBDYWxsIHN1cGVyY2xhc3MncyBzZXR1cCB0byBwcmVwYXJlIHJmaWxlLCB3ZmlsZSwgZXRj
LiBTZWUgc2V0dXAKLSAgICAgICAgIyBkZWZpbml0aW9uIG9uIHRoZSByb290IGNsYXNzIHNvY2tl
dHNlcnZlci5TdHJlYW1SZXF1ZXN0SGFuZGxlciB0bwotICAgICAgICAjIHVuZGVyc3RhbmQgd2hh
dCB0aGlzIGRvZXMuCi0gICAgICAgIENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVy
LnNldHVwKHNlbGYpCi0KLSAgICAgICAgc2VsZi5yZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1lbW9y
aXppbmdGaWxlKAotICAgICAgICAgICAgc2VsZi5yZmlsZSwKLSAgICAgICAgICAgIG1heF9tZW1v
cml6ZWRfbGluZXM9X01BWF9NRU1PUklaRURfTElORVMpCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcmVxdWVzdCwgY2xpZW50X2FkZHJlc3MsIHNlcnZlcik6Ci0gICAgICAgIHNlbGYuX2xvZ2dl
ciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMg
PSBzZXJ2ZXIud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCi0KLSAgICAgICAgIyBPdmVycmlkZXMg
Q0dJSFRUUFNlcnZlclJlcXVlc3RIYW5kbGVyLmNnaV9kaXJlY3Rvcmllcy4KLSAgICAgICAgc2Vs
Zi5jZ2lfZGlyZWN0b3JpZXMgPSBzZWxmLl9vcHRpb25zLmNnaV9kaXJlY3RvcmllcwotICAgICAg
ICAjIFJlcGxhY2UgQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLmlzX2V4ZWN1dGFibGUgbWV0aG9kLgot
ICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgc2VsZi5pc19leGVjdXRhYmxlID0gc2VsZi5fb3B0aW9ucy5pc19leGVj
dXRhYmxlX21ldGhvZAotCi0gICAgICAgICMgVGhpcyBhY3R1YWxseSBjYWxscyBCYXNlUmVxdWVz
dEhhbmRsZXIuX19pbml0X18uCi0gICAgICAgIENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RI
YW5kbGVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgcmVxdWVzdCwgY2xpZW50X2FkZHJl
c3MsIHNlcnZlcikKLQotICAgIGRlZiBwYXJzZV9yZXF1ZXN0KHNlbGYpOgotICAgICAgICAiIiJP
dmVycmlkZSBCYXNlSFRUUFNlcnZlci5CYXNlSFRUUFJlcXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVl
c3QuCi0KLSAgICAgICAgUmV0dXJuIFRydWUgdG8gY29udGludWUgcHJvY2Vzc2luZyBmb3IgSFRU
UChTKSwgRmFsc2Ugb3RoZXJ3aXNlLgotCi0gICAgICAgIFNlZSBCYXNlSFRUUFJlcXVlc3RIYW5k
bGVyLmhhbmRsZV9vbmVfcmVxdWVzdCBtZXRob2Qgd2hpY2ggY2FsbHMKLSAgICAgICAgdGhpcyBt
ZXRob2QgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHJldHVybiB2YWx1ZSB3aWxsIGJlIGhhbmRsZWQu
Ci0gICAgICAgICIiIgotCi0gICAgICAgICMgV2UgaG9vayBwYXJzZV9yZXF1ZXN0IG1ldGhvZCwg
YnV0IGFsc28gY2FsbCB0aGUgb3JpZ2luYWwKLSAgICAgICAgIyBDR0lIVFRQUmVxdWVzdEhhbmRs
ZXIucGFyc2VfcmVxdWVzdCBzaW5jZSB3aGVuIHdlIHJldHVybiBGYWxzZSwKLSAgICAgICAgIyBD
R0lIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlX29uZV9yZXF1ZXN0IGNvbnRpbnVlcyBwcm9jZXNz
aW5nIGFuZAotICAgICAgICAjIGl0IG5lZWRzIHZhcmlhYmxlcyBzZXQgYnkgQ0dJSFRUUFJlcXVl
c3RIYW5kbGVyLnBhcnNlX3JlcXVlc3QuCi0gICAgICAgICMKLSAgICAgICAgIyBWYXJpYWJsZXMg
c2V0IGJ5IHRoaXMgbWV0aG9kIHdpbGwgYmUgYWxzbyB1c2VkIGJ5IFdlYlNvY2tldCByZXF1ZXN0
Ci0gICAgICAgICMgaGFuZGxpbmcgKHNlbGYucGF0aCwgc2VsZi5jb21tYW5kLCBzZWxmLnJlcXVl
c3RsaW5lLCBldGMuIFNlZSBhbHNvCi0gICAgICAgICMgaG93IF9TdGFuZGFsb25lUmVxdWVzdCdz
IG1lbWJlcnMgYXJlIGltcGxlbWVudGVkIHVzaW5nIHRoZXNlCi0gICAgICAgICMgYXR0cmlidXRl
cykuCi0gICAgICAgIGlmIG5vdCBDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5w
YXJzZV9yZXF1ZXN0KHNlbGYpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAg
aWYgc2VsZi5jb21tYW5kID09ICJDT05ORUNUIjoKLSAgICAgICAgICAgIHNlbGYuc2VuZF9yZXNw
b25zZSgyMDAsICJDb25uZWN0ZWQiKQotICAgICAgICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29u
bmVjdGlvbiIsICJrZWVwLWFsaXZlIikKLSAgICAgICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQot
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2Vf
YmFzaWNfYXV0aDoKLSAgICAgICAgICAgIGF1dGggPSBzZWxmLmhlYWRlcnMuZ2V0aGVhZGVyKCdB
dXRob3JpemF0aW9uJykKLSAgICAgICAgICAgIGlmIGF1dGggIT0gc2VsZi5fb3B0aW9ucy5iYXNp
Y19hdXRoX2NyZWRlbnRpYWw6Ci0gICAgICAgICAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKDQw
MSkKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKCdXV1ctQXV0aGVudGljYXRlJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCYXNpYyByZWFsbT0iUHl3ZWJzb2Nr
ZXQiJykKLSAgICAgICAgICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuaW5mbygnUmVxdWVzdCBiYXNpYyBhdXRoZW50aWNhdGlvbicpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgIyBTcGVjaWFsIHBhdGhzIGZvciBY
TUxIdHRwUmVxdWVzdCBiZW5jaG1hcmsKLSAgICAgICAgeGhyX2JlbmNobWFya19oZWxwZXJfcHJl
Zml4ID0gJy8wNzNiZTAwMWUxMDk1MDY5MmNjYmYzYTJhZDIxYzI0NScKLSAgICAgICAgcGFyc2Vk
X3BhdGggPSB1cmxsaWIucGFyc2UudXJsc3BsaXQoc2VsZi5wYXRoKQotICAgICAgICBpZiBwYXJz
ZWRfcGF0aC5wYXRoID09ICh4aHJfYmVuY2htYXJrX2hlbHBlcl9wcmVmaXggKyAnX3NlbmQnKToK
LSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlciA9IFhIUkJlbmNobWFya0hhbmRsZXIo
Ci0gICAgICAgICAgICAgICAgc2VsZi5oZWFkZXJzLCBzZWxmLnJmaWxlLCBzZWxmLndmaWxlKQot
ICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyLmRvX3NlbmQoKQotICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIHBhcnNlZF9wYXRoLnBhdGggPT0gKHhocl9iZW5jaG1h
cmtfaGVscGVyX3ByZWZpeCArICdfcmVjZWl2ZScpOgotICAgICAgICAgICAgeGhyX2JlbmNobWFy
a19oYW5kbGVyID0gWEhSQmVuY2htYXJrSGFuZGxlcigKLSAgICAgICAgICAgICAgICBzZWxmLmhl
YWRlcnMsIHNlbGYucmZpbGUsIHNlbGYud2ZpbGUpCi0gICAgICAgICAgICB4aHJfYmVuY2htYXJr
X2hhbmRsZXIuZG9fcmVjZWl2ZV9hbmRfcGFyc2UoKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNl
Ci0gICAgICAgIGlmIHBhcnNlZF9wYXRoLnBhdGggPT0gKHhocl9iZW5jaG1hcmtfaGVscGVyX3By
ZWZpeCArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfcmVjZWl2ZV9nZXRub2Nh
Y2hlJyk6Ci0gICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIgPSBYSFJCZW5jaG1hcmtI
YW5kbGVyKAotICAgICAgICAgICAgICAgIHNlbGYuaGVhZGVycywgc2VsZi5yZmlsZSwgc2VsZi53
ZmlsZSkKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlci5kb19yZWNlaXZlKAotICAg
ICAgICAgICAgICAgIGludChwYXJzZWRfcGF0aC5xdWVyeSksIEZhbHNlLCBGYWxzZSkKLSAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBpZiBwYXJzZWRfcGF0aC5wYXRoID09ICh4aHJf
YmVuY2htYXJrX2hlbHBlcl9wcmVmaXggKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnX3JlY2VpdmVfZ2V0Y2FjaGUnKToKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxl
ciA9IFhIUkJlbmNobWFya0hhbmRsZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5oZWFkZXJzLCBz
ZWxmLnJmaWxlLCBzZWxmLndmaWxlKQotICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVy
LmRvX3JlY2VpdmUoCi0gICAgICAgICAgICAgICAgaW50KHBhcnNlZF9wYXRoLnF1ZXJ5KSwgRmFs
c2UsIFRydWUpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICBob3N0LCBwb3J0
LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKHNlbGYucGF0aCkKLSAgICAg
ICAgaWYgcmVzb3VyY2UgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdJ
bnZhbGlkIFVSSTogJXInLCBzZWxmLnBhdGgpCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5m
bygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykKLSAgICAgICAgICAgIHJldHVy
biBUcnVlCi0gICAgICAgIHNlcnZlcl9vcHRpb25zID0gc2VsZi5zZXJ2ZXIud2Vic29ja2V0X3Nl
cnZlcl9vcHRpb25zCi0gICAgICAgIGlmIGhvc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB2
YWxpZGF0aW9uX2hvc3QgPSBzZXJ2ZXJfb3B0aW9ucy52YWxpZGF0aW9uX2hvc3QKLSAgICAgICAg
ICAgIGlmIHZhbGlkYXRpb25faG9zdCBpcyBub3QgTm9uZSBhbmQgaG9zdCAhPSB2YWxpZGF0aW9u
X2hvc3Q6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ludmFsaWQgaG9zdDog
JXIgKGV4cGVjdGVkOiAlciknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhv
c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbl9ob3N0KQot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdGYWxsYmFjayB0byBDR0lIVFRQUmVx
dWVzdEhhbmRsZXInKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGlmIHBv
cnQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB2YWxpZGF0aW9uX3BvcnQgPSBzZXJ2ZXJfb3B0
aW9ucy52YWxpZGF0aW9uX3BvcnQKLSAgICAgICAgICAgIGlmIHZhbGlkYXRpb25fcG9ydCBpcyBu
b3QgTm9uZSBhbmQgcG9ydCAhPSB2YWxpZGF0aW9uX3BvcnQ6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmluZm8oJ0ludmFsaWQgcG9ydDogJXIgKGV4cGVjdGVkOiAlciknLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdmFsaWRhdGlvbl9wb3J0KQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5pbmZvKCdGYWxsYmFjayB0byBDR0lIVFRQUmVxdWVzdEhhbmRsZXInKQotICAgICAgICAgICAg
ICAgIHJldHVybiBUcnVlCi0gICAgICAgIHNlbGYucGF0aCA9IHJlc291cmNlCi0KLSAgICAgICAg
cmVxdWVzdCA9IF9TdGFuZGFsb25lUmVxdWVzdChzZWxmLCBzZWxmLl9vcHRpb25zLnVzZV90bHMp
Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBGYWxsYmFjayB0byBkZWZhdWx0IGh0dHAg
aGFuZGxlciBmb3IgcmVxdWVzdCBwYXRocyBmb3Igd2hpY2gKLSAgICAgICAgICAgICMgd2UgZG9u
J3QgaGF2ZSByZXF1ZXN0IGhhbmRsZXJzLgotICAgICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlv
bnMuZGlzcGF0Y2hlci5nZXRfaGFuZGxlcl9zdWl0ZShzZWxmLnBhdGgpOgotICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdObyBoYW5kbGVyIGZvciByZXNvdXJjZTogJXInLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGF0aCkKLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykK
LSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlz
cGF0Y2hFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdEaXNw
YXRjaCBmYWlsZWQgZm9yIGVycm9yOiAlcycsIGUpCi0gICAgICAgICAgICBzZWxmLnNlbmRfZXJy
b3IoZS5zdGF0dXMpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICAjIElmIGFu
eSBFeGNlcHRpb25zIHdpdGhvdXQgZXhjZXB0IGNsYXVzZSBzZXR1cCAoaW5jbHVkaW5nCi0gICAg
ICAgICMgRGlzcGF0Y2hFeGNlcHRpb24pIGlzIHJhaXNlZCBiZWxvdyB0aGlzIHBvaW50LCBpdCB3
aWxsIGJlIGNhdWdodAotICAgICAgICAjIGFuZCBsb2dnZWQgYnkgV2ViU29ja2V0U2VydmVyLgot
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBoYW5kc2hh
a2UuZG9faGFuZHNoYWtlKAotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LAotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRpc3BhdGNoZXIsCi0gICAgICAgICAgICAgICAgICAg
IGFsbG93RHJhZnQ3NT1zZWxmLl9vcHRpb25zLmFsbG93X2RyYWZ0NzUsCi0gICAgICAgICAgICAg
ICAgICAgIHN0cmljdD1zZWxmLl9vcHRpb25zLnN0cmljdCkKLSAgICAgICAgICAgIGV4Y2VwdCBo
YW5kc2hha2UuVmVyc2lvbkV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5pbmZvKCdIYW5kc2hha2UgZmFpbGVkIGZvciB2ZXJzaW9uIGVycm9yOiAlcycsIGUpCi0g
ICAgICAgICAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKGNvbW1vbi5IVFRQX1NUQVRVU19CQURf
UkVRVUVTVCkKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKGNvbW1vbi5TRUNfV0VC
U09DS0VUX1ZFUlNJT05fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZS5zdXBwb3J0ZWRfdmVyc2lvbnMpCi0gICAgICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICBleGNlcHQgaGFuZHNo
YWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgICMgSGFuZHNoYWtl
IGZvciB3cyhzKSBmYWlsZWQuCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0hh
bmRzaGFrZSBmYWlsZWQgZm9yIGVycm9yOiAlcycsIGUpCi0gICAgICAgICAgICAgICAgc2VsZi5z
ZW5kX2Vycm9yKGUuc3RhdHVzKQotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAg
ICAgICAgICByZXF1ZXN0Ll9kaXNwYXRjaGVyID0gc2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyCi0g
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0
KQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24gYXMgZToK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdBYm9ydGVkOiAlcycsIGUpCi0gICAgICAg
IHJldHVybiBGYWxzZQotCi0gICAgZGVmIGxvZ19yZXF1ZXN0KHNlbGYsIGNvZGU9Jy0nLCBzaXpl
PSctJyk6Ci0gICAgICAgICIiIk92ZXJyaWRlIEJhc2VIVFRQU2VydmVyLmxvZ19yZXF1ZXN0LiIi
IgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCciJXMiICVzICVzJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0bGluZSwgc3RyKGNvZGUpLCBzdHIoc2l6ZSkpCi0K
LSAgICBkZWYgbG9nX2Vycm9yKHNlbGYsICphcmdzKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgQmFz
ZUhUVFBTZXJ2ZXIubG9nX2Vycm9yLiIiIgotCi0gICAgICAgICMgRGVzcGl0ZSB0aGUgbmFtZSwg
dGhpcyBtZXRob2QgaXMgZm9yIHdhcm5pbmdzIHRoYW4gZm9yIGVycm9ycy4KLSAgICAgICAgIyBG
b3IgZXhhbXBsZSwgSFRUUCBzdGF0dXMgY29kZSBpcyBsb2dnZWQgYnkgdGhpcyBtZXRob2QuCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci53YXJuaW5nKCclcyAtICVzJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5hZGRyZXNzX3N0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcmdzWzBdICUgYXJnc1sxOl0pCi0KLSAgICBkZWYgaXNfY2dpKHNlbGYpOgotICAg
ICAgICAiIiJUZXN0IHdoZXRoZXIgc2VsZi5wYXRoIGNvcnJlc3BvbmRzIHRvIGEgQ0dJIHNjcmlw
dC4KLQotICAgICAgICBBZGQgZXh0cmEgY2hlY2sgdGhhdCBzZWxmLnBhdGggZG9lc24ndCBjb250
YWlucyAuLgotICAgICAgICBBbHNvIGNoZWNrIGlmIHRoZSBmaWxlIGlzIGEgZXhlY3V0YWJsZSBm
aWxlIG9yIG5vdC4KLSAgICAgICAgSWYgdGhlIGZpbGUgaXMgbm90IGV4ZWN1dGFibGUsIGl0IGlz
IGhhbmRsZWQgYXMgc3RhdGljIGZpbGUgb3IgZGlyCi0gICAgICAgIHJhdGhlciB0aGFuIGEgQ0dJ
IHNjcmlwdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgQ0dJSFRUUFNlcnZlci5DR0lIVFRQ
UmVxdWVzdEhhbmRsZXIuaXNfY2dpKHNlbGYpOgotICAgICAgICAgICAgaWYgJy4uJyBpbiBzZWxm
LnBhdGg6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICAjIHN0cmlw
IHF1ZXJ5IHBhcmFtZXRlciBmcm9tIHJlcXVlc3QgcGF0aAotICAgICAgICAgICAgcmVzb3VyY2Vf
bmFtZSA9IHNlbGYucGF0aC5zcGxpdCgnPycsIDIpWzBdCi0gICAgICAgICAgICAjIGNvbnZlcnQg
cmVzb3VyY2VfbmFtZSBpbnRvIHJlYWwgcGF0aCBuYW1lIGluIGZpbGVzeXN0ZW0uCi0gICAgICAg
ICAgICBzY3JpcHRmaWxlID0gc2VsZi50cmFuc2xhdGVfcGF0aChyZXNvdXJjZV9uYW1lKQotICAg
ICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKHNjcmlwdGZpbGUpOgotICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgaWYgbm90IHNlbGYuaXNfZXhlY3V0YWJsZShz
Y3JpcHRmaWxlKToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIHJl
dHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWRlZiBfZ2V0X2xvZ2dlcl9mcm9t
X2NsYXNzKGMpOgotICAgIHJldHVybiBsb2dnaW5nLmdldExvZ2dlcignJXMuJXMnICUgKGMuX19t
b2R1bGVfXywgYy5fX25hbWVfXykpCi0KLQotZGVmIF9jb25maWd1cmVfbG9nZ2luZyhvcHRpb25z
KToKLSAgICBsb2dnaW5nLmFkZExldmVsTmFtZShjb21tb24uTE9HTEVWRUxfRklORSwgJ0ZJTkUn
KQotCi0gICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQotICAgIGxvZ2dlci5zZXRMZXZl
bChsb2dnaW5nLmdldExldmVsTmFtZShvcHRpb25zLmxvZ19sZXZlbC51cHBlcigpKSkKLSAgICBp
ZiBvcHRpb25zLmxvZ19maWxlOgotICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5oYW5kbGVycy5S
b3RhdGluZ0ZpbGVIYW5kbGVyKAotICAgICAgICAgICAgICAgIG9wdGlvbnMubG9nX2ZpbGUsICdh
Jywgb3B0aW9ucy5sb2dfbWF4LCBvcHRpb25zLmxvZ19jb3VudCkKLSAgICBlbHNlOgotICAgICAg
ICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKCkKLSAgICBmb3JtYXR0ZXIgPSBsb2dn
aW5nLkZvcm1hdHRlcigKLSAgICAgICAgICAgICdbJShhc2N0aW1lKXNdIFslKGxldmVsbmFtZSlz
XSAlKG5hbWUpczogJShtZXNzYWdlKXMnKQotICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1h
dHRlcikKLSAgICBsb2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQotCi0gICAgZGVmbGF0ZV9sb2df
bGV2ZWxfbmFtZSA9IGxvZ2dpbmcuZ2V0TGV2ZWxOYW1lKAotICAgICAgICBvcHRpb25zLmRlZmxh
dGVfbG9nX2xldmVsLnVwcGVyKCkpCi0gICAgX2dldF9sb2dnZXJfZnJvbV9jbGFzcyh1dGlsLl9E
ZWZsYXRlcikuc2V0TGV2ZWwoCi0gICAgICAgIGRlZmxhdGVfbG9nX2xldmVsX25hbWUpCi0gICAg
X2dldF9sb2dnZXJfZnJvbV9jbGFzcyh1dGlsLl9JbmZsYXRlcikuc2V0TGV2ZWwoCi0gICAgICAg
IGRlZmxhdGVfbG9nX2xldmVsX25hbWUpCi0KLQotZGVmIF9idWlsZF9vcHRpb25fcGFyc2VyKCk6
Ci0gICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKLQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctLWNvbmZpZycsIGRlc3Q9J2NvbmZpZ19maWxlJywgdHlwZT0nc3RyaW5nJywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAg
aGVscD0oJ1BhdGggdG8gY29uZmlndXJhdGlvbiBmaWxlLiBTZWUgdGhlIGZpbGUgY29tbWVudCAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F0IHRoZSB0b3Agb2YgdGhpcyBmaWxlIGZv
ciB0aGUgY29uZmlndXJhdGlvbiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUg
Zm9ybWF0JykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1IJywgJy0tc2VydmVyLWhvc3QnLCAn
LS1zZXJ2ZXJfaG9zdCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc2VydmVyX2hvc3Qn
LAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0nc2VydmVyIGhvc3RuYW1lIHRvIGxpc3RlbiB0bycpCi0gICAgcGFyc2VyLmFkZF9v
cHRpb24oJy1WJywgJy0tdmFsaWRhdGlvbi1ob3N0JywgJy0tdmFsaWRhdGlvbl9ob3N0JywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZXN0PSd2YWxpZGF0aW9uX2hvc3QnLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdzZXJ2
ZXIgaG9zdG5hbWUgdG8gdmFsaWRhdGUgaW4gYWJzb2x1dGUgcGF0aC4nKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctcCcsICctLXBvcnQnLCBkZXN0PSdwb3J0JywgdHlwZT0naW50JywKLSAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PWNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCwK
LSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdwb3J0IHRvIGxpc3RlbiB0bycpCi0gICAgcGFy
c2VyLmFkZF9vcHRpb24oJy1QJywgJy0tdmFsaWRhdGlvbi1wb3J0JywgJy0tdmFsaWRhdGlvbl9w
b3J0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd2YWxpZGF0aW9uX3BvcnQnLCB0eXBl
PSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSdzZXJ2ZXIgcG9ydCB0byB2YWxpZGF0ZSBpbiBhYnNvbHV0ZSBwYXRo
LicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy13JywgJy0td2Vic29jay1oYW5kbGVycycsICct
LXdlYnNvY2tfaGFuZGxlcnMnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3dlYnNvY2tf
aGFuZGxlcnMnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Jy4nLAotICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9KCdUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgV2ViU29ja2V0IGhhbmRs
ZXIgZmlsZXMuICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSWYgdGhlIHBhdGggaXMg
cmVsYXRpdmUsIC0tZG9jdW1lbnQtcm9vdCBpcyB1c2VkICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnYXMgdGhlIGJhc2UuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1tJywgJy0t
d2Vic29jay1oYW5kbGVycy1tYXAtZmlsZScsCi0gICAgICAgICAgICAgICAgICAgICAgJy0td2Vi
c29ja19oYW5kbGVyc19tYXBfZmlsZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nd2Vi
c29ja19oYW5kbGVyc19tYXBfZmlsZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1O
b25lLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdXZWJTb2NrZXQgaGFuZGxlcnMgbWFw
IGZpbGUuICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRWFjaCBsaW5lIGNvbnNpc3Rz
IG9mIGFsaWFzX3Jlc291cmNlX3BhdGggYW5kICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCwgc2VwYXJhdGVkIGJ5IHNwYWNlcy4nKSkKLSAgICBw
YXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zY2FuLWRpcicsICctLXNjYW5fZGlyJywgZGVzdD0n
c2Nhbl9kaXInLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSgnTXVzdCBiZSBhIGRpcmVjdG9yeSB1bmRlciAtLXdlYnNvY2st
aGFuZGxlcnMuICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnT25seSBoYW5kbGVycyB1
bmRlciB0aGlzIGRpcmVjdG9yeSBhcmUgc2Nhbm5lZCAnCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2FuZCByZWdpc3RlcmVkIHRvIHRoZSBzZXJ2ZXIuICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnVXNlZnVsIGZvciBzYXZpbmcgc2NhbiB0aW1lIHdoZW4gdGhlIGhhbmRsZXIg
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyb290IGRpcmVjdG9yeSBjb250YWlucyBs
b3RzIG9mIGZpbGVzIHRoYXQgYXJlICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm90
IGhhbmRsZXIgZmlsZSBvciBhcmUgaGFuZGxlciBmaWxlcyBidXQgeW91ICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnZG9uXCd0IHdhbnQgdGhlbSB0byBiZSByZWdpc3RlcmVkLiAnKSkK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1hbGxvdy1oYW5kbGVycy1vdXRzaWRlLXJvb3QtZGly
JywKLSAgICAgICAgICAgICAgICAgICAgICAnLS1hbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3Rf
ZGlyJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdhbGxvd19oYW5kbGVyc19vdXRzaWRl
X3Jvb3RfZGlyJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAot
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0oJ1NjYW5zIFdlYlNvY2tldCBoYW5kbGVycyBldmVuIGlmIHRoZWlyIGNhbm9uaWNh
bCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhdGggaXMgbm90IHVuZGVyIC0td2Vi
c29jay1oYW5kbGVycy4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWQnLCAnLS1kb2N1bWVu
dC1yb290JywgJy0tZG9jdW1lbnRfcm9vdCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0n
ZG9jdW1lbnRfcm9vdCcsIGRlZmF1bHQ9Jy4nLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
J0RvY3VtZW50IHJvb3QgZGlyZWN0b3J5LicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy14Jywg
Jy0tY2dpLXBhdGhzJywgJy0tY2dpX3BhdGhzJywgZGVzdD0nY2dpX3BhdGhzJywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0o
J0NHSSBwYXRocyByZWxhdGl2ZSB0byBkb2N1bWVudF9yb290LicKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnQ29tbWEtc2VwYXJhdGVkLiAoZS5nIC14IC9jZ2ksL2h0YmluKSAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ0ZpbGVzIHVuZGVyIGRvY3VtZW50X3Jvb3QvY2dpX3Bh
dGggYXJlIGhhbmRsZWQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcyBDR0kgcHJv
Z3JhbXMuIE11c3QgYmUgZXhlY3V0YWJsZS4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXQn
LCAnLS10bHMnLCBkZXN0PSd1c2VfdGxzJywgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSd1c2UgVExTICh3c3M6Ly8pJykKLSAg
ICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtbW9kdWxlJywgJy0tdGxzX21vZHVsZScsIGRlc3Q9
J3Rsc19tb2R1bGUnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2Nob2ljZScsCi0gICAg
ICAgICAgICAgICAgICAgICAgY2hvaWNlcyA9IFtfVExTX0JZX1NUQU5EQVJEX01PRFVMRSwgX1RM
U19CWV9QWU9QRU5TU0xdLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1VzZSBzc2wgbW9k
dWxlIGlmICIlcyIgaXMgc3BlY2lmaWVkLiAnCi0gICAgICAgICAgICAgICAgICAgICAgJ1VzZSBw
eU9wZW5TU0wgbW9kdWxlIGlmICIlcyIgaXMgc3BlY2lmaWVkJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgKF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BFTlNTTCkpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1rJywgJy0tcHJpdmF0ZS1rZXknLCAnLS1wcml2YXRlX2tleScs
Ci0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ncHJpdmF0ZV9rZXknLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RMUyBwcml2YXRlIGtleSBmaWxlLicpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1jJywgJy0tY2VydGlmaWNhdGUnLCBkZXN0PSdjZXJ0aWZpY2F0
ZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nVExTIGNlcnRpZmlj
YXRlIGZpbGUuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtY2xpZW50LWF1dGgnLCBk
ZXN0PSd0bHNfY2xpZW50X2F1dGgnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3Rv
cmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nUmVx
dWVzdHMgVExTIGNsaWVudCBhdXRoIG9uIGV2ZXJ5IGNvbm5lY3Rpb24uJykKLSAgICBwYXJzZXIu
YWRkX29wdGlvbignLS10bHMtY2xpZW50LWNlcnQtb3B0aW9uYWwnLAotICAgICAgICAgICAgICAg
ICAgICAgIGRlc3Q9J3Rsc19jbGllbnRfY2VydF9vcHRpb25hbCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSgnTWFrZXMgY2xpZW50IGNlcnRpZmljYXRlIG9wdGlvbmFsIGV2ZW4gdGhv
dWdoICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVExTIGNsaWVudCBhdXRoIGlzIGVu
YWJsZWQuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGxzLWNsaWVudC1jYScsIGRlc3Q9
J3Rsc19jbGllbnRfY2EnLCBkZWZhdWx0PScnLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
KCdTcGVjaWZpZXMgYSBwZW0gZmlsZSB3aGljaCBjb250YWlucyBhIHNldCBvZiAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRlZCBDQSBjZXJ0aWZpY2F0ZXMgd2hpY2gg
YXJlIHVzZWQgdG8gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWxpZGF0ZSBjZXJ0
aWZpY2F0ZXMgcGFzc2VkIGZyb20gY2xpZW50cycpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
LWJhc2ljLWF1dGgnLCBkZXN0PSd1c2VfYmFzaWNfYXV0aCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdSZXF1aXJlcyBCYXNpYyBhdXRoZW50aWNhdGlvbi4nKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctLWJhc2ljLWF1dGgtY3JlZGVudGlhbCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgZGVzdD0nYmFzaWNfYXV0aF9jcmVkZW50aWFsJywgZGVmYXVsdD0ndGVzdDp0ZXN0JywKLSAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdTcGVjaWZpZXMgdGhlIGNyZWRlbnRpYWwgb2YgYmFz
aWMgYXV0aGVudGljYXRpb24gJwotICAgICAgICAgICAgICAgICAgICAgICdieSB1c2VybmFtZTpw
YXNzd29yZCBwYWlyIChlLmcuIHRlc3Q6dGVzdCkuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbign
LWwnLCAnLS1sb2ctZmlsZScsICctLWxvZ19maWxlJywgZGVzdD0nbG9nX2ZpbGUnLAotICAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J0xvZyBmaWxlLicpCi0gICAgIyBDdXN0
b20gbG9nIGxldmVsOgotICAgICMgLSBGSU5FOiBQcmludHMgc3RhdHVzIG9mIGVhY2ggZnJhbWUg
cHJvY2Vzc2luZyBzdGVwCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWxldmVsJywgJy0t
bG9nX2xldmVsJywgdHlwZT0nY2hvaWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSds
b2dfbGV2ZWwnLCBkZWZhdWx0PSd3YXJuJywKLSAgICAgICAgICAgICAgICAgICAgICBjaG9pY2Vz
PVsnZmluZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlYnVnJywgJ2luZm8n
LCAnd2FybmluZycsICd3YXJuJywgJ2Vycm9yJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnY3JpdGljYWwnXSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cgbGV2ZWwu
JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1kZWZsYXRlLWxvZy1sZXZlbCcsICctLWRlZmxh
dGVfbG9nX2xldmVsJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdjaG9pY2UnLAotICAg
ICAgICAgICAgICAgICAgICAgIGRlc3Q9J2RlZmxhdGVfbG9nX2xldmVsJywgZGVmYXVsdD0nd2Fy
bicsCi0gICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2RlYnVnJywgJ2luZm8nLCAnd2Fy
bmluZycsICd3YXJuJywgJ2Vycm9yJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
Y3JpdGljYWwnXSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cgbGV2ZWwgZm9yIF9E
ZWZsYXRlciBhbmQgX0luZmxhdGVyLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGhyZWFk
LW1vbml0b3ItaW50ZXJ2YWwtaW4tc2VjJywKLSAgICAgICAgICAgICAgICAgICAgICAnLS10aHJl
YWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
J3RocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3NlYycsCi0gICAgICAgICAgICAgICAgICAgICAg
dHlwZT0naW50JywgZGVmYXVsdD0tMSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnSWYg
cG9zaXRpdmUgaW50ZWdlciBpcyBzcGVjaWZpZWQsIHJ1biBhIHRocmVhZCAnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ21vbml0b3IgdG8gc2hvdyB0aGUgc3RhdHVzIG9mIHNlcnZlciB0
aHJlYWRzICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGVyaW9kaWNhbGx5IGluIHRo
ZSBzcGVjaWZpZWQgaW50ZXZhbCBpbiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nl
Y29uZC4gSWYgbm9uLXBvc2l0aXZlIGludGVnZXIgaXMgc3BlY2lmaWVkLCAnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2Rpc2FibGUgdGhlIHRocmVhZCBtb25pdG9yLicpKQotICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctLWxvZy1tYXgnLCAnLS1sb2dfbWF4JywgZGVzdD0nbG9nX21heCcs
IHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1fREVGQVVMVF9MT0df
TUFYX0JZVEVTLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBtYXhpbXVtIGJ5dGVz
JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2ctY291bnQnLCAnLS1sb2dfY291bnQnLCBk
ZXN0PSdsb2dfY291bnQnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2ludCcsIGRlZmF1
bHQ9X0RFRkFVTFRfTE9HX0JBQ0tVUF9DT1VOVCwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdMb2cgYmFja3VwIGNvdW50JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1hbGxvdy1kcmFm
dDc1JywgZGVzdD0nYWxsb3dfZHJhZnQ3NScsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9u
PSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdPYnNvbGV0ZSBvcHRpb24uIElnbm9yZWQuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1z
dHJpY3QnLCBkZXN0PSdzdHJpY3QnLCBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J09ic29sZXRlIG9wdGlvbi4gSWdub3JlZC4n
KQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcScsICctLXF1ZXVlJywgZGVzdD0ncmVxdWVzdF9x
dWV1ZV9zaXplJywgdHlwZT0naW50JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9E
RUZBVUxUX1JFUVVFU1RfUVVFVUVfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdy
ZXF1ZXN0IHF1ZXVlIHNpemUnKQotCi0gICAgcmV0dXJuIHBhcnNlcgotCi0KLWNsYXNzIFRocmVh
ZE1vbml0b3IodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgZGFlbW9uID0gVHJ1ZQotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIGludGVydmFsX2luX3NlYyk6Ci0gICAgICAgIHRocmVhZGluZy5UaHJl
YWQuX19pbml0X18oc2VsZiwgbmFtZT0nVGhyZWFkTW9uaXRvcicpCi0KLSAgICAgICAgc2VsZi5f
bG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5faW50
ZXJ2YWxfaW5fc2VjID0gaW50ZXJ2YWxfaW5fc2VjCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAg
ICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgdGhyZWFkX25hbWVfbGlzdCA9IFtdCi0gICAg
ICAgICAgICBmb3IgdGhyZWFkIGluIHRocmVhZGluZy5lbnVtZXJhdGUoKToKLSAgICAgICAgICAg
ICAgICB0aHJlYWRfbmFtZV9saXN0LmFwcGVuZCh0aHJlYWQubmFtZSkKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5pbmZvKAotICAgICAgICAgICAgICAgICIlZCBhY3RpdmUgdGhyZWFkczogJXMi
LAotICAgICAgICAgICAgICAgIHRocmVhZGluZy5hY3RpdmVfY291bnQoKSwKLSAgICAgICAgICAg
ICAgICAnLCAnLmpvaW4odGhyZWFkX25hbWVfbGlzdCkpCi0gICAgICAgICAgICB0aW1lLnNsZWVw
KHNlbGYuX2ludGVydmFsX2luX3NlYykKLQotCi1kZWYgX3BhcnNlX2FyZ3NfYW5kX2NvbmZpZyhh
cmdzKToKLSAgICBwYXJzZXIgPSBfYnVpbGRfb3B0aW9uX3BhcnNlcigpCi0KLSAgICAjIEZpcnN0
LCBwYXJzZSBvcHRpb25zIHdpdGhvdXQgY29uZmlndXJhdGlvbiBmaWxlLgotICAgIHRlbXBvcmFy
eV9vcHRpb25zLCB0ZW1wb3JhcnlfYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3M9YXJncykK
LSAgICBpZiB0ZW1wb3JhcnlfYXJnczoKLSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAg
ICAgICAgICdVbnJlY29nbml6ZWQgcG9zaXRpb25hbCBhcmd1bWVudHM6ICVyJywgdGVtcG9yYXJ5
X2FyZ3MpCi0gICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBpZiB0ZW1wb3Jhcnlfb3B0aW9ucy5j
b25maWdfZmlsZToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29uZmlnX2ZwID0gb3Blbih0
ZW1wb3Jhcnlfb3B0aW9ucy5jb25maWdfZmlsZSwgJ3InKQotICAgICAgICBleGNlcHQgSU9FcnJv
ciBhcyBlOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICAgICAn
RmFpbGVkIHRvIG9wZW4gY29uZmlndXJhdGlvbiBmaWxlICVyOiAlcicsCi0gICAgICAgICAgICAg
ICAgdGVtcG9yYXJ5X29wdGlvbnMuY29uZmlnX2ZpbGUsCi0gICAgICAgICAgICAgICAgZSkKLSAg
ICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAgICAgY29uZmlnX3BhcnNlciA9IGNvbmZpZ3Bh
cnNlci5TYWZlQ29uZmlnUGFyc2VyKCkKLSAgICAgICAgY29uZmlnX3BhcnNlci5yZWFkZnAoY29u
ZmlnX2ZwKQotICAgICAgICBjb25maWdfZnAuY2xvc2UoKQotCi0gICAgICAgIGFyZ3NfZnJvbV9j
b25maWcgPSBbXQotICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gY29uZmlnX3BhcnNlci5pdGVt
cygncHl3ZWJzb2NrZXQnKToKLSAgICAgICAgICAgIGFyZ3NfZnJvbV9jb25maWcuYXBwZW5kKCct
LScgKyBuYW1lKQotICAgICAgICAgICAgYXJnc19mcm9tX2NvbmZpZy5hcHBlbmQodmFsdWUpCi0g
ICAgICAgIGlmIGFyZ3MgaXMgTm9uZToKLSAgICAgICAgICAgIGFyZ3MgPSBhcmdzX2Zyb21fY29u
ZmlnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBhcmdzID0gYXJnc19mcm9tX2NvbmZpZyAr
IGFyZ3MKLSAgICAgICAgcmV0dXJuIHBhcnNlci5wYXJzZV9hcmdzKGFyZ3M9YXJncykKLSAgICBl
bHNlOgotICAgICAgICByZXR1cm4gdGVtcG9yYXJ5X29wdGlvbnMsIHRlbXBvcmFyeV9hcmdzCi0K
LQotZGVmIF9tYWluKGFyZ3M9Tm9uZSk6Ci0gICAgIiIiWW91IGNhbiBjYWxsIHRoaXMgZnVuY3Rp
b24gZnJvbSB5b3VyIG93biBwcm9ncmFtLCBidXQgcGxlYXNlIG5vdGUgdGhhdAotICAgIHRoaXMg
ZnVuY3Rpb24gaGFzIHNvbWUgc2lkZS1lZmZlY3RzIHRoYXQgbWlnaHQgYWZmZWN0IHlvdXIgcHJv
Z3JhbS4gRm9yCi0gICAgZXhhbXBsZSwgdXRpbC53cmFwX3BvcGVuM19mb3Jfd2luIHVzZSBpbiB0
aGlzIG1ldGhvZCByZXBsYWNlcyBpbXBsZW1lbnRhdGlvbgotICAgIG9mIG9zLnBvcGVuMy4KLSAg
ICAiIiIKLQotICAgIG9wdGlvbnMsIGFyZ3MgPSBfcGFyc2VfYXJnc19hbmRfY29uZmlnKGFyZ3M9
YXJncykKLQotICAgIG9zLmNoZGlyKG9wdGlvbnMuZG9jdW1lbnRfcm9vdCkKLQotICAgIF9jb25m
aWd1cmVfbG9nZ2luZyhvcHRpb25zKQotCi0gICAgaWYgb3B0aW9ucy5hbGxvd19kcmFmdDc1Ogot
ICAgICAgICBsb2dnaW5nLndhcm5pbmcoJy0tYWxsb3dfZHJhZnQ3NSBvcHRpb24gaXMgb2Jzb2xl
dGUuJykKLQotICAgIGlmIG9wdGlvbnMuc3RyaWN0OgotICAgICAgICBsb2dnaW5nLndhcm5pbmco
Jy0tc3RyaWN0IG9wdGlvbiBpcyBvYnNvbGV0ZS4nKQotCi0gICAgIyBUT0RPKHR5b3NoaW5vKTog
Q2xlYW4gdXAgaW5pdGlhbGl6YXRpb24gb2YgQ0dJIHJlbGF0ZWQgdmFsdWVzLiBNb3ZlIHNvbWUK
LSAgICAjIG9mIGNvZGUgaGVyZSB0byBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlciBjbGFzcyBpZiBp
dCdzIGJldHRlci4KLSAgICBvcHRpb25zLmNnaV9kaXJlY3RvcmllcyA9IFtdCi0gICAgb3B0aW9u
cy5pc19leGVjdXRhYmxlX21ldGhvZCA9IE5vbmUKLSAgICBpZiBvcHRpb25zLmNnaV9wYXRoczoK
LSAgICAgICAgb3B0aW9ucy5jZ2lfZGlyZWN0b3JpZXMgPSBvcHRpb25zLmNnaV9wYXRocy5zcGxp
dCgnLCcpCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4zMicpOgot
ICAgICAgICAgICAgY3lnd2luX3BhdGggPSBOb25lCi0gICAgICAgICAgICAjIEZvciBXaW4zMiBQ
eXRob24sIGl0IGlzIGV4cGVjdGVkIHRoYXQgQ1lHV0lOX1BBVEgKLSAgICAgICAgICAgICMgaXMg
c2V0IHRvIGEgZGlyZWN0b3J5IG9mIGN5Z3dpbiBiaW5hcmllcy4KLSAgICAgICAgICAgICMgRm9y
IGV4YW1wbGUsIHdlYnNvY2tldF9zZXJ2ZXIucHkgaW4gQ2hyb21pdW0gc2V0cyBDWUdXSU5fUEFU
SCB0bwotICAgICAgICAgICAgIyBmdWxsIHBhdGggb2YgdGhpcmRfcGFydHkvY3lnd2luL2Jpbi4K
LSAgICAgICAgICAgIGlmICdDWUdXSU5fUEFUSCcgaW4gb3MuZW52aXJvbjoKLSAgICAgICAgICAg
ICAgICBjeWd3aW5fcGF0aCA9IG9zLmVudmlyb25bJ0NZR1dJTl9QQVRIJ10KLSAgICAgICAgICAg
IHV0aWwud3JhcF9wb3BlbjNfZm9yX3dpbihjeWd3aW5fcGF0aCkKLQotICAgICAgICAgICAgZGVm
IF9fY2hlY2tfc2NyaXB0KHNjcmlwdHBhdGgpOgotICAgICAgICAgICAgICAgIHJldHVybiB1dGls
LmdldF9zY3JpcHRfaW50ZXJwKHNjcmlwdHBhdGgsIGN5Z3dpbl9wYXRoKQotCi0gICAgICAgICAg
ICBvcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kID0gX19jaGVja19zY3JpcHQKLQotICAgIGlm
IG9wdGlvbnMudXNlX3RsczoKLSAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIE5vbmU6
Ci0gICAgICAgICAgICBpZiBfaW1wb3J0X3NzbCgpOgotICAgICAgICAgICAgICAgIG9wdGlvbnMu
dGxzX21vZHVsZSA9IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFCi0gICAgICAgICAgICAgICAgbG9n
Z2luZy5kZWJ1ZygnVXNpbmcgc3NsIG1vZHVsZScpCi0gICAgICAgICAgICBlbGlmIF9pbXBvcnRf
cHlvcGVuc3NsKCk6Ci0gICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19C
WV9QWU9QRU5TU0wKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBweU9wZW5T
U0wgbW9kdWxlJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5j
cml0aWNhbCgKLSAgICAgICAgICAgICAgICAgICAgICAgICdUTFMgc3VwcG9ydCByZXF1aXJlcyBz
c2wgb3IgcHlPcGVuU1NMIG1vZHVsZS4nKQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0g
ICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxF
OgotICAgICAgICAgICAgaWYgbm90IF9pbXBvcnRfc3NsKCk6Ci0gICAgICAgICAgICAgICAgbG9n
Z2luZy5jcml0aWNhbCgnc3NsIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKLSAgICAgICAgICAg
ICAgICBzeXMuZXhpdCgxKQotICAgICAgICBlbGlmIG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExT
X0JZX1BZT1BFTlNTTDoKLSAgICAgICAgICAgIGlmIG5vdCBfaW1wb3J0X3B5b3BlbnNzbCgpOgot
ICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ3B5T3BlblNTTCBtb2R1bGUgaXMgbm90
IGF2YWlsYWJsZScpCi0gICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ0ludmFsaWQgLS10bHMtbW9kdWxlIG9wdGlv
bjogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUp
Ci0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIG5vdCBvcHRpb25zLnByaXZh
dGVfa2V5IG9yIG5vdCBvcHRpb25zLmNlcnRpZmljYXRlOgotICAgICAgICAgICAgbG9nZ2luZy5j
cml0aWNhbCgKLSAgICAgICAgICAgICAgICAgICAgJ1RvIHVzZSBUTFMsIHNwZWNpZnkgcHJpdmF0
ZV9rZXkgYW5kIGNlcnRpZmljYXRlLicpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAg
ICAgIGlmIChvcHRpb25zLnRsc19jbGllbnRfY2VydF9vcHRpb25hbCBhbmQKLSAgICAgICAgICAg
IG5vdCBvcHRpb25zLnRsc19jbGllbnRfYXV0aCk6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRp
Y2FsKCdDbGllbnQgYXV0aGVudGljYXRpb24gbXVzdCBiZSBlbmFibGVkIHRvICcKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3NwZWNpZnkgdGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsJykK
LSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgZWxzZToKLSAgICAgICAgaWYgb3B0aW9ucy50
bHNfbW9kdWxlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVXNl
IC0tdGxzLW1vZHVsZSBvcHRpb24gb25seSB0b2dldGhlciB3aXRoICcKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJy0tdXNlLXRscyBvcHRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0
KDEpCi0KLSAgICAgICAgaWYgb3B0aW9ucy50bHNfY2xpZW50X2F1dGg6Ci0gICAgICAgICAgICBs
b2dnaW5nLmNyaXRpY2FsKCdUTFMgbXVzdCBiZSBlbmFibGVkIGZvciBjbGllbnQgYXV0aGVudGlj
YXRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAgICAgaWYgb3B0aW9ucy50
bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdU
TFMgbXVzdCBiZSBlbmFibGVkIGZvciBjbGllbnQgYXV0aGVudGljYXRpb24uJykKLSAgICAgICAg
ICAgIHN5cy5leGl0KDEpCi0KLSAgICBpZiBub3Qgb3B0aW9ucy5zY2FuX2RpcjoKLSAgICAgICAg
b3B0aW9ucy5zY2FuX2RpciA9IG9wdGlvbnMud2Vic29ja19oYW5kbGVycwotCi0gICAgaWYgb3B0
aW9ucy51c2VfYmFzaWNfYXV0aDoKLSAgICAgICAgb3B0aW9ucy5iYXNpY19hdXRoX2NyZWRlbnRp
YWwgPSAnQmFzaWMgJyArIGJhc2U2NC5iNjRlbmNvZGUoCi0gICAgICAgICAgICBvcHRpb25zLmJh
c2ljX2F1dGhfY3JlZGVudGlhbCkKLQotICAgIHRyeToKLSAgICAgICAgaWYgb3B0aW9ucy50aHJl
YWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMgPiAwOgotICAgICAgICAgICAgIyBSdW4gYSB0aHJl
YWQgbW9uaXRvciB0byBzaG93IHRoZSBzdGF0dXMgb2Ygc2VydmVyIHRocmVhZHMgZm9yCi0gICAg
ICAgICAgICAjIGRlYnVnZ2luZy4KLSAgICAgICAgICAgIFRocmVhZE1vbml0b3Iob3B0aW9ucy50
aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMpLnN0YXJ0KCkKLQotICAgICAgICBzZXJ2ZXIg
PSBXZWJTb2NrZXRTZXJ2ZXIob3B0aW9ucykKLSAgICAgICAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIo
KQotICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgn
bW9kX3B5d2Vic29ja2V0OiAlcycgJSBlKQotICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdtb2Rf
cHl3ZWJzb2NrZXQ6ICVzJyAlIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAgICAgIHN5cy5l
eGl0KDEpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBfbWFpbihzeXMuYXJn
dlsxOl0pCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC9zdHJlYW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3ZDMxMzZhYzliNDJmNWRmNTY1MmQ5MWYzYzg4NmY4
NWVjYmYxZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAs
MCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIGV4cG9ydHMgcHVibGljIHN5
bWJvbHMuIiIiCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBC
YWRPcGVyYXRpb25FeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBp
bXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0aW9uCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRp
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faGl4aWU3NSBpbXBvcnQgU3RyZWFtSGl4
aWU3NQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBGcmFtZQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotCi0jIFRoZXNlIG1l
dGhvZHMgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgV2ViU29ja2V0IGNsaWVudCBkZXZlbG9w
ZXJzIHRvIGhhdmUKLSMgdGhlaXIgaW1wbGVtZW50YXRpb25zIHJlY2VpdmUgYnJva2VuIGRhdGEg
aW4gdGVzdHMuCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0
ZV9jbG9zZV9mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBj
cmVhdGVfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNy
ZWF0ZV9sZW5ndGhfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1w
b3J0IGNyZWF0ZV9waW5nX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5Ymkg
aW1wb3J0IGNyZWF0ZV9wb25nX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5
YmkgaW1wb3J0IGNyZWF0ZV9iaW5hcnlfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1faHliaSBpbXBvcnQgY3JlYXRlX3RleHRfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkKLQotCi0jIHZp
OnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2YzgyODRjZDA3NDRjZGUzODRjNTQyYTk2ZGNjMzBhZWY1YWRlODc0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L3V0aWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MjQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAx
MSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotIiIiV2ViU29ja2V0IHV0aWxpdGllcy4iIiIKLQotCi1pbXBvcnQgYXJyYXkKLWltcG9y
dCBlcnJubwotCi0jIEltcG9ydCBoYXNoIGNsYXNzZXMgZnJvbSBhIG1vZHVsZSBhdmFpbGFibGUg
YW5kIHJlY29tbWVuZGVkIGZvciBlYWNoIFB5dGhvbgotIyB2ZXJzaW9uIGFuZCByZS1leHBvcnQg
dGhvc2Ugc3ltYm9sLiBVc2Ugc2hhIGFuZCBtZDUgbW9kdWxlIGluIFB5dGhvbiAyLjQsIGFuZAot
IyBoYXNobGliIG1vZHVsZSBpbiBQeXRob24gMi42LgotdHJ5OgotICAgIGltcG9ydCBoYXNobGli
Ci0gICAgbWQ1X2hhc2ggPSBoYXNobGliLm1kNQotICAgIHNoYTFfaGFzaCA9IGhhc2hsaWIuc2hh
MQotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIGltcG9ydCBtZDUKLSAgICBpbXBvcnQgc2hhCi0g
ICAgbWQ1X2hhc2ggPSBtZDUubWQ1Ci0gICAgc2hhMV9oYXNoID0gc2hhLnNoYQotCi1mcm9tIHNp
eC5tb3ZlcyBpbXBvcnQgU3RyaW5nSU8KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9y
dCByZQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHRyYWNlYmFjawotaW1wb3J0IHpsaWIKLQotdHJ5
OgotICAgIGZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBmYXN0X21hc2tpbmcKLWV4Y2VwdCBJ
bXBvcnRFcnJvcjoKLSAgICBwYXNzCi0KLQotZGVmIGdldF9zdGFja190cmFjZSgpOgotICAgICIi
IkdldCB0aGUgY3VycmVudCBzdGFjayB0cmFjZSBhcyBzdHJpbmcuCi0KLSAgICBUaGlzIGlzIG5l
ZWRlZCB0byBzdXBwb3J0IFB5dGhvbiAyLjMuCi0gICAgVE9ETzogUmVtb3ZlIHRoaXMgd2hlbiB3
ZSBvbmx5IHN1cHBvcnQgUHl0aG9uIDIuNCBhbmQgYWJvdmUuCi0gICAgICAgICAgVXNlIHRyYWNl
YmFjay5mb3JtYXRfZXhjIGluc3RlYWQuCi0gICAgIiIiCi0gICAgb3V0ID0gU3RyaW5nSU8oKQot
ICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1vdXQpCi0gICAgcmV0dXJuIG91dC5nZXR2YWx1
ZSgpCi0KLQotZGVmIHByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24obWVzc2FnZSwgZXhjKToK
LSAgICAiIiJQcmVwZW5kIG1lc3NhZ2UgdG8gdGhlIGV4Y2VwdGlvbi4iIiIKLSAgICBleGMuYXJn
cyA9IChtZXNzYWdlICsgc3RyKGV4YyksKQotICAgIHJldHVybgotCi0KLWRlZiBfX3RyYW5zbGF0
ZV9pbnRlcnAoaW50ZXJwLCBjeWd3aW5fcGF0aCk6Ci0gICAgIiIiVHJhbnNsYXRlIGludGVycCBw
cm9ncmFtIHBhdGggZm9yIFdpbjMyIHB5dGhvbiB0byBydW4gY3lnd2luIHByb2dyYW0KLSAgICAo
ZS5nLiBwZXJsKS4gIE5vdGUgdGhhdCBpdCBkb2Vzbid0IHN1cHBvcnQgcGF0aCB0aGF0IGNvbnRh
aW5zIHNwYWNlLAotICAgIHdoaWNoIGlzIHR5cGljYWxseSB0cnVlIGZvciBVbml4LCB3aGVyZSAj
IS1zY3JpcHQgaXMgd3JpdHRlbi4KLSAgICBGb3IgV2luMzIgcHl0aG9uLCBjeWd3aW5fcGF0aCBp
cyBhIGRpcmVjdG9yeSBvZiBjeWd3aW4gYmluYXJpZXMuCi0KLSAgICBBcmdzOgotICAgICAgaW50
ZXJwOiBpbnRlcnAgY29tbWFuZCBsaW5lCi0gICAgICBjeWd3aW5fcGF0aDogZGlyZWN0b3J5IG5h
bWUgb2YgY3lnd2luIGJpbmFyeSwgb3IgTm9uZQotICAgIFJldHVybnM6Ci0gICAgICB0cmFuc2xh
dGVkIGludGVycCBjb21tYW5kIGxpbmUuCi0gICAgIiIiCi0gICAgaWYgbm90IGN5Z3dpbl9wYXRo
OgotICAgICAgICByZXR1cm4gaW50ZXJwCi0gICAgbSA9IHJlLm1hdGNoKCdeW14gXSovKFteIF0r
KSggLiopPycsIGludGVycCkKLSAgICBpZiBtOgotICAgICAgICBjbWQgPSBvcy5wYXRoLmpvaW4o
Y3lnd2luX3BhdGgsIG0uZ3JvdXAoMSkpCi0gICAgICAgIHJldHVybiBjbWQgKyBtLmdyb3VwKDIp
Ci0gICAgcmV0dXJuIGludGVycAotCi0KLWRlZiBnZXRfc2NyaXB0X2ludGVycChzY3JpcHRfcGF0
aCwgY3lnd2luX3BhdGg9Tm9uZSk6Ci0gICAgciIiIkdldCAjIS1pbnRlcnByZXRlciBjb21tYW5k
IGxpbmUgZnJvbSB0aGUgc2NyaXB0LgotCi0gICAgSXQgYWxzbyBmaXhlcyBjb21tYW5kIHBhdGgu
ICBXaGVuIEN5Z3dpbiBQeXRob24gaXMgdXNlZCwgZS5nLiBpbiBXZWJLaXQsCi0gICAgaXQgY291
bGQgcnVuICIvdXNyL2Jpbi9wZXJsIC13VCBoZWxsby5wbCIuCi0gICAgV2hlbiBXaW4zMiBQeXRo
b24gaXMgdXNlZCwgZS5nLiBpbiBDaHJvbWl1bSwgaXQgY291bGRuJ3QuICBTbywgZml4Ci0gICAg
Ii91c3IvYmluL3BlcmwiIHRvICI8Y3lnd2luX3BhdGg+XHBlcmwuZXhlIi4KLQotICAgIEFyZ3M6
Ci0gICAgICBzY3JpcHRfcGF0aDogcGF0aG5hbWUgb2YgdGhlIHNjcmlwdAotICAgICAgY3lnd2lu
X3BhdGg6IGRpcmVjdG9yeSBuYW1lIG9mIGN5Z3dpbiBiaW5hcnksIG9yIE5vbmUKLSAgICBSZXR1
cm5zOgotICAgICAgIyEtaW50ZXJwcmV0ZXIgY29tbWFuZCBsaW5lLCBvciBOb25lIGlmIGl0IGlz
IG5vdCAjIS1zY3JpcHQuCi0gICAgIiIiCi0gICAgZnAgPSBvcGVuKHNjcmlwdF9wYXRoKQotICAg
IGxpbmUgPSBmcC5yZWFkbGluZSgpCi0gICAgZnAuY2xvc2UoKQotICAgIG0gPSByZS5tYXRjaCgn
XiMhKC4qKScsIGxpbmUpCi0gICAgaWYgbToKLSAgICAgICAgcmV0dXJuIF9fdHJhbnNsYXRlX2lu
dGVycChtLmdyb3VwKDEpLCBjeWd3aW5fcGF0aCkKLSAgICByZXR1cm4gTm9uZQotCi0KLWRlZiB3
cmFwX3BvcGVuM19mb3Jfd2luKGN5Z3dpbl9wYXRoKToKLSAgICAiIiJXcmFwIHBvcGVuMyB0byBz
dXBwb3J0ICMhLXNjcmlwdCBvbiBXaW5kb3dzLgotCi0gICAgQXJnczoKLSAgICAgIGN5Z3dpbl9w
YXRoOiAgcGF0aCBmb3IgY3lnd2luIGJpbmFyeSBpZiBjb21tYW5kIHBhdGggaXMgbmVlZGVkIHRv
IGJlCi0gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWQuICBOb25lIGlmIG5vIHRyYW5zbGF0
aW9uIHJlcXVpcmVkLgotICAgICIiIgotICAgIF9fb3JpZ19wb3BlbjMgPSBvcy5wb3BlbjMKLQot
ICAgIGRlZiBfX3dyYXBfcG9wZW4zKGNtZCwgbW9kZT0ndCcsIGJ1ZnNpemU9LTEpOgotICAgICAg
ICBjbWRsaW5lID0gY21kLnNwbGl0KCcgJykKLSAgICAgICAgaW50ZXJwID0gZ2V0X3NjcmlwdF9p
bnRlcnAoY21kbGluZVswXSwgY3lnd2luX3BhdGgpCi0gICAgICAgIGlmIGludGVycDoKLSAgICAg
ICAgICAgIGNtZCA9IGludGVycCArICcgJyArIGNtZAotICAgICAgICByZXR1cm4gX19vcmlnX3Bv
cGVuMyhjbWQsIG1vZGUsIGJ1ZnNpemUpCi0KLSAgICBvcy5wb3BlbjMgPSBfX3dyYXBfcG9wZW4z
Ci0KLQotZGVmIGhleGlmeShzKToKLSAgICByZXR1cm4gJyAnLmpvaW4obWFwKGxhbWJkYSB4OiAn
JTAyeCcgJSBvcmQoeCksIHMpKQotCi0KLWRlZiBnZXRfY2xhc3NfbG9nZ2VyKG8pOgotICAgICIi
IlJldHVybiB0aGUgbG9nZ2luZyBjbGFzcyBpbmZvcm1hdGlvbi4iIiIKLSAgICByZXR1cm4gbG9n
Z2luZy5nZXRMb2dnZXIoCi0gICAgICAgICclcy4lcycgJSAoby5fX2NsYXNzX18uX19tb2R1bGVf
Xywgby5fX2NsYXNzX18uX19uYW1lX18pKQotCi0KLWNsYXNzIE5vb3BNYXNrZXIob2JqZWN0KToK
LSAgICAiIiJBIE5vT3AgbWFza2luZyBvYmplY3QuCi0KLSAgICBUaGlzIGhhcyB0aGUgc2FtZSBp
bnRlcmZhY2UgYXMgUmVwZWF0ZWRYb3JNYXNrZXIgYnV0IGp1c3QgcmV0dXJucwotICAgIHRoZSBz
dHJpbmcgcGFzc2VkIGluIHdpdGhvdXQgbWFraW5nIGFueSBjaGFuZ2UuCi0gICAgIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgICIiIk5vT3AuIiIiCi0gICAgICAgIHBhc3MK
LQotICAgIGRlZiBtYXNrKHNlbGYsIHMpOgotICAgICAgICAiIiJOb09wLiIiIgotICAgICAgICBy
ZXR1cm4gcwotCi0KLWNsYXNzIFJlcGVhdGVkWG9yTWFza2VyKG9iamVjdCk6Ci0KLSAgICAiIiJB
IG1hc2tpbmcgb2JqZWN0IHRoYXQgYXBwbGllcyBYT1Igb24gdGhlIHN0cmluZy4KLQotICAgIEFw
cGxpZXMgWE9SIG9uIHRoZSBzdHJpbmcgZ2l2ZW4gdG8gbWFzayBtZXRob2Qgd2l0aCB0aGUgbWFz
a2luZyBieXRlcwotICAgIGdpdmVuIHRvIHRoZSBjb25zdHJ1Y3RvciByZXBlYXRlZGx5LiBUaGlz
IG9iamVjdCByZW1lbWJlcnMgdGhlIHBvc2l0aW9uCi0gICAgaW4gdGhlIG1hc2tpbmcgYnl0ZXMg
dGhlIGxhc3QgbWFzayBtZXRob2QgY2FsbCBlbmRlZCBhbmQgcmVzdW1lcyBmcm9tCi0gICAgdGhh
dCBwb2ludCBvbiB0aGUgbmV4dCBtYXNrIG1ldGhvZCBjYWxsLgotICAgICIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIG1hc2tpbmdfa2V5KToKLSAgICAgICAgc2VsZi5fbWFza2luZ19rZXkg
PSBtYXNraW5nX2tleQotICAgICAgICBzZWxmLl9tYXNraW5nX2tleV9pbmRleCA9IDAKLQotICAg
IGRlZiBfbWFza191c2luZ19zd2lnKHNlbGYsIHMpOgotICAgICAgICAiIiJQZXJmb3JtIHRoZSBt
YXNrIHZpYSBTV0lHLiIiIgotICAgICAgICBtYXNrZWRfZGF0YSA9IGZhc3RfbWFza2luZy5tYXNr
KAotICAgICAgICAgICAgICAgIHMsIHNlbGYuX21hc2tpbmdfa2V5LCBzZWxmLl9tYXNraW5nX2tl
eV9pbmRleCkKLSAgICAgICAgc2VsZi5fbWFza2luZ19rZXlfaW5kZXggPSAoCi0gICAgICAgICAg
ICAgICAgKHNlbGYuX21hc2tpbmdfa2V5X2luZGV4ICsgbGVuKHMpKSAlIGxlbihzZWxmLl9tYXNr
aW5nX2tleSkpCi0gICAgICAgIHJldHVybiBtYXNrZWRfZGF0YQotCi0gICAgZGVmIF9tYXNrX3Vz
aW5nX2FycmF5KHNlbGYsIHMpOgotICAgICAgICAiIiJQZXJmb3JtIHRoZSBtYXNrIHZpYSBweXRo
b24uIiIiCi0gICAgICAgIHJlc3VsdCA9IGFycmF5LmFycmF5KCdCJykKLSAgICAgICAgcmVzdWx0
LmZyb21zdHJpbmcocykKLQotICAgICAgICAjIFVzZSB0ZW1wb3JhcnkgbG9jYWwgdmFyaWFibGVz
IHRvIGVsaW1pbmF0ZSB0aGUgY29zdCB0byBhY2Nlc3MKLSAgICAgICAgIyBhdHRyaWJ1dGVzCi0g
ICAgICAgIG1hc2tpbmdfa2V5ID0gbWFwKG9yZCwgc2VsZi5fbWFza2luZ19rZXkpCi0gICAgICAg
IG1hc2tpbmdfa2V5X3NpemUgPSBsZW4obWFza2luZ19rZXkpCi0gICAgICAgIG1hc2tpbmdfa2V5
X2luZGV4ID0gc2VsZi5fbWFza2luZ19rZXlfaW5kZXgKLQotICAgICAgICBmb3IgaSBpbiB4cmFu
Z2UobGVuKHJlc3VsdCkpOgotICAgICAgICAgICAgcmVzdWx0W2ldIF49IG1hc2tpbmdfa2V5W21h
c2tpbmdfa2V5X2luZGV4XQotICAgICAgICAgICAgbWFza2luZ19rZXlfaW5kZXggPSAobWFza2lu
Z19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdfa2V5X3NpemUKLQotICAgICAgICBzZWxmLl9tYXNr
aW5nX2tleV9pbmRleCA9IG1hc2tpbmdfa2V5X2luZGV4Ci0KLSAgICAgICAgcmV0dXJuIHJlc3Vs
dC50b3N0cmluZygpCi0KLSAgICBpZiAnZmFzdF9tYXNraW5nJyBpbiBnbG9iYWxzKCk6Ci0gICAg
ICAgIG1hc2sgPSBfbWFza191c2luZ19zd2lnCi0gICAgZWxzZToKLSAgICAgICAgbWFzayA9IF9t
YXNrX3VzaW5nX2FycmF5Ci0KLQotIyBCeSBtYWtpbmcgd2JpdHMgb3B0aW9uIG5lZ2F0aXZlLCB3
ZSBjYW4gc3VwcHJlc3MgQ01GL0ZMRyAoMiBvY3RldCkgYW5kCi0jIEFETEVSMzIgKDQgb2N0ZXQp
IGZpZWxkcyBvZiB6bGliIHNvIHRoYXQgd2UgY2FuIHVzZSB6bGliIG1vZHVsZSBqdXN0IGFzCi0j
IGRlZmxhdGUgbGlicmFyeS4gRElDVElEIHdvbid0IGJlIGFkZGVkIGFzIGZhciBhcyB3ZSBkb24n
dCBzZXQgZGljdGlvbmFyeS4KLSMgTFo3NyB3aW5kb3cgb2YgMzJLIHdpbGwgYmUgdXNlZCBmb3Ig
Ym90aCBjb21wcmVzc2lvbiBhbmQgZGVjb21wcmVzc2lvbi4KLSMgRm9yIGRlY29tcHJlc3Npb24s
IHdlIGNhbiBqdXN0IHVzZSAzMksgdG8gY292ZXIgYW55IHdpbmRvd3Mgc2l6ZS4gRm9yCi0jIGNv
bXByZXNzaW9uLCB3ZSB1c2UgMzJLIHNvIHJlY2VpdmVycyBtdXN0IHVzZSAzMksuCi0jCi0jIENv
bXByZXNzaW9uIGxldmVsIGlzIFpfREVGQVVMVF9DT01QUkVTU0lPTi4gV2UgZG9uJ3QgaGF2ZSB0
byBtYXRjaCBsZXZlbAotIyB0byBkZWNvZGUuCi0jCi0jIFNlZSB6Y29uZi5oLCBkZWZsYXRlLmNj
LCBpbmZsYXRlLmNjIG9mIHpsaWIgbGlicmFyeSwgYW5kIHpsaWJtb2R1bGUuYyBvZgotIyBQeXRo
b24uIFNlZSBhbHNvIFJGQzE5NTAgKFpMSUIgMy4zKS4KLQotCi1jbGFzcyBfRGVmbGF0ZXIob2Jq
ZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3dfYml0cyk6Ci0gICAgICAgIHNl
bGYuX2xvZ2dlciA9IGdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9jb21w
cmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01Q
UkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXdpbmRvd19iaXRzKQotCi0gICAgZGVmIGNvbXByZXNz
KHNlbGYsIGJ5dGVzKToKLSAgICAgICAgY29tcHJlc3NlZF9ieXRlcyA9IHNlbGYuX2NvbXByZXNz
LmNvbXByZXNzKGJ5dGVzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIGlu
cHV0ICVyJywgYnl0ZXMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgcmVz
dWx0ICVyJywgY29tcHJlc3NlZF9ieXRlcykKLSAgICAgICAgcmV0dXJuIGNvbXByZXNzZWRfYnl0
ZXMKLQotICAgIGRlZiBjb21wcmVzc19hbmRfZmx1c2goc2VsZiwgYnl0ZXMpOgotICAgICAgICBj
b21wcmVzc2VkX2J5dGVzID0gc2VsZi5fY29tcHJlc3MuY29tcHJlc3MoYnl0ZXMpCi0gICAgICAg
IGNvbXByZXNzZWRfYnl0ZXMgKz0gc2VsZi5fY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxV
U0gpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgaW5wdXQgJXInLCBieXRl
cykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyByZXN1bHQgJXInLCBjb21w
cmVzc2VkX2J5dGVzKQotICAgICAgICByZXR1cm4gY29tcHJlc3NlZF9ieXRlcwotCi0gICAgZGVm
IGNvbXByZXNzX2FuZF9maW5pc2goc2VsZiwgYnl0ZXMpOgotICAgICAgICBjb21wcmVzc2VkX2J5
dGVzID0gc2VsZi5fY29tcHJlc3MuY29tcHJlc3MoYnl0ZXMpCi0gICAgICAgIGNvbXByZXNzZWRf
Ynl0ZXMgKz0gc2VsZi5fY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyBpbnB1dCAlcicsIGJ5dGVzKQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIHJlc3VsdCAlcicsIGNvbXByZXNzZWRfYnl0ZXMpCi0g
ICAgICAgIHJldHVybiBjb21wcmVzc2VkX2J5dGVzCi0KLQotY2xhc3MgX0luZmxhdGVyKG9iamVj
dCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93X2JpdHMpOgotICAgICAgICBzZWxm
Ll9sb2dnZXIgPSBnZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNlbGYuX3dpbmRvd19i
aXRzID0gd2luZG93X2JpdHMKLQotICAgICAgICBzZWxmLl91bmNvbnN1bWVkID0gJycKLQotICAg
ICAgICBzZWxmLnJlc2V0KCkKLQotICAgIGRlZiBkZWNvbXByZXNzKHNlbGYsIHNpemUpOgotICAg
ICAgICBpZiBub3QgKHNpemUgPT0gLTEgb3Igc2l6ZSA+IDApOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdzaXplIG11c3QgYmUgLTEgb3IgcG9zaXRpdmUnKQotCi0gICAgICAgIGRhdGEg
PSAnJwotCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBpZiBzaXplID09IC0xOgot
ICAgICAgICAgICAgICAgIGRhdGEgKz0gc2VsZi5fZGVjb21wcmVzcy5kZWNvbXByZXNzKHNlbGYu
X3VuY29uc3VtZWQpCi0gICAgICAgICAgICAgICAgIyBTZWUgUHl0aG9uIGJ1ZyBodHRwOi8vYnVn
cy5weXRob24ub3JnL2lzc3VlMTIwNTAgdG8KLSAgICAgICAgICAgICAgICAjIHVuZGVyc3RhbmQg
d2h5IHRoZSBzYW1lIGNvZGUgY2Fubm90IGJlIHVzZWQgZm9yIHVwZGF0aW5nCi0gICAgICAgICAg
ICAgICAgIyBzZWxmLl91bmNvbnN1bWVkIGZvciBoZXJlIGFuZCBlbHNlIGJsb2NrLgotICAgICAg
ICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSAnJwotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBkYXRhICs9IHNlbGYuX2RlY29tcHJlc3MuZGVjb21wcmVzcygKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCwgc2l6ZSAtIGxlbihkYXRhKSkKLSAgICAgICAg
ICAgICAgICBzZWxmLl91bmNvbnN1bWVkID0gc2VsZi5fZGVjb21wcmVzcy51bmNvbnN1bWVkX3Rh
aWwKLSAgICAgICAgICAgIGlmIHNlbGYuX2RlY29tcHJlc3MudW51c2VkX2RhdGE6Ci0gICAgICAg
ICAgICAgICAgIyBFbmNvdW50ZXJlZCBhIGxhc3QgYmxvY2sgKGkuZS4gYSBibG9jayB3aXRoIEJG
SU5BTCA9IDEpIGFuZAotICAgICAgICAgICAgICAgICMgZm91bmQgYSBuZXcgc3RyZWFtICh1bnVz
ZWRfZGF0YSkuIFdlIGNhbm5vdCB1c2UgdGhlIHNhbWUKLSAgICAgICAgICAgICAgICAjIHpsaWIu
RGVjb21wcmVzcyBvYmplY3QgZm9yIHRoZSBuZXcgc3RyZWFtLiBDcmVhdGUgYSBuZXcKLSAgICAg
ICAgICAgICAgICAjIERlY29tcHJlc3Mgb2JqZWN0IHRvIGRlY29tcHJlc3MgdGhlIG5ldyBvbmUu
Ci0gICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgICMgSXQncyBmaW5lIHRvIGlnbm9y
ZSB1bmNvbnN1bWVkX3RhaWwgaWYgdW51c2VkX2RhdGEgaXMgbm90Ci0gICAgICAgICAgICAgICAg
IyBlbXB0eS4KLSAgICAgICAgICAgICAgICBzZWxmLl91bmNvbnN1bWVkID0gc2VsZi5fZGVjb21w
cmVzcy51bnVzZWRfZGF0YQotICAgICAgICAgICAgICAgIHNlbGYucmVzZXQoKQotICAgICAgICAg
ICAgICAgIGlmIHNpemUgPj0gMCBhbmQgbGVuKGRhdGEpID09IHNpemU6Ci0gICAgICAgICAgICAg
ICAgICAgICMgZGF0YSBpcyBmaWxsZWQuIERvbid0IGNhbGwgZGVjb21wcmVzcyBhZ2Fpbi4KLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgICAgICAjIFJlLWludm9rZSBEZWNvbXByZXNzLmRlY29tcHJlc3MgdG8gdHJ5IHRvIGRl
Y29tcHJlc3MgYWxsCi0gICAgICAgICAgICAgICAgICAgICMgYXZhaWxhYmxlIGJ5dGVzIGJlZm9y
ZSBpbnZva2luZyByZWFkIHdoaWNoIGJsb2NrcyB1bnRpbAotICAgICAgICAgICAgICAgICAgICAj
IGFueSBuZXcgYnl0ZSBpcyBhdmFpbGFibGUuCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgSGVyZSwgc2luY2UgdW51c2Vk
X2RhdGEgaXMgZW1wdHksIGV2ZW4gaWYgdW5jb25zdW1lZF90YWlsIGlzCi0gICAgICAgICAgICAg
ICAgIyBub3QgZW1wdHksIGJ5dGVzIG9mIHJlcXVlc3RlZCBsZW5ndGggYXJlIGFscmVhZHkgaW4g
ZGF0YS4gV2UKLSAgICAgICAgICAgICAgICAjIGRvbid0IGhhdmUgdG8gImNvbnRpbnVlIiBoZXJl
LgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgZGF0YToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnRGVjb21wcmVzc2VkICVyJywgZGF0YSkKLSAgICAgICAgcmV0
dXJuIGRhdGEKLQotICAgIGRlZiBhcHBlbmQoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnQXBwZW5kZWQgJXInLCBkYXRhKQotICAgICAgICBzZWxmLl91bmNvbnN1bWVk
ICs9IGRhdGEKLQotICAgIGRlZiByZXNldChzZWxmKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdSZXNldCcpCi0gICAgICAgIHNlbGYuX2RlY29tcHJlc3MgPSB6bGliLmRlY29tcHJlc3Nv
YmooLXNlbGYuX3dpbmRvd19iaXRzKQotCi0KLSMgQ29tcHJlc3Nlcy9kZWNvbXByZXNzZXMgZ2l2
ZW4gb2N0ZXRzIHVzaW5nIHRoZSBtZXRob2QgaW50cm9kdWNlZCBpbiBSRkMxOTc5LgotCi0KLWNs
YXNzIF9SRkMxOTc5RGVmbGF0ZXIob2JqZWN0KToKLSAgICAiIiJBIGNvbXByZXNzb3IgY2xhc3Mg
dGhhdCBhcHBsaWVzIERFRkxBVEUgdG8gZ2l2ZW4gYnl0ZSBzZXF1ZW5jZSBhbmQKLSAgICBmbHVz
aGVzIHVzaW5nIHRoZSBhbGdvcml0aG0gZGVzY3JpYmVkIGluIHRoZSBSRkMxOTc5IHNlY3Rpb24g
Mi4xLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvd19iaXRzLCBub19j
b250ZXh0X3Rha2VvdmVyKToKLSAgICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBOb25lCi0gICAgICAg
IGlmIHdpbmRvd19iaXRzIGlzIE5vbmU6Ci0gICAgICAgICAgICB3aW5kb3dfYml0cyA9IHpsaWIu
TUFYX1dCSVRTCi0gICAgICAgIHNlbGYuX3dpbmRvd19iaXRzID0gd2luZG93X2JpdHMKLSAgICAg
ICAgc2VsZi5fbm9fY29udGV4dF90YWtlb3ZlciA9IG5vX2NvbnRleHRfdGFrZW92ZXIKLQotICAg
IGRlZiBmaWx0ZXIoc2VsZiwgYnl0ZXMsIGVuZD1UcnVlLCBiZmluYWw9RmFsc2UpOgotICAgICAg
ICBpZiBzZWxmLl9kZWZsYXRlciBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fZGVmbGF0ZXIg
PSBfRGVmbGF0ZXIoc2VsZi5fd2luZG93X2JpdHMpCi0KLSAgICAgICAgaWYgYmZpbmFsOgotICAg
ICAgICAgICAgcmVzdWx0ID0gc2VsZi5fZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZpbmlzaChieXRl
cykKLSAgICAgICAgICAgICMgQWRkIGEgcGFkZGluZyBibG9jayB3aXRoIEJGSU5BTCA9IDAgYW5k
IEJUWVBFID0gMC4KLSAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIGNocigwKQotICAgICAg
ICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBOb25lCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0K
LSAgICAgICAgcmVzdWx0ID0gc2VsZi5fZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZsdXNoKGJ5dGVz
KQotICAgICAgICBpZiBlbmQ6Ci0gICAgICAgICAgICAjIFN0cmlwIGxhc3QgNCBvY3RldHMgd2hp
Y2ggaXMgTEVOIGFuZCBOTEVOIGZpZWxkIG9mIGEKLSAgICAgICAgICAgICMgbm9uLWNvbXByZXNz
ZWQgYmxvY2sgYWRkZWQgZm9yIFpfU1lOQ19GTFVTSC4KLSAgICAgICAgICAgIHJlc3VsdCA9IHJl
c3VsdFs6LTRdCi0KLSAgICAgICAgaWYgc2VsZi5fbm9fY29udGV4dF90YWtlb3ZlciBhbmQgZW5k
OgotICAgICAgICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBOb25lCi0KLSAgICAgICAgcmV0dXJuIHJl
c3VsdAotCi0KLWNsYXNzIF9SRkMxOTc5SW5mbGF0ZXIob2JqZWN0KToKLSAgICAiIiJBIGRlY29t
cHJlc3NvciBjbGFzcyBhIGxhIFJGQzE5NzkuCi0KLSAgICBBIGRlY29tcHJlc3NvciBjbGFzcyBm
b3IgYnl0ZSBzZXF1ZW5jZSBjb21wcmVzc2VkIGFuZCBmbHVzaGVkIGZvbGxvd2luZwotICAgIHRo
ZSBhbGdvcml0aG0gZGVzY3JpYmVkIGluIHRoZSBSRkMxOTc5IHNlY3Rpb24gMi4xLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvd19iaXRzPXpsaWIuTUFYX1dCSVRTKToK
LSAgICAgICAgc2VsZi5faW5mbGF0ZXIgPSBfSW5mbGF0ZXIod2luZG93X2JpdHMpCi0KLSAgICBk
ZWYgZmlsdGVyKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgIyBSZXN0b3JlIHN0cmlwcGVkIExFTiBh
bmQgTkxFTiBmaWVsZCBvZiBhIG5vbi1jb21wcmVzc2VkIGJsb2NrIGFkZGVkCi0gICAgICAgICMg
Zm9yIFpfU1lOQ19GTFVTSC4KLSAgICAgICAgc2VsZi5faW5mbGF0ZXIuYXBwZW5kKGJ5dGVzICsg
J1x4MDBceDAwXHhmZlx4ZmYnKQotICAgICAgICByZXR1cm4gc2VsZi5faW5mbGF0ZXIuZGVjb21w
cmVzcygtMSkKLQotCi1jbGFzcyBEZWZsYXRlU29ja2V0KG9iamVjdCk6Ci0gICAgIiIiQSB3cmFw
cGVyIGNsYXNzIGZvciBzb2NrZXQgb2JqZWN0IHRvIGludGVyY2VwdCBzZW5kIGFuZCByZWN2IHRv
IHBlcmZvcm0KLSAgICBkZWZsYXRlIGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uIHRyYW5z
cGFyZW50bHkuCi0gICAgIiIiCi0KLSAgICAjIFNpemUgb2YgdGhlIGJ1ZmZlciBwYXNzZWQgdG8g
cmVjdiB0byByZWNlaXZlIGNvbXByZXNzZWQgZGF0YS4KLSAgICBfUkVDVl9TSVpFID0gNDA5Ngot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCk6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9
IHNvY2tldAotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IGdldF9jbGFzc19sb2dnZXIoc2VsZikK
LQotICAgICAgICBzZWxmLl9kZWZsYXRlciA9IF9EZWZsYXRlcih6bGliLk1BWF9XQklUUykKLSAg
ICAgICAgc2VsZi5faW5mbGF0ZXIgPSBfSW5mbGF0ZXIoemxpYi5NQVhfV0JJVFMpCi0KLSAgICBk
ZWYgcmVjdihzZWxmLCBzaXplKToKLSAgICAgICAgIiIiUmVjZWl2ZXMgZGF0YSBmcm9tIHRoZSBz
b2NrZXQgc3BlY2lmaWVkIG9uIHRoZSBjb25zdHJ1Y3Rpb24gdXAKLSAgICAgICAgdG8gdGhlIHNw
ZWNpZmllZCBzaXplLiBPbmNlIGFueSBkYXRhIGlzIGF2YWlsYWJsZSwgcmV0dXJucyBpdCBldmVu
Ci0gICAgICAgIGlmIGl0J3Mgc21hbGxlciB0aGFuIHRoZSBzcGVjaWZpZWQgc2l6ZS4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogQWxsb3cgY2FsbCB3aXRoIHNpemU9
MC4gSXQgc2hvdWxkIGJsb2NrIHVudGlsIGFueQotICAgICAgICAjIGRlY29tcHJlc3NlZCBkYXRh
IGlzIGF2YWlsYWJsZS4KLSAgICAgICAgaWYgc2l6ZSA8PSAwOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdOb24tcG9zaXRpdmUgc2l6ZSBwYXNzZWQnKQotICAgICAgICB3aGlsZSBUcnVl
OgotICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2luZmxhdGVyLmRlY29tcHJlc3Moc2l6ZSkKLSAg
ICAgICAgICAgIGlmIGxlbihkYXRhKSAhPSAwOgotICAgICAgICAgICAgICAgIHJldHVybiBkYXRh
Ci0KLSAgICAgICAgICAgIHJlYWRfZGF0YSA9IHNlbGYuX3NvY2tldC5yZWN2KERlZmxhdGVTb2Nr
ZXQuX1JFQ1ZfU0laRSkKLSAgICAgICAgICAgIGlmIG5vdCByZWFkX2RhdGE6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuICcnCi0gICAgICAgICAgICBzZWxmLl9pbmZsYXRlci5hcHBlbmQocmVhZF9k
YXRhKQotCi0gICAgZGVmIHNlbmRhbGwoc2VsZiwgYnl0ZXMpOgotICAgICAgICBzZWxmLnNlbmQo
Ynl0ZXMpCi0KLSAgICBkZWYgc2VuZChzZWxmLCBieXRlcyk6Ci0gICAgICAgIHNlbGYuX3NvY2tl
dC5zZW5kYWxsKHNlbGYuX2RlZmxhdGVyLmNvbXByZXNzX2FuZF9mbHVzaChieXRlcykpCi0gICAg
ICAgIHJldHVybiBsZW4oYnl0ZXMpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzIzYTVk
MjhiNzViY2Q5YzRhNWRlMGNkYzhiZDVkNjUzNzg1NjlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2Uu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2hpeGllNzUucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9fc3RyZWFtX2h5YmkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9jb21tb24u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L2V4dGVuc2lvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tpbmcuaQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9odHRwX2hlYWRlcl91dGlsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbWVt
b3JpemluZ2ZpbGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tc2d1dGlsLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvbXV4LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0cmVhbS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3hocl9iZW5jaG1hcmtfaGFuZGxlci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3hocl9iZW5jaG1hcmtfaGFuZGxlci5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDNhNWIwNDkyMjBlZTc5MGVmZWE1MWJkYTZhM2Y5NWQ4
ZGNmMDk3NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwxMjEgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhIEJTRC1zdHlsZQotIyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5H
IGZpbGUgb3IgYXQKLSMgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2Uv
bGljZW5zZXMvYnNkCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1j
bGFzcyBYSFJCZW5jaG1hcmtIYW5kbGVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGhlYWRlcnMsIHJmaWxlLCB3ZmlsZSk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0
X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuaGVhZGVycyA9IGhlYWRlcnMKLSAg
ICAgICAgc2VsZi5yZmlsZSA9IHJmaWxlCi0gICAgICAgIHNlbGYud2ZpbGUgPSB3ZmlsZQotCi0g
ICAgZGVmIGRvX3NlbmQoc2VsZik6Ci0gICAgICAgIGNvbnRlbnRfbGVuZ3RoID0gaW50KHNlbGYu
aGVhZGVycy5nZXRoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJykpCi0KLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdSZXF1ZXN0ZWQgdG8gcmVjZWl2ZSAlcyBieXRlcycsIGNvbnRlbnRfbGVuZ3Ro
KQotCi0gICAgICAgIFJFQ0VJVkVfQkxPQ0tfU0laRSA9IDEwMjQgKiAxMDI0Ci0KLSAgICAgICAg
Ynl0ZXNfdG9fcmVjZWl2ZSA9IGNvbnRlbnRfbGVuZ3RoCi0gICAgICAgIHdoaWxlIGJ5dGVzX3Rv
X3JlY2VpdmUgPiAwOgotICAgICAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3Ag
PSBieXRlc190b19yZWNlaXZlCi0gICAgICAgICAgICBpZiBieXRlc190b19yZWNlaXZlX2luX3Ro
aXNfbG9vcCA+IFJFQ0VJVkVfQkxPQ0tfU0laRToKLSAgICAgICAgICAgICAgICBieXRlc190b19y
ZWNlaXZlX2luX3RoaXNfbG9vcCA9IFJFQ0VJVkVfQkxPQ0tfU0laRQotICAgICAgICAgICAgcmVj
ZWl2ZWRfZGF0YSA9IHNlbGYucmZpbGUucmVhZChieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9v
cCkKLSAgICAgICAgICAgIGlmIHJlY2VpdmVkX2RhdGEgIT0gKCdhJyAqIGJ5dGVzX3RvX3JlY2Vp
dmVfaW5fdGhpc19sb29wKToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Jl
cXVlc3QgYm9keSB2ZXJpZmljYXRpb24gZmFpbGVkJykKLSAgICAgICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgICAgIGJ5dGVzX3RvX3JlY2VpdmUgLT0gbGVuKHJlY2VpdmVkX2RhdGEpCi0gICAg
ICAgIGlmIGJ5dGVzX3RvX3JlY2VpdmUgPCAwOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdSZWNlaXZlZCAlZCBtb3JlIGJ5dGVzIHRoYW4gZXhwZWN0ZWQnICUKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoLWJ5dGVzX3RvX3JlY2VpdmUpKQotICAgICAgICAgICAgcmV0
dXJuCi0KLSAgICAgICAgIyBSZXR1cm4gdGhlIG51bWJlciBvZiByZWNlaXZlZCBieXRlcyBiYWNr
IHRvIHRoZSBjbGllbnQuCi0gICAgICAgIHJlc3BvbnNlX2JvZHkgPSAnJWQnICUgY29udGVudF9s
ZW5ndGgKLSAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgKLSAgICAgICAgICAgICdIVFRQLzEuMSAy
MDAgT0tcclxuJwotICAgICAgICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKlxy
XG4nCi0gICAgICAgICAgICAnQ29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuJwotICAgICAgICAg
ICAgJ0NvbnRlbnQtTGVuZ3RoOiAlZFxyXG4nCi0gICAgICAgICAgICAnXHJcbiVzJyAlIChsZW4o
cmVzcG9uc2VfYm9keSksIHJlc3BvbnNlX2JvZHkpKQotICAgICAgICBzZWxmLndmaWxlLmZsdXNo
KCkKLQotICAgIGRlZiBkb19yZWNlaXZlX2FuZF9wYXJzZShzZWxmKToKLSAgICAgICAgY29udGVu
dF9sZW5ndGggPSBpbnQoc2VsZi5oZWFkZXJzLmdldGhlYWRlcignQ29udGVudC1MZW5ndGgnKSkK
LSAgICAgICAgcmVxdWVzdF9ib2R5ID0gc2VsZi5yZmlsZS5yZWFkKGNvbnRlbnRfbGVuZ3RoKQot
Ci0gICAgICAgIHJlcXVlc3RfYXJyYXkgPSByZXF1ZXN0X2JvZHkuc3BsaXQoJyAnKQotICAgICAg
ICBpZiBsZW4ocmVxdWVzdF9hcnJheSkgPCAyOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdNYWxmb3JtZWQgcmVxdWVzdCBib2R5OiAlcicsIHJlcXVlc3RfYm9keSkKLSAgICAgICAg
ICAgIHJldHVybgotCi0gICAgICAgICMgUGFyc2UgdGhlIHNpemUgcGFyYW1ldGVyLgotICAgICAg
ICBieXRlc190b19zZW5kID0gcmVxdWVzdF9hcnJheVswXQotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBieXRlc190b19zZW5kID0gaW50KGJ5dGVzX3RvX3NlbmQpCi0gICAgICAgIGV4Y2VwdCBW
YWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ01hbGZvcm1l
ZCBzaXplIHBhcmFtZXRlcjogJXInLCBieXRlc190b19zZW5kKQotICAgICAgICAgICAgcmV0dXJu
Ci0KLSAgICAgICAgIyBQYXJzZSB0aGUgdHJhbnNmZXIgZW5jb2RpbmcgcGFyYW1ldGVyLgotICAg
ICAgICBjaHVua2VkX21vZGUgPSBGYWxzZQotICAgICAgICBtb2RlX3BhcmFtZXRlciA9IHJlcXVl
c3RfYXJyYXlbMV0KLSAgICAgICAgaWYgbW9kZV9wYXJhbWV0ZXIgPT0gJ2NodW5rZWQnOgotICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXF1ZXN0ZWQgY2h1bmtlZCB0cmFuc2ZlciBl
bmNvZGluZycpCi0gICAgICAgICAgICBjaHVua2VkX21vZGUgPSBUcnVlCi0gICAgICAgIGVsaWYg
bW9kZV9wYXJhbWV0ZXIgIT0gJ25vbmUnOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdJbnZhbGlkIG1vZGUgcGFyYW1ldGVyOiAlcicsIG1vZGVfcGFyYW1ldGVyKQotICAgICAgICAg
ICAgcmV0dXJuCi0KLSAgICAgICAgc2VsZi5kb19yZWNlaXZlKGJ5dGVzX3RvX3NlbmQsIGNodW5r
ZWRfbW9kZSwgRmFsc2UpCi0KLSAgICBkZWYgZG9fcmVjZWl2ZShzZWxmLCBieXRlc190b19zZW5k
LCBjaHVua2VkX21vZGUsIGVuYWJsZV9jYWNoZSk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKLSAgICAgICAgICAgICdSZXF1ZXN0ZWQgdG8gc2VuZCAlcyBieXRlcyAoY2h1bmtlZDogJXMs
IGNhY2hlOiAlcyknLAotICAgICAgICAgICAgYnl0ZXNfdG9fc2VuZCwgY2h1bmtlZF9tb2RlLCBl
bmFibGVfY2FjaGUpCi0gICAgICAgICMgV3JpdGUgYSBoZWFkZXIKLSAgICAgICAgcmVzcG9uc2Vf
aGVhZGVyID0gKAotICAgICAgICAgICAgJ0hUVFAvMS4xIDIwMCBPS1xyXG4nCi0gICAgICAgICAg
ICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luOiAqXHJcbicKLSAgICAgICAgICAgICdDb250
ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVxyXG4nKQotICAgICAgICBpZiBlbmFi
bGVfY2FjaGU6Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXIgKz0gJ0NhY2hlLUNvbnRyb2w6
IHByaXZhdGUsIG1heC1hZ2U9MTBcclxuJwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVz
cG9uc2VfaGVhZGVyICs9IFwKLSAgICAgICAgICAgICAgICAnQ2FjaGUtQ29udHJvbDogbm8tY2Fj
aGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGVcclxuJwotICAgICAgICBpZiBjaHVua2VkX21v
ZGU6Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXIgKz0gJ1RyYW5zZmVyLUVuY29kaW5nOiBj
aHVua2VkXHJcblxyXG4nCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFk
ZXIgKz0gKAotICAgICAgICAgICAgICAgICdDb250ZW50LUxlbmd0aDogJWRcclxuXHJcbicgJSBi
eXRlc190b19zZW5kKQotICAgICAgICBzZWxmLndmaWxlLndyaXRlKHJlc3BvbnNlX2hlYWRlcikK
LSAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgpCi0KLSAgICAgICAgIyBXcml0ZSBhIGJvZHkKLSAg
ICAgICAgU0VORF9CTE9DS19TSVpFID0gMTAyNCAqIDEwMjQKLQotICAgICAgICB3aGlsZSBieXRl
c190b19zZW5kID4gMDoKLSAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID0g
Ynl0ZXNfdG9fc2VuZAotICAgICAgICAgICAgaWYgYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3Ag
PiBTRU5EX0JMT0NLX1NJWkU6Ci0gICAgICAgICAgICAgICAgYnl0ZXNfdG9fc2VuZF9pbl90aGlz
X2xvb3AgPSBTRU5EX0JMT0NLX1NJWkUKLQotICAgICAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgot
ICAgICAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoJyV4XHJcbicgJSBieXRlc190b19zZW5k
X2luX3RoaXNfbG9vcCkKLSAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoJ2EnICogYnl0ZXNf
dG9fc2VuZF9pbl90aGlzX2xvb3ApCi0gICAgICAgICAgICBpZiBjaHVua2VkX21vZGU6Ci0gICAg
ICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgnXHJcbicpCi0gICAgICAgICAgICBzZWxmLndm
aWxlLmZsdXNoKCkKLQotICAgICAgICAgICAgYnl0ZXNfdG9fc2VuZCAtPSBieXRlc190b19zZW5k
X2luX3RoaXNfbG9vcAotCi0gICAgICAgIGlmIGNodW5rZWRfbW9kZToKLSAgICAgICAgICAgIHNl
bGYud2ZpbGUud3JpdGUoJzBcclxuXHJcbicpCi0gICAgICAgICAgICBzZWxmLndmaWxlLmZsdXNo
KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NldHVwLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5MzVkNmIxMDU4OTljYTEzNDhkN2Q2ZDY4YmJlMmJkNDllODVk
MTE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c2V0dXAucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0jIS91c3IvYmluL2VudiBw
eXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0
cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlNldCB1cCBzY3JpcHQgZm9yIG1vZF9w
eXdlYnNvY2tldC4KLSIiIgotCi0KLWZyb20gZGlzdHV0aWxzLmNvcmUgaW1wb3J0IHNldHVwLCBF
eHRlbnNpb24KLWltcG9ydCBzeXMKLQotCi1fUEFDS0FHRV9OQU1FID0gJ21vZF9weXdlYnNvY2tl
dCcKLQotIyBCdWlsZCBhbmQgdXNlIGEgQysrIGV4dGVuc2lvbiBmb3IgZmFzdGVyIG1hc2tpbmcu
IFNXSUcgaXMgcmVxdWlyZWQuCi1fVVNFX0ZBU1RfTUFTS0lORyA9IEZhbHNlCi0KLWlmIHN5cy52
ZXJzaW9uIDwgJzIuMyc6Ci0gICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgJyVzIHJlcXVpcmVzIFB5
dGhvbiAyLjMgb3IgbGF0ZXIuJyAlIF9QQUNLQUdFX05BTUUKLSAgICBzeXMuZXhpdCgxKQotCi1p
ZiBfVVNFX0ZBU1RfTUFTS0lORzoKLSAgICBzZXR1cChleHRfbW9kdWxlcz1bCi0gICAgICAgICAg
ICAgICAgICBFeHRlbnNpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJz
b2NrZXQvX2Zhc3RfbWFza2luZycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFsnbW9kX3B5
d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN3
aWdfb3B0cz1bJy1jKysnXSldKQotCi1zZXR1cChhdXRob3I9J1l1em8gRnVqaXNoaW1hJywKLSAg
ICAgIGF1dGhvcl9lbWFpbD0neXV6b0BjaHJvbWl1bS5vcmcnLAotICAgICAgZGVzY3JpcHRpb249
J1dlYlNvY2tldCBleHRlbnNpb24gZm9yIEFwYWNoZSBIVFRQIFNlcnZlci4nLAotICAgICAgbG9u
Z19kZXNjcmlwdGlvbj0oCi0gICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQgaXMgYW4gQXBh
Y2hlIEhUVFAgU2VydmVyIGV4dGVuc2lvbiBmb3IgJwotICAgICAgICAgICAgICAndGhlIFdlYlNv
Y2tldCBQcm90b2NvbCAoUkZDIDY0NTUpLiAnCi0gICAgICAgICAgICAgICdTZWUgbW9kX3B5d2Vi
c29ja2V0L19faW5pdF9fLnB5IGZvciBtb3JlIGRldGFpbC4nKSwKLSAgICAgIGxpY2Vuc2U9J1Nl
ZSBMSUNFTlNFJywKLSAgICAgIG5hbWU9X1BBQ0tBR0VfTkFNRSwKLSAgICAgIHBhY2thZ2VzPVtf
UEFDS0FHRV9OQU1FLCBfUEFDS0FHRV9OQU1FICsgJy5oYW5kc2hha2UnXSwKLSAgICAgIHVybD0n
aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3B5d2Vic29ja2V0LycsCi0gICAgICAjIFNlZSB0aGUg
c291cmNlIG9mIGRpc3R1dGlscy52ZXJzaW9uLCBkaXN0dXRpbHMudmVyc2lvbnByZWRpY2F0ZSBh
bmQKLSAgICAgICMgZGlzdHV0aWxzLmRpc3QgdG8gdW5kZXJzdGFuZCBob3cgdG8gbmFtZSB2ZXJz
aW9uIG51bWJlcnMuCi0gICAgICB2ZXJzaW9uPScwLjcuOScsCi0gICAgICApCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9DT1BZSU5HIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvQ09Q
WUlORwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTg5ZDAyZTRjZDA5MjM3ODA2Zjdk
ZjhiZWFlY2M2OTE1MjczNDI4ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9DT1BZSU5HCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBA
QAotQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1S
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLW1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LWNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLWluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi10aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1U
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0iQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi1TUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvTUFOSUZFU1QuaW4g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9NQU5JRkVTVC5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTky
NTY4ODJjNTZmZWI3MjgxMmM5OWM4YTgzNzk5NzllNjNlNGEwYy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9NQU5JRkVTVC5pbgorKysgL2Rl
di9udWxsCkBAIC0xLDYgKzAsMCBAQAotaW5jbHVkZSBDT1BZSU5HCi1pbmNsdWRlIE1BTklGRVNU
LmluCi1pbmNsdWRlIFJFQURNRQotcmVjdXJzaXZlLWluY2x1ZGUgZXhhbXBsZSAqLnB5Ci1yZWN1
cnNpdmUtaW5jbHVkZSBtb2RfcHl3ZWJzb2NrZXQgKi5weQotcmVjdXJzaXZlLWluY2x1ZGUgdGVz
dCAqLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9SRUFETUUgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9SRUFETUUKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4Yzc1OGY1ZWVmNGM3MzE4OTI2NDFkZTMzM2U1
ZDc1ZDEwYTNlNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvUkVBRE1FCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotSU5TVEFM
TAotCi1UbyBpbnN0YWxsIHRoaXMgcGFja2FnZSB0byB0aGUgc3lzdGVtLCBydW4gdGhpczoKLSQg
cHl0aG9uIHNldHVwLnB5IGJ1aWxkCi0kIHN1ZG8gcHl0aG9uIHNldHVwLnB5IGluc3RhbGwKLQot
VG8gaW5zdGFsbCB0aGlzIHBhY2thZ2UgYXMgYSBub3JtYWwgdXNlciwgcnVuIHRoaXMgaW5zdGVh
ZDoKLSQgcHl0aG9uIHNldHVwLnB5IGJ1aWxkCi0kIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsIC0t
dXNlcgotCi1MQVVOQ0gKLQotVG8gdXNlIHB5d2Vic29ja2V0IGFzIEFwYWNoZSBtb2R1bGUsIHJ1
biB0aGlzIHRvIHJlYWQgdGhlIGRvY3VtZW50OgotJCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQKLQot
VG8gdXNlIHB5d2Vic29ja2V0IGFzIHN0YW5kYWxvbmUgc2VydmVyLCBydW4gdGhpcyB0byByZWFk
IHRoZSBkb2N1bWVudDoKLSQgcHlkb2MgbW9kX3B5d2Vic29ja2V0LnN0YW5kYWxvbmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYWJvcnRfaGFuZHNoYWtlX3dzaC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L2V4YW1wbGUvYWJvcnRfaGFuZHNoYWtlX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDA4MDIzYTFmZTkxZTJmMjk3N2IxNjNmOTc3ZGFlNjg1MDAwOWFhNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Fi
b3J0X2hhbmRzaGFrZV93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0jIENv
cHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi0K
LQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHJhaXNl
IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uKAotICAgICAgICAiQWJvcnRlZCBpbiB3
ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSIpCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNm
ZXJfZGF0YShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Fib3J0X3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUv
YWJvcnRfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYmJmMDA1ZjZhMzdj
NjA5ZTE2YWJkZTRkZjk0MDI0MjY4ZDBkYWVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYWJvcnRfd3NoLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNDMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hh
bmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KToKLSAgICByYWlzZSBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlv
bigKLSAgICAgICAgIkFib3J0ZWQgaW4gd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhIikKLQotCi0j
IHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYXJyYXlidWZm
ZXJfYmVuY2htYXJrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2FycmF5YnVmZmVyX2JlbmNobWFy
ay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NjljZDdlMWVlNjUzZDU5ZjA0
YjgwMmZmMzRjOGQwODEzMTdjYTg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYXJyYXlidWZmZXJfYmVuY2htYXJrLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTMsIEdv
b2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLW1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLWNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLWluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi10aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi1TUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+QXJyYXlCdWZmZXIgYmVuY2htYXJrPC90
aXRsZT4KLTxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgUFJJ
TlRfU0laRSA9IHRydWU7Ci0KLS8vIEluaXRpYWwgc2l6ZSBvZiBhcnJheXMuCi12YXIgU1RBUlRf
U0laRSA9IDEwICogMTAyNDsKLS8vIFN0b3BzIGJlbmNobWFyayB3aGVuIHRoZSBzaXplIG9mIGFu
IGFycmF5IGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQuCi12YXIgU1RPUF9USFJFU0hPTEQgPSAxMDAw
MDAgKiAxMDI0OwotLy8gSWYgdGhlIHNpemUgb2YgZWFjaCBhcnJheSBpcyBzbWFsbCwgd3JpdGUv
cmVhZCB0aGUgYXJyYXkgbXVsdGlwbGUgdGltZXMKLS8vIHVudGlsIHRoZSBzdW0gb2Ygc2l6ZXMg
cmVhY2hlcyB0aGlzIHRocmVzaG9sZC4KLXZhciBNSU5fVE9UQUwgPSAxMDAwMDAgKiAxMDI0Owot
dmFyIE1VTFRJUExJRVJTID0gWzUsIDJdOwotCi0vLyBSZXBlYXQgYmVuY2htYXJrIGZvciBzZXZl
cmFsIHRpbWVzIHRvIG1lYXN1cmUgcGVyZm9ybWFuY2Ugb2Ygb3B0aW1pemVkCi0vLyAoc3VjaCBh
cyBKSVQpIHJ1bi4KLXZhciBSRVBFQVRfRk9SX1dBUk1VUCA9IDM7Ci0KLWZ1bmN0aW9uIHdyaXRl
QmVuY2htYXJrKHNpemUsIG1pblRvdGFsKSB7Ci0gIHZhciB0b3RhbFNpemUgPSAwOwotICB3aGls
ZSAodG90YWxTaXplIDwgbWluVG90YWwpIHsKLSAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJy
YXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICAvLyBXcml0ZSAnYSdzLgotICAgIGZpbGxBcnJheUJ1ZmZl
cihhcnJheUJ1ZmZlciwgMHg2MSk7Ci0KLSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAgfQotICBy
ZXR1cm4gdG90YWxTaXplOwotfQotCi1mdW5jdGlvbiByZWFkQmVuY2htYXJrKHNpemUsIG1pblRv
dGFsKSB7Ci0gIHZhciB0b3RhbFNpemUgPSAwOwotICB3aGlsZSAodG90YWxTaXplIDwgbWluVG90
YWwpIHsKLSAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAg
ICBpZiAoIXZlcmlmeUFycmF5QnVmZmVyKGFycmF5QnVmZmVyLCAweDAwKSkgewotICAgICAgcXVl
dWVMb2coJ1ZlcmlmaWNhdGlvbiBmYWlsZWQnKTsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0K
LSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAgfQotICByZXR1cm4gdG90YWxTaXplOwotfQotCi1m
dW5jdGlvbiBydW5CZW5jaG1hcmsoYmVuY2htYXJrRnVuY3Rpb24sCi0gICAgICAgICAgICAgICAg
ICAgICAgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICBzdG9wVGhyZXNob2xkLAotICAgICAg
ICAgICAgICAgICAgICAgIG1pblRvdGFsLAotICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxp
ZXJzLAotICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXJJbmRleCkgewotICB3aGlsZSAo
c2l6ZSA8PSBzdG9wVGhyZXNob2xkKSB7Ci0gICAgdmFyIG1heFNwZWVkID0gMDsKLQotICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgUkVQRUFUX0ZPUl9XQVJNVVA7ICsraSkgewotICAgICAgdmFyIHN0
YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLQotICAgICAgdmFyIHRvdGFsU2l6ZSA9IGJl
bmNobWFya0Z1bmN0aW9uKHNpemUsIG1pblRvdGFsKTsKLQotICAgICAgbWF4U3BlZWQgPSBNYXRo
Lm1heChtYXhTcGVlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlU3BlZWRJ
bktCKHRvdGFsU2l6ZSwgc3RhcnRUaW1lSW5NcykpOwotICAgIH0KLSAgICBxdWV1ZUxvZyhmb3Jt
YXRSZXN1bHRJbktpQihzaXplLCBtYXhTcGVlZCwgUFJJTlRfU0laRSkpOwotCi0gICAgc2l6ZSAq
PSBtdWx0aXBsaWVyc1ttdWx0aXBsaWVySW5kZXhdOwotICAgIG11bHRpcGxpZXJJbmRleCA9ICht
dWx0aXBsaWVySW5kZXggKyAxKSAlIG11bHRpcGxpZXJzLmxlbmd0aDsKLSAgfQotfQotCi1mdW5j
dGlvbiBydW5CZW5jaG1hcmtzKCkgewotICBxdWV1ZUxvZygnTWVzc2FnZSBzaXplIGluIEtpQiwg
U3BlZWQgaW4ga0IvcycpOwotCi0gIHF1ZXVlTG9nKCdXcml0ZSBiZW5jaG1hcmsnKTsKLSAgcnVu
QmVuY2htYXJrKAotICAgICAgd3JpdGVCZW5jaG1hcmssIFNUQVJUX1NJWkUsIFNUT1BfVEhSRVNI
T0xELCBNSU5fVE9UQUwsIE1VTFRJUExJRVJTLCAwKTsKLSAgcXVldWVMb2coJ0ZpbmlzaGVkJyk7
Ci0KLSAgcXVldWVMb2coJ1JlYWQgYmVuY2htYXJrJyk7Ci0gIHJ1bkJlbmNobWFyaygKLSAgICAg
IHJlYWRCZW5jaG1hcmssIFNUQVJUX1NJWkUsIFNUT1BfVEhSRVNIT0xELCBNSU5fVE9UQUwsIE1V
TFRJUExJRVJTLCAwKTsKLSAgYWRkVG9Mb2coJ0ZpbmlzaGVkJyk7Ci19Ci0KLWZ1bmN0aW9uIGlu
aXQoKSB7Ci0gIGxvZ0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKLQotICBx
dWV1ZUxvZyh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLQotICBh
ZGRUb0xvZygnU3RhcnRlZC4uLicpOwotCi0gIHNldFRpbWVvdXQocnVuQmVuY2htYXJrcywgMCk7
Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotPHRleHRh
cmVhCi0gICAgaWQ9ImxvZyIgcm93cz0iNTAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+
PC90ZXh0YXJlYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUvYmVuY2hfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaF93c2gucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwNjdjYTdkODk1NWZjMTYzZDUwMDFjZDg4MTJlNmFlMjBj
MTYyOTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS9iZW5jaF93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBA
Ci0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9u
LgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJBIHNpbXBsZSBsb2FkIHRlc3RlciBmb3IgV2ViU29j
a2V0IGNsaWVudHMuCi0KLUEgY2xpZW50IHByb2dyYW0gc2VuZHMgYSBtZXNzYWdlIGZvcm1hdHRl
ZCBhcyAiPHRpbWU+IDxjb3VudD4gPG1lc3NhZ2U+IiB0bwotdGhpcyBoYW5kbGVyLiBUaGlzIGhh
bmRsZXIgc3RhcnRzIHNlbmRpbmcgdG90YWwgPGNvdW50PiBXZWJTb2NrZXQgbWVzc2FnZXMKLWNv
bnRhaW5pbmcgPG1lc3NhZ2U+IGV2ZXJ5IDx0aW1lPiBzZWNvbmRzLiA8dGltZT4gY2FuIGJlIGEg
ZmxvYXRpbmcgcG9pbnQKLXZhbHVlLiA8Y291bnQ+IG11c3QgYmUgYW4gaW50ZWdlciB2YWx1ZS4K
LSIiIgotCi0KLWltcG9ydCB0aW1lCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNo
YWtlKHJlcXVlc3QpOgotICAgIHBhc3MgICMgQWx3YXlzIGFjY2VwdC4KLQotCi1kZWYgd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIGxpbmUgPSByZXF1ZXN0LndzX3N0cmVh
bS5yZWNlaXZlX21lc3NhZ2UoKQotICAgIHBhcnRzID0gbGluZS5zcGxpdCgnICcpCi0gICAgaWYg
bGVuKHBhcnRzKSAhPSAzOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcGFyYW1ldGVy
IGZvcm1hdCcpCi0gICAgd2FpdCA9IGZsb2F0KHBhcnRzWzBdKQotICAgIGNvdW50ID0gaW50KHBh
cnRzWzFdKQotICAgIG1lc3NhZ2UgPSBwYXJ0c1syXQotICAgIGZvciBpIGluIHhyYW5nZShjb3Vu
dCk6Ci0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShtZXNzYWdlKQotICAg
ICAgICB0aW1lLnNsZWVwKHdhaXQpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFyay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5j
aG1hcmsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2EyMTgxNzNhMGYxZjMz
YTRlZDQ2MmUyMWY4NmMxYjhkNDhiYTYyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFyay5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMjAzICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5j
LgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6
Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmli
dXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1E
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgot
Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPldlYlNvY2tldCBiZW5jaG1hcms8L3RpdGxlPgotPHNj
cmlwdCBzcmM9InV0aWxfbWFpbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iYmVuY2htYXJrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci12YXIgYWRkcmVzc0JveCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGdldENvbmZpZygpIHsKLSAgcmV0
dXJuIHsKLSAgICBwcmVmaXhVcmw6IGFkZHJlc3NCb3gudmFsdWUsCi0gICAgcHJpbnRTaXplOiBn
ZXRCb29sRnJvbUNoZWNrQm94KCdwcmludHNpemUnKSwKLSAgICBudW1Tb2NrZXRzOiBnZXRJbnRG
cm9tSW5wdXQoJ251bXNvY2tldHMnKSwKLSAgICAvLyBJbml0aWFsIHNpemUgb2YgbWVzc2FnZXMu
Ci0gICAgbnVtSXRlcmF0aW9uczogZ2V0SW50RnJvbUlucHV0KCdudW1pdGVyYXRpb25zJyksCi0g
ICAgbnVtV2FybVVwSXRlcmF0aW9uczogZ2V0SW50RnJvbUlucHV0KCdudW13YXJtdXBpdGVyYXRp
b25zJyksCi0gICAgc3RhcnRTaXplOiBnZXRJbnRGcm9tSW5wdXQoJ3N0YXJ0c2l6ZScpLAotICAg
IC8vIFN0b3BzIGJlbmNobWFyayB3aGVuIHRoZSBzaXplIG9mIG1lc3NhZ2UgZXhjZWVkcyB0aGlz
IHRocmVzaG9sZC4KLSAgICBzdG9wVGhyZXNob2xkOiBnZXRJbnRGcm9tSW5wdXQoJ3N0b3B0aHJl
c2hvbGQnKSwKLSAgICAvLyBJZiB0aGUgc2l6ZSBvZiBlYWNoIG1lc3NhZ2UgaXMgc21hbGwsIHNl
bmQvcmVjZWl2ZSBtdWx0aXBsZSBtZXNzYWdlcwotICAgIC8vIHVudGlsIHRoZSBzdW0gb2Ygc2l6
ZXMgcmVhY2hlcyB0aGlzIHRocmVzaG9sZC4KLSAgICBtaW5Ub3RhbDogZ2V0SW50RnJvbUlucHV0
KCdtaW50b3RhbCcpLAotICAgIG11bHRpcGxpZXJzOiBnZXRJbnRBcnJheUZyb21JbnB1dCgnbXVs
dGlwbGllcnMnKSwKLSAgICB2ZXJpZnlEYXRhOiBnZXRCb29sRnJvbUNoZWNrQm94KCd2ZXJpZnlk
YXRhJykKLSAgfTsKLX0KLQotdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoJ2JlbmNobWFyay5qcycp
Owotd29ya2VyLm9ubWVzc2FnZSA9IG9uTWVzc2FnZTsKLQotZnVuY3Rpb24gb25TZW5kQmVuY2ht
YXJrKCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9t
Q2hlY2tCb3goJ3dvcmtlcicpKSB7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnc2Vu
ZEJlbmNobWFyaycsIGNvbmZpZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFk
ZFRvTG9nID0gYWRkVG9Mb2c7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFy
eTsKLSAgICBjb25maWcubWVhc3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwotICAgIHNlbmRCZW5j
aG1hcmsoY29uZmlnKTsKLSAgfQotfQotCi1mdW5jdGlvbiBvblJlY2VpdmVCZW5jaG1hcmsoKSB7
Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLQotICBpZiAoZ2V0Qm9vbEZyb21DaGVja0Jv
eCgnd29ya2VyJykpIHsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3R5cGU6ICdyZWNlaXZlQmVu
Y2htYXJrJywgY29uZmlnOiBjb25maWd9KTsKLSAgfSBlbHNlIHsKLSAgICBjb25maWcuYWRkVG9M
b2cgPSBhZGRUb0xvZzsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5ID0gYWRkVG9TdW1tYXJ5Owot
ICAgIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSBtZWFzdXJlVmFsdWU7Ci0gICAgcmVjZWl2ZUJlbmNo
bWFyayhjb25maWcpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIG9uQmF0Y2hCZW5jaG1hcmsoKSB7Ci0g
IHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLQotICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgn
d29ya2VyJykpIHsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3R5cGU6ICdiYXRjaEJlbmNobWFy
aycsIGNvbmZpZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0g
YWRkVG9Mb2c7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBj
b25maWcubWVhc3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwotICAgIGJhdGNoQmVuY2htYXJrKGNv
bmZpZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gb25TdG9wKCkgewotICB2YXIgY29uZmlnID0gZ2V0
Q29uZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpKSB7Ci0gICAg
d29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnc3RvcCcsIGNvbmZpZzogY29uZmlnfSk7Ci0gIH0g
ZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0gYWRkVG9Mb2c7Ci0gICAgY29uZmlnLmFkZFRv
U3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBjb25maWcubWVhc3VyZVZhbHVlID0gbWVhc3Vy
ZVZhbHVlOwotICAgIHN0b3AoY29uZmlnKTsKLSAgfQotfQotZnVuY3Rpb24gaW5pdCgpIHsKLSAg
YWRkcmVzc0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGRyZXNzJyk7Ci0gIGxvZ0Jv
eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKLQotICBzdW1tYXJ5Qm94ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1bW1hcnknKTsKLQotICB2YXIgc2NoZW1lID0gd2luZG93
LmxvY2F0aW9uLnByb3RvY29sID09ICdodHRwczonID8gJ3dzczovLycgOiAnd3M6Ly8nOwotICB2
YXIgZGVmYXVsdEFkZHJlc3MgPSBzY2hlbWUgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvYmVu
Y2htYXJrX2hlbHBlcic7Ci0KLSAgYWRkcmVzc0JveC52YWx1ZSA9IGRlZmF1bHRBZGRyZXNzOwot
Ci0gIGFkZFRvTG9nKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwot
ICBhZGRUb1N1bW1hcnkod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7
Ci0KLSAgaWYgKCEoJ1dlYlNvY2tldCcgaW4gd2luZG93KSkgewotICAgIGFkZFRvTG9nKCdXZWJT
b2NrZXQgaXMgbm90IGF2YWlsYWJsZScpOwotICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0iaW5pdCgpIj4KLQotPGRpdiBpZD0iYmVuY2htYXJrX2RpdiI+Ci0gIHVybCA8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFkZHJlc3MiIHNpemU9IjQwIj4KLSAgPGlucHV0IHR5cGU9
ImJ1dHRvbiIgdmFsdWU9InNlbmQiIG9uY2xpY2s9Im9uU2VuZEJlbmNobWFyaygpIj4KLSAgPGlu
cHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InJlY2VpdmUiIG9uY2xpY2s9Im9uUmVjZWl2ZUJlbmNo
bWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9ImJhdGNoIiBvbmNsaWNrPSJv
bkJhdGNoQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic3RvcCIg
b25jbGljaz0ib25TdG9wKCkiPgotCi0gIDxici8+Ci0KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94
IiBpZD0icHJpbnRzaXplIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJwcmludHNpemUiPlByaW50
IHNpemUgYW5kIHRpbWUgcGVyIG1lc3NhZ2U8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2ti
b3giIGlkPSJ2ZXJpZnlkYXRhIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJ2ZXJpZnlkYXRhIj5W
ZXJpZnkgZGF0YTwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IndvcmtlciI+
Ci0gIDxsYWJlbCBmb3I9IndvcmtlciI+UnVuIG9uIHdvcmtlcjwvbGFiZWw+Ci0KLSAgPGJyLz4K
LQotICBQYXJhbWV0ZXJzOgotCi0gIDxici8+Ci0KLSAgPHRhYmxlPgotICAgIDx0cj4KLSAgICAg
IDx0ZD5OdW0gc29ja2V0czwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJu
dW1zb2NrZXRzIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0
ZD5OdW1iZXIgb2YgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQi
IGlkPSJudW1pdGVyYXRpb25zIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4K
LSAgICAgIDx0ZD5OdW1iZXIgb2Ygd2FybS11cCBpdGVyYXRpb25zPC90ZD4KLSAgICAgIDx0ZD48
aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bXdhcm11cGl0ZXJhdGlvbnMiIHZhbHVlPSIwIj48L3Rk
PgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPlN0YXJ0IHNpemU8L3RkPgotICAgICAg
PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RhcnRzaXplIiB2YWx1ZT0iMTAyNDAiPjwvdGQ+
Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3RvcCB0aHJlc2hvbGQ8L3RkPgotICAg
ICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RvcHRocmVzaG9sZCIgdmFsdWU9IjEwMjQw
MDAwMCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5NaW5pbXVtIHRvdGFs
PC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im1pbnRvdGFsIiB2YWx1ZT0i
MTAyNDAwMDAwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk11bHRpcGxp
ZXJzPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im11bHRpcGxpZXJzIiB2
YWx1ZT0iNSwgMiI+PC90ZD4KLSAgICA8L3RyPgotICA8L3RhYmxlPgotPC9kaXY+Ci0KLTxkaXYg
aWQ9ImxvZ19kaXYiPgotICA8dGV4dGFyZWEKLSAgICAgIGlkPSJsb2ciIHJvd3M9IjIwIiBzdHls
ZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08L2Rpdj4KLTxkaXYgaWQ9InN1
bW1hcnlfZGl2Ij4KLSAgU3VtbWFyeQotICA8dGV4dGFyZWEKLSAgICAgIGlkPSJzdW1tYXJ5IiBy
b3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9kaXY+
Ci0KLU5vdGU6IEVmZmVjdCBvZiBSVFQgaXMgbm90IGVsaW1pbmF0ZWQuCi0KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJrLmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvZXhhbXBsZS9iZW5jaG1hcmsuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQz
NDdhZTllMTNkZTJmMDVkYTA4NWM0OTIxMWY1NGMwYjY4NTJhZjEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmsu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwzMDkgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTQgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBm
b3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBodHRwczovL2RldmVsb3BlcnMuZ29v
Z2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotaWYgKHR5cGVvZiBpbXBvcnRTY3Jp
cHRzICE9PSAidW5kZWZpbmVkIikgewotICAvLyBSdW5uaW5nIG9uIGEgd29ya2VyCi0gIGltcG9y
dFNjcmlwdHMoJ3V0aWwuanMnLCAndXRpbF93b3JrZXIuanMnKTsKLX0KLQotLy8gTmFtZXNwYWNl
IGZvciBob2xkaW5nIGdsb2JhbHMuCi12YXIgYmVuY2htYXJrID0ge3N0YXJ0VGltZUluTXM6IDB9
OwotCi12YXIgc29ja2V0cyA9IFtdOwotdmFyIG51bUVzdGFibGlzaGVkU29ja2V0cyA9IDA7Ci0K
LXZhciB0aW1lcklEID0gbnVsbDsKLQotZnVuY3Rpb24gZGVzdHJveVNvY2tldChzb2NrZXQpIHsK
LSAgc29ja2V0Lm9ub3BlbiA9IG51bGw7Ci0gIHNvY2tldC5vbm1lc3NhZ2UgPSBudWxsOwotICBz
b2NrZXQub25lcnJvciA9IG51bGw7Ci0gIHNvY2tldC5vbmNsb3NlID0gbnVsbDsKLSAgc29ja2V0
LmNsb3NlKCk7Ci19Ci0KLWZ1bmN0aW9uIGRlc3Ryb3lBbGxTb2NrZXRzKCkgewotICBmb3IgKHZh
ciBpID0gMDsgaSA8IHNvY2tldHMubGVuZ3RoOyArK2kpIHsKLSAgICBkZXN0cm95U29ja2V0KHNv
Y2tldHNbaV0pOwotICB9Ci0gIHNvY2tldHMgPSBbXTsKLX0KLQotZnVuY3Rpb24gc2VuZEJlbmNo
bWFya1N0ZXAoc2l6ZSwgY29uZmlnKSB7Ci0gIHRpbWVySUQgPSBudWxsOwotCi0gIHZhciB0b3Rh
bFNpemUgPSAwOwotICB2YXIgdG90YWxSZXBsaWVkID0gMDsKLQotICB2YXIgb25NZXNzYWdlSGFu
ZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgaWYgKCF2ZXJpZnlBY2tub3dsZWRnZW1lbnQo
Y29uZmlnLCBldmVudC5kYXRhLCBzaXplKSkgewotICAgICAgZGVzdHJveUFsbFNvY2tldHMoKTsK
LSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB0b3RhbFJlcGxpZWQgKz0gc2l6ZTsKLQotICAg
IGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNpemUpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBjYWxjdWxhdGVBbmRMb2dSZXN1bHQoY29uZmlnLCBzaXplLCBiZW5jaG1hcmsuc3RhcnRU
aW1lSW5NcywgdG90YWxTaXplKTsKLQotICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH07Ci0K
LSAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb2NrZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgdmFyIHNv
Y2tldCA9IHNvY2tldHNbaV07Ci0gICAgc29ja2V0Lm9ubWVzc2FnZSA9IG9uTWVzc2FnZUhhbmRs
ZXI7Ci0gIH0KLQotICB2YXIgZGF0YUFycmF5ID0gW107Ci0KLSAgd2hpbGUgKHRvdGFsU2l6ZSA8
IGNvbmZpZy5taW5Ub3RhbCkgewotICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6
ZSk7Ci0KLSAgICBmaWxsQXJyYXlCdWZmZXIoYnVmZmVyLCAweDYxKTsKLQotICAgIGRhdGFBcnJh
eS5wdXNoKGJ1ZmZlcik7Ci0gICAgdG90YWxTaXplICs9IHNpemU7Ci0gIH0KLQotICBiZW5jaG1h
cmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotCi0gIHRvdGFsU2l6ZSA9IDA7Ci0K
LSAgdmFyIHNvY2tldEluZGV4ID0gMDsKLSAgdmFyIGRhdGFJbmRleCA9IDA7Ci0gIHdoaWxlICh0
b3RhbFNpemUgPCBjb25maWcubWluVG90YWwpIHsKLSAgICB2YXIgY29tbWFuZCA9IFsnc2VuZCdd
OwotICAgIGNvbW1hbmQucHVzaChjb25maWcudmVyaWZ5RGF0YSA/ICcxJyA6ICcwJyk7Ci0gICAg
c29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZChjb21tYW5kLmpvaW4oJyAnKSk7Ci0gICAgc29ja2V0
c1tzb2NrZXRJbmRleF0uc2VuZChkYXRhQXJyYXlbZGF0YUluZGV4XSk7Ci0gICAgc29ja2V0SW5k
ZXggPSAoc29ja2V0SW5kZXggKyAxKSAlIHNvY2tldHMubGVuZ3RoOwotCi0gICAgdG90YWxTaXpl
ICs9IHNpemU7Ci0gICAgKytkYXRhSW5kZXg7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcmVjZWl2ZUJl
bmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnKSB7Ci0gIHRpbWVySUQgPSBudWxsOwotCi0gIHZhciB0
b3RhbFNpemUgPSAwOwotICB2YXIgdG90YWxSZXBsaWVkID0gMDsKLQotICB2YXIgb25NZXNzYWdl
SGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgdmFyIGJ5dGVzUmVjZWl2ZWQgPSBldmVu
dC5kYXRhLmJ5dGVMZW5ndGg7Ci0gICAgaWYgKGJ5dGVzUmVjZWl2ZWQgIT0gc2l6ZSkgewotICAg
ICAgY29uZmlnLmFkZFRvTG9nKCdFeHBlY3RlZCAnICsgc2l6ZSArICdCIGJ1dCByZWNlaXZlZCAn
ICsKLSAgICAgICAgICBieXRlc1JlY2VpdmVkICsgJ0InKTsKLSAgICAgIGRlc3Ryb3lBbGxTb2Nr
ZXRzKCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRh
ICYmICF2ZXJpZnlBcnJheUJ1ZmZlcihldmVudC5kYXRhLCAweDYxKSkgewotICAgICAgY29uZmln
LmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7Ci0gICAgICBkZXN0cm95
QWxsU29ja2V0cygpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHRvdGFsUmVwbGllZCAr
PSBieXRlc1JlY2VpdmVkOwotCi0gICAgaWYgKHRvdGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkgewot
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcs
IHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1zLCB0b3RhbFNpemUpOwotCi0gICAgcnVuTmV4
dFRhc2soY29uZmlnKTsKLSAgfTsKLQotICBmb3IgKHZhciBpID0gMDsgaSA8IHNvY2tldHMubGVu
Z3RoOyArK2kpIHsKLSAgICB2YXIgc29ja2V0ID0gc29ja2V0c1tpXTsKLSAgICBzb2NrZXQuYmlu
YXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7Ci0gICAgc29ja2V0Lm9ubWVzc2FnZSA9IG9uTWVzc2Fn
ZUhhbmRsZXI7Ci0gIH0KLQotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFt
cCgpOwotCi0gIHZhciBzb2NrZXRJbmRleCA9IDA7Ci0gIHdoaWxlICh0b3RhbFNpemUgPCBjb25m
aWcubWluVG90YWwpIHsKLSAgICBzb2NrZXRzW3NvY2tldEluZGV4XS5zZW5kKCdyZWNlaXZlICcg
KyBzaXplKTsKLSAgICBzb2NrZXRJbmRleCA9IChzb2NrZXRJbmRleCArIDEpICUgc29ja2V0cy5s
ZW5ndGg7Ci0KLSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAgfQotfQotCi1mdW5jdGlvbiBjcmVh
dGVTb2NrZXQoY29uZmlnKSB7Ci0gIC8vIFRPRE8odHlvc2hpbm8pOiBBZGQgVENQIHdhcm0gdXAu
Ci0gIHZhciB1cmwgPSBjb25maWcucHJlZml4VXJsOwotCi0gIGNvbmZpZy5hZGRUb0xvZygnQ29u
bmVjdCAnICsgdXJsKTsKLQotICB2YXIgc29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmwpOwotICBz
b2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBjb25maWcuYWRkVG9Mb2co
J1VuZXhwZWN0ZWQgbWVzc2FnZSByZWNlaXZlZC4gQWJvcnRpbmcuJyk7Ci0gIH07Ci0gIHNvY2tl
dC5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdFcnJvcicpOwot
ICB9OwotICBzb2NrZXQub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgY29uZmlnLmFk
ZFRvTG9nKCdDbG9zZWQnKTsKLSAgfTsKLSAgcmV0dXJuIHNvY2tldDsKLX0KLQotdmFyIHRhc2tz
ID0gW107Ci0KLWZ1bmN0aW9uIHN0YXJ0QmVuY2htYXJrKGNvbmZpZykgewotICBjbGVhclRpbWVv
dXQodGltZXJJRCk7Ci0gIGRlc3Ryb3lBbGxTb2NrZXRzKCk7Ci0KLSAgbnVtRXN0YWJsaXNoZWRT
b2NrZXRzID0gMDsKLQotICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbmZpZy5udW1Tb2NrZXRzOyAr
K2kpIHsKLSAgICB2YXIgc29ja2V0ID0gY3JlYXRlU29ja2V0KGNvbmZpZyk7Ci0gICAgc29ja2V0
Lm9ub3BlbiA9IGZ1bmN0aW9uKCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdPcGVuZWQnKTsK
LQotICAgICAgKytudW1Fc3RhYmxpc2hlZFNvY2tldHM7Ci0KLSAgICAgIGlmIChudW1Fc3RhYmxp
c2hlZFNvY2tldHMgPT0gc29ja2V0cy5sZW5ndGgpIHsKLSAgICAgICAgcnVuTmV4dFRhc2soY29u
ZmlnKTsKLSAgICAgIH0KLSAgICB9OwotICAgIHNvY2tldHMucHVzaChzb2NrZXQpOwotICB9Ci19
Ci0KLWZ1bmN0aW9uIHJ1bk5leHRUYXNrKGNvbmZpZykgewotICB2YXIgdGFzayA9IHRhc2tzLnNo
aWZ0KCk7Ci0gIGlmICh0YXNrID09IHVuZGVmaW5lZCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygn
RmluaXNoZWQnKTsKLSAgICBkZXN0cm95QWxsU29ja2V0cygpOwotICAgIHJldHVybjsKLSAgfQot
ICB0aW1lcklEID0gc2V0VGltZW91dCh0YXNrLCAwKTsKLX0KLQotZnVuY3Rpb24gYnVpbGRMZWdl
bmRTdHJpbmcoY29uZmlnKSB7Ci0gIHZhciBsZWdlbmQgPSAnJwotICBpZiAoY29uZmlnLnByaW50
U2l6ZSkKLSAgICBsZWdlbmQgPSAnTWVzc2FnZSBzaXplIGluIEtpQiwgVGltZS9tZXNzYWdlIGlu
IG1zLCAnOwotICBsZWdlbmQgKz0gJ1NwZWVkIGluIGtCL3MnOwotICByZXR1cm4gbGVnZW5kOwot
fQotCi1mdW5jdGlvbiBnZXRDb25maWdTdHJpbmcoY29uZmlnKSB7Ci0gIHJldHVybiAnKFdlYlNv
Y2tldCcgKwotICAgICcsICcgKyAodHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQi
ID8gJ1dvcmtlcicgOiAnTWFpbicpICsKLSAgICAnLCBudW1Tb2NrZXRzPScgKyBjb25maWcubnVt
U29ja2V0cyArCi0gICAgJywgbnVtSXRlcmF0aW9ucz0nICsgY29uZmlnLm51bUl0ZXJhdGlvbnMg
KwotICAgICcsIHZlcmlmeURhdGE9JyArIGNvbmZpZy52ZXJpZnlEYXRhICsKLSAgICAnLCBtaW5U
b3RhbD0nICsgY29uZmlnLm1pblRvdGFsICsKLSAgICAnLCBudW1XYXJtVXBJdGVyYXRpb25zPScg
KyBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucyArCi0gICAgJyknOwotfQotCi1mdW5jdGlvbiBh
ZGRUYXNrcyhjb25maWcsIHN0ZXBGdW5jKSB7Ci0gIGZvciAodmFyIGkgPSAwOwotICAgICAgaSA8
IGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsgY29uZmlnLm51bUl0ZXJhdGlvbnM7ICsraSkg
ewotICAgIC8vIElnbm9yZSB0aGUgZmlyc3QgfGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zfCBp
dGVyYXRpb25zLgotICAgIGlmIChpID09IGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zKQotICAg
ICAgYWRkUmVzdWx0Q2xlYXJpbmdUYXNrKGNvbmZpZyk7Ci0KLSAgICB2YXIgbXVsdGlwbGllcklu
ZGV4ID0gMDsKLSAgICBmb3IgKHZhciBzaXplID0gY29uZmlnLnN0YXJ0U2l6ZTsKLSAgICAgICAg
IHNpemUgPD0gY29uZmlnLnN0b3BUaHJlc2hvbGQ7Ci0gICAgICAgICArK211bHRpcGxpZXJJbmRl
eCkgewotICAgICAgdmFyIHRhc2sgPSBzdGVwRnVuYy5iaW5kKAotICAgICAgICAgIG51bGwsCi0g
ICAgICAgICAgc2l6ZSwKLSAgICAgICAgICBjb25maWcpOwotICAgICAgdGFza3MucHVzaCh0YXNr
KTsKLSAgICAgIHNpemUgKj0gY29uZmlnLm11bHRpcGxpZXJzWwotICAgICAgICAgIG11bHRpcGxp
ZXJJbmRleCAlIGNvbmZpZy5tdWx0aXBsaWVycy5sZW5ndGhdOwotICAgIH0KLSAgfQotfQotCi1m
dW5jdGlvbiBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywgdGl0bGUpIHsKLSAgdGFza3Mu
cHVzaChmdW5jdGlvbigpewotICAgICAgdGltZXJJRCA9IG51bGw7Ci0gICAgICBjb25maWcuYWRk
VG9TdW1tYXJ5KHRpdGxlKTsKLSAgICAgIHJlcG9ydEF2ZXJhZ2VEYXRhKGNvbmZpZyk7Ci0gICAg
ICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gICAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9KTsK
LX0KLQotZnVuY3Rpb24gYWRkUmVzdWx0Q2xlYXJpbmdUYXNrKGNvbmZpZykgewotICB0YXNrcy5w
dXNoKGZ1bmN0aW9uKCl7Ci0gICAgICB0aW1lcklEID0gbnVsbDsKLSAgICAgIGNsZWFyQXZlcmFn
ZURhdGEoKTsKLSAgICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH0pOwotfQotCi1mdW5jdGlv
biBzZW5kQmVuY2htYXJrKGNvbmZpZykgewotICBjb25maWcuYWRkVG9Mb2coJ1NlbmQgYmVuY2ht
YXJrJyk7Ci0gIGNvbmZpZy5hZGRUb0xvZyhidWlsZExlZ2VuZFN0cmluZyhjb25maWcpKTsKLQot
ICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gIGFkZFRhc2tzKGNvbmZpZywg
c2VuZEJlbmNobWFya1N0ZXApOwotICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywgJ1Nl
bmQgQmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0gIHN0YXJ0QmVuY2ht
YXJrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIHJlY2VpdmVCZW5jaG1hcmsoY29uZmlnKSB7Ci0g
IGNvbmZpZy5hZGRUb0xvZygnUmVjZWl2ZSBiZW5jaG1hcmsnKTsKLSAgY29uZmlnLmFkZFRvTG9n
KGJ1aWxkTGVnZW5kU3RyaW5nKGNvbmZpZykpOwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZl
cmFnZURhdGEoKTsKLSAgYWRkVGFza3MoY29uZmlnLCByZWNlaXZlQmVuY2htYXJrU3RlcCk7Ci0g
IGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLAotICAgICAgJ1JlY2VpdmUgQmVuY2htYXJr
ICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7
Ci19Ci0KLWZ1bmN0aW9uIGJhdGNoQmVuY2htYXJrKGNvbmZpZykgewotICBjb25maWcuYWRkVG9M
b2coJ0JhdGNoIGJlbmNobWFyaycpOwotICBjb25maWcuYWRkVG9Mb2coYnVpbGRMZWdlbmRTdHJp
bmcoY29uZmlnKSk7Ci0KLSAgdGFza3MgPSBbXTsKLSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICBh
ZGRUYXNrcyhjb25maWcsIHNlbmRCZW5jaG1hcmtTdGVwKTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5n
VGFzayhjb25maWcsICdTZW5kIEJlbmNobWFyayAnICsgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykp
OwotICBhZGRUYXNrcyhjb25maWcsIHJlY2VpdmVCZW5jaG1hcmtTdGVwKTsKLSAgYWRkUmVzdWx0
UmVwb3J0aW5nVGFzayhjb25maWcsICdSZWNlaXZlIEJlbmNobWFyayAnICsKLSAgICAgIGdldENv
bmZpZ1N0cmluZyhjb25maWcpKTsKLSAgc3RhcnRCZW5jaG1hcmsoY29uZmlnKTsKLX0KLQotZnVu
Y3Rpb24gc3RvcChjb25maWcpIHsKLSAgY2xlYXJUaW1lb3V0KHRpbWVySUQpOwotICB0aW1lcklE
ID0gbnVsbDsKLSAgY29uZmlnLmFkZFRvTG9nKCdTdG9wcGVkJyk7Ci0gIGRlc3Ryb3lBbGxTb2Nr
ZXRzKCk7Ci19Ci0KLW9ubWVzc2FnZSA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7Ci0gIHZhciBjb25m
aWcgPSBtZXNzYWdlLmRhdGEuY29uZmlnOwotICBjb25maWcuYWRkVG9Mb2cgPSB3b3JrZXJBZGRU
b0xvZzsKLSAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IHdvcmtlckFkZFRvU3VtbWFyeTsKLSAgY29u
ZmlnLm1lYXN1cmVWYWx1ZSA9IHdvcmtlck1lYXN1cmVWYWx1ZTsKLSAgaWYgKG1lc3NhZ2UuZGF0
YS50eXBlID09PSAnc2VuZEJlbmNobWFyaycpCi0gICAgc2VuZEJlbmNobWFyayhjb25maWcpOwot
ICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ3JlY2VpdmVCZW5jaG1hcmsnKQotICAg
IHJlY2VpdmVCZW5jaG1hcmsoY29uZmlnKTsKLSAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUg
PT09ICdiYXRjaEJlbmNobWFyaycpCi0gICAgYmF0Y2hCZW5jaG1hcmsoY29uZmlnKTsKLSAgZWxz
ZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdzdG9wJykKLSAgICBzdG9wKGNvbmZpZyk7Ci19
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJrX2hlbHBlcl93c2gucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDQ0YWQwYmZlZWZjNmY0NDMwNTcxYjdiNTMyMzNmYjc5NTA2MTRjZjIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
ZXhhbXBsZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDg1ICsw
LDAgQEAKLSMgQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmli
dXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkhhbmRsZXIgZm9yIGJlbmNobWFyay5odG1s
LiIiIgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAg
ICAjIFR1cm4gb2ZmIGNvbXByZXNzaW9uLgotICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nl
c3NvcnMgPSBbXQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0g
ICAgZGF0YSA9ICcnCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjb21tYW5kID0gcmVxdWVz
dC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgaWYgY29tbWFuZCBpcyBOb25l
OgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWFu
ZCwgdW5pY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1h
bmQgZGF0YTonICsgY29tbWFuZCkKLSAgICAgICAgY29tbWFuZHMgPSBjb21tYW5kLnNwbGl0KCcg
JykKLSAgICAgICAgaWYgbGVuKGNvbW1hbmRzKSA9PSAwOgotICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignSW52YWxpZCBjb21tYW5kIGRhdGE6ICcgKyBjb21tYW5kKQotCi0gICAgICAgIGlm
IGNvbW1hbmRzWzBdID09ICdyZWNlaXZlJzoKLSAgICAgICAgICAgIGlmIGxlbihjb21tYW5kcykg
IT0gMjoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ0lsbGVnYWwgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3Igc2VuZCBjb21tYW5kJyAr
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kKQotICAgICAgICAgICAgc2l6ZSA9IGlu
dChjb21tYW5kc1sxXSkKLQotICAgICAgICAgICAgIyBSZXVzZSBkYXRhIGlmIHBvc3NpYmxlLgot
ICAgICAgICAgICAgaWYgbGVuKGRhdGEpICE9IHNpemU6Ci0gICAgICAgICAgICAgICAgZGF0YSA9
ICdhJyAqIHNpemUKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShk
YXRhLCBiaW5hcnk9VHJ1ZSkKLSAgICAgICAgZWxpZiBjb21tYW5kc1swXSA9PSAnc2VuZCc6Ci0g
ICAgICAgICAgICBpZiBsZW4oY29tbWFuZHMpICE9IDI6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICdJbGxlZ2FsIG51bWJlciBvZiBh
cmd1bWVudHMgZm9yIHJlY2VpdmUgY29tbWFuZCcgKwotICAgICAgICAgICAgICAgICAgICAgICAg
Y29tbWFuZCkKLSAgICAgICAgICAgIHZlcmlmeV9kYXRhID0gY29tbWFuZHNbMV0gPT0gJzEnCi0K
LSAgICAgICAgICAgIGRhdGEgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQot
ICAgICAgICAgICAgaWYgZGF0YSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ1BheWxvYWQgbm90IHJlY2VpdmVkJykKLSAgICAgICAgICAgIHNpemUgPSBsZW4oZGF0
YSkKLQotICAgICAgICAgICAgaWYgdmVyaWZ5X2RhdGE6Ci0gICAgICAgICAgICAgICAgaWYgZGF0
YSAhPSAnYScgKiBzaXplOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdQ
YXlsb2FkIHZlcmlmaWNhdGlvbiBmYWlsZWQnKQotCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0
cmVhbS5zZW5kX21lc3NhZ2Uoc3RyKHNpemUpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjb21tYW5kOiAnICsgY29tbWFuZHNbMF0pCi0KLQot
IyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nsb3NlX3dz
aC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvY2xvc2Vfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyNmIwODM4NDA4MTI0NTM5Nzk3NjU3ZDQwZDY0Mjc4ZjFhNjQ4MWMwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUvY2xvc2Vfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotIyBDb3B5cmln
aHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLWltcG9ydCBzdHJ1Y3QKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNv
bW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHN0cmVhbQotCi0KLWRlZiB3ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9z
b2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBs
aW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgaWYgbGlu
ZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGNvZGUsIHJlYXNvbiA9IGxp
bmUuc3BsaXQoJyAnLCAxKQotICAgICAgICBpZiBjb2RlIGlzIE5vbmUgb3IgcmVhc29uIGlzIE5v
bmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2Vf
Y29ubmVjdGlvbihpbnQoY29kZSksIHJlYXNvbikKLSAgICAgICAgIyBjbG9zZV9jb25uZWN0aW9u
KCkgaW5pdGlhdGVzIGNsb3NpbmcgaGFuZHNoYWtlLiBJdCB2YWxpZGF0ZXMgY29kZQotICAgICAg
ICAjIGFuZCByZWFzb24uIElmIHlvdSB3YW50IHRvIHNlbmQgYSBicm9rZW4gY2xvc2UgZnJhbWUg
Zm9yIGEgdGVzdCwKLSAgICAgICAgIyBmb2xsb3dpbmcgY29kZSB3aWxsIGJlIHVzZWZ1bC4KLSAg
ICAgICAgIyA+IGRhdGEgPSBzdHJ1Y3QucGFjaygnIUgnLCBpbnQoY29kZSkpICsgcmVhc29uLmVu
Y29kZSgnVVRGLTgnKQotICAgICAgICAjID4gcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKHN0cmVh
bS5jcmVhdGVfY2xvc2VfZnJhbWUoZGF0YSkpCi0gICAgICAgICMgPiAjIFN1cHByZXNzIHRvIHJl
LXJlc3BvbmQgY2xpZW50IHJlc3BvbmRpbmcgY2xvc2UgZnJhbWUuCi0gICAgICAgICMgPiByYWlz
ZSBFeGNlcHRpb24oImN1c3RvbWl6ZWQgc2VydmVyIGluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFr
ZSIpCi0KLQotZGVmIHdlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZShyZXF1ZXN0
KToKLSAgICAjIFNpbXBseSBlY2hvIGEgY2xvc2Ugc3RhdHVzIGNvZGUKLSAgICBjb2RlLCByZWFz
b24gPSByZXF1ZXN0LndzX2Nsb3NlX2NvZGUsIHJlcXVlc3Qud3NfY2xvc2VfcmVhc29uCi0KLSAg
ICAjIHB5d2Vic29ja2V0IHNldHMgcHNldWRvIGNvZGUgZm9yIHJlY2VpdmluZyBhbiBlbXB0eSBi
b2R5IGNsb3NlIGZyYW1lLgotICAgIGlmIGNvZGUgPT0gY29tbW9uLlNUQVRVU19OT19TVEFUVVNf
UkVDRUlWRUQ6Ci0gICAgICAgIGNvZGUgPSBOb25lCi0gICAgICAgIHJlYXNvbiA9ICcnCi0gICAg
cmV0dXJuIGNvZGUsIHJlYXNvbgotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvZXhhbXBsZS9jb25zb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2NvbnNvbGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2NkNmQ4ZjgwNjc2Yjk5OTFlMjJk
ZmM3ZWM4NTA4MzQxMWRkZDBiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2NvbnNvbGUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDMxNyArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLUFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgot
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPCEtLQot
QSBzaW1wbGUgY29uc29sZSBmb3IgdGVzdGluZyBXZWJTb2NrZXQgc2VydmVyLgotCi1UeXBlIGFu
IGFkZHJlc3MgaW50byB0aGUgdG9wIHRleHQgaW5wdXQgYW5kIGNsaWNrIGNvbm5lY3QgdG8gZXN0
YWJsaXNoCi1XZWJTb2NrZXQuIFRoZW4sIHR5cGUgc29tZSBtZXNzYWdlIGludG8gdGhlIGJvdHRv
bSB0ZXh0IGlucHV0IGFuZCBjbGljayBzZW5kCi10byBzZW5kIHRoZSBtZXNzYWdlLiBSZWNlaXZl
ZC9zZW50IG1lc3NhZ2VzIGFuZCBjb25uZWN0aW9uIHN0YXRlIHdpbGwgYmUgc2hvd24KLW9uIHRo
ZSBtaWRkbGUgdGV4dGFyZWEuCi0tLT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5XZWJTb2Nr
ZXQgY29uc29sZTwvdGl0bGU+Ci08c2NyaXB0PgotdmFyIHNvY2tldCA9IG51bGw7Ci0KLXZhciBz
aG93VGltZVN0YW1wID0gZmFsc2U7Ci0KLXZhciBhZGRyZXNzQm94ID0gbnVsbDsKLXZhciBwcm90
b2NvbHNCb3ggPSBudWxsOwotdmFyIGxvZ0JveCA9IG51bGw7Ci12YXIgbWVzc2FnZUJveCA9IG51
bGw7Ci12YXIgZmlsZUJveCA9IG51bGw7Ci12YXIgY29kZUJveCA9IG51bGw7Ci12YXIgcmVhc29u
Qm94ID0gbnVsbDsKLQotZnVuY3Rpb24gZ2V0VGltZVN0YW1wKCkgewotICByZXR1cm4gbmV3IERh
dGUoKS5nZXRUaW1lKCk7Ci19Ci0KLWZ1bmN0aW9uIGFkZFRvTG9nKGxvZykgewotICBpZiAoc2hv
d1RpbWVTdGFtcCkgewotICAgIGxvZ0JveC52YWx1ZSArPSAnWycgKyBnZXRUaW1lU3RhbXAoKSAr
ICddICc7Ci0gIH0KLSAgbG9nQm94LnZhbHVlICs9IGxvZyArICdcbicKLSAgLy8gTGFyZ2UgZW5v
dWdoIHRvIGtlZXAgc2hvd2luZyB0aGUgbGF0ZXN0IG1lc3NhZ2UuCi0gIGxvZ0JveC5zY3JvbGxU
b3AgPSAxMDAwMDAwOwotfQotCi1mdW5jdGlvbiBzZXRiaW5hcnl0eXBlKGJpbmFyeVR5cGUpIHsK
LSAgaWYgKCFzb2NrZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwotICAgIHJl
dHVybjsKLSAgfQotCi0gIHNvY2tldC5iaW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKLSAgYWRkVG9M
b2coJ1NldCBiaW5hcnlUeXBlIHRvICcgKyBiaW5hcnlUeXBlKTsKLX0KLQotZnVuY3Rpb24gc2Vu
ZCgpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwot
ICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5zZW5kKG1lc3NhZ2VCb3gudmFsdWUpOwotICBh
ZGRUb0xvZygnPiAnICsgbWVzc2FnZUJveC52YWx1ZSk7Ci0gIG1lc3NhZ2VCb3gudmFsdWUgPSAn
JzsKLX0KLQotZnVuY3Rpb24gc2VuZGZpbGUoKSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRk
VG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICB2YXIgZmlsZXMg
PSBmaWxlQm94LmZpbGVzOwotCi0gIGlmIChmaWxlcy5sZW5ndGggPT0gMCkgewotICAgIGFkZFRv
TG9nKCdGaWxlIG5vdCBzZWxlY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5z
ZW5kKGZpbGVzWzBdKTsKLSAgYWRkVG9Mb2coJz4gU2VuZCAnICsgZmlsZXNbMF0ubmFtZSk7Ci19
Ci0KLWZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xzKHByb3RvY29sc1RleHQpIHsKLSAgdmFyIHByb3Rv
Y29scyA9IHByb3RvY29sc1RleHQuc3BsaXQoJywnKTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBw
cm90b2NvbHMubGVuZ3RoOyArK2kpIHsKLSAgICBwcm90b2NvbHNbaV0gPSBwcm90b2NvbHNbaV0u
dHJpbSgpOwotICB9Ci0KLSAgaWYgKHByb3RvY29scy5sZW5ndGggPT0gMCkgewotICAgIC8vIERv
bid0IHBhc3MuCi0gICAgcHJvdG9jb2xzID0gbnVsbDsKLSAgfSBlbHNlIGlmIChwcm90b2NvbHMu
bGVuZ3RoID09IDEpIHsKLSAgICBpZiAocHJvdG9jb2xzWzBdLmxlbmd0aCA9PSAwKSB7Ci0gICAg
ICAvLyBEb24ndCBwYXNzLgotICAgICAgcHJvdG9jb2xzID0gbnVsbDsKLSAgICB9IGVsc2Ugewot
ICAgICAgLy8gUGFzcyBhcyBhIHN0cmluZy4KLSAgICAgIHByb3RvY29scyA9IHByb3RvY29sc1sw
XTsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gcHJvdG9jb2xzOwotfQotCi1mdW5jdGlvbiBjb25u
ZWN0KCkgewotICB2YXIgdXJsID0gYWRkcmVzc0JveC52YWx1ZTsKLSAgdmFyIHByb3RvY29scyA9
IHBhcnNlUHJvdG9jb2xzKHByb3RvY29sc0JveC52YWx1ZSk7Ci0KLSAgaWYgKCdXZWJTb2NrZXQn
IGluIHdpbmRvdykgewotICAgIGlmIChwcm90b2NvbHMpIHsKLSAgICAgIHNvY2tldCA9IG5ldyBX
ZWJTb2NrZXQodXJsLCBwcm90b2NvbHMpOwotICAgIH0gZWxzZSB7Ci0gICAgICBzb2NrZXQgPSBu
ZXcgV2ViU29ja2V0KHVybCk7Ci0gICAgfQotICB9IGVsc2UgewotICAgIHJldHVybjsKLSAgfQot
Ci0gIHNvY2tldC5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGV4dHJhSW5mbyA9IFtd
OwotICAgIGlmICgoJ3Byb3RvY29sJyBpbiBzb2NrZXQpICYmIHNvY2tldC5wcm90b2NvbCkgewot
ICAgICAgZXh0cmFJbmZvLnB1c2goJ3Byb3RvY29sID0gJyArIHNvY2tldC5wcm90b2NvbCk7Ci0g
ICAgfQotICAgIGlmICgoJ2V4dGVuc2lvbnMnIGluIHNvY2tldCkgJiYgc29ja2V0LmV4dGVuc2lv
bnMpIHsKLSAgICAgIGV4dHJhSW5mby5wdXNoKCdleHRlbnNpb25zID0gJyArIHNvY2tldC5leHRl
bnNpb25zKTsKLSAgICB9Ci0KLSAgICB2YXIgbG9nTWVzc2FnZSA9ICdPcGVuZWQnOwotICAgIGlm
IChleHRyYUluZm8ubGVuZ3RoID4gMCkgewotICAgICAgbG9nTWVzc2FnZSArPSAnICgnICsgZXh0
cmFJbmZvLmpvaW4oJywgJykgKyAnKSc7Ci0gICAgfQotICAgIGFkZFRvTG9nKGxvZ01lc3NhZ2Up
OwotICB9OwotICBzb2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgaWYg
KCgnQXJyYXlCdWZmZXInIGluIHdpbmRvdykgJiYgKGV2ZW50LmRhdGEgaW5zdGFuY2VvZiBBcnJh
eUJ1ZmZlcikpIHsKLSAgICAgIGFkZFRvTG9nKCc8IFJlY2VpdmVkIGFuIEFycmF5QnVmZmVyIG9m
ICcgKyBldmVudC5kYXRhLmJ5dGVMZW5ndGggKwotICAgICAgICAgICAgICAgJyBieXRlcycpCi0g
ICAgfSBlbHNlIGlmICgoJ0Jsb2InIGluIHdpbmRvdykgJiYgKGV2ZW50LmRhdGEgaW5zdGFuY2Vv
ZiBCbG9iKSkgewotICAgICAgYWRkVG9Mb2coJzwgUmVjZWl2ZWQgYSBCbG9iIG9mICcgKyBldmVu
dC5kYXRhLnNpemUgKyAnIGJ5dGVzJykKLSAgICB9IGVsc2UgewotICAgICAgYWRkVG9Mb2coJzwg
JyArIGV2ZW50LmRhdGEpOwotICAgIH0KLSAgfTsKLSAgc29ja2V0Lm9uZXJyb3IgPSBmdW5jdGlv
biAoKSB7Ci0gICAgYWRkVG9Mb2coJ0Vycm9yJyk7Ci0gIH07Ci0gIHNvY2tldC5vbmNsb3NlID0g
ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgdmFyIGxvZ01lc3NhZ2UgPSAnQ2xvc2VkICgnOwotICAg
IGlmICgoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSAmJiAoJ0Nsb3NlRXZlbnQnIGluIHdpbmRvdykg
JiYKLSAgICAgICAgKGV2ZW50IGluc3RhbmNlb2YgQ2xvc2VFdmVudCkpIHsKLSAgICAgIGxvZ01l
c3NhZ2UgKz0gJ3dhc0NsZWFuID0gJyArIGV2ZW50Lndhc0NsZWFuOwotICAgICAgLy8gY29kZSBh
bmQgcmVhc29uIGFyZSBwcmVzZW50IG9ubHkgZm9yCi0gICAgICAvLyBkcmFmdC1pZXRmLWh5Ymkt
dGhld2Vic29ja2V0cHJvdG9jb2wtMDYgYW5kIGxhdGVyCi0gICAgICBpZiAoJ2NvZGUnIGluIGV2
ZW50KSB7Ci0gICAgICAgIGxvZ01lc3NhZ2UgKz0gJywgY29kZSA9ICcgKyBldmVudC5jb2RlOwot
ICAgICAgfQotICAgICAgaWYgKCdyZWFzb24nIGluIGV2ZW50KSB7Ci0gICAgICAgIGxvZ01lc3Nh
Z2UgKz0gJywgcmVhc29uID0gJyArIGV2ZW50LnJlYXNvbjsKLSAgICAgIH0KLSAgICB9IGVsc2Ug
ewotICAgICAgbG9nTWVzc2FnZSArPSAnQ2xvc2VFdmVudCBpcyBub3QgYXZhaWxhYmxlJzsKLSAg
ICB9Ci0gICAgYWRkVG9Mb2cobG9nTWVzc2FnZSArICcpJyk7Ci0gIH07Ci0KLSAgaWYgKHByb3Rv
Y29scykgewotICAgIGFkZFRvTG9nKCdDb25uZWN0ICcgKyB1cmwgKyAnIChwcm90b2NvbHMgPSAn
ICsgcHJvdG9jb2xzICsgJyknKTsKLSAgfSBlbHNlIHsKLSAgICBhZGRUb0xvZygnQ29ubmVjdCAn
ICsgdXJsKTsKLSAgfQotfQotCi1mdW5jdGlvbiBjbG9zZVNvY2tldCgpIHsKLSAgaWYgKCFzb2Nr
ZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQot
Ci0gIGlmIChjb2RlQm94LnZhbHVlIHx8IHJlYXNvbkJveC52YWx1ZSkgewotICAgIHNvY2tldC5j
bG9zZShjb2RlQm94LnZhbHVlLCByZWFzb25Cb3gudmFsdWUpOwotICB9IGVsc2UgewotICAgIHNv
Y2tldC5jbG9zZSgpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHByaW50U3RhdGUoKSB7Ci0gIGlmICgh
c29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0g
IH0KLQotICBhZGRUb0xvZygKLSAgICAgICd1cmwgPSAnICsgc29ja2V0LnVybCArCi0gICAgICAn
LCByZWFkeVN0YXRlID0gJyArIHNvY2tldC5yZWFkeVN0YXRlICsKLSAgICAgICcsIGJ1ZmZlcmVk
QW1vdW50ID0gJyArIHNvY2tldC5idWZmZXJlZEFtb3VudCk7Ci19Ci0KLWZ1bmN0aW9uIGluaXQo
KSB7Ci0gIHZhciBzY2hlbWUgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicg
PyAnd3NzOi8vJyA6ICd3czovLyc7Ci0gIHZhciBkZWZhdWx0QWRkcmVzcyA9IHNjaGVtZSArIHdp
bmRvdy5sb2NhdGlvbi5ob3N0ICsgJy9lY2hvJzsKLQotICBhZGRyZXNzQm94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2FkZHJlc3MnKTsKLSAgcHJvdG9jb2xzQm94ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Byb3RvY29scycpOwotICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbG9nJyk7Ci0gIG1lc3NhZ2VCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVz
c2FnZScpOwotICBmaWxlQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGUnKTsKLSAg
Y29kZUJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb2RlJyk7Ci0gIHJlYXNvbkJveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWFzb24nKTsKLQotICBhZGRyZXNzQm94LnZhbHVl
ID0gZGVmYXVsdEFkZHJlc3M7Ci0KLSAgaWYgKCEoJ1dlYlNvY2tldCcgaW4gd2luZG93KSkgewot
ICAgIGFkZFRvTG9nKCdXZWJTb2NrZXQgaXMgbm90IGF2YWlsYWJsZScpOwotICB9Ci19Ci08L3Nj
cmlwdD4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci1mb3JtIHsKLSAgbWFyZ2luOiAwcHg7Ci19
Ci0KLSNjb25uZWN0X2RpdiwgI2xvZ19kaXYsICNzZW5kX2RpdiwgI3NlbmRmaWxlX2RpdiwgI2Ns
b3NlX2RpdiwgI3ByaW50c3RhdGVfZGl2IHsKLSAgcGFkZGluZzogNXB4OwotICBtYXJnaW46IDVw
eDsKLSAgYm9yZGVyLXdpZHRoOiAwcHggMHB4IDBweCAxMHB4OwotICBib3JkZXItc3R5bGU6IHNv
bGlkOwotICBib3JkZXItY29sb3I6IHNpbHZlcjsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9ImluaXQoKSI+Ci0KLTxkaXY+Ci0KLTxkaXYgaWQ9ImNvbm5lY3RfZGl2Ij4KLSAg
PGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0iY29ubmVjdCgpOyByZXR1cm4gZmFsc2U7Ij4KLSAg
ICB1cmwgPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+Ci0gICAgPGlu
cHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ImNvbm5lY3QiPgotICAgIDxici8+Ci0gICAgcHJvdG9j
b2xzIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icHJvdG9jb2xzIiBzaXplPSIyMCI+Ci0gIDwvZm9y
bT4KLTwvZGl2PgotCi08ZGl2IGlkPSJsb2dfZGl2Ij4KLSAgPHRleHRhcmVhIGlkPSJsb2ciIHJv
d3M9IjEwIiBjb2xzPSI0MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLSAgPGJyLz4KLSAgPGlucHV0
IHR5cGU9ImNoZWNrYm94IgotICAgICAgICAgbmFtZT0ic2hvd3RpbWVzdGFtcCIKLSAgICAgICAg
IHZhbHVlPSJzaG93dGltZXN0YW1wIgotICAgICAgICAgb25jbGljaz0ic2hvd1RpbWVTdGFtcCA9
IHRoaXMuY2hlY2tlZCI+U2hvdyB0aW1lIHN0YW1wCi08L2Rpdj4KLQotPGRpdiBpZD0ic2VuZF9k
aXYiPgotICA8Zm9ybSBhY3Rpb249IiMiIG9uc3VibWl0PSJzZW5kKCk7IHJldHVybiBmYWxzZTsi
PgotICAgIGRhdGEgPGlucHV0IHR5cGU9InRleHQiIGlkPSJtZXNzYWdlIiBzaXplPSI0MCI+Ci0g
ICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9InNlbmQiPgotICA8L2Zvcm0+Ci08L2Rpdj4K
LQotPGRpdiBpZD0ic2VuZGZpbGVfZGl2Ij4KLSAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0i
c2VuZGZpbGUoKTsgcmV0dXJuIGZhbHNlOyI+Ci0gICAgPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJm
aWxlIiBzaXplPSI0MCI+Ci0gICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9InNlbmQgZmls
ZSI+Ci0gIDwvZm9ybT4KLQotICBTZXQgYmluYXJ5VHlwZQotICA8aW5wdXQgdHlwZT0icmFkaW8i
Ci0gICAgICAgICBuYW1lPSJiaW5hcnl0eXBlIgotICAgICAgICAgdmFsdWU9ImJsb2IiCi0gICAg
ICAgICBvbmNsaWNrPSJzZXRiaW5hcnl0eXBlKCdibG9iJykiIGNoZWNrZWQ+YmxvYgotICA8aW5w
dXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJiaW5hcnl0eXBlIgotICAgICAgICAgdmFs
dWU9ImFycmF5YnVmZmVyIgotICAgICAgICAgb25jbGljaz0ic2V0YmluYXJ5dHlwZSgnYXJyYXli
dWZmZXInKSI+YXJyYXlidWZmZXIKLTwvZGl2PgotCi08ZGl2IGlkPSJjbG9zZV9kaXYiPgotICA8
Zm9ybSBhY3Rpb249IiMiIG9uc3VibWl0PSJjbG9zZVNvY2tldCgpOyByZXR1cm4gZmFsc2U7Ij4K
LSAgICBjb2RlIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY29kZSIgc2l6ZT0iMTAiPgotICAgIHJl
YXNvbiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlYXNvbiIgc2l6ZT0iMjAiPgotICAgIDxpbnB1
dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJjbG9zZSI+Ci0gIDwvZm9ybT4KLTwvZGl2PgotCi08ZGl2
IGlkPSJwcmludHN0YXRlX2RpdiI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJwcmlu
dCBzdGF0ZSIgb25jbGljaz0icHJpbnRTdGF0ZSgpOyI+Ci08L2Rpdj4KLQotPC9kaXY+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvY29va2llX3dzaC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL2V4YW1wbGUvY29va2llX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOGIzMjcxNTJlNzAxZjdkMjAzMWQ3YzljZTA0NjI0Y2ZhODRhYzE2ZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxl
L2Nvb2tpZV93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0jIENvcHlyaWdo
dCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFVzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0jIGxpY2Vuc2UgdGhhdCBj
YW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotIyBodHRwczovL2RldmVsb3Bl
cnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotCi1pbXBvcnQgdXJscGFy
c2UKLQotCi1kZWYgX2FkZF9zZXRfY29va2llKHJlcXVlc3QsIHZhbHVlKToKLSAgICByZXF1ZXN0
LmV4dHJhX2hlYWRlcnMuYXBwZW5kKCgnU2V0LUNvb2tpZScsIHZhbHVlKSkKLQotCi1kZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgY29tcG9uZW50cyA9IHVy
bHBhcnNlLnVybHBhcnNlKHJlcXVlc3QudXJpKQotICAgIGNvbW1hbmQgPSBjb21wb25lbnRzWzRd
Ci0KLSAgICBPTkVfREFZX0xJRkUgPSAnTWF4LUFnZT04NjQwMCcKLQotICAgIGlmIGNvbW1hbmQg
PT0gJ3NldCc6Ci0gICAgICAgIF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCAnOyAnLmpvaW4oWydm
b289YmFyJywgT05FX0RBWV9MSUZFXSkpCi0gICAgZWxpZiBjb21tYW5kID09ICdzZXRfaHR0cG9u
bHknOgotICAgICAgICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwKLSAgICAgICAgICAgICc7ICcu
am9pbihbJ2h0dHBPbmx5Rm9vPWJhcicsIE9ORV9EQVlfTElGRSwgJ2h0dHBPbmx5J10pKQotICAg
IGVsaWYgY29tbWFuZCA9PSAnY2xlYXInOgotICAgICAgICBfYWRkX3NldF9jb29raWUocmVxdWVz
dCwgJ2Zvbz0wOyBNYXgtQWdlPTAnKQotICAgICAgICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwg
J2h0dHBPbmx5Rm9vPTA7IE1heC1BZ2U9MCcpCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KToKLSAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Vj
aG9fY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX2NsaWVudC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTQzY2U2NGU4Yjg4NjU2MmZjNjkyMDk4MzRiZjkyYjEzOTkx
NDJmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9leGFtcGxlL2VjaG9fY2xpZW50LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTEyOCArMCww
IEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlNp
bXBsZSBXZWJTb2NrZXQgY2xpZW50IG5hbWVkIGVjaG9fY2xpZW50IGp1c3QgYmVjYXVzZSBvZiBo
aXN0b3JpY2FsIHJlYXNvbi4KLQotbW9kX3B5d2Vic29ja2V0IGRpcmVjdG9yeSBtdXN0IGJlIGlu
IFBZVEhPTlBBVEguCi0KLUV4YW1wbGUgVXNhZ2U6Ci0KLSMgc2VydmVyIHNldHVwCi0gJSBjZCAk
cHl3ZWJzb2NrZXQKLSAlIFBZVEhPTlBBVEg9JGN3ZC9zcmMgcHl0aG9uIC4vbW9kX3B5d2Vic29j
a2V0L3N0YW5kYWxvbmUucHkgLXAgODg4MCBcCi0gICAgLWQgJGN3ZC9zcmMvZXhhbXBsZQotCi0j
IHJ1biBjbGllbnQKLSAlIFBZVEhPTlBBVEg9JGN3ZC9zcmMgcHl0aG9uIC4vc3JjL2V4YW1wbGUv
ZWNob19jbGllbnQucHkgLXAgODg4MCBcCi0gICAgIC1zIGxvY2FsaG9zdCBcCi0gICAgIC1vIGh0
dHA6Ly9sb2NhbGhvc3QgLXIgL2VjaG8gLW0gdGVzdAotCi1vcgotCi0jIHJ1biBlY2hvIGNsaWVu
dCB0byB0ZXN0IElFVEYgSHlCaSAwMCBwcm90b2NvbAotIHJ1biB3aXRoIC0tcHJvdG9jb2wtdmVy
c2lvbj1oeWJpMDAKLSIiIgotCi0KLWltcG9ydCBiYXNlNjQKLWltcG9ydCBjb2RlY3MKLWltcG9y
dCBsb2dnaW5nCi1mcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIKLWltcG9ydCBvcwot
aW1wb3J0IHJhbmRvbQotaW1wb3J0IHJlCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgc3RydWN0Ci1p
bXBvcnQgc3lzCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nl
c3NvcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgUGVyTWVzc2FnZURl
ZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMg
aW1wb3J0IF9QZXJNZXNzYWdlRGVmbGF0ZUZyYW1lcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0
ZW5zaW9ucyBpbXBvcnQgX3BhcnNlX3dpbmRvd19iaXRzCi1mcm9tIG1vZF9weXdlYnNvY2tldC5z
dHJlYW0gaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBT
dHJlYW1IaXhpZTc1Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbU9w
dGlvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQotX1RJTUVPVVRfU0VD
ID0gMTAKLV9VTkRFRklORURfUE9SVCA9IC0xCi0KLV9VUEdSQURFX0hFQURFUiA9ICdVcGdyYWRl
OiB3ZWJzb2NrZXRcclxuJwotX1VQR1JBREVfSEVBREVSX0hJWElFNzUgPSAnVXBncmFkZTogV2Vi
U29ja2V0XHJcbicKLV9DT05ORUNUSU9OX0hFQURFUiA9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJc
bicKLQotIyBTcGVjaWFsIG1lc3NhZ2UgdGhhdCB0ZWxscyB0aGUgZWNobyBzZXJ2ZXIgdG8gc3Rh
cnQgY2xvc2luZyBoYW5kc2hha2UKLV9HT09EQllFX01FU1NBR0UgPSAnR29vZGJ5ZScKLQotX1BS
T1RPQ09MX1ZFUlNJT05fSFlCSTEzID0gJ2h5YmkxMycKLV9QUk9UT0NPTF9WRVJTSU9OX0hZQkkw
OCA9ICdoeWJpMDgnCi1fUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDAgPSAnaHliaTAwJwotX1BST1RP
Q09MX1ZFUlNJT05fSElYSUU3NSA9ICdoaXhpZTc1JwotCi0jIENvbnN0YW50cyBmb3IgdGhlIC0t
dGxzX21vZHVsZSBmbGFnLgotX1RMU19CWV9TVEFOREFSRF9NT0RVTEUgPSAnc3NsJwotX1RMU19C
WV9QWU9QRU5TU0wgPSAncHlvcGVuc3NsJwotCi0jIFZhbHVlcyB1c2VkIGJ5IHRoZSAtLXRscy12
ZXJzaW9uIGZsYWcuCi1fVExTX1ZFUlNJT05fU1NMMjMgPSAnc3NsMjMnCi1fVExTX1ZFUlNJT05f
U1NMMyA9ICdzc2wzJwotX1RMU19WRVJTSU9OX1RMUzEgPSAndGxzMScKLQotCi1jbGFzcyBDbGll
bnRIYW5kc2hha2VFcnJvcihFeGNlcHRpb24pOgotICAgIHBhc3MKLQotCi1kZWYgX2J1aWxkX21l
dGhvZF9saW5lKHJlc291cmNlKToKLSAgICByZXR1cm4gJ0dFVCAlcyBIVFRQLzEuMVxyXG4nICUg
cmVzb3VyY2UKLQotCi1kZWYgX29yaWdpbl9oZWFkZXIoaGVhZGVyLCBvcmlnaW4pOgotICAgICMg
NC4xIDEzLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgIk9yaWdpbjoiLCBhIFUrMDAyMCBT
UEFDRSBjaGFyYWN0ZXIsCi0gICAgIyBhbmQgdGhlIC9vcmlnaW4vIHZhbHVlLCBjb252ZXJ0ZWQg
dG8gQVNDSUkgbG93ZXJjYXNlLCB0byAvZmllbGRzLy4KLSAgICByZXR1cm4gJyVzOiAlc1xyXG4n
ICUgKGhlYWRlciwgb3JpZ2luLmxvd2VyKCkpCi0KLQotZGVmIF9mb3JtYXRfaG9zdF9oZWFkZXIo
aG9zdCwgcG9ydCwgc2VjdXJlKToKLSAgICAjIDQuMSA5LiBMZXQgL2hvc3Rwb3J0LyBiZSBhbiBl
bXB0eSBzdHJpbmcuCi0gICAgIyA0LjEgMTAuIEFwcGVuZCB0aGUgL2hvc3QvIHZhbHVlLCBjb252
ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0bwotICAgICMgL2hvc3Rwb3J0LwotICAgIGhvc3Rw
b3J0ID0gaG9zdC5sb3dlcigpCi0gICAgIyA0LjEgMTEuIElmIC9zZWN1cmUvIGlzIGZhbHNlLCBh
bmQgL3BvcnQvIGlzIG5vdCA4MCwgb3IgaWYgL3NlY3VyZS8KLSAgICAjIGlzIHRydWUsIGFuZCAv
cG9ydC8gaXMgbm90IDQ0MywgdGhlbiBhcHBlbmQgYSBVKzAwM0EgQ09MT04gY2hhcmFjdGVyCi0g
ICAgIyAoOikgZm9sbG93ZWQgYnkgdGhlIHZhbHVlIG9mIC9wb3J0LywgZXhwcmVzc2VkIGFzIGEg
YmFzZS10ZW4gaW50ZWdlciwKLSAgICAjIHRvIC9ob3N0cG9ydC8KLSAgICBpZiAoKG5vdCBzZWN1
cmUgYW5kIHBvcnQgIT0gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUKSBvcgotICAgICAg
ICAoc2VjdXJlIGFuZCBwb3J0ICE9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfU0VDVVJFX1BP
UlQpKToKLSAgICAgICAgaG9zdHBvcnQgKz0gJzonICsgc3RyKHBvcnQpCi0gICAgIyA0LjEgMTIu
IGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZyAiSG9zdDoiLCBhIFUrMDAyMCBTUEFDRQotICAg
ICMgY2hhcmFjdGVyLCBhbmQgL2hvc3Rwb3J0LywgdG8gL2ZpZWxkcy8uCi0gICAgcmV0dXJuICcl
czogJXNcclxuJyAlIChjb21tb24uSE9TVF9IRUFERVIsIGhvc3Rwb3J0KQotCi0KLWRlZiBfcmVj
ZWl2ZV9ieXRlcyhzb2NrZXQsIGxlbmd0aCk6Ci0gICAgYnl0ZXMgPSBbXQotICAgIHJlbWFpbmlu
ZyA9IGxlbmd0aAotICAgIHdoaWxlIHJlbWFpbmluZyA+IDA6Ci0gICAgICAgIHJlY2VpdmVkX2J5
dGVzID0gc29ja2V0LnJlY3YocmVtYWluaW5nKQotICAgICAgICBpZiBub3QgcmVjZWl2ZWRfYnl0
ZXM6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKAotICAgICAgICAgICAgICAgICdDb25uZWN0
aW9uIGNsb3NlZCBiZWZvcmUgcmVjZWl2aW5nIHJlcXVlc3RlZCBsZW5ndGggJwotICAgICAgICAg
ICAgICAgICcocmVxdWVzdGVkICVkIGJ5dGVzIGJ1dCByZWNlaXZlZCBvbmx5ICVkIGJ5dGVzKScg
JQotICAgICAgICAgICAgICAgIChsZW5ndGgsIGxlbmd0aCAtIHJlbWFpbmluZykpCi0gICAgICAg
IGJ5dGVzLmFwcGVuZChyZWNlaXZlZF9ieXRlcykKLSAgICAgICAgcmVtYWluaW5nIC09IGxlbihy
ZWNlaXZlZF9ieXRlcykKLSAgICByZXR1cm4gJycuam9pbihieXRlcykKLQotCi1kZWYgX2dldF9t
YW5kYXRvcnlfaGVhZGVyKGZpZWxkcywgbmFtZSk6Ci0gICAgIiIiR2V0cyB0aGUgdmFsdWUgb2Yg
dGhlIGhlYWRlciBzcGVjaWZpZWQgYnkgbmFtZSBmcm9tIGZpZWxkcy4KLQotICAgIFRoaXMgZnVu
Y3Rpb24gZXhwZWN0cyB0aGF0IHRoZXJlJ3Mgb25seSBvbmUgaGVhZGVyIHdpdGggdGhlIHNwZWNp
ZmllZCBuYW1lCi0gICAgaW4gZmllbGRzLiBPdGhlcndpc2UsIHJhaXNlcyBhbiBDbGllbnRIYW5k
c2hha2VFcnJvci4KLSAgICAiIiIKLQotICAgIHZhbHVlcyA9IGZpZWxkcy5nZXQobmFtZS5sb3dl
cigpKQotICAgIGlmIHZhbHVlcyBpcyBOb25lIG9yIGxlbih2YWx1ZXMpID09IDA6Ci0gICAgICAg
IHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgJyVzIGhlYWRlciBub3Qg
Zm91bmQ6ICVyJyAlIChuYW1lLCB2YWx1ZXMpKQotICAgIGlmIGxlbih2YWx1ZXMpID4gMToKLSAg
ICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAnTXVsdGlwbGUg
JXMgaGVhZGVycyBmb3VuZDogJXInICUgKG5hbWUsIHZhbHVlcykpCi0gICAgcmV0dXJuIHZhbHVl
c1swXQotCi0KLWRlZiBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcihmaWVsZHMsIG5hbWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdmFsdWUsIGNhc2Vfc2Vuc2l0
aXZlPUZhbHNlKToKLSAgICAiIiJHZXRzIGFuZCB2YWxpZGF0ZXMgdGhlIHZhbHVlIG9mIHRoZSBo
ZWFkZXIgc3BlY2lmaWVkIGJ5IG5hbWUgZnJvbQotICAgIGZpZWxkcy4KLQotICAgIElmIGV4cGVj
dGVkX3ZhbHVlIGlzIHNwZWNpZmllZCwgY29tcGFyZXMgZXhwZWN0ZWQgdmFsdWUgYW5kIGFjdHVh
bCB2YWx1ZQotICAgIGFuZCByYWlzZXMgYW4gQ2xpZW50SGFuZHNoYWtlRXJyb3Igb24gZmFpbHVy
ZS4gWW91IGNhbiBzcGVjaWZ5IGNhc2UKLSAgICBzZW5zaXRpdmVuZXNzIGluIHRoaXMgY29tcGFy
aXNvbiBieSBjYXNlX3NlbnNpdGl2ZSBwYXJhbWV0ZXIuIFRoaXMgZnVuY3Rpb24KLSAgICBleHBl
Y3RzIHRoYXQgdGhlcmUncyBvbmx5IG9uZSBoZWFkZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUg
aW4gZmllbGRzLgotICAgIE90aGVyd2lzZSwgcmFpc2VzIGFuIENsaWVudEhhbmRzaGFrZUVycm9y
LgotICAgICIiIgotCi0gICAgdmFsdWUgPSBfZ2V0X21hbmRhdG9yeV9oZWFkZXIoZmllbGRzLCBu
YW1lKQotCi0gICAgaWYgKChjYXNlX3NlbnNpdGl2ZSBhbmQgdmFsdWUgIT0gZXhwZWN0ZWRfdmFs
dWUpIG9yCi0gICAgICAgIChub3QgY2FzZV9zZW5zaXRpdmUgYW5kIHZhbHVlLmxvd2VyKCkgIT0g
ZXhwZWN0ZWRfdmFsdWUubG93ZXIoKSkpOgotICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VF
cnJvcigKLSAgICAgICAgICAgICdJbGxlZ2FsIHZhbHVlIGZvciBoZWFkZXIgJXM6ICVyIChleHBl
Y3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgIChuYW1lLCBleHBlY3RlZF92YWx1
ZSwgdmFsdWUpKQotCi0KLWNsYXNzIF9UTFNTb2NrZXQob2JqZWN0KToKLSAgICAiIiJXcmFwcGVy
IGZvciBhIFRMUyBjb25uZWN0aW9uLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsCi0gICAg
ICAgICAgICAgICAgIHJhd19zb2NrZXQsIHRsc19tb2R1bGUsIHRsc192ZXJzaW9uLCBkaXNhYmxl
X3Rsc19jb21wcmVzc2lvbik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQotCi0gICAgICAgIGlmIHRsc19tb2R1bGUgPT0gX1RMU19CWV9TVEFOREFS
RF9NT0RVTEU6Ci0gICAgICAgICAgICBpZiB0bHNfdmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fU1NM
MjM6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9IHNzbC5QUk9UT0NPTF9TU0x2MjMKLSAgICAg
ICAgICAgIGVsaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1NTTDM6Ci0gICAgICAgICAg
ICAgICAgdmVyc2lvbiA9IHNzbC5QUk9UT0NPTF9TU0x2MwotICAgICAgICAgICAgZWxpZiB0bHNf
dmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fVExTMToKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0g
c3NsLlBST1RPQ09MX1RMU3YxCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdJbnZhbGlkIC0tdGxzLXZlcnNp
b24gZmxhZzogJXInICUgdGxzX3ZlcnNpb24pCi0KLSAgICAgICAgICAgIGlmIGRpc2FibGVfdGxz
X2NvbXByZXNzaW9uOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAg
ICAgICAgICAgICAgICctLWRpc2FibGUtdGxzLWNvbXByZXNzaW9uIGlzIG5vdCBhdmFpbGFibGUg
Zm9yIHNzbCAnCi0gICAgICAgICAgICAgICAgICAgICdtb2R1bGUnKQotCi0gICAgICAgICAgICBz
ZWxmLl90bHNfc29ja2V0ID0gc3NsLndyYXBfc29ja2V0KHJhd19zb2NrZXQsIHNzbF92ZXJzaW9u
PXZlcnNpb24pCi0KLSAgICAgICAgICAgICMgUHJpbnQgY2lwaGVyIGluIHVzZS4gSGFuZHNoYWtl
IGlzIGRvbmUgb24gd3JhcF9zb2NrZXQgY2FsbC4KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKCJDaXBoZXI6ICVzIiwgc2VsZi5fdGxzX3NvY2tldC5jaXBoZXIoKSkKLSAgICAgICAgZWxp
ZiB0bHNfbW9kdWxlID09IF9UTFNfQllfUFlPUEVOU1NMOgotICAgICAgICAgICAgaWYgdGxzX3Zl
cnNpb24gPT0gX1RMU19WRVJTSU9OX1NTTDIzOgotICAgICAgICAgICAgICAgIHZlcnNpb24gPSBP
cGVuU1NMLlNTTC5TU0x2MjNfTUVUSE9ECi0gICAgICAgICAgICBlbGlmIHRsc192ZXJzaW9uID09
IF9UTFNfVkVSU0lPTl9TU0wzOgotICAgICAgICAgICAgICAgIHZlcnNpb24gPSBPcGVuU1NMLlNT
TC5TU0x2M19NRVRIT0QKLSAgICAgICAgICAgIGVsaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJT
SU9OX1RMUzE6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9IE9wZW5TU0wuU1NMLlRMU3YxX01F
VEhPRAotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KAotICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCAtLXRscy12ZXJzaW9uIGZsYWc6ICVyJyAl
IHRsc192ZXJzaW9uKQotCi0gICAgICAgICAgICBjb250ZXh0ID0gT3BlblNTTC5TU0wuQ29udGV4
dCh2ZXJzaW9uKQotCi0gICAgICAgICAgICBpZiBkaXNhYmxlX3Rsc19jb21wcmVzc2lvbjoKLSAg
ICAgICAgICAgICAgICAjIE9QX05PX0NPTVBSRVNTSU9OIGlzIG5vdCBkZWZpbmVkIGluIE9wZW5T
U0wgbW9kdWxlLgotICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0X29wdGlvbnMoMHgwMDAyMDAw
MCkKLQotICAgICAgICAgICAgc2VsZi5fdGxzX3NvY2tldCA9IE9wZW5TU0wuU1NMLkNvbm5lY3Rp
b24oY29udGV4dCwgcmF3X3NvY2tldCkKLSAgICAgICAgICAgICMgQ2xpZW50IG1vZGUuCi0gICAg
ICAgICAgICBzZWxmLl90bHNfc29ja2V0LnNldF9jb25uZWN0X3N0YXRlKCkKLSAgICAgICAgICAg
IHNlbGYuX3Rsc19zb2NrZXQuc2V0YmxvY2tpbmcoVHJ1ZSkKLQotICAgICAgICAgICAgIyBEbyBo
YW5kc2hha2Ugbm93IChub3QgbmVjZXNzYXJ5KS4KLSAgICAgICAgICAgIHNlbGYuX3Rsc19zb2Nr
ZXQuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ05vIFRMUyBzdXBwb3J0IG1vZHVsZSBpcyBhdmFpbGFibGUnKQotCi0gICAgZGVmIHNl
bmQoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNfc29ja2V0LndyaXRlKGRh
dGEpCi0KLSAgICBkZWYgc2VuZGFsbChzZWxmLCBkYXRhKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
X3Rsc19zb2NrZXQuc2VuZGFsbChkYXRhKQotCi0gICAgZGVmIHJlY3Yoc2VsZiwgc2l6ZT0tMSk6
Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNfc29ja2V0LnJlYWQoc2l6ZSkKLQotICAgIGRlZiBj
bG9zZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19zb2NrZXQuY2xvc2UoKQotCi0g
ICAgZGVmIGdldHBlZXJuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tl
dC5nZXRwZWVybmFtZSgpCi0KLQotY2xhc3MgQ2xpZW50SGFuZHNoYWtlQmFzZShvYmplY3QpOgot
ICAgICIiIkEgYmFzZSBjbGFzcyBmb3IgV2ViU29ja2V0IG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nl
c3NvcnMgZm9yIGVhY2gKLSAgICBwcm90b2NvbCB2ZXJzaW9uLgotICAgICIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19s
b2dnZXIoc2VsZikKLQotICAgIGRlZiBfcmVhZF9maWVsZHMoc2VsZik6Ci0gICAgICAgICMgNC4x
IDMyLiBsZXQgL2ZpZWxkcy8gYmUgYSBsaXN0IG9mIG5hbWUtdmFsdWUgcGFpcnMsIGluaXRpYWxs
eSBlbXB0eS4KLSAgICAgICAgZmllbGRzID0ge30KLSAgICAgICAgd2hpbGUgVHJ1ZTogICMgIkZp
ZWxkIgotICAgICAgICAgICAgIyA0LjEgMzMuIGxldCAvbmFtZS8gYW5kIC92YWx1ZS8gYmUgZW1w
dHkgYnl0ZSBhcnJheXMKLSAgICAgICAgICAgIG5hbWUgPSAnJwotICAgICAgICAgICAgdmFsdWUg
PSAnJwotICAgICAgICAgICAgIyA0LjEgMzQuIHJlYWQgL25hbWUvCi0gICAgICAgICAgICBuYW1l
ID0gc2VsZi5fcmVhZF9uYW1lKCkKLSAgICAgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKLSAgICAg
ICAgICAgICAgICBicmVhawotICAgICAgICAgICAgIyA0LjEgMzUuIHJlYWQgc3BhY2VzCi0gICAg
ICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBTa2lwIG9ubHkgb25lIHNwYWNlIGFzIGRlc2NyaWJl
ZCBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNoID0gc2VsZi5fc2tpcF9zcGFjZXMoKQotICAg
ICAgICAgICAgIyA0LjEgMzYuIHJlYWQgL3ZhbHVlLwotICAgICAgICAgICAgdmFsdWUgPSBzZWxm
Ll9yZWFkX3ZhbHVlKGNoKQotICAgICAgICAgICAgIyA0LjEgMzcuIHJlYWQgYSBieXRlIGZyb20g
dGhlIHNlcnZlcgotICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQs
IDEpCi0gICAgICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICAgICAg
cmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdFeHBlY3Rl
ZCBMRiBidXQgZm91bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3IgJwotICAgICAgICAg
ICAgICAgICAgICAnaGVhZGVyICVyJyAlIChjaCwgdmFsdWUsIG5hbWUpKQotICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCAlciBoZWFkZXInLCBuYW1lKQotICAgICAgICAg
ICAgIyA0LjEgMzguIGFwcGVuZCBhbiBlbnRyeSB0byB0aGUgL2ZpZWxkcy8gbGlzdCB0aGF0IGhh
cyB0aGUgbmFtZQotICAgICAgICAgICAgIyBnaXZlbiBieSB0aGUgc3RyaW5nIG9idGFpbmVkIGJ5
IGludGVycHJldGluZyB0aGUgL25hbWUvIGJ5dGUKLSAgICAgICAgICAgICMgYXJyYXkgYXMgYSBV
VEYtOCBzdHJlYW0gYW5kIHRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgc3RyaW5nCi0gICAgICAgICAg
ICAjIG9idGFpbmVkIGJ5IGludGVycHJldGluZyB0aGUgL3ZhbHVlLyBieXRlIGFycmF5IGFzIGEg
VVRGLTggYnl0ZQotICAgICAgICAgICAgIyBzdHJlYW0uCi0gICAgICAgICAgICBmaWVsZHMuc2V0
ZGVmYXVsdChuYW1lLCBbXSkuYXBwZW5kKHZhbHVlKQotICAgICAgICAgICAgIyA0LjEgMzkuIHJl
dHVybiB0byB0aGUgIkZpZWxkIiBzdGVwIGFib3ZlCi0gICAgICAgIHJldHVybiBmaWVsZHMKLQot
ICAgIGRlZiBfcmVhZF9uYW1lKHNlbGYpOgotICAgICAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBi
ZSBlbXB0eSBieXRlIGFycmF5cwotICAgICAgICBuYW1lID0gJycKLSAgICAgICAgd2hpbGUgVHJ1
ZToKLSAgICAgICAgICAgICMgNC4xIDM0LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAg
ICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAg
ICAgaWYgY2ggPT0gJ1xyJzogICMgMHgwRAotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0g
ICAgICAgICAgICBlbGlmIGNoID09ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgICAgICByYWlz
ZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQg
TEYgd2hlbiByZWFkaW5nIGhlYWRlciBuYW1lICVyJyAlIG5hbWUpCi0gICAgICAgICAgICBlbGlm
IGNoID09ICc6JzogICMgMHgzQQotICAgICAgICAgICAgICAgIHJldHVybiBuYW1lCi0gICAgICAg
ICAgICBlbGlmIGNoID49ICdBJyBhbmQgY2ggPD0gJ1onOiAgIyBSYW5nZSAweDMxIHRvIDB4NUEK
LSAgICAgICAgICAgICAgICBjaCA9IGNocihvcmQoY2gpICsgMHgyMCkKLSAgICAgICAgICAgICAg
ICBuYW1lICs9IGNoCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG5hbWUgKz0g
Y2gKLQotICAgIGRlZiBfc2tpcF9zcGFjZXMoc2VsZik6Ci0gICAgICAgICMgNC4xIDM1LiByZWFk
IGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAg
IGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgaWYgY2gg
PT0gJyAnOiAgIyAweDIwCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHJl
dHVybiBjaAotCi0gICAgZGVmIF9yZWFkX3ZhbHVlKHNlbGYsIGNoKToKLSAgICAgICAgIyA0LjEg
MzMuIGxldCAvdmFsdWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgICAgIHZhbHVlID0gJycK
LSAgICAgICAgIyA0LjEgMzYuIHJlYWQgYSBieXRlIGZyb20gc2VydmVyLgotICAgICAgICB3aGls
ZSBUcnVlOgotICAgICAgICAgICAgaWYgY2ggPT0gJ1xyJzogICMgMHgwRAotICAgICAgICAgICAg
ICAgIHJldHVybiB2YWx1ZQotICAgICAgICAgICAgZWxpZiBjaCA9PSAnXG4nOiAgIyAweDBBCi0g
ICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAg
ICAgICAgICdVbmV4cGVjdGVkIExGIHdoZW4gcmVhZGluZyBoZWFkZXIgdmFsdWUgJXInICUgdmFs
dWUpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHZhbHVlICs9IGNoCi0gICAg
ICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLQotCi1kZWYgX2dl
dF9wZXJtZXNzYWdlX2RlZmxhdGVfZnJhbWVyKGV4dGVuc2lvbl9yZXNwb25zZSk6Ci0gICAgIiIi
VmFsaWRhdGUgdGhlIHJlc3BvbnNlIGFuZCByZXR1cm4gYSBmcmFtZXIgb2JqZWN0IHVzaW5nIHRo
ZSBwYXJhbWV0ZXJzIGluCi0gICAgdGhlIHJlc3BvbnNlLiBUaGlzIG1ldGhvZCBkb2Vzbid0IGFj
Y2VwdCB0aGUgc2VydmVyXy4qIHBhcmFtZXRlcnMuCi0gICAgIiIiCi0KLSAgICBjbGllbnRfbWF4
X3dpbmRvd19iaXRzID0gTm9uZQotICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0gTm9u
ZQotCi0gICAgY2xpZW50X21heF93aW5kb3dfYml0c19uYW1lID0gKAotICAgICAgICAgICAgUGVy
TWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuCi0gICAgICAgICAgICAgICAgICAgIF9D
TElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKQotICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2Vv
dmVyX25hbWUgPSAoCi0gICAgICAgICAgICBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nl
c3Nvci4KLSAgICAgICAgICAgICAgICAgICAgX0NMSUVOVF9OT19DT05URVhUX1RBS0VPVkVSX1BB
UkFNKQotCi0gICAgIyBXZSBkaWRuJ3Qgc2VuZCBhbnkgc2VydmVyXy4qIHBhcmFtZXRlci4KLSAg
ICAjIEhhbmRsZSB0aG9zZSBwYXJhbWV0ZXJzIGFzIGludmFsaWQgaWYgZm91bmQgaW4gdGhlIHJl
c3BvbnNlLgotCi0gICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVlIGluIGV4dGVuc2lvbl9y
ZXNwb25zZS5nZXRfcGFyYW1ldGVycygpOgotICAgICAgICBpZiBwYXJhbV9uYW1lID09IGNsaWVu
dF9tYXhfd2luZG93X2JpdHNfbmFtZToKLSAgICAgICAgICAgIGlmIGNsaWVudF9tYXhfd2luZG93
X2JpdHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtl
RXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGlwbGUgJXMgZm91bmQnICUgY2xp
ZW50X21heF93aW5kb3dfYml0c19uYW1lKQotCi0gICAgICAgICAgICBwYXJzZWRfdmFsdWUgPSBf
cGFyc2Vfd2luZG93X2JpdHMocGFyYW1fdmFsdWUpCi0gICAgICAgICAgICBpZiBwYXJzZWRfdmFs
dWUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigK
LSAgICAgICAgICAgICAgICAgICAgICAgICdCYWQgJXM6ICVyJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAoY2xpZW50X21heF93aW5kb3dfYml0c19uYW1lLCBwYXJhbV92YWx1ZSkpCi0gICAg
ICAgICAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRzID0gcGFyc2VkX3ZhbHVlCi0gICAgICAgIGVs
aWYgcGFyYW1fbmFtZSA9PSBjbGllbnRfbm9fY29udGV4dF90YWtlb3Zlcl9uYW1lOgotICAgICAg
ICAgICAgaWYgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAnTXVsdGlwbGUgJXMgZm91bmQnICUgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXJfbmFt
ZSkKLQotICAgICAgICAgICAgaWYgcGFyYW1fdmFsdWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAnQmFkICVzOiBIYXMgdmFsdWUgJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgIChjbGll
bnRfbm9fY29udGV4dF90YWtlb3Zlcl9uYW1lLCBwYXJhbV92YWx1ZSkpCi0gICAgICAgICAgICBj
bGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IFRydWUKLQotICAgIGlmIGNsaWVudF9ub19jb250
ZXh0X3Rha2VvdmVyIGlzIE5vbmU6Ci0gICAgICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVy
ID0gRmFsc2UKLQotICAgIHJldHVybiBfUGVyTWVzc2FnZURlZmxhdGVGcmFtZXIoY2xpZW50X21h
eF93aW5kb3dfYml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVu
dF9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0KLWNsYXNzIENsaWVudEhhbmRzaGFrZVByb2Nlc3Nv
cihDbGllbnRIYW5kc2hha2VCYXNlKToKLSAgICAiIiJXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hh
a2UgcHJvY2Vzc29yIGZvcgotICAgIGRyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2Nv
bC0wNiBhbmQgbGF0ZXIuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0
LCBvcHRpb25zKToKLSAgICAgICAgc3VwZXIoQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29yLCBzZWxm
KS5fX2luaXRfXygpCi0KLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0gICAgICAgIHNl
bGYuX29wdGlvbnMgPSBvcHRpb25zCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRf
Y2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICBkZWYgaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICAi
IiJQZXJmb3JtcyBvcGVuaW5nIGhhbmRzaGFrZSBvbiB0aGUgc3BlY2lmaWVkIHNvY2tldC4KLQot
ICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDbGllbnRIYW5kc2hha2VFcnJvcjogaGFuZHNo
YWtlIGZhaWxlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmVxdWVzdF9saW5lID0gX2J1aWxk
X21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMucmVzb3VyY2UpCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnQ2xpZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlIFJlcXVlc3QtTGluZTogJXInLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9saW5lKQotICAgICAgICBzZWxmLl9z
b2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCi0KLSAgICAgICAgZmllbGRzID0gW10KLSAgICAg
ICAgZmllbGRzLmFwcGVuZChfZm9ybWF0X2hvc3RfaGVhZGVyKAotICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3Bv
cnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpKQotICAgICAgICBmaWVsZHMu
YXBwZW5kKF9VUEdSQURFX0hFQURFUikKLSAgICAgICAgZmllbGRzLmFwcGVuZChfQ09OTkVDVElP
Tl9IRUFERVIpCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMub3JpZ2luIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5wcm90b2NvbF92ZXJzaW9uID09IF9QUk9UT0NP
TF9WRVJTSU9OX0hZQkkwODoKLSAgICAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5f
aGVhZGVyKAotICAgICAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9PUklHSU5f
SEVBREVSLAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLm9yaWdpbikpCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFk
ZXIoY29tbW9uLk9SSUdJTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLm9yaWdpbikpCi0KLSAgICAgICAgb3JpZ2luYWxf
a2V5ID0gb3MudXJhbmRvbSgxNikKLSAgICAgICAgc2VsZi5fa2V5ID0gYmFzZTY0LmI2NGVuY29k
ZShvcmlnaW5hbF9rZXkpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAg
ICclczogJXIgKCVzKScsCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVB
REVSLAotICAgICAgICAgICAgc2VsZi5fa2V5LAotICAgICAgICAgICAgdXRpbC5oZXhpZnkob3Jp
Z2luYWxfa2V5KSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgKLSAgICAgICAgICAgICclczogJXNc
clxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSLCBzZWxmLl9rZXkpKQotCi0g
ICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyc2lvbl9oZWFkZXIgPiAwOgotICAgICAgICAgICAg
ZmllbGRzLmFwcGVuZCgnJXM6ICVkXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lP
Tl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9vcHRpb25zLnZlcnNpb25faGVhZGVyKSkKLSAgICAgICAgZWxpZiBzZWxmLl9vcHRpb25zLnBy
b3RvY29sX3ZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTA4OgotICAgICAgICAgICAg
ZmllbGRzLmFwcGVuZCgnJXM6ICVkXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lP
Tl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21t
b24uVkVSU0lPTl9IWUJJMDgpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmllbGRzLmFw
cGVuZCgnJXM6ICVkXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uVkVSU0lP
Tl9IWUJJX0xBVEVTVCkpCi0KLSAgICAgICAgZXh0ZW5zaW9uc190b19yZXF1ZXN0ID0gW10KLQot
ICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWU6Ci0gICAgICAgICAgICBleHRl
bnNpb25zX3RvX3JlcXVlc3QuYXBwZW5kKAotICAgICAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNp
b25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKSkKLQotICAgICAgICBp
ZiBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGU6Ci0gICAgICAgICAgICBleHRl
bnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgICAgICBj
b21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgICAgICMgQWNjZXB0
IHRoZSBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGV4dGVuc2lvbiBwYXJhbWV0ZXIgYnkgZGVmYXVs
dC4KLSAgICAgICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAg
ICAgICBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nvci4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAgICAgICAg
ICAgICAgICAgTm9uZSkKLSAgICAgICAgICAgIGV4dGVuc2lvbnNfdG9fcmVxdWVzdC5hcHBlbmQo
ZXh0ZW5zaW9uKQotCi0gICAgICAgIGlmIGxlbihleHRlbnNpb25zX3RvX3JlcXVlc3QpICE9IDA6
Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKAotICAgICAgICAgICAgICAgICclczogJXNcclxu
JyAlCi0gICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVB
REVSLAotICAgICAgICAgICAgICAgICBjb21tb24uZm9ybWF0X2V4dGVuc2lvbnMoZXh0ZW5zaW9u
c190b19yZXF1ZXN0KSkpCi0KLSAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKLSAgICAgICAg
ICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxkKQotCi0gICAgICAgIHNlbGYuX3NvY2tldC5z
ZW5kYWxsKCdcclxuJykKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbnQgY2xpZW50
XCdzIG9wZW5pbmcgaGFuZHNoYWtlIGhlYWRlcnM6ICVyJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZpZWxkcykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTdGFydCByZWFkaW5n
IFN0YXR1cy1MaW5lJykKLQotICAgICAgICBzdGF0dXNfbGluZSA9ICcnCi0gICAgICAgIHdoaWxl
IFRydWU6Ci0gICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkK
LSAgICAgICAgICAgIHN0YXR1c19saW5lICs9IGNoCi0gICAgICAgICAgICBpZiBjaCA9PSAnXG4n
OgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgbSA9IHJlLm1hdGNoKCdIVFRQL1xc
ZCtcLlxcZCsgKFxcZFxcZFxcZCkgLipcclxuJywgc3RhdHVzX2xpbmUpCi0gICAgICAgIGlmIG0g
aXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAg
ICAgICAgICAgICdXcm9uZyBzdGF0dXMgbGluZSBmb3JtYXQ6ICVyJyAlIHN0YXR1c19saW5lKQot
ICAgICAgICBzdGF0dXNfY29kZSA9IG0uZ3JvdXAoMSkKLSAgICAgICAgaWYgc3RhdHVzX2NvZGUg
IT0gJzEwMSc6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1VuZXhwZWN0ZWQgc3Rh
dHVzIGNvZGUgJXMgd2l0aCBmb2xsb3dpbmcgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdoZWFkZXJzOiAlcicsIHN0YXR1c19jb2RlLCBzZWxmLl9yZWFkX2ZpZWxkcygpKQotICAg
ICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0V4
cGVjdGVkIEhUVFAgc3RhdHVzIGNvZGUgMTAxIGJ1dCBmb3VuZCAlcicgJSBzdGF0dXNfY29kZSkK
LQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkIHZhbGlkIFN0YXR1cy1MaW5l
JykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTdGFydCByZWFkaW5nIGhlYWRlcnMgdW50
aWwgd2Ugc2VlIGFuIGVtcHR5IGxpbmUnKQotCi0gICAgICAgIGZpZWxkcyA9IHNlbGYuX3JlYWRf
ZmllbGRzKCkKLQotICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkK
LSAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgQ2xpZW50
SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAl
ciB3aGlsZSByZWFkaW5nIHZhbHVlICVyIGZvciBoZWFkZXIgJwotICAgICAgICAgICAgICAgICdu
YW1lICVyJyAlIChjaCwgdmFsdWUsIG5hbWUpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnUmVjZWl2ZWQgYW4gZW1wdHkgbGluZScpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
U2VydmVyXCdzIG9wZW5pbmcgaGFuZHNoYWtlIGhlYWRlcnM6ICVyJywgZmllbGRzKQotCi0gICAg
ICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLAotICAg
ICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVSLAotICAgICAgICAgICAgY29tbW9uLldFQlNP
Q0tFVF9VUEdSQURFX1RZUEUsCi0gICAgICAgICAgICBGYWxzZSkKLQotICAgICAgICBfdmFsaWRh
dGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywKLSAgICAgICAgICAgIGNv
bW1vbi5DT05ORUNUSU9OX0hFQURFUiwKLSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0NPTk5F
Q1RJT05fVFlQRSwKLSAgICAgICAgICAgIEZhbHNlKQotCi0gICAgICAgIGFjY2VwdCA9IF9nZXRf
bWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywgY29tbW9uLlNFQ19XRUJTT0NL
RVRfQUNDRVBUX0hFQURFUikKLQotICAgICAgICAjIFZhbGlkYXRlCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGJpbmFyeV9hY2NlcHQgPSBiYXNlNjQuYjY0ZGVjb2RlKGFjY2VwdCkKLSAgICAg
ICAgZXhjZXB0IFR5cGVFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUVycm9y
KAotICAgICAgICAgICAgICAgICdJbGxlZ2FsIHZhbHVlIGZvciBoZWFkZXIgJXM6ICVyJyAlCi0g
ICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIsIGFjY2Vw
dCkpCi0KLSAgICAgICAgaWYgbGVuKGJpbmFyeV9hY2NlcHQpICE9IDIwOgotICAgICAgICAgICAg
cmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0RlY29kZWQgdmFs
dWUgb2YgJXMgaXMgbm90IDIwLWJ5dGUgbG9uZycgJQotICAgICAgICAgICAgICAgIGNvbW1vbi5T
RUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KAotICAgICAgICAgICAgJ1Jlc3BvbnNlIGZvciBjaGFsbGVuZ2UgOiAlciAoJXMpJywKLSAgICAg
ICAgICAgIGFjY2VwdCwgdXRpbC5oZXhpZnkoYmluYXJ5X2FjY2VwdCkpCi0KLSAgICAgICAgYmlu
YXJ5X2V4cGVjdGVkX2FjY2VwdCA9IHV0aWwuc2hhMV9oYXNoKAotICAgICAgICAgICAgc2VsZi5f
a2V5ICsgY29tbW9uLldFQlNPQ0tFVF9BQ0NFUFRfVVVJRCkuZGlnZXN0KCkKLSAgICAgICAgZXhw
ZWN0ZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGVuY29kZShiaW5hcnlfZXhwZWN0ZWRfYWNjZXB0KQot
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdFeHBlY3RlZCByZXNw
b25zZSBmb3IgY2hhbGxlbmdlOiAlciAoJXMpJywKLSAgICAgICAgICAgIGV4cGVjdGVkX2FjY2Vw
dCwgdXRpbC5oZXhpZnkoYmluYXJ5X2V4cGVjdGVkX2FjY2VwdCkpCi0KLSAgICAgICAgaWYgYWNj
ZXB0ICE9IGV4cGVjdGVkX2FjY2VwdDoKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFr
ZUVycm9yKAotICAgICAgICAgICAgICAgICdJbnZhbGlkICVzIGhlYWRlcjogJXIgKGV4cGVjdGVk
OiAlcyknICUKLSAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hF
QURFUiwgYWNjZXB0LCBleHBlY3RlZF9hY2NlcHQpKQotCi0gICAgICAgIGRlZmxhdGVfZnJhbWVf
YWNjZXB0ZWQgPSBGYWxzZQotICAgICAgICBwZXJtZXNzYWdlX2RlZmxhdGVfYWNjZXB0ZWQgPSBG
YWxzZQotCi0gICAgICAgIGV4dGVuc2lvbnNfaGVhZGVyID0gZmllbGRzLmdldCgKLSAgICAgICAg
ICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLmxvd2VyKCkpCi0gICAg
ICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBbXQotICAgICAgICBpZiBleHRlbnNpb25zX2hlYWRl
ciBpcyBub3QgTm9uZSBhbmQgbGVuKGV4dGVuc2lvbnNfaGVhZGVyKSAhPSAwOgotICAgICAgICAg
ICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKGV4dGVuc2lv
bnNfaGVhZGVyWzBdKQotCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IFN1cHBvcnQgdGhlIG5ldyBz
dHlsZSBwZXJmcmFtZSBjb21wcmVzc2lvbiBleHRlbnNpb24uCi0gICAgICAgIGZvciBleHRlbnNp
b24gaW4gYWNjZXB0ZWRfZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIGV4dGVuc2lvbl9uYW1lID0g
ZXh0ZW5zaW9uLm5hbWUoKQotICAgICAgICAgICAgaWYgKGV4dGVuc2lvbl9uYW1lID09IGNvbW1v
bi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiBhbmQKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLmRlZmxhdGVfZnJhbWUpOgotICAgICAgICAgICAgICAgIGRlZmxhdGVfZnJhbWVfYWNjZXB0
ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5z
aW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAgICAgICAgICB1bnVzZWRfZXh0ZW5zaW9u
X3Jlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICAg
ICAgICAgIHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSA9IHByb2Nlc3NvcgotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbGlmIChleHRlbnNpb25fbmFtZSA9PSBjb21t
b24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTiBhbmQKLSAgICAgICAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSk6Ci0gICAgICAgICAgICAgICAgcGVy
bWVzc2FnZV9kZWZsYXRlX2FjY2VwdGVkID0gVHJ1ZQotCi0gICAgICAgICAgICAgICAgZnJhbWVy
ID0gX2dldF9wZXJtZXNzYWdlX2RlZmxhdGVfZnJhbWVyKGV4dGVuc2lvbikKLSAgICAgICAgICAg
ICAgICBmcmFtZXIuc2V0X2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQoVHJ1ZSkKLSAgICAgICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUgPSBmcmFtZXIKLSAg
ICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hh
a2VFcnJvcigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBleHRlbnNpb24gJXInICUgZXh0
ZW5zaW9uX25hbWUpCi0KLSAgICAgICAgaWYgKHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSBh
bmQgbm90IGRlZmxhdGVfZnJhbWVfYWNjZXB0ZWQpOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50
SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCAlcywgYnV0IHRoZSBz
ZXJ2ZXIgcmVqZWN0ZWQgaXQnICUKLSAgICAgICAgICAgICAgICBjb21tb24uREVGTEFURV9GUkFN
RV9FWFRFTlNJT04pCi0KLSAgICAgICAgaWYgKHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2Vf
ZGVmbGF0ZSBhbmQKLSAgICAgICAgICAgIG5vdCBwZXJtZXNzYWdlX2RlZmxhdGVfYWNjZXB0ZWQp
OgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAg
ICAgICAgICdSZXF1ZXN0ZWQgJXMsIGJ1dCB0aGUgc2VydmVyIHJlamVjdGVkIGl0JyAlCi0gICAg
ICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotCi0g
ICAgICAgICMgVE9ETyh0eW9zaGlubyk6IEhhbmRsZSBTZWMtV2ViU29ja2V0LVByb3RvY29sCi0g
ICAgICAgICMgVE9ETyh0eW9zaGlubyk6IEhhbmRsZSBDb29raWUsIGV0Yy4KLQotCi1jbGFzcyBD
bGllbnRIYW5kc2hha2VQcm9jZXNzb3JIeWJpMDAoQ2xpZW50SGFuZHNoYWtlQmFzZSk6Ci0gICAg
IiIiV2ViU29ja2V0IG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IKLSAgICBkcmFmdC1p
ZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDAgKGVxdWl2YWxlbnQgdG8KLSAgICBkcmFm
dC1oaXhpZS10aGV3ZWJzb2NrZXRwcm90b2NvbC03NikuCi0gICAgIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgc29ja2V0LCBvcHRpb25zKToKLSAgICAgICAgc3VwZXIoQ2xpZW50SGFuZHNo
YWtlUHJvY2Vzc29ySHliaTAwLCBzZWxmKS5fX2luaXRfXygpCi0KLSAgICAgICAgc2VsZi5fc29j
a2V0ID0gc29ja2V0Ci0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgaWYg
KHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSBvcgotICAgICAgICAgICAgc2VsZi5fb3B0aW9u
cy51c2VfcGVybWVzc2FnZV9kZWZsYXRlKToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwo
J0h5QmkgMDAgZG9lc25cJ3Qgc3VwcG9ydCBleHRlbnNpb25zLicpCi0gICAgICAgICAgICBzeXMu
ZXhpdCgxKQotCi0gICAgZGVmIGhhbmRzaGFrZShzZWxmKToKLSAgICAgICAgIiIiUGVyZm9ybXMg
b3BlbmluZyBoYW5kc2hha2Ugb24gdGhlIHNwZWNpZmllZCBzb2NrZXQuCi0KLSAgICAgICAgUmFp
c2VzOgotICAgICAgICAgICAgQ2xpZW50SGFuZHNoYWtlRXJyb3I6IGhhbmRzaGFrZSBmYWlsZWQu
Ci0gICAgICAgICIiIgotCi0gICAgICAgICMgNC4xIDUuIHNlbmQgcmVxdWVzdCBsaW5lLgotICAg
ICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChfYnVpbGRfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9u
cy5yZXNvdXJjZSkpCi0gICAgICAgICMgNC4xIDYuIExldCAvZmllbGRzLyBiZSBhbiBlbXB0eSBs
aXN0IG9mIHN0cmluZ3MuCi0gICAgICAgIGZpZWxkcyA9IFtdCi0gICAgICAgICMgNC4xIDcuIEFk
ZCB0aGUgc3RyaW5nICJVcGdyYWRlOiBXZWJTb2NrZXQiIHRvIC9maWVsZHMvLgotICAgICAgICBm
aWVsZHMuYXBwZW5kKF9VUEdSQURFX0hFQURFUl9ISVhJRTc1KQotICAgICAgICAjIDQuMSA4LiBB
ZGQgdGhlIHN0cmluZyAiQ29ubmVjdGlvbjogVXBncmFkZSIgdG8gL2ZpZWxkcy8uCi0gICAgICAg
IGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVBREVSKQotICAgICAgICAjIDQuMSA5LTEyLiBB
ZGQgSG9zdDogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1h
dF9ob3N0X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0g
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy51c2VfdGxzKSkKLSAgICAgICAgIyA0LjEgMTMuIEFkZCBPcmlnaW46IGZpZWxkIHRv
IC9maWVsZHMvLgotICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5vcmlnaW46Ci0gICAgICAg
ICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnU3BlY2lm
eSB0aGUgb3JpZ2luIG9mIHRoZSBjb25uZWN0aW9uIGJ5IC0tb3JpZ2luIGZsYWcnKQotICAgICAg
ICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKGNvbW1vbi5PUklHSU5fSEVBREVSLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMub3JpZ2luKSkK
LSAgICAgICAgIyBUT0RPOiA0LjEgMTQgQWRkIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IGZpZWxk
IHRvIC9maWVsZHMvLgotICAgICAgICAjIFRPRE86IDQuMSAxNSBBZGQgY29va2llIGhlYWRlcnMg
dG8gL2ZpZWxkcy8uCi0KLSAgICAgICAgIyA0LjEgMTYtMjMuIEFkZCBTZWMtV2ViU29ja2V0LUtl
eTxuPiB0byAvZmllbGRzLy4KLSAgICAgICAgc2VsZi5fbnVtYmVyMSwga2V5MSA9IHNlbGYuX2dl
bmVyYXRlX3NlY193ZWJzb2NrZXRfa2V5KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdO
dW1iZXIxOiAlZCcsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAl
c1xyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWTFfSEVBREVSLCBrZXkxKSkKLSAgICAg
ICAgc2VsZi5fbnVtYmVyMiwga2V5MiA9IHNlbGYuX2dlbmVyYXRlX3NlY193ZWJzb2NrZXRfa2V5
KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1iZXIyOiAlZCcsIHNlbGYuX251bWJl
cjIpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKGNvbW1vbi5TRUNfV0VC
U09DS0VUX0tFWTJfSEVBREVSLCBrZXkyKSkKLQotICAgICAgICBmaWVsZHMuYXBwZW5kKCclczog
MFxyXG4nICUgY29tbW9uLlNFQ19XRUJTT0NLRVRfRFJBRlRfSEVBREVSKQotCi0gICAgICAgICMg
NC4xIDI0LiBGb3IgZWFjaCBzdHJpbmcgaW4gL2ZpZWxkcy8sIGluIGEgcmFuZG9tIG9yZGVyOiBz
ZW5kIHRoZQotICAgICAgICAjIHN0cmluZywgZW5jb2RlZCBhcyBVVEYtOCwgZm9sbG93ZWQgYnkg
YSBVVEYtOCBlbmNvZGVkIFUrMDAwRCBDQVJSSUFHRQotICAgICAgICAjIFJFVFVSTiBVKzAwMEEg
TElORSBGRUVEIGNoYXJhY3RlciBwYWlyIChDUkxGKS4KLSAgICAgICAgcmFuZG9tLnNodWZmbGUo
ZmllbGRzKQotICAgICAgICBmb3IgZmllbGQgaW4gZmllbGRzOgotICAgICAgICAgICAgc2VsZi5f
c29ja2V0LnNlbmRhbGwoZmllbGQpCi0gICAgICAgICMgNC4xIDI1LiBzZW5kIGEgVVRGLTgtZW5j
b2RlZCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIFUrMDAwQSBMSU5FIEZFRUQKLSAgICAgICAgIyBj
aGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxu
JykKLSAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5My8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBv
ZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCi0gICAgICAgICMgZXF1aXZhbGVudGx5LCBhIHJhbmRv
bSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEgYmlnLWVuZGlhbiBvcmRlcikuCi0gICAgICAg
IHNlbGYuX2tleTMgPSBzZWxmLl9nZW5lcmF0ZV9rZXkzKCkKLSAgICAgICAgIyA0LjEgMjcuIHNl
bmQgL2tleTMvIHRvIHRoZSBzZXJ2ZXIuCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHNl
bGYuX2tleTMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdLZXkz
OiAlciAoJXMpJywgc2VsZi5fa2V5MywgdXRpbC5oZXhpZnkoc2VsZi5fa2V5MykpCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgaGFuZHNoYWtlJykKLQotICAgICAgICAjIDQuMSAy
OC4gUmVhZCBieXRlcyBmcm9tIHRoZSBzZXJ2ZXIgdW50aWwgZWl0aGVyIHRoZSBjb25uZWN0aW9u
Ci0gICAgICAgICMgY2xvc2VzLCBvciBhIDB4MEEgYnl0ZSBpcyByZWFkLiBsZXQgL2ZpZWxkLyBi
ZSB0aGVzZSBieXRlcywgaW5jbHVkaW5nCi0gICAgICAgICMgdGhlIDB4MEEgYnl0ZXMuCi0gICAg
ICAgIGZpZWxkID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGNoID0gX3Jl
Y2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgZmllbGQgKz0gY2gKLSAg
ICAgICAgICAgIGlmIGNoID09ICdcbic6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAg
IyBpZiAvZmllbGQvIGlzIG5vdCBhdCBsZWFzdCBzZXZlbiBieXRlcyBsb25nLCBvciBpZiB0aGUg
bGFzdAotICAgICAgICAjIHR3byBieXRlcyBhcmVuJ3QgMHgwRCBhbmQgMHgwQSByZXNwZWN0aXZl
bHksIG9yIGlmIGl0IGRvZXMgbm90Ci0gICAgICAgICMgY29udGFpbiBhdCBsZWFzdCB0d28gMHgy
MCBieXRlcywgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbgotICAgICAgICAjIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgbGVuKGZpZWxkKSA8IDcgb3Igbm90IGZp
ZWxkLmVuZHN3aXRoKCdcclxuJyk6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VF
cnJvcignV3Jvbmcgc3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAgICAgICBtID0gcmUubWF0
Y2goJ1teIF0qIChbXiBdKikgLionLCBmaWVsZCkKLSAgICAgICAgaWYgbSBpcyBOb25lOgotICAg
ICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ05v
IEhUVFAgc3RhdHVzIGNvZGUgZm91bmQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAg
ICAgICAjIDQuMSAyOS4gbGV0IC9jb2RlLyBiZSB0aGUgc3Vic3RyaW5nIG9mIC9maWVsZC8gdGhh
dCBzdGFydHMgZnJvbSB0aGUKLSAgICAgICAgIyBieXRlIGFmdGVyIHRoZSBmaXJzdCAweDIwIGJ5
dGUsIGFuZCBlbmRzIHdpdGggdGhlIGJ5dGUgYmVmb3JlIHRoZQotICAgICAgICAjIHNlY29uZCAw
eDIwIGJ5dGUuCi0gICAgICAgIGNvZGUgPSBtLmdyb3VwKDEpCi0gICAgICAgICMgNC4xIDMwLiBp
ZiAvY29kZS8gaXMgbm90IHRocmVlIGJ5dGVzIGxvbmcsIG9yIGlmIGFueSBvZiB0aGUgYnl0ZXMg
aW4KLSAgICAgICAgIyAvY29kZS8gYXJlIG5vdCBpbiB0aGUgcmFuZ2UgMHgzMCB0byAweDkwLCB0
aGVuIGZhaWwgdGhlIFdlYlNvY2tldAotICAgICAgICAjIGNvbm5lY3Rpb24gYW5kIGFib3J0IHRo
ZXNlIHN0ZXBzLgotICAgICAgICBpZiBub3QgcmUubWF0Y2goJ1swLTldWzAtOV1bMC05XScsIGNv
ZGUpOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAg
ICAgICAgJ0hUVFAgc3RhdHVzIGNvZGUgJXIgaXMgbm90IHRocmVlIGRpZ2l0IGluIHN0YXR1cyBs
aW5lOiAlcicgJQotICAgICAgICAgICAgICAgIChjb2RlLCBmaWVsZCkpCi0gICAgICAgICMgNC4x
IDMxLiBpZiAvY29kZS8sIGludGVycHJldGVkIGFzIFVURi04LCBpcyAiMTAxIiwgdGhlbiBtb3Zl
IHRvIHRoZQotICAgICAgICAjIG5leHQgc3RlcC4KLSAgICAgICAgaWYgY29kZSAhPSAnMTAxJzoK
LSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAg
ICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXIgaW4gc3RhdHVzIGxp
bmU6ICcKLSAgICAgICAgICAgICAgICAnJXInICUgKGNvZGUsIGZpZWxkKSkKLSAgICAgICAgIyA0
LjEgMzItMzkuIHJlYWQgZmllbGRzIGludG8gL2ZpZWxkcy8KLSAgICAgICAgZmllbGRzID0gc2Vs
Zi5fcmVhZF9maWVsZHMoKQotICAgICAgICAjIDQuMSA0MC4gX0ZpZWxkcyBwcm9jZXNzaW5nXwot
ICAgICAgICAjIHJlYWQgYSBieXRlIGZyb20gc2VydmVyCi0gICAgICAgIGNoID0gX3JlY2VpdmVf
Ynl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0g
ICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcignRXhwZWN0ZWQgTEYgYnV0IGZv
dW5kICVyJyAlIGNoKQotICAgICAgICAjIDQuMSA0MS4gY2hlY2sgL2ZpZWxkcy8KLSAgICAgICAg
IyBUT0RPKHVrYWkpOiBwcm90b2NvbAotICAgICAgICAjIGlmIHRoZSBlbnRyeSdzIG5hbWUgaXMg
InVwZ3JhZGUiCi0gICAgICAgICMgIGlmIHRoZSB2YWx1ZSBpcyBub3QgZXhhY3RseSBlcXVhbCB0
byB0aGUgc3RyaW5nICJXZWJTb2NrZXQiLAotICAgICAgICAjICB0aGVuIGZhaWwgdGhlIFdlYlNv
Y2tldCBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgX3ZhbGlkYXRl
X21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsCi0gICAgICAgICAgICBjb21t
b24uVVBHUkFERV9IRUFERVIsCi0gICAgICAgICAgICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVf
VFlQRV9ISVhJRTc1LAotICAgICAgICAgICAgVHJ1ZSkKLSAgICAgICAgIyBpZiB0aGUgZW50cnkn
cyBuYW1lIGlzICJjb25uZWN0aW9uIgotICAgICAgICAjICBpZiB0aGUgdmFsdWUsIGNvbnZlcnRl
ZCB0byBBU0NJSSBsb3dlcmNhc2UsIGlzIG5vdCBleGFjdGx5IGVxdWFsCi0gICAgICAgICMgIHRv
IHRoZSBzdHJpbmcgInVwZ3JhZGUiLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9u
IGFuZAotICAgICAgICAjICBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgX3ZhbGlkYXRlX21h
bmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsCi0gICAgICAgICAgICBjb21tb24u
Q09OTkVDVElPTl9IRUFERVIsCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9DT05ORUNUSU9O
X1RZUEUsCi0gICAgICAgICAgICBGYWxzZSkKLQotICAgICAgICBvcmlnaW4gPSBfZ2V0X21hbmRh
dG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsIGNvbW1vbi5TRUNfV0VCU09DS0VUX09S
SUdJTl9IRUFERVIpCi0KLSAgICAgICAgbG9jYXRpb24gPSBfZ2V0X21hbmRhdG9yeV9oZWFkZXIo
Ci0gICAgICAgICAgICBmaWVsZHMsIGNvbW1vbi5TRUNfV0VCU09DS0VUX0xPQ0FUSU9OX0hFQURF
UikKLQotICAgICAgICAjIFRPRE8odWthaSk6IGNoZWNrIG9yaWdpbiwgbG9jYXRpb24sIGNvb2tp
ZSwgLi4KLQotICAgICAgICAjIDQuMSA0Mi4gbGV0IC9jaGFsbGVuZ2UvIGJlIHRoZSBjb25jYXRl
bmF0aW9uIG9mIC9udW1iZXJfMS8sCi0gICAgICAgICMgZXhwcmVzc2VkIGFzIGEgYmlnIGVuZGlh
biAzMiBiaXQgaW50ZWdlciwgL251bWJlcl8yLywgZXhwcmVzc2VkCi0gICAgICAgICMgYXMgYmln
IGVuZGlhbiAzMiBiaXQgaW50ZWdlciwgYW5kIHRoZSBlaWdodCBieXRlcyBvZiAva2V5XzMvIGlu
IHRoZQotICAgICAgICAjIG9yZGVyIHRoZXkgd2VyZSBzZW50IG9uIHRoZSB3aXJlLgotICAgICAg
ICBjaGFsbGVuZ2UgPSBzdHJ1Y3QucGFjaygnIUknLCBzZWxmLl9udW1iZXIxKQotICAgICAgICBj
aGFsbGVuZ2UgKz0gc3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVtYmVyMikKLSAgICAgICAgY2hh
bGxlbmdlICs9IHNlbGYuX2tleTMKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAg
ICAgICAgICAnQ2hhbGxlbmdlOiAlciAoJXMpJywgY2hhbGxlbmdlLCB1dGlsLmhleGlmeShjaGFs
bGVuZ2UpKQotCi0gICAgICAgICMgNC4xIDQzLiBsZXQgL2V4cGVjdGVkLyBiZSB0aGUgTUQ1IGZp
bmdlcnByaW50IG9mIC9jaGFsbGVuZ2UvIGFzIGEKLSAgICAgICAgIyBiaWctZW5kaWFuIDEyOCBi
aXQgc3RyaW5nLgotICAgICAgICBleHBlY3RlZCA9IHV0aWwubWQ1X2hhc2goY2hhbGxlbmdlKS5k
aWdlc3QoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRXhwZWN0
ZWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMpJywKLSAgICAgICAgICAgIGV4cGVjdGVkLCB1
dGlsLmhleGlmeShleHBlY3RlZCkpCi0KLSAgICAgICAgIyA0LjEgNDQuIHJlYWQgc2l4dGVlbiBi
eXRlcyBmcm9tIHRoZSBzZXJ2ZXIuCi0gICAgICAgICMgbGV0IC9yZXBseS8gYmUgdGhvc2UgYnl0
ZXMuCi0gICAgICAgIHJlcGx5ID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxNikKLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0FjdHVhbCBjaGFsbGVuZ2Ug
cmVzcG9uc2U6ICVyICglcyknLCByZXBseSwgdXRpbC5oZXhpZnkocmVwbHkpKQotCi0gICAgICAg
ICMgNC4xIDQ1LiBpZiAvcmVwbHkvIGRvZXMgbm90IGV4YWN0bHkgZXF1YWwgL2V4cGVjdGVkLywg
dGhlbiBmYWlsCi0gICAgICAgICMgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFuZCBhYm9ydCB0
aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgZXhwZWN0ZWQgIT0gcmVwbHk6Ci0gICAgICAgICAgICBy
YWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnQmFkIGNoYWxsZW5n
ZSByZXNwb25zZTogJXIgKGV4cGVjdGVkKSAhPSAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAg
ICAgIChleHBlY3RlZCwgcmVwbHkpKQotICAgICAgICAjIDQuMSA0Ni4gVGhlICpXZWJTb2NrZXQg
Y29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCouCi0KLSAgICBkZWYgX2dlbmVyYXRlX3NlY193ZWJz
b2NrZXRfa2V5KHNlbGYpOgotICAgICAgICAjIDQuMSAxNi4gbGV0IC9zcGFjZXNfbi8gYmUgYSBy
YW5kb20gaW50ZWdlciBmcm9tIDEgdG8gMTIgaW5jbHVzaXZlLgotICAgICAgICBzcGFjZXMgPSBy
YW5kb20ucmFuZGludCgxLCAxMikKLSAgICAgICAgIyA0LjEgMTcuIGxldCAvbWF4X24vIGJlIHRo
ZSBsYXJnZXN0IGludGVnZXIgbm90IGdyZWF0ZXIgdGhhbgotICAgICAgICAjICA0LDI5NCw5Njcs
Mjk1IGRpdmlkZWQgYnkgL3NwYWNlc19uLy4KLSAgICAgICAgbWF4bnVtID0gNDI5NDk2NzI5NSAv
IHNwYWNlcwotICAgICAgICAjIDQuMSAxOC4gbGV0IC9udW1iZXJfbi8gYmUgYSByYW5kb20gaW50
ZWdlciBmcm9tIDAgdG8gL21heF9uLwotICAgICAgICAjIGluY2x1c2l2ZS4KLSAgICAgICAgbnVt
YmVyID0gcmFuZG9tLnJhbmRpbnQoMCwgbWF4bnVtKQotICAgICAgICAjIDQuMSAxOS4gbGV0IC9w
cm9kdWN0X24vIGJlIHRoZSByZXN1bHQgb2YgbXVsdGlwbHlpbmcgL251bWJlcl9uLyBhbmQKLSAg
ICAgICAgIyAvc3BhY2VzX24vIHRvZ2V0aGVyLgotICAgICAgICBwcm9kdWN0ID0gbnVtYmVyICog
c3BhY2VzCi0gICAgICAgICMgNC4xIDIwLiBsZXQgL2tleV9uLyBiZSBhIHN0cmluZyBjb25zaXN0
aW5nIG9mIC9wcm9kdWN0X24vLCBleHByZXNzZWQKLSAgICAgICAgIyBpbiBiYXNlIHRlbiB1c2lu
ZyB0aGUgbnVtZXJhbHMgaW4gdGhlIHJhbmdlIFUrMDAzMCBESUdJVCBaRVJPICgwKSB0bwotICAg
ICAgICAjIFUrMDAzOSBESUdJVCBOSU5FICg5KS4KLSAgICAgICAga2V5ID0gc3RyKHByb2R1Y3Qp
Ci0gICAgICAgICMgNC4xIDIxLiBpbnNlcnQgYmV0d2VlbiBvbmUgYW5kIHR3ZWx2ZSByYW5kb20g
Y2hhcmFjdGVycyBmcm9tIHRoZQotICAgICAgICAjIHJhbmdlIFUrMDAyMSB0byBVKzAwMkYgYW5k
IFUrMDAzQSB0byBVKzAwN0UgaW50byAva2V5X24vIGF0IHJhbmRvbQotICAgICAgICAjIHBvc2l0
aW9ucy4KLSAgICAgICAgYXZhaWxhYmxlX2NoYXJzID0gcmFuZ2UoMHgyMSwgMHgyZiArIDEpICsg
cmFuZ2UoMHgzYSwgMHg3ZSArIDEpCi0gICAgICAgIG4gPSByYW5kb20ucmFuZGludCgxLCAxMikK
LSAgICAgICAgZm9yIF8gaW4geHJhbmdlKG4pOgotICAgICAgICAgICAgY2ggPSByYW5kb20uY2hv
aWNlKGF2YWlsYWJsZV9jaGFycykKLSAgICAgICAgICAgIHBvcyA9IHJhbmRvbS5yYW5kaW50KDAs
IGxlbihrZXkpKQotICAgICAgICAgICAga2V5ID0ga2V5WzA6cG9zXSArIGNocihjaCkgKyBrZXlb
cG9zOl0KLSAgICAgICAgIyA0LjEgMjIuIGluc2VydCAvc3BhY2VzX24vIFUrMDAyMCBTUEFDRSBj
aGFyYWN0ZXJzIGludG8gL2tleV9uLyBhdAotICAgICAgICAjIHJhbmRvbSBwb3NpdGlvbnMgb3Ro
ZXIgdGhhbiBzdGFydCBvciBlbmQgb2YgdGhlIHN0cmluZy4KLSAgICAgICAgZm9yIF8gaW4geHJh
bmdlKHNwYWNlcyk6Ci0gICAgICAgICAgICBwb3MgPSByYW5kb20ucmFuZGludCgxLCBsZW4oa2V5
KSAtIDEpCi0gICAgICAgICAgICBrZXkgPSBrZXlbMDpwb3NdICsgJyAnICsga2V5W3BvczpdCi0g
ICAgICAgIHJldHVybiBudW1iZXIsIGtleQotCi0gICAgZGVmIF9nZW5lcmF0ZV9rZXkzKHNlbGYp
OgotICAgICAgICAjIDQuMSAyNi4gbGV0IC9rZXkzLyBiZSBhIHN0cmluZyBjb25zaXN0aW5nIG9m
IGVpZ2h0IHJhbmRvbSBieXRlcyAob3IKLSAgICAgICAgIyBlcXVpdmFsZW50bHksIGEgcmFuZG9t
IDY0IGJpdCBpbnRlZ2VyIGVuY29kZWQgaW4gYSBiaWctZW5kaWFuIG9yZGVyKS4KLSAgICAgICAg
cmV0dXJuICcnLmpvaW4oW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3IgXyBpbiB4cmFu
Z2UoOCldKQotCi0KLWNsYXNzIENsaWVudENvbm5lY3Rpb24ob2JqZWN0KToKLSAgICAiIiJBIHdy
YXBwZXIgZm9yIHNvY2tldCBvYmplY3QgdG8gcHJvdmlkZSB0aGUgbXBfY29ubiBpbnRlcmZhY2Uu
Ci0gICAgbW9kX3B5d2Vic29ja2V0IGxpYnJhcnkgaXMgZGVzaWduZWQgdG8gYmUgd29ya2luZyBv
biBBcGFjaGUgbW9kX3B5dGhvbidzCi0gICAgbXBfY29ubiBvYmplY3QuCi0gICAgIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0KToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29j
a2V0Ci0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5z
ZW5kYWxsKGRhdGEpCi0KLSAgICBkZWYgcmVhZChzZWxmLCBuKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3NvY2tldC5yZWN2KG4pCi0KLSAgICBkZWYgZ2V0X3JlbW90ZV9hZGRyKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fc29ja2V0LmdldHBlZXJuYW1lKCkKLSAgICByZW1vdGVfYWRkciA9
IHByb3BlcnR5KGdldF9yZW1vdGVfYWRkcikKLQotCi1jbGFzcyBDbGllbnRSZXF1ZXN0KG9iamVj
dCk6Ci0gICAgIiIiQSB3cmFwcGVyIGNsYXNzIGp1c3QgdG8gbWFrZSBpdCBhYmxlIHRvIHBhc3Mg
YSBzb2NrZXQgb2JqZWN0IHRvCi0gICAgZnVuY3Rpb25zIHRoYXQgZXhwZWN0IGEgbXBfcmVxdWVz
dCBvYmplY3QuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0KToKLSAg
ICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAg
ICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0gICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IENsaWVu
dENvbm5lY3Rpb24oc29ja2V0KQotCi0KLWRlZiBfaW1wb3J0X3NzbCgpOgotICAgIGdsb2JhbCBz
c2wKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBzc2wKLSAgICAgICAgcmV0dXJuIFRydWUKLSAg
ICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWRlZiBfaW1w
b3J0X3B5b3BlbnNzbCgpOgotICAgIGdsb2JhbCBPcGVuU1NMCi0gICAgdHJ5OgotICAgICAgICBp
bXBvcnQgT3BlblNTTC5TU0wKLSAgICAgICAgcmV0dXJuIFRydWUKLSAgICBleGNlcHQgSW1wb3J0
RXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWNsYXNzIEVjaG9DbGllbnQob2JqZWN0
KToKLSAgICAiIiJXZWJTb2NrZXQgZWNobyBjbGllbnQuIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0gICAgICAg
IHNlbGYuX3NvY2tldCA9IE5vbmUKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9j
bGFzc19sb2dnZXIoc2VsZikKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgICIiIlJ1biB0
aGUgY2xpZW50LgotCi0gICAgICAgIFNoYWtlIGhhbmRzIGFuZCB0aGVuIHJlcGVhdCBzZW5kaW5n
IG1lc3NhZ2UgYW5kIHJlY2VpdmluZyBpdHMgZWNoby4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
c2VsZi5fc29ja2V0ID0gc29ja2V0LnNvY2tldCgpCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZXR0
aW1lb3V0KHNlbGYuX29wdGlvbnMuc29ja2V0X3RpbWVvdXQpCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIHNlbGYuX3NvY2tldC5jb25uZWN0KChzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3Bv
cnQpKQotICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfdGxzOgotICAgICAgICAgICAg
ICAgIHNlbGYuX3NvY2tldCA9IF9UTFNTb2NrZXQoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu
X3NvY2tldCwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy50bHNfbW9kdWxlLAot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnRsc192ZXJzaW9uLAotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRpc2FibGVfdGxzX2NvbXByZXNzaW9uKQotCi0gICAg
ICAgICAgICB2ZXJzaW9uID0gc2VsZi5fb3B0aW9ucy5wcm90b2NvbF92ZXJzaW9uCi0KLSAgICAg
ICAgICAgIGlmICh2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCBvcgotICAgICAg
ICAgICAgICAgIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzKToKLSAgICAgICAg
ICAgICAgICBzZWxmLl9oYW5kc2hha2UgPSBDbGllbnRIYW5kc2hha2VQcm9jZXNzb3IoCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3NvY2tldCwgc2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAg
IGVsaWYgdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDA6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5faGFuZHNoYWtlID0gQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29ySHliaTAwKAotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQsIHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAg
ICAgICAgICdJbnZhbGlkIC0tcHJvdG9jb2wtdmVyc2lvbiBmbGFnOiAlcicgJSB2ZXJzaW9uKQot
Ci0gICAgICAgICAgICBzZWxmLl9oYW5kc2hha2UuaGFuZHNoYWtlKCkKLQotICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmluZm8oJ0Nvbm5lY3Rpb24gZXN0YWJsaXNoZWQnKQotCi0gICAgICAgICAg
ICByZXF1ZXN0ID0gQ2xpZW50UmVxdWVzdChzZWxmLl9zb2NrZXQpCi0KLSAgICAgICAgICAgIHZl
cnNpb25fbWFwID0gewotICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwODog
Y29tbW9uLlZFUlNJT05fSFlCSTA4LAotICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9O
X0hZQkkxMzogY29tbW9uLlZFUlNJT05fSFlCSTEzLAotICAgICAgICAgICAgICAgIF9QUk9UT0NP
TF9WRVJTSU9OX0hZQkkwMDogY29tbW9uLlZFUlNJT05fSFlCSTAwfQotICAgICAgICAgICAgcmVx
dWVzdC53c192ZXJzaW9uID0gdmVyc2lvbl9tYXBbdmVyc2lvbl0KLQotICAgICAgICAgICAgaWYg
KHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTA4IG9yCi0gICAgICAgICAgICAgICAg
dmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMTMpOgotICAgICAgICAgICAgICAgIHN0
cmVhbV9vcHRpb24gPSBTdHJlYW1PcHRpb25zKCkKLSAgICAgICAgICAgICAgICBzdHJlYW1fb3B0
aW9uLm1hc2tfc2VuZCA9IFRydWUKLSAgICAgICAgICAgICAgICBzdHJlYW1fb3B0aW9uLnVubWFz
a19yZWNlaXZlID0gRmFsc2UKLQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZGVm
bGF0ZV9mcmFtZSBpcyBub3QgRmFsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9
IHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZQotICAgICAgICAgICAgICAgICAgICBwcm9jZXNz
b3Iuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbikKLQotICAgICAgICAgICAgICAg
IGlmIHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSBpcyBub3QgRmFsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgIGZyYW1lciA9IHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2Vf
ZGVmbGF0ZQotICAgICAgICAgICAgICAgICAgICBmcmFtZXIuc2V0dXBfc3RyZWFtX29wdGlvbnMo
c3RyZWFtX29wdGlvbikKLQotICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbSA9IFN0cmVhbShy
ZXF1ZXN0LCBzdHJlYW1fb3B0aW9uKQotICAgICAgICAgICAgZWxpZiB2ZXJzaW9uID09IF9QUk9U
T0NPTF9WRVJTSU9OX0hZQkkwMDoKLSAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0gPSBTdHJl
YW1IaXhpZTc1KHJlcXVlc3QsIFRydWUpCi0KLSAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYu
X29wdGlvbnMubWVzc2FnZS5zcGxpdCgnLCcpOgotICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVh
bS5zZW5kX21lc3NhZ2UobGluZSkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZl
cmJvc2U6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ICdTZW5kOiAlcycgJSBsaW5lCi0gICAg
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICByZWNlaXZlZCA9IHNlbGYuX3N0
cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotCi0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX29w
dGlvbnMudmVyYm9zZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICdSZWN2OiAlcycg
JSByZWNlaXZlZAotICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyYm9zZToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50ICdFcnJvcjogJXMnICUgZQotICAgICAgICAgICAgICAgICAgICByYWlzZQot
Ci0gICAgICAgICAgICBzZWxmLl9kb19jbG9zaW5nX2hhbmRzaGFrZSgpCi0gICAgICAgIGZpbmFs
bHk6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXQuY2xvc2UoKQotCi0gICAgZGVmIF9kb19jbG9z
aW5nX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgIiIiUGVyZm9ybSBjbG9zaW5nIGhhbmRzaGFr
ZSB1c2luZyB0aGUgc3BlY2lmaWVkIGNsb3NpbmcgZnJhbWUuIiIiCi0KLSAgICAgICAgaWYgc2Vs
Zi5fb3B0aW9ucy5tZXNzYWdlLnNwbGl0KCcsJylbLTFdID09IF9HT09EQllFX01FU1NBR0U6Ci0g
ICAgICAgICAgICAjIHJlcXVlc3RlZCBzZXJ2ZXIgaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtl
LCBzbwotICAgICAgICAgICAgIyBleHBlY3RpbmcgY2xvc2luZyBoYW5kc2hha2UgbWVzc2FnZSBm
cm9tIHNlcnZlci4KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdXYWl0IGZvciBzZXJ2
ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBz
ZWxmLl9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UgaXMg
Tm9uZToKLSAgICAgICAgICAgICAgICBwcmludCAnUmVjdiBjbG9zZScKLSAgICAgICAgICAgICAg
ICBwcmludCAnU2VuZCBhY2snCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCi0g
ICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBjbG9zaW5nIGhhbmRzaGFrZSBhbmQgc2VudCBh
Y2snKQotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICBwcmludCAnU2VuZCBjbG9zZScK
LSAgICAgICAgc2VsZi5fc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotICAgICAgICBzZWxmLl9s
b2dnZXIuaW5mbygnU2VudCBjbG9zaW5nIGhhbmRzaGFrZScpCi0gICAgICAgIHByaW50ICdSZWN2
IGFjaycKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1JlY2VpdmVkIGFjaycpCi0KLQotZGVm
IG1haW4oKToKLSAgICBzeXMuc3Rkb3V0ID0gY29kZWNzLmdldHdyaXRlcigndXRmLTgnKShzeXMu
c3Rkb3V0KQotCi0gICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKCkKLSAgICAjIFdlIGFjY2VwdCAt
LWNvbW1hbmRfbGluZV9mbGFnIHN0eWxlIGZsYWdzIHdoaWNoIGlzIHRoZSBzYW1lIGFzIEdvb2ds
ZQotICAgICMgZ2ZsYWdzIGluIGFkZGl0aW9uIHRvIGNvbW1vbiAtLWNvbW1hbmQtbGluZS1mbGFn
IHN0eWxlIGZsYWdzLgotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcycsICctLXNlcnZlci1ob3N0
JywgJy0tc2VydmVyX2hvc3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3NlcnZlcl9o
b3N0JywgdHlwZT0nc3RyaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PSdsb2Nh
bGhvc3QnLCBoZWxwPSdzZXJ2ZXIgaG9zdCcpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1wJywg
Jy0tc2VydmVyLXBvcnQnLCAnLS1zZXJ2ZXJfcG9ydCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVzdD0nc2VydmVyX3BvcnQnLCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ9X1VOREVGSU5FRF9QT1JULCBoZWxwPSdzZXJ2ZXIgcG9ydCcpCi0gICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy1vJywgJy0tb3JpZ2luJywgZGVzdD0nb3JpZ2luJywgdHlwZT0nc3RyaW5nJywK
LSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsIGhlbHA9J29yaWdpbicpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1yJywgJy0tcmVzb3VyY2UnLCBkZXN0PSdyZXNvdXJjZScsIHR5
cGU9J3N0cmluZycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nL2VjaG8nLCBoZWxw
PSdyZXNvdXJjZSBwYXRoJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLW0nLCAnLS1tZXNzYWdl
JywgZGVzdD0nbWVzc2FnZScsIHR5cGU9J3N0cmluZycsCi0gICAgICAgICAgICAgICAgICAgICAg
aGVscD0oJ2NvbW1hLXNlcGFyYXRlZCBtZXNzYWdlcyB0byBzZW5kLiAnCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAnJXMgd2lsbCBmb3JjZSBjbG9zZSB0aGUgY29ubmVjdGlvbiBmcm9tIHNl
cnZlci4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfR09PREJZRV9NRVNTQUdFKSkK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLXEnLCAnLS1xdWlldCcsIGRlc3Q9J3ZlcmJvc2UnLCBh
Y3Rpb249J3N0b3JlX2ZhbHNlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUs
IGhlbHA9J3N1cHByZXNzIG1lc3NhZ2VzJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXQnLCAn
LS10bHMnLCBkZXN0PSd1c2VfdGxzJywgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSd1c2UgVExTICh3c3M6Ly8pLiBCeSBkZWZh
dWx0LCAnCi0gICAgICAgICAgICAgICAgICAgICAgJ2l0IGxvb2tzIGZvciBzc2wgYW5kIHB5T3Bl
blNTTCBtb2R1bGUgYW5kIHVzZXMgZm91bmQgJwotICAgICAgICAgICAgICAgICAgICAgICdvbmUu
IFVzZSAtLXRscy1tb2R1bGUgb3B0aW9uIHRvIHNwZWNpZnkgd2hpY2ggbW9kdWxlICcKLSAgICAg
ICAgICAgICAgICAgICAgICAndG8gdXNlJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMt
bW9kdWxlJywgJy0tdGxzX21vZHVsZScsIGRlc3Q9J3Rsc19tb2R1bGUnLAotICAgICAgICAgICAg
ICAgICAgICAgIHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1b
X1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNfQllfUFlPUEVOU1NMXSwKLSAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSdVc2Ugc3NsIG1vZHVsZSBpZiAiJXMiIGlzIHNwZWNpZmllZC4gJwot
ICAgICAgICAgICAgICAgICAgICAgICdVc2UgcHlPcGVuU1NMIG1vZHVsZSBpZiAiJXMiIGlzIHNw
ZWNpZmllZCcgJQotICAgICAgICAgICAgICAgICAgICAgIChfVExTX0JZX1NUQU5EQVJEX01PRFVM
RSwgX1RMU19CWV9QWU9QRU5TU0wpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy12ZXJz
aW9uJywgJy0tdGxzX3ZlcnNpb24nLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3Rsc192
ZXJzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdzdHJpbmcnLCBkZWZhdWx0PV9U
TFNfVkVSU0lPTl9TU0wyMywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdUTFMvU1NMIHZl
cnNpb24gdG8gdXNlLiBPbmUgb2YgXCcnICsKLSAgICAgICAgICAgICAgICAgICAgICBfVExTX1ZF
UlNJT05fU1NMMjMgKyAnXCcgKFNTTCB2ZXJzaW9uIDIgb3IgMyksIFwnJyArCi0gICAgICAgICAg
ICAgICAgICAgICAgX1RMU19WRVJTSU9OX1NTTDMgKyAnXCcgKFNTTCB2ZXJzaW9uIDMpLCBcJycg
KwotICAgICAgICAgICAgICAgICAgICAgIF9UTFNfVkVSU0lPTl9UTFMxICsgJ1wnIChUTFMgdmVy
c2lvbiAxKScpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZGlzYWJsZS10bHMtY29tcHJlc3Np
b24nLCAnLS1kaXNhYmxlX3Rsc19jb21wcmVzc2lvbicsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVzdD0nZGlzYWJsZV90bHNfY29tcHJlc3Npb24nLAotICAgICAgICAgICAgICAgICAgICAgIGFj
dGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAg
aGVscD0nRGlzYWJsZSBUTFMgY29tcHJlc3Npb24uIEF2YWlsYWJsZSBvbmx5IHdoZW4gJwotICAg
ICAgICAgICAgICAgICAgICAgICdweU9wZW5TU0wgbW9kdWxlIGlzIHVzZWQuJykKLSAgICBwYXJz
ZXIuYWRkX29wdGlvbignLWsnLCAnLS1zb2NrZXQtdGltZW91dCcsICctLXNvY2tldF90aW1lb3V0
JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzb2NrZXRfdGltZW91dCcsIHR5cGU9J2lu
dCcsIGRlZmF1bHQ9X1RJTUVPVVRfU0VDLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1Rp
bWVvdXQoc2VjKSBmb3Igc29ja2V0cycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZHJhZnQ3
NScsIGRlc3Q9J2RyYWZ0NzUnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVf
dHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nT2Jzb2xl
dGUgb3B0aW9uLiBEb25cJ3QgdXNlIHRoaXMuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1w
cm90b2NvbC12ZXJzaW9uJywgJy0tcHJvdG9jb2xfdmVyc2lvbicsCi0gICAgICAgICAgICAgICAg
ICAgICAgZGVzdD0ncHJvdG9jb2xfdmVyc2lvbicsCi0gICAgICAgICAgICAgICAgICAgICAgdHlw
ZT0nc3RyaW5nJywgZGVmYXVsdD1fUFJPVE9DT0xfVkVSU0lPTl9IWUJJMTMsCi0gICAgICAgICAg
ICAgICAgICAgICAgaGVscD0nV2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24gdG8gdXNlLiBPbmUg
b2YgXCcnICsKLSAgICAgICAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMTMg
KyAnXCcsIFwnJyArCi0gICAgICAgICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSFlC
STA4ICsgJ1wnLCBcJycgKwotICAgICAgICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9O
X0hZQkkwMCArICdcJycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdmVyc2lvbi1oZWFkZXIn
LCAnLS12ZXJzaW9uX2hlYWRlcicsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndmVyc2lv
bl9oZWFkZXInLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2ludCcsIGRlZmF1bHQ9LTEs
Ci0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nU3BlY2lmeSBTZWMtV2ViU29ja2V0LVZlcnNp
b24gaGVhZGVyIHZhbHVlJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1kZWZsYXRlLWZyYW1l
JywgJy0tZGVmbGF0ZV9mcmFtZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nZGVmbGF0
ZV9mcmFtZScsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVm
YXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdVc2UgdGhlIGRlZmxhdGUt
ZnJhbWUgZXh0ZW5zaW9uLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdXNlLXBlcm1lc3Nh
Z2UtZGVmbGF0ZScsICctLXVzZV9wZXJtZXNzYWdlX2RlZmxhdGUnLAotICAgICAgICAgICAgICAg
ICAgICAgIGRlc3Q9J3VzZV9wZXJtZXNzYWdlX2RlZmxhdGUnLAotICAgICAgICAgICAgICAgICAg
ICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgaGVscD0nVXNlIHRoZSBwZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9uLicpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWxldmVsJywgJy0tbG9nX2xldmVsJywgdHlwZT0nY2hv
aWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdsb2dfbGV2ZWwnLCBkZWZhdWx0PSd3
YXJuJywKLSAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZGVidWcnLCAnaW5mbycsICd3
YXJuJywgJ2Vycm9yJywgJ2NyaXRpY2FsJ10sCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0n
TG9nIGxldmVsLicpCi0KLSAgICAob3B0aW9ucywgdW51c2VkX2FyZ3MpID0gcGFyc2VyLnBhcnNl
X2FyZ3MoKQotCi0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZyhsZXZlbD1sb2dnaW5nLmdldExldmVs
TmFtZShvcHRpb25zLmxvZ19sZXZlbC51cHBlcigpKSkKLQotICAgIGlmIG9wdGlvbnMuZHJhZnQ3
NToKLSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnLS1kcmFmdDc1IG9wdGlvbiBpcyBvYnNvbGV0
ZS4nKQotICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgaWYgb3B0aW9ucy5wcm90b2NvbF92ZXJz
aW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hJWElFNzU6Ci0gICAgICAgIGxvZ2dpbmcuY3JpdGlj
YWwoCi0gICAgICAgICAgICAnVmFsdWUgJXMgaXMgb2Jzb2xldGUgZm9yIC0tcHJvdG9jb2xfdmVy
c2lvbiBvcHRpb25zJyAlCi0gICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9ISVhJRTc1KQot
ICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgaWYgb3B0aW9ucy51c2VfdGxzOgotICAgICAgICBp
ZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIF9pbXBvcnRfc3Ns
KCk6Ci0gICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9TVEFOREFS
RF9NT0RVTEUKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBzc2wgbW9kdWxl
JykKLSAgICAgICAgICAgIGVsaWYgX2ltcG9ydF9weW9wZW5zc2woKToKLSAgICAgICAgICAgICAg
ICBvcHRpb25zLnRsc19tb2R1bGUgPSBfVExTX0JZX1BZT1BFTlNTTAotICAgICAgICAgICAgICAg
IGxvZ2dpbmcuZGVidWcoJ1VzaW5nIHB5T3BlblNTTCBtb2R1bGUnKQotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ1RMUyBzdXBwb3J0IHJlcXVpcmVzIHNzbCBvciBweU9wZW5TU0wgbW9kdWxlLicpCi0g
ICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICAgICAgZWxpZiBvcHRpb25zLnRsc19tb2R1
bGUgPT0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEU6Ci0gICAgICAgICAgICBpZiBub3QgX2ltcG9y
dF9zc2woKToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdzc2wgbW9kdWxlIGlz
IG5vdCBhdmFpbGFibGUnKQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVs
aWYgb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfUFlPUEVOU1NMOgotICAgICAgICAgICAg
aWYgbm90IF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0
aWNhbCgncHlPcGVuU1NMIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKLSAgICAgICAgICAgICAg
ICBzeXMuZXhpdCgxKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNh
bCgnSW52YWxpZCAtLXRscy1tb2R1bGUgb3B0aW9uOiAlcicsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSkKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0K
LSAgICAgICAgaWYgKG9wdGlvbnMuZGlzYWJsZV90bHNfY29tcHJlc3Npb24gYW5kCi0gICAgICAg
ICAgICBvcHRpb25zLnRsc19tb2R1bGUgIT0gX1RMU19CWV9QWU9QRU5TU0wpOgotICAgICAgICAg
ICAgbG9nZ2luZy5jcml0aWNhbCgnWW91IGNhbiBkaXNhYmxlIFRMUyBjb21wcmVzc2lvbiBvbmx5
IHdoZW4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHlPcGVuU1NMIG1vZHVsZSBp
cyB1c2VkLicpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgIGVsc2U6Ci0gICAgICAgIGlm
IG9wdGlvbnMudGxzX21vZHVsZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3Jp
dGljYWwoJ1VzZSAtLXRscy1tb2R1bGUgb3B0aW9uIG9ubHkgdG9nZXRoZXIgd2l0aCAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICctLXVzZS10bHMgb3B0aW9uLicpCi0gICAgICAgICAg
ICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIG9wdGlvbnMuZGlzYWJsZV90bHNfY29tcHJlc3Np
b246Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdVc2UgLS1kaXNhYmxlLXRscy1jb21w
cmVzc2lvbiBvbmx5IHRvZ2V0aGVyICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dp
dGggLS11c2UtdGxzIG9wdGlvbi4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICMg
RGVmYXVsdCBwb3J0IG51bWJlciBkZXBlbmRzIG9uIHdoZXRoZXIgVExTIGlzIHVzZWQuCi0gICAg
aWYgb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9PSBfVU5ERUZJTkVEX1BPUlQ6Ci0gICAgICAgIGlmIG9w
dGlvbnMudXNlX3RsczoKLSAgICAgICAgICAgIG9wdGlvbnMuc2VydmVyX3BvcnQgPSBjb21tb24u
REVGQVVMVF9XRUJfU09DS0VUX1NFQ1VSRV9QT1JUCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBvcHRpb25zLnNlcnZlcl9wb3J0ID0gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUCi0K
LSAgICAjIG9wdHBhcnNlIGRvZXNuJ3Qgc2VlbSB0byBoYW5kbGUgbm9uLWFzY2lpIGRlZmF1bHQg
dmFsdWVzLgotICAgICMgU2V0IGRlZmF1bHQgbWVzc2FnZSBoZXJlLgotICAgIGlmIG5vdCBvcHRp
b25zLm1lc3NhZ2U6Ci0gICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IHUnSGVsbG8sXHU2NWU1XHU2
NzJjJyAgICMgIkphcGFuIiBpbiBKYXBhbmVzZQotCi0gICAgRWNob0NsaWVudChvcHRpb25zKS5y
dW4oKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgbWFpbigpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fbm9leHRf
d3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX25vZXh0X3dzaC5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMWRmNTE1MTIyNzExMWUxMTQ0MjRjNTU4NmExNDJhOWFkYjdkNjA0
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBA
QAotIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotX0dPT0RCWUVfTUVTU0FHRSA9IHUnR29vZGJ5ZScKLQot
Ci1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgIiIiUmVj
ZWl2ZWQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciB2YWx1ZSBpcyBwYXJzZWQgaW50
bwotICAgIHJlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMuIHB5d2Vic29ja2V0IGNyZWF0
ZXMgZXh0ZW5zaW9uCi0gICAgcHJvY2Vzc29ycyB1c2luZyBpdCBiZWZvcmUgZG9fZXh0cmFfaGFu
ZHNoYWtlIGNhbGwgYW5kIG5ldmVyIGxvb2tzIGF0IGl0Ci0gICAgYWZ0ZXIgdGhlIGNhbGwuCi0K
LSAgICBUbyByZWplY3QgcmVxdWVzdGVkIGV4dGVuc2lvbnMsIGNsZWFyIHRoZSBwcm9jZXNzb3Ig
bGlzdC4KLSAgICAiIiIKLQotICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBb
XQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgIiIiRWNo
by4gU2FtZSBhcyBlY2hvX3dzaC5weS4iIiIKLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGxp
bmUgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBsaW5l
IGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5l
LCB1bmljb2RlKToKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShs
aW5lLCBiaW5hcnk9RmFsc2UpCi0gICAgICAgICAgICBpZiBsaW5lID09IF9HT09EQllFX01FU1NB
R0U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBy
ZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PVRydWUpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fd3NoLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzg2NDZjMzJjZWI1MTVmMTVkZDU3MjYyMjY4OWM3OWVlNjFlNTQzZi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Vj
aG9fd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAx
MSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotX0dPT0RCWUVfTUVTU0FHRSA9IHUnR29vZGJ5ZScKLQotCi1kZWYgd2ViX3NvY2tldF9k
b19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgIyBUaGlzIGV4YW1wbGUgaGFuZGxlciBh
Y2NlcHRzIGFueSByZXF1ZXN0LiBTZWUgb3JpZ2luX2NoZWNrX3dzaC5weSBmb3IgaG93Ci0gICAg
IyB0byByZWplY3QgYWNjZXNzIGZyb20gdW50cnVzdGVkIHNjcmlwdHMgYmFzZWQgb24gb3JpZ2lu
IHZhbHVlLgotCi0gICAgcGFzcyAgIyBBbHdheXMgYWNjZXB0LgotCi0KLWRlZiB3ZWJfc29ja2V0
X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgbGluZSA9
IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIGxpbmUgaXMg
Tm9uZToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBpZiBpc2luc3RhbmNlKGxpbmUsIHVu
aWNvZGUpOgotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUs
IGJpbmFyeT1GYWxzZSkKLSAgICAgICAgICAgIGlmIGxpbmUgPT0gX0dPT0RCWUVfTUVTU0FHRToK
LSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlcXVl
c3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5lLCBiaW5hcnk9VHJ1ZSkKLQotCi0jIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dp
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGFkZGRmMjM3Y2Y3ZDQ3NjQ5NzM0N2QwOTVhMTIyOTk0MTc3ZTE0MDkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9ldmVudHNvdXJjZS5jZ2kKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0jIS91c3Iv
YmluL3B5dGhvbgotCi0jIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMg
ZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIENHSSBzY3JpcHQgZ2Vu
ZXJhdGVzIHRleHQvZXZlbnQtc3RyZWFtIHR5cGUgZGF0YSBzdHJlYW0gZm9yIHRlc3RpbmcKLXRo
ZSBTZXJ2ZXItU2VudCBFdmVudHMuCi0KLUl0IHdpbGwgb25seSB3b3JrIGNvcnJlY3RseSB3aXRo
IEhUVFAgc2VydmVycyB0aGF0IGRvIG5vdCBidWZmZXIgdGhlIG91dHB1dCBvZgotQ0dJIHNjcmlw
dHMuCi0iIiIKLQotCi1pbXBvcnQgc3lzCi1pbXBvcnQgdGltZQotCi1zeXMuc3Rkb3V0LndyaXRl
KCdDb250ZW50LXR5cGU6IHRleHQvZXZlbnQtc3RyZWFtXHJcblxyXG4nKQotCi1pZCA9IDAKLQot
d2hpbGUgVHJ1ZToKLSAgc3lzLnN0ZG91dC53cml0ZSgnZGF0YTogSGVsbG9cclxuaWQ6ICVkXHJc
blxyXG4nICUgaWQpCi0gIHN5cy5zdGRvdXQuZmx1c2goKQotCi0gIGlkID0gaWQgKyAxCi0KLSAg
dGltZS5zbGVlcCgxKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9ldmVudHNvdXJjZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS9ldmVudHNvdXJjZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxNTk4YTg4MDdkMWZmY2NlY2Y1ODVmMWJiNjU2ZmQyZDkwMmZjZDM5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4
YW1wbGUvZXZlbnRzb3VyY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLTwh
LS0KLUNvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQot
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmlidXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQot
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgotCi08IS0tCi1TaW1wbGUgZXhhbXBsZSBvZiB0
aGUgU2VydmVyLVNlbnQgRXZlbnRzCi1odHRwOi8vZGV2LnczLm9yZy9odG1sNS9ldmVudHNvdXJj
ZS8KLQotRm9yIGNvbXBhcmlzb24gd2l0aCB0aGUgV2ViU29ja2V0IFByb3RvY29sICYgQVBJLgot
Ci1SdW4gdGhlIHB5d2Vic29ja2V0IHdpdGggdGhlIC0tY2dpX3BhdGggcGFyYW1ldGVyLgotLS0+
Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+U2VydmVyLVNlbnQgRXZlbnRzIEV4YW1wbGU8L3Rp
dGxlPgotPHNjcmlwdD4KLXZhciBldmVudFNvdXJjZSA9IG51bGw7Ci0KLWZ1bmN0aW9uIGFkZFRv
TG9nKGRhdGEpIHsKLSAgbG9nQm94LnZhbHVlICs9IGRhdGEgKyAnXG4nOwotICBsb2dCb3guc2Ny
b2xsVG9wID0gMTAwMDAwMDsKLX0KLQotZnVuY3Rpb24gaW5pdCgpIHsKLSAgbG9nQm94ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwotCi0gIGV2ZW50U291cmNlICA9IG5ldyBFdmVu
dFNvdXJjZSgnL2V2ZW50c291cmNlLmNnaScpOwotICBldmVudFNvdXJjZS5vbm9wZW4gPSBmdW5j
dGlvbigpIHsKLSAgICBhZGRUb0xvZygnb25vcGVuIChyZWFkeVN0YXRlID0gJyArIGV2ZW50U291
cmNlLnJlYWR5U3RhdGUgKyAnKScpOwotICB9Ci0gIGV2ZW50U291cmNlLm9ubWVzc2FnZSA9IGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgYWRkVG9Mb2coZXZlbnQuZGF0YSk7Ci0gIH0KLSAgZXZlbnRT
b3VyY2Uub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgYWRkVG9Mb2coJ29uZXJyb3Ig
KHJlYWR5U3RhdGUgPSAnICsgZXZlbnRTb3VyY2UucmVhZHlTdGF0ZSArICcpJyk7Ci0gIH0KLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotPHRleHRhcmVhIGlk
PSJsb2ciIHJvd3M9IjEwIiBjb2xzPSI0MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTxwIHN0eWxl
PSJmb250LXNpemU6IHNtYWxsIj4KLSAgTWFrZSBzdXJlIHRoYXQgcHl3ZWJzb2NrZXQgaXMgcnVu
IHdpdGggLS1jZ2lfcGF0aCBwYXJhbWV0ZXIuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2hhbmRsZXJfbWFwLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUvaGFuZGxlcl9tYXAudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMWM0YzA5
YWEwMDkxZDhiYWYyOTA4OTU5OTA1ODY3ODQyYWViODY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotIyB3ZWJzb2NrZXQgaGFuZGxlciBtYXAg
ZmlsZSwgdXNlZCBieSBzdGFuZGFsb25lLnB5IC1tIG9wdGlvbi4KLSMgQSBsaW5lIHN0YXJ0aW5n
IHdpdGggJyMnIGlzIGEgY29tbWVudCBsaW5lLgotIyBFYWNoIGxpbmUgY29uc2lzdHMgb2YgJ2Fs
aWFzX3Jlc291cmNlX3BhdGgnIGFuZCAnZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCcKLSMgc2VwYXJh
dGVkIGJ5IHNwYWNlcy4KLSMgQWxpYXNpbmcgaXMgcHJvY2Vzc2VkIGZyb20gdGhlIHRvcCB0byB0
aGUgYm90dG9tIG9mIHRoZSBsaW5lLCBhbmQKLSMgJ2V4aXN0aW5nX3Jlc291cmNlX3BhdGgnIG11
c3QgZXhpc3QgYmVmb3JlIGl0IGlzIGFsaWFzZWQuCi0jIEZvciBleGFtcGxlLAotIyAgLyAvZWNo
bwotIyBtZWFucyB0aGF0IGEgcmVxdWVzdCB0byAnLycgd2lsbCBiZSBoYW5kbGVkIGJ5IGhhbmRs
ZXJzIGZvciAnL2VjaG8nLgotLyAvZWNobwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxl
L2hzdHNfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9oc3RzX3dzaC5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTg2MTk0NjkyMWFmMDQ1OTRkNjIwMjZiNDZmMDc3NThkZGZlNDAy
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL2hzdHNfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotIyBD
b3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVl
c3QpOgotICAgIHJlcXVlc3QuZXh0cmFfaGVhZGVycy5hcHBlbmQoCi0gICAgICAgICgnU3RyaWN0
LVRyYW5zcG9ydC1TZWN1cml0eScsICdtYXgtYWdlPTg2NDAwJykpCi0KLQotZGVmIHdlYl9zb2Nr
ZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21l
c3NhZ2UoJ0hlbGxvJywgYmluYXJ5PUZhbHNlKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9pbnRlcm5hbF9lcnJvcl93c2gucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZmU1ODFiNTRhNjQ4YzA5YTIyZjI1NDUxMjdkNzBkZjA1MTM0OTIzNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2lu
dGVybmFsX2Vycm9yX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLSMgQ29w
eXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCi0KLQot
ZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQot
Ci1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJhaXNlIG1zZ3V0
aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdJbnRlbnRpb25hbCcpCi0KLQotIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL29yaWdpbl9jaGVja193c2gucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9leGFtcGxlL29yaWdpbl9jaGVja193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGUwNTc2N2FiOTMyZmI1ODI4MjRhYWYxYTU3ZDkyNDljMzA0YmQ1MWUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhh
bXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAot
IyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLSMgVGhpcyBleGFtcGxlIGlzIGRlcml2ZWQgZnJvbSB0ZXN0L3Rl
c3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkuCi0KLQotZGVmIHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIGlmIHJlcXVlc3Qud3Nfb3JpZ2luID09
ICdodHRwOi8vZXhhbXBsZS5jb20nOgotICAgICAgICByZXR1cm4KLSAgICByYWlzZSBWYWx1ZUVy
cm9yKCdVbmFjY2VwdGFibGUgb3JpZ2luOiAlcicgJSByZXF1ZXN0LndzX29yaWdpbikKLQotCi1k
ZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0ZSgnb3JpZ2luX2NoZWNrX3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVz
dC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9leGFtcGxlL3B5d2Vic29ja2V0LmNvbmYgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3B5d2Vic29j
a2V0LmNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzNWQxMzBhNWM4NGY2OWRl
NGY4MWQzNThmYjJjZGI1YmRlNGFmNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mCisrKyAvZGV2
L251bGwKQEAgLTEsNDIgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSMKLSMgU2FtcGxlIGNv
bmZpZ3VyYXRpb24gZmlsZSBmb3IgYXBhY2hlMgotIwotTG9nTGV2ZWwgZGVidWcKLTxJZk1vZHVs
ZSBweXRob25fbW9kdWxlPgotICBQeXRob25QYXRoICJzeXMucGF0aCtbJy9tb2RfcHl3ZWJzb2Nr
ZXQnXSIKLSAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5oYW5kbGVyX3Jvb3QgL3Zhci93
d3cKLSAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5oYW5kbGVyX3NjYW4gL3Zhci93d3cv
d3MKLSAgI1B5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuYWxsb3dfZHJhZnQ3NSBPbgotICA8
TG9jYXRpb24gL3dzPgotICAgIFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIgbW9kX3B5d2Vic29j
a2V0LmhlYWRlcnBhcnNlcmhhbmRsZXIKLSAgPC9Mb2NhdGlvbj4KLTwvSWZNb2R1bGU+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGVhNTA4MGYxZjFhZWEzYTM3YTdlNzI5YzY3OGQ2YTEyMzM3YmVkYjcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9zcGVjaWFs
X2hlYWRlcnMuY2dpCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotIyEvdXNyL2Jpbi9w
eXRob24KLQotIyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls
ZQotIyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQK
LSMgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNk
Ci0KLSIiIkNHSSBzY3JpcHQgc2FtcGxlIGZvciB0ZXN0aW5nIGVmZmVjdCBvZiBIVFRQIGhlYWRl
cnMgb24gdGhlIG9yaWdpbiBwYWdlLgotCi1Ob3RlIHRoYXQgQ0dJIHNjcmlwdHMgZG9uJ3Qgd29y
ayBvbiB0aGUgc3RhbmRhbG9uZSBweXdlYnNvY2tldCBydW5uaW5nIGluIFRMUwotbW9kZS4KLSIi
IgotCi0KLXByaW50ICIiIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sCi1Db250ZW50LVNlY3VyaXR5
LVBvbGljeTogY29ubmVjdC1zcmMgc2VsZgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPjwvdGl0
bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci12YXIgc29ja2V0ID0gbmV3IFdlYlNvY2tl
dCgid3M6Ly9leGFtcGxlLmNvbSIpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+IiIiCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0aWwuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0
aWwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExY2FkNDk3NWVlMGNlYWVjNmE4
OTgyZTI5NTRjZjk2NGZkZTUyZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGlsLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTc3ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoK
LS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwot
Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotCi0vLyBVdGlsaXRpZXMgZm9yIGV4YW1wbGUgYXBwbGljYXRpb25zIChmb3IgYm90aCBtYWlu
IGFuZCB3b3JrZXIgdGhyZWFkKS4KLQotdmFyIHJlc3VsdHMgPSB7fTsKLQotZnVuY3Rpb24gZ2V0
VGltZVN0YW1wKCkgewotICByZXR1cm4gRGF0ZS5ub3coKTsKLX0KLQotZnVuY3Rpb24gZm9ybWF0
UmVzdWx0SW5LaUIoc2l6ZSwgdGltZVBlck1lc3NhZ2VJbk1zLCBzdGRkZXZUaW1lUGVyTWVzc2Fn
ZUluTXMsCi0gICAgc3BlZWQsIHByaW50U2l6ZSkgewotICBpZiAocHJpbnRTaXplKSB7Ci0gICAg
cmV0dXJuIChzaXplIC8gMTAyNCkgKwotICAgICAgICAnXHQnICsgdGltZVBlck1lc3NhZ2VJbk1z
LnRvRml4ZWQoMykgKwotICAgICAgICAoc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1zID09IC0xID8K
LSAgICAgICAgICAgICcnIDoKLSAgICAgICAgICAgICdcdCcgKyBzdGRkZXZUaW1lUGVyTWVzc2Fn
ZUluTXMudG9GaXhlZCgzKSkgKwotICAgICAgICAnXHQnICsgc3BlZWQudG9GaXhlZCgzKTsKLSAg
fSBlbHNlIHsKLSAgICByZXR1cm4gc3BlZWQudG9TdHJpbmcoKTsKLSAgfQotfQotCi1mdW5jdGlv
biBjbGVhckF2ZXJhZ2VEYXRhKCkgewotICByZXN1bHRzID0ge307Ci19Ci0KLWZ1bmN0aW9uIHJl
cG9ydEF2ZXJhZ2VEYXRhKGNvbmZpZykgewotICBjb25maWcuYWRkVG9TdW1tYXJ5KAotICAgICAg
J1NpemVbS2lCXVx0QXZlcmFnZSB0aW1lW21zXVx0U3RkZGV2IHRpbWVbbXNdXHRTcGVlZFtLQi9z
XScpOwotICBmb3IgKHZhciBzaXplIGluIHJlc3VsdHMpIHsKLSAgICB2YXIgYXZlcmFnZVRpbWVQ
ZXJNZXNzYWdlSW5NcyA9IHJlc3VsdHNbc2l6ZV0uc3VtX3QgLyByZXN1bHRzW3NpemVdLm47Ci0g
ICAgdmFyIHNwZWVkID0gY2FsY3VsYXRlU3BlZWRJbktCKHNpemUsIGF2ZXJhZ2VUaW1lUGVyTWVz
c2FnZUluTXMpOwotICAgIC8vIENhbGN1bGF0ZSBzYW1wbGUgc3RhbmRhcmQgZGV2aWF0aW9uCi0g
ICAgdmFyIHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5NcyA9IE1hdGguc3FydCgKLSAgICAgICAgKHJl
c3VsdHNbc2l6ZV0uc3VtX3QyIC8gcmVzdWx0c1tzaXplXS5uIC0KLSAgICAgICAgICAgIGF2ZXJh
Z2VUaW1lUGVyTWVzc2FnZUluTXMgKiBhdmVyYWdlVGltZVBlck1lc3NhZ2VJbk1zKSAqCi0gICAg
ICAgIHJlc3VsdHNbc2l6ZV0ubiAvCi0gICAgICAgIChyZXN1bHRzW3NpemVdLm4gLSAxKSk7Ci0g
ICAgY29uZmlnLmFkZFRvU3VtbWFyeShmb3JtYXRSZXN1bHRJbktpQigKLSAgICAgICAgc2l6ZSwg
YXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5Ncywgc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1zLCBzcGVl
ZCwKLSAgICAgICAgdHJ1ZSkpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGNhbGN1bGF0ZVNwZWVkSW5L
QihzaXplLCB0aW1lU3BlbnRJbk1zKSB7Ci0gIHJldHVybiBNYXRoLnJvdW5kKHNpemUgLyB0aW1l
U3BlbnRJbk1zICogMTAwMCkgLyAxMDAwOwotfQotCi1mdW5jdGlvbiBjYWxjdWxhdGVBbmRMb2dS
ZXN1bHQoY29uZmlnLCBzaXplLCBzdGFydFRpbWVJbk1zLCB0b3RhbFNpemUpIHsKLSAgdmFyIHRp
bWVTcGVudEluTXMgPSBnZXRUaW1lU3RhbXAoKSAtIHN0YXJ0VGltZUluTXM7Ci0gIHZhciBzcGVl
ZCA9IGNhbGN1bGF0ZVNwZWVkSW5LQih0b3RhbFNpemUsIHRpbWVTcGVudEluTXMpOwotICB2YXIg
dGltZVBlck1lc3NhZ2VJbk1zID0gdGltZVNwZW50SW5NcyAvICh0b3RhbFNpemUgLyBzaXplKTsK
LSAgaWYgKCFyZXN1bHRzW3NpemVdKSB7Ci0gICAgcmVzdWx0c1tzaXplXSA9IHtuOiAwLCBzdW1f
dDogMCwgc3VtX3QyOiAwfTsKLSAgfQotICBjb25maWcubWVhc3VyZVZhbHVlKHRpbWVQZXJNZXNz
YWdlSW5Ncyk7Ci0gIHJlc3VsdHNbc2l6ZV0ubiArKzsKLSAgcmVzdWx0c1tzaXplXS5zdW1fdCAr
PSB0aW1lUGVyTWVzc2FnZUluTXM7Ci0gIHJlc3VsdHNbc2l6ZV0uc3VtX3QyICs9IHRpbWVQZXJN
ZXNzYWdlSW5NcyAqIHRpbWVQZXJNZXNzYWdlSW5NczsKLSAgY29uZmlnLmFkZFRvTG9nKGZvcm1h
dFJlc3VsdEluS2lCKHNpemUsIHRpbWVQZXJNZXNzYWdlSW5NcywgLTEsIHNwZWVkLAotICAgICAg
Y29uZmlnLnByaW50U2l6ZSkpOwotfQotCi1mdW5jdGlvbiBmaWxsQXJyYXlCdWZmZXIoYnVmZmVy
LCBjKSB7Ci0gIHZhciBpOwotCi0gIHZhciB1MzJDb250ZW50ID0gYyAqIDB4MDEwMTAxMDE7Ci0K
LSAgdmFyIHUzMkJsb2NrcyA9IE1hdGguZmxvb3IoYnVmZmVyLmJ5dGVMZW5ndGggLyA0KTsKLSAg
dmFyIHUzMlZpZXcgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVyLCAwLCB1MzJCbG9ja3MpOwotICAv
LyBsZW5ndGggYXR0cmlidXRlIGlzIHNsb3cgb24gQ2hyb21lLiBEb24ndCB1c2UgaXQgZm9yIGxv
b3AgY29uZGl0aW9uLgotICBmb3IgKGkgPSAwOyBpIDwgdTMyQmxvY2tzOyArK2kpIHsKLSAgICB1
MzJWaWV3W2ldID0gdTMyQ29udGVudDsKLSAgfQotCi0gIC8vIEZyYWN0aW9uCi0gIHZhciB1OEJs
b2NrcyA9IGJ1ZmZlci5ieXRlTGVuZ3RoIC0gdTMyQmxvY2tzICogNDsKLSAgdmFyIHU4VmlldyA9
IG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgdTMyQmxvY2tzICogNCwgdThCbG9ja3MpOwotICBmb3Ig
KGkgPSAwOyBpIDwgdThCbG9ja3M7ICsraSkgewotICAgIHU4Vmlld1tpXSA9IGM7Ci0gIH0KLX0K
LQotZnVuY3Rpb24gdmVyaWZ5QXJyYXlCdWZmZXIoYnVmZmVyLCBleHBlY3RlZENoYXIpIHsKLSAg
dmFyIGk7Ci0KLSAgdmFyIGV4cGVjdGVkVTMyVmFsdWUgPSBleHBlY3RlZENoYXIgKiAweDAxMDEw
MTAxOwotCi0gIHZhciB1MzJCbG9ja3MgPSBNYXRoLmZsb29yKGJ1ZmZlci5ieXRlTGVuZ3RoIC8g
NCk7Ci0gIHZhciB1MzJWaWV3ID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlciwgMCwgdTMyQmxvY2tz
KTsKLSAgZm9yIChpID0gMDsgaSA8IHUzMkJsb2NrczsgKytpKSB7Ci0gICAgaWYgKHUzMlZpZXdb
aV0gIT0gZXhwZWN0ZWRVMzJWYWx1ZSkgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAg
fQotCi0gIHZhciB1OEJsb2NrcyA9IGJ1ZmZlci5ieXRlTGVuZ3RoIC0gdTMyQmxvY2tzICogNDsK
LSAgdmFyIHU4VmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgdTMyQmxvY2tzICogNCwgdThC
bG9ja3MpOwotICBmb3IgKGkgPSAwOyBpIDwgdThCbG9ja3M7ICsraSkgewotICAgIGlmICh1OFZp
ZXdbaV0gIT0gZXhwZWN0ZWRDaGFyKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICB9
Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1bmN0aW9uIHZlcmlmeUJsb2IoY29uZmlnLCBibG9i
LCBleHBlY3RlZENoYXIsIGRvbmVDYWxsYmFjaykgewotICB2YXIgcmVhZGVyID0gbmV3IEZpbGVS
ZWFkZXIoYmxvYik7Ci0gIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgY29uZmln
LmFkZFRvTG9nKCdGaWxlUmVhZGVyIEVycm9yOiAnICsgcmVhZGVyLmVycm9yLm1lc3NhZ2UpOwot
ICAgIGRvbmVDYWxsYmFjayhibG9iLnNpemUsIGZhbHNlKTsKLSAgfQotICByZWFkZXIub25sb2Fk
ZW5kID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHJlc3VsdCA9IHZlcmlmeUFycmF5QnVmZmVyKHJl
YWRlci5yZXN1bHQsIGV4cGVjdGVkQ2hhcik7Ci0gICAgZG9uZUNhbGxiYWNrKGJsb2Iuc2l6ZSwg
cmVzdWx0KTsKLSAgfQotICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYik7Ci19Ci0KLWZ1
bmN0aW9uIHZlcmlmeUFja25vd2xlZGdlbWVudChjb25maWcsIG1lc3NhZ2UsIHNpemUpIHsKLSAg
aWYgKHR5cGVvZiBtZXNzYWdlICE9ICdzdHJpbmcnKSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdJ
bnZhbGlkIGFjayB0eXBlOiAnICsgdHlwZW9mIG1lc3NhZ2UpOwotICAgIHJldHVybiBmYWxzZTsK
LSAgfQotICB2YXIgcGFyc2VkQWNrID0gcGFyc2VJbnQobWVzc2FnZSk7Ci0gIGlmIChpc05hTihw
YXJzZWRBY2spKSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdJbnZhbGlkIGFjayB2YWx1ZTogJyAr
IG1lc3NhZ2UpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBpZiAocGFyc2VkQWNrICE9IHNp
emUpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coCi0gICAgICAgICdFeHBlY3RlZCBhY2sgZm9yICcg
KyBzaXplICsgJ0IgYnV0IHJlY2VpdmVkIG9uZSBmb3IgJyArIHBhcnNlZEFjayArCi0gICAgICAg
ICdCJyk7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1
bmN0aW9uIGNsb25lQ29uZmlnKG9iaikgewotICB2YXIgbmV3T2JqID0ge307Ci0gIGZvciAoa2V5
IGluIG9iaikgewotICAgIG5ld09ialtrZXldID0gb2JqW2tleV07Ci0gIH0KLSAgcmV0dXJuIG5l
d09iajsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRpbF9tYWluLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS91dGlsX21haW4uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGIwM2QxYzJiZGM0NjJjNjU0ZjYwMzViYTk2ZTRlYjhhMmJhYTdiODQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGlsX21h
aW4uanMKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFVzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0vLyBsaWNlbnNlIHRoYXQgY2FuIGJl
IGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2ZWxvcGVycy5n
b29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi0vLyBVdGlsaXRpZXMgZm9yIGV4
YW1wbGUgYXBwbGljYXRpb25zIChmb3IgdGhlIG1haW4gdGhyZWFkIG9ubHkpLgotCi12YXIgbG9n
Qm94ID0gbnVsbDsKLXZhciBxdWV1ZWRMb2cgPSAnJzsKLQotdmFyIHN1bW1hcnlCb3ggPSBudWxs
OwotCi1mdW5jdGlvbiBxdWV1ZUxvZyhsb2cpIHsKLSAgcXVldWVkTG9nICs9IGxvZyArICdcbic7
Ci19Ci0KLWZ1bmN0aW9uIGFkZFRvTG9nKGxvZykgewotICBsb2dCb3gudmFsdWUgKz0gcXVldWVk
TG9nOwotICBxdWV1ZWRMb2cgPSAnJzsKLSAgbG9nQm94LnZhbHVlICs9IGxvZyArICdcbic7Ci0g
IGxvZ0JveC5zY3JvbGxUb3AgPSAxMDAwMDAwOwotfQotCi1mdW5jdGlvbiBhZGRUb1N1bW1hcnko
bG9nKSB7Ci0gIHN1bW1hcnlCb3gudmFsdWUgKz0gbG9nICsgJ1xuJzsKLSAgc3VtbWFyeUJveC5z
Y3JvbGxUb3AgPSAxMDAwMDAwOwotfQotCi0vLyB2YWx1ZTogZXhlY3V0aW9uIHRpbWUgaW4gbWls
bGlzZWNvbmRzLgotLy8gY29uZmlnLm1lYXN1cmVWYWx1ZSBpcyBpbnRlbmRlZCB0byBiZSB1c2Vk
IGluIFBlcmZvcm1hbmNlIFRlc3RzLgotLy8gRG8gbm90aGluZyBoZXJlIGluIG5vbi1QZXJmb3Jt
YW5jZVRlc3QuCi1mdW5jdGlvbiBtZWFzdXJlVmFsdWUodmFsdWUpIHsKLX0KLQotZnVuY3Rpb24g
Z2V0SW50RnJvbUlucHV0KGlkKSB7Ci0gIHJldHVybiBwYXJzZUludChkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCkudmFsdWUpOwotfQotCi1mdW5jdGlvbiBnZXRTdHJpbmdGcm9tUmFkaW9Cb3go
bmFtZSkgewotICB2YXIgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZW5jaG1hcmtf
Zm9ybScpW25hbWVdOwotICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpCi0g
ICAgaWYgKGxpc3QuaXRlbShpKS5jaGVja2VkKQotICAgICAgcmV0dXJuIGxpc3QuaXRlbShpKS52
YWx1ZTsKLSAgcmV0dXJuIHVuZGVmaW5lZDsKLX0KLWZ1bmN0aW9uIGdldEJvb2xGcm9tQ2hlY2tC
b3goaWQpIHsKLSAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGVja2VkOwot
fQotCi1mdW5jdGlvbiBnZXRJbnRBcnJheUZyb21JbnB1dChpZCkgewotICB2YXIgc3RyQXJyYXkg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkudmFsdWUuc3BsaXQoJywnKTsKLSAgcmV0dXJu
IHN0ckFycmF5Lm1hcChmdW5jdGlvbihzdHIpIHsgcmV0dXJuIHBhcnNlSW50KHN0ciwgMTApOyB9
KTsKLX0KLQotZnVuY3Rpb24gb25NZXNzYWdlKG1lc3NhZ2UpIHsKLSAgaWYgKG1lc3NhZ2UuZGF0
YS50eXBlID09PSAnYWRkVG9Mb2cnKQotICAgIGFkZFRvTG9nKG1lc3NhZ2UuZGF0YS5kYXRhKTsK
LSAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdhZGRUb1N1bW1hcnknKQotICAgIGFk
ZFRvU3VtbWFyeShtZXNzYWdlLmRhdGEuZGF0YSk7Ci0gIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50
eXBlID09PSAnbWVhc3VyZVZhbHVlJykKLSAgICBtZWFzdXJlVmFsdWUobWVzc2FnZS5kYXRhLmRh
dGEpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGlsX3dvcmtlci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUvdXRpbF93b3JrZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI2NGY3ODI5ZDUyZDg1MDY0OTg4OWY5YjBhY2U5OTg1YzdiNjIxMWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGls
X3dvcmtlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLS8vIENvcHlyaWdodCAy
MDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vuc2UgdGhhdCBj
YW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0cHM6Ly9kZXZlbG9w
ZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLS8vIFV0aWxpdGllcyBm
b3IgZXhhbXBsZSBhcHBsaWNhdGlvbnMgKGZvciB0aGUgd29ya2VyIHRocmVhZHMgb25seSkuCi0K
LWZ1bmN0aW9uIHdvcmtlckFkZFRvTG9nKHRleHQpIHsKLSAgcG9zdE1lc3NhZ2Uoe3R5cGU6ICdh
ZGRUb0xvZycsIGRhdGE6IHRleHR9KTsKLX0KLQotZnVuY3Rpb24gd29ya2VyQWRkVG9TdW1tYXJ5
KHRleHQpIHsKLSAgcG9zdE1lc3NhZ2Uoe3R5cGU6ICdhZGRUb1N1bW1hcnknLCBkYXRhOiB0ZXh0
fSk7Ci19Ci0KLWZ1bmN0aW9uIHdvcmtlck1lYXN1cmVWYWx1ZSh2YWx1ZSkgewotICBwb3N0TWVz
c2FnZSh7dHlwZTogJ21lYXN1cmVWYWx1ZScsIGRhdGE6IHZhbHVlfSk7Ci19CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9leGFtcGxlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGYxZjc5OWJjNDFjNGFj
MTBjNTg2YzcxYmNhM2NiYjMwOWMxYjlhNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsNDMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9hYm9ydF9o
YW5kc2hha2Vfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9hYm9ydF93c2gucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL2FycmF5YnVmZmVyX2JlbmNobWFyay5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9i
ZW5jaF93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFyay5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
ZXhhbXBsZS9iZW5jaG1hcmsuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFya19oZWxwZXJf
d3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jbG9zZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxl
L2NvbnNvbGUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvY29va2llX3dzaC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L2V4YW1wbGUvZWNob19jbGllbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fbm9leHRfd3No
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZl
bnRzb3VyY2UuY2dpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9ldmVudHNvdXJjZS5odG1sCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2hzdHNfd3NoLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS9pbnRlcm5hbF9lcnJvcl93c2gucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFt
cGxlL29yaWdpbl9jaGVja193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3B5d2Vic29ja2V0LmNv
bmYKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9leGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFt
cGxlL3V0aWwuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0aWxfbWFpbi5qcwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4
YW1wbGUvdXRpbF93b3JrZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRt
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL2V4YW1wbGUveGhyX2JlbmNobWFyay5qcwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUv
eGhyX2V2ZW50X2xvZ2dlci5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9i
ZW5jaG1hcmsuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUveGhyX2JlbmNobWFyay5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODYyMjk3NzVmNWFjMDgyYTFmZGQzMjdhNDU5NWRm
OTFkMWZiZDUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL2V4YW1wbGUveGhyX2JlbmNobWFyay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MjIyICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6Ci0KLSAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmlidXRpb24uCi0gICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi1j
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgotCi08aHRtbD4KLTxo
ZWFkPgotPHRpdGxlPlhNTEh0dHBSZXF1ZXN0IGJlbmNobWFyazwvdGl0bGU+Ci08c2NyaXB0IHNy
Yz0idXRpbF9tYWluLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJ4aHJfYmVuY2htYXJrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12
YXIgYWRkcmVzc0JveCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGdldENvbmZpZygpIHsKLSAgcmV0dXJu
IHsKLSAgICBwcmVmaXhVcmw6IGFkZHJlc3NCb3gudmFsdWUsCi0gICAgcHJpbnRTaXplOiBnZXRC
b29sRnJvbUNoZWNrQm94KCdwcmludHNpemUnKSwKLSAgICBudW1YSFJzOiBnZXRJbnRGcm9tSW5w
dXQoJ251bVhIUnMnKSwKLSAgICBhc3luYzogZ2V0Qm9vbEZyb21DaGVja0JveCgnYXN5bmMnKSwK
LSAgICAvLyBJbml0aWFsIHNpemUgb2YgbWVzc2FnZXMuCi0gICAgbnVtSXRlcmF0aW9uczogZ2V0
SW50RnJvbUlucHV0KCdudW1pdGVyYXRpb25zJyksCi0gICAgbnVtV2FybVVwSXRlcmF0aW9uczog
Z2V0SW50RnJvbUlucHV0KCdudW13YXJtdXBpdGVyYXRpb25zJyksCi0gICAgc3RhcnRTaXplOiBn
ZXRJbnRGcm9tSW5wdXQoJ3N0YXJ0c2l6ZScpLAotICAgIC8vIFN0b3BzIGJlbmNobWFyayB3aGVu
IHRoZSBzaXplIG9mIG1lc3NhZ2UgZXhjZWVkcyB0aGlzIHRocmVzaG9sZC4KLSAgICBzdG9wVGhy
ZXNob2xkOiBnZXRJbnRGcm9tSW5wdXQoJ3N0b3B0aHJlc2hvbGQnKSwKLSAgICAvLyBJZiB0aGUg
c2l6ZSBvZiBlYWNoIG1lc3NhZ2UgaXMgc21hbGwsIHNlbmQvcmVjZWl2ZSBtdWx0aXBsZSBtZXNz
YWdlcwotICAgIC8vIHVudGlsIHRoZSBzdW0gb2Ygc2l6ZXMgcmVhY2hlcyB0aGlzIHRocmVzaG9s
ZC4KLSAgICAvLyBtaW5Ub3RhbDogZ2V0SW50RnJvbUlucHV0KCdtaW50b3RhbCcpLAotICAgIC8v
IG1pblRvdGFsIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQgb24gWEhSIGJlbmNobWFyawotICAgIG11
bHRpcGxpZXJzOiBnZXRJbnRBcnJheUZyb21JbnB1dCgnbXVsdGlwbGllcnMnKSwKLSAgICB2ZXJp
ZnlEYXRhOiBnZXRCb29sRnJvbUNoZWNrQm94KCd2ZXJpZnlkYXRhJykKLSAgfTsKLX0KLQotdmFy
IHdvcmtlciA9IG5ldyBXb3JrZXIoJ3hocl9iZW5jaG1hcmsuanMnKTsKLXdvcmtlci5vbm1lc3Nh
Z2UgPSBvbk1lc3NhZ2U7Ci0KLWZ1bmN0aW9uIG9uU2VuZEJlbmNobWFyaygpIHsKLSAgdmFyIGNv
bmZpZyA9IGdldENvbmZpZygpOwotICBjb25maWcuZGF0YVR5cGUgPSBnZXRTdHJpbmdGcm9tUmFk
aW9Cb3goJ2RhdGF0eXBlcmFkaW8nKTsKLQotICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnd29y
a2VyJykpIHsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3R5cGU6ICdzZW5kQmVuY2htYXJrJywg
Y29uZmlnOiBjb25maWd9KTsKLSAgfSBlbHNlIHsKLSAgICBjb25maWcuYWRkVG9Mb2cgPSBhZGRU
b0xvZzsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5ID0gYWRkVG9TdW1tYXJ5OwotICAgIGNvbmZp
Zy5tZWFzdXJlVmFsdWUgPSBtZWFzdXJlVmFsdWU7Ci0gICAgc2VuZEJlbmNobWFyayhjb25maWcp
OwotICB9Ci19Ci0KLWZ1bmN0aW9uIG9uUmVjZWl2ZUJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZp
ZyA9IGdldENvbmZpZygpOwotICBjb25maWcuZGF0YVR5cGUgPSBnZXRTdHJpbmdGcm9tUmFkaW9C
b3goJ2RhdGF0eXBlcmFkaW8nKTsKLQotICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2Vy
JykpIHsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3R5cGU6ICdyZWNlaXZlQmVuY2htYXJrJywg
Y29uZmlnOiBjb25maWd9KTsKLSAgfSBlbHNlIHsKLSAgICBjb25maWcuYWRkVG9Mb2cgPSBhZGRU
b0xvZzsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5ID0gYWRkVG9TdW1tYXJ5OwotICAgIGNvbmZp
Zy5tZWFzdXJlVmFsdWUgPSBtZWFzdXJlVmFsdWU7Ci0gICAgcmVjZWl2ZUJlbmNobWFyayhjb25m
aWcpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIG9uQmF0Y2hCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25m
aWcgPSBnZXRDb25maWcoKTsKLQotICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJykp
IHsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3R5cGU6ICdiYXRjaEJlbmNobWFyaycsIGNvbmZp
ZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0gYWRkVG9Mb2c7
Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBjb25maWcubWVh
c3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwotICAgIGJhdGNoQmVuY2htYXJrKGNvbmZpZyk7Ci0g
IH0KLX0KLQotZnVuY3Rpb24gb25TdG9wKCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7
Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpKSB7Ci0gICAgd29ya2VyLnBv
c3RNZXNzYWdlKHt0eXBlOiAnc3RvcCcsIGNvbmZpZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0g
ICAgY29uZmlnLmFkZFRvTG9nID0gYWRkVG9Mb2c7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9
IGFkZFRvU3VtbWFyeTsKLSAgICBjb25maWcubWVhc3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwot
ICAgIHN0b3AoY29uZmlnKTsKLSAgfQotfQotCi1mdW5jdGlvbiBpbml0KCkgewotICBhZGRyZXNz
Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZHJlc3MnKTsKLSAgbG9nQm94ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwotCi0gIHN1bW1hcnlCb3ggPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnc3VtbWFyeScpOwotCi0gIC8vIFNwZWNpYWwgYWRkcmVzcyBvZiBweXdl
YnNvY2tldCBmb3IgWEhSIGJlbmNobWFyay4KLSAgYWRkcmVzc0JveC52YWx1ZSA9ICcvMDczYmUw
MDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnOwotCi0gIGFkZFRvTG9nKHdpbmRvdy5uYXZpZ2F0
b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwotICBhZGRUb1N1bW1hcnkod2luZG93Lm5hdmln
YXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0iaW5pdCgpIj4KLQotPGZvcm0gaWQ9ImJlbmNobWFya19mb3JtIj4KLSAgdXJs
IHByZWZpeCA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFkZHJlc3MiIHNpemU9IjQwIj4KLSAgPGlu
cHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InNlbmQiIG9uY2xpY2s9Im9uU2VuZEJlbmNobWFyaygp
Ij4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InJlY2VpdmUiIG9uY2xpY2s9Im9uUmVj
ZWl2ZUJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9ImJhdGNoIiBv
bmNsaWNrPSJvbkJhdGNoQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1
ZT0ic3RvcCIgb25jbGljaz0ib25TdG9wKCkiPgotCi0gIDxici8+Ci0KLSAgPGlucHV0IHR5cGU9
ImNoZWNrYm94IiBpZD0icHJpbnRzaXplIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJwcmludHNp
emUiPlByaW50IHNpemUgYW5kIHRpbWUgcGVyIG1lc3NhZ2U8L2xhYmVsPgotICA8aW5wdXQgdHlw
ZT0iY2hlY2tib3giIGlkPSJ2ZXJpZnlkYXRhIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJ2ZXJp
ZnlkYXRhIj5WZXJpZnkgZGF0YTwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9
IndvcmtlciI+Ci0gIDxsYWJlbCBmb3I9IndvcmtlciI+UnVuIG9uIHdvcmtlcjwvbGFiZWw+Ci0g
IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImFzeW5jIiBjaGVja2VkPgotICA8bGFiZWwgZm9y
PSJhc3luYyI+QXN5bmM8L2xhYmVsPjxicj4KLSAgKFJlY2VpdmUgJmFtcDsmYW1wOyBOb24tV29y
a2VyICZhbXA7JmFtcDsgU3luYyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHNwZWMpCi0KLSAgPGJyLz4K
LQotICBQYXJhbWV0ZXJzOgotCi0gIDxici8+Ci0KLSAgPHRhYmxlPgotICAgIDx0cj4KLSAgICAg
IDx0ZD5OdW0gWEhSczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1Y
SFJzIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW1i
ZXIgb2YgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJu
dW1pdGVyYXRpb25zIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAg
IDx0ZD5OdW1iZXIgb2Ygd2FybS11cCBpdGVyYXRpb25zPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQg
dHlwZT0idGV4dCIgaWQ9Im51bXdhcm11cGl0ZXJhdGlvbnMiIHZhbHVlPSIwIj48L3RkPgotICAg
IDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPlN0YXJ0IHNpemU8L3RkPgotICAgICAgPHRkPjxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RhcnRzaXplIiB2YWx1ZT0iMTAyNDAiPjwvdGQ+Ci0gICAg
PC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3RvcCB0aHJlc2hvbGQ8L3RkPgotICAgICAgPHRk
PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RvcHRocmVzaG9sZCIgdmFsdWU9IjEwMjQwMDAwMCI+
PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5NaW5pbXVtIHRvdGFsPC90ZD4K
LSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im1pbnRvdGFsIiB2YWx1ZT0iMTAyNDAw
MDAwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk11bHRpcGxpZXJzPC90
ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im11bHRpcGxpZXJzIiB2YWx1ZT0i
NSwgMiI+PC90ZD4KLSAgICA8L3RyPgotICA8L3RhYmxlPgotCi0gIFNldCBkYXRhIHR5cGUKLSAg
PGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKLSAgICAg
ICAgIGlkPSJkYXRhdHlwZXJhZGlvdGV4dCIKLSAgICAgICAgIHZhbHVlPSJ0ZXh0IgotICAgICAg
ICAgY2hlY2tlZD48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvdGV4dCI+dGV4dDwvbGFiZWw+Ci0g
IDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCi0gICAg
ICAgICBpZD0iZGF0YXR5cGVyYWRpb2Jsb2IiCi0gICAgICAgICB2YWx1ZT0iYmxvYiIKLSAgICAg
ICAgID48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvYmxvYiI+YmxvYjwvbGFiZWw+Ci0gIDxpbnB1
dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCi0gICAgICAgICBp
ZD0iZGF0YXR5cGVyYWRpb2FycmF5YnVmZmVyIgotICAgICAgICAgdmFsdWU9ImFycmF5YnVmZmVy
IgotICAgICAgICAgPjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFkaW9hcnJheWJ1ZmZlciI+YXJyYXli
dWZmZXI8L2xhYmVsPgotPC9mb3JtPgotCi08ZGl2IGlkPSJsb2dfZGl2Ij4KLSAgPHRleHRhcmVh
Ci0gICAgICBpZD0ibG9nIiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48
L3RleHRhcmVhPgotPC9kaXY+Ci08ZGl2IGlkPSJzdW1tYXJ5X2RpdiI+Ci0gIFN1bW1hcnkKLSAg
PHRleHRhcmVhCi0gICAgICBpZD0ic3VtbWFyeSIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAw
JSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvZGl2PgotCi1Ob3RlOiBFZmZlY3Qgb2YgUlRUIGFu
ZCB0aW1lIHNwZW50IGZvciBBcnJheUJ1ZmZlciBjcmVhdGlvbiBpbiByZWNlaXZlIGJlbmNobWFy
a3MgYXJlIG5vdCBlbGltaW5hdGVkLgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9i
ZW5jaG1hcmsuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzM2M3Y2IzOGM0OWUx
NTlkYjVhNDE2ZDlhZmRhMDliMmVmMzg2Y2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfYmVuY2htYXJrLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMzg5ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4g
dGhlIENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20v
b3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLXZhciBpc1dvcmtlciA9IHR5cGVvZiBpbXBvcnRT
Y3JpcHRzICE9PSAidW5kZWZpbmVkIjsKLQotaWYgKGlzV29ya2VyKSB7Ci0gIC8vIFJ1bm5pbmcg
b24gYSB3b3JrZXIKLSAgaW1wb3J0U2NyaXB0cygndXRpbC5qcycsICd1dGlsX3dvcmtlci5qcycp
OwotfQotCi0vLyBOYW1lc3BhY2UgZm9yIGhvbGRpbmcgZ2xvYmFscy4KLXZhciBiZW5jaG1hcmsg
PSB7fTsKLWJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gMDsKLQotdmFyIHhocnMgPSBbXTsKLQot
dmFyIHRpbWVySUQgPSBudWxsOwotCi1mdW5jdGlvbiBkZXN0cm95QWxsWEhScygpIHsKLSAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB4aHJzLmxlbmd0aDsgKytpKSB7Ci0gICAgeGhyc1tpXS5vbnJlYWR5
c3RhdGVjaGFuZ2UgPSBudWxsOwotICAgIC8vIEFib3J0IFhIUnMgaWYgdGhleSBhcmUgbm90IHll
dCBET05FIHN0YXRlLgotICAgIC8vIENhbGxpbmcgYWJvcnQoKSBoZXJlIChpLmUuIGluIG9ucmVh
ZHlzdGF0ZWNoYW5nZSBoYW5kbGVyKSAKLSAgICAvLyBjYXVzZXMgIk5ldHdvcmtFcnJvciIgbWVz
c2FnZXMgaW4gRGV2VG9vbHMgaW4gc3luYyBtb2RlLAotICAgIC8vIGV2ZW4gaWYgaXQgaXMgYWZ0
ZXIgdHJhbnNpdGlvbiB0byBET05FIHN0YXRlLgotICAgIGlmICh4aHJzW2ldLnJlYWR5U3RhdGUg
IT0gWE1MSHR0cFJlcXVlc3QuRE9ORSkKLSAgICAgIHhocnNbaV0uYWJvcnQoKTsKLSAgfQotICB4
aHJzID0gW107Ci0gIC8vIGdjKCkgbWlnaHQgYmUgbmVlZGVkIGZvciBDaHJvbWUvQmxvYgotfQot
Ci1mdW5jdGlvbiByZXBlYXRTdHJpbmcoc3RyLCBjb3VudCkgewotICB2YXIgZGF0YSA9ICcnOwot
ICB2YXIgZXhwQ2h1bmsgPSBzdHI7Ci0gIHZhciByZW1haW4gPSBjb3VudDsKLSAgd2hpbGUgKHRy
dWUpIHsKLSAgICBpZiAocmVtYWluICUgMikgewotICAgICAgZGF0YSArPSBleHBDaHVuazsKLSAg
ICAgIHJlbWFpbiA9IChyZW1haW4gLSAxKSAvIDI7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJlbWFp
biAvPSAyOwotICAgIH0KLQotICAgIGlmIChyZW1haW4gPT0gMCkKLSAgICAgIGJyZWFrOwotCi0g
ICAgZXhwQ2h1bmsgPSBleHBDaHVuayArIGV4cENodW5rOwotICB9Ci0gIHJldHVybiBkYXRhOwot
fQotCi1mdW5jdGlvbiBzZW5kQmVuY2htYXJrU3RlcChzaXplLCBjb25maWcpIHsKLSAgdGltZXJJ
RCA9IG51bGw7Ci0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBudWxsOwotICB2YXIgdG90
YWxTaXplID0gMDsKLSAgdmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0KLSAgdmFyIG9uUmVhZHlTdGF0
ZUNoYW5nZUhhbmRsZXIgPSBmdW5jdGlvbiAoKSB7Ci0gICAgaWYgKHRoaXMucmVhZHlTdGF0ZSAh
PSB0aGlzLkRPTkUpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAodGhpcy5zdGF0
dXMgIT0gMjAwKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ0ZhaWxlZCAoc3RhdHVzPScgKyB0
aGlzLnN0YXR1cyArICcpJyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwotICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSAmJgotICAgICAgICAhdmVyaWZ5
QWNrbm93bGVkZ2VtZW50KGNvbmZpZywgdGhpcy5yZXNwb25zZSwgc2l6ZSkpIHsKLSAgICAgIGRl
c3Ryb3lBbGxYSFJzKCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdG90YWxSZXBsaWVk
ICs9IHNpemU7Ci0KLSAgICBpZiAodG90YWxSZXBsaWVkIDwgdG90YWxTaXplKSB7Ci0gICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwp
IHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnc3RhcnRUaW1lSW5NcyBub3Qgc2V0Jyk7Ci0gICAg
ICBkZXN0cm95QWxsWEhScygpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNhbGN1bGF0
ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1zLCB0b3Rh
bFNpemUpOwotCi0gICAgZGVzdHJveUFsbFhIUnMoKTsKLQotICAgIHJ1bk5leHRUYXNrKGNvbmZp
Zyk7Ci0gIH07Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtWEhSczsgKytpKSB7
Ci0gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHhoci5vbnJlYWR5c3Rh
dGVjaGFuZ2UgPSBvblJlYWR5U3RhdGVDaGFuZ2VIYW5kbGVyOwotICAgIHhocnMucHVzaCh4aHIp
OwotICB9Ci0KLSAgdmFyIGRhdGFBcnJheSA9IFtdOwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwg
eGhycy5sZW5ndGg7ICsraSkgewotICAgIHZhciBkYXRhID0gbnVsbDsKLSAgICBpZiAoY29uZmln
LmRhdGFUeXBlID09ICdhcnJheWJ1ZmZlcicgfHwKLSAgICAgICAgY29uZmlnLmRhdGFUeXBlID09
ICdibG9iJykgewotICAgICAgZGF0YSA9IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKLQotICAgICAg
ZmlsbEFycmF5QnVmZmVyKGRhdGEsIDB4NjEpOwotCi0gICAgICBpZiAoY29uZmlnLmRhdGFUeXBl
ID09ICdibG9iJykgewotICAgICAgICBkYXRhID0gbmV3IEJsb2IoW2RhdGFdKTsKLSAgICAgIH0K
LSAgICB9IGVsc2UgewotICAgICAgZGF0YSA9IHJlcGVhdFN0cmluZygnYScsIHNpemUpOwotICAg
IH0KLQotICAgIGRhdGFBcnJheS5wdXNoKGRhdGEpOwotICB9Ci0KLQotICBiZW5jaG1hcmsuc3Rh
cnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotICB0b3RhbFNpemUgPSBzaXplICogeGhycy5s
ZW5ndGg7Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCB4aHJzLmxlbmd0aDsgKytpKSB7Ci0gICAg
dmFyIGRhdGEgPSBkYXRhQXJyYXlbaV07Ci0gICAgdmFyIHhociA9IHhocnNbaV07Ci0gICAgeGhy
Lm9wZW4oJ1BPU1QnLCBjb25maWcucHJlZml4VXJsICsgJ19zZW5kJywgY29uZmlnLmFzeW5jKTsK
LSAgICB4aHIuc2VuZChkYXRhKTsKLSAgfQotfQotCi1mdW5jdGlvbiByZWNlaXZlQmVuY2htYXJr
U3RlcChzaXplLCBjb25maWcpIHsKLSAgdGltZXJJRCA9IG51bGw7Ci0KLSAgYmVuY2htYXJrLnN0
YXJ0VGltZUluTXMgPSBudWxsOwotICB2YXIgdG90YWxTaXplID0gMDsKLSAgdmFyIHRvdGFsUmVw
bGllZCA9IDA7Ci0KLSAgdmFyIGNoZWNrUmVzdWx0QW5kQ29udGludWUgPSBmdW5jdGlvbiAoYnl0
ZXNSZWNlaXZlZCwgdmVyaWZpY2F0aW9uUmVzdWx0KSB7Ci0gICAgaWYgKCF2ZXJpZmljYXRpb25S
ZXN1bHQpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnUmVzcG9uc2UgdmVyaWZpY2F0aW9uIGZh
aWxlZCcpOwotICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICB0b3RhbFJlcGxpZWQgKz0gYnl0ZXNSZWNlaXZlZDsKLQotICAgIGlmICh0b3RhbFJlcGxp
ZWQgPCB0b3RhbFNpemUpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYmVuY2ht
YXJrLnN0YXJ0VGltZUluTXMgPT0gbnVsbCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdzdGFy
dFRpbWVJbk1zIG5vdCBzZXQnKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVu
Y2htYXJrLnN0YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSk7Ci0KLSAgICBkZXN0cm95QWxsWEhScygp
OwotCi0gICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgfQotCi0gIHZhciBvblJlYWR5U3RhdGVD
aGFuZ2VIYW5kbGVyID0gZnVuY3Rpb24gKCkgewotICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgIT0g
dGhpcy5ET05FKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHRoaXMuc3RhdHVz
ICE9IDIwMCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0nICsgdGhp
cy5zdGF0dXMgKyAnKScpOwotICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICB2YXIgYnl0ZXNSZWNlaXZlZCA9IC0xOwotICAgIGlmICh0aGlzLnJlc3Bv
bnNlVHlwZSA9PSAnYXJyYXlidWZmZXInKSB7Ci0gICAgICBieXRlc1JlY2VpdmVkID0gdGhpcy5y
ZXNwb25zZS5ieXRlTGVuZ3RoOwotICAgIH0gZWxzZSBpZiAodGhpcy5yZXNwb25zZVR5cGUgPT0g
J2Jsb2InKSB7Ci0gICAgICBieXRlc1JlY2VpdmVkID0gdGhpcy5yZXNwb25zZS5zaXplOwotICAg
IH0gZWxzZSB7Ci0gICAgICBieXRlc1JlY2VpdmVkID0gdGhpcy5yZXNwb25zZS5sZW5ndGg7Ci0g
ICAgfQotICAgIGlmIChieXRlc1JlY2VpdmVkICE9IHNpemUpIHsKLSAgICAgIGNvbmZpZy5hZGRU
b0xvZygnRXhwZWN0ZWQgJyArIHNpemUgKwotICAgICAgICAgICdCIGJ1dCByZWNlaXZlZCAnICsg
Ynl0ZXNSZWNlaXZlZCArICdCJyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwotICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGlmICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYXJyYXlidWZmZXIn
KSB7Ci0gICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKGJ5dGVzUmVjZWl2ZWQsCi0gICAgICAg
ICAgIWNvbmZpZy52ZXJpZnlEYXRhIHx8IHZlcmlmeUFycmF5QnVmZmVyKHRoaXMucmVzcG9uc2Us
IDB4NjEpKTsKLSAgICB9IGVsc2UgaWYgKHRoaXMucmVzcG9uc2VUeXBlID09ICdibG9iJykgewot
ICAgICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhKQotICAgICAgICB2ZXJpZnlCbG9iKGNvbmZpZywg
dGhpcy5yZXNwb25zZSwgMHg2MSwgY2hlY2tSZXN1bHRBbmRDb250aW51ZSk7Ci0gICAgICBlbHNl
Ci0gICAgICAgIGNoZWNrUmVzdWx0QW5kQ29udGludWUoYnl0ZXNSZWNlaXZlZCwgdHJ1ZSk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIGNoZWNrUmVzdWx0QW5kQ29udGludWUoCi0gICAgICAgICAgYnl0
ZXNSZWNlaXZlZCwKLSAgICAgICAgICAhY29uZmlnLnZlcmlmeURhdGEgfHwKLSAgICAgICAgICAg
ICAgdGhpcy5yZXNwb25zZSA9PSByZXBlYXRTdHJpbmcoJ2EnLCB0aGlzLnJlc3BvbnNlLmxlbmd0
aCkpOwotICAgIH0KLSAgfTsKLQotICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbmZpZy5udW1YSFJz
OyArK2kpIHsKLSAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9u
cmVhZHlzdGF0ZWNoYW5nZSA9IG9uUmVhZHlTdGF0ZUNoYW5nZUhhbmRsZXI7Ci0gICAgeGhycy5w
dXNoKHhocik7Ci0gIH0KLQotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFt
cCgpOwotICB0b3RhbFNpemUgPSBzaXplICogeGhycy5sZW5ndGg7Ci0KLSAgZm9yICh2YXIgaSA9
IDA7IGkgPCB4aHJzLmxlbmd0aDsgKytpKSB7Ci0gICAgdmFyIHhociA9IHhocnNbaV07Ci0gICAg
eGhyLm9wZW4oJ1BPU1QnLCBjb25maWcucHJlZml4VXJsICsgJ19yZWNlaXZlJywgY29uZmlnLmFz
eW5jKTsKLSAgICB4aHIucmVzcG9uc2VUeXBlID0gY29uZmlnLmRhdGFUeXBlOwotICAgIHhoci5z
ZW5kKHNpemUgKyAnIG5vbmUnKTsKLSAgfQotfQotCi0KLWZ1bmN0aW9uIGdldENvbmZpZ1N0cmlu
Zyhjb25maWcpIHsKLSAgcmV0dXJuICcoJyArIGNvbmZpZy5kYXRhVHlwZSArCi0gICAgJywgdmVy
aWZ5RGF0YT0nICsgY29uZmlnLnZlcmlmeURhdGEgKwotICAgICcsICcgKyAoaXNXb3JrZXIgPyAn
V29ya2VyJyA6ICdNYWluJykgKwotICAgICcsICcgKyAoY29uZmlnLmFzeW5jID8gJ0FzeW5jJyA6
ICdTeW5jJykgKwotICAgICcsIG51bVhIUnM9JyArIGNvbmZpZy5udW1YSFJzICsKLSAgICAnLCBu
dW1JdGVyYXRpb25zPScgKyBjb25maWcubnVtSXRlcmF0aW9ucyArCi0gICAgJywgbnVtV2FybVVw
SXRlcmF0aW9ucz0nICsgY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMgKwotICAgICcpJzsKLX0K
LQotZnVuY3Rpb24gc3RhcnRCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNsZWFyVGltZW91dCh0aW1l
cklEKTsKLSAgZGVzdHJveUFsbFhIUnMoKTsKLQotICBydW5OZXh0VGFzayhjb25maWcpOwotfQot
Ci0vLyBUT0RPKGhpcm9zaGlnZSk6IHRoZSBmb2xsb3dpbmcgY29kZSBpcyB0aGUgc2FtZSBhcyBi
ZW5jaG1hcmsuaHRtbAotLy8gYW5kIHNvbWUgb2YgdGhlbSBzaG91bGQgYmUgbWVyZ2VkIGludG8g
ZS5nLiB1dGlsLmpzCi0KLXZhciB0YXNrcyA9IFtdOwotCi1mdW5jdGlvbiBydW5OZXh0VGFzayhj
b25maWcpIHsKLSAgdmFyIHRhc2sgPSB0YXNrcy5zaGlmdCgpOwotICBpZiAodGFzayA9PSB1bmRl
ZmluZWQpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ0ZpbmlzaGVkJyk7Ci0gICAgZGVzdHJveUFs
bFhIUnMoKTsKLSAgICByZXR1cm47Ci0gIH0KLSAgdGltZXJJRCA9IHNldFRpbWVvdXQodGFzaywg
MCk7Ci19Ci0KLWZ1bmN0aW9uIGJ1aWxkTGVnZW5kU3RyaW5nKGNvbmZpZykgewotICB2YXIgbGVn
ZW5kID0gJycKLSAgaWYgKGNvbmZpZy5wcmludFNpemUpCi0gICAgbGVnZW5kID0gJ01lc3NhZ2Ug
c2l6ZSBpbiBLaUIsIFRpbWUvbWVzc2FnZSBpbiBtcywgJzsKLSAgbGVnZW5kICs9ICdTcGVlZCBp
biBrQi9zJzsKLSAgcmV0dXJuIGxlZ2VuZDsKLX0KLQotZnVuY3Rpb24gYWRkVGFza3MoY29uZmln
LCBzdGVwRnVuYykgewotICBmb3IgKHZhciBpID0gMDsKLSAgICAgIGkgPCBjb25maWcubnVtV2Fy
bVVwSXRlcmF0aW9ucyArIGNvbmZpZy5udW1JdGVyYXRpb25zOyArK2kpIHsKLSAgICAvLyBJZ25v
cmUgdGhlIGZpcnN0IHxjb25maWcubnVtV2FybVVwSXRlcmF0aW9uc3wgaXRlcmF0aW9ucy4KLSAg
ICBpZiAoaSA9PSBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucykKLSAgICAgIGFkZFJlc3VsdENs
ZWFyaW5nVGFzayhjb25maWcpOwotCi0gICAgdmFyIG11bHRpcGxpZXJJbmRleCA9IDA7Ci0gICAg
Zm9yICh2YXIgc2l6ZSA9IGNvbmZpZy5zdGFydFNpemU7Ci0gICAgICAgICBzaXplIDw9IGNvbmZp
Zy5zdG9wVGhyZXNob2xkOwotICAgICAgICAgKyttdWx0aXBsaWVySW5kZXgpIHsKLSAgICAgIHZh
ciB0YXNrID0gc3RlcEZ1bmMuYmluZCgKLSAgICAgICAgICBudWxsLAotICAgICAgICAgIHNpemUs
Ci0gICAgICAgICAgY29uZmlnKTsKLSAgICAgIHRhc2tzLnB1c2godGFzayk7Ci0gICAgICBzaXpl
ICo9IGNvbmZpZy5tdWx0aXBsaWVyc1sKLSAgICAgICAgICBtdWx0aXBsaWVySW5kZXggJSBjb25m
aWcubXVsdGlwbGllcnMubGVuZ3RoXTsKLSAgICB9Ci0gIH0KLX0KLQotZnVuY3Rpb24gYWRkUmVz
dWx0UmVwb3J0aW5nVGFzayhjb25maWcsIHRpdGxlKSB7Ci0gIHRhc2tzLnB1c2goZnVuY3Rpb24o
KXsKLSAgICAgIHRpbWVySUQgPSBudWxsOwotICAgICAgY29uZmlnLmFkZFRvU3VtbWFyeSh0aXRs
ZSk7Ci0gICAgICByZXBvcnRBdmVyYWdlRGF0YShjb25maWcpOwotICAgICAgY2xlYXJBdmVyYWdl
RGF0YSgpOwotICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgfSk7Ci19Ci0KLWZ1bmN0aW9u
IGFkZFJlc3VsdENsZWFyaW5nVGFzayhjb25maWcpIHsKLSAgdGFza3MucHVzaChmdW5jdGlvbigp
ewotICAgICAgdGltZXJJRCA9IG51bGw7Ci0gICAgICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gICAg
ICBydW5OZXh0VGFzayhjb25maWcpOwotICB9KTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotZnVuY3Rpb24gc2VuZEJlbmNobWFyayhjb25maWcpIHsKLSAgY29u
ZmlnLmFkZFRvTG9nKCdTZW5kIGJlbmNobWFyaycpOwotICBjb25maWcuYWRkVG9Mb2coYnVpbGRM
ZWdlbmRTdHJpbmcoY29uZmlnKSk7Ci0KLSAgdGFza3MgPSBbXTsKLSAgY2xlYXJBdmVyYWdlRGF0
YSgpOwotICBhZGRUYXNrcyhjb25maWcsIHNlbmRCZW5jaG1hcmtTdGVwKTsKLSAgYWRkUmVzdWx0
UmVwb3J0aW5nVGFzayhjb25maWcsICdTZW5kIEJlbmNobWFyayAnICsgZ2V0Q29uZmlnU3RyaW5n
KGNvbmZpZykpOwotICBzdGFydEJlbmNobWFyayhjb25maWcpOwotfQotCi1mdW5jdGlvbiByZWNl
aXZlQmVuY2htYXJrKGNvbmZpZykgewotICBjb25maWcuYWRkVG9Mb2coJ1JlY2VpdmUgYmVuY2ht
YXJrJyk7Ci0gIGNvbmZpZy5hZGRUb0xvZyhidWlsZExlZ2VuZFN0cmluZyhjb25maWcpKTsKLQot
ICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gIGFkZFRhc2tzKGNvbmZpZywg
cmVjZWl2ZUJlbmNobWFya1N0ZXApOwotICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywK
LSAgICAgICdSZWNlaXZlIEJlbmNobWFyayAnICsgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwot
ICBzdGFydEJlbmNobWFyayhjb25maWcpOwotfQotCi1mdW5jdGlvbiBiYXRjaEJlbmNobWFyayhv
cmlnaW5hbENvbmZpZykgewotICBvcmlnaW5hbENvbmZpZy5hZGRUb0xvZygnQmF0Y2ggYmVuY2ht
YXJrJyk7Ci0KLSAgdGFza3MgPSBbXTsKLSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotCi0gIHZhciBk
YXRhVHlwZXMgPSBbJ3RleHQnLCAnYmxvYicsICdhcnJheWJ1ZmZlciddOwotICB2YXIgc3RlcEZ1
bmNzID0gW3NlbmRCZW5jaG1hcmtTdGVwLCByZWNlaXZlQmVuY2htYXJrU3RlcF07Ci0gIHZhciBu
YW1lcyA9IFsnU2VuZCcsICdSZWNlaXZlJ107Ci0gIHZhciBhc3luYyA9IFt0cnVlLCBmYWxzZV07
Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RlcEZ1bmNzLmxlbmd0aDsgKytpKSB7Ci0gICAgZm9y
ICh2YXIgaiA9IDA7IGogPCBkYXRhVHlwZXMubGVuZ3RoOyArK2opIHsKLSAgICAgIGZvciAodmFy
IGsgPSAwOyBrIDwgYXN5bmMubGVuZ3RoOyArK2spIHsKLSAgICAgICAgdmFyIGNvbmZpZyA9IGNs
b25lQ29uZmlnKG9yaWdpbmFsQ29uZmlnKTsKLSAgICAgICAgY29uZmlnLmRhdGFUeXBlID0gZGF0
YVR5cGVzW2pdOwotICAgICAgICBjb25maWcuYXN5bmMgPSBhc3luY1trXTsKLQotICAgICAgICAv
LyBSZWNlaXZlICYmIE5vbi1Xb3JrZXIgJiYgU3luYyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBz
cGVjCi0gICAgICAgIGlmIChzdGVwRnVuY3NbaV0gPT09IHJlY2VpdmVCZW5jaG1hcmtTdGVwICYm
ICFpc1dvcmtlciAmJgotICAgICAgICAgICAgIWNvbmZpZy5hc3luYykKLSAgICAgICAgICBjb250
aW51ZTsKLQotICAgICAgICBhZGRUYXNrcyhjb25maWcsIHN0ZXBGdW5jc1tpXSk7Ci0gICAgICAg
IGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLAotICAgICAgICAgICAgbmFtZXNbaV0gKyAn
IGJlbmNobWFyayAnICsgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICAgICAgfQotICAgIH0K
LSAgfQotCi0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0KLQotZnVuY3Rpb24gc3RvcChj
b25maWcpIHsKLSAgZGVzdHJveUFsbFhIUnMoKTsKLSAgY2xlYXJUaW1lb3V0KHRpbWVySUQpOwot
ICB0aW1lcklEID0gbnVsbDsKLSAgY29uZmlnLmFkZFRvTG9nKCdTdG9wcGVkJyk7Ci19Ci0KLW9u
bWVzc2FnZSA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7Ci0gIHZhciBjb25maWcgPSBtZXNzYWdlLmRh
dGEuY29uZmlnOwotICBjb25maWcuYWRkVG9Mb2cgPSB3b3JrZXJBZGRUb0xvZzsKLSAgY29uZmln
LmFkZFRvU3VtbWFyeSA9IHdvcmtlckFkZFRvU3VtbWFyeTsKLSAgY29uZmlnLm1lYXN1cmVWYWx1
ZSA9IHdvcmtlck1lYXN1cmVWYWx1ZTsKLSAgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnc2Vu
ZEJlbmNobWFyaycpCi0gICAgc2VuZEJlbmNobWFyayhjb25maWcpOwotICBlbHNlIGlmIChtZXNz
YWdlLmRhdGEudHlwZSA9PT0gJ3JlY2VpdmVCZW5jaG1hcmsnKQotICAgIHJlY2VpdmVCZW5jaG1h
cmsoY29uZmlnKTsKLSAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdiYXRjaEJlbmNo
bWFyaycpCi0gICAgYmF0Y2hCZW5jaG1hcmsoY29uZmlnKTsKLSAgZWxzZSBpZiAobWVzc2FnZS5k
YXRhLnR5cGUgPT09ICdzdG9wJykKLSAgICBzdG9wKGNvbmZpZyk7Ci19OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvZXhhbXBsZS94aHJfZXZlbnRfbG9nZ2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxl
L3hocl9ldmVudF9sb2dnZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjk4
MzU1M2I4YWM4MDM1OWVlODViYTk4MWU1MDA1OGVjZTQzN2M4YS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9ldmVudF9s
b2dnZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi08IS0tCi1Db3B5cmln
aHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1Vc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotbGljZW5zZSB0aGF0IGNhbiBi
ZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci1odHRwczovL2RldmVsb3BlcnMuZ29v
Z2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLS0tPgotCi08aHRtbD4KLTxoZWFkPgot
PHRpdGxlPlhIUiBldmVudCBsb2dnZXI8L3RpdGxlPgotPHNjcmlwdCBzcmM9InV0aWxfbWFpbi5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGV2ZW50cyA9IFtdOwotCi1mdW5jdGlvbiBydW4o
KSB7Ci0gIGV2ZW50cyA9IFtdOwotCi0gIGZ1bmN0aW9uIHB1c2hUb0xvZyh0eXBlKSB7Ci0gICAg
aWYgKGV2ZW50cy5sZW5ndGggIT0gMCAmJiB0eXBlID09PSBldmVudHNbZXZlbnRzLmxlbmd0aCAt
IDFdLnR5cGUpIHsKLSAgICAgIGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV0uY291bnQgKz0gMTsK
LSAgICB9IGVsc2UgewotICAgICAgZXZlbnRzLnB1c2goe3R5cGU6IHR5cGUsIGNvdW50OiAxfSk7
Ci0gICAgfQotICB9Ci0KLSAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotCi0gIGZ1
bmN0aW9uIGdldFByb2dyZXNzRXZlbnREdW1wKGUpIHsKLSAgICByZXR1cm4gJygnICsgZS5sZW5n
dGhDb21wdXRhYmxlICsgJywgJyArIGUubG9hZGVkICsgJywgJyArIGUudG90YWwgKyAnKSc7Ci0g
IH0KLQotICB2YXIgZHVtcFByb2dyZXNzRXZlbnQgPSBnZXRCb29sRnJvbUNoZWNrQm94KCdkdW1w
cHJvZ3Jlc3NldmVudCcpOwotCi0gIGZ1bmN0aW9uIGxvZyhlKSB7Ci0gICAgdmFyIHR5cGUgPSBl
LnR5cGU7Ci0gICAgaWYgKHR5cGUgPT09ICdyZWFkeXN0YXRlY2hhbmdlJykgewotICAgICAgdHlw
ZSArPSBlLnRhcmdldC5yZWFkeVN0YXRlOwotICAgIH0KLSAgICBpZiAoZHVtcFByb2dyZXNzRXZl
bnQgJiYgKGUgaW5zdGFuY2VvZiBQcm9ncmVzc0V2ZW50KSkgewotICAgICAgdHlwZSArPSBnZXRQ
cm9ncmVzc0V2ZW50RHVtcChlKTsKLSAgICB9Ci0gICAgcHVzaFRvTG9nKHR5cGUpOwotICB9Owot
Ci0gIGZ1bmN0aW9uIGxvZ1VwbG9hZChlKSB7Ci0gICAgdmFyIHR5cGUgPSBlLnR5cGU7Ci0gICAg
aWYgKGR1bXBQcm9ncmVzc0V2ZW50ICYmIChlIGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkpIHsK
LSAgICAgIHR5cGUgKz0gZ2V0UHJvZ3Jlc3NFdmVudER1bXAoZSk7Ci0gICAgfQotICAgIHB1c2hU
b0xvZygndXBsb2FkJyArIHR5cGUpOwotICB9Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3go
J3VwbG9hZCcpKSB7Ci0gICAgdmFyIHVwbG9hZCA9IHhoci51cGxvYWQ7Ci0gICAgdXBsb2FkLm9u
bG9hZHN0YXJ0ID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbnByb2dyZXNzID0gbG9nVXBsb2Fk
OwotICAgIHVwbG9hZC5vbmFib3J0ID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbmVycm9yID0g
bG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbmxvYWQgPSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9u
dGltZW91dCA9IGxvZ1VwbG9hZDsKLSAgICB1cGxvYWQub25sb2FkZW5kID0gbG9nVXBsb2FkOwot
ICB9Ci0KLSAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGxvZzsKLSAgeGhyLm9ubG9hZHN0YXJ0
ID0gbG9nOwotICB4aHIub25wcm9ncmVzcyA9IGxvZzsKLSAgeGhyLm9uYWJvcnQgPSBsb2c7Ci0g
IHhoci5vbmVycm9yID0gbG9nOwotICB4aHIub25sb2FkID0gbG9nOwotICB4aHIub250aW1lb3V0
ID0gbG9nOwotICB4aHIub25sb2FkZW5kID0gbG9nOwotCi0gIHhoci5vcGVuKCdQT1NUJywgJy8w
NzNiZTAwMWUxMDk1MDY5MmNjYmYzYTJhZDIxYzI0NV9yZWNlaXZlJywKLSAgICAgICAgICAgZ2V0
Qm9vbEZyb21DaGVja0JveCgnYXN5bmMnKSk7Ci0gIHZhciBzaXplID0gZ2V0SW50RnJvbUlucHV0
KCdzaXplJyk7Ci0gIHZhciBjaHVua2VkTW9kZSA9ICdub25lJzsKLSAgaWYgKGdldEJvb2xGcm9t
Q2hlY2tCb3goJ2NodW5rZWRyZXNwb25zZScpKSB7Ci0gICAgY2h1bmtlZE1vZGUgPSAnY2h1bmtl
ZCc7Ci0gIH0KLSAgeGhyLnNlbmQoc2l6ZSArICcgJyArIGNodW5rZWRNb2RlKTsKLX0KLQotZnVu
Y3Rpb24gcHJpbnQoKSB7Ci0gIHZhciByZXN1bHQgPSAnJzsKLSAgZm9yICh2YXIgaSA9IDA7IGkg
PCBldmVudHMubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgZXZlbnQgPSBldmVudHNbaV07Ci0gICAg
cmVzdWx0ICs9IGV2ZW50LnR5cGUgKyAnICogJyArIGV2ZW50LmNvdW50ICsgJ1xuJzsKLSAgfQot
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJykudmFsdWUgPSByZXN1bHQ7Ci19Ci08L3Nj
cmlwdD4KLQotPGJvZHk+Ci0gIDx0ZXh0YXJlYSBpZD0ibG9nIiByb3dzPSIxMCIgY29scz0iNDAi
IHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci0gIDxici8+Ci0gIFNpemU6IDxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0ic2l6ZSIgdmFsdWU9IjY1NTM2Ij48YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3gi
IGlkPSJjaHVua2VkcmVzcG9uc2UiPgotICA8bGFiZWwgZm9yPSJjaHVua2VkcmVzcG9uc2UiPlVz
ZSBDaHVua2VkIFQtRSBmb3IgcmVzcG9uc2U8L2xhYmVsPjxici8+Ci0gIDxpbnB1dCB0eXBlPSJj
aGVja2JveCIgaWQ9InVwbG9hZCI+Ci0gIDxsYWJlbCBmb3I9InVwbG9hZCI+VXBsb2FkIHByb2dy
ZXNzPC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJkdW1wcHJvZ3Jl
c3NldmVudCI+Ci0gIDxsYWJlbCBmb3I9ImR1bXBwcm9ncmVzc2V2ZW50Ij4KLSAgICBEdW1wIGxl
bmd0aENvbXB1dGFibGUvbG9hZGVkL3RvdGFsPC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlwZT0i
Y2hlY2tib3giIGlkPSJhc3luYyIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0iYXN5bmMiPkFzeW5j
PC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJydW4oKSIgdmFs
dWU9IlJ1biBYSFIiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJwcmludCgpIiB2
YWx1ZT0iUHJpbnQgbG9nIj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L21vZF9weXdlYnNvY2tldC9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9f
X2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA5MzNhMjIwNDUxZmFk
YjZhMDFhNWMxZDQ1YzI1NTE0NjhkN2Q4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwyMjQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiV2Vi
U29ja2V0IGV4dGVuc2lvbiBmb3IgQXBhY2hlIEhUVFAgU2VydmVyLgotCi1tb2RfcHl3ZWJzb2Nr
ZXQgaXMgYSBXZWJTb2NrZXQgZXh0ZW5zaW9uIGZvciBBcGFjaGUgSFRUUCBTZXJ2ZXIKLWludGVu
ZGVkIGZvciB0ZXN0aW5nIG9yIGV4cGVyaW1lbnRhbCBwdXJwb3Nlcy4gbW9kX3B5dGhvbiBpcyBy
ZXF1aXJlZC4KLQotCi1JbnN0YWxsYXRpb24KLT09PT09PT09PT09PQotCi0wLiBQcmVwYXJlIGFu
IEFwYWNoZSBIVFRQIFNlcnZlciBmb3Igd2hpY2ggbW9kX3B5dGhvbiBpcyBlbmFibGVkLgotCi0x
LiBTcGVjaWZ5IHRoZSBmb2xsb3dpbmcgQXBhY2hlIEhUVFAgU2VydmVyIGRpcmVjdGl2ZXMgdG8g
c3VpdCB5b3VyCi0gICBjb25maWd1cmF0aW9uLgotCi0gICBJZiBtb2RfcHl3ZWJzb2NrZXQgaXMg
bm90IGluIHRoZSBQeXRob24gcGF0aCwgc3BlY2lmeSB0aGUgZm9sbG93aW5nLgotICAgPHdlYnNv
Y2tfbGliPiBpcyB0aGUgZGlyZWN0b3J5IHdoZXJlIG1vZF9weXdlYnNvY2tldCBpcyBpbnN0YWxs
ZWQuCi0KLSAgICAgICBQeXRob25QYXRoICJzeXMucGF0aCtbJzx3ZWJzb2NrX2xpYj4nXSIKLQot
ICAgQWx3YXlzIHNwZWNpZnkgdGhlIGZvbGxvd2luZy4gPHdlYnNvY2tfaGFuZGxlcnM+IGlzIHRo
ZSBkaXJlY3Rvcnkgd2hlcmUKLSAgIHVzZXItd3JpdHRlbiBXZWJTb2NrZXQgaGFuZGxlcnMgYXJl
IHBsYWNlZC4KLQotICAgICAgIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9y
b290IDx3ZWJzb2NrX2hhbmRsZXJzPgotICAgICAgIFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIg
bW9kX3B5d2Vic29ja2V0LmhlYWRlcnBhcnNlcmhhbmRsZXIKLQotICAgVG8gbGltaXQgdGhlIHNl
YXJjaCBmb3IgV2ViU29ja2V0IGhhbmRsZXJzIHRvIGEgZGlyZWN0b3J5IDxzY2FuX2Rpcj4KLSAg
IHVuZGVyIDx3ZWJzb2NrX2hhbmRsZXJzPiwgY29uZmlndXJlIGFzIGZvbGxvd3M6Ci0KLSAgICAg
ICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfc2NhbiA8c2Nhbl9kaXI+Ci0K
LSAgIDxzY2FuX2Rpcj4gaXMgdXNlZnVsIGluIHNhdmluZyBzY2FuIHRpbWUgd2hlbiA8d2Vic29j
a19oYW5kbGVycz4KLSAgIGNvbnRhaW5zIG1hbnkgbm9uLVdlYlNvY2tldCBoYW5kbGVyIGZpbGVz
LgotCi0gICBJZiB5b3Ugd2FudCB0byBhbGxvdyBoYW5kbGVycyB3aG9zZSBjYW5vbmljYWwgcGF0
aCBpcyBub3QgdW5kZXIgdGhlIHJvb3QKLSAgIGRpcmVjdG9yeSAoaS5lLiBzeW1ib2xpYyBsaW5r
IGlzIGluIHJvb3QgZGlyZWN0b3J5IGJ1dCBpdHMgdGFyZ2V0IGlzIG5vdCksCi0gICBjb25maWd1
cmUgYXMgZm9sbG93czoKLQotICAgICAgIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuYWxs
b3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpciBPbgotCi0gICBFeGFtcGxlIHNuaXBwZXQgb2Yg
aHR0cGQuY29uZjoKLSAgIChtb2RfcHl3ZWJzb2NrZXQgaXMgaW4gL3dlYnNvY2tfbGliLCBXZWJT
b2NrZXQgaGFuZGxlcnMgYXJlIGluCi0gICAvd2Vic29ja19oYW5kbGVycywgcG9ydCBpcyA4MCBm
b3Igd3MsIDQ0MyBmb3Igd3NzLikKLQotICAgICAgIDxJZk1vZHVsZSBweXRob25fbW9kdWxlPgot
ICAgICAgICAgUHl0aG9uUGF0aCAic3lzLnBhdGgrWycvd2Vic29ja19saWInXSIKLSAgICAgICAg
IFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9yb290IC93ZWJzb2NrX2hhbmRs
ZXJzCi0gICAgICAgICBQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVyIG1vZF9weXdlYnNvY2tldC5o
ZWFkZXJwYXJzZXJoYW5kbGVyCi0gICAgICAgPC9JZk1vZHVsZT4KLQotMi4gVHVuZSBBcGFjaGUg
cGFyYW1ldGVycyBmb3Igc2VydmluZyBXZWJTb2NrZXQuIFdlJ2QgbGlrZSB0byBub3RlIHRoYXQg
YXQKLSAgIGxlYXN0IFRpbWVPdXQgZGlyZWN0aXZlIGZyb20gY29yZSBmZWF0dXJlcyBhbmQgUmVx
dWVzdFJlYWRUaW1lb3V0Ci0gICBkaXJlY3RpdmUgZnJvbSBtb2RfcmVxdGltZW91dCBzaG91bGQg
YmUgbW9kaWZpZWQgbm90IHRvIGtpbGwgY29ubmVjdGlvbnMKLSAgIGluIG9ubHkgYSBmZXcgc2Vj
b25kcyBvZiBpZGxlIHRpbWUuCi0KLTMuIFZlcmlmeSBpbnN0YWxsYXRpb24uIFlvdSBjYW4gdXNl
IGV4YW1wbGUvY29uc29sZS5odG1sIHRvIHBva2UgdGhlIHNlcnZlci4KLQotCi1Xcml0aW5nIFdl
YlNvY2tldCBoYW5kbGVycwotPT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotV2hlbiBhIFdl
YlNvY2tldCByZXF1ZXN0IGNvbWVzIGluLCB0aGUgcmVzb3VyY2UgbmFtZQotc3BlY2lmaWVkIGlu
IHRoZSBoYW5kc2hha2UgaXMgY29uc2lkZXJlZCBhcyBpZiBpdCBpcyBhIGZpbGUgcGF0aCB1bmRl
cgotPHdlYnNvY2tfaGFuZGxlcnM+IGFuZCB0aGUgaGFuZGxlciBkZWZpbmVkIGluCi08d2Vic29j
a19oYW5kbGVycz4vPHJlc291cmNlX25hbWU+X3dzaC5weSBpcyBpbnZva2VkLgotCi1Gb3IgZXhh
bXBsZSwgaWYgdGhlIHJlc291cmNlIG5hbWUgaXMgL2V4YW1wbGUvY2hhdCwgdGhlIGhhbmRsZXIg
ZGVmaW5lZCBpbgotPHdlYnNvY2tfaGFuZGxlcnM+L2V4YW1wbGUvY2hhdF93c2gucHkgaXMgaW52
b2tlZC4KLQotQSBXZWJTb2NrZXQgaGFuZGxlciBpcyBjb21wb3NlZCBvZiB0aGUgZm9sbG93aW5n
IHRocmVlIGZ1bmN0aW9uczoKLQotICAgIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJl
cXVlc3QpCi0gICAgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgd2ViX3Nv
Y2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlKHJlcXVlc3QpCi0KLXdoZXJlOgotICAgIHJl
cXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLQotd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hh
a2UgaXMgY2FsbGVkIGR1cmluZyB0aGUgaGFuZHNoYWtlIGFmdGVyIHRoZQotaGVhZGVycyBhcmUg
c3VjY2Vzc2Z1bGx5IHBhcnNlZCBhbmQgV2ViU29ja2V0IHByb3BlcnRpZXMgKHdzX2xvY2F0aW9u
LAotd3Nfb3JpZ2luLCBhbmQgd3NfcmVzb3VyY2UpIGFyZSBhZGRlZCB0byByZXF1ZXN0LiBBIGhh
bmRsZXIKLWNhbiByZWplY3QgdGhlIHJlcXVlc3QgYnkgcmFpc2luZyBhbiBleGNlcHRpb24uCi0K
LUEgcmVxdWVzdCBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB0aGF0IHlvdSBj
YW4gdXNlIGR1cmluZyB0aGUKLWV4dHJhIGhhbmRzaGFrZSAod2ViX3NvY2tldF9kb19leHRyYV9o
YW5kc2hha2UpOgotLSB3c19yZXNvdXJjZQotLSB3c19vcmlnaW4KLS0gd3NfdmVyc2lvbgotLSB3
c19sb2NhdGlvbiAoSHlCaSAwMCBvbmx5KQotLSB3c19leHRlbnNpb25zIChIeUJpIDA2IGFuZCBs
YXRlcikKLS0gd3NfZGVmbGF0ZSAoSHlCaSAwNiBhbmQgbGF0ZXIpCi0tIHdzX3Byb3RvY29sCi0t
IHdzX3JlcXVlc3RlZF9wcm90b2NvbHMgKEh5QmkgMDYgYW5kIGxhdGVyKQotCi1UaGUgbGFzdCB0
d28gYXJlIGEgYml0IHRyaWNreS4gU2VlIHRoZSBuZXh0IHN1YnNlY3Rpb24uCi0KLQotU3VicHJv
dG9jb2wgTmVnb3RpYXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUZvciBIeUJpIDA2
IGFuZCBsYXRlciwgd3NfcHJvdG9jb2wgaXMgYWx3YXlzIHNldCB0byBOb25lIHdoZW4KLXdlYl9z
b2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIGlzIGNhbGxlZC4gSWYgd3NfcmVxdWVzdGVkX3Byb3Rv
Y29scyBpcyBub3QKLU5vbmUsIHlvdSBtdXN0IGNob29zZSBvbmUgc3VicHJvdG9jb2wgZnJvbSB0
aGlzIGxpc3QgYW5kIHNldCBpdCB0bwotd3NfcHJvdG9jb2wuCi0KLUZvciBIeUJpIDAwLCB3aGVu
IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIGlzIGNhbGxlZCwKLXdzX3Byb3RvY29sIGlz
IHNldCB0byB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIGNsaWVudCBpbgotU2VjLVdlYlNvY2tldC1Q
cm90b2NvbCBoZWFkZXIgb3IgTm9uZSBpZgotc3VjaCBoZWFkZXIgd2FzIG5vdCBmb3VuZCBpbiB0
aGUgb3BlbmluZyBoYW5kc2hha2UgcmVxdWVzdC4gRmluaXNoIGV4dHJhCi1oYW5kc2hha2Ugd2l0
aCB3c19wcm90b2NvbCB1bnRvdWNoZWQgdG8gYWNjZXB0IHRoZSByZXF1ZXN0IHN1YnByb3RvY29s
LgotVGhlbiwgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBoZWFkZXIgd2lsbCBiZSBzZW50IHRvCi10
aGUgY2xpZW50IGluIHJlc3BvbnNlIHdpdGggdGhlIHNhbWUgdmFsdWUgYXMgcmVxdWVzdGVkLiBS
YWlzZSBhbiBleGNlcHRpb24KLWluIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIHRvIHJl
amVjdCB0aGUgcmVxdWVzdGVkIHN1YnByb3RvY29sLgotCi0KLURhdGEgVHJhbnNmZXIKLS0tLS0t
LS0tLS0tLS0KLQotd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhIGlzIGNhbGxlZCBhZnRlciB0aGUg
aGFuZHNoYWtlIGNvbXBsZXRlZAotc3VjY2Vzc2Z1bGx5LiBBIGhhbmRsZXIgY2FuIHJlY2VpdmUv
c2VuZCBtZXNzYWdlcyBmcm9tL3RvIHRoZSBjbGllbnQKLXVzaW5nIHJlcXVlc3QuIG1vZF9weXdl
YnNvY2tldC5tc2d1dGlsIG1vZHVsZSBwcm92aWRlcyB1dGlsaXRpZXMKLWZvciBkYXRhIHRyYW5z
ZmVyLgotCi1Zb3UgY2FuIHJlY2VpdmUgYSBtZXNzYWdlIGJ5IHRoZSBmb2xsb3dpbmcgc3RhdGVt
ZW50LgotCi0gICAgbWVzc2FnZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgp
Ci0KLVRoaXMgY2FsbCBibG9ja3MgdW50aWwgYW55IGNvbXBsZXRlIHRleHQgZnJhbWUgYXJyaXZl
cywgYW5kIHRoZSBwYXlsb2FkIGRhdGEKLW9mIHRoZSBpbmNvbWluZyBmcmFtZSB3aWxsIGJlIHN0
b3JlZCBpbnRvIG1lc3NhZ2UuIFdoZW4geW91J3JlIHVzaW5nIElFVEYKLUh5QmkgMDAgb3IgbGF0
ZXIgcHJvdG9jb2wsIHJlY2VpdmVfbWVzc2FnZSgpIHdpbGwgcmV0dXJuIE5vbmUgb24gcmVjZWl2
aW5nCi1jbGllbnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlLiBXaGVuIGFueSBlcnJvciBv
Y2N1cnMsIHJlY2VpdmVfbWVzc2FnZSgpCi13aWxsIHJhaXNlIHNvbWUgZXhjZXB0aW9uLgotCi1Z
b3UgY2FuIHNlbmQgYSBtZXNzYWdlIGJ5IHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50LgotCi0gICAg
cmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKG1lc3NhZ2UpCi0KLQotQ2xvc2luZyBDb25u
ZWN0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0KLQotRXhlY3V0aW5nIHRoZSBmb2xsb3dpbmcgc3Rh
dGVtZW50IG9yIGp1c3QgcmV0dXJuLWluZyBmcm9tCi13ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEg
Y2F1c2UgY29ubmVjdGlvbiBjbG9zZS4KLQotICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nv
bm5lY3Rpb24oKQotCi1jbG9zZV9jb25uZWN0aW9uIHdpbGwgd2FpdAotZm9yIGNsb3NpbmcgaGFu
ZHNoYWtlIGFja25vd2xlZGdlbWVudCBjb21pbmcgZnJvbSB0aGUgY2xpZW50LiBXaGVuIGl0Ci1j
b3VsZG4ndCByZWNlaXZlIGEgdmFsaWQgYWNrbm93bGVkZ2VtZW50LCByYWlzZXMgYW4gZXhjZXB0
aW9uLgotCi13ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UgaXMgY2FsbGVkIGFm
dGVyIHRoZSBzZXJ2ZXIgcmVjZWl2ZXMKLWluY29taW5nIGNsb3NpbmcgZnJhbWUgZnJvbSB0aGUg
Y2xpZW50IHBlZXIgaW1tZWRpYXRlbHkuIFlvdSBjYW4gc3BlY2lmeQotY29kZSBhbmQgcmVhc29u
IGJ5IHJldHVybiB2YWx1ZXMuIFRoZXkgYXJlIHNlbnQgYXMgYSBvdXRnb2luZyBjbG9zaW5nIGZy
YW1lCi1mcm9tIHRoZSBzZXJ2ZXIuIEEgcmVxdWVzdCBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcg
cHJvcGVydGllcyB0aGF0IHlvdSBjYW4KLXVzZSBpbiB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2lu
Z19oYW5kc2hha2UuCi0tIHdzX2Nsb3NlX2NvZGUKLS0gd3NfY2xvc2VfcmVhc29uCi0KLQotVGhy
ZWFkaW5nCi0tLS0tLS0tLS0KLQotQSBXZWJTb2NrZXQgaGFuZGxlciBtdXN0IGJlIHRocmVhZC1z
YWZlIGlmIHRoZSBzZXJ2ZXIgKEFwYWNoZSBvcgotc3RhbmRhbG9uZS5weSkgaXMgY29uZmlndXJl
ZCB0byB1c2UgdGhyZWFkcy4KLQotCi1Db25maWd1cmluZyBXZWJTb2NrZXQgRXh0ZW5zaW9uIFBy
b2Nlc3NvcnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1T
ZWUgZXh0ZW5zaW9ucy5weSBmb3Igc3VwcG9ydGVkIFdlYlNvY2tldCBleHRlbnNpb25zLiBOb3Rl
IHRoYXQgdGhleSBhcmUKLXVuc3RhYmxlIGFuZCB0aGVpciBBUElzIGFyZSBzdWJqZWN0IHRvIGNo
YW5nZSBzdWJzdGFudGlhbGx5LgotCi1BIHJlcXVlc3Qgb2JqZWN0IGhhcyB0aGVzZSBleHRlbnNp
b24gcHJvY2Vzc2luZyByZWxhdGVkIGF0dHJpYnV0ZXMuCi0KLS0gd3NfcmVxdWVzdGVkX2V4dGVu
c2lvbnM6Ci0KLSAgQSBsaXN0IG9mIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIgaW5zdGFuY2Vz
IHJlcHJlc2VudGluZyBleHRlbnNpb24KLSAgcGFyYW1ldGVycyByZWNlaXZlZCBmcm9tIHRoZSBj
bGllbnQgaW4gdGhlIGNsaWVudCdzIG9wZW5pbmcgaGFuZHNoYWtlLgotICBZb3Ugc2hvdWxkbid0
IG1vZGlmeSBpdCBtYW51YWxseS4KLQotLSB3c19leHRlbnNpb25zOgotCi0gIEEgbGlzdCBvZiBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyIGluc3RhbmNlcyByZXByZXNlbnRpbmcgZXh0ZW5zaW9u
Ci0gIHBhcmFtZXRlcnMgdG8gc2VuZCBiYWNrIHRvIHRoZSBjbGllbnQgaW4gdGhlIHNlcnZlcidz
IG9wZW5pbmcgaGFuZHNoYWtlLgotICBZb3Ugc2hvdWxkbid0IHRvdWNoIGl0IGRpcmVjdGx5LiBJ
bnN0ZWFkLCBjYWxsIG1ldGhvZHMgb24gZXh0ZW5zaW9uCi0gIHByb2Nlc3NvcnMuCi0KLS0gd3Nf
ZXh0ZW5zaW9uX3Byb2Nlc3NvcnM6Ci0KLSAgQSBsaXN0IG9mIGxvYWRlZCBleHRlbnNpb24gcHJv
Y2Vzc29ycy4gRmluZCB0aGUgcHJvY2Vzc29yIGZvciB0aGUKLSAgZXh0ZW5zaW9uIHlvdSB3YW50
IHRvIGNvbmZpZ3VyZSBmcm9tIGl0LCBhbmQgY2FsbCBpdHMgbWV0aG9kcy4KLSIiIgotCi0KLSMg
dmk6c3RzPTQgc3c9NCBldCB0dz03MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29j
a2V0L19zdHJlYW1fYmFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jh
c2UucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMzU2NjZiYmIxZDUxYzEwZGIz
ZjkxYmRhNGFiY2Q3YWZlYjI2ODIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1fYmFzZS5weQorKysg
L2Rldi9udWxsCkBAIC0xLDE4MSArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5j
LgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJCYXNl
IHN0cmVhbSBjbGFzcy4KLSIiIgotCi0KLSMgTm90ZTogcmVxdWVzdC5jb25uZWN0aW9uLndyaXRl
L3JlYWQgYXJlIHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2ZW4gdGhvdWdoCi0jIG1vZF9weXRob24g
ZG9jdW1lbnQgc2F5cyB0aGF0IHRoZXkgc2hvdWxkIGJlIHVzZWQgb25seSBpbiBjb25uZWN0aW9u
Ci0jIGhhbmRsZXJzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIG90aGVyIG9wdGlvbnMuIEZv
ciBleGFtcGxlLAotIyByZXF1ZXN0LndyaXRlL3JlYWQgYXJlIG5vdCBzdWl0YWJsZSBiZWNhdXNl
IHRoZXkgZG9uJ3QgYWxsb3cgZGlyZWN0IHJhdyBieXRlcwotIyB3cml0aW5nL3JlYWRpbmcuCi0K
LQotaW1wb3J0IHNvY2tldAotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0K
LSMgRXhjZXB0aW9ucwotCi0KLWNsYXNzIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKEV4
Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiBhIGNv
bm5lY3Rpb24gaXMgdGVybWluYXRlZAotICAgIHVuZXhwZWN0ZWRseS4KLSAgICAiIiIKLQotICAg
IHBhc3MKLQotCi1jbGFzcyBJbnZhbGlkRnJhbWVFeGNlcHRpb24oQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4g
d2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBmcmFtZSB3ZQotICAgIGNhbm5vdCBwYXJzZS4KLSAgICAi
IiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBCYWRPcGVyYXRpb25FeGNlcHRpb24oRXhjZXB0aW9u
KToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIHNlbmRfbWVzc2Fn
ZSgpIGlzIGNhbGxlZCBvbgotICAgIHNlcnZlci10ZXJtaW5hdGVkIGNvbm5lY3Rpb24gb3IgcmVj
ZWl2ZV9tZXNzYWdlKCkgaXMgY2FsbGVkIG9uCi0gICAgY2xpZW50LXRlcm1pbmF0ZWQgY29ubmVj
dGlvbi4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBVbnN1cHBvcnRlZEZyYW1lRXhj
ZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQg
d2hlbiB3ZSByZWNlaXZlIGEgZnJhbWUgd2l0aCBmbGFnLCBvcGNvZGUKLSAgICB3ZSBjYW5ub3Qg
aGFuZGxlLiBIYW5kbGVycyBjYW4ganVzdCBjYXRjaCBhbmQgaWdub3JlIHRoaXMgZXhjZXB0aW9u
IGFuZAotICAgIGNhbGwgcmVjZWl2ZV9tZXNzYWdlKCkgYWdhaW4gdG8gY29udGludWUgcHJvY2Vz
c2luZyB0aGUgbmV4dCBmcmFtZS4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBJbnZh
bGlkVVRGOEV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwg
YmUgcmFpc2VkIHdoZW4gd2UgcmVjZWl2ZSBhIHRleHQgZnJhbWUgd2hpY2gKLSAgICBjb250YWlu
cyBpbnZhbGlkIFVURi04IHN0cmluZ3MuCi0gICAgIiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3Mg
U3RyZWFtQmFzZShvYmplY3QpOgotICAgICIiIkJhc2Ugc3RyZWFtIGNsYXNzLiIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5z
dGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24g
cmVxdWVzdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRf
Y2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLQot
ICAgIGRlZiBfcmVhZChzZWxmLCBsZW5ndGgpOgotICAgICAgICAiIiJSZWFkcyBsZW5ndGggYnl0
ZXMgZnJvbSBjb25uZWN0aW9uLiBJbiBjYXNlIHdlIGNhdGNoIGFueSBleGNlcHRpb24sCi0gICAg
ICAgIHByZXBlbmRzIHJlbW90ZSBhZGRyZXNzIHRvIHRoZSBleGNlcHRpb24gbWVzc2FnZSBhbmQg
cmFpc2UgYWdhaW4uCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ29ubmVjdGlvblRl
cm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5IHN0cmluZy4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmVhZF9ieXRlcyA9IHNlbGYuX3Jl
cXVlc3QuY29ubmVjdGlvbi5yZWFkKGxlbmd0aCkKLSAgICAgICAgICAgIGlmIG5vdCByZWFkX2J5
dGVzOgotICAgICAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBQZWVyICgl
cikgY2xvc2VkIGNvbm5lY3Rpb24nICUKLSAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCwgKHNl
bGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZW1vdGVfYWRkciwpKSkKLSAgICAgICAgICAgIHJldHVy
biByZWFkX2J5dGVzCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IsIGU6Ci0gICAgICAgICAg
ICAjIENhdGNoIGEgc29ja2V0LmVycm9yLiBCZWNhdXNlIGl0J3Mgbm90IGEgY2hpbGQgY2xhc3Mg
b2YgdGhlCi0gICAgICAgICAgICAjIElPRXJyb3IgcHJpb3IgdG8gUHl0aG9uIDIuNiwgd2UgY2Fu
bm90IG9taXQgdGhpcyBleGNlcHQgY2xhdXNlLgotICAgICAgICAgICAgIyBVc2UgJXMgcmF0aGVy
IHRoYW4gJXIgZm9yIHRoZSBleGNlcHRpb24gdG8gdXNlIGh1bWFuIGZyaWVuZGx5Ci0gICAgICAg
ICAgICAjIGZvcm1hdC4KLSAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZWNlaXZpbmcgJWQgYnl0ZSBmYWlsZWQuIHNvY2tl
dC5lcnJvciAoJXMpIG9jY3VycmVkJyAlCi0gICAgICAgICAgICAgICAgKGxlbmd0aCwgZSkpCi0g
ICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlOgotICAgICAgICAgICAgIyBBbHNvIGNhdGNoIGFuIElP
RXJyb3IgYmVjYXVzZSBtb2RfcHl0aG9uIHRocm93cyBpdC4KLSAgICAgICAgICAgIHJhaXNlIENv
bm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZWNlaXZpbmcg
JWQgYnl0ZSBmYWlsZWQuIElPRXJyb3IgKCVzKSBvY2N1cnJlZCcgJQotICAgICAgICAgICAgICAg
IChsZW5ndGgsIGUpKQotCi0gICAgZGVmIF93cml0ZShzZWxmLCBieXRlc190b193cml0ZSk6Ci0g
ICAgICAgICIiIldyaXRlcyBnaXZlbiBieXRlcyB0byBjb25uZWN0aW9uLiBJbiBjYXNlIHdlIGNh
dGNoIGFueSBleGNlcHRpb24sCi0gICAgICAgIHByZXBlbmRzIHJlbW90ZSBhZGRyZXNzIHRvIHRo
ZSBleGNlcHRpb24gbWVzc2FnZSBhbmQgcmFpc2UgYWdhaW4uCi0gICAgICAgICIiIgotCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShieXRl
c190b193cml0ZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHV0
aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ0Zh
aWxlZCB0byBzZW5kIG1lc3NhZ2UgdG8gJXI6ICcgJQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ucmVtb3RlX2FkZHIsKSwKLSAgICAgICAgICAg
ICAgICAgICAgZSkKLSAgICAgICAgICAgIHJhaXNlCi0KLSAgICBkZWYgcmVjZWl2ZV9ieXRlcyhz
ZWxmLCBsZW5ndGgpOgotICAgICAgICAiIiJSZWNlaXZlcyBtdWx0aXBsZSBieXRlcy4gUmV0cmll
cyByZWFkIHdoZW4gd2UgY291bGRuJ3QgcmVjZWl2ZSB0aGUKLSAgICAgICAgc3BlY2lmaWVkIGFt
b3VudC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRl
ZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkgc3RyaW5nLgotICAgICAgICAiIiIK
LQotICAgICAgICByZWFkX2J5dGVzID0gW10KLSAgICAgICAgd2hpbGUgbGVuZ3RoID4gMDoKLSAg
ICAgICAgICAgIG5ld19yZWFkX2J5dGVzID0gc2VsZi5fcmVhZChsZW5ndGgpCi0gICAgICAgICAg
ICByZWFkX2J5dGVzLmFwcGVuZChuZXdfcmVhZF9ieXRlcykKLSAgICAgICAgICAgIGxlbmd0aCAt
PSBsZW4obmV3X3JlYWRfYnl0ZXMpCi0gICAgICAgIHJldHVybiAnJy5qb2luKHJlYWRfYnl0ZXMp
Ci0KLSAgICBkZWYgX3JlYWRfdW50aWwoc2VsZiwgZGVsaW1fY2hhcik6Ci0gICAgICAgICIiIlJl
YWRzIGJ5dGVzIHVudGlsIHdlIGVuY291bnRlciBkZWxpbV9jaGFyLiBUaGUgcmVzdWx0IHdpbGwg
bm90Ci0gICAgICAgIGNvbnRhaW4gZGVsaW1fY2hhci4KLQotICAgICAgICBSYWlzZXM6Ci0gICAg
ICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMg
ZW1wdHkgc3RyaW5nLgotICAgICAgICAiIiIKLQotICAgICAgICByZWFkX2J5dGVzID0gW10KLSAg
ICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGNoID0gc2VsZi5fcmVhZCgxKQotICAgICAg
ICAgICAgaWYgY2ggPT0gZGVsaW1fY2hhcjoKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAg
ICAgICAgcmVhZF9ieXRlcy5hcHBlbmQoY2gpCi0gICAgICAgIHJldHVybiAnJy5qb2luKHJlYWRf
Ynl0ZXMpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2Rf
cHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L19zdHJlYW1faGl4aWU3NS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjZjVi
MzFiYTBmYzNjM2EzNDc3ZGU4MjI5N2EwYzI2ZGExYzQ4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVh
bV9oaXhpZTc1LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjI5ICswLDAgQEAKLSMgQ29weXJpZ2h0
IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLSIiIlRoaXMgZmlsZSBwcm92aWRlcyBhIGNsYXNzIGZvciBwYXJzaW5nL2J1aWxk
aW5nIGZyYW1lcyBvZiB0aGUgV2ViU29ja2V0Ci1wcm90b2NvbCB2ZXJzaW9uIEh5QmkgMDAgYW5k
IEhpeGllIDc1LgotCi1TcGVjaWZpY2F0aW9uOgotLSBIeUJpIDAwIGh0dHA6Ly90b29scy5pZXRm
Lm9yZy9odG1sL2RyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wMAotLSBIaXhp
ZSA3NSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1oaXhpZS10aGV3ZWJzb2NrZXRw
cm90b2NvbC03NQotIiIiCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNl
cHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlv
blRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBp
bXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFt
X2Jhc2UgaW1wb3J0IFN0cmVhbUJhc2UKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFz
ZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IHV0aWwKLQotCi1jbGFzcyBTdHJlYW1IaXhpZTc1KFN0cmVhbUJhc2UpOgotICAgICIi
IkEgY2xhc3MgZm9yIHBhcnNpbmcvYnVpbGRpbmcgZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQgcHJv
dG9jb2wgdmVyc2lvbgotICAgIEh5QmkgMDAgYW5kIEhpeGllIDc1LgotICAgICIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGVuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZT1GYWxz
ZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAgICAgZW5h
YmxlX2Nsb3NpbmdfaGFuZHNoYWtlOiB0byBsZXQgU3RyZWFtSGl4aWU3NSBwZXJmb3JtIGNsb3Np
bmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtlIGFzIHNw
ZWNpZmllZCBpbiBIeUJpIDAwLCBzZXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpcyBvcHRpb24gdG8gVHJ1ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgU3RyZWFt
QmFzZS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0KQotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX2VuYWJsZV9jbG9zaW5n
X2hhbmRzaGFrZSA9IGVuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZQotCi0gICAgICAgIHNlbGYuX3Jl
cXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQgPSBGYWxzZQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNl
cnZlcl90ZXJtaW5hdGVkID0gRmFsc2UKLQotICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVz
c2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgICIiIlNlbmQgbWVzc2FnZS4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbWVzc2FnZTogdW5pY29kZSBzdHJpbmcgdG8g
c2VuZC4KLSAgICAgICAgICAgIGJpbmFyeTogbm90IHVzZWQgaW4gaGl4aWU3NS4KLQotICAgICAg
ICBSYWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVk
IG9uIGEgc2VydmVyLXRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uLgotICAg
ICAgICAiIiIKLQotICAgICAgICBpZiBub3QgZW5kOgotICAgICAgICAgICAgcmFpc2UgQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdTdHJlYW1IaXhpZTc1IGRvZXNuXCd0
IHN1cHBvcnQgc2VuZF9tZXNzYWdlIHdpdGggZW5kPUZhbHNlJykKLQotICAgICAgICBpZiBiaW5h
cnk6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ1N0cmVhbUhpeGllNzUgZG9lc25cJ3Qgc3VwcG9ydCBzZW5kX21lc3NhZ2Ugd2l0aCBi
aW5hcnk9VHJ1ZScpCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRl
ZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnUmVxdWVzdGVkIHNlbmRfbWVzc2FnZSBhZnRlciBzZW5kaW5nIG91dCBhIGNsb3Npbmcg
aGFuZHNoYWtlJykKLQotICAgICAgICBzZWxmLl93cml0ZSgnJy5qb2luKFsnXHgwMCcsIG1lc3Nh
Z2UuZW5jb2RlKCd1dGYtOCcpLCAnXHhmZiddKSkKLQotICAgIGRlZiBfcmVhZF9wYXlsb2FkX2xl
bmd0aF9oaXhpZTc1KHNlbGYpOgotICAgICAgICAiIiJSZWFkcyBhIGxlbmd0aCBoZWFkZXIgaW4g
YSBIaXhpZTc1IHZlcnNpb24gZnJhbWUgd2l0aCBsZW5ndGguCi0KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1
cm5zIGVtcHR5IHN0cmluZy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgbGVuZ3RoID0gMAotICAg
ICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgYl9zdHIgPSBzZWxmLl9yZWFkKDEpCi0gICAg
ICAgICAgICBiID0gb3JkKGJfc3RyKQotICAgICAgICAgICAgbGVuZ3RoID0gbGVuZ3RoICogMTI4
ICsgKGIgJiAweDdmKQotICAgICAgICAgICAgaWYgKGIgJiAweDgwKSA9PSAwOgotICAgICAgICAg
ICAgICAgIGJyZWFrCi0gICAgICAgIHJldHVybiBsZW5ndGgKLQotICAgIGRlZiByZWNlaXZlX21l
c3NhZ2Uoc2VsZik6Ci0gICAgICAgICIiIlJlY2VpdmUgYSBXZWJTb2NrZXQgZnJhbWUgYW5kIHJl
dHVybiBpdHMgcGF5bG9hZCBhbiB1bmljb2RlIHN0cmluZy4KLQotICAgICAgICBSZXR1cm5zOgot
ICAgICAgICAgICAgcGF5bG9hZCB1bmljb2RlIHN0cmluZyBpbiBhIFdlYlNvY2tldCBmcmFtZS4K
LQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2Vw
dGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkKLSAgICAgICAgICAgICAgICBzdHJpbmcuCi0g
ICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVkIG9uIGEgY2xpZW50
LXRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uLgotICAgICAgICAiIiIKLQot
ICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVkOgotICAgICAgICAgICAg
cmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQg
cmVjZWl2ZV9tZXNzYWdlIGFmdGVyIHJlY2VpdmluZyBhIGNsb3NpbmcgJwotICAgICAgICAgICAg
ICAgICdoYW5kc2hha2UnKQotCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICAjIFJl
YWQgMSBieXRlLgotICAgICAgICAgICAgIyBtcF9jb25uLnJlYWQgd2lsbCBibG9jayBpZiBubyBi
eXRlcyBhcmUgYXZhaWxhYmxlLgotICAgICAgICAgICAgIyBUaW1lb3V0IGlzIGNvbnRyb2xsZWQg
YnkgVGltZU91dCBkaXJlY3RpdmUgb2YgQXBhY2hlLgotICAgICAgICAgICAgZnJhbWVfdHlwZV9z
dHIgPSBzZWxmLnJlY2VpdmVfYnl0ZXMoMSkKLSAgICAgICAgICAgIGZyYW1lX3R5cGUgPSBvcmQo
ZnJhbWVfdHlwZV9zdHIpCi0gICAgICAgICAgICBpZiAoZnJhbWVfdHlwZSAmIDB4ODApID09IDB4
ODA6Ci0gICAgICAgICAgICAgICAgIyBUaGUgcGF5bG9hZCBsZW5ndGggaXMgc3BlY2lmaWVkIGlu
IHRoZSBmcmFtZS4KLSAgICAgICAgICAgICAgICAjIFJlYWQgYW5kIGRpc2NhcmQuCi0gICAgICAg
ICAgICAgICAgbGVuZ3RoID0gc2VsZi5fcmVhZF9wYXlsb2FkX2xlbmd0aF9oaXhpZTc1KCkKLSAg
ICAgICAgICAgICAgICBpZiBsZW5ndGggPiAwOgotICAgICAgICAgICAgICAgICAgICBfID0gc2Vs
Zi5yZWNlaXZlX2J5dGVzKGxlbmd0aCkKLSAgICAgICAgICAgICAgICAjIDUuMyAzLiAxMi4gaWYg
L3R5cGUvIGlzIDB4RkYgYW5kIC9sZW5ndGgvIGlzIDAsIHRoZW4gc2V0IHRoZQotICAgICAgICAg
ICAgICAgICMgL2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFnIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4K
LSAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlOgot
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAgaWYgZnJhbWVf
dHlwZSA9PSAweEZGIGFuZCBsZW5ndGggPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
cmVxdWVzdC5jbGllbnRfdGVybWluYXRlZCA9IFRydWUKLQotICAgICAgICAgICAgICAgICAgICBp
ZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWNl
aXZlZCBhY2sgZm9yIHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyAnCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ2hhbmRzaGFrZScpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Tm9uZQotCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAg
ICAgICAgICAgICAgICAgICdSZWNlaXZlZCBjbGllbnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNo
YWtlJykKLQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtl
KCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAg
ICAgICAgICAgICAgJ1NlbnQgYWNrIGZvciBjbGllbnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNo
YWtlJykKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgIyBUaGUgcGF5bG9hZCBpcyBkZWxpbWl0ZWQgd2l0aCBceGZmLgot
ICAgICAgICAgICAgICAgIGJ5dGVzID0gc2VsZi5fcmVhZF91bnRpbCgnXHhmZicpCi0gICAgICAg
ICAgICAgICAgIyBUaGUgV2ViU29ja2V0IHByb3RvY29sIHNlY3Rpb24gNC40IHNwZWNpZmllcyB0
aGF0IGludmFsaWQKLSAgICAgICAgICAgICAgICAjIGNoYXJhY3RlcnMgbXVzdCBiZSByZXBsYWNl
ZCB3aXRoIFUrZmZmZCBSRVBMQUNFTUVOVAotICAgICAgICAgICAgICAgICMgQ0hBUkFDVEVSLgot
ICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBieXRlcy5kZWNvZGUoJ3V0Zi04JywgJ3JlcGxhY2Un
KQotICAgICAgICAgICAgICAgIGlmIGZyYW1lX3R5cGUgPT0gMHgwMDoKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG1lc3NhZ2UKLSAgICAgICAgICAgICAgICAjIERpc2NhcmQgZGF0YSBvZiBv
dGhlciB0eXBlcy4KLQotICAgIGRlZiBfc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShzZWxmKToKLSAg
ICAgICAgaWYgbm90IHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZToKLSAgICAgICAgICAg
IHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnQ2xvc2luZyBo
YW5kc2hha2UgaXMgbm90IHN1cHBvcnRlZCBpbiBIaXhpZSA3NSBwcm90b2NvbCcpCi0KLSAgICAg
ICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKLQotICAgICAgICAjIDUu
MyB0aGUgc2VydmVyIG1heSBkZWNpZGUgdG8gdGVybWluYXRlIHRoZSBXZWJTb2NrZXQgY29ubmVj
dGlvbiBieQotICAgICAgICAjIHJ1bm5pbmcgdGhyb3VnaCB0aGUgZm9sbG93aW5nIHN0ZXBzOgot
ICAgICAgICAjIDEuIHNlbmQgYSAweEZGIGJ5dGUgYW5kIGEgMHgwMCBieXRlIHRvIHRoZSBjbGll
bnQgdG8gaW5kaWNhdGUgdGhlCi0gICAgICAgICMgc3RhcnQgb2YgdGhlIGNsb3NpbmcgaGFuZHNo
YWtlLgotICAgICAgICBzZWxmLl93cml0ZSgnXHhmZlx4MDAnKQotCi0gICAgZGVmIGNsb3NlX2Nv
bm5lY3Rpb24oc2VsZiwgdW51c2VkX2NvZGU9JycsIHVudXNlZF9yZWFzb249JycpOgotICAgICAg
ICAiIiJDbG9zZXMgYSBXZWJTb2NrZXQgY29ubmVjdGlvbi4KLQotICAgICAgICBSYWlzZXM6Ci0g
ICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiBjbG9zaW5nIGhh
bmRzaGFrZSB3YXMKLSAgICAgICAgICAgICAgICBub3Qgc3VjY2Vzc2Z1bGwuCi0gICAgICAgICIi
IgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBjbG9z
ZV9jb25uZWN0aW9uIGJ1dCBzZXJ2ZXIgaXMgYWxyZWFkeSB0ZXJtaW5hdGVkJykKLSAgICAgICAg
ICAgIHJldHVybgotCi0gICAgICAgIGlmIG5vdCBzZWxmLl9lbmFibGVfY2xvc2luZ19oYW5kc2hh
a2U6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb25uZWN0aW9uIGNsb3NlZCcpCi0gICAg
ICAgICAgICByZXR1cm4KLQotICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKCkK
LSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50IHNlcnZlci1pbml0aWF0ZWQgY2xvc2lu
ZyBoYW5kc2hha2UnKQotCi0gICAgICAgICMgVE9ETyh1a2FpKTogMi4gd2FpdCB1bnRpbCB0aGUg
L2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFnIGhhcyBiZWVuIHNldCwKLSAgICAgICAgIyBvciB1bnRp
bCBhIHNlcnZlci1kZWZpbmVkIHRpbWVvdXQgZXhwaXJlcy4KLSAgICAgICAgIwotICAgICAgICAj
IEZvciBub3csIHdlIGV4cGVjdCByZWNlaXZpbmcgY2xvc2luZyBoYW5kc2hha2UgcmlnaHQgYWZ0
ZXIgc2VuZGluZwotICAgICAgICAjIG91dCBjbG9zaW5nIGhhbmRzaGFrZSwgYW5kIGlmIHdlIGNv
dWxkbid0IHJlY2VpdmUgbm9uLWhhbmRzaGFrZQotICAgICAgICAjIGZyYW1lLCB3ZSB0YWtlIGl0
IGFzIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uLgotICAgICAgICBtZXNzYWdlID0gc2Vs
Zi5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBtZXNzYWdlIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ0RpZG5cJ3QgcmVjZWl2ZSB2YWxpZCBhY2sgZm9yIGNsb3NpbmcgaGFuZHNoYWtlJykK
LSAgICAgICAgIyBUT0RPOiAzLiBjbG9zZSB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24uCi0gICAg
ICAgICMgbm90ZTogbW9kX3B5dGhvbiBDb25uZWN0aW9uIChtcF9jb25uKSBkb2Vzbid0IGhhdmUg
Y2xvc2UgbWV0aG9kLgotCi0gICAgZGVmIHNlbmRfcGluZyhzZWxmLCBib2R5KToKLSAgICAgICAg
cmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgJ1N0cmVhbUhpeGllNzUg
ZG9lc25cJ3Qgc3VwcG9ydCBzZW5kX3BpbmcnKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faHliaS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2h5YmkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGE4YTQ5ZTNjM2RjOTViYTlmN2ZkNDEyODkzODNmZTA3YWZkZDU3N2YuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5
d2Vic29ja2V0L19zdHJlYW1faHliaS5weQorKysgL2Rldi9udWxsCkBAIC0xLDg4NyArMCwwIEBA
Ci0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9u
LgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUgcHJvdmlkZXMgY2xhc3NlcyBhbmQg
aGVscGVyIGZ1bmN0aW9ucyBmb3IgcGFyc2luZy9idWlsZGluZyBmcmFtZXMKLW9mIHRoZSBXZWJT
b2NrZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4KLQotU3BlY2lmaWNhdGlvbjoKLWh0dHA6Ly90b29s
cy5pZXRmLm9yZy9odG1sL3JmYzY0NTUKLSIiIgotCi0KLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0
IGRlcXVlCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgc3RydWN0Ci1pbXBvcnQg
dGltZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGlt
cG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1f
YmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0aW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFN0cmVhbUJhc2UKLWZyb20g
bW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2Vw
dGlvbgotCi0KLV9OT09QX01BU0tFUiA9IHV0aWwuTm9vcE1hc2tlcigpCi0KLQotY2xhc3MgRnJh
bWUob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaW49MSwgcnN2MT0wLCByc3Yy
PTAsIHJzdjM9MCwKLSAgICAgICAgICAgICAgICAgb3Bjb2RlPU5vbmUsIHBheWxvYWQ9JycpOgot
ICAgICAgICBzZWxmLmZpbiA9IGZpbgotICAgICAgICBzZWxmLnJzdjEgPSByc3YxCi0gICAgICAg
IHNlbGYucnN2MiA9IHJzdjIKLSAgICAgICAgc2VsZi5yc3YzID0gcnN2MwotICAgICAgICBzZWxm
Lm9wY29kZSA9IG9wY29kZQotICAgICAgICBzZWxmLnBheWxvYWQgPSBwYXlsb2FkCi0KLQotIyBI
ZWxwZXIgZnVuY3Rpb25zIG1hZGUgcHVibGljIHRvIGJlIHVzZWQgZm9yIHdyaXRpbmcgdW5pdHRl
c3RzIGZvciBXZWJTb2NrZXQKLSMgY2xpZW50cy4KLQotCi1kZWYgY3JlYXRlX2xlbmd0aF9oZWFk
ZXIobGVuZ3RoLCBtYXNrKToKLSAgICAiIiJDcmVhdGVzIGEgbGVuZ3RoIGhlYWRlci4KLQotICAg
IEFyZ3M6Ci0gICAgICAgIGxlbmd0aDogRnJhbWUgbGVuZ3RoLiBNdXN0IGJlIGxlc3MgdGhhbiAy
XjYzLgotICAgICAgICBtYXNrOiBNYXNrIGJpdC4gTXVzdCBiZSBib29sZWFuLgotCi0gICAgUmFp
c2VzOgotICAgICAgICBWYWx1ZUVycm9yOiB3aGVuIGJhZCBkYXRhIGlzIGdpdmVuLgotICAgICIi
IgotCi0gICAgaWYgbWFzazoKLSAgICAgICAgbWFza19iaXQgPSAxIDw8IDcKLSAgICBlbHNlOgot
ICAgICAgICBtYXNrX2JpdCA9IDAKLQotICAgIGlmIGxlbmd0aCA8IDA6Ci0gICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ2xlbmd0aCBtdXN0IGJlIG5vbiBuZWdhdGl2ZSBpbnRlZ2VyJykKLSAgICBl
bGlmIGxlbmd0aCA8PSAxMjU6Ci0gICAgICAgIHJldHVybiBjaHIobWFza19iaXQgfCBsZW5ndGgp
Ci0gICAgZWxpZiBsZW5ndGggPCAoMSA8PCAxNik6Ci0gICAgICAgIHJldHVybiBjaHIobWFza19i
aXQgfCAxMjYpICsgc3RydWN0LnBhY2soJyFIJywgbGVuZ3RoKQotICAgIGVsaWYgbGVuZ3RoIDwg
KDEgPDwgNjMpOgotICAgICAgICByZXR1cm4gY2hyKG1hc2tfYml0IHwgMTI3KSArIHN0cnVjdC5w
YWNrKCchUScsIGxlbmd0aCkKLSAgICBlbHNlOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdQ
YXlsb2FkIGlzIHRvbyBiaWcgZm9yIG9uZSBmcmFtZScpCi0KLQotZGVmIGNyZWF0ZV9oZWFkZXIo
b3Bjb2RlLCBwYXlsb2FkX2xlbmd0aCwgZmluLCByc3YxLCByc3YyLCByc3YzLCBtYXNrKToKLSAg
ICAiIiJDcmVhdGVzIGEgZnJhbWUgaGVhZGVyLgotCi0gICAgUmFpc2VzOgotICAgICAgICBFeGNl
cHRpb246IHdoZW4gYmFkIGRhdGEgaXMgZ2l2ZW4uCi0gICAgIiIiCi0KLSAgICBpZiBvcGNvZGUg
PCAwIG9yIDB4ZiA8IG9wY29kZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignT3Bjb2RlIG91
dCBvZiByYW5nZScpCi0KLSAgICBpZiBwYXlsb2FkX2xlbmd0aCA8IDAgb3IgKDEgPDwgNjMpIDw9
IHBheWxvYWRfbGVuZ3RoOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdwYXlsb2FkX2xlbmd0
aCBvdXQgb2YgcmFuZ2UnKQotCi0gICAgaWYgKGZpbiB8IHJzdjEgfCByc3YyIHwgcnN2MykgJiB+
MToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignRklOIGJpdCBhbmQgUmVzZXJ2ZWQgYml0IHBh
cmFtZXRlciBtdXN0IGJlIDAgb3IgMScpCi0KLSAgICBoZWFkZXIgPSAnJwotCi0gICAgZmlyc3Rf
Ynl0ZSA9ICgoZmluIDw8IDcpCi0gICAgICAgICAgICAgICAgICB8IChyc3YxIDw8IDYpIHwgKHJz
djIgPDwgNSkgfCAocnN2MyA8PCA0KQotICAgICAgICAgICAgICAgICAgfCBvcGNvZGUpCi0gICAg
aGVhZGVyICs9IGNocihmaXJzdF9ieXRlKQotICAgIGhlYWRlciArPSBjcmVhdGVfbGVuZ3RoX2hl
YWRlcihwYXlsb2FkX2xlbmd0aCwgbWFzaykKLQotICAgIHJldHVybiBoZWFkZXIKLQotCi1kZWYg
X2J1aWxkX2ZyYW1lKGhlYWRlciwgYm9keSwgbWFzayk6Ci0gICAgaWYgbm90IG1hc2s6Ci0gICAg
ICAgIHJldHVybiBoZWFkZXIgKyBib2R5Ci0KLSAgICBtYXNraW5nX25vbmNlID0gb3MudXJhbmRv
bSg0KQotICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIobWFza2luZ19ub25jZSkK
LQotICAgIHJldHVybiBoZWFkZXIgKyBtYXNraW5nX25vbmNlICsgbWFza2VyLm1hc2soYm9keSkK
LQotCi1kZWYgX2ZpbHRlcl9hbmRfZm9ybWF0X2ZyYW1lX29iamVjdChmcmFtZSwgbWFzaywgZnJh
bWVfZmlsdGVycyk6Ci0gICAgZm9yIGZyYW1lX2ZpbHRlciBpbiBmcmFtZV9maWx0ZXJzOgotICAg
ICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZyYW1lKQotCi0gICAgaGVhZGVyID0gY3JlYXRlX2hl
YWRlcigKLSAgICAgICAgZnJhbWUub3Bjb2RlLCBsZW4oZnJhbWUucGF5bG9hZCksIGZyYW1lLmZp
biwKLSAgICAgICAgZnJhbWUucnN2MSwgZnJhbWUucnN2MiwgZnJhbWUucnN2MywgbWFzaykKLSAg
ICByZXR1cm4gX2J1aWxkX2ZyYW1lKGhlYWRlciwgZnJhbWUucGF5bG9hZCwgbWFzaykKLQotCi1k
ZWYgY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICBtZXNzYWdlLCBvcGNvZGU9Y29tbW9uLk9QQ09E
RV9CSU5BUlksIGZpbj0xLCBtYXNrPUZhbHNlLCBmcmFtZV9maWx0ZXJzPVtdKToKLSAgICAiIiJD
cmVhdGVzIGEgc2ltcGxlIGJpbmFyeSBmcmFtZSB3aXRoIG5vIGV4dGVuc2lvbiwgcmVzZXJ2ZWQg
Yml0LiIiIgotCi0gICAgZnJhbWUgPSBGcmFtZShmaW49ZmluLCBvcGNvZGU9b3Bjb2RlLCBwYXls
b2FkPW1lc3NhZ2UpCi0gICAgcmV0dXJuIF9maWx0ZXJfYW5kX2Zvcm1hdF9mcmFtZV9vYmplY3Qo
ZnJhbWUsIG1hc2ssIGZyYW1lX2ZpbHRlcnMpCi0KLQotZGVmIGNyZWF0ZV90ZXh0X2ZyYW1lKAot
ICAgIG1lc3NhZ2UsIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQsIGZpbj0xLCBtYXNrPUZhbHNl
LCBmcmFtZV9maWx0ZXJzPVtdKToKLSAgICAiIiJDcmVhdGVzIGEgc2ltcGxlIHRleHQgZnJhbWUg
d2l0aCBubyBleHRlbnNpb24sIHJlc2VydmVkIGJpdC4iIiIKLQotICAgIGVuY29kZWRfbWVzc2Fn
ZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpCi0gICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJh
bWUoZW5jb2RlZF9tZXNzYWdlLCBvcGNvZGUsIGZpbiwgbWFzaywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBwYXJzZV9mcmFtZShyZWNlaXZl
X2J5dGVzLCBsb2dnZXI9Tm9uZSwKLSAgICAgICAgICAgICAgICB3c192ZXJzaW9uPWNvbW1vbi5W
RVJTSU9OX0hZQklfTEFURVNULAotICAgICAgICAgICAgICAgIHVubWFza19yZWNlaXZlPVRydWUp
OgotICAgICIiIlBhcnNlcyBhIGZyYW1lLiBSZXR1cm5zIGEgdHVwbGUgY29udGFpbmluZyBlYWNo
IGhlYWRlciBmaWVsZCBhbmQKLSAgICBwYXlsb2FkLgotCi0gICAgQXJnczoKLSAgICAgICAgcmVj
ZWl2ZV9ieXRlczogYSBmdW5jdGlvbiB0aGF0IHJlYWRzIGZyYW1lIGRhdGEgZnJvbSBhIHN0cmVh
bSBvcgotICAgICAgICAgICAgc29tZXRoaW5nIHNpbWlsYXIuIFRoZSBmdW5jdGlvbiB0YWtlcyBs
ZW5ndGggb2YgdGhlIGJ5dGVzIHRvIGJlCi0gICAgICAgICAgICByZWFkLiBUaGUgZnVuY3Rpb24g
bXVzdCByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiBpZgotICAgICAgICAgICAg
dGhlcmUgaXMgbm90IGVub3VnaCBkYXRhIHRvIGJlIHJlYWQuCi0gICAgICAgIGxvZ2dlcjogYSBs
b2dnaW5nIG9iamVjdC4KLSAgICAgICAgd3NfdmVyc2lvbjogdGhlIHZlcnNpb24gb2YgV2ViU29j
a2V0IHByb3RvY29sLgotICAgICAgICB1bm1hc2tfcmVjZWl2ZTogdW5tYXNrIHJlY2VpdmVkIGZy
YW1lcy4gV2hlbiByZWNlaXZlZCB1bm1hc2tlZAotICAgICAgICAgICAgZnJhbWUsIHJhaXNlcyBJ
bnZhbGlkRnJhbWVFeGNlcHRpb24uCi0KLSAgICBSYWlzZXM6Ci0gICAgICAgIENvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlY2VpdmVfYnl0ZXMgcmFpc2VzIGl0LgotICAgICAg
ICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIGZyYW1lIGNvbnRhaW5zIGludmFsaWQg
ZGF0YS4KLSAgICAiIiIKLQotICAgIGlmIG5vdCBsb2dnZXI6Ci0gICAgICAgIGxvZ2dlciA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKCkKLQotICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUs
ICdSZWNlaXZlIHRoZSBmaXJzdCAyIG9jdGV0cyBvZiBhIGZyYW1lJykKLQotICAgIHJlY2VpdmVk
ID0gcmVjZWl2ZV9ieXRlcygyKQotCi0gICAgZmlyc3RfYnl0ZSA9IG9yZChyZWNlaXZlZFswXSkK
LSAgICBmaW4gPSAoZmlyc3RfYnl0ZSA+PiA3KSAmIDEKLSAgICByc3YxID0gKGZpcnN0X2J5dGUg
Pj4gNikgJiAxCi0gICAgcnN2MiA9IChmaXJzdF9ieXRlID4+IDUpICYgMQotICAgIHJzdjMgPSAo
Zmlyc3RfYnl0ZSA+PiA0KSAmIDEKLSAgICBvcGNvZGUgPSBmaXJzdF9ieXRlICYgMHhmCi0KLSAg
ICBzZWNvbmRfYnl0ZSA9IG9yZChyZWNlaXZlZFsxXSkKLSAgICBtYXNrID0gKHNlY29uZF9ieXRl
ID4+IDcpICYgMQotICAgIHBheWxvYWRfbGVuZ3RoID0gc2Vjb25kX2J5dGUgJiAweDdmCi0KLSAg
ICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgICAgJ0ZJTj0l
cywgUlNWMT0lcywgUlNWMj0lcywgUlNWMz0lcywgb3Bjb2RlPSVzLCAnCi0gICAgICAgICAgICAg
ICAnTWFzaz0lcywgUGF5bG9hZF9sZW5ndGg9JXMnLAotICAgICAgICAgICAgICAgZmluLCByc3Yx
LCByc3YyLCByc3YzLCBvcGNvZGUsIG1hc2ssIHBheWxvYWRfbGVuZ3RoKQotCi0gICAgaWYgKG1h
c2sgPT0gMSkgIT0gdW5tYXNrX3JlY2VpdmU6Ci0gICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4
Y2VwdGlvbigKLSAgICAgICAgICAgICdNYXNrIGJpdCBvbiB0aGUgcmVjZWl2ZWQgZnJhbWUgZGlk
XCdudCBtYXRjaCBtYXNraW5nICcKLSAgICAgICAgICAgICdjb25maWd1cmF0aW9uIGZvciByZWNl
aXZlZCBmcmFtZXMnKQotCi0gICAgIyBUaGUgSHlCaSBhbmQgbGF0ZXIgc3BlY3MgZGlzYWxsb3cg
cHV0dGluZyBhIHZhbHVlIGluIDB4MC0weEZGRkYKLSAgICAjIGludG8gdGhlIDgtb2N0ZXQgZXh0
ZW5kZWQgcGF5bG9hZCBsZW5ndGggZmllbGQgKG9yIDB4MC0weEZEIGluCi0gICAgIyAyLW9jdGV0
IGZpZWxkKS4KLSAgICB2YWxpZF9sZW5ndGhfZW5jb2RpbmcgPSBUcnVlCi0gICAgbGVuZ3RoX2Vu
Y29kaW5nX2J5dGVzID0gMQotICAgIGlmIHBheWxvYWRfbGVuZ3RoID09IDEyNzoKLSAgICAgICAg
bG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICAgICAgICAnUmVj
ZWl2ZSA4LW9jdGV0IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoJykKLQotICAgICAgICBleHRlbmRl
ZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0ZXMoOCkKLSAgICAgICAgcGF5bG9hZF9sZW5n
dGggPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAgICAgJyFRJywgZXh0ZW5kZWRfcGF5bG9hZF9s
ZW5ndGgpWzBdCi0gICAgICAgIGlmIHBheWxvYWRfbGVuZ3RoID4gMHg3RkZGRkZGRkZGRkZGRkZG
OgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdFeHRlbmRlZCBwYXlsb2FkIGxlbmd0aCA+PSAyXjYzJykKLSAgICAgICAgaWYgd3NfdmVy
c2lvbiA+PSAxMyBhbmQgcGF5bG9hZF9sZW5ndGggPCAweDEwMDAwOgotICAgICAgICAgICAgdmFs
aWRfbGVuZ3RoX2VuY29kaW5nID0gRmFsc2UKLSAgICAgICAgICAgIGxlbmd0aF9lbmNvZGluZ19i
eXRlcyA9IDgKLQotICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAg
ICAgICAgICAgICAgICAgICdEZWNvZGVkX3BheWxvYWRfbGVuZ3RoPSVzJywgcGF5bG9hZF9sZW5n
dGgpCi0gICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA9PSAxMjY6Ci0gICAgICAgIGxvZ2dlci5sb2co
Y29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAgICAgICAgJ1JlY2VpdmUgMi1vY3Rl
dCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCcpCi0KLSAgICAgICAgZXh0ZW5kZWRfcGF5bG9hZF9s
ZW5ndGggPSByZWNlaXZlX2J5dGVzKDIpCi0gICAgICAgIHBheWxvYWRfbGVuZ3RoID0gc3RydWN0
LnVucGFjaygKLSAgICAgICAgICAgICchSCcsIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoKVswXQot
ICAgICAgICBpZiB3c192ZXJzaW9uID49IDEzIGFuZCBwYXlsb2FkX2xlbmd0aCA8IDEyNjoKLSAg
ICAgICAgICAgIHZhbGlkX2xlbmd0aF9lbmNvZGluZyA9IEZhbHNlCi0gICAgICAgICAgICBsZW5n
dGhfZW5jb2RpbmdfYnl0ZXMgPSAyCi0KLSAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVW
RUxfRklORSwKLSAgICAgICAgICAgICAgICAgICAnRGVjb2RlZF9wYXlsb2FkX2xlbmd0aD0lcycs
IHBheWxvYWRfbGVuZ3RoKQotCi0gICAgaWYgbm90IHZhbGlkX2xlbmd0aF9lbmNvZGluZzoKLSAg
ICAgICAgbG9nZ2VyLndhcm5pbmcoCi0gICAgICAgICAgICAnUGF5bG9hZCBsZW5ndGggaXMgbm90
IGVuY29kZWQgdXNpbmcgdGhlIG1pbmltYWwgbnVtYmVyIG9mICcKLSAgICAgICAgICAgICdieXRl
cyAoJWQgaXMgZW5jb2RlZCB1c2luZyAlZCBieXRlcyknLAotICAgICAgICAgICAgcGF5bG9hZF9s
ZW5ndGgsCi0gICAgICAgICAgICBsZW5ndGhfZW5jb2RpbmdfYnl0ZXMpCi0KLSAgICBpZiBtYXNr
ID09IDE6Ci0gICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdSZWNlaXZl
IG1hc2snKQotCi0gICAgICAgIG1hc2tpbmdfbm9uY2UgPSByZWNlaXZlX2J5dGVzKDQpCi0gICAg
ICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIobWFza2luZ19ub25jZSkKLQotICAg
ICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnTWFzaz0lcicsIG1hc2tpbmdf
bm9uY2UpCi0gICAgZWxzZToKLSAgICAgICAgbWFza2VyID0gX05PT1BfTUFTS0VSCi0KLSAgICBs
b2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnUmVjZWl2ZSBwYXlsb2FkIGRhdGEnKQot
ICAgIGlmIGxvZ2dlci5pc0VuYWJsZWRGb3IoY29tbW9uLkxPR0xFVkVMX0ZJTkUpOgotICAgICAg
ICByZWNlaXZlX3N0YXJ0ID0gdGltZS50aW1lKCkKLQotICAgIHJhd19wYXlsb2FkX2J5dGVzID0g
cmVjZWl2ZV9ieXRlcyhwYXlsb2FkX2xlbmd0aCkKLQotICAgIGlmIGxvZ2dlci5pc0VuYWJsZWRG
b3IoY29tbW9uLkxPR0xFVkVMX0ZJTkUpOgotICAgICAgICBsb2dnZXIubG9nKAotICAgICAgICAg
ICAgY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAnRG9uZSByZWNlaXZpbmcgcGF5
bG9hZCBkYXRhIGF0ICVzIE1CL3MnLAotICAgICAgICAgICAgcGF5bG9hZF9sZW5ndGggLyAodGlt
ZS50aW1lKCkgLSByZWNlaXZlX3N0YXJ0KSAvIDEwMDAgLyAxMDAwKQotICAgIGxvZ2dlci5sb2co
Y29tbW9uLkxPR0xFVkVMX0ZJTkUsICdVbm1hc2sgcGF5bG9hZCBkYXRhJykKLQotICAgIGlmIGxv
Z2dlci5pc0VuYWJsZWRGb3IoY29tbW9uLkxPR0xFVkVMX0ZJTkUpOgotICAgICAgICB1bm1hc2tf
c3RhcnQgPSB0aW1lLnRpbWUoKQotCi0gICAgdW5tYXNrZWRfYnl0ZXMgPSBtYXNrZXIubWFzayhy
YXdfcGF5bG9hZF9ieXRlcykKLQotICAgIGlmIGxvZ2dlci5pc0VuYWJsZWRGb3IoY29tbW9uLkxP
R0xFVkVMX0ZJTkUpOgotICAgICAgICBsb2dnZXIubG9nKAotICAgICAgICAgICAgY29tbW9uLkxP
R0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAnRG9uZSB1bm1hc2tpbmcgcGF5bG9hZCBkYXRhIGF0
ICVzIE1CL3MnLAotICAgICAgICAgICAgcGF5bG9hZF9sZW5ndGggLyAodGltZS50aW1lKCkgLSB1
bm1hc2tfc3RhcnQpIC8gMTAwMCAvIDEwMDApCi0KLSAgICByZXR1cm4gb3Bjb2RlLCB1bm1hc2tl
ZF9ieXRlcywgZmluLCByc3YxLCByc3YyLCByc3YzCi0KLQotY2xhc3MgRnJhZ21lbnRlZEZyYW1l
QnVpbGRlcihvYmplY3QpOgotICAgICIiIkEgc3RhdGVmdWwgY2xhc3MgdG8gc2VuZCBhIG1lc3Nh
Z2UgYXMgZnJhZ21lbnRzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1hc2ssIGZyYW1l
X2ZpbHRlcnM9W10sIGVuY29kZV91dGY4PVRydWUpOgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFu
IGluc3RhbmNlLiIiIgotCi0gICAgICAgIHNlbGYuX21hc2sgPSBtYXNrCi0gICAgICAgIHNlbGYu
X2ZyYW1lX2ZpbHRlcnMgPSBmcmFtZV9maWx0ZXJzCi0gICAgICAgICMgVGhpcyBpcyBmb3Igc2tp
cHBpbmcgVVRGLTggZW5jb2Rpbmcgd2hlbiBidWlsZGluZyB0ZXh0IHR5cGUgZnJhbWVzCi0gICAg
ICAgICMgZnJvbSBjb21wcmVzc2VkIGRhdGEuCi0gICAgICAgIHNlbGYuX2VuY29kZV91dGY4ID0g
ZW5jb2RlX3V0ZjgKLQotICAgICAgICBzZWxmLl9zdGFydGVkID0gRmFsc2UKLQotICAgICAgICAj
IEhvbGQgb3Bjb2RlIG9mIHRoZSBmaXJzdCBmcmFtZSBpbiBtZXNzYWdlcyB0byB2ZXJpZnkgdHlw
ZXMgb2Ygb3RoZXIKLSAgICAgICAgIyBmcmFtZXMgaW4gdGhlIG1lc3NhZ2UgYXJlIGFsbCB0aGUg
c2FtZS4KLSAgICAgICAgc2VsZi5fb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9URVhUCi0KLSAgICBk
ZWYgYnVpbGQoc2VsZiwgcGF5bG9hZF9kYXRhLCBlbmQsIGJpbmFyeSk6Ci0gICAgICAgIGlmIGJp
bmFyeToKLSAgICAgICAgICAgIGZyYW1lX3R5cGUgPSBjb21tb24uT1BDT0RFX0JJTkFSWQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgZnJhbWVfdHlwZSA9IGNvbW1vbi5PUENPREVfVEVYVAot
ICAgICAgICBpZiBzZWxmLl9zdGFydGVkOgotICAgICAgICAgICAgaWYgc2VsZi5fb3Bjb2RlICE9
IGZyYW1lX3R5cGU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTWVzc2FnZSB0
eXBlcyBhcmUgZGlmZmVyZW50IGluIGZyYW1lcyBmb3IgJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3RoZSBzYW1lIG1lc3NhZ2UnKQotICAgICAgICAgICAgb3Bjb2RlID0gY29t
bW9uLk9QQ09ERV9DT05USU5VQVRJT04KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9wY29k
ZSA9IGZyYW1lX3R5cGUKLSAgICAgICAgICAgIHNlbGYuX29wY29kZSA9IGZyYW1lX3R5cGUKLQot
ICAgICAgICBpZiBlbmQ6Ci0gICAgICAgICAgICBzZWxmLl9zdGFydGVkID0gRmFsc2UKLSAgICAg
ICAgICAgIGZpbiA9IDEKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0ZWQg
PSBUcnVlCi0gICAgICAgICAgICBmaW4gPSAwCi0KLSAgICAgICAgaWYgYmluYXJ5IG9yIG5vdCBz
ZWxmLl9lbmNvZGVfdXRmODoKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1l
KAotICAgICAgICAgICAgICAgIHBheWxvYWRfZGF0YSwgb3Bjb2RlLCBmaW4sIHNlbGYuX21hc2ss
IHNlbGYuX2ZyYW1lX2ZpbHRlcnMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4g
Y3JlYXRlX3RleHRfZnJhbWUoCi0gICAgICAgICAgICAgICAgcGF5bG9hZF9kYXRhLCBvcGNvZGUs
IGZpbiwgc2VsZi5fbWFzaywgc2VsZi5fZnJhbWVfZmlsdGVycykKLQotCi1kZWYgX2NyZWF0ZV9j
b250cm9sX2ZyYW1lKG9wY29kZSwgYm9keSwgbWFzaywgZnJhbWVfZmlsdGVycyk6Ci0gICAgZnJh
bWUgPSBGcmFtZShvcGNvZGU9b3Bjb2RlLCBwYXlsb2FkPWJvZHkpCi0KLSAgICBmb3IgZnJhbWVf
ZmlsdGVyIGluIGZyYW1lX2ZpbHRlcnM6Ci0gICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJh
bWUpCi0KLSAgICBpZiBsZW4oZnJhbWUucGF5bG9hZCkgPiAxMjU6Ci0gICAgICAgIHJhaXNlIEJh
ZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICdQYXlsb2FkIGRhdGEgc2l6ZSBvZiBj
b250cm9sIGZyYW1lcyBtdXN0IGJlIDEyNSBieXRlcyBvciBsZXNzJykKLQotICAgIGhlYWRlciA9
IGNyZWF0ZV9oZWFkZXIoCi0gICAgICAgIGZyYW1lLm9wY29kZSwgbGVuKGZyYW1lLnBheWxvYWQp
LCBmcmFtZS5maW4sCi0gICAgICAgIGZyYW1lLnJzdjEsIGZyYW1lLnJzdjIsIGZyYW1lLnJzdjMs
IG1hc2spCi0gICAgcmV0dXJuIF9idWlsZF9mcmFtZShoZWFkZXIsIGZyYW1lLnBheWxvYWQsIG1h
c2spCi0KLQotZGVmIGNyZWF0ZV9waW5nX2ZyYW1lKGJvZHksIG1hc2s9RmFsc2UsIGZyYW1lX2Zp
bHRlcnM9W10pOgotICAgIHJldHVybiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUoY29tbW9uLk9QQ09E
RV9QSU5HLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBjcmVhdGVfcG9uZ19m
cmFtZShib2R5LCBtYXNrPUZhbHNlLCBmcmFtZV9maWx0ZXJzPVtdKToKLSAgICByZXR1cm4gX2Ny
ZWF0ZV9jb250cm9sX2ZyYW1lKGNvbW1vbi5PUENPREVfUE9ORywgYm9keSwgbWFzaywgZnJhbWVf
ZmlsdGVycykKLQotCi1kZWYgY3JlYXRlX2Nsb3NlX2ZyYW1lKGJvZHksIG1hc2s9RmFsc2UsIGZy
YW1lX2ZpbHRlcnM9W10pOgotICAgIHJldHVybiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUoCi0gICAg
ICAgIGNvbW1vbi5PUENPREVfQ0xPU0UsIGJvZHksIG1hc2ssIGZyYW1lX2ZpbHRlcnMpCi0KLQot
ZGVmIGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KGNvZGUsIHJlYXNvbik6Ci0gICAgYm9k
eSA9ICcnCi0gICAgaWYgY29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgaWYgKGNvZGUgPiBjb21t
b24uU1RBVFVTX1VTRVJfUFJJVkFURV9NQVggb3IKLSAgICAgICAgICAgIGNvZGUgPCBjb21tb24u
U1RBVFVTX05PUk1BTF9DTE9TVVJFKToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4
Y2VwdGlvbignU3RhdHVzIGNvZGUgaXMgb3V0IG9mIHJhbmdlJykKLSAgICAgICAgaWYgKGNvZGUg
PT0gY29tbW9uLlNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQgb3IKLSAgICAgICAgICAgIGNvZGUg
PT0gY29tbW9uLlNUQVRVU19BQk5PUk1BTF9DTE9TVVJFIG9yCi0gICAgICAgICAgICBjb2RlID09
IGNvbW1vbi5TVEFUVVNfVExTX0hBTkRTSEFLRSk6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVy
YXRpb25FeGNlcHRpb24oJ1N0YXR1cyBjb2RlIGlzIHJlc2VydmVkIHBzZXVkbyAnCi0gICAgICAg
ICAgICAgICAgJ2NvZGUnKQotICAgICAgICBlbmNvZGVkX3JlYXNvbiA9IHJlYXNvbi5lbmNvZGUo
J3V0Zi04JykKLSAgICAgICAgYm9keSA9IHN0cnVjdC5wYWNrKCchSCcsIGNvZGUpICsgZW5jb2Rl
ZF9yZWFzb24KLSAgICByZXR1cm4gYm9keQotCi0KLWNsYXNzIFN0cmVhbU9wdGlvbnMob2JqZWN0
KToKLSAgICAiIiJIb2xkcyBvcHRpb24gdmFsdWVzIHRvIGNvbmZpZ3VyZSBTdHJlYW0gb2JqZWN0
cy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBT
dHJlYW1PcHRpb25zLiIiIgotCi0gICAgICAgICMgRmlsdGVycyBhcHBsaWVkIHRvIGZyYW1lcy4K
LSAgICAgICAgc2VsZi5vdXRnb2luZ19mcmFtZV9maWx0ZXJzID0gW10KLSAgICAgICAgc2VsZi5p
bmNvbWluZ19mcmFtZV9maWx0ZXJzID0gW10KLQotICAgICAgICAjIEZpbHRlcnMgYXBwbGllZCB0
byBtZXNzYWdlcy4gQ29udHJvbCBmcmFtZXMgYXJlIG5vdCBhZmZlY3RlZCBieSB0aGVtLgotICAg
ICAgICBzZWxmLm91dGdvaW5nX21lc3NhZ2VfZmlsdGVycyA9IFtdCi0gICAgICAgIHNlbGYuaW5j
b21pbmdfbWVzc2FnZV9maWx0ZXJzID0gW10KLQotICAgICAgICBzZWxmLmVuY29kZV90ZXh0X21l
c3NhZ2VfdG9fdXRmOCA9IFRydWUKLSAgICAgICAgc2VsZi5tYXNrX3NlbmQgPSBGYWxzZQotICAg
ICAgICBzZWxmLnVubWFza19yZWNlaXZlID0gVHJ1ZQotCi0KLWNsYXNzIFN0cmVhbShTdHJlYW1C
YXNlKToKLSAgICAiIiJBIGNsYXNzIGZvciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1lcyBvZiB0aGUg
V2ViU29ja2V0IHByb3RvY29sCi0gICAgKFJGQyA2NDU1KS4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCByZXF1ZXN0LCBvcHRpb25zKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBh
biBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5
dGhvbiByZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAgICBTdHJlYW1CYXNlLl9faW5pdF9f
KHNlbGYsIHJlcXVlc3QpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3Nf
bG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLQotICAgICAg
ICBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5f
cmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IEZhbHNlCi0KLSAgICAgICAgIyBIb2xkcyBib2R5
IG9mIHJlY2VpdmVkIGZyYWdtZW50cy4KLSAgICAgICAgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRz
ID0gW10KLSAgICAgICAgIyBIb2xkcyB0aGUgb3Bjb2RlIG9mIHRoZSBmaXJzdCBmcmFnbWVudC4K
LSAgICAgICAgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID0gTm9uZQotCi0gICAgICAgIHNlbGYuX3dy
aXRlciA9IEZyYWdtZW50ZWRGcmFtZUJ1aWxkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25z
Lm1hc2tfc2VuZCwgc2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzLAotICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy5lbmNvZGVfdGV4dF9tZXNzYWdlX3RvX3V0ZjgpCi0KLSAgICAg
ICAgc2VsZi5fcGluZ19xdWV1ZSA9IGRlcXVlKCkKLQotICAgIGRlZiBfcmVjZWl2ZV9mcmFtZShz
ZWxmKToKLSAgICAgICAgIiIiUmVjZWl2ZXMgYSBmcmFtZSBhbmQgcmV0dXJuIGRhdGEgaW4gdGhl
IGZyYW1lIGFzIGEgdHVwbGUgY29udGFpbmluZwotICAgICAgICBlYWNoIGhlYWRlciBmaWVsZCBh
bmQgcGF5bG9hZCBzZXBhcmF0ZWx5LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENv
bm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eQotICAg
ICAgICAgICAgICAgIHN0cmluZy4KLSAgICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjog
d2hlbiB0aGUgZnJhbWUgY29udGFpbnMgaW52YWxpZCBkYXRhLgotICAgICAgICAiIiIKLQotICAg
ICAgICBkZWYgX3JlY2VpdmVfYnl0ZXMobGVuZ3RoKToKLSAgICAgICAgICAgIHJldHVybiBzZWxm
LnJlY2VpdmVfYnl0ZXMobGVuZ3RoKQotCi0gICAgICAgIHJldHVybiBwYXJzZV9mcmFtZShyZWNl
aXZlX2J5dGVzPV9yZWNlaXZlX2J5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9n
Z2VyPXNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHdzX3ZlcnNpb249
c2VsZi5fcmVxdWVzdC53c192ZXJzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5t
YXNrX3JlY2VpdmU9c2VsZi5fb3B0aW9ucy51bm1hc2tfcmVjZWl2ZSkKLQotICAgIGRlZiBfcmVj
ZWl2ZV9mcmFtZV9hc19mcmFtZV9vYmplY3Qoc2VsZik6Ci0gICAgICAgIG9wY29kZSwgdW5tYXNr
ZWRfYnl0ZXMsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MyA9IHNlbGYuX3JlY2VpdmVfZnJhbWUoKQot
Ci0gICAgICAgIHJldHVybiBGcmFtZShmaW49ZmluLCByc3YxPXJzdjEsIHJzdjI9cnN2MiwgcnN2
Mz1yc3YzLAotICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPW9wY29kZSwgcGF5bG9hZD11bm1h
c2tlZF9ieXRlcykKLQotICAgIGRlZiByZWNlaXZlX2ZpbHRlcmVkX2ZyYW1lKHNlbGYpOgotICAg
ICAgICAiIiJSZWNlaXZlcyBhIGZyYW1lIGFuZCBhcHBsaWVzIGZyYW1lIGZpbHRlcnMgYW5kIG1l
c3NhZ2UgZmlsdGVycy4KLSAgICAgICAgVGhlIGZyYW1lIHRvIGJlIHJlY2VpdmVkIG11c3Qgc2F0
aXNmeSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAgICAgICAgLSBUaGUgZnJhbWUgaXMgbm90IGZy
YWdtZW50ZWQuCi0gICAgICAgIC0gVGhlIG9wY29kZSBvZiB0aGUgZnJhbWUgaXMgVEVYVCBvciBC
SU5BUlkuCi0KLSAgICAgICAgRE8gTk9UIFVTRSB0aGlzIG1ldGhvZCBleGNlcHQgZm9yIHRlc3Rp
bmcgcHVycG9zZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZnJhbWUgPSBzZWxmLl9yZWNlaXZl
X2ZyYW1lX2FzX2ZyYW1lX29iamVjdCgpCi0gICAgICAgIGlmIG5vdCBmcmFtZS5maW46Ci0gICAg
ICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1Nl
Z21lbnRlZCBmcmFtZXMgbXVzdCBub3QgYmUgcmVjZWl2ZWQgdmlhICcKLSAgICAgICAgICAgICAg
ICAncmVjZWl2ZV9maWx0ZXJlZF9mcmFtZSgpJykKLSAgICAgICAgaWYgKGZyYW1lLm9wY29kZSAh
PSBjb21tb24uT1BDT0RFX1RFWFQgYW5kCi0gICAgICAgICAgICBmcmFtZS5vcGNvZGUgIT0gY29t
bW9uLk9QQ09ERV9CSU5BUlkpOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICdDb250cm9sIGZyYW1lcyBtdXN0IG5vdCBiZSByZWNlaXZl
ZCB2aWEgJwotICAgICAgICAgICAgICAgICdyZWNlaXZlX2ZpbHRlcmVkX2ZyYW1lKCknKQotCi0g
ICAgICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9m
aWx0ZXJzOgotICAgICAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFtZSkKLSAgICAgICAg
Zm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMuaW5jb21pbmdfbWVzc2FnZV9maWx0
ZXJzOgotICAgICAgICAgICAgZnJhbWUucGF5bG9hZCA9IG1lc3NhZ2VfZmlsdGVyLmZpbHRlcihm
cmFtZS5wYXlsb2FkKQotICAgICAgICByZXR1cm4gZnJhbWUKLQotICAgIGRlZiBzZW5kX21lc3Nh
Z2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgICIiIlNl
bmQgbWVzc2FnZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbWVzc2FnZTogdGV4dCBp
biB1bmljb2RlIG9yIGJpbmFyeSBpbiBzdHIgdG8gc2VuZC4KLSAgICAgICAgICAgIGJpbmFyeTog
c2VuZCBtZXNzYWdlIGFzIGJpbmFyeSBmcmFtZS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAg
ICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVkIG9uIGEgc2VydmVyLXRlcm1p
bmF0ZWQKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uIG9yIGNhbGxlZCB3aXRoIGluY29uc2lz
dGVudCBtZXNzYWdlIHR5cGUgb3IKLSAgICAgICAgICAgICAgICBiaW5hcnkgcGFyYW1ldGVyLgot
ICAgICAgICAiIiIKLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVk
OgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdSZXF1ZXN0ZWQgc2VuZF9tZXNzYWdlIGFmdGVyIHNlbmRpbmcgb3V0IGEgY2xvc2luZyBo
YW5kc2hha2UnKQotCi0gICAgICAgIGlmIGJpbmFyeSBhbmQgaXNpbnN0YW5jZShtZXNzYWdlLCB1
bmljb2RlKToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAnTWVzc2FnZSBmb3IgYmluYXJ5IGZyYW1lIG11c3QgYmUgaW5zdGFuY2Ugb2Yg
c3RyJykKLQotICAgICAgICBmb3IgbWVzc2FnZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5vdXRn
b2luZ19tZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZV9maWx0
ZXIuZmlsdGVyKG1lc3NhZ2UsIGVuZCwgYmluYXJ5KQotCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgICMgU2V0IHRoaXMgdG8gYW55IHBvc2l0aXZlIGludGVnZXIgdG8gbGltaXQgbWF4aW11bSBz
aXplIG9mIGRhdGEgaW4KLSAgICAgICAgICAgICMgcGF5bG9hZCBkYXRhIG9mIGVhY2ggZnJhbWUu
Ci0gICAgICAgICAgICBNQVhfUEFZTE9BRF9EQVRBX1NJWkUgPSAtMQotCi0gICAgICAgICAgICBp
ZiBNQVhfUEFZTE9BRF9EQVRBX1NJWkUgPD0gMDoKLSAgICAgICAgICAgICAgICBzZWxmLl93cml0
ZShzZWxmLl93cml0ZXIuYnVpbGQobWVzc2FnZSwgZW5kLCBiaW5hcnkpKQotICAgICAgICAgICAg
ICAgIHJldHVybgotCi0gICAgICAgICAgICBieXRlc193cml0dGVuID0gMAotICAgICAgICAgICAg
d2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICBlbmRfZm9yX3RoaXNfZnJhbWUgPSBlbmQKLSAg
ICAgICAgICAgICAgICBieXRlc190b193cml0ZSA9IGxlbihtZXNzYWdlKSAtIGJ5dGVzX3dyaXR0
ZW4KLSAgICAgICAgICAgICAgICBpZiAoTUFYX1BBWUxPQURfREFUQV9TSVpFID4gMCBhbmQKLSAg
ICAgICAgICAgICAgICAgICAgYnl0ZXNfdG9fd3JpdGUgPiBNQVhfUEFZTE9BRF9EQVRBX1NJWkUp
OgotICAgICAgICAgICAgICAgICAgICBlbmRfZm9yX3RoaXNfZnJhbWUgPSBGYWxzZQotICAgICAg
ICAgICAgICAgICAgICBieXRlc190b193cml0ZSA9IE1BWF9QQVlMT0FEX0RBVEFfU0laRQotCi0g
ICAgICAgICAgICAgICAgZnJhbWUgPSBzZWxmLl93cml0ZXIuYnVpbGQoCi0gICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2VbYnl0ZXNfd3JpdHRlbjpieXRlc193cml0dGVuICsgYnl0ZXNfdG9fd3Jp
dGVdLAotICAgICAgICAgICAgICAgICAgICBlbmRfZm9yX3RoaXNfZnJhbWUsCi0gICAgICAgICAg
ICAgICAgICAgIGJpbmFyeSkKLSAgICAgICAgICAgICAgICBzZWxmLl93cml0ZShmcmFtZSkKLQot
ICAgICAgICAgICAgICAgIGJ5dGVzX3dyaXR0ZW4gKz0gYnl0ZXNfdG9fd3JpdGUKLQotICAgICAg
ICAgICAgICAgICMgVGhpcyBpZiBtdXN0IGJlIHBsYWNlZCBoZXJlICh0aGUgZW5kIG9mIHdoaWxl
IGJsb2NrKSBzbyB0aGF0Ci0gICAgICAgICAgICAgICAgIyBhdCBsZWFzdCBvbmUgZnJhbWUgaXMg
c2VudC4KLSAgICAgICAgICAgICAgICBpZiBsZW4obWVzc2FnZSkgPD0gYnl0ZXNfd3JpdHRlbjoK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6
Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oZSkKLQotICAgIGRlZiBf
Z2V0X21lc3NhZ2VfZnJvbV9mcmFtZShzZWxmLCBmcmFtZSk6Ci0gICAgICAgICIiIkdldHMgYSBt
ZXNzYWdlIGZyb20gZnJhbWUuIElmIHRoZSBtZXNzYWdlIGlzIGNvbXBvc2VkIG9mIGZyYWdtZW50
ZWQKLSAgICAgICAgZnJhbWVzIGFuZCB0aGUgZnJhbWUgaXMgbm90IHRoZSBsYXN0IGZyYWdtZW50
ZWQgZnJhbWUsIHRoaXMgbWV0aG9kCi0gICAgICAgIHJldHVybnMgTm9uZS4gVGhlIHdob2xlIG1l
c3NhZ2Ugd2lsbCBiZSByZXR1cm5lZCB3aGVuIHRoZSBsYXN0Ci0gICAgICAgIGZyYWdtZW50ZWQg
ZnJhbWUgaXMgcGFzc2VkIHRvIHRoaXMgbWV0aG9kLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAg
ICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUgZnJhbWUgZG9lc24ndCBtYXRj
aCBkZWZyYWdtZW50YXRpb24KLSAgICAgICAgICAgICAgICBjb250ZXh0LCBvciB0aGUgZnJhbWUg
Y29udGFpbnMgaW52YWxpZCBkYXRhLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBmcmFtZS5v
cGNvZGUgPT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICBpZiBub3Qg
c2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzOgotICAgICAgICAgICAgICAgIGlmIGZyYW1lLmZpbjoK
LSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGEgdGVybWluYXRpb24gZnJhbWUgYnV0IGZyYWdt
ZW50YXRpb24gJwotICAgICAgICAgICAgICAgICAgICAgICAgJ25vdCBzdGFydGVkJykKLSAgICAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgYW4gaW50ZXJtZWRp
YXRlIGZyYW1lIGJ1dCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAnZnJhZ21lbnRhdGlvbiBu
b3Qgc3RhcnRlZCcpCi0KLSAgICAgICAgICAgIGlmIGZyYW1lLmZpbjoKLSAgICAgICAgICAgICAg
ICAjIEVuZCBvZiBmcmFnbWVudGF0aW9uIGZyYW1lCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVj
ZWl2ZWRfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAgICAgICAgICAgICAgIG1l
c3NhZ2UgPSAnJy5qb2luKHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cykKLSAgICAgICAgICAgICAg
ICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMgPSBbXQotICAgICAgICAgICAgICAgIHJldHVybiBt
ZXNzYWdlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgSW50ZXJtZWRpYXRl
IGZyYW1lCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzLmFwcGVuZChm
cmFtZS5wYXlsb2FkKQotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBpZiBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHM6Ci0gICAgICAgICAgICAg
ICAgaWYgZnJhbWUuZmluOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgYW4gdW5mcmFnbWVu
dGVkIGZyYW1lIHdpdGhvdXQgJwotICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlcm1pbmF0aW5n
IGV4aXN0aW5nIGZyYWdtZW50YXRpb24nKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAgICAgICAgICdOZXcgZnJhZ21lbnRhdGlvbiBzdGFydGVkIHdpdGhvdXQgdGVybWluYXRpbmcg
JwotICAgICAgICAgICAgICAgICAgICAgICAgJ2V4aXN0aW5nIGZyYWdtZW50YXRpb24nKQotCi0g
ICAgICAgICAgICBpZiBmcmFtZS5maW46Ci0gICAgICAgICAgICAgICAgIyBVbmZyYWdtZW50ZWQg
ZnJhbWUKLQotICAgICAgICAgICAgICAgIHNlbGYuX29yaWdpbmFsX29wY29kZSA9IGZyYW1lLm9w
Y29kZQotICAgICAgICAgICAgICAgIHJldHVybiBmcmFtZS5wYXlsb2FkCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICMgU3RhcnQgb2YgZnJhZ21lbnRhdGlvbiBmcmFtZQotCi0g
ICAgICAgICAgICAgICAgaWYgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6
Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAgICAgICAgICdDb250cm9sIGZyYW1lcyBtdXN0IG5vdCBiZSBmcmFnbWVudGVk
JykKLQotICAgICAgICAgICAgICAgIHNlbGYuX29yaWdpbmFsX29wY29kZSA9IGZyYW1lLm9wY29k
ZQotICAgICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUu
cGF5bG9hZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIF9wcm9jZXNz
X2Nsb3NlX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIlByb2Nlc3NlcyBjbG9z
ZSBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtZXNzYWdlOiBjbG9zZSBt
ZXNzYWdlLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2Vw
dGlvbjogd2hlbiB0aGUgbWVzc2FnZSBpcyBpbnZhbGlkLgotICAgICAgICAiIiIKLQotICAgICAg
ICBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVkID0gVHJ1ZQotCi0gICAgICAgICMgU3Rh
dHVzIGNvZGUgaXMgb3B0aW9uYWwuIFdlIGNhbiBoYXZlIHN0YXR1cyByZWFzb24gb25seSBpZiB3
ZQotICAgICAgICAjIGhhdmUgc3RhdHVzIGNvZGUuIFN0YXR1cyByZWFzb24gY2FuIGJlIGVtcHR5
IHN0cmluZy4gU28sCi0gICAgICAgICMgYWxsb3dlZCBjYXNlcyBhcmUKLSAgICAgICAgIyAtIG5v
IGFwcGxpY2F0aW9uIGRhdGE6IG5vIGNvZGUgbm8gcmVhc29uCi0gICAgICAgICMgLSAyIG9jdGV0
IG9mIGFwcGxpY2F0aW9uIGRhdGE6IGhhcyBjb2RlIGJ1dCBubyByZWFzb24KLSAgICAgICAgIyAt
IDMgb3IgbW9yZSBvY3RldCBvZiBhcHBsaWNhdGlvbiBkYXRhOiBib3RoIGNvZGUgYW5kIHJlYXNv
bgotICAgICAgICBpZiBsZW4obWVzc2FnZSkgPT0gMDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnUmVjZWl2ZWQgY2xvc2UgZnJhbWUgKGVtcHR5IGJvZHkpJykKLSAgICAgICAgICAg
IHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSA9ICgKLSAgICAgICAgICAgICAgICBjb21tb24u
U1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCkKLSAgICAgICAgZWxpZiBsZW4obWVzc2FnZSkgPT0g
MToKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnSWYgYSBjbG9zZSBmcmFtZSBoYXMgc3RhdHVzIGNvZGUsIHRoZSBsZW5ndGggb2YgJwot
ICAgICAgICAgICAgICAgICdzdGF0dXMgY29kZSBtdXN0IGJlIDIgb2N0ZXQnKQotICAgICAgICBl
bGlmIGxlbihtZXNzYWdlKSA+PSAyOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9z
ZV9jb2RlID0gc3RydWN0LnVucGFjaygKLSAgICAgICAgICAgICAgICAnIUgnLCBtZXNzYWdlWzA6
Ml0pWzBdCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbiA9IG1lc3Nh
Z2VbMjpdLmRlY29kZSgKLSAgICAgICAgICAgICAgICAndXRmLTgnLCAncmVwbGFjZScpCi0gICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGNs
b3NlIGZyYW1lIChjb2RlPSVkLCByZWFzb249JXIpJywKLSAgICAgICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LndzX2Nsb3NlX2NvZGUsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19j
bG9zZV9yZWFzb24pCi0KLSAgICAgICAgIyBBcyB3ZSd2ZSByZWNlaXZlZCBhIGNsb3NlIGZyYW1l
LCBubyBtb3JlIGRhdGEgaXMgY29taW5nIG92ZXIgdGhlCi0gICAgICAgICMgc29ja2V0LiBXZSBj
YW4gbm93IHNhZmVseSBjbG9zZSB0aGUgc29ja2V0IHdpdGhvdXQgd29ycnlpbmcgYWJvdXQKLSAg
ICAgICAgIyBSU1Qgc2VuZGluZy4KLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90
ZXJtaW5hdGVkOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAg
ICAgICdSZWNlaXZlZCBhY2sgZm9yIHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2Un
KQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAg
ICAgICAgICAgJ1JlY2VpdmVkIGNsaWVudC1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQot
Ci0gICAgICAgIGNvZGUgPSBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFCi0gICAgICAgIHJl
YXNvbiA9ICcnCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fcmVxdWVzdCwgJ19kaXNwYXRjaGVy
Jyk6Ci0gICAgICAgICAgICBkaXNwYXRjaGVyID0gc2VsZi5fcmVxdWVzdC5fZGlzcGF0Y2hlcgot
ICAgICAgICAgICAgY29kZSwgcmVhc29uID0gZGlzcGF0Y2hlci5wYXNzaXZlX2Nsb3NpbmdfaGFu
ZHNoYWtlKAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QpCi0gICAgICAgICAgICBpZiBj
b2RlIGlzIE5vbmUgYW5kIHJlYXNvbiBpcyBub3QgTm9uZSBhbmQgbGVuKHJlYXNvbikgPiAwOgot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci53YXJuaW5nKAotICAgICAgICAgICAgICAgICAg
ICAnSGFuZGxlciBzcGVjaWZpZWQgcmVhc29uIGRlc3BpdGUgY29kZSBiZWluZyBOb25lJykKLSAg
ICAgICAgICAgICAgICByZWFzb24gPSAnJwotICAgICAgICAgICAgaWYgcmVhc29uIGlzIE5vbmU6
Ci0gICAgICAgICAgICAgICAgcmVhc29uID0gJycKLSAgICAgICAgc2VsZi5fc2VuZF9jbG9zaW5n
X2hhbmRzaGFrZShjb2RlLCByZWFzb24pCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAg
ICAgICAgICAgICdBY2tub3dsZWRnZWQgY2xvc2luZyBoYW5kc2hha2UgaW5pdGlhdGVkIGJ5IHRo
ZSBwZWVyICcKLSAgICAgICAgICAgICcoY29kZT0lciwgcmVhc29uPSVyKScsIGNvZGUsIHJlYXNv
bikKLQotICAgIGRlZiBfcHJvY2Vzc19waW5nX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAg
ICAgICIiIlByb2Nlc3NlcyBwaW5nIG1lc3NhZ2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAg
ICAgIG1lc3NhZ2U6IHBpbmcgbWVzc2FnZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgaGFuZGxlciA9IHNlbGYuX3JlcXVlc3Qub25fcGluZ19oYW5kbGVyCi0gICAg
ICAgICAgICBpZiBoYW5kbGVyOgotICAgICAgICAgICAgICAgIGhhbmRsZXIoc2VsZi5fcmVxdWVz
dCwgbWVzc2FnZSkKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgZXhjZXB0IEF0dHJp
YnV0ZUVycm9yLCBlOgotICAgICAgICAgICAgcGFzcwotICAgICAgICBzZWxmLl9zZW5kX3Bvbmco
bWVzc2FnZSkKLQotICAgIGRlZiBfcHJvY2Vzc19wb25nX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6
Ci0gICAgICAgICIiIlByb2Nlc3NlcyBwb25nIG1lc3NhZ2UuCi0KLSAgICAgICAgQXJnczoKLSAg
ICAgICAgICAgIG1lc3NhZ2U6IHBvbmcgbWVzc2FnZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
IyBUT0RPKHR5b3NoaW5vKTogQWRkIHBpbmcgdGltZW91dCBoYW5kbGluZy4KLQotICAgICAgICBp
bmZsaWdodF9waW5ncyA9IGRlcXVlKCkKLQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIGV4cGVjdGVkX2JvZHkgPSBzZWxmLl9waW5nX3F1ZXVl
LnBvcGxlZnQoKQotICAgICAgICAgICAgICAgIGlmIGV4cGVjdGVkX2JvZHkgPT0gbWVzc2FnZToK
LSAgICAgICAgICAgICAgICAgICAgIyBpbmZsaWdodF9waW5ncyBjb250YWlucyBwaW5ncyBpZ25v
cmVkIGJ5IHRoZQotICAgICAgICAgICAgICAgICAgICAjIG90aGVyIHBlZXIuIEp1c3QgZm9yZ2V0
IHRoZW0uCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAg
ICAgICAgICAgICAgICAgICdQaW5nICVyIGlzIGFja2VkICglZCBwaW5ncyB3ZXJlIGlnbm9yZWQp
JywKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2JvZHksIGxlbihpbmZsaWdodF9w
aW5ncykpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICAgICAgaW5mbGlnaHRfcGluZ3MuYXBwZW5kKGV4cGVjdGVkX2JvZHkp
Ci0gICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJvciwgZToKLSAgICAgICAgICAgICAgICAjIFRo
ZSByZWNlaXZlZCBwb25nIHdhcyB1bnNvbGljaXRlZCBwb25nLiBLZWVwIHRoZQotICAgICAgICAg
ICAgICAgICMgcGluZyBxdWV1ZSBhcyBpcy4KLSAgICAgICAgICAgICAgICBzZWxmLl9waW5nX3F1
ZXVlID0gaW5mbGlnaHRfcGluZ3MKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1JlY2VpdmVkIGEgdW5zb2xpY2l0ZWQgcG9uZycpCi0gICAgICAgICAgICAgICAgYnJlYWsKLQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kbGVyID0gc2VsZi5fcmVxdWVzdC5vbl9wb25n
X2hhbmRsZXIKLSAgICAgICAgICAgIGlmIGhhbmRsZXI6Ci0gICAgICAgICAgICAgICAgaGFuZGxl
cihzZWxmLl9yZXF1ZXN0LCBtZXNzYWdlKQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3Is
IGU6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICBkZWYgcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgot
ICAgICAgICAiIiJSZWNlaXZlIGEgV2ViU29ja2V0IGZyYW1lIGFuZCByZXR1cm4gaXRzIHBheWxv
YWQgYXMgYSB0ZXh0IGluCi0gICAgICAgIHVuaWNvZGUgb3IgYSBiaW5hcnkgaW4gc3RyLgotCi0g
ICAgICAgIFJldHVybnM6Ci0gICAgICAgICAgICBwYXlsb2FkIGRhdGEgb2YgdGhlIGZyYW1lCi0g
ICAgICAgICAgICAtIGFzIHVuaWNvZGUgaW5zdGFuY2UgaWYgcmVjZWl2ZWQgdGV4dCBmcmFtZQot
ICAgICAgICAgICAgLSBhcyBzdHIgaW5zdGFuY2UgaWYgcmVjZWl2ZWQgYmluYXJ5IGZyYW1lCi0g
ICAgICAgICAgICBvciBOb25lIGlmZiByZWNlaXZlZCBjbG9zaW5nIGhhbmRzaGFrZS4KLSAgICAg
ICAgUmFpc2VzOgotICAgICAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNhbGxl
ZCBvbiBhIGNsaWVudC10ZXJtaW5hdGVkCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbi4KLSAg
ICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJu
cyBlbXB0eQotICAgICAgICAgICAgICAgIHN0cmluZy4KLSAgICAgICAgICAgIEludmFsaWRGcmFt
ZUV4Y2VwdGlvbjogd2hlbiB0aGUgZnJhbWUgY29udGFpbnMgaW52YWxpZAotICAgICAgICAgICAg
ICAgIGRhdGEuCi0gICAgICAgICAgICBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRo
ZSByZWNlaXZlZCBmcmFtZSBoYXMKLSAgICAgICAgICAgICAgICBmbGFncywgb3Bjb2RlIHdlIGNh
bm5vdCBoYW5kbGUuIFlvdSBjYW4gaWdub3JlIHRoaXMKLSAgICAgICAgICAgICAgICBleGNlcHRp
b24gYW5kIGNvbnRpbnVlIHJlY2VpdmluZyB0aGUgbmV4dCBmcmFtZS4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWluYXRlZDoKLSAgICAgICAgICAg
IHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVk
IHJlY2VpdmVfbWVzc2FnZSBhZnRlciByZWNlaXZpbmcgYSBjbG9zaW5nICcKLSAgICAgICAgICAg
ICAgICAnaGFuZHNoYWtlJykKLQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgIyBt
cF9jb25uLnJlYWQgd2lsbCBibG9jayBpZiBubyBieXRlcyBhcmUgYXZhaWxhYmxlLgotICAgICAg
ICAgICAgIyBUaW1lb3V0IGlzIGNvbnRyb2xsZWQgYnkgVGltZU91dCBkaXJlY3RpdmUgb2YgQXBh
Y2hlLgotCi0gICAgICAgICAgICBmcmFtZSA9IHNlbGYuX3JlY2VpdmVfZnJhbWVfYXNfZnJhbWVf
b2JqZWN0KCkKLQotICAgICAgICAgICAgIyBDaGVjayB0aGUgY29uc3RyYWludCBvbiB0aGUgcGF5
bG9hZCBzaXplIGZvciBjb250cm9sIGZyYW1lcwotICAgICAgICAgICAgIyBiZWZvcmUgZXh0ZW5z
aW9uIHByb2Nlc3NlcyB0aGUgZnJhbWUuCi0gICAgICAgICAgICAjIFNlZSBhbHNvIGh0dHA6Ly90
b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUjc2VjdGlvbi01LjUKLSAgICAgICAgICAgIGlmIChj
b21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKSBhbmQKLSAgICAgICAgICAgICAg
ICBsZW4oZnJhbWUucGF5bG9hZCkgPiAxMjUpOgotICAgICAgICAgICAgICAgIHJhaXNlIEludmFs
aWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ1BheWxvYWQgZGF0YSBzaXpl
IG9mIGNvbnRyb2wgZnJhbWVzIG11c3QgYmUgMTI1IGJ5dGVzIG9yICcKLSAgICAgICAgICAgICAg
ICAgICAgJ2xlc3MnKQotCi0gICAgICAgICAgICBmb3IgZnJhbWVfZmlsdGVyIGluIHNlbGYuX29w
dGlvbnMuaW5jb21pbmdfZnJhbWVfZmlsdGVyczoKLSAgICAgICAgICAgICAgICBmcmFtZV9maWx0
ZXIuZmlsdGVyKGZyYW1lKQotCi0gICAgICAgICAgICBpZiBmcmFtZS5yc3YxIG9yIGZyYW1lLnJz
djIgb3IgZnJhbWUucnN2MzoKLSAgICAgICAgICAgICAgICByYWlzZSBVbnN1cHBvcnRlZEZyYW1l
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnVW5zdXBwb3J0ZWQgZmxhZyBpcyBzZXQg
KHJzdiA9ICVkJWQlZCknICUKLSAgICAgICAgICAgICAgICAgICAgKGZyYW1lLnJzdjEsIGZyYW1l
LnJzdjIsIGZyYW1lLnJzdjMpKQotCi0gICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5fZ2V0X21l
c3NhZ2VfZnJvbV9mcmFtZShmcmFtZSkKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UgaXMgTm9uZToK
LSAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICBmb3IgbWVzc2FnZV9maWx0
ZXIgaW4gc2VsZi5fb3B0aW9ucy5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAgICAg
ICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VfZmlsdGVyLmZpbHRlcihtZXNzYWdlKQotCi0gICAgICAg
ICAgICBpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9URVhUOgotICAg
ICAgICAgICAgICAgICMgVGhlIFdlYlNvY2tldCBwcm90b2NvbCBzZWN0aW9uIDQuNCBzcGVjaWZp
ZXMgdGhhdCBpbnZhbGlkCi0gICAgICAgICAgICAgICAgIyBjaGFyYWN0ZXJzIG11c3QgYmUgcmVw
bGFjZWQgd2l0aCBVK2ZmZmQgUkVQTEFDRU1FTlQKLSAgICAgICAgICAgICAgICAjIENIQVJBQ1RF
Ui4KLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXNz
YWdlLmRlY29kZSgndXRmLTgnKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2Rl
RXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRVVEY4RXhjZXB0aW9u
KGUpCi0gICAgICAgICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BD
T0RFX0JJTkFSWToKLSAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotICAgICAgICAgICAg
ZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9DTE9TRToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2Nsb3NlX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNv
ZGUgPT0gY29tbW9uLk9QQ09ERV9QSU5HOgotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3Nf
cGluZ19tZXNzYWdlKG1lc3NhZ2UpCi0gICAgICAgICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29w
Y29kZSA9PSBjb21tb24uT1BDT0RFX1BPTkc6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vz
c19wb25nX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAg
J09wY29kZSAlZCBpcyBub3Qgc3VwcG9ydGVkJyAlIHNlbGYuX29yaWdpbmFsX29wY29kZSkKLQot
ICAgIGRlZiBfc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShzZWxmLCBjb2RlLCByZWFzb24pOgotICAg
ICAgICBib2R5ID0gY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkoY29kZSwgcmVhc29uKQot
ICAgICAgICBmcmFtZSA9IGNyZWF0ZV9jbG9zZV9mcmFtZSgKLSAgICAgICAgICAgIGJvZHksIG1h
c2s9c2VsZi5fb3B0aW9ucy5tYXNrX3NlbmQsCi0gICAgICAgICAgICBmcmFtZV9maWx0ZXJzPXNl
bGYuX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycykKLQotICAgICAgICBzZWxmLl9yZXF1
ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQotCi0gICAgICAgIHNlbGYuX3dyaXRlKGZyYW1l
KQotCi0gICAgZGVmIGNsb3NlX2Nvbm5lY3Rpb24oc2VsZiwgY29kZT1jb21tb24uU1RBVFVTX05P
Uk1BTF9DTE9TVVJFLCByZWFzb249JycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgd2FpdF9y
ZXNwb25zZT1UcnVlKToKLSAgICAgICAgIiIiQ2xvc2VzIGEgV2ViU29ja2V0IGNvbm5lY3Rpb24u
Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNvZGU6IFN0YXR1cyBjb2RlIGZvciBjbG9z
ZSBmcmFtZS4gSWYgY29kZSBpcyBOb25lLCBhIGNsb3NlCi0gICAgICAgICAgICAgICAgZnJhbWUg
d2l0aCBlbXB0eSBib2R5IHdpbGwgYmUgc2VudC4KLSAgICAgICAgICAgIHJlYXNvbjogc3RyaW5n
IHJlcHJlc2VudGluZyBjbG9zZSByZWFzb24uCi0gICAgICAgICAgICB3YWl0X3Jlc3BvbnNlOiBU
cnVlIHdoZW4gY2FsbGVyIHdhbnQgdG8gd2FpdCB0aGUgcmVzcG9uc2UuCi0gICAgICAgIFJhaXNl
czoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiByZWFzb24gaXMgc3Bl
Y2lmaWVkIHdpdGggY29kZSBOb25lCi0gICAgICAgICAgICBvciByZWFzb24gaXMgbm90IGFuIGlu
c3RhbmNlIG9mIGJvdGggc3RyIGFuZCB1bmljb2RlLgotICAgICAgICAiIiIKLQotICAgICAgICBp
ZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgY2xvc2VfY29ubmVjdGlvbiBi
dXQgc2VydmVyIGlzIGFscmVhZHkgdGVybWluYXRlZCcpCi0gICAgICAgICAgICByZXR1cm4KLQot
ICAgICAgICBpZiBjb2RlIGlzIE5vbmU6Ci0gICAgICAgICAgICBpZiByZWFzb24gaXMgbm90IE5v
bmUgYW5kIGxlbihyZWFzb24pID4gMDoKLSAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRp
b25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdjbG9zZSByZWFzb24gbXVzdCBub3Qg
YmUgc3BlY2lmaWVkIGlmIGNvZGUgaXMgTm9uZScpCi0gICAgICAgICAgICByZWFzb24gPSAnJwot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocmVhc29uLCBzdHIp
IGFuZCBub3QgaXNpbnN0YW5jZShyZWFzb24sIHVuaWNvZGUpOgotICAgICAgICAgICAgICAgIHJh
aXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlIHJl
YXNvbiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHN0ciBvciB1bmljb2RlJykKLQotICAgICAgICBz
ZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKGNvZGUsIHJlYXNvbikKLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0luaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZSAo
Y29kZT0lciwgcmVhc29uPSVyKScsCi0gICAgICAgICAgICBjb2RlLCByZWFzb24pCi0KLSAgICAg
ICAgaWYgKGNvZGUgPT0gY29tbW9uLlNUQVRVU19HT0lOR19BV0FZIG9yCi0gICAgICAgICAgICBj
b2RlID09IGNvbW1vbi5TVEFUVVNfUFJPVE9DT0xfRVJST1IpIG9yIG5vdCB3YWl0X3Jlc3BvbnNl
OgotICAgICAgICAgICAgIyBJdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gd2FpdCBmb3IgYSBjbG9z
ZSBmcmFtZSBpZiB0aGUgcmVhc29uIGlzCi0gICAgICAgICAgICAjIHByb3RvY29sIGVycm9yIG9y
IHRoYXQgdGhlIHNlcnZlciBpcyBnb2luZyBhd2F5LiBGb3Igc29tZSBvZgotICAgICAgICAgICAg
IyBvdGhlciByZWFzb25zLCBpdCBtaWdodCBub3QgbWFrZSBzZW5zZSB0byB3YWl0IGZvciBhIGNs
b3NlIGZyYW1lLAotICAgICAgICAgICAgIyBidXQgaXQncyBub3QgY2xlYXIsIHlldC4KLSAgICAg
ICAgICAgIHJldHVybgotCi0gICAgICAgICMgVE9ETyh1a2FpKTogMi4gd2FpdCB1bnRpbCB0aGUg
L2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFnIGhhcyBiZWVuIHNldCwKLSAgICAgICAgIyBvciB1bnRp
bCBhIHNlcnZlci1kZWZpbmVkIHRpbWVvdXQgZXhwaXJlcy4KLSAgICAgICAgIwotICAgICAgICAj
IEZvciBub3csIHdlIGV4cGVjdCByZWNlaXZpbmcgY2xvc2luZyBoYW5kc2hha2UgcmlnaHQgYWZ0
ZXIgc2VuZGluZwotICAgICAgICAjIG91dCBjbG9zaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgbWVz
c2FnZSA9IHNlbGYucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgaWYgbWVzc2FnZSBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICdEaWRuXCd0IHJlY2VpdmUgdmFsaWQgYWNrIGZvciBjbG9zaW5nIGhh
bmRzaGFrZScpCi0gICAgICAgICMgVE9ETzogMy4gY2xvc2UgdGhlIFdlYlNvY2tldCBjb25uZWN0
aW9uLgotICAgICAgICAjIG5vdGU6IG1vZF9weXRob24gQ29ubmVjdGlvbiAobXBfY29ubikgZG9l
c24ndCBoYXZlIGNsb3NlIG1ldGhvZC4KLQotICAgIGRlZiBzZW5kX3Bpbmcoc2VsZiwgYm9keT0n
Jyk6Ci0gICAgICAgIGZyYW1lID0gY3JlYXRlX3BpbmdfZnJhbWUoCi0gICAgICAgICAgICBib2R5
LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5tYXNrX3NlbmQsCi0gICAgICAgICAgICBzZWxm
Ll9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMpCi0gICAgICAgIHNlbGYuX3dyaXRlKGZy
YW1lKQotCi0gICAgICAgIHNlbGYuX3BpbmdfcXVldWUuYXBwZW5kKGJvZHkpCi0KLSAgICBkZWYg
X3NlbmRfcG9uZyhzZWxmLCBib2R5KToKLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfcG9uZ19mcmFt
ZSgKLSAgICAgICAgICAgIGJvZHksCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLm1hc2tfc2Vu
ZCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycykKLSAg
ICAgICAgc2VsZi5fd3JpdGUoZnJhbWUpCi0KLSAgICBkZWYgZ2V0X2xhc3RfcmVjZWl2ZWRfb3Bj
b2RlKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm5zIHRoZSBvcGNvZGUgb2YgdGhlIFdlYlNvY2tl
dCBtZXNzYWdlIHdoaWNoIHRoZSBsYXN0IHJlY2VpdmVkCi0gICAgICAgIGZyYW1lIGJlbG9uZ3Mg
dG8uIFRoZSByZXR1cm4gdmFsdWUgaXMgdmFsaWQgaWZmIGltbWVkaWF0ZWx5IGFmdGVyCi0gICAg
ICAgIHJlY2VpdmVfbWVzc2FnZSBjYWxsLgotICAgICAgICAiIiIKLQotICAgICAgICByZXR1cm4g
c2VsZi5fb3JpZ2luYWxfb3Bjb2RlCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvY29tbW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vi
c29ja2V0L2NvbW1vbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmZjMmVhZDY0
ODFiZTU3YjdhZTRjNjY4YzIyZWNiMWVjNGJiY2IyYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvY29tbW9uLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsMzAzICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2ds
ZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIi
IlRoaXMgZmlsZSBtdXN0IG5vdCBkZXBlbmQgb24gYW55IG1vZHVsZSBzcGVjaWZpYyB0byB0aGUg
V2ViU29ja2V0IHByb3RvY29sLgotIiIiCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGh0dHBfaGVhZGVyX3V0aWwKLQotCi0jIEFkZGl0aW9uYWwgbG9nIGxldmVsIGRlZmluaXRpb25z
LgotTE9HTEVWRUxfRklORSA9IDkKLQotIyBDb25zdGFudHMgaW5kaWNhdGluZyBXZWJTb2NrZXQg
cHJvdG9jb2wgdmVyc2lvbi4KLVZFUlNJT05fSElYSUU3NSA9IC0xCi1WRVJTSU9OX0hZQkkwMCA9
IDAKLVZFUlNJT05fSFlCSTAxID0gMQotVkVSU0lPTl9IWUJJMDIgPSAyCi1WRVJTSU9OX0hZQkkw
MyA9IDIKLVZFUlNJT05fSFlCSTA0ID0gNAotVkVSU0lPTl9IWUJJMDUgPSA1Ci1WRVJTSU9OX0hZ
QkkwNiA9IDYKLVZFUlNJT05fSFlCSTA3ID0gNwotVkVSU0lPTl9IWUJJMDggPSA4Ci1WRVJTSU9O
X0hZQkkwOSA9IDgKLVZFUlNJT05fSFlCSTEwID0gOAotVkVSU0lPTl9IWUJJMTEgPSA4Ci1WRVJT
SU9OX0hZQkkxMiA9IDgKLVZFUlNJT05fSFlCSTEzID0gMTMKLVZFUlNJT05fSFlCSTE0ID0gMTMK
LVZFUlNJT05fSFlCSTE1ID0gMTMKLVZFUlNJT05fSFlCSTE2ID0gMTMKLVZFUlNJT05fSFlCSTE3
ID0gMTMKLQotIyBDb25zdGFudHMgaW5kaWNhdGluZyBXZWJTb2NrZXQgcHJvdG9jb2wgbGF0ZXN0
IHZlcnNpb24uCi1WRVJTSU9OX0hZQklfTEFURVNUID0gVkVSU0lPTl9IWUJJMTMKLQotIyBQb3J0
IG51bWJlcnMKLURFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUID0gODAKLURFRkFVTFRfV0VCX1NPQ0tF
VF9TRUNVUkVfUE9SVCA9IDQ0MwotCi0jIFNjaGVtZXMKLVdFQl9TT0NLRVRfU0NIRU1FID0gJ3dz
JwotV0VCX1NPQ0tFVF9TRUNVUkVfU0NIRU1FID0gJ3dzcycKLQotIyBGcmFtZSBvcGNvZGVzIGRl
ZmluZWQgaW4gdGhlIHNwZWMuCi1PUENPREVfQ09OVElOVUFUSU9OID0gMHgwCi1PUENPREVfVEVY
VCA9IDB4MQotT1BDT0RFX0JJTkFSWSA9IDB4MgotT1BDT0RFX0NMT1NFID0gMHg4Ci1PUENPREVf
UElORyA9IDB4OQotT1BDT0RFX1BPTkcgPSAweGEKLQotIyBVVUlEcyB1c2VkIGJ5IEh5QmkgMDQg
YW5kIGxhdGVyIG9wZW5pbmcgaGFuZHNoYWtlIGFuZCBmcmFtZSBtYXNraW5nLgotV0VCU09DS0VU
X0FDQ0VQVF9VVUlEID0gJzI1OEVBRkE1LUU5MTQtNDdEQS05NUNBLUM1QUIwREM4NUIxMScKLQot
IyBPcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXIgbmFtZXMgYW5kIGV4cGVjdGVkIHZhbHVlcy4KLVVQ
R1JBREVfSEVBREVSID0gJ1VwZ3JhZGUnCi1XRUJTT0NLRVRfVVBHUkFERV9UWVBFID0gJ3dlYnNv
Y2tldCcKLVdFQlNPQ0tFVF9VUEdSQURFX1RZUEVfSElYSUU3NSA9ICdXZWJTb2NrZXQnCi1DT05O
RUNUSU9OX0hFQURFUiA9ICdDb25uZWN0aW9uJwotVVBHUkFERV9DT05ORUNUSU9OX1RZUEUgPSAn
VXBncmFkZScKLUhPU1RfSEVBREVSID0gJ0hvc3QnCi1PUklHSU5fSEVBREVSID0gJ09yaWdpbicK
LVNFQ19XRUJTT0NLRVRfT1JJR0lOX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LU9yaWdpbicKLVNF
Q19XRUJTT0NLRVRfS0VZX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUtleScKLVNFQ19XRUJTT0NL
RVRfQUNDRVBUX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUFjY2VwdCcKLVNFQ19XRUJTT0NLRVRf
VkVSU0lPTl9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1WZXJzaW9uJwotU0VDX1dFQlNPQ0tFVF9Q
Uk9UT0NPTF9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCcKLVNFQ19XRUJTT0NLRVRf
RVhURU5TSU9OU19IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJwotU0VDX1dFQlNP
Q0tFVF9EUkFGVF9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1EcmFmdCcKLVNFQ19XRUJTT0NLRVRf
S0VZMV9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1LZXkxJwotU0VDX1dFQlNPQ0tFVF9LRVkyX0hF
QURFUiA9ICdTZWMtV2ViU29ja2V0LUtleTInCi1TRUNfV0VCU09DS0VUX0xPQ0FUSU9OX0hFQURF
UiA9ICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uJwotCi0jIEV4dGVuc2lvbnMKLURFRkxBVEVfRlJB
TUVfRVhURU5TSU9OID0gJ2RlZmxhdGUtZnJhbWUnCi1QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VY
VEVOU0lPTiA9ICdwZXJtZXNzYWdlLWNvbXByZXNzJwotUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVO
U0lPTiA9ICdwZXJtZXNzYWdlLWRlZmxhdGUnCi1YX1dFQktJVF9ERUZMQVRFX0ZSQU1FX0VYVEVO
U0lPTiA9ICd4LXdlYmtpdC1kZWZsYXRlLWZyYW1lJwotWF9XRUJLSVRfUEVSTUVTU0FHRV9DT01Q
UkVTU0lPTl9FWFRFTlNJT04gPSAneC13ZWJraXQtcGVybWVzc2FnZS1jb21wcmVzcycKLU1VWF9F
WFRFTlNJT04gPSAnbXV4X0RPX05PVF9VU0UnCi0KLSMgU3RhdHVzIGNvZGVzCi0jIENvZGUgU1RB
VFVTX05PX1NUQVRVU19SRUNFSVZFRCwgU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUsIGFuZAotIyBT
VEFUVVNfVExTX0hBTkRTSEFLRSBhcmUgcHNldWRvIGNvZGVzIHRvIGluZGljYXRlIHNwZWNpZmlj
IGVycm9yIGNhc2VzLgotIyBDb3VsZCBub3QgYmUgdXNlZCBmb3IgY29kZXMgaW4gYWN0dWFsIGNs
b3NpbmcgZnJhbWVzLgotIyBBcHBsaWNhdGlvbiBsZXZlbCBlcnJvcnMgbXVzdCB1c2UgY29kZXMg
aW4gdGhlIHJhbmdlCi0jIFNUQVRVU19VU0VSX1JFR0lTVEVSRURfQkFTRSB0byBTVEFUVVNfVVNF
Ul9QUklWQVRFX01BWC4gVGhlIGNvZGVzIGluIHRoZQotIyByYW5nZSBTVEFUVVNfVVNFUl9SRUdJ
U1RFUkVEX0JBU0UgdG8gU1RBVFVTX1VTRVJfUkVHSVNURVJFRF9NQVggYXJlIG1hbmFnZWQKLSMg
YnkgSUFOQS4gVXN1YWxseSBhcHBsaWNhdGlvbiBtdXN0IGRlZmluZSB1c2VyIHByb3RvY29sIGxl
dmVsIGVycm9ycyBpbiB0aGUKLSMgcmFuZ2UgU1RBVFVTX1VTRVJfUFJJVkFURV9CQVNFIHRvIFNU
QVRVU19VU0VSX1BSSVZBVEVfTUFYLgotU1RBVFVTX05PUk1BTF9DTE9TVVJFID0gMTAwMAotU1RB
VFVTX0dPSU5HX0FXQVkgPSAxMDAxCi1TVEFUVVNfUFJPVE9DT0xfRVJST1IgPSAxMDAyCi1TVEFU
VVNfVU5TVVBQT1JURURfREFUQSA9IDEwMDMKLVNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQgPSAx
MDA1Ci1TVEFUVVNfQUJOT1JNQUxfQ0xPU1VSRSA9IDEwMDYKLVNUQVRVU19JTlZBTElEX0ZSQU1F
X1BBWUxPQURfREFUQSA9IDEwMDcKLVNUQVRVU19QT0xJQ1lfVklPTEFUSU9OID0gMTAwOAotU1RB
VFVTX01FU1NBR0VfVE9PX0JJRyA9IDEwMDkKLVNUQVRVU19NQU5EQVRPUllfRVhURU5TSU9OID0g
MTAxMAotU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SID0gMTAxMQotU1RBVFVTX1RMU19I
QU5EU0hBS0UgPSAxMDE1Ci1TVEFUVVNfVVNFUl9SRUdJU1RFUkVEX0JBU0UgPSAzMDAwCi1TVEFU
VVNfVVNFUl9SRUdJU1RFUkVEX01BWCA9IDM5OTkKLVNUQVRVU19VU0VSX1BSSVZBVEVfQkFTRSA9
IDQwMDAKLVNUQVRVU19VU0VSX1BSSVZBVEVfTUFYID0gNDk5OQotIyBGb2xsb3dpbmcgZGVmaW5p
dGlvbnMgYXJlIGFsaWFzZXMgdG8ga2VlcCBjb21wYXRpYmlsaXR5LiBBcHBsaWNhdGlvbnMgbXVz
dAotIyBub3QgdXNlIHRoZXNlIG9ic29sZXRlZCBkZWZpbml0aW9ucyBhbnltb3JlLgotU1RBVFVT
X05PUk1BTCA9IFNUQVRVU19OT1JNQUxfQ0xPU1VSRQotU1RBVFVTX1VOU1VQUE9SVEVEID0gU1RB
VFVTX1VOU1VQUE9SVEVEX0RBVEEKLVNUQVRVU19DT0RFX05PVF9BVkFJTEFCTEUgPSBTVEFUVVNf
Tk9fU1RBVFVTX1JFQ0VJVkVECi1TVEFUVVNfQUJOT1JNQUxfQ0xPU0UgPSBTVEFUVVNfQUJOT1JN
QUxfQ0xPU1VSRQotU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRCA9IFNUQVRVU19JTlZBTElE
X0ZSQU1FX1BBWUxPQURfREFUQQotU1RBVFVTX01BTkRBVE9SWV9FWFQgPSBTVEFUVVNfTUFOREFU
T1JZX0VYVEVOU0lPTgotCi0jIEhUVFAgc3RhdHVzIGNvZGVzCi1IVFRQX1NUQVRVU19CQURfUkVR
VUVTVCA9IDQwMAotSFRUUF9TVEFUVVNfRk9SQklEREVOID0gNDAzCi1IVFRQX1NUQVRVU19OT1Rf
Rk9VTkQgPSA0MDQKLQotCi1kZWYgaXNfY29udHJvbF9vcGNvZGUob3Bjb2RlKToKLSAgICByZXR1
cm4gKG9wY29kZSA+PiAzKSA9PSAxCi0KLQotY2xhc3MgRXh0ZW5zaW9uUGFyYW1ldGVyKG9iamVj
dCk6Ci0gICAgIiIiSG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgYW4gZXh0ZW5zaW9uIHdoaWNoIGlz
IGV4Y2hhbmdlZCBvbiBleHRlbnNpb24KLSAgICBuZWdvdGlhdGlvbiBpbiBvcGVuaW5nIGhhbmRz
aGFrZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAgICAg
c2VsZi5fbmFtZSA9IG5hbWUKLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogQ2hhbmdlIHRoZSBk
YXRhIHN0cnVjdHVyZSB0byBtb3JlIGVmZmljaWVudCBvbmUgc3VjaAotICAgICAgICAjIGFzIGRp
Y3Qgd2hlbiB0aGUgc3BlYyBjaGFuZ2VzIHRvIHNheSBsaWtlCi0gICAgICAgICMgLSBQYXJhbWV0
ZXIgbmFtZXMgbXVzdCBiZSB1bmlxdWUKLSAgICAgICAgIyAtIFRoZSBvcmRlciBvZiBwYXJhbWV0
ZXJzIGlzIG5vdCBzaWduaWZpY2FudAotICAgICAgICBzZWxmLl9wYXJhbWV0ZXJzID0gW10KLQot
ICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fbmFtZQotCi0gICAgZGVm
IGFkZF9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICBzZWxmLl9wYXJhbWV0
ZXJzLmFwcGVuZCgobmFtZSwgdmFsdWUpKQotCi0gICAgZGVmIGdldF9wYXJhbWV0ZXJzKHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5fcGFyYW1ldGVycwotCi0gICAgZGVmIGdldF9wYXJhbWV0
ZXJfbmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBbbmFtZSBmb3IgbmFtZSwgdW51c2VkX3Zh
bHVlIGluIHNlbGYuX3BhcmFtZXRlcnNdCi0KLSAgICBkZWYgaGFzX3BhcmFtZXRlcihzZWxmLCBu
YW1lKToKLSAgICAgICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVlIGluIHNlbGYuX3BhcmFt
ZXRlcnM6Ci0gICAgICAgICAgICBpZiBwYXJhbV9uYW1lID09IG5hbWU6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgZ2V0X3BhcmFt
ZXRlcl92YWx1ZShzZWxmLCBuYW1lKToKLSAgICAgICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3Zh
bHVlIGluIHNlbGYuX3BhcmFtZXRlcnM6Ci0gICAgICAgICAgICBpZiBwYXJhbV9uYW1lID09IG5h
bWU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHBhcmFtX3ZhbHVlCi0KLQotY2xhc3MgRXh0ZW5z
aW9uUGFyc2luZ0V4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBu
YW1lKToKLSAgICAgICAgc3VwZXIoRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbiwgc2VsZikuX19p
bml0X18obmFtZSkKLQotCi1kZWYgX3BhcnNlX2V4dGVuc2lvbl9wYXJhbShzdGF0ZSwgZGVmaW5p
dGlvbik6Ci0gICAgcGFyYW1fbmFtZSA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tlbihz
dGF0ZSkKLQotICAgIGlmIHBhcmFtX25hbWUgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgRXh0ZW5z
aW9uUGFyc2luZ0V4Y2VwdGlvbignTm8gdmFsaWQgcGFyYW1ldGVyIG5hbWUgZm91bmQnKQotCi0g
ICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgaWYgbm90IGh0
dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJpbmcoc3RhdGUsICc9Jyk6Ci0gICAgICAgIGRlZmlu
aXRpb24uYWRkX3BhcmFtZXRlcihwYXJhbV9uYW1lLCBOb25lKQotICAgICAgICByZXR1cm4KLQot
ICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICMgVE9ETyh0
eW9zaGlubyk6IEFkZCBjb2RlIHRvIHZhbGlkYXRlIHRoYXQgcGFyc2VkIHBhcmFtX3ZhbHVlIGlz
IHRva2VuCi0gICAgcGFyYW1fdmFsdWUgPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW5f
b3JfcXVvdGVkX3N0cmluZyhzdGF0ZSkKLSAgICBpZiBwYXJhbV92YWx1ZSBpcyBOb25lOgotICAg
ICAgICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKAotICAgICAgICAgICAgJ05vIHZh
bGlkIHBhcmFtZXRlciB2YWx1ZSBmb3VuZCBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlIG9mICcKLSAg
ICAgICAgICAgICdwYXJhbWV0ZXIgJXInICUgcGFyYW1fbmFtZSkKLQotICAgIGRlZmluaXRpb24u
YWRkX3BhcmFtZXRlcihwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSkKLQotCi1kZWYgX3BhcnNlX2V4
dGVuc2lvbihzdGF0ZSk6Ci0gICAgZXh0ZW5zaW9uX3Rva2VuID0gaHR0cF9oZWFkZXJfdXRpbC5j
b25zdW1lX3Rva2VuKHN0YXRlKQotICAgIGlmIGV4dGVuc2lvbl90b2tlbiBpcyBOb25lOgotICAg
ICAgICByZXR1cm4gTm9uZQotCi0gICAgZXh0ZW5zaW9uID0gRXh0ZW5zaW9uUGFyYW1ldGVyKGV4
dGVuc2lvbl90b2tlbikKLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGh0dHBfaGVhZGVyX3V0
aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICAgICBpZiBub3QgaHR0cF9oZWFkZXJfdXRp
bC5jb25zdW1lX3N0cmluZyhzdGF0ZSwgJzsnKToKLSAgICAgICAgICAgIGJyZWFrCi0KLSAgICAg
ICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIF9wYXJzZV9leHRlbnNpb25fcGFyYW0oc3RhdGUsIGV4dGVuc2lvbikKLSAg
ICAgICAgZXhjZXB0IEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBy
YWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWlsZWQg
dG8gcGFyc2UgcGFyYW1ldGVyIGZvciAlciAoJXIpJyAlCi0gICAgICAgICAgICAgICAgKGV4dGVu
c2lvbl90b2tlbiwgZSkpCi0KLSAgICByZXR1cm4gZXh0ZW5zaW9uCi0KLQotZGVmIHBhcnNlX2V4
dGVuc2lvbnMoZGF0YSk6Ci0gICAgIiIiUGFyc2VzIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBo
ZWFkZXIgdmFsdWUgcmV0dXJucyBhIGxpc3Qgb2YKLSAgICBFeHRlbnNpb25QYXJhbWV0ZXIgb2Jq
ZWN0cy4KLQotICAgIExlYWRpbmcgTFdTZXMgbXVzdCBiZSB0cmltbWVkLgotICAgICIiIgotCi0g
ICAgc3RhdGUgPSBodHRwX2hlYWRlcl91dGlsLlBhcnNpbmdTdGF0ZShkYXRhKQotCi0gICAgZXh0
ZW5zaW9uX2xpc3QgPSBbXQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGV4dGVuc2lvbiA9IF9w
YXJzZV9leHRlbnNpb24oc3RhdGUpCi0gICAgICAgIGlmIGV4dGVuc2lvbiBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIGV4dGVuc2lvbl9saXN0LmFwcGVuZChleHRlbnNpb24pCi0KLSAgICAgICAg
aHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgICAgIGlmIGh0dHBf
aGVhZGVyX3V0aWwucGVlayhzdGF0ZSkgaXMgTm9uZToKLSAgICAgICAgICAgIGJyZWFrCi0KLSAg
ICAgICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJpbmcoc3RhdGUsICcsJyk6
Ci0gICAgICAgICAgICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICdGYWlsZWQgdG8gcGFyc2UgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlcjog
JwotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBhIGNvbW1hIGJ1dCBmb3VuZCAlcicgJQotICAg
ICAgICAgICAgICAgIGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkpCi0KLSAgICAgICAgaHR0
cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgaWYgbGVuKGV4dGVuc2lv
bl9saXN0KSA9PSAwOgotICAgICAgICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKAot
ICAgICAgICAgICAgJ05vIHZhbGlkIGV4dGVuc2lvbiBlbnRyeSBmb3VuZCcpCi0KLSAgICByZXR1
cm4gZXh0ZW5zaW9uX2xpc3QKLQotCi1kZWYgZm9ybWF0X2V4dGVuc2lvbihleHRlbnNpb24pOgot
ICAgICIiIkZvcm1hdHMgYW4gRXh0ZW5zaW9uUGFyYW1ldGVyIG9iamVjdC4iIiIKLQotICAgIGZv
cm1hdHRlZF9wYXJhbXMgPSBbZXh0ZW5zaW9uLm5hbWUoKV0KLSAgICBmb3IgcGFyYW1fbmFtZSwg
cGFyYW1fdmFsdWUgaW4gZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJzKCk6Ci0gICAgICAgIGlmIHBh
cmFtX3ZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAgICBmb3JtYXR0ZWRfcGFyYW1zLmFwcGVuZChw
YXJhbV9uYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcXVvdGVkX3ZhbHVlID0gaHR0
cF9oZWFkZXJfdXRpbC5xdW90ZV9pZl9uZWNlc3NhcnkocGFyYW1fdmFsdWUpCi0gICAgICAgICAg
ICBmb3JtYXR0ZWRfcGFyYW1zLmFwcGVuZCgnJXM9JXMnICUgKHBhcmFtX25hbWUsIHF1b3RlZF92
YWx1ZSkpCi0gICAgcmV0dXJuICc7ICcuam9pbihmb3JtYXR0ZWRfcGFyYW1zKQotCi0KLWRlZiBm
b3JtYXRfZXh0ZW5zaW9ucyhleHRlbnNpb25fbGlzdCk6Ci0gICAgIiIiRm9ybWF0cyBhIGxpc3Qg
b2YgRXh0ZW5zaW9uUGFyYW1ldGVyIG9iamVjdHMuIiIiCi0KLSAgICBmb3JtYXR0ZWRfZXh0ZW5z
aW9uX2xpc3QgPSBbXQotICAgIGZvciBleHRlbnNpb24gaW4gZXh0ZW5zaW9uX2xpc3Q6Ci0gICAg
ICAgIGZvcm1hdHRlZF9leHRlbnNpb25fbGlzdC5hcHBlbmQoZm9ybWF0X2V4dGVuc2lvbihleHRl
bnNpb24pKQotICAgIHJldHVybiAnLCAnLmpvaW4oZm9ybWF0dGVkX2V4dGVuc2lvbl9saXN0KQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29j
a2V0L2Rpc3BhdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2Rpc3BhdGNoLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NmM5MWUwYzkwZTc0MjlkMGY3NjBjMGU5Yzdi
OTgxMjA0MDkyYTBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDM5MyArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0j
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJEaXNwYXRjaCBXZWJTb2Nr
ZXQgcmVxdWVzdC4KLSIiIgotCi0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBy
ZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRp
bAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG11eAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IHN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1fU09V
UkNFX1BBVEhfUEFUVEVSTiA9IHJlLmNvbXBpbGUocicoP2kpX3dzaFwucHkkJykKLV9TT1VSQ0Vf
U1VGRklYID0gJ193c2gucHknCi1fRE9fRVhUUkFfSEFORFNIQUtFX0hBTkRMRVJfTkFNRSA9ICd3
ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZScKLV9UUkFOU0ZFUl9EQVRBX0hBTkRMRVJfTkFN
RSA9ICd3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEnCi1fUEFTU0lWRV9DTE9TSU5HX0hBTkRTSEFL
RV9IQU5ETEVSX05BTUUgPSAoCi0gICAgJ3dlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRz
aGFrZScpCi0KLQotY2xhc3MgRGlzcGF0Y2hFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJF
eGNlcHRpb24gaW4gZGlzcGF0Y2hpbmcgV2ViU29ja2V0IHJlcXVlc3QuIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgbmFtZSwgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19OT1RfRk9VTkQp
OgotICAgICAgICBzdXBlcihEaXNwYXRjaEV4Y2VwdGlvbiwgc2VsZikuX19pbml0X18obmFtZSkK
LSAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKLQotCi1kZWYgX2RlZmF1bHRfcGFzc2l2ZV9j
bG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyKHJlcXVlc3QpOgotICAgICIiIkRlZmF1bHQgd2ViX3Nv
Y2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlIGhhbmRsZXIuIiIiCi0KLSAgICByZXR1cm4g
Y29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgJycKLQotCi1kZWYgX25vcm1hbGl6ZV9wYXRo
KHBhdGgpOgotICAgICIiIk5vcm1hbGl6ZSBwYXRoLgotCi0gICAgQXJnczoKLSAgICAgICAgcGF0
aDogdGhlIHBhdGggdG8gbm9ybWFsaXplLgotCi0gICAgUGF0aCBpcyBjb252ZXJ0ZWQgdG8gdGhl
IGFic29sdXRlIHBhdGguCi0gICAgVGhlIGlucHV0IHBhdGggY2FuIHVzZSBlaXRoZXIgJ1xcJyBv
ciAnLycgYXMgdGhlIHNlcGFyYXRvci4KLSAgICBUaGUgbm9ybWFsaXplZCBwYXRoIGFsd2F5cyB1
c2VzICcvJyByZWdhcmRsZXNzIG9mIHRoZSBwbGF0Zm9ybS4KLSAgICAiIiIKLQotICAgIHBhdGgg
PSBwYXRoLnJlcGxhY2UoJ1xcJywgb3MucGF0aC5zZXApCi0gICAgcGF0aCA9IG9zLnBhdGgucmVh
bHBhdGgocGF0aCkKLSAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCdcXCcsICcvJykKLSAgICByZXR1
cm4gcGF0aAotCi0KLWRlZiBfY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKGJhc2Vf
ZGlyKToKLSAgICAiIiJSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBjb252ZXJ0cyB0aGUgcGF0aCBv
ZiBhIFdlYlNvY2tldCBoYW5kbGVyIHNvdXJjZQotICAgIGZpbGUgdG8gYSByZXNvdXJjZSBzdHJp
bmcgYnkgcmVtb3ZpbmcgdGhlIHBhdGggdG8gdGhlIGJhc2UgZGlyZWN0b3J5IGZyb20KLSAgICBp
dHMgaGVhZCwgcmVtb3ZpbmcgX1NPVVJDRV9TVUZGSVggZnJvbSBpdHMgdGFpbCwgYW5kIHJlcGxh
Y2luZyBwYXRoCi0gICAgc2VwYXJhdG9ycyBpbiBpdCB3aXRoICcvJy4KLQotICAgIEFyZ3M6Ci0g
ICAgICAgIGJhc2VfZGlyOiB0aGUgcGF0aCB0byB0aGUgYmFzZSBkaXJlY3RvcnkuCi0gICAgIiIi
Ci0KLSAgICBiYXNlX2RpciA9IF9ub3JtYWxpemVfcGF0aChiYXNlX2RpcikKLQotICAgIGJhc2Vf
bGVuID0gbGVuKGJhc2VfZGlyKQotICAgIHN1ZmZpeF9sZW4gPSBsZW4oX1NPVVJDRV9TVUZGSVgp
Ci0KLSAgICBkZWYgY29udmVydGVyKHBhdGgpOgotICAgICAgICBpZiBub3QgcGF0aC5lbmRzd2l0
aChfU09VUkNFX1NVRkZJWCk6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAjIF9u
b3JtYWxpemVfcGF0aCBtdXN0IG5vdCBiZSB1c2VkIGJlY2F1c2UgcmVzb2x2aW5nIHN5bWxpbmsg
YnJlYWtzCi0gICAgICAgICMgZm9sbG93aW5nIHBhdGggY2hlY2suCi0gICAgICAgIHBhdGggPSBw
YXRoLnJlcGxhY2UoJ1xcJywgJy8nKQotICAgICAgICBpZiBub3QgcGF0aC5zdGFydHN3aXRoKGJh
c2VfZGlyKToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBwYXRoW2Jh
c2VfbGVuOi1zdWZmaXhfbGVuXQotCi0gICAgcmV0dXJuIGNvbnZlcnRlcgotCi0KLWRlZiBfZW51
bWVyYXRlX2hhbmRsZXJfZmlsZV9wYXRocyhkaXJlY3RvcnkpOgotICAgICIiIlJldHVybnMgYSBn
ZW5lcmF0b3IgdGhhdCBlbnVtZXJhdGVzIFdlYlNvY2tldCBIYW5kbGVyIHNvdXJjZSBmaWxlIG5h
bWVzCi0gICAgaW4gdGhlIGdpdmVuIGRpcmVjdG9yeS4KLSAgICAiIiIKLQotICAgIGZvciByb290
LCB1bnVzZWRfZGlycywgZmlsZXMgaW4gb3Mud2FsayhkaXJlY3RvcnkpOgotICAgICAgICBmb3Ig
YmFzZSBpbiBmaWxlczoKLSAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4ocm9vdCwgYmFz
ZSkKLSAgICAgICAgICAgIGlmIF9TT1VSQ0VfUEFUSF9QQVRURVJOLnNlYXJjaChwYXRoKToKLSAg
ICAgICAgICAgICAgICB5aWVsZCBwYXRoCi0KLQotY2xhc3MgX0hhbmRsZXJTdWl0ZShvYmplY3Qp
OgotICAgICIiIkEgaGFuZGxlciBzdWl0ZSBob2xkZXIgY2xhc3MuIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgZG9fZXh0cmFfaGFuZHNoYWtlLCB0cmFuc2Zlcl9kYXRhLAotICAgICAgICAg
ICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlKToKLSAgICAgICAgc2VsZi5kb19leHRy
YV9oYW5kc2hha2UgPSBkb19leHRyYV9oYW5kc2hha2UKLSAgICAgICAgc2VsZi50cmFuc2Zlcl9k
YXRhID0gdHJhbnNmZXJfZGF0YQotICAgICAgICBzZWxmLnBhc3NpdmVfY2xvc2luZ19oYW5kc2hh
a2UgPSBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlCi0KLQotZGVmIF9zb3VyY2VfaGFuZGxlcl9m
aWxlKGhhbmRsZXJfZGVmaW5pdGlvbik6Ci0gICAgIiIiU291cmNlIGEgaGFuZGxlciBkZWZpbml0
aW9uIHN0cmluZy4KLQotICAgIEFyZ3M6Ci0gICAgICAgIGhhbmRsZXJfZGVmaW5pdGlvbjogYSBz
dHJpbmcgY29udGFpbmluZyBQeXRob24gc3RhdGVtZW50cyB0aGF0IGRlZmluZQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhhbmRsZXIgZnVuY3Rpb25zLgotICAgICIiIgotCi0gICAgZ2xv
YmFsX2RpYyA9IHt9Ci0gICAgdHJ5OgotICAgICAgICBleGVjIGhhbmRsZXJfZGVmaW5pdGlvbiBp
biBnbG9iYWxfZGljCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgcmFpc2UgRGlzcGF0
Y2hFeGNlcHRpb24oJ0Vycm9yIGluIHNvdXJjaW5nIGhhbmRsZXI6JyArCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAgcGFzc2l2ZV9j
bG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyID0gTm9uZQotICAgIHRyeToKLSAgICAgICAgcGFzc2l2
ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyID0gX2V4dHJhY3RfaGFuZGxlcigKLSAgICAgICAg
ICAgIGdsb2JhbF9kaWMsIF9QQVNTSVZFX0NMT1NJTkdfSEFORFNIQUtFX0hBTkRMRVJfTkFNRSkK
LSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtl
X2hhbmRsZXIgPSAoCi0gICAgICAgICAgICBfZGVmYXVsdF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNo
YWtlX2hhbmRsZXIpCi0gICAgcmV0dXJuIF9IYW5kbGVyU3VpdGUoCi0gICAgICAgIF9leHRyYWN0
X2hhbmRsZXIoZ2xvYmFsX2RpYywgX0RPX0VYVFJBX0hBTkRTSEFLRV9IQU5ETEVSX05BTUUpLAot
ICAgICAgICBfZXh0cmFjdF9oYW5kbGVyKGdsb2JhbF9kaWMsIF9UUkFOU0ZFUl9EQVRBX0hBTkRM
RVJfTkFNRSksCi0gICAgICAgIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcikKLQot
Ci1kZWYgX2V4dHJhY3RfaGFuZGxlcihkaWMsIG5hbWUpOgotICAgICIiIkV4dHJhY3RzIGEgY2Fs
bGFibGUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgZnJvbSB0aGUgZ2l2ZW4gZGljdGlvbmFyeQot
ICAgIGRpYy4KLSAgICAiIiIKLQotICAgIGlmIG5hbWUgbm90IGluIGRpYzoKLSAgICAgICAgcmFp
c2UgRGlzcGF0Y2hFeGNlcHRpb24oJyVzIGlzIG5vdCBkZWZpbmVkLicgJSBuYW1lKQotICAgIGhh
bmRsZXIgPSBkaWNbbmFtZV0KLSAgICBpZiBub3QgY2FsbGFibGUoaGFuZGxlcik6Ci0gICAgICAg
IHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCclcyBpcyBub3QgY2FsbGFibGUuJyAlIG5hbWUpCi0g
ICAgcmV0dXJuIGhhbmRsZXIKLQotCi1jbGFzcyBEaXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgIiIi
RGlzcGF0Y2hlcyBXZWJTb2NrZXQgcmVxdWVzdHMuCi0KLSAgICBUaGlzIGNsYXNzIG1haW50YWlu
cyBhIG1hcCBmcm9tIHJlc291cmNlIG5hbWUgdG8gaGFuZGxlcnMuCi0gICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oCi0gICAgICAgIHNlbGYsIHJvb3RfZGlyLCBzY2FuX2Rpcj1Ob25lLAotICAg
ICAgICBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyPVRydWUpOgotICAgICAgICAiIiJD
b25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJvb3Rf
ZGlyOiBUaGUgZGlyZWN0b3J5IHdoZXJlIGhhbmRsZXIgZGVmaW5pdGlvbiBmaWxlcyBhcmUKLSAg
ICAgICAgICAgICAgICAgICAgICBwbGFjZWQuCi0gICAgICAgICAgICBzY2FuX2RpcjogVGhlIGRp
cmVjdG9yeSB3aGVyZSBoYW5kbGVyIGRlZmluaXRpb24gZmlsZXMgYXJlCi0gICAgICAgICAgICAg
ICAgICAgICAgc2VhcmNoZWQuIHNjYW5fZGlyIG11c3QgYmUgYSBkaXJlY3RvcnkgdW5kZXIgcm9v
dF9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIHJvb3RfZGlyIGl0c2VsZi4g
IElmIHNjYW5fZGlyIGlzIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgcm9vdF9kaXIgaXMg
dXNlZCBhcyBzY2FuX2Rpci4gc2Nhbl9kaXIgY2FuIGJlIHVzZWZ1bAotICAgICAgICAgICAgICAg
ICAgICAgIGluIHNhdmluZyBzY2FuIHRpbWUgd2hlbiByb290X2RpciBjb250YWlucyBtYW55Ci0g
ICAgICAgICAgICAgICAgICAgICAgc3ViZGlyZWN0b3JpZXMuCi0gICAgICAgICAgICBhbGxvd19o
YW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyOiBTY2FucyBoYW5kbGVyIGZpbGVzIGV2ZW4gaWYgdGhl
aXIKLSAgICAgICAgICAgICAgICAgICAgICBjYW5vbmljYWwgcGF0aCBpcyBub3QgdW5kZXIgcm9v
dF9kaXIuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2Ns
YXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX2hhbmRsZXJfc3VpdGVfbWFwID0ge30K
LSAgICAgICAgc2VsZi5fc291cmNlX3dhcm5pbmdzID0gW10KLSAgICAgICAgaWYgc2Nhbl9kaXIg
aXMgTm9uZToKLSAgICAgICAgICAgIHNjYW5fZGlyID0gcm9vdF9kaXIKLSAgICAgICAgaWYgbm90
IG9zLnBhdGgucmVhbHBhdGgoc2Nhbl9kaXIpLnN0YXJ0c3dpdGgoCi0gICAgICAgICAgICAgICAg
b3MucGF0aC5yZWFscGF0aChyb290X2RpcikpOgotICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hF
eGNlcHRpb24oJ3NjYW5fZGlyOiVzIG11c3QgYmUgYSBkaXJlY3RvcnkgdW5kZXIgJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jvb3RfZGlyOiVzLicgJSAoc2Nhbl9kaXIs
IHJvb3RfZGlyKSkKLSAgICAgICAgc2VsZi5fc291cmNlX2hhbmRsZXJfZmlsZXNfaW5fZGlyKAot
ICAgICAgICAgICAgcm9vdF9kaXIsIHNjYW5fZGlyLCBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jv
b3RfZGlyKQotCi0gICAgZGVmIGFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKHNlbGYsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzX3Jlc291cmNlX3BhdGgsIGV4aXN0aW5nX3Jl
c291cmNlX3BhdGgpOgotICAgICAgICAiIiJBZGQgcmVzb3VyY2UgcGF0aCBhbGlhcy4KLQotICAg
ICAgICBPbmNlIGFkZGVkLCByZXF1ZXN0IHRvIGFsaWFzX3Jlc291cmNlX3BhdGggd291bGQgYmUg
aGFuZGxlZCBieQotICAgICAgICBoYW5kbGVyIHJlZ2lzdGVyZWQgZm9yIGV4aXN0aW5nX3Jlc291
cmNlX3BhdGguCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGFsaWFzX3Jlc291cmNlX3Bh
dGg6IGFsaWFzIHJlc291cmNlIHBhdGgKLSAgICAgICAgICAgIGV4aXN0aW5nX3Jlc291cmNlX3Bh
dGg6IGV4aXN0aW5nIHJlc291cmNlIHBhdGgKLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxmLl9oYW5kbGVyX3N1aXRlX21hcFtleGlzdGlu
Z19yZXNvdXJjZV9wYXRoXQotICAgICAgICAgICAgc2VsZi5faGFuZGxlcl9zdWl0ZV9tYXBbYWxp
YXNfcmVzb3VyY2VfcGF0aF0gPSBoYW5kbGVyX3N1aXRlCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJv
cjoKLSAgICAgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdObyBoYW5kbGVyIGZvcjog
JXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nX3Jlc291
cmNlX3BhdGgpCi0KLSAgICBkZWYgc291cmNlX3dhcm5pbmdzKHNlbGYpOgotICAgICAgICAiIiJS
ZXR1cm4gd2FybmluZ3MgaW4gc291cmNpbmcgaGFuZGxlcnMuIiIiCi0KLSAgICAgICAgcmV0dXJu
IHNlbGYuX3NvdXJjZV93YXJuaW5ncwotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxm
LCByZXF1ZXN0KToKLSAgICAgICAgIiIiRG8gZXh0cmEgY2hlY2tpbmcgaW4gV2ViU29ja2V0IGhh
bmRzaGFrZS4KLQotICAgICAgICBTZWxlY3QgYSBoYW5kbGVyIGJhc2VkIG9uIHJlcXVlc3QudXJp
IGFuZCBjYWxsIGl0cwotICAgICAgICB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBmdW5j
dGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiBy
ZXF1ZXN0LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIERpc3BhdGNoRXhjZXB0aW9u
OiB3aGVuIGhhbmRsZXIgd2FzIG5vdCBmb3VuZAotICAgICAgICAgICAgQWJvcnRlZEJ5VXNlckV4
Y2VwdGlvbjogd2hlbiB1c2VyIGhhbmRsZXIgYWJvcnQgY29ubmVjdGlvbgotICAgICAgICAgICAg
SGFuZHNoYWtlRXhjZXB0aW9uOiB3aGVuIG9wZW5pbmcgaGFuZHNoYWtlIGZhaWxlZAotICAgICAg
ICAiIiIKLQotICAgICAgICBoYW5kbGVyX3N1aXRlID0gc2VsZi5nZXRfaGFuZGxlcl9zdWl0ZShy
ZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBpZiBoYW5kbGVyX3N1aXRlIGlzIE5vbmU6Ci0g
ICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignTm8gaGFuZGxlciBmb3I6ICVyJyAl
IHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAgICAgIGRvX2V4dHJhX2hhbmRzaGFrZV8gPSBoYW5k
bGVyX3N1aXRlLmRvX2V4dHJhX2hhbmRzaGFrZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBk
b19leHRyYV9oYW5kc2hha2VfKHJlcXVlc3QpCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJv
cnRlZEJ5VXNlckV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICMgUmUtcmFpc2UgdG8gdGVsbCB0
aGUgY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24gdG8gZmluaXNoIHRoaXMKLSAgICAgICAgICAgICMg
Y29ubmVjdGlvbiB3aXRob3V0IHNlbmRpbmcgYW55IGVycm9yLgotICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCclcycsIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAgICAgICAgICBy
YWlzZQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgdXRpbC5wcmVw
ZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnJXMgcmFpc2Vk
IGV4Y2VwdGlvbiBmb3IgJXM6ICcgJSAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgX0RP
X0VYVFJBX0hBTkRTSEFLRV9IQU5ETEVSX05BTUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdC53c19yZXNvdXJjZSksCi0gICAgICAgICAgICAgICAgICAgIGUpCi0gICAgICAg
ICAgICByYWlzZSBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uKGUsIGNvbW1vbi5IVFRQX1NU
QVRVU19GT1JCSURERU4pCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShzZWxmLCByZXF1ZXN0KToK
LSAgICAgICAgIiIiTGV0IGEgaGFuZGxlciB0cmFuc2Zlcl9kYXRhIHdpdGggYSBXZWJTb2NrZXQg
Y2xpZW50LgotCi0gICAgICAgIFNlbGVjdCBhIGhhbmRsZXIgYmFzZWQgb24gcmVxdWVzdC53c19y
ZXNvdXJjZSBhbmQgY2FsbCBpdHMKLSAgICAgICAgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhIGZ1
bmN0aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9u
IHJlcXVlc3QuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgRGlzcGF0Y2hFeGNlcHRp
b246IHdoZW4gaGFuZGxlciB3YXMgbm90IGZvdW5kCi0gICAgICAgICAgICBBYm9ydGVkQnlVc2Vy
RXhjZXB0aW9uOiB3aGVuIHVzZXIgaGFuZGxlciBhYm9ydCBjb25uZWN0aW9uCi0gICAgICAgICIi
IgotCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFRlcm1pbmF0ZSB1bmRlcmx5aW5nIFRDUCBj
b25uZWN0aW9uIGlmIHBvc3NpYmxlLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpZiBtdXgu
dXNlX211eChyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBtdXguc3RhcnQocmVxdWVzdCwgc2Vs
ZikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNl
bGYuZ2V0X2hhbmRsZXJfc3VpdGUocmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAgICAgICAg
ICBpZiBoYW5kbGVyX3N1aXRlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIERp
c3BhdGNoRXhjZXB0aW9uKCdObyBoYW5kbGVyIGZvcjogJXInICUKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAg
ICAgICAgICB0cmFuc2Zlcl9kYXRhXyA9IGhhbmRsZXJfc3VpdGUudHJhbnNmZXJfZGF0YQotICAg
ICAgICAgICAgICAgIHRyYW5zZmVyX2RhdGFfKHJlcXVlc3QpCi0KLSAgICAgICAgICAgIGlmIG5v
dCByZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nf
c3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotICAgICAgICAjIENhdGNoIG5vbi1jcml0aWNhbCBl
eGNlcHRpb25zIHRoZSBoYW5kbGVyIGRpZG4ndCBoYW5kbGUuCi0gICAgICAgIGV4Y2VwdCBoYW5k
c2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnJXMnLCB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAgICAgICAgcmFpc2UK
LSAgICAgICAgZXhjZXB0IG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uLCBlOgotICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXF1ZXN0Lndz
X3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNf
SU5URVJOQUxfRU5EUE9JTlRfRVJST1IpCi0gICAgICAgIGV4Y2VwdCBtc2d1dGlsLkludmFsaWRG
cmFtZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICMgSW52YWxpZEZyYW1lRXhjZXB0aW9uIG11
c3QgYmUgY2F1Z2h0IGJlZm9yZQotICAgICAgICAgICAgIyBDb25uZWN0aW9uVGVybWluYXRlZEV4
Y2VwdGlvbiB0aGF0IGNhdGNoZXMgSW52YWxpZEZyYW1lRXhjZXB0aW9uLgotICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVh
bS5jbG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFUVVNfUFJPVE9DT0xfRVJST1IpCi0gICAgICAg
IGV4Y2VwdCBtc2d1dGlsLlVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24sIGU6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3Ry
ZWFtLmNsb3NlX2Nvbm5lY3Rpb24oY29tbW9uLlNUQVRVU19VTlNVUFBPUlRFRF9EQVRBKQotICAg
ICAgICBleGNlcHQgc3RyZWFtLkludmFsaWRVVEY4RXhjZXB0aW9uLCBlOgotICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVh
bS5jbG9zZV9jb25uZWN0aW9uKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNfSU5WQUxJ
RF9GUkFNRV9QQVlMT0FEX0RBVEEpCi0gICAgICAgIGV4Y2VwdCBtc2d1dGlsLkNvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCcl
cycsIGUpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAjIEFueSBv
dGhlciBleGNlcHRpb25zIGFyZSBmb3J3YXJkZWQgdG8gdGhlIGNhbGxlciBvZiB0aGlzCi0gICAg
ICAgICAgICAjIGZ1bmN0aW9uLgotICAgICAgICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9f
ZXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICclcyByYWlzZWQgZXhjZXB0aW9uIGZvciAlczog
JyAlICgKLSAgICAgICAgICAgICAgICAgICAgX1RSQU5TRkVSX0RBVEFfSEFORExFUl9OQU1FLCBy
ZXF1ZXN0LndzX3Jlc291cmNlKSwKLSAgICAgICAgICAgICAgICBlKQotICAgICAgICAgICAgcmFp
c2UKLQotICAgIGRlZiBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlKHNlbGYsIHJlcXVlc3QpOgot
ICAgICAgICAiIiJQcmVwYXJlIGNvZGUgYW5kIHJlYXNvbiBmb3IgcmVzcG9uZGluZyBjbGllbnQg
aW5pdGlhdGVkIGNsb3NpbmcKLSAgICAgICAgaGFuZHNoYWtlLgotICAgICAgICAiIiIKLQotICAg
ICAgICBoYW5kbGVyX3N1aXRlID0gc2VsZi5nZXRfaGFuZGxlcl9zdWl0ZShyZXF1ZXN0LndzX3Jl
c291cmNlKQotICAgICAgICBpZiBoYW5kbGVyX3N1aXRlIGlzIE5vbmU6Ci0gICAgICAgICAgICBy
ZXR1cm4gX2RlZmF1bHRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyKHJlcXVlc3Qp
Ci0gICAgICAgIHJldHVybiBoYW5kbGVyX3N1aXRlLnBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2Uo
cmVxdWVzdCkKLQotICAgIGRlZiBnZXRfaGFuZGxlcl9zdWl0ZShzZWxmLCByZXNvdXJjZSk6Ci0g
ICAgICAgICIiIlJldHJpZXZlcyB0d28gaGFuZGxlcnMgKG9uZSBmb3IgZXh0cmEgaGFuZHNoYWtl
IHByb2Nlc3NpbmcsIGFuZCBvbmUKLSAgICAgICAgZm9yIGRhdGEgdHJhbnNmZXIpIGZvciB0aGUg
Z2l2ZW4gcmVxdWVzdCBhcyBhIEhhbmRsZXJTdWl0ZSBvYmplY3QuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIGZyYWdtZW50ID0gTm9uZQotICAgICAgICBpZiAnIycgaW4gcmVzb3VyY2U6Ci0gICAg
ICAgICAgICByZXNvdXJjZSwgZnJhZ21lbnQgPSByZXNvdXJjZS5zcGxpdCgnIycsIDEpCi0gICAg
ICAgIGlmICc/JyBpbiByZXNvdXJjZToKLSAgICAgICAgICAgIHJlc291cmNlID0gcmVzb3VyY2Uu
c3BsaXQoJz8nLCAxKVswXQotICAgICAgICBoYW5kbGVyX3N1aXRlID0gc2VsZi5faGFuZGxlcl9z
dWl0ZV9tYXAuZ2V0KHJlc291cmNlKQotICAgICAgICBpZiBoYW5kbGVyX3N1aXRlIGFuZCBmcmFn
bWVudDoKLSAgICAgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdGcmFnbWVudCBpZGVu
dGlmaWVycyBNVVNUIE5PVCBiZSB1c2VkIG9uICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdXZWJTb2NrZXQgVVJJcycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0gICAgICAgIHJldHVybiBo
YW5kbGVyX3N1aXRlCi0KLSAgICBkZWYgX3NvdXJjZV9oYW5kbGVyX2ZpbGVzX2luX2RpcigKLSAg
ICAgICAgc2VsZiwgcm9vdF9kaXIsIHNjYW5fZGlyLCBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jv
b3RfZGlyKToKLSAgICAgICAgIiIiU291cmNlIGFsbCB0aGUgaGFuZGxlciBzb3VyY2UgZmlsZXMg
aW4gdGhlIHNjYW5fZGlyIGRpcmVjdG9yeS4KLQotICAgICAgICBUaGUgcmVzb3VyY2UgcGF0aCBp
cyBkZXRlcm1pbmVkIHJlbGF0aXZlIHRvIHJvb3RfZGlyLgotICAgICAgICAiIiIKLQotICAgICAg
ICAjIFdlIGJ1aWxkIGEgbWFwIGZyb20gcmVzb3VyY2UgdG8gaGFuZGxlciBjb2RlIGFzc3VtaW5n
IHRoYXQgdGhlcmUncwotICAgICAgICAjIG9ubHkgb25lIHBhdGggZnJvbSByb290X2RpciB0byBz
Y2FuX2RpciBhbmQgaXQgY2FuIGJlIG9idGFpbmVkIGJ5Ci0gICAgICAgICMgY29tcGFyaW5nIHJl
YWxwYXRoIG9mIHRoZW0uCi0KLSAgICAgICAgIyBIZXJlIHdlIGNhbm5vdCB1c2UgYWJzcGF0aC4g
U2VlCi0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMx
NjAzCi0KLSAgICAgICAgY29udmVydCA9IF9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0
ZXIocm9vdF9kaXIpCi0gICAgICAgIHNjYW5fcmVhbHBhdGggPSBvcy5wYXRoLnJlYWxwYXRoKHNj
YW5fZGlyKQotICAgICAgICByb290X3JlYWxwYXRoID0gb3MucGF0aC5yZWFscGF0aChyb290X2Rp
cikKLSAgICAgICAgZm9yIHBhdGggaW4gX2VudW1lcmF0ZV9oYW5kbGVyX2ZpbGVfcGF0aHMoc2Nh
bl9yZWFscGF0aCk6Ci0gICAgICAgICAgICBpZiAobm90IGFsbG93X2hhbmRsZXJzX291dHNpZGVf
cm9vdF9kaXIgYW5kCi0gICAgICAgICAgICAgICAgKG5vdCBvcy5wYXRoLnJlYWxwYXRoKHBhdGgp
LnN0YXJ0c3dpdGgocm9vdF9yZWFscGF0aCkpKToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICdDYW5vbmljYWwgcGF0aCBvZiAlcyBpcyBu
b3QgdW5kZXIgcm9vdCBkaXJlY3RvcnknICUKLSAgICAgICAgICAgICAgICAgICAgcGF0aCkKLSAg
ICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IGhhbmRsZXJfc3VpdGUgPSBfc291cmNlX2hhbmRsZXJfZmlsZShvcGVuKHBhdGgpLnJlYWQoKSkK
LSAgICAgICAgICAgIGV4Y2VwdCBEaXNwYXRjaEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAg
ICBzZWxmLl9zb3VyY2Vfd2FybmluZ3MuYXBwZW5kKCclczogJXMnICUgKHBhdGgsIGUpKQotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICByZXNvdXJjZSA9IGNvbnZlcnQocGF0
aCkKLSAgICAgICAgICAgIGlmIHJlc291cmNlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAnUGF0aCB0byByZXNvdXJjZSBj
b252ZXJzaW9uIG9uICVzIGZhaWxlZCcgJSBwYXRoKQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9oYW5kbGVyX3N1aXRlX21hcFtjb252ZXJ0KHBhdGgpXSA9IGhhbmRs
ZXJfc3VpdGUKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2V4
dGVuc2lvbnMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5YTlmZGNmOTQ3OTg2
YTFiNGNhY2JlNDZmM2Q1M2UwMTU4ZGI3Y2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2V4dGVuc2lvbnMucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw4ODUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xl
IEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IHV0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0Lmh0dHBfaGVhZGVyX3V0aWwgaW1wb3J0IHF1
b3RlX2lmX25lY2Vzc2FyeQotCi0KLSMgVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHNlcnZlciBzaWRl
IGV4dGVuc2lvbiBwcm9jZXNzb3IgY2xhc3Nlcy4KLV9hdmFpbGFibGVfcHJvY2Vzc29ycyA9IHt9
Ci1fY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzID0gW10KLQotCi1jbGFzcyBFeHRlbnNpb25Q
cm9jZXNzb3JJbnRlcmZhY2Uob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1
ZXN0KToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYp
Ci0KLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5fYWN0aXZl
ID0gVHJ1ZQotCi0gICAgZGVmIHJlcXVlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9y
ZXF1ZXN0Ci0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAg
IGRlZiBjaGVja19jb25zaXN0ZW5jeV93aXRoX290aGVyX3Byb2Nlc3NvcnMoc2VsZiwgcHJvY2Vz
c29ycyk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBzZXRfYWN0aXZlKHNlbGYsIGFjdGl2ZSk6
Ci0gICAgICAgIHNlbGYuX2FjdGl2ZSA9IGFjdGl2ZQotCi0gICAgZGVmIGlzX2FjdGl2ZShzZWxm
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2FjdGl2ZQotCi0gICAgZGVmIF9nZXRfZXh0ZW5zaW9u
X3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVm
IGdldF9leHRlbnNpb25fcmVzcG9uc2Uoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9hY3Rp
dmU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0V4dGVuc2lvbiAlcyBpcyBkZWFj
dGl2YXRlZCcsIHNlbGYubmFtZSgpKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAg
ICByZXNwb25zZSA9IHNlbGYuX2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoKQotICAg
ICAgICBpZiByZXNwb25zZSBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fYWN0aXZlID0gRmFs
c2UKLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlCi0KLSAgICBkZWYgX3NldHVwX3N0cmVhbV9vcHRp
b25zX2ludGVybmFsKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgcGFzcwotCi0gICAg
ZGVmIHNldHVwX3N0cmVhbV9vcHRpb25zKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAg
aWYgc2VsZi5fYWN0aXZlOgotICAgICAgICAgICAgc2VsZi5fc2V0dXBfc3RyZWFtX29wdGlvbnNf
aW50ZXJuYWwoc3RyZWFtX29wdGlvbnMpCi0KLQotZGVmIF9sb2dfb3V0Z29pbmdfY29tcHJlc3Np
b25fcmF0aW8oCi0gICAgICAgIGxvZ2dlciwgb3JpZ2luYWxfYnl0ZXMsIGZpbHRlcmVkX2J5dGVz
LCBhdmVyYWdlX3JhdGlvKToKLSAgICAjIFByaW50IGluZiB3aGVuIHJhdGlvIGlzIG5vdCBhdmFp
bGFibGUuCi0gICAgcmF0aW8gPSBmbG9hdCgnaW5mJykKLSAgICBpZiBvcmlnaW5hbF9ieXRlcyAh
PSAwOgotICAgICAgICByYXRpbyA9IGZsb2F0KGZpbHRlcmVkX2J5dGVzKSAvIG9yaWdpbmFsX2J5
dGVzCi0KLSAgICBsb2dnZXIuZGVidWcoJ091dGdvaW5nIGNvbXByZXNzaW9uIHJhdGlvOiAlZiAo
YXZlcmFnZTogJWYpJyAlCi0gICAgICAgICAgICAocmF0aW8sIGF2ZXJhZ2VfcmF0aW8pKQotCi0K
LWRlZiBfbG9nX2luY29taW5nX2NvbXByZXNzaW9uX3JhdGlvKAotICAgICAgICBsb2dnZXIsIHJl
Y2VpdmVkX2J5dGVzLCBmaWx0ZXJlZF9ieXRlcywgYXZlcmFnZV9yYXRpbyk6Ci0gICAgIyBQcmlu
dCBpbmYgd2hlbiByYXRpbyBpcyBub3QgYXZhaWxhYmxlLgotICAgIHJhdGlvID0gZmxvYXQoJ2lu
ZicpCi0gICAgaWYgZmlsdGVyZWRfYnl0ZXMgIT0gMDoKLSAgICAgICAgcmF0aW8gPSBmbG9hdChy
ZWNlaXZlZF9ieXRlcykgLyBmaWx0ZXJlZF9ieXRlcwotCi0gICAgbG9nZ2VyLmRlYnVnKCdJbmNv
bWluZyBjb21wcmVzc2lvbiByYXRpbzogJWYgKGF2ZXJhZ2U6ICVmKScgJQotICAgICAgICAgICAg
KHJhdGlvLCBhdmVyYWdlX3JhdGlvKSkKLQotCi1kZWYgX3BhcnNlX3dpbmRvd19iaXRzKGJpdHMp
OgotICAgICIiIlJldHVybiBwYXJzZWQgaW50ZWdlciB2YWx1ZSBpZmYgdGhlIGdpdmVuIHN0cmlu
ZyBjb25mb3JtcyB0byB0aGUKLSAgICBncmFtbWFyIG9mIHRoZSB3aW5kb3cgYml0cyBleHRlbnNp
b24gcGFyYW1ldGVycy4KLSAgICAiIiIKLQotICAgIGlmIGJpdHMgaXMgTm9uZToKLSAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignVmFsdWUgaXMgcmVxdWlyZWQnKQotCi0gICAgIyBGb3Igbm9uIGlu
dGVnZXIgdmFsdWVzIHN1Y2ggYXMgIjEwLjAiLCBWYWx1ZUVycm9yIHdpbGwgYmUgcmFpc2VkLgot
ICAgIGludF9iaXRzID0gaW50KGJpdHMpCi0KLSAgICAjIEZpcnN0IGNvbmRpdGlvbiBpcyB0byBk
cm9wIGxlYWRpbmcgemVybyBjYXNlIGUuZy4gIjA4Ii4KLSAgICBpZiBiaXRzICE9IHN0cihpbnRf
Yml0cykgb3IgaW50X2JpdHMgPCA4IG9yIGludF9iaXRzID4gMTU6Ci0gICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ0ludmFsaWQgdmFsdWU6ICVyJyAlIGJpdHMpCi0KLSAgICByZXR1cm4gaW50X2Jp
dHMKLQotCi1jbGFzcyBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcihvYmplY3QpOgotICAgICIiIlN0
b3JlcyB0b3RhbCBieXRlcyBvZiBvcmlnaW5hbCBhbmQgcmVzdWx0IGRhdGEsIGFuZCBjYWxjdWxh
dGVzIGF2ZXJhZ2UKLSAgICByZXN1bHQgLyBvcmlnaW5hbCByYXRpby4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0ZXMg
PSAwCi0gICAgICAgIHNlbGYuX3RvdGFsX3Jlc3VsdF9ieXRlcyA9IDAKLQotICAgIGRlZiBhZGRf
b3JpZ2luYWxfYnl0ZXMoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl90b3RhbF9vcmlnaW5h
bF9ieXRlcyArPSB2YWx1ZQotCi0gICAgZGVmIGFkZF9yZXN1bHRfYnl0ZXMoc2VsZiwgdmFsdWUp
OgotICAgICAgICBzZWxmLl90b3RhbF9yZXN1bHRfYnl0ZXMgKz0gdmFsdWUKLQotICAgIGRlZiBn
ZXRfYXZlcmFnZV9yYXRpbyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5fdG90YWxfb3JpZ2luYWxf
Ynl0ZXMgIT0gMDoKLSAgICAgICAgICAgIHJldHVybiAoZmxvYXQoc2VsZi5fdG90YWxfcmVzdWx0
X2J5dGVzKSAvCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5dGVz
KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIGZsb2F0KCdpbmYnKQotCi0KLWNs
YXNzIERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihFeHRlbnNpb25Qcm9jZXNzb3JJbnRl
cmZhY2UpOgotICAgICIiImRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uIHByb2Nlc3Nvci4KLQotICAg
IFNwZWNpZmljYXRpb246Ci0gICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtdHlv
c2hpbm8taHliaS13ZWJzb2NrZXQtcGVyZnJhbWUtZGVmbGF0ZQotICAgICIiIgotCi0gICAgX1dJ
TkRPV19CSVRTX1BBUkFNID0gJ21heF93aW5kb3dfYml0cycKLSAgICBfTk9fQ09OVEVYVF9UQUtF
T1ZFUl9QQVJBTSA9ICdub19jb250ZXh0X3Rha2VvdmVyJwotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIHJlcXVlc3QpOgotICAgICAgICBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UuX19pbml0
X18oc2VsZiwgcmVxdWVzdCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3Nf
bG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmVzcG9uc2Vfd2luZG93X2JpdHMgPSBOb25l
Ci0gICAgICAgIHNlbGYuX3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIgPSBGYWxzZQotICAg
ICAgICBzZWxmLl9iZmluYWwgPSBGYWxzZQotCi0gICAgICAgICMgQ2FsY3VsYXRlcwotICAgICAg
ICAjICAgICAoVG90YWwgb3V0Z29pbmcgYnl0ZXMgc3VwcGxpZWQgdG8gdGhpcyBmaWx0ZXIpIC8K
LSAgICAgICAgIyAgICAgKFRvdGFsIGJ5dGVzIHNlbnQgdG8gdGhlIG5ldHdvcmsgYWZ0ZXIgYXBw
bHlpbmcgdGhpcyBmaWx0ZXIpCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9f
Y2FsY3VsYXRvciA9IF9BdmVyYWdlUmF0aW9DYWxjdWxhdG9yKCkKLQotICAgICAgICAjIENhbGN1
bGF0ZXMKLSAgICAgICAgIyAgICAgKFRvdGFsIGJ5dGVzIHJlY2VpdmVkIGZyb20gdGhlIG5ldHdv
cmspIC8KLSAgICAgICAgIyAgICAgKFRvdGFsIGluY29taW5nIGJ5dGVzIG9idGFpbmVkIGFmdGVy
IGFwcGx5aW5nIHRoaXMgZmlsdGVyKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3Jh
dGlvX2NhbGN1bGF0b3IgPSBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcigpCi0KLSAgICBkZWYgbmFt
ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTgot
Ci0gICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgotICAgICAg
ICAjIEFueSB1bmtub3duIHBhcmFtZXRlciB3aWxsIGJlIGp1c3QgaWdub3JlZC4KLQotICAgICAg
ICB3aW5kb3dfYml0cyA9IE5vbmUKLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1l
dGVyKHNlbGYuX1dJTkRPV19CSVRTX1BBUkFNKToKLSAgICAgICAgICAgIHdpbmRvd19iaXRzID0g
c2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgIHNlbGYu
X1dJTkRPV19CSVRTX1BBUkFNKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHdp
bmRvd19iaXRzID0gX3BhcnNlX3dpbmRvd19iaXRzKHdpbmRvd19iaXRzKQotICAgICAgICAgICAg
ZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAg
ICAgICBub19jb250ZXh0X3Rha2VvdmVyID0gc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAot
ICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkKLSAgICAgICAgaWYg
KG5vX2NvbnRleHRfdGFrZW92ZXIgYW5kCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9w
YXJhbWV0ZXJfdmFsdWUoCi0gICAgICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZF
Ul9QQVJBTSkgaXMgbm90IE5vbmUpOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAg
ICBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyID0gdXRpbC5fUkZDMTk3OURlZmxhdGVyKAotICAgICAg
ICAgICAgd2luZG93X2JpdHMsIG5vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICAgICAgc2VsZi5f
cmZjMTk3OV9pbmZsYXRlciA9IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCi0KLSAgICAgICAgc2Vs
Zi5fY29tcHJlc3Nfb3V0Z29pbmcgPSBUcnVlCi0KLSAgICAgICAgcmVzcG9uc2UgPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKHNlbGYuX3JlcXVlc3QubmFtZSgpKQotCi0gICAgICAgIGlmIHNl
bGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmVzcG9u
c2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9XSU5ET1dfQklUU19QQVJB
TSwgc3RyKHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzKSkKLSAgICAgICAgaWYgc2VsZi5fcmVz
cG9uc2Vfbm9fY29udGV4dF90YWtlb3ZlcjoKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJh
bWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwg
Tm9uZSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRW5hYmxl
ICVzIGV4dGVuc2lvbiAoJwotICAgICAgICAgICAgJ3JlcXVlc3Q6IHdpbmRvd19iaXRzPSVzOyBu
b19jb250ZXh0X3Rha2VvdmVyPSVyLCAnCi0gICAgICAgICAgICAncmVzcG9uc2U6IHdpbmRvd193
Yml0cz0lczsgbm9fY29udGV4dF90YWtlb3Zlcj0lciknICUKLSAgICAgICAgICAgIChzZWxmLl9y
ZXF1ZXN0Lm5hbWUoKSwKLSAgICAgICAgICAgICB3aW5kb3dfYml0cywKLSAgICAgICAgICAgICBu
b19jb250ZXh0X3Rha2VvdmVyLAotICAgICAgICAgICAgIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19i
aXRzLAotICAgICAgICAgICAgIHNlbGYuX3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIpKQot
Ci0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9u
c19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0KLSAgICAgICAgY2xhc3MgX091dGdv
aW5nRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJl
bnQpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotCi0gICAgICAgICAg
ICBkZWYgZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQu
X291dGdvaW5nX2ZpbHRlcihmcmFtZSkKLQotICAgICAgICBjbGFzcyBfSW5jb21pbmdGaWx0ZXIo
b2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0
ZXIoc2VsZiwgZnJhbWUpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5faW5jb21pbmdf
ZmlsdGVyKGZyYW1lKQotCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2Zp
bHRlcnMuYXBwZW5kKAotICAgICAgICAgICAgX091dGdvaW5nRmlsdGVyKHNlbGYpKQotICAgICAg
ICBzdHJlYW1fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJzLmluc2VydCgKLSAgICAgICAg
ICAgIDAsIF9JbmNvbWluZ0ZpbHRlcihzZWxmKSkKLQotICAgIGRlZiBzZXRfcmVzcG9uc2Vfd2lu
ZG93X2JpdHMoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0
cyA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIoc2Vs
ZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyID0g
dmFsdWUKLQotICAgIGRlZiBzZXRfYmZpbmFsKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5f
YmZpbmFsID0gdmFsdWUKLQotICAgIGRlZiBlbmFibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2Vs
Zik6Ci0gICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nID0gVHJ1ZQotCi0gICAgZGVmIGRp
c2FibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6Ci0gICAgICAgIHNlbGYuX2NvbXByZXNz
X291dGdvaW5nID0gRmFsc2UKLQotICAgIGRlZiBfb3V0Z29pbmdfZmlsdGVyKHNlbGYsIGZyYW1l
KToKLSAgICAgICAgIiIiVHJhbnNmb3JtIG91dGdvaW5nIGZyYW1lcy4gVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9ubHkgYnkKLSAgICAgICAgYW4gX091dGdvaW5nRmlsdGVyIGluc3RhbmNlLgotICAg
ICAgICAiIiIKLQotICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5
bG9hZCkKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFk
ZF9vcmlnaW5hbF9ieXRlcygKLSAgICAgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUp
Ci0KLSAgICAgICAgaWYgKG5vdCBzZWxmLl9jb21wcmVzc19vdXRnb2luZyBvcgotICAgICAgICAg
ICAgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSkpOgotICAgICAgICAgICAg
c2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMo
Ci0gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSkKLSAgICAgICAgICAg
IHJldHVybgotCi0gICAgICAgIGZyYW1lLnBheWxvYWQgPSBzZWxmLl9yZmMxOTc5X2RlZmxhdGVy
LmZpbHRlcigKLSAgICAgICAgICAgIGZyYW1lLnBheWxvYWQsIGJmaW5hbD1zZWxmLl9iZmluYWwp
Ci0gICAgICAgIGZyYW1lLnJzdjEgPSAxCi0KLSAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXpl
ID0gbGVuKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0
aW9fY2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVzKAotICAgICAgICAgICAgICAgIGZpbHRlcmVk
X3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9nX291dGdvaW5nX2NvbXByZXNzaW9uX3JhdGlv
KAotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAgICAgICBvcmlnaW5h
bF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAot
ICAgICAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5n
ZXRfYXZlcmFnZV9yYXRpbygpKQotCi0gICAgZGVmIF9pbmNvbWluZ19maWx0ZXIoc2VsZiwgZnJh
bWUpOgotICAgICAgICAiIiJUcmFuc2Zvcm0gaW5jb21pbmcgZnJhbWVzLiBUaGlzIG1ldGhvZCBp
cyBjYWxsZWQgb25seSBieQotICAgICAgICBhbiBfSW5jb21pbmdGaWx0ZXIgaW5zdGFuY2UuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSA9IGxlbihmcmFtZS5w
YXlsb2FkKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3Iu
YWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUp
Ci0KLSAgICAgICAgaWYgZnJhbWUucnN2MSAhPSAxIG9yIGNvbW1vbi5pc19jb250cm9sX29wY29k
ZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRp
b19jYWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRlcygKLSAgICAgICAgICAgICAgICAgICAgcmVj
ZWl2ZWRfcGF5bG9hZF9zaXplKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgZnJhbWUu
cGF5bG9hZCA9IHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCi0g
ICAgICAgIGZyYW1lLnJzdjEgPSAwCi0KLSAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0g
bGVuKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9f
Y2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRf
cGF5bG9hZF9zaXplKQotCi0gICAgICAgIF9sb2dfaW5jb21pbmdfY29tcHJlc3Npb25fcmF0aW8o
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLAotICAgICAgICAgICAgICAgIHJlY2VpdmVk
X3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUsCi0g
ICAgICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmdl
dF9hdmVyYWdlX3JhdGlvKCkpCi0KLQotX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTl0gPSAoCi0gICAgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vz
c29yKQotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcy5hcHBlbmQoY29tbW9uLkRFRkxBVEVf
RlJBTUVfRVhURU5TSU9OKQotCi1fYXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9uLlhfV0VCS0lU
X0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OXSA9ICgKLSAgICBEZWZsYXRlRnJhbWVFeHRlbnNpb25Q
cm9jZXNzb3IpCi1fY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzLmFwcGVuZChjb21tb24uWF9X
RUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0KLQotZGVmIF9wYXJzZV9jb21wcmVzc2lv
bl9tZXRob2QoZGF0YSk6Ci0gICAgIiIiUGFyc2VzIHRoZSB2YWx1ZSBvZiAibWV0aG9kIiBleHRl
bnNpb24gcGFyYW1ldGVyLiIiIgotCi0gICAgcmV0dXJuIGNvbW1vbi5wYXJzZV9leHRlbnNpb25z
KGRhdGEpCi0KLQotZGVmIF9jcmVhdGVfYWNjZXB0ZWRfbWV0aG9kX2Rlc2MobWV0aG9kX25hbWUs
IG1ldGhvZF9wYXJhbXMpOgotICAgICIiIkNyZWF0ZXMgYWNjZXB0ZWQtbWV0aG9kLWRlc2MgZnJv
bSBnaXZlbiBtZXRob2QgbmFtZSBhbmQgcGFyYW1ldGVycyIiIgotCi0gICAgZXh0ZW5zaW9uID0g
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihtZXRob2RfbmFtZSkKLSAgICBmb3IgbmFtZSwgdmFs
dWUgaW4gbWV0aG9kX3BhcmFtczoKLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIobmFt
ZSwgdmFsdWUpCi0gICAgcmV0dXJuIGNvbW1vbi5mb3JtYXRfZXh0ZW5zaW9uKGV4dGVuc2lvbikK
LQotCi1jbGFzcyBDb21wcmVzc2lvbkV4dGVuc2lvblByb2Nlc3NvckJhc2UoRXh0ZW5zaW9uUHJv
Y2Vzc29ySW50ZXJmYWNlKToKLSAgICAiIiJCYXNlIGNsYXNzIGZvciBwZXJmcmFtZS1jb21wcmVz
cyBhbmQgcGVybWVzc2FnZS1jb21wcmVzcyBleHRlbnNpb24uIiIiCi0KLSAgICBfTUVUSE9EX1BB
UkFNID0gJ21ldGhvZCcKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAg
ICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0g
ICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAg
ICBzZWxmLl9jb21wcmVzc2lvbl9tZXRob2RfbmFtZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fY29t
cHJlc3Npb25fcHJvY2Vzc29yID0gTm9uZQotICAgICAgICBzZWxmLl9jb21wcmVzc2lvbl9wcm9j
ZXNzb3JfaG9vayA9IE5vbmUKLQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4g
JycKLQotICAgIGRlZiBfbG9va3VwX2NvbXByZXNzaW9uX3Byb2Nlc3NvcihzZWxmLCBtZXRob2Rf
ZGVzYyk6Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgX2dldF9jb21wcmVzc2lvbl9w
cm9jZXNzb3JfcmVzcG9uc2Uoc2VsZik6Ci0gICAgICAgICIiIkxvb2tzIHVwIHRoZSBjb21wcmVz
c2lvbiBwcm9jZXNzb3IgYmFzZWQgb24gdGhlIHNlbGYuX3JlcXVlc3QgYW5kCi0gICAgICAgICAg
IHJldHVybnMgdGhlIGNvbXByZXNzaW9uIHByb2Nlc3NvcidzIHJlc3BvbnNlLgotICAgICAgICAi
IiIKLQotICAgICAgICBtZXRob2RfbGlzdCA9IHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92
YWx1ZShzZWxmLl9NRVRIT0RfUEFSQU0pCi0gICAgICAgIGlmIG1ldGhvZF9saXN0IGlzIE5vbmU6
Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBtZXRob2RzID0gX3BhcnNlX2NvbXBy
ZXNzaW9uX21ldGhvZChtZXRob2RfbGlzdCkKLSAgICAgICAgaWYgbWV0aG9kcyBpcyBOb25lOgot
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgY29tcmVzc2lvbl9wcm9jZXNzb3IgPSBO
b25lCi0gICAgICAgICMgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gdHJpZXMgb25seSB0aGUg
Zmlyc3QgbWV0aG9kIHRoYXQgbWF0Y2hlcwotICAgICAgICAjIHN1cHBvcnRlZCBhbGdvcml0aG0u
IEZvbGxvd2luZyBtZXRob2RzIGFyZW4ndCB0cmllZCBldmVuIGlmIHRoZQotICAgICAgICAjIGZp
cnN0IG9uZSBpcyByZWplY3RlZC4KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogTmVlZCB0byBjbGFy
aWZ5IHRoaXMgYmVoYXZpb3IuCi0gICAgICAgIGZvciBtZXRob2RfZGVzYyBpbiBtZXRob2RzOgot
ICAgICAgICAgICAgY29tcHJlc3Npb25fcHJvY2Vzc29yID0gc2VsZi5fbG9va3VwX2NvbXByZXNz
aW9uX3Byb2Nlc3NvcigKLSAgICAgICAgICAgICAgICBtZXRob2RfZGVzYykKLSAgICAgICAgICAg
IGlmIGNvbXByZXNzaW9uX3Byb2Nlc3NvciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBz
ZWxmLl9jb21wcmVzc2lvbl9tZXRob2RfbmFtZSA9IG1ldGhvZF9kZXNjLm5hbWUoKQotICAgICAg
ICAgICAgICAgIGJyZWFrCi0gICAgICAgIGlmIGNvbXByZXNzaW9uX3Byb2Nlc3NvciBpcyBOb25l
OgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBpZiBzZWxmLl9jb21wcmVzc2lv
bl9wcm9jZXNzb3JfaG9vazoKLSAgICAgICAgICAgIHNlbGYuX2NvbXByZXNzaW9uX3Byb2Nlc3Nv
cl9ob29rKGNvbXByZXNzaW9uX3Byb2Nlc3NvcikKLQotICAgICAgICBwcm9jZXNzb3JfcmVzcG9u
c2UgPSBjb21wcmVzc2lvbl9wcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAg
ICAgIGlmIHByb2Nlc3Nvcl9yZXNwb25zZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIE5v
bmUKLSAgICAgICAgc2VsZi5fY29tcHJlc3Npb25fcHJvY2Vzc29yID0gY29tcHJlc3Npb25fcHJv
Y2Vzc29yCi0gICAgICAgIHJldHVybiBwcm9jZXNzb3JfcmVzcG9uc2UKLQotICAgIGRlZiBfZ2V0
X2V4dGVuc2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yX3Jl
c3BvbnNlID0gc2VsZi5fZ2V0X2NvbXByZXNzaW9uX3Byb2Nlc3Nvcl9yZXNwb25zZSgpCi0gICAg
ICAgIGlmIHByb2Nlc3Nvcl9yZXNwb25zZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIE5v
bmUKLQotICAgICAgICByZXNwb25zZSA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoc2VsZi5f
cmVxdWVzdC5uYW1lKCkpCi0gICAgICAgIGFjY2VwdGVkX21ldGhvZF9kZXNjID0gX2NyZWF0ZV9h
Y2NlcHRlZF9tZXRob2RfZGVzYygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fY29tcHJlc3Npb25fbWV0aG9kX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByb2Nlc3Nvcl9yZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQotICAgICAgICBy
ZXNwb25zZS5hZGRfcGFyYW1ldGVyKHNlbGYuX01FVEhPRF9QQVJBTSwgYWNjZXB0ZWRfbWV0aG9k
X2Rlc2MpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdFbmFibGUg
JXMgZXh0ZW5zaW9uIChtZXRob2Q6ICVzKScgJQotICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3Qu
bmFtZSgpLCBzZWxmLl9jb21wcmVzc2lvbl9tZXRob2RfbmFtZSkpCi0gICAgICAgIHJldHVybiBy
ZXNwb25zZQotCi0gICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBz
dHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIGlmIHNlbGYuX2NvbXByZXNzaW9uX3Byb2Nlc3NvciBp
cyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHNlbGYuX2NvbXByZXNzaW9uX3By
b2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9ucykKLQotICAgIGRlZiBz
ZXRfY29tcHJlc3Npb25fcHJvY2Vzc29yX2hvb2soc2VsZiwgaG9vayk6Ci0gICAgICAgIHNlbGYu
X2NvbXByZXNzaW9uX3Byb2Nlc3Nvcl9ob29rID0gaG9vawotCi0gICAgZGVmIGdldF9jb21wcmVz
c2lvbl9wcm9jZXNzb3Ioc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9jb21wcmVzc2lvbl9w
cm9jZXNzb3IKLQotCi1jbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihF
eHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UpOgotICAgICIiInBlcm1lc3NhZ2UtZGVmbGF0ZSBl
eHRlbnNpb24gcHJvY2Vzc29yLiBJdCdzIGFsc28gdXNlZCBmb3IKLSAgICBwZXJtZXNzYWdlLWNv
bXByZXNzIGV4dGVuc2lvbiB3aGVuIHRoZSBkZWZsYXRlIG1ldGhvZCBpcyBjaG9zZW4uCi0KLSAg
ICBTcGVjaWZpY2F0aW9uOgotICAgIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWll
dGYtaHliaS1wZXJtZXNzYWdlLWNvbXByZXNzaW9uLTA4Ci0gICAgIiIiCi0KLSAgICBfU0VSVkVS
X01BWF9XSU5ET1dfQklUU19QQVJBTSA9ICdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJwotICAgIF9T
RVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSA9ICdzZXJ2ZXJfbm9fY29udGV4dF90YWtl
b3ZlcicKLSAgICBfQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSA9ICdjbGllbnRfbWF4X3dp
bmRvd19iaXRzJwotICAgIF9DTElFTlRfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSA9ICdjbGll
bnRfbm9fY29udGV4dF90YWtlb3ZlcicKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0
LCBkcmFmdDA4PVRydWUpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgUGVyTWVzc2FnZURlZmxhdGVF
eHRlbnNpb25Qcm9jZXNzb3IKLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZHJhZnQwODog
Rm9sbG93IHRoZSBjb25zdHJhaW50cyBvbiB0aGUgcGFyYW1ldGVycyB0aGF0IHdlcmUgbm90Ci0g
ICAgICAgICAgICAgICAgc3BlY2lmaWVkIGZvciBwZXJtZXNzYWdlLWNvbXByZXNzIGJ1dCBhcmUg
c3BlY2lmaWVkIGZvcgotICAgICAgICAgICAgICAgIHBlcm1lc3NhZ2UtZGVmbGF0ZSBhcyBvbgot
ICAgICAgICAgICAgICAgIGRyYWZ0LWlldGYtaHliaS1wZXJtZXNzYWdlLWNvbXByZXNzaW9uLTA4
LgotICAgICAgICAiIiIKLQotICAgICAgICBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UuX19p
bml0X18oc2VsZiwgcmVxdWVzdCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcHJlZmVycmVkX2NsaWVudF9tYXhfd2lu
ZG93X2JpdHMgPSBOb25lCi0gICAgICAgIHNlbGYuX2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVy
ID0gRmFsc2UKLQotICAgICAgICBzZWxmLl9kcmFmdDA4ID0gZHJhZnQwOAotCi0gICAgZGVmIG5h
bWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAnZGVmbGF0ZScKLQotICAgIGRlZiBfZ2V0X2V4dGVu
c2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxmKToKLSAgICAgICAgaWYgc2VsZi5fZHJhZnQwODoK
LSAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl9uYW1l
cygpOgotICAgICAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIFtzZWxmLl9TRVJWRVJfTUFYX1dJ
TkRPV19CSVRTX1BBUkFNLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9T
RVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTV06Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnVW5rbm93biBwYXJhbWV0ZXI6ICVyJywgbmFt
ZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICMgQW55IHVua25vd24gcGFyYW1ldGVyIHdpbGwgYmUganVzdCBpZ25vcmVkLgotICAg
ICAgICAgICAgcGFzcwotCi0gICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMgPSBOb25lCi0g
ICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuaGFzX3BhcmFtZXRlcihzZWxmLl9TRVJWRVJfTUFYX1dJ
TkRPV19CSVRTX1BBUkFNKToKLSAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMgPSBz
ZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFsdWUoCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0pCi0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgc2VydmVyX21heF93aW5kb3dfYml0cyA9IF9wYXJzZV93aW5kb3dfYml0cygK
LSAgICAgICAgICAgICAgICAgICAgc2VydmVyX21heF93aW5kb3dfYml0cykKLSAgICAgICAgICAg
IGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnQmFkICVzIHBhcmFtZXRlcjogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlKQotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAg
ICAgICAgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIgPSBzZWxmLl9yZXF1ZXN0Lmhhc19wYXJh
bWV0ZXIoCi0gICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJB
TSkKLSAgICAgICAgaWYgKHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyIGFuZAotICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgIHNl
bGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNKSBpcyBub3QgTm9uZSk6Ci0gICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzIHBhcmFtZXRlciBtdXN0IG5vdCBoYXZlIGEg
dmFsdWU6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJf
Tk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcikKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0K
LSAgICAgICAgIyBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGZyb20gYSBjbGllbnQgaW5kaWNhdGVz
IHdoZXRoZXIgdGhlIGNsaWVudCBjYW4KLSAgICAgICAgIyBhY2NlcHQgY2xpZW50X21heF93aW5k
b3dfYml0cyBmcm9tIGEgc2VydmVyIG9yIG5vdC4KLSAgICAgICAgY2xpZW50X2NsaWVudF9tYXhf
d2luZG93X2JpdHMgPSBzZWxmLl9yZXF1ZXN0Lmhhc19wYXJhbWV0ZXIoCi0gICAgICAgICAgICBz
ZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKQotICAgICAgICBpZiAoc2VsZi5fZHJh
ZnQwOCBhbmQKLSAgICAgICAgICAgIGNsaWVudF9jbGllbnRfbWF4X3dpbmRvd19iaXRzIGFuZAot
ICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAg
ICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0pIGlzIG5vdCBOb25lKToK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMgcGFyYW1ldGVyIG11c3Qgbm90IGhh
dmUgYSB2YWx1ZSBpbiBhICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xpZW50
XCdzIG9wZW5pbmcgaGFuZHNoYWtlOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0cykKLSAgICAgICAgICAg
IHJldHVybiBOb25lCi0KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9kZWZsYXRlciA9IHV0aWwuX1JG
QzE5NzlEZWZsYXRlcigKLSAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMsIHNlcnZl
cl9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgICAgICMgTm90ZSB0aGF0IHdlIHByZXBhcmUg
Zm9yIGluY29taW5nIG1lc3NhZ2VzIGNvbXByZXNzZWQgd2l0aCB3aW5kb3cKLSAgICAgICAgIyBi
aXRzIHVwdG8gMTUgcmVnYXJkbGVzcyBvZiB0aGUgY2xpZW50X21heF93aW5kb3dfYml0cyB2YWx1
ZSB0byBiZQotICAgICAgICAjIHNlbnQgdG8gdGhlIGNsaWVudC4KLSAgICAgICAgc2VsZi5fcmZj
MTk3OV9pbmZsYXRlciA9IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCi0KLSAgICAgICAgc2VsZi5f
ZnJhbWVyID0gX1Blck1lc3NhZ2VEZWZsYXRlRnJhbWVyKAotICAgICAgICAgICAgc2VydmVyX21h
eF93aW5kb3dfYml0cywgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIpCi0gICAgICAgIHNlbGYu
X2ZyYW1lci5zZXRfYmZpbmFsKEZhbHNlKQotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0X2NvbXBy
ZXNzX291dGdvaW5nX2VuYWJsZWQoVHJ1ZSkKLQotICAgICAgICByZXNwb25zZSA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoc2VsZi5fcmVxdWVzdC5uYW1lKCkpCi0KLSAgICAgICAgaWYgc2Vy
dmVyX21heF93aW5kb3dfYml0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFk
ZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklU
U19QQVJBTSwKLSAgICAgICAgICAgICAgICBzdHIoc2VydmVyX21heF93aW5kb3dfYml0cykpCi0K
LSAgICAgICAgaWYgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXI6Ci0gICAgICAgICAgICByZXNw
b25zZS5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9OT19DT05U
RVhUX1RBS0VPVkVSX1BBUkFNLCBOb25lKQotCi0gICAgICAgIGlmIHNlbGYuX3ByZWZlcnJlZF9j
bGllbnRfbWF4X3dpbmRvd19iaXRzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaWYgc2VsZi5f
ZHJhZnQwOCBhbmQgbm90IGNsaWVudF9jbGllbnRfbWF4X3dpbmRvd19iaXRzOgotICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUHJvY2Vzc29yIGlzIGNvbmZpZ3VyZWQgdG8gdXNl
ICVzIGJ1dCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgY2xpZW50
IGNhbm5vdCBhY2NlcHQgaXQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKQotICAgICAgICAgICAgICAgIHJldHVy
biBOb25lCi0gICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAg
ICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAgICAg
c3RyKHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKSkKLQotICAgICAgICBp
ZiBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcjoKLSAgICAgICAgICAgIHJlc3BvbnNl
LmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX05PX0NPTlRFWFRf
VEFLRU9WRVJfUEFSQU0sIE5vbmUpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAg
ICAgICAgICAgJ0VuYWJsZSAlcyBleHRlbnNpb24gKCcKLSAgICAgICAgICAgICdyZXF1ZXN0OiBz
ZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPSVzOyAnCi0gICAgICAgICAgICAnc2VydmVyX25vX2NvbnRl
eHRfdGFrZW92ZXI9JXIsICcKLSAgICAgICAgICAgICdyZXNwb25zZTogY2xpZW50X21heF93aW5k
b3dfYml0cz0lczsgJwotICAgICAgICAgICAgJ2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyPSVy
KScgJQotICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QubmFtZSgpLAotICAgICAgICAgICAgIHNl
cnZlcl9tYXhfd2luZG93X2JpdHMsCi0gICAgICAgICAgICAgc2VydmVyX25vX2NvbnRleHRfdGFr
ZW92ZXIsCi0gICAgICAgICAgICAgc2VsZi5fcHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2Jp
dHMsCi0gICAgICAgICAgICAgc2VsZi5fY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIpKQotCi0g
ICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19p
bnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXR1
cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9ucykKLQotICAgIGRlZiBzZXRfY2xpZW50X21h
eF93aW5kb3dfYml0cyhzZWxmLCB2YWx1ZSk6Ci0gICAgICAgICIiIklmIHRoaXMgb3B0aW9uIGlz
IHNwZWNpZmllZCwgdGhpcyBjbGFzcyBhZGRzIHRoZQotICAgICAgICBjbGllbnRfbWF4X3dpbmRv
d19iaXRzIGV4dGVuc2lvbiBwYXJhbWV0ZXIgdG8gdGhlIGhhbmRzaGFrZSByZXNwb25zZSwKLSAg
ICAgICAgYnV0IGRvZXNuJ3QgcmVkdWNlIHRoZSBMWjc3IHNsaWRpbmcgd2luZG93IHNpemUgb2Yg
aXRzIGluZmxhdGVyLgotICAgICAgICBJLmUuLCB5b3UgY2FuIHVzZSB0aGlzIGZvciB0ZXN0aW5n
IGNsaWVudCBpbXBsZW1lbnRhdGlvbiBidXQgY2Fubm90Ci0gICAgICAgIHJlZHVjZSBtZW1vcnkg
dXNhZ2Ugb2YgdGhpcyBjbGFzcy4KLQotICAgICAgICBJZiB0aGlzIG1ldGhvZCBoYXMgYmVlbiBj
YWxsZWQgd2l0aCBUcnVlIGFuZCBhbiBvZmZlciB3aXRob3V0IHRoZQotICAgICAgICBjbGllbnRf
bWF4X3dpbmRvd19iaXRzIGV4dGVuc2lvbiBwYXJhbWV0ZXIgaXMgcmVjZWl2ZWQsCi0gICAgICAg
IC0gKFdoZW4gcHJvY2Vzc2luZyB0aGUgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbikgdGhp
cyBwcm9jZXNzb3IKLSAgICAgICAgICBkZWNsaW5lcyB0aGUgcmVxdWVzdC4KLSAgICAgICAgLSAo
V2hlbiBwcm9jZXNzaW5nIHRoZSBwZXJtZXNzYWdlLWNvbXByZXNzIGV4dGVuc2lvbikgdGhpcyBw
cm9jZXNzb3IKLSAgICAgICAgICBhY2NlcHRzIHRoZSByZXF1ZXN0LgotICAgICAgICAiIiIKLQot
ICAgICAgICBzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21heF93aW5kb3dfYml0cyA9IHZhbHVlCi0K
LSAgICBkZWYgc2V0X2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYsIHZhbHVlKToKLSAg
ICAgICAgIiIiSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGlzIGNsYXNzIGFkZHMgdGhl
Ci0gICAgICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyIGV4dGVuc2lvbiBwYXJhbWV0ZXIg
dG8gdGhlIGhhbmRzaGFrZQotICAgICAgICByZXNwb25zZSwgYnV0IGRvZXNuJ3QgcmVzZXQgaW5m
bGF0ZXIgZm9yIGVhY2ggbWVzc2FnZS4gSS5lLiwgeW91IGNhbgotICAgICAgICB1c2UgdGhpcyBm
b3IgdGVzdGluZyBjbGllbnQgaW1wbGVtZW50YXRpb24gYnV0IGNhbm5vdCByZWR1Y2UgbWVtb3J5
Ci0gICAgICAgIHVzYWdlIG9mIHRoaXMgY2xhc3MuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNl
bGYuX2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0gdmFsdWUKLQotICAgIGRlZiBzZXRfYmZp
bmFsKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9iZmluYWwodmFsdWUp
Ci0KLSAgICBkZWYgZW5hYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKHNlbGYpOgotICAgICAgICBz
ZWxmLl9mcmFtZXIuc2V0X2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQoVHJ1ZSkKLQotICAgIGRl
ZiBkaXNhYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKHNlbGYpOgotICAgICAgICBzZWxmLl9mcmFt
ZXIuc2V0X2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQoRmFsc2UpCi0KLQotY2xhc3MgX1Blck1l
c3NhZ2VEZWZsYXRlRnJhbWVyKG9iamVjdCk6Ci0gICAgIiIiQSBmcmFtZXIgZm9yIGV4dGVuc2lv
bnMgd2l0aCBwZXItbWVzc2FnZSBERUZMQVRFIGZlYXR1cmUuIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgZGVmbGF0ZV9tYXhfd2luZG93X2JpdHMsIGRlZmxhdGVfbm9fY29udGV4dF90YWtl
b3Zlcik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxm
KQotCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIgPSB1dGlsLl9SRkMxOTc5RGVmbGF0
ZXIoCi0gICAgICAgICAgICBkZWZsYXRlX21heF93aW5kb3dfYml0cywgZGVmbGF0ZV9ub19jb250
ZXh0X3Rha2VvdmVyKQotCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIgPSB1dGlsLl9S
RkMxOTc5SW5mbGF0ZXIoKQotCi0gICAgICAgIHNlbGYuX2JmaW5hbCA9IEZhbHNlCi0KLSAgICAg
ICAgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZCA9IEZhbHNlCi0KLSAgICAgICAgIyBU
cnVlIGlmIGEgbWVzc2FnZSBpcyBmcmFnbWVudGVkIGFuZCBjb21wcmVzc2lvbiBpcyBvbmdvaW5n
LgotICAgICAgICBzZWxmLl9jb21wcmVzc19vbmdvaW5nID0gRmFsc2UKLQotICAgICAgICAjIENh
bGN1bGF0ZXMKLSAgICAgICAgIyAgICAgKFRvdGFsIG91dGdvaW5nIGJ5dGVzIHN1cHBsaWVkIHRv
IHRoaXMgZmlsdGVyKSAvCi0gICAgICAgICMgICAgIChUb3RhbCBieXRlcyBzZW50IHRvIHRoZSBu
ZXR3b3JrIGFmdGVyIGFwcGx5aW5nIHRoaXMgZmlsdGVyKQotICAgICAgICBzZWxmLl9vdXRnb2lu
Z19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IgPSBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcigpCi0K
LSAgICAgICAgIyBDYWxjdWxhdGVzCi0gICAgICAgICMgICAgIChUb3RhbCBieXRlcyByZWNlaXZl
ZCBmcm9tIHRoZSBuZXR3b3JrKSAvCi0gICAgICAgICMgICAgIChUb3RhbCBpbmNvbWluZyBieXRl
cyBvYnRhaW5lZCBhZnRlciBhcHBseWluZyB0aGlzIGZpbHRlcikKLSAgICAgICAgc2VsZi5faW5j
b21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3Io
KQotCi0gICAgZGVmIHNldF9iZmluYWwoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9iZmlu
YWwgPSB2YWx1ZQotCi0gICAgZGVmIHNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKHNlbGYs
IHZhbHVlKToKLSAgICAgICAgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZCA9IHZhbHVl
Ci0KLSAgICBkZWYgX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBkZWNv
bXByZXNzKToKLSAgICAgICAgaWYgbm90IGRlY29tcHJlc3M6Ci0gICAgICAgICAgICByZXR1cm4g
bWVzc2FnZQotCi0gICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSA9IGxlbihtZXNzYWdlKQot
ICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3Vs
dF9ieXRlcygKLSAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUpCi0KLSAgICAg
ICAgbWVzc2FnZSA9IHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIuZmlsdGVyKG1lc3NhZ2UpCi0KLSAg
ICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0gbGVuKG1lc3NhZ2UpCi0gICAgICAgIHNlbGYu
X2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0g
ICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIF9sb2dfaW5j
b21pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLAot
ICAgICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBm
aWx0ZXJlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZl
cmFnZV9yYXRpb19jYWxjdWxhdG9yLmdldF9hdmVyYWdlX3JhdGlvKCkpCi0KLSAgICAgICAgcmV0
dXJuIG1lc3NhZ2UKLQotICAgIGRlZiBfcHJvY2Vzc19vdXRnb2luZ19tZXNzYWdlKHNlbGYsIG1l
c3NhZ2UsIGVuZCwgYmluYXJ5KToKLSAgICAgICAgaWYgbm90IGJpbmFyeToKLSAgICAgICAgICAg
IG1lc3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRmLTgnKQotCi0gICAgICAgIGlmIG5vdCBzZWxm
Ll9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkOgotICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UK
LQotICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUgPSBsZW4obWVzc2FnZSkKLSAgICAgICAg
c2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRl
cygKLSAgICAgICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBtZXNzYWdl
ID0gc2VsZi5fcmZjMTk3OV9kZWZsYXRlci5maWx0ZXIoCi0gICAgICAgICAgICBtZXNzYWdlLCBl
bmQ9ZW5kLCBiZmluYWw9c2VsZi5fYmZpbmFsKQotCi0gICAgICAgIGZpbHRlcmVkX3BheWxvYWRf
c2l6ZSA9IGxlbihtZXNzYWdlKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlv
X2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAgIGZpbHRlcmVkX3BheWxv
YWRfc2l6ZSkKLQotICAgICAgICBfbG9nX291dGdvaW5nX2NvbXByZXNzaW9uX3JhdGlvKAotICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAgICAgICBvcmlnaW5hbF9wYXls
b2FkX3NpemUsCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAotICAgICAg
ICAgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5nZXRfYXZl
cmFnZV9yYXRpbygpKQotCi0gICAgICAgIGlmIG5vdCBzZWxmLl9jb21wcmVzc19vbmdvaW5nOgot
ICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyLnNldF9jb21wcmVzc2lvbl9i
aXQoKQotICAgICAgICBzZWxmLl9jb21wcmVzc19vbmdvaW5nID0gbm90IGVuZAotICAgICAgICBy
ZXR1cm4gbWVzc2FnZQotCi0gICAgZGVmIF9wcm9jZXNzX2luY29taW5nX2ZyYW1lKHNlbGYsIGZy
YW1lKToKLSAgICAgICAgaWYgZnJhbWUucnN2MSA9PSAxIGFuZCBub3QgY29tbW9uLmlzX2NvbnRy
b2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6Ci0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19tZXNz
YWdlX2ZpbHRlci5kZWNvbXByZXNzX25leHRfbWVzc2FnZSgpCi0gICAgICAgICAgICBmcmFtZS5y
c3YxID0gMAotCi0gICAgZGVmIF9wcm9jZXNzX291dGdvaW5nX2ZyYW1lKHNlbGYsIGZyYW1lLCBj
b21wcmVzc2lvbl9iaXQpOgotICAgICAgICBpZiAobm90IGNvbXByZXNzaW9uX2JpdCBvcgotICAg
ICAgICAgICAgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSkpOgotICAgICAg
ICAgICAgcmV0dXJuCi0KLSAgICAgICAgZnJhbWUucnN2MSA9IDEKLQotICAgIGRlZiBzZXR1cF9z
dHJlYW1fb3B0aW9ucyhzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgICIiIkNyZWF0ZXMg
ZmlsdGVycyBhbmQgc2V0cyB0aGVtIHRvIHRoZSBTdHJlYW1PcHRpb25zLiIiIgotCi0gICAgICAg
IGNsYXNzIF9PdXRnb2luZ01lc3NhZ2VGaWx0ZXIob2JqZWN0KToKLQotICAgICAgICAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0g
cGFyZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUs
IGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5fcHJv
Y2Vzc19vdXRnb2luZ19tZXNzYWdlKAotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLCBlbmQs
IGJpbmFyeSkKLQotICAgICAgICBjbGFzcyBfSW5jb21pbmdNZXNzYWdlRmlsdGVyKG9iamVjdCk6
Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgotICAgICAgICAgICAg
ICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotICAgICAgICAgICAgICAgIHNlbGYuX2RlY29tcHJl
c3NfbmV4dF9tZXNzYWdlID0gRmFsc2UKLQotICAgICAgICAgICAgZGVmIGRlY29tcHJlc3NfbmV4
dF9tZXNzYWdlKHNlbGYpOgotICAgICAgICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9t
ZXNzYWdlID0gVHJ1ZQotCi0gICAgICAgICAgICBkZWYgZmlsdGVyKHNlbGYsIG1lc3NhZ2UpOgot
ICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9wYXJlbnQuX3Byb2Nlc3NfaW5jb21pbmdf
bWVzc2FnZSgKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwgc2VsZi5fZGVjb21wcmVzc19u
ZXh0X21lc3NhZ2UpCi0gICAgICAgICAgICAgICAgc2VsZi5fZGVjb21wcmVzc19uZXh0X21lc3Nh
Z2UgPSBGYWxzZQotICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlCi0KLSAgICAgICAgc2Vs
Zi5fb3V0Z29pbmdfbWVzc2FnZV9maWx0ZXIgPSBfT3V0Z29pbmdNZXNzYWdlRmlsdGVyKHNlbGYp
Ci0gICAgICAgIHNlbGYuX2luY29taW5nX21lc3NhZ2VfZmlsdGVyID0gX0luY29taW5nTWVzc2Fn
ZUZpbHRlcihzZWxmKQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5vdXRnb2luZ19tZXNzYWdlX2Zp
bHRlcnMuYXBwZW5kKAotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfbWVzc2FnZV9maWx0ZXIp
Ci0gICAgICAgIHN0cmVhbV9vcHRpb25zLmluY29taW5nX21lc3NhZ2VfZmlsdGVycy5hcHBlbmQo
Ci0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcikKLQotICAgICAgICBj
bGFzcyBfT3V0Z29pbmdGcmFtZUZpbHRlcihvYmplY3QpOgotCi0gICAgICAgICAgICBkZWYgX19p
bml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJl
bnQKLSAgICAgICAgICAgICAgICBzZWxmLl9zZXRfY29tcHJlc3Npb25fYml0ID0gRmFsc2UKLQot
ICAgICAgICAgICAgZGVmIHNldF9jb21wcmVzc2lvbl9iaXQoc2VsZik6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9IFRydWUKLQotICAgICAgICAgICAgZGVmIGZp
bHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50Ll9wcm9jZXNz
X291dGdvaW5nX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBmcmFtZSwgc2VsZi5fc2V0X2Nv
bXByZXNzaW9uX2JpdCkKLSAgICAgICAgICAgICAgICBzZWxmLl9zZXRfY29tcHJlc3Npb25fYml0
ID0gRmFsc2UKLQotICAgICAgICBjbGFzcyBfSW5jb21pbmdGcmFtZUZpbHRlcihvYmplY3QpOgot
Ci0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAgICAg
ICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKLQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBm
cmFtZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50Ll9wcm9jZXNzX2luY29taW5nX2Zy
YW1lKGZyYW1lKQotCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciA9IF9PdXRn
b2luZ0ZyYW1lRmlsdGVyKHNlbGYpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRl
ciA9IF9JbmNvbWluZ0ZyYW1lRmlsdGVyKHNlbGYpCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLm91
dGdvaW5nX2ZyYW1lX2ZpbHRlcnMuYXBwZW5kKAotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdf
ZnJhbWVfZmlsdGVyKQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0
ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlcikKLQot
ICAgICAgICBzdHJlYW1fb3B0aW9ucy5lbmNvZGVfdGV4dF9tZXNzYWdlX3RvX3V0ZjggPSBGYWxz
ZQotCi0KLV9hdmFpbGFibGVfcHJvY2Vzc29yc1tjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VY
VEVOU0lPTl0gPSAoCi0gICAgICAgIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29y
KQotIyBUT0RPKHR5b3NoaW5vKTogUmVvcmdhbml6ZSBjbGFzcyBuYW1lcy4KLV9jb21wcmVzc2lv
bl9leHRlbnNpb25fbmFtZXMuYXBwZW5kKCdkZWZsYXRlJykKLQotCi1jbGFzcyBQZXJNZXNzYWdl
Q29tcHJlc3NFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgQ29tcHJlc3Npb25FeHRlbnNpb25Qcm9j
ZXNzb3JCYXNlKToKLSAgICAiIiJwZXJtZXNzYWdlLWNvbXByZXNzIGV4dGVuc2lvbiBwcm9jZXNz
b3IuCi0KLSAgICBTcGVjaWZpY2F0aW9uOgotICAgIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1s
L2RyYWZ0LWlldGYtaHliaS1wZXJtZXNzYWdlLWNvbXByZXNzaW9uCi0gICAgIiIiCi0KLSAgICBf
REVGTEFURV9NRVRIT0QgPSAnZGVmbGF0ZScKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1
ZXN0KToKLSAgICAgICAgQ29tcHJlc3Npb25FeHRlbnNpb25Qcm9jZXNzb3JCYXNlLl9faW5pdF9f
KHNlbGYsIHJlcXVlc3QpCi0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuIGNv
bW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTgotCi0gICAgZGVmIF9sb29rdXBf
Y29tcHJlc3Npb25fcHJvY2Vzc29yKHNlbGYsIG1ldGhvZF9kZXNjKToKLSAgICAgICAgaWYgbWV0
aG9kX2Rlc2MubmFtZSgpID09IHNlbGYuX0RFRkxBVEVfTUVUSE9EOgotICAgICAgICAgICAgcmV0
dXJuIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKG1ldGhvZF9kZXNjLCBGYWxz
ZSkKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotCi1fYXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9u
LlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OXSA9ICgKLSAgICBQZXJNZXNzYWdlQ29t
cHJlc3NFeHRlbnNpb25Qcm9jZXNzb3IpCi1fY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzLmFw
cGVuZChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04pCi0KLQotY2xhc3Mg
TXV4RXh0ZW5zaW9uUHJvY2Vzc29yKEV4dGVuc2lvblByb2Nlc3NvckludGVyZmFjZSk6Ci0gICAg
IiIiV2ViU29ja2V0IG11bHRpcGxleGluZyBleHRlbnNpb24gcHJvY2Vzc29yLiIiIgotCi0gICAg
X1FVT1RBX1BBUkFNID0gJ3F1b3RhJwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3Qp
OgotICAgICAgICBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UuX19pbml0X18oc2VsZiwgcmVx
dWVzdCkKLSAgICAgICAgc2VsZi5fcXVvdGEgPSAwCi0gICAgICAgIHNlbGYuX2V4dGVuc2lvbnMg
PSBbXQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBjb21tb24uTVVYX0VY
VEVOU0lPTgotCi0gICAgZGVmIGNoZWNrX2NvbnNpc3RlbmN5X3dpdGhfb3RoZXJfcHJvY2Vzc29y
cyhzZWxmLCBwcm9jZXNzb3JzKToKLSAgICAgICAgYmVmb3JlX211eCA9IFRydWUKLSAgICAgICAg
Zm9yIHByb2Nlc3NvciBpbiBwcm9jZXNzb3JzOgotICAgICAgICAgICAgbmFtZSA9IHByb2Nlc3Nv
ci5uYW1lKCkKLSAgICAgICAgICAgIGlmIG5hbWUgPT0gc2VsZi5uYW1lKCk6Ci0gICAgICAgICAg
ICAgICAgYmVmb3JlX211eCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAg
ICAgICAgIGlmIG5vdCBwcm9jZXNzb3IuaXNfYWN0aXZlKCk6Ci0gICAgICAgICAgICAgICAgY29u
dGludWUKLSAgICAgICAgICAgIGlmIGJlZm9yZV9tdXg6Ci0gICAgICAgICAgICAgICAgIyBNdXgg
ZXh0ZW5zaW9uIGNhbm5vdCBiZSB1c2VkIGFmdGVyIGV4dGVuc2lvbnMKLSAgICAgICAgICAgICAg
ICAjIHRoYXQgZGVwZW5kIG9uIGZyYW1lIGJvdW5kYXJ5LCBleHRlbnNpb24gZGF0YSBmaWVsZCwg
b3IgYW55Ci0gICAgICAgICAgICAgICAgIyByZXNlcnZlZCBiaXRzIHdoaWNoIGFyZSBhdHRyaWJ1
dGVkIHRvIGVhY2ggZnJhbWUuCi0gICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gY29tbW9uLkRF
RkxBVEVfRlJBTUVfRVhURU5TSU9OIG9yCi0gICAgICAgICAgICAgICAgICAgIG5hbWUgPT0gY29t
bW9uLlhfV0VCS0lUX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKToKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5zZXRfYWN0aXZlKEZhbHNlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBNdXggZXh0ZW5zaW9uIHNob3VsZCBu
b3QgYmUgYXBwbGllZCBiZWZvcmUgYW55IGhpc3RvcnktYmFzZWQKLSAgICAgICAgICAgICAgICAj
IGNvbXByZXNzaW9uIGV4dGVuc2lvbi4KLSAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSBjb21t
b24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04gb3IKLSAgICAgICAgICAgICAgICAgICAgbmFtZSA9
PSBjb21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04gb3IKLSAgICAgICAgICAg
ICAgICAgICAgbmFtZSA9PSBjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04g
b3IKLSAgICAgICAgICAgICAgICAgICAgbmFtZSA9PSBjb21tb24uWF9XRUJLSVRfUEVSTUVTU0FH
RV9DT01QUkVTU0lPTl9FWFRFTlNJT04pOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnNldF9h
Y3RpdmUoRmFsc2UpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgZGVmIF9nZXRf
ZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgotICAgICAgICBzZWxmLl9hY3RpdmUg
PSBGYWxzZQotICAgICAgICBxdW90YSA9IHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1
ZShzZWxmLl9RVU9UQV9QQVJBTSkKLSAgICAgICAgaWYgcXVvdGEgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcXVvdGEgPSBpbnQocXVvdGEpCi0gICAgICAg
ICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQot
ICAgICAgICAgICAgaWYgcXVvdGEgPCAwIG9yIHF1b3RhID49IDIgKiogMzI6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIHNlbGYuX3F1b3RhID0gcXVvdGEKLQotICAg
ICAgICBzZWxmLl9hY3RpdmUgPSBUcnVlCi0gICAgICAgIHJldHVybiBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKGNvbW1vbi5NVVhfRVhURU5TSU9OKQotCi0gICAgZGVmIF9zZXR1cF9zdHJlYW1f
b3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIHBhc3MKLQot
ICAgIGRlZiBzZXRfcXVvdGEoc2VsZiwgcXVvdGEpOgotICAgICAgICBzZWxmLl9xdW90YSA9IHF1
b3RhCi0KLSAgICBkZWYgcXVvdGEoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9xdW90YQot
Ci0gICAgZGVmIHNldF9leHRlbnNpb25zKHNlbGYsIGV4dGVuc2lvbnMpOgotICAgICAgICBzZWxm
Ll9leHRlbnNpb25zID0gZXh0ZW5zaW9ucwotCi0gICAgZGVmIGV4dGVuc2lvbnMoc2VsZik6Ci0g
ICAgICAgIHJldHVybiBzZWxmLl9leHRlbnNpb25zCi0KLQotX2F2YWlsYWJsZV9wcm9jZXNzb3Jz
W2NvbW1vbi5NVVhfRVhURU5TSU9OXSA9IE11eEV4dGVuc2lvblByb2Nlc3NvcgotCi0KLWRlZiBn
ZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcihleHRlbnNpb25fcmVxdWVzdCk6Ci0gICAgIiIiR2l2ZW4g
YW4gRXh0ZW5zaW9uUGFyYW1ldGVyIHJlcHJlc2VudGluZyBhbiBleHRlbnNpb24gb2ZmZXIgcmVj
ZWl2ZWQKLSAgICBmcm9tIGEgY2xpZW50LCBjb25maWd1cmVzIGFuZCByZXR1cm5zIGFuIGluc3Rh
bmNlIG9mIHRoZSBjb3JyZXNwb25kaW5nCi0gICAgZXh0ZW5zaW9uIHByb2Nlc3NvciBjbGFzcy4K
LSAgICAiIiIKLQotICAgIHByb2Nlc3Nvcl9jbGFzcyA9IF9hdmFpbGFibGVfcHJvY2Vzc29ycy5n
ZXQoZXh0ZW5zaW9uX3JlcXVlc3QubmFtZSgpKQotICAgIGlmIHByb2Nlc3Nvcl9jbGFzcyBpcyBO
b25lOgotICAgICAgICByZXR1cm4gTm9uZQotICAgIHJldHVybiBwcm9jZXNzb3JfY2xhc3MoZXh0
ZW5zaW9uX3JlcXVlc3QpCi0KLQotZGVmIGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbihleHRlbnNp
b25fbmFtZSk6Ci0gICAgcmV0dXJuIGV4dGVuc2lvbl9uYW1lIGluIF9jb21wcmVzc2lvbl9leHRl
bnNpb25fbmFtZXMKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tpbmcuaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tl
dC9mYXN0X21hc2tpbmcuaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGRhYWQyN2Y1
M2M0NmJlMmE3MWM3MDRjNzA4ZmJiM2Y0MmYxYTNkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNr
aW5nLmkKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxMywg
R29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0v
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8v
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotJW1vZHVsZSBmYXN0X21hc2tpbmcKLQotJWlu
Y2x1ZGUgImNzdHJpbmcuaSIKLQotJXsKLSNpbmNsdWRlIDxjc3RyaW5nPgotCi0jaWZkZWYgX19T
U0UyX18KLSNpbmNsdWRlIDxlbW1pbnRyaW4uaD4KLSNlbmRpZgotJX0KLQotJWFwcGx5IChjaGFy
ICpTVFJJTkcsIGludCBMRU5HVEgpIHsKLSAgICAoY29uc3QgY2hhciogcGF5bG9hZCwgaW50IHBh
eWxvYWRfbGVuZ3RoKSwKLSAgICAoY29uc3QgY2hhciogbWFza2luZ19rZXksIGludCBtYXNraW5n
X2tleV9sZW5ndGgpIH07Ci0lY3N0cmluZ19vdXRwdXRfYWxsb2NhdGVfc2l6ZSgKLSAgICBjaGFy
KiogcmVzdWx0LCBpbnQqIHJlc3VsdF9sZW5ndGgsIGRlbGV0ZSBbXSAqJDEpOwotCi0laW5saW5l
ICV7Ci0KLXZvaWQgbWFzaygKLSAgICBjb25zdCBjaGFyKiBwYXlsb2FkLCBpbnQgcGF5bG9hZF9s
ZW5ndGgsCi0gICAgY29uc3QgY2hhciogbWFza2luZ19rZXksIGludCBtYXNraW5nX2tleV9sZW5n
dGgsCi0gICAgaW50IG1hc2tpbmdfa2V5X2luZGV4LAotICAgIGNoYXIqKiByZXN1bHQsIGludCog
cmVzdWx0X2xlbmd0aCkgewotICAqcmVzdWx0ID0gbmV3IGNoYXJbcGF5bG9hZF9sZW5ndGhdOwot
ICAqcmVzdWx0X2xlbmd0aCA9IHBheWxvYWRfbGVuZ3RoOwotICBtZW1jcHkoKnJlc3VsdCwgcGF5
bG9hZCwgcGF5bG9hZF9sZW5ndGgpOwotCi0gIGNoYXIqIGN1cnNvciA9ICpyZXN1bHQ7Ci0gIGNo
YXIqIGN1cnNvcl9lbmQgPSAqcmVzdWx0ICsgKnJlc3VsdF9sZW5ndGg7Ci0KLSNpZmRlZiBfX1NT
RTJfXwotICB3aGlsZSAoKGN1cnNvciA8IGN1cnNvcl9lbmQpICYmCi0gICAgICAgICAocmVpbnRl
cnByZXRfY2FzdDxzaXplX3Q+KGN1cnNvcikgJiAweGYpKSB7Ci0gICAgKmN1cnNvciBePSBtYXNr
aW5nX2tleVttYXNraW5nX2tleV9pbmRleF07Ci0gICAgKytjdXJzb3I7Ci0gICAgbWFza2luZ19r
ZXlfaW5kZXggPSAobWFza2luZ19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdfa2V5X2xlbmd0aDsK
LSAgfQotICBpZiAoY3Vyc29yID09IGN1cnNvcl9lbmQpIHsKLSAgICByZXR1cm47Ci0gIH0KLQot
ICBjb25zdCBpbnQga0Jsb2NrU2l6ZSA9IDE2OwotICBfX20xMjhpIG1hc2tpbmdfa2V5X2Jsb2Nr
OwotICBmb3IgKGludCBpID0gMDsgaSA8IGtCbG9ja1NpemU7ICsraSkgewotICAgICoocmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4oJm1hc2tpbmdfa2V5X2Jsb2NrKSArIGkpID0KLSAgICAgICAgbWFz
a2luZ19rZXlbbWFza2luZ19rZXlfaW5kZXhdOwotICAgIG1hc2tpbmdfa2V5X2luZGV4ID0gKG1h
c2tpbmdfa2V5X2luZGV4ICsgMSkgJSBtYXNraW5nX2tleV9sZW5ndGg7Ci0gIH0KLQotICB3aGls
ZSAoY3Vyc29yICsga0Jsb2NrU2l6ZSA8PSBjdXJzb3JfZW5kKSB7Ci0gICAgX19tMTI4aSBwYXls
b2FkX2Jsb2NrID0KLSAgICAgICAgX21tX2xvYWRfc2kxMjgocmVpbnRlcnByZXRfY2FzdDxfX20x
MjhpKj4oY3Vyc29yKSk7Ci0gICAgX21tX3N0cmVhbV9zaTEyOChyZWludGVycHJldF9jYXN0PF9f
bTEyOGkqPihjdXJzb3IpLAotICAgICAgICAgICAgICAgICAgICAgX21tX3hvcl9zaTEyOChwYXls
b2FkX2Jsb2NrLCBtYXNraW5nX2tleV9ibG9jaykpOwotICAgIGN1cnNvciArPSBrQmxvY2tTaXpl
OwotICB9Ci0jZW5kaWYKLQotICB3aGlsZSAoY3Vyc29yIDwgY3Vyc29yX2VuZCkgewotICAgICpj
dXJzb3IgXj0gbWFza2luZ19rZXlbbWFza2luZ19rZXlfaW5kZXhdOwotICAgICsrY3Vyc29yOwot
ICAgIG1hc2tpbmdfa2V5X2luZGV4ID0gKG1hc2tpbmdfa2V5X2luZGV4ICsgMSkgJSBtYXNraW5n
X2tleV9sZW5ndGg7Ci0gIH0KLX0KLQotJX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdl
YnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQv
aGFuZHNoYWtlL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTRm
NmIzOTVhZTIzYjNhMTM2NDFjZDRiOTA0ZjU5MzVkMWZhMWYyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5k
c2hha2UvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotIyBDb3B5
cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLQotIiIiV2ViU29ja2V0IG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3Nvci4g
VGhpcyBjbGFzcyB0cnkgdG8gYXBwbHkgYXZhaWxhYmxlCi1vcGVuaW5nIGhhbmRzaGFrZSBwcm9j
ZXNzb3JzIGZvciBlYWNoIHByb3RvY29sIHZlcnNpb24gdW50aWwgYSBjb25uZWN0aW9uIGlzCi1z
dWNjZXNzZnVsbHkgZXN0YWJsaXNoZWQuCi0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwotCi1mcm9t
IG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5k
c2hha2UgaW1wb3J0IGh5YmkwMAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlIGltcG9y
dCBoeWJpCi0jIEV4cG9ydCBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBIYW5kc2hha2VFeGNlcHRp
b24sIGFuZCBWZXJzaW9uRXhjZXB0aW9uCi0jIHN5bWJvbCBmcm9tIHRoaXMgbW9kdWxlLgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBBYm9ydGVkQnlVc2VyRXhj
ZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRz
aGFrZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9y
dCBWZXJzaW9uRXhjZXB0aW9uCi0KLQotX0xPR0dFUiA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt
ZV9fKQotCi0KLWRlZiBkb19oYW5kc2hha2UocmVxdWVzdCwgZGlzcGF0Y2hlciwgYWxsb3dEcmFm
dDc1PUZhbHNlLCBzdHJpY3Q9RmFsc2UpOgotICAgICIiIlBlcmZvcm1zIFdlYlNvY2tldCBoYW5k
c2hha2UuCi0KLSAgICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3Qu
Ci0gICAgICAgIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgot
ICAgICAgICBhbGxvd0RyYWZ0NzU6IG9ic29sZXRlIGFyZ3VtZW50LiBpZ25vcmVkLgotICAgICAg
ICBzdHJpY3Q6IG9ic29sZXRlIGFyZ3VtZW50LiBpZ25vcmVkLgotCi0gICAgSGFuZHNoYWtlciB3
aWxsIGFkZCBhdHRyaWJ1dGVzIHN1Y2ggYXMgd3NfcmVzb3VyY2UgaW4gcGVyZm9ybWluZwotICAg
IGhhbmRzaGFrZS4KLSAgICAiIiIKLQotICAgIF9MT0dHRVIuZGVidWcoJ0NsaWVudFwncyBvcGVu
aW5nIGhhbmRzaGFrZSByZXNvdXJjZTogJXInLCByZXF1ZXN0LnVyaSkKLSAgICAjIFRvIHByaW50
IG1pbWV0b29scy5NZXNzYWdlIGFzIGVzY2FwZWQgb25lLWxpbmUgc3RyaW5nLCB3ZSBjb252ZXJ0
cwotICAgICMgaGVhZGVyc19pbiB0byBkaWN0IG9iamVjdC4gV2l0aG91dCBjb252ZXJzaW9uLCBp
ZiB3ZSB1c2UgJXIsIGl0IGp1c3QKLSAgICAjIHByaW50cyB0aGUgdHlwZSBhbmQgYWRkcmVzcywg
YW5kIGlmIHdlIHVzZSAlcywgaXQgcHJpbnRzIHRoZSBvcmlnaW5hbAotICAgICMgaGVhZGVyIHN0
cmluZyBhcyBtdWx0aXBsZSBsaW5lcy4KLSAgICAjCi0gICAgIyBCb3RoIG1pbWV0b29scy5NZXNz
YWdlIGFuZCBNcFRhYmxlX1R5cGUgb2YgbW9kX3B5dGhvbiBjYW4gYmUKLSAgICAjIGNvbnZlcnRl
ZCB0byBkaWN0LgotICAgICMKLSAgICAjIG1pbWV0b29scy5NZXNzYWdlLl9fc3RyX18gcmV0dXJu
cyB0aGUgb3JpZ2luYWwgaGVhZGVyIHN0cmluZy4KLSAgICAjIGRpY3QobWltZXRvb2xzLk1lc3Nh
Z2Ugb2JqZWN0KSByZXR1cm5zIHRoZSBtYXAgZnJvbSBoZWFkZXIgbmFtZXMgdG8KLSAgICAjIGhl
YWRlciB2YWx1ZXMuIFdoaWxlIE1wVGFibGVfVHlwZSBkb2Vzbid0IGhhdmUgc3VjaCBfX3N0cl9f
IGJ1dCBqdXN0Ci0gICAgIyBfX3JlcHJfXyB3aGljaCBmb3JtYXRzIGl0c2VsZiBhcyB3ZWxsIGFz
IGRpY3Rpb25hcnkgb2JqZWN0LgotICAgIF9MT0dHRVIuZGVidWcoCi0gICAgICAgICdDbGllbnRc
J3Mgb3BlbmluZyBoYW5kc2hha2UgaGVhZGVyczogJXInLCBkaWN0KHJlcXVlc3QuaGVhZGVyc19p
bikpCi0KLSAgICBoYW5kc2hha2VycyA9IFtdCi0gICAgaGFuZHNoYWtlcnMuYXBwZW5kKAotICAg
ICAgICAoJ1JGQyA2NDU1JywgaHliaS5IYW5kc2hha2VyKHJlcXVlc3QsIGRpc3BhdGNoZXIpKSkK
LSAgICBoYW5kc2hha2Vycy5hcHBlbmQoCi0gICAgICAgICgnSHlCaSAwMCcsIGh5YmkwMC5IYW5k
c2hha2VyKHJlcXVlc3QsIGRpc3BhdGNoZXIpKSkKLQotICAgIGZvciBuYW1lLCBoYW5kc2hha2Vy
IGluIGhhbmRzaGFrZXJzOgotICAgICAgICBfTE9HR0VSLmRlYnVnKCdUcnlpbmcgcHJvdG9jb2wg
dmVyc2lvbiAlcycsIG5hbWUpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhhbmRzaGFrZXIu
ZG9faGFuZHNoYWtlKCkKLSAgICAgICAgICAgIF9MT0dHRVIuaW5mbygnRXN0YWJsaXNoZWQgKCVz
IHByb3RvY29sKScsIG5hbWUpCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgZXhjZXB0IEhh
bmRzaGFrZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIF9MT0dHRVIuZGVidWcoCi0gICAgICAg
ICAgICAgICAgJ0ZhaWxlZCB0byBjb21wbGV0ZSBvcGVuaW5nIGhhbmRzaGFrZSBhcyAlcyBwcm90
b2NvbDogJXInLAotICAgICAgICAgICAgICAgIG5hbWUsIGUpCi0gICAgICAgICAgICBpZiBlLnN0
YXR1czoKLSAgICAgICAgICAgICAgICByYWlzZSBlCi0gICAgICAgIGV4Y2VwdCBBYm9ydGVkQnlV
c2VyRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0IFZlcnNp
b25FeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICByYWlzZQotCi0gICAgIyBUT0RPKHRveW9zaGlt
KTogQWRkIGEgdGVzdCB0byBjb3ZlciB0aGUgY2FzZSBhbGwgaGFuZHNoYWtlcnMgZmFpbC4KLSAg
ICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICdGYWlsZWQgdG8gY29tcGxldGUg
b3BlbmluZyBoYW5kc2hha2UgZm9yIGFsbCBhdmFpbGFibGUgcHJvdG9jb2xzJywKLSAgICAgICAg
c3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKLQotCi0jIHZpOnN0cz00IHN3
PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jh
c2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19iYXNlLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTkzYTU4NGI3YjNlNTJiNjA3YjY1YmYzOGFmZGNh
ZGRjYTJmZTc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwxODIgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0
OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiQ29tbW9uIGZ1bmN0
aW9ucyBhbmQgZXhjZXB0aW9ucyB1c2VkIGJ5IFdlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZQot
cHJvY2Vzc29ycy4KLSIiIgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBodHRwX2hlYWRlcl91dGlsCi0KLQotY2xhc3Mg
QWJvcnRlZEJ5VXNlckV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIkV4Y2VwdGlvbiBmb3Ig
YWJvcnRpbmcgYSBjb25uZWN0aW9uIGludGVudGlvbmFsbHkuCi0KLSAgICBJZiB0aGlzIGV4Y2Vw
dGlvbiBpcyByYWlzZWQgaW4gZG9fZXh0cmFfaGFuZHNoYWtlIGhhbmRsZXIsIHRoZSBjb25uZWN0
aW9uCi0gICAgd2lsbCBiZSBhYmFuZG9uZWQuIE5vIG90aGVyIFdlYlNvY2tldCBvciBIVFRQKFMp
IGhhbmRsZXIgd2lsbCBiZSBpbnZva2VkLgotCi0gICAgSWYgdGhpcyBleGNlcHRpb24gaXMgcmFp
c2VkIGluIHRyYW5zZmVyX2RhdGFfaGFuZGxlciwgdGhlIGNvbm5lY3Rpb24gd2lsbAotICAgIGJl
IGNsb3NlZCB3aXRob3V0IGNsb3NpbmcgaGFuZHNoYWtlLiBObyBvdGhlciBXZWJTb2NrZXQgb3Ig
SFRUUChTKSBoYW5kbGVyCi0gICAgd2lsbCBiZSBpbnZva2VkLgotICAgICIiIgotCi0gICAgcGFz
cwotCi0KLWNsYXNzIEhhbmRzaGFrZUV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIlRoaXMg
ZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gYW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJv
Y2Vzc2luZwotICAgIFdlYlNvY2tldCBpbml0aWFsIGhhbmRzaGFrZS4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdGF0dXM9Tm9uZSk6Ci0gICAgICAgIHN1cGVyKEhh
bmRzaGFrZUV4Y2VwdGlvbiwgc2VsZikuX19pbml0X18obmFtZSkKLSAgICAgICAgc2VsZi5zdGF0
dXMgPSBzdGF0dXMKLQotCi1jbGFzcyBWZXJzaW9uRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAg
IiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiBhIHZlcnNpb24gb2YgY2xpZW50
IHJlcXVlc3QgZG9lcyBub3QKLSAgICBtYXRjaCB3aXRoIHZlcnNpb24gdGhlIHNlcnZlciBzdXBw
b3J0cy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdXBwb3J0ZWRf
dmVyc2lvbnM9JycpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIHN1cHBvcnRlZF92ZXJzaW9uOiBhIHN0ciBvYmplY3QgdG8g
c2hvdyBzdXBwb3J0ZWQgaHliaSB2ZXJzaW9ucy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZS5nLiAnOCwgMTMnKQotICAgICAgICAiIiIKLSAgICAgICAgc3VwZXIoVmVyc2lvbkV4
Y2VwdGlvbiwgc2VsZikuX19pbml0X18obmFtZSkKLSAgICAgICAgc2VsZi5zdXBwb3J0ZWRfdmVy
c2lvbnMgPSBzdXBwb3J0ZWRfdmVyc2lvbnMKLQotCi1kZWYgZ2V0X2RlZmF1bHRfcG9ydChpc19z
ZWN1cmUpOgotICAgIGlmIGlzX3NlY3VyZToKLSAgICAgICAgcmV0dXJuIGNvbW1vbi5ERUZBVUxU
X1dFQl9TT0NLRVRfU0VDVVJFX1BPUlQKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gY29tbW9u
LkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUCi0KLQotZGVmIHZhbGlkYXRlX3N1YnByb3RvY29sKHN1
YnByb3RvY29sKToKLSAgICAiIiJWYWxpZGF0ZSBhIHZhbHVlIGluIHRoZSBTZWMtV2ViU29ja2V0
LVByb3RvY29sIGZpZWxkLgotCi0gICAgU2VlIHRoZSBTZWN0aW9uIDQuMS4sIDQuMi4yLiwgYW5k
IDQuMy4gb2YgUkZDIDY0NTUuCi0gICAgIiIiCi0KLSAgICBpZiBub3Qgc3VicHJvdG9jb2w6Ci0g
ICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSW52YWxpZCBzdWJwcm90b2NvbCBuYW1l
OiBlbXB0eScpCi0KLSAgICAjIFBhcmFtZXRlciBzaG91bGQgYmUgZW5jb2RlZCBIVFRQIHRva2Vu
LgotICAgIHN0YXRlID0gaHR0cF9oZWFkZXJfdXRpbC5QYXJzaW5nU3RhdGUoc3VicHJvdG9jb2wp
Ci0gICAgdG9rZW4gPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCi0gICAg
cmVzdCA9IGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkKLSAgICAjIElmIHxyZXN0fCBpcyBu
b3QgTm9uZSwgfHN1YnByb3RvY29sfCBpcyBub3Qgb25lIHRva2VuIG9yIGludmFsaWQuIElmCi0g
ICAgIyB8cmVzdHwgaXMgTm9uZSwgfHRva2VufCBtdXN0IG5vdCBiZSBOb25lIGJlY2F1c2UgfHN1
YnByb3RvY29sfCBpcwotICAgICMgY29uY2F0ZW5hdGlvbiBvZiB8dG9rZW58IGFuZCB8cmVzdHwg
YW5kIGlzIG5vdCBOb25lLgotICAgIGlmIHJlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgIHJhaXNl
IEhhbmRzaGFrZUV4Y2VwdGlvbignSW52YWxpZCBub24tdG9rZW4gc3RyaW5nIGluIHN1YnByb3Rv
Y29sICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lOiAlcicgJSByZXN0
KQotCi0KLWRlZiBwYXJzZV9ob3N0X2hlYWRlcihyZXF1ZXN0KToKLSAgICBmaWVsZHMgPSByZXF1
ZXN0LmhlYWRlcnNfaW5bY29tbW9uLkhPU1RfSEVBREVSXS5zcGxpdCgnOicsIDEpCi0gICAgaWYg
bGVuKGZpZWxkcykgPT0gMToKLSAgICAgICAgcmV0dXJuIGZpZWxkc1swXSwgZ2V0X2RlZmF1bHRf
cG9ydChyZXF1ZXN0LmlzX2h0dHBzKCkpCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gZmllbGRz
WzBdLCBpbnQoZmllbGRzWzFdKQotICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICBy
YWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFsaWQgcG9ydCBudW1iZXIgZm9ybWF0OiAlcicg
JSBlKQotCi0KLWRlZiBmb3JtYXRfaGVhZGVyKG5hbWUsIHZhbHVlKToKLSAgICByZXR1cm4gJyVz
OiAlc1xyXG4nICUgKG5hbWUsIHZhbHVlKQotCi0KLWRlZiBnZXRfbWFuZGF0b3J5X2hlYWRlcihy
ZXF1ZXN0LCBrZXkpOgotICAgIHZhbHVlID0gcmVxdWVzdC5oZWFkZXJzX2luLmdldChrZXkpCi0g
ICAgaWYgdmFsdWUgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdI
ZWFkZXIgJXMgaXMgbm90IGRlZmluZWQnICUga2V5KQotICAgIHJldHVybiB2YWx1ZQotCi0KLWRl
ZiB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKHJlcXVlc3QsIGtleSwgZXhwZWN0ZWRfdmFsdWUs
IGZhaWxfc3RhdHVzPU5vbmUpOgotICAgIHZhbHVlID0gZ2V0X21hbmRhdG9yeV9oZWFkZXIocmVx
dWVzdCwga2V5KQotCi0gICAgaWYgdmFsdWUubG93ZXIoKSAhPSBleHBlY3RlZF92YWx1ZS5sb3dl
cigpOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAnRXhw
ZWN0ZWQgJXIgZm9yIGhlYWRlciAlcyBidXQgZm91bmQgJXIgKGNhc2UtaW5zZW5zaXRpdmUpJyAl
Ci0gICAgICAgICAgICAoZXhwZWN0ZWRfdmFsdWUsIGtleSwgdmFsdWUpLCBzdGF0dXM9ZmFpbF9z
dGF0dXMpCi0KLQotZGVmIGNoZWNrX3JlcXVlc3RfbGluZShyZXF1ZXN0KToKLSAgICAjIDUuMSAx
LiBUaGUgdGhyZWUgY2hhcmFjdGVyIFVURi04IHN0cmluZyAiR0VUIi4KLSAgICAjIDUuMSAyLiBB
IFVURi04LWVuY29kZWQgVSswMDIwIFNQQUNFIGNoYXJhY3RlciAoMHgyMCBieXRlKS4KLSAgICBp
ZiByZXF1ZXN0Lm1ldGhvZCAhPSAnR0VUJzoKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0
aW9uKCdNZXRob2QgaXMgbm90IEdFVDogJXInICUgcmVxdWVzdC5tZXRob2QpCi0KLSAgICBpZiBy
ZXF1ZXN0LnByb3RvY29sICE9ICdIVFRQLzEuMSc6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4
Y2VwdGlvbignVmVyc2lvbiBpcyBub3QgSFRUUC8xLjE6ICVyJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LnByb3RvY29sKQotCi0KLWRlZiBwYXJzZV90b2tlbl9s
aXN0KGRhdGEpOgotICAgICIiIlBhcnNlcyBhIGhlYWRlciB2YWx1ZSB3aGljaCBmb2xsb3dzIDEj
dG9rZW4gYW5kIHJldHVybnMgcGFyc2VkIGVsZW1lbnRzCi0gICAgYXMgYSBsaXN0IG9mIHN0cmlu
Z3MuCi0KLSAgICBMZWFkaW5nIExXU2VzIG11c3QgYmUgdHJpbW1lZC4KLSAgICAiIiIKLQotICAg
IHN0YXRlID0gaHR0cF9oZWFkZXJfdXRpbC5QYXJzaW5nU3RhdGUoZGF0YSkKLQotICAgIHRva2Vu
X2xpc3QgPSBbXQotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgdG9rZW4gPSBodHRwX2hlYWRl
cl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCi0gICAgICAgIGlmIHRva2VuIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgdG9rZW5fbGlzdC5hcHBlbmQodG9rZW4pCi0KLSAgICAgICAgaHR0cF9o
ZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgICAgIGlmIGh0dHBfaGVhZGVy
X3V0aWwucGVlayhzdGF0ZSkgaXMgTm9uZToKLSAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAg
aWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJpbmcoc3RhdGUsICcsJyk6Ci0gICAg
ICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0V4cGVj
dGVkIGEgY29tbWEgYnV0IGZvdW5kICVyJyAlIGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkp
Ci0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAg
aWYgbGVuKHRva2VuX2xpc3QpID09IDA6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlv
bignTm8gdmFsaWQgdG9rZW4gZm91bmQnKQotCi0gICAgcmV0dXJuIHRva2VuX2xpc3QKLQotCi0j
IHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9o
YW5kc2hha2UvaHliaS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHli
aS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWFkMTBlYTM3MjgyOWQwOTNkNjZl
NmFjNjBhY2NjZDljMWNhZWZiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw0MjAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhp
cyBmaWxlIHByb3ZpZGVzIHRoZSBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBX
ZWJTb2NrZXQKLXByb3RvY29sIChSRkMgNjQ1NSkuCi0KLVNwZWNpZmljYXRpb246Ci1odHRwOi8v
dG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU1Ci0iIiIKLQotCi0jIE5vdGU6IHJlcXVlc3QuY29u
bmVjdGlvbi53cml0ZSBpcyB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaCBtb2RfcHl0
aG9uCi0jIGRvY3VtZW50IHNheXMgdGhhdCBpdCBzaG91bGQgYmUgdXNlZCBvbmx5IGluIGNvbm5l
Y3Rpb24gaGFuZGxlcnMuCi0jIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9u
cy4gRm9yIGV4YW1wbGUsIHJlcXVlc3Qud3JpdGUgaXMgbm90Ci0jIHN1aXRhYmxlIGJlY2F1c2Ug
aXQgZG9lc24ndCBhbGxvdyBkaXJlY3QgcmF3IGJ5dGVzIHdyaXRpbmcuCi0KLQotaW1wb3J0IGJh
c2U2NAotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHJlCi0KLWZyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMg
aW1wb3J0IGdldF9leHRlbnNpb25fcHJvY2Vzc29yCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRl
bnNpb25zIGltcG9ydCBpc19jb21wcmVzc2lvbl9leHRlbnNpb24KLWZyb20gbW9kX3B5d2Vic29j
a2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgY2hlY2tfcmVxdWVzdF9saW5lCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGZvcm1hdF9oZWFkZXIKLWZyb20gbW9k
X3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZ2V0X21hbmRhdG9yeV9oZWFkZXIK
LWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhj
ZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHBhcnNl
X3Rva2VuX2xpc3QKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQg
dmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtl
Ll9iYXNlIGltcG9ydCB2YWxpZGF0ZV9zdWJwcm90b2NvbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
aGFuZHNoYWtlLl9iYXNlIGltcG9ydCBWZXJzaW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGlt
cG9ydCBTdHJlYW1PcHRpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0K
LSMgVXNlZCB0byB2YWxpZGF0ZSB0aGUgdmFsdWUgaW4gdGhlIFNlYy1XZWJTb2NrZXQtS2V5IGhl
YWRlciBzdHJpY3RseS4gUkZDIDQ2NDgKLSMgZGlzYWxsb3dzIG5vbi16ZXJvIHBhZGRpbmcsIHNv
IHRoZSBjaGFyYWN0ZXIgcmlnaHQgYmVmb3JlID09IG11c3QgYmUgYW55IG9mCi0jIEEsIFEsIGcg
YW5kIHcuCi1fU0VDX1dFQlNPQ0tFVF9LRVlfUkVHRVggPSByZS5jb21waWxlKCdeWysvMC05QS1a
YS16XXsyMX1bQVFnd109PSQnKQotCi0jIERlZmluaW5nIGFsaWFzZXMgZm9yIHZhbHVlcyB1c2Vk
IGZyZXF1ZW50bHkuCi1fVkVSU0lPTl9MQVRFU1QgPSBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVT
VAotX1ZFUlNJT05fTEFURVNUX1NUUklORyA9IHN0cihfVkVSU0lPTl9MQVRFU1QpCi1fU1VQUE9S
VEVEX1ZFUlNJT05TID0gWwotICAgIF9WRVJTSU9OX0xBVEVTVCwKLV0KLQotCi1kZWYgY29tcHV0
ZV9hY2NlcHQoa2V5KToKLSAgICAiIiJDb21wdXRlcyB2YWx1ZSBmb3IgdGhlIFNlYy1XZWJTb2Nr
ZXQtQWNjZXB0IGhlYWRlciBmcm9tIHZhbHVlIG9mIHRoZQotICAgIFNlYy1XZWJTb2NrZXQtS2V5
IGhlYWRlci4KLSAgICAiIiIKLQotICAgIGFjY2VwdF9iaW5hcnkgPSB1dGlsLnNoYTFfaGFzaCgK
LSAgICAgICAga2V5ICsgY29tbW9uLldFQlNPQ0tFVF9BQ0NFUFRfVVVJRCkuZGlnZXN0KCkKLSAg
ICBhY2NlcHQgPSBiYXNlNjQuYjY0ZW5jb2RlKGFjY2VwdF9iaW5hcnkpCi0KLSAgICByZXR1cm4g
KGFjY2VwdCwgYWNjZXB0X2JpbmFyeSkKLQotCi1jbGFzcyBIYW5kc2hha2VyKG9iamVjdCk6Ci0g
ICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3Rv
Y29sIChSRkMgNjQ1NSkuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlz
cGF0Y2hlcik6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBB
cmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAg
ICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlciAoZGlzcGF0Y2guRGlzcGF0Y2hlcikuCi0KLSAgICAg
ICAgSGFuZHNoYWtlciB3aWxsIGFkZCBhdHRyaWJ1dGVzIHN1Y2ggYXMgd3NfcmVzb3VyY2UgZHVy
aW5nIGhhbmRzaGFrZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRp
bC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVl
c3QKLSAgICAgICAgc2VsZi5fZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXIKLQotICAgIGRlZiBfdmFs
aWRhdGVfY29ubmVjdGlvbl9oZWFkZXIoc2VsZik6Ci0gICAgICAgIGNvbm5lY3Rpb24gPSBnZXRf
bWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QsIGNvbW1vbi5DT05O
RUNUSU9OX0hFQURFUikKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb25uZWN0aW9uX3Rv
a2VucyA9IHBhcnNlX3Rva2VuX2xpc3QoY29ubmVjdGlvbikKLSAgICAgICAgZXhjZXB0IEhhbmRz
aGFrZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHBhcnNlICVzOiAlcycgJSAoY29tbW9uLkNPTk5F
Q1RJT05fSEVBREVSLCBlKSkKLQotICAgICAgICBjb25uZWN0aW9uX2lzX3ZhbGlkID0gRmFsc2UK
LSAgICAgICAgZm9yIHRva2VuIGluIGNvbm5lY3Rpb25fdG9rZW5zOgotICAgICAgICAgICAgaWYg
dG9rZW4ubG93ZXIoKSA9PSBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUubG93ZXIoKToK
LSAgICAgICAgICAgICAgICBjb25uZWN0aW9uX2lzX3ZhbGlkID0gVHJ1ZQotICAgICAgICAgICAg
ICAgIGJyZWFrCi0gICAgICAgIGlmIG5vdCBjb25uZWN0aW9uX2lzX3ZhbGlkOgotICAgICAgICAg
ICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICclcyBoZWFkZXIg
ZG9lc25cJ3QgY29udGFpbiAiJXMiJyAlCi0gICAgICAgICAgICAgICAgKGNvbW1vbi5DT05ORUNU
SU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFKSkKLQotICAgIGRlZiBk
b19oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSA9
IE5vbmUKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9yZWFzb24gPSBOb25lCi0KLSAg
ICAgICAgIyBQYXJzaW5nLgotCi0gICAgICAgIGNoZWNrX3JlcXVlc3RfbGluZShzZWxmLl9yZXF1
ZXN0KQotCi0gICAgICAgIHZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBz
ZWxmLl9yZXF1ZXN0LAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVSLAotICAgICAg
ICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEUpCi0KLSAgICAgICAgc2VsZi5fdmFs
aWRhdGVfY29ubmVjdGlvbl9oZWFkZXIoKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVz
b3VyY2UgPSBzZWxmLl9yZXF1ZXN0LnVyaQotCi0gICAgICAgIHVudXNlZF9ob3N0ID0gZ2V0X21h
bmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwgY29tbW9uLkhPU1RfSEVBREVSKQotCi0gICAg
ICAgIHNlbGYuX3JlcXVlc3Qud3NfdmVyc2lvbiA9IHNlbGYuX2NoZWNrX3ZlcnNpb24oKQotCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2dldF9vcmlnaW4oKQotICAgICAgICAgICAg
c2VsZi5fc2V0X3Byb3RvY29sKCkKLSAgICAgICAgICAgIHNlbGYuX3BhcnNlX2V4dGVuc2lvbnMo
KQotCi0gICAgICAgICAgICAjIEtleSB2YWxpZGF0aW9uLCByZXNwb25zZSBnZW5lcmF0aW9uLgot
Ci0gICAgICAgICAgICBrZXkgPSBzZWxmLl9nZXRfa2V5KCkKLSAgICAgICAgICAgIChhY2NlcHQs
IGFjY2VwdF9iaW5hcnkpID0gY29tcHV0ZV9hY2NlcHQoa2V5KQotICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICclczogJXIgKCVzKScsCi0gICAgICAgICAg
ICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUiwKLSAgICAgICAgICAgICAg
ICBhY2NlcHQsCi0gICAgICAgICAgICAgICAgdXRpbC5oZXhpZnkoYWNjZXB0X2JpbmFyeSkpCi0K
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUHJvdG9jb2wgdmVyc2lvbiBpcyBSRkMg
NjQ1NScpCi0KLSAgICAgICAgICAgICMgU2V0dXAgZXh0ZW5zaW9uIHByb2Nlc3NvcnMuCi0KLSAg
ICAgICAgICAgIHByb2Nlc3NvcnMgPSBbXQotICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53
c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBmb3Ig
ZXh0ZW5zaW9uX3JlcXVlc3QgaW4gc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9u
czoKLSAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yID0gZ2V0X2V4dGVuc2lvbl9wcm9jZXNz
b3IoZXh0ZW5zaW9uX3JlcXVlc3QpCi0gICAgICAgICAgICAgICAgICAgICMgVW5rbm93biBleHRl
bnNpb24gcmVxdWVzdHMgYXJlIGp1c3QgaWdub3JlZC4KLSAgICAgICAgICAgICAgICAgICAgaWYg
cHJvY2Vzc29yIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29y
cy5hcHBlbmQocHJvY2Vzc29yKQotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNp
b25fcHJvY2Vzc29ycyA9IHByb2Nlc3NvcnMKLQotICAgICAgICAgICAgIyBMaXN0IG9mIGV4dHJh
IGhlYWRlcnMuIFRoZSBleHRyYSBoYW5kc2hha2UgaGFuZGxlciBtYXkgYWRkIGhlYWRlcgotICAg
ICAgICAgICAgIyBkYXRhIGFzIG5hbWUvdmFsdWUgcGFpcnMgdG8gdGhpcyBsaXN0IGFuZCBweXdl
YnNvY2tldCBhcHBlbmRzCi0gICAgICAgICAgICAjIHRoZW0gdG8gdGhlIFdlYlNvY2tldCBoYW5k
c2hha2UuCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmV4dHJhX2hlYWRlcnMgPSBbXQotCi0g
ICAgICAgICAgICAjIEV4dHJhIGhhbmRzaGFrZSBoYW5kbGVyIG1heSBtb2RpZnkvcmVtb3ZlIHBy
b2Nlc3NvcnMuCi0gICAgICAgICAgICBzZWxmLl9kaXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFr
ZShzZWxmLl9yZXF1ZXN0KQotICAgICAgICAgICAgcHJvY2Vzc29ycyA9IGZpbHRlcihsYW1iZGEg
cHJvY2Vzc29yOiBwcm9jZXNzb3IgaXMgbm90IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpCi0KLSAgICAg
ICAgICAgICMgQXNrIGVhY2ggcHJvY2Vzc29yIGlmIHRoZXJlIGFyZSBleHRlbnNpb25zIG9uIHRo
ZSByZXF1ZXN0IHdoaWNoCi0gICAgICAgICAgICAjIGNhbm5vdCBjby1leGlzdC4gV2hlbiBwcm9j
ZXNzb3IgZGVjaWRlZCBvdGhlciBwcm9jZXNzb3JzIGNhbm5vdAotICAgICAgICAgICAgIyBjby1l
eGlzdCB3aXRoIGl0LCB0aGUgcHJvY2Vzc29yIG1hcmtzIHRoZW0gKG9yIGl0c2VsZikgYXMKLSAg
ICAgICAgICAgICMgImluYWN0aXZlIi4gVGhlIGZpcnN0IGV4dGVuc2lvbiBwcm9jZXNzb3IgaGFz
IHRoZSByaWdodCB0bwotICAgICAgICAgICAgIyBtYWtlIHRoZSBmaW5hbCBjYWxsLgotICAgICAg
ICAgICAgZm9yIHByb2Nlc3NvciBpbiByZXZlcnNlZChwcm9jZXNzb3JzKToKLSAgICAgICAgICAg
ICAgICBpZiBwcm9jZXNzb3IuaXNfYWN0aXZlKCk6Ci0gICAgICAgICAgICAgICAgICAgIHByb2Nl
c3Nvci5jaGVja19jb25zaXN0ZW5jeV93aXRoX290aGVyX3Byb2Nlc3NvcnMoCi0gICAgICAgICAg
ICAgICAgICAgICAgICBwcm9jZXNzb3JzKQotICAgICAgICAgICAgcHJvY2Vzc29ycyA9IGZpbHRl
cihsYW1iZGEgcHJvY2Vzc29yOiBwcm9jZXNzb3IuaXNfYWN0aXZlKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMpCi0KLSAgICAgICAgICAgIGFjY2VwdGVkX2V4
dGVuc2lvbnMgPSBbXQotCi0gICAgICAgICAgICAjIFdlIG5lZWQgdG8gdGFrZSBpbnRvIGFjY291
bnQgb2YgbXV4IGV4dGVuc2lvbiBoZXJlLgotICAgICAgICAgICAgIyBJZiBtdXggZXh0ZW5zaW9u
IGV4aXN0czoKLSAgICAgICAgICAgICMgLSBSZW1vdmUgcHJvY2Vzc29ycyBvZiBleHRlbnNpb25z
IGZvciBsb2dpY2FsIGNoYW5uZWwsCi0gICAgICAgICAgICAjICAgd2hpY2ggYXJlIHByb2Nlc3Nv
cnMgbG9jYXRlZCBiZWZvcmUgdGhlIG11eCBwcm9jZXNzb3IKLSAgICAgICAgICAgICMgLSBQYXNz
IGV4dGVuc2lvbiByZXF1ZXN0cyBmb3IgbG9naWNhbCBjaGFubmVsIHRvIG11eCBwcm9jZXNzb3IK
LSAgICAgICAgICAgICMgLSBBdHRhY2ggdGhlIG11eCBwcm9jZXNzb3IgdG8gdGhlIHJlcXVlc3Qu
IEl0IHdpbGwgYmUgcmVmZXJyZWQKLSAgICAgICAgICAgICMgICBieSBkaXNwYXRjaGVyIHRvIHNl
ZSB3aGV0aGVyIHRoZSBkaXNwYXRjaGVyIHNob3VsZCB1c2UgbXV4Ci0gICAgICAgICAgICAjICAg
aGFuZGxlciBvciBub3QuCi0gICAgICAgICAgICBtdXhfaW5kZXggPSAtMQotICAgICAgICAgICAg
Zm9yIGksIHByb2Nlc3NvciBpbiBlbnVtZXJhdGUocHJvY2Vzc29ycyk6Ci0gICAgICAgICAgICAg
ICAgaWYgcHJvY2Vzc29yLm5hbWUoKSA9PSBjb21tb24uTVVYX0VYVEVOU0lPTjoKLSAgICAgICAg
ICAgICAgICAgICAgbXV4X2luZGV4ID0gaQotICAgICAgICAgICAgICAgICAgICBicmVhawotICAg
ICAgICAgICAgaWYgbXV4X2luZGV4ID49IDA6Ci0gICAgICAgICAgICAgICAgbG9naWNhbF9jaGFu
bmVsX2V4dGVuc2lvbnMgPSBbXQotICAgICAgICAgICAgICAgIGZvciBwcm9jZXNzb3IgaW4gcHJv
Y2Vzc29yc1s6bXV4X2luZGV4XToKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbF9jaGFubmVs
X2V4dGVuc2lvbnMuYXBwZW5kKHByb2Nlc3Nvci5yZXF1ZXN0KCkpCi0gICAgICAgICAgICAgICAg
ICAgIHByb2Nlc3Nvci5zZXRfYWN0aXZlKEZhbHNlKQotICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3QubXV4X3Byb2Nlc3NvciA9IHByb2Nlc3NvcnNbbXV4X2luZGV4XQotICAgICAgICAgICAg
ICAgIHNlbGYuX3JlcXVlc3QubXV4X3Byb2Nlc3Nvci5zZXRfZXh0ZW5zaW9ucygKLSAgICAgICAg
ICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnMpCi0gICAgICAgICAgICAgICAg
cHJvY2Vzc29ycyA9IGZpbHRlcihsYW1iZGEgcHJvY2Vzc29yOiBwcm9jZXNzb3IuaXNfYWN0aXZl
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3JzKQotCi0g
ICAgICAgICAgICBzdHJlYW1fb3B0aW9ucyA9IFN0cmVhbU9wdGlvbnMoKQotCi0gICAgICAgICAg
ICBmb3IgaW5kZXgsIHByb2Nlc3NvciBpbiBlbnVtZXJhdGUocHJvY2Vzc29ycyk6Ci0gICAgICAg
ICAgICAgICAgaWYgbm90IHByb2Nlc3Nvci5pc19hY3RpdmUoKToKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIGV4dGVuc2lvbl9yZXNwb25zZSA9IHByb2Nl
c3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgICAgICAgICBpZiBleHRlbnNp
b25fcmVzcG9uc2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgIyBSZWplY3RlZC4KLSAg
ICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIGFjY2VwdGVkX2V4
dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbl9yZXNwb25zZSkKLQotICAgICAgICAgICAgICAgIHBy
b2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9ucykKLQotICAgICAgICAg
ICAgICAgIGlmIG5vdCBpc19jb21wcmVzc2lvbl9leHRlbnNpb24ocHJvY2Vzc29yLm5hbWUoKSk6
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICAjIEluYWN0
aXZhdGUgYWxsIG9mIHRoZSBmb2xsb3dpbmcgY29tcHJlc3Npb24gZXh0ZW5zaW9ucy4KLSAgICAg
ICAgICAgICAgICBmb3IgaiBpbiB4cmFuZ2UoaW5kZXggKyAxLCBsZW4ocHJvY2Vzc29ycykpOgot
ICAgICAgICAgICAgICAgICAgICBpZiBpc19jb21wcmVzc2lvbl9leHRlbnNpb24ocHJvY2Vzc29y
c1tqXS5uYW1lKCkpOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yc1tqXS5zZXRf
YWN0aXZlKEZhbHNlKQotCi0gICAgICAgICAgICBpZiBsZW4oYWNjZXB0ZWRfZXh0ZW5zaW9ucykg
PiAwOgotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyA9IGFjY2Vw
dGVkX2V4dGVuc2lvbnMKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAg
ICAgICAgICAgICAgICAgICdFeHRlbnNpb25zIGFjY2VwdGVkOiAlcicsCi0gICAgICAgICAgICAg
ICAgICAgIG1hcChjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyLm5hbWUsIGFjY2VwdGVkX2V4dGVu
c2lvbnMpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX2V4dGVuc2lvbnMgPSBOb25lCi0KLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nfc3Ry
ZWFtID0gc2VsZi5fY3JlYXRlX3N0cmVhbShzdHJlYW1fb3B0aW9ucykKLQotICAgICAgICAgICAg
aWYgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMgTm9uZToKLSAgICAg
ICAgICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ2RvX2V4dHJhX2hhbmRzaGFrZSBtdXN0IGNob29zZSBvbmUgc3VicHJvdG9jb2wg
ZnJvbSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAnd3NfcmVxdWVzdGVkX3Byb3RvY29scyBh
bmQgc2V0IGl0IHRvIHdzX3Byb3RvY29sJykKLSAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJw
cm90b2NvbChzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAnU3VicHJvdG9jb2wgYWNjZXB0
ZWQ6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19w
cm90b2NvbCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtl
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgJ3dzX3Byb3RvY29sIG11c3QgYmUg
Tm9uZSB3aGVuIHRoZSBjbGllbnQgZGlkblwndCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAn
cmVxdWVzdCBhbnkgc3VicHJvdG9jb2wnKQotCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2hhbmRz
aGFrZShhY2NlcHQpCi0gICAgICAgIGV4Y2VwdCBIYW5kc2hha2VFeGNlcHRpb24sIGU6Ci0gICAg
ICAgICAgICBpZiBub3QgZS5zdGF0dXM6Ci0gICAgICAgICAgICAgICAgIyBGYWxsYmFjayB0byA0
MDAgYmFkIHJlcXVlc3QgYnkgZGVmYXVsdC4KLSAgICAgICAgICAgICAgICBlLnN0YXR1cyA9IGNv
bW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVAotICAgICAgICAgICAgcmFpc2UgZQotCi0gICAg
ZGVmIF9nZXRfb3JpZ2luKHNlbGYpOgotICAgICAgICBvcmlnaW5faGVhZGVyID0gY29tbW9uLk9S
SUdJTl9IRUFERVIKLSAgICAgICAgb3JpZ2luID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdl
dChvcmlnaW5faGVhZGVyKQotICAgICAgICBpZiBvcmlnaW4gaXMgTm9uZToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50IHJlcXVlc3QgZG9lcyBub3QgaGF2ZSBvcmlnaW4g
aGVhZGVyJykKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19vcmlnaW4gPSBvcmlnaW4KLQotICAg
IGRlZiBfY2hlY2tfdmVyc2lvbihzZWxmKToKLSAgICAgICAgdmVyc2lvbiA9IGdldF9tYW5kYXRv
cnlfaGVhZGVyKHNlbGYuX3JlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUikKLSAgICAgICAgaWYg
dmVyc2lvbiA9PSBfVkVSU0lPTl9MQVRFU1RfU1RSSU5HOgotICAgICAgICAgICAgcmV0dXJuIF9W
RVJTSU9OX0xBVEVTVAotCi0gICAgICAgIGlmIHZlcnNpb24uZmluZCgnLCcpID49IDA6Ci0gICAg
ICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRp
cGxlIHZlcnNpb25zICglcikgYXJlIG5vdCBhbGxvd2VkIGZvciBoZWFkZXIgJXMnICUKLSAgICAg
ICAgICAgICAgICAodmVyc2lvbiwgY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIp
LAotICAgICAgICAgICAgICAgIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1Qp
Ci0gICAgICAgIHJhaXNlIFZlcnNpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAnVW5zdXBwb3J0
ZWQgdmVyc2lvbiAlciBmb3IgaGVhZGVyICVzJyAlCi0gICAgICAgICAgICAodmVyc2lvbiwgY29t
bW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIpLAotICAgICAgICAgICAgc3VwcG9ydGVk
X3ZlcnNpb25zPScsICcuam9pbihtYXAoc3RyLCBfU1VQUE9SVEVEX1ZFUlNJT05TKSkpCi0KLSAg
ICBkZWYgX3NldF9wcm90b2NvbChzZWxmKToKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90
b2NvbCA9IE5vbmUKLQotICAgICAgICBwcm90b2NvbF9oZWFkZXIgPSBzZWxmLl9yZXF1ZXN0Lmhl
YWRlcnNfaW4uZ2V0KAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xf
SEVBREVSKQotCi0gICAgICAgIGlmIHByb3RvY29sX2hlYWRlciBpcyBOb25lOgotICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzID0gTm9uZQotICAgICAgICAg
ICAgcmV0dXJuCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xz
ID0gcGFyc2VfdG9rZW5fbGlzdCgKLSAgICAgICAgICAgIHByb3RvY29sX2hlYWRlcikKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTdWJwcm90b2NvbHMgcmVxdWVzdGVkOiAlcicsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2Nv
bHMpCi0KLSAgICBkZWYgX3BhcnNlX2V4dGVuc2lvbnMoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lv
bnNfaGVhZGVyID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldCgKLSAgICAgICAgICAgIGNv
bW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSKQotICAgICAgICBpZiBub3QgZXh0
ZW5zaW9uc19oZWFkZXI6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9l
eHRlbnNpb25zID0gTm9uZQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5w
YXJzZV9leHRlbnNpb25zKAotICAgICAgICAgICAgICAgIGV4dGVuc2lvbnNfaGVhZGVyKQotICAg
ICAgICBleGNlcHQgY29tbW9uLkV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24sIGU6Ci0gICAgICAg
ICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0
byBwYXJzZSBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyOiAlcicgJSBlKQotCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdFeHRlbnNpb25zIHJlcXVlc3Rl
ZDogJXInLAotICAgICAgICAgICAgbWFwKGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIubmFtZSwK
LSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zKSkK
LQotICAgIGRlZiBfdmFsaWRhdGVfa2V5KHNlbGYsIGtleSk6Ci0gICAgICAgIGlmIGtleS5maW5k
KCcsJykgPj0gMDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignUmVxdWVz
dCBoYXMgbXVsdGlwbGUgJXMgaGVhZGVyIGxpbmVzIG9yICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXIgXCcsXCc6ICVyJyAl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09D
S0VUX0tFWV9IRUFERVIsIGtleSkpCi0KLSAgICAgICAgIyBWYWxpZGF0ZQotICAgICAgICBrZXlf
aXNfdmFsaWQgPSBGYWxzZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIFZhbGlkYXRlIGtl
eSBieSBxdWljayByZWdleCBtYXRjaCBiZWZvcmUgcGFyc2luZyBieSBiYXNlNjQKLSAgICAgICAg
ICAgICMgbW9kdWxlLiBCZWNhdXNlIGJhc2U2NCBtb2R1bGUgc2tpcHMgaW52YWxpZCBjaGFyYWN0
ZXJzLCB3ZSBoYXZlCi0gICAgICAgICAgICAjIHRvIGRvIHRoaXMgaW4gYWR2YW5jZSB0byBtYWtl
IHRoaXMgc2VydmVyIHN0cmljdGx5IHJlamVjdCBpbGxlZ2FsCi0gICAgICAgICAgICAjIGtleXMu
Ci0gICAgICAgICAgICBpZiBfU0VDX1dFQlNPQ0tFVF9LRVlfUkVHRVgubWF0Y2goa2V5KToKLSAg
ICAgICAgICAgICAgICBkZWNvZGVkX2tleSA9IGJhc2U2NC5iNjRkZWNvZGUoa2V5KQotICAgICAg
ICAgICAgICAgIGlmIGxlbihkZWNvZGVkX2tleSkgPT0gMTY6Ci0gICAgICAgICAgICAgICAgICAg
IGtleV9pc192YWxpZCA9IFRydWUKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJvciwgZToKLSAgICAg
ICAgICAgIHBhc3MKLQotICAgICAgICBpZiBub3Qga2V5X2lzX3ZhbGlkOgotICAgICAgICAgICAg
cmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdJbGxlZ2FsIHZhbHVl
IGZvciBoZWFkZXIgJXM6ICVyJyAlCi0gICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09D
S0VUX0tFWV9IRUFERVIsIGtleSkpCi0KLSAgICAgICAgcmV0dXJuIGRlY29kZWRfa2V5Ci0KLSAg
ICBkZWYgX2dldF9rZXkoc2VsZik6Ci0gICAgICAgIGtleSA9IGdldF9tYW5kYXRvcnlfaGVhZGVy
KAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdCwgY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hF
QURFUikKLQotICAgICAgICBkZWNvZGVkX2tleSA9IHNlbGYuX3ZhbGlkYXRlX2tleShrZXkpCi0K
LSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJyVzOiAlciAoJXMpJywK
LSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIsCi0gICAgICAgICAg
ICBrZXksCi0gICAgICAgICAgICB1dGlsLmhleGlmeShkZWNvZGVkX2tleSkpCi0KLSAgICAgICAg
cmV0dXJuIGtleQotCi0gICAgZGVmIF9jcmVhdGVfc3RyZWFtKHNlbGYsIHN0cmVhbV9vcHRpb25z
KToKLSAgICAgICAgcmV0dXJuIFN0cmVhbShzZWxmLl9yZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucykK
LQotICAgIGRlZiBfY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZShzZWxmLCBhY2NlcHQpOgotICAg
ICAgICByZXNwb25zZSA9IFtdCi0KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdIVFRQLzEuMSAx
MDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nKQotCi0gICAgICAgICMgV2ViU29ja2V0IGhlYWRl
cnMKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBj
b21tb24uVVBHUkFERV9IRUFERVIsIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFKSkKLSAg
ICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24u
Q09OTkVDVElPTl9IRUFERVIsIGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSkpCi0gICAg
ICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLlNF
Q19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUiwgYWNjZXB0KSkKLSAgICAgICAgaWYgc2VsZi5fcmVx
dWVzdC53c19wcm90b2NvbCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVu
ZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1BS
T1RPQ09MX0hFQURFUiwKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29s
KSkKLSAgICAgICAgaWYgKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyBpcyBub3QgTm9uZSBh
bmQKLSAgICAgICAgICAgIGxlbihzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMpICE9IDApOgot
ICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICAg
ICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIsCi0gICAgICAgICAgICAg
ICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykp
KQotCi0gICAgICAgICMgSGVhZGVycyBub3Qgc3BlY2lmaWMgZm9yIFdlYlNvY2tldAotICAgICAg
ICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5fcmVxdWVzdC5leHRyYV9oZWFkZXJzOgotICAgICAg
ICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIobmFtZSwgdmFsdWUpKQotCi0gICAg
ICAgIHJlc3BvbnNlLmFwcGVuZCgnXHJcbicpCi0KLSAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVz
cG9uc2UpCi0KLSAgICBkZWYgX3NlbmRfaGFuZHNoYWtlKHNlbGYsIGFjY2VwdCk6Ci0gICAgICAg
IHJhd19yZXNwb25zZSA9IHNlbGYuX2NyZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2UoYWNjZXB0KQot
ICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUocmF3X3Jlc3BvbnNlKQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbnQgc2VydmVyXCdzIG9wZW5pbmcgaGFuZHNoYWtl
OiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICByYXdfcmVzcG9uc2UpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFu
ZHNoYWtlL2h5YmkwMC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHli
aTAwLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzU3NzE3YTYzOWJhYzNkYjA1
ZDRjYjMwMjdlMDU1ZmRiZjdmM2NmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHliaTAwLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsMjkzICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2ds
ZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIi
IlRoaXMgZmlsZSBwcm92aWRlcyB0aGUgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0
aGUgV2ViU29ja2V0Ci1wcm90b2NvbCB2ZXJzaW9uIEh5QmkgMDAuCi0KLVNwZWNpZmljYXRpb246
Ci1odHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0
cHJvdG9jb2wtMDAKLSIiIgotCi0KLSMgTm90ZTogcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlL3Jl
YWQgYXJlIHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2ZW4gdGhvdWdoCi0jIG1vZF9weXRob24gZG9j
dW1lbnQgc2F5cyB0aGF0IHRoZXkgc2hvdWxkIGJlIHVzZWQgb25seSBpbiBjb25uZWN0aW9uCi0j
IGhhbmRsZXJzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIG90aGVyIG9wdGlvbnMuIEZvciBl
eGFtcGxlLAotIyByZXF1ZXN0LndyaXRlL3JlYWQgYXJlIG5vdCBzdWl0YWJsZSBiZWNhdXNlIHRo
ZXkgZG9uJ3QgYWxsb3cgZGlyZWN0IHJhdyBieXRlcwotIyB3cml0aW5nL3JlYWRpbmcuCi0KLQot
aW1wb3J0IGxvZ2dpbmcKLWltcG9ydCByZQotaW1wb3J0IHN0cnVjdAotCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0
IFN0cmVhbUhpeGllNzUKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBjaGVja19yZXF1ZXN0
X2xpbmUKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZm9ybWF0
X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBnZXRf
ZGVmYXVsdF9wb3J0Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0
IGdldF9tYW5kYXRvcnlfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jh
c2UgaW1wb3J0IHBhcnNlX2hvc3RfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hh
a2UuX2Jhc2UgaW1wb3J0IHZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIKLQotCi1fTUFOREFUT1JZ
X0hFQURFUlMgPSBbCi0gICAgIyBrZXksIGV4cGVjdGVkIHZhbHVlIG9yIE5vbmUKLSAgICBbY29t
bW9uLlVQR1JBREVfSEVBREVSLCBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRV9ISVhJRTc1
XSwKLSAgICBbY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNU
SU9OX1RZUEVdLAotXQotCi0KLWRlZiBfdmFsaWRhdGVfc3VicHJvdG9jb2woc3VicHJvdG9jb2wp
OgotICAgICIiIkNoZWNrcyBpZiBjaGFyYWN0ZXJzIGluIHN1YnByb3RvY29sIGFyZSBpbiByYW5n
ZSBiZXR3ZWVuIFUrMDAyMCBhbmQKLSAgICBVKzAwN0UuIEEgdmFsdWUgaW4gdGhlIFNlYy1XZWJT
b2NrZXQtUHJvdG9jb2wgZmllbGQgbmVlZCB0byBzYXRpc2Z5IHRoaXMKLSAgICByZXF1aXJlbWVu
dC4KLQotICAgIFNlZSB0aGUgU2VjdGlvbiA0LjEuIE9wZW5pbmcgaGFuZHNoYWtlIG9mIHRoZSBz
cGVjLgotICAgICIiIgotCi0gICAgaWYgbm90IHN1YnByb3RvY29sOgotICAgICAgICByYWlzZSBI
YW5kc2hha2VFeGNlcHRpb24oJ0ludmFsaWQgc3VicHJvdG9jb2wgbmFtZTogZW1wdHknKQotCi0g
ICAgIyBQYXJhbWV0ZXIgc2hvdWxkIGJlIGluIHRoZSByYW5nZSBVKzAwMjAgdG8gVSswMDdFLgot
ICAgIGZvciBjIGluIHN1YnByb3RvY29sOgotICAgICAgICBpZiBub3QgMHgyMCA8PSBvcmQoYykg
PD0gMHg3ZToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnSWxsZWdhbCBjaGFyYWN0ZXIgaW4gc3VicHJvdG9jb2wgbmFtZTogJXInICUgYykK
LQotCi1kZWYgX2NoZWNrX2hlYWRlcl9saW5lcyhyZXF1ZXN0LCBtYW5kYXRvcnlfaGVhZGVycyk6
Ci0gICAgY2hlY2tfcmVxdWVzdF9saW5lKHJlcXVlc3QpCi0KLSAgICAjIFRoZSBleHBlY3RlZCBm
aWVsZCBuYW1lcywgYW5kIHRoZSBtZWFuaW5nIG9mIHRoZWlyIGNvcnJlc3BvbmRpbmcKLSAgICAj
IHZhbHVlcywgYXJlIGFzIGZvbGxvd3MuCi0gICAgIyAgfFVwZ3JhZGV8IGFuZCB8Q29ubmVjdGlv
bnwKLSAgICBmb3Iga2V5LCBleHBlY3RlZF92YWx1ZSBpbiBtYW5kYXRvcnlfaGVhZGVyczoKLSAg
ICAgICAgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXksIGV4cGVjdGVkX3Zh
bHVlKQotCi0KLWRlZiBfYnVpbGRfbG9jYXRpb24ocmVxdWVzdCk6Ci0gICAgIiIiQnVpbGQgV2Vi
U29ja2V0IGxvY2F0aW9uIGZvciByZXF1ZXN0LiIiIgotCi0gICAgbG9jYXRpb25fcGFydHMgPSBb
XQotICAgIGlmIHJlcXVlc3QuaXNfaHR0cHMoKToKLSAgICAgICAgbG9jYXRpb25fcGFydHMuYXBw
ZW5kKGNvbW1vbi5XRUJfU09DS0VUX1NFQ1VSRV9TQ0hFTUUpCi0gICAgZWxzZToKLSAgICAgICAg
bG9jYXRpb25fcGFydHMuYXBwZW5kKGNvbW1vbi5XRUJfU09DS0VUX1NDSEVNRSkKLSAgICBsb2Nh
dGlvbl9wYXJ0cy5hcHBlbmQoJzovLycpCi0gICAgaG9zdCwgcG9ydCA9IHBhcnNlX2hvc3RfaGVh
ZGVyKHJlcXVlc3QpCi0gICAgY29ubmVjdGlvbl9wb3J0ID0gcmVxdWVzdC5jb25uZWN0aW9uLmxv
Y2FsX2FkZHJbMV0KLSAgICBpZiBwb3J0ICE9IGNvbm5lY3Rpb25fcG9ydDoKLSAgICAgICAgcmFp
c2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdIZWFkZXIvY29ubmVjdGlvbiBwb3J0IG1pc21hdGNoOiAl
ZC8lZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvcnQsIGNvbm5lY3Rp
b25fcG9ydCkpCi0gICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKGhvc3QpCi0gICAgaWYgKHBvcnQg
IT0gZ2V0X2RlZmF1bHRfcG9ydChyZXF1ZXN0LmlzX2h0dHBzKCkpKToKLSAgICAgICAgbG9jYXRp
b25fcGFydHMuYXBwZW5kKCc6JykKLSAgICAgICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKHN0cihw
b3J0KSkKLSAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQocmVxdWVzdC51bnBhcnNlZF91cmkpCi0g
ICAgcmV0dXJuICcnLmpvaW4obG9jYXRpb25fcGFydHMpCi0KLQotY2xhc3MgSGFuZHNoYWtlcihv
YmplY3QpOgotICAgICIiIk9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNv
Y2tldCBwcm90b2NvbCB2ZXJzaW9uIEh5QmkgMDAuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcik6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBp
bnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhv
biByZXF1ZXN0LgotICAgICAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlciAoZGlzcGF0Y2gu
RGlzcGF0Y2hlcikuCi0KLSAgICAgICAgSGFuZHNoYWtlciB3aWxsIGFkZCBhdHRyaWJ1dGVzIHN1
Y2ggYXMgd3NfcmVzb3VyY2UgaW4gcGVyZm9ybWluZwotICAgICAgICBoYW5kc2hha2UuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihz
ZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX2Rp
c3BhdGNoZXIgPSBkaXNwYXRjaGVyCi0KLSAgICBkZWYgZG9faGFuZHNoYWtlKHNlbGYpOgotICAg
ICAgICAiIiJQZXJmb3JtIFdlYlNvY2tldCBIYW5kc2hha2UuCi0KLSAgICAgICAgT24gX3JlcXVl
c3QsIHdlIHNldAotICAgICAgICAgICAgd3NfcmVzb3VyY2UsIHdzX3Byb3RvY29sLCB3c19sb2Nh
dGlvbiwgd3Nfb3JpZ2luLCB3c19jaGFsbGVuZ2UsCi0gICAgICAgICAgICB3c19jaGFsbGVuZ2Vf
bWQ1OiBXZWJTb2NrZXQgaGFuZHNoYWtlIGluZm9ybWF0aW9uLgotICAgICAgICAgICAgd3Nfc3Ry
ZWFtOiBGcmFtZSBnZW5lcmF0aW9uL3BhcnNpbmcgY2xhc3MuCi0gICAgICAgICAgICB3c192ZXJz
aW9uOiBQcm90b2NvbCB2ZXJzaW9uLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEhh
bmRzaGFrZUV4Y2VwdGlvbjogd2hlbiBhbnkgZXJyb3IgaGFwcGVuZWQgaW4gcGFyc2luZyB0aGUg
b3BlbmluZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kc2hha2UgcmVxdWVz
dC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyA1LjEgUmVhZGluZyB0aGUgY2xpZW50J3Mgb3Bl
bmluZyBoYW5kc2hha2UuCi0gICAgICAgICMgZGlzcGF0Y2hlciBzZXRzIGl0IGluIHNlbGYuX3Jl
cXVlc3QuCi0gICAgICAgIF9jaGVja19oZWFkZXJfbGluZXMoc2VsZi5fcmVxdWVzdCwgX01BTkRB
VE9SWV9IRUFERVJTKQotICAgICAgICBzZWxmLl9zZXRfcmVzb3VyY2UoKQotICAgICAgICBzZWxm
Ll9zZXRfc3VicHJvdG9jb2woKQotICAgICAgICBzZWxmLl9zZXRfbG9jYXRpb24oKQotICAgICAg
ICBzZWxmLl9zZXRfb3JpZ2luKCkKLSAgICAgICAgc2VsZi5fc2V0X2NoYWxsZW5nZV9yZXNwb25z
ZSgpCi0gICAgICAgIHNlbGYuX3NldF9wcm90b2NvbF92ZXJzaW9uKCkKLQotICAgICAgICBzZWxm
Ll9kaXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLl9yZXF1ZXN0KQotCi0gICAgICAg
IHNlbGYuX3NlbmRfaGFuZHNoYWtlKCkKLQotICAgIGRlZiBfc2V0X3Jlc291cmNlKHNlbGYpOgot
ICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3Jlc291cmNlID0gc2VsZi5fcmVxdWVzdC51cmkKLQot
ICAgIGRlZiBfc2V0X3N1YnByb3RvY29sKHNlbGYpOgotICAgICAgICAjIHxTZWMtV2ViU29ja2V0
LVByb3RvY29sfAotICAgICAgICBzdWJwcm90b2NvbCA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19p
bi5nZXQoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIp
Ci0gICAgICAgIGlmIHN1YnByb3RvY29sIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgX3ZhbGlk
YXRlX3N1YnByb3RvY29sKHN1YnByb3RvY29sKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3By
b3RvY29sID0gc3VicHJvdG9jb2wKLQotICAgIGRlZiBfc2V0X2xvY2F0aW9uKHNlbGYpOgotICAg
ICAgICAjIHxIb3N0fAotICAgICAgICBob3N0ID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdl
dChjb21tb24uSE9TVF9IRUFERVIpCi0gICAgICAgIGlmIGhvc3QgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2xvY2F0aW9uID0gX2J1aWxkX2xvY2F0aW9uKHNlbGYu
X3JlcXVlc3QpCi0gICAgICAgICMgVE9ETyh1a2FpKTogY2hlY2sgaG9zdCBpcyB0aGlzIGhvc3Qu
Ci0KLSAgICBkZWYgX3NldF9vcmlnaW4oc2VsZik6Ci0gICAgICAgICMgfE9yaWdpbnwKLSAgICAg
ICAgb3JpZ2luID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldChjb21tb24uT1JJR0lOX0hF
QURFUikKLSAgICAgICAgaWYgb3JpZ2luIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5f
cmVxdWVzdC53c19vcmlnaW4gPSBvcmlnaW4KLQotICAgIGRlZiBfc2V0X3Byb3RvY29sX3ZlcnNp
b24oc2VsZik6Ci0gICAgICAgICMgfFNlYy1XZWJTb2NrZXQtRHJhZnR8Ci0gICAgICAgIGRyYWZ0
ID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldChjb21tb24uU0VDX1dFQlNPQ0tFVF9EUkFG
VF9IRUFERVIpCi0gICAgICAgIGlmIGRyYWZ0IGlzIG5vdCBOb25lIGFuZCBkcmFmdCAhPSAnMCc6
Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0lsbGVnYWwgdmFsdWUgZm9y
ICVzOiAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21tb24u
U0VDX1dFQlNPQ0tFVF9EUkFGVF9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRyYWZ0KSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Byb3RvY29s
IHZlcnNpb24gaXMgSHlCaSAwMCcpCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfdmVyc2lvbiA9
IGNvbW1vbi5WRVJTSU9OX0hZQkkwMAotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3N0cmVhbSA9
IFN0cmVhbUhpeGllNzUoc2VsZi5fcmVxdWVzdCwgVHJ1ZSkKLQotICAgIGRlZiBfc2V0X2NoYWxs
ZW5nZV9yZXNwb25zZShzZWxmKToKLSAgICAgICAgIyA1LjIgNC04LgotICAgICAgICBzZWxmLl9y
ZXF1ZXN0LndzX2NoYWxsZW5nZSA9IHNlbGYuX2dldF9jaGFsbGVuZ2UoKQotICAgICAgICAjIDUu
MiA5LiBsZXQgL3Jlc3BvbnNlLyBiZSB0aGUgTUQ1IGZpbnRlcnByaW50IG9mIC9jaGFsbGVuZ2Uv
Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlX21kNSA9IHV0aWwubWQ1X2hhc2go
Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZSkuZGlnZXN0KCkKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0NoYWxsZW5nZTogJXIgKCVzKScs
Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZSwKLSAgICAgICAgICAgIHV0
aWwuaGV4aWZ5KHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlKSkKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgJ0NoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsCi0g
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUsCi0gICAgICAgICAgICB1
dGlsLmhleGlmeShzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUpKQotCi0gICAgZGVmIF9n
ZXRfa2V5X3ZhbHVlKHNlbGYsIGtleV9maWVsZCk6Ci0gICAgICAgIGtleV92YWx1ZSA9IGdldF9t
YW5kYXRvcnlfaGVhZGVyKHNlbGYuX3JlcXVlc3QsIGtleV9maWVsZCkKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJyVzOiAlcicsIGtleV9maWVsZCwga2V5X3ZhbHVlKQotCi0gICAgICAg
ICMgNS4yIDQuIGxldCAva2V5LW51bWJlcl9uLyBiZSB0aGUgZGlnaXRzIChjaGFyYWN0ZXJzIGlu
IHRoZSByYW5nZQotICAgICAgICAjIFUrMDAzMCBESUdJVCBaRVJPICgwKSB0byBVKzAwMzkgRElH
SVQgTklORSAoOSkpIGluIC9rZXlfbi8sCi0gICAgICAgICMgaW50ZXJwcmV0ZWQgYXMgYSBiYXNl
IHRlbiBpbnRlZ2VyLCBpZ25vcmluZyBhbGwgb3RoZXIgY2hhcmFjdGVycwotICAgICAgICAjIGlu
IC9rZXlfbi8uCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGtleV9udW1iZXIgPSBpbnQocmUu
c3ViKCJcXEQiLCAiIiwga2V5X3ZhbHVlKSkKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAg
cmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCclcyBmaWVsZCBjb250YWlucyBubyBkaWdpdCcgJSBr
ZXlfZmllbGQpCi0gICAgICAgICMgNS4yIDUuIGxldCAvc3BhY2VzX24vIGJlIHRoZSBudW1iZXIg
b2YgVSswMDIwIFNQQUNFIGNoYXJhY3RlcnMKLSAgICAgICAgIyBpbiAva2V5X24vLgotICAgICAg
ICBzcGFjZXMgPSByZS5zdWJuKCIgIiwgIiIsIGtleV92YWx1ZSlbMV0KLSAgICAgICAgaWYgc3Bh
Y2VzID09IDA6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJyVzIGZpZWxk
IGNvbnRhaW5zIG5vIHNwYWNlJyAlIGtleV9maWVsZCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoCi0gICAgICAgICAgICAnJXM6IEtleS1udW1iZXIgaXMgJWQgYW5kIG51bWJlciBvZiBz
cGFjZXMgaXMgJWQnLAotICAgICAgICAgICAga2V5X2ZpZWxkLCBrZXlfbnVtYmVyLCBzcGFjZXMp
Ci0KLSAgICAgICAgIyA1LjIgNi4gaWYgL2tleS1udW1iZXJfbi8gaXMgbm90IGFuIGludGVncmFs
IG11bHRpcGxlIG9mIC9zcGFjZXNfbi8KLSAgICAgICAgIyB0aGVuIGFib3J0IHRoZSBXZWJTb2Nr
ZXQgY29ubmVjdGlvbi4KLSAgICAgICAgaWYga2V5X251bWJlciAlIHNwYWNlcyAhPSAwOgotICAg
ICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICclczog
S2V5LW51bWJlciAoJWQpIGlzIG5vdCBhbiBpbnRlZ3JhbCBtdWx0aXBsZSBvZiBzcGFjZXMgJwot
ICAgICAgICAgICAgICAgICcoJWQpJyAlIChrZXlfZmllbGQsIGtleV9udW1iZXIsIHNwYWNlcykp
Ci0gICAgICAgICMgNS4yIDcuIGxldCAvcGFydF9uLyBiZSAva2V5LW51bWJlcl9uLyBkaXZpZGVk
IGJ5IC9zcGFjZXNfbi8uCi0gICAgICAgIHBhcnQgPSBrZXlfbnVtYmVyIC8gc3BhY2VzCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXM6IFBhcnQgaXMgJWQnLCBrZXlfZmllbGQsIHBhcnQp
Ci0gICAgICAgIHJldHVybiBwYXJ0Ci0KLSAgICBkZWYgX2dldF9jaGFsbGVuZ2Uoc2VsZik6Ci0g
ICAgICAgICMgNS4yIDQtNy4KLSAgICAgICAga2V5MSA9IHNlbGYuX2dldF9rZXlfdmFsdWUoY29t
bW9uLlNFQ19XRUJTT0NLRVRfS0VZMV9IRUFERVIpCi0gICAgICAgIGtleTIgPSBzZWxmLl9nZXRf
a2V5X3ZhbHVlKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWTJfSEVBREVSKQotICAgICAgICAjIDUu
MiA4LiBsZXQgL2NoYWxsZW5nZS8gYmUgdGhlIGNvbmNhdGVuYXRpb24gb2YgL3BhcnRfMS8sCi0g
ICAgICAgIGNoYWxsZW5nZSA9ICcnCi0gICAgICAgIGNoYWxsZW5nZSArPSBzdHJ1Y3QucGFjaygn
IUknLCBrZXkxKSAgIyBuZXR3b3JrIGJ5dGVvcmRlciBpbnQKLSAgICAgICAgY2hhbGxlbmdlICs9
IHN0cnVjdC5wYWNrKCchSScsIGtleTIpICAjIG5ldHdvcmsgYnl0ZW9yZGVyIGludAotICAgICAg
ICBjaGFsbGVuZ2UgKz0gc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJlYWQoOCkKLSAgICAgICAg
cmV0dXJuIGNoYWxsZW5nZQotCi0gICAgZGVmIF9zZW5kX2hhbmRzaGFrZShzZWxmKToKLSAgICAg
ICAgcmVzcG9uc2UgPSBbXQotCi0gICAgICAgICMgNS4yIDEwLiBzZW5kIHRoZSBmb2xsb3dpbmcg
bGluZS4KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFBy
b3RvY29sIEhhbmRzaGFrZVxyXG4nKQotCi0gICAgICAgICMgNS4yIDExLiBzZW5kIHRoZSBmb2xs
b3dpbmcgZmllbGRzIHRvIHRoZSBjbGllbnQuCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3Jt
YXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVSLCBjb21tb24uV0VC
U09DS0VUX1VQR1JBREVfVFlQRV9ISVhJRTc1KSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZv
cm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uQ09OTkVDVElPTl9IRUFERVIsIGNvbW1v
bi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSkpCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3Jt
YXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfTE9DQVRJT05fSEVB
REVSLCBzZWxmLl9yZXF1ZXN0LndzX2xvY2F0aW9uKSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5k
KGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9PUklHSU5f
SEVBREVSLCBzZWxmLl9yZXF1ZXN0LndzX29yaWdpbikpCi0gICAgICAgIGlmIHNlbGYuX3JlcXVl
c3Qud3NfcHJvdG9jb2w6Ci0gICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRl
cigKLSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIs
Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkpCi0gICAgICAgICMg
NS4yIDEyLiBzZW5kIHR3byBieXRlcyAweDBEIDB4MEEuCi0gICAgICAgIHJlc3BvbnNlLmFwcGVu
ZCgnXHJcbicpCi0gICAgICAgICMgNS4yIDEzLiBzZW5kIC9yZXNwb25zZS8KLSAgICAgICAgcmVz
cG9uc2UuYXBwZW5kKHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlX21kNSkKLQotICAgICAgICBy
YXdfcmVzcG9uc2UgPSAnJy5qb2luKHJlc3BvbnNlKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdGUocmF3X3Jlc3BvbnNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1NlbnQgc2VydmVyXCdzIG9wZW5pbmcgaGFuZHNoYWtlOiAlcicsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICByYXdfcmVzcG9uc2UpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzkwZGQ3NTRhNDkwMzY4YjllN2E1OTMzNjVmMmZkMGMw
NDE3ZDJkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L2hhbmRzaGFrZS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hh
a2UvX2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkwMC5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYzI0NDQyMWNmNzliY2RkNzM3ZGNiNTdmOWY0MzM2YmUwZTg0Y2E1
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5weQorKysgL2Rldi9udWxsCkBA
IC0xLDI1NCArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0j
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJQeXRob25IZWFkZXJQYXJz
ZXJIYW5kbGVyIGZvciBtb2RfcHl3ZWJzb2NrZXQuCi0KLUFwYWNoZSBIVFRQIFNlcnZlciBhbmQg
bW9kX3B5dGhvbiBtdXN0IGJlIGNvbmZpZ3VyZWQgc3VjaCB0aGF0IHRoaXMKLWZ1bmN0aW9uIGlz
IGNhbGxlZCB0byBoYW5kbGUgV2ViU29ja2V0IHJlcXVlc3QuCi0iIiIKLQotCi1pbXBvcnQgbG9n
Z2luZwotCi1mcm9tIG1vZF9weXRob24gaW1wb3J0IGFwYWNoZQotCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgZGlzcGF0Y2gK
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLWZyb20gbW9kX3B5d2Vic29j
a2V0IGltcG9ydCB1dGlsCi0KLQotIyBQeXRob25PcHRpb24gdG8gc3BlY2lmeSB0aGUgaGFuZGxl
ciByb290IGRpcmVjdG9yeS4KLV9QWU9QVF9IQU5ETEVSX1JPT1QgPSAnbW9kX3B5d2Vic29ja2V0
LmhhbmRsZXJfcm9vdCcKLQotIyBQeXRob25PcHRpb24gdG8gc3BlY2lmeSB0aGUgaGFuZGxlciBz
Y2FuIGRpcmVjdG9yeS4KLSMgVGhpcyBtdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVyIHRoZSByb290
IGRpcmVjdG9yeS4KLSMgVGhlIGRlZmF1bHQgaXMgdGhlIHJvb3QgZGlyZWN0b3J5LgotX1BZT1BU
X0hBTkRMRVJfU0NBTiA9ICdtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9zY2FuJwotCi0jIFB5dGhv
bk9wdGlvbiB0byBhbGxvdyBoYW5kbGVycyB3aG9zZSBjYW5vbmljYWwgcGF0aCBpcwotIyBub3Qg
dW5kZXIgdGhlIHJvb3QgZGlyZWN0b3J5LiBJdCdzIGRpc2FsbG93ZWQgYnkgZGVmYXVsdC4KLSMg
U2V0IHRoaXMgb3B0aW9uIHdpdGggdmFsdWUgb2YgJ3llcycgdG8gYWxsb3cuCi1fUFlPUFRfQUxM
T1dfSEFORExFUlNfT1VUU0lERV9ST09UID0gKAotICAgICdtb2RfcHl3ZWJzb2NrZXQuYWxsb3df
aGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcicpCi0jIE1hcCBmcm9tIHZhbHVlcyB0byB0aGVpciBt
ZWFuaW5ncy4gJ1llcycgYW5kICdObycgYXJlIGFsbG93ZWQganVzdCBmb3IKLSMgY29tcGF0aWJp
bGl0eS4KLV9QWU9QVF9BTExPV19IQU5ETEVSU19PVVRTSURFX1JPT1RfREVGSU5JVElPTiA9IHsK
LSAgICAnb2ZmJzogRmFsc2UsICdubyc6IEZhbHNlLCAnb24nOiBUcnVlLCAneWVzJzogVHJ1ZX0K
LQotIyAoT2Jzb2xldGUgb3B0aW9uLiBJZ25vcmVkLikKLSMgUHl0aG9uT3B0aW9uIHRvIHNwZWNp
ZnkgdG8gYWxsb3cgaGFuZHNoYWtlIGRlZmluZWQgaW4gSGl4aWUgNzUgdmVyc2lvbgotIyBwcm90
b2NvbC4gVGhlIGRlZmF1bHQgaXMgTm9uZSAoT2ZmKQotX1BZT1BUX0FMTE9XX0RSQUZUNzUgPSAn
bW9kX3B5d2Vic29ja2V0LmFsbG93X2RyYWZ0NzUnCi0jIE1hcCBmcm9tIHZhbHVlcyB0byB0aGVp
ciBtZWFuaW5ncy4KLV9QWU9QVF9BTExPV19EUkFGVDc1X0RFRklOSVRJT04gPSB7J29mZic6IEZh
bHNlLCAnb24nOiBUcnVlfQotCi0KLWNsYXNzIEFwYWNoZUxvZ0hhbmRsZXIobG9nZ2luZy5IYW5k
bGVyKToKLSAgICAiIiJXcmFwcGVyIGxvZ2dpbmcuSGFuZGxlciB0byBlbWl0IGxvZyBtZXNzYWdl
IHRvIGFwYWNoZSdzIGVycm9yLmxvZy4iIiIKLQotICAgIF9MRVZFTFMgPSB7Ci0gICAgICAgIGxv
Z2dpbmcuREVCVUc6IGFwYWNoZS5BUExPR19ERUJVRywKLSAgICAgICAgbG9nZ2luZy5JTkZPOiBh
cGFjaGUuQVBMT0dfSU5GTywKLSAgICAgICAgbG9nZ2luZy5XQVJOSU5HOiBhcGFjaGUuQVBMT0df
V0FSTklORywKLSAgICAgICAgbG9nZ2luZy5FUlJPUjogYXBhY2hlLkFQTE9HX0VSUiwKLSAgICAg
ICAgbG9nZ2luZy5DUklUSUNBTDogYXBhY2hlLkFQTE9HX0NSSVQsCi0gICAgICAgIH0KLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0PU5vbmUpOgotICAgICAgICBsb2dnaW5nLkhhbmRs
ZXIuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fbG9nX2Vycm9yID0gYXBhY2hlLmxvZ19l
cnJvcgotICAgICAgICBpZiByZXF1ZXN0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5f
bG9nX2Vycm9yID0gcmVxdWVzdC5sb2dfZXJyb3IKLQotICAgICAgICAjIFRpbWUgYW5kIGxldmVs
IHdpbGwgYmUgcHJpbnRlZCBieSBBcGFjaGUuCi0gICAgICAgIHNlbGYuX2Zvcm1hdHRlciA9IGxv
Z2dpbmcuRm9ybWF0dGVyKCclKG5hbWUpczogJShtZXNzYWdlKXMnKQotCi0gICAgZGVmIGVtaXQo
c2VsZiwgcmVjb3JkKToKLSAgICAgICAgYXBhY2hlX2xldmVsID0gYXBhY2hlLkFQTE9HX0RFQlVH
Ci0gICAgICAgIGlmIHJlY29yZC5sZXZlbG5vIGluIEFwYWNoZUxvZ0hhbmRsZXIuX0xFVkVMUzoK
LSAgICAgICAgICAgIGFwYWNoZV9sZXZlbCA9IEFwYWNoZUxvZ0hhbmRsZXIuX0xFVkVMU1tyZWNv
cmQubGV2ZWxub10KLQotICAgICAgICBtc2cgPSBzZWxmLl9mb3JtYXR0ZXIuZm9ybWF0KHJlY29y
ZCkKLQotICAgICAgICAjICJzZXJ2ZXIiIHBhcmFtZXRlciBtdXN0IGJlIHBhc3NlZCB0byBoYXZl
ICJsZXZlbCIgcGFyYW1ldGVyIHdvcmsuCi0gICAgICAgICMgSWYgb25seSAibGV2ZWwiIHBhcmFt
ZXRlciBpcyBwYXNzZWQsIG5vdGhpbmcgc2hvd3MgdXAgb24gQXBhY2hlJ3MKLSAgICAgICAgIyBs
b2cuIEhvd2V2ZXIsIGF0IHRoaXMgcG9pbnQsIHdlIGNhbm5vdCBnZXQgdGhlIHNlcnZlciBvYmpl
Y3Qgb2YgdGhlCi0gICAgICAgICMgdmlydHVhbCBob3N0IHdoaWNoIHdpbGwgcHJvY2VzcyBXZWJT
b2NrZXQgcmVxdWVzdHMuIFRoZSBvbmx5IHNlcnZlcgotICAgICAgICAjIG9iamVjdCB3ZSBjYW4g
Z2V0IGhlcmUgaXMgYXBhY2hlLm1haW5fc2VydmVyLiBCdXQgV2hlcmV2ZXIgKHNlcnZlcgotICAg
ICAgICAjIGNvbmZpZ3VyYXRpb24gY29udGV4dCBvciB2aXJ0dWFsIGhvc3QgY29udGV4dCkgd2Ug
cHV0Ci0gICAgICAgICMgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBkaXJlY3RpdmUsIGFwYWNo
ZS5tYWluX3NlcnZlciBqdXN0IHBvaW50cwotICAgICAgICAjIHRoZSBtYWluIHNlcnZlciBpbnN0
YW5jZSAobm90IGFueSBvZiB2aXJ0dWFsIHNlcnZlciBpbnN0YW5jZSkuIFRoZW4sCi0gICAgICAg
ICMgQXBhY2hlIGZvbGxvd3MgTG9nTGV2ZWwgZGlyZWN0aXZlIGluIHRoZSBzZXJ2ZXIgY29uZmln
dXJhdGlvbiBjb250ZXh0Ci0gICAgICAgICMgdG8gZmlsdGVyIGxvZ3MuIFNvLCB3ZSBuZWVkIHRv
IHNwZWNpZnkgTG9nTGV2ZWwgaW4gdGhlIHNlcnZlcgotICAgICAgICAjIGNvbmZpZ3VyYXRpb24g
Y29udGV4dC4gRXZlbiBpZiB3ZSBzcGVjaWZ5ICJMb2dMZXZlbCBkZWJ1ZyIgaW4gdGhlCi0gICAg
ICAgICMgdmlydHVhbCBob3N0IGNvbnRleHQgd2hpY2ggYWN0dWFsbHkgaGFuZGxlcyBXZWJTb2Nr
ZXQgY29ubmVjdGlvbnMsCi0gICAgICAgICMgREVCVUcgbGV2ZWwgbG9ncyBuZXZlciBzaG93IHVw
IHVubGVzcyAiTG9nTGV2ZWwgZGVidWciIGlzIHNwZWNpZmllZAotICAgICAgICAjIGluIHRoZSBz
ZXJ2ZXIgY29uZmlndXJhdGlvbiBjb250ZXh0LgotICAgICAgICAjCi0gICAgICAgICMgVE9ETyh0
eW9zaGlubyk6IFByb3ZpZGUgbG9nZ2luZyBtZXRob2RzIG9uIHJlcXVlc3Qgb2JqZWN0LiBXaGVu
Ci0gICAgICAgICMgcmVxdWVzdCBpcyBtcF9yZXF1ZXN0IG9iamVjdCAod2hlbiB1c2VkIHRvZ2V0
aGVyIHdpdGggQXBhY2hlKSwgdGhlCi0gICAgICAgICMgbWV0aG9kcyBjYWxsIHJlcXVlc3QubG9n
X2Vycm9yIGluZGlyZWN0bHkuIFdoZW4gcmVxdWVzdCBpcwotICAgICAgICAjIF9TdGFuZGFsb25l
UmVxdWVzdCwgdGhlIG1ldGhvZHMgY2FsbCBQeXRob24ncyBsb2dnaW5nIGZhY2lsaXR5IHdoaWNo
Ci0gICAgICAgICMgd2UgY3JlYXRlIGluIHN0YW5kYWxvbmUucHkuCi0gICAgICAgIHNlbGYuX2xv
Z19lcnJvcihtc2csIGFwYWNoZV9sZXZlbCwgYXBhY2hlLm1haW5fc2VydmVyKQotCi0KLWRlZiBf
Y29uZmlndXJlX2xvZ2dpbmcoKToKLSAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCi0g
ICAgIyBMb2dzIGFyZSBmaWx0ZXJlZCBieSBBcGFjaGUgYmFzZWQgb24gTG9nTGV2ZWwgZGlyZWN0
aXZlIGluIEFwYWNoZQotICAgICMgY29uZmlndXJhdGlvbiBmaWxlLiBXZSBtdXN0IGp1c3QgcGFz
cyBsb2dzIGZvciBhbGwgbGV2ZWxzIHRvCi0gICAgIyBBcGFjaGVMb2dIYW5kbGVyLgotICAgIGxv
Z2dlci5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQotICAgIGxvZ2dlci5hZGRIYW5kbGVyKEFwYWNo
ZUxvZ0hhbmRsZXIoKSkKLQotCi1fY29uZmlndXJlX2xvZ2dpbmcoKQotCi1fTE9HR0VSID0gbG9n
Z2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0KLQotZGVmIF9wYXJzZV9vcHRpb24obmFtZSwgdmFs
dWUsIGRlZmluaXRpb24pOgotICAgIGlmIHZhbHVlIGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBG
YWxzZQotCi0gICAgbWVhbmluZyA9IGRlZmluaXRpb24uZ2V0KHZhbHVlLmxvd2VyKCkpCi0gICAg
aWYgbWVhbmluZyBpcyBOb25lOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgdmFs
dWUgZm9yIFB5dGhvbk9wdGlvbiAlczogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgIChu
YW1lLCB2YWx1ZSkpCi0gICAgcmV0dXJuIG1lYW5pbmcKLQotCi1kZWYgX2NyZWF0ZV9kaXNwYXRj
aGVyKCk6Ci0gICAgX0xPR0dFUi5pbmZvKCdJbml0aWFsaXppbmcgRGlzcGF0Y2hlcicpCi0KLSAg
ICBvcHRpb25zID0gYXBhY2hlLm1haW5fc2VydmVyLmdldF9vcHRpb25zKCkKLQotICAgIGhhbmRs
ZXJfcm9vdCA9IG9wdGlvbnMuZ2V0KF9QWU9QVF9IQU5ETEVSX1JPT1QsIE5vbmUpCi0gICAgaWYg
bm90IGhhbmRsZXJfcm9vdDoKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdQeXRob25PcHRpb24g
JXMgaXMgbm90IGRlZmluZWQnICUgX1BZT1BUX0hBTkRMRVJfUk9PVCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFwYWNoZS5BUExPR19FUlIpCi0KLSAgICBoYW5kbGVyX3NjYW4gPSBvcHRpb25z
LmdldChfUFlPUFRfSEFORExFUl9TQ0FOLCBoYW5kbGVyX3Jvb3QpCi0KLSAgICBhbGxvd19oYW5k
bGVyc19vdXRzaWRlX3Jvb3QgPSBfcGFyc2Vfb3B0aW9uKAotICAgICAgICBfUFlPUFRfQUxMT1df
SEFORExFUlNfT1VUU0lERV9ST09ULAotICAgICAgICBvcHRpb25zLmdldChfUFlPUFRfQUxMT1df
SEFORExFUlNfT1VUU0lERV9ST09UKSwKLSAgICAgICAgX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09V
VFNJREVfUk9PVF9ERUZJTklUSU9OKQotCi0gICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3Bh
dGNoZXIoCi0gICAgICAgIGhhbmRsZXJfcm9vdCwgaGFuZGxlcl9zY2FuLCBhbGxvd19oYW5kbGVy
c19vdXRzaWRlX3Jvb3QpCi0KLSAgICBmb3Igd2FybmluZyBpbiBkaXNwYXRjaGVyLnNvdXJjZV93
YXJuaW5ncygpOgotICAgICAgICBhcGFjaGUubG9nX2Vycm9yKAotICAgICAgICAgICAgJ21vZF9w
eXdlYnNvY2tldDogV2FybmluZyBpbiBzb3VyY2UgbG9hZGluZzogJXMnICUgd2FybmluZywKLSAg
ICAgICAgICAgIGFwYWNoZS5BUExPR19XQVJOSU5HKQotCi0gICAgcmV0dXJuIGRpc3BhdGNoZXIK
LQotCi0jIEluaXRpYWxpemUKLV9kaXNwYXRjaGVyID0gX2NyZWF0ZV9kaXNwYXRjaGVyKCkKLQot
Ci1kZWYgaGVhZGVycGFyc2VyaGFuZGxlcihyZXF1ZXN0KToKLSAgICAiIiJIYW5kbGUgcmVxdWVz
dC4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLQot
ICAgIFRoaXMgZnVuY3Rpb24gaXMgbmFtZWQgaGVhZGVycGFyc2VyaGFuZGxlciBiZWNhdXNlIGl0
IGlzIHRoZSBkZWZhdWx0Ci0gICAgbmFtZSBmb3IgYSBQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVy
LgotICAgICIiIgotCi0gICAgaGFuZHNoYWtlX2lzX2RvbmUgPSBGYWxzZQotICAgIHRyeToKLSAg
ICAgICAgIyBGYWxsYmFjayB0byBkZWZhdWx0IGh0dHAgaGFuZGxlciBmb3IgcmVxdWVzdCBwYXRo
cyBmb3Igd2hpY2gKLSAgICAgICAgIyB3ZSBkb24ndCBoYXZlIHJlcXVlc3QgaGFuZGxlcnMuCi0g
ICAgICAgIGlmIG5vdCBfZGlzcGF0Y2hlci5nZXRfaGFuZGxlcl9zdWl0ZShyZXF1ZXN0LnVyaSk6
Ci0gICAgICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAgICAgICAgICAgICAnbW9kX3B5
d2Vic29ja2V0OiBObyBoYW5kbGVyIGZvciByZXNvdXJjZTogJXInICUgcmVxdWVzdC51cmksCi0g
ICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgICAgICAgICByZXF1ZXN0Lmxv
Z19lcnJvcigKLSAgICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0OiBGYWxsYmFjayB0byBB
cGFjaGUnLCBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICAgICAgICAgIHJldHVybiBhcGFjaGUuREVD
TElORUQKLSAgICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGU6Ci0gICAgICAg
IHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogRGlzcGF0
Y2ggZmFpbGVkIGZvciBlcnJvcjogJXMnICUgZSwKLSAgICAgICAgICAgIGFwYWNoZS5BUExPR19J
TkZPKQotICAgICAgICBpZiBub3QgaGFuZHNoYWtlX2lzX2RvbmU6Ci0gICAgICAgICAgICByZXR1
cm4gZS5zdGF0dXMKLQotICAgIHRyeToKLSAgICAgICAgYWxsb3dfZHJhZnQ3NSA9IF9wYXJzZV9v
cHRpb24oCi0gICAgICAgICAgICBfUFlPUFRfQUxMT1dfRFJBRlQ3NSwKLSAgICAgICAgICAgIGFw
YWNoZS5tYWluX3NlcnZlci5nZXRfb3B0aW9ucygpLmdldChfUFlPUFRfQUxMT1dfRFJBRlQ3NSks
Ci0gICAgICAgICAgICBfUFlPUFRfQUxMT1dfRFJBRlQ3NV9ERUZJTklUSU9OKQotCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGhhbmRzaGFrZS5kb19oYW5kc2hha2UoCi0gICAgICAgICAgICAg
ICAgcmVxdWVzdCwgX2Rpc3BhdGNoZXIsIGFsbG93RHJhZnQ3NT1hbGxvd19kcmFmdDc1KQotICAg
ICAgICBleGNlcHQgaGFuZHNoYWtlLlZlcnNpb25FeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBy
ZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0OiBIYW5k
c2hha2UgZmFpbGVkIGZvciB2ZXJzaW9uIGVycm9yOiAlcycgJSBlLAotICAgICAgICAgICAgICAg
IGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICAgICAgcmVxdWVzdC5lcnJfaGVhZGVyc19vdXQu
YWRkKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3VwcG9ydGVkX3ZlcnNpb25zKQotICAgICAgICAg
ICAgcmV0dXJuIGFwYWNoZS5IVFRQX0JBRF9SRVFVRVNUCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hh
a2UuSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgIyBIYW5kc2hha2UgZm9yIHdz
L3dzcyBmYWlsZWQuCi0gICAgICAgICAgICAjIFNlbmQgaHR0cCByZXNwb25zZSB3aXRoIGVycm9y
IHN0YXR1cy4KLSAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAgICAgICAg
ICdtb2RfcHl3ZWJzb2NrZXQ6IEhhbmRzaGFrZSBmYWlsZWQgZm9yIGVycm9yOiAlcycgJSBlLAot
ICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICAgICAgcmV0dXJuIGUu
c3RhdHVzCi0KLSAgICAgICAgaGFuZHNoYWtlX2lzX2RvbmUgPSBUcnVlCi0gICAgICAgIHJlcXVl
c3QuX2Rpc3BhdGNoZXIgPSBfZGlzcGF0Y2hlcgotICAgICAgICBfZGlzcGF0Y2hlci50cmFuc2Zl
cl9kYXRhKHJlcXVlc3QpCi0gICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0
aW9uLCBlOgotICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcignbW9kX3B5d2Vic29ja2V0OiBBYm9y
dGVkOiAlcycgJSBlLCBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICBleGNlcHQgRXhjZXB0aW9uLCBl
OgotICAgICAgICAjIERpc3BhdGNoRXhjZXB0aW9uIGNhbiBhbHNvIGJlIHRocm93biBpZiBzb21l
dGhpbmcgaXMgd3JvbmcgaW4KLSAgICAgICAgIyBweXdlYnNvY2tldCBjb2RlLiBJdCdzIGNhdWdo
dCBoZXJlLCB0aGVuLgotCi0gICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKCdtb2RfcHl3ZWJzb2Nr
ZXQ6IEV4Y2VwdGlvbiBvY2N1cnJlZDogJXNcbiVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIChlLCB1dGlsLmdldF9zdGFja190cmFjZSgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXBhY2hlLkFQTE9HX0VSUikKLSAgICAgICAgIyBVbmtub3duIGV4Y2VwdGlvbnMgYmVmb3Jl
IGhhbmRzaGFrZSBtZWFuIEFwYWNoZSBtdXN0IGhhbmRsZSBpdHMKLSAgICAgICAgIyByZXF1ZXN0
IHdpdGggYW5vdGhlciBoYW5kbGVyLgotICAgICAgICBpZiBub3QgaGFuZHNoYWtlX2lzX2RvbmU6
Ci0gICAgICAgICAgICByZXR1cm4gYXBhY2hlLkRFQ0xJTkVECi0gICAgIyBTZXQgYXNzYmFja3dh
cmRzIHRvIHN1cHByZXNzIHJlc3BvbnNlIGhlYWRlciBnZW5lcmF0aW9uIGJ5IEFwYWNoZS4KLSAg
ICByZXF1ZXN0LmFzc2JhY2t3YXJkcyA9IDEKLSAgICByZXR1cm4gYXBhY2hlLkRPTkUgICMgUmV0
dXJuIERPTkUgc3VjaCB0aGF0IG5vIG90aGVyIGhhbmRsZXJzIGFyZSBpbnZva2VkLgotCi0KLSMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2h0
dHBfaGVhZGVyX3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJf
dXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc3NDY1MzkzMjg1ZmYxYmQ2
YmY4ZDk5NDAxY2M2NzQ0MjEyNWUwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJfdXRpbC5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDI2MyArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJVdGlsaXRpZXMgZm9yIHBhcnNpbmcgYW5kIGZvcm1hdHRpbmcgaGVhZGVycyB0aGF0IGZvbGxv
dyB0aGUgZ3JhbW1hciBkZWZpbmVkCi1pbiBIVFRQIFJGQyBodHRwOi8vd3d3LmlldGYub3JnL3Jm
Yy9yZmMyNjE2LnR4dC4KLSIiIgotCi0KLWltcG9ydCB1cmxwYXJzZQotCi0KLV9TRVBBUkFUT1JT
ID0gJygpPD5ALDs6XFwiL1tdPz17fSBcdCcKLQotCi1kZWYgX2lzX2NoYXIoYyk6Ci0gICAgIiIi
UmV0dXJucyB0cnVlIGlmZiBjIGlzIGluIENIQVIgYXMgc3BlY2lmaWVkIGluIEhUVFAgUkZDLiIi
IgotCi0gICAgcmV0dXJuIG9yZChjKSA8PSAxMjcKLQotCi1kZWYgX2lzX2N0bChjKToKLSAgICAi
IiJSZXR1cm5zIHRydWUgaWZmIGMgaXMgaW4gQ1RMIGFzIHNwZWNpZmllZCBpbiBIVFRQIFJGQy4i
IiIKLQotICAgIHJldHVybiBvcmQoYykgPD0gMzEgb3Igb3JkKGMpID09IDEyNwotCi0KLWNsYXNz
IFBhcnNpbmdTdGF0ZShvYmplY3QpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEpOgot
ICAgICAgICBzZWxmLmRhdGEgPSBkYXRhCi0gICAgICAgIHNlbGYuaGVhZCA9IDAKLQotCi1kZWYg
cGVlayhzdGF0ZSwgcG9zPTApOgotICAgICIiIlBlZWtzIHRoZSBjaGFyYWN0ZXIgYXQgcG9zIGZy
b20gdGhlIGhlYWQgb2YgZGF0YS4iIiIKLQotICAgIGlmIHN0YXRlLmhlYWQgKyBwb3MgPj0gbGVu
KHN0YXRlLmRhdGEpOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgcmV0dXJuIHN0YXRlLmRh
dGFbc3RhdGUuaGVhZCArIHBvc10KLQotCi1kZWYgY29uc3VtZShzdGF0ZSwgYW1vdW50PTEpOgot
ICAgICIiIkNvbnN1bWVzIHNwZWNpZmllZCBhbW91bnQgb2YgYnl0ZXMgZnJvbSB0aGUgaGVhZCBh
bmQgcmV0dXJucyB0aGUKLSAgICBjb25zdW1lZCBieXRlcy4gSWYgdGhlcmUncyBub3QgZW5vdWdo
IGJ5dGVzIHRvIGNvbnN1bWUsIHJldHVybnMgTm9uZS4KLSAgICAiIiIKLQotICAgIGlmIHN0YXRl
LmhlYWQgKyBhbW91bnQgPiBsZW4oc3RhdGUuZGF0YSk6Ci0gICAgICAgIHJldHVybiBOb25lCi0K
LSAgICByZXN1bHQgPSBzdGF0ZS5kYXRhW3N0YXRlLmhlYWQ6c3RhdGUuaGVhZCArIGFtb3VudF0K
LSAgICBzdGF0ZS5oZWFkID0gc3RhdGUuaGVhZCArIGFtb3VudAotICAgIHJldHVybiByZXN1bHQK
LQotCi1kZWYgY29uc3VtZV9zdHJpbmcoc3RhdGUsIGV4cGVjdGVkKToKLSAgICAiIiJHaXZlbiBh
IHBhcnNpbmcgc3RhdGUgYW5kIGEgZXhwZWN0ZWQgc3RyaW5nLCBjb25zdW1lcyB0aGUgc3RyaW5n
IGZyb20KLSAgICB0aGUgaGVhZC4gUmV0dXJucyBUcnVlIGlmIGNvbnN1bWVkIHN1Y2Nlc3NmdWxs
eS4gT3RoZXJ3aXNlLCByZXR1cm5zCi0gICAgRmFsc2UuCi0gICAgIiIiCi0KLSAgICBwb3MgPSAw
Ci0KLSAgICBmb3IgYyBpbiBleHBlY3RlZDoKLSAgICAgICAgaWYgYyAhPSBwZWVrKHN0YXRlLCBw
b3MpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHBvcyArPSAxCi0KLSAgICBj
b25zdW1lKHN0YXRlLCBwb3MpCi0gICAgcmV0dXJuIFRydWUKLQotCi1kZWYgY29uc3VtZV9sd3Mo
c3RhdGUpOgotICAgICIiIkNvbnN1bWVzIGEgTFdTIGZyb20gdGhlIGhlYWQuIFJldHVybnMgVHJ1
ZSBpZiBhbnkgTFdTIGlzIGNvbnN1bWVkLgotICAgIE90aGVyd2lzZSwgcmV0dXJucyBGYWxzZS4K
LQotICAgIExXUyA9IFtDUkxGXSAxKiggU1AgfCBIVCApCi0gICAgIiIiCi0KLSAgICBvcmlnaW5h
bF9oZWFkID0gc3RhdGUuaGVhZAotCi0gICAgY29uc3VtZV9zdHJpbmcoc3RhdGUsICdcclxuJykK
LQotICAgIHBvcyA9IDAKLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGMgPSBwZWVrKHN0YXRl
LCBwb3MpCi0gICAgICAgIGlmIGMgPT0gJyAnIG9yIGMgPT0gJ1x0JzoKLSAgICAgICAgICAgIHBv
cyArPSAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBwb3MgPT0gMDoKLSAgICAgICAg
ICAgICAgICBzdGF0ZS5oZWFkID0gb3JpZ2luYWxfaGVhZAotICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBjb25zdW1lKHN0YXRl
LCBwb3MpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotCi1kZWYgY29uc3VtZV9sd3Nl
cyhzdGF0ZSk6Ci0gICAgIiIiQ29uc3VtZXMgKkxXUyBmcm9tIHRoZSBoZWFkLiIiIgotCi0gICAg
d2hpbGUgY29uc3VtZV9sd3Moc3RhdGUpOgotICAgICAgICBwYXNzCi0KLQotZGVmIGNvbnN1bWVf
dG9rZW4oc3RhdGUpOgotICAgICIiIkNvbnN1bWVzIGEgdG9rZW4gZnJvbSB0aGUgaGVhZC4gUmV0
dXJucyB0aGUgdG9rZW4gb3IgTm9uZSBpZiBubyB0b2tlbgotICAgIHdhcyBmb3VuZC4KLSAgICAi
IiIKLQotICAgIHBvcyA9IDAKLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGMgPSBwZWVrKHN0
YXRlLCBwb3MpCi0gICAgICAgIGlmIGMgaXMgTm9uZSBvciBjIGluIF9TRVBBUkFUT1JTIG9yIF9p
c19jdGwoYykgb3Igbm90IF9pc19jaGFyKGMpOgotICAgICAgICAgICAgaWYgcG9zID09IDA6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWUo
c3RhdGUsIHBvcykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHBvcyArPSAxCi0KLQotZGVm
IGNvbnN1bWVfdG9rZW5fb3JfcXVvdGVkX3N0cmluZyhzdGF0ZSk6Ci0gICAgIiIiQ29uc3VtZXMg
YSB0b2tlbiBvciBhIHF1b3RlZC1zdHJpbmcsIGFuZCByZXR1cm5zIHRoZSB0b2tlbiBvciB1bnF1
b3RlZAotICAgIHN0cmluZy4gSWYgbm8gdG9rZW4gb3IgcXVvdGVkLXN0cmluZyB3YXMgZm91bmQs
IHJldHVybnMgTm9uZS4KLSAgICAiIiIKLQotICAgIG9yaWdpbmFsX2hlYWQgPSBzdGF0ZS5oZWFk
Ci0KLSAgICBpZiBub3QgY29uc3VtZV9zdHJpbmcoc3RhdGUsICciJyk6Ci0gICAgICAgIHJldHVy
biBjb25zdW1lX3Rva2VuKHN0YXRlKQotCi0gICAgcmVzdWx0ID0gW10KLQotICAgIGV4cGVjdF9x
dW90ZWRfcGFpciA9IEZhbHNlCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBpZiBub3QgZXhw
ZWN0X3F1b3RlZF9wYWlyIGFuZCBjb25zdW1lX2x3cyhzdGF0ZSk6Ci0gICAgICAgICAgICByZXN1
bHQuYXBwZW5kKCcgJykKLSAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgYyA9IGNvbnN1
bWUoc3RhdGUpCi0gICAgICAgIGlmIGMgaXMgTm9uZToKLSAgICAgICAgICAgICMgcXVvdGVkLXN0
cmluZyBpcyBub3QgZW5jbG9zZWQgd2l0aCBkb3VibGUgcXVvdGF0aW9uCi0gICAgICAgICAgICBz
dGF0ZS5oZWFkID0gb3JpZ2luYWxfaGVhZAotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAg
ICAgZWxpZiBleHBlY3RfcXVvdGVkX3BhaXI6Ci0gICAgICAgICAgICBleHBlY3RfcXVvdGVkX3Bh
aXIgPSBGYWxzZQotICAgICAgICAgICAgaWYgX2lzX2NoYXIoYyk6Ci0gICAgICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZChjKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIE5v
biBDSEFSIGNoYXJhY3RlciBmb3VuZCBpbiBxdW90ZWQtcGFpcgotICAgICAgICAgICAgICAgIHN0
YXRlLmhlYWQgPSBvcmlnaW5hbF9oZWFkCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAg
ICAgICAgZWxpZiBjID09ICdcXCc6Ci0gICAgICAgICAgICBleHBlY3RfcXVvdGVkX3BhaXIgPSBU
cnVlCi0gICAgICAgIGVsaWYgYyA9PSAnIic6Ci0gICAgICAgICAgICByZXR1cm4gJycuam9pbihy
ZXN1bHQpCi0gICAgICAgIGVsaWYgX2lzX2N0bChjKToKLSAgICAgICAgICAgICMgSW52YWxpZCBj
aGFyYWN0ZXIgJXIgZm91bmQgaW4gcWR0ZXh0Ci0gICAgICAgICAgICBzdGF0ZS5oZWFkID0gb3Jp
Z2luYWxfaGVhZAotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoYykKLQotCi1kZWYgcXVvdGVfaWZfbmVjZXNzYXJ5KHMpOgot
ICAgICIiIlF1b3RlcyBhcmJpdHJhcnkgc3RyaW5nIGludG8gcXVvdGVkLXN0cmluZy4iIiIKLQot
ICAgIHF1b3RlID0gRmFsc2UKLSAgICBpZiBzID09ICcnOgotICAgICAgICByZXR1cm4gJyIiJwot
Ci0gICAgcmVzdWx0ID0gW10KLSAgICBmb3IgYyBpbiBzOgotICAgICAgICBpZiBjID09ICciJyBv
ciBjIGluIF9TRVBBUkFUT1JTIG9yIF9pc19jdGwoYykgb3Igbm90IF9pc19jaGFyKGMpOgotICAg
ICAgICAgICAgcXVvdGUgPSBUcnVlCi0KLSAgICAgICAgaWYgYyA9PSAnIicgb3IgX2lzX2N0bChj
KToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xcJyArIGMpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpCi0KLSAgICBpZiBxdW90ZToKLSAgICAgICAgcmV0
dXJuICciJyArICcnLmpvaW4ocmVzdWx0KSArICciJwotICAgIGVsc2U6Ci0gICAgICAgIHJldHVy
biAnJy5qb2luKHJlc3VsdCkKLQotCi1kZWYgcGFyc2VfdXJpKHVyaSk6Ci0gICAgIiIiUGFyc2Ug
YWJzb2x1dGUgVVJJIHRoZW4gcmV0dXJuIGhvc3QsIHBvcnQgYW5kIHJlc291cmNlLiIiIgotCi0g
ICAgcGFyc2VkID0gdXJscGFyc2UudXJsc3BsaXQodXJpKQotICAgIGlmIHBhcnNlZC5zY2hlbWUg
IT0gJ3dzcycgYW5kIHBhcnNlZC5zY2hlbWUgIT0gJ3dzJzoKLSAgICAgICAgIyB8dXJpfCBtdXN0
IGJlIGEgcmVsYXRpdmUgVVJJLgotICAgICAgICAjIFRPRE8odG95b3NoaW0pOiBTaG91bGQgdmFs
aWRhdGUgfHVyaXwuCi0gICAgICAgIHJldHVybiBOb25lLCBOb25lLCB1cmkKLQotICAgIGlmIHBh
cnNlZC5ob3N0bmFtZSBpcyBOb25lOgotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQot
Ci0gICAgcG9ydCA9IE5vbmUKLSAgICB0cnk6Ci0gICAgICAgIHBvcnQgPSBwYXJzZWQucG9ydAot
ICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAjIHBvcnQgcHJvcGVydHkgY2F1c2Ug
VmFsdWVFcnJvciBvbiBpbnZhbGlkIG51bGwgcG9ydCBkZXNjcmlwdGlvbiBsaWtlCi0gICAgICAg
ICMgJ3dzOi8vaG9zdDovcGF0aCcuCi0gICAgICAgIHJldHVybiBOb25lLCBOb25lLCBOb25lCi0K
LSAgICBpZiBwb3J0IGlzIE5vbmU6Ci0gICAgICAgIGlmIHBhcnNlZC5zY2hlbWUgPT0gJ3dzJzoK
LSAgICAgICAgICAgIHBvcnQgPSA4MAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcG9ydCA9
IDQ0MwotCi0gICAgcGF0aCA9IHBhcnNlZC5wYXRoCi0gICAgaWYgbm90IHBhdGg6Ci0gICAgICAg
IHBhdGggKz0gJy8nCi0gICAgaWYgcGFyc2VkLnF1ZXJ5OgotICAgICAgICBwYXRoICs9ICc/JyAr
IHBhcnNlZC5xdWVyeQotICAgIGlmIHBhcnNlZC5mcmFnbWVudDoKLSAgICAgICAgcGF0aCArPSAn
IycgKyBwYXJzZWQuZnJhZ21lbnQKLQotICAgIHJldHVybiBwYXJzZWQuaG9zdG5hbWUsIHBvcnQs
IHBhdGgKLQotCi10cnk6Ci0gICAgdXJscGFyc2UudXNlc19uZXRsb2MuaW5kZXgoJ3dzJykKLWV4
Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICMgdXJscGFyc2UgaW4gUHl0aG9uMi41LjEgZG9lc24n
dCBoYXZlICd3cycgYW5kICd3c3MnIGVudHJpZXMuCi0gICAgdXJscGFyc2UudXNlc19uZXRsb2Mu
YXBwZW5kKCd3cycpCi0gICAgdXJscGFyc2UudXNlc19uZXRsb2MuYXBwZW5kKCd3c3MnKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L21lbW9yaXppbmdmaWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdm
aWxlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDRjZDk1ODU5NWFiZGZjMGM0
MGQ0MzA4NDg4NzAwYjdiOTNjNmI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQor
KysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwot
IyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiTWVtb3JpemluZyBmaWxlLgotCi1BIG1lbW9yaXppbmcg
ZmlsZSB3cmFwcyBhIGZpbGUgYW5kIG1lbW9yaXplcyBsaW5lcyByZWFkIGJ5IHJlYWRsaW5lLgot
IiIiCi0KLQotaW1wb3J0IHN5cwotCi0KLWNsYXNzIE1lbW9yaXppbmdGaWxlKG9iamVjdCk6Ci0g
ICAgIiIiTWVtb3JpemluZ0ZpbGUgd3JhcHMgYSBmaWxlIGFuZCBtZW1vcml6ZXMgbGluZXMgcmVh
ZCBieSByZWFkbGluZS4KLQotICAgIE5vdGUgdGhhdCBkYXRhIHJlYWQgYnkgb3RoZXIgbWV0aG9k
cyBhcmUgbm90IG1lbW9yaXplZC4gVGhpcyBiZWhhdmlvcgotICAgIGlzIGdvb2QgZW5vdWdoIGZv
ciBtZW1vcml6aW5nIGxpbmVzIFNpbXBsZUhUVFBTZXJ2ZXIgcmVhZHMgYmVmb3JlCi0gICAgdGhl
IGNvbnRyb2wgcmVhY2hlcyBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlci4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlXywgbWF4X21lbW9yaXplZF9saW5lcz1zeXMubWF4aW50
KToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgICBmaWxlXzogdGhlIGZpbGUgb2JqZWN0IHRvIHdyYXAuCi0gICAgICAgICAgICBt
YXhfbWVtb3JpemVkX2xpbmVzOiB0aGUgbWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gbWVtb3Jp
emUuCi0gICAgICAgICAgICAgICAgT25seSB0aGUgZmlyc3QgbWF4X21lbW9yaXplZF9saW5lcyBh
cmUgbWVtb3JpemVkLgotICAgICAgICAgICAgICAgIERlZmF1bHQ6IHN5cy5tYXhpbnQuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHNlbGYuX2ZpbGUgPSBmaWxlXwotICAgICAgICBzZWxmLl9tZW1v
cml6ZWRfbGluZXMgPSBbXQotICAgICAgICBzZWxmLl9tYXhfbWVtb3JpemVkX2xpbmVzID0gbWF4
X21lbW9yaXplZF9saW5lcwotICAgICAgICBzZWxmLl9idWZmZXJlZCA9IEZhbHNlCi0gICAgICAg
IHNlbGYuX2J1ZmZlcmVkX2xpbmUgPSBOb25lCi0KLSAgICBkZWYgX19nZXRhdHRyaWJ1dGVfXyhz
ZWxmLCBuYW1lKToKLSAgICAgICAgaWYgbmFtZSBpbiAoJ19maWxlJywgJ19tZW1vcml6ZWRfbGlu
ZXMnLCAnX21heF9tZW1vcml6ZWRfbGluZXMnLAotICAgICAgICAgICAgICAgICAgICAnX2J1ZmZl
cmVkJywgJ19idWZmZXJlZF9saW5lJywgJ3JlYWRsaW5lJywKLSAgICAgICAgICAgICAgICAgICAg
J2dldF9tZW1vcml6ZWRfbGluZXMnKToKLSAgICAgICAgICAgIHJldHVybiBvYmplY3QuX19nZXRh
dHRyaWJ1dGVfXyhzZWxmLCBuYW1lKQotICAgICAgICByZXR1cm4gc2VsZi5fZmlsZS5fX2dldGF0
dHJpYnV0ZV9fKG5hbWUpCi0KLSAgICBkZWYgcmVhZGxpbmUoc2VsZiwgc2l6ZT0tMSk6Ci0gICAg
ICAgICIiIk92ZXJyaWRlIGZpbGUucmVhZGxpbmUgYW5kIG1lbW9yaXplIHRoZSBsaW5lIHJlYWQu
Ci0KLSAgICAgICAgTm90ZSB0aGF0IGV2ZW4gaWYgc2l6ZSBpcyBzcGVjaWZpZWQgYW5kIHNtYWxs
ZXIgdGhhbiBhY3R1YWwgc2l6ZSwKLSAgICAgICAgdGhlIHdob2xlIGxpbmUgd2lsbCBiZSByZWFk
IG91dCBmcm9tIHVuZGVybHlpbmcgZmlsZSBvYmplY3QgYnkKLSAgICAgICAgc3Vic2VxdWVudCBy
ZWFkbGluZSBjYWxscy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fYnVmZmVyZWQ6
Ci0gICAgICAgICAgICBsaW5lID0gc2VsZi5fYnVmZmVyZWRfbGluZQotICAgICAgICAgICAgc2Vs
Zi5fYnVmZmVyZWQgPSBGYWxzZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbGluZSA9IHNl
bGYuX2ZpbGUucmVhZGxpbmUoKQotICAgICAgICAgICAgaWYgbGluZSBhbmQgbGVuKHNlbGYuX21l
bW9yaXplZF9saW5lcykgPCBzZWxmLl9tYXhfbWVtb3JpemVkX2xpbmVzOgotICAgICAgICAgICAg
ICAgIHNlbGYuX21lbW9yaXplZF9saW5lcy5hcHBlbmQobGluZSkKLSAgICAgICAgaWYgc2l6ZSA+
PSAwIGFuZCBzaXplIDwgbGVuKGxpbmUpOgotICAgICAgICAgICAgc2VsZi5fYnVmZmVyZWQgPSBU
cnVlCi0gICAgICAgICAgICBzZWxmLl9idWZmZXJlZF9saW5lID0gbGluZVtzaXplOl0KLSAgICAg
ICAgICAgIHJldHVybiBsaW5lWzpzaXplXQotICAgICAgICByZXR1cm4gbGluZQotCi0gICAgZGVm
IGdldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAgICAgICIiIkdldCBsaW5lcyBtZW1vcml6
ZWQgc28gZmFyLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fbWVtb3JpemVkX2xpbmVzCi0KLQot
IyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQv
bXNndXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tc2d1dGlsLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzFhMDExNGI0YmM0MThiMjBlNmExNTU2NTllOTI1N2Fh
YjczNmVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL21vZF9weXdlYnNvY2tldC9tc2d1dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjE5
ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0
cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIk1lc3NhZ2UgcmVsYXRlZCB1dGlsaXRp
ZXMuCi0KLU5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZS9yZWFkIGFyZSB1c2VkIGluIHRo
aXMgbW9kdWxlLCBldmVuIHRob3VnaAotbW9kX3B5dGhvbiBkb2N1bWVudCBzYXlzIHRoYXQgdGhl
eSBzaG91bGQgYmUgdXNlZCBvbmx5IGluIGNvbm5lY3Rpb24KLWhhbmRsZXJzLiBVbmZvcnR1bmF0
ZWx5LCB3ZSBoYXZlIG5vIG90aGVyIG9wdGlvbnMuIEZvciBleGFtcGxlLAotcmVxdWVzdC53cml0
ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVjYXVzZSB0aGV5IGRvbid0IGFsbG93IGRpcmVjdCBy
YXcKLWJ5dGVzIHdyaXRpbmcvcmVhZGluZy4KLSIiIgotCi0KLWltcG9ydCBRdWV1ZQotaW1wb3J0
IHRocmVhZGluZwotCi0KLSMgRXhwb3J0IEV4Y2VwdGlvbiBzeW1ib2xzIGZyb20gbXNndXRpbCBm
b3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9i
YXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVF
eGNlcHRpb24KLQotCi0jIEFuIEFQSSBmb3IgaGFuZGxlciB0byBzZW5kL3JlY2VpdmUgV2ViU29j
a2V0IG1lc3NhZ2VzLgotZGVmIGNsb3NlX2Nvbm5lY3Rpb24ocmVxdWVzdCk6Ci0gICAgIiIiQ2xv
c2UgY29ubmVjdGlvbi4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24g
cmVxdWVzdC4KLSAgICAiIiIKLSAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9u
KCkKLQotCi1kZWYgc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWRfZGF0YSwgZW5kPVRydWUs
IGJpbmFyeT1GYWxzZSk6Ci0gICAgIiIiU2VuZCBhIG1lc3NhZ2UgKG9yIHBhcnQgb2YgYSBtZXNz
YWdlKS4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4K
LSAgICAgICAgcGF5bG9hZF9kYXRhOiB1bmljb2RlIHRleHQgb3Igc3RyIGJpbmFyeSB0byBzZW5k
LgotICAgICAgICBlbmQ6IFRydWUgdG8gdGVybWluYXRlIGEgbWVzc2FnZS4KLSAgICAgICAgICAg
ICBGYWxzZSB0byBzZW5kIHBheWxvYWRfZGF0YSBhcyBwYXJ0IG9mIGEgbWVzc2FnZSB0aGF0IGlz
IHRvIGJlCi0gICAgICAgICAgICAgdGVybWluYXRlZCBieSBuZXh0IG9yIGxhdGVyIHNlbmRfbWVz
c2FnZSBjYWxsIHdpdGggZW5kPVRydWUuCi0gICAgICAgIGJpbmFyeTogc2VuZCBwYXlsb2FkX2Rh
dGEgYXMgYmluYXJ5IGZyYW1lKHMpLgotICAgIFJhaXNlczoKLSAgICAgICAgQmFkT3BlcmF0aW9u
RXhjZXB0aW9uOiB3aGVuIHNlcnZlciBhbHJlYWR5IHRlcm1pbmF0ZWQuCi0gICAgIiIiCi0gICAg
cmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKHBheWxvYWRfZGF0YSwgZW5kLCBiaW5hcnkp
Ci0KLQotZGVmIHJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KToKLSAgICAiIiJSZWNlaXZlIGEgV2Vi
U29ja2V0IGZyYW1lIGFuZCByZXR1cm4gaXRzIHBheWxvYWQgYXMgYSB0ZXh0IGluCi0gICAgdW5p
Y29kZSBvciBhIGJpbmFyeSBpbiBzdHIuCi0KLSAgICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBt
b2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgUmFpc2VzOgotICAgICAgICBJbnZhbGlkRnJhbWVFeGNl
cHRpb246ICAgICB3aGVuIGNsaWVudCBzZW5kIGludmFsaWQgZnJhbWUuCi0gICAgICAgIFVuc3Vw
cG9ydGVkRnJhbWVFeGNlcHRpb246IHdoZW4gY2xpZW50IHNlbmQgdW5zdXBwb3J0ZWQgZnJhbWUg
ZS5nLiBzb21lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHJlc2VydmVk
IGJpdCBpcyBzZXQgYnV0IG5vIGV4dGVuc2lvbiBjYW4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVjb2duaXplIGl0LgotICAgICAgICBJbnZhbGlkVVRGOEV4Y2VwdGlvbjog
ICAgICB3aGVuIGNsaWVudCBzZW5kIGEgdGV4dCBmcmFtZSBjb250YWluaW5nIGFueQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkIFVURi04IHN0cmluZy4KLSAgICAg
ICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gdGhlIGNvbm5lY3Rpb24gaXMg
Y2xvc2VkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRseS4K
LSAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiAgICAgd2hlbiBjbGllbnQgYWxyZWFkeSB0
ZXJtaW5hdGVkLgotICAgICIiIgotICAgIHJldHVybiByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZl
X21lc3NhZ2UoKQotCi0KLWRlZiBzZW5kX3BpbmcocmVxdWVzdCwgYm9keT0nJyk6Ci0gICAgcmVx
dWVzdC53c19zdHJlYW0uc2VuZF9waW5nKGJvZHkpCi0KLQotY2xhc3MgTWVzc2FnZVJlY2VpdmVy
KHRocmVhZGluZy5UaHJlYWQpOgotICAgICIiIlRoaXMgY2xhc3MgcmVjZWl2ZXMgbWVzc2FnZXMg
ZnJvbSB0aGUgY2xpZW50LgotCi0gICAgVGhpcyBjbGFzcyBwcm92aWRlcyB0aHJlZSB3YXlzIHRv
IHJlY2VpdmUgbWVzc2FnZXM6IGJsb2NraW5nLAotICAgIG5vbi1ibG9ja2luZywgYW5kIHZpYSBj
YWxsYmFjay4gQ2FsbGJhY2sgaGFzIHRoZSBoaWdoZXN0IHByZWNlZGVuY2UuCi0KLSAgICBOb3Rl
OiBUaGlzIGNsYXNzIHNob3VsZCBub3QgYmUgdXNlZCB3aXRoIHRoZSBzdGFuZGFsb25lIHNlcnZl
ciBmb3Igd3NzCi0gICAgYmVjYXVzZSBweU9wZW5TU0wgdXNlZCBieSB0aGUgc2VydmVyIHJhaXNl
cyBhIGZhdGFsIGVycm9yIGlmIHRoZSBzb2NrZXQKLSAgICBpcyBhY2Nlc3NlZCBmcm9tIG11bHRp
cGxlIHRocmVhZHMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwg
b25tZXNzYWdlPU5vbmUpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAg
ICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAg
ICAgICAgICAgIG9ubWVzc2FnZTogYSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBhIG1lc3Nh
Z2UgaXMgcmVjZWl2ZWQuCi0gICAgICAgICAgICAgICAgICAgICAgIE1heSBiZSBOb25lLiBJZiBu
b3QgTm9uZSwgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbgotICAgICAgICAgICAgICAgICAgICAg
ICBhbm90aGVyIHRocmVhZC4gSW4gdGhhdCBjYXNlLCBNZXNzYWdlUmVjZWl2ZXIucmVjZWl2ZQot
ICAgICAgICAgICAgICAgICAgICAgICBhbmQgTWVzc2FnZVJlY2VpdmVyLnJlY2VpdmVfbm93YWl0
IGFyZSB1c2VsZXNzCi0gICAgICAgICAgICAgICAgICAgICAgIGJlY2F1c2UgdGhleSB3aWxsIG5l
dmVyIHJldHVybiBhbnkgbWVzc2FnZXMuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRocmVhZGlu
Zy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QK
LSAgICAgICAgc2VsZi5fcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0gICAgICAgIHNlbGYuX29ubWVz
c2FnZSA9IG9ubWVzc2FnZQotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IEZhbHNlCi0g
ICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0gICAgICAgIHNlbGYuc3RhcnQoKQotCi0gICAg
ZGVmIHJ1bihzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYu
X3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSByZWNlaXZlX21lc3Nh
Z2Uoc2VsZi5fcmVxdWVzdCkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vbm1lc3NhZ2U6Ci0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX29ubWVzc2FnZShtZXNzYWdlKQotICAgICAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3F1ZXVlLnB1dChtZXNzYWdlKQot
ICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgY2xvc2VfY29ubmVjdGlvbihzZWxmLl9yZXF1
ZXN0KQotCi0gICAgZGVmIHJlY2VpdmUoc2VsZik6Ci0gICAgICAgICIiIiBSZWNlaXZlIGEgbWVz
c2FnZSBmcm9tIHRoZSBjaGFubmVsLCBibG9ja2luZy4KLQotICAgICAgICBSZXR1cm5zOgotICAg
ICAgICAgICAgbWVzc2FnZSBhcyBhIHVuaWNvZGUgc3RyaW5nLgotICAgICAgICAiIiIKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX3F1ZXVlLmdldCgpCi0KLSAgICBkZWYgcmVjZWl2ZV9ub3dhaXQoc2Vs
Zik6Ci0gICAgICAgICIiIiBSZWNlaXZlIGEgbWVzc2FnZSBmcm9tIHRoZSBjaGFubmVsLCBub24t
YmxvY2tpbmcuCi0KLSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICAgIG1lc3NhZ2UgYXMgYSB1
bmljb2RlIHN0cmluZyBpZiBhdmFpbGFibGUuIE5vbmUgb3RoZXJ3aXNlLgotICAgICAgICAiIiIK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3F1ZXVlLmdldF9ub3dh
aXQoKQotICAgICAgICBleGNlcHQgUXVldWUuRW1wdHk6Ci0gICAgICAgICAgICBtZXNzYWdlID0g
Tm9uZQotICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgZGVmIHN0b3Aoc2VsZik6Ci0gICAg
ICAgICIiIlJlcXVlc3QgdG8gc3RvcCB0aGlzIGluc3RhbmNlLgotCi0gICAgICAgIFRoZSBpbnN0
YW5jZSB3aWxsIGJlIHN0b3BwZWQgYWZ0ZXIgcmVjZWl2aW5nIHRoZSBuZXh0IG1lc3NhZ2UuCi0g
ICAgICAgIFRoaXMgbWV0aG9kIG1heSBub3QgYmUgdmVyeSB1c2VmdWwsIGJ1dCB0aGVyZSBpcyBu
byBjbGVhbiB3YXkKLSAgICAgICAgaW4gUHl0aG9uIHRvIGZvcmNlZnVsbHkgc3RvcCBhIHJ1bm5p
bmcgdGhyZWFkLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBU
cnVlCi0KLQotY2xhc3MgTWVzc2FnZVNlbmRlcih0aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJU
aGlzIGNsYXNzIHNlbmRzIG1lc3NhZ2VzIHRvIHRoZSBjbGllbnQuCi0KLSAgICBUaGlzIGNsYXNz
IHByb3ZpZGVzIGJvdGggc3luY2hyb25vdXMgYW5kIGFzeW5jaHJvbm91cyB3YXlzIHRvIHNlbmQK
LSAgICBtZXNzYWdlcy4KLQotICAgIE5vdGU6IFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSB1c2Vk
IHdpdGggdGhlIHN0YW5kYWxvbmUgc2VydmVyIGZvciB3c3MKLSAgICBiZWNhdXNlIHB5T3BlblNT
TCB1c2VkIGJ5IHRoZSBzZXJ2ZXIgcmFpc2VzIGEgZmF0YWwgZXJyb3IgaWYgdGhlIHNvY2tldAot
ICAgIGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KLSAgICAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3Rh
bmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJl
cXVlc3QuCi0gICAgICAgICIiIgotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNl
bGYpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX3F1ZXVl
ID0gUXVldWUuUXVldWUoKQotICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotICAgICAgICBz
ZWxmLnN0YXJ0KCkKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0g
ICAgICAgICAgICBtZXNzYWdlLCBjb25kaXRpb24gPSBzZWxmLl9xdWV1ZS5nZXQoKQotICAgICAg
ICAgICAgY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgc2VuZF9tZXNzYWdlKHNlbGYu
X3JlcXVlc3QsIG1lc3NhZ2UpCi0gICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5KCkKLSAgICAg
ICAgICAgIGNvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBzZW5kKHNlbGYsIG1lc3NhZ2Up
OgotICAgICAgICAiIiJTZW5kIGEgbWVzc2FnZSwgYmxvY2tpbmcuIiIiCi0KLSAgICAgICAgY29u
ZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0gICAgICAgIGNvbmRpdGlvbi5hY3F1aXJl
KCkKLSAgICAgICAgc2VsZi5fcXVldWUucHV0KChtZXNzYWdlLCBjb25kaXRpb24pKQotICAgICAg
ICBjb25kaXRpb24ud2FpdCgpCi0KLSAgICBkZWYgc2VuZF9ub3dhaXQoc2VsZiwgbWVzc2FnZSk6
Ci0gICAgICAgICIiIlNlbmQgYSBtZXNzYWdlLCBub24tYmxvY2tpbmcuIiIiCi0KLSAgICAgICAg
c2VsZi5fcXVldWUucHV0KChtZXNzYWdlLCB0aHJlYWRpbmcuQ29uZGl0aW9uKCkpKQotCi0KLSMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L211
eC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tdXgucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc2MzM0Njg1YjMxMTIyNWUzODczYjliODI4ZWQwMzFhN2U5MDc4MDIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9k
X3B5d2Vic29ja2V0L211eC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE4ODkgKzAsMCBAQAotIyBD
b3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIGNsYXNzZXMgYW5kIGhlbHBl
ciBmdW5jdGlvbnMgZm9yIG11bHRpcGxleGluZyBleHRlbnNpb24uCi0KLVNwZWNpZmljYXRpb246
Ci1odHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWh5Ymktd2Vic29ja2V0LW11
bHRpcGxleGluZy0wNgotIiIiCi0KLQotaW1wb3J0IGNvbGxlY3Rpb25zCi1pbXBvcnQgY29weQot
aW1wb3J0IGVtYWlsCi1pbXBvcnQgZW1haWwucGFyc2VyCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0
IG1hdGgKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCB0aHJlYWRpbmcKLWltcG9ydCB0cmFjZWJhY2sK
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQgaW1wb3J0IGhhbmRzaGFrZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZy
b20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFkT3BlcmF0aW9uRXhjZXB0
aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1w
b3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9o
eWJpIGltcG9ydCBGcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9y
dCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFt
T3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVf
YmluYXJ5X2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNy
ZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFt
X2h5YmkgaW1wb3J0IGNyZWF0ZV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1f
aHliaSBpbXBvcnQgY3JlYXRlX2xlbmd0aF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1faHliaSBpbXBvcnQgcGFyc2VfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRz
aGFrZSBpbXBvcnQgaHliaQotCi0KLV9DT05UUk9MX0NIQU5ORUxfSUQgPSAwCi1fREVGQVVMVF9D
SEFOTkVMX0lEID0gMQotCi1fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUID0gMAotX01V
WF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0UgPSAxCi1fTVVYX09QQ09ERV9GTE9XX0NPTlRS
T0wgPSAyCi1fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwgPSAzCi1fTVVYX09QQ09ERV9ORVdfQ0hB
Tk5FTF9TTE9UID0gNAotCi1fTUFYX0NIQU5ORUxfSUQgPSAyICoqIDI5IC0gMQotCi1fSU5JVElB
TF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUyA9IDY0Ci1fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5U
ID0gOCAqIDEwMjQKLQotX0hBTkRTSEFLRV9FTkNPRElOR19JREVOVElUWSA9IDAKLV9IQU5EU0hB
S0VfRU5DT0RJTkdfREVMVEEgPSAxCi0KLSMgV2UgbmVlZCBvbmx5IHRoZXNlIHN0YXR1cyBjb2Rl
IGZvciBub3cuCi1fSFRUUF9CQURfUkVTUE9OU0VfTUVTU0FHRVMgPSB7Ci0gICAgY29tbW9uLkhU
VFBfU1RBVFVTX0JBRF9SRVFVRVNUOiAnQmFkIFJlcXVlc3QnLAotfQotCi0jIERyb3BDaGFubmVs
IHJlYXNvbiBjb2RlCi0jIFRPRE8oYmFzaGkpOiBEZWZpbmUgYWxsIHJlYXNvbiBjb2RlIGRlZmlu
ZWQgaW4gLTA1IGRyYWZ0LgotX0RST1BfQ09ERV9OT1JNQUxfQ0xPU1VSRSA9IDEwMDAKLQotX0RS
T1BfQ09ERV9JTlZBTElEX0VOQ0FQU1VMQVRJTkdfTUVTU0FHRSA9IDIwMDEKLV9EUk9QX0NPREVf
Q0hBTk5FTF9JRF9UUlVOQ0FURUQgPSAyMDAyCi1fRFJPUF9DT0RFX0VOQ0FQU1VMQVRFRF9GUkFN
RV9JU19UUlVOQ0FURUQgPSAyMDAzCi1fRFJPUF9DT0RFX1VOS05PV05fTVVYX09QQ09ERSA9IDIw
MDQKLV9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSyA9IDIwMDUKLV9EUk9QX0NP
REVfQ0hBTk5FTF9BTFJFQURZX0VYSVNUUyA9IDIwMDYKLV9EUk9QX0NPREVfTkVXX0NIQU5ORUxf
U0xPVF9WSU9MQVRJT04gPSAyMDA3Ci1fRFJPUF9DT0RFX1VOS05PV05fUkVRVUVTVF9FTkNPRElO
RyA9IDIwMTAKLQotX0RST1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElPTiA9IDMwMDUKLV9EUk9Q
X0NPREVfU0VORF9RVU9UQV9PVkVSRkxPVyA9IDMwMDYKLV9EUk9QX0NPREVfQUNLTk9XTEVER0VE
ID0gMzAwOAotX0RST1BfQ09ERV9CQURfRlJBR01FTlRBVElPTiA9IDMwMDkKLQotCi1jbGFzcyBN
dXhVbmV4cGVjdGVkRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiRXhjZXB0aW9uIGluIGhh
bmRsaW5nIG11bHRpcGxleGluZyBleHRlbnNpb24uIiIiCi0gICAgcGFzcwotCi0KLSMgVGVtcG9y
YXJ5Ci1jbGFzcyBNdXhOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIi
IlJhaXNlZCB3aGVuIGEgZmxvdyBlbnRlcnMgdW5pbXBsZW1lbnRlZCBjb2RlIHBhdGguIiIiCi0g
ICAgcGFzcwotCi0KLWNsYXNzIExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uKEV4Y2Vw
dGlvbik6Ci0gICAgIiIiUmFpc2VkIHdoZW4gbG9naWNhbCBjb25uZWN0aW9uIGlzIGdyYWNlZnVs
bHkgY2xvc2VkLiIiIgotICAgIHBhc3MKLQotCi1jbGFzcyBQaHlzaWNhbENvbm5lY3Rpb25FcnJv
cihFeGNlcHRpb24pOgotICAgICIiIlJhaXNlZCB3aGVuIHRoZXJlIGlzIGEgcGh5c2ljYWwgY29u
bmVjdGlvbiBlcnJvci4iIiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZHJvcF9jb2RlLCBtZXNz
YWdlPScnKToKLSAgICAgICAgc3VwZXIoUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IsIHNlbGYpLl9f
aW5pdF9fKAotICAgICAgICAgICAgJ2NvZGU9JWQsIG1lc3NhZ2U9JXInICUgKGRyb3BfY29kZSwg
bWVzc2FnZSkpCi0gICAgICAgIHNlbGYuZHJvcF9jb2RlID0gZHJvcF9jb2RlCi0gICAgICAgIHNl
bGYubWVzc2FnZSA9IG1lc3NhZ2UKLQotCi1jbGFzcyBMb2dpY2FsQ2hhbm5lbEVycm9yKEV4Y2Vw
dGlvbik6Ci0gICAgIiIiUmFpc2VkIHdoZW4gdGhlcmUgaXMgYSBsb2dpY2FsIGNoYW5uZWwgZXJy
b3IuIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNoYW5uZWxfaWQsIGRyb3BfY29kZSwgbWVz
c2FnZT0nJyk6Ci0gICAgICAgIHN1cGVyKExvZ2ljYWxDaGFubmVsRXJyb3IsIHNlbGYpLl9faW5p
dF9fKAotICAgICAgICAgICAgJ2NoYW5uZWxfaWQ9JWQsIGNvZGU9JWQsIG1lc3NhZ2U9JXInICUg
KAotICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQsIGRyb3BfY29kZSwgbWVzc2FnZSkpCi0gICAg
ICAgIHNlbGYuY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgc2VsZi5kcm9wX2NvZGUg
PSBkcm9wX2NvZGUKLSAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQotCi0KLWRlZiBfZW5j
b2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCk6Ci0gICAgaWYgY2hhbm5lbF9pZCA8IDA6Ci0gICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0NoYW5uZWwgaWQgJWQgbXVzdCBub3QgYmUgbmVnYXRpdmUn
ICUgY2hhbm5lbF9pZCkKLQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDc6Ci0gICAgICAgIHJl
dHVybiBjaHIoY2hhbm5lbF9pZCkKLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAxNDoKLSAgICAg
ICAgcmV0dXJuIHN0cnVjdC5wYWNrKCchSCcsIDB4ODAwMCArIGNoYW5uZWxfaWQpCi0gICAgaWYg
Y2hhbm5lbF9pZCA8IDIgKiogMjE6Ci0gICAgICAgIGZpcnN0ID0gY2hyKDB4YzAgKyAoY2hhbm5l
bF9pZCA+PiAxNikpCi0gICAgICAgIHJldHVybiBmaXJzdCArIHN0cnVjdC5wYWNrKCchSCcsIGNo
YW5uZWxfaWQgJiAweGZmZmYpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMjk6Ci0gICAgICAg
IHJldHVybiBzdHJ1Y3QucGFjaygnIUwnLCAweGUwMDAwMDAwICsgY2hhbm5lbF9pZCkKLQotICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ0NoYW5uZWwgaWQgJWQgaXMgdG9vIGxhcmdlJyAlIGNoYW5uZWxf
aWQpCi0KLQotZGVmIF9lbmNvZGVfbnVtYmVyKG51bWJlcik6Ci0gICAgcmV0dXJuIGNyZWF0ZV9s
ZW5ndGhfaGVhZGVyKG51bWJlciwgRmFsc2UpCi0KLQotZGVmIF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVzcG9uc2UoY2hhbm5lbF9pZCwgZW5jb2RlZF9oYW5kc2hha2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbmNvZGluZz0wLCByZWplY3RlZD1GYWxzZSk6Ci0gICAgaWYgZW5j
b2RpbmcgIT0gMCBhbmQgZW5jb2RpbmcgIT0gMToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcign
SW52YWxpZCBlbmNvZGluZyAlZCcgJSBlbmNvZGluZykKLQotICAgIGZpcnN0X2J5dGUgPSAoKF9N
VVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFIDw8IDUpIHwKLSAgICAgICAgICAgICAgICAg
IChyZWplY3RlZCA8PCA0KSB8IGVuY29kaW5nKQotICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRl
KSArCi0gICAgICAgICAgICAgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKLSAgICAg
ICAgICAgICBfZW5jb2RlX251bWJlcihsZW4oZW5jb2RlZF9oYW5kc2hha2UpKSArCi0gICAgICAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgcmV0dXJuIGJsb2NrCi0KLQotZGVmIF9jcmVh
dGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGU9Tm9uZSwgbWVzc2FnZT0nJyk6Ci0gICAg
aWYgbGVuKG1lc3NhZ2UpID4gMCBhbmQgY29kZSBpcyBOb25lOgotICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCdDb2RlIG11c3QgYmUgc3BlY2lmaWVkIGlmIG1lc3NhZ2UgaXMgc3BlY2lmaWVkJykK
LQotICAgIGZpcnN0X2J5dGUgPSBfTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwgPDwgNQotICAgIGJs
b2NrID0gY2hyKGZpcnN0X2J5dGUpICsgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpCi0g
ICAgaWYgY29kZSBpcyBOb25lOgotICAgICAgICBibG9jayArPSBfZW5jb2RlX251bWJlcigwKSAj
IFJlYXNvbiBzaXplCi0gICAgZWxzZToKLSAgICAgICAgcmVhc29uID0gc3RydWN0LnBhY2soJyFI
JywgY29kZSkgKyBtZXNzYWdlCi0gICAgICAgIHJlYXNvbl9zaXplID0gX2VuY29kZV9udW1iZXIo
bGVuKHJlYXNvbikpCi0gICAgICAgIGJsb2NrICs9IHJlYXNvbl9zaXplICsgcmVhc29uCi0KLSAg
ICByZXR1cm4gYmxvY2sKLQotCi1kZWYgX2NyZWF0ZV9mbG93X2NvbnRyb2woY2hhbm5lbF9pZCwg
cmVwbGVuaXNoZWRfcXVvdGEpOgotICAgIGZpcnN0X2J5dGUgPSBfTVVYX09QQ09ERV9GTE9XX0NP
TlRST0wgPDwgNQotICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArCi0gICAgICAgICAgICAg
X2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKLSAgICAgICAgICAgICBfZW5jb2RlX251
bWJlcihyZXBsZW5pc2hlZF9xdW90YSkpCi0gICAgcmV0dXJuIGJsb2NrCi0KLQotZGVmIF9jcmVh
dGVfbmV3X2NoYW5uZWxfc2xvdChzbG90cywgc2VuZF9xdW90YSk6Ci0gICAgaWYgc2xvdHMgPCAw
IG9yIHNlbmRfcXVvdGEgPCAwOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzbG90cyBhbmQg
c2VuZF9xdW90YSBtdXN0IGJlIG5vbi1uZWdhdGl2ZS4nKQotICAgIGZpcnN0X2J5dGUgPSBfTVVY
X09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UIDw8IDUKLSAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0
ZSkgKwotICAgICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKHNsb3RzKSArCi0gICAgICAgICAgICAg
X2VuY29kZV9udW1iZXIoc2VuZF9xdW90YSkpCi0gICAgcmV0dXJuIGJsb2NrCi0KLQotZGVmIF9j
cmVhdGVfZmFsbGJhY2tfbmV3X2NoYW5uZWxfc2xvdCgpOgotICAgIGZpcnN0X2J5dGUgPSAoX01V
WF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVCA8PCA1KSB8IDEgIyBTZXQgdGhlIEYgZmxhZwotICAg
IGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfbnVtYmVyKDApICsgX2VuY29kZV9u
dW1iZXIoMCkpCi0gICAgcmV0dXJuIGJsb2NrCi0KLQotZGVmIF9wYXJzZV9yZXF1ZXN0X3RleHQo
cmVxdWVzdF90ZXh0KToKLSAgICByZXF1ZXN0X2xpbmUsIGhlYWRlcl9saW5lcyA9IHJlcXVlc3Rf
dGV4dC5zcGxpdCgnXHJcbicsIDEpCi0KLSAgICB3b3JkcyA9IHJlcXVlc3RfbGluZS5zcGxpdCgn
ICcpCi0gICAgaWYgbGVuKHdvcmRzKSAhPSAzOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdC
YWQgUmVxdWVzdC1MaW5lIHN5bnRheCAlcicgJSByZXF1ZXN0X2xpbmUpCi0gICAgW2NvbW1hbmQs
IHBhdGgsIHZlcnNpb25dID0gd29yZHMKLSAgICBpZiB2ZXJzaW9uICE9ICdIVFRQLzEuMSc6Ci0g
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCByZXF1ZXN0IHZlcnNpb24gJXInICUgdmVyc2lv
bikKLQotICAgICMgZW1haWwucGFyc2VyLlBhcnNlcigpIHBhcnNlcyBSRkMgMjgyMiAoUkZDIDgy
Mikgc3R5bGUgaGVhZGVycy4KLSAgICAjIFJGQyA2NDU1IHJlZmVycyBSRkMgMjYxNiBmb3IgaGFu
ZHNoYWtlIHBhcnNpbmcsIGFuZCBSRkMgMjYxNiByZWZlcnMKLSAgICAjIFJGQyA4MjIuCi0gICAg
aGVhZGVycyA9IGVtYWlsLnBhcnNlci5QYXJzZXIoKS5wYXJzZXN0cihoZWFkZXJfbGluZXMpCi0g
ICAgcmV0dXJuIGNvbW1hbmQsIHBhdGgsIHZlcnNpb24sIGhlYWRlcnMKLQotCi1jbGFzcyBfQ29u
dHJvbEJsb2NrKG9iamVjdCk6Ci0gICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCBob2xkcyBwYXJzaW5n
IHJlc3VsdCBvZiBtdWx0aXBsZXhpbmcgY29udHJvbCBibG9jay4KLSAgICBDb250cm9sIGJsb2Nr
IHNwZWNpZmljIGF0dHJpYnV0ZXMgd2lsbCBiZSBhZGRlZCBieSBfTXV4RnJhbWVQYXlsb2FkUGFy
c2VyLgotICAgIChlLmcuIGVuY29kZWRfaGFuZHNoYWtlIHdpbGwgYmUgYWRkZWQgZm9yIEFkZENo
YW5uZWxSZXF1ZXN0IGFuZAotICAgIEFkZENoYW5uZWxSZXNwb25zZSkKLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBvcGNvZGUpOgotICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29k
ZQotCi0KLWNsYXNzIF9NdXhGcmFtZVBheWxvYWRQYXJzZXIob2JqZWN0KToKLSAgICAiIiJBIGNs
YXNzIHRoYXQgcGFyc2VzIG11bHRpcGxleGVkIGZyYW1lIHBheWxvYWQuIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcGF5bG9hZCk6Ci0gICAgICAgIHNlbGYuX2RhdGEgPSBwYXlsb2FkCi0g
ICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gPSAwCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgZGVmIHJlYWRfY2hhbm5lbF9pZChzZWxm
KToKLSAgICAgICAgIiIiUmVhZHMgY2hhbm5lbCBpZC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAg
ICAgICAgICBWYWx1ZUVycm9yOiB3aGVuIHRoZSBwYXlsb2FkIGRvZXNuJ3QgY29udGFpbgotICAg
ICAgICAgICAgICAgIHZhbGlkIGNoYW5uZWwgaWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJl
bWFpbmluZ19sZW5ndGggPSBsZW4oc2VsZi5fZGF0YSkgLSBzZWxmLl9yZWFkX3Bvc2l0aW9uCi0g
ICAgICAgIHBvcyA9IHNlbGYuX3JlYWRfcG9zaXRpb24KLSAgICAgICAgaWYgcmVtYWluaW5nX2xl
bmd0aCA9PSAwOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVs
IGlkIGZvcm1hdCcpCi0KLSAgICAgICAgY2hhbm5lbF9pZCA9IG9yZChzZWxmLl9kYXRhW3Bvc10p
Ci0gICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gMQotICAgICAgICBpZiBjaGFubmVsX2lkICYg
MHhlMCA9PSAweGUwOgotICAgICAgICAgICAgaWYgcmVtYWluaW5nX2xlbmd0aCA8IDQ6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcp
Ci0gICAgICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVucGFjaygnIUwnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZGF0YVtwb3M6cG9zKzRdKVswXSAm
IDB4MWZmZmZmZmYKLSAgICAgICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gNAotICAgICAgICBl
bGlmIGNoYW5uZWxfaWQgJiAweGMwID09IDB4YzA6Ci0gICAgICAgICAgICBpZiByZW1haW5pbmdf
bGVuZ3RoIDwgMzoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNo
YW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgICAgIGNoYW5uZWxfaWQgPSAoKChjaGFubmVsX2lk
ICYgMHgxZikgPDwgMTYpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0LnVucGFj
aygnIUgnLCBzZWxmLl9kYXRhW3BvcysxOnBvcyszXSlbMF0pCi0gICAgICAgICAgICBjaGFubmVs
X2lkX2xlbmd0aCA9IDMKLSAgICAgICAgZWxpZiBjaGFubmVsX2lkICYgMHg4MCA9PSAweDgwOgot
ICAgICAgICAgICAgaWYgcmVtYWluaW5nX2xlbmd0aCA8IDI6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAgICAgICBj
aGFubmVsX2lkID0gc3RydWN0LnVucGFjaygnIUgnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fZGF0YVtwb3M6cG9zKzJdKVswXSAmIDB4M2ZmZgotICAgICAg
ICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAyCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24g
Kz0gY2hhbm5lbF9pZF9sZW5ndGgKLQotICAgICAgICByZXR1cm4gY2hhbm5lbF9pZAotCi0gICAg
ZGVmIHJlYWRfaW5uZXJfZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIlJlYWRzIGFuIGlubmVyIGZy
YW1lLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIFBoeXNpY2FsQ29ubmVjdGlvbkVy
cm9yOiB3aGVuIHRoZSBpbm5lciBmcmFtZSBpcyBpbnZhbGlkLgotICAgICAgICAiIiIKLQotICAg
ICAgICBpZiBsZW4oc2VsZi5fZGF0YSkgPT0gc2VsZi5fcmVhZF9wb3NpdGlvbjoKLSAgICAgICAg
ICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9Q
X0NPREVfRU5DQVBTVUxBVEVEX0ZSQU1FX0lTX1RSVU5DQVRFRCkKLQotICAgICAgICBiaXRzID0g
b3JkKHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3NpdGlvbl0pCi0gICAgICAgIHNlbGYuX3JlYWRf
cG9zaXRpb24gKz0gMQotICAgICAgICBmaW4gPSAoYml0cyAmIDB4ODApID09IDB4ODAKLSAgICAg
ICAgcnN2MSA9IChiaXRzICYgMHg0MCkgPT0gMHg0MAotICAgICAgICByc3YyID0gKGJpdHMgJiAw
eDIwKSA9PSAweDIwCi0gICAgICAgIHJzdjMgPSAoYml0cyAmIDB4MTApID09IDB4MTAKLSAgICAg
ICAgb3Bjb2RlID0gYml0cyAmIDB4ZgotICAgICAgICBwYXlsb2FkID0gc2VsZi5yZW1haW5pbmdf
ZGF0YSgpCi0gICAgICAgICMgQ29uc3VtZSByZXN0IG9mIHRoZSBtZXNzYWdlIHdoaWNoIGlzIHBh
eWxvYWQgZGF0YSBvZiB0aGUgb3JpZ2luYWwKLSAgICAgICAgIyBmcmFtZS4KLSAgICAgICAgc2Vs
Zi5fcmVhZF9wb3NpdGlvbiA9IGxlbihzZWxmLl9kYXRhKQotICAgICAgICByZXR1cm4gZmluLCBy
c3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWQKLQotICAgIGRlZiBfcmVhZF9udW1iZXIo
c2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX3JlYWRfcG9zaXRpb24gKyAxID4gbGVuKHNlbGYuX2Rh
dGEpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAnQ2Fu
bm90IHJlYWQgdGhlIGZpcnN0IGJ5dGUgb2YgbnVtYmVyIGZpZWxkJykKLQotICAgICAgICBudW1i
ZXIgPSBvcmQoc2VsZi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uXSkKLSAgICAgICAgaWYgbnVt
YmVyICYgMHg4MCA9PSAweDgwOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAg
ICAgICAgICAgICAnVGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIHRoZSBmaXJzdCBieXRlIG9m
IG51bWJlciBzaG91bGQgJwotICAgICAgICAgICAgICAgICdiZSB1bnNldCcpCi0gICAgICAgIHNl
bGYuX3JlYWRfcG9zaXRpb24gKz0gMQotICAgICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9u
Ci0gICAgICAgIGlmIG51bWJlciA9PSAxMjc6Ci0gICAgICAgICAgICBpZiBwb3MgKyA4ID4gbGVu
KHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQg
bnVtYmVyIGZpZWxkJykKLSAgICAgICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gOAotICAg
ICAgICAgICAgbnVtYmVyID0gc3RydWN0LnVucGFjaygnIVEnLCBzZWxmLl9kYXRhW3Bvczpwb3Mr
OF0pWzBdCi0gICAgICAgICAgICBpZiBudW1iZXIgPiAweDdGRkZGRkZGRkZGRkZGRkY6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignRW5jb2RlZCBudW1iZXIoJWQpID49IDJeNjMn
ICUgbnVtYmVyKQotICAgICAgICAgICAgaWYgbnVtYmVyIDw9IDB4RkZGRjoKLSAgICAgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnJWQgc2hvdWxkIG5v
dCBiZSBlbmNvZGVkIGJ5IDkgYnl0ZXMgZW5jb2RpbmcnICUgbnVtYmVyKQotICAgICAgICAgICAg
cmV0dXJuIG51bWJlcgotICAgICAgICBpZiBudW1iZXIgPT0gMTI2OgotICAgICAgICAgICAgaWYg
cG9zICsgMiA+IGxlbihzZWxmLl9kYXRhKToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdJbnZhbGlkIG51bWJlciBmaWVsZCcpCi0gICAgICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0
aW9uICs9IDIKLSAgICAgICAgICAgIG51bWJlciA9IHN0cnVjdC51bnBhY2soJyFIJywgc2VsZi5f
ZGF0YVtwb3M6cG9zKzJdKVswXQotICAgICAgICAgICAgaWYgbnVtYmVyIDw9IDEyNToKLSAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnJWQgc2hv
dWxkIG5vdCBiZSBlbmNvZGVkIGJ5IDMgYnl0ZXMgZW5jb2RpbmcnICUgbnVtYmVyKQotICAgICAg
ICByZXR1cm4gbnVtYmVyCi0KLSAgICBkZWYgX3JlYWRfc2l6ZV9hbmRfY29udGVudHMoc2VsZik6
Ci0gICAgICAgICIiIlJlYWRzIGRhdGEgdGhhdCBjb25zaXN0cyBvZiBmb2xsb3dpbmdzOgotICAg
ICAgICAgICAgLSB0aGUgc2l6ZSBvZiB0aGUgY29udGVudHMgZW5jb2RlZCB0aGUgc2FtZSB3YXkg
YXMgcGF5bG9hZCBsZW5ndGgKLSAgICAgICAgICAgICAgb2YgdGhlIFdlYlNvY2tldCBQcm90b2Nv
bCB3aXRoIDEgYml0IHBhZGRpbmcgYXQgdGhlIGhlYWQuCi0gICAgICAgICAgICAtIHRoZSBjb250
ZW50cy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2l6ZSA9IHNl
bGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAg
ICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0lOVkFMSURfTVVY
X0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHIoZSkpCi0gICAgICAgIHBvcyA9IHNlbGYuX3JlYWRfcG9zaXRpb24KLSAgICAgICAgaWYg
cG9zICsgc2l6ZSA+IGxlbihzZWxmLl9kYXRhKToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2Fs
Q29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhf
Q09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAnQ2Fubm90IHJlYWQgJWQgYnl0ZXMgZGF0
YScgJSBzaXplKQotCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gc2l6ZQotICAgICAg
ICByZXR1cm4gc2VsZi5fZGF0YVtwb3M6cG9zK3NpemVdCi0KLSAgICBkZWYgX3JlYWRfYWRkX2No
YW5uZWxfcmVxdWVzdChzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAg
cmVzZXJ2ZWQgPSAoZmlyc3RfYnl0ZSA+PiAyKSAmIDB4NwotICAgICAgICBpZiByZXNlcnZlZCAh
PSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAg
ICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAg
ICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5zZXQnKQotCi0gICAgICAgICMgSW52YWxp
ZCBlbmNvZGluZyB3aWxsIGJlIGhhbmRsZWQgYnkgTXV4SGFuZGxlci4KLSAgICAgICAgZW5jb2Rp
bmcgPSBmaXJzdF9ieXRlICYgMHgzCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xf
YmxvY2suY2hhbm5lbF9pZCA9IHNlbGYucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0
IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJv
cihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0spCi0gICAgICAgIGNvbnRyb2xf
YmxvY2suZW5jb2RpbmcgPSBlbmNvZGluZwotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IHNl
bGYuX3JlYWRfc2l6ZV9hbmRfY29udGVudHMoKQotICAgICAgICBjb250cm9sX2Jsb2NrLmVuY29k
ZWRfaGFuZHNoYWtlID0gZW5jb2RlZF9oYW5kc2hha2UKLSAgICAgICAgcmV0dXJuIGNvbnRyb2xf
YmxvY2sKLQotICAgIGRlZiBfcmVhZF9hZGRfY2hhbm5lbF9yZXNwb25zZShzZWxmLCBmaXJzdF9i
eXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQgPSAoZmlyc3RfYnl0ZSA+PiAy
KSAmIDB4MwotICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5
c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElE
X01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3Qg
YmUgdW5zZXQnKQotCi0gICAgICAgIGNvbnRyb2xfYmxvY2suYWNjZXB0ZWQgPSAoZmlyc3RfYnl0
ZSA+PiA0KSAmIDEKLSAgICAgICAgY29udHJvbF9ibG9jay5lbmNvZGluZyA9IGZpcnN0X2J5dGUg
JiAweDMKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lk
ID0gc2VsZi5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToK
LSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5W
QUxJRF9NVVhfQ09OVFJPTF9CTE9DSykKLSAgICAgICAgY29udHJvbF9ibG9jay5lbmNvZGVkX2hh
bmRzaGFrZSA9IHNlbGYuX3JlYWRfc2l6ZV9hbmRfY29udGVudHMoKQotICAgICAgICByZXR1cm4g
Y29udHJvbF9ibG9jawotCi0gICAgZGVmIF9yZWFkX2Zsb3dfY29udHJvbChzZWxmLCBmaXJzdF9i
eXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQgPSBmaXJzdF9ieXRlICYgMHgx
ZgotICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxD
b25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9D
T05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5z
ZXQnKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9p
ZCA9IHNlbGYucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suc2Vu
ZF9xdW90YSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3Is
IGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RF
X0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHIoZSkpCi0KLSAgICAgICAgcmV0dXJuIGNvbnRyb2xfYmxvY2sKLQot
ICAgIGRlZiBfcmVhZF9kcm9wX2NoYW5uZWwoc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9j
ayk6Ci0gICAgICAgIHJlc2VydmVkID0gZmlyc3RfYnl0ZSAmIDB4MWYKLSAgICAgICAgaWYgcmVz
ZXJ2ZWQgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAot
ICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAg
ICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKLQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLmNoYW5uZWxfaWQgPSBzZWxmLnJlYWRfY2hh
bm5lbF9pZCgpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAgICAgcmFp
c2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9M
X0JMT0NLKQotICAgICAgICByZWFzb24gPSBzZWxmLl9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKCkK
LSAgICAgICAgaWYgbGVuKHJlYXNvbikgPT0gMDoKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2su
ZHJvcF9jb2RlID0gTm9uZQotICAgICAgICAgICAgY29udHJvbF9ibG9jay5kcm9wX21lc3NhZ2Ug
PSAnJwotICAgICAgICBlbGlmIGxlbihyZWFzb24pID49IDI6Ci0gICAgICAgICAgICBjb250cm9s
X2Jsb2NrLmRyb3BfY29kZSA9IHN0cnVjdC51bnBhY2soJyFIJywgcmVhc29uWzoyXSlbMF0KLSAg
ICAgICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9tZXNzYWdlID0gcmVhc29uWzI6XQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAg
ICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAg
ICAgICAgICAgICdSZWNlaXZlZCBEcm9wQ2hhbm5lbCB0aGF0IGNvbmFpbnMgb25seSAxLWJ5dGUg
cmVhc29uJykKLSAgICAgICAgcmV0dXJuIGNvbnRyb2xfYmxvY2sKLQotICAgIGRlZiBfcmVhZF9u
ZXdfY2hhbm5lbF9zbG90KHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spOgotICAgICAg
ICByZXNlcnZlZCA9IGZpcnN0X2J5dGUgJiAweDFlCi0gICAgICAgIGlmIHJlc2VydmVkICE9IDA6
Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAg
ICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAg
ICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCi0gICAgICAgIGNvbnRyb2xfYmxvY2su
ZmFsbGJhY2sgPSBmaXJzdF9ieXRlICYgMQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb250
cm9sX2Jsb2NrLnNsb3RzID0gc2VsZi5fcmVhZF9udW1iZXIoKQotICAgICAgICAgICAgY29udHJv
bF9ibG9jay5zZW5kX3F1b3RhID0gc2VsZi5fcmVhZF9udW1iZXIoKQotICAgICAgICBleGNlcHQg
VmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9y
KF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihlKSkKLSAgICAgICAgcmV0dXJuIGNvbnRyb2xf
YmxvY2sKLQotICAgIGRlZiByZWFkX2NvbnRyb2xfYmxvY2tzKHNlbGYpOgotICAgICAgICAiIiJS
ZWFkcyBjb250cm9sIGJsb2NrKHMpLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgUGh5
c2ljYWxDb25uZWN0aW9uRXJyb3I6IHdoZW4gdGhlIHBheWxvYWQgY29udGFpbnMgaW52YWxpZCBj
b250cm9sCi0gICAgICAgICAgICAgICBibG9jayhzKS4KLSAgICAgICAgICAgU3RvcEl0ZXJhdGlv
bjogd2hlbiBubyBjb250cm9sIGJsb2NrcyBsZWZ0LgotICAgICAgICAiIiIKLQotICAgICAgICB3
aGlsZSBzZWxmLl9yZWFkX3Bvc2l0aW9uIDwgbGVuKHNlbGYuX2RhdGEpOgotICAgICAgICAgICAg
Zmlyc3RfYnl0ZSA9IG9yZChzZWxmLl9kYXRhW3NlbGYuX3JlYWRfcG9zaXRpb25dKQotICAgICAg
ICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiArPSAxCi0gICAgICAgICAgICBvcGNvZGUgPSAoZmly
c3RfYnl0ZSA+PiA1KSAmIDB4NwotICAgICAgICAgICAgY29udHJvbF9ibG9jayA9IF9Db250cm9s
QmxvY2sob3Bjb2RlPW9wY29kZSkKLSAgICAgICAgICAgIGlmIG9wY29kZSA9PSBfTVVYX09QQ09E
RV9BRERfQ0hBTk5FTF9SRVFVRVNUOgotICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuX3JlYWRf
YWRkX2NoYW5uZWxfcmVxdWVzdChmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQotICAgICAgICAg
ICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAg
ICAgICAgICAgICAgeWllbGQgc2VsZi5fcmVhZF9hZGRfY2hhbm5lbF9yZXNwb25zZSgKLSAgICAg
ICAgICAgICAgICAgICAgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVs
aWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTDoKLSAgICAgICAgICAgICAgICB5
aWVsZCBzZWxmLl9yZWFkX2Zsb3dfY29udHJvbChmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQot
ICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfRFJPUF9DSEFOTkVMOgotICAg
ICAgICAgICAgICAgIHlpZWxkIHNlbGYuX3JlYWRfZHJvcF9jaGFubmVsKGZpcnN0X2J5dGUsIGNv
bnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9ORVdf
Q0hBTk5FTF9TTE9UOgotICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuX3JlYWRfbmV3X2NoYW5u
ZWxfc2xvdChmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAg
ICAgICAgICAgX0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUsCi0gICAgICAgICAgICAgICAg
ICAgICdJbnZhbGlkIG9wY29kZSAlZCcgJSBvcGNvZGUpCi0KLSAgICAgICAgYXNzZXJ0IHNlbGYu
X3JlYWRfcG9zaXRpb24gPT0gbGVuKHNlbGYuX2RhdGEpCi0gICAgICAgIHJhaXNlIFN0b3BJdGVy
YXRpb24KLQotICAgIGRlZiByZW1haW5pbmdfZGF0YShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJu
cyByZW1haW5pbmcgZGF0YS4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtzZWxmLl9y
ZWFkX3Bvc2l0aW9uOl0KLQotCi1jbGFzcyBfTG9naWNhbFJlcXVlc3Qob2JqZWN0KToKLSAgICAi
IiJNaW1pY3MgbW9kX3B5dGhvbiByZXF1ZXN0LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGNoYW5uZWxfaWQsIGNvbW1hbmQsIHBhdGgsIHByb3RvY29sLCBoZWFkZXJzLAotICAgICAgICAg
ICAgICAgICBjb25uZWN0aW9uKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY2hhbm5lbF9pZDogdGhlIGNoYW5uZWwgaWQg
b2YgdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgICAgIGNvbW1hbmQ6IEhUVFAgcmVxdWVz
dCBjb21tYW5kLgotICAgICAgICAgICAgcGF0aDogSFRUUCByZXF1ZXN0IHBhdGguCi0gICAgICAg
ICAgICBoZWFkZXJzOiBIVFRQIGhlYWRlcnMuCi0gICAgICAgICAgICBjb25uZWN0aW9uOiBfTG9n
aWNhbENvbm5lY3Rpb24gaW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuY2hh
bm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgc2VsZi5tZXRob2QgPSBjb21tYW5kCi0gICAg
ICAgIHNlbGYudXJpID0gcGF0aAotICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKLSAg
ICAgICAgc2VsZi5oZWFkZXJzX2luID0gaGVhZGVycwotICAgICAgICBzZWxmLmNvbm5lY3Rpb24g
PSBjb25uZWN0aW9uCi0gICAgICAgIHNlbGYuc2VydmVyX3Rlcm1pbmF0ZWQgPSBGYWxzZQotICAg
ICAgICBzZWxmLmNsaWVudF90ZXJtaW5hdGVkID0gRmFsc2UKLQotICAgIGRlZiBpc19odHRwcyhz
ZWxmKToKLSAgICAgICAgIiIiTWltaWNzIHJlcXVlc3QuaXNfaHR0cHMoKS4gUmV0dXJucyBGYWxz
ZSBiZWNhdXNlIHRoaXMgbWV0aG9kIGlzCi0gICAgICAgIHVzZWQgb25seSBieSBvbGQgcHJvdG9j
b2xzIChoaXhpZSBhbmQgaHliaTAwKS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmV0dXJuIEZh
bHNlCi0KLQotY2xhc3MgX0xvZ2ljYWxDb25uZWN0aW9uKG9iamVjdCk6Ci0gICAgIiIiTWltaWNz
IG1vZF9weXRob24gbXBfY29ubi4iIiIKLQotICAgICMgRm9yIGRldGFpbHMsIHNlZSB0aGUgY29t
bWVudCBvZiBzZXRfcmVhZF9zdGF0ZSgpLgotICAgIFNUQVRFX0FDVElWRSA9IDEKLSAgICBTVEFU
RV9HUkFDRUZVTExZX0NMT1NFRCA9IDIKLSAgICBTVEFURV9URVJNSU5BVEVEID0gMwotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG11eF9oYW5kbGVyLCBjaGFubmVsX2lkKToKLSAgICAgICAgIiIi
Q29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbXV4
X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAgICAgY2hhbm5lbF9pZDog
Y2hhbm5lbCBpZCBvZiB0aGlzIGNvbm5lY3Rpb24uCi0gICAgICAgICIiIgotCi0gICAgICAgIHNl
bGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIKLSAgICAgICAgc2VsZi5fY2hhbm5lbF9pZCA9
IGNoYW5uZWxfaWQKLSAgICAgICAgc2VsZi5faW5jb21pbmdfZGF0YSA9ICcnCi0KLSAgICAgICAg
IyAtIFByb3RlY3RzIF93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24KLSAgICAgICAgIyAtIFNpZ25h
bHMgdGhlIHRocmVhZCB3YWl0aW5nIGZvciBjb21wbGV0aW9uIG9mIHdyaXRlIGJ5IG11eCBoYW5k
bGVyCi0gICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24o
KQotICAgICAgICBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24gPSBGYWxzZQotCi0gICAg
ICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0gICAgICAg
IHNlbGYuX3JlYWRfc3RhdGUgPSBzZWxmLlNUQVRFX0FDVElWRQotCi0gICAgZGVmIGdldF9sb2Nh
bF9hZGRyKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgbXBfY29ubi5sb2NhbF9h
ZGRyLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9jb25u
ZWN0aW9uLmdldF9sb2NhbF9hZGRyKCkKLSAgICBsb2NhbF9hZGRyID0gcHJvcGVydHkoZ2V0X2xv
Y2FsX2FkZHIpCi0KLSAgICBkZWYgZ2V0X3JlbW90ZV9hZGRyKHNlbGYpOgotICAgICAgICAiIiJH
ZXR0ZXIgdG8gbWltaWMgbXBfY29ubi5yZW1vdGVfYWRkci4iIiIKLQotICAgICAgICByZXR1cm4g
c2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfY29ubmVjdGlvbi5nZXRfcmVtb3RlX2FkZHIoKQot
ICAgIHJlbW90ZV9hZGRyID0gcHJvcGVydHkoZ2V0X3JlbW90ZV9hZGRyKQotCi0gICAgZGVmIGdl
dF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAgICAgICIiIkdldHMgbWVtb3JpemVkIGxpbmVz
LiBOb3Qgc3VwcG9ydGVkLiIiIgotCi0gICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRp
b24oJ19Mb2dpY2FsQ29ubmVjdGlvbiBkb2VzIG5vdCBzdXBwb3J0ICcKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X21lbW9yaXplZF9saW5lcycpCi0KLSAgICBkZWYg
d3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIldyaXRlcyBkYXRhLiBtdXhfaGFuZGxlciBz
ZW5kcyBkYXRhIGFzeW5jaHJvbm91c2x5LiBUaGUgY2FsbGVyIHdpbGwKLSAgICAgICAgYmUgc3Vz
cGVuZGVkIHVudGlsIHdyaXRlIGRvbmUuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRh
dGE6IGRhdGEgdG8gYmUgd3JpdHRlbi4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBN
dXhVbmV4cGVjdGVkRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBiZWZvcmUgZmluaXNoaW5nIHRoZSBw
cmV2aW91cwotICAgICAgICAgICAgICAgIHdyaXRlLgotICAgICAgICAiIiIKLQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
ICAgICBpZiBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb246Ci0gICAgICAgICAgICAgICAg
cmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ0xvZ2lj
YWwgY29ubmVjdGlvbiAlZCBpcyBhbHJlYWR5IHdhaXRpbmcgdGhlIGNvbXBsZXRpb24gJwotICAg
ICAgICAgICAgICAgICAgICAnb2Ygd3JpdGUnICUgc2VsZi5fY2hhbm5lbF9pZCkKLQotICAgICAg
ICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gVHJ1ZQotICAgICAgICAgICAg
c2VsZi5fbXV4X2hhbmRsZXIuc2VuZF9kYXRhKHNlbGYuX2NoYW5uZWxfaWQsIGRhdGEpCi0gICAg
ICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ud2FpdCgpCi0gICAgICAgICAgICAjIFRPRE8o
dHlvc2hpbm8pOiBSYWlzZSBhbiBleGNlcHRpb24gaWYgd29rZSB1cCBieSBvbl93cml0ZXJfZG9u
ZS4KLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgIGRlZiB3cml0ZV9jb250cm9sX2RhdGEoc2VsZiwgZGF0YSk6Ci0gICAg
ICAgICIiIldyaXRlcyBkYXRhIHZpYSB0aGUgY29udHJvbCBjaGFubmVsLiBEb24ndCB3YWl0IGZp
bmlzaGluZyB3cml0ZQotICAgICAgICBiZWNhdXNlIHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQg
YnkgbXV4IGRpc3BhdGNoZXIuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRhdGE6IGRh
dGEgdG8gYmUgd3JpdHRlbi4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbXV4X2hhbmRs
ZXIuc2VuZF9jb250cm9sX2RhdGEoZGF0YSkKLQotICAgIGRlZiBvbl93cml0ZV9kYXRhX2RvbmUo
c2VsZik6Ci0gICAgICAgICIiIkNhbGxlZCB3aGVuIHNlbmRpbmcgZGF0YSBpcyBjb21wbGV0ZWQu
IiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlv
bjoKLSAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICAgICAnSW52YWxpZCBjYWxsIG9mIG9uX3dyaXRlX2RhdGFfZG9uZSBmb3IgbG9n
aWNhbCAnCi0gICAgICAgICAgICAgICAgICAgICdjb25uZWN0aW9uICVkJyAlIHNlbGYuX2NoYW5u
ZWxfaWQpCi0gICAgICAgICAgICBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24gPSBGYWxz
ZQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgIGZp
bmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAg
ICBkZWYgb25fd3JpdGVyX2RvbmUoc2VsZik6Ci0gICAgICAgICIiIkNhbGxlZCBieSB0aGUgbXV4
IGhhbmRsZXIgd2hlbiB0aGUgd3JpdGVyIHRocmVhZCBoYXMgZmluaXNoZWQuIiIiCi0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAg
ICAgICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKLSAgICAgICAg
ICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0KLSAgICBkZWYgYXBw
ZW5kX2ZyYW1lX2RhdGEoc2VsZiwgZnJhbWVfZGF0YSk6Ci0gICAgICAgICIiIkFwcGVuZHMgaW5j
b21pbmcgZnJhbWUgZGF0YS4gQ2FsbGVkIHdoZW4gbXV4X2hhbmRsZXIgZGlzcGF0Y2hlcwotICAg
ICAgICBmcmFtZSBkYXRhIHRvIHRoZSBjb3JyZXNwb25kaW5nIGFwcGxpY2F0aW9uLgotCi0gICAg
ICAgIEFyZ3M6Ci0gICAgICAgICAgICBmcmFtZV9kYXRhOiBpbmNvbWluZyBmcmFtZSBkYXRhLgot
ICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgc2VsZi5faW5jb21pbmdfZGF0YSArPSBmcmFtZV9kYXRhCi0gICAgICAgIHNlbGYuX3Jl
YWRfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLnJlbGVh
c2UoKQotCi0gICAgZGVmIHJlYWQoc2VsZiwgbGVuZ3RoKToKLSAgICAgICAgIiIiUmVhZHMgZGF0
YS4gQmxvY2tzIHVudGlsIGVub3VnaCBkYXRhIGhhcyBhcnJpdmVkIHZpYSBwaHlzaWNhbAotICAg
ICAgICBjb25uZWN0aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBsZW5ndGg6IGxl
bmd0aCBvZiBkYXRhIHRvIGJlIHJlYWQuCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIExv
Z2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uOiB3aGVuIGNsb3NpbmcgaGFuZHNoYWtlIGZv
ciB0aGlzCi0gICAgICAgICAgICAgICAgbG9naWNhbCBjaGFubmVsIGhhcyBiZWVuIHJlY2VpdmVk
LgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gdGhlIHBo
eXNpY2FsIGNvbm5lY3Rpb24gaGFzCi0gICAgICAgICAgICAgICAgY2xvc2VkLCBvciBhbiBlcnJv
ciBpcyBjYXVzZWQgb24gdGhlIHJlYWRlciB0aHJlYWQuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHNlbGYuX3JlYWRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICB3aGlsZSAoc2VsZi5fcmVh
ZF9zdGF0ZSA9PSBzZWxmLlNUQVRFX0FDVElWRSBhbmQKLSAgICAgICAgICAgICAgIGxlbihzZWxm
Ll9pbmNvbWluZ19kYXRhKSA8IGxlbmd0aCk6Ci0gICAgICAgICAgICBzZWxmLl9yZWFkX2NvbmRp
dGlvbi53YWl0KCkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpZiBzZWxmLl9yZWFkX3N0
YXRlID09IHNlbGYuU1RBVEVfR1JBQ0VGVUxMWV9DTE9TRUQ6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAg
ICdMb2dpY2FsIGNoYW5uZWwgJWQgaGFzIGNsb3NlZC4nICUgc2VsZi5fY2hhbm5lbF9pZCkKLSAg
ICAgICAgICAgIGVsaWYgc2VsZi5fcmVhZF9zdGF0ZSA9PSBzZWxmLlNUQVRFX1RFUk1JTkFURUQ6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgICAgICdSZWNlaXZpbmcgJWQgYnl0ZSBmYWlsZWQuIExvZ2ljYWwgY2hh
bm5lbCAoJWQpIGNsb3NlZCcgJQotICAgICAgICAgICAgICAgICAgICAobGVuZ3RoLCBzZWxmLl9j
aGFubmVsX2lkKSkKLQotICAgICAgICAgICAgdmFsdWUgPSBzZWxmLl9pbmNvbWluZ19kYXRhWzps
ZW5ndGhdCi0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19kYXRhID0gc2VsZi5faW5jb21pbmdf
ZGF0YVtsZW5ndGg6XQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fcmVhZF9j
b25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgcmV0dXJuIHZhbHVlCi0KLSAgICBkZWYgc2V0
X3JlYWRfc3RhdGUoc2VsZiwgbmV3X3N0YXRlKToKLSAgICAgICAgIiIiU2V0cyB0aGUgc3RhdGUg
b2YgdGhpcyBjb25uZWN0aW9uLiBDYWxsZWQgd2hlbiBhbiBldmVudCBmb3IgdGhpcwotICAgICAg
ICBjb25uZWN0aW9uIGhhcyBvY2N1cnJlZC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
bmV3X3N0YXRlOiBzdGF0ZSB0byBiZSBzZXQuIG5ld19zdGF0ZSBtdXN0IGJlIG9uZSBvZiBmb2xs
b3dpbmdzOgotICAgICAgICAgICAgLSBTVEFURV9HUkFDRUZVTExZX0NMT1NFRDogd2hlbiBjbG9z
aW5nIGhhbmRzaGFrZSBmb3IgdGhpcwotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gaGFzIGJl
ZW4gcmVjZWl2ZWQuCi0gICAgICAgICAgICAtIFNUQVRFX1RFUk1JTkFURUQ6IHdoZW4gdGhlIHBo
eXNpY2FsIGNvbm5lY3Rpb24gaGFzIGNsb3NlZCBvcgotICAgICAgICAgICAgICAgIERyb3BDaGFu
bmVsIG9mIHRoaXMgY29ubmVjdGlvbiBoYXMgcmVjZWl2ZWQuCi0gICAgICAgICIiIgotCi0gICAg
ICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9yZWFkX3N0
YXRlID0gbmV3X3N0YXRlCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLm5vdGlmeSgpCi0g
ICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0KLWNsYXNzIF9Jbm5lck1l
c3NhZ2Uob2JqZWN0KToKLSAgICAiIiJIb2xkcyB0aGUgcmVzdWx0IG9mIF9Jbm5lck1lc3NhZ2VC
dWlsZGVyLmJ1aWxkKCkuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3Bjb2Rl
LCBwYXlsb2FkKToKLSAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUKLSAgICAgICAgc2VsZi5w
YXlsb2FkID0gcGF5bG9hZAotCi0KLWNsYXNzIF9Jbm5lck1lc3NhZ2VCdWlsZGVyKG9iamVjdCk6
Ci0gICAgIiIiQSBjbGFzcyB0aGF0IGhvbGRzIHRoZSBjb250ZXh0IG9mIGlubmVyIG1lc3NhZ2Ug
ZnJhZ21lbnRhdGlvbiBhbmQKLSAgICBidWlsZHMgYSBtZXNzYWdlIGZyb20gZnJhZ21lbnRlZCBp
bm5lciBmcmFtZShzKS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAg
ICAgc2VsZi5fY29udHJvbF9vcGNvZGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfY29u
dHJvbF9mcmFnbWVudHMgPSBbXQotICAgICAgICBzZWxmLl9tZXNzYWdlX29wY29kZSA9IE5vbmUK
LSAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50cyA9IFtdCi0gICAgICAgIHNl
bGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZmlyc3QKLQotICAgIGRlZiBfaGFuZGxl
X2ZpcnN0KHNlbGYsIGZyYW1lKToKLSAgICAgICAgaWYgZnJhbWUub3Bjb2RlID09IGNvbW1vbi5P
UENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0
aW9uKCdTZW5kaW5nIGludmFsaWQgY29udGludWF0aW9uIG9wY29kZScpCi0KLSAgICAgICAgaWYg
Y29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6Ci0gICAgICAgICAgICByZXR1
cm4gc2VsZi5fcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX2NvbnRyb2woZnJhbWUpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvY2Vzc19maXJzdF9mcmFnbWVudGVk
X21lc3NhZ2UoZnJhbWUpCi0KLSAgICBkZWYgX3Byb2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9jb250
cm9sKHNlbGYsIGZyYW1lKToKLSAgICAgICAgc2VsZi5fY29udHJvbF9vcGNvZGUgPSBmcmFtZS5v
cGNvZGUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50cy5hcHBlbmQoZnJh
bWUucGF5bG9hZCkKLSAgICAgICAgaWYgbm90IGZyYW1lLmZpbjoKLSAgICAgICAgICAgIHNlbGYu
X2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZnJhZ21lbnRlZF9jb250cm9sCi0gICAgICAg
ICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gc2VsZi5fcmVhc3NlbWJsZV9mcmFnbWVu
dGVkX2NvbnRyb2woKQotCi0gICAgZGVmIF9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfbWVzc2Fn
ZShzZWxmLCBmcmFtZSk6Ci0gICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gZnJhbWUub3Bj
b2RlCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfbWVzc2FnZV9mcmFnbWVudHMuYXBwZW5kKGZyYW1l
LnBheWxvYWQpCi0gICAgICAgIGlmIG5vdCBmcmFtZS5maW46Ci0gICAgICAgICAgICBzZWxmLl9m
cmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxlX2ZyYWdtZW50ZWRfbWVzc2FnZQotICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRl
ZF9tZXNzYWdlKCkKLQotICAgIGRlZiBfaGFuZGxlX2ZyYWdtZW50ZWRfY29udHJvbChzZWxmLCBm
cmFtZSk6Ci0gICAgICAgIGlmIGZyYW1lLm9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVB
VElPTjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnU2VuZGluZyBpbnZhbGlkIG9wY29kZSAlZCB3aGlsZSBzZW5kaW5nIGZyYWdtZW50
ZWQgY29udHJvbCAnCi0gICAgICAgICAgICAgICAgJ21lc3NhZ2UnICUgZnJhbWUub3Bjb2RlKQot
ICAgICAgICBzZWxmLl9wZW5kaW5nX2NvbnRyb2xfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXls
b2FkKQotICAgICAgICBpZiBub3QgZnJhbWUuZmluOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUK
LSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9jb250cm9sKCkKLQot
ICAgIGRlZiBfcmVhc3NlbWJsZV9mcmFnbWVudGVkX2NvbnRyb2woc2VsZik6Ci0gICAgICAgIG9w
Y29kZSA9IHNlbGYuX2NvbnRyb2xfb3Bjb2RlCi0gICAgICAgIHBheWxvYWQgPSAnJy5qb2luKHNl
bGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMpCi0gICAgICAgIHNlbGYuX2NvbnRyb2xfb3Bj
b2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5nX2NvbnRyb2xfZnJhZ21lbnRzID0gW10K
LSAgICAgICAgaWYgc2VsZi5fbWVzc2FnZV9vcGNvZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxlX2ZyYWdtZW50ZWRfbWVzc2FnZQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hh
bmRsZV9maXJzdAotICAgICAgICByZXR1cm4gX0lubmVyTWVzc2FnZShvcGNvZGUsIHBheWxvYWQp
Ci0KLSAgICBkZWYgX2hhbmRsZV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZiwgZnJhbWUpOgotICAg
ICAgICAjIFNlbmRlciBjYW4gaW50ZXJsZWF2ZSBhIGNvbnRyb2wgbWVzc2FnZSB3aGlsZSBzZW5k
aW5nIGZyYWdtZW50ZWQKLSAgICAgICAgIyBtZXNzYWdlcy4KLSAgICAgICAgaWYgY29tbW9uLmlz
X2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6Ci0gICAgICAgICAgICBpZiBzZWxmLl9jb250
cm9sX29wY29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVj
dGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnU2hvdWxkIG5vdCByZWFjaCBoZXJl
KEJ1ZyBpbiBidWlsZGVyKScpCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvY2Vzc19maXJz
dF9mcmFnbWVudGVkX2NvbnRyb2woZnJhbWUpCi0KLSAgICAgICAgaWYgZnJhbWUub3Bjb2RlICE9
IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZy
YW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdTZW5kaW5nIGludmFsaWQgb3Bjb2RlICVk
IHdoaWxlIHNlbmRpbmcgZnJhZ21lbnRlZCBtZXNzYWdlJyAlCi0gICAgICAgICAgICAgICAgZnJh
bWUub3Bjb2RlKQotICAgICAgICBzZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzLmFwcGVu
ZChmcmFtZS5wYXlsb2FkKQotICAgICAgICBpZiBub3QgZnJhbWUuZmluOgotICAgICAgICAgICAg
cmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9t
ZXNzYWdlKCkKLQotICAgIGRlZiBfcmVhc3NlbWJsZV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6
Ci0gICAgICAgIG9wY29kZSA9IHNlbGYuX21lc3NhZ2Vfb3Bjb2RlCi0gICAgICAgIHBheWxvYWQg
PSAnJy5qb2luKHNlbGYuX3BlbmRpbmdfbWVzc2FnZV9mcmFnbWVudHMpCi0gICAgICAgIHNlbGYu
X21lc3NhZ2Vfb3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJh
Z21lbnRzID0gW10KLSAgICAgICAgc2VsZi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9m
aXJzdAotICAgICAgICByZXR1cm4gX0lubmVyTWVzc2FnZShvcGNvZGUsIHBheWxvYWQpCi0KLSAg
ICBkZWYgYnVpbGQoc2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJCdWlsZCBhbiBpbm5lciBtZXNz
YWdlLiBSZXR1cm5zIGFuIF9Jbm5lck1lc3NhZ2UgaW5zdGFuY2Ugd2hlbgotICAgICAgICB0aGUg
Z2l2ZW4gZnJhbWUgaXMgdGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFtZS4gUmV0dXJucyBOb25lIG90
aGVyd2lzZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZnJhbWU6IGFuIGlubmVyIGZy
YW1lLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246
IHdoZW4gcmVjZWl2ZWQgaW52YWxpZCBvcGNvZGUuIChlLmcuCi0gICAgICAgICAgICAgICAgcmVj
ZWl2aW5nIG5vbiBjb250aW51YXRpb24gZGF0YSBvcGNvZGUgYnV0IHRoZSBmaW4gZmxhZyBvZgot
ICAgICAgICAgICAgICAgIHRoZSBwcmV2aW91cyBpbm5lciBmcmFtZSB3YXMgbm90IHNldC4pCi0g
ICAgICAgICIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9mcmFtZV9oYW5kbGVyKGZyYW1lKQot
Ci0KLWNsYXNzIF9Mb2dpY2FsU3RyZWFtKFN0cmVhbSk6Ci0gICAgIiIiTWltaWNzIHRoZSBTdHJl
YW0gY2xhc3MuIFRoaXMgY2xhc3MgaW50ZXJwcmV0cyBtdWx0aXBsZXhlZCBXZWJTb2NrZXQKLSAg
ICBmcmFtZXMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgc3Ry
ZWFtX29wdGlvbnMsIHNlbmRfcXVvdGEsIHJlY2VpdmVfcXVvdGEpOgotICAgICAgICAiIiJDb25z
dHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0
OiBfTG9naWNhbFJlcXVlc3QgaW5zdGFuY2UuCi0gICAgICAgICAgICBzdHJlYW1fb3B0aW9uczog
U3RyZWFtT3B0aW9ucyBpbnN0YW5jZS4KLSAgICAgICAgICAgIHNlbmRfcXVvdGE6IEluaXRpYWwg
c2VuZCBxdW90YS4KLSAgICAgICAgICAgIHJlY2VpdmVfcXVvdGE6IEluaXRpYWwgcmVjZWl2ZSBx
dW90YS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBQaHlzaWNhbCBzdHJlYW0gaXMgcmVzcG9u
c2libGUgZm9yIG1hc2tpbmcuCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLnVubWFza19yZWNlaXZl
ID0gRmFsc2UKLSAgICAgICAgU3RyZWFtLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIHN0cmVhbV9v
cHRpb25zKQotCi0gICAgICAgIHNlbGYuX3NlbmRfY2xvc2VkID0gRmFsc2UKLSAgICAgICAgc2Vs
Zi5fc2VuZF9xdW90YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgIyAtIFByb3RlY3RzIF9zZW5kX2Ns
b3NlZCBhbmQgX3NlbmRfcXVvdGEKLSAgICAgICAgIyAtIFNpZ25hbHMgdGhlIHRocmVhZCB3YWl0
aW5nIGZvciBzZW5kIHF1b3RhIHJlcGxlbmlzaGVkCi0gICAgICAgIHNlbGYuX3NlbmRfY29uZGl0
aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0KLSAgICAgICAgIyBUaGUgb3Bjb2RlIG9mIHRo
ZSBmaXJzdCBmcmFtZSBpbiBtZXNzYWdlcy4KLSAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUg
PSBjb21tb24uT1BDT0RFX1RFWFQKLSAgICAgICAgIyBUcnVlIHdoZW4gdGhlIGxhc3QgbWVzc2Fn
ZSB3YXMgZnJhZ21lbnRlZC4KLSAgICAgICAgc2VsZi5fbGFzdF9tZXNzYWdlX3dhc19mcmFnbWVu
dGVkID0gRmFsc2UKLQotICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhID0gcmVjZWl2ZV9xdW90
YQotICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZV9zZW1hcGhvcmUgPSB0aHJlYWRpbmcu
U2VtYXBob3JlKCkKLQotICAgICAgICBzZWxmLl9pbm5lcl9tZXNzYWdlX2J1aWxkZXIgPSBfSW5u
ZXJNZXNzYWdlQnVpbGRlcigpCi0KLSAgICBkZWYgX2NyZWF0ZV9pbm5lcl9mcmFtZShzZWxmLCBv
cGNvZGUsIHBheWxvYWQsIGVuZD1UcnVlKToKLSAgICAgICAgZnJhbWUgPSBGcmFtZShmaW49ZW5k
LCBvcGNvZGU9b3Bjb2RlLCBwYXlsb2FkPXBheWxvYWQpCi0gICAgICAgIGZvciBmcmFtZV9maWx0
ZXIgaW4gc2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzOgotICAgICAgICAgICAg
ZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFtZSkKLQotICAgICAgICBpZiBsZW4ocGF5bG9hZCkgIT0g
bGVuKGZyYW1lLnBheWxvYWQpOgotICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2Vw
dGlvbigKLSAgICAgICAgICAgICAgICAnTXV4IGV4dGVuc2lvbiBtdXN0IG5vdCBiZSB1c2VkIGFm
dGVyIGV4dGVuc2lvbnMgd2hpY2ggY2hhbmdlICcKLSAgICAgICAgICAgICAgICAnIGZyYW1lIGJv
dW5kYXJ5JykKLQotICAgICAgICBmaXJzdF9ieXRlID0gKChmcmFtZS5maW4gPDwgNykgfCAoZnJh
bWUucnN2MSA8PCA2KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgKGZyYW1lLnJzdjIgPDwgNSkg
fCAoZnJhbWUucnN2MyA8PCA0KSB8IGZyYW1lLm9wY29kZSkKLSAgICAgICAgcmV0dXJuIGNocihm
aXJzdF9ieXRlKSArIGZyYW1lLnBheWxvYWQKLQotICAgIGRlZiBfd3JpdGVfaW5uZXJfZnJhbWUo
c2VsZiwgb3Bjb2RlLCBwYXlsb2FkLCBlbmQ9VHJ1ZSk6Ci0gICAgICAgIHBheWxvYWRfbGVuZ3Ro
ID0gbGVuKHBheWxvYWQpCi0gICAgICAgIHdyaXRlX3Bvc2l0aW9uID0gMAotCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgICMgQW4gaW5uZXIgZnJhbWUgd2lsbCBiZSBmcmFnbWVudGVkIGlmIHRo
ZXJlIGlzIG5vIGVub3VnaCBzZW5kCi0gICAgICAgICAgICAjIHF1b3RhLiBUaGlzIHNlbWFwaG9y
ZSBlbnN1cmVzIHRoYXQgZnJhZ21lbnRlZCBpbm5lciBmcmFtZXMgYXJlCi0gICAgICAgICAgICAj
IHNlbnQgaW4gb3JkZXIgb24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgICAgICMgTm90
ZSB0aGF0IGZyYW1lcyB0aGF0IGNvbWUgZnJvbSBvdGhlciBsb2dpY2FsIGNoYW5uZWxzIG9yCi0g
ICAgICAgICAgICAjIG11bHRpcGxleGluZyBjb250cm9sIGJsb2NrcyBjYW4gYmUgaW5zZXJ0ZWQg
YmV0d2VlbiBmcmFnbWVudGVkCi0gICAgICAgICAgICAjIGlubmVyIGZyYW1lcyBvbiB0aGUgcGh5
c2ljYWwgY2hhbm5lbC4KLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1lX3NlbWFw
aG9yZS5hY3F1aXJlKCkKLQotICAgICAgICAgICAgIyBDb25zdW1lIGFuIG9jdGV0IHF1b3RhIHdo
ZW4gdGhpcyBpcyB0aGUgZmlyc3QgZnJhZ21lbnRlZCBmcmFtZS4KLSAgICAgICAgICAgIGlmIG9w
Y29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAg
ICAgICAgICAgICAgICAgICB3aGlsZSAobm90IHNlbGYuX3NlbmRfY2xvc2VkKSBhbmQgc2VsZi5f
c2VuZF9xdW90YSA9PSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25k
aXRpb24ud2FpdCgpCi0KLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2VuZF9jbG9zZWQ6
Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xvZ2ljYWwgY29ubmVjdGlvbiAlZCBpcyBjbG9z
ZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxf
aWQpCi0KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSAtPSAxCi0gICAgICAg
ICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRp
b24ucmVsZWFzZSgpCi0KLSAgICAgICAgICAgIHdoaWxlIHdyaXRlX3Bvc2l0aW9uIDwgcGF5bG9h
ZF9sZW5ndGg6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG5v
dCBzZWxmLl9zZW5kX2Nsb3NlZCkgYW5kIHNlbGYuX3NlbmRfcXVvdGEgPT0gMDoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnTm8gcXVvdGEuIFdhaXRpbmcgRmxvd0NvbnRyb2wgbWVzc2FnZSBmb3IgJWQuJyAl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQot
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ud2FpdCgpCi0KLSAg
ICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2VuZF9jbG9zZWQ6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ0xvZ2ljYWwgY29ubmVjdGlvbiAlZCBpcyBjbG9zZWQnICUKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3QuX2NoYW5uZWxfaWQpCi0KLSAgICAgICAgICAg
ICAgICAgICAgcmVtYWluaW5nID0gcGF5bG9hZF9sZW5ndGggLSB3cml0ZV9wb3NpdGlvbgotICAg
ICAgICAgICAgICAgICAgICB3cml0ZV9sZW5ndGggPSBtaW4oc2VsZi5fc2VuZF9xdW90YSwgcmVt
YWluaW5nKQotICAgICAgICAgICAgICAgICAgICBpbm5lcl9mcmFtZV9lbmQgPSAoCi0gICAgICAg
ICAgICAgICAgICAgICAgICBlbmQgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAod3JpdGVf
cG9zaXRpb24gKyB3cml0ZV9sZW5ndGggPT0gcGF5bG9hZF9sZW5ndGgpKQotCi0gICAgICAgICAg
ICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fY3JlYXRlX2lubmVyX2ZyYW1lKAotICAgICAg
ICAgICAgICAgICAgICAgICAgb3Bjb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9h
ZFt3cml0ZV9wb3NpdGlvbjp3cml0ZV9wb3NpdGlvbit3cml0ZV9sZW5ndGhdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgaW5uZXJfZnJhbWVfZW5kKQotICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9zZW5kX3F1b3RhIC09IHdyaXRlX2xlbmd0aAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ0NvbnN1bWVkIHF1b3RhPSVkLCByZW1haW5pbmc9JWQnICUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3cml0ZV9sZW5ndGgsIHNlbGYuX3NlbmRf
cXVvdGEpKQotICAgICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX3NlbmRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICAgICAgICAgIyBXcml0aW5n
IGRhdGEgd2lsbCBibG9jayB0aGUgd29ya2VyIHNvIHdlIG5lZWQgdG8gcmVsZWFzZQotICAgICAg
ICAgICAgICAgICMgX3NlbmRfY29uZGl0aW9uIGJlZm9yZSB3cml0aW5nLgotICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGluZyBpbm5lciBmcmFtZTogJXInICUgaW5uZXJf
ZnJhbWUpCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKGlu
bmVyX2ZyYW1lKQotICAgICAgICAgICAgICAgIHdyaXRlX3Bvc2l0aW9uICs9IHdyaXRlX2xlbmd0
aAotCi0gICAgICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04K
LQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9w
ZXJhdGlvbkV4Y2VwdGlvbihlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5f
d3JpdGVfaW5uZXJfZnJhbWVfc2VtYXBob3JlLnJlbGVhc2UoKQotCi0gICAgZGVmIHJlcGxlbmlz
aF9zZW5kX3F1b3RhKHNlbGYsIHNlbmRfcXVvdGEpOgotICAgICAgICAiIiJSZXBsZW5pc2ggc2Vu
ZCBxdW90YS4iIiIKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRp
dGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIHNlbGYuX3NlbmRfcXVvdGEgKyBzZW5kX3F1
b3RhID4gMHg3RkZGRkZGRkZGRkZGRkZGOgotICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfcXVv
dGEgPSAwCi0gICAgICAgICAgICAgICAgcmFpc2UgTG9naWNhbENoYW5uZWxFcnJvcigKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBfRFJPUF9DT0RFX1NFTkRf
UVVPVEFfT1ZFUkZMT1cpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX3F1b3RhICs9IHNlbmRfcXVv
dGEKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVwbGVuaXNoZWQgc2VuZCBxdW90
YSBmb3IgY2hhbm5lbCBpZCAlZDogJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBzZWxmLl9zZW5kX3F1b3RhKSkKLSAgICAgICAg
ZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAg
ICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBjb25zdW1l
X3JlY2VpdmVfcXVvdGEoc2VsZiwgYW1vdW50KToKLSAgICAgICAgIiIiQ29uc3VtZXMgcmVjZWl2
ZSBxdW90YS4gUmV0dXJucyBGYWxzZSBvbiBmYWlsdXJlLiIiIgotCi0gICAgICAgIGlmIHNlbGYu
X3JlY2VpdmVfcXVvdGEgPCBhbW91bnQ6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1Zpb2xhdGUgcXVvdGEgb24gY2hhbm5lbCBpZCAlZDogJWQgPCAlZCcgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEsIGFtb3VudCkpCi0gICAg
ICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSAtPSBhbW91
bnQKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVz
c2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIFN0cmVh
bS5zZW5kX21lc3NhZ2UuIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVy
bWluYXRlZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAnUmVxdWVzdGVkIHNlbmRfbWVzc2FnZSBhZnRlciBzZW5kaW5nIG91dCBhIGNs
b3NpbmcgaGFuZHNoYWtlJykKLQotICAgICAgICBpZiBiaW5hcnkgYW5kIGlzaW5zdGFuY2UobWVz
c2FnZSwgdW5pY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ01lc3NhZ2UgZm9yIGJpbmFyeSBmcmFtZSBtdXN0IGJlIGluc3Rh
bmNlIG9mIHN0cicpCi0KLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAgb3Bjb2RlID0g
Y29tbW9uLk9QQ09ERV9CSU5BUlkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9wY29kZSA9
IGNvbW1vbi5PUENPREVfVEVYVAotICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UuZW5jb2Rl
KCd1dGYtOCcpCi0KLSAgICAgICAgZm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMu
b3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJzOgotICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2Vf
ZmlsdGVyLmZpbHRlcihtZXNzYWdlLCBlbmQsIGJpbmFyeSkKLQotICAgICAgICBpZiBzZWxmLl9s
YXN0X21lc3NhZ2Vfd2FzX2ZyYWdtZW50ZWQ6Ci0gICAgICAgICAgICBpZiBvcGNvZGUgIT0gc2Vs
Zi5fbWVzc2FnZV9vcGNvZGU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhj
ZXB0aW9uKCdNZXNzYWdlIHR5cGVzIGFyZSBkaWZmZXJlbnQgaW4gJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZnJhbWVzIGZvciB0aGUgc2FtZSBtZXNzYWdl
JykKLSAgICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9tZXNzYWdlX29wY29kZSA9IG9wY29kZQotCi0g
ICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1lKG9wY29kZSwgbWVzc2FnZSwgZW5kKQotICAg
ICAgICBzZWxmLl9sYXN0X21lc3NhZ2Vfd2FzX2ZyYWdtZW50ZWQgPSBub3QgZW5kCi0KLSAgICBk
ZWYgX3JlY2VpdmVfZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlcyBTdHJlYW0uX3Jl
Y2VpdmVfZnJhbWUuCi0KLSAgICAgICAgSW4gYWRkaXRpb24gdG8gY2FsbCBTdHJlYW0uX3JlY2Vp
dmVfZnJhbWUsIHRoaXMgbWV0aG9kIGFkZHMgdGhlIGFtb3VudAotICAgICAgICBvZiBwYXlsb2Fk
IHRvIHJlY2VpdmluZyBxdW90YSBhbmQgc2VuZHMgRmxvd0NvbnRyb2wgdG8gdGhlIGNsaWVudC4K
LSAgICAgICAgV2UgbmVlZCB0byBkbyBpdCBoZXJlIGJlY2F1c2UgU3RyZWFtLnJlY2VpdmVfbWVz
c2FnZSgpIGhhbmRsZXMKLSAgICAgICAgY29udHJvbCBmcmFtZXMgaW50ZXJuYWxseS4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgb3Bjb2RlLCBwYXlsb2FkLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMg
PSBTdHJlYW0uX3JlY2VpdmVfZnJhbWUoc2VsZikKLSAgICAgICAgYW1vdW50ID0gbGVuKHBheWxv
YWQpCi0gICAgICAgICMgUmVwbGVuaXNoIGV4dHJhIG9uZSBvY3RldCB3aGVuIHJlY2VpdmluZyB0
aGUgZmlyc3QgZnJhZ21lbnRlZCBmcmFtZS4KLSAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5P
UENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgYW1vdW50ICs9IDEKLSAgICAgICAgc2Vs
Zi5fcmVjZWl2ZV9xdW90YSArPSBhbW91bnQKLSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVf
Zmxvd19jb250cm9sKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdTZW5kaW5nIGZsb3cgY29udHJvbCBmb3IgJWQsIHJlcGxlbmlzaGVkPSVkJyAlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBhbW91bnQp
KQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZy
YW1lX2RhdGEpCi0gICAgICAgIHJldHVybiBvcGNvZGUsIHBheWxvYWQsIGZpbiwgcnN2MSwgcnN2
MiwgcnN2MwotCi0gICAgZGVmIF9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lKHNlbGYsIGZyYW1lKToK
LSAgICAgICAgIiIiT3ZlcnJpZGVzIFN0cmVhbS5fZ2V0X21lc3NhZ2VfZnJvbV9mcmFtZS4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW5uZXJfbWVzc2FnZSA9IHNl
bGYuX2lubmVyX21lc3NhZ2VfYnVpbGRlci5idWlsZChmcmFtZSkKLSAgICAgICAgZXhjZXB0IElu
dmFsaWRGcmFtZUV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHJhaXNlIExvZ2ljYWxDaGFubmVsRXJy
b3IoCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBfRFJPUF9DT0RF
X0JBRF9GUkFHTUVOVEFUSU9OKQotCi0gICAgICAgIGlmIGlubmVyX21lc3NhZ2UgaXMgTm9uZToK
LSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHNlbGYuX29yaWdpbmFsX29wY29kZSA9
IGlubmVyX21lc3NhZ2Uub3Bjb2RlCi0gICAgICAgIHJldHVybiBpbm5lcl9tZXNzYWdlLnBheWxv
YWQKLQotICAgIGRlZiByZWNlaXZlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRl
cyBTdHJlYW0ucmVjZWl2ZV9tZXNzYWdlLiIiIgotCi0gICAgICAgICMgSnVzdCBjYWxsIFN0cmVh
bS5yZWNlaXZlX21lc3NhZ2UoKSwgYnV0IGNhdGNoCi0gICAgICAgICMgTG9naWNhbENvbm5lY3Rp
b25DbG9zZWRFeGNlcHRpb24sIHdoaWNoIGlzIHJhaXNlZCB3aGVuIHRoZSBsb2dpY2FsCi0gICAg
ICAgICMgY29ubmVjdGlvbiBoYXMgY2xvc2VkIGdyYWNlZnVsbHkuCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHJldHVybiBTdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKHNlbGYpCi0gICAgICAgIGV4
Y2VwdCBMb2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAg
IGRlZiBfc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShzZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAg
ICAiIiJPdmVycmlkZXMgU3RyZWFtLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlLiIiIgotCi0gICAg
ICAgIGJvZHkgPSBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keShjb2RlLCByZWFzb24pCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGluZyBjbG9zaW5nIGhhbmRzaGFrZSBmb3Ig
JWQ6ICglciwgJXIpJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVz
dC5jaGFubmVsX2lkLCBjb2RlLCByZWFzb24pKQotICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9m
cmFtZShjb21tb24uT1BDT0RFX0NMT1NFLCBib2R5LCBlbmQ9VHJ1ZSkKLQotICAgICAgICBzZWxm
Ll9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQotCi0gICAgZGVmIHNlbmRfcGluZyhz
ZWxmLCBib2R5PScnKToKLSAgICAgICAgIiIiT3ZlcnJpZGVzIFN0cmVhbS5zZW5kX3BpbmciIiIK
LQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgcGluZyBvbiBsb2dpY2FsIGNo
YW5uZWwgJWQ6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVz
dC5jaGFubmVsX2lkLCBib2R5KSkKLSAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUoY29t
bW9uLk9QQ09ERV9QSU5HLCBib2R5LCBlbmQ9VHJ1ZSkKLQotICAgICAgICBzZWxmLl9waW5nX3F1
ZXVlLmFwcGVuZChib2R5KQotCi0gICAgZGVmIF9zZW5kX3Bvbmcoc2VsZiwgYm9keSk6Ci0gICAg
ICAgICIiIk92ZXJyaWRlcyBTdHJlYW0uX3NlbmRfcG9uZyIiIgotCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnU2VuZGluZyBwb25nIG9uIGxvZ2ljYWwgY2hhbm5lbCAlZDogJXInICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGJvZHkp
KQotICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZShjb21tb24uT1BDT0RFX1BPTkcsIGJv
ZHksIGVuZD1UcnVlKQotCi0gICAgZGVmIGNsb3NlX2Nvbm5lY3Rpb24oc2VsZiwgY29kZT1jb21t
b24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249JycpOgotICAgICAgICAiIiJPdmVycmlk
ZXMgU3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24uIiIiCi0KLSAgICAgICAgIyBUT0RPKGJhc2hpKTog
SW1wbGVtZW50Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xvc2luZyBsb2dpY2FsIGNv
bm5lY3Rpb24gJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qu
Y2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRy
dWUKLQotICAgIGRlZiBzdG9wX3NlbmRpbmcoc2VsZik6Ci0gICAgICAgICIiIlN0b3BzIGFjY2Vw
dGluZyBuZXcgc2VuZCBvcGVyYXRpb24gKF93cml0ZV9pbm5lcl9mcmFtZSkuIiIiCi0KLSAgICAg
ICAgc2VsZi5fc2VuZF9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHNlbGYuX3NlbmRfY2xv
c2VkID0gVHJ1ZQotICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAg
ICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotCi1jbGFzcyBfT3V0Z29pbmdEYXRh
KG9iamVjdCk6Ci0gICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCBob2xkcyBkYXRhIHRvIGJlIHNlbnQg
dmlhIHBoeXNpY2FsIGNvbm5lY3Rpb24gYW5kCi0gICAgb3JpZ2luIG9mIHRoZSBkYXRhLgotICAg
ICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNoYW5uZWxfaWQsIGRhdGEpOgotICAgICAg
ICBzZWxmLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAgIHNlbGYuZGF0YSA9IGRhdGEK
LQotCi1jbGFzcyBfUGh5c2ljYWxDb25uZWN0aW9uV3JpdGVyKHRocmVhZGluZy5UaHJlYWQpOgot
ICAgICIiIkEgdGhyZWFkIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHdyaXRpbmcgZGF0YSB0byBw
aHlzaWNhbCBjb25uZWN0aW9uLgotCi0gICAgVE9ETyhiYXNoaSk6IE1ha2Ugc3VyZSB0aGVyZSBp
cyBubyB0aHJlYWQtc2FmZXR5IHByb2JsZW0gd2hlbiB0aGUgcmVhZGVyCi0gICAgdGhyZWFkIHJl
YWRzIGRhdGEgZnJvbSB0aGUgc2FtZSBzb2NrZXQgYXQgYSB0aW1lLgotICAgICIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG11eF9oYW5kbGVyKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBh
biBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbXV4X2hhbmRsZXI6IF9N
dXhIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICB0aHJlYWRpbmcuVGhy
ZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQotICAgICAgICBzZWxmLl9tdXhfaGFuZGxlciA9IG11eF9oYW5kbGVyCi0g
ICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0KLSAgICAgICAgIyBXaGVuIHNldCwgbWFrZSB0
aGlzIHRocmVhZCBzdG9wIGFjY2VwdGluZyBuZXcgZGF0YSwgZmx1c2ggcGVuZGluZwotICAgICAg
ICAjIGRhdGEgYW5kIGV4aXQuCi0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gRmFsc2UK
LSAgICAgICAgIyBUaGUgY2xvc2UgY29kZSBvZiB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KLSAg
ICAgICAgc2VsZi5fY2xvc2VfY29kZSA9IGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUKLSAg
ICAgICAgIyBEZXF1ZSBmb3IgcGFzc2luZyB3cml0ZSBkYXRhLiBJdCdzIHByb3RlY3RlZCBieSBf
ZGVxdWVfY29uZGl0aW9uCi0gICAgICAgICMgdW50aWwgX3N0b3BfcmVxdWVzdGVkIGlzIHNldC4K
LSAgICAgICAgc2VsZi5fZGVxdWUgPSBjb2xsZWN0aW9ucy5kZXF1ZSgpCi0gICAgICAgICMgLSBQ
cm90ZWN0cyBfZGVxdWUsIF9zdG9wX3JlcXVlc3RlZCBhbmQgX2Nsb3NlX2NvZGUKLSAgICAgICAg
IyAtIFNpZ25hbHMgdGhyZWFkcyB3YWl0aW5nIGZvciB0aGVtIHRvIGJlIGF2YWlsYWJsZQotICAg
ICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLQotICAg
IGRlZiBwdXRfb3V0Z29pbmdfZGF0YShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiUHV0cyBvdXRn
b2luZyBkYXRhLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBkYXRhOiBfT3V0Z29pbmdE
YXRhIGluc3RhbmNlLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbjogd2hlbiB0aGUgdGhyZWFkIGhhcyBiZWVuIHJlcXVlc3RlZCB0bwotICAgICAg
ICAgICAgICAgIHRlcm1pbmF0ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2Vs
Zi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhj
ZXB0aW9uKCdDYW5ub3Qgd3JpdGUgZGF0YSBhbnltb3JlJykKLQotICAgICAgICAgICAgc2VsZi5f
ZGVxdWUuYXBwZW5kKGRhdGEpCi0gICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ubm90
aWZ5KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlv
bi5yZWxlYXNlKCkKLQotICAgIGRlZiBfd3JpdGVfZGF0YShzZWxmLCBvdXRnb2luZ19kYXRhKToK
LSAgICAgICAgbWVzc2FnZSA9IChfZW5jb2RlX2NoYW5uZWxfaWQob3V0Z29pbmdfZGF0YS5jaGFu
bmVsX2lkKSArCi0gICAgICAgICAgICAgICAgICAgb3V0Z29pbmdfZGF0YS5kYXRhKQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9zdHJlYW0uc2Vu
ZF9tZXNzYWdlKAotICAgICAgICAgICAgICAgIG1lc3NhZ2U9bWVzc2FnZSwgZW5kPVRydWUsIGJp
bmFyeT1UcnVlKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgdXRp
bC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWlsZWQg
dG8gc2VuZCBtZXNzYWdlIHRvICVyOiAnICUKLSAgICAgICAgICAgICAgICAoc2VsZi5fbXV4X2hh
bmRsZXIucGh5c2ljYWxfY29ubmVjdGlvbi5yZW1vdGVfYWRkciwpLCBlKQotICAgICAgICAgICAg
cmFpc2UKLQotICAgICAgICAjIFRPRE8oYmFzaGkpOiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gYmxv
Y2sgdGhlIHRocmVhZCB0aGF0IHNlbmRzCi0gICAgICAgICMgY29udHJvbCBkYXRhIGFzIHdlbGwu
Ci0gICAgICAgIGlmIG91dGdvaW5nX2RhdGEuY2hhbm5lbF9pZCAhPSBfQ09OVFJPTF9DSEFOTkVM
X0lEOgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIubm90aWZ5X3dyaXRlX2RhdGFfZG9u
ZShvdXRnb2luZ19kYXRhLmNoYW5uZWxfaWQpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAg
ICAgICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAgICAgICAg
aWYgbGVuKHNlbGYuX2RlcXVlKSA9PSAwOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9kZXF1
ZV9jb25kaXRpb24ud2FpdCgpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAg
ICAgICAgICAgICBvdXRnb2luZ19kYXRhID0gc2VsZi5fZGVxdWUucG9wbGVmdCgpCi0KLSAgICAg
ICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgICAgICAg
ICAgc2VsZi5fd3JpdGVfZGF0YShvdXRnb2luZ19kYXRhKQotICAgICAgICAgICAgICAgIHNlbGYu
X2RlcXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLQotICAgICAgICAgICAgIyBGbHVzaCBkZXF1ZS4K
LSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMgQXQgdGhpcyBwb2ludCwgc2VsZi5fZGVxdWVf
Y29uZGl0aW9uIGlzIGFsd2F5cyBhY3F1aXJlZC4KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICB3aGlsZSBsZW4oc2VsZi5fZGVxdWUpID4gMDoKLSAgICAgICAgICAgICAgICAgICAg
b3V0Z29pbmdfZGF0YSA9IHNlbGYuX2RlcXVlLnBvcGxlZnQoKQotICAgICAgICAgICAgICAgICAg
ICBzZWxmLl93cml0ZV9kYXRhKG91dGdvaW5nX2RhdGEpCi0gICAgICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAg
ICAgICAgIyBDbG9zZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgICMgRG9uJ3Qgd2FpdCB0aGUgcmVzcG9uc2UgaGVyZS4gVGhlIHJlc3BvbnNl
IHdpbGwgYmUgcmVhZAotICAgICAgICAgICAgICAgICMgYnkgdGhlIHJlYWRlciB0aHJlYWQuCi0g
ICAgICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfc3RyZWFtLmNsb3NlX2Nv
bm5lY3Rpb24oCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2Nsb3NlX2NvZGUsIHdhaXRfcmVz
cG9uc2U9RmFsc2UpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAg
ICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAgICAgJ0ZhaWxlZCB0byBjbG9zZSB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbjogJXInICUgZSkK
LSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2Vs
Zi5fbXV4X2hhbmRsZXIubm90aWZ5X3dyaXRlcl9kb25lKCkKLQotICAgIGRlZiBzdG9wKHNlbGYs
IGNsb3NlX2NvZGU9Y29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSk6Ci0gICAgICAgICIiIlN0
b3BzIHRoZSB3cml0ZXIgdGhyZWFkLiIiIgotCi0gICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlv
bi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBUcnVlCi0gICAgICAg
IHNlbGYuX2Nsb3NlX2NvZGUgPSBjbG9zZV9jb2RlCi0gICAgICAgIHNlbGYuX2RlcXVlX2NvbmRp
dGlvbi5ub3RpZnkoKQotICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0K
LQotY2xhc3MgX1BoeXNpY2FsQ29ubmVjdGlvblJlYWRlcih0aHJlYWRpbmcuVGhyZWFkKToKLSAg
ICAiIiJBIHRocmVhZCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciByZWFkaW5nIGRhdGEgZnJvbSBw
aHlzaWNhbCBjb25uZWN0aW9uLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG11
eF9oYW5kbGVyKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAg
ICBBcmdzOgotICAgICAgICAgICAgbXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgot
ICAgICAgICAiIiIKLQotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0g
ICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAg
ICBzZWxmLl9tdXhfaGFuZGxlciA9IG11eF9oYW5kbGVyCi0gICAgICAgIHNlbGYuc2V0RGFlbW9u
KFRydWUpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHBoeXNpY2FsX3N0cmVhbSA9IHNlbGYuX211eF9o
YW5kbGVyLnBoeXNpY2FsX3N0cmVhbQotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBwaHlzaWNh
bF9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgICAgICAgICBpZiBtZXNzYWdlIGlz
IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgIyBCZWxv
dyBoYXBwZW5zIG9ubHkgd2hlbiBhIGRhdGEgbWVzc2FnZSBpcyByZWNlaXZlZC4KLSAgICAgICAg
ICAgICAgICBvcGNvZGUgPSBwaHlzaWNhbF9zdHJlYW0uZ2V0X2xhc3RfcmVjZWl2ZWRfb3Bjb2Rl
KCkKLSAgICAgICAgICAgICAgICBpZiBvcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9CSU5BUlk6Ci0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmZhaWxfcGh5c2ljYWxfY29ubmVj
dGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9FTkNBUFNV
TEFUSU5HX01FU1NBR0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgYSB0ZXh0
IG1lc3NhZ2Ugb24gcGh5c2ljYWwgY29ubmVjdGlvbicpCi0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrCi0KLSAgICAgICAgICAgIGV4Y2VwdCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiwg
ZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAg
ICAgICAgICBicmVhawotCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
bXV4X2hhbmRsZXIuZGlzcGF0Y2hfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICAgICAgZXhjZXB0
IFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuX211eF9o
YW5kbGVyLmZhaWxfcGh5c2ljYWxfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICAgICAgZS5k
cm9wX2NvZGUsIGUubWVzc2FnZSkKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAg
ZXhjZXB0IExvZ2ljYWxDaGFubmVsRXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbXV4
X2hhbmRsZXIuZmFpbF9sb2dpY2FsX2NoYW5uZWwoCi0gICAgICAgICAgICAgICAgICAgIGUuY2hh
bm5lbF9pZCwgZS5kcm9wX2NvZGUsIGUubWVzc2FnZSkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNl
cHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKHRyYWNlYmFjay5m
b3JtYXRfZXhjKCkpCi0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBzZWxmLl9tdXhf
aGFuZGxlci5ub3RpZnlfcmVhZGVyX2RvbmUoKQotCi0KLWNsYXNzIF9Xb3JrZXIodGhyZWFkaW5n
LlRocmVhZCk6Ci0gICAgIiIiQSB0aHJlYWQgdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgcnVubmlu
ZyB0aGUgY29ycmVzcG9uZGluZyBhcHBsaWNhdGlvbgotICAgIGhhbmRsZXIuCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbXV4X2hhbmRsZXIsIHJlcXVlc3QpOgotICAgICAgICAi
IiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBt
dXhfaGFuZGxlcjogX011eEhhbmRsZXIgaW5zdGFuY2UuCi0gICAgICAgICAgICByZXF1ZXN0OiBf
TG9naWNhbFJlcXVlc3QgaW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRocmVhZGlu
Zy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRf
Y2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNlbGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRs
ZXIKLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5zZXREYWVt
b24oVHJ1ZSkKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnTG9naWNhbCBjaGFubmVsIHdvcmtlciBzdGFydGVkLiAoaWQ9JWQpJyAlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgICMgTm9uLWNyaXRpY2FsIGV4Y2VwdGlvbnMgd2lsbCBiZSBoYW5kbGVkIGJ5
IGRpc3BhdGNoZXIuCi0gICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5kaXNwYXRjaGVyLnRy
YW5zZmVyX2RhdGEoc2VsZi5fcmVxdWVzdCkKLSAgICAgICAgZXhjZXB0IExvZ2ljYWxDaGFubmVs
RXJyb3IsIGU6Ci0gICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWlsX2xvZ2ljYWxfY2hh
bm5lbCgKLSAgICAgICAgICAgICAgICBlLmNoYW5uZWxfaWQsIGUuZHJvcF9jb2RlLCBlLm1lc3Nh
Z2UpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5ub3Rp
Znlfd29ya2VyX2RvbmUoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQotCi0KLWNsYXNzIF9NdXhI
YW5kc2hha2VyKGh5YmkuSGFuZHNoYWtlcik6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJv
Y2Vzc29yIGZvciBtdWx0aXBsZXhpbmcuIiIiCi0KLSAgICBfRFVNTVlfV0VCU09DS0VUX0tFWSA9
ICdkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVx
dWVzdCwgZGlzcGF0Y2hlciwgc2VuZF9xdW90YSwgcmVjZWl2ZV9xdW90YSk6Ci0gICAgICAgICIi
IkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1
ZXN0OiBfTG9naWNhbFJlcXVlc3QgaW5zdGFuY2UuCi0gICAgICAgICAgICBkaXNwYXRjaGVyOiBE
aXNwYXRjaGVyIGluc3RhbmNlIChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KLSAgICAgICAgICAgIHNl
bmRfcXVvdGE6IEluaXRpYWwgc2VuZCBxdW90YS4KLSAgICAgICAgICAgIHJlY2VpdmVfcXVvdGE6
IEluaXRpYWwgcmVjZWl2ZSBxdW90YS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaHliaS5IYW5k
c2hha2VyLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIHNlbGYu
X3NlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEgPSBy
ZWNlaXZlX3F1b3RhCi0KLSAgICAgICAgIyBBcHBlbmQgaGVhZGVycyB3aGljaCBzaG91bGQgbm90
IGJlIGluY2x1ZGVkIGluIGhhbmRzaGFrZSBmaWVsZCBvZgotICAgICAgICAjIEFkZENoYW5uZWxS
ZXF1ZXN0LgotICAgICAgICAjIFRPRE8oYmFzaGkpOiBNYWtlIHN1cmUgd2hldGhlciB3ZSBzaG91
bGQgcmFpc2UgZXhjZXB0aW9uIHdoZW4KLSAgICAgICAgIyAgICAgdGhlc2UgaGVhZGVycyBhcmUg
aW5jbHVkZWQgYWxyZWFkeS4KLSAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luW2NvbW1vbi5VUEdS
QURFX0hFQURFUl0gPSAoCi0gICAgICAgICAgICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQ
RSkKLSAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luW2NvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJ
T05fSEVBREVSXSA9ICgKLSAgICAgICAgICAgIHN0cihjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVT
VCkpCi0gICAgICAgIHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlf
SEVBREVSXSA9ICgKLSAgICAgICAgICAgIHNlbGYuX0RVTU1ZX1dFQlNPQ0tFVF9LRVkpCi0KLSAg
ICBkZWYgX2NyZWF0ZV9zdHJlYW0oc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICAiIiJP
dmVycmlkZSBoeWJpLkhhbmRzaGFrZXIuX2NyZWF0ZV9zdHJlYW0uIiIiCi0KLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdDcmVhdGluZyBsb2dpY2FsIHN0cmVhbSBmb3IgJWQnICUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAg
cmV0dXJuIF9Mb2dpY2FsU3RyZWFtKAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdCwgc3RyZWFt
X29wdGlvbnMsIHNlbGYuX3NlbmRfcXVvdGEsCi0gICAgICAgICAgICBzZWxmLl9yZWNlaXZlX3F1
b3RhKQotCi0gICAgZGVmIF9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlKHNlbGYsIGFjY2VwdCk6
Ci0gICAgICAgICIiIk92ZXJyaWRlIGh5YmkuX2NyZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2UuIiIi
Ci0KLSAgICAgICAgcmVzcG9uc2UgPSBbXQotCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRU
UC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJykKLQotICAgICAgICAjIFVwZ3JhZGUg
YW5kIFNlYy1XZWJTb2NrZXQtQWNjZXB0IHNob3VsZCBiZSBleGNsdWRlZC4KLSAgICAgICAgcmVz
cG9uc2UuYXBwZW5kKCclczogJXNcclxuJyAlICgKLSAgICAgICAgICAgIGNvbW1vbi5DT05ORUNU
SU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFKSkKLSAgICAgICAgaWYg
c2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlc3Bv
bnNlLmFwcGVuZCgnJXM6ICVzXHJcbicgJSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNFQ19X
RUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qu
d3NfcHJvdG9jb2wpKQotICAgICAgICBpZiAoc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zIGlz
IG5vdCBOb25lIGFuZAotICAgICAgICAgICAgbGVuKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9u
cykgIT0gMCk6Ci0gICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKAot
ICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLAot
ICAgICAgICAgICAgICAgIGNvbW1vbi5mb3JtYXRfZXh0ZW5zaW9ucyhzZWxmLl9yZXF1ZXN0Lndz
X2V4dGVuc2lvbnMpKSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdcclxuJykKLQotICAgICAg
ICByZXR1cm4gJycuam9pbihyZXNwb25zZSkKLQotICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2Vs
ZiwgYWNjZXB0KToKLSAgICAgICAgIiIiT3ZlcnJpZGUgaHliaS5IYW5kc2hha2VyLl9zZW5kX2hh
bmRzaGFrZS4iIiIKLQotICAgICAgICAjIERvbid0IHNlbmQgaGFuZHNoYWtlIHJlc3BvbnNlIGZv
ciB0aGUgZGVmYXVsdCBjaGFubmVsCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9p
ZCA9PSBfREVGQVVMVF9DSEFOTkVMX0lEOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAg
aGFuZHNoYWtlX3Jlc3BvbnNlID0gc2VsZi5fY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZShhY2Nl
cHQpCi0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBoYW5kc2hha2VfcmVzcG9uc2UpCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnU2VuZGluZyBoYW5kc2hha2UgcmVzcG9uc2UgZm9yICVkOiAlcicgJQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgZnJhbWVf
ZGF0YSkpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZV9jb250cm9sX2Rh
dGEoZnJhbWVfZGF0YSkKLQotCi1jbGFzcyBfTG9naWNhbENoYW5uZWxEYXRhKG9iamVjdCk6Ci0g
ICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCBsb2dpY2FsIGNo
YW5uZWwuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgd29ya2Vy
KToKLSAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLndvcmtlciA9
IHdvcmtlcgotICAgICAgICBzZWxmLmRyb3BfY29kZSA9IF9EUk9QX0NPREVfTk9STUFMX0NMT1NV
UkUKLSAgICAgICAgc2VsZi5kcm9wX21lc3NhZ2UgPSAnJwotCi0KLWNsYXNzIF9IYW5kc2hha2VE
ZWx0YUJhc2Uob2JqZWN0KToKLSAgICAiIiJBIGNsYXNzIHRoYXQgaG9sZHMgaW5mb3JtYXRpb24g
Zm9yIGRlbHRhLWVuY29kZWQgaGFuZHNoYWtlLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGhlYWRlcnMpOgotICAgICAgICBzZWxmLl9oZWFkZXJzID0gaGVhZGVycwotCi0gICAgZGVmIGNy
ZWF0ZV9oZWFkZXJzKHNlbGYsIGRlbHRhPU5vbmUpOgotICAgICAgICAiIiJDcmVhdGVzIHJlcXVl
c3QgaGVhZGVycyBmb3IgYW4gQWRkQ2hhbm5lbFJlcXVlc3QgdGhhdCBoYXMKLSAgICAgICAgZGVs
dGEtZW5jb2RlZCBoYW5kc2hha2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRlbHRh
OiBoZWFkZXJzIHNob3VsZCBiZSBvdmVycmlkZGVuLgotICAgICAgICAiIiIKLQotICAgICAgICBo
ZWFkZXJzID0gY29weS5jb3B5KHNlbGYuX2hlYWRlcnMpCi0gICAgICAgIGlmIGRlbHRhOgotICAg
ICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gZGVsdGEuaXRlbXMoKToKLSAgICAgICAgICAgICAg
ICAjIFRoZSBzcGVjIHJlcXVpcmVzIHRoYXQgYSBoZWFkZXIgd2l0aCBhbiBlbXB0eSB2YWx1ZSBp
cwotICAgICAgICAgICAgICAgICMgcmVtb3ZlZCBmcm9tIHRoZSBkZWx0YSBiYXNlLgotICAgICAg
ICAgICAgICAgIGlmIGxlbih2YWx1ZSkgPT0gMCBhbmQgaGVhZGVycy5oYXNfa2V5KGtleSk6Ci0g
ICAgICAgICAgICAgICAgICAgIGRlbCBoZWFkZXJzW2tleV0KLSAgICAgICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgICAgICBoZWFkZXJzW2tleV0gPSB2YWx1ZQotICAgICAgICByZXR1
cm4gaGVhZGVycwotCi0KLWNsYXNzIF9NdXhIYW5kbGVyKG9iamVjdCk6Ci0gICAgIiIiTXVsdGlw
bGV4aW5nIGhhbmRsZXIuIFdoZW4gYSBoYW5kbGVyIHN0YXJ0cywgaXQgbGF1bmNoZXMgdGhyZWUK
LSAgICB0aHJlYWRzOyB0aGUgcmVhZGVyIHRocmVhZCwgdGhlIHdyaXRlciB0aHJlYWQsIGFuZCBh
IHdvcmtlciB0aHJlYWQuCi0KLSAgICBUaGUgcmVhZGVyIHRocmVhZCByZWFkcyBkYXRhIGZyb20g
dGhlIHBoeXNpY2FsIHN0cmVhbSwgaS5lLiwgdGhlCi0gICAgd3Nfc3RyZWFtIG9iamVjdCBvZiB0
aGUgdW5kZXJseWluZyB3ZWJzb2NrZXQgY29ubmVjdGlvbi4gVGhlIHJlYWRlcgotICAgIHRocmVh
ZCBpbnRlcnByZXRzIG11bHRpcGxleGVkIGZyYW1lcyBhbmQgZGlzcGF0Y2hlcyB0aGVtIHRvIGxv
Z2ljYWwKLSAgICBjaGFubmVscy4gTWV0aG9kcyBvZiB0aGlzIGNsYXNzIGFyZSBtb3N0bHkgY2Fs
bGVkIGJ5IHRoZSByZWFkZXIgdGhyZWFkLgotCi0gICAgVGhlIHdyaXRlciB0aHJlYWQgc2VuZHMg
bXVsdGlwbGV4ZWQgZnJhbWVzIHdoaWNoIGFyZSBjcmVhdGVkIGJ5Ci0gICAgbG9naWNhbCBjaGFu
bmVscyB2aWEgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0KLSAgICBUaGUgd29ya2VyIHRocmVh
ZCBsYXVuY2hlZCBhdCB0aGUgc3RhcnRpbmcgcG9pbnQgaGFuZGxlcyB0aGUKLSAgICAiSW1wbGlj
aXRseSBPcGVuZWQgQ29ubmVjdGlvbiIuIElmIG11bHRpcGxleGluZyBoYW5kbGVyIHJlY2VpdmVz
Ci0gICAgYW4gQWRkQ2hhbm5lbFJlcXVlc3QgYW5kIGFjY2VwdHMgaXQsIHRoZSBoYW5kbGVyIHdp
bGwgbGF1bmNoIGEgbmV3IHdvcmtlcgotICAgIHRocmVhZCBhbmQgZGlzcGF0Y2ggdGhlIHJlcXVl
c3QgdG8gaXQuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlz
cGF0Y2hlcik6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdCBvZiB0aGUgcGh5
c2ljYWwgY29ubmVjdGlvbi4KLSAgICAgICAgICAgIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgaW5z
dGFuY2UgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxm
Lm9yaWdpbmFsX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuZGlzcGF0Y2hlciA9IGRp
c3BhdGNoZXIKLSAgICAgICAgc2VsZi5waHlzaWNhbF9jb25uZWN0aW9uID0gcmVxdWVzdC5jb25u
ZWN0aW9uCi0gICAgICAgIHNlbGYucGh5c2ljYWxfc3RyZWFtID0gcmVxdWVzdC53c19zdHJlYW0K
LSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAg
ICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMgPSB7fQotICAgICAgICBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotICAgICAgICAjIEhvbGRz
IGNsaWVudCdzIGluaXRpYWwgcXVvdGEKLSAgICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cyA9IGNv
bGxlY3Rpb25zLmRlcXVlKCkKLSAgICAgICAgc2VsZi5faGFuZHNoYWtlX2Jhc2UgPSBOb25lCi0g
ICAgICAgIHNlbGYuX3dvcmtlcl9kb25lX25vdGlmeV9yZWNlaXZlZCA9IEZhbHNlCi0gICAgICAg
IHNlbGYuX3JlYWRlciA9IE5vbmUKLSAgICAgICAgc2VsZi5fd3JpdGVyID0gTm9uZQotCi0gICAg
ZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICAiIiJTdGFydHMgdGhlIGhhbmRsZXIuCi0KLSAgICAg
ICAgUmFpc2VzOgotICAgICAgICAgICAgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbjogd2hlbiB0aGUg
aGFuZGxlciBhbHJlYWR5IHN0YXJ0ZWQsIG9yIHdoZW4KLSAgICAgICAgICAgICAgICBvcGVuaW5n
IGhhbmRzaGFrZSBvZiB0aGUgZGVmYXVsdCBjaGFubmVsIGZhaWxzLgotICAgICAgICAiIiIKLQot
ICAgICAgICBpZiBzZWxmLl9yZWFkZXIgb3Igc2VsZi5fd3JpdGVyOgotICAgICAgICAgICAgcmFp
c2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbignTXV4SGFuZGxlciBhbHJlYWR5IHN0YXJ0ZWQnKQot
Ci0gICAgICAgIHNlbGYuX3JlYWRlciA9IF9QaHlzaWNhbENvbm5lY3Rpb25SZWFkZXIoc2VsZikK
LSAgICAgICAgc2VsZi5fd3JpdGVyID0gX1BoeXNpY2FsQ29ubmVjdGlvbldyaXRlcihzZWxmKQot
ICAgICAgICBzZWxmLl9yZWFkZXIuc3RhcnQoKQotICAgICAgICBzZWxmLl93cml0ZXIuc3RhcnQo
KQotCi0gICAgICAgICMgQ3JlYXRlICJJbXBsaWNpdGx5IE9wZW5lZCBDb25uZWN0aW9uIi4KLSAg
ICAgICAgbG9naWNhbF9jb25uZWN0aW9uID0gX0xvZ2ljYWxDb25uZWN0aW9uKHNlbGYsIF9ERUZB
VUxUX0NIQU5ORUxfSUQpCi0gICAgICAgIGhlYWRlcnMgPSBjb3B5LmNvcHkoc2VsZi5vcmlnaW5h
bF9yZXF1ZXN0LmhlYWRlcnNfaW4pCi0gICAgICAgICMgQWRkIGV4dGVuc2lvbnMgZm9yIGxvZ2lj
YWwgY2hhbm5lbC4KLSAgICAgICAgaGVhZGVyc1tjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJ
T05TX0hFQURFUl0gPSAoCi0gICAgICAgICAgICBjb21tb24uZm9ybWF0X2V4dGVuc2lvbnMoCi0g
ICAgICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9yZXF1ZXN0Lm11eF9wcm9jZXNzb3IuZXh0ZW5z
aW9ucygpKSkKLSAgICAgICAgc2VsZi5faGFuZHNoYWtlX2Jhc2UgPSBfSGFuZHNoYWtlRGVsdGFC
YXNlKGhlYWRlcnMpCi0gICAgICAgIGxvZ2ljYWxfcmVxdWVzdCA9IF9Mb2dpY2FsUmVxdWVzdCgK
LSAgICAgICAgICAgIF9ERUZBVUxUX0NIQU5ORUxfSUQsCi0gICAgICAgICAgICBzZWxmLm9yaWdp
bmFsX3JlcXVlc3QubWV0aG9kLAotICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9yZXF1ZXN0LnVy
aSwKLSAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdC5wcm90b2NvbCwKLSAgICAgICAg
ICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlLmNyZWF0ZV9oZWFkZXJzKCksCi0gICAgICAgICAgICBs
b2dpY2FsX2Nvbm5lY3Rpb24pCi0gICAgICAgICMgQ2xpZW50J3Mgc2VuZCBxdW90YSBmb3IgdGhl
IGltcGxpY2l0bHkgb3BlbmVkIGNvbm5lY3Rpb24gaXMgemVybywKLSAgICAgICAgIyBidXQgd2Ug
d2lsbCBzZW5kIEZsb3dDb250cm9sIGxhdGVyIHNvIHNldCB0aGUgaW5pdGlhbCBxdW90YSB0bwot
ICAgICAgICAjIF9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQuCi0gICAgICAgIHNlbGYuX2NoYW5u
ZWxfc2xvdHMuYXBwZW5kKF9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0gICAgICAgIHNlbmRf
cXVvdGEgPSBzZWxmLm9yaWdpbmFsX3JlcXVlc3QubXV4X3Byb2Nlc3Nvci5xdW90YSgpCi0gICAg
ICAgIGlmIG5vdCBzZWxmLl9kb19oYW5kc2hha2VfZm9yX2xvZ2ljYWxfcmVxdWVzdCgKLSAgICAg
ICAgICAgIGxvZ2ljYWxfcmVxdWVzdCwgc2VuZF9xdW90YT1zZW5kX3F1b3RhKToKLSAgICAgICAg
ICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0ZhaWxl
ZCBoYW5kc2hha2Ugb24gdGhlIGRlZmF1bHQgY2hhbm5lbCBpZCcpCi0gICAgICAgIHNlbGYuX2Fk
ZF9sb2dpY2FsX2NoYW5uZWwobG9naWNhbF9yZXF1ZXN0KQotCi0gICAgICAgICMgU2VuZCBGbG93
Q29udHJvbCBmb3IgdGhlIGltcGxpY2l0bHkgb3BlbmVkIGNvbm5lY3Rpb24uCi0gICAgICAgIGZy
YW1lX2RhdGEgPSBfY3JlYXRlX2Zsb3dfY29udHJvbChfREVGQVVMVF9DSEFOTkVMX0lELAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0lOSVRJQUxfUVVPVEFfRk9S
X0NMSUVOVCkKLSAgICAgICAgbG9naWNhbF9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGVfY29udHJv
bF9kYXRhKGZyYW1lX2RhdGEpCi0KLSAgICBkZWYgYWRkX2NoYW5uZWxfc2xvdHMoc2VsZiwgc2xv
dHMsIHNlbmRfcXVvdGEpOgotICAgICAgICAiIiJBZGRzIGNoYW5uZWwgc2xvdHMuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIHNsb3RzOiBudW1iZXIgb2Ygc2xvdHMgdG8gYmUgYWRkZWQu
Ci0gICAgICAgICAgICBzZW5kX3F1b3RhOiBpbml0aWFsIHNlbmQgcXVvdGEgZm9yIHNsb3RzLgot
ICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9jaGFubmVsX3Nsb3RzLmV4dGVuZChbc2VuZF9x
dW90YV0gKiBzbG90cykKLSAgICAgICAgIyBTZW5kIE5ld0NoYW5uZWxTbG90IHRvIGNsaWVudC4K
LSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfbmV3X2NoYW5uZWxfc2xvdChzbG90cywgc2Vu
ZF9xdW90YSkKLSAgICAgICAgc2VsZi5zZW5kX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRhKQotCi0g
ICAgZGVmIHdhaXRfdW50aWxfZG9uZShzZWxmLCB0aW1lb3V0PU5vbmUpOgotICAgICAgICAiIiJX
YWl0cyB1bnRpbCBhbGwgd29ya2VycyBhcmUgZG9uZS4gUmV0dXJucyBGYWxzZSB3aGVuIHRpbWVv
dXQgaGFzCi0gICAgICAgIG9jY3VycmVkLiBSZXR1cm5zIFRydWUgb24gc3VjY2Vzcy4KLQotICAg
ICAgICBBcmdzOgotICAgICAgICAgICAgdGltZW91dDogdGltZW91dCBpbiBzZWMuCi0gICAgICAg
ICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUo
KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aGlsZSBsZW4oc2VsZi5fbG9naWNhbF9jaGFu
bmVscykgPiAwOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnV2FpdGluZyB3
b3JrZXJzKCVkKS4uLicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4o
c2VsZi5fbG9naWNhbF9jaGFubmVscykpCi0gICAgICAgICAgICAgICAgc2VsZi5fd29ya2VyX2Rv
bmVfbm90aWZ5X3JlY2VpdmVkID0gRmFsc2UKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2Fs
X2NoYW5uZWxzX2NvbmRpdGlvbi53YWl0KHRpbWVvdXQpCi0gICAgICAgICAgICAgICAgaWYgbm90
IHNlbGYuX3dvcmtlcl9kb25lX25vdGlmeV9yZWNlaXZlZDoKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdXYWl0aW5nIHdvcmtlcihzKSB0aW1lZCBvdXQnKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICMg
Rmx1c2ggcGVuZGluZyBvdXRnb2luZyBkYXRhCi0gICAgICAgIHNlbGYuX3dyaXRlci5zdG9wKCkK
LSAgICAgICAgc2VsZi5fd3JpdGVyLmpvaW4oKQotCi0gICAgICAgIHJldHVybiBUcnVlCi0KLSAg
ICBkZWYgbm90aWZ5X3dyaXRlX2RhdGFfZG9uZShzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAg
IiIiQ2FsbGVkIGJ5IHRoZSB3cml0ZXIgdGhyZWFkIHdoZW4gYSB3cml0ZSBvcGVyYXRpb24gaGFz
IGRvbmUuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ6IG9iamVjdGl2
ZSBjaGFubmVsIGlkLgotICAgICAgICAiIiIKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlm
IGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICBj
aGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdCi0gICAgICAg
ICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVjdGlvbi5vbl93cml0ZV9kYXRhX2Rv
bmUoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ1NlZW1zIHRoYXQgbG9naWNhbCBjaGFubmVsIGZvciAlZCBoYXMgZ29uZScKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBjaGFubmVsX2lkKQotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgp
Ci0KLSAgICBkZWYgc2VuZF9jb250cm9sX2RhdGEoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIlNl
bmRzIGRhdGEgdmlhIHRoZSBjb250cm9sIGNoYW5uZWwuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgc2VudC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2Vs
Zi5fd3JpdGVyLnB1dF9vdXRnb2luZ19kYXRhKF9PdXRnb2luZ0RhdGEoCi0gICAgICAgICAgICAg
ICAgY2hhbm5lbF9pZD1fQ09OVFJPTF9DSEFOTkVMX0lELCBkYXRhPWRhdGEpKQotCi0gICAgZGVm
IHNlbmRfZGF0YShzZWxmLCBjaGFubmVsX2lkLCBkYXRhKToKLSAgICAgICAgIiIiU2VuZHMgZGF0
YSB2aWEgZ2l2ZW4gbG9naWNhbCBjaGFubmVsLiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkKLSAg
ICAgICAgd29ya2VyIHRocmVhZHMuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNoYW5u
ZWxfaWQ6IG9iamVjdGl2ZSBjaGFubmVsIGlkLgotICAgICAgICAgICAgZGF0YTogZGF0YSB0byBi
ZSBzZW50LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl93cml0ZXIucHV0X291dGdvaW5n
X2RhdGEoX091dGdvaW5nRGF0YSgKLSAgICAgICAgICAgICAgICBjaGFubmVsX2lkPWNoYW5uZWxf
aWQsIGRhdGE9ZGF0YSkpCi0KLSAgICBkZWYgX3NlbmRfZHJvcF9jaGFubmVsKHNlbGYsIGNoYW5u
ZWxfaWQsIGNvZGU9Tm9uZSwgbWVzc2FnZT0nJyk6Ci0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3Jl
YXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkLCBjb2RlLCBtZXNzYWdlKQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnU2VuZGluZyBkcm9wIGNoYW5uZWwgZm9yIGNo
YW5uZWwgaWQgJWQnICUgY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5zZW5kX2NvbnRyb2xfZGF0
YShmcmFtZV9kYXRhKQotCi0gICAgZGVmIF9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNl
KHNlbGYsIGNoYW5uZWxfaWQsIHN0YXR1cz1Ob25lKToKLSAgICAgICAgaWYgc3RhdHVzIGlzIE5v
bmU6Ci0gICAgICAgICAgICBzdGF0dXMgPSBjb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QK
LQotICAgICAgICBpZiBzdGF0dXMgaW4gX0hUVFBfQkFEX1JFU1BPTlNFX01FU1NBR0VTOgotICAg
ICAgICAgICAgbWVzc2FnZSA9IF9IVFRQX0JBRF9SRVNQT05TRV9NRVNTQUdFU1tzdGF0dXNdCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Jlc3BvbnNlIG1l
c3NhZ2UgZm9yICVkIGlzIG5vdCBmb3VuZCcgJSBzdGF0dXMpCi0gICAgICAgICAgICBtZXNzYWdl
ID0gJz8/PycKLQotICAgICAgICByZXNwb25zZSA9ICdIVFRQLzEuMSAlZCAlc1xyXG5cclxuJyAl
IChzdGF0dXMsIG1lc3NhZ2UpCi0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2FkZF9jaGFu
bmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPXJlc3BvbnNlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0wLCByZWpl
Y3RlZD1UcnVlKQotICAgICAgICBzZWxmLnNlbmRfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0K
LSAgICBkZWYgX2NyZWF0ZV9sb2dpY2FsX3JlcXVlc3Qoc2VsZiwgYmxvY2spOgotICAgICAgICBp
ZiBibG9jay5jaGFubmVsX2lkID09IF9DT05UUk9MX0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICAj
IFRPRE8oYmFzaGkpOiBSYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvciB3aXRoIGNvZGUgMjAw
NgotICAgICAgICAgICAgIyBpbnN0ZWFkIG9mIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24uCi0gICAg
ICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdS
ZWNlaXZlZCB0aGUgY29udHJvbCBjaGFubmVsIGlkICgwKSBhcyBvYmplY3RpdmUgY2hhbm5lbCAn
Ci0gICAgICAgICAgICAgICAgJ2lkIGZvciBBZGRDaGFubmVsJykKLQotICAgICAgICBpZiBibG9j
ay5lbmNvZGluZyA+IF9IQU5EU0hBS0VfRU5DT0RJTkdfREVMVEE6Ci0gICAgICAgICAgICByYWlz
ZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX1VO
S05PV05fUkVRVUVTVF9FTkNPRElORykKLQotICAgICAgICBtZXRob2QsIHBhdGgsIHZlcnNpb24s
IGhlYWRlcnMgPSBfcGFyc2VfcmVxdWVzdF90ZXh0KAotICAgICAgICAgICAgYmxvY2suZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgICAgIGlmIGJsb2NrLmVuY29kaW5nID09IF9IQU5EU0hBS0VfRU5D
T0RJTkdfREVMVEE6Ci0gICAgICAgICAgICBoZWFkZXJzID0gc2VsZi5faGFuZHNoYWtlX2Jhc2Uu
Y3JlYXRlX2hlYWRlcnMoaGVhZGVycykKLQotICAgICAgICBjb25uZWN0aW9uID0gX0xvZ2ljYWxD
b25uZWN0aW9uKHNlbGYsIGJsb2NrLmNoYW5uZWxfaWQpCi0gICAgICAgIHJlcXVlc3QgPSBfTG9n
aWNhbFJlcXVlc3QoYmxvY2suY2hhbm5lbF9pZCwgbWV0aG9kLCBwYXRoLCB2ZXJzaW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMsIGNvbm5lY3Rpb24pCi0gICAg
ICAgIHJldHVybiByZXF1ZXN0Ci0KLSAgICBkZWYgX2RvX2hhbmRzaGFrZV9mb3JfbG9naWNhbF9y
ZXF1ZXN0KHNlbGYsIHJlcXVlc3QsIHNlbmRfcXVvdGE9MCk6Ci0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIHJlY2VpdmVfcXVvdGEgPSBzZWxmLl9jaGFubmVsX3Nsb3RzLnBvcGxlZnQoKQotICAg
ICAgICBleGNlcHQgSW5kZXhFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIExvZ2ljYWxDaGFubmVs
RXJyb3IoCi0gICAgICAgICAgICAgICAgcmVxdWVzdC5jaGFubmVsX2lkLCBfRFJPUF9DT0RFX05F
V19DSEFOTkVMX1NMT1RfVklPTEFUSU9OKQotCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfTXV4SGFu
ZHNoYWtlcihyZXF1ZXN0LCBzZWxmLmRpc3BhdGNoZXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZW5kX3F1b3RhLCByZWNlaXZlX3F1b3RhKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIGV4Y2VwdCBoYW5k
c2hha2UuVmVyc2lvbkV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCclcycsIGUpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3Bv
bnNlKAotICAgICAgICAgICAgICAgIHJlcXVlc3QuY2hhbm5lbF9pZCwgc3RhdHVzPWNvbW1vbi5I
VFRQX1NUQVRVU19CQURfUkVRVUVTVCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAg
ICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICMg
VE9ETyhiYXNoaSk6IFNob3VsZCB3ZSBfRmFpbCB0aGUgTG9naWNhbCBDaGFubmVsXyB3aXRoIDMw
MDEKLSAgICAgICAgICAgICMgaW5zdGVhZD8KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCclcycsIGUpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3Bv
bnNlKHJlcXVlc3QuY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdHVzPWUuc3RhdHVzKQotICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgZToK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCclcycsIGUpCi0gICAgICAgICAgICBzZWxm
Ll9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHJlcXVlc3QuY2hhbm5lbF9pZCkKLSAg
ICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYg
X2FkZF9sb2dpY2FsX2NoYW5uZWwoc2VsZiwgbG9naWNhbF9yZXF1ZXN0KToKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgp
Ci0gICAgICAgICAgICBpZiBsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dp
Y2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2hhbm5l
bCBpZCAlZCBhbHJlYWR5IGV4aXN0cycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgICAgICAgICByYWlzZSBQ
aHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICAgICAgX0RST1BfQ09ERV9D
SEFOTkVMX0FMUkVBRFlfRVhJU1RTLAotICAgICAgICAgICAgICAgICAgICAnQ2hhbm5lbCBpZCAl
ZCBhbHJlYWR5IGV4aXN0cycgJQotICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX3JlcXVlc3Qu
Y2hhbm5lbF9pZCkKLSAgICAgICAgICAgIHdvcmtlciA9IF9Xb3JrZXIoc2VsZiwgbG9naWNhbF9y
ZXF1ZXN0KQotICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gX0xvZ2ljYWxDaGFubmVsRGF0YShs
b2dpY2FsX3JlcXVlc3QsIHdvcmtlcikKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNbbG9naWNhbF9yZXF1ZXN0LmNoYW5uZWxfaWRdID0gY2hhbm5lbF9kYXRhCi0gICAgICAgICAg
ICB3b3JrZXIuc3RhcnQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgX3Byb2Nlc3NfYWRk
X2NoYW5uZWxfcmVxdWVzdChzZWxmLCBibG9jayk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGxvZ2ljYWxfcmVxdWVzdCA9IHNlbGYuX2NyZWF0ZV9sb2dpY2FsX3JlcXVlc3QoYmxvY2spCi0g
ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdGYWlsZWQgdG8gY3JlYXRlIGxvZ2ljYWwgcmVxdWVzdDogJXInICUgZSkKLSAgICAgICAg
ICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxfcmVzcG9uc2UoCi0gICAgICAgICAgICAg
ICAgYmxvY2suY2hhbm5lbF9pZCwgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVT
VCkKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBpZiBzZWxmLl9kb19oYW5kc2hha2VfZm9y
X2xvZ2ljYWxfcmVxdWVzdChsb2dpY2FsX3JlcXVlc3QpOgotICAgICAgICAgICAgaWYgYmxvY2su
ZW5jb2RpbmcgPT0gX0hBTkRTSEFLRV9FTkNPRElOR19JREVOVElUWToKLSAgICAgICAgICAgICAg
ICAjIFVwZGF0ZSBoYW5kc2hha2UgYmFzZS4KLSAgICAgICAgICAgICAgICAjIFRPRE8oYmFzaGkp
OiBNYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgcGxhY2UgdG8gdXBkYXRlCi0gICAgICAgICAg
ICAgICAgIyBoYW5kc2hha2UgYmFzZS4KLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kc2hha2Vf
YmFzZSA9IF9IYW5kc2hha2VEZWx0YUJhc2UoCi0gICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxf
cmVxdWVzdC5oZWFkZXJzX2luKQotICAgICAgICAgICAgc2VsZi5fYWRkX2xvZ2ljYWxfY2hhbm5l
bChsb2dpY2FsX3JlcXVlc3QpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9zZW5k
X2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAotICAgICAgICAgICAgICAgIGJsb2NrLmNoYW5u
ZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0KLSAgICBkZWYg
X3Byb2Nlc3NfZmxvd19jb250cm9sKHNlbGYsIGJsb2NrKToKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
ICAgICBpZiBub3QgYmxvY2suY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgot
ICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5f
bG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVsX2lkXQotICAgICAgICAgICAgY2hhbm5lbF9k
YXRhLnJlcXVlc3Qud3Nfc3RyZWFtLnJlcGxlbmlzaF9zZW5kX3F1b3RhKAotICAgICAgICAgICAg
ICAgIGJsb2NrLnNlbmRfcXVvdGEpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBfcHJvY2Vz
c19kcm9wX2NoYW5uZWwoc2VsZiwgYmxvY2spOgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
Ci0gICAgICAgICAgICAnRHJvcENoYW5uZWwgcmVjZWl2ZWQgZm9yICVkOiBjb2RlPSVyLCByZWFz
b249JXInICUKLSAgICAgICAgICAgIChibG9jay5jaGFubmVsX2lkLCBibG9jay5kcm9wX2NvZGUs
IGJsb2NrLmRyb3BfbWVzc2FnZSkpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IGJs
b2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAg
ICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNbYmxvY2suY2hhbm5lbF9pZF0KLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5kcm9wX2NvZGUg
PSBfRFJPUF9DT0RFX0FDS05PV0xFREdFRAotCi0gICAgICAgICAgICAjIENsb3NlIHRoZSBsb2dp
Y2FsIGNoYW5uZWwKLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24u
c2V0X3JlYWRfc3RhdGUoCi0gICAgICAgICAgICAgICAgX0xvZ2ljYWxDb25uZWN0aW9uLlNUQVRF
X1RFUk1JTkFURUQpCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC53c19zdHJlYW0u
c3RvcF9zZW5kaW5nKCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIF9wcm9jZXNzX2NvbnRy
b2xfYmxvY2tzKHNlbGYsIHBhcnNlcik6Ci0gICAgICAgIGZvciBjb250cm9sX2Jsb2NrIGluIHBh
cnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCk6Ci0gICAgICAgICAgICBvcGNvZGUgPSBjb250cm9s
X2Jsb2NrLm9wY29kZQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdjb250cm9sIGJs
b2NrIHJlY2VpdmVkLCBvcGNvZGU6ICVkJyAlIG9wY29kZSkKLSAgICAgICAgICAgIGlmIG9wY29k
ZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUOgotICAgICAgICAgICAgICAgIHNl
bGYuX3Byb2Nlc3NfYWRkX2NoYW5uZWxfcmVxdWVzdChjb250cm9sX2Jsb2NrKQotICAgICAgICAg
ICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAg
ICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAg
ICAgICAgICAgJ1JlY2VpdmVkIEFkZENoYW5uZWxSZXNwb25zZScpCi0gICAgICAgICAgICBlbGlm
IG9wY29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fcHJvY2Vzc19mbG93X2NvbnRyb2woY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYg
b3Bjb2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoKLSAgICAgICAgICAgICAgICBzZWxm
Ll9wcm9jZXNzX2Ryb3BfY2hhbm5lbChjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxpZiBv
cGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVDoKLSAgICAgICAgICAgICAgICBy
YWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICAgICAgX0RST1Bf
Q09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICAgICAnUmVj
ZWl2ZWQgTmV3Q2hhbm5lbFNsb3QnKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnVW5l
eHBlY3RlZCBvcGNvZGUgJXInICUgb3Bjb2RlKQotCi0gICAgZGVmIF9wcm9jZXNzX2xvZ2ljYWxf
ZnJhbWUoc2VsZiwgY2hhbm5lbF9pZCwgcGFyc2VyKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdSZWNlaXZlZCBhIGZyYW1lLiBjaGFubmVsIGlkPSVkJyAlIGNoYW5uZWxfaWQpCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9j
aGFubmVsczoKLSAgICAgICAgICAgICAgICAjIFdlIG11c3QgaWdub3JlIHRoZSBtZXNzYWdlIGZv
ciBhbiBpbmFjdGl2ZSBjaGFubmVsLgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAg
ICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXQotICAg
ICAgICAgICAgZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWQgPSBwYXJzZXIu
cmVhZF9pbm5lcl9mcmFtZSgpCi0gICAgICAgICAgICBjb25zdW1pbmdfYnl0ZSA9IGxlbihwYXls
b2FkKQotICAgICAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9O
OgotICAgICAgICAgICAgICAgIGNvbnN1bWluZ19ieXRlICs9IDEKLSAgICAgICAgICAgIGlmIG5v
dCBjaGFubmVsX2RhdGEucmVxdWVzdC53c19zdHJlYW0uY29uc3VtZV9yZWNlaXZlX3F1b3RhKAot
ICAgICAgICAgICAgICAgIGNvbnN1bWluZ19ieXRlKToKLSAgICAgICAgICAgICAgICAjIFRoZSBj
bGllbnQgdmlvbGF0ZXMgcXVvdGEuIENsb3NlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgICAg
ICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9yKAotICAgICAgICAgICAgICAgICAgICBjaGFu
bmVsX2lkLCBfRFJPUF9DT0RFX1NFTkRfUVVPVEFfVklPTEFUSU9OKQotICAgICAgICAgICAgaGVh
ZGVyID0gY3JlYXRlX2hlYWRlcihvcGNvZGUsIGxlbihwYXlsb2FkKSwgZmluLCByc3YxLCByc3Yy
LCByc3YzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrPUZhbHNlKQot
ICAgICAgICAgICAgZnJhbWVfZGF0YSA9IGhlYWRlciArIHBheWxvYWQKLSAgICAgICAgICAgIGNo
YW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uYXBwZW5kX2ZyYW1lX2RhdGEoZnJhbWVfZGF0
YSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIGRpc3BhdGNoX21lc3NhZ2Uoc2VsZiwgbWVz
c2FnZSk6Ci0gICAgICAgICIiIkRpc3BhdGNoZXMgbWVzc2FnZS4gVGhlIHJlYWRlciB0aHJlYWQg
Y2FsbHMgdGhpcyBtZXRob2QuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6
IGEgbWVzc2FnZSB0aGF0IGNvbnRhaW5zIGVuY2Fwc3VsYXRlZCBmcmFtZS4KLSAgICAgICAgUmFp
c2VzOgotICAgICAgICAgICAgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3I6IGlmIHRoZSBtZXNzYWdl
IGNvbnRhaW5zIHBoeXNpY2FsCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbiBsZXZlbCBlcnJv
cnMuCi0gICAgICAgICAgICBMb2dpY2FsQ2hhbm5lbEVycm9yOiBpZiB0aGUgbWVzc2FnZSBjb250
YWlucyBsb2dpY2FsIGNoYW5uZWwKLSAgICAgICAgICAgICAgICBsZXZlbCBlcnJvcnMuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHBhcnNlciA9IF9NdXhGcmFtZVBheWxvYWRQYXJzZXIobWVzc2Fn
ZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2No
YW5uZWxfaWQoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHJh
aXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfQ0hBTk5FTF9JRF9UUlVOQ0FU
RUQpCi0gICAgICAgIGlmIGNoYW5uZWxfaWQgPT0gX0NPTlRST0xfQ0hBTk5FTF9JRDoKLSAgICAg
ICAgICAgIHNlbGYuX3Byb2Nlc3NfY29udHJvbF9ibG9ja3MocGFyc2VyKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQsIHBh
cnNlcikKLQotICAgIGRlZiBub3RpZnlfd29ya2VyX2RvbmUoc2VsZiwgY2hhbm5lbF9pZCk6Ci0g
ICAgICAgICIiIkNhbGxlZCB3aGVuIGEgd29ya2VyIGhhcyBmaW5pc2hlZC4KLQotICAgICAgICBB
cmdzOgotICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hhbm5lbCBpZCBjb3JyZXNwb25kZWQgd2l0
aCB0aGUgd29ya2VyLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1dvcmtlciBmb3IgY2hhbm5lbCBpZCAlZCB0ZXJtaW5hdGVkJyAlIGNoYW5uZWxfaWQpCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9j
aGFubmVsczoKLSAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICAgICAnQ2hhbm5lbCBpZCAlZCBub3QgZm91bmQnICUgY2hhbm5lbF9p
ZCkKLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMucG9w
KGNoYW5uZWxfaWQpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93b3JrZXJf
ZG9uZV9ub3RpZnlfcmVjZWl2ZWQgPSBUcnVlCi0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgaWYgbm90IGNoYW5uZWxfZGF0YS5y
ZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgc2VsZi5fc2VuZF9kcm9wX2No
YW5uZWwoCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwgY29kZT1jaGFubmVsX2RhdGEuZHJv
cF9jb2RlLAotICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y2hhbm5lbF9kYXRhLmRyb3BfbWVzc2Fn
ZSkKLQotICAgIGRlZiBub3RpZnlfcmVhZGVyX2RvbmUoc2VsZik6Ci0gICAgICAgICIiIlRoaXMg
bWV0aG9kIGlzIGNhbGxlZCBieSB0aGUgcmVhZGVyIHRocmVhZCB3aGVuIHRoZSByZWFkZXIgaGFz
Ci0gICAgICAgIGZpbmlzaGVkLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoCi0gICAgICAgICAgICAnVGVybWlhdGluZyBhbGwgbG9naWNhbCBjb25uZWN0aW9ucyB3
YWl0aW5nIGZvciBpbmNvbWluZyBkYXRhICcKLSAgICAgICAgICAgICcuLi4nKQotICAgICAgICBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgZm9yIGNo
YW5uZWxfZGF0YSBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzLnZhbHVlcygpOgotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24u
c2V0X3JlYWRfc3RhdGUoCi0gICAgICAgICAgICAgICAgICAgIF9Mb2dpY2FsQ29ubmVjdGlvbi5T
VEFURV9URVJNSU5BVEVEKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKLSAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYg
bm90aWZ5X3dyaXRlcl9kb25lKHNlbGYpOgotICAgICAgICAiIiJUaGlzIG1ldGhvZCBpcyBjYWxs
ZWQgYnkgdGhlIHdyaXRlciB0aHJlYWQgd2hlbiB0aGUgd3JpdGVyIGhhcwotICAgICAgICBmaW5p
c2hlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAg
ICAgICAgJ1Rlcm1pYXRpbmcgYWxsIGxvZ2ljYWwgY29ubmVjdGlvbnMgd2FpdGluZyBmb3Igd3Jp
dGUgJwotICAgICAgICAgICAgJ2NvbXBsZXRpb24gLi4uJykKLSAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIGZvciBjaGFubmVsX2RhdGEg
aW4gc2VsZi5fbG9naWNhbF9jaGFubmVscy52YWx1ZXMoKToKLSAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLm9uX3dyaXRlcl9k
b25lKCkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCi0gICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIGZhaWxfcGh5c2lj
YWxfY29ubmVjdGlvbihzZWxmLCBjb2RlLCBtZXNzYWdlKToKLSAgICAgICAgIiIiRmFpbCB0aGUg
cGh5c2ljYWwgY29ubmVjdGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY29kZTog
ZHJvcCByZWFzb24gY29kZS4KLSAgICAgICAgICAgIG1lc3NhZ2U6IGRyb3AgbWVzc2FnZS4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdGYWlsaW5nIHRoZSBwaHlz
aWNhbCBjb25uZWN0aW9uLi4uJykKLSAgICAgICAgc2VsZi5fc2VuZF9kcm9wX2NoYW5uZWwoX0NP
TlRST0xfQ0hBTk5FTF9JRCwgY29kZSwgbWVzc2FnZSkKLSAgICAgICAgc2VsZi5fd3JpdGVyLnN0
b3AoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUikKLQotICAgIGRlZiBmYWls
X2xvZ2ljYWxfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkLCBjb2RlLCBtZXNzYWdlKToKLSAgICAg
ICAgIiIiRmFpbCBhIGxvZ2ljYWwgY2hhbm5lbC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAg
ICAgY2hhbm5lbF9pZDogY2hhbm5lbCBpZC4KLSAgICAgICAgICAgIGNvZGU6IGRyb3AgcmVhc29u
IGNvZGUuCi0gICAgICAgICAgICBtZXNzYWdlOiBkcm9wIG1lc3NhZ2UuCi0gICAgICAgICIiIgot
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFpbGluZyBsb2dpY2FsIGNoYW5uZWwgJWQu
Li4nICUgY2hhbm5lbF9pZCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBjaGFubmVsX2lk
IGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRh
ID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXQotICAgICAgICAgICAgICAgICMg
Q2xvc2UgdGhlIGxvZ2ljYWwgY2hhbm5lbC4gbm90aWZ5X3dvcmtlcl9kb25lKCkgd2lsbCBiZQot
ICAgICAgICAgICAgICAgICMgY2FsbGVkIGxhdGVyIGFuZCBpdCB3aWxsIHNlbmQgRHJvcENoYW5u
ZWwuCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLmRyb3BfY29kZSA9IGNvZGUKLSAgICAg
ICAgICAgICAgICBjaGFubmVsX2RhdGEuZHJvcF9tZXNzYWdlID0gbWVzc2FnZQotCi0gICAgICAg
ICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVjdGlvbi5zZXRfcmVhZF9zdGF0ZSgK
LSAgICAgICAgICAgICAgICAgICAgX0xvZ2ljYWxDb25uZWN0aW9uLlNUQVRFX1RFUk1JTkFURUQp
Ci0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qud3Nfc3RyZWFtLnN0b3Bfc2Vu
ZGluZygpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfZHJv
cF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQot
Ci1kZWYgdXNlX211eChyZXF1ZXN0KToKLSAgICByZXR1cm4gaGFzYXR0cihyZXF1ZXN0LCAnbXV4
X3Byb2Nlc3NvcicpIGFuZCAoCi0gICAgICAgIHJlcXVlc3QubXV4X3Byb2Nlc3Nvci5pc19hY3Rp
dmUoKSkKLQotCi1kZWYgc3RhcnQocmVxdWVzdCwgZGlzcGF0Y2hlcik6Ci0gICAgbXV4X2hhbmRs
ZXIgPSBfTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgIG11eF9oYW5kbGVyLnN0
YXJ0KCkKLQotICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKF9JTklUSUFMX05VTUJF
Ul9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9J
TklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICBtdXhfaGFuZGxlci53YWl0X3VudGlsX2Rv
bmUoKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5
d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRh
bG9uZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRjMjk5ZWFmM2RmOWZjM2Ux
NzM4YmNmZTcwNzczMTlmODc2ZTg5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQorKysg
L2Rldi9udWxsCkBAIC0xLDExOTMgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0j
IENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0iIiJTdGFuZGFsb25lIFdlYlNvY2tldCBzZXJ2ZXIuCi0KLVVz
ZSB0aGlzIGZpbGUgdG8gbGF1bmNoIHB5d2Vic29ja2V0IHdpdGhvdXQgQXBhY2hlIEhUVFAgU2Vy
dmVyLgotCi0KLUJBU0lDIFVTQUdFCi09PT09PT09PT09PQotCi1HbyB0byB0aGUgc3JjIGRpcmVj
dG9yeSBhbmQgcnVuCi0KLSAgJCBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkg
Wy1wIDx3c19wb3J0Pl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Wy13IDx3ZWJzb2NrX2hhbmRsZXJzPl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWy1kIDxkb2N1bWVudF9yb290Pl0KLQotPHdzX3BvcnQ+IGlzIHRoZSBwb3J0IG51
bWJlciB0byB1c2UgZm9yIHdzOi8vIGNvbm5lY3Rpb24uCi0KLTxkb2N1bWVudF9yb290PiBpcyB0
aGUgcGF0aCB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgSFRNTCBmaWxlcy4KLQotPHdlYnNvY2tf
aGFuZGxlcnM+IGlzIHRoZSBwYXRoIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiBXZWJTb2NrZXQg
aGFuZGxlcnMuCi1JZiBub3Qgc3BlY2lmaWVkLCA8ZG9jdW1lbnRfcm9vdD4gd2lsbCBiZSB1c2Vk
LiBTZWUgX19pbml0X18ucHkgKG9yCi1ydW4gJCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQpIGZvciBo
b3cgdG8gd3JpdGUgV2ViU29ja2V0IGhhbmRsZXJzLgotCi1Gb3IgbW9yZSBkZXRhaWwgYW5kIG90
aGVyIG9wdGlvbnMsIHJ1bgotCi0gICQgcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25l
LnB5IC0taGVscAotCi1vciBzZWUgX2J1aWxkX29wdGlvbl9wYXJzZXIgbWV0aG9kIGJlbG93Lgot
Ci1Gb3IgdHJvdWJsZSBzaG9vdGluZywgYWRkaW5nICItLWxvZ19sZXZlbCBkZWJ1ZyIgbWlnaHQg
aGVscCB5b3UuCi0KLQotVFJZIERFTU8KLT09PT09PT09Ci0KLUdvIHRvIHRoZSBzcmMgZGlyZWN0
b3J5IGFuZCBydW4gc3RhbmRhbG9uZS5weSB3aXRoIC1kIG9wdGlvbiB0byBzZXQgdGhlCi1kb2N1
bWVudCByb290IHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBleGFtcGxlIEhUTUxzIGFuZCBo
YW5kbGVycyBsaWtlIHRoaXM6Ci0KLSAgJCBjZCBzcmMKLSAgJCBQWVRIT05QQVRIPS4gcHl0aG9u
IG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IC1kIGV4YW1wbGUKLQotdG8gbGF1bmNoIHB5
d2Vic29ja2V0IHdpdGggdGhlIHNhbXBsZSBoYW5kbGVyIGFuZCBodG1sIG9uIHBvcnQgODAuIE9w
ZW4KLWh0dHA6Ly9sb2NhbGhvc3QvY29uc29sZS5odG1sLCBjbGljayB0aGUgY29ubmVjdCBidXR0
b24sIHR5cGUgc29tZXRoaW5nIGludG8KLXRoZSB0ZXh0IGJveCBuZXh0IHRvIHRoZSBzZW5kIGJ1
dHRvbiBhbmQgY2xpY2sgdGhlIHNlbmQgYnV0dG9uLiBJZiBldmVyeXRoaW5nCi1pcyB3b3JraW5n
LCB5b3UnbGwgc2VlIHRoZSBtZXNzYWdlIHlvdSB0eXBlZCBlY2hvZWQgYnkgdGhlIHNlcnZlci4K
LQotCi1VU0lORyBUTFMKLT09PT09PT09PQotCi1UbyBydW4gdGhlIHN0YW5kYWxvbmUgc2VydmVy
IHdpdGggVExTIHN1cHBvcnQsIHJ1biBpdCB3aXRoIC10LCAtaywgYW5kIC1jCi1vcHRpb25zLiBX
aGVuIFRMUyBpcyBlbmFibGVkLCB0aGUgc3RhbmRhbG9uZSBzZXJ2ZXIgYWNjZXB0cyBvbmx5IFRM
UyBjb25uZWN0aW9uLgotCi1Ob3RlIHRoYXQgd2hlbiBzc2wgbW9kdWxlIGlzIHVzZWQgYW5kIHRo
ZSBrZXkvY2VydCBsb2NhdGlvbiBpcyBpbmNvcnJlY3QsCi1UTFMgY29ubmVjdGlvbiBzaWxlbnRs
eSBmYWlscyB3aGlsZSBweU9wZW5TU0wgZmFpbHMgb24gc3RhcnR1cC4KLQotRXhhbXBsZToKLQot
ICAkIFBZVEhPTlBBVEg9LiBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgXAot
ICAgICAgICAtZCBleGFtcGxlIFwKLSAgICAgICAgLXAgMTA0NDMgXAotICAgICAgICAtdCBcCi0g
ICAgICAgIC1jIC4uL3Rlc3QvY2VydC9jZXJ0LnBlbSBcCi0gICAgICAgIC1rIC4uL3Rlc3QvY2Vy
dC9rZXkucGVtIFwKLQotTm90ZSB0aGF0IHdoZW4gcGFzc2luZyBhIHJlbGF0aXZlIHBhdGggdG8g
LWMgYW5kIC1rIG9wdGlvbiwgaXQgd2lsbCBiZSByZXNvbHZlZAotdXNpbmcgdGhlIGRvY3VtZW50
IHJvb3QgZGlyZWN0b3J5IGFzIHRoZSBiYXNlLgotCi0KLVVTSU5HIENMSUVOVCBBVVRIRU5USUNB
VElPTgotPT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVRvIHJ1biB0aGUgc3RhbmRhbG9u
ZSBzZXJ2ZXIgd2l0aCBUTFMgY2xpZW50IGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQsIHJ1biBpdCB3
aXRoCi0tLXRscy1jbGllbnQtYXV0aCBhbmQgLS10bHMtY2xpZW50LWNhIG9wdGlvbnMgaW4gYWRk
aXRpb24gdG8gb25lcyByZXF1aXJlZCBmb3IKLVRMUyBzdXBwb3J0LgotCi1FeGFtcGxlOgotCi0g
ICQgUFlUSE9OUEFUSD0uIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSAtZCBl
eGFtcGxlIC1wIDEwNDQzIC10IFwKLSAgICAgICAgLWMgLi4vdGVzdC9jZXJ0L2NlcnQucGVtIC1r
IC4uL3Rlc3QvY2VydC9rZXkucGVtIFwKLSAgICAgICAgLS10bHMtY2xpZW50LWF1dGggXAotICAg
ICAgICAtLXRscy1jbGllbnQtY2E9Li4vdGVzdC9jZXJ0L2NhY2VydC5wZW0KLQotTm90ZSB0aGF0
IHdoZW4gcGFzc2luZyBhIHJlbGF0aXZlIHBhdGggdG8gLS10bHMtY2xpZW50LWNhIG9wdGlvbiwg
aXQgd2lsbCBiZQotcmVzb2x2ZWQgdXNpbmcgdGhlIGRvY3VtZW50IHJvb3QgZGlyZWN0b3J5IGFz
IHRoZSBiYXNlLgotCi0KLUNPTkZJR1VSQVRJT04gRklMRQotPT09PT09PT09PT09PT09PT09Ci0K
LVlvdSBjYW4gYWxzbyB3cml0ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgdXNlIGl0IGJ5IHNw
ZWNpZnlpbmcgdGhlIHBhdGggdG8KLXRoZSBjb25maWd1cmF0aW9uIGZpbGUgYnkgLS1jb25maWcg
b3B0aW9uLiBQbGVhc2Ugd3JpdGUgYSBjb25maWd1cmF0aW9uIGZpbGUKLWZvbGxvd2luZyB0aGUg
ZG9jdW1lbnRhdGlvbiBvZiB0aGUgUHl0aG9uIENvbmZpZ1BhcnNlciBsaWJyYXJ5LiBOYW1lIG9m
IGVhY2gKLWVudHJ5IG11c3QgYmUgdGhlIGxvbmcgdmVyc2lvbiBhcmd1bWVudCBuYW1lLiBFLmcu
IHRvIHNldCBsb2cgbGV2ZWwgdG8gZGVidWcsCi1hZGQgdGhlIGZvbGxvd2luZyBsaW5lOgotCi1s
b2dfbGV2ZWw9ZGVidWcKLQotRm9yIG9wdGlvbnMgd2hpY2ggZG9lc24ndCB0YWtlIHZhbHVlLCBw
bGVhc2UgYWRkIHNvbWUgZmFrZSB2YWx1ZS4gRS5nLiBmb3IKLS0tdGxzIG9wdGlvbiwgYWRkIHRo
ZSBmb2xsb3dpbmcgbGluZToKLQotdGxzPVRydWUKLQotTm90ZSB0aGF0IHRscyB3aWxsIGJlIGVu
YWJsZWQgZXZlbiBpZiB5b3Ugd3JpdGUgdGxzPUZhbHNlIGFzIHRoZSB2YWx1ZSBwYXJ0IGlzCi1m
YWtlLgotCi1XaGVuIGJvdGggYSBjb21tYW5kIGxpbmUgYXJndW1lbnQgYW5kIGEgY29uZmlndXJh
dGlvbiBmaWxlIGVudHJ5IGFyZSBzZXQgZm9yCi10aGUgc2FtZSBjb25maWd1cmF0aW9uIGl0ZW0s
IHRoZSBjb21tYW5kIGxpbmUgdmFsdWUgd2lsbCBvdmVycmlkZSBvbmUgaW4gdGhlCi1jb25maWd1
cmF0aW9uIGZpbGUuCi0KLQotVEhSRUFESU5HCi09PT09PT09PT0KLQotVGhpcyBzZXJ2ZXIgaXMg
ZGVyaXZlZCBmcm9tIFNvY2tldFNlcnZlci5UaHJlYWRpbmdNaXhJbi4gSGVuY2UgYSB0aHJlYWQg
aXMKLXVzZWQgZm9yIGVhY2ggcmVxdWVzdC4KLQotCi1TRUNVUklUWSBXQVJOSU5HCi09PT09PT09
PT09PT09PT09Ci0KLVRoaXMgdXNlcyBDR0lIVFRQU2VydmVyIGFuZCBDR0lIVFRQU2VydmVyIGlz
IG5vdCBzZWN1cmUuCi1JdCBtYXkgZXhlY3V0ZSBhcmJpdHJhcnkgUHl0aG9uIGNvZGUgb3IgZXh0
ZXJuYWwgcHJvZ3JhbXMuIEl0IHNob3VsZCBub3QgYmUKLXVzZWQgb3V0c2lkZSBhIGZpcmV3YWxs
LgotIiIiCi0KLWltcG9ydCBCYXNlSFRUUFNlcnZlcgotaW1wb3J0IENHSUhUVFBTZXJ2ZXIKLWlt
cG9ydCBTaW1wbGVIVFRQU2VydmVyCi1pbXBvcnQgU29ja2V0U2VydmVyCi1pbXBvcnQgQ29uZmln
UGFyc2VyCi1pbXBvcnQgYmFzZTY0Ci1pbXBvcnQgaHR0cGxpYgotaW1wb3J0IGxvZ2dpbmcKLWlt
cG9ydCBsb2dnaW5nLmhhbmRsZXJzCi1pbXBvcnQgb3B0cGFyc2UKLWltcG9ydCBvcwotaW1wb3J0
IHJlCi1pbXBvcnQgc2VsZWN0Ci1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdGhy
ZWFkaW5nCi1pbXBvcnQgdGltZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9u
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgZGlzcGF0Y2gKLWZyb20gbW9kX3B5d2Vic29j
a2V0IGltcG9ydCBoYW5kc2hha2UKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBodHRwX2hl
YWRlcl91dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbWVtb3JpemluZ2ZpbGUKLWZy
b20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldC54aHJf
YmVuY2htYXJrX2hhbmRsZXIgaW1wb3J0IFhIUkJlbmNobWFya0hhbmRsZXIKLQotCi1fREVGQVVM
VF9MT0dfTUFYX0JZVEVTID0gMTAyNCAqIDI1NgotX0RFRkFVTFRfTE9HX0JBQ0tVUF9DT1VOVCA9
IDUKLQotX0RFRkFVTFRfUkVRVUVTVF9RVUVVRV9TSVpFID0gMTI4Ci0KLSMgMTAyNCBpcyBwcmFj
dGljYWxseSBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiBXZWJTb2NrZXQgaGFuZHNoYWtlIGxpbmVz
LgotX01BWF9NRU1PUklaRURfTElORVMgPSAxMDI0Ci0KLSMgQ29uc3RhbnRzIGZvciB0aGUgLS10
bHNfbW9kdWxlIGZsYWcuCi1fVExTX0JZX1NUQU5EQVJEX01PRFVMRSA9ICdzc2wnCi1fVExTX0JZ
X1BZT1BFTlNTTCA9ICdweW9wZW5zc2wnCi0KLQotY2xhc3MgX1N0YW5kYWxvbmVDb25uZWN0aW9u
KG9iamVjdCk6Ci0gICAgIiIiTWltaWMgbW9kX3B5dGhvbiBtcF9jb25uLiIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIHJlcXVlc3RfaGFuZGxlcik6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBh
biBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVy
OiBBIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAg
ICAgICBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIgPSByZXF1ZXN0X2hhbmRsZXIKLQotICAgIGRlZiBn
ZXRfbG9jYWxfYWRkcihzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4u
bG9jYWxfYWRkci4iIiIKLQotICAgICAgICByZXR1cm4gKHNlbGYuX3JlcXVlc3RfaGFuZGxlci5z
ZXJ2ZXIuc2VydmVyX25hbWUsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdF9oYW5kbGVy
LnNlcnZlci5zZXJ2ZXJfcG9ydCkKLSAgICBsb2NhbF9hZGRyID0gcHJvcGVydHkoZ2V0X2xvY2Fs
X2FkZHIpCi0KLSAgICBkZWYgZ2V0X3JlbW90ZV9hZGRyKHNlbGYpOgotICAgICAgICAiIiJHZXR0
ZXIgdG8gbWltaWMgbXBfY29ubi5yZW1vdGVfYWRkci4KLQotICAgICAgICBTZXR0aW5nIHRoZSBw
cm9wZXJ0eSBpbiBfX2luaXRfXyB3b24ndCB3b3JrIGJlY2F1c2UgdGhlIHJlcXVlc3QKLSAgICAg
ICAgaGFuZGxlciBpcyBub3QgaW5pdGlhbGl6ZWQgeWV0IHRoZXJlLiIiIgotCi0gICAgICAgIHJl
dHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIuY2xpZW50X2FkZHJlc3MKLSAgICByZW1vdGVfYWRk
ciA9IHByb3BlcnR5KGdldF9yZW1vdGVfYWRkcikKLQotICAgIGRlZiB3cml0ZShzZWxmLCBkYXRh
KToKLSAgICAgICAgIiIiTWltaWMgbXBfY29ubi53cml0ZSgpLiIiIgotCi0gICAgICAgIHJldHVy
biBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIud2ZpbGUud3JpdGUoZGF0YSkKLQotICAgIGRlZiByZWFk
KHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIk1pbWljIG1wX2Nvbm4ucmVhZCgpLiIiIgotCi0g
ICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIucmZpbGUucmVhZChsZW5ndGgpCi0K
LSAgICBkZWYgZ2V0X21lbW9yaXplZF9saW5lcyhzZWxmKToKLSAgICAgICAgIiIiR2V0IG1lbW9y
aXplZCBsaW5lcy4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnJm
aWxlLmdldF9tZW1vcml6ZWRfbGluZXMoKQotCi0KLWNsYXNzIF9TdGFuZGFsb25lUmVxdWVzdChv
YmplY3QpOgotICAgICIiIk1pbWljIG1vZF9weXRob24gcmVxdWVzdC4iIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCByZXF1ZXN0X2hhbmRsZXIsIHVzZV90bHMpOgotICAgICAgICAiIiJDb25z
dHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Rf
aGFuZGxlcjogQSBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0K
LSAgICAgICAgc2VsZi5fcmVxdWVzdF9oYW5kbGVyID0gcmVxdWVzdF9oYW5kbGVyCi0gICAgICAg
IHNlbGYuY29ubmVjdGlvbiA9IF9TdGFuZGFsb25lQ29ubmVjdGlvbihyZXF1ZXN0X2hhbmRsZXIp
Ci0gICAgICAgIHNlbGYuX3VzZV90bHMgPSB1c2VfdGxzCi0gICAgICAgIHNlbGYuaGVhZGVyc19p
biA9IHJlcXVlc3RfaGFuZGxlci5oZWFkZXJzCi0KLSAgICBkZWYgZ2V0X3VyaShzZWxmKToKLSAg
ICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIHJlcXVlc3QudXJpLgotCi0gICAgICAgIFRoaXMgbWV0
aG9kIHJldHVybnMgdGhlIHJhdyBkYXRhIGF0IHRoZSBSZXF1ZXN0LVVSSSBwYXJ0IG9mIHRoZQot
ICAgICAgICBSZXF1ZXN0LUxpbmUsIHdoaWxlIHRoZSB1cmkgbWV0aG9kIG9uIHRoZSByZXF1ZXN0
IG9iamVjdCBvZiBtb2RfcHl0aG9uCi0gICAgICAgIHJldHVybnMgdGhlIHBhdGggcG9ydGlvbiBh
ZnRlciBwYXJzaW5nIHRoZSByYXcgZGF0YS4gVGhpcyBiZWhhdmlvciBpcwotICAgICAgICBrZXB0
IGZvciBjb21wYXRpYmlsaXR5LgotICAgICAgICAiIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5f
cmVxdWVzdF9oYW5kbGVyLnBhdGgKLSAgICB1cmkgPSBwcm9wZXJ0eShnZXRfdXJpKQotCi0gICAg
ZGVmIGdldF91bnBhcnNlZF91cmkoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyBy
ZXF1ZXN0LnVucGFyc2VkX3VyaS4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9o
YW5kbGVyLnBhdGgKLSAgICB1bnBhcnNlZF91cmkgPSBwcm9wZXJ0eShnZXRfdW5wYXJzZWRfdXJp
KQotCi0gICAgZGVmIGdldF9tZXRob2Qoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1p
YyByZXF1ZXN0Lm1ldGhvZC4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5k
bGVyLmNvbW1hbmQKLSAgICBtZXRob2QgPSBwcm9wZXJ0eShnZXRfbWV0aG9kKQotCi0gICAgZGVm
IGdldF9wcm90b2NvbChzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIHJlcXVlc3Qu
cHJvdG9jb2wuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5yZXF1
ZXN0X3ZlcnNpb24KLSAgICBwcm90b2NvbCA9IHByb3BlcnR5KGdldF9wcm90b2NvbCkKLQotICAg
IGRlZiBpc19odHRwcyhzZWxmKToKLSAgICAgICAgIiIiTWltaWMgcmVxdWVzdC5pc19odHRwcygp
LiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl91c2VfdGxzCi0KLQotZGVmIF9pbXBvcnRfc3Ns
KCk6Ci0gICAgZ2xvYmFsIHNzbAotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IHNzbAotICAgICAg
ICByZXR1cm4gVHJ1ZQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcmV0dXJuIEZh
bHNlCi0KLQotZGVmIF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgZ2xvYmFsIE9wZW5TU0wKLSAg
ICB0cnk6Ci0gICAgICAgIGltcG9ydCBPcGVuU1NMLlNTTAotICAgICAgICByZXR1cm4gVHJ1ZQot
ICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLQotY2xhc3Mg
X1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uKG9iamVjdCk6Ci0gICAgIiIiQSB3cmFwcGVyIGNsYXNz
IGZvciBPcGVuU1NMLlNTTC5Db25uZWN0aW9uIHRvCi0gICAgLSBwcm92aWRlIG1ha2VmaWxlIG1l
dGhvZCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjbGFzcwotICAgIC0gdHdlYWsgc2h1
dGRvd24gbWV0aG9kIHNpbmNlIE9wZW5TU0wuU1NMLkNvbm5lY3Rpb24uc2h1dGRvd24gZG9lc24n
dAotICAgICAgYWNjZXB0IHRoZSAiaG93IiBhcmd1bWVudC4KLSAgICAtIGNvbnZlcnQgU3lzQ2Fs
bEVycm9yIGV4Y2VwdGlvbnMgdGhhdCBpdHMgcmVjdiBtZXRob2QgbWF5IHJhaXNlIGludG8gYQot
ICAgICAgcmV0dXJuIHZhbHVlIG9mICcnLCBtZWFuaW5nIEVPRi4gV2UgY2Fubm90IG92ZXJ3cml0
ZSB0aGUgcmVjdiBtZXRob2Qgb24KLSAgICAgIHNlbGYuX2Nvbm5lY3Rpb24gc2luY2UgaXQncyBp
bW11dGFibGUuCi0gICAgIiIiCi0KLSAgICBfT1ZFUlJJRERFTl9BVFRSSUJVVEVTID0gWydfY29u
bmVjdGlvbicsICdtYWtlZmlsZScsICdzaHV0ZG93bicsICdyZWN2J10KLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBjb25uZWN0aW9uKToKLSAgICAgICAgc2VsZi5fY29ubmVjdGlvbiA9IGNvbm5l
Y3Rpb24KLQotICAgIGRlZiBfX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpOgotICAgICAgICBp
ZiBuYW1lIGluIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbi5fT1ZFUlJJRERFTl9BVFRSSUJVVEVT
OgotICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUp
Ci0gICAgICAgIHJldHVybiBzZWxmLl9jb25uZWN0aW9uLl9fZ2V0YXR0cmlidXRlX18obmFtZSkK
LQotICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSk6Ci0gICAgICAgIGlmIG5h
bWUgaW4gX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uLl9PVkVSUklEREVOX0FUVFJJQlVURVM6Ci0g
ICAgICAgICAgICByZXR1cm4gb2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKQot
ICAgICAgICByZXR1cm4gc2VsZi5fY29ubmVjdGlvbi5fX3NldGF0dHJfXyhuYW1lLCB2YWx1ZSkK
LQotICAgIGRlZiBtYWtlZmlsZShzZWxmLCBtb2RlPSdyJywgYnVmc2l6ZT0tMSk6Ci0gICAgICAg
IHJldHVybiBzb2NrZXQuX2ZpbGVvYmplY3Qoc2VsZiwgbW9kZSwgYnVmc2l6ZSkKLQotICAgIGRl
ZiBzaHV0ZG93bihzZWxmLCB1bnVzZWRfaG93KToKLSAgICAgICAgc2VsZi5fY29ubmVjdGlvbi5z
aHV0ZG93bigpCi0KLSAgICBkZWYgcmVjdihzZWxmLCBidWZzaXplLCBmbGFncz0wKToKLSAgICAg
ICAgaWYgZmxhZ3MgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ05vbi16ZXJv
IGZsYWdzIG5vdCBhbGxvd2VkJykKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4g
c2VsZi5fY29ubmVjdGlvbi5yZWN2KGJ1ZnNpemUpCi0gICAgICAgIGV4Y2VwdCBPcGVuU1NMLlNT
TC5TeXNDYWxsRXJyb3IsIChlcnIsIG1lc3NhZ2UpOgotICAgICAgICAgICAgaWYgZXJyID09IC0x
OgotICAgICAgICAgICAgICAgICMgU3VwcHJlc3MgInVuZXhwZWN0ZWQgRU9GIiBleGNlcHRpb24u
IFNlZSB0aGUgT3BlblNTTCBkb2N1bWVudAotICAgICAgICAgICAgICAgICMgZm9yIFNTTF9nZXRf
ZXJyb3IuCi0gICAgICAgICAgICAgICAgcmV0dXJuICcnCi0gICAgICAgICAgICByYWlzZQotCi0K
LWRlZiBfYWxpYXNfaGFuZGxlcnMoZGlzcGF0Y2hlciwgd2Vic29ja19oYW5kbGVyc19tYXBfZmls
ZSk6Ci0gICAgIiIiU2V0IGFsaWFzZXMgc3BlY2lmaWVkIGluIHdlYnNvY2tfaGFuZGxlcl9tYXBf
ZmlsZSBpbiBkaXNwYXRjaGVyLgotCi0gICAgQXJnczoKLSAgICAgICAgZGlzcGF0Y2hlcjogZGlz
cGF0Y2guRGlzcGF0Y2hlciBpbnN0YW5jZQotICAgICAgICB3ZWJzb2NrX2hhbmRsZXJfbWFwX2Zp
bGU6IGFsaWFzIG1hcCBmaWxlCi0gICAgIiIiCi0KLSAgICBmcCA9IG9wZW4od2Vic29ja19oYW5k
bGVyc19tYXBfZmlsZSkKLSAgICB0cnk6Ci0gICAgICAgIGZvciBsaW5lIGluIGZwOgotICAgICAg
ICAgICAgaWYgbGluZVswXSA9PSAnIycgb3IgbGluZS5pc3NwYWNlKCk6Ci0gICAgICAgICAgICAg
ICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCgnKFxTKylccysoXFMrKScsIGxp
bmUpCi0gICAgICAgICAgICBpZiBub3QgbToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm5p
bmcoJ1dyb25nIGZvcm1hdCBpbiBtYXAgZmlsZTonICsgbGluZSkKLSAgICAgICAgICAgICAgICBj
b250aW51ZQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIuYWRk
X3Jlc291cmNlX3BhdGhfYWxpYXMoCi0gICAgICAgICAgICAgICAgICAgIG0uZ3JvdXAoMSksIG0u
Z3JvdXAoMikpCi0gICAgICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24s
IGU6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5lcnJvcihzdHIoZSkpCi0gICAgZmluYWxseToK
LSAgICAgICAgZnAuY2xvc2UoKQotCi0KLWNsYXNzIFdlYlNvY2tldFNlcnZlcihTb2NrZXRTZXJ2
ZXIuVGhyZWFkaW5nTWl4SW4sIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIpOgotICAgICIiIkhU
VFBTZXJ2ZXIgc3BlY2lhbGl6ZWQgZm9yIFdlYlNvY2tldC4iIiIKLQotICAgICMgT3ZlcnJpZGVz
IFNvY2tldFNlcnZlci5UaHJlYWRpbmdNaXhJbi5kYWVtb25fdGhyZWFkcwotICAgIGRhZW1vbl90
aHJlYWRzID0gVHJ1ZQotICAgICMgT3ZlcnJpZGVzIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIu
YWxsb3dfcmV1c2VfYWRkcmVzcwotICAgIGFsbG93X3JldXNlX2FkZHJlc3MgPSBUcnVlCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucyk6Ci0gICAgICAgICIiIk92ZXJyaWRlIFNvY2tl
dFNlcnZlci5UQ1BTZXJ2ZXIuX19pbml0X18gdG8gc2V0IFNTTCBlbmFibGVkCi0gICAgICAgIHNv
Y2tldCBvYmplY3QgdG8gc2VsZi5zb2NrZXQgYmVmb3JlIHNlcnZlcl9iaW5kIGFuZCBzZXJ2ZXJf
YWN0aXZhdGUsCi0gICAgICAgIGlmIG5lY2Vzc2FyeS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
IyBTaGFyZSBhIERpc3BhdGNoZXIgYW1vbmcgcmVxdWVzdCBoYW5kbGVycyB0byBzYXZlIHRpbWUg
Zm9yCi0gICAgICAgICMgaW5zdGFudGlhdGlvbi4gIERpc3BhdGNoZXIgY2FuIGJlIHNoYXJlZCBi
ZWNhdXNlIGl0IGlzIHRocmVhZC1zYWZlLgotICAgICAgICBvcHRpb25zLmRpc3BhdGNoZXIgPSBk
aXNwYXRjaC5EaXNwYXRjaGVyKAotICAgICAgICAgICAgb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJz
LAotICAgICAgICAgICAgb3B0aW9ucy5zY2FuX2RpciwKLSAgICAgICAgICAgIG9wdGlvbnMuYWxs
b3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcikKLSAgICAgICAgaWYgb3B0aW9ucy53ZWJzb2Nr
X2hhbmRsZXJzX21hcF9maWxlOgotICAgICAgICAgICAgX2FsaWFzX2hhbmRsZXJzKG9wdGlvbnMu
ZGlzcGF0Y2hlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLndlYnNvY2tf
aGFuZGxlcnNfbWFwX2ZpbGUpCi0gICAgICAgIHdhcm5pbmdzID0gb3B0aW9ucy5kaXNwYXRjaGVy
LnNvdXJjZV93YXJuaW5ncygpCi0gICAgICAgIGlmIHdhcm5pbmdzOgotICAgICAgICAgICAgZm9y
IHdhcm5pbmcgaW4gd2FybmluZ3M6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCdX
YXJuaW5nIGluIHNvdXJjZSBsb2FkaW5nOiAlcycgJSB3YXJuaW5nKQotCi0gICAgICAgIHNlbGYu
X2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYucmVx
dWVzdF9xdWV1ZV9zaXplID0gb3B0aW9ucy5yZXF1ZXN0X3F1ZXVlX3NpemUKLSAgICAgICAgc2Vs
Zi5fX3dzX2lzX3NodXRfZG93biA9IHRocmVhZGluZy5FdmVudCgpCi0gICAgICAgIHNlbGYuX193
c19zZXJ2aW5nID0gRmFsc2UKLQotICAgICAgICBTb2NrZXRTZXJ2ZXIuQmFzZVNlcnZlci5fX2lu
aXRfXygKLSAgICAgICAgICAgIHNlbGYsIChvcHRpb25zLnNlcnZlcl9ob3N0LCBvcHRpb25zLnBv
cnQpLCBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlcikKLQotICAgICAgICAjIEV4cG9zZSB0aGUgb3B0
aW9ucyBvYmplY3QgdG8gYWxsb3cgaGFuZGxlciBvYmplY3RzIGFjY2VzcyBpdC4gV2UgbmFtZQot
ICAgICAgICAjIGl0IHdpdGggd2Vic29ja2V0XyBwcmVmaXggdG8gYXZvaWQgY29uZmxpY3QuCi0g
ICAgICAgIHNlbGYud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAgICAg
IHNlbGYuX2NyZWF0ZV9zb2NrZXRzKCkKLSAgICAgICAgc2VsZi5zZXJ2ZXJfYmluZCgpCi0gICAg
ICAgIHNlbGYuc2VydmVyX2FjdGl2YXRlKCkKLQotICAgIGRlZiBfY3JlYXRlX3NvY2tldHMoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuc2VydmVyX25hbWUsIHNlbGYuc2VydmVyX3BvcnQgPSBzZWxmLnNl
cnZlcl9hZGRyZXNzCi0gICAgICAgIHNlbGYuX3NvY2tldHMgPSBbXQotICAgICAgICBpZiBub3Qg
c2VsZi5zZXJ2ZXJfbmFtZToKLSAgICAgICAgICAgICMgT24gcGxhdGZvcm1zIHRoYXQgZG9lc24n
dCBzdXBwb3J0IElQdjYsIHRoZSBmaXJzdCBiaW5kIGZhaWxzLgotICAgICAgICAgICAgIyBPbiBw
bGF0Zm9ybXMgdGhhdCBzdXBwb3J0cyBJUHY2Ci0gICAgICAgICAgICAjIC0gSWYgaXQgYmluZHMg
Ym90aCBJUHY0IGFuZCBJUHY2IG9uIGNhbGwgd2l0aCBBRl9JTkVUNiwgdGhlCi0gICAgICAgICAg
ICAjICAgZmlyc3QgYmluZCBzdWNjZWVkcyBhbmQgdGhlIHNlY29uZCBmYWlscyAod2UnbGwgc2Vl
ICdBZGRyZXNzCi0gICAgICAgICAgICAjICAgYWxyZWFkeSBpbiB1c2UnIGVycm9yKS4KLSAgICAg
ICAgICAgICMgLSBJZiBpdCBiaW5kcyBvbmx5IElQdjYgb24gY2FsbCB3aXRoIEFGX0lORVQ2LCBi
b3RoIGNhbGwgYXJlCi0gICAgICAgICAgICAjICAgZXhwZWN0ZWQgdG8gc3VjY2VlZCB0byBsaXN0
ZW4gYm90aCBwcm90b2NvbC4KLSAgICAgICAgICAgIGFkZHJpbmZvX2FycmF5ID0gWwotICAgICAg
ICAgICAgICAgIChzb2NrZXQuQUZfSU5FVDYsIHNvY2tldC5TT0NLX1NUUkVBTSwgJycsICcnLCAn
JyksCi0gICAgICAgICAgICAgICAgKHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0s
ICcnLCAnJywgJycpXQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYWRkcmluZm9fYXJyYXkg
PSBzb2NrZXQuZ2V0YWRkcmluZm8oc2VsZi5zZXJ2ZXJfbmFtZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX3BvcnQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuQUZfVU5TUEVD
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0
LlNPQ0tfU1RSRUFNLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc29ja2V0LklQUFJPVE9fVENQKQotICAgICAgICBmb3IgYWRkcmluZm8gaW4gYWRkcmlu
Zm9fYXJyYXk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQ3JlYXRlIHNvY2tldCBv
bjogJXInLCBhZGRyaW5mbykKLSAgICAgICAgICAgIGZhbWlseSwgc29ja3R5cGUsIHByb3RvLCBj
YW5vbm5hbWUsIHNvY2thZGRyID0gYWRkcmluZm8KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICBzb2NrZXRfID0gc29ja2V0LnNvY2tldChmYW1pbHksIHNvY2t0eXBlKQotICAgICAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
aW5mbygnU2tpcCBieSBmYWlsdXJlOiAlcicsIGUpCi0gICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgICAgIHNlcnZlcl9vcHRpb25zID0gc2VsZi53ZWJzb2NrZXRfc2VydmVyX29wdGlv
bnMKLSAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnVzZV90bHM6Ci0gICAgICAgICAgICAg
ICAgIyBGb3IgdGhlIGNhc2Ugb2YgX0hBU19PUEVOX1NTTCwgd2UgZG8gd3JhcHBlciBzZXR1cCBh
ZnRlcgotICAgICAgICAgICAgICAgICMgYWNjZXB0LgotICAgICAgICAgICAgICAgIGlmIHNlcnZl
cl9vcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEU6Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfYXV0aDoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfY2VydF9vcHRpb25h
bDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfY2VydF8gPSBzc2wuQ0VSVF9P
UFRJT05BTAotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGllbnRfY2VydF8gPSBzc2wuQ0VSVF9SRVFVSVJFRAotICAgICAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X2NlcnRfID0gc3Ns
LkNFUlRfTk9ORQotICAgICAgICAgICAgICAgICAgICBzb2NrZXRfID0gc3NsLndyYXBfc29ja2V0
KHNvY2tldF8sCi0gICAgICAgICAgICAgICAgICAgICAgICBrZXlmaWxlPXNlcnZlcl9vcHRpb25z
LnByaXZhdGVfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgY2VydGZpbGU9c2VydmVyX29w
dGlvbnMuY2VydGlmaWNhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBzc2xfdmVyc2lvbj1z
c2wuUFJPVE9DT0xfU1NMdjIzLAotICAgICAgICAgICAgICAgICAgICAgICAgY2FfY2VydHM9c2Vy
dmVyX29wdGlvbnMudGxzX2NsaWVudF9jYSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRf
cmVxcz1jbGllbnRfY2VydF8sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb19oYW5kc2hha2Vf
b25fY29ubmVjdD1GYWxzZSkKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldHMuYXBwZW5kKChzb2Nr
ZXRfLCBhZGRyaW5mbykpCi0KLSAgICBkZWYgc2VydmVyX2JpbmQoc2VsZik6Ci0gICAgICAgICIi
Ik92ZXJyaWRlIFNvY2tldFNlcnZlci5UQ1BTZXJ2ZXIuc2VydmVyX2JpbmQgdG8gZW5hYmxlIG11
bHRpcGxlCi0gICAgICAgIHNvY2tldHMgYmluZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZmFp
bGVkX3NvY2tldHMgPSBbXQotCi0gICAgICAgIGZvciBzb2NrZXRpbmZvIGluIHNlbGYuX3NvY2tl
dHM6Ci0gICAgICAgICAgICBzb2NrZXRfLCBhZGRyaW5mbyA9IHNvY2tldGluZm8KLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdCaW5kIG9uOiAlcicsIGFkZHJpbmZvKQotICAgICAgICAg
ICAgaWYgc2VsZi5hbGxvd19yZXVzZV9hZGRyZXNzOgotICAgICAgICAgICAgICAgIHNvY2tldF8u
c2V0c29ja29wdChzb2NrZXQuU09MX1NPQ0tFVCwgc29ja2V0LlNPX1JFVVNFQUREUiwgMSkKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzb2NrZXRfLmJpbmQoc2VsZi5zZXJ2ZXJf
YWRkcmVzcykKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NraXAgYnkgZmFpbHVyZTogJXInLCBlKQotICAgICAgICAg
ICAgICAgIHNvY2tldF8uY2xvc2UoKQotICAgICAgICAgICAgICAgIGZhaWxlZF9zb2NrZXRzLmFw
cGVuZChzb2NrZXRpbmZvKQotICAgICAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfYWRkcmVzc1sxXSA9
PSAwOgotICAgICAgICAgICAgICAgICMgVGhlIG9wZXJhdGluZyBzeXN0ZW0gYXNzaWducyB0aGUg
YWN0dWFsIHBvcnQgbnVtYmVyIGZvciBwb3J0Ci0gICAgICAgICAgICAgICAgIyBudW1iZXIgMC4g
VGhpcyBjYXNlLCB0aGUgc2Vjb25kIGFuZCBsYXRlciBzb2NrZXRzIHNob3VsZCB1c2UKLSAgICAg
ICAgICAgICAgICAjIHRoZSBzYW1lIHBvcnQgbnVtYmVyLiBBbHNvIHNlbGYuc2VydmVyX3BvcnQg
aXMgcmV3cml0dGVuCi0gICAgICAgICAgICAgICAgIyBiZWNhdXNlIGl0IGlzIGV4cG9ydGVkLCBh
bmQgd2lsbCBiZSB1c2VkIGJ5IGV4dGVybmFsIGNvZGUuCi0gICAgICAgICAgICAgICAgc2VsZi5z
ZXJ2ZXJfYWRkcmVzcyA9ICgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfbmFtZSwg
c29ja2V0Xy5nZXRzb2NrbmFtZSgpWzFdKQotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX3Bv
cnQgPSBzZWxmLnNlcnZlcl9hZGRyZXNzWzFdCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oJ1BvcnQgJXIgaXMgYXNzaWduZWQnLCBzZWxmLnNlcnZlcl9wb3J0KQotCi0gICAgICAg
IGZvciBzb2NrZXRpbmZvIGluIGZhaWxlZF9zb2NrZXRzOgotICAgICAgICAgICAgc2VsZi5fc29j
a2V0cy5yZW1vdmUoc29ja2V0aW5mbykKLQotICAgIGRlZiBzZXJ2ZXJfYWN0aXZhdGUoc2VsZik6
Ci0gICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNlcnZlci5UQ1BTZXJ2ZXIuc2VydmVyX2FjdGl2
YXRlIHRvIGVuYWJsZSBtdWx0aXBsZQotICAgICAgICBzb2NrZXRzIGxpc3Rlbi4KLSAgICAgICAg
IiIiCi0KLSAgICAgICAgZmFpbGVkX3NvY2tldHMgPSBbXQotCi0gICAgICAgIGZvciBzb2NrZXRp
bmZvIGluIHNlbGYuX3NvY2tldHM6Ci0gICAgICAgICAgICBzb2NrZXRfLCBhZGRyaW5mbyA9IHNv
Y2tldGluZm8KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdMaXN0ZW4gb246ICVyJywg
YWRkcmluZm8pCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc29ja2V0Xy5saXN0
ZW4oc2VsZi5yZXF1ZXN0X3F1ZXVlX3NpemUpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9u
LCBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTa2lwIGJ5IGZhaWx1cmU6
ICVyJywgZSkKLSAgICAgICAgICAgICAgICBzb2NrZXRfLmNsb3NlKCkKLSAgICAgICAgICAgICAg
ICBmYWlsZWRfc29ja2V0cy5hcHBlbmQoc29ja2V0aW5mbykKLQotICAgICAgICBmb3Igc29ja2V0
aW5mbyBpbiBmYWlsZWRfc29ja2V0czoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldHMucmVtb3Zl
KHNvY2tldGluZm8pCi0KLSAgICAgICAgaWYgbGVuKHNlbGYuX3NvY2tldHMpID09IDA6Ci0gICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuY3JpdGljYWwoCi0gICAgICAgICAgICAgICAgJ05vIHNvY2tl
dHMgYWN0aXZhdGVkLiBVc2UgaW5mbyBsb2cgbGV2ZWwgdG8gc2VlIHRoZSByZWFzb24uJykKLQot
ICAgIGRlZiBzZXJ2ZXJfY2xvc2Uoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNl
cnZlci5UQ1BTZXJ2ZXIuc2VydmVyX2Nsb3NlIHRvIGVuYWJsZSBtdWx0aXBsZQotICAgICAgICBz
b2NrZXRzIGNsb3NlLgotICAgICAgICAiIiIKLQotICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBz
ZWxmLl9zb2NrZXRzOgotICAgICAgICAgICAgc29ja2V0XywgYWRkcmluZm8gPSBzb2NrZXRpbmZv
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQ2xvc2Ugb246ICVyJywgYWRkcmluZm8p
Ci0gICAgICAgICAgICBzb2NrZXRfLmNsb3NlKCkKLQotICAgIGRlZiBmaWxlbm8oc2VsZik6Ci0g
ICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNlcnZlci5UQ1BTZXJ2ZXIuZmlsZW5vLiIiIgotCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5jcml0aWNhbCgnTm90IHN1cHBvcnRlZDogZmlsZW5vJykKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX3NvY2tldHNbMF1bMF0uZmlsZW5vKCkKLQotICAgIGRlZiBoYW5k
bGVfZXJyb3Ioc2VsZiwgcmVxdWVzdCwgY2xpZW50X2FkZHJlc3MpOgotICAgICAgICAiIiJPdmVy
cmlkZSBTb2NrZXRTZXJ2ZXIuaGFuZGxlX2Vycm9yLiIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5lcnJvcigKLSAgICAgICAgICAgICdFeGNlcHRpb24gaW4gcHJvY2Vzc2luZyByZXF1ZXN0IGZy
b206ICVyXG4lcycsCi0gICAgICAgICAgICBjbGllbnRfYWRkcmVzcywKLSAgICAgICAgICAgIHV0
aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAgICAgICMgTm90ZTogY2xpZW50X2FkZHJlc3MgaXMg
YSB0dXBsZS4KLQotICAgIGRlZiBnZXRfcmVxdWVzdChzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJp
ZGUgVENQU2VydmVyLmdldF9yZXF1ZXN0IHRvIHdyYXAgT3BlblNTTC5TU0wuQ29ubmVjdGlvbgot
ICAgICAgICBvYmplY3Qgd2l0aCBfU3RhbmRhbG9uZVNTTENvbm5lY3Rpb24gdG8gcHJvdmlkZSBt
YWtlZmlsZSBtZXRob2QuIFdlCi0gICAgICAgIGNhbm5vdCBzdWJzdGl0dXRlIE9wZW5TU0wuU1NM
LkNvbm5lY3Rpb24ubWFrZWZpbGUgc2luY2UgaXQncyByZWFkb25seQotICAgICAgICBhdHRyaWJ1
dGUuCi0gICAgICAgICIiIgotCi0gICAgICAgIGFjY2VwdGVkX3NvY2tldCwgY2xpZW50X2FkZHJl
c3MgPSBzZWxmLnNvY2tldC5hY2NlcHQoKQotCi0gICAgICAgIHNlcnZlcl9vcHRpb25zID0gc2Vs
Zi53ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMKLSAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudXNl
X3RsczoKLSAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19C
WV9TVEFOREFSRF9NT0RVTEU6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
ICAgICBhY2NlcHRlZF9zb2NrZXQuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgICAgICAgICBleGNl
cHQgc3NsLlNTTEVycm9yLCBlOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJyVyJywgZSkKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UKLQotICAgICAgICAgICAgICAg
ICMgUHJpbnQgY2lwaGVyIGluIHVzZS4gSGFuZHNoYWtlIGlzIGRvbmUgb24gYWNjZXB0LgotICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2lwaGVyOiAlcycsIGFjY2VwdGVkX3Nv
Y2tldC5jaXBoZXIoKSkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NsaWVu
dCBjZXJ0OiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdGVk
X3NvY2tldC5nZXRwZWVyY2VydCgpKQotICAgICAgICAgICAgZWxpZiBzZXJ2ZXJfb3B0aW9ucy50
bHNfbW9kdWxlID09IF9UTFNfQllfUFlPUEVOU1NMOgotICAgICAgICAgICAgICAgICMgV2UgY2Fu
bm90IHByaW50IHRoZSBjaXBoZXIgaW4gdXNlLiBweU9wZW5TU0wgZG9lc24ndCBwcm92aWRlCi0g
ICAgICAgICAgICAgICAgIyBhbnkgbWV0aG9kIHRvIGZldGNoIHRoYXQuCi0KLSAgICAgICAgICAg
ICAgICBjdHggPSBPcGVuU1NMLlNTTC5Db250ZXh0KE9wZW5TU0wuU1NMLlNTTHYyM19NRVRIT0Qp
Ci0gICAgICAgICAgICAgICAgY3R4LnVzZV9wcml2YXRla2V5X2ZpbGUoc2VydmVyX29wdGlvbnMu
cHJpdmF0ZV9rZXkpCi0gICAgICAgICAgICAgICAgY3R4LnVzZV9jZXJ0aWZpY2F0ZV9maWxlKHNl
cnZlcl9vcHRpb25zLmNlcnRpZmljYXRlKQotCi0gICAgICAgICAgICAgICAgZGVmIGRlZmF1bHRf
Y2FsbGJhY2soY29ubiwgY2VydCwgZXJybnVtLCBlcnJkZXB0aCwgb2spOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gb2sgPT0gMQotCi0gICAgICAgICAgICAgICAgIyBTZWUgdGhlIE9wZW5T
U0wgZG9jdW1lbnQgZm9yIFNTTF9DVFhfc2V0X3ZlcmlmeS4KLSAgICAgICAgICAgICAgICBpZiBz
ZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2F1dGg6Ci0gICAgICAgICAgICAgICAgICAgIHZlcmlm
eV9tb2RlID0gT3BlblNTTC5TU0wuVkVSSUZZX1BFRVIKLSAgICAgICAgICAgICAgICAgICAgaWYg
bm90IHNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfY2VydF9vcHRpb25hbDoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHZlcmlmeV9tb2RlIHw9IE9wZW5TU0wuU1NMLlZFUklGWV9GQUlMX0lGX05P
X1BFRVJfQ0VSVAotICAgICAgICAgICAgICAgICAgICBjdHguc2V0X3ZlcmlmeSh2ZXJpZnlfbW9k
ZSwgZGVmYXVsdF9jYWxsYmFjaykKLSAgICAgICAgICAgICAgICAgICAgY3R4LmxvYWRfdmVyaWZ5
X2xvY2F0aW9ucyhzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2NhLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUpCi0gICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgY3R4LnNldF92ZXJpZnkoT3BlblNTTC5TU0wuVkVSSUZZ
X05PTkUsIGRlZmF1bHRfY2FsbGJhY2spCi0KLSAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2Nr
ZXQgPSBPcGVuU1NMLlNTTC5Db25uZWN0aW9uKGN0eCwgYWNjZXB0ZWRfc29ja2V0KQotICAgICAg
ICAgICAgICAgIGFjY2VwdGVkX3NvY2tldC5zZXRfYWNjZXB0X3N0YXRlKCkKLQotICAgICAgICAg
ICAgICAgICMgQ29udmVydCBTU0wgcmVsYXRlZCBlcnJvciBpbnRvIHNvY2tldC5lcnJvciBzbyB0
aGF0Ci0gICAgICAgICAgICAgICAgIyBTb2NrZXRTZXJ2ZXIgaWdub3JlcyB0aGVtIGFuZCBrZWVw
cyBydW5uaW5nLgotICAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICAjIFRPRE8odHlv
c2hpbm8pOiBDb252ZXJ0IGFsbCBraW5kcyBvZiBlcnJvcnMuCi0gICAgICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuZG9faGFuZHNoYWtlKCkKLSAg
ICAgICAgICAgICAgICBleGNlcHQgT3BlblNTTC5TU0wuRXJyb3IsIGU6Ci0gICAgICAgICAgICAg
ICAgICAgICMgU2V0IGVycm5vIHBhcnQgdG8gMSAoU1NMX0VSUk9SX1NTTCkgbGlrZSB0aGUgc3Ns
IG1vZHVsZQotICAgICAgICAgICAgICAgICAgICAjIGRvZXMuCi0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXInLCBlKQotICAgICAgICAgICAgICAgICAgICByYWlzZSBz
b2NrZXQuZXJyb3IoMSwgJyVyJyAlIGUpCi0gICAgICAgICAgICAgICAgY2VydCA9IGFjY2VwdGVk
X3NvY2tldC5nZXRfcGVlcl9jZXJ0aWZpY2F0ZSgpCi0gICAgICAgICAgICAgICAgaWYgY2VydCBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGll
bnQgY2VydCBzdWJqZWN0OiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjZXJ0LmdldF9zdWJqZWN0KCkuZ2V0X2NvbXBvbmVudHMoKSkKLSAgICAgICAgICAgICAg
ICBhY2NlcHRlZF9zb2NrZXQgPSBfU3RhbmRhbG9uZVNTTENvbm5lY3Rpb24oYWNjZXB0ZWRfc29j
a2V0KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCdObyBUTFMgc3VwcG9ydCBtb2R1bGUgaXMgYXZhaWxhYmxlJykKLQotICAgICAgICByZXR1cm4g
YWNjZXB0ZWRfc29ja2V0LCBjbGllbnRfYWRkcmVzcwotCi0gICAgZGVmIHNlcnZlX2ZvcmV2ZXIo
c2VsZiwgcG9sbF9pbnRlcnZhbD0wLjUpOgotICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2
ZXIuQmFzZVNlcnZlci5zZXJ2ZV9mb3JldmVyLiIiIgotCi0gICAgICAgIHNlbGYuX193c19zZXJ2
aW5nID0gVHJ1ZQotICAgICAgICBzZWxmLl9fd3NfaXNfc2h1dF9kb3duLmNsZWFyKCkKLSAgICAg
ICAgaGFuZGxlX3JlcXVlc3QgPSBzZWxmLmhhbmRsZV9yZXF1ZXN0Ci0gICAgICAgIGlmIGhhc2F0
dHIoc2VsZiwgJ19oYW5kbGVfcmVxdWVzdF9ub2Jsb2NrJyk6Ci0gICAgICAgICAgICBoYW5kbGVf
cmVxdWVzdCA9IHNlbGYuX2hhbmRsZV9yZXF1ZXN0X25vYmxvY2sKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci53YXJuaW5nKCdGYWxsYmFjayB0byBibG9ja2luZyByZXF1
ZXN0IGhhbmRsZXInKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aGlsZSBzZWxmLl9fd3Nf
c2VydmluZzoKLSAgICAgICAgICAgICAgICByLCB3LCBlID0gc2VsZWN0LnNlbGVjdCgKLSAgICAg
ICAgICAgICAgICAgICAgW3NvY2tldF9bMF0gZm9yIHNvY2tldF8gaW4gc2VsZi5fc29ja2V0c10s
Ci0gICAgICAgICAgICAgICAgICAgIFtdLCBbXSwgcG9sbF9pbnRlcnZhbCkKLSAgICAgICAgICAg
ICAgICBmb3Igc29ja2V0XyBpbiByOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnNvY2tldCA9
IHNvY2tldF8KLSAgICAgICAgICAgICAgICAgICAgaGFuZGxlX3JlcXVlc3QoKQotICAgICAgICAg
ICAgICAgIHNlbGYuc29ja2V0ID0gTm9uZQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
c2VsZi5fX3dzX2lzX3NodXRfZG93bi5zZXQoKQotCi0gICAgZGVmIHNodXRkb3duKHNlbGYpOgot
ICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuQmFzZVNlcnZlci5zaHV0ZG93bi4iIiIK
LQotICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9IEZhbHNlCi0gICAgICAgIHNlbGYuX193c19p
c19zaHV0X2Rvd24ud2FpdCgpCi0KLQotY2xhc3MgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIoQ0dJ
SFRUUFNlcnZlci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIpOgotICAgICIiIkNHSUhUVFBSZXF1ZXN0
SGFuZGxlciBzcGVjaWFsaXplZCBmb3IgV2ViU29ja2V0LiIiIgotCi0gICAgIyBVc2UgaHR0cGxp
Yi5IVFRQTWVzc2FnZSBpbnN0ZWFkIG9mIG1pbWV0b29scy5NZXNzYWdlLgotICAgIE1lc3NhZ2VD
bGFzcyA9IGh0dHBsaWIuSFRUUE1lc3NhZ2UKLQotICAgIHByb3RvY29sX3ZlcnNpb24gPSAiSFRU
UC8xLjEiCi0KLSAgICBkZWYgc2V0dXAoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIFNvY2tl
dFNlcnZlci5TdHJlYW1SZXF1ZXN0SGFuZGxlci5zZXR1cCB0byB3cmFwIHJmaWxlCi0gICAgICAg
IHdpdGggTWVtb3JpemluZ0ZpbGUuCi0KLSAgICAgICAgVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxs
ZWQgYnkgQmFzZVJlcXVlc3RIYW5kbGVyJ3MgY29uc3RydWN0b3IKLSAgICAgICAgYmVmb3JlIGNh
bGxpbmcgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGUuCi0gICAgICAgIEJhc2VIVFRQUmVx
dWVzdEhhbmRsZXIuaGFuZGxlIHdpbGwgY2FsbAotICAgICAgICBCYXNlSFRUUFJlcXVlc3RIYW5k
bGVyLmhhbmRsZV9vbmVfcmVxdWVzdCBhbmQgaXQgd2lsbCBjYWxsCi0gICAgICAgIFdlYlNvY2tl
dFJlcXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVlc3QuCi0gICAgICAgICIiIgotCi0gICAgICAgICMg
Q2FsbCBzdXBlcmNsYXNzJ3Mgc2V0dXAgdG8gcHJlcGFyZSByZmlsZSwgd2ZpbGUsIGV0Yy4gU2Vl
IHNldHVwCi0gICAgICAgICMgZGVmaW5pdGlvbiBvbiB0aGUgcm9vdCBjbGFzcyBTb2NrZXRTZXJ2
ZXIuU3RyZWFtUmVxdWVzdEhhbmRsZXIgdG8KLSAgICAgICAgIyB1bmRlcnN0YW5kIHdoYXQgdGhp
cyBkb2VzLgotICAgICAgICBDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5zZXR1
cChzZWxmKQotCi0gICAgICAgIHNlbGYucmZpbGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5n
RmlsZSgKLSAgICAgICAgICAgIHNlbGYucmZpbGUsCi0gICAgICAgICAgICBtYXhfbWVtb3JpemVk
X2xpbmVzPV9NQVhfTUVNT1JJWkVEX0xJTkVTKQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJl
cXVlc3QsIGNsaWVudF9hZGRyZXNzLCBzZXJ2ZXIpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gc2Vy
dmVyLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucwotCi0gICAgICAgICMgT3ZlcnJpZGVzIENHSUhU
VFBTZXJ2ZXJSZXF1ZXN0SGFuZGxlci5jZ2lfZGlyZWN0b3JpZXMuCi0gICAgICAgIHNlbGYuY2dp
X2RpcmVjdG9yaWVzID0gc2VsZi5fb3B0aW9ucy5jZ2lfZGlyZWN0b3JpZXMKLSAgICAgICAgIyBS
ZXBsYWNlIENHSUhUVFBSZXF1ZXN0SGFuZGxlci5pc19leGVjdXRhYmxlIG1ldGhvZC4KLSAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy5pc19leGVjdXRhYmxlX21ldGhvZCBpcyBub3QgTm9uZToKLSAg
ICAgICAgICAgIHNlbGYuaXNfZXhlY3V0YWJsZSA9IHNlbGYuX29wdGlvbnMuaXNfZXhlY3V0YWJs
ZV9tZXRob2QKLQotICAgICAgICAjIFRoaXMgYWN0dWFsbHkgY2FsbHMgQmFzZVJlcXVlc3RIYW5k
bGVyLl9faW5pdF9fLgotICAgICAgICBDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxl
ci5fX2luaXRfXygKLSAgICAgICAgICAgIHNlbGYsIHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzLCBz
ZXJ2ZXIpCi0KLSAgICBkZWYgcGFyc2VfcmVxdWVzdChzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJp
ZGUgQmFzZUhUVFBTZXJ2ZXIuQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0Lgot
Ci0gICAgICAgIFJldHVybiBUcnVlIHRvIGNvbnRpbnVlIHByb2Nlc3NpbmcgZm9yIEhUVFAoUyks
IEZhbHNlIG90aGVyd2lzZS4KLQotICAgICAgICBTZWUgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5o
YW5kbGVfb25lX3JlcXVlc3QgbWV0aG9kIHdoaWNoIGNhbGxzCi0gICAgICAgIHRoaXMgbWV0aG9k
IHRvIHVuZGVyc3RhbmQgaG93IHRoZSByZXR1cm4gdmFsdWUgd2lsbCBiZSBoYW5kbGVkLgotICAg
ICAgICAiIiIKLQotICAgICAgICAjIFdlIGhvb2sgcGFyc2VfcmVxdWVzdCBtZXRob2QsIGJ1dCBh
bHNvIGNhbGwgdGhlIG9yaWdpbmFsCi0gICAgICAgICMgQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLnBh
cnNlX3JlcXVlc3Qgc2luY2Ugd2hlbiB3ZSByZXR1cm4gRmFsc2UsCi0gICAgICAgICMgQ0dJSFRU
UFJlcXVlc3RIYW5kbGVyLmhhbmRsZV9vbmVfcmVxdWVzdCBjb250aW51ZXMgcHJvY2Vzc2luZyBh
bmQKLSAgICAgICAgIyBpdCBuZWVkcyB2YXJpYWJsZXMgc2V0IGJ5IENHSUhUVFBSZXF1ZXN0SGFu
ZGxlci5wYXJzZV9yZXF1ZXN0LgotICAgICAgICAjCi0gICAgICAgICMgVmFyaWFibGVzIHNldCBi
eSB0aGlzIG1ldGhvZCB3aWxsIGJlIGFsc28gdXNlZCBieSBXZWJTb2NrZXQgcmVxdWVzdAotICAg
ICAgICAjIGhhbmRsaW5nIChzZWxmLnBhdGgsIHNlbGYuY29tbWFuZCwgc2VsZi5yZXF1ZXN0bGlu
ZSwgZXRjLiBTZWUgYWxzbwotICAgICAgICAjIGhvdyBfU3RhbmRhbG9uZVJlcXVlc3QncyBtZW1i
ZXJzIGFyZSBpbXBsZW1lbnRlZCB1c2luZyB0aGVzZQotICAgICAgICAjIGF0dHJpYnV0ZXMpLgot
ICAgICAgICBpZiBub3QgQ0dJSFRUUFNlcnZlci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIucGFyc2Vf
cmVxdWVzdChzZWxmKToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGlmIHNl
bGYuY29tbWFuZCA9PSAiQ09OTkVDVCI6Ci0gICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2Uo
MjAwLCAiQ29ubmVjdGVkIikKLSAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbm5lY3Rp
b24iLCAia2VlcC1hbGl2ZSIpCi0gICAgICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKLSAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX2Jhc2lj
X2F1dGg6Ci0gICAgICAgICAgICBhdXRoID0gc2VsZi5oZWFkZXJzLmdldGhlYWRlcignQXV0aG9y
aXphdGlvbicpCi0gICAgICAgICAgICBpZiBhdXRoICE9IHNlbGYuX29wdGlvbnMuYmFzaWNfYXV0
aF9jcmVkZW50aWFsOgotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSg0MDEpCi0g
ICAgICAgICAgICAgICAgc2VsZi5zZW5kX2hlYWRlcignV1dXLUF1dGhlbnRpY2F0ZScsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmFzaWMgcmVhbG09IlB5d2Vic29ja2V0Iicp
Ci0gICAgICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmluZm8oJ1JlcXVlc3QgYmFzaWMgYXV0aGVudGljYXRpb24nKQotICAgICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0
cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoc2VsZi5wYXRoKQotCi0gICAgICAgICMgU3BlY2lhbCBw
YXRocyBmb3IgWE1MSHR0cFJlcXVlc3QgYmVuY2htYXJrCi0gICAgICAgIHhocl9iZW5jaG1hcmtf
aGVscGVyX3ByZWZpeCA9ICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnCi0gICAg
ICAgIGlmIHJlc291cmNlID09ICh4aHJfYmVuY2htYXJrX2hlbHBlcl9wcmVmaXggKyAnX3NlbmQn
KToKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlciA9IFhIUkJlbmNobWFya0hhbmRs
ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5oZWFkZXJzLCBzZWxmLnJmaWxlLCBzZWxmLndmaWxl
KQotICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyLmRvX3NlbmQoKQotICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIHJlc291cmNlID09ICh4aHJfYmVuY2htYXJrX2hl
bHBlcl9wcmVmaXggKyAnX3JlY2VpdmUnKToKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFu
ZGxlciA9IFhIUkJlbmNobWFya0hhbmRsZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5oZWFkZXJz
LCBzZWxmLnJmaWxlLCBzZWxmLndmaWxlKQotICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5k
bGVyLmRvX3JlY2VpdmUoKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgaWYg
cmVzb3VyY2UgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdJbnZhbGlk
IFVSSTogJXInLCBzZWxmLnBhdGgpCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFs
bGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykKLSAgICAgICAgICAgIHJldHVybiBUcnVl
Ci0gICAgICAgIHNlcnZlcl9vcHRpb25zID0gc2VsZi5zZXJ2ZXIud2Vic29ja2V0X3NlcnZlcl9v
cHRpb25zCi0gICAgICAgIGlmIGhvc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB2YWxpZGF0
aW9uX2hvc3QgPSBzZXJ2ZXJfb3B0aW9ucy52YWxpZGF0aW9uX2hvc3QKLSAgICAgICAgICAgIGlm
IHZhbGlkYXRpb25faG9zdCBpcyBub3QgTm9uZSBhbmQgaG9zdCAhPSB2YWxpZGF0aW9uX2hvc3Q6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ludmFsaWQgaG9zdDogJXIgKGV4
cGVjdGVkOiAlciknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbl9ob3N0KQotICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdGYWxsYmFjayB0byBDR0lIVFRQUmVxdWVzdEhh
bmRsZXInKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGlmIHBvcnQgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICB2YWxpZGF0aW9uX3BvcnQgPSBzZXJ2ZXJfb3B0aW9ucy52
YWxpZGF0aW9uX3BvcnQKLSAgICAgICAgICAgIGlmIHZhbGlkYXRpb25fcG9ydCBpcyBub3QgTm9u
ZSBhbmQgcG9ydCAhPSB2YWxpZGF0aW9uX3BvcnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmluZm8oJ0ludmFsaWQgcG9ydDogJXIgKGV4cGVjdGVkOiAlciknLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsaWRhdGlvbl9wb3J0KQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCdGYWxsYmFjayB0byBDR0lIVFRQUmVxdWVzdEhhbmRsZXInKQotICAgICAgICAgICAgICAgIHJl
dHVybiBUcnVlCi0gICAgICAgIHNlbGYucGF0aCA9IHJlc291cmNlCi0KLSAgICAgICAgcmVxdWVz
dCA9IF9TdGFuZGFsb25lUmVxdWVzdChzZWxmLCBzZWxmLl9vcHRpb25zLnVzZV90bHMpCi0KLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgIyBGYWxsYmFjayB0byBkZWZhdWx0IGh0dHAgaGFuZGxl
ciBmb3IgcmVxdWVzdCBwYXRocyBmb3Igd2hpY2gKLSAgICAgICAgICAgICMgd2UgZG9uJ3QgaGF2
ZSByZXF1ZXN0IGhhbmRsZXJzLgotICAgICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMuZGlz
cGF0Y2hlci5nZXRfaGFuZGxlcl9zdWl0ZShzZWxmLnBhdGgpOgotICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5pbmZvKCdObyBoYW5kbGVyIGZvciByZXNvdXJjZTogJXInLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGF0aCkKLSAgICAgICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuaW5mbygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykKLSAgICAg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0Y2hF
eGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRGlzcGF0Y2ggZmFp
bGVkIGZvciBlcnJvcjogJXMnLCBlKQotICAgICAgICAgICAgc2VsZi5zZW5kX2Vycm9yKGUuc3Rh
dHVzKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgIyBJZiBhbnkgRXhjZXB0
aW9ucyB3aXRob3V0IGV4Y2VwdCBjbGF1c2Ugc2V0dXAgKGluY2x1ZGluZwotICAgICAgICAjIERp
c3BhdGNoRXhjZXB0aW9uKSBpcyByYWlzZWQgYmVsb3cgdGhpcyBwb2ludCwgaXQgd2lsbCBiZSBj
YXVnaHQKLSAgICAgICAgIyBhbmQgbG9nZ2VkIGJ5IFdlYlNvY2tldFNlcnZlci4KLQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaGFuZHNoYWtlLmRvX2hh
bmRzaGFrZSgKLSAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyLAotICAgICAgICAgICAgICAgICAgICBhbGxvd0Ry
YWZ0NzU9c2VsZi5fb3B0aW9ucy5hbGxvd19kcmFmdDc1LAotICAgICAgICAgICAgICAgICAgICBz
dHJpY3Q9c2VsZi5fb3B0aW9ucy5zdHJpY3QpCi0gICAgICAgICAgICBleGNlcHQgaGFuZHNoYWtl
LlZlcnNpb25FeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8o
J0hhbmRzaGFrZSBmYWlsZWQgZm9yIHZlcnNpb24gZXJyb3I6ICVzJywgZSkKLSAgICAgICAgICAg
ICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQot
ICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVS
U0lPTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN1cHBvcnRl
ZF92ZXJzaW9ucykKLSAgICAgICAgICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuSGFuZHNo
YWtlRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgICMgSGFuZHNoYWtlIGZvciB3cyhzKSBm
YWlsZWQuCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0hhbmRzaGFrZSBmYWls
ZWQgZm9yIGVycm9yOiAlcycsIGUpCi0gICAgICAgICAgICAgICAgc2VsZi5zZW5kX2Vycm9yKGUu
c3RhdHVzKQotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICAgICByZXF1
ZXN0Ll9kaXNwYXRjaGVyID0gc2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyCi0gICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLmRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICBl
eGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuaW5mbygnQWJvcnRlZDogJXMnLCBlKQotICAgICAgICByZXR1cm4gRmFsc2UK
LQotICAgIGRlZiBsb2dfcmVxdWVzdChzZWxmLCBjb2RlPSctJywgc2l6ZT0nLScpOgotICAgICAg
ICAiIiJPdmVycmlkZSBCYXNlSFRUUFNlcnZlci5sb2dfcmVxdWVzdC4iIiIKLQotICAgICAgICBz
ZWxmLl9sb2dnZXIuaW5mbygnIiVzIiAlcyAlcycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYucmVxdWVzdGxpbmUsIHN0cihjb2RlKSwgc3RyKHNpemUpKQotCi0gICAgZGVmIGxvZ19l
cnJvcihzZWxmLCAqYXJncyk6Ci0gICAgICAgICIiIk92ZXJyaWRlIEJhc2VIVFRQU2VydmVyLmxv
Z19lcnJvci4iIiIKLQotICAgICAgICAjIERlc3BpdGUgdGhlIG5hbWUsIHRoaXMgbWV0aG9kIGlz
IGZvciB3YXJuaW5ncyB0aGFuIGZvciBlcnJvcnMuCi0gICAgICAgICMgRm9yIGV4YW1wbGUsIEhU
VFAgc3RhdHVzIGNvZGUgaXMgbG9nZ2VkIGJ5IHRoaXMgbWV0aG9kLgotICAgICAgICBzZWxmLl9s
b2dnZXIud2FybmluZygnJXMgLSAlcycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuYWRkcmVzc19zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1sw
XSAlIGFyZ3NbMTpdKQotCi0gICAgZGVmIGlzX2NnaShzZWxmKToKLSAgICAgICAgIiIiVGVzdCB3
aGV0aGVyIHNlbGYucGF0aCBjb3JyZXNwb25kcyB0byBhIENHSSBzY3JpcHQuCi0KLSAgICAgICAg
QWRkIGV4dHJhIGNoZWNrIHRoYXQgc2VsZi5wYXRoIGRvZXNuJ3QgY29udGFpbnMgLi4KLSAgICAg
ICAgQWxzbyBjaGVjayBpZiB0aGUgZmlsZSBpcyBhIGV4ZWN1dGFibGUgZmlsZSBvciBub3QuCi0g
ICAgICAgIElmIHRoZSBmaWxlIGlzIG5vdCBleGVjdXRhYmxlLCBpdCBpcyBoYW5kbGVkIGFzIHN0
YXRpYyBmaWxlIG9yIGRpcgotICAgICAgICByYXRoZXIgdGhhbiBhIENHSSBzY3JpcHQuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIGlmIENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVy
LmlzX2NnaShzZWxmKToKLSAgICAgICAgICAgIGlmICcuLicgaW4gc2VsZi5wYXRoOgotICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgIyBzdHJpcCBxdWVyeSBwYXJhbWV0
ZXIgZnJvbSByZXF1ZXN0IHBhdGgKLSAgICAgICAgICAgIHJlc291cmNlX25hbWUgPSBzZWxmLnBh
dGguc3BsaXQoJz8nLCAyKVswXQotICAgICAgICAgICAgIyBjb252ZXJ0IHJlc291cmNlX25hbWUg
aW50byByZWFsIHBhdGggbmFtZSBpbiBmaWxlc3lzdGVtLgotICAgICAgICAgICAgc2NyaXB0Zmls
ZSA9IHNlbGYudHJhbnNsYXRlX3BhdGgocmVzb3VyY2VfbmFtZSkKLSAgICAgICAgICAgIGlmIG5v
dCBvcy5wYXRoLmlzZmlsZShzY3JpcHRmaWxlKToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmlzX2V4ZWN1dGFibGUoc2NyaXB0ZmlsZSk6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAg
ICAgICByZXR1cm4gRmFsc2UKLQotCi1kZWYgX2dldF9sb2dnZXJfZnJvbV9jbGFzcyhjKToKLSAg
ICByZXR1cm4gbG9nZ2luZy5nZXRMb2dnZXIoJyVzLiVzJyAlIChjLl9fbW9kdWxlX18sIGMuX19u
YW1lX18pKQotCi0KLWRlZiBfY29uZmlndXJlX2xvZ2dpbmcob3B0aW9ucyk6Ci0gICAgbG9nZ2lu
Zy5hZGRMZXZlbE5hbWUoY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdGSU5FJykKLQotICAgIGxvZ2dl
ciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKLSAgICBsb2dnZXIuc2V0TGV2ZWwobG9nZ2luZy5nZXRM
ZXZlbE5hbWUob3B0aW9ucy5sb2dfbGV2ZWwudXBwZXIoKSkpCi0gICAgaWYgb3B0aW9ucy5sb2df
ZmlsZToKLSAgICAgICAgaGFuZGxlciA9IGxvZ2dpbmcuaGFuZGxlcnMuUm90YXRpbmdGaWxlSGFu
ZGxlcigKLSAgICAgICAgICAgICAgICBvcHRpb25zLmxvZ19maWxlLCAnYScsIG9wdGlvbnMubG9n
X21heCwgb3B0aW9ucy5sb2dfY291bnQpCi0gICAgZWxzZToKLSAgICAgICAgaGFuZGxlciA9IGxv
Z2dpbmcuU3RyZWFtSGFuZGxlcigpCi0gICAgZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIo
Ci0gICAgICAgICAgICAnWyUoYXNjdGltZSlzXSBbJShsZXZlbG5hbWUpc10gJShuYW1lKXM6ICUo
bWVzc2FnZSlzJykKLSAgICBoYW5kbGVyLnNldEZvcm1hdHRlcihmb3JtYXR0ZXIpCi0gICAgbG9n
Z2VyLmFkZEhhbmRsZXIoaGFuZGxlcikKLQotICAgIGRlZmxhdGVfbG9nX2xldmVsX25hbWUgPSBs
b2dnaW5nLmdldExldmVsTmFtZSgKLSAgICAgICAgb3B0aW9ucy5kZWZsYXRlX2xvZ19sZXZlbC51
cHBlcigpKQotICAgIF9nZXRfbG9nZ2VyX2Zyb21fY2xhc3ModXRpbC5fRGVmbGF0ZXIpLnNldExl
dmVsKAotICAgICAgICBkZWZsYXRlX2xvZ19sZXZlbF9uYW1lKQotICAgIF9nZXRfbG9nZ2VyX2Zy
b21fY2xhc3ModXRpbC5fSW5mbGF0ZXIpLnNldExldmVsKAotICAgICAgICBkZWZsYXRlX2xvZ19s
ZXZlbF9uYW1lKQotCi0KLWRlZiBfYnVpbGRfb3B0aW9uX3BhcnNlcigpOgotICAgIHBhcnNlciA9
IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCi0KLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1jb25m
aWcnLCBkZXN0PSdjb25maWdfZmlsZScsIHR5cGU9J3N0cmluZycsCi0gICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdQYXRoIHRv
IGNvbmZpZ3VyYXRpb24gZmlsZS4gU2VlIHRoZSBmaWxlIGNvbW1lbnQgJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZSBmb3IgdGhlIGNvbmZpZ3Vy
YXRpb24gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlIGZvcm1hdCcpKQotICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctSCcsICctLXNlcnZlci1ob3N0JywgJy0tc2VydmVyX2hvc3Qn
LAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3NlcnZlcl9ob3N0JywKLSAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0PScnLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3NlcnZl
ciBob3N0bmFtZSB0byBsaXN0ZW4gdG8nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctVicsICct
LXZhbGlkYXRpb24taG9zdCcsICctLXZhbGlkYXRpb25faG9zdCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgZGVzdD0ndmFsaWRhdGlvbl9ob3N0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nc2VydmVyIGhvc3RuYW1lIHRv
IHZhbGlkYXRlIGluIGFic29sdXRlIHBhdGguJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXAn
LCAnLS1wb3J0JywgZGVzdD0ncG9ydCcsIHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD1jb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1BPUlQsCi0gICAgICAgICAgICAg
ICAgICAgICAgaGVscD0ncG9ydCB0byBsaXN0ZW4gdG8nKQotICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctUCcsICctLXZhbGlkYXRpb24tcG9ydCcsICctLXZhbGlkYXRpb25fcG9ydCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgZGVzdD0ndmFsaWRhdGlvbl9wb3J0JywgdHlwZT0naW50JywKLSAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgaGVs
cD0nc2VydmVyIHBvcnQgdG8gdmFsaWRhdGUgaW4gYWJzb2x1dGUgcGF0aC4nKQotICAgIHBhcnNl
ci5hZGRfb3B0aW9uKCctdycsICctLXdlYnNvY2staGFuZGxlcnMnLCAnLS13ZWJzb2NrX2hhbmRs
ZXJzJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd3ZWJzb2NrX2hhbmRsZXJzJywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScuJywKLSAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSgnVGhlIHJvb3QgZGlyZWN0b3J5IG9mIFdlYlNvY2tldCBoYW5kbGVyIGZpbGVzLiAnCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lmIHRoZSBwYXRoIGlzIHJlbGF0aXZlLCAtLWRv
Y3VtZW50LXJvb3QgaXMgdXNlZCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzIHRo
ZSBiYXNlLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbScsICctLXdlYnNvY2staGFuZGxl
cnMtbWFwLWZpbGUnLAotICAgICAgICAgICAgICAgICAgICAgICctLXdlYnNvY2tfaGFuZGxlcnNf
bWFwX2ZpbGUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3dlYnNvY2tfaGFuZGxlcnNf
bWFwX2ZpbGUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSgnV2ViU29ja2V0IGhhbmRsZXJzIG1hcCBmaWxlLiAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ0VhY2ggbGluZSBjb25zaXN0cyBvZiBhbGlhc19yZXNv
dXJjZV9wYXRoIGFuZCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4aXN0aW5nX3Jl
c291cmNlX3BhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRp
b24oJy1zJywgJy0tc2Nhbi1kaXInLCAnLS1zY2FuX2RpcicsIGRlc3Q9J3NjYW5fZGlyJywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAg
aGVscD0oJ011c3QgYmUgYSBkaXJlY3RvcnkgdW5kZXIgLS13ZWJzb2NrLWhhbmRsZXJzLiAnCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ09ubHkgaGFuZGxlcnMgdW5kZXIgdGhpcyBkaXJl
Y3RvcnkgYXJlIHNjYW5uZWQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbmQgcmVn
aXN0ZXJlZCB0byB0aGUgc2VydmVyLiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1Vz
ZWZ1bCBmb3Igc2F2aW5nIHNjYW4gdGltZSB3aGVuIHRoZSBoYW5kbGVyICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAncm9vdCBkaXJlY3RvcnkgY29udGFpbnMgbG90cyBvZiBmaWxlcyB0
aGF0IGFyZSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vdCBoYW5kbGVyIGZpbGUg
b3IgYXJlIGhhbmRsZXIgZmlsZXMgYnV0IHlvdSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2RvblwndCB3YW50IHRoZW0gdG8gYmUgcmVnaXN0ZXJlZC4gJykpCi0gICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy0tYWxsb3ctaGFuZGxlcnMtb3V0c2lkZS1yb290LWRpcicsCi0gICAgICAgICAg
ICAgICAgICAgICAgJy0tYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcicsCi0gICAgICAg
ICAgICAgICAgICAgICAgZGVzdD0nYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcicsCi0g
ICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdTY2Fu
cyBXZWJTb2NrZXQgaGFuZGxlcnMgZXZlbiBpZiB0aGVpciBjYW5vbmljYWwgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdwYXRoIGlzIG5vdCB1bmRlciAtLXdlYnNvY2staGFuZGxlcnMu
JykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1kJywgJy0tZG9jdW1lbnQtcm9vdCcsICctLWRv
Y3VtZW50X3Jvb3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2RvY3VtZW50X3Jvb3Qn
LCBkZWZhdWx0PScuJywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdEb2N1bWVudCByb290
IGRpcmVjdG9yeS4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCcteCcsICctLWNnaS1wYXRocycs
ICctLWNnaV9wYXRocycsIGRlc3Q9J2NnaV9wYXRocycsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdDR0kgcGF0aHMgcmVs
YXRpdmUgdG8gZG9jdW1lbnRfcm9vdC4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Nv
bW1hLXNlcGFyYXRlZC4gKGUuZyAteCAvY2dpLC9odGJpbikgJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdGaWxlcyB1bmRlciBkb2N1bWVudF9yb290L2NnaV9wYXRoIGFyZSBoYW5kbGVk
ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXMgQ0dJIHByb2dyYW1zLiBNdXN0IGJl
IGV4ZWN1dGFibGUuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy10JywgJy0tdGxzJywgZGVz
dD0ndXNlX3RscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRMUyAod3NzOi8vKScpCi0gICAgcGFyc2VyLmFkZF9v
cHRpb24oJy0tdGxzLW1vZHVsZScsICctLXRsc19tb2R1bGUnLCBkZXN0PSd0bHNfbW9kdWxlJywK
LSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdjaG9pY2UnLAotICAgICAgICAgICAgICAgICAg
ICAgIGNob2ljZXMgPSBbX1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNfQllfUFlPUEVOU1NM
XSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdVc2Ugc3NsIG1vZHVsZSBpZiAiJXMiIGlz
IHNwZWNpZmllZC4gJwotICAgICAgICAgICAgICAgICAgICAgICdVc2UgcHlPcGVuU1NMIG1vZHVs
ZSBpZiAiJXMiIGlzIHNwZWNpZmllZCcgJQotICAgICAgICAgICAgICAgICAgICAgIChfVExTX0JZ
X1NUQU5EQVJEX01PRFVMRSwgX1RMU19CWV9QWU9QRU5TU0wpKQotICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctaycsICctLXByaXZhdGUta2V5JywgJy0tcHJpdmF0ZV9rZXknLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9J3ByaXZhdGVfa2V5JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0PScnLCBoZWxwPSdUTFMgcHJpdmF0ZSBrZXkgZmlsZS4nKQotICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctYycsICctLWNlcnRpZmljYXRlJywgZGVzdD0nY2VydGlmaWNhdGUnLAotICAgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RMUyBjZXJ0aWZpY2F0ZSBmaWxlLicpCi0g
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGxzLWNsaWVudC1hdXRoJywgZGVzdD0ndGxzX2NsaWVu
dF9hdXRoJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZh
dWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1JlcXVlc3RzIFRMUyBjbGll
bnQgYXV0aCBvbiBldmVyeSBjb25uZWN0aW9uLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0t
dGxzLWNsaWVudC1jZXJ0LW9wdGlvbmFsJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd0
bHNfY2xpZW50X2NlcnRfb3B0aW9uYWwnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0n
c3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0o
J01ha2VzIGNsaWVudCBjZXJ0aWZpY2F0ZSBvcHRpb25hbCBldmVuIHRob3VnaCAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ1RMUyBjbGllbnQgYXV0aCBpcyBlbmFibGVkLicpKQotICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1jbGllbnQtY2EnLCBkZXN0PSd0bHNfY2xpZW50X2Nh
JywgZGVmYXVsdD0nJywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnU3BlY2lmaWVzIGEg
cGVtIGZpbGUgd2hpY2ggY29udGFpbnMgYSBzZXQgb2YgJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdjb25jYXRlbmF0ZWQgQ0EgY2VydGlmaWNhdGVzIHdoaWNoIGFyZSB1c2VkIHRvICcK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsaWRhdGUgY2VydGlmaWNhdGVzIHBhc3Nl
ZCBmcm9tIGNsaWVudHMnKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1iYXNpYy1hdXRoJywg
ZGVzdD0ndXNlX2Jhc2ljX2F1dGgnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3Rv
cmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nUmVx
dWlyZXMgQmFzaWMgYXV0aGVudGljYXRpb24uJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1i
YXNpYy1hdXRoLWNyZWRlbnRpYWwnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2Jhc2lj
X2F1dGhfY3JlZGVudGlhbCcsIGRlZmF1bHQ9J3Rlc3Q6dGVzdCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgaGVscD0nU3BlY2lmaWVzIHRoZSBjcmVkZW50aWFsIG9mIGJhc2ljIGF1dGhlbnRpY2F0
aW9uICcKLSAgICAgICAgICAgICAgICAgICAgICAnYnkgdXNlcm5hbWU6cGFzc3dvcmQgcGFpciAo
ZS5nLiB0ZXN0OnRlc3QpLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1sJywgJy0tbG9nLWZp
bGUnLCAnLS1sb2dfZmlsZScsIGRlc3Q9J2xvZ19maWxlJywKLSAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PScnLCBoZWxwPSdMb2cgZmlsZS4nKQotICAgICMgQ3VzdG9tIGxvZyBsZXZlbDoK
LSAgICAjIC0gRklORTogUHJpbnRzIHN0YXR1cyBvZiBlYWNoIGZyYW1lIHByb2Nlc3Npbmcgc3Rl
cAotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1sZXZlbCcsICctLWxvZ19sZXZlbCcsIHR5
cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nbG9nX2xldmVsJywgZGVm
YXVsdD0nd2FybicsCi0gICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2ZpbmUnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWJ1ZycsICdpbmZvJywgJ3dhcm5pbmcnLCAn
d2FybicsICdlcnJvcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyaXRpY2Fs
J10sCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIGxldmVsLicpCi0gICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy0tZGVmbGF0ZS1sb2ctbGV2ZWwnLCAnLS1kZWZsYXRlX2xvZ19sZXZlbCcs
Ci0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0nY2hvaWNlJywKLSAgICAgICAgICAgICAgICAg
ICAgICBkZXN0PSdkZWZsYXRlX2xvZ19sZXZlbCcsIGRlZmF1bHQ9J3dhcm4nLAotICAgICAgICAg
ICAgICAgICAgICAgIGNob2ljZXM9WydkZWJ1ZycsICdpbmZvJywgJ3dhcm5pbmcnLCAnd2Fybics
ICdlcnJvcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyaXRpY2FsJ10sCi0g
ICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIGxldmVsIGZvciBfRGVmbGF0ZXIgYW5kIF9J
bmZsYXRlci4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRocmVhZC1tb25pdG9yLWludGVy
dmFsLWluLXNlYycsCi0gICAgICAgICAgICAgICAgICAgICAgJy0tdGhyZWFkX21vbml0b3JfaW50
ZXJ2YWxfaW5fc2VjJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd0aHJlYWRfbW9uaXRv
cl9pbnRlcnZhbF9pbl9zZWMnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2ludCcsIGRl
ZmF1bHQ9LTEsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ0lmIHBvc2l0aXZlIGludGVn
ZXIgaXMgc3BlY2lmaWVkLCBydW4gYSB0aHJlYWQgJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdtb25pdG9yIHRvIHNob3cgdGhlIHN0YXR1cyBvZiBzZXJ2ZXIgdGhyZWFkcyAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3BlcmlvZGljYWxseSBpbiB0aGUgc3BlY2lmaWVkIGlu
dGV2YWwgaW4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZWNvbmQuIElmIG5vbi1w
b3NpdGl2ZSBpbnRlZ2VyIGlzIHNwZWNpZmllZCwgJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdkaXNhYmxlIHRoZSB0aHJlYWQgbW9uaXRvci4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlv
bignLS1sb2ctbWF4JywgJy0tbG9nX21heCcsIGRlc3Q9J2xvZ19tYXgnLCB0eXBlPSdpbnQnLAot
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9X0RFRkFVTFRfTE9HX01BWF9CWVRFUywKLSAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cgbWF4aW11bSBieXRlcycpCi0gICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy0tbG9nLWNvdW50JywgJy0tbG9nX2NvdW50JywgZGVzdD0nbG9nX2NvdW50
JywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQnLCBkZWZhdWx0PV9ERUZBVUxUX0xP
R19CQUNLVVBfQ09VTlQsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIGJhY2t1cCBj
b3VudCcpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tYWxsb3ctZHJhZnQ3NScsIGRlc3Q9J2Fs
bG93X2RyYWZ0NzUnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScs
IGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nT2Jzb2xldGUgb3B0
aW9uLiBJZ25vcmVkLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tc3RyaWN0JywgZGVzdD0n
c3RyaWN0JywgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0PUZhbHNlLCBoZWxwPSdPYnNvbGV0ZSBvcHRpb24uIElnbm9yZWQuJykKLSAgICBwYXJzZXIu
YWRkX29wdGlvbignLXEnLCAnLS1xdWV1ZScsIGRlc3Q9J3JlcXVlc3RfcXVldWVfc2l6ZScsIHR5
cGU9J2ludCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1fREVGQVVMVF9SRVFVRVNU
X1FVRVVFX1NJWkUsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0ncmVxdWVzdCBxdWV1ZSBz
aXplJykKLQotICAgIHJldHVybiBwYXJzZXIKLQotCi1jbGFzcyBUaHJlYWRNb25pdG9yKHRocmVh
ZGluZy5UaHJlYWQpOgotICAgIGRhZW1vbiA9IFRydWUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBpbnRlcnZhbF9pbl9zZWMpOgotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNl
bGYsIG5hbWU9J1RocmVhZE1vbml0b3InKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwu
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX2ludGVydmFsX2luX3NlYyA9
IGludGVydmFsX2luX3NlYwotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgd2hpbGUgVHJ1
ZToKLSAgICAgICAgICAgIHRocmVhZF9uYW1lX2xpc3QgPSBbXQotICAgICAgICAgICAgZm9yIHRo
cmVhZCBpbiB0aHJlYWRpbmcuZW51bWVyYXRlKCk6Ci0gICAgICAgICAgICAgICAgdGhyZWFkX25h
bWVfbGlzdC5hcHBlbmQodGhyZWFkLm5hbWUpCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5m
bygKLSAgICAgICAgICAgICAgICAiJWQgYWN0aXZlIHRocmVhZHM6ICVzIiwKLSAgICAgICAgICAg
ICAgICB0aHJlYWRpbmcuYWN0aXZlX2NvdW50KCksCi0gICAgICAgICAgICAgICAgJywgJy5qb2lu
KHRocmVhZF9uYW1lX2xpc3QpKQotICAgICAgICAgICAgdGltZS5zbGVlcChzZWxmLl9pbnRlcnZh
bF9pbl9zZWMpCi0KLQotZGVmIF9wYXJzZV9hcmdzX2FuZF9jb25maWcoYXJncyk6Ci0gICAgcGFy
c2VyID0gX2J1aWxkX29wdGlvbl9wYXJzZXIoKQotCi0gICAgIyBGaXJzdCwgcGFyc2Ugb3B0aW9u
cyB3aXRob3V0IGNvbmZpZ3VyYXRpb24gZmlsZS4KLSAgICB0ZW1wb3Jhcnlfb3B0aW9ucywgdGVt
cG9yYXJ5X2FyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhhcmdzPWFyZ3MpCi0gICAgaWYgdGVtcG9y
YXJ5X2FyZ3M6Ci0gICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoCi0gICAgICAgICAgICAnVW5yZWNv
Z25pemVkIHBvc2l0aW9uYWwgYXJndW1lbnRzOiAlcicsIHRlbXBvcmFyeV9hcmdzKQotICAgICAg
ICBzeXMuZXhpdCgxKQotCi0gICAgaWYgdGVtcG9yYXJ5X29wdGlvbnMuY29uZmlnX2ZpbGU6Ci0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbmZpZ19mcCA9IG9wZW4odGVtcG9yYXJ5X29wdGlv
bnMuY29uZmlnX2ZpbGUsICdyJykKLSAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6Ci0gICAgICAg
ICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gb3BlbiBj
b25maWd1cmF0aW9uIGZpbGUgJXI6ICVyJywKLSAgICAgICAgICAgICAgICB0ZW1wb3Jhcnlfb3B0
aW9ucy5jb25maWdfZmlsZSwKLSAgICAgICAgICAgICAgICBlKQotICAgICAgICAgICAgc3lzLmV4
aXQoMSkKLQotICAgICAgICBjb25maWdfcGFyc2VyID0gQ29uZmlnUGFyc2VyLlNhZmVDb25maWdQ
YXJzZXIoKQotICAgICAgICBjb25maWdfcGFyc2VyLnJlYWRmcChjb25maWdfZnApCi0gICAgICAg
IGNvbmZpZ19mcC5jbG9zZSgpCi0KLSAgICAgICAgYXJnc19mcm9tX2NvbmZpZyA9IFtdCi0gICAg
ICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBjb25maWdfcGFyc2VyLml0ZW1zKCdweXdlYnNvY2tldCcp
OgotICAgICAgICAgICAgYXJnc19mcm9tX2NvbmZpZy5hcHBlbmQoJy0tJyArIG5hbWUpCi0gICAg
ICAgICAgICBhcmdzX2Zyb21fY29uZmlnLmFwcGVuZCh2YWx1ZSkKLSAgICAgICAgaWYgYXJncyBp
cyBOb25lOgotICAgICAgICAgICAgYXJncyA9IGFyZ3NfZnJvbV9jb25maWcKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGFyZ3MgPSBhcmdzX2Zyb21fY29uZmlnICsgYXJncwotICAgICAgICBy
ZXR1cm4gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncz1hcmdzKQotICAgIGVsc2U6Ci0gICAgICAgIHJl
dHVybiB0ZW1wb3Jhcnlfb3B0aW9ucywgdGVtcG9yYXJ5X2FyZ3MKLQotCi1kZWYgX21haW4oYXJn
cz1Ob25lKToKLSAgICAiIiJZb3UgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbiBmcm9tIHlvdXIgb3du
IHByb2dyYW0sIGJ1dCBwbGVhc2Ugbm90ZSB0aGF0Ci0gICAgdGhpcyBmdW5jdGlvbiBoYXMgc29t
ZSBzaWRlLWVmZmVjdHMgdGhhdCBtaWdodCBhZmZlY3QgeW91ciBwcm9ncmFtLiBGb3IKLSAgICBl
eGFtcGxlLCB1dGlsLndyYXBfcG9wZW4zX2Zvcl93aW4gdXNlIGluIHRoaXMgbWV0aG9kIHJlcGxh
Y2VzIGltcGxlbWVudGF0aW9uCi0gICAgb2Ygb3MucG9wZW4zLgotICAgICIiIgotCi0gICAgb3B0
aW9ucywgYXJncyA9IF9wYXJzZV9hcmdzX2FuZF9jb25maWcoYXJncz1hcmdzKQotCi0gICAgb3Mu
Y2hkaXIob3B0aW9ucy5kb2N1bWVudF9yb290KQotCi0gICAgX2NvbmZpZ3VyZV9sb2dnaW5nKG9w
dGlvbnMpCi0KLSAgICBpZiBvcHRpb25zLmFsbG93X2RyYWZ0NzU6Ci0gICAgICAgIGxvZ2dpbmcu
d2FybmluZygnLS1hbGxvd19kcmFmdDc1IG9wdGlvbiBpcyBvYnNvbGV0ZS4nKQotCi0gICAgaWYg
b3B0aW9ucy5zdHJpY3Q6Ci0gICAgICAgIGxvZ2dpbmcud2FybmluZygnLS1zdHJpY3Qgb3B0aW9u
IGlzIG9ic29sZXRlLicpCi0KLSAgICAjIFRPRE8odHlvc2hpbm8pOiBDbGVhbiB1cCBpbml0aWFs
aXphdGlvbiBvZiBDR0kgcmVsYXRlZCB2YWx1ZXMuIE1vdmUgc29tZQotICAgICMgb2YgY29kZSBo
ZXJlIHRvIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyIGNsYXNzIGlmIGl0J3MgYmV0dGVyLgotICAg
IG9wdGlvbnMuY2dpX2RpcmVjdG9yaWVzID0gW10KLSAgICBvcHRpb25zLmlzX2V4ZWN1dGFibGVf
bWV0aG9kID0gTm9uZQotICAgIGlmIG9wdGlvbnMuY2dpX3BhdGhzOgotICAgICAgICBvcHRpb25z
LmNnaV9kaXJlY3RvcmllcyA9IG9wdGlvbnMuY2dpX3BhdGhzLnNwbGl0KCcsJykKLSAgICAgICAg
aWYgc3lzLnBsYXRmb3JtIGluICgnY3lnd2luJywgJ3dpbjMyJyk6Ci0gICAgICAgICAgICBjeWd3
aW5fcGF0aCA9IE5vbmUKLSAgICAgICAgICAgICMgRm9yIFdpbjMyIFB5dGhvbiwgaXQgaXMgZXhw
ZWN0ZWQgdGhhdCBDWUdXSU5fUEFUSAotICAgICAgICAgICAgIyBpcyBzZXQgdG8gYSBkaXJlY3Rv
cnkgb2YgY3lnd2luIGJpbmFyaWVzLgotICAgICAgICAgICAgIyBGb3IgZXhhbXBsZSwgd2Vic29j
a2V0X3NlcnZlci5weSBpbiBDaHJvbWl1bSBzZXRzIENZR1dJTl9QQVRIIHRvCi0gICAgICAgICAg
ICAjIGZ1bGwgcGF0aCBvZiB0aGlyZF9wYXJ0eS9jeWd3aW4vYmluLgotICAgICAgICAgICAgaWYg
J0NZR1dJTl9QQVRIJyBpbiBvcy5lbnZpcm9uOgotICAgICAgICAgICAgICAgIGN5Z3dpbl9wYXRo
ID0gb3MuZW52aXJvblsnQ1lHV0lOX1BBVEgnXQotICAgICAgICAgICAgdXRpbC53cmFwX3BvcGVu
M19mb3Jfd2luKGN5Z3dpbl9wYXRoKQotCi0gICAgICAgICAgICBkZWYgX19jaGVja19zY3JpcHQo
c2NyaXB0cGF0aCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHV0aWwuZ2V0X3NjcmlwdF9pbnRl
cnAoc2NyaXB0cGF0aCwgY3lnd2luX3BhdGgpCi0KLSAgICAgICAgICAgIG9wdGlvbnMuaXNfZXhl
Y3V0YWJsZV9tZXRob2QgPSBfX2NoZWNrX3NjcmlwdAotCi0gICAgaWYgb3B0aW9ucy51c2VfdGxz
OgotICAgICAgICBpZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlm
IF9pbXBvcnRfc3NsKCk6Ci0gICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RM
U19CWV9TVEFOREFSRF9NT0RVTEUKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2lu
ZyBzc2wgbW9kdWxlJykKLSAgICAgICAgICAgIGVsaWYgX2ltcG9ydF9weW9wZW5zc2woKToKLSAg
ICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUgPSBfVExTX0JZX1BZT1BFTlNTTAotICAg
ICAgICAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ1VzaW5nIHB5T3BlblNTTCBtb2R1bGUnKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAg
ICAgICAgICAgICAgICAgICAgJ1RMUyBzdXBwb3J0IHJlcXVpcmVzIHNzbCBvciBweU9wZW5TU0wg
bW9kdWxlLicpCi0gICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICAgICAgZWxpZiBvcHRp
b25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEU6Ci0gICAgICAgICAgICBp
ZiBub3QgX2ltcG9ydF9zc2woKToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdz
c2wgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUnKQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEp
Ci0gICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfUFlPUEVOU1NMOgot
ICAgICAgICAgICAgaWYgbm90IF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgICAgICAgICAgICAg
bG9nZ2luZy5jcml0aWNhbCgncHlPcGVuU1NMIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKLSAg
ICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbG9n
Z2luZy5jcml0aWNhbCgnSW52YWxpZCAtLXRscy1tb2R1bGUgb3B0aW9uOiAlcicsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSkKLSAgICAgICAgICAgIHN5
cy5leGl0KDEpCi0KLSAgICAgICAgaWYgbm90IG9wdGlvbnMucHJpdmF0ZV9rZXkgb3Igbm90IG9w
dGlvbnMuY2VydGlmaWNhdGU6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAg
ICAgICAgICAgICAgICAnVG8gdXNlIFRMUywgc3BlY2lmeSBwcml2YXRlX2tleSBhbmQgY2VydGlm
aWNhdGUuJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAgICAgaWYgKG9wdGlvbnMu
dGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsIGFuZAotICAgICAgICAgICAgbm90IG9wdGlvbnMudGxz
X2NsaWVudF9hdXRoKToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ0NsaWVudCBhdXRo
ZW50aWNhdGlvbiBtdXN0IGJlIGVuYWJsZWQgdG8gJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnc3BlY2lmeSB0bHNfY2xpZW50X2NlcnRfb3B0aW9uYWwnKQotICAgICAgICAgICAgc3lz
LmV4aXQoMSkKLSAgICBlbHNlOgotICAgICAgICBpZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdVc2UgLS10bHMtbW9kdWxlIG9w
dGlvbiBvbmx5IHRvZ2V0aGVyIHdpdGggJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
LS11c2UtdGxzIG9wdGlvbi4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBp
ZiBvcHRpb25zLnRsc19jbGllbnRfYXV0aDoKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwo
J1RMUyBtdXN0IGJlIGVuYWJsZWQgZm9yIGNsaWVudCBhdXRoZW50aWNhdGlvbi4nKQotICAgICAg
ICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBpZiBvcHRpb25zLnRsc19jbGllbnRfY2VydF9v
cHRpb25hbDoKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1RMUyBtdXN0IGJlIGVuYWJs
ZWQgZm9yIGNsaWVudCBhdXRoZW50aWNhdGlvbi4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkK
LQotICAgIGlmIG5vdCBvcHRpb25zLnNjYW5fZGlyOgotICAgICAgICBvcHRpb25zLnNjYW5fZGly
ID0gb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJzCi0KLSAgICBpZiBvcHRpb25zLnVzZV9iYXNpY19h
dXRoOgotICAgICAgICBvcHRpb25zLmJhc2ljX2F1dGhfY3JlZGVudGlhbCA9ICdCYXNpYyAnICsg
YmFzZTY0LmI2NGVuY29kZSgKLSAgICAgICAgICAgIG9wdGlvbnMuYmFzaWNfYXV0aF9jcmVkZW50
aWFsKQotCi0gICAgdHJ5OgotICAgICAgICBpZiBvcHRpb25zLnRocmVhZF9tb25pdG9yX2ludGVy
dmFsX2luX3NlYyA+IDA6Ci0gICAgICAgICAgICAjIFJ1biBhIHRocmVhZCBtb25pdG9yIHRvIHNo
b3cgdGhlIHN0YXR1cyBvZiBzZXJ2ZXIgdGhyZWFkcyBmb3IKLSAgICAgICAgICAgICMgZGVidWdn
aW5nLgotICAgICAgICAgICAgVGhyZWFkTW9uaXRvcihvcHRpb25zLnRocmVhZF9tb25pdG9yX2lu
dGVydmFsX2luX3NlYykuc3RhcnQoKQotCi0gICAgICAgIHNlcnZlciA9IFdlYlNvY2tldFNlcnZl
cihvcHRpb25zKQotICAgICAgICBzZXJ2ZXIuc2VydmVfZm9yZXZlcigpCi0gICAgZXhjZXB0IEV4
Y2VwdGlvbiwgZToKLSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnbW9kX3B5d2Vic29ja2V0OiAl
cycgJSBlKQotICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdtb2RfcHl3ZWJzb2NrZXQ6ICVzJyAl
IHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAgICAgIHN5cy5leGl0KDEpCi0KLQotaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBfbWFpbihzeXMuYXJndlsxOl0pCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFt
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3N0cmVhbS5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZWRjNTMzMjc5NzQ5N2I1ODBlM2I3ZWZmMmY4OGQxODhkNzA0MWYxMy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9t
b2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAot
IyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIGV4cG9ydHMgcHVibGljIHN5bWJvbHMu
Ci0iIiIKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9w
ZXJhdGlvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9y
dCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29j
a2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZFVURjhFeGNlcHRpb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oaXhpZTc1IGltcG9ydCBTdHJlYW1IaXhpZTc1
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IEZyYW1lCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW1PcHRpb25zCi0KLSMgVGhlc2UgbWV0aG9k
cyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSBXZWJTb2NrZXQgY2xpZW50IGRldmVsb3BlcnMg
dG8gaGF2ZQotIyB0aGVpciBpbXBsZW1lbnRhdGlvbnMgcmVjZWl2ZSBicm9rZW4gZGF0YSBpbiB0
ZXN0cy4KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Ns
b3NlX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0
ZV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRl
X2xlbmd0aF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQg
Y3JlYXRlX3BpbmdfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBv
cnQgY3JlYXRlX3BvbmdfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBp
bXBvcnQgY3JlYXRlX2JpbmFyeV9mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9o
eWJpIGltcG9ydCBjcmVhdGVfdGV4dF9mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVh
bV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keQotCi0KLSMgdmk6c3Rz
PTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvdXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDIyNGFlMzk0MmQ3ZmUyY2Y3N2I5ODg0OTVlZjZlMjhhMWJmNDhkYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3
ZWJzb2NrZXQvdXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQxNiArMCwwIEBACi0jIENvcHly
aWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0j
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi0iIiJXZWJTb2NrZXQgdXRpbGl0aWVzLgotIiIiCi0KLQotaW1wb3J0IGFy
cmF5Ci1pbXBvcnQgZXJybm8KLQotIyBJbXBvcnQgaGFzaCBjbGFzc2VzIGZyb20gYSBtb2R1bGUg
YXZhaWxhYmxlIGFuZCByZWNvbW1lbmRlZCBmb3IgZWFjaCBQeXRob24KLSMgdmVyc2lvbiBhbmQg
cmUtZXhwb3J0IHRob3NlIHN5bWJvbC4gVXNlIHNoYSBhbmQgbWQ1IG1vZHVsZSBpbiBQeXRob24g
Mi40LCBhbmQKLSMgaGFzaGxpYiBtb2R1bGUgaW4gUHl0aG9uIDIuNi4KLXRyeToKLSAgICBpbXBv
cnQgaGFzaGxpYgotICAgIG1kNV9oYXNoID0gaGFzaGxpYi5tZDUKLSAgICBzaGExX2hhc2ggPSBo
YXNobGliLnNoYTEKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBpbXBvcnQgbWQ1Ci0gICAgaW1w
b3J0IHNoYQotICAgIG1kNV9oYXNoID0gbWQ1Lm1kNQotICAgIHNoYTFfaGFzaCA9IHNoYS5zaGEK
LQotaW1wb3J0IFN0cmluZ0lPCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgcmUK
LWltcG9ydCBzb2NrZXQKLWltcG9ydCB0cmFjZWJhY2sKLWltcG9ydCB6bGliCi0KLXRyeToKLSAg
ICBmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgZmFzdF9tYXNraW5nCi1leGNlcHQgSW1wb3J0
RXJyb3I6Ci0gICAgcGFzcwotCi0KLWRlZiBnZXRfc3RhY2tfdHJhY2UoKToKLSAgICAiIiJHZXQg
dGhlIGN1cnJlbnQgc3RhY2sgdHJhY2UgYXMgc3RyaW5nLgotCi0gICAgVGhpcyBpcyBuZWVkZWQg
dG8gc3VwcG9ydCBQeXRob24gMi4zLgotICAgIFRPRE86IFJlbW92ZSB0aGlzIHdoZW4gd2Ugb25s
eSBzdXBwb3J0IFB5dGhvbiAyLjQgYW5kIGFib3ZlLgotICAgICAgICAgIFVzZSB0cmFjZWJhY2su
Zm9ybWF0X2V4YyBpbnN0ZWFkLgotICAgICIiIgotCi0gICAgb3V0ID0gU3RyaW5nSU8uU3RyaW5n
SU8oKQotICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1vdXQpCi0gICAgcmV0dXJuIG91dC5n
ZXR2YWx1ZSgpCi0KLQotZGVmIHByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24obWVzc2FnZSwg
ZXhjKToKLSAgICAiIiJQcmVwZW5kIG1lc3NhZ2UgdG8gdGhlIGV4Y2VwdGlvbi4iIiIKLQotICAg
IGV4Yy5hcmdzID0gKG1lc3NhZ2UgKyBzdHIoZXhjKSwpCi0gICAgcmV0dXJuCi0KLQotZGVmIF9f
dHJhbnNsYXRlX2ludGVycChpbnRlcnAsIGN5Z3dpbl9wYXRoKToKLSAgICAiIiJUcmFuc2xhdGUg
aW50ZXJwIHByb2dyYW0gcGF0aCBmb3IgV2luMzIgcHl0aG9uIHRvIHJ1biBjeWd3aW4gcHJvZ3Jh
bQotICAgIChlLmcuIHBlcmwpLiAgTm90ZSB0aGF0IGl0IGRvZXNuJ3Qgc3VwcG9ydCBwYXRoIHRo
YXQgY29udGFpbnMgc3BhY2UsCi0gICAgd2hpY2ggaXMgdHlwaWNhbGx5IHRydWUgZm9yIFVuaXgs
IHdoZXJlICMhLXNjcmlwdCBpcyB3cml0dGVuLgotICAgIEZvciBXaW4zMiBweXRob24sIGN5Z3dp
bl9wYXRoIGlzIGEgZGlyZWN0b3J5IG9mIGN5Z3dpbiBiaW5hcmllcy4KLQotICAgIEFyZ3M6Ci0g
ICAgICBpbnRlcnA6IGludGVycCBjb21tYW5kIGxpbmUKLSAgICAgIGN5Z3dpbl9wYXRoOiBkaXJl
Y3RvcnkgbmFtZSBvZiBjeWd3aW4gYmluYXJ5LCBvciBOb25lCi0gICAgUmV0dXJuczoKLSAgICAg
IHRyYW5zbGF0ZWQgaW50ZXJwIGNvbW1hbmQgbGluZS4KLSAgICAiIiIKLSAgICBpZiBub3QgY3ln
d2luX3BhdGg6Ci0gICAgICAgIHJldHVybiBpbnRlcnAKLSAgICBtID0gcmUubWF0Y2goJ15bXiBd
Ki8oW14gXSspKCAuKik/JywgaW50ZXJwKQotICAgIGlmIG06Ci0gICAgICAgIGNtZCA9IG9zLnBh
dGguam9pbihjeWd3aW5fcGF0aCwgbS5ncm91cCgxKSkKLSAgICAgICAgcmV0dXJuIGNtZCArIG0u
Z3JvdXAoMikKLSAgICByZXR1cm4gaW50ZXJwCi0KLQotZGVmIGdldF9zY3JpcHRfaW50ZXJwKHNj
cmlwdF9wYXRoLCBjeWd3aW5fcGF0aD1Ob25lKToKLSAgICAiIiJHZXRzICMhLWludGVycHJldGVy
IGNvbW1hbmQgbGluZSBmcm9tIHRoZSBzY3JpcHQuCi0KLSAgICBJdCBhbHNvIGZpeGVzIGNvbW1h
bmQgcGF0aC4gIFdoZW4gQ3lnd2luIFB5dGhvbiBpcyB1c2VkLCBlLmcuIGluIFdlYktpdCwKLSAg
ICBpdCBjb3VsZCBydW4gIi91c3IvYmluL3BlcmwgLXdUIGhlbGxvLnBsIi4KLSAgICBXaGVuIFdp
bjMyIFB5dGhvbiBpcyB1c2VkLCBlLmcuIGluIENocm9taXVtLCBpdCBjb3VsZG4ndC4gIFNvLCBm
aXgKLSAgICAiL3Vzci9iaW4vcGVybCIgdG8gIjxjeWd3aW5fcGF0aD5ccGVybC5leGUiLgotCi0g
ICAgQXJnczoKLSAgICAgIHNjcmlwdF9wYXRoOiBwYXRobmFtZSBvZiB0aGUgc2NyaXB0Ci0gICAg
ICBjeWd3aW5fcGF0aDogZGlyZWN0b3J5IG5hbWUgb2YgY3lnd2luIGJpbmFyeSwgb3IgTm9uZQot
ICAgIFJldHVybnM6Ci0gICAgICAjIS1pbnRlcnByZXRlciBjb21tYW5kIGxpbmUsIG9yIE5vbmUg
aWYgaXQgaXMgbm90ICMhLXNjcmlwdC4KLSAgICAiIiIKLSAgICBmcCA9IG9wZW4oc2NyaXB0X3Bh
dGgpCi0gICAgbGluZSA9IGZwLnJlYWRsaW5lKCkKLSAgICBmcC5jbG9zZSgpCi0gICAgbSA9IHJl
Lm1hdGNoKCdeIyEoLiopJywgbGluZSkKLSAgICBpZiBtOgotICAgICAgICByZXR1cm4gX190cmFu
c2xhdGVfaW50ZXJwKG0uZ3JvdXAoMSksIGN5Z3dpbl9wYXRoKQotICAgIHJldHVybiBOb25lCi0K
LQotZGVmIHdyYXBfcG9wZW4zX2Zvcl93aW4oY3lnd2luX3BhdGgpOgotICAgICIiIldyYXAgcG9w
ZW4zIHRvIHN1cHBvcnQgIyEtc2NyaXB0IG9uIFdpbmRvd3MuCi0KLSAgICBBcmdzOgotICAgICAg
Y3lnd2luX3BhdGg6ICBwYXRoIGZvciBjeWd3aW4gYmluYXJ5IGlmIGNvbW1hbmQgcGF0aCBpcyBu
ZWVkZWQgdG8gYmUKLSAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZC4gIE5vbmUgaWYgbm8g
dHJhbnNsYXRpb24gcmVxdWlyZWQuCi0gICAgIiIiCi0KLSAgICBfX29yaWdfcG9wZW4zID0gb3Mu
cG9wZW4zCi0KLSAgICBkZWYgX193cmFwX3BvcGVuMyhjbWQsIG1vZGU9J3QnLCBidWZzaXplPS0x
KToKLSAgICAgICAgY21kbGluZSA9IGNtZC5zcGxpdCgnICcpCi0gICAgICAgIGludGVycCA9IGdl
dF9zY3JpcHRfaW50ZXJwKGNtZGxpbmVbMF0sIGN5Z3dpbl9wYXRoKQotICAgICAgICBpZiBpbnRl
cnA6Ci0gICAgICAgICAgICBjbWQgPSBpbnRlcnAgKyAnICcgKyBjbWQKLSAgICAgICAgcmV0dXJu
IF9fb3JpZ19wb3BlbjMoY21kLCBtb2RlLCBidWZzaXplKQotCi0gICAgb3MucG9wZW4zID0gX193
cmFwX3BvcGVuMwotCi0KLWRlZiBoZXhpZnkocyk6Ci0gICAgcmV0dXJuICcgJy5qb2luKG1hcChs
YW1iZGEgeDogJyUwMngnICUgb3JkKHgpLCBzKSkKLQotCi1kZWYgZ2V0X2NsYXNzX2xvZ2dlcihv
KToKLSAgICByZXR1cm4gbG9nZ2luZy5nZXRMb2dnZXIoCi0gICAgICAgICclcy4lcycgJSAoby5f
X2NsYXNzX18uX19tb2R1bGVfXywgby5fX2NsYXNzX18uX19uYW1lX18pKQotCi0KLWNsYXNzIE5v
b3BNYXNrZXIob2JqZWN0KToKLSAgICAiIiJBIG1hc2tpbmcgb2JqZWN0IHRoYXQgaGFzIHRoZSBz
YW1lIGludGVyZmFjZSBhcyBSZXBlYXRlZFhvck1hc2tlciBidXQKLSAgICBqdXN0IHJldHVybnMg
dGhlIHN0cmluZyBwYXNzZWQgaW4gd2l0aG91dCBtYWtpbmcgYW55IGNoYW5nZS4KLSAgICAiIiIK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIG1hc2so
c2VsZiwgcyk6Ci0gICAgICAgIHJldHVybiBzCi0KLQotY2xhc3MgUmVwZWF0ZWRYb3JNYXNrZXIo
b2JqZWN0KToKLSAgICAiIiJBIG1hc2tpbmcgb2JqZWN0IHRoYXQgYXBwbGllcyBYT1Igb24gdGhl
IHN0cmluZyBnaXZlbiB0byBtYXNrIG1ldGhvZAotICAgIHdpdGggdGhlIG1hc2tpbmcgYnl0ZXMg
Z2l2ZW4gdG8gdGhlIGNvbnN0cnVjdG9yIHJlcGVhdGVkbHkuIFRoaXMgb2JqZWN0Ci0gICAgcmVt
ZW1iZXJzIHRoZSBwb3NpdGlvbiBpbiB0aGUgbWFza2luZyBieXRlcyB0aGUgbGFzdCBtYXNrIG1l
dGhvZCBjYWxsCi0gICAgZW5kZWQgYW5kIHJlc3VtZXMgZnJvbSB0aGF0IHBvaW50IG9uIHRoZSBu
ZXh0IG1hc2sgbWV0aG9kIGNhbGwuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
bWFza2luZ19rZXkpOgotICAgICAgICBzZWxmLl9tYXNraW5nX2tleSA9IG1hc2tpbmdfa2V5Ci0g
ICAgICAgIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4ID0gMAotCi0gICAgZGVmIF9tYXNrX3VzaW5n
X3N3aWcoc2VsZiwgcyk6Ci0gICAgICAgIG1hc2tlZF9kYXRhID0gZmFzdF9tYXNraW5nLm1hc2so
Ci0gICAgICAgICAgICAgICAgcywgc2VsZi5fbWFza2luZ19rZXksIHNlbGYuX21hc2tpbmdfa2V5
X2luZGV4KQotICAgICAgICBzZWxmLl9tYXNraW5nX2tleV9pbmRleCA9ICgKLSAgICAgICAgICAg
ICAgICAoc2VsZi5fbWFza2luZ19rZXlfaW5kZXggKyBsZW4ocykpICUgbGVuKHNlbGYuX21hc2tp
bmdfa2V5KSkKLSAgICAgICAgcmV0dXJuIG1hc2tlZF9kYXRhCi0KLSAgICBkZWYgX21hc2tfdXNp
bmdfYXJyYXkoc2VsZiwgcyk6Ci0gICAgICAgIHJlc3VsdCA9IGFycmF5LmFycmF5KCdCJykKLSAg
ICAgICAgcmVzdWx0LmZyb21zdHJpbmcocykKLQotICAgICAgICAjIFVzZSB0ZW1wb3JhcnkgbG9j
YWwgdmFyaWFibGVzIHRvIGVsaW1pbmF0ZSB0aGUgY29zdCB0byBhY2Nlc3MKLSAgICAgICAgIyBh
dHRyaWJ1dGVzCi0gICAgICAgIG1hc2tpbmdfa2V5ID0gbWFwKG9yZCwgc2VsZi5fbWFza2luZ19r
ZXkpCi0gICAgICAgIG1hc2tpbmdfa2V5X3NpemUgPSBsZW4obWFza2luZ19rZXkpCi0gICAgICAg
IG1hc2tpbmdfa2V5X2luZGV4ID0gc2VsZi5fbWFza2luZ19rZXlfaW5kZXgKLQotICAgICAgICBm
b3IgaSBpbiB4cmFuZ2UobGVuKHJlc3VsdCkpOgotICAgICAgICAgICAgcmVzdWx0W2ldIF49IG1h
c2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XQotICAgICAgICAgICAgbWFza2luZ19rZXlfaW5k
ZXggPSAobWFza2luZ19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdfa2V5X3NpemUKLQotICAgICAg
ICBzZWxmLl9tYXNraW5nX2tleV9pbmRleCA9IG1hc2tpbmdfa2V5X2luZGV4Ci0KLSAgICAgICAg
cmV0dXJuIHJlc3VsdC50b3N0cmluZygpCi0KLSAgICBpZiAnZmFzdF9tYXNraW5nJyBpbiBnbG9i
YWxzKCk6Ci0gICAgICAgIG1hc2sgPSBfbWFza191c2luZ19zd2lnCi0gICAgZWxzZToKLSAgICAg
ICAgbWFzayA9IF9tYXNrX3VzaW5nX2FycmF5Ci0KLQotIyBCeSBtYWtpbmcgd2JpdHMgb3B0aW9u
IG5lZ2F0aXZlLCB3ZSBjYW4gc3VwcHJlc3MgQ01GL0ZMRyAoMiBvY3RldCkgYW5kCi0jIEFETEVS
MzIgKDQgb2N0ZXQpIGZpZWxkcyBvZiB6bGliIHNvIHRoYXQgd2UgY2FuIHVzZSB6bGliIG1vZHVs
ZSBqdXN0IGFzCi0jIGRlZmxhdGUgbGlicmFyeS4gRElDVElEIHdvbid0IGJlIGFkZGVkIGFzIGZh
ciBhcyB3ZSBkb24ndCBzZXQgZGljdGlvbmFyeS4KLSMgTFo3NyB3aW5kb3cgb2YgMzJLIHdpbGwg
YmUgdXNlZCBmb3IgYm90aCBjb21wcmVzc2lvbiBhbmQgZGVjb21wcmVzc2lvbi4KLSMgRm9yIGRl
Y29tcHJlc3Npb24sIHdlIGNhbiBqdXN0IHVzZSAzMksgdG8gY292ZXIgYW55IHdpbmRvd3Mgc2l6
ZS4gRm9yCi0jIGNvbXByZXNzaW9uLCB3ZSB1c2UgMzJLIHNvIHJlY2VpdmVycyBtdXN0IHVzZSAz
MksuCi0jCi0jIENvbXByZXNzaW9uIGxldmVsIGlzIFpfREVGQVVMVF9DT01QUkVTU0lPTi4gV2Ug
ZG9uJ3QgaGF2ZSB0byBtYXRjaCBsZXZlbAotIyB0byBkZWNvZGUuCi0jCi0jIFNlZSB6Y29uZi5o
LCBkZWZsYXRlLmNjLCBpbmZsYXRlLmNjIG9mIHpsaWIgbGlicmFyeSwgYW5kIHpsaWJtb2R1bGUu
YyBvZgotIyBQeXRob24uIFNlZSBhbHNvIFJGQzE5NTAgKFpMSUIgMy4zKS4KLQotCi1jbGFzcyBf
RGVmbGF0ZXIob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3dfYml0cyk6
Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IGdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAg
ICBzZWxmLl9jb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpf
REVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXdpbmRvd19iaXRzKQotCi0gICAg
ZGVmIGNvbXByZXNzKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgY29tcHJlc3NlZF9ieXRlcyA9IHNl
bGYuX2NvbXByZXNzLmNvbXByZXNzKGJ5dGVzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J0NvbXByZXNzIGlucHV0ICVyJywgYnl0ZXMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
Q29tcHJlc3MgcmVzdWx0ICVyJywgY29tcHJlc3NlZF9ieXRlcykKLSAgICAgICAgcmV0dXJuIGNv
bXByZXNzZWRfYnl0ZXMKLQotICAgIGRlZiBjb21wcmVzc19hbmRfZmx1c2goc2VsZiwgYnl0ZXMp
OgotICAgICAgICBjb21wcmVzc2VkX2J5dGVzID0gc2VsZi5fY29tcHJlc3MuY29tcHJlc3MoYnl0
ZXMpCi0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgKz0gc2VsZi5fY29tcHJlc3MuZmx1c2goemxp
Yi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgaW5w
dXQgJXInLCBieXRlcykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyByZXN1
bHQgJXInLCBjb21wcmVzc2VkX2J5dGVzKQotICAgICAgICByZXR1cm4gY29tcHJlc3NlZF9ieXRl
cwotCi0gICAgZGVmIGNvbXByZXNzX2FuZF9maW5pc2goc2VsZiwgYnl0ZXMpOgotICAgICAgICBj
b21wcmVzc2VkX2J5dGVzID0gc2VsZi5fY29tcHJlc3MuY29tcHJlc3MoYnl0ZXMpCi0gICAgICAg
IGNvbXByZXNzZWRfYnl0ZXMgKz0gc2VsZi5fY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkK
LSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyBpbnB1dCAlcicsIGJ5dGVzKQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIHJlc3VsdCAlcicsIGNvbXByZXNz
ZWRfYnl0ZXMpCi0gICAgICAgIHJldHVybiBjb21wcmVzc2VkX2J5dGVzCi0KLQotY2xhc3MgX0lu
ZmxhdGVyKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93X2JpdHMpOgot
ICAgICAgICBzZWxmLl9sb2dnZXIgPSBnZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNl
bGYuX3dpbmRvd19iaXRzID0gd2luZG93X2JpdHMKLQotICAgICAgICBzZWxmLl91bmNvbnN1bWVk
ID0gJycKLQotICAgICAgICBzZWxmLnJlc2V0KCkKLQotICAgIGRlZiBkZWNvbXByZXNzKHNlbGYs
IHNpemUpOgotICAgICAgICBpZiBub3QgKHNpemUgPT0gLTEgb3Igc2l6ZSA+IDApOgotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdzaXplIG11c3QgYmUgLTEgb3IgcG9zaXRpdmUnKQotCi0g
ICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBpZiBz
aXplID09IC0xOgotICAgICAgICAgICAgICAgIGRhdGEgKz0gc2VsZi5fZGVjb21wcmVzcy5kZWNv
bXByZXNzKHNlbGYuX3VuY29uc3VtZWQpCi0gICAgICAgICAgICAgICAgIyBTZWUgUHl0aG9uIGJ1
ZyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTIwNTAgdG8KLSAgICAgICAgICAgICAgICAj
IHVuZGVyc3RhbmQgd2h5IHRoZSBzYW1lIGNvZGUgY2Fubm90IGJlIHVzZWQgZm9yIHVwZGF0aW5n
Ci0gICAgICAgICAgICAgICAgIyBzZWxmLl91bmNvbnN1bWVkIGZvciBoZXJlIGFuZCBlbHNlIGJs
b2NrLgotICAgICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSAnJwotICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICBkYXRhICs9IHNlbGYuX2RlY29tcHJlc3MuZGVjb21wcmVz
cygKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCwgc2l6ZSAtIGxlbihkYXRh
KSkKLSAgICAgICAgICAgICAgICBzZWxmLl91bmNvbnN1bWVkID0gc2VsZi5fZGVjb21wcmVzcy51
bmNvbnN1bWVkX3RhaWwKLSAgICAgICAgICAgIGlmIHNlbGYuX2RlY29tcHJlc3MudW51c2VkX2Rh
dGE6Ci0gICAgICAgICAgICAgICAgIyBFbmNvdW50ZXJlZCBhIGxhc3QgYmxvY2sgKGkuZS4gYSBi
bG9jayB3aXRoIEJGSU5BTCA9IDEpIGFuZAotICAgICAgICAgICAgICAgICMgZm91bmQgYSBuZXcg
c3RyZWFtICh1bnVzZWRfZGF0YSkuIFdlIGNhbm5vdCB1c2UgdGhlIHNhbWUKLSAgICAgICAgICAg
ICAgICAjIHpsaWIuRGVjb21wcmVzcyBvYmplY3QgZm9yIHRoZSBuZXcgc3RyZWFtLiBDcmVhdGUg
YSBuZXcKLSAgICAgICAgICAgICAgICAjIERlY29tcHJlc3Mgb2JqZWN0IHRvIGRlY29tcHJlc3Mg
dGhlIG5ldyBvbmUuCi0gICAgICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgICMgSXQncyBm
aW5lIHRvIGlnbm9yZSB1bmNvbnN1bWVkX3RhaWwgaWYgdW51c2VkX2RhdGEgaXMgbm90Ci0gICAg
ICAgICAgICAgICAgIyBlbXB0eS4KLSAgICAgICAgICAgICAgICBzZWxmLl91bmNvbnN1bWVkID0g
c2VsZi5fZGVjb21wcmVzcy51bnVzZWRfZGF0YQotICAgICAgICAgICAgICAgIHNlbGYucmVzZXQo
KQotICAgICAgICAgICAgICAgIGlmIHNpemUgPj0gMCBhbmQgbGVuKGRhdGEpID09IHNpemU6Ci0g
ICAgICAgICAgICAgICAgICAgICMgZGF0YSBpcyBmaWxsZWQuIERvbid0IGNhbGwgZGVjb21wcmVz
cyBhZ2Fpbi4KLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgICAgICAjIFJlLWludm9rZSBEZWNvbXByZXNzLmRlY29tcHJlc3Mg
dG8gdHJ5IHRvIGRlY29tcHJlc3MgYWxsCi0gICAgICAgICAgICAgICAgICAgICMgYXZhaWxhYmxl
IGJ5dGVzIGJlZm9yZSBpbnZva2luZyByZWFkIHdoaWNoIGJsb2NrcyB1bnRpbAotICAgICAgICAg
ICAgICAgICAgICAjIGFueSBuZXcgYnl0ZSBpcyBhdmFpbGFibGUuCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgSGVyZSwg
c2luY2UgdW51c2VkX2RhdGEgaXMgZW1wdHksIGV2ZW4gaWYgdW5jb25zdW1lZF90YWlsIGlzCi0g
ICAgICAgICAgICAgICAgIyBub3QgZW1wdHksIGJ5dGVzIG9mIHJlcXVlc3RlZCBsZW5ndGggYXJl
IGFscmVhZHkgaW4gZGF0YS4gV2UKLSAgICAgICAgICAgICAgICAjIGRvbid0IGhhdmUgdG8gImNv
bnRpbnVlIiBoZXJlLgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgZGF0YToK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRGVjb21wcmVzc2VkICVyJywgZGF0YSkK
LSAgICAgICAgcmV0dXJuIGRhdGEKLQotICAgIGRlZiBhcHBlbmQoc2VsZiwgZGF0YSk6Ci0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQXBwZW5kZWQgJXInLCBkYXRhKQotICAgICAgICBzZWxm
Ll91bmNvbnN1bWVkICs9IGRhdGEKLQotICAgIGRlZiByZXNldChzZWxmKToKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdSZXNldCcpCi0gICAgICAgIHNlbGYuX2RlY29tcHJlc3MgPSB6bGli
LmRlY29tcHJlc3NvYmooLXNlbGYuX3dpbmRvd19iaXRzKQotCi0KLSMgQ29tcHJlc3Nlcy9kZWNv
bXByZXNzZXMgZ2l2ZW4gb2N0ZXRzIHVzaW5nIHRoZSBtZXRob2QgaW50cm9kdWNlZCBpbiBSRkMx
OTc5LgotCi0KLWNsYXNzIF9SRkMxOTc5RGVmbGF0ZXIob2JqZWN0KToKLSAgICAiIiJBIGNvbXBy
ZXNzb3IgY2xhc3MgdGhhdCBhcHBsaWVzIERFRkxBVEUgdG8gZ2l2ZW4gYnl0ZSBzZXF1ZW5jZSBh
bmQKLSAgICBmbHVzaGVzIHVzaW5nIHRoZSBhbGdvcml0aG0gZGVzY3JpYmVkIGluIHRoZSBSRkMx
OTc5IHNlY3Rpb24gMi4xLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRv
d19iaXRzLCBub19jb250ZXh0X3Rha2VvdmVyKToKLSAgICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBO
b25lCi0gICAgICAgIGlmIHdpbmRvd19iaXRzIGlzIE5vbmU6Ci0gICAgICAgICAgICB3aW5kb3df
Yml0cyA9IHpsaWIuTUFYX1dCSVRTCi0gICAgICAgIHNlbGYuX3dpbmRvd19iaXRzID0gd2luZG93
X2JpdHMKLSAgICAgICAgc2VsZi5fbm9fY29udGV4dF90YWtlb3ZlciA9IG5vX2NvbnRleHRfdGFr
ZW92ZXIKLQotICAgIGRlZiBmaWx0ZXIoc2VsZiwgYnl0ZXMsIGVuZD1UcnVlLCBiZmluYWw9RmFs
c2UpOgotICAgICAgICBpZiBzZWxmLl9kZWZsYXRlciBpcyBOb25lOgotICAgICAgICAgICAgc2Vs
Zi5fZGVmbGF0ZXIgPSBfRGVmbGF0ZXIoc2VsZi5fd2luZG93X2JpdHMpCi0KLSAgICAgICAgaWYg
YmZpbmFsOgotICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5fZGVmbGF0ZXIuY29tcHJlc3NfYW5k
X2ZpbmlzaChieXRlcykKLSAgICAgICAgICAgICMgQWRkIGEgcGFkZGluZyBibG9jayB3aXRoIEJG
SU5BTCA9IDAgYW5kIEJUWVBFID0gMC4KLSAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIGNo
cigwKQotICAgICAgICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBOb25lCi0gICAgICAgICAgICByZXR1
cm4gcmVzdWx0Ci0KLSAgICAgICAgcmVzdWx0ID0gc2VsZi5fZGVmbGF0ZXIuY29tcHJlc3NfYW5k
X2ZsdXNoKGJ5dGVzKQotICAgICAgICBpZiBlbmQ6Ci0gICAgICAgICAgICAjIFN0cmlwIGxhc3Qg
NCBvY3RldHMgd2hpY2ggaXMgTEVOIGFuZCBOTEVOIGZpZWxkIG9mIGEKLSAgICAgICAgICAgICMg
bm9uLWNvbXByZXNzZWQgYmxvY2sgYWRkZWQgZm9yIFpfU1lOQ19GTFVTSC4KLSAgICAgICAgICAg
IHJlc3VsdCA9IHJlc3VsdFs6LTRdCi0KLSAgICAgICAgaWYgc2VsZi5fbm9fY29udGV4dF90YWtl
b3ZlciBhbmQgZW5kOgotICAgICAgICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBOb25lCi0KLSAgICAg
ICAgcmV0dXJuIHJlc3VsdAotCi0KLWNsYXNzIF9SRkMxOTc5SW5mbGF0ZXIob2JqZWN0KToKLSAg
ICAiIiJBIGRlY29tcHJlc3NvciBjbGFzcyBmb3IgYnl0ZSBzZXF1ZW5jZSBjb21wcmVzc2VkIGFu
ZCBmbHVzaGVkIGZvbGxvd2luZwotICAgIHRoZSBhbGdvcml0aG0gZGVzY3JpYmVkIGluIHRoZSBS
RkMxOTc5IHNlY3Rpb24gMi4xLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHdp
bmRvd19iaXRzPXpsaWIuTUFYX1dCSVRTKToKLSAgICAgICAgc2VsZi5faW5mbGF0ZXIgPSBfSW5m
bGF0ZXIod2luZG93X2JpdHMpCi0KLSAgICBkZWYgZmlsdGVyKHNlbGYsIGJ5dGVzKToKLSAgICAg
ICAgIyBSZXN0b3JlIHN0cmlwcGVkIExFTiBhbmQgTkxFTiBmaWVsZCBvZiBhIG5vbi1jb21wcmVz
c2VkIGJsb2NrIGFkZGVkCi0gICAgICAgICMgZm9yIFpfU1lOQ19GTFVTSC4KLSAgICAgICAgc2Vs
Zi5faW5mbGF0ZXIuYXBwZW5kKGJ5dGVzICsgJ1x4MDBceDAwXHhmZlx4ZmYnKQotICAgICAgICBy
ZXR1cm4gc2VsZi5faW5mbGF0ZXIuZGVjb21wcmVzcygtMSkKLQotCi1jbGFzcyBEZWZsYXRlU29j
a2V0KG9iamVjdCk6Ci0gICAgIiIiQSB3cmFwcGVyIGNsYXNzIGZvciBzb2NrZXQgb2JqZWN0IHRv
IGludGVyY2VwdCBzZW5kIGFuZCByZWN2IHRvIHBlcmZvcm0KLSAgICBkZWZsYXRlIGNvbXByZXNz
aW9uIGFuZCBkZWNvbXByZXNzaW9uIHRyYW5zcGFyZW50bHkuCi0gICAgIiIiCi0KLSAgICAjIFNp
emUgb2YgdGhlIGJ1ZmZlciBwYXNzZWQgdG8gcmVjdiB0byByZWNlaXZlIGNvbXByZXNzZWQgZGF0
YS4KLSAgICBfUkVDVl9TSVpFID0gNDA5NgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tl
dCk6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ciA9IGdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9kZWZsYXRlciA9IF9E
ZWZsYXRlcih6bGliLk1BWF9XQklUUykKLSAgICAgICAgc2VsZi5faW5mbGF0ZXIgPSBfSW5mbGF0
ZXIoemxpYi5NQVhfV0JJVFMpCi0KLSAgICBkZWYgcmVjdihzZWxmLCBzaXplKToKLSAgICAgICAg
IiIiUmVjZWl2ZXMgZGF0YSBmcm9tIHRoZSBzb2NrZXQgc3BlY2lmaWVkIG9uIHRoZSBjb25zdHJ1
Y3Rpb24gdXAKLSAgICAgICAgdG8gdGhlIHNwZWNpZmllZCBzaXplLiBPbmNlIGFueSBkYXRhIGlz
IGF2YWlsYWJsZSwgcmV0dXJucyBpdCBldmVuCi0gICAgICAgIGlmIGl0J3Mgc21hbGxlciB0aGFu
IHRoZSBzcGVjaWZpZWQgc2l6ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBUT0RPKHR5b3No
aW5vKTogQWxsb3cgY2FsbCB3aXRoIHNpemU9MC4gSXQgc2hvdWxkIGJsb2NrIHVudGlsIGFueQot
ICAgICAgICAjIGRlY29tcHJlc3NlZCBkYXRhIGlzIGF2YWlsYWJsZS4KLSAgICAgICAgaWYgc2l6
ZSA8PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdOb24tcG9zaXRpdmUgc2l6ZSBw
YXNzZWQnKQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2lu
ZmxhdGVyLmRlY29tcHJlc3Moc2l6ZSkKLSAgICAgICAgICAgIGlmIGxlbihkYXRhKSAhPSAwOgot
ICAgICAgICAgICAgICAgIHJldHVybiBkYXRhCi0KLSAgICAgICAgICAgIHJlYWRfZGF0YSA9IHNl
bGYuX3NvY2tldC5yZWN2KERlZmxhdGVTb2NrZXQuX1JFQ1ZfU0laRSkKLSAgICAgICAgICAgIGlm
IG5vdCByZWFkX2RhdGE6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICcnCi0gICAgICAgICAgICBz
ZWxmLl9pbmZsYXRlci5hcHBlbmQocmVhZF9kYXRhKQotCi0gICAgZGVmIHNlbmRhbGwoc2VsZiwg
Ynl0ZXMpOgotICAgICAgICBzZWxmLnNlbmQoYnl0ZXMpCi0KLSAgICBkZWYgc2VuZChzZWxmLCBi
eXRlcyk6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHNlbGYuX2RlZmxhdGVyLmNvbXBy
ZXNzX2FuZF9mbHVzaChieXRlcykpCi0gICAgICAgIHJldHVybiBsZW4oYnl0ZXMpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3OWRmMzU5OThkMTE1MWIzYjA5OGEwNWEwYjFj
ODc5ZDQyNTJkODcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMzMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19faW5p
dF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1fYmFzZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2hpeGllNzUucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3
ZWJzb2NrZXQvX3N0cmVhbV9oeWJpLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2NvbW1v
bi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2Zh
c3RfbWFza2luZy5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRs
ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJfdXRpbC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9w
eXdlYnNvY2tldC9tc2d1dGlsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L211eC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5
d2Vic29ja2V0L3N0cmVhbS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC91dGlsLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3hocl9iZW5jaG1hcmtfaGFuZGxlci5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3hocl9iZW5jaG1hcmtfaGFuZGxlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3MzVjN2UyYTNkYjhkYzdjNDNmZDE3MjAxNDk1ZDQz
NWNjZTY4Y2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3hocl9iZW5jaG1hcmtfaGFuZGxlci5weQorKysgL2Rl
di9udWxsCkBAIC0xLDEwOSArMCwwIEBACi0jIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGEgQlNELXN0eWxlCi0jIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENP
UFlJTkcgZmlsZSBvciBhdAotIyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNv
dXJjZS9saWNlbnNlcy9ic2QKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAot
Ci0KLWNsYXNzIFhIUkJlbmNobWFya0hhbmRsZXIob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgaGVhZGVycywgcmZpbGUsIHdmaWxlKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRp
bC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5oZWFkZXJzID0gaGVhZGVy
cwotICAgICAgICBzZWxmLnJmaWxlID0gcmZpbGUKLSAgICAgICAgc2VsZi53ZmlsZSA9IHdmaWxl
Ci0KLSAgICBkZWYgZG9fc2VuZChzZWxmKToKLSAgICAgICAgY29udGVudF9sZW5ndGggPSBpbnQo
c2VsZi5oZWFkZXJzLmdldGhlYWRlcignQ29udGVudC1MZW5ndGgnKSkKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ1JlcXVlc3RlZCB0byByZWNlaXZlICVzIGJ5dGVzJywgY29udGVudF9s
ZW5ndGgpCi0KLSAgICAgICAgUkVDRUlWRV9CTE9DS19TSVpFID0gMTAyNCAqIDEwMjQKLQotICAg
ICAgICBieXRlc190b19yZWNlaXZlID0gY29udGVudF9sZW5ndGgKLSAgICAgICAgd2hpbGUgYnl0
ZXNfdG9fcmVjZWl2ZSA+IDA6Ci0gICAgICAgICAgICBieXRlc190b19yZWNlaXZlX2luX3RoaXNf
bG9vcCA9IGJ5dGVzX3RvX3JlY2VpdmUKLSAgICAgICAgICAgIGlmIGJ5dGVzX3RvX3JlY2VpdmVf
aW5fdGhpc19sb29wID4gUkVDRUlWRV9CTE9DS19TSVpFOgotICAgICAgICAgICAgICAgIGJ5dGVz
X3RvX3JlY2VpdmVfaW5fdGhpc19sb29wID0gUkVDRUlWRV9CTE9DS19TSVpFCi0gICAgICAgICAg
ICByZWNlaXZlZF9kYXRhID0gc2VsZi5yZmlsZS5yZWFkKGJ5dGVzX3RvX3JlY2VpdmVfaW5fdGhp
c19sb29wKQotICAgICAgICAgICAgaWYgcmVjZWl2ZWRfZGF0YSAhPSAoJ2EnICogYnl0ZXNfdG9f
cmVjZWl2ZV9pbl90aGlzX2xvb3ApOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnUmVxdWVzdCBib2R5IHZlcmlmaWNhdGlvbiBmYWlsZWQnKQotICAgICAgICAgICAgICAgIHJl
dHVybgotICAgICAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZSAtPSBsZW4ocmVjZWl2ZWRfZGF0YSkK
LSAgICAgICAgaWYgYnl0ZXNfdG9fcmVjZWl2ZSA8IDA6Ci0gICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ1JlY2VpdmVkICVkIG1vcmUgYnl0ZXMgdGhhbiBleHBlY3RlZCcgJQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICgtYnl0ZXNfdG9fcmVjZWl2ZSkpCi0gICAgICAgICAg
ICByZXR1cm4KLQotICAgICAgICAjIFJldHVybiB0aGUgbnVtYmVyIG9mIHJlY2VpdmVkIGJ5dGVz
IGJhY2sgdG8gdGhlIGNsaWVudC4KLSAgICAgICAgcmVzcG9uc2VfYm9keSA9ICclZCcgJSBjb250
ZW50X2xlbmd0aAotICAgICAgICBzZWxmLndmaWxlLndyaXRlKAotICAgICAgICAgICAgJ0hUVFAv
MS4xIDIwMCBPS1xyXG4nCi0gICAgICAgICAgICAnQ29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxu
JwotICAgICAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoOiAlZFxyXG4nCi0gICAgICAgICAgICAnXHJc
biVzJyAlIChsZW4ocmVzcG9uc2VfYm9keSksIHJlc3BvbnNlX2JvZHkpKQotICAgICAgICBzZWxm
LndmaWxlLmZsdXNoKCkKLQotICAgIGRlZiBkb19yZWNlaXZlKHNlbGYpOgotICAgICAgICBjb250
ZW50X2xlbmd0aCA9IGludChzZWxmLmhlYWRlcnMuZ2V0aGVhZGVyKCdDb250ZW50LUxlbmd0aCcp
KQotICAgICAgICByZXF1ZXN0X2JvZHkgPSBzZWxmLnJmaWxlLnJlYWQoY29udGVudF9sZW5ndGgp
Ci0KLSAgICAgICAgcmVxdWVzdF9hcnJheSA9IHJlcXVlc3RfYm9keS5zcGxpdCgnICcpCi0gICAg
ICAgIGlmIGxlbihyZXF1ZXN0X2FycmF5KSA8IDI6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ01hbGZvcm1lZCByZXF1ZXN0IGJvZHk6ICVyJywgcmVxdWVzdF9ib2R5KQotICAgICAg
ICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBQYXJzZSB0aGUgc2l6ZSBwYXJhbWV0ZXIuCi0gICAg
ICAgIGJ5dGVzX3RvX3NlbmQgPSByZXF1ZXN0X2FycmF5WzBdCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGJ5dGVzX3RvX3NlbmQgPSBpbnQoYnl0ZXNfdG9fc2VuZCkKLSAgICAgICAgZXhjZXB0
IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ01hbGZvcm1l
ZCBzaXplIHBhcmFtZXRlcjogJXInLCBieXRlc190b19zZW5kKQotICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVxdWVzdGVkIHRvIHNlbmQgJXMgYnl0ZXMn
LCBieXRlc190b19zZW5kKQotCi0gICAgICAgICMgUGFyc2UgdGhlIHRyYW5zZmVyIGVuY29kaW5n
IHBhcmFtZXRlci4KLSAgICAgICAgY2h1bmtlZF9tb2RlID0gRmFsc2UKLSAgICAgICAgbW9kZV9w
YXJhbWV0ZXIgPSByZXF1ZXN0X2FycmF5WzFdCi0gICAgICAgIGlmIG1vZGVfcGFyYW1ldGVyID09
ICdjaHVua2VkJzoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVxdWVzdGVkIGNo
dW5rZWQgdHJhbnNmZXIgZW5jb2RpbmcnKQotICAgICAgICAgICAgY2h1bmtlZF9tb2RlID0gVHJ1
ZQotICAgICAgICBlbGlmIG1vZGVfcGFyYW1ldGVyICE9ICdub25lJzoKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnSW52YWxpZCBtb2RlIHBhcmFtZXRlcjogJXInLCBtb2RlX3BhcmFt
ZXRlcikKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgV3JpdGUgYSBoZWFkZXIKLSAg
ICAgICAgcmVzcG9uc2VfaGVhZGVyID0gKAotICAgICAgICAgICAgJ0hUVFAvMS4xIDIwMCBPS1xy
XG4nCi0gICAgICAgICAgICAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1c
clxuJykKLSAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgotICAgICAgICAgICAgcmVzcG9uc2VfaGVh
ZGVyICs9ICdUcmFuc2Zlci1FbmNvZGluZzogY2h1bmtlZFxyXG5cclxuJwotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyICs9ICgKLSAgICAgICAgICAgICAgICAnQ29u
dGVudC1MZW5ndGg6ICVkXHJcblxyXG4nICUgYnl0ZXNfdG9fc2VuZCkKLSAgICAgICAgc2VsZi53
ZmlsZS53cml0ZShyZXNwb25zZV9oZWFkZXIpCi0gICAgICAgIHNlbGYud2ZpbGUuZmx1c2goKQot
Ci0gICAgICAgICMgV3JpdGUgYSBib2R5Ci0gICAgICAgIFNFTkRfQkxPQ0tfU0laRSA9IDEwMjQg
KiAxMDI0Ci0KLSAgICAgICAgd2hpbGUgYnl0ZXNfdG9fc2VuZCA+IDA6Ci0gICAgICAgICAgICBi
eXRlc190b19zZW5kX2luX3RoaXNfbG9vcCA9IGJ5dGVzX3RvX3NlbmQKLSAgICAgICAgICAgIGlm
IGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID4gU0VORF9CTE9DS19TSVpFOgotICAgICAgICAg
ICAgICAgIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID0gU0VORF9CTE9DS19TSVpFCi0KLSAg
ICAgICAgICAgIGlmIGNodW5rZWRfbW9kZToKLSAgICAgICAgICAgICAgICBzZWxmLndmaWxlLndy
aXRlKCcleFxyXG4nICUgYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3ApCi0gICAgICAgICAgICBz
ZWxmLndmaWxlLndyaXRlKCdhJyAqIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wKQotICAgICAg
ICAgICAgaWYgY2h1bmtlZF9tb2RlOgotICAgICAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUo
J1xyXG4nKQotICAgICAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgpCi0KLSAgICAgICAgICAgIGJ5
dGVzX3RvX3NlbmQgLT0gYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3AKLQotICAgICAgICBpZiBj
aHVua2VkX21vZGU6Ci0gICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKCcwXHJcblxyXG4nKQot
ICAgICAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9zZXR1
cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3NldHVwLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
ZGE4ZGIzZTExMWIwYTU0MzFkNzFlNjFmNDQ5MTNlYzVkYWM5MjQ4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3NldHVwLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNzQgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHly
aWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0j
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi0iIiJTZXQgdXAgc2NyaXB0IGZvciBtb2RfcHl3ZWJzb2NrZXQuCi0iIiIK
LQotCi1mcm9tIGRpc3R1dGlscy5jb3JlIGltcG9ydCBzZXR1cCwgRXh0ZW5zaW9uCi1pbXBvcnQg
c3lzCi0KLQotX1BBQ0tBR0VfTkFNRSA9ICdtb2RfcHl3ZWJzb2NrZXQnCi0KLSMgQnVpbGQgYW5k
IHVzZSBhIEMrKyBleHRlbnNpb24gZm9yIGZhc3RlciBtYXNraW5nLiBTV0lHIGlzIHJlcXVpcmVk
LgotX1VTRV9GQVNUX01BU0tJTkcgPSBGYWxzZQotCi1pZiBzeXMudmVyc2lvbiA8ICcyLjMnOgot
ICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICclcyByZXF1aXJlcyBQeXRob24gMi4zIG9yIGxhdGVy
LicgJSBfUEFDS0FHRV9OQU1FCi0gICAgc3lzLmV4aXQoMSkKLQotaWYgX1VTRV9GQVNUX01BU0tJ
Tkc6Ci0gICAgc2V0dXAoZXh0X21vZHVsZXM9WwotICAgICAgICAgICAgICAgICAgRXh0ZW5zaW9u
KAotICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0L19mYXN0X21hc2tp
bmcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICBbJ21vZF9weXdlYnNvY2tldC9mYXN0X21h
c2tpbmcuaSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzd2lnX29wdHM9WyctYysrJ10p
XSkKLQotc2V0dXAoYXV0aG9yPSdZdXpvIEZ1amlzaGltYScsCi0gICAgICBhdXRob3JfZW1haWw9
J3l1em9AY2hyb21pdW0ub3JnJywKLSAgICAgIGRlc2NyaXB0aW9uPSdXZWJTb2NrZXQgZXh0ZW5z
aW9uIGZvciBBcGFjaGUgSFRUUCBTZXJ2ZXIuJywKLSAgICAgIGxvbmdfZGVzY3JpcHRpb249KAot
ICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0IGlzIGFuIEFwYWNoZSBIVFRQIFNlcnZlciBl
eHRlbnNpb24gZm9yICcKLSAgICAgICAgICAgICAgJ3RoZSBXZWJTb2NrZXQgUHJvdG9jb2wgKFJG
QyA2NDU1KS4gJwotICAgICAgICAgICAgICAnU2VlIG1vZF9weXdlYnNvY2tldC9fX2luaXRfXy5w
eSBmb3IgbW9yZSBkZXRhaWwuJyksCi0gICAgICBsaWNlbnNlPSdTZWUgQ09QWUlORycsCi0gICAg
ICBuYW1lPV9QQUNLQUdFX05BTUUsCi0gICAgICBwYWNrYWdlcz1bX1BBQ0tBR0VfTkFNRSwgX1BB
Q0tBR0VfTkFNRSArICcuaGFuZHNoYWtlJ10sCi0gICAgICB1cmw9J2h0dHA6Ly9jb2RlLmdvb2ds
ZS5jb20vcC9weXdlYnNvY2tldC8nLAotICAgICAgIyBTZWUgdGhlIHNvdXJjZSBvZiBkaXN0dXRp
bHMudmVyc2lvbiwgZGlzdHV0aWxzLnZlcnNpb25wcmVkaWNhdGUgYW5kCi0gICAgICAjIGRpc3R1
dGlscy5kaXN0IHRvIHVuZGVyc3RhbmQgaG93IHRvIG5hbWUgdmVyc2lvbiBudW1iZXJzLgotICAg
ICAgdmVyc2lvbj0nMC43LjknLAotICAgICAgKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvX19pbml0
X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1
NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRo
aXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9jYWNlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9j
ZXJ0L2NhY2VydC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkYWRhZTEyMWJk
ZDNhZGI3NDQzODNjZDNiZjA4YzIyNmY4NTU0YmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NhY2VydC5wZW0KKysrIC9k
ZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1J
SUN2RENDQWlXZ0F3SUJBZ0lKQUtxVmdoa0dGMXJTTUEwR0NTcUdTSWIzRFFFQkJRVUFNRWt4Q3pB
SkJnTlYKLUJBWVRBa3BRTVE0d0RBWURWUVFJRXdWVWIydDViekVVTUJJR0ExVUVDaE1MY0hsM1pX
SnpiMk5yWlhReEZEQVMKLUJnTlZCQU1UQzNCNWQyVmljMjlqYTJWME1CNFhEVEV5TURZd05qQTNN
alF6TTFvWERUTTVNVEF5TXpBM01qUXoKLU0xb3dTVEVMTUFrR0ExVUVCaE1DU2xBeERqQU1CZ05W
QkFnVEJWUnZhM2x2TVJRd0VnWURWUVFLRXd0d2VYZGwKLVluTnZZMnRsZERFVU1CSUdBMVVFQXhN
TGNIbDNaV0p6YjJOclpYUXdnWjh3RFFZSktvWklodmNOQVFFQkJRQUQKLWdZMEFNSUdKQW9HQkFL
b1NFVzJiaVF4VnJNTUtkbi84UEp6RFlpU1hEUFI5V1FiTFJSUTFHbTVqa0NZaWFoWFcKLXUyQ2JU
VGhmUFBmaTJOSEEzSStIbFQ3Z085eVI3UlZVdk42SVNVekd3WERFcTRmNFVOcXRRT2hRYXFxSytD
WjkKLUxPL0JoTy9ZWWZOcmJTUGxZekhVS2FUOWVzZTd4TzlWelZLTFcrcVVmMk1qaDQvK1N6eEJE
TlA3QWdNQkFBR2oKLWdhc3dnYWd3SFFZRFZSME9CQllFRk9zV2R4Q1N1eWh3YVplYWI2Qm9UaG8z
Kytiek1Ia0dBMVVkSXdSeU1IQ0EKLUZPc1dkeENTdXlod2FaZWFiNkJvVGhvMysrYnpvVTJrU3pC
Sk1Rc3dDUVlEVlFRR0V3SktVREVPTUF3R0ExVUUKLUNCTUZWRzlyZVc4eEZEQVNCZ05WQkFvVEMz
QjVkMlZpYzI5amEyVjBNUlF3RWdZRFZRUURFd3R3ZVhkbFluTnYKLVkydGxkSUlKQUtxVmdoa0dG
MXJTTUF3R0ExVWRFd1FGTUFNQkFmOHdEUVlKS29aSWh2Y05BUUVGQlFBRGdZRUEKLWdzTUkxV0VZ
cU53L2poVUlkclRCY0N4SjBYNmhKdkE5emlLQU5WbTFScys0UDNZREFya1E4YkNyNnhZK0t3N3MK
LVpwMHlFN2RNOEdNZGkrRFU2aEwzdDNFNWVNa1RTMXlacjlXQ0s0ZjJSTG8rZXQ5OHNlbFp5ZHBI
ZW1GM0RKSjMKLWdBajhTeDRMQmFHOENiL1duRU1QdjNNeEczZkJFNWZhdkY2VjRqVTA3aFE9Ci0t
LS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQv
Y2VydC5wZW0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvY2VydC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI1Mzc5YTcyYjBkYWM1ZjQxOTc5YzgwMmM2NjNkZjhiODhkZWE4MjkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC9jZXJ0L2NlcnQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotQ2VydGlmaWNh
dGU6Ci0gICAgRGF0YToKLSAgICAgICAgVmVyc2lvbjogMyAoMHgyKQotICAgICAgICBTZXJpYWwg
TnVtYmVyOiAxICgweDEpCi0gICAgICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTFXaXRoUlNB
RW5jcnlwdGlvbgotICAgICAgICBJc3N1ZXI6IEM9SlAsIFNUPVRva3lvLCBPPXB5d2Vic29ja2V0
LCBDTj1weXdlYnNvY2tldAotICAgICAgICBWYWxpZGl0eQotICAgICAgICAgICAgTm90IEJlZm9y
ZTogSnVuICA2IDA3OjI1OjA4IDIwMTIgR01UCi0gICAgICAgICAgICBOb3QgQWZ0ZXIgOiBPY3Qg
MjMgMDc6MjU6MDggMjAzOSBHTVQKLSAgICAgICAgU3ViamVjdDogQz1KUCwgU1Q9VG9reW8sIE89
cHl3ZWJzb2NrZXQsIENOPXB5d2Vic29ja2V0Ci0gICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJ
bmZvOgotICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KLSAg
ICAgICAgICAgIFJTQSBQdWJsaWMgS2V5OiAoMTAyNCBiaXQpCi0gICAgICAgICAgICAgICAgTW9k
dWx1cyAoMTAyNCBiaXQpOgotICAgICAgICAgICAgICAgICAgICAwMDpkZToxMDpjZTozYTo1YTow
NDphNDoxYzoyOTo5Mzo1YzoyMzo4MjoxYToKLSAgICAgICAgICAgICAgICAgICAgZjI6MDY6MDE6
ZTY6MmI6YTQ6MGY6ZGQ6Nzc6NDk6NzY6ODk6MDM6YTI6MjE6Ci0gICAgICAgICAgICAgICAgICAg
IGRlOjA0Ojc1OmM2OmUyOmRkOmZiOjM1OjI3OjNhOmEyOjkyOjhlOjEyOjYyOgotICAgICAgICAg
ICAgICAgICAgICAyYjozZToxZjpmNDo3ODpkZjpiNjo5NDpjYjoyNzpkNjpjYjpkNjozNzpkNzoK
LSAgICAgICAgICAgICAgICAgICAgNWM6MDg6ZjA6MDk6M2U6Yzk6Y2U6MjQ6MmQ6MDA6Yzk6ZGY6
NGE6ZTA6OTk6Ci0gICAgICAgICAgICAgICAgICAgIGU1OmZiOjIzOmE5OmUyOmQ2OmM5OjNkOjk2
OmZhOjAxOjg4OmRlOjVhOjg5OgotICAgICAgICAgICAgICAgICAgICBiMDpjZjowMzo2Nzo2Zjow
NDo4NjoxZDplZjo2MjoxYzo1NTphOTowNzo5YToKLSAgICAgICAgICAgICAgICAgICAgMmU6NjY6
MmE6NzM6NWI6NGM6NjI6MDM6Zjk6ODI6ODM6ZGI6Njg6YmY6Yjg6Ci0gICAgICAgICAgICAgICAg
ICAgIDRiOjBiOjhiOjkzOjExOmI4OjU0OjczOjdiCi0gICAgICAgICAgICAgICAgRXhwb25lbnQ6
IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKLSAgICAgICAgICAg
IFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czogCi0gICAgICAgICAgICAgICAgQ0E6RkFMU0UKLSAg
ICAgICAgICAgIE5ldHNjYXBlIENlcnQgVHlwZTogCi0gICAgICAgICAgICAgICAgU1NMIFNlcnZl
cgotICAgICAgICAgICAgTmV0c2NhcGUgQ29tbWVudDogCi0gICAgICAgICAgICAgICAgT3BlblNT
TCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUKLSAgICAgICAgICAgIFg1MDl2MyBTdWJqZWN0IEtleSBJ
ZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICA4MjpBMTo3Mzo4QjoxNjowQzo3QzpFNDpEMzo0
Njo5NToxMzo5NToxQTozMjpDMTo4NDpFOTowNjowMAotICAgICAgICAgICAgWDUwOXYzIEF1dGhv
cml0eSBLZXkgSWRlbnRpZmllcjogCi0gICAgICAgICAgICAgICAga2V5aWQ6RUI6MTY6Nzc6MTA6
OTI6QkI6Mjg6NzA6Njk6OTc6OUE6NkY6QTA6Njg6NEU6MUE6Mzc6RkI6RTY6RjMKLQotICAgIFNp
Z25hdHVyZSBBbGdvcml0aG06IHNoYTFXaXRoUlNBRW5jcnlwdGlvbgotICAgICAgICA2YjpiMzo0
NjoyOTowMjpkZjpiMDpjODo4ZTpjNDpkNzo3ZjphMDoxZTowZDoxYTplYjoyZjoKLSAgICAgICAg
ZGY6ZDE6NDg6NTc6MzY6NWY6OTU6OGM6MWI6ZjA6NTE6ZDY6NTI6ZTc6OGQ6ODQ6M2I6OWY6Ci0g
ICAgICAgIGQ4OmVkOjIyOjljOmFhOmJkOmVlOjliOjkwOjFkOjg0OmEzOjRjOjBiOmNiOmViOjY0
OjczOgotICAgICAgICBiYTpmNzoxNTpjZTpkYTo1ZjpkYjo4YjoxNTowNzphNjoyODo3ZjpiOTo4
YzoxMTo5Yjo2NDoKLSAgICAgICAgZDM6ZjE6YmU6NTI6NGY6YzM6ZDg6NTg6ZmU6ZGU6NTY6NjM6
NjM6M2I6NTE6ZWQ6YTc6ODE6Ci0gICAgICAgIGY5OjA1OjUxOjcwOjYzOjMyOjA5OjBlOjk0Ojdl
OjA1OmZlOmExOjU2OjE4OjM0Ojk4OmQ1OgotICAgICAgICA5OToxZTo0ZToyNzozODo4OTo5MDo2
YTplNTpjZTo2MDozNTowMTpmNTpkZTozNDo2MDpiMToKLSAgICAgICAgY2I6YWUKLS0tLS0tQkVH
SU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ21EQ0NBZ0dnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBC
QVFVRkFEQkpNUXN3Q1FZRFZRUUdFd0pLVURFTwotTUF3R0ExVUVDQk1GVkc5cmVXOHhGREFTQmdO
VkJBb1RDM0I1ZDJWaWMyOWphMlYwTVJRd0VnWURWUVFERXd0dwotZVhkbFluTnZZMnRsZERBZUZ3
MHhNakEyTURZd056STFNRGhhRncwek9URXdNak13TnpJMU1EaGFNRWt4Q3pBSgotQmdOVkJBWVRB
a3BRTVE0d0RBWURWUVFJRXdWVWIydDViekVVTUJJR0ExVUVDaE1MY0hsM1pXSnpiMk5yWlhReAot
RkRBU0JnTlZCQU1UQzNCNWQyVmljMjlqYTJWME1JR2ZNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0R05B
RENCaVFLQgotZ1FEZUVNNDZXZ1NrSENtVFhDT0NHdklHQWVZcnBBL2RkMGwyaVFPaUlkNEVkY2Jp
M2ZzMUp6cWlrbzRTWWlzKwotSC9SNDM3YVV5eWZXeTlZMzExd0k4QWsreWM0a0xRREozMHJnbWVY
N0k2bmkxc2s5bHZvQmlONWFpYkRQQTJkdgotQklZZDcySWNWYWtIbWk1bUtuTmJUR0lEK1lLRDIy
aS91RXNMaTVNUnVGUnpld0lEQVFBQm80R1BNSUdNTUFrRwotQTFVZEV3UUNNQUF3RVFZSllJWklB
WWI0UWdFQkJBUURBZ1pBTUN3R0NXQ0dTQUdHK0VJQkRRUWZGaDFQY0dWdQotVTFOTUlFZGxibVZ5
WVhSbFpDQkRaWEowYVdacFkyRjBaVEFkQmdOVkhRNEVGZ1FVZ3FGeml4WU1mT1RUUnBVVAotbFJv
eXdZVHBCZ0F3SHdZRFZSMGpCQmd3Rm9BVTZ4WjNFSks3S0hCcGw1cHZvR2hPR2pmNzV2TXdEUVlK
S29aSQotaHZjTkFRRUZCUUFEZ1lFQWE3TkdLUUxmc01pT3hOZC9vQjROR3VzdjM5RklWelpmbFl3
YjhGSFdVdWVOaER1ZgotMk8waW5LcTk3cHVRSFlTalRBdkw2MlJ6dXZjVnp0cGYyNHNWQjZZb2Y3
bU1FWnRrMC9HK1VrL0QyRmorM2xaagotWXp0UjdhZUIrUVZSY0dNeUNRNlVmZ1grb1ZZWU5KalZt
UjVPSnppSmtHcmx6bUExQWZYZU5HQ3h5NjQ9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvY2xpZW50X2NlcnQucDEyIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTRlMTM5OTI3OTgyZmE5ODIzYTU3MjMxYWYxMTM0OTlkNmE1YThiMC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKbGl0ZXJhbCAyNTgyCnpjbVkrRlhIKmppN0tNYCMwdEJnMnF6Rml0UCFmPFBIQS0q
TkxvQFZfZ2NmMHQ4V0IoI0k/eyVZUkZ4KnVgJSl5Sgp6MW5HIUszNWJxaFhyWDdBYjlRJWpmODZ1
bHglWnYtPiVIXkFhWnB3ZWtQNDJZbn1nNnYjT3VZQThHdG12VmpTSWoKekZwaDVVKChaJWZBU3dT
dWtZWEdwPUYqQSkwUmZpPGAlZU9kXkZwQmktZiNzN2Zpcj8+MmNXJFQjOzIqR0FQX0FlCnoxXyNs
cm4yRShlS09NSjZOMjZZSm5lX0BocH1TS1BYVUI3Rk1lcl9+NXwxcWdDe1Rxbm5CdXYxJGtwcDVP
QnolQAp6PG15U3crP1k+XmpBWjQjWEEtfSohUXNidU9oVyhzTzgzNjYoJDsoMUE+bW8oTy0leCho
big9eVo7eX5ORyNRWDEKemdIa1NpXl44Y3Y0VFRTTDl2bjVxUig+X0QzZiZvYypqd1BnSSNLQFEj
QXNMKUQ7QkQmV2IyZCtJMV5KN24+fVlaCnpiQ1hvOWZPQGchQGRXWWEyViV9Oykhezx6RGN8KHB2
SklheFc3TmRPJU82Zj5yJmFPcnBIa3tvX1I5bVE0N3VvYgp6P2w+OXxufFgzYGFncF5HO0x3WFI1
PChscitSPGNMNWpUUSg/XkQ8a1JvIUhfVCNwP3kzZH1edENZViE4Ul5OP30KekMqJVhtOUxlZj5q
N2hsci0/akhscHx3ZkEmXm4tczs8IXokcUQxeFBxIThLUTF9fmR1cHd+Qk0xZ3N+QEFvO0NxCnp3
UmdVfDJeZH1OLWdWO0BhWWt1OEklfXw8bDZRTT89ZH5GWXBiR0ZIOSZ2TmdLWipTeWNJU3xtY3VP
Uj9sJkNPdwp6c3t6ZDV6bWVseHFOMURReXt9UGdCPXUjZnpJTlBrQjBvTipjazN2YCsxeyFZWFB+
e0VWSTdWcWgqfnVhV19+VUMKemxSMzNSWjA1SGhrQy0xZUlwKS1AWV55dmMtfFIlISo5ZHc3bmZX
KXlqY0hJWWY2cj1hQ3QoVWhpLUZKbTJue18pCnole3VsQlVYUmAyPD5seH1lR21TbVJKPjVvdGtA
KCtwanNQcTs0aFo2RklLbCN7bnhQIUFMITI4X19BWWZsYFZnewp6bFJSYUFSfFZteTFfYF5iYmpa
cnpBe1EkbFllaklZZF5BJFo+VyZqeW5NPUtgVGw0d1YpM3dAZDFKY2AtNS1DR0oKenhxXkA4Xygh
PFpGMnFsaF9afX1ucj9TJjUqeitGQCl2KFoxRUlzO0htfSExfk1UTCFqMUBjJFpITFJ9Vig9O15v
CnpkVXBmeT9vPnl6b2xfc2k8PFVFQj10KGVlQnpnSl5XWXdzSENHOTM0cyRkKUBxcUh3Z155Wk17
YF5qSiE5O3RyNgp6ZW9VYXkmJCtCeUd8Tl5fem9BSF50WUlnPmhhWXd8QHxjMzFedyhuVWQ3ayhZ
bUVKNzZWWTc5KyhDKF8kOzFNc1UKemhpTmkrQjVnU3JEanw5PjxAPzZSJjh6Ym04YnI/Qy1ObjFj
aygrPE5LJTcpNnYtd1dxND1NX1RidDE5NHpVKnlGCnpoPG90PEhCV25veEIlMWs5KE0wbzxOZylS
Z0hTKCM/ZWRFUUIhXnxGay1fKGFgYlVCTEFLKmh+YXp+IV94dT1UNAp6Nkc1Sy1hWEpvdEhRbEVD
OENVNXxSeU1SdVFrWEUpP152NihpPU11KT0kXm8lMCF5czVHVlJhWFoyUzJINEk4M0wKenEpYmB8
UHh7KDg5VzMyenE0c3F6SCtCQUtQOXVhREVwRDhJSUE5RC1INDVDJVZUP0pKI01hK0JAaTlNUGRG
LSMjCnpOeEY1VHV9aXpfaHokU0taMF9fJiFZcDF5YWRWem9jQEV5K0JlZkpDdENTVmQ1KEp5KDxD
NkljQ1d9RG1Id0M4VAp6UntrcXZSQD8zcnpMRzIkWmRjeC01dkZSQGQkUSNERCt+e2RoQG1kX2Vg
QkI2KlVZNlIrNF4jVSV6NGx0eDlCJTsKek5WOHoqe0djR007Z3EyUnR5ZGp7SDBTMHAjejw2JTdt
MyElez9NUXVhPGBAZTViT3RiZCFFYz9HXnV4ZjRneGNJCnotRjdTVFlpfnZEYm12Q1ozTkRjZkhq
OD5DOUZWNmpkMX0ocFN3cmdHaypRWjlScjQpNiFzU2tUVXFieGJhZWEydQp6d1NgJHlvc1EpZWIl
b192Sk8qIUFgZFI7WTRrPiZxWXp1YS1aTkU8M0ZFPUkrZVNVO3ghcHReQTM1Pm9Jb1BgSnEKelps
filyQzYwTCtrU3hBZ29QRXxyR2pWQD8yQXkqWGI9JGNgY19MMz1FemhqQlVEPWgxXzQlZUJDZmxq
JkVIWm1PCnpzezFifE51eDYrO0sjS0I9VGtffGlrfHsqMDFkayQ5S2E2YGNSVT1NY1lpTiFrLWEp
MlBEMzFoPGNUcyVrUGhvWgp6Tykyd19UOS04dzJOTSYmcTJwbDReS3F9Q1BlPWw5aHEkVzQhdDtK
RCV8VUooMjh2RGJNKkw+VkY3YldfWHtiMTQKekdOdyh3PkVfUzlgPDt4UWxQYEBzZD42bTNuMilM
KTBwIVhSckQjMjVpSWtSRHMpMXVqTiVTc3l3IzYydmR2JkFsCnpjZGotWWwjNitAYTBXc2NVPDNg
Z3ZXJDJ3LSheSGZFUnl4c05zcTZtSzBkODs/MExTZU5oJU5FZTBCWUo0SUwoYQp6JFdYbmQpUEJX
PEFUa3t5JTJTOUdQYTJxeUpXJF5KSl9jb19YUDFtOUV9ailRP15sJCMqTUR4UDV8bVkxemNxM3kK
emI9QHp5Q1h1Z3dke05qeD9pMjdqK3pYTzQqVj59WmUtekJReClIeW53TGBOaighOXQpNTRkTzt6
VFZ+LU8jO1U7CnpNd3AwUFUtdVVMPyMjOEwtKSZ2bWJuQW1uI0AmYT52PWNQfUVVUUpWd2FEdzlW
PC1Jd1l0aVQ5dyhUTWVhMiVEeQp6fEE0MCRONXVvaVFFXl97UzEtaWBxNWx0dHBnPlNENHBhZmhm
bEJ8NlBFPiE+c2hXa29FbVpoZyt+MEhwPDNLVEAKejlqayRxTUM9MCZCYmteZlJvNGYzOEp+aVdD
fHhHUDBgd1ozRiNrOGcqSWROWSRHRi1BeDhePERyQl5qMjhYYjZzCnpSfDtWdmFyJTx8VFpLfj4z
MGtEMylXJEFEIyh0dGAjQHg3UThPWWFwVF9KeU0xdlQ/bGJ4LStfRihKRiV5UzBPJAp6cFMjbH13
KjBqPmJ9TTNlOzRJPntwTU0+cyVgP2ZTQUVfUWJgQW4+X1Yha2l9JDl3TU45KGZVMXVKR20wTWk3
aEsKekE1bDBlMXdWY14kcWw/NWdtPjhFdkJwU2FXZjVUSWczWlNidUpocDthJShaK2tje2NkdjFQ
dVgkZTJHQU4/SmY4CnpXS05nUzwoTTJGTlVgUnhkQkd9Zj1TMXJuUSplUjEycUZfQyYmcG5AYHkl
Q35MOV5RX1o5bGgmRz1YdkdDITQxMAp6eW4pNW89KXgyaUpZK14/XkVMam50SEhgfUspemE/ST18
diEkaEwwbiZHenlwemFMd05kZU09T2pXfC0tPW1SX2oKenl0P35WeF9fOUJFdmNoTD85aHVVb2It
NW4rcjE/PHhAY2d9NWF8VnxGY0ZRTyplSXB3WkVuflZHTGVxdlNAV2syCnopIStEMy07ezRAT08p
YitiUU8jPS1FK0JlT0BmITM8aVQwbWIycGIzODh7R0lSYXJqZG5UaSVAPzRxd3kjcTYwWQp6cWlB
fHt0Nm80OUVNMThKJnc4REEjd1FERHNGd04kSEcqTVRMMjFCUWopWVJgVzVMO1pmTU08KnJMPUZJ
Z3wwYkoKelQ5cjdGbEJMTF5yViUxVU8hM3xHREVhTSFqSFBMcj81UUJ1Q0MhVyk+ZHJmXlJDYGA3
WVJZWihLPmllMD5wSmReCnpKV19IeyUpXmMhNj5sfDlQOD9jPWooQjU3WUp6OD9YeVF6RTl1R2F9
ZFYwUFRwMyE7cCFTRil9dC1pPkM8RWRIKwp6TUtBU25WIyEmU1dmZH0wZGxqWHN5UWZ6c0A2aTAr
ZHFTSEpMfkY3fm90fCRId2YrRiowakNLKnc1V29GQFE5aE4KemhsayVTe2g2QzU3Q0kyXzVSOTtm
MztwLTE+RFVuKlVeZW9HamhxbzsqUioka1ZFMDFKPlRKUVJzdjlveiZrITN6CnprV1Q7KjBRZTBN
M1VDTHcwRD1KK2ZHZmNGdkpVfGBVZHNLXzM0dFR2SHtmJi1ZOFdGR2g/XlAhWDU7eT1GWnVEcwpm
ZnJXazAlTShPR25UTU48aCZxQHlMZERVXyZNY0FmP3wxa01lalVObwoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvY2VydC9rZXkucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2tleS5wZW0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZTg1ODMxOGYyOWJhNmI0NjIzYmQ1ZmJjNGEw
OGNlNzNkOTAzMTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC9jZXJ0L2tleS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCww
IEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlDWGdJQkFBS0JnUURlRU00
NldnU2tIQ21UWENPQ0d2SUdBZVlycEEvZGQwbDJpUU9pSWQ0RWRjYmkzZnMxCi1KenFpa280U1lp
cytIL1I0MzdhVXl5Zld5OVkzMTF3SThBayt5YzRrTFFESjMwcmdtZVg3STZuaTFzazlsdm9CCi1p
TjVhaWJEUEEyZHZCSVlkNzJJY1Zha0htaTVtS25OYlRHSUQrWUtEMjJpL3VFc0xpNU1SdUZSemV3
SURBUUFCCi1Bb0dCQUl1Q3VWMVZjbmI3cm04Q3d0Z1pQNVhnbVk4dlNqeFRsZGFmYTZYdmF3RVlV
VFAwUzc3di8xbGxnMVl2Ci1VSVYrSStQUWdHOW9Wb1lPbDIyTG9pbUhTL1ozZTFmc290NXREWXN6
R2U4L0drc3Q0b2FSZVNveHZCVWE2V1hwCi1RU283WUZDYWp1SHRFK1cvZ3pGK1VIYmR6elhJRGpR
WjMxNExORjV0KzRVbnNFUEJBa0VBK2dpckltcVdvTTJ0Ci0zVVI4ZjhvZWtFUndzbUVNZjlESDVZ
cEg0Y3ZVbnZJK2t3ZXNDL3IyVThTaG8rK2Z5RU1VTm03YUlYR3FOTGdhCi1vZ0FNKzROWDRRSkJB
T05kU3hTYXkyMmVnVEdOb0loTG5kbGpXa3VPdC85RldqMmtsZi80UXhENGJsTUpRNU9xCi1RZE9H
QWg3blZRanBQTFE1RDdDQlZBS3BHTTJDRCtRSkJ0c0NRRVAya3ozNXB4UHlsRzN1cmNDMm1mUXhC
a2tXCi1aQ1ZpQk5QNThHd0owYk9hdVRPU0JFd0ZYV3VMcVR3OGFEd3hMNDlVTm1xYzBOMGZwZTJm
QWVoajNVRUNRUUNtCi1GSC9EalU4THc3eWJkZGpOdG02WFhQdVlOYWd4ejNjYmtCNEIzRmNoRGxl
SVVEd01vVkYwTVc5Ykk1LzU0bVYxCi1RRGsxdFVLb3J0eHZRWkphQUQ0QkFrRUFoR09IUXFQZDZi
QkJvRkJ2cGFMelBKTXh3TEtyQitXdGtxL1FsQzcyCi1DbFJpTW4yZzhTQUxpSUwzQkRnR1hLY0tF
L1d5N2pvL2FmL0pDelEvY1BxdC9BPT0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L2NlcnQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdi
ZDcwM2Q4MjFlYTViYWVlMTU1NjExZWU4NDdmMjcwY2JhMjZmNzUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC9jZXJ0L2NhY2VydC5wZW0KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvY2VydC5wZW0KLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L2NlcnQvY2xpZW50X2NlcnQucDEyCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2tleS5w
ZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGM3ZjgwNWVlOTRlNTQ5NDY5ZWQ4NzBkYWU3ZTBjY2YyMDI2YmVhYjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jbGll
bnRfZm9yX3Rlc3RpbmcucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAwICswLDAgQEAKLSMhL3Vz
ci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0
OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiV2ViU29ja2V0IGNs
aWVudCB1dGlsaXR5IGZvciB0ZXN0aW5nLgotCi1UaGlzIG1vZHVsZSBjb250YWlucyBoZWxwZXIg
bWV0aG9kcyBmb3IgcGVyZm9ybWluZyBoYW5kc2hha2UsIGZyYW1lCi1zZW5kaW5nL3JlY2Vpdmlu
ZyBhcyBhIFdlYlNvY2tldCBjbGllbnQuCi0KLVRoaXMgaXMgY29kZSBmb3IgdGVzdGluZyBtb2Rf
cHl3ZWJzb2NrZXQuIEtlZXAgdGhpcyBjb2RlIGluZGVwZW5kZW50IGZyb20KLW1vZF9weXdlYnNv
Y2tldC4gRG9uJ3QgaW1wb3J0IGUuZy4gU3RyZWFtIGNsYXNzIGZvciBnZW5lcmF0aW5nIGZyYW1l
IGZvcgotdGVzdGluZy4gVXNpbmcgdXRpbC5oZXhpZnksIGV0Yy4gdGhhdCBhcmUgbm90IHJlbGF0
ZWQgdG8gcHJvdG9jb2wgcHJvY2Vzc2luZwotaXMgYWxsb3dlZC4KLQotTm90ZToKLVRoaXMgY29k
ZSBpcyBmYXIgZnJvbSByb2J1c3QsIGUuZy4sIHdlIGN1dCBjb3JuZXJzIGluIGhhbmRzaGFrZS4K
LSIiIgotCi0KLWltcG9ydCBiYXNlNjQKLWltcG9ydCBlcnJubwotaW1wb3J0IGxvZ2dpbmcKLWlt
cG9ydCBvcwotaW1wb3J0IHJhbmRvbQotaW1wb3J0IHJlCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQg
c3RydWN0Ci1pbXBvcnQgdGltZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9u
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLURFRkFVTFRfUE9SVCA9IDgw
Ci1ERUZBVUxUX1NFQ1VSRV9QT1JUID0gNDQzCi0KLSMgT3Bjb2RlcyBpbnRyb2R1Y2VkIGluIElF
VEYgSHlCaSAwMSBmb3IgdGhlIG5ldyBmcmFtaW5nIGZvcm1hdAotT1BDT0RFX0NPTlRJTlVBVElP
TiA9IDB4MAotT1BDT0RFX0NMT1NFID0gMHg4Ci1PUENPREVfUElORyA9IDB4OQotT1BDT0RFX1BP
TkcgPSAweGEKLU9QQ09ERV9URVhUID0gMHgxCi1PUENPREVfQklOQVJZID0gMHgyCi0KLSMgU3Ry
aW5ncyB1c2VkIGZvciBoYW5kc2hha2UKLV9VUEdSQURFX0hFQURFUiA9ICdVcGdyYWRlOiB3ZWJz
b2NrZXRcclxuJwotX1VQR1JBREVfSEVBREVSX0hJWElFNzUgPSAnVXBncmFkZTogV2ViU29ja2V0
XHJcbicKLV9DT05ORUNUSU9OX0hFQURFUiA9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLQot
V0VCU09DS0VUX0FDQ0VQVF9VVUlEID0gJzI1OEVBRkE1LUU5MTQtNDdEQS05NUNBLUM1QUIwREM4
NUIxMScKLQotIyBTdGF0dXMgY29kZXMKLVNUQVRVU19OT1JNQUxfQ0xPU1VSRSA9IDEwMDAKLVNU
QVRVU19HT0lOR19BV0FZID0gMTAwMQotU1RBVFVTX1BST1RPQ09MX0VSUk9SID0gMTAwMgotU1RB
VFVTX1VOU1VQUE9SVEVEX0RBVEEgPSAxMDAzCi1TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEID0g
MTAwNQotU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUgPSAxMDA2Ci1TVEFUVVNfSU5WQUxJRF9GUkFN
RV9QQVlMT0FEX0RBVEEgPSAxMDA3Ci1TVEFUVVNfUE9MSUNZX1ZJT0xBVElPTiA9IDEwMDgKLVNU
QVRVU19NRVNTQUdFX1RPT19CSUcgPSAxMDA5Ci1TVEFUVVNfTUFOREFUT1JZX0VYVCA9IDEwMTAK
LVNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiA9IDEwMTEKLVNUQVRVU19UTFNfSEFORFNI
QUtFID0gMTAxNQotCi0jIEV4dGVuc2lvbiB0b2tlbnMKLV9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lP
TiA9ICdkZWZsYXRlLWZyYW1lJwotIyBUT0RPKGJhc2hpKTogVXBkYXRlIGFmdGVyIG11eCBpbXBs
ZW1lbnRhdGlvbiBmaW5pc2hlZC4KLV9NVVhfRVhURU5TSU9OID0gJ211eF9ET19OT1RfVVNFJwot
X1BFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04gPSAncGVybWVzc2FnZS1kZWZsYXRlJwotCi1k
ZWYgX21ldGhvZF9saW5lKHJlc291cmNlKToKLSAgICByZXR1cm4gJ0dFVCAlcyBIVFRQLzEuMVxy
XG4nICUgcmVzb3VyY2UKLQotCi1kZWYgX3NlY19vcmlnaW5faGVhZGVyKG9yaWdpbik6Ci0gICAg
cmV0dXJuICdTZWMtV2ViU29ja2V0LU9yaWdpbjogJXNcclxuJyAlIG9yaWdpbi5sb3dlcigpCi0K
LQotZGVmIF9vcmlnaW5faGVhZGVyKG9yaWdpbik6Ci0gICAgIyA0LjEgMTMuIGNvbmNhdGVuYXRp
b24gb2YgdGhlIHN0cmluZyAiT3JpZ2luOiIsIGEgVSswMDIwIFNQQUNFIGNoYXJhY3RlciwKLSAg
ICAjIGFuZCB0aGUgL29yaWdpbi8gdmFsdWUsIGNvbnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2Us
IHRvIC9maWVsZHMvLgotICAgIHJldHVybiAnT3JpZ2luOiAlc1xyXG4nICUgb3JpZ2luLmxvd2Vy
KCkKLQotCi1kZWYgX2Zvcm1hdF9ob3N0X2hlYWRlcihob3N0LCBwb3J0LCBzZWN1cmUpOgotICAg
ICMgNC4xIDkuIExldCAvaG9zdHBvcnQvIGJlIGFuIGVtcHR5IHN0cmluZy4KLSAgICAjIDQuMSAx
MC4gQXBwZW5kIHRoZSAvaG9zdC8gdmFsdWUsIGNvbnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2Us
IHRvCi0gICAgIyAvaG9zdHBvcnQvCi0gICAgaG9zdHBvcnQgPSBob3N0Lmxvd2VyKCkKLSAgICAj
IDQuMSAxMS4gSWYgL3NlY3VyZS8gaXMgZmFsc2UsIGFuZCAvcG9ydC8gaXMgbm90IDgwLCBvciBp
ZiAvc2VjdXJlLwotICAgICMgaXMgdHJ1ZSwgYW5kIC9wb3J0LyBpcyBub3QgNDQzLCB0aGVuIGFw
cGVuZCBhIFUrMDAzQSBDT0xPTiBjaGFyYWN0ZXIKLSAgICAjICg6KSBmb2xsb3dlZCBieSB0aGUg
dmFsdWUgb2YgL3BvcnQvLCBleHByZXNzZWQgYXMgYSBiYXNlLXRlbiBpbnRlZ2VyLAotICAgICMg
dG8gL2hvc3Rwb3J0LwotICAgIGlmICgobm90IHNlY3VyZSBhbmQgcG9ydCAhPSBERUZBVUxUX1BP
UlQpIG9yCi0gICAgICAgIChzZWN1cmUgYW5kIHBvcnQgIT0gREVGQVVMVF9TRUNVUkVfUE9SVCkp
OgotICAgICAgICBob3N0cG9ydCArPSAnOicgKyBzdHIocG9ydCkKLSAgICAjIDQuMSAxMi4gY29u
Y2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJIb3N0OiIsIGEgVSswMDIwIFNQQUNFCi0gICAgIyBj
aGFyYWN0ZXIsIGFuZCAvaG9zdHBvcnQvLCB0byAvZmllbGRzLy4KLSAgICByZXR1cm4gJ0hvc3Q6
ICVzXHJcbicgJSBob3N0cG9ydAotCi0KLSMgVE9ETyh0eW9zaGlubyk6IERlZmluZSBhIGJhc2Ug
Y2xhc3MgYW5kIG1vdmUgdGhlc2Ugc2hhcmVkIG1ldGhvZHMgdG8gdGhhdC4KLQotCi1kZWYgcmVj
ZWl2ZV9ieXRlcyhzb2NrZXQsIGxlbmd0aCk6Ci0gICAgcmVjZWl2ZWRfYnl0ZXMgPSBbXQotICAg
IHJlbWFpbmluZyA9IGxlbmd0aAotICAgIHdoaWxlIHJlbWFpbmluZyA+IDA6Ci0gICAgICAgIG5l
d19yZWNlaXZlZF9ieXRlcyA9IHNvY2tldC5yZWN2KHJlbWFpbmluZykKLSAgICAgICAgaWYgbm90
IG5ld19yZWNlaXZlZF9ieXRlczoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAnQ29ubmVjdGlvbiBjbG9zZWQgYmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQg
bGVuZ3RoICcKLSAgICAgICAgICAgICAgICAnKHJlcXVlc3RlZCAlZCBieXRlcyBidXQgcmVjZWl2
ZWQgb25seSAlZCBieXRlcyknICUKLSAgICAgICAgICAgICAgICAobGVuZ3RoLCBsZW5ndGggLSBy
ZW1haW5pbmcpKQotICAgICAgICByZWNlaXZlZF9ieXRlcy5hcHBlbmQobmV3X3JlY2VpdmVkX2J5
dGVzKQotICAgICAgICByZW1haW5pbmcgLT0gbGVuKG5ld19yZWNlaXZlZF9ieXRlcykKLSAgICBy
ZXR1cm4gJycuam9pbihyZWNlaXZlZF9ieXRlcykKLQotCi0jIFRPRE8odHlvc2hpbm8pOiBOb3cg
dGhlIFdlYlNvY2tldEhhbmRzaGFrZSBjbGFzcyBkaXZlcnRzIHRoZXNlIG1ldGhvZHMuIFdlCi0j
IHNob3VsZCBtb3ZlIHRvIEhUVFAgcGFyc2VyIGFzIHNwZWNpZmllZCBpbiBSRkMgNjQ1NS4gRm9y
IEh5QmkgMDAgYW5kCi0jIEhpeGllIDc1LCBwYWNrIHRoZXNlIG1ldGhvZHMgYXMgc29tZSBwYXJz
ZXIgY2xhc3MuCi0KLQotZGVmIF9yZWFkX2ZpZWxkcyhzb2NrZXQpOgotICAgICMgNC4xIDMyLiBs
ZXQgL2ZpZWxkcy8gYmUgYSBsaXN0IG9mIG5hbWUtdmFsdWUgcGFpcnMsIGluaXRpYWxseSBlbXB0
eS4KLSAgICBmaWVsZHMgPSB7fQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICMgNC4xIDMzLiBs
ZXQgL25hbWUvIGFuZCAvdmFsdWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgICAgIG5hbWUg
PSAnJwotICAgICAgICB2YWx1ZSA9ICcnCi0gICAgICAgICMgNC4xIDM0LiByZWFkIC9uYW1lLwot
ICAgICAgICBuYW1lID0gX3JlYWRfbmFtZShzb2NrZXQpCi0gICAgICAgIGlmIG5hbWUgaXMgTm9u
ZToKLSAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICMgNC4xIDM1LiByZWFkIHNwYWNlcwotICAg
ICAgICAjIFRPRE8odHlvc2hpbm8pOiBTa2lwIG9ubHkgb25lIHNwYWNlIGFzIGRlc2NyaWJlZCBp
biB0aGUgc3BlYy4KLSAgICAgICAgY2ggPSBfc2tpcF9zcGFjZXMoc29ja2V0KQotICAgICAgICAj
IDQuMSAzNi4gcmVhZCAvdmFsdWUvCi0gICAgICAgIHZhbHVlID0gX3JlYWRfdmFsdWUoc29ja2V0
LCBjaCkKLSAgICAgICAgIyA0LjEgMzcuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgotICAg
ICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAxKQotICAgICAgICBpZiBjaCAhPSAnXG4n
OiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlciB3aGlsZSByZWFkaW5nIHZhbHVlICVyIGZvciBoZWFk
ZXIgJwotICAgICAgICAgICAgICAgICclcicgJSAoY2gsIG5hbWUsIHZhbHVlKSkKLSAgICAgICAg
IyA0LjEgMzguIGFwcGVuZCBhbiBlbnRyeSB0byB0aGUgL2ZpZWxkcy8gbGlzdCB0aGF0IGhhcyB0
aGUgbmFtZQotICAgICAgICAjIGdpdmVuIGJ5IHRoZSBzdHJpbmcgb2J0YWluZWQgYnkgaW50ZXJw
cmV0aW5nIHRoZSAvbmFtZS8gYnl0ZQotICAgICAgICAjIGFycmF5IGFzIGEgVVRGLTggc3RyZWFt
IGFuZCB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN0cmluZwotICAgICAgICAjIG9idGFpbmVkIGJ5
IGludGVycHJldGluZyB0aGUgL3ZhbHVlLyBieXRlIGFycmF5IGFzIGEgVVRGLTggYnl0ZQotICAg
ICAgICAjIHN0cmVhbS4KLSAgICAgICAgZmllbGRzLnNldGRlZmF1bHQobmFtZSwgW10pLmFwcGVu
ZCh2YWx1ZSkKLSAgICAgICAgIyA0LjEgMzkuIHJldHVybiB0byB0aGUgIkZpZWxkIiBzdGVwIGFi
b3ZlCi0gICAgcmV0dXJuIGZpZWxkcwotCi0KLWRlZiBfcmVhZF9uYW1lKHNvY2tldCk6Ci0gICAg
IyA0LjEgMzMuIGxldCAvbmFtZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAgICBuYW1lID0gJycK
LSAgICB3aGlsZSBUcnVlOgotICAgICAgICAjIDQuMSAzNC4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUg
c2VydmVyCi0gICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDEpCi0gICAgICAgIGlm
IGNoID09ICdccic6ICAjIDB4MEQKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVs
aWYgY2ggPT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICdVbmV4cGVjdGVkIExGIHdoZW4gcmVhZGluZyBoZWFkZXIgbmFtZSAlcicg
JSBuYW1lKQotICAgICAgICBlbGlmIGNoID09ICc6JzogICMgMHgzQQotICAgICAgICAgICAgcmV0
dXJuIG5hbWUKLSAgICAgICAgZWxpZiBjaCA+PSAnQScgYW5kIGNoIDw9ICdaJzogICMgcmFuZ2Ug
MHgzMSB0byAweDVBCi0gICAgICAgICAgICBjaCA9IGNocihvcmQoY2gpICsgMHgyMCkKLSAgICAg
ICAgICAgIG5hbWUgKz0gY2gKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5hbWUgKz0gY2gK
LQotCi1kZWYgX3NraXBfc3BhY2VzKHNvY2tldCk6Ci0gICAgIyA0LjEgMzUuIHJlYWQgYSBieXRl
IGZyb20gdGhlIHNlcnZlcgotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGNoID0gcmVjZWl2ZV9i
eXRlcyhzb2NrZXQsIDEpCi0gICAgICAgIGlmIGNoID09ICcgJzogICMgMHgyMAotICAgICAgICAg
ICAgY29udGludWUKLSAgICAgICAgcmV0dXJuIGNoCi0KLQotZGVmIF9yZWFkX3ZhbHVlKHNvY2tl
dCwgY2gpOgotICAgICMgNC4xIDMzLiBsZXQgL3ZhbHVlLyBiZSBlbXB0eSBieXRlIGFycmF5cwot
ICAgIHZhbHVlID0gJycKLSAgICAjIDQuMSAzNi4gcmVhZCBhIGJ5dGUgZnJvbSBzZXJ2ZXIuCi0g
ICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgaWYgY2ggPT0gJ1xyJzogICMgMHgwRAotICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlCi0gICAgICAgIGVsaWYgY2ggPT0gJ1xuJzogICMgMHgwQQotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIExGIHdo
ZW4gcmVhZGluZyBoZWFkZXIgdmFsdWUgJXInICUgdmFsdWUpCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICB2YWx1ZSArPSBjaAotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAx
KQotCi0KLWRlZiByZWFkX2ZyYW1lX2hlYWRlcihzb2NrZXQpOgotICAgIHJlY2VpdmVkID0gcmVj
ZWl2ZV9ieXRlcyhzb2NrZXQsIDIpCi0KLSAgICBmaXJzdF9ieXRlID0gb3JkKHJlY2VpdmVkWzBd
KQotICAgIGZpbiA9IChmaXJzdF9ieXRlID4+IDcpICYgMQotICAgIHJzdjEgPSAoZmlyc3RfYnl0
ZSA+PiA2KSAmIDEKLSAgICByc3YyID0gKGZpcnN0X2J5dGUgPj4gNSkgJiAxCi0gICAgcnN2MyA9
IChmaXJzdF9ieXRlID4+IDQpICYgMQotICAgIG9wY29kZSA9IGZpcnN0X2J5dGUgJiAweGYKLQot
ICAgIHNlY29uZF9ieXRlID0gb3JkKHJlY2VpdmVkWzFdKQotICAgIG1hc2sgPSAoc2Vjb25kX2J5
dGUgPj4gNykgJiAxCi0gICAgcGF5bG9hZF9sZW5ndGggPSBzZWNvbmRfYnl0ZSAmIDB4N2YKLQot
ICAgIGlmIG1hc2sgIT0gMDoKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAg
J01hc2sgYml0IG11c3QgYmUgMCBmb3IgZnJhbWVzIGNvbWluZyBmcm9tIHNlcnZlcicpCi0KLSAg
ICBpZiBwYXlsb2FkX2xlbmd0aCA9PSAxMjc6Ci0gICAgICAgIGV4dGVuZGVkX3BheWxvYWRfbGVu
Z3RoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDgpCi0gICAgICAgIHBheWxvYWRfbGVuZ3RoID0g
c3RydWN0LnVucGFjaygKLSAgICAgICAgICAgICchUScsIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3Ro
KVswXQotICAgICAgICBpZiBwYXlsb2FkX2xlbmd0aCA+IDB4N0ZGRkZGRkZGRkZGRkZGRjoKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGggPj0gMl42
MycpCi0gICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA9PSAxMjY6Ci0gICAgICAgIGV4dGVuZGVkX3Bh
eWxvYWRfbGVuZ3RoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDIpCi0gICAgICAgIHBheWxvYWRf
bGVuZ3RoID0gc3RydWN0LnVucGFjaygKLSAgICAgICAgICAgICchSCcsIGV4dGVuZGVkX3BheWxv
YWRfbGVuZ3RoKVswXQotCi0gICAgcmV0dXJuIGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2Rl
LCBwYXlsb2FkX2xlbmd0aAotCi0KLWNsYXNzIF9UTFNTb2NrZXQob2JqZWN0KToKLSAgICAiIiJX
cmFwcGVyIGZvciBhIFRMUyBjb25uZWN0aW9uLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHJhd19zb2NrZXQpOgotICAgICAgICBzZWxmLl9zc2wgPSBzb2NrZXQuc3NsKHJhd19zb2NrZXQp
Ci0KLSAgICBkZWYgc2VuZChzZWxmLCBieXRlcyk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9zc2wu
d3JpdGUoYnl0ZXMpCi0KLSAgICBkZWYgcmVjdihzZWxmLCBzaXplPS0xKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX3NzbC5yZWFkKHNpemUpCi0KLSAgICBkZWYgY2xvc2Uoc2VsZik6Ci0gICAgICAg
ICMgTm90aGluZyB0byBkby4KLSAgICAgICAgcGFzcwotCi0KLWNsYXNzIEh0dHBTdGF0dXNFeGNl
cHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3
aGVuIHVuZXhwZWN0ZWQgaHR0cCBzdGF0dXMgY29kZSB3YXMKLSAgICByZWNlaXZlZCBhcyBhIHJl
c3VsdCBvZiBoYW5kc2hha2UuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFt
ZSwgc3RhdHVzKToKLSAgICAgICAgc3VwZXIoSHR0cFN0YXR1c0V4Y2VwdGlvbiwgc2VsZikuX19p
bml0X18obmFtZSkKLSAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKLQotCi1jbGFzcyBXZWJT
b2NrZXRIYW5kc2hha2Uob2JqZWN0KToKLSAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNz
b3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4iIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRf
Y2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLQot
ICAgIGRlZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0KToKLSAgICAgICAgIiIiSGFuZHNoYWtlIFdl
YlNvY2tldC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBFeGNlcHRpb246IGhhbmRz
aGFrZSBmYWlsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tl
dAotCi0gICAgICAgIHJlcXVlc3RfbGluZSA9IF9tZXRob2RfbGluZShzZWxmLl9vcHRpb25zLnJl
c291cmNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIFJl
cXVlc3QtTGluZTogJXInLCByZXF1ZXN0X2xpbmUpCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5k
YWxsKHJlcXVlc3RfbGluZSkKLQotICAgICAgICBmaWVsZHMgPSBbXQotICAgICAgICBmaWVsZHMu
YXBwZW5kKF9VUEdSQURFX0hFQURFUikKLSAgICAgICAgZmllbGRzLmFwcGVuZChfQ09OTkVDVElP
Tl9IRUFERVIpCi0KLSAgICAgICAgZmllbGRzLmFwcGVuZChfZm9ybWF0X2hvc3RfaGVhZGVyKAot
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMuc2VydmVyX3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMp
KQotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyc2lvbiBpcyA4OgotICAgICAgICAgICAg
ZmllbGRzLmFwcGVuZChfc2VjX29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcihz
ZWxmLl9vcHRpb25zLm9yaWdpbikpCi0KLSAgICAgICAgb3JpZ2luYWxfa2V5ID0gb3MudXJhbmRv
bSgxNikKLSAgICAgICAga2V5ID0gYmFzZTY0LmI2NGVuY29kZShvcmlnaW5hbF9rZXkpCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTog
JXMgKCVzKScsIGtleSwgdXRpbC5oZXhpZnkob3JpZ2luYWxfa2V5KSkKLSAgICAgICAgZmllbGRz
LmFwcGVuZCgnU2VjLVdlYlNvY2tldC1LZXk6ICVzXHJcbicgJSBrZXkpCi0KLSAgICAgICAgZmll
bGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1WZXJzaW9uOiAlZFxyXG4nICUgc2VsZi5fb3B0aW9u
cy52ZXJzaW9uKQotCi0gICAgICAgICMgU2V0dGluZyB1cCBleHRlbnNpb25zLgotICAgICAgICBp
ZiBsZW4oc2VsZi5fb3B0aW9ucy5leHRlbnNpb25zKSA+IDA6Ci0gICAgICAgICAgICBmaWVsZHMu
YXBwZW5kKCdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnM6ICVzXHJcbicgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAnLCAnLmpvaW4oc2VsZi5fb3B0aW9ucy5leHRlbnNpb25zKSkKLQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QgaGVhZGVy
czogJXInLCBmaWVsZHMpCi0KLSAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKLSAgICAgICAg
ICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxkKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2Vu
ZGFsbCgnXHJcbicpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgb3BlbmluZyBo
YW5kc2hha2UgcmVxdWVzdCcpCi0KLSAgICAgICAgZmllbGQgPSAnJwotICAgICAgICB3aGlsZSBU
cnVlOgotICAgICAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAg
ICAgICAgICAgIGZpZWxkICs9IGNoCi0gICAgICAgICAgICBpZiBjaCA9PSAnXG4nOgotICAgICAg
ICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhh
bmRzaGFrZSBSZXNwb25zZS1MaW5lOiAlcicsIGZpZWxkKQotCi0gICAgICAgIGlmIGxlbihmaWVs
ZCkgPCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdXcm9uZyBzdGF0dXMgbGluZTogJXInICUgZmllbGQpCi0gICAgICAgIG0gPSBy
ZS5tYXRjaCgnW14gXSogKFteIF0qKSAuKicsIGZpZWxkKQotICAgICAgICBpZiBtIGlzIE5vbmU6
Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ05vIEhUVFAg
c3RhdHVzIGNvZGUgZm91bmQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAgICAgICBj
b2RlID0gbS5ncm91cCgxKQotICAgICAgICBpZiBub3QgcmUubWF0Y2goJ1swLTldWzAtOV1bMC05
XScsIGNvZGUpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdpdCBpbiBzdGF0dXMgbGluZTog
JXInICUKLSAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQotICAgICAgICBpZiBjb2RlICE9
ICcxMDEnOgotICAgICAgICAgICAgcmFpc2UgSHR0cFN0YXR1c0V4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0dXMgY29kZSAxMDEgYnV0IGZvdW5kICVyIGluIHN0
YXR1cyBsaW5lOiAnCi0gICAgICAgICAgICAgICAgJyVyJyAlIChjb2RlLCBmaWVsZCksIGludChj
b2RlKSkKLSAgICAgICAgZmllbGRzID0gX3JlYWRfZmllbGRzKHNlbGYuX3NvY2tldCkKLSAgICAg
ICAgY2ggPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0g
J1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFeHBlY3RlZCBMRiBi
dXQgZm91bmQ6ICVyJyAlIGNoKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3Blbmlu
ZyBoYW5kc2hha2UgcmVzcG9uc2UgaGVhZGVyczogJXInLCBmaWVsZHMpCi0KLSAgICAgICAgIyBD
aGVjayAvZmllbGRzLwotICAgICAgICBpZiBsZW4oZmllbGRzWyd1cGdyYWRlJ10pICE9IDE6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIFVw
Z3JhZGUgaGVhZGVycyBmb3VuZDogJXMnICUgZmllbGRzWyd1cGdyYWRlJ10pCi0gICAgICAgIGlm
IGxlbihmaWVsZHNbJ2Nvbm5lY3Rpb24nXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbigKLSAgICAgICAgICAgICAgICAnTXVsdGlwbGUgQ29ubmVjdGlvbiBoZWFkZXJzIGZvdW5k
OiAlcycgJSBmaWVsZHNbJ2Nvbm5lY3Rpb24nXSkKLSAgICAgICAgaWYgZmllbGRzWyd1cGdyYWRl
J11bMF0gIT0gJ3dlYnNvY2tldCc6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgVXBncmFkZSBoZWFkZXIgdmFsdWU6ICVzJyAlIGZpZWxk
c1sndXBncmFkZSddWzBdKQotICAgICAgICBpZiBmaWVsZHNbJ2Nvbm5lY3Rpb24nXVswXS5sb3dl
cigpICE9ICd1cGdyYWRlJzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnVW5leHBlY3RlZCBDb25uZWN0aW9uIGhlYWRlciB2YWx1ZTogJXMnICUKLSAgICAg
ICAgICAgICAgICBmaWVsZHNbJ2Nvbm5lY3Rpb24nXVswXSkKLQotICAgICAgICBpZiBsZW4oZmll
bGRzWydzZWMtd2Vic29ja2V0LWFjY2VwdCddKSAhPSAxOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29ja2V0LUFjY2VwdCBo
ZWFkZXJzIGZvdW5kOiAlcycgJQotICAgICAgICAgICAgICAgIGZpZWxkc1snc2VjLXdlYnNvY2tl
dC1hY2NlcHQnXSkKLQotICAgICAgICBhY2NlcHQgPSBmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtYWNj
ZXB0J11bMF0KLQotICAgICAgICAjIFZhbGlkYXRlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGRlY29kZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGRlY29kZShhY2NlcHQpCi0gICAgICAgIGV4Y2Vw
dCBUeXBlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ0lsbGVnYWwgdmFsdWUgZm9yIGhlYWRlciBTZWMtV2ViU29ja2V0LUFj
Y2VwdDogJyArIGFjY2VwdCkKLQotICAgICAgICBpZiBsZW4oZGVjb2RlZF9hY2NlcHQpICE9IDIw
OgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICdEZWNvZGVkIHZhbHVlIG9mIFNlYy1XZWJTb2NrZXQtQWNjZXB0IGlzIG5vdCAyMC1ieXRlIGxv
bmcnKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQWN0dWFsIFNlYy1XZWJTb2NrZXQt
QWNjZXB0OiAlciAoJXMpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdCwgdXRp
bC5oZXhpZnkoZGVjb2RlZF9hY2NlcHQpKQotCi0gICAgICAgIG9yaWdpbmFsX2V4cGVjdGVkX2Fj
Y2VwdCA9IHV0aWwuc2hhMV9oYXNoKAotICAgICAgICAgICAga2V5ICsgV0VCU09DS0VUX0FDQ0VQ
VF9VVUlEKS5kaWdlc3QoKQotICAgICAgICBleHBlY3RlZF9hY2NlcHQgPSBiYXNlNjQuYjY0ZW5j
b2RlKG9yaWdpbmFsX2V4cGVjdGVkX2FjY2VwdCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ0V4cGVjdGVkIFNlYy1XZWJTb2NrZXQtQWNjZXB0OiAlciAoJXMpJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX2FjY2VwdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHV0aWwuaGV4aWZ5KG9yaWdpbmFsX2V4cGVjdGVkX2FjY2VwdCkpCi0KLSAgICAgICAgaWYg
YWNjZXB0ICE9IGV4cGVjdGVkX2FjY2VwdDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnSW52YWxpZCBTZWMtV2ViU29ja2V0LUFjY2VwdCBoZWFkZXI6ICVy
IChleHBlY3RlZCkgIT0gJXIgJwotICAgICAgICAgICAgICAgICcoYWN0dWFsKScgJSAoYWNjZXB0
LCBleHBlY3RlZF9hY2NlcHQpKQotCi0gICAgICAgIHNlcnZlcl9leHRlbnNpb25zX2hlYWRlciA9
IGZpZWxkcy5nZXQoJ3NlYy13ZWJzb2NrZXQtZXh0ZW5zaW9ucycpCi0gICAgICAgIGFjY2VwdGVk
X2V4dGVuc2lvbnMgPSBbXQotICAgICAgICBpZiBzZXJ2ZXJfZXh0ZW5zaW9uc19oZWFkZXIgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gY29tbW9uLnBhcnNl
X2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAgICAgICAgICcsICcuam9pbihzZXJ2ZXJfZXh0ZW5z
aW9uc19oZWFkZXIpKQotCi0gICAgICAgICMgU2NhbiBhY2NlcHRlZCBleHRlbnNpb24gbGlzdCB0
byBjaGVjayBpZiB0aGVyZSBpcyBhbnkgdW5yZWNvZ25pemVkCi0gICAgICAgICMgZXh0ZW5zaW9u
cyBvciBleHRlbnNpb25zIHdlIGRpZG4ndCByZXF1ZXN0IGluIGl0LiBUaGVuLCBmb3IKLSAgICAg
ICAgIyBleHRlbnNpb25zIHdlIHJlcXVlc3QsIHBhcnNlIHRoZW0gYW5kIHN0b3JlIHBhcmFtZXRl
cnMuIFRoZXkgd2lsbCBiZQotICAgICAgICAjIHVzZWQgbGF0ZXIgYnkgZWFjaCBleHRlbnNpb24u
Ci0gICAgICAgIGRlZmxhdGVfZnJhbWVfYWNjZXB0ZWQgPSBGYWxzZQotICAgICAgICBtdXhfYWNj
ZXB0ZWQgPSBGYWxzZQotICAgICAgICBmb3IgZXh0ZW5zaW9uIGluIGFjY2VwdGVkX2V4dGVuc2lv
bnM6Ci0gICAgICAgICAgICBpZiBleHRlbnNpb24ubmFtZSgpID09IF9ERUZMQVRFX0ZSQU1FX0VY
VEVOU0lPTjoKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9kZWZsYXRlX2Zy
YW1lOgotICAgICAgICAgICAgICAgICAgICBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gVHJ1ZQot
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgZXh0ZW5zaW9uLm5h
bWUoKSA9PSBfTVVYX0VYVEVOU0lPTjoKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25z
LnVzZV9tdXg6Ci0gICAgICAgICAgICAgICAgICAgIG11eF9hY2NlcHRlZCA9IFRydWUKLSAgICAg
ICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIGV4dGVuc2lvbi5uYW1lKCkg
PT0gX1BFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT046Ci0gICAgICAgICAgICAgICAgY2hlY2tl
ciA9IHNlbGYuX29wdGlvbnMuY2hlY2tfcGVybWVzc2FnZV9kZWZsYXRlCi0gICAgICAgICAgICAg
ICAgaWYgY2hlY2tlcjoKLSAgICAgICAgICAgICAgICAgICAgY2hlY2tlcihleHRlbnNpb24pCi0g
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgdW5yZWNvZ25pemVkIGV4dGVuc2lvbjogJXMn
ICUgZXh0ZW5zaW9uLm5hbWUoKSkKLQotICAgICAgICAjIExldCBhbGwgZXh0ZW5zaW9ucyBjaGVj
ayB0aGUgcmVzcG9uc2UgZm9yIGV4dGVuc2lvbiByZXF1ZXN0LgotCi0gICAgICAgIGlmIChzZWxm
Ll9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lIGFuZAotICAgICAgICAgICAgbm90IGRlZmxhdGVf
ZnJhbWVfYWNjZXB0ZWQpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCclcyBleHRlbnNp
b24gbm90IGFjY2VwdGVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgX0RFRkxBVEVf
RlJBTUVfRVhURU5TSU9OKQotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX211eCBhbmQg
bm90IG11eF9hY2NlcHRlZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXMgZXh0ZW5z
aW9uIG5vdCBhY2NlcHRlZCcgJSBfTVVYX0VYVEVOU0lPTikKLQotCi1jbGFzcyBXZWJTb2NrZXRI
eWJpMDBIYW5kc2hha2Uob2JqZWN0KToKLSAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNz
b3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAwLgotICAgICIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMsIGRyYWZ0X2ZpZWxkKToKLSAgICAgICAg
c2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2Vs
Zi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAgc2VsZi5fZHJhZnRfZmllbGQgPSBkcmFmdF9m
aWVsZAotCi0gICAgZGVmIGhhbmRzaGFrZShzZWxmLCBzb2NrZXQpOgotICAgICAgICAiIiJIYW5k
c2hha2UgV2ViU29ja2V0LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEV4Y2VwdGlv
bjogaGFuZHNoYWtlIGZhaWxlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fc29ja2V0
ID0gc29ja2V0Ci0KLSAgICAgICAgIyA0LjEgNS4gc2VuZCByZXF1ZXN0IGxpbmUuCi0gICAgICAg
IHJlcXVlc3RfbGluZSA9IF9tZXRob2RfbGluZShzZWxmLl9vcHRpb25zLnJlc291cmNlKQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIFJlcXVlc3QtTGluZTog
JXInLCByZXF1ZXN0X2xpbmUpCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHJlcXVlc3Rf
bGluZSkKLSAgICAgICAgIyA0LjEgNi4gTGV0IC9maWVsZHMvIGJlIGFuIGVtcHR5IGxpc3Qgb2Yg
c3RyaW5ncy4KLSAgICAgICAgZmllbGRzID0gW10KLSAgICAgICAgIyA0LjEgNy4gQWRkIHRoZSBz
dHJpbmcgIlVwZ3JhZGU6IFdlYlNvY2tldCIgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5h
cHBlbmQoX1VQR1JBREVfSEVBREVSX0hJWElFNzUpCi0gICAgICAgICMgNC4xIDguIEFkZCB0aGUg
c3RyaW5nICJDb25uZWN0aW9uOiBVcGdyYWRlIiB0byAvZmllbGRzLy4KLSAgICAgICAgZmllbGRz
LmFwcGVuZChfQ09OTkVDVElPTl9IRUFERVIpCi0gICAgICAgICMgNC4xIDktMTIuIEFkZCBIb3N0
OiBmaWVsZCB0byAvZmllbGRzLy4KLSAgICAgICAgZmllbGRzLmFwcGVuZChfZm9ybWF0X2hvc3Rf
aGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnVzZV90bHMpKQotICAgICAgICAjIDQuMSAxMy4gQWRkIE9yaWdpbjogZmllbGQgdG8gL2ZpZWxk
cy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5v
cmlnaW4pKQotICAgICAgICAjIFRPRE86IDQuMSAxNCBBZGQgU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bDogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgICMgVE9ETzogNC4xIDE1IEFkZCBjb29raWUg
aGVhZGVycyB0byAvZmllbGRzLy4KLQotICAgICAgICAjIDQuMSAxNi0yMy4gQWRkIFNlYy1XZWJT
b2NrZXQtS2V5PG4+IHRvIC9maWVsZHMvLgotICAgICAgICBzZWxmLl9udW1iZXIxLCBrZXkxID0g
c2VsZi5fZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoKQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ051bWJlcjE6ICVkJywgc2VsZi5fbnVtYmVyMSkKLSAgICAgICAgZmllbGRzLmFwcGVu
ZCgnU2VjLVdlYlNvY2tldC1LZXkxOiAlc1xyXG4nICUga2V5MSkKLSAgICAgICAgc2VsZi5fbnVt
YmVyMiwga2V5MiA9IHNlbGYuX2dlbmVyYXRlX3NlY193ZWJzb2NrZXRfa2V5KCkKLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1iZXIyOiAlZCcsIHNlbGYuX251bWJlcjEpCi0gICAgICAg
IGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtS2V5MjogJXNcclxuJyAlIGtleTIpCi0KLSAg
ICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1EcmFmdDogJXNcclxuJyAlIHNlbGYu
X2RyYWZ0X2ZpZWxkKQotCi0gICAgICAgICMgNC4xIDI0LiBGb3IgZWFjaCBzdHJpbmcgaW4gL2Zp
ZWxkcy8sIGluIGEgcmFuZG9tIG9yZGVyOiBzZW5kIHRoZQotICAgICAgICAjIHN0cmluZywgZW5j
b2RlZCBhcyBVVEYtOCwgZm9sbG93ZWQgYnkgYSBVVEYtOCBlbmNvZGVkIFUrMDAwRCBDQVJSSUFH
RQotICAgICAgICAjIFJFVFVSTiBVKzAwMEEgTElORSBGRUVEIGNoYXJhY3RlciBwYWlyIChDUkxG
KS4KLSAgICAgICAgcmFuZG9tLnNodWZmbGUoZmllbGRzKQotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVxdWVzdCBoZWFkZXJzOiAlcicsIGZpZWxkcykK
LSAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5z
ZW5kYWxsKGZpZWxkKQotCi0gICAgICAgICMgNC4xIDI1LiBzZW5kIGEgVVRGLTgtZW5jb2RlZCBV
KzAwMEQgQ0FSUklBR0UgUkVUVVJOIFUrMDAwQSBMSU5FIEZFRUQKLSAgICAgICAgIyBjaGFyYWN0
ZXIgcGFpciAoQ1JMRikuCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxuJykKLSAg
ICAgICAgIyA0LjEgMjYuIGxldCAva2V5My8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiBlaWdo
dCByYW5kb20gYnl0ZXMgKG9yCi0gICAgICAgICMgZXF1aXZhbGVudGx5LCBhIHJhbmRvbSA2NCBi
aXQgaW50ZWdlciBlbmNvZGVkIGluIGEgYmlnLWVuZGlhbiBvcmRlcikuCi0gICAgICAgIHNlbGYu
X2tleTMgPSBzZWxmLl9nZW5lcmF0ZV9rZXkzKCkKLSAgICAgICAgIyA0LjEgMjcuIHNlbmQgL2tl
eTMvIHRvIHRoZSBzZXJ2ZXIuCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHNlbGYuX2tl
eTMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdLZXkzOiAlciAo
JXMpJywgc2VsZi5fa2V5MywgdXRpbC5oZXhpZnkoc2VsZi5fa2V5MykpCi0KLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmluZm8oJ1NlbnQgb3BlbmluZyBoYW5kc2hha2UgcmVxdWVzdCcpCi0KLSAgICAg
ICAgIyA0LjEgMjguIFJlYWQgYnl0ZXMgZnJvbSB0aGUgc2VydmVyIHVudGlsIGVpdGhlciB0aGUg
Y29ubmVjdGlvbgotICAgICAgICAjIGNsb3Nlcywgb3IgYSAweDBBIGJ5dGUgaXMgcmVhZC4gbGV0
IC9maWVsZC8gYmUgdGhlc2UgYnl0ZXMsIGluY2x1ZGluZwotICAgICAgICAjIHRoZSAweDBBIGJ5
dGVzLgotICAgICAgICBmaWVsZCA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAg
ICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgZmllbGQg
Kz0gY2gKLSAgICAgICAgICAgIGlmIGNoID09ICdcbic6Ci0gICAgICAgICAgICAgICAgYnJlYWsK
LQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIFJlc3BvbnNl
LUxpbmU6ICVyJywgZmllbGQpCi0KLSAgICAgICAgIyBpZiAvZmllbGQvIGlzIG5vdCBhdCBsZWFz
dCBzZXZlbiBieXRlcyBsb25nLCBvciBpZiB0aGUgbGFzdAotICAgICAgICAjIHR3byBieXRlcyBh
cmVuJ3QgMHgwRCBhbmQgMHgwQSByZXNwZWN0aXZlbHksIG9yIGlmIGl0IGRvZXMgbm90Ci0gICAg
ICAgICMgY29udGFpbiBhdCBsZWFzdCB0d28gMHgyMCBieXRlcywgdGhlbiBmYWlsIHRoZSBXZWJT
b2NrZXQgY29ubmVjdGlvbgotICAgICAgICAjIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAg
ICAgaWYgbGVuKGZpZWxkKSA8IDcgb3Igbm90IGZpZWxkLmVuZHN3aXRoKCdcclxuJyk6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1dyb25nIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkK
LSAgICAgICAgbSA9IHJlLm1hdGNoKCdbXiBdKiAoW14gXSopIC4qJywgZmllbGQpCi0gICAgICAg
IGlmIG0gaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm8gY29kZSBmb3Vu
ZCBpbiBzdGF0dXMgbGluZTogJXInICUgZmllbGQpCi0gICAgICAgICMgNC4xIDI5LiBsZXQgL2Nv
ZGUvIGJlIHRoZSBzdWJzdHJpbmcgb2YgL2ZpZWxkLyB0aGF0IHN0YXJ0cyBmcm9tIHRoZQotICAg
ICAgICAjIGJ5dGUgYWZ0ZXIgdGhlIGZpcnN0IDB4MjAgYnl0ZSwgYW5kIGVuZHMgd2l0aCB0aGUg
Ynl0ZSBiZWZvcmUgdGhlCi0gICAgICAgICMgc2Vjb25kIDB4MjAgYnl0ZS4KLSAgICAgICAgY29k
ZSA9IG0uZ3JvdXAoMSkKLSAgICAgICAgIyA0LjEgMzAuIGlmIC9jb2RlLyBpcyBub3QgdGhyZWUg
Ynl0ZXMgbG9uZywgb3IgaWYgYW55IG9mIHRoZSBieXRlcyBpbgotICAgICAgICAjIC9jb2RlLyBh
cmUgbm90IGluIHRoZSByYW5nZSAweDMwIHRvIDB4OTAsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0
Ci0gICAgICAgICMgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlm
IG5vdCByZS5tYXRjaCgnWzAtOV1bMC05XVswLTldJywgY29kZSk6Ci0gICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0hUVFAgc3RhdHVzIGNvZGUgJXIgaXMgbm90
IHRocmVlIGRpZ2l0IGluIHN0YXR1cyBsaW5lOiAlcicgJQotICAgICAgICAgICAgICAgIChjb2Rl
LCBmaWVsZCkpCi0gICAgICAgICMgNC4xIDMxLiBpZiAvY29kZS8sIGludGVycHJldGVkIGFzIFVU
Ri04LCBpcyAiMTAxIiwgdGhlbiBtb3ZlIHRvIHRoZQotICAgICAgICAjIG5leHQgc3RlcC4KLSAg
ICAgICAgaWYgY29kZSAhPSAnMTAxJzoKLSAgICAgICAgICAgIHJhaXNlIEh0dHBTdGF0dXNFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgJ0V4cGVjdGVkIEhUVFAgc3RhdHVzIGNvZGUgMTAxIGJ1
dCBmb3VuZCAlciBpbiBzdGF0dXMgbGluZTogJwotICAgICAgICAgICAgICAgICclcicgJSAoY29k
ZSwgZmllbGQpLCBpbnQoY29kZSkpCi0gICAgICAgICMgNC4xIDMyLTM5LiByZWFkIGZpZWxkcyBp
bnRvIC9maWVsZHMvCi0gICAgICAgIGZpZWxkcyA9IF9yZWFkX2ZpZWxkcyhzZWxmLl9zb2NrZXQp
Ci0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXNwb25z
ZSBoZWFkZXJzOiAlcicsIGZpZWxkcykKLQotICAgICAgICAjIDQuMSA0MC4gX0ZpZWxkcyBwcm9j
ZXNzaW5nXwotICAgICAgICAjIHJlYWQgYSBieXRlIGZyb20gc2VydmVyCi0gICAgICAgIGNoID0g
cmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgIGlmIGNoICE9ICdcbic6ICAj
IDB4MEEKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRXhwZWN0ZWQgTEYgYnV0IGZvdW5k
ICVyJyAlIGNoKQotICAgICAgICAjIDQuMSA0MS4gY2hlY2sgL2ZpZWxkcy8KLSAgICAgICAgaWYg
bGVuKGZpZWxkc1sndXBncmFkZSddKSAhPSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBVcGdyYWRlIGhlYWRlcnMgZm91bmQ6ICVzJyAl
IGZpZWxkc1sndXBncmFkZSddKQotICAgICAgICBpZiBsZW4oZmllbGRzWydjb25uZWN0aW9uJ10p
ICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011
bHRpcGxlIENvbm5lY3Rpb24gaGVhZGVycyBmb3VuZDogJXMnICUgZmllbGRzWydjb25uZWN0aW9u
J10pCi0gICAgICAgIGlmIGxlbihmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtb3JpZ2luJ10pICE9IDE6
Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxl
IFNlYy1XZWJTb2NrZXQtT3JpZ2luIGhlYWRlcnMgZm91bmQ6ICVzJyAlCi0gICAgICAgICAgICAg
ICAgZmllbGRzWydzZWMtc2Vic29ja2V0LW9yaWdpbiddKQotICAgICAgICBpZiBsZW4oZmllbGRz
WydzZWMtd2Vic29ja2V0LWxvY2F0aW9uJ10pICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIFNlYy1XZWJTb2NrZXQtTG9jYXRpb24g
aGVhZGVycyBmb3VuZDogJXMnICUKLSAgICAgICAgICAgICAgICBmaWVsZHNbJ3NlYy1zZWJzb2Nr
ZXQtbG9jYXRpb24nXSkKLSAgICAgICAgIyBUT0RPKHVrYWkpOiBwcm90b2NvbAotICAgICAgICAj
IGlmIHRoZSBlbnRyeSdzIG5hbWUgaXMgInVwZ3JhZGUiCi0gICAgICAgICMgIGlmIHRoZSB2YWx1
ZSBpcyBub3QgZXhhY3RseSBlcXVhbCB0byB0aGUgc3RyaW5nICJXZWJTb2NrZXQiLAotICAgICAg
ICAjICB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBz
dGVwcy4KLSAgICAgICAgaWYgZmllbGRzWyd1cGdyYWRlJ11bMF0gIT0gJ1dlYlNvY2tldCc6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQg
VXBncmFkZSBoZWFkZXIgdmFsdWU6ICVzJyAlIGZpZWxkc1sndXBncmFkZSddWzBdKQotICAgICAg
ICAjIGlmIHRoZSBlbnRyeSdzIG5hbWUgaXMgImNvbm5lY3Rpb24iCi0gICAgICAgICMgIGlmIHRo
ZSB2YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgaXMgbm90IGV4YWN0bHkgZXF1
YWwKLSAgICAgICAgIyAgdG8gdGhlIHN0cmluZyAidXBncmFkZSIsIHRoZW4gZmFpbCB0aGUgV2Vi
U29ja2V0IGNvbm5lY3Rpb24gYW5kCi0gICAgICAgICMgIGFib3J0IHRoZXNlIHN0ZXBzLgotICAg
ICAgICBpZiBmaWVsZHNbJ2Nvbm5lY3Rpb24nXVswXS5sb3dlcigpICE9ICd1cGdyYWRlJzoKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBD
b25uZWN0aW9uIGhlYWRlciB2YWx1ZTogJXMnICUKLSAgICAgICAgICAgICAgICBmaWVsZHNbJ2Nv
bm5lY3Rpb24nXVswXSkKLSAgICAgICAgIyBUT0RPKHVrYWkpOiBjaGVjayBvcmlnaW4sIGxvY2F0
aW9uLCBjb29raWUsIC4uCi0KLSAgICAgICAgIyA0LjEgNDIuIGxldCAvY2hhbGxlbmdlLyBiZSB0
aGUgY29uY2F0ZW5hdGlvbiBvZiAvbnVtYmVyXzEvLAotICAgICAgICAjIGV4cHJlc3NlZCBhcyBh
IGJpZyBlbmRpYW4gMzIgYml0IGludGVnZXIsIC9udW1iZXJfMi8sIGV4cHJlc3NlZAotICAgICAg
ICAjIGFzIGJpZyBlbmRpYW4gMzIgYml0IGludGVnZXIsIGFuZCB0aGUgZWlnaHQgYnl0ZXMgb2Yg
L2tleV8zLyBpbiB0aGUKLSAgICAgICAgIyBvcmRlciB0aGV5IHdlcmUgc2VudCBvbiB0aGUgd2ly
ZS4KLSAgICAgICAgY2hhbGxlbmdlID0gc3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVtYmVyMSkK
LSAgICAgICAgY2hhbGxlbmdlICs9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjIpCi0g
ICAgICAgIGNoYWxsZW5nZSArPSBzZWxmLl9rZXkzCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKAotICAgICAgICAgICAgJ0NoYWxsZW5nZTogJXIgKCVzKScsIGNoYWxsZW5nZSwgdXRpbC5o
ZXhpZnkoY2hhbGxlbmdlKSkKLQotICAgICAgICAjIDQuMSA0My4gbGV0IC9leHBlY3RlZC8gYmUg
dGhlIE1ENSBmaW5nZXJwcmludCBvZiAvY2hhbGxlbmdlLyBhcyBhCi0gICAgICAgICMgYmlnLWVu
ZGlhbiAxMjggYml0IHN0cmluZy4KLSAgICAgICAgZXhwZWN0ZWQgPSB1dGlsLm1kNV9oYXNoKGNo
YWxsZW5nZSkuZGlnZXN0KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAg
ICAgJ0V4cGVjdGVkIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsCi0gICAgICAgICAgICBl
eHBlY3RlZCwgdXRpbC5oZXhpZnkoZXhwZWN0ZWQpKQotCi0gICAgICAgICMgNC4xIDQ0LiByZWFk
IHNpeHRlZW4gYnl0ZXMgZnJvbSB0aGUgc2VydmVyLgotICAgICAgICAjIGxldCAvcmVwbHkvIGJl
IHRob3NlIGJ5dGVzLgotICAgICAgICByZXBseSA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0
LCAxNikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0FjdHVhbCBj
aGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLCByZXBseSwgdXRpbC5oZXhpZnkocmVwbHkpKQot
Ci0gICAgICAgICMgNC4xIDQ1LiBpZiAvcmVwbHkvIGRvZXMgbm90IGV4YWN0bHkgZXF1YWwgL2V4
cGVjdGVkLywgdGhlbiBmYWlsCi0gICAgICAgICMgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgZXhwZWN0ZWQgIT0gcmVwbHk6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0JhZCBjaGFsbGVuZ2Ug
cmVzcG9uc2U6ICVyIChleHBlY3RlZCkgIT0gJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAg
ICAoZXhwZWN0ZWQsIHJlcGx5KSkKLSAgICAgICAgIyA0LjEgNDYuIFRoZSAqV2ViU29ja2V0IGNv
bm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQqLgotCi0gICAgZGVmIF9nZW5lcmF0ZV9zZWNfd2Vic29j
a2V0X2tleShzZWxmKToKLSAgICAgICAgIyA0LjEgMTYuIGxldCAvc3BhY2VzX24vIGJlIGEgcmFu
ZG9tIGludGVnZXIgZnJvbSAxIHRvIDEyIGluY2x1c2l2ZS4KLSAgICAgICAgc3BhY2VzID0gcmFu
ZG9tLnJhbmRpbnQoMSwgMTIpCi0gICAgICAgICMgNC4xIDE3LiBsZXQgL21heF9uLyBiZSB0aGUg
bGFyZ2VzdCBpbnRlZ2VyIG5vdCBncmVhdGVyIHRoYW4KLSAgICAgICAgIyAgNCwyOTQsOTY3LDI5
NSBkaXZpZGVkIGJ5IC9zcGFjZXNfbi8uCi0gICAgICAgIG1heG51bSA9IDQyOTQ5NjcyOTUgLyBz
cGFjZXMKLSAgICAgICAgIyA0LjEgMTguIGxldCAvbnVtYmVyX24vIGJlIGEgcmFuZG9tIGludGVn
ZXIgZnJvbSAwIHRvIC9tYXhfbi8KLSAgICAgICAgIyBpbmNsdXNpdmUuCi0gICAgICAgIG51bWJl
ciA9IHJhbmRvbS5yYW5kaW50KDAsIG1heG51bSkKLSAgICAgICAgIyA0LjEgMTkuIGxldCAvcHJv
ZHVjdF9uLyBiZSB0aGUgcmVzdWx0IG9mIG11bHRpcGx5aW5nIC9udW1iZXJfbi8gYW5kCi0gICAg
ICAgICMgL3NwYWNlc19uLyB0b2dldGhlci4KLSAgICAgICAgcHJvZHVjdCA9IG51bWJlciAqIHNw
YWNlcwotICAgICAgICAjIDQuMSAyMC4gbGV0IC9rZXlfbi8gYmUgYSBzdHJpbmcgY29uc2lzdGlu
ZyBvZiAvcHJvZHVjdF9uLywgZXhwcmVzc2VkCi0gICAgICAgICMgaW4gYmFzZSB0ZW4gdXNpbmcg
dGhlIG51bWVyYWxzIGluIHRoZSByYW5nZSBVKzAwMzAgRElHSVQgWkVSTyAoMCkgdG8KLSAgICAg
ICAgIyBVKzAwMzkgRElHSVQgTklORSAoOSkuCi0gICAgICAgIGtleSA9IHN0cihwcm9kdWN0KQot
ICAgICAgICAjIDQuMSAyMS4gaW5zZXJ0IGJldHdlZW4gb25lIGFuZCB0d2VsdmUgcmFuZG9tIGNo
YXJhY3RlcnMgZnJvbSB0aGUKLSAgICAgICAgIyByYW5nZSBVKzAwMjEgdG8gVSswMDJGIGFuZCBV
KzAwM0EgdG8gVSswMDdFIGludG8gL2tleV9uLyBhdCByYW5kb20KLSAgICAgICAgIyBwb3NpdGlv
bnMuCi0gICAgICAgIGF2YWlsYWJsZV9jaGFycyA9IHJhbmdlKDB4MjEsIDB4MmYgKyAxKSArIHJh
bmdlKDB4M2EsIDB4N2UgKyAxKQotICAgICAgICBuID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCi0g
ICAgICAgIGZvciBfIGluIHhyYW5nZShuKToKLSAgICAgICAgICAgIGNoID0gcmFuZG9tLmNob2lj
ZShhdmFpbGFibGVfY2hhcnMpCi0gICAgICAgICAgICBwb3MgPSByYW5kb20ucmFuZGludCgwLCBs
ZW4oa2V5KSkKLSAgICAgICAgICAgIGtleSA9IGtleVswOnBvc10gKyBjaHIoY2gpICsga2V5W3Bv
czpdCi0gICAgICAgICMgNC4xIDIyLiBpbnNlcnQgL3NwYWNlc19uLyBVKzAwMjAgU1BBQ0UgY2hh
cmFjdGVycyBpbnRvIC9rZXlfbi8gYXQKLSAgICAgICAgIyByYW5kb20gcG9zaXRpb25zIG90aGVy
IHRoYW4gc3RhcnQgb3IgZW5kIG9mIHRoZSBzdHJpbmcuCi0gICAgICAgIGZvciBfIGluIHhyYW5n
ZShzcGFjZXMpOgotICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQoMSwgbGVuKGtleSkg
LSAxKQotICAgICAgICAgICAga2V5ID0ga2V5WzA6cG9zXSArICcgJyArIGtleVtwb3M6XQotICAg
ICAgICByZXR1cm4gbnVtYmVyLCBrZXkKLQotICAgIGRlZiBfZ2VuZXJhdGVfa2V5MyhzZWxmKToK
LSAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5My8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiBl
aWdodCByYW5kb20gYnl0ZXMgKG9yCi0gICAgICAgICMgZXF1aXZhbGVudGx5LCBhIHJhbmRvbSA2
NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEgYmlnLWVuZGlhbiBvcmRlcikuCi0gICAgICAgIHJl
dHVybiAnJy5qb2luKFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIF8gaW4geHJhbmdl
KDgpXSkKLQotCi1jbGFzcyBXZWJTb2NrZXRIaXhpZTc1SGFuZHNoYWtlKG9iamVjdCk6Ci0gICAg
IiIiV2ViU29ja2V0IGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIElFVEYgSGl4aWUgNzUuIiIiCi0K
LSAgICBfRVhQRUNURURfUkVTUE9OU0UgPSAoCi0gICAgICAgICdIVFRQLzEuMSAxMDEgV2ViIFNv
Y2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJyArCi0gICAgICAgIF9VUEdSQURFX0hFQURFUl9I
SVhJRTc1ICsKLSAgICAgICAgX0NPTk5FQ1RJT05fSEVBREVSKQotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIG9wdGlvbnMpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19s
b2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAgZGVm
IF9za2lwX2hlYWRlcnMoc2VsZik6Ci0gICAgICAgIHRlcm1pbmF0b3IgPSAnXHJcblxyXG4nCi0g
ICAgICAgIHBvcyA9IDAKLSAgICAgICAgd2hpbGUgcG9zIDwgbGVuKHRlcm1pbmF0b3IpOgotICAg
ICAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAg
ICAgICAgIGlmIHJlY2VpdmVkID09IHRlcm1pbmF0b3JbcG9zXToKLSAgICAgICAgICAgICAgICBw
b3MgKz0gMQotICAgICAgICAgICAgZWxpZiByZWNlaXZlZCA9PSB0ZXJtaW5hdG9yWzBdOgotICAg
ICAgICAgICAgICAgIHBvcyA9IDEKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
cG9zID0gMAotCi0gICAgZGVmIGhhbmRzaGFrZShzZWxmLCBzb2NrZXQpOgotICAgICAgICBzZWxm
Ll9zb2NrZXQgPSBzb2NrZXQKLQotICAgICAgICByZXF1ZXN0X2xpbmUgPSBfbWV0aG9kX2xpbmUo
c2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVu
aW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywgcmVxdWVzdF9saW5lKQotICAgICAgICBz
ZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCi0KLSAgICAgICAgaGVhZGVycyA9IF9V
UEdSQURFX0hFQURFUl9ISVhJRTc1ICsgX0NPTk5FQ1RJT05fSEVBREVSCi0gICAgICAgIGhlYWRl
cnMgKz0gX2Zvcm1hdF9ob3N0X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2Vy
dmVyX2hvc3QsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQotICAgICAgICBoZWFkZXJzICs9IF9vcmlnaW5f
aGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J09wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QgaGVhZGVyczogJXInLCBoZWFkZXJzKQotICAgICAg
ICBzZWxmLl9zb2NrZXQuc2VuZGFsbChoZWFkZXJzKQotCi0gICAgICAgIHNlbGYuX3NvY2tldC5z
ZW5kYWxsKCdcclxuJykKLQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2VudCBvcGVuaW5n
IGhhbmRzaGFrZSByZXF1ZXN0JykKLQotICAgICAgICBmb3IgZXhwZWN0ZWRfY2hhciBpbiBXZWJT
b2NrZXRIaXhpZTc1SGFuZHNoYWtlLl9FWFBFQ1RFRF9SRVNQT05TRToKLSAgICAgICAgICAgIHJl
Y2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBpZiBl
eHBlY3RlZF9jaGFyICE9IHJlY2VpdmVkOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignSGFuZHNoYWtlIGZhaWx1cmUnKQotICAgICAgICAjIFdlIGN1dCBjb3JuZXJzIGFuZCBza2lw
IG90aGVyIGhlYWRlcnMuCi0gICAgICAgIHNlbGYuX3NraXBfaGVhZGVycygpCi0KLQotY2xhc3Mg
V2ViU29ja2V0U3RyZWFtKG9iamVjdCk6Ci0gICAgIiIiRnJhbWUgcHJvY2Vzc29yIGZvciB0aGUg
V2ViU29ja2V0IHByb3RvY29sIChSRkMgNjQ1NSkuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
Ziwgc29ja2V0LCBoYW5kc2hha2UpOgotICAgICAgICBzZWxmLl9oYW5kc2hha2UgPSBoYW5kc2hh
a2UKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICAgICAgIyBGaWx0ZXJzIGFw
cGxpZWQgdG8gYXBwbGljYXRpb24gZGF0YSBwYXJ0IG9mIGRhdGEgZnJhbWVzLgotICAgICAgICBz
ZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX2luY29taW5n
X2ZyYW1lX2ZpbHRlciA9IE5vbmUKLQotICAgICAgICBpZiBzZWxmLl9oYW5kc2hha2UuX29wdGlv
bnMudXNlX2RlZmxhdGVfZnJhbWU6Ci0gICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9m
aWx0ZXIgPSAoCi0gICAgICAgICAgICAgICAgdXRpbC5fUkZDMTk3OURlZmxhdGVyKE5vbmUsIEZh
bHNlKSkKLSAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlciA9IHV0aWwuX1JG
QzE5NzlJbmZsYXRlcigpCi0KLSAgICAgICAgc2VsZi5fZnJhZ21lbnRlZCA9IEZhbHNlCi0KLSAg
ICBkZWYgX21hc2tfaHliaShzZWxmLCBzKToKLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogb3Mu
dXJhbmRvbSBkb2VzIG9wZW4vcmVhZC9jbG9zZSBmb3IgZXZlcnkgY2FsbC4gSWYKLSAgICAgICAg
IyBwZXJmb3JtYW5jZSBtYXR0ZXJzLCBjaGFuZ2UgdGhpcyB0byBzb21lIGxpYnJhcnkgY2FsbCB0
aGF0IGdlbmVyYXRlcwotICAgICAgICAjIGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSBwc2V1ZG8g
cmFuZG9tIG51bWJlciBzZXF1ZW5jZS4KLSAgICAgICAgbWFza2luZ19ub25jZSA9IG9zLnVyYW5k
b20oNCkKLSAgICAgICAgcmVzdWx0ID0gW21hc2tpbmdfbm9uY2VdCi0gICAgICAgIGNvdW50ID0g
MAotICAgICAgICBmb3IgYyBpbiBzOgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjaHIob3Jk
KGMpIF4gb3JkKG1hc2tpbmdfbm9uY2VbY291bnRdKSkpCi0gICAgICAgICAgICBjb3VudCA9IChj
b3VudCArIDEpICUgbGVuKG1hc2tpbmdfbm9uY2UpCi0gICAgICAgIHJldHVybiAnJy5qb2luKHJl
c3VsdCkKLQotICAgIGRlZiBzZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9ieXRlcyhzZWxmLCBoZWFk
ZXIsIGJvZHkpOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChoZWFkZXIgKyBzZWxmLl9t
YXNrX2h5YmkoYm9keSkpCi0KLSAgICBkZWYgc2VuZF9kYXRhKHNlbGYsIHBheWxvYWQsIGZyYW1l
X3R5cGUsIGVuZD1UcnVlLCBtYXNrPVRydWUsCi0gICAgICAgICAgICAgICAgICByc3YxPTAsIHJz
djI9MCwgcnN2Mz0wKToKLSAgICAgICAgaWYgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgcGF5bG9hZCA9IHNlbGYuX291dGdvaW5nX2ZyYW1lX2Zp
bHRlci5maWx0ZXIocGF5bG9hZCkKLQotICAgICAgICBpZiBzZWxmLl9mcmFnbWVudGVkOgotICAg
ICAgICAgICAgb3Bjb2RlID0gT1BDT0RFX0NPTlRJTlVBVElPTgotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgb3Bjb2RlID0gZnJhbWVfdHlwZQotCi0gICAgICAgIGlmIGVuZDoKLSAgICAgICAg
ICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBGYWxzZQotICAgICAgICAgICAgZmluID0gMQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fZnJhZ21lbnRlZCA9IFRydWUKLSAgICAgICAgICAg
IGZpbiA9IDAKLQotICAgICAgICBpZiBzZWxmLl9oYW5kc2hha2UuX29wdGlvbnMudXNlX2RlZmxh
dGVfZnJhbWU6Ci0gICAgICAgICAgICByc3YxID0gMQotCi0gICAgICAgIGlmIG1hc2s6Ci0gICAg
ICAgICAgICBtYXNrX2JpdCA9IDEgPDwgNwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbWFz
a19iaXQgPSAwCi0KLSAgICAgICAgaGVhZGVyID0gY2hyKGZpbiA8PCA3IHwgcnN2MSA8PCA2IHwg
cnN2MiA8PCA1IHwgcnN2MyA8PCA0IHwgb3Bjb2RlKQotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9
IGxlbihwYXlsb2FkKQotICAgICAgICBpZiBwYXlsb2FkX2xlbmd0aCA8PSAxMjU6Ci0gICAgICAg
ICAgICBoZWFkZXIgKz0gY2hyKG1hc2tfYml0IHwgcGF5bG9hZF9sZW5ndGgpCi0gICAgICAgIGVs
aWYgcGF5bG9hZF9sZW5ndGggPCAxIDw8IDE2OgotICAgICAgICAgICAgaGVhZGVyICs9IGNociht
YXNrX2JpdCB8IDEyNikgKyBzdHJ1Y3QucGFjaygnIUgnLCBwYXlsb2FkX2xlbmd0aCkKLSAgICAg
ICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA8IDEgPDwgNjM6Ci0gICAgICAgICAgICBoZWFkZXIgKz0g
Y2hyKG1hc2tfYml0IHwgMTI3KSArIHN0cnVjdC5wYWNrKCchUScsIHBheWxvYWRfbGVuZ3RoKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUb28gbG9uZyBwYXls
b2FkICglZCBieXRlKScgJSBwYXlsb2FkX2xlbmd0aCkKLSAgICAgICAgaWYgbWFzazoKLSAgICAg
ICAgICAgIHBheWxvYWQgPSBzZWxmLl9tYXNrX2h5YmkocGF5bG9hZCkKLSAgICAgICAgc2VsZi5f
c29ja2V0LnNlbmRhbGwoaGVhZGVyICsgcGF5bG9hZCkKLQotICAgIGRlZiBzZW5kX2JpbmFyeShz
ZWxmLCBwYXlsb2FkLCBlbmQ9VHJ1ZSwgbWFzaz1UcnVlKToKLSAgICAgICAgc2VsZi5zZW5kX2Rh
dGEocGF5bG9hZCwgT1BDT0RFX0JJTkFSWSwgZW5kLCBtYXNrKQotCi0gICAgZGVmIHNlbmRfdGV4
dChzZWxmLCBwYXlsb2FkLCBlbmQ9VHJ1ZSwgbWFzaz1UcnVlKToKLSAgICAgICAgc2VsZi5zZW5k
X2RhdGEocGF5bG9hZC5lbmNvZGUoJ3V0Zi04JyksIE9QQ09ERV9URVhULCBlbmQsIG1hc2spCi0K
LSAgICBkZWYgX2Fzc2VydF9yZWNlaXZlX2RhdGEoc2VsZiwgcGF5bG9hZCwgb3Bjb2RlLCBmaW4s
IHJzdjEsIHJzdjIsIHJzdjMpOgotICAgICAgICAoYWN0dWFsX2ZpbiwgYWN0dWFsX3JzdjEsIGFj
dHVhbF9yc3YyLCBhY3R1YWxfcnN2MywgYWN0dWFsX29wY29kZSwKLSAgICAgICAgIHBheWxvYWRf
bGVuZ3RoKSA9IHJlYWRfZnJhbWVfaGVhZGVyKHNlbGYuX3NvY2tldCkKLQotICAgICAgICBpZiBh
Y3R1YWxfb3Bjb2RlICE9IG9wY29kZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnVW5leHBlY3RlZCBvcGNvZGU6ICVkIChleHBlY3RlZCkgdnMgJWQgKGFj
dHVhbCknICUKLSAgICAgICAgICAgICAgICAob3Bjb2RlLCBhY3R1YWxfb3Bjb2RlKSkKLQotICAg
ICAgICBpZiBhY3R1YWxfZmluICE9IGZpbjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBmaW46ICVkIChleHBlY3RlZCkgdnMgJWQgKGFj
dHVhbCknICUKLSAgICAgICAgICAgICAgICAoZmluLCBhY3R1YWxfZmluKSkKLQotICAgICAgICBp
ZiByc3YxIGlzIE5vbmU6Ci0gICAgICAgICAgICByc3YxID0gMAotICAgICAgICAgICAgaWYgc2Vs
Zi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAgICAg
IHJzdjEgPSAxCi0KLSAgICAgICAgaWYgcnN2MiBpcyBOb25lOgotICAgICAgICAgICAgcnN2MiA9
IDAKLQotICAgICAgICBpZiByc3YzIGlzIE5vbmU6Ci0gICAgICAgICAgICByc3YzID0gMAotCi0g
ICAgICAgIGlmIGFjdHVhbF9yc3YxICE9IHJzdjE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcnN2MTogJXIgKGV4cGVjdGVkKSB2cyAl
ciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChyc3YxLCBhY3R1YWxfcnN2MSkpCi0KLSAg
ICAgICAgaWYgYWN0dWFsX3JzdjIgIT0gcnN2MjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCByc3YyOiAlciAoZXhwZWN0ZWQpIHZzICVy
IChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKHJzdjIsIGFjdHVhbF9yc3YyKSkKLQotICAg
ICAgICBpZiBhY3R1YWxfcnN2MyAhPSByc3YzOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIHJzdjM6ICVyIChleHBlY3RlZCkgdnMgJXIg
KGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAocnN2MywgYWN0dWFsX3JzdjMpKQotCi0gICAg
ICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIHBheWxvYWRfbGVuZ3Ro
KQotCi0gICAgICAgIGlmIHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlciBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHJlY2VpdmVkID0gc2VsZi5faW5jb21pbmdfZnJhbWVfZmlsdGVyLmZpbHRl
cihyZWNlaXZlZCkKLQotICAgICAgICBpZiBsZW4ocmVjZWl2ZWQpICE9IGxlbihwYXlsb2FkKToK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3Rl
ZCBwYXlsb2FkIGxlbmd0aDogJWQgKGV4cGVjdGVkKSB2cyAlZCAoYWN0dWFsKScgJQotICAgICAg
ICAgICAgICAgIChsZW4ocGF5bG9hZCksIGxlbihyZWNlaXZlZCkpKQotCi0gICAgICAgIGlmIHBh
eWxvYWQgIT0gcmVjZWl2ZWQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5bG9hZDogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFs
KScgJQotICAgICAgICAgICAgICAgIChwYXlsb2FkLCByZWNlaXZlZCkpCi0KLSAgICBkZWYgYXNz
ZXJ0X3JlY2VpdmVfYmluYXJ5KHNlbGYsIHBheWxvYWQsIG9wY29kZT1PUENPREVfQklOQVJZLCBm
aW49MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9Tm9uZSwgcnN2Mj1Ob25l
LCByc3YzPU5vbmUpOgotICAgICAgICBzZWxmLl9hc3NlcnRfcmVjZWl2ZV9kYXRhKHBheWxvYWQs
IG9wY29kZSwgZmluLCByc3YxLCByc3YyLCByc3YzKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZl
X3RleHQoc2VsZiwgcGF5bG9hZCwgb3Bjb2RlPU9QQ09ERV9URVhULCBmaW49MSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByc3YxPU5vbmUsIHJzdjI9Tm9uZSwgcnN2Mz1Ob25lKToKLSAg
ICAgICAgc2VsZi5fYXNzZXJ0X3JlY2VpdmVfZGF0YShwYXlsb2FkLmVuY29kZSgndXRmLTgnKSwg
b3Bjb2RlLCBmaW4sIHJzdjEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2
MiwgcnN2MykKLQotICAgIGRlZiBfYnVpbGRfY2xvc2VfZnJhbWUoc2VsZiwgY29kZSwgcmVhc29u
LCBtYXNrKToKLSAgICAgICAgZnJhbWUgPSBjaHIoMSA8PCA3IHwgT1BDT0RFX0NMT1NFKQotCi0g
ICAgICAgIGlmIGNvZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBib2R5ID0gc3RydWN0LnBh
Y2soJyFIJywgY29kZSkgKyByZWFzb24uZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBib2R5ID0gJycKLSAgICAgICAgaWYgbWFzazoKLSAgICAgICAgICAgIGZyYW1l
ICs9IGNocigxIDw8IDcgfCBsZW4oYm9keSkpICsgc2VsZi5fbWFza19oeWJpKGJvZHkpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBmcmFtZSArPSBjaHIobGVuKGJvZHkpKSArIGJvZHkKLSAg
ICAgICAgcmV0dXJuIGZyYW1lCi0KLSAgICBkZWYgc2VuZF9jbG9zZShzZWxmLCBjb2RlLCByZWFz
b24pOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgKLSAgICAgICAgICAgIHNlbGYuX2J1
aWxkX2Nsb3NlX2ZyYW1lKGNvZGUsIHJlYXNvbiwgVHJ1ZSkpCi0KLSAgICBkZWYgYXNzZXJ0X3Jl
Y2VpdmVfY2xvc2Uoc2VsZiwgY29kZSwgcmVhc29uKToKLSAgICAgICAgZXhwZWN0ZWRfZnJhbWUg
PSBzZWxmLl9idWlsZF9jbG9zZV9mcmFtZShjb2RlLCByZWFzb24sIEZhbHNlKQotICAgICAgICBh
Y3R1YWxfZnJhbWUgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgbGVuKGV4cGVjdGVkX2Zy
YW1lKSkKLSAgICAgICAgaWYgYWN0dWFsX2ZyYW1lICE9IGV4cGVjdGVkX2ZyYW1lOgotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGNsb3Nl
IGZyYW1lOiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAg
KGV4cGVjdGVkX2ZyYW1lLCBhY3R1YWxfZnJhbWUpKQotCi0KLWNsYXNzIFdlYlNvY2tldFN0cmVh
bUhpeGllNzUob2JqZWN0KToKLSAgICAiIiJGcmFtZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2Nr
ZXQgcHJvdG9jb2wgdmVyc2lvbiBIaXhpZSA3NSBhbmQgSHlCaSAwMC4KLSAgICAiIiIKLQotICAg
IF9DTE9TRV9GUkFNRSA9ICdceGZmXHgwMCcKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb2Nr
ZXQsIHVudXNlZF9oYW5kc2hha2UpOgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQot
ICAgIGRlZiBzZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9ieXRlcyhzZWxmLCBoZWFkZXIsIGJvZHkp
OgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChoZWFkZXIgKyBib2R5KQotCi0gICAgZGVm
IHNlbmRfZGF0YShzZWxmLCBwYXlsb2FkLCB1bnVzZWRfZnJhbWVfdHlwZW0sIHVudXNlZF9lbmQs
IHVudXNlZF9tYXNrKToKLSAgICAgICAgZnJhbWUgPSAnJy5qb2luKFsnXHgwMCcsIHBheWxvYWQs
ICdceGZmJ10pCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZyYW1lKQotCi0gICAgZGVm
IHNlbmRfYmluYXJ5KHNlbGYsIHVudXNlZF9wYXlsb2FkLCB1bnVzZWRfZW5kLCB1bnVzZWRfbWFz
ayk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBzZW5kX3RleHQoc2VsZiwgcGF5bG9hZCwgdW51
c2VkX2VuZCwgdW51c2VkX21hc2spOgotICAgICAgICBlbmNvZGVkX3BheWxvYWQgPSBwYXlsb2Fk
LmVuY29kZSgndXRmLTgnKQotICAgICAgICBmcmFtZSA9ICcnLmpvaW4oWydceDAwJywgZW5jb2Rl
ZF9wYXlsb2FkLCAnXHhmZiddKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmcmFtZSkK
LQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9iaW5hcnkoc2VsZiwgcGF5bG9hZCwgb3Bjb2RlPU9Q
Q09ERV9CSU5BUlksIGZpbj0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT0w
LCByc3YyPTAsIHJzdjM9MCk6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQmluYXJ5IGZyYW1l
IGlzIG5vdCBzdXBwb3J0ZWQgaW4gaGl4aWU3NScpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVf
dGV4dChzZWxmLCBwYXlsb2FkKToKLSAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNl
bGYuX3NvY2tldCwgMSkKLQotICAgICAgICBpZiByZWNlaXZlZCAhPSAnXHgwMCc6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZnJhbWUg
dHlwZTogJWQgKGV4cGVjdGVkKSB2cyAlZCAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgICgw
LCBvcmQocmVjZWl2ZWQpKSkKLQotICAgICAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc2Vs
Zi5fc29ja2V0LCBsZW4ocGF5bG9hZCkgKyAxKQotICAgICAgICBpZiByZWNlaXZlZFstMV0gIT0g
J1x4ZmYnOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdU
ZXJtaW5hdGlvbiBleHBlY3RlZDogMHhmZiAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0g
ICAgICAgICAgICAgICAgcmVjZWl2ZWQpCi0KLSAgICAgICAgaWYgcmVjZWl2ZWRbMDotMV0gIT0g
cGF5bG9hZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAn
VW5leHBlY3RlZCBwYXlsb2FkOiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAg
ICAgICAgICAgICAgKHBheWxvYWQsIHJlY2VpdmVkWzA6LTFdKSkKLQotICAgIGRlZiBzZW5kX2Ns
b3NlKHNlbGYsIGNvZGUsIHJlYXNvbik6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHNl
bGYuX0NMT1NFX0ZSQU1FKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYsIHVu
dXNlZF9jb2RlLCB1bnVzZWRfcmVhc29uKToKLSAgICAgICAgY2xvc2luZyA9IHJlY2VpdmVfYnl0
ZXMoc2VsZi5fc29ja2V0LCBsZW4oc2VsZi5fQ0xPU0VfRlJBTUUpKQotICAgICAgICBpZiBjbG9z
aW5nICE9IHNlbGYuX0NMT1NFX0ZSQU1FOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdE
aWRuXCd0IHJlY2VpdmUgY2xvc2luZyBoYW5kc2hha2UnKQotCi0KLWNsYXNzIENsaWVudE9wdGlv
bnMob2JqZWN0KToKLSAgICAiIiJIb2xkcyBvcHRpb24gdmFsdWVzIHRvIGNvbmZpZ3VyZSB0aGUg
Q2xpZW50IG9iamVjdC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2Vs
Zi52ZXJzaW9uID0gMTMKLSAgICAgICAgc2VsZi5zZXJ2ZXJfaG9zdCA9ICcnCi0gICAgICAgIHNl
bGYub3JpZ2luID0gJycKLSAgICAgICAgc2VsZi5yZXNvdXJjZSA9ICcnCi0gICAgICAgIHNlbGYu
c2VydmVyX3BvcnQgPSAtMQotICAgICAgICBzZWxmLnNvY2tldF90aW1lb3V0ID0gMTAwMAotICAg
ICAgICBzZWxmLnVzZV90bHMgPSBGYWxzZQotICAgICAgICBzZWxmLmV4dGVuc2lvbnMgPSBbXQot
ICAgICAgICAjIEVuYWJsZSBkZWZsYXRlLWFwcGxpY2F0aW9uLWRhdGEuCi0gICAgICAgIHNlbGYu
dXNlX2RlZmxhdGVfZnJhbWUgPSBGYWxzZQotICAgICAgICAjIEVuYWJsZSBtdXgKLSAgICAgICAg
c2VsZi51c2VfbXV4ID0gRmFsc2UKLQotICAgIGRlZiBlbmFibGVfZGVmbGF0ZV9mcmFtZShzZWxm
KToKLSAgICAgICAgc2VsZi51c2VfZGVmbGF0ZV9mcmFtZSA9IFRydWUKLSAgICAgICAgc2VsZi5l
eHRlbnNpb25zLmFwcGVuZChfREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0KLSAgICBkZWYgZW5h
YmxlX211eChzZWxmKToKLSAgICAgICAgc2VsZi51c2VfbXV4ID0gVHJ1ZQotICAgICAgICBzZWxm
LmV4dGVuc2lvbnMuYXBwZW5kKF9NVVhfRVhURU5TSU9OKQotCi0KLWRlZiBjb25uZWN0X3NvY2tl
dF93aXRoX3JldHJ5KGhvc3QsIHBvcnQsIHRpbWVvdXQsIHVzZV90bHMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXRyeT0xMCwgc2xlZXBfc2VjPTAuMSk6Ci0gICAgcmV0cnlfY291
bnQgPSAwCi0gICAgd2hpbGUgcmV0cnlfY291bnQgPCByZXRyeToKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKQotICAgICAgICAgICAgcy5zZXR0aW1lb3V0KHRp
bWVvdXQpCi0gICAgICAgICAgICBzLmNvbm5lY3QoKGhvc3QsIHBvcnQpKQotICAgICAgICAgICAg
aWYgdXNlX3RsczoKLSAgICAgICAgICAgICAgICByZXR1cm4gX1RMU1NvY2tldChzKQotICAgICAg
ICAgICAgcmV0dXJuIHMKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciwgZToKLSAgICAgICAg
ICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUNPTk5SRUZVU0VEOgotICAgICAgICAgICAgICAgIHJh
aXNlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJldHJ5X2NvdW50ID0gcmV0
cnlfY291bnQgKyAxCi0gICAgICAgICAgICAgICAgdGltZS5zbGVlcChzbGVlcF9zZWMpCi0KLSAg
ICByZXR1cm4gTm9uZQotCi0KLWNsYXNzIENsaWVudChvYmplY3QpOgotICAgICIiIldlYlNvY2tl
dCBjbGllbnQuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgaGFuZHNoYWtl
LCBzdHJlYW1fY2xhc3MpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19s
b2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBz
ZWxmLl9zb2NrZXQgPSBOb25lCi0KLSAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gaGFuZHNoYWtl
Ci0gICAgICAgIHNlbGYuX3N0cmVhbV9jbGFzcyA9IHN0cmVhbV9jbGFzcwotCi0gICAgZGVmIGNv
bm5lY3Qoc2VsZik6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9IGNvbm5lY3Rfc29ja2V0X3dpdGhf
cmV0cnkoCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMuc29ja2V0X3RpbWVvdXQsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9u
cy51c2VfdGxzKQotCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZS5oYW5kc2hha2Uoc2VsZi5fc29j
a2V0KQotCi0gICAgICAgIHNlbGYuX3N0cmVhbSA9IHNlbGYuX3N0cmVhbV9jbGFzcyhzZWxmLl9z
b2NrZXQsIHNlbGYuX2hhbmRzaGFrZSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQ29u
bmVjdGlvbiBlc3RhYmxpc2hlZCcpCi0KLSAgICBkZWYgc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlf
Ynl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfZnJh
bWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKGhlYWRlciwgYm9keSkKLQotICAgIGRlZiBzZW5kX21lc3Nh
Z2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSwgcmF3PUZhbHNlLAotICAg
ICAgICAgICAgICAgICAgICAgbWFzaz1UcnVlKToKLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAg
ICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KG1lc3NhZ2UsIGVuZCwgbWFzaykKLSAgICAg
ICAgZWxpZiByYXc6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9kYXRhKG1lc3NhZ2Us
IE9QQ09ERV9URVhULCBlbmQsIG1hc2spCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxm
Ll9zdHJlYW0uc2VuZF90ZXh0KG1lc3NhZ2UsIGVuZCwgbWFzaykKLQotICAgIGRlZiBhc3NlcnRf
cmVjZWl2ZShzZWxmLCBwYXlsb2FkLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICBpZiBiaW5hcnk6
Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KHBheWxvYWQp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVf
dGV4dChwYXlsb2FkKQotCi0gICAgZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY29kZT1TVEFUVVNfTk9S
TUFMX0NMT1NVUkUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2Nsb3Nl
KGNvZGUsIHJlYXNvbikKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9jbG9zZShzZWxmLCBjb2Rl
PVNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToKLSAgICAgICAgc2VsZi5fc3RyZWFt
LmFzc2VydF9yZWNlaXZlX2Nsb3NlKGNvZGUsIHJlYXNvbikKLQotICAgIGRlZiBjbG9zZV9zb2Nr
ZXQoc2VsZik6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5jbG9zZSgpCi0KLSAgICBkZWYgYXNzZXJ0
X2Nvbm5lY3Rpb25fY2xvc2VkKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZWFk
X2RhdGEgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIGlmIHN0cihlKS5maW5kKAotICAgICAgICAgICAgICAg
ICdDb25uZWN0aW9uIGNsb3NlZCBiZWZvcmUgcmVjZWl2aW5nIHJlcXVlc3RlZCBsZW5ndGggJykg
PT0gMDoKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICBlcnJvcl9udW1iZXIsIG1lc3NhZ2UgPSBlCi0gICAgICAgICAgICAgICAgZm9yIGVy
cm9yX25hbWUgaW4gWydFQ09OTlJFU0VUJywgJ1dTQUVDT05OUkVTRVQnXToKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGVycm9yX25hbWUgaW4gZGlyKGVycm5vKSBhbmQKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGVycm9yX251bWJlciA9PSBnZXRhdHRyKGVycm5vLCBlcnJvcl9uYW1lKSk6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGV4Y2VwdDoKLSAgICAg
ICAgICAgICAgICByYWlzZSBlCi0gICAgICAgICAgICByYWlzZSBlCi0KLSAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdDb25uZWN0aW9uIGlzIG5vdCBjbG9zZWQgKFJlYWQ6ICVyKScgJSByZWFkX2Rh
dGEpCi0KLQotZGVmIGNyZWF0ZV9jbGllbnQob3B0aW9ucyk6Ci0gICAgcmV0dXJuIENsaWVudCgK
LSAgICAgICAgb3B0aW9ucywgV2ViU29ja2V0SGFuZHNoYWtlKG9wdGlvbnMpLCBXZWJTb2NrZXRT
dHJlYW0pCi0KLQotZGVmIGNyZWF0ZV9jbGllbnRfaHliaTAwKG9wdGlvbnMpOgotICAgIHJldHVy
biBDbGllbnQoCi0gICAgICAgIG9wdGlvbnMsCi0gICAgICAgIFdlYlNvY2tldEh5YmkwMEhhbmRz
aGFrZShvcHRpb25zLCAnMCcpLAotICAgICAgICBXZWJTb2NrZXRTdHJlYW1IaXhpZTc1KQotCi0K
LWRlZiBjcmVhdGVfY2xpZW50X2hpeGllNzUob3B0aW9ucyk6Ci0gICAgcmV0dXJuIENsaWVudCgK
LSAgICAgICAgb3B0aW9ucywgV2ViU29ja2V0SGl4aWU3NUhhbmRzaGFrZShvcHRpb25zKSwgV2Vi
U29ja2V0U3RyZWFtSGl4aWU3NSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvZW5kdG9lbmRfd2l0aF9leHRlcm5hbF9zZXJ2ZXIucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0N2Y4NmZkYjQxNjNkNGU3Mzg5NTJiM2NjYjc3ZjE5MjE2YmM1OTE1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvZW5kdG9lbmRfd2l0aF9leHRlcm5hbF9zZXJ2ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2
NyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LSIiIlRlc3QgZm9yIGVuZC10by1lbmQgd2l0aCBleHRlcm5hbCBzZXJ2ZXIuCi0KLVRoaXMgdGVz
dCBpcyBub3QgcnVuIGJ5IHJ1bl9hbGwucHkgYmVjYXVzZSBpdCByZXF1aXJlcyBzb21lIHByZXBh
cmF0aW9ucy4KLUlmIHlvdSB3b3VsZCBsaWtlIHRvIHJ1biB0aGlzIHRlc3QgY29ycmVjdGx5LCBs
YXVuY2ggQXBhY2hlIHdpdGggbW9kX3B5dGhvbgotYW5kIG1vZF9weXdlYnNvY2tldCBtYW51YWxs
eS4gSW4gYWRkaXRpb24sIHlvdSBzaG91bGQgcGFzcyBhbGxvd19kcmFmdDc1IG9wdGlvbgotYW5k
IGV4YW1wbGUgcGF0aCBhcyBoYW5kbGVyX3NjYW4gb3B0aW9uIGFuZCBBcGFjaGUncyBEb2N1bWVu
dFJvb3QuCi0iIiIKLQotCi1pbXBvcnQgb3B0cGFyc2UKLWltcG9ydCBzeXMKLWltcG9ydCB0ZXN0
LnRlc3RfZW5kdG9lbmQKLWltcG9ydCB1bml0dGVzdAotCi0KLV9ERUZBVUxUX1dFQl9TT0NLRVRf
UE9SVCA9IDgwCi0KLQotY2xhc3MgRW5kVG9FbmRUZXN0V2l0aEV4dGVybmFsU2VydmVyKHRlc3Qu
dGVzdF9lbmR0b2VuZC5FbmRUb0VuZFRlc3QpOgotICAgIHBhc3MKLQotaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKLSAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQotICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBvcnQnLCBkZXN0PSdwb3J0JywgdHlwZT0naW50JywK
LSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCwK
LSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdleHRlcm5hbCB0ZXN0IHNlcnZlciBwb3J0Licp
Ci0gICAgKG9wdGlvbnMsIGFyZ3MpID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotCi0gICAgdGVzdC50
ZXN0X2VuZHRvZW5kLl91c2VfZXh0ZXJuYWxfc2VydmVyID0gVHJ1ZQotICAgIHRlc3QudGVzdF9l
bmR0b2VuZC5fZXh0ZXJuYWxfc2VydmVyX3BvcnQgPSBvcHRpb25zLnBvcnQKLQotICAgIHVuaXR0
ZXN0Lm1haW4oYXJndj1bc3lzLmFyZ3ZbMF1dKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC9tb2NrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9tb2NrLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmZmY2FjNDhkYzQzYTUyYjljY2YxYmNkMDEy
OTc1NDI0MDQ4ZDY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL3Rlc3QvbW9jay5weQorKysgL2Rldi9udWxsCkBAIC0xLDIyMSArMCwwIEBA
Ci0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9u
LgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJNb2NrcyBmb3IgdGVzdGluZy4KLSIiIgotCi0KLWlt
cG9ydCBRdWV1ZQotaW1wb3J0IHRocmVhZGluZwotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBv
cnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhpeGll
NzUKLQotCi1jbGFzcyBfTW9ja0Nvbm5CYXNlKG9iamVjdCk6Ci0gICAgIiIiQmFzZSBjbGFzcyBv
ZiBtb2NrcyBmb3IgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi4KLQotICAgIFRoaXMgZW5hYmxl
cyB0ZXN0cyB0byBjaGVjayB3aGF0IGlzIHdyaXR0ZW4gdG8gYSAobW9jaykgbXBfY29ubi4KLSAg
ICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fd3JpdGVfZGF0
YSA9IFtdCi0gICAgICAgIHNlbGYucmVtb3RlX2FkZHIgPSAnZmFrZV9hZGRyZXNzJwotCi0gICAg
ZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFw
YWNoZS5tcF9jb25uLndyaXRlLiIiIgotCi0gICAgICAgIHNlbGYuX3dyaXRlX2RhdGEuYXBwZW5k
KGRhdGEpCi0KLSAgICBkZWYgd3JpdHRlbl9kYXRhKHNlbGYpOgotICAgICAgICAiIiJHZXQgYnl0
ZXMgd3JpdHRlbiB0byB0aGlzIG1vY2suIiIiCi0KLSAgICAgICAgcmV0dXJuICcnLmpvaW4oc2Vs
Zi5fd3JpdGVfZGF0YSkKLQotCi1jbGFzcyBNb2NrQ29ubihfTW9ja0Nvbm5CYXNlKToKLSAgICAi
IiJNb2NrIGZvciBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLgotCi0gICAgVGhpcyBlbmFibGVz
IHRlc3RzIHRvIHNwZWNpZnkgd2hhdCBzaG91bGQgYmUgcmVhZCBmcm9tIGEgKG1vY2spIG1wX2Nv
bm4gYXMKLSAgICB3ZWxsIGFzIHRvIGNoZWNrIHdoYXQgaXMgd3JpdHRlbiB0byBpdC4KLSAgICAi
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZWFkX2RhdGEpOgotICAgICAgICAiIiJDb25z
dHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZWFkX2Rh
dGE6IGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIHdoZW4gcmVhZCogbWV0aG9kcyBhcmUK
LSAgICAgICAgICAgIGNhbGxlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgX01vY2tDb25uQmFz
ZS5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9yZWFkX2RhdGEgPSByZWFkX2RhdGEKLSAg
ICAgICAgc2VsZi5fcmVhZF9wb3MgPSAwCi0KLSAgICBkZWYgcmVhZGxpbmUoc2VsZik6Ci0gICAg
ICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4ucmVhZGxpbmUuIiIiCi0K
LSAgICAgICAgaWYgc2VsZi5fcmVhZF9wb3MgPj0gbGVuKHNlbGYuX3JlYWRfZGF0YSk6Ci0gICAg
ICAgICAgICByZXR1cm4gJycKLSAgICAgICAgZW5kX2luZGV4ID0gc2VsZi5fcmVhZF9kYXRhLmZp
bmQoJ1xuJywgc2VsZi5fcmVhZF9wb3MpICsgMQotICAgICAgICBpZiBub3QgZW5kX2luZGV4Ogot
ICAgICAgICAgICAgZW5kX2luZGV4ID0gbGVuKHNlbGYuX3JlYWRfZGF0YSkKLSAgICAgICAgcmV0
dXJuIHNlbGYuX3JlYWRfdXBfdG8oZW5kX2luZGV4KQotCi0gICAgZGVmIHJlYWQoc2VsZiwgbGVu
Z3RoKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi5yZWFk
LiIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlYWRfcG9zID49IGxlbihzZWxmLl9yZWFkX2RhdGEp
OgotICAgICAgICAgICAgcmV0dXJuICcnCi0gICAgICAgIGVuZF9pbmRleCA9IG1pbihsZW4oc2Vs
Zi5fcmVhZF9kYXRhKSwgc2VsZi5fcmVhZF9wb3MgKyBsZW5ndGgpCi0gICAgICAgIHJldHVybiBz
ZWxmLl9yZWFkX3VwX3RvKGVuZF9pbmRleCkKLQotICAgIGRlZiBfcmVhZF91cF90byhzZWxmLCBl
bmRfaW5kZXgpOgotICAgICAgICBsaW5lID0gc2VsZi5fcmVhZF9kYXRhW3NlbGYuX3JlYWRfcG9z
OmVuZF9pbmRleF0KLSAgICAgICAgc2VsZi5fcmVhZF9wb3MgPSBlbmRfaW5kZXgKLSAgICAgICAg
cmV0dXJuIGxpbmUKLQotCi1jbGFzcyBNb2NrQmxvY2tpbmdDb25uKF9Nb2NrQ29ubkJhc2UpOgot
ICAgICIiIkJsb2NraW5nIG1vY2sgZm9yIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4uCi0KLSAg
ICBUaGlzIGVuYWJsZXMgdGVzdHMgdG8gc3BlY2lmeSB3aGF0IHNob3VsZCBiZSByZWFkIGZyb20g
YSAobW9jaykgbXBfY29ubiBhcwotICAgIHdlbGwgYXMgdG8gY2hlY2sgd2hhdCBpcyB3cml0dGVu
IHRvIGl0LgotICAgIENhbGxlcnMgb2YgcmVhZCogbWV0aG9kcyB3aWxsIGJsb2NrIGlmIHRoZXJl
IGlzIG5vIGJ5dGVzIGF2YWlsYWJsZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKLSAgICAgICAgX01vY2tDb25uQmFzZS5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9x
dWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgIGRlZiByZWFkbGluZShzZWxmKToKLSAgICAgICAg
IiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi5yZWFkbGluZS4iIiIKLSAgICAg
ICAgbGluZSA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjID0gc2VsZi5f
cXVldWUuZ2V0KCkKLSAgICAgICAgICAgIGxpbmUgKz0gYwotICAgICAgICAgICAgaWYgYyA9PSAn
XG4nOgotICAgICAgICAgICAgICAgIHJldHVybiBsaW5lCi0KLSAgICBkZWYgcmVhZChzZWxmLCBs
ZW5ndGgpOgotICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJl
YWQuIiIiCi0KLSAgICAgICAgZGF0YSA9ICcnCi0gICAgICAgIGZvciB1bnVzZWQgaW4gcmFuZ2Uo
bGVuZ3RoKToKLSAgICAgICAgICAgIGRhdGEgKz0gc2VsZi5fcXVldWUuZ2V0KCkKLSAgICAgICAg
cmV0dXJuIGRhdGEKLQotICAgIGRlZiBwdXRfYnl0ZXMoc2VsZiwgYnl0ZXMpOgotICAgICAgICAi
IiJQdXQgYnl0ZXMgdG8gYmUgcmVhZCBmcm9tIHRoaXMgbW9jay4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgYnl0ZXM6IGJ5dGVzIHRvIGJlIHJlYWQuCi0gICAgICAgICIiIgotCi0gICAg
ICAgIGZvciBieXRlIGluIGJ5dGVzOgotICAgICAgICAgICAgc2VsZi5fcXVldWUucHV0KGJ5dGUp
Ci0KLQotY2xhc3MgTW9ja1RhYmxlKGRpY3QpOgotICAgICIiIk1vY2sgdGFibGUuCi0KLSAgICBU
aGlzIG1pbWljcyBtb2RfcHl0aG9uIG1wX3RhYmxlLiBOb3RlIHRoYXQgb25seSB0aGUgbWV0aG9k
cyB1c2VkIGJ5Ci0gICAgdGVzdHMgYXJlIG92ZXJyaWRkZW4uCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgY29weV9mcm9tPXt9KToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShjb3B5
X2Zyb20sIGRpY3QpOgotICAgICAgICAgICAgY29weV9mcm9tID0gY29weV9mcm9tLml0ZW1zKCkK
LSAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gY29weV9mcm9tOgotICAgICAgICAgICAgc2VsZi5f
X3NldGl0ZW1fXyhrZXksIHZhbHVlKQotCi0gICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6
Ci0gICAgICAgIHJldHVybiBzdXBlcihNb2NrVGFibGUsIHNlbGYpLl9fZ2V0aXRlbV9fKGtleS5s
b3dlcigpKQotCi0gICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgotICAgICAg
ICBzdXBlcihNb2NrVGFibGUsIHNlbGYpLl9fc2V0aXRlbV9fKGtleS5sb3dlcigpLCB2YWx1ZSkK
LQotICAgIGRlZiBnZXQoc2VsZiwga2V5LCBkZWZfdmFsdWU9Tm9uZSk6Ci0gICAgICAgIHJldHVy
biBzdXBlcihNb2NrVGFibGUsIHNlbGYpLmdldChrZXkubG93ZXIoKSwgZGVmX3ZhbHVlKQotCi0K
LWNsYXNzIE1vY2tSZXF1ZXN0KG9iamVjdCk6Ci0gICAgIiIiTW9jayByZXF1ZXN0LgotCi0gICAg
VGhpcyBtaW1pY3MgbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHVyaT1Ob25lLCBoZWFkZXJzX2luPXt9LCBjb25uZWN0aW9uPU5vbmUsIG1ldGhv
ZD0nR0VUJywKLSAgICAgICAgICAgICAgICAgcHJvdG9jb2w9J0hUVFAvMS4xJywgaXNfaHR0cHM9
RmFsc2UpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJn
dW1lbnRzOgotICAgICAgICAgICAgdXJpOiBVUkkgb2YgdGhlIHJlcXVlc3QuCi0gICAgICAgICAg
ICBoZWFkZXJzX2luOiBSZXF1ZXN0IGhlYWRlcnMuCi0gICAgICAgICAgICBjb25uZWN0aW9uOiBD
b25uZWN0aW9uIHVzZWQgZm9yIHRoZSByZXF1ZXN0LgotICAgICAgICAgICAgbWV0aG9kOiByZXF1
ZXN0IG1ldGhvZC4KLSAgICAgICAgICAgIGlzX2h0dHBzOiBXaGV0aGVyIHRoaXMgcmVxdWVzdCBp
cyBvdmVyIFNTTC4KLQotICAgICAgICBTZWUgdGhlIGRvY3VtZW50IG9mIG1vZF9weXRob24gUmVx
dWVzdCBmb3IgZGV0YWlscy4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYudXJpID0gdXJpCi0g
ICAgICAgIHNlbGYudW5wYXJzZWRfdXJpID0gdXJpCi0gICAgICAgIHNlbGYuY29ubmVjdGlvbiA9
IGNvbm5lY3Rpb24KLSAgICAgICAgc2VsZi5tZXRob2QgPSBtZXRob2QKLSAgICAgICAgc2VsZi5w
cm90b2NvbCA9IHByb3RvY29sCi0gICAgICAgIHNlbGYuaGVhZGVyc19pbiA9IE1vY2tUYWJsZSho
ZWFkZXJzX2luKQotICAgICAgICAjIHNlbGYuaXNfaHR0cHNfIG5lZWRzIHRvIGJlIGFjY2Vzc2li
bGUgZnJvbSB0ZXN0cy4gIFRvIGF2b2lkIG5hbWUKLSAgICAgICAgIyBjb25mbGljdCB3aXRoIHNl
bGYuaXNfaHR0cHMoKSwgaXQgaXMgbmFtZWQgYXMgc3VjaC4KLSAgICAgICAgc2VsZi5pc19odHRw
c18gPSBpc19odHRwcwotICAgICAgICBzZWxmLndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUoc2Vs
ZiwgVHJ1ZSkKLSAgICAgICAgc2VsZi53c19jbG9zZV9jb2RlID0gTm9uZQotICAgICAgICBzZWxm
LndzX2Nsb3NlX3JlYXNvbiA9IE5vbmUKLSAgICAgICAgc2VsZi53c192ZXJzaW9uID0gY29tbW9u
LlZFUlNJT05fSFlCSTAwCi0gICAgICAgIHNlbGYud3NfZGVmbGF0ZSA9IEZhbHNlCi0KLSAgICBk
ZWYgaXNfaHR0cHMoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB3aGV0aGVyIHRoaXMgcmVxdWVz
dCBpcyBvdmVyIFNTTC4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuaXNfaHR0cHNfCi0KLQotY2xh
c3MgTW9ja0Rpc3BhdGNoZXIob2JqZWN0KToKLSAgICAiIiJNb2NrIGZvciBkaXNwYXRjaC5EaXNw
YXRjaGVyLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLmRvX2V4
dHJhX2hhbmRzaGFrZV9jYWxsZWQgPSBGYWxzZQotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFr
ZShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICBzZWxmLmRvX2V4dHJhX2hhbmRzaGFrZV9j
YWxsZWQgPSBUcnVlCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShzZWxmLCBjb25uX2NvbnRleHQp
OgotICAgICAgICBwYXNzCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L211eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L211eF9j
bGllbnRfZm9yX3Rlc3RpbmcucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkNTQz
NWE4Y2MwZTI3NTVjNTgzYzM2ZDBjZWFmM2YzZmY2MDIxYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9tdXhfY2xpZW50X2Zvcl90
ZXN0aW5nLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjkwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52
IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiV2ViU29ja2V0IGNsaWVudCB1dGls
aXR5IGZvciB0ZXN0aW5nIG11eCBleHRlbnNpb24uCi0KLVRoaXMgY29kZSBzaG91bGQgYmUgaW5k
ZXBlbmRlbnQgZnJvbSBtb2RfcHl3ZWJzb2NrZXQuIFNlZSB0aGUgY29tbWVudCBvZgotY2xpZW50
X2Zvcl90ZXN0aW5nLnB5LgotCi1OT1RFOiBUaGlzIGNvZGUgaXMgZmFyIGZyb20gcm9idXN0IGxp
a2UgY2xpZW50X2Zvcl90ZXN0aW5nLnB5LgotIiIiCi0KLQotCi1pbXBvcnQgUXVldWUKLWltcG9y
dCBiYXNlNjQKLWltcG9ydCBjb2xsZWN0aW9ucwotaW1wb3J0IGVtYWlsCi1pbXBvcnQgZW1haWwu
cGFyc2VyCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG1hdGgKLWltcG9ydCBvcwotaW1wb3J0IHJh
bmRvbQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHRocmVhZGluZwotCi1m
cm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi1mcm9tIHRlc3QgaW1wb3J0IGNsaWVu
dF9mb3JfdGVzdGluZwotCi0KLV9DT05UUk9MX0NIQU5ORUxfSUQgPSAwCi1fREVGQVVMVF9DSEFO
TkVMX0lEID0gMQotCi1fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUID0gMAotX01VWF9P
UENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0UgPSAxCi1fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wg
PSAyCi1fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwgPSAzCi1fTVVYX09QQ09ERV9ORVdfQ0hBTk5F
TF9TTE9UID0gNAotCi0KLWNsYXNzIF9Db250cm9sQmxvY2s6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIG9wY29kZSk6Ci0gICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCi0KLQotZGVmIF9wYXJz
ZV9oYW5kc2hha2VfcmVzcG9uc2UocmVzcG9uc2UpOgotICAgIHN0YXR1c19saW5lLCBoZWFkZXJf
bGluZXMgPSByZXNwb25zZS5zcGxpdCgnXHJcbicsIDEpCi0KLSAgICB3b3JkcyA9IHN0YXR1c19s
aW5lLnNwbGl0KCcgJykKLSAgICBpZiBsZW4od29yZHMpIDwgMzoKLSAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignQmFkIFN0YXR1cy1MaW5lIHN5bnRheCAlcicgJSBzdGF0dXNfbGluZSkKLSAgICBb
dmVyc2lvbiwgcmVzcG9uc2VfY29kZV0gPSB3b3Jkc1s6Ml0KLSAgICBpZiB2ZXJzaW9uICE9ICdI
VFRQLzEuMSc6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCByZXNwb25zZSB2ZXJzaW9u
ICVyJyAlIHZlcnNpb24pCi0KLSAgICBpZiByZXNwb25zZV9jb2RlICE9ICcxMDEnOgotICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcmVzcG9uc2UgY29kZSAlciAnICUgcmVzcG9uc2VfY29k
ZSkKLSAgICBoZWFkZXJzID0gZW1haWwucGFyc2VyLlBhcnNlcigpLnBhcnNlc3RyKGhlYWRlcl9s
aW5lcykKLSAgICByZXR1cm4gaGVhZGVycwotCi0KLWRlZiBfcGFyc2VfY2hhbm5lbF9pZChkYXRh
LCBvZmZzZXQ9MCk6Ci0gICAgbGVuZ3RoID0gbGVuKGRhdGEpCi0gICAgcmVtYWluaW5nID0gbGVu
Z3RoIC0gb2Zmc2V0Ci0KLSAgICBpZiByZW1haW5pbmcgPD0gMDoKLSAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdObyBjaGFubmVsIGlkIGZvdW5kJykKLQotICAgIGNoYW5uZWxfaWQgPSBvcmQoZGF0
YVtvZmZzZXRdKQotICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gMQotICAgIGlmIGNoYW5uZWxfaWQg
JiAweGUwID09IDB4ZTA6Ci0gICAgICAgIGlmIHJlbWFpbmluZyA8IDQ6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQotICAgICAgICBjaGFu
bmVsX2lkID0gc3RydWN0LnVucGFjaygnIUwnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkYXRhW29mZnNldDpvZmZzZXQrNF0pWzBdICYgMHgxZmZmZmZmZgotICAgICAgICBj
aGFubmVsX2lkX2xlbmd0aCA9IDQKLSAgICBlbGlmIGNoYW5uZWxfaWQgJiAweGMwID09IDB4YzA6
Ci0gICAgICAgIGlmIHJlbWFpbmluZyA8IDM6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQotICAgICAgICBjaGFubmVsX2lkID0gKCgoY2hh
bm5lbF9pZCAmIDB4MWYpIDw8IDE2KSArCi0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0LnVu
cGFjaygnIUgnLCBkYXRhW29mZnNldCsxOm9mZnNldCszXSlbMF0pCi0gICAgICAgIGNoYW5uZWxf
aWRfbGVuZ3RoID0gMwotICAgIGVsaWYgY2hhbm5lbF9pZCAmIDB4ODAgPT0gMHg4MDoKLSAgICAg
ICAgaWYgcmVtYWluaW5nIDwgMjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxp
ZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBzdHJ1Y3QudW5wYWNr
KCchSCcsIGRhdGFbb2Zmc2V0Om9mZnNldCsyXSlbMF0gJiAweDNmZmYKLSAgICAgICAgY2hhbm5l
bF9pZF9sZW5ndGggPSAyCi0KLSAgICByZXR1cm4gY2hhbm5lbF9pZCwgY2hhbm5lbF9pZF9sZW5n
dGgKLQotCi1kZWYgX3BhcnNlX251bWJlcihkYXRhLCBvZmZzZXQ9MCk6Ci0gICAgZmlyc3RfYnl0
ZSA9IG9yZChkYXRhW29mZnNldF0pCi0gICAgaWYgKGZpcnN0X2J5dGUgJiAweDgwKSAhPSAwOgot
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoZSBNU0Igb2YgbnVtYmVyIGZpZWxkIG11c3QgYmUg
dW5zZXQnKQotICAgIGZpcnN0X2J5dGUgPSBmaXJzdF9ieXRlICYgMHg3ZgotICAgIGlmIGZpcnN0
X2J5dGUgPT0gMTI3OgotICAgICAgICBpZiBvZmZzZXQgKyA5ID4gbGVuKGRhdGEpOgotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIG51bWJlcicpCi0gICAgICAgIHJldHVybiBz
dHJ1Y3QudW5wYWNrKCchUScsIGRhdGFbb2Zmc2V0KzE6b2Zmc2V0KzldKVswXSwgOQotICAgIGlm
IGZpcnN0X2J5dGUgPT0gMTI2OgotICAgICAgICBpZiBvZmZzZXQgKyAzID4gbGVuKGRhdGEpOgot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIG51bWJlcicpCi0gICAgICAgIHJl
dHVybiBzdHJ1Y3QudW5wYWNrKCchSCcsIGRhdGFbb2Zmc2V0KzE6b2Zmc2V0KzNdKVswXSwgMwot
ICAgIHJldHVybiBmaXJzdF9ieXRlLCAxCi0KLQotZGVmIF9wYXJzZV9zaXplX2FuZF9jb250ZW50
cyhkYXRhLCBvZmZzZXQ9MCk6Ci0gICAgc2l6ZSwgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0
YSwgb2Zmc2V0KQotICAgIHN0YXJ0X3Bvc2l0aW9uID0gb2Zmc2V0ICsgYWR2YW5jZQotICAgIGVu
ZF9wb3NpdGlvbiA9IHN0YXJ0X3Bvc2l0aW9uICsgc2l6ZQotICAgIGlmIGxlbihkYXRhKSA8IGVu
ZF9wb3NpdGlvbjoKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIHNpemUgb2YgY29u
dHJvbCBibG9jayAoJWQgPCAlZCknICUgKAotICAgICAgICAgICAgICAgIGxlbihkYXRhKSwgZW5k
X3Bvc2l0aW9uKSkKLSAgICByZXR1cm4gZGF0YVtzdGFydF9wb3NpdGlvbjplbmRfcG9zaXRpb25d
LCBzaXplICsgYWR2YW5jZQotCi0KLWRlZiBfcGFyc2VfY29udHJvbF9ibG9ja3MoZGF0YSk6Ci0g
ICAgYmxvY2tzID0gW10KLSAgICBsZW5ndGggPSBsZW4oZGF0YSkKLSAgICBwb3MgPSAwCi0KLSAg
ICB3aGlsZSBwb3MgPCBsZW5ndGg6Ci0gICAgICAgIGZpcnN0X2J5dGUgPSBvcmQoZGF0YVtwb3Nd
KQotICAgICAgICBwb3MgKz0gMQotICAgICAgICBvcGNvZGUgPSAoZmlyc3RfYnl0ZSA+PiA1KSAm
IDB4NwotICAgICAgICBibG9jayA9IF9Db250cm9sQmxvY2sob3Bjb2RlKQotCi0gICAgICAgICMg
VE9ETyhiYXNoaSk6IFN1cHBvcnQgbW9yZSBvcGNvZGUKLSAgICAgICAgaWYgb3Bjb2RlID09IF9N
VVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgotICAgICAgICAgICAgYmxvY2suZW5jb2Rl
ID0gZmlyc3RfYnl0ZSAmIDMKLSAgICAgICAgICAgIGJsb2NrLnJlamVjdGVkID0gKGZpcnN0X2J5
dGUgPj4gNCkgJiAxCi0KLSAgICAgICAgICAgIGNoYW5uZWxfaWQsIGFkdmFuY2UgPSBfcGFyc2Vf
Y2hhbm5lbF9pZChkYXRhLCBwb3MpCi0gICAgICAgICAgICBibG9jay5jaGFubmVsX2lkID0gY2hh
bm5lbF9pZAotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLQotICAgICAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2UsIGFkdmFuY2UgPSBfcGFyc2Vfc2l6ZV9hbmRfY29udGVudHMoZGF0YSwgcG9z
KQotICAgICAgICAgICAgYmxvY2suZW5jb2RlZF9oYW5kc2hha2UgPSBlbmNvZGVkX2hhbmRzaGFr
ZQotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLSAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQo
YmxvY2spCi0gICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoK
LSAgICAgICAgICAgIGJsb2NrLm11eF9lcnJvciA9IChmaXJzdF9ieXRlID4+IDQpICYgMQotCi0g
ICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNlX2NoYW5uZWxfaWQoZGF0YSwg
cG9zKQotICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAg
ICAgIHBvcyArPSBhZHZhbmNlCi0KLSAgICAgICAgICAgIHJlYXNvbiwgYWR2YW5jZSA9IF9wYXJz
ZV9zaXplX2FuZF9jb250ZW50cyhkYXRhLCBwb3MpCi0gICAgICAgICAgICBpZiBsZW4ocmVhc29u
KSA9PSAwOgotICAgICAgICAgICAgICAgIGJsb2NrLmRyb3BfY29kZSA9IE5vbmUKLSAgICAgICAg
ICAgICAgICBibG9jay5kcm9wX21lc3NhZ2UgPSAnJwotICAgICAgICAgICAgZWxpZiBsZW4ocmVh
c29uKSA+PSAyOgotICAgICAgICAgICAgICAgIGJsb2NrLmRyb3BfY29kZSA9IHN0cnVjdC51bnBh
Y2soJyFIJywgcmVhc29uWzoyXSlbMF0KLSAgICAgICAgICAgICAgICBibG9jay5kcm9wX21lc3Nh
Z2UgPSByZWFzb25bMjpdCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignSW52YWxpZCBEcm9wQ2hhbm5lbCcpCi0gICAgICAgICAgICBwb3MgKz0gYWR2
YW5jZQotICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChibG9jaykKLSAgICAgICAgZWxpZiBvcGNv
ZGUgPT0gX01VWF9PUENPREVfRkxPV19DT05UUk9MOgotICAgICAgICAgICAgY2hhbm5lbF9pZCwg
YWR2YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKGRhdGEsIHBvcykKLSAgICAgICAgICAgIGJsb2Nr
LmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAg
ICAgICAgICAgc2VuZF9xdW90YSwgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgcG9zKQot
ICAgICAgICAgICAgYmxvY2suc2VuZF9xdW90YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgICAgIHBv
cyArPSBhZHZhbmNlCi0gICAgICAgICAgICBibG9ja3MuYXBwZW5kKGJsb2NrKQotICAgICAgICBl
bGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UOgotICAgICAgICAgICAg
ZmFsbGJhY2sgPSBmaXJzdF9ieXRlICYgMQotICAgICAgICAgICAgc2xvdHMsIGFkdmFuY2UgPSBf
cGFyc2VfbnVtYmVyKGRhdGEsIHBvcykKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAg
ICAgICAgICBzZW5kX3F1b3RhLCBhZHZhbmNlID0gX3BhcnNlX251bWJlcihkYXRhLCBwb3MpCi0g
ICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAgICAgICAgICAgaWYgZmFsbGJhY2sgPT0gMSBh
bmQgKHNsb3RzICE9IDAgb3Igc2VuZF9xdW90YSAhPSAwKToKLSAgICAgICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJ3Nsb3RzIGFuZCBzZW5kX3F1b3RhIG11c3QgYmUgemVybyBpZiBGIGJpdCAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcyBzZXQnKQotICAgICAgICAgICAg
YmxvY2suZmFsbGJhY2sgPSBmYWxsYmFjawotICAgICAgICAgICAgYmxvY2suc2xvdHMgPSBzbG90
cwotICAgICAgICAgICAgYmxvY2suc2VuZF9xdW90YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgICAg
IGJsb2Nrcy5hcHBlbmQoYmxvY2spCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1Vuc3VwcG9ydGVkIG11eCBvcGNvZGUgJWQgcmVj
ZWl2ZWQnICUgb3Bjb2RlKQotCi0gICAgcmV0dXJuIGJsb2NrcwotCi0KLWRlZiBfZW5jb2RlX2No
YW5uZWxfaWQoY2hhbm5lbF9pZCk6Ci0gICAgaWYgY2hhbm5lbF9pZCA8IDA6Ci0gICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ0NoYW5uZWwgaWQgJWQgbXVzdCBub3QgYmUgbmVnYXRpdmUnICUgY2hh
bm5lbF9pZCkKLQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDc6Ci0gICAgICAgIHJldHVybiBj
aHIoY2hhbm5lbF9pZCkKLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAxNDoKLSAgICAgICAgcmV0
dXJuIHN0cnVjdC5wYWNrKCchSCcsIDB4ODAwMCArIGNoYW5uZWxfaWQpCi0gICAgaWYgY2hhbm5l
bF9pZCA8IDIgKiogMjE6Ci0gICAgICAgIGZpcnN0ID0gY2hyKDB4YzAgKyAoY2hhbm5lbF9pZCA+
PiAxNikpCi0gICAgICAgIHJldHVybiBmaXJzdCArIHN0cnVjdC5wYWNrKCchSCcsIGNoYW5uZWxf
aWQgJiAweGZmZmYpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMjk6Ci0gICAgICAgIHJldHVy
biBzdHJ1Y3QucGFjaygnIUwnLCAweGUwMDAwMDAwICsgY2hhbm5lbF9pZCkKLQotICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ0NoYW5uZWwgaWQgJWQgaXMgdG9vIGxhcmdlJyAlIGNoYW5uZWxfaWQpCi0K
LQotZGVmIF9lbmNvZGVfbnVtYmVyKG51bWJlcik6Ci0gICAgaWYgbnVtYmVyIDw9IDEyNToKLSAg
ICAgICAgcmV0dXJuIGNocihudW1iZXIpCi0gICAgZWxpZiBudW1iZXIgPCAoMSA8PCAxNik6Ci0g
ICAgICAgIHJldHVybiBjaHIoMHg3ZSkgKyBzdHJ1Y3QucGFjaygnIUgnLCBudW1iZXIpCi0gICAg
ZWxpZiBudW1iZXIgPCAoMSA8PCA2Myk6Ci0gICAgICAgIHJldHVybiBjaHIoMHg3ZikgKyBzdHJ1
Y3QucGFjaygnIVEnLCBudW1iZXIpCi0gICAgZWxzZToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdJbnZhbGlkIG51bWJlcicpCi0KLQotZGVmIF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdChj
aGFubmVsX2lkLCBlbmNvZGVkX2hhbmRzaGFrZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZW5jb2Rpbmc9MCk6Ci0gICAgbGVuZ3RoID0gbGVuKGVuY29kZWRfaGFuZHNoYWtlKQot
ICAgIGhhbmRzaGFrZV9sZW5ndGggPSBfZW5jb2RlX251bWJlcihsZW5ndGgpCi0KLSAgICBmaXJz
dF9ieXRlID0gKF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QgPDwgNSkgfCBlbmNvZGlu
ZwotICAgIHJldHVybiAoY2hyKGZpcnN0X2J5dGUpICsgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5u
ZWxfaWQpICsKLSAgICAgICAgICAgIGhhbmRzaGFrZV9sZW5ndGggKyBlbmNvZGVkX2hhbmRzaGFr
ZSkKLQotCi1kZWYgX2NyZWF0ZV9mbG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRf
cXVvdGEpOgotICAgIGZpcnN0X2J5dGUgPSAoX01VWF9PUENPREVfRkxPV19DT05UUk9MIDw8IDUp
Ci0gICAgcmV0dXJuIChjaHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5l
bF9pZCkgKwotICAgICAgICAgICAgX2VuY29kZV9udW1iZXIocmVwbGVuaXNoZWRfcXVvdGEpKQot
Ci0KLWNsYXNzIF9NdXhSZWFkZXJUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgIiIiTXV4
IHJlYWRlciB0aHJlYWQuCi0KLSAgICBSZWFkcyBmcmFtZXMgYW5kIHBhc3NlcyB0aGVtIHRvIHRo
ZSBtdXggY2xpZW50LiBUaGlzIHRocmVhZCBhY2Nlc3NlcwotICAgIHByaXZhdGUgZnVuY3Rpb25z
L3ZhcmlhYmxlcyBvZiB0aGUgbXV4IGNsaWVudC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBtdXgpOgotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0g
ICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0gICAgICAgIHNlbGYuX211eCA9IG11eAotICAg
ICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IEZhbHNlCi0KLSAgICBkZWYgX3JlY2VpdmVfbWVz
c2FnZShzZWxmKToKLSAgICAgICAgZmlyc3Rfb3Bjb2RlID0gTm9uZQotICAgICAgICBwZW5kaW5n
X3BheWxvYWQgPSBbXQotICAgICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0g
ICAgICAgICAgICBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZF9sZW5ndGgg
PSAoCi0gICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLnJlYWRfZnJhbWVfaGVhZGVy
KHNlbGYuX211eC5fc29ja2V0KSkKLQotICAgICAgICAgICAgaWYgbm90IGZpcnN0X29wY29kZToK
LSAgICAgICAgICAgICAgICBpZiBvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9U
RVhUOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGEgdGV4
dCBtZXNzYWdlIG9uIHBoeXNpY2FsICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdjb25uZWN0aW9uJykKLSAgICAgICAgICAgICAgICBpZiBvcGNvZGUgPT0gY2xpZW50X2Zv
cl90ZXN0aW5nLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignUmVjZWl2ZWQgYW4gaW50ZXJtZWRpYXRlIGZyYW1lIGJ1dCAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZnJhZ21lbnRhdGlvbiB3YXMgbm90IHN0YXJ0
ZWQnKQotICAgICAgICAgICAgICAgIGlmIChvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9Q
Q09ERV9CSU5BUlkgb3IKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlID09IGNsaWVudF9mb3Jf
dGVzdGluZy5PUENPREVfUE9ORyBvcgotICAgICAgICAgICAgICAgICAgICBvcGNvZGUgPT0gY2xp
ZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9QT05HIG9yCi0gICAgICAgICAgICAgICAgICAgIG9wY29k
ZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NMT1NFKToKLSAgICAgICAgICAgICAgICAg
ICAgZmlyc3Rfb3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBhbiB1bmRlZmluZWQgb3Bjb2Rl
IGZyYW1lOiAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2Rl
KQotCi0gICAgICAgICAgICBlbGlmIG9wY29kZSAhPSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RF
X0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVk
IGEgbmV3IG9wY29kZSBiZWZvcmUgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
dGVybWluYXRpbmcgZnJhZ21lbnRhdGlvbicpCi0KLSAgICAgICAgICAgIHBheWxvYWQgPSBjbGll
bnRfZm9yX3Rlc3RpbmcucmVjZWl2ZV9ieXRlcygKLSAgICAgICAgICAgICAgICBzZWxmLl9tdXgu
X3NvY2tldCwgcGF5bG9hZF9sZW5ndGgpCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX211eC5faW5j
b21pbmdfZnJhbWVfZmlsdGVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHBheWxvYWQg
PSBzZWxmLl9tdXguX2luY29taW5nX2ZyYW1lX2ZpbHRlci5maWx0ZXIocGF5bG9hZCkKLQotICAg
ICAgICAgICAgcGVuZGluZ19wYXlsb2FkLmFwcGVuZChwYXlsb2FkKQotCi0gICAgICAgICAgICBp
ZiBmaW46Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBpZiBzZWxmLl9zdG9wX3Jl
cXVlc3RlZDoKLSAgICAgICAgICAgIHJldHVybiBOb25lLCBOb25lCi0KLSAgICAgICAgbWVzc2Fn
ZSA9ICcnLmpvaW4ocGVuZGluZ19wYXlsb2FkKQotICAgICAgICByZXR1cm4gZmlyc3Rfb3Bjb2Rl
LCBtZXNzYWdlCi0KLSAgICBkZWYgcmVxdWVzdF9zdG9wKHNlbGYpOgotICAgICAgICBzZWxmLl9z
dG9wX3JlcXVlc3RlZCA9IFRydWUKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHdoaWxlIG5vdCBzZWxmLl9zdG9wX3JlcXVlc3RlZDoKLSAgICAgICAgICAg
ICAgICAjIG9wY29kZSBpcyBPUENPREVfQklOQVJZIG9yIGNvbnRyb2wgb3Bjb2RlcyB3aGVuIGEg
bWVzc2FnZQotICAgICAgICAgICAgICAgICMgaXMgc3VjY2VzZnVsbHkgcmVjZWl2ZWQuCi0gICAg
ICAgICAgICAgICAgb3Bjb2RlLCBtZXNzYWdlID0gc2VsZi5fcmVjZWl2ZV9tZXNzYWdlKCkKLSAg
ICAgICAgICAgICAgICBpZiBub3Qgb3Bjb2RlOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgICAgICAgICBpZiBvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9C
SU5BUlk6Ci0gICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQsIGFkdmFuY2UgPSBfcGFyc2Vf
Y2hhbm5lbF9pZChtZXNzYWdlKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9tdXguX2Rpc3Bh
dGNoX2ZyYW1lKGNoYW5uZWxfaWQsIG1lc3NhZ2VbYWR2YW5jZTpdKQotICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX211eC5fcHJvY2Vzc19jb250cm9sX21l
c3NhZ2Uob3Bjb2RlLCBtZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2Vs
Zi5fbXV4Ll9ub3RpZnlfcmVhZGVyX2RvbmUoKQotCi0KLWNsYXNzIF9Jbm5lckZyYW1lKG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2Rl
LCBwYXlsb2FkKToKLSAgICAgICAgc2VsZi5maW4gPSBmaW4KLSAgICAgICAgc2VsZi5yc3YxID0g
cnN2MQotICAgICAgICBzZWxmLnJzdjIgPSByc3YyCi0gICAgICAgIHNlbGYucnN2MyA9IHJzdjMK
LSAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUKLSAgICAgICAgc2VsZi5wYXlsb2FkID0gcGF5
bG9hZAotCi0KLWNsYXNzIF9Mb2dpY2FsQ2hhbm5lbERhdGEob2JqZWN0KToKLSAgICBkZWYgX19p
bml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYucXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0gICAgICAg
IHNlbGYuc2VuZF9xdW90YSA9IDAKLSAgICAgICAgc2VsZi5yZWNlaXZlX3F1b3RhID0gMAotCi0K
LWNsYXNzIE11eENsaWVudChvYmplY3QpOgotICAgICIiIldlYlNvY2tldCBtdXggY2xpZW50Lgot
Ci0gICAgTm90ZSB0aGF0IHRoaXMgY2xhc3MgaXMgTk9UIHRocmVhZC1zYWZlLiBEbyBub3QgYWNj
ZXNzIGFuIGluc3RhbmNlIG9mIHRoaXMKLSAgICBjbGFzcyBmcm9tIG11bHRpcGxlIHRocmVhZHMg
YXQgYSBzYW1lIHRpbWUuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9u
cyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQot
Ci0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0gICAgICAgIHNlbGYuX29wdGlvbnMu
ZW5hYmxlX211eCgpCi0gICAgICAgIHNlbGYuX3N0cmVhbSA9IE5vbmUKLSAgICAgICAgc2VsZi5f
c29ja2V0ID0gTm9uZQotICAgICAgICBzZWxmLl9oYW5kc2hha2UgPSBjbGllbnRfZm9yX3Rlc3Rp
bmcuV2ViU29ja2V0SGFuZHNoYWtlKHNlbGYuX29wdGlvbnMpCi0gICAgICAgIHNlbGYuX2luY29t
aW5nX2ZyYW1lX2ZpbHRlciA9IE5vbmUKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmls
dGVyID0gTm9uZQotCi0gICAgICAgIHNlbGYuX2lzX2FjdGl2ZSA9IEZhbHNlCi0gICAgICAgIHNl
bGYuX3JlYWRfdGhyZWFkID0gTm9uZQotICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25k
aXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLSAgICAgICAgc2VsZi5fY29udHJvbF9ibG9j
a3MgPSBbXQotICAgICAgICBzZWxmLl9jaGFubmVsX3Nsb3RzID0gY29sbGVjdGlvbnMuZGVxdWUo
KQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbiA9IHRocmVhZGluZy5D
b25kaXRpb24oKTsKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVscyA9IHt9Ci0gICAgICAg
IHNlbGYuX3RpbWVvdXQgPSAyCi0gICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xv
c2VfZXZlbnQgPSBOb25lCi0gICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2Vf
bWVzc2FnZSA9IE5vbmUKLQotICAgIGRlZiBfcGFyc2VfaW5uZXJfZnJhbWUoc2VsZiwgZGF0YSk6
Ci0gICAgICAgIGlmIGxlbihkYXRhKSA9PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdJbnZhbGlkIGVuY2Fwc3VsYXRlZCBmcmFtZSByZWNlaXZlZCcpCi0KLSAgICAgICAgZmlyc3Rf
Ynl0ZSA9IG9yZChkYXRhWzBdKQotICAgICAgICBmaW4gPSAoZmlyc3RfYnl0ZSA8PCA3KSAmIDEK
LSAgICAgICAgcnN2MSA9IChmaXJzdF9ieXRlIDw8IDYpICYgMQotICAgICAgICByc3YyID0gKGZp
cnN0X2J5dGUgPDwgNSkgJiAxCi0gICAgICAgIHJzdjMgPSAoZmlyc3RfYnl0ZSA8PCA0KSAmIDEK
LSAgICAgICAgb3Bjb2RlID0gZmlyc3RfYnl0ZSAmIDB4ZgotCi0gICAgICAgIGlmIHNlbGYuX291
dGdvaW5nX2ZyYW1lX2ZpbHRlcjoKLSAgICAgICAgICAgIHBheWxvYWQgPSBzZWxmLl9vdXRnb2lu
Z19mcmFtZV9maWx0ZXIuZmlsdGVyKAotICAgICAgICAgICAgICAgIGRhdGFbMTpdKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcGF5bG9hZCA9IGRhdGFbMTpdCi0KLSAgICAgICAgcmV0dXJu
IF9Jbm5lckZyYW1lKGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkKQotCi0g
ICAgZGVmIF9wcm9jZXNzX211eF9jb250cm9sX2Jsb2NrcyhzZWxmKToKLSAgICAgICAgZm9yIGJs
b2NrIGluIHNlbGYuX2NvbnRyb2xfYmxvY2tzOgotICAgICAgICAgICAgaWYgYmxvY2sub3Bjb2Rl
ID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgotICAgICAgICAgICAgICAgICMg
QWRkQ2hhbm5lbFJlc3BvbnNlIHdpbGwgYmUgaGFuZGxlZCBpbiBhZGRfY2hhbm5lbCgpLgotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbGlmIGJsb2NrLm9wY29kZSA9PSBf
TVVYX09QQ09ERV9GTE9XX0NPTlRST0w6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgICAgICAgICAgICAgaWYgbm90IGJsb2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNh
bF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52
YWxpZCBmbG93IGNvbnRyb2wgcmVjZWl2ZWQgZm9yICcKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnY2hhbm5lbCBpZCAlZCcgJSBibG9jay5jaGFubmVsX2lkKQotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2Jsb2NrLmNoYW5uZWxfaWRd
LnNlbmRfcXVvdGEgKz0gKAotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2suc2VuZF9xdW90
YSkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24u
bm90aWZ5KCkKLSAgICAgICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLSAgICAgICAgICAgIGVs
aWYgYmxvY2sub3Bjb2RlID09IF9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1Q6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cy5leHRlbmQoW2Jsb2NrLnNlbmRfcXVvdGFdICog
YmxvY2suc2xvdHMpCi0KLSAgICBkZWYgX2Rpc3BhdGNoX2ZyYW1lKHNlbGYsIGNoYW5uZWxfaWQs
IHBheWxvYWQpOgotICAgICAgICBpZiBjaGFubmVsX2lkID09IF9DT05UUk9MX0NIQU5ORUxfSUQ6
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3Nf
Y29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tz
ICs9IF9wYXJzZV9jb250cm9sX2Jsb2NrcyhwYXlsb2FkKQotICAgICAgICAgICAgICAgIHNlbGYu
X3Byb2Nlc3NfbXV4X2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgICAgICBzZWxmLl9jb250
cm9sX2Jsb2Nrc19jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLnJlbGVhc2UoKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgICAgIGlmIG5vdCBj
aGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgbG9naWNhbCBmcmFtZSBvbiBjaGFubmVsIGlkICcK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICclZCwgd2hpY2ggaXMgbm90IGVz
dGFibGlzaGVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVs
X2lkKQotCi0gICAgICAgICAgICAgICAgaW5uZXJfZnJhbWUgPSBzZWxmLl9wYXJzZV9pbm5lcl9m
cmFtZShwYXlsb2FkKQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hh
bm5lbF9pZF0ucmVjZWl2ZV9xdW90YSAtPSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBsZW4o
aW5uZXJfZnJhbWUucGF5bG9hZCkpCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9j
aGFubmVsc1tjaGFubmVsX2lkXS5yZWNlaXZlX3F1b3RhIDwgMDoKLSAgICAgICAgICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdUaGUgc2VydmVyIHZpb2xhdGVzIHF1b3RhIG9uICcKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGFubmVsIGlkICVkJyAlIGNoYW5uZWxf
aWQpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9j
aGFubmVsc1tjaGFubmVsX2lkXS5xdWV1ZS5wdXQoaW5uZXJfZnJhbWUpCi0KLSAgICBkZWYgX3By
b2Nlc3NfY29udHJvbF9tZXNzYWdlKHNlbGYsIG9wY29kZSwgbWVzc2FnZSk6Ci0gICAgICAgICMg
UGluZy9Qb25nIGFyZSBub3Qgc3VwcG9ydGVkLgotICAgICAgICBpZiBvcGNvZGUgPT0gY2xpZW50
X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9TRToKLSAgICAgICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nv
bm5lY3Rpb25fY2xvc2VfbWVzc2FnZSA9IG1lc3NhZ2UKLSAgICAgICAgICAgIGlmIHNlbGYuX2lz
X2FjdGl2ZToKLSAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9jbG9zZSgKLSAgICAg
ICAgICAgICAgICAgICAgY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX05PUk1BTF9DTE9T
VVJFLCByZWFzb249JycpCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVhZF90aHJlYWQucmVxdWVz
dF9zdG9wKCkKLQotICAgICAgICAgICAgaWYgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9z
ZV9ldmVudDoKLSAgICAgICAgICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3Nl
X2V2ZW50LnNldCgpCi0KLSAgICBkZWYgX25vdGlmeV9yZWFkZXJfZG9uZShzZWxmKToKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWFkIHRocmVhZCB0ZXJtaW5hdGVkLicpCi0gICAgICAg
IHNlbGYuY2xvc2Vfc29ja2V0KCkKLQotICAgIGRlZiBfYXNzZXJ0X2NoYW5uZWxfc2xvdF9hdmFp
bGFibGUoc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxv
Y2tzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIGxlbihzZWxmLl9jaGFubmVs
X3Nsb3RzKSA9PSAwOgotICAgICAgICAgICAgICAgICMgV2FpdCBvbmNlCi0gICAgICAgICAgICAg
ICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLndhaXQodGltZW91dD1zZWxmLl90aW1l
b3V0KQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3Nf
Y29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgIGlmIGxlbihzZWxmLl9jaGFubmVsX3Nsb3Rz
KSA9PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcmVjZWl2ZSBO
ZXdDaGFubmVsU2xvdCcpCi0KLSAgICBkZWYgX2Fzc2VydF9zZW5kX3F1b3RhX2F2YWlsYWJsZShz
ZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBzZWxmLl9sb2dp
Y2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnNlbmRfcXVvdGEgPT0gMDoKLSAgICAgICAgICAgICAg
ICAjIFdhaXQgb25jZQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29u
ZGl0aW9uLndhaXQodGltZW91dD1zZWxmLl90aW1lb3V0KQotICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAg
ICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhID09
IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ZhaWxlZCB0byByZWNlaXZlIEZsb3dD
b250cm9sIGZvciBjaGFubmVsIGlkICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbm5lbF9pZCkKLQotICAgIGRlZiBjb25uZWN0KHNlbGYpOgotICAgICAgICBzZWxmLl9zb2Nr
ZXQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY29ubmVjdF9zb2NrZXRfd2l0aF9yZXRyeSgKLSAgICAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAotICAgICAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMuc2VydmVyX3BvcnQsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5z
b2NrZXRfdGltZW91dCwKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpCi0K
LSAgICAgICAgc2VsZi5faGFuZHNoYWtlLmhhbmRzaGFrZShzZWxmLl9zb2NrZXQpCi0gICAgICAg
IHNlbGYuX3N0cmVhbSA9IGNsaWVudF9mb3JfdGVzdGluZy5XZWJTb2NrZXRTdHJlYW0oCi0gICAg
ICAgICAgICBzZWxmLl9zb2NrZXQsIHNlbGYuX2hhbmRzaGFrZSkKLQotICAgICAgICBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzW19ERUZBVUxUX0NIQU5ORUxfSURdID0gX0xvZ2ljYWxDaGFubmVsRGF0
YSgpCi0KLSAgICAgICAgc2VsZi5fcmVhZF90aHJlYWQgPSBfTXV4UmVhZGVyVGhyZWFkKHNlbGYp
Ci0gICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkLnN0YXJ0KCkKLQotICAgICAgICBzZWxmLl9hc3Nl
cnRfY2hhbm5lbF9zbG90X2F2YWlsYWJsZSgpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9zZW5kX3F1
b3RhX2F2YWlsYWJsZShfREVGQVVMVF9DSEFOTkVMX0lEKQotCi0gICAgICAgIHNlbGYuX2lzX2Fj
dGl2ZSA9IFRydWUKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Nvbm5lY3Rpb24gZXN0YWJs
aXNoZWQnKQotCi0gICAgZGVmIGFkZF9jaGFubmVsKHNlbGYsIGNoYW5uZWxfaWQsIG9wdGlvbnMp
OgotICAgICAgICBpZiBub3Qgc2VsZi5faXNfYWN0aXZlOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdNdXggY2xpZW50IGlzIG5vdCBhY3RpdmUnKQotCi0gICAgICAgIGlmIGNoYW5uZWxf
aWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignQ2hhbm5lbCBpZCAlZCBhbHJlYWR5IGV4aXN0cycgJSBjaGFubmVsX2lkKQotCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHNlbmRfcXVvdGEgPSBzZWxmLl9jaGFubmVsX3Nsb3RzLnBvcGxl
ZnQoKQotICAgICAgICBleGNlcHQgSW5kZXhFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignTm8gY2hhbm5lbCBzbG90czogJXInICUgZSkKLQotICAgICAgICAjIENyZWF0ZSBB
ZGRDaGFubmVsIHJlcXVlc3QKLSAgICAgICAgcmVxdWVzdF9saW5lID0gJ0dFVCAlcyBIVFRQLzEu
MVxyXG4nICUgb3B0aW9ucy5yZXNvdXJjZQotICAgICAgICBmaWVsZHMgPSBbXQotICAgICAgICBp
ZiBvcHRpb25zLnNlcnZlcl9wb3J0ID09IGNsaWVudF9mb3JfdGVzdGluZy5ERUZBVUxUX1BPUlQ6
Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCdIb3N0OiAlc1xyXG4nICUgb3B0aW9ucy5zZXJ2
ZXJfaG9zdC5sb3dlcigpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmllbGRzLmFwcGVu
ZCgnSG9zdDogJXM6JWRcclxuJyAlIChvcHRpb25zLnNlcnZlcl9ob3N0Lmxvd2VyKCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuc2VydmVy
X3BvcnQpKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdPcmlnaW46ICVzXHJcbicgJSBvcHRpb25z
Lm9yaWdpbi5sb3dlcigpKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdDb25uZWN0aW9uOiBVcGdy
YWRlXHJcbicpCi0KLSAgICAgICAgaWYgbGVuKG9wdGlvbnMuZXh0ZW5zaW9ucykgPiAwOgotICAg
ICAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zOiAlc1xyXG4n
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJywgJy5qb2luKG9wdGlvbnMuZXh0ZW5zaW9u
cykpCi0KLSAgICAgICAgaGFuZHNoYWtlID0gcmVxdWVzdF9saW5lICsgJycuam9pbihmaWVsZHMp
ICsgJ1xyXG4nCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFu
bmVsX3JlcXVlc3QoCi0gICAgICAgICAgICBjaGFubmVsX2lkLCBoYW5kc2hha2UpCi0gICAgICAg
IHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBhZGRf
Y2hhbm5lbF9yZXF1ZXN0Ci0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShwYXlsb2Fk
KQotCi0gICAgICAgICMgV2FpdCBBZGRDaGFubmVsUmVzcG9uc2UKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdXYWl0aW5nIEFkZENoYW5uZWxSZXNwb25zZSBmb3IgdGhlIHJlcXVlc3QuLi4n
KQotICAgICAgICByZXNwb25zZSA9IE5vbmUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2Vs
Zi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgd2hpbGUg
VHJ1ZToKLSAgICAgICAgICAgICAgICBmb3IgYmxvY2sgaW4gc2VsZi5fY29udHJvbF9ibG9ja3M6
Ci0gICAgICAgICAgICAgICAgICAgIGlmIGJsb2NrLm9wY29kZSAhPSBfTVVYX09QQ09ERV9BRERf
Q0hBTk5FTF9SRVNQT05TRToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgICAgICAgICAgICAgIGlmIGJsb2NrLmNoYW5uZWxfaWQgPT0gY2hhbm5lbF9pZDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gYmxvY2sKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzLnJlbW92ZShyZXNwb25zZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgaWYgcmVzcG9uc2U6Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29u
ZGl0aW9uLndhaXQoc2VsZi5fdGltZW91dCkKLSAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5f
aXNfYWN0aXZlOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0FkZENoYW5u
ZWxSZXF1ZXN0IHRpbWVkIG91dCcpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxm
Ll9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgIyBWYWxpZGF0
ZSBBZGRDaGFubmVsUmVzcG9uc2UKLSAgICAgICAgaWYgcmVzcG9uc2UucmVqZWN0ZWQ6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoZSBzZXJ2ZXIgcmVqZWN0ZWQgQWRkQ2hhbm5lbFJl
cXVlc3QnKQotCi0gICAgICAgIGZpZWxkcyA9IF9wYXJzZV9oYW5kc2hha2VfcmVzcG9uc2UocmVz
cG9uc2UuZW5jb2RlZF9oYW5kc2hha2UpCi0KLSAgICAgICAgIyBTaG91bGQgd2UgcmVqZWN0IHdo
ZW4gVXBncmFkZSwgQ29ubmVjdGlvbiwgb3IgU2VjLVdlYlNvY2tldC1BY2NlcHQKLSAgICAgICAg
IyBoZWFkZXJzIGV4aXN0PwotCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0
aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRd
ID0gX0xvZ2ljYWxDaGFubmVsRGF0YSgpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNb
Y2hhbm5lbF9pZF0uc2VuZF9xdW90YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdMb2dpY2FsIGNoYW5uZWwgJWQgZXN0YWJsaXNoZWQnICUgY2hhbm5lbF9pZCkKLQotICAg
IGRlZiBfY2hlY2tfbG9naWNhbF9jaGFubmVsX2lzX29wZW5lZChzZWxmLCBjaGFubmVsX2lkKToK
LSAgICAgICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignTXV4IGNsaWVudCBpcyBub3QgYWN0aXZlJykKLQotICAgICAgICBpZiBub3QgY2hhbm5l
bF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdMb2dpY2FsIGNoYW5uZWwgJWQgaXMgbm90IGVzdGFibGlzaGVkLicpCi0KLSAgICBkZWYg
ZHJvcF9jaGFubmVsKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICAjIFRPRE8oYmFzaGkpOiBJ
bXBsZW1lbnQKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHNlbmRfZmxvd19jb250cm9sKHNlbGYs
IGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1b3RhKToKLSAgICAgICAgc2VsZi5fY2hlY2tfbG9n
aWNhbF9jaGFubmVsX2lzX29wZW5lZChjaGFubmVsX2lkKQotICAgICAgICBmbG93X2NvbnRyb2wg
PSBfY3JlYXRlX2Zsb3dfY29udHJvbChjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSkKLSAg
ICAgICAgcGF5bG9hZCA9IF9lbmNvZGVfY2hhbm5lbF9pZChfQ09OVFJPTF9DSEFOTkVMX0lEKSAr
IGZsb3dfY29udHJvbAotICAgICAgICAjIFJlcGxlbmlzaCByZWNlaXZlIHF1b3RhCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVp
cmUoKQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5yZWNl
aXZlX3F1b3RhICs9ICgKLSAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YSkKLSAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
LnJlbGVhc2UoKQotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9iaW5hcnkocGF5bG9hZCkKLQot
ICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgY2hhbm5lbF9pZCwgbWVzc2FnZSwgZW5kPVRydWUs
IGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19v
cGVuZWQoY2hhbm5lbF9pZCkKLQotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAgICBmaXJz
dF9ieXRlID0gKGVuZCA8PCA3KSB8IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQklOQVJZCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmaXJzdF9ieXRlID0gKGVuZCA8PCA3KSB8IGNsaWVu
dF9mb3JfdGVzdGluZy5PUENPREVfVEVYVAotICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2Uu
ZW5jb2RlKCd1dGYtOCcpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBzZWxmLl9sb2dp
Y2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnNlbmRfcXVvdGEgPCBsZW4obWVzc2FnZSk6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdTZW5kIHF1b3RhIHZpb2xhdGlvbjogJWQgPCAl
ZCcgJSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2No
YW5uZWxfaWRdLnNlbmRfcXVvdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICBsZW4obWVzc2Fn
ZSkpKQotCi0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnNl
bmRfcXVvdGEgLT0gbGVuKG1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLSAgICAgICAgcGF5bG9h
ZCA9IF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArIGNocihmaXJzdF9ieXRlKSArIG1l
c3NhZ2UKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KHBheWxvYWQpCi0KLSAgICBk
ZWYgYXNzZXJ0X3JlY2VpdmUoc2VsZiwgY2hhbm5lbF9pZCwgcGF5bG9hZCwgYmluYXJ5PUZhbHNl
KToKLSAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNhbF9jaGFubmVsX2lzX29wZW5lZChjaGFubmVs
X2lkKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fbG9n
aWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5xdWV1ZS5nZXQoCi0gICAgICAgICAgICAgICAgdGlt
ZW91dD1zZWxmLl90aW1lb3V0KQotICAgICAgICBleGNlcHQgUXVldWUuRW1wdHksIGU6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCByZWNlaXZlIG1lc3NhZ2UgZnJvbSBjaGFu
bmVsIGlkICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCkKLQot
ICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAgICBvcGNvZGUgPSBjbGllbnRfZm9yX3Rlc3Rp
bmcuT1BDT0RFX0JJTkFSWQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3Bjb2RlID0gY2xp
ZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhUCi0KLSAgICAgICAgaWYgaW5uZXJfZnJhbWUub3Bj
b2RlICE9IG9wY29kZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCBv
cGNvZGUgcmVjZWl2ZWQgKCVyICE9ICVyKScgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChleHBlY3RlZF9vcGNvZGUsIGlubmVyX2ZyYW1lLm9wY29kZSkpCi0KLSAgICAgICAgaWYgaW5u
ZXJfZnJhbWUucGF5bG9hZCAhPSBwYXlsb2FkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdVbmV4cGVjdGVkIHBheWxvYWQgcmVjZWl2ZWQnKQotCi0gICAgZGVmIHNlbmRfY2xvc2Uoc2Vs
ZiwgY2hhbm5lbF9pZCwgY29kZT1Ob25lLCByZWFzb249JycpOgotICAgICAgICBzZWxmLl9jaGVj
a19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5uZWxfaWQpCi0KLSAgICAgICAgaWYgY29k
ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGJvZHkgPSBzdHJ1Y3QucGFjaygnIUgnLCBjb2Rl
KSArIHJlYXNvbi5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGJv
ZHkgPSAnJwotCi0gICAgICAgIGZpcnN0X2J5dGUgPSAoMSA8PCA3KSB8IGNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfQ0xPU0UKLSAgICAgICAgcGF5bG9hZCA9IF9lbmNvZGVfY2hhbm5lbF9pZChj
aGFubmVsX2lkKSArIGNocihmaXJzdF9ieXRlKSArIGJvZHkKLSAgICAgICAgc2VsZi5fc3RyZWFt
LnNlbmRfYmluYXJ5KHBheWxvYWQpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uoc2Vs
ZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19v
cGVuZWQoY2hhbm5lbF9pZCkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbm5lcl9mcmFt
ZSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucXVldWUuZ2V0KAotICAgICAg
ICAgICAgICAgIHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAgICAgZXhjZXB0IFF1ZXVlLkVt
cHR5LCBlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDYW5ub3QgcmVjZWl2ZSBtZXNz
YWdlIGZyb20gY2hhbm5lbCBpZCAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
YW5uZWxfaWQpCi0gICAgICAgIGlmIGlubmVyX2ZyYW1lLm9wY29kZSAhPSBjbGllbnRfZm9yX3Rl
c3RpbmcuT1BDT0RFX0NMT1NFOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdEaWRuXCd0
IHJlY2VpdmUgY2xvc2UgZnJhbWUnKQotCi0gICAgZGVmIHNlbmRfcGh5c2ljYWxfY29ubmVjdGlv
bl9jbG9zZShzZWxmLCBjb2RlPU5vbmUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNlbGYuX3BoeXNp
Y2FsX2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQgPSB0aHJlYWRpbmcuRXZlbnQoKQotICAgICAgICBz
ZWxmLl9zdHJlYW0uc2VuZF9jbG9zZShjb2RlLCByZWFzb24pCi0KLSAgICAjIFRoaXMgbWV0aG9k
IGNhbiBiZSB1c2VkIG9ubHkgYWZ0ZXIgY2FsbGluZwotICAgICMgc2VuZF9waHlzaWNhbF9jb25u
ZWN0aW9uX2Nsb3NlKCkuCi0gICAgZGVmIGFzc2VydF9waHlzaWNhbF9jb25uZWN0aW9uX3JlY2Vp
dmVfY2xvc2UoCi0gICAgICAgIHNlbGYsIGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19O
T1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToKLSAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVj
dGlvbl9jbG9zZV9ldmVudC53YWl0KHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAgICAgaWYg
KG5vdCBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50LmlzU2V0KCkgb3IKLSAg
ICAgICAgICAgIG5vdCBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX21lc3NhZ2UpOgot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdEaWRuXCd0IHJlY2VpdmUgY2xvc2luZyBoYW5k
c2hha2UnKQotCi0gICAgZGVmIGNsb3NlX3NvY2tldChzZWxmKToKLSAgICAgICAgc2VsZi5faXNf
YWN0aXZlID0gRmFsc2UKLSAgICAgICAgc2VsZi5fc29ja2V0LmNsb3NlKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvcnVuX2FsbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvcnVuX2FsbC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBhNWQ4N2Q4MzgyMmIwNzgzYmUxM2UzM2RkYTNh
YjYxYTVhZmU0MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L3J1bl9hbGwucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBA
Ci0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlJ1biBh
bGwgdGVzdHMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LgotCi1UaGlzIHN1aXRlIGlzIGV4cGVjdGVk
IHRvIGJlIHJ1biB1bmRlciBweXdlYnNvY2tldCdzIHNyYyBkaXJlY3RvcnksIGkuZS4gdGhlCi1k
aXJlY3RvcnkgY29udGFpbmluZyBtb2RfcHl3ZWJzb2NrZXQsIHRlc3QsIGV0Yy4KLQotVG8gY2hh
bmdlIGxvZ2dpbiBsZXZlbCwgcGxlYXNlIHNwZWNpZnkgLS1sb2ctbGV2ZWwgb3B0aW9uLgotICAg
IHB5dGhvbiB0ZXN0L3J1bl90ZXN0LnB5IC0tbG9nLWxldmVsIGRlYnVnCi0KLVRvIHBhc3MgYW55
IG9wdGlvbiB0byB1bml0dGVzdCBtb2R1bGUsIHBsZWFzZSBzcGVjaWZ5IG9wdGlvbnMgYWZ0ZXIg
Jy0tJy4gRm9yCi1leGFtcGxlLCBydW4gdGhpcyBmb3IgbWFraW5nIHRoZSB0ZXN0IHJ1bm5lciB2
ZXJib3NlLgotICAgIHB5dGhvbiB0ZXN0L3J1bl90ZXN0LnB5IC0tbG9nLWxldmVsIGRlYnVnIC0t
IC12Ci0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgb3MK
LWltcG9ydCByZQotaW1wb3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0Ci0KLQotX1RFU1RfTU9EVUxF
X1BBVFRFUk4gPSByZS5jb21waWxlKHInXih0ZXN0Xy4rKVwucHkkJykKLQotCi1kZWYgX2xpc3Rf
dGVzdF9tb2R1bGVzKGRpcmVjdG9yeSk6Ci0gICAgbW9kdWxlX25hbWVzID0gW10KLSAgICBmb3Ig
ZmlsZW5hbWUgaW4gb3MubGlzdGRpcihkaXJlY3RvcnkpOgotICAgICAgICBtYXRjaCA9IF9URVNU
X01PRFVMRV9QQVRURVJOLnNlYXJjaChmaWxlbmFtZSkKLSAgICAgICAgaWYgbWF0Y2g6Ci0gICAg
ICAgICAgICBtb2R1bGVfbmFtZXMuYXBwZW5kKG1hdGNoLmdyb3VwKDEpKQotICAgIHJldHVybiBt
b2R1bGVfbmFtZXMKLQotCi1kZWYgX3N1aXRlKCk6Ci0gICAgbG9hZGVyID0gdW5pdHRlc3QuVGVz
dExvYWRlcigpCi0gICAgcmV0dXJuIGxvYWRlci5sb2FkVGVzdHNGcm9tTmFtZXMoCi0gICAgICAg
ICAgICBfbGlzdF90ZXN0X21vZHVsZXMob3MucGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxl
X18pWzBdLCAnLicpKSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHBhcnNl
ciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9n
LWxldmVsJywgJy0tbG9nX2xldmVsJywgdHlwZT0nY2hvaWNlJywKLSAgICAgICAgICAgICAgICAg
ICAgICBkZXN0PSdsb2dfbGV2ZWwnLCBkZWZhdWx0PSd3YXJuaW5nJywKLSAgICAgICAgICAgICAg
ICAgICAgICBjaG9pY2VzPVsnZGVidWcnLCAnaW5mbycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJy
b3InLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcml0aWNhbCddKQotICAgIG9w
dGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCi0gICAgbG9nZ2luZy5iYXNpY0NvbmZp
ZygKLSAgICAgICAgICAgIGxldmVsPWxvZ2dpbmcuZ2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9nX2xl
dmVsLnVwcGVyKCkpLAotICAgICAgICAgICAgZm9ybWF0PSclKGxldmVsbmFtZSlzICUoYXNjdGlt
ZSlzICcKLSAgICAgICAgICAgICAgICAgICAnJShmaWxlbmFtZSlzOiUobGluZW5vKWRdICcKLSAg
ICAgICAgICAgICAgICAgICAnJShtZXNzYWdlKXMnLAotICAgICAgICAgICAgZGF0ZWZtdD0nJUg6
JU06JVMnKQotICAgIHVuaXR0ZXN0Lm1haW4oZGVmYXVsdFRlc3Q9J19zdWl0ZScsIGFyZ3Y9W3N5
cy5hcmd2WzBdXSArIGFyZ3MpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L3NldF9zeXNfcGF0aC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qvc2V0X3N5c19wYXRo
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2M2ZGI5ZWE0ZDM4M2EzN2MyN2Ew
NjBhMGVmMWM1NjNiYmIxZTE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qvc2V0X3N5c19wYXRoLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsNDUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0j
IGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0j
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiQ29uZmlndXJhdGlvbiBmb3Ig
dGVzdGluZy4KLQotVGVzdCBmaWxlcyBzaG91bGQgaW1wb3J0IHRoaXMgbW9kdWxlIGJlZm9yZSBt
b2RfcHl3ZWJzb2NrZXQuCi0iIiIKLQotCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLQotCi0jIEFk
ZCB0aGUgcGFyZW50IGRpcmVjdG9yeSB0byBzeXMucGF0aCB0byBlbmFibGUgaW1wb3J0aW5nIG1v
ZF9weXdlYnNvY2tldC4KLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4ob3MucGF0aC5z
cGxpdChfX2ZpbGVfXylbMF0sICcuLicpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2Rpc3BhdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0
X2Rpc3BhdGNoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Y2EzZDRmM2FlMWRi
ZjVmOTdiMjdkODRlYzZlNjQyMmZkMGVjYWE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9kaXNwYXRjaC5weQorKysgL2Rl
di9udWxsCkBAIC0xLDI4OCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29w
eXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBkaXNwYXRjaCBtb2R1bGUuIiIiCi0KLQotaW1w
b3J0IG9zCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUg
c3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBkaXNwYXRjaAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhh
bmRzaGFrZQotZnJvbSB0ZXN0IGltcG9ydCBtb2NrCi0KLQotX1RFU1RfSEFORExFUlNfRElSID0g
b3MucGF0aC5qb2luKAotICAgICAgICBvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJ3Rlc3Rk
YXRhJywgJ2hhbmRsZXJzJykKLQotX1RFU1RfSEFORExFUlNfU1VCX0RJUiA9IG9zLnBhdGguam9p
bihfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInKQotCi0KLWNsYXNzIERpc3BhdGNoZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBkaXNwYXRjaCBtb2R1bGUu
IiIiCi0KLSAgICBkZWYgdGVzdF9ub3JtYWxpemVfcGF0aChzZWxmKToKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChvcy5wYXRoLmFic3BhdGgoJy9hL2InKS5yZXBsYWNlKCdcXCcsICcvJyksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKCcvYS9iJykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKCcvYS9iJykucmVwbGFj
ZSgnXFwnLCAnLycpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxp
emVfcGF0aCgnXFxhXFxiJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MucGF0aC5hYnNw
YXRoKCcvYS9iJykucmVwbGFjZSgnXFwnLCAnLycpLAotICAgICAgICAgICAgICAgICAgICAgICAg
IGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnL2EvYy8uLi9iJykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKCdhYmMnKS5yZXBsYWNlKCdcXCcsICcvJyksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKCdhYmMnKSkKLQot
ICAgIGRlZiB0ZXN0X2NvbnZlcnRlcihzZWxmKToKLSAgICAgICAgY29udmVydGVyID0gZGlzcGF0
Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcignL2EvYicpCi0gICAgICAgICMg
UHl0aG9uIGJ1aWx0IGJ5IE1TQyBpbnNlcnRzIGEgZHJpdmUgbmFtZSBsaWtlICdDOlwnIHZpYSBy
ZWFscGF0aCgpLgotICAgICAgICAjIENvbnZlcnRlciBHZW5lcmF0b3IgZXhwYW5kcyBwcm92aWRl
ZCBwYXRoIHVzaW5nIHJlYWxwYXRoKCkgYW5kIHVzZXMKLSAgICAgICAgIyB0aGUgcGF0aCBpbmNs
dWRpbmcgYSBkcml2ZSBuYW1lIHRvIHZlcmlmeSB0aGUgcHJlZml4LgotICAgICAgICBvc19yb290
ID0gb3MucGF0aC5yZWFscGF0aCgnLycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywg
Y29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2hfd3NoLnB5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJy9jL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvYy9oX3dzaC5weScpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9oLnB5
JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgY29udmVydGVyKCdhL2IvaF93c2gu
cHknKSkKLQotICAgICAgICBjb252ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVz
b3VyY2VfY29udmVydGVyKCdhL2InKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNv
bnZlcnRlcihkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoCi0gICAgICAgICAgICAnYS9iL2hfd3No
LnB5JykpKQotCi0gICAgICAgIGNvbnZlcnRlciA9IGRpc3BhdGNoLl9jcmVhdGVfcGF0aF90b19y
ZXNvdXJjZV9jb252ZXJ0ZXIoJy9hL2IvLy8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcv
aCcsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9oX3dzaC5weScpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoCi0gICAg
ICAgICAgICAnL2EvYi8uLi9iL2hfd3NoLnB5JykpKQotCi0gICAgICAgIGNvbnZlcnRlciA9IGRp
c3BhdGNoLl9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIoCi0gICAgICAgICAgICAn
L2EvLi4vYS9iLy4uL2IvJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0
ZXIob3Nfcm9vdCArICdhL2IvaF93c2gucHknKSkKLQotICAgICAgICBjb252ZXJ0ZXIgPSBkaXNw
YXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKHInXGFcYicpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKG9zX3Jvb3QgKyByJ2FcYlxoX3dzaC5w
eScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsg
cidhL2IvaF93c2gucHknKSkKLQotICAgIGRlZiB0ZXN0X2VudW1lcmF0ZV9oYW5kbGVyX2ZpbGVf
cGF0aHMoc2VsZik6Ci0gICAgICAgIHBhdGhzID0gbGlzdCgKLSAgICAgICAgICAgIGRpc3BhdGNo
Ll9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3BhdGhzKF9URVNUX0hBTkRMRVJTX0RJUikpCi0gICAg
ICAgIHBhdGhzLnNvcnQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDgsIGxlbihwYXRocykp
Ci0gICAgICAgIGV4cGVjdGVkX3BhdGhzID0gWwotICAgICAgICAgICAgICAgIG9zLnBhdGguam9p
bihfVEVTVF9IQU5ETEVSU19ESVIsICdhYm9ydF9ieV91c2VyX3dzaC5weScpLAotICAgICAgICAg
ICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdibGFua193c2gucHknKSwK
LSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnb3JpZ2lu
X2NoZWNrX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5E
TEVSU19ESVIsICdzdWInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhjZXB0aW9u
X2luX3RyYW5zZmVyX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVT
VF9IQU5ETEVSU19ESVIsICdzdWInLCAnbm9uX2NhbGxhYmxlX3dzaC5weScpLAotICAgICAgICAg
ICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAncGxhaW5fd3No
LnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwg
J3N1YicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3cm9uZ19oYW5kc2hha2Vfc2ln
X3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19E
SVIsICdzdWInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd3JvbmdfdHJhbnNmZXJf
c2lnX3dzaC5weScpLAotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgZm9yIGV4cGVjdGVkLCBh
Y3R1YWwgaW4gemlwKGV4cGVjdGVkX3BhdGhzLCBwYXRocyk6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV4cGVjdGVkLCBhY3R1YWwpCi0KLSAgICBkZWYgdGVzdF9zb3VyY2VfaGFuZGxl
cl9maWxlKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgIGRp
c3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBkaXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmlsZSwg
JycpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAgZGlzcGF0Y2guRGlz
cGF0Y2hFeGNlcHRpb24sIGRpc3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlLCAnZGVmJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaEV4
Y2VwdGlvbiwgZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2ZpbGUsICcxLzAnKQotICAgICAgICBz
ZWxmLmZhaWxVbmxlc3MoZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2ZpbGUoCi0gICAgICAgICAg
ICAgICAgJ2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KTpwYXNzXG4n
Ci0gICAgICAgICAgICAgICAgJ2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6
cGFzc1xuJykpCi0KLSAgICBkZWYgdGVzdF9zb3VyY2Vfd2FybmluZ3Moc2VsZik6Ci0gICAgICAg
IGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgTm9u
ZSkKLSAgICAgICAgd2FybmluZ3MgPSBkaXNwYXRjaGVyLnNvdXJjZV93YXJuaW5ncygpCi0gICAg
ICAgIHdhcm5pbmdzLnNvcnQoKQotICAgICAgICBleHBlY3RlZF93YXJuaW5ncyA9IFsKLSAgICAg
ICAgICAgICAgICAob3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAg
ICAgICAgIF9URVNUX0hBTkRMRVJTX0RJUiwgJ2JsYW5rX3dzaC5weScpKSArCi0gICAgICAgICAg
ICAgICAgICc6IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIGlzIG5vdCBkZWZpbmVkLicp
LAotICAgICAgICAgICAgICAgIChvcy5wYXRoLnJlYWxwYXRoKG9zLnBhdGguam9pbigKLSAgICAg
ICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ25vbl9jYWxsYWJsZV93
c2gucHknKSkgKwotICAgICAgICAgICAgICAgICAnOiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRz
aGFrZSBpcyBub3QgY2FsbGFibGUuJyksCi0gICAgICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBh
dGgob3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIs
ICdzdWInLCAnd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHknKSkgKwotICAgICAgICAgICAgICAg
ICAnOiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBub3QgZGVmaW5lZC4nKSwKLSAg
ICAgICAgICAgICAgICAob3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4oCi0gICAgICAgICAg
ICAgICAgICAgIF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsICd3cm9uZ190cmFuc2Zlcl9zaWdf
d3NoLnB5JykpICsKLSAgICAgICAgICAgICAgICAgJzogd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRh
IGlzIG5vdCBkZWZpbmVkLicpLAotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoNCwgbGVuKHdhcm5pbmdzKSkKLSAgICAgICAgZm9yIGV4cGVjdGVkLCBhY3R1YWwg
aW4gemlwKGV4cGVjdGVkX3dhcm5pbmdzLCB3YXJuaW5ncyk6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhleHBlY3RlZCwgYWN0dWFsKQotCi0gICAgZGVmIHRlc3RfZG9fZXh0cmFfaGFu
ZHNoYWtlKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihf
VEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1
ZXN0KCkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvb3JpZ2luX2NoZWNrJwotICAg
ICAgICByZXF1ZXN0LndzX29yaWdpbiA9ICdodHRwOi8vZXhhbXBsZS5jb20nCi0gICAgICAgIGRp
c3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpICAjIE11c3Qgbm90IHJhaXNlIGV4
Y2VwdGlvbi4KLQotICAgICAgICByZXF1ZXN0LndzX29yaWdpbiA9ICdodHRwOi8vYmFkLmV4YW1w
bGUuY29tJwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkaXNwYXRjaGVyLmRvX2V4dHJhX2hh
bmRzaGFrZShyZXF1ZXN0KQotICAgICAgICAgICAgc2VsZi5mYWlsKCdDb3VsZCBub3QgY2F0Y2gg
SGFuZHNoYWtlRXhjZXB0aW9uIHdpdGggNDAzIHN0YXR1cycpCi0gICAgICAgIGV4Y2VwdCBoYW5k
c2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoNDAzLCBlLnN0YXR1cykKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAg
ICAgIHNlbGYuZmFpbCgnVW5leHBlY3RlZCBleGNlcHRpb246ICVyJyAlIGUpCi0KLSAgICBkZWYg
dGVzdF9hYm9ydF9leHRyYV9oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBk
aXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLSAgICAgICAgcmVx
dWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0g
Jy9hYm9ydF9ieV91c2VyJwotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhoYW5kc2hha2UuQWJv
cnRlZEJ5VXNlckV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hl
ci5kb19leHRyYV9oYW5kc2hha2UsIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF90cmFuc2Zlcl9k
YXRhKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVT
VF9IQU5ETEVSU19ESVIsIE5vbmUpCi0KLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVl
c3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcpKQotICAgICAgICByZXF1ZXN0
LndzX3Jlc291cmNlID0gJy9vcmlnaW5fY2hlY2snCi0gICAgICAgIHJlcXVlc3Qud3NfcHJvdG9j
b2wgPSAncDEnCi0gICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdvcmlnaW5fY2hlY2tfd3NoLnB5IGlzIGNhbGxlZCBmb3Ig
L29yaWdpbl9jaGVjaywgcDEnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ1x4ZmZceDAwJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0KLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2Nr
Lk1vY2tDb25uKCdceGZmXHgwMCcpKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9z
dWIvcGxhaW4nCi0gICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSBOb25lCi0gICAgICAgIGRp
c3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdzdWIvcGxhaW5fd3NoLnB5IGlzIGNhbGxlZCBmb3IgL3N1Yi9wbGFpbiwgTm9uZScKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAnXHhmZlx4MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICByZXF1ZXN0ID0g
bW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJ1x4ZmZceDAwJykpCi0g
ICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL3N1Yi9wbGFpbj8nCi0gICAgICAgIHJlcXVl
c3Qud3NfcHJvdG9jb2wgPSBOb25lCi0gICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShy
ZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzdWIvcGxhaW5fd3NoLnB5IGlzIGNh
bGxlZCBmb3IgL3N1Yi9wbGFpbj8sIE5vbmUnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ1x4
ZmZceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVj
dGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcpKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291
cmNlID0gJy9zdWIvcGxhaW4/cT12JwotICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gTm9u
ZQotICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnc3ViL3BsYWluX3dzaC5weSBpcyBjYWxsZWQgZm9yIC9zdWIvcGxhaW4/
cT12LCBOb25lJwotICAgICAgICAgICAgICAgICAgICAgICAgICdceGZmXHgwMCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0g
ICAgZGVmIHRlc3RfdHJhbnNmZXJfZGF0YV9ub19oYW5kbGVyKHNlbGYpOgotICAgICAgICBkaXNw
YXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0g
ICAgICAgIGZvciByZXNvdXJjZSBpbiBbJy9ibGFuaycsICcvc3ViL25vbl9jYWxsYWJsZScsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgJy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQnLCAnL2RvZXMv
bm90L2V4aXN0J106Ci0gICAgICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChjb25u
ZWN0aW9uPW1vY2suTW9ja0Nvbm4oJycpKQotICAgICAgICAgICAgcmVxdWVzdC53c19yZXNvdXJj
ZSA9IHJlc291cmNlCi0gICAgICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gJ3AyJwotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShy
ZXF1ZXN0KQotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgpCi0gICAgICAgICAgICBleGNlcHQg
ZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWls
VW5sZXNzKHN0cihlKS5maW5kKCdObyBoYW5kbGVyJykgIT0gLTEpCi0gICAgICAgICAgICBleGNl
cHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgpCi0KLSAgICBkZWYgdGVz
dF90cmFuc2Zlcl9kYXRhX2hhbmRsZXJfZXhjZXB0aW9uKHNlbGYpOgotICAgICAgICBkaXNwYXRj
aGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAg
ICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubign
JykpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL3N1Yi9leGNlcHRpb25faW5fdHJh
bnNmZXInCi0gICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSAncDMnCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICAg
ICAgc2VsZi5mYWlsKCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAg
IHNlbGYuZmFpbFVubGVzcyhzdHIoZSkuZmluZCgnSW50ZW50aW9uYWwnKSAhPSAtMSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBleGNlcHRpb246ICVzJyAlIGUpCi0K
LSAgICBkZWYgdGVzdF9hYm9ydF90cmFuc2Zlcl9kYXRhKHNlbGYpOgotICAgICAgICBkaXNwYXRj
aGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAg
ICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KCkKLSAgICAgICAgcmVxdWVzdC53c19yZXNv
dXJjZSA9ICcvYWJvcnRfYnlfdXNlcicKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoaGFuZHNo
YWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGRp
c3BhdGNoZXIudHJhbnNmZXJfZGF0YSwgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3NjYW5fZGly
KHNlbGYpOgotICAgICAgICBkaXNwID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVS
U19ESVIsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNCwgbGVuKGRpc3AuX2hhbmRs
ZXJfc3VpdGVfbWFwKSkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvb3JpZ2luX2NoZWNrJyBp
biBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKAotICAg
ICAgICAgICAgJy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVyX3N1
aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvc3ViL3BsYWluJyBpbiBkaXNwLl9o
YW5kbGVyX3N1aXRlX21hcCkKLQotICAgIGRlZiB0ZXN0X3NjYW5fc3ViX2RpcihzZWxmKToKLSAg
ICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBfVEVT
VF9IQU5ETEVSU19TVUJfRElSKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihkaXNw
Ll9oYW5kbGVyX3N1aXRlX21hcCkpCi0gICAgICAgIHNlbGYuZmFpbElmKCcvb3JpZ2luX2NoZWNr
JyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKAot
ICAgICAgICAgICAgJy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVy
X3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvc3ViL3BsYWluJyBpbiBkaXNw
Ll9oYW5kbGVyX3N1aXRlX21hcCkKLQotICAgIGRlZiB0ZXN0X3NjYW5fc3ViX2Rpcl9hc19yb290
KHNlbGYpOgotICAgICAgICBkaXNwID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVS
U19TVUJfRElSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVEVTVF9IQU5E
TEVSU19TVUJfRElSKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihkaXNwLl9oYW5k
bGVyX3N1aXRlX21hcCkpCi0gICAgICAgIHNlbGYuZmFpbElmKCcvb3JpZ2luX2NoZWNrJyBpbiBk
aXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsSWYoJy9zdWIvZXhjZXB0
aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2Vs
Zi5mYWlsSWYoJy9zdWIvcGxhaW4nIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAg
ICBzZWxmLmZhaWxVbmxlc3MoJy9leGNlcHRpb25faW5fdHJhbnNmZXInIGluIGRpc3AuX2hhbmRs
ZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9wbGFpbicgaW4gZGlzcC5f
aGFuZGxlcl9zdWl0ZV9tYXApCi0KLSAgICBkZWYgdGVzdF9zY2FuX2Rpcl9tdXN0X3VuZGVyX3Jv
b3Qoc2VsZik6Ci0gICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoZXIoJ2EvYicsICdhL2IvYycpICAj
IE9LCi0gICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoZXIoJ2EvYi8vLycsICdhL2InKSAgIyBPSwot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hlciwgJ2EvYi9jJywgJ2Ev
YicpCi0KLSAgICBkZWYgdGVzdF9yZXNvdXJjZV9wYXRoX2FsaWFzKHNlbGYpOgotICAgICAgICBk
aXNwID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAg
ICAgIGRpc3AuYWRkX3Jlc291cmNlX3BhdGhfYWxpYXMoJy8nLCAnL29yaWdpbl9jaGVjaycpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNSwgbGVuKGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKSkK
LSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvb3JpZ2luX2NoZWNrJyBpbiBkaXNwLl9oYW5kbGVy
X3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKAotICAgICAgICAgICAgJy9zdWIv
ZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAg
ICAgc2VsZi5mYWlsVW5sZXNzKCcvc3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21h
cCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21h
cCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3AuYWRkX3Jlc291cmNlX3BhdGhfYWxpYXMs
ICcvYWxpYXMnLCAnL25vdC1leGlzdCcpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
LSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdF9lbmR0b2VuZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9lbmR0
b2VuZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWU1Y2Y2MTU3MzkxN2Q4N2Qx
MzY1YjE2YTU4YzJjNDE4OGE5MTJlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZW5kdG9lbmQucHkKKysrIC9kZXYvbnVs
bApAQCAtMSw3NTMgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdo
dCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotCi0iIiJFbmQtdG8tZW5kIHRlc3RzIGZvciBweXdlYnNvY2tldC4gVGVzdHMgc3Rh
bmRhbG9uZS5weSBieSBkZWZhdWx0LiBZb3UKLWNhbiBhbHNvIHRlc3QgbW9kX3B5d2Vic29ja2V0
IGhvc3RlZCBvbiBhbiBBcGFjaGUgc2VydmVyIGJ5IHNldHRpbmcKLV91c2VfZXh0ZXJuYWxfc2Vy
dmVyIHRvIFRydWUgYW5kIG1vZGlmeWluZyBfZXh0ZXJuYWxfc2VydmVyX3BvcnQgdG8gcG9pbnQg
dG8KLXRoZSBwb3J0IG9uIHdoaWNoIHRoZSBBcGFjaGUgc2VydmVyIGlzIHJ1bm5pbmcuCi0iIiIK
LQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgc2lnbmFsCi1pbXBvcnQgc29j
a2V0Ci1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKLWltcG9ydCB1
bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2Nh
dGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSB0ZXN0IGltcG9ydCBjbGllbnRfZm9y
X3Rlc3RpbmcKLWZyb20gdGVzdCBpbXBvcnQgbXV4X2NsaWVudF9mb3JfdGVzdGluZwotCi0KLSMg
U3BlY2lhbCBtZXNzYWdlIHRoYXQgdGVsbHMgdGhlIGVjaG8gc2VydmVyIHRvIHN0YXJ0IGNsb3Np
bmcgaGFuZHNoYWtlCi1fR09PREJZRV9NRVNTQUdFID0gJ0dvb2RieWUnCi0KLV9TRVJWRVJfV0FS
TVVQX0lOX1NFQyA9IDAuMgotCi0jIElmIHlvdSB3YW50IHRvIHVzZSBleHRlcm5hbCBzZXJ2ZXIg
dG8gcnVuIGVuZCB0byBlbmQgdGVzdHMsIHNldCBmb2xsb3dpbmcKLSMgcGFyYW1ldGVycyBjb3Jy
ZWN0bHkuCi1fdXNlX2V4dGVybmFsX3NlcnZlciA9IEZhbHNlCi1fZXh0ZXJuYWxfc2VydmVyX3Bv
cnQgPSAwCi0KLQotIyBUZXN0IGJvZHkgZnVuY3Rpb25zCi1kZWYgX2VjaG9fY2hlY2tfcHJvY2Vk
dXJlKGNsaWVudCk6Ci0gICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgY2xpZW50LnNlbmRfbWVz
c2FnZSgndGVzdCcpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCd0ZXN0JykKLSAgICBjbGll
bnQuc2VuZF9tZXNzYWdlKCdoZWxsb3dvcmxkJykKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUo
J2hlbGxvd29ybGQnKQotCi0gICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgIGNsaWVudC5hc3Nl
cnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2Vk
KCkKLQotCi1kZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfYmluYXJ5KGNsaWVudCk6Ci0g
ICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgY2xpZW50LnNlbmRfbWVzc2FnZSgnYmluYXJ5Jywg
YmluYXJ5PVRydWUpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCdiaW5hcnknLCBiaW5hcnk9
VHJ1ZSkKLSAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCdceDAwXHg4MFx4ZmVceGZmXHgwMFx4ODAn
LCBiaW5hcnk9VHJ1ZSkKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ1x4MDBceDgwXHhmZVx4
ZmZceDAwXHg4MCcsIGJpbmFyeT1UcnVlKQotCi0gICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAg
IGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICBjbGllbnQuYXNzZXJ0X2Nvbm5l
Y3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5
ZShjbGllbnQpOgotICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5kX21lc3Nh
Z2UoJ3Rlc3QnKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgndGVzdCcpCi0KLSAgICBjbGll
bnQuc2VuZF9tZXNzYWdlKF9HT09EQllFX01FU1NBR0UpCi0gICAgY2xpZW50LmFzc2VydF9yZWNl
aXZlKF9HT09EQllFX01FU1NBR0UpCi0KLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2Uo
KQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLQotICAgIGNsaWVudC5hc3NlcnRfY29ubmVjdGlv
bl9jbG9zZWQoKQotCi0KLWRlZiBfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9jb2RlX2FuZF9y
ZWFzb24oY2xpZW50LCBjb2RlLCByZWFzb24pOgotICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAg
IGNsaWVudC5zZW5kX2Nsb3NlKGNvZGUsIHJlYXNvbikKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2Vp
dmVfY2xvc2UoY29kZSwgcmVhc29uKQotCi0gICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Ns
b3NlZCgpCi0KLQotZGVmIF91bm1hc2tlZF9mcmFtZV9jaGVja19wcm9jZWR1cmUoY2xpZW50KToK
LSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCd0ZXN0Jywg
bWFzaz1GYWxzZSkKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoY2xpZW50X2Zvcl90
ZXN0aW5nLlNUQVRVU19QUk9UT0NPTF9FUlJPUiwgJycpCi0KLSAgICBjbGllbnQuYXNzZXJ0X2Nv
bm5lY3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX211eF9lY2hvX2NoZWNrX3Byb2NlZHVyZShtdXhf
Y2xpZW50KToKLSAgICBtdXhfY2xpZW50LmNvbm5lY3QoKQotICAgIG11eF9jbGllbnQuc2VuZF9m
bG93X2NvbnRyb2woMSwgMTAyNCkKLQotICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zID0gY2xp
ZW50X2Zvcl90ZXN0aW5nLkNsaWVudE9wdGlvbnMoKQotICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRp
b25zLnNlcnZlcl9ob3N0ID0gJ2xvY2FsaG9zdCcKLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9u
cy5zZXJ2ZXJfcG9ydCA9IDgwCi0gICAgbG9naWNhbF9jaGFubmVsX29wdGlvbnMub3JpZ2luID0g
J2h0dHA6Ly9sb2NhbGhvc3QnCi0gICAgbG9naWNhbF9jaGFubmVsX29wdGlvbnMucmVzb3VyY2Ug
PSAnL2VjaG8nCi0gICAgbXV4X2NsaWVudC5hZGRfY2hhbm5lbCgyLCBsb2dpY2FsX2NoYW5uZWxf
b3B0aW9ucykKLSAgICBtdXhfY2xpZW50LnNlbmRfZmxvd19jb250cm9sKDIsIDEwMjQpCi0KLSAg
ICBtdXhfY2xpZW50LnNlbmRfbWVzc2FnZSgyLCAndGVzdCcpCi0gICAgbXV4X2NsaWVudC5hc3Nl
cnRfcmVjZWl2ZSgyLCAndGVzdCcpCi0KLSAgICBtdXhfY2xpZW50LmFkZF9jaGFubmVsKDMsIGxv
Z2ljYWxfY2hhbm5lbF9vcHRpb25zKQotICAgIG11eF9jbGllbnQuc2VuZF9mbG93X2NvbnRyb2wo
MywgMTAyNCkKLQotICAgIG11eF9jbGllbnQuc2VuZF9tZXNzYWdlKDIsICdoZWxsbycpCi0gICAg
bXV4X2NsaWVudC5zZW5kX21lc3NhZ2UoMywgJ3dvcmxkJykKLSAgICBtdXhfY2xpZW50LmFzc2Vy
dF9yZWNlaXZlKDIsICdoZWxsbycpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZSgzLCAn
d29ybGQnKQotCi0gICAgIyBEb24ndCBzZW5kIGNsb3NlIG1lc3NhZ2Ugb24gY2hhbm5lbCBpZCAx
IHNvIHRoYXQgc2VydmVyLWluaXRpYXRlZAotICAgICMgY2xvc2luZyBoYW5kc2hha2Ugd29uJ3Qg
b2NjdXIuCi0gICAgbXV4X2NsaWVudC5zZW5kX2Nsb3NlKDIpCi0gICAgbXV4X2NsaWVudC5zZW5k
X2Nsb3NlKDMpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgyKQotICAgIG11
eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoMykKLQotICAgIG11eF9jbGllbnQuc2VuZF9w
aHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlKCkKLSAgICBtdXhfY2xpZW50LmFzc2VydF9waHlzaWNh
bF9jb25uZWN0aW9uX3JlY2VpdmVfY2xvc2UoKQotCi0KLWNsYXNzIEVuZFRvRW5kVGVzdEJhc2Uo
dW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkJhc2UgY2xhc3MgZm9yIGVuZC10by1lbmQgdGVz
dHMgdGhhdCBsYXVuY2ggcHl3ZWJzb2NrZXQgc3RhbmRhbG9uZQotICAgIHNlcnZlciBhcyBhIHNl
cGFyYXRlIHByb2Nlc3MsIGNvbm5lY3QgdG8gaXQgdXNpbmcgdGhlIGNsaWVudF9mb3JfdGVzdGlu
ZwotICAgIG1vZHVsZSwgYW5kIGNoZWNrIGlmIHRoZSBzZXJ2ZXIgYmVoYXZlcyBjb3JyZWN0bHkg
YnkgZXhjaGFuZ2luZyBvcGVuaW5nCi0gICAgaGFuZHNoYWtlIGFuZCBmcmFtZXMgb3ZlciBhIFRD
UCBjb25uZWN0aW9uLgotICAgICIiIgotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz
ZWxmLnNlcnZlcl9zdGRlcnIgPSBOb25lCi0gICAgICAgIHNlbGYudG9wX2RpciA9IG9zLnBhdGgu
am9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJy4uJykKLSAgICAgICAgb3MucHV0ZW52
KCdQWVRIT05QQVRIJywgb3MucGF0aC5wYXRoc2VwLmpvaW4oc3lzLnBhdGgpKQotICAgICAgICBz
ZWxmLnN0YW5kYWxvbmVfY29tbWFuZCA9IG9zLnBhdGguam9pbigKLSAgICAgICAgICAgIHNlbGYu
dG9wX2RpciwgJ21vZF9weXdlYnNvY2tldCcsICdzdGFuZGFsb25lLnB5JykKLSAgICAgICAgc2Vs
Zi5kb2N1bWVudF9yb290ID0gb3MucGF0aC5qb2luKHNlbGYudG9wX2RpciwgJ2V4YW1wbGUnKQot
ICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCi0gICAgICAgIHMuYmluZCgoJ2xvY2FsaG9zdCcs
IDApKQotICAgICAgICAoXywgc2VsZi50ZXN0X3BvcnQpID0gcy5nZXRzb2NrbmFtZSgpCi0gICAg
ICAgIHMuY2xvc2UoKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBjbGllbnRfZm9yX3Rlc3Rp
bmcuQ2xpZW50T3B0aW9ucygpCi0gICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QgPSAn
bG9jYWxob3N0JwotICAgICAgICBzZWxmLl9vcHRpb25zLm9yaWdpbiA9ICdodHRwOi8vbG9jYWxo
b3N0JwotICAgICAgICBzZWxmLl9vcHRpb25zLnJlc291cmNlID0gJy9lY2hvJwotCi0gICAgICAg
ICMgVE9ETyh0b3lvc2hpbSk6IEVsaW1pbmF0ZSBsYXVuY2hpbmcgYSBzdGFuZGFsb25lIHNlcnZl
ciBvbiB1c2luZwotICAgICAgICAjIGV4dGVybmFsIHNlcnZlci4KLQotICAgICAgICBpZiBfdXNl
X2V4dGVybmFsX3NlcnZlcjoKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQg
PSBfZXh0ZXJuYWxfc2VydmVyX3BvcnQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMuc2VydmVyX3BvcnQgPSBzZWxmLnRlc3RfcG9ydAotCi0gICAgIyBUT0RPKHR5b3No
aW5vKTogVXNlIHRlYXJEb3duIHRvIGtpbGwgdGhlIHNlcnZlci4KLQotICAgIGRlZiBfcnVuX3B5
dGhvbl9jb21tYW5kKHNlbGYsIGNvbW1hbmRsaW5lLCBzdGRvdXQ9Tm9uZSwgc3RkZXJyPU5vbmUp
OgotICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGVdICsgY29t
bWFuZGxpbmUsIGNsb3NlX2Zkcz1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGRvdXQ9c3Rkb3V0LCBzdGRlcnI9c3RkZXJyKQotCi0gICAgZGVmIF9ydW5fc2VydmVyKHNl
bGYpOgotICAgICAgICBhcmdzID0gW3NlbGYuc3RhbmRhbG9uZV9jb21tYW5kLAotICAgICAgICAg
ICAgICAgICctSCcsICdsb2NhbGhvc3QnLAotICAgICAgICAgICAgICAgICctVicsICdsb2NhbGhv
c3QnLAotICAgICAgICAgICAgICAgICctcCcsIHN0cihzZWxmLnRlc3RfcG9ydCksCi0gICAgICAg
ICAgICAgICAgJy1QJywgc3RyKHNlbGYudGVzdF9wb3J0KSwKLSAgICAgICAgICAgICAgICAnLWQn
LCBzZWxmLmRvY3VtZW50X3Jvb3RdCi0KLSAgICAgICAgIyBJbmhlcml0IHRoZSBsZXZlbCBzZXQg
dG8gdGhlIHJvb3QgbG9nZ2VyIGJ5IHRlc3QgcnVubmVyLgotICAgICAgICByb290X2xvZ2dlciA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKLSAgICAgICAgbG9nX2xldmVsID0gcm9vdF9sb2dnZXIuZ2V0
RWZmZWN0aXZlTGV2ZWwoKQotICAgICAgICBpZiBsb2dfbGV2ZWwgIT0gbG9nZ2luZy5OT1RTRVQ6
Ci0gICAgICAgICAgICBhcmdzLmFwcGVuZCgnLS1sb2ctbGV2ZWwnKQotICAgICAgICAgICAgYXJn
cy5hcHBlbmQobG9nZ2luZy5nZXRMZXZlbE5hbWUobG9nX2xldmVsKS5sb3dlcigpKQotCi0gICAg
ICAgIHJldHVybiBzZWxmLl9ydW5fcHl0aG9uX2NvbW1hbmQoYXJncywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c2VsZi5zZXJ2ZXJfc3RkZXJyKQotCi0g
ICAgZGVmIF9raWxsX3Byb2Nlc3Moc2VsZiwgcGlkKToKLSAgICAgICAgaWYgc3lzLnBsYXRmb3Jt
IGluICgnd2luMzInLCAnY3lnd2luJyk6Ci0gICAgICAgICAgICBzdWJwcm9jZXNzLmNhbGwoCi0g
ICAgICAgICAgICAgICAgKCd0YXNra2lsbC5leGUnLCAnL2YnLCAnL3BpZCcsIHN0cihwaWQpKSwg
Y2xvc2VfZmRzPVRydWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcy5raWxsKHBpZCwg
c2lnbmFsLlNJR0tJTEwpCi0KLQotY2xhc3MgRW5kVG9FbmRIeUJpVGVzdChFbmRUb0VuZFRlc3RC
YXNlKToKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0
VXAoc2VsZikKLQotICAgIGRlZiBfcnVuX3Rlc3Rfd2l0aF9jbGllbnRfb3B0aW9ucyhzZWxmLCB0
ZXN0X2Z1bmN0aW9uLCBvcHRpb25zKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZl
cigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IGFkZCBzb21l
IGxvZ2ljIHRvIHBvbGwgdGhlIHNlcnZlciB1bnRpbCBpdAotICAgICAgICAgICAgIyBiZWNvbWVz
IHJlYWR5Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQot
ICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQob3B0
aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNs
aWVudCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNsb3Nl
X3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nl
c3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVuX3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6
Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0X3dpdGhfY2xpZW50X29wdGlvbnModGVzdF9mdW5jdGlv
biwgc2VsZi5fb3B0aW9ucykKLQotICAgIGRlZiBfcnVuX2RlZmxhdGVfZnJhbWVfdGVzdChzZWxm
LCB0ZXN0X2Z1bmN0aW9uKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VD
KQotCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLmVuYWJsZV9kZWZsYXRlX2ZyYW1lKCkKLSAg
ICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KHNlbGYu
X29wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlv
bihjbGllbnQpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVudC5j
bG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9w
cm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVz
dCgKLSAgICAgICAgICAgIHNlbGYsIG9mZmVyLCByZXNwb25zZV9jaGVja2VyLCB0ZXN0X2Z1bmN0
aW9uKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLmV4dGVuc2lvbnMgKz0gb2ZmZXIKLSAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMuY2hlY2tfcGVybWVzc2FnZV9kZWZsYXRlID0gcmVzcG9uc2VfY2hlY2tlcgotICAg
ICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5f
b3B0aW9ucykKLQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGNsaWVudC5jb25u
ZWN0KCkKLQotICAgICAgICAgICAgICAgIGlmIHRlc3RfZnVuY3Rpb24gaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24oY2xpZW50KQotCi0gICAgICAgICAgICAg
ICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0gICAgICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYg
X3J1bl9jbG9zZV93aXRoX2NvZGVfYW5kX3JlYXNvbl90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24s
IGNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlYXNvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAg
ICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5f
b3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9u
KGNsaWVudCwgY29kZSwgcmVhc29uKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
ICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
IHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIF9ydW5faHR0cF9mYWxs
YmFja190ZXN0KHNlbGYsIG9wdGlvbnMsIHN0YXR1cyk6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYu
X3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJW
RVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0
aW5nLmNyZWF0ZV9jbGllbnQob3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICBjbGllbnQuY29ubmVjdCgpCi0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdDb3VsZCBu
b3QgY2F0Y2ggSHR0cFN0YXR1c0V4Y2VwdGlvbicpCi0gICAgICAgICAgICBleGNlcHQgY2xpZW50
X2Zvcl90ZXN0aW5nLkh0dHBTdGF0dXNFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdGF0dXMsIGUuc3RhdHVzKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbiwgZToKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ0NhdGNoIHVuZXhwZWN0ZWQgZXhj
ZXB0aW9uJykKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNs
b3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9raWxsX3By
b2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVuX211eF90ZXN0KHNlbGYsIHRlc3RfZnVu
Y3Rpb24pOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAg
ICAgICAgIGNsaWVudCA9IG11eF9jbGllbnRfZm9yX3Rlc3RpbmcuTXV4Q2xpZW50KHNlbGYuX29w
dGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihj
bGllbnQpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9z
ZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9j
ZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgdGVzdF9lY2hvKHNlbGYpOgotICAgICAgICBzZWxm
Ll9ydW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYgdGVzdF9lY2hvX2Jp
bmFyeShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJl
X3dpdGhfYmluYXJ5KQotCi0gICAgZGVmIHRlc3RfZWNob19zZXJ2ZXJfY2xvc2Uoc2VsZik6Ci0g
ICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dvb2RieWUp
Ci0KLSAgICBkZWYgdGVzdF91bm1hc2tlZF9mcmFtZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVu
X3Rlc3QoX3VubWFza2VkX2ZyYW1lX2NoZWNrX3Byb2NlZHVyZSkKLQotICAgIGRlZiB0ZXN0X2Vj
aG9fZGVmbGF0ZV9mcmFtZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX2RlZmxhdGVfZnJhbWVf
dGVzdChfZWNob19jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYgdGVzdF9lY2hvX2RlZmxhdGVf
ZnJhbWVfc2VydmVyX2Nsb3NlKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fZGVmbGF0ZV9mcmFt
ZV90ZXN0KAotICAgICAgICAgICAgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZSkK
LQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlKHNlbGYpOgotICAgICAgICBk
ZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxl
cyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSAnXHhmMlx4NDhc
eGNkXHhjOVx4YzlceDA3XHgwMCcKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0
YSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAg
ICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAg
ICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5h
cnkoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAg
ICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAg
ICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAg
ICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVz
cG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
J3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhbXSwgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAg
c2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVy
bWVzc2FnZS1kZWZsYXRlJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAg
ICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNz
YWdlX2RlZmxhdGVfdHdvX2ZyYW1lcyhzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24o
Y2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0g
ICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAg
ICdceGYyXHg0OFx4Y2QnLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIGVuZD1GYWxzZSwKLSAgICAgICAgICAg
ICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAot
ICAgICAgICAgICAgICAgICAgICAnXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAgICAg
ICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCkKLSAgICAgICAgICAgIGNsaWVudC5f
c3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJc
eDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xp
ZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEp
Ci0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5h
c3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFy
YW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxh
dGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10s
IHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNz
YWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZSdd
LAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVz
dF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3R3b19t
ZXNzYWdlcyhzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAg
ICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBjbGll
bnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2Rc
eGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5n
Lk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBj
bGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHgwMFx4
MTFceDAwXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENP
REVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50
Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICAnXHhm
Mlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1j
bGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9
MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAg
ICAgICAgICAgICAgICAgICAgJ1x4ZjJceDAwXHgxMVx4MDBceDAwJywKLSAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAg
ICAgICAgICAgcnN2MT0xKQotCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAg
ICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNw
b25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygn
cGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKFtdLCBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBz
ZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJt
ZXNzYWdlLWRlZmxhdGUnXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAg
ICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3Nh
Z2VfZGVmbGF0ZV90d29fbXNnc19zZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAg
ICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0aGUg
ZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2Rh
dGEoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywK
LSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAg
ICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5k
X2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHgwMFx4MTFceDAwXHgwMCcsCi0gICAg
ICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAg
ICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3Jl
Y2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4Yzlc
eDA3XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNs
aWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAg
J1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBvcGNv
ZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICBy
c3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNs
aWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNr
ZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdl
LWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoWygnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKV0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBz
ZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJt
ZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJ10sCi0gICAgICAgICAg
ICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQot
Ci0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfcHJlZmVyZW5jZShzZWxmKToK
LSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0
aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
J1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVh
bS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCi0gICAg
ICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAg
ICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3Jl
Y2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAotICAg
ICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAot
ICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Ns
b3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAg
ICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQot
Ci0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAg
ICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsICdkZWZsYXRlLWZyYW1lJ10sCi0gICAgICAgICAg
ICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQot
Ci0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfd2l0aF9wYXJhbWV0ZXJzKHNl
bGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgIyBG
cm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNvbXByZXNzZWRfaGVs
bG8gPSAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcKLSAgICAgICAgICAgIGNsaWVudC5f
c3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywK
LSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAg
ICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3Nl
cnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8s
Ci0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RF
WFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAgY2xpZW50LnNl
bmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQot
ICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywg
JzEwJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdzZXJ2ZXJfbm9fY29udGV4
dF90YWtlb3ZlcicsIE5vbmUpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFt
ZXRlci5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2Rl
ZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVy
X21heF93aW5kb3dfYml0cz0xMDsgJwotICAgICAgICAgICAgICAgICAnc2VydmVyX25vX2NvbnRl
eHRfdGFrZW92ZXInXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAg
ICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2Vf
ZGVmbGF0ZV93aXRoX2JhZF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAgICBk
ZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2Uo
KQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBk
ZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdVbmV4cGVjdGVkIGFjY2VwdGFuY2Ugb2YgcGVybWVzc2FnZS1kZWZsYXRlJykKLQotICAg
ICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAg
WydwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9MzAwMDAwMCddLAot
ICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9m
dW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfYmFk
X3NlcnZlcl9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
KGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBj
bGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVj
a2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQg
YWNjZXB0YW5jZSBvZiBwZXJtZXNzYWdlLWRlZmxhdGUnKQotCi0gICAgICAgIHNlbGYuX3J1bl9w
ZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVm
bGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz0zMDAwMDAwJ10sCi0gICAgICAgICAgICAgICAg
cmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAg
ZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfd2l0aF91bmRlZmluZWRfcGFyYW1ldGVy
KHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAg
Y2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Ns
b3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIGFjY2VwdGFuY2Ugb2YgcGVybWVzc2Fn
ZS1kZWZsYXRlJykKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3Qo
Ci0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IGZvbz1iYXInXSwKLSAgICAg
ICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rp
b24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVhc29uKHNlbGYp
OgotICAgICAgICBzZWxmLl9vcHRpb25zLnJlc291cmNlID0gJy9jbG9zZScKLSAgICAgICAgc2Vs
Zi5fcnVuX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVhc29uX3Rlc3QoCi0gICAgICAgICAgICBfZWNo
b19jaGVja19wcm9jZWR1cmVfd2l0aF9jb2RlX2FuZF9yZWFzb24sIDMzMzMsICdzdW5zdW5zdW5z
dW4nKQotCi0gICAgZGVmIHRlc3RfZWNob19jbG9zZV93aXRoX2VtcHR5X2JvZHkoc2VsZik6Ci0g
ICAgICAgIHNlbGYuX29wdGlvbnMucmVzb3VyY2UgPSAnL2Nsb3NlJwotICAgICAgICBzZWxmLl9y
dW5fY2xvc2Vfd2l0aF9jb2RlX2FuZF9yZWFzb25fdGVzdCgKLSAgICAgICAgICAgIF9lY2hvX2No
ZWNrX3Byb2NlZHVyZV93aXRoX2NvZGVfYW5kX3JlYXNvbiwgTm9uZSwgJycpCi0KLSAgICBkZWYg
dGVzdF9tdXhfZWNobyhzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX211eF90ZXN0KF9tdXhfZWNo
b19jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYgdGVzdF9jbG9zZV9vbl9wcm90b2NvbF9lcnJv
cihzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2Ug
ZnJhbWUgd2l0aCBwcm90b2NvbCBlcnJvciBzdGF0dXMKLSAgICAgICAgY29kZSB3aGVuIHRoZSBj
bGllbnQgc2VuZHMgZGF0YSB3aXRoIHNvbWUgcHJvdG9jb2wgZXJyb3IuCi0gICAgICAgICIiIgot
Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQu
Y29ubmVjdCgpCi0KLSAgICAgICAgICAgICMgSW50ZXJtZWRpYXRlIGZyYW1lIHdpdGhvdXQgYW55
IHByZWNlZGluZyBzdGFydCBvZiBmcmFnbWVudGF0aW9uCi0gICAgICAgICAgICAjIGZyYW1lLgot
ICAgICAgICAgICAgY2xpZW50LnNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKCdceDgwXHg4
MCcsICcnKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAotICAgICAg
ICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfUFJPVE9DT0xfRVJST1IpCi0KLSAg
ICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2Nsb3Nl
X29uX3Vuc3VwcG9ydGVkX2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBz
ZXJ2ZXIgc2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRoIHVuc3VwcG9ydGVkIG9wZXJhdGlvbgotICAg
ICAgICBzdGF0dXMgY29kZSB3aGVuIHRoZSBjbGllbnQgc2VuZHMgZGF0YSBhc2tpbmcgc29tZSBv
cGVyYXRpb24gdGhhdCBpcwotICAgICAgICBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzZXJ2ZXIuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAg
ICAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICAgICAgICAgICMgVGV4dCBmcmFtZSB3aXRoIFJT
VjMgYml0IHJhaXNlZC4KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2ZyYW1lX29mX2FyYml0cmFy
eV9ieXRlcygnXHg5MVx4ODAnLCAnJykKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2
ZV9jbG9zZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX1VOU1VQ
UE9SVEVEX0RBVEEpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKLQot
ICAgIGRlZiB0ZXN0X2Nsb3NlX29uX2ludmFsaWRfZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIlRl
c3RzIHRoYXQgdGhlIHNlcnZlciBzZW5kcyBhIGNsb3NlIGZyYW1lIHdpdGggaW52YWxpZCBmcmFt
ZSBwYXlsb2FkCi0gICAgICAgIGRhdGEgc3RhdHVzIGNvZGUgd2hlbiB0aGUgY2xpZW50IHNlbmRz
IGFuIGludmFsaWQgZnJhbWUgbGlrZSBjb250YWluaW5nCi0gICAgICAgIGludmFsaWQgVVRGLTgg
Y2hhcmFjdGVyLgotICAgICAgICAiIiIKLQotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGll
bnQpOgotICAgICAgICAgICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgICAgICAgICAjIFRleHQg
ZnJhbWUgd2l0aCBpbnZhbGlkIFVURi04IHN0cmluZy4KLSAgICAgICAgICAgIGNsaWVudC5zZW5k
X21lc3NhZ2UoJ1x4ODAnLCByYXc9VHJ1ZSkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVj
ZWl2ZV9jbG9zZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX0lO
VkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBKQotCi0gICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3Rf
ZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9jbG9zZV9vbl9pbnRlcm5hbF9lbmRwb2ludF9lcnJv
cihzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2Ug
ZnJhbWUgd2l0aCBpbnRlcm5hbCBlbmRwb2ludAotICAgICAgICBlcnJvciBzdGF0dXMgY29kZSB3
aGVuIHRoZSBoYW5kbGVyIGRvZXMgYmFkIG9wZXJhdGlvbi4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSA9ICcvaW50ZXJuYWxfZXJyb3InCi0KLSAgICAgICAg
ZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkK
LSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKLSAgICAgICAgICAgICAg
ICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SKQotCi0g
ICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfZnVuY3Rpb24pCi0KLSAgICAjIFRPRE8odG95b3No
aW0pOiBBZGQgdGVzdHMgdG8gdmVyaWZ5IGludmFsaWQgYWJzb2x1dGUgdXJpIGhhbmRsaW5nIGxp
a2UKLSAgICAjIGhvc3QgdW5tYXRjaCwgcG9ydCB1bm1hdGNoIGFuZCBpbnZhbGlkIHBvcnQgZGVz
Y3JpcHRpb24gKCc6JyB3aXRob3V0IHBvcnQKLSAgICAjIG51bWJlcikuCi0KLSAgICBkZWYgdGVz
dF9hYnNvbHV0ZV91cmkoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIGFic29sdXRlIHVyaSByZXF1
ZXN0LiIiIgotCi0gICAgICAgIG9wdGlvbnMgPSBzZWxmLl9vcHRpb25zCi0gICAgICAgIG9wdGlv
bnMucmVzb3VyY2UgPSAnd3M6Ly9sb2NhbGhvc3Q6JWQvZWNobycgJSBvcHRpb25zLnNlcnZlcl9w
b3J0Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0X3dpdGhfY2xpZW50X29wdGlvbnMoX2VjaG9fY2hl
Y2tfcHJvY2VkdXJlLCBvcHRpb25zKQotCi0gICAgZGVmIHRlc3Rfb3JpZ2luX2NoZWNrKHNlbGYp
OgotICAgICAgICAiIiJUZXN0cyBodHRwIGZhbGxiYWNrIG9uIG9yaWdpbiBjaGVjayBmYWlsLiIi
IgotCi0gICAgICAgIG9wdGlvbnMgPSBzZWxmLl9vcHRpb25zCi0gICAgICAgIG9wdGlvbnMucmVz
b3VyY2UgPSAnL29yaWdpbl9jaGVjaycKLSAgICAgICAgIyBTZXJ2ZXIgc2hvd3Mgd2FybmluZyBt
ZXNzYWdlIGZvciBodHRwIDQwMyBmYWxsYmFjay4gVGhpcyB3YXJuaW5nCi0gICAgICAgICMgbWVz
c2FnZSBpcyBjb25mdXNpbmcuIEZvbGxvd2luZyBwaXBlIGRpc3Bvc2VzIHdhcm5pbmcgbWVzc2Fn
ZXMuCi0gICAgICAgIHNlbGYuc2VydmVyX3N0ZGVyciA9IHN1YnByb2Nlc3MuUElQRQotICAgICAg
ICBzZWxmLl9ydW5faHR0cF9mYWxsYmFja190ZXN0KG9wdGlvbnMsIDQwMykKLQotICAgIGRlZiB0
ZXN0X3ZlcnNpb25fY2hlY2soc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIGh0dHAgZmFsbGJhY2sg
b24gdmVyc2lvbiBjaGVjayBmYWlsLiIiIgotCi0gICAgICAgIG9wdGlvbnMgPSBzZWxmLl9vcHRp
b25zCi0gICAgICAgIG9wdGlvbnMudmVyc2lvbiA9IDk5Ci0gICAgICAgIHNlbGYuX3J1bl9odHRw
X2ZhbGxiYWNrX3Rlc3Qob3B0aW9ucywgNDAwKQotCi0KLWNsYXNzIEVuZFRvRW5kSHlCaTAwVGVz
dChFbmRUb0VuZFRlc3RCYXNlKToKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIEVuZFRv
RW5kVGVzdEJhc2Uuc2V0VXAoc2VsZikKLQotICAgIGRlZiBfcnVuX3Rlc3Qoc2VsZiwgdGVzdF9m
dW5jdGlvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAg
ICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnRfaHliaTAw
KHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9m
dW5jdGlvbihjbGllbnQpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNs
aWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5f
a2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgdGVzdF9lY2hvKHNlbGYpOgotICAg
ICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYgdGVz
dF9lY2hvX3NlcnZlcl9jbG9zZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9f
Y2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZSkKLQotCi1jbGFzcyBFbmRUb0VuZFRlc3RXaXRo
RWNob0NsaWVudChFbmRUb0VuZFRlc3RCYXNlKToKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAg
ICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0VXAoc2VsZikKLQotICAgIGRlZiBfY2hlY2tfZXhhbXBs
ZV9lY2hvX2NsaWVudF9yZXN1bHQoCi0gICAgICAgIHNlbGYsIGV4cGVjdGVkLCBzdGRvdXRkYXRh
LCBzdGRlcnJkYXRhKToKLSAgICAgICAgYWN0dWFsID0gc3Rkb3V0ZGF0YS5kZWNvZGUoInV0Zi04
IikKLSAgICAgICAgaWYgYWN0dWFsICE9IGV4cGVjdGVkOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdVbmV4cGVjdGVkIHJlc3VsdCBvbiBleGFtcGxlIGVjaG8gY2xpZW50OiAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJyVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWQsIGFjdHVhbCkpCi0gICAgICAg
IGlmIHN0ZGVycmRhdGEgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J1VuZXhwZWN0ZWQgZXJyb3IgbWVzc2FnZSBvbiBleGFtcGxlIGVjaG8gJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdjbGllbnQ6ICVyJyAlIHN0ZGVycmRhdGEpCi0KLSAgICBkZWYgdGVz
dF9leGFtcGxlX2VjaG9fY2xpZW50KHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBl
Y2hvX2NsaWVudC5weSBleGFtcGxlIGNhbiB0YWxrIHdpdGggdGhlIHNlcnZlci4iIiIKLQotICAg
ICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIGNsaWVu
dF9jb21tYW5kID0gb3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgIHNlbGYudG9wX2Rpciwg
J2V4YW1wbGUnLCAnZWNob19jbGllbnQucHknKQotCi0gICAgICAgICAgICAjIEV4cGVjdGVkIG91
dHB1dCBmb3IgdGhlIGRlZmF1bHQgbWVzc2FnZXMuCi0gICAgICAgICAgICBkZWZhdWx0X2V4cGVj
dGF0aW9uID0gKCdTZW5kOiBIZWxsb1xuJyAnUmVjdjogSGVsbG9cbicKLSAgICAgICAgICAgICAg
ICB1J1NlbmQ6IFx1NjVlNVx1NjcyY1xuJyB1J1JlY3Y6IFx1NjVlNVx1NjcyY1xuJwotICAgICAg
ICAgICAgICAgICdTZW5kIGNsb3NlXG4nICdSZWN2IGFja1xuJykKLQotICAgICAgICAgICAgYXJn
cyA9IFtjbGllbnRfY29tbWFuZCwKLSAgICAgICAgICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYu
X29wdGlvbnMuc2VydmVyX3BvcnQpXQotICAgICAgICAgICAgY2xpZW50ID0gc2VsZi5fcnVuX3B5
dGhvbl9jb21tYW5kKGFyZ3MsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCi0gICAgICAgICAgICBz
dGRvdXRkYXRhLCBzdGRlcnJkYXRhID0gY2xpZW50LmNvbW11bmljYXRlKCkKLSAgICAgICAgICAg
IHNlbGYuX2NoZWNrX2V4YW1wbGVfZWNob19jbGllbnRfcmVzdWx0KAotICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0X2V4cGVjdGF0aW9uLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKQotCi0gICAg
ICAgICAgICAjIFByb2Nlc3MgYSBiaWcgbWVzc2FnZSBmb3Igd2hpY2ggZXh0ZW5kZWQgcGF5bG9h
ZCBsZW5ndGggaXMgdXNlZC4KLSAgICAgICAgICAgICMgVG8gaGFuZGxlIGV4dGVuZGVkIHBheWxv
YWQgbGVuZ3RoLCB3c192ZXJzaW9uIGF0dHJpYnV0ZSB3aWxsIGJlCi0gICAgICAgICAgICAjIGFj
Y2Vzc2VkLiBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgd3NfdmVyc2lvbiBpcyBjb3JyZWN0bHkgc2V0
LgotICAgICAgICAgICAgYmlnX21lc3NhZ2UgPSAnYScgKiAxMDI0Ci0gICAgICAgICAgICBhcmdz
ID0gW2NsaWVudF9jb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi5f
b3B0aW9ucy5zZXJ2ZXJfcG9ydCksCi0gICAgICAgICAgICAgICAgICAgICctbScsIGJpZ19tZXNz
YWdlXQotICAgICAgICAgICAgY2xpZW50ID0gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3Ms
IHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCi0gICAgICAgICAgICBzdGRvdXRkYXRhLCBzdGRlcnJk
YXRhID0gY2xpZW50LmNvbW11bmljYXRlKCkKLSAgICAgICAgICAgIGV4cGVjdGVkID0gKCdTZW5k
OiAlc1xuUmVjdjogJXNcblNlbmQgY2xvc2VcblJlY3YgYWNrXG4nICUKLSAgICAgICAgICAgICAg
ICAgICAgICAgIChiaWdfbWVzc2FnZSwgYmlnX21lc3NhZ2UpKQotICAgICAgICAgICAgc2VsZi5f
Y2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9yZXN1bHQoCi0gICAgICAgICAgICAgICAgZXhwZWN0
ZWQsIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpCi0KLSAgICAgICAgICAgICMgVGVzdCB0aGUgcGVy
bWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4KLSAgICAgICAgICAgIGFyZ3MgPSBbY2xpZW50X2Nv
bW1hbmQsCi0gICAgICAgICAgICAgICAgICAgICctcCcsIHN0cihzZWxmLl9vcHRpb25zLnNlcnZl
cl9wb3J0KSwKLSAgICAgICAgICAgICAgICAgICAgJy0tdXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSdd
Ci0gICAgICAgICAgICBjbGllbnQgPSBzZWxmLl9ydW5fcHl0aG9uX2NvbW1hbmQoYXJncywgc3Rk
b3V0PXN1YnByb2Nlc3MuUElQRSkKLSAgICAgICAgICAgIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEg
PSBjbGllbnQuY29tbXVuaWNhdGUoKQotICAgICAgICAgICAgc2VsZi5fY2hlY2tfZXhhbXBsZV9l
Y2hvX2NsaWVudF9yZXN1bHQoCi0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfZXhwZWN0YXRp
b24sIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19t
YWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2V4dGVuc2lvbnMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RfZXh0ZW5zaW9ucy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM4YjEy
NjJkODliOTQ5NjQ5NjVjM2MzOGQ1Y2M0OTQ0NzljMWI2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDM2MCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24K
LSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBleHRlbnNpb25zIG1vZHVsZS4i
IiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCB6bGliCi0KLWltcG9ydCBzZXRfc3lzX3Bh
dGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgot
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tl
dCBpbXBvcnQgZXh0ZW5zaW9ucwotCi0KLWNsYXNzIEV4dGVuc2lvbnNUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBub24tY2xhc3MgbWV0aG9kcyBpbiBleHRl
bnNpb25zLnB5IiIiCi0KLSAgICBkZWYgdGVzdF9wYXJzZV93aW5kb3dfYml0cyhzZWxmKToKLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2lu
ZG93X2JpdHMsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4
dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnZm9vYmFyJykKLSAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcgOCAn
KQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJz
ZV93aW5kb3dfYml0cywgJ2E4YScpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJy
b3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMDAwMDAnKQotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywg
JzAwMDA4JykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9u
cy5fcGFyc2Vfd2luZG93X2JpdHMsICcweDgnKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnOS41JykKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93
X2JpdHMsICc4LjAnKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHRlbnNpb25zLl9wYXJz
ZV93aW5kb3dfYml0cywgJzgnKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoZXh0ZW5zaW9ucy5f
cGFyc2Vfd2luZG93X2JpdHMsICcxNScpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICctOCcpCi0gICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRz
LCAnMCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMu
X3BhcnNlX3dpbmRvd19iaXRzLCAnNycpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcxNicpCi0gICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAgICAgIFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMu
X3BhcnNlX3dpbmRvd19iaXRzLCAnMTAwMDAwMDAnKQotCi0KLWNsYXNzIENvbXByZXNzaW9uTWV0
aG9kUGFyYW1ldGVyUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0
dGVzdCBmb3IgX3BhcnNlX2NvbXByZXNzaW9uX21ldGhvZCB3aGljaCBwYXJzZXMgdGhlIGNvbXBy
ZXNzaW9uCi0gICAgbWV0aG9kIGRlc2NyaXB0aW9uIHVzZWQgYnkgcGVyZnJhbWUtY29tcHJlc3Np
b24gYW5kIHBlcm1lc3NhZ2UtY29tcHJlc3Npb24KLSAgICBleHRlbnNpb24gaW4gdGhlaXIgIm1l
dGhvZCIgZXh0ZW5zaW9uIHBhcmFtZXRlci4KLSAgICAiIiIKLQotICAgIGRlZiB0ZXN0X3BhcnNl
X21ldGhvZF9zaW1wbGUoc2VsZik6Ci0gICAgICAgIG1ldGhvZF9saXN0ID0gZXh0ZW5zaW9ucy5f
cGFyc2VfY29tcHJlc3Npb25fbWV0aG9kKCdmb28nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIGxlbihtZXRob2RfbGlzdCkpCi0gICAgICAgIG1ldGhvZCA9IG1ldGhvZF9saXN0WzBdCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2ZvbycsIG1ldGhvZC5uYW1lKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMCwgbGVuKG1ldGhvZC5nZXRfcGFyYW1ldGVycygpKSkKLQotICAgIGRl
ZiB0ZXN0X3BhcnNlX21ldGhvZF93aXRoX3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgbWV0aG9k
X2xpc3QgPSBleHRlbnNpb25zLl9wYXJzZV9jb21wcmVzc2lvbl9tZXRob2QoJ2ZvbzsgeDsgeT0x
MCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1ldGhvZF9saXN0KSkKLSAgICAg
ICAgbWV0aG9kID0gbWV0aG9kX2xpc3RbMF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9v
JywgbWV0aG9kLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4obWV0aG9k
LmdldF9wYXJhbWV0ZXJzKCkpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobWV0aG9kLmhhc19w
YXJhbWV0ZXIoJ3gnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtZXRob2QuZ2V0
X3BhcmFtZXRlcl92YWx1ZSgneCcpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobWV0aG9kLmhh
c19wYXJhbWV0ZXIoJ3knKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMTAnLCBtZXRob2Qu
Z2V0X3BhcmFtZXRlcl92YWx1ZSgneScpKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfbWV0aG9kX3dp
dGhfcXVvdGVkX3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgbWV0aG9kX2xpc3QgPSBleHRlbnNp
b25zLl9wYXJzZV9jb21wcmVzc2lvbl9tZXRob2QoCi0gICAgICAgICAgICAnZm9vOyB4PSJIZWxs
byBXb3JsZCI7IHk9MTAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXRob2Rf
bGlzdCkpCi0gICAgICAgIG1ldGhvZCA9IG1ldGhvZF9saXN0WzBdCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ2ZvbycsIG1ldGhvZC5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MiwgbGVuKG1ldGhvZC5nZXRfcGFyYW1ldGVycygpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG1ldGhvZC5oYXNfcGFyYW1ldGVyKCd4JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hl
bGxvIFdvcmxkJywgbWV0aG9kLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ3gnKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG1ldGhvZC5oYXNfcGFyYW1ldGVyKCd5JykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJzEwJywgbWV0aG9kLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ3knKSkKLQotICAgIGRl
ZiB0ZXN0X3BhcnNlX21ldGhvZF9tdWx0aXBsZShzZWxmKToKLSAgICAgICAgbWV0aG9kX2xpc3Qg
PSBleHRlbnNpb25zLl9wYXJzZV9jb21wcmVzc2lvbl9tZXRob2QoJ2ZvbywgYmFyJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4obWV0aG9kX2xpc3QpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdmb28nLCBtZXRob2RfbGlzdFswXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMCwgbGVuKG1ldGhvZF9saXN0WzBdLmdldF9wYXJhbWV0ZXJzKCkpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdiYXInLCBtZXRob2RfbGlzdFsxXS5uYW1lKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKG1ldGhvZF9saXN0WzFdLmdldF9wYXJhbWV0ZXJzKCkp
KQotCi0gICAgZGVmIHRlc3RfcGFyc2VfbWV0aG9kX211bHRpcGxlX21ldGhvZHNfd2l0aF9xdW90
ZWRfcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBtZXRob2RfbGlzdCA9IGV4dGVuc2lvbnMuX3Bh
cnNlX2NvbXByZXNzaW9uX21ldGhvZCgKLSAgICAgICAgICAgICdmb287IHg9IkhlbGxvIFdvcmxk
IiwgYmFyOyB5PTEwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4obWV0aG9kX2xp
c3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdmb28nLCBtZXRob2RfbGlzdFswXS5uYW1l
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1ldGhvZF9saXN0WzBdLmdldF9w
YXJhbWV0ZXJzKCkpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobWV0aG9kX2xpc3RbMF0uaGFz
X3BhcmFtZXRlcigneCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kX2xpc3RbMF0uZ2V0X3BhcmFtZXRlcl92
YWx1ZSgneCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdiYXInLCBtZXRob2RfbGlzdFsx
XS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1ldGhvZF9saXN0WzFd
LmdldF9wYXJhbWV0ZXJzKCkpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobWV0aG9kX2xpc3Rb
MV0uaGFzX3BhcmFtZXRlcigneScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcxMCcsIG1l
dGhvZF9saXN0WzFdLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ3knKSkKLQotICAgIGRlZiB0ZXN0X2Ny
ZWF0ZV9tZXRob2RfZGVzY19zaW1wbGUoc2VsZik6Ci0gICAgICAgIHBhcmFtcyA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoJ2ZvbycpCi0gICAgICAgIGRlc2MgPSBleHRlbnNpb25zLl9jcmVh
dGVfYWNjZXB0ZWRfbWV0aG9kX2Rlc2MoJ2ZvbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmdldF9wYXJhbWV0ZXJzKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2ZvbycsIGRlc2MpCi0KLSAgICBkZWYgdGVzdF9jcmVh
dGVfbWV0aG9kX2Rlc2Nfd2l0aF9wYXJhbWV0ZXJzKHNlbGYpOgotICAgICAgICBwYXJhbXMgPSBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdmb28nKQotICAgICAgICBwYXJhbXMuYWRkX3BhcmFt
ZXRlcigneCcsICdIZWxsbywgV29ybGQnKQotICAgICAgICBwYXJhbXMuYWRkX3BhcmFtZXRlcign
eScsICcxMCcpCi0gICAgICAgIGRlc2MgPSBleHRlbnNpb25zLl9jcmVhdGVfYWNjZXB0ZWRfbWV0
aG9kX2Rlc2MoJ2ZvbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyYW1zLmdldF9wYXJhbWV0ZXJzKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ2ZvbzsgeD0iSGVsbG8sIFdvcmxkIjsgeT0xMCcsIGRlc2MpCi0KLQotY2xhc3Mg
RGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yUGFyc2luZ1Rlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGNoZWNraW5nIHRoYXQgRGVmbGF0ZUZyYW1lRXh0
ZW5zaW9uUHJvY2Vzc29yIHBhcnNlcyBnaXZlbgotICAgIGV4dGVuc2lvbiBwYXJhbWV0ZXIgY29y
cmVjdGx5LgotICAgICIiIgotCi0gICAgZGVmIHRlc3RfcmVnaXN0cnkoc2VsZik6Ci0gICAgICAg
IHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoCi0gICAgICAg
ICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcignZGVmbGF0ZS1mcmFtZScpKQotICAg
ICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocHJvY2Vzc29yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IpCi0K
LSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5nZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcigK
LSAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCd4LXdlYmtpdC1kZWZs
YXRlLWZyYW1lJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShwcm9jZXNzb3IsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVu
c2lvblByb2Nlc3NvcikKLQotICAgIGRlZiB0ZXN0X21pbmltYWxfb2ZmZXIoc2VsZik6Ci0gICAg
ICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29y
KAotICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0
ZScpKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9u
c2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywgcmVzcG9u
c2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRf
cGFyYW1ldGVycygpKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHpsaWIuTUFYX1dCSVRT
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRlci5f
d2luZG93X2JpdHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocHJvY2Vzc29yLl9yZmMxOTc5
X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0
aF9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRl
bnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRk
X3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgJzEwJykKLSAgICAgICAgcHJvY2Vzc29yID0g
ZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0g
ICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVy
cygpKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwLCBwcm9jZXNzb3IuX3JmYzE5Nzlf
ZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9vdXRfb2Zf
cmFuZ2VfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVy
LmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsICcwJykKLSAgICAgICAgcHJvY2Vzc29y
ID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3Bv
bnNlKCkpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5kb3dfYml0c193aXRob3V0
X3ZhbHVlKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIo
J21heF93aW5kb3dfYml0cycsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMu
RGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBzZWxm
LmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAg
ZGVmIHRlc3Rfb2ZmZXJfd2l0aF9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYpOgotICAgICAgICBw
YXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykK
LSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ25vX2NvbnRleHRfdGFrZW92ZXInLCBO
b25lKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lv
blByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0
X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3BlcmZyYW1l
LWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwg
bGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAg
ICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXJfd2l0aF92YWx1ZShzZWxm
KToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJh
bWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0
X3Rha2VvdmVyJywgJ2Zvb2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVm
bGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBzZWxmLmFz
c2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVm
IHRlc3Rfb2ZmZXJfd2l0aF91bmtub3duX3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgcGFyYW1l
dGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAg
ICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdmb28nLCAnYmFyJykKLSAgICAgICAgcHJvY2Vz
c29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVy
KQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2Uo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywgcmVzcG9uc2Uu
bmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFy
YW1ldGVycygpKSkKLQotCi1jbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nv
clBhcnNpbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBj
aGVja2luZyB0aGF0IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yIHBhcnNlcwot
ICAgIGdpdmVuIGV4dGVuc2lvbiBwYXJhbWV0ZXIgY29ycmVjdGx5LgotICAgICIiIgotCi0gICAg
ZGVmIHRlc3RfcmVnaXN0cnkoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMu
Z2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNJ
bnN0YW5jZShwcm9jZXNzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNp
b25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKQotCi0gICAgZGVmIHRlc3Rf
bWluaW1hbF9vZmZlcihzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJN
ZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5FeHRl
bnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQotCi0gICAgICAgIHJlc3BvbnNl
ID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoemxpYi5NQVhfV0JJVFMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl93aW5kb3dfYml0cykKLSAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRf
dGFrZW92ZXIpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5kb3dfYml0cyhzZWxm
KToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVz
c2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9t
YXhfd2luZG93X2JpdHMnLCAnMTAnKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBl
ck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBy
ZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFsoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnMTAnKV0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwLCBwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIu
X3dpbmRvd19iaXRzKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9vdXRfb2ZfcmFuZ2VfbWF4
X3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3Bh
cmFtZXRlcignc2VydmVyX21heF93aW5kb3dfYml0cycsICcwJykKLSAgICAgICAgcHJvY2Vzc29y
ID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0
ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4X3dpbmRvd19iaXRzX3dp
dGhvdXRfdmFsdWUoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25Q
YXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFy
YW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29y
ID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0
ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbm9fY29udGV4dF90YWtlb3Zl
cihzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcign
cGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3Nl
cnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0
ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0K
LSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5h
bWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtl
b3ZlcicsIE5vbmUpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFy
YW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwcm9jZXNzb3IuX3JmYzE5Nzlf
ZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRo
X25vX2NvbnRleHRfdGFrZW92ZXJfd2l0aF92YWx1ZShzZWxmKToKLSAgICAgICAgcGFyYW1ldGVy
ID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAg
ICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywg
J2Zvb2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxh
dGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNO
b25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBkZWYgdGVzdF9v
ZmZlcl93aXRoX3Vua25vd25fcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBw
YXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignZm9vJywgJ2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9
IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVy
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jl
c3BvbnNlKCkpCi0KLQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3JC
dWlsZGluZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGNo
ZWNraW5nIHRoYXQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IgYnVpbGRzCi0g
ICAgYSByZXNwb25zZSBiYXNlZCBvbiBzcGVjaWZpZWQgb3B0aW9ucyBjb3JyZWN0bHkuCi0gICAg
IiIiCi0KLSAgICBkZWYgdGVzdF9yZXNwb25zZV93aXRoX21heF93aW5kb3dfYml0cyhzZWxmKToK
LSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2Fn
ZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ2NsaWVudF9tYXhf
d2luZG93X2JpdHMnLCBOb25lKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1l
c3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLSAgICAgICAgcHJvY2Vz
c29yLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKDEwKQotCi0gICAgICAgIHJlc3BvbnNlID0g
cHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWygnY2xpZW50X21heF93aW5kb3dfYml0cycsICcxMCcpXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgZGVmIHRl
c3RfcmVzcG9uc2Vfd2l0aF9tYXhfd2luZG93X2JpdHNfd2l0aG91dF9jbGllbnRfcGVybWlzc2lv
bihzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0
ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQotICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9t
YXhfd2luZG93X2JpdHMoMTApCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4
dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJlc3BvbnNlKQot
Ci0gICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF90cnVlX2Zvcl9ub19jb250ZXh0X3Rha2VvdmVy
KHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRl
RXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRl
cigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0KLSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRf
bm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29y
LmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJt
ZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoWygnY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKV0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgIGRlZiB0ZXN0X3Jl
c3BvbnNlX3dpdGhfZmFsc2VfZm9yX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZik6Ci0gICAgICAg
IHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNz
b3IoCi0gICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRl
ZmxhdGUnKSkKLQotICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9ub19jb250ZXh0X3Rha2Vv
dmVyKEZhbHNlKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUn
LCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3Bv
bnNlLmdldF9wYXJhbWV0ZXJzKCkpKQotCi0KLWNsYXNzIFBlck1lc3NhZ2VDb21wcmVzc0V4dGVu
c2lvblByb2Nlc3NvclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X3JlZ2lz
dHJ5KHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLmdldF9leHRlbnNpb25f
cHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Bl
cm1lc3NhZ2UtY29tcHJlc3MnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHByb2Nl
c3NvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMuUGVyTWVzc2Fn
ZUNvbXByZXNzRXh0ZW5zaW9uUHJvY2Vzc29yKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0
X2hhbmRzaGFrZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE3OGFjMDVlNTg3
MWQxNTlhNjdmN2U0MTZmMzAyNzAwZmEwZjkyNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTg4ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBD
b3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIGhhbmRzaGFrZS5fYmFzZSBtb2R1bGUuIiIi
Ci0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5
cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5jb21tb24gaW1wb3J0IEV4dGVuc2lvblBhcmFtZXRlcgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuY29tbW9uIGltcG9ydCBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5jb21tb24gaW1wb3J0IGZvcm1hdF9leHRlbnNpb25zCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5jb21tb24gaW1wb3J0IHBhcnNlX2V4dGVuc2lvbnMKLWZyb20gbW9kX3B5d2Vic29j
a2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHZhbGlkYXRlX3N1YnByb3RvY29sCi0K
LQotY2xhc3MgVmFsaWRhdGVTdWJwcm90b2NvbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAg
ICIiIkEgdW5pdHRlc3QgZm9yIHZhbGlkYXRlX3N1YnByb3RvY29sIG1ldGhvZC4iIiIKLQotICAg
IGRlZiB0ZXN0X3ZhbGlkYXRlX3N1YnByb3RvY29sKHNlbGYpOgotICAgICAgICAjIFNob3VsZCBz
dWNjZWVkLgotICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCgnc2FtcGxlJykKLSAgICAgICAg
dmFsaWRhdGVfc3VicHJvdG9jb2woJ1NhbXBsZScpCi0gICAgICAgIHZhbGlkYXRlX3N1YnByb3Rv
Y29sKCdzYW1wbGVceDdlcHJvdG9jb2wnKQotCi0gICAgICAgICMgU2hvdWxkIGZhaWwuCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICcnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAnc2FtcGxlXHgwOXByb3RvY29sJykKLSAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICB2
YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4
MTlwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlv
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDIwcHJvdG9jb2wnKQotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Ft
cGxlXHg3ZnByb3RvY29sJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhj
ZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiSmFwYW4iIGluIEphcGFuZXNlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIHUnXHU2NWU1XHU2NzJjJykKLQotCi1fVEVTVF9UT0tFTl9FWFRF
TlNJT05fREFUQSA9IFsKLSAgICAoJ2ZvbycsIFsoJ2ZvbycsIFtdKV0pLAotICAgICgnZm9vOyBi
YXInLCBbKCdmb28nLCBbKCdiYXInLCBOb25lKV0pXSksCi0gICAgKCdmb287IGJhcj1iYXonLCBb
KCdmb28nLCBbKCdiYXInLCAnYmF6JyldKV0pLAotICAgICgnZm9vOyBiYXI9YmF6OyBjYXI9Y2Ry
JywgWygnZm9vJywgWygnYmFyJywgJ2JheicpLCAoJ2NhcicsICdjZHInKV0pXSksCi0gICAgKCdm
b287IGJhcj1iYXosIGNhcjsgY2RyJywKLSAgICAgWygnZm9vJywgWygnYmFyJywgJ2JheicpXSks
ICgnY2FyJywgWygnY2RyJywgTm9uZSldKV0pLAotICAgICgnYSwgYiwgYywgZCcsCi0gICAgIFso
J2EnLCBbXSksICgnYicsIFtdKSwgKCdjJywgW10pLCAoJ2QnLCBbXSldKSwKLSAgICBdCi0KLQot
X1RFU1RfUVVPVEVEX0VYVEVOU0lPTl9EQVRBID0gWwotICAgICgnZm9vOyBiYXI9IiInLCBbKCdm
b28nLCBbKCdiYXInLCAnJyldKV0pLAotICAgICgnZm9vOyBiYXI9IiBiYXogIicsIFsoJ2Zvbycs
IFsoJ2JhcicsICcgYmF6ICcpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPSIsYmF6OyInLCBbKCdmb28n
LCBbKCdiYXInLCAnLGJhejsnKV0pXSksCi0gICAgKCdmb287IGJhcj0iXFxcclxcXG5iYXoiJywg
WygnZm9vJywgWygnYmFyJywgJ1xyXG5iYXonKV0pXSksCi0gICAgKCdmb287IGJhcj0iXFwiYmF6
IicsIFsoJ2ZvbycsIFsoJ2JhcicsICciYmF6JyldKV0pLAotICAgICgnZm9vOyBiYXI9Ilx4YmJi
YXoiJywgWygnZm9vJywgWygnYmFyJywgJ1x4YmJiYXonKV0pXSksCi0gICAgXQotCi0KLV9URVNU
X1JFRFVOREFOVF9UT0tFTl9FWFRFTlNJT05fREFUQSA9IFsKLSAgICAoJ2ZvbyBcdCAnLCBbKCdm
b28nLCBbXSldKSwKLSAgICAoJ2ZvbzsgXHJcbiBiYXInLCBbKCdmb28nLCBbKCdiYXInLCBOb25l
KV0pXSksCi0gICAgKCdmb287IGJhcj1cclxuIFxyXG4gYmF6JywgWygnZm9vJywgWygnYmFyJywg
J2JheicpXSldKSwKLSAgICAoJ2ZvbyA7YmFyID0gYmF6ICcsIFsoJ2ZvbycsIFsoJ2JhcicsICdi
YXonKV0pXSksCi0gICAgKCdmb28sYmFyLCxiYXonLCBbKCdmb28nLCBbXSksICgnYmFyJywgW10p
LCAoJ2JheicsIFtdKV0pLAotICAgIF0KLQotCi1fVEVTVF9SRURVTkRBTlRfUVVPVEVEX0VYVEVO
U0lPTl9EQVRBID0gWwotICAgICgnZm9vOyBiYXI9IlxyXG4gXHJcbiBiYXoiJywgWygnZm9vJywg
WygnYmFyJywgJyAgYmF6JyldKV0pLAotICAgIF0KLQotCi1jbGFzcyBFeHRlbnNpb25zUGFyc2Vy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgX3ZlcmlmeV9leHRlbnNpb25fbGlz
dChzZWxmLCBleHBlY3RlZF9saXN0LCBhY3R1YWxfbGlzdCk6Ci0gICAgICAgICIiIlZlcmlmaWVz
IHRoYXQgRXh0ZW5zaW9uUGFyYW1ldGVyIG9iamVjdHMgaW4gYWN0dWFsX2xpc3QgaGF2ZSB0aGUK
LSAgICAgICAgc2FtZSBtZW1iZXJzIGFzIGV4dGVuc2lvbiBkZWZpbml0aW9ucyBpbiBleHBlY3Rl
ZF9saXN0LiBFeHRlbnNpb24KLSAgICAgICAgZGVmaW5pdGlvbiB1c2VkIGluIHRoaXMgdGVzdCBp
cyBhIHBhaXIgb2YgYW4gZXh0ZW5zaW9uIG5hbWUgYW5kIGEKLSAgICAgICAgcGFyYW1ldGVyIGRp
Y3Rpb25hcnkuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4
cGVjdGVkX2xpc3QpLCBsZW4oYWN0dWFsX2xpc3QpKQotICAgICAgICBmb3IgZXhwZWN0ZWQsIGFj
dHVhbCBpbiB6aXAoZXhwZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QpOgotICAgICAgICAgICAgKG5h
bWUsIHBhcmFtZXRlcnMpID0gZXhwZWN0ZWQKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bmFtZSwgYWN0dWFsLl9uYW1lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbWV0
ZXJzLCBhY3R1YWwuX3BhcmFtZXRlcnMpCi0KLSAgICBkZWYgdGVzdF9wYXJzZShzZWxmKToKLSAg
ICAgICAgZm9yIGZvcm1hdHRlZF9zdHJpbmcsIGRlZmluaXRpb24gaW4gX1RFU1RfVE9LRU5fRVhU
RU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCi0g
ICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwgcGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3Ry
aW5nKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3F1b3RlZF9kYXRhKHNlbGYpOgotICAgICAgICBm
b3IgZm9ybWF0dGVkX3N0cmluZywgZGVmaW5pdGlvbiBpbiBfVEVTVF9RVU9URURfRVhURU5TSU9O
X0RBVEE6Ci0gICAgICAgICAgICBzZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCi0gICAgICAg
ICAgICAgICAgZGVmaW5pdGlvbiwgcGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5nKSkK
LQotICAgIGRlZiB0ZXN0X3BhcnNlX3JlZHVuZGFudF9kYXRhKHNlbGYpOgotICAgICAgICBmb3Ig
KGZvcm1hdHRlZF9zdHJpbmcsCi0gICAgICAgICAgICAgZGVmaW5pdGlvbikgaW4gX1RFU1RfUkVE
VU5EQU5UX1RPS0VOX0VYVEVOU0lPTl9EQVRBOgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4
dGVuc2lvbl9saXN0KAotICAgICAgICAgICAgICAgIGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lv
bnMoZm9ybWF0dGVkX3N0cmluZykpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9yZWR1bmRhbnRfcXVv
dGVkX2RhdGEoc2VsZik6Ci0gICAgICAgIGZvciAoZm9ybWF0dGVkX3N0cmluZywKLSAgICAgICAg
ICAgICBkZWZpbml0aW9uKSBpbiBfVEVTVF9SRURVTkRBTlRfUVVPVEVEX0VYVEVOU0lPTl9EQVRB
OgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4dGVuc2lvbl9saXN0KAotICAgICAgICAgICAg
ICAgIGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lvbnMoZm9ybWF0dGVkX3N0cmluZykpCi0KLSAg
ICBkZWYgdGVzdF9wYXJzZV9iYWRfZGF0YShzZWxmKToKLSAgICAgICAgX1RFU1RfQkFEX0VYVEVO
U0lPTl9EQVRBID0gWwotICAgICAgICAgICAgKCdmb287IDsgJyksCi0gICAgICAgICAgICAoJ2Zv
bzsgYSBhJyksCi0gICAgICAgICAgICAoJ2ZvbyBmb28nKSwKLSAgICAgICAgICAgICgnLCwsJyks
Ci0gICAgICAgICAgICAoJ2ZvbzsgYmFyPScpLAotICAgICAgICAgICAgKCdmb287IGJhcj0iaG9n
ZScpLAotICAgICAgICAgICAgKCdmb287IGJhcj0iYVxyIicpLAotICAgICAgICAgICAgKCdmb287
IGJhcj0iXFxceGZmIicpLAotICAgICAgICAgICAgKCdmb287IGJhcj1ccmEnKSwKLSAgICAgICAg
ICAgIF0KLQotICAgICAgICBmb3IgZm9ybWF0dGVkX3N0cmluZyBpbiBfVEVTVF9CQURfRVhURU5T
SU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgICAg
ICBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uLCBwYXJzZV9leHRlbnNpb25zLCBmb3JtYXR0ZWRf
c3RyaW5nKQotCi0KLWNsYXNzIEZvcm1hdEV4dGVuc2lvbnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKLQotICAgIGRlZiB0ZXN0X2Zvcm1hdF9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICBmb3Ig
Zm9ybWF0dGVkX3N0cmluZywgZGVmaW5pdGlvbnMgaW4gX1RFU1RfVE9LRU5fRVhURU5TSU9OX0RB
VEE6Ci0gICAgICAgICAgICBleHRlbnNpb25zID0gW10KLSAgICAgICAgICAgIGZvciBkZWZpbml0
aW9uIGluIGRlZmluaXRpb25zOgotICAgICAgICAgICAgICAgIChuYW1lLCBwYXJhbWV0ZXJzKSA9
IGRlZmluaXRpb24KLSAgICAgICAgICAgICAgICBleHRlbnNpb24gPSBFeHRlbnNpb25QYXJhbWV0
ZXIobmFtZSkKLSAgICAgICAgICAgICAgICBleHRlbnNpb24uX3BhcmFtZXRlcnMgPSBwYXJhbWV0
ZXJzCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfc3RyaW5n
LCBmb3JtYXRfZXh0ZW5zaW9ucyhleHRlbnNpb25zKSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19t
YWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2Yzg3MTM4MjMwYjMwM2JmMzhkYzRjZjg0YzEyOTBhODhmN2JkOGQyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5k
c2hha2VfaHliaS5weQorKysgL2Rldi9udWxsCkBAIC0xLDUzNCArMCwwIEBACi0jIS91c3IvYmlu
L2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBoYW5kc2hh
a2UgbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRo
ICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLWZy
b20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Lmhh
bmRzaGFrZS5fYmFzZSBpbXBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KLWZyb20g
bW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgVmVyc2lvbkV4Y2VwdGlvbgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkgaW1wb3J0IEhhbmRzaGFrZXIKLQot
aW1wb3J0IG1vY2sKLQotCi1jbGFzcyBSZXF1ZXN0RGVmaW5pdGlvbihvYmplY3QpOgotICAgICIi
IkEgY2xhc3MgZm9yIGhvbGRpbmcgZGF0YSBmb3IgY29uc3RydWN0aW5nIG9wZW5pbmcgaGFuZHNo
YWtlIHN0cmluZ3MgZm9yCi0gICAgdGVzdGluZyB0aGUgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vz
c29yLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGhvZCwgdXJpLCBoZWFk
ZXJzKToKLSAgICAgICAgc2VsZi5tZXRob2QgPSBtZXRob2QKLSAgICAgICAgc2VsZi51cmkgPSB1
cmkKLSAgICAgICAgc2VsZi5oZWFkZXJzID0gaGVhZGVycwotCi0KLWRlZiBfY3JlYXRlX2dvb2Rf
cmVxdWVzdF9kZWYoKToKLSAgICByZXR1cm4gUmVxdWVzdERlZmluaXRpb24oCi0gICAgICAgICdH
RVQnLCAnL2RlbW8nLAotICAgICAgICB7J0hvc3QnOiAnc2VydmVyLmV4YW1wbGUuY29tJywKLSAg
ICAgICAgICdVcGdyYWRlJzogJ3dlYnNvY2tldCcsCi0gICAgICAgICAnQ29ubmVjdGlvbic6ICdV
cGdyYWRlJywKLSAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleSc6ICdkR2hsSUhOaGJYQnNaU0J1
YjI1alpRPT0nLAotICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbic6ICcxMycsCi0gICAg
ICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbSd9KQotCi0KLWRlZiBfY3JlYXRlX3Jl
cXVlc3QocmVxdWVzdF9kZWYpOgotICAgIGNvbm4gPSBtb2NrLk1vY2tDb25uKCcnKQotICAgIHJl
dHVybiBtb2NrLk1vY2tSZXF1ZXN0KAotICAgICAgICBtZXRob2Q9cmVxdWVzdF9kZWYubWV0aG9k
LAotICAgICAgICB1cmk9cmVxdWVzdF9kZWYudXJpLAotICAgICAgICBoZWFkZXJzX2luPXJlcXVl
c3RfZGVmLmhlYWRlcnMsCi0gICAgICAgIGNvbm5lY3Rpb249Y29ubikKLQotCi1kZWYgX2NyZWF0
ZV9oYW5kc2hha2VyKHJlcXVlc3QpOgotICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVl
c3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICByZXR1cm4gaGFuZHNoYWtlcgotCi0KLWNs
YXNzIFN1YnByb3RvY29sQ2hvb3NpbmdEaXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiQSBkaXNw
YXRjaGVyIGZvciB0ZXN0aW5nLiBUaGlzIGRpc3BhdGNoZXIgc2V0cyB0aGUgaS10aCBzdWJwcm90
b2NvbAotICAgIG9mIHJlcXVlc3RlZCBvbmVzIHRvIHdzX3Byb3RvY29sIHdoZXJlIGkgaXMgZ2l2
ZW4gb24gY29uc3RydWN0aW9uIGFzIGluZGV4Ci0gICAgYXJndW1lbnQuIElmIGluZGV4IGlzIG5l
Z2F0aXZlLCBkZWZhdWx0X3ZhbHVlIHdpbGwgYmUgc2V0IHRvIHdzX3Byb3RvY29sLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGluZGV4LCBkZWZhdWx0X3ZhbHVlPU5vbmUpOgot
ICAgICAgICBzZWxmLmluZGV4ID0gaW5kZXgKLSAgICAgICAgc2VsZi5kZWZhdWx0X3ZhbHVlID0g
ZGVmYXVsdF92YWx1ZQotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCBjb25uX2Nv
bnRleHQpOgotICAgICAgICBpZiBzZWxmLmluZGV4ID49IDA6Ci0gICAgICAgICAgICBjb25uX2Nv
bnRleHQud3NfcHJvdG9jb2wgPSBjb25uX2NvbnRleHQud3NfcmVxdWVzdGVkX3Byb3RvY29sc1sK
LSAgICAgICAgICAgICAgICBzZWxmLmluZGV4XQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
Y29ubl9jb250ZXh0LndzX3Byb3RvY29sID0gc2VsZi5kZWZhdWx0X3ZhbHVlCi0KLSAgICBkZWYg
dHJhbnNmZXJfZGF0YShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICBwYXNzCi0KLQotY2xh
c3MgSGFuZHNoYWtlQWJvcnRlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgIHBhc3MKLQotCi1j
bGFzcyBBYm9ydGluZ0Rpc3BhdGNoZXIob2JqZWN0KToKLSAgICAiIiJBIGRpc3BhdGNoZXIgZm9y
IHRlc3RpbmcuIFRoaXMgZGlzcGF0Y2hlciByYWlzZXMgYW4gZXhjZXB0aW9uIGluCi0gICAgZG9f
ZXh0cmFfaGFuZHNoYWtlIHRvIHJlamVjdCB0aGUgcmVxdWVzdC4KLSAgICAiIiIKLQotICAgIGRl
ZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgcmFpc2Ug
SGFuZHNoYWtlQWJvcnRlZEV4Y2VwdGlvbignQW4gZXhjZXB0aW9uIHRvIHJlamVjdCB0aGUgcmVx
dWVzdCcpCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShzZWxmLCBjb25uX2NvbnRleHQpOgotICAg
ICAgICBwYXNzCi0KLQotY2xhc3MgQWJvcnRlZEJ5VXNlckRpc3BhdGNoZXIob2JqZWN0KToKLSAg
ICAiIiJBIGRpc3BhdGNoZXIgZm9yIHRlc3RpbmcuIFRoaXMgZGlzcGF0Y2hlciByYWlzZXMgYW4K
LSAgICBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uIGluIGRvX2V4dHJhX2hhbmRzaGFrZSB0byByZWpl
Y3QgdGhlIHJlcXVlc3QuCi0gICAgIiIiCi0KLSAgICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNl
bGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHJhaXNlIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24o
J0FuIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24gdG8gcmVqZWN0IHRoZSAnCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3JlcXVlc3QnKQotCi0gICAgZGVmIHRyYW5zZmVyX2Rh
dGEoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgcGFzcwotCi0KLV9FWFBFQ1RFRF9SRVNQ
T05TRSA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJwotICAg
ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicK
LSAgICAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6IHMzcFBMTUJpVHhhUTlrWUd6emhaUmJLK3hPbz1c
clxuXHJcbicpCi0KLQotY2xhc3MgSGFuZHNoYWtlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgot
ICAgICIiIkEgdW5pdHRlc3QgZm9yIGRyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2Nv
bC0wNiBhbmQgbGF0ZXIKLSAgICBoYW5kc2hha2UgcHJvY2Vzc29yLgotICAgICIiIgotCi0gICAg
ZGVmIHRlc3RfZG9faGFuZHNoYWtlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpKQotICAgICAgICBkaXNwYXRjaGVyID0g
bW9jay5Nb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJl
cXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUoZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2VfY2Fs
bGVkKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBfRVhQRUNURURf
UkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnL2RlbW8nLCByZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdodHRwOi8vZXhhbXBsZS5jb20nLCByZXF1ZXN0LndzX29yaWdpbikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXF1ZXN0LndzX3Byb3RvY29sKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVCwgcmVxdWVzdC53c192
ZXJzaW9uKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfZXh0cmFfaGVhZGVycyhz
ZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQot
ICAgICAgICAjIEFkZCBoZWFkZXJzIG5vdCByZWxhdGVkIHRvIFdlYlNvY2tldCBvcGVuaW5nIGhh
bmRzaGFrZS4KLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snRm9vS2V5J10gPSAnQmFyVmFs
dWUnCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0VtcHR5S2V5J10gPSAnJwotCi0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRz
aGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5k
b19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgX0VY
UEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAg
ICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9jYXBpdGFsaXplZF92YWx1ZShzZWxmKToKLSAg
ICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBy
ZXF1ZXN0X2RlZi5oZWFkZXJzWyd1cGdyYWRlJ10gPSAnV0VCU09DS0VUJwotCi0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIg
PSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5k
c2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgX0VYUEVDVEVE
X1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAg
cmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0
X2RlZi5oZWFkZXJzWydDb25uZWN0aW9uJ10gPSAnVVBHUkFERScKLQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2Ny
ZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQ
T05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rf
ZG9faGFuZHNoYWtlX3dpdGhfbXVsdGlwbGVfY29ubmVjdGlvbl92YWx1ZXMoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVx
dWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbiddID0gJ1VwZ3JhZGUsIGtlZXAtYWxpdmUsICwg
JwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAg
ICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFu
ZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAg
ICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0KLSAgICBkZWYgdGVzdF9hYm9ydGluZ19oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGhh
bmRzaGFrZXIgPSBIYW5kc2hha2VyKAotICAgICAgICAgICAgX2NyZWF0ZV9yZXF1ZXN0KF9jcmVh
dGVfZ29vZF9yZXF1ZXN0X2RlZigpKSwKLSAgICAgICAgICAgIEFib3J0aW5nRGlzcGF0Y2hlcigp
KQotICAgICAgICAjIGRvX2V4dHJhX2hhbmRzaGFrZSByYWlzZXMgYW4gZXhjZXB0aW9uLiBDaGVj
ayB0aGF0IGl0J3Mgbm90IGNhdWdodCBieQotICAgICAgICAjIGRvX2hhbmRzaGFrZS4KLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlQWJvcnRlZEV4Y2VwdGlvbiwgaGFuZHNoYWtl
ci5kb19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9wcm90b2Nv
bChzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYo
KQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10g
PSAnY2hhdCwgc3VwZXJjaGF0JwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
cmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIFN1
YnByb3RvY29sQ2hvb3NpbmdEaXNwYXRjaGVyKDApKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hh
bmRzaGFrZSgpCi0KLSAgICAgICAgRVhQRUNURURfUkVTUE9OU0UgPSAoCi0gICAgICAgICAgICAn
SFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJwotICAgICAgICAgICAgJ1VwZ3Jh
ZGU6IHdlYnNvY2tldFxyXG4nCi0gICAgICAgICAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4n
Ci0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6IHMzcFBMTUJpVHhhUTlrWUd6emha
UmJLK3hPbz1cclxuJwotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IGNoYXRc
clxuXHJcbicpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChFWFBFQ1RFRF9SRVNQT05TRSwg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdjaGF0JywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRz
aGFrZV9wcm90b2NvbF9ub3RfaW5fcmVxdWVzdF9idXRfaW5fcmVzcG9uc2Uoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9
IEhhbmRzaGFrZXIoCi0gICAgICAgICAgICByZXF1ZXN0LCBTdWJwcm90b2NvbENob29zaW5nRGlz
cGF0Y2hlcigtMSwgJ2Zvb2JhcicpKQotICAgICAgICAjIE5vIHJlcXVlc3QgaGFzIGJlZW4gbWFk
ZSBidXQgd3NfcHJvdG9jb2wgaXMgc2V0LiBIYW5kc2hha2VFeGNlcHRpb24KLSAgICAgICAgIyBt
dXN0IGJlIHJhaXNlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0
aW9uLCBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFr
ZV93aXRoX3Byb3RvY29sX25vX3Byb3RvY29sX3NlbGVjdGlvbihzZWxmKToKLSAgICAgICAgcmVx
dWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2Rl
Zi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10gPSAnY2hhdCwgc3VwZXJjaGF0Jwot
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAg
IGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgIyB3c19w
cm90b2NvbCBpcyBub3Qgc2V0LiBIYW5kc2hha2VFeGNlcHRpb24gbXVzdCBiZSByYWlzZWQuCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwgaGFuZHNoYWtlci5k
b19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9leHRlbnNpb25z
KHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigp
Ci0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucydd
ID0gKAotICAgICAgICAgICAgJ3Blcm1lc3NhZ2UtY29tcHJlc3M7IG1ldGhvZD1kZWZsYXRlLCB1
bmtub3duJykKLQotICAgICAgICBFWFBFQ1RFRF9SRVNQT05TRSA9ICgKLSAgICAgICAgICAgICdI
VFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nCi0gICAgICAgICAgICAnVXBncmFk
ZTogd2Vic29ja2V0XHJcbicKLSAgICAgICAgICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicK
LSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUFjY2VwdDogczNwUExNQmlUeGFROWtZR3p6aFpS
YksreE9vPVxyXG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zOiBwZXJt
ZXNzYWdlLWNvbXByZXNzOyBtZXRob2Q9ZGVmbGF0ZVxyXG4nCi0gICAgICAgICAgICAnXHJcbicp
Ci0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAg
ICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5k
c2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRVhQRUNURURf
UkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25zKSkKLSAgICAgICAgZXh0
ZW5zaW9uID0gcmVxdWVzdC53c19leHRlbnNpb25zWzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4dGVuc2lvbi5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
WydtZXRob2QnXSwgZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfbmFtZXMoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnZGVmbGF0ZScsIGV4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdt
ZXRob2QnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRl
bnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1F
U1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQotCi0gICAgZGVmIHRlc3Rf
ZG9faGFuZHNoYWtlX3dpdGhfcGVybWVzc2FnZV9jb21wcmVzcyhzZWxmKToKLSAgICAgICAgcmVx
dWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2Rl
Zi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgKLSAgICAgICAgICAgICdw
ZXJtZXNzYWdlLWNvbXByZXNzOyBtZXRob2Q9ZGVmbGF0ZScpCi0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRl
X2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VY
VEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbnNb
MF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4
dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uUEVS
TUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCi0KLSAgICBkZWYgdGVz
dF9kb19oYW5kc2hha2Vfd2l0aF9xdW90ZWRfZXh0ZW5zaW9ucyhzZWxmKToKLSAgICAgICAgcmVx
dWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2Rl
Zi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgKLSAgICAgICAgICAgICdw
ZXJtZXNzYWdlLWNvbXByZXNzOyBtZXRob2Q9ZGVmbGF0ZSwgLCAnCi0gICAgICAgICAgICAndW5r
bm93bjsgZSAgID0gICAgIm1jXjIiOyBtYT0iXHJcbiAgICAgIFxcXHJmICAiOyBwdj1ucnQnKQot
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAg
IGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNo
YWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1
ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zKSkKLSAgICAgICAgZmlyc3RfZXh0ZW5zaW9uID0g
cmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9uc1swXQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdwZXJtZXNzYWdlLWNvbXByZXNzJywgZmlyc3RfZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChbJ21ldGhvZCddLCBmaXJzdF9leHRlbnNpb24uZ2V0X3BhcmFt
ZXRlcl9uYW1lcygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdkZWZsYXRlJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBmaXJzdF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgn
bWV0aG9kJykpCi0gICAgICAgIHNlY29uZF9leHRlbnNpb24gPSByZXF1ZXN0LndzX3JlcXVlc3Rl
ZF9leHRlbnNpb25zWzFdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Vua25vd24nLCBzZWNv
bmRfZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAg
ICAgIFsnZScsICdtYScsICdwdiddLCBzZWNvbmRfZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfbmFt
ZXMoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnbWNeMicsIHNlY29uZF9leHRlbnNpb24u
Z2V0X3BhcmFtZXRlcl92YWx1ZSgnZScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcgXHJm
ICcsIHNlY29uZF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgnbWEnKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnbnJ0Jywgc2Vjb25kX2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX3Zh
bHVlKCdwdicpKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfb3B0aW9uYWxfaGVh
ZGVycyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9k
ZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydFbXB0eVZhbHVlJ10gPSAnJwotICAg
ICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydBS2V5J10gPSAnQVZhbHVlJwotCi0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIg
PSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5k
c2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgJ0FWYWx1ZScs
IHJlcXVlc3QuaGVhZGVyc19pblsnQUtleSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgJycsIHJlcXVlc3QuaGVhZGVyc19pblsnRW1wdHlWYWx1ZSddKQotCi0gICAg
ZGVmIHRlc3RfYWJvcnRfZXh0cmFfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBoYW5kc2hha2Vy
ID0gSGFuZHNoYWtlcigKLSAgICAgICAgICAgIF9jcmVhdGVfcmVxdWVzdChfY3JlYXRlX2dvb2Rf
cmVxdWVzdF9kZWYoKSksCi0gICAgICAgICAgICBBYm9ydGVkQnlVc2VyRGlzcGF0Y2hlcigpKQot
ICAgICAgICAjIGRvX2V4dHJhX2hhbmRzaGFrZSByYWlzZXMgYW4gQWJvcnRlZEJ5VXNlckV4Y2Vw
dGlvbi4gQ2hlY2sgdGhhdCBpdCdzCi0gICAgICAgICMgbm90IGNhdWdodCBieSBkb19oYW5kc2hh
a2UuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGhh
bmRzaGFrZXIuZG9faGFuZHNoYWtlKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhf
bXV4X2FuZF9kZWZsYXRlX2ZyYW1lKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVh
dGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1X
ZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKCclcywgJXMnICUgKAotICAgICAgICAgICAgICAgIGNv
bW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgIGNvbW1vbi5ERUZMQVRFX0ZSQU1F
X0VYVEVOU0lPTikpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9k
ZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAg
ICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICAjIG11eCBzaG91bGQgYmUg
cmVqZWN0ZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0
ZW5zaW9ucykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLkRFRkxBVEVfRlJBTUVf
RVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9u
c1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5N
VVhfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5z
aW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1v
bi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShoYXNhdHRyKHJlcXVlc3QsICdtdXhfcHJvY2Vzc29yJykpCi0KLSAgICBkZWYgdGVz
dF9kb19oYW5kc2hha2Vfd2l0aF9kZWZsYXRlX2ZyYW1lX2FuZF9tdXgoc2VsZik6Ci0gICAgICAg
IHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVz
dF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoJyVzLCAlcycgJSAo
Ci0gICAgICAgICAgICAgICAgY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAg
ICAgICAgICAgIGNvbW1vbi5NVVhfRVhURU5TSU9OKSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFu
ZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAg
ICAgICMgbXV4IHNob3VsZCBiZSByZWplY3RlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgx
LCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25zKSkKLSAgICAgICAgZmlyc3RfZXh0ZW5zaW9uID0g
cmVxdWVzdC53c19leHRlbnNpb25zWzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9u
LkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0
X2V4dGVuc2lvbi5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVl
c3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShoYXNhdHRyKHJlcXVlc3QsICdtdXgnKSkKLQotICAgIGRlZiB0ZXN0X2Rv
X2hhbmRzaGFrZV93aXRoX3Blcm1lc3NhZ2VfY29tcHJlc3NfYW5kX211eChzZWxmKToKLSAgICAg
ICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1
ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgKLSAgICAgICAg
ICAgICclczsgbWV0aG9kPWRlZmxhdGUsICVzJyAlICgKLSAgICAgICAgICAgICAgICBjb21tb24u
UEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgY29tbW9u
Lk1VWF9FWFRFTlNJT04pKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVl
c3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3Qp
Ci0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3Qud3NfZXh0ZW5zaW9uc1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MiwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5h
bWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzFd
Lm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIocmVxdWVzdCwgJ211eF9w
cm9jZXNzb3InKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcXVlc3QubXV4X3Byb2Nlc3Nv
ci5pc19hY3RpdmUoKSkKLSAgICAgICAgbXV4X2V4dGVuc2lvbnMgPSByZXF1ZXN0Lm11eF9wcm9j
ZXNzb3IuZXh0ZW5zaW9ucygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG11eF9l
eHRlbnNpb25zKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9D
T01QUkVTU0lPTl9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgbXV4X2V4dGVu
c2lvbnNbMF0ubmFtZSgpKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfbXV4X2Fu
ZF9wZXJtZXNzYWdlX2NvbXByZXNzKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVh
dGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1X
ZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKAotICAgICAgICAgICAgJyVzLCAlczsgbWV0aG9kPWRl
ZmxhdGUnICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAg
ICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTikpCi0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRz
aGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5k
b19oYW5kc2hha2UoKQotICAgICAgICAjIG11eCBzaG91bGQgYmUgcmVqZWN0ZWQuCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCi0gICAgICAg
IGZpcnN0X2V4dGVuc2lvbiA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9leHRlbnNpb24ubmFtZSgpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUo
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lP
Tl9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNp
b25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0
cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpKQotCi0gICAgZGVmIHRlc3RfYmFkX3JlcXVlc3Rz
KHNlbGYpOgotICAgICAgICBiYWRfY2FzZXMgPSBbCi0gICAgICAgICAgICAoJ0hUVFAgcmVxdWVz
dCcsCi0gICAgICAgICAgICAgUmVxdWVzdERlZmluaXRpb24oCi0gICAgICAgICAgICAgICAgICdH
RVQnLCAnL2RlbW8nLAotICAgICAgICAgICAgICAgICB7J0hvc3QnOiAnd3d3Lmdvb2dsZS5jb20n
LAotICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOgotICAgICAgICAgICAgICAgICAgICAg
ICdNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAxMC41OycKLSAgICAg
ICAgICAgICAgICAgICAgICAnIGVuLVVTOyBydjoxLjkuMS4zKSBHZWNrby8yMDA5MDgyNCBGaXJl
Zm94LzMuNS4zJwotICAgICAgICAgICAgICAgICAgICAgICcgR1RCNiBHVEJBJywKLSAgICAgICAg
ICAgICAgICAgICdBY2NlcHQnOgotICAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2h0bWwsYXBw
bGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSwnCi0gICAgICAgICAgICAg
ICAgICAgICAgJyovKjtxPTAuOCcsCi0gICAgICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdl
JzogJ2VuLXVzLGVuO3E9MC41JywKLSAgICAgICAgICAgICAgICAgICdBY2NlcHQtRW5jb2Rpbmcn
OiAnZ3ppcCxkZWZsYXRlJywKLSAgICAgICAgICAgICAgICAgICdBY2NlcHQtQ2hhcnNldCc6ICdJ
U08tODg1OS0xLHV0Zi04O3E9MC43LCo7cT0wLjcnLAotICAgICAgICAgICAgICAgICAgJ0tlZXAt
QWxpdmUnOiAnMzAwJywKLSAgICAgICAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ2tlZXAtYWxp
dmUnfSksIE5vbmUsIFRydWUpXQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29k
X3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYubWV0aG9kID0gJ1BPU1QnCi0gICAg
ICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBtZXRob2QnLCByZXF1ZXN0X2RlZiwgTm9uZSwg
VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYo
KQotICAgICAgICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snSG9zdCddCi0gICAgICAgIGJhZF9j
YXNlcy5hcHBlbmQoKCdNaXNzaW5nIEhvc3QnLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0K
LSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAg
ICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snVXBncmFkZSddCi0gICAgICAgIGJhZF9jYXNlcy5h
cHBlbmQoKCdNaXNzaW5nIFVwZ3JhZGUnLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAg
ICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBy
ZXF1ZXN0X2RlZi5oZWFkZXJzWydVcGdyYWRlJ10gPSAnbm9ud2Vic29ja2V0JwotICAgICAgICBi
YWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgVXBncmFkZScsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVl
KSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0g
ICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydDb25uZWN0aW9uJ10KLSAgICAgICAgYmFk
X2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgQ29ubmVjdGlvbicsIHJlcXVlc3RfZGVmLCBOb25lLCBU
cnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigp
Ci0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rpb24nXSA9ICdEb3duZ3JhZGUn
Ci0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBDb25uZWN0aW9uJywgcmVxdWVzdF9k
ZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3Jl
cXVlc3RfZGVmKCkKLSAgICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2Nr
ZXQtS2V5J10KLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgU2VjLVdlYlNvY2tl
dC1LZXknLCByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9
IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNb
J1NlYy1XZWJTb2NrZXQtS2V5J10gPSAoCi0gICAgICAgICAgICAnZEdobElITmhiWEJzWlNCdWIy
NWpaUT09Z2FyYmFnZScpCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBTZWMtV2Vi
U29ja2V0LUtleSAod2l0aCBnYXJiYWdlIG9uIHRoZSB0YWlsKScsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVy
c1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICdZUT09JyAgIyBCQVNFNjQgb2YgJ2EnCi0gICAgICAg
IGJhZF9jYXNlcy5hcHBlbmQoCi0gICAgICAgICAgICAoJ1dyb25nIFNlYy1XZWJTb2NrZXQtS2V5
IChkZWNvZGVkIHZhbHVlIGlzIG5vdCAxNiBvY3RldHMgbG9uZyknLAotICAgICAgICAgICAgIHJl
cXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9n
b29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgIyBUaGUgbGFzdCBjaGFyYWN0ZXIgcmlnaHQgYmVm
b3JlID09IG11c3QgYmUgYW55IG9mIEEsIFEsIHcgYW5kIGcuCi0gICAgICAgIHJlcXVlc3RfZGVm
LmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtS2V5J10gPSAoCi0gICAgICAgICAgICAnQVFJREJBVUdC
d2dKQ2dzTURRNFBFQz09JykKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgKLSAgICAgICAgICAg
ICgnV3JvbmcgU2VjLVdlYlNvY2tldC1LZXkgKHBhZGRpbmcgYml0cyBhcmUgbm90IHplcm8pJywK
LSAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0
X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhl
YWRlcnNbJ1NlYy1XZWJTb2NrZXQtS2V5J10gPSAoCi0gICAgICAgICAgICAnZEdobElITmhiWEJz
WlNCdWIyNWpaUT09LGRHaGxJSE5oYlhCc1pTQnViMjVqWlE9PScpCi0gICAgICAgIGJhZF9jYXNl
cy5hcHBlbmQoCi0gICAgICAgICAgICAoJ1dyb25nIFNlYy1XZWJTb2NrZXQtS2V5IChtdWx0aXBs
ZSB2YWx1ZXMpJywKLSAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAg
ICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIGRl
bCByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVZlcnNpb24nXQotICAgICAgICBi
YWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBTZWMtV2ViU29ja2V0LVZlcnNpb24nLCByZXF1ZXN0
X2RlZiwgTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkpCi0KLSAgICAgICAg
cmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0
X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVZlcnNpb24nXSA9ICczJwotICAgICAgICBiYWRf
Y2FzZXMuYXBwZW5kKCgnV3JvbmcgU2VjLVdlYlNvY2tldC1WZXJzaW9uJywgcmVxdWVzdF9kZWYs
IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlKSkKLQotICAgICAgICByZXF1
ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVm
LmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbiddID0gJzEzLCAxMycKLSAgICAgICAgYmFk
X2Nhc2VzLmFwcGVuZCgoJ1dyb25nIFNlYy1XZWJTb2NrZXQtVmVyc2lvbiAobXVsdGlwbGUgdmFs
dWVzKScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUp
KQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAg
ICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90b2NvbCddID0gJ2ls
bGVnYWxceDA5cHJvdG9jb2wnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdJbGxlZ2FsIFNl
Yy1XZWJTb2NrZXQtUHJvdG9jb2wnLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9y
ZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQt
UHJvdG9jb2wnXSA9ICcnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdFbXB0eSBTZWMtV2Vi
U29ja2V0LVByb3RvY29sJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9kZWYs
IDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgZm9yIChjYXNlX25hbWUsIHJlcXVlc3RfZGVmLCBleHBl
Y3RlZF9zdGF0dXMsCi0gICAgICAgICAgICAgZXhwZWN0X2hhbmRzaGFrZV9leGNlcHRpb24pIGlu
IGJhZF9jYXNlczoKLSAgICAgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVz
dF9kZWYpCi0gICAgICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2Nr
Lk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaGFu
ZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnTm8gZXhj
ZXB0aW9uIHRocm93biBmb3IgXCclc1wnIGNhc2UnICUgY2FzZV9uYW1lKQotICAgICAgICAgICAg
ZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoZXhwZWN0X2hhbmRzaGFrZV9leGNlcHRpb24pCi0gICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChleHBlY3RlZF9zdGF0dXMsIGUuc3RhdHVzKQotICAgICAgICAgICAgZXhjZXB0
IFZlcnNpb25FeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShl
eHBlY3RfaGFuZHNoYWtlX2V4Y2VwdGlvbikKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpMDAucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RfaGFuZHNoYWtlX2h5YmkwMC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzNmOWYyN2NhMmQ5NDIxYjIzMDE1ZjU4Yzg5M2FjZjFkYzAwOWRlZi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNo
YWtlX2h5YmkwMC5weQorKysgL2Rldi9udWxsCkBAIC0xLDUxNiArMCwwIEBACi0jIS91c3IvYmlu
L2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBoYW5kc2hh
a2UuaHliaTAwIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9z
eXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1
bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNo
YWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaTAwIGltcG9y
dCBIYW5kc2hha2VyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaTAwIGltcG9y
dCBfdmFsaWRhdGVfc3VicHJvdG9jb2wKLWZyb20gdGVzdCBpbXBvcnQgbW9jawotCi0KLV9URVNU
X0tFWTEgPSAnNCBAMSAgNDY1NDZ4VyUwbCAxIDUnCi1fVEVTVF9LRVkyID0gJzEyOTk4IDUgWTMg
MSAgLlAwMCcKLV9URVNUX0tFWTMgPSAnXm46ZHNbNFUnCi1fVEVTVF9DSEFMTEVOR0VfUkVTUE9O
U0UgPSAnOGpLU1wneTpHKkNvLFd4YS0nCi0KLQotX0dPT0RfUkVRVUVTVCA9ICgKLSAgICA4MCwK
LSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBs
ZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LVByb3Rv
Y29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAg
ICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2luJzogJ2h0
dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVFV
RVNUX0NBUElUQUxJWkVEX0hFQURFUl9WQUxVRVMgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0g
ICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAg
ICAgJ0Nvbm5lY3Rpb24nOiAnVVBHUkFERScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTIn
OiBfVEVTVF9LRVkyLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUn
LAotICAgICAgICAnVXBncmFkZSc6ICdXRUJTT0NLRVQnLAotICAgICAgICAnU2VjLVdlYlNvY2tl
dC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5j
b20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQotX0dPT0RfUkVRVUVTVF9DQVNFX01JWEVE
X0hFQURFUl9OQU1FUyA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAg
IHsKLSAgICAgICAgJ2hPc1QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAnY09uTmVDdElvTic6
ICdVcGdyYWRlJywKLSAgICAgICAgJ3NFYy13RWJzT2NLZVQta0V5Mic6IF9URVNUX0tFWTIsCi0g
ICAgICAgICdzRWMtd0Vic09jS2VULXBSb1RvQ29MJzogJ3NhbXBsZScsCi0gICAgICAgICd1UGdS
YURlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdzRWMtd0Vic09jS2VULWtFeTEnOiBfVEVTVF9L
RVkxLAotICAgICAgICAnb1JpR2lOJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAg
ICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQgPSAoCi0gICAgJ0hU
VFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFk
ZTogV2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1Nl
Yy1XZWJTb2NrZXQtTG9jYXRpb246IHdzOi8vZXhhbXBsZS5jb20vZGVtb1xyXG4nCi0gICAgJ1Nl
Yy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdTZWMtV2Vi
U29ja2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hB
TExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVNQT05TRV9TRUNVUkUgPSAoCi0gICAgJ0hUVFAv
MS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTog
V2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1X
ZWJTb2NrZXQtTG9jYXRpb246IHdzczovL2V4YW1wbGUuY29tL2RlbW9cclxuJwotICAgICdTZWMt
V2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAnU2VjLVdlYlNv
Y2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9URVNUX0NIQUxM
RU5HRV9SRVNQT05TRSkKLQotX0dPT0RfUkVRVUVTVF9OT05ERUZBVUxUX1BPUlQgPSAoCi0gICAg
ODA4MSwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAn
ZXhhbXBsZS5jb206ODA4MScsCi0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAg
ICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ1NlYy1XZWJT
b2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0
JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdP
cmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0K
LV9HT09EX1JFU1BPTlNFX05PTkRFRkFVTFRfUE9SVCA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdl
YlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRc
clxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1M
b2NhdGlvbjogd3M6Ly9leGFtcGxlLmNvbTo4MDgxL2RlbW9cclxuJwotICAgICdTZWMtV2ViU29j
a2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Q
cm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9URVNUX0NIQUxMRU5HRV9S
RVNQT05TRSkKLQotX0dPT0RfUkVTUE9OU0VfU0VDVVJFX05PTkRFRiA9ICgKLSAgICAnSFRUUC8x
LjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdVcGdyYWRlOiBX
ZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdl
YlNvY2tldC1Mb2NhdGlvbjogd3NzOi8vZXhhbXBsZS5jb206ODA4MS9kZW1vXHJcbicKLSAgICAn
U2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1X
ZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9D
SEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9HT09EX1JFUVVFU1RfTk9fUFJPVE9DT0wgPSAoCi0gICAg
ODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4
YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICdT
ZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJT
b2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAg
ICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZ
MykKLQotX0dPT0RfUkVTUE9OU0VfTk9fUFJPVE9DT0wgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBX
ZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0
XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQt
TG9jYXRpb246IHdzOi8vZXhhbXBsZS5jb20vZGVtb1xyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQt
T3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdcclxuJyArCi0gICAgX1RFU1Rf
Q0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVFVRVNUX1dJVEhfT1BUSU9OQUxfSEVBREVS
UyA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAg
J0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywK
LSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdFbXB0
eVZhbHVlJzogJycsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScs
Ci0gICAgICAgICdBS2V5JzogJ0FWYWx1ZScsCi0gICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tl
dCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAn
T3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQot
Ci0jIFRPRE8odHlvc2hpbm8pOiBJbmNsdWRlIFxyIFxuIGluIGtleTMsIGNoYWxsZW5nZSByZXNw
b25zZS4KLQotX0dPT0RfUkVRVUVTVF9XSVRIX05PTlBSSU5UQUJMRV9LRVkgPSAoCi0gICAgODAs
Ci0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1w
bGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICdTZWMt
V2ViU29ja2V0LUtleTInOiAneSAgUjIgNDggUTFPNCAgZXxCVjMgaTUgMSAgdS0gNjUnLAotICAg
ICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAnVXBncmFk
ZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogJzM2IDcgICA3
NCBpICA5MiAyXCdtIDkgMEcnLAotICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNv
bScsCi0gICAgfSwKLSAgICAnJy5qb2luKG1hcChjaHIsIFsweDAxLCAweGQxLCAweGRkLCAweDNi
LCAweGQxLCAweDU2LCAweDYzLCAweGZmXSkpKQotCi1fR09PRF9SRVNQT05TRV9XSVRIX05PTlBS
SU5UQUJMRV9LRVkgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFu
ZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlv
bjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdzOi8vZXhhbXBs
ZS5jb20vZGVtb1xyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBs
ZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAg
ICdcclxuJyArCi0gICAgJycuam9pbihtYXAoY2hyLCBbMHgwYiwgMHg5OSwgMHhmYSwgMHg1NSwg
MHhiZCwgMHgwMSwgMHgyMywgMHg3YiwKLSAgICAgICAgICAgICAgICAgICAgICAweDQ1LCAweGEy
LCAweGYxLCAweGQwLCAweDg3LCAweDhhLCAweGVlLCAweGViXSkpKQotCi1fR09PRF9SRVFVRVNU
X1dJVEhfUVVFUllfUEFSVCA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8/ZT1t
YzInLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29u
bmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNU
X0tFWTIsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAg
ICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEn
OiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0g
ICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVNQT05TRV9XSVRIX1FVRVJZX1BBUlQg
PSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicK
LSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxy
XG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdzOi8vZXhhbXBsZS5jb20vZGVtbz9l
PW1jMlxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21c
clxuJwotICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxu
JyArCi0gICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFKQotCi1fQkFEX1JFUVVFU1RTID0gKAot
ICAgICggICMgSFRUUCByZXF1ZXN0Ci0gICAgICAgIDgwLAotICAgICAgICAnR0VUJywKLSAgICAg
ICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hvc3QnOiAnd3d3Lmdvb2dsZS5j
b20nLAotICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKE1hY2ludG9zaDsg
VTsgSW50ZWwgTWFjIE9TIFggMTAuNTsnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcgZW4t
VVM7IHJ2OjEuOS4xLjMpIEdlY2tvLzIwMDkwODI0IEZpcmVmb3gvMy41LjMnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICcgR1RCNiBHVEJBJywKLSAgICAgICAgICAgICdBY2NlcHQnOiAndGV4
dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksJwotICAg
ICAgICAgICAgICAgICAgICAgICcqLyo7cT0wLjgnLAotICAgICAgICAgICAgJ0FjY2VwdC1MYW5n
dWFnZSc6ICdlbi11cyxlbjtxPTAuNScsCi0gICAgICAgICAgICAnQWNjZXB0LUVuY29kaW5nJzog
J2d6aXAsZGVmbGF0ZScsCi0gICAgICAgICAgICAnQWNjZXB0LUNoYXJzZXQnOiAnSVNPLTg4NTkt
MSx1dGYtODtxPTAuNywqO3E9MC43JywKLSAgICAgICAgICAgICdLZWVwLUFsaXZlJzogJzMwMCcs
Ci0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdrZWVwLWFsaXZlJywKLSAgICAgICAgfSksCi0g
ICAgKCAgIyBXcm9uZyBtZXRob2QKLSAgICAgICAgODAsCi0gICAgICAgICdQT1NUJywKLSAgICAg
ICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20n
LAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0
LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQn
LAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAg
ICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0sCi0gICAgICAg
IF9URVNUX0tFWTMpLAotICAgICggICMgTWlzc2luZyBVcGdyYWRlCi0gICAgICAgIDgwLAotICAg
ICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hv
c3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScs
Ci0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAg
ICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0
cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAg
KCAgIyBXcm9uZyBVcGdyYWRlCi0gICAgICAgIDgwLAotICAgICAgICAnR0VUJywKLSAgICAgICAg
Jy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAot
ICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdl
YlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVBy
b3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICAgICAnVXBncmFkZSc6ICdOb25XZWJTb2NrZXQn
LAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAg
ICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0sCi0gICAgICAg
IF9URVNUX0tFWTMpLAotICAgICggICMgRW1wdHkgV2ViU29ja2V0LVByb3RvY29sCi0gICAgICAg
IDgwLAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAg
ICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAn
VXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwK
LSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJycsCi0gICAgICAgICAgICAn
VXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6
IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScs
Ci0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotICAgICggICMgV3JvbmcgcG9ydCBu
dW1iZXIgZm9ybWF0Ci0gICAgICAgIDgwLAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1v
JywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb206MHg1MCcsCi0g
ICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMtV2Vi
U29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJv
dG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0g
ICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgICAg
ICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAgICAgX1RF
U1RfS0VZMyksCi0gICAgKCAgIyBIZWFkZXIvY29ubmVjdGlvbiBwb3J0IG1pc21hdGNoCi0gICAg
ICAgIDgwODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0g
ICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICAgICAnQ29ubmVjdGlv
bic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9L
RVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAg
ICAgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICAgICAnU2VjLVdlYlNv
Y2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4
YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBJ
bGxlZ2FsIFdlYlNvY2tldC1Qcm90b2NvbAotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0g
ICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUu
Y29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAg
J1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNv
Y2tldC1Qcm90b2NvbCc6ICdpbGxlZ2FsXHgwOXByb3RvY29sJywKLSAgICAgICAgICAgICdVcGdy
YWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RF
U1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAg
ICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0pCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVz
dChyZXF1ZXN0X2RlZik6Ci0gICAgZGF0YSA9ICcnCi0gICAgaWYgbGVuKHJlcXVlc3RfZGVmKSA+
IDQ6Ci0gICAgICAgIGRhdGEgPSByZXF1ZXN0X2RlZls0XQotICAgIGNvbm4gPSBtb2NrLk1vY2tD
b25uKGRhdGEpCi0gICAgY29ubi5sb2NhbF9hZGRyID0gKCcwLjAuMC4wJywgcmVxdWVzdF9kZWZb
MF0pCi0gICAgcmV0dXJuIG1vY2suTW9ja1JlcXVlc3QoCi0gICAgICAgIG1ldGhvZD1yZXF1ZXN0
X2RlZlsxXSwKLSAgICAgICAgdXJpPXJlcXVlc3RfZGVmWzJdLAotICAgICAgICBoZWFkZXJzX2lu
PXJlcXVlc3RfZGVmWzNdLAotICAgICAgICBjb25uZWN0aW9uPWNvbm4pCi0KLQotZGVmIF9jcmVh
dGVfZ2V0X21lbW9yaXplZF9saW5lcyhsaW5lcyk6Ci0gICAgIiIiQ3JlYXRlcyBhIGZ1bmN0aW9u
IHRoYXQgcmV0dXJucyB0aGUgZ2l2ZW4gc3RyaW5nLiIiIgotCi0gICAgZGVmIGdldF9tZW1vcml6
ZWRfbGluZXMoKToKLSAgICAgICAgcmV0dXJuIGxpbmVzCi0gICAgcmV0dXJuIGdldF9tZW1vcml6
ZWRfbGluZXMKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0c193aXRoX2xpbmVzKHJlcXVlc3RfbGlu
ZXNfc2V0KToKLSAgICByZXF1ZXN0cyA9IFtdCi0gICAgZm9yIGxpbmVzIGluIHJlcXVlc3RfbGlu
ZXNfc2V0OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1Qp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfbWVtb3JpemVkX2xpbmVzID0gX2NyZWF0
ZV9nZXRfbWVtb3JpemVkX2xpbmVzKAotICAgICAgICAgICAgICAgIGxpbmVzKQotICAgICAgICBy
ZXF1ZXN0cy5hcHBlbmQocmVxdWVzdCkKLSAgICByZXR1cm4gcmVxdWVzdHMKLQotCi1jbGFzcyBI
eUJpMDBIYW5kc2hha2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9n
b29kX3JlcXVlc3RfZGVmYXVsdF9wb3J0KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1QpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2Vy
KHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19o
YW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX0RFRkFV
TFRfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9kZW1vJywgcmVxdWVzdC53
c19yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnaHR0cDovL2V4YW1wbGUuY29t
JywgcmVxdWVzdC53c19vcmlnaW4pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3dzOi8vZXhh
bXBsZS5jb20vZGVtbycsIHJlcXVlc3Qud3NfbG9jYXRpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9nb29k
X3JlcXVlc3RfY2FwaXRhbGl6ZWRfaGVhZGVyX3ZhbHVlcyhzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX0NBUElUQUxJWkVEX0hFQURFUl9WQUxV
RVMpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rp
c3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX0RFRkFVTFRfUE9SVCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBk
ZWYgdGVzdF9nb29kX3JlcXVlc3RfY2FzZV9taXhlZF9oZWFkZXJfbmFtZXMoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9DQVNFX01JWEVEX0hF
QURFUl9OQU1FUykKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9j
ay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfREVGQVVMVF9QT1JULAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkK
LQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9zZWN1cmVfZGVmYXVsdF9wb3J0KHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1QpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5sb2NhbF9hZGRyID0gKCcwLjAuMC4wJywgNDQzKQotICAgICAg
ICByZXF1ZXN0LmlzX2h0dHBzXyA9IFRydWUKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFr
ZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRv
X2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfU0VD
VVJFLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19w
cm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9ub25kZWZhdWx0X3BvcnQoc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9OT05E
RUZBVUxUX1BPUlQpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrLk1vY2tEaXNwYXRj
aGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9OT05ERUZBVUxUX1BPUlQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVm
IHRlc3RfZ29vZF9yZXF1ZXN0X3NlY3VyZV9ub25fZGVmYXVsdF9wb3J0KHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfTk9OREVGQVVMVF9QT1JU
KQotICAgICAgICByZXF1ZXN0LmlzX2h0dHBzXyA9IFRydWUKLSAgICAgICAgaGFuZHNoYWtlciA9
IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5k
c2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVT
UE9OU0VfU0VDVVJFX05PTkRFRiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBs
ZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3RfZGVm
YXVsdF9ub19wcm90b2NvbChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dChfR09PRF9SRVFVRVNUX05PX1BST1RPQ09MKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNo
YWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIu
ZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9O
T19QUk9UT0NPTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVxdWVzdC53
c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9vcHRpb25hbF9oZWFkZXJz
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1Rf
V0lUSF9PUFRJT05BTF9IRUFERVJTKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihy
ZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFu
ZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQVZhbHVlJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNfaW5bJ0FLZXknXSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNf
aW5bJ0VtcHR5VmFsdWUnXSkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF93aXRoX25vbnBy
aW50YWJsZV9rZXkoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dP
T0RfUkVRVUVTVF9XSVRIX05PTlBSSU5UQUJMRV9LRVkpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBI
YW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNo
YWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BP
TlNFX1dJVEhfTk9OUFJJTlRBQkxFX0tFWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVl
c3Rfd2l0aF9xdWVyeV9wYXJ0KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KF9HT09EX1JFUVVFU1RfV0lUSF9RVUVSWV9QQVJUKQotICAgICAgICBoYW5kc2hha2VyID0g
SGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRz
aGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQ
T05TRV9XSVRIX1FVRVJZX1BBUlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd3czov
L2V4YW1wbGUuY29tL2RlbW8/ZT1tYzInLCByZXF1ZXN0LndzX2xvY2F0aW9uKQotCi0gICAgZGVm
IHRlc3RfYmFkX3JlcXVlc3RzKHNlbGYpOgotICAgICAgICBmb3IgcmVxdWVzdCBpbiBtYXAoX2Ny
ZWF0ZV9yZXF1ZXN0LCBfQkFEX1JFUVVFU1RTKToKLSAgICAgICAgICAgIGhhbmRzaGFrZXIgPSBI
YW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hh
a2UpCi0KLQotY2xhc3MgSHlCaTAwVmFsaWRhdGVTdWJwcm90b2NvbFRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgotICAgIGRlZiB0ZXN0X3ZhbGlkYXRlX3N1YnByb3RvY29sKHNlbGYpOgotICAgICAg
ICAjIHNob3VsZCBzdWNjZWVkLgotICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBs
ZScpCi0gICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCgnU2FtcGxlJykKLSAgICAgICAgX3Zh
bGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGVceDdlcHJvdG9jb2wnKQotICAgICAgICBfdmFsaWRh
dGVfc3VicHJvdG9jb2woJ3NhbXBsZVx4MjBwcm90b2NvbCcpCi0KLSAgICAgICAgIyBzaG91bGQg
ZmFpbC4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICcnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VF
eGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2Nv
bCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4MTlwcm90b2NvbCcpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAnc2FtcGxlXHg3ZnByb3RvY29sJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFu
ZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBfdmFsaWRhdGVfc3Vi
cHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICMgIkphcGFuIiBpbiBKYXBhbmVz
ZQotICAgICAgICAgICAgICAgICAgICAgICAgICB1J1x1NjVlNVx1NjcyYycpCi0KLQotaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGls
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2h0dHBfaGVhZGVyX3V0aWwucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQzNmRjNTdjMzczMTA3MWZlMjkwMTkxOWUzM2YyNGMxYjU1OWY2
MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvdGVzdC90ZXN0X2h0dHBfaGVhZGVyX3V0aWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSw5MCAr
MCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2ds
ZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIi
IlRlc3RzIGZvciBodHRwX2hlYWRlcl91dGlsIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRl
c3QKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGh0dHBfaGVhZGVyX3V0aWwKLQotCi1j
bGFzcyBVbml0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3Ig
aHR0cF9oZWFkZXJfdXRpbCBtb2R1bGUuIiIiCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9yZWxhdGl2
ZV91cmkoc2VsZik6Ci0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJf
dXRpbC5wYXJzZV91cmkoJy93cy90ZXN0JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25l
LCBob3N0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHBvcnQpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3VyY2UpCi0KLSAgICBkZWYgdGVzdF9wYXJz
ZV9hYnNvbHV0ZV91cmkoc2VsZik6Ci0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0
cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAgICAnd3M6Ly9sb2NhbGhvc3Q6MTAw
ODAvd3MvdGVzdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2xvY2FsaG9zdCcsIGhvc3Qp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAwODAsIHBvcnQpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3VyY2UpCi0KLSAgICAgICAgaG9zdCwgcG9ydCwgcmVz
b3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgKLSAgICAgICAgICAgICd3czovL2V4
YW1wbGUuY29tL3dzL3Rlc3QnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdleGFtcGxlLmNv
bScsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoODAsIHBvcnQpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3VyY2UpCi0KLSAgICAgICAgaG9zdCwgcG9y
dCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgKLSAgICAgICAgICAgICd3
c3M6Ly9leGFtcGxlLmNvbS8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdleGFtcGxlLmNv
bScsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNDQzLCBwb3J0KQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCcvJywgcmVzb3VyY2UpCi0KLSAgICAgICAgaG9zdCwgcG9ydCwgcmVz
b3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgKLSAgICAgICAgICAgICd3czovL2V4
YW1wbGUuY29tOjgwODAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdleGFtcGxlLmNvbScs
IGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoODA4MCwgcG9ydCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnLycsIHJlc291cmNlKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfaW52YWxp
ZF91cmkoc2VsZik6Ci0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJf
dXRpbC5wYXJzZV91cmkoJ3dzOi8vLycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
cmVzb3VyY2UpCi0KLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91
dGlsLnBhcnNlX3VyaSgnd3M6Ly9sb2NhbGhvc3Q6JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCByZXNvdXJjZSkKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBf
aGVhZGVyX3V0aWwucGFyc2VfdXJpKCd3czovL2xvY2FsaG9zdDovd3MnKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIHJlc291cmNlKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhm
MWI4ZWVmNDMzNzhhOWIwMDYyNWYyMjBjOTdmZTIyZjc0MGE4ZjcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21lbW9yaXpp
bmdmaWxlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52
IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIG1lbW9yaXppbmdm
aWxlIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgU3RyaW5nSU8KLWltcG9ydCB1bml0dGVzdAotCi1p
bXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vi
c29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1lbW9yaXppbmdm
aWxlCi0KLQotY2xhc3MgVXRpbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5p
dHRlc3QgZm9yIG1lbW9yaXppbmdmaWxlIG1vZHVsZS4iIiIKLQotICAgIGRlZiBjaGVjayhzZWxm
LCBtZW1vcml6aW5nX2ZpbGUsIG51bV9yZWFkLCBleHBlY3RlZF9saXN0KToKLSAgICAgICAgZm9y
IHVudXNlZCBpbiByYW5nZShudW1fcmVhZCk6Ci0gICAgICAgICAgICBtZW1vcml6aW5nX2ZpbGUu
cmVhZGxpbmUoKQotICAgICAgICBhY3R1YWxfbGlzdCA9IG1lbW9yaXppbmdfZmlsZS5nZXRfbWVt
b3JpemVkX2xpbmVzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlz
dCksIGxlbihhY3R1YWxfbGlzdCkpCi0gICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHpp
cChleHBlY3RlZF9saXN0LCBhY3R1YWxfbGlzdCk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGV4cGVjdGVkLCBhY3R1YWwpCi0KLSAgICBkZWYgY2hlY2tfd2l0aF9zaXplKHNlbGYsIG1l
bW9yaXppbmdfZmlsZSwgcmVhZF9zaXplLCBleHBlY3RlZF9saXN0KToKLSAgICAgICAgcmVhZF9s
aXN0ID0gW10KLSAgICAgICAgcmVhZF9saW5lID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAg
ICAgICAgICAgIGxpbmUgPSBtZW1vcml6aW5nX2ZpbGUucmVhZGxpbmUocmVhZF9zaXplKQotICAg
ICAgICAgICAgbGluZV9sZW5ndGggPSBsZW4obGluZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShsaW5lX2xlbmd0aCA8PSByZWFkX3NpemUpCi0gICAgICAgICAgICBpZiBsaW5lX2xlbmd0
aCA9PSAwOgotICAgICAgICAgICAgICAgIGlmIHJlYWRfbGluZSAhPSAnJzoKLSAgICAgICAgICAg
ICAgICAgICAgcmVhZF9saXN0LmFwcGVuZChyZWFkX2xpbmUpCi0gICAgICAgICAgICAgICAgYnJl
YWsKLSAgICAgICAgICAgIHJlYWRfbGluZSArPSBsaW5lCi0gICAgICAgICAgICBpZiBsaW5lW2xp
bmVfbGVuZ3RoIC0gMV0gPT0gJ1xuJzoKLSAgICAgICAgICAgICAgICByZWFkX2xpc3QuYXBwZW5k
KHJlYWRfbGluZSkKLSAgICAgICAgICAgICAgICByZWFkX2xpbmUgPSAnJwotICAgICAgICBhY3R1
YWxfbGlzdCA9IG1lbW9yaXppbmdfZmlsZS5nZXRfbWVtb3JpemVkX2xpbmVzKCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlzdCksIGxlbihhY3R1YWxfbGlzdCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4cGVjdGVkX2xpc3QpLCBsZW4ocmVhZF9saXN0
KSkKLSAgICAgICAgZm9yIGV4cGVjdGVkLCBhY3R1YWwsIHJlYWQgaW4gemlwKGV4cGVjdGVkX2xp
c3QsIGFjdHVhbF9saXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVhZF9saXN0KToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFj
dHVhbCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlYWQpCi0KLSAg
ICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVzKHNlbGYpOgotICAgICAgICBtZW1vcml6aW5n
X2ZpbGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygK
LSAgICAgICAgICAgICAgICAnSGVsbG9cbldvcmxkXG5XZWxjb21lJykpCi0gICAgICAgIHNlbGYu
Y2hlY2sobWVtb3JpemluZ19maWxlLCAzLCBbJ0hlbGxvXG4nLCAnV29ybGRcbicsICdXZWxjb21l
J10pCi0KLSAgICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVzX2xpbWl0X21lbW9yaXplZF9s
aW5lcyhzZWxmKToKLSAgICAgICAgbWVtb3JpemluZ19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVt
b3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5nSU8oCi0gICAgICAgICAgICAgICAgJ0hlbGxvXG5X
b3JsZFxuV2VsY29tZScpLCAyKQotICAgICAgICBzZWxmLmNoZWNrKG1lbW9yaXppbmdfZmlsZSwg
MywgWydIZWxsb1xuJywgJ1dvcmxkXG4nXSkKLQotICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRf
bGluZXNfZW1wdHlfZmlsZShzZWxmKToKLSAgICAgICAgbWVtb3JpemluZ19maWxlID0gbWVtb3Jp
emluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5nSU8oCi0gICAgICAgICAgICAg
ICAgJycpKQotICAgICAgICBzZWxmLmNoZWNrKG1lbW9yaXppbmdfZmlsZSwgMTAsIFtdKQotCi0g
ICAgZGVmIHRlc3RfZ2V0X21lbW9yaXplZF9saW5lc193aXRoX3NpemUoc2VsZik6Ci0gICAgICAg
IGZvciBzaXplIGluIHJhbmdlKDEsIDEwKToKLSAgICAgICAgICAgIG1lbW9yaXppbmdfZmlsZSA9
IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxlKFN0cmluZ0lPLlN0cmluZ0lPKAotICAgICAg
ICAgICAgICAgICdIZWxsb1xuV29ybGRcbldlbGNvbWUnKSkKLSAgICAgICAgICAgIHNlbGYuY2hl
Y2tfd2l0aF9zaXplKG1lbW9yaXppbmdfZmlsZSwgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsnSGVsbG9cbicsICdXb3JsZFxuJywgJ1dlbGNvbWUnXSkKLQotaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tb2NrLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvdGVzdC90ZXN0X21vY2sucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkYzIz
YTczZDhmYjFhMDdhZWIzZTVhZTk0MDJjYzg2YjhmY2MzNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21vY2sucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0j
IENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgbW9jayBtb2R1bGUuIiIiCi0KLQotaW1w
b3J0IFF1ZXVlCi1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNl
dF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBt
b2R1bGUuCi0KLWZyb20gdGVzdCBpbXBvcnQgbW9jawotCi0KLWNsYXNzIE1vY2tDb25uVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgTW9ja0Nvbm4gY2xhc3Mu
IiIiCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuX2Nvbm4gPSBtb2NrLk1v
Y2tDb25uKCdBQkNcclxuREVGR1xyXG5cclxuSElKSycpCi0KLSAgICBkZWYgdGVzdF9yZWFkbGlu
ZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQUJDXHJcbicsIHNlbGYuX2Nvbm4u
cmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnREVGR1xyXG4nLCBzZWxmLl9j
b25uLnJlYWRsaW5lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xyXG4nLCBzZWxmLl9j
b25uLnJlYWRsaW5lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hJSksnLCBzZWxmLl9j
b25uLnJlYWRsaW5lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIHNlbGYuX2Nvbm4u
cmVhZGxpbmUoKSkKLQotICAgIGRlZiB0ZXN0X3JlYWQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ0FCQ1xyXG5EJywgc2VsZi5fY29ubi5yZWFkKDYpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdFRkdcclxuXHJcbkhJJywgc2VsZi5fY29ubi5yZWFkKDkpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdKSycsIHNlbGYuX2Nvbm4ucmVhZCgxMCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJycsIHNlbGYuX2Nvbm4ucmVhZCgxMCkpCi0KLSAgICBkZWYgdGVzdF9yZWFk
X2FuZF9yZWFkbGluZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQUJDXHJcbkQn
LCBzZWxmLl9jb25uLnJlYWQoNikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0VGR1xyXG4n
LCBzZWxmLl9jb25uLnJlYWRsaW5lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xyXG5I
SUpLJywgc2VsZi5fY29ubi5yZWFkKDkpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBz
ZWxmLl9jb25uLnJlYWRsaW5lKCkpCi0KLSAgICBkZWYgdGVzdF93cml0ZShzZWxmKToKLSAgICAg
ICAgc2VsZi5fY29ubi53cml0ZSgnSGVsbG9cclxuJykKLSAgICAgICAgc2VsZi5fY29ubi53cml0
ZSgnV29ybGRcclxuJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG9cclxuV29ybGRc
clxuJywgc2VsZi5fY29ubi53cml0dGVuX2RhdGEoKSkKLQotCi1jbGFzcyBNb2NrQmxvY2tpbmdD
b25uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgTW9ja0Js
b2NraW5nQ29ubiBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X3JlYWQoc2VsZik6Ci0gICAgICAg
ICIiIlRlc3RzIHRoYXQgZGF0YSBwdXQgdG8gTW9ja0Jsb2NraW5nQ29ubiBieSBwdXRfYnl0ZXMg
bWV0aG9kIGNhbiBiZQotICAgICAgICByZWFkIGZyb20gaXQuCi0gICAgICAgICIiIgotCi0gICAg
ICAgIGNsYXNzIExpbmVSZWFkZXIodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgICAgICAgICAiIiJB
IHRlc3QgY2xhc3MgdGhhdCBsYXVuY2hlcyBhIHRocmVhZCwgY2FsbHMgcmVhZGxpbmUgb24gdGhl
Ci0gICAgICAgICAgICBzcGVjaWZpZWQgY29ubiByZXBlYXRlZGx5IGFuZCBwdXRzIHRoZSByZWFk
IGRhdGEgdG8gdGhlIHNwZWNpZmllZAotICAgICAgICAgICAgcXVldWUuCi0gICAgICAgICAgICAi
IiIKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbm4sIHF1ZXVlKToKLSAgICAg
ICAgICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgICAgICAg
ICAgc2VsZi5fcXVldWUgPSBxdWV1ZQotICAgICAgICAgICAgICAgIHNlbGYuX2Nvbm4gPSBjb25u
Ci0gICAgICAgICAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLSAgICAgICAgICAgICAgICBz
ZWxmLnN0YXJ0KCkKLQotICAgICAgICAgICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgICAgICAg
ICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5fY29ubi5yZWFk
bGluZSgpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3F1ZXVlLnB1dChkYXRhKQotCi0gICAg
ICAgIGNvbm4gPSBtb2NrLk1vY2tCbG9ja2luZ0Nvbm4oKQotICAgICAgICBxdWV1ZSA9IFF1ZXVl
LlF1ZXVlKCkKLSAgICAgICAgcmVhZGVyID0gTGluZVJlYWRlcihjb25uLCBxdWV1ZSkKLSAgICAg
ICAgc2VsZi5mYWlsVW5sZXNzKHF1ZXVlLmVtcHR5KCkpCi0gICAgICAgIGNvbm4ucHV0X2J5dGVz
KCdGb28gYmFyXHJcbicpCi0gICAgICAgIHJlYWQgPSBxdWV1ZS5nZXQoKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdGb28gYmFyXHJcbicsIHJlYWQpCi0KLQotY2xhc3MgTW9ja1RhYmxlVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgTW9ja1RhYmxlIGNs
YXNzLiIiIgotCi0gICAgZGVmIHRlc3RfY3JlYXRlX2Zyb21fZGljdChzZWxmKToKLSAgICAgICAg
dGFibGUgPSBtb2NrLk1vY2tUYWJsZSh7J0tleSc6ICdWYWx1ZSd9KQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ2tleSddKQotCi0gICAgZGVmIHRlc3RfY3JlYXRlX2Zyb21f
bGlzdChzZWxmKToKLSAgICAgICAgdGFibGUgPSBtb2NrLk1vY2tUYWJsZShbKCdLZXknLCAnVmFs
dWUnKV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLRVkn
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsna2V5J10pCi0KLSAg
ICBkZWYgdGVzdF9jcmVhdGVfZnJvbV90dXBsZShzZWxmKToKLSAgICAgICAgdGFibGUgPSBtb2Nr
Lk1vY2tUYWJsZSgoKCdLZXknLCAnVmFsdWUnKSwpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1Zh
bHVlJywgdGFibGVbJ2tleSddKQotCi0gICAgZGVmIHRlc3Rfc2V0X2FuZF9nZXQoc2VsZik6Ci0g
ICAgICAgIHRhYmxlID0gbW9jay5Nb2NrVGFibGUoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KE5vbmUsIHRhYmxlLmdldCgnS2V5JykpCi0gICAgICAgIHRhYmxlWydLZXknXSA9ICdWYWx1ZScK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tleScpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgna2V5JykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLRVknKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsnS2V5J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ2tleSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdW
YWx1ZScsIHRhYmxlWydLRVknXSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAg
IHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC90ZXN0X21zZ3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbXNndXRpbC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWZlZGNmOTJmNjFmZThjZDllNTYwZjI3
NGE4OWEwM2I0M2E3MmJkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbXNndXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDEzNTYgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEy
LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotCi0iIiJUZXN0cyBmb3IgbXNndXRpbCBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IGFycmF5Ci1p
bXBvcnQgUXVldWUKLWltcG9ydCByYW5kb20KLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCB1bml0dGVz
dAotaW1wb3J0IHpsaWIKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGgg
dG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IERl
ZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5z
aW9ucyBpbXBvcnQgUGVyTWVzc2FnZUNvbXByZXNzRXh0ZW5zaW9uUHJvY2Vzc29yCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lv
blByb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwKLWZyb20gbW9k
X3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgSW52YWxpZFVURjhFeGNlcHRpb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtCi1mcm9tIG1vZF9weXdlYnNvY2tldC5z
dHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBp
bXBvcnQgU3RyZWFtT3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZy
b20gdGVzdCBpbXBvcnQgbW9jawotCi0KLSMgV2UgdXNlIG9uZSBmaXhlZCBub25jZSBmb3IgdGVz
dGluZyBpbnN0ZWFkIG9mIGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSBQUk5HLgotX01BU0tJTkdf
Tk9OQ0UgPSAnQUJDRCcKLQotCi1kZWYgX21hc2tfaHliaShmcmFtZSk6Ci0gICAgZnJhbWVfa2V5
ID0gbWFwKG9yZCwgX01BU0tJTkdfTk9OQ0UpCi0gICAgZnJhbWVfa2V5X2xlbiA9IGxlbihmcmFt
ZV9rZXkpCi0gICAgcmVzdWx0ID0gYXJyYXkuYXJyYXkoJ0InKQotICAgIHJlc3VsdC5mcm9tc3Ry
aW5nKGZyYW1lKQotICAgIGNvdW50ID0gMAotICAgIGZvciBpIGluIHhyYW5nZShsZW4ocmVzdWx0
KSk6Ci0gICAgICAgIHJlc3VsdFtpXSBePSBmcmFtZV9rZXlbY291bnRdCi0gICAgICAgIGNvdW50
ID0gKGNvdW50ICsgMSkgJSBmcmFtZV9rZXlfbGVuCi0gICAgcmV0dXJuIF9NQVNLSU5HX05PTkNF
ICsgcmVzdWx0LnRvc3RyaW5nKCkKLQotCi1kZWYgX2luc3RhbGxfZXh0ZW5zaW9uX3Byb2Nlc3Nv
cihwcm9jZXNzb3IsIHJlcXVlc3QsIHN0cmVhbV9vcHRpb25zKToKLSAgICByZXNwb25zZSA9IHBy
b2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICBpZiByZXNwb25zZSBpcyBub3Qg
Tm9uZToKLSAgICAgICAgcHJvY2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRp
b25zKQotICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzLmFwcGVuZChwcm9j
ZXNzb3IpCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgIHJl
YWRfZGF0YSwKLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PU5vbmUsCi0gICAgICAgIHBl
cm1lc3NhZ2VfY29tcHJlc3Npb25fcmVxdWVzdD1Ob25lLAotICAgICAgICBwZXJtZXNzYWdlX2Rl
ZmxhdGVfcmVxdWVzdD1Ob25lKToKLSAgICByZXEgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rp
b249bW9jay5Nb2NrQ29ubignJy5qb2luKHJlYWRfZGF0YSkpKQotICAgIHJlcS53c192ZXJzaW9u
ID0gY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QKLSAgICByZXEud3NfZXh0ZW5zaW9uX3Byb2Nl
c3NvcnMgPSBbXQotCi0gICAgcHJvY2Vzc29yID0gTm9uZQotICAgIGlmIGRlZmxhdGVfZnJhbWVf
cmVxdWVzdCBpcyBub3QgTm9uZToKLSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0
ZW5zaW9uUHJvY2Vzc29yKGRlZmxhdGVfZnJhbWVfcmVxdWVzdCkKLSAgICBlbGlmIHBlcm1lc3Nh
Z2VfY29tcHJlc3Npb25fcmVxdWVzdCBpcyBub3QgTm9uZToKLSAgICAgICAgcHJvY2Vzc29yID0g
UGVyTWVzc2FnZUNvbXByZXNzRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIHBl
cm1lc3NhZ2VfY29tcHJlc3Npb25fcmVxdWVzdCkKLSAgICBlbGlmIHBlcm1lc3NhZ2VfZGVmbGF0
ZV9yZXF1ZXN0IGlzIG5vdCBOb25lOgotICAgICAgICBwcm9jZXNzb3IgPSBQZXJNZXNzYWdlRGVm
bGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgICAgICBwZXJtZXNzYWdlX2RlZmxh
dGVfcmVxdWVzdCkKLQotICAgIHN0cmVhbV9vcHRpb25zID0gU3RyZWFtT3B0aW9ucygpCi0gICAg
aWYgcHJvY2Vzc29yIGlzIG5vdCBOb25lOgotICAgICAgICBfaW5zdGFsbF9leHRlbnNpb25fcHJv
Y2Vzc29yKHByb2Nlc3NvciwgcmVxLCBzdHJlYW1fb3B0aW9ucykKLSAgICByZXEud3Nfc3RyZWFt
ID0gU3RyZWFtKHJlcSwgc3RyZWFtX29wdGlvbnMpCi0KLSAgICByZXR1cm4gcmVxCi0KLQotZGVm
IF9jcmVhdGVfcmVxdWVzdCgqZnJhbWVzKToKLSAgICAiIiJDcmVhdGVzIE1vY2tSZXF1ZXN0IHVz
aW5nIGRhdGEgZ2l2ZW4gYXMgZnJhbWVzLgotCi0gICAgZnJhbWVzIHdpbGwgYmUgcmV0dXJuZWQg
b24gY2FsbGluZyByZXF1ZXN0LmNvbm5lY3Rpb24ucmVhZCgpIHdoZXJlIHJlcXVlc3QKLSAgICBp
cyBNb2NrUmVxdWVzdCByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uLgotICAgICIiIgotCi0gICAg
cmVhZF9kYXRhID0gW10KLSAgICBmb3IgKGhlYWRlciwgYm9keSkgaW4gZnJhbWVzOgotICAgICAg
ICByZWFkX2RhdGEuYXBwZW5kKGhlYWRlciArIF9tYXNrX2h5YmkoYm9keSkpCi0KLSAgICByZXR1
cm4gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YShyZWFkX2RhdGEpCi0KLQotZGVmIF9jcmVh
dGVfYmxvY2tpbmdfcmVxdWVzdCgpOgotICAgICIiIkNyZWF0ZXMgTW9ja1JlcXVlc3QuCi0KLSAg
ICBEYXRhIHdyaXR0ZW4gdG8gYSBNb2NrUmVxdWVzdCBjYW4gYmUgcmVhZCBvdXQgYnkgY2FsbGlu
ZwotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKS4KLSAgICAiIiIKLQotICAg
IHJlcSA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tCbG9ja2luZ0Nvbm4o
KSkKLSAgICByZXEud3NfdmVyc2lvbiA9IGNvbW1vbi5WRVJTSU9OX0hZQklfTEFURVNUCi0gICAg
c3RyZWFtX29wdGlvbnMgPSBTdHJlYW1PcHRpb25zKCkKLSAgICByZXEud3Nfc3RyZWFtID0gU3Ry
ZWFtKHJlcSwgc3RyZWFtX29wdGlvbnMpCi0gICAgcmV0dXJuIHJlcQotCi0KLWRlZiBfY3JlYXRl
X3JlcXVlc3RfaGl4aWU3NShyZWFkX2RhdGE9JycpOgotICAgIHJlcSA9IG1vY2suTW9ja1JlcXVl
c3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKHJlYWRfZGF0YSkpCi0gICAgcmVxLndzX3N0cmVh
bSA9IFN0cmVhbUhpeGllNzUocmVxKQotICAgIHJldHVybiByZXEKLQotCi1kZWYgX2NyZWF0ZV9i
bG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKToKLSAgICByZXEgPSBtb2NrLk1vY2tSZXF1ZXN0KGNv
bm5lY3Rpb249bW9jay5Nb2NrQmxvY2tpbmdDb25uKCkpCi0gICAgcmVxLndzX3N0cmVhbSA9IFN0
cmVhbUhpeGllNzUocmVxKQotICAgIHJldHVybiByZXEKLQotCi1jbGFzcyBCYXNpY01lc3NhZ2VU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJCYXNpYyB0ZXN0cyBmb3IgU3RyZWFtLiIi
IgotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwg
J0hlbGxvJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4MDVIZWxsbycsIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICBwYXlsb2FkID0gJ2EnICog
MTI1Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGls
LnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2FkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdceDgxXHg3ZCcgKyBwYXlsb2FkLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVkaXVtX21l
c3NhZ2Uoc2VsZik6Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAxMjYKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsIHBheWxvYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDdlXHgwMFx4N2Un
ICsgcGF5bG9hZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqICgoMSA8PCAxNikgLSAx
KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHg4MVx4N2VceGZmXHhmZicgKyBwYXlsb2FkLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbGFy
Z2VfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqICgxIDw8IDE2KQotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgcGF5bG9hZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4
N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMCcgKyBwYXlsb2FkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
IGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV91bmljb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwg
dSdcdTY1ZTUnKQotICAgICAgICAjIFUrNjVlNSBpcyBlbmNvZGVkIGFzIGU2LDk3LGE1IGluIFVU
Ri04Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDAzXHhlNlx4OTdceGE1JywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkp
Ci0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRzKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2Uo
cmVxdWVzdCwgJ0hlbGxvJywgRmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJl
cXVlc3QsICcgJywgRmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3Qs
ICdXb3JsZCcsIEZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAn
IScsIFRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDFceDA1SGVsbG9ceDAwXHgw
MSBceDAwXHgwNVdvcmxkXHg4MFx4MDEhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2ZyYWdt
ZW50c19pbW1lZGlhdGVfemVyb190ZXJtaW5hdGlvbihzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3Qs
ICdIZWxsbyBXb3JsZCEnLCBGYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVx
dWVzdCwgJycsIFRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDFceDBjSGVsbG8g
V29ybGQhXHg4MFx4MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZShzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4
MVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NicsICdXb3JsZCEnKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQhJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Uo
cmVxdWVzdCkpCi0KLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqIDEyNQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ZmQnLCBwYXlsb2FkKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQot
ICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVkaXVtX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHBheWxv
YWQgPSAnYScgKiAxMjYKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFc
eGZlXHgwMFx4N2UnLCBwYXlsb2FkKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2Fk
LCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBwYXlsb2FkID0g
J2EnICogKCgxIDw8IDE2KSAtIDEpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
KCdceDgxXHhmZVx4ZmZceGZmJywgcGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVz
dF9yZWNlaXZlX2xhcmdlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAo
MSA8PCAxNikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAg
ICgnXHg4MVx4ZmZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMCcsIHBheWxvYWQpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9sZW5ndGhfbm90X2VuY29kZWRfdXNp
bmdfbWluaW1hbF9udW1iZXJfb2ZfYnl0ZXMoc2VsZik6Ci0gICAgICAgICMgTG9nIHdhcm5pbmcg
b24gcmVjZWl2aW5nIGJhZCBwYXlsb2FkIGxlbmd0aCBmaWVsZCB0aGF0IGRvZXNuJ3QgdXNlCi0g
ICAgICAgICMgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgYnV0IGNvbnRpbnVlIHByb2Nlc3Npbmcu
Ci0KLSAgICAgICAgcGF5bG9hZCA9ICdhJwotICAgICAgICAjIDEgYnl0ZSBjYW4gYmUgcmVwcmVz
ZW50ZWQgd2l0aG91dCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBmaWVsZC4KLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4MVx4ZmZceDAwXHgwMFx4
MDBceDAwXHgwMFx4MDBceDAwXHgwMScsIHBheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVm
IHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3VuaWNvZGUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QoKCdceDgxXHg4MycsICdceGU2XHg5Y1x4YWMnKSkKLSAgICAgICAgIyBV
KzY3MmMgaXMgZW5jb2RlZCBhcyBlNiw5YyxhYyBpbiBVVEYtOAotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHUnXHU2NzJjJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAg
ICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfZXJyb25lb3VzX3VuaWNvZGUoc2VsZik6Ci0gICAg
ICAgICMgXHg4MCBhbmQgXHg4MSBhcmUgaW52YWxpZCBhcyBVVEYtOC4KLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFceDgyJywgJ1x4ODBceDgxJykpCi0gICAgICAgICMg
SW52YWxpZCBjaGFyYWN0ZXJzIHNob3VsZCByYWlzZSBJbnZhbGlkVVRGOEV4Y2VwdGlvbgotICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkVVRGOEV4Y2VwdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50cyhzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHgw
MVx4ODUnLCAnSGVsbG8nKSwKLSAgICAgICAgICAgICgnXHgwMFx4ODEnLCAnICcpLAotICAgICAg
ICAgICAgKCdceDAwXHg4NScsICdXb3JsZCcpLAotICAgICAgICAgICAgKCdceDgwXHg4MScsICch
JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNf
dW5pY29kZShzZWxmKToKLSAgICAgICAgIyBVVEYtOCBlbmNvZGVzIFUrNmYyMiBpbnRvIGU2YmNh
MiBhbmQgVSs1YjU3IGludG8gZTVhZDk3LgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KAotICAgICAgICAgICAgKCdceDAxXHg4MicsICdceGU2XHhiYycpLAotICAgICAgICAgICAg
KCdceDAwXHg4MicsICdceGEyXHhlNScpLAotICAgICAgICAgICAgKCdceDgwXHg4MicsICdceGFk
XHg5NycpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUnXHU2ZjIyXHU1YjU3JywgbXNndXRp
bC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdt
ZW50c19pbW1lZGlhdGVfemVyb190ZXJtaW5hdGlvbihzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHgwMVx4OGMnLCAnSGVsbG8gV29ybGQh
JyksICgnXHg4MFx4ODAnLCAnJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdv
cmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3Rf
cmVjZWl2ZV9mcmFnbWVudHNfZHVwbGljYXRlX3N0YXJ0KHNlbGYpOgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDAxXHg4NScsICdIZWxsbycpLCAo
J1x4MDFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwu
SW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGls
LnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKLQot
ICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRzX2ludGVybWVkaWF0ZV9idXRfbm90X3N0YXJ0
ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDAwXHg4NScs
ICdIZWxsbycpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFt
ZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21l
c3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVz
dF9yZWNlaXZlX2ZyYWdtZW50c19lbmRfYnV0X25vdF9zdGFydGVkKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MFx4ODUnLCAnSGVsbG8nKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Rp
c2NhcmQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAg
ICAgICAoJ1x4OGZceDg2JywgJ0lHTk9SRScpLCAoJ1x4ODFceDg1JywgJ0hlbGxvJyksCi0gICAg
ICAgICAgICAoJ1x4OGZceDg5JywgJ0RJU1JFR0FSRCcpLCAoJ1x4ODFceDg2JywgJ1dvcmxkIScp
KQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLlVuc3VwcG9ydGVkRnJhbWVFeGNl
cHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
LCByZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGls
LlVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1z
Z3V0aWwucmVjZWl2ZV9tZXNzYWdlLCByZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0
ZXN0X3JlY2VpdmVfY2xvc2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3QoCi0gICAgICAgICAgICAoJ1x4ODhceDhhJywgc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAn
R29vZCBieWUnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2Vp
dmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMDAwLCByZXF1
ZXN0LndzX2Nsb3NlX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0dvb2QgYnllJywg
cmVxdWVzdC53c19jbG9zZV9yZWFzb24pCi0KLSAgICBkZWYgdGVzdF9zZW5kX2xvbmdlc3RfY2xv
c2Uoc2VsZik6Ci0gICAgICAgIHJlYXNvbiA9ICdhJyAqIDEyMwotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDg4XHhmZCcsCi0gICAgICAgICAgICAg
c3RydWN0LnBhY2soJyFIJywgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSkgKyByZWFzb24p
KQotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFU
VVNfTk9STUFMX0NMT1NVUkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVhc29uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcXVlc3Qud3NfY2xvc2Vf
Y29kZSwgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChyZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbiwgcmVhc29uKQotCi0gICAgZGVmIHRlc3Rfc2Vu
ZF9jbG9zZV90b29fbG9uZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0
aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW0uY2xvc2VfY29ubmVjdGlvbiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICdhJyAqIDEyNCkKLQotICAgIGRlZiB0ZXN0X3NlbmRfY2xvc2VfaW5j
b25zaXN0ZW50X2NvZGVfYW5kX3JlYXNvbihzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdCgpCi0gICAgICAgICMgcmVhc29uIHBhcmFtZXRlciBtdXN0IG5vdCBiZSBzcGVj
aWZpZWQgd2hlbiBjb2RlIGlzIE5vbmUuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0
aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJl
YW0uY2xvc2VfY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53
c19zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICdhJykKLQotICAgIGRlZiB0ZXN0X3NlbmRfcGluZyhzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9waW5n
KHJlcXVlc3QsICdIZWxsbyBXb3JsZCEnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5
XHgwY0hlbGxvIFdvcmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9sb25nZXN0X3Bpbmco
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1
dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnYScgKiAxMjUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4ODlceDdkJyArICdhJyAqIDEyNSwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX3Bpbmdf
dG9vX2xvbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5zZW5kX3BpbmcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdhJyAqIDEy
NikKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfcGluZyhzZWxmKToKLSAgICAgICAgIiIiVGVzdHMg
cmVjZWl2aW5nIGEgcGluZyBjb250cm9sIGZyYW1lLiIiIgotCi0gICAgICAgIGRlZiBoYW5kbGVy
KHJlcXVlc3QsIG1lc3NhZ2UpOgotICAgICAgICAgICAgcmVxdWVzdC5jYWxsZWQgPSBUcnVlCi0K
LSAgICAgICAgIyBTdHJlYW0gYXV0b21hdGljYWxseSByZXNwb25kIHRvIHBpbmcgd2l0aCBwb25n
IHdpdGhvdXQgYW55IGFjdGlvbgotICAgICAgICAjIGJ5IGFwcGxpY2F0aW9uIGxheWVyLgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDg5XHg4NScs
ICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4OGFceDA1SGVsbG8nLAotICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDg5XHg4NScsICdIZWxsbycpLCAoJ1x4
ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIHJlcXVlc3Qub25fcGluZ19oYW5kbGVyID0gaGFu
ZGxlcgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVxdWVzdC5jYWxsZWQp
Ci0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2xvbmdlc3RfcGluZyhzZWxmKToKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4OVx4ZmQnLCAnYScgKiAx
MjUpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dv
cmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4OGFceDdkJyArICdhJyAqIDEyNSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX3BpbmdfdG9vX2xvbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3QoKCdceDg5XHhmZVx4MDBceDdlJywgJ2EnICogMTI2KSkKLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9wb25nKHNlbGYpOgotICAgICAgICAi
IiJUZXN0cyByZWNlaXZpbmcgYSBwb25nIGNvbnRyb2wgZnJhbWUuIiIiCi0KLSAgICAgICAgZGVm
IGhhbmRsZXIocmVxdWVzdCwgbWVzc2FnZSk6Ci0gICAgICAgICAgICByZXF1ZXN0LmNhbGxlZCA9
IFRydWUKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAg
KCdceDhhXHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIHJl
cXVlc3Qub25fcG9uZ19oYW5kbGVyID0gaGFuZGxlcgotICAgICAgICBtc2d1dGlsLnNlbmRfcGlu
ZyhyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHgwNUhl
bGxvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkpCi0gICAgICAgICMgVmFsaWQgcG9uZyBpcyByZWNlaXZlZCwgYnV0IHJlY2VpdmVf
bWVzc2FnZSB3b24ndCByZXR1cm4gZm9yIGl0LgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdX
b3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICAjIENoZWNr
IHRoYXQgbm90aGluZyB3YXMgd3JpdHRlbiBhZnRlciByZWNlaXZlX21lc3NhZ2UgY2FsbC4KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4OVx4MDVIZWxsbycsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0LmNhbGxlZCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfdW5z
b2xpY2l0ZWRfcG9uZyhzZWxmKToKLSAgICAgICAgIyBVbnNvbGljaXRlZCBwb25nIGlzIGFsbG93
ZWQgZnJvbSBIeUJpIDA3LgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAg
ICAgICAgICAgKCdceDhhXHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0g
ICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpCi0KLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4YVx4ODUnLCAnSGVsbG8nKSwg
KCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0
LCAnSnVtYm8nKQotICAgICAgICAjIEJvZHkgbWlzbWF0Y2guCi0gICAgICAgIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9waW5nX2Nhbm5vdF9iZV9mcmFn
bWVudGVkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHgwOVx4
ODUnLCAnSGVsbG8nKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlk
RnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVm
IHRlc3RfcGluZ193aXRoX3Rvb19sb25nX3BheWxvYWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QoKCdceDg5XHhmZVx4MDFceDAwJywgJ2EnICogMjU2KSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0KLWNsYXNzIERlZmxhdGVGcmFtZVRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIGZvciBjaGVja2luZyBkZWZsYXRlLWZyYW1l
IGV4dGVuc2lvbi4iIiIKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZShzZWxmKToKLSAgICAg
ICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFV
TFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAg
ICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZS
QU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jh
d2RhdGEoCi0gICAgICAgICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikK
LSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAg
bXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJykKLQotICAgICAgICBleHBlY3Rl
ZCA9ICcnCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdI
ZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5a
X1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxv
WzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxs
bykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotCi0gICAgICAgIGNvbXBy
ZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVz
c2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBj
b21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRdCi0gICAgICAgIGV4cGVjdGVk
ICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfd29ybGQpCi0gICAgICAgIGV4cGVjdGVkICs9
IGNvbXByZXNzZWRfd29ybGQKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21l
c3NhZ2VfYmZpbmFsKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAnJywgZGVmbGF0
ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwg
bGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBkZWZsYXRlX2Zy
YW1lX3Byb2Nlc3NvciA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0KLSAgICAg
ICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3Iuc2V0X2JmaW5hbChUcnVlKQotICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBtc2d1dGlsLnNlbmRf
bWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnKQotCi0gICAgICAgIGV4cGVjdGVkID0gJycKLQotICAg
ICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVG
QVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsbyArIGNocigwKQotICAgICAgICBl
eHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBl
Y3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXBy
ZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVG
TEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXBy
ZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJl
c3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXBy
ZXNzZWRfd29ybGQgKyBjaHIoMCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4o
Y29tcHJlc3NlZF93b3JsZCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9jb21wX2JpdChzZWxm
KToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxp
Yi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykK
LQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5E
RUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4
dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKHJlcXVlc3Qud3NfZXh0
ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3NvciA9IHJl
cXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0KLSAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3Iu
ZGlzYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbigpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNz
YWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAgIGRlZmxhdGVfZnJhbWVfcHJvY2Vzc29yLmVu
YWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbigpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdl
KHJlcXVlc3QsICdIZWxsbycpCi0KLSAgICAgICAgZXhwZWN0ZWQgPSAnJwotCi0gICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21w
cmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGV4cGVj
dGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVk
ICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAgICBleHBlY3RlZCArPSAnXHg4MVx4MDVIZWxs
bycKLQotICAgICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdI
ZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyA9IGNvbXByZXNz
ZWRfMm5kX2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29t
cHJlc3NlZF8ybmRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfMm5kX2hl
bGxvCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX25vX2NvbnRl
eHRfdGFrZW92ZXJfcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29t
cHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5E
RUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAg
ICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAg
ICAgJycsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIGZvciBpIGlu
IHhyYW5nZSgzKToKLSAgICAgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdI
ZWxsbycpCi0KLSAgICAgICAgY29tcHJlc3NlZF9tZXNzYWdlID0gY29tcHJlc3MuY29tcHJlc3Mo
J0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9tZXNzYWdlICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX21lc3NhZ2UgPSBjb21wcmVzc2Vk
X21lc3NhZ2VbOi00XQotICAgICAgICBleHBlY3RlZCA9ICdceGMxJWMnICUgbGVuKGNvbXByZXNz
ZWRfbWVzc2FnZSkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9tZXNzYWdlCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGV4cGVjdGVkICsgZXhwZWN0ZWQg
KyBleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVm
IHRlc3RfYmFkX3JlcXVlc3RfcGFyYW1ldGVycyhzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhh
dCBpZiB0aGVyZSdzIGFueXRoaW5nIHdyb25nIHdpdGggZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24K
LSAgICAgICAgcmVxdWVzdCwgZGVmbGF0ZS1mcmFtZSBpcyByZWplY3RlZC4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24u
REVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgICMgbWF4X3dpbmRvd19iaXRzIGxlc3Mg
dGhhbiA4IGlzIGlsbGVnYWwuCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtYXhf
d2luZG93X2JpdHMnLCAnNycpCi0gICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVu
c2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
cHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgICAgICBleHRlbnNpb24g
PSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lP
TikKLSAgICAgICAgIyBtYXhfd2luZG93X2JpdHMgZ3JlYXRlciB0aGFuIDE1IGlzIGlsbGVnYWwu
Ci0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnMTYn
KQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0
ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHByb2Nlc3Nvci5nZXRfZXh0
ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgICMgTm9u
IGludGVnZXIgbWF4X3dpbmRvd19iaXRzIGlzIGlsbGVnYWwuCi0gICAgICAgIGV4dGVuc2lvbi5h
ZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnZm9vYmFyJykKLSAgICAgICAgcHJvY2Vz
c29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgp
KQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9u
LkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICAjIG5vX2NvbnRleHRfdGFrZW92ZXIg
bXVzdCBub3QgaGF2ZSBhbnkgdmFsdWUuCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVy
KCdub19jb250ZXh0X3Rha2VvdmVyJywgJ2Zvb2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IERl
ZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAg
IGRlZiB0ZXN0X3Jlc3BvbnNlX3BhcmFtZXRlcnMoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9O
KQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0
ZW5zaW9uKQotICAgICAgICBwcm9jZXNzb3Iuc2V0X3Jlc3BvbnNlX3dpbmRvd19iaXRzKDgpCi0g
ICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2UuaGFzX3BhcmFtZXRlcignbWF4X3dpbmRvd19i
aXRzJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzgnLCByZXNwb25zZS5nZXRfcGFyYW1l
dGVyX3ZhbHVlKCdtYXhfd2luZG93X2JpdHMnKSkKLQotICAgICAgICBleHRlbnNpb24gPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAg
ICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lv
bikKLSAgICAgICAgcHJvY2Vzc29yLnNldF9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyKFRy
dWUpCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2Uo
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2UuaGFzX3BhcmFtZXRlcignbm9fY29u
dGV4dF90YWtlb3ZlcicpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoCi0gICAgICAgICAgICBy
ZXNwb25zZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdub19jb250ZXh0X3Rha2VvdmVyJykgaXMgTm9u
ZSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAgY29tcHJl
c3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJF
U1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBkYXRhID0g
JycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxv
JykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lO
Q19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00
XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX2hlbGxvKSB8IDB4
ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxvKQotCi0gICAg
ICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ID0gY29tcHJlc3MuY29tcHJlc3MoJ1dlYlNvY2tldCcp
Ci0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9G
SU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ICs9ICdceDAwJwotICAgICAgICBk
YXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX3dlYnNvY2tldCkgfCAweDgwKQotICAg
ICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF93ZWJzb2NrZXQpCi0KLSAgICAgICAg
Y29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRf
Q09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBj
b21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29t
cHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAg
ICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBkYXRh
ICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX3dvcmxkKSB8IDB4ODApCi0gICAgICAgIGRh
dGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3dvcmxkKQotCi0gICAgICAgICMgQ2xvc2UgZnJh
bWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygn
IUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0
YSwgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnV2ViU29ja2V0JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVx
dWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVz
c2FnZV9jbGllbnRfdXNpbmdfc21hbGxlcl93aW5kb3coc2VsZik6Ci0gICAgICAgICIiIlRlc3Qg
dGhhdCBmcmFtZXMgY29taW5nIGZyb20gYSBjbGllbnQgd2hpY2ggaXMgdXNpbmcgc21hbGxlciB3
aW5kb3cKLSAgICAgICAgc2l6ZSB0aGF0IHRoZSBzZXJ2ZXIgYXJlIGNvcnJlY3RseSByZWNlaXZl
ZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBVc2luZyB0aGUgc21hbGxlc3Qgd2luZG93IGJp
dHMgb2YgOCBmb3IgZ2VuZXJhdGluZyBpbnB1dCBmcmFtZXMuCi0gICAgICAgIGNvbXByZXNzID0g
emxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9O
LCB6bGliLkRFRkxBVEVELCAtOCkKLQotICAgICAgICBkYXRhID0gJycKLQotICAgICAgICAjIFVz
ZSBhIGZyYW1lIHdob3NlIGNvbnRlbnQgaXMgYmlnZ2VyIHRoYW4gdGhlIGNsaWVudHMnIERFRkxB
VEUgd2luZG93Ci0gICAgICAgICMgc2l6ZSBiZWZvcmUgY29tcHJlc3Npb24uIFRoZSBjb250ZW50
IG1haW5seSBjb25zaXN0cyBvZiAnYScgYnV0Ci0gICAgICAgICMgcmVwZXRpdGlvbiBvZiAnYicg
aXMgcHV0IGF0IHRoZSBoZWFkIGFuZCB0YWlsIHNvIHRoYXQgaWYgdGhlIHdpbmRvdwotICAgICAg
ICAjIHNpemUgaXMgYmlnLCB0aGUgaGVhZCBpcyBiYWNrLXJlZmVyZW5jZWQgYnV0IGlmIHNtYWxs
LCBub3QuCi0gICAgICAgIHBheWxvYWQgPSAnYicgKiA2NCArICdhJyAqIDEwMjQgKyAnYicgKiA2
NAotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MocGF5bG9hZCkK
LSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19G
TFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQot
ICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODAp
Ci0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxvKQotCi0gICAgICAg
ICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShz
dHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9u
ID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJ
T04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAg
ICAgICAgICAgZGF0YSwgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0
KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNz
YWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2NvbXBfYml0KHNl
bGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6
bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRT
KQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21w
cmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXBy
ZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNv
bXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXBy
ZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgZGF0YSArPSAnXHg4MVx4ODUnICsgX21hc2tfaHliaSgn
SGVsbG8nKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAg
ICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhf
V0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVz
cygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyArPSBjb21wcmVzcy5mbHVz
aCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gPSBjb21w
cmVzc2VkXzJuZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNv
bXByZXNzZWRfMm5kX2hlbGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShj
b21wcmVzc2VkXzJuZF9oZWxsbykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBk
ZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBmb3IgaSBpbiB4cmFuZ2Uo
Myk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3Zhcmlv
dXNfYnR5cGUoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAg
ICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxp
Yi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAgICAgY29tcHJlc3NlZF9o
ZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVs
bG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVj
JyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNr
X2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCA9
IGNvbXByZXNzLmNvbXByZXNzKCdXZWJTb2NrZXQnKQotICAgICAgICBjb21wcmVzc2VkX3dlYnNv
Y2tldCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICBjb21wcmVzc2Vk
X3dlYnNvY2tldCArPSAnXHgwMCcKLSAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29t
cHJlc3NlZF93ZWJzb2NrZXQpIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNv
bXByZXNzZWRfd2Vic29ja2V0KQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29i
aigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVE
LCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNz
LmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21w
cmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJl
c3NlZF93b3JsZCkgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3Nl
ZF93b3JsZCkKLQotICAgICAgICAjIENsb3NlIGZyYW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhc
eDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQot
Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRF
RkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRhdGEsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1l
eHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNl
aXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dlYlNvY2tl
dCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVz
dCkpCi0KLQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LSAgICAiIiJUZXN0cyBmb3IgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4iIiIKLQotICAg
IGRlZiB0ZXN0X3NlbmRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9E
RUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9t
X3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0
PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxv
JykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAg
ICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9X
QklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxs
bycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZ
TkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzot
NF0KLSAgICAgICAgZXhwZWN0ZWQgPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQot
ICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
IGRlZiB0ZXN0X3NlbmRfZW1wdHlfbWVzc2FnZShzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0
IGFuIGVtcHR5IG1lc3NhZ2UgaXMgY29tcHJlc3NlZCBjb3JyZWN0bHkuIiIiCi0KLSAgICAgICAg
ZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBj
b21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3Nh
Z2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVz
c2FnZShyZXF1ZXN0LCAnJykKLQotICAgICAgICAjIFBheWxvYWQgaW4gYmluYXJ5OiAwYjAwMDAw
MDEwIDBiMDAwMDAwMDAKLSAgICAgICAgIyBGcm9tIExTQiwKLSAgICAgICAgIyAtIDEgYml0IG9m
IEJGSU5BTCAoMCkKLSAgICAgICAgIyAtIDIgYml0cyBvZiBCVFlQRSAoMDEgdGhhdCBtZWFucyBm
aXhlZCBIdWZmbWFuKQotICAgICAgICAjIC0gNyBiaXRzIG9mIHRoZSBmaXJzdCBjb2RlICgwMDAw
MDAwIHRoYXQgaXMgdGhlIGNvZGUgZm9yIHRoZQotICAgICAgICAjICAgZW5kLW9mLWJsb2NrKQot
ICAgICAgICAjIC0gMSBiaXQgb2YgQkZJTkFMICgwKQotICAgICAgICAjIC0gMiBiaXRzIG9mIEJU
WVBFIChubyBjb21wcmVzc2lvbikKLSAgICAgICAgIyAtIDMgYml0cyBvZiBwYWRkaW5nCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YzFceDAyXHgwMlx4MDAnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0
ZXN0X3NlbmRfbWVzc2FnZV93aXRoX251bGxfY2hhcmFjdGVyKHNlbGYpOgotICAgICAgICAiIiJU
ZXN0IHRoYXQgYSBzaW1wbGUgcGF5bG9hZCAob25lIG51bGwpIGlzIGZyYW1lZCBjb3JyZWN0bHku
IiIiCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAg
ICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAg
ICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLQotICAgICAgICBt
c2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnXHgwMCcpCi0KLSAgICAgICAgIyBQYXlsb2Fk
IGluIGJpbmFyeTogMGIwMTEwMDAxMCAwYjAwMDAwMDAwIDBiMDAwMDAwMDAKLSAgICAgICAgIyBG
cm9tIExTQiwKLSAgICAgICAgIyAtIDEgYml0IG9mIEJGSU5BTCAoMCkKLSAgICAgICAgIyAtIDIg
Yml0cyBvZiBCVFlQRSAoMDEgdGhhdCBtZWFucyBmaXhlZCBIdWZmbWFuKQotICAgICAgICAjIC0g
OCBiaXRzIG9mIHRoZSBmaXJzdCBjb2RlICgwMDExMDAwMCB0aGF0IGlzIHRoZSBjb2RlIGZvciB0
aGUgbGl0ZXJhbAotICAgICAgICAjICAgYWxwaGFiZXQgMHgwMCkKLSAgICAgICAgIyAtIDcgYml0
cyBvZiB0aGUgc2Vjb25kIGNvZGUgKDAwMDAwMDAgdGhhdCBpcyB0aGUgY29kZSBmb3IgdGhlCi0g
ICAgICAgICMgICBlbmQtb2YtYmxvY2spCi0gICAgICAgICMgLSAxIGJpdCBvZiBCRklOQUwgKDAp
Ci0gICAgICAgICMgLSAyIGJpdHMgb2YgQlRZUEUgKG5vIGNvbXByZXNzaW9uKQotICAgICAgICAj
IC0gMiBiaXRzIG9mIHBhZGRpbmcKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhjMVx4MDNc
eDYyXHgwMFx4MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfdHdvX21lc3NhZ2VzKHNlbGYp
OgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAg
ICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAn
JywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGls
LnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVz
c2FnZShyZXF1ZXN0LCAnV29ybGQnKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVz
c29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5E
RUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGV4cGVjdGVkID0gJycKLQotICAg
ICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkK
LSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAg
ICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBl
eHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0KLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9
IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0g
Y29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29y
bGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycg
JSBsZW4oY29tcHJlc3NlZF93b3JsZCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93
b3JsZAotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVu
dGVkKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAg
ICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAg
ICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCi0gICAg
ICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdHb29kYnllJywgZW5kPUZhbHNlKQot
ICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnKQotCi0gICAgICAg
IGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVG
QVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAg
ICAgICAgZXhwZWN0ZWQgPSAnXHg0MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAg
ICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0gICAgICAgIGNvbXByZXNzZWRfZ29vZGJ5
ZSA9IGNvbXByZXNzLmNvbXByZXNzKCdHb29kYnllJykKLSAgICAgICAgY29tcHJlc3NlZF9nb29k
YnllICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBleHBlY3Rl
ZCArPSAnXHgwMCVjJyAlIGxlbihjb21wcmVzc2VkX2dvb2RieWUpCi0gICAgICAgIGV4cGVjdGVk
ICs9IGNvbXByZXNzZWRfZ29vZGJ5ZQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJl
c3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVz
cy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNv
bXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHg4MCVjJyAlIGxlbihj
b21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX3dvcmxkCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0
dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVudGVkX2VtcHR5
X2ZpcnN0X2ZyYW1lKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhU
RU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgK
LSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9u
KQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnJywgZW5kPUZhbHNlKQot
ICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotCi0gICAgICAg
IGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVG
QVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJycpCi0gICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAg
IGV4cGVjdGVkID0gJ1x4NDElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhw
ZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotICAgICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29t
cHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9
IGNvbXByZXNzZWRfZW1wdHlbOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHg4MCVjJyAlIGxl
bihjb21wcmVzc2VkX2VtcHR5KQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2VtcHR5
Ci0gICAgICAgIHByaW50ICclcicgJSBleHBlY3RlZAotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYg
dGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZF9lbXB0eV9sYXN0X2ZyYW1lKHNlbGYpOgotICAg
ICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAg
ICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVy
bWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGlsLnNlbmRf
bWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2Vu
ZF9tZXNzYWdlKHJlcXVlc3QsICcnKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVz
c29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5E
RUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29t
cHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgZXhwZWN0ZWQgPSAnXHg0MSVj
JyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2Vk
X2hlbGxvCi0gICAgICAgIGNvbXByZXNzZWRfZW1wdHkgPSBjb21wcmVzcy5jb21wcmVzcygnJykK
LSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19G
TFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9IGNvbXByZXNzZWRfZW1wdHlbOi00XQot
ICAgICAgICBleHBlY3RlZCArPSAnXHg4MCVjJyAlIGxlbihjb21wcmVzc2VkX2VtcHR5KQotICAg
ICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2VtcHR5Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRl
ZiB0ZXN0X3NlbmRfbWVzc2FnZV91c2luZ19zbWFsbF93aW5kb3coc2VsZik6Ci0gICAgICAgIGNv
bW1vbl9wYXJ0ID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JwotICAgICAgICB0ZXN0X21l
c3NhZ2UgPSBjb21tb25fcGFydCArICctJyAqIDMwMDAwICsgY29tbW9uX3BhcnQKLQotICAgICAg
ICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAg
IGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICBleHRlbnNpb24u
YWRkX3BhcmFtZXRlcignc2VydmVyX21heF93aW5kb3dfYml0cycsICc4JykKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycs
IHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgdGVzdF9tZXNzYWdlKQotCi0gICAgICAgIGV4cGVjdGVkX3dl
YnNvY2tldF9oZWFkZXJfc2l6ZSA9IDIKLSAgICAgICAgZXhwZWN0ZWRfd2Vic29ja2V0X3BheWxv
YWRfc2l6ZSA9IDkxCi0KLSAgICAgICAgYWN0dWFsX2ZyYW1lID0gcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfd2Vic29j
a2V0X2hlYWRlcl9zaXplICsKLSAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF93ZWJz
b2NrZXRfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihhY3R1YWxf
ZnJhbWUpKQotICAgICAgICBhY3R1YWxfaGVhZGVyID0gYWN0dWFsX2ZyYW1lWzA6ZXhwZWN0ZWRf
d2Vic29ja2V0X2hlYWRlcl9zaXplXQotICAgICAgICBhY3R1YWxfcGF5bG9hZCA9IGFjdHVhbF9m
cmFtZVtleHBlY3RlZF93ZWJzb2NrZXRfaGVhZGVyX3NpemU6XQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgJ1x4YzElYycgJSBleHBlY3RlZF93ZWJzb2NrZXRf
cGF5bG9hZF9zaXplLCBhY3R1YWxfaGVhZGVyKQotICAgICAgICBkZWNvbXByZXNzID0gemxpYi5k
ZWNvbXByZXNzb2JqKC04KQotICAgICAgICBkZWNvbXByZXNzZWRfbWVzc2FnZSA9IGRlY29tcHJl
c3MuZGVjb21wcmVzcygKLSAgICAgICAgICAgICAgICBhY3R1YWxfcGF5bG9hZCArICdceDAwXHgw
MFx4ZmZceGZmJykKLSAgICAgICAgZGVjb21wcmVzc2VkX21lc3NhZ2UgKz0gZGVjb21wcmVzcy5m
bHVzaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdF9tZXNzYWdlLCBkZWNvbXByZXNz
ZWRfbWVzc2FnZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4oZGVjb21wcmVzcy51
bnVzZWRfZGF0YSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKGRlY29tcHJlc3Mu
dW5jb25zdW1lZF90YWlsKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9ub19jb250ZXh0
X3Rha2VvdmVyX3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZM
QVRFX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9u
b19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0
ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgZm9yIGkgaW4geHJhbmdlKDMpOgotICAgICAg
ICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgZW5kPUZhbHNlKQot
ICAgICAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgZW5kPVRy
dWUpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAg
ICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhf
V0JJVFMpCi0KLSAgICAgICAgZmlyc3RfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8n
KQotICAgICAgICBmaXJzdF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVT
SCkKLSAgICAgICAgZXhwZWN0ZWQgPSAnXHg0MSVjJyAlIGxlbihmaXJzdF9oZWxsbykKLSAgICAg
ICAgZXhwZWN0ZWQgKz0gZmlyc3RfaGVsbG8KLSAgICAgICAgc2Vjb25kX2hlbGxvID0gY29tcHJl
c3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgc2Vjb25kX2hlbGxvICs9IGNvbXByZXNzLmZs
dXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBzZWNvbmRfaGVsbG8gPSBzZWNvbmRfaGVs
bG9bOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHg4MCVjJyAlIGxlbihzZWNvbmRfaGVsbG8p
Ci0gICAgICAgIGV4cGVjdGVkICs9IHNlY29uZF9oZWxsbwotCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWQgKyBleHBlY3RlZCArIGV4cGVjdGVkLAot
ICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
IGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVudGVkX2JmaW5hbChzZWxmKToKLSAgICAgICAg
ZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBj
b21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3Nh
Z2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
MSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICByZXF1ZXN0
LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLnNldF9iZmluYWwoVHJ1ZSkKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgZW5kPUZhbHNlKQotICAgICAgICBt
c2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnLCBlbmQ9VHJ1ZSkKLQotICAgICAg
ICBleHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAot
ICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16
bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXBy
ZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2go
emxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVs
bG8gKyBjaHIoMCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4NDElYycgJSBsZW4oY29tcHJlc3Nl
ZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotCi0gICAgICAg
IGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxU
X0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNv
bXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21w
cmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIGNv
bXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkICsgY2hyKDApCi0gICAgICAgIGV4cGVj
dGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRfd29ybGQpCi0gICAgICAgIGV4cGVjdGVk
ICs9IGNvbXByZXNzZWRfd29ybGQKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVk
LCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX21lc3NhZ2VfZGVmbGF0ZShzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXBy
ZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVG
TEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29t
cHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9
IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBkYXRhID0gJ1x4YzElYycgJSAobGVuKGNv
bXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXBy
ZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdc
eDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnll
JykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAg
ICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAg
ICBkYXRhLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9yYW5kb21fc2VjdGlv
bihzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0IGEgY29tcHJlc3NlZCBtZXNzYWdlIGZyYWdt
ZW50ZWQgaW50byBsb3RzIG9mIGNodW5rcyBpcwotICAgICAgICBjb3JyZWN0bHkgcmVjZWl2ZWQu
Ci0gICAgICAgICIiIgotCi0gICAgICAgIHJhbmRvbS5zZWVkKGE9MCkKLSAgICAgICAgcGF5bG9h
ZCA9ICcnLmpvaW4oCi0gICAgICAgICAgICBbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZv
ciBpIGluIHhyYW5nZSgxMDAwKV0pCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNz
b2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFU
RUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkID0gY29tcHJl
c3MuY29tcHJlc3MocGF5bG9hZCkKLSAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXBy
ZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQg
PSBjb21wcmVzc2VkX3BheWxvYWRbOi00XQotCi0gICAgICAgICMgRnJhZ21lbnQgdGhlIGNvbXBy
ZXNzZWQgcGF5bG9hZCBpbnRvIGxvdHMgb2YgZnJhbWVzLgotICAgICAgICBieXRlc19jaHVua2Vk
ID0gMAotICAgICAgICBkYXRhID0gJycKLSAgICAgICAgZnJhbWVfY291bnQgPSAwCi0KLSAgICAg
ICAgY2h1bmtfc2l6ZXMgPSBbXQotCi0gICAgICAgIHdoaWxlIGJ5dGVzX2NodW5rZWQgPCBsZW4o
Y29tcHJlc3NlZF9wYXlsb2FkKToKLSAgICAgICAgICAgICMgTWFrZSBzdXJlIHRoYXQKLSAgICAg
ICAgICAgICMgLSB0aGUgbGVuZ3RoIG9mIGNodW5rcyBhcmUgZXF1YWwgb3IgbGVzcyB0aGFuIDEy
NSBzbyB0aGF0IHdlIGNhbgotICAgICAgICAgICAgIyAgIHVzZSAxIG9jdGV0IGxlbmd0aCBoZWFk
ZXIgZm9ybWF0IGZvciBhbGwgZnJhbWVzLgotICAgICAgICAgICAgIyAtIGF0IGxlYXN0IDEwIGNo
dW5rcyBhcmUgY3JlYXRlZC4KLSAgICAgICAgICAgIGNodW5rX3NpemUgPSByYW5kb20ucmFuZGlu
dCgKLSAgICAgICAgICAgICAgICAxLCBtaW4oMTI1LAotICAgICAgICAgICAgICAgICAgICAgICBs
ZW4oY29tcHJlc3NlZF9wYXlsb2FkKSAvIDEwLAotICAgICAgICAgICAgICAgICAgICAgICBsZW4o
Y29tcHJlc3NlZF9wYXlsb2FkKSAtIGJ5dGVzX2NodW5rZWQpKQotICAgICAgICAgICAgY2h1bmtf
c2l6ZXMuYXBwZW5kKGNodW5rX3NpemUpCi0gICAgICAgICAgICBjaHVuayA9IGNvbXByZXNzZWRf
cGF5bG9hZFsKLSAgICAgICAgICAgICAgICBieXRlc19jaHVua2VkOmJ5dGVzX2NodW5rZWQgKyBj
aHVua19zaXplXQotICAgICAgICAgICAgYnl0ZXNfY2h1bmtlZCArPSBjaHVua19zaXplCi0KLSAg
ICAgICAgICAgIGZpcnN0X29jdGV0ID0gMHgwMAotICAgICAgICAgICAgaWYgbGVuKGRhdGEpID09
IDA6Ci0gICAgICAgICAgICAgICAgZmlyc3Rfb2N0ZXQgPSBmaXJzdF9vY3RldCB8IDB4NDIKLSAg
ICAgICAgICAgIGlmIGJ5dGVzX2NodW5rZWQgPT0gbGVuKGNvbXByZXNzZWRfcGF5bG9hZCk6Ci0g
ICAgICAgICAgICAgICAgZmlyc3Rfb2N0ZXQgPSBmaXJzdF9vY3RldCB8IDB4ODAKLQotICAgICAg
ICAgICAgZGF0YSArPSAnJWMlYycgJSAoZmlyc3Rfb2N0ZXQsIGNodW5rX3NpemUgfCAweDgwKQot
ICAgICAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNodW5rKQotCi0gICAgICAgICAgICBmcmFt
ZV9jb3VudCArPSAxCi0KLSAgICAgICAgcHJpbnQgIkNodW5rIHNpemVzOiAlciIgJSBjaHVua19z
aXplcwotICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKGNodW5rX3NpemVzKSA+IDEwKQotCi0g
ICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tf
aHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0
ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgIGNvbW1vbi5Q
RVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRhdGEsIHBlcm1lc3NhZ2VfZGVmbGF0
ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRl
c3RfcmVjZWl2ZV90d29fbWVzc2FnZXMoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5j
b21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwg
emxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG9XZWJTb2Nr
ZXQnKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6
LTRdCi0gICAgICAgIHNwbGl0X3Bvc2l0aW9uID0gbGVuKGNvbXByZXNzZWRfaGVsbG8pIC8gMgot
ICAgICAgICBkYXRhICs9ICdceDQxJWMnICUgKHNwbGl0X3Bvc2l0aW9uIHwgMHg4MCkKLSAgICAg
ICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG9bOnNwbGl0X3Bvc2l0aW9uXSkK
LQotICAgICAgICBkYXRhICs9ICdceDgwJWMnICUgKChsZW4oY29tcHJlc3NlZF9oZWxsbykgLSBz
cGxpdF9wb3NpdGlvbikgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJl
c3NlZF9oZWxsb1tzcGxpdF9wb3NpdGlvbjpdKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5j
b21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwg
emxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGNvbXByZXNzZWRfd29y
bGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxk
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2Vk
X3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycg
JSAobGVuKGNvbXByZXNzZWRfd29ybGQpIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19o
eWJpKGNvbXByZXNzZWRfd29ybGQpCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBk
YXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsg
J0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9O
KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAg
ICAgICAgICAgICBkYXRhLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvV2ViU29ja2V0JywgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0
X3JlY2VpdmVfbWVzc2FnZV9taXhlZF9idHlwZShzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0
IGEgbWVzc2FnZSBjb21wcmVzc2VkIHVzaW5nIGxvdHMgb2YgREVGTEFURSBibG9ja3Mgd2l0aAot
ICAgICAgICB2YXJpb3VzIGZsdXNoIG1vZGUgaXMgY29ycmVjdGx5IHJlY2VpdmVkLgotICAgICAg
ICAiIiIKLQotICAgICAgICByYW5kb20uc2VlZChhPTApCi0gICAgICAgIHBheWxvYWQgPSAnJy5q
b2luKAotICAgICAgICAgICAgW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3IgaSBpbiB4
cmFuZ2UoMTAwMCldKQotCi0gICAgICAgIGNvbXByZXNzID0gTm9uZQotCi0gICAgICAgICMgRnJh
Z21lbnQgdGhlIGNvbXByZXNzZWQgcGF5bG9hZCBpbnRvIGxvdHMgb2YgZnJhbWVzLgotICAgICAg
ICBieXRlc19jaHVua2VkID0gMAotICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSAnJwotCi0g
ICAgICAgIGNodW5rX3NpemVzID0gW10KLSAgICAgICAgbWV0aG9kcyA9IFtdCi0gICAgICAgIHN5
bmNfdXNlZCA9IEZhbHNlCi0gICAgICAgIGZpbmlzaF91c2VkID0gRmFsc2UKLQotICAgICAgICB3
aGlsZSBieXRlc19jaHVua2VkIDwgbGVuKHBheWxvYWQpOgotICAgICAgICAgICAgIyBNYWtlIHN1
cmUgYXQgbGVhc3QgMTAgY2h1bmtzIGFyZSBjcmVhdGVkLgotICAgICAgICAgICAgY2h1bmtfc2l6
ZSA9IHJhbmRvbS5yYW5kaW50KAotICAgICAgICAgICAgICAgIDEsIG1pbigxMDAsIGxlbihwYXls
b2FkKSAtIGJ5dGVzX2NodW5rZWQpKQotICAgICAgICAgICAgY2h1bmtfc2l6ZXMuYXBwZW5kKGNo
dW5rX3NpemUpCi0gICAgICAgICAgICBjaHVuayA9IHBheWxvYWRbYnl0ZXNfY2h1bmtlZDpieXRl
c19jaHVua2VkICsgY2h1bmtfc2l6ZV0KLQotICAgICAgICAgICAgYnl0ZXNfY2h1bmtlZCArPSBj
aHVua19zaXplCi0KLSAgICAgICAgICAgIGlmIGNvbXByZXNzIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAgICAgICB6
bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgemxpYi5ERUZM
QVRFRCwKLSAgICAgICAgICAgICAgICAgICAgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgICAg
ICBpZiBieXRlc19jaHVua2VkID09IGxlbihwYXlsb2FkKToKLSAgICAgICAgICAgICAgICBjb21w
cmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuY29tcHJlc3MoY2h1bmspCi0gICAgICAgICAgICAg
ICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNI
KQotICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9IGNvbXByZXNzZWRfcGF5bG9h
ZFs6LTRdCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG1ldGhvZCA9IHJhbmRv
bS5yYW5kaW50KDAsIDEpCi0gICAgICAgICAgICAgICAgbWV0aG9kcy5hcHBlbmQobWV0aG9kKQot
ICAgICAgICAgICAgICAgIGlmIG1ldGhvZCA9PSAwOgotICAgICAgICAgICAgICAgICAgICBjb21w
cmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuY29tcHJlc3MoY2h1bmspCi0gICAgICAgICAgICAg
ICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19G
TFVTSCkKLSAgICAgICAgICAgICAgICAgICAgc3luY191c2VkID0gVHJ1ZQotICAgICAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21w
cmVzcy5jb21wcmVzcyhjaHVuaykKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXls
b2FkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgICAgICAgICAgICAg
IGNvbXByZXNzID0gTm9uZQotICAgICAgICAgICAgICAgICAgICBmaW5pc2hfdXNlZCA9IFRydWUK
LQotICAgICAgICBwcmludCAiQ2h1bmsgc2l6ZXM6ICVyIiAlIGNodW5rX3NpemVzCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShsZW4oY2h1bmtfc2l6ZXMpID4gMTApCi0gICAgICAgIHByaW50ICJN
ZXRob2RzOiAlciIgJSBtZXRob2RzCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzeW5jX3VzZWQp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaW5pc2hfdXNlZCkKLQotICAgICAgICBzZWxmLmFz
c2VydFRydWUoMTI1IDwgbGVuKGNvbXByZXNzZWRfcGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShsZW4oY29tcHJlc3NlZF9wYXlsb2FkKSA8IDY1NTM2KQotICAgICAgICBkYXRhID0g
J1x4YzJceGZlJyArIHN0cnVjdC5wYWNrKCchSCcsIGxlbihjb21wcmVzc2VkX3BheWxvYWQpKQot
ICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9wYXlsb2FkKQotCi0gICAgICAg
ICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShz
dHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9u
ID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNT
QUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRhdGEsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1
ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGls
LnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0KLWNsYXNzIFBlck1lc3Nh
Z2VDb21wcmVzc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIGZvciBjaGVj
a2luZyBwZXJtZXNzYWdlLWNvbXByZXNzaW9uIGV4dGVuc2lvbi4iIiIKLQotICAgIGRlZiB0ZXN0
X2RlZmxhdGVfcmVzcG9uc2VfcGFyYW1ldGVycyhzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0g
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdF
X0NPTVBSRVNTSU9OX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIo
J21ldGhvZCcsICdkZWZsYXRlJykKLSAgICAgICAgcHJvY2Vzc29yID0gUGVyTWVzc2FnZUNvbXBy
ZXNzRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAgcmVzcG9uc2UgPSBwcm9j
ZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J2RlZmxhdGUnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0
ZXJfdmFsdWUoJ21ldGhvZCcpKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNp
b25QYXJhbWV0ZXIoCi0gICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9F
WFRFTlNJT04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtZXRob2QnLCAnZGVm
bGF0ZScpCi0gICAgICAgIHByb2Nlc3NvciA9IFBlck1lc3NhZ2VDb21wcmVzc0V4dGVuc2lvblBy
b2Nlc3NvcihleHRlbnNpb24pCi0KLSAgICAgICAgZGVmIF9jb21wcmVzc2lvbl9wcm9jZXNzb3Jf
aG9vayhjb21wcmVzc2lvbl9wcm9jZXNzb3IpOgotICAgICAgICAgICAgY29tcHJlc3Npb25fcHJv
Y2Vzc29yLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKDgpCi0gICAgICAgICAgICBjb21wcmVz
c2lvbl9wcm9jZXNzb3Iuc2V0X2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKFRydWUpCi0gICAg
ICAgIHByb2Nlc3Nvci5zZXRfY29tcHJlc3Npb25fcHJvY2Vzc29yX2hvb2soCi0gICAgICAgICAg
ICBfY29tcHJlc3Npb25fcHJvY2Vzc29yX2hvb2spCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vz
c29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgJ2RlZmxhdGU7IGNsaWVudF9tYXhfd2luZG93X2JpdHM9ODsgY2xpZW50X25v
X2NvbnRleHRfdGFrZW92ZXInLAotICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92
YWx1ZSgnbWV0aG9kJykpCi0KLQotY2xhc3MgTWVzc2FnZVRlc3RIaXhpZTc1KHVuaXR0ZXN0LlRl
c3RDYXNlKToKLSAgICAiIiJUZXN0cyBmb3IgZHJhZnQtaGl4aWUtdGhld2Vic29ja2V0cHJvdG9j
b2wtNzYgc3RyZWFtIGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICBt
c2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDAwSGVsbG9ceGZmJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3VuaWNvZGUoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9t
ZXNzYWdlKHJlcXVlc3QsIHUnXHU2NWU1JykKLSAgICAgICAgIyBVKzY1ZTUgaXMgZW5jb2RlZCBh
cyBlNiw5NyxhNSBpbiBVVEYtOAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwXHhlNlx4
OTdceGE1XHhmZicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4MDBIZWxsb1x4ZmZc
eDAwV29ybGQhXHhmZicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRp
bC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dv
cmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3Rf
cmVjZWl2ZV9tZXNzYWdlX3VuaWNvZGUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3RfaGl4aWU3NSgnXHgwMFx4ZTZceDljXHhhY1x4ZmYnKQotICAgICAgICAjIFUrNjcy
YyBpcyBlbmNvZGVkIGFzIGU2LDljLGFjIGluIFVURi04Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodSdcdTY3MmMnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRl
ZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9lcnJvbmVvdXNfdW5pY29kZShzZWxmKToKLSAgICAgICAg
IyBceDgwIGFuZCBceDgxIGFyZSBpbnZhbGlkIGFzIFVURi04LgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4MDBceDgwXHg4MVx4ZmYnKQotICAgICAgICAjIElu
dmFsaWQgY2hhcmFjdGVycyBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aAotICAgICAgICAjIFUrZmZm
ZCBSRVBMQUNFTUVOVCBDSEFSQUNURVIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1J1x1ZmZm
ZFx1ZmZmZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRl
c3RfcmVjZWl2ZV9tZXNzYWdlX2Rpc2NhcmQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3RfaGl4aWU3NSgnXHg4MFx4MDZJR05PUkVceDAwSGVsbG9ceGZmJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1x4MDFESVNSRUdBUkRceGZmXHgw
MFdvcmxkIVx4ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3Js
ZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotCi1jbGFzcyBNZXNzYWdl
UmVjZWl2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyB0aGUgU3RyZWFt
IGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZlci4iIiIKLQotICAgIGRlZiB0ZXN0X3F1ZXVlKHNl
bGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkKLSAgICAg
ICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0KQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVjZWl2ZXIucmVjZWl2ZV9ub3dhaXQoKSkKLQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKCdceDgxXHg4NicgKyBfbWFza19oeWJp
KCdIZWxsbyEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgcmVjZWl2ZXIu
cmVjZWl2ZSgpKQotCi0gICAgZGVmIHRlc3Rfb25tZXNzYWdlKHNlbGYpOgotICAgICAgICBvbm1l
c3NhZ2VfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0KLSAgICAgICAgZGVmIG9ubWVzc2FnZV9oYW5k
bGVyKG1lc3NhZ2UpOgotICAgICAgICAgICAgb25tZXNzYWdlX3F1ZXVlLnB1dChtZXNzYWdlKQot
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3QoKQotICAgICAgICBy
ZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVlc3QsIG9ubWVzc2FnZV9oYW5k
bGVyKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4ODFceDg2JyAr
IF9tYXNrX2h5YmkoJ0hlbGxvIScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyEn
LCBvbm1lc3NhZ2VfcXVldWUuZ2V0KCkpCi0KLQotY2xhc3MgTWVzc2FnZVJlY2VpdmVySGl4aWU3
NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIHRoZSBTdHJlYW1IaXhpZTc1
IGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZlci4iIiIKLQotICAgIGRlZiB0ZXN0X3F1ZXVlKHNl
bGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUo
KQotICAgICAgICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVlc3QpCi0K
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZWNlaXZlci5yZWNlaXZlX25vd2FpdCgp
KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4MDBIZWxsbyFceGZm
JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgcmVjZWl2ZXIucmVjZWl2ZSgp
KQotCi0gICAgZGVmIHRlc3Rfb25tZXNzYWdlKHNlbGYpOgotICAgICAgICBvbm1lc3NhZ2VfcXVl
dWUgPSBRdWV1ZS5RdWV1ZSgpCi0KLSAgICAgICAgZGVmIG9ubWVzc2FnZV9oYW5kbGVyKG1lc3Nh
Z2UpOgotICAgICAgICAgICAgb25tZXNzYWdlX3F1ZXVlLnB1dChtZXNzYWdlKQotCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3RfaGl4aWU3NSgpCi0gICAgICAgIHJl
Y2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2ZXIocmVxdWVzdCwgb25tZXNzYWdlX2hhbmRs
ZXIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygnXHgwMEhlbGxvIVx4
ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyEnLCBvbm1lc3NhZ2VfcXVldWUu
Z2V0KCkpCi0KLQotY2xhc3MgTWVzc2FnZVNlbmRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgot
ICAgICIiIlRlc3RzIHRoZSBTdHJlYW0gY2xhc3MgdXNpbmcgTWVzc2FnZVNlbmRlci4iIiIKLQot
ICAgIGRlZiB0ZXN0X3NlbmQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2Nr
aW5nX3JlcXVlc3QoKQotICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5kZXIocmVx
dWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZCgnV29ybGQnKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDgxXHgwNVdvcmxkJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQotCi0gICAgZGVmIHRlc3Rfc2VuZF9ub3dhaXQoc2VsZik6Ci0gICAgICAgICMgVXNlIGEgcXVl
dWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0ZW4gYnkgTWVzc2FnZVNlbmRlci4KLSAgICAgICAg
IyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkgY2Fubm90IGJlIHVzZWQgaGVyZSBi
ZWNhdXNlCi0gICAgICAgICMgTWVzc2FnZVNlbmRlciBydW5zIGluIGEgc2VwYXJhdGUgdGhyZWFk
LgotICAgICAgICBzZW5kX3F1ZXVlID0gUXVldWUuUXVldWUoKQotCi0gICAgICAgIGRlZiB3cml0
ZShieXRlcyk6Ci0gICAgICAgICAgICBzZW5kX3F1ZXVlLnB1dChieXRlcykKLQotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXRlID0gd3JpdGUKLQotICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VT
ZW5kZXIocmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ0hlbGxvJykKLSAg
ICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdXb3JsZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4ODFceDA1SGVsbG8nLCBzZW5kX3F1ZXVlLmdldCgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDgxXHgwNVdvcmxkJywgc2VuZF9xdWV1ZS5nZXQoKSkKLQotCi1jbGFzcyBNZXNz
YWdlU2VuZGVySGl4aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIHRo
ZSBTdHJlYW1IaXhpZTc1IGNsYXNzIHVzaW5nIE1lc3NhZ2VTZW5kZXIuIiIiCi0KLSAgICBkZWYg
dGVzdF9zZW5kKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1
ZXN0X2hpeGllNzUoKQotICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5kZXIocmVx
dWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZCgnV29ybGQnKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDAwV29ybGRceGZmJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQotCi0gICAgZGVmIHRlc3Rfc2VuZF9ub3dhaXQoc2VsZik6Ci0gICAgICAgICMgVXNlIGEgcXVl
dWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0ZW4gYnkgTWVzc2FnZVNlbmRlci4KLSAgICAgICAg
IyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkgY2Fubm90IGJlIHVzZWQgaGVyZSBi
ZWNhdXNlCi0gICAgICAgICMgTWVzc2FnZVNlbmRlciBydW5zIGluIGEgc2VwYXJhdGUgdGhyZWFk
LgotICAgICAgICBzZW5kX3F1ZXVlID0gUXVldWUuUXVldWUoKQotCi0gICAgICAgIGRlZiB3cml0
ZShieXRlcyk6Ci0gICAgICAgICAgICBzZW5kX3F1ZXVlLnB1dChieXRlcykKLQotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdGUgPSB3cml0ZQotCi0gICAgICAgIHNlbmRlciA9IG1zZ3V0aWwu
TWVzc2FnZVNlbmRlcihyZXF1ZXN0KQotCi0gICAgICAgIHNlbmRlci5zZW5kX25vd2FpdCgnSGVs
bG8nKQotICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ1dvcmxkJykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHgwMEhlbGxvXHhmZicsIHNlbmRfcXVldWUuZ2V0KCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4MDBXb3JsZFx4ZmYnLCBzZW5kX3F1ZXVlLmdldCgpKQotCi0KLWlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbXV4LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC90ZXN0X211eC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ1
OTg5NDRlMDg3Y2JkMmMyYjJjZTJhNGIwODlhYWZkN2EzMzRjMi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbXV4LnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMjA4OSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMK
LSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBtdXggbW9kdWxlLiIiIgotCi1pbXBv
cnQgUXVldWUKLWltcG9ydCBjb3B5Ci1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9wdHBhcnNlCi1p
bXBvcnQgc3RydWN0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCB0aW1lCi1p
bXBvcnQgemxpYgotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBs
b2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG11eAotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlv
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBvcnRlZEZy
YW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IEZy
YW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9iaW5hcnlfZnJhbWUK
LWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NlX2Zy
YW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9z
aW5nX2hhbmRzaGFrZV9ib2R5Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1w
b3J0IHBhcnNlX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBN
dXhFeHRlbnNpb25Qcm9jZXNzb3IKLQotCi1pbXBvcnQgbW9jawotCi0KLV9URVNUX0hFQURFUlMg
PSB7J0hvc3QnOiAnc2VydmVyLmV4YW1wbGUuY29tJywKLSAgICAgICAgICAgICAgICAgJ1VwZ3Jh
ZGUnOiAnd2Vic29ja2V0JywKLSAgICAgICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFk
ZScsCi0gICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleSc6ICdkR2hsSUhOaGJYQnNa
U0J1YjI1alpRPT0nLAotICAgICAgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1WZXJzaW9uJzog
JzEzJywKLSAgICAgICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nfQot
Ci0KLWNsYXNzIF9PdXRnb2luZ0NoYW5uZWxEYXRhKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYpOgotICAgICAgICBzZWxmLm1lc3NhZ2VzID0gW10KLSAgICAgICAgc2VsZi5jb250cm9s
X21lc3NhZ2VzID0gW10KLQotICAgICAgICBzZWxmLmJ1aWxkZXIgPSBtdXguX0lubmVyTWVzc2Fn
ZUJ1aWxkZXIoKQotCi1jbGFzcyBfTW9ja011eENvbm5lY3Rpb24obW9jay5Nb2NrQmxvY2tpbmdD
b25uKToKLSAgICAiIiJNb2NrIGNsYXNzIG9mIG1vZF9weXRob24gY29ubmVjdGlvbiBmb3IgbXV4
LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBtb2NrLk1vY2tCbG9ja2lu
Z0Nvbm4uX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3MgPSBbXQot
ICAgICAgICBzZWxmLl9jaGFubmVsX2RhdGEgPSB7fQotCi0gICAgICAgIHNlbGYuX2N1cnJlbnRf
b3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5nX2ZyYWdtZW50cyA9IFtdCi0KLSAg
ICAgICAgc2VsZi5zZXJ2ZXJfY2xvc2VfY29kZSA9IE5vbmUKLQotICAgIGRlZiB3cml0ZShzZWxm
LCBkYXRhKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgTW9ja0Jsb2NraW5nQ29ubi53cml0ZS4iIiIK
LQotICAgICAgICBzZWxmLl9jdXJyZW50X2RhdGEgPSBkYXRhCi0gICAgICAgIHNlbGYuX3Bvc2l0
aW9uID0gMAotCi0gICAgICAgIGRlZiBfcmVjZWl2ZV9ieXRlcyhsZW5ndGgpOgotICAgICAgICAg
ICAgaWYgc2VsZi5fcG9zaXRpb24gKyBsZW5ndGggPiBsZW4oc2VsZi5fY3VycmVudF9kYXRhKToK
LSAgICAgICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byByZWNlaXZlICVkIGJ5dGVzIGZyb20gZW5jYXBz
dWxhdGVkICcKLSAgICAgICAgICAgICAgICAgICAgJ2ZyYW1lJyAlIGxlbmd0aCkKLSAgICAgICAg
ICAgIGRhdGEgPSBzZWxmLl9jdXJyZW50X2RhdGFbc2VsZi5fcG9zaXRpb246c2VsZi5fcG9zaXRp
b24rbGVuZ3RoXQotICAgICAgICAgICAgc2VsZi5fcG9zaXRpb24gKz0gbGVuZ3RoCi0gICAgICAg
ICAgICByZXR1cm4gZGF0YQotCi0gICAgICAgICMgUGFyc2UgcGh5c2ljYWwgZnJhbWVzIGFuZCBh
c3NlbWJsZSBhIG1lc3NhZ2UgaWYgdGhlIG1lc3NhZ2UgaXMKLSAgICAgICAgIyBmcmFnbWVudGVk
LgotICAgICAgICBvcGNvZGUsIHBheWxvYWQsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MyA9ICgKLSAg
ICAgICAgICAgIHBhcnNlX2ZyYW1lKF9yZWNlaXZlX2J5dGVzLCB1bm1hc2tfcmVjZWl2ZT1GYWxz
ZSkpCi0KLSAgICAgICAgc2VsZi5fcGVuZGluZ19mcmFnbWVudHMuYXBwZW5kKHBheWxvYWQpCi0K
LSAgICAgICAgaWYgc2VsZi5fY3VycmVudF9vcGNvZGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlm
IG9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ1NlbmRpbmcgaW52YWxpZCBjb250aW51YXRpb24gb3Bjb2RlJykKLSAg
ICAgICAgICAgIHNlbGYuX2N1cnJlbnRfb3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBpZiBvcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdTZW5kaW5nIGludmFsaWQgb3Bjb2RlICVkJyAl
IG9wY29kZSkKLSAgICAgICAgaWYgbm90IGZpbjoKLSAgICAgICAgICAgIHJldHVybgotCi0gICAg
ICAgIGlubmVyX2ZyYW1lX2RhdGEgPSAnJy5qb2luKHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzKQot
ICAgICAgICBzZWxmLl9wZW5kaW5nX2ZyYWdtZW50cyA9IFtdCi0gICAgICAgIHNlbGYuX2N1cnJl
bnRfb3Bjb2RlID0gTm9uZQotCi0gICAgICAgICMgSGFuZGxlIGEgY29udHJvbCBtZXNzYWdlIG9u
IHRoZSBwaHlzaWNhbCBjaGFubmVsLgotICAgICAgICAjIFRPRE8oYmFzaGkpOiBTdXBwb3J0IG90
aGVyIG9wY29kZXMgaWYgbmVlZGVkLgotICAgICAgICBpZiBvcGNvZGUgPT0gY29tbW9uLk9QQ09E
RV9DTE9TRToKLSAgICAgICAgICAgIGlmIGxlbihwYXlsb2FkKSA+PSAyOgotICAgICAgICAgICAg
ICAgIHNlbGYuc2VydmVyX2Nsb3NlX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHBheWxvYWRb
OjJdKVswXQotICAgICAgICAgICAgY2xvc2VfYm9keSA9IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFr
ZV9ib2R5KAotICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsICcn
KQotICAgICAgICAgICAgY2xvc2VfZnJhbWUgPSBjcmVhdGVfY2xvc2VfZnJhbWUoY2xvc2VfYm9k
eSwgbWFzaz1UcnVlKQotICAgICAgICAgICAgc2VsZi5wdXRfYnl0ZXMoY2xvc2VfZnJhbWUpCi0g
ICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAjIFBhcnNlIHRoZSBwYXlsb2FkIG9mIHRoZSBt
ZXNzYWdlIG9uIHBoeXNpY2FsIGNoYW5uZWwuCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJh
bWVQYXlsb2FkUGFyc2VyKGlubmVyX2ZyYW1lX2RhdGEpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBw
YXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgaWYgY2hhbm5lbF9pZCA9PSBtdXguX0NP
TlRST0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzLmV4dGVu
ZChsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpKQotICAgICAgICAgICAgcmV0dXJu
Ci0KLSAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2VsZi5fY2hhbm5lbF9kYXRhOgotICAg
ICAgICAgICAgc2VsZi5fY2hhbm5lbF9kYXRhW2NoYW5uZWxfaWRdID0gX091dGdvaW5nQ2hhbm5l
bERhdGEoKQotICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5l
bF9pZF0KLQotICAgICAgICAjIFBhcnNlIGxvZ2ljYWwgZnJhbWVzIGFuZCBhc3NlbWJsZSBhbiBp
bm5lciAobG9naWNhbCkgbWVzc2FnZS4KLSAgICAgICAgKGlubmVyX2ZpbiwgaW5uZXJfcnN2MSwg
aW5uZXJfcnN2MiwgaW5uZXJfcnN2MywgaW5uZXJfb3Bjb2RlLAotICAgICAgICAgaW5uZXJfcGF5
bG9hZCkgPSBwYXJzZXIucmVhZF9pbm5lcl9mcmFtZSgpCi0gICAgICAgIGlubmVyX2ZyYW1lID0g
RnJhbWUoaW5uZXJfZmluLCBpbm5lcl9yc3YxLCBpbm5lcl9yc3YyLCBpbm5lcl9yc3YzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyX29wY29kZSwgaW5uZXJfcGF5bG9hZCkKLSAg
ICAgICAgbWVzc2FnZSA9IGNoYW5uZWxfZGF0YS5idWlsZGVyLmJ1aWxkKGlubmVyX2ZyYW1lKQot
ICAgICAgICBpZiBtZXNzYWdlIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAg
ICBpZiAobWVzc2FnZS5vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9URVhUIG9yCi0gICAgICAgICAg
ICBtZXNzYWdlLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX0JJTkFSWSk6Ci0gICAgICAgICAgICBj
aGFubmVsX2RhdGEubWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UucGF5bG9hZCkKLQotICAgICAgICAg
ICAgc2VsZi5vbl9kYXRhX21lc3NhZ2UobWVzc2FnZS5wYXlsb2FkKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgY2hhbm5lbF9kYXRhLmNvbnRyb2xfbWVzc2FnZXMuYXBwZW5kKAotICAgICAg
ICAgICAgICAgIHsnb3Bjb2RlJzogbWVzc2FnZS5vcGNvZGUsCi0gICAgICAgICAgICAgICAgICdt
ZXNzYWdlJzogbWVzc2FnZS5wYXlsb2FkfSkKLQotICAgIGRlZiBvbl9kYXRhX21lc3NhZ2Uoc2Vs
ZiwgbWVzc2FnZSk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBnZXRfd3JpdHRlbl9jb250cm9s
X2Jsb2NrcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NvbnRyb2xfYmxvY2tzCi0KLSAg
ICBkZWYgZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIHJl
dHVybiBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0ubWVzc2FnZXMKLQotICAgIGRlZiBn
ZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5fY2hhbm5lbF9kYXRhW2NoYW5uZWxfaWRdLmNvbnRyb2xfbWVzc2FnZXMKLQot
Ci1jbGFzcyBfRmFpbE9uV3JpdGVDb25uZWN0aW9uKF9Nb2NrTXV4Q29ubmVjdGlvbik6Ci0gICAg
IiIiU3BlY2ljaWFsaXplZCB2ZXJzaW9uIG9mIF9Nb2NrTXV4Q29ubmVjdGlvbi4gSXRzIHdyaXRl
KCkgbWV0aG9kIHJhaXNlcwotICAgIGFuIGV4Y2VwdGlvbiBmb3IgdGVzdGluZyB3aGVuIGEgZGF0
YSBtZXNzYWdlIGlzIHdyaXR0ZW4uCi0gICAgIiIiCi0KLSAgICBkZWYgb25fZGF0YV9tZXNzYWdl
KHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJPdmVycmlkZSB0byByYWlzZSBhbiBleGNlcHRp
b24uIiIiCi0KLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnRlbnRpb25hbCBmYWlsdXJlJykK
LQotCi1jbGFzcyBfQ2hhbm5lbEV2ZW50KG9iamVjdCk6Ci0gICAgIiIiQSBzdHJ1Y3R1cmUgdGhh
dCByZWNvcmRzIGNoYW5uZWwgZXZlbnRzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgot
ICAgICAgICBzZWxmLnJlcXVlc3QgPSBOb25lCi0gICAgICAgIHNlbGYubWVzc2FnZXMgPSBbXQot
ICAgICAgICBzZWxmLmV4Y2VwdGlvbiA9IE5vbmUKLSAgICAgICAgc2VsZi5jbGllbnRfaW5pdGlh
dGVkX2Nsb3NpbmcgPSBGYWxzZQotCi0KLWNsYXNzIF9NdXhNb2NrRGlzcGF0Y2hlcihvYmplY3Qp
OgotICAgICIiIk1vY2sgY2xhc3Mgb2YgZGlzcGF0Y2guRGlzcGF0Y2hlciBmb3IgbXV4LiIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzID0g
e30KLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAg
IGlmIHJlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scyBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSByZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHNb
MF0KLQotICAgIGRlZiBfZG9fZWNobyhzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6Ci0g
ICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBtZXNzYWdlID0gcmVxdWVzdC53c19zdHJl
YW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UgPT0gTm9uZToKLSAg
ICAgICAgICAgICAgICBjaGFubmVsX2V2ZW50cy5jbGllbnRfaW5pdGlhdGVkX2Nsb3NpbmcgPSBU
cnVlCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBpZiBtZXNzYWdlID09ICdH
b29kYnllJzoKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxfZXZl
bnRzLm1lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKQotICAgICAgICAgICAgIyBlY2hvIGJhY2sKLSAg
ICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShtZXNzYWdlKQotCi0gICAg
ZGVmIF9kb19waW5nKHNlbGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRzKToKLSAgICAgICAgcmVx
dWVzdC53c19zdHJlYW0uc2VuZF9waW5nKCdQaW5nIScpCi0KLSAgICBkZWYgX2RvX3Bpbmdfd2hp
bGVfaGVsbG9fd29ybGQoc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMpOgotICAgICAgICBy
ZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ0hlbGxvICcsIGVuZD1GYWxzZSkKLSAgICAg
ICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5nKCdQaW5nIScpCi0gICAgICAgIHJlcXVlc3Qu
d3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnV29ybGQhJywgZW5kPVRydWUpCi0KLSAgICBkZWYgX2Rv
X3R3b19waW5nX3doaWxlX2hlbGxvX3dvcmxkKHNlbGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRz
KToKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKCdIZWxsbyAnLCBlbmQ9
RmFsc2UpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfcGluZygnUGluZyEnKQotICAg
ICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BvbmchJykKLSAgICAgICAgcmVxdWVz
dC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKCdXb3JsZCEnLCBlbmQ9VHJ1ZSkKLQotICAgIGRlZiB0
cmFuc2Zlcl9kYXRhKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRz
W3JlcXVlc3QuY2hhbm5lbF9pZF0gPSBfQ2hhbm5lbEV2ZW50KCkKLSAgICAgICAgc2VsZi5jaGFu
bmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLnJlcXVlc3QgPSByZXF1ZXN0Ci0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgIyBOb3RlOiBtb3JlIGhhbmRsZXIgd2lsbCBiZSBhZGRlZC4K
LSAgICAgICAgICAgIGlmIHJlcXVlc3QudXJpLmVuZHN3aXRoKCdlY2hvJyk6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fZG9fZWNobyhyZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdKQotICAgICAgICAgICAg
ZWxpZiByZXF1ZXN0LnVyaS5lbmRzd2l0aCgncGluZycpOgotICAgICAgICAgICAgICAgIHNlbGYu
X2RvX3BpbmcocmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2hh
bm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXSkKLSAgICAgICAgICAgIGVsaWYgcmVxdWVz
dC51cmkuZW5kc3dpdGgoJ3R3b19waW5nX3doaWxlX2hlbGxvX3dvcmxkJyk6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fZG9fdHdvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQoCi0gICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QsIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXSkK
LSAgICAgICAgICAgIGVsaWYgcmVxdWVzdC51cmkuZW5kc3dpdGgoJ3Bpbmdfd2hpbGVfaGVsbG9f
d29ybGQnKToKLSAgICAgICAgICAgICAgICBzZWxmLl9kb19waW5nX3doaWxlX2hlbGxvX3dvcmxk
KAotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LCBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVl
c3QuY2hhbm5lbF9pZF0pCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ0Nhbm5vdCBoYW5kbGUgcGF0aCAlcicgJSByZXF1ZXN0LnBhdGgpCi0gICAg
ICAgICAgICBpZiBub3QgcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgICAg
ICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKLSAgICAgICAgZXhjZXB0IENv
bm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2VsZi5jaGFubmVs
X2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLmV4Y2VwdGlvbiA9IGUKLSAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5j
aGFubmVsX2lkXS5leGNlcHRpb24gPSBlCi0gICAgICAgICAgICByYWlzZQotCi0KLWRlZiBfY3Jl
YXRlX21vY2tfcmVxdWVzdChjb25uZWN0aW9uPU5vbmUsIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNp
b25zPU5vbmUpOgotICAgIGlmIGNvbm5lY3Rpb24gaXMgTm9uZToKLSAgICAgICAgY29ubmVjdGlv
biA9IF9Nb2NrTXV4Q29ubmVjdGlvbigpCi0KLSAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVz
dCh1cmk9Jy9lY2hvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzX2lu
PV9URVNUX0hFQURFUlMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlv
bj1jb25uZWN0aW9uKQotICAgIHJlcXVlc3Qud3Nfc3RyZWFtID0gU3RyZWFtKHJlcXVlc3QsIG9w
dGlvbnM9U3RyZWFtT3B0aW9ucygpKQotICAgIHJlcXVlc3QubXV4X3Byb2Nlc3NvciA9IE11eEV4
dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21t
b24uTVVYX0VYVEVOU0lPTikpCi0gICAgaWYgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnMgaXMg
bm90IE5vbmU6Ci0gICAgICAgIHJlcXVlc3QubXV4X3Byb2Nlc3Nvci5zZXRfZXh0ZW5zaW9ucyhs
b2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucykKLSAgICByZXF1ZXN0Lm11eF9wcm9jZXNzb3Iuc2V0
X3F1b3RhKDggKiAxMDI0KQotICAgIHJldHVybiByZXF1ZXN0Ci0KLQotZGVmIF9jcmVhdGVfYWRk
X2NoYW5uZWxfcmVxdWVzdF9mcmFtZShjaGFubmVsX2lkLCBlbmNvZGluZywgZW5jb2RlZF9oYW5k
c2hha2UpOgotICAgICMgQWxsb3cgaW52YWxpZCBlbmNvZGluZyBmb3IgdGVzdGluZy4KLSAgICBm
aXJzdF9ieXRlID0gKChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA8PCA1KSB8
IGVuY29kaW5nKQotICAgIHBheWxvYWQgPSAoY2hyKGZpcnN0X2J5dGUpICsKLSAgICAgICAgICAg
ICAgIG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKwotICAgICAgICAgICAgICAg
bXV4Ll9lbmNvZGVfbnVtYmVyKGxlbihlbmNvZGVkX2hhbmRzaGFrZSkpICsKLSAgICAgICAgICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlKQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAot
ICAgICAgICAobXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hBTk5FTF9JRCkg
KyBwYXlsb2FkKSwgbWFzaz1UcnVlKQotCi0KLWRlZiBfY3JlYXRlX2Ryb3BfY2hhbm5lbF9mcmFt
ZShjaGFubmVsX2lkLCBjb2RlPU5vbmUsIG1lc3NhZ2U9JycpOgotICAgIHBheWxvYWQgPSBtdXgu
X2NyZWF0ZV9kcm9wX2NoYW5uZWwoY2hhbm5lbF9pZCwgY29kZSwgbWVzc2FnZSkKLSAgICByZXR1
cm4gY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICAgICAgKG11eC5fZW5jb2RlX2NoYW5uZWxfaWQo
bXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgcGF5bG9hZCksIG1hc2s9VHJ1ZSkKLQotCi1kZWYg
X2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEp
OgotICAgIHBheWxvYWQgPSBtdXguX2NyZWF0ZV9mbG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVw
bGVuaXNoZWRfcXVvdGEpCi0gICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCi0gICAgICAg
IChtdXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5fQ09OVFJPTF9DSEFOTkVMX0lEKSArIHBheWxv
YWQpLCBtYXNrPVRydWUpCi0KLQotZGVmIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
LCBtZXNzYWdlLCBvcGNvZGU9Y29tbW9uLk9QQ09ERV9CSU5BUlksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbj1UcnVlLCByc3YxPUZhbHNlLCByc3YyPUZhbHNlLCByc3YzPUZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrPVRydWUpOgotICAgIGJpdHMgPSBjaHIoKGZp
biA8PCA3KSB8IChyc3YxIDw8IDYpIHwgKHJzdjIgPDwgNSkgfCAocnN2MyA8PCA0KSB8IG9wY29k
ZSkKLSAgICBwYXlsb2FkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArIGJp
dHMgKyBtZXNzYWdlCi0gICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUocGF5bG9hZCwgbWFz
az1UcnVlKQotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJywgZXh0
ZW5zaW9ucz1Ob25lKToKLSAgICBoZWFkZXJzID0gKAotICAgICAgICAnR0VUICVzIEhUVFAvMS4x
XHJcbicKLSAgICAgICAgJ0hvc3Q6IHNlcnZlci5leGFtcGxlLmNvbVxyXG4nCi0gICAgICAgICdD
b25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAgICAgJ09yaWdpbjogaHR0cDovL2V4YW1wbGUu
Y29tXHJcbicpICUgcGF0aAotICAgIGlmIGV4dGVuc2lvbnM6Ci0gICAgICAgIGhlYWRlcnMgKz0g
JyVzOiAlcycgJSAoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05T
X0hFQURFUiwgZXh0ZW5zaW9ucykKLSAgICByZXR1cm4gaGVhZGVycwotCi0KLWNsYXNzIE11eFRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIG11eCBtb2R1bGUu
IiIiCi0KLSAgICBkZWYgdGVzdF9jaGFubmVsX2lkX2RlY29kZShzZWxmKToKLSAgICAgICAgZGF0
YSA9ICdceDAwXHgwMVx4YmZceGZmXHhkZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZicKLSAgICAg
ICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgY2hh
bm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDAsIGNoYW5uZWxfaWQpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFu
bmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBjaGFubmVsX2lkKQotICAgICAg
ICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMiAqKiAxNCAtIDEsIGNoYW5uZWxfaWQpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBw
YXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyICoqIDIx
IC0gMSwgY2hhbm5lbF9pZCkKLSAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5u
ZWxfaWQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIgKiogMjkgLSAxLCBjaGFubmVsX2lk
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhKSwgcGFyc2VyLl9yZWFkX3Bvc2l0
aW9uKQotCi0gICAgZGVmIHRlc3RfY2hhbm5lbF9pZF9lbmNvZGUoc2VsZik6Ci0gICAgICAgIGVu
Y29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4MDAnLCBlbmNvZGVkKQotICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5l
bF9pZCgyICoqIDE0IC0gMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhiZlx4ZmYnLCBl
bmNvZGVkKQotICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgyICoqIDE0
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGMwQFx4MDAnLCBlbmNvZGVkKQotICAgICAg
ICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgyICoqIDIxIC0gMSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnXHhkZlx4ZmZceGZmJywgZW5jb2RlZCkKLSAgICAgICAgZW5jb2Rl
ZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAqKiAyMSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnXHhlMCBceDAwXHgwMCcsIGVuY29kZWQpCi0gICAgICAgIGVuY29kZWQgPSBtdXguX2Vu
Y29kZV9jaGFubmVsX2lkKDIgKiogMjkgLSAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdc
eGZmXHhmZlx4ZmZceGZmJywgZW5jb2RlZCkKLSAgICAgICAgIyBjaGFubmVsX2lkIGlzIHRvbyBs
YXJnZQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBtdXguX2VuY29kZV9jaGFubmVsX2lkLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAyICoqIDI5KQotCi0gICAgZGVmIHRlc3RfcmVhZF9tdWx0aXBsZV9jb250cm9sX2Js
b2NrcyhzZWxmKToKLSAgICAgICAgIyBVc2UgQWRkQ2hhbm5lbFJlcXVlc3QgYmVjYXVzZSBpdCBj
YW4gY29udGFpbiBhcmJpdHJhcnkgbGVuZ3RoIG9mIGRhdGEKLSAgICAgICAgZGF0YSA9ICgnXHgw
MFx4MDFceDAxYScKLSAgICAgICAgICAgICAgICAnXHgwMFx4MDJceDdkJXMnCi0gICAgICAgICAg
ICAgICAgJ1x4MDBceDAzXHg3ZVx4ZmZceGZmJXMnCi0gICAgICAgICAgICAgICAgJ1x4MDBceDA0
XHg3Zlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDBceDAwJXMnKSAlICgKLSAgICAgICAgICAg
ICdhJyAqIDB4N2QsICdiJyAqIDB4ZmZmZiwgJ2MnICogMHgxMDAwMCkKLSAgICAgICAgcGFyc2Vy
ID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgYmxvY2tzID0gbGlz
dChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDQsIGxlbihibG9ja3MpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BD
T0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1swXS5vcGNvZGUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgbGVuKGJsb2Nrc1swXS5lbmNvZGVkX2hhbmRzaGFrZSkpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCwgYmxvY2tz
WzFdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBibG9ja3NbMV0uY2hhbm5l
bF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgweDdkLCBsZW4oYmxvY2tzWzFdLmVuY29k
ZWRfaGFuZHNoYWtlKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09E
RV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMl0ub3Bjb2RlKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDMsIGJsb2Nrc1syXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDB4ZmZmZiwgbGVuKGJsb2Nrc1syXS5lbmNvZGVkX2hhbmRzaGFrZSkpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCwgYmxv
Y2tzWzNdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0LCBibG9ja3NbM10uY2hh
bm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgweDEwMDAwLCBsZW4oYmxvY2tzWzNd
LmVuY29kZWRfaGFuZHNoYWtlKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRh
KSwgcGFyc2VyLl9yZWFkX3Bvc2l0aW9uKQotCi0gICAgZGVmIHRlc3RfcmVhZF9hZGRfY2hhbm5l
bF9yZXF1ZXN0KHNlbGYpOgotICAgICAgICBkYXRhID0gJ1x4MDBceDAxXHgwMWEnCi0gICAgICAg
IHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGJsb2Nr
cyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCwgYmxvY2tzWzBdLm9w
Y29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzWzBdLmVuY29kZWRfaGFuZHNo
YWtlKSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfZHJvcF9jaGFubmVsKHNlbGYpOgotICAgICAgICBk
YXRhID0gJ1x4NjBceDAxXHgwMCcKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxv
YWRQYXJzZXIoZGF0YSkKLSAgICAgICAgYmxvY2tzID0gbGlzdChwYXJzZXIucmVhZF9jb250cm9s
X2Jsb2NrcygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihibG9ja3MpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwsIGJsb2Nrc1swXS5v
cGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgYmxvY2tzWzBdLmRyb3BfY29k
ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4oYmxvY2tzWzBdLmRyb3BfbWVzc2Fn
ZSkpCi0KLSAgICAgICAgZGF0YSA9ICdceDYwXHgwMlx4MDlceDAzXHhlOFN1Y2Nlc3MnCi0gICAg
ICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGJs
b2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBi
bG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9P
UENPREVfRFJPUF9DSEFOTkVMLCBibG9ja3NbMF0ub3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEwMDAsIGJsb2Nrc1swXS5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1N1Y2Nlc3MnLCBibG9ja3NbMF0uZHJvcF9tZXNzYWdlKQotCi0gICAgICAgICMgUmVhc29u
IGlzIHRvbyBzaG9ydC4KLSAgICAgICAgZGF0YSA9ICdceDYwXHgwMVx4MDFceDAwJwotICAgICAg
ICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhtdXguUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIGxhbWJkYTogbGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKSkK
LQotICAgIGRlZiB0ZXN0X3JlYWRfZmxvd19jb250cm9sKHNlbGYpOgotICAgICAgICBkYXRhID0g
J1x4NDBceDAxXHgwMicKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJz
ZXIoZGF0YSkKLSAgICAgICAgYmxvY2tzID0gbGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2Nr
cygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihibG9ja3MpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wsIGJsb2Nrc1swXS5vcGNvZGUp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgYmxvY2tzWzBdLnNlbmRfcXVvdGEpCi0KLSAg
ICBkZWYgdGVzdF9yZWFkX25ld19jaGFubmVsX3Nsb3Qoc2VsZik6Ci0gICAgICAgIGRhdGEgPSAn
XHg4MFx4MDFceDAyXHgwMlx4MDMnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXls
b2FkUGFyc2VyKGRhdGEpCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IEltcGxlbWVudAotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhtdXguUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIGxhbWJkYTogbGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2Nr
cygpKSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfaW52YWxpZF9udW1iZXJfZmllbGRfaW5fY29udHJv
bF9ibG9jayhzZWxmKToKLSAgICAgICAgIyBObyBudW1iZXIgZmllbGQuCi0gICAgICAgIGRhdGEg
PSAnJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVy
KQotCi0gICAgICAgICMgVGhlIGxhc3QgdHdvIGJ5dGVzIGFyZSBtaXNzaW5nLgotICAgICAgICBk
YXRhID0gJ1x4N2UnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2Vy
KGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVh
ZF9udW1iZXIpCi0KLSAgICAgICAgIyBNaXNzaW5nIHRoZSBsYXN0IG9uZSBieXRlLgotICAgICAg
ICBkYXRhID0gJ1x4N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwJwotICAgICAgICBwYXJz
ZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0gICAgICAgICMgVGhl
IGxlbmd0aCBvZiBudW1iZXIgZmllbGQgaXMgdG9vIGxhcmdlLgotICAgICAgICBkYXRhID0gJ1x4
N2ZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZicKLSAgICAgICAgcGFyc2VyID0gbXV4
Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
VmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAgICAjIFRoZSBtc2Igb2Yg
dGhlIGZpcnN0IGJ5dGUgaXMgc2V0LgotICAgICAgICBkYXRhID0gJ1x4ODAnCi0gICAgICAgIHBh
cnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBV
c2luZyAzIGJ5dGVzIGVuY29kaW5nIGZvciAxMjUuCi0gICAgICAgIGRhdGEgPSAnXHg3ZVx4MDBc
eDdkJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVy
KQotCi0gICAgICAgICMgVXNpbmcgOSBieXRlcyBlbmNvZGluZyBmb3IgMHhmZmZmCi0gICAgICAg
IGRhdGEgPSAnXHg3Zlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4ZmZceGZmJwotICAgICAgICBw
YXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0gICAgZGVmIHRl
c3RfcmVhZF9pbnZhbGlkX3NpemVfYW5kX2NvbnRlbnRzKHNlbGYpOgotICAgICAgICAjIE9ubHkg
Y29udGFpbiBudW1iZXIgZmllbGQuCi0gICAgICAgIGRhdGEgPSAnXHgwMScKLSAgICAgICAgcGFy
c2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMobXV4LlBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXJzZXIuX3JlYWRfc2l6ZV9hbmRfY29udGVudHMpCi0KLSAgICBkZWYgdGVzdF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9uc2Uoc2VsZik6Ci0gICAgICAgIGRhdGEgPSBtdXguX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZShjaGFubmVsX2lkPTEsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT0nRm9vQmFy
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29k
aW5nPTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWplY3RlZD1GYWxzZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgyMFx4MDFceDA2Rm9v
QmFyJywgZGF0YSkKLQotICAgICAgICBkYXRhID0gbXV4Ll9jcmVhdGVfYWRkX2NoYW5uZWxfcmVz
cG9uc2UoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9J0hlbGxvJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPTEsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3RlZD1UcnVlKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdceDMxXHgwMlx4MDVIZWxsbycsIGRhdGEpCi0KLSAgICBkZWYg
dGVzdF9jcmVhdGVfZHJvcF9jaGFubmVsKHNlbGYpOgotICAgICAgICBkYXRhID0gbXV4Ll9jcmVh
dGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQ9MSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHg2MFx4MDFceDAwJywgZGF0YSkKLQotICAgICAgICBkYXRhID0gbXV4Ll9jcmVhdGVfZHJvcF9j
aGFubmVsKGNoYW5uZWxfaWQ9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb2RlPTIwMDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZT0nZXJyb3InKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDYwXHgwMVx4MDdc
eDA3XHhkMGVycm9yJywgZGF0YSkKLQotICAgICAgICAjIHJlYXNvbiBtdXN0IGJlIGVtcHR5IGlm
IGNvZGUgaXMgTm9uZQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBtdXguX2NyZWF0ZV9kcm9wX2NoYW5uZWwsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIDEsIE5vbmUsICdGb29CYXInKQotCi0gICAgZGVmIHRlc3RfcGFy
c2VfcmVxdWVzdF90ZXh0KHNlbGYpOgotICAgICAgICByZXF1ZXN0X3RleHQgPSBfY3JlYXRlX3Jl
cXVlc3RfaGVhZGVyKCkKLSAgICAgICAgY29tbWFuZCwgcGF0aCwgdmVyc2lvbiwgaGVhZGVycyA9
IG11eC5fcGFyc2VfcmVxdWVzdF90ZXh0KHJlcXVlc3RfdGV4dCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnR0VUJywgY29tbWFuZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2VjaG8n
LCBwYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIVFRQLzEuMScsIHZlcnNpb24pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywgbGVuKGhlYWRlcnMpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdzZXJ2ZXIuZXhhbXBsZS5jb20nLCBoZWFkZXJzWydIb3N0J10pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ2h0dHA6Ly9leGFtcGxlLmNvbScsIGhlYWRlcnNbJ09yaWdpbidd
KQotCi0KLWNsYXNzIE11eEhhbmRsZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRl
ZiB0ZXN0X2FkZF9jaGFubmVsKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2Nr
X3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAg
ICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikK
LSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hh
bm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJ
RU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRl
cihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2Fk
ZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29k
aW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0
KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3Jl
YXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVx
dWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNo
YW5uZWxfaWQ9MywgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVu
Y29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFk
ZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93
X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTMsIG1lc3NhZ2U9J1dvcmxkJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBt
ZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Ci0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdl
PSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdHb29k
YnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxf
ZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNo
ZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
WydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFsnV29ybGQnXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sz
XS5tZXNzYWdlcykKLSAgICAgICAgIyBDaGFubmVsIDIKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxs
bycsIG1lc3NhZ2VzWzBdKQotICAgICAgICAjIENoYW5uZWwgMwotICAgICAgICBtZXNzYWdlcyA9
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygzKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1dvcmxkJywgbWVzc2FnZXNbMF0pCi0gICAgICAgIGNvbnRyb2xfYmxvY2tzID0gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgIyBUaGVyZSBz
aG91bGQgYmUgOCBjb250cm9sIGJsb2NrczoKLSAgICAgICAgIyAgIC0gMSBOZXdDaGFubmVsU2xv
dAotICAgICAgICAjICAgLSAyIEFkZENoYW5uZWxSZXNwb25zZXMgZm9yIGNoYW5uZWwgaWQgMiBh
bmQgMwotICAgICAgICAjICAgLSA2IEZsb3dDb250cm9scyBmb3IgY2hhbm5lbCBpZCAxIChpbml0
aWFsaXplKSwgJ0hlbGxvJywgJ1dvcmxkJywKLSAgICAgICAgIyAgICAgYW5kIDMgJ0dvb2RieWUn
cwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDksIGxlbihjb250cm9sX2Jsb2NrcykpCi0KLSAg
ICBkZWYgdGVzdF9waHlzaWNhbF9jb25uZWN0aW9uX3dyaXRlX2ZhaWx1cmUoc2VsZik6Ci0gICAg
ICAgICMgVXNlIF9GYWlsT25Xcml0ZUNvbm5lY3Rpb24uCi0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX21vY2tfcmVxdWVzdChjb25uZWN0aW9uPV9GYWlsT25Xcml0ZUNvbm5lY3Rpb24oKSkKLQot
ICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hh
bmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4
X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgICAgICMgTGV0IHRoZSB3b3JrZXIgZWNobyBiYWNrICdI
ZWxsbycuIEl0IGNhdXNlcyBfRmFpbE9uV3JpdGVDb25uZWN0aW9uCi0gICAgICAgICMgcmFpc2lu
ZyBhbiBleGNlcHRpb24uCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0g
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdI
ZWxsbycpKQotCi0gICAgICAgICMgTGV0IHRoZSB3b3JrZXIgZXhpdC4gVGhpcyB3aWxsIGJlIHVu
bmVjZXNzYXJ5IHdoZW4KLSAgICAgICAgIyBfTG9naWNhbENvbm5lY3Rpb24ud3JpdGUoKSBpcyBj
aGFuZ2VkIHRvIHRocm93IGFuIGV4Y2VwdGlvbiBpZgotICAgICAgICAjIHdva2UgdXAgYnkgb25f
d3JpdGVyX2RvbmUuCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29k
YnllJykpCi0KLSAgICAgICAgIyBBbGwgdGhyZWFkcyBzaG91bGQgYmUgZG9uZS4KLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQot
Ci0gICAgZGVmIHRlc3Rfc2VuZF9ibG9ja2VkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRj
aGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlz
cGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgICAgIG11eF9oYW5k
bGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9U
UywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FV
T1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3Jl
cXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9
IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxf
aWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRf
aGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFu
bmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBPbiByZWNlaXZpbmcgdGhpcyAnSGVsbG8nLCB0aGUg
c2VydmVyIHRyaWVzIHRvIGVjaG8gYmFjayAnSGVsbG8nLAotICAgICAgICAjIGJ1dCBpdCB3aWxs
IGJlIGJsb2NrZWQgc2luY2UgdGhlcmUncyBubyBzZW5kIHF1b3RhIGF2YWlsYWJsZSBmb3IgdGhl
Ci0gICAgICAgICMgY2hhbm5lbCAyLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT0nSGVsbG8nKSkKLQotICAgICAgICAjIFdhaXQgdW50aWwgdGhlIHdvcmtlciBpcyBibG9j
a2VkIGR1ZSB0byBzZW5kIHF1b3RhIHNob3J0YWdlLgotICAgICAgICB0aW1lLnNsZWVwKDEpCi0K
LSAgICAgICAgIyBDbG9zZSB0aGUgY2hhbm5lbCAyLiBUaGUgd29ya2VyIHNob3VsZCBiZSBub3Rp
ZmllZCBvZiB0aGUgZW5kIG9mCi0gICAgICAgICMgd3JpdGVyIHRocmVhZCBhbmQgc3RvcCB3YWl0
aW5nIGZvciBzZW5kIHF1b3RhIHRvIGJlIHJlcGxlbmlzaGVkLgotICAgICAgICBkcm9wX2NoYW5u
ZWwgPSBfY3JlYXRlX2Ryb3BfY2hhbm5lbF9mcmFtZShjaGFubmVsX2lkPTIpCi0KLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhkcm9wX2NoYW5uZWwpCi0KLSAgICAgICAgIyBN
YWtlIHN1cmUgdGhlIGNoYW5uZWwgMSBpcyBhbHNvIGNsb3NlZC4KLSAgICAgICAgZHJvcF9jaGFu
bmVsID0gX2NyZWF0ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hhbm5lbF9pZD0xKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGRyb3BfY2hhbm5lbCkKLQotICAgICAgICAjIEFs
bCB0aHJlYWRzIHNob3VsZCBiZSBkb25lLgotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hh
bm5lbF9kZWx0YV9lbmNvZGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0g
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
Ci0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCkKLQotICAgICAgICBkZWx0YSA9ICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuXHJcbicKLSAg
ICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9m
cmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5k
c2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2No
YW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29u
dHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53
YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsn
SGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAg
bWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5u
ZWxfZGVsdGFfZW5jb2Rpbmdfb3ZlcnJpZGUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNo
ZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNw
YXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVy
LmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RB
X0ZPUl9DTElFTlQpCi0KLSAgICAgICAgIyBPdmVycmlkZSBTZWMtV2ViU29ja2V0LVByb3RvY29s
LgotICAgICAgICBkZWx0YSA9ICgnR0VUIC9lY2hvIEhUVFAvMS4xXHJcbicKLSAgICAgICAgICAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHgtZm9vXHJcbicKLSAgICAgICAgICAgICAg
ICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0x
LCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9j
cmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3Nh
Z2VzKQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9t
ZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2FnZXNbMF0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ3gtZm9vJywKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRj
aGVyLmNoYW5uZWxfZXZlbnRzWzJdLnJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVz
dF9hZGRfY2hhbm5lbF9kZWx0YV9hZnRlcl9pZGVudGl0eShzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2Nr
RGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVl
c3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4
X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVM
X1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJ
QUxfUVVPVEFfRk9SX0NMSUVOVCkKLSAgICAgICAgIyBTZWMtV2ViU29ja2V0LVByb3RvY29sIGlz
IGRpZmZlcmVudCBmcm9tIGNsaWVudCdzIG9wZW5pbmcgaGFuZHNoYWtlCi0gICAgICAgICMgb2Yg
dGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IFJlbW92ZSBV
cGdyYWRlLCBDb25uZWN0aW9uLCBTZWMtV2ViU29ja2V0LUtleSBhbmQKLSAgICAgICAgIyBTZWMt
V2ViU29ja2V0LVZlcnNpb24uCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gKAotICAgICAg
ICAgICAgJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAgICAgICAnSG9zdDogc2VydmVy
LmV4YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiB4
LWZvb1xyXG4nCi0gICAgICAgICAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgICAg
ICAgICAnT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICAgICAgICAgJ1xyXG4n
KQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1
ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBm
bG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlz
aGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19j
b250cm9sKQotCi0gICAgICAgIGRlbHRhID0gJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG5cclxuJwot
ICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0zLCBlbmNvZGluZz0xLCBlbmNvZGVkX2hh
bmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRf
Y2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19j
b250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0zLCBtZXNzYWdlPSdXb3JsZCcpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVz
c2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0n
R29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0nR29vZGJ5
ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2Rv
bmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBkaXNwYXRjaGVy
LmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsn
SGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChbJ1dvcmxkJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbM10u
bWVzc2FnZXMpCi0gICAgICAgICMgQ2hhbm5lbCAyCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVz
dC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8n
LCBtZXNzYWdlc1swXSkKLSAgICAgICAgIyBDaGFubmVsIDMKLSAgICAgICAgbWVzc2FnZXMgPSBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdX
b3JsZCcsIG1lc3NhZ2VzWzBdKQotICAgICAgICAjIEhhbmRzaGFrZSBiYXNlIHNob3VsZCBiZSB1
cGRhdGVkLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgJ3gtZm9vJywK
LSAgICAgICAgICAgIG11eF9oYW5kbGVyLl9oYW5kc2hha2VfYmFzZS5faGVhZGVyc1snU2VjLVdl
YlNvY2tldC1Qcm90b2NvbCddKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFfcmVt
b3ZlX2hlYWRlcihzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0
KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11
eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAg
IG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xv
dHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLSAg
ICAgICAgIyBPdmVycmlkZSBoYW5kc2hha2UgZGVsdGEgYmFzZS4KLSAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2UgPSAoCi0gICAgICAgICAgICAnR0VUIC9lY2hvIEhUVFAvMS4xXHJcbicKLSAgICAg
ICAgICAgICdIb3N0OiBzZXJ2ZXIuZXhhbXBsZS5jb21cclxuJwotICAgICAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtUHJvdG9jb2w6IHgtZm9vXHJcbicKLSAgICAgICAgICAgICdDb25uZWN0aW9uOiBV
cGdyYWRlXHJcbicKLSAgICAgICAgICAgICdPcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4n
Ci0gICAgICAgICAgICAnXHJcbicpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3Jl
YXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIs
IGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRz
aGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9y
ZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBSZW1vdmUgU2VjLVdlYlNv
Y2tldC1Qcm90b2NvbCBoZWFkZXIuCi0gICAgICAgIGRlbHRhID0gKCdHRVQgL2VjaG8gSFRUUC8x
LjFcclxuJwotICAgICAgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDonCi0gICAg
ICAgICAgICAgICAgICdcclxuJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVh
dGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9Mywg
ZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2Nv
bnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1
b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9s
KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0nV29ybGQnKSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTMsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4
X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNb
Ml0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydXb3JsZCddLCBkaXNwYXRj
aGVyLmNoYW5uZWxfZXZlbnRzWzNdLm1lc3NhZ2VzKQotICAgICAgICAjIENoYW5uZWwgMgotICAg
ICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygy
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2FnZXNbMF0pCi0gICAgICAgICMgQ2hhbm5lbCAz
Ci0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3Nh
Z2VzKDMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtZXNzYWdlc1swXSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgICd4LWZvbycsCi0gICAgICAgICAgICBkaXNwYXRjaGVy
LmNoYW5uZWxfZXZlbnRzWzJdLnJlcXVlc3Qud3NfcHJvdG9jb2wpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoCi0gICAgICAgICAgICBOb25lLAotICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFu
bmVsX2V2ZW50c1szXS5yZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfYWRkX2No
YW5uZWxfZGVsdGFfZW5jb2RpbmdfcGVybWVzc2FnZV9jb21wcmVzcyhzZWxmKToKLSAgICAgICAg
IyBFbmFibGUgcGVybWVzc2FnZSBjb21wcmVzcyBleHRlbnNpb24gb24gdGhlIGltcGxpY2l0bHkg
b3BlbmVkIGNoYW5uZWwuCi0gICAgICAgIGV4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5z
aW9ucygKLSAgICAgICAgICAgICclczsgbWV0aG9kPWRlZmxhdGUnICUgY29tbW9uLlBFUk1FU1NB
R0VfQ09NUFJFU1NJT05fRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2Nr
X3JlcXVlc3QoCi0gICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1leHRlbnNp
b25zKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAg
bXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAg
ICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9z
bG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQot
Ci0gICAgICAgIGRlbHRhID0gJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG5cclxuJwotICAgICAgICBh
ZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAot
ICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1k
ZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9y
ZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjApCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCBjb21wcmVzc2Vk
ICdIZWxsbycgb24gbG9naWNhbCBjaGFubmVsIDEgYW5kIDIuCi0gICAgICAgIGNvbXByZXNzID0g
emxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9O
LCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVs
bG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTEsIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByc3YxPVRydWUpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT1jb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJzdjE9VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dv
b2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUn
KSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25l
KHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3Bh
dGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAg
ICAgICAjIFdyaXR0ZW4gJ0hlbGxvJ3Mgc2hvdWxkIGJlIGNvbXByZXNzZWQuCi0gICAgICAgIG1l
c3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDEpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb21wcmVzc2VkX2hlbGxvLCBtZXNzYWdlc1swXSkKLSAgICAgICAgbWVzc2FnZXMg
PSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2VzWzBdKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5u
ZWxfZGVsdGFfZW5jb2RpbmdfcmVtb3ZlX2V4dGVuc2lvbnMoc2VsZik6Ci0gICAgICAgICMgRW5h
YmxlIHBlcm1lc3NhZ2UgY29tcHJlc3MgZXh0ZW5zaW9uIG9uIHRoZSBpbXBsaWNpdGx5IG9wZW5l
ZCBjaGFubmVsLgotICAgICAgICBleHRlbnNpb25zID0gY29tbW9uLnBhcnNlX2V4dGVuc2lvbnMo
Ci0gICAgICAgICAgICAnJXM7IG1ldGhvZD1kZWZsYXRlJyAlIGNvbW1vbi5QRVJNRVNTQUdFX0NP
TVBSRVNTSU9OX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1
ZXN0KAotICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnM9ZXh0ZW5zaW9ucykK
LSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9o
YW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11
eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMo
bXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAg
ICAgICAjIFJlbW92ZSBwZXJtZXNzYWdlIGNvbXByZXNzIGV4dGVuc2lvbi4KLSAgICAgICAgZGVs
dGEgPSAoJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAgICAgICAgICAgICdTZWMtV2Vi
U29ja2V0LUV4dGVuc2lvbnM6XHJcbicKLSAgICAgICAgICAgICAgICAgJ1xyXG4nKQotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFr
ZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5l
bF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9s
X2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjApCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCBjb21wcmVz
c2VkIG1lc3NhZ2Ugb24gbG9naWNhbCBjaGFubmVsIDIuIFRoZSBtZXNzYWdlIHNob3VsZAotICAg
ICAgICAjIGJlIHJlamVjdGVkIChzaW5jZSByc3YxIGlzIHNldCkuCi0gICAgICAgIGNvbXByZXNz
ID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNT
SU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRf
aGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hl
bGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVz
c2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnN2MT1UcnVlKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwg
bWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxl
ci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBu
ZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0
ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhf
T1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1Bf
Q09ERV9OT1JNQUxfQ0xPU1VSRSwgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgyLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLSAgICAgICAgIyBVbnN1
cHBvcnRlZEZyYW1lRXhjZXB0aW9uIHNob3VsZCBiZSByYWlzZWQgb24gbG9naWNhbCBjaGFubmVs
IDIuCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGRpc3BhdGNoZXIuY2hhbm5l
bF9ldmVudHNbMl0uZXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uKSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVs
X2ludmFsaWRfZW5jb2Rpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAg
ICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQot
ICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFu
bmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElF
TlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVy
KHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRk
X2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rp
bmc9MywKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0
aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBi
IGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2Nrcygp
Ci0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVM
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1VOS05PV05fUkVRVUVT
VF9FTkNPRElORywKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9j
b2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5E
UE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfaW5jb21wbGV0
ZV9oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0K
LSAgICAgICAgaW5jb21wbGV0ZV9lbmNvZGVkX2hhbmRzaGFrZSA9ICdHRVQgL2VjaG8gSFRUUC8x
LjEnCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jl
cXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAg
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1pbmNvbXBsZXRlX2VuY29kZWRfaGFuZHNoYWtlKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
Ci0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVv
dXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKDEgaW4gZGlzcGF0Y2hlci5jaGFubmVs
X2V2ZW50cykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCAyIGluIGRpc3BhdGNoZXIuY2hh
bm5lbF9ldmVudHMpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kdXBsaWNhdGVfY2hhbm5l
bF9pZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAg
ICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5k
bGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9o
YW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4
Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8n
KQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1
ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQot
ICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBzZWxm
LmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAg
ICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVz
dC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlm
IGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfQ0hBTk5FTF9BTFJFQURZX0VYSVNUUywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2Rl
KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9kcm9wX2NoYW5uZWwoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAg
IG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hB
Tk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9J
TklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBf
Y3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxf
cmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAg
IGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
PWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gX2NyZWF0ZV9k
cm9wX2NoYW5uZWxfZnJhbWUoY2hhbm5lbF9pZD0yKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGRyb3BfY2hhbm5lbCkKLQotICAgICAgICAjIFRlcm1pbmF0ZSBpbXBsaWNp
dGx5IG9wZW5lZCBjaGFubmVsLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2Fn
ZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0
X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBleGNlcHRpb24gPSBkaXNwYXRjaGVy
LmNoYW5uZWxfZXZlbnRzWzJdLmV4Y2VwdGlvbgotICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhj
ZXB0aW9uLl9fY2xhc3NfXyA9PSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbikKLQotICAg
IGRlZiB0ZXN0X3JlY2VpdmVfcGluZ19mcmFtZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0
Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRp
c3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRs
ZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RT
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVP
VEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVx
dWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0g
X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9p
ZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9o
YW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5u
ZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJv
bF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEzKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICBwaW5nX2ZyYW1lID0g
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbyBXb3JsZCEnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJ
TkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZ19mcmFtZSkKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQot
ICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9s
X21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05H
LCBtZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxv
IFdvcmxkIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZl
X2ZyYWdtZW50ZWRfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19y
ZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAg
ICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0g
ICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5u
ZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVO
VCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIo
cGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGlu
Zz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkK
LQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEzKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgYSBwaW5nIHdpdGggbWVzc2Fn
ZSAnSGVsbG8gd29ybGQhJyBpbiB0d28gZnJhZ21lbnRlZCBmcmFtZXMuCi0gICAgICAgIHBpbmdf
ZnJhbWUxID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09E
RV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmdfZnJhbWUx
KQotICAgICAgICBwaW5nX2ZyYW1lMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9
J1dvcmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp
bj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNv
ZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMocGluZ19mcmFtZTIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3Nh
Z2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2Fp
dF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEnLCBtZXNzYWdlc1swXVsnbWVzc2Fn
ZSddKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudGVkX3Bpbmdfd2hpbGVfcmVjZWl2
aW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
bW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigp
Ci0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNo
ZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRk
X2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9S
X0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9o
ZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBl
bmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hh
a2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVx
dWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFt
ZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTE5KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgYSBmcmFnbWVudGVk
IGZyYW1lIG9mIG1lc3NhZ2UgJ0hlbGxvICcuCi0gICAgICAgIGhlbGxvID0gX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZT0nSGVsbG8gJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmluPUZhbHNlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGhl
bGxvKQotCi0gICAgICAgICMgQmVmb3JlIHNlbmRpbmcgdGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFt
ZSBvZiB0aGUgbWVzc2FnZSwgc2VuZCBhCi0gICAgICAgICMgZnJhZ21lbnRlZCBwaW5nLgotICAg
ICAgICBwaW5nMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1BpJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcxKQotICAgICAgICBwaW5nMiA9IF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2U9J25nIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMocGluZzIpCi0KLSAgICAgICAgIyBTZW5kIHRoZSBsYXN0IGZyYWdt
ZW50ZWQgZnJhbWUgb2YgdGhlIG1lc3NhZ2UuCi0gICAgICAgIHdvcmxkID0gX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZT0nV29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
Y29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyh3b3JsZCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVz
c2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0n
R29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3Vu
dGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsn
SGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQotICAgICAgICBjb250cm9sX21lc3NhZ2VzID0gcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BPTkcsIGNvbnRyb2xfbWVzc2FnZXNbMF1b
J29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIGNvbnRyb2xfbWVz
c2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfdHdvX3Bpbmdfd2hp
bGVfcmVjZWl2aW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hh
bmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NM
T1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxf
UVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVf
cmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0
ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5l
bF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2No
YW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29u
dHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTI1KQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgYSBm
cmFnbWVudGVkIGZyYW1lIG9mIG1lc3NhZ2UgJ0hlbGxvICcuCi0gICAgICAgIGhlbGxvID0gX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmluPUZhbHNlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGhlbGxvKQotCi0gICAgICAgICMgQmVmb3JlIHNlbmRpbmcgdGhlIGxhc3QgZnJhZ21l
bnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZSwgc2VuZCBhCi0gICAgICAgICMgZnJhZ21lbnRlZCBw
aW5nIGFuZCBhIG5vbi1mcmFnbWVudGVkIHBpbmcuCi0gICAgICAgIHBpbmcxID0gX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZT0nUGknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaW49RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
Y29kZT1jb21tb24uT1BDT0RFX1BJTkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMocGluZzEpCi0gICAgICAgIHBpbmcyID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0n
bmchJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RF
X0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5n
MikKLSAgICAgICAgcGluZzMgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQb25nIScsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmczKQotCi0gICAgICAgICMg
U2VuZCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lIG9mIHRoZSBtZXNzYWdlLgotICAgICAgICB3
b3JsZCA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1dvcmxkIScsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMod29ybGQpCi0KLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
bXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2Fn
ZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxkISddLCBtZXNzYWdlcykKLSAgICAgICAgY29u
dHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21l
c3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBj
b250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
UGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9sX21lc3NhZ2VzWzFdWydvcGNvZGUn
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUG9uZyEnLCBjb250cm9sX21lc3NhZ2VzWzFd
WydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2Vfd2hpbGVfcmVjZWl2
aW5nX2ZyYWdtZW50ZWRfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0g
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
Ci0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFk
ZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9h
ZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNv
ZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2Up
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVz
dCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShj
aGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT0xOSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhZ21lbnRlZCBwaW5n
LgotICAgICAgICBwaW5nMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1BpJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcxKQotCi0gICAgICAgICMgQmVm
b3JlIHNlbmRpbmcgdGhlIGxhc3QgZnJhZ21lbnRlZCBwaW5nLCBzZW5kIGEgbWVzc2FnZS4KLSAg
ICAgICAgIyBUaGUgbG9naWNhbCBjaGFubmVsICgyKSBzaG91bGQgYmUgZHJvcHBlZC4KLSAgICAg
ICAgbWVzc2FnZSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gd29ybGQhJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhtZXNzYWdlKQotCi0gICAgICAgICMgU2Vu
ZCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lIG9mIHRoZSBtZXNzYWdlLgotICAgICAgICBwaW5n
MiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J25nIScsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
bXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9j
aGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9u
LmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09
IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MiwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgICMgTm8gbWVzc2FnZSBzaG91bGQg
YmUgc2VudCBvbiBjaGFubmVsIDIuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0
ZW5fbWVzc2FnZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKEtleUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgMikKLQotICAgIGRlZiB0ZXN0X3NlbmRfcGluZyhzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9N
dXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVy
KHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAg
ICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9D
SEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXgu
X0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9
IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL3BpbmcnKQotICAgICAgICBhZGRfY2hhbm5l
bF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAg
ICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRl
X2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAg
ICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVz
c2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIG1l
c3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBt
ZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9mcmFnbWVudGVkX3Bp
bmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAg
ICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxl
ciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFu
ZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5f
SU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAg
ZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9waW5nJykK
LSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVz
dF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBS
ZXBsZW5pc2ggMyBieXRlcy4gVGhpcyBpc24ndCBlbm91Z2ggdG8gc2VuZCB0aGUgd2hvbGUgcGlu
ZyBmcmFtZQotICAgICAgICAjIGJlY2F1c2UgdGhlIGZyYW1lIHdpbGwgaGF2ZSA1IGJ5dGVzIG1l
c3NhZ2UoJ1BpbmchJykuIFRoZSBmcmFtZQotICAgICAgICAjIHNob3VsZCBiZSBmcmFnbWVudGVk
LgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxlbmlzaGVkX3F1b3RhPTMpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgV2FpdCB1bnRpbCB0aGUgd29ya2VyIGlz
IGJsb2NrZWQgZHVlIHRvIHNlbmQgcXVvdGEgc2hvcnRhZ2UuCi0gICAgICAgIHRpbWUuc2xlZXAo
MSkKLQotICAgICAgICAjIFJlcGxlbmlzaCByZW1haW5pbmcgMiArIDEgYnl0ZXMgKGluY2x1ZGlu
ZyBleHRyYSBjb3N0KS4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRy
b2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0zKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSht
dXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdl
cyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBtZXNzYWdlc1swXVsn
b3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgbWVzc2FnZXNbMF1b
J21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRlZF9waW5nX3doaWxlX3Nl
bmRpbmdfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVy
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0
Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9G
T1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0
X2hlYWRlcigKLSAgICAgICAgICAgIHBhdGg9Jy9waW5nX3doaWxlX2hlbGxvX3dvcmxkJykKLSAg
ICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9m
cmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBBcHBs
aWNhdGlvbiB3aWxsIHNlbmQ6Ci0gICAgICAgICMgLSB0ZXh0IG1lc3NhZ2UgJ0hlbGxvICcgd2l0
aCBmaW49MAotICAgICAgICAjIC0gcGluZyB3aXRoICdQaW5nIScgbWVzc2FnZQotICAgICAgICAj
IC0gdGV4dCBtZXNzYWdlICdXb3JsZCEnIHdpdGggZmluPTEKLSAgICAgICAgIyBSZXBsZW5pc2gg
KDYgKyAxKSArICgyICsgMSkgYnl0ZXMgc28gdGhhdCB0aGUgcGluZyB3aWxsIGJlCi0gICAgICAg
ICMgZnJhZ21lbnRlZCBvbiB0aGUgbG9naWNhbCBjaGFubmVsLgotICAgICAgICBmbG93X2NvbnRy
b2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3Rh
PTEwKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkK
LQotICAgICAgICB0aW1lLnNsZWVwKDEpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggcmVtYWluaW5n
IDMgKyA2IGJ5dGVzLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJv
bF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTkpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11
eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2Vz
ID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoWydIZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCi0gICAgICAgIGNvbnRy
b2xfbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNz
YWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgY29u
dHJvbF9tZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1Bp
bmchJywgY29udHJvbF9tZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3Rfc2Vu
ZF9mcmFnbWVudGVkX3R3b19waW5nX3doaWxlX3NlbmRpbmdfZnJhZ21lbnRlZF9tZXNzYWdlKHNl
bGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBk
aXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBt
dXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIu
c3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJ
QUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcigKLSAgICAgICAgICAgIHBhdGg9
Jy90d29fcGluZ193aGlsZV9oZWxsb193b3JsZCcpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVl
c3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFu
bmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNv
ZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRf
Y2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgQXBwbGljYXRpb24gd2lsbCBzZW5kOgotICAg
ICAgICAjIC0gdGV4dCBtZXNzYWdlICdIZWxsbyAnIHdpdGggZmluPTAKLSAgICAgICAgIyAtIHBp
bmcgd2l0aCAnUGluZyEnIG1lc3NhZ2UKLSAgICAgICAgIyAtIHBpbmcgd2l0aCAnUG9uZyEnIG1l
c3NhZ2UKLSAgICAgICAgIyAtIHRleHQgbWVzc2FnZSAnV29ybGQhJyB3aXRoIGZpbj0xCi0gICAg
ICAgICMgUmVwbGVuaXNoICg2ICsgMSkgKyAoMiArIDEpIGJ5dGVzIHNvIHRoYXQgdGhlIGZpcnN0
IHBpbmcgd2lsbCBiZQotICAgICAgICAjIGZyYWdtZW50ZWQgb24gdGhlIGxvZ2ljYWwgY2hhbm5l
bC4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT0xMCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgdGltZS5zbGVlcCgxKQotCi0gICAgICAg
ICMgUmVwbGVuaXNoIHJlbWFpbmluZyAzICsgKDUgKyAxKSArIDYgYnl0ZXMuIFRoZSBzZWNvbmQg
cGluZyB3b24ndAotICAgICAgICAjIGJlIGZyYWdtZW50ZWQgb24gdGhlIGxvZ2ljYWwgY2hhbm5l
bC4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT0xNSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1l
c3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIu
d2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChbJ0hlbGxvIFdvcmxkISddLCBtZXNzYWdlcykKLSAgICAgICAgY29udHJvbF9tZXNzYWdl
cyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBjb250cm9sX21lc3Nh
Z2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBjb250
cm9sX21lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29t
bW9uLk9QQ09ERV9QSU5HLCBjb250cm9sX21lc3NhZ2VzWzFdWydvcGNvZGUnXSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnUG9uZyEnLCBjb250cm9sX21lc3NhZ2VzWzFdWydtZXNzYWdlJ10p
Ci0KLSAgICBkZWYgdGVzdF9zZW5kX2Ryb3BfY2hhbm5lbChzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2Nr
RGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVl
c3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAj
IERyb3BDaGFubmVsIGZvciBjaGFubmVsIGlkIDEgd2hpY2ggZG9lc24ndCBoYXZlIHJlYXNvbi4K
LSAgICAgICAgZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKCdceDAwXHg2MFx4MDFceDAwJywg
bWFzaz1UcnVlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGlt
ZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBm
b3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQot
ICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9BQ0tOT1dMRURHRUQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgxLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLQotICAgIGRlZiB0
ZXN0X3R3b19mbG93X2NvbnRyb2woc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQot
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9j
aGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggNSBieXRlcy4KLSAgICAgICAgZmxvd19jb250cm9s
ID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT01
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQot
ICAgICAgICAjIFNlbmQgMTAgYnl0ZXMuIFRoZSBzZXJ2ZXIgd2lsbCB0cnkgZWNobyBiYWNrIDEw
IGJ5dGVzLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG9Xb3Js
ZCcpKQotCi0gICAgICAgICMgUmVwbGVuaXNoIDUgKyAxIChwZXItbWVzc2FnZSBleHRyYSBjb3N0
KSBieXRlcy4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJh
bWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53
YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3Qu
Y29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFsnSGVsbG9Xb3JsZCddLCBtZXNzYWdlcykKLSAgICAgICAgcmVjZWl2ZWRfZmxvd19jb250
cm9scyA9IFsKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5f
TVVYX09QQ09ERV9GTE9XX0NPTlRST0wgYW5kIGIuY2hhbm5lbF9pZCA9PSAyXQotICAgICAgICAj
IFJlcGxlbmlzaG1lbnQgZm9yICdIZWxsb1dvcmxkJyArIDEKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgxMSwgcmVjZWl2ZWRfZmxvd19jb250cm9sc1swXS5zZW5kX3F1b3RhKQotICAgICAgICAj
IFJlcGxlbmlzaG1lbnQgZm9yICdHb29kYnllJyArIDEKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCg4LCByZWNlaXZlZF9mbG93X2NvbnRyb2xzWzFdLnNlbmRfcXVvdGEpCi0KLSAgICBkZWYgdGVz
dF9ub19zZW5kX3F1b3RhX29uX3NlcnZlcihzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hl
cigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3Bh
dGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIu
YWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFf
Rk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVz
dF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0y
LCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5k
c2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG9X
b3JsZCcpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnll
JykpCi0KLSAgICAgICAgIyBKdXN0IHdhaXQgZm9yIDEgc2VjIHNvIHRoYXQgdGhlIHNlcnZlciBh
dHRlbXB0cyB0byBlY2hvIGJhY2sKLSAgICAgICAgIyAnSGVsbG9Xb3JsZCcuCi0gICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MSkpCi0K
LSAgICAgICAgIyBObyBtZXNzYWdlIHNob3VsZCBiZSBzZW50IG9uIGNoYW5uZWwgMi4KLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgMikKLQotICAgIGRlZiB0ZXN0X25vX3NlbmRfcXVvdGFfb25fc2VydmVyX2Zv
cl9wZXJtZXNzYWdlX2V4dHJhX2Nvc3Qoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFk
ZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZP
Ul9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3Rf
aGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVh
dGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9Miwg
ZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNo
YWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3Jl
cXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJh
bWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgICMgUmVwbGVuaXNoIG9ubHkgbGVuKCdXb3JsZCcp
IGJ5dGVzLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFt
ZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotICAgICAgICAjIFNlcnZlciBzaG91bGQgbm90IGNh
bGxiYWNrIGZvciB0aGlzIG1lc3NhZ2UuCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBt
ZXNzYWdlPSdXb3JsZCcpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Ci0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdl
PSdHb29kYnllJykpCi0KLSAgICAgICAgIyBKdXN0IHdhaXQgZm9yIDEgc2VjIHNvIHRoYXQgdGhl
IHNlcnZlciBhdHRlbXB0cyB0byBlY2hvIGJhY2sKLSAgICAgICAgIyAnV29ybGQnLgotICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTEp
KQotCi0gICAgICAgICMgT25seSBvbmUgbWVzc2FnZSBzaG91bGQgYmUgc2VudCBvbiBjaGFubmVs
IDIuCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21l
c3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBtZXNzYWdlcykK
LQotICAgIGRlZiB0ZXN0X3F1b3RhX3Zpb2xhdGlvbl9ieV9jbGllbnQoc2VsZik6Ci0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBf
TXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxl
cihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAg
ICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0Zf
Q0hBTk5FTF9TTE9UUywgMCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVf
cmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0
ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5l
bF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2No
YW5uZWxfcmVxdWVzdCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0n
SGVsbG9Xb3JsZCcpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0g
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdH
b29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50
aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGNvbnRyb2xfYmxvY2tzID0gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCg1LCBsZW4oY29udHJvbF9ibG9ja3MpKQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBu
ZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiBjb250cm9sX2Jsb2NrcwotICAgICAgICAgICAg
aWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElPTiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotCi0gICAgZGVmIHRl
c3RfY29uc3VtZV9xdW90YV9lbXB0eV9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICAjIENsaWVu
dCBoYXMgMSBieXRlIHF1b3RhLgotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90
cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsIDEpCi0KLSAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAg
ICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9m
cmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19j
b250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9x
dW90YT0yKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJv
bCkKLSAgICAgICAgIyBTZW5kIGFuIGVtcHR5IG1lc3NhZ2UuIFB5d2Vic29ja2V0IGFsd2F5cyBy
ZXBsZW5pc2hlcyAxIGJ5dGUgcXVvdGEKLSAgICAgICAgIyBmb3IgZW1wdHkgbWVzc2FnZQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nJykpCi0KLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgIyBUaGlzIG1lc3Nh
Z2UgdmlvbGF0ZXMgcXVvdGEgb24gY2hhbm5lbCBpZCAyLgotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSht
dXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDEsIGxlbihkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sy
XS5tZXNzYWdlc1swXSkKLQotICAgICAgICByZWNlaXZlZF9mbG93X2NvbnRyb2xzID0gWwotICAg
ICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJv
bF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0ZM
T1dfQ09OVFJPTCBhbmQgYi5jaGFubmVsX2lkID09IDJdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMSwgbGVuKHJlY2VpdmVkX2Zsb3dfY29udHJvbHMpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDEsIHJlY2VpdmVkX2Zsb3dfY29udHJvbHNbMF0uc2VuZF9xdW90YSkKLQotICAgICAgICBk
cm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5l
Y3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNv
ZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgyLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChtdXguX0RST1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotCi0gICAgZGVmIHRlc3RfY29uc3VtZV9x
dW90YV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgICMgQ2xpZW50IGhhcyBs
ZW4oJ0hlbGxvJykgKyBsZW4oJ0dvb2RieWUnKSArIDIgYnl0ZXMgcXVvdGEuCi0gICAgICAgIG11
eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5F
TF9TTE9UUywgMTQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVl
c3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9
MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFu
ZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVs
X3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xf
ZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTIsIG1lc3NhZ2U9J0hlJywgZmluPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQpKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwgbWVzc2FnZT0nbGxvJywgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKSkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAg
ICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgbWVzc2FnZXMpCi0KLSAgICBkZWYg
dGVzdF9mcmFnbWVudGVkX2NvbnRyb2xfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hh
bmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NM
T1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxf
UVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVf
cmVxdWVzdF9oZWFkZXIocGF0aD0nL3BpbmcnKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0
ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5l
bF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2No
YW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAjIFJlcGxlbmlzaCB0b3RhbCA2IGJ5dGVzIGluIDMg
Rmxvd0NvbnRyb2xzLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJv
bF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9
IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MikK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT0zKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0n
R29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3Vu
dGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBtZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAg
IGRlZiB0ZXN0X2NoYW5uZWxfc2xvdF92aW9sYXRpb25fYnlfY2xpZW50KHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0g
X011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRs
ZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAg
ICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhzbG90cz0xLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kX3F1b3RhPW11eC5fSU5JVElBTF9RVU9UQV9G
T1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0
X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3Jl
YXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIs
IGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRz
aGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9y
ZXF1ZXN0KQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFt
ZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0y
LCBtZXNzYWdlPSdIZWxsbycpKQotCi0gICAgICAgICMgVGhpcyByZXF1ZXN0IHNob3VsZCBiZSBy
ZWplY3RlZC4KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MywgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNo
YW5uZWxfaWQ9MywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1l
c3NhZ2U9J0hlbGxvJykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0Y2hl
ci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChb
J0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50cy5oYXNfa2V5KDMpKQot
ICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAg
aWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgzLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9ORVdfQ0hBTk5FTF9TTE9UX1ZJT0xBVElPTiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotCi0gICAgZGVm
IHRlc3RfcXVvdGFfb3ZlcmZsb3dfYnlfY2xpZW50KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhzbG90cz0xLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZW5kX3F1b3RhPW11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQot
Ci0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRo
PScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFu
bmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAs
Ci0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotICAg
ICAgICAjIFJlcGxlbmlzaCAweDdGRkZGRkZGRkZGRkZGRkYgYnl0ZXMgdHdpY2UuCi0gICAgICAg
IGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKAotICAgICAgICAgICAg
Y2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MHg3RkZGRkZGRkZG
RkZGRkZGKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJv
bCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0K
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9
MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIg
aW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAg
ICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfU0VORF9RVU9UQV9PVkVSRkxPVywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotCi0gICAgZGVm
IHRlc3RfaW52YWxpZF9lbmNhcHN1bGF0ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2Nr
RGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVl
c3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICBm
aXJzdF9ieXRlID0gKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpCi0g
ICAgICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArCi0gICAgICAgICAgICAgICAgIG11eC5f
ZW5jb2RlX2NoYW5uZWxfaWQoMSkgKwotICAgICAgICAgICAgICAgICBtdXguX2VuY29kZV9udW1i
ZXIoMCkpCi0gICAgICAgIHBheWxvYWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5fQ09O
VFJPTF9DSEFOTkVMX0lEKSArIGJsb2NrCi0gICAgICAgIHRleHRfZnJhbWUgPSBjcmVhdGVfYmlu
YXJ5X2ZyYW1lKHBheWxvYWQsIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyh0ZXh0X2ZyYW1lKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBk
cm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5l
Y3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNv
ZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChtdXguX0RST1BfQ09ERV9JTlZBTElEX0VOQ0FQU1VMQVRJTkdfTUVTU0FHRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2Rl
KQotCi0gICAgZGVmIHRlc3RfY2hhbm5lbF9pZF90cnVuY2F0ZWQoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAg
ICAgIyBUaGUgbGFzdCBieXRlIG9mIHRoZSBjaGFubmVsIGlkIGlzIG1pc3NpbmcuCi0gICAgICAg
IGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHg4MCcsIG1hc2s9VHJ1ZSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAg
ZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25u
ZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bj
b2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobXV4Ll9EUk9QX0NPREVfQ0hBTk5FTF9JRF9UUlVOQ0FURUQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAg
IGRlZiB0ZXN0X2lubmVyX2ZyYW1lX3RydW5jYXRlZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAjIEp1
c3QgY29udGFpbiBjaGFubmVsIGlkIDEuCi0gICAgICAgIGZyYW1lID0gY3JlYXRlX2JpbmFyeV9m
cmFtZSgnXHgwMScsIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmcmFtZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91
bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAg
ICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRy
b2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9E
Uk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfRU5D
QVBTVUxBVEVEX0ZSQU1FX0lTX1RSVU5DQVRFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBk
cm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5T
VEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfdW5r
bm93bl9tdXhfb3Bjb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3Jl
cXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAg
ICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAg
ICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgICAgICMgVW5kZWZpbmVkIG9wY29kZSA1
Ci0gICAgICAgIGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4YTAnLCBtYXNrPVRy
dWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIp
KQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGlu
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAg
ICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1VOS05PV05fTVVYX09QQ09ERSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9j
b2RlKQotCi0gICAgZGVmIHRlc3RfaW52YWxpZF9tdXhfY29udHJvbF9ibG9jayhzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hl
ciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhI
YW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkK
LQotICAgICAgICAjIERyb3BDaGFubmVsIGNvbnRhaW5zIDEgYnl0ZSByZWFzb24KLSAgICAgICAg
ZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKCdceDAwXHg2MFx4MDBceDAxXHgwMCcsIG1hc2s9
VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkKLQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9
MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIg
aW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAg
ICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9C
TE9DSywKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRf
RVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZl
cl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfcGVybWVzc2FnZV9jb21wcmVzcyhzZWxmKToK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0
Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9N
dXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05V
TUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICAjIEVuYWJsZSBw
ZXJtZXNzYWdlIGNvbXByZXNzIGV4dGVuc2lvbiBvbiBsb2dpY2FsIGNoYW5uZWwgMi4KLSAgICAg
ICAgZXh0ZW5zaW9ucyA9ICclczsgbWV0aG9kPWRlZmxhdGUnICUgKAotICAgICAgICAgICAgY29t
bW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OKQotICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucz1leHRl
bnNpb25zKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5l
bF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAot
ICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAg
ICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lk
PTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cGxlbmlzaGVkX3F1b3RhPTIwKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCAnSGVsbG8nIHR3aWNl
LgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGli
LlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQot
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvMSA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8xICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZM
VVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMSA9IGNvbXByZXNzZWRfaGVsbG8xWzotNF0K
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsbzEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1UcnVlKSkKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbzIgPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBj
b21wcmVzc2VkX2hlbGxvMiArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbzIgPSBjb21wcmVzc2VkX2hlbGxvMls6LTRdCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
bXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChbJ0hlbGxvJywgJ0hlbGxvJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAgIyBXcml0dGVu
ICdIZWxsbydzIHNob3VsZCBiZSBjb21wcmVzc2VkLgotICAgICAgICBtZXNzYWdlcyA9IHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDIsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcHJl
c3NlZF9oZWxsbzEsIG1lc3NhZ2VzWzBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXBy
ZXNzZWRfaGVsbG8yLCBtZXNzYWdlc1sxXSkKLQotCi0gICAgZGVmIHRlc3RfcGVybWVzc2FnZV9j
b21wcmVzc19mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbnMgPSBj
b21tb24ucGFyc2VfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICclczsgbWV0aG9kPWRlZmxhdGUn
ICUgY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OKQotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoCi0gICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxf
ZXh0ZW5zaW9ucz1leHRlbnNpb25zKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xP
VFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9R
VU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgICMgU2VuZCBjb21wcmVzc2VkICdIZWxsb0hlbGxv
SGVsbG8nIGFzIGZyYWdtZW50ZWQgbWVzc2FnZS4KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNv
bXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIu
REVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNv
bXByZXNzLmNvbXByZXNzKCdIZWxsb0hlbGxvSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hl
bGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVz
c2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0KLSAgICAgICAgbSA9IGxlbihjb21w
cmVzc2VkX2hlbGxvKSAvIDIKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvWzptXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsIHJzdjE9VHJ1ZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9U
RVhUKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvW206XSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwgcnN2MT1GYWxzZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04p
KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0K
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1l
b3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsb0hlbGxvSGVsbG8nXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1l
c3NhZ2VzKQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9tZXNzYWdlcygxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcHJlc3NlZF9oZWxsbywgbWVzc2FnZXNbMF0p
Ci0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2JhZF9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNo
ZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4
SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgp
Ci0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1C
RVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRk
X2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAg
ICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhbWUg
d2l0aCBmaW49RmFsc2UsIGFuZCB0aGVuIHNlbmQgYSBmcmFtZSB3aXRoCi0gICAgICAgICMgb3Bj
b2RlPVRFWFQgKG5vdCBDT05USU5VQVRJT04pLiBMb2dpY2FsIGNoYW5uZWwgMiBzaG91bGQgYmUg
ZHJvcHBlZC4KLSAgICAgICAgZnJhbWUxID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hl
bGxvICcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9Q
Q09ERV9URVhUKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMSkK
LSAgICAgICAgZnJhbWUyID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1dvcmxkIScsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUyKQotCi0gICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycp
Ci0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVl
c3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTAsCi0gICAgICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMg
U2VuZCBhIGZyYW1lIHdpdGggb3Bjb2RlPUNPTlRJTlVBVElPTiB3aXRob3V0IGEgcHJlY2VkaW5n
IGZyYW1lCi0gICAgICAgICMgdGhlIGZpbiBvZiB3aGljaCBpcyBub3Qgc2V0LiBMb2dpY2FsIGNo
YW5uZWwgMyBzaG91bGQgYmUgZHJvcHBlZC4KLSAgICAgICAgZnJhbWUzID0gX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2U9J0hlbGxvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZyYW1lMykKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9j
cmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9y
ZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAg
Y2hhbm5lbF9pZD00LCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9
ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
YWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAjIFNlbmQgYSBmcmFtZSB3aXRoIG9wY29k
ZT1QSU5HIGFuZCBmaW49RmFsc2UsIGFuZCB0aGVuIHNlbmQgYSBmcmFtZQotICAgICAgICAjIHdp
dGggb3Bjb2RlPVRFWFQgKG5vdCBDT05USU5VQVRJT04pLiBMb2dpY2FsIGNoYW5uZWwgNCBzaG91
bGQgYmUKLSAgICAgICAgIyBkcm9wcGVkLgotICAgICAgICBmcmFtZTQgPSBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD00LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZT0nUGluZycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaW49RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZyYW1lNCkKLSAgICAgICAgZnJhbWU1ID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J0hlbGxvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1U
cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1v
bi5PUENPREVfVEVYVCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFt
ZTUpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVscyA9IFsKLSAgICAgICAgICAgIGIgZm9y
IGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAg
ICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUxdCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywgbGVuKGRyb3BfY2hhbm5lbHMpKQotICAgICAgICBm
b3IgZCBpbiBkcm9wX2NoYW5uZWxzOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXgu
X0RST1BfQ09ERV9CQURfRlJBR01FTlRBVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZC5kcm9wX2NvZGUpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0
dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvdGVzdF9zdHJlYW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3Rfc3RyZWFtLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWFjZmViMDQ4ZDNiMjAzMmE3OTQ4Y2ZhMmFkZWE3
Y2U2NGY5NWFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdF9zdHJlYW0ucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCww
IEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRl
c3RzIGZvciBzdHJlYW0gbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQg
c2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0
IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IHN0cmVhbQotCi0KLWNsYXNzIFN0cmVhbVRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIHN0cmVhbSBtb2R1bGUuIiIiCi0KLSAg
ICBkZWYgdGVzdF9jcmVhdGVfaGVhZGVyKHNlbGYpOgotICAgICAgICAjIG1vcmUsIHJzdjEsIC4u
LiwgcnN2NCBhcmUgYWxsIHRydWUKLSAgICAgICAgaGVhZGVyID0gc3RyZWFtLmNyZWF0ZV9oZWFk
ZXIoY29tbW9uLk9QQ09ERV9URVhULCAxLCAxLCAxLCAxLCAxLCAxKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdceGYxXHg4MScsIGhlYWRlcikKLQotICAgICAgICAjIE1heGltdW0gcGF5bG9h
ZCBzaXplCi0gICAgICAgIGhlYWRlciA9IHN0cmVhbS5jcmVhdGVfaGVhZGVyKAotICAgICAgICAg
ICAgY29tbW9uLk9QQ09ERV9URVhULCAoMSA8PCA2MykgLSAxLCAwLCAwLCAwLCAwLCAwKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAxXHg3Zlx4N2ZceGZmXHhmZlx4ZmZceGZmXHhmZlx4
ZmZceGZmJywgaGVhZGVyKQotCi0gICAgICAgICMgSW52YWxpZCBvcGNvZGUgMHgxMAotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJlYW0uY3JlYXRlX2hlYWRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwg
MCwgMCwgMCwgMCwgMCwgMCkKLQotICAgICAgICAjIEludmFsaWQgdmFsdWUgMHhmIHBhc3NlZCB0
byBtb3JlIHBhcmFtZXRlcgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uY3JlYXRlX2hlYWRlciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29tbW9uLk9QQ09ERV9URVhULCAwLCAweGYsIDAsIDAsIDAsIDAp
Ci0KLSAgICAgICAgIyBUb28gbG9uZyBwYXlsb2FkX2xlbmd0aAotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhWYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uY3Jl
YXRlX2hlYWRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLk9QQ09ERV9URVhU
LCAxIDw8IDYzLCAwLCAwLCAwLCAwLCAwKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L3Rlc3Rfc3RyZWFtX2hpeGllNzUucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3Rfc3RyZWFtX2hpeGllNzUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhOWFj
NzEzMGI3MzA0ZWI5MmRiYmJjMTUzM2FhNDE1NDVlMDI0NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3N0cmVhbV9oaXhp
ZTc1LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3Igc3RyZWFtIG1vZHVsZS4i
IiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUg
c3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5
d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3NQotZnJvbSB0ZXN0LnRlc3RfbXNn
dXRpbCBpbXBvcnQgX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUKLQotCi1jbGFzcyBTdHJlYW1IaXhp
ZTc1VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgU3RyZWFt
SGl4aWU3NSBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X3BheWxvYWRfbGVuZ3RoKHNlbGYpOgot
ICAgICAgICBmb3IgbGVuZ3RoLCBieXRlcyBpbiAoKDAsICdceDAwJyksICgweDdmLCAnXHg3Zicp
LCAoMHg4MCwgJ1x4ODFceDAwJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgx
MjM0LCAnXHg4MFx4YTRceDM0JykpOgotICAgICAgICAgICAgdGVzdF9zdHJlYW0gPSBTdHJlYW1I
aXhpZTc1KF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KGJ5dGVzKSkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgbGVuZ3RoLCB0ZXN0X3N0cmVhbS5fcmVhZF9w
YXlsb2FkX2xlbmd0aF9oaXhpZTc1KCkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
LSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdF91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3V0aWwucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwZjRhYjA1OTY1MmM1ODY5ZWMyMDVhMTI4
ZGY5MzkxNGNhOGM3MWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3V0aWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMDAg
KzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJUZXN0cyBmb3IgdXRpbCBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IG9zCi1pbXBvcnQgcmFuZG9t
Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBV
cGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQotX1RFU1RfREFUQV9ESVIgPSBvcy5wYXRo
LmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0sICd0ZXN0ZGF0YScpCi0KLQotY2xhc3Mg
VXRpbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIHV0aWwg
bW9kdWxlLiIiIgotCi0gICAgZGVmIHRlc3RfZ2V0X3N0YWNrX3RyYWNlKHNlbGYpOgotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdOb25lXG4nLCB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBhID0gMSAvIDAgICMgSW50ZW50aW9uYWxseSByYWlzZSBl
eGNlcHRpb24uCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICB0cmFjZSA9
IHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkKLSAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyh0cmFj
ZS5zdGFydHN3aXRoKCdUcmFjZWJhY2snKSkKLSAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyh0
cmFjZS5maW5kKCdaZXJvRGl2aXNpb25FcnJvcicpICE9IC0xKQotCi0gICAgZGVmIHRlc3RfcHJl
cGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbihzZWxmKToKLSAgICAgICAgZXhjID0gRXhjZXB0aW9u
KCdXb3JsZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgc3RyKGV4YykpCi0g
ICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbignSGVsbG8gJywgZXhjKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCcsIHN0cihleGMpKQotCi0gICAg
ZGVmIHRlc3RfZ2V0X3NjcmlwdF9pbnRlcnAoc2VsZik6Ci0gICAgICAgIGN5Z3dpbl9wYXRoID0g
J2M6XFxjeWd3aW5cXGJpbicKLSAgICAgICAgY3lnd2luX3BlcmwgPSBvcy5wYXRoLmpvaW4oY3ln
d2luX3BhdGgsICdwZXJsJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB1dGlsLmdl
dF9zY3JpcHRfaW50ZXJwKAotICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElS
LCAnUkVBRE1FJykpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHV0aWwuZ2V0X3Nj
cmlwdF9pbnRlcnAoCi0gICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdS
RUFETUUnKSwgY3lnd2luX3BhdGgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvdXNyL2Jp
bi9wZXJsIC13VCcsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCi0gICAgICAgICAgICBvcy5wYXRo
LmpvaW4oX1RFU1RfREFUQV9ESVIsICdoZWxsby5wbCcpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjeWd3aW5fcGVybCArICcgLXdUJywgdXRpbC5nZXRfc2NyaXB0X2ludGVycCgKLSAgICAg
ICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRBX0RJUiwgJ2hlbGxvLnBsJyksIGN5Z3dpbl9w
YXRoKSkKLQotICAgIGRlZiB0ZXN0X2hleGlmeShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnNjEgN2EgNDEgNWEgMzAgMzkgMjAgMDkgMGQgMGEgMDAgZmYnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHV0aWwuaGV4aWZ5KCdhekFaMDkgXHRcclxuXHgwMFx4ZmYnKSkKLQotCi1j
bGFzcyBSZXBlYXRlZFhvck1hc2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEg
dW5pdHRlc3QgZm9yIFJlcGVhdGVkWG9yTWFza2VyIGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3Rf
bWFzayhzZWxmKToKLSAgICAgICAgIyBTYW1wbGUgaW5wdXQgZTYsOTcsYTUgaXMgVSs2NWU1IGlu
IFVURi04Ci0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4ZmZceGZm
XHhmZlx4ZmYnKQotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygnXHhlNlx4OTdceGE1JykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgxOVx4NjhceDVhJywgcmVzdWx0KQotCi0gICAg
ICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4MDBceDAwXHgwMFx4MDAnKQot
ICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygnXHhlNlx4OTdceGE1JykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnXHhlNlx4OTdceGE1JywgcmVzdWx0KQotCi0gICAgICAgIG1hc2tlciA9
IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4ZTZceDk3XHhhNVx4MjAnKQotICAgICAgICByZXN1
bHQgPSBtYXNrZXIubWFzaygnXHhlNlx4OTdceGE1JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnXHgwMFx4MDBceDAwJywgcmVzdWx0KQotCi0gICAgZGVmIHRlc3RfbWFza190d2ljZShzZWxm
KToKLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignXHgwMFx4N2ZceGZm
XHgyMCcpCi0gICAgICAgICMgbWFza1swXSwgbWFza1sxXSwgLi4uIHdpbGwgYmUgdXNlZC4KLSAg
ICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2soJ1x4MDBceDAwXHgwMFx4MDBceDAwJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFx4N2ZceGZmXHgyMFx4MDAnLCByZXN1bHQpCi0gICAg
ICAgICMgbWFza1syXSwgbWFza1swXSwgLi4uIHdpbGwgYmUgdXNlZCBmb3IgdGhlIG5leHQgY2Fs
bC4KLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2soJ1x4MDBceDAwXHgwMFx4MDBceDAwJykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg3Zlx4ZmZceDIwXHgwMFx4N2YnLCByZXN1bHQp
Ci0KLSAgICBkZWYgdGVzdF9tYXNrX2xhcmdlX2RhdGEoc2VsZik6Ci0gICAgICAgIG1hc2tlciA9
IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ21BU2snKQotICAgICAgICBvcmlnaW5hbCA9ICcnLmpv
aW4oW2NocihpICUgMjU2KSBmb3IgaSBpbiB4cmFuZ2UoMTAwMCldKQotICAgICAgICByZXN1bHQg
PSBtYXNrZXIubWFzayhvcmlnaW5hbCkKLSAgICAgICAgZXhwZWN0ZWQgPSAnJy5qb2luKAotICAg
ICAgICAgICAgICAgIFtjaHIoKGkgJSAyNTYpIF4gb3JkKCdtQVNrJ1tpICUgNF0pKSBmb3IgaSBp
biB4cmFuZ2UoMTAwMCldKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXN1
bHQpCi0KLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignTWFTaycpCi0g
ICAgICAgIGZpcnN0X3BhcnQgPSAnVGhlIFdlYlNvY2tldCBQcm90b2NvbCBlbmFibGVzIHR3by13
YXkgY29tbXVuaWNhdGlvbi4nCi0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKGZpcnN0X3Bh
cnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgJ1x4MTlcdDZL
XHgxYVx4MDQxOCJceDAyOFx4MGU5QVx4MDNceDE5Ilx4MTU8XHgwOCJccnNceDBlIycKLSAgICAg
ICAgICAgICAgICAnXHgwMDFceDA3KFx4MTJzXHgxZjpceDBlflx4MWMsXHgxOHNceDA4Ilx4MGM+
XHgxZSNceDA4MFxuOScKLSAgICAgICAgICAgICAgICAnXHgwODxceDA1YycsCi0gICAgICAgICAg
ICAgICAgcmVzdWx0KQotICAgICAgICBzZWNvbmRfcGFydCA9ICdJdCBoYXMgdHdvIHBhcnRzOiBh
IGhhbmRzaGFrZSBhbmQgdGhlIGRhdGEgdHJhbnNmZXIuJwotICAgICAgICByZXN1bHQgPSBtYXNr
ZXIubWFzayhzZWNvbmRfcGFydCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAg
ICAgICAgICAiKCdLJVx4MDAgSzlceDE2PEs9XHgwMCFceDFmPltzXG5tXHQyXHgwNSlceDEyO1xu
Jlx4MDRzXG4jIgotICAgICAgICAgICAgICAgICJceDA1c1x4MWYlXHgwNHNceDBmLFx4MTUySzlc
eDEzMlx4MDU+XHgwNzZceDE5YyIsCi0gICAgICAgICAgICAgICAgcmVzdWx0KQotCi0KLWRlZiBn
ZXRfcmFuZG9tX3NlY3Rpb24oc291cmNlLCBtaW5fbnVtX2NodW5rcyk6Ci0gICAgY2h1bmtzID0g
W10KLSAgICBieXRlc19jaHVua2VkID0gMAotCi0gICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8IGxl
bihzb3VyY2UpOgotICAgICAgICBjaHVua19zaXplID0gcmFuZG9tLnJhbmRpbnQoCi0gICAgICAg
ICAgICAxLAotICAgICAgICAgICAgbWluKGxlbihzb3VyY2UpIC8gbWluX251bV9jaHVua3MsIGxl
bihzb3VyY2UpIC0gYnl0ZXNfY2h1bmtlZCkpCi0gICAgICAgIGNodW5rID0gc291cmNlW2J5dGVz
X2NodW5rZWQ6Ynl0ZXNfY2h1bmtlZCArIGNodW5rX3NpemVdCi0gICAgICAgIGNodW5rcy5hcHBl
bmQoY2h1bmspCi0gICAgICAgIGJ5dGVzX2NodW5rZWQgKz0gY2h1bmtfc2l6ZQotCi0gICAgcmV0
dXJuIGNodW5rcwotCi0KLWNsYXNzIEluZmxhdGVyRGVmbGF0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBfSW5mbGF0ZXIgYW5kIF9EZWZsYXRlciBjbGFz
cy4iIiIKLQotICAgIGRlZiB0ZXN0X2luZmxhdGVfZGVmbGF0ZV9kZWZhdWx0KHNlbGYpOgotICAg
ICAgICBpbnB1dCA9IGInaGVsbG8nICsgJy0nICogMzAwMDAgKyBiJ2hlbGxvJwotICAgICAgICBp
bmZsYXRlcjE1ID0gdXRpbC5fSW5mbGF0ZXIoMTUpCi0gICAgICAgIGRlZmxhdGVyMTUgPSB1dGls
Ll9EZWZsYXRlcigxNSkKLSAgICAgICAgaW5mbGF0ZXI4ID0gdXRpbC5fSW5mbGF0ZXIoOCkKLSAg
ICAgICAgZGVmbGF0ZXI4ID0gdXRpbC5fRGVmbGF0ZXIoOCkKLQotICAgICAgICBjb21wcmVzc2Vk
MTUgPSBkZWZsYXRlcjE1LmNvbXByZXNzX2FuZF9maW5pc2goaW5wdXQpCi0gICAgICAgIGNvbXBy
ZXNzZWQ4ID0gZGVmbGF0ZXI4LmNvbXByZXNzX2FuZF9maW5pc2goaW5wdXQpCi0KLSAgICAgICAg
aW5mbGF0ZXIxNS5hcHBlbmQoY29tcHJlc3NlZDE1KQotICAgICAgICBpbmZsYXRlcjguYXBwZW5k
KGNvbXByZXNzZWQ4KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoY29tcHJlc3NlZDE1
LCBjb21wcmVzc2VkOCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnB1dCwgaW5mbGF0ZXIx
NS5kZWNvbXByZXNzKC0xKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnB1dCwgaW5mbGF0
ZXI4LmRlY29tcHJlc3MoLTEpKQotCi0gICAgZGVmIHRlc3RfcmFuZG9tX3NlY3Rpb24oc2VsZik6
Ci0gICAgICAgIHJhbmRvbS5zZWVkKGE9MCkKLSAgICAgICAgc291cmNlID0gJycuam9pbigKLSAg
ICAgICAgICAgIFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIGkgaW4geHJhbmdlKDEw
MCAqIDEwMjQpXSkKLQotICAgICAgICBjaHVua2VkX2lucHV0ID0gZ2V0X3JhbmRvbV9zZWN0aW9u
KHNvdXJjZSwgMTApCi0gICAgICAgIHByaW50ICJJbnB1dCBjaHVuayBzaXplczogJXIiICUgW2xl
bihjKSBmb3IgYyBpbiBjaHVua2VkX2lucHV0XQotCi0gICAgICAgIGRlZmxhdGVyID0gdXRpbC5f
RGVmbGF0ZXIoMTUpCi0gICAgICAgIGNvbXByZXNzZWQgPSBbXQotICAgICAgICBmb3IgY2h1bmsg
aW4gY2h1bmtlZF9pbnB1dDoKLSAgICAgICAgICAgIGNvbXByZXNzZWQuYXBwZW5kKGRlZmxhdGVy
LmNvbXByZXNzKGNodW5rKSkKLSAgICAgICAgY29tcHJlc3NlZC5hcHBlbmQoZGVmbGF0ZXIuY29t
cHJlc3NfYW5kX2ZpbmlzaCgnJykpCi0KLSAgICAgICAgY2h1bmtlZF9leHBlY3RhdGlvbiA9IGdl
dF9yYW5kb21fc2VjdGlvbihzb3VyY2UsIDEwKQotICAgICAgICBwcmludCAoIkV4cGVjdGF0aW9u
IGNodW5rIHNpemVzOiAlciIgJQotICAgICAgICAgICAgICAgW2xlbihjKSBmb3IgYyBpbiBjaHVu
a2VkX2V4cGVjdGF0aW9uXSkKLQotICAgICAgICBpbmZsYXRlciA9IHV0aWwuX0luZmxhdGVyKDE1
KQotICAgICAgICBpbmZsYXRlci5hcHBlbmQoJycuam9pbihjb21wcmVzc2VkKSkKLSAgICAgICAg
Zm9yIGNodW5rIGluIGNodW5rZWRfZXhwZWN0YXRpb246Ci0gICAgICAgICAgICBkZWNvbXByZXNz
ZWQgPSBpbmZsYXRlci5kZWNvbXByZXNzKGxlbihjaHVuaykpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNodW5rLCBkZWNvbXByZXNzZWQpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnJywgaW5mbGF0ZXIuZGVjb21wcmVzcygtMSkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvUkVBRE1FIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0
ZGF0YS9SRUFETUUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwMDFhYTU1OTVjZGQx
MzQwN2Y1NzI4ZWNkNTMyYTVkMTIyNjNlZmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9SRUFETUUKKysrIC9kZXYv
bnVsbApAQCAtMSArMCwwIEBACi1UZXN0IGRhdGEgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJfd3NoLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91c2VyX3dzaC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMzY3Zjk5MzBmNzgyNGMzYTUzNTkxNGE1YjM3NzlmNmI2ZmJh
MjQzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJfd3NoLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNDIgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hh
bmRzaGFrZShyZXF1ZXN0KToKLSAgICByYWlzZSBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2Vw
dGlvbigiYWJvcnQgZm9yIHRlc3QiKQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEo
cmVxdWVzdCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24oImFi
b3J0IGZvciB0ZXN0IikKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90
ZXN0ZGF0YS9oYW5kbGVycy9ibGFua193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdmODdjNmFmMjNkZjA4ZWZlMzU3NWNhZTIwOGRlNTAyMmNiYWE2NjAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0
YS9oYW5kbGVycy9ibGFua193c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0j
IENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0jIGludGVudGlvbmFsbHkgbGVmdCBibGFuawpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzEzOWZhMTc2Y2MzNDE3YmU5NmRlNzk4ZTZhODFl
ZDE0OWIxOTkyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWRlZiB3ZWJf
c29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBpZiByZXF1ZXN0LndzX29y
aWdpbiA9PSAnaHR0cDovL2V4YW1wbGUuY29tJzoKLSAgICAgICAgcmV0dXJuCi0gICAgcmFpc2Ug
VmFsdWVFcnJvcignVW5hY2NlcHRhYmxlIG9yaWdpbjogJXInICUgcmVxdWVzdC53c19vcmlnaW4p
Ci0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ud3JpdGUoJ29yaWdpbl9jaGVja193c2gucHkgaXMgY2FsbGVkIGZvciAlcywg
JXMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2Us
IHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3RyYW5z
ZmVyX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlv
bl9pbl90cmFuc2Zlcl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ODJk
MDIzMWVmMDBmMDJlMGQ5MGRmNjc4ZWI4MDRiYTQzODYyZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVy
cy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ0
ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0
cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkV4Y2VwdGlvbiBpbiB3ZWJfc29ja2V0
X3RyYW5zZmVyX2RhdGEoKS4KLSIiIgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRz
aGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0
YShyZXF1ZXN0KToKLSAgICByYWlzZSBFeGNlcHRpb24oJ0ludGVudGlvbmFsIEV4Y2VwdGlvbiBm
b3IgJXMsICVzJyAlCi0gICAgICAgICAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCBy
ZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3ZTdiZTE4MDJlM2M2NmM2Mzg0OTg3
NWVhMzVlMjQwNmEzODFlNjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9fd3NoX2F0X3Ro
ZV9lbmQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5
LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotCi0iIiJDb3JyZWN0IHNpZ25hdHVyZXMsIHdyb25nIGZpbGUgbmFtZS4KLSIiIgotCi0KLWRl
ZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQot
ZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdGUoCi0gICAgICAgICAgICAnc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5IGlzIGNh
bGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVx
dWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub25fY2FsbGFibGVfd3NoLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjYzNTJlYjRjYTIzODk1MjIzOWUzNTQyNzI4
Y2UzYjM4ZDgzZGQ2Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub25fY2FsbGFibGVfd3No
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29v
Z2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQot
IiIiTm9uLWNhbGxhYmxlIGhhbmRsZXJzLgotIiIiCi0KLQotd2ViX3NvY2tldF9kb19leHRyYV9o
YW5kc2hha2UgPSBUcnVlCi13ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEgPSAxCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJz
L3N1Yi9wbGFpbl93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9w
bGFpbl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiM2ZmNjkzMDI1NmJj
MWIxM2UyYzRjMmQxYzg0M2M0YjdjODBhYTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxh
aW5fd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAw
OSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBh
c3MKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0ZSgnc3ViL3BsYWluX3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAl
cycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwg
cmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YWQzZjJlODU5MTBjYjY3Y2EyMzZiMTQzZmQxMGE1YTI3
N2VkZWQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyX3dzaC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3BsYWluX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVz
dGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfaGFuZHNo
YWtlX3NpZ193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9u
Z19oYW5kc2hha2Vfc2lnX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJm
NjU5YmM5YWYwMWMxMDdlZjM1MDhiMmI1ZDAxNzNkY2Y1OTAwOS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRs
ZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1
ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0
cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldyb25nIHdlYl9zb2NrZXRfZG9fZXh0
cmFfaGFuZHNoYWtlIHNpZ25hdHVyZS4KLSIiIgotCi0KLWRlZiBub193ZWJfc29ja2V0X2RvX2V4
dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJh
bnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoCi0gICAg
ICAgICAgICAnc3ViL3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5IGlzIGNhbGxlZCBmb3IgJXMs
ICVzJyAlCi0gICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJv
dG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwZTJlNTUwNzk0YjdiOTkwZTBiNDRiMzNj
ZmMyZDRkMTUyZTZjMDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJf
c2lnX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIw
MDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0KLSIiIldyb25nIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSgpIHNpZ25hdHVyZS4KLSIi
IgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBw
YXNzCi0KLQotZGVmIG5vX3dlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoCi0gICAgICAgICAgICAnc3ViL3dyb25nX3RyYW5zZmVy
X3NpZ193c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAgICAgICAgIChyZXF1ZXN0
LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDAyOGFlNDc3NmNkNjc5ZGYzYjQzNDY4Yzcx
NjMxYTE1YWYwYjE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRh
L2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9ibGFua193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29y
aWdpbl9jaGVja193c2gucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTUzMWY5MTM0MWY4NmZhYWU0ODEwYTdjMDIzNGY2
NzQwN2IzMmEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL1JFQURNRQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlZTcyNDBkYTI4OTky
MjNjNmMyMjQ5OTczNmFjYmRjNjNhZmQ1ODIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDM3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvX19pbml0X18ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvZW5k
dG9lbmRfd2l0aF9leHRlcm5hbF9zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L21vY2sucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L211eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3J1
bl9hbGwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3NldF9zeXNfcGF0aC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdF9kaXNwYXRjaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9lbmR0b2VuZC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvdGVzdF9leHRlbnNpb25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFr
ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2h0dHBfaGVh
ZGVyX3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RfbW9jay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tc2d1dGlsLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0X211eC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9zdHJlYW0ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L3Rlc3Rfc3RyZWFtX2hpeGllNzUucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3RfdXRpbC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2QzMmE2YjZi
YmJmODZjZTg4Y2U2OWFiYzNkZTVhNTM0MDAxNmM2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL0NPUFlJTkcKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL1JFQURNRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3NldHVwLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvX19pbml0X18ucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3
ZTZmMmY4YmMyMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotIyBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3Rvcnkg
Zm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L2NlcnQvY2FjZXJ0LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NhY2VydC5wZW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkYWRhZTEyMWJkZDNhZGI3NDQzODNjZDNiZjA4YzIy
NmY4NTU0YmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L2NlcnQvY2FjZXJ0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAK
LS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ3ZEQ0NBaVdnQXdJQkFnSUpBS3FWZ2hr
R0YxclNNQTBHQ1NxR1NJYjNEUUVCQlFVQU1Fa3hDekFKQmdOVgotQkFZVEFrcFFNUTR3REFZRFZR
UUlFd1ZVYjJ0NWJ6RVVNQklHQTFVRUNoTUxjSGwzWldKemIyTnJaWFF4RkRBUwotQmdOVkJBTVRD
M0I1ZDJWaWMyOWphMlYwTUI0WERURXlNRFl3TmpBM01qUXpNMW9YRFRNNU1UQXlNekEzTWpRegot
TTFvd1NURUxNQWtHQTFVRUJoTUNTbEF4RGpBTUJnTlZCQWdUQlZSdmEzbHZNUlF3RWdZRFZRUUtF
d3R3ZVhkbAotWW5OdlkydGxkREVVTUJJR0ExVUVBeE1MY0hsM1pXSnpiMk5yWlhRd2daOHdEUVlK
S29aSWh2Y05BUUVCQlFBRAotZ1kwQU1JR0pBb0dCQUtvU0VXMmJpUXhWck1NS2RuLzhQSnpEWWlT
WERQUjlXUWJMUlJRMUdtNWprQ1lpYWhYVwotdTJDYlRUaGZQUGZpMk5IQTNJK0hsVDdnTzl5UjdS
VlV2TjZJU1V6R3dYREVxNGY0VU5xdFFPaFFhcXFLK0NaOQotTE8vQmhPL1lZZk5yYlNQbFl6SFVL
YVQ5ZXNlN3hPOVZ6VktMVytxVWYyTWpoNC8rU3p4QkROUDdBZ01CQUFHagotZ2Fzd2dhZ3dIUVlE
VlIwT0JCWUVGT3NXZHhDU3V5aHdhWmVhYjZCb1RobzMrK2J6TUhrR0ExVWRJd1J5TUhDQQotRk9z
V2R4Q1N1eWh3YVplYWI2Qm9UaG8zKytiem9VMmtTekJKTVFzd0NRWURWUVFHRXdKS1VERU9NQXdH
QTFVRQotQ0JNRlZHOXJlVzh4RkRBU0JnTlZCQW9UQzNCNWQyVmljMjlqYTJWME1SUXdFZ1lEVlFR
REV3dHdlWGRsWW5OdgotWTJ0bGRJSUpBS3FWZ2hrR0YxclNNQXdHQTFVZEV3UUZNQU1CQWY4d0RR
WUpLb1pJaHZjTkFRRUZCUUFEZ1lFQQotZ3NNSTFXRVlxTncvamhVSWRyVEJjQ3hKMFg2aEp2QTl6
aUtBTlZtMVJzKzRQM1lEQXJrUThiQ3I2eFkrS3c3cwotWnAweUU3ZE04R01kaStEVTZoTDN0M0U1
ZU1rVFMxeVpyOVdDSzRmMlJMbytldDk4c2VsWnlkcEhlbUYzREpKMwotZ0FqOFN4NExCYUc4Q2Iv
V25FTVB2M014RzNmQkU1ZmF2RjZWNGpVMDdoUT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2Vy
dC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1Mzc5YTcyYjBkYWM1ZjQxOTc5
YzgwMmM2NjNkZjhiODhkZWE4MjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2VydC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw2
MSArMCwwIEBACi1DZXJ0aWZpY2F0ZToKLSAgICBEYXRhOgotICAgICAgICBWZXJzaW9uOiAzICgw
eDIpCi0gICAgICAgIFNlcmlhbCBOdW1iZXI6IDEgKDB4MSkKLSAgICAgICAgU2lnbmF0dXJlIEFs
Z29yaXRobTogc2hhMVdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIElzc3VlcjogQz1KUCwgU1Q9
VG9reW8sIE89cHl3ZWJzb2NrZXQsIENOPXB5d2Vic29ja2V0Ci0gICAgICAgIFZhbGlkaXR5Ci0g
ICAgICAgICAgICBOb3QgQmVmb3JlOiBKdW4gIDYgMDc6MjU6MDggMjAxMiBHTVQKLSAgICAgICAg
ICAgIE5vdCBBZnRlciA6IE9jdCAyMyAwNzoyNTowOCAyMDM5IEdNVAotICAgICAgICBTdWJqZWN0
OiBDPUpQLCBTVD1Ub2t5bywgTz1weXdlYnNvY2tldCwgQ049cHl3ZWJzb2NrZXQKLSAgICAgICAg
U3ViamVjdCBQdWJsaWMgS2V5IEluZm86Ci0gICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRo
bTogcnNhRW5jcnlwdGlvbgotICAgICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgxMDI0IGJpdCkK
LSAgICAgICAgICAgICAgICBNb2R1bHVzICgxMDI0IGJpdCk6Ci0gICAgICAgICAgICAgICAgICAg
IDAwOmRlOjEwOmNlOjNhOjVhOjA0OmE0OjFjOjI5OjkzOjVjOjIzOjgyOjFhOgotICAgICAgICAg
ICAgICAgICAgICBmMjowNjowMTplNjoyYjphNDowZjpkZDo3Nzo0OTo3Njo4OTowMzphMjoyMToK
LSAgICAgICAgICAgICAgICAgICAgZGU6MDQ6NzU6YzY6ZTI6ZGQ6ZmI6MzU6Mjc6M2E6YTI6OTI6
OGU6MTI6NjI6Ci0gICAgICAgICAgICAgICAgICAgIDJiOjNlOjFmOmY0Ojc4OmRmOmI2Ojk0OmNi
OjI3OmQ2OmNiOmQ2OjM3OmQ3OgotICAgICAgICAgICAgICAgICAgICA1YzowODpmMDowOTozZTpj
OTpjZToyNDoyZDowMDpjOTpkZjo0YTplMDo5OToKLSAgICAgICAgICAgICAgICAgICAgZTU6ZmI6
MjM6YTk6ZTI6ZDY6Yzk6M2Q6OTY6ZmE6MDE6ODg6ZGU6NWE6ODk6Ci0gICAgICAgICAgICAgICAg
ICAgIGIwOmNmOjAzOjY3OjZmOjA0Ojg2OjFkOmVmOjYyOjFjOjU1OmE5OjA3OjlhOgotICAgICAg
ICAgICAgICAgICAgICAyZTo2NjoyYTo3Mzo1Yjo0Yzo2MjowMzpmOTo4Mjo4MzpkYjo2ODpiZjpi
ODoKLSAgICAgICAgICAgICAgICAgICAgNGI6MGI6OGI6OTM6MTE6Yjg6NTQ6NzM6N2IKLSAgICAg
ICAgICAgICAgICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCi0gICAgICAgIFg1MDl2MyBleHRl
bnNpb25zOgotICAgICAgICAgICAgWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKLSAgICAgICAg
ICAgICAgICBDQTpGQUxTRQotICAgICAgICAgICAgTmV0c2NhcGUgQ2VydCBUeXBlOiAKLSAgICAg
ICAgICAgICAgICBTU0wgU2VydmVyCi0gICAgICAgICAgICBOZXRzY2FwZSBDb21tZW50OiAKLSAg
ICAgICAgICAgICAgICBPcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZQotICAgICAgICAgICAg
WDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIDgyOkExOjcz
OjhCOjE2OjBDOjdDOkU0OkQzOjQ2Ojk1OjEzOjk1OjFBOjMyOkMxOjg0OkU5OjA2OjAwCi0gICAg
ICAgICAgICBYNTA5djMgQXV0aG9yaXR5IEtleSBJZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAg
ICBrZXlpZDpFQjoxNjo3NzoxMDo5MjpCQjoyODo3MDo2OTo5Nzo5QTo2RjpBMDo2ODo0RToxQToz
NzpGQjpFNjpGMwotCi0gICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMVdpdGhSU0FFbmNyeXB0
aW9uCi0gICAgICAgIDZiOmIzOjQ2OjI5OjAyOmRmOmIwOmM4OjhlOmM0OmQ3OjdmOmEwOjFlOjBk
OjFhOmViOjJmOgotICAgICAgICBkZjpkMTo0ODo1NzozNjo1Zjo5NTo4YzoxYjpmMDo1MTpkNjo1
MjplNzo4ZDo4NDozYjo5ZjoKLSAgICAgICAgZDg6ZWQ6MjI6OWM6YWE6YmQ6ZWU6OWI6OTA6MWQ6
ODQ6YTM6NGM6MGI6Y2I6ZWI6NjQ6NzM6Ci0gICAgICAgIGJhOmY3OjE1OmNlOmRhOjVmOmRiOjhi
OjE1OjA3OmE2OjI4OjdmOmI5OjhjOjExOjliOjY0OgotICAgICAgICBkMzpmMTpiZTo1Mjo0Zjpj
MzpkODo1ODpmZTpkZTo1Njo2Mzo2MzozYjo1MTplZDphNzo4MToKLSAgICAgICAgZjk6MDU6NTE6
NzA6NjM6MzI6MDk6MGU6OTQ6N2U6MDU6ZmU6YTE6NTY6MTg6MzQ6OTg6ZDU6Ci0gICAgICAgIDk5
OjFlOjRlOjI3OjM4Ojg5OjkwOjZhOmU1OmNlOjYwOjM1OjAxOmY1OmRlOjM0OjYwOmIxOgotICAg
ICAgICBjYjphZQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDbURDQ0FnR2dBd0lC
QWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURCSk1Rc3dDUVlEVlFRR0V3SktVREVPCi1NQXdHQTFV
RUNCTUZWRzlyZVc4eEZEQVNCZ05WQkFvVEMzQjVkMlZpYzI5amEyVjBNUlF3RWdZRFZRUURFd3R3
Ci1lWGRsWW5OdlkydGxkREFlRncweE1qQTJNRFl3TnpJMU1EaGFGdzB6T1RFd01qTXdOekkxTURo
YU1Fa3hDekFKCi1CZ05WQkFZVEFrcFFNUTR3REFZRFZRUUlFd1ZVYjJ0NWJ6RVVNQklHQTFVRUNo
TUxjSGwzWldKemIyTnJaWFF4Ci1GREFTQmdOVkJBTVRDM0I1ZDJWaWMyOWphMlYwTUlHZk1BMEdD
U3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCCi1nUURlRU00NldnU2tIQ21UWENPQ0d2SUdBZVly
cEEvZGQwbDJpUU9pSWQ0RWRjYmkzZnMxSnpxaWtvNFNZaXMrCi1IL1I0MzdhVXl5Zld5OVkzMTF3
SThBayt5YzRrTFFESjMwcmdtZVg3STZuaTFzazlsdm9CaU41YWliRFBBMmR2Ci1CSVlkNzJJY1Zh
a0htaTVtS25OYlRHSUQrWUtEMjJpL3VFc0xpNU1SdUZSemV3SURBUUFCbzRHUE1JR01NQWtHCi1B
MVVkRXdRQ01BQXdFUVlKWUlaSUFZYjRRZ0VCQkFRREFnWkFNQ3dHQ1dDR1NBR0crRUlCRFFRZkZo
MVBjR1Z1Ci1VMU5NSUVkbGJtVnlZWFJsWkNCRFpYSjBhV1pwWTJGMFpUQWRCZ05WSFE0RUZnUVVn
cUZ6aXhZTWZPVFRScFVUCi1sUm95d1lUcEJnQXdId1lEVlIwakJCZ3dGb0FVNnhaM0VKSzdLSEJw
bDVwdm9HaE9HamY3NXZNd0RRWUpLb1pJCi1odmNOQVFFRkJRQURnWUVBYTdOR0tRTGZzTWlPeE5k
L29CNE5HdXN2MzlGSVZ6WmZsWXdiOEZIV1V1ZU5oRHVmCi0yTzBpbktxOTdwdVFIWVNqVEF2TDYy
Unp1dmNWenRwZjI0c1ZCNllvZjdtTUVadGswL0crVWsvRDJGaiszbFpqCi1ZenRSN2FlQitRVlJj
R015Q1E2VWZnWCtvVllZTkpqVm1SNU9KemlKa0dybHptQTFBZlhlTkdDeHk2ND0KLS0tLS0tRU5E
IENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0
LnAxMiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMgpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMTRlMTM5OTI3OTgyZmE5ODIzYTU3MjMxYWYxMTM0OTlkNmE1YThiMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyNTgyCnpjbVkrRlhIKmppN0tNYCMwdEJnMnF6
Rml0UCFmPFBIQS0qTkxvQFZfZ2NmMHQ4V0IoI0k/eyVZUkZ4KnVgJSl5Sgp6MW5HIUszNWJxaFhy
WDdBYjlRJWpmODZ1bHglWnYtPiVIXkFhWnB3ZWtQNDJZbn1nNnYjT3VZQThHdG12VmpTSWoKekZw
aDVVKChaJWZBU3dTdWtZWEdwPUYqQSkwUmZpPGAlZU9kXkZwQmktZiNzN2Zpcj8+MmNXJFQjOzIq
R0FQX0FlCnoxXyNscm4yRShlS09NSjZOMjZZSm5lX0BocH1TS1BYVUI3Rk1lcl9+NXwxcWdDe1Rx
bm5CdXYxJGtwcDVPQnolQAp6PG15U3crP1k+XmpBWjQjWEEtfSohUXNidU9oVyhzTzgzNjYoJDso
MUE+bW8oTy0leChobig9eVo7eX5ORyNRWDEKemdIa1NpXl44Y3Y0VFRTTDl2bjVxUig+X0QzZiZv
Yypqd1BnSSNLQFEjQXNMKUQ7QkQmV2IyZCtJMV5KN24+fVlaCnpiQ1hvOWZPQGchQGRXWWEyViV9
Oykhezx6RGN8KHB2SklheFc3TmRPJU82Zj5yJmFPcnBIa3tvX1I5bVE0N3VvYgp6P2w+OXxufFgz
YGFncF5HO0x3WFI1PChscitSPGNMNWpUUSg/XkQ8a1JvIUhfVCNwP3kzZH1edENZViE4Ul5OP30K
ekMqJVhtOUxlZj5qN2hsci0/akhscHx3ZkEmXm4tczs8IXokcUQxeFBxIThLUTF9fmR1cHd+Qk0x
Z3N+QEFvO0NxCnp3UmdVfDJeZH1OLWdWO0BhWWt1OEklfXw8bDZRTT89ZH5GWXBiR0ZIOSZ2TmdL
WipTeWNJU3xtY3VPUj9sJkNPdwp6c3t6ZDV6bWVseHFOMURReXt9UGdCPXUjZnpJTlBrQjBvTipj
azN2YCsxeyFZWFB+e0VWSTdWcWgqfnVhV19+VUMKemxSMzNSWjA1SGhrQy0xZUlwKS1AWV55dmMt
fFIlISo5ZHc3bmZXKXlqY0hJWWY2cj1hQ3QoVWhpLUZKbTJue18pCnole3VsQlVYUmAyPD5seH1l
R21TbVJKPjVvdGtAKCtwanNQcTs0aFo2RklLbCN7bnhQIUFMITI4X19BWWZsYFZnewp6bFJSYUFS
fFZteTFfYF5iYmpacnpBe1EkbFllaklZZF5BJFo+VyZqeW5NPUtgVGw0d1YpM3dAZDFKY2AtNS1D
R0oKenhxXkA4XyghPFpGMnFsaF9afX1ucj9TJjUqeitGQCl2KFoxRUlzO0htfSExfk1UTCFqMUBj
JFpITFJ9Vig9O15vCnpkVXBmeT9vPnl6b2xfc2k8PFVFQj10KGVlQnpnSl5XWXdzSENHOTM0cyRk
KUBxcUh3Z155Wk17YF5qSiE5O3RyNgp6ZW9VYXkmJCtCeUd8Tl5fem9BSF50WUlnPmhhWXd8QHxj
MzFedyhuVWQ3ayhZbUVKNzZWWTc5KyhDKF8kOzFNc1UKemhpTmkrQjVnU3JEanw5PjxAPzZSJjh6
Ym04YnI/Qy1ObjFjaygrPE5LJTcpNnYtd1dxND1NX1RidDE5NHpVKnlGCnpoPG90PEhCV25veEIl
MWs5KE0wbzxOZylSZ0hTKCM/ZWRFUUIhXnxGay1fKGFgYlVCTEFLKmh+YXp+IV94dT1UNAp6Nkc1
Sy1hWEpvdEhRbEVDOENVNXxSeU1SdVFrWEUpP152NihpPU11KT0kXm8lMCF5czVHVlJhWFoyUzJI
NEk4M0wKenEpYmB8UHh7KDg5VzMyenE0c3F6SCtCQUtQOXVhREVwRDhJSUE5RC1INDVDJVZUP0pK
I01hK0JAaTlNUGRGLSMjCnpOeEY1VHV9aXpfaHokU0taMF9fJiFZcDF5YWRWem9jQEV5K0JlZkpD
dENTVmQ1KEp5KDxDNkljQ1d9RG1Id0M4VAp6UntrcXZSQD8zcnpMRzIkWmRjeC01dkZSQGQkUSNE
RCt+e2RoQG1kX2VgQkI2KlVZNlIrNF4jVSV6NGx0eDlCJTsKek5WOHoqe0djR007Z3EyUnR5ZGp7
SDBTMHAjejw2JTdtMyElez9NUXVhPGBAZTViT3RiZCFFYz9HXnV4ZjRneGNJCnotRjdTVFlpfnZE
Ym12Q1ozTkRjZkhqOD5DOUZWNmpkMX0ocFN3cmdHaypRWjlScjQpNiFzU2tUVXFieGJhZWEydQp6
d1NgJHlvc1EpZWIlb192Sk8qIUFgZFI7WTRrPiZxWXp1YS1aTkU8M0ZFPUkrZVNVO3ghcHReQTM1
Pm9Jb1BgSnEKelpsfilyQzYwTCtrU3hBZ29QRXxyR2pWQD8yQXkqWGI9JGNgY19MMz1FemhqQlVE
PWgxXzQlZUJDZmxqJkVIWm1PCnpzezFifE51eDYrO0sjS0I9VGtffGlrfHsqMDFkayQ5S2E2YGNS
VT1NY1lpTiFrLWEpMlBEMzFoPGNUcyVrUGhvWgp6Tykyd19UOS04dzJOTSYmcTJwbDReS3F9Q1Bl
PWw5aHEkVzQhdDtKRCV8VUooMjh2RGJNKkw+VkY3YldfWHtiMTQKekdOdyh3PkVfUzlgPDt4UWxQ
YEBzZD42bTNuMilMKTBwIVhSckQjMjVpSWtSRHMpMXVqTiVTc3l3IzYydmR2JkFsCnpjZGotWWwj
NitAYTBXc2NVPDNgZ3ZXJDJ3LSheSGZFUnl4c05zcTZtSzBkODs/MExTZU5oJU5FZTBCWUo0SUwo
YQp6JFdYbmQpUEJXPEFUa3t5JTJTOUdQYTJxeUpXJF5KSl9jb19YUDFtOUV9ailRP15sJCMqTUR4
UDV8bVkxemNxM3kKemI9QHp5Q1h1Z3dke05qeD9pMjdqK3pYTzQqVj59WmUtekJReClIeW53TGBO
aighOXQpNTRkTzt6VFZ+LU8jO1U7CnpNd3AwUFUtdVVMPyMjOEwtKSZ2bWJuQW1uI0AmYT52PWNQ
fUVVUUpWd2FEdzlWPC1Jd1l0aVQ5dyhUTWVhMiVEeQp6fEE0MCRONXVvaVFFXl97UzEtaWBxNWx0
dHBnPlNENHBhZmhmbEJ8NlBFPiE+c2hXa29FbVpoZyt+MEhwPDNLVEAKejlqayRxTUM9MCZCYmte
ZlJvNGYzOEp+aVdDfHhHUDBgd1ozRiNrOGcqSWROWSRHRi1BeDhePERyQl5qMjhYYjZzCnpSfDtW
dmFyJTx8VFpLfj4zMGtEMylXJEFEIyh0dGAjQHg3UThPWWFwVF9KeU0xdlQ/bGJ4LStfRihKRiV5
UzBPJAp6cFMjbH13KjBqPmJ9TTNlOzRJPntwTU0+cyVgP2ZTQUVfUWJgQW4+X1Yha2l9JDl3TU45
KGZVMXVKR20wTWk3aEsKekE1bDBlMXdWY14kcWw/NWdtPjhFdkJwU2FXZjVUSWczWlNidUpocDth
JShaK2tje2NkdjFQdVgkZTJHQU4/SmY4CnpXS05nUzwoTTJGTlVgUnhkQkd9Zj1TMXJuUSplUjEy
cUZfQyYmcG5AYHklQ35MOV5RX1o5bGgmRz1YdkdDITQxMAp6eW4pNW89KXgyaUpZK14/XkVMam50
SEhgfUspemE/ST18diEkaEwwbiZHenlwemFMd05kZU09T2pXfC0tPW1SX2oKenl0P35WeF9fOUJF
dmNoTD85aHVVb2ItNW4rcjE/PHhAY2d9NWF8VnxGY0ZRTyplSXB3WkVuflZHTGVxdlNAV2syCnop
IStEMy07ezRAT08pYitiUU8jPS1FK0JlT0BmITM8aVQwbWIycGIzODh7R0lSYXJqZG5UaSVAPzRx
d3kjcTYwWQp6cWlBfHt0Nm80OUVNMThKJnc4REEjd1FERHNGd04kSEcqTVRMMjFCUWopWVJgVzVM
O1pmTU08KnJMPUZJZ3wwYkoKelQ5cjdGbEJMTF5yViUxVU8hM3xHREVhTSFqSFBMcj81UUJ1Q0Mh
Vyk+ZHJmXlJDYGA3WVJZWihLPmllMD5wSmReCnpKV19IeyUpXmMhNj5sfDlQOD9jPWooQjU3WUp6
OD9YeVF6RTl1R2F9ZFYwUFRwMyE7cCFTRil9dC1pPkM8RWRIKwp6TUtBU25WIyEmU1dmZH0wZGxq
WHN5UWZ6c0A2aTArZHFTSEpMfkY3fm90fCRId2YrRiowakNLKnc1V29GQFE5aE4KemhsayVTe2g2
QzU3Q0kyXzVSOTtmMztwLTE+RFVuKlVeZW9HamhxbzsqUioka1ZFMDFKPlRKUVJzdjlveiZrITN6
CnprV1Q7KjBRZTBNM1VDTHcwRD1KK2ZHZmNGdkpVfGBVZHNLXzM0dFR2SHtmJi1ZOFdGR2g/XlAh
WDU7eT1GWnVEcwpmZnJXazAlTShPR25UTU48aCZxQHlMZERVXyZNY0FmP3wxa01lalVObwoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2tleS5wZW0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC9rZXkucGVt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYWU4NTgzMThmMjliYTZiNDYyM2JkNWZi
YzRhMDhjZTczZDkwMzExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2tleS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCww
IEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlDWGdJQkFBS0JnUURlRU00
NldnU2tIQ21UWENPQ0d2SUdBZVlycEEvZGQwbDJpUU9pSWQ0RWRjYmkzZnMxCi1KenFpa280U1lp
cytIL1I0MzdhVXl5Zld5OVkzMTF3SThBayt5YzRrTFFESjMwcmdtZVg3STZuaTFzazlsdm9CCi1p
TjVhaWJEUEEyZHZCSVlkNzJJY1Zha0htaTVtS25OYlRHSUQrWUtEMjJpL3VFc0xpNU1SdUZSemV3
SURBUUFCCi1Bb0dCQUl1Q3VWMVZjbmI3cm04Q3d0Z1pQNVhnbVk4dlNqeFRsZGFmYTZYdmF3RVlV
VFAwUzc3di8xbGxnMVl2Ci1VSVYrSStQUWdHOW9Wb1lPbDIyTG9pbUhTL1ozZTFmc290NXREWXN6
R2U4L0drc3Q0b2FSZVNveHZCVWE2V1hwCi1RU283WUZDYWp1SHRFK1cvZ3pGK1VIYmR6elhJRGpR
WjMxNExORjV0KzRVbnNFUEJBa0VBK2dpckltcVdvTTJ0Ci0zVVI4ZjhvZWtFUndzbUVNZjlESDVZ
cEg0Y3ZVbnZJK2t3ZXNDL3IyVThTaG8rK2Z5RU1VTm03YUlYR3FOTGdhCi1vZ0FNKzROWDRRSkJB
T05kU3hTYXkyMmVnVEdOb0loTG5kbGpXa3VPdC85RldqMmtsZi80UXhENGJsTUpRNU9xCi1RZE9H
QWg3blZRanBQTFE1RDdDQlZBS3BHTTJDRCtRSkJ0c0NRRVAya3ozNXB4UHlsRzN1cmNDMm1mUXhC
a2tXCi1aQ1ZpQk5QNThHd0owYk9hdVRPU0JFd0ZYV3VMcVR3OGFEd3hMNDlVTm1xYzBOMGZwZTJm
QWVoajNVRUNRUUNtCi1GSC9EalU4THc3eWJkZGpOdG02WFhQdVlOYWd4ejNjYmtCNEIzRmNoRGxl
SVVEd01vVkYwTVc5Ykk1LzU0bVYxCi1RRGsxdFVLb3J0eHZRWkphQUQ0QkFrRUFoR09IUXFQZDZi
QkJvRkJ2cGFMelBKTXh3TEtyQitXdGtxL1FsQzcyCi1DbFJpTW4yZzhTQUxpSUwzQkRnR1hLY0tF
L1d5N2pvL2FmL0pDelEvY1BxdC9BPT0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODEyNDE2Yjg2
YjVlNThmZGY1MmUxZTU5NmM3MWRiZWIxYjQ0NTFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2FjZXJ0
LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NlcnQucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2xpZW50X2Nl
cnQucDEyCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L2NlcnQva2V5LnBlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2Ns
aWVudF9mb3JfdGVzdGluZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4ZDE4NTcxMmVlYTQwOGEyM2QyNGZiY2NlMWFh
ZjQ5M2E1YWE3ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weQorKysgL2Rldi9udWxsCkBAIC0xLDEx
MDAgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBH
b29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
Ci0iIiJXZWJTb2NrZXQgY2xpZW50IHV0aWxpdHkgZm9yIHRlc3RpbmcuCi0KLVRoaXMgbW9kdWxl
IGNvbnRhaW5zIGhlbHBlciBtZXRob2RzIGZvciBwZXJmb3JtaW5nIGhhbmRzaGFrZSwgZnJhbWUK
LXNlbmRpbmcvcmVjZWl2aW5nIGFzIGEgV2ViU29ja2V0IGNsaWVudC4KLQotVGhpcyBpcyBjb2Rl
IGZvciB0ZXN0aW5nIG1vZF9weXdlYnNvY2tldC4gS2VlcCB0aGlzIGNvZGUgaW5kZXBlbmRlbnQg
ZnJvbQotbW9kX3B5d2Vic29ja2V0LiBEb24ndCBpbXBvcnQgZS5nLiBTdHJlYW0gY2xhc3MgZm9y
IGdlbmVyYXRpbmcgZnJhbWUgZm9yCi10ZXN0aW5nLiBVc2luZyB1dGlsLmhleGlmeSwgZXRjLiB0
aGF0IGFyZSBub3QgcmVsYXRlZCB0byBwcm90b2NvbCBwcm9jZXNzaW5nCi1pcyBhbGxvd2VkLgot
Ci1Ob3RlOgotVGhpcyBjb2RlIGlzIGZhciBmcm9tIHJvYnVzdCwgZS5nLiwgd2UgY3V0IGNvcm5l
cnMgaW4gaGFuZHNoYWtlLgotIiIiCi0KLQotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGVycm5vCi1p
bXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgcmUKLWltcG9y
dCBzb2NrZXQKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCB0aW1lCi0KLWZyb20gbW9kX3B5d2Vic29j
a2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQot
REVGQVVMVF9QT1JUID0gODAKLURFRkFVTFRfU0VDVVJFX1BPUlQgPSA0NDMKLQotIyBPcGNvZGVz
IGludHJvZHVjZWQgaW4gSUVURiBIeUJpIDAxIGZvciB0aGUgbmV3IGZyYW1pbmcgZm9ybWF0Ci1P
UENPREVfQ09OVElOVUFUSU9OID0gMHgwCi1PUENPREVfQ0xPU0UgPSAweDgKLU9QQ09ERV9QSU5H
ID0gMHg5Ci1PUENPREVfUE9ORyA9IDB4YQotT1BDT0RFX1RFWFQgPSAweDEKLU9QQ09ERV9CSU5B
UlkgPSAweDIKLQotIyBTdHJpbmdzIHVzZWQgZm9yIGhhbmRzaGFrZQotX1VQR1JBREVfSEVBREVS
ID0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCi1fVVBHUkFERV9IRUFERVJfSElYSUU3NSA9ICdV
cGdyYWRlOiBXZWJTb2NrZXRcclxuJwotX0NPTk5FQ1RJT05fSEVBREVSID0gJ0Nvbm5lY3Rpb246
IFVwZ3JhZGVcclxuJwotCi1XRUJTT0NLRVRfQUNDRVBUX1VVSUQgPSAnMjU4RUFGQTUtRTkxNC00
N0RBLTk1Q0EtQzVBQjBEQzg1QjExJwotCi0jIFN0YXR1cyBjb2RlcwotU1RBVFVTX05PUk1BTF9D
TE9TVVJFID0gMTAwMAotU1RBVFVTX0dPSU5HX0FXQVkgPSAxMDAxCi1TVEFUVVNfUFJPVE9DT0xf
RVJST1IgPSAxMDAyCi1TVEFUVVNfVU5TVVBQT1JURURfREFUQSA9IDEwMDMKLVNUQVRVU19OT19T
VEFUVVNfUkVDRUlWRUQgPSAxMDA1Ci1TVEFUVVNfQUJOT1JNQUxfQ0xPU1VSRSA9IDEwMDYKLVNU
QVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFUQSA9IDEwMDcKLVNUQVRVU19QT0xJQ1lfVklP
TEFUSU9OID0gMTAwOAotU1RBVFVTX01FU1NBR0VfVE9PX0JJRyA9IDEwMDkKLVNUQVRVU19NQU5E
QVRPUllfRVhUID0gMTAxMAotU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SID0gMTAxMQot
U1RBVFVTX1RMU19IQU5EU0hBS0UgPSAxMDE1Ci0KLSMgRXh0ZW5zaW9uIHRva2VucwotX0RFRkxB
VEVfRlJBTUVfRVhURU5TSU9OID0gJ2RlZmxhdGUtZnJhbWUnCi0jIFRPRE8oYmFzaGkpOiBVcGRh
dGUgYWZ0ZXIgbXV4IGltcGxlbWVudGF0aW9uIGZpbmlzaGVkLgotX01VWF9FWFRFTlNJT04gPSAn
bXV4X0RPX05PVF9VU0UnCi1fUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTiA9ICdwZXJtZXNz
YWdlLWRlZmxhdGUnCi0KLWRlZiBfbWV0aG9kX2xpbmUocmVzb3VyY2UpOgotICAgIHJldHVybiAn
R0VUICVzIEhUVFAvMS4xXHJcbicgJSByZXNvdXJjZQotCi0KLWRlZiBfc2VjX29yaWdpbl9oZWFk
ZXIob3JpZ2luKToKLSAgICByZXR1cm4gJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiAlc1xyXG4nICUg
b3JpZ2luLmxvd2VyKCkKLQotCi1kZWYgX29yaWdpbl9oZWFkZXIob3JpZ2luKToKLSAgICAjIDQu
MSAxMy4gY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJPcmlnaW46IiwgYSBVKzAwMjAgU1BB
Q0UgY2hhcmFjdGVyLAotICAgICMgYW5kIHRoZSAvb3JpZ2luLyB2YWx1ZSwgY29udmVydGVkIHRv
IEFTQ0lJIGxvd2VyY2FzZSwgdG8gL2ZpZWxkcy8uCi0gICAgcmV0dXJuICdPcmlnaW46ICVzXHJc
bicgJSBvcmlnaW4ubG93ZXIoKQotCi0KLWRlZiBfZm9ybWF0X2hvc3RfaGVhZGVyKGhvc3QsIHBv
cnQsIHNlY3VyZSk6Ci0gICAgIyA0LjEgOS4gTGV0IC9ob3N0cG9ydC8gYmUgYW4gZW1wdHkgc3Ry
aW5nLgotICAgICMgNC4xIDEwLiBBcHBlbmQgdGhlIC9ob3N0LyB2YWx1ZSwgY29udmVydGVkIHRv
IEFTQ0lJIGxvd2VyY2FzZSwgdG8KLSAgICAjIC9ob3N0cG9ydC8KLSAgICBob3N0cG9ydCA9IGhv
c3QubG93ZXIoKQotICAgICMgNC4xIDExLiBJZiAvc2VjdXJlLyBpcyBmYWxzZSwgYW5kIC9wb3J0
LyBpcyBub3QgODAsIG9yIGlmIC9zZWN1cmUvCi0gICAgIyBpcyB0cnVlLCBhbmQgL3BvcnQvIGlz
IG5vdCA0NDMsIHRoZW4gYXBwZW5kIGEgVSswMDNBIENPTE9OIGNoYXJhY3RlcgotICAgICMgKDop
IGZvbGxvd2VkIGJ5IHRoZSB2YWx1ZSBvZiAvcG9ydC8sIGV4cHJlc3NlZCBhcyBhIGJhc2UtdGVu
IGludGVnZXIsCi0gICAgIyB0byAvaG9zdHBvcnQvCi0gICAgaWYgKChub3Qgc2VjdXJlIGFuZCBw
b3J0ICE9IERFRkFVTFRfUE9SVCkgb3IKLSAgICAgICAgKHNlY3VyZSBhbmQgcG9ydCAhPSBERUZB
VUxUX1NFQ1VSRV9QT1JUKSk6Ci0gICAgICAgIGhvc3Rwb3J0ICs9ICc6JyArIHN0cihwb3J0KQot
ICAgICMgNC4xIDEyLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgIkhvc3Q6IiwgYSBVKzAw
MjAgU1BBQ0UKLSAgICAjIGNoYXJhY3RlciwgYW5kIC9ob3N0cG9ydC8sIHRvIC9maWVsZHMvLgot
ICAgIHJldHVybiAnSG9zdDogJXNcclxuJyAlIGhvc3Rwb3J0Ci0KLQotIyBUT0RPKHR5b3NoaW5v
KTogRGVmaW5lIGEgYmFzZSBjbGFzcyBhbmQgbW92ZSB0aGVzZSBzaGFyZWQgbWV0aG9kcyB0byB0
aGF0LgotCi0KLWRlZiByZWNlaXZlX2J5dGVzKHNvY2tldCwgbGVuZ3RoKToKLSAgICByZWNlaXZl
ZF9ieXRlcyA9IFtdCi0gICAgcmVtYWluaW5nID0gbGVuZ3RoCi0gICAgd2hpbGUgcmVtYWluaW5n
ID4gMDoKLSAgICAgICAgbmV3X3JlY2VpdmVkX2J5dGVzID0gc29ja2V0LnJlY3YocmVtYWluaW5n
KQotICAgICAgICBpZiBub3QgbmV3X3JlY2VpdmVkX2J5dGVzOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdDb25uZWN0aW9uIGNsb3NlZCBiZWZvcmUgcmVj
ZWl2aW5nIHJlcXVlc3RlZCBsZW5ndGggJwotICAgICAgICAgICAgICAgICcocmVxdWVzdGVkICVk
IGJ5dGVzIGJ1dCByZWNlaXZlZCBvbmx5ICVkIGJ5dGVzKScgJQotICAgICAgICAgICAgICAgIChs
ZW5ndGgsIGxlbmd0aCAtIHJlbWFpbmluZykpCi0gICAgICAgIHJlY2VpdmVkX2J5dGVzLmFwcGVu
ZChuZXdfcmVjZWl2ZWRfYnl0ZXMpCi0gICAgICAgIHJlbWFpbmluZyAtPSBsZW4obmV3X3JlY2Vp
dmVkX2J5dGVzKQotICAgIHJldHVybiAnJy5qb2luKHJlY2VpdmVkX2J5dGVzKQotCi0KLSMgVE9E
Tyh0eW9zaGlubyk6IE5vdyB0aGUgV2ViU29ja2V0SGFuZHNoYWtlIGNsYXNzIGRpdmVydHMgdGhl
c2UgbWV0aG9kcy4gV2UKLSMgc2hvdWxkIG1vdmUgdG8gSFRUUCBwYXJzZXIgYXMgc3BlY2lmaWVk
IGluIFJGQyA2NDU1LiBGb3IgSHlCaSAwMCBhbmQKLSMgSGl4aWUgNzUsIHBhY2sgdGhlc2UgbWV0
aG9kcyBhcyBzb21lIHBhcnNlciBjbGFzcy4KLQotCi1kZWYgX3JlYWRfZmllbGRzKHNvY2tldCk6
Ci0gICAgIyA0LjEgMzIuIGxldCAvZmllbGRzLyBiZSBhIGxpc3Qgb2YgbmFtZS12YWx1ZSBwYWly
cywgaW5pdGlhbGx5IGVtcHR5LgotICAgIGZpZWxkcyA9IHt9Ci0gICAgd2hpbGUgVHJ1ZToKLSAg
ICAgICAgIyA0LjEgMzMuIGxldCAvbmFtZS8gYW5kIC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJh
eXMKLSAgICAgICAgbmFtZSA9ICcnCi0gICAgICAgIHZhbHVlID0gJycKLSAgICAgICAgIyA0LjEg
MzQuIHJlYWQgL25hbWUvCi0gICAgICAgIG5hbWUgPSBfcmVhZF9uYW1lKHNvY2tldCkKLSAgICAg
ICAgaWYgbmFtZSBpcyBOb25lOgotICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgIyA0LjEgMzUu
IHJlYWQgc3BhY2VzCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFNraXAgb25seSBvbmUgc3Bh
Y2UgYXMgZGVzY3JpYmVkIGluIHRoZSBzcGVjLgotICAgICAgICBjaCA9IF9za2lwX3NwYWNlcyhz
b2NrZXQpCi0gICAgICAgICMgNC4xIDM2LiByZWFkIC92YWx1ZS8KLSAgICAgICAgdmFsdWUgPSBf
cmVhZF92YWx1ZShzb2NrZXQsIGNoKQotICAgICAgICAjIDQuMSAzNy4gcmVhZCBhIGJ5dGUgZnJv
bSB0aGUgc2VydmVyCi0gICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDEpCi0gICAg
ICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgTEYgYnV0IGZvdW5kICVyIHdoaWxlIHJlYWRpbmcg
dmFsdWUgJXIgZm9yIGhlYWRlciAnCi0gICAgICAgICAgICAgICAgJyVyJyAlIChjaCwgbmFtZSwg
dmFsdWUpKQotICAgICAgICAjIDQuMSAzOC4gYXBwZW5kIGFuIGVudHJ5IHRvIHRoZSAvZmllbGRz
LyBsaXN0IHRoYXQgaGFzIHRoZSBuYW1lCi0gICAgICAgICMgZ2l2ZW4gYnkgdGhlIHN0cmluZyBv
YnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC9uYW1lLyBieXRlCi0gICAgICAgICMgYXJyYXkg
YXMgYSBVVEYtOCBzdHJlYW0gYW5kIHRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgc3RyaW5nCi0gICAg
ICAgICMgb2J0YWluZWQgYnkgaW50ZXJwcmV0aW5nIHRoZSAvdmFsdWUvIGJ5dGUgYXJyYXkgYXMg
YSBVVEYtOCBieXRlCi0gICAgICAgICMgc3RyZWFtLgotICAgICAgICBmaWVsZHMuc2V0ZGVmYXVs
dChuYW1lLCBbXSkuYXBwZW5kKHZhbHVlKQotICAgICAgICAjIDQuMSAzOS4gcmV0dXJuIHRvIHRo
ZSAiRmllbGQiIHN0ZXAgYWJvdmUKLSAgICByZXR1cm4gZmllbGRzCi0KLQotZGVmIF9yZWFkX25h
bWUoc29ja2V0KToKLSAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBiZSBlbXB0eSBieXRlIGFycmF5
cwotICAgIG5hbWUgPSAnJwotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICMgNC4xIDM0LiByZWFk
IGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tl
dCwgMSkKLSAgICAgICAgaWYgY2ggPT0gJ1xyJzogICMgMHgwRAotICAgICAgICAgICAgcmV0dXJu
IE5vbmUKLSAgICAgICAgZWxpZiBjaCA9PSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgTEYgd2hlbiByZWFkaW5n
IGhlYWRlciBuYW1lICVyJyAlIG5hbWUpCi0gICAgICAgIGVsaWYgY2ggPT0gJzonOiAgIyAweDNB
Ci0gICAgICAgICAgICByZXR1cm4gbmFtZQotICAgICAgICBlbGlmIGNoID49ICdBJyBhbmQgY2gg
PD0gJ1onOiAgIyByYW5nZSAweDMxIHRvIDB4NUEKLSAgICAgICAgICAgIGNoID0gY2hyKG9yZChj
aCkgKyAweDIwKQotICAgICAgICAgICAgbmFtZSArPSBjaAotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgbmFtZSArPSBjaAotCi0KLWRlZiBfc2tpcF9zcGFjZXMoc29ja2V0KToKLSAgICAjIDQu
MSAzNS4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVyCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAg
ICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggPT0gJyAnOiAg
IyAweDIwCi0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICByZXR1cm4gY2gKLQotCi1kZWYg
X3JlYWRfdmFsdWUoc29ja2V0LCBjaCk6Ci0gICAgIyA0LjEgMzMuIGxldCAvdmFsdWUvIGJlIGVt
cHR5IGJ5dGUgYXJyYXlzCi0gICAgdmFsdWUgPSAnJwotICAgICMgNC4xIDM2LiByZWFkIGEgYnl0
ZSBmcm9tIHNlcnZlci4KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBpZiBjaCA9PSAnXHInOiAg
IyAweDBECi0gICAgICAgICAgICByZXR1cm4gdmFsdWUKLSAgICAgICAgZWxpZiBjaCA9PSAnXG4n
OiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J1VuZXhwZWN0ZWQgTEYgd2hlbiByZWFkaW5nIGhlYWRlciB2YWx1ZSAlcicgJSB2YWx1ZSkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHZhbHVlICs9IGNoCi0gICAgICAgIGNoID0gcmVjZWl2
ZV9ieXRlcyhzb2NrZXQsIDEpCi0KLQotZGVmIHJlYWRfZnJhbWVfaGVhZGVyKHNvY2tldCk6Ci0g
ICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMikKLQotICAgIGZpcnN0X2J5dGUg
PSBvcmQocmVjZWl2ZWRbMF0pCi0gICAgZmluID0gKGZpcnN0X2J5dGUgPj4gNykgJiAxCi0gICAg
cnN2MSA9IChmaXJzdF9ieXRlID4+IDYpICYgMQotICAgIHJzdjIgPSAoZmlyc3RfYnl0ZSA+PiA1
KSAmIDEKLSAgICByc3YzID0gKGZpcnN0X2J5dGUgPj4gNCkgJiAxCi0gICAgb3Bjb2RlID0gZmly
c3RfYnl0ZSAmIDB4ZgotCi0gICAgc2Vjb25kX2J5dGUgPSBvcmQocmVjZWl2ZWRbMV0pCi0gICAg
bWFzayA9IChzZWNvbmRfYnl0ZSA+PiA3KSAmIDEKLSAgICBwYXlsb2FkX2xlbmd0aCA9IHNlY29u
ZF9ieXRlICYgMHg3ZgotCi0gICAgaWYgbWFzayAhPSAwOgotICAgICAgICByYWlzZSBFeGNlcHRp
b24oCi0gICAgICAgICAgICAnTWFzayBiaXQgbXVzdCBiZSAwIGZvciBmcmFtZXMgY29taW5nIGZy
b20gc2VydmVyJykKLQotICAgIGlmIHBheWxvYWRfbGVuZ3RoID09IDEyNzoKLSAgICAgICAgZXh0
ZW5kZWRfcGF5bG9hZF9sZW5ndGggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgOCkKLSAgICAgICAg
cGF5bG9hZF9sZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAgICAgJyFRJywgZXh0ZW5k
ZWRfcGF5bG9hZF9sZW5ndGgpWzBdCi0gICAgICAgIGlmIHBheWxvYWRfbGVuZ3RoID4gMHg3RkZG
RkZGRkZGRkZGRkZGOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFeHRlbmRlZCBwYXls
b2FkIGxlbmd0aCA+PSAyXjYzJykKLSAgICBlbGlmIHBheWxvYWRfbGVuZ3RoID09IDEyNjoKLSAg
ICAgICAgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMikK
LSAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAgICAgJyFI
JywgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGgpWzBdCi0KLSAgICByZXR1cm4gZmluLCByc3YxLCBy
c3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWRfbGVuZ3RoCi0KLQotY2xhc3MgX1RMU1NvY2tldChv
YmplY3QpOgotICAgICIiIldyYXBwZXIgZm9yIGEgVExTIGNvbm5lY3Rpb24uIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgcmF3X3NvY2tldCk6Ci0gICAgICAgIHNlbGYuX3NzbCA9IHNvY2tl
dC5zc2wocmF3X3NvY2tldCkKLQotICAgIGRlZiBzZW5kKHNlbGYsIGJ5dGVzKToKLSAgICAgICAg
cmV0dXJuIHNlbGYuX3NzbC53cml0ZShieXRlcykKLQotICAgIGRlZiByZWN2KHNlbGYsIHNpemU9
LTEpOgotICAgICAgICByZXR1cm4gc2VsZi5fc3NsLnJlYWQoc2l6ZSkKLQotICAgIGRlZiBjbG9z
ZShzZWxmKToKLSAgICAgICAgIyBOb3RoaW5nIHRvIGRvLgotICAgICAgICBwYXNzCi0KLQotY2xh
c3MgSHR0cFN0YXR1c0V4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9u
IHdpbGwgYmUgcmFpc2VkIHdoZW4gdW5leHBlY3RlZCBodHRwIHN0YXR1cyBjb2RlIHdhcwotICAg
IHJlY2VpdmVkIGFzIGEgcmVzdWx0IG9mIGhhbmRzaGFrZS4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBuYW1lLCBzdGF0dXMpOgotICAgICAgICBzdXBlcihIdHRwU3RhdHVzRXhj
ZXB0aW9uLCBzZWxmKS5fX2luaXRfXyhuYW1lKQotICAgICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1
cwotCi0KLWNsYXNzIFdlYlNvY2tldEhhbmRzaGFrZShvYmplY3QpOgotICAgICIiIk9wZW5pbmcg
aGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAoUkZDIDY0NTUp
LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICBzZWxmLl9s
b2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9vcHRp
b25zID0gb3B0aW9ucwotCi0gICAgZGVmIGhhbmRzaGFrZShzZWxmLCBzb2NrZXQpOgotICAgICAg
ICAiIiJIYW5kc2hha2UgV2ViU29ja2V0LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAg
IEV4Y2VwdGlvbjogaGFuZHNoYWtlIGZhaWxlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2Vs
Zi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICAgICAgcmVxdWVzdF9saW5lID0gX21ldGhvZF9saW5l
KHNlbGYuX29wdGlvbnMucmVzb3VyY2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3Bl
bmluZyBoYW5kc2hha2UgUmVxdWVzdC1MaW5lOiAlcicsIHJlcXVlc3RfbGluZSkKLSAgICAgICAg
c2VsZi5fc29ja2V0LnNlbmRhbGwocmVxdWVzdF9saW5lKQotCi0gICAgICAgIGZpZWxkcyA9IFtd
Ci0gICAgICAgIGZpZWxkcy5hcHBlbmQoX1VQR1JBREVfSEVBREVSKQotICAgICAgICBmaWVsZHMu
YXBwZW5kKF9DT05ORUNUSU9OX0hFQURFUikKLQotICAgICAgICBmaWVsZHMuYXBwZW5kKF9mb3Jt
YXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAot
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMudXNlX3RscykpCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJzaW9uID09
IDg6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKF9zZWNfb3JpZ2luX2hlYWRlcihzZWxmLl9v
cHRpb25zLm9yaWdpbikpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5k
KF9vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLQotICAgICAgICBvcmlnaW5h
bF9rZXkgPSBvcy51cmFuZG9tKDE2KQotICAgICAgICBrZXkgPSBiYXNlNjQuYjY0ZW5jb2RlKG9y
aWdpbmFsX2tleSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ1Nl
Yy1XZWJTb2NrZXQtS2V5OiAlcyAoJXMpJywga2V5LCB1dGlsLmhleGlmeShvcmlnaW5hbF9rZXkp
KQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LUtleTogJXNcclxuJyAlIGtl
eSkKLQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LVZlcnNpb246ICVkXHJc
bicgJSBzZWxmLl9vcHRpb25zLnZlcnNpb24pCi0KLSAgICAgICAgIyBTZXR0aW5nIHVwIGV4dGVu
c2lvbnMuCi0gICAgICAgIGlmIGxlbihzZWxmLl9vcHRpb25zLmV4dGVuc2lvbnMpID4gMDoKLSAg
ICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczogJXNcclxu
JyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcsICcuam9pbihzZWxmLl9vcHRpb25zLmV4
dGVuc2lvbnMpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hh
a2UgcmVxdWVzdCBoZWFkZXJzOiAlcicsIGZpZWxkcykKLQotICAgICAgICBmb3IgZmllbGQgaW4g
ZmllbGRzOgotICAgICAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZmllbGQpCi0gICAgICAg
IHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxuJykKLQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5m
bygnU2VudCBvcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0JykKLQotICAgICAgICBmaWVsZCA9ICcn
Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2Vs
Zi5fc29ja2V0LCAxKQotICAgICAgICAgICAgZmllbGQgKz0gY2gKLSAgICAgICAgICAgIGlmIGNo
ID09ICdcbic6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIFJlc3BvbnNlLUxpbmU6ICVyJywgZmllbGQpCi0KLSAg
ICAgICAgaWYgbGVuKGZpZWxkKSA8IDcgb3Igbm90IGZpZWxkLmVuZHN3aXRoKCdcclxuJyk6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1dyb25nIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVs
ZCkKLSAgICAgICAgbSA9IHJlLm1hdGNoKCdbXiBdKiAoW14gXSopIC4qJywgZmllbGQpCi0gICAg
ICAgIGlmIG0gaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnTm8gSFRUUCBzdGF0dXMgY29kZSBmb3VuZCBpbiBzdGF0dXMgbGluZTogJXInICUg
ZmllbGQpCi0gICAgICAgIGNvZGUgPSBtLmdyb3VwKDEpCi0gICAgICAgIGlmIG5vdCByZS5tYXRj
aCgnWzAtOV1bMC05XVswLTldJywgY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ0hUVFAgc3RhdHVzIGNvZGUgJXIgaXMgbm90IHRocmVlIGRpZ2l0
IGluIHN0YXR1cyBsaW5lOiAlcicgJQotICAgICAgICAgICAgICAgIChjb2RlLCBmaWVsZCkpCi0g
ICAgICAgIGlmIGNvZGUgIT0gJzEwMSc6Ci0gICAgICAgICAgICByYWlzZSBIdHRwU3RhdHVzRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBi
dXQgZm91bmQgJXIgaW4gc3RhdHVzIGxpbmU6ICcKLSAgICAgICAgICAgICAgICAnJXInICUgKGNv
ZGUsIGZpZWxkKSwgaW50KGNvZGUpKQotICAgICAgICBmaWVsZHMgPSBfcmVhZF9maWVsZHMoc2Vs
Zi5fc29ja2V0KQotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQot
ICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZDogJXInICUgY2gpCi0KLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXNwb25zZSBoZWFkZXJzOiAlcicsIGZpZWxk
cykKLQotICAgICAgICAjIENoZWNrIC9maWVsZHMvCi0gICAgICAgIGlmIGxlbihmaWVsZHNbJ3Vw
Z3JhZGUnXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnTXVsdGlwbGUgVXBncmFkZSBoZWFkZXJzIGZvdW5kOiAlcycgJSBmaWVsZHNbJ3VwZ3Jh
ZGUnXSkKLSAgICAgICAgaWYgbGVuKGZpZWxkc1snY29ubmVjdGlvbiddKSAhPSAxOgotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBDb25uZWN0
aW9uIGhlYWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxkc1snY29ubmVjdGlvbiddKQotICAgICAgICBp
ZiBmaWVsZHNbJ3VwZ3JhZGUnXVswXSAhPSAnd2Vic29ja2V0JzoKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBVcGdyYWRlIGhlYWRlciB2
YWx1ZTogJXMnICUgZmllbGRzWyd1cGdyYWRlJ11bMF0pCi0gICAgICAgIGlmIGZpZWxkc1snY29u
bmVjdGlvbiddWzBdLmxvd2VyKCkgIT0gJ3VwZ3JhZGUnOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIENvbm5lY3Rpb24gaGVhZGVyIHZh
bHVlOiAlcycgJQotICAgICAgICAgICAgICAgIGZpZWxkc1snY29ubmVjdGlvbiddWzBdKQotCi0g
ICAgICAgIGlmIGxlbihmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtYWNjZXB0J10pICE9IDE6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIFNlYy1X
ZWJTb2NrZXQtQWNjZXB0IGhlYWRlcnMgZm91bmQ6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmll
bGRzWydzZWMtd2Vic29ja2V0LWFjY2VwdCddKQotCi0gICAgICAgIGFjY2VwdCA9IGZpZWxkc1sn
c2VjLXdlYnNvY2tldC1hY2NlcHQnXVswXQotCi0gICAgICAgICMgVmFsaWRhdGUKLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgZGVjb2RlZF9hY2NlcHQgPSBiYXNlNjQuYjY0ZGVjb2RlKGFjY2Vw
dCkKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJvciBhcyBlOgotICAgICAgICAgICAgcmFpc2UgSGFu
ZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdJbGxlZ2FsIHZhbHVlIGZvciBoZWFk
ZXIgU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICcgKyBhY2NlcHQpCi0KLSAgICAgICAgaWYgbGVuKGRl
Y29kZWRfYWNjZXB0KSAhPSAyMDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnRGVjb2RlZCB2YWx1ZSBvZiBTZWMtV2ViU29ja2V0LUFjY2Vw
dCBpcyBub3QgMjAtYnl0ZSBsb25nJykKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Fj
dHVhbCBTZWMtV2ViU29ja2V0LUFjY2VwdDogJXIgKCVzKScsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBhY2NlcHQsIHV0aWwuaGV4aWZ5KGRlY29kZWRfYWNjZXB0KSkKLQotICAgICAgICBv
cmlnaW5hbF9leHBlY3RlZF9hY2NlcHQgPSB1dGlsLnNoYTFfaGFzaCgKLSAgICAgICAgICAgIGtl
eSArIFdFQlNPQ0tFVF9BQ0NFUFRfVVVJRCkuZGlnZXN0KCkKLSAgICAgICAgZXhwZWN0ZWRfYWNj
ZXB0ID0gYmFzZTY0LmI2NGVuY29kZShvcmlnaW5hbF9leHBlY3RlZF9hY2NlcHQpCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdFeHBlY3RlZCBTZWMtV2ViU29ja2V0LUFjY2VwdDogJXIg
KCVzKScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9hY2NlcHQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICB1dGlsLmhleGlmeShvcmlnaW5hbF9leHBlY3RlZF9hY2Nl
cHQpKQotCi0gICAgICAgIGlmIGFjY2VwdCAhPSBleHBlY3RlZF9hY2NlcHQ6Ci0gICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0ludmFsaWQgU2VjLVdlYlNvY2tl
dC1BY2NlcHQgaGVhZGVyOiAlciAoZXhwZWN0ZWQpICE9ICVyICcKLSAgICAgICAgICAgICAgICAn
KGFjdHVhbCknICUgKGFjY2VwdCwgZXhwZWN0ZWRfYWNjZXB0KSkKLQotICAgICAgICBzZXJ2ZXJf
ZXh0ZW5zaW9uc19oZWFkZXIgPSBmaWVsZHMuZ2V0KCdzZWMtd2Vic29ja2V0LWV4dGVuc2lvbnMn
KQotICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gW10KLSAgICAgICAgaWYgc2VydmVyX2V4
dGVuc2lvbnNfaGVhZGVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYWNjZXB0ZWRfZXh0ZW5z
aW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAotICAgICAgICAgICAgICAgICAgICAnLCAn
LmpvaW4oc2VydmVyX2V4dGVuc2lvbnNfaGVhZGVyKSkKLQotICAgICAgICAjIFNjYW4gYWNjZXB0
ZWQgZXh0ZW5zaW9uIGxpc3QgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYW55IHVucmVjb2duaXplZAot
ICAgICAgICAjIGV4dGVuc2lvbnMgb3IgZXh0ZW5zaW9ucyB3ZSBkaWRuJ3QgcmVxdWVzdCBpbiBp
dC4gVGhlbiwgZm9yCi0gICAgICAgICMgZXh0ZW5zaW9ucyB3ZSByZXF1ZXN0LCBwYXJzZSB0aGVt
IGFuZCBzdG9yZSBwYXJhbWV0ZXJzLiBUaGV5IHdpbGwgYmUKLSAgICAgICAgIyB1c2VkIGxhdGVy
IGJ5IGVhY2ggZXh0ZW5zaW9uLgotICAgICAgICBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gRmFs
c2UKLSAgICAgICAgbXV4X2FjY2VwdGVkID0gRmFsc2UKLSAgICAgICAgZm9yIGV4dGVuc2lvbiBp
biBhY2NlcHRlZF9leHRlbnNpb25zOgotICAgICAgICAgICAgaWYgZXh0ZW5zaW9uLm5hbWUoKSA9
PSBfREVGTEFURV9GUkFNRV9FWFRFTlNJT046Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKLSAgICAgICAgICAgICAgICAgICAgZGVmbGF0ZV9mcmFt
ZV9hY2NlcHRlZCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAg
ICAgIGlmIGV4dGVuc2lvbi5uYW1lKCkgPT0gX01VWF9FWFRFTlNJT046Ci0gICAgICAgICAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfbXV4OgotICAgICAgICAgICAgICAgICAgICBtdXhfYWNj
ZXB0ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBp
ZiBleHRlbnNpb24ubmFtZSgpID09IF9QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OOgotICAg
ICAgICAgICAgICAgIGNoZWNrZXIgPSBzZWxmLl9vcHRpb25zLmNoZWNrX3Blcm1lc3NhZ2VfZGVm
bGF0ZQotICAgICAgICAgICAgICAgIGlmIGNoZWNrZXI6Ci0gICAgICAgICAgICAgICAgICAgIGNo
ZWNrZXIoZXh0ZW5zaW9uKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlY2VpdmVkIHVucmVjb2du
aXplZCBleHRlbnNpb246ICVzJyAlIGV4dGVuc2lvbi5uYW1lKCkpCi0KLSAgICAgICAgIyBMZXQg
YWxsIGV4dGVuc2lvbnMgY2hlY2sgdGhlIHJlc3BvbnNlIGZvciBleHRlbnNpb24gcmVxdWVzdC4K
LQotICAgICAgICBpZiAoc2VsZi5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZSBhbmQKLSAgICAg
ICAgICAgIG5vdCBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkKToKLSAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignJXMgZXh0ZW5zaW9uIG5vdCBhY2NlcHRlZCcgJQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLQotICAgICAgICBpZiBzZWxmLl9v
cHRpb25zLnVzZV9tdXggYW5kIG5vdCBtdXhfYWNjZXB0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oJyVzIGV4dGVuc2lvbiBub3QgYWNjZXB0ZWQnICUgX01VWF9FWFRFTlNJT04pCi0K
LQotY2xhc3MgV2ViU29ja2V0SHliaTAwSGFuZHNoYWtlKG9iamVjdCk6Ci0gICAgIiIiT3Blbmlu
ZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24g
SHlCaSAwMC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zLCBkcmFm
dF9maWVsZCk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihz
ZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0gICAgICAgIHNlbGYuX2Ry
YWZ0X2ZpZWxkID0gZHJhZnRfZmllbGQKLQotICAgIGRlZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0
KToKLSAgICAgICAgIiIiSGFuZHNoYWtlIFdlYlNvY2tldC4KLQotICAgICAgICBSYWlzZXM6Ci0g
ICAgICAgICAgICBFeGNlcHRpb246IGhhbmRzaGFrZSBmYWlsZWQuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAgICAgICMgNC4xIDUuIHNlbmQgcmVx
dWVzdCBsaW5lLgotICAgICAgICByZXF1ZXN0X2xpbmUgPSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0
aW9ucy5yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRz
aGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywgcmVxdWVzdF9saW5lKQotICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCi0gICAgICAgICMgNC4xIDYuIExldCAvZmllbGRzLyBi
ZSBhbiBlbXB0eSBsaXN0IG9mIHN0cmluZ3MuCi0gICAgICAgIGZpZWxkcyA9IFtdCi0gICAgICAg
ICMgNC4xIDcuIEFkZCB0aGUgc3RyaW5nICJVcGdyYWRlOiBXZWJTb2NrZXQiIHRvIC9maWVsZHMv
LgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9VUEdSQURFX0hFQURFUl9ISVhJRTc1KQotICAgICAg
ICAjIDQuMSA4LiBBZGQgdGhlIHN0cmluZyAiQ29ubmVjdGlvbjogVXBncmFkZSIgdG8gL2ZpZWxk
cy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVBREVSKQotICAgICAgICAj
IDQuMSA5LTEyLiBBZGQgSG9zdDogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5h
cHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2Vy
dmVyX2hvc3QsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKLSAgICAgICAgIyA0LjEgMTMuIEFkZCBPcmln
aW46IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVh
ZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLSAgICAgICAgIyBUT0RPOiA0LjEgMTQgQWRkIFNl
Yy1XZWJTb2NrZXQtUHJvdG9jb2w6IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAgICAjIFRPRE86
IDQuMSAxNSBBZGQgY29va2llIGhlYWRlcnMgdG8gL2ZpZWxkcy8uCi0KLSAgICAgICAgIyA0LjEg
MTYtMjMuIEFkZCBTZWMtV2ViU29ja2V0LUtleTxuPiB0byAvZmllbGRzLy4KLSAgICAgICAgc2Vs
Zi5fbnVtYmVyMSwga2V5MSA9IHNlbGYuX2dlbmVyYXRlX3NlY193ZWJzb2NrZXRfa2V5KCkKLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1iZXIxOiAlZCcsIHNlbGYuX251bWJlcjEpCi0g
ICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtS2V5MTogJXNcclxuJyAlIGtleTEp
Ci0gICAgICAgIHNlbGYuX251bWJlcjIsIGtleTIgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29j
a2V0X2tleSgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMjogJWQnLCBzZWxm
Ll9udW1iZXIxKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LUtleTI6ICVz
XHJcbicgJSBrZXkyKQotCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRHJh
ZnQ6ICVzXHJcbicgJSBzZWxmLl9kcmFmdF9maWVsZCkKLQotICAgICAgICAjIDQuMSAyNC4gRm9y
IGVhY2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBhIHJhbmRvbSBvcmRlcjogc2VuZCB0aGUKLSAg
ICAgICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRGLTgsIGZvbGxvd2VkIGJ5IGEgVVRGLTggZW5j
b2RlZCBVKzAwMEQgQ0FSUklBR0UKLSAgICAgICAgIyBSRVRVUk4gVSswMDBBIExJTkUgRkVFRCBj
aGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAgIHJhbmRvbS5zaHVmZmxlKGZpZWxkcykKLQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QgaGVh
ZGVyczogJXInLCBmaWVsZHMpCi0gICAgICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAgICAg
ICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVsZCkKLQotICAgICAgICAjIDQuMSAyNS4gc2Vu
ZCBhIFVURi04LWVuY29kZWQgVSswMDBEIENBUlJJQUdFIFJFVFVSTiBVKzAwMEEgTElORSBGRUVE
Ci0gICAgICAgICMgY2hhcmFjdGVyIHBhaXIgKENSTEYpLgotICAgICAgICBzZWxmLl9zb2NrZXQu
c2VuZGFsbCgnXHJcbicpCi0gICAgICAgICMgNC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5n
IGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxl
bnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3Jk
ZXIpLgotICAgICAgICBzZWxmLl9rZXkzID0gc2VsZi5fZ2VuZXJhdGVfa2V5MygpCi0gICAgICAg
ICMgNC4xIDI3LiBzZW5kIC9rZXkzLyB0byB0aGUgc2VydmVyLgotICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbChzZWxmLl9rZXkzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAg
ICAgICAgICAnS2V5MzogJXIgKCVzKScsIHNlbGYuX2tleTMsIHV0aWwuaGV4aWZ5KHNlbGYuX2tl
eTMpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IG9wZW5pbmcgaGFuZHNoYWtl
IHJlcXVlc3QnKQotCi0gICAgICAgICMgNC4xIDI4LiBSZWFkIGJ5dGVzIGZyb20gdGhlIHNlcnZl
ciB1bnRpbCBlaXRoZXIgdGhlIGNvbm5lY3Rpb24KLSAgICAgICAgIyBjbG9zZXMsIG9yIGEgMHgw
QSBieXRlIGlzIHJlYWQuIGxldCAvZmllbGQvIGJlIHRoZXNlIGJ5dGVzLCBpbmNsdWRpbmcKLSAg
ICAgICAgIyB0aGUgMHgwQSBieXRlcy4KLSAgICAgICAgZmllbGQgPSAnJwotICAgICAgICB3aGls
ZSBUcnVlOgotICAgICAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkK
LSAgICAgICAgICAgIGZpZWxkICs9IGNoCi0gICAgICAgICAgICBpZiBjaCA9PSAnXG4nOgotICAg
ICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5n
IGhhbmRzaGFrZSBSZXNwb25zZS1MaW5lOiAlcicsIGZpZWxkKQotCi0gICAgICAgICMgaWYgL2Zp
ZWxkLyBpcyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0ZXMgbG9uZywgb3IgaWYgdGhlIGxhc3QKLSAg
ICAgICAgIyB0d28gYnl0ZXMgYXJlbid0IDB4MEQgYW5kIDB4MEEgcmVzcGVjdGl2ZWx5LCBvciBp
ZiBpdCBkb2VzIG5vdAotICAgICAgICAjIGNvbnRhaW4gYXQgbGVhc3QgdHdvIDB4MjAgYnl0ZXMs
IHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24KLSAgICAgICAgIyBhbmQgYWJvcnQg
dGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIGxlbihmaWVsZCkgPCA3IG9yIG5vdCBmaWVsZC5lbmRz
d2l0aCgnXHJcbicpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdXcm9uZyBzdGF0dXMg
bGluZTogJXInICUgZmllbGQpCi0gICAgICAgIG0gPSByZS5tYXRjaCgnW14gXSogKFteIF0qKSAu
KicsIGZpZWxkKQotICAgICAgICBpZiBtIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ05vIGNvZGUgZm91bmQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAgICAg
ICAjIDQuMSAyOS4gbGV0IC9jb2RlLyBiZSB0aGUgc3Vic3RyaW5nIG9mIC9maWVsZC8gdGhhdCBz
dGFydHMgZnJvbSB0aGUKLSAgICAgICAgIyBieXRlIGFmdGVyIHRoZSBmaXJzdCAweDIwIGJ5dGUs
IGFuZCBlbmRzIHdpdGggdGhlIGJ5dGUgYmVmb3JlIHRoZQotICAgICAgICAjIHNlY29uZCAweDIw
IGJ5dGUuCi0gICAgICAgIGNvZGUgPSBtLmdyb3VwKDEpCi0gICAgICAgICMgNC4xIDMwLiBpZiAv
Y29kZS8gaXMgbm90IHRocmVlIGJ5dGVzIGxvbmcsIG9yIGlmIGFueSBvZiB0aGUgYnl0ZXMgaW4K
LSAgICAgICAgIyAvY29kZS8gYXJlIG5vdCBpbiB0aGUgcmFuZ2UgMHgzMCB0byAweDkwLCB0aGVu
IGZhaWwgdGhlIFdlYlNvY2tldAotICAgICAgICAjIGNvbm5lY3Rpb24gYW5kIGFib3J0IHRoZXNl
IHN0ZXBzLgotICAgICAgICBpZiBub3QgcmUubWF0Y2goJ1swLTldWzAtOV1bMC05XScsIGNvZGUp
OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdIVFRQIHN0
YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdpdCBpbiBzdGF0dXMgbGluZTogJXInICUKLSAg
ICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQotICAgICAgICAjIDQuMSAzMS4gaWYgL2NvZGUv
LCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEwMSIsIHRoZW4gbW92ZSB0byB0aGUKLSAgICAg
ICAgIyBuZXh0IHN0ZXAuCi0gICAgICAgIGlmIGNvZGUgIT0gJzEwMSc6Ci0gICAgICAgICAgICBy
YWlzZSBIdHRwU3RhdHVzRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBIVFRQ
IHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXIgaW4gc3RhdHVzIGxpbmU6ICcKLSAgICAgICAg
ICAgICAgICAnJXInICUgKGNvZGUsIGZpZWxkKSwgaW50KGNvZGUpKQotICAgICAgICAjIDQuMSAz
Mi0zOS4gcmVhZCBmaWVsZHMgaW50byAvZmllbGRzLwotICAgICAgICBmaWVsZHMgPSBfcmVhZF9m
aWVsZHMoc2VsZi5fc29ja2V0KQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3Blbmlu
ZyBoYW5kc2hha2UgcmVzcG9uc2UgaGVhZGVyczogJXInLCBmaWVsZHMpCi0KLSAgICAgICAgIyA0
LjEgNDAuIF9GaWVsZHMgcHJvY2Vzc2luZ18KLSAgICAgICAgIyByZWFkIGEgYnl0ZSBmcm9tIHNl
cnZlcgotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAg
ICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0V4
cGVjdGVkIExGIGJ1dCBmb3VuZCAlcicgJSBjaCkKLSAgICAgICAgIyA0LjEgNDEuIGNoZWNrIC9m
aWVsZHMvCi0gICAgICAgIGlmIGxlbihmaWVsZHNbJ3VwZ3JhZGUnXSkgIT0gMToKLSAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTXVsdGlwbGUgVXBncmFkZSBo
ZWFkZXJzIGZvdW5kOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXSkKLSAgICAgICAgaWYgbGVuKGZp
ZWxkc1snY29ubmVjdGlvbiddKSAhPSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICdNdWx0aXBsZSBDb25uZWN0aW9uIGhlYWRlcnMgZm91bmQ6ICVzJyAl
IGZpZWxkc1snY29ubmVjdGlvbiddKQotICAgICAgICBpZiBsZW4oZmllbGRzWydzZWMtd2Vic29j
a2V0LW9yaWdpbiddKSAhPSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29ja2V0LU9yaWdpbiBoZWFkZXJzIGZvdW5kOiAl
cycgJQotICAgICAgICAgICAgICAgIGZpZWxkc1snc2VjLXNlYnNvY2tldC1vcmlnaW4nXSkKLSAg
ICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdlYnNvY2tldC1sb2NhdGlvbiddKSAhPSAxOgotICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBTZWMt
V2ViU29ja2V0LUxvY2F0aW9uIGhlYWRlcnMgZm91bmQ6ICVzJyAlCi0gICAgICAgICAgICAgICAg
ZmllbGRzWydzZWMtc2Vic29ja2V0LWxvY2F0aW9uJ10pCi0gICAgICAgICMgVE9ETyh1a2FpKTog
cHJvdG9jb2wKLSAgICAgICAgIyBpZiB0aGUgZW50cnkncyBuYW1lIGlzICJ1cGdyYWRlIgotICAg
ICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4YWN0bHkgZXF1YWwgdG8gdGhlIHN0cmluZyAi
V2ViU29ja2V0IiwKLSAgICAgICAgIyAgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlv
biBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIGZpZWxkc1sndXBncmFkZSddWzBd
ICE9ICdXZWJTb2NrZXQnOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICdVbmV4cGVjdGVkIFVwZ3JhZGUgaGVhZGVyIHZhbHVlOiAlcycgJSBmaWVsZHNbJ3Vw
Z3JhZGUnXVswXSkKLSAgICAgICAgIyBpZiB0aGUgZW50cnkncyBuYW1lIGlzICJjb25uZWN0aW9u
IgotICAgICAgICAjICBpZiB0aGUgdmFsdWUsIGNvbnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2Us
IGlzIG5vdCBleGFjdGx5IGVxdWFsCi0gICAgICAgICMgIHRvIHRoZSBzdHJpbmcgInVwZ3JhZGUi
LCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFuZAotICAgICAgICAjICBhYm9y
dCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgZmllbGRzWydjb25uZWN0aW9uJ11bMF0ubG93ZXIo
KSAhPSAndXBncmFkZSc6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ1VuZXhwZWN0ZWQgQ29ubmVjdGlvbiBoZWFkZXIgdmFsdWU6ICVzJyAlCi0gICAgICAg
ICAgICAgICAgZmllbGRzWydjb25uZWN0aW9uJ11bMF0pCi0gICAgICAgICMgVE9ETyh1a2FpKTog
Y2hlY2sgb3JpZ2luLCBsb2NhdGlvbiwgY29va2llLCAuLgotCi0gICAgICAgICMgNC4xIDQyLiBs
ZXQgL2NoYWxsZW5nZS8gYmUgdGhlIGNvbmNhdGVuYXRpb24gb2YgL251bWJlcl8xLywKLSAgICAg
ICAgIyBleHByZXNzZWQgYXMgYSBiaWcgZW5kaWFuIDMyIGJpdCBpbnRlZ2VyLCAvbnVtYmVyXzIv
LCBleHByZXNzZWQKLSAgICAgICAgIyBhcyBiaWcgZW5kaWFuIDMyIGJpdCBpbnRlZ2VyLCBhbmQg
dGhlIGVpZ2h0IGJ5dGVzIG9mIC9rZXlfMy8gaW4gdGhlCi0gICAgICAgICMgb3JkZXIgdGhleSB3
ZXJlIHNlbnQgb24gdGhlIHdpcmUuCi0gICAgICAgIGNoYWxsZW5nZSA9IHN0cnVjdC5wYWNrKCch
SScsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGNoYWxsZW5nZSArPSBzdHJ1Y3QucGFjaygnIUkn
LCBzZWxmLl9udW1iZXIyKQotICAgICAgICBjaGFsbGVuZ2UgKz0gc2VsZi5fa2V5MwotCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdDaGFsbGVuZ2U6ICVyICglcykn
LCBjaGFsbGVuZ2UsIHV0aWwuaGV4aWZ5KGNoYWxsZW5nZSkpCi0KLSAgICAgICAgIyA0LjEgNDMu
IGxldCAvZXhwZWN0ZWQvIGJlIHRoZSBNRDUgZmluZ2VycHJpbnQgb2YgL2NoYWxsZW5nZS8gYXMg
YQotICAgICAgICAjIGJpZy1lbmRpYW4gMTI4IGJpdCBzdHJpbmcuCi0gICAgICAgIGV4cGVjdGVk
ID0gdXRpbC5tZDVfaGFzaChjaGFsbGVuZ2UpLmRpZ2VzdCgpCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygKLSAgICAgICAgICAgICdFeHBlY3RlZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICgl
cyknLAotICAgICAgICAgICAgZXhwZWN0ZWQsIHV0aWwuaGV4aWZ5KGV4cGVjdGVkKSkKLQotICAg
ICAgICAjIDQuMSA0NC4gcmVhZCBzaXh0ZWVuIGJ5dGVzIGZyb20gdGhlIHNlcnZlci4KLSAgICAg
ICAgIyBsZXQgL3JlcGx5LyBiZSB0aG9zZSBieXRlcy4KLSAgICAgICAgcmVwbHkgPSByZWNlaXZl
X2J5dGVzKHNlbGYuX3NvY2tldCwgMTYpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAg
ICAgICAgICAgICdBY3R1YWwgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMpJywgcmVwbHksIHV0
aWwuaGV4aWZ5KHJlcGx5KSkKLQotICAgICAgICAjIDQuMSA0NS4gaWYgL3JlcGx5LyBkb2VzIG5v
dCBleGFjdGx5IGVxdWFsIC9leHBlY3RlZC8sIHRoZW4gZmFpbAotICAgICAgICAjIHRoZSBXZWJT
b2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIGV4cGVj
dGVkICE9IHJlcGx5OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdCYWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoZXhwZWN0ZWQpICE9ICVyIChhY3R1YWwp
JyAlCi0gICAgICAgICAgICAgICAgKGV4cGVjdGVkLCByZXBseSkpCi0gICAgICAgICMgNC4xIDQ2
LiBUaGUgKldlYlNvY2tldCBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkKi4KLQotICAgIGRlZiBf
Z2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoc2VsZik6Ci0gICAgICAgICMgNC4xIDE2LiBsZXQg
L3NwYWNlc19uLyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMSB0byAxMiBpbmNsdXNpdmUuCi0g
ICAgICAgIHNwYWNlcyA9IHJhbmRvbS5yYW5kaW50KDEsIDEyKQotICAgICAgICAjIDQuMSAxNy4g
bGV0IC9tYXhfbi8gYmUgdGhlIGxhcmdlc3QgaW50ZWdlciBub3QgZ3JlYXRlciB0aGFuCi0gICAg
ICAgICMgIDQsMjk0LDk2NywyOTUgZGl2aWRlZCBieSAvc3BhY2VzX24vLgotICAgICAgICBtYXhu
dW0gPSA0Mjk0OTY3Mjk1IC8gc3BhY2VzCi0gICAgICAgICMgNC4xIDE4LiBsZXQgL251bWJlcl9u
LyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0byAvbWF4X24vCi0gICAgICAgICMgaW5jbHVz
aXZlLgotICAgICAgICBudW1iZXIgPSByYW5kb20ucmFuZGludCgwLCBtYXhudW0pCi0gICAgICAg
ICMgNC4xIDE5LiBsZXQgL3Byb2R1Y3Rfbi8gYmUgdGhlIHJlc3VsdCBvZiBtdWx0aXBseWluZyAv
bnVtYmVyX24vIGFuZAotICAgICAgICAjIC9zcGFjZXNfbi8gdG9nZXRoZXIuCi0gICAgICAgIHBy
b2R1Y3QgPSBudW1iZXIgKiBzcGFjZXMKLSAgICAgICAgIyA0LjEgMjAuIGxldCAva2V5X24vIGJl
IGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgL3Byb2R1Y3Rfbi8sIGV4cHJlc3NlZAotICAgICAgICAj
IGluIGJhc2UgdGVuIHVzaW5nIHRoZSBudW1lcmFscyBpbiB0aGUgcmFuZ2UgVSswMDMwIERJR0lU
IFpFUk8gKDApIHRvCi0gICAgICAgICMgVSswMDM5IERJR0lUIE5JTkUgKDkpLgotICAgICAgICBr
ZXkgPSBzdHIocHJvZHVjdCkKLSAgICAgICAgIyA0LjEgMjEuIGluc2VydCBiZXR3ZWVuIG9uZSBh
bmQgdHdlbHZlIHJhbmRvbSBjaGFyYWN0ZXJzIGZyb20gdGhlCi0gICAgICAgICMgcmFuZ2UgVSsw
MDIxIHRvIFUrMDAyRiBhbmQgVSswMDNBIHRvIFUrMDA3RSBpbnRvIC9rZXlfbi8gYXQgcmFuZG9t
Ci0gICAgICAgICMgcG9zaXRpb25zLgotICAgICAgICBhdmFpbGFibGVfY2hhcnMgPSByYW5nZSgw
eDIxLCAweDJmICsgMSkgKyByYW5nZSgweDNhLCAweDdlICsgMSkKLSAgICAgICAgbiA9IHJhbmRv
bS5yYW5kaW50KDEsIDEyKQotICAgICAgICBmb3IgXyBpbiB4cmFuZ2Uobik6Ci0gICAgICAgICAg
ICBjaCA9IHJhbmRvbS5jaG9pY2UoYXZhaWxhYmxlX2NoYXJzKQotICAgICAgICAgICAgcG9zID0g
cmFuZG9tLnJhbmRpbnQoMCwgbGVuKGtleSkpCi0gICAgICAgICAgICBrZXkgPSBrZXlbMDpwb3Nd
ICsgY2hyKGNoKSArIGtleVtwb3M6XQotICAgICAgICAjIDQuMSAyMi4gaW5zZXJ0IC9zcGFjZXNf
bi8gVSswMDIwIFNQQUNFIGNoYXJhY3RlcnMgaW50byAva2V5X24vIGF0Ci0gICAgICAgICMgcmFu
ZG9tIHBvc2l0aW9ucyBvdGhlciB0aGFuIHN0YXJ0IG9yIGVuZCBvZiB0aGUgc3RyaW5nLgotICAg
ICAgICBmb3IgXyBpbiB4cmFuZ2Uoc3BhY2VzKToKLSAgICAgICAgICAgIHBvcyA9IHJhbmRvbS5y
YW5kaW50KDEsIGxlbihrZXkpIC0gMSkKLSAgICAgICAgICAgIGtleSA9IGtleVswOnBvc10gKyAn
ICcgKyBrZXlbcG9zOl0KLSAgICAgICAgcmV0dXJuIG51bWJlciwga2V5Ci0KLSAgICBkZWYgX2dl
bmVyYXRlX2tleTMoc2VsZik6Ci0gICAgICAgICMgNC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3Ry
aW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2
YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4g
b3JkZXIpLgotICAgICAgICByZXR1cm4gJycuam9pbihbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1
NSkpIGZvciBfIGluIHhyYW5nZSg4KV0pCi0KLQotY2xhc3MgV2ViU29ja2V0SGl4aWU3NUhhbmRz
aGFrZShvYmplY3QpOgotICAgICIiIldlYlNvY2tldCBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciBJ
RVRGIEhpeGllIDc1LiIiIgotCi0gICAgX0VYUEVDVEVEX1JFU1BPTlNFID0gKAotICAgICAgICAn
SFRUUC8xLjEgMTAxIFdlYiBTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicgKwotICAgICAg
ICBfVVBHUkFERV9IRUFERVJfSElYSUU3NSArCi0gICAgICAgIF9DT05ORUNUSU9OX0hFQURFUikK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgc2VsZi5fbG9nZ2Vy
ID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9
IG9wdGlvbnMKLQotICAgIGRlZiBfc2tpcF9oZWFkZXJzKHNlbGYpOgotICAgICAgICB0ZXJtaW5h
dG9yID0gJ1xyXG5cclxuJwotICAgICAgICBwb3MgPSAwCi0gICAgICAgIHdoaWxlIHBvcyA8IGxl
bih0ZXJtaW5hdG9yKToKLSAgICAgICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxm
Ll9zb2NrZXQsIDEpCi0gICAgICAgICAgICBpZiByZWNlaXZlZCA9PSB0ZXJtaW5hdG9yW3Bvc106
Ci0gICAgICAgICAgICAgICAgcG9zICs9IDEKLSAgICAgICAgICAgIGVsaWYgcmVjZWl2ZWQgPT0g
dGVybWluYXRvclswXToKLSAgICAgICAgICAgICAgICBwb3MgPSAxCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIHBvcyA9IDAKLQotICAgIGRlZiBoYW5kc2hha2Uoc2VsZiwgc29j
a2V0KToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICAgICAgcmVxdWVzdF9s
aW5lID0gX21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMucmVzb3VyY2UpCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgUmVxdWVzdC1MaW5lOiAlcicsIHJlcXVl
c3RfbGluZSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwocmVxdWVzdF9saW5lKQotCi0g
ICAgICAgIGhlYWRlcnMgPSBfVVBHUkFERV9IRUFERVJfSElYSUU3NSArIF9DT05ORUNUSU9OX0hF
QURFUgotICAgICAgICBoZWFkZXJzICs9IF9mb3JtYXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5z
ZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykKLSAgICAgICAg
aGVhZGVycyArPSBfb3JpZ2luX2hlYWRlcihzZWxmLl9vcHRpb25zLm9yaWdpbikKLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0IGhlYWRlcnM6ICVy
JywgaGVhZGVycykKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVycykKLQotICAg
ICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oJ1NlbnQgb3BlbmluZyBoYW5kc2hha2UgcmVxdWVzdCcpCi0KLSAgICAgICAgZm9yIGV4
cGVjdGVkX2NoYXIgaW4gV2ViU29ja2V0SGl4aWU3NUhhbmRzaGFrZS5fRVhQRUNURURfUkVTUE9O
U0U6Ci0gICAgICAgICAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAx
KQotICAgICAgICAgICAgaWYgZXhwZWN0ZWRfY2hhciAhPSByZWNlaXZlZDoKLSAgICAgICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ0hhbmRzaGFrZSBmYWlsdXJlJykKLSAgICAgICAgIyBXZSBj
dXQgY29ybmVycyBhbmQgc2tpcCBvdGhlciBoZWFkZXJzLgotICAgICAgICBzZWxmLl9za2lwX2hl
YWRlcnMoKQotCi0KLWNsYXNzIFdlYlNvY2tldFN0cmVhbShvYmplY3QpOgotICAgICIiIkZyYW1l
IHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAoUkZDIDY0NTUpLiIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCwgaGFuZHNoYWtlKToKLSAgICAgICAgc2VsZi5f
aGFuZHNoYWtlID0gaGFuZHNoYWtlCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0g
ICAgICAgICMgRmlsdGVycyBhcHBsaWVkIHRvIGFwcGxpY2F0aW9uIGRhdGEgcGFydCBvZiBkYXRh
IGZyYW1lcy4KLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyID0gTm9uZQotICAg
ICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSBOb25lCi0KLSAgICAgICAgaWYgc2Vs
Zi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAgc2Vs
Zi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyID0gKAotICAgICAgICAgICAgICAgIHV0aWwuX1JGQzE5
NzlEZWZsYXRlcihOb25lLCBGYWxzZSkpCi0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFt
ZV9maWx0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQotCi0gICAgICAgIHNlbGYuX2ZyYWdt
ZW50ZWQgPSBGYWxzZQotCi0gICAgZGVmIF9tYXNrX2h5Ymkoc2VsZiwgcyk6Ci0gICAgICAgICMg
VE9ETyh0eW9zaGlubyk6IG9zLnVyYW5kb20gZG9lcyBvcGVuL3JlYWQvY2xvc2UgZm9yIGV2ZXJ5
IGNhbGwuIElmCi0gICAgICAgICMgcGVyZm9ybWFuY2UgbWF0dGVycywgY2hhbmdlIHRoaXMgdG8g
c29tZSBsaWJyYXJ5IGNhbGwgdGhhdCBnZW5lcmF0ZXMKLSAgICAgICAgIyBjcnlwdG9ncmFwaGlj
YWxseSBzZWN1cmUgcHNldWRvIHJhbmRvbSBudW1iZXIgc2VxdWVuY2UuCi0gICAgICAgIG1hc2tp
bmdfbm9uY2UgPSBvcy51cmFuZG9tKDQpCi0gICAgICAgIHJlc3VsdCA9IFttYXNraW5nX25vbmNl
XQotICAgICAgICBjb3VudCA9IDAKLSAgICAgICAgZm9yIGMgaW4gczoKLSAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoY2hyKG9yZChjKSBeIG9yZChtYXNraW5nX25vbmNlW2NvdW50XSkpKQotICAg
ICAgICAgICAgY291bnQgPSAoY291bnQgKyAxKSAlIGxlbihtYXNraW5nX25vbmNlKQotICAgICAg
ICByZXR1cm4gJycuam9pbihyZXN1bHQpCi0KLSAgICBkZWYgc2VuZF9mcmFtZV9vZl9hcmJpdHJh
cnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRh
bGwoaGVhZGVyICsgc2VsZi5fbWFza19oeWJpKGJvZHkpKQotCi0gICAgZGVmIHNlbmRfZGF0YShz
ZWxmLCBwYXlsb2FkLCBmcmFtZV90eXBlLCBlbmQ9VHJ1ZSwgbWFzaz1UcnVlLAotICAgICAgICAg
ICAgICAgICAgcnN2MT0wLCByc3YyPTAsIHJzdjM9MCk6Ci0gICAgICAgIGlmIHNlbGYuX291dGdv
aW5nX2ZyYW1lX2ZpbHRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHBheWxvYWQgPSBzZWxm
Ll9vdXRnb2luZ19mcmFtZV9maWx0ZXIuZmlsdGVyKHBheWxvYWQpCi0KLSAgICAgICAgaWYgc2Vs
Zi5fZnJhZ21lbnRlZDoKLSAgICAgICAgICAgIG9wY29kZSA9IE9QQ09ERV9DT05USU5VQVRJT04K
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9wY29kZSA9IGZyYW1lX3R5cGUKLQotICAgICAg
ICBpZiBlbmQ6Ci0gICAgICAgICAgICBzZWxmLl9mcmFnbWVudGVkID0gRmFsc2UKLSAgICAgICAg
ICAgIGZpbiA9IDEKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQg
PSBUcnVlCi0gICAgICAgICAgICBmaW4gPSAwCi0KLSAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtl
Ll9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAgcnN2MSA9IDEKLQotICAg
ICAgICBpZiBtYXNrOgotICAgICAgICAgICAgbWFza19iaXQgPSAxIDw8IDcKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIG1hc2tfYml0ID0gMAotCi0gICAgICAgIGhlYWRlciA9IGNocihmaW4g
PDwgNyB8IHJzdjEgPDwgNiB8IHJzdjIgPDwgNSB8IHJzdjMgPDwgNCB8IG9wY29kZSkKLSAgICAg
ICAgcGF5bG9hZF9sZW5ndGggPSBsZW4ocGF5bG9hZCkKLSAgICAgICAgaWYgcGF5bG9hZF9sZW5n
dGggPD0gMTI1OgotICAgICAgICAgICAgaGVhZGVyICs9IGNocihtYXNrX2JpdCB8IHBheWxvYWRf
bGVuZ3RoKQotICAgICAgICBlbGlmIHBheWxvYWRfbGVuZ3RoIDwgMSA8PCAxNjoKLSAgICAgICAg
ICAgIGhlYWRlciArPSBjaHIobWFza19iaXQgfCAxMjYpICsgc3RydWN0LnBhY2soJyFIJywgcGF5
bG9hZF9sZW5ndGgpCi0gICAgICAgIGVsaWYgcGF5bG9hZF9sZW5ndGggPCAxIDw8IDYzOgotICAg
ICAgICAgICAgaGVhZGVyICs9IGNocihtYXNrX2JpdCB8IDEyNykgKyBzdHJ1Y3QucGFjaygnIVEn
LCBwYXlsb2FkX2xlbmd0aCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignVG9vIGxvbmcgcGF5bG9hZCAoJWQgYnl0ZSknICUgcGF5bG9hZF9sZW5ndGgpCi0gICAg
ICAgIGlmIG1hc2s6Ci0gICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fbWFza19oeWJpKHBheWxv
YWQpCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGhlYWRlciArIHBheWxvYWQpCi0KLSAg
ICBkZWYgc2VuZF9iaW5hcnkoc2VsZiwgcGF5bG9hZCwgZW5kPVRydWUsIG1hc2s9VHJ1ZSk6Ci0g
ICAgICAgIHNlbGYuc2VuZF9kYXRhKHBheWxvYWQsIE9QQ09ERV9CSU5BUlksIGVuZCwgbWFzaykK
LQotICAgIGRlZiBzZW5kX3RleHQoc2VsZiwgcGF5bG9hZCwgZW5kPVRydWUsIG1hc2s9VHJ1ZSk6
Ci0gICAgICAgIHNlbGYuc2VuZF9kYXRhKHBheWxvYWQuZW5jb2RlKCd1dGYtOCcpLCBPUENPREVf
VEVYVCwgZW5kLCBtYXNrKQotCi0gICAgZGVmIF9hc3NlcnRfcmVjZWl2ZV9kYXRhKHNlbGYsIHBh
eWxvYWQsIG9wY29kZSwgZmluLCByc3YxLCByc3YyLCByc3YzKToKLSAgICAgICAgKGFjdHVhbF9m
aW4sIGFjdHVhbF9yc3YxLCBhY3R1YWxfcnN2MiwgYWN0dWFsX3JzdjMsIGFjdHVhbF9vcGNvZGUs
Ci0gICAgICAgICBwYXlsb2FkX2xlbmd0aCkgPSByZWFkX2ZyYW1lX2hlYWRlcihzZWxmLl9zb2Nr
ZXQpCi0KLSAgICAgICAgaWYgYWN0dWFsX29wY29kZSAhPSBvcGNvZGU6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgb3Bjb2RlOiAlZCAo
ZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKG9wY29kZSwgYWN0
dWFsX29wY29kZSkpCi0KLSAgICAgICAgaWYgYWN0dWFsX2ZpbiAhPSBmaW46Ci0gICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZmluOiAlZCAo
ZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKGZpbiwgYWN0dWFs
X2ZpbikpCi0KLSAgICAgICAgaWYgcnN2MSBpcyBOb25lOgotICAgICAgICAgICAgcnN2MSA9IDAK
LSAgICAgICAgICAgIGlmIHNlbGYuX2hhbmRzaGFrZS5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFt
ZToKLSAgICAgICAgICAgICAgICByc3YxID0gMQotCi0gICAgICAgIGlmIHJzdjIgaXMgTm9uZToK
LSAgICAgICAgICAgIHJzdjIgPSAwCi0KLSAgICAgICAgaWYgcnN2MyBpcyBOb25lOgotICAgICAg
ICAgICAgcnN2MyA9IDAKLQotICAgICAgICBpZiBhY3R1YWxfcnN2MSAhPSByc3YxOgotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIHJzdjE6
ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAocnN2MSwg
YWN0dWFsX3JzdjEpKQotCi0gICAgICAgIGlmIGFjdHVhbF9yc3YyICE9IHJzdjI6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcnN2Mjog
JXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChyc3YyLCBh
Y3R1YWxfcnN2MikpCi0KLSAgICAgICAgaWYgYWN0dWFsX3JzdjMgIT0gcnN2MzoKLSAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCByc3YzOiAl
ciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKHJzdjMsIGFj
dHVhbF9yc3YzKSkKLQotICAgICAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29j
a2V0LCBwYXlsb2FkX2xlbmd0aCkKLQotICAgICAgICBpZiBzZWxmLl9pbmNvbWluZ19mcmFtZV9m
aWx0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZWNlaXZlZCA9IHNlbGYuX2luY29taW5n
X2ZyYW1lX2ZpbHRlci5maWx0ZXIocmVjZWl2ZWQpCi0KLSAgICAgICAgaWYgbGVuKHJlY2VpdmVk
KSAhPSBsZW4ocGF5bG9hZCk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5bG9hZCBsZW5ndGg6ICVkIChleHBlY3RlZCkgdnMgJWQg
KGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAobGVuKHBheWxvYWQpLCBsZW4ocmVjZWl2ZWQp
KSkKLQotICAgICAgICBpZiBwYXlsb2FkICE9IHJlY2VpdmVkOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIHBheWxvYWQ6ICVyIChleHBl
Y3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAocGF5bG9hZCwgcmVjZWl2
ZWQpKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2JpbmFyeShzZWxmLCBwYXlsb2FkLCBvcGNv
ZGU9T1BDT0RFX0JJTkFSWSwgZmluPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
c3YxPU5vbmUsIHJzdjI9Tm9uZSwgcnN2Mz1Ob25lKToKLSAgICAgICAgc2VsZi5fYXNzZXJ0X3Jl
Y2VpdmVfZGF0YShwYXlsb2FkLCBvcGNvZGUsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MykKLQotICAg
IGRlZiBhc3NlcnRfcmVjZWl2ZV90ZXh0KHNlbGYsIHBheWxvYWQsIG9wY29kZT1PUENPREVfVEVY
VCwgZmluPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1Ob25lLCByc3YyPU5v
bmUsIHJzdjM9Tm9uZSk6Ci0gICAgICAgIHNlbGYuX2Fzc2VydF9yZWNlaXZlX2RhdGEocGF5bG9h
ZC5lbmNvZGUoJ3V0Zi04JyksIG9wY29kZSwgZmluLCByc3YxLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJzdjIsIHJzdjMpCi0KLSAgICBkZWYgX2J1aWxkX2Nsb3NlX2ZyYW1l
KHNlbGYsIGNvZGUsIHJlYXNvbiwgbWFzayk6Ci0gICAgICAgIGZyYW1lID0gY2hyKDEgPDwgNyB8
IE9QQ09ERV9DTE9TRSkKLQotICAgICAgICBpZiBjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgYm9keSA9IHN0cnVjdC5wYWNrKCchSCcsIGNvZGUpICsgcmVhc29uLmVuY29kZSgndXRmLTgn
KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYm9keSA9ICcnCi0gICAgICAgIGlmIG1hc2s6
Ci0gICAgICAgICAgICBmcmFtZSArPSBjaHIoMSA8PCA3IHwgbGVuKGJvZHkpKSArIHNlbGYuX21h
c2tfaHliaShib2R5KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnJhbWUgKz0gY2hyKGxl
bihib2R5KSkgKyBib2R5Ci0gICAgICAgIHJldHVybiBmcmFtZQotCi0gICAgZGVmIHNlbmRfY2xv
c2Uoc2VsZiwgY29kZSwgcmVhc29uKToKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoCi0g
ICAgICAgICAgICBzZWxmLl9idWlsZF9jbG9zZV9mcmFtZShjb2RlLCByZWFzb24sIFRydWUpKQot
Ci0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYsIGNvZGUsIHJlYXNvbik6Ci0gICAg
ICAgIGV4cGVjdGVkX2ZyYW1lID0gc2VsZi5fYnVpbGRfY2xvc2VfZnJhbWUoY29kZSwgcmVhc29u
LCBGYWxzZSkKLSAgICAgICAgYWN0dWFsX2ZyYW1lID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2Nr
ZXQsIGxlbihleHBlY3RlZF9mcmFtZSkpCi0gICAgICAgIGlmIGFjdHVhbF9mcmFtZSAhPSBleHBl
Y3RlZF9mcmFtZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnVW5leHBlY3RlZCBjbG9zZSBmcmFtZTogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScg
JQotICAgICAgICAgICAgICAgIChleHBlY3RlZF9mcmFtZSwgYWN0dWFsX2ZyYW1lKSkKLQotCi1j
bGFzcyBXZWJTb2NrZXRTdHJlYW1IaXhpZTc1KG9iamVjdCk6Ci0gICAgIiIiRnJhbWUgcHJvY2Vz
c29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24gSGl4aWUgNzUgYW5kIEh5Qmkg
MDAuCi0gICAgIiIiCi0KLSAgICBfQ0xPU0VfRlJBTUUgPSAnXHhmZlx4MDAnCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgc29ja2V0LCB1bnVzZWRfaGFuZHNoYWtlKToKLSAgICAgICAgc2VsZi5f
c29ja2V0ID0gc29ja2V0Ci0KLSAgICBkZWYgc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMo
c2VsZiwgaGVhZGVyLCBib2R5KToKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVy
ICsgYm9keSkKLQotICAgIGRlZiBzZW5kX2RhdGEoc2VsZiwgcGF5bG9hZCwgdW51c2VkX2ZyYW1l
X3R5cGVtLCB1bnVzZWRfZW5kLCB1bnVzZWRfbWFzayk6Ci0gICAgICAgIGZyYW1lID0gJycuam9p
bihbJ1x4MDAnLCBwYXlsb2FkLCAnXHhmZiddKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFs
bChmcmFtZSkKLQotICAgIGRlZiBzZW5kX2JpbmFyeShzZWxmLCB1bnVzZWRfcGF5bG9hZCwgdW51
c2VkX2VuZCwgdW51c2VkX21hc2spOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgc2VuZF90ZXh0
KHNlbGYsIHBheWxvYWQsIHVudXNlZF9lbmQsIHVudXNlZF9tYXNrKToKLSAgICAgICAgZW5jb2Rl
ZF9wYXlsb2FkID0gcGF5bG9hZC5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgZnJhbWUgPSAnJy5q
b2luKFsnXHgwMCcsIGVuY29kZWRfcGF5bG9hZCwgJ1x4ZmYnXSkKLSAgICAgICAgc2VsZi5fc29j
a2V0LnNlbmRhbGwoZnJhbWUpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KHNlbGYs
IHBheWxvYWQsIG9wY29kZT1PUENPREVfQklOQVJZLCBmaW49MSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJzdjE9MCwgcnN2Mj0wLCByc3YzPTApOgotICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ0JpbmFyeSBmcmFtZSBpcyBub3Qgc3VwcG9ydGVkIGluIGhpeGllNzUnKQotCi0gICAg
ZGVmIGFzc2VydF9yZWNlaXZlX3RleHQoc2VsZiwgcGF5bG9hZCk6Ci0gICAgICAgIHJlY2VpdmVk
ID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0KLSAgICAgICAgaWYgcmVjZWl2ZWQg
IT0gJ1x4MDAnOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICdVbmV4cGVjdGVkIGZyYW1lIHR5cGU6ICVkIChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUK
LSAgICAgICAgICAgICAgICAoMCwgb3JkKHJlY2VpdmVkKSkpCi0KLSAgICAgICAgcmVjZWl2ZWQg
PSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgbGVuKHBheWxvYWQpICsgMSkKLSAgICAgICAg
aWYgcmVjZWl2ZWRbLTFdICE9ICdceGZmJzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnVGVybWluYXRpb24gZXhwZWN0ZWQ6IDB4ZmYgKGV4cGVjdGVkKSB2
cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIHJlY2VpdmVkKQotCi0gICAgICAgIGlm
IHJlY2VpdmVkWzA6LTFdICE9IHBheWxvYWQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5bG9hZDogJXIgKGV4cGVjdGVkKSB2cyAl
ciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChwYXlsb2FkLCByZWNlaXZlZFswOi0xXSkp
Ci0KLSAgICBkZWYgc2VuZF9jbG9zZShzZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAgICBzZWxm
Ll9zb2NrZXQuc2VuZGFsbChzZWxmLl9DTE9TRV9GUkFNRSkKLQotICAgIGRlZiBhc3NlcnRfcmVj
ZWl2ZV9jbG9zZShzZWxmLCB1bnVzZWRfY29kZSwgdW51c2VkX3JlYXNvbik6Ci0gICAgICAgIGNs
b3NpbmcgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgbGVuKHNlbGYuX0NMT1NFX0ZSQU1F
KSkKLSAgICAgICAgaWYgY2xvc2luZyAhPSBzZWxmLl9DTE9TRV9GUkFNRToKLSAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZlIGNsb3NpbmcgaGFuZHNoYWtlJykKLQot
Ci1jbGFzcyBDbGllbnRPcHRpb25zKG9iamVjdCk6Ci0gICAgIiIiSG9sZHMgb3B0aW9uIHZhbHVl
cyB0byBjb25maWd1cmUgdGhlIENsaWVudCBvYmplY3QuIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZik6Ci0gICAgICAgIHNlbGYudmVyc2lvbiA9IDEzCi0gICAgICAgIHNlbGYuc2VydmVyX2hv
c3QgPSAnJwotICAgICAgICBzZWxmLm9yaWdpbiA9ICcnCi0gICAgICAgIHNlbGYucmVzb3VyY2Ug
PSAnJwotICAgICAgICBzZWxmLnNlcnZlcl9wb3J0ID0gLTEKLSAgICAgICAgc2VsZi5zb2NrZXRf
dGltZW91dCA9IDEwMDAKLSAgICAgICAgc2VsZi51c2VfdGxzID0gRmFsc2UKLSAgICAgICAgc2Vs
Zi5leHRlbnNpb25zID0gW10KLSAgICAgICAgIyBFbmFibGUgZGVmbGF0ZS1hcHBsaWNhdGlvbi1k
YXRhLgotICAgICAgICBzZWxmLnVzZV9kZWZsYXRlX2ZyYW1lID0gRmFsc2UKLSAgICAgICAgIyBF
bmFibGUgbXV4Ci0gICAgICAgIHNlbGYudXNlX211eCA9IEZhbHNlCi0KLSAgICBkZWYgZW5hYmxl
X2RlZmxhdGVfZnJhbWUoc2VsZik6Ci0gICAgICAgIHNlbGYudXNlX2RlZmxhdGVfZnJhbWUgPSBU
cnVlCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9ucy5hcHBlbmQoX0RFRkxBVEVfRlJBTUVfRVhURU5T
SU9OKQotCi0gICAgZGVmIGVuYWJsZV9tdXgoc2VsZik6Ci0gICAgICAgIHNlbGYudXNlX211eCA9
IFRydWUKLSAgICAgICAgc2VsZi5leHRlbnNpb25zLmFwcGVuZChfTVVYX0VYVEVOU0lPTikKLQot
Ci1kZWYgY29ubmVjdF9zb2NrZXRfd2l0aF9yZXRyeShob3N0LCBwb3J0LCB0aW1lb3V0LCB1c2Vf
dGxzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0cnk9MTAsIHNsZWVwX3NlYz0w
LjEpOgotICAgIHJldHJ5X2NvdW50ID0gMAotICAgIHdoaWxlIHJldHJ5X2NvdW50IDwgcmV0cnk6
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKLSAgICAgICAg
ICAgIHMuc2V0dGltZW91dCh0aW1lb3V0KQotICAgICAgICAgICAgcy5jb25uZWN0KChob3N0LCBw
b3J0KSkKLSAgICAgICAgICAgIGlmIHVzZV90bHM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIF9U
TFNTb2NrZXQocykKLSAgICAgICAgICAgIHJldHVybiBzCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQu
ZXJyb3IgYXMgZToKLSAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUNPTk5SRUZVU0VE
OgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIHJldHJ5X2NvdW50ID0gcmV0cnlfY291bnQgKyAxCi0gICAgICAgICAgICAgICAgdGltZS5z
bGVlcChzbGVlcF9zZWMpCi0KLSAgICByZXR1cm4gTm9uZQotCi0KLWNsYXNzIENsaWVudChvYmpl
Y3QpOgotICAgICIiIldlYlNvY2tldCBjbGllbnQuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
Ziwgb3B0aW9ucywgaGFuZHNoYWtlLCBzdHJlYW1fY2xhc3MpOgotICAgICAgICBzZWxmLl9sb2dn
ZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9vcHRpb25z
ID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9zb2NrZXQgPSBOb25lCi0KLSAgICAgICAgc2VsZi5f
aGFuZHNoYWtlID0gaGFuZHNoYWtlCi0gICAgICAgIHNlbGYuX3N0cmVhbV9jbGFzcyA9IHN0cmVh
bV9jbGFzcwotCi0gICAgZGVmIGNvbm5lY3Qoc2VsZik6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9
IGNvbm5lY3Rfc29ja2V0X3dpdGhfcmV0cnkoCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9u
cy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0
LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc29ja2V0X3RpbWVvdXQsCi0gICAgICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQotCi0gICAgICAgIHNlbGYuX2hhbmRzaGFr
ZS5oYW5kc2hha2Uoc2VsZi5fc29ja2V0KQotCi0gICAgICAgIHNlbGYuX3N0cmVhbSA9IHNlbGYu
X3N0cmVhbV9jbGFzcyhzZWxmLl9zb2NrZXQsIHNlbGYuX2hhbmRzaGFrZSkKLQotICAgICAgICBz
ZWxmLl9sb2dnZXIuaW5mbygnQ29ubmVjdGlvbiBlc3RhYmxpc2hlZCcpCi0KLSAgICBkZWYgc2Vu
ZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToKLSAgICAgICAg
c2VsZi5fc3RyZWFtLnNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKGhlYWRlciwgYm9keSkK
LQotICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1G
YWxzZSwgcmF3PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgbWFzaz1UcnVlKToKLSAgICAg
ICAgaWYgYmluYXJ5OgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KG1lc3Nh
Z2UsIGVuZCwgbWFzaykKLSAgICAgICAgZWxpZiByYXc6Ci0gICAgICAgICAgICBzZWxmLl9zdHJl
YW0uc2VuZF9kYXRhKG1lc3NhZ2UsIE9QQ09ERV9URVhULCBlbmQsIG1hc2spCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF90ZXh0KG1lc3NhZ2UsIGVuZCwgbWFz
aykKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZShzZWxmLCBwYXlsb2FkLCBiaW5hcnk9RmFsc2Up
OgotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uYXNzZXJ0X3Jl
Y2VpdmVfYmluYXJ5KHBheWxvYWQpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9z
dHJlYW0uYXNzZXJ0X3JlY2VpdmVfdGV4dChwYXlsb2FkKQotCi0gICAgZGVmIHNlbmRfY2xvc2Uo
c2VsZiwgY29kZT1TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNl
bGYuX3N0cmVhbS5zZW5kX2Nsb3NlKGNvZGUsIHJlYXNvbikKLQotICAgIGRlZiBhc3NlcnRfcmVj
ZWl2ZV9jbG9zZShzZWxmLCBjb2RlPVNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToK
LSAgICAgICAgc2VsZi5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2Nsb3NlKGNvZGUsIHJlYXNvbikK
LQotICAgIGRlZiBjbG9zZV9zb2NrZXQoc2VsZik6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5jbG9z
ZSgpCi0KLSAgICBkZWYgYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKHNlbGYpOgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICByZWFkX2RhdGEgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwg
MSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgaWYgc3RyKGUp
LmZpbmQoCi0gICAgICAgICAgICAgICAgJ0Nvbm5lY3Rpb24gY2xvc2VkIGJlZm9yZSByZWNlaXZp
bmcgcmVxdWVzdGVkIGxlbmd0aCAnKSA9PSAwOgotICAgICAgICAgICAgICAgIHJldHVybgotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGVycm9yX251bWJlciwgbWVzc2FnZSA9IGUK
LSAgICAgICAgICAgICAgICBmb3IgZXJyb3JfbmFtZSBpbiBbJ0VDT05OUkVTRVQnLCAnV1NBRUNP
Tk5SRVNFVCddOgotICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JfbmFtZSBpbiBkaXIoZXJy
bm8pIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbnVtYmVyID09IGdldGF0dHIo
ZXJybm8sIGVycm9yX25hbWUpKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgotICAg
ICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIHJhaXNlIGUKLSAgICAgICAgICAgIHJh
aXNlIGUKLQotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nvbm5lY3Rpb24gaXMgbm90IGNsb3Nl
ZCAoUmVhZDogJXIpJyAlIHJlYWRfZGF0YSkKLQotCi1kZWYgY3JlYXRlX2NsaWVudChvcHRpb25z
KToKLSAgICByZXR1cm4gQ2xpZW50KAotICAgICAgICBvcHRpb25zLCBXZWJTb2NrZXRIYW5kc2hh
a2Uob3B0aW9ucyksIFdlYlNvY2tldFN0cmVhbSkKLQotCi1kZWYgY3JlYXRlX2NsaWVudF9oeWJp
MDAob3B0aW9ucyk6Ci0gICAgcmV0dXJuIENsaWVudCgKLSAgICAgICAgb3B0aW9ucywKLSAgICAg
ICAgV2ViU29ja2V0SHliaTAwSGFuZHNoYWtlKG9wdGlvbnMsICcwJyksCi0gICAgICAgIFdlYlNv
Y2tldFN0cmVhbUhpeGllNzUpCi0KLQotZGVmIGNyZWF0ZV9jbGllbnRfaGl4aWU3NShvcHRpb25z
KToKLSAgICByZXR1cm4gQ2xpZW50KAotICAgICAgICBvcHRpb25zLCBXZWJTb2NrZXRIaXhpZTc1
SGFuZHNoYWtlKG9wdGlvbnMpLCBXZWJTb2NrZXRTdHJlYW1IaXhpZTc1KQotCi0KLSMgdmk6c3Rz
PTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxf
c2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0N2Y4NmZkYjQxNjNkNGU3Mzg5NTJiM2NjYjc3
ZjE5MjE2YmM1OTE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC9lbmR0b2VuZF93aXRoX2V4dGVybmFsX3NlcnZlci5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDY3ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmln
aHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiVGVzdCBmb3IgZW5kLXRvLWVuZCB3aXRoIGV4dGVybmFsIHNlcnZlci4K
LQotVGhpcyB0ZXN0IGlzIG5vdCBydW4gYnkgcnVuX2FsbC5weSBiZWNhdXNlIGl0IHJlcXVpcmVz
IHNvbWUgcHJlcGFyYXRpb25zLgotSWYgeW91IHdvdWxkIGxpa2UgdG8gcnVuIHRoaXMgdGVzdCBj
b3JyZWN0bHksIGxhdW5jaCBBcGFjaGUgd2l0aCBtb2RfcHl0aG9uCi1hbmQgbW9kX3B5d2Vic29j
a2V0IG1hbnVhbGx5LiBJbiBhZGRpdGlvbiwgeW91IHNob3VsZCBwYXNzIGFsbG93X2RyYWZ0NzUg
b3B0aW9uCi1hbmQgZXhhbXBsZSBwYXRoIGFzIGhhbmRsZXJfc2NhbiBvcHRpb24gYW5kIEFwYWNo
ZSdzIERvY3VtZW50Um9vdC4KLSIiIgotCi0KLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IHN5cwot
aW1wb3J0IHRlc3QudGVzdF9lbmR0b2VuZAotaW1wb3J0IHVuaXR0ZXN0Ci0KLQotX0RFRkFVTFRf
V0VCX1NPQ0tFVF9QT1JUID0gODAKLQotCi1jbGFzcyBFbmRUb0VuZFRlc3RXaXRoRXh0ZXJuYWxT
ZXJ2ZXIodGVzdC50ZXN0X2VuZHRvZW5kLkVuZFRvRW5kVGVzdCk6Ci0gICAgcGFzcwotCi1pZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNl
cigpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9ydCcsIGRlc3Q9J3BvcnQnLCB0
eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9X0RFRkFVTFRfV0VCX1NP
Q0tFVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2V4dGVybmFsIHRlc3Qgc2Vy
dmVyIHBvcnQuJykKLSAgICAob3B0aW9ucywgYXJncykgPSBwYXJzZXIucGFyc2VfYXJncygpCi0K
LSAgICB0ZXN0LnRlc3RfZW5kdG9lbmQuX3VzZV9leHRlcm5hbF9zZXJ2ZXIgPSBUcnVlCi0gICAg
dGVzdC50ZXN0X2VuZHRvZW5kLl9leHRlcm5hbF9zZXJ2ZXJfcG9ydCA9IG9wdGlvbnMucG9ydAot
Ci0gICAgdW5pdHRlc3QubWFpbihhcmd2PVtzeXMuYXJndlswXV0pCi0KLQotIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvbW9jay5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tb2NrLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmZmY2FjNDhkYzQzYTUyYjljY2YxYmNk
MDEyOTc1NDI0MDQ4ZDY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC9tb2NrLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjIxICswLDAgQEAK
LSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIk1vY2tzIGZvciB0ZXN0aW5nLgotIiIiCi0KLQotaW1w
b3J0IFF1ZXVlCi1pbXBvcnQgdGhyZWFkaW5nCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3
NQotCi0KLWNsYXNzIF9Nb2NrQ29ubkJhc2Uob2JqZWN0KToKLSAgICAiIiJCYXNlIGNsYXNzIG9m
IG1vY2tzIGZvciBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLgotCi0gICAgVGhpcyBlbmFibGVz
IHRlc3RzIHRvIGNoZWNrIHdoYXQgaXMgd3JpdHRlbiB0byBhIChtb2NrKSBtcF9jb25uLgotICAg
ICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLl93cml0ZV9kYXRh
ID0gW10KLSAgICAgICAgc2VsZi5yZW1vdGVfYWRkciA9ICdmYWtlX2FkZHJlc3MnCi0KLSAgICBk
ZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBh
Y2hlLm1wX2Nvbm4ud3JpdGUuIiIiCi0KLSAgICAgICAgc2VsZi5fd3JpdGVfZGF0YS5hcHBlbmQo
ZGF0YSkKLQotICAgIGRlZiB3cml0dGVuX2RhdGEoc2VsZik6Ci0gICAgICAgICIiIkdldCBieXRl
cyB3cml0dGVuIHRvIHRoaXMgbW9jay4iIiIKLQotICAgICAgICByZXR1cm4gJycuam9pbihzZWxm
Ll93cml0ZV9kYXRhKQotCi0KLWNsYXNzIE1vY2tDb25uKF9Nb2NrQ29ubkJhc2UpOgotICAgICIi
Ik1vY2sgZm9yIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4uCi0KLSAgICBUaGlzIGVuYWJsZXMg
dGVzdHMgdG8gc3BlY2lmeSB3aGF0IHNob3VsZCBiZSByZWFkIGZyb20gYSAobW9jaykgbXBfY29u
biBhcwotICAgIHdlbGwgYXMgdG8gY2hlY2sgd2hhdCBpcyB3cml0dGVuIHRvIGl0LgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlYWRfZGF0YSk6Ci0gICAgICAgICIiIkNvbnN0
cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlYWRfZGF0
YTogYnl0ZXMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgd2hlbiByZWFkKiBtZXRob2RzIGFyZQot
ICAgICAgICAgICAgY2FsbGVkLgotICAgICAgICAiIiIKLQotICAgICAgICBfTW9ja0Nvbm5CYXNl
Ll9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3JlYWRfZGF0YSA9IHJlYWRfZGF0YQotICAg
ICAgICBzZWxmLl9yZWFkX3BvcyA9IDAKLQotICAgIGRlZiByZWFkbGluZShzZWxmKToKLSAgICAg
ICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi5yZWFkbGluZS4iIiIKLQot
ICAgICAgICBpZiBzZWxmLl9yZWFkX3BvcyA+PSBsZW4oc2VsZi5fcmVhZF9kYXRhKToKLSAgICAg
ICAgICAgIHJldHVybiAnJwotICAgICAgICBlbmRfaW5kZXggPSBzZWxmLl9yZWFkX2RhdGEuZmlu
ZCgnXG4nLCBzZWxmLl9yZWFkX3BvcykgKyAxCi0gICAgICAgIGlmIG5vdCBlbmRfaW5kZXg6Ci0g
ICAgICAgICAgICBlbmRfaW5kZXggPSBsZW4oc2VsZi5fcmVhZF9kYXRhKQotICAgICAgICByZXR1
cm4gc2VsZi5fcmVhZF91cF90byhlbmRfaW5kZXgpCi0KLSAgICBkZWYgcmVhZChzZWxmLCBsZW5n
dGgpOgotICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJlYWQu
IiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVhZF9wb3MgPj0gbGVuKHNlbGYuX3JlYWRfZGF0YSk6
Ci0gICAgICAgICAgICByZXR1cm4gJycKLSAgICAgICAgZW5kX2luZGV4ID0gbWluKGxlbihzZWxm
Ll9yZWFkX2RhdGEpLCBzZWxmLl9yZWFkX3BvcyArIGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3JlYWRfdXBfdG8oZW5kX2luZGV4KQotCi0gICAgZGVmIF9yZWFkX3VwX3RvKHNlbGYsIGVu
ZF9pbmRleCk6Ci0gICAgICAgIGxpbmUgPSBzZWxmLl9yZWFkX2RhdGFbc2VsZi5fcmVhZF9wb3M6
ZW5kX2luZGV4XQotICAgICAgICBzZWxmLl9yZWFkX3BvcyA9IGVuZF9pbmRleAotICAgICAgICBy
ZXR1cm4gbGluZQotCi0KLWNsYXNzIE1vY2tCbG9ja2luZ0Nvbm4oX01vY2tDb25uQmFzZSk6Ci0g
ICAgIiIiQmxvY2tpbmcgbW9jayBmb3IgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi4KLQotICAg
IFRoaXMgZW5hYmxlcyB0ZXN0cyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGJlIHJlYWQgZnJvbSBh
IChtb2NrKSBtcF9jb25uIGFzCi0gICAgd2VsbCBhcyB0byBjaGVjayB3aGF0IGlzIHdyaXR0ZW4g
dG8gaXQuCi0gICAgQ2FsbGVycyBvZiByZWFkKiBtZXRob2RzIHdpbGwgYmxvY2sgaWYgdGhlcmUg
aXMgbm8gYnl0ZXMgYXZhaWxhYmxlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYp
OgotICAgICAgICBfTW9ja0Nvbm5CYXNlLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3F1
ZXVlID0gUXVldWUuUXVldWUoKQotCi0gICAgZGVmIHJlYWRsaW5lKHNlbGYpOgotICAgICAgICAi
IiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJlYWRsaW5lLiIiIgotICAgICAg
ICBsaW5lID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGMgPSBzZWxmLl9x
dWV1ZS5nZXQoKQotICAgICAgICAgICAgbGluZSArPSBjCi0gICAgICAgICAgICBpZiBjID09ICdc
bic6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxpbmUKLQotICAgIGRlZiByZWFkKHNlbGYsIGxl
bmd0aCk6Ci0gICAgICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4ucmVh
ZC4iIiIKLQotICAgICAgICBkYXRhID0gJycKLSAgICAgICAgZm9yIHVudXNlZCBpbiByYW5nZShs
ZW5ndGgpOgotICAgICAgICAgICAgZGF0YSArPSBzZWxmLl9xdWV1ZS5nZXQoKQotICAgICAgICBy
ZXR1cm4gZGF0YQotCi0gICAgZGVmIHB1dF9ieXRlcyhzZWxmLCBieXRlcyk6Ci0gICAgICAgICIi
IlB1dCBieXRlcyB0byBiZSByZWFkIGZyb20gdGhpcyBtb2NrLgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgICBieXRlczogYnl0ZXMgdG8gYmUgcmVhZC4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgZm9yIGJ5dGUgaW4gYnl0ZXM6Ci0gICAgICAgICAgICBzZWxmLl9xdWV1ZS5wdXQoYnl0ZSkK
LQotCi1jbGFzcyBNb2NrVGFibGUoZGljdCk6Ci0gICAgIiIiTW9jayB0YWJsZS4KLQotICAgIFRo
aXMgbWltaWNzIG1vZF9weXRob24gbXBfdGFibGUuIE5vdGUgdGhhdCBvbmx5IHRoZSBtZXRob2Rz
IHVzZWQgYnkKLSAgICB0ZXN0cyBhcmUgb3ZlcnJpZGRlbi4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBjb3B5X2Zyb209e30pOgotICAgICAgICBpZiBpc2luc3RhbmNlKGNvcHlf
ZnJvbSwgZGljdCk6Ci0gICAgICAgICAgICBjb3B5X2Zyb20gPSBjb3B5X2Zyb20uaXRlbXMoKQot
ICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBjb3B5X2Zyb206Ci0gICAgICAgICAgICBzZWxmLl9f
c2V0aXRlbV9fKGtleSwgdmFsdWUpCi0KLSAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToK
LSAgICAgICAgcmV0dXJuIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuX19nZXRpdGVtX18oa2V5Lmxv
d2VyKCkpCi0KLSAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6Ci0gICAgICAg
IHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuX19zZXRpdGVtX18oa2V5Lmxvd2VyKCksIHZhbHVlKQot
Ci0gICAgZGVmIGdldChzZWxmLCBrZXksIGRlZl92YWx1ZT1Ob25lKToKLSAgICAgICAgcmV0dXJu
IHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuZ2V0KGtleS5sb3dlcigpLCBkZWZfdmFsdWUpCi0KLQot
Y2xhc3MgTW9ja1JlcXVlc3Qob2JqZWN0KToKLSAgICAiIiJNb2NrIHJlcXVlc3QuCi0KLSAgICBU
aGlzIG1pbWljcyBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgdXJpPU5vbmUsIGhlYWRlcnNfaW49e30sIGNvbm5lY3Rpb249Tm9uZSwgbWV0aG9k
PSdHRVQnLAotICAgICAgICAgICAgICAgICBwcm90b2NvbD0nSFRUUC8xLjEnLCBpc19odHRwcz1G
YWxzZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmd1
bWVudHM6Ci0gICAgICAgICAgICB1cmk6IFVSSSBvZiB0aGUgcmVxdWVzdC4KLSAgICAgICAgICAg
IGhlYWRlcnNfaW46IFJlcXVlc3QgaGVhZGVycy4KLSAgICAgICAgICAgIGNvbm5lY3Rpb246IENv
bm5lY3Rpb24gdXNlZCBmb3IgdGhlIHJlcXVlc3QuCi0gICAgICAgICAgICBtZXRob2Q6IHJlcXVl
c3QgbWV0aG9kLgotICAgICAgICAgICAgaXNfaHR0cHM6IFdoZXRoZXIgdGhpcyByZXF1ZXN0IGlz
IG92ZXIgU1NMLgotCi0gICAgICAgIFNlZSB0aGUgZG9jdW1lbnQgb2YgbW9kX3B5dGhvbiBSZXF1
ZXN0IGZvciBkZXRhaWxzLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi51cmkgPSB1cmkKLSAg
ICAgICAgc2VsZi51bnBhcnNlZF91cmkgPSB1cmkKLSAgICAgICAgc2VsZi5jb25uZWN0aW9uID0g
Y29ubmVjdGlvbgotICAgICAgICBzZWxmLm1ldGhvZCA9IG1ldGhvZAotICAgICAgICBzZWxmLnBy
b3RvY29sID0gcHJvdG9jb2wKLSAgICAgICAgc2VsZi5oZWFkZXJzX2luID0gTW9ja1RhYmxlKGhl
YWRlcnNfaW4pCi0gICAgICAgICMgc2VsZi5pc19odHRwc18gbmVlZHMgdG8gYmUgYWNjZXNzaWJs
ZSBmcm9tIHRlc3RzLiAgVG8gYXZvaWQgbmFtZQotICAgICAgICAjIGNvbmZsaWN0IHdpdGggc2Vs
Zi5pc19odHRwcygpLCBpdCBpcyBuYW1lZCBhcyBzdWNoLgotICAgICAgICBzZWxmLmlzX2h0dHBz
XyA9IGlzX2h0dHBzCi0gICAgICAgIHNlbGYud3Nfc3RyZWFtID0gU3RyZWFtSGl4aWU3NShzZWxm
LCBUcnVlKQotICAgICAgICBzZWxmLndzX2Nsb3NlX2NvZGUgPSBOb25lCi0gICAgICAgIHNlbGYu
d3NfY2xvc2VfcmVhc29uID0gTm9uZQotICAgICAgICBzZWxmLndzX3ZlcnNpb24gPSBjb21tb24u
VkVSU0lPTl9IWUJJMDAKLSAgICAgICAgc2VsZi53c19kZWZsYXRlID0gRmFsc2UKLQotICAgIGRl
ZiBpc19odHRwcyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgdGhpcyByZXF1ZXN0
IGlzIG92ZXIgU1NMLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5pc19odHRwc18KLQotCi1jbGFz
cyBNb2NrRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIk1vY2sgZm9yIGRpc3BhdGNoLkRpc3Bh
dGNoZXIuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuZG9fZXh0
cmFfaGFuZHNoYWtlX2NhbGxlZCA9IEZhbHNlCi0KLSAgICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtl
KHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHNlbGYuZG9fZXh0cmFfaGFuZHNoYWtlX2Nh
bGxlZCA9IFRydWUKLQotICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIGNvbm5fY29udGV4dCk6
Ci0gICAgICAgIHBhc3MKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L211eF9jbGllbnRfZm9y
X3Rlc3RpbmcucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwNGU3ZmM5NWQzZmM1
YjNlZTJkOWU1NGYyMDc4MmFkZGFlMjA0MGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L211eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw2OTAgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0j
IENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0iIiJXZWJTb2NrZXQgY2xpZW50IHV0aWxpdHkgZm9yIHRlc3Rp
bmcgbXV4IGV4dGVuc2lvbi4KLQotVGhpcyBjb2RlIHNob3VsZCBiZSBpbmRlcGVuZGVudCBmcm9t
IG1vZF9weXdlYnNvY2tldC4gU2VlIHRoZSBjb21tZW50IG9mCi1jbGllbnRfZm9yX3Rlc3Rpbmcu
cHkuCi0KLU5PVEU6IFRoaXMgY29kZSBpcyBmYXIgZnJvbSByb2J1c3QgbGlrZSBjbGllbnRfZm9y
X3Rlc3RpbmcucHkuCi0iIiIKLQotCi0KLWltcG9ydCBRdWV1ZQotaW1wb3J0IGJhc2U2NAotaW1w
b3J0IGNvbGxlY3Rpb25zCi1pbXBvcnQgZW1haWwKLWltcG9ydCBlbWFpbC5wYXJzZXIKLWltcG9y
dCBsb2dnaW5nCi1pbXBvcnQgbWF0aAotaW1wb3J0IG9zCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQg
c29ja2V0Ci1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgdGhyZWFkaW5nCi0KLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCB1dGlsCi0KLWZyb20gdGVzdCBpbXBvcnQgY2xpZW50X2Zvcl90ZXN0aW5n
Ci0KLQotX0NPTlRST0xfQ0hBTk5FTF9JRCA9IDAKLV9ERUZBVUxUX0NIQU5ORUxfSUQgPSAxCi0K
LV9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QgPSAwCi1fTVVYX09QQ09ERV9BRERfQ0hB
Tk5FTF9SRVNQT05TRSA9IDEKLV9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCA9IDIKLV9NVVhfT1BD
T0RFX0RST1BfQ0hBTk5FTCA9IDMKLV9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1QgPSA0Ci0K
LQotY2xhc3MgX0NvbnRyb2xCbG9jazoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3Bjb2RlKToK
LSAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUKLQotCi1kZWYgX3BhcnNlX2hhbmRzaGFrZV9y
ZXNwb25zZShyZXNwb25zZSk6Ci0gICAgc3RhdHVzX2xpbmUsIGhlYWRlcl9saW5lcyA9IHJlc3Bv
bnNlLnNwbGl0KCdcclxuJywgMSkKLQotICAgIHdvcmRzID0gc3RhdHVzX2xpbmUuc3BsaXQoJyAn
KQotICAgIGlmIGxlbih3b3JkcykgPCAzOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQg
U3RhdHVzLUxpbmUgc3ludGF4ICVyJyAlIHN0YXR1c19saW5lKQotICAgIFt2ZXJzaW9uLCByZXNw
b25zZV9jb2RlXSA9IHdvcmRzWzoyXQotICAgIGlmIHZlcnNpb24gIT0gJ0hUVFAvMS4xJzoKLSAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIHJlc3BvbnNlIHZlcnNpb24gJXInICUgdmVyc2lv
bikKLQotICAgIGlmIHJlc3BvbnNlX2NvZGUgIT0gJzEwMSc6Ci0gICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ0JhZCByZXNwb25zZSBjb2RlICVyICcgJSByZXNwb25zZV9jb2RlKQotICAgIGhlYWRl
cnMgPSBlbWFpbC5wYXJzZXIuUGFyc2VyKCkucGFyc2VzdHIoaGVhZGVyX2xpbmVzKQotICAgIHJl
dHVybiBoZWFkZXJzCi0KLQotZGVmIF9wYXJzZV9jaGFubmVsX2lkKGRhdGEsIG9mZnNldD0wKToK
LSAgICBsZW5ndGggPSBsZW4oZGF0YSkKLSAgICByZW1haW5pbmcgPSBsZW5ndGggLSBvZmZzZXQK
LQotICAgIGlmIHJlbWFpbmluZyA8PSAwOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIGNo
YW5uZWwgaWQgZm91bmQnKQotCi0gICAgY2hhbm5lbF9pZCA9IG9yZChkYXRhW29mZnNldF0pCi0g
ICAgY2hhbm5lbF9pZF9sZW5ndGggPSAxCi0gICAgaWYgY2hhbm5lbF9pZCAmIDB4ZTAgPT0gMHhl
MDoKLSAgICAgICAgaWYgcmVtYWluaW5nIDwgNDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBzdHJ1
Y3QudW5wYWNrKCchTCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFb
b2Zmc2V0Om9mZnNldCs0XSlbMF0gJiAweDFmZmZmZmZmCi0gICAgICAgIGNoYW5uZWxfaWRfbGVu
Z3RoID0gNAotICAgIGVsaWYgY2hhbm5lbF9pZCAmIDB4YzAgPT0gMHhjMDoKLSAgICAgICAgaWYg
cmVtYWluaW5nIDwgMzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBjaGFu
bmVsIGlkIGZvcm1hdCcpCi0gICAgICAgIGNoYW5uZWxfaWQgPSAoKChjaGFubmVsX2lkICYgMHgx
ZikgPDwgMTYpICsKLSAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QudW5wYWNrKCchSCcsIGRh
dGFbb2Zmc2V0KzE6b2Zmc2V0KzNdKVswXSkKLSAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAz
Ci0gICAgZWxpZiBjaGFubmVsX2lkICYgMHg4MCA9PSAweDgwOgotICAgICAgICBpZiByZW1haW5p
bmcgPCAyOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIGNoYW5uZWwgaWQg
Zm9ybWF0JykKLSAgICAgICAgY2hhbm5lbF9pZCA9IHN0cnVjdC51bnBhY2soJyFIJywgZGF0YVtv
ZmZzZXQ6b2Zmc2V0KzJdKVswXSAmIDB4M2ZmZgotICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9
IDIKLQotICAgIHJldHVybiBjaGFubmVsX2lkLCBjaGFubmVsX2lkX2xlbmd0aAotCi0KLWRlZiBf
cGFyc2VfbnVtYmVyKGRhdGEsIG9mZnNldD0wKToKLSAgICBmaXJzdF9ieXRlID0gb3JkKGRhdGFb
b2Zmc2V0XSkKLSAgICBpZiAoZmlyc3RfYnl0ZSAmIDB4ODApICE9IDA6Ci0gICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignVGhlIE1TQiBvZiBudW1iZXIgZmllbGQgbXVzdCBiZSB1bnNldCcpCi0gICAg
Zmlyc3RfYnl0ZSA9IGZpcnN0X2J5dGUgJiAweDdmCi0gICAgaWYgZmlyc3RfYnl0ZSA9PSAxMjc6
Ci0gICAgICAgIGlmIG9mZnNldCArIDkgPiBsZW4oZGF0YSk6Ci0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oJ0ludmFsaWQgbnVtYmVyJykKLSAgICAgICAgcmV0dXJuIHN0cnVjdC51bnBhY2so
JyFRJywgZGF0YVtvZmZzZXQrMTpvZmZzZXQrOV0pWzBdLCA5Ci0gICAgaWYgZmlyc3RfYnl0ZSA9
PSAxMjY6Ci0gICAgICAgIGlmIG9mZnNldCArIDMgPiBsZW4oZGF0YSk6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgbnVtYmVyJykKLSAgICAgICAgcmV0dXJuIHN0cnVjdC51
bnBhY2soJyFIJywgZGF0YVtvZmZzZXQrMTpvZmZzZXQrM10pWzBdLCAzCi0gICAgcmV0dXJuIGZp
cnN0X2J5dGUsIDEKLQotCi1kZWYgX3BhcnNlX3NpemVfYW5kX2NvbnRlbnRzKGRhdGEsIG9mZnNl
dD0wKToKLSAgICBzaXplLCBhZHZhbmNlID0gX3BhcnNlX251bWJlcihkYXRhLCBvZmZzZXQpCi0g
ICAgc3RhcnRfcG9zaXRpb24gPSBvZmZzZXQgKyBhZHZhbmNlCi0gICAgZW5kX3Bvc2l0aW9uID0g
c3RhcnRfcG9zaXRpb24gKyBzaXplCi0gICAgaWYgbGVuKGRhdGEpIDwgZW5kX3Bvc2l0aW9uOgot
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgc2l6ZSBvZiBjb250cm9sIGJsb2NrICgl
ZCA8ICVkKScgJSAoCi0gICAgICAgICAgICAgICAgbGVuKGRhdGEpLCBlbmRfcG9zaXRpb24pKQot
ICAgIHJldHVybiBkYXRhW3N0YXJ0X3Bvc2l0aW9uOmVuZF9wb3NpdGlvbl0sIHNpemUgKyBhZHZh
bmNlCi0KLQotZGVmIF9wYXJzZV9jb250cm9sX2Jsb2NrcyhkYXRhKToKLSAgICBibG9ja3MgPSBb
XQotICAgIGxlbmd0aCA9IGxlbihkYXRhKQotICAgIHBvcyA9IDAKLQotICAgIHdoaWxlIHBvcyA8
IGxlbmd0aDoKLSAgICAgICAgZmlyc3RfYnl0ZSA9IG9yZChkYXRhW3Bvc10pCi0gICAgICAgIHBv
cyArPSAxCi0gICAgICAgIG9wY29kZSA9IChmaXJzdF9ieXRlID4+IDUpICYgMHg3Ci0gICAgICAg
IGJsb2NrID0gX0NvbnRyb2xCbG9jayhvcGNvZGUpCi0KLSAgICAgICAgIyBUT0RPKGJhc2hpKTog
U3VwcG9ydCBtb3JlIG9wY29kZQotICAgICAgICBpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQURE
X0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAgICAgICAgICBibG9jay5lbmNvZGUgPSBmaXJzdF9ieXRl
ICYgMwotICAgICAgICAgICAgYmxvY2sucmVqZWN0ZWQgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEK
LQotICAgICAgICAgICAgY2hhbm5lbF9pZCwgYWR2YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKGRh
dGEsIHBvcykKLSAgICAgICAgICAgIGJsb2NrLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAg
ICAgICAgICBwb3MgKz0gYWR2YW5jZQotCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSwg
YWR2YW5jZSA9IF9wYXJzZV9zaXplX2FuZF9jb250ZW50cyhkYXRhLCBwb3MpCi0gICAgICAgICAg
ICBibG9jay5lbmNvZGVkX2hhbmRzaGFrZSA9IGVuY29kZWRfaGFuZHNoYWtlCi0gICAgICAgICAg
ICBwb3MgKz0gYWR2YW5jZQotICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChibG9jaykKLSAgICAg
ICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfRFJPUF9DSEFOTkVMOgotICAgICAgICAgICAg
YmxvY2subXV4X2Vycm9yID0gKGZpcnN0X2J5dGUgPj4gNCkgJiAxCi0KLSAgICAgICAgICAgIGNo
YW5uZWxfaWQsIGFkdmFuY2UgPSBfcGFyc2VfY2hhbm5lbF9pZChkYXRhLCBwb3MpCi0gICAgICAg
ICAgICBibG9jay5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICAgICAgcG9zICs9IGFk
dmFuY2UKLQotICAgICAgICAgICAgcmVhc29uLCBhZHZhbmNlID0gX3BhcnNlX3NpemVfYW5kX2Nv
bnRlbnRzKGRhdGEsIHBvcykKLSAgICAgICAgICAgIGlmIGxlbihyZWFzb24pID09IDA6Ci0gICAg
ICAgICAgICAgICAgYmxvY2suZHJvcF9jb2RlID0gTm9uZQotICAgICAgICAgICAgICAgIGJsb2Nr
LmRyb3BfbWVzc2FnZSA9ICcnCi0gICAgICAgICAgICBlbGlmIGxlbihyZWFzb24pID49IDI6Ci0g
ICAgICAgICAgICAgICAgYmxvY2suZHJvcF9jb2RlID0gc3RydWN0LnVucGFjaygnIUgnLCByZWFz
b25bOjJdKVswXQotICAgICAgICAgICAgICAgIGJsb2NrLmRyb3BfbWVzc2FnZSA9IHJlYXNvblsy
Ol0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJ
bnZhbGlkIERyb3BDaGFubmVsJykKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAg
ICAgICBibG9ja3MuYXBwZW5kKGJsb2NrKQotICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09Q
Q09ERV9GTE9XX0NPTlRST0w6Ci0gICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3Bh
cnNlX2NoYW5uZWxfaWQoZGF0YSwgcG9zKQotICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCA9
IGNoYW5uZWxfaWQKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBzZW5k
X3F1b3RhLCBhZHZhbmNlID0gX3BhcnNlX251bWJlcihkYXRhLCBwb3MpCi0gICAgICAgICAgICBi
bG9jay5zZW5kX3F1b3RhID0gc2VuZF9xdW90YQotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UK
LSAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxvY2spCi0gICAgICAgIGVsaWYgb3Bjb2RlID09
IF9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1Q6Ci0gICAgICAgICAgICBmYWxsYmFjayA9IGZp
cnN0X2J5dGUgJiAxCi0gICAgICAgICAgICBzbG90cywgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIo
ZGF0YSwgcG9zKQotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLSAgICAgICAgICAgIHNlbmRf
cXVvdGEsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIHBvcykKLSAgICAgICAgICAgIHBv
cyArPSBhZHZhbmNlCi0gICAgICAgICAgICBpZiBmYWxsYmFjayA9PSAxIGFuZCAoc2xvdHMgIT0g
MCBvciBzZW5kX3F1b3RhICE9IDApOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
c2xvdHMgYW5kIHNlbmRfcXVvdGEgbXVzdCBiZSB6ZXJvIGlmIEYgYml0ICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2lzIHNldCcpCi0gICAgICAgICAgICBibG9jay5mYWxsYmFj
ayA9IGZhbGxiYWNrCi0gICAgICAgICAgICBibG9jay5zbG90cyA9IHNsb3RzCi0gICAgICAgICAg
ICBibG9jay5zZW5kX3F1b3RhID0gc2VuZF9xdW90YQotICAgICAgICAgICAgYmxvY2tzLmFwcGVu
ZChibG9jaykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnVW5zdXBwb3J0ZWQgbXV4IG9wY29kZSAlZCByZWNlaXZlZCcgJSBvcGNv
ZGUpCi0KLSAgICByZXR1cm4gYmxvY2tzCi0KLQotZGVmIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFu
bmVsX2lkKToKLSAgICBpZiBjaGFubmVsX2lkIDwgMDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cignQ2hhbm5lbCBpZCAlZCBtdXN0IG5vdCBiZSBuZWdhdGl2ZScgJSBjaGFubmVsX2lkKQotCi0g
ICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogNzoKLSAgICAgICAgcmV0dXJuIGNocihjaGFubmVsX2lk
KQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDE0OgotICAgICAgICByZXR1cm4gc3RydWN0LnBh
Y2soJyFIJywgMHg4MDAwICsgY2hhbm5lbF9pZCkKLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAy
MToKLSAgICAgICAgZmlyc3QgPSBjaHIoMHhjMCArIChjaGFubmVsX2lkID4+IDE2KSkKLSAgICAg
ICAgcmV0dXJuIGZpcnN0ICsgc3RydWN0LnBhY2soJyFIJywgY2hhbm5lbF9pZCAmIDB4ZmZmZikK
LSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAyOToKLSAgICAgICAgcmV0dXJuIHN0cnVjdC5wYWNr
KCchTCcsIDB4ZTAwMDAwMDAgKyBjaGFubmVsX2lkKQotCi0gICAgcmFpc2UgVmFsdWVFcnJvcign
Q2hhbm5lbCBpZCAlZCBpcyB0b28gbGFyZ2UnICUgY2hhbm5lbF9pZCkKLQotCi1kZWYgX2VuY29k
ZV9udW1iZXIobnVtYmVyKToKLSAgICBpZiBudW1iZXIgPD0gMTI1OgotICAgICAgICByZXR1cm4g
Y2hyKG51bWJlcikKLSAgICBlbGlmIG51bWJlciA8ICgxIDw8IDE2KToKLSAgICAgICAgcmV0dXJu
IGNocigweDdlKSArIHN0cnVjdC5wYWNrKCchSCcsIG51bWJlcikKLSAgICBlbGlmIG51bWJlciA8
ICgxIDw8IDYzKToKLSAgICAgICAgcmV0dXJuIGNocigweDdmKSArIHN0cnVjdC5wYWNrKCchUScs
IG51bWJlcikKLSAgICBlbHNlOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgbnVt
YmVyJykKLQotCi1kZWYgX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0KGNoYW5uZWxfaWQsIGVu
Y29kZWRfaGFuZHNoYWtlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGlu
Zz0wKToKLSAgICBsZW5ndGggPSBsZW4oZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgaGFuZHNoYWtl
X2xlbmd0aCA9IF9lbmNvZGVfbnVtYmVyKGxlbmd0aCkKLQotICAgIGZpcnN0X2J5dGUgPSAoX01V
WF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA8PCA1KSB8IGVuY29kaW5nCi0gICAgcmV0dXJu
IChjaHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKwotICAg
ICAgICAgICAgaGFuZHNoYWtlX2xlbmd0aCArIGVuY29kZWRfaGFuZHNoYWtlKQotCi0KLWRlZiBf
Y3JlYXRlX2Zsb3dfY29udHJvbChjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSk6Ci0gICAg
Zmlyc3RfYnl0ZSA9IChfTVVYX09QQ09ERV9GTE9XX0NPTlRST0wgPDwgNSkKLSAgICByZXR1cm4g
KGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCi0gICAg
ICAgICAgICBfZW5jb2RlX251bWJlcihyZXBsZW5pc2hlZF9xdW90YSkpCi0KLQotY2xhc3MgX011
eFJlYWRlclRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJNdXggcmVhZGVyIHRocmVh
ZC4KLQotICAgIFJlYWRzIGZyYW1lcyBhbmQgcGFzc2VzIHRoZW0gdG8gdGhlIG11eCBjbGllbnQu
IFRoaXMgdGhyZWFkIGFjY2Vzc2VzCi0gICAgcHJpdmF0ZSBmdW5jdGlvbnMvdmFyaWFibGVzIG9m
IHRoZSBtdXggY2xpZW50LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG11eCk6
Ci0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5z
ZXREYWVtb24oVHJ1ZSkKLSAgICAgICAgc2VsZi5fbXV4ID0gbXV4Ci0gICAgICAgIHNlbGYuX3N0
b3BfcmVxdWVzdGVkID0gRmFsc2UKLQotICAgIGRlZiBfcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgot
ICAgICAgICBmaXJzdF9vcGNvZGUgPSBOb25lCi0gICAgICAgIHBlbmRpbmdfcGF5bG9hZCA9IFtd
Ci0gICAgICAgIHdoaWxlIG5vdCBzZWxmLl9zdG9wX3JlcXVlc3RlZDoKLSAgICAgICAgICAgIGZp
biwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkX2xlbmd0aCA9ICgKLSAgICAgICAg
ICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcucmVhZF9mcmFtZV9oZWFkZXIoc2VsZi5fbXV4Ll9z
b2NrZXQpKQotCi0gICAgICAgICAgICBpZiBub3QgZmlyc3Rfb3Bjb2RlOgotICAgICAgICAgICAg
ICAgIGlmIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQ6Ci0gICAgICAg
ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgYSB0ZXh0IG1lc3NhZ2Ugb24g
cGh5c2ljYWwgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3Rp
b24nKQotICAgICAgICAgICAgICAgIGlmIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BD
T0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdS
ZWNlaXZlZCBhbiBpbnRlcm1lZGlhdGUgZnJhbWUgYnV0ICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdmcmFnbWVudGF0aW9uIHdhcyBub3Qgc3RhcnRlZCcpCi0gICAgICAg
ICAgICAgICAgaWYgKG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFSWSBv
cgotICAgICAgICAgICAgICAgICAgICBvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09E
RV9QT05HIG9yCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3Rp
bmcuT1BDT0RFX1BPTkcgb3IKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlID09IGNsaWVudF9m
b3JfdGVzdGluZy5PUENPREVfQ0xPU0UpOgotICAgICAgICAgICAgICAgICAgICBmaXJzdF9vcGNv
ZGUgPSBvcGNvZGUKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGFuIHVuZGVmaW5lZCBvcGNvZGUgZnJhbWU6ICVkJyAl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGUpCi0KLSAgICAgICAg
ICAgIGVsaWYgb3Bjb2RlICE9IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQ09OVElOVUFUSU9O
OgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgYSBuZXcgb3Bjb2Rl
IGJlZm9yZSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXJtaW5hdGluZyBm
cmFnbWVudGF0aW9uJykKLQotICAgICAgICAgICAgcGF5bG9hZCA9IGNsaWVudF9mb3JfdGVzdGlu
Zy5yZWNlaXZlX2J5dGVzKAotICAgICAgICAgICAgICAgIHNlbGYuX211eC5fc29ja2V0LCBwYXls
b2FkX2xlbmd0aCkKLQotICAgICAgICAgICAgaWYgc2VsZi5fbXV4Ll9pbmNvbWluZ19mcmFtZV9m
aWx0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcGF5bG9hZCA9IHNlbGYuX211eC5f
aW5jb21pbmdfZnJhbWVfZmlsdGVyLmZpbHRlcihwYXlsb2FkKQotCi0gICAgICAgICAgICBwZW5k
aW5nX3BheWxvYWQuYXBwZW5kKHBheWxvYWQpCi0KLSAgICAgICAgICAgIGlmIGZpbjoKLSAgICAg
ICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlmIHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAg
ICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKLQotICAgICAgICBtZXNzYWdlID0gJycuam9pbihw
ZW5kaW5nX3BheWxvYWQpCi0gICAgICAgIHJldHVybiBmaXJzdF9vcGNvZGUsIG1lc3NhZ2UKLQot
ICAgIGRlZiByZXF1ZXN0X3N0b3Aoc2VsZik6Ci0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVk
ID0gVHJ1ZQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
d2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAgICAgICMgb3Bjb2Rl
IGlzIE9QQ09ERV9CSU5BUlkgb3IgY29udHJvbCBvcGNvZGVzIHdoZW4gYSBtZXNzYWdlCi0gICAg
ICAgICAgICAgICAgIyBpcyBzdWNjZXNmdWxseSByZWNlaXZlZC4KLSAgICAgICAgICAgICAgICBv
cGNvZGUsIG1lc3NhZ2UgPSBzZWxmLl9yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICAgICAgICAg
IGlmIG5vdCBvcGNvZGU6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAg
ICAgIGlmIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFSWToKLSAgICAg
ICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwgYWR2YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKG1l
c3NhZ2UpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX211eC5fZGlzcGF0Y2hfZnJhbWUoY2hh
bm5lbF9pZCwgbWVzc2FnZVthZHZhbmNlOl0pCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9wcm9jZXNzX2NvbnRyb2xfbWVzc2FnZShvcGNvZGUs
IG1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9tdXguX25vdGlm
eV9yZWFkZXJfZG9uZSgpCi0KLQotY2xhc3MgX0lubmVyRnJhbWUob2JqZWN0KToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWQpOgot
ICAgICAgICBzZWxmLmZpbiA9IGZpbgotICAgICAgICBzZWxmLnJzdjEgPSByc3YxCi0gICAgICAg
IHNlbGYucnN2MiA9IHJzdjIKLSAgICAgICAgc2VsZi5yc3YzID0gcnN2MwotICAgICAgICBzZWxm
Lm9wY29kZSA9IG9wY29kZQotICAgICAgICBzZWxmLnBheWxvYWQgPSBwYXlsb2FkCi0KLQotY2xh
c3MgX0xvZ2ljYWxDaGFubmVsRGF0YShvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToK
LSAgICAgICAgc2VsZi5xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLSAgICAgICAgc2VsZi5zZW5kX3F1
b3RhID0gMAotICAgICAgICBzZWxmLnJlY2VpdmVfcXVvdGEgPSAwCi0KLQotY2xhc3MgTXV4Q2xp
ZW50KG9iamVjdCk6Ci0gICAgIiIiV2ViU29ja2V0IG11eCBjbGllbnQuCi0KLSAgICBOb3RlIHRo
YXQgdGhpcyBjbGFzcyBpcyBOT1QgdGhyZWFkLXNhZmUuIERvIG5vdCBhY2Nlc3MgYW4gaW5zdGFu
Y2Ugb2YgdGhpcwotICAgIGNsYXNzIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBhdCBhIHNhbWUgdGlt
ZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAg
c2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2Vs
Zi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5lbmFibGVfbXV4KCkK
LSAgICAgICAgc2VsZi5fc3RyZWFtID0gTm9uZQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBOb25l
Ci0gICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IGNsaWVudF9mb3JfdGVzdGluZy5XZWJTb2NrZXRI
YW5kc2hha2Uoc2VsZi5fb3B0aW9ucykKLSAgICAgICAgc2VsZi5faW5jb21pbmdfZnJhbWVfZmls
dGVyID0gTm9uZQotICAgICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIgPSBOb25lCi0K
LSAgICAgICAgc2VsZi5faXNfYWN0aXZlID0gRmFsc2UKLSAgICAgICAgc2VsZi5fcmVhZF90aHJl
YWQgPSBOb25lCi0gICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbiA9IHRocmVh
ZGluZy5Db25kaXRpb24oKQotICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2NrcyA9IFtdCi0gICAg
ICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMgPSBjb2xsZWN0aW9ucy5kZXF1ZSgpCi0gICAgICAgIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpOwot
ICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzID0ge30KLSAgICAgICAgc2VsZi5fdGltZW91
dCA9IDIKLSAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudCA9IE5v
bmUKLSAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9tZXNzYWdlID0gTm9u
ZQotCi0gICAgZGVmIF9wYXJzZV9pbm5lcl9mcmFtZShzZWxmLCBkYXRhKToKLSAgICAgICAgaWYg
bGVuKGRhdGEpID09IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgZW5j
YXBzdWxhdGVkIGZyYW1lIHJlY2VpdmVkJykKLQotICAgICAgICBmaXJzdF9ieXRlID0gb3JkKGRh
dGFbMF0pCi0gICAgICAgIGZpbiA9IChmaXJzdF9ieXRlIDw8IDcpICYgMQotICAgICAgICByc3Yx
ID0gKGZpcnN0X2J5dGUgPDwgNikgJiAxCi0gICAgICAgIHJzdjIgPSAoZmlyc3RfYnl0ZSA8PCA1
KSAmIDEKLSAgICAgICAgcnN2MyA9IChmaXJzdF9ieXRlIDw8IDQpICYgMQotICAgICAgICBvcGNv
ZGUgPSBmaXJzdF9ieXRlICYgMHhmCi0KLSAgICAgICAgaWYgc2VsZi5fb3V0Z29pbmdfZnJhbWVf
ZmlsdGVyOgotICAgICAgICAgICAgcGF5bG9hZCA9IHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRl
ci5maWx0ZXIoCi0gICAgICAgICAgICAgICAgZGF0YVsxOl0pCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBwYXlsb2FkID0gZGF0YVsxOl0KLQotICAgICAgICByZXR1cm4gX0lubmVyRnJhbWUo
ZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWQpCi0KLSAgICBkZWYgX3Byb2Nl
c3NfbXV4X2NvbnRyb2xfYmxvY2tzKHNlbGYpOgotICAgICAgICBmb3IgYmxvY2sgaW4gc2VsZi5f
Y29udHJvbF9ibG9ja3M6Ci0gICAgICAgICAgICBpZiBibG9jay5vcGNvZGUgPT0gX01VWF9PUENP
REVfQUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAgICAgICAgICAgICAgIyBBZGRDaGFubmVsUmVz
cG9uc2Ugd2lsbCBiZSBoYW5kbGVkIGluIGFkZF9jaGFubmVsKCkuCi0gICAgICAgICAgICAgICAg
Y29udGludWUKLSAgICAgICAgICAgIGVsaWYgYmxvY2sub3Bjb2RlID09IF9NVVhfT1BDT0RFX0ZM
T1dfQ09OVFJPTDoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgICAg
ICAgICBpZiBub3QgYmxvY2suY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgot
ICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIGZsb3cgY29u
dHJvbCByZWNlaXZlZCBmb3IgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdjaGFubmVsIGlkICVkJyAlIGJsb2NrLmNoYW5uZWxfaWQpCi0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbYmxvY2suY2hhbm5lbF9pZF0uc2VuZF9xdW90YSAr
PSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5zZW5kX3F1b3RhKQotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5ub3RpZnkoKQotICAg
ICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotICAgICAgICAgICAgZWxpZiBibG9jay5vcGNv
ZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVDoKLSAgICAgICAgICAgICAgICBzZWxm
Ll9jaGFubmVsX3Nsb3RzLmV4dGVuZChbYmxvY2suc2VuZF9xdW90YV0gKiBibG9jay5zbG90cykK
LQotICAgIGRlZiBfZGlzcGF0Y2hfZnJhbWUoc2VsZiwgY2hhbm5lbF9pZCwgcGF5bG9hZCk6Ci0g
ICAgICAgIGlmIGNoYW5uZWxfaWQgPT0gX0NPTlRST0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24uYWNx
dWlyZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3MgKz0gX3BhcnNlX2Nv
bnRyb2xfYmxvY2tzKHBheWxvYWQpCi0gICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19tdXhf
Y29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2Nv
bmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBz
ZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19j
b25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4g
c2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdSZWNlaXZlZCBsb2dpY2FsIGZyYW1lIG9uIGNoYW5uZWwgaWQgJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJyVkLCB3aGljaCBpcyBub3QgZXN0YWJsaXNoZWQnICUK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQpCi0KLSAgICAg
ICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYuX3BhcnNlX2lubmVyX2ZyYW1lKHBheWxvYWQp
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5yZWNl
aXZlX3F1b3RhIC09ICgKLSAgICAgICAgICAgICAgICAgICAgICAgIGxlbihpbm5lcl9mcmFtZS5w
YXlsb2FkKSkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5u
ZWxfaWRdLnJlY2VpdmVfcXVvdGEgPCAwOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ1RoZSBzZXJ2ZXIgdmlvbGF0ZXMgcXVvdGEgb24gJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2NoYW5uZWwgaWQgJWQnICUgY2hhbm5lbF9pZCkKLSAgICAgICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25k
aXRpb24ucmVsZWFzZSgpCi0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5u
ZWxfaWRdLnF1ZXVlLnB1dChpbm5lcl9mcmFtZSkKLQotICAgIGRlZiBfcHJvY2Vzc19jb250cm9s
X21lc3NhZ2Uoc2VsZiwgb3Bjb2RlLCBtZXNzYWdlKToKLSAgICAgICAgIyBQaW5nL1BvbmcgYXJl
IG5vdCBzdXBwb3J0ZWQuCi0gICAgICAgIGlmIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX0NMT1NFOgotICAgICAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9z
ZV9tZXNzYWdlID0gbWVzc2FnZQotICAgICAgICAgICAgaWYgc2VsZi5faXNfYWN0aXZlOgotICAg
ICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2Nsb3NlKAotICAgICAgICAgICAgICAgICAg
ICBjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0n
JykKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWFkX3RocmVhZC5yZXF1ZXN0X3N0b3AoKQotCi0g
ICAgICAgICAgICBpZiBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50OgotICAg
ICAgICAgICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQuc2V0KCkK
LQotICAgIGRlZiBfbm90aWZ5X3JlYWRlcl9kb25lKHNlbGYpOgotICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ1JlYWQgdGhyZWFkIHRlcm1pbmF0ZWQuJykKLSAgICAgICAgc2VsZi5jbG9zZV9z
b2NrZXQoKQotCi0gICAgZGVmIF9hc3NlcnRfY2hhbm5lbF9zbG90X2F2YWlsYWJsZShzZWxmKToK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9u
LmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbGVuKHNlbGYuX2NoYW5uZWxfc2xvdHMpID09IDA6
Ci0gICAgICAgICAgICAgICAgIyBXYWl0IG9uY2UKLSAgICAgICAgICAgICAgICBzZWxmLl9jb250
cm9sX2Jsb2Nrc19jb25kaXRpb24ud2FpdCh0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24ucmVs
ZWFzZSgpCi0KLSAgICAgICAgaWYgbGVuKHNlbGYuX2NoYW5uZWxfc2xvdHMpID09IDA6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ZhaWxlZCB0byByZWNlaXZlIE5ld0NoYW5uZWxTbG90
JykKLQotICAgIGRlZiBfYXNzZXJ0X3NlbmRfcXVvdGFfYXZhaWxhYmxlKHNlbGYsIGNoYW5uZWxf
aWQpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2Nv
bmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNb
Y2hhbm5lbF9pZF0uc2VuZF9xdW90YSA9PSAwOgotICAgICAgICAgICAgICAgICMgV2FpdCBvbmNl
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ud2FpdCh0
aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICBpZiBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnNlbmRfcXVvdGEgPT0gMDoKLSAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRvIHJlY2VpdmUgRmxvd0NvbnRyb2wgZm9yIGNo
YW5uZWwgaWQgJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkKQot
Ci0gICAgZGVmIGNvbm5lY3Qoc2VsZik6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9IGNsaWVudF9m
b3JfdGVzdGluZy5jb25uZWN0X3NvY2tldF93aXRoX3JldHJ5KAotICAgICAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5z
ZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNvY2tldF90aW1lb3V0
LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykKLQotICAgICAgICBzZWxm
Ll9oYW5kc2hha2UuaGFuZHNoYWtlKHNlbGYuX3NvY2tldCkKLSAgICAgICAgc2VsZi5fc3RyZWFt
ID0gY2xpZW50X2Zvcl90ZXN0aW5nLldlYlNvY2tldFN0cmVhbSgKLSAgICAgICAgICAgIHNlbGYu
X3NvY2tldCwgc2VsZi5faGFuZHNoYWtlKQotCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNbX0RFRkFVTFRfQ0hBTk5FTF9JRF0gPSBfTG9naWNhbENoYW5uZWxEYXRhKCkKLQotICAgICAg
ICBzZWxmLl9yZWFkX3RocmVhZCA9IF9NdXhSZWFkZXJUaHJlYWQoc2VsZikKLSAgICAgICAgc2Vs
Zi5fcmVhZF90aHJlYWQuc3RhcnQoKQotCi0gICAgICAgIHNlbGYuX2Fzc2VydF9jaGFubmVsX3Ns
b3RfYXZhaWxhYmxlKCkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X3NlbmRfcXVvdGFfYXZhaWxhYmxl
KF9ERUZBVUxUX0NIQU5ORUxfSUQpCi0KLSAgICAgICAgc2VsZi5faXNfYWN0aXZlID0gVHJ1ZQot
ICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQ29ubmVjdGlvbiBlc3RhYmxpc2hlZCcpCi0KLSAg
ICBkZWYgYWRkX2NoYW5uZWwoc2VsZiwgY2hhbm5lbF9pZCwgb3B0aW9ucyk6Ci0gICAgICAgIGlm
IG5vdCBzZWxmLl9pc19hY3RpdmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ011eCBj
bGllbnQgaXMgbm90IGFjdGl2ZScpCi0KLSAgICAgICAgaWYgY2hhbm5lbF9pZCBpbiBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDaGFubmVsIGlk
ICVkIGFscmVhZHkgZXhpc3RzJyAlIGNoYW5uZWxfaWQpCi0KLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgc2VuZF9xdW90YSA9IHNlbGYuX2NoYW5uZWxfc2xvdHMucG9wbGVmdCgpCi0gICAgICAg
IGV4Y2VwdCBJbmRleEVycm9yIGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05v
IGNoYW5uZWwgc2xvdHM6ICVyJyAlIGUpCi0KLSAgICAgICAgIyBDcmVhdGUgQWRkQ2hhbm5lbCBy
ZXF1ZXN0Ci0gICAgICAgIHJlcXVlc3RfbGluZSA9ICdHRVQgJXMgSFRUUC8xLjFcclxuJyAlIG9w
dGlvbnMucmVzb3VyY2UKLSAgICAgICAgZmllbGRzID0gW10KLSAgICAgICAgaWYgb3B0aW9ucy5z
ZXJ2ZXJfcG9ydCA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuREVGQVVMVF9QT1JUOgotICAgICAgICAg
ICAgZmllbGRzLmFwcGVuZCgnSG9zdDogJXNcclxuJyAlIG9wdGlvbnMuc2VydmVyX2hvc3QubG93
ZXIoKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJ0hvc3Q6ICVz
OiVkXHJcbicgJSAob3B0aW9ucy5zZXJ2ZXJfaG9zdC5sb3dlcigpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9wb3J0KSkKLSAg
ICAgICAgZmllbGRzLmFwcGVuZCgnT3JpZ2luOiAlc1xyXG4nICUgb3B0aW9ucy5vcmlnaW4ubG93
ZXIoKSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nKQot
Ci0gICAgICAgIGlmIGxlbihvcHRpb25zLmV4dGVuc2lvbnMpID4gMDoKLSAgICAgICAgICAgIGZp
ZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczogJXNcclxuJyAlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICcsICcuam9pbihvcHRpb25zLmV4dGVuc2lvbnMpKQotCi0gICAg
ICAgIGhhbmRzaGFrZSA9IHJlcXVlc3RfbGluZSArICcnLmpvaW4oZmllbGRzKSArICdcclxuJwot
ICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
KAotICAgICAgICAgICAgY2hhbm5lbF9pZCwgaGFuZHNoYWtlKQotICAgICAgICBwYXlsb2FkID0g
X2VuY29kZV9jaGFubmVsX2lkKF9DT05UUk9MX0NIQU5ORUxfSUQpICsgYWRkX2NoYW5uZWxfcmVx
dWVzdAotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9iaW5hcnkocGF5bG9hZCkKLQotICAgICAg
ICAjIFdhaXQgQWRkQ2hhbm5lbFJlc3BvbnNlCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
V2FpdGluZyBBZGRDaGFubmVsUmVzcG9uc2UgZm9yIHRoZSByZXF1ZXN0Li4uJykKLSAgICAgICAg
cmVzcG9uc2UgPSBOb25lCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xf
YmxvY2tzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIHdoaWxlIFRydWU6Ci0gICAg
ICAgICAgICAgICAgZm9yIGJsb2NrIGluIHNlbGYuX2NvbnRyb2xfYmxvY2tzOgotICAgICAgICAg
ICAgICAgICAgICBpZiBibG9jay5vcGNvZGUgIT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVT
UE9OU0U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAg
ICAgICBpZiBibG9jay5jaGFubmVsX2lkID09IGNoYW5uZWxfaWQ6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICByZXNwb25zZSA9IGJsb2NrCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9j
b250cm9sX2Jsb2Nrcy5yZW1vdmUocmVzcG9uc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICAgICAgICAgIGlmIHJlc3BvbnNlOgotICAgICAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi53YWl0
KHNlbGYuX3RpbWVvdXQpCi0gICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2ZToK
LSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdBZGRDaGFubmVsUmVxdWVzdCB0
aW1lZCBvdXQnKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fY29udHJvbF9i
bG9ja3NfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICMgVmFsaWRhdGUgQWRkQ2hhbm5l
bFJlc3BvbnNlCi0gICAgICAgIGlmIHJlc3BvbnNlLnJlamVjdGVkOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdUaGUgc2VydmVyIHJlamVjdGVkIEFkZENoYW5uZWxSZXF1ZXN0JykKLQot
ICAgICAgICBmaWVsZHMgPSBfcGFyc2VfaGFuZHNoYWtlX3Jlc3BvbnNlKHJlc3BvbnNlLmVuY29k
ZWRfaGFuZHNoYWtlKQotCi0gICAgICAgICMgU2hvdWxkIHdlIHJlamVjdCB3aGVuIFVwZ3JhZGUs
IENvbm5lY3Rpb24sIG9yIFNlYy1XZWJTb2NrZXQtQWNjZXB0Ci0gICAgICAgICMgaGVhZGVycyBl
eGlzdD8KLQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJl
KCkKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXSA9IF9Mb2dpY2Fs
Q2hhbm5lbERhdGEoKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRd
LnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTG9naWNh
bCBjaGFubmVsICVkIGVzdGFibGlzaGVkJyAlIGNoYW5uZWxfaWQpCi0KLSAgICBkZWYgX2NoZWNr
X2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIGlm
IG5vdCBzZWxmLl9pc19hY3RpdmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ011eCBj
bGllbnQgaXMgbm90IGFjdGl2ZScpCi0KLSAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2Vs
Zi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTG9naWNh
bCBjaGFubmVsICVkIGlzIG5vdCBlc3RhYmxpc2hlZC4nKQotCi0gICAgZGVmIGRyb3BfY2hhbm5l
bChzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgIyBUT0RPKGJhc2hpKTogSW1wbGVtZW50Ci0g
ICAgICAgIHBhc3MKLQotICAgIGRlZiBzZW5kX2Zsb3dfY29udHJvbChzZWxmLCBjaGFubmVsX2lk
LCByZXBsZW5pc2hlZF9xdW90YSk6Ci0gICAgICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5l
bF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9m
bG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpCi0gICAgICAgIHBheWxv
YWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBmbG93X2NvbnRy
b2wKLSAgICAgICAgIyBSZXBsZW5pc2ggcmVjZWl2ZSBxdW90YQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAg
ICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucmVjZWl2ZV9xdW90YSAr
PSAoCi0gICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGEpCi0gICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkK
LSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KHBheWxvYWQpCi0KLSAgICBkZWYgc2Vu
ZF9tZXNzYWdlKHNlbGYsIGNoYW5uZWxfaWQsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFs
c2UpOgotICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5u
ZWxfaWQpCi0KLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IChl
bmQgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFSWQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IChlbmQgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3Rp
bmcuT1BDT0RFX1RFWFQKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRm
LTgnKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFubmVs
c1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhIDwgbGVuKG1lc3NhZ2UpOgotICAgICAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignU2VuZCBxdW90YSB2aW9sYXRpb246ICVkIDwgJWQnICUgKAotICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5z
ZW5kX3F1b3RhLAotICAgICAgICAgICAgICAgICAgICAgICAgbGVuKG1lc3NhZ2UpKSkKLQotICAg
ICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhIC09
IGxlbihtZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgIHBheWxvYWQgPSBfZW5jb2Rl
X2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKyBjaHIoZmlyc3RfYnl0ZSkgKyBtZXNzYWdlCi0gICAg
ICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShwYXlsb2FkKQotCi0gICAgZGVmIGFzc2VydF9y
ZWNlaXZlKHNlbGYsIGNoYW5uZWxfaWQsIHBheWxvYWQsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAg
IHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNbY2hhbm5lbF9pZF0ucXVldWUuZ2V0KAotICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi5f
dGltZW91dCkKLSAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5IGFzIGU6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCByZWNlaXZlIG1lc3NhZ2UgZnJvbSBjaGFubmVsIGlkICVk
JyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCkKLQotICAgICAgICBp
ZiBiaW5hcnk6Ci0gICAgICAgICAgICBvcGNvZGUgPSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RF
X0JJTkFSWQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3Bjb2RlID0gY2xpZW50X2Zvcl90
ZXN0aW5nLk9QQ09ERV9URVhUCi0KLSAgICAgICAgaWYgaW5uZXJfZnJhbWUub3Bjb2RlICE9IG9w
Y29kZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCBvcGNvZGUgcmVj
ZWl2ZWQgKCVyICE9ICVyKScgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChleHBlY3Rl
ZF9vcGNvZGUsIGlubmVyX2ZyYW1lLm9wY29kZSkpCi0KLSAgICAgICAgaWYgaW5uZXJfZnJhbWUu
cGF5bG9hZCAhPSBwYXlsb2FkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVj
dGVkIHBheWxvYWQgcmVjZWl2ZWQnKQotCi0gICAgZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY2hhbm5l
bF9pZCwgY29kZT1Ob25lLCByZWFzb249JycpOgotICAgICAgICBzZWxmLl9jaGVja19sb2dpY2Fs
X2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5uZWxfaWQpCi0KLSAgICAgICAgaWYgY29kZSBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIGJvZHkgPSBzdHJ1Y3QucGFjaygnIUgnLCBjb2RlKSArIHJlYXNv
bi5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGJvZHkgPSAnJwot
Ci0gICAgICAgIGZpcnN0X2J5dGUgPSAoMSA8PCA3KSB8IGNsaWVudF9mb3JfdGVzdGluZy5PUENP
REVfQ0xPU0UKLSAgICAgICAgcGF5bG9hZCA9IF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lk
KSArIGNocihmaXJzdF9ieXRlKSArIGJvZHkKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmlu
YXJ5KHBheWxvYWQpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uoc2VsZiwgY2hhbm5l
bF9pZCk6Ci0gICAgICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hh
bm5lbF9pZCkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucXVldWUuZ2V0KAotICAgICAgICAgICAgICAg
IHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5IGFzIGU6
Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCByZWNlaXZlIG1lc3NhZ2UgZnJv
bSBjaGFubmVsIGlkICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9p
ZCkKLSAgICAgICAgaWYgaW5uZXJfZnJhbWUub3Bjb2RlICE9IGNsaWVudF9mb3JfdGVzdGluZy5P
UENPREVfQ0xPU0U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0RpZG5cJ3QgcmVjZWl2
ZSBjbG9zZSBmcmFtZScpCi0KLSAgICBkZWYgc2VuZF9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3Nl
KHNlbGYsIGNvZGU9Tm9uZSwgcmVhc29uPScnKToKLSAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29u
bmVjdGlvbl9jbG9zZV9ldmVudCA9IHRocmVhZGluZy5FdmVudCgpCi0gICAgICAgIHNlbGYuX3N0
cmVhbS5zZW5kX2Nsb3NlKGNvZGUsIHJlYXNvbikKLQotICAgICMgVGhpcyBtZXRob2QgY2FuIGJl
IHVzZWQgb25seSBhZnRlciBjYWxsaW5nCi0gICAgIyBzZW5kX3BoeXNpY2FsX2Nvbm5lY3Rpb25f
Y2xvc2UoKS4KLSAgICBkZWYgYXNzZXJ0X3BoeXNpY2FsX2Nvbm5lY3Rpb25fcmVjZWl2ZV9jbG9z
ZSgKLSAgICAgICAgc2VsZiwgY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX05PUk1BTF9D
TE9TVVJFLCByZWFzb249JycpOgotICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Ns
b3NlX2V2ZW50LndhaXQodGltZW91dD1zZWxmLl90aW1lb3V0KQotICAgICAgICBpZiAobm90IHNl
bGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQuaXNTZXQoKSBvcgotICAgICAgICAg
ICAgbm90IHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfbWVzc2FnZSk6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ0RpZG5cJ3QgcmVjZWl2ZSBjbG9zaW5nIGhhbmRzaGFrZScp
Ci0KLSAgICBkZWYgY2xvc2Vfc29ja2V0KHNlbGYpOgotICAgICAgICBzZWxmLl9pc19hY3RpdmUg
PSBGYWxzZQotICAgICAgICBzZWxmLl9zb2NrZXQuY2xvc2UoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3J1bl9hbGwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvcnVuX2FsbC5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODBhNWQ4N2Q4MzgyMmIwNzgzYmUxM2UzM2RkYTNhYjYxYTVhZmU0MC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvcnVu
X2FsbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5
dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3Ry
aWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiUnVuIGFsbCB0ZXN0cyBpbiB0aGUgc2Ft
ZSBkaXJlY3RvcnkuCi0KLVRoaXMgc3VpdGUgaXMgZXhwZWN0ZWQgdG8gYmUgcnVuIHVuZGVyIHB5
d2Vic29ja2V0J3Mgc3JjIGRpcmVjdG9yeSwgaS5lLiB0aGUKLWRpcmVjdG9yeSBjb250YWluaW5n
IG1vZF9weXdlYnNvY2tldCwgdGVzdCwgZXRjLgotCi1UbyBjaGFuZ2UgbG9nZ2luIGxldmVsLCBw
bGVhc2Ugc3BlY2lmeSAtLWxvZy1sZXZlbCBvcHRpb24uCi0gICAgcHl0aG9uIHRlc3QvcnVuX3Rl
c3QucHkgLS1sb2ctbGV2ZWwgZGVidWcKLQotVG8gcGFzcyBhbnkgb3B0aW9uIHRvIHVuaXR0ZXN0
IG1vZHVsZSwgcGxlYXNlIHNwZWNpZnkgb3B0aW9ucyBhZnRlciAnLS0nLiBGb3IKLWV4YW1wbGUs
IHJ1biB0aGlzIGZvciBtYWtpbmcgdGhlIHRlc3QgcnVubmVyIHZlcmJvc2UuCi0gICAgcHl0aG9u
IHRlc3QvcnVuX3Rlc3QucHkgLS1sb2ctbGV2ZWwgZGVidWcgLS0gLXYKLSIiIgotCi0KLWltcG9y
dCBsb2dnaW5nCi1pbXBvcnQgb3B0cGFyc2UKLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQg
c3lzCi1pbXBvcnQgdW5pdHRlc3QKLQotCi1fVEVTVF9NT0RVTEVfUEFUVEVSTiA9IHJlLmNvbXBp
bGUocideKHRlc3RfLispXC5weSQnKQotCi0KLWRlZiBfbGlzdF90ZXN0X21vZHVsZXMoZGlyZWN0
b3J5KToKLSAgICBtb2R1bGVfbmFtZXMgPSBbXQotICAgIGZvciBmaWxlbmFtZSBpbiBvcy5saXN0
ZGlyKGRpcmVjdG9yeSk6Ci0gICAgICAgIG1hdGNoID0gX1RFU1RfTU9EVUxFX1BBVFRFUk4uc2Vh
cmNoKGZpbGVuYW1lKQotICAgICAgICBpZiBtYXRjaDoKLSAgICAgICAgICAgIG1vZHVsZV9uYW1l
cy5hcHBlbmQobWF0Y2guZ3JvdXAoMSkpCi0gICAgcmV0dXJuIG1vZHVsZV9uYW1lcwotCi0KLWRl
ZiBfc3VpdGUoKToKLSAgICBsb2FkZXIgPSB1bml0dGVzdC5UZXN0TG9hZGVyKCkKLSAgICByZXR1
cm4gbG9hZGVyLmxvYWRUZXN0c0Zyb21OYW1lcygKLSAgICAgICAgICAgIF9saXN0X3Rlc3RfbW9k
dWxlcyhvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0sICcuJykpKQotCi0K
LWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9u
UGFyc2VyKCkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2ctbGV2ZWwnLCAnLS1sb2dfbGV2
ZWwnLCB0eXBlPSdjaG9pY2UnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2xvZ19sZXZl
bCcsIGRlZmF1bHQ9J3dhcm5pbmcnLAotICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9Wydk
ZWJ1ZycsICdpbmZvJywgJ3dhcm5pbmcnLCAnd2FybicsICdlcnJvcicsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2NyaXRpY2FsJ10pCi0gICAgb3B0aW9ucywgYXJncyA9IHBhcnNl
ci5wYXJzZV9hcmdzKCkKLSAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKAotICAgICAgICAgICAgbGV2
ZWw9bG9nZ2luZy5nZXRMZXZlbE5hbWUob3B0aW9ucy5sb2dfbGV2ZWwudXBwZXIoKSksCi0gICAg
ICAgICAgICBmb3JtYXQ9JyUobGV2ZWxuYW1lKXMgJShhc2N0aW1lKXMgJwotICAgICAgICAgICAg
ICAgICAgICclKGZpbGVuYW1lKXM6JShsaW5lbm8pZF0gJwotICAgICAgICAgICAgICAgICAgICcl
KG1lc3NhZ2UpcycsCi0gICAgICAgICAgICBkYXRlZm10PSclSDolTTolUycpCi0gICAgdW5pdHRl
c3QubWFpbihkZWZhdWx0VGVzdD0nX3N1aXRlJywgYXJndj1bc3lzLmFyZ3ZbMF1dICsgYXJncykK
LQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9zZXRfc3lzX3Bh
dGgucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3Qvc2V0X3N5c19wYXRoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlM2M2ZGI5ZWE0ZDM4M2EzN2MyN2EwNjBhMGVmMWM1NjNiYmIxZTE0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9zZXRfc3lz
X3BhdGgucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5
LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotCi0iIiJDb25maWd1cmF0aW9uIGZvciB0ZXN0aW5nLgotCi1UZXN0IGZpbGVzIHNob3VsZCBp
bXBvcnQgdGhpcyBtb2R1bGUgYmVmb3JlIG1vZF9weXdlYnNvY2tldC4KLSIiIgotCi0KLWltcG9y
dCBvcwotaW1wb3J0IHN5cwotCi0KLSMgQWRkIHRoZSBwYXJlbnQgZGlyZWN0b3J5IHRvIHN5cy5w
YXRoIHRvIGVuYWJsZSBpbXBvcnRpbmcgbW9kX3B5d2Vic29ja2V0Lgotc3lzLnBhdGguaW5zZXJ0
KDAsIG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJy4uJykpCi0KLQot
IyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRjaC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0X2Rpc3BhdGNoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlMTZkNjA1NjA5YzhhYjdiMzBkNzIwNjM4MzBmZjQzNGMxYzU2ZGMwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2Rpc3Bh
dGNoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjg4ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5
dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3Ry
aWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIGRpc3BhdGNoIG1vZHVs
ZS4iIiIKLQotCi1pbXBvcnQgb3MKLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19w
YXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4K
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3BhdGNoCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIHRlc3QgaW1wb3J0IG1vY2sKLQotCi1fVEVTVF9I
QU5ETEVSU19ESVIgPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgIG9zLnBhdGguc3BsaXQoX19maWxl
X18pWzBdLCAndGVzdGRhdGEnLCAnaGFuZGxlcnMnKQotCi1fVEVTVF9IQU5ETEVSU19TVUJfRElS
ID0gb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicpCi0KLQotY2xhc3MgRGlz
cGF0Y2hlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGRp
c3BhdGNoIG1vZHVsZS4iIiIKLQotICAgIGRlZiB0ZXN0X25vcm1hbGl6ZV9wYXRoKHNlbGYpOgot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnL2EvYicpLnJlcGxhY2Uo
J1xcJywgJy8nKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5fbm9ybWFsaXpl
X3BhdGgoJy9hL2InKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5wYXRoLmFic3BhdGgo
Jy9hL2InKS5yZXBsYWNlKCdcXCcsICcvJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGlz
cGF0Y2guX25vcm1hbGl6ZV9wYXRoKCdcXGFcXGInKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChvcy5wYXRoLmFic3BhdGgoJy9hL2InKS5yZXBsYWNlKCdcXCcsICcvJyksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKCcvYS9jLy4uL2InKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5wYXRoLmFic3BhdGgoJ2FiYycpLnJlcGxhY2UoJ1xc
JywgJy8nKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5fbm9ybWFsaXplX3Bh
dGgoJ2FiYycpKQotCi0gICAgZGVmIHRlc3RfY29udmVydGVyKHNlbGYpOgotICAgICAgICBjb252
ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKCcvYS9i
JykKLSAgICAgICAgIyBQeXRob24gYnVpbHQgYnkgTVNDIGluc2VydHMgYSBkcml2ZSBuYW1lIGxp
a2UgJ0M6XCcgdmlhIHJlYWxwYXRoKCkuCi0gICAgICAgICMgQ29udmVydGVyIEdlbmVyYXRvciBl
eHBhbmRzIHByb3ZpZGVkIHBhdGggdXNpbmcgcmVhbHBhdGgoKSBhbmQgdXNlcwotICAgICAgICAj
IHRoZSBwYXRoIGluY2x1ZGluZyBhIGRyaXZlIG5hbWUgdG8gdmVyaWZ5IHRoZSBwcmVmaXguCi0g
ICAgICAgIG9zX3Jvb3QgPSBvcy5wYXRoLnJlYWxwYXRoKCcvJykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaF93c2gucHknKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnL2MvaCcsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9jL2hf
d3NoLnB5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgY29udmVydGVyKG9zX3Jv
b3QgKyAnYS9iL2gucHknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBjb252ZXJ0
ZXIoJ2EvYi9oX3dzaC5weScpKQotCi0gICAgICAgIGNvbnZlcnRlciA9IGRpc3BhdGNoLl9jcmVh
dGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIoJ2EvYicpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJy9oJywgY29udmVydGVyKGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgKLSAgICAgICAg
ICAgICdhL2IvaF93c2gucHknKSkpCi0KLSAgICAgICAgY29udmVydGVyID0gZGlzcGF0Y2guX2Ny
ZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcignL2EvYi8vLycpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2hfd3NoLnB5JykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKGRpc3BhdGNoLl9ub3JtYWxp
emVfcGF0aCgKLSAgICAgICAgICAgICcvYS9iLy4uL2IvaF93c2gucHknKSkpCi0KLSAgICAgICAg
Y29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcigK
LSAgICAgICAgICAgICcvYS8uLi9hL2IvLi4vYi8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9oX3dzaC5weScpKQotCi0gICAgICAgIGNv
bnZlcnRlciA9IGRpc3BhdGNoLl9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIocidc
YVxiJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCAr
IHInYVxiXGhfd3NoLnB5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVy
dGVyKG9zX3Jvb3QgKyByJ2EvYi9oX3dzaC5weScpKQotCi0gICAgZGVmIHRlc3RfZW51bWVyYXRl
X2hhbmRsZXJfZmlsZV9wYXRocyhzZWxmKToKLSAgICAgICAgcGF0aHMgPSBsaXN0KAotICAgICAg
ICAgICAgZGlzcGF0Y2guX2VudW1lcmF0ZV9oYW5kbGVyX2ZpbGVfcGF0aHMoX1RFU1RfSEFORExF
UlNfRElSKSkKLSAgICAgICAgcGF0aHMuc29ydCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
OCwgbGVuKHBhdGhzKSkKLSAgICAgICAgZXhwZWN0ZWRfcGF0aHMgPSBbCi0gICAgICAgICAgICAg
ICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ2Fib3J0X2J5X3VzZXJfd3NoLnB5
JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ2Js
YW5rX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVS
U19ESVIsICdvcmlnaW5fY2hlY2tfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5q
b2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdleGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3Mu
cGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsICdub25fY2FsbGFibGVfd3NoLnB5
JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1
YicsICdwbGFpbl93c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1Rf
SEFORExFUlNfRElSLCAnc3ViJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dyb25n
X2hhbmRzaGFrZV9zaWdfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9U
RVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3
cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgXQotICAgICAgICBm
b3IgZXhwZWN0ZWQsIGFjdHVhbCBpbiB6aXAoZXhwZWN0ZWRfcGF0aHMsIHBhdGhzKToKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKLQotICAgIGRlZiB0ZXN0
X3NvdXJjZV9oYW5kbGVyX2ZpbGUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAot
ICAgICAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGRpc3BhdGNoLl9zb3VyY2Vf
aGFuZGxlcl9maWxlLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAg
ICBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2Zp
bGUsICdkZWYnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgIGRpc3Bh
dGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBkaXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmlsZSwgJzEv
MCcpCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcyhkaXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmls
ZSgKLSAgICAgICAgICAgICAgICAnZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJl
cXVlc3QpOnBhc3NcbicKLSAgICAgICAgICAgICAgICAnZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KTpwYXNzXG4nKSkKLQotICAgIGRlZiB0ZXN0X3NvdXJjZV93YXJuaW5ncyhz
ZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFO
RExFUlNfRElSLCBOb25lKQotICAgICAgICB3YXJuaW5ncyA9IGRpc3BhdGNoZXIuc291cmNlX3dh
cm5pbmdzKCkKLSAgICAgICAgd2FybmluZ3Muc29ydCgpCi0gICAgICAgIGV4cGVjdGVkX3dhcm5p
bmdzID0gWwotICAgICAgICAgICAgICAgIChvcy5wYXRoLnJlYWxwYXRoKG9zLnBhdGguam9pbigK
LSAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfRElSLCAnYmxhbmtfd3NoLnB5Jykp
ICsKLSAgICAgICAgICAgICAgICAgJzogd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMg
bm90IGRlZmluZWQuJyksCi0gICAgICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0
aC5qb2luKAotICAgICAgICAgICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAn
bm9uX2NhbGxhYmxlX3dzaC5weScpKSArCi0gICAgICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlIGlzIG5vdCBjYWxsYWJsZS4nKSwKLSAgICAgICAgICAgICAgICAo
b3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICAgIF9URVNU
X0hBTkRMRVJTX0RJUiwgJ3N1YicsICd3cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weScpKSArCi0g
ICAgICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIGlzIG5vdCBk
ZWZpbmVkLicpLAotICAgICAgICAgICAgICAgIChvcy5wYXRoLnJlYWxwYXRoKG9zLnBhdGguam9p
bigKLSAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ3dyb25n
X3RyYW5zZmVyX3NpZ193c2gucHknKSkgKwotICAgICAgICAgICAgICAgICAnOiB3ZWJfc29ja2V0
X3RyYW5zZmVyX2RhdGEgaXMgbm90IGRlZmluZWQuJyksCi0gICAgICAgICAgICAgICAgXQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyg0LCBsZW4od2FybmluZ3MpKQotICAgICAgICBmb3IgZXhw
ZWN0ZWQsIGFjdHVhbCBpbiB6aXAoZXhwZWN0ZWRfd2FybmluZ3MsIHdhcm5pbmdzKToKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkLCBhY3R1YWwpCi0KLSAgICBkZWYgdGVz
dF9kb19leHRyYV9oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRj
aC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9
IG1vY2suTW9ja1JlcXVlc3QoKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9vcmln
aW5fY2hlY2snCi0gICAgICAgIHJlcXVlc3Qud3Nfb3JpZ2luID0gJ2h0dHA6Ly9leGFtcGxlLmNv
bScKLSAgICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCkgICMgTXVz
dCBub3QgcmFpc2UgZXhjZXB0aW9uLgotCi0gICAgICAgIHJlcXVlc3Qud3Nfb3JpZ2luID0gJ2h0
dHA6Ly9iYWQuZXhhbXBsZS5jb20nCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRpc3BhdGNo
ZXIuZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpCi0gICAgICAgICAgICBzZWxmLmZhaWwoJ0Nv
dWxkIG5vdCBjYXRjaCBIYW5kc2hha2VFeGNlcHRpb24gd2l0aCA0MDMgc3RhdHVzJykKLSAgICAg
ICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKDQwMywgZS5zdGF0dXMpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRp
b24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuZmFpbCgnVW5leHBlY3RlZCBleGNlcHRpb246ICVy
JyAlIGUpCi0KLSAgICBkZWYgdGVzdF9hYm9ydF9leHRyYV9oYW5kc2hha2Uoc2VsZik6Ci0gICAg
ICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwg
Tm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoKQotICAgICAgICByZXF1
ZXN0LndzX3Jlc291cmNlID0gJy9hYm9ydF9ieV91c2VyJwotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2UsIHJlcXVlc3QpCi0KLSAgICBk
ZWYgdGVzdF90cmFuc2Zlcl9kYXRhKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0
Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0KLSAgICAgICAgcmVxdWVz
dCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcp
KQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9vcmlnaW5fY2hlY2snCi0gICAgICAg
IHJlcXVlc3Qud3NfcHJvdG9jb2wgPSAncDEnCi0gICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdvcmlnaW5fY2hlY2tfd3No
LnB5IGlzIGNhbGxlZCBmb3IgL29yaWdpbl9jaGVjaywgcDEnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgJ1x4ZmZceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVl
c3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcpKQotICAgICAgICByZXF1ZXN0
LndzX3Jlc291cmNlID0gJy9zdWIvcGxhaW4nCi0gICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wg
PSBOb25lCi0gICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdzdWIvcGxhaW5fd3NoLnB5IGlzIGNhbGxlZCBmb3IgL3N1Yi9w
bGFpbiwgTm9uZScKLSAgICAgICAgICAgICAgICAgICAgICAgICAnXHhmZlx4MDAnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQot
ICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nv
bm4oJ1x4ZmZceDAwJykpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL3N1Yi9wbGFp
bj8nCi0gICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSBOb25lCi0gICAgICAgIGRpc3BhdGNo
ZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzdWIv
cGxhaW5fd3NoLnB5IGlzIGNhbGxlZCBmb3IgL3N1Yi9wbGFpbj8sIE5vbmUnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgJ1x4ZmZceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVzdCA9IG1vY2su
TW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcpKQotICAgICAg
ICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvcGxhaW4/cT12JwotICAgICAgICByZXF1ZXN0
LndzX3Byb3RvY29sID0gTm9uZQotICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVx
dWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc3ViL3BsYWluX3dzaC5weSBpcyBjYWxs
ZWQgZm9yIC9zdWIvcGxhaW4/cT12LCBOb25lJwotICAgICAgICAgICAgICAgICAgICAgICAgICdc
eGZmXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfdHJhbnNmZXJfZGF0YV9ub19oYW5kbGVyKHNl
bGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5E
TEVSU19ESVIsIE5vbmUpCi0gICAgICAgIGZvciByZXNvdXJjZSBpbiBbJy9ibGFuaycsICcvc3Vi
L25vbl9jYWxsYWJsZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJy9zdWIvbm9fd3NoX2F0
X3RoZV9lbmQnLCAnL2RvZXMvbm90L2V4aXN0J106Ci0gICAgICAgICAgICByZXF1ZXN0ID0gbW9j
ay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJycpKQotICAgICAgICAgICAg
cmVxdWVzdC53c19yZXNvdXJjZSA9IHJlc291cmNlCi0gICAgICAgICAgICByZXF1ZXN0LndzX3By
b3RvY29sID0gJ3AyJwotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGRpc3BhdGNo
ZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgpCi0g
ICAgICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24gYXMgZToKLSAgICAg
ICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3Moc3RyKGUpLmZpbmQoJ05vIGhhbmRsZXInKSAhPSAt
MSkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgc2VsZi5m
YWlsKCkKLQotICAgIGRlZiB0ZXN0X3RyYW5zZmVyX2RhdGFfaGFuZGxlcl9leGNlcHRpb24oc2Vs
Zik6Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRM
RVJTX0RJUiwgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVj
dGlvbj1tb2NrLk1vY2tDb25uKCcnKSkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcv
c3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicKLSAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9
ICdwMycKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRh
KHJlcXVlc3QpCi0gICAgICAgICAgICBzZWxmLmZhaWwoKQotICAgICAgICBleGNlcHQgRXhjZXB0
aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3Moc3RyKGUpLmZpbmQoJ0ludGVu
dGlvbmFsJykgIT0gLTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQg
ZXhjZXB0aW9uOiAlcycgJSBlKQotCi0gICAgZGVmIHRlc3RfYWJvcnRfdHJhbnNmZXJfZGF0YShz
ZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFO
RExFUlNfRElSLCBOb25lKQotICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdCgpCi0g
ICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL2Fib3J0X2J5X3VzZXInCi0gICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEsIHJlcXVlc3QpCi0K
LSAgICBkZWYgdGVzdF9zY2FuX2RpcihzZWxmKToKLSAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRp
c3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDQsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkpCi0gICAgICAgIHNlbGYuZmFpbFVu
bGVzcygnL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAg
IHNlbGYuZmFpbFVubGVzcygKLSAgICAgICAgICAgICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zl
cicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygn
L3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0KLSAgICBkZWYgdGVzdF9z
Y2FuX3N1Yl9kaXIoc2VsZik6Ci0gICAgICAgIGRpc3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9U
RVNUX0hBTkRMRVJTX0RJUiwgX1RFU1RfSEFORExFUlNfU1VCX0RJUikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgyLCBsZW4oZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApKQotICAgICAgICBzZWxm
LmZhaWxJZignL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAg
ICAgIHNlbGYuZmFpbFVubGVzcygKLSAgICAgICAgICAgICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFu
c2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVz
cygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0KLSAgICBkZWYgdGVz
dF9zY2FuX3N1Yl9kaXJfYXNfcm9vdChzZWxmKToKLSAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRp
c3BhdGNoZXIoX1RFU1RfSEFORExFUlNfU1VCX0RJUiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfU1VCX0RJUikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgyLCBsZW4oZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApKQotICAgICAgICBzZWxmLmZhaWxJ
ZignL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNl
bGYuZmFpbElmKCcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9z
dWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbElmKCcvc3ViL3BsYWluJyBpbiBkaXNwLl9oYW5k
bGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvZXhjZXB0aW9uX2luX3Ry
YW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5s
ZXNzKCcvcGxhaW4nIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotCi0gICAgZGVmIHRlc3Rf
c2Nhbl9kaXJfbXVzdF91bmRlcl9yb290KHNlbGYpOgotICAgICAgICBkaXNwYXRjaC5EaXNwYXRj
aGVyKCdhL2InLCAnYS9iL2MnKSAgIyBPSwotICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdh
L2IvLy8nLCAnYS9iJykgICMgT0sKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZGlzcGF0Y2gu
RGlzcGF0Y2hFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLkRp
c3BhdGNoZXIsICdhL2IvYycsICdhL2InKQotCi0gICAgZGVmIHRlc3RfcmVzb3VyY2VfcGF0aF9h
bGlhcyhzZWxmKToKLSAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFO
RExFUlNfRElSLCBOb25lKQotICAgICAgICBkaXNwLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKCcv
JywgJy9vcmlnaW5fY2hlY2snKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDUsIGxlbihkaXNw
Ll9oYW5kbGVyX3N1aXRlX21hcCkpCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL29yaWdpbl9j
aGVjaycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVz
cygKLSAgICAgICAgICAgICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFu
ZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4g
ZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnLycgaW4g
ZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGRpc3Bh
dGNoLkRpc3BhdGNoRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwLmFk
ZF9yZXNvdXJjZV9wYXRoX2FsaWFzLCAnL2FsaWFzJywgJy9ub3QtZXhpc3QnKQotCi0KLWlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0X2VuZHRvZW5kLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjgw
ZWMyZWJhNjcyNGE3NDkwNWJlNGYxNTgxZjM2YTdhN2Y3NzEzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2VuZHRvZW5kLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsNzUzICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwot
IyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiRW5kLXRvLWVuZCB0ZXN0cyBmb3IgcHl3ZWJzb2NrZXQu
IFRlc3RzIHN0YW5kYWxvbmUucHkgYnkgZGVmYXVsdC4gWW91Ci1jYW4gYWxzbyB0ZXN0IG1vZF9w
eXdlYnNvY2tldCBob3N0ZWQgb24gYW4gQXBhY2hlIHNlcnZlciBieSBzZXR0aW5nCi1fdXNlX2V4
dGVybmFsX3NlcnZlciB0byBUcnVlIGFuZCBtb2RpZnlpbmcgX2V4dGVybmFsX3NlcnZlcl9wb3J0
IHRvIHBvaW50IHRvCi10aGUgcG9ydCBvbiB3aGljaCB0aGUgQXBhY2hlIHNlcnZlciBpcyBydW5u
aW5nLgotIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHNpZ25hbAot
aW1wb3J0IHNvY2tldAotaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMKLWltcG9ydCB0aW1l
Ci1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBh
dGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gdGVzdCBpbXBvcnQg
Y2xpZW50X2Zvcl90ZXN0aW5nCi1mcm9tIHRlc3QgaW1wb3J0IG11eF9jbGllbnRfZm9yX3Rlc3Rp
bmcKLQotCi0jIFNwZWNpYWwgbWVzc2FnZSB0aGF0IHRlbGxzIHRoZSBlY2hvIHNlcnZlciB0byBz
dGFydCBjbG9zaW5nIGhhbmRzaGFrZQotX0dPT0RCWUVfTUVTU0FHRSA9ICdHb29kYnllJwotCi1f
U0VSVkVSX1dBUk1VUF9JTl9TRUMgPSAwLjIKLQotIyBJZiB5b3Ugd2FudCB0byB1c2UgZXh0ZXJu
YWwgc2VydmVyIHRvIHJ1biBlbmQgdG8gZW5kIHRlc3RzLCBzZXQgZm9sbG93aW5nCi0jIHBhcmFt
ZXRlcnMgY29ycmVjdGx5LgotX3VzZV9leHRlcm5hbF9zZXJ2ZXIgPSBGYWxzZQotX2V4dGVybmFs
X3NlcnZlcl9wb3J0ID0gMAotCi0KLSMgVGVzdCBib2R5IGZ1bmN0aW9ucwotZGVmIF9lY2hvX2No
ZWNrX3Byb2NlZHVyZShjbGllbnQpOgotICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVu
dC5zZW5kX21lc3NhZ2UoJ3Rlc3QnKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgndGVzdCcp
Ci0gICAgY2xpZW50LnNlbmRfbWVzc2FnZSgnaGVsbG93b3JsZCcpCi0gICAgY2xpZW50LmFzc2Vy
dF9yZWNlaXZlKCdoZWxsb3dvcmxkJykKLQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICBj
bGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgY2xpZW50LmFzc2VydF9jb25uZWN0
aW9uX2Nsb3NlZCgpCi0KLQotZGVmIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2JpbmFyeShj
bGllbnQpOgotICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2Uo
J2JpbmFyeScsIGJpbmFyeT1UcnVlKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgnYmluYXJ5
JywgYmluYXJ5PVRydWUpCi0gICAgY2xpZW50LnNlbmRfbWVzc2FnZSgnXHgwMFx4ODBceGZlXHhm
Zlx4MDBceDgwJywgYmluYXJ5PVRydWUpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCdceDAw
XHg4MFx4ZmVceGZmXHgwMFx4ODAnLCBiaW5hcnk9VHJ1ZSkKLQotICAgIGNsaWVudC5zZW5kX2Ns
b3NlKCkKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgY2xpZW50LmFz
c2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0KLQotZGVmIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93
aXRoX2dvb2RieWUoY2xpZW50KToKLSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBjbGllbnQu
c2VuZF9tZXNzYWdlKCd0ZXN0JykKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ3Rlc3QnKQot
Ci0gICAgY2xpZW50LnNlbmRfbWVzc2FnZShfR09PREJZRV9NRVNTQUdFKQotICAgIGNsaWVudC5h
c3NlcnRfcmVjZWl2ZShfR09PREJZRV9NRVNTQUdFKQotCi0gICAgY2xpZW50LmFzc2VydF9yZWNl
aXZlX2Nsb3NlKCkKLSAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0KLSAgICBjbGllbnQuYXNzZXJ0
X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhf
Y29kZV9hbmRfcmVhc29uKGNsaWVudCwgY29kZSwgcmVhc29uKToKLSAgICBjbGllbnQuY29ubmVj
dCgpCi0KLSAgICBjbGllbnQuc2VuZF9jbG9zZShjb2RlLCByZWFzb24pCi0gICAgY2xpZW50LmFz
c2VydF9yZWNlaXZlX2Nsb3NlKGNvZGUsIHJlYXNvbikKLQotICAgIGNsaWVudC5hc3NlcnRfY29u
bmVjdGlvbl9jbG9zZWQoKQotCi0KLWRlZiBfdW5tYXNrZWRfZnJhbWVfY2hlY2tfcHJvY2VkdXJl
KGNsaWVudCk6Ci0gICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgY2xpZW50LnNlbmRfbWVzc2Fn
ZSgndGVzdCcsIG1hc2s9RmFsc2UpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKGNs
aWVudF9mb3JfdGVzdGluZy5TVEFUVVNfUFJPVE9DT0xfRVJST1IsICcnKQotCi0gICAgY2xpZW50
LmFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0KLQotZGVmIF9tdXhfZWNob19jaGVja19wcm9j
ZWR1cmUobXV4X2NsaWVudCk6Ci0gICAgbXV4X2NsaWVudC5jb25uZWN0KCkKLSAgICBtdXhfY2xp
ZW50LnNlbmRfZmxvd19jb250cm9sKDEsIDEwMjQpCi0KLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0
aW9ucyA9IGNsaWVudF9mb3JfdGVzdGluZy5DbGllbnRPcHRpb25zKCkKLSAgICBsb2dpY2FsX2No
YW5uZWxfb3B0aW9ucy5zZXJ2ZXJfaG9zdCA9ICdsb2NhbGhvc3QnCi0gICAgbG9naWNhbF9jaGFu
bmVsX29wdGlvbnMuc2VydmVyX3BvcnQgPSA4MAotICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25z
Lm9yaWdpbiA9ICdodHRwOi8vbG9jYWxob3N0JwotICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25z
LnJlc291cmNlID0gJy9lY2hvJwotICAgIG11eF9jbGllbnQuYWRkX2NoYW5uZWwoMiwgbG9naWNh
bF9jaGFubmVsX29wdGlvbnMpCi0gICAgbXV4X2NsaWVudC5zZW5kX2Zsb3dfY29udHJvbCgyLCAx
MDI0KQotCi0gICAgbXV4X2NsaWVudC5zZW5kX21lc3NhZ2UoMiwgJ3Rlc3QnKQotICAgIG11eF9j
bGllbnQuYXNzZXJ0X3JlY2VpdmUoMiwgJ3Rlc3QnKQotCi0gICAgbXV4X2NsaWVudC5hZGRfY2hh
bm5lbCgzLCBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucykKLSAgICBtdXhfY2xpZW50LnNlbmRfZmxv
d19jb250cm9sKDMsIDEwMjQpCi0KLSAgICBtdXhfY2xpZW50LnNlbmRfbWVzc2FnZSgyLCAnaGVs
bG8nKQotICAgIG11eF9jbGllbnQuc2VuZF9tZXNzYWdlKDMsICd3b3JsZCcpCi0gICAgbXV4X2Ns
aWVudC5hc3NlcnRfcmVjZWl2ZSgyLCAnaGVsbG8nKQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3Jl
Y2VpdmUoMywgJ3dvcmxkJykKLQotICAgICMgRG9uJ3Qgc2VuZCBjbG9zZSBtZXNzYWdlIG9uIGNo
YW5uZWwgaWQgMSBzbyB0aGF0IHNlcnZlci1pbml0aWF0ZWQKLSAgICAjIGNsb3NpbmcgaGFuZHNo
YWtlIHdvbid0IG9jY3VyLgotICAgIG11eF9jbGllbnQuc2VuZF9jbG9zZSgyKQotICAgIG11eF9j
bGllbnQuc2VuZF9jbG9zZSgzKQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2Uo
MikKLSAgICBtdXhfY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKDMpCi0KLSAgICBtdXhfY2xp
ZW50LnNlbmRfcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZSgpCi0gICAgbXV4X2NsaWVudC5hc3Nl
cnRfcGh5c2ljYWxfY29ubmVjdGlvbl9yZWNlaXZlX2Nsb3NlKCkKLQotCi1jbGFzcyBFbmRUb0Vu
ZFRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJCYXNlIGNsYXNzIGZvciBlbmQt
dG8tZW5kIHRlc3RzIHRoYXQgbGF1bmNoIHB5d2Vic29ja2V0IHN0YW5kYWxvbmUKLSAgICBzZXJ2
ZXIgYXMgYSBzZXBhcmF0ZSBwcm9jZXNzLCBjb25uZWN0IHRvIGl0IHVzaW5nIHRoZSBjbGllbnRf
Zm9yX3Rlc3RpbmcKLSAgICBtb2R1bGUsIGFuZCBjaGVjayBpZiB0aGUgc2VydmVyIGJlaGF2ZXMg
Y29ycmVjdGx5IGJ5IGV4Y2hhbmdpbmcgb3BlbmluZwotICAgIGhhbmRzaGFrZSBhbmQgZnJhbWVz
IG92ZXIgYSBUQ1AgY29ubmVjdGlvbi4KLSAgICAiIiIKLQotICAgIGRlZiBzZXRVcChzZWxmKToK
LSAgICAgICAgc2VsZi5zZXJ2ZXJfc3RkZXJyID0gTm9uZQotICAgICAgICBzZWxmLnRvcF9kaXIg
PSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0sICcuLicpCi0gICAgICAg
IG9zLnB1dGVudignUFlUSE9OUEFUSCcsIG9zLnBhdGgucGF0aHNlcC5qb2luKHN5cy5wYXRoKSkK
LSAgICAgICAgc2VsZi5zdGFuZGFsb25lX2NvbW1hbmQgPSBvcy5wYXRoLmpvaW4oCi0gICAgICAg
ICAgICBzZWxmLnRvcF9kaXIsICdtb2RfcHl3ZWJzb2NrZXQnLCAnc3RhbmRhbG9uZS5weScpCi0g
ICAgICAgIHNlbGYuZG9jdW1lbnRfcm9vdCA9IG9zLnBhdGguam9pbihzZWxmLnRvcF9kaXIsICdl
eGFtcGxlJykKLSAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKQotICAgICAgICBzLmJpbmQoKCds
b2NhbGhvc3QnLCAwKSkKLSAgICAgICAgKF8sIHNlbGYudGVzdF9wb3J0KSA9IHMuZ2V0c29ja25h
bWUoKQotICAgICAgICBzLmNsb3NlKCkKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gY2xpZW50
X2Zvcl90ZXN0aW5nLkNsaWVudE9wdGlvbnMoKQotICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZl
cl9ob3N0ID0gJ2xvY2FsaG9zdCcKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4gPSAnaHR0
cDovL2xvY2FsaG9zdCcKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSA9ICcvZWNobycK
LQotICAgICAgICAjIFRPRE8odG95b3NoaW0pOiBFbGltaW5hdGUgbGF1bmNoaW5nIGEgc3RhbmRh
bG9uZSBzZXJ2ZXIgb24gdXNpbmcKLSAgICAgICAgIyBleHRlcm5hbCBzZXJ2ZXIuCi0KLSAgICAg
ICAgaWYgX3VzZV9leHRlcm5hbF9zZXJ2ZXI6Ci0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNl
cnZlcl9wb3J0ID0gX2V4dGVybmFsX3NlcnZlcl9wb3J0Ci0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0ID0gc2VsZi50ZXN0X3BvcnQKLQotICAgICMg
VE9ETyh0eW9zaGlubyk6IFVzZSB0ZWFyRG93biB0byBraWxsIHRoZSBzZXJ2ZXIuCi0KLSAgICBk
ZWYgX3J1bl9weXRob25fY29tbWFuZChzZWxmLCBjb21tYW5kbGluZSwgc3Rkb3V0PU5vbmUsIHN0
ZGVycj1Ob25lKToKLSAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuUG9wZW4oW3N5cy5leGVjdXRh
YmxlXSArIGNvbW1hbmRsaW5lLCBjbG9zZV9mZHM9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3Rkb3V0PXN0ZG91dCwgc3RkZXJyPXN0ZGVycikKLQotICAgIGRlZiBfcnVu
X3NlcnZlcihzZWxmKToKLSAgICAgICAgYXJncyA9IFtzZWxmLnN0YW5kYWxvbmVfY29tbWFuZCwK
LSAgICAgICAgICAgICAgICAnLUgnLCAnbG9jYWxob3N0JywKLSAgICAgICAgICAgICAgICAnLVYn
LCAnbG9jYWxob3N0JywKLSAgICAgICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi50ZXN0X3BvcnQp
LAotICAgICAgICAgICAgICAgICctUCcsIHN0cihzZWxmLnRlc3RfcG9ydCksCi0gICAgICAgICAg
ICAgICAgJy1kJywgc2VsZi5kb2N1bWVudF9yb290XQotCi0gICAgICAgICMgSW5oZXJpdCB0aGUg
bGV2ZWwgc2V0IHRvIHRoZSByb290IGxvZ2dlciBieSB0ZXN0IHJ1bm5lci4KLSAgICAgICAgcm9v
dF9sb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCi0gICAgICAgIGxvZ19sZXZlbCA9IHJvb3Rf
bG9nZ2VyLmdldEVmZmVjdGl2ZUxldmVsKCkKLSAgICAgICAgaWYgbG9nX2xldmVsICE9IGxvZ2dp
bmcuTk9UU0VUOgotICAgICAgICAgICAgYXJncy5hcHBlbmQoJy0tbG9nLWxldmVsJykKLSAgICAg
ICAgICAgIGFyZ3MuYXBwZW5kKGxvZ2dpbmcuZ2V0TGV2ZWxOYW1lKGxvZ19sZXZlbCkubG93ZXIo
KSkKLQotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3MsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXNlbGYuc2VydmVyX3N0
ZGVycikKLQotICAgIGRlZiBfa2lsbF9wcm9jZXNzKHNlbGYsIHBpZCk6Ci0gICAgICAgIGlmIHN5
cy5wbGF0Zm9ybSBpbiAoJ3dpbjMyJywgJ2N5Z3dpbicpOgotICAgICAgICAgICAgc3VicHJvY2Vz
cy5jYWxsKAotICAgICAgICAgICAgICAgICgndGFza2tpbGwuZXhlJywgJy9mJywgJy9waWQnLCBz
dHIocGlkKSksIGNsb3NlX2Zkcz1UcnVlKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3Mu
a2lsbChwaWQsIHNpZ25hbC5TSUdLSUxMKQotCi0KLWNsYXNzIEVuZFRvRW5kSHlCaVRlc3QoRW5k
VG9FbmRUZXN0QmFzZSk6Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBFbmRUb0VuZFRl
c3RCYXNlLnNldFVwKHNlbGYpCi0KLSAgICBkZWYgX3J1bl90ZXN0X3dpdGhfY2xpZW50X29wdGlv
bnMoc2VsZiwgdGVzdF9mdW5jdGlvbiwgb3B0aW9ucyk6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYu
X3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIFRPRE8odHlvc2hpbm8p
OiBhZGQgc29tZSBsb2dpYyB0byBwb2xsIHRoZSBzZXJ2ZXIgdW50aWwgaXQKLSAgICAgICAgICAg
ICMgYmVjb21lcyByZWFkeQotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9J
Tl9TRUMpCi0KLSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVf
Y2xpZW50KG9wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9m
dW5jdGlvbihjbGllbnQpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNs
aWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5f
a2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRlc3Rf
ZnVuY3Rpb24pOgotICAgICAgICBzZWxmLl9ydW5fdGVzdF93aXRoX2NsaWVudF9vcHRpb25zKHRl
c3RfZnVuY3Rpb24sIHNlbGYuX29wdGlvbnMpCi0KLSAgICBkZWYgX3J1bl9kZWZsYXRlX2ZyYW1l
X3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9z
ZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FS
TVVQX0lOX1NFQykKLQotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5lbmFibGVfZGVmbGF0ZV9m
cmFtZSgpCi0gICAgICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRlX2Ns
aWVudChzZWxmLl9vcHRpb25zKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRl
c3RfZnVuY3Rpb24oY2xpZW50KQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAg
ICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNl
bGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIF9ydW5fcGVybWVzc2FnZV9k
ZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICBzZWxmLCBvZmZlciwgcmVzcG9uc2VfY2hlY2tlciwg
dGVzdF9mdW5jdGlvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykK
LQotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5leHRlbnNpb25zICs9IG9mZmVyCi0gICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLmNoZWNrX3Blcm1lc3NhZ2VfZGVmbGF0ZSA9IHJlc3BvbnNlX2No
ZWNrZXIKLSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xp
ZW50KHNlbGYuX29wdGlvbnMpCi0KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBj
bGllbnQuY29ubmVjdCgpCi0KLSAgICAgICAgICAgICAgICBpZiB0ZXN0X2Z1bmN0aW9uIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLQotICAg
ICAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQotICAgICAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQot
Ci0gICAgZGVmIF9ydW5fY2xvc2Vfd2l0aF9jb2RlX2FuZF9yZWFzb25fdGVzdChzZWxmLCB0ZXN0
X2Z1bmN0aW9uLCBjb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZWFzb24pOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9T
RUMpCi0KLSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xp
ZW50KHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVz
dF9mdW5jdGlvbihjbGllbnQsIGNvZGUsIHJlYXNvbikKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVu
X2h0dHBfZmFsbGJhY2tfdGVzdChzZWxmLCBvcHRpb25zLCBzdGF0dXMpOgotICAgICAgICBzZXJ2
ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5z
bGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVu
dF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KG9wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgY2xpZW50LmNvbm5lY3QoKQotICAgICAgICAgICAgICAgIHNlbGYuZmFp
bCgnQ291bGQgbm90IGNhdGNoIEh0dHBTdGF0dXNFeGNlcHRpb24nKQotICAgICAgICAgICAgZXhj
ZXB0IGNsaWVudF9mb3JfdGVzdGluZy5IdHRwU3RhdHVzRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0dXMsIGUuc3RhdHVzKQotICAgICAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnQ2F0Y2gg
dW5leHBlY3RlZCBleGNlcHRpb24nKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
ICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
IHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIF9ydW5fbXV4X3Rlc3Qo
c2VsZiwgdGVzdF9mdW5jdGlvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIo
KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lO
X1NFQykKLQotICAgICAgICAgICAgY2xpZW50ID0gbXV4X2NsaWVudF9mb3JfdGVzdGluZy5NdXhD
bGllbnQoc2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB0
ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAg
ICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBz
ZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiB0ZXN0X2VjaG8oc2VsZik6
Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZSkKLQotICAgIGRl
ZiB0ZXN0X2VjaG9fYmluYXJ5KHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19j
aGVja19wcm9jZWR1cmVfd2l0aF9iaW5hcnkpCi0KLSAgICBkZWYgdGVzdF9lY2hvX3NlcnZlcl9j
bG9zZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJl
X3dpdGhfZ29vZGJ5ZSkKLQotICAgIGRlZiB0ZXN0X3VubWFza2VkX2ZyYW1lKHNlbGYpOgotICAg
ICAgICBzZWxmLl9ydW5fdGVzdChfdW5tYXNrZWRfZnJhbWVfY2hlY2tfcHJvY2VkdXJlKQotCi0g
ICAgZGVmIHRlc3RfZWNob19kZWZsYXRlX2ZyYW1lKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5f
ZGVmbGF0ZV9mcmFtZV90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZSkKLQotICAgIGRlZiB0ZXN0
X2VjaG9fZGVmbGF0ZV9mcmFtZV9zZXJ2ZXJfY2xvc2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1
bl9kZWZsYXRlX2ZyYW1lX3Rlc3QoCi0gICAgICAgICAgICBfZWNob19jaGVja19wcm9jZWR1cmVf
d2l0aF9nb29kYnllKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGUoc2Vs
Zik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZy
b20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9ICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJwotICAgICAgICAgICAgY2xpZW50Ll9z
dHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAot
ICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAg
ICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2Vy
dF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywK
LSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVY
VCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotCi0gICAgICAgICAgICBjbGllbnQuc2Vu
ZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0g
ICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMo
KSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAg
ICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGUnXSwKLSAgICAgICAgICAgICAgICByZXNwb25z
ZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVz
dF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV90d29fZnJhbWVzKHNlbGYpOgotICAgICAgICBkZWYg
dGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBp
biB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAg
ICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZCcsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVu
dF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgZW5kPUZhbHNl
LAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVh
bS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGM5XHhjOVx4MDdceDAwJywKLSAg
ICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhUKQotICAgICAg
ICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAg
ICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAgICAg
ICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAg
ICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAg
ICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9u
c2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Bl
cm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhbXSwgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2Vs
Zi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVz
c2FnZS1kZWZsYXRlJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAg
ICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdl
X2RlZmxhdGVfdHdvX21lc3NhZ2VzKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihj
bGllbnQpOgotICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAg
ICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAg
J1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBjbGll
bnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkK
LSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAg
ICAgJ1x4ZjJceDAwXHgxMVx4MDBceDAwJywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zv
cl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAg
ICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAg
ICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAg
ICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2Vp
dmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4MDBceDExXHgwMFx4MDAnLAot
ICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhU
LAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5k
X2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAg
ICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygp
KQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAg
ICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZSddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNl
X2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0
X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3R3b19tc2dzX3NlcnZlcl9ub19jb250ZXh0X3Rha2Vv
dmVyKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAg
ICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNsaWVudC5f
c3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4Yzlc
eGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BD
T0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVu
dC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDAwXHgxMVx4
MDBceDAwJywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9U
RVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0
cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0
OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVu
dF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQot
ICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAg
ICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAg
ICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAg
ICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQot
ICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYg
cmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhbKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygp
KQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAg
ICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIn
XSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRl
c3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV9wcmVm
ZXJlbmNlKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAg
ICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8gPSAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcKLSAgICAgICAgICAg
IGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9U
RVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0
cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAg
Y2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Ns
b3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5u
YW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgcGFyYW1ldGVyLmdldF9w
YXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0
KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlJywgJ2RlZmxhdGUtZnJhbWUn
XSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRl
c3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRo
X3BhcmFtZXRlcnMoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0g
ICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyA9ICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJwotICAgICAg
ICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICBjb21w
cmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BD
T0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVu
dC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAgY29t
cHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotCi0gICAgICAg
ICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2Vp
dmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1l
dGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsoJ3NlcnZlcl9tYXhf
d2luZG93X2JpdHMnLCAnMTAnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3Nl
cnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSldLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVu
X3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1k
ZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTEwOyAnCi0gICAgICAgICAgICAgICAgICdz
ZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2No
ZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2Vj
aG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfYmFkX3NlcnZlcl9tYXhfd2luZG93X2JpdHMoc2Vs
Zik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGll
bnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2Uo
KQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgYWNjZXB0YW5jZSBvZiBwZXJtZXNzYWdlLWRl
ZmxhdGUnKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAg
ICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0
cz0zMDAwMDAwJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAg
ICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2Rl
ZmxhdGVfd2l0aF9iYWRfc2VydmVyX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgZGVm
IHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkK
LSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVm
IHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignVW5leHBlY3RlZCBhY2NlcHRhbmNlIG9mIHBlcm1lc3NhZ2UtZGVmbGF0ZScpCi0KLSAgICAg
ICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsn
cGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTMwMDAwMDAnXSwKLSAg
ICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVu
Y3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRoX3VuZGVm
aW5lZF9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6
Ci0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNz
ZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFt
ZXRlcik6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgYWNjZXB0YW5j
ZSBvZiBwZXJtZXNzYWdlLWRlZmxhdGUnKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdl
X2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgZm9v
PWJhciddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAg
ICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fY2xvc2Vfd2l0aF9jb2RlX2Fu
ZF9yZWFzb24oc2VsZik6Ci0gICAgICAgIHNlbGYuX29wdGlvbnMucmVzb3VyY2UgPSAnL2Nsb3Nl
JwotICAgICAgICBzZWxmLl9ydW5fY2xvc2Vfd2l0aF9jb2RlX2FuZF9yZWFzb25fdGVzdCgKLSAg
ICAgICAgICAgIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2NvZGVfYW5kX3JlYXNvbiwgMzMz
MywgJ3N1bnN1bnN1bnN1bicpCi0KLSAgICBkZWYgdGVzdF9lY2hvX2Nsb3NlX3dpdGhfZW1wdHlf
Ym9keShzZWxmKToKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSA9ICcvY2xvc2UnCi0g
ICAgICAgIHNlbGYuX3J1bl9jbG9zZV93aXRoX2NvZGVfYW5kX3JlYXNvbl90ZXN0KAotICAgICAg
ICAgICAgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfY29kZV9hbmRfcmVhc29uLCBOb25lLCAn
JykKLQotICAgIGRlZiB0ZXN0X211eF9lY2hvKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fbXV4
X3Rlc3QoX211eF9lY2hvX2NoZWNrX3Byb2NlZHVyZSkKLQotICAgIGRlZiB0ZXN0X2Nsb3NlX29u
X3Byb3RvY29sX2Vycm9yKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIg
c2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRoIHByb3RvY29sIGVycm9yIHN0YXR1cwotICAgICAgICBj
b2RlIHdoZW4gdGhlIGNsaWVudCBzZW5kcyBkYXRhIHdpdGggc29tZSBwcm90b2NvbCBlcnJvci4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAg
ICAgICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgICAgICAgICAgIyBJbnRlcm1lZGlhdGUgZnJh
bWUgd2l0aG91dCBhbnkgcHJlY2VkaW5nIHN0YXJ0IG9mIGZyYWdtZW50YXRpb24KLSAgICAgICAg
ICAgICMgZnJhbWUuCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlf
Ynl0ZXMoJ1x4ODBceDgwJywgJycpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVf
Y2xvc2UoCi0gICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19QUk9UT0NP
TF9FUlJPUikKLQotICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0X2Z1bmN0aW9uKQotCi0gICAg
ZGVmIHRlc3RfY2xvc2Vfb25fdW5zdXBwb3J0ZWRfZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIlRl
c3RzIHRoYXQgdGhlIHNlcnZlciBzZW5kcyBhIGNsb3NlIGZyYW1lIHdpdGggdW5zdXBwb3J0ZWQg
b3BlcmF0aW9uCi0gICAgICAgIHN0YXR1cyBjb2RlIHdoZW4gdGhlIGNsaWVudCBzZW5kcyBkYXRh
IGFza2luZyBzb21lIG9wZXJhdGlvbiB0aGF0IGlzCi0gICAgICAgIG5vdCBzdXBwb3J0ZWQgYnkg
dGhlIHNlcnZlci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xp
ZW50KToKLSAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgICAgICAgICAgIyBUZXh0
IGZyYW1lIHdpdGggUlNWMyBiaXQgcmFpc2VkLgotICAgICAgICAgICAgY2xpZW50LnNlbmRfZnJh
bWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKCdceDkxXHg4MCcsICcnKQotICAgICAgICAgICAgY2xpZW50
LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAotICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGlu
Zy5TVEFUVVNfVU5TVVBQT1JURURfREFUQSkKLQotICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0
X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfY2xvc2Vfb25faW52YWxpZF9mcmFtZShzZWxmKToK
LSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0
aCBpbnZhbGlkIGZyYW1lIHBheWxvYWQKLSAgICAgICAgZGF0YSBzdGF0dXMgY29kZSB3aGVuIHRo
ZSBjbGllbnQgc2VuZHMgYW4gaW52YWxpZCBmcmFtZSBsaWtlIGNvbnRhaW5pbmcKLSAgICAgICAg
aW52YWxpZCBVVEYtOCBjaGFyYWN0ZXIuCi0gICAgICAgICIiIgotCi0gICAgICAgIGRlZiB0ZXN0
X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICAg
ICAgICAgICMgVGV4dCBmcmFtZSB3aXRoIGludmFsaWQgVVRGLTggc3RyaW5nLgotICAgICAgICAg
ICAgY2xpZW50LnNlbmRfbWVzc2FnZSgnXHg4MCcsIHJhdz1UcnVlKQotICAgICAgICAgICAgY2xp
ZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAotICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVz
dGluZy5TVEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlMT0FEX0RBVEEpCi0KLSAgICAgICAgc2VsZi5f
cnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2Nsb3NlX29uX2ludGVybmFs
X2VuZHBvaW50X2Vycm9yKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIg
c2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRoIGludGVybmFsIGVuZHBvaW50Ci0gICAgICAgIGVycm9y
IHN0YXR1cyBjb2RlIHdoZW4gdGhlIGhhbmRsZXIgZG9lcyBiYWQgb3BlcmF0aW9uLgotICAgICAg
ICAiIiIKLQotICAgICAgICBzZWxmLl9vcHRpb25zLnJlc291cmNlID0gJy9pbnRlcm5hbF9lcnJv
cicKLQotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xp
ZW50LmNvbm5lY3QoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAot
ICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfSU5URVJOQUxfRU5EUE9J
TlRfRVJST1IpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKLQotICAg
ICMgVE9ETyh0b3lvc2hpbSk6IEFkZCB0ZXN0cyB0byB2ZXJpZnkgaW52YWxpZCBhYnNvbHV0ZSB1
cmkgaGFuZGxpbmcgbGlrZQotICAgICMgaG9zdCB1bm1hdGNoLCBwb3J0IHVubWF0Y2ggYW5kIGlu
dmFsaWQgcG9ydCBkZXNjcmlwdGlvbiAoJzonIHdpdGhvdXQgcG9ydAotICAgICMgbnVtYmVyKS4K
LQotICAgIGRlZiB0ZXN0X2Fic29sdXRlX3VyaShzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgYWJz
b2x1dGUgdXJpIHJlcXVlc3QuIiIiCi0KLSAgICAgICAgb3B0aW9ucyA9IHNlbGYuX29wdGlvbnMK
LSAgICAgICAgb3B0aW9ucy5yZXNvdXJjZSA9ICd3czovL2xvY2FsaG9zdDolZC9lY2hvJyAlIG9w
dGlvbnMuc2VydmVyX3BvcnQKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3Rfd2l0aF9jbGllbnRfb3B0
aW9ucyhfZWNob19jaGVja19wcm9jZWR1cmUsIG9wdGlvbnMpCi0KLSAgICBkZWYgdGVzdF9vcmln
aW5fY2hlY2soc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIGh0dHAgZmFsbGJhY2sgb24gb3JpZ2lu
IGNoZWNrIGZhaWwuIiIiCi0KLSAgICAgICAgb3B0aW9ucyA9IHNlbGYuX29wdGlvbnMKLSAgICAg
ICAgb3B0aW9ucy5yZXNvdXJjZSA9ICcvb3JpZ2luX2NoZWNrJwotICAgICAgICAjIFNlcnZlciBz
aG93cyB3YXJuaW5nIG1lc3NhZ2UgZm9yIGh0dHAgNDAzIGZhbGxiYWNrLiBUaGlzIHdhcm5pbmcK
LSAgICAgICAgIyBtZXNzYWdlIGlzIGNvbmZ1c2luZy4gRm9sbG93aW5nIHBpcGUgZGlzcG9zZXMg
d2FybmluZyBtZXNzYWdlcy4KLSAgICAgICAgc2VsZi5zZXJ2ZXJfc3RkZXJyID0gc3VicHJvY2Vz
cy5QSVBFCi0gICAgICAgIHNlbGYuX3J1bl9odHRwX2ZhbGxiYWNrX3Rlc3Qob3B0aW9ucywgNDAz
KQotCi0gICAgZGVmIHRlc3RfdmVyc2lvbl9jaGVjayhzZWxmKToKLSAgICAgICAgIiIiVGVzdHMg
aHR0cCBmYWxsYmFjayBvbiB2ZXJzaW9uIGNoZWNrIGZhaWwuIiIiCi0KLSAgICAgICAgb3B0aW9u
cyA9IHNlbGYuX29wdGlvbnMKLSAgICAgICAgb3B0aW9ucy52ZXJzaW9uID0gOTkKLSAgICAgICAg
c2VsZi5fcnVuX2h0dHBfZmFsbGJhY2tfdGVzdChvcHRpb25zLCA0MDApCi0KLQotY2xhc3MgRW5k
VG9FbmRIeUJpMDBUZXN0KEVuZFRvRW5kVGVzdEJhc2UpOgotICAgIGRlZiBzZXRVcChzZWxmKToK
LSAgICAgICAgRW5kVG9FbmRUZXN0QmFzZS5zZXRVcChzZWxmKQotCi0gICAgZGVmIF9ydW5fdGVz
dChzZWxmLCB0ZXN0X2Z1bmN0aW9uKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZl
cigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBf
SU5fU0VDKQotCi0gICAgICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRl
X2NsaWVudF9oeWJpMDAoc2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiB0ZXN0X2Vj
aG8oc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZSkK
LQotICAgIGRlZiB0ZXN0X2VjaG9fc2VydmVyX2Nsb3NlKHNlbGYpOgotICAgICAgICBzZWxmLl9y
dW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9nb29kYnllKQotCi0KLWNsYXNzIEVu
ZFRvRW5kVGVzdFdpdGhFY2hvQ2xpZW50KEVuZFRvRW5kVGVzdEJhc2UpOgotICAgIGRlZiBzZXRV
cChzZWxmKToKLSAgICAgICAgRW5kVG9FbmRUZXN0QmFzZS5zZXRVcChzZWxmKQotCi0gICAgZGVm
IF9jaGVja19leGFtcGxlX2VjaG9fY2xpZW50X3Jlc3VsdCgKLSAgICAgICAgc2VsZiwgZXhwZWN0
ZWQsIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpOgotICAgICAgICBhY3R1YWwgPSBzdGRvdXRkYXRh
LmRlY29kZSgidXRmLTgiKQotICAgICAgICBpZiBhY3R1YWwgIT0gZXhwZWN0ZWQ6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgcmVzdWx0IG9uIGV4YW1wbGUgZWNobyBj
bGllbnQ6ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJXIgKGV4cGVjdGVkKSB2cyAl
ciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZCwgYWN0
dWFsKSkKLSAgICAgICAgaWYgc3RkZXJyZGF0YSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCBlcnJvciBtZXNzYWdlIG9uIGV4YW1wbGUgZWNobyAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWVudDogJXInICUgc3RkZXJyZGF0YSkK
LQotICAgIGRlZiB0ZXN0X2V4YW1wbGVfZWNob19jbGllbnQoc2VsZik6Ci0gICAgICAgICIiIlRl
c3RzIHRoYXQgdGhlIGVjaG9fY2xpZW50LnB5IGV4YW1wbGUgY2FuIHRhbGsgd2l0aCB0aGUgc2Vy
dmVyLiIiIgotCi0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAg
ICAgICAgICAgY2xpZW50X2NvbW1hbmQgPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAg
c2VsZi50b3BfZGlyLCAnZXhhbXBsZScsICdlY2hvX2NsaWVudC5weScpCi0KLSAgICAgICAgICAg
ICMgRXhwZWN0ZWQgb3V0cHV0IGZvciB0aGUgZGVmYXVsdCBtZXNzYWdlcy4KLSAgICAgICAgICAg
IGRlZmF1bHRfZXhwZWN0YXRpb24gPSAoJ1NlbmQ6IEhlbGxvXG4nICdSZWN2OiBIZWxsb1xuJwot
ICAgICAgICAgICAgICAgIHUnU2VuZDogXHU2NWU1XHU2NzJjXG4nIHUnUmVjdjogXHU2NWU1XHU2
NzJjXG4nCi0gICAgICAgICAgICAgICAgJ1NlbmQgY2xvc2VcbicgJ1JlY3YgYWNrXG4nKQotCi0g
ICAgICAgICAgICBhcmdzID0gW2NsaWVudF9jb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAn
LXAnLCBzdHIoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCldCi0gICAgICAgICAgICBjbGllbnQg
PSBzZWxmLl9ydW5fcHl0aG9uX2NvbW1hbmQoYXJncywgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkK
LSAgICAgICAgICAgIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEgPSBjbGllbnQuY29tbXVuaWNhdGUo
KQotICAgICAgICAgICAgc2VsZi5fY2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9yZXN1bHQoCi0g
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfZXhwZWN0YXRpb24sIHN0ZG91dGRhdGEsIHN0ZGVy
cmRhdGEpCi0KLSAgICAgICAgICAgICMgUHJvY2VzcyBhIGJpZyBtZXNzYWdlIGZvciB3aGljaCBl
eHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBpcyB1c2VkLgotICAgICAgICAgICAgIyBUbyBoYW5kbGUg
ZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGgsIHdzX3ZlcnNpb24gYXR0cmlidXRlIHdpbGwgYmUKLSAg
ICAgICAgICAgICMgYWNjZXNzZWQuIFRoaXMgdGVzdCBjaGVja3MgdGhhdCB3c192ZXJzaW9uIGlz
IGNvcnJlY3RseSBzZXQuCi0gICAgICAgICAgICBiaWdfbWVzc2FnZSA9ICdhJyAqIDEwMjQKLSAg
ICAgICAgICAgIGFyZ3MgPSBbY2xpZW50X2NvbW1hbmQsCi0gICAgICAgICAgICAgICAgICAgICct
cCcsIHN0cihzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0KSwKLSAgICAgICAgICAgICAgICAgICAg
Jy1tJywgYmlnX21lc3NhZ2VdCi0gICAgICAgICAgICBjbGllbnQgPSBzZWxmLl9ydW5fcHl0aG9u
X2NvbW1hbmQoYXJncywgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKLSAgICAgICAgICAgIHN0ZG91
dGRhdGEsIHN0ZGVycmRhdGEgPSBjbGllbnQuY29tbXVuaWNhdGUoKQotICAgICAgICAgICAgZXhw
ZWN0ZWQgPSAoJ1NlbmQ6ICVzXG5SZWN2OiAlc1xuU2VuZCBjbG9zZVxuUmVjdiBhY2tcbicgJQot
ICAgICAgICAgICAgICAgICAgICAgICAgKGJpZ19tZXNzYWdlLCBiaWdfbWVzc2FnZSkpCi0gICAg
ICAgICAgICBzZWxmLl9jaGVja19leGFtcGxlX2VjaG9fY2xpZW50X3Jlc3VsdCgKLSAgICAgICAg
ICAgICAgICBleHBlY3RlZCwgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSkKLQotICAgICAgICAgICAg
IyBUZXN0IHRoZSBwZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9uLgotICAgICAgICAgICAgYXJn
cyA9IFtjbGllbnRfY29tbWFuZCwKLSAgICAgICAgICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYu
X29wdGlvbnMuc2VydmVyX3BvcnQpLAotICAgICAgICAgICAgICAgICAgICAnLS11c2VfcGVybWVz
c2FnZV9kZWZsYXRlJ10KLSAgICAgICAgICAgIGNsaWVudCA9IHNlbGYuX3J1bl9weXRob25fY29t
bWFuZChhcmdzLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQotICAgICAgICAgICAgc3Rkb3V0ZGF0
YSwgc3RkZXJyZGF0YSA9IGNsaWVudC5jb21tdW5pY2F0ZSgpCi0gICAgICAgICAgICBzZWxmLl9j
aGVja19leGFtcGxlX2VjaG9fY2xpZW50X3Jlc3VsdCgKLSAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdF9leHBlY3RhdGlvbiwgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSkKLSAgICAgICAgZmluYWxs
eToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0KLWlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9leHRlbnNpb25zLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTRhNDM4NDc5MmJmZmQwYTIwZDJlNzU0MzNkYzI5MDljZjkzZGU2ZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9leHRlbnNpb25z
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjc5ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhv
bgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIGV4dGVuc2lvbnMgbW9kdWxl
LiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHpsaWIKLQotaW1wb3J0IHNldF9zeXNf
cGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUu
Ci0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29j
a2V0IGltcG9ydCBleHRlbnNpb25zCi0KLQotY2xhc3MgRXh0ZW5zaW9uc1Rlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIG5vbi1jbGFzcyBtZXRob2RzIGluIGV4
dGVuc2lvbnMucHkiIiIKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3dpbmRvd19iaXRzKHNlbGYpOgot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93
aW5kb3dfYml0cywgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwg
ZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICdmb29iYXInKQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJyA4
ICcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3Bh
cnNlX3dpbmRvd19iaXRzLCAnYThhJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVF
cnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcwMDAwMCcpCi0gICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRz
LCAnMDAwMDgnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNp
b25zLl9wYXJzZV93aW5kb3dfYml0cywgJzB4OCcpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICc5LjUnKQotICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5k
b3dfYml0cywgJzguMCcpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4dGVuc2lvbnMuX3Bh
cnNlX3dpbmRvd19iaXRzLCAnOCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHRlbnNpb25z
Ll9wYXJzZV93aW5kb3dfYml0cywgJzE1JykKLQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJy04JykKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2Jp
dHMsICcwJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9u
cy5fcGFyc2Vfd2luZG93X2JpdHMsICc3JykKLQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzE2JykKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAgICAgICAgVmFsdWVFcnJvciwgZXh0ZW5zaW9u
cy5fcGFyc2Vfd2luZG93X2JpdHMsICcxMDAwMDAwMCcpCi0KLQotY2xhc3MgRGVmbGF0ZUZyYW1l
RXh0ZW5zaW9uUHJvY2Vzc29yUGFyc2luZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIi
IkEgdW5pdHRlc3QgZm9yIGNoZWNraW5nIHRoYXQgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vz
c29yIHBhcnNlcyBnaXZlbgotICAgIGV4dGVuc2lvbiBwYXJhbWV0ZXIgY29ycmVjdGx5LgotICAg
ICIiIgotCi0gICAgZGVmIHRlc3RfcmVnaXN0cnkoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9
IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAgY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcignZGVmbGF0ZS1mcmFtZScpKQotICAgICAgICBzZWxmLmFz
c2VydElzSW5zdGFuY2UocHJvY2Vzc29yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IpCi0KLSAgICAgICAgcHJv
Y2Vzc29yID0gZXh0ZW5zaW9ucy5nZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcigKLSAgICAgICAgICAg
ICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCd4LXdlYmtpdC1kZWZsYXRlLWZyYW1lJykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShwcm9jZXNzb3IsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3Nv
cikKLQotICAgIGRlZiB0ZXN0X21pbmltYWxfb2ZmZXIoc2VsZik6Ci0gICAgICAgIHByb2Nlc3Nv
ciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAg
ICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpKQotCi0gICAg
ICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygp
KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHpsaWIuTUFYX1dCSVRTLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRlci5fd2luZG93X2JpdHMp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl9u
b19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9tYXhfd2luZG93
X2JpdHMoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcign
bWF4X3dpbmRvd19iaXRzJywgJzEwJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5E
ZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHJlc3Bv
bnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDEwLCBwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX3dp
bmRvd19iaXRzKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9vdXRfb2ZfcmFuZ2VfbWF4X3dp
bmRvd19iaXRzKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0
ZXIoJ21heF93aW5kb3dfYml0cycsICcwJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9u
cy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAg
ICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5kb3dfYml0c193aXRob3V0X3ZhbHVlKHNlbGYp
OgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFt
ZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3df
Yml0cycsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1l
RXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9u
ZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2Zm
ZXJfd2l0aF9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFy
YW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKQotICAgICAg
ICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3Nvcihw
YXJhbWV0ZXIpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9y
ZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3BlcmZyYW1lLWRlZmxhdGUnLCBy
ZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNl
LmdldF9wYXJhbWV0ZXJzKCkpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwcm9jZXNzb3Iu
X3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICBkZWYgdGVzdF9v
ZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXJfd2l0aF92YWx1ZShzZWxmKToKLSAgICAgICAg
cGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScp
Ci0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVyJywg
J2Zvb2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0
ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShw
cm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJf
d2l0aF91bmtub3duX3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRl
ci5hZGRfcGFyYW1ldGVyKCdmb28nLCAnYmFyJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5z
aW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAg
IHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkK
LQotCi1jbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvclBhcnNpbmdUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBjaGVja2luZyB0aGF0
IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yIHBhcnNlcwotICAgIGdpdmVuIGV4
dGVuc2lvbiBwYXJhbWV0ZXIgY29ycmVjdGx5LgotICAgICIiIgotCi0gICAgZGVmIHRlc3RfcmVn
aXN0cnkoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lv
bl9wcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcign
cGVybWVzc2FnZS1kZWZsYXRlJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShwcm9j
ZXNzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLlBlck1lc3Nh
Z2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKQotCi0gICAgZGVmIHRlc3RfbWluaW1hbF9vZmZl
cihzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0
ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29y
LmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJt
ZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoemxpYi5NQVhfV0JJVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vz
c29yLl9yZmMxOTc5X2RlZmxhdGVyLl93aW5kb3dfYml0cykKLSAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCi0K
LSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAg
cGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRl
JykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9tYXhfd2luZG93X2Jp
dHMnLCAnMTAnKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZs
YXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICByZXNwb25zZSA9IHBy
b2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFsoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnMTAnKV0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDEwLCBwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRz
KQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9vdXRfb2ZfcmFuZ2VfbWF4X3dpbmRvd19iaXRz
KHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdw
ZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignc2Vy
dmVyX21heF93aW5kb3dfYml0cycsICcwJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9u
cy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkK
LQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4X3dpbmRvd19iaXRzX3dpdGhvdXRfdmFsdWUo
c2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Bl
cm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2
ZXJfbWF4X3dpbmRvd19iaXRzJywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9u
cy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkK
LQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAg
ICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1k
ZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250
ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJN
ZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgcmVz
cG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChbKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUp
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25v
X2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRf
dGFrZW92ZXJfd2l0aF92YWx1ZShzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVy
LmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgJ2Zvb2JhcicpCi0g
ICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Q
cm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nv
ci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX3Vu
a25vd25fcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRk
X3BhcmFtZXRlcignZm9vJywgJ2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMu
UGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0K
LQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3JCdWlsZGluZ1Rlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGNoZWNraW5nIHRoYXQg
UGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IgYnVpbGRzCi0gICAgYSByZXNwb25z
ZSBiYXNlZCBvbiBzcGVjaWZpZWQgb3B0aW9ucyBjb3JyZWN0bHkuCi0gICAgIiIiCi0KLSAgICBk
ZWYgdGVzdF9yZXNwb25zZV93aXRoX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgcGFy
YW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykK
LSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ2NsaWVudF9tYXhfd2luZG93X2JpdHMn
LCBOb25lKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRl
RXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGll
bnRfbWF4X3dpbmRvd19iaXRzKDEwKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdl
dF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNz
YWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
WygnY2xpZW50X21heF93aW5kb3dfYml0cycsICcxMCcpXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgZGVmIHRlc3RfcmVzcG9uc2Vf
d2l0aF9tYXhfd2luZG93X2JpdHNfd2l0aG91dF9jbGllbnRfcGVybWlzc2lvbihzZWxmKToKLSAg
ICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblBy
b2Nlc3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3Nh
Z2UtZGVmbGF0ZScpKQotICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9tYXhfd2luZG93X2Jp
dHMoMTApCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNw
b25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJlc3BvbnNlKQotCi0gICAgZGVmIHRl
c3RfcmVzcG9uc2Vfd2l0aF90cnVlX2Zvcl9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYpOgotICAg
ICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJv
Y2Vzc29yKAotICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2Fn
ZS1kZWZsYXRlJykpCi0KLSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbm9fY29udGV4dF90
YWtlb3ZlcihUcnVlKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNp
b25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxh
dGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWygnY2xpZW50
X25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3dpdGhf
ZmFsc2VfZm9yX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9
IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAg
ICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkKLQot
ICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKEZhbHNlKQot
Ci0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5u
YW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJh
bWV0ZXJzKCkpKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3Qu
bWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dF9oYW5kc2hha2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2UucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFhNzhhYzA1ZTU4NzFkMTU5YTY3ZjdlNDE2ZjMwMjcwMGZhMGY5
MjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RfaGFuZHNoYWtlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTg4ICswLDAgQEAKLSMh
L3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9y
IGhhbmRzaGFrZS5fYmFzZSBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9y
dCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2Nr
ZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24gaW1wb3J0IEV4dGVuc2lv
blBhcmFtZXRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuY29tbW9uIGltcG9ydCBFeHRlbnNpb25Q
YXJzaW5nRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24gaW1wb3J0IGZvcm1h
dF9leHRlbnNpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24gaW1wb3J0IHBhcnNlX2V4
dGVuc2lvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFu
ZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1w
b3J0IHZhbGlkYXRlX3N1YnByb3RvY29sCi0KLQotY2xhc3MgVmFsaWRhdGVTdWJwcm90b2NvbFRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIHZhbGlkYXRlX3N1
YnByb3RvY29sIG1ldGhvZC4iIiIKLQotICAgIGRlZiB0ZXN0X3ZhbGlkYXRlX3N1YnByb3RvY29s
KHNlbGYpOgotICAgICAgICAjIFNob3VsZCBzdWNjZWVkLgotICAgICAgICB2YWxpZGF0ZV9zdWJw
cm90b2NvbCgnc2FtcGxlJykKLSAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2woJ1NhbXBsZScp
Ci0gICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGVceDdlcHJvdG9jb2wnKQotCi0g
ICAgICAgICMgU2hvdWxkIGZhaWwuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFr
ZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9j
b2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcnKQotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlk
YXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHgwOXBy
b3RvY29sJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4MTlwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVc
eDIwcHJvdG9jb2wnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRp
b24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHg3ZnByb3RvY29sJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIyAi
SmFwYW4iIGluIEphcGFuZXNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHUnXHU2NWU1XHU2
NzJjJykKLQotCi1fVEVTVF9UT0tFTl9FWFRFTlNJT05fREFUQSA9IFsKLSAgICAoJ2ZvbycsIFso
J2ZvbycsIFtdKV0pLAotICAgICgnZm9vOyBiYXInLCBbKCdmb28nLCBbKCdiYXInLCBOb25lKV0p
XSksCi0gICAgKCdmb287IGJhcj1iYXonLCBbKCdmb28nLCBbKCdiYXInLCAnYmF6JyldKV0pLAot
ICAgICgnZm9vOyBiYXI9YmF6OyBjYXI9Y2RyJywgWygnZm9vJywgWygnYmFyJywgJ2JheicpLCAo
J2NhcicsICdjZHInKV0pXSksCi0gICAgKCdmb287IGJhcj1iYXosIGNhcjsgY2RyJywKLSAgICAg
WygnZm9vJywgWygnYmFyJywgJ2JheicpXSksICgnY2FyJywgWygnY2RyJywgTm9uZSldKV0pLAot
ICAgICgnYSwgYiwgYywgZCcsCi0gICAgIFsoJ2EnLCBbXSksICgnYicsIFtdKSwgKCdjJywgW10p
LCAoJ2QnLCBbXSldKSwKLSAgICBdCi0KLQotX1RFU1RfUVVPVEVEX0VYVEVOU0lPTl9EQVRBID0g
WwotICAgICgnZm9vOyBiYXI9IiInLCBbKCdmb28nLCBbKCdiYXInLCAnJyldKV0pLAotICAgICgn
Zm9vOyBiYXI9IiBiYXogIicsIFsoJ2ZvbycsIFsoJ2JhcicsICcgYmF6ICcpXSldKSwKLSAgICAo
J2ZvbzsgYmFyPSIsYmF6OyInLCBbKCdmb28nLCBbKCdiYXInLCAnLGJhejsnKV0pXSksCi0gICAg
KCdmb287IGJhcj0iXFxcclxcXG5iYXoiJywgWygnZm9vJywgWygnYmFyJywgJ1xyXG5iYXonKV0p
XSksCi0gICAgKCdmb287IGJhcj0iXFwiYmF6IicsIFsoJ2ZvbycsIFsoJ2JhcicsICciYmF6Jyld
KV0pLAotICAgICgnZm9vOyBiYXI9Ilx4YmJiYXoiJywgWygnZm9vJywgWygnYmFyJywgJ1x4YmJi
YXonKV0pXSksCi0gICAgXQotCi0KLV9URVNUX1JFRFVOREFOVF9UT0tFTl9FWFRFTlNJT05fREFU
QSA9IFsKLSAgICAoJ2ZvbyBcdCAnLCBbKCdmb28nLCBbXSldKSwKLSAgICAoJ2ZvbzsgXHJcbiBi
YXInLCBbKCdmb28nLCBbKCdiYXInLCBOb25lKV0pXSksCi0gICAgKCdmb287IGJhcj1cclxuIFxy
XG4gYmF6JywgWygnZm9vJywgWygnYmFyJywgJ2JheicpXSldKSwKLSAgICAoJ2ZvbyA7YmFyID0g
YmF6ICcsIFsoJ2ZvbycsIFsoJ2JhcicsICdiYXonKV0pXSksCi0gICAgKCdmb28sYmFyLCxiYXon
LCBbKCdmb28nLCBbXSksICgnYmFyJywgW10pLCAoJ2JheicsIFtdKV0pLAotICAgIF0KLQotCi1f
VEVTVF9SRURVTkRBTlRfUVVPVEVEX0VYVEVOU0lPTl9EQVRBID0gWwotICAgICgnZm9vOyBiYXI9
IlxyXG4gXHJcbiBiYXoiJywgWygnZm9vJywgWygnYmFyJywgJyAgYmF6JyldKV0pLAotICAgIF0K
LQotCi1jbGFzcyBFeHRlbnNpb25zUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAg
ICBkZWYgX3ZlcmlmeV9leHRlbnNpb25fbGlzdChzZWxmLCBleHBlY3RlZF9saXN0LCBhY3R1YWxf
bGlzdCk6Ci0gICAgICAgICIiIlZlcmlmaWVzIHRoYXQgRXh0ZW5zaW9uUGFyYW1ldGVyIG9iamVj
dHMgaW4gYWN0dWFsX2xpc3QgaGF2ZSB0aGUKLSAgICAgICAgc2FtZSBtZW1iZXJzIGFzIGV4dGVu
c2lvbiBkZWZpbml0aW9ucyBpbiBleHBlY3RlZF9saXN0LiBFeHRlbnNpb24KLSAgICAgICAgZGVm
aW5pdGlvbiB1c2VkIGluIHRoaXMgdGVzdCBpcyBhIHBhaXIgb2YgYW4gZXh0ZW5zaW9uIG5hbWUg
YW5kIGEKLSAgICAgICAgcGFyYW1ldGVyIGRpY3Rpb25hcnkuCi0gICAgICAgICIiIgotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4cGVjdGVkX2xpc3QpLCBsZW4oYWN0dWFsX2xpc3Qp
KQotICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCBpbiB6aXAoZXhwZWN0ZWRfbGlzdCwgYWN0
dWFsX2xpc3QpOgotICAgICAgICAgICAgKG5hbWUsIHBhcmFtZXRlcnMpID0gZXhwZWN0ZWQKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZSwgYWN0dWFsLl9uYW1lKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbWV0ZXJzLCBhY3R1YWwuX3BhcmFtZXRlcnMpCi0KLSAg
ICBkZWYgdGVzdF9wYXJzZShzZWxmKToKLSAgICAgICAgZm9yIGZvcm1hdHRlZF9zdHJpbmcsIGRl
ZmluaXRpb24gaW4gX1RFU1RfVE9LRU5fRVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxm
Ll92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCi0gICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwgcGFy
c2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5nKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3F1
b3RlZF9kYXRhKHNlbGYpOgotICAgICAgICBmb3IgZm9ybWF0dGVkX3N0cmluZywgZGVmaW5pdGlv
biBpbiBfVEVTVF9RVU9URURfRVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxmLl92ZXJp
ZnlfZXh0ZW5zaW9uX2xpc3QoCi0gICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwgcGFyc2VfZXh0
ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5nKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3JlZHVuZGFu
dF9kYXRhKHNlbGYpOgotICAgICAgICBmb3IgKGZvcm1hdHRlZF9zdHJpbmcsCi0gICAgICAgICAg
ICAgZGVmaW5pdGlvbikgaW4gX1RFU1RfUkVEVU5EQU5UX1RPS0VOX0VYVEVOU0lPTl9EQVRBOgot
ICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4dGVuc2lvbl9saXN0KAotICAgICAgICAgICAgICAg
IGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lvbnMoZm9ybWF0dGVkX3N0cmluZykpCi0KLSAgICBk
ZWYgdGVzdF9wYXJzZV9yZWR1bmRhbnRfcXVvdGVkX2RhdGEoc2VsZik6Ci0gICAgICAgIGZvciAo
Zm9ybWF0dGVkX3N0cmluZywKLSAgICAgICAgICAgICBkZWZpbml0aW9uKSBpbiBfVEVTVF9SRURV
TkRBTlRfUVVPVEVEX0VYVEVOU0lPTl9EQVRBOgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4
dGVuc2lvbl9saXN0KAotICAgICAgICAgICAgICAgIGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lv
bnMoZm9ybWF0dGVkX3N0cmluZykpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9iYWRfZGF0YShzZWxm
KToKLSAgICAgICAgX1RFU1RfQkFEX0VYVEVOU0lPTl9EQVRBID0gWwotICAgICAgICAgICAgKCdm
b287IDsgJyksCi0gICAgICAgICAgICAoJ2ZvbzsgYSBhJyksCi0gICAgICAgICAgICAoJ2ZvbyBm
b28nKSwKLSAgICAgICAgICAgICgnLCwsJyksCi0gICAgICAgICAgICAoJ2ZvbzsgYmFyPScpLAot
ICAgICAgICAgICAgKCdmb287IGJhcj0iaG9nZScpLAotICAgICAgICAgICAgKCdmb287IGJhcj0i
YVxyIicpLAotICAgICAgICAgICAgKCdmb287IGJhcj0iXFxceGZmIicpLAotICAgICAgICAgICAg
KCdmb287IGJhcj1ccmEnKSwKLSAgICAgICAgICAgIF0KLQotICAgICAgICBmb3IgZm9ybWF0dGVk
X3N0cmluZyBpbiBfVEVTVF9CQURfRVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcygKLSAgICAgICAgICAgICAgICBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uLCBw
YXJzZV9leHRlbnNpb25zLCBmb3JtYXR0ZWRfc3RyaW5nKQotCi0KLWNsYXNzIEZvcm1hdEV4dGVu
c2lvbnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiB0ZXN0X2Zvcm1hdF9leHRl
bnNpb25zKHNlbGYpOgotICAgICAgICBmb3IgZm9ybWF0dGVkX3N0cmluZywgZGVmaW5pdGlvbnMg
aW4gX1RFU1RfVE9LRU5fRVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBleHRlbnNpb25zID0g
W10KLSAgICAgICAgICAgIGZvciBkZWZpbml0aW9uIGluIGRlZmluaXRpb25zOgotICAgICAgICAg
ICAgICAgIChuYW1lLCBwYXJhbWV0ZXJzKSA9IGRlZmluaXRpb24KLSAgICAgICAgICAgICAgICBl
eHRlbnNpb24gPSBFeHRlbnNpb25QYXJhbWV0ZXIobmFtZSkKLSAgICAgICAgICAgICAgICBleHRl
bnNpb24uX3BhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9u
cy5hcHBlbmQoZXh0ZW5zaW9uKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgICAgICBmb3JtYXR0ZWRfc3RyaW5nLCBmb3JtYXRfZXh0ZW5zaW9ucyhleHRlbnNpb25z
KSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNo
YWtlX2h5YmkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDBhYWY2NDBhNTg4ZTJiMDQyZjMyYTljNjZhMzY5N2FkNGRk
MTBiZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQorKysgL2Rldi9udWxsCkBAIC0xLDUyMSArMCww
IEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRl
c3RzIGZvciBoYW5kc2hha2UgbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotCi1pbXBv
cnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29j
a2V0IG1vZHVsZS4KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlv
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VF
eGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgVmVy
c2lvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkgaW1wb3J0
IEhhbmRzaGFrZXIKLQotaW1wb3J0IG1vY2sKLQotCi1jbGFzcyBSZXF1ZXN0RGVmaW5pdGlvbihv
YmplY3QpOgotICAgICIiIkEgY2xhc3MgZm9yIGhvbGRpbmcgZGF0YSBmb3IgY29uc3RydWN0aW5n
IG9wZW5pbmcgaGFuZHNoYWtlIHN0cmluZ3MgZm9yCi0gICAgdGVzdGluZyB0aGUgb3BlbmluZyBo
YW5kc2hha2UgcHJvY2Vzc29yLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1l
dGhvZCwgdXJpLCBoZWFkZXJzKToKLSAgICAgICAgc2VsZi5tZXRob2QgPSBtZXRob2QKLSAgICAg
ICAgc2VsZi51cmkgPSB1cmkKLSAgICAgICAgc2VsZi5oZWFkZXJzID0gaGVhZGVycwotCi0KLWRl
ZiBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKToKLSAgICByZXR1cm4gUmVxdWVzdERlZmluaXRp
b24oCi0gICAgICAgICdHRVQnLCAnL2RlbW8nLAotICAgICAgICB7J0hvc3QnOiAnc2VydmVyLmV4
YW1wbGUuY29tJywKLSAgICAgICAgICdVcGdyYWRlJzogJ3dlYnNvY2tldCcsCi0gICAgICAgICAn
Q29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleSc6ICdk
R2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nLAotICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtVmVyc2lv
bic6ICcxMycsCi0gICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbSd9KQotCi0K
LWRlZiBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpOgotICAgIGNvbm4gPSBtb2NrLk1vY2tD
b25uKCcnKQotICAgIHJldHVybiBtb2NrLk1vY2tSZXF1ZXN0KAotICAgICAgICBtZXRob2Q9cmVx
dWVzdF9kZWYubWV0aG9kLAotICAgICAgICB1cmk9cmVxdWVzdF9kZWYudXJpLAotICAgICAgICBo
ZWFkZXJzX2luPXJlcXVlc3RfZGVmLmhlYWRlcnMsCi0gICAgICAgIGNvbm5lY3Rpb249Y29ubikK
LQotCi1kZWYgX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpOgotICAgIGhhbmRzaGFrZXIgPSBI
YW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICByZXR1cm4gaGFu
ZHNoYWtlcgotCi0KLWNsYXNzIFN1YnByb3RvY29sQ2hvb3NpbmdEaXNwYXRjaGVyKG9iamVjdCk6
Ci0gICAgIiIiQSBkaXNwYXRjaGVyIGZvciB0ZXN0aW5nLiBUaGlzIGRpc3BhdGNoZXIgc2V0cyB0
aGUgaS10aCBzdWJwcm90b2NvbAotICAgIG9mIHJlcXVlc3RlZCBvbmVzIHRvIHdzX3Byb3RvY29s
IHdoZXJlIGkgaXMgZ2l2ZW4gb24gY29uc3RydWN0aW9uIGFzIGluZGV4Ci0gICAgYXJndW1lbnQu
IElmIGluZGV4IGlzIG5lZ2F0aXZlLCBkZWZhdWx0X3ZhbHVlIHdpbGwgYmUgc2V0IHRvIHdzX3By
b3RvY29sLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGluZGV4LCBkZWZhdWx0
X3ZhbHVlPU5vbmUpOgotICAgICAgICBzZWxmLmluZGV4ID0gaW5kZXgKLSAgICAgICAgc2VsZi5k
ZWZhdWx0X3ZhbHVlID0gZGVmYXVsdF92YWx1ZQotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFr
ZShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICBpZiBzZWxmLmluZGV4ID49IDA6Ci0gICAg
ICAgICAgICBjb25uX2NvbnRleHQud3NfcHJvdG9jb2wgPSBjb25uX2NvbnRleHQud3NfcmVxdWVz
dGVkX3Byb3RvY29sc1sKLSAgICAgICAgICAgICAgICBzZWxmLmluZGV4XQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgY29ubl9jb250ZXh0LndzX3Byb3RvY29sID0gc2VsZi5kZWZhdWx0X3Zh
bHVlCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAg
ICBwYXNzCi0KLQotY2xhc3MgSGFuZHNoYWtlQWJvcnRlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgot
ICAgIHBhc3MKLQotCi1jbGFzcyBBYm9ydGluZ0Rpc3BhdGNoZXIob2JqZWN0KToKLSAgICAiIiJB
IGRpc3BhdGNoZXIgZm9yIHRlc3RpbmcuIFRoaXMgZGlzcGF0Y2hlciByYWlzZXMgYW4gZXhjZXB0
aW9uIGluCi0gICAgZG9fZXh0cmFfaGFuZHNoYWtlIHRvIHJlamVjdCB0aGUgcmVxdWVzdC4KLSAg
ICAiIiIKLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgY29ubl9jb250ZXh0KToK
LSAgICAgICAgcmFpc2UgSGFuZHNoYWtlQWJvcnRlZEV4Y2VwdGlvbignQW4gZXhjZXB0aW9uIHRv
IHJlamVjdCB0aGUgcmVxdWVzdCcpCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShzZWxmLCBjb25u
X2NvbnRleHQpOgotICAgICAgICBwYXNzCi0KLQotY2xhc3MgQWJvcnRlZEJ5VXNlckRpc3BhdGNo
ZXIob2JqZWN0KToKLSAgICAiIiJBIGRpc3BhdGNoZXIgZm9yIHRlc3RpbmcuIFRoaXMgZGlzcGF0
Y2hlciByYWlzZXMgYW4KLSAgICBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uIGluIGRvX2V4dHJhX2hh
bmRzaGFrZSB0byByZWplY3QgdGhlIHJlcXVlc3QuCi0gICAgIiIiCi0KLSAgICBkZWYgZG9fZXh0
cmFfaGFuZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHJhaXNlIEFib3J0ZWRC
eVVzZXJFeGNlcHRpb24oJ0FuIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24gdG8gcmVqZWN0IHRoZSAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlcXVlc3QnKQotCi0gICAg
ZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgcGFzcwotCi0K
LV9FWFBFQ1RFRF9SRVNQT05TRSA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90
b2NvbHNcclxuJwotICAgICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9u
OiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6IHMzcFBMTUJpVHhhUTlr
WUd6emhaUmJLK3hPbz1cclxuXHJcbicpCi0KLQotY2xhc3MgSGFuZHNoYWtlclRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGRyYWZ0LWlldGYtaHliaS10aGV3
ZWJzb2NrZXRwcm90b2NvbC0wNiBhbmQgbGF0ZXIKLSAgICBoYW5kc2hha2UgcHJvY2Vzc29yLgot
ICAgICIiIgotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlKHNlbGYpOgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpKQotICAgICAg
ICBkaXNwYXRjaGVyID0gbW9jay5Nb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIGhhbmRzaGFrZXIg
PSBIYW5kc2hha2VyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9f
aGFuZHNoYWtlKCkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUoZGlzcGF0Y2hlci5kb19leHRy
YV9oYW5kc2hha2VfY2FsbGVkKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAg
ICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEo
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2RlbW8nLCByZXF1ZXN0LndzX3Jlc291cmNl
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdodHRwOi8vZXhhbXBsZS5jb20nLCByZXF1ZXN0
LndzX29yaWdpbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXF1ZXN0LndzX3By
b3RvY29sKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlcXVlc3Qud3NfZXh0ZW5z
aW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVT
VCwgcmVxdWVzdC53c192ZXJzaW9uKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhf
ZXh0cmFfaGVhZGVycyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2Rf
cmVxdWVzdF9kZWYoKQotICAgICAgICAjIEFkZCBoZWFkZXJzIG5vdCByZWxhdGVkIHRvIFdlYlNv
Y2tldCBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snRm9v
S2V5J10gPSAnQmFyVmFsdWUnCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0VtcHR5S2V5
J10gPSAnJwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYp
Ci0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAg
ICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9jYXBpdGFsaXplZF92
YWx1ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9k
ZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWyd1cGdyYWRlJ10gPSAnV0VCU09DS0VU
JwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAg
ICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFu
ZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAg
ICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQot
ICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydDb25uZWN0aW9uJ10gPSAnVVBHUkFERScKLQot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBo
YW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFr
ZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
IF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQot
Ci0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfbXVsdGlwbGVfY29ubmVjdGlvbl92YWx1
ZXMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbiddID0gJ1VwZ3JhZGUs
IGtlZXAtYWxpdmUsICwgJwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVx
dWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVz
dCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKAotICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9hYm9ydGluZ19oYW5kc2hha2Uoc2Vs
Zik6Ci0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKAotICAgICAgICAgICAgX2NyZWF0
ZV9yZXF1ZXN0KF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpKSwKLSAgICAgICAgICAgIEFib3J0
aW5nRGlzcGF0Y2hlcigpKQotICAgICAgICAjIGRvX2V4dHJhX2hhbmRzaGFrZSByYWlzZXMgYW4g
ZXhjZXB0aW9uLiBDaGVjayB0aGF0IGl0J3Mgbm90IGNhdWdodCBieQotICAgICAgICAjIGRvX2hh
bmRzaGFrZS4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlQWJvcnRlZEV4Y2Vw
dGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hh
a2Vfd2l0aF9wcm90b2NvbChzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dv
b2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29j
a2V0LVByb3RvY29sJ10gPSAnY2hhdCwgc3VwZXJjaGF0JwotCi0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hh
a2VyKHJlcXVlc3QsIFN1YnByb3RvY29sQ2hvb3NpbmdEaXNwYXRjaGVyKDApKQotICAgICAgICBo
YW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0KLSAgICAgICAgRVhQRUNURURfUkVTUE9OU0UgPSAo
Ci0gICAgICAgICAgICAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJwotICAg
ICAgICAgICAgJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCi0gICAgICAgICAgICAnQ29ubmVjdGlv
bjogVXBncmFkZVxyXG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6IHMzcFBM
TUJpVHhhUTlrWUd6emhaUmJLK3hPbz1cclxuJwotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
UHJvdG9jb2w6IGNoYXRcclxuXHJcbicpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChFWFBF
Q1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdjaGF0JywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRl
ZiB0ZXN0X2RvX2hhbmRzaGFrZV9wcm90b2NvbF9ub3RfaW5fcmVxdWVzdF9idXRfaW5fcmVzcG9u
c2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAg
ICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIoCi0gICAgICAgICAgICByZXF1ZXN0LCBTdWJwcm90
b2NvbENob29zaW5nRGlzcGF0Y2hlcigtMSwgJ2Zvb2JhcicpKQotICAgICAgICAjIE5vIHJlcXVl
c3QgaGFzIGJlZW4gbWFkZSBidXQgd3NfcHJvdG9jb2wgaXMgc2V0LiBIYW5kc2hha2VFeGNlcHRp
b24KLSAgICAgICAgIyBtdXN0IGJlIHJhaXNlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
SGFuZHNoYWtlRXhjZXB0aW9uLCBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSkKLQotICAgIGRlZiB0
ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3Byb3RvY29sX25vX3Byb3RvY29sX3NlbGVjdGlvbihzZWxm
KToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAg
ICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10gPSAnY2hh
dCwgc3VwZXJjaGF0JwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVz
dF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkK
LSAgICAgICAgIyB3c19wcm90b2NvbCBpcyBub3Qgc2V0LiBIYW5kc2hha2VFeGNlcHRpb24gbXVz
dCBiZSByYWlzZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlv
biwgaGFuZHNoYWtlci5kb19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vf
d2l0aF9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29v
ZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2Nr
ZXQtRXh0ZW5zaW9ucyddID0gKAotICAgICAgICAgICAgJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2Vy
dmVyX25vX2NvbnRleHRfdGFrZW92ZXInKQotCi0gICAgICAgIEVYUEVDVEVEX1JFU1BPTlNFID0g
KAotICAgICAgICAgICAgJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKLSAg
ICAgICAgICAgICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwotICAgICAgICAgICAgJ0Nvbm5lY3Rp
b246IFVwZ3JhZGVcclxuJwotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBzM3BQ
TE1CaVR4YVE5a1lHenpoWlJiSyt4T289XHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0
LUV4dGVuc2lvbnM6ICcKLSAgICAgICAgICAgICAgICAncGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2
ZXJfbm9fY29udGV4dF90YWtlb3ZlclxyXG4nCi0gICAgICAgICAgICAnXHJcbicpCi0KLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNo
YWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRv
X2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRVhQRUNURURfUkVTUE9OU0Us
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25zKSkKLSAgICAgICAgZXh0ZW5zaW9uID0g
cmVxdWVzdC53c19leHRlbnNpb25zWzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9u
LlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3NlcnZlcl9ub19j
b250ZXh0X3Rha2VvdmVyJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uLmdl
dF9wYXJhbWV0ZXJfbmFtZXMoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJv
Y2Vzc29ycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2RlZmxhdGUnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgp
KQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfcXVvdGVkX2V4dGVuc2lvbnMoc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAg
ICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAo
Ci0gICAgICAgICAgICAncGVybWVzc2FnZS1kZWZsYXRlLCAsICcKLSAgICAgICAgICAgICd1bmtu
b3duOyBlICAgPSAgICAibWNeMiI7IG1hPSJcclxuICAgICAgXFxccmYgICI7IHB2PW5ydCcpCi0K
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAg
aGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hh
a2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVl
c3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMpKQotICAgICAgICBmaXJzdF9leHRlbnNpb24gPSBy
ZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zWzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIGZpcnN0X2V4dGVuc2lvbi5uYW1lKCkpCi0gICAgICAg
IHNlY29uZF9leHRlbnNpb24gPSByZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zWzFdCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Vua25vd24nLCBzZWNvbmRfZXh0ZW5zaW9uLm5hbWUo
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIFsnZScsICdtYScsICdw
diddLCBzZWNvbmRfZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfbmFtZXMoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnbWNeMicsIHNlY29uZF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1
ZSgnZScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcgXHJmICcsIHNlY29uZF9leHRlbnNp
b24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgnbWEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
bnJ0Jywgc2Vjb25kX2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdwdicpKQotCi0gICAg
ZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfb3B0aW9uYWxfaGVhZGVycyhzZWxmKToKLSAgICAg
ICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1
ZXN0X2RlZi5oZWFkZXJzWydFbXB0eVZhbHVlJ10gPSAnJwotICAgICAgICByZXF1ZXN0X2RlZi5o
ZWFkZXJzWydBS2V5J10gPSAnQVZhbHVlJwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFr
ZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgJ0FWYWx1ZScsIHJlcXVlc3QuaGVhZGVyc19p
blsnQUtleSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgJycsIHJl
cXVlc3QuaGVhZGVyc19pblsnRW1wdHlWYWx1ZSddKQotCi0gICAgZGVmIHRlc3RfYWJvcnRfZXh0
cmFfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcigKLSAg
ICAgICAgICAgIF9jcmVhdGVfcmVxdWVzdChfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKSksCi0g
ICAgICAgICAgICBBYm9ydGVkQnlVc2VyRGlzcGF0Y2hlcigpKQotICAgICAgICAjIGRvX2V4dHJh
X2hhbmRzaGFrZSByYWlzZXMgYW4gQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbi4gQ2hlY2sgdGhhdCBp
dCdzCi0gICAgICAgICMgbm90IGNhdWdodCBieSBkb19oYW5kc2hha2UuCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKEFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNo
YWtlKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfbXV4X2FuZF9kZWZsYXRlX2Zy
YW1lKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2Rl
ZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9u
cyddID0gKCclcywgJXMnICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5NVVhfRVhURU5TSU9O
LAotICAgICAgICAgICAgICAgIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikpCi0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRz
aGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5k
b19oYW5kc2hha2UoKQotICAgICAgICAjIG11eCBzaG91bGQgYmUgcmVqZWN0ZWQuCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXS5uYW1lKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3Nv
cnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0u
bmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VY
VEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9w
cm9jZXNzb3JzWzFdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKHJl
cXVlc3QsICdtdXhfcHJvY2Vzc29yJykpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0
aF9kZWZsYXRlX2ZyYW1lX2FuZF9tdXgoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2Ny
ZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2Vj
LVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoJyVzLCAlcycgJSAoCi0gICAgICAgICAgICAgICAg
Y29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgIGNvbW1vbi5N
VVhfRVhURU5TSU9OKSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0
X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQot
ICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICMgbXV4IHNob3VsZCBi
ZSByZWplY3RlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19l
eHRlbnNpb25zKSkKLSAgICAgICAgZmlyc3RfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19leHRlbnNp
b25zWzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhU
RU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X2V4dGVuc2lvbi5uYW1lKCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3By
b2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1F
X0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lv
bl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24u
TVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVu
c2lvbl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNh
dHRyKHJlcXVlc3QsICdtdXgnKSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3Bl
cm1lc3NhZ2VfZGVmbGF0ZV9hbmRfbXV4KHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9j
cmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1Nl
Yy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKAotICAgICAgICAgICAgJyVzLCAlcycgJSAoCi0g
ICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04sCi0gICAg
ICAgICAgICAgICAgY29tbW9uLk1VWF9FWFRFTlNJT04pKQotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9o
YW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXS5uYW1lKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdkZWZsYXRlJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIocmVxdWVzdCwgJ211eF9wcm9jZXNzb3InKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcXVlc3QubXV4X3Byb2Nlc3Nvci5pc19hY3RpdmUo
KSkKLSAgICAgICAgbXV4X2V4dGVuc2lvbnMgPSByZXF1ZXN0Lm11eF9wcm9jZXNzb3IuZXh0ZW5z
aW9ucygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG11eF9leHRlbnNpb25zKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVO
U0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBtdXhfZXh0ZW5zaW9uc1swXS5uYW1lKCkp
Ci0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9tdXhfYW5kX3Blcm1lc3NhZ2VfZGVm
bGF0ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9k
ZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lv
bnMnXSA9ICgKLSAgICAgICAgICAgICclcywgJXMnICUgKAotICAgICAgICAgICAgICAgIGNvbW1v
bi5NVVhfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxB
VEVfRVhURU5TSU9OKSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0
X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQot
ICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICMgbXV4IHNob3VsZCBi
ZSByZWplY3RlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19l
eHRlbnNpb25zKSkKLSAgICAgICAgZmlyc3RfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19leHRlbnNp
b25zWzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfREVGTEFU
RV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RfZXh0ZW5zaW9uLm5h
bWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4ocmVxdWVzdC53c19leHRlbnNp
b25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRF
TlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJv
Y2Vzc29yc1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2RlZmxhdGUnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNb
MV0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIocmVxdWVzdCwgJ211
eF9wcm9jZXNzb3InKSkKLQotICAgIGRlZiB0ZXN0X2JhZF9yZXF1ZXN0cyhzZWxmKToKLSAgICAg
ICAgYmFkX2Nhc2VzID0gWwotICAgICAgICAgICAgKCdIVFRQIHJlcXVlc3QnLAotICAgICAgICAg
ICAgIFJlcXVlc3REZWZpbml0aW9uKAotICAgICAgICAgICAgICAgICAnR0VUJywgJy9kZW1vJywK
LSAgICAgICAgICAgICAgICAgeydIb3N0JzogJ3d3dy5nb29nbGUuY29tJywKLSAgICAgICAgICAg
ICAgICAgICdVc2VyLUFnZW50JzoKLSAgICAgICAgICAgICAgICAgICAgICAnTW96aWxsYS81LjAg
KE1hY2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFggMTAuNTsnCi0gICAgICAgICAgICAgICAgICAg
ICAgJyBlbi1VUzsgcnY6MS45LjEuMykgR2Vja28vMjAwOTA4MjQgRmlyZWZveC8zLjUuMycKLSAg
ICAgICAgICAgICAgICAgICAgICAnIEdUQjYgR1RCQScsCi0gICAgICAgICAgICAgICAgICAnQWNj
ZXB0JzoKLSAgICAgICAgICAgICAgICAgICAgICAndGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1s
K3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksJwotICAgICAgICAgICAgICAgICAgICAgICcqLyo7
cT0wLjgnLAotICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6ICdlbi11cyxlbjtx
PTAuNScsCi0gICAgICAgICAgICAgICAgICAnQWNjZXB0LUVuY29kaW5nJzogJ2d6aXAsZGVmbGF0
ZScsCi0gICAgICAgICAgICAgICAgICAnQWNjZXB0LUNoYXJzZXQnOiAnSVNPLTg4NTktMSx1dGYt
ODtxPTAuNywqO3E9MC43JywKLSAgICAgICAgICAgICAgICAgICdLZWVwLUFsaXZlJzogJzMwMCcs
Ci0gICAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdrZWVwLWFsaXZlJ30pLCBOb25lLCBU
cnVlKV0KLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigp
Ci0gICAgICAgIHJlcXVlc3RfZGVmLm1ldGhvZCA9ICdQT1NUJwotICAgICAgICBiYWRfY2FzZXMu
YXBwZW5kKCgnV3JvbmcgbWV0aG9kJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUpKQotCi0gICAg
ICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgZGVs
IHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0hvc3QnXQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgn
TWlzc2luZyBIb3N0JywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVl
c3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgZGVsIHJlcXVlc3Rf
ZGVmLmhlYWRlcnNbJ1VwZ3JhZGUnXQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnTWlzc2lu
ZyBVcGdyYWRlJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3Rf
ZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVh
ZGVyc1snVXBncmFkZSddID0gJ25vbndlYnNvY2tldCcKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVu
ZCgoJ1dyb25nIFVwZ3JhZGUnLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAgICAgICAg
cmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBkZWwgcmVx
dWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbiddCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQo
KCdNaXNzaW5nIENvbm5lY3Rpb24nLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAgICAg
ICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1
ZXN0X2RlZi5oZWFkZXJzWydDb25uZWN0aW9uJ10gPSAnRG93bmdyYWRlJwotICAgICAgICBiYWRf
Y2FzZXMuYXBwZW5kKCgnV3JvbmcgQ29ubmVjdGlvbicsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVl
KSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0g
ICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUtleSddCi0gICAg
ICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5nIFNlYy1XZWJTb2NrZXQtS2V5JywgcmVxdWVz
dF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2Rf
cmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0
LUtleSddID0gKAotICAgICAgICAgICAgJ2RHaGxJSE5oYlhCc1pTQnViMjVqWlE9PWdhcmJhZ2Un
KQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgU2VjLVdlYlNvY2tldC1LZXkgKHdp
dGggZ2FyYmFnZSBvbiB0aGUgdGFpbCknLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29v
ZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2Nr
ZXQtS2V5J10gPSAnWVE9PScgICMgQkFTRTY0IG9mICdhJwotICAgICAgICBiYWRfY2FzZXMuYXBw
ZW5kKAotICAgICAgICAgICAgKCdXcm9uZyBTZWMtV2ViU29ja2V0LUtleSAoZGVjb2RlZCB2YWx1
ZSBpcyBub3QgMTYgb2N0ZXRzIGxvbmcpJywKLSAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAw
LCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2Rl
ZigpCi0gICAgICAgICMgVGhlIGxhc3QgY2hhcmFjdGVyIHJpZ2h0IGJlZm9yZSA9PSBtdXN0IGJl
IGFueSBvZiBBLCBRLCB3IGFuZCBnLgotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMt
V2ViU29ja2V0LUtleSddID0gKAotICAgICAgICAgICAgJ0FRSURCQVVHQndnSkNnc01EUTRQRUM9
PScpCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoCi0gICAgICAgICAgICAoJ1dyb25nIFNlYy1X
ZWJTb2NrZXQtS2V5IChwYWRkaW5nIGJpdHMgYXJlIG5vdCB6ZXJvKScsCi0gICAgICAgICAgICAg
cmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRl
X2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2Vi
U29ja2V0LUtleSddID0gKAotICAgICAgICAgICAgJ2RHaGxJSE5oYlhCc1pTQnViMjVqWlE9PSxk
R2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nKQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKAotICAg
ICAgICAgICAgKCdXcm9uZyBTZWMtV2ViU29ja2V0LUtleSAobXVsdGlwbGUgdmFsdWVzKScsCi0g
ICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9k
ZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBkZWwgcmVxdWVzdF9kZWYu
aGVhZGVyc1snU2VjLVdlYlNvY2tldC1WZXJzaW9uJ10KLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVu
ZCgoJ01pc3NpbmcgU2VjLVdlYlNvY2tldC1WZXJzaW9uJywgcmVxdWVzdF9kZWYsIE5vbmUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0g
X2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1sn
U2VjLVdlYlNvY2tldC1WZXJzaW9uJ10gPSAnMycKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgo
J1dyb25nIFNlYy1XZWJTb2NrZXQtVmVyc2lvbicsIHJlcXVlc3RfZGVmLCBOb25lLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3Jl
YXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMt
V2ViU29ja2V0LVZlcnNpb24nXSA9ICcxMywgMTMnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQo
KCdXcm9uZyBTZWMtV2ViU29ja2V0LVZlcnNpb24gKG11bHRpcGxlIHZhbHVlcyknLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICBy
ZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3Rf
ZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnXSA9ICdpbGxlZ2FsXHgwOXByb3Rv
Y29sJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnSWxsZWdhbCBTZWMtV2ViU29ja2V0LVBy
b3RvY29sJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1
ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQot
ICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10gPSAn
JwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnRW1wdHkgU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQot
Ci0gICAgICAgIGZvciAoY2FzZV9uYW1lLCByZXF1ZXN0X2RlZiwgZXhwZWN0ZWRfc3RhdHVzLAot
ICAgICAgICAgICAgIGV4cGVjdF9oYW5kc2hha2VfZXhjZXB0aW9uKSBpbiBiYWRfY2FzZXM6Ci0g
ICAgICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAg
ICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hl
cigpKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGhhbmRzaGFrZXIuZG9faGFu
ZHNoYWtlKCkKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ05vIGV4Y2VwdGlvbiB0aHJvd24g
Zm9yIFwnJXNcJyBjYXNlJyAlIGNhc2VfbmFtZSkKLSAgICAgICAgICAgIGV4Y2VwdCBIYW5kc2hh
a2VFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0
X2hhbmRzaGFrZV9leGNlcHRpb24pCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
eHBlY3RlZF9zdGF0dXMsIGUuc3RhdHVzKQotICAgICAgICAgICAgZXhjZXB0IFZlcnNpb25FeGNl
cHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGV4cGVjdF9oYW5k
c2hha2VfZXhjZXB0aW9uKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5p
dHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5
YmkwMC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNmOWYyN2NhMmQ5NDIxYjIz
MDE1ZjU4Yzg5M2FjZjFkYzAwOWRlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNTE2ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5
cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIGhhbmRzaGFrZS5oeWJpMDAgbW9kdWxlLiIiIgot
Ci0KLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMu
cGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJpMDAgaW1wb3J0IEhhbmRzaGFrZXIKLWZyb20gbW9k
X3B5d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJpMDAgaW1wb3J0IF92YWxpZGF0ZV9zdWJwcm90b2Nv
bAotZnJvbSB0ZXN0IGltcG9ydCBtb2NrCi0KLQotX1RFU1RfS0VZMSA9ICc0IEAxICA0NjU0NnhX
JTBsIDEgNScKLV9URVNUX0tFWTIgPSAnMTI5OTggNSBZMyAxICAuUDAwJwotX1RFU1RfS0VZMyA9
ICdebjpkc1s0VScKLV9URVNUX0NIQUxMRU5HRV9SRVNQT05TRSA9ICc4aktTXCd5OkcqQ28sV3hh
LScKLQotCi1fR09PRF9SRVFVRVNUID0gKAotICAgIDgwLAotICAgICdHRVQnLAotICAgICcvZGVt
bycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICdDb25u
ZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1Rf
S0VZMiwKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAg
ICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6
IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAg
ICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09EX1JFUVVFU1RfQ0FQSVRBTElaRURfSEVBREVS
X1ZBTFVFUyA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAg
ICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVUEdS
QURFJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAg
ICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdyYWRlJzog
J1dFQlNPQ0tFVCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAot
ICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVT
VF9LRVkzKQotCi1fR09PRF9SRVFVRVNUX0NBU0VfTUlYRURfSEVBREVSX05BTUVTID0gKAotICAg
IDgwLAotICAgICdHRVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnaE9zVCc6ICdl
eGFtcGxlLmNvbScsCi0gICAgICAgICdjT25OZUN0SW9OJzogJ1VwZ3JhZGUnLAotICAgICAgICAn
c0VjLXdFYnNPY0tlVC1rRXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ3NFYy13RWJzT2NLZVQt
cFJvVG9Db0wnOiAnc2FtcGxlJywKLSAgICAgICAgJ3VQZ1JhRGUnOiAnV2ViU29ja2V0JywKLSAg
ICAgICAgJ3NFYy13RWJzT2NLZVQta0V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdvUmlHaU4n
OiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09E
X1JFU1BPTlNFX0RFRkFVTFRfUE9SVCA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQ
cm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAg
ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjog
d3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0
dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBs
ZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9H
T09EX1JFU1BPTlNFX1NFQ1VSRSA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90
b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdD
b25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3Nz
Oi8vZXhhbXBsZS5jb20vZGVtb1xyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRw
Oi8vZXhhbXBsZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBzYW1wbGVc
clxuJwotICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09P
RF9SRVFVRVNUX05PTkRFRkFVTFRfUE9SVCA9ICgKLSAgICA4MDgxLAotICAgICdHRVQnLAotICAg
ICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbTo4MDgxJywKLSAg
ICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtl
eTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1w
bGUnLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNv
Y2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBs
ZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQotX0dPT0RfUkVTUE9OU0VfTk9OREVG
QVVMVF9QT1JUID0gKAotICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRz
aGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246
IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUu
Y29tOjgwODEvZGVtb1xyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhh
bXBsZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwot
ICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVNQ
T05TRV9TRUNVUkVfTk9OREVGID0gKAotICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3Rv
Y29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nv
bm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3c3M6
Ly9leGFtcGxlLmNvbTo4MDgxL2RlbW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjog
aHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2Ft
cGxlXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQot
X0dPT0RfUkVRVUVTVF9OT19QUk9UT0NPTCA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAn
L2RlbW8nLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAn
Q29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9U
RVNUX0tFWTIsCi0gICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdTZWMt
V2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9l
eGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVNQT05TRV9O
T19QUk9UT0NPTCA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5k
c2hha2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9u
OiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3M6Ly9leGFtcGxl
LmNvbS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxl
LmNvbVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0K
LV9HT09EX1JFUVVFU1RfV0lUSF9PUFRJT05BTF9IRUFERVJTID0gKAotICAgIDgwLAotICAgICdH
RVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScs
Ci0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tl
dC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ0VtcHR5VmFsdWUnOiAnJywKLSAgICAgICAg
J1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgJ0FLZXknOiAnQVZh
bHVlJywKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgJ1NlYy1XZWJT
b2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1w
bGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0KLSMgVE9ETyh0eW9zaGlubyk6IElu
Y2x1ZGUgXHIgXG4gaW4ga2V5MywgY2hhbGxlbmdlIHJlc3BvbnNlLgotCi1fR09PRF9SRVFVRVNU
X1dJVEhfTk9OUFJJTlRBQkxFX0tFWSA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2Rl
bW8nLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29u
bmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6ICd5ICBS
MiA0OCBRMU80ICBlfEJWMyBpNSAxICB1LSA2NScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LVBy
b3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAg
ICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiAnMzYgNyAgIDc0IGkgIDkyIDJcJ20gOSAwRycsCi0g
ICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgICcnLmpv
aW4obWFwKGNociwgWzB4MDEsIDB4ZDEsIDB4ZGQsIDB4M2IsIDB4ZDEsIDB4NTYsIDB4NjMsIDB4
ZmZdKSkpCi0KLV9HT09EX1JFU1BPTlNFX1dJVEhfTk9OUFJJTlRBQkxFX0tFWSA9ICgKLSAgICAn
SFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdVcGdy
YWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAn
U2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKLSAgICAn
U2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1X
ZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICAnJy5qb2lu
KG1hcChjaHIsIFsweDBiLCAweDk5LCAweGZhLCAweDU1LCAweGJkLCAweDAxLCAweDIzLCAweDdi
LAotICAgICAgICAgICAgICAgICAgICAgIDB4NDUsIDB4YTIsIDB4ZjEsIDB4ZDAsIDB4ODcsIDB4
OGEsIDB4ZWUsIDB4ZWJdKSkpCi0KLV9HT09EX1JFUVVFU1RfV0lUSF9RVUVSWV9QQVJUID0gKAot
ICAgIDgwLAotICAgICdHRVQnLAotICAgICcvZGVtbz9lPW1jMicsCi0gICAgewotICAgICAgICAn
SG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAot
ICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29j
a2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAg
ICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tFWTMp
Ci0KLV9HT09EX1JFU1BPTlNFX1dJVEhfUVVFUllfUEFSVCA9ICgKLSAgICAnSFRUUC8xLjEgMTAx
IFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJTb2Nr
ZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tl
dC1Mb2NhdGlvbjogd3M6Ly9leGFtcGxlLmNvbS9kZW1vP2U9bWMyXHJcbicKLSAgICAnU2VjLVdl
YlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVO
R0VfUkVTUE9OU0UpCi0KLV9CQURfUkVRVUVTVFMgPSAoCi0gICAgKCAgIyBIVFRQIHJlcXVlc3QK
LSAgICAgICAgODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7
Ci0gICAgICAgICAgICAnSG9zdCc6ICd3d3cuZ29vZ2xlLmNvbScsCi0gICAgICAgICAgICAnVXNl
ci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAxMC41
OycKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJyBlbi1VUzsgcnY6MS45LjEuMykgR2Vja28v
MjAwOTA4MjQgRmlyZWZveC8zLjUuMycKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJyBHVEI2
IEdUQkEnLAotICAgICAgICAgICAgJ0FjY2VwdCc6ICd0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0
bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSwnCi0gICAgICAgICAgICAgICAgICAgICAgJyov
KjtxPTAuOCcsCi0gICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogJ2VuLXVzLGVuO3E9MC41
JywKLSAgICAgICAgICAgICdBY2NlcHQtRW5jb2RpbmcnOiAnZ3ppcCxkZWZsYXRlJywKLSAgICAg
ICAgICAgICdBY2NlcHQtQ2hhcnNldCc6ICdJU08tODg1OS0xLHV0Zi04O3E9MC43LCo7cT0wLjcn
LAotICAgICAgICAgICAgJ0tlZXAtQWxpdmUnOiAnMzAwJywKLSAgICAgICAgICAgICdDb25uZWN0
aW9uJzogJ2tlZXAtYWxpdmUnLAotICAgICAgICB9KSwKLSAgICAoICAjIFdyb25nIG1ldGhvZAot
ICAgICAgICA4MCwKLSAgICAgICAgJ1BPU1QnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7
Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICAgICAnQ29ubmVj
dGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVT
VF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywK
LSAgICAgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICAgICAnU2VjLVdl
YlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDov
L2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAg
IyBNaXNzaW5nIFVwZ3JhZGUKLSAgICAgICAgODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAn
L2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0g
ICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMtV2Vi
U29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJv
dG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVT
VF9LRVkxLAotICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAg
ICAgICB9LAotICAgICAgICBfVEVTVF9LRVkzKSwKLSAgICAoICAjIFdyb25nIFVwZ3JhZGUKLSAg
ICAgICAgODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0g
ICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICAgICAnQ29ubmVjdGlv
bic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9L
RVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAg
ICAgICAgICAgICdVcGdyYWRlJzogJ05vbldlYlNvY2tldCcsCi0gICAgICAgICAgICAnU2VjLVdl
YlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDov
L2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAg
IyBFbXB0eSBXZWJTb2NrZXQtUHJvdG9jb2wKLSAgICAgICAgODAsCi0gICAgICAgICdHRVQnLAot
ICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxl
LmNvbScsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAg
ICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJT
b2NrZXQtUHJvdG9jb2wnOiAnJywKLSAgICAgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcs
Ci0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAg
ICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAgICAg
X1RFU1RfS0VZMyksCi0gICAgKCAgIyBXcm9uZyBwb3J0IG51bWJlciBmb3JtYXQKLSAgICAgICAg
ODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAg
ICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbToweDUwJywKLSAgICAgICAgICAgICdDb25uZWN0aW9u
JzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tF
WTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAg
ICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgICAgICdTZWMtV2ViU29j
a2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhh
bXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9LRVkzKSwKLSAgICAoICAjIEhl
YWRlci9jb25uZWN0aW9uIHBvcnQgbWlzbWF0Y2gKLSAgICAgICAgODA4MCwKLSAgICAgICAgJ0dF
VCcsCi0gICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4
YW1wbGUuY29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAn
V2ViU29ja2V0JywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkx
LAotICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9
LAotICAgICAgICBfVEVTVF9LRVkzKSwKLSAgICAoICAjIElsbGVnYWwgV2ViU29ja2V0LVByb3Rv
Y29sCi0gICAgICAgIDgwLAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAg
ICAgewotICAgICAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nv
bm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzog
X1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ2lsbGVn
YWxceDA5cHJvdG9jb2wnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAg
ICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAg
J09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVT
VF9LRVkzKSwKLSkKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKToKLSAgICBk
YXRhID0gJycKLSAgICBpZiBsZW4ocmVxdWVzdF9kZWYpID4gNDoKLSAgICAgICAgZGF0YSA9IHJl
cXVlc3RfZGVmWzRdCi0gICAgY29ubiA9IG1vY2suTW9ja0Nvbm4oZGF0YSkKLSAgICBjb25uLmxv
Y2FsX2FkZHIgPSAoJzAuMC4wLjAnLCByZXF1ZXN0X2RlZlswXSkKLSAgICByZXR1cm4gbW9jay5N
b2NrUmVxdWVzdCgKLSAgICAgICAgbWV0aG9kPXJlcXVlc3RfZGVmWzFdLAotICAgICAgICB1cmk9
cmVxdWVzdF9kZWZbMl0sCi0gICAgICAgIGhlYWRlcnNfaW49cmVxdWVzdF9kZWZbM10sCi0gICAg
ICAgIGNvbm5lY3Rpb249Y29ubikKLQotCi1kZWYgX2NyZWF0ZV9nZXRfbWVtb3JpemVkX2xpbmVz
KGxpbmVzKToKLSAgICAiIiJDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBnaXZl
biBzdHJpbmcuIiIiCi0KLSAgICBkZWYgZ2V0X21lbW9yaXplZF9saW5lcygpOgotICAgICAgICBy
ZXR1cm4gbGluZXMKLSAgICByZXR1cm4gZ2V0X21lbW9yaXplZF9saW5lcwotCi0KLWRlZiBfY3Jl
YXRlX3JlcXVlc3RzX3dpdGhfbGluZXMocmVxdWVzdF9saW5lc19zZXQpOgotICAgIHJlcXVlc3Rz
ID0gW10KLSAgICBmb3IgbGluZXMgaW4gcmVxdWVzdF9saW5lc19zZXQ6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVCkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLmdldF9tZW1vcml6ZWRfbGluZXMgPSBfY3JlYXRlX2dldF9tZW1vcml6ZWRfbGluZXMo
Ci0gICAgICAgICAgICAgICAgbGluZXMpCi0gICAgICAgIHJlcXVlc3RzLmFwcGVuZChyZXF1ZXN0
KQotICAgIHJldHVybiByZXF1ZXN0cwotCi0KLWNsYXNzIEh5QmkwMEhhbmRzaGFrZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9kZWZhdWx0X3Bv
cnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVT
VCkKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlz
cGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfREVGQVVMVF9QT1JULAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnL2RlbW8nLCByZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdodHRwOi8vZXhhbXBsZS5jb20nLCByZXF1ZXN0LndzX29yaWdpbikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnd3M6Ly9leGFtcGxlLmNvbS9kZW1vJywgcmVxdWVz
dC53c19sb2NhdGlvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc2FtcGxlJywgcmVxdWVz
dC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9jYXBpdGFsaXplZF9o
ZWFkZXJfdmFsdWVzKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9H
T09EX1JFUVVFU1RfQ0FQSVRBTElaRURfSEVBREVSX1ZBTFVFUykKLSAgICAgICAgaGFuZHNoYWtl
ciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBo
YW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0Rf
UkVTUE9OU0VfREVGQVVMVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9j
YXNlX21peGVkX2hlYWRlcl9uYW1lcyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdChfR09PRF9SRVFVRVNUX0NBU0VfTUlYRURfSEVBREVSX05BTUVTKQotICAgICAgICBo
YW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0g
ICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChfR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfZ29vZF9y
ZXF1ZXN0X3NlY3VyZV9kZWZhdWx0X3BvcnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmxv
Y2FsX2FkZHIgPSAoJzAuMC4wLjAnLCA0NDMpCi0gICAgICAgIHJlcXVlc3QuaXNfaHR0cHNfID0g
VHJ1ZQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tE
aXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9TRUNVUkUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRl
c3RfZ29vZF9yZXF1ZXN0X25vbmRlZmF1bHRfcG9ydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX05PTkRFRkFVTFRfUE9SVCkKLSAgICAgICAg
aGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNo
YWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BP
TlNFX05PTkRFRkFVTFRfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBs
ZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfc2Vj
dXJlX25vbl9kZWZhdWx0X3BvcnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoX0dPT0RfUkVRVUVTVF9OT05ERUZBVUxUX1BPUlQpCi0gICAgICAgIHJlcXVlc3QuaXNf
aHR0cHNfID0gVHJ1ZQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBt
b2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9TRUNVUkVfTk9OREVGLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEo
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2Nv
bCkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9kZWZhdWx0X25vX3Byb3RvY29sKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfTk9fUFJP
VE9DT0wpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9j
a0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX05PX1BST1RPQ09MLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVm
IHRlc3RfZ29vZF9yZXF1ZXN0X29wdGlvbmFsX2hlYWRlcnMoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9XSVRIX09QVElPTkFMX0hFQURFUlMp
Ci0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3Bh
dGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdBVmFsdWUnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
aGVhZGVyc19pblsnQUtleSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc19pblsnRW1wdHlWYWx1ZSddKQotCi0g
ICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X3dpdGhfbm9ucHJpbnRhYmxlX2tleShzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX1dJVEhfTk9OUFJJ
TlRBQkxFX0tFWSkKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9j
ay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfV0lUSF9OT05QUklOVEFCTEVf
S0VZLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19w
cm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF93aXRoX3F1ZXJ5X3BhcnQoc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9XSVRI
X1FVRVJZX1BBUlQpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1v
Y2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1dJVEhfUVVFUllfUEFSVCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3dzOi8vZXhhbXBsZS5jb20vZGVtbz9lPW1j
MicsIHJlcXVlc3Qud3NfbG9jYXRpb24pCi0KLSAgICBkZWYgdGVzdF9iYWRfcmVxdWVzdHMoc2Vs
Zik6Ci0gICAgICAgIGZvciByZXF1ZXN0IGluIG1hcChfY3JlYXRlX3JlcXVlc3QsIF9CQURfUkVR
VUVTVFMpOgotICAgICAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9j
ay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNo
YWtlRXhjZXB0aW9uLCBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSkKLQotCi1jbGFzcyBIeUJpMDBW
YWxpZGF0ZVN1YnByb3RvY29sVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3Rf
dmFsaWRhdGVfc3VicHJvdG9jb2woc2VsZik6Ci0gICAgICAgICMgc2hvdWxkIHN1Y2NlZWQuCi0g
ICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCgnc2FtcGxlJykKLSAgICAgICAgX3ZhbGlkYXRl
X3N1YnByb3RvY29sKCdTYW1wbGUnKQotICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2woJ3Nh
bXBsZVx4N2Vwcm90b2NvbCcpCi0gICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCgnc2FtcGxl
XHgyMHByb3RvY29sJykKLQotICAgICAgICAjIHNob3VsZCBmYWlsLgotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IF92YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAnc2FtcGxlXHgxOXByb3RvY29sJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
SGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBfdmFsaWRhdGVf
c3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDdmcHJvdG9j
b2wnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIyAiSmFwYW4iIGluIEphcGFuZXNlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIHUnXHU2NWU1XHU2NzJjJykKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgot
ICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2h0dHBf
aGVhZGVyX3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzNmRjNTdjMzcz
MTA3MWZlMjkwMTkxOWUzM2YyNGMxYjU1OWY2MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5weQor
KysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwot
IyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIGh0dHBfaGVhZGVyX3V0aWwgbW9kdWxl
LiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
aHR0cF9oZWFkZXJfdXRpbAotCi0KLWNsYXNzIFVuaXRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LSAgICAiIiJBIHVuaXR0ZXN0IGZvciBodHRwX2hlYWRlcl91dGlsIG1vZHVsZS4iIiIKLQotICAg
IGRlZiB0ZXN0X3BhcnNlX3JlbGF0aXZlX3VyaShzZWxmKToKLSAgICAgICAgaG9zdCwgcG9ydCwg
cmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgnL3dzL3Rlc3QnKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgcG9ydCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL3dzL3Rlc3QnLCByZXNvdXJj
ZSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX2Fic29sdXRlX3VyaShzZWxmKToKLSAgICAgICAgaG9z
dCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgKLSAgICAgICAg
ICAgICd3czovL2xvY2FsaG9zdDoxMDA4MC93cy90ZXN0JykKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnbG9jYWxob3N0JywgaG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMDA4MCwg
cG9ydCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL3dzL3Rlc3QnLCByZXNvdXJjZSkKLQot
ICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJp
KAotICAgICAgICAgICAgJ3dzOi8vZXhhbXBsZS5jb20vd3MvdGVzdCcpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ2V4YW1wbGUuY29tJywgaG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCg4MCwgcG9ydCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL3dzL3Rlc3QnLCByZXNvdXJj
ZSkKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFy
c2VfdXJpKAotICAgICAgICAgICAgJ3dzczovL2V4YW1wbGUuY29tLycpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ2V4YW1wbGUuY29tJywgaG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCg0NDMsIHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy8nLCByZXNvdXJjZSkKLQot
ICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJp
KAotICAgICAgICAgICAgJ3dzOi8vZXhhbXBsZS5jb206ODA4MCcpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ2V4YW1wbGUuY29tJywgaG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4
MDgwLCBwb3J0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvJywgcmVzb3VyY2UpCi0KLSAg
ICBkZWYgdGVzdF9wYXJzZV9pbnZhbGlkX3VyaShzZWxmKToKLSAgICAgICAgaG9zdCwgcG9ydCwg
cmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgnd3M6Ly8vJykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXNvdXJjZSkKLQotICAgICAgICBob3N0LCBwb3J0LCBy
ZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKCd3czovL2xvY2FsaG9zdDonKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlc291cmNlKQotCi0gICAgICAgIGhvc3Qs
IHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJ3dzOi8vbG9jYWxo
b3N0Oi93cycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVzb3VyY2UpCi0KLQot
aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZp
OnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxl
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhmMWI4ZWVmNDMzNzhhOWIwMDYyNWYyMjBjOTdmZTIyZjc0MGE4ZjcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RfbWVtb3JpemluZ2ZpbGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3Ig
bWVtb3JpemluZ2ZpbGUgbW9kdWxlLiIiIgotCi0KLWltcG9ydCBTdHJpbmdJTwotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0
ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
bWVtb3JpemluZ2ZpbGUKLQotCi1jbGFzcyBVdGlsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g
ICAgIiIiQSB1bml0dGVzdCBmb3IgbWVtb3JpemluZ2ZpbGUgbW9kdWxlLiIiIgotCi0gICAgZGVm
IGNoZWNrKHNlbGYsIG1lbW9yaXppbmdfZmlsZSwgbnVtX3JlYWQsIGV4cGVjdGVkX2xpc3QpOgot
ICAgICAgICBmb3IgdW51c2VkIGluIHJhbmdlKG51bV9yZWFkKToKLSAgICAgICAgICAgIG1lbW9y
aXppbmdfZmlsZS5yZWFkbGluZSgpCi0gICAgICAgIGFjdHVhbF9saXN0ID0gbWVtb3JpemluZ19m
aWxlLmdldF9tZW1vcml6ZWRfbGluZXMoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihl
eHBlY3RlZF9saXN0KSwgbGVuKGFjdHVhbF9saXN0KSkKLSAgICAgICAgZm9yIGV4cGVjdGVkLCBh
Y3R1YWwgaW4gemlwKGV4cGVjdGVkX2xpc3QsIGFjdHVhbF9saXN0KToKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKLQotICAgIGRlZiBjaGVja193aXRoX3Np
emUoc2VsZiwgbWVtb3JpemluZ19maWxlLCByZWFkX3NpemUsIGV4cGVjdGVkX2xpc3QpOgotICAg
ICAgICByZWFkX2xpc3QgPSBbXQotICAgICAgICByZWFkX2xpbmUgPSAnJwotICAgICAgICB3aGls
ZSBUcnVlOgotICAgICAgICAgICAgbGluZSA9IG1lbW9yaXppbmdfZmlsZS5yZWFkbGluZShyZWFk
X3NpemUpCi0gICAgICAgICAgICBsaW5lX2xlbmd0aCA9IGxlbihsaW5lKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGxpbmVfbGVuZ3RoIDw9IHJlYWRfc2l6ZSkKLSAgICAgICAgICAgIGlm
IGxpbmVfbGVuZ3RoID09IDA6Ci0gICAgICAgICAgICAgICAgaWYgcmVhZF9saW5lICE9ICcnOgot
ICAgICAgICAgICAgICAgICAgICByZWFkX2xpc3QuYXBwZW5kKHJlYWRfbGluZSkKLSAgICAgICAg
ICAgICAgICBicmVhawotICAgICAgICAgICAgcmVhZF9saW5lICs9IGxpbmUKLSAgICAgICAgICAg
IGlmIGxpbmVbbGluZV9sZW5ndGggLSAxXSA9PSAnXG4nOgotICAgICAgICAgICAgICAgIHJlYWRf
bGlzdC5hcHBlbmQocmVhZF9saW5lKQotICAgICAgICAgICAgICAgIHJlYWRfbGluZSA9ICcnCi0g
ICAgICAgIGFjdHVhbF9saXN0ID0gbWVtb3JpemluZ19maWxlLmdldF9tZW1vcml6ZWRfbGluZXMo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihleHBlY3RlZF9saXN0KSwgbGVuKGFjdHVh
bF9saXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlzdCksIGxl
bihyZWFkX2xpc3QpKQotICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCwgcmVhZCBpbiB6aXAo
ZXhwZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWFkX2xpc3QpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
eHBlY3RlZCwgYWN0dWFsKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwg
cmVhZCkKLQotICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAgICAg
IG1lbW9yaXppbmdfZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxlKFN0cmluZ0lP
LlN0cmluZ0lPKAotICAgICAgICAgICAgICAgICdIZWxsb1xuV29ybGRcbldlbGNvbWUnKSkKLSAg
ICAgICAgc2VsZi5jaGVjayhtZW1vcml6aW5nX2ZpbGUsIDMsIFsnSGVsbG9cbicsICdXb3JsZFxu
JywgJ1dlbGNvbWUnXSkKLQotICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXNfbGltaXRf
bWVtb3JpemVkX2xpbmVzKHNlbGYpOgotICAgICAgICBtZW1vcml6aW5nX2ZpbGUgPSBtZW1vcml6
aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygKLSAgICAgICAgICAgICAg
ICAnSGVsbG9cbldvcmxkXG5XZWxjb21lJyksIDIpCi0gICAgICAgIHNlbGYuY2hlY2sobWVtb3Jp
emluZ19maWxlLCAzLCBbJ0hlbGxvXG4nLCAnV29ybGRcbiddKQotCi0gICAgZGVmIHRlc3RfZ2V0
X21lbW9yaXplZF9saW5lc19lbXB0eV9maWxlKHNlbGYpOgotICAgICAgICBtZW1vcml6aW5nX2Zp
bGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygKLSAg
ICAgICAgICAgICAgICAnJykpCi0gICAgICAgIHNlbGYuY2hlY2sobWVtb3JpemluZ19maWxlLCAx
MCwgW10pCi0KLSAgICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVzX3dpdGhfc2l6ZShzZWxm
KToKLSAgICAgICAgZm9yIHNpemUgaW4gcmFuZ2UoMSwgMTApOgotICAgICAgICAgICAgbWVtb3Jp
emluZ19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5n
SU8oCi0gICAgICAgICAgICAgICAgJ0hlbGxvXG5Xb3JsZFxuV2VsY29tZScpKQotICAgICAgICAg
ICAgc2VsZi5jaGVja193aXRoX3NpemUobWVtb3JpemluZ19maWxlLCBzaXplLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWydIZWxsb1xuJywgJ1dvcmxkXG4nLCAnV2VsY29tZSdd
KQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbW9jay5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0X21vY2sucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdk
YzIzYTczZDhmYjFhMDdhZWIzZTVhZTk0MDJjYzg2YjhmY2MzNjYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbW9jay5weQorKysg
L2Rldi9udWxsCkBAIC0xLDE0NSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMg
Q29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBtb2NrIG1vZHVsZS4iIiIKLQotCi1pbXBv
cnQgUXVldWUKLWltcG9ydCB0aHJlYWRpbmcKLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0
X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1v
ZHVsZS4KLQotZnJvbSB0ZXN0IGltcG9ydCBtb2NrCi0KLQotY2xhc3MgTW9ja0Nvbm5UZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBNb2NrQ29ubiBjbGFzcy4i
IiIKLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5fY29ubiA9IG1vY2suTW9j
a0Nvbm4oJ0FCQ1xyXG5ERUZHXHJcblxyXG5ISUpLJykKLQotICAgIGRlZiB0ZXN0X3JlYWRsaW5l
KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdBQkNcclxuJywgc2VsZi5fY29ubi5y
ZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdERUZHXHJcbicsIHNlbGYuX2Nv
bm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHJcbicsIHNlbGYuX2Nv
bm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSElKSycsIHNlbGYuX2Nv
bm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgc2VsZi5fY29ubi5y
ZWFkbGluZSgpKQotCi0gICAgZGVmIHRlc3RfcmVhZChzZWxmKToKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnQUJDXHJcbkQnLCBzZWxmLl9jb25uLnJlYWQoNikpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ0VGR1xyXG5cclxuSEknLCBzZWxmLl9jb25uLnJlYWQoOSkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ0pLJywgc2VsZi5fY29ubi5yZWFkKDEwKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnJywgc2VsZi5fY29ubi5yZWFkKDEwKSkKLQotICAgIGRlZiB0ZXN0X3JlYWRf
YW5kX3JlYWRsaW5lKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdBQkNcclxuRCcs
IHNlbGYuX2Nvbm4ucmVhZCg2KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnRUZHXHJcbics
IHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHJcbkhJ
SksnLCBzZWxmLl9jb25uLnJlYWQoOSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIHNl
bGYuX2Nvbm4ucmVhZGxpbmUoKSkKLQotICAgIGRlZiB0ZXN0X3dyaXRlKHNlbGYpOgotICAgICAg
ICBzZWxmLl9jb25uLndyaXRlKCdIZWxsb1xyXG4nKQotICAgICAgICBzZWxmLl9jb25uLndyaXRl
KCdXb3JsZFxyXG4nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsb1xyXG5Xb3JsZFxy
XG4nLCBzZWxmLl9jb25uLndyaXR0ZW5fZGF0YSgpKQotCi0KLWNsYXNzIE1vY2tCbG9ja2luZ0Nv
bm5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBNb2NrQmxv
Y2tpbmdDb25uIGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3RfcmVhZChzZWxmKToKLSAgICAgICAg
IiIiVGVzdHMgdGhhdCBkYXRhIHB1dCB0byBNb2NrQmxvY2tpbmdDb25uIGJ5IHB1dF9ieXRlcyBt
ZXRob2QgY2FuIGJlCi0gICAgICAgIHJlYWQgZnJvbSBpdC4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgY2xhc3MgTGluZVJlYWRlcih0aHJlYWRpbmcuVGhyZWFkKToKLSAgICAgICAgICAgICIiIkEg
dGVzdCBjbGFzcyB0aGF0IGxhdW5jaGVzIGEgdGhyZWFkLCBjYWxscyByZWFkbGluZSBvbiB0aGUK
LSAgICAgICAgICAgIHNwZWNpZmllZCBjb25uIHJlcGVhdGVkbHkgYW5kIHB1dHMgdGhlIHJlYWQg
ZGF0YSB0byB0aGUgc3BlY2lmaWVkCi0gICAgICAgICAgICBxdWV1ZS4KLSAgICAgICAgICAgICIi
IgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgY29ubiwgcXVldWUpOgotICAgICAg
ICAgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAgICAgICAgICAg
ICBzZWxmLl9xdWV1ZSA9IHF1ZXVlCi0gICAgICAgICAgICAgICAgc2VsZi5fY29ubiA9IGNvbm4K
LSAgICAgICAgICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotICAgICAgICAgICAgICAgIHNl
bGYuc3RhcnQoKQotCi0gICAgICAgICAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICAgICAgICAg
IHdoaWxlIFRydWU6Ci0gICAgICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9jb25uLnJlYWRs
aW5lKCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcXVldWUucHV0KGRhdGEpCi0KLSAgICAg
ICAgY29ubiA9IG1vY2suTW9ja0Jsb2NraW5nQ29ubigpCi0gICAgICAgIHF1ZXVlID0gUXVldWUu
UXVldWUoKQotICAgICAgICByZWFkZXIgPSBMaW5lUmVhZGVyKGNvbm4sIHF1ZXVlKQotICAgICAg
ICBzZWxmLmZhaWxVbmxlc3MocXVldWUuZW1wdHkoKSkKLSAgICAgICAgY29ubi5wdXRfYnl0ZXMo
J0ZvbyBiYXJcclxuJykKLSAgICAgICAgcmVhZCA9IHF1ZXVlLmdldCgpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ0ZvbyBiYXJcclxuJywgcmVhZCkKLQotCi1jbGFzcyBNb2NrVGFibGVUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBNb2NrVGFibGUgY2xh
c3MuIiIiCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVfZnJvbV9kaWN0KHNlbGYpOgotICAgICAgICB0
YWJsZSA9IG1vY2suTW9ja1RhYmxlKHsnS2V5JzogJ1ZhbHVlJ30pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLRVknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnVmFsdWUnLCB0YWJsZVsna2V5J10pCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVfZnJvbV9s
aXN0KHNlbGYpOgotICAgICAgICB0YWJsZSA9IG1vY2suTW9ja1RhYmxlKFsoJ0tleScsICdWYWx1
ZScpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlWydrZXknXSkKLQotICAg
IGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX3R1cGxlKHNlbGYpOgotICAgICAgICB0YWJsZSA9IG1vY2su
TW9ja1RhYmxlKCgoJ0tleScsICdWYWx1ZScpLCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1ZhbHVlJywgdGFibGUuZ2V0KCdLRVknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFs
dWUnLCB0YWJsZVsna2V5J10pCi0KLSAgICBkZWYgdGVzdF9zZXRfYW5kX2dldChzZWxmKToKLSAg
ICAgICAgdGFibGUgPSBtb2NrLk1vY2tUYWJsZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgdGFibGUuZ2V0KCdLZXknKSkKLSAgICAgICAgdGFibGVbJ0tleSddID0gJ1ZhbHVlJwot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS2V5JykpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdrZXknKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlWydLZXknXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnVmFsdWUnLCB0YWJsZVsna2V5J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1Zh
bHVlJywgdGFibGVbJ0tFWSddKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAg
dW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdF9tc2d1dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXNndXRpbC5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjM0NzM1YzYzMDQ3ZDJlZGIyMzhjYjUyNTVhZDQ3NGEy
ZTRkMGE4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTM0NyArMCwwIEBA
Ci0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3Rz
IGZvciBtc2d1dGlsIG1vZHVsZS4iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVu
Y3Rpb24KLQotCi1pbXBvcnQgYXJyYXkKLWltcG9ydCBRdWV1ZQotaW1wb3J0IHJhbmRvbQotaW1w
b3J0IHN0cnVjdAotaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgemxpYgotCi1pbXBvcnQgc2V0X3N5
c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVs
ZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBQZXJNZXNzYWdlRGVmbGF0ZUV4
dGVuc2lvblByb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwKLWZy
b20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgSW52YWxpZFVURjhFeGNlcHRpb24KLWZy
b20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0
cmVhbSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0
aWwKLWZyb20gdGVzdCBpbXBvcnQgbW9jawotCi0KLSMgV2UgdXNlIG9uZSBmaXhlZCBub25jZSBm
b3IgdGVzdGluZyBpbnN0ZWFkIG9mIGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSBQUk5HLgotX01B
U0tJTkdfTk9OQ0UgPSAnQUJDRCcKLQotCi1kZWYgX21hc2tfaHliaShmcmFtZSk6Ci0gICAgZnJh
bWVfa2V5ID0gbWFwKG9yZCwgX01BU0tJTkdfTk9OQ0UpCi0gICAgZnJhbWVfa2V5X2xlbiA9IGxl
bihmcmFtZV9rZXkpCi0gICAgcmVzdWx0ID0gYXJyYXkuYXJyYXkoJ0InKQotICAgIHJlc3VsdC5m
cm9tc3RyaW5nKGZyYW1lKQotICAgIGNvdW50ID0gMAotICAgIGZvciBpIGluIHhyYW5nZShsZW4o
cmVzdWx0KSk6Ci0gICAgICAgIHJlc3VsdFtpXSBePSBmcmFtZV9rZXlbY291bnRdCi0gICAgICAg
IGNvdW50ID0gKGNvdW50ICsgMSkgJSBmcmFtZV9rZXlfbGVuCi0gICAgcmV0dXJuIF9NQVNLSU5H
X05PTkNFICsgcmVzdWx0LnRvc3RyaW5nKCkKLQotCi1kZWYgX2luc3RhbGxfZXh0ZW5zaW9uX3By
b2Nlc3Nvcihwcm9jZXNzb3IsIHJlcXVlc3QsIHN0cmVhbV9vcHRpb25zKToKLSAgICByZXNwb25z
ZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICBpZiByZXNwb25zZSBp
cyBub3QgTm9uZToKLSAgICAgICAgcHJvY2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVh
bV9vcHRpb25zKQotICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzLmFwcGVu
ZChwcm9jZXNzb3IpCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAg
ICAgIHJlYWRfZGF0YSwKLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PU5vbmUsCi0gICAg
ICAgIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PU5vbmUpOgotICAgIHJlcSA9IG1vY2suTW9j
a1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCcnLmpvaW4ocmVhZF9kYXRhKSkpCi0g
ICAgcmVxLndzX3ZlcnNpb24gPSBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVAotICAgIHJlcS53
c19leHRlbnNpb25fcHJvY2Vzc29ycyA9IFtdCi0KLSAgICBwcm9jZXNzb3IgPSBOb25lCi0gICAg
aWYgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0IGlzIG5vdCBOb25lOgotICAgICAgICBwcm9jZXNzb3Ig
PSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0KQot
ICAgIGVsaWYgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAg
IHByb2Nlc3NvciA9IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAg
ICAgICAgICAgIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0KQotCi0gICAgc3RyZWFtX29wdGlv
bnMgPSBTdHJlYW1PcHRpb25zKCkKLSAgICBpZiBwcm9jZXNzb3IgaXMgbm90IE5vbmU6Ci0gICAg
ICAgIF9pbnN0YWxsX2V4dGVuc2lvbl9wcm9jZXNzb3IocHJvY2Vzc29yLCByZXEsIHN0cmVhbV9v
cHRpb25zKQotICAgIHJlcS53c19zdHJlYW0gPSBTdHJlYW0ocmVxLCBzdHJlYW1fb3B0aW9ucykK
LQotICAgIHJldHVybiByZXEKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0KCpmcmFtZXMpOgotICAg
ICIiIkNyZWF0ZXMgTW9ja1JlcXVlc3QgdXNpbmcgZGF0YSBnaXZlbiBhcyBmcmFtZXMuCi0KLSAg
ICBmcmFtZXMgd2lsbCBiZSByZXR1cm5lZCBvbiBjYWxsaW5nIHJlcXVlc3QuY29ubmVjdGlvbi5y
ZWFkKCkgd2hlcmUgcmVxdWVzdAotICAgIGlzIE1vY2tSZXF1ZXN0IHJldHVybmVkIGJ5IHRoaXMg
ZnVuY3Rpb24uCi0gICAgIiIiCi0KLSAgICByZWFkX2RhdGEgPSBbXQotICAgIGZvciAoaGVhZGVy
LCBib2R5KSBpbiBmcmFtZXM6Ci0gICAgICAgIHJlYWRfZGF0YS5hcHBlbmQoaGVhZGVyICsgX21h
c2tfaHliaShib2R5KSkKLQotICAgIHJldHVybiBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRh
KHJlYWRfZGF0YSkKLQotCi1kZWYgX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCk6Ci0gICAgIiIi
Q3JlYXRlcyBNb2NrUmVxdWVzdC4KLQotICAgIERhdGEgd3JpdHRlbiB0byBhIE1vY2tSZXF1ZXN0
IGNhbiBiZSByZWFkIG91dCBieSBjYWxsaW5nCi0gICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpLgotICAgICIiIgotCi0gICAgcmVxID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0
aW9uPW1vY2suTW9ja0Jsb2NraW5nQ29ubigpKQotICAgIHJlcS53c192ZXJzaW9uID0gY29tbW9u
LlZFUlNJT05fSFlCSV9MQVRFU1QKLSAgICBzdHJlYW1fb3B0aW9ucyA9IFN0cmVhbU9wdGlvbnMo
KQotICAgIHJlcS53c19zdHJlYW0gPSBTdHJlYW0ocmVxLCBzdHJlYW1fb3B0aW9ucykKLSAgICBy
ZXR1cm4gcmVxCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KHJlYWRfZGF0YT0nJyk6
Ci0gICAgcmVxID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4ocmVh
ZF9kYXRhKSkKLSAgICByZXEud3Nfc3RyZWFtID0gU3RyZWFtSGl4aWU3NShyZXEpCi0gICAgcmV0
dXJuIHJlcQotCi0KLWRlZiBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3RfaGl4aWU3NSgpOgotICAg
IHJlcSA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tCbG9ja2luZ0Nvbm4o
KSkKLSAgICByZXEud3Nfc3RyZWFtID0gU3RyZWFtSGl4aWU3NShyZXEpCi0gICAgcmV0dXJuIHJl
cQotCi0KLWNsYXNzIEJhc2ljTWVzc2FnZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIi
IkJhc2ljIHRlc3RzIGZvciBTdHJlYW0uIiIiCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Uo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdceDgxXHgwNUhlbGxvJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQot
Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAxMjUKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWQp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDdkJyArIHBheWxvYWQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0g
ICAgZGVmIHRlc3Rfc2VuZF9tZWRpdW1fbWVzc2FnZShzZWxmKToKLSAgICAgICAgcGF5bG9hZCA9
ICdhJyAqIDEyNgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAg
bXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnXHg4MVx4N2VceDAwXHg3ZScgKyBwYXlsb2FkLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICBwYXls
b2FkID0gJ2EnICogKCgxIDw8IDE2KSAtIDEpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2FkKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHg3ZVx4ZmZceGZmJyArIHBheWxvYWQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQotCi0gICAgZGVmIHRlc3Rfc2VuZF9sYXJnZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBwYXls
b2FkID0gJ2EnICogKDEgPDwgMTYpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
KQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2FkKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHg3Zlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDBc
eDAwJyArIHBheWxvYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3VuaWNvZGUo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCB1J1x1NjVlNScpCi0gICAgICAgICMgVSs2NWU1IGlz
IGVuY29kZWQgYXMgZTYsOTcsYTUgaW4gVVRGLTgKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHg4MVx4MDNceGU2XHg5N1x4YTUnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9m
cmFnbWVudHMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAg
ICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBGYWxzZSkKLSAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJyAnLCBGYWxzZSkKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJywgRmFsc2UpCi0gICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICchJywgVHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnXHgwMVx4MDVIZWxsb1x4MDBceDAxIFx4MDBceDA1V29ybGRceDgwXHgwMSEnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkK
LQotICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRzX2ltbWVkaWF0ZV96ZXJvX3Rlcm1pbmF0aW9u
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvIFdvcmxkIScsIEZhbHNlKQotICAgICAg
ICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnJywgVHJ1ZSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHgwMVx4MGNIZWxsbyBXb3JsZCFceDgwXHgwMCcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVm
IHRlc3RfcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KAotICAgICAgICAgICAgKCdceDgxXHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg2Jywg
J1dvcmxkIScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEn
LCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBwYXlsb2FkID0g
J2EnICogMTI1Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHhmZCcs
IHBheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZWRpdW1fbWVz
c2FnZShzZWxmKToKLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqIDEyNgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ZmVceDAwXHg3ZScsIHBheWxvYWQpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVl
c3QpKQotCi0gICAgICAgIHBheWxvYWQgPSAnYScgKiAoKDEgPDwgMTYpIC0gMSkKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFceGZlXHhmZlx4ZmYnLCBwYXlsb2FkKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbGFyZ2VfbWVzc2FnZShzZWxmKToK
LSAgICAgICAgcGF5bG9hZCA9ICdhJyAqICgxIDw8IDE2KQotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDgxXHhmZlx4MDBceDAwXHgwMFx4MDBceDAw
XHgwMVx4MDBceDAwJywgcGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9h
ZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX2xlbmd0aF9ub3RfZW5jb2RlZF91c2luZ19taW5pbWFsX251bWJlcl9vZl9ieXRlcyhzZWxm
KToKLSAgICAgICAgIyBMb2cgd2FybmluZyBvbiByZWNlaXZpbmcgYmFkIHBheWxvYWQgbGVuZ3Ro
IGZpZWxkIHRoYXQgZG9lc24ndCB1c2UKLSAgICAgICAgIyBtaW5pbWFsIG51bWJlciBvZiBieXRl
cyBidXQgY29udGludWUgcHJvY2Vzc2luZy4KLQotICAgICAgICBwYXlsb2FkID0gJ2EnCi0gICAg
ICAgICMgMSBieXRlIGNhbiBiZSByZXByZXNlbnRlZCB3aXRob3V0IGV4dGVuZGVkIHBheWxvYWQg
bGVuZ3RoIGZpZWxkLgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAg
ICAgICAgKCdceDgxXHhmZlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAxJywgcGF5bG9h
ZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21l
c3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfdW5pY29kZShz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFceDgzJywgJ1x4
ZTZceDljXHhhYycpKQotICAgICAgICAjIFUrNjcyYyBpcyBlbmNvZGVkIGFzIGU2LDljLGFjIGlu
IFVURi04Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodSdcdTY3MmMnLCBtc2d1dGlsLnJlY2Vp
dmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9lcnJv
bmVvdXNfdW5pY29kZShzZWxmKToKLSAgICAgICAgIyBceDgwIGFuZCBceDgxIGFyZSBpbnZhbGlk
IGFzIFVURi04LgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ODIn
LCAnXHg4MFx4ODEnKSkKLSAgICAgICAgIyBJbnZhbGlkIGNoYXJhY3RlcnMgc2hvdWxkIHJhaXNl
IEludmFsaWRVVEY4RXhjZXB0aW9uCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRV
VEY4RXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVf
bWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKLQotICAgIGRlZiB0
ZXN0X3JlY2VpdmVfZnJhZ21lbnRzKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KAotICAgICAgICAgICAgKCdceDAxXHg4NScsICdIZWxsbycpLAotICAgICAgICAgICAg
KCdceDAwXHg4MScsICcgJyksCi0gICAgICAgICAgICAoJ1x4MDBceDg1JywgJ1dvcmxkJyksCi0g
ICAgICAgICAgICAoJ1x4ODBceDgxJywgJyEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
SGVsbG8gV29ybGQhJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBk
ZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c191bmljb2RlKHNlbGYpOgotICAgICAgICAjIFVURi04
IGVuY29kZXMgVSs2ZjIyIGludG8gZTZiY2EyIGFuZCBVKzViNTcgaW50byBlNWFkOTcuCi0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4MDFceDgyJywg
J1x4ZTZceGJjJyksCi0gICAgICAgICAgICAoJ1x4MDBceDgyJywgJ1x4YTJceGU1JyksCi0gICAg
ICAgICAgICAoJ1x4ODBceDgyJywgJ1x4YWRceDk3JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodSdcdTZmMjJcdTViNTcnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQot
ICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRzX2ltbWVkaWF0ZV96ZXJvX3Rlcm1pbmF0aW9u
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAg
KCdceDAxXHg4YycsICdIZWxsbyBXb3JsZCEnKSwgKCdceDgwXHg4MCcsICcnKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8gV29ybGQhJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Uo
cmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c19kdXBsaWNhdGVfc3Rh
cnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAg
ICAoJ1x4MDFceDg1JywgJ0hlbGxvJyksICgnXHgwMVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNf
aW50ZXJtZWRpYXRlX2J1dF9ub3Rfc3RhcnRlZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdCgoJ1x4MDBceDg1JywgJ0hlbGxvJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRzX2VuZF9idXRfbm90
X3N0YXJ0ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgw
XHg4NScsICdIZWxsbycpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFs
aWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNl
aXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBk
ZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfZGlzY2FyZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4Zlx4ODYnLCAnSUdOT1JFJyksICgn
XHg4MVx4ODUnLCAnSGVsbG8nKSwKLSAgICAgICAgICAgICgnXHg4Zlx4ODknLCAnRElTUkVHQVJE
JyksICgnXHg4MVx4ODYnLCAnV29ybGQhJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1z
Z3V0aWwuVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsIHJlcXVlc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsIHJlcXVlc3Qp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNz
YWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9jbG9zZShzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4OFx4OGEnLCBz
dHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEwMDAsIHJlcXVlc3Qud3NfY2xvc2VfY29kZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnR29vZCBieWUnLCByZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbikKLQotICAg
IGRlZiB0ZXN0X3NlbmRfbG9uZ2VzdF9jbG9zZShzZWxmKToKLSAgICAgICAgcmVhc29uID0gJ2En
ICogMTIzCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAo
J1x4ODhceGZkJywKLSAgICAgICAgICAgICBzdHJ1Y3QucGFjaygnIUgnLCBjb21tb24uU1RBVFVT
X05PUk1BTF9DTE9TVVJFKSArIHJlYXNvbikpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNs
b3NlX2Nvbm5lY3Rpb24oY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb24pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVxdWVzdC53c19jbG9zZV9jb2RlLCBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9T
VVJFKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcXVlc3Qud3NfY2xvc2VfcmVhc29uLCBy
ZWFzb24pCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Nsb3NlX3Rvb19sb25nKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
bXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IFN0cmVhbS5jbG9zZV9jb25uZWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LndzX3N0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLlNUQVRVU19O
T1JNQUxfQ0xPU1VSRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ2EnICogMTI0KQotCi0g
ICAgZGVmIHRlc3Rfc2VuZF9jbG9zZV9pbmNvbnNpc3RlbnRfY29kZV9hbmRfcmVhc29uKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgIyByZWFzb24g
cGFyYW1ldGVyIG11c3Qgbm90IGJlIHNwZWNpZmllZCB3aGVuIGNvZGUgaXMgTm9uZS4KLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbS5jbG9zZV9jb25uZWN0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ2EnKQotCi0gICAgZGVmIHRl
c3Rfc2VuZF9waW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkK
LSAgICAgICAgbXNndXRpbC5zZW5kX3BpbmcocmVxdWVzdCwgJ0hlbGxvIFdvcmxkIScpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODlceDBjSGVsbG8gV29ybGQhJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBk
ZWYgdGVzdF9zZW5kX2xvbmdlc3RfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nKHJlcXVlc3QsICdhJyAqIDEy
NSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4OVx4N2QnICsgJ2EnICogMTI1LAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkK
LQotICAgIGRlZiB0ZXN0X3NlbmRfcGluZ190b29fbG9uZyhzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwu
QmFkT3BlcmF0aW9uRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGls
LnNlbmRfcGluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2EnICogMTI2KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9waW5n
KHNlbGYpOgotICAgICAgICAiIiJUZXN0cyByZWNlaXZpbmcgYSBwaW5nIGNvbnRyb2wgZnJhbWUu
IiIiCi0KLSAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgbWVzc2FnZSk6Ci0gICAgICAgICAg
ICByZXF1ZXN0LmNhbGxlZCA9IFRydWUKLQotICAgICAgICAjIFN0cmVhbSBhdXRvbWF0aWNhbGx5
IHJlc3BvbmQgdG8gcGluZyB3aXRoIHBvbmcgd2l0aG91dCBhbnkgYWN0aW9uCi0gICAgICAgICMg
YnkgYXBwbGljYXRpb24gbGF5ZXIuCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
Ci0gICAgICAgICAgICAoJ1x4ODlceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4ODUnLCAnV29ybGQn
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVz
c2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4YVx4MDVIZWxsbycs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAo
J1x4ODlceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAgcmVx
dWVzdC5vbl9waW5nX2hhbmRsZXIgPSBoYW5kbGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShyZXF1ZXN0LmNhbGxlZCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbG9uZ2Vz
dF9waW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAg
ICAgICAgKCdceDg5XHhmZCcsICdhJyAqIDEyNSksICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShy
ZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4YVx4N2QnICsgJ2EnICogMTI1
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfcGluZ190b29fbG9uZyhzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODlceGZlXHgwMFx4N2UnLCAnYScgKiAx
MjYpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2Vw
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX3Bvbmcoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHJlY2VpdmluZyBhIHBvbmcgY29udHJv
bCBmcmFtZS4iIiIKLQotICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCBtZXNzYWdlKToKLSAg
ICAgICAgICAgIHJlcXVlc3QuY2FsbGVkID0gVHJ1ZQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4OGFceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4
ODUnLCAnV29ybGQnKSkKLSAgICAgICAgcmVxdWVzdC5vbl9wb25nX2hhbmRsZXIgPSBoYW5kbGVy
Ci0gICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4ODlceDA1SGVsbG8nLAotICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgIyBWYWxpZCBwb25n
IGlzIHJlY2VpdmVkLCBidXQgcmVjZWl2ZV9tZXNzYWdlIHdvbid0IHJldHVybiBmb3IgaXQuCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Uo
cmVxdWVzdCkpCi0gICAgICAgICMgQ2hlY2sgdGhhdCBub3RoaW5nIHdhcyB3cml0dGVuIGFmdGVy
IHJlY2VpdmVfbWVzc2FnZSBjYWxsLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHgw
NUhlbGxvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dHRlbl9kYXRhKCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcXVlc3QuY2FsbGVkKQot
Ci0gICAgZGVmIHRlc3RfcmVjZWl2ZV91bnNvbGljaXRlZF9wb25nKHNlbGYpOgotICAgICAgICAj
IFVuc29saWNpdGVkIHBvbmcgaXMgYWxsb3dlZCBmcm9tIEh5QmkgMDcuCi0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4OGFceDg1JywgJ0hlbGxvJyks
ICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Uo
cmVxdWVzdCkKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAg
ICAgKCdceDhhXHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAg
IG1zZ3V0aWwuc2VuZF9waW5nKHJlcXVlc3QsICdKdW1ibycpCi0gICAgICAgICMgQm9keSBtaXNt
YXRjaC4KLSAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkKLQotICAgIGRl
ZiB0ZXN0X3BpbmdfY2Fubm90X2JlX2ZyYWdtZW50ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QoKCdceDA5XHg4NScsICdIZWxsbycpKQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9waW5nX3dpdGhfdG9vX2xvbmdfcGF5bG9h
ZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODlceGZlXHgw
MVx4MDAnLCAnYScgKiAyNTYpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLklu
dmFsaWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLQot
Y2xhc3MgRGVmbGF0ZUZyYW1lVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMg
Zm9yIGNoZWNraW5nIGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uLiIiIgotCi0gICAgZGVmIHRlc3Rf
c2VuZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmoo
Ci0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwg
LXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25Q
YXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICcnLCBkZWZsYXRl
X2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShy
ZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAn
V29ybGQnKQotCi0gICAgICAgIGV4cGVjdGVkID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hl
bGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxs
byArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHhj
MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVz
c2VkX2hlbGxvCi0KLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNz
KCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxp
Yi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dv
cmxkWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF93
b3JsZCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAotCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEo
KSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9iZmluYWwoc2VsZik6Ci0gICAgICAgIGV4
dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVf
RVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0
YSgKLSAgICAgICAgICAgICcnLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vz
c29ycykpCi0gICAgICAgIGRlZmxhdGVfZnJhbWVfcHJvY2Vzc29yID0gcmVxdWVzdC53c19leHRl
bnNpb25fcHJvY2Vzc29yc1swXQotICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3Nvci5zZXRf
YmZpbmFsKFRydWUpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxs
bycpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcpCi0KLSAg
ICAgICAgZXhwZWN0ZWQgPSAnJwotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29i
aigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVE
LCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5j
b21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZs
dXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2Vk
X2hlbGxvICsgY2hyKDApCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXBy
ZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAg
ICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVG
QVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAg
ICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAg
Y29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAg
ICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZCArIGNocigwKQotICAgICAgICBl
eHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBl
Y3RlZCArPSBjb21wcmVzc2VkX3dvcmxkCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBl
Y3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rf
c2VuZF9tZXNzYWdlX2NvbXBfYml0KHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29t
cHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5E
RUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICcn
LCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscygxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIGRl
ZmxhdGVfZnJhbWVfcHJvY2Vzc29yID0gcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sw
XQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAg
ICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3Nvci5kaXNhYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKCkK
LSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAg
ZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3IuZW5hYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKCkKLSAg
ICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLQotICAgICAgICBl
eHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXBy
ZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2go
emxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2Vk
X2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3Nl
ZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotCi0gICAgICAg
IGV4cGVjdGVkICs9ICdceDgxXHgwNUhlbGxvJwotCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hl
bGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF8ybmRf
aGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXBy
ZXNzZWRfMm5kX2hlbGxvID0gY29tcHJlc3NlZF8ybmRfaGVsbG9bOi00XQotICAgICAgICBleHBl
Y3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkXzJuZF9oZWxsbykKLSAgICAgICAgZXhw
ZWN0ZWQgKz0gY29tcHJlc3NlZF8ybmRfaGVsbG8KLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYg
dGVzdF9zZW5kX21lc3NhZ2Vfbm9fY29udGV4dF90YWtlb3Zlcl9wYXJhbWV0ZXIoc2VsZik6Ci0g
ICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9E
RUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFU
RV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdub19j
b250ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4
dGVuc2lvbikKLSAgICAgICAgZm9yIGkgaW4geHJhbmdlKDMpOgotICAgICAgICAgICAgbXNndXRp
bC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLQotICAgICAgICBjb21wcmVzc2VkX21l
c3NhZ2UgPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX21l
c3NhZ2UgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXBy
ZXNzZWRfbWVzc2FnZSA9IGNvbXByZXNzZWRfbWVzc2FnZVs6LTRdCi0gICAgICAgIGV4cGVjdGVk
ID0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9tZXNzYWdlKQotICAgICAgICBleHBlY3RlZCAr
PSBjb21wcmVzc2VkX21lc3NhZ2UKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAg
ICAgICAgZXhwZWN0ZWQgKyBleHBlY3RlZCArIGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9iYWRfcmVxdWVzdF9wYXJhbWV0ZXJzKHNl
bGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IGlmIHRoZXJlJ3MgYW55dGhpbmcgd3Jvbmcgd2l0
aCBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbgotICAgICAgICByZXF1ZXN0LCBkZWZsYXRlLWZyYW1l
IGlzIHJlamVjdGVkLgotICAgICAgICAiIiIKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAg
ICAgIyBtYXhfd2luZG93X2JpdHMgbGVzcyB0aGFuIDggaXMgaWxsZWdhbC4KLSAgICAgICAgZXh0
ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsICc3JykKLSAgICAgICAgcHJv
Y2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25z
ZSgpKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29t
bW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICAjIG1heF93aW5kb3dfYml0cyBn
cmVhdGVyIHRoYW4gMTUgaXMgaWxsZWdhbC4KLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0
ZXIoJ21heF93aW5kb3dfYml0cycsICcxNicpCi0gICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVG
cmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgICAgICBl
eHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1F
X0VYVEVOU0lPTikKLSAgICAgICAgIyBOb24gaW50ZWdlciBtYXhfd2luZG93X2JpdHMgaXMgaWxs
ZWdhbC4KLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycs
ICdmb29iYXInKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9j
ZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHByb2Nlc3Nv
ci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAg
ICAgICMgbm9fY29udGV4dF90YWtlb3ZlciBtdXN0IG5vdCBoYXZlIGFueSB2YWx1ZS4KLSAgICAg
ICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ25vX2NvbnRleHRfdGFrZW92ZXInLCAnZm9vYmFy
JykKLSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4
dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwcm9jZXNzb3IuZ2V0X2V4
dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3RfcmVzcG9uc2VfcGFyYW1ldGVycyhz
ZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21t
b24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVG
cmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHByb2Nlc3Nvci5zZXRf
cmVzcG9uc2Vfd2luZG93X2JpdHMoOCkKLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0
X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5o
YXNfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnOCcsIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ21heF93aW5kb3dfYml0cycpKQot
Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRF
RkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVF
eHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBwcm9jZXNzb3Iuc2V0X3Jlc3Bv
bnNlX25vX2NvbnRleHRfdGFrZW92ZXIoVHJ1ZSkKLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNz
b3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNw
b25zZS5oYXNfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVyJykpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZSgKLSAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ25v
X2NvbnRleHRfdGFrZW92ZXInKSBpcyBOb25lKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNz
YWdlKHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAg
ICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFY
X1dCSVRTKQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8g
PSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9
IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hl
bGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAo
bGVuKGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJp
KGNvbXByZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgPSBjb21w
cmVzcy5jb21wcmVzcygnV2ViU29ja2V0JykKLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQg
Kz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3NlZF93ZWJz
b2NrZXQgKz0gJ1x4MDAnCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNz
ZWRfd2Vic29ja2V0KSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVz
c2VkX3dlYnNvY2tldCkKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0g
ICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXps
aWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21w
cmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNo
KHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3Nl
ZF93b3JsZFs6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRf
d29ybGQpIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfd29y
bGQpCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScg
KyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAg
ICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRF
X0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9t
X3Jhd2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5z
aW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXZWJTb2NrZXQnLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQot
Ci0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2NsaWVudF91c2luZ19zbWFsbGVyX3dpbmRv
dyhzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0IGZyYW1lcyBjb21pbmcgZnJvbSBhIGNsaWVu
dCB3aGljaCBpcyB1c2luZyBzbWFsbGVyIHdpbmRvdwotICAgICAgICBzaXplIHRoYXQgdGhlIHNl
cnZlciBhcmUgY29ycmVjdGx5IHJlY2VpdmVkLgotICAgICAgICAiIiIKLQotICAgICAgICAjIFVz
aW5nIHRoZSBzbWFsbGVzdCB3aW5kb3cgYml0cyBvZiA4IGZvciBnZW5lcmF0aW5nIGlucHV0IGZy
YW1lcy4KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAg
emxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC04KQotCi0gICAgICAg
IGRhdGEgPSAnJwotCi0gICAgICAgICMgVXNlIGEgZnJhbWUgd2hvc2UgY29udGVudCBpcyBiaWdn
ZXIgdGhhbiB0aGUgY2xpZW50cycgREVGTEFURSB3aW5kb3cKLSAgICAgICAgIyBzaXplIGJlZm9y
ZSBjb21wcmVzc2lvbi4gVGhlIGNvbnRlbnQgbWFpbmx5IGNvbnNpc3RzIG9mICdhJyBidXQKLSAg
ICAgICAgIyByZXBldGl0aW9uIG9mICdiJyBpcyBwdXQgYXQgdGhlIGhlYWQgYW5kIHRhaWwgc28g
dGhhdCBpZiB0aGUgd2luZG93Ci0gICAgICAgICMgc2l6ZSBpcyBiaWcsIHRoZSBoZWFkIGlzIGJh
Y2stcmVmZXJlbmNlZCBidXQgaWYgc21hbGwsIG5vdC4KLSAgICAgICAgcGF5bG9hZCA9ICdiJyAq
IDY0ICsgJ2EnICogMTAyNCArICdiJyAqIDY0Ci0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBj
b21wcmVzcy5jb21wcmVzcyhwYXlsb2FkKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNv
bXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVu
KGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNv
bXByZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9
ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2Qg
YnllJykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNv
bW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3Jl
cXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0
aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9y
ZWNlaXZlX21lc3NhZ2VfY29tcF9iaXQoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5j
b21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGli
LkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAg
ZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgwKQotICAgICAg
ICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAgICAgICBkYXRhICs9
ICdceDgxXHg4NScgKyBfbWFza19oeWJpKCdIZWxsbycpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6
bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04s
IHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBjb21wcmVzc2VkXzJu
ZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRf
Mm5kX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBj
b21wcmVzc2VkXzJuZF9oZWxsbyA9IGNvbXByZXNzZWRfMm5kX2hlbGxvWzotNF0KLSAgICAgICAg
ZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF8ybmRfaGVsbG8pIHwgMHg4MCkKLSAg
ICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfMm5kX2hlbGxvKQotCi0gICAgICAg
IGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJB
TUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3
ZGF0YSgKLSAgICAgICAgICAgIGRhdGEsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24p
Ci0gICAgICAgIGZvciBpIGluIHhyYW5nZSgzKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYg
dGVzdF9yZWNlaXZlX21lc3NhZ2VfdmFyaW91c19idHlwZShzZWxmKToKLSAgICAgICAgY29tcHJl
c3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJF
U1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBkYXRhID0g
JycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxv
JykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lO
Q19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00
XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX2hlbGxvKSB8IDB4
ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxvKQotCi0gICAg
ICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ID0gY29tcHJlc3MuY29tcHJlc3MoJ1dlYlNvY2tldCcp
Ci0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9G
SU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ICs9ICdceDAwJwotICAgICAgICBk
YXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX3dlYnNvY2tldCkgfCAweDgwKQotICAg
ICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF93ZWJzb2NrZXQpCi0KLSAgICAgICAg
Y29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRf
Q09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBj
b21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29t
cHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAg
ICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBkYXRh
ICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX3dvcmxkKSB8IDB4ODApCi0gICAgICAgIGRh
dGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3dvcmxkKQotCi0gICAgICAgICMgQ2xvc2UgZnJh
bWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygn
IUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0
YSwgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnV2ViU29ja2V0JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVx
dWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotCi1jbGFzcyBQZXJNZXNzYWdlRGVmbGF0
ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIGZvciBwZXJtZXNzYWdlLWRl
ZmxhdGUgZXh0ZW5zaW9uLiIiIgotCi0gICAgZGVmIHRlc3RfcmVzcG9uc2VfcGFyYW1ldGVycyhz
ZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAg
ICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICBl
eHRlbnNpb24uYWRkX3BhcmFtZXRlcignc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25l
KQotICAgICAgICBwcm9jZXNzb3IgPSBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nv
cihleHRlbnNpb24pCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoCi0gICAgICAgICAgICByZXNwb25z
ZS5oYXNfcGFyYW1ldGVyKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgTm9uZSwgcmVzcG9uc2UuZ2V0X3BhcmFtZXRl
cl92YWx1ZSgnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInKSkKLQotICAgICAgICBleHRlbnNp
b24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgY29tbW9uLlBFUk1F
U1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVy
KCdjbGllbnRfbWF4X3dpbmRvd19iaXRzJywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29yID0gUGVy
TWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotCi0gICAgICAgIHBy
b2Nlc3Nvci5zZXRfY2xpZW50X21heF93aW5kb3dfYml0cyg4KQotICAgICAgICBwcm9jZXNzb3Iu
c2V0X2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKFRydWUpCi0gICAgICAgIHJlc3BvbnNlID0g
cHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgJzgnLCByZXNwb25zZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdjbGll
bnRfbWF4X3dpbmRvd19iaXRzJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKLSAgICAgICAg
ICAgIHJlc3BvbnNlLmhhc19wYXJhbWV0ZXIoJ2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyJykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBOb25lLAotICAgICAgICAg
ICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92YWx1ZSgnY2xpZW50X25vX2NvbnRleHRfdGFrZW92
ZXInKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgZXh0ZW5z
aW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24u
UEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVm
bGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVx
dWVzdCwgJ0hlbGxvJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0g
ICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQs
IC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNv
bXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1
c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVz
c2VkX2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgPSAnXHhjMSVjJyAlIGxlbihjb21wcmVz
c2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZW1wdHlfbWVzc2FnZShzZWxmKToKLSAgICAgICAg
IiIiVGVzdCB0aGF0IGFuIGVtcHR5IG1lc3NhZ2UgaXMgY29tcHJlc3NlZCBjb3JyZWN0bHkuIiIi
Ci0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAg
ICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAg
JycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLQotICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnJykKLQotICAgICAgICAjIFBheWxvYWQgaW4gYmlu
YXJ5OiAwYjAwMDAwMDAwCi0gICAgICAgICMgRnJvbSBMU0IsCi0gICAgICAgICMgLSAxIGJpdCBv
ZiBCRklOQUwgKDApCi0gICAgICAgICMgLSAyIGJpdHMgb2YgQlRZUEUgKG5vIGNvbXByZXNzaW9u
KQotICAgICAgICAjIC0gNSBiaXRzIG9mIHBhZGRpbmcKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnXHhjMVx4MDFceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Vfd2l0aF9u
dWxsX2NoYXJhY3RlcihzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0IGEgc2ltcGxlIHBheWxv
YWQgKG9uZSBudWxsKSBpcyBmcmFtZWQgY29ycmVjdGx5LiIiIgotCi0gICAgICAgIGV4dGVuc2lv
biA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBF
Uk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxh
dGVfcmVxdWVzdD1leHRlbnNpb24pCi0KLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVx
dWVzdCwgJ1x4MDAnKQotCi0gICAgICAgICMgUGF5bG9hZCBpbiBiaW5hcnk6IDBiMDExMDAwMTAg
MGIwMDAwMDAwMCAwYjAwMDAwMDAwCi0gICAgICAgICMgRnJvbSBMU0IsCi0gICAgICAgICMgLSAx
IGJpdCBvZiBCRklOQUwgKDApCi0gICAgICAgICMgLSAyIGJpdHMgb2YgQlRZUEUgKDAxIHRoYXQg
bWVhbnMgZml4ZWQgSHVmZm1hbikKLSAgICAgICAgIyAtIDggYml0cyBvZiB0aGUgZmlyc3QgY29k
ZSAoMDAxMTAwMDAgdGhhdCBpcyB0aGUgY29kZSBmb3IgdGhlIGxpdGVyYWwKLSAgICAgICAgIyAg
IGFscGhhYmV0IDB4MDApCi0gICAgICAgICMgLSA3IGJpdHMgb2YgdGhlIHNlY29uZCBjb2RlICgw
MDAwMDAwIHRoYXQgaXMgdGhlIGNvZGUgZm9yIHRoZQotICAgICAgICAjICAgZW5kLW9mLWJsb2Nr
KQotICAgICAgICAjIC0gMSBiaXQgb2YgQkZJTkFMICgwKQotICAgICAgICAjIC0gMiBiaXRzIG9m
IEJUWVBFIChubyBjb21wcmVzc2lvbikKLSAgICAgICAgIyAtIDIgYml0cyBvZiBwYWRkaW5nCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YzFceDAzXHg2Mlx4MDBceDAwJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAg
ICBkZWYgdGVzdF9zZW5kX3R3b19tZXNzYWdlcyhzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0g
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVT
U0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9y
ZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwg
J0hlbGxvJykKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJykK
LQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAg
emxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklU
UykKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9
IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0g
Y29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVs
bG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycg
JSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9o
ZWxsbwotCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29y
bGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6
LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfd29ybGQp
Ci0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0K
LSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZChzZWxmKToKLSAgICAgICAgZXh0
ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21t
b24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2Vf
ZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2Uo
cmVxdWVzdCwgJ0hlbGxvJywgZW5kPUZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2Fn
ZShyZXF1ZXN0LCAnR29vZGJ5ZScsIGVuZD1GYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgJ1dvcmxkJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJl
c3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIu
REVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNv
bXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29t
cHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGV4cGVjdGVkID0gJ1x4NDEl
YycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3Nl
ZF9oZWxsbwotICAgICAgICBjb21wcmVzc2VkX2dvb2RieWUgPSBjb21wcmVzcy5jb21wcmVzcygn
R29vZGJ5ZScpCi0gICAgICAgIGNvbXByZXNzZWRfZ29vZGJ5ZSArPSBjb21wcmVzcy5mbHVzaCh6
bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4MDAlYycgJSBsZW4oY29t
cHJlc3NlZF9nb29kYnllKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2dvb2RieWUK
LSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0g
ICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxV
U0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAg
ICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKLSAgICAg
ICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYg
dGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZF9lbXB0eV9maXJzdF9mcmFtZShzZWxmKToKLSAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAg
ICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBl
cm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5k
X21lc3NhZ2UocmVxdWVzdCwgJycsIGVuZD1GYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJl
c3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIu
REVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNv
bXByZXNzLmNvbXByZXNzKCcnKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNz
LmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBleHBlY3RlZCA9ICdceDQxJWMnICUg
bGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVs
bG8KLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycp
Ci0gICAgICAgIGNvbXByZXNzZWRfZW1wdHkgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNf
RkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfZW1wdHkgPSBjb21wcmVzc2VkX2VtcHR5WzotNF0K
LSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oY29tcHJlc3NlZF9lbXB0eSkKLSAg
ICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9lbXB0eQotICAgICAgICBwcmludCgnJXInICUg
ZXhwZWN0ZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29u
bmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFn
bWVudGVkX2VtcHR5X2xhc3RfZnJhbWUoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1v
bi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0Vf
REVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJv
bV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVz
dD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxs
bycsIGVuZD1GYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycp
Ci0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAg
IHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJ
VFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8n
KQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQotICAgICAgICBleHBlY3RlZCA9ICdceDQxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVs
bG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLSAgICAgICAgY29tcHJl
c3NlZF9lbXB0eSA9IGNvbXByZXNzLmNvbXByZXNzKCcnKQotICAgICAgICBjb21wcmVzc2VkX2Vt
cHR5ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVz
c2VkX2VtcHR5ID0gY29tcHJlc3NlZF9lbXB0eVs6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdc
eDgwJWMnICUgbGVuKGNvbXByZXNzZWRfZW1wdHkpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXBy
ZXNzZWRfZW1wdHkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3Vz
aW5nX3NtYWxsX3dpbmRvdyhzZWxmKToKLSAgICAgICAgY29tbW9uX3BhcnQgPSAnYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXonCi0gICAgICAgIHRlc3RfbWVzc2FnZSA9IGNvbW1vbl9wYXJ0ICsg
Jy0nICogMzAwMDAgKyBjb21tb25fcGFydAotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVG
TEFURV9FWFRFTlNJT04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJf
bWF4X3dpbmRvd19iaXRzJywgJzgnKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3Jl
cXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCB0
ZXN0X21lc3NhZ2UpCi0KLSAgICAgICAgZXhwZWN0ZWRfd2Vic29ja2V0X2hlYWRlcl9zaXplID0g
MgotICAgICAgICBleHBlY3RlZF93ZWJzb2NrZXRfcGF5bG9hZF9zaXplID0gOTEKLQotICAgICAg
ICBhY3R1YWxfZnJhbWUgPSByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF93ZWJzb2NrZXRfaGVhZGVyX3NpemUgKwotICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3dlYnNvY2tldF9wYXlsb2FkX3NpemUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGFjdHVhbF9mcmFtZSkpCi0gICAgICAgIGFjdHVh
bF9oZWFkZXIgPSBhY3R1YWxfZnJhbWVbMDpleHBlY3RlZF93ZWJzb2NrZXRfaGVhZGVyX3NpemVd
Ci0gICAgICAgIGFjdHVhbF9wYXlsb2FkID0gYWN0dWFsX2ZyYW1lW2V4cGVjdGVkX3dlYnNvY2tl
dF9oZWFkZXJfc2l6ZTpdCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
ICAgICAnXHhjMSVjJyAlIGV4cGVjdGVkX3dlYnNvY2tldF9wYXlsb2FkX3NpemUsIGFjdHVhbF9o
ZWFkZXIpCi0gICAgICAgIGRlY29tcHJlc3MgPSB6bGliLmRlY29tcHJlc3NvYmooLTgpCi0gICAg
ICAgIGRlY29tcHJlc3NlZF9tZXNzYWdlID0gZGVjb21wcmVzcy5kZWNvbXByZXNzKAotICAgICAg
ICAgICAgICAgIGFjdHVhbF9wYXlsb2FkICsgJ1x4MDBceDAwXHhmZlx4ZmYnKQotICAgICAgICBk
ZWNvbXByZXNzZWRfbWVzc2FnZSArPSBkZWNvbXByZXNzLmZsdXNoKCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh0ZXN0X21lc3NhZ2UsIGRlY29tcHJlc3NlZF9tZXNzYWdlKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDAsIGxlbihkZWNvbXByZXNzLnVudXNlZF9kYXRhKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4oZGVjb21wcmVzcy51bmNvbnN1bWVkX3RhaWwpKQotCi0g
ICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX25vX2NvbnRleHRfdGFrZW92ZXJfcGFyYW1ldGVyKHNl
bGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAg
ICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAg
ICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBO
b25lKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAg
ICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQot
ICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoMyk6Ci0gICAgICAgICAgICBtc2d1dGlsLnNlbmRfbWVz
c2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCi0gICAgICAgICAgICBtc2d1dGlsLnNl
bmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9VHJ1ZSkKLQotICAgICAgICBjb21wcmVz
cyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09N
UFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBmaXJz
dF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGZpcnN0X2hlbGxv
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBleHBlY3RlZCA9
ICdceDQxJWMnICUgbGVuKGZpcnN0X2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBmaXJzdF9o
ZWxsbwotICAgICAgICBzZWNvbmRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQot
ICAgICAgICBzZWNvbmRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gp
Ci0gICAgICAgIHNlY29uZF9oZWxsbyA9IHNlY29uZF9oZWxsb1s6LTRdCi0gICAgICAgIGV4cGVj
dGVkICs9ICdceDgwJWMnICUgbGVuKHNlY29uZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0g
c2Vjb25kX2hlbGxvCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAg
ICBleHBlY3RlZCArIGV4cGVjdGVkICsgZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdl
X2ZyYWdtZW50ZWRfYmZpbmFsKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxB
VEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3
ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0
ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4ocmVxdWVzdC53c19leHRl
bnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3Nv
cnNbMF0uc2V0X2JmaW5hbChUcnVlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1
ZXN0LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJl
cXVlc3QsICdXb3JsZCcsIGVuZD1UcnVlKQotCi0gICAgICAgIGV4cGVjdGVkID0gJycKLQotICAg
ICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVG
QVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsbyArIGNocigwKQotICAgICAgICBl
eHBlY3RlZCArPSAnXHg0MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBl
Y3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXBy
ZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVG
TEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXBy
ZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJl
c3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXBy
ZXNzZWRfd29ybGQgKyBjaHIoMCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4o
Y29tcHJlc3NlZF93b3JsZCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9kZWZsYXRlKHNl
bGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6
bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRT
KQotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8n
KQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRd
Ci0gICAgICAgIGRhdGEgPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgw
KQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAgICAg
ICAjIENsb3NlIGZyYW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymko
c3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lv
biA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBF
Uk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgIGRhdGEsIHBlcm1lc3NhZ2VfZGVm
bGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8n
LCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVm
IHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3JhbmRvbV9zZWN0aW9uKHNlbGYpOgotICAgICAgICAiIiJU
ZXN0IHRoYXQgYSBjb21wcmVzc2VkIG1lc3NhZ2UgZnJhZ21lbnRlZCBpbnRvIGxvdHMgb2YgY2h1
bmtzIGlzCi0gICAgICAgIGNvcnJlY3RseSByZWNlaXZlZC4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgcmFuZG9tLnNlZWQoYT0wKQotICAgICAgICBwYXlsb2FkID0gJycuam9pbigKLSAgICAgICAg
ICAgIFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIGkgaW4geHJhbmdlKDEwMDApXSkK
LQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGli
LlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQot
ICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSBjb21wcmVzcy5jb21wcmVzcyhwYXlsb2FkKQot
ICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNf
RkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9IGNvbXByZXNzZWRfcGF5bG9hZFs6
LTRdCi0KLSAgICAgICAgIyBGcmFnbWVudCB0aGUgY29tcHJlc3NlZCBwYXlsb2FkIGludG8gbG90
cyBvZiBmcmFtZXMuCi0gICAgICAgIGJ5dGVzX2NodW5rZWQgPSAwCi0gICAgICAgIGRhdGEgPSAn
JwotICAgICAgICBmcmFtZV9jb3VudCA9IDAKLQotICAgICAgICBjaHVua19zaXplcyA9IFtdCi0K
LSAgICAgICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8IGxlbihjb21wcmVzc2VkX3BheWxvYWQpOgot
ICAgICAgICAgICAgIyBNYWtlIHN1cmUgdGhhdAotICAgICAgICAgICAgIyAtIHRoZSBsZW5ndGgg
b2YgY2h1bmtzIGFyZSBlcXVhbCBvciBsZXNzIHRoYW4gMTI1IHNvIHRoYXQgd2UgY2FuCi0gICAg
ICAgICAgICAjICAgdXNlIDEgb2N0ZXQgbGVuZ3RoIGhlYWRlciBmb3JtYXQgZm9yIGFsbCBmcmFt
ZXMuCi0gICAgICAgICAgICAjIC0gYXQgbGVhc3QgMTAgY2h1bmtzIGFyZSBjcmVhdGVkLgotICAg
ICAgICAgICAgY2h1bmtfc2l6ZSA9IHJhbmRvbS5yYW5kaW50KAotICAgICAgICAgICAgICAgIDEs
IG1pbigxMjUsCi0gICAgICAgICAgICAgICAgICAgICAgIGxlbihjb21wcmVzc2VkX3BheWxvYWQp
IC8gMTAsCi0gICAgICAgICAgICAgICAgICAgICAgIGxlbihjb21wcmVzc2VkX3BheWxvYWQpIC0g
Ynl0ZXNfY2h1bmtlZCkpCi0gICAgICAgICAgICBjaHVua19zaXplcy5hcHBlbmQoY2h1bmtfc2l6
ZSkKLSAgICAgICAgICAgIGNodW5rID0gY29tcHJlc3NlZF9wYXlsb2FkWwotICAgICAgICAgICAg
ICAgIGJ5dGVzX2NodW5rZWQ6Ynl0ZXNfY2h1bmtlZCArIGNodW5rX3NpemVdCi0gICAgICAgICAg
ICBieXRlc19jaHVua2VkICs9IGNodW5rX3NpemUKLQotICAgICAgICAgICAgZmlyc3Rfb2N0ZXQg
PSAweDAwCi0gICAgICAgICAgICBpZiBsZW4oZGF0YSkgPT0gMDoKLSAgICAgICAgICAgICAgICBm
aXJzdF9vY3RldCA9IGZpcnN0X29jdGV0IHwgMHg0MgotICAgICAgICAgICAgaWYgYnl0ZXNfY2h1
bmtlZCA9PSBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKToKLSAgICAgICAgICAgICAgICBmaXJzdF9v
Y3RldCA9IGZpcnN0X29jdGV0IHwgMHg4MAotCi0gICAgICAgICAgICBkYXRhICs9ICclYyVjJyAl
IChmaXJzdF9vY3RldCwgY2h1bmtfc2l6ZSB8IDB4ODApCi0gICAgICAgICAgICBkYXRhICs9IF9t
YXNrX2h5YmkoY2h1bmspCi0KLSAgICAgICAgICAgIGZyYW1lX2NvdW50ICs9IDEKLQotICAgICAg
ICBwcmludCgiQ2h1bmsgc2l6ZXM6ICVyIiAlIGNodW5rX3NpemVzKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUobGVuKGNodW5rX3NpemVzKSA+IDEwKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUK
LSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgn
LCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhU
RU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgK
LSAgICAgICAgICAgIGRhdGEsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV90d29fbWVzc2Fn
ZXMoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAg
ICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIu
TUFYX1dCSVRTKQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVs
bG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG9XZWJTb2NrZXQnKQotICAgICAgICBjb21wcmVz
c2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBj
b21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIHNwbGl0X3Bv
c2l0aW9uID0gbGVuKGNvbXByZXNzZWRfaGVsbG8pIC8gMgotICAgICAgICBkYXRhICs9ICdceDQx
JWMnICUgKHNwbGl0X3Bvc2l0aW9uIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJp
KGNvbXByZXNzZWRfaGVsbG9bOnNwbGl0X3Bvc2l0aW9uXSkKLQotICAgICAgICBkYXRhICs9ICdc
eDgwJWMnICUgKChsZW4oY29tcHJlc3NlZF9oZWxsbykgLSBzcGxpdF9wb3NpdGlvbikgfCAweDgw
KQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsb1tzcGxpdF9wb3Np
dGlvbjpdKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAg
ICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIu
TUFYX1dCSVRTKQotCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVz
cygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93
b3JsZFs6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfd29y
bGQpIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfd29ybGQp
Ci0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBf
bWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAg
ICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAg
IGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICBkYXRhLCBwZXJt
ZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ0hlbGxvV2ViU29ja2V0JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Uo
cmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2Vp
dmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9taXhl
ZF9idHlwZShzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0IGEgbWVzc2FnZSBjb21wcmVzc2Vk
IHVzaW5nIGxvdHMgb2YgREVGTEFURSBibG9ja3Mgd2l0aAotICAgICAgICB2YXJpb3VzIGZsdXNo
IG1vZGUgaXMgY29ycmVjdGx5IHJlY2VpdmVkLgotICAgICAgICAiIiIKLQotICAgICAgICByYW5k
b20uc2VlZChhPTApCi0gICAgICAgIHBheWxvYWQgPSAnJy5qb2luKAotICAgICAgICAgICAgW2No
cihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3IgaSBpbiB4cmFuZ2UoMTAwMCldKQotCi0gICAg
ICAgIGNvbXByZXNzID0gTm9uZQotCi0gICAgICAgICMgRnJhZ21lbnQgdGhlIGNvbXByZXNzZWQg
cGF5bG9hZCBpbnRvIGxvdHMgb2YgZnJhbWVzLgotICAgICAgICBieXRlc19jaHVua2VkID0gMAot
ICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSAnJwotCi0gICAgICAgIGNodW5rX3NpemVzID0g
W10KLSAgICAgICAgbWV0aG9kcyA9IFtdCi0gICAgICAgIHN5bmNfdXNlZCA9IEZhbHNlCi0gICAg
ICAgIGZpbmlzaF91c2VkID0gRmFsc2UKLQotICAgICAgICB3aGlsZSBieXRlc19jaHVua2VkIDwg
bGVuKHBheWxvYWQpOgotICAgICAgICAgICAgIyBNYWtlIHN1cmUgYXQgbGVhc3QgMTAgY2h1bmtz
IGFyZSBjcmVhdGVkLgotICAgICAgICAgICAgY2h1bmtfc2l6ZSA9IHJhbmRvbS5yYW5kaW50KAot
ICAgICAgICAgICAgICAgIDEsIG1pbigxMDAsIGxlbihwYXlsb2FkKSAtIGJ5dGVzX2NodW5rZWQp
KQotICAgICAgICAgICAgY2h1bmtfc2l6ZXMuYXBwZW5kKGNodW5rX3NpemUpCi0gICAgICAgICAg
ICBjaHVuayA9IHBheWxvYWRbYnl0ZXNfY2h1bmtlZDpieXRlc19jaHVua2VkICsgY2h1bmtfc2l6
ZV0KLQotICAgICAgICAgICAgYnl0ZXNfY2h1bmtlZCArPSBjaHVua19zaXplCi0KLSAgICAgICAg
ICAgIGlmIGNvbXByZXNzIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgY29tcHJlc3MgPSB6bGli
LmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVT
U0lPTiwKLSAgICAgICAgICAgICAgICAgICAgemxpYi5ERUZMQVRFRCwKLSAgICAgICAgICAgICAg
ICAgICAgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgICAgICBpZiBieXRlc19jaHVua2VkID09
IGxlbihwYXlsb2FkKToKLSAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29t
cHJlc3MuY29tcHJlc3MoY2h1bmspCi0gICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2Fk
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICAgICAgICAgIGNv
bXByZXNzZWRfcGF5bG9hZCA9IGNvbXByZXNzZWRfcGF5bG9hZFs6LTRdCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIG1ldGhvZCA9IHJhbmRvbS5yYW5kaW50KDAsIDEpCi0gICAg
ICAgICAgICAgICAgbWV0aG9kcy5hcHBlbmQobWV0aG9kKQotICAgICAgICAgICAgICAgIGlmIG1l
dGhvZCA9PSAwOgotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29t
cHJlc3MuY29tcHJlc3MoY2h1bmspCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5
bG9hZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgICAgICAg
ICAgICAgc3luY191c2VkID0gVHJ1ZQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykK
LSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNo
KHpsaWIuWl9GSU5JU0gpCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzID0gTm9uZQotICAg
ICAgICAgICAgICAgICAgICBmaW5pc2hfdXNlZCA9IFRydWUKLQotICAgICAgICBwcmludCgiQ2h1
bmsgc2l6ZXM6ICVyIiAlIGNodW5rX3NpemVzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobGVu
KGNodW5rX3NpemVzKSA+IDEwKQotICAgICAgICBwcmludCgiTWV0aG9kczogJXIiICUgbWV0aG9k
cykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN5bmNfdXNlZCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGZpbmlzaF91c2VkKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgxMjUgPCBsZW4o
Y29tcHJlc3NlZF9wYXlsb2FkKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihjb21wcmVz
c2VkX3BheWxvYWQpIDwgNjU1MzYpCi0gICAgICAgIGRhdGEgPSAnXHhjMlx4ZmUnICsgc3RydWN0
LnBhY2soJyFIJywgbGVuKGNvbXByZXNzZWRfcGF5bG9hZCkpCi0gICAgICAgIGRhdGEgKz0gX21h
c2tfaHliaShjb21wcmVzc2VkX3BheWxvYWQpCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAg
ICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEw
MDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKAotICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJ
T04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAg
ICAgICAgICAgZGF0YSwgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJl
cXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCi0KLQotY2xhc3MgTWVzc2FnZVRlc3RIaXhpZTc1KHVuaXR0ZXN0
LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyBmb3IgZHJhZnQtaGl4aWUtdGhld2Vic29ja2V0cHJv
dG9jb2wtNzYgc3RyZWFtIGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlKHNl
bGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoKQotICAgICAg
ICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdceDAwSGVsbG9ceGZmJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3VuaWNvZGUoc2VsZik6Ci0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgpCi0gICAgICAgIG1zZ3V0aWwuc2Vu
ZF9tZXNzYWdlKHJlcXVlc3QsIHUnXHU2NWU1JykKLSAgICAgICAgIyBVKzY1ZTUgaXMgZW5jb2Rl
ZCBhcyBlNiw5NyxhNSBpbiBVVEYtOAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwXHhl
Nlx4OTdceGE1XHhmZicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4MDBIZWxsb1x4
ZmZceDAwV29ybGQhXHhmZicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRl
c3RfcmVjZWl2ZV9tZXNzYWdlX3VuaWNvZGUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3RfaGl4aWU3NSgnXHgwMFx4ZTZceDljXHhhY1x4ZmYnKQotICAgICAgICAjIFUr
NjcyYyBpcyBlbmNvZGVkIGFzIGU2LDljLGFjIGluIFVURi04Ci0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodSdcdTY3MmMnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAg
IGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9lcnJvbmVvdXNfdW5pY29kZShzZWxmKToKLSAgICAg
ICAgIyBceDgwIGFuZCBceDgxIGFyZSBpbnZhbGlkIGFzIFVURi04LgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4MDBceDgwXHg4MVx4ZmYnKQotICAgICAgICAj
IEludmFsaWQgY2hhcmFjdGVycyBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aAotICAgICAgICAjIFUr
ZmZmZCBSRVBMQUNFTUVOVCBDSEFSQUNURVIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1J1x1
ZmZmZFx1ZmZmZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVm
IHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Rpc2NhcmQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHg4MFx4MDZJR05PUkVceDAwSGVsbG9ceGZmJwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1x4MDFESVNSRUdBUkRceGZm
XHgwMFdvcmxkIVx4ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0
aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdX
b3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotCi1jbGFzcyBNZXNz
YWdlUmVjZWl2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyB0aGUgU3Ry
ZWFtIGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZlci4iIiIKLQotICAgIGRlZiB0ZXN0X3F1ZXVl
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkKLSAg
ICAgICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0KQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVjZWl2ZXIucmVjZWl2ZV9ub3dhaXQoKSkKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKCdceDgxXHg4NicgKyBfbWFza19o
eWJpKCdIZWxsbyEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgcmVjZWl2
ZXIucmVjZWl2ZSgpKQotCi0gICAgZGVmIHRlc3Rfb25tZXNzYWdlKHNlbGYpOgotICAgICAgICBv
bm1lc3NhZ2VfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0KLSAgICAgICAgZGVmIG9ubWVzc2FnZV9o
YW5kbGVyKG1lc3NhZ2UpOgotICAgICAgICAgICAgb25tZXNzYWdlX3F1ZXVlLnB1dChtZXNzYWdl
KQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3QoKQotICAgICAg
ICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVlc3QsIG9ubWVzc2FnZV9o
YW5kbGVyKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4ODFceDg2
JyArIF9tYXNrX2h5YmkoJ0hlbGxvIScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxs
byEnLCBvbm1lc3NhZ2VfcXVldWUuZ2V0KCkpCi0KLQotY2xhc3MgTWVzc2FnZVJlY2VpdmVySGl4
aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIHRoZSBTdHJlYW1IaXhp
ZTc1IGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZlci4iIiIKLQotICAgIGRlZiB0ZXN0X3F1ZXVl
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGll
NzUoKQotICAgICAgICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVlc3Qp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZWNlaXZlci5yZWNlaXZlX25vd2Fp
dCgpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4MDBIZWxsbyFc
eGZmJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgcmVjZWl2ZXIucmVjZWl2
ZSgpKQotCi0gICAgZGVmIHRlc3Rfb25tZXNzYWdlKHNlbGYpOgotICAgICAgICBvbm1lc3NhZ2Vf
cXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0KLSAgICAgICAgZGVmIG9ubWVzc2FnZV9oYW5kbGVyKG1l
c3NhZ2UpOgotICAgICAgICAgICAgb25tZXNzYWdlX3F1ZXVlLnB1dChtZXNzYWdlKQotCi0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3RfaGl4aWU3NSgpCi0gICAgICAg
IHJlY2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2ZXIocmVxdWVzdCwgb25tZXNzYWdlX2hh
bmRsZXIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygnXHgwMEhlbGxv
IVx4ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyEnLCBvbm1lc3NhZ2VfcXVl
dWUuZ2V0KCkpCi0KLQotY2xhc3MgTWVzc2FnZVNlbmRlclRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgotICAgICIiIlRlc3RzIHRoZSBTdHJlYW0gY2xhc3MgdXNpbmcgTWVzc2FnZVNlbmRlci4iIiIK
LQotICAgIGRlZiB0ZXN0X3NlbmQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Js
b2NraW5nX3JlcXVlc3QoKQotICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5kZXIo
cmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZCgnV29ybGQnKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdceDgxXHgwNVdvcmxkJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9ub3dhaXQoc2VsZik6Ci0gICAgICAgICMgVXNlIGEg
cXVldWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0ZW4gYnkgTWVzc2FnZVNlbmRlci4KLSAgICAg
ICAgIyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkgY2Fubm90IGJlIHVzZWQgaGVy
ZSBiZWNhdXNlCi0gICAgICAgICMgTWVzc2FnZVNlbmRlciBydW5zIGluIGEgc2VwYXJhdGUgdGhy
ZWFkLgotICAgICAgICBzZW5kX3F1ZXVlID0gUXVldWUuUXVldWUoKQotCi0gICAgICAgIGRlZiB3
cml0ZShieXRlcyk6Ci0gICAgICAgICAgICBzZW5kX3F1ZXVlLnB1dChieXRlcykKLQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXRlID0gd3JpdGUKLQotICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3Nh
Z2VTZW5kZXIocmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ0hlbGxvJykK
LSAgICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdXb3JsZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1x4ODFceDA1SGVsbG8nLCBzZW5kX3F1ZXVlLmdldCgpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdceDgxXHgwNVdvcmxkJywgc2VuZF9xdWV1ZS5nZXQoKSkKLQotCi1jbGFzcyBN
ZXNzYWdlU2VuZGVySGl4aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3Rz
IHRoZSBTdHJlYW1IaXhpZTc1IGNsYXNzIHVzaW5nIE1lc3NhZ2VTZW5kZXIuIiIiCi0KLSAgICBk
ZWYgdGVzdF9zZW5kKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19y
ZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5kZXIo
cmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZCgnV29ybGQnKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdceDAwV29ybGRceGZmJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9ub3dhaXQoc2VsZik6Ci0gICAgICAgICMgVXNlIGEg
cXVldWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0ZW4gYnkgTWVzc2FnZVNlbmRlci4KLSAgICAg
ICAgIyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkgY2Fubm90IGJlIHVzZWQgaGVy
ZSBiZWNhdXNlCi0gICAgICAgICMgTWVzc2FnZVNlbmRlciBydW5zIGluIGEgc2VwYXJhdGUgdGhy
ZWFkLgotICAgICAgICBzZW5kX3F1ZXVlID0gUXVldWUuUXVldWUoKQotCi0gICAgICAgIGRlZiB3
cml0ZShieXRlcyk6Ci0gICAgICAgICAgICBzZW5kX3F1ZXVlLnB1dChieXRlcykKLQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUgPSB3cml0ZQotCi0gICAgICAgIHNlbmRlciA9IG1zZ3V0
aWwuTWVzc2FnZVNlbmRlcihyZXF1ZXN0KQotCi0gICAgICAgIHNlbmRlci5zZW5kX25vd2FpdCgn
SGVsbG8nKQotICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ1dvcmxkJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnXHgwMEhlbGxvXHhmZicsIHNlbmRfcXVldWUuZ2V0KCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBXb3JsZFx4ZmYnLCBzZW5kX3F1ZXVlLmdldCgpKQotCi0K
LWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tdXgucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdF9tdXgucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3NzNkZWNi
ZmQ2NmQwZGZmZWYwYjQyODdiYWQ4NzQ1M2ZjMWQ2NDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXV4LnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMjA4OCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJp
Z2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBtdXggbW9kdWxlLiIiIgotCi1pbXBvcnQgUXVldWUK
LWltcG9ydCBjb3B5Ci1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgc3Ry
dWN0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCB0aW1lCi1pbXBvcnQgemxp
YgotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9k
X3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1v
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG11eAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
X3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0
aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IEZyYW1lCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9iaW5hcnlfZnJhbWUKLWZyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NlX2ZyYW1lCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9zaW5nX2hhbmRz
aGFrZV9ib2R5Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IHBhcnNl
X2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBNdXhFeHRlbnNp
b25Qcm9jZXNzb3IKLQotCi1pbXBvcnQgbW9jawotCi0KLV9URVNUX0hFQURFUlMgPSB7J0hvc3Qn
OiAnc2VydmVyLmV4YW1wbGUuY29tJywKLSAgICAgICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnd2Vi
c29ja2V0JywKLSAgICAgICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAg
ICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleSc6ICdkR2hsSUhOaGJYQnNaU0J1YjI1alpR
PT0nLAotICAgICAgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1WZXJzaW9uJzogJzEzJywKLSAg
ICAgICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nfQotCi0KLWNsYXNz
IF9PdXRnb2luZ0NoYW5uZWxEYXRhKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgot
ICAgICAgICBzZWxmLm1lc3NhZ2VzID0gW10KLSAgICAgICAgc2VsZi5jb250cm9sX21lc3NhZ2Vz
ID0gW10KLQotICAgICAgICBzZWxmLmJ1aWxkZXIgPSBtdXguX0lubmVyTWVzc2FnZUJ1aWxkZXIo
KQotCi1jbGFzcyBfTW9ja011eENvbm5lY3Rpb24obW9jay5Nb2NrQmxvY2tpbmdDb25uKToKLSAg
ICAiIiJNb2NrIGNsYXNzIG9mIG1vZF9weXRob24gY29ubmVjdGlvbiBmb3IgbXV4LiIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBtb2NrLk1vY2tCbG9ja2luZ0Nvbm4uX19p
bml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3MgPSBbXQotICAgICAgICBz
ZWxmLl9jaGFubmVsX2RhdGEgPSB7fQotCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfb3Bjb2RlID0g
Tm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5nX2ZyYWdtZW50cyA9IFtdCi0KLSAgICAgICAgc2Vs
Zi5zZXJ2ZXJfY2xvc2VfY29kZSA9IE5vbmUKLQotICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToK
LSAgICAgICAgIiIiT3ZlcnJpZGUgTW9ja0Jsb2NraW5nQ29ubi53cml0ZS4iIiIKLQotICAgICAg
ICBzZWxmLl9jdXJyZW50X2RhdGEgPSBkYXRhCi0gICAgICAgIHNlbGYuX3Bvc2l0aW9uID0gMAot
Ci0gICAgICAgIGRlZiBfcmVjZWl2ZV9ieXRlcyhsZW5ndGgpOgotICAgICAgICAgICAgaWYgc2Vs
Zi5fcG9zaXRpb24gKyBsZW5ndGggPiBsZW4oc2VsZi5fY3VycmVudF9kYXRhKToKLSAgICAgICAg
ICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAgICAgJ0ZhaWxlZCB0byByZWNlaXZlICVkIGJ5dGVzIGZyb20gZW5jYXBzdWxhdGVkICcK
LSAgICAgICAgICAgICAgICAgICAgJ2ZyYW1lJyAlIGxlbmd0aCkKLSAgICAgICAgICAgIGRhdGEg
PSBzZWxmLl9jdXJyZW50X2RhdGFbc2VsZi5fcG9zaXRpb246c2VsZi5fcG9zaXRpb24rbGVuZ3Ro
XQotICAgICAgICAgICAgc2VsZi5fcG9zaXRpb24gKz0gbGVuZ3RoCi0gICAgICAgICAgICByZXR1
cm4gZGF0YQotCi0gICAgICAgICMgUGFyc2UgcGh5c2ljYWwgZnJhbWVzIGFuZCBhc3NlbWJsZSBh
IG1lc3NhZ2UgaWYgdGhlIG1lc3NhZ2UgaXMKLSAgICAgICAgIyBmcmFnbWVudGVkLgotICAgICAg
ICBvcGNvZGUsIHBheWxvYWQsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MyA9ICgKLSAgICAgICAgICAg
IHBhcnNlX2ZyYW1lKF9yZWNlaXZlX2J5dGVzLCB1bm1hc2tfcmVjZWl2ZT1GYWxzZSkpCi0KLSAg
ICAgICAgc2VsZi5fcGVuZGluZ19mcmFnbWVudHMuYXBwZW5kKHBheWxvYWQpCi0KLSAgICAgICAg
aWYgc2VsZi5fY3VycmVudF9vcGNvZGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIG9wY29kZSA9
PSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ1NlbmRpbmcgaW52YWxpZCBjb250aW51YXRpb24gb3Bjb2RlJykKLSAgICAgICAgICAg
IHNlbGYuX2N1cnJlbnRfb3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBpZiBvcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdTZW5kaW5nIGludmFsaWQgb3Bjb2RlICVkJyAlIG9wY29kZSkK
LSAgICAgICAgaWYgbm90IGZpbjoKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGlubmVy
X2ZyYW1lX2RhdGEgPSAnJy5qb2luKHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzKQotICAgICAgICBz
ZWxmLl9wZW5kaW5nX2ZyYWdtZW50cyA9IFtdCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfb3Bjb2Rl
ID0gTm9uZQotCi0gICAgICAgICMgSGFuZGxlIGEgY29udHJvbCBtZXNzYWdlIG9uIHRoZSBwaHlz
aWNhbCBjaGFubmVsLgotICAgICAgICAjIFRPRE8oYmFzaGkpOiBTdXBwb3J0IG90aGVyIG9wY29k
ZXMgaWYgbmVlZGVkLgotICAgICAgICBpZiBvcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9DTE9TRToK
LSAgICAgICAgICAgIGlmIGxlbihwYXlsb2FkKSA+PSAyOgotICAgICAgICAgICAgICAgIHNlbGYu
c2VydmVyX2Nsb3NlX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHBheWxvYWRbOjJdKVswXQot
ICAgICAgICAgICAgY2xvc2VfYm9keSA9IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KAot
ICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsICcnKQotICAgICAg
ICAgICAgY2xvc2VfZnJhbWUgPSBjcmVhdGVfY2xvc2VfZnJhbWUoY2xvc2VfYm9keSwgbWFzaz1U
cnVlKQotICAgICAgICAgICAgc2VsZi5wdXRfYnl0ZXMoY2xvc2VfZnJhbWUpCi0gICAgICAgICAg
ICByZXR1cm4KLQotICAgICAgICAjIFBhcnNlIHRoZSBwYXlsb2FkIG9mIHRoZSBtZXNzYWdlIG9u
IHBoeXNpY2FsIGNoYW5uZWwuCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2Fk
UGFyc2VyKGlubmVyX2ZyYW1lX2RhdGEpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVh
ZF9jaGFubmVsX2lkKCkKLSAgICAgICAgaWYgY2hhbm5lbF9pZCA9PSBtdXguX0NPTlRST0xfQ0hB
Tk5FTF9JRDoKLSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzLmV4dGVuZChsaXN0KHBh
cnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAg
ICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2VsZi5fY2hhbm5lbF9kYXRhOgotICAgICAgICAgICAg
c2VsZi5fY2hhbm5lbF9kYXRhW2NoYW5uZWxfaWRdID0gX091dGdvaW5nQ2hhbm5lbERhdGEoKQot
ICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0KLQot
ICAgICAgICAjIFBhcnNlIGxvZ2ljYWwgZnJhbWVzIGFuZCBhc3NlbWJsZSBhbiBpbm5lciAobG9n
aWNhbCkgbWVzc2FnZS4KLSAgICAgICAgKGlubmVyX2ZpbiwgaW5uZXJfcnN2MSwgaW5uZXJfcnN2
MiwgaW5uZXJfcnN2MywgaW5uZXJfb3Bjb2RlLAotICAgICAgICAgaW5uZXJfcGF5bG9hZCkgPSBw
YXJzZXIucmVhZF9pbm5lcl9mcmFtZSgpCi0gICAgICAgIGlubmVyX2ZyYW1lID0gRnJhbWUoaW5u
ZXJfZmluLCBpbm5lcl9yc3YxLCBpbm5lcl9yc3YyLCBpbm5lcl9yc3YzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlubmVyX29wY29kZSwgaW5uZXJfcGF5bG9hZCkKLSAgICAgICAgbWVz
c2FnZSA9IGNoYW5uZWxfZGF0YS5idWlsZGVyLmJ1aWxkKGlubmVyX2ZyYW1lKQotICAgICAgICBp
ZiBtZXNzYWdlIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBpZiAobWVz
c2FnZS5vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9URVhUIG9yCi0gICAgICAgICAgICBtZXNzYWdl
Lm9wY29kZSA9PSBjb21tb24uT1BDT0RFX0JJTkFSWSk6Ci0gICAgICAgICAgICBjaGFubmVsX2Rh
dGEubWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UucGF5bG9hZCkKLQotICAgICAgICAgICAgc2VsZi5v
bl9kYXRhX21lc3NhZ2UobWVzc2FnZS5wYXlsb2FkKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgY2hhbm5lbF9kYXRhLmNvbnRyb2xfbWVzc2FnZXMuYXBwZW5kKAotICAgICAgICAgICAgICAg
IHsnb3Bjb2RlJzogbWVzc2FnZS5vcGNvZGUsCi0gICAgICAgICAgICAgICAgICdtZXNzYWdlJzog
bWVzc2FnZS5wYXlsb2FkfSkKLQotICAgIGRlZiBvbl9kYXRhX21lc3NhZ2Uoc2VsZiwgbWVzc2Fn
ZSk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBnZXRfd3JpdHRlbl9jb250cm9sX2Jsb2Nrcyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NvbnRyb2xfYmxvY2tzCi0KLSAgICBkZWYgZ2V0
X3dyaXR0ZW5fbWVzc2FnZXMoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIHJldHVybiBzZWxm
Ll9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0ubWVzc2FnZXMKLQotICAgIGRlZiBnZXRfd3JpdHRl
bl9jb250cm9sX21lc3NhZ2VzKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5fY2hhbm5lbF9kYXRhW2NoYW5uZWxfaWRdLmNvbnRyb2xfbWVzc2FnZXMKLQotCi1jbGFzcyBf
RmFpbE9uV3JpdGVDb25uZWN0aW9uKF9Nb2NrTXV4Q29ubmVjdGlvbik6Ci0gICAgIiIiU3BlY2lj
aWFsaXplZCB2ZXJzaW9uIG9mIF9Nb2NrTXV4Q29ubmVjdGlvbi4gSXRzIHdyaXRlKCkgbWV0aG9k
IHJhaXNlcwotICAgIGFuIGV4Y2VwdGlvbiBmb3IgdGVzdGluZyB3aGVuIGEgZGF0YSBtZXNzYWdl
IGlzIHdyaXR0ZW4uCi0gICAgIiIiCi0KLSAgICBkZWYgb25fZGF0YV9tZXNzYWdlKHNlbGYsIG1l
c3NhZ2UpOgotICAgICAgICAiIiJPdmVycmlkZSB0byByYWlzZSBhbiBleGNlcHRpb24uIiIiCi0K
LSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnRlbnRpb25hbCBmYWlsdXJlJykKLQotCi1jbGFz
cyBfQ2hhbm5lbEV2ZW50KG9iamVjdCk6Ci0gICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCByZWNvcmRz
IGNoYW5uZWwgZXZlbnRzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBz
ZWxmLnJlcXVlc3QgPSBOb25lCi0gICAgICAgIHNlbGYubWVzc2FnZXMgPSBbXQotICAgICAgICBz
ZWxmLmV4Y2VwdGlvbiA9IE5vbmUKLSAgICAgICAgc2VsZi5jbGllbnRfaW5pdGlhdGVkX2Nsb3Np
bmcgPSBGYWxzZQotCi0KLWNsYXNzIF9NdXhNb2NrRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIi
Ik1vY2sgY2xhc3Mgb2YgZGlzcGF0Y2guRGlzcGF0Y2hlciBmb3IgbXV4LiIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzID0ge30KLQotICAg
IGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIGlmIHJlcXVl
c3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlcXVl
c3Qud3NfcHJvdG9jb2wgPSByZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHNbMF0KLQotICAg
IGRlZiBfZG9fZWNobyhzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6Ci0gICAgICAgIHdo
aWxlIFRydWU6Ci0gICAgICAgICAgICBtZXNzYWdlID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2
ZV9tZXNzYWdlKCkKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UgPT0gTm9uZToKLSAgICAgICAgICAg
ICAgICBjaGFubmVsX2V2ZW50cy5jbGllbnRfaW5pdGlhdGVkX2Nsb3NpbmcgPSBUcnVlCi0gICAg
ICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBpZiBtZXNzYWdlID09ICdHb29kYnllJzoK
LSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxfZXZlbnRzLm1lc3Nh
Z2VzLmFwcGVuZChtZXNzYWdlKQotICAgICAgICAgICAgIyBlY2hvIGJhY2sKLSAgICAgICAgICAg
IHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShtZXNzYWdlKQotCi0gICAgZGVmIF9kb19w
aW5nKHNlbGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRzKToKLSAgICAgICAgcmVxdWVzdC53c19z
dHJlYW0uc2VuZF9waW5nKCdQaW5nIScpCi0KLSAgICBkZWYgX2RvX3Bpbmdfd2hpbGVfaGVsbG9f
d29ybGQoc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMpOgotICAgICAgICByZXF1ZXN0Lndz
X3N0cmVhbS5zZW5kX21lc3NhZ2UoJ0hlbGxvICcsIGVuZD1GYWxzZSkKLSAgICAgICAgcmVxdWVz
dC53c19zdHJlYW0uc2VuZF9waW5nKCdQaW5nIScpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFt
LnNlbmRfbWVzc2FnZSgnV29ybGQhJywgZW5kPVRydWUpCi0KLSAgICBkZWYgX2RvX3R3b19waW5n
X3doaWxlX2hlbGxvX3dvcmxkKHNlbGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRzKToKLSAgICAg
ICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKCdIZWxsbyAnLCBlbmQ9RmFsc2UpCi0g
ICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfcGluZygnUGluZyEnKQotICAgICAgICByZXF1
ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BvbmchJykKLSAgICAgICAgcmVxdWVzdC53c19zdHJl
YW0uc2VuZF9tZXNzYWdlKCdXb3JsZCEnLCBlbmQ9VHJ1ZSkKLQotICAgIGRlZiB0cmFuc2Zlcl9k
YXRhKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3Qu
Y2hhbm5lbF9pZF0gPSBfQ2hhbm5lbEV2ZW50KCkKLSAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50
c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLnJlcXVlc3QgPSByZXF1ZXN0Ci0KLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgIyBOb3RlOiBtb3JlIGhhbmRsZXIgd2lsbCBiZSBhZGRlZC4KLSAgICAgICAg
ICAgIGlmIHJlcXVlc3QudXJpLmVuZHN3aXRoKCdlY2hvJyk6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fZG9fZWNobyhyZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5j
aGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdKQotICAgICAgICAgICAgZWxpZiByZXF1
ZXN0LnVyaS5lbmRzd2l0aCgncGluZycpOgotICAgICAgICAgICAgICAgIHNlbGYuX2RvX3Bpbmco
cmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVu
dHNbcmVxdWVzdC5jaGFubmVsX2lkXSkKLSAgICAgICAgICAgIGVsaWYgcmVxdWVzdC51cmkuZW5k
c3dpdGgoJ3R3b19waW5nX3doaWxlX2hlbGxvX3dvcmxkJyk6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fZG9fdHdvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQoCi0gICAgICAgICAgICAgICAgICAgIHJl
cXVlc3QsIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXSkKLSAgICAgICAg
ICAgIGVsaWYgcmVxdWVzdC51cmkuZW5kc3dpdGgoJ3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQnKToK
LSAgICAgICAgICAgICAgICBzZWxmLl9kb19waW5nX3doaWxlX2hlbGxvX3dvcmxkKAotICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LCBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5l
bF9pZF0pCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ0Nhbm5vdCBoYW5kbGUgcGF0aCAlcicgJSByZXF1ZXN0LnBhdGgpCi0gICAgICAgICAgICBp
ZiBub3QgcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgICAgICByZXF1ZXN0
LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKLSAgICAgICAgZXhjZXB0IENvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRz
W3JlcXVlc3QuY2hhbm5lbF9pZF0uZXhjZXB0aW9uID0gZQotICAgICAgICBleGNlcHQgRXhjZXB0
aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5l
bF9pZF0uZXhjZXB0aW9uID0gZQotICAgICAgICAgICAgcmFpc2UKLQotCi1kZWYgX2NyZWF0ZV9t
b2NrX3JlcXVlc3QoY29ubmVjdGlvbj1Ob25lLCBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1O
b25lKToKLSAgICBpZiBjb25uZWN0aW9uIGlzIE5vbmU6Ci0gICAgICAgIGNvbm5lY3Rpb24gPSBf
TW9ja011eENvbm5lY3Rpb24oKQotCi0gICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QodXJp
PScvZWNobycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyc19pbj1fVEVT
VF9IRUFERVJTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb249Y29u
bmVjdGlvbikKLSAgICByZXF1ZXN0LndzX3N0cmVhbSA9IFN0cmVhbShyZXF1ZXN0LCBvcHRpb25z
PVN0cmVhbU9wdGlvbnMoKSkKLSAgICByZXF1ZXN0Lm11eF9wcm9jZXNzb3IgPSBNdXhFeHRlbnNp
b25Qcm9jZXNzb3IoCi0gICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLk1V
WF9FWFRFTlNJT04pKQotICAgIGlmIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zIGlzIG5vdCBO
b25lOgotICAgICAgICByZXF1ZXN0Lm11eF9wcm9jZXNzb3Iuc2V0X2V4dGVuc2lvbnMobG9naWNh
bF9jaGFubmVsX2V4dGVuc2lvbnMpCi0gICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnNldF9xdW90
YSg4ICogMTAyNCkKLSAgICByZXR1cm4gcmVxdWVzdAotCi0KLWRlZiBfY3JlYXRlX2FkZF9jaGFu
bmVsX3JlcXVlc3RfZnJhbWUoY2hhbm5lbF9pZCwgZW5jb2RpbmcsIGVuY29kZWRfaGFuZHNoYWtl
KToKLSAgICAjIEFsbG93IGludmFsaWQgZW5jb2RpbmcgZm9yIHRlc3RpbmcuCi0gICAgZmlyc3Rf
Ynl0ZSA9ICgobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QgPDwgNSkgfCBlbmNv
ZGluZykKLSAgICBwYXlsb2FkID0gKGNocihmaXJzdF9ieXRlKSArCi0gICAgICAgICAgICAgICBt
dXguX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKLSAgICAgICAgICAgICAgIG11eC5f
ZW5jb2RlX251bWJlcihsZW4oZW5jb2RlZF9oYW5kc2hha2UpKSArCi0gICAgICAgICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZSkKLSAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICAg
ICAgKG11eC5fZW5jb2RlX2NoYW5uZWxfaWQobXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgcGF5
bG9hZCksIG1hc2s9VHJ1ZSkKLQotCi1kZWYgX2NyZWF0ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hh
bm5lbF9pZCwgY29kZT1Ob25lLCBtZXNzYWdlPScnKToKLSAgICBwYXlsb2FkID0gbXV4Ll9jcmVh
dGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2UpCi0gICAgcmV0dXJuIGNy
ZWF0ZV9iaW5hcnlfZnJhbWUoCi0gICAgICAgIChtdXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5f
Q09OVFJPTF9DSEFOTkVMX0lEKSArIHBheWxvYWQpLCBtYXNrPVRydWUpCi0KLQotZGVmIF9jcmVh
dGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1b3RhKToKLSAg
ICBwYXlsb2FkID0gbXV4Ll9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQsIHJlcGxlbmlz
aGVkX3F1b3RhKQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAotICAgICAgICAobXV4
Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBwYXlsb2FkKSwg
bWFzaz1UcnVlKQotCi0KLWRlZiBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZCwgbWVz
c2FnZSwgb3Bjb2RlPWNvbW1vbi5PUENPREVfQklOQVJZLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaW49VHJ1ZSwgcnN2MT1GYWxzZSwgcnN2Mj1GYWxzZSwgcnN2Mz1GYWxzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWFzaz1UcnVlKToKLSAgICBiaXRzID0gY2hyKChmaW4gPDwg
NykgfCAocnN2MSA8PCA2KSB8IChyc3YyIDw8IDUpIHwgKHJzdjMgPDwgNCkgfCBvcGNvZGUpCi0g
ICAgcGF5bG9hZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKyBiaXRzICsg
bWVzc2FnZQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKHBheWxvYWQsIG1hc2s9VHJ1
ZSkKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycsIGV4dGVuc2lv
bnM9Tm9uZSk6Ci0gICAgaGVhZGVycyA9ICgKLSAgICAgICAgJ0dFVCAlcyBIVFRQLzEuMVxyXG4n
Ci0gICAgICAgICdIb3N0OiBzZXJ2ZXIuZXhhbXBsZS5jb21cclxuJwotICAgICAgICAnQ29ubmVj
dGlvbjogVXBncmFkZVxyXG4nCi0gICAgICAgICdPcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxy
XG4nKSAlIHBhdGgKLSAgICBpZiBleHRlbnNpb25zOgotICAgICAgICBoZWFkZXJzICs9ICclczog
JXMnICUgKAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFE
RVIsIGV4dGVuc2lvbnMpCi0gICAgcmV0dXJuIGhlYWRlcnMKLQotCi1jbGFzcyBNdXhUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBtdXggbW9kdWxlLiIiIgot
Ci0gICAgZGVmIHRlc3RfY2hhbm5lbF9pZF9kZWNvZGUoc2VsZik6Ci0gICAgICAgIGRhdGEgPSAn
XHgwMFx4MDFceGJmXHhmZlx4ZGZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYnCi0gICAgICAgIHBh
cnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGNoYW5uZWxf
aWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgw
LCBjaGFubmVsX2lkKQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9p
ZCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgY2hhbm5lbF9pZCkKLSAgICAgICAgY2hh
bm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDIgKiogMTQgLSAxLCBjaGFubmVsX2lkKQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2Vy
LnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiAqKiAyMSAtIDEs
IGNoYW5uZWxfaWQpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lk
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyICoqIDI5IC0gMSwgY2hhbm5lbF9pZCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YSksIHBhcnNlci5fcmVhZF9wb3NpdGlvbikK
LQotICAgIGRlZiB0ZXN0X2NoYW5uZWxfaWRfZW5jb2RlKHNlbGYpOgotICAgICAgICBlbmNvZGVk
ID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdc
eDAwJywgZW5jb2RlZCkKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQo
MiAqKiAxNCAtIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YmZceGZmJywgZW5jb2Rl
ZCkKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAqKiAxNCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhjMEBceDAwJywgZW5jb2RlZCkKLSAgICAgICAgZW5j
b2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAqKiAyMSAtIDEpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1x4ZGZceGZmXHhmZicsIGVuY29kZWQpCi0gICAgICAgIGVuY29kZWQgPSBt
dXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMjEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1x4ZTAgXHgwMFx4MDAnLCBlbmNvZGVkKQotICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVf
Y2hhbm5lbF9pZCgyICoqIDI5IC0gMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhmZlx4
ZmZceGZmXHhmZicsIGVuY29kZWQpCi0gICAgICAgICMgY2hhbm5lbF9pZCBpcyB0b28gbGFyZ2UK
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgMiAqKiAyOSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfbXVsdGlwbGVfY29udHJvbF9ibG9ja3Mo
c2VsZik6Ci0gICAgICAgICMgVXNlIEFkZENoYW5uZWxSZXF1ZXN0IGJlY2F1c2UgaXQgY2FuIGNv
bnRhaW4gYXJiaXRyYXJ5IGxlbmd0aCBvZiBkYXRhCi0gICAgICAgIGRhdGEgPSAoJ1x4MDBceDAx
XHgwMWEnCi0gICAgICAgICAgICAgICAgJ1x4MDBceDAyXHg3ZCVzJwotICAgICAgICAgICAgICAg
ICdceDAwXHgwM1x4N2VceGZmXHhmZiVzJwotICAgICAgICAgICAgICAgICdceDAwXHgwNFx4N2Zc
eDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMCVzJykgJSAoCi0gICAgICAgICAgICAnYScg
KiAweDdkLCAnYicgKiAweGZmZmYsICdjJyAqIDB4MTAwMDApCi0gICAgICAgIHBhcnNlciA9IG11
eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFy
c2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0LCBs
ZW4oYmxvY2tzKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9B
RERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMF0ub3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIGxlbihibG9ja3NbMF0uZW5jb2RlZF9oYW5kc2hha2UpKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1sxXS5v
cGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgYmxvY2tzWzFdLmNoYW5uZWxfaWQp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMHg3ZCwgbGVuKGJsb2Nrc1sxXS5lbmNvZGVkX2hh
bmRzaGFrZSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQURE
X0NIQU5ORUxfUkVRVUVTVCwgYmxvY2tzWzJdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgzLCBibG9ja3NbMl0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgw
eGZmZmYsIGxlbihibG9ja3NbMl0uZW5jb2RlZF9oYW5kc2hha2UpKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1sz
XS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNCwgYmxvY2tzWzNdLmNoYW5uZWxf
aWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMHgxMDAwMCwgbGVuKGJsb2Nrc1szXS5lbmNv
ZGVkX2hhbmRzaGFrZSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YSksIHBh
cnNlci5fcmVhZF9wb3NpdGlvbikKLQotICAgIGRlZiB0ZXN0X3JlYWRfYWRkX2NoYW5uZWxfcmVx
dWVzdChzZWxmKToKLSAgICAgICAgZGF0YSA9ICdceDAwXHgwMVx4MDFhJwotICAgICAgICBwYXJz
ZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBibG9ja3MgPSBs
aXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1swXS5vcGNvZGUp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2Nrc1swXS5lbmNvZGVkX2hhbmRzaGFrZSkp
Ci0KLSAgICBkZWYgdGVzdF9yZWFkX2Ryb3BfY2hhbm5lbChzZWxmKToKLSAgICAgICAgZGF0YSA9
ICdceDYwXHgwMVx4MDAnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFy
c2VyKGRhdGEpCi0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9j
a3MoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMLCBibG9ja3NbMF0ub3Bjb2Rl
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGJsb2Nrc1swXS5kcm9wX2NvZGUpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKGJsb2Nrc1swXS5kcm9wX21lc3NhZ2UpKQot
Ci0gICAgICAgIGRhdGEgPSAnXHg2MFx4MDJceDA5XHgwM1x4ZThTdWNjZXNzJwotICAgICAgICBw
YXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBibG9ja3Mg
PSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgbGVuKGJsb2NrcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgYmxvY2tz
WzBdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RF
X0RST1BfQ0hBTk5FTCwgYmxvY2tzWzBdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgxMDAwLCBibG9ja3NbMF0uZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdT
dWNjZXNzJywgYmxvY2tzWzBdLmRyb3BfbWVzc2FnZSkKLQotICAgICAgICAjIFJlYXNvbiBpcyB0
b28gc2hvcnQuCi0gICAgICAgIGRhdGEgPSAnXHg2MFx4MDFceDAxXHgwMCcKLSAgICAgICAgcGFy
c2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMobXV4LlBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBsYW1iZGE6IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkpCi0KLSAg
ICBkZWYgdGVzdF9yZWFkX2Zsb3dfY29udHJvbChzZWxmKToKLSAgICAgICAgZGF0YSA9ICdceDQw
XHgwMVx4MDInCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRh
dGEpCi0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChtdXguX01VWF9PUENPREVfRkxPV19DT05UUk9MLCBibG9ja3NbMF0ub3Bjb2RlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGJsb2Nrc1swXS5zZW5kX3F1b3RhKQotCi0gICAgZGVm
IHRlc3RfcmVhZF9uZXdfY2hhbm5lbF9zbG90KHNlbGYpOgotICAgICAgICBkYXRhID0gJ1x4ODBc
eDAxXHgwMlx4MDJceDAzJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBh
cnNlcihkYXRhKQotICAgICAgICAjIFRPRE8oYmFzaGkpOiBJbXBsZW1lbnQKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMobXV4LlBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBsYW1iZGE6IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkp
Ci0KLSAgICBkZWYgdGVzdF9yZWFkX2ludmFsaWRfbnVtYmVyX2ZpZWxkX2luX2NvbnRyb2xfYmxv
Y2soc2VsZik6Ci0gICAgICAgICMgTm8gbnVtYmVyIGZpZWxkLgotICAgICAgICBkYXRhID0gJycK
LSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQot
ICAgICAgICAjIFRoZSBsYXN0IHR3byBieXRlcyBhcmUgbWlzc2luZy4KLSAgICAgICAgZGF0YSA9
ICdceDdlJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRh
KQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVt
YmVyKQotCi0gICAgICAgICMgTWlzc2luZyB0aGUgbGFzdCBvbmUgYnl0ZS4KLSAgICAgICAgZGF0
YSA9ICdceDdmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAxXHgwMCcKLSAgICAgICAgcGFyc2VyID0g
bXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAgICAjIFRoZSBsZW5n
dGggb2YgbnVtYmVyIGZpZWxkIGlzIHRvbyBsYXJnZS4KLSAgICAgICAgZGF0YSA9ICdceDdmXHhm
Zlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4
RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVl
RXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBUaGUgbXNiIG9mIHRoZSBm
aXJzdCBieXRlIGlzIHNldC4KLSAgICAgICAgZGF0YSA9ICdceDgwJwotICAgICAgICBwYXJzZXIg
PSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0gICAgICAgICMgVXNpbmcg
MyBieXRlcyBlbmNvZGluZyBmb3IgMTI1LgotICAgICAgICBkYXRhID0gJ1x4N2VceDAwXHg3ZCcK
LSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQot
ICAgICAgICAjIFVzaW5nIDkgYnl0ZXMgZW5jb2RpbmcgZm9yIDB4ZmZmZgotICAgICAgICBkYXRh
ID0gJ1x4N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGZmXHhmZicKLSAgICAgICAgcGFyc2Vy
ID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgIGRlZiB0ZXN0X3Jl
YWRfaW52YWxpZF9zaXplX2FuZF9jb250ZW50cyhzZWxmKToKLSAgICAgICAgIyBPbmx5IGNvbnRh
aW4gbnVtYmVyIGZpZWxkLgotICAgICAgICBkYXRhID0gJ1x4MDEnCi0gICAgICAgIHBhcnNlciA9
IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKG11eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyc2VyLl9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKQotCi0gICAgZGVmIHRlc3RfY3JlYXRl
X2FkZF9jaGFubmVsX3Jlc3BvbnNlKHNlbGYpOgotICAgICAgICBkYXRhID0gbXV4Ll9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVzcG9uc2UoY2hhbm5lbF9pZD0xLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9J0Zvb0JhcicsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0w
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0
ZWQ9RmFsc2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MjBceDAxXHgwNkZvb0Jhcics
IGRhdGEpCi0KLSAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNl
KGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPSdIZWxsbycsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0xLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0ZWQ9VHJ1ZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnXHgzMVx4MDJceDA1SGVsbG8nLCBkYXRhKQotCi0gICAgZGVmIHRlc3Rf
Y3JlYXRlX2Ryb3BfY2hhbm5lbChzZWxmKToKLSAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2Ry
b3BfY2hhbm5lbChjaGFubmVsX2lkPTEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4NjBc
eDAxXHgwMCcsIGRhdGEpCi0KLSAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2Ryb3BfY2hhbm5l
bChjaGFubmVsX2lkPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29kZT0yMDAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J2Vycm9yJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg2MFx4MDFceDA3XHgwN1x4
ZDBlcnJvcicsIGRhdGEpCi0KLSAgICAgICAgIyByZWFzb24gbXVzdCBiZSBlbXB0eSBpZiBjb2Rl
IGlzIE5vbmUKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV4Ll9jcmVhdGVfZHJvcF9jaGFubmVsLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAxLCBOb25lLCAnRm9vQmFyJykKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3Jl
cXVlc3RfdGV4dChzZWxmKToKLSAgICAgICAgcmVxdWVzdF90ZXh0ID0gX2NyZWF0ZV9yZXF1ZXN0
X2hlYWRlcigpCi0gICAgICAgIGNvbW1hbmQsIHBhdGgsIHZlcnNpb24sIGhlYWRlcnMgPSBtdXgu
X3BhcnNlX3JlcXVlc3RfdGV4dChyZXF1ZXN0X3RleHQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ0dFVCcsIGNvbW1hbmQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9lY2hvJywgcGF0
aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSFRUUC8xLjEnLCB2ZXJzaW9uKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDMsIGxlbihoZWFkZXJzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnc2VydmVyLmV4YW1wbGUuY29tJywgaGVhZGVyc1snSG9zdCddKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdodHRwOi8vZXhhbXBsZS5jb20nLCBoZWFkZXJzWydPcmlnaW4nXSkKLQot
Ci1jbGFzcyBNdXhIYW5kbGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVz
dF9hZGRfY2hhbm5lbChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1
ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAg
IG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAg
ICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxf
c2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkK
LQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0
aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0w
LAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQot
ICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVs
X2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9y
ZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3Qg
PSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVs
X2lkPTMsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVk
X2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hh
bm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250
cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0z
LCBtZXNzYWdlPSdXb3JsZCcpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2Fn
ZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29v
ZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0nR29vZGJ5ZScp
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUo
dGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBkaXNwYXRjaGVyLmNo
YW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVs
bG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbJ1dvcmxkJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbM10ubWVz
c2FnZXMpCi0gICAgICAgICMgQ2hhbm5lbCAyCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBt
ZXNzYWdlc1swXSkKLSAgICAgICAgIyBDaGFubmVsIDMKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3Js
ZCcsIG1lc3NhZ2VzWzBdKQotICAgICAgICBjb250cm9sX2Jsb2NrcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICMgVGhlcmUgc2hvdWxk
IGJlIDggY29udHJvbCBibG9ja3M6Ci0gICAgICAgICMgICAtIDEgTmV3Q2hhbm5lbFNsb3QKLSAg
ICAgICAgIyAgIC0gMiBBZGRDaGFubmVsUmVzcG9uc2VzIGZvciBjaGFubmVsIGlkIDIgYW5kIDMK
LSAgICAgICAgIyAgIC0gNiBGbG93Q29udHJvbHMgZm9yIGNoYW5uZWwgaWQgMSAoaW5pdGlhbGl6
ZSksICdIZWxsbycsICdXb3JsZCcsCi0gICAgICAgICMgICAgIGFuZCAzICdHb29kYnllJ3MKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCg5LCBsZW4oY29udHJvbF9ibG9ja3MpKQotCi0gICAgZGVm
IHRlc3RfcGh5c2ljYWxfY29ubmVjdGlvbl93cml0ZV9mYWlsdXJlKHNlbGYpOgotICAgICAgICAj
IFVzZSBfRmFpbE9uV3JpdGVDb25uZWN0aW9uLgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9t
b2NrX3JlcXVlc3QoY29ubmVjdGlvbj1fRmFpbE9uV3JpdGVDb25uZWN0aW9uKCkpCi0KLSAgICAg
ICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVy
ID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5k
bGVyLnN0YXJ0KCkKLQotICAgICAgICAjIExldCB0aGUgd29ya2VyIGVjaG8gYmFjayAnSGVsbG8n
LiBJdCBjYXVzZXMgX0ZhaWxPbldyaXRlQ29ubmVjdGlvbgotICAgICAgICAjIHJhaXNpbmcgYW4g
ZXhjZXB0aW9uLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nSGVsbG8n
KSkKLQotICAgICAgICAjIExldCB0aGUgd29ya2VyIGV4aXQuIFRoaXMgd2lsbCBiZSB1bm5lY2Vz
c2FyeSB3aGVuCi0gICAgICAgICMgX0xvZ2ljYWxDb25uZWN0aW9uLndyaXRlKCkgaXMgY2hhbmdl
ZCB0byB0aHJvdyBhbiBleGNlcHRpb24gaWYKLSAgICAgICAgIyB3b2tlIHVwIGJ5IG9uX3dyaXRl
cl9kb25lLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScp
KQotCi0gICAgICAgICMgQWxsIHRocmVhZHMgc2hvdWxkIGJlIGRvbmUuCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAg
IGRlZiB0ZXN0X3NlbmRfYmxvY2tlZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
bW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigp
Ci0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNo
ZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9G
T1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0
X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3Jl
YXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIs
IGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRz
aGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9y
ZXF1ZXN0KQotCi0gICAgICAgICMgT24gcmVjZWl2aW5nIHRoaXMgJ0hlbGxvJywgdGhlIHNlcnZl
ciB0cmllcyB0byBlY2hvIGJhY2sgJ0hlbGxvJywKLSAgICAgICAgIyBidXQgaXQgd2lsbCBiZSBi
bG9ja2VkIHNpbmNlIHRoZXJlJ3Mgbm8gc2VuZCBxdW90YSBhdmFpbGFibGUgZm9yIHRoZQotICAg
ICAgICAjIGNoYW5uZWwgMi4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9
J0hlbGxvJykpCi0KLSAgICAgICAgIyBXYWl0IHVudGlsIHRoZSB3b3JrZXIgaXMgYmxvY2tlZCBk
dWUgdG8gc2VuZCBxdW90YSBzaG9ydGFnZS4KLSAgICAgICAgdGltZS5zbGVlcCgxKQotCi0gICAg
ICAgICMgQ2xvc2UgdGhlIGNoYW5uZWwgMi4gVGhlIHdvcmtlciBzaG91bGQgYmUgbm90aWZpZWQg
b2YgdGhlIGVuZCBvZgotICAgICAgICAjIHdyaXRlciB0aHJlYWQgYW5kIHN0b3Agd2FpdGluZyBm
b3Igc2VuZCBxdW90YSB0byBiZSByZXBsZW5pc2hlZC4KLSAgICAgICAgZHJvcF9jaGFubmVsID0g
X2NyZWF0ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hhbm5lbF9pZD0yKQotCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZHJvcF9jaGFubmVsKQotCi0gICAgICAgICMgTWFrZSBz
dXJlIHRoZSBjaGFubmVsIDEgaXMgYWxzbyBjbG9zZWQuCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9
IF9jcmVhdGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxfaWQ9MSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhkcm9wX2NoYW5uZWwpCi0KLSAgICAgICAgIyBBbGwgdGhy
ZWFkcyBzaG91bGQgYmUgZG9uZS4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxf
ZGVsdGFfZW5jb2Rpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAg
ICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAg
ICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVs
X3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQp
Ci0KLSAgICAgICAgZGVsdGEgPSAnR0VUIC9lY2hvIEhUVFAvMS4xXHJcblxyXG4nCi0gICAgICAg
IGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUo
Ci0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTEsIGVuY29kZWRfaGFuZHNoYWtl
PWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVs
X3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xf
ZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1l
c3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91
bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxv
J10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIG1lc3Nh
Z2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2Rl
bHRhX2VuY29kaW5nX292ZXJyaWRlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9t
b2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkK
LSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hl
cikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRf
Y2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1Jf
Q0xJRU5UKQotCi0gICAgICAgICMgT3ZlcnJpZGUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbC4KLSAg
ICAgICAgZGVsdGEgPSAoJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAgICAgICAgICAg
ICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiB4LWZvb1xyXG4nCi0gICAgICAgICAgICAgICAgICdc
clxuJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5j
b2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRl
X2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhf
aGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykK
LSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2Fn
ZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCd4LWZvbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5j
aGFubmVsX2V2ZW50c1syXS5yZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfYWRk
X2NoYW5uZWxfZGVsdGFfYWZ0ZXJfaWRlbnRpdHkoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3Bh
dGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBk
aXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5k
bGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9U
UywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FV
T1RBX0ZPUl9DTElFTlQpCi0gICAgICAgICMgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBpcyBkaWZm
ZXJlbnQgZnJvbSBjbGllbnQncyBvcGVuaW5nIGhhbmRzaGFrZQotICAgICAgICAjIG9mIHRoZSBw
aHlzaWNhbCBjb25uZWN0aW9uLgotICAgICAgICAjIFRPRE8oYmFzaGkpOiBSZW1vdmUgVXBncmFk
ZSwgQ29ubmVjdGlvbiwgU2VjLVdlYlNvY2tldC1LZXkgYW5kCi0gICAgICAgICMgU2VjLVdlYlNv
Y2tldC1WZXJzaW9uLgotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9ICgKLSAgICAgICAgICAg
ICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJwotICAgICAgICAgICAgJ0hvc3Q6IHNlcnZlci5leGFt
cGxlLmNvbVxyXG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogeC1mb29c
clxuJwotICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICAgICAgICAg
J09yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAgICdcclxuJykKLSAg
ICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9m
cmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19j
b250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9x
dW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJv
bCkKLQotICAgICAgICBkZWx0YSA9ICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuXHJcbicKLSAgICAg
ICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFt
ZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hh
a2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5u
ZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJv
bF9mcmFtZShjaGFubmVsX2lkPTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9Mywg
bWVzc2FnZT0nV29ybGQnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFu
bmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxv
J10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydXb3JsZCddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzNdLm1lc3Nh
Z2VzKQotICAgICAgICAjIENoYW5uZWwgMgotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29u
bmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVz
c2FnZXNbMF0pCi0gICAgICAgICMgQ2hhbm5lbCAzCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVz
dC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDMpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQn
LCBtZXNzYWdlc1swXSkKLSAgICAgICAgIyBIYW5kc2hha2UgYmFzZSBzaG91bGQgYmUgdXBkYXRl
ZC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICd4LWZvbycsCi0gICAg
ICAgICAgICBtdXhfaGFuZGxlci5faGFuZHNoYWtlX2Jhc2UuX2hlYWRlcnNbJ1NlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2wnXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRhX3JlbW92ZV9o
ZWFkZXIoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0g
ICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFu
ZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhf
aGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11
eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0gICAgICAg
ICMgT3ZlcnJpZGUgaGFuZHNoYWtlIGRlbHRhIGJhc2UuCi0gICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlID0gKAotICAgICAgICAgICAgJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAgICAg
ICAnSG9zdDogc2VydmVyLmV4YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29j
a2V0LVByb3RvY29sOiB4LWZvb1xyXG4nCi0gICAgICAgICAgICAnQ29ubmVjdGlvbjogVXBncmFk
ZVxyXG4nCi0gICAgICAgICAgICAnT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAg
ICAgICAgICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9h
ZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNv
ZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2Up
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVz
dCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShj
aGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgUmVtb3ZlIFNlYy1XZWJTb2NrZXQt
UHJvdG9jb2wgaGVhZGVyLgotICAgICAgICBkZWx0YSA9ICgnR0VUIC9lY2hvIEhUVFAvMS4xXHJc
bicKLSAgICAgICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6JwotICAgICAgICAg
ICAgICAgICAnXHJcbicpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2Fk
ZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29k
aW5nPTEsIGVuY29kZWRfaGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9s
ID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0zLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J1dvcmxkJykpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0z
LCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5k
bGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1l
c3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnV29ybGQnXSwgZGlzcGF0Y2hlci5j
aGFubmVsX2V2ZW50c1szXS5tZXNzYWdlcykKLSAgICAgICAgIyBDaGFubmVsIDIKLSAgICAgICAg
bWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotICAgICAgICAjIENoYW5uZWwgMwotICAg
ICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygz
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbWVzc2FnZXNbMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCi0gICAgICAgICAgICAneC1mb28nLAotICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFu
bmVsX2V2ZW50c1syXS5yZXF1ZXN0LndzX3Byb3RvY29sKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgTm9uZSwKLSAgICAgICAgICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9l
dmVudHNbM10ucmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVs
X2RlbHRhX2VuY29kaW5nX3Blcm1lc3NhZ2VfZGVmbGF0ZShzZWxmKToKLSAgICAgICAgIyBFbmFi
bGUgcGVybWVzc2FnZSBkZWZsYXRlIGV4dGVuc2lvbiBvbiB0aGUgaW1wbGljaXRseSBvcGVuZWQg
Y2hhbm5lbC4KLSAgICAgICAgZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAot
ICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgKLSAgICAgICAgICAgIGxvZ2ljYWxfY2hh
bm5lbF9leHRlbnNpb25zPWV4dGVuc2lvbnMpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9j
a0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1
ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11
eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5F
TF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklU
SUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZGVsdGEgPSAnR0VUIC9lY2hvIEhUVFAv
MS4xXHJcblxyXG4nCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9j
aGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5n
PTEsIGVuY29kZWRfaGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0g
X2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0yMCkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAg
ICAgICAgIyBTZW5kIGNvbXByZXNzZWQgJ0hlbGxvJyBvbiBsb2dpY2FsIGNoYW5uZWwgMSBhbmQg
Mi4KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxp
Yi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykK
LSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxV
U0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1UcnVlKSkKLQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhf
aGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9l
dmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgICMgV3JpdHRlbiAnSGVsbG8ncyBzaG91bGQgYmUg
Y29tcHJlc3NlZC4KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dy
aXR0ZW5fbWVzc2FnZXMoMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2Fn
ZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2Vz
WzBdKQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9t
ZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcHJlc3NlZF9oZWxsbywgbWVzc2FnZXNbMF0pCi0K
LSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9lbmNvZGluZ19yZW1vdmVfZXh0ZW5zaW9u
cyhzZWxmKToKLSAgICAgICAgIyBFbmFibGUgcGVybWVzc2FnZSBkZWZsYXRlIGV4dGVuc2lvbiBv
biB0aGUgaW1wbGljaXRseSBvcGVuZWQgY2hhbm5lbC4KLSAgICAgICAgZXh0ZW5zaW9ucyA9IGNv
bW1vbi5wYXJzZV9leHRlbnNpb25zKAotICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVG
TEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgK
LSAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zPWV4dGVuc2lvbnMpCi0gICAg
ICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxl
ciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFu
ZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5f
SU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAg
IyBSZW1vdmUgcGVybWVzc2FnZSBkZWZsYXRlIGV4dGVuc2lvbi4KLSAgICAgICAgZGVsdGEgPSAo
J0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0
LUV4dGVuc2lvbnM6XHJcbicKLSAgICAgICAgICAgICAgICAgJ1xyXG4nKQotICAgICAgICBhZGRf
Y2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAg
ICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0
YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1
ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjApCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCBjb21wcmVzc2VkIG1l
c3NhZ2Ugb24gbG9naWNhbCBjaGFubmVsIDIuIFRoZSBtZXNzYWdlIHNob3VsZAotICAgICAgICAj
IGJlIHJlamVjdGVkIChzaW5jZSByc3YxIGlzIHNldCkuCi0gICAgICAgIGNvbXByZXNzID0gemxp
Yi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6
bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8g
PSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9
IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hl
bGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0y
LCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcnN2MT1UcnVlKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2Fn
ZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0
X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAot
ICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29u
dHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RF
X0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9O
T1JNQUxfQ0xPU1VSRSwgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgyLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLSAgICAgICAgIyBVbnN1cHBvcnRl
ZEZyYW1lRXhjZXB0aW9uIHNob3VsZCBiZSByYWlzZWQgb24gbG9naWNhbCBjaGFubmVsIDIuCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVu
dHNbMl0uZXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbnN1
cHBvcnRlZEZyYW1lRXhjZXB0aW9uKSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2ludmFs
aWRfZW5jb2Rpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0K
LSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9
Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5u
ZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MywK
LSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0
PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBi
IGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAg
ICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1VOS05PV05fUkVRVUVTVF9FTkNP
RElORywKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRf
RVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZl
cl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfaW5jb21wbGV0ZV9oYW5k
c2hha2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0g
ICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFu
ZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhf
aGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11
eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAg
ICAgaW5jb21wbGV0ZV9lbmNvZGVkX2hhbmRzaGFrZSA9ICdHRVQgL2VjaG8gSFRUUC8xLjEnCi0g
ICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3Rf
ZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZT1pbmNvbXBsZXRlX2VuY29kZWRfaGFuZHNoYWtlKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9Mikp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKDEgaW4gZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50
cykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCAyIGluIGRpc3BhdGNoZXIuY2hhbm5lbF9l
dmVudHMpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kdXBsaWNhdGVfY2hhbm5lbF9pZChz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAg
ZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0g
bXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVy
LnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklU
SUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAg
ICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2Zy
YW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAg
ZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAg
ZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25u
ZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bj
b2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobXV4Ll9EUk9QX0NPREVfQ0hBTk5FTF9BTFJFQURZX0VYSVNUUywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0g
ICAgZGVmIHRlc3RfcmVjZWl2ZV9kcm9wX2NoYW5uZWwoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rp
c3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0
LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9o
YW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9T
TE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFM
X1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRl
X3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVz
dCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5u
ZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29k
ZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9j
aGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gX2NyZWF0ZV9kcm9wX2No
YW5uZWxfZnJhbWUoY2hhbm5lbF9pZD0yKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGRyb3BfY2hhbm5lbCkKLQotICAgICAgICAjIFRlcm1pbmF0ZSBpbXBsaWNpdGx5IG9w
ZW5lZCBjaGFubmVsLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29v
ZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGls
X2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBleGNlcHRpb24gPSBkaXNwYXRjaGVyLmNoYW5u
ZWxfZXZlbnRzWzJdLmV4Y2VwdGlvbgotICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhjZXB0aW9u
Ll9fY2xhc3NfXyA9PSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbikKLQotICAgIGRlZiB0
ZXN0X3JlY2VpdmVfcGluZ19mcmFtZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
bW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigp
Ci0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNo
ZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRk
X2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9S
X0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9o
ZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBl
bmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hh
a2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVx
dWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFt
ZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEzKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICBwaW5nX2ZyYW1lID0gX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbyBXb3JsZCEnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJTkcpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZ19mcmFtZSkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAg
ICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3Nh
Z2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBtZXNz
YWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxk
IScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdt
ZW50ZWRfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0
KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11
eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAg
IG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xv
dHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQot
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0n
L2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5l
bF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAot
ICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAg
ICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lk
PTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cGxlbmlzaGVkX3F1b3RhPTEzKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgYSBwaW5nIHdpdGggbWVzc2FnZSAnSGVs
bG8gd29ybGQhJyBpbiB0d28gZnJhZ21lbnRlZCBmcmFtZXMuCi0gICAgICAgIHBpbmdfZnJhbWUx
ID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5H
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmdfZnJhbWUxKQotICAg
ICAgICBwaW5nX2ZyYW1lMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1dvcmxk
IScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29t
bW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMocGluZ19mcmFtZTIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3Nh
Z2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dv
b2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRp
bF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbW1vbi5PUENPREVfUE9ORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEnLCBtZXNzYWdlc1swXVsnbWVzc2FnZSddKQot
Ci0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudGVkX3Bpbmdfd2hpbGVfcmVjZWl2aW5nX2Zy
YWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19y
ZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAg
ICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0g
ICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5u
ZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVO
VCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIo
cGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGlu
Zz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkK
LQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxlbmlzaGVkX3F1b3RhPTE5KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgYSBmcmFnbWVudGVkIGZyYW1l
IG9mIG1lc3NhZ2UgJ0hlbGxvICcuCi0gICAgICAgIGhlbGxvID0gX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZT0nSGVsbG8gJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmluPUZhbHNlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGhlbGxvKQot
Ci0gICAgICAgICMgQmVmb3JlIHNlbmRpbmcgdGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0
aGUgbWVzc2FnZSwgc2VuZCBhCi0gICAgICAgICMgZnJhZ21lbnRlZCBwaW5nLgotICAgICAgICBw
aW5nMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1BpJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcxKQotICAgICAgICBwaW5nMiA9IF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2U9J25nIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNv
ZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMocGluZzIpCi0KLSAgICAgICAgIyBTZW5kIHRoZSBsYXN0IGZyYWdtZW50ZWQg
ZnJhbWUgb2YgdGhlIG1lc3NhZ2UuCi0gICAgICAgIHdvcmxkID0gX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZT0nV29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1j
b21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyh3b3JsZCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0n
R29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5
ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2Rv
bmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8g
V29ybGQhJ10sIG1lc3NhZ2VzKQotICAgICAgICBjb250cm9sX21lc3NhZ2VzID0gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BPTkcsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ29wY29k
ZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIGNvbnRyb2xfbWVzc2FnZXNb
MF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfdHdvX3Bpbmdfd2hpbGVfcmVj
ZWl2aW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hl
cigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3Bh
dGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIu
YWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFf
Rk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVz
dF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0y
LCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5k
c2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9m
cmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTI1KQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgYSBmcmFnbWVu
dGVkIGZyYW1lIG9mIG1lc3NhZ2UgJ0hlbGxvICcuCi0gICAgICAgIGhlbGxvID0gX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZT0nSGVsbG8gJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmluPUZhbHNlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGhlbGxvKQotCi0gICAgICAgICMgQmVmb3JlIHNlbmRpbmcgdGhlIGxhc3QgZnJhZ21lbnRlZCBm
cmFtZSBvZiB0aGUgbWVzc2FnZSwgc2VuZCBhCi0gICAgICAgICMgZnJhZ21lbnRlZCBwaW5nIGFu
ZCBhIG5vbi1mcmFnbWVudGVkIHBpbmcuCi0gICAgICAgIHBpbmcxID0gX2NyZWF0ZV9sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVzc2FnZT0nUGknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aW49RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1j
b21tb24uT1BDT0RFX1BJTkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
cGluZzEpCi0gICAgICAgIHBpbmcyID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nbmchJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJ
TlVBVElPTikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMikKLSAg
ICAgICAgcGluZzMgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQb25nIScsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmczKQotCi0gICAgICAgICMgU2VuZCB0
aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lIG9mIHRoZSBtZXNzYWdlLgotICAgICAgICB3b3JsZCA9
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1dvcmxkIScsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMod29ybGQpCi0KLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxkISddLCBtZXNzYWdlcykKLSAgICAgICAgY29udHJvbF9t
ZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2Vz
KDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9s
X21lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEn
LCBjb250cm9sX21lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9sX21lc3NhZ2VzWzFdWydvcGNvZGUnXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUG9uZyEnLCBjb250cm9sX21lc3NhZ2VzWzFdWydtZXNz
YWdlJ10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2Vfd2hpbGVfcmVjZWl2aW5nX2Zy
YWdtZW50ZWRfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1
ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAg
IG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAg
ICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxf
c2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkK
LQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0
aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0w
LAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQot
ICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVs
X2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT0xOSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhZ21lbnRlZCBwaW5nLgotICAg
ICAgICBwaW5nMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1BpJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcxKQotCi0gICAgICAgICMgQmVmb3JlIHNl
bmRpbmcgdGhlIGxhc3QgZnJhZ21lbnRlZCBwaW5nLCBzZW5kIGEgbWVzc2FnZS4KLSAgICAgICAg
IyBUaGUgbG9naWNhbCBjaGFubmVsICgyKSBzaG91bGQgYmUgZHJvcHBlZC4KLSAgICAgICAgbWVz
c2FnZSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gd29ybGQhJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhtZXNzYWdlKQotCi0gICAgICAgICMgU2VuZCB0aGUg
bGFzdCBmcmFnbWVudGVkIGZyYW1lIG9mIHRoZSBtZXNzYWdlLgotICAgICAgICBwaW5nMiA9IF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2U9J25nIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVs
ID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5f
TVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgZHJv
cF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgICMgTm8gbWVzc2FnZSBzaG91bGQgYmUgc2Vu
dCBvbiBjaGFubmVsIDIuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVz
c2FnZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKEtleUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgMikKLQotICAgIGRlZiB0ZXN0X3NlbmRfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2Nr
RGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVl
c3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4
X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVM
X1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJ
QUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVh
dGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL3BpbmcnKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1
ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hh
bm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5j
b2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRk
X2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3df
Y29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1l
c3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMo
MikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIG1lc3NhZ2Vz
WzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBtZXNzYWdl
c1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9mcmFnbWVudGVkX3Bpbmcoc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRp
c3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11
eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5z
dGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElB
TF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9waW5nJykKLSAgICAg
ICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFt
ZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVu
Y29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBSZXBsZW5p
c2ggMyBieXRlcy4gVGhpcyBpc24ndCBlbm91Z2ggdG8gc2VuZCB0aGUgd2hvbGUgcGluZyBmcmFt
ZQotICAgICAgICAjIGJlY2F1c2UgdGhlIGZyYW1lIHdpbGwgaGF2ZSA1IGJ5dGVzIG1lc3NhZ2Uo
J1BpbmchJykuIFRoZSBmcmFtZQotICAgICAgICAjIHNob3VsZCBiZSBmcmFnbWVudGVkLgotICAg
ICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lk
PTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cGxlbmlzaGVkX3F1b3RhPTMpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Zmxvd19jb250cm9sKQotCi0gICAgICAgICMgV2FpdCB1bnRpbCB0aGUgd29ya2VyIGlzIGJsb2Nr
ZWQgZHVlIHRvIHNlbmQgcXVvdGEgc2hvcnRhZ2UuCi0gICAgICAgIHRpbWUuc2xlZXAoMSkKLQot
ICAgICAgICAjIFJlcGxlbmlzaCByZW1haW5pbmcgMiArIDEgYnl0ZXMgKGluY2x1ZGluZyBleHRy
YSBjb3N0KS4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJh
bWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0zKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFu
ZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJl
cXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBtZXNzYWdlc1swXVsnb3Bjb2Rl
J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgbWVzc2FnZXNbMF1bJ21lc3Nh
Z2UnXSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRlZF9waW5nX3doaWxlX3NlbmRpbmdf
ZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2Nr
X3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAg
ICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikK
LSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hh
bm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJ
RU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRl
cigKLSAgICAgICAgICAgIHBhdGg9Jy9waW5nX3doaWxlX2hlbGxvX3dvcmxkJykKLSAgICAgICAg
YWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgK
LSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBBcHBsaWNhdGlv
biB3aWxsIHNlbmQ6Ci0gICAgICAgICMgLSB0ZXh0IG1lc3NhZ2UgJ0hlbGxvICcgd2l0aCBmaW49
MAotICAgICAgICAjIC0gcGluZyB3aXRoICdQaW5nIScgbWVzc2FnZQotICAgICAgICAjIC0gdGV4
dCBtZXNzYWdlICdXb3JsZCEnIHdpdGggZmluPTEKLSAgICAgICAgIyBSZXBsZW5pc2ggKDYgKyAx
KSArICgyICsgMSkgYnl0ZXMgc28gdGhhdCB0aGUgcGluZyB3aWxsIGJlCi0gICAgICAgICMgZnJh
Z21lbnRlZCBvbiB0aGUgbG9naWNhbCBjaGFubmVsLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBf
Y3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEwKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAg
ICAgICB0aW1lLnNsZWVwKDEpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggcmVtYWluaW5nIDMgKyA2
IGJ5dGVzLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFt
ZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTkpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0x
LCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5k
bGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydIZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCi0gICAgICAgIGNvbnRyb2xfbWVz
c2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygy
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgY29udHJvbF9t
ZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywg
Y29udHJvbF9tZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9mcmFn
bWVudGVkX3R3b19waW5nX3doaWxlX3NlbmRpbmdfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRj
aGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011
eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQo
KQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVN
QkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcigKLSAgICAgICAgICAgIHBhdGg9Jy90d29f
cGluZ193aGlsZV9oZWxsb193b3JsZCcpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBf
Y3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lk
PTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hh
bmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5l
bF9yZXF1ZXN0KQotCi0gICAgICAgICMgQXBwbGljYXRpb24gd2lsbCBzZW5kOgotICAgICAgICAj
IC0gdGV4dCBtZXNzYWdlICdIZWxsbyAnIHdpdGggZmluPTAKLSAgICAgICAgIyAtIHBpbmcgd2l0
aCAnUGluZyEnIG1lc3NhZ2UKLSAgICAgICAgIyAtIHBpbmcgd2l0aCAnUG9uZyEnIG1lc3NhZ2UK
LSAgICAgICAgIyAtIHRleHQgbWVzc2FnZSAnV29ybGQhJyB3aXRoIGZpbj0xCi0gICAgICAgICMg
UmVwbGVuaXNoICg2ICsgMSkgKyAoMiArIDEpIGJ5dGVzIHNvIHRoYXQgdGhlIGZpcnN0IHBpbmcg
d2lsbCBiZQotICAgICAgICAjIGZyYWdtZW50ZWQgb24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT0xMCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgdGltZS5zbGVlcCgxKQotCi0gICAgICAgICMgUmVw
bGVuaXNoIHJlbWFpbmluZyAzICsgKDUgKyAxKSArIDYgYnl0ZXMuIFRoZSBzZWNvbmQgcGluZyB3
b24ndAotICAgICAgICAjIGJlIGZyYWdtZW50ZWQgb24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT0xNSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91
bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5l
Y3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChb
J0hlbGxvIFdvcmxkISddLCBtZXNzYWdlcykKLSAgICAgICAgY29udHJvbF9tZXNzYWdlcyA9IHJl
cXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBjb250cm9sX21lc3NhZ2VzWzBd
WydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBjb250cm9sX21l
c3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9Q
Q09ERV9QSU5HLCBjb250cm9sX21lc3NhZ2VzWzFdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnUG9uZyEnLCBjb250cm9sX21lc3NhZ2VzWzFdWydtZXNzYWdlJ10pCi0KLSAg
ICBkZWYgdGVzdF9zZW5kX2Ryb3BfY2hhbm5lbChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0
Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRp
c3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAjIERyb3BD
aGFubmVsIGZvciBjaGFubmVsIGlkIDEgd2hpY2ggZG9lc24ndCBoYXZlIHJlYXNvbi4KLSAgICAg
ICAgZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKCdceDAwXHg2MFx4MDFceDAwJywgbWFzaz1U
cnVlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0y
KSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBp
biByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAg
ICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9BQ0tOT1dMRURHRUQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLQotICAgIGRlZiB0ZXN0X3R3
b19mbG93X2NvbnRyb2woc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAg
ICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAg
ICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVs
X3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQp
Ci0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBh
dGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0K
LSAgICAgICAgIyBSZXBsZW5pc2ggNSBieXRlcy4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2Ny
ZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT01KQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAg
ICAjIFNlbmQgMTAgYnl0ZXMuIFRoZSBzZXJ2ZXIgd2lsbCB0cnkgZWNobyBiYWNrIDEwIGJ5dGVz
LgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG9Xb3JsZCcpKQot
Ci0gICAgICAgICMgUmVwbGVuaXNoIDUgKyAxIChwZXItbWVzc2FnZSBleHRyYSBjb3N0KSBieXRl
cy4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVz
c2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0n
R29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3Vu
dGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsn
SGVsbG9Xb3JsZCddLCBtZXNzYWdlcykKLSAgICAgICAgcmVjZWl2ZWRfZmxvd19jb250cm9scyA9
IFsKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVu
X2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09Q
Q09ERV9GTE9XX0NPTlRST0wgYW5kIGIuY2hhbm5lbF9pZCA9PSAyXQotICAgICAgICAjIFJlcGxl
bmlzaG1lbnQgZm9yICdIZWxsb1dvcmxkJyArIDEKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgx
MSwgcmVjZWl2ZWRfZmxvd19jb250cm9sc1swXS5zZW5kX3F1b3RhKQotICAgICAgICAjIFJlcGxl
bmlzaG1lbnQgZm9yICdHb29kYnllJyArIDEKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4LCBy
ZWNlaXZlZF9mbG93X2NvbnRyb2xzWzFdLnNlbmRfcXVvdGEpCi0KLSAgICBkZWYgdGVzdF9ub19z
ZW5kX3F1b3RhX29uX3NlcnZlcihzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0g
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
Ci0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFk
ZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9h
ZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNv
ZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2Up
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVz
dCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAg
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG9Xb3JsZCcp
KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0K
LSAgICAgICAgIyBKdXN0IHdhaXQgZm9yIDEgc2VjIHNvIHRoYXQgdGhlIHNlcnZlciBhdHRlbXB0
cyB0byBlY2hvIGJhY2sKLSAgICAgICAgIyAnSGVsbG9Xb3JsZCcuCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MSkpCi0KLSAgICAg
ICAgIyBObyBtZXNzYWdlIHNob3VsZCBiZSBzZW50IG9uIGNoYW5uZWwgMi4KLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgMikKLQotICAgIGRlZiB0ZXN0X25vX3NlbmRfcXVvdGFfb25fc2VydmVyX2Zvcl9wZXJt
ZXNzYWdlX2V4dHJhX2Nvc3Qoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAg
ICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQot
ICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFu
bmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElF
TlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVy
KHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRk
X2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rp
bmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
Ci0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3Nh
Z2U9J0hlbGxvJykpCi0gICAgICAgICMgUmVwbGVuaXNoIG9ubHkgbGVuKCdXb3JsZCcpIGJ5dGVz
LgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxlbmlzaGVkX3F1b3RhPTUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoZmxvd19jb250cm9sKQotICAgICAgICAjIFNlcnZlciBzaG91bGQgbm90IGNhbGxiYWNr
IGZvciB0aGlzIG1lc3NhZ2UuCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Ci0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdl
PSdXb3JsZCcpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29k
YnllJykpCi0KLSAgICAgICAgIyBKdXN0IHdhaXQgZm9yIDEgc2VjIHNvIHRoYXQgdGhlIHNlcnZl
ciBhdHRlbXB0cyB0byBlY2hvIGJhY2sKLSAgICAgICAgIyAnV29ybGQnLgotICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTEpKQotCi0g
ICAgICAgICMgT25seSBvbmUgbWVzc2FnZSBzaG91bGQgYmUgc2VudCBvbiBjaGFubmVsIDIuCi0g
ICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2Vz
KDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBtZXNzYWdlcykKLQotICAg
IGRlZiB0ZXN0X3F1b3RhX3Zpb2xhdGlvbl9ieV9jbGllbnQoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9j
a0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1
ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11
eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5F
TF9TTE9UUywgMCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVz
dF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0y
LCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5k
c2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG9X
b3JsZCcpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnll
JykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9u
ZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGNvbnRyb2xfYmxvY2tzID0gcmVxdWVzdC5jb25uZWN0
aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCg1LCBsZW4oY29udHJvbF9ibG9ja3MpKQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAot
ICAgICAgICAgICAgYiBmb3IgYiBpbiBjb250cm9sX2Jsb2NrcwotICAgICAgICAgICAgaWYgYi5v
cGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChtdXguX0RST1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElPTiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotCi0gICAgZGVmIHRlc3RfY29u
c3VtZV9xdW90YV9lbXB0eV9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVy
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0
Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICAjIENsaWVudCBoYXMg
MSBieXRlIHF1b3RhLgotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXgu
X0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsIDEpCi0KLSAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAg
YWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgK
LSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9s
ID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0y
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAg
ICAgICAgIyBTZW5kIGFuIGVtcHR5IG1lc3NhZ2UuIFB5d2Vic29ja2V0IGFsd2F5cyByZXBsZW5p
c2hlcyAxIGJ5dGUgcXVvdGEKLSAgICAgICAgIyBmb3IgZW1wdHkgbWVzc2FnZQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nJykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgIyBUaGlzIG1lc3NhZ2Ugdmlv
bGF0ZXMgcXVvdGEgb24gY2hhbm5lbCBpZCAyLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFu
ZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDEsIGxlbihkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNz
YWdlc1swXSkKLQotICAgICAgICByZWNlaXZlZF9mbG93X2NvbnRyb2xzID0gWwotICAgICAgICAg
ICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9j
a3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0ZMT1dfQ09O
VFJPTCBhbmQgYi5jaGFubmVsX2lkID09IDJdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwg
bGVuKHJlY2VpdmVkX2Zsb3dfY29udHJvbHMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEs
IHJlY2VpdmVkX2Zsb3dfY29udHJvbHNbMF0uc2VuZF9xdW90YSkKLQotICAgICAgICBkcm9wX2No
YW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24u
Z2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0g
bXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgy
LCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXgu
X0RST1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotCi0gICAgZGVmIHRlc3RfY29uc3VtZV9xdW90YV9m
cmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAg
ICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQot
ICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgICMgQ2xpZW50IGhhcyBsZW4oJ0hl
bGxvJykgKyBsZW4oJ0dvb2RieWUnKSArIDIgYnl0ZXMgcXVvdGEuCi0gICAgICAgIG11eF9oYW5k
bGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9U
UywgMTQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1l
c3NhZ2U9J0hlJywgZmluPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwgbWVzc2FnZT0nbGxvJywgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKSkKLQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNz
YWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgbWVzc2FnZXMpCi0KLSAgICBkZWYgdGVzdF9m
cmFnbWVudGVkX2NvbnRyb2xfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hl
cigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3Bh
dGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIu
YWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFf
Rk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVz
dF9oZWFkZXIocGF0aD0nL3BpbmcnKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0y
LCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5k
c2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKLQotICAgICAgICAjIFJlcGxlbmlzaCB0b3RhbCA2IGJ5dGVzIGluIDMgRmxvd0Nv
bnRyb2xzLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFt
ZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVh
dGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MikKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT0zKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3df
Y29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5
ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2Rv
bmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbW9uLk9QQ09ERV9QSU5HLCBtZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1BpbmchJywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0
ZXN0X2NoYW5uZWxfc2xvdF92aW9sYXRpb25fYnlfY2xpZW50KHNlbGYpOgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1v
Y2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVx
dWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBt
dXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhzbG90cz0xLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZW5kX3F1b3RhPW11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJ
RU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRl
cihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2Fk
ZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29k
aW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0
KQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNz
YWdlPSdIZWxsbycpKQotCi0gICAgICAgICMgVGhpcyByZXF1ZXN0IHNob3VsZCBiZSByZWplY3Rl
ZC4KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBh
dGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9
MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0g
ICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxf
aWQ9MywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9
J0hlbGxvJykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFu
bmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxv
J10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50cy5oYXNfa2V5KDMpKQotICAgICAg
ICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5v
cGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgzLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChtdXguX0RST1BfQ09ERV9ORVdfQ0hBTk5FTF9TTE9UX1ZJT0xBVElPTiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotCi0gICAgZGVmIHRlc3Rf
cXVvdGFfb3ZlcmZsb3dfYnlfY2xpZW50KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVy
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0
Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhzbG90cz0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZW5kX3F1b3RhPW11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNo
bycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jl
cXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAg
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotICAgICAgICAj
IFJlcGxlbmlzaCAweDdGRkZGRkZGRkZGRkZGRkYgYnl0ZXMgdHdpY2UuCi0gICAgICAgIGZsb3df
Y29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5l
bF9pZD0yLAotICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MHg3RkZGRkZGRkZGRkZGRkZG
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0K
LSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAg
IGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMiwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfU0VORF9RVU9UQV9PVkVSRkxPVywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotCi0gICAgZGVmIHRlc3Rf
aW52YWxpZF9lbmNhcHN1bGF0ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0
Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRp
c3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICBmaXJzdF9i
eXRlID0gKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpCi0gICAgICAg
IGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArCi0gICAgICAgICAgICAgICAgIG11eC5fZW5jb2Rl
X2NoYW5uZWxfaWQoMSkgKwotICAgICAgICAgICAgICAgICBtdXguX2VuY29kZV9udW1iZXIoMCkp
Ci0gICAgICAgIHBheWxvYWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5fQ09OVFJPTF9D
SEFOTkVMX0lEKSArIGJsb2NrCi0gICAgICAgIHRleHRfZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2Zy
YW1lKHBheWxvYWQsIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyh0ZXh0X2ZyYW1lKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSht
dXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2No
YW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24u
Z2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0g
bXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCht
dXguX0RST1BfQ09ERV9JTlZBTElEX0VOQ0FQU1VMQVRJTkdfTUVTU0FHRSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0g
ICAgZGVmIHRlc3RfY2hhbm5lbF9pZF90cnVuY2F0ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rp
c3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0
LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBU
aGUgbGFzdCBieXRlIG9mIHRoZSBjaGFubmVsIGlkIGlzIG1pc3NpbmcuCi0gICAgICAgIGZyYW1l
ID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHg4MCcsIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
bXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9j
aGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9u
LmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09
IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bXV4Ll9EUk9QX0NPREVfQ0hBTk5FTF9JRF9UUlVOQ0FURUQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0
ZXN0X2lubmVyX2ZyYW1lX3RydW5jYXRlZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hl
cigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3Bh
dGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAjIEp1c3QgY29u
dGFpbiBjaGFubmVsIGlkIDEuCi0gICAgICAgIGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgn
XHgwMScsIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhm
cmFtZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAg
ICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxv
Y2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NI
QU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfRU5DQVBTVUxB
VEVEX0ZSQU1FX0lTX1RSVU5DQVRFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2No
YW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNf
SU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfdW5rbm93bl9t
dXhfb3Bjb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3Qo
KQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4
X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAg
bXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgICAgICMgVW5kZWZpbmVkIG9wY29kZSA1Ci0gICAg
ICAgIGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4YTAnLCBtYXNrPVRydWUpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0g
ICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBp
ZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1VOS05PV05fTVVYX09QQ09ERSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQot
Ci0gICAgZGVmIHRlc3RfaW52YWxpZF9tdXhfY29udHJvbF9ibG9jayhzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9N
dXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVy
KHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAg
ICAgICAjIERyb3BDaGFubmVsIGNvbnRhaW5zIDEgYnl0ZSByZWFzb24KLSAgICAgICAgZnJhbWUg
PSBjcmVhdGVfYmluYXJ5X2ZyYW1lKCdceDAwXHg2MFx4MDBceDAxXHgwMCcsIG1hc2s9VHJ1ZSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkKLQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0K
LSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAg
IGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywK
LSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1Is
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9z
ZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfcGVybWVzc2FnZV9kZWZsYXRlKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0g
X011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRs
ZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAg
ICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09G
X0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11
eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgICMgRW5hYmxlIHBlcm1lc3Nh
Z2UgZGVmbGF0ZSBleHRlbnNpb24gb24gbG9naWNhbCBjaGFubmVsIDIuCi0gICAgICAgIGV4dGVu
c2lvbnMgPSBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTgotICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9u
cz1leHRlbnNpb25zKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGlu
Zz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkK
LQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIwKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCAnSGVsbG8n
IHR3aWNlLgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAg
ICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dC
SVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMSA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxs
bycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8xICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMSA9IGNvbXByZXNzZWRfaGVsbG8x
WzotNF0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9Y29tcHJlc3NlZF9o
ZWxsbzEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1UcnVlKSkKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbzIgPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAg
ICAgICBjb21wcmVzc2VkX2hlbGxvMiArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVT
SCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbzIgPSBjb21wcmVzc2VkX2hlbGxvMls6LTRdCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCi0KLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJywgJ0hlbGxvJ10sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAgIyBX
cml0dGVuICdIZWxsbydzIHNob3VsZCBiZSBjb21wcmVzc2VkLgotICAgICAgICBtZXNzYWdlcyA9
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDIsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tcHJlc3NlZF9oZWxsbzEsIG1lc3NhZ2VzWzBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbXByZXNzZWRfaGVsbG8yLCBtZXNzYWdlc1sxXSkKLQotCi0gICAgZGVmIHRlc3RfcGVybWVz
c2FnZV9kZWZsYXRlX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9u
cyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAotICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NB
R0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgKLSAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zPWV4dGVuc2lvbnMp
Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhf
aGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBt
dXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3Rz
KG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAg
ICAgICAgIyBTZW5kIGNvbXByZXNzZWQgJ0hlbGxvSGVsbG9IZWxsbycgYXMgZnJhZ21lbnRlZCBt
ZXNzYWdlLgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAg
ICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dC
SVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxv
SGVsbG9IZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2go
emxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2Vk
X2hlbGxvWzotNF0KLQotICAgICAgICBtID0gbGVuKGNvbXByZXNzZWRfaGVsbG8pIC8gMgotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG9bOm1dLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpbj1GYWxzZSwgcnN2MT1UcnVlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQpKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
PWNvbXByZXNzZWRfaGVsbG9bbTpdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZpbj1UcnVlLCByc3YxPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikpCi0KLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbJ0hlbGxvSGVsbG9IZWxsbyddLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIG1lc3Nh
Z2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDEpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb21wcmVzc2VkX2hlbGxvLCBtZXNzYWdlc1swXSkKLQotICAgIGRlZiB0ZXN0X3JlY2Vp
dmVfYmFkX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hl
cigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3Bh
dGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIu
YWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFf
Rk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVz
dF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0y
LCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5k
c2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKLQotICAgICAgICAjIFNlbmQgYSBmcmFtZSB3aXRoIGZpbj1GYWxzZSwgYW5kIHRo
ZW4gc2VuZCBhIGZyYW1lIHdpdGgKLSAgICAgICAgIyBvcGNvZGU9VEVYVCAobm90IENPTlRJTlVB
VElPTikuIExvZ2ljYWwgY2hhbm5lbCAyIHNob3VsZCBiZSBkcm9wcGVkLgotICAgICAgICBmcmFt
ZTEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUxKQotICAgICAgICBmcmFtZTIgPSBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZT0nV29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhmcmFtZTIpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBf
Y3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxf
cmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAg
IGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
PWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhbWUgd2l0aCBvcGNv
ZGU9Q09OVElOVUFUSU9OIHdpdGhvdXQgYSBwcmVjZWRpbmcgZnJhbWUKLSAgICAgICAgIyB0aGUg
ZmluIG9mIHdoaWNoIGlzIG5vdCBzZXQuIExvZ2ljYWwgY2hhbm5lbCAzIHNob3VsZCBiZSBkcm9w
cGVkLgotICAgICAgICBmcmFtZTMgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0z
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8n
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9D
T05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUz
KQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihw
YXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9j
aGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTQsIGVuY29kaW5n
PTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQot
Ci0gICAgICAgICMgU2VuZCBhIGZyYW1lIHdpdGggb3Bjb2RlPVBJTkcgYW5kIGZpbj1GYWxzZSwg
YW5kIHRoZW4gc2VuZCBhIGZyYW1lCi0gICAgICAgICMgd2l0aCBvcGNvZGU9VEVYVCAobm90IENP
TlRJTlVBVElPTikuIExvZ2ljYWwgY2hhbm5lbCA0IHNob3VsZCBiZQotICAgICAgICAjIGRyb3Bw
ZWQuCi0gICAgICAgIGZyYW1lNCA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaW5nJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJ
TkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWU0KQotICAgICAg
ICBmcmFtZTUgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD00LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8nLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lNSkKLQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBk
cm9wX2NoYW5uZWxzID0gWwotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUg
PT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgzLCBsZW4oZHJvcF9jaGFubmVscykpCi0gICAgICAgIGZvciBkIGluIGRyb3BfY2hhbm5lbHM6
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0JBRF9GUkFHTUVO
VEFUSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLmRyb3BfY29kZSkKLQotCi1p
ZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6
c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rfc3RyZWFtLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3Rfc3RyZWFtLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWFj
ZmViMDQ4ZDNiMjAzMmE3OTQ4Y2ZhMmFkZWE3Y2U2NGY5NWFlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbS5weQorKysg
L2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBD
b3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIHN0cmVhbSBtb2R1bGUuIiIiCi0KLQotaW1w
b3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRv
IGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCi0KLQotY2xh
c3MgU3RyZWFtVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3Ig
c3RyZWFtIG1vZHVsZS4iIiIKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9oZWFkZXIoc2VsZik6Ci0g
ICAgICAgICMgbW9yZSwgcnN2MSwgLi4uLCByc3Y0IGFyZSBhbGwgdHJ1ZQotICAgICAgICBoZWFk
ZXIgPSBzdHJlYW0uY3JlYXRlX2hlYWRlcihjb21tb24uT1BDT0RFX1RFWFQsIDEsIDEsIDEsIDEs
IDEsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZjFceDgxJywgaGVhZGVyKQotCi0g
ICAgICAgICMgTWF4aW11bSBwYXlsb2FkIHNpemUKLSAgICAgICAgaGVhZGVyID0gc3RyZWFtLmNy
ZWF0ZV9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uT1BDT0RFX1RFWFQsICgxIDw8IDYzKSAt
IDEsIDAsIDAsIDAsIDAsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDFceDdmXHg3
Zlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYnLCBoZWFkZXIpCi0KLSAgICAgICAgIyBJbnZh
bGlkIG9wY29kZSAweDEwCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5jcmVhdGVfaGVhZGVyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAweDEwLCAwLCAwLCAwLCAwLCAwLCAwKQotCi0gICAgICAgICMgSW52
YWxpZCB2YWx1ZSAweGYgcGFzc2VkIHRvIG1vcmUgcGFyYW1ldGVyCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5j
cmVhdGVfaGVhZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uT1BDT0RFX1RF
WFQsIDAsIDB4ZiwgMCwgMCwgMCwgMCkKLQotICAgICAgICAjIFRvbyBsb25nIHBheWxvYWRfbGVu
Z3RoCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0cmVhbS5jcmVhdGVfaGVhZGVyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tb24uT1BDT0RFX1RFWFQsIDEgPDwgNjMsIDAsIDAsIDAsIDAsIDApCi0KLQotaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3Rlc3Rfc3RyZWFtX2hpeGllNzUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNhOWFjNzEzMGI3MzA0ZWI5MmRiYmJjMTUzM2FhNDE1NDVlMDI0NmQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
c3RyZWFtX2hpeGllNzUucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0jIS91c3Iv
YmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoK
LSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBzdHJl
YW0gbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRo
ICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9tIHRl
c3QudGVzdF9tc2d1dGlsIGltcG9ydCBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NQotCi0KLWNsYXNz
IFN0cmVhbUhpeGllNzVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0
IGZvciBTdHJlYW1IaXhpZTc1IGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3RfcGF5bG9hZF9sZW5n
dGgoc2VsZik6Ci0gICAgICAgIGZvciBsZW5ndGgsIGJ5dGVzIGluICgoMCwgJ1x4MDAnKSwgKDB4
N2YsICdceDdmJyksICgweDgwLCAnXHg4MVx4MDAnKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgweDEyMzQsICdceDgwXHhhNFx4MzQnKSk6Ci0gICAgICAgICAgICB0ZXN0X3N0cmVh
bSA9IFN0cmVhbUhpeGllNzUoX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoYnl0ZXMpKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBsZW5ndGgsIHRlc3Rfc3Ry
ZWFtLl9yZWFkX3BheWxvYWRfbGVuZ3RoX2hpeGllNzUoKSkKLQotCi1pZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3V0aWwu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0YmEzZjQ3NzM3YTMzMWVmMDM5MGNj
NmIwYzgxYzJkMzRhNDI4MzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDIwMSAr
MCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2ds
ZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIi
IlRlc3RzIGZvciB1dGlsIG1vZHVsZS4iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRf
ZnVuY3Rpb24KLQotCi1pbXBvcnQgb3MKLWltcG9ydCByYW5kb20KLWltcG9ydCBzeXMKLWltcG9y
dCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBs
b2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IHV0aWwKLQotCi1fVEVTVF9EQVRBX0RJUiA9IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0
KF9fZmlsZV9fKVswXSwgJ3Rlc3RkYXRhJykKLQotCi1jbGFzcyBVdGlsVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgdXRpbCBtb2R1bGUuIiIiCi0KLSAgICBk
ZWYgdGVzdF9nZXRfc3RhY2tfdHJhY2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J05vbmVcbicsIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIGEgPSAxIC8gMCAgIyBJbnRlbnRpb25hbGx5IHJhaXNlIGV4Y2VwdGlvbi4KLSAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHRyYWNlID0gdXRpbC5nZXRfc3RhY2tfdHJh
Y2UoKQotICAgICAgICAgICAgc2VsZi5mYWlsVW5sZXNzKHRyYWNlLnN0YXJ0c3dpdGgoJ1RyYWNl
YmFjaycpKQotICAgICAgICAgICAgc2VsZi5mYWlsVW5sZXNzKHRyYWNlLmZpbmQoJ1plcm9EaXZp
c2lvbkVycm9yJykgIT0gLTEpCi0KLSAgICBkZWYgdGVzdF9wcmVwZW5kX21lc3NhZ2VfdG9fZXhj
ZXB0aW9uKHNlbGYpOgotICAgICAgICBleGMgPSBFeGNlcHRpb24oJ1dvcmxkJykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBzdHIoZXhjKSkKLSAgICAgICAgdXRpbC5wcmVwZW5k
X21lc3NhZ2VfdG9fZXhjZXB0aW9uKCdIZWxsbyAnLCBleGMpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ0hlbGxvIFdvcmxkJywgc3RyKGV4YykpCi0KLSAgICBkZWYgdGVzdF9nZXRfc2NyaXB0
X2ludGVycChzZWxmKToKLSAgICAgICAgY3lnd2luX3BhdGggPSAnYzpcXGN5Z3dpblxcYmluJwot
ICAgICAgICBjeWd3aW5fcGVybCA9IG9zLnBhdGguam9pbihjeWd3aW5fcGF0aCwgJ3BlcmwnKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCi0g
ICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdSRUFETUUnKSkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdXRpbC5nZXRfc2NyaXB0X2ludGVycCgKLSAgICAg
ICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRBX0RJUiwgJ1JFQURNRScpLCBjeWd3aW5fcGF0
aCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy91c3IvYmluL3BlcmwgLXdUJywgdXRpbC5n
ZXRfc2NyaXB0X2ludGVycCgKLSAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRBX0RJ
UiwgJ2hlbGxvLnBsJykpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGN5Z3dpbl9wZXJsICsg
JyAtd1QnLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKAotICAgICAgICAgICAgb3MucGF0aC5qb2lu
KF9URVNUX0RBVEFfRElSLCAnaGVsbG8ucGwnKSwgY3lnd2luX3BhdGgpKQotCi0gICAgZGVmIHRl
c3RfaGV4aWZ5KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCc2MSA3YSA0MSA1YSAz
MCAzOSAyMCAwOSAwZCAwYSAwMCBmZicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgdXRpbC5o
ZXhpZnkoJ2F6QVowOSBcdFxyXG5ceDAwXHhmZicpKQotCi0KLWNsYXNzIFJlcGVhdGVkWG9yTWFz
a2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgUmVwZWF0
ZWRYb3JNYXNrZXIgY2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9tYXNrKHNlbGYpOgotICAgICAg
ICAjIFNhbXBsZSBpbnB1dCBlNiw5NyxhNSBpcyBVKzY1ZTUgaW4gVVRGLTgKLSAgICAgICAgbWFz
a2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignXHhmZlx4ZmZceGZmXHhmZicpCi0gICAgICAg
IHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceGU2XHg5N1x4YTUnKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDE5XHg2OFx4NWEnLCByZXN1bHQpCi0KLSAgICAgICAgbWFza2VyID0gdXRpbC5S
ZXBlYXRlZFhvck1hc2tlcignXHgwMFx4MDBceDAwXHgwMCcpCi0gICAgICAgIHJlc3VsdCA9IG1h
c2tlci5tYXNrKCdceGU2XHg5N1x4YTUnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGU2
XHg5N1x4YTUnLCByZXN1bHQpCi0KLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1h
c2tlcignXHhlNlx4OTdceGE1XHgyMCcpCi0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKCdc
eGU2XHg5N1x4YTUnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwXHgwMFx4MDAnLCBy
ZXN1bHQpCi0KLSAgICBkZWYgdGVzdF9tYXNrX3R3aWNlKHNlbGYpOgotICAgICAgICBtYXNrZXIg
PSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdceDAwXHg3Zlx4ZmZceDIwJykKLSAgICAgICAgIyBt
YXNrWzBdLCBtYXNrWzFdLCAuLi4gd2lsbCBiZSB1c2VkLgotICAgICAgICByZXN1bHQgPSBtYXNr
ZXIubWFzaygnXHgwMFx4MDBceDAwXHgwMFx4MDAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdceDAwXHg3Zlx4ZmZceDIwXHgwMCcsIHJlc3VsdCkKLSAgICAgICAgIyBtYXNrWzJdLCBtYXNr
WzBdLCAuLi4gd2lsbCBiZSB1c2VkIGZvciB0aGUgbmV4dCBjYWxsLgotICAgICAgICByZXN1bHQg
PSBtYXNrZXIubWFzaygnXHgwMFx4MDBceDAwXHgwMFx4MDAnKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDdmXHhmZlx4MjBceDAwXHg3ZicsIHJlc3VsdCkKLQotICAgIGRlZiB0ZXN0X21h
c2tfbGFyZ2VfZGF0YShzZWxmKToKLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1h
c2tlcignbUFTaycpCi0gICAgICAgIG9yaWdpbmFsID0gJycuam9pbihbY2hyKGkgJSAyNTYpIGZv
ciBpIGluIHhyYW5nZSgxMDAwKV0pCi0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKG9yaWdp
bmFsKQotICAgICAgICBleHBlY3RlZCA9ICcnLmpvaW4oCi0gICAgICAgICAgICAgICAgW2Nocigo
aSAlIDI1NikgXiBvcmQoJ21BU2snW2kgJSA0XSkpIGZvciBpIGluIHhyYW5nZSgxMDAwKV0pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlc3VsdCkKLQotICAgICAgICBtYXNr
ZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdNYVNrJykKLSAgICAgICAgZmlyc3RfcGFydCA9
ICdUaGUgV2ViU29ja2V0IFByb3RvY29sIGVuYWJsZXMgdHdvLXdheSBjb21tdW5pY2F0aW9uLicK
LSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2soZmlyc3RfcGFydCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICAnXHgxOVx0NktceDFhXHgwNDE4Ilx4MDI4XHgw
ZTlBXHgwM1x4MTkiXHgxNTxceDA4Ilxyc1x4MGUjJwotICAgICAgICAgICAgICAgICdceDAwMVx4
MDcoXHgxMnNceDFmOlx4MGV+XHgxYyxceDE4c1x4MDgiXHgwYz5ceDFlI1x4MDgwXG45JwotICAg
ICAgICAgICAgICAgICdceDA4PFx4MDVjJywKLSAgICAgICAgICAgICAgICByZXN1bHQpCi0gICAg
ICAgIHNlY29uZF9wYXJ0ID0gJ0l0IGhhcyB0d28gcGFydHM6IGEgaGFuZHNoYWtlIGFuZCB0aGUg
ZGF0YSB0cmFuc2Zlci4nCi0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKHNlY29uZF9wYXJ0
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgICIoJ0slXHgwMCBL
OVx4MTY8Sz1ceDAwIVx4MWY+W3Ncbm1cdDJceDA1KVx4MTI7XG4mXHgwNHNcbiMiCi0gICAgICAg
ICAgICAgICAgIlx4MDVzXHgxZiVceDA0c1x4MGYsXHgxNTJLOVx4MTMyXHgwNT5ceDA3Nlx4MTlj
IiwKLSAgICAgICAgICAgICAgICByZXN1bHQpCi0KLQotZGVmIGdldF9yYW5kb21fc2VjdGlvbihz
b3VyY2UsIG1pbl9udW1fY2h1bmtzKToKLSAgICBjaHVua3MgPSBbXQotICAgIGJ5dGVzX2NodW5r
ZWQgPSAwCi0KLSAgICB3aGlsZSBieXRlc19jaHVua2VkIDwgbGVuKHNvdXJjZSk6Ci0gICAgICAg
IGNodW5rX3NpemUgPSByYW5kb20ucmFuZGludCgKLSAgICAgICAgICAgIDEsCi0gICAgICAgICAg
ICBtaW4obGVuKHNvdXJjZSkgLyBtaW5fbnVtX2NodW5rcywgbGVuKHNvdXJjZSkgLSBieXRlc19j
aHVua2VkKSkKLSAgICAgICAgY2h1bmsgPSBzb3VyY2VbYnl0ZXNfY2h1bmtlZDpieXRlc19jaHVu
a2VkICsgY2h1bmtfc2l6ZV0KLSAgICAgICAgY2h1bmtzLmFwcGVuZChjaHVuaykKLSAgICAgICAg
Ynl0ZXNfY2h1bmtlZCArPSBjaHVua19zaXplCi0KLSAgICByZXR1cm4gY2h1bmtzCi0KLQotY2xh
c3MgSW5mbGF0ZXJEZWZsYXRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5p
dHRlc3QgZm9yIF9JbmZsYXRlciBhbmQgX0RlZmxhdGVyIGNsYXNzLiIiIgotCi0gICAgZGVmIHRl
c3RfaW5mbGF0ZV9kZWZsYXRlX2RlZmF1bHQoc2VsZik6Ci0gICAgICAgIGlucHV0ID0gYidoZWxs
bycgKyAnLScgKiAzMDAwMCArIGInaGVsbG8nCi0gICAgICAgIGluZmxhdGVyMTUgPSB1dGlsLl9J
bmZsYXRlcigxNSkKLSAgICAgICAgZGVmbGF0ZXIxNSA9IHV0aWwuX0RlZmxhdGVyKDE1KQotICAg
ICAgICBpbmZsYXRlcjggPSB1dGlsLl9JbmZsYXRlcig4KQotICAgICAgICBkZWZsYXRlcjggPSB1
dGlsLl9EZWZsYXRlcig4KQotCi0gICAgICAgIGNvbXByZXNzZWQxNSA9IGRlZmxhdGVyMTUuY29t
cHJlc3NfYW5kX2ZpbmlzaChpbnB1dCkKLSAgICAgICAgY29tcHJlc3NlZDggPSBkZWZsYXRlcjgu
Y29tcHJlc3NfYW5kX2ZpbmlzaChpbnB1dCkKLQotICAgICAgICBpbmZsYXRlcjE1LmFwcGVuZChj
b21wcmVzc2VkMTUpCi0gICAgICAgIGluZmxhdGVyOC5hcHBlbmQoY29tcHJlc3NlZDgpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChjb21wcmVzc2VkMTUsIGNvbXByZXNzZWQ4KQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGlucHV0LCBpbmZsYXRlcjE1LmRlY29tcHJlc3MoLTEpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlucHV0LCBpbmZsYXRlcjguZGVjb21wcmVzcygtMSkp
Ci0KLSAgICBkZWYgdGVzdF9yYW5kb21fc2VjdGlvbihzZWxmKToKLSAgICAgICAgcmFuZG9tLnNl
ZWQoYT0wKQotICAgICAgICBzb3VyY2UgPSAnJy5qb2luKAotICAgICAgICAgICAgW2NocihyYW5k
b20ucmFuZGludCgwLCAyNTUpKSBmb3IgaSBpbiB4cmFuZ2UoMTAwICogMTAyNCldKQotCi0gICAg
ICAgIGNodW5rZWRfaW5wdXQgPSBnZXRfcmFuZG9tX3NlY3Rpb24oc291cmNlLCAxMCkKLSAgICAg
ICAgcHJpbnQoIklucHV0IGNodW5rIHNpemVzOiAlciIgJSBbbGVuKGMpIGZvciBjIGluIGNodW5r
ZWRfaW5wdXRdKQotCi0gICAgICAgIGRlZmxhdGVyID0gdXRpbC5fRGVmbGF0ZXIoMTUpCi0gICAg
ICAgIGNvbXByZXNzZWQgPSBbXQotICAgICAgICBmb3IgY2h1bmsgaW4gY2h1bmtlZF9pbnB1dDoK
LSAgICAgICAgICAgIGNvbXByZXNzZWQuYXBwZW5kKGRlZmxhdGVyLmNvbXByZXNzKGNodW5rKSkK
LSAgICAgICAgY29tcHJlc3NlZC5hcHBlbmQoZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZpbmlzaCgn
JykpCi0KLSAgICAgICAgY2h1bmtlZF9leHBlY3RhdGlvbiA9IGdldF9yYW5kb21fc2VjdGlvbihz
b3VyY2UsIDEwKQotICAgICAgICBwcmludCAoIkV4cGVjdGF0aW9uIGNodW5rIHNpemVzOiAlciIg
JQotICAgICAgICAgICAgICAgW2xlbihjKSBmb3IgYyBpbiBjaHVua2VkX2V4cGVjdGF0aW9uXSkK
LQotICAgICAgICBpbmZsYXRlciA9IHV0aWwuX0luZmxhdGVyKDE1KQotICAgICAgICBpbmZsYXRl
ci5hcHBlbmQoJycuam9pbihjb21wcmVzc2VkKSkKLSAgICAgICAgZm9yIGNodW5rIGluIGNodW5r
ZWRfZXhwZWN0YXRpb246Ci0gICAgICAgICAgICBkZWNvbXByZXNzZWQgPSBpbmZsYXRlci5kZWNv
bXByZXNzKGxlbihjaHVuaykpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNodW5rLCBk
ZWNvbXByZXNzZWQpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgaW5mbGF0ZXIuZGVj
b21wcmVzcygtMSkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVz
dC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0ZGF0YS9SRUFETUUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvUkVBRE1FCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMDAxYWE1NTk1Y2RkMTM0MDdmNTcyOGVjZDUzMmE1ZDEyMjYzZWZh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0ZGF0YS9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1UZXN0IGRhdGEg
ZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYWJvcnRf
YnlfdXNlcl93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYWJvcnRfYnlfdXNl
cl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2N2Y5OTMwZjc4MjRjM2E1
MzU5MTRhNWIzNzc5ZjZiNmZiYTI0M2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJf
d3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotCi0KLWRlZiB3ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICByYWlzZSBoYW5kc2hha2UuQWJv
cnRlZEJ5VXNlckV4Y2VwdGlvbigiYWJvcnQgZm9yIHRlc3QiKQotCi0KLWRlZiB3ZWJfc29ja2V0
X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVz
ZXJFeGNlcHRpb24oImFib3J0IGZvciB0ZXN0IikKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9ibGFua193c2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3Zjg3YzZhZjIzZGYwOGVmZTM1NzVjYWUyMDhkZTUwMjJjYmFhNjYwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0
ZGF0YS9oYW5kbGVycy9ibGFua193c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBA
Ci0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9u
LgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotCi0jIGludGVudGlvbmFsbHkgbGVmdCBibGFuawpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmMxMzlmYTE3NmNjMzQxN2JlOTZkZTc5OGU2YTgxZWQxNDli
MTk5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weQorKysgL2Rldi9udWxs
CkBAIC0xLDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoK
LSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWRlZiB3ZWJfc29ja2V0X2Rv
X2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBpZiByZXF1ZXN0LndzX29yaWdpbiA9PSAn
aHR0cDovL2V4YW1wbGUuY29tJzoKLSAgICAgICAgcmV0dXJuCi0gICAgcmFpc2UgVmFsdWVFcnJv
cignVW5hY2NlcHRhYmxlIG9yaWdpbjogJXInICUgcmVxdWVzdC53c19vcmlnaW4pCi0KLQotZGVm
IHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdGUoJ29yaWdpbl9jaGVja193c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qu
d3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXJfd3No
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTgyZDAyMzFlZjAwZjAyZTBkOTBk
ZjY3OGViODA0YmE0Mzg2MmQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3Ry
YW5zZmVyX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLSMgQ29weXJpZ2h0
IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLSIiIkV4Y2VwdGlvbiBpbiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEoKS4KLSIi
IgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBw
YXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByYWlz
ZSBFeGNlcHRpb24oJ0ludGVudGlvbmFsIEV4Y2VwdGlvbiBmb3IgJXMsICVzJyAlCi0gICAgICAg
ICAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkK
LQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFu
ZGxlcnMvc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxN2U3YmUxODAyZTNjNjZjNjM4NDk4NzVlYTM1ZTI0MDZhMzgxZTYwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NSAr
MCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJDb3JyZWN0IHNpZ25hdHVyZXMsIHdyb25n
IGZpbGUgbmFtZS4KLSIiIgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShy
ZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1
ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoCi0gICAgICAgICAgICAnc3ViL25v
X3dzaF9hdF90aGVfZW5kLnB5IGlzIGNhbGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAo
cmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25v
bl9jYWxsYWJsZV93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9j
YWxsYWJsZV93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MzUyZWI0Y2Ey
Mzg5NTIyMzllMzU0MjcyOGNlM2IzOGQ4M2RkNmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub25f
Y2FsbGFibGVfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotIyBDb3B5cmln
aHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiTm9uLWNhbGxhYmxlIGhhbmRsZXJzLgotIiIiCi0KLQotd2ViX3NvY2tl
dF9kb19leHRyYV9oYW5kc2hha2UgPSBUcnVlCi13ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEgPSAx
Ci0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEv
aGFuZGxlcnMvc3ViL3BsYWluX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9z
dWIvcGxhaW5fd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjNmZjY5MzAy
NTZiYzFiMTNlMmM0YzJkMWM4NDNjNGI3YzgwYWE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxh
aW5fd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAw
OSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBh
c3MKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0ZSgnc3ViL3BsYWluX3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAl
cycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwg
cmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjA5YTM2MTQyNjgyYTE2YzgyNGE1MmI2YWUyYTNjNmExYzViNjA5MC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdGRhdGEvaGFuZGxlcnMvc3ViL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNl
cHRpb25faW5fdHJhbnNmZXJfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1
Yi9ub193c2hfYXRfdGhlX2VuZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIv
bm9uX2NhbGxhYmxlX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxh
aW5fd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hh
a2Vfc2lnX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfdHJh
bnNmZXJfc2lnX3dzaC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJz
L3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9zdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZiZjY1OWJjOWFmMDFjMTA3ZWYzNTA4YjJiNWQwMTczZGNmNTkwMDkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rk
YXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weQorKysgL2Rldi9udWxs
CkBAIC0xLDQ1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoK
LSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldyb25nIHdlYl9zb2Nr
ZXRfZG9fZXh0cmFfaGFuZHNoYWtlIHNpZ25hdHVyZS4KLSIiIgotCi0KLWRlZiBub193ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9z
b2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dGUoCi0gICAgICAgICAgICAnc3ViL3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5IGlzIGNhbGxl
ZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVl
c3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMGUyZTU1MDc5NGI3Yjk5MGUwYjQ0YjMz
Y2ZjMmQ0ZDE1MmU2YzA0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2ln
X3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDks
IEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0j
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0KLSIiIldyb25nIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSgpIHNpZ25hdHVyZS4KLSIiIgot
Ci0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNz
Ci0KLQotZGVmIG5vX3dlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdGUoCi0gICAgICAgICAgICAnc3ViL3dyb25nX3RyYW5zZmVyX3Np
Z193c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAgICAgICAgIChyZXF1ZXN0Lndz
X3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTVmYzdiZWY0MjkxODkyMzEzYzBmNjYzOWRlMTE4MjYxYmIyNDJl
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwx
OSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYWJvcnRfYnlf
dXNlcl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0
YS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhjY2EzZWRl
NjhjM2MxNDgwZjFjZWY2OGE0ZTVlZGY2OTA4NjU1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRh
dGEvUkVBRE1FCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmYjVlNDE1
ODAwMWMxNWZmODVlMzExYmNjNmNmMjUxZmJiMWNkM2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMzcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L19faW5pdF9fLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9lbmR0b2VuZF93aXRo
X2V4dGVybmFsX3NlcnZlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tb2NrLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L211eF9j
bGllbnRfZm9yX3Rlc3RpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvcnVuX2FsbC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9z
ZXRfc3lzX3BhdGgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRjaC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0X2VuZHRvZW5kLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0X2hhbmRzaGFrZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkwMC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2h0dHBf
aGVhZGVyX3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tZW1vcml6aW5nZmlsZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0X21vY2sucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RfbXV4LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rfc3RyZWFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
c3RyZWFtX2hpeGllNzUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2JiMmVkNTIzYjNiMjIyYmExNzU4N2E0ZmU2NzBhNjY4OWRkM2QwNy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9D
T05UUklCVVRJTkcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L01BTklGRVNULmluCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFE
TUUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L1JFQURNRS5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcmVxdWlyZW1lbnRzX215
cHkudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9yZXF1aXJlbWVudHNfbXlweS50eHQKaW5kZXggNjUxMDBkNzAzNzZjZjYxNGI0Mzk2ZGQyNDIx
ODEzOTQ0NTNlZmE0OS4uNWRmNzE3NzU4YWFhYmViMmI4NzFiOTFkOWJmZDUwOTUyY2ZjNjY2NyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9yZXF1aXJlbWVudHNfbXlweS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfbXlweS50eHQKQEAgLTEsMyAr
MSwzIEBACi1teXB5PT0wLjc5MAorbXlweT09MC44MDAKIG15cHktZXh0ZW5zaW9ucz09MC40LjMK
LXR5cGVkLWFzdD09MS40LjEKK3R5cGVkLWFzdD09MS40LjIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVu
bmVyL3J1bm5lci5qcwppbmRleCAyNzk0NmUxMzliOWFhM2I4MDZhMWFkMjQ1MTUzOTg4Y2Y3OGY3
NDQyLi4xNTc3MjI4YjJmYmNhMDAzOGQzY2M3NGI5MzA4N2ZhYmY2MDU5NDU3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5l
ci9ydW5uZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9ydW5uZXIvcnVubmVyLmpzCkBAIC04OTMsMTggKzg5MywxNyBAQCBmdW5jdGlv
biBzZXR1cCgpIHsKICAgICBuZXcgTWFudWFsVUkoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1h
bnVhbFVJIiksIHJ1bm5lcik7CiAgICAgbmV3IFZpc3VhbE91dHB1dChkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0IiksIHJ1bm5lcik7CiAKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgaWYgKGUuZGF0YS50eXBlID09PSAi
Y29tcGxldGUiKQorICAgICAgICAgICAgcnVubmVyLm9uX2NvbXBsZXRlKGUuZGF0YS50ZXN0cywg
ZS5kYXRhLnN0YXR1cyk7CisgICAgfSk7CisKICAgICBpZiAob3B0aW9ucy5hdXRvcnVuID09PSAi
MSIpIHsKICAgICAgICAgcnVubmVyLnN0YXJ0KHRlc3RfY29udHJvbC5nZXRfcGF0aCgpLAogICAg
ICAgICAgICAgICAgICAgICAgdGVzdF9jb250cm9sLmdldF90ZXN0X3R5cGVzKCksCiAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0X2NvbnRyb2wuZ2V0X3Rlc3RoYXJuZXNzX3NldHRpbmdzKCksCiAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0X2NvbnRyb2wuZ2V0X3VzZV9yZWdleCgpKTsKLSAgICAg
ICAgcmV0dXJuOwogICAgIH0KLQotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgZnVuY3Rpb24oZSkgewotICAgICAgaWYgKGUuZGF0YS50eXBlID09PSAiY29tcGxldGUiKQot
ICAgICAgICBydW5uZXIub25fY29tcGxldGUoZS5kYXRhLnRlc3RzLCBlLmRhdGEuc3RhdHVzKTsK
LSAgICB9KTsKIH0KIAogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQi
LCBzZXR1cCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9zZXJ2ZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvc2VydmUucHkKaW5kZXggM2Ex
Yzc4Mjc5NGEzMmI5Mjg2OWU2N2FiMDc5MDNjMjA5NTU4ZmI3YS4uZjA5ZmUyNDIyMzc3YjdhZDI0
OGZhODI0YTEzMTEzMGY5ZjU4YzE5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9zZXJ2ZS5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3NlcnZlLnB5
CkBAIC02LDYgKzYsNyBAQCBpbXBvcnQgYWJjCiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBqc29u
CiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG11bHRpcHJvY2Vzc2luZwogaW1wb3J0IG9zCiBpbXBv
cnQgcGxhdGZvcm0KIGltcG9ydCBzaWduYWwKQEAgLTE5LDcgKzIwLDYgQEAgZnJvbSBzaXgubW92
ZXMgaW1wb3J0IHVybGxpYgogaW1wb3J0IHV1aWQKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRl
ZmF1bHRkaWN0LCBPcmRlcmVkRGljdAogZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNoYWluLCBwcm9k
dWN0Ci1mcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUHJvY2VzcywgRXZlbnQKIAogZnJvbSBs
b2NhbHBhdGhzIGltcG9ydCByZXBvX3Jvb3QKIGZyb20gc2l4Lm1vdmVzIGltcG9ydCByZWxvYWRf
bW9kdWxlCkBAIC00MDcsMTggKzQwNywxOSBAQCBkZWYgZ2V0X3JvdXRlX2J1aWxkZXIoYWxpYXNl
cywgY29uZmlnPU5vbmUpOgogCiAKIGNsYXNzIFNlcnZlclByb2Mob2JqZWN0KToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgc2NoZW1lPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtcF9j
b250ZXh0LCBzY2hlbWU9Tm9uZSk6CiAgICAgICAgIHNlbGYucHJvYyA9IE5vbmUKICAgICAgICAg
c2VsZi5kYWVtb24gPSBOb25lCi0gICAgICAgIHNlbGYuc3RvcCA9IEV2ZW50KCkKKyAgICAgICAg
c2VsZi5tcF9jb250ZXh0ID0gbXBfY29udGV4dAorICAgICAgICBzZWxmLnN0b3AgPSBtcF9jb250
ZXh0LkV2ZW50KCkKICAgICAgICAgc2VsZi5zY2hlbWUgPSBzY2hlbWUKIAogICAgIGRlZiBzdGFy
dChzZWxmLCBpbml0X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVz
cywgY29uZmlnLCAqKmt3YXJncyk6Ci0gICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3ModGFyZ2V0
PXNlbGYuY3JlYXRlX2RhZW1vbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShp
bml0X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVzcywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5hbWU9JyVzIG9uIHBvcnQgJXMnICUgKHNlbGYuc2NoZW1lLCBwb3J0KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3M9a3dhcmdzKQorICAgICAgICBzZWxmLnBy
b2MgPSBzZWxmLm1wX2NvbnRleHQuUHJvY2Vzcyh0YXJnZXQ9c2VsZi5jcmVhdGVfZGFlbW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShpbml0X2Z1
bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVzcywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0nJXMgb24gcG9ydCAlcycg
JSAoc2VsZi5zY2hlbWUsIHBvcnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrd2FyZ3M9a3dhcmdzKQogICAgICAgICBzZWxmLnByb2MuZGFlbW9uID0gVHJ1
ZQogICAgICAgICBzZWxmLnByb2Muc3RhcnQoKQogCkBAIC00NzAsNyArNDcxLDcgQEAgY2xhc3Mg
U2VydmVyUHJvYyhvYmplY3QpOgogICAgICAgICByZXR1cm4gc2VsZi5wcm9jLmlzX2FsaXZlKCkK
IAogCi1kZWYgY2hlY2tfc3ViZG9tYWlucyhjb25maWcsIHJvdXRlcyk6CitkZWYgY2hlY2tfc3Vi
ZG9tYWlucyhjb25maWcsIHJvdXRlcywgbXBfY29udGV4dCk6CiAgICAgcGF0aHMgPSBjb25maWcu
cGF0aHMKICAgICBiaW5kX2FkZHJlc3MgPSBjb25maWcuYmluZF9hZGRyZXNzCiAKQEAgLTQ3OCw3
ICs0NzksNyBAQCBkZWYgY2hlY2tfc3ViZG9tYWlucyhjb25maWcsIHJvdXRlcyk6CiAgICAgcG9y
dCA9IGdldF9wb3J0KCkKICAgICBsb2dnZXIuZGVidWcoIkdvaW5nIHRvIHVzZSBwb3J0ICVkIHRv
IGNoZWNrIHN1YmRvbWFpbnMiICUgcG9ydCkKIAotICAgIHdyYXBwZXIgPSBTZXJ2ZXJQcm9jKCkK
KyAgICB3cmFwcGVyID0gU2VydmVyUHJvYyhtcF9jb250ZXh0KQogICAgIHdyYXBwZXIuc3RhcnQo
c3RhcnRfaHR0cF9zZXJ2ZXIsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsCiAgICAgICAgICAg
ICAgICAgICBiaW5kX2FkZHJlc3MsIGNvbmZpZykKIApAQCAtNTMwLDcgKzUzMSw4IEBAIGRlZiBt
YWtlX2hvc3RzX2ZpbGUoY29uZmlnLCBob3N0KToKICAgICByZXR1cm4gIiIuam9pbihydikKIAog
Ci1kZWYgc3RhcnRfc2VydmVycyhob3N0LCBwb3J0cywgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRy
ZXNzLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBzdGFydF9zZXJ2ZXJzKGhvc3QsIHBvcnRzLCBw
YXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgIG1w
X2NvbnRleHQsICoqa3dhcmdzKToKICAgICBzZXJ2ZXJzID0gZGVmYXVsdGRpY3QobGlzdCkKICAg
ICBmb3Igc2NoZW1lLCBwb3J0cyBpbiBwb3J0cy5pdGVtcygpOgogICAgICAgICBhc3NlcnQgbGVu
KHBvcnRzKSA9PSB7Imh0dHAiOiAyLCAiaHR0cHMiOiAyfS5nZXQoc2NoZW1lLCAxKQpAQCAtNTUx
LDcgKzU1Myw3IEBAIGRlZiBzdGFydF9zZXJ2ZXJzKGhvc3QsIHBvcnRzLCBwYXRocywgcm91dGVz
LCBiaW5kX2FkZHJlc3MsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICJ3c3MiOiBzdGFydF93c3Nfc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICJx
dWljLXRyYW5zcG9ydCI6IHN0YXJ0X3F1aWNfdHJhbnNwb3J0X3NlcnZlcn1bc2NoZW1lXQogCi0g
ICAgICAgICAgICBzZXJ2ZXJfcHJvYyA9IFNlcnZlclByb2Moc2NoZW1lPXNjaGVtZSkKKyAgICAg
ICAgICAgIHNlcnZlcl9wcm9jID0gU2VydmVyUHJvYyhtcF9jb250ZXh0LCBzY2hlbWU9c2NoZW1l
KQogICAgICAgICAgICAgc2VydmVyX3Byb2Muc3RhcnQoaW5pdF9mdW5jLCBob3N0LCBwb3J0LCBw
YXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25maWcsICoqa3dhcmdzKQogICAgICAgICAgICAgc2VydmVyc1tzY2hlbWVdLmFwcGVuZCgo
cG9ydCwgc2VydmVyX3Byb2MpKQpAQCAtNjA5LDYgKzYxMSw3IEBAIGRlZiBzdGFydF9odHRwMl9z
ZXJ2ZXIoaG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsICoq
a3dhcmdzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1wb3J0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJfY2xzPXdwdHNlcnZl
Lkh0dHAyV2ViVGVzdFJlcXVlc3RIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvY19yb290PXBhdGhzWyJkb2Nfcm9vdCJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdzX2RvY19yb290PXBhdGhzWyJ3c19kb2Nfcm9vdCJdLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlcz1yb3V0ZXMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV3cml0ZXM9cmV3cml0ZXMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZF9hZGRyZXNzPWJpbmRfYWRkcmVzcywK
QEAgLTc4MCw3ICs3ODMsNyBAQCBkZWYgc3RhcnRfcXVpY190cmFuc3BvcnRfc2VydmVyKGhvc3Qs
IHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVzcywgY29uZmlnLAogICAgICAgICBzdGFy
dHVwX2ZhaWxlZChsb2c9RmFsc2UpCiAKIAotZGVmIHN0YXJ0KGNvbmZpZywgcm91dGVzLCAqKmt3
YXJncyk6CitkZWYgc3RhcnQoY29uZmlnLCByb3V0ZXMsIG1wX2NvbnRleHQsICoqa3dhcmdzKToK
ICAgICBob3N0ID0gY29uZmlnWyJzZXJ2ZXJfaG9zdCJdCiAgICAgcG9ydHMgPSBjb25maWcucG9y
dHMKICAgICBwYXRocyA9IGNvbmZpZy5wYXRocwpAQCAtNzg4LDcgKzc5MSw3IEBAIGRlZiBzdGFy
dChjb25maWcsIHJvdXRlcywgKiprd2FyZ3MpOgogCiAgICAgbG9nZ2VyLmRlYnVnKCJVc2luZyBw
b3J0czogJXIiICUgcG9ydHMpCiAKLSAgICBzZXJ2ZXJzID0gc3RhcnRfc2VydmVycyhob3N0LCBw
b3J0cywgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsICoqa3dhcmdzKQorICAg
IHNlcnZlcnMgPSBzdGFydF9zZXJ2ZXJzKGhvc3QsIHBvcnRzLCBwYXRocywgcm91dGVzLCBiaW5k
X2FkZHJlc3MsIGNvbmZpZywgbXBfY29udGV4dCwgKiprd2FyZ3MpCiAKICAgICByZXR1cm4gc2Vy
dmVycwogCkBAIC04NDYsNyArODQ5LDcgQEAgY2xhc3MgQ29uZmlnQnVpbGRlcihjb25maWcuQ29u
ZmlnQnVpbGRlcik6CiAgICAgICAgICAgICAid3NzIjogWyJhdXRvIl0sCiAgICAgICAgIH0sCiAg
ICAgICAgICJjaGVja19zdWJkb21haW5zIjogVHJ1ZSwKLSAgICAgICAgImxvZ19sZXZlbCI6ICJk
ZWJ1ZyIsCisgICAgICAgICJsb2dfbGV2ZWwiOiAiaW5mbyIsCiAgICAgICAgICJiaW5kX2FkZHJl
c3MiOiBUcnVlLAogICAgICAgICAic3NsIjogewogICAgICAgICAgICAgInR5cGUiOiAicHJlZ2Vu
ZXJhdGVkIiwKQEAgLTkyOCw2ICs5MzEsOSBAQCBkZWYgYnVpbGRfY29uZmlnKG92ZXJyaWRlX3Bh
dGg9Tm9uZSwgY29uZmlnX2Nscz1Db25maWdCdWlsZGVyLCAqKmt3YXJncyk6CiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDb25maWcgcGF0aCAlcyBkb2VzIG5v
dCBleGlzdCIgJSBvdGhlcl9wYXRoKQogCisgICAgaWYga3dhcmdzLmdldCgidmVyYm9zZSIpOgor
ICAgICAgICBydi5sb2dfbGV2ZWwgPSAiZGVidWciCisKICAgICBvdmVycmlkaW5nX3BhdGhfYXJn
cyA9IFsoImRvY19yb290IiwgIkRvY3VtZW50IHJvb3QiKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoIndzX2RvY19yb290IiwgIldlYlNvY2tldHMgZG9jdW1lbnQgcm9vdCIpXQogICAg
IGZvciBrZXksIHRpdGxlIGluIG92ZXJyaWRpbmdfcGF0aF9hcmdzOgpAQCAtOTYwLDE0ICs5NjYs
MjYgQEAgZGVmIGdldF9wYXJzZXIoKToKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRp
c2FibGUgdGhlIEhUVFAvMi4wIHNlcnZlciIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1x
dWljLXRyYW5zcG9ydCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkVuYWJsZSBRVUlDIHNl
cnZlciBmb3IgV2ViVHJhbnNwb3J0IikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWV4aXQt
YWZ0ZXItc3RhcnQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJFeGl0IGFmdGVyIHN0YXJ0
aW5nIHNlcnZlcnMiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tdmVyYm9zZSIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkVuYWJsZSB2ZXJib3NlIGxvZ2dpbmciKQogICAgIHBhcnNl
ci5zZXRfZGVmYXVsdHMocmVwb3J0PUZhbHNlKQogICAgIHBhcnNlci5zZXRfZGVmYXVsdHMoaXNf
d2F2ZT1GYWxzZSkKICAgICByZXR1cm4gcGFyc2VyCiAKIAotZGVmIHJ1bihjb25maWdfY2xzPUNv
bmZpZ0J1aWxkZXIsIHJvdXRlX2J1aWxkZXI9Tm9uZSwgKiprd2FyZ3MpOgorY2xhc3MgTXBDb250
ZXh0KG9iamVjdCk6CisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICBy
ZXR1cm4gZ2V0YXR0cihtdWx0aXByb2Nlc3NpbmcsIG5hbWUpCisKKworZGVmIHJ1bihjb25maWdf
Y2xzPUNvbmZpZ0J1aWxkZXIsIHJvdXRlX2J1aWxkZXI9Tm9uZSwgbXBfY29udGV4dD1Ob25lLCAq
Kmt3YXJncyk6CiAgICAgcmVjZWl2ZWRfc2lnbmFsID0gdGhyZWFkaW5nLkV2ZW50KCkKIAorICAg
IGlmIG1wX2NvbnRleHQgaXMgTm9uZToKKyAgICAgICAgaWYgaGFzYXR0cihtdWx0aXByb2Nlc3Np
bmcsICJnZXRfY29udGV4dCIpOgorICAgICAgICAgICAgbXBfY29udGV4dCA9IG11bHRpcHJvY2Vz
c2luZy5nZXRfY29udGV4dCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtcF9jb250ZXh0
ID0gTXBDb250ZXh0KCkKKwogICAgIHdpdGggYnVpbGRfY29uZmlnKG9zLnBhdGguam9pbihyZXBv
X3Jvb3QsICJjb25maWcuanNvbiIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19jbHM9
Y29uZmlnX2NscywKICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykgYXMgY29uZmlnOgpA
QCAtOTk3LDcgKzEwMTUsNyBAQCBkZWYgcnVuKGNvbmZpZ19jbHM9Q29uZmlnQnVpbGRlciwgcm91
dGVfYnVpbGRlcj1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIHJvdXRlcyA9IHJvdXRlX2J1aWxk
ZXIoY29uZmlnLmFsaWFzZXMsIGNvbmZpZykuZ2V0X3JvdXRlcygpCiAKICAgICAgICAgaWYgY29u
ZmlnWyJjaGVja19zdWJkb21haW5zIl06Ci0gICAgICAgICAgICBjaGVja19zdWJkb21haW5zKGNv
bmZpZywgcm91dGVzKQorICAgICAgICAgICAgY2hlY2tfc3ViZG9tYWlucyhjb25maWcsIHJvdXRl
cywgbXBfY29udGV4dCkKIAogICAgICAgICBzdGFzaF9hZGRyZXNzID0gTm9uZQogICAgICAgICBp
ZiBiaW5kX2FkZHJlc3M6CkBAIC0xMDA1LDcgKzEwMjMsNyBAQCBkZWYgcnVuKGNvbmZpZ19jbHM9
Q29uZmlnQnVpbGRlciwgcm91dGVfYnVpbGRlcj1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgICAg
ICBsb2dnZXIuZGVidWcoIkdvaW5nIHRvIHVzZSBwb3J0ICVkIGZvciBzdGFzaCIgJSBzdGFzaF9h
ZGRyZXNzWzFdKQogCiAgICAgICAgIHdpdGggc3Rhc2guU3Rhc2hTZXJ2ZXIoc3Rhc2hfYWRkcmVz
cywgYXV0aGtleT1zdHIodXVpZC51dWlkNCgpKSk6Ci0gICAgICAgICAgICBzZXJ2ZXJzID0gc3Rh
cnQoY29uZmlnLCByb3V0ZXMsICoqa3dhcmdzKQorICAgICAgICAgICAgc2VydmVycyA9IHN0YXJ0
KGNvbmZpZywgcm91dGVzLCBtcF9jb250ZXh0LCAqKmt3YXJncykKICAgICAgICAgICAgIHNpZ25h
bC5zaWduYWwoc2lnbmFsLlNJR1RFUk0sIGhhbmRsZV9zaWduYWwpCiAgICAgICAgICAgICBzaWdu
YWwuc2lnbmFsKHNpZ25hbC5TSUdJTlQsIGhhbmRsZV9zaWduYWwpCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVz
dF9mdW5jdGlvbmFsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9zZXJ2ZS90ZXN0X2Z1bmN0aW9uYWwucHkKaW5kZXggNWE5MThjMmVlNDczZTU1
ODg2ZGZjNzA4NzhkM2RmMTdiNzI4ZTZmMS4uODk0NDc5ZDExMWM5MGRhZDkyNWM2ODNjYjBlOTNh
YzEzZmM2ODYxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X2Z1bmN0aW9uYWwucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X2Z1bmN0
aW9uYWwucHkKQEAgLTksNyArOSw2IEBAIHRyeToKICAgICBpbXBvcnQgUXVldWUgYXMgcXVldWUg
ICMgbm9xYTogTjgxMwogZXhjZXB0IEltcG9ydEVycm9yOgogICAgIGltcG9ydCBxdWV1ZQotaW1w
b3J0IHN5cwogaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgdGhyZWFkaW5nCiAKQEAgLTQ2LDggKzQ1
LDYgQEAgZGVmIHRlbXBmaWxlX25hbWUoKToKICAgICBvcy5yZW1vdmUobmFtZSkKIAogCi1AcHl0
ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDgpIGFuZCBzeXMucGxhdGZv
cm0gPT0gJ2RhcndpbicsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibXVsdGlwcm9jZXNz
aW5nIHRlc3QgaGFuZ3MgaW4gUHl0aG9uIDMuOCBvbiBtYWNPUyAoIzI0ODgwKSIpCiBkZWYgdGVz
dF9zdWJwcm9jZXNzX2V4aXQoc2VydmVyX3N1YnByb2Nlc3NlcywgdGVtcGZpbGVfbmFtZSk6CiAg
ICAgdGltZW91dCA9IDMwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vTWFrZWZpbGUgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVu
dGF0aW9uL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWJhZmNkNmQ2
MGYxMjljYjVjNjI2ZmIyZTA0ZDQwZjc4ZTM3NWRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vTWFrZWZpbGUKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzAgKzAsMCBAQAotIyBNYWtlZmlsZSBmb3IgU3BoaW54IGRvY3VtZW50YXRpb24KLSMK
LQotIyBZb3UgY2FuIHNldCB0aGVzZSB2YXJpYWJsZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgot
U1BISU5YT1BUUyAgICA9Ci1TUEhJTlhCVUlMRCAgID0gc3BoaW54LWJ1aWxkCi1QQVBFUiAgICAg
ICAgID0KLUJVSUxERElSICAgICAgPSBfYnVpbGQKLQotIyBJbnRlcm5hbCB2YXJpYWJsZXMuCi1Q
QVBFUk9QVF9hNCAgICAgPSAtRCBsYXRleF9wYXBlcl9zaXplPWE0Ci1QQVBFUk9QVF9sZXR0ZXIg
PSAtRCBsYXRleF9wYXBlcl9zaXplPWxldHRlcgotQUxMU1BISU5YT1BUUyAgID0gLWQgJChCVUlM
RERJUikvZG9jdHJlZXMgJChQQVBFUk9QVF8kKFBBUEVSKSkgJChTUEhJTlhPUFRTKSAuCi0KLS5Q
SE9OWTogaGVscCBjbGVhbiBodG1sIGRpcmh0bWwgc2luZ2xlaHRtbCBwaWNrbGUganNvbiBodG1s
aGVscCBxdGhlbHAgZGV2aGVscCBlcHViIGxhdGV4IGxhdGV4cGRmIHRleHQgbWFuIGNoYW5nZXMg
bGlua2NoZWNrIGRvY3Rlc3QKLQotaGVscDoKLQlAZWNobyAiUGxlYXNlIHVzZSBcYG1ha2UgPHRh
cmdldD4nIHdoZXJlIDx0YXJnZXQ+IGlzIG9uZSBvZiIKLQlAZWNobyAiICBodG1sICAgICAgIHRv
IG1ha2Ugc3RhbmRhbG9uZSBIVE1MIGZpbGVzIgotCUBlY2hvICIgIGRpcmh0bWwgICAgdG8gbWFr
ZSBIVE1MIGZpbGVzIG5hbWVkIGluZGV4Lmh0bWwgaW4gZGlyZWN0b3JpZXMiCi0JQGVjaG8gIiAg
c2luZ2xlaHRtbCB0byBtYWtlIGEgc2luZ2xlIGxhcmdlIEhUTUwgZmlsZSIKLQlAZWNobyAiICBw
aWNrbGUgICAgIHRvIG1ha2UgcGlja2xlIGZpbGVzIgotCUBlY2hvICIgIGpzb24gICAgICAgdG8g
bWFrZSBKU09OIGZpbGVzIgotCUBlY2hvICIgIGh0bWxoZWxwICAgdG8gbWFrZSBIVE1MIGZpbGVz
IGFuZCBhIEhUTUwgaGVscCBwcm9qZWN0IgotCUBlY2hvICIgIHF0aGVscCAgICAgdG8gbWFrZSBI
VE1MIGZpbGVzIGFuZCBhIHF0aGVscCBwcm9qZWN0IgotCUBlY2hvICIgIGRldmhlbHAgICAgdG8g
bWFrZSBIVE1MIGZpbGVzIGFuZCBhIERldmhlbHAgcHJvamVjdCIKLQlAZWNobyAiICBlcHViICAg
ICAgIHRvIG1ha2UgYW4gZXB1YiIKLQlAZWNobyAiICBsYXRleCAgICAgIHRvIG1ha2UgTGFUZVgg
ZmlsZXMsIHlvdSBjYW4gc2V0IFBBUEVSPWE0IG9yIFBBUEVSPWxldHRlciIKLQlAZWNobyAiICBs
YXRleHBkZiAgIHRvIG1ha2UgTGFUZVggZmlsZXMgYW5kIHJ1biB0aGVtIHRocm91Z2ggcGRmbGF0
ZXgiCi0JQGVjaG8gIiAgdGV4dCAgICAgICB0byBtYWtlIHRleHQgZmlsZXMiCi0JQGVjaG8gIiAg
bWFuICAgICAgICB0byBtYWtlIG1hbnVhbCBwYWdlcyIKLQlAZWNobyAiICBjaGFuZ2VzICAgIHRv
IG1ha2UgYW4gb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZWQvYWRkZWQvZGVwcmVjYXRlZCBpdGVtcyIK
LQlAZWNobyAiICBsaW5rY2hlY2sgIHRvIGNoZWNrIGFsbCBleHRlcm5hbCBsaW5rcyBmb3IgaW50
ZWdyaXR5IgotCUBlY2hvICIgIGRvY3Rlc3QgICAgdG8gcnVuIGFsbCBkb2N0ZXN0cyBlbWJlZGRl
ZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoaWYgZW5hYmxlZCkiCi0KLWNsZWFuOgotCS1ybSAtcmYg
JChCVUlMRERJUikvKgotCi1odG1sOgotCSQoU1BISU5YQlVJTEQpIC1iIGh0bWwgJChBTExTUEhJ
TlhPUFRTKSAkKEJVSUxERElSKS9odG1sCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQu
IFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9odG1sLiIKLQotZGlyaHRtbDoKLQkk
KFNQSElOWEJVSUxEKSAtYiBkaXJodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZGly
aHRtbAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUg
aW4gJChCVUlMRERJUikvZGlyaHRtbC4iCi0KLXNpbmdsZWh0bWw6Ci0JJChTUEhJTlhCVUlMRCkg
LWIgc2luZ2xlaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3NpbmdsZWh0bWwKLQlA
ZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZSBpcyBpbiAkKEJVSUxE
RElSKS9zaW5nbGVodG1sLiIKLQotcGlja2xlOgotCSQoU1BISU5YQlVJTEQpIC1iIHBpY2tsZSAk
KEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3BpY2tsZQotCUBlY2hvCi0JQGVjaG8gIkJ1aWxk
IGZpbmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBwaWNrbGUgZmlsZXMuIgotCi1qc29u
OgotCSQoU1BISU5YQlVJTEQpIC1iIGpzb24gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9q
c29uCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3Mg
dGhlIEpTT04gZmlsZXMuIgotCi1odG1saGVscDoKLQkkKFNQSElOWEJVSUxEKSAtYiBodG1saGVs
cCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0bWxoZWxwCi0JQGVjaG8KLQlAZWNobyAi
QnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHJ1biBIVE1MIEhlbHAgV29ya3Nob3Agd2l0aCB0
aGUiIFwKLQkgICAgICAiLmhocCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikvaHRtbGhlbHAu
IgotCi1xdGhlbHA6Ci0JJChTUEhJTlhCVUlMRCkgLWIgcXRoZWxwICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvcXRoZWxwCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5
b3UgY2FuIHJ1biAicWNvbGxlY3Rpb25nZW5lcmF0b3IiIHdpdGggdGhlIiBcCi0JICAgICAgIi5x
aGNwIHByb2plY3QgZmlsZSBpbiAkKEJVSUxERElSKS9xdGhlbHAsIGxpa2UgdGhpczoiCi0JQGVj
aG8gIiMgcWNvbGxlY3Rpb25nZW5lcmF0b3IgJChCVUlMRERJUikvcXRoZWxwL3NpeC5xaGNwIgot
CUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6IgotCUBlY2hvICIjIGFzc2lzdGFudCAtY29s
bGVjdGlvbkZpbGUgJChCVUlMRERJUikvcXRoZWxwL3NpeC5xaGMiCi0KLWRldmhlbHA6Ci0JJChT
UEhJTlhCVUlMRCkgLWIgZGV2aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2Rldmhl
bHAKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4iCi0JQGVjaG8gIlRvIHZpZXcgdGhl
IGhlbHAgZmlsZToiCi0JQGVjaG8gIiMgbWtkaXIgLXAgJCRIT01FLy5sb2NhbC9zaGFyZS9kZXZo
ZWxwL3NpeCIKLQlAZWNobyAiIyBsbiAtcyAkKEJVSUxERElSKS9kZXZoZWxwICQkSE9NRS8ubG9j
YWwvc2hhcmUvZGV2aGVscC9zaXgiCi0JQGVjaG8gIiMgZGV2aGVscCIKLQotZXB1YjoKLQkkKFNQ
SElOWEJVSUxEKSAtYiBlcHViICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZXB1YgotCUBl
Y2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgZXB1YiBmaWxlIGlzIGluICQoQlVJTERE
SVIpL2VwdWIuIgotCi1sYXRleDoKLQkkKFNQSElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElO
WE9QVFMpICQoQlVJTERESVIpL2xhdGV4Ci0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7
IHRoZSBMYVRlWCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvbGF0ZXguIgotCUBlY2hvICJSdW4g
XGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0byBydW4gdGhlc2UgdGhyb3VnaCAocGRmKWxhdGV4
IiBcCi0JICAgICAgIih1c2UgXGBtYWtlIGxhdGV4cGRmJyBoZXJlIHRvIGRvIHRoYXQgYXV0b21h
dGljYWxseSkuIgotCi1sYXRleHBkZjoKLQkkKFNQSElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQ
SElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4Ci0JQGVjaG8gIlJ1bm5pbmcgTGFUZVggZmlsZXMg
dGhyb3VnaCBwZGZsYXRleC4uLiIKLQltYWtlIC1DICQoQlVJTERESVIpL2xhdGV4IGFsbC1wZGYK
LQlAZWNobyAicGRmbGF0ZXggZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICQoQlVJTERE
SVIpL2xhdGV4LiIKLQotdGV4dDoKLQkkKFNQSElOWEJVSUxEKSAtYiB0ZXh0ICQoQUxMU1BISU5Y
T1BUUykgJChCVUlMRERJUikvdGV4dAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBU
aGUgdGV4dCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4dC4iCi0KLW1hbjoKLQkkKFNQSElO
WEJVSUxEKSAtYiBtYW4gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9tYW4KLQlAZWNobwot
CUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1hbnVhbCBwYWdlcyBhcmUgaW4gJChCVUlMRERJ
UikvbWFuLiIKLQotY2hhbmdlczoKLQkkKFNQSElOWEJVSUxEKSAtYiBjaGFuZ2VzICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvY2hhbmdlcwotCUBlY2hvCi0JQGVjaG8gIlRoZSBvdmVydmll
dyBmaWxlIGlzIGluICQoQlVJTERESVIpL2NoYW5nZXMuIgotCi1saW5rY2hlY2s6Ci0JJChTUEhJ
TlhCVUlMRCkgLWIgbGlua2NoZWNrICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGlua2No
ZWNrCi0JQGVjaG8KLQlAZWNobyAiTGluayBjaGVjayBjb21wbGV0ZTsgbG9vayBmb3IgYW55IGVy
cm9ycyBpbiB0aGUgYWJvdmUgb3V0cHV0ICIgXAotCSAgICAgICJvciBpbiAkKEJVSUxERElSKS9s
aW5rY2hlY2svb3V0cHV0LnR4dC4iCi0KLWRvY3Rlc3Q6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZG9j
dGVzdCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2RvY3Rlc3QKLQlAZWNobyAiVGVzdGlu
ZyBvZiBkb2N0ZXN0cyBpbiB0aGUgc291cmNlcyBmaW5pc2hlZCwgbG9vayBhdCB0aGUgIiBcCi0J
ICAgICAgInJlc3VsdHMgaW4gJChCVUlMRERJUikvZG9jdGVzdC9vdXRwdXQudHh0LiIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
c2l4L2RvY3VtZW50YXRpb24vY29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vY29uZi5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggN2U1NDI4N2E2OWUwNDcwN2IxYTUwZWY2YjY2ZmFhNmJkMmQx
ODgxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVu
dGF0aW9uL2NvbmYucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMTcgKzAsMCBAQAotIyAtKi0gY29k
aW5nOiB1dGYtOCAtKi0KLSMKLSMgc2l4IGRvY3VtZW50YXRpb24gYnVpbGQgY29uZmlndXJhdGlv
biBmaWxlCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi0jIElmIGV4dGVuc2lvbnMgKG9yIG1v
ZHVsZXMgdG8gZG9jdW1lbnQgd2l0aCBhdXRvZG9jKSBhcmUgaW4gYW5vdGhlciBkaXJlY3Rvcnks
Ci0jIGFkZCB0aGVzZSBkaXJlY3RvcmllcyB0byBzeXMucGF0aCBoZXJlLiBJZiB0aGUgZGlyZWN0
b3J5IGlzIHJlbGF0aXZlIHRvIHRoZQotIyBkb2N1bWVudGF0aW9uIHJvb3QsIHVzZSBvcy5wYXRo
LmFic3BhdGggdG8gbWFrZSBpdCBhYnNvbHV0ZSwgbGlrZSBzaG93biBoZXJlLgotI3N5cy5wYXRo
LmFwcGVuZChvcy5wYXRoLmFic3BhdGgoJy4nKSkKLQotIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRp
b24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotIyBJZiB5b3VyIGRvY3VtZW50YXRpb24gbmVlZHMgYSBtaW5pbWFsIFNwaGlueCB2ZXJzaW9u
LCBzdGF0ZSBpdCBoZXJlLgotbmVlZHNfc3BoaW54ID0gIjEuMCIKLQotIyBBZGQgYW55IFNwaGlu
eCBleHRlbnNpb24gbW9kdWxlIG5hbWVzIGhlcmUsIGFzIHN0cmluZ3MuIFRoZXkgY2FuIGJlIGV4
dGVuc2lvbnMKLSMgY29taW5nIHdpdGggU3BoaW54IChuYW1lZCAnc3BoaW54LmV4dC4qJykgb3Ig
eW91ciBjdXN0b20gb25lcy4KLWV4dGVuc2lvbnMgPSBbInNwaGlueC5leHQuaW50ZXJzcGhpbngi
XQotCi0jIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2
ZSB0byB0aGlzIGRpcmVjdG9yeS4KLXRlbXBsYXRlc19wYXRoID0gWyJfdGVtcGxhdGVzIl0KLQot
IyBUaGUgc3VmZml4IG9mIHNvdXJjZSBmaWxlbmFtZXMuCi1zb3VyY2Vfc3VmZml4ID0gIi5yc3Qi
Ci0KLSMgVGhlIGVuY29kaW5nIG9mIHNvdXJjZSBmaWxlcy4KLSNzb3VyY2VfZW5jb2RpbmcgPSAi
dXRmLTgtc2lnIgotCi0jIFRoZSBtYXN0ZXIgdG9jdHJlZSBkb2N1bWVudC4KLW1hc3Rlcl9kb2Mg
PSAiaW5kZXgiCi0KLSMgR2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvamVjdC4KLXBy
b2plY3QgPSB1InNpeCIKLWNvcHlyaWdodCA9IHUiMjAxMC0yMDE0LCBCZW5qYW1pbiBQZXRlcnNv
biIKLQotc3lzLnBhdGguYXBwZW5kKG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oIi4iLCAi
Li4iKSkpCi1mcm9tIHNpeCBpbXBvcnQgX192ZXJzaW9uX18gYXMgc2l4X3ZlcnNpb24KLXN5cy5w
YXRoLnBvcCgpCi0KLSMgVGhlIHZlcnNpb24gaW5mbyBmb3IgdGhlIHByb2plY3QgeW91J3JlIGRv
Y3VtZW50aW5nLCBhY3RzIGFzIHJlcGxhY2VtZW50IGZvcgotIyB8dmVyc2lvbnwgYW5kIHxyZWxl
YXNlfCwgYWxzbyB1c2VkIGluIHZhcmlvdXMgb3RoZXIgcGxhY2VzIHRocm91Z2hvdXQgdGhlCi0j
IGJ1aWx0IGRvY3VtZW50cy4KLSMKLSMgVGhlIHNob3J0IFguWSB2ZXJzaW9uLgotdmVyc2lvbiA9
IHNpeF92ZXJzaW9uWzotMl0KLSMgVGhlIGZ1bGwgdmVyc2lvbiwgaW5jbHVkaW5nIGFscGhhL2Jl
dGEvcmMgdGFncy4KLXJlbGVhc2UgPSBzaXhfdmVyc2lvbgotCi0jIFRoZSBsYW5ndWFnZSBmb3Ig
Y29udGVudCBhdXRvZ2VuZXJhdGVkIGJ5IFNwaGlueC4gUmVmZXIgdG8gZG9jdW1lbnRhdGlvbgot
IyBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCBsYW5ndWFnZXMuCi0jbGFuZ3VhZ2UgPSBOb25lCi0K
LSMgVGhlcmUgYXJlIHR3byBvcHRpb25zIGZvciByZXBsYWNpbmcgfHRvZGF5fDogZWl0aGVyLCB5
b3Ugc2V0IHRvZGF5IHRvIHNvbWUKLSMgbm9uLWZhbHNlIHZhbHVlLCB0aGVuIGl0IGlzIHVzZWQ6
Ci0jdG9kYXkgPSAnJwotIyBFbHNlLCB0b2RheV9mbXQgaXMgdXNlZCBhcyB0aGUgZm9ybWF0IGZv
ciBhIHN0cmZ0aW1lIGNhbGwuCi0jdG9kYXlfZm10ID0gJyVCICVkLCAlWScKLQotIyBMaXN0IG9m
IHBhdHRlcm5zLCByZWxhdGl2ZSB0byBzb3VyY2UgZGlyZWN0b3J5LCB0aGF0IG1hdGNoIGZpbGVz
IGFuZAotIyBkaXJlY3RvcmllcyB0byBpZ25vcmUgd2hlbiBsb29raW5nIGZvciBzb3VyY2UgZmls
ZXMuCi1leGNsdWRlX3BhdHRlcm5zID0gWyJfYnVpbGQiXQotCi0jIFRoZSByZVNUIGRlZmF1bHQg
cm9sZSAodXNlZCBmb3IgdGhpcyBtYXJrdXA6IGB0ZXh0YCkgdG8gdXNlIGZvciBhbGwgZG9jdW1l
bnRzLgotI2RlZmF1bHRfcm9sZSA9IE5vbmUKLQotIyBJZiB0cnVlLCAnKCknIHdpbGwgYmUgYXBw
ZW5kZWQgdG8gOmZ1bmM6IGV0Yy4gY3Jvc3MtcmVmZXJlbmNlIHRleHQuCi0jYWRkX2Z1bmN0aW9u
X3BhcmVudGhlc2VzID0gVHJ1ZQotCi0jIElmIHRydWUsIHRoZSBjdXJyZW50IG1vZHVsZSBuYW1l
IHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBkZXNjcmlwdGlvbgotIyB1bml0IHRpdGxlcyAoc3Vj
aCBhcyAuLiBmdW5jdGlvbjo6KS4KLSNhZGRfbW9kdWxlX25hbWVzID0gVHJ1ZQotCi0jIElmIHRy
dWUsIHNlY3Rpb25hdXRob3IgYW5kIG1vZHVsZWF1dGhvciBkaXJlY3RpdmVzIHdpbGwgYmUgc2hv
d24gaW4gdGhlCi0jIG91dHB1dC4gVGhleSBhcmUgaWdub3JlZCBieSBkZWZhdWx0LgotI3Nob3df
YXV0aG9ycyA9IEZhbHNlCi0KLSMgVGhlIG5hbWUgb2YgdGhlIFB5Z21lbnRzIChzeW50YXggaGln
aGxpZ2h0aW5nKSBzdHlsZSB0byB1c2UuCi1weWdtZW50c19zdHlsZSA9ICJzcGhpbngiCi0KLSMg
QSBsaXN0IG9mIGlnbm9yZWQgcHJlZml4ZXMgZm9yIG1vZHVsZSBpbmRleCBzb3J0aW5nLgotI21v
ZGluZGV4X2NvbW1vbl9wcmVmaXggPSBbXQotCi0KLSMgLS0gT3B0aW9ucyBmb3IgSFRNTCBvdXRw
dXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LSMgVGhlIHRoZW1lIHRvIHVzZSBmb3IgSFRNTCBhbmQgSFRNTCBIZWxwIHBhZ2VzLiAgU2VlIHRo
ZSBkb2N1bWVudGF0aW9uIGZvcgotIyBhIGxpc3Qgb2YgYnVpbHRpbiB0aGVtZXMuCi1odG1sX3Ro
ZW1lID0gImRlZmF1bHQiCi0KLSMgVGhlbWUgb3B0aW9ucyBhcmUgdGhlbWUtc3BlY2lmaWMgYW5k
IGN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbCBvZiBhIHRoZW1lCi0jIGZ1cnRoZXIuICBGb3Ig
YSBsaXN0IG9mIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBlYWNoIHRoZW1lLCBzZWUgdGhlCi0jIGRv
Y3VtZW50YXRpb24uCi0jaHRtbF90aGVtZV9vcHRpb25zID0ge30KLQotIyBBZGQgYW55IHBhdGhz
IHRoYXQgY29udGFpbiBjdXN0b20gdGhlbWVzIGhlcmUsIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0
b3J5LgotI2h0bWxfdGhlbWVfcGF0aCA9IFtdCi0KLSMgVGhlIG5hbWUgZm9yIHRoaXMgc2V0IG9m
IFNwaGlueCBkb2N1bWVudHMuICBJZiBOb25lLCBpdCBkZWZhdWx0cyB0bwotIyAiPHByb2plY3Q+
IHY8cmVsZWFzZT4gZG9jdW1lbnRhdGlvbiIuCi0jaHRtbF90aXRsZSA9IE5vbmUKLQotIyBBIHNo
b3J0ZXIgdGl0bGUgZm9yIHRoZSBuYXZpZ2F0aW9uIGJhci4gIERlZmF1bHQgaXMgdGhlIHNhbWUg
YXMgaHRtbF90aXRsZS4KLSNodG1sX3Nob3J0X3RpdGxlID0gTm9uZQotCi0jIFRoZSBuYW1lIG9m
IGFuIGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5KSB0byBwbGFjZSBhdCB0
aGUgdG9wCi0jIG9mIHRoZSBzaWRlYmFyLgotI2h0bWxfbG9nbyA9IE5vbmUKLQotIyBUaGUgbmFt
ZSBvZiBhbiBpbWFnZSBmaWxlICh3aXRoaW4gdGhlIHN0YXRpYyBwYXRoKSB0byB1c2UgYXMgZmF2
aWNvbiBvZiB0aGUKLSMgZG9jcy4gIFRoaXMgZmlsZSBzaG91bGQgYmUgYSBXaW5kb3dzIGljb24g
ZmlsZSAoLmljbykgYmVpbmcgMTZ4MTYgb3IgMzJ4MzIKLSMgcGl4ZWxzIGxhcmdlLgotI2h0bWxf
ZmF2aWNvbiA9IE5vbmUKLQotIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gc3Rh
dGljIGZpbGVzIChzdWNoIGFzIHN0eWxlIHNoZWV0cykgaGVyZSwKLSMgcmVsYXRpdmUgdG8gdGhp
cyBkaXJlY3RvcnkuIFRoZXkgYXJlIGNvcGllZCBhZnRlciB0aGUgYnVpbHRpbiBzdGF0aWMgZmls
ZXMsCi0jIHNvIGEgZmlsZSBuYW1lZCAiZGVmYXVsdC5jc3MiIHdpbGwgb3ZlcndyaXRlIHRoZSBi
dWlsdGluICJkZWZhdWx0LmNzcyIuCi1odG1sX3N0YXRpY19wYXRoID0gWyJfc3RhdGljIl0KLQot
IyBJZiBub3QgJycsIGEgJ0xhc3QgdXBkYXRlZCBvbjonIHRpbWVzdGFtcCBpcyBpbnNlcnRlZCBh
dCBldmVyeSBwYWdlIGJvdHRvbSwKLSMgdXNpbmcgdGhlIGdpdmVuIHN0cmZ0aW1lIGZvcm1hdC4K
LSNodG1sX2xhc3RfdXBkYXRlZF9mbXQgPSAnJWIgJWQsICVZJwotCi0jIElmIHRydWUsIFNtYXJ0
eVBhbnRzIHdpbGwgYmUgdXNlZCB0byBjb252ZXJ0IHF1b3RlcyBhbmQgZGFzaGVzIHRvCi0jIHR5
cG9ncmFwaGljYWxseSBjb3JyZWN0IGVudGl0aWVzLgotI2h0bWxfdXNlX3NtYXJ0eXBhbnRzID0g
VHJ1ZQotCi0jIEN1c3RvbSBzaWRlYmFyIHRlbXBsYXRlcywgbWFwcyBkb2N1bWVudCBuYW1lcyB0
byB0ZW1wbGF0ZSBuYW1lcy4KLSNodG1sX3NpZGViYXJzID0ge30KLQotIyBBZGRpdGlvbmFsIHRl
bXBsYXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB0byBwYWdlcywgbWFwcyBwYWdlIG5hbWVz
IHRvCi0jIHRlbXBsYXRlIG5hbWVzLgotI2h0bWxfYWRkaXRpb25hbF9wYWdlcyA9IHt9Ci0KLSMg
SWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCi0jaHRtbF9kb21haW5faW5k
aWNlcyA9IFRydWUKLQotIyBJZiBmYWxzZSwgbm8gaW5kZXggaXMgZ2VuZXJhdGVkLgotI2h0bWxf
dXNlX2luZGV4ID0gVHJ1ZQotCi0jIElmIHRydWUsIHRoZSBpbmRleCBpcyBzcGxpdCBpbnRvIGlu
ZGl2aWR1YWwgcGFnZXMgZm9yIGVhY2ggbGV0dGVyLgotI2h0bWxfc3BsaXRfaW5kZXggPSBGYWxz
ZQotCi0jIElmIHRydWUsIGxpbmtzIHRvIHRoZSByZVNUIHNvdXJjZXMgYXJlIGFkZGVkIHRvIHRo
ZSBwYWdlcy4KLSNodG1sX3Nob3dfc291cmNlbGluayA9IFRydWUKLQotIyBJZiB0cnVlLCAiQ3Jl
YXRlZCB1c2luZyBTcGhpbngiIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBp
cyBUcnVlLgotI2h0bWxfc2hvd19zcGhpbnggPSBUcnVlCi0KLSMgSWYgdHJ1ZSwgIihDKSBDb3B5
cmlnaHQgLi4uIiBpcyBzaG93biBpbiB0aGUgSFRNTCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1ZS4K
LSNodG1sX3Nob3dfY29weXJpZ2h0ID0gVHJ1ZQotCi0jIElmIHRydWUsIGFuIE9wZW5TZWFyY2gg
ZGVzY3JpcHRpb24gZmlsZSB3aWxsIGJlIG91dHB1dCwgYW5kIGFsbCBwYWdlcyB3aWxsCi0jIGNv
bnRhaW4gYSA8bGluaz4gdGFnIHJlZmVycmluZyB0byBpdC4gIFRoZSB2YWx1ZSBvZiB0aGlzIG9w
dGlvbiBtdXN0IGJlIHRoZQotIyBiYXNlIFVSTCBmcm9tIHdoaWNoIHRoZSBmaW5pc2hlZCBIVE1M
IGlzIHNlcnZlZC4KLSNodG1sX3VzZV9vcGVuc2VhcmNoID0gJycKLQotIyBJZiBub25lbXB0eSwg
dGhpcyBpcyB0aGUgZmlsZSBuYW1lIHN1ZmZpeCBmb3IgSFRNTCBmaWxlcyAoZS5nLiAiLnhodG1s
IikuCi0jaHRtbF9maWxlX3N1ZmZpeCA9ICcnCi0KLSMgT3V0cHV0IGZpbGUgYmFzZSBuYW1lIGZv
ciBIVE1MIGhlbHAgYnVpbGRlci4KLWh0bWxoZWxwX2Jhc2VuYW1lID0gJ3NpeGRvYycKLQotCi0j
IC0tIE9wdGlvbnMgZm9yIExhVGVYIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jIFRoZSBwYXBlciBzaXplICgnbGV0dGVyJyBvciAn
YTQnKS4KLSNsYXRleF9wYXBlcl9zaXplID0gJ2xldHRlcicKLQotIyBUaGUgZm9udCBzaXplICgn
MTBwdCcsICcxMXB0JyBvciAnMTJwdCcpLgotI2xhdGV4X2ZvbnRfc2l6ZSA9ICcxMHB0JwotCi0j
IEdyb3VwaW5nIHRoZSBkb2N1bWVudCB0cmVlIGludG8gTGFUZVggZmlsZXMuIExpc3Qgb2YgdHVw
bGVzCi0jIChzb3VyY2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBhdXRob3IsIGRv
Y3VtZW50Y2xhc3MgW2hvd3RvL21hbnVhbF0pLgotbGF0ZXhfZG9jdW1lbnRzID0gWwotICAoImlu
ZGV4IiwgInNpeC50ZXgiLCB1InNpeCBEb2N1bWVudGF0aW9uIiwKLSAgIHUiQmVuamFtaW4gUGV0
ZXJzb24iLCAibWFudWFsIiksCi1dCi0KLSMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVs
YXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3Agb2YKLSMgdGhlIHRp
dGxlIHBhZ2UuCi0jbGF0ZXhfbG9nbyA9IE5vbmUKLQotIyBGb3IgIm1hbnVhbCIgZG9jdW1lbnRz
LCBpZiB0aGlzIGlzIHRydWUsIHRoZW4gdG9wbGV2ZWwgaGVhZGluZ3MgYXJlIHBhcnRzLAotIyBu
b3QgY2hhcHRlcnMuCi0jbGF0ZXhfdXNlX3BhcnRzID0gRmFsc2UKLQotIyBJZiB0cnVlLCBzaG93
IHBhZ2UgcmVmZXJlbmNlcyBhZnRlciBpbnRlcm5hbCBsaW5rcy4KLSNsYXRleF9zaG93X3BhZ2Vy
ZWZzID0gRmFsc2UKLQotIyBJZiB0cnVlLCBzaG93IFVSTCBhZGRyZXNzZXMgYWZ0ZXIgZXh0ZXJu
YWwgbGlua3MuCi0jbGF0ZXhfc2hvd191cmxzID0gRmFsc2UKLQotIyBBZGRpdGlvbmFsIHN0dWZm
IGZvciB0aGUgTGFUZVggcHJlYW1ibGUuCi0jbGF0ZXhfcHJlYW1ibGUgPSAnJwotCi0jIERvY3Vt
ZW50cyB0byBhcHBlbmQgYXMgYW4gYXBwZW5kaXggdG8gYWxsIG1hbnVhbHMuCi0jbGF0ZXhfYXBw
ZW5kaWNlcyA9IFtdCi0KLSMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQu
Ci0jbGF0ZXhfZG9tYWluX2luZGljZXMgPSBUcnVlCi0KLQotIyAtLSBPcHRpb25zIGZvciBtYW51
YWwgcGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLQotIyBPbmUgZW50cnkgcGVyIG1hbnVhbCBwYWdlLiBMaXN0IG9mIHR1cGxlcwotIyAoc291
cmNlIHN0YXJ0IGZpbGUsIG5hbWUsIGRlc2NyaXB0aW9uLCBhdXRob3JzLCBtYW51YWwgc2VjdGlv
bikuCi1tYW5fcGFnZXMgPSBbCi0gICAgKCJpbmRleCIsICJzaXgiLCB1InNpeCBEb2N1bWVudGF0
aW9uIiwKLSAgICAgW3UiQmVuamFtaW4gUGV0ZXJzb24iXSwgMSkKLV0KLQotIyAtLSBJbnRlcnNw
aGlueCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotaW50ZXJzcGhpbnhfbWFwcGluZyA9IHsicHkyIiA6ICgiaHR0cHM6Ly9k
b2NzLnB5dGhvbi5vcmcvMi8iLCBOb25lKSwKLSAgICAgICAgICAgICAgICAgICAgICAgInB5MyIg
OiAoImh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvIiwgTm9uZSl9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVu
dGF0aW9uL2luZGV4LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vaW5kZXgucnN0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5ODI3ZTY2OTViNTkzMWU1NTE0NGM4NTg3NmI3ZDZmMjU1Y2YzNDQyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24v
aW5kZXgucnN0CisrKyAvZGV2L251bGwKQEAgLTEsNzg1ICswLDAgQEAKLVNpeDogUHl0aG9uIDIg
YW5kIDMgQ29tcGF0aWJpbGl0eSBMaWJyYXJ5Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotCi0uLiBtb2R1bGU6OiBzaXgKLSAgIDpzeW5vcHNpczogUHl0aG9uIDIg
YW5kIDMgY29tcGF0aWJpbGl0eQotCi0uLiBtb2R1bGVhdXRob3I6OiBCZW5qYW1pbiBQZXRlcnNv
biA8YmVuamFtaW5AcHl0aG9uLm9yZz4KLS4uIHNlY3Rpb25hdXRob3I6OiBCZW5qYW1pbiBQZXRl
cnNvbiA8YmVuamFtaW5AcHl0aG9uLm9yZz4KLQotCi1TaXggcHJvdmlkZXMgc2ltcGxlIHV0aWxp
dGllcyBmb3Igd3JhcHBpbmcgb3ZlciBkaWZmZXJlbmNlcyBiZXR3ZWVuIFB5dGhvbiAyIGFuZAot
UHl0aG9uIDMuICBJdCBpcyBpbnRlbmRlZCB0byBzdXBwb3J0IGNvZGViYXNlcyB0aGF0IHdvcmsg
b24gYm90aCBQeXRob24gMiBhbmQgMwotd2l0aG91dCBtb2RpZmljYXRpb24uICBzaXggY29uc2lz
dHMgb2Ygb25seSBvbmUgUHl0aG9uIGZpbGUsIHNvIGl0IGlzIHBhaW5sZXNzCi10byBjb3B5IGlu
dG8gYSBwcm9qZWN0LgotCi1TaXggY2FuIGJlIGRvd25sb2FkZWQgb24gYFB5UGkgPGh0dHA6Ly9w
eXBpLnB5dGhvbi5vcmcvcHlwaS9zaXgvPmBfLiAgSXRzIGJ1ZwotdHJhY2tlciBhbmQgY29kZSBo
b3N0aW5nIGlzIG9uIGBCaXRCdWNrZXQgPGh0dHA6Ly9iaXRidWNrZXQub3JnL2d1dHdvcnRoL3Np
eD5gXy4KLQotVGhlIG5hbWUsICJzaXgiLCBjb21lcyBmcm9tIHRoZSBmYWN0IHRoYXQgMiozIGVx
dWFscyA2LiAgV2h5IG5vdCBhZGRpdGlvbj8KLU11bHRpcGxpY2F0aW9uIGlzIG1vcmUgcG93ZXJm
dWwsIGFuZCwgYW55d2F5LCAiZml2ZSIgaGFzIGFscmVhZHkgYmVlbiBzbmF0Y2hlZAotYXdheSBi
eSB0aGUgWm9wZSBGaXZlIHByb2plY3QuCi0KLQotSW5kaWNlcyBhbmQgdGFibGVzCi0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotKiA6cmVmOmBnZW5pbmRleGAKLSogOnJlZjpgc2VhcmNoYAotCi0KLVBh
Y2thZ2UgY29udGVudHMKLS0tLS0tLS0tLS0tLS0tLS0KLQotLi4gZGF0YTo6IFBZMgotCi0gICBB
IGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgY29kZSBpcyBydW5uaW5nIG9uIFB5dGhvbiAyLgot
Ci0uLiBkYXRhOjogUFkzCi0KLSAgIEEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBjb2RlIGlz
IHJ1bm5pbmcgb24gUHl0aG9uIDMuCi0KLQotQ29uc3RhbnRzCi0+Pj4+Pj4+Pj4KLQotU2l4IHBy
b3ZpZGVzIGNvbnN0YW50cyB0aGF0IG1heSBkaWZmZXIgYmV0d2VlbiBQeXRob24gdmVyc2lvbnMu
ICBPbmVzIGVuZGluZwotYGBfdHlwZXNgYCBhcmUgbW9zdGx5IHVzZWZ1bCBhcyB0aGUgc2Vjb25k
IGFyZ3VtZW50IHRvIGBgaXNpbnN0YW5jZWBgIG9yCi1gYGlzc3ViY2xhc3NgYC4KLQotCi0uLiBk
YXRhOjogY2xhc3NfdHlwZXMKLQotICAgUG9zc2libGUgY2xhc3MgdHlwZXMuICBJbiBQeXRob24g
MiwgdGhpcyBlbmNvbXBhc3NlcyBvbGQtc3R5bGUgYW5kIG5ldy1zdHlsZQotICAgY2xhc3Nlcy4g
IEluIFB5dGhvbiAzLCB0aGlzIGlzIGp1c3QgbmV3LXN0eWxlcy4KLQotCi0uLiBkYXRhOjogaW50
ZWdlcl90eXBlcwotCi0gICBQb3NzaWJsZSBpbnRlZ2VyIHR5cGVzLiAgSW4gUHl0aG9uIDIsIHRo
aXMgaXMgOmZ1bmM6YHB5Mjpsb25nYCBhbmQKLSAgIDpmdW5jOmBweTI6aW50YCwgYW5kIGluIFB5
dGhvbiAzLCBqdXN0IDpmdW5jOmBweTM6aW50YC4KLQotCi0uLiBkYXRhOjogc3RyaW5nX3R5cGVz
Ci0KLSAgIFBvc3NpYmxlIHR5cGVzIGZvciB0ZXh0IGRhdGEuICBUaGlzIGlzIDpmdW5jOmBweTI6
YmFzZXN0cmluZ2AgaW4gUHl0aG9uIDIgYW5kCi0gICA6ZnVuYzpgcHkzOnN0cmAgaW4gUHl0aG9u
IDMuCi0KLQotLi4gZGF0YTo6IHRleHRfdHlwZQotCi0gICBUeXBlIGZvciByZXByZXNlbnRpbmcg
KFVuaWNvZGUpIHRleHR1YWwgZGF0YS4gIFRoaXMgaXMgOmZ1bmM6YHB5Mjp1bmljb2RlYCBpbgot
ICAgUHl0aG9uIDIgYW5kIDpmdW5jOmBweTM6c3RyYCBpbiBQeXRob24gMy4KLQotCi0uLiBkYXRh
OjogYmluYXJ5X3R5cGUKLQotICAgVHlwZSBmb3IgcmVwcmVzZW50aW5nIGJpbmFyeSBkYXRhLiAg
VGhpcyBpcyA6ZnVuYzpgcHkyOnN0cmAgaW4gUHl0aG9uIDIgYW5kCi0gICA6ZnVuYzpgcHkzOmJ5
dGVzYCBpbiBQeXRob24gMy4KLQotCi0uLiBkYXRhOjogTUFYU0laRQotCi0gICBUaGUgbWF4aW11
bSAgc2l6ZSBvZiBhICBjb250YWluZXIgbGlrZSA6ZnVuYzpgcHkzOmxpc3RgICBvciA6ZnVuYzpg
cHkzOmRpY3RgLgotICAgVGhpcyAgaXMgIGVxdWl2YWxlbnQgIHRvICA6ZGF0YTpgcHkzOnN5cy5t
YXhzaXplYCBpbiAgUHl0aG9uICAyLjYgIGFuZCAgbGF0ZXIKLSAgIChpbmNsdWRpbmcgMy54KS4g
ICBOb3RlLCB0aGlzIGlzIHRlbXB0aW5nbHkgIHNpbWlsYXIgdG8sIGJ1dCBub3QgIHRoZSBzYW1l
IGFzCi0gICA6ZGF0YTpgcHkyOnN5cy5tYXhpbnRgICBpbiAgUHl0aG9uICAyLiAgIFRoZXJlIGlz
ICBubyAgZGlyZWN0ICBlcXVpdmFsZW50ICB0bwotICAgOmRhdGE6YHB5MjpzeXMubWF4aW50YCBp
biAgUHl0aG9uIDMgIGJlY2F1c2UgaXRzIGludGVnZXIgIHR5cGUgaGFzICBubyBsaW1pdHMKLSAg
IGFzaWRlIGZyb20gbWVtb3J5LgotCi0KLUhlcmUncyBleGFtcGxlIHVzYWdlIG9mIHRoZSBtb2R1
bGU6OgotCi0gICBpbXBvcnQgc2l4Ci0KLSAgIGRlZiBkaXNwYXRjaF90eXBlcyh2YWx1ZSk6Ci0g
ICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc2l4LmludGVnZXJfdHlwZXMpOgotICAgICAgICAg
ICBoYW5kbGVfaW50ZWdlcih2YWx1ZSkKLSAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIHNp
eC5jbGFzc190eXBlcyk6Ci0gICAgICAgICAgIGhhbmRsZV9jbGFzcyh2YWx1ZSkKLSAgICAgICBl
bGlmIGlzaW5zdGFuY2UodmFsdWUsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAgICBoYW5k
bGVfc3RyaW5nKHZhbHVlKQotCi0KLU9iamVjdCBtb2RlbCBjb21wYXRpYmlsaXR5Ci0+Pj4+Pj4+
Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgotCi1QeXRob24gMyByZW5hbWVkIHRoZSBhdHRyaWJ1dGVzIG9m
IHNldmVyYWwgaW50ZXJwcmV0ZXIgZGF0YSBzdHJ1Y3R1cmVzLiAgVGhlCi1mb2xsb3dpbmcgYWNj
ZXNzb3JzIGFyZSBhdmFpbGFibGUuICBOb3RlIHRoYXQgdGhlIHJlY29tbWVuZGVkIHdheSB0byBp
bnNwZWN0Ci1mdW5jdGlvbnMgYW5kIG1ldGhvZHMgaXMgdGhlIHN0ZGxpYiA6bW9kOmBweTM6aW5z
cGVjdGAgbW9kdWxlLgotCi0KLS4uIGZ1bmN0aW9uOjogZ2V0X3VuYm91bmRfZnVuY3Rpb24obWV0
aCkKLQotICAgR2V0IHRoZSBmdW5jdGlvbiBvdXQgb2YgdW5ib3VuZCBtZXRob2QgKm1ldGgqLiAg
SW4gUHl0aG9uIDMsIHVuYm91bmQgbWV0aG9kcwotICAgZG9uJ3QgZXhpc3QsIHNvIHRoaXMgZnVu
Y3Rpb24ganVzdCByZXR1cm5zICptZXRoKiB1bmNoYW5nZWQuICBFeGFtcGxlCi0gICB1c2FnZTo6
Ci0KLSAgICAgIGZyb20gc2l4IGltcG9ydCBnZXRfdW5ib3VuZF9mdW5jdGlvbgotCi0gICAgICBj
bGFzcyBYKG9iamVjdCk6Ci0gICAgICAgICAgZGVmIG1ldGhvZChzZWxmKToKLSAgICAgICAgICAg
ICAgcGFzcwotICAgICAgbWV0aG9kX2Z1bmN0aW9uID0gZ2V0X3VuYm91bmRfZnVuY3Rpb24oWC5t
ZXRob2QpCi0KLQotLi4gZnVuY3Rpb246OiBnZXRfbWV0aG9kX2Z1bmN0aW9uKG1ldGgpCi0KLSAg
IEdldCB0aGUgZnVuY3Rpb24gb3V0IG9mIG1ldGhvZCBvYmplY3QgKm1ldGgqLgotCi0KLS4uIGZ1
bmN0aW9uOjogZ2V0X21ldGhvZF9zZWxmKG1ldGgpCi0KLSAgIEdldCB0aGUgYGBzZWxmYGAgb2Yg
Ym91bmQgbWV0aG9kICptZXRoKi4KLQotCi0uLiBmdW5jdGlvbjo6IGdldF9mdW5jdGlvbl9jbG9z
dXJlKGZ1bmMpCi0KLSAgIEdldCB0aGUgY2xvc3VyZSAobGlzdCBvZiBjZWxscykgYXNzb2NpYXRl
ZCB3aXRoICpmdW5jKi4gIFRoaXMgaXMgZXF1aXZhbGVudAotICAgdG8gYGBmdW5jLl9fY2xvc3Vy
ZV9fYGAgb24gUHl0aG9uIDIuNisgYW5kIGBgZnVuYy5mdW5jX2Nsb3N1cmVgYCBvbiBQeXRob24K
LSAgIDIuNS4KLQotCi0uLiBmdW5jdGlvbjo6IGdldF9mdW5jdGlvbl9jb2RlKGZ1bmMpCi0KLSAg
IEdldCB0aGUgY29kZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoICpmdW5jKi4gIFRoaXMgaXMgZXF1
aXZhbGVudCB0bwotICAgYGBmdW5jLl9fY29kZV9fYGAgb24gUHl0aG9uIDIuNisgYW5kIGBgZnVu
Yy5mdW5jX2NvZGVgYCBvbiBQeXRob24gMi41LgotCi0KLS4uIGZ1bmN0aW9uOjogZ2V0X2Z1bmN0
aW9uX2RlZmF1bHRzKGZ1bmMpCi0KLSAgIEdldCB0aGUgZGVmYXVsdHMgdHVwbGUgYXNzb2NpYXRl
ZCB3aXRoICpmdW5jKi4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bwotICAgYGBmdW5jLl9fZGVmYXVs
dHNfX2BgIG9uIFB5dGhvbiAyLjYrIGFuZCBgYGZ1bmMuZnVuY19kZWZhdWx0c2BgIG9uIFB5dGhv
bgotICAgMi41LgotCi0KLS4uIGZ1bmN0aW9uOjogZ2V0X2Z1bmN0aW9uX2dsb2JhbHMoZnVuYykK
LQotICAgR2V0IHRoZSBnbG9iYWxzIG9mICpmdW5jKi4gIFRoaXMgaXMgZXF1aXZhbGVudCB0byBg
YGZ1bmMuX19nbG9iYWxzX19gYCBvbgotICAgUHl0aG9uIDIuNisgYW5kIGBgZnVuYy5mdW5jX2ds
b2JhbHNgYCBvbiBQeXRob24gMi41LgotCi0KLS4uIGZ1bmN0aW9uOjogbmV4dChpdCkKLSAgICAg
ICAgICAgICAgYWR2YW5jZV9pdGVyYXRvcihpdCkKLQotICAgR2V0IHRoZSBuZXh0IGl0ZW0gb2Yg
aXRlcmF0b3IgKml0Ki4gIDpleGM6YHB5MzpTdG9wSXRlcmF0aW9uYCBpcyByYWlzZWQgaWYKLSAg
IHRoZSBpdGVyYXRvciBpcyBleGhhdXN0ZWQuICBUaGlzIGlzIGEgcmVwbGFjZW1lbnQgZm9yIGNh
bGxpbmcgYGBpdC5uZXh0KClgYAotICAgaW4gUHl0aG9uIDIgYW5kIGBgbmV4dChpdClgYCBpbiBQ
eXRob24gMy4KLQotCi0uLiBmdW5jdGlvbjo6IGNhbGxhYmxlKG9iaikKLQotICAgQ2hlY2sgaWYg
Km9iaiogY2FuIGJlIGNhbGxlZC4gIE5vdGUgYGBjYWxsYWJsZWBgIGhhcyByZXR1cm5lZCBpbiBQ
eXRob24gMy4yLAotICAgc28gdXNpbmcgc2l4J3MgdmVyc2lvbiBpcyBvbmx5IG5lY2Vzc2FyeSB3
aGVuIHN1cHBvcnRpbmcgUHl0aG9uIDMuMCBvciAzLjEuCi0KLQotLi4gZnVuY3Rpb246OiBpdGVy
a2V5cyhkaWN0aW9uYXJ5LCAqKmt3YXJncykKLQotICAgUmV0dXJucyBhbiBpdGVyYXRvciBvdmVy
ICpkaWN0aW9uYXJ5KlwncyBrZXlzLiBUaGlzIHJlcGxhY2VzCi0gICBgYGRpY3Rpb25hcnkuaXRl
cmtleXMoKWBgIG9uIFB5dGhvbiAyIGFuZCBgYGRpY3Rpb25hcnkua2V5cygpYGAgb24KLSAgIFB5
dGhvbiAzLiAgKmt3YXJncyogYXJlIHBhc3NlZCB0aHJvdWdoIHRvIHRoZSB1bmRlcmx5aW5nIG1l
dGhvZC4KLQotCi0uLiBmdW5jdGlvbjo6IGl0ZXJ2YWx1ZXMoZGljdGlvbmFyeSwgKiprd2FyZ3Mp
Ci0KLSAgIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciAqZGljdGlvbmFyeSpcJ3MgdmFsdWVzLiBU
aGlzIHJlcGxhY2VzCi0gICBgYGRpY3Rpb25hcnkuaXRlcnZhbHVlcygpYGAgb24gUHl0aG9uIDIg
YW5kIGBgZGljdGlvbmFyeS52YWx1ZXMoKWBgIG9uCi0gICBQeXRob24gMy4gICprd2FyZ3MqIGFy
ZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgdW5kZXJseWluZyBtZXRob2QuCi0KLQotLi4gZnVuY3Rp
b246OiBpdGVyaXRlbXMoZGljdGlvbmFyeSwgKiprd2FyZ3MpCi0KLSAgIFJldHVybnMgYW4gaXRl
cmF0b3Igb3ZlciAqZGljdGlvbmFyeSpcJ3MgaXRlbXMuIFRoaXMgcmVwbGFjZXMKLSAgIGBgZGlj
dGlvbmFyeS5pdGVyaXRlbXMoKWBgIG9uIFB5dGhvbiAyIGFuZCBgYGRpY3Rpb25hcnkuaXRlbXMo
KWBgIG9uCi0gICBQeXRob24gMy4gICprd2FyZ3MqIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUg
dW5kZXJseWluZyBtZXRob2QuCi0KLQotLi4gZnVuY3Rpb246OiBpdGVybGlzdHMoZGljdGlvbmFy
eSwgKiprd2FyZ3MpCi0KLSAgIENhbGxzIGBgZGljdGlvbmFyeS5pdGVybGlzdHMoKWBgIG9uIFB5
dGhvbiAyIGFuZCBgYGRpY3Rpb25hcnkubGlzdHMoKWBgIG9uCi0gICBQeXRob24gMy4gIE5vIGJ1
aWx0aW4gUHl0aG9uIG1hcHBpbmcgdHlwZSBoYXMgc3VjaCBhIG1ldGhvZDsgdGhpcyBtZXRob2Qg
aXMKLSAgIGludGVuZGVkIGZvciB1c2Ugd2l0aCBtdWx0aS12YWx1ZWQgZGljdGlvbmFyaWVzIGxp
a2UgYFdlcmt6ZXVnJ3MKLSAgIDxodHRwOi8vd2Vya3pldWcucG9jb28ub3JnL2RvY3MvZGF0YXN0
cnVjdHVyZXMvI3dlcmt6ZXVnLmRhdGFzdHJ1Y3R1cmVzLk11bHRpRGljdD5gXy4KLSAgICprd2Fy
Z3MqIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgdW5kZXJseWluZyBtZXRob2QuCi0KLQotLi4g
ZnVuY3Rpb246OiB2aWV3a2V5cyhkaWN0aW9uYXJ5KQotCi0gICBSZXR1cm4gYSB2aWV3IG92ZXIg
KmRpY3Rpb25hcnkqXCdzIGtleXMuIFRoaXMgcmVwbGFjZXMKLSAgIDptZXRoOmBweTI6ZGljdC52
aWV3a2V5c2Agb24gUHl0aG9uIDIuNyBhbmQgOm1ldGg6YHB5MzpkaWN0LmtleXNgIG9uCi0gICBQ
eXRob24gMy4KLQotCi0uLiBmdW5jdGlvbjo6IHZpZXd2YWx1ZXMoZGljdGlvbmFyeSkKLQotICAg
UmV0dXJuIGEgdmlldyBvdmVyICpkaWN0aW9uYXJ5KlwncyB2YWx1ZXMuIFRoaXMgcmVwbGFjZXMK
LSAgIDptZXRoOmBweTI6ZGljdC52aWV3dmFsdWVzYCBvbiBQeXRob24gMi43IGFuZCA6bWV0aDpg
cHkzOmRpY3QudmFsdWVzYCBvbgotICAgUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246OiB2aWV3
aXRlbXMoZGljdGlvbmFyeSkKLQotICAgUmV0dXJuIGEgdmlldyBvdmVyICpkaWN0aW9uYXJ5Klwn
cyBpdGVtcy4gVGhpcyByZXBsYWNlcwotICAgOm1ldGg6YHB5MjpkaWN0LnZpZXdpdGVtc2Agb24g
UHl0aG9uIDIuNyBhbmQgOm1ldGg6YHB5MzpkaWN0Lml0ZW1zYCBvbgotICAgUHl0aG9uIDMuCi0K
LQotLi4gZnVuY3Rpb246OiBjcmVhdGVfYm91bmRfbWV0aG9kKGZ1bmMsIG9iaikKLQotICAgUmV0
dXJuIGEgbWV0aG9kIG9iamVjdCB3cmFwcGluZyAqZnVuYyogYW5kIGJvdW5kIHRvICpvYmoqLiAg
T24gYm90aCBQeXRob24gMgotICAgYW5kIDMsIHRoaXMgd2lsbCByZXR1cm4gYSA6ZnVuYzpgcHkz
OnR5cGVzLk1ldGhvZFR5cGVgIG9iamVjdC4gIFRoZSByZWFzb24KLSAgIHRoaXMgd3JhcHBlciBl
eGlzdHMgaXMgdGhhdCBvbiBQeXRob24gMiwgdGhlIGBgTWV0aG9kVHlwZWBgIGNvbnN0cnVjdG9y
Ci0gICByZXF1aXJlcyB0aGUgKm9iaioncyBjbGFzcyB0byBiZSBwYXNzZWQuCi0KLQotLi4gY2xh
c3M6OiBJdGVyYXRvcgotCi0gICBBIGNsYXNzIGZvciBtYWtpbmcgcG9ydGFibGUgaXRlcmF0b3Jz
LiBUaGUgaW50ZW50aW9uIGlzIHRoYXQgaXQgYmUgc3ViY2xhc3NlZAotICAgYW5kIHN1YmNsYXNz
ZXMgcHJvdmlkZSBhIGBgX19uZXh0X19gYCBtZXRob2QuIEluIFB5dGhvbiAyLCA6Y2xhc3M6YEl0
ZXJhdG9yYAotICAgaGFzIG9uZSBtZXRob2Q6IGBgbmV4dGBgLiBJdCBzaW1wbHkgZGVsZWdhdGVz
IHRvIGBgX19uZXh0X19gYC4gQW4gYWx0ZXJuYXRlCi0gICB3YXkgdG8gZG8gdGhpcyB3b3VsZCBi
ZSB0byBzaW1wbHkgYWxpYXMgYGBuZXh0YGAgdG8gYGBfX25leHRfX2BgLiBIb3dldmVyLAotICAg
dGhpcyBpbnRlcmFjdHMgYmFkbHkgd2l0aCBzdWJjbGFzc2VzIHRoYXQgb3ZlcnJpZGUKLSAgIGBg
X19uZXh0X19gYC4gOmNsYXNzOmBJdGVyYXRvcmAgaXMgZW1wdHkgb24gUHl0aG9uIDMuIChJbiBm
YWN0LCBpdCBpcyBqdXN0Ci0gICBhbGlhc2VkIHRvIDpjbGFzczpgcHkzOm9iamVjdGAuKQotCi0K
LS4uIGZ1bmN0aW9uOjogd3JhcHMod3JhcHBlZCwgYXNzaWduZWQ9ZnVuY3Rvb2xzLldSQVBQRVJf
QVNTSUdOTUVOVFMsIHVwZGF0ZWQ9ZnVuY3Rvb2xzLldSQVBQRVJfVVBEQVRFUykKLQotICAgVGhp
cyBpcyBleGFjdGx5IHRoZSA6ZnVuYzpgcHkzOmZ1bmN0b29scy53cmFwc2AgZGVjb3JhdG9yLCBi
dXQgaXQgc2V0cyB0aGUKLSAgIGBgX193cmFwcGVkX19gYCBhdHRyaWJ1dGUgb24gd2hhdCBpdCBk
ZWNvcmF0ZXMgYXMgOmZ1bmM6YHB5MzpmdW5jdG9vbHMud3JhcHNgCi0gICBkb2VzIG9uIFB5dGhv
biB2ZXJzaW9ucyBhZnRlciAzLjIuCi0KLQotU3ludGF4IGNvbXBhdGliaWxpdHkKLT4+Pj4+Pj4+
Pj4+Pj4+Pj4+Pj4+Ci0KLVRoZXNlIGZ1bmN0aW9ucyBzbW9vdGggb3ZlciBvcGVyYXRpb25zIHdo
aWNoIGhhdmUgZGlmZmVyZW50IHN5bnRheGVzIGJldHdlZW4KLVB5dGhvbiAyIGFuZCAzLgotCi0K
LS4uIGZ1bmN0aW9uOjogZXhlY18oY29kZSwgZ2xvYmFscz1Ob25lLCBsb2NhbHM9Tm9uZSkKLQot
ICAgRXhlY3V0ZSAqY29kZSogaW4gdGhlIHNjb3BlIG9mICpnbG9iYWxzKiBhbmQgKmxvY2Fscyou
ICAqY29kZSogY2FuIGJlIGEKLSAgIHN0cmluZyBvciBhIGNvZGUgb2JqZWN0LiAgSWYgKmdsb2Jh
bHMqIG9yICpsb2NhbHMqIGFyZSBub3QgZ2l2ZW4sIHRoZXkgd2lsbAotICAgZGVmYXVsdCB0byB0
aGUgc2NvcGUgb2YgdGhlIGNhbGxlci4gIElmIGp1c3QgKmdsb2JhbHMqIGlzIGdpdmVuLCBpdCB3
aWxsIGFsc28KLSAgIGJlIHVzZWQgYXMgKmxvY2FscyouCi0KLSAgIC4uIG5vdGU6OgotCi0gICAg
ICBQeXRob24gMydzIDpmdW5jOmBweTM6ZXhlY2AgZG9lc24ndCB0YWtlIGtleXdvcmQgYXJndW1l
bnRzLCBzbyBjYWxsaW5nCi0gICAgICA6ZnVuYzpgZXhlY2Agd2l0aCB0aGVtIHNob3VsZCBiZSBh
dm9pZGVkLgotCi0KLS4uIGZ1bmN0aW9uOjogcHJpbnRfKCphcmdzLCAqLCBmaWxlPXN5cy5zdGRv
dXQsIGVuZD0iXFxuIiwgc2VwPSIgIikKLQotICAgUHJpbnQgKmFyZ3MqIGludG8gKmZpbGUqLiAg
RWFjaCBhcmd1bWVudCB3aWxsIGJlIHNlcGFyYXRlZCB3aXRoICpzZXAqIGFuZAotICAgKmVuZCog
d2lsbCBiZSB3cml0dGVuIHRvIHRoZSBmaWxlIGFmdGVyIHRoZSBsYXN0IGFyZ3VtZW50IGlzIHBy
aW50ZWQuCi0KLSAgIC4uIG5vdGU6OgotCi0gICAgICBJbiBQeXRob24gMiwgdGhpcyBmdW5jdGlv
biBpbWl0YXRlcyBQeXRob24gMydzIDpmdW5jOmBweTM6cHJpbnRgIGJ5IG5vdAotICAgICAgaGF2
aW5nIHNvZnRzcGFjZSBzdXBwb3J0LiAgSWYgeW91IGRvbid0IGtub3cgd2hhdCB0aGF0IGlzLCB5
b3UncmUgcHJvYmFibHkKLSAgICAgIG9rLiA6KQotCi0KLS4uIGZ1bmN0aW9uOjogcmFpc2VfZnJv
bShleGNfdmFsdWUsIGV4Y192YWx1ZV9mcm9tKQotCi0gICBSYWlzZSBhbiBleGNlcHRpb24gZnJv
bSBhIGNvbnRleHQuICBPbiBQeXRob24gMywgdGhpcyBpcyBlcXVpdmFsZW50IHRvCi0gICBgYHJh
aXNlIGV4Y192YWx1ZSBmcm9tIGV4Y192YWx1ZV9mcm9tYGAuICBPbiBQeXRob24gMiwgd2hpY2gg
ZG9lcyBub3Qgc3VwcG9ydAotICAgZXhjZXB0aW9uIGNoYWluaW5nLCBpdCBpcyBlcXVpdmFsZW50
IHRvIGBgcmFpc2UgZXhjX3ZhbHVlYGAuCi0KLQotLi4gZnVuY3Rpb246OiByZXJhaXNlKGV4Y190
eXBlLCBleGNfdmFsdWUsIGV4Y190cmFjZWJhY2s9Tm9uZSkKLQotICAgUmVyYWlzZSBhbiBleGNl
cHRpb24sIHBvc3NpYmx5IHdpdGggYSBkaWZmZXJlbnQgdHJhY2ViYWNrLiAgSW4gdGhlIHNpbXBs
ZQotICAgY2FzZSwgYGByZXJhaXNlKCpzeXMuZXhjX2luZm8oKSlgYCB3aXRoIGFuIGFjdGl2ZSBl
eGNlcHRpb24gKGluIGFuIGV4Y2VwdAotICAgYmxvY2spIHJlcmFpc2VzIHRoZSBjdXJyZW50IGV4
Y2VwdGlvbiB3aXRoIHRoZSBsYXN0IHRyYWNlYmFjay4gIEEgZGlmZmVyZW50Ci0gICB0cmFjZWJh
Y2sgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHRoZSAqZXhjX3RyYWNlYmFjayogcGFyYW1ldGVyLiAg
Tm90ZSB0aGF0Ci0gICBzaW5jZSB0aGUgZXhjZXB0aW9uIHJlcmFpc2luZyBpcyBkb25lIHdpdGhp
biB0aGUgOmZ1bmM6YHJlcmFpc2VgIGZ1bmN0aW9uLAotICAgUHl0aG9uIHdpbGwgYXR0YWNoIHRo
ZSBjYWxsIGZyYW1lIG9mIDpmdW5jOmByZXJhaXNlYCB0byB3aGF0ZXZlciB0cmFjZWJhY2sgaXMK
LSAgIHJhaXNlZC4KLQotCi0uLiBmdW5jdGlvbjo6IHdpdGhfbWV0YWNsYXNzKG1ldGFjbGFzcywg
KmJhc2VzKQotCi0gICBDcmVhdGUgYSBuZXcgY2xhc3Mgd2l0aCBiYXNlIGNsYXNzZXMgKmJhc2Vz
KiBhbmQgbWV0YWNsYXNzICptZXRhY2xhc3MqLiAgVGhpcwotICAgaXMgZGVzaWduZWQgdG8gYmUg
dXNlZCBpbiBjbGFzcyBkZWNsYXJhdGlvbnMgbGlrZSB0aGlzOiA6OgotCi0gICAgICBmcm9tIHNp
eCBpbXBvcnQgd2l0aF9tZXRhY2xhc3MKLQotICAgICAgY2xhc3MgTWV0YSh0eXBlKToKLSAgICAg
ICAgICBwYXNzCi0KLSAgICAgIGNsYXNzIEJhc2Uob2JqZWN0KToKLSAgICAgICAgICBwYXNzCi0K
LSAgICAgIGNsYXNzIE15Q2xhc3Mod2l0aF9tZXRhY2xhc3MoTWV0YSwgQmFzZSkpOgotICAgICAg
ICAgIHBhc3MKLQotICAgQW5vdGhlciB3YXkgdG8gc2V0IGEgbWV0YWNsYXNzIG9uIGEgY2xhc3Mg
aXMgd2l0aCB0aGUgOmZ1bmM6YGFkZF9tZXRhY2xhc3NgCi0gICBkZWNvcmF0b3IuCi0KLQotLi4g
ZnVuY3Rpb246OiBhZGRfbWV0YWNsYXNzKG1ldGFjbGFzcykKLQotICAgQ2xhc3MgZGVjb3JhdG9y
IHRoYXQgcmVwbGFjZXMgYSBub3JtYWxseS1jb25zdHJ1Y3RlZCBjbGFzcyB3aXRoIGEKLSAgIG1l
dGFjbGFzcy1jb25zdHJ1Y3RlZCBvbmUuICBFeGFtcGxlIHVzYWdlOiA6OgotCi0gICAgICAgQGFk
ZF9tZXRhY2xhc3MoTWV0YSkKLSAgICAgICBjbGFzcyBNeUNsYXNzKG9iamVjdCk6Ci0gICAgICAg
ICAgIHBhc3MKLQotICAgVGhhdCBjb2RlIHByb2R1Y2VzIGEgY2xhc3MgZXF1aXZhbGVudCB0byA6
OgotCi0gICAgICAgY2xhc3MgTXlDbGFzcyhvYmplY3QsIG1ldGFjbGFzcz1NZXRhKToKLSAgICAg
ICAgICAgcGFzcwotCi0gICBvbiBQeXRob24gMyBvciA6OgotCi0gICAgICAgY2xhc3MgTXlDbGFz
cyhvYmplY3QpOgotICAgICAgICAgICBfX21ldGFjbGFzc19fID0gTXlNZXRhCi0KLSAgIG9uIFB5
dGhvbiAyLgotCi0gICBOb3RlIHRoYXQgY2xhc3MgZGVjb3JhdG9ycyByZXF1aXJlIFB5dGhvbiAy
LjYuIEhvd2V2ZXIsIHRoZSBlZmZlY3Qgb2YgdGhlCi0gICBkZWNvcmF0b3IgY2FuIGJlIGVtdWxh
dGVkIG9uIFB5dGhvbiAyLjUgbGlrZSBzbzo6Ci0KLSAgICAgICBjbGFzcyBNeUNsYXNzKG9iamVj
dCk6Ci0gICAgICAgICAgIHBhc3MKLSAgICAgICBNeUNsYXNzID0gYWRkX21ldGFjbGFzcyhNZXRh
KShNeUNsYXNzKQotCi0KLUJpbmFyeSBhbmQgdGV4dCBkYXRhCi0+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+
PgotCi1QeXRob24gMyBlbmZvcmNlcyB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBieXRlIHN0cmlu
Z3MgYW5kIHRleHQgc3RyaW5ncyBmYXIgbW9yZQotcmlnb3Jpb3VzbHkgdGhhbiBQeXRob24gMiBk
b2VzOyBiaW5hcnkgZGF0YSBjYW5ub3QgYmUgYXV0b21hdGljYWxseSBjb2VyY2VkIHRvCi1vciBm
cm9tIHRleHQgZGF0YS4gIHNpeCBwcm92aWRlcyBzZXZlcmFsIGZ1bmN0aW9ucyB0byBhc3Npc3Qg
aW4gY2xhc3NpZnlpbmcKLXN0cmluZyBkYXRhIGluIGFsbCBQeXRob24gdmVyc2lvbnMuCi0KLQot
Li4gZnVuY3Rpb246OiBiKGRhdGEpCi0KLSAgIEEgImZha2UiIGJ5dGVzIGxpdGVyYWwuICAqZGF0
YSogc2hvdWxkIGFsd2F5cyBiZSBhIG5vcm1hbCBzdHJpbmcgbGl0ZXJhbC4gIEluCi0gICBQeXRo
b24gMiwgOmZ1bmM6YGJgIHJldHVybnMgYSA4LWJpdCBzdHJpbmcuICBJbiBQeXRob24gMywgKmRh
dGEqIGlzIGVuY29kZWQKLSAgIHdpdGggdGhlIGxhdGluLTEgZW5jb2RpbmcgdG8gYnl0ZXMuCi0K
LQotICAgLi4gbm90ZTo6Ci0KLSAgICAgIFNpbmNlIGFsbCBQeXRob24gdmVyc2lvbnMgMi42IGFu
ZCBhZnRlciBzdXBwb3J0IHRoZSBgYGJgYCBwcmVmaXgsCi0gICAgICA6ZnVuYzpgYmAsIGNvZGUg
d2l0aG91dCAyLjUgc3VwcG9ydCBkb2Vzbid0IG5lZWQgOmZ1bmM6YGJgLgotCi0KLS4uIGZ1bmN0
aW9uOjogdSh0ZXh0KQotCi0gICBBICJmYWtlIiB1bmljb2RlIGxpdGVyYWwuICAqdGV4dCogc2hv
dWxkIGFsd2F5cyBiZSBhIG5vcm1hbCBzdHJpbmcgbGl0ZXJhbC4KLSAgIEluIFB5dGhvbiAyLCA6
ZnVuYzpgdWAgcmV0dXJucyB1bmljb2RlLCBhbmQgaW4gUHl0aG9uIDMsIGEgc3RyaW5nLiAgQWxz
bywgaW4KLSAgIFB5dGhvbiAyLCB0aGUgc3RyaW5nIGlzIGRlY29kZWQgd2l0aCB0aGUgYGB1bmlj
b2RlLWVzY2FwZWBgIGNvZGVjLCB3aGljaAotICAgYWxsb3dzIHVuaWNvZGUgZXNjYXBlcyB0byBi
ZSB1c2VkIGluIGl0LgotCi0KLSAgIC4uIG5vdGU6OgotCi0gICAgICBJbiBQeXRob24gMy4zLCB0
aGUgYGB1YGAgcHJlZml4IGhhcyBiZWVuIHJlaW50cm9kdWNlZC4gQ29kZSB0aGF0IG9ubHkKLSAg
ICAgIHN1cHBvcnRzIFB5dGhvbiAzIHZlcnNpb25zIGdyZWF0ZXIgdGhhbiAzLjMgdGh1cyBkb2Vz
IG5vdCBuZWVkCi0gICAgICA6ZnVuYzpgdWAuCi0KLSAgIC4uIG5vdGU6OgotCi0gICAgICBPbiBQ
eXRob24gMiwgOmZ1bmM6YHVgIGRvZXNuJ3Qga25vdyB3aGF0IHRoZSBlbmNvZGluZyBvZiB0aGUg
bGl0ZXJhbAotICAgICAgaXMuIEVhY2ggYnl0ZSBpcyBjb252ZXJ0ZWQgZGlyZWN0bHkgdG8gdGhl
IHVuaWNvZGUgY29kZXBvaW50IG9mIHRoZSBzYW1lCi0gICAgICB2YWx1ZS4gQmVjYXVzZSBvZiB0
aGlzLCBpdCdzIG9ubHkgc2FmZSB0byB1c2UgOmZ1bmM6YHVgIHdpdGggc3RyaW5ncyBvZgotICAg
ICAgQVNDSUkgZGF0YS4KLQotCi0uLiBmdW5jdGlvbjo6IHVuaWNocihjKQotCi0gICBSZXR1cm4g
dGhlIChVbmljb2RlKSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjb2RlcG9pbnQgKmMqLiAgVGhp
cyBpcwotICAgZXF1aXZhbGVudCB0byA6ZnVuYzpgcHkyOnVuaWNocmAgb24gUHl0aG9uIDIgYW5k
IDpmdW5jOmBweTM6Y2hyYCBvbiBQeXRob24gMy4KLQotCi0uLiBmdW5jdGlvbjo6IGludDJieXRl
KGkpCi0KLSAgIENvbnZlcnRzICppKiB0byBhIGJ5dGUuICAqaSogbXVzdCBiZSBpbiBgYHJhbmdl
KDAsIDI1NilgYC4gIFRoaXMgaXMKLSAgIGVxdWl2YWxlbnQgdG8gOmZ1bmM6YHB5MjpjaHJgIGlu
IFB5dGhvbiAyIGFuZCBgYGJ5dGVzKChpLCkpYGAgaW4gUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rp
b246OiBieXRlMmludChicykKLQotICAgQ29udmVydHMgdGhlIGZpcnN0IGJ5dGUgb2YgKmJzKiB0
byBhbiBpbnRlZ2VyLiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvCi0gICBgYG9yZChic1swXSlgYCBv
biBQeXRob24gMiBhbmQgYGBic1swXWBgIG9uIFB5dGhvbiAzLgotCi0KLS4uIGZ1bmN0aW9uOjog
aW5kZXhieXRlcyhidWYsIGkpCi0KLSAgIFJldHVybiB0aGUgYnl0ZSBhdCBpbmRleCAqaSogb2Yg
KmJ1ZiogYXMgYW4gaW50ZWdlci4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bwotICAgaW5kZXhpbmcg
YSBieXRlcyBvYmplY3QgaW4gUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246OiBpdGVyYnl0ZXMo
YnVmKQotCi0gICBSZXR1cm4gYW4gaXRlcmF0b3Igb3ZlciBieXRlcyBpbiAqYnVmKiBhcyBpbnRl
Z2Vycy4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bwotICAgYSBieXRlcyBvYmplY3QgaXRlcmF0b3Ig
aW4gUHl0aG9uIDMuCi0KLQotLi4gZGF0YTo6IFN0cmluZ0lPCi0KLSAgIFRoaXMgaXMgYW4gZmFr
ZSBmaWxlIG9iamVjdCBmb3IgdGV4dHVhbCBkYXRhLiAgSXQncyBhbiBhbGlhcyBmb3IKLSAgIDpj
bGFzczpgcHkyOlN0cmluZ0lPLlN0cmluZ0lPYCBpbiBQeXRob24gMiBhbmQgOmNsYXNzOmBweTM6
aW8uU3RyaW5nSU9gIGluCi0gICBQeXRob24gMy4KLQotCi0uLiBkYXRhOjogQnl0ZXNJTwotCi0g
ICBUaGlzIGlzIGEgZmFrZSBmaWxlIG9iamVjdCBmb3IgYmluYXJ5IGRhdGEuICBJbiBQeXRob24g
MiwgaXQncyBhbiBhbGlhcyBmb3IKLSAgIDpjbGFzczpgcHkyOlN0cmluZ0lPLlN0cmluZ0lPYCwg
YnV0IGluIFB5dGhvbiAzLCBpdCdzIGFuIGFsaWFzIGZvcgotICAgOmNsYXNzOmBweTM6aW8uQnl0
ZXNJT2AuCi0KLQotUmVuYW1lZCBtb2R1bGVzIGFuZCBhdHRyaWJ1dGVzIGNvbXBhdGliaWxpdHkK
LT4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ci0KLS4uIG1vZHVs
ZTo6IHNpeC5tb3ZlcwotICAgOnN5bm9wc2lzOiBSZW5hbWVkIG1vZHVsZXMgYW5kIGF0dHJpYnV0
ZXMgY29tcGF0aWJpbGl0eQotCi1QeXRob24gMyByZW9yZ2FuaXplZCB0aGUgc3RhbmRhcmQgbGli
cmFyeSBhbmQgbW92ZWQgc2V2ZXJhbCBmdW5jdGlvbnMgdG8KLWRpZmZlcmVudCBtb2R1bGVzLiAg
U2l4IHByb3ZpZGVzIGEgY29uc2lzdGVudCBpbnRlcmZhY2UgdG8gdGhlbSB0aHJvdWdoIHRoZSBm
YWtlCi06bW9kOmBzaXgubW92ZXNgIG1vZHVsZS4gIEZvciBleGFtcGxlLCB0byBsb2FkIHRoZSBt
b2R1bGUgZm9yIHBhcnNpbmcgSFRNTCBvbgotUHl0aG9uIDIgb3IgMywgd3JpdGU6OgotCi0gICBm
cm9tIHNpeC5tb3ZlcyBpbXBvcnQgaHRtbF9wYXJzZXIKLQotU2ltaWxhcmx5LCB0byBnZXQgdGhl
IGZ1bmN0aW9uIHRvIHJlbG9hZCBtb2R1bGVzLCB3aGljaCB3YXMgbW92ZWQgZnJvbSB0aGUKLWJ1
aWx0aW4gbW9kdWxlIHRvIHRoZSBgYGltcGBgIG1vZHVsZSwgdXNlOjoKLQotICAgZnJvbSBzaXgu
bW92ZXMgaW1wb3J0IHJlbG9hZF9tb2R1bGUKLQotRm9yIHRoZSBtb3N0IHBhcnQsIDptb2Q6YHNp
eC5tb3Zlc2AgYWxpYXNlcyBhcmUgdGhlIG5hbWVzIG9mIHRoZSBtb2R1bGVzIGluCi1QeXRob24g
My4gIFdoZW4gdGhlIG5ldyBQeXRob24gMyBuYW1lIGlzIGEgcGFja2FnZSwgdGhlIGNvbXBvbmVu
dHMgb2YgdGhlIG5hbWUKLWFyZSBzZXBhcmF0ZWQgYnkgdW5kZXJzY29yZXMuICBGb3IgZXhhbXBs
ZSwgYGBodG1sLnBhcnNlcmBgIGJlY29tZXMKLWBgaHRtbF9wYXJzZXJgYC4gIEluIHNvbWUgY2Fz
ZXMgd2hlcmUgc2V2ZXJhbCBtb2R1bGVzIGhhdmUgYmVlbiBjb21iaW5lZCwgdGhlCi1QeXRob24g
MiBuYW1lIGlzIHJldGFpbmVkLiAgVGhpcyBpcyBzbyB0aGUgYXBwcm9wcmlhdGUgbW9kdWxlcyBj
YW4gYmUgZm91bmQgd2hlbgotcnVubmluZyBvbiBQeXRob24gMi4gIEZvciBleGFtcGxlLCBgYEJh
c2VIVFRQU2VydmVyYGAgd2hpY2ggaXMgaW4KLWBgaHR0cC5zZXJ2ZXJgYCBpbiBQeXRob24gMyBp
cyBhbGlhc2VkIGFzIGBgQmFzZUhUVFBTZXJ2ZXJgYC4KLQotU29tZSBtb2R1bGVzIHdoaWNoIGhh
ZCB0d28gaW1wbGVtZW50YXRpb25zIGhhdmUgYmVlbiBtZXJnZWQgaW4gUHl0aG9uIDMuICBGb3IK
LWV4YW1wbGUsIGBgY1BpY2tsZWBgIG5vIGxvbmdlciBleGlzdHMgaW4gUHl0aG9uIDM7IGl0IHdh
cyBtZXJnZWQgd2l0aAotYGBwaWNrbGVgYC4gIEluIHRoZXNlIGNhc2VzLCBmZXRjaGluZyB0aGUg
ZmFzdCB2ZXJzaW9uIHdpbGwgbG9hZCB0aGUgZmFzdCBvbmUgb24KLVB5dGhvbiAyIGFuZCB0aGUg
bWVyZ2VkIG1vZHVsZSBpbiBQeXRob24gMy4KLQotVGhlIDptb2Q6YHB5Mjp1cmxsaWJgLCA6bW9k
OmBweTI6dXJsbGliMmAsIGFuZCA6bW9kOmBweTI6dXJscGFyc2VgIG1vZHVsZXMgaGF2ZQotYmVl
biBjb21iaW5lZCBpbiB0aGUgOm1vZDpgcHkzOnVybGxpYmAgcGFja2FnZSBpbiBQeXRob24gMy4g
IFRoZQotOm1vZDpgc2l4Lm1vdmVzLnVybGxpYmAgcGFja2FnZSBpcyBhIHZlcnNpb24taW5kZXBl
bmRlbnQgbG9jYXRpb24gZm9yIHRoaXMKLWZ1bmN0aW9uYWxpdHk7IGl0cyBzdHJ1Y3R1cmUgbWlt
aWNzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIFB5dGhvbiAzCi06bW9kOmBweTM6dXJsbGliYCBwYWNr
YWdlLgotCi0uLiBub3RlOjoKLQotICAgSW4gb3JkZXIgdG8gbWFrZSBpbXBvcnRzIG9mIHRoZSBm
b3JtOjoKLQotICAgICBmcm9tIHNpeC5tb3Zlcy5jUGlja2xlIGltcG9ydCBsb2FkcwotCi0gICB3
b3JrLCBzaXggcGxhY2VzIHNwZWNpYWwgcHJveHkgb2JqZWN0cyBpbiBpbiA6ZGF0YTpgcHkzOnN5
cy5tb2R1bGVzYC4gVGhlc2UKLSAgIHByb3hpZXMgbGF6aWx5IGxvYWQgdGhlIHVuZGVybHlpbmcg
bW9kdWxlIHdoZW4gYW4gYXR0cmlidXRlIGlzIGZldGNoZWQuIFRoaXMKLSAgIHdpbGwgZmFpbCBp
ZiB0aGUgdW5kZXJseWluZyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgUHl0aG9uCi0g
ICBpbnRlcnByZXRlci4gRm9yIGV4YW1wbGUsIGBgc3lzLm1vZHVsZXNbInNpeC5tb3Zlcy53aW5y
ZWciXS5Mb2FkS2V5YGAgd291bGQKLSAgIGZhaWwgb24gYW55IG5vbi1XaW5kb3dzIHBsYXRmb3Jt
LiBVbmZvcnR1bmF0ZWx5LCBzb21lIGFwcGxpY2F0aW9ucyB0cnkgdG8KLSAgIGxvYWQgYXR0cmli
dXRlcyBvbiBldmVyeSBtb2R1bGUgaW4gOmRhdGE6YHB5MzpzeXMubW9kdWxlc2AuIHNpeCBtaXRp
Z2F0ZXMKLSAgIHRoaXMgcHJvYmxlbSBmb3Igc29tZSBhcHBsaWNhdGlvbnMgYnkgcHJldGVuZGlu
ZyBhdHRyaWJ1dGVzIG9uIHVuaW1wb3J0YWJsZQotICAgbW9kdWxlcyBkb24ndCBleGlzdC4gVGhp
cyBoYWNrIGRvZXNuJ3Qgd29yayBpbiBldmVyeSBjYXNlLCB0aG91Z2guIElmIHlvdSBhcmUKLSAg
IGVuY291bnRlcmluZyBwcm9ibGVtcyB3aXRoIHRoZSBsYXp5IG1vZHVsZXMgYW5kIGRvbid0IHVz
ZSBhbnkgZnJvbSBpbXBvcnRzCi0gICBkaXJlY3RseSBmcm9tIGBgc2l4Lm1vdmVzYGAgbW9kdWxl
cywgeW91IGNhbiB3b3JrYXJvdW5kIHRoZSBpc3N1ZSBieSByZW1vdmluZwotICAgdGhlIHNpeCBw
cm94eSBtb2R1bGVzOjoKLQotICAgICBkID0gW25hbWUgZm9yIG5hbWUgaW4gc3lzLm1vZHVsZXMg
aWYgbmFtZS5zdGFydHN3aXRoKCJzaXgubW92ZXMuIildCi0gICAgIGZvciBuYW1lIGluIGQ6Ci0g
ICAgICAgICBkZWwgc3lzLm1vZHVsZXNbbmFtZV0KLQotU3VwcG9ydGVkIHJlbmFtZXM6Ci0KLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBOYW1l
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHl0aG9uIDIgbmFtZSAgICAgICAgICAgICAgICAg
ICAgICAgfCBQeXRob24gMyBuYW1lICAgICAgICAgICAgICAgICAgICAgICB8Ci0rPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKLXwgYGBidWlsdGluc2Bg
ICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpfX2J1aWx0aW5fX2AgICAgICAgICAgICAgIHwg
Om1vZDpgcHkzOmJ1aWx0aW5zYCAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgY29uZmlncGFyc2VyYGAgICAg
ICAgICAgICAgfCA6bW9kOmBweTI6Q29uZmlnUGFyc2VyYCAgICAgICAgICAgICB8IDptb2Q6YHB5
Mzpjb25maWdwYXJzZXJgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGNvcHlyZWdgYCAgICAgICAgICAgICAgICAg
IHwgOm1vZDpgcHkyOmNvcHlfcmVnYCAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6Y29weXJl
Z2AgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBjUGlja2xlYGAgICAgICAgICAgICAgICAgICB8IDptb2Q6
YHB5MjpjUGlja2xlYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnBpY2tsZWAgICAgICAg
ICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rCi18IGBgY1N0cmluZ0lPYGAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOmNT
dHJpbmdJTy5TdHJpbmdJT2AgICAgICB8IDpjbGFzczpgcHkzOmlvLlN0cmluZ0lPYCAgICAgICAg
ICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KwotfCBgYGRibV9nbnVgYCAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjpnZGJtYCAgICAg
ICAgICAgICAgICAgICAgfCA6Y2xhc3M6YHB5MzpkYm0uZ251YCAgICAgICAgICAgICAgICB8Ci0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBf
ZHVtbXlfdGhyZWFkYGAgICAgICAgICAgICB8IDptb2Q6YHB5MjpkdW1teV90aHJlYWRgICAgICAg
ICAgICAgIHwgOm1vZDpgcHkzOl9kdW1teV90aHJlYWRgICAgICAgICAgICAgfAotKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgZW1haWxfbWlt
ZV9tdWx0aXBhcnRgYCAgICAgfCA6bW9kOmBweTI6ZW1haWwuTUlNRU11bHRpcGFydGAgICAgICB8
IDptb2Q6YHB5MzplbWFpbC5taW1lLm11bHRpcGFydGAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGVtYWlsX21pbWVfbm9ubXVs
dGlwYXJ0YGAgIHwgOm1vZDpgcHkyOmVtYWlsLk1JTUVOb25NdWx0aXBhcnRgICAgfCA6bW9kOmBw
eTM6ZW1haWwubWltZS5ub25tdWx0aXBhcnRgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBlbWFpbF9taW1lX3RleHRgYCAgICAgICAg
ICB8IDptb2Q6YHB5MjplbWFpbC5NSU1FVGV4dGAgICAgICAgICAgIHwgOm1vZDpgcHkzOmVtYWls
Lm1pbWUudGV4dGAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgZW1haWxfbWltZV9iYXNlYGAgICAgICAgICAgfCA6bW9k
OmBweTI6ZW1haWwuTUlNRUJhc2VgICAgICAgICAgICB8IDptb2Q6YHB5MzplbWFpbC5taW1lLmJh
c2VgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKwotfCBgYGZpbHRlcmBgICAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5Mjpp
dGVydG9vbHMuaWZpbHRlcmAgICAgICAgfCA6ZnVuYzpgcHkzOmZpbHRlcmAgICAgICAgICAgICAg
ICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSsKLXwgYGBmaWx0ZXJmYWxzZWBgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6aXRlcnRvb2xz
LmlmaWx0ZXJmYWxzZWAgIHwgOmZ1bmM6YHB5MzppdGVydG9vbHMuZmlsdGVyZmFsc2VgICAgfAot
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBg
aHR0cF9jb29raWVqYXJgYCAgICAgICAgICAgfCA6bW9kOmBweTI6Y29va2llbGliYCAgICAgICAg
ICAgICAgICB8IDptb2Q6YHB5MzpodHRwLmNvb2tpZWphcmAgICAgICAgICAgIHwKLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGh0dHBfY29v
a2llc2BgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOkNvb2tpZWAgICAgICAgICAgICAgICAgICAg
fCA6bW9kOmBweTM6aHR0cC5jb29raWVzYCAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBodG1sX2VudGl0aWVzYGAg
ICAgICAgICAgICB8IDptb2Q6YHB5MjpodG1sZW50aXR5ZGVmc2AgICAgICAgICAgIHwgOm1vZDpg
cHkzOmh0bWwuZW50aXRpZXNgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgaHRtbF9wYXJzZXJgYCAgICAgICAgICAg
ICAgfCA6bW9kOmBweTI6SFRNTFBhcnNlcmAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpodG1s
LnBhcnNlcmAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGh0dHBfY2xpZW50YGAgICAgICAgICAgICAgIHwgOm1v
ZDpgcHkyOmh0dHBsaWJgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6aHR0cC5jbGllbnRg
ICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSsKLXwgYGBCYXNlSFRUUFNlcnZlcmBgICAgICAgICAgICB8IDptb2Q6YHB5MjpC
YXNlSFRUUFNlcnZlcmAgICAgICAgICAgIHwgOm1vZDpgcHkzOmh0dHAuc2VydmVyYCAgICAgICAg
ICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rCi18IGBgQ0dJSFRUUFNlcnZlcmBgICAgICAgICAgICAgfCA6bW9kOmBweTI6Q0dJSFRUUFNl
cnZlcmAgICAgICAgICAgICB8IDptb2Q6YHB5MzpodHRwLnNlcnZlcmAgICAgICAgICAgICAgIHwK
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBg
YFNpbXBsZUhUVFBTZXJ2ZXJgYCAgICAgICAgIHwgOm1vZDpgcHkyOlNpbXBsZUhUVFBTZXJ2ZXJg
ICAgICAgICAgfCA6bW9kOmBweTM6aHR0cC5zZXJ2ZXJgICAgICAgICAgICAgICB8Ci0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBpbnB1dGBg
ICAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6cmF3X2lucHV0YCAgICAgICAgICAgICAg
IHwgOmZ1bmM6YHB5MzppbnB1dGAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgaW50ZXJuYGAgICAgICAg
ICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOmludGVybmAgICAgICAgICAgICAgICAgICB8IDpmdW5j
OmBweTM6c3lzLmludGVybmAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYG1hcGBgICAgICAgICAgICAgICAgICAg
ICAgIHwgOmZ1bmM6YHB5MjppdGVydG9vbHMuaW1hcGAgICAgICAgICAgfCA6ZnVuYzpgcHkzOm1h
cGAgICAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBxdWV1ZWBgICAgICAgICAgICAgICAgICAgICB8IDpt
b2Q6YHB5MjpRdWV1ZWAgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnF1ZXVlYCAgICAg
ICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rCi18IGBgcmFuZ2VgYCAgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHky
OnhyYW5nZWAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTM6cmFuZ2VgICAgICAgICAgICAg
ICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKwotfCBgYHJlZHVjZWBgICAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjpyZWR1Y2Vg
ICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkzOmZ1bmN0b29scy5yZWR1Y2VgICAgICAgICB8
Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwg
YGByZWxvYWRfbW9kdWxlYGAgICAgICAgICAgICB8IDpmdW5jOmBweTI6cmVsb2FkYCAgICAgICAg
ICAgICAgICAgIHwgOmZ1bmM6YHB5MzppbXAucmVsb2FkYCAgICAgICAgICAgICAgfAotKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgcmVwcmxp
YmBgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6cmVwcmAgICAgICAgICAgICAgICAgICAg
ICB8IDptb2Q6YHB5MzpyZXBybGliYCAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHNobGV4X3F1b3RlYGAg
ICAgICAgICAgICAgIHwgOm1vZDpgcHkyOnBpcGVzLnF1b3RlYCAgICAgICAgICAgICAgfCA6bW9k
OmBweTM6c2hsZXgucXVvdGVgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBzb2NrZXRzZXJ2ZXJgYCAgICAgICAg
ICAgICB8IDptb2Q6YHB5MjpTb2NrZXRTZXJ2ZXJgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnNv
Y2tldHNlcnZlcmAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgX3RocmVhZGBgICAgICAgICAgICAgICAgICAgfCA6
bW9kOmBweTI6dGhyZWFkYCAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpfdGhyZWFkYCAg
ICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJgYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHky
OlRraW50ZXJgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlcmAgICAgICAgICAg
ICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSsKLXwgYGB0a2ludGVyX2RpYWxvZ2BgICAgICAgICAgICB8IDptb2Q6YHB5MjpEaWFsb2dg
ICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuZGlhbG9nYCAgICAgICAgICAg
fAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18
IGBgdGtpbnRlcl9maWxlZGlhbG9nYGAgICAgICAgfCA6bW9kOmBweTI6RmlsZURpYWxvZ2AgICAg
ICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLkZpbGVEaWFsb2dgICAgICAgIHwKLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50
ZXJfc2Nyb2xsZWR0ZXh0YGAgICAgIHwgOm1vZDpgcHkyOlNjcm9sbGVkVGV4dGAgICAgICAgICAg
ICAgfCA6bW9kOmBweTM6dGtpbnRlci5zY3JvbGxlZHRleHRgICAgICB8Ci0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX3NpbXBs
ZWRpYWxvZ2BgICAgICB8IDptb2Q6YHB5MjpTaW1wbGVEaWFsb2dgICAgICAgICAgICAgIHwgOm1v
ZDpgcHkzOnRraW50ZXIuc2ltcGxlZGlhbG9nYCAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl90dGtgYCAgICAgICAg
ICAgICAgfCA6bW9kOmBweTI6dHRrYCAgICAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0
a2ludGVyLnR0a2AgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfdGl4YGAgICAgICAgICAgICAgIHwg
Om1vZDpgcHkyOlRpeGAgICAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci50
aXhgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX2NvbnN0YW50c2BgICAgICAgICB8IDptb2Q6YHB5
MjpUa2NvbnN0YW50c2AgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuY29uc3RhbnRz
YCAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rCi18IGBgdGtpbnRlcl9kbmRgYCAgICAgICAgICAgICAgfCA6bW9kOmBweTI6VGtkbmRg
ICAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLmRuZGAgICAgICAgICAgICAg
IHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwot
fCBgYHRraW50ZXJfY29sb3JjaG9vc2VyYGAgICAgIHwgOm1vZDpgcHkyOnRrQ29sb3JDaG9vc2Vy
YCAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5jb2xvcmNob29zZXJgICAgICB8Ci0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2lu
dGVyX2NvbW1vbmRpYWxvZ2BgICAgICB8IDptb2Q6YHB5Mjp0a0NvbW1vbkRpYWxvZ2AgICAgICAg
ICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuY29tbW9uZGlhbG9nYCAgICAgfAotKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl90a2Zp
bGVkaWFsb2dgYCAgICAgfCA6bW9kOmBweTI6dGtGaWxlRGlhbG9nYCAgICAgICAgICAgICB8IDpt
b2Q6YHB5Mzp0a2ludGVyLmZpbGVkaWFsb2dgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfZm9udGBgICAgICAg
ICAgICAgIHwgOm1vZDpgcHkyOnRrRm9udGAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6
dGtpbnRlci5mb250YCAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX21lc3NhZ2Vib3hgYCAgICAgICB8
IDptb2Q6YHB5Mjp0a01lc3NhZ2VCb3hgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIu
bWVzc2FnZWJveGAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl90a3NpbXBsZWRpYWxvZ2BgICAgfCA6bW9kOmBw
eTI6dGtTaW1wbGVEaWFsb2dgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLnNpbXBsZWRp
YWxvZ2AgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKwotfCBgYHVybGxpYi5wYXJzZWBgICAgICAgICAgICAgIHwgU2VlIDptb2Q6YHNpeC5t
b3Zlcy51cmxsaWIucGFyc2VgICAgfCA6bW9kOmBweTM6dXJsbGliLnBhcnNlYCAgICAgICAgICAg
ICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK
LXwgYGB1cmxsaWIuZXJyb3JgYCAgICAgICAgICAgICB8IFNlZSA6bW9kOmBzaXgubW92ZXMudXJs
bGliLmVycm9yYCAgIHwgOm1vZDpgcHkzOnVybGxpYi5lcnJvcmAgICAgICAgICAgICAgfAotKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdXJs
bGliLnJlcXVlc3RgYCAgICAgICAgICAgfCBTZWUgOm1vZDpgc2l4Lm1vdmVzLnVybGxpYi5yZXF1
ZXN0YCB8IDptb2Q6YHB5Mzp1cmxsaWIucmVxdWVzdGAgICAgICAgICAgIHwKLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHVybGxpYi5yZXNw
b25zZWBgICAgICAgICAgIHwgU2VlIDptb2Q6YHNpeC5tb3Zlcy51cmxsaWIucmVzcG9uc2VgfCA6
bW9kOmBweTM6dXJsbGliLnJlc3BvbnNlYCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB1cmxsaWIucm9ib3RwYXJzZXJg
YCAgICAgICB8IDptb2Q6YHB5Mjpyb2JvdHBhcnNlcmAgICAgICAgICAgICAgIHwgOm1vZDpgcHkz
OnVybGxpYi5yb2JvdHBhcnNlcmAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdXJsbGliX3JvYm90cGFyc2VyYGAgICAgICAg
fCA6bW9kOmBweTI6cm9ib3RwYXJzZXJgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp1cmxsaWIu
cm9ib3RwYXJzZXJgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKwotfCBgYFVzZXJEaWN0YGAgICAgICAgICAgICAgICAgIHwgOmNsYXNz
OmBweTI6VXNlckRpY3QuVXNlckRpY3RgICAgICAgfCA6Y2xhc3M6YHB5Mzpjb2xsZWN0aW9ucy5V
c2VyRGljdGAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSsKLXwgYGBVc2VyTGlzdGBgICAgICAgICAgICAgICAgICB8IDpjbGFzczpgcHkyOlVz
ZXJMaXN0LlVzZXJMaXN0YCAgICAgIHwgOmNsYXNzOmBweTM6Y29sbGVjdGlvbnMuVXNlckxpc3Rg
ICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
Ci18IGBgVXNlclN0cmluZ2BgICAgICAgICAgICAgICAgfCA6Y2xhc3M6YHB5MjpVc2VyU3RyaW5n
LlVzZXJTdHJpbmdgICB8IDpjbGFzczpgcHkzOmNvbGxlY3Rpb25zLlVzZXJTdHJpbmdgIHwKLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHdp
bnJlZ2BgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOl93aW5yZWdgICAgICAgICAgICAg
ICAgICAgfCA6bW9kOmBweTM6d2lucmVnYCAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB4bWxycGNfY2xp
ZW50YGAgICAgICAgICAgICB8IDptb2Q6YHB5Mjp4bWxycGNsaWJgICAgICAgICAgICAgICAgIHwg
Om1vZDpgcHkzOnhtbHJwYy5jbGllbnRgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgeG1scnBjX3NlcnZlcmBgICAg
ICAgICAgICAgfCA6bW9kOmBweTI6U2ltcGxlWE1MUlBDU2VydmVyYCAgICAgICB8IDptb2Q6YHB5
Mzp4bWxycGMuc2VydmVyYCAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHhyYW5nZWBgICAgICAgICAgICAgICAgICAg
IHwgOmZ1bmM6YHB5Mjp4cmFuZ2VgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkzOnJhbmdl
YCAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB6aXBgYCAgICAgICAgICAgICAgICAgICAgICB8IDpmdW5j
OmBweTI6aXRlcnRvb2xzLml6aXBgICAgICAgICAgIHwgOmZ1bmM6YHB5Mzp6aXBgICAgICAgICAg
ICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rCi18IGBgemlwX2xvbmdlc3RgYCAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOml0
ZXJ0b29scy5pemlwX2xvbmdlc3RgICB8IDpmdW5jOmBweTM6aXRlcnRvb2xzLnppcF9sb25nZXN0
YCAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KwotCi11cmxsaWIgcGFyc2UKLTw8PDw8PDw8PDw8PAotCi0uLiBtb2R1bGU6OiBzaXgubW92ZXMu
dXJsbGliLnBhcnNlCi0gICA6c3lub3BzaXM6IFN0dWZmIGZyb20gOm1vZDpgcHkyOnVybHBhcnNl
YCBhbmQgOm1vZDpgcHkyOnVybGxpYmAgaW4gUHl0aG9uIDIgYW5kIDptb2Q6YHB5Mzp1cmxsaWIu
cGFyc2VgIGluIFB5dGhvbiAzCi0KLUNvbnRhaW5zIGZ1bmN0aW9ucyBmcm9tIFB5dGhvbiAzJ3Mg
Om1vZDpgcHkzOnVybGxpYi5wYXJzZWAgYW5kIFB5dGhvbiAyJ3M6Ci0KLTptb2Q6YHB5Mjp1cmxw
YXJzZWA6Ci0KLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS5QYXJzZVJlc3VsdGAKLSogOmZ1bmM6YHB5
Mjp1cmxwYXJzZS5TcGxpdFJlc3VsdGAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmxwYXJzZWAK
LSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmx1bnBhcnNlYAotKiA6ZnVuYzpgcHkyOnVybHBhcnNl
LnBhcnNlX3FzYAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnBhcnNlX3FzbGAKLSogOmZ1bmM6YHB5
Mjp1cmxwYXJzZS51cmxqb2luYAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVybGRlZnJhZ2AKLSog
OmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmxzcGxpdGAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmx1
bnNwbGl0YAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnNwbGl0cXVlcnlgCi0qIDpmdW5jOmBweTI6
dXJscGFyc2UudXNlc19mcmFnbWVudGAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51c2VzX25ldGxv
Y2AKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51c2VzX3BhcmFtc2AKLSogOmZ1bmM6YHB5Mjp1cmxw
YXJzZS51c2VzX3F1ZXJ5YAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVzZXNfcmVsYXRpdmVgCi0K
LWFuZCA6bW9kOmBweTI6dXJsbGliYDoKLQotKiA6ZnVuYzpgcHkyOnVybGxpYi5xdW90ZWAKLSog
OmZ1bmM6YHB5Mjp1cmxsaWIucXVvdGVfcGx1c2AKLSogOmZ1bmM6YHB5Mjp1cmxsaWIuc3BsaXR0
YWdgCi0qIDpmdW5jOmBweTI6dXJsbGliLnNwbGl0dXNlcmAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIu
dW5xdW90ZWAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudW5xdW90ZV9wbHVzYAotKiA6ZnVuYzpgcHky
OnVybGxpYi51cmxlbmNvZGVgCi0KLQotdXJsbGliIGVycm9yCi08PDw8PDw8PDw8PDwKLQotLi4g
bW9kdWxlOjogc2l4Lm1vdmVzLnVybGxpYi5lcnJvcgotICAgOnN5bm9wc2lzOiBTdHVmZiBmcm9t
IDptb2Q6YHB5Mjp1cmxsaWJgIGFuZCA6bW9kOmBweTI6dXJsbGliMmAgaW4gUHl0aG9uIDIgYW5k
IDptb2Q6YHB5Mzp1cmxsaWIuZXJyb3JgIGluIFB5dGhvbiAzCi0KLUNvbnRhaW5zIGV4Y2VwdGlv
bnMgZnJvbSBQeXRob24gMydzIDptb2Q6YHB5Mzp1cmxsaWIuZXJyb3JgIGFuZCBQeXRob24gMidz
OgotCi06bW9kOmBweTI6dXJsbGliYDoKLQotKiA6ZXhjOmBweTI6dXJsbGliLkNvbnRlbnRUb29T
aG9ydEVycm9yYAotCi1hbmQgOm1vZDpgcHkyOnVybGxpYjJgOgotCi0qIDpleGM6YHB5Mjp1cmxs
aWIyLlVSTEVycm9yYAotKiA6ZXhjOmBweTI6dXJsbGliMi5IVFRQRXJyb3JgCi0KLQotdXJsbGli
IHJlcXVlc3QKLTw8PDw8PDw8PDw8PDw8Ci0KLS4uIG1vZHVsZTo6IHNpeC5tb3Zlcy51cmxsaWIu
cmVxdWVzdAotICAgOnN5bm9wc2lzOiBTdHVmZiBmcm9tIDptb2Q6YHB5Mjp1cmxsaWJgIGFuZCA6
bW9kOmBweTI6dXJsbGliMmAgaW4gUHl0aG9uIDIgYW5kIDptb2Q6YHB5Mzp1cmxsaWIucmVxdWVz
dGAgaW4gUHl0aG9uIDMKLQotQ29udGFpbnMgaXRlbXMgZnJvbSBQeXRob24gMydzIDptb2Q6YHB5
Mzp1cmxsaWIucmVxdWVzdGAgYW5kIFB5dGhvbiAyJ3M6Ci0KLTptb2Q6YHB5Mjp1cmxsaWJgOgot
Ci0qIDpmdW5jOmBweTI6dXJsbGliLnBhdGhuYW1lMnVybGAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIu
dXJsMnBhdGhuYW1lYAotKiA6ZnVuYzpgcHkyOnVybGxpYi5nZXRwcm94aWVzYAotKiA6ZnVuYzpg
cHkyOnVybGxpYi51cmxyZXRyaWV2ZWAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudXJsY2xlYW51cGAK
LSogOmNsYXNzOmBweTI6dXJsbGliLlVSTG9wZW5lcmAKLSogOmNsYXNzOmBweTI6dXJsbGliLkZh
bmN5VVJMb3BlbmVyYAotKiA6ZnVuYzpgcHkyOnVybGxpYi5wcm94eV9ieXBhc3NgCi0KLWFuZCA6
bW9kOmBweTI6dXJsbGliMmA6Ci0KLSogOmZ1bmM6YHB5Mjp1cmxsaWIyLnVybG9wZW5gCi0qIDpm
dW5jOmBweTI6dXJsbGliMi5pbnN0YWxsX29wZW5lcmAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIyLmJ1
aWxkX29wZW5lcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5SZXF1ZXN0YAotKiA6Y2xhc3M6YHB5
Mjp1cmxsaWIyLk9wZW5lckRpcmVjdG9yYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBEZWZh
dWx0RXJyb3JIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBSZWRpcmVjdEhhbmRs
ZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUENvb2tpZVByb2Nlc3NvcmAKLSogOmNsYXNz
OmBweTI6dXJsbGliMi5Qcm94eUhhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuQmFzZUhh
bmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUFBhc3N3b3JkTWdyYAotKiA6Y2xhc3M6
YHB5Mjp1cmxsaWIyLkhUVFBQYXNzd29yZE1ncldpdGhEZWZhdWx0UmVhbG1gCi0qIDpjbGFzczpg
cHkyOnVybGxpYjIuQWJzdHJhY3RCYXNpY0F1dGhIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxs
aWIyLkhUVFBCYXNpY0F1dGhIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLlByb3h5QmFz
aWNBdXRoSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5BYnN0cmFjdERpZ2VzdEF1dGhI
YW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBEaWdlc3RBdXRoSGFuZGxlcmAKLSog
OmNsYXNzOmBweTI6dXJsbGliMi5Qcm94eURpZ2VzdEF1dGhIYW5kbGVyYAotKiA6Y2xhc3M6YHB5
Mjp1cmxsaWIyLkhUVFBIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBTSGFuZGxl
cmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5GaWxlSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJs
bGliMi5GVFBIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkNhY2hlRlRQSGFuZGxlcmAK
LSogOmNsYXNzOmBweTI6dXJsbGliMi5Vbmtub3duSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJs
bGliMi5IVFRQRXJyb3JQcm9jZXNzb3JgCi0KLQotdXJsbGliIHJlc3BvbnNlCi08PDw8PDw8PDw8
PDw8PDwKLQotLi4gbW9kdWxlOjogc2l4Lm1vdmVzLnVybGxpYi5yZXNwb25zZQotICAgOnN5bm9w
c2lzOiBTdHVmZiBmcm9tIDptb2Q6YHB5Mjp1cmxsaWJgIGluIFB5dGhvbiAyIGFuZCA6bW9kOmBw
eTM6dXJsbGliLnJlc3BvbnNlYCBpbiBQeXRob24gMwotCi1Db250YWlucyBjbGFzc2VzIGZyb20g
UHl0aG9uIDMncyA6bW9kOmBweTM6dXJsbGliLnJlc3BvbnNlYCBhbmQgUHl0aG9uIDInczoKLQot
Om1vZDpgcHkyOnVybGxpYmA6Ci0KLSogOmNsYXNzOmBweTI6dXJsbGliLmFkZGJhc2VgCi0qIDpj
bGFzczpgcHkyOnVybGxpYi5hZGRjbG9zZWhvb2tgCi0qIDpjbGFzczpgcHkyOnVybGxpYi5hZGRp
bmZvYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIuYWRkaW5mb3VybGAKLQotCi1BZHZhbmNlZCAtIEN1
c3RvbWl6aW5nIHJlbmFtZXMKLTw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PAotCi0uLiBj
dXJyZW50bW9kdWxlOjogc2l4Ci0KLUl0IGlzIHBvc3NpYmxlIHRvIGFkZCBhZGRpdGlvbmFsIG5h
bWVzIHRvIHRoZSA6bW9kOmBzaXgubW92ZXNgIG5hbWVzcGFjZS4KLQotCi0uLiBmdW5jdGlvbjo6
IGFkZF9tb3ZlKGl0ZW0pCi0KLSAgIEFkZCAqaXRlbSogdG8gdGhlIDptb2Q6YHNpeC5tb3Zlc2Ag
bWFwcGluZy4gICppdGVtKiBzaG91bGQgYmUgYQotICAgOmNsYXNzOmBNb3ZlZEF0dHJpYnV0ZWAg
b3IgOmNsYXNzOmBNb3ZlZE1vZHVsZWAgaW5zdGFuY2UuCi0KLQotLi4gZnVuY3Rpb246OiByZW1v
dmVfbW92ZShuYW1lKQotCi0gICBSZW1vdmUgdGhlIDptb2Q6YHNpeC5tb3Zlc2AgbWFwcGluZyBj
YWxsZWQgKm5hbWUqLiAgKm5hbWUqIHNob3VsZCBiZSBhCi0gICBzdHJpbmcuCi0KLQotSW5zdGFu
Y2VzIG9mIHRoZSBmb2xsb3dpbmcgY2xhc3NlcyBjYW4gYmUgcGFzc2VkIHRvIDpmdW5jOmBhZGRf
bW92ZWAuICBOZWl0aGVyCi1oYXZlIGFueSBwdWJsaWMgbWVtYmVycy4KLQotCi0uLiBjbGFzczo6
IE1vdmVkTW9kdWxlKG5hbWUsIG9sZF9tb2QsIG5ld19tb2QpCi0KLSAgIENyZWF0ZSBhIG1hcHBp
bmcgZm9yIDptb2Q6YHNpeC5tb3Zlc2AgY2FsbGVkICpuYW1lKiB0aGF0IHJlZmVyZW5jZXMgZGlm
ZmVyZW50Ci0gICBtb2R1bGVzIGluIFB5dGhvbiAyIGFuZCAzLiAgKm9sZF9tb2QqIGlzIHRoZSBu
YW1lIG9mIHRoZSBQeXRob24gMiBtb2R1bGUuCi0gICAqbmV3X21vZCogaXMgdGhlIG5hbWUgb2Yg
dGhlIFB5dGhvbiAzIG1vZHVsZS4KLQotCi0uLiBjbGFzczo6IE1vdmVkQXR0cmlidXRlKG5hbWUs
IG9sZF9tb2QsIG5ld19tb2QsIG9sZF9hdHRyPU5vbmUsIG5ld19hdHRyPU5vbmUpCi0KLSAgIENy
ZWF0ZSBhIG1hcHBpbmcgZm9yIDptb2Q6YHNpeC5tb3Zlc2AgY2FsbGVkICpuYW1lKiB0aGF0IHJl
ZmVyZW5jZXMgZGlmZmVyZW50Ci0gICBhdHRyaWJ1dGVzIGluIFB5dGhvbiAyIGFuZCAzLiAgKm9s
ZF9tb2QqIGlzIHRoZSBuYW1lIG9mIHRoZSBQeXRob24gMiBtb2R1bGUuCi0gICAqbmV3X21vZCog
aXMgdGhlIG5hbWUgb2YgdGhlIFB5dGhvbiAzIG1vZHVsZS4gIElmICpuZXdfYXR0ciogaXMgbm90
IGdpdmVuLCBpdAotICAgZGVmYXVsdHMgdG8gKm9sZF9hdHRyKi4gIElmIG5laXRoZXIgaXMgZ2l2
ZW4sIHRoZXkgYm90aCBkZWZhdWx0IHRvICpuYW1lKi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24v
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmMGQ3Yjc4ZmI1MTYwODVjYTBhNzNiMDQ1NDgwMDZlN2E1MjFlZjMx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRp
b24vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9k
b2N1bWVudGF0aW9uL01ha2VmaWxlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9jb25mLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9p
bmRleC5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc2l4L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxOTg2NTNlZDBmZTJmYWVlOGFmZjY3YTRjYjNlZmQ5N2Vh
MzA3YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9zaXgucHljCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3NzbHV0aWxzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTQ2YmU4NTFkNjRmYjA5N2MyODdiODZmYjUxYTE5Nzg0NmY0MmMzNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL19faW5pdF9f
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1pbXBvcnQgb3BlbnNzbAotaW1wb3J0
IHByZWdlbmVyYXRlZAotZnJvbSBiYXNlIGltcG9ydCBOb1NTTEVudmlyb25tZW50Ci1mcm9tIG9w
ZW5zc2wgaW1wb3J0IE9wZW5TU0xFbnZpcm9ubWVudAotZnJvbSBwcmVnZW5lcmF0ZWQgaW1wb3J0
IFByZWdlbmVyYXRlZFNTTEVudmlyb25tZW50Ci0KLWVudmlyb25tZW50cyA9IHsibm9uZSI6IE5v
U1NMRW52aXJvbm1lbnQsCi0gICAgICAgICAgICAgICAgIm9wZW5zc2wiOiBPcGVuU1NMRW52aXJv
bm1lbnQsCi0gICAgICAgICAgICAgICAgInByZWdlbmVyYXRlZCI6IFByZWdlbmVyYXRlZFNTTEVu
dmlyb25tZW50fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9iYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9iYXNlLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyMzdhZTVmMjNjY2YxZmE5OGNkMzk2YWY4ODY5YjI3NGZjOWUz
NDY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvYmFz
ZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLWNsYXNzIE5vU1NMRW52aXJvbm1l
bnQob2JqZWN0KToKLSAgICBzc2xfZW5hYmxlZCA9IEZhbHNlCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIF9fZW50ZXJf
XyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAq
YXJncywgKiprd2FyZ3MpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgaG9zdF9jZXJ0X3BhdGgo
c2VsZiwgaG9zdCk6Ci0gICAgICAgIHJldHVybiBOb25lLCBOb25lCi0KLSAgICBkZWYgY2FfY2Vy
dF9wYXRoKHNlbGYpOgotICAgICAgICByZXR1cm4gTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9vcGVuc3Ns
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9z
c2x1dGlscy9vcGVuc3NsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWMyNDcx
YWFlZTM5OWU1N2QwNDI1YWIxZjM2M2U3MDE1ZDQ1YTFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvb3BlbnNzbC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDQyMiArMCwwIEBACi1pbXBvcnQgZnVuY3Rvb2xzCi1pbXBvcnQgb3MKLWltcG9ydCByYW5kb20K
LWltcG9ydCBzaHV0aWwKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgdGVtcGZpbGUKLWZyb20g
ZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKLQotIyBBbW91bnQgb2YgdGltZSBi
ZXlvbmQgdGhlIHByZXNlbnQgdG8gY29uc2lkZXIgY2VydGlmaWNhdGVzICJleHBpcmVkLiIgVGhp
cwotIyBhbGxvd3MgY2VydGlmaWNhdGVzIHRvIGJlIHByb2FjdGl2ZWx5IHJlLWdlbmVyYXRlZCBp
biB0aGUgImJ1ZmZlciIgcGVyaW9kCi0jIHByaW9yIHRvIHRoZWlyIGV4YWN0IGV4cGlyYXRpb24g
dGltZS4KLUNFUlRfRVhQSVJZX0JVRkZFUiA9IGRpY3QoaG91cnM9NikKLQotY2xhc3MgT3BlblNT
TChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgYmFzZV9w
YXRoLCBjb25mX3BhdGgsIGhvc3RzLCBkdXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgYmFzZV9j
b25mX3BhdGg9Tm9uZSk6Ci0gICAgICAgICIiIkNvbnRleHQgbWFuYWdlciBmb3IgaW50ZXJhY3Rp
bmcgd2l0aCBPcGVuU1NMLgotICAgICAgICBDcmVhdGVzIGEgY29uZmlnIGZpbGUgZm9yIHRoZSBk
dXJhdGlvbiBvZiB0aGUgY29udGV4dC4KLQotICAgICAgICA6cGFyYW0gbG9nZ2VyOiBzdGRsaWIg
bG9nZ2VyIG9yIHB5dGhvbiBzdHJ1Y3R1cmVkIGxvZ2dlcgotICAgICAgICA6cGFyYW0gYmluYXJ5
OiBwYXRoIHRvIG9wZW5zc2wgYmluYXJ5Ci0gICAgICAgIDpwYXJhbSBiYXNlX3BhdGg6IHBhdGgg
dG8gZGlyZWN0b3J5IGZvciBzdG9yaW5nIGNlcnRpZmljYXRlcwotICAgICAgICA6cGFyYW0gY29u
Zl9wYXRoOiBwYXRoIGZvciBjb25maWd1cmF0aW9uIGZpbGUgc3RvcmluZyBjb25maWd1cmF0aW9u
IGRhdGEKLSAgICAgICAgOnBhcmFtIGhvc3RzOiBsaXN0IG9mIGhvc3RzIHRvIGluY2x1ZGUgaW4g
Y29uZmlndXJhdGlvbiAob3IgTm9uZSBpZiBub3QKLSAgICAgICAgICAgICAgICAgICAgICBnZW5l
cmF0aW5nIGhvc3QgY2VydGlmaWNhdGVzKQotICAgICAgICA6cGFyYW0gZHVyYXRpb246IENlcnRp
ZmljYXRlIGR1cmF0aW9uIGluIGRheXMiIiIKLQotICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IGJh
c2VfcGF0aAotICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQotICAgICAgICBzZWxmLmNvbmZf
cGF0aCA9IGNvbmZfcGF0aAotICAgICAgICBzZWxmLmJhc2VfY29uZl9wYXRoID0gYmFzZV9jb25m
X3BhdGgKLSAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKLSAgICAgICAgc2VsZi5wcm9jID0g
Tm9uZQotICAgICAgICBzZWxmLmNtZCA9IFtdCi0gICAgICAgIHNlbGYuaG9zdHMgPSBob3N0cwot
ICAgICAgICBzZWxmLmR1cmF0aW9uID0gZHVyYXRpb24KLQotICAgIGRlZiBfX2VudGVyX18oc2Vs
Zik6Ci0gICAgICAgIHdpdGggb3BlbihzZWxmLmNvbmZfcGF0aCwgInciKSBhcyBmOgotICAgICAg
ICAgICAgZi53cml0ZShnZXRfY29uZmlnKHNlbGYuYmFzZV9wYXRoLCBzZWxmLmhvc3RzLCBzZWxm
LmR1cmF0aW9uKSkKLSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgIGRlZiBfX2V4aXRfXyhzZWxm
LCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBvcy51bmxpbmsoc2VsZi5jb25mX3BhdGgpCi0K
LSAgICBkZWYgbG9nKHNlbGYsIGxpbmUpOgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYubG9nZ2Vy
LCAicHJvY2Vzc19vdXRwdXQiKToKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0
cHV0KHNlbGYucHJvYy5waWQgaWYgc2VsZi5wcm9jIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUuZGVjb2RlKCJ1dGY4Iiwg
InJlcGxhY2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1h
bmQ9IiAiLmpvaW4oc2VsZi5jbWQpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcobGluZSkKLQotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBjbWQsICphcmdzLCAq
Kmt3YXJncyk6Ci0gICAgICAgICIiIlJ1biBhIGNvbW1hbmQgdXNpbmcgT3BlblNTTCBpbiB0aGUg
Y3VycmVudCBjb250ZXh0LgotCi0gICAgICAgIDpwYXJhbSBjbWQ6IFRoZSBvcGVuc3NsIHN1YmNv
bW1hbmQgdG8gcnVuCi0gICAgICAgIDpwYXJhbSAqYXJnczogQWRkaXRpb25hbCBhcmd1bWVudHMg
dG8gcGFzcyB0byB0aGUgY29tbWFuZAotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5jbWQgPSBb
c2VsZi5iaW5hcnksIGNtZF0KLSAgICAgICAgaWYgY21kICE9ICJ4NTA5IjoKLSAgICAgICAgICAg
IHNlbGYuY21kICs9IFsiLWNvbmZpZyIsIHNlbGYuY29uZl9wYXRoXQotICAgICAgICBzZWxmLmNt
ZCArPSBsaXN0KGFyZ3MpCi0KLSAgICAgICAgIyBDb3B5IHRoZSBlbnZpcm9ubWVudCwgY29udmVy
dGluZyB0byBwbGFpbiBzdHJpbmdzLiBXaW5kb3dzCi0gICAgICAgICMgU3RhcnRQcm9jZXNzIGlz
IHBpY2t5IGFib3V0IGFsbCB0aGUga2V5cy92YWx1ZXMgYmVpbmcgcGxhaW4gc3RyaW5ncywKLSAg
ICAgICAgIyBidXQgYXQgbGVhc3QgaW4gTVNZUyBzaGVsbHMsIHRoZSBvcy5lbnZpcm9uIGRpY3Rp
b25hcnkgY2FuIGJlIG1peGVkLgotICAgICAgICBlbnYgPSB7fQotICAgICAgICBmb3IgaywgdiBp
biBvcy5lbnZpcm9uLml0ZXJpdGVtcygpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
ICAgIGVudltrLmVuY29kZSgidXRmOCIpXSA9IHYuZW5jb2RlKCJ1dGY4IikKLSAgICAgICAgICAg
IGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcwotCi0gICAg
ICAgIGlmIHNlbGYuYmFzZV9jb25mX3BhdGggaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBlbnZb
Ik9QRU5TU0xfQ09ORiJdID0gc2VsZi5iYXNlX2NvbmZfcGF0aC5lbmNvZGUoInV0ZjgiKQotCi0g
ICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oc2VsZi5jbWQsIHN0ZG91dD1zdWJw
cm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbnY9ZW52KQotICAgICAgICBzdGRvdXQsIHN0ZGVyciA9IHNl
bGYucHJvYy5jb21tdW5pY2F0ZSgpCi0gICAgICAgIHNlbGYubG9nKHN0ZG91dCkKLSAgICAgICAg
aWYgc2VsZi5wcm9jLnJldHVybmNvZGUgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIHN1YnByb2Nl
c3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKHNlbGYucHJvYy5yZXR1cm5jb2RlLCBzZWxmLmNtZCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dD1zdGRv
dXQpCi0KLSAgICAgICAgc2VsZi5jbWQgPSBbXQotICAgICAgICBzZWxmLnByb2MgPSBOb25lCi0g
ICAgICAgIHJldHVybiBzdGRvdXQKLQotCi1kZWYgbWFrZV9zdWJqZWN0KGNvbW1vbl9uYW1lLAot
ICAgICAgICAgICAgICAgICBjb3VudHJ5PU5vbmUsCi0gICAgICAgICAgICAgICAgIHN0YXRlPU5v
bmUsCi0gICAgICAgICAgICAgICAgIGxvY2FsaXR5PU5vbmUsCi0gICAgICAgICAgICAgICAgIG9y
Z2FuaXphdGlvbj1Ob25lLAotICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25fdW5pdD1Ob25l
KToKLSAgICBhcmdzID0gWygiY291bnRyeSIsICJDIiksCi0gICAgICAgICAgICAoInN0YXRlIiwg
IlNUIiksCi0gICAgICAgICAgICAoImxvY2FsaXR5IiwgIkwiKSwKLSAgICAgICAgICAgICgib3Jn
YW5pemF0aW9uIiwgIk8iKSwKLSAgICAgICAgICAgICgib3JnYW5pemF0aW9uX3VuaXQiLCAiT1Ui
KSwKLSAgICAgICAgICAgICgiY29tbW9uX25hbWUiLCAiQ04iKV0KLQotICAgIHJ2ID0gW10KLQot
ICAgIGZvciB2YXIsIGtleSBpbiBhcmdzOgotICAgICAgICB2YWx1ZSA9IGxvY2FscygpW3Zhcl0K
LSAgICAgICAgaWYgdmFsdWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBydi5hcHBlbmQoIi8l
cz0lcyIgJSAoa2V5LCB2YWx1ZS5yZXBsYWNlKCIvIiwgIlxcLyIpKSkKLQotICAgIHJldHVybiAi
Ii5qb2luKHJ2KQotCi1kZWYgbWFrZV9hbHRfbmFtZXMoaG9zdHMpOgotICAgIHJ2ID0gW10KLSAg
ICBmb3IgbmFtZSBpbiBob3N0czoKLSAgICAgICAgcnYuYXBwZW5kKCJETlM6JXMiICUgbmFtZSkK
LSAgICByZXR1cm4gIiwiLmpvaW4ocnYpCi0KLWRlZiBnZXRfY29uZmlnKHJvb3RfZGlyLCBob3N0
cywgZHVyYXRpb249MzApOgotICAgIGlmIGhvc3RzIGlzIE5vbmU6Ci0gICAgICAgIHNhbl9saW5l
ID0gIiIKLSAgICBlbHNlOgotICAgICAgICBzYW5fbGluZSA9ICJzdWJqZWN0QWx0TmFtZSA9ICVz
IiAlIG1ha2VfYWx0X25hbWVzKGhvc3RzKQotCi0gICAgaWYgb3MucGF0aC5zZXAgPT0gIlxcIjoK
LSAgICAgICAgIyBUaGlzIHNlZW1zIHRvIGJlIG5lZWRlZCBmb3IgdGhlIFNoaW5pbmcgTGlnaHQg
T3BlblNTTCBvbgotICAgICAgICAjIFdpbmRvd3MsIGF0IGxlYXN0LgotICAgICAgICByb290X2Rp
ciA9IHJvb3RfZGlyLnJlcGxhY2UoIlxcIiwgIlxcXFwiKQotCi0gICAgcnYgPSAiIiJbIGNhIF0K
LWRlZmF1bHRfY2EgPSBDQV9kZWZhdWx0Ci0KLVsgQ0FfZGVmYXVsdCBdCi1kaXIgPSAlKHJvb3Rf
ZGlyKXMKLWNlcnRzID0gJGRpcgotbmV3X2NlcnRzX2RpciA9ICRjZXJ0cwotY3JsX2RpciA9ICRk
aXIlKHNlcClzY3JsCi1kYXRhYmFzZSA9ICRkaXIlKHNlcClzaW5kZXgudHh0Ci1wcml2YXRlX2tl
eSA9ICRkaXIlKHNlcClzY2FrZXkucGVtCi1jZXJ0aWZpY2F0ZSA9ICRkaXIlKHNlcClzY2FjZXJ0
LnBlbQotc2VyaWFsID0gJGRpciUoc2VwKXNzZXJpYWwKLWNybGRpciA9ICRkaXIlKHNlcClzY3Js
Ci1jcmxudW1iZXIgPSAkZGlyJShzZXApc2NybG51bWJlcgotY3JsID0gJGNybGRpciUoc2VwKXNj
cmwucGVtCi1SQU5ERklMRSA9ICRkaXIlKHNlcClzcHJpdmF0ZSUoc2VwKXMucmFuZAoteDUwOV9l
eHRlbnNpb25zID0gdXNyX2NlcnQKLW5hbWVfb3B0ICAgICAgICA9IGNhX2RlZmF1bHQKLWNlcnRf
b3B0ICAgICAgICA9IGNhX2RlZmF1bHQKLWRlZmF1bHRfZGF5cyA9ICUoZHVyYXRpb24pZAotZGVm
YXVsdF9jcmxfZGF5cyA9ICUoZHVyYXRpb24pZAotZGVmYXVsdF9tZCA9IHNoYTI1NgotcHJlc2Vy
dmUgPSBubwotcG9saWN5ID0gcG9saWN5X2FueXRoaW5nCi1jb3B5X2V4dGVuc2lvbnMgPSBjb3B5
Ci0KLVsgcG9saWN5X2FueXRoaW5nIF0KLWNvdW50cnlOYW1lID0gb3B0aW9uYWwKLXN0YXRlT3JQ
cm92aW5jZU5hbWUgPSBvcHRpb25hbAotbG9jYWxpdHlOYW1lID0gb3B0aW9uYWwKLW9yZ2FuaXph
dGlvbk5hbWUgPSBvcHRpb25hbAotb3JnYW5pemF0aW9uYWxVbml0TmFtZSA9IG9wdGlvbmFsCi1j
b21tb25OYW1lID0gc3VwcGxpZWQKLWVtYWlsQWRkcmVzcyA9IG9wdGlvbmFsCi0KLVsgcmVxIF0K
LWRlZmF1bHRfYml0cyA9IDIwNDgKLWRlZmF1bHRfa2V5ZmlsZSAgPSBwcml2a2V5LnBlbQotZGlz
dGluZ3Vpc2hlZF9uYW1lID0gcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZQotYXR0cmlidXRlcyA9IHJl
cV9hdHRyaWJ1dGVzCi14NTA5X2V4dGVuc2lvbnMgPSB2M19jYQotCi0jIFBhc3N3b3JkcyBmb3Ig
cHJpdmF0ZSBrZXlzIGlmIG5vdCBwcmVzZW50IHRoZXkgd2lsbCBiZSBwcm9tcHRlZCBmb3IKLSMg
aW5wdXRfcGFzc3dvcmQgPSBzZWNyZXQKLSMgb3V0cHV0X3Bhc3N3b3JkID0gc2VjcmV0Ci1zdHJp
bmdfbWFzayA9IHV0Zjhvbmx5Ci1yZXFfZXh0ZW5zaW9ucyA9IHYzX3JlcQotCi1bIHJlcV9kaXN0
aW5ndWlzaGVkX25hbWUgXQotY291bnRyeU5hbWUgPSBDb3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNv
ZGUpCi1jb3VudHJ5TmFtZV9kZWZhdWx0ID0gQVUKLWNvdW50cnlOYW1lX21pbiA9IDIKLWNvdW50
cnlOYW1lX21heCA9IDIKLXN0YXRlT3JQcm92aW5jZU5hbWUgPSBTdGF0ZSBvciBQcm92aW5jZSBO
YW1lIChmdWxsIG5hbWUpCi1zdGF0ZU9yUHJvdmluY2VOYW1lX2RlZmF1bHQgPQotbG9jYWxpdHlO
YW1lID0gTG9jYWxpdHkgTmFtZSAoZWcsIGNpdHkpCi0wLm9yZ2FuaXphdGlvbk5hbWUgPSBPcmdh
bml6YXRpb24gTmFtZQotMC5vcmdhbml6YXRpb25OYW1lX2RlZmF1bHQgPSBXZWIgUGxhdGZvcm0g
VGVzdHMKLW9yZ2FuaXphdGlvbmFsVW5pdE5hbWUgPSBPcmdhbml6YXRpb25hbCBVbml0IE5hbWUg
KGVnLCBzZWN0aW9uKQotI29yZ2FuaXphdGlvbmFsVW5pdE5hbWVfZGVmYXVsdCA9Ci1jb21tb25O
YW1lID0gQ29tbW9uIE5hbWUgKGUuZy4gc2VydmVyIEZRRE4gb3IgWU9VUiBuYW1lKQotY29tbW9u
TmFtZV9tYXggPSA2NAotZW1haWxBZGRyZXNzID0gRW1haWwgQWRkcmVzcwotZW1haWxBZGRyZXNz
X21heCA9IDY0Ci0KLVsgcmVxX2F0dHJpYnV0ZXMgXQotCi1bIHVzcl9jZXJ0IF0KLWJhc2ljQ29u
c3RyYWludHM9Q0E6ZmFsc2UKLXN1YmplY3RLZXlJZGVudGlmaWVyPWhhc2gKLWF1dGhvcml0eUtl
eUlkZW50aWZpZXI9a2V5aWQsaXNzdWVyCi0KLVsgdjNfcmVxIF0KLWJhc2ljQ29uc3RyYWludHMg
PSBDQTpGQUxTRQota2V5VXNhZ2UgPSBub25SZXB1ZGlhdGlvbiwgZGlnaXRhbFNpZ25hdHVyZSwg
a2V5RW5jaXBoZXJtZW50Ci1leHRlbmRlZEtleVVzYWdlID0gc2VydmVyQXV0aAotJShzYW5fbGlu
ZSlzCi0KLVsgdjNfY2EgXQotYmFzaWNDb25zdHJhaW50cyA9IENBOnRydWUKLXN1YmplY3RLZXlJ
ZGVudGlmaWVyPWhhc2gKLWF1dGhvcml0eUtleUlkZW50aWZpZXI9a2V5aWQ6YWx3YXlzLGlzc3Vl
cjphbHdheXMKLWtleVVzYWdlID0ga2V5Q2VydFNpZ24KLSIiIiAlIHsicm9vdF9kaXIiOiByb290
X2RpciwKLSAgICAgICAic2FuX2xpbmUiOiBzYW5fbGluZSwKLSAgICAgICAiZHVyYXRpb24iOiBk
dXJhdGlvbiwKLSAgICAgICAic2VwIjogb3MucGF0aC5zZXAucmVwbGFjZSgiXFwiLCAiXFxcXCIp
fQotCi0gICAgcmV0dXJuIHJ2Ci0KLWNsYXNzIE9wZW5TU0xFbnZpcm9ubWVudChvYmplY3QpOgot
ICAgIHNzbF9lbmFibGVkID0gVHJ1ZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
b3BlbnNzbF9iaW5hcnk9Im9wZW5zc2wiLCBiYXNlX3BhdGg9Tm9uZSwKLSAgICAgICAgICAgICAg
ICAgcGFzc3dvcmQ9IndlYi1wbGF0Zm9ybS10ZXN0cyIsIGZvcmNlX3JlZ2VuZXJhdGU9RmFsc2Us
Ci0gICAgICAgICAgICAgICAgIGR1cmF0aW9uPTMwLCBiYXNlX2NvbmZfcGF0aD1Ob25lKToKLSAg
ICAgICAgIiIiU1NMIGVudmlyb25tZW50IHRoYXQgY3JlYXRlcyBhIGxvY2FsIENBIGFuZCBob3N0
IGNlcnRpZmljYXRlIHVzaW5nIE9wZW5TU0wuCi0KLSAgICAgICAgQnkgZGVmYXVsdCB0aGlzIHdp
bGwgbG9vayBpbiBiYXNlX3BhdGggZm9yIGV4aXN0aW5nIGNlcnRpZmljYXRlcyB0aGF0IGFyZSBz
dGlsbAotICAgICAgICB2YWxpZCBhbmQgb25seSBjcmVhdGUgbmV3IGNlcnRpZmljYXRlcyBpZiB0
aGVyZSBhcmVuJ3QgYW55LiBUaGlzIGJlaGF2aW91ciBjYW4KLSAgICAgICAgYmUgYWRqdXN0ZWQg
dXNpbmcgdGhlIGZvcmNlX3JlZ2VuZXJhdGUgb3B0aW9uLgotCi0gICAgICAgIDpwYXJhbSBsb2dn
ZXI6IGEgc3RkbGliIGxvZ2dpbmcgY29tcGF0aWJsZSBsb2dnZXIgb3IgbW96bG9nIHN0cnVjdHVy
ZWQgbG9nZ2VyCi0gICAgICAgIDpwYXJhbSBvcGVuc3NsX2JpbmFyeTogUGF0aCB0byB0aGUgT3Bl
blNTTCBiaW5hcnkKLSAgICAgICAgOnBhcmFtIGJhc2VfcGF0aDogUGF0aCBpbiB3aGljaCBjZXJ0
aWZpY2F0ZXMgd2lsbCBiZSBzdG9yZWQuIElmIE5vbmUsIGEgdGVtcG9yYXJ5Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQgYW5kIHJlbW92ZWQgd2hlbiB0
aGUgc2VydmVyIHNodXRzIGRvd24KLSAgICAgICAgOnBhcmFtIHBhc3N3b3JkOiBQYXNzd29yZCB0
byB1c2UKLSAgICAgICAgOnBhcmFtIGZvcmNlX3JlZ2VuZXJhdGU6IEFsd2F5cyBjcmVhdGUgYSBu
ZXcgY2VydGlmaWNhdGUgZXZlbiBpZiBvbmUgYWxyZWFkeSBleGlzdHMuCi0gICAgICAgICIiIgot
ICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgotCi0gICAgICAgIHNlbGYudGVtcG9yYXJ5ID0g
RmFsc2UKLSAgICAgICAgaWYgYmFzZV9wYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBiYXNlX3Bh
dGggPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAgICAgICAgIHNlbGYudGVtcG9yYXJ5ID0gVHJ1
ZQotCi0gICAgICAgIHNlbGYuYmFzZV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKGJhc2VfcGF0aCkK
LSAgICAgICAgc2VsZi5wYXNzd29yZCA9IHBhc3N3b3JkCi0gICAgICAgIHNlbGYuZm9yY2VfcmVn
ZW5lcmF0ZSA9IGZvcmNlX3JlZ2VuZXJhdGUKLSAgICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0
aW9uCi0gICAgICAgIHNlbGYuYmFzZV9jb25mX3BhdGggPSBiYXNlX2NvbmZfcGF0aAotCi0gICAg
ICAgIHNlbGYucGF0aCA9IE5vbmUKLSAgICAgICAgc2VsZi5iaW5hcnkgPSBvcGVuc3NsX2JpbmFy
eQotICAgICAgICBzZWxmLm9wZW5zc2wgPSBOb25lCi0KLSAgICAgICAgc2VsZi5fY2FfY2VydF9w
YXRoID0gTm9uZQotICAgICAgICBzZWxmLl9jYV9rZXlfcGF0aCA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5ob3N0X2NlcnRpZmljYXRlcyA9IHt9Ci0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAg
ICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2VsZi5iYXNlX3BhdGgpOgotICAgICAgICAgICAg
b3MubWFrZWRpcnMoc2VsZi5iYXNlX3BhdGgpCi0KLSAgICAgICAgcGF0aCA9IGZ1bmN0b29scy5w
YXJ0aWFsKG9zLnBhdGguam9pbiwgc2VsZi5iYXNlX3BhdGgpCi0KLSAgICAgICAgd2l0aCBvcGVu
KHBhdGgoImluZGV4LnR4dCIpLCAidyIpOgotICAgICAgICAgICAgcGFzcwotICAgICAgICB3aXRo
IG9wZW4ocGF0aCgic2VyaWFsIiksICJ3IikgYXMgZjoKLSAgICAgICAgICAgIHNlcmlhbCA9ICIl
eCIgJSByYW5kb20ucmFuZGludCgwLCAxMDAwMDAwKQotICAgICAgICAgICAgaWYgbGVuKHNlcmlh
bCkgJSAyOgotICAgICAgICAgICAgICAgIHNlcmlhbCA9ICIwIiArIHNlcmlhbAotICAgICAgICAg
ICAgZi53cml0ZShzZXJpYWwpCi0KLSAgICAgICAgc2VsZi5wYXRoID0gcGF0aAotCi0gICAgICAg
IHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToK
LSAgICAgICAgaWYgc2VsZi50ZW1wb3Jhcnk6Ci0gICAgICAgICAgICBzaHV0aWwucm10cmVlKHNl
bGYuYmFzZV9wYXRoKQotCi0gICAgZGVmIF9jb25maWdfb3BlbnNzbChzZWxmLCBob3N0cyk6Ci0g
ICAgICAgIGNvbmZfcGF0aCA9IHNlbGYucGF0aCgib3BlbnNzbC5jZmciKQotICAgICAgICByZXR1
cm4gT3BlblNTTChzZWxmLmxvZ2dlciwgc2VsZi5iaW5hcnksIHNlbGYuYmFzZV9wYXRoLCBjb25m
X3BhdGgsIGhvc3RzLAotICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmR1cmF0aW9uLCBzZWxm
LmJhc2VfY29uZl9wYXRoKQotCi0gICAgZGVmIGNhX2NlcnRfcGF0aChzZWxmKToKLSAgICAgICAg
IiIiR2V0IHRoZSBwYXRoIHRvIHRoZSBDQSBjZXJ0aWZpY2F0ZSBmaWxlLCBnZW5lcmF0aW5nIGEK
LSAgICAgICAgbmV3IG9uZSBpZiBuZWVkZWQiIiIKLSAgICAgICAgaWYgc2VsZi5fY2FfY2VydF9w
YXRoIGlzIE5vbmUgYW5kIG5vdCBzZWxmLmZvcmNlX3JlZ2VuZXJhdGU6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2FkX2NhX2NlcnQoKQotICAgICAgICBpZiBzZWxmLl9jYV9jZXJ0X3BhdGggaXMgTm9u
ZToKLSAgICAgICAgICAgIHNlbGYuX2dlbmVyYXRlX2NhKCkKLSAgICAgICAgcmV0dXJuIHNlbGYu
X2NhX2NlcnRfcGF0aAotCi0gICAgZGVmIF9sb2FkX2NhX2NlcnQoc2VsZik6Ci0gICAgICAgIGtl
eV9wYXRoID0gc2VsZi5wYXRoKCJjYWtleS5wZW0iKQotICAgICAgICBjZXJ0X3BhdGggPSBzZWxm
LnBhdGgoImNhY2VydC5wZW0iKQotCi0gICAgICAgIGlmIHNlbGYuY2hlY2tfa2V5X2NlcnQoa2V5
X3BhdGgsIGNlcnRfcGF0aCwgTm9uZSk6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJV
c2luZyBleGlzdGluZyBDQSBjZXJ0IikKLSAgICAgICAgICAgIHNlbGYuX2NhX2tleV9wYXRoLCBz
ZWxmLl9jYV9jZXJ0X3BhdGggPSBrZXlfcGF0aCwgY2VydF9wYXRoCi0KLSAgICBkZWYgY2hlY2tf
a2V5X2NlcnQoc2VsZiwga2V5X3BhdGgsIGNlcnRfcGF0aCwgaG9zdHMpOgotICAgICAgICAiIiJD
aGVjayB0aGF0IGEga2V5IGFuZCBjZXJ0IGZpbGUgZXhpc3QgYW5kIGFyZSB2YWxpZCIiIgotICAg
ICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoa2V5X3BhdGgpIG9yIG5vdCBvcy5wYXRoLmV4aXN0
cyhjZXJ0X3BhdGgpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgd2l0aCBz
ZWxmLl9jb25maWdfb3BlbnNzbChob3N0cykgYXMgb3BlbnNzbDoKLSAgICAgICAgICAgIGVuZF9k
YXRlX3N0ciA9IG9wZW5zc2woIng1MDkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiLW5vb3V0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1lbmRk
YXRlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1pbiIsIGNlcnRfcGF0
aCkuc3BsaXQoIj0iLCAxKVsxXS5zdHJpcCgpCi0gICAgICAgICAgICAjIE5vdCBzdXJlIGlmIHRo
aXMgd29ya3MgaW4gb3RoZXIgbG9jYWxlcwotICAgICAgICAgICAgZW5kX2RhdGUgPSBkYXRldGlt
ZS5zdHJwdGltZShlbmRfZGF0ZV9zdHIsICIlYiAlZCAlSDolTTolUyAlWSAlWiIpCi0gICAgICAg
ICAgICB0aW1lX2J1ZmZlciA9IHRpbWVkZWx0YSgqKkNFUlRfRVhQSVJZX0JVRkZFUikKLSAgICAg
ICAgICAgICMgQmVjYXVzZSBgc3RycHRpbWVgIGRvZXMgbm90IGFjY291bnQgZm9yIHRpbWUgem9u
ZSBvZmZzZXRzLCBpdCBpcwotICAgICAgICAgICAgIyBhbHdheXMgaW4gdGVybXMgb2YgVVRDLCBz
byB0aGUgY3VycmVudCB0aW1lIHNob3VsZCBiZSBjYWxjdWxhdGVkCi0gICAgICAgICAgICAjIGFj
Y29yZGluZ2x5LgotICAgICAgICAgICAgaWYgZW5kX2RhdGUgPCBkYXRldGltZS51dGNub3coKSAr
IHRpbWVfYnVmZmVyOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICNU
T0RPOiBjaGVjayB0aGUga2V5IGFjdHVhbGx5IHNpZ25lZCB0aGUgY2VydC4KLSAgICAgICAgcmV0
dXJuIFRydWUKLQotICAgIGRlZiBfZ2VuZXJhdGVfY2Eoc2VsZik6Ci0gICAgICAgIHBhdGggPSBz
ZWxmLnBhdGgKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiR2VuZXJhdGluZyBuZXcgQ0EgaW4g
JXMiICUgc2VsZi5iYXNlX3BhdGgpCi0KLSAgICAgICAga2V5X3BhdGggPSBwYXRoKCJjYWtleS5w
ZW0iKQotICAgICAgICByZXFfcGF0aCA9IHBhdGgoImNhcmVxLnBlbSIpCi0gICAgICAgIGNlcnRf
cGF0aCA9IHBhdGgoImNhY2VydC5wZW0iKQotCi0gICAgICAgIHdpdGggc2VsZi5fY29uZmlnX29w
ZW5zc2woTm9uZSkgYXMgb3BlbnNzbDoKLSAgICAgICAgICAgIG9wZW5zc2woInJlcSIsCi0gICAg
ICAgICAgICAgICAgICAgICItYmF0Y2giLAotICAgICAgICAgICAgICAgICAgICAiLW5ldyIsCi0g
ICAgICAgICAgICAgICAgICAgICItbmV3a2V5IiwgInJzYToyMDQ4IiwKLSAgICAgICAgICAgICAg
ICAgICAgIi1rZXlvdXQiLCBrZXlfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgIi1vdXQiLCBy
ZXFfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgIi1zdWJqIiwgbWFrZV9zdWJqZWN0KCJ3ZWIt
cGxhdGZvcm0tdGVzdHMiKSwKLSAgICAgICAgICAgICAgICAgICAgIi1wYXNzb3V0IiwgInBhc3M6
JXMiICUgc2VsZi5wYXNzd29yZCkKLQotICAgICAgICAgICAgb3BlbnNzbCgiY2EiLAotICAgICAg
ICAgICAgICAgICAgICAiLWJhdGNoIiwKLSAgICAgICAgICAgICAgICAgICAgIi1jcmVhdGVfc2Vy
aWFsIiwKLSAgICAgICAgICAgICAgICAgICAgIi1rZXlmaWxlIiwga2V5X3BhdGgsCi0gICAgICAg
ICAgICAgICAgICAgICItcGFzc2luIiwgInBhc3M6JXMiICUgc2VsZi5wYXNzd29yZCwKLSAgICAg
ICAgICAgICAgICAgICAgIi1zZWxmc2lnbiIsCi0gICAgICAgICAgICAgICAgICAgICItZXh0ZW5z
aW9ucyIsICJ2M19jYSIsCi0gICAgICAgICAgICAgICAgICAgICItaW4iLCByZXFfcGF0aCwKLSAg
ICAgICAgICAgICAgICAgICAgIi1vdXQiLCBjZXJ0X3BhdGgpCi0KLSAgICAgICAgb3MudW5saW5r
KHJlcV9wYXRoKQotCi0gICAgICAgIHNlbGYuX2NhX2tleV9wYXRoLCBzZWxmLl9jYV9jZXJ0X3Bh
dGggPSBrZXlfcGF0aCwgY2VydF9wYXRoCi0KLSAgICBkZWYgaG9zdF9jZXJ0X3BhdGgoc2VsZiwg
aG9zdHMpOgotICAgICAgICAiIiJHZXQgYSB0dXBsZSBvZiAocHJpdmF0ZSBrZXkgcGF0aCwgY2Vy
dGlmaWNhdGUgcGF0aCkgZm9yIGEgaG9zdCwKLSAgICAgICAgZ2VuZXJhdGluZyBuZXcgb25lcyBp
ZiBuZWNlc3NhcnkuCi0KLSAgICAgICAgaG9zdHMgbXVzdCBiZSBhIGxpc3Qgb2YgYWxsIGhvc3Rz
IHRvIGFwcGVhciBvbiB0aGUgY2VydGlmaWNhdGUsIHdpdGgKLSAgICAgICAgdGhlIHByaW1hcnkg
aG9zdG5hbWUgZmlyc3QuIiIiCi0gICAgICAgIGhvc3RzID0gdHVwbGUoaG9zdHMpCi0gICAgICAg
IGlmIGhvc3RzIG5vdCBpbiBzZWxmLmhvc3RfY2VydGlmaWNhdGVzOgotICAgICAgICAgICAgaWYg
bm90IHNlbGYuZm9yY2VfcmVnZW5lcmF0ZToKLSAgICAgICAgICAgICAgICBrZXlfY2VydCA9IHNl
bGYuX2xvYWRfaG9zdF9jZXJ0KGhvc3RzKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBrZXlfY2VydCA9IE5vbmUKLSAgICAgICAgICAgIGlmIGtleV9jZXJ0IGlzIE5vbmU6Ci0g
ICAgICAgICAgICAgICAga2V5LCBjZXJ0ID0gc2VsZi5fZ2VuZXJhdGVfaG9zdF9jZXJ0KGhvc3Rz
KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBrZXksIGNlcnQgPSBrZXlfY2Vy
dAotICAgICAgICAgICAgc2VsZi5ob3N0X2NlcnRpZmljYXRlc1tob3N0c10gPSBrZXksIGNlcnQK
LQotICAgICAgICByZXR1cm4gc2VsZi5ob3N0X2NlcnRpZmljYXRlc1tob3N0c10KLQotICAgIGRl
ZiBfbG9hZF9ob3N0X2NlcnQoc2VsZiwgaG9zdHMpOgotICAgICAgICBob3N0ID0gaG9zdHNbMF0K
LSAgICAgICAga2V5X3BhdGggPSBzZWxmLnBhdGgoIiVzLmtleSIgJSBob3N0KQotICAgICAgICBj
ZXJ0X3BhdGggPSBzZWxmLnBhdGgoIiVzLnBlbSIgJSBob3N0KQotCi0gICAgICAgICMgVE9ETzog
Y2hlY2sgdGhhdCB0aGlzIGNlcnQgd2FzIHNpZ25lZCBieSB0aGUgQ0EgY2VydAotICAgICAgICBp
ZiBzZWxmLmNoZWNrX2tleV9jZXJ0KGtleV9wYXRoLCBjZXJ0X3BhdGgsIGhvc3RzKToKLSAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlVzaW5nIGV4aXN0aW5nIGhvc3QgY2VydCIpCi0gICAg
ICAgICAgICByZXR1cm4ga2V5X3BhdGgsIGNlcnRfcGF0aAotCi0gICAgZGVmIF9nZW5lcmF0ZV9o
b3N0X2NlcnQoc2VsZiwgaG9zdHMpOgotICAgICAgICBob3N0ID0gaG9zdHNbMF0KLSAgICAgICAg
aWYgc2VsZi5fY2Ffa2V5X3BhdGggaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2dlbmVyYXRl
X2NhKCkKLSAgICAgICAgY2Ffa2V5X3BhdGggPSBzZWxmLl9jYV9rZXlfcGF0aAotCi0gICAgICAg
IGFzc2VydCBvcy5wYXRoLmV4aXN0cyhjYV9rZXlfcGF0aCkKLQotICAgICAgICBwYXRoID0gc2Vs
Zi5wYXRoCi0KLSAgICAgICAgcmVxX3BhdGggPSBwYXRoKCJ3cHQucmVxIikKLSAgICAgICAgY2Vy
dF9wYXRoID0gcGF0aCgiJXMucGVtIiAlIGhvc3QpCi0gICAgICAgIGtleV9wYXRoID0gcGF0aCgi
JXMua2V5IiAlIGhvc3QpCi0KLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiR2VuZXJhdGluZyBu
ZXcgaG9zdCBjZXJ0IikKLQotICAgICAgICB3aXRoIHNlbGYuX2NvbmZpZ19vcGVuc3NsKGhvc3Rz
KSBhcyBvcGVuc3NsOgotICAgICAgICAgICAgb3BlbnNzbCgicmVxIiwKLSAgICAgICAgICAgICAg
ICAgICAgIi1iYXRjaCIsCi0gICAgICAgICAgICAgICAgICAgICItbmV3a2V5IiwgInJzYToyMDQ4
IiwKLSAgICAgICAgICAgICAgICAgICAgIi1rZXlvdXQiLCBrZXlfcGF0aCwKLSAgICAgICAgICAg
ICAgICAgICAgIi1pbiIsIGNhX2tleV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAiLW5vZGVz
IiwKLSAgICAgICAgICAgICAgICAgICAgIi1vdXQiLCByZXFfcGF0aCkKLQotICAgICAgICAgICAg
b3BlbnNzbCgiY2EiLAotICAgICAgICAgICAgICAgICAgICAiLWJhdGNoIiwKLSAgICAgICAgICAg
ICAgICAgICAgIi1pbiIsIHJlcV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAiLXBhc3NpbiIs
ICJwYXNzOiVzIiAlIHNlbGYucGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgICAgICItc3ViaiIs
IG1ha2Vfc3ViamVjdChob3N0KSwKLSAgICAgICAgICAgICAgICAgICAgIi1vdXQiLCBjZXJ0X3Bh
dGgpCi0KLSAgICAgICAgb3MudW5saW5rKHJlcV9wYXRoKQotCi0gICAgICAgIHJldHVybiBrZXlf
cGF0aCwgY2VydF9wYXRoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvcHJlZ2Vu
ZXJhdGVkLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzQ4N2RmM2FkZDAzOTFj
M2VmNzFiNjllZDlmMzc3MzRmMTQyODkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvc3NsdXRpbHMvcHJlZ2VuZXJhdGVkLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjYg
KzAsMCBAQAotY2xhc3MgUHJlZ2VuZXJhdGVkU1NMRW52aXJvbm1lbnQob2JqZWN0KToKLSAgICAi
IiJTU0wgZW52aXJvbm1lbnQgdG8gdXNlIHdpdGggZXhpc3Rpbmcga2V5L2NlcnRpZmljYXRlIGZp
bGVzCi0gICAgZS5nLiB3aGVuIHJ1bm5pbmcgb24gYSBzZXJ2ZXIgd2l0aCBhIHB1YmxpYyBkb21h
aW4gbmFtZQotICAgICIiIgotICAgIHNzbF9lbmFibGVkID0gVHJ1ZQotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgaG9zdF9rZXlfcGF0aCwgaG9zdF9jZXJ0X3BhdGgsCi0gICAgICAg
ICAgICAgICAgIGNhX2NlcnRfcGF0aD1Ob25lKToKLSAgICAgICAgc2VsZi5fY2FfY2VydF9wYXRo
ID0gY2FfY2VydF9wYXRoCi0gICAgICAgIHNlbGYuX2hvc3Rfa2V5X3BhdGggPSBob3N0X2tleV9w
YXRoCi0gICAgICAgIHNlbGYuX2hvc3RfY2VydF9wYXRoID0gaG9zdF9jZXJ0X3BhdGgKLQotICAg
IGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19l
eGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIGhv
c3RfY2VydF9wYXRoKHNlbGYsIGhvc3RzKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBrZXkgYW5k
IGNlcnRpZmljYXRlIHBhdGhzIGZvciB0aGUgaG9zdCIiIgotICAgICAgICByZXR1cm4gc2VsZi5f
aG9zdF9rZXlfcGF0aCwgc2VsZi5faG9zdF9jZXJ0X3BhdGgKLQotICAgIGRlZiBjYV9jZXJ0X3Bh
dGgoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgY2VydGlmaWNhdGUgcGF0aCBvZiB0aGUg
Q0EgdGhhdCBzaWduZWQgdGhlCi0gICAgICAgIGhvc3QgY2VydGlmaWNhdGVzLCBvciBOb25lIGlm
IHRoYXQgaXNuJ3Qga25vd24iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NhX2NlcnRfcGF0aApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9zc2x1dGlscy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2YzAxNzlmODc0ZTkzMGZkZTg0MzQ4NTA5NjVkYWY5MDky
YmQyNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMv
X19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NzbHV0aWxzL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL29wZW5zc2wucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL1BLRy1JTkZPIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL1BLRy1JTkZPCmlu
ZGV4IDk4OTI3YzRkOTlkOWNhMmY3YWM5YWFkY2IyM2I1YjA5MjJmMzQyMDYuLjYyMzE3MWUzOGY2
OGZiMjdjMmU0YTUxNjFmMDY1NzViYWY3ZTZkNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9QS0ct
SU5GTworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2VudW0vUEtHLUlORk8KQEAgLTEsNiArMSw2IEBACiBNZXRhZGF0YS1W
ZXJzaW9uOiAxLjEKIE5hbWU6IGVudW0zNAotVmVyc2lvbjogMS4xLjYKK1ZlcnNpb246IDEuMS4x
MAogU3VtbWFyeTogUHl0aG9uIDMuNCBFbnVtIGJhY2twb3J0ZWQgdG8gMy4zLCAzLjIsIDMuMSwg
Mi43LCAyLjYsIDIuNSwgYW5kIDIuNAogSG9tZS1wYWdlOiBodHRwczovL2JpdGJ1Y2tldC5vcmcv
c3RvbmVsZWFmL2VudW0zNAogQXV0aG9yOiBFdGhhbiBGdXJtYW4KQEAgLTU3LDYgKzU3LDQgQEAg
Q2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNQogQ2xhc3Np
ZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNgogQ2xhc3NpZmllcjog
UHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNwogQ2xhc3NpZmllcjogUHJvZ3Jh
bW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuMwotQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcg
TGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNAotQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3Vh
Z2UgOjogUHl0aG9uIDo6IDMuNQogUHJvdmlkZXM6IGVudW0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51
bS9lbnVtL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vX19pbml0X18ucHkKaW5kZXggZDZm
ZmIzYTQwZmViMDc3NzkxNDBmNDNmMWRlMTFmZjgwZTdjMTNkNy4uNTFmM2NmMjQ3MDY5ZmQ2NzNl
YTk3MDJiODBkODc2MjQzMTgzMTgyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vX19pbml0
X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vX19pbml0X18ucHkKQEAgLTQsNyArNCw3IEBAIGlt
cG9ydCBzeXMgYXMgX3N5cwogCiBfX2FsbF9fID0gWydFbnVtJywgJ0ludEVudW0nLCAndW5pcXVl
J10KIAotdmVyc2lvbiA9IDEsIDEsIDYKK3ZlcnNpb24gPSAxLCAxLCAxMAogCiBweXZlciA9IGZs
b2F0KCclcy4lcycgJSBfc3lzLnZlcnNpb25faW5mb1s6Ml0pCiAKQEAgLTE4Myw3ICsxODMsOCBA
QCBjbGFzcyBFbnVtTWV0YSh0eXBlKToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGRlbCBj
bGFzc2RpY3RbJ19vcmRlcl8nXQogICAgICAgICAgICAgaWYgcHl2ZXIgPCAzLjA6Ci0gICAgICAg
ICAgICAgICAgX29yZGVyXyA9IF9vcmRlcl8ucmVwbGFjZSgnLCcsICcgJykuc3BsaXQoKQorICAg
ICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoX29yZGVyXywgYmFzZXN0cmluZyk6CisgICAgICAg
ICAgICAgICAgICAgIF9vcmRlcl8gPSBfb3JkZXJfLnJlcGxhY2UoJywnLCAnICcpLnNwbGl0KCkK
ICAgICAgICAgICAgICAgICBhbGlhc2VzID0gW25hbWUgZm9yIG5hbWUgaW4gbWVtYmVycyBpZiBu
YW1lIG5vdCBpbiBfb3JkZXJfXQogICAgICAgICAgICAgICAgIF9vcmRlcl8gKz0gYWxpYXNlcwog
CkBAIC00NjMsNyArNDY0LDcgQEAgY2xhc3MgRW51bU1ldGEodHlwZSk6CiAgICAgICAgICAgICBf
b3JkZXJfLmFwcGVuZChtZW1iZXJfbmFtZSkKICAgICAgICAgIyBvbmx5IHNldCBfb3JkZXJfIGlu
IGNsYXNzZGljdCBpZiBuYW1lL3ZhbHVlIHdhcyBub3QgZnJvbSBhIG1hcHBpbmcKICAgICAgICAg
aWYgbm90IGlzaW5zdGFuY2UoaXRlbSwgYmFzZXN0cmluZyk6Ci0gICAgICAgICAgICBjbGFzc2Rp
Y3RbJ19vcmRlcl8nXSA9ICcgJy5qb2luKF9vcmRlcl8pCisgICAgICAgICAgICBjbGFzc2RpY3Rb
J19vcmRlcl8nXSA9IF9vcmRlcl8KICAgICAgICAgZW51bV9jbGFzcyA9IG1ldGFjbHMuX19uZXdf
XyhtZXRhY2xzLCBjbGFzc19uYW1lLCBiYXNlcywgY2xhc3NkaWN0KQogCiAgICAgICAgICMgVE9E
TzogcmVwbGFjZSB0aGUgZnJhbWUgaGFjayBpZiBhIGJsZXNzZWQgd2F5IHRvIGtub3cgdGhlIGNh
bGxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL2RvYy9lbnVtLnBkZiBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51
bS9lbnVtL2RvYy9lbnVtLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGMxMzgz
YTQ5NWU4ZjkyNGUyNDdjZGM1YjIwOTllYmEyZmY5ZDRmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS9kb2MvZW51bS5wZGYKKysr
IC9kZXYvbnVsbApAQCAtMSwyMjM3ICswLDAgQEAKLSVQREYtMS40DQotJZOMi54gUmVwb3J0TGFi
IEdlbmVyYXRlZCBQREYgZG9jdW1lbnQgaHR0cDovL3d3dy5yZXBvcnRsYWIuY29tDQotMSAwIG9i
ag0KLTw8IC9GMSAyIDAgUiAvRjIgMyAwIFIgL0YzIDQgMCBSIC9GNCA1IDAgUiAvRjUgOCAwIFIg
L0Y2IDE1IDAgUiA+Pg0KLWVuZG9iag0KLTIgMCBvYmoNCi08PCAvQmFzZUZvbnQgL0hlbHZldGlj
YSAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZyAvTmFtZSAvRjEgL1N1YnR5cGUgL1R5cGUxIC9U
eXBlIC9Gb250ID4+DQotZW5kb2JqDQotMyAwIG9iag0KLTw8IC9CYXNlRm9udCAvQ291cmllci1C
b2xkIC9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nIC9OYW1lIC9GMiAvU3VidHlwZSAvVHlwZTEg
L1R5cGUgL0ZvbnQgPj4NCi1lbmRvYmoNCi00IDAgb2JqDQotPDwgL0Jhc2VGb250IC9IZWx2ZXRp
Y2EtQm9sZCAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZyAvTmFtZSAvRjMgL1N1YnR5cGUgL1R5
cGUxIC9UeXBlIC9Gb250ID4+DQotZW5kb2JqDQotNSAwIG9iag0KLTw8IC9CYXNlRm9udCAvQ291
cmllciAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZyAvTmFtZSAvRjQgL1N1YnR5cGUgL1R5cGUx
IC9UeXBlIC9Gb250ID4+DQotZW5kb2JqDQotNiAwIG9iag0KLTw8IC9Cb3JkZXIgWyAwIDAgMCBd
IC9Db250ZW50cyAoKSAvRGVzdCBbIDIyIDAgUiAvWFlaIDYyLjY5MjkxIDYzOS4zMjM2IDAgXSAv
UmVjdCBbIDMzNS4xODA1IDU3NC40MjcyIDQwNS4yNDczIDU4Ni40MjcyIF0gL1N1YnR5cGUgL0xp
bmsgL1R5cGUgL0Fubm90ID4+DQotZW5kb2JqDQotNyAwIG9iag0KLTw8IC9Cb3JkZXIgWyAwIDAg
MCBdIC9Db250ZW50cyAoKSAvRGVzdCBbIDIyIDAgUiAvWFlaIDYyLjY5MjkxIDYzOS4zMjM2IDAg
XSAvUmVjdCBbIDI1NS45NzQyIDQyNy40MjcyIDMyMS41Mzc4IDQzOS40MjcyIF0gL1N1YnR5cGUg
L0xpbmsgL1R5cGUgL0Fubm90ID4+DQotZW5kb2JqDQotOCAwIG9iag0KLTw8IC9CYXNlRm9udCAv
SGVsdmV0aWNhLU9ibGlxdWUgL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcgL05hbWUgL0Y1IC9T
dWJ0eXBlIC9UeXBlMSAvVHlwZSAvRm9udCA+Pg0KLWVuZG9iag0KLTkgMCBvYmoNCi08PCAvQm9y
ZGVyIFsgMCAwIDAgXSAvQ29udGVudHMgKCkgL0Rlc3QgWyAyNiAwIFIgL1hZWiA2Mi42OTI5MSAy
NzguMTIzNiAwIF0gL1JlY3QgWyA4Mi42OTI5MSAxODIuMjI3MiAyMDEuMDcyOSAxOTQuMjI3MiBd
IC9TdWJ0eXBlIC9MaW5rIC9UeXBlIC9Bbm5vdCA+Pg0KLWVuZG9iag0KLTEwIDAgb2JqDQotPDwg
L0Fubm90cyBbIDYgMCBSIDcgMCBSIDkgMCBSIF0gL0NvbnRlbnRzIDU2IDAgUiAvTWVkaWFCb3gg
WyAwIDAgNTk1LjI3NTYgODQxLjg4OTggXSAvUGFyZW50IDU1IDAgUiAvUmVzb3VyY2VzIDw8IC9G
b250IDEgMCBSIC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBd
ID4+IC9Sb3RhdGUgMCANCi0gIC9UcmFucyA8PCAgPj4gL1R5cGUgL1BhZ2UgPj4NCi1lbmRvYmoN
Ci0xMSAwIG9iag0KLTw8IC9Db250ZW50cyA1NyAwIFIgL01lZGlhQm94IFsgMCAwIDU5NS4yNzU2
IDg0MS44ODk4IF0gL1BhcmVudCA1NSAwIFIgL1Jlc291cmNlcyA8PCAvRm9udCAxIDAgUiAvUHJv
Y1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkgXSA+PiAvUm90YXRlIDAg
L1RyYW5zIDw8ICA+PiANCi0gIC9UeXBlIC9QYWdlID4+DQotZW5kb2JqDQotMTIgMCBvYmoNCi08
PCAvQ29udGVudHMgNTggMCBSIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1NiA4NDEuODg5OCBdIC9Q
YXJlbnQgNTUgMCBSIC9SZXNvdXJjZXMgPDwgL0ZvbnQgMSAwIFIgL1Byb2NTZXQgWyAvUERGIC9U
ZXh0IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJIF0gPj4gL1JvdGF0ZSAwIC9UcmFucyA8PCAgPj4g
DQotICAvVHlwZSAvUGFnZSA+Pg0KLWVuZG9iag0KLTEzIDAgb2JqDQotPDwgL0NvbnRlbnRzIDU5
IDAgUiAvTWVkaWFCb3ggWyAwIDAgNTk1LjI3NTYgODQxLjg4OTggXSAvUGFyZW50IDU1IDAgUiAv
UmVzb3VyY2VzIDw8IC9Gb250IDEgMCBSIC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9J
bWFnZUMgL0ltYWdlSSBdID4+IC9Sb3RhdGUgMCAvVHJhbnMgPDwgID4+IA0KLSAgL1R5cGUgL1Bh
Z2UgPj4NCi1lbmRvYmoNCi0xNCAwIG9iag0KLTw8IC9Cb3JkZXIgWyAwIDAgMCBdIC9Db250ZW50
cyAoKSAvRGVzdCBbIDIyIDAgUiAvWFlaIDYyLjY5MjkxIDE1Ny4yMjM2IDAgXSAvUmVjdCBbIDEw
MS42MDI5IDc0MS43NzM2IDE0MS42MjI5IDc1My43NzM2IF0gL1N1YnR5cGUgL0xpbmsgL1R5cGUg
L0Fubm90ID4+DQotZW5kb2JqDQotMTUgMCBvYmoNCi08PCAvQmFzZUZvbnQgL0hlbHZldGljYS1C
b2xkT2JsaXF1ZSAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZyAvTmFtZSAvRjYgL1N1YnR5cGUg
L1R5cGUxIC9UeXBlIC9Gb250ID4+DQotZW5kb2JqDQotMTYgMCBvYmoNCi08PCAvQm9yZGVyIFsg
MCAwIDAgXSAvQ29udGVudHMgKCkgL0Rlc3QgWyAyNSAwIFIgL1hZWiA2Mi42OTI5MSAzNTkuNjIz
NiAwIF0gL1JlY3QgWyAzMjcuMTUyOSA1ODUuNTczNiAzOTIuNzMyOSA1OTcuNTczNiBdIC9TdWJ0
eXBlIC9MaW5rIC9UeXBlIC9Bbm5vdCA+Pg0KLWVuZG9iag0KLTE3IDAgb2JqDQotPDwgL0JvcmRl
ciBbIDAgMCAwIF0gL0NvbnRlbnRzICgpIC9EZXN0IFsgMjIgMCBSIC9YWVogNjIuNjkyOTEgNjM5
LjMyMzYgMCBdIC9SZWN0IFsgMTgxLjE5MTcgMzEyLjE3MzYgMjQ2LjQ2MzQgMzI0LjE3MzYgXSAv
U3VidHlwZSAvTGluayAvVHlwZSAvQW5ub3QgPj4NCi1lbmRvYmoNCi0xOCAwIG9iag0KLTw8IC9B
bm5vdHMgWyAxNCAwIFIgMTYgMCBSIDE3IDAgUiBdIC9Db250ZW50cyA2MCAwIFIgL01lZGlhQm94
IFsgMCAwIDU5NS4yNzU2IDg0MS44ODk4IF0gL1BhcmVudCA1NSAwIFIgL1Jlc291cmNlcyA8PCAv
Rm9udCAxIDAgUiAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkg
XSA+PiAvUm90YXRlIDAgDQotICAvVHJhbnMgPDwgID4+IC9UeXBlIC9QYWdlID4+DQotZW5kb2Jq
DQotMTkgMCBvYmoNCi08PCAvQm9yZGVyIFsgMCAwIDAgXSAvQ29udGVudHMgKCkgL0Rlc3QgWyAy
NiAwIFIgL1hZWiA2Mi42OTI5MSA2MTAuODIzNiAwIF0gL1JlY3QgWyAzMjYuMTMyOSA1MTEuMzcz
NiAzNTcuMjYyOSA1MjMuMzczNiBdIC9TdWJ0eXBlIC9MaW5rIC9UeXBlIC9Bbm5vdCA+Pg0KLWVu
ZG9iag0KLTIwIDAgb2JqDQotPDwgL0JvcmRlciBbIDAgMCAwIF0gL0NvbnRlbnRzICgpIC9EZXN0
IFsgMjUgMCBSIC9YWVogNjIuNjkyOTEgMzU5LjYyMzYgMCBdIC9SZWN0IFsgMjQxLjEyMjkgMTg1
Ljk3MzYgMzA2LjcwMjkgMTk3Ljk3MzYgXSAvU3VidHlwZSAvTGluayAvVHlwZSAvQW5ub3QgPj4N
Ci1lbmRvYmoNCi0yMSAwIG9iag0KLTw8IC9Bbm5vdHMgWyAxOSAwIFIgMjAgMCBSIF0gL0NvbnRl
bnRzIDYxIDAgUiAvTWVkaWFCb3ggWyAwIDAgNTk1LjI3NTYgODQxLjg4OTggXSAvUGFyZW50IDU1
IDAgUiAvUmVzb3VyY2VzIDw8IC9Gb250IDEgMCBSIC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1h
Z2VCIC9JbWFnZUMgL0ltYWdlSSBdID4+IC9Sb3RhdGUgMCANCi0gIC9UcmFucyA8PCAgPj4gL1R5
cGUgL1BhZ2UgPj4NCi1lbmRvYmoNCi0yMiAwIG9iag0KLTw8IC9Db250ZW50cyA2MiAwIFIgL01l
ZGlhQm94IFsgMCAwIDU5NS4yNzU2IDg0MS44ODk4IF0gL1BhcmVudCA1NSAwIFIgL1Jlc291cmNl
cyA8PCAvRm9udCAxIDAgUiAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9J
bWFnZUkgXSA+PiAvUm90YXRlIDAgL1RyYW5zIDw8ICA+PiANCi0gIC9UeXBlIC9QYWdlID4+DQot
ZW5kb2JqDQotMjMgMCBvYmoNCi08PCAvQ29udGVudHMgNjMgMCBSIC9NZWRpYUJveCBbIDAgMCA1
OTUuMjc1NiA4NDEuODg5OCBdIC9QYXJlbnQgNTUgMCBSIC9SZXNvdXJjZXMgPDwgL0ZvbnQgMSAw
IFIgL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJIF0gPj4gL1Jv
dGF0ZSAwIC9UcmFucyA8PCAgPj4gDQotICAvVHlwZSAvUGFnZSA+Pg0KLWVuZG9iag0KLTI0IDAg
b2JqDQotPDwgL0NvbnRlbnRzIDY0IDAgUiAvTWVkaWFCb3ggWyAwIDAgNTk1LjI3NTYgODQxLjg4
OTggXSAvUGFyZW50IDU1IDAgUiAvUmVzb3VyY2VzIDw8IC9Gb250IDEgMCBSIC9Qcm9jU2V0IFsg
L1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdID4+IC9Sb3RhdGUgMCAvVHJhbnMg
PDwgID4+IA0KLSAgL1R5cGUgL1BhZ2UgPj4NCi1lbmRvYmoNCi0yNSAwIG9iag0KLTw8IC9Db250
ZW50cyA2NSAwIFIgL01lZGlhQm94IFsgMCAwIDU5NS4yNzU2IDg0MS44ODk4IF0gL1BhcmVudCA1
NSAwIFIgL1Jlc291cmNlcyA8PCAvRm9udCAxIDAgUiAvUHJvY1NldCBbIC9QREYgL1RleHQgL0lt
YWdlQiAvSW1hZ2VDIC9JbWFnZUkgXSA+PiAvUm90YXRlIDAgL1RyYW5zIDw8ICA+PiANCi0gIC9U
eXBlIC9QYWdlID4+DQotZW5kb2JqDQotMjYgMCBvYmoNCi08PCAvQ29udGVudHMgNjYgMCBSIC9N
ZWRpYUJveCBbIDAgMCA1OTUuMjc1NiA4NDEuODg5OCBdIC9QYXJlbnQgNTUgMCBSIC9SZXNvdXJj
ZXMgPDwgL0ZvbnQgMSAwIFIgL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUIgL0ltYWdlQyAv
SW1hZ2VJIF0gPj4gL1JvdGF0ZSAwIC9UcmFucyA8PCAgPj4gDQotICAvVHlwZSAvUGFnZSA+Pg0K
LWVuZG9iag0KLTI3IDAgb2JqDQotPDwgL0JvcmRlciBbIDAgMCAwIF0gL0NvbnRlbnRzICgpIC9E
ZXN0IFsgMjYgMCBSIC9YWVogNjIuNjkyOTEgNjEwLjgyMzYgMCBdIC9SZWN0IFsgMzA5LjQwOTQg
Mjk5LjU3MzYgMzQwLjY0NjEgMzExLjU3MzYgXSAvU3VidHlwZSAvTGluayAvVHlwZSAvQW5ub3Qg
Pj4NCi1lbmRvYmoNCi0yOCAwIG9iag0KLTw8IC9Bbm5vdHMgWyAyNyAwIFIgXSAvQ29udGVudHMg
NjcgMCBSIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1NiA4NDEuODg5OCBdIC9QYXJlbnQgNTUgMCBS
IC9SZXNvdXJjZXMgPDwgL0ZvbnQgMSAwIFIgL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUIg
L0ltYWdlQyAvSW1hZ2VJIF0gPj4gL1JvdGF0ZSAwIA0KLSAgL1RyYW5zIDw8ICA+PiAvVHlwZSAv
UGFnZSA+Pg0KLWVuZG9iag0KLTI5IDAgb2JqDQotPDwgL091dGxpbmVzIDMxIDAgUiAvUGFnZUxh
YmVscyA2OCAwIFIgL1BhZ2VNb2RlIC9Vc2VOb25lIC9QYWdlcyA1NSAwIFIgL1R5cGUgL0NhdGFs
b2cgPj4NCi1lbmRvYmoNCi0zMCAwIG9iag0KLTw8IC9BdXRob3IgKCkgL0NyZWF0aW9uRGF0ZSAo
RDoyMDE2MDUxNTIwMjgzMSswOCcwMCcpIC9DcmVhdG9yIChcKHVuc3BlY2lmaWVkXCkpIC9LZXl3
b3JkcyAoKSAvUHJvZHVjZXIgKFJlcG9ydExhYiBQREYgTGlicmFyeSAtIHd3dy5yZXBvcnRsYWIu
Y29tKSAvU3ViamVjdCAoXCh1bnNwZWNpZmllZFwpKSANCi0gIC9UaXRsZSAoZW51bSAtLS0gc3Vw
cG9ydCBmb3IgZW51bWVyYXRpb25zKSA+Pg0KLWVuZG9iag0KLTMxIDAgb2JqDQotPDwgL0NvdW50
IDI3IC9GaXJzdCAzMiAwIFIgL0xhc3QgNTEgMCBSIC9UeXBlIC9PdXRsaW5lcyA+Pg0KLWVuZG9i
ag0KLTMyIDAgb2JqDQotPDwgL0Rlc3QgWyAxMCAwIFIgL1hZWiA2Mi42OTI5MSA2NjAuNjc3MiAw
IF0gL05leHQgMzMgMCBSIC9QYXJlbnQgMzEgMCBSIC9UaXRsZSAoTW9kdWxlIENvbnRlbnRzKSA+
Pg0KLWVuZG9iag0KLTMzIDAgb2JqDQotPDwgL0Rlc3QgWyAxMCAwIFIgL1hZWiA2Mi42OTI5MSA0
NzcuNjc3MiAwIF0gL05leHQgMzQgMCBSIC9QYXJlbnQgMzEgMCBSIC9QcmV2IDMyIDAgUiAvVGl0
bGUgKENyZWF0aW5nIGFuIEVudW0pID4+DQotZW5kb2JqDQotMzQgMCBvYmoNCi08PCAvRGVzdCBb
IDExIDAgUiAvWFlaIDYyLjY5MjkxIDE5Ny4wMjM2IDAgXSAvTmV4dCAzNSAwIFIgL1BhcmVudCAz
MSAwIFIgL1ByZXYgMzMgMCBSIC9UaXRsZSAoUHJvZ3JhbW1hdGljIGFjY2VzcyB0byBlbnVtZXJh
dGlvbiBtZW1iZXJzIGFuZCB0aGVpciBhdHRyaWJ1dGVzKSA+Pg0KLWVuZG9iag0KLTM1IDAgb2Jq
DQotPDwgL0Rlc3QgWyAxMiAwIFIgL1hZWiA2Mi42OTI5MSA1MDEuNDIzNiAwIF0gL05leHQgMzYg
MCBSIC9QYXJlbnQgMzEgMCBSIC9QcmV2IDM0IDAgUiAvVGl0bGUgKER1cGxpY2F0aW5nIGVudW0g
bWVtYmVycyBhbmQgdmFsdWVzKSA+Pg0KLWVuZG9iag0KLTM2IDAgb2JqDQotPDwgL0Rlc3QgWyAx
MyAwIFIgL1hZWiA2Mi42OTI5MSAyMTUuMDIzNiAwIF0gL05leHQgMzcgMCBSIC9QYXJlbnQgMzEg
MCBSIC9QcmV2IDM1IDAgUiAvVGl0bGUgKENvbXBhcmlzb25zKSA+Pg0KLWVuZG9iag0KLTM3IDAg
b2JqDQotPDwgL0Rlc3QgWyAxOCAwIFIgL1hZWiA2Mi42OTI5MSAzNjIuNDIzNiAwIF0gL05leHQg
MzggMCBSIC9QYXJlbnQgMzEgMCBSIC9QcmV2IDM2IDAgUiAvVGl0bGUgKEFsbG93ZWQgbWVtYmVy
cyBhbmQgYXR0cmlidXRlcyBvZiBlbnVtZXJhdGlvbnMpID4+DQotZW5kb2JqDQotMzggMCBvYmoN
Ci08PCAvRGVzdCBbIDIxIDAgUiAvWFlaIDYyLjY5MjkxIDQ5OC42MjM2IDAgXSAvTmV4dCAzOSAw
IFIgL1BhcmVudCAzMSAwIFIgL1ByZXYgMzcgMCBSIC9UaXRsZSAoUmVzdHJpY3RlZCBzdWJjbGFz
c2luZyBvZiBlbnVtZXJhdGlvbnMpID4+DQotZW5kb2JqDQotMzkgMCBvYmoNCi08PCAvRGVzdCBb
IDIxIDAgUiAvWFlaIDYyLjY5MjkxIDE3My4yMjM2IDAgXSAvTmV4dCA0MCAwIFIgL1BhcmVudCAz
MSAwIFIgL1ByZXYgMzggMCBSIC9UaXRsZSAoUGlja2xpbmcpID4+DQotZW5kb2JqDQotNDAgMCBv
YmoNCi08PCAvRGVzdCBbIDIyIDAgUiAvWFlaIDYyLjY5MjkxIDYzNS44MjM2IDAgXSAvTmV4dCA0
MSAwIFIgL1BhcmVudCAzMSAwIFIgL1ByZXYgMzkgMCBSIC9UaXRsZSAoRnVuY3Rpb25hbCBBUEkp
ID4+DQotZW5kb2JqDQotNDEgMCBvYmoNCi08PCAvQ291bnQgMiAvRGVzdCBbIDIyIDAgUiAvWFla
IDYyLjY5MjkxIDE4Ny4yMjM2IDAgXSAvRmlyc3QgNDIgMCBSIC9MYXN0IDQzIDAgUiAvTmV4dCA0
NCAwIFIgL1BhcmVudCAzMSAwIFIgDQotICAvUHJldiA0MCAwIFIgL1RpdGxlIChEZXJpdmVkIEVu
dW1lcmF0aW9ucykgPj4NCi1lbmRvYmoNCi00MiAwIG9iag0KLTw8IC9EZXN0IFsgMjIgMCBSIC9Y
WVogNjIuNjkyOTEgMTU0LjIyMzYgMCBdIC9OZXh0IDQzIDAgUiAvUGFyZW50IDQxIDAgUiAvVGl0
bGUgKEludEVudW0pID4+DQotZW5kb2JqDQotNDMgMCBvYmoNCi08PCAvRGVzdCBbIDIzIDAgUiAv
WFlaIDYyLjY5MjkxIDIxNy40MjM2IDAgXSAvUGFyZW50IDQxIDAgUiAvUHJldiA0MiAwIFIgL1Rp
dGxlIChPdGhlcnMpID4+DQotZW5kb2JqDQotNDQgMCBvYmoNCi08PCAvQ291bnQgMSAvRGVzdCBb
IDI0IDAgUiAvWFlaIDYyLjY5MjkxIDU2Ny4wMjM2IDAgXSAvRmlyc3QgNDUgMCBSIC9MYXN0IDQ1
IDAgUiAvTmV4dCA0NiAwIFIgL1BhcmVudCAzMSAwIFIgDQotICAvUHJldiA0MSAwIFIgL1RpdGxl
IChEZWNvcmF0b3JzKSA+Pg0KLWVuZG9iag0KLTQ1IDAgb2JqDQotPDwgL0Rlc3QgWyAyNCAwIFIg
L1hZWiA2Mi42OTI5MSA1MzQuMDIzNiAwIF0gL1BhcmVudCA0NCAwIFIgL1RpdGxlICh1bmlxdWUp
ID4+DQotZW5kb2JqDQotNDYgMCBvYmoNCi08PCAvQ291bnQgNCAvRGVzdCBbIDI0IDAgUiAvWFla
IDYyLjY5MjkxIDM1Ni44MjM2IDAgXSAvRmlyc3QgNDcgMCBSIC9MYXN0IDUwIDAgUiAvTmV4dCA1
MSAwIFIgL1BhcmVudCAzMSAwIFIgDQotICAvUHJldiA0NCAwIFIgL1RpdGxlIChJbnRlcmVzdGlu
ZyBleGFtcGxlcykgPj4NCi1lbmRvYmoNCi00NyAwIG9iag0KLTw8IC9EZXN0IFsgMjQgMCBSIC9Y
WVogNjIuNjkyOTEgMjgxLjgyMzYgMCBdIC9OZXh0IDQ4IDAgUiAvUGFyZW50IDQ2IDAgUiAvVGl0
bGUgKEF1dG9OdW1iZXIpID4+DQotZW5kb2JqDQotNDggMCBvYmoNCi08PCAvRGVzdCBbIDI1IDAg
UiAvWFlaIDYyLjY5MjkxIDY0MS44MjM2IDAgXSAvTmV4dCA0OSAwIFIgL1BhcmVudCA0NiAwIFIg
L1ByZXYgNDcgMCBSIC9UaXRsZSAoVW5pcXVlRW51bSkgPj4NCi1lbmRvYmoNCi00OSAwIG9iag0K
LTw8IC9EZXN0IFsgMjUgMCBSIC9YWVogNjIuNjkyOTEgMzU2LjYyMzYgMCBdIC9OZXh0IDUwIDAg
UiAvUGFyZW50IDQ2IDAgUiAvUHJldiA0OCAwIFIgL1RpdGxlIChPcmRlcmVkRW51bSkgPj4NCi1l
bmRvYmoNCi01MCAwIG9iag0KLTw8IC9EZXN0IFsgMjYgMCBSIC9YWVogNjIuNjkyOTEgNjA3Ljgy
MzYgMCBdIC9QYXJlbnQgNDYgMCBSIC9QcmV2IDQ5IDAgUiAvVGl0bGUgKFBsYW5ldCkgPj4NCi1l
bmRvYmoNCi01MSAwIG9iag0KLTw8IC9Db3VudCAzIC9EZXN0IFsgMjYgMCBSIC9YWVogNjIuNjky
OTEgMjc0LjYyMzYgMCBdIC9GaXJzdCA1MiAwIFIgL0xhc3QgNTQgMCBSIC9QYXJlbnQgMzEgMCBS
IC9QcmV2IDQ2IDAgUiANCi0gIC9UaXRsZSAoSG93IGFyZSBFbnVtcyBkaWZmZXJlbnQ/KSA+Pg0K
LWVuZG9iag0KLTUyIDAgb2JqDQotPDwgL0Rlc3QgWyAyNiAwIFIgL1hZWiA2Mi42OTI5MSAyMTEu
NjIzNiAwIF0gL05leHQgNTMgMCBSIC9QYXJlbnQgNTEgMCBSIC9UaXRsZSAoRW51bSBDbGFzc2Vz
KSA+Pg0KLWVuZG9iag0KLTUzIDAgb2JqDQotPDwgL0Rlc3QgWyAyOCAwIFIgL1hZWiA2Mi42OTI5
MSA2NjQuMDIzNiAwIF0gL05leHQgNTQgMCBSIC9QYXJlbnQgNTEgMCBSIC9QcmV2IDUyIDAgUiAv
VGl0bGUgKEVudW0gTWVtYmVycyBcKGFrYSBpbnN0YW5jZXNcKSkgPj4NCi1lbmRvYmoNCi01NCAw
IG9iag0KLTw8IC9EZXN0IFsgMjggMCBSIC9YWVogNjIuNjkyOTEgNTkyLjAyMzYgMCBdIC9QYXJl
bnQgNTEgMCBSIC9QcmV2IDUzIDAgUiAvVGl0bGUgKEZpbmVyIFBvaW50cykgPj4NCi1lbmRvYmoN
Ci01NSAwIG9iag0KLTw8IC9Db3VudCAxMiAvS2lkcyBbIDEwIDAgUiAxMSAwIFIgMTIgMCBSIDEz
IDAgUiAxOCAwIFIgMjEgMCBSIDIyIDAgUiAyMyAwIFIgMjQgMCBSIDI1IDAgUiANCi0gIDI2IDAg
UiAyOCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4NCi1lbmRvYmoNCi01NiAwIG9iag0KLTw8IC9MZW5n
dGggNjQ1OCA+Pg0KLXN0cmVhbQ0KLTEgMCAwIDEgMCAwIGNtICBCVCAvRjEgMTIgVGYgMTQuNCBU
TCBFVA0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDc0MS4wMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEg
MCA0IFRtIDczLjcxNDg4IDAgVGQgMjQgVEwgL0YyIDIwIFRmIDAgMCAwIHJnIChlbnVtICkgVGog
L0YzIDIwIFRmIDAgMCAwIHJnICgtLS0gc3VwcG9ydCBmb3IgZW51bWVyYXRpb25zKSBUaiBUKiAt
NzMuNzE0ODggMCBUZCBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNzAyLjY3NzIg
Y20NCi1uIDAgMTQuMTczMjMgbSA0NjkuODg5OCAxNC4xNzMyMyBsIFMNCi1RDQotcQ0KLTEgMCAw
IDEgNjIuNjkyOTEgNjcyLjY3NzIgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIDIuMDkxMzE4
IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoQW4gZW51bWVyYXRpb24gaXMgYSBzZXQgb2Yg
c3ltYm9saWMgbmFtZXMgXChtZW1iZXJzXCkgYm91bmQgdG8gdW5pcXVlLCBjb25zdGFudCB2YWx1
ZXMuIFdpdGhpbiBhbikgVGogVCogMCBUdyAoZW51bWVyYXRpb24sIHRoZSBtZW1iZXJzIGNhbiBi
ZSBjb21wYXJlZCBieSBpZGVudGl0eSwgYW5kIHRoZSBlbnVtZXJhdGlvbiBpdHNlbGYgY2FuIGJl
IGl0ZXJhdGVkIG92ZXIuKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEg
NjM5LjY3NzIgY20NCi1xDQotQlQgMSAwIDAgMSAwIDMuNSBUbSAyMSBUTCAvRjMgMTcuNSBUZiAw
IDAgMCByZyAoTW9kdWxlIENvbnRlbnRzKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEg
NjIuNjkyOTEgNjA5LjY3NzIgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIDIuMDI3NDg1IFR3
IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoVGhpcyBtb2R1bGUgZGVmaW5lcyB0d28gZW51bWVy
YXRpb24gY2xhc3NlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlZmluZSB1bmlxdWUgc2V0cyBvZiBu
YW1lcyBhbmQpIFRqIFQqIDAgVHcgKHZhbHVlczogKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVu
dW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGFuZCApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAo
SW50RW51bSkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICguIEl0IGFsc28gZGVmaW5lcyBvbmUgZGVj
b3JhdG9yLCApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAodW5pcXVlKSBUaiAvRjEgMTAgVGYgMCAw
IDAgcmcgKC4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA1OTEuNjc3
MiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAyIFRtIC9GNCAxMCBUZiAxMiBUTCAo
RW51bSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU2MS42NzcyIGNt
DQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAxLjEyODQ0MyBUdyAxMiBUTCAvRjEgMTAgVGYgMCAw
IDAgcmcgKEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIGVudW1lcmF0ZWQgY29uc3RhbnRzLiBTZWUg
c2VjdGlvbiApIFRqIDAgMCAuNTAxOTYxIHJnIChGdW5jdGlvbmFsIEFQSSApIFRqIDAgMCAwIHJn
IChmb3IgYW4gYWx0ZXJuYXRlIGNvbnN0cnVjdGlvbikgVGogVCogMCBUdyAoc3ludGF4LikgVGog
VCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU0My42NzcyIGNtDQotcQ0KLTAg
MCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0Y0IDEwIFRmIDEyIFRMIChJbnRFbnVtKSBUaiBU
KiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNTI1LjY3NzIgY20NCi1xDQotQlQg
MSAwIDAgMSAwIDIgVG0gMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChCYXNlIGNsYXNzIGZvciBj
cmVhdGluZyBlbnVtZXJhdGVkIGNvbnN0YW50cyB0aGF0IGFyZSBhbHNvIHN1YmNsYXNzZXMgb2Yg
KSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKGludCkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICguKSBU
aiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNTA3LjY3NzIgY20NCi1xDQot
MCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAvRjQgMTAgVGYgMTIgVEwgKHVuaXF1ZSkgVGog
VCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDQ4OS42NzcyIGNtDQotcQ0KLTAg
MCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIChFbnVtIGNsYXNzIGRl
Y29yYXRvciB0aGF0IGVuc3VyZXMgb25seSBvbmUgbmFtZSBpcyBib3VuZCB0byBhbnkgb25lIHZh
bHVlLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDQ1Ni42NzcyIGNt
DQotcQ0KLUJUIDEgMCAwIDEgMCAzLjUgVG0gMjEgVEwgL0YzIDE3LjUgVGYgMCAwIDAgcmcgKENy
ZWF0aW5nIGFuIEVudW0pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA0
MTQuNjc3MiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMjYgVG0gMi40MzI2NTEgVHcgMTIgVEwgL0Yx
IDEwIFRmIDAgMCAwIHJnIChFbnVtZXJhdGlvbnMgYXJlIGNyZWF0ZWQgdXNpbmcgdGhlICkgVGog
L0Y0IDEwIFRmIDAgMCAwIHJnIChjbGFzcyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoc3ludGF4
LCB3aGljaCBtYWtlcyB0aGVtIGVhc3kgdG8gcmVhZCBhbmQgd3JpdGUuIEFuKSBUaiBUKiAwIFR3
IC41MzM1NTUgVHcgKGFsdGVybmF0aXZlIGNyZWF0aW9uIG1ldGhvZCBpcyBkZXNjcmliZWQgaW4g
KSBUaiAwIDAgLjUwMTk2MSByZyAoRnVuY3Rpb25hbCBBUEkpIFRqIDAgMCAwIHJnICguIFRvIGRl
ZmluZSBhbiBlbnVtZXJhdGlvbiwgc3ViY2xhc3MgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVu
dW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGFzKSBUaiBUKiAwIFR3IChmb2xsb3dzOikgVGog
VCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDMzMy40NzcyIGNtDQotcQ0KLXEN
Ci0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAu
NjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1u
IC02IC02IDQ2OC42ODk4IDcyIHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgNTAgVG0gMTIg
VEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggZnJvbSBlbnVtIGlt
cG9ydCBFbnVtKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNsYXNzIENvbG9yXChFbnVt
XCk6KSBUaiBUKiAoLi4uICAgICByZWQgPSAxKSBUaiBUKiAoLi4uICAgICBncmVlbiA9IDIpIFRq
IFQqICguLi4gICAgIGJsdWUgPSAzKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0K
LTEgMCAwIDEgNjIuNjkyOTEgMzEzLjQ3NzIgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAx
IDAgMiBUbSAvRjEgMTAgVGYgMTIgVEwgKE5vdGU6IE5vbWVuY2xhdHVyZSkgVGogVCogRVQNCi1R
DQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDMwNy40NzcyIGNtDQotUQ0KLXENCi0xIDAgMCAx
IDYyLjY5MjkxIDIyOS40NzcyIGNtDQotMCAwIDAgcmcNCi1CVCAvRjEgMTAgVGYgMTIgVEwgRVQN
Ci1CVCAxIDAgMCAxIDAgMiBUbSAgVCogRVQNCi1xDQotMSAwIDAgMSAyMCA3MiBjbQ0KLVENCi1x
DQotMSAwIDAgMSAyMCA3MiBjbQ0KLVENCi1xDQotMSAwIDAgMSAyMCA2MCBjbQ0KLTAgMCAwIHJn
DQotQlQgL0YxIDEwIFRmIDEyIFRMIEVUDQotcQ0KLTEgMCAwIDEgNiAtMyBjbQ0KLXENCi0wIDAg
MCByZw0KLUJUIDEgMCAwIDEgMCAyIFRtIC9GMSAxMCBUZiAxMiBUTCAxMC41IDAgVGQgKFwxNzcp
IFRqIFQqIC0xMC41IDAgVGQgRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDIzIC0zIGNtDQotcQ0K
LUJUIDEgMCAwIDEgMCAyIFRtIDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoVGhlIGNsYXNzICkg
VGogL0Y0IDEwIFRmIDAgMCAwIHJnIChDb2xvciApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoaXMg
YW4gKSBUaiAvRjUgMTAgVGYgKGVudW1lcmF0aW9uICkgVGogL0YxIDEwIFRmIChcKG9yICkgVGog
L0Y1IDEwIFRmIChlbnVtKSBUaiAvRjEgMTAgVGYgKFwpKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0K
LVENCi1RDQotcQ0KLTEgMCAwIDEgMjAgNTQgY20NCi1RDQotcQ0KLTEgMCAwIDEgMjAgMzAgY20N
Ci0wIDAgMCByZw0KLUJUIC9GMSAxMCBUZiAxMiBUTCBFVA0KLXENCi0xIDAgMCAxIDYgOSBjbQ0K
LXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAyIFRtIC9GMSAxMCBUZiAxMiBUTCAxMC41IDAg
VGQgKFwxNzcpIFRqIFQqIC0xMC41IDAgVGQgRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDIzIC0z
IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSA1LjU2ODg2MyBUdyAxMiBUTCAvRjEgMTAgVGYg
MCAwIDAgcmcgKFRoZSBhdHRyaWJ1dGVzICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChDb2xvci5y
ZWQpIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoLCApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoQ29s
b3IuZ3JlZW4pIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoLCBldGMuLCBhcmUgKSBUaiAvRjUgMTAg
VGYgKGVudW1lcmF0aW9uIG1lbWJlcnMgKSBUaiAvRjEgMTAgVGYgKFwob3IgKSBUaiAvRjUgMTAg
VGYgKGVudW0pIFRqIFQqIDAgVHcgKG1lbWJlcnMpIFRqIC9GMSAxMCBUZiAoXCkuKSBUaiBUKiBF
VA0KLVENCi1RDQotcQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgMjAgMjQgY20NCi1RDQotcQ0KLTEg
MCAwIDEgMjAgMCBjbQ0KLTAgMCAwIHJnDQotQlQgL0YxIDEwIFRmIDEyIFRMIEVUDQotcQ0KLTEg
MCAwIDEgNiA5IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRm
IDEyIFRMIDEwLjUgMCBUZCAoXDE3NykgVGogVCogLTEwLjUgMCBUZCBFVA0KLVENCi1RDQotcQ0K
LTEgMCAwIDEgMjMgLTMgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIDEuNDcxMzE4IFR3IDEy
IFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoVGhlIGVudW0gbWVtYmVycyBoYXZlICkgVGogL0Y1IDEw
IFRmIChuYW1lcyApIFRqIC9GMSAxMCBUZiAoYW5kICkgVGogL0Y1IDEwIFRmICh2YWx1ZXMgKSBU
aiAvRjEgMTAgVGYgKFwodGhlIG5hbWUgb2YgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKENvbG9y
LnJlZCApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoaXMgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcg
KHJlZCkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICgsIHRoZSB2YWx1ZSBvZikgVGogVCogMCBUdyAv
RjQgMTAgVGYgMCAwIDAgcmcgKENvbG9yLmJsdWUgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlz
ICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnICgzKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKCwgZXRj
LlwpKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgMjAgMCBjbQ0K
LVENCi1xDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAyMjkuNDc3MiBjbQ0KLVENCi1x
DQotMSAwIDAgMSA2Mi42OTI5MSAyMTEuNDc3MiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAw
IDEgMCAyIFRtIC9GMSAxMCBUZiAxMiBUTCAoTm90ZTopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQot
MSAwIDAgMSA2Mi42OTI5MSAyMDUuNDc3MiBjbQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAx
ODEuNDc3MiBjbQ0KLTAgMCAwIHJnDQotQlQgL0YxIDEwIFRmIDEyIFRMIEVUDQotQlQgMSAwIDAg
MSAwIDIgVG0gIFQqIEVUDQotcQ0KLTEgMCAwIDEgMjAgMCBjbQ0KLXENCi1CVCAxIDAgMCAxIDAg
MTQgVG0gLjEyNjIzNSBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKEV2ZW4gdGhvdWdoIHdl
IHVzZSB0aGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKGNsYXNzICkgVGogL0YxIDEwIFRmIDAg
MCAwIHJnIChzeW50YXggdG8gY3JlYXRlIEVudW1zLCBFbnVtcyBhcmUgbm90IG5vcm1hbCBQeXRo
b24gY2xhc3Nlcy4gU2VlKSBUaiBUKiAwIFR3IDAgMCAuNTAxOTYxIHJnIChIb3cgYXJlIEVudW1z
IGRpZmZlcmVudD8gKSBUaiAwIDAgMCByZyAoZm9yIG1vcmUgZGV0YWlscy4pIFRqIFQqIEVUDQot
UQ0KLVENCi1xDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxODEuNDc3MiBjbQ0KLVEN
Ci1xDQotMSAwIDAgMSA2Mi42OTI5MSAxNjMuNDc3MiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEg
MCAwIDEgMCAyIFRtIC9GMSAxMCBUZiAxMiBUTCAoRW51bWVyYXRpb24gbWVtYmVycyBoYXZlIGh1
bWFuIHJlYWRhYmxlIHN0cmluZyByZXByZXNlbnRhdGlvbnM6KSBUaiBUKiBFVA0KLVENCi1RDQot
cQ0KLTEgMCAwIDEgNjIuNjkyOTEgMTE4LjI3NzIgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNt
DQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBS
Rw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTgg
MzYgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAw
IDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBwcmludFwoQ29sb3IucmVkXCkpIFRqIFQqIChD
b2xvci5yZWQpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42
OTI5MSA5OC4yNzcxNyBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMiBUbSAxMiBUTCAvRjEgMTAgVGYg
MCAwIDAgcmcgKC4uLndoaWxlIHRoZWlyICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChyZXByICkg
VGogL0YxIDEwIFRmIDAgMCAwIHJnIChoYXMgbW9yZSBpbmZvcm1hdGlvbjopIFRqIFQqIEVUDQot
UQ0KLVENCi0gDQotZW5kc3RyZWFtDQotZW5kb2JqDQotNTcgMCBvYmoNCi08PCAvTGVuZ3RoIDQx
NzQgPj4NCi1zdHJlYW0NCi0xIDAgMCAxIDAgMCBjbSAgQlQgL0YxIDEyIFRmIDE0LjQgVEwgRVQN
Ci1xDQotMSAwIDAgMSA2Mi42OTI5MSA3MjcuODIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAg
Y20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1
IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5
OCAzNiByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIDEyIFRMIC9GNCAxMCBUZiAw
IDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIHByaW50XChyZXByXChDb2xvci5yZWRcKVwp
KSBUaiBUKiAoPCkgVGogKENvbG9yLnJlZDogMSkgVGogKD4pIFRqIFQqIEVUDQotUQ0KLVENCi1R
DQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA3MDcuODIzNiBjbQ0KLXENCi1CVCAxIDAg
MCAxIDAgMiBUbSAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFRoZSApIFRqIC9GNSAxMCBUZiAo
dHlwZSApIFRqIC9GMSAxMCBUZiAob2YgYW4gZW51bWVyYXRpb24gbWVtYmVyIGlzIHRoZSBlbnVt
ZXJhdGlvbiBpdCBiZWxvbmdzIHRvOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDYyNi42MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAx
IDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2
MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDcyIHJlIEIqDQotUQ0K
LXENCi1CVCAxIDAgMCAxIDAgNTAgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAo
PikgVGogKD4pIFRqICggdHlwZVwoQ29sb3IucmVkXCkpIFRqIFQqICg8KSBUaiAoZW51bSAnQ29s
b3InKSBUaiAoPikgVGogIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggaXNpbnN0YW5jZVwoQ29s
b3IuZ3JlZW4sIENvbG9yXCkpIFRqIFQqIChUcnVlKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBU
aiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNjA2LjYy
MzYgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAvRjEgMTAgVGYgMTIgVEwg
KEVudW0gbWVtYmVycyBhbHNvIGhhdmUgYSBwcm9wZXJ0eSB0aGF0IGNvbnRhaW5zIGp1c3QgdGhl
aXIgaXRlbSBuYW1lOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU2
MS40MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYg
Y20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYw
Nzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDM2IHJlIEIqDQotUQ0KLXENCi1CVCAx
IDAgMCAxIDAgMTQgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4p
IFRqICggcHJpbnRcKENvbG9yLnJlZC5uYW1lXCkpIFRqIFQqIChyZWQpIFRqIFQqIEVUDQotUQ0K
LVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA1MjkuNDIzNiBjbQ0KLXENCi1C
VCAxIDAgMCAxIDAgMTQgVG0gLjQ2NDk4NSBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKEVu
dW1lcmF0aW9ucyBzdXBwb3J0IGl0ZXJhdGlvbi4gSW4gUHl0aG9uIDMueCBkZWZpbml0aW9uIG9y
ZGVyIGlzIHVzZWQ7IGluIFB5dGhvbiAyLnggdGhlIGRlZmluaXRpb24gb3JkZXIgaXMpIFRqIFQq
IDAgVHcgKG5vdCBhdmFpbGFibGUsIGJ1dCBjbGFzcyBhdHRyaWJ1dGUgKSBUaiAvRjQgMTAgVGYg
MCAwIDAgcmcgKF9fb3JkZXJfXyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoaXMgc3VwcG9ydGVk
OyBvdGhlcndpc2UsIHZhbHVlIG9yZGVyIGlzIHVzZWQ6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0K
LTEgMCAwIDEgNjIuNjkyOTEgMzQwLjIyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQot
cQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0K
LS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggMTgw
IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMTU4IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAg
MCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNsYXNzIFNoYWtlXChFbnVtXCk6KSBUaiBUKiAo
Li4uICAgX19vcmRlcl9fID0gJ3ZhbmlsbGEgY2hvY29sYXRlIGNvb2tpZXMgbWludCcgICMgb25s
eSBuZWVkZWQgaW4gMi54KSBUaiBUKiAoLi4uICAgdmFuaWxsYSA9IDcpIFRqIFQqICguLi4gICBj
aG9jb2xhdGUgPSA0KSBUaiBUKiAoLi4uICAgY29va2llcyA9IDkpIFRqIFQqICguLi4gICBtaW50
ID0gMykgVGogVCogKC4uLikgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBmb3Igc2hha2Ug
aW4gU2hha2U6KSBUaiBUKiAoLi4uICAgcHJpbnRcKHNoYWtlXCkpIFRqIFQqICguLi4pIFRqIFQq
IChTaGFrZS52YW5pbGxhKSBUaiBUKiAoU2hha2UuY2hvY29sYXRlKSBUaiBUKiAoU2hha2UuY29v
a2llcykgVGogVCogKFNoYWtlLm1pbnQpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1x
DQotMSAwIDAgMSA2Mi42OTI5MSAzMDguMjIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0g
MS44OTM3MzUgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChUaGUgKSBUaiAvRjQgMTAgVGYg
MCAwIDAgcmcgKF9fb3JkZXJfXyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoYXR0cmlidXRlIGlz
IGFsd2F5cyByZW1vdmVkLCBhbmQgaW4gMy54IGl0IGlzIGFsc28gaWdub3JlZCBcKG9yZGVyIGlz
IGRlZmluaXRpb24gb3JkZXJcKTspIFRqIFQqIDAgVHcgKGhvd2V2ZXIsIGluIHRoZSBzdGRsaWIg
dmVyc2lvbiBpdCB3aWxsIGJlIGlnbm9yZWQgYnV0IG5vdCByZW1vdmVkLikgVGogVCogRVQNCi1R
DQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDI5MC4yMjM2IGNtDQotcQ0KLTAgMCAwIHJnDQot
QlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIChFbnVtZXJhdGlvbiBtZW1iZXJzIGFy
ZSBoYXNoYWJsZSwgc28gdGhleSBjYW4gYmUgdXNlZCBpbiBkaWN0aW9uYXJpZXMgYW5kIHNldHM6
KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMjA5LjAyMzYgY20NCi1x
DQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYy
NzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSBy
Zw0KLW4gLTYgLTYgNDY4LjY4OTggNzIgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCA1MCBU
bSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBhcHBsZXMg
PSB7fSkgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBhcHBsZXNbQ29sb3IucmVkXSA9ICdy
ZWQgZGVsaWNpb3VzJykgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBhcHBsZXNbQ29sb3Iu
Z3JlZW5dID0gJ2dyYW5ueSBzbWl0aCcpIFRqIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggYXBw
bGVzID09IHtDb2xvci5yZWQ6ICdyZWQgZGVsaWNpb3VzJywgQ29sb3IuZ3JlZW46ICdncmFubnkg
c21pdGgnfSkgVGogVCogKFRydWUpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQot
MSAwIDAgMSA2Mi42OTI5MSAxNTUuMDIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMjQuNSBUbSAy
MSBUTCAvRjMgMTcuNSBUZiAwIDAgMCByZyAoUHJvZ3JhbW1hdGljIGFjY2VzcyB0byBlbnVtZXJh
dGlvbiBtZW1iZXJzIGFuZCkgVGogVCogKHRoZWlyIGF0dHJpYnV0ZXMpIFRqIFQqIEVUDQotUQ0K
LVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxMTMuMDIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAg
MjYgVG0gMy41NDE3OTcgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChTb21ldGltZXMgaXQn
cyB1c2VmdWwgdG8gYWNjZXNzIG1lbWJlcnMgaW4gZW51bWVyYXRpb25zIHByb2dyYW1tYXRpY2Fs
bHkgXChpLmUuIHNpdHVhdGlvbnMgd2hlcmUpIFRqIFQqIDAgVHcgLjkyMjY1MSBUdyAvRjQgMTAg
VGYgMCAwIDAgcmcgKENvbG9yLnJlZCApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAod29uJ3QgZG8g
YmVjYXVzZSB0aGUgZXhhY3QgY29sb3IgaXMgbm90IGtub3duIGF0IHByb2dyYW0td3JpdGluZyB0
aW1lXCkuICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAw
IHJnIChhbGxvd3Mgc3VjaCkgVGogVCogMCBUdyAoYWNjZXNzOikgVGogVCogRVQNCi1RDQotUQ0K
LSANCi1lbmRzdHJlYW0NCi1lbmRvYmoNCi01OCAwIG9iag0KLTw8IC9MZW5ndGggMzc5MSA+Pg0K
LXN0cmVhbQ0KLTEgMCAwIDEgMCAwIGNtICBCVCAvRjEgMTIgVGYgMTQuNCBUTCBFVA0KLXENCi0x
IDAgMCAxIDYyLjY5MjkxIDcwMy44MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXEN
Ci0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0u
NSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDYwIHJl
IEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMzggVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJn
ICg+KSBUaiAoPikgVGogKD4pIFRqICggQ29sb3JcKDFcKSkgVGogVCogKDwpIFRqIChDb2xvci5y
ZWQ6IDEpIFRqICg+KSBUaiAgVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBDb2xvclwoM1wpKSBU
aiBUKiAoPCkgVGogKENvbG9yLmJsdWU6IDMpIFRqICg+KSBUaiBUKiBFVA0KLVENCi1RDQotUQ0K
LVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNjgzLjgyMzYgY20NCi1xDQotQlQgMSAwIDAg
MSAwIDIgVG0gMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChJZiB5b3Ugd2FudCB0byBhY2Nlc3Mg
ZW51bSBtZW1iZXJzIGJ5ICkgVGogL0Y1IDEwIFRmIChuYW1lKSBUaiAvRjEgMTAgVGYgKCwgdXNl
IGl0ZW0gYWNjZXNzOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDYx
NC42MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYg
Y20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYw
Nzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDYwIHJlIEIqDQotUQ0KLXENCi1CVCAx
IDAgMCAxIDAgMzggVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4p
IFRqICggQ29sb3JbJ3JlZCddKSBUaiBUKiAoPCkgVGogKENvbG9yLnJlZDogMSkgVGogKD4pIFRq
ICBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIENvbG9yWydncmVlbiddKSBUaiBUKiAoPCkgVGog
KENvbG9yLmdyZWVuOiAyKSBUaiAoPikgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXEN
Ci0xIDAgMCAxIDYyLjY5MjkxIDU5NC42MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyIFRtIDEy
IFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoSWYgaGF2ZSBhbiBlbnVtIG1lbWJlciBhbmQgbmVlZCBp
dHMgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKG5hbWUgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcg
KG9yICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnICh2YWx1ZSkgVGogL0YxIDEwIFRmIDAgMCAwIHJn
ICg6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNTEzLjQyMzYgY20N
Ci1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0u
NjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0
NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggNzIgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCA1
MCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBtZW1i
ZXIgPSBDb2xvci5yZWQpIFRqIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggbWVtYmVyLm5hbWUp
IFRqIFQqICgncmVkJykgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBtZW1iZXIudmFsdWUp
IFRqIFQqICgxKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIu
NjkyOTEgNDgwLjQyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDMuNSBUbSAyMSBUTCAvRjMgMTcu
NSBUZiAwIDAgMCByZyAoRHVwbGljYXRpbmcgZW51bSBtZW1iZXJzIGFuZCB2YWx1ZXMpIFRqIFQq
IEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA0NTAuNDIzNiBjbQ0KLXENCi0wIDAg
MCByZw0KLUJUIDEgMCAwIDEgMCAxNCBUbSAvRjEgMTAgVGYgMTIgVEwgLjEzODMyIFR3IChIYXZp
bmcgdHdvIGVudW0gbWVtYmVycyBcKG9yIGFueSBvdGhlciBhdHRyaWJ1dGVcKSB3aXRoIHRoZSBz
YW1lIG5hbWUgaXMgaW52YWxpZDsgaW4gUHl0aG9uIDMueCB0aGlzIHdvdWxkKSBUaiBUKiAwIFR3
IChyYWlzZSBhbiBlcnJvciwgYnV0IGluIFB5dGhvbiAyLnggdGhlIHNlY29uZCBtZW1iZXIgc2lt
cGx5IG92ZXJ3cml0ZXMgdGhlIGZpcnN0OikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAx
IDYyLjY5MjkxIDI0OS4yMjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAg
MCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQot
Ljk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDE5MiByZSBCKg0K
LVENCi1xDQotQlQgMSAwIDAgMSAwIDE3MCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4p
IFRqICg+KSBUaiAoPikgVGogKCAjIHB5dGhvbiAyLngpIFRqIFQqICg+KSBUaiAoPikgVGogKD4p
IFRqICggY2xhc3MgU2hhcGVcKEVudW1cKTopIFRqIFQqICguLi4gICBzcXVhcmUgPSAyKSBUaiBU
KiAoLi4uICAgc3F1YXJlID0gMykgVGogVCogKC4uLikgVGogVCogKD4pIFRqICg+KSBUaiAoPikg
VGogKCBTaGFwZS5zcXVhcmUpIFRqIFQqICg8KSBUaiAoU2hhcGUuc3F1YXJlOiAzKSBUaiAoPikg
VGogIFQqICBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoICMgcHl0aG9uIDMueCkgVGogVCogKD4p
IFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBTaGFwZVwoRW51bVwpOikgVGogVCogKC4uLiAgIHNx
dWFyZSA9IDIpIFRqIFQqICguLi4gICBzcXVhcmUgPSAzKSBUaiBUKiAoVHJhY2ViYWNrIFwobW9z
dCByZWNlbnQgY2FsbCBsYXN0XCk6KSBUaiBUKiAoLi4uKSBUaiBUKiAoVHlwZUVycm9yOiBBdHRl
bXB0ZWQgdG8gcmV1c2Uga2V5OiAnc3F1YXJlJykgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQot
UQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDIwNS4yMjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQg
MSAwIDAgMSAwIDI2IFRtIC9GMSAxMCBUZiAxMiBUTCAuMzg0OTg3IFR3IChIb3dldmVyLCB0d28g
ZW51bSBtZW1iZXJzIGFyZSBhbGxvd2VkIHRvIGhhdmUgdGhlIHNhbWUgdmFsdWUuIEdpdmVuIHR3
byBtZW1iZXJzIEEgYW5kIEIgd2l0aCB0aGUpIFRqIFQqIDAgVHcgLjQ0NDc3MiBUdyAoc2FtZSB2
YWx1ZSBcKGFuZCBBIGRlZmluZWQgZmlyc3RcKSwgQiBpcyBhbiBhbGlhcyB0byBBLiBCeS12YWx1
ZSBsb29rdXAgb2YgdGhlIHZhbHVlIG9mIEEgYW5kIEIgd2lsbCByZXR1cm4gQS4pIFRqIFQqIDAg
VHcgKEJ5LW5hbWUgbG9va3VwIG9mIEIgd2lsbCBhbHNvIHJldHVybiBBOikgVGogVCogRVQNCi1R
DQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDg4LjAyMzYyIGNtDQotcQ0KLXENCi0xIDAgMCAx
IDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42
NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ5
MiAxMDggcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCA4NiBUbSAxMiBUTCAvRjQgMTAgVGYg
MCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBTaGFwZVwoRW51bVwpOikgVGog
VCogKC4uLiAgIF9fb3JkZXJfXyA9ICdzcXVhcmUgZGlhbW9uZCBjaXJjbGUgYWxpYXNfZm9yX3Nx
dWFyZScgICMgb25seSBuZWVkZWQgaW4gMi54KSBUaiBUKiAoLi4uICAgc3F1YXJlID0gMikgVGog
VCogKC4uLiAgIGRpYW1vbmQgPSAxKSBUaiBUKiAoLi4uICAgY2lyY2xlID0gMykgVGogVCogKC4u
LiAgIGFsaWFzX2Zvcl9zcXVhcmUgPSAyKSBUaiBUKiAoLi4uKSBUaiBUKiAoPikgVGogKD4pIFRq
ICg+KSBUaiAoIFNoYXBlLnNxdWFyZSkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLSAN
Ci1lbmRzdHJlYW0NCi1lbmRvYmoNCi01OSAwIG9iag0KLTw8IC9MZW5ndGggNDQwNiA+Pg0KLXN0
cmVhbQ0KLTEgMCAwIDEgMCAwIGNtICBCVCAvRjEgMTIgVGYgMTQuNCBUTCBFVA0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDY5MS44MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0x
IDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3
DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDcyIHJlIEIq
DQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgNTAgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg8
KSBUaiAoU2hhcGUuc3F1YXJlOiAyKSBUaiAoPikgVGogIFQqICg+KSBUaiAoPikgVGogKD4pIFRq
ICggU2hhcGUuYWxpYXNfZm9yX3NxdWFyZSkgVGogVCogKDwpIFRqIChTaGFwZS5zcXVhcmU6IDIp
IFRqICg+KSBUaiAgVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBTaGFwZVwoMlwpKSBUaiBUKiAo
PCkgVGogKFNoYXBlLnNxdWFyZTogMikgVGogKD4pIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0K
LVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2NTkuODIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAg
MTQgVG0gMS4wNzQxMDQgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChBbGxvd2luZyBhbGlh
c2VzIGlzIG5vdCBhbHdheXMgZGVzaXJhYmxlLiApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAodW5p
cXVlICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChjYW4gYmUgdXNlZCB0byBlbnN1cmUgdGhhdCBu
b25lIGV4aXN0IGluIGEgcGFydGljdWxhcikgVGogVCogMCBUdyAoZW51bWVyYXRpb246KSBUaiBU
KiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNTA2LjYyMzYgY20NCi1xDQotcQ0K
LTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42
NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4g
LTYgLTYgNDY4LjY4OTggMTQ0IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMTIyIFRtIDEy
IFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIGZyb20gZW51bSBp
bXBvcnQgdW5pcXVlKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIEB1bmlxdWUpIFRqIFQq
ICguLi4gY2xhc3MgTWlzdGFrZVwoRW51bVwpOikgVGogVCogKC4uLiAgIF9fb3JkZXJfXyA9ICdv
bmUgdHdvIHRocmVlIGZvdXInICAjIG9ubHkgbmVlZGVkIGluIDIueCkgVGogVCogKC4uLiAgIG9u
ZSA9IDEpIFRqIFQqICguLi4gICB0d28gPSAyKSBUaiBUKiAoLi4uICAgdGhyZWUgPSAzKSBUaiBU
KiAoLi4uICAgZm91ciA9IDMpIFRqIFQqIChUcmFjZWJhY2sgXChtb3N0IHJlY2VudCBjYWxsIGxh
c3RcKTopIFRqIFQqICguLi4pIFRqIFQqIChWYWx1ZUVycm9yOiBkdXBsaWNhdGUgbmFtZXMgZm91
bmQgaW4gKSBUaiAoPCkgVGogKGVudW0gJ01pc3Rha2UnKSBUaiAoPikgVGogKDogZm91ciAtKSBU
aiAoPikgVGogKCB0aHJlZSkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDQ4Ni42MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIg
VG0gL0YxIDEwIFRmIDEyIFRMIChJdGVyYXRpbmcgb3ZlciB0aGUgbWVtYmVycyBvZiBhbiBlbnVt
IGRvZXMgbm90IHByb3ZpZGUgdGhlIGFsaWFzZXM6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEg
MCAwIDEgNjIuNjkyOTEgNDQxLjQyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0K
LTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41
IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggMzYgcmUg
QioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcg
KD4pIFRqICg+KSBUaiAoPikgVGogKCBsaXN0XChTaGFwZVwpKSBUaiBUKiAoWykgVGogKDwpIFRq
IChTaGFwZS5zcXVhcmU6IDIpIFRqICg+KSBUaiAoLCApIFRqICg8KSBUaiAoU2hhcGUuZGlhbW9u
ZDogMSkgVGogKD4pIFRqICgsICkgVGogKDwpIFRqIChTaGFwZS5jaXJjbGU6IDMpIFRqICg+KSBU
aiAoXSkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5Mjkx
IDQwOS40MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAxLjMwNzEyNiBUdyAxMiBUTCAv
RjEgMTAgVGYgMCAwIDAgcmcgKFRoZSBzcGVjaWFsIGF0dHJpYnV0ZSApIFRqIC9GNCAxMCBUZiAw
IDAgMCByZyAoX19tZW1iZXJzX18gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlzIGEgZGljdGlv
bmFyeSBtYXBwaW5nIG5hbWVzIHRvIG1lbWJlcnMuIEl0IGluY2x1ZGVzIGFsbCBuYW1lcykgVGog
VCogMCBUdyAoZGVmaW5lZCBpbiB0aGUgZW51bWVyYXRpb24sIGluY2x1ZGluZyB0aGUgYWxpYXNl
czopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAzMDQuMjIzNiBjbQ0K
LXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42
NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1
IHJnDQotbiAtNiAtNiA0NjguNjg5OCA5NiByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDc0
IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIGZvciBu
YW1lLCBtZW1iZXIgaW4gc29ydGVkXChTaGFwZS5fX21lbWJlcnNfXy5pdGVtc1woXClcKTopIFRq
IFQqICguLi4gICBuYW1lLCBtZW1iZXIpIFRqIFQqICguLi4pIFRqIFQqIChcKCdhbGlhc19mb3Jf
c3F1YXJlJywgKSBUaiAoPCkgVGogKFNoYXBlLnNxdWFyZTogMikgVGogKD4pIFRqIChcKSkgVGog
VCogKFwoJ2NpcmNsZScsICkgVGogKDwpIFRqIChTaGFwZS5jaXJjbGU6IDMpIFRqICg+KSBUaiAo
XCkpIFRqIFQqIChcKCdkaWFtb25kJywgKSBUaiAoPCkgVGogKFNoYXBlLmRpYW1vbmQ6IDEpIFRq
ICg+KSBUaiAoXCkpIFRqIFQqIChcKCdzcXVhcmUnLCApIFRqICg8KSBUaiAoU2hhcGUuc3F1YXJl
OiAyKSBUaiAoPikgVGogKFwpKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEg
MCAwIDEgNjIuNjkyOTEgMjcyLjIyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIC4wODA3
NTEgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChUaGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAg
cmcgKF9fbWVtYmVyc19fICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChhdHRyaWJ1dGUgY2FuIGJl
IHVzZWQgZm9yIGRldGFpbGVkIHByb2dyYW1tYXRpYyBhY2Nlc3MgdG8gdGhlIGVudW1lcmF0aW9u
IG1lbWJlcnMuKSBUaiBUKiAwIFR3IChGb3IgZXhhbXBsZSwgZmluZGluZyBhbGwgdGhlIGFsaWFz
ZXM6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMjI3LjAyMzYgY20N
Ci1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0u
NjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0
NSByZw0KLW4gLTYgLTYgNDg2IDM2IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0g
MTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggW25hbWUgZm9y
IG5hbWUsIG1lbWJlciBpbiBTaGFwZS5fX21lbWJlcnNfXy5pdGVtc1woXCkgaWYgbWVtYmVyLm5h
bWUgIT0gbmFtZV0pIFRqIFQqIChbJ2FsaWFzX2Zvcl9zcXVhcmUnXSkgVGogVCogRVQNCi1RDQot
UQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDE5NC4wMjM2IGNtDQotcQ0KLUJU
IDEgMCAwIDEgMCAzLjUgVG0gMjEgVEwgL0YzIDE3LjUgVGYgMCAwIDAgcmcgKENvbXBhcmlzb25z
KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMTc2LjAyMzYgY20NCi1x
DQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAvRjEgMTAgVGYgMTIgVEwgKEVudW1lcmF0
aW9uIG1lbWJlcnMgYXJlIGNvbXBhcmVkIGJ5IGlkZW50aXR5OikgVGogVCogRVQNCi1RDQotUQ0K
LXENCi0xIDAgMCAxIDYyLjY5MjkxIDgyLjgyMzYyIGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBj
bQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUg
UkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4
IDg0IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgNjIgVG0gMTIgVEwgL0Y0IDEwIFRmIDAg
MCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggQ29sb3IucmVkIGlzIENvbG9yLnJlZCkgVGog
VCogKFRydWUpIFRqIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggQ29sb3IucmVkIGlzIENvbG9y
LmJsdWUpIFRqIFQqIChGYWxzZSkgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBDb2xvci5y
ZWQgaXMgbm90IENvbG9yLmJsdWUpIFRqIFQqIChUcnVlKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0K
LVENCi1RDQotIA0KLWVuZHN0cmVhbQ0KLWVuZG9iag0KLTYwIDAgb2JqDQotPDwgL0xlbmd0aCA0
NTIxID4+DQotc3RyZWFtDQotMSAwIDAgMSAwIDAgY20gIEJUIC9GMSAxMiBUZiAxNC40IFRMIEVU
DQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNzQxLjAyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0
IFRtIDEuMTMxNjQ3IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoT3JkZXJlZCBjb21wYXJp
c29ucyBiZXR3ZWVuIGVudW1lcmF0aW9uIHZhbHVlcyBhcmUgKSBUaiAvRjUgMTAgVGYgKG5vdCAp
IFRqIC9GMSAxMCBUZiAoc3VwcG9ydGVkLiBFbnVtIG1lbWJlcnMgYXJlIG5vdCBpbnRlZ2Vycykg
VGogVCogMCBUdyAoXChidXQgc2VlICkgVGogMCAwIC41MDE5NjEgcmcgKEludEVudW0gKSBUaiAw
IDAgMCByZyAoYmVsb3dcKTopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5
MSA2NzEuODIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYg
Ni42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQg
Ljk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCA2MCByZSBCKg0KLVENCi1xDQot
QlQgMSAwIDAgMSAwIDM4IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRq
ICg+KSBUaiAoIENvbG9yLnJlZCApIFRqICg8KSBUaiAoIENvbG9yLmJsdWUpIFRqIFQqIChUcmFj
ZWJhY2sgXChtb3N0IHJlY2VudCBjYWxsIGxhc3RcKTopIFRqIFQqICggIEZpbGUgIikgVGogKDwp
IFRqIChzdGRpbikgVGogKD4pIFRqICgiLCBsaW5lIDEsIGluICkgVGogKDwpIFRqIChtb2R1bGUp
IFRqICg+KSBUaiAgVCogKFR5cGVFcnJvcjogdW5vcmRlcmFibGUgdHlwZXM6IENvbG9yXChcKSAp
IFRqICg8KSBUaiAoIENvbG9yXChcKSkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXEN
Ci0xIDAgMCAxIDYyLjY5MjkxIDY1MS44MjM2IGNtDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5Mjkx
IDU2OC44MjM2IGNtDQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIDAgODMgNDY5Ljg4
OTggLTgzIHJlIGYqDQotMCAwIDAgcmcNCi1CVCAvRjEgMTAgVGYgMTIgVEwgRVQNCi1CVCAxIDAg
MCAxIDYgNTcgVG0gIFQqIEVUDQotcQ0KLTEgMCAwIDEgMTYgNTIgY20NCi1xDQotMCAwIDAgcmcN
Ci1CVCAxIDAgMCAxIDAgMi41IFRtIC9GNiAxMi41IFRmIDE1IFRMIChXYXJuaW5nKSBUaiBUKiBF
VA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgMTYgMTYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRt
IC4xODkzOTggVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChJbiBQeXRob24gMiApIFRqIC9G
NSAxMCBUZiAoZXZlcnl0aGluZyApIFRqIC9GMSAxMCBUZiAoaXMgb3JkZXJlZCwgZXZlbiB0aG91
Z2ggdGhlIG9yZGVyaW5nIG1heSBub3QgbWFrZSBzZW5zZS4gSWYgeW91IHdhbnQgeW91cikgVGog
VCogMCBUdyAoZW51bWVyYXRpb25zIHRvIGhhdmUgYSBzZW5zaWJsZSBvcmRlcmluZyBjaGVjayBv
dXQgdGhlICkgVGogMCAwIC41MDE5NjEgcmcgKE9yZGVyZWRFbnVtICkgVGogMCAwIDAgcmcgKHJl
Y2lwZSBiZWxvdy4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSBKDQotMSBqDQotLjY2Mjc0NSAu
NjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotbiAwIDgzIG0gNDY5Ljg4OTggODMgbCBTDQotbiAw
IDAgbSA0NjkuODg5OCAwIGwgUw0KLW4gMCAwIG0gMCA4MyBsIFMNCi1uIDQ2OS44ODk4IDAgbSA0
NjkuODg5OCA4MyBsIFMNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU2Mi44MjM2IGNt
DQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU0NC44MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQot
QlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIChFcXVhbGl0eSBjb21wYXJpc29ucyBh
cmUgZGVmaW5lZCB0aG91Z2g6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjky
OTEgNDUxLjYyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42
IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0
IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggODQgcmUgQioNCi1RDQotcQ0K
LUJUIDEgMCAwIDEgMCA2MiBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBU
aiAoPikgVGogKCBDb2xvci5ibHVlID09IENvbG9yLnJlZCkgVGogVCogKEZhbHNlKSBUaiBUKiAo
PikgVGogKD4pIFRqICg+KSBUaiAoIENvbG9yLmJsdWUgIT0gQ29sb3IucmVkKSBUaiBUKiAoVHJ1
ZSkgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBDb2xvci5ibHVlID09IENvbG9yLmJsdWUp
IFRqIFQqIChUcnVlKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEg
NjIuNjkyOTEgNDE5LjYyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIDIuNTgyNzA2IFR3
IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoQ29tcGFyaXNvbnMgYWdhaW5zdCBub24tZW51bWVy
YXRpb24gdmFsdWVzIHdpbGwgYWx3YXlzIGNvbXBhcmUgbm90IGVxdWFsIFwoYWdhaW4sICkgVGog
L0Y0IDEwIFRmIDAgMCAwIHJnIChJbnRFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICh3YXMp
IFRqIFQqIDAgVHcgKGV4cGxpY2l0bHkgZGVzaWduZWQgdG8gYmVoYXZlIGRpZmZlcmVudGx5LCBz
ZWUgYmVsb3dcKTopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAzNzQu
NDIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNt
DQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4
NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCAzNiByZSBCKg0KLVENCi1xDQotQlQgMSAw
IDAgMSAwIDE0IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBU
aiAoIENvbG9yLmJsdWUgPT0gMikgVGogVCogKEZhbHNlKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0K
LVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMzQxLjQyMzYgY20NCi1xDQotQlQgMSAwIDAg
MSAwIDMuNSBUbSAyMSBUTCAvRjMgMTcuNSBUZiAwIDAgMCByZyAoQWxsb3dlZCBtZW1iZXJzIGFu
ZCBhdHRyaWJ1dGVzIG9mIGVudW1lcmF0aW9ucykgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDI4Ny40MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAzOCBUbSAyLjc1NTY5
NyBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFRoZSBleGFtcGxlcyBhYm92ZSB1c2UgaW50
ZWdlcnMgZm9yIGVudW1lcmF0aW9uIHZhbHVlcy4gVXNpbmcgaW50ZWdlcnMgaXMgc2hvcnQgYW5k
IGhhbmR5IFwoYW5kKSBUaiBUKiAwIFR3IC4yNDE3NTEgVHcgKHByb3ZpZGVkIGJ5IGRlZmF1bHQg
YnkgdGhlICkgVGogMCAwIC41MDE5NjEgcmcgKEZ1bmN0aW9uYWwgQVBJKSBUaiAwIDAgMCByZyAo
XCksIGJ1dCBub3Qgc3RyaWN0bHkgZW5mb3JjZWQuIEluIHRoZSB2YXN0IG1ham9yaXR5IG9mIHVz
ZS1jYXNlcywgb25lKSBUaiBUKiAwIFR3IC44NDgyMjEgVHcgKGRvZXNuJ3QgY2FyZSB3aGF0IHRo
ZSBhY3R1YWwgdmFsdWUgb2YgYW4gZW51bWVyYXRpb24gaXMuIEJ1dCBpZiB0aGUgdmFsdWUgKSBU
aiAvRjUgMTAgVGYgKGlzICkgVGogL0YxIDEwIFRmIChpbXBvcnRhbnQsIGVudW1lcmF0aW9ucyBj
YW4pIFRqIFQqIDAgVHcgKGhhdmUgYXJiaXRyYXJ5IHZhbHVlcy4pIFRqIFQqIEVUDQotUQ0KLVEN
Ci1xDQotMSAwIDAgMSA2Mi42OTI5MSAyNTcuNDIzNiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEg
MCAwIDEgMCAxNCBUbSAvRjEgMTAgVGYgMTIgVEwgLjYzODczNSBUdyAoRW51bWVyYXRpb25zIGFy
ZSBQeXRob24gY2xhc3NlcywgYW5kIGNhbiBoYXZlIG1ldGhvZHMgYW5kIHNwZWNpYWwgbWV0aG9k
cyBhcyB1c3VhbC4gSWYgd2UgaGF2ZSB0aGlzKSBUaiBUKiAwIFR3IChlbnVtZXJhdGlvbjopIFRq
IFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA4MC4yMjM2MiBjbQ0KLXENCi1x
DQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUg
LjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQot
biAtNiAtNiA0NjguNjg5OCAxNjggcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCAxNDYgVG0g
MTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggY2xhc3MgTW9v
ZFwoRW51bVwpOikgVGogVCogKC4uLiAgIGZ1bmt5ID0gMSkgVGogVCogKC4uLiAgIGhhcHB5ID0g
MykgVGogVCogKC4uLikgVGogVCogKC4uLiAgIGRlZiBkZXNjcmliZVwoc2VsZlwpOikgVGogVCog
KC4uLiAgICAgIyBzZWxmIGlzIHRoZSBtZW1iZXIgaGVyZSkgVGogVCogKC4uLiAgICAgcmV0dXJu
IHNlbGYubmFtZSwgc2VsZi52YWx1ZSkgVGogVCogKC4uLikgVGogVCogKC4uLiAgIGRlZiBfX3N0
cl9fXChzZWxmXCk6KSBUaiBUKiAoLi4uICAgICByZXR1cm4gJ215IGN1c3RvbSBzdHIhIHswfScu
Zm9ybWF0XChzZWxmLnZhbHVlXCkpIFRqIFQqICguLi4pIFRqIFQqICguLi4gICBAY2xhc3NtZXRo
b2QpIFRqIFQqICguLi4gICBkZWYgZmF2b3JpdGVfbW9vZFwoY2xzXCk6KSBUaiBUKiBFVA0KLVEN
Ci1RDQotUQ0KLVENCi1RDQotIA0KLWVuZHN0cmVhbQ0KLWVuZG9iag0KLTYxIDAgb2JqDQotPDwg
L0xlbmd0aCA0NjI3ID4+DQotc3RyZWFtDQotMSAwIDAgMSAwIDAgY20gIEJUIC9GMSAxMiBUZiAx
NC40IFRMIEVUDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNzI3LjgyMzYgY20NCi1xDQotcQ0KLTEg
MCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3
NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYg
LTYgNDY4LjY4OTggMzYgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAxMiBUTCAv
RjQgMTAgVGYgMCAwIDAgcmcgKC4uLiAgICAgIyBjbHMgaGVyZSBpcyB0aGUgZW51bWVyYXRpb24p
IFRqIFQqICguLi4gICAgIHJldHVybiBjbHMuaGFwcHkpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQot
UQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA3MDcuODIzNiBjbQ0KLXENCi0wIDAgMCByZw0K
LUJUIDEgMCAwIDEgMCAyIFRtIC9GMSAxMCBUZiAxMiBUTCAoVGhlbjopIFRqIFQqIEVUDQotUQ0K
LVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2MTQuNjIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAw
IDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYy
NzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0Njgu
Njg5OCA4NCByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDYyIFRtIDEyIFRMIC9GNCAxMCBU
ZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIE1vb2QuZmF2b3JpdGVfbW9vZFwoXCkp
IFRqIFQqICg8KSBUaiAoTW9vZC5oYXBweTogMykgVGogKD4pIFRqICBUKiAoPikgVGogKD4pIFRq
ICg+KSBUaiAoIE1vb2QuaGFwcHkuZGVzY3JpYmVcKFwpKSBUaiBUKiAoXCgnaGFwcHknLCAzXCkp
IFRqIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggc3RyXChNb29kLmZ1bmt5XCkpIFRqIFQqICgn
bXkgY3VzdG9tIHN0ciEgMScpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAw
IDAgMSA2Mi42OTI5MSA1NTguNjIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMzggVG0gMy4xNDE4
NiBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFRoZSBydWxlcyBmb3Igd2hhdCBpcyBhbGxv
d2VkIGFyZSBhcyBmb2xsb3dzOiBfc3VuZGVyXyBuYW1lcyBcKHN0YXJ0aW5nIGFuZCBlbmRpbmcg
d2l0aCBhIHNpbmdsZSkgVGogVCogMCBUdyAuMzEwNjUxIFR3ICh1bmRlcnNjb3JlXCkgYXJlIHJl
c2VydmVkIGJ5IGVudW0gYW5kIGNhbm5vdCBiZSB1c2VkOyBhbGwgb3RoZXIgYXR0cmlidXRlcyBk
ZWZpbmVkIHdpdGhpbiBhbiBlbnVtZXJhdGlvbikgVGogVCogMCBUdyAyLjE5OTIxMyBUdyAod2ls
bCBiZWNvbWUgbWVtYmVycyBvZiB0aGlzIGVudW1lcmF0aW9uLCB3aXRoIHRoZSBleGNlcHRpb24g
b2YgKSBUaiAvRjUgMTAgVGYgKF9fZHVuZGVyX18gKSBUaiAvRjEgMTAgVGYgKG5hbWVzIGFuZCBk
ZXNjcmlwdG9ycykgVGogVCogMCBUdyAoXChtZXRob2RzIGFyZSBhbHNvIGRlc2NyaXB0b3JzXCku
KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNTQwLjYyMzYgY20NCi1x
DQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAvRjEgMTAgVGYgMTIgVEwgKE5vdGU6KSBU
aiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNTM0LjYyMzYgY20NCi1RDQot
cQ0KLTEgMCAwIDEgNjIuNjkyOTEgNTEwLjYyMzYgY20NCi0wIDAgMCByZw0KLUJUIC9GMSAxMCBU
ZiAxMiBUTCBFVA0KLUJUIDEgMCAwIDEgMCAyIFRtICBUKiBFVA0KLXENCi0xIDAgMCAxIDIwIDAg
Y20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIC45NzkyMTMgVHcgMTIgVEwgL0YxIDEwIFRmIDAg
MCAwIHJnIChJZiB5b3VyIGVudW1lcmF0aW9uIGRlZmluZXMgKSBUaiAvRjQgMTAgVGYgMCAwIDAg
cmcgKF9fbmV3X18gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGFuZC9vciApIFRqIC9GNCAxMCBU
ZiAwIDAgMCByZyAoX19pbml0X18gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKHRoZW4gd2hhdGV2
ZXIgdmFsdWVcKHNcKSB3ZXJlIGdpdmVuIHRvIHRoZSkgVGogVCogMCBUdyAoZW51bSBtZW1iZXIg
d2lsbCBiZSBwYXNzZWQgaW50byB0aG9zZSBtZXRob2RzLiBTZWUgKSBUaiAwIDAgLjUwMTk2MSBy
ZyAoUGxhbmV0ICkgVGogMCAwIDAgcmcgKGZvciBhbiBleGFtcGxlLikgVGogVCogRVQNCi1RDQot
UQ0KLXENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDUxMC42MjM2IGNtDQotUQ0KLXEN
Ci0xIDAgMCAxIDYyLjY5MjkxIDQ3Ny42MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAzLjUgVG0g
MjEgVEwgL0YzIDE3LjUgVGYgMCAwIDAgcmcgKFJlc3RyaWN0ZWQgc3ViY2xhc3Npbmcgb2YgZW51
bWVyYXRpb25zKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNDQ3LjYy
MzYgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMTQgVG0gL0YxIDEwIFRmIDEyIFRM
IC43Nzg3MzUgVHcgKFN1YmNsYXNzaW5nIGFuIGVudW1lcmF0aW9uIGlzIGFsbG93ZWQgb25seSBp
ZiB0aGUgZW51bWVyYXRpb24gZG9lcyBub3QgZGVmaW5lIGFueSBtZW1iZXJzLiBTbyB0aGlzIGlz
KSBUaiBUKiAwIFR3IChmb3JiaWRkZW46KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEg
NjIuNjkyOTEgMzY2LjQyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAw
IDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0u
OTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggNzIgcmUgQioNCi1R
DQotcQ0KLUJUIDEgMCAwIDEgMCA1MCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRq
ICg+KSBUaiAoPikgVGogKCBjbGFzcyBNb3JlQ29sb3JcKENvbG9yXCk6KSBUaiBUKiAoLi4uICAg
cGluayA9IDE3KSBUaiBUKiAoVHJhY2ViYWNrIFwobW9zdCByZWNlbnQgY2FsbCBsYXN0XCk6KSBU
aiBUKiAoLi4uKSBUaiBUKiAoVHlwZUVycm9yOiBDYW5ub3QgZXh0ZW5kIGVudW1lcmF0aW9ucykg
VGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDM0Ni40
MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRM
IChCdXQgdGhpcyBpcyBhbGxvd2VkOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDIyOS4yMjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAx
IDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2
MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDEwOCByZSBCKg0KLVEN
Ci1xDQotQlQgMSAwIDAgMSAwIDg2IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGog
KD4pIFRqICg+KSBUaiAoIGNsYXNzIEZvb1woRW51bVwpOikgVGogVCogKC4uLiAgIGRlZiBzb21l
X2JlaGF2aW9yXChzZWxmXCk6KSBUaiBUKiAoLi4uICAgICBwYXNzKSBUaiBUKiAoLi4uKSBUaiBU
KiAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNsYXNzIEJhclwoRm9vXCk6KSBUaiBUKiAoLi4uICAg
aGFwcHkgPSAxKSBUaiBUKiAoLi4uICAgc2FkID0gMikgVGogVCogKC4uLikgVGogVCogRVQNCi1R
DQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDE4NS4yMjM2IGNtDQotcQ0K
LUJUIDEgMCAwIDEgMCAyNiBUbSAuMTI3OTg0IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAo
QWxsb3dpbmcgc3ViY2xhc3Npbmcgb2YgZW51bXMgdGhhdCBkZWZpbmUgbWVtYmVycyB3b3VsZCBs
ZWFkIHRvIGEgdmlvbGF0aW9uIG9mIHNvbWUgaW1wb3J0YW50IGludmFyaWFudHMpIFRqIFQqIDAg
VHcgMS44ODk5ODUgVHcgKG9mIHR5cGVzIGFuZCBpbnN0YW5jZXMuIE9uIHRoZSBvdGhlciBoYW5k
LCBpdCBtYWtlcyBzZW5zZSB0byBhbGxvdyBzaGFyaW5nIHNvbWUgY29tbW9uIGJlaGF2aW9yKSBU
aiBUKiAwIFR3IChiZXR3ZWVuIGEgZ3JvdXAgb2YgZW51bWVyYXRpb25zLiBcKFNlZSApIFRqIDAg
MCAuNTAxOTYxIHJnIChPcmRlcmVkRW51bSApIFRqIDAgMCAwIHJnIChmb3IgYW4gZXhhbXBsZS5c
KSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDE1Mi4yMjM2IGNtDQot
cQ0KLUJUIDEgMCAwIDEgMCAzLjUgVG0gMjEgVEwgL0YzIDE3LjUgVGYgMCAwIDAgcmcgKFBpY2ts
aW5nKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMTM0LjIyMzYgY20N
Ci1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAvRjEgMTAgVGYgMTIgVEwgKEVudW1l
cmF0aW9ucyBjYW4gYmUgcGlja2xlZCBhbmQgdW5waWNrbGVkOikgVGogVCogRVQNCi1RDQotUQ0K
LXENCi0xIDAgMCAxIDYyLjY5MjkxIDg5LjAyMzYyIGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBj
bQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUg
UkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4
IDM2IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0gMTIgVEwgL0Y0IDEwIFRmIDAg
MCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggZnJvbSBlbnVtLnRlc3RfZW51bSBpbXBvcnQg
RnJ1aXQpIFRqIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggZnJvbSBwaWNrbGUgaW1wb3J0IGR1
bXBzLCBsb2FkcykgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLSANCi1lbmRzdHJlYW0N
Ci1lbmRvYmoNCi02MiAwIG9iag0KLTw8IC9MZW5ndGggNTM3MiA+Pg0KLXN0cmVhbQ0KLTEgMCAw
IDEgMCAwIGNtICBCVCAvRjEgMTIgVGYgMTQuNCBUTCBFVA0KLXENCi0xIDAgMCAxIDYyLjY5Mjkx
IDcyNy44MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2
LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAu
OTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDM2IHJlIEIqDQotUQ0KLXENCi1C
VCAxIDAgMCAxIDAgMTQgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGog
KD4pIFRqICggRnJ1aXQudG9tYXRvIGlzIGxvYWRzXChkdW1wc1woRnJ1aXQudG9tYXRvLCAyXClc
KSkgVGogVCogKFRydWUpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAg
MSA2Mi42OTI5MSA2OTUuODIzNiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAxNCBU
bSAvRjEgMTAgVGYgMTIgVEwgMS4yNTY0NTcgVHcgKFRoZSB1c3VhbCByZXN0cmljdGlvbnMgZm9y
IHBpY2tsaW5nIGFwcGx5OiBwaWNrbGFibGUgZW51bXMgbXVzdCBiZSBkZWZpbmVkIGluIHRoZSB0
b3AgbGV2ZWwgb2YgYSBtb2R1bGUsKSBUaiBUKiAwIFR3IChzaW5jZSB1bnBpY2tsaW5nIHJlcXVp
cmVzIHRoZW0gdG8gYmUgaW1wb3J0YWJsZSBmcm9tIHRoYXQgbW9kdWxlLikgVGogVCogRVQNCi1R
DQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY3Ny44MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQot
QlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIChOb3RlOikgVGogVCogRVQNCi1RDQot
UQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY3MS44MjM2IGNtDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDY0Ny44MjM2IGNtDQotMCAwIDAgcmcNCi1CVCAvRjEgMTAgVGYgMTIgVEwgRVQNCi1C
VCAxIDAgMCAxIDAgMiBUbSAgVCogRVQNCi1xDQotMSAwIDAgMSAyMCAwIGNtDQotcQ0KLTAgMCAw
IHJnDQotQlQgMSAwIDAgMSAwIDE0IFRtIC9GMSAxMCBUZiAxMiBUTCAuMDgxMTYzIFR3IChXaXRo
IHBpY2tsZSBwcm90b2NvbCB2ZXJzaW9uIDQgXChpbnRyb2R1Y2VkIGluIFB5dGhvbiAzLjRcKSBp
dCBpcyBwb3NzaWJsZSB0byBlYXNpbHkgcGlja2xlIGVudW1zIG5lc3RlZCBpbikgVGogVCogMCBU
dyAob3RoZXIgY2xhc3Nlcy4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotUQ0KLVENCi1xDQotMSAw
IDAgMSA2Mi42OTI5MSA2NDcuODIzNiBjbQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2MTQu
ODIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMy41IFRtIDIxIFRMIC9GMyAxNy41IFRmIDAgMCAw
IHJnIChGdW5jdGlvbmFsIEFQSSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5
MjkxIDU5Ni44MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyIFRtIDEyIFRMIC9GMSAxMCBUZiAw
IDAgMCByZyAoVGhlICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRm
IDAgMCAwIHJnIChjbGFzcyBpcyBjYWxsYWJsZSwgcHJvdmlkaW5nIHRoZSBmb2xsb3dpbmcgZnVu
Y3Rpb25hbCBBUEk6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNDY3
LjYyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBj
bQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3
ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggMTIwIHJlIEIqDQotUQ0KLXENCi1CVCAx
IDAgMCAxIDAgOTggVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4p
IFRqICggQW5pbWFsID0gRW51bVwoJ0FuaW1hbCcsICdhbnQgYmVlIGNhdCBkb2cnXCkpIFRqIFQq
ICg+KSBUaiAoPikgVGogKD4pIFRqICggQW5pbWFsKSBUaiBUKiAoPCkgVGogKGVudW0gJ0FuaW1h
bCcpIFRqICg+KSBUaiAgVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBBbmltYWwuYW50KSBUaiBU
KiAoPCkgVGogKEFuaW1hbC5hbnQ6IDEpIFRqICg+KSBUaiAgVCogKD4pIFRqICg+KSBUaiAoPikg
VGogKCBBbmltYWwuYW50LnZhbHVlKSBUaiBUKiAoMSkgVGogVCogKD4pIFRqICg+KSBUaiAoPikg
VGogKCBsaXN0XChBbmltYWxcKSkgVGogVCogKFspIFRqICg8KSBUaiAoQW5pbWFsLmFudDogMSkg
VGogKD4pIFRqICgsICkgVGogKDwpIFRqIChBbmltYWwuYmVlOiAyKSBUaiAoPikgVGogKCwgKSBU
aiAoPCkgVGogKEFuaW1hbC5jYXQ6IDMpIFRqICg+KSBUaiAoLCApIFRqICg8KSBUaiAoQW5pbWFs
LmRvZzogNCkgVGogKD4pIFRqIChdKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0K
LTEgMCAwIDEgNjIuNjkyOTEgNDM1LjYyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIC42
MDIyMDkgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChUaGUgc2VtYW50aWNzIG9mIHRoaXMg
QVBJIHJlc2VtYmxlICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChuYW1lZHR1cGxlKSBUaiAvRjEg
MTAgVGYgMCAwIDAgcmcgKC4gVGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBjYWxsIHRvICkgVGog
L0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChpcyB0aGUg
bmFtZSBvZikgVGogVCogMCBUdyAodGhlIGVudW1lcmF0aW9uLikgVGogVCogRVQNCi1RDQotUQ0K
LXENCi0xIDAgMCAxIDYyLjY5MjkxIDM2OS42MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCA1MCBU
bSAxLjMyNjQxMiBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFRoZSBzZWNvbmQgYXJndW1l
bnQgaXMgdGhlICkgVGogL0Y1IDEwIFRmIChzb3VyY2UgKSBUaiAvRjEgMTAgVGYgKG9mIGVudW1l
cmF0aW9uIG1lbWJlciBuYW1lcy4gSXQgY2FuIGJlIGEgd2hpdGVzcGFjZS1zZXBhcmF0ZWQpIFRq
IFQqIDAgVHcgLjk5MzUxNiBUdyAoc3RyaW5nIG9mIG5hbWVzLCBhIHNlcXVlbmNlIG9mIG5hbWVz
LCBhIHNlcXVlbmNlIG9mIDItdHVwbGVzIHdpdGgga2V5L3ZhbHVlIHBhaXJzLCBvciBhIG1hcHBp
bmcgXChlLmcuKSBUaiBUKiAwIFR3IDEuMTY4NTU1IFR3IChkaWN0aW9uYXJ5XCkgb2YgbmFtZXMg
dG8gdmFsdWVzLiBUaGUgbGFzdCB0d28gb3B0aW9ucyBlbmFibGUgYXNzaWduaW5nIGFyYml0cmFy
eSB2YWx1ZXMgdG8gZW51bWVyYXRpb25zOykgVGogVCogMCBUdyAuNTM3NDg1IFR3ICh0aGUgb3Ro
ZXJzIGF1dG8tYXNzaWduIGluY3JlYXNpbmcgaW50ZWdlcnMgc3RhcnRpbmcgd2l0aCAxLiBBIG5l
dyBjbGFzcyBkZXJpdmVkIGZyb20gKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVudW0gKSBUaiAv
RjEgMTAgVGYgMCAwIDAgcmcgKGlzIHJldHVybmVkLiBJbikgVGogVCogMCBUdyAob3RoZXIgd29y
ZHMsIHRoZSBhYm92ZSBhc3NpZ25tZW50IHRvICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChBbmlt
YWwgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlzIGVxdWl2YWxlbnQgdG86KSBUaiBUKiBFVA0K
LVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMjg4LjQyMzYgY20NCi1xDQotcQ0KLTEgMCAw
IDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUg
LjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYg
NDY4LjY4OTggNzIgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCA1MCBUbSAxMiBUTCAvRjQg
MTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBBbmltYWxzXChFbnVt
XCk6KSBUaiBUKiAoLi4uICAgYW50ID0gMSkgVGogVCogKC4uLiAgIGJlZSA9IDIpIFRqIFQqICgu
Li4gICBjYXQgPSAzKSBUaiBUKiAoLi4uICAgZG9nID0gNCkgVGogVCogRVQNCi1RDQotUQ0KLVEN
Ci1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDIzMi40MjM2IGNtDQotcQ0KLTAgMCAwIHJn
DQotQlQgMSAwIDAgMSAwIDM4IFRtIC9GMSAxMCBUZiAxMiBUTCAxLjIzOTk4NCBUdyAoUGlja2xp
bmcgZW51bXMgY3JlYXRlZCB3aXRoIHRoZSBmdW5jdGlvbmFsIEFQSSBjYW4gYmUgdHJpY2t5IGFz
IGZyYW1lIHN0YWNrIGltcGxlbWVudGF0aW9uIGRldGFpbHMgYXJlKSBUaiBUKiAwIFR3IC45Mzcx
MzIgVHcgKHVzZWQgdG8gdHJ5IGFuZCBmaWd1cmUgb3V0IHdoaWNoIG1vZHVsZSB0aGUgZW51bWVy
YXRpb24gaXMgYmVpbmcgY3JlYXRlZCBpbiBcKGUuZy4gaXQgd2lsbCBmYWlsIGlmIHlvdSB1c2Ug
YSkgVGogVCogMCBUdyAxLjMyMTE2MyBUdyAodXRpbGl0eSBmdW5jdGlvbiBpbiBzZXBhcmF0ZSBt
b2R1bGUsIGFuZCBhbHNvIG1heSBub3Qgd29yayBvbiBJcm9uUHl0aG9uIG9yIEp5dGhvblwpLiBU
aGUgc29sdXRpb24gaXMgdG8pIFRqIFQqIDAgVHcgKHNwZWNpZnkgdGhlIG1vZHVsZSBuYW1lIGV4
cGxpY2l0bHkgYXMgZm9sbG93czopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42
OTI5MSAxOTkuMjIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2
LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3
ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCAyNCByZSBCKg0KLVENCi1x
DQotQlQgMSAwIDAgMSAwIDIgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikg
VGogKD4pIFRqICggQW5pbWFscyA9IEVudW1cKCdBbmltYWxzJywgJ2FudCBiZWUgY2F0IGRvZycs
IG1vZHVsZT1fX25hbWVfX1wpKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEg
MCAwIDEgNjIuNjkyOTEgMTY2LjIyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDMuNSBUbSAyMSBU
TCAvRjMgMTcuNSBUZiAwIDAgMCByZyAoRGVyaXZlZCBFbnVtZXJhdGlvbnMpIFRqIFQqIEVUDQot
UQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxMzYuMjIzNiBjbQ0KLXENCi1CVCAxIDAgMCAx
IDAgMyBUbSAxOCBUTCAvRjMgMTUgVGYgMCAwIDAgcmcgKEludEVudW0pIFRqIFQqIEVUDQotUQ0K
LVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA5NC4yMjM2MiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAg
MjYgVG0gMS45OTgzMiBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKEEgdmFyaWF0aW9uIG9m
ICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChp
cyBwcm92aWRlZCB3aGljaCBpcyBhbHNvIGEgc3ViY2xhc3Mgb2YgKSBUaiAvRjQgMTAgVGYgMCAw
IDAgcmcgKGludCkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICguIE1lbWJlcnMgb2YgYW4gKSBUaiAv
RjQgMTAgVGYgMCAwIDAgcmcgKEludEVudW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGNhbiBi
ZSkgVGogVCogMCBUdyAuMDg3OTg0IFR3IChjb21wYXJlZCB0byBpbnRlZ2VyczsgYnkgZXh0ZW5z
aW9uLCBpbnRlZ2VyIGVudW1lcmF0aW9ucyBvZiBkaWZmZXJlbnQgdHlwZXMgY2FuIGFsc28gYmUg
Y29tcGFyZWQgdG8gZWFjaCkgVGogVCogMCBUdyAob3RoZXI6KSBUaiBUKiBFVA0KLVENCi1RDQot
IA0KLWVuZHN0cmVhbQ0KLWVuZG9iag0KLTYzIDAgb2JqDQotPDwgL0xlbmd0aCA0MTQxID4+DQot
c3RyZWFtDQotMSAwIDAgMSAwIDAgY20gIEJUIC9GMSAxMiBUZiAxNC40IFRMIEVUDQotcQ0KLTEg
MCAwIDEgNjIuNjkyOTEgNTcxLjgyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0K
LTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41
IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggMTkyIHJl
IEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMTcwIFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCBy
ZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIGZyb20gZW51bSBpbXBvcnQgSW50RW51bSkgVGogVCog
KD4pIFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBTaGFwZVwoSW50RW51bVwpOikgVGogVCogKC4u
LiAgIGNpcmNsZSA9IDEpIFRqIFQqICguLi4gICBzcXVhcmUgPSAyKSBUaiBUKiAoLi4uKSBUaiBU
KiAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNsYXNzIFJlcXVlc3RcKEludEVudW1cKTopIFRqIFQq
ICguLi4gICBwb3N0ID0gMSkgVGogVCogKC4uLiAgIGdldCA9IDIpIFRqIFQqICguLi4pIFRqIFQq
ICg+KSBUaiAoPikgVGogKD4pIFRqICggU2hhcGUgPT0gMSkgVGogVCogKEZhbHNlKSBUaiBUKiAo
PikgVGogKD4pIFRqICg+KSBUaiAoIFNoYXBlLmNpcmNsZSA9PSAxKSBUaiBUKiAoVHJ1ZSkgVGog
VCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBTaGFwZS5jaXJjbGUgPT0gUmVxdWVzdC5wb3N0KSBU
aiBUKiAoVHJ1ZSkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDU1MS44MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyIFRtIDEyIFRMIC9GMSAxMCBU
ZiAwIDAgMCByZyAoSG93ZXZlciwgdGhleSBzdGlsbCBjYW4ndCBiZSBjb21wYXJlZCB0byBzdGFu
ZGFyZCApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoRW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCBy
ZyAoZW51bWVyYXRpb25zOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5Mjkx
IDQxMC42MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2
LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAu
OTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDEzMiByZSBCKg0KLVENCi1xDQot
QlQgMSAwIDAgMSAwIDExMCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBU
aiAoPikgVGogKCBjbGFzcyBTaGFwZVwoSW50RW51bVwpOikgVGogVCogKC4uLiAgIGNpcmNsZSA9
IDEpIFRqIFQqICguLi4gICBzcXVhcmUgPSAyKSBUaiBUKiAoLi4uKSBUaiBUKiAoPikgVGogKD4p
IFRqICg+KSBUaiAoIGNsYXNzIENvbG9yXChFbnVtXCk6KSBUaiBUKiAoLi4uICAgcmVkID0gMSkg
VGogVCogKC4uLiAgIGdyZWVuID0gMikgVGogVCogKC4uLikgVGogVCogKD4pIFRqICg+KSBUaiAo
PikgVGogKCBTaGFwZS5jaXJjbGUgPT0gQ29sb3IucmVkKSBUaiBUKiAoRmFsc2UpIFRqIFQqIEVU
DQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAzOTAuNjIzNiBjbQ0K
LXENCi1CVCAxIDAgMCAxIDAgMiBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKEludEVudW0g
KSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKHZhbHVlcyBiZWhhdmUgbGlrZSBpbnRlZ2VycyBpbiBv
dGhlciB3YXlzIHlvdSdkIGV4cGVjdDopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2
Mi42OTI5MSAyOTcuNDIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAg
MSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45
NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCA4NCByZSBCKg0KLVEN
Ci1xDQotQlQgMSAwIDAgMSAwIDYyIFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGog
KD4pIFRqICg+KSBUaiAoIGludFwoU2hhcGUuY2lyY2xlXCkpIFRqIFQqICgxKSBUaiBUKiAoPikg
VGogKD4pIFRqICg+KSBUaiAoIFsnYScsICdiJywgJ2MnXVtTaGFwZS5jaXJjbGVdKSBUaiBUKiAo
J2InKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIFtpIGZvciBpIGluIHJhbmdlXChTaGFw
ZS5zcXVhcmVcKV0pIFRqIFQqIChbMCwgMV0pIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVEN
Ci1xDQotMSAwIDAgMSA2Mi42OTI5MSAyMjkuNDIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgNTAg
VG0gMS4xOTcxMjYgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChGb3IgdGhlIHZhc3QgbWFq
b3JpdHkgb2YgY29kZSwgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVudW0gKSBUaiAvRjEgMTAg
VGYgMCAwIDAgcmcgKGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkLCBzaW5jZSApIFRqIC9GNCAxMCBU
ZiAwIDAgMCByZyAoSW50RW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoYnJlYWtzIHNvbWUg
c2VtYW50aWMpIFRqIFQqIDAgVHcgLjc5MzMxOCBUdyAocHJvbWlzZXMgb2YgYW4gZW51bWVyYXRp
b24gXChieSBiZWluZyBjb21wYXJhYmxlIHRvIGludGVnZXJzLCBhbmQgdGh1cyBieSB0cmFuc2l0
aXZpdHkgdG8gb3RoZXIgdW5yZWxhdGVkKSBUaiBUKiAwIFR3IC41NTQ5ODUgVHcgKGVudW1lcmF0
aW9uc1wpLiBJdCBzaG91bGQgYmUgdXNlZCBvbmx5IGluIHNwZWNpYWwgY2FzZXMgd2hlcmUgdGhl
cmUncyBubyBvdGhlciBjaG9pY2U7IGZvciBleGFtcGxlLCB3aGVuKSBUaiBUKiAwIFR3IC43NDYx
MzYgVHcgKGludGVnZXIgY29uc3RhbnRzIGFyZSByZXBsYWNlZCB3aXRoIGVudW1lcmF0aW9ucyBh
bmQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaXMgcmVxdWlyZWQgd2l0aCBjb2RlIHRoYXQpIFRq
IFQqIDAgVHcgKHN0aWxsIGV4cGVjdHMgaW50ZWdlcnMuKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0K
LTEgMCAwIDEgNjIuNjkyOTEgMTk5LjQyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDMgVG0gMTgg
VEwgL0YzIDE1IFRmIDAgMCAwIHJnIChPdGhlcnMpIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAw
IDAgMSA2Mi42OTI5MSAxODEuNDIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMiBUbSAxMiBUTCAv
RjEgMTAgVGYgMCAwIDAgcmcgKFdoaWxlICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChJbnRFbnVt
ICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChpcyBwYXJ0IG9mIHRoZSApIFRqIC9GNCAxMCBUZiAw
IDAgMCByZyAoZW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAobW9kdWxlLCBpdCB3b3VsZCBi
ZSB2ZXJ5IHNpbXBsZSB0byBpbXBsZW1lbnQgaW5kZXBlbmRlbnRseTopIFRqIFQqIEVUDQotUQ0K
LVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxMzYuMjIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAw
IDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYy
NzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0Njgu
Njg5OCAzNiByZSBCKg0KLVENCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMTQgVG0gL0Y0
IDEwIFRmIDEyIFRMIChjbGFzcyBJbnRFbnVtXChpbnQsIEVudW1cKTopIFRqIFQqICggICAgcGFz
cykgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDEw
NC4yMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAuMzYxNDEyIFR3IDEyIFRMIC9GMSAx
MCBUZiAwIDAgMCByZyAoVGhpcyBkZW1vbnN0cmF0ZXMgaG93IHNpbWlsYXIgZGVyaXZlZCBlbnVt
ZXJhdGlvbnMgY2FuIGJlIGRlZmluZWQ7IGZvciBleGFtcGxlIGEgKSBUaiAvRjQgMTAgVGYgMCAw
IDAgcmcgKFN0ckVudW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKHRoYXQgbWl4ZXMpIFRqIFQq
IDAgVHcgKGluICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChzdHIgKSBUaiAvRjEgMTAgVGYgMCAw
IDAgcmcgKGluc3RlYWQgb2YgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKGludCkgVGogL0YxIDEw
IFRmIDAgMCAwIHJnICguKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEg
ODYuMjIzNjIgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAvRjEgMTAgVGYg
MTIgVEwgKFNvbWUgcnVsZXM6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjky
OTEgODAuMjIzNjIgY20NCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgODAuMjIzNjIgY20NCi1R
DQotIA0KLWVuZHN0cmVhbQ0KLWVuZG9iag0KLTY0IDAgb2JqDQotPDwgL0xlbmd0aCA3MTA4ID4+
DQotc3RyZWFtDQotMSAwIDAgMSAwIDAgY20gIEJUIC9GMSAxMiBUZiAxNC40IFRMIEVUDQotcQ0K
LTEgMCAwIDEgNjIuNjkyOTEgNzQxLjAyMzYgY20NCi0wIDAgMCByZw0KLUJUIC9GMSAxMCBUZiAx
MiBUTCBFVA0KLXENCi0xIDAgMCAxIDYgOSBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEg
MCAyIFRtIC9GMSAxMCBUZiAxMiBUTCA1LjY2IDAgVGQgKDEuKSBUaiBUKiAtNS42NiAwIFRkIEVU
DQotUQ0KLVENCi1xDQotMSAwIDAgMSAyMyAtMyBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0g
LjQ3NzMxOCBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFdoZW4gc3ViY2xhc3NpbmcgKSBU
aiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVudW0pIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoLCBtaXgt
aW4gdHlwZXMgbXVzdCBhcHBlYXIgYmVmb3JlICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVt
ICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChpdHNlbGYgaW4gdGhlIHNlcXVlbmNlIG9mIGJhc2Vz
LCBhcykgVGogVCogMCBUdyAoaW4gdGhlICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChJbnRFbnVt
ICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChleGFtcGxlIGFib3ZlLikgVGogVCogRVQNCi1RDQot
UQ0KLXENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDczNS4wMjM2IGNtDQotUQ0KLXEN
Ci0xIDAgMCAxIDYyLjY5MjkxIDY5OS4wMjM2IGNtDQotMCAwIDAgcmcNCi1CVCAvRjEgMTAgVGYg
MTIgVEwgRVQNCi1xDQotMSAwIDAgMSA2IDIxIGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAg
MSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIDUuNjYgMCBUZCAoMi4pIFRqIFQqIC01LjY2IDAgVGQg
RVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDIzIC0zIGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyNiBU
bSAxLjE0NzA0NSBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFdoaWxlICkgVGogL0Y0IDEw
IFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChjYW4gaGF2ZSBtZW1i
ZXJzIG9mIGFueSB0eXBlLCBvbmNlIHlvdSBtaXggaW4gYW4gYWRkaXRpb25hbCB0eXBlLCBhbGwg
dGhlIG1lbWJlcnMpIFRqIFQqIDAgVHcgLjQyMDU3NCBUdyAobXVzdCBoYXZlIHZhbHVlcyBvZiB0
aGF0IHR5cGUsIGUuZy4gKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKGludCApIFRqIC9GMSAxMCBU
ZiAwIDAgMCByZyAoYWJvdmUuIFRoaXMgcmVzdHJpY3Rpb24gZG9lcyBub3QgYXBwbHkgdG8gbWl4
LWlucyB3aGljaCBvbmx5KSBUaiBUKiAwIFR3IChhZGQgbWV0aG9kcyBhbmQgZG9uJ3Qgc3BlY2lm
eSBhbm90aGVyIGRhdGEgdHlwZSBzdWNoIGFzICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChpbnQg
KSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG9yICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChzdHIp
IFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi1RDQotUQ0K
LXENCi0xIDAgMCAxIDYyLjY5MjkxIDY5My4wMjM2IGNtDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5
MjkxIDY2OS4wMjM2IGNtDQotMCAwIDAgcmcNCi1CVCAvRjEgMTAgVGYgMTIgVEwgRVQNCi1xDQot
MSAwIDAgMSA2IDkgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAvRjEgMTAg
VGYgMTIgVEwgNS42NiAwIFRkICgzLikgVGogVCogLTUuNjYgMCBUZCBFVA0KLVENCi1RDQotcQ0K
LTEgMCAwIDEgMjMgLTMgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIC4xMDA1NDIgVHcgMTIg
VEwgL0YxIDEwIFRmIDAgMCAwIHJnIChXaGVuIGFub3RoZXIgZGF0YSB0eXBlIGlzIG1peGVkIGlu
LCB0aGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKHZhbHVlICkgVGogL0YxIDEwIFRmIDAgMCAw
IHJnIChhdHRyaWJ1dGUgaXMgKSBUaiAvRjUgMTAgVGYgKG5vdCB0aGUgc2FtZSApIFRqIC9GMSAx
MCBUZiAoYXMgdGhlIGVudW0gbWVtYmVyIGl0c2VsZiwpIFRqIFQqIDAgVHcgKGFsdGhvdWdoIGl0
IGlzIGVxdWl2YWxhbnQgYW5kIHdpbGwgY29tcGFyZSBlcXVhbC4pIFRqIFQqIEVUDQotUQ0KLVEN
Ci1xDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2NjMuMDIzNiBjbQ0KLVENCi1xDQot
MSAwIDAgMSA2Mi42OTI5MSA2MDkuMDIzNiBjbQ0KLTAgMCAwIHJnDQotQlQgL0YxIDEwIFRmIDEy
IFRMIEVUDQotcQ0KLTEgMCAwIDEgNiAzOSBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEg
MCAyIFRtIC9GMSAxMCBUZiAxMiBUTCA1LjY2IDAgVGQgKDQuKSBUaiBUKiAtNS42NiAwIFRkIEVU
DQotUQ0KLVENCi1xDQotMSAwIDAgMSAyMyAyNyBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0g
MS44NTk5OCBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKCUtc3R5bGUgZm9ybWF0dGluZzog
KSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKCVzICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChhbmQg
KSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKCVyICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChjYWxs
ICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKCdz
ICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChfX3N0cl9fICkgVGogL0YxIDEwIFRmIDAgMCAwIHJn
IChhbmQgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKF9fcmVwcl9fICkgVGogL0YxIDEwIFRmIDAg
MCAwIHJnIChyZXNwZWN0aXZlbHk7IG90aGVyIGNvZGVzKSBUaiBUKiAwIFR3IChcKHN1Y2ggYXMg
KSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKCVpICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChvciAp
IFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoJWggKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGZvciBJ
bnRFbnVtXCkgdHJlYXQgdGhlIGVudW0gbWVtYmVyIGFzIGl0cyBtaXhlZC1pbiB0eXBlLikgVGog
VCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDIzIC0zIGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAx
NCBUbSAuMDY3MDQ1IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoTm90ZTogUHJpb3IgdG8g
UHl0aG9uIDMuNCB0aGVyZSBpcyBhIGJ1ZyBpbiApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoc3Ry
KSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKCdzICUtZm9ybWF0dGluZzogKSBUaiAvRjQgMTAgVGYg
MCAwIDAgcmcgKGludCApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoc3ViY2xhc3NlcyBhcmUgcHJp
bnRlZCBhcyBzdHJpbmdzKSBUaiBUKiAwIFR3IChhbmQgbm90IG51bWJlcnMgd2hlbiB0aGUgKSBU
aiAvRjQgMTAgVGYgMCAwIDAgcmcgKCVkKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKCwgKSBUaiAv
RjQgMTAgVGYgMCAwIDAgcmcgKCVpKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKCwgb3IgKSBUaiAv
RjQgMTAgVGYgMCAwIDAgcmcgKCV1ICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChjb2RlcyBhcmUg
dXNlZC4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5
MSA2MDMuMDIzNiBjbQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA1NzkuMDIzNiBjbQ0KLTAg
MCAwIHJnDQotQlQgL0YxIDEwIFRmIDEyIFRMIEVUDQotcQ0KLTEgMCAwIDEgNiA5IGNtDQotcQ0K
LTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIDUuNjYgMCBUZCAo
NS4pIFRqIFQqIC01LjY2IDAgVGQgRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDIzIC0zIGNtDQot
cQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAxLjg4MDc1MSBUdyAxMiBUTCAvRjQgMTAgVGYgMCAwIDAg
cmcgKHN0ci5fX2Zvcm1hdF9fICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChcKG9yICkgVGogL0Y0
IDEwIFRmIDAgMCAwIHJnIChmb3JtYXQpIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoXCkgd2lsbCB1
c2UgdGhlIG1peGVkLWluIHR5cGUncyApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoX19mb3JtYXRf
XykgVGogL0YxIDEwIFRmIDAgMCAwIHJnICguIElmIHRoZSApIFRqIC9GNCAxMCBUZiAwIDAgMCBy
ZyAoRW51bSkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICgncyApIFRqIC9GNCAxMCBUZiAwIDAgMCBy
ZyAoc3RyICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChvcikgVGogVCogMCBUdyAvRjQgMTAgVGYg
MCAwIDAgcmcgKHJlcHIgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlzIGRlc2lyZWQgdXNlIHRo
ZSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoIXMgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG9y
ICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnICghcikgVGogL0YxIDEwIFRmIDAgMCAwIHJnICggKSBU
aiAvRjQgMTAgVGYgMCAwIDAgcmcgKHN0ciApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoZm9ybWF0
IGNvZGVzLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5
MjkxIDU3OS4wMjM2IGNtDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU0Ni4wMjM2IGNtDQot
cQ0KLUJUIDEgMCAwIDEgMCAzLjUgVG0gMjEgVEwgL0YzIDE3LjUgVGYgMCAwIDAgcmcgKERlY29y
YXRvcnMpIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA1MTYuMDIzNiBj
bQ0KLXENCi1CVCAxIDAgMCAxIDAgMyBUbSAxOCBUTCAvRjMgMTUgVGYgMCAwIDAgcmcgKHVuaXF1
ZSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDQ4Ni4wMjM2IGNtDQot
cQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAuMjg3MjUxIFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCBy
ZyAoQSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoY2xhc3MgKSBUaiAvRjEgMTAgVGYgMCAwIDAg
cmcgKGRlY29yYXRvciBzcGVjaWZpY2FsbHkgZm9yIGVudW1lcmF0aW9ucy4gSXQgc2VhcmNoZXMg
YW4gZW51bWVyYXRpb24ncyApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoX19tZW1iZXJzX18gKSBU
aiAvRjEgMTAgVGYgMCAwIDAgcmcgKGdhdGhlcmluZykgVGogVCogMCBUdyAoYW55IGFsaWFzZXMg
aXQgZmluZHM7IGlmIGFueSBhcmUgZm91bmQgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKFZhbHVl
RXJyb3IgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlzIHJhaXNlZCB3aXRoIHRoZSBkZXRhaWxz
OikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDM2OC44MjM2IGNtDQot
cQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2
Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUg
cmcNCi1uIC02IC02IDQ2OC42ODk4IDEwOCByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDg2
IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIEB1bmlx
dWUpIFRqIFQqICguLi4gY2xhc3MgTm9EdXBlc1woRW51bVwpOikgVGogVCogKC4uLiAgICBmaXJz
dCA9ICdvbmUnKSBUaiBUKiAoLi4uICAgIHNlY29uZCA9ICd0d28nKSBUaiBUKiAoLi4uICAgIHRo
aXJkID0gJ3R3bycpIFRqIFQqIChUcmFjZWJhY2sgXChtb3N0IHJlY2VudCBjYWxsIGxhc3RcKTop
IFRqIFQqICguLi4pIFRqIFQqIChWYWx1ZUVycm9yOiBkdXBsaWNhdGUgbmFtZXMgZm91bmQgaW4g
KSBUaiAoPCkgVGogKGVudW0gJ05vRHVwZXMnKSBUaiAoPikgVGogKDogdGhpcmQgLSkgVGogKD4p
IFRqICggc2Vjb25kKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEg
NjIuNjkyOTEgMzM1LjgyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDMuNSBUbSAyMSBUTCAvRjMg
MTcuNSBUZiAwIDAgMCByZyAoSW50ZXJlc3RpbmcgZXhhbXBsZXMpIFRqIFQqIEVUDQotUQ0KLVEN
Ci1xDQotMSAwIDAgMSA2Mi42OTI5MSAyOTMuODIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMjYg
VG0gLjU5MzczNSBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFdoaWxlICkgVGogL0Y0IDEw
IFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChhbmQgKSBUaiAvRjQg
MTAgVGYgMCAwIDAgcmcgKEludEVudW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGFyZSBleHBl
Y3RlZCB0byBjb3ZlciB0aGUgbWFqb3JpdHkgb2YgdXNlLWNhc2VzLCB0aGV5IGNhbm5vdCBjb3Zl
ciB0aGVtIGFsbC4pIFRqIFQqIDAgVHcgLjg5NzA0NSBUdyAoSGVyZSBhcmUgcmVjaXBlcyBmb3Ig
c29tZSBkaWZmZXJlbnQgdHlwZXMgb2YgZW51bWVyYXRpb25zIHRoYXQgY2FuIGJlIHVzZWQgZGly
ZWN0bHksIG9yIGFzIGV4YW1wbGVzIGZvcikgVGogVCogMCBUdyAoY3JlYXRpbmcgb25lJ3Mgb3du
LikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDI2My44MjM2IGNtDQot
cQ0KLUJUIDEgMCAwIDEgMCAzIFRtIDE4IFRMIC9GMyAxNSBUZiAwIDAgMCByZyAoQXV0b051bWJl
cikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDI0NS44MjM2IGNtDQot
cQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIChBdm9pZHMg
aGF2aW5nIHRvIHNwZWNpZnkgdGhlIHZhbHVlIGZvciBlYWNoIGVudW1lcmF0aW9uIG1lbWJlcjop
IFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA4MC42MjM2MiBjbQ0KLXEN
Ci1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3
NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJn
DQotbiAtNiAtNiA0NjguNjg5OCAxNTYgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCAxMzQg
VG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggY2xhc3Mg
QXV0b051bWJlclwoRW51bVwpOikgVGogVCogKC4uLiAgICAgZGVmIF9fbmV3X19cKGNsc1wpOikg
VGogVCogKC4uLiAgICAgICAgIHZhbHVlID0gbGVuXChjbHMuX19tZW1iZXJzX19cKSArIDEpIFRq
IFQqICguLi4gICAgICAgICBvYmogPSBvYmplY3QuX19uZXdfX1woY2xzXCkpIFRqIFQqICguLi4g
ICAgICAgICBvYmouX3ZhbHVlXyA9IHZhbHVlKSBUaiBUKiAoLi4uICAgICAgICAgcmV0dXJuIG9i
aikgVGogVCogKC4uLikgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBDb2xvclwo
QXV0b051bWJlclwpOikgVGogVCogKC4uLiAgICAgX19vcmRlcl9fID0gInJlZCBncmVlbiBibHVl
IiAgIyBvbmx5IG5lZWRlZCBpbiAyLngpIFRqIFQqICguLi4gICAgIHJlZCA9IFwoXCkpIFRqIFQq
ICguLi4gICAgIGdyZWVuID0gXChcKSkgVGogVCogKC4uLiAgICAgYmx1ZSA9IFwoXCkpIFRqIFQq
IEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi0gDQotZW5kc3RyZWFtDQotZW5kb2JqDQotNjUgMCBv
YmoNCi08PCAvTGVuZ3RoIDQxNTggPj4NCi1zdHJlYW0NCi0xIDAgMCAxIDAgMCBjbSAgQlQgL0Yx
IDEyIFRmIDE0LjQgVEwgRVQNCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA3MTUuODIzNiBjbQ0KLXEN
Ci1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3
NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJn
DQotbiAtNiAtNiA0NjguNjg5OCA0OCByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDI2IFRt
IDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoLi4uKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBU
aiAoIENvbG9yLmdyZWVuLnZhbHVlID09IDIpIFRqIFQqIChUcnVlKSBUaiBUKiBFVA0KLVENCi1R
DQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNjk1LjgyMzYgY20NCi1xDQotMCAw
IDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAvRjEgMTAgVGYgMTIgVEwgKE5vdGU6KSBUaiBUKiBF
VA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNjg5LjgyMzYgY20NCi1RDQotcQ0KLTEg
MCAwIDEgNjIuNjkyOTEgNjUzLjgyMzYgY20NCi0wIDAgMCByZw0KLUJUIC9GMSAxMCBUZiAxMiBU
TCBFVA0KLUJUIDEgMCAwIDEgMCAyIFRtICBUKiBFVA0KLXENCi0xIDAgMCAxIDIwIDAgY20NCi1x
DQotQlQgMSAwIDAgMSAwIDI2IFRtIC4xNDQxMDQgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJn
IChUaGUgKSBUaiAvRjUgMTAgVGYgMCAwIDAgcmcgKF9fbmV3X18gKSBUaiAvRjEgMTAgVGYgMCAw
IDAgcmcgKG1ldGhvZCwgaWYgZGVmaW5lZCwgaXMgdXNlZCBkdXJpbmcgY3JlYXRpb24gb2YgdGhl
IEVudW0gbWVtYmVyczsgaXQgaXMgdGhlbiByZXBsYWNlZCBieSkgVGogVCogMCBUdyAuNzk5OTg1
IFR3IChFbnVtJ3MgKSBUaiAvRjUgMTAgVGYgMCAwIDAgcmcgKF9fbmV3X18gKSBUaiAvRjEgMTAg
VGYgMCAwIDAgcmcgKHdoaWNoIGlzIHVzZWQgYWZ0ZXIgY2xhc3MgY3JlYXRpb24gZm9yIGxvb2t1
cCBvZiBleGlzdGluZyBtZW1iZXJzLiBEdWUgdG8gdGhlIHdheSkgVGogVCogMCBUdyAoRW51bXMg
YXJlIHN1cHBvc2VkIHRvIGJlaGF2ZSwgdGhlcmUgaXMgbm8gd2F5IHRvIGN1c3RvbWl6ZSBFbnVt
J3MgKSBUaiAvRjUgMTAgVGYgMCAwIDAgcmcgKF9fbmV3X18pIFRqIC9GMSAxMCBUZiAwIDAgMCBy
ZyAoLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5Mjkx
IDY1My44MjM2IGNtDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDYyMy44MjM2IGNtDQotcQ0K
LUJUIDEgMCAwIDEgMCAzIFRtIDE4IFRMIC9GMyAxNSBUZiAwIDAgMCByZyAoVW5pcXVlRW51bSkg
VGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDYwNS44MjM2IGNtDQotcQ0K
LTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIChSYWlzZXMgYW4g
ZXJyb3IgaWYgYSBkdXBsaWNhdGUgbWVtYmVyIG5hbWUgaXMgZm91bmQgaW5zdGVhZCBvZiBjcmVh
dGluZyBhbiBhbGlhczopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAz
NjguNjIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42
IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2
MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCAyMjggcmUgQioNCi1RDQotcQ0KLUJU
IDEgMCAwIDEgMCAyMDYgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGog
KD4pIFRqICggY2xhc3MgVW5pcXVlRW51bVwoRW51bVwpOikgVGogVCogKC4uLiAgICAgZGVmIF9f
aW5pdF9fXChzZWxmLCAqYXJnc1wpOikgVGogVCogKC4uLiAgICAgICAgIGNscyA9IHNlbGYuX19j
bGFzc19fKSBUaiBUKiAoLi4uICAgICAgICAgaWYgYW55XChzZWxmLnZhbHVlID09IGUudmFsdWUg
Zm9yIGUgaW4gY2xzXCk6KSBUaiBUKiAoLi4uICAgICAgICAgICAgIGEgPSBzZWxmLm5hbWUpIFRq
IFQqICguLi4gICAgICAgICAgICAgZSA9IGNsc1woc2VsZi52YWx1ZVwpLm5hbWUpIFRqIFQqICgu
Li4gICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvclwoKSBUaiBUKiAoLi4uICAgICAgICAgICAg
ICAgICAgICAgImFsaWFzZXMgbm90IGFsbG93ZWQgaW4gVW5pcXVlRW51bTogICVyIC0tKSBUaiAo
PikgVGogKCAlciIpIFRqIFQqICguLi4gICAgICAgICAgICAgICAgICAgICAlIFwoYSwgZVwpXCkp
IFRqIFQqICguLi4pIFRqIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggY2xhc3MgQ29sb3JcKFVu
aXF1ZUVudW1cKTopIFRqIFQqICguLi4gICAgIHJlZCA9IDEpIFRqIFQqICguLi4gICAgIGdyZWVu
ID0gMikgVGogVCogKC4uLiAgICAgYmx1ZSA9IDMpIFRqIFQqICguLi4gICAgIGdyZW5lID0gMikg
VGogVCogKFRyYWNlYmFjayBcKG1vc3QgcmVjZW50IGNhbGwgbGFzdFwpOikgVGogVCogKC4uLikg
VGogVCogKFZhbHVlRXJyb3I6IGFsaWFzZXMgbm90IGFsbG93ZWQgaW4gVW5pcXVlRW51bTogICdn
cmVuZScgLS0pIFRqICg+KSBUaiAoICdncmVlbicpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0K
LVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAzMzguNjIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAg
MyBUbSAxOCBUTCAvRjMgMTUgVGYgMCAwIDAgcmcgKE9yZGVyZWRFbnVtKSBUaiBUKiBFVA0KLVEN
Ci1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMzA4LjYyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAw
IDE0IFRtIDEuMzM1OTg0IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoQW4gb3JkZXJlZCBl
bnVtZXJhdGlvbiB0aGF0IGlzIG5vdCBiYXNlZCBvbiApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAo
SW50RW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoYW5kIHNvIG1haW50YWlucyB0aGUgbm9y
bWFsICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJn
IChpbnZhcmlhbnRzKSBUaiBUKiAwIFR3IChcKHN1Y2ggYXMgbm90IGJlaW5nIGNvbXBhcmFibGUg
dG8gb3RoZXIgZW51bWVyYXRpb25zXCk6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEg
NjIuNjkyOTEgODMuNDIzNjIgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAw
IDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0u
OTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggMjE2IHJlIEIqDQot
UQ0KLXENCi1CVCAxIDAgMCAxIDAgMTk0IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikg
VGogKD4pIFRqICg+KSBUaiAoIGNsYXNzIE9yZGVyZWRFbnVtXChFbnVtXCk6KSBUaiBUKiAoLi4u
ICAgICBkZWYgX19nZV9fXChzZWxmLCBvdGhlclwpOikgVGogVCogKC4uLiAgICAgICAgIGlmIHNl
bGYuX19jbGFzc19fIGlzIG90aGVyLl9fY2xhc3NfXzopIFRqIFQqICguLi4gICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX3ZhbHVlXyApIFRqICg+KSBUaiAoPSBvdGhlci5fdmFsdWVfKSBUaiBUKiAo
Li4uICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkKSBUaiBUKiAoLi4uICAgICBkZWYgX19n
dF9fXChzZWxmLCBvdGhlclwpOikgVGogVCogKC4uLiAgICAgICAgIGlmIHNlbGYuX19jbGFzc19f
IGlzIG90aGVyLl9fY2xhc3NfXzopIFRqIFQqICguLi4gICAgICAgICAgICAgcmV0dXJuIHNlbGYu
X3ZhbHVlXyApIFRqICg+KSBUaiAoIG90aGVyLl92YWx1ZV8pIFRqIFQqICguLi4gICAgICAgICBy
ZXR1cm4gTm90SW1wbGVtZW50ZWQpIFRqIFQqICguLi4gICAgIGRlZiBfX2xlX19cKHNlbGYsIG90
aGVyXCk6KSBUaiBUKiAoLi4uICAgICAgICAgaWYgc2VsZi5fX2NsYXNzX18gaXMgb3RoZXIuX19j
bGFzc19fOikgVGogVCogKC4uLiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fdmFsdWVfICkgVGog
KDwpIFRqICg9IG90aGVyLl92YWx1ZV8pIFRqIFQqICguLi4gICAgICAgICByZXR1cm4gTm90SW1w
bGVtZW50ZWQpIFRqIFQqICguLi4gICAgIGRlZiBfX2x0X19cKHNlbGYsIG90aGVyXCk6KSBUaiBU
KiAoLi4uICAgICAgICAgaWYgc2VsZi5fX2NsYXNzX18gaXMgb3RoZXIuX19jbGFzc19fOikgVGog
VCogKC4uLiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fdmFsdWVfICkgVGogKDwpIFRqICggb3Ro
ZXIuX3ZhbHVlXykgVGogVCogKC4uLiAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZCkgVGog
VCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLSANCi1lbmRzdHJlYW0NCi1lbmRvYmoNCi02NiAw
IG9iag0KLTw8IC9MZW5ndGggNDAzOSA+Pg0KLXN0cmVhbQ0KLTEgMCAwIDEgMCAwIGNtICBCVCAv
RjEgMTIgVGYgMTQuNCBUTCBFVA0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDYxOS44MjM2IGNtDQot
cQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2
Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUg
cmcNCi1uIC02IC02IDQ2OC42ODk4IDE0NCByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDEy
MiBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKC4uLikgVGogVCogKD4pIFRqICg+KSBUaiAo
PikgVGogKCBjbGFzcyBHcmFkZVwoT3JkZXJlZEVudW1cKTopIFRqIFQqICguLi4gICAgIF9fb3Jk
ZXJlZF9fID0gJ0EgQiBDIEQgRicpIFRqIFQqICguLi4gICAgIEEgPSA1KSBUaiBUKiAoLi4uICAg
ICBCID0gNCkgVGogVCogKC4uLiAgICAgQyA9IDMpIFRqIFQqICguLi4gICAgIEQgPSAyKSBUaiBU
KiAoLi4uICAgICBGID0gMSkgVGogVCogKC4uLikgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGog
KCBHcmFkZS5DICkgVGogKDwpIFRqICggR3JhZGUuQSkgVGogVCogKFRydWUpIFRqIFQqIEVUDQot
UQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA1ODkuODIzNiBjbQ0KLXEN
Ci1CVCAxIDAgMCAxIDAgMyBUbSAxOCBUTCAvRjMgMTUgVGYgMCAwIDAgcmcgKFBsYW5ldCkgVGog
VCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU3MS44MjM2IGNtDQotcQ0KLUJU
IDEgMCAwIDEgMCAyIFRtIDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoSWYgKSBUaiAvRjQgMTAg
VGYgMCAwIDAgcmcgKF9fbmV3X18gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG9yICkgVGogL0Y0
IDEwIFRmIDAgMCAwIHJnIChfX2luaXRfXyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoaXMgZGVm
aW5lZCB0aGUgdmFsdWUgb2YgdGhlIGVudW0gbWVtYmVyIHdpbGwgYmUgcGFzc2VkIHRvIHRob3Nl
IG1ldGhvZHM6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMjg2LjYy
MzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0K
LXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQg
Ljg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggMjc2IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAg
MCAxIDAgMjU0IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBU
aiAoIGNsYXNzIFBsYW5ldFwoRW51bVwpOikgVGogVCogKC4uLiAgICAgTUVSQ1VSWSA9IFwoMy4z
MDNlKzIzLCAyLjQzOTdlNlwpKSBUaiBUKiAoLi4uICAgICBWRU5VUyAgID0gXCg0Ljg2OWUrMjQs
IDYuMDUxOGU2XCkpIFRqIFQqICguLi4gICAgIEVBUlRIICAgPSBcKDUuOTc2ZSsyNCwgNi4zNzgx
NGU2XCkpIFRqIFQqICguLi4gICAgIE1BUlMgICAgPSBcKDYuNDIxZSsyMywgMy4zOTcyZTZcKSkg
VGogVCogKC4uLiAgICAgSlVQSVRFUiA9IFwoMS45ZSsyNywgICA3LjE0OTJlN1wpKSBUaiBUKiAo
Li4uICAgICBTQVRVUk4gID0gXCg1LjY4OGUrMjYsIDYuMDI2OGU3XCkpIFRqIFQqICguLi4gICAg
IFVSQU5VUyAgPSBcKDguNjg2ZSsyNSwgMi41NTU5ZTdcKSkgVGogVCogKC4uLiAgICAgTkVQVFVO
RSA9IFwoMS4wMjRlKzI2LCAyLjQ3NDZlN1wpKSBUaiBUKiAoLi4uICAgICBkZWYgX19pbml0X19c
KHNlbGYsIG1hc3MsIHJhZGl1c1wpOikgVGogVCogKC4uLiAgICAgICAgIHNlbGYubWFzcyA9IG1h
c3MgICAgICAgIyBpbiBraWxvZ3JhbXMpIFRqIFQqICguLi4gICAgICAgICBzZWxmLnJhZGl1cyA9
IHJhZGl1cyAgICMgaW4gbWV0ZXJzKSBUaiBUKiAoLi4uICAgICBAcHJvcGVydHkpIFRqIFQqICgu
Li4gICAgIGRlZiBzdXJmYWNlX2dyYXZpdHlcKHNlbGZcKTopIFRqIFQqICguLi4gICAgICAgICAj
IHVuaXZlcnNhbCBncmF2aXRhdGlvbmFsIGNvbnN0YW50ICBcKG0zIGtnLTEgcy0yXCkpIFRqIFQq
ICguLi4gICAgICAgICBHID0gNi42NzMwMEUtMTEpIFRqIFQqICguLi4gICAgICAgICByZXR1cm4g
RyAqIHNlbGYubWFzcyAvIFwoc2VsZi5yYWRpdXMgKiBzZWxmLnJhZGl1c1wpKSBUaiBUKiAoLi4u
KSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIFBsYW5ldC5FQVJUSC52YWx1ZSkgVGogVCog
KFwoNS45NzZlKzI0LCA2Mzc4MTQwLjBcKSkgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBQ
bGFuZXQuRUFSVEguc3VyZmFjZV9ncmF2aXR5KSBUaiBUKiAoOS44MDI2NTI3NDMzMzcxMjkpIFRq
IFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAyNTMuNjIz
NiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMy41IFRtIDIxIFRMIC9GMyAxNy41IFRmIDAgMCAwIHJn
IChIb3cgYXJlIEVudW1zIGRpZmZlcmVudD8pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAg
MSA2Mi42OTI5MSAyMjMuNjIzNiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAxNCBU
bSAvRjEgMTAgVGYgMTIgVEwgMi4wOTA2NTEgVHcgKEVudW1zIGhhdmUgYSBjdXN0b20gbWV0YWNs
YXNzIHRoYXQgYWZmZWN0cyBtYW55IGFzcGVjdHMgb2YgYm90aCBkZXJpdmVkIEVudW0gY2xhc3Nl
cyBhbmQgdGhlaXIpIFRqIFQqIDAgVHcgKGluc3RhbmNlcyBcKG1lbWJlcnNcKS4pIFRqIFQqIEVU
DQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxOTMuNjIzNiBjbQ0KLXENCi1CVCAxIDAg
MCAxIDAgMyBUbSAxOCBUTCAvRjMgMTUgVGYgMCAwIDAgcmcgKEVudW0gQ2xhc3NlcykgVGogVCog
RVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDEyNy42MjM2IGNtDQotcQ0KLUJUIDEg
MCAwIDEgMCA1MCBUbSAxLjI2MzYxNSBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFRoZSAp
IFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoRW51bU1ldGEgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcg
KG1ldGFjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIHRoZSApIFRqIC9GNCAxMCBU
ZiAwIDAgMCByZyAoX19jb250YWluc19fKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKCwgKSBUaiAv
RjQgMTAgVGYgMCAwIDAgcmcgKF9fZGlyX18pIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoLCApIFRq
IC9GNCAxMCBUZiAwIDAgMCByZyAoX19pdGVyX18gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGFu
ZCkgVGogVCogMCBUdyAyLjI2NDcyNCBUdyAob3RoZXIgbWV0aG9kcyB0aGF0IGFsbG93IG9uZSB0
byBkbyB0aGluZ3Mgd2l0aCBhbiApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoRW51bSApIFRqIC9G
MSAxMCBUZiAwIDAgMCByZyAoY2xhc3MgdGhhdCBmYWlsIG9uIGEgdHlwaWNhbCBjbGFzcywgc3Vj
aCBhcykgVGogVCogMCBUdyAyLjU5NDE0NyBUdyAvRjQgMTAgVGYgMCAwIDAgcmcgKGxpc3RcKENv
bG9yXCkgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG9yICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJn
IChzb21lX3ZhcikgVGogKCApIFRqIChpbikgVGogKCApIFRqIChDb2xvcikgVGogL0YxIDEwIFRm
IDAgMCAwIHJnICguICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtTWV0YSApIFRqIC9GMSAx
MCBUZiAwIDAgMCByZyAoaXMgcmVzcG9uc2libGUgZm9yIGVuc3VyaW5nIHRoYXQgdmFyaW91cyBv
dGhlcikgVGogVCogMCBUdyAyLjE5NjkwNSBUdyAobWV0aG9kcyBvbiB0aGUgZmluYWwgKSBUaiAv
RjQgMTAgVGYgMCAwIDAgcmcgKEVudW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGNsYXNzIGFy
ZSBjb3JyZWN0IFwoc3VjaCBhcyApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoX19uZXdfXykgVGog
L0YxIDEwIFRmIDAgMCAwIHJnICgsICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChfX2dldG5ld2Fy
Z3NfXykgVGogL0YxIDEwIFRmIDAgMCAwIHJnICgsICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChf
X3N0cl9fICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChhbmQpIFRqIFQqIDAgVHcgL0Y0IDEwIFRm
IDAgMCAwIHJnIChfX3JlcHJfXykgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChcKS4pIFRqIFQqIEVU
DQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxMTUuNjIzNiBjbQ0KLVENCi0gDQotZW5k
c3RyZWFtDQotZW5kb2JqDQotNjcgMCBvYmoNCi08PCAvTGVuZ3RoIDU0NTMgPj4NCi1zdHJlYW0N
Ci0xIDAgMCAxIDAgMCBjbSAgQlQgL0YxIDEyIFRmIDE0LjQgVEwgRVQNCi1xDQotMSAwIDAgMSA2
Mi42OTI5MSA2ODIuMDIzNiBjbQ0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAwIDgz
IDQ2OS44ODk4IC04MyByZSBmKg0KLTAgMCAwIHJnDQotQlQgL0YxIDEwIFRmIDEyIFRMIEVUDQot
QlQgMSAwIDAgMSA2IDU3IFRtICBUKiBFVA0KLXENCi0xIDAgMCAxIDE2IDUyIGNtDQotcQ0KLTAg
MCAwIHJnDQotQlQgMSAwIDAgMSAwIDIuNSBUbSAvRjYgMTIuNSBUZiAxNSBUTCAoTm90ZSkgVGog
VCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDE2IDE2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAx
NCBUbSAuNjg2NjU0IFR3IDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoX19kaXJfXyApIFRqIC9G
MSAxMCBUZiAwIDAgMCByZyAoaXMgbm90IGNoYW5nZWQgaW4gdGhlIFB5dGhvbiAyIGxpbmUgYXMg
aXQgbWVzc2VzIHVwIHNvbWUgb2YgdGhlIGRlY29yYXRvcnMgaW5jbHVkZWQgaW4pIFRqIFQqIDAg
VHcgKHRoZSBzdGRsaWIuKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgSg0KLTEgag0KLS42NjI3
NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLW4gMCA4MyBtIDQ2OS44ODk4IDgzIGwgUw0K
LW4gMCAwIG0gNDY5Ljg4OTggMCBsIFMNCi1uIDAgMCBtIDAgODMgbCBTDQotbiA0NjkuODg5OCAw
IG0gNDY5Ljg4OTggODMgbCBTDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2NzYuMDIz
NiBjbQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2NDYuMDIzNiBjbQ0KLXENCi1CVCAxIDAg
MCAxIDAgMyBUbSAxOCBUTCAvRjMgMTUgVGYgMCAwIDAgcmcgKEVudW0gTWVtYmVycyBcKGFrYSBp
bnN0YW5jZXNcKSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDYwNC4w
MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyNiBUbSAuNDkxOTg0IFR3IDEyIFRMIC9GMSAxMCBU
ZiAwIDAgMCByZyAoVGhlIG1vc3QgaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgRW51bSBtZW1iZXJz
IGlzIHRoYXQgdGhleSBhcmUgc2luZ2xldG9ucy4gKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVu
dW1NZXRhICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChjcmVhdGVzIHRoZW0gYWxsKSBUaiBUKiAw
IFR3IC4wODQ5ODggVHcgKHdoaWxlIGl0IGlzIGNyZWF0aW5nIHRoZSApIFRqIC9GNCAxMCBUZiAw
IDAgMCByZyAoRW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoY2xhc3MgaXRzZWxmLCBhbmQg
dGhlbiBwdXRzIGEgY3VzdG9tICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChfX25ld19fICkgVGog
L0YxIDEwIFRmIDAgMCAwIHJnIChpbiBwbGFjZSB0byBlbnN1cmUgdGhhdCBubyBuZXcpIFRqIFQq
IDAgVHcgKG9uZXMgYXJlIGV2ZXIgaW5zdGFudGlhdGVkIGJ5IHJldHVybmluZyBvbmx5IHRoZSBl
eGlzdGluZyBtZW1iZXIgaW5zdGFuY2VzLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAx
IDYyLjY5MjkxIDU3NC4wMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAzIFRtIDE4IFRMIC9GMyAx
NSBUZiAwIDAgMCByZyAoRmluZXIgUG9pbnRzKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAw
IDEgNjIuNjkyOTEgNTIwLjAyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDM4IFRtIDUuNDg4NTU1
IFR3IDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoRW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCBy
ZyAobWVtYmVycyBhcmUgaW5zdGFuY2VzIG9mIGFuICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChF
bnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChjbGFzcywgYW5kIGV2ZW4gdGhvdWdoIHRoZXkg
YXJlIGFjY2Vzc2libGUgYXMpIFRqIFQqIDAgVHcgMS41MDQxNDcgVHcgL0Y1IDEwIFRmIDAgMCAw
IHJnIChFbnVtQ2xhc3MubWVtYmVyMS5tZW1iZXIyKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKCwg
dGhleSBzaG91bGQgbm90IGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGZyb20gdGhlIG1lbWJlciBhcyB0
aGF0IGxvb2t1cCkgVGogVCogMCBUdyAuMzI5OTg1IFR3IChtYXkgZmFpbCBvciwgd29yc2UsIHJl
dHVybiBzb21ldGhpbmcgYmVzaWRlcyB0aGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVudW0g
KSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG1lbWJlciB5b3Ugd2VyZSBsb29raW5nIGZvciBcKGNo
YW5nZWQgaW4gdmVyc2lvbikgVGogVCogMCBUdyAoMS4xLjFcKTopIFRqIFQqIEVUDQotUQ0KLVEN
Ci1xDQotMSAwIDAgMSA2Mi42OTI5MSAzOTAuODIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAg
Y20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1
IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5
OCAxMjAgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCA5OCBUbSAxMiBUTCAvRjQgMTAgVGYg
MCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBGaWVsZFR5cGVzXChFbnVtXCk6
KSBUaiBUKiAoLi4uICAgICBuYW1lID0gMSkgVGogVCogKC4uLiAgICAgdmFsdWUgPSAyKSBUaiBU
KiAoLi4uICAgICBzaXplID0gMykgVGogVCogKC4uLikgVGogVCogKD4pIFRqICg+KSBUaiAoPikg
VGogKCBGaWVsZFR5cGVzLnZhbHVlLnNpemUpIFRqIFQqICg8KSBUaiAoRmllbGRUeXBlcy5zaXpl
OiAzKSBUaiAoPikgVGogIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggRmllbGRUeXBlcy5zaXpl
LnZhbHVlKSBUaiBUKiAoMykgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDM3MC44MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyIFRtIDEyIFRMIC9G
MSAxMCBUZiAwIDAgMCByZyAoVGhlICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChfX21lbWJlcnNf
XyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoYXR0cmlidXRlIGlzIG9ubHkgYXZhaWxhYmxlIG9u
IHRoZSBjbGFzcy4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAzMTYu
ODIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMzggVG0gMS4zNzQ2NTEgVHcgMTIgVEwgL0YxIDEw
IFRmIDAgMCAwIHJnIChJbiBQeXRob24gMy54ICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChfX21l
bWJlcnNfXyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoaXMgYWx3YXlzIGFuICkgVGogL0Y0IDEw
IFRmIDAgMCAwIHJnIChPcmRlcmVkRGljdCkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICgsIHdpdGgg
dGhlIG9yZGVyIGJlaW5nIHRoZSBkZWZpbml0aW9uIG9yZGVyLiBJbikgVGogVCogMCBUdyAzLjAw
OTIxMyBUdyAoUHl0aG9uIDIuNyApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoX19tZW1iZXJzX18g
KSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlzIGFuICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChP
cmRlcmVkRGljdCApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoaWYgKSBUaiAvRjQgMTAgVGYgMCAw
IDAgcmcgKF9fb3JkZXJfXyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAod2FzIHNwZWNpZmllZCwg
YW5kIGEgcGxhaW4gKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKGRpY3QpIFRqIFQqIDAgVHcgMS44
NTEzMTggVHcgL0YxIDEwIFRmIDAgMCAwIHJnIChvdGhlcndpc2UuIEluIGFsbCBvdGhlciBQeXRo
b24gMi54IHZlcnNpb25zICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChfX21lbWJlcnNfXyApIFRq
IC9GMSAxMCBUZiAwIDAgMCByZyAoaXMgYSBwbGFpbiApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAo
ZGljdCApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoZXZlbiBpZiApIFRqIC9GNCAxMCBUZiAwIDAg
MCByZyAoX19vcmRlcl9fICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICh3YXMpIFRqIFQqIDAgVHcg
KHNwZWNpZmllZCBhcyB0aGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKE9yZGVyZWREaWN0ICkg
VGogL0YxIDEwIFRmIDAgMCAwIHJnICh0eXBlIGRpZG4ndCBleGlzdCB5ZXQuKSBUaiBUKiBFVA0K
LVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMjg2LjgyMzYgY20NCi1xDQotQlQgMSAwIDAg
MSAwIDE0IFRtIC4xMDY2NTQgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChJZiB5b3UgZ2l2
ZSB5b3VyICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAw
IHJnIChzdWJjbGFzcyBleHRyYSBtZXRob2RzLCBsaWtlIHRoZSApIFRqIDAgMCAuNTAxOTYxIHJn
IChQbGFuZXQgKSBUaiAwIDAgMCByZyAoY2xhc3MgYWJvdmUsIHRob3NlIG1ldGhvZHMgd2lsbCBz
aG93IHVwIGluKSBUaiBUKiAwIFR3IChhICkgVGogL0Y1IDEwIFRmIDAgMCAwIHJnIChkaXIgKSBU
aiAvRjEgMTAgVGYgMCAwIDAgcmcgKG9mIHRoZSBtZW1iZXIsIGJ1dCBub3Qgb2YgdGhlIGNsYXNz
OikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDIwNS42MjM2IGNtDQot
cQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2
Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUg
cmcNCi1uIC02IC02IDQ2OC42ODk4IDcyIHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgNTAg
VG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggZGlyXChQ
bGFuZXRcKSkgVGogVCogKFsnRUFSVEgnLCAnSlVQSVRFUicsICdNQVJTJywgJ01FUkNVUlknLCAn
TkVQVFVORScsICdTQVRVUk4nLCAnVVJBTlVTJywpIFRqIFQqICgnVkVOVVMnLCAnX19jbGFzc19f
JywgJ19fZG9jX18nLCAnX19tZW1iZXJzX18nLCAnX19tb2R1bGVfXyddKSBUaiBUKiAoPikgVGog
KD4pIFRqICg+KSBUaiAoIGRpclwoUGxhbmV0LkVBUlRIXCkpIFRqIFQqIChbJ19fY2xhc3NfXycs
ICdfX2RvY19fJywgJ19fbW9kdWxlX18nLCAnbmFtZScsICdzdXJmYWNlX2dyYXZpdHknLCAndmFs
dWUnXSkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5Mjkx
IDE2MS42MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyNiBUbSAuOTM4OTM1IFR3IDEyIFRMIC9G
MSAxMCBUZiAwIDAgMCByZyAoQSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoX19uZXdfXyApIFRq
IC9GMSAxMCBUZiAwIDAgMCByZyAobWV0aG9kIHdpbGwgb25seSBiZSB1c2VkIGZvciB0aGUgY3Jl
YXRpb24gb2YgdGhlICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRm
IDAgMCAwIHJnIChtZW1iZXJzIC0tIGFmdGVyIHRoYXQgaXQgaXMgcmVwbGFjZWQuKSBUaiBUKiAw
IFR3IC45NDk0NjEgVHcgKFRoaXMgbWVhbnMgaWYgeW91IHdpc2ggdG8gY2hhbmdlIGhvdyApIFRq
IC9GNCAxMCBUZiAwIDAgMCByZyAoRW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAobWVtYmVy
cyBhcmUgbG9va2VkIHVwIHlvdSBlaXRoZXIgaGF2ZSB0byB3cml0ZSBhIGhlbHBlcikgVGogVCog
MCBUdyAoZnVuY3Rpb24gb3IgYSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoY2xhc3NtZXRob2Qp
IFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoLikgVGogVCogRVQNCi1RDQotUQ0KLSANCi1lbmRzdHJl
YW0NCi1lbmRvYmoNCi02OCAwIG9iag0KLTw8IC9OdW1zIFsgMCA2OSAwIFIgMSA3MCAwIFIgMiA3
MSAwIFIgMyA3MiAwIFIgNCA3MyAwIFIgDQotICA1IDc0IDAgUiA2IDc1IDAgUiA3IDc2IDAgUiA4
IDc3IDAgUiA5IDc4IDAgUiANCi0gIDEwIDc5IDAgUiAxMSA4MCAwIFIgXSA+Pg0KLWVuZG9iag0K
LTY5IDAgb2JqDQotPDwgL1MgL0QgL1N0IDEgPj4NCi1lbmRvYmoNCi03MCAwIG9iag0KLTw8IC9T
IC9EIC9TdCAyID4+DQotZW5kb2JqDQotNzEgMCBvYmoNCi08PCAvUyAvRCAvU3QgMyA+Pg0KLWVu
ZG9iag0KLTcyIDAgb2JqDQotPDwgL1MgL0QgL1N0IDQgPj4NCi1lbmRvYmoNCi03MyAwIG9iag0K
LTw8IC9TIC9EIC9TdCA1ID4+DQotZW5kb2JqDQotNzQgMCBvYmoNCi08PCAvUyAvRCAvU3QgNiA+
Pg0KLWVuZG9iag0KLTc1IDAgb2JqDQotPDwgL1MgL0QgL1N0IDcgPj4NCi1lbmRvYmoNCi03NiAw
IG9iag0KLTw8IC9TIC9EIC9TdCA4ID4+DQotZW5kb2JqDQotNzcgMCBvYmoNCi08PCAvUyAvRCAv
U3QgOSA+Pg0KLWVuZG9iag0KLTc4IDAgb2JqDQotPDwgL1MgL0QgL1N0IDEwID4+DQotZW5kb2Jq
DQotNzkgMCBvYmoNCi08PCAvUyAvRCAvU3QgMTEgPj4NCi1lbmRvYmoNCi04MCAwIG9iag0KLTw8
IC9TIC9EIC9TdCAxMiA+Pg0KLWVuZG9iag0KLXhyZWYNCi0wIDgxDQotMDAwMDAwMDAwMCA2NTUz
NSBmDQotMDAwMDAwMDA3NSAwMDAwMCBuDQotMDAwMDAwMDE2MCAwMDAwMCBuDQotMDAwMDAwMDI3
MCAwMDAwMCBuDQotMDAwMDAwMDM4MyAwMDAwMCBuDQotMDAwMDAwMDQ5OCAwMDAwMCBuDQotMDAw
MDAwMDYwNiAwMDAwMCBuDQotMDAwMDAwMDc3NyAwMDAwMCBuDQotMDAwMDAwMDk0OCAwMDAwMCBu
DQotMDAwMDAwMTA2NiAwMDAwMCBuDQotMDAwMDAwMTIzNyAwMDAwMCBuDQotMDAwMDAwMTQ3NyAw
MDAwMCBuDQotMDAwMDAwMTY4NyAwMDAwMCBuDQotMDAwMDAwMTg5NyAwMDAwMCBuDQotMDAwMDAw
MjEwNyAwMDAwMCBuDQotMDAwMDAwMjI3OSAwMDAwMCBuDQotMDAwMDAwMjQwMiAwMDAwMCBuDQot
MDAwMDAwMjU3NCAwMDAwMCBuDQotMDAwMDAwMjc0NiAwMDAwMCBuDQotMDAwMDAwMjk4OSAwMDAw
MCBuDQotMDAwMDAwMzE2MSAwMDAwMCBuDQotMDAwMDAwMzMzMyAwMDAwMCBuDQotMDAwMDAwMzU2
OSAwMDAwMCBuDQotMDAwMDAwMzc3OSAwMDAwMCBuDQotMDAwMDAwMzk4OSAwMDAwMCBuDQotMDAw
MDAwNDE5OSAwMDAwMCBuDQotMDAwMDAwNDQwOSAwMDAwMCBuDQotMDAwMDAwNDYxOSAwMDAwMCBu
DQotMDAwMDAwNDc5MSAwMDAwMCBuDQotMDAwMDAwNTAyMCAwMDAwMCBuDQotMDAwMDAwNTEyOSAw
MDAwMCBuDQotMDAwMDAwNTM3MyAwMDAwMCBuDQotMDAwMDAwNTQ1MSAwMDAwMCBuDQotMDAwMDAw
NTU3MSAwMDAwMCBuDQotMDAwMDAwNTcwNSAwMDAwMCBuDQotMDAwMDAwNTg4NiAwMDAwMCBuDQot
MDAwMDAwNjAzOSAwMDAwMCBuDQotMDAwMDAwNjE2OCAwMDAwMCBuDQotMDAwMDAwNjMzMiAwMDAw
MCBuDQotMDAwMDAwNjQ4OCAwMDAwMCBuDQotMDAwMDAwNjYxNCAwMDAwMCBuDQotMDAwMDAwNjc0
NiAwMDAwMCBuDQotMDAwMDAwNjkyNCAwMDAwMCBuDQotMDAwMDAwNzAzNiAwMDAwMCBuDQotMDAw
MDAwNzE0NyAwMDAwMCBuDQotMDAwMDAwNzMxNSAwMDAwMCBuDQotMDAwMDAwNzQxMyAwMDAwMCBu
DQotMDAwMDAwNzU5MSAwMDAwMCBuDQotMDAwMDAwNzcwNiAwMDAwMCBuDQotMDAwMDAwNzgzNCAw
MDAwMCBuDQotMDAwMDAwNzk2MyAwMDAwMCBuDQotMDAwMDAwODA3NCAwMDAwMCBuDQotMDAwMDAw
ODI0MyAwMDAwMCBuDQotMDAwMDAwODM2MCAwMDAwMCBuDQotMDAwMDAwODUwOCAwMDAwMCBuDQot
MDAwMDAwODYyNSAwMDAwMCBuDQotMDAwMDAwODc3MSAwMDAwMCBuDQotMDAwMDAxNTI4NiAwMDAw
MCBuDQotMDAwMDAxOTUxNyAwMDAwMCBuDQotMDAwMDAyMzM2NSAwMDAwMCBuDQotMDAwMDAyNzgy
OCAwMDAwMCBuDQotMDAwMDAzMjQwNiAwMDAwMCBuDQotMDAwMDAzNzA5MCAwMDAwMCBuDQotMDAw
MDA0MjUxOSAwMDAwMCBuDQotMDAwMDA0NjcxNyAwMDAwMCBuDQotMDAwMDA1Mzg4MiAwMDAwMCBu
DQotMDAwMDA1ODA5NyAwMDAwMCBuDQotMDAwMDA2MjE5MyAwMDAwMCBuDQotMDAwMDA2NzcwMyAw
MDAwMCBuDQotMDAwMDA2Nzg1NiAwMDAwMCBuDQotMDAwMDA2Nzg5MyAwMDAwMCBuDQotMDAwMDA2
NzkzMCAwMDAwMCBuDQotMDAwMDA2Nzk2NyAwMDAwMCBuDQotMDAwMDA2ODAwNCAwMDAwMCBuDQot
MDAwMDA2ODA0MSAwMDAwMCBuDQotMDAwMDA2ODA3OCAwMDAwMCBuDQotMDAwMDA2ODExNSAwMDAw
MCBuDQotMDAwMDA2ODE1MiAwMDAwMCBuDQotMDAwMDA2ODE4OSAwMDAwMCBuDQotMDAwMDA2ODIy
NyAwMDAwMCBuDQotMDAwMDA2ODI2NSAwMDAwMCBuDQotdHJhaWxlcg0KLTw8IC9JRCANCi0gJSBS
ZXBvcnRMYWIgZ2VuZXJhdGVkIFBERiBkb2N1bWVudCAtLSBkaWdlc3QgKGh0dHA6Ly93d3cucmVw
b3J0bGFiLmNvbSkNCi0gWyg8fXx+Z21cMzUyXDMyMFwyMzU9XDAwMXBcMjIwdlwyMjRcMzM2KSAo
PH18fmdtXDM1MlwzMjBcMjM1PVwwMDFwXDIyMHZcMjI0XDMzNildDQotIC9JbmZvIDMwIDAgUiAv
Um9vdCAyOSAwIFIgL1NpemUgODEgPj4NCi1zdGFydHhyZWYNCi02ODMwMw0KLSUlRU9GDQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vZG9jL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2Vu
dW0vZG9jL3czYy1pbXBvcnQubG9nCmluZGV4IDNiODQ3ZjA4ZDg4NzM4NjMyNDgyMjVlNjBiNDli
NWFjZWMyM2JiNjMuLjZkNWRlMjM0MzFkMGU0MDc5ZWM3ZmRiOTlmYTk5YzJhMWM2YmRiNzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL2RvYy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Vu
dW0vZW51bS9kb2MvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDUgKzE0LDQgQEAgUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vZG9jL2VudW0ucGRmCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2Vu
dW0vZG9jL2VudW0ucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS90ZXN0LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9lbnVtL2VudW0vdGVzdC5weQppbmRleCBkOWVkZmFlZTQwYWZmNWViYTdlODA0MTViYzc1YmUw
MzY0MjA1NWY1Li5jOGM0Yjk2MjI0MmY0ZjVhMmVkMjQ4NTVhN2U1YTEyZGYzZGVjNmU2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2VudW0vZW51bS90ZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL3Rlc3Qu
cHkKQEAgLTQ1Miw4ICs0NTIsOCBAQCBjbGFzcyBUZXN0RW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0ZXNbU2Vhc29uLkFVVFVNTl0sICcxMDMxJykK
IAogICAgIGRlZiB0ZXN0X2VudW1fZHVwbGljYXRlcyhzZWxmKToKLSAgICAgICAgX29yZGVyXyA9
ICJTUFJJTkcgU1VNTUVSIEFVVFVNTiBXSU5URVIiCiAgICAgICAgIGNsYXNzIFNlYXNvbihFbnVt
KToKKyAgICAgICAgICAgIF9vcmRlcl8gPSAiU1BSSU5HIFNVTU1FUiBBVVRVTU4gV0lOVEVSIgog
ICAgICAgICAgICAgU1BSSU5HID0gMQogICAgICAgICAgICAgU1VNTUVSID0gMgogICAgICAgICAg
ICAgQVVUVU1OID0gRkFMTCA9IDMKQEAgLTY2NSw3ICs2NjUsNyBAQCBjbGFzcyBUZXN0RW51bSh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgIHByb3RvY29sPSgwLCBISUdI
RVNUX1BST1RPQ09MKSkKIAogICAgIGRlZiB0ZXN0X2V4cGxvZGluZ19waWNrbGUoc2VsZik6Ci0g
ICAgICAgIEJhZFBpY2tsZSA9IEVudW0oJ0JhZFBpY2tsZScsICdkaWxsIHN3ZWV0IGJyZWFkLW4t
YnV0dGVyJykKKyAgICAgICAgQmFkUGlja2xlID0gRW51bSgnQmFkUGlja2xlJywgJ2RpbGwgc3dl
ZXQgYnJlYWRfbl9idXR0ZXInKQogICAgICAgICBlbnVtLl9tYWtlX2NsYXNzX3VucGlja2xhYmxl
KEJhZFBpY2tsZSkKICAgICAgICAgZ2xvYmFscygpWydCYWRQaWNrbGUnXSA9IEJhZFBpY2tsZQog
ICAgICAgICB0ZXN0X3BpY2tsZV9leGNlcHRpb24oc2VsZi5hc3NlcnRSYWlzZXMsIFR5cGVFcnJv
ciwgQmFkUGlja2xlLmRpbGwpCkBAIC04MTMsNiArODEzLDI3IEBAIGNsYXNzIFRlc3RFbnVtKHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShlIGluIFN1bW1l
ck1vbnRoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHR5cGUoZSkgaXMgU3VtbWVyTW9u
dGgpCiAKKyAgICBkZWYgdGVzdF9wcm9ncmFtYXRpY19mdW5jdGlvbl9pdGVyYWJsZV93aXRoX3dl
aXJkX25hbWVzKHNlbGYpOgorICAgICAgICBTdW1tZXJNb250aCA9IEVudW0oCisgICAgICAgICAg
ICAgICAgJ1N1bW1lck1vbnRoJywKKyAgICAgICAgICAgICAgICAoKCdqdW5lJywgMSksICgnanVs
eScsIDIpLCAoJ2F1Z3VzdCcsIDMpLCAoJ2ZhYnVsb3VzIHNlcHRlbWJlcicsIDQpKQorICAgICAg
ICAgICAgICAgICkKKyAgICAgICAgbHN0ID0gbGlzdChTdW1tZXJNb250aCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsZW4obHN0KSwgbGVuKFN1bW1lck1vbnRoKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oU3VtbWVyTW9udGgpLCA0LCBTdW1tZXJNb250aCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICBbU3VtbWVyTW9udGguanVuZSwgU3VtbWVy
TW9udGguanVseSwgU3VtbWVyTW9udGguYXVndXN0LCBTdW1tZXJNb250aFsnZmFidWxvdXMgc2Vw
dGVtYmVyJ11dLAorICAgICAgICAgICAgICAgIGxzdCwKKyAgICAgICAgICAgICAgICApCisgICAg
ICAgIGZvciBpLCBtb250aCBpbiBlbnVtZXJhdGUoJ2p1bmUganVseSBhdWd1c3QnLnNwbGl0KCkg
KyBbJ2ZhYnVsb3VzIHNlcHRlbWJlciddKToKKyAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAg
ICAgZSA9IFN1bW1lck1vbnRoKGkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGludChl
LnZhbHVlKSwgaSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoZSwgaSkKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5uYW1lLCBtb250aCkKKyAgICAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShlIGluIFN1bW1lck1vbnRoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHR5cGUoZSkgaXMgU3VtbWVyTW9udGgpCisKICAgICBkZWYgdGVzdF9wcm9ncmFtYXRpY19mdW5j
dGlvbl9mcm9tX2RpY3Qoc2VsZik6CiAgICAgICAgIFN1bW1lck1vbnRoID0gRW51bSgKICAgICAg
ICAgICAgICAgICAnU3VtbWVyTW9udGgnLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL3NldHVwLmNm
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZW51bS9zZXR1cC5jZmcKaW5kZXggODYxYTlmNTU0MjYzZWZiMDg4ZDg2MzZjNGYx
N2EzMDY5NmU0OTVhZC4uOGJmZDVhMTJmODViOGZiYjZjMDU4Y2Y2N2RkMjNkYTY5MDgzNWVhMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9lbnVtL3NldHVwLmNmZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vc2V0dXAuY2Zn
CkBAIC0xLDUgKzEsNCBAQAogW2VnZ19pbmZvXQogdGFnX2J1aWxkID0gCiB0YWdfZGF0ZSA9IDAK
LXRhZ19zdm5fcmV2aXNpb24gPSAwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9zZXR1cC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvZW51bS9zZXR1cC5weQppbmRleCA4YjI4NDAwMzQ4NTY3NDU5NzA2M2MyMGIzMzM3ODgz
MTllNTRlOTYyLi5mNTQwNzFlN2YwYzRjM2ViOWQzYjY4ZTExY2FhMWVhNzIxMjBjMWE2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2VudW0vc2V0dXAucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL3NldHVwLnB5CkBAIC05
LDYgKzksMTQgQEAgaWYgc3lzLnZlcnNpb25faW5mb1s6Ml0gPCAoMiwgNyk6CiBlbHNlOg0KICAg
ICByZXF1aXJlZCA9IFtdDQogDQorIyBEb24ndCBzaGFkb3cgYnVpbHRpbiBlbnVtIHBhY2thZ2Ug
aWYgd2UgYXJlIGJlaW5nIGluc3RhbGxlZCBvbiBhDQorIyByZWNlbnQgUHl0aG9uLiAgVGhpcyBj
YXVzZXMgY29uZmxpY3RzIHNpbmNlIGF0IGxlYXN0IDMuNjoNCisjIGh0dHBzOi8vYml0YnVja2V0
Lm9yZy9zdG9uZWxlYWYvZW51bTM0L2lzc3Vlcy8xOS9lbnVtMzQtaXNudC1jb21wYXRpYmxlLXdp
dGgtcHl0aG9uLTM2DQoraWYgc3lzLnZlcnNpb25faW5mb1s6Ml0gPCAoMywgNCk6DQorICAgIHBh
Y2thZ2VzID0gWydlbnVtJ10NCitlbHNlOg0KKyAgICBwYWNrYWdlcyA9IFtdDQorDQogbG9uZ19k
ZXNjID0gJycnXA0KIGVudW0gLS0tIHN1cHBvcnQgZm9yIGVudW1lcmF0aW9ucw0KID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkBAIC01NCwxNSArNjIsMTUgQEAgUmVw
b3NpdG9yeSBhbmQgSXNzdWUgVHJhY2tlciBhdCBodHRwczovL2JpdGJ1Y2tldC5vcmcvc3RvbmVs
ZWFmL2VudW0zNC4KIHB5Ml9vbmx5ID0gKCkNCiBweTNfb25seSA9ICgpDQogbWFrZSA9IFsNCi0g
ICAgICAgICdyc3QycGRmIGVudW0vZG9jL2VudW0ucnN0IC0tb3V0cHV0PWVudW0vZG9jL2VudW0u
cGRmJywNCisgICAgICAgICMgJ3JzdDJwZGYgZW51bS9kb2MvZW51bS5yc3QgLS1vdXRwdXQ9ZW51
bS9kb2MvZW51bS5wZGYnLA0KICAgICAgICAgXQ0KIA0KIA0KIGRhdGEgPSBkaWN0KA0KICAgICAg
ICAgbmFtZT0nZW51bTM0JywNCi0gICAgICAgIHZlcnNpb249JzEuMS42JywNCisgICAgICAgIHZl
cnNpb249JzEuMS4xMCcsDQogICAgICAgICB1cmw9J2h0dHBzOi8vYml0YnVja2V0Lm9yZy9zdG9u
ZWxlYWYvZW51bTM0JywNCi0gICAgICAgIHBhY2thZ2VzPVsnZW51bSddLA0KKyAgICAgICAgcGFj
a2FnZXM9cGFja2FnZXMsDQogICAgICAgICBwYWNrYWdlX2RhdGE9ew0KICAgICAgICAgICAgICdl
bnVtJyA6IFsNCiAgICAgICAgICAgICAgICAgJ0xJQ0VOU0UnLA0KQEAgLTkwLDggKzk4LDYgQEAg
ZGF0YSA9IGRpY3QoCiAgICAgICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9u
IDo6IDIuNicsDQogICAgICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6
OiAyLjcnLA0KICAgICAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjog
My4zJywNCi0gICAgICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMu
NCcsDQotICAgICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjUn
LA0KICAgICAgICAgICAgIF0sDQogICAgICAgICApDQogDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5j
c2lncy9DSEFOR0VMT0cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL0NIQU5HRUxPRwppbmRleCA2MDJlZWM1ZTdj
MmFiMTQzYmJiZWNkNDNlMWE3NzFlNmI5NmFiNTAyLi5lMTM2NmQyNjY4ZDAzZGU4MTAyZDA0OTUz
YzU1ZTQ5NDAwNTVjYjAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL0NIQU5HRUxPRworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Z1bmNzaWdzL0NIQU5HRUxPRwpAQCAtMSw2ICsxLDExIEBACiBDaGFuZ2Vsb2cKIC0t
LS0tLS0tLQogCiswLjUKK2BgYAorCisqIEZpeCBiaW5kaW5nIHdpdGggc2VsZiBhcyBhIGt3YXJn
LiAoUm9iZXJ0IENvbGxpbnMgIzE0KQorCiAwLjQgKDIwMTMtMTItMjApCiBgYGBgYGBgYGBgYGBg
YGBgCiAqIEZpeCB1bmJvdW5kIG1ldGhvZHMgZ2V0dGluZyB0aGVpciBmaXJzdCBwYXJhbWV0ZXIg
Y3VycmllZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9SRUFETUUucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5j
c2lncy9SRUFETUUucnN0CmluZGV4IGYwNGI3YjQyMmNmNTFiNjc1ODY3MDNmMmFlMDllYjg2YzFj
ZTZiYTkuLjVmYmNhMjdlNmU2YjAxOTg4N2RkZjFiODZmYWY4NGI3ZjdkMmFiOTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvUkVBRE1FLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL1JFQURNRS5y
c3QKQEAgLTEsNzQgKzEsMzQyIEBACi1mdW5jc2lncwotPT09PT09PT0KKy4uIGZ1bmNzaWdzIGRv
Y3VtZW50YXRpb24gbWFzdGVyIGZpbGUsIGNyZWF0ZWQgYnkKKyAgIHNwaGlueC1xdWlja3N0YXJ0
IG9uIEZyaSBBcHIgMjAgMjA6Mjc6NTIgMjAxMi4KKyAgIFlvdSBjYW4gYWRhcHQgdGhpcyBmaWxl
IGNvbXBsZXRlbHkgdG8geW91ciBsaWtpbmcsIGJ1dCBpdCBzaG91bGQgYXQgbGVhc3QKKyAgIGNv
bnRhaW4gdGhlIHJvb3QgYHRvY3RyZWVgIGRpcmVjdGl2ZS4KKworSW50cm9kdWNpbmcgZnVuY3Np
Z3MKKz09PT09PT09PT09PT09PT09PT09CisKK1RoZSBGdW5jc2lncyBQYWNrYWdlCistLS0tLS0t
LS0tLS0tLS0tLS0tLQogCiBgYGZ1bmNzaWdzYGAgaXMgYSBiYWNrcG9ydCBvZiB0aGUgYFBFUCAz
NjJgXyBmdW5jdGlvbiBzaWduYXR1cmUgZmVhdHVyZXMgZnJvbQogUHl0aG9uIDMuMydzIGBpbnNw
ZWN0YF8gbW9kdWxlLiBUaGUgYmFja3BvcnQgaXMgY29tcGF0aWJsZSB3aXRoIFB5dGhvbiAyLjYs
IDIuNwotYXMgd2VsbCBhcyAzLjIgYW5kIHVwLgorYXMgd2VsbCBhcyAzLjMgYW5kIHVwLiAzLjIg
d2FzIHN1cHBvcnRlZCBieSB2ZXJzaW9uIDAuNCwgYnV0IHdpdGggc2V0dXB0b29scyBhbmQKK3Bp
cCBubyBsb25nZXIgc3VwcG9ydGluZyAzLjIsIHdlIGNhbm5vdCBtYWtlIGFueSBzdGF0ZW1lbnQg
YWJvdXQgMy4yCitjb21wYXRpYmlsaXR5LgogCi18cHlwaV92ZXJzaW9ufAorQ29tcGF0aWJpbGl0
eQorYGBgYGBgYGBgYGBgYAorCitUaGUgYGBmdW5jc2lnc2BgIGJhY2twb3J0IGhhcyBiZWVuIHRl
c3RlZCBhZ2FpbnN0OgorCisqIENQeXRob24gMi42CisqIENQeXRob24gMi43CisqIENQeXRob24g
My4zCisqIENQeXRob24gMy40CisqIENQeXRob24gMy41CisqIENQeXRob24gbmlnaHRsaWVzCisq
IFB5UHkgYW5kIFB5UHkzKGN1cnJlbnRseSBmYWlsaW5nIENJKQorCitDb250aW51b3VzIGludGVn
cmF0aW9uIHRlc3RpbmcgaXMgcHJvdmlkZWQgYnkgYFRyYXZpcyBDSWBfLgorCitVbmRlciBQeXRo
b24gMi54IHRoZXJlIGlzIGEgY29tcGF0aWJpbGl0eSBpc3N1ZSB3aGVuIGEgZnVuY3Rpb24gaXMg
YXNzaWduZWQgdG8KK3RoZSBgYF9fd3JhcHBlZF9fYGAgcHJvcGVydHkgb2YgYSBjbGFzcyBhZnRl
ciBpdCBoYXMgYmVlbiBjb25zdHJ1Y3RlZC4KK1NpbWlsaWFyaWx5IHRoZXJlIHVuZGVyIFB5UHkg
ZGlyZWN0bHkgcGFzc2luZyB0aGUgYGBfX2NhbGxfX2BgIG1ldGhvZCBvZiBhCitidWlsdGluIGlz
IGFsc28gYSBjb21wYXRpYmlsaXR5IGlzc3Vlcy4gIE90aGVyd2lzZSB0aGUgZnVuY3Rpb25hbGl0
eSBpcworYmVsaWV2ZWQgdG8gYmUgdW5pZm9ybSBiZXR3ZWVuIGJvdGggUHl0aG9uMiBhbmQgUHl0
aG9uMy4KIAotRG9jdW1lbnRhdGlvbgotLS0tLS0tLS0tLS0tLQorSXNzdWVzCitgYGBgYGAKIAot
VGhlIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uIGlzIHN0YW5kYXJkIGxpYnJhcnkgZG9jdW1lbnRh
dGlvbiBmb3IgdGhlCi1gaW5zcGVjdGBfIG1vZHVsZSBpbiBQeXRob24zLiBUaGlzIGRvY3VtZW50
YXRpb24gaGFzIGJlZW4gaW5jbHVkZWQgaW4gdGhlCi1gYGZ1bmNzaWdzYGAgcGFja2FnZSBkb2N1
bWVudGF0aW9uIGhvc3RlZCBvbiBgUmVhZCBUaGUgRG9jc2BfLgorU291cmNlIGNvZGUgZm9yIGBg
ZnVuY3NpZ3NgYCBpcyBob3N0ZWQgb24gYEdpdEh1YmBfLiBBbnkgYnVnIHJlcG9ydHMgb3IgZmVh
dHVyZQorcmVxdWVzdHMgY2FuIGJlIG1hZGUgdXNpbmcgR2l0SHViJ3MgYGlzc3VlcyBzeXN0ZW1g
Xy4gfGJ1aWxkX3N0YXR1c3wgfGNvdmVyYWdlfAogCiBFeGFtcGxlCiAtLS0tLS0tCiAKLVRvIG9i
dGFpbiBhIHNpZ25hdHVyZSBvYmplY3QsIHBhc3MgdGhlIHRhcmdldCBmdW5jdGlvbiB0byB0aGUK
LWBgZnVuY3NpZ3Muc2lnbmF0dXJlYGAgZnVuY3Rpb24uIDo6CitUbyBvYnRhaW4gYSBgU2lnbmF0
dXJlYCBvYmplY3QsIHBhc3MgdGhlIHRhcmdldCBmdW5jdGlvbiB0byB0aGUKK2BgZnVuY3NpZ3Mu
c2lnbmF0dXJlYGAgZnVuY3Rpb24uCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgID4+
PiBmcm9tIGZ1bmNzaWdzIGltcG9ydCBzaWduYXR1cmUKICAgICA+Pj4gZGVmIGZvbyhhLCBiPU5v
bmUsICphcmdzLCAqKmt3YXJncyk6CiAgICAgLi4uICAgICBwYXNzCi0KKyAgICAuLi4KICAgICA+
Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykKKyAgICA+Pj4gc2lnCisgICAgPGZ1bmNzaWdzLlNpZ25h
dHVyZSBvYmplY3QgYXQgMHguLi4+CisgICAgPj4+IHNpZy5wYXJhbWV0ZXJzCisgICAgT3JkZXJl
ZERpY3QoWygnYScsIDxQYXJhbWV0ZXIgYXQgMHguLi4gJ2EnPiksICgnYicsIDxQYXJhbWV0ZXIg
YXQgMHguLi4gJ2InPiksICgnYXJncycsIDxQYXJhbWV0ZXIgYXQgMHguLi4gJ2FyZ3MnPiksICgn
a3dhcmdzJywgPFBhcmFtZXRlciBhdCAweC4uLiAna3dhcmdzJz4pXSkKKyAgICA+Pj4gc2lnLnJl
dHVybl9hbm5vdGF0aW9uCisgICAgPGNsYXNzICdmdW5jc2lncy5fZW1wdHknPgogCi1Gb3IgdGhl
IGRldGFpbHMgb2YgdGhlIHNpZ25hdHVyZSBvYmplY3QsIHJlZmVyIHRvIHRoZSBlaXRoZXIgdGhl
IHBhY2thZ2Ugb2YKLXN0YW5kYXJkIGxpYnJhcnkgZG9jdW1lbnRhdGlvbi4KK0ludHJvc3BlY3Rp
bmcgY2FsbGFibGVzIHdpdGggdGhlIFNpZ25hdHVyZSBvYmplY3QKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotQ29tcGF0YWJpbGl0eQotLS0tLS0t
LS0tLS0tLQorLi4gbm90ZTo6CiAKLVRoZSBgYGZ1bmNzaWdzYGAgYmFja3BvcnQgaGFzIGJlZW4g
dGVzdGVkIGFnYWluc3Q6CisgICBUaGlzIHNlY3Rpb24gb2YgZG9jdW1lbnRhdGlvbiBpcyBhIGRp
cmVjdCByZXByb2R1Y3Rpb24gb2YgdGhlIFB5dGhvbgorICAgc3RhbmRhcmQgbGlicmFyeSBkb2N1
bWVudGF0aW9uIGZvciB0aGUgaW5zcGVjdCBtb2R1bGUuCiAKLSogQ1B5dGhvbiAyLjYKLSogQ1B5
dGhvbiAyLjcKLSogQ1B5dGhvbiAzLjIKLSogUHlQeSAxLjkKK1RoZSBTaWduYXR1cmUgb2JqZWN0
IHJlcHJlc2VudHMgdGhlIGNhbGwgc2lnbmF0dXJlIG9mIGEgY2FsbGFibGUgb2JqZWN0IGFuZCBp
dHMKK3JldHVybiBhbm5vdGF0aW9uLiAgVG8gcmV0cmlldmUgYSBTaWduYXR1cmUgb2JqZWN0LCB1
c2UgdGhlIDpmdW5jOmBzaWduYXR1cmVgCitmdW5jdGlvbi4KIAotQ29udGludW91cyBpbnRlZ3Jh
dGlvbiB0ZXN0aW5nIGlzIHByb3ZpZGVkIGJ5IGBUcmF2aXMgQ0lgXy4KKy4uIGZ1bmN0aW9uOjog
c2lnbmF0dXJlKGNhbGxhYmxlKQogCi1VbmRlciBQeXRob24gMi54IHRoZXJlIGlzIGEgY29tcGF0
YWJpbGl0eSBpc3N1ZSB3aGVuIGEgZnVuY3Rpb24gaXMgYXNzaWduZWQgdG8KLXRoZSBgYF9fd3Jh
cHBlZF9fYGAgcHJvcGVydHkgb2YgYSBjbGFzcyBhZnRlciBpdCBoYXMgYmVlbiBjb25zdHJ1Y3Rl
ZC4KLVNpbWlsaWFyaWx5IHRoZXJlIHVuZGVyIFB5UHkgZGlyZWN0bHkgcGFzc2luZyB0aGUgYGBf
X2NhbGxfX2BgIG1ldGhvZCBvZiBhCi1idWlsdGluIGlzIGFsc28gYSBjb21wYXRhYmlsaXR5IGlz
c3Vlcy4gIE90aGVyd2lzZSB0aGUgZnVuY3Rpb25hbGl0eSBpcwotYmVsaWV2ZWQgdG8gYmUgdW5p
Zm9ybSBiZXR3ZWVuIGJvdGggUHl0aG9uMiBhbmQgUHl0aG9uMy4KKyAgIFJldHVybiBhIDpjbGFz
czpgU2lnbmF0dXJlYCBvYmplY3QgZm9yIHRoZSBnaXZlbiBgYGNhbGxhYmxlYGA6OgogCi1Jc3N1
ZXMKLS0tLS0tLQorICAgICAgPj4+IGZyb20gZnVuY3NpZ3MgaW1wb3J0IHNpZ25hdHVyZQorICAg
ICAgPj4+IGRlZiBmb28oYSwgKiwgYjppbnQsICoqa3dhcmdzKToKKyAgICAgIC4uLiAgICAgcGFz
cwogCi1Tb3VyY2UgY29kZSBmb3IgYGBmdW5jc2lnc2BgIGlzIGhvc3RlZCBvbiBgR2l0SHViYF8u
IEFueSBidWcgcmVwb3J0cyBvciBmZWF0dXJlCi1yZXF1ZXN0cyBjYW4gYmUgbWFkZSB1c2luZyBH
aXRIdWIncyBgaXNzdWVzIHN5c3RlbWBfLiB8YnVpbGRfc3RhdHVzfCB8Y292ZXJhZ2V8CisgICAg
ICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykKKworICAgICAgPj4+IHN0cihzaWcpCisgICAgICAn
KGEsICosIGI6aW50LCAqKmt3YXJncyknCisKKyAgICAgID4+PiBzdHIoc2lnLnBhcmFtZXRlcnNb
J2InXSkKKyAgICAgICdiOmludCcKKworICAgICAgPj4+IHNpZy5wYXJhbWV0ZXJzWydiJ10uYW5u
b3RhdGlvbgorICAgICAgPGNsYXNzICdpbnQnPgorCisgICBBY2NlcHRzIGEgd2lkZSByYW5nZSBv
ZiBweXRob24gY2FsbGFibGVzLCBmcm9tIHBsYWluIGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyB0bwor
ICAgOmZ1bmM6YGZ1bmN0b29scy5wYXJ0aWFsYCBvYmplY3RzLgorCisgICAuLiBub3RlOjoKKwor
ICAgICAgU29tZSBjYWxsYWJsZXMgbWF5IG5vdCBiZSBpbnRyb3NwZWN0YWJsZSBpbiBjZXJ0YWlu
IGltcGxlbWVudGF0aW9ucyBvZgorICAgICAgUHl0aG9uLiAgRm9yIGV4YW1wbGUsIGluIENQeXRo
b24sIGJ1aWx0LWluIGZ1bmN0aW9ucyBkZWZpbmVkIGluIEMgcHJvdmlkZQorICAgICAgbm8gbWV0
YWRhdGEgYWJvdXQgdGhlaXIgYXJndW1lbnRzLgorCisKKy4uIGNsYXNzOjogU2lnbmF0dXJlCisK
KyAgIEEgU2lnbmF0dXJlIG9iamVjdCByZXByZXNlbnRzIHRoZSBjYWxsIHNpZ25hdHVyZSBvZiBh
IGZ1bmN0aW9uIGFuZCBpdHMgcmV0dXJuCisgICBhbm5vdGF0aW9uLiAgRm9yIGVhY2ggcGFyYW1l
dGVyIGFjY2VwdGVkIGJ5IHRoZSBmdW5jdGlvbiBpdCBzdG9yZXMgYQorICAgOmNsYXNzOmBQYXJh
bWV0ZXJgIG9iamVjdCBpbiBpdHMgOmF0dHI6YHBhcmFtZXRlcnNgIGNvbGxlY3Rpb24uCisKKyAg
IFNpZ25hdHVyZSBvYmplY3RzIGFyZSAqaW1tdXRhYmxlKi4gIFVzZSA6bWV0aDpgU2lnbmF0dXJl
LnJlcGxhY2VgIHRvIG1ha2UgYQorICAgbW9kaWZpZWQgY29weS4KKworICAgLi4gYXR0cmlidXRl
OjogU2lnbmF0dXJlLmVtcHR5CisKKyAgICAgIEEgc3BlY2lhbCBjbGFzcy1sZXZlbCBtYXJrZXIg
dG8gc3BlY2lmeSBhYnNlbmNlIG9mIGEgcmV0dXJuIGFubm90YXRpb24uCisKKyAgIC4uIGF0dHJp
YnV0ZTo6IFNpZ25hdHVyZS5wYXJhbWV0ZXJzCisKKyAgICAgIEFuIG9yZGVyZWQgbWFwcGluZyBv
ZiBwYXJhbWV0ZXJzJyBuYW1lcyB0byB0aGUgY29ycmVzcG9uZGluZworICAgICAgOmNsYXNzOmBQ
YXJhbWV0ZXJgIG9iamVjdHMuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IFNpZ25hdHVyZS5yZXR1cm5f
YW5ub3RhdGlvbgorCisgICAgICBUaGUgInJldHVybiIgYW5ub3RhdGlvbiBmb3IgdGhlIGNhbGxh
YmxlLiAgSWYgdGhlIGNhbGxhYmxlIGhhcyBubyAicmV0dXJuIgorICAgICAgYW5ub3RhdGlvbiwg
dGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvIDphdHRyOmBTaWduYXR1cmUuZW1wdHlgLgorCisgICAu
LiBtZXRob2Q6OiBTaWduYXR1cmUuYmluZCgqYXJncywgKiprd2FyZ3MpCisKKyAgICAgIENyZWF0
ZSBhIG1hcHBpbmcgZnJvbSBwb3NpdGlvbmFsIGFuZCBrZXl3b3JkIGFyZ3VtZW50cyB0byBwYXJh
bWV0ZXJzLgorICAgICAgUmV0dXJucyA6Y2xhc3M6YEJvdW5kQXJndW1lbnRzYCBpZiBgYCphcmdz
YGAgYW5kIGBgKiprd2FyZ3NgYCBtYXRjaCB0aGUKKyAgICAgIHNpZ25hdHVyZSwgb3IgcmFpc2Vz
IGEgOmV4YzpgVHlwZUVycm9yYC4KKworICAgLi4gbWV0aG9kOjogU2lnbmF0dXJlLmJpbmRfcGFy
dGlhbCgqYXJncywgKiprd2FyZ3MpCisKKyAgICAgIFdvcmtzIHRoZSBzYW1lIHdheSBhcyA6bWV0
aDpgU2lnbmF0dXJlLmJpbmRgLCBidXQgYWxsb3dzIHRoZSBvbWlzc2lvbiBvZgorICAgICAgc29t
ZSByZXF1aXJlZCBhcmd1bWVudHMgKG1pbWljcyA6ZnVuYzpgZnVuY3Rvb2xzLnBhcnRpYWxgIGJl
aGF2aW9yLikKKyAgICAgIFJldHVybnMgOmNsYXNzOmBCb3VuZEFyZ3VtZW50c2AsIG9yIHJhaXNl
cyBhIDpleGM6YFR5cGVFcnJvcmAgaWYgdGhlCisgICAgICBwYXNzZWQgYXJndW1lbnRzIGRvIG5v
dCBtYXRjaCB0aGUgc2lnbmF0dXJlLgorCisgICAuLiBtZXRob2Q6OiBTaWduYXR1cmUucmVwbGFj
ZSgqWywgcGFyYW1ldGVyc11bLCByZXR1cm5fYW5ub3RhdGlvbl0pCisKKyAgICAgIENyZWF0ZSBh
IG5ldyBTaWduYXR1cmUgaW5zdGFuY2UgYmFzZWQgb24gdGhlIGluc3RhbmNlIHJlcGxhY2Ugd2Fz
IGludm9rZWQKKyAgICAgIG9uLiAgSXQgaXMgcG9zc2libGUgdG8gcGFzcyBkaWZmZXJlbnQgYGBw
YXJhbWV0ZXJzYGAgYW5kL29yCisgICAgICBgYHJldHVybl9hbm5vdGF0aW9uYGAgdG8gb3ZlcnJp
ZGUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydGllcyBvZiB0aGUgYmFzZQorICAgICAgc2lnbmF0
dXJlLiAgVG8gcmVtb3ZlIHJldHVybl9hbm5vdGF0aW9uIGZyb20gdGhlIGNvcGllZCBTaWduYXR1
cmUsIHBhc3MgaW4KKyAgICAgIDphdHRyOmBTaWduYXR1cmUuZW1wdHlgLgorCisgICAgICA6Ogor
CisgICAgICAgICA+Pj4gZGVmIHRlc3QoYSwgYik6CisgICAgICAgICAuLi4gICAgIHBhc3MKKyAg
ICAgICAgID4+PiBzaWcgPSBzaWduYXR1cmUodGVzdCkKKyAgICAgICAgID4+PiBuZXdfc2lnID0g
c2lnLnJlcGxhY2UocmV0dXJuX2Fubm90YXRpb249Im5ldyByZXR1cm4gYW5ubyIpCisgICAgICAg
ICA+Pj4gc3RyKG5ld19zaWcpCisgICAgICAgICAiKGEsIGIpIC0+ICduZXcgcmV0dXJuIGFubm8n
IgorCisKKy4uIGNsYXNzOjogUGFyYW1ldGVyCisKKyAgIFBhcmFtZXRlciBvYmplY3RzIGFyZSAq
aW1tdXRhYmxlKi4gIEluc3RlYWQgb2YgbW9kaWZ5aW5nIGEgUGFyYW1ldGVyIG9iamVjdCwKKyAg
IHlvdSBjYW4gdXNlIDptZXRoOmBQYXJhbWV0ZXIucmVwbGFjZWAgdG8gY3JlYXRlIGEgbW9kaWZp
ZWQgY29weS4KKworICAgLi4gYXR0cmlidXRlOjogUGFyYW1ldGVyLmVtcHR5CisKKyAgICAgIEEg
c3BlY2lhbCBjbGFzcy1sZXZlbCBtYXJrZXIgdG8gc3BlY2lmeSBhYnNlbmNlIG9mIGRlZmF1bHQg
dmFsdWVzIGFuZAorICAgICAgYW5ub3RhdGlvbnMuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IFBhcmFt
ZXRlci5uYW1lCisKKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgYXMgYSBzdHJpbmcu
ICBNdXN0IGJlIGEgdmFsaWQgcHl0aG9uIGlkZW50aWZpZXIKKyAgICAgIG5hbWUgKHdpdGggdGhl
IGV4Y2VwdGlvbiBvZiBgYFBPU0lUSU9OQUxfT05MWWBgIHBhcmFtZXRlcnMsIHdoaWNoIGNhbiBo
YXZlCisgICAgICBpdCBzZXQgdG8gYGBOb25lYGApLgorCisgICAuLiBhdHRyaWJ1dGU6OiBQYXJh
bWV0ZXIuZGVmYXVsdAorCisgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHBhcmFtZXRl
ci4gIElmIHRoZSBwYXJhbWV0ZXIgaGFzIG5vIGRlZmF1bHQKKyAgICAgIHZhbHVlLCB0aGlzIGF0
dHJpYnV0ZSBpcyBzZXQgdG8gOmF0dHI6YFBhcmFtZXRlci5lbXB0eWAuCisKKyAgIC4uIGF0dHJp
YnV0ZTo6IFBhcmFtZXRlci5hbm5vdGF0aW9uCisKKyAgICAgIFRoZSBhbm5vdGF0aW9uIGZvciB0
aGUgcGFyYW1ldGVyLiAgSWYgdGhlIHBhcmFtZXRlciBoYXMgbm8gYW5ub3RhdGlvbiwKKyAgICAg
IHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byA6YXR0cjpgUGFyYW1ldGVyLmVtcHR5YC4KKworICAg
Li4gYXR0cmlidXRlOjogUGFyYW1ldGVyLmtpbmQKKworICAgICAgRGVzY3JpYmVzIGhvdyBhcmd1
bWVudCB2YWx1ZXMgYXJlIGJvdW5kIHRvIHRoZSBwYXJhbWV0ZXIuICBQb3NzaWJsZSB2YWx1ZXMK
KyAgICAgIChhY2Nlc3NpYmxlIHZpYSA6Y2xhc3M6YFBhcmFtZXRlcmAsIGxpa2UgYGBQYXJhbWV0
ZXIuS0VZV09SRF9PTkxZYGApOgorCisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICAg
IE5hbWUgICAgICAgICAgICAgICAgfCBNZWFuaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8CisgICAgICArPT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCisgICAgICB8ICpQT1NJVElPTkFM
X09OTFkqICAgICAgfCBWYWx1ZSBtdXN0IGJlIHN1cHBsaWVkIGFzIGEgcG9zaXRpb25hbCAgICAg
ICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBhcmd1bWVudC4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAg
ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gaGFzIG5vIGV4cGxpY2l0IHN5bnRh
eCBmb3IgZGVmaW5pbmcgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBwb3Np
dGlvbmFsLW9ubHkgcGFyYW1ldGVycywgYnV0IG1hbnkgYnVpbHQtaW58CisgICAgICB8ICAgICAg
ICAgICAgICAgICAgICAgICAgfCBhbmQgZXh0ZW5zaW9uIG1vZHVsZSBmdW5jdGlvbnMgKGVzcGVj
aWFsbHkgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCB0aG9zZSB0aGF0IGFj
Y2VwdCBvbmx5IG9uZSBvciB0d28gcGFyYW1ldGVycyl8CisgICAgICB8ICAgICAgICAgICAgICAg
ICAgICAgICAgfCBhY2NlcHQgdGhlbS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICpQT1NJVElPTkFMX09SX0tFWVdPUkQq
fCBWYWx1ZSBtYXkgYmUgc3VwcGxpZWQgYXMgZWl0aGVyIGEga2V5d29yZCBvciB8CisgICAgICB8
ICAgICAgICAgICAgICAgICAgICAgICAgfCBwb3NpdGlvbmFsIGFyZ3VtZW50ICh0aGlzIGlzIHRo
ZSBzdGFuZGFyZCAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBiaW5kaW5n
IGJlaGF2aW91ciBmb3IgZnVuY3Rpb25zIGltcGxlbWVudGVkICB8CisgICAgICB8ICAgICAgICAg
ICAgICAgICAgICAgICAgfCBpbiBQeXRob24uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICpWQVJfUE9TSVRJT05BTCog
ICAgICAgfCBBIHR1cGxlIG9mIHBvc2l0aW9uYWwgYXJndW1lbnRzIHRoYXQgYXJlbid0ICB8Cisg
ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBib3VuZCB0byBhbnkgb3RoZXIgcGFyYW1l
dGVyLiBUaGlzICAgICAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBj
b3JyZXNwb25kcyB0byBhIGBgKmFyZ3NgYCBwYXJhbWV0ZXIgaW4gYSAgICB8CisgICAgICB8ICAg
ICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gZnVuY3Rpb24gZGVmaW5pdGlvbi4gICAgICAg
ICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICpLRVlXT1JEX09O
TFkqICAgICAgICAgfCBWYWx1ZSBtdXN0IGJlIHN1cHBsaWVkIGFzIGEga2V5d29yZCBhcmd1bWVu
dC58CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBLZXl3b3JkIG9ubHkgcGFyYW1l
dGVycyBhcmUgdGhvc2Ugd2hpY2ggICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAg
ICAgfCBhcHBlYXIgYWZ0ZXIgYSBgYCpgYCBvciBgYCphcmdzYGAgZW50cnkgaW4gYSB8CisgICAg
ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gZnVuY3Rpb24gZGVmaW5pdGlvbi4g
ICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICpWQVJf
S0VZV09SRCogICAgICAgICAgfCBBIGRpY3Qgb2Yga2V5d29yZCBhcmd1bWVudHMgdGhhdCBhcmVu
J3QgYm91bmR8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCB0byBhbnkgb3RoZXIg
cGFyYW1ldGVyLiBUaGlzIGNvcnJlc3BvbmRzIHRvIGF8CisgICAgICB8ICAgICAgICAgICAgICAg
ICAgICAgICAgfCBgYCoqa3dhcmdzYGAgcGFyYW1ldGVyIGluIGEgUHl0aG9uIGZ1bmN0aW9uICB8
CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBkZWZpbml0aW9uLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisKKyAgICAg
IEV4YW1wbGU6IHByaW50IGFsbCBrZXl3b3JkLW9ubHkgYXJndW1lbnRzIHdpdGhvdXQgZGVmYXVs
dCB2YWx1ZXM6OgorCisgICAgICAgICA+Pj4gZGVmIGZvbyhhLCBiLCAqLCBjLCBkPTEwKToKKyAg
ICAgICAgIC4uLiAgICAgcGFzcworCisgICAgICAgICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykK
KyAgICAgICAgID4+PiBmb3IgcGFyYW0gaW4gc2lnLnBhcmFtZXRlcnMudmFsdWVzKCk6CisgICAg
ICAgICAuLi4gICAgIGlmIChwYXJhbS5raW5kID09IHBhcmFtLktFWVdPUkRfT05MWSBhbmQKKyAg
ICAgICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtLmRlZmF1bHQgaXMgcGFyYW0u
ZW1wdHkpOgorICAgICAgICAgLi4uICAgICAgICAgcHJpbnQoJ1BhcmFtZXRlcjonLCBwYXJhbSkK
KyAgICAgICAgIFBhcmFtZXRlcjogYworCisgICAuLiBtZXRob2Q6OiBQYXJhbWV0ZXIucmVwbGFj
ZSgqWywgbmFtZV1bLCBraW5kXVssIGRlZmF1bHRdWywgYW5ub3RhdGlvbl0pCisKKyAgICAgIENy
ZWF0ZSBhIG5ldyBQYXJhbWV0ZXIgaW5zdGFuY2UgYmFzZWQgb24gdGhlIGluc3RhbmNlIHJlcGxh
Y2VkIHdhcyBpbnZva2VkCisgICAgICBvbi4gIFRvIG92ZXJyaWRlIGEgOmNsYXNzOmBQYXJhbWV0
ZXJgIGF0dHJpYnV0ZSwgcGFzcyB0aGUgY29ycmVzcG9uZGluZworICAgICAgYXJndW1lbnQuICBU
byByZW1vdmUgYSBkZWZhdWx0IHZhbHVlIG9yL2FuZCBhbiBhbm5vdGF0aW9uIGZyb20gYQorICAg
ICAgUGFyYW1ldGVyLCBwYXNzIDphdHRyOmBQYXJhbWV0ZXIuZW1wdHlgLgorCisgICAgICA6Ogor
CisgICAgICAgICA+Pj4gZnJvbSBmdW5jc2lncyBpbXBvcnQgUGFyYW1ldGVyCisgICAgICAgICA+
Pj4gcGFyYW0gPSBQYXJhbWV0ZXIoJ2ZvbycsIFBhcmFtZXRlci5LRVlXT1JEX09OTFksIGRlZmF1
bHQ9NDIpCisgICAgICAgICA+Pj4gc3RyKHBhcmFtKQorICAgICAgICAgJ2Zvbz00MicKKworICAg
ICAgICAgPj4+IHN0cihwYXJhbS5yZXBsYWNlKCkpICMgV2lsbCBjcmVhdGUgYSBzaGFsbG93IGNv
cHkgb2YgJ3BhcmFtJworICAgICAgICAgJ2Zvbz00MicKKworICAgICAgICAgPj4+IHN0cihwYXJh
bS5yZXBsYWNlKGRlZmF1bHQ9UGFyYW1ldGVyLmVtcHR5LCBhbm5vdGF0aW9uPSdzcGFtJykpCisg
ICAgICAgICAiZm9vOidzcGFtJyIKKworCisuLiBjbGFzczo6IEJvdW5kQXJndW1lbnRzCisKKyAg
IFJlc3VsdCBvZiBhIDptZXRoOmBTaWduYXR1cmUuYmluZGAgb3IgOm1ldGg6YFNpZ25hdHVyZS5i
aW5kX3BhcnRpYWxgIGNhbGwuCisgICBIb2xkcyB0aGUgbWFwcGluZyBvZiBhcmd1bWVudHMgdG8g
dGhlIGZ1bmN0aW9uJ3MgcGFyYW1ldGVycy4KKworICAgLi4gYXR0cmlidXRlOjogQm91bmRBcmd1
bWVudHMuYXJndW1lbnRzCisKKyAgICAgIEFuIG9yZGVyZWQsIG11dGFibGUgbWFwcGluZyAoOmNs
YXNzOmBjb2xsZWN0aW9ucy5PcmRlcmVkRGljdGApIG9mCisgICAgICBwYXJhbWV0ZXJzJyBuYW1l
cyB0byBhcmd1bWVudHMnIHZhbHVlcy4gIENvbnRhaW5zIG9ubHkgZXhwbGljaXRseSBib3VuZAor
ICAgICAgYXJndW1lbnRzLiAgQ2hhbmdlcyBpbiA6YXR0cjpgYXJndW1lbnRzYCB3aWxsIHJlZmxl
Y3QgaW4gOmF0dHI6YGFyZ3NgIGFuZAorICAgICAgOmF0dHI6YGt3YXJnc2AuCisKKyAgICAgIFNo
b3VsZCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggOmF0dHI6YFNpZ25hdHVyZS5wYXJhbWV0
ZXJzYCBmb3IgYW55CisgICAgICBhcmd1bWVudCBwcm9jZXNzaW5nIHB1cnBvc2VzLgorCisgICAg
ICAuLiBub3RlOjoKKworICAgICAgICAgQXJndW1lbnRzIGZvciB3aGljaCA6bWV0aDpgU2lnbmF0
dXJlLmJpbmRgIG9yCisgICAgICAgICA6bWV0aDpgU2lnbmF0dXJlLmJpbmRfcGFydGlhbGAgcmVs
aWVkIG9uIGEgZGVmYXVsdCB2YWx1ZSBhcmUgc2tpcHBlZC4KKyAgICAgICAgIEhvd2V2ZXIsIGlm
IG5lZWRlZCwgaXQgaXMgZWFzeSB0byBpbmNsdWRlIHRoZW0uCisKKyAgICAgIDo6CisKKyAgICAg
ICAgPj4+IGRlZiBmb28oYSwgYj0xMCk6CisgICAgICAgIC4uLiAgICAgcGFzcworCisgICAgICAg
ID4+PiBzaWcgPSBzaWduYXR1cmUoZm9vKQorICAgICAgICA+Pj4gYmEgPSBzaWcuYmluZCg1KQor
CisgICAgICAgID4+PiBiYS5hcmdzLCBiYS5rd2FyZ3MKKyAgICAgICAgKCg1LCksIHt9KQorCisg
ICAgICAgID4+PiBmb3IgcGFyYW0gaW4gc2lnLnBhcmFtZXRlcnMudmFsdWVzKCk6CisgICAgICAg
IC4uLiAgICAgaWYgcGFyYW0ubmFtZSBub3QgaW4gYmEuYXJndW1lbnRzOgorICAgICAgICAuLi4g
ICAgICAgICBiYS5hcmd1bWVudHNbcGFyYW0ubmFtZV0gPSBwYXJhbS5kZWZhdWx0CisKKyAgICAg
ICAgPj4+IGJhLmFyZ3MsIGJhLmt3YXJncworICAgICAgICAoKDUsIDEwKSwge30pCisKKworICAg
Li4gYXR0cmlidXRlOjogQm91bmRBcmd1bWVudHMuYXJncworCisgICAgICBBIHR1cGxlIG9mIHBv
c2l0aW9uYWwgYXJndW1lbnRzIHZhbHVlcy4gIER5bmFtaWNhbGx5IGNvbXB1dGVkIGZyb20gdGhl
CisgICAgICA6YXR0cjpgYXJndW1lbnRzYCBhdHRyaWJ1dGUuCisKKyAgIC4uIGF0dHJpYnV0ZTo6
IEJvdW5kQXJndW1lbnRzLmt3YXJncworCisgICAgICBBIGRpY3Qgb2Yga2V5d29yZCBhcmd1bWVu
dHMgdmFsdWVzLiAgRHluYW1pY2FsbHkgY29tcHV0ZWQgZnJvbSB0aGUKKyAgICAgIDphdHRyOmBh
cmd1bWVudHNgIGF0dHJpYnV0ZS4KKworICAgVGhlIDphdHRyOmBhcmdzYCBhbmQgOmF0dHI6YGt3
YXJnc2AgcHJvcGVydGllcyBjYW4gYmUgdXNlZCB0byBpbnZva2UKKyAgIGZ1bmN0aW9uczo6CisK
KyAgICAgIGRlZiB0ZXN0KGEsICosIGIpOgorICAgICAgICAgLi4uCisKKyAgICAgIHNpZyA9IHNp
Z25hdHVyZSh0ZXN0KQorICAgICAgYmEgPSBzaWcuYmluZCgxMCwgYj0yMCkKKyAgICAgIHRlc3Qo
KmJhLmFyZ3MsICoqYmEua3dhcmdzKQorCisKKy4uIHNlZWFsc286OgorCisgICA6cGVwOmAzNjJg
IC0gRnVuY3Rpb24gU2lnbmF0dXJlIE9iamVjdC4KKyAgICAgIFRoZSBkZXRhaWxlZCBzcGVjaWZp
Y2F0aW9uLCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFuZCBleGFtcGxlcy4KIAogQ29weXJpZ2h0
CiAtLS0tLS0tLS0KIAotVGhpcyBpcyBhIGRlcml2ZWQgd29yayBvZiBDUHl0aG9uIHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgYFBTRiBMaWNlbnNlCisqZnVuY3NpZ3MqIGlzIGEgZGVyaXZlZCB3b3Jr
IG9mIENQeXRob24gdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBgUFNGIExpY2Vuc2UKIEFncmVlbWVu
dGBfLiBUaGUgb3JpZ2luYWwgQ1B5dGhvbiBpbnNwZWN0IG1vZHVsZSwgaXRzIHVuaXQgdGVzdHMg
YW5kCiBkb2N1bWVudGF0aW9uIGFyZSB0aGUgY29weXJpZ2h0IG9mIHRoZSBQeXRob24gU29mdHdh
cmUgRm91bmRhdGlvbi4gVGhlIGRlcml2ZWQKIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IGBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMGBfLgogCisuLiBfUFNGIExpY2Vuc2UgQWdyZWVt
ZW50OiBodHRwOi8vZG9jcy5weXRob24ub3JnLzMvbGljZW5zZS5odG1sI3Rlcm1zLWFuZC1jb25k
aXRpb25zLWZvci1hY2Nlc3Npbmctb3Itb3RoZXJ3aXNlLXVzaW5nLXB5dGhvbgogLi4gX0FwYWNo
ZSBMaWNlbnNlIFZlcnNpb24gMi4wOiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBh
Y2hlLTIuMAotLi4gX0dpdEh1YjogaHR0cHM6Ly9naXRodWIuY29tL2FsaWxlcy9mdW5jc2lncwor
Li4gX0dpdEh1YjogaHR0cHM6Ly9naXRodWIuY29tL3Rlc3RpbmctY2FiYWwvZnVuY3NpZ3MKIC4u
IF9QU0YgTGljZW5zZSBBZ3JlZW1lbnQ6IGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWNlbnNl
Lmh0bWwjdGVybXMtYW5kLWNvbmRpdGlvbnMtZm9yLWFjY2Vzc2luZy1vci1vdGhlcndpc2UtdXNp
bmctcHl0aG9uCiAuLiBfVHJhdmlzIENJOiBodHRwOi8vdHJhdmlzLWNpLm9yZy8KIC4uIF9SZWFk
IFRoZSBEb2NzOiBodHRwOi8vZnVuY3NpZ3MucmVhZHRoZWRvY3Mub3JnLwogLi4gX1BFUCAzNjI6
IGh0dHA6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDM2Mi8KIC4uIF9pbnNwZWN0OiBo
dHRwOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9pbnNwZWN0Lmh0bWwjaW50cm9zcGVjdGlu
Zy1jYWxsYWJsZXMtd2l0aC10aGUtc2lnbmF0dXJlLW9iamVjdAotLi4gX2lzc3VlcyBzeXN0ZW06
IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGllcy9mdW5jc2lncy9pc3N1ZXMKKy4uIF9pc3N1ZXMgc3lz
dGVtOiBodHRwczovL2dpdGh1Yi5jb20vdGVzdGluZy1jYWJhbC9mdW5jc2lncy9pc3N1ZXMKIAog
Li4gfGJ1aWxkX3N0YXR1c3wgaW1hZ2U6OiBodHRwczovL3NlY3VyZS50cmF2aXMtY2kub3JnL2Fs
aWxlcy9mdW5jc2lncy5wbmc/YnJhbmNoPW1hc3RlcgogICAgOnRhcmdldDogaHR0cDovL3RyYXZp
cy1jaS5vcmcvIyEvYWxpbGVzL2Z1bmNzaWdzCkBAIC04MSwzICszNDksNSBAQCB3b3JrIGlzIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjBgXy4KIC4uIHxw
eXBpX3ZlcnNpb258IGltYWdlOjogaHR0cHM6Ly9weXBpcC5pbi92L2Z1bmNzaWdzL2JhZGdlLnBu
ZwogICAgOnRhcmdldDogaHR0cHM6Ly9jcmF0ZS5pby9wYWNrYWdlcy9mdW5jc2lncy8KICAgIDph
bHQ6IExhdGVzdCBQeVBJIHZlcnNpb24KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Rv
Y3MvaW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL2luZGV4LnJzdAppbmRleCA1ZDBmNDJm
OTM2OGI3NmQ3ZWY1OGJjOTA4NzQ0ZDg3MjQzYzE0ODU3Li41ZmJjYTI3ZTZlNmIwMTk4ODdkZGYx
Yjg2ZmFmODRiN2Y3ZDJhYjk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvaW5kZXgu
cnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9pbmRleC5yc3QKQEAgLTksNDggKzksNjUgQEAg
SW50cm9kdWNpbmcgZnVuY3NpZ3MKIFRoZSBGdW5jc2lncyBQYWNrYWdlCiAtLS0tLS0tLS0tLS0t
LS0tLS0tLQogCi0qZnVuY3NpZ3MqIGlzIGEgYmFja3BvcnQgb2YgdGhlIGBQRVAgMzYyYF8gZnVu
Y3Rpb24gc2lnbmF0dXJlIGZlYXR1cmVzIGZyb20KK2BgZnVuY3NpZ3NgYCBpcyBhIGJhY2twb3J0
IG9mIHRoZSBgUEVQIDM2MmBfIGZ1bmN0aW9uIHNpZ25hdHVyZSBmZWF0dXJlcyBmcm9tCiBQeXRo
b24gMy4zJ3MgYGluc3BlY3RgXyBtb2R1bGUuIFRoZSBiYWNrcG9ydCBpcyBjb21wYXRpYmxlIHdp
dGggUHl0aG9uIDIuNiwgMi43Ci1hcyB3ZWxsIGFzIDMuMiBhbmQgdXAuCithcyB3ZWxsIGFzIDMu
MyBhbmQgdXAuIDMuMiB3YXMgc3VwcG9ydGVkIGJ5IHZlcnNpb24gMC40LCBidXQgd2l0aCBzZXR1
cHRvb2xzIGFuZAorcGlwIG5vIGxvbmdlciBzdXBwb3J0aW5nIDMuMiwgd2UgY2Fubm90IG1ha2Ug
YW55IHN0YXRlbWVudCBhYm91dCAzLjIKK2NvbXBhdGliaWxpdHkuCiAKLS4uIF9QRVAgMzYyOiBo
dHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAzNjIvCi0uLiBfaW5zcGVjdDogaHR0
cDovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvaW5zcGVjdC5odG1sI2ludHJvc3BlY3Rpbmct
Y2FsbGFibGVzLXdpdGgtdGhlLXNpZ25hdHVyZS1vYmplY3QKLQotQ29tcGF0YWJpbGl0eQorQ29t
cGF0aWJpbGl0eQogYGBgYGBgYGBgYGBgYAogCi1UaGUgKmZ1bmNzaWdzKiBiYWNrcG9ydCBoYXMg
YmVlbiB0ZXN0ZWQgYWdhaW5zdDoKK1RoZSBgYGZ1bmNzaWdzYGAgYmFja3BvcnQgaGFzIGJlZW4g
dGVzdGVkIGFnYWluc3Q6CiAKICogQ1B5dGhvbiAyLjYKICogQ1B5dGhvbiAyLjcKLSogQ1B5dGhv
biAzLjIKLSogUHlQeSAxLjkKKyogQ1B5dGhvbiAzLjMKKyogQ1B5dGhvbiAzLjQKKyogQ1B5dGhv
biAzLjUKKyogQ1B5dGhvbiBuaWdodGxpZXMKKyogUHlQeSBhbmQgUHlQeTMoY3VycmVudGx5IGZh
aWxpbmcgQ0kpCiAKIENvbnRpbnVvdXMgaW50ZWdyYXRpb24gdGVzdGluZyBpcyBwcm92aWRlZCBi
eSBgVHJhdmlzIENJYF8uCiAKLVVuZGVyIFB5dGhvbiAyLnggdGhlcmUgaXMgYSBjb21wYXRhYmls
aXR5IGlzc3VlIHdoZW4gYSBmdW5jdGlvbiBpcyBhc3NpZ25lZCB0bworVW5kZXIgUHl0aG9uIDIu
eCB0aGVyZSBpcyBhIGNvbXBhdGliaWxpdHkgaXNzdWUgd2hlbiBhIGZ1bmN0aW9uIGlzIGFzc2ln
bmVkIHRvCiB0aGUgYGBfX3dyYXBwZWRfX2BgIHByb3BlcnR5IG9mIGEgY2xhc3MgYWZ0ZXIgaXQg
aGFzIGJlZW4gY29uc3RydWN0ZWQuCiBTaW1pbGlhcmlseSB0aGVyZSB1bmRlciBQeVB5IGRpcmVj
dGx5IHBhc3NpbmcgdGhlIGBgX19jYWxsX19gYCBtZXRob2Qgb2YgYQotYnVpbHRpbiBpcyBhbHNv
IGEgY29tcGF0YWJpbGl0eSBpc3N1ZXMuICBPdGhlcndpc2UgdGhlIGZ1bmN0aW9uYWxpdHkgaXMK
K2J1aWx0aW4gaXMgYWxzbyBhIGNvbXBhdGliaWxpdHkgaXNzdWVzLiAgT3RoZXJ3aXNlIHRoZSBm
dW5jdGlvbmFsaXR5IGlzCiBiZWxpZXZlZCB0byBiZSB1bmlmb3JtIGJldHdlZW4gYm90aCBQeXRo
b24yIGFuZCBQeXRob24zLgogCi0uLiBfVHJhdmlzIENJOiBodHRwOi8vdHJhdmlzLWNpLm9yZy8K
LQogSXNzdWVzCiBgYGBgYGAKIAotU291cmNlIGNvZGUgZm9yICpmdW5jc2lncyogaXMgaG9zdGVk
IG9uIGBHaXRIdWJgXy4gQW55IGJ1ZyByZXBvcnRzIG9yIGZlYXR1cmUKLXJlcXVlc3RzIGNhbiBi
ZSBtYWRlIHVzaW5nIEdpdEh1YidzIGBpc3N1ZXMgc3lzdGVtYF8uCitTb3VyY2UgY29kZSBmb3Ig
YGBmdW5jc2lnc2BgIGlzIGhvc3RlZCBvbiBgR2l0SHViYF8uIEFueSBidWcgcmVwb3J0cyBvciBm
ZWF0dXJlCityZXF1ZXN0cyBjYW4gYmUgbWFkZSB1c2luZyBHaXRIdWIncyBgaXNzdWVzIHN5c3Rl
bWBfLiB8YnVpbGRfc3RhdHVzfCB8Y292ZXJhZ2V8CiAKLS4uIF9HaXRIdWI6IGh0dHBzOi8vZ2l0
aHViLmNvbS9hbGlsZXMvZnVuY3NpZ3MKLS4uIF9pc3N1ZXMgc3lzdGVtOiBodHRwczovL2dpdGh1
Yi5jb20vYWxpZXMvZnVuY3NpZ3MvaXNzdWVzCitFeGFtcGxlCistLS0tLS0tCisKK1RvIG9idGFp
biBhIGBTaWduYXR1cmVgIG9iamVjdCwgcGFzcyB0aGUgdGFyZ2V0IGZ1bmN0aW9uIHRvIHRoZQor
YGBmdW5jc2lncy5zaWduYXR1cmVgYCBmdW5jdGlvbi4KKworLi4gY29kZS1ibG9jazo6IHB5dGhv
bgorCisgICAgPj4+IGZyb20gZnVuY3NpZ3MgaW1wb3J0IHNpZ25hdHVyZQorICAgID4+PiBkZWYg
Zm9vKGEsIGI9Tm9uZSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAuLi4gICAgIHBhc3MKKyAgICAu
Li4KKyAgICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykKKyAgICA+Pj4gc2lnCisgICAgPGZ1bmNz
aWdzLlNpZ25hdHVyZSBvYmplY3QgYXQgMHguLi4+CisgICAgPj4+IHNpZy5wYXJhbWV0ZXJzCisg
ICAgT3JkZXJlZERpY3QoWygnYScsIDxQYXJhbWV0ZXIgYXQgMHguLi4gJ2EnPiksICgnYicsIDxQ
YXJhbWV0ZXIgYXQgMHguLi4gJ2InPiksICgnYXJncycsIDxQYXJhbWV0ZXIgYXQgMHguLi4gJ2Fy
Z3MnPiksICgna3dhcmdzJywgPFBhcmFtZXRlciBhdCAweC4uLiAna3dhcmdzJz4pXSkKKyAgICA+
Pj4gc2lnLnJldHVybl9hbm5vdGF0aW9uCisgICAgPGNsYXNzICdmdW5jc2lncy5fZW1wdHknPgog
CiBJbnRyb3NwZWN0aW5nIGNhbGxhYmxlcyB3aXRoIHRoZSBTaWduYXR1cmUgb2JqZWN0CiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIC4uIG5vdGU6
OgogCi0gICBUaGlzIHNlY3Rpb24gb2YgZG9jdW1lbnRhdGlvbiBpcyBhIGRpcmVjdCByZXBvZHVj
dGlvbiBvZiB0aGUgUHl0aG9uCisgICBUaGlzIHNlY3Rpb24gb2YgZG9jdW1lbnRhdGlvbiBpcyBh
IGRpcmVjdCByZXByb2R1Y3Rpb24gb2YgdGhlIFB5dGhvbgogICAgc3RhbmRhcmQgbGlicmFyeSBk
b2N1bWVudGF0aW9uIGZvciB0aGUgaW5zcGVjdCBtb2R1bGUuCiAKIFRoZSBTaWduYXR1cmUgb2Jq
ZWN0IHJlcHJlc2VudHMgdGhlIGNhbGwgc2lnbmF0dXJlIG9mIGEgY2FsbGFibGUgb2JqZWN0IGFu
ZCBpdHMKQEAgLTYxLDcgKzc4LDcgQEAgZnVuY3Rpb24uCiAKICAgIFJldHVybiBhIDpjbGFzczpg
U2lnbmF0dXJlYCBvYmplY3QgZm9yIHRoZSBnaXZlbiBgYGNhbGxhYmxlYGA6OgogCi0gICAgICA+
Pj4gZnJvbSBpbnNwZWN0IGltcG9ydCBzaWduYXR1cmUKKyAgICAgID4+PiBmcm9tIGZ1bmNzaWdz
IGltcG9ydCBzaWduYXR1cmUKICAgICAgID4+PiBkZWYgZm9vKGEsICosIGI6aW50LCAqKmt3YXJn
cyk6CiAgICAgICAuLi4gICAgIHBhc3MKIApAQCAtMjI1LDcgKzI0Miw3IEBAIGZ1bmN0aW9uLgog
CiAgICAgICA6OgogCi0gICAgICAgICA+Pj4gZnJvbSBpbnNwZWN0IGltcG9ydCBQYXJhbWV0ZXIK
KyAgICAgICAgID4+PiBmcm9tIGZ1bmNzaWdzIGltcG9ydCBQYXJhbWV0ZXIKICAgICAgICAgID4+
PiBwYXJhbSA9IFBhcmFtZXRlcignZm9vJywgUGFyYW1ldGVyLktFWVdPUkRfT05MWSwgZGVmYXVs
dD00MikKICAgICAgICAgID4+PiBzdHIocGFyYW0pCiAgICAgICAgICAnZm9vPTQyJwpAQCAtMzEz
LDMgKzMzMCwyNCBAQCB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBgQXBhY2hlIExpY2Vu
c2UgVmVyc2lvbiAyLjBgXy4KIAogLi4gX1BTRiBMaWNlbnNlIEFncmVlbWVudDogaHR0cDovL2Rv
Y3MucHl0aG9uLm9yZy8zL2xpY2Vuc2UuaHRtbCN0ZXJtcy1hbmQtY29uZGl0aW9ucy1mb3ItYWNj
ZXNzaW5nLW9yLW90aGVyd2lzZS11c2luZy1weXRob24KIC4uIF9BcGFjaGUgTGljZW5zZSBWZXJz
aW9uIDIuMDogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKy4uIF9H
aXRIdWI6IGh0dHBzOi8vZ2l0aHViLmNvbS90ZXN0aW5nLWNhYmFsL2Z1bmNzaWdzCisuLiBfUFNG
IExpY2Vuc2UgQWdyZWVtZW50OiBodHRwOi8vZG9jcy5weXRob24ub3JnLzMvbGljZW5zZS5odG1s
I3Rlcm1zLWFuZC1jb25kaXRpb25zLWZvci1hY2Nlc3Npbmctb3Itb3RoZXJ3aXNlLXVzaW5nLXB5
dGhvbgorLi4gX1RyYXZpcyBDSTogaHR0cDovL3RyYXZpcy1jaS5vcmcvCisuLiBfUmVhZCBUaGUg
RG9jczogaHR0cDovL2Z1bmNzaWdzLnJlYWR0aGVkb2NzLm9yZy8KKy4uIF9QRVAgMzYyOiBodHRw
Oi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAzNjIvCisuLiBfaW5zcGVjdDogaHR0cDov
L2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvaW5zcGVjdC5odG1sI2ludHJvc3BlY3RpbmctY2Fs
bGFibGVzLXdpdGgtdGhlLXNpZ25hdHVyZS1vYmplY3QKKy4uIF9pc3N1ZXMgc3lzdGVtOiBodHRw
czovL2dpdGh1Yi5jb20vdGVzdGluZy1jYWJhbC9mdW5jc2lncy9pc3N1ZXMKKworLi4gfGJ1aWxk
X3N0YXR1c3wgaW1hZ2U6OiBodHRwczovL3NlY3VyZS50cmF2aXMtY2kub3JnL2FsaWxlcy9mdW5j
c2lncy5wbmc/YnJhbmNoPW1hc3RlcgorICAgOnRhcmdldDogaHR0cDovL3RyYXZpcy1jaS5vcmcv
IyEvYWxpbGVzL2Z1bmNzaWdzCisgICA6YWx0OiBDdXJyZW50IGJ1aWxkIHN0YXR1cworCisuLiB8
Y292ZXJhZ2V8IGltYWdlOjogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvYWxpbGVzL2Z1bmNz
aWdzL2JhZGdlLnBuZz9icmFuY2g9bWFzdGVyCisgICA6dGFyZ2V0OiBodHRwczovL2NvdmVyYWxs
cy5pby9yL2FsaWxlcy9mdW5jc2lncz9icmFuY2g9bWFzdGVyCisgICA6YWx0OiBDb3ZlcmFnZSBz
dGF0dXMKKworLi4gfHB5cGlfdmVyc2lvbnwgaW1hZ2U6OiBodHRwczovL3B5cGlwLmluL3YvZnVu
Y3NpZ3MvYmFkZ2UucG5nCisgICA6dGFyZ2V0OiBodHRwczovL2NyYXRlLmlvL3BhY2thZ2VzL2Z1
bmNzaWdzLworICAgOmFsdDogTGF0ZXN0IFB5UEkgdmVyc2lvbgorCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvZnVuY3NpZ3MvZnVuY3NpZ3MvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdz
L19faW5pdF9fLnB5CmluZGV4IGZkMmY0N2IxZDRkZjZlYzJhZmZlNmY2NzhhMWE1ODNkZjk1NDM1
YjUuLjVmNTM3OGI0MmE2ZDI3Y2Y0OTBkNjZhZTJiNzljNzZiYjQ2NmNlZGYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9m
dW5jc2lncy9fX2luaXRfXy5weQpAQCAtMiw3ICsyLDcgQEAKICIiIkZ1bmN0aW9uIHNpZ25hdHVy
ZSBvYmplY3RzIGZvciBjYWxsYWJsZXMKIAogQmFjayBwb3J0IG9mIFB5dGhvbiAzLjMncyBmdW5j
dGlvbiBzaWduYXR1cmUgdG9vbHMgZnJvbSB0aGUgaW5zcGVjdCBtb2R1bGUsCi1tb2RpZmllZCB0
byBiZSBjb21wYXRpYmxlIHdpdGggUHl0aG9uIDIuNiwgMi43IGFuZCAzLjIrLgorbW9kaWZpZWQg
dG8gYmUgY29tcGF0aWJsZSB3aXRoIFB5dGhvbiAyLjYsIDIuNyBhbmQgMy4zKy4KICIiIgogZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5j
dGlvbgogaW1wb3J0IGl0ZXJ0b29scwpAQCAtMTMsNyArMTMsNyBAQCBpbXBvcnQgdHlwZXMKIHRy
eToKICAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdAogZXhjZXB0IEltcG9y
dEVycm9yOgotICAgIGZyb20gZnVuY3NpZ3Mub2RpY3QgaW1wb3J0IE9yZGVyZWREaWN0CisgICAg
ZnJvbSBvcmRlcmVkZGljdCBpbXBvcnQgT3JkZXJlZERpY3QKIAogZnJvbSBmdW5jc2lncy52ZXJz
aW9uIGltcG9ydCBfX3ZlcnNpb25fXwogCkBAIC02MSwxOCArNjEsMjkgQEAgZGVmIHNpZ25hdHVy
ZShvYmopOgogICAgIGlmIGlzaW5zdGFuY2Uob2JqLCB0eXBlcy5NZXRob2RUeXBlKToKICAgICAg
ICAgc2lnID0gc2lnbmF0dXJlKG9iai5fX2Z1bmNfXykKICAgICAgICAgaWYgb2JqLl9fc2VsZl9f
IGlzIE5vbmU6Ci0gICAgICAgICAgICAjIFVuYm91bmQgbWV0aG9kOiB0aGUgZmlyc3QgcGFyYW1l
dGVyIGJlY29tZXMgcG9zaXRpb25hbC1vbmx5Ci0gICAgICAgICAgICBpZiBzaWcucGFyYW1ldGVy
czoKLSAgICAgICAgICAgICAgICBmaXJzdCA9IHNpZy5wYXJhbWV0ZXJzLnZhbHVlcygpWzBdLnJl
cGxhY2UoCi0gICAgICAgICAgICAgICAgICAgIGtpbmQ9X1BPU0lUSU9OQUxfT05MWSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gc2lnLnJlcGxhY2UoCi0gICAgICAgICAgICAgICAgICAgIHBhcmFt
ZXRlcnM9KGZpcnN0LCkgKyB0dXBsZShzaWcucGFyYW1ldGVycy52YWx1ZXMoKSlbMTpdKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4gc2lnCisgICAgICAgICAgICAj
IFVuYm91bmQgbWV0aG9kIC0gcHJlc2VydmUgYXMtaXMuCisgICAgICAgICAgICByZXR1cm4gc2ln
CiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIEluIHRoaXMgY2FzZSB3ZSBza2lwIHRoZSBm
aXJzdCBwYXJhbWV0ZXIgb2YgdGhlIHVuZGVybHlpbmcKLSAgICAgICAgICAgICMgZnVuY3Rpb24g
KHVzdWFsbHkgYHNlbGZgIG9yIGBjbHNgKS4KLSAgICAgICAgICAgIHJldHVybiBzaWcucmVwbGFj
ZShwYXJhbWV0ZXJzPXR1cGxlKHNpZy5wYXJhbWV0ZXJzLnZhbHVlcygpKVsxOl0pCisgICAgICAg
ICAgICAjIEJvdW5kIG1ldGhvZC4gRWF0IHNlbGYgLSBpZiB3ZSBjYW4uCisgICAgICAgICAgICBw
YXJhbXMgPSB0dXBsZShzaWcucGFyYW1ldGVycy52YWx1ZXMoKSkKKworICAgICAgICAgICAgaWYg
bm90IHBhcmFtcyBvciBwYXJhbXNbMF0ua2luZCBpbiAoX1ZBUl9LRVlXT1JELCBfS0VZV09SRF9P
TkxZKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdpbnZhbGlkIG1ldGhvZCBz
aWduYXR1cmUnKQorCisgICAgICAgICAgICBraW5kID0gcGFyYW1zWzBdLmtpbmQKKyAgICAgICAg
ICAgIGlmIGtpbmQgaW4gKF9QT1NJVElPTkFMX09SX0tFWVdPUkQsIF9QT1NJVElPTkFMX09OTFkp
OgorICAgICAgICAgICAgICAgICMgRHJvcCBmaXJzdCBwYXJhbWV0ZXI6CisgICAgICAgICAgICAg
ICAgIyAnKHAxLCBwMlssIC4uLl0pJyAtPiAnKHAyWywgLi4uXSknCisgICAgICAgICAgICAgICAg
cGFyYW1zID0gcGFyYW1zWzE6XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBp
ZiBraW5kIGlzIG5vdCBfVkFSX1BPU0lUSU9OQUw6CisgICAgICAgICAgICAgICAgICAgICMgVW5s
ZXNzIHdlIGFkZCBhIG5ldyBwYXJhbWV0ZXIgdHlwZSB3ZSBuZXZlcgorICAgICAgICAgICAgICAg
ICAgICAjIGdldCBoZXJlCisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2lu
dmFsaWQgYXJndW1lbnQgdHlwZScpCisgICAgICAgICAgICAgICAgIyBJdCdzIGEgdmFyLXBvc2l0
aW9uYWwgcGFyYW1ldGVyLgorICAgICAgICAgICAgICAgICMgRG8gbm90aGluZy4gJygqYXJnc1ss
IC4uLl0pJyAtPiAnKCphcmdzWywgLi4uXSknCisKKyAgICAgICAgICAgIHJldHVybiBzaWcucmVw
bGFjZShwYXJhbWV0ZXJzPXBhcmFtcykKIAogICAgIHRyeToKICAgICAgICAgc2lnID0gb2JqLl9f
c2lnbmF0dXJlX18KQEAgLTc2OSwxNiArNzgwLDE2IEBAIGNsYXNzIFNpZ25hdHVyZShvYmplY3Qp
OgogICAgICAgICAgICAgICAgICMgUHJvY2VzcyBvdXIgJyoqa3dhcmdzJy1saWtlIHBhcmFtZXRl
cgogICAgICAgICAgICAgICAgIGFyZ3VtZW50c1trd2FyZ3NfcGFyYW0ubmFtZV0gPSBrd2FyZ3MK
ICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd0b28g
bWFueSBrZXl3b3JkIGFyZ3VtZW50cycpCisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9y
KCd0b28gbWFueSBrZXl3b3JkIGFyZ3VtZW50cyAlcicgJSBrd2FyZ3MpCiAKICAgICAgICAgcmV0
dXJuIHNlbGYuX2JvdW5kX2FyZ3VtZW50c19jbHMoc2VsZiwgYXJndW1lbnRzKQogCi0gICAgZGVm
IGJpbmQoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICBkZWYgYmluZCgqYXJncywgKiprd2Fy
Z3MpOgogICAgICAgICAnJydHZXQgYSBCb3VuZEFyZ3VtZW50cyBvYmplY3QsIHRoYXQgbWFwcyB0
aGUgcGFzc2VkIGBhcmdzYAogICAgICAgICBhbmQgYGt3YXJnc2AgdG8gdGhlIGZ1bmN0aW9uJ3Mg
c2lnbmF0dXJlLiAgUmFpc2VzIGBUeXBlRXJyb3JgCiAgICAgICAgIGlmIHRoZSBwYXNzZWQgYXJn
dW1lbnRzIGNhbiBub3QgYmUgYm91bmQuCiAgICAgICAgICcnJwotICAgICAgICByZXR1cm4gc2Vs
Zi5fYmluZChhcmdzLCBrd2FyZ3MpCisgICAgICAgIHJldHVybiBhcmdzWzBdLl9iaW5kKGFyZ3Nb
MTpdLCBrd2FyZ3MpCiAKICAgICBkZWYgYmluZF9wYXJ0aWFsKHNlbGYsICphcmdzLCAqKmt3YXJn
cyk6CiAgICAgICAgICcnJ0dldCBhIEJvdW5kQXJndW1lbnRzIG9iamVjdCwgdGhhdCBwYXJ0aWFs
bHkgbWFwcyB0aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3Mvb2RpY3QucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL29kaWN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2MjIxZTk3MWIzNzk0ZGVlNmUwNzc1NjRlNWM2Zjg1NDM1N2QyMzQ0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVu
Y3NpZ3Mvb2RpY3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNjEgKzAsMCBAQAotIyBCYWNrcG9y
dCBvZiBPcmRlcmVkRGljdCgpIGNsYXNzIHRoYXQgcnVucyBvbiBQeXRob24gMi40LCAyLjUsIDIu
NiwgMi43IGFuZCBweXB5LgotIyBQYXNzZXMgUHl0aG9uMi43J3MgdGVzdCBzdWl0ZSBhbmQgaW5j
b3Jwb3JhdGVzIGFsbCB0aGUgbGF0ZXN0IHVwZGF0ZXMuCi0jIENvcHlyaWdodCAyMDA5IFJheW1v
bmQgSGV0dGluZ2VyCi0jIGh0dHA6Ly9jb2RlLmFjdGl2ZXN0YXRlLmNvbS9yZWNpcGVzLzU3NjY5
My8KLSJPcmRlcmVkIGRpY3Rpb25hcnkiCi0KLXRyeToKLSAgICBmcm9tIHRocmVhZCBpbXBvcnQg
Z2V0X2lkZW50IGFzIF9nZXRfaWRlbnQKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBmcm9tIGR1
bW15X3RocmVhZCBpbXBvcnQgZ2V0X2lkZW50IGFzIF9nZXRfaWRlbnQKLQotdHJ5OgotICAgIGZy
b20gX2FiY29sbCBpbXBvcnQgS2V5c1ZpZXcsIFZhbHVlc1ZpZXcsIEl0ZW1zVmlldwotZXhjZXB0
IEltcG9ydEVycm9yOgotICAgIHBhc3MKLQotCi1jbGFzcyBPcmRlcmVkRGljdChkaWN0KToKLSAg
ICAnRGljdGlvbmFyeSB0aGF0IHJlbWVtYmVycyBpbnNlcnRpb24gb3JkZXInCi0gICAgIyBBbiBp
bmhlcml0ZWQgZGljdCBtYXBzIGtleXMgdG8gdmFsdWVzLgotICAgICMgVGhlIGluaGVyaXRlZCBk
aWN0IHByb3ZpZGVzIF9fZ2V0aXRlbV9fLCBfX2xlbl9fLCBfX2NvbnRhaW5zX18sIGFuZCBnZXQu
Ci0gICAgIyBUaGUgcmVtYWluaW5nIG1ldGhvZHMgYXJlIG9yZGVyLWF3YXJlLgotICAgICMgQmln
LU8gcnVubmluZyB0aW1lcyBmb3IgYWxsIG1ldGhvZHMgYXJlIHRoZSBzYW1lIGFzIGZvciByZWd1
bGFyIGRpY3Rpb25hcmllcy4KLQotICAgICMgVGhlIGludGVybmFsIHNlbGYuX19tYXAgZGljdGlv
bmFyeSBtYXBzIGtleXMgdG8gbGlua3MgaW4gYSBkb3VibHkgbGlua2VkIGxpc3QuCi0gICAgIyBU
aGUgY2lyY3VsYXIgZG91Ymx5IGxpbmtlZCBsaXN0IHN0YXJ0cyBhbmQgZW5kcyB3aXRoIGEgc2Vu
dGluZWwgZWxlbWVudC4KLSAgICAjIFRoZSBzZW50aW5lbCBlbGVtZW50IG5ldmVyIGdldHMgZGVs
ZXRlZCAodGhpcyBzaW1wbGlmaWVzIHRoZSBhbGdvcml0aG0pLgotICAgICMgRWFjaCBsaW5rIGlz
IHN0b3JlZCBhcyBhIGxpc3Qgb2YgbGVuZ3RoIHRocmVlOiAgW1BSRVYsIE5FWFQsIEtFWV0uCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dkcyk6Ci0gICAgICAgICcnJ0luaXRp
YWxpemUgYW4gb3JkZXJlZCBkaWN0aW9uYXJ5LiAgU2lnbmF0dXJlIGlzIHRoZSBzYW1lIGFzIGZv
cgotICAgICAgICByZWd1bGFyIGRpY3Rpb25hcmllcywgYnV0IGtleXdvcmQgYXJndW1lbnRzIGFy
ZSBub3QgcmVjb21tZW5kZWQKLSAgICAgICAgYmVjYXVzZSB0aGVpciBpbnNlcnRpb24gb3JkZXIg
aXMgYXJiaXRyYXJ5LgotCi0gICAgICAgICcnJwotICAgICAgICBpZiBsZW4oYXJncykgPiAxOgot
ICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdleHBlY3RlZCBhdCBtb3N0IDEgYXJndW1lbnRz
LCBnb3QgJWQnICUgbGVuKGFyZ3MpKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9f
cm9vdAotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBzZWxmLl9f
cm9vdCA9IHJvb3QgPSBbXSAgICAgICAgICAgICAgICAgICAgICMgc2VudGluZWwgbm9kZQotICAg
ICAgICAgICAgcm9vdFs6XSA9IFtyb290LCByb290LCBOb25lXQotICAgICAgICAgICAgc2VsZi5f
X21hcCA9IHt9Ci0gICAgICAgIHNlbGYuX191cGRhdGUoKmFyZ3MsICoqa3dkcykKLQotICAgIGRl
ZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlLCBkaWN0X3NldGl0ZW09ZGljdC5fX3NldGl0
ZW1fXyk6Ci0gICAgICAgICdvZC5fX3NldGl0ZW1fXyhpLCB5KSA8PT0+IG9kW2ldPXknCi0gICAg
ICAgICMgU2V0dGluZyBhIG5ldyBpdGVtIGNyZWF0ZXMgYSBuZXcgbGluayB3aGljaCBnb2VzIGF0
IHRoZSBlbmQgb2YgdGhlIGxpbmtlZAotICAgICAgICAjIGxpc3QsIGFuZCB0aGUgaW5oZXJpdGVk
IGRpY3Rpb25hcnkgaXMgdXBkYXRlZCB3aXRoIHRoZSBuZXcga2V5L3ZhbHVlIHBhaXIuCi0gICAg
ICAgIGlmIGtleSBub3QgaW4gc2VsZjoKLSAgICAgICAgICAgIHJvb3QgPSBzZWxmLl9fcm9vdAot
ICAgICAgICAgICAgbGFzdCA9IHJvb3RbMF0KLSAgICAgICAgICAgIGxhc3RbMV0gPSByb290WzBd
ID0gc2VsZi5fX21hcFtrZXldID0gW2xhc3QsIHJvb3QsIGtleV0KLSAgICAgICAgZGljdF9zZXRp
dGVtKHNlbGYsIGtleSwgdmFsdWUpCi0KLSAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwga2V5LCBk
aWN0X2RlbGl0ZW09ZGljdC5fX2RlbGl0ZW1fXyk6Ci0gICAgICAgICdvZC5fX2RlbGl0ZW1fXyh5
KSA8PT0+IGRlbCBvZFt5XScKLSAgICAgICAgIyBEZWxldGluZyBhbiBleGlzdGluZyBpdGVtIHVz
ZXMgc2VsZi5fX21hcCB0byBmaW5kIHRoZSBsaW5rIHdoaWNoIGlzCi0gICAgICAgICMgdGhlbiBy
ZW1vdmVkIGJ5IHVwZGF0aW5nIHRoZSBsaW5rcyBpbiB0aGUgcHJlZGVjZXNzb3IgYW5kIHN1Y2Nl
c3NvciBub2Rlcy4KLSAgICAgICAgZGljdF9kZWxpdGVtKHNlbGYsIGtleSkKLSAgICAgICAgbGlu
a19wcmV2LCBsaW5rX25leHQsIGtleSA9IHNlbGYuX19tYXAucG9wKGtleSkKLSAgICAgICAgbGlu
a19wcmV2WzFdID0gbGlua19uZXh0Ci0gICAgICAgIGxpbmtfbmV4dFswXSA9IGxpbmtfcHJldgot
Ci0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAgICAgICAnb2QuX19pdGVyX18oKSA8PT0+IGl0
ZXIob2QpJwotICAgICAgICByb290ID0gc2VsZi5fX3Jvb3QKLSAgICAgICAgY3VyciA9IHJvb3Rb
MV0KLSAgICAgICAgd2hpbGUgY3VyciBpcyBub3Qgcm9vdDoKLSAgICAgICAgICAgIHlpZWxkIGN1
cnJbMl0KLSAgICAgICAgICAgIGN1cnIgPSBjdXJyWzFdCi0KLSAgICBkZWYgX19yZXZlcnNlZF9f
KHNlbGYpOgotICAgICAgICAnb2QuX19yZXZlcnNlZF9fKCkgPD09PiByZXZlcnNlZChvZCknCi0g
ICAgICAgIHJvb3QgPSBzZWxmLl9fcm9vdAotICAgICAgICBjdXJyID0gcm9vdFswXQotICAgICAg
ICB3aGlsZSBjdXJyIGlzIG5vdCByb290OgotICAgICAgICAgICAgeWllbGQgY3VyclsyXQotICAg
ICAgICAgICAgY3VyciA9IGN1cnJbMF0KLQotICAgIGRlZiBjbGVhcihzZWxmKToKLSAgICAgICAg
J29kLmNsZWFyKCkgLT4gTm9uZS4gIFJlbW92ZSBhbGwgaXRlbXMgZnJvbSBvZC4nCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGZvciBub2RlIGluIHNlbGYuX19tYXAuaXRlcnZhbHVlcygpOgot
ICAgICAgICAgICAgICAgIGRlbCBub2RlWzpdCi0gICAgICAgICAgICByb290ID0gc2VsZi5fX3Jv
b3QKLSAgICAgICAgICAgIHJvb3RbOl0gPSBbcm9vdCwgcm9vdCwgTm9uZV0KLSAgICAgICAgICAg
IHNlbGYuX19tYXAuY2xlYXIoKQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAg
ICAgICAgICBwYXNzCi0gICAgICAgIGRpY3QuY2xlYXIoc2VsZikKLQotICAgIGRlZiBwb3BpdGVt
KHNlbGYsIGxhc3Q9VHJ1ZSk6Ci0gICAgICAgICcnJ29kLnBvcGl0ZW0oKSAtPiAoaywgdiksIHJl
dHVybiBhbmQgcmVtb3ZlIGEgKGtleSwgdmFsdWUpIHBhaXIuCi0gICAgICAgIFBhaXJzIGFyZSBy
ZXR1cm5lZCBpbiBMSUZPIG9yZGVyIGlmIGxhc3QgaXMgdHJ1ZSBvciBGSUZPIG9yZGVyIGlmIGZh
bHNlLgotCi0gICAgICAgICcnJwotICAgICAgICBpZiBub3Qgc2VsZjoKLSAgICAgICAgICAgIHJh
aXNlIEtleUVycm9yKCdkaWN0aW9uYXJ5IGlzIGVtcHR5JykKLSAgICAgICAgcm9vdCA9IHNlbGYu
X19yb290Ci0gICAgICAgIGlmIGxhc3Q6Ci0gICAgICAgICAgICBsaW5rID0gcm9vdFswXQotICAg
ICAgICAgICAgbGlua19wcmV2ID0gbGlua1swXQotICAgICAgICAgICAgbGlua19wcmV2WzFdID0g
cm9vdAotICAgICAgICAgICAgcm9vdFswXSA9IGxpbmtfcHJldgotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgbGluayA9IHJvb3RbMV0KLSAgICAgICAgICAgIGxpbmtfbmV4dCA9IGxpbmtbMV0K
LSAgICAgICAgICAgIHJvb3RbMV0gPSBsaW5rX25leHQKLSAgICAgICAgICAgIGxpbmtfbmV4dFsw
XSA9IHJvb3QKLSAgICAgICAga2V5ID0gbGlua1syXQotICAgICAgICBkZWwgc2VsZi5fX21hcFtr
ZXldCi0gICAgICAgIHZhbHVlID0gZGljdC5wb3Aoc2VsZiwga2V5KQotICAgICAgICByZXR1cm4g
a2V5LCB2YWx1ZQotCi0gICAgIyAtLSB0aGUgZm9sbG93aW5nIG1ldGhvZHMgZG8gbm90IGRlcGVu
ZCBvbiB0aGUgaW50ZXJuYWwgc3RydWN0dXJlIC0tCi0KLSAgICBkZWYga2V5cyhzZWxmKToKLSAg
ICAgICAgJ29kLmtleXMoKSAtPiBsaXN0IG9mIGtleXMgaW4gb2QnCi0gICAgICAgIHJldHVybiBs
aXN0KHNlbGYpCi0KLSAgICBkZWYgdmFsdWVzKHNlbGYpOgotICAgICAgICAnb2QudmFsdWVzKCkg
LT4gbGlzdCBvZiB2YWx1ZXMgaW4gb2QnCi0gICAgICAgIHJldHVybiBbc2VsZltrZXldIGZvciBr
ZXkgaW4gc2VsZl0KLQotICAgIGRlZiBpdGVtcyhzZWxmKToKLSAgICAgICAgJ29kLml0ZW1zKCkg
LT4gbGlzdCBvZiAoa2V5LCB2YWx1ZSkgcGFpcnMgaW4gb2QnCi0gICAgICAgIHJldHVybiBbKGtl
eSwgc2VsZltrZXldKSBmb3Iga2V5IGluIHNlbGZdCi0KLSAgICBkZWYgaXRlcmtleXMoc2VsZik6
Ci0gICAgICAgICdvZC5pdGVya2V5cygpIC0+IGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGtleXMgaW4g
b2QnCi0gICAgICAgIHJldHVybiBpdGVyKHNlbGYpCi0KLSAgICBkZWYgaXRlcnZhbHVlcyhzZWxm
KToKLSAgICAgICAgJ29kLml0ZXJ2YWx1ZXMgLT4gYW4gaXRlcmF0b3Igb3ZlciB0aGUgdmFsdWVz
IGluIG9kJwotICAgICAgICBmb3IgayBpbiBzZWxmOgotICAgICAgICAgICAgeWllbGQgc2VsZltr
XQotCi0gICAgZGVmIGl0ZXJpdGVtcyhzZWxmKToKLSAgICAgICAgJ29kLml0ZXJpdGVtcyAtPiBh
biBpdGVyYXRvciBvdmVyIHRoZSAoa2V5LCB2YWx1ZSkgaXRlbXMgaW4gb2QnCi0gICAgICAgIGZv
ciBrIGluIHNlbGY6Ci0gICAgICAgICAgICB5aWVsZCAoaywgc2VsZltrXSkKLQotICAgIGRlZiB1
cGRhdGUoKmFyZ3MsICoqa3dkcyk6Ci0gICAgICAgICcnJ29kLnVwZGF0ZShFLCAqKkYpIC0+IE5v
bmUuICBVcGRhdGUgb2QgZnJvbSBkaWN0L2l0ZXJhYmxlIEUgYW5kIEYuCi0KLSAgICAgICAgSWYg
RSBpcyBhIGRpY3QgaW5zdGFuY2UsIGRvZXM6ICAgICAgICAgICBmb3IgayBpbiBFOiBvZFtrXSA9
IEVba10KLSAgICAgICAgSWYgRSBoYXMgYSAua2V5cygpIG1ldGhvZCwgZG9lczogICAgICAgICBm
b3IgayBpbiBFLmtleXMoKTogb2Rba10gPSBFW2tdCi0gICAgICAgIE9yIGlmIEUgaXMgYW4gaXRl
cmFibGUgb2YgaXRlbXMsIGRvZXM6ICAgZm9yIGssIHYgaW4gRTogb2Rba10gPSB2Ci0gICAgICAg
IEluIGVpdGhlciBjYXNlLCB0aGlzIGlzIGZvbGxvd2VkIGJ5OiAgICAgZm9yIGssIHYgaW4gRi5p
dGVtcygpOiBvZFtrXSA9IHYKLQotICAgICAgICAnJycKLSAgICAgICAgaWYgbGVuKGFyZ3MpID4g
MjoKLSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigndXBkYXRlKCkgdGFrZXMgYXQgbW9zdCAy
IHBvc2l0aW9uYWwgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmd1bWVudHMgKCVk
IGdpdmVuKScgJSAobGVuKGFyZ3MpLCkpCi0gICAgICAgIGVsaWYgbm90IGFyZ3M6Ci0gICAgICAg
ICAgICByYWlzZSBUeXBlRXJyb3IoJ3VwZGF0ZSgpIHRha2VzIGF0IGxlYXN0IDEgYXJndW1lbnQg
KDAgZ2l2ZW4pJykKLSAgICAgICAgc2VsZiA9IGFyZ3NbMF0KLSAgICAgICAgIyBNYWtlIHByb2dy
ZXNzaXZlbHkgd2Vha2VyIGFzc3VtcHRpb25zIGFib3V0ICJvdGhlciIKLSAgICAgICAgb3RoZXIg
PSAoKQotICAgICAgICBpZiBsZW4oYXJncykgPT0gMjoKLSAgICAgICAgICAgIG90aGVyID0gYXJn
c1sxXQotICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCBkaWN0KToKLSAgICAgICAgICAgIGZv
ciBrZXkgaW4gb3RoZXI6Ci0gICAgICAgICAgICAgICAgc2VsZltrZXldID0gb3RoZXJba2V5XQot
ICAgICAgICBlbGlmIGhhc2F0dHIob3RoZXIsICdrZXlzJyk6Ci0gICAgICAgICAgICBmb3Iga2V5
IGluIG90aGVyLmtleXMoKToKLSAgICAgICAgICAgICAgICBzZWxmW2tleV0gPSBvdGhlcltrZXld
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBvdGhlcjoKLSAg
ICAgICAgICAgICAgICBzZWxmW2tleV0gPSB2YWx1ZQotICAgICAgICBmb3Iga2V5LCB2YWx1ZSBp
biBrd2RzLml0ZW1zKCk6Ci0gICAgICAgICAgICBzZWxmW2tleV0gPSB2YWx1ZQotCi0gICAgX191
cGRhdGUgPSB1cGRhdGUgICMgbGV0IHN1YmNsYXNzZXMgb3ZlcnJpZGUgdXBkYXRlIHdpdGhvdXQg
YnJlYWtpbmcgX19pbml0X18KLQotICAgIF9fbWFya2VyID0gb2JqZWN0KCkKLQotICAgIGRlZiBw
b3Aoc2VsZiwga2V5LCBkZWZhdWx0PV9fbWFya2VyKToKLSAgICAgICAgJycnb2QucG9wKGtbLGRd
KSAtPiB2LCByZW1vdmUgc3BlY2lmaWVkIGtleSBhbmQgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5n
IHZhbHVlLgotICAgICAgICBJZiBrZXkgaXMgbm90IGZvdW5kLCBkIGlzIHJldHVybmVkIGlmIGdp
dmVuLCBvdGhlcndpc2UgS2V5RXJyb3IgaXMgcmFpc2VkLgotCi0gICAgICAgICcnJwotICAgICAg
ICBpZiBrZXkgaW4gc2VsZjoKLSAgICAgICAgICAgIHJlc3VsdCA9IHNlbGZba2V5XQotICAgICAg
ICAgICAgZGVsIHNlbGZba2V5XQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAotICAgICAgICBp
ZiBkZWZhdWx0IGlzIHNlbGYuX19tYXJrZXI6Ci0gICAgICAgICAgICByYWlzZSBLZXlFcnJvcihr
ZXkpCi0gICAgICAgIHJldHVybiBkZWZhdWx0Ci0KLSAgICBkZWYgc2V0ZGVmYXVsdChzZWxmLCBr
ZXksIGRlZmF1bHQ9Tm9uZSk6Ci0gICAgICAgICdvZC5zZXRkZWZhdWx0KGtbLGRdKSAtPiBvZC5n
ZXQoayxkKSwgYWxzbyBzZXQgb2Rba109ZCBpZiBrIG5vdCBpbiBvZCcKLSAgICAgICAgaWYga2V5
IGluIHNlbGY6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZltrZXldCi0gICAgICAgIHNlbGZba2V5
XSA9IGRlZmF1bHQKLSAgICAgICAgcmV0dXJuIGRlZmF1bHQKLQotICAgIGRlZiBfX3JlcHJfXyhz
ZWxmLCBfcmVwcl9ydW5uaW5nPXt9KToKLSAgICAgICAgJ29kLl9fcmVwcl9fKCkgPD09PiByZXBy
KG9kKScKLSAgICAgICAgY2FsbF9rZXkgPSBpZChzZWxmKSwgX2dldF9pZGVudCgpCi0gICAgICAg
IGlmIGNhbGxfa2V5IGluIF9yZXByX3J1bm5pbmc6Ci0gICAgICAgICAgICByZXR1cm4gJy4uLicK
LSAgICAgICAgX3JlcHJfcnVubmluZ1tjYWxsX2tleV0gPSAxCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGlmIG5vdCBzZWxmOgotICAgICAgICAgICAgICAgIHJldHVybiAnJXMoKScgJSAoc2Vs
Zi5fX2NsYXNzX18uX19uYW1lX18sKQotICAgICAgICAgICAgcmV0dXJuICclcyglciknICUgKHNl
bGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLml0ZW1zKCkpCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBkZWwgX3JlcHJfcnVubmluZ1tjYWxsX2tleV0KLQotICAgIGRlZiBfX3JlZHVj
ZV9fKHNlbGYpOgotICAgICAgICAnUmV0dXJuIHN0YXRlIGluZm9ybWF0aW9uIGZvciBwaWNrbGlu
ZycKLSAgICAgICAgaXRlbXMgPSBbW2ssIHNlbGZba11dIGZvciBrIGluIHNlbGZdCi0gICAgICAg
IGluc3RfZGljdCA9IHZhcnMoc2VsZikuY29weSgpCi0gICAgICAgIGZvciBrIGluIHZhcnMoT3Jk
ZXJlZERpY3QoKSk6Ci0gICAgICAgICAgICBpbnN0X2RpY3QucG9wKGssIE5vbmUpCi0gICAgICAg
IGlmIGluc3RfZGljdDoKLSAgICAgICAgICAgIHJldHVybiAoc2VsZi5fX2NsYXNzX18sIChpdGVt
cywpLCBpbnN0X2RpY3QpCi0gICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXywgKGl0ZW1zLCkK
LQotICAgIGRlZiBjb3B5KHNlbGYpOgotICAgICAgICAnb2QuY29weSgpIC0+IGEgc2hhbGxvdyBj
b3B5IG9mIG9kJwotICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZikKLQotICAgIEBj
bGFzc21ldGhvZAotICAgIGRlZiBmcm9ta2V5cyhjbHMsIGl0ZXJhYmxlLCB2YWx1ZT1Ob25lKToK
LSAgICAgICAgJycnT0QuZnJvbWtleXMoU1ssIHZdKSAtPiBOZXcgb3JkZXJlZCBkaWN0aW9uYXJ5
IHdpdGgga2V5cyBmcm9tIFMKLSAgICAgICAgYW5kIHZhbHVlcyBlcXVhbCB0byB2ICh3aGljaCBk
ZWZhdWx0cyB0byBOb25lKS4KLQotICAgICAgICAnJycKLSAgICAgICAgZCA9IGNscygpCi0gICAg
ICAgIGZvciBrZXkgaW4gaXRlcmFibGU6Ci0gICAgICAgICAgICBkW2tleV0gPSB2YWx1ZQotICAg
ICAgICByZXR1cm4gZAotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgICcn
J29kLl9fZXFfXyh5KSA8PT0+IG9kPT15LiAgQ29tcGFyaXNvbiB0byBhbm90aGVyIE9EIGlzIG9y
ZGVyLXNlbnNpdGl2ZQotICAgICAgICB3aGlsZSBjb21wYXJpc29uIHRvIGEgcmVndWxhciBtYXBw
aW5nIGlzIG9yZGVyLWluc2Vuc2l0aXZlLgotCi0gICAgICAgICcnJwotICAgICAgICBpZiBpc2lu
c3RhbmNlKG90aGVyLCBPcmRlcmVkRGljdCk6Ci0gICAgICAgICAgICByZXR1cm4gbGVuKHNlbGYp
PT1sZW4ob3RoZXIpIGFuZCBzZWxmLml0ZW1zKCkgPT0gb3RoZXIuaXRlbXMoKQotICAgICAgICBy
ZXR1cm4gZGljdC5fX2VxX18oc2VsZiwgb3RoZXIpCi0KLSAgICBkZWYgX19uZV9fKHNlbGYsIG90
aGVyKToKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmID09IG90aGVyCi0KLSAgICAjIC0tIHRoZSBm
b2xsb3dpbmcgbWV0aG9kcyBhcmUgb25seSB1c2VkIGluIFB5dGhvbiAyLjcgLS0KLQotICAgIGRl
ZiB2aWV3a2V5cyhzZWxmKToKLSAgICAgICAgIm9kLnZpZXdrZXlzKCkgLT4gYSBzZXQtbGlrZSBv
YmplY3QgcHJvdmlkaW5nIGEgdmlldyBvbiBvZCdzIGtleXMiCi0gICAgICAgIHJldHVybiBLZXlz
VmlldyhzZWxmKQotCi0gICAgZGVmIHZpZXd2YWx1ZXMoc2VsZik6Ci0gICAgICAgICJvZC52aWV3
dmFsdWVzKCkgLT4gYW4gb2JqZWN0IHByb3ZpZGluZyBhIHZpZXcgb24gb2QncyB2YWx1ZXMiCi0g
ICAgICAgIHJldHVybiBWYWx1ZXNWaWV3KHNlbGYpCi0KLSAgICBkZWYgdmlld2l0ZW1zKHNlbGYp
OgotICAgICAgICAib2Qudmlld2l0ZW1zKCkgLT4gYSBzZXQtbGlrZSBvYmplY3QgcHJvdmlkaW5n
IGEgdmlldyBvbiBvZCdzIGl0ZW1zIgotICAgICAgICByZXR1cm4gSXRlbXNWaWV3KHNlbGYpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL3ZlcnNpb24ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNz
aWdzL2Z1bmNzaWdzL3ZlcnNpb24ucHkKaW5kZXggODk2YTM3MGNhZDE2Y2YxODM2Y2UxM2YzYjU0
ZDQ5YzE5MWRmODI4MS4uNzg2MzkxNWZhNWY4ZjAxNGM2NGM4YWJmZjQxYTEzOGU5YjNjZDRkMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy92ZXJzaW9uLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvZnVuY3NpZ3MvdmVyc2lvbi5weQpAQCAtMSArMSBAQAotX192ZXJzaW9uX18gPSAi
MC40IgorX192ZXJzaW9uX18gPSAiMS4wLjIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1
bmNzaWdzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy93M2MtaW1wb3J0
LmxvZwppbmRleCBmYzFhZWRlN2I0N2Y4ODNkN2ZhNjVlMzFlZmI0MTQ0NzI3ZjlkZTkxLi4zZDg0
ZjI2ZmQwNDk0ZGMxYjE4YTlkYjk2MzJlZjBlZTJmYzU3NWM4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1
bmNzaWdzL2Z1bmNzaWdzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3Np
Z3MvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDUgKzE1LDQgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvX19pbml0X18ucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL29kaWN0LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy92
ZXJzaW9uLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVpcmVtZW50cy9kZXZlbG9w
bWVudC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVpcmVtZW50cy9kZXZlbG9wbWVudC50eHQKaW5k
ZXggZWNhZmIwYTUyN2QzZTc5NmM3MDgwZjEwMDg1YjUzN2E3MzAwZTk4Ni4uNDBkZWRkOTJiZjA2
YWMzNDMzN2ZlMjdiYTk3NDIyYmFhNDgxYjdlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9y
ZXF1aXJlbWVudHMvZGV2ZWxvcG1lbnQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1l
bnRzL2RldmVsb3BtZW50LnR4dApAQCAtMSw2ICsxLDUgQEAKIGNvdmVyYWdlCiBjb3ZlcmFsbHMK
LXBpcAogZmxha2U4CiBzcGhpbngKLXdoZWVsCit1bml0dGVzdDIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3Byb2R1Y3Rpb24udHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9yZXF1
aXJlbWVudHMvcHJvZHVjdGlvbi50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2
OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWly
ZW1lbnRzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvdzNjLWlt
cG9ydC5sb2cKaW5kZXggZTIyNWY3YjA2YzM5M2M3NTRlZjgzYjJjYjIyZGNkNDU5OGEzMjQwOC4u
ZDFiYWZkODMwZWM1NTQ0ODEyNWY0YTg2YTA3YmMzZjg1NGUyZTQwZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2ln
cy9yZXF1aXJlbWVudHMvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDQgKzE1LDMgQEAgTm9uZQogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRz
L2RldmVsb3BtZW50LnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3Byb2R1Y3Rpb24u
dHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9z
ZXR1cC5weQppbmRleCA5OGIwOTEyNjA0NTNjMTQ2MzhmNzBmY2U5ZjUwMmRkODJiYmU4YjNlLi5m
MzY5Njg4OGY5ZWJlYTczMTUzMDM0MzIzZThhMTZmZmY2YmE4MjlmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Z1bmNzaWdzL3NldHVwLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mvc2V0dXAucHkKQEAgLTE0LDI2
ICsxNCwyMiBAQCBkZWYgbG9hZF92ZXJzaW9uKGZpbGVuYW1lPSdmdW5jc2lncy92ZXJzaW9uLnB5
Jyk6CiAgICAgICAgIHZlcnNpb24gPSBtYXRjaC5ncm91cCgxKQogICAgICAgICByZXR1cm4gdmVy
c2lvbgogCi1kZWYgbG9hZF9yc3QoZmlsZW5hbWU9J2RvY3Mvc291cmNlL2d1aWRlX2NvbnRlbnQu
cnN0Jyk6Ci0gICAgIlB1cmdlIHJlZnMgZGlyZWN0aXZlcyBmcm9tIHJlc3RydWN0dXJlZCB0ZXh0
IgotICAgIHdpdGggb3BlbihmaWxlbmFtZSkgYXMgc291cmNlOgotICAgICAgICB0ZXh0ID0gc291
cmNlLnJlYWQoKQotICAgICAgICBkb2MgPSByZS5zdWIocic6XHcrOmB+PyhbYS16QS1aLl8oKV0r
KWAnLCByJypcMSonLCB0ZXh0KQotICAgICAgICByZXR1cm4gZG9jCiAKIHNldHVwKAogICAgIG5h
bWU9ImZ1bmNzaWdzIiwKICAgICB2ZXJzaW9uPWxvYWRfdmVyc2lvbigpLAogICAgIHBhY2thZ2Vz
PVsnZnVuY3NpZ3MnXSwKICAgICB6aXBfc2FmZT1GYWxzZSwKLSAgICBhdXRob3I9IkFhcm9uIEls
ZXMiLAotICAgIGF1dGhvcl9lbWFpbD0iYWFyb24uaWxlc0BnbWFpbC5jb20iLAorICAgIGF1dGhv
cj0iVGVzdGluZyBDYWJhbCIsCisgICAgYXV0aG9yX2VtYWlsPSJ0ZXN0aW5nLWluLXB5dGhvbkBs
aXN0cy5pZHlsbC5vcmciLAogICAgIHVybD0iaHR0cDovL2Z1bmNzaWdzLnJlYWR0aGVkb2NzLm9y
ZyIsCiAgICAgZGVzY3JpcHRpb249IlB5dGhvbiBmdW5jdGlvbiBzaWduYXR1cmVzIGZyb20gUEVQ
MzYyIGZvciBQeXRob24gMi42LCAyLjcgYW5kIDMuMisiLAogICAgIGxvbmdfZGVzY3JpcHRpb249
b3BlbignUkVBRE1FLnJzdCcpLnJlYWQoKSwKLSAgICAjIGxvbmdfZGVzY3JpcHRpb249bG9hZF9y
c3QoKSwKICAgICBsaWNlbnNlPSJBU0wiLAotICAgIGluc3RhbGxfcmVxdWlyZXMgPSBbXSwKKyAg
ICBleHRyYXNfcmVxdWlyZSA9IHsKKyAgICAgICAgJzpweXRob25fdmVyc2lvbjwiMi43Iic6IFsn
b3JkZXJlZGRpY3QnXSwKKyAgICB9LAorICAgIHNldHVwX3JlcXVpcmVzID0gWyJzZXR1cHRvb2xz
Pj0xNy4xIl0sCiAgICAgY2xhc3NpZmllcnMgPSBbCiAgICAgICAgICdEZXZlbG9wbWVudCBTdGF0
dXMgOjogNCAtIEJldGEnLAogICAgICAgICAnSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVy
cycsCkBAIC00NCwxMiArNDAsMTMgQEAgc2V0dXAoCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5n
dWFnZSA6OiBQeXRob24gOjogMi42JywKICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6
IFB5dGhvbiA6OiAyLjcnLAogICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9u
IDo6IDMnLAotICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuMics
CiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy4zJywKKyAgICAg
ICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjQnLAorICAgICAgICAnUHJv
Z3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNScsCiAgICAgICAgICdQcm9ncmFtbWlu
ZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjogQ1B5dGhvbicsCiAgICAg
ICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjog
UHlQeScsCiAgICAgICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJp
ZXMgOjogUHl0aG9uIE1vZHVsZXMnCiAgICAgXSwKLSAgICB0ZXN0c19yZXF1aXJlID0gW10gaWYg
c3lzLnZlcnNpb25faW5mb1swXSA+IDIgZWxzZSBbJ3VuaXR0ZXN0MiddLAotICAgIHRlc3Rfc3Vp
dGUgPSAidGVzdHMiIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAyIGVsc2UgJ3VuaXR0ZXN0Mi5j
b2xsZWN0b3InCisgICAgdGVzdHNfcmVxdWlyZSA9IFsndW5pdHRlc3QyJ10sCisgICAgdGVzdF9z
dWl0ZSA9ICd1bml0dGVzdDIuY29sbGVjdG9yJywKICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvdGVzdHMvdGVzdF9mb3JtYXRhbm5vdGF0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90
ZXN0X2Zvcm1hdGFubm90YXRpb24ucHkKaW5kZXggZmQ3YTg4NzNmODU1Y2FlOGViZTI5M2U0NGU4
ZTA1NzIxY2VlZjYwMS4uNGI5OGU2MDM3ZDgzMDIxNTFhNWFlOTNjYzQ3OTNiZTFkNDllMDhlMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2Zvcm1hdGFubm90YXRpb24ucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2Zvcm1hdGFubm90YXRpb24ucHkKQEAgLTEs
MTIgKzEsNiBAQAotdHJ5OgotICAgICMgcHl0aG9uIDIueAotICAgIGltcG9ydCB1bml0dGVzdDIg
YXMgdW5pdHRlc3QKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAjIHB5dGhvbiAzLngKLSAgICBp
bXBvcnQgdW5pdHRlc3QKLQogaW1wb3J0IGZ1bmNzaWdzCiAKK2ltcG9ydCB1bml0dGVzdDIgYXMg
dW5pdHRlc3QKIAogY2xhc3MgVGVzdEZvcm1hdEFubm90YXRpb24odW5pdHRlc3QuVGVzdENhc2Up
OgogICAgIGRlZiB0ZXN0X3N0cmluZyAoc2VsZik6CkBAIC0yMSw3ICsxNSwzIEBAIGNsYXNzIFRl
c3RGb3JtYXRBbm5vdGF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgY2xhc3MgZHVt
bXkgKG9iamVjdCk6IHBhc3MKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jc2lncy5mb3Jt
YXRhbm5vdGF0aW9uKGR1bW15KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdHMudGVz
dF9mb3JtYXRhbm5vdGF0aW9uLmR1bW15IikKLQotCi1pZiBfX25hbWVfXyA9PSAiX19tYWluX18i
OgotICAgIHVuaXR0ZXN0LmJlZ2luKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMv
dGVzdF9mdW5jc2lncy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9mdW5jc2lncy5weQpp
bmRleCBlZWNjMGE4YTcwOTE5OGM2OTljZDE5NzczYWI0MjMyODAxN2IyYjZlLi5hN2I5Y2NhNzY3
OWY0YmIwNDk5NGM2ZDAyMTU4MzdhZGNiMjFlYzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdz
L3Rlc3RzL3Rlc3RfZnVuY3NpZ3MucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2Z1
bmNzaWdzLnB5CkBAIC0xLDkgKzEsNCBAQAotdHJ5OgotICAgICMgcHl0aG9uIDIueAotICAgIGlt
cG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAjIHB5
dGhvbiAzLngKLSAgICBpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRl
c3QKIAogaW1wb3J0IGRvY3Rlc3QKIGltcG9ydCBzeXMKQEAgLTY5LDI1ICs2NCwyOCBAQCBjbGFz
cyBUZXN0RnVuY3Rpb25TaWduYXR1cmVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGluc3BlY3QuX192ZXJzaW9uX18pCiAKICAgICBkZWYgdGVzdF9yZWFkbWUo
c2VsZik6CisgICAgICAgICMgWFhYOiBUaGlzIGZhaWxzIGJ1dCBkb2Vzbid0IGZhaWwgdGhlIGJ1
aWxkLgorCSMgKGFuZCB0aGUgc3ludGF4IGlzbid0IHZhbGlkIG9uIGFsbCBweXRob25zIHNvIHRo
YXQgc2VlbXMgYSBsaXR0bGUKKwkjIGhhcmQgdG8gZ2V0IHJpZ2h0LgogICAgICAgICBkb2N0ZXN0
LnRlc3RmaWxlKCcuLi9SRUFETUUucnN0JykKIAogICAgIGRlZiB0ZXN0X3VuYm91bmRfbWV0aG9k
KHNlbGYpOgotICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKToKLSAgICAgICAgICAg
IHNlbGZfa2luZCA9ICJwb3NpdGlvbmFsX29ubHkiCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBzZWxmX2tpbmQgPSAicG9zaXRpb25hbF9vcl9rZXl3b3JkIgorICAgICAgICBzZWxmX2tpbmQg
PSAicG9zaXRpb25hbF9vcl9rZXl3b3JkIgogICAgICAgICBjbGFzcyBUZXN0KG9iamVjdCk6CiAg
ICAgICAgICAgICBkZWYgbWV0aG9kKHNlbGYpOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAg
ICAgICAgIGRlZiBtZXRob2Rfd2l0aF9hcmdzKHNlbGYsIGEpOgogICAgICAgICAgICAgICAgIHBh
c3MKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShUZXN0Lm1ldGhvZCks
Ci0gICAgICAgICAgICAgICAgKCgoKCdzZWxmJywgRWxsaXBzaXMsIEVsbGlwc2lzLCBzZWxmX2tp
bmQpKSwpLCBFbGxpcHNpcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1
cmUoVGVzdC5tZXRob2Rfd2l0aF9hcmdzKSwgKCgKLSAgICAgICAgICAgICAgICAoJ3NlbGYnLCBF
bGxpcHNpcywgRWxsaXBzaXMsIHNlbGZfa2luZCksCi0gICAgICAgICAgICAgICAgKCdhJywgRWxs
aXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICBk
ZWYgbWV0aG9kX3dpdGhfdmFyYXJncygqYXJncyk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgc2VsZi5zaWduYXR1cmUoVGVzdC5t
ZXRob2QpLAorICAgICAgICAgICAgKCgoKCdzZWxmJywgRWxsaXBzaXMsIEVsbGlwc2lzLCBzZWxm
X2tpbmQpKSwpLCBFbGxpcHNpcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAg
ICAgICBzZWxmLnNpZ25hdHVyZShUZXN0Lm1ldGhvZF93aXRoX2FyZ3MpLAorICAgICAgICAgICAg
KCgoJ3NlbGYnLCBFbGxpcHNpcywgRWxsaXBzaXMsIHNlbGZfa2luZCksCisgICAgICAgICAgICAg
ICgnYScsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAogICAg
ICAgICAgICAgICAgICksIEVsbGlwc2lzKSkKLQotCi1pZiBfX25hbWVfXyA9PSAiX19tYWluX18i
OgotICAgIHVuaXR0ZXN0LmJlZ2luKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAg
ICAgICAgIHNlbGYuc2lnbmF0dXJlKFRlc3QubWV0aG9kX3dpdGhfdmFyYXJncyksCisgICAgICAg
ICAgICAoKCgnYXJncycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInZhcl9wb3NpdGlvbmFsIiksKSwg
RWxsaXBzaXMpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2luc3BlY3Qu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3Rlc3RfaW5zcGVjdC5weQppbmRleCAzMjNjMzIzZWFm
ZDk4NjAzMTA1YmEwNTdlY2VmMzQ5NWZhMTYyZjY5Li45OGQ2NTkyZmNjNzIyMjYzMmNkNjlmZGY0
ODg5NjYzYWUxNzE4ZDIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3Rlc3RfaW5z
cGVjdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3Rlc3RfaW5zcGVjdC5weQpAQCAtMSwx
MiArMSwxMCBAQAogIyBDb3B5cmlnaHQgMjAwMS0yMDEzIFB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBBbGwgUmlnaHRzIFJlc2VydmVkCiBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgY29sbGVjdGlvbnMKK2lt
cG9ydCBmdW5jdG9vbHMKIGltcG9ydCBzeXMKIAotdHJ5OgotICAgIGltcG9ydCB1bml0dGVzdDIg
YXMgdW5pdHRlc3QKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBpbXBvcnQgdW5pdHRlc3QKK2lt
cG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogaW1wb3J0IGZ1bmNzaWdzIGFzIGluc3BlY3QK
IApAQCAtMjQsMTEgKzIyLDYgQEAgY2xhc3MgVGVzdFNpZ25hdHVyZU9iamVjdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgKEVsbGlwc2lzIGlmIHNpZy5yZXR1cm5fYW5ub3Rh
dGlvbiBpcyBzaWcuZW1wdHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZSBzaWcucmV0dXJuX2Fubm90YXRpb24pKQogCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlLl9faW5pdF9f
KHNlbGYsICphcmdzLCAqKmt3YXJncykKLSAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ2Fz
c2VydFJhaXNlc1JlZ2V4Jyk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4ID0g
c2VsZi5hc3NlcnRSYWlzZXNSZWdleHAKLQogICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAy
OgogICAgICAgICBleGVjKCIiIgogZGVmIHRlc3Rfc2lnbmF0dXJlX29iamVjdChzZWxmKToKQEAg
LTY1NiwxMSArNjQ5LDYgQEAgZGVmIHRlc3Rfc2lnbmF0dXJlX3JlcGxhY2VfYW5ubyhzZWxmKToK
IAogY2xhc3MgVGVzdFBhcmFtZXRlck9iamVjdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgdW5pdHRlc3QuVGVz
dENhc2UuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQotICAgICAgICBpZiBub3QgaGFz
YXR0cihzZWxmLCAnYXNzZXJ0UmFpc2VzUmVnZXgnKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzUmVnZXggPSBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cAotCiAgICAgZGVmIHRlc3Rfc2ln
bmF0dXJlX3BhcmFtZXRlcl9raW5kcyhzZWxmKToKICAgICAgICAgUCA9IGluc3BlY3QuUGFyYW1l
dGVyCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQLlBPU0lUSU9OQUxfT05MWSA8IFAuUE9TSVRJ
T05BTF9PUl9LRVlXT1JEIDwgXApAQCAtNzgwLDExICs3NjgsNiBAQCBjbGFzcyBUZXN0U2lnbmF0
dXJlQmluZCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGJhID0gc2lnLmJpbmQoKmFyZ3Ms
ICoqa3dhcmdzKQogICAgICAgICByZXR1cm4gZnVuYygqYmEuYXJncywgKipiYS5rd2FyZ3MpCiAK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgdW5pdHRl
c3QuVGVzdENhc2UuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQotICAgICAgICBpZiBu
b3QgaGFzYXR0cihzZWxmLCAnYXNzZXJ0UmFpc2VzUmVnZXgnKToKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzUmVnZXggPSBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cAotCiAgICAgZGVmIHRl
c3Rfc2lnbmF0dXJlX2JpbmRfZW1wdHkoc2VsZik6CiAgICAgICAgIGRlZiB0ZXN0KCk6CiAgICAg
ICAgICAgICByZXR1cm4gNDIKQEAgLTk4MiwxMyArOTY1LDE3IEBAIGRlZiB0ZXN0X3NpZ25hdHVy
ZV9iaW5kX3Bvc2l0aW9uYWxfb25seShzZWxmKToKICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIGFf
cG89MSwgYl9wbz0yKQogIiIiKQogCisgICAgZGVmIHRlc3RfYmluZF9zZWxmKHNlbGYpOgorICAg
ICAgICBjbGFzcyBGOgorICAgICAgICAgICAgZGVmIGYoYSwgc2VsZik6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGEsIHNlbGYKKyAgICAgICAgYW5fZiA9IEYoKQorICAgICAgICBwYXJ0aWFsX2Yg
PSBmdW5jdG9vbHMucGFydGlhbChGLmYsIGFuX2YpCisgICAgICAgIGJhID0gaW5zcGVjdC5zaWdu
YXR1cmUocGFydGlhbF9mKS5iaW5kKHNlbGY9MTApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
KGFuX2YsIDEwKSwgcGFydGlhbF9mKCpiYS5hcmdzLCAqKmJhLmt3YXJncykpCiAKLWNsYXNzIFRl
c3RCb3VuZEFyZ3VtZW50cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UuX19pbml0
X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQotICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAn
YXNzZXJ0UmFpc2VzUmVnZXgnKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgg
PSBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cAorY2xhc3MgVGVzdEJvdW5kQXJndW1lbnRzKHVuaXR0
ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9ib3VuZF9hcmd1bWVudHNf
dW5oYXNoYWJsZShzZWxmKToKICAgICAgICAgZGVmIGZvbyhhKTogcGFzcwpAQCAtMTAxMyw3ICsx
MDAwLDMgQEAgY2xhc3MgVGVzdEJvdW5kQXJndW1lbnRzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgZGVmIGJhcihiKTogcGFzcwogICAgICAgICBiYTQgPSBpbnNwZWN0LnNpZ25hdHVyZShi
YXIpLmJpbmQoMSkKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChiYSwgYmE0KQotCi0KLWlm
IF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAgdW5pdHRlc3QuYmVnaW4oKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90b3guaW5pCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE4NzNjNzQ0YTAwNWU4OTc4MGU2MWYzN2ZmNmUwNWE3MGViNWJiZTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3RveC5pbmkKQEAgLTAsMCArMSw4IEBACitbdG94XQorZW52
bGlzdCA9IHB5MjYsIHB5MjcsIHB5MzMsIHB5MzQsIHB5MzUsIHB5MzYsIHB5cHksIHB5cHkzCisK
K1t0ZXN0ZW52XQorZGVwcyA9IC1ycmVxdWlyZW1lbnRzL2RldmVsb3BtZW50LnR4dAorY29tbWFu
ZHMgPSAKKyAgICBjb3ZlcmFnZSBydW4gc2V0dXAucHkgdGVzdAorICAgIGNvdmVyYWdlIHJlcG9y
dCAtLXNob3ctbWlzc2luZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cKaW5kZXggZjFlZWJiMjczMzUwZmRmMjYx
OWY3NDVkYWY0ODJkMjNjODA2NzY3ZC4uNzI1MTliZDA4OWEzNzAzYmMzOTk4NGNmYWJlN2YxN2Y4
MjdkOGQwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy93M2MtaW1wb3J0LmxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Z1bmNzaWdzL3czYy1pbXBvcnQubG9nCkBAIC0yMSwzICsyMSw0IEBAIExpc3Qgb2YgZmls
ZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9mdW5jc2lncy9SRUFETUUucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9zZXR1cC5jZmcK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Z1bmNzaWdzL3NldHVwLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90b3guaW5pCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL0NPTlRSSUJVVE9SUy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL0NPTlRSSUJVVE9SUy5yc3QK
aW5kZXggYmRjNGQwNmMzMWEwZjY4OWY3YTgyNjA3YzdiM2MxNTZhMmY1OWFkZS4uNWM0ODQ5ZmVm
MGYxMDc0YjI3NjVlNjNmYzU3NWY2NzU2NDU2ZDJiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9DT05U
UklCVVRPUlMucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvQ09OVFJJQlVUT1JTLnJzdApAQCAtMTExLDQgKzEx
MSw1IEBAIEluIGNocm9ub2xvZ2ljYWwgb3JkZXI6CiAtIEZyZWQgVGhvbXNlbiAoQGZyZWR0aG9t
c2VuKQogCiAgIC0gQWRkZWQgbG9nZ2luZy4KLQorICAtIEVuaGFuY2UgZXF1YWxpdHkgdGVzdGlu
ZyBvZiBgYGgyLnNldHRpbmdzLlNldHRpbmdzYGAgb2JqZWN0cyB3aXRoCisgICAgYGBoeXBvdGhl
c2lzYGAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL0hJU1RPUlkucnN0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9ISVNUT1JZ
LnJzdAppbmRleCBlOWZhNzQ1ZDUxNjI3M2YyM2E4MDg3ZmRjMjE1NDQ1ZDVkMDY5NmRlLi41MjQ0
Y2Q4YTk0MWNjOTA5N2JmMmIwMzViYjI1YmFmZWI3ZTQ4ZjhmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L0hJU1RPUlkucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvSElTVE9SWS5yc3QKQEAgLTEsNiArMSw2NSBAQAog
UmVsZWFzZSBIaXN0b3J5CiA9PT09PT09PT09PT09PT0KIAorMy4yLjAgKDIwMjAtMDItMDgpCist
LS0tLS0tLS0tLS0tLS0tLS0KKworQnVnZml4ZXMKK35+fn5+fn5+CisKKy0gUmVjZWl2aW5nIERB
VEEgZnJhbWVzIG9uIGNsb3NlZCAob3IgcmVzZXQpIHN0cmVhbXMgbm93IHByb3Blcmx5IGVtaXQg
YQorICBXSU5ET1dfVVBEQVRFIHRvIGtlZXAgdGhlIGNvbm5lY3Rpb24gZmxvdyB3aW5kb3cgdG9w
cGVkIHVwLgorCitBUEkgQ2hhbmdlcyAoQmFja3dhcmQtSW5jb21wYXRpYmxlKQorfn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworLSBgYGgyLmNvbmZpZy5sb2dnZXJgYCBub3cg
dXNlcyBhIGB0cmFjZSguLi4pYCBmdW5jdGlvbiwgaW4gYWRkaXRpb24KKyAgdG8gYGRlYnVnKC4u
LilgLiBJZiB5b3UgZGVmaW5lZCBhIGN1c3RvbSBsb2dnZXIgb2JqZWN0LCB5b3UgbmVlZCB0byBo
YW5kbGUKKyAgdGhlc2UgbmV3IGZ1bmN0aW9uIGNhbGxzLgorCisKKzMuMS4xICgyMDE5LTA4LTAy
KQorLS0tLS0tLS0tLS0tLS0tLS0tCisKK0J1Z2ZpeGVzCit+fn5+fn5+fgorCistIElnbm9yZSBX
SU5ET1dfVVBEQVRFIGFuZCBSU1RfU1RSRUFNIGZyYW1lcyByZWNlaXZlZCBhZnRlciBzdHJlYW0K
KyAgY2xvc3VyZS4KKworCiszLjEuMCAoMjAxOS0wMS0yMikKKy0tLS0tLS0tLS0tLS0tLS0tLQor
CitBUEkgQ2hhbmdlcyAoQmFja3dhcmQtSW5jb21wYXRpYmxlKQorfn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn4KKworLSBgYGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uLmRhdGFf
dG9fc2VuZGBgIGZpcnN0IGFuZCBvbmx5IGFyZ3VtZW50IGBgYW10YGAKKyAgd2FzIHJlbmFtZWQg
dG8gYGBhbW91bnRgYC4KKy0gU3VwcG9ydCBmb3IgUHl0aG9uIDMuMyBoYXMgYmVlbiByZW1vdmVk
LgorCitBUEkgQ2hhbmdlcyAoQmFja3dhcmQtQ29tcGF0aWJsZSkKK35+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fgorCistIGBgaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24uc2VuZF9k
YXRhYGAgbm93IHN1cHBvcnRzIGBgZGF0YWBgIHBhcmFtZXRlcgorICBiZWluZyBhIGBgbWVtb3J5
dmlld2BgIG9iamVjdC4KKy0gUmVmYWN0b3IgcGluZy1yZWxhdGVkIGV2ZW50czogYSBgYGgyLmV2
ZW50cy5QaW5nUmVjZWl2ZWRgYCBldmVudCBpcyBmaXJlZAorICB3aGVuIGEgUElORyBmcmFtZSBp
cyByZWNlaXZlZCBhbmQgYSBgYGgyLmV2ZW50cy5QaW5nQWNrUmVjZWl2ZWRgYCBldmVudCBpcwor
ICBmaXJlZCB3aGVuIGEgUElORyBmcmFtZSB3aXRoIGFuIEFDSyBmbGFnIGlzIHJlY2VpdmVkLgor
ICBgYGgyLmV2ZW50cy5QaW5nQWNrbm93bGVkZ2VkYGAgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIg
b2YgdGhlIGlkZW50aWNhbAorICBgYGgyLmV2ZW50cy5QaW5nQWNrUmVjZWl2ZWRgYC4KKy0gQWRk
ZWQgYGBFTkFCTEVfQ09OTkVDVF9QUk9UT0NPTGBgIHRvIGBgaDIuc2V0dGluZ3MuU2V0dGluZ0Nv
ZGVzYGAuCistIFN1cHBvcnQgYGBDT05ORUNUYGAgcmVxdWVzdHMgd2l0aCBhIGBgOnByb3RvY29s
YGAgcHNldWRvIGhlYWRlcgorICB0aGVyZWJ5IHN1cHBvcnRpbmcgUkZDIDg0NDEuCistIEEgbGlt
aXQgdG8gdGhlIG51bWJlciBvZiBjbG9zZWQgc3RyZWFtcyBrZXB0IGluIG1lbW9yeSBieSB0aGUK
KyAgY29ubmVjdGlvbiBpcyBhcHBsaWVkLiBJdCBjYW4gYmUgY29uZmlndXJlZCBieQorICBgYGgy
LmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uLk1BWF9DTE9TRURfU1RSRUFNU2BgLgorCitCdWdmaXhl
cworfn5+fn5+fn4KKworLSBEZWJ1ZyBsb2dnaW5nIHdoZW4gc3RyZWFtX2lkIGlzIE5vbmUgaXMg
bm93IGZpeGVkIGFuZCBubyBsb25nZXIgZXJyb3JzLgorCiAzLjAuMSAoMjAxNy0wNC0wMykKIC0t
LS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL01BTklGRVNULmluIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi9NQU5JRkVTVC5pbgppbmRleCAzYzhiOTg4NTMzZTJlMTdjY2FmY2Q5NWUyNmE2NTcwYTYz
ZjQ3YTYxLi4wNDQwMGRlNmI3ZDFmN2QzODdkNjhjNTliYzMxZTg5N2E3OWFjMmZkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL01BTklGRVNULmluCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvTUFOSUZFU1QuaW4KQEAgLTEs
NyArMSw4IEBACiBpbmNsdWRlIFJFQURNRS5yc3QgTElDRU5TRSBDT05UUklCVVRPUlMucnN0IEhJ
U1RPUlkucnN0IHRveC5pbmkgdGVzdF9yZXF1aXJlbWVudHMudHh0IC5jb3ZlcmFnZXJjIE1ha2Vm
aWxlCi1yZWN1cnNpdmUtaW5jbHVkZSB0ZXN0ICoucHkKK3JlY3Vyc2l2ZS1pbmNsdWRlIHRlc3Qg
Ki5weSAqLnNoCiBncmFmdCBkb2NzCiBwcnVuZSBkb2NzL2J1aWxkCiBncmFmdCB2aXN1YWxpemVy
CiByZWN1cnNpdmUtaW5jbHVkZSBleGFtcGxlcyAqLnB5ICouY3J0ICoua2V5ICoucGVtICouY3Ny
CiByZWN1cnNpdmUtaW5jbHVkZSB1dGlscyAqLnNoCityZWN1cnNpdmUtaW5jbHVkZSBfdHJhdmlz
ICouc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvYXBpLnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
ZG9jcy9zb3VyY2UvYXBpLnJzdAppbmRleCAyYzcxZDM4ZDE2ZGRhNTk4ODZhZDhkYzFmNDU3MDlj
YWE5NDViNmQ3Li5hNDZmOGNjZTdkNGIxZTYzODU1NzcwZTIxZGI5ZDUwYzdkMjA2MjQ5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2FwaS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3Nv
dXJjZS9hcGkucnN0CkBAIC01Myw3ICs1MywxMCBAQCBFdmVudHMKIC4uIGF1dG9jbGFzczo6IGgy
LmV2ZW50cy5SZW1vdGVTZXR0aW5nc0NoYW5nZWQKICAgIDptZW1iZXJzOgogCi0uLiBhdXRvY2xh
c3M6OiBoMi5ldmVudHMuUGluZ0Fja25vd2xlZGdlZAorLi4gYXV0b2NsYXNzOjogaDIuZXZlbnRz
LlBpbmdSZWNlaXZlZAorICAgOm1lbWJlcnM6CisKKy4uIGF1dG9jbGFzczo6IGgyLmV2ZW50cy5Q
aW5nQWNrUmVjZWl2ZWQKICAgIDptZW1iZXJzOgogCiAuLiBhdXRvY2xhc3M6OiBoMi5ldmVudHMu
U3RyZWFtRW5kZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvYmFzaWMtdXNhZ2Uu
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9iYXNpYy11c2FnZS5yc3QKaW5kZXggMmQ1NzQzYTI4
OGNkYzdjNjM1MjhhMGZkZGQ0N2JhMzAwZTg4Mjg3MC4uYjlhYWI2YzZjZjg4ZGE4ZjA5NTEzZGYz
MWRmYWU2OTAzYTlmYmQ3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9iYXNpYy11
c2FnZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9iYXNpYy11c2FnZS5yc3QKQEAgLTIy
MSwxMyArMjIxLDExIEBAIHNob3duIGJlbG93OgogCiAuLiBjb2RlLWJsb2NrOjogY29uc29sZQog
Ci0gICAgJCBoeXBlciBHRVQgaHR0cDovL2h0dHAyYmluLm9yZy9nZXQKKyAgICAkIGh5cGVyIEdF
VCBodHRwczovL25naHR0cDIub3JnL2h0dHBiaW4vZ2V0CiAgICAgeydhcmdzJzoge30sCi0gICAg
ICdoZWFkZXJzJzogeydDb25uZWN0aW9uJzogJ2tlZXAtYWxpdmUnLAotICAgICAgICAgICAgICAg
ICAnSG9zdCc6ICdodHRwMmJpbi5vcmcnLAotICAgICAgICAgICAgICAgICAnVmlhJzogJzIgaHR0
cDJiaW4ub3JnJ30sCisgICAgICdoZWFkZXJzJzogeydIb3N0JzogJ25naHR0cDIub3JnJ30sCiAg
ICAgICdvcmlnaW4nOiAnMTAuMC4wLjInLAotICAgICAndXJsJzogJ2h0dHA6Ly9odHRwMmJpbi5v
cmcvZ2V0J30KKyAgICAgJ3VybCc6ICdodHRwczovL25naHR0cDIub3JnL2h0dHBiaW4vZ2V0J30K
IAogQXNzdW1pbmcgaXQgd29ya3MsIHlvdSdyZSBub3cgcmVhZHkgdG8gc3RhcnQgc2VuZGluZyBI
VFRQLzIgZGF0YS4KIApAQCAtMjUxLDkgKzI0OSwxMSBAQCBUaGUgZnVuY3Rpb24gc2hvdWxkIGxv
b2sgc29tZXRoaW5nIGxpa2UgdGhpczoKIC4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIGlt
cG9ydCBoMi5jb25uZWN0aW9uCisgICAgaW1wb3J0IGgyLmNvbmZpZwogCiAgICAgZGVmIGhhbmRs
ZShzb2NrKToKLSAgICAgICAgY29ubiA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKGNsaWVu
dF9zaWRlPUZhbHNlKQorICAgICAgICBjb25maWcgPSBoMi5jb25maWcuSDJDb25maWd1cmF0aW9u
KGNsaWVudF9zaWRlPUZhbHNlKQorICAgICAgICBjb25uID0gaDIuY29ubmVjdGlvbi5IMkNvbm5l
Y3Rpb24oY29uZmlnPWNvbmZpZykKIAogICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAg
ZGF0YSA9IHNvY2sucmVjdig2NTUzNSkKQEAgLTI2Nyw5ICsyNjcsMTEgQEAgZnVuY3Rpb24uIFlv
dXIgYGBoMnNlcnZlci5weWBgIHNob3VsZCBlbmQgdXAgbG9va2luZyBhIGxpa2UgdGhpczoKICAg
ICBpbXBvcnQgc29ja2V0CiAKICAgICBpbXBvcnQgaDIuY29ubmVjdGlvbgorICAgIGltcG9ydCBo
Mi5jb25maWcKIAogICAgIGRlZiBoYW5kbGUoc29jayk6Ci0gICAgICAgIGNvbm4gPSBoMi5jb25u
ZWN0aW9uLkgyQ29ubmVjdGlvbihjbGllbnRfc2lkZT1GYWxzZSkKKyAgICAgICAgY29uZmlnID0g
aDIuY29uZmlnLkgyQ29uZmlndXJhdGlvbihjbGllbnRfc2lkZT1GYWxzZSkKKyAgICAgICAgY29u
biA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKGNvbmZpZz1jb25maWcpCiAKICAgICAgICAg
d2hpbGUgVHJ1ZToKICAgICAgICAgICAgIGRhdGEgPSBzb2NrLnJlY3YoNjU1MzUpCkBAIC0zMzEs
NyArMzMzLDggQEAgZnVuY3Rpb24gdG8gZG8ganVzdCB0aGF0OgogLi4gY29kZS1ibG9jazo6IHB5
dGhvbgogCiAgICAgZGVmIGhhbmRsZShzb2NrKToKLSAgICAgICAgY29ubiA9IGgyLmNvbm5lY3Rp
b24uSDJDb25uZWN0aW9uKGNsaWVudF9zaWRlPUZhbHNlKQorICAgICAgICBjb25maWcgPSBoMi5j
b25maWcuSDJDb25maWd1cmF0aW9uKGNsaWVudF9zaWRlPUZhbHNlKQorICAgICAgICBjb25uID0g
aDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oY29uZmlnPWNvbmZpZykKICAgICAgICAgY29ubi5p
bml0aWF0ZV9jb25uZWN0aW9uKCkKICAgICAgICAgc29jay5zZW5kYWxsKGNvbm4uZGF0YV90b19z
ZW5kKCkpCiAKQEAgLTM1OSw5ICszNjIsMTEgQEAgWW91ciBgYGgyc2VydmVyLnB5YGAgc2NyaXB0
IHNob3VsZCBub3cgbG9vayBsaWtlIHRoaXM6CiAgICAgaW1wb3J0IHNvY2tldAogCiAgICAgaW1w
b3J0IGgyLmNvbm5lY3Rpb24KKyAgICBpbXBvcnQgaDIuY29uZmlnCiAKICAgICBkZWYgaGFuZGxl
KHNvY2spOgotICAgICAgICBjb25uID0gaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oY2xpZW50
X3NpZGU9RmFsc2UpCisgICAgICAgIGNvbmZpZyA9IGgyLmNvbmZpZy5IMkNvbmZpZ3VyYXRpb24o
Y2xpZW50X3NpZGU9RmFsc2UpCisgICAgICAgIGNvbm4gPSBoMi5jb25uZWN0aW9uLkgyQ29ubmVj
dGlvbihjb25maWc9Y29uZmlnKQogICAgICAgICBjb25uLmluaXRpYXRlX2Nvbm5lY3Rpb24oKQog
ICAgICAgICBzb2NrLnNlbmRhbGwoY29ubi5kYXRhX3RvX3NlbmQoKSkKIApAQCAtNDkzLDkgKzQ5
OCwxMSBAQCBMZXQncyBhbWVuZCBvdXIgYGBoYW5kbGVgYCBmdW5jdGlvbiBhZ2FpbjoKIC4uIGNv
ZGUtYmxvY2s6OiBweXRob24KIAogICAgIGltcG9ydCBoMi5ldmVudHMKKyAgICBpbXBvcnQgaDIu
Y29uZmlnCiAKICAgICBkZWYgaGFuZGxlKHNvY2spOgotICAgICAgICBjb25uID0gaDIuY29ubmVj
dGlvbi5IMkNvbm5lY3Rpb24oY2xpZW50X3NpZGU9RmFsc2UpCisgICAgICAgIGNvbmZpZyA9IGgy
LmNvbmZpZy5IMkNvbmZpZ3VyYXRpb24oY2xpZW50X3NpZGU9RmFsc2UpCisgICAgICAgIGNvbm4g
PSBoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbihjb25maWc9Y29uZmlnKQogICAgICAgICBjb25u
LmluaXRpYXRlX2Nvbm5lY3Rpb24oKQogICAgICAgICBzb2NrLnNlbmRhbGwoY29ubi5kYXRhX3Rv
X3NlbmQoKSkKIApAQCAtNTI4LDYgKzUzNSw3IEBAIFdpdGggdGhlc2UgY2hhbmdlcywgeW91ciBg
YGgyc2VydmVyLnB5YGAgZmlsZSBzaG91bGQgbG9vayBsaWtlIHRoaXM6CiAKICAgICBpbXBvcnQg
aDIuY29ubmVjdGlvbgogICAgIGltcG9ydCBoMi5ldmVudHMKKyAgICBpbXBvcnQgaDIuY29uZmln
CiAKICAgICBkZWYgc2VuZF9yZXNwb25zZShjb25uLCBldmVudCk6CiAgICAgICAgIHN0cmVhbV9p
ZCA9IGV2ZW50LnN0cmVhbV9pZApAQCAtNTQ1LDcgKzU1Myw4IEBAIFdpdGggdGhlc2UgY2hhbmdl
cywgeW91ciBgYGgyc2VydmVyLnB5YGAgZmlsZSBzaG91bGQgbG9vayBsaWtlIHRoaXM6CiAgICAg
ICAgICkKIAogICAgIGRlZiBoYW5kbGUoc29jayk6Ci0gICAgICAgIGNvbm4gPSBoMi5jb25uZWN0
aW9uLkgyQ29ubmVjdGlvbihjbGllbnRfc2lkZT1GYWxzZSkKKyAgICAgICAgY29uZmlnID0gaDIu
Y29uZmlnLkgyQ29uZmlndXJhdGlvbihjbGllbnRfc2lkZT1GYWxzZSkKKyAgICAgICAgY29ubiA9
IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKGNvbmZpZz1jb25maWcpCiAgICAgICAgIGNvbm4u
aW5pdGlhdGVfY29ubmVjdGlvbigpCiAgICAgICAgIHNvY2suc2VuZGFsbChjb25uLmRhdGFfdG9f
c2VuZCgpKQogCkBAIC02MzMsNiArNjQyLDcgQEAgZmlsZSwgd2hpY2ggc2hvdWxkIG5vdyBsb29r
IGxpa2UgdGhpczoKIAogICAgIGltcG9ydCBoMi5jb25uZWN0aW9uCiAgICAgaW1wb3J0IGgyLmV2
ZW50cworICAgIGltcG9ydCBoMi5jb25maWcKIAogICAgIGRlZiBzZW5kX3Jlc3BvbnNlKGNvbm4s
IGV2ZW50KToKICAgICAgICAgc3RyZWFtX2lkID0gZXZlbnQuc3RyZWFtX2lkCkBAIC02NTQsNyAr
NjY0LDggQEAgZmlsZSwgd2hpY2ggc2hvdWxkIG5vdyBsb29rIGxpa2UgdGhpczoKICAgICAgICAg
KQogCiAgICAgZGVmIGhhbmRsZShzb2NrKToKLSAgICAgICAgY29ubiA9IGgyLmNvbm5lY3Rpb24u
SDJDb25uZWN0aW9uKGNsaWVudF9zaWRlPUZhbHNlKQorICAgICAgICBjb25maWcgPSBoMi5jb25m
aWcuSDJDb25maWd1cmF0aW9uKGNsaWVudF9zaWRlPUZhbHNlKQorICAgICAgICBjb25uID0gaDIu
Y29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oY29uZmlnPWNvbmZpZykKICAgICAgICAgY29ubi5pbml0
aWF0ZV9jb25uZWN0aW9uKCkKICAgICAgICAgc29jay5zZW5kYWxsKGNvbm4uZGF0YV90b19zZW5k
KCkpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvY29uZi5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
ZG9jcy9zb3VyY2UvY29uZi5weQppbmRleCBhM2IzZThhNGI5OTg4MDFjMThhMjBjZDQwYzI1YzZi
NTVmOWQ4MWViLi5hMTVhMjE0NjM0YzZhOTlkYzNkNmQ4OTRjZmMxZDllMzRjMTZhYmMwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2NvbmYucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3Nv
dXJjZS9jb25mLnB5CkBAIC01NSw5ICs1NSw5IEBAIGNvcHlyaWdodCA9IHUnMjAxNSwgQ29yeSBC
ZW5maWVsZCcKICMgYnVpbHQgZG9jdW1lbnRzLgogIwogIyBUaGUgc2hvcnQgWC5ZIHZlcnNpb24u
Ci12ZXJzaW9uID0gJzMuMC4xJwordmVyc2lvbiA9ICczLjIuMCcKICMgVGhlIGZ1bGwgdmVyc2lv
biwgaW5jbHVkaW5nIGFscGhhL2JldGEvcmMgdGFncy4KLXJlbGVhc2UgPSAnMy4wLjEnCityZWxl
YXNlID0gJzMuMi4wJwogCiAjIFRoZSBsYW5ndWFnZSBmb3IgY29udGVudCBhdXRvZ2VuZXJhdGVk
IGJ5IFNwaGlueC4gUmVmZXIgdG8gZG9jdW1lbnRhdGlvbgogIyBmb3IgYSBsaXN0IG9mIHN1cHBv
cnRlZCBsYW5ndWFnZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL25lZ290aWF0
aW5nLWh0dHAyLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvbmVnb3RpYXRpbmctaHR0cDIucnN0
CmluZGV4IGQ0YzcyYjI4ODllMDY3NWViNWIyOTVhZTVkZGEzZGZiMmE5Mzg1OTUuLjIwZDU4YTcx
ZjFiZThlOWZkOTU1MDE3YjQ3NTdlZGE1Njg0NzYxYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9j
cy9zb3VyY2UvbmVnb3RpYXRpbmctaHR0cDIucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2Uv
bmVnb3RpYXRpbmctaHR0cDIucnN0CkBAIC01LDE1ICs1LDE5IEBAIE5lZ290aWF0aW5nIEhUVFAv
MgogCiAuLiBfc3RhcnRpbmctYWxwbjoKIAotSFRUUFMgVVJMcyAoQUxQTiBhbmQgTlBOKQorSFRU
UFMgVVJMcyAoQUxQTikKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotU3RhcnRpbmcgSFRU
UC8yIGZvciBIVFRQUyBVUkxzIGlzIG91dGxpbmVkIGluIGBSRkMgNzU0MCBTZWN0aW9uIDMuM2Bf
LiBJbiB0aGlzIGNhc2UsIHRoZSBjbGllbnQgYW5kIHNlcnZlciB1c2UgYSBUTFMgZXh0ZW5zaW9u
IHRvIG5lZ290aWF0ZSBIVFRQLzI6IHR5cGljYWxseSBlaXRoZXIgb3IgYm90aCBvZiBgTlBOYF8g
b3IgYEFMUE5gXy4gSG93IHRvIHVzZSBOUE4gYW5kIEFMUE4gaXMgY3VycmVudGx5IG5vdCBjb3Zl
cmVkIGluIHRoaXMgZG9jdW1lbnQ6IHBsZWFzZSBjb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uIGZv
ciBlaXRoZXIgdGhlIDptb2Q6YHNzbCBtb2R1bGUgPHB5dGhvbjpzc2w+YCBpbiB0aGUgc3RhbmRh
cmQgbGlicmFyeSwgb3IgdGhlIDptb2Q6YFB5T3BlblNTTCA8cHlvcGVuc3NsOk9wZW5TU0wuU1NM
PmAgdGhpcmQtcGFydHkgbW9kdWxlcywgZm9yIG1vcmUgb24gdGhpcyB0b3BpYy4KK1N0YXJ0aW5n
IEhUVFAvMiBmb3IgSFRUUFMgVVJMcyBpcyBvdXRsaW5lZCBpbiBgUkZDIDc1NDAgU2VjdGlvbiAz
LjNgXy4gSW4gdGhpcyBjYXNlLCB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgdXNlIGEgVExTIGV4dGVu
c2lvbiB0byBuZWdvdGlhdGUgSFRUUC8yOiBgQUxQTmBfLiBIb3cgdG8gdXNlIEFMUE4gaXMgY3Vy
cmVudGx5IG5vdCBjb3ZlcmVkIGluIHRoaXMgZG9jdW1lbnQ6IHBsZWFzZSBjb25zdWx0IHRoZSBk
b2N1bWVudGF0aW9uIGZvciBlaXRoZXIgdGhlIDptb2Q6YHNzbCBtb2R1bGUgPHB5dGhvbjpzc2w+
YCBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSwgb3IgdGhlIDptb2Q6YFB5T3BlblNTTCA8cHlvcGVu
c3NsOk9wZW5TU0wuU1NMPmAgdGhpcmQtcGFydHkgbW9kdWxlcywgZm9yIG1vcmUgb24gdGhpcyB0
b3BpYy4KIAogVGhpcyBtZXRob2QgaXMgdGhlIHNpbXBsZXN0IHRvIHVzZSBvbmNlIHRoZSBUTFMg
Y29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZC4gVG8gdXNlIGl0IHdpdGggSHlwZXItaDIsIGFmdGVy
IHlvdSd2ZSBlc3RhYmxpc2hlZCB0aGUgY29ubmVjdGlvbiBhbmQgY29uZmlybWVkIHRoYXQgSFRU
UC8yIGhhcyBiZWVuIG5lZ290aWF0ZWQgd2l0aCBgQUxQTmBfLCBjcmVhdGUgYSA6Y2xhc3M6YEgy
Q29ubmVjdGlvbiA8aDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24+YCBvYmplY3QgYW5kIGNhbGwg
Om1ldGg6YEgyQ29ubmVjdGlvbi5pbml0aWF0ZV9jb25uZWN0aW9uIDxoMi5jb25uZWN0aW9uLkgy
Q29ubmVjdGlvbi5pbml0aWF0ZV9jb25uZWN0aW9uPmAuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0
aGUgYXBwcm9wcmlhdGUgcHJlYW1ibGUgZGF0YSBpcyBwbGFjZWQgaW4gdGhlIGRhdGEgYnVmZmVy
LiBZb3Ugc2hvdWxkIHRoZW4gaW1tZWRpYXRlbHkgc2VuZCB0aGUgZGF0YSByZXR1cm5lZCBieSA6
bWV0aDpgSDJDb25uZWN0aW9uLmRhdGFfdG9fc2VuZCA8aDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rp
b24uZGF0YV90b19zZW5kPmAgb24geW91ciBUTFMgY29ubmVjdGlvbi4KIAogQXQgdGhpcyBwb2lu
dCwgeW91J3JlIGZyZWUgdG8gdXNlIGFsbCB0aGUgSFRUUC8yIGZ1bmN0aW9uYWxpdHkgcHJvdmlk
ZWQgYnkgSHlwZXItaDIuCiAKKy4uIG5vdGU6OgorICAgQWx0aG91Z2ggSHlwZXItaDIgaXMgbm90
IGNvbmNlcm5lZCB3aXRoIG5lZ290aWF0aW5nIHByb3RvY29sIHZlcnNpb25zLCBpdCBpcyBpbXBv
cnRhbnQgdG8gbm90ZSB0aGF0IHN1cHBvcnQgZm9yIGBBTFBOYF8gaXMgbm90IGF2YWlsYWJsZSBp
biB0aGUgc3RhbmRhcmQgbGlicmFyeSBvZiBQeXRob24gdmVyc2lvbnMgPCAyLjcuOS4KKyAgIEFz
IGEgY29uc2VxdWVuY2UsIGNsaWVudHMgbWF5IGVuY291bnRlciB2YXJpb3VzIGVycm9ycyBkdWUg
dG8gcHJvdG9jb2wgdmVyc2lvbnMgbWlzbWF0Y2guCisKIFNlcnZlciBTZXR1cCBFeGFtcGxlCiB+
fn5+fn5+fn5+fn5+fn5+fn5+fgogCkBAIC05MCwxMSArOTQsMTAgQEAgVGhlIGNvZGUgYmVsb3cg
ZGVtb25zdHJhdGVzIGhvdyB0byBoYW5kbGUgYSBwbGFpbnRleHQgdXBncmFkZSBmcm9tIHRoZSBw
ZXJzcGVjdGkKIFByaW9yIEtub3dsZWRnZQogLS0tLS0tLS0tLS0tLS0tCiAKLUl0J3MgcG9zc2li
bGUgdGhhdCB5b3UgYXMgYSBjbGllbnQga25vdyB0aGF0IGEgcGFydGljdWxhciBzZXJ2ZXIgc3Vw
cG9ydHMgSFRUUC8yLCBhbmQgdGhhdCB5b3UgZG8gbm90IG5lZWQgdG8gcGVyZm9ybSBhbnkgb2Yg
dGhlIG5lZ290aWF0aW9ucyBkZXNjcmliZWQgYWJvdmUuIEluIHRoYXQgY2FzZSwgeW91IG1heSBm
b2xsb3cgdGhlIHN0ZXBzIGluIDpyZWY6YHN0YXJ0aW5nLWFscG5gLCBpZ25vcmluZyBhbGwgcmVm
ZXJlbmNlcyB0byBBTFBOIGFuZCBOUE46IHRoZXJlJ3Mgbm8gbmVlZCB0byBwZXJmb3JtIHRoZSB1
cGdyYWRlIGRhbmNlIGRlc2NyaWJlZCBpbiA6cmVmOmBzdGFydGluZy11cGdyYWRlYC4KK0l0J3Mg
cG9zc2libGUgdGhhdCB5b3UgYXMgYSBjbGllbnQga25vdyB0aGF0IGEgcGFydGljdWxhciBzZXJ2
ZXIgc3VwcG9ydHMgSFRUUC8yLCBhbmQgdGhhdCB5b3UgZG8gbm90IG5lZWQgdG8gcGVyZm9ybSBh
bnkgb2YgdGhlIG5lZ290aWF0aW9ucyBkZXNjcmliZWQgYWJvdmUuIEluIHRoYXQgY2FzZSwgeW91
IG1heSBmb2xsb3cgdGhlIHN0ZXBzIGluIDpyZWY6YHN0YXJ0aW5nLWFscG5gLCBpZ25vcmluZyBh
bGwgcmVmZXJlbmNlcyB0byBBTFBOOiB0aGVyZSdzIG5vIG5lZWQgdG8gcGVyZm9ybSB0aGUgdXBn
cmFkZSBkYW5jZSBkZXNjcmliZWQgaW4gOnJlZjpgc3RhcnRpbmctdXBncmFkZWAuCiAKIC4uIF9S
RkMgNzU0MDogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzc1NDAKIC4uIF9SRkMgNzU0
MCBTZWN0aW9uIDMuMjogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzc1NDAjc2VjdGlv
bi0zLjIKIC4uIF9SRkMgNzU0MCBTZWN0aW9uIDMuMzogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9o
dG1sL3JmYzc1NDAjc2VjdGlvbi0zLjMKLS4uIF9OUE46IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9y
Zy93aWtpL0FwcGxpY2F0aW9uLUxheWVyX1Byb3RvY29sX05lZ290aWF0aW9uCiAuLiBfQUxQTjog
aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXBwbGljYXRpb24tTGF5ZXJfUHJvdG9jb2xf
TmVnb3RpYXRpb24KIC4uIF9SRkMgNzIzMCBTZWN0aW9uIDYuNzogaHR0cHM6Ly90b29scy5pZXRm
Lm9yZy9odG1sL3JmYzcyMzAjc2VjdGlvbi02LjcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9z
b3VyY2UvdHdpc3RlZC1oZWFkLWV4YW1wbGUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90d2lz
dGVkLWhlYWQtZXhhbXBsZS5yc3QKaW5kZXggMjA3NTM1MjdjYTM2MTI1MjNkZDg3NzFjYzU3ODQx
Mjc2MmQ3OWE2Mi4uZGY5M2IxNDRlNzE3ODllZTU5NzliMzNhMWE1NjAwZTkwMmRiMGFmNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90d2lzdGVkLWhlYWQtZXhhbXBsZS5yc3QKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90d2lzdGVkLWhlYWQtZXhhbXBsZS5yc3QKQEAgLTUsNyAr
NSw3IEBAIFRoaXMgZXhhbXBsZSBpcyBhIGJhc2ljIEhUVFAvMiBjbGllbnQgd3JpdHRlbiBmb3Ig
dGhlIGBUd2lzdGVkYF8gYXN5bmNocm9ub3VzCiBuZXR3b3JraW5nIGZyYW1ld29yay4KIAogVGhp
cyBjbGllbnQgaXMgZmFpcmx5IHNpbXBsZTogaXQgbWFrZXMgYSBoYXJkLWNvZGVkIEhFQUQgcmVx
dWVzdCB0bwotaHR0cDJiaW4ub3JnIGFuZCBwcmludHMgb3V0IHRoZSByZXNwb25zZSBkYXRhLiBJ
dHMgcHVycG9zZSBpcyB0byBkZW1vbnN0cmF0ZQorbmdodHRwMi5vcmcvaHR0cGJpbi8gYW5kIHBy
aW50cyBvdXQgdGhlIHJlc3BvbnNlIGRhdGEuIEl0cyBwdXJwb3NlIGlzIHRvIGRlbW9uc3RyYXRl
CiBob3cgdG8gd3JpdGUgYSB2ZXJ5IGJhc2ljIEhUVFAvMiBjbGllbnQgaW1wbGVtZW50YXRpb24u
CiAKIC4uIGxpdGVyYWxpbmNsdWRlOjogLi4vLi4vZXhhbXBsZXMvdHdpc3RlZC9oZWFkX3JlcXVl
c3QucHkKQEAgLTE0LDQgKzE0LDQgQEAgaG93IHRvIHdyaXRlIGEgdmVyeSBiYXNpYyBIVFRQLzIg
Y2xpZW50IGltcGxlbWVudGF0aW9uLgogICAgOmVuY29kaW5nOiB1dGYtOAogCiAKLS4uIF9Ud2lz
dGVkOiBodHRwczovL3R3aXN0ZWRtYXRyaXguY29tLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKKy4uIF9Ud2lzdGVkOiBodHRwczovL3R3aXN0ZWRtYXRyaXguY29tLwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9kb2NzL3NvdXJjZS90d2lzdGVkLXBvc3QtZXhhbXBsZS5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2Rv
Y3Mvc291cmNlL3R3aXN0ZWQtcG9zdC1leGFtcGxlLnJzdAppbmRleCAyMWJjOGFjMDlmMzRkNTY4
NGYyMWU0NDc1YjlkOGViNzA0NjllNmNkLi43ZTNhYmE0MWEzOGU5NGQ1ZDAxOTI0NjM1MjhhNmU5
MzIxMGQ1ZWNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL3R3aXN0ZWQtcG9zdC1l
eGFtcGxlLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL3R3aXN0ZWQtcG9zdC1leGFtcGxl
LnJzdApAQCAtNSw3ICs1LDcgQEAgVGhpcyBleGFtcGxlIGlzIGEgYmFzaWMgSFRUUC8yIGNsaWVu
dCB3cml0dGVuIGZvciB0aGUgYFR3aXN0ZWRgXyBhc3luY2hyb25vdXMKIG5ldHdvcmtpbmcgZnJh
bWV3b3JrLgogCiBUaGlzIGNsaWVudCBpcyBmYWlybHkgc2ltcGxlOiBpdCBtYWtlcyBhIGhhcmQt
Y29kZWQgUE9TVCByZXF1ZXN0IHRvCi1odHRwMmJpbi5vcmcgYW5kIHByaW50cyBvdXQgdGhlIHJl
c3BvbnNlIGRhdGEsIHNlbmRpbmcgYSBmaWxlIHRoYXQgaXMgcHJvdmlkZWQKK25naHR0cDIub3Jn
L2h0dHBiaW4vcG9zdCBhbmQgcHJpbnRzIG91dCB0aGUgcmVzcG9uc2UgZGF0YSwgc2VuZGluZyBh
IGZpbGUgdGhhdCBpcyBwcm92aWRlZAogb24gdGhlIGNvbW1hbmQgbGluZSBvciB0aGUgc2NyaXB0
IGl0c2VsZi4gSXRzIHB1cnBvc2UgaXMgdG8gZGVtb25zdHJhdGUgaG93IHRvCiB3cml0ZSBhIEhU
VFAvMiBjbGllbnQgaW1wbGVtZW50YXRpb24gdGhhdCBoYW5kbGVzIGZsb3cgY29udHJvbC4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9hc3luY2lvL2FzeW5jaW8tc2VydmVyLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9leGFtcGxlcy9hc3luY2lvL2FzeW5jaW8tc2VydmVyLnB5CmluZGV4IDBlNWI5MTJl
MmRmYTMwMDNjM2I1NTBhODYzMTgxYzBlYmM3N2MxNTIuLjI3ODc3NDY0NGJjOGUwMzFkMTYyZmFj
ZmJiYmMyOWUxMWQ5MDkyNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvYXN5bmNpby9h
c3luY2lvLXNlcnZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2FzeW5jaW8vYXN5bmNpby1z
ZXJ2ZXIucHkKQEAgLTgsMTAgKzgsNiBAQCBBIGZ1bGx5LWZ1bmN0aW9uYWwgSFRUUC8yIHNlcnZl
ciB1c2luZyBhc3luY2lvLiBSZXF1aXJlcyBQeXRob24gMy41Ky4KIFRoaXMgZXhhbXBsZSBkZW1v
bnN0cmF0ZXMgaGFuZGxpbmcgcmVxdWVzdHMgd2l0aCBib2RpZXMsIGFzIHdlbGwgYXMgaGFuZGxp
bmcKIHRob3NlIHdpdGhvdXQuIEluIHBhcnRpY3VsYXIsIGl0IGRlbW9uc3RyYXRlcyB0aGUgZmFj
dCB0aGF0IERhdGFSZWNlaXZlZCBtYXkKIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcywgYW5kIHRo
YXQgYXBwbGljYXRpb25zIG11c3QgaGFuZGxlIHRoYXQgcG9zc2liaWxpdHkuCi0KLVBsZWFzZSBu
b3RlIHRoYXQgdGhpcyBleGFtcGxlIGRvZXMgbm90IGhhbmRsZSBmbG93IGNvbnRyb2wsIGFuZCBz
byBvbmx5IHdvcmtzCi1wcm9wZXJseSBmb3IgcmVsYXRpdmVseSBzbWFsbCByZXF1ZXN0cy4gUGxl
YXNlIHNlZSBvdGhlciBleGFtcGxlcyB0byB1bmRlcnN0YW5kCi1ob3cgZmxvdyBjb250cm9sIHNo
b3VsZCB3b3JrLgogIiIiCiBpbXBvcnQgYXN5bmNpbwogaW1wb3J0IGlvCkBAIC0yMywxMCArMTks
MTIgQEAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QsIFR1cGxlCiBmcm9tIGgyLmNvbmZpZyBpbXBv
cnQgSDJDb25maWd1cmF0aW9uCiBmcm9tIGgyLmNvbm5lY3Rpb24gaW1wb3J0IEgyQ29ubmVjdGlv
bgogZnJvbSBoMi5ldmVudHMgaW1wb3J0ICgKLSAgICBDb25uZWN0aW9uVGVybWluYXRlZCwgRGF0
YVJlY2VpdmVkLCBSZXF1ZXN0UmVjZWl2ZWQsIFN0cmVhbUVuZGVkCisgICAgQ29ubmVjdGlvblRl
cm1pbmF0ZWQsIERhdGFSZWNlaXZlZCwgUmVtb3RlU2V0dGluZ3NDaGFuZ2VkLAorICAgIFJlcXVl
c3RSZWNlaXZlZCwgU3RyZWFtRW5kZWQsIFN0cmVhbVJlc2V0LCBXaW5kb3dVcGRhdGVkCiApCiBm
cm9tIGgyLmVycm9ycyBpbXBvcnQgRXJyb3JDb2RlcwotZnJvbSBoMi5leGNlcHRpb25zIGltcG9y
dCBQcm90b2NvbEVycm9yCitmcm9tIGgyLmV4Y2VwdGlvbnMgaW1wb3J0IFByb3RvY29sRXJyb3Is
IFN0cmVhbUNsb3NlZEVycm9yCitmcm9tIGgyLnNldHRpbmdzIGltcG9ydCBTZXR0aW5nQ29kZXMK
IAogCiBSZXF1ZXN0RGF0YSA9IGNvbGxlY3Rpb25zLm5hbWVkdHVwbGUoJ1JlcXVlc3REYXRhJywg
WydoZWFkZXJzJywgJ2RhdGEnXSkKQEAgLTM4LDEyICszNiwxOCBAQCBjbGFzcyBIMlByb3RvY29s
KGFzeW5jaW8uUHJvdG9jb2wpOgogICAgICAgICBzZWxmLmNvbm4gPSBIMkNvbm5lY3Rpb24oY29u
ZmlnPWNvbmZpZykKICAgICAgICAgc2VsZi50cmFuc3BvcnQgPSBOb25lCiAgICAgICAgIHNlbGYu
c3RyZWFtX2RhdGEgPSB7fQorICAgICAgICBzZWxmLmZsb3dfY29udHJvbF9mdXR1cmVzID0ge30K
IAogICAgIGRlZiBjb25uZWN0aW9uX21hZGUoc2VsZiwgdHJhbnNwb3J0OiBhc3luY2lvLlRyYW5z
cG9ydCk6CiAgICAgICAgIHNlbGYudHJhbnNwb3J0ID0gdHJhbnNwb3J0CiAgICAgICAgIHNlbGYu
Y29ubi5pbml0aWF0ZV9jb25uZWN0aW9uKCkKICAgICAgICAgc2VsZi50cmFuc3BvcnQud3JpdGUo
c2VsZi5jb25uLmRhdGFfdG9fc2VuZCgpKQogCisgICAgZGVmIGNvbm5lY3Rpb25fbG9zdChzZWxm
LCBleGMpOgorICAgICAgICBmb3IgZnV0dXJlIGluIHNlbGYuZmxvd19jb250cm9sX2Z1dHVyZXMu
dmFsdWVzKCk6CisgICAgICAgICAgICBmdXR1cmUuY2FuY2VsKCkKKyAgICAgICAgc2VsZi5mbG93
X2NvbnRyb2xfZnV0dXJlcyA9IHt9CisKICAgICBkZWYgZGF0YV9yZWNlaXZlZChzZWxmLCBkYXRh
OiBieXRlcyk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGV2ZW50cyA9IHNlbGYuY29ubi5y
ZWNlaXZlX2RhdGEoZGF0YSkKQEAgLTYxLDYgKzY1LDEzIEBAIGNsYXNzIEgyUHJvdG9jb2woYXN5
bmNpby5Qcm90b2NvbCk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtX2NvbXBsZXRl
KGV2ZW50LnN0cmVhbV9pZCkKICAgICAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQs
IENvbm5lY3Rpb25UZXJtaW5hdGVkKToKICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFuc3Bv
cnQuY2xvc2UoKQorICAgICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgU3RyZWFt
UmVzZXQpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnN0cmVhbV9yZXNldChldmVudC5zdHJl
YW1faWQpCisgICAgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBXaW5kb3dVcGRh
dGVkKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi53aW5kb3dfdXBkYXRlZChldmVudC5zdHJl
YW1faWQsIGV2ZW50LmRlbHRhKQorICAgICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVu
dCwgUmVtb3RlU2V0dGluZ3NDaGFuZ2VkKToKKyAgICAgICAgICAgICAgICAgICAgaWYgU2V0dGlu
Z0NvZGVzLklOSVRJQUxfV0lORE9XX1NJWkUgaW4gZXZlbnQuY2hhbmdlZF9zZXR0aW5nczoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYud2luZG93X3VwZGF0ZWQoTm9uZSwgMCkKIAogICAg
ICAgICAgICAgICAgIHNlbGYudHJhbnNwb3J0LndyaXRlKHNlbGYuY29ubi5kYXRhX3RvX3NlbmQo
KSkKIApAQCAtNjgsMTEgKzc5LDYgQEAgY2xhc3MgSDJQcm90b2NvbChhc3luY2lvLlByb3RvY29s
KToKICAgICAgICAgaGVhZGVycyA9IGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0KGhlYWRlcnMpCiAg
ICAgICAgIG1ldGhvZCA9IGhlYWRlcnNbJzptZXRob2QnXQogCi0gICAgICAgICMgV2Ugb25seSBz
dXBwb3J0IEdFVCBhbmQgUE9TVC4KLSAgICAgICAgaWYgbWV0aG9kIG5vdCBpbiAoJ0dFVCcsICdQ
T1NUJyk6Ci0gICAgICAgICAgICBzZWxmLnJldHVybl80MDUoaGVhZGVycywgc3RyZWFtX2lkKQot
ICAgICAgICAgICAgcmV0dXJuCi0KICAgICAgICAgIyBTdG9yZSBvZmYgdGhlIHJlcXVlc3QgZGF0
YS4KICAgICAgICAgcmVxdWVzdF9kYXRhID0gUmVxdWVzdERhdGEoaGVhZGVycywgaW8uQnl0ZXNJ
TygpKQogICAgICAgICBzZWxmLnN0cmVhbV9kYXRhW3N0cmVhbV9pZF0gPSByZXF1ZXN0X2RhdGEK
QEAgLTEwMSwxOCArMTA3LDcgQEAgY2xhc3MgSDJQcm90b2NvbChhc3luY2lvLlByb3RvY29sKToK
ICAgICAgICAgICAgICgnc2VydmVyJywgJ2FzeW5jaW8taDInKSwKICAgICAgICAgKQogICAgICAg
ICBzZWxmLmNvbm4uc2VuZF9oZWFkZXJzKHN0cmVhbV9pZCwgcmVzcG9uc2VfaGVhZGVycykKLSAg
ICAgICAgc2VsZi5jb25uLnNlbmRfZGF0YShzdHJlYW1faWQsIGRhdGEsIGVuZF9zdHJlYW09VHJ1
ZSkKLQotICAgIGRlZiByZXR1cm5fNDA1KHNlbGYsIGhlYWRlcnM6IExpc3RbVHVwbGVbc3RyLCBz
dHJdXSwgc3RyZWFtX2lkOiBpbnQpOgotICAgICAgICAiIiIKLSAgICAgICAgV2UgZG9uJ3Qgc3Vw
cG9ydCB0aGUgZ2l2ZW4gbWV0aG9kLCBzbyB3ZSB3YW50IHRvIHJldHVybiBhIDQwNSByZXNwb25z
ZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHJlc3BvbnNlX2hlYWRlcnMgPSAoCi0gICAgICAgICAg
ICAoJzpzdGF0dXMnLCAnNDA1JyksCi0gICAgICAgICAgICAoJ2NvbnRlbnQtbGVuZ3RoJywgJzAn
KSwKLSAgICAgICAgICAgICgnc2VydmVyJywgJ2FzeW5jaW8taDInKSwKLSAgICAgICAgKQotICAg
ICAgICBzZWxmLmNvbm4uc2VuZF9oZWFkZXJzKHN0cmVhbV9pZCwgcmVzcG9uc2VfaGVhZGVycywg
ZW5kX3N0cmVhbT1UcnVlKQorICAgICAgICBhc3luY2lvLmVuc3VyZV9mdXR1cmUoc2VsZi5zZW5k
X2RhdGEoZGF0YSwgc3RyZWFtX2lkKSkKIAogICAgIGRlZiByZWNlaXZlX2RhdGEoc2VsZiwgZGF0
YTogYnl0ZXMsIHN0cmVhbV9pZDogaW50KToKICAgICAgICAgIiIiCkBAIC0xMjgsMTIgKzEyMyw3
MiBAQCBjbGFzcyBIMlByb3RvY29sKGFzeW5jaW8uUHJvdG9jb2wpOgogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgc3RyZWFtX2RhdGEuZGF0YS53cml0ZShkYXRhKQogCisgICAgZGVmIHN0cmVh
bV9yZXNldChzZWxmLCBzdHJlYW1faWQpOgorICAgICAgICAiIiIKKyAgICAgICAgQSBzdHJlYW0g
cmVzZXQgd2FzIHNlbnQuIFN0b3Agc2VuZGluZyBkYXRhLgorICAgICAgICAiIiIKKyAgICAgICAg
aWYgc3RyZWFtX2lkIGluIHNlbGYuZmxvd19jb250cm9sX2Z1dHVyZXM6CisgICAgICAgICAgICBm
dXR1cmUgPSBzZWxmLmZsb3dfY29udHJvbF9mdXR1cmVzLnBvcChzdHJlYW1faWQpCisgICAgICAg
ICAgICBmdXR1cmUuY2FuY2VsKCkKKworICAgIGFzeW5jIGRlZiBzZW5kX2RhdGEoc2VsZiwgZGF0
YSwgc3RyZWFtX2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmQgZGF0YSBhY2NvcmRpbmcg
dG8gdGhlIGZsb3cgY29udHJvbCBydWxlcy4KKyAgICAgICAgIiIiCisgICAgICAgIHdoaWxlIGRh
dGE6CisgICAgICAgICAgICB3aGlsZSBzZWxmLmNvbm4ubG9jYWxfZmxvd19jb250cm9sX3dpbmRv
dyhzdHJlYW1faWQpIDwgMToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
ICAgIGF3YWl0IHNlbGYud2FpdF9mb3JfZmxvd19jb250cm9sKHN0cmVhbV9pZCkKKyAgICAgICAg
ICAgICAgICBleGNlcHQgYXN5bmNpby5DYW5jZWxsZWRFcnJvcjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuCisKKyAgICAgICAgICAgIGNodW5rX3NpemUgPSBtaW4oCisgICAgICAgICAgICAg
ICAgc2VsZi5jb25uLmxvY2FsX2Zsb3dfY29udHJvbF93aW5kb3coc3RyZWFtX2lkKSwKKyAgICAg
ICAgICAgICAgICBsZW4oZGF0YSksCisgICAgICAgICAgICAgICAgc2VsZi5jb25uLm1heF9vdXRi
b3VuZF9mcmFtZV9zaXplLAorICAgICAgICAgICAgKQorCisgICAgICAgICAgICB0cnk6CisgICAg
ICAgICAgICAgICAgc2VsZi5jb25uLnNlbmRfZGF0YSgKKyAgICAgICAgICAgICAgICAgICAgc3Ry
ZWFtX2lkLAorICAgICAgICAgICAgICAgICAgICBkYXRhWzpjaHVua19zaXplXSwKKyAgICAgICAg
ICAgICAgICAgICAgZW5kX3N0cmVhbT0oY2h1bmtfc2l6ZSA9PSBsZW4oZGF0YSkpCisgICAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgZXhjZXB0IChTdHJlYW1DbG9zZWRFcnJvciwgUHJvdG9j
b2xFcnJvcik6CisgICAgICAgICAgICAgICAgIyBUaGUgc3RyZWFtIGdvdCBjbG9zZWQgYW5kIHdl
IGRpZG4ndCBnZXQgdG9sZC4gV2UncmUgZG9uZQorICAgICAgICAgICAgICAgICMgaGVyZS4KKyAg
ICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICBzZWxmLnRyYW5zcG9ydC53cml0ZShz
ZWxmLmNvbm4uZGF0YV90b19zZW5kKCkpCisgICAgICAgICAgICBkYXRhID0gZGF0YVtjaHVua19z
aXplOl0KKworICAgIGFzeW5jIGRlZiB3YWl0X2Zvcl9mbG93X2NvbnRyb2woc2VsZiwgc3RyZWFt
X2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFdhaXRzIGZvciBhIEZ1dHVyZSB0aGF0IGZpcmVz
IHdoZW4gdGhlIGZsb3cgY29udHJvbCB3aW5kb3cgaXMgb3BlbmVkLgorICAgICAgICAiIiIKKyAg
ICAgICAgZiA9IGFzeW5jaW8uRnV0dXJlKCkKKyAgICAgICAgc2VsZi5mbG93X2NvbnRyb2xfZnV0
dXJlc1tzdHJlYW1faWRdID0gZgorICAgICAgICBhd2FpdCBmCisKKyAgICBkZWYgd2luZG93X3Vw
ZGF0ZWQoc2VsZiwgc3RyZWFtX2lkLCBkZWx0YSk6CisgICAgICAgICIiIgorICAgICAgICBBIHdp
bmRvdyB1cGRhdGUgZnJhbWUgd2FzIHJlY2VpdmVkLiBVbmJsb2NrIHNvbWUgbnVtYmVyIG9mIGZs
b3cgY29udHJvbAorICAgICAgICBGdXR1cmVzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc3Ry
ZWFtX2lkIGFuZCBzdHJlYW1faWQgaW4gc2VsZi5mbG93X2NvbnRyb2xfZnV0dXJlczoKKyAgICAg
ICAgICAgIGYgPSBzZWxmLmZsb3dfY29udHJvbF9mdXR1cmVzLnBvcChzdHJlYW1faWQpCisgICAg
ICAgICAgICBmLnNldF9yZXN1bHQoZGVsdGEpCisgICAgICAgIGVsaWYgbm90IHN0cmVhbV9pZDoK
KyAgICAgICAgICAgIGZvciBmIGluIHNlbGYuZmxvd19jb250cm9sX2Z1dHVyZXMudmFsdWVzKCk6
CisgICAgICAgICAgICAgICAgZi5zZXRfcmVzdWx0KGRlbHRhKQorCisgICAgICAgICAgICBzZWxm
LmZsb3dfY29udHJvbF9mdXR1cmVzID0ge30KKwogCiBzc2xfY29udGV4dCA9IHNzbC5jcmVhdGVf
ZGVmYXVsdF9jb250ZXh0KHNzbC5QdXJwb3NlLkNMSUVOVF9BVVRIKQogc3NsX2NvbnRleHQub3B0
aW9ucyB8PSAoCiAgICAgc3NsLk9QX05PX1RMU3YxIHwgc3NsLk9QX05PX1RMU3YxXzEgfCBzc2wu
T1BfTk9fQ09NUFJFU1NJT04KICkKLXNzbF9jb250ZXh0LnNldF9jaXBoZXJzKCJFQ0RIRStBRVNH
Q00iKQogc3NsX2NvbnRleHQubG9hZF9jZXJ0X2NoYWluKGNlcnRmaWxlPSJjZXJ0LmNydCIsIGtl
eWZpbGU9ImNlcnQua2V5IikKIHNzbF9jb250ZXh0LnNldF9hbHBuX3Byb3RvY29scyhbImgyIl0p
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvYXN5bmNpby93c2dpLXNlcnZlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvZXhhbXBsZXMvYXN5bmNpby93c2dpLXNlcnZlci5weQppbmRleCAwOWFiMmNlMDU0
MTc2YjY1ZGFkOGFhZmEyNWY0OGVjMDEyMDY4MzVkLi45ZmRiMmZhMGZjMzA3MmYxZjZhMTc4MDMy
Y2ZjNDdkZDEwZDIwNWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2FzeW5jaW8vd3Nn
aS1zZXJ2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9hc3luY2lvL3dzZ2ktc2VydmVyLnB5
CkBAIC01LDcgKzUsNyBAQCBhc3luY2lvLXNlcnZlci5weQogCiBBIGZ1bGx5LWZ1bmN0aW9uYWwg
V1NHSSBzZXJ2ZXIsIHdyaXR0ZW4gdXNpbmcgaHlwZXItaDIuIFJlcXVpcmVzIGFzeW5jaW8uCiAK
LVRvIHRlc3QgaXQsIHRyeSBpbnN0YWxsaW5nIGh0dHBpbiBmcm9tIHBpcCAoYGBwaXAgaW5zdGFs
bCBodHRwYmluYGApIGFuZCB0aGVuCitUbyB0ZXN0IGl0LCB0cnkgaW5zdGFsbGluZyBodHRwYmlu
IGZyb20gcGlwIChgYHBpcCBpbnN0YWxsIGh0dHBiaW5gYCkgYW5kIHRoZW4KIHJ1bm5pbmcgdGhl
IHNlcnZlciAoYGBweXRob24gYXN5bmNpby1zZXJ2ZXIucHkgaHR0cGJpbjphcHBgYCkuCiAKIFRo
aXMgc2VydmVyIGRvZXMgbm90IHN1cHBvcnQgSFRUUC8xLjE6IGl0IGlzIGEgSFRUUC8yLW9ubHkg
V1NHSSBzZXJ2ZXIuIFRoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9jdXJpby9jdXJp
by1zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2N1cmlvL2N1cmlvLXNlcnZlci5weQppbmRl
eCAwMTYwNGI0NGU2ZmZlODNjY2E5Yzg2MmEwNjJhN2JmNThlNzVhZGFkLi5mOTNkNGRiOWQwNDBl
MzA1MTkzMDNmMDIzODNiMTIyMDEzNTJmZjQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVz
L2N1cmlvL2N1cmlvLXNlcnZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2N1cmlvL2N1cmlv
LXNlcnZlci5weQpAQCAtMTIsNyArMTIsNyBAQCBpbXBvcnQgbWltZXR5cGVzCiBpbXBvcnQgb3MK
IGltcG9ydCBzeXMKIAotZnJvbSBjdXJpbyBpbXBvcnQgS2VybmVsLCBFdmVudCwgc3Bhd24sIHNv
Y2tldCwgc3NsCitmcm9tIGN1cmlvIGltcG9ydCBFdmVudCwgc3Bhd24sIHNvY2tldCwgc3NsLCBy
dW4KIAogaW1wb3J0IGgyLmNvbmZpZwogaW1wb3J0IGgyLmNvbm5lY3Rpb24KQEAgLTIzLDcgKzIz
LDcgQEAgaW1wb3J0IGgyLmV2ZW50cwogUkVBRF9DSFVOS19TSVpFID0gODE5MgogCiAKLWRlZiBj
cmVhdGVfbGlzdGVuaW5nX3NzbF9zb2NrZXQoYWRkcmVzcywgY2VydGZpbGUsIGtleWZpbGUpOgor
YXN5bmMgZGVmIGNyZWF0ZV9saXN0ZW5pbmdfc3NsX3NvY2tldChhZGRyZXNzLCBjZXJ0ZmlsZSwg
a2V5ZmlsZSk6CiAgICAgIiIiCiAgICAgQ3JlYXRlIGFuZCByZXR1cm4gYSBsaXN0ZW5pbmcgVExT
IHNvY2tldCBvbiBhIGdpdmVuIGFkZHJlc3MuCiAgICAgIiIiCkBAIC0zNyw3ICszNyw3IEBAIGRl
ZiBjcmVhdGVfbGlzdGVuaW5nX3NzbF9zb2NrZXQoYWRkcmVzcywgY2VydGZpbGUsIGtleWZpbGUp
OgogCiAgICAgc29jayA9IHNvY2tldC5zb2NrZXQoKQogICAgIHNvY2suc2V0c29ja29wdChzb2Nr
ZXQuU09MX1NPQ0tFVCwgc29ja2V0LlNPX1JFVVNFQUREUiwgMSkKLSAgICBzb2NrID0gc3NsX2Nv
bnRleHQud3JhcF9zb2NrZXQoc29jaykKKyAgICBzb2NrID0gYXdhaXQgc3NsX2NvbnRleHQud3Jh
cF9zb2NrZXQoc29jaykKICAgICBzb2NrLmJpbmQoYWRkcmVzcykKICAgICBzb2NrLmxpc3Rlbigp
CiAKQEAgLTQ4LDcgKzQ4LDcgQEAgYXN5bmMgZGVmIGgyX3NlcnZlcihhZGRyZXNzLCByb290LCBj
ZXJ0ZmlsZSwga2V5ZmlsZSk6CiAgICAgIiIiCiAgICAgQ3JlYXRlIGFuIEhUVFAvMiBzZXJ2ZXIg
YXQgdGhlIGdpdmVuIGFkZHJlc3MuCiAgICAgIiIiCi0gICAgc29jayA9IGNyZWF0ZV9saXN0ZW5p
bmdfc3NsX3NvY2tldChhZGRyZXNzLCBjZXJ0ZmlsZSwga2V5ZmlsZSkKKyAgICBzb2NrID0gYXdh
aXQgY3JlYXRlX2xpc3RlbmluZ19zc2xfc29ja2V0KGFkZHJlc3MsIGNlcnRmaWxlLCBrZXlmaWxl
KQogICAgIHByaW50KCJOb3cgbGlzdGVuaW5nIG9uICVzOiVkIiAlIGFkZHJlc3MpCiAKICAgICBh
c3luYyB3aXRoIHNvY2s6CkBAIC0xNTAsNyArMTUwLDcgQEAgY2xhc3MgSDJTZXJ2ZXI6CiAgICAg
ICAgIFNlbmQgdGhlIGRhdGEgcG9ydGlvbiBvZiBhIGZpbGUuIEhhbmRsZXMgZmxvdyBjb250cm9s
IHJ1bGVzLgogICAgICAgICAiIiIKICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIHdo
aWxlIG5vdCBzZWxmLmNvbm4ubG9jYWxfZmxvd19jb250cm9sX3dpbmRvdyhzdHJlYW1faWQpOgor
ICAgICAgICAgICAgd2hpbGUgc2VsZi5jb25uLmxvY2FsX2Zsb3dfY29udHJvbF93aW5kb3coc3Ry
ZWFtX2lkKSA8IDE6CiAgICAgICAgICAgICAgICAgYXdhaXQgc2VsZi53YWl0X2Zvcl9mbG93X2Nv
bnRyb2woc3RyZWFtX2lkKQogCiAgICAgICAgICAgICBjaHVua19zaXplID0gbWluKApAQCAtMTk2
LDEzICsxOTYsMTEgQEAgY2xhc3MgSDJTZXJ2ZXI6CiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6CiAgICAgaG9zdCA9IHN5cy5hcmd2WzJdIGlmIGxlbihzeXMuYXJndikgPiAyIGVsc2UgImxv
Y2FsaG9zdCIKLSAgICBrZXJuZWwgPSBLZXJuZWwod2l0aF9tb25pdG9yPVRydWUpCiAgICAgcHJp
bnQoIlRyeSBHRVR0aW5nOiIpCiAgICAgcHJpbnQoIiAgICBPbiBPU1ggYWZ0ZXIgJ2JyZXcgaW5z
dGFsbCBjdXJsIC0td2l0aC1jLWFyZXMgLS13aXRoLWxpYmlkbiAtLXdpdGgtbmdodHRwMiAtLXdp
dGgtb3BlbnNzbCc6IikKICAgICBwcmludCgiL3Vzci9sb2NhbC9vcHQvY3VybC9iaW4vY3VybCAt
LXRsc3YxLjIgLS1odHRwMiAtayBodHRwczovL2xvY2FsaG9zdDo1MDAwL2J1bmRsZS5qcyIpCiAg
ICAgcHJpbnQoIk9yIG9wZW4gYSBicm93c2VyIHRvOiBodHRwczovL2xvY2FsaG9zdDo1MDAwLyIp
CiAgICAgcHJpbnQoIiAgIChBY2NlcHQgYWxsIHRoZSB3YXJuaW5ncykiKQotICAgIGtlcm5lbC5y
dW4oaDJfc2VydmVyKChob3N0LCA1MDAwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzeXMu
YXJndlsxXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAie30uY3J0LnBlbSIuZm9ybWF0KGhv
c3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICJ7fS5rZXkiLmZvcm1hdChob3N0KSkpCisg
ICAgcnVuKGgyX3NlcnZlcigoaG9zdCwgNTAwMCksIHN5cy5hcmd2WzFdLAorICAgICAgICAgICAg
ICAgICAgInt9LmNydC5wZW0iLmZvcm1hdChob3N0KSwKKyAgICAgICAgICAgICAgICAgICJ7fS5r
ZXkiLmZvcm1hdChob3N0KSksIHdpdGhfbW9uaXRvcj1UcnVlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi9leGFtcGxlcy9ldmVudGxldC9ldmVudGxldC1zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVz
L2V2ZW50bGV0L2V2ZW50bGV0LXNlcnZlci5weQppbmRleCBmZjM0ZTJmOWNjZGE1ZWQzNDI3YjI3
YzM2MGU5NmI3ZmZlMTBhYTQxLi5hNDZjZmIzZDE1ODI3OGJhYTQyYzA4OTM0NjQ0MDAxYjQ1MGE3
OTY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2V2ZW50bGV0L2V2ZW50bGV0LXNlcnZl
ci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2V2ZW50bGV0L2V2ZW50bGV0LXNlcnZlci5weQpA
QCAtNTEsNyArNTEsNyBAQCBjbGFzcyBDb25uZWN0aW9uTWFuYWdlcihvYmplY3QpOgogICAgICAg
ICByZXNwb25zZV9oZWFkZXJzID0gKAogICAgICAgICAgICAgKCc6c3RhdHVzJywgJzIwMCcpLAog
ICAgICAgICAgICAgKCdjb250ZW50LXR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpLAotICAgICAg
ICAgICAgKCdjb250ZW50LWxlbmd0aCcsIGxlbihkYXRhKSksCisgICAgICAgICAgICAoJ2NvbnRl
bnQtbGVuZ3RoJywgc3RyKGxlbihkYXRhKSkpLAogICAgICAgICAgICAgKCdzZXJ2ZXInLCAnZXZl
bnRsZXQtaDInKSwKICAgICAgICAgKQogICAgICAgICBzZWxmLmNvbm4uc2VuZF9oZWFkZXJzKHN0
cmVhbV9pZCwgcmVzcG9uc2VfaGVhZGVycykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMv
ZnJhZ21lbnRzL2NsaWVudF9odHRwc19zZXR1cF9mcmFnbWVudC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBs
ZXMvZnJhZ21lbnRzL2NsaWVudF9odHRwc19zZXR1cF9mcmFnbWVudC5weQppbmRleCA5OTU4YzFi
ZDcyNjcwYzhjMWJhYTQxMjE0OTVmMzJmNDk4ZGM5OTZjLi4yNjkxOTRkNmM3NzBjZDNhZTAwMTMx
MTY0YTJjMWJlODgyYmEwMDc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50
cy9jbGllbnRfaHR0cHNfc2V0dXBfZnJhZ21lbnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9m
cmFnbWVudHMvY2xpZW50X2h0dHBzX3NldHVwX2ZyYWdtZW50LnB5CkBAIC00OCw3ICs0OCw3IEBA
IGRlZiBnZXRfaHR0cDJfc3NsX2NvbnRleHQoKToKIAogICAgICMgUkZDIDc1NDAgU2VjdGlvbiA5
LjIuMjogImRlcGxveW1lbnRzIG9mIEhUVFAvMiB0aGF0IHVzZSBUTFMgMS4yIE1VU1QKICAgICAj
IHN1cHBvcnQgVExTX0VDREhFX1JTQV9XSVRIX0FFU18xMjhfR0NNX1NIQTI1NiIuIEluIHByYWN0
aWNlLCB0aGUKLSAgICAjIGJsYWNrbGlzdCBkZWZpbmVkIGluIHRoaXMgc2VjdGlvbiBhbGxvd3Mg
b25seSB0aGUgQUVTIEdDTSBhbmQgQ2hhQ2hhMjAKKyAgICAjIGJsb2NrbGlzdCBkZWZpbmVkIGlu
IHRoaXMgc2VjdGlvbiBhbGxvd3Mgb25seSB0aGUgQUVTIEdDTSBhbmQgQ2hhQ2hhMjAKICAgICAj
IGNpcGhlciBzdWl0ZXMgd2l0aCBlcGhlbWVyYWwga2V5IG5lZ290aWF0aW9uLgogICAgIGN0eC5z
ZXRfY2lwaGVycygiRUNESEUrQUVTR0NNOkVDREhFK0NIQUNIQTIwOkRIRStBRVNHQ006REhFK0NI
QUNIQTIwIikKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9mcmFnbWVudHMvY2xpZW50
X3VwZ3JhZGVfZnJhZ21lbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9jbGllbnRf
dXBncmFkZV9mcmFnbWVudC5weQppbmRleCAzNGZmMjk4Y2Q5N2Q3MTg5MTNkMDYyYjY0ZjM5MmE3
MmMwYmJhZjRjLi5mNDVjMDAyZGY3NDYzYjk2MjE3M2FlYTJkOTI3ZGJkYjhjNzVlMDM3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9jbGllbnRfdXBncmFkZV9mcmFnbWVu
dC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9jbGllbnRfdXBncmFkZV9mcmFn
bWVudC5weQpAQCAtMzgsNyArMzgsNyBAQCBkZWYgc2VuZF9pbml0aWFsX3JlcXVlc3QoY29ubmVj
dGlvbiwgc2V0dGluZ3MpOgogICAgICAgICBiIkdFVCAvIEhUVFAvMS4xXHJcbiIgKwogICAgICAg
ICBiIkhvc3Q6IGxvY2FsaG9zdFxyXG4iICsKICAgICAgICAgYiJVcGdyYWRlOiBoMmNcclxuIiAr
Ci0gICAgICAgIGIiSFRUUDItU2V0dGluZ3M6ICIgKyBzZXR0aW5ncyArICJcclxuIgorICAgICAg
ICBiIkhUVFAyLVNldHRpbmdzOiAiICsgc2V0dGluZ3MgKyBiIlxyXG4iICsKICAgICAgICAgYiJc
clxuIgogICAgICkKICAgICBjb25uZWN0aW9uLnNlbmRhbGwocmVxdWVzdCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL3NlcnZlcl9odHRwc19zZXR1cF9mcmFnbWVudC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL3NlcnZlcl9odHRwc19zZXR1cF9mcmFnbWVu
dC5weQppbmRleCAxNGVjMGVmMjM3ZGUwMzNhOWE4N2IwMzNhZGE0ZGZhYjA5MjdkMWVmLi45ZmMz
NjFmMmM2MjI5YWZhNzBiNTY0MmI3ZmFhYzRmNGNkYmVkZmQ3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2V4YW1wbGVzL2ZyYWdtZW50cy9zZXJ2ZXJfaHR0cHNfc2V0dXBfZnJhZ21lbnQucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9leGFtcGxlcy9mcmFnbWVudHMvc2VydmVyX2h0dHBzX3NldHVwX2ZyYWdtZW50LnB5
CkBAIC01MSw3ICs1MSw3IEBAIGRlZiBnZXRfaHR0cDJfc3NsX2NvbnRleHQoKToKIAogICAgICMg
UkZDIDc1NDAgU2VjdGlvbiA5LjIuMjogImRlcGxveW1lbnRzIG9mIEhUVFAvMiB0aGF0IHVzZSBU
TFMgMS4yIE1VU1QKICAgICAjIHN1cHBvcnQgVExTX0VDREhFX1JTQV9XSVRIX0FFU18xMjhfR0NN
X1NIQTI1NiIuIEluIHByYWN0aWNlLCB0aGUKLSAgICAjIGJsYWNrbGlzdCBkZWZpbmVkIGluIHRo
aXMgc2VjdGlvbiBhbGxvd3Mgb25seSB0aGUgQUVTIEdDTSBhbmQgQ2hhQ2hhMjAKKyAgICAjIGJs
b2NrbGlzdCBkZWZpbmVkIGluIHRoaXMgc2VjdGlvbiBhbGxvd3Mgb25seSB0aGUgQUVTIEdDTSBh
bmQgQ2hhQ2hhMjAKICAgICAjIGNpcGhlciBzdWl0ZXMgd2l0aCBlcGhlbWVyYWwga2V5IG5lZ290
aWF0aW9uLgogICAgIGN0eC5zZXRfY2lwaGVycygiRUNESEUrQUVTR0NNOkVDREhFK0NIQUNIQTIw
OkRIRStBRVNHQ006REhFK0NIQUNIQTIwIikKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxl
cy9mcmFnbWVudHMvc2VydmVyX3VwZ3JhZGVfZnJhZ21lbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVz
L2ZyYWdtZW50cy9zZXJ2ZXJfdXBncmFkZV9mcmFnbWVudC5weQppbmRleCA1Yjc3YzA1ZmUwZDg4
NmY1MWM5OGY4MWZmYmMwZTkzYzBhNmE1ZTZjLi43ZThiMWYwZWVhODA5NzFjMGY2YmVlNWEwNDNl
MzY0N2VjNTgyMjVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9zZXJ2
ZXJfdXBncmFkZV9mcmFnbWVudC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9z
ZXJ2ZXJfdXBncmFkZV9mcmFnbWVudC5weQpAQCAtNDUsMTQgKzQ1LDE0IEBAIGRlZiByZWNlaXZl
X2luaXRpYWxfcmVxdWVzdChjb25uZWN0aW9uKToKICAgICAgICAgZGF0YSArPSBjb25uZWN0aW9u
LnJlY3YoODE5MikKIAogICAgIG1hdGNoID0gcmUuc2VhcmNoKGInVXBncmFkZTogaDJjXHJcbics
IGRhdGEpCi0gICAgaWYgbWF0Y2ggaXMgbm90IE5vbmU6CisgICAgaWYgbWF0Y2ggaXMgTm9uZToK
ICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJIVFRQLzIgdXBncmFkZSBub3QgcmVxdWVzdGVk
ISIpCiAKICAgICAjIFdlIG5lZWQgdG8gbG9vayBmb3IgdGhlIEhUVFAyLVNldHRpbmdzIGhlYWRl
ciBmaWVsZC4gQWdhaW4sIGluIHByb2R1Y3Rpb24KICAgICAjIGNvZGUgeW91IHNob3VsZG4ndCB1
c2UgcmVndWxhciBleHByZXNzaW9ucyBmb3IgdGhpcywgYnV0IGl0J3MgZ29vZCBlbm91Z2gKICAg
ICAjIGZvciB0aGUgZXhhbXBsZS4KICAgICBtYXRjaCA9IHJlLnNlYXJjaChiJ0hUVFAyLVNldHRp
bmdzOiAoXFxTKylcclxuJywgZGF0YSkKLSAgICBpZiBtYXRjaCBpcyBub3QgTm9uZToKKyAgICBp
ZiBtYXRjaCBpcyBOb25lOgogICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIkhUVFAyLVNldHRp
bmdzIGhlYWRlciBmaWVsZCBub3QgcHJlc2VudCEiKQogCiAgICAgcmV0dXJuIG1hdGNoLmdyb3Vw
KDEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQvaGVhZF9yZXF1ZXN0LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL2hlYWRfcmVxdWVzdC5weQppbmRleCA3MmZlNWY4
ODkxOGI2NGJmOTRhYTYxNDQyZmNmM2U5Y2ZkMzRjMTMxLi40YTc1MzgwMjRhOTU4YzgwZTY4MTc2
MjQ2N2Q4ZDkxYTNhN2VjNDIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQv
aGVhZF9yZXF1ZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdHdpc3RlZC9oZWFkX3JlcXVl
c3QucHkKQEAgLTIzLDggKzIzLDggQEAgZnJvbSBoMi5ldmVudHMgaW1wb3J0ICgKICkKIAogCi1B
VVRIT1JJVFkgPSB1J2h0dHAyYmluLm9yZycKLVBBVEggPSAnLycKK0FVVEhPUklUWSA9IHUnbmdo
dHRwMi5vcmcnCitQQVRIID0gJy9odHRwYmluLycKIFNJWkUgPSA0MDk2CiAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL3Bvc3RfcmVxdWVzdC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhh
bXBsZXMvdHdpc3RlZC9wb3N0X3JlcXVlc3QucHkKaW5kZXggNzQ2ZjEzMjY2YTI4ZTRiZTAzZGZj
ZTViZDAxMDQ4ZGQwNjRmMzczMy4uYzgxN2JhYzQ2NWZiNGYxMmY1MmFmMGJiYWZjZTBiMzJiMDM1
NzViMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL3Bvc3RfcmVxdWVzdC5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQvcG9zdF9yZXF1ZXN0LnB5CkBAIC0zMCw4
ICszMCw4IEBAIGZyb20gaDIuZXZlbnRzIGltcG9ydCAoCiApCiAKIAotQVVUSE9SSVRZID0gdSdo
dHRwMmJpbi5vcmcnCi1QQVRIID0gJy9wb3N0JworQVVUSE9SSVRZID0gdSduZ2h0dHAyLm9yZycK
K1BBVEggPSAnL2h0dHBiaW4vcG9zdCcKIAogCiBjbGFzcyBIMlByb3RvY29sKFByb3RvY29sKToK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdHdpc3RlZC90d2lzdGVkLXNlcnZlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvZXhhbXBsZXMvdHdpc3RlZC90d2lzdGVkLXNlcnZlci5weQppbmRleCA3Y2RlNjA5
ZGIwY2I1MmJlMTVhNDU1ZTFjZGJhMzU2OWE3N2E0ZmQ2Li43NWEyNzFkOWI3OWRhOGUyY2Y3MTYz
NmYzMzgyNTQ1NDJhYmVhZmJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQv
dHdpc3RlZC1zZXJ2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL3R3aXN0ZWQt
c2VydmVyLnB5CkBAIC0yMCw2ICsyMCw3IEBAIGZyb20gaDIuY29ubmVjdGlvbiBpbXBvcnQgSDJD
b25uZWN0aW9uCiBmcm9tIGgyLmV2ZW50cyBpbXBvcnQgKAogICAgIFJlcXVlc3RSZWNlaXZlZCwg
RGF0YVJlY2VpdmVkLCBXaW5kb3dVcGRhdGVkCiApCitmcm9tIGgyLmV4Y2VwdGlvbnMgaW1wb3J0
IFByb3RvY29sRXJyb3IKIAogCiBkZWYgY2xvc2VfZmlsZShmaWxlLCBkKToKQEAgLTQ2LDE3ICs0
NywyMyBAQCBjbGFzcyBIMlByb3RvY29sKFByb3RvY29sKToKICAgICAgICAgaWYgbm90IHNlbGYu
a25vd25fcHJvdG86CiAgICAgICAgICAgICBzZWxmLmtub3duX3Byb3RvID0gVHJ1ZQogCi0gICAg
ICAgIGV2ZW50cyA9IHNlbGYuY29ubi5yZWNlaXZlX2RhdGEoZGF0YSkKLSAgICAgICAgaWYgc2Vs
Zi5jb25uLmRhdGFfdG9fc2VuZDoKLSAgICAgICAgICAgIHNlbGYudHJhbnNwb3J0LndyaXRlKHNl
bGYuY29ubi5kYXRhX3RvX3NlbmQoKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZXZlbnRz
ID0gc2VsZi5jb25uLnJlY2VpdmVfZGF0YShkYXRhKQorICAgICAgICBleGNlcHQgUHJvdG9jb2xF
cnJvcjoKKyAgICAgICAgICAgIGlmIHNlbGYuY29ubi5kYXRhX3RvX3NlbmQ6CisgICAgICAgICAg
ICAgICAgc2VsZi50cmFuc3BvcnQud3JpdGUoc2VsZi5jb25uLmRhdGFfdG9fc2VuZCgpKQorICAg
ICAgICAgICAgc2VsZi50cmFuc3BvcnQubG9zZUNvbm5lY3Rpb24oKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgZm9yIGV2ZW50IGluIGV2ZW50czoKKyAgICAgICAgICAgICAgICBpZiBpc2lu
c3RhbmNlKGV2ZW50LCBSZXF1ZXN0UmVjZWl2ZWQpOgorICAgICAgICAgICAgICAgICAgICBzZWxm
LnJlcXVlc3RSZWNlaXZlZChldmVudC5oZWFkZXJzLCBldmVudC5zdHJlYW1faWQpCisgICAgICAg
ICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBEYXRhUmVjZWl2ZWQpOgorICAgICAgICAg
ICAgICAgICAgICBzZWxmLmRhdGFGcmFtZVJlY2VpdmVkKGV2ZW50LnN0cmVhbV9pZCkKKyAgICAg
ICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQsIFdpbmRvd1VwZGF0ZWQpOgorICAgICAg
ICAgICAgICAgICAgICBzZWxmLndpbmRvd1VwZGF0ZWQoZXZlbnQpCiAKLSAgICAgICAgZm9yIGV2
ZW50IGluIGV2ZW50czoKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXZlbnQsIFJlcXVlc3RS
ZWNlaXZlZCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0UmVjZWl2ZWQoZXZlbnQuaGVh
ZGVycywgZXZlbnQuc3RyZWFtX2lkKQotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50
LCBEYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAgICAgIHNlbGYuZGF0YUZyYW1lUmVjZWl2ZWQo
ZXZlbnQuc3RyZWFtX2lkKQotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBXaW5k
b3dVcGRhdGVkKToKLSAgICAgICAgICAgICAgICBzZWxmLndpbmRvd1VwZGF0ZWQoZXZlbnQpCisg
ICAgICAgICAgICBpZiBzZWxmLmNvbm4uZGF0YV90b19zZW5kOgorICAgICAgICAgICAgICAgIHNl
bGYudHJhbnNwb3J0LndyaXRlKHNlbGYuY29ubi5kYXRhX3RvX3NlbmQoKSkKIAogICAgIGRlZiBy
ZXF1ZXN0UmVjZWl2ZWQoc2VsZiwgaGVhZGVycywgc3RyZWFtX2lkKToKICAgICAgICAgaGVhZGVy
cyA9IGRpY3QoaGVhZGVycykgICMgSW52YWxpZCBjb252ZXJzaW9uLCBmaXggbGF0ZXIuCkBAIC04
Niw3ICs5Myw5IEBAIGNsYXNzIEgyUHJvdG9jb2woUHJvdG9jb2wpOgogCiAgICAgZGVmIHNlbmRG
aWxlKHNlbGYsIGZpbGVfcGF0aCwgc3RyZWFtX2lkKToKICAgICAgICAgZmlsZXNpemUgPSBvcy5z
dGF0KGZpbGVfcGF0aCkuc3Rfc2l6ZQotICAgICAgICBjb250ZW50X3R5cGUsIGNvbnRlbnRfZW5j
b2RpbmcgPSBtaW1ldHlwZXMuZ3Vlc3NfdHlwZShmaWxlX3BhdGgpCisgICAgICAgIGNvbnRlbnRf
dHlwZSwgY29udGVudF9lbmNvZGluZyA9IG1pbWV0eXBlcy5ndWVzc190eXBlKAorICAgICAgICAg
ICAgZmlsZV9wYXRoLmRlY29kZSgndXRmLTgnKQorICAgICAgICApCiAgICAgICAgIHJlc3BvbnNl
X2hlYWRlcnMgPSBbCiAgICAgICAgICAgICAoJzpzdGF0dXMnLCAnMjAwJyksCiAgICAgICAgICAg
ICAoJ2NvbnRlbnQtbGVuZ3RoJywgc3RyKGZpbGVzaXplKSksCkBAIC0xNTksMTAgKzE2OCwxMSBA
QCBjbGFzcyBIMkZhY3RvcnkoRmFjdG9yeSk6CiAgICAgICAgIHNlbGYucm9vdCA9IHJvb3QKIAog
ICAgIGRlZiBidWlsZFByb3RvY29sKHNlbGYsIGFkZHIpOgorICAgICAgICBwcmludChIMlByb3Rv
Y29sKQogICAgICAgICByZXR1cm4gSDJQcm90b2NvbChzZWxmLnJvb3QpCiAKIAotcm9vdCA9IHN5
cy5hcmd2WzFdCityb290ID0gc3lzLmFyZ3ZbMV0uZW5jb2RlKCd1dGYtOCcpCiAKIHdpdGggb3Bl
bignc2VydmVyLmNydCcsICdyJykgYXMgZjoKICAgICBjZXJ0X2RhdGEgPSBmLnJlYWQoKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9oMi9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvX19pbml0X18ucHkK
aW5kZXggMzg4MDVkZDc3MGRkY2MwNzliZmRmYWFiMDEyNGE5YWY1OGQ2MWUyYy4uNjI5MDcxMGU2
MzRkZTc4OWI5NmE0MjcwMTJjY2JlNjA1OTNiZjczYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9f
X2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL19faW5pdF9fLnB5CkBAIC01LDQgKzUsNCBAQCBo
MgogCiBBIEhUVFAvMiBpbXBsZW1lbnRhdGlvbi4KICIiIgotX192ZXJzaW9uX18gPSAnMy4wLjEn
CitfX3ZlcnNpb25fXyA9ICczLjIuMCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvY29uZmlnLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi9oMi9jb25maWcucHkKaW5kZXggMDgxMjlhNDA2NjhlZjU0ZWYxNDE1NjdiODg5
YzI1NzkzM2IxZDI3MC4uMWM0MzdlZTI0Zjg0MzUyM2Q5MGJmNjY4YjEwYWI2NGI1NzEyMDg5YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9oMi9jb25maWcucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9jb25maWcu
cHkKQEAgLTI5LDcgKzI5LDcgQEAgY2xhc3MgRHVtbXlMb2dnZXIob2JqZWN0KToKICAgICAiIiIK
ICAgICBBbiBMb2dnZXIgb2JqZWN0IHRoYXQgZG9lcyBub3QgYWN0dWFsIGxvZ2dpbmcsIGhlbmNl
IGEgRHVtbXlMb2dnZXIuCiAKLSAgICBGb3IgdGhlIGNsYXNzIHRoZSBsb2cgb3BlcmF0aW9uIGlz
IG1lcmVseSBhIG5vLW9wLiAgVGhlIGludGVudCBpcyB0byBhdm9pZAorICAgIEZvciB0aGUgY2xh
c3MgdGhlIGxvZyBvcGVyYXRpb24gaXMgbWVyZWx5IGEgbm8tb3AuIFRoZSBpbnRlbnQgaXMgdG8g
YXZvaWQKICAgICBjb25kaXRpb25hbHMgYmVpbmcgc3ByaW5rbGVkIHRocm91Z2hvdXQgdGhlIGh5
cGVyLWgyIGNvZGUgZm9yIGNhbGxzIHRvCiAgICAgbG9nZ2luZyBmdW5jdGlvbnMgd2hlbiBubyBs
b2dnZXIgaXMgcGFzc2VkIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgb2JqZWN0LgogICAgICIiIgpA
QCAtNDIsNiArNDIsMTIgQEAgY2xhc3MgRHVtbXlMb2dnZXIob2JqZWN0KToKICAgICAgICAgIiIi
CiAgICAgICAgIHBhc3MKIAorICAgIGRlZiB0cmFjZShzZWxmLCAqdmFyZ3MsICoqa3dhcmdzKToK
KyAgICAgICAgIiIiCisgICAgICAgIE5vLW9wIGxvZ2dpbmcuIE9ubHkgbGV2ZWwgbmVlZGVkIGZv
ciBub3cuCisgICAgICAgICIiIgorICAgICAgICBwYXNzCisKIAogY2xhc3MgSDJDb25maWd1cmF0
aW9uKG9iamVjdCk6CiAgICAgIiIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2Nvbm5lY3Rpb24u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL2gyL2Nvbm5lY3Rpb24ucHkKaW5kZXggNDQwNTE4M2U4NjY5MjVmNDdiNzE2
N2MyYjg2MWIzNTNkYzVjMmZmNy4uMzVlNmZkNmRhODg5MzZhOWQxMGM4ZTgzOWI2MTNmZDYzMWVi
M2JlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9jb25uZWN0aW9uLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
aDIvY29ubmVjdGlvbi5weQpAQCAtMjEsNyArMjEsNyBAQCBmcm9tIGhwYWNrLmV4Y2VwdGlvbnMg
aW1wb3J0IEhQQUNLRXJyb3IsIE92ZXJzaXplZEhlYWRlckxpc3RFcnJvcgogZnJvbSAuY29uZmln
IGltcG9ydCBIMkNvbmZpZ3VyYXRpb24KIGZyb20gLmVycm9ycyBpbXBvcnQgRXJyb3JDb2Rlcywg
X2Vycm9yX2NvZGVfZnJvbV9pbnQKIGZyb20gLmV2ZW50cyBpbXBvcnQgKAotICAgIFdpbmRvd1Vw
ZGF0ZWQsIFJlbW90ZVNldHRpbmdzQ2hhbmdlZCwgUGluZ0Fja25vd2xlZGdlZCwKKyAgICBXaW5k
b3dVcGRhdGVkLCBSZW1vdGVTZXR0aW5nc0NoYW5nZWQsIFBpbmdSZWNlaXZlZCwgUGluZ0Fja1Jl
Y2VpdmVkLAogICAgIFNldHRpbmdzQWNrbm93bGVkZ2VkLCBDb25uZWN0aW9uVGVybWluYXRlZCwg
UHJpb3JpdHlVcGRhdGVkLAogICAgIEFsdGVybmF0aXZlU2VydmljZUF2YWlsYWJsZSwgVW5rbm93
bkZyYW1lUmVjZWl2ZWQKICkKQEAgLTMzLDcgKzMzLDcgQEAgZnJvbSAuZXhjZXB0aW9ucyBpbXBv
cnQgKAogZnJvbSAuZnJhbWVfYnVmZmVyIGltcG9ydCBGcmFtZUJ1ZmZlcgogZnJvbSAuc2V0dGlu
Z3MgaW1wb3J0IFNldHRpbmdzLCBTZXR0aW5nQ29kZXMKIGZyb20gLnN0cmVhbSBpbXBvcnQgSDJT
dHJlYW0sIFN0cmVhbUNsb3NlZEJ5Ci1mcm9tIC51dGlsaXRpZXMgaW1wb3J0IGd1YXJkX2luY3Jl
bWVudF93aW5kb3cKK2Zyb20gLnV0aWxpdGllcyBpbXBvcnQgU2l6ZUxpbWl0RGljdCwgZ3VhcmRf
aW5jcmVtZW50X3dpbmRvdwogZnJvbSAud2luZG93cyBpbXBvcnQgV2luZG93TWFuYWdlcgogCiAK
QEAgLTI4MSw2ICsyODEsOSBAQCBjbGFzcyBIMkNvbm5lY3Rpb24ob2JqZWN0KToKICAgICAjIFRo
ZSBpbml0aWFsIGRlZmF1bHQgdmFsdWUgb2YgU0VUVElOR1NfTUFYX0hFQURFUl9MSVNUX1NJWkUu
CiAgICAgREVGQVVMVF9NQVhfSEVBREVSX0xJU1RfU0laRSA9IDIqKjE2CiAKKyAgICAjIEtlZXAg
aW4gbWVtb3J5IGxpbWl0ZWQgYW1vdW50IG9mIHJlc3VsdHMgZm9yIHN0cmVhbXMgY2xvc2VzCisg
ICAgTUFYX0NMT1NFRF9TVFJFQU1TID0gMioqMTYKKwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBj
b25maWc9Tm9uZSk6CiAgICAgICAgIHNlbGYuc3RhdGVfbWFjaGluZSA9IEgyQ29ubmVjdGlvblN0
YXRlTWFjaGluZSgpCiAgICAgICAgIHNlbGYuc3RyZWFtcyA9IHt9CkBAIC0zMjUsNyArMzI4LDcg
QEAgY2xhc3MgSDJDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAgc2VsZi5y
ZW1vdGVfc2V0dGluZ3MgPSBTZXR0aW5ncyhjbGllbnQ9bm90IHNlbGYuY29uZmlnLmNsaWVudF9z
aWRlKQogCi0gICAgICAgICMgVGhlIGN1cmVudCB2YWx1ZSBvZiB0aGUgY29ubmVjdGlvbiBmbG93
IGNvbnRyb2wgd2luZG93cyBvbiB0aGUKKyAgICAgICAgIyBUaGUgY3VycmVudCB2YWx1ZSBvZiB0
aGUgY29ubmVjdGlvbiBmbG93IGNvbnRyb2wgd2luZG93cyBvbiB0aGUKICAgICAgICAgIyBjb25u
ZWN0aW9uLgogICAgICAgICBzZWxmLm91dGJvdW5kX2Zsb3dfY29udHJvbF93aW5kb3cgPSAoCiAg
ICAgICAgICAgICBzZWxmLnJlbW90ZV9zZXR0aW5ncy5pbml0aWFsX3dpbmRvd19zaXplCkBAIC0z
NDcsNyArMzUwLDcgQEAgY2xhc3MgSDJDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIHNlbGYu
X2hlYWRlcl9mcmFtZXMgPSBbXQogCiAgICAgICAgICMgRGF0YSB0aGF0IG5lZWRzIHRvIGJlIHNl
bnQuCi0gICAgICAgIHNlbGYuX2RhdGFfdG9fc2VuZCA9IGInJworICAgICAgICBzZWxmLl9kYXRh
X3RvX3NlbmQgPSBieXRlYXJyYXkoKQogCiAgICAgICAgICMgS2VlcHMgdHJhY2sgb2YgaG93IHN0
cmVhbXMgYXJlIGNsb3NlZC4KICAgICAgICAgIyBVc2VkIHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0
IGJsb3cgdXAgaW4gdGhlIGZhY2Ugb2YgZnJhbWVzIHRoYXQgd2VyZQpAQCAtMzU1LDcgKzM1OCw5
IEBAIGNsYXNzIEgyQ29ubmVjdGlvbihvYmplY3QpOgogICAgICAgICAjIEFsc28gdXNlZCB0byBk
ZXRlcm1pbmUgd2hldGhlciB3ZSBzaG91bGQgY29uc2lkZXIgYSBmcmFtZSByZWNlaXZlZAogICAg
ICAgICAjIHdoaWxlIGEgc3RyZWFtIGlzIGNsb3NlZCBhcyBlaXRoZXIgYSBzdHJlYW0gZXJyb3Ig
b3IgYSBjb25uZWN0aW9uCiAgICAgICAgICMgZXJyb3IuCi0gICAgICAgIHNlbGYuX2Nsb3NlZF9z
dHJlYW1zID0ge30KKyAgICAgICAgc2VsZi5fY2xvc2VkX3N0cmVhbXMgPSBTaXplTGltaXREaWN0
KAorICAgICAgICAgICAgc2l6ZV9saW1pdD1zZWxmLk1BWF9DTE9TRURfU1RSRUFNUworICAgICAg
ICApCiAKICAgICAgICAgIyBUaGUgZmxvdyBjb250cm9sIHdpbmRvdyBtYW5hZ2VyIGZvciB0aGUg
Y29ubmVjdGlvbi4KICAgICAgICAgc2VsZi5faW5ib3VuZF9mbG93X2NvbnRyb2xfd2luZG93X21h
bmFnZXIgPSBXaW5kb3dNYW5hZ2VyKApAQCAtOTA5LDE2ICs5MTQsMjEgQEAgY2xhc3MgSDJDb25u
ZWN0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICBmcmFtZXMgPSBzdHJlYW0uaW5jcmVhc2VfZmxv
d19jb250cm9sX3dpbmRvdygKICAgICAgICAgICAgICAgICBpbmNyZW1lbnQKICAgICAgICAgICAg
ICkKKworICAgICAgICAgICAgc2VsZi5jb25maWcubG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAg
ICAgICJJbmNyZWFzZSBzdHJlYW0gSUQgJWQgZmxvdyBjb250cm9sIHdpbmRvdyBieSAlZCIsCisg
ICAgICAgICAgICAgICAgc3RyZWFtX2lkLCBpbmNyZW1lbnQKKyAgICAgICAgICAgICkKICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX2luYm91bmRfZmxvd19jb250cm9sX3dpbmRvd19t
YW5hZ2VyLndpbmRvd19vcGVuZWQoaW5jcmVtZW50KQogICAgICAgICAgICAgZiA9IFdpbmRvd1Vw
ZGF0ZUZyYW1lKDApCiAgICAgICAgICAgICBmLndpbmRvd19pbmNyZW1lbnQgPSBpbmNyZW1lbnQK
ICAgICAgICAgICAgIGZyYW1lcyA9IFtmXQogCi0gICAgICAgIHNlbGYuY29uZmlnLmxvZ2dlci5k
ZWJ1ZygKLSAgICAgICAgICAgICJJbmNyZWFzZSBzdHJlYW0gSUQgJWQgZmxvdyBjb250cm9sIHdp
bmRvdyBieSAlZCIsCi0gICAgICAgICAgICBzdHJlYW1faWQsIGluY3JlbWVudAotICAgICAgICAp
CisgICAgICAgICAgICBzZWxmLmNvbmZpZy5sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAg
IkluY3JlYXNlIGNvbm5lY3Rpb24gZmxvdyBjb250cm9sIHdpbmRvdyBieSAlZCIsIGluY3JlbWVu
dAorICAgICAgICAgICAgKQorCiAgICAgICAgIHNlbGYuX3ByZXBhcmVfZm9yX3NlbmRpbmcoZnJh
bWVzKQogCiAgICAgZGVmIHB1c2hfc3RyZWFtKHNlbGYsIHN0cmVhbV9pZCwgcHJvbWlzZWRfc3Ry
ZWFtX2lkLCByZXF1ZXN0X2hlYWRlcnMpOgpAQCAtMTMyNyw3ICsxMzM3LDcgQEAgY2xhc3MgSDJD
b25uZWN0aW9uKG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5fcHJlcGFyZV9mb3Jfc2VuZGluZyhm
cmFtZXMpCiAKLSAgICBkZWYgZGF0YV90b19zZW5kKHNlbGYsIGFtdD1Ob25lKToKKyAgICBkZWYg
ZGF0YV90b19zZW5kKHNlbGYsIGFtb3VudD1Ob25lKToKICAgICAgICAgIiIiCiAgICAgICAgIFJl
dHVybnMgc29tZSBkYXRhIGZvciBzZW5kaW5nIG91dCBvZiB0aGUgaW50ZXJuYWwgZGF0YSBidWZm
ZXIuCiAKQEAgLTEzMzYsMTkgKzEzNDYsMTkgQEAgY2xhc3MgSDJDb25uZWN0aW9uKG9iamVjdCk6
CiAgICAgICAgIG9yIGxlc3MgaWYgdGhhdCBtdWNoIGRhdGEgaXMgbm90IGF2YWlsYWJsZS4gSXQg
ZG9lcyBub3QgcGVyZm9ybSBhbnkKICAgICAgICAgSS9PLCBhbmQgc28gdXNlcyBhIGRpZmZlcmVu
dCBuYW1lLgogCi0gICAgICAgIDpwYXJhbSBhbXQ6IChvcHRpb25hbCkgVGhlIG1heGltdW0gYW1v
dW50IG9mIGRhdGEgdG8gcmV0dXJuLiBJZiBub3QKKyAgICAgICAgOnBhcmFtIGFtb3VudDogKG9w
dGlvbmFsKSBUaGUgbWF4aW11bSBhbW91bnQgb2YgZGF0YSB0byByZXR1cm4uIElmIG5vdAogICAg
ICAgICAgICAgc2V0LCBvciBzZXQgdG8gYGBOb25lYGAsIHdpbGwgcmV0dXJuIGFzIG11Y2ggZGF0
YSBhcyBwb3NzaWJsZS4KLSAgICAgICAgOnR5cGUgYW10OiBgYGludGBgCisgICAgICAgIDp0eXBl
IGFtb3VudDogYGBpbnRgYAogICAgICAgICA6cmV0dXJuczogQSBieXRlc3RyaW5nIGNvbnRhaW5p
bmcgdGhlIGRhdGEgdG8gc2VuZCBvbiB0aGUgd2lyZS4KICAgICAgICAgOnJ0eXBlOiBgYGJ5dGVz
YGAKICAgICAgICAgIiIiCi0gICAgICAgIGlmIGFtdCBpcyBOb25lOgotICAgICAgICAgICAgZGF0
YSA9IHNlbGYuX2RhdGFfdG9fc2VuZAotICAgICAgICAgICAgc2VsZi5fZGF0YV90b19zZW5kID0g
YicnCisgICAgICAgIGlmIGFtb3VudCBpcyBOb25lOgorICAgICAgICAgICAgZGF0YSA9IGJ5dGVz
KHNlbGYuX2RhdGFfdG9fc2VuZCkKKyAgICAgICAgICAgIHNlbGYuX2RhdGFfdG9fc2VuZCA9IGJ5
dGVhcnJheSgpCiAgICAgICAgICAgICByZXR1cm4gZGF0YQogICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgZGF0YSA9IHNlbGYuX2RhdGFfdG9fc2VuZFs6YW10XQotICAgICAgICAgICAgc2VsZi5f
ZGF0YV90b19zZW5kID0gc2VsZi5fZGF0YV90b19zZW5kW2FtdDpdCisgICAgICAgICAgICBkYXRh
ID0gYnl0ZXMoc2VsZi5fZGF0YV90b19zZW5kWzphbW91bnRdKQorICAgICAgICAgICAgc2VsZi5f
ZGF0YV90b19zZW5kID0gc2VsZi5fZGF0YV90b19zZW5kW2Ftb3VudDpdCiAgICAgICAgICAgICBy
ZXR1cm4gZGF0YQogCiAgICAgZGVmIGNsZWFyX291dGJvdW5kX2RhdGFfYnVmZmVyKHNlbGYpOgpA
QCAtMTM2MSw3ICsxMzcxLDcgQEAgY2xhc3MgSDJDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAg
IFRoaXMgbWV0aG9kIHNob3VsZCBub3Qgbm9ybWFsbHkgYmUgdXNlZCwgYnV0IGlzIG1hZGUgYXZh
aWxhYmxlIHRvIGF2b2lkCiAgICAgICAgIGV4cG9zaW5nIGltcGxlbWVudGF0aW9uIGRldGFpbHMu
CiAgICAgICAgICIiIgotICAgICAgICBzZWxmLl9kYXRhX3RvX3NlbmQgPSBiJycKKyAgICAgICAg
c2VsZi5fZGF0YV90b19zZW5kID0gYnl0ZWFycmF5KCkKIAogICAgIGRlZiBfYWNrbm93bGVkZ2Vf
c2V0dGluZ3Moc2VsZik6CiAgICAgICAgICIiIgpAQCAtMTQ0MCw3ICsxNDUwLDcgQEAgY2xhc3Mg
SDJDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIDpyZXR1cm5zOiBBIGxpc3Qgb2YgZXZlbnRz
IHRoYXQgdGhlIHJlbW90ZSBwZWVyIHRyaWdnZXJlZCBieSBzZW5kaW5nCiAgICAgICAgICAgICB0
aGlzIGRhdGEuCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLmNvbmZpZy5sb2dnZXIuZGVidWco
CisgICAgICAgIHNlbGYuY29uZmlnLmxvZ2dlci50cmFjZSgKICAgICAgICAgICAgICJQcm9jZXNz
IHJlY2VpdmVkIGRhdGEgb24gY29ubmVjdGlvbi4gUmVjZWl2ZWQgZGF0YTogJXIiLCBkYXRhCiAg
ICAgICAgICkKIApAQCAtMTYyNCw2ICsxNjM0LDM1IEBAIGNsYXNzIEgyQ29ubmVjdGlvbihvYmpl
Y3QpOgogCiAgICAgICAgIHJldHVybiBmcmFtZXMsIGV2ZW50cyArIHN0cmVhbV9ldmVudHMKIAor
ICAgIGRlZiBfaGFuZGxlX2RhdGFfb25fY2xvc2VkX3N0cmVhbShzZWxmLCBldmVudHMsIGV4Yywg
ZnJhbWUpOgorICAgICAgICAjIFRoaXMgc3RyZWFtIGlzIGFscmVhZHkgY2xvc2VkIC0gYW5kIHll
dCB3ZSByZWNlaXZlZCBhIERBVEEgZnJhbWUuCisgICAgICAgICMgVGhlIHJlY2VpdmVkIERBVEEg
ZnJhbWUgY291bnRzIHRvd2FyZHMgdGhlIGNvbm5lY3Rpb24gZmxvdyB3aW5kb3cuCisgICAgICAg
ICMgV2UgbmVlZCB0byBtYW51YWxseSB0byBhY2tub3dsZWRnZSB0aGUgREFUQSBmcmFtZSB0byB1
cGRhdGUgdGhlIGZsb3cKKyAgICAgICAgIyB3aW5kb3cgb2YgdGhlIGNvbm5lY3Rpb24uIE90aGVy
d2lzZSB0aGUgd2hvbGUgY29ubmVjdGlvbiBzdGFsbHMgZHVlCisgICAgICAgICMgdGhlIGluYm91
bmQgZmxvdyB3aW5kb3cgYmVpbmcgMC4KKyAgICAgICAgZnJhbWVzID0gW10KKyAgICAgICAgY29u
bl9tYW5hZ2VyID0gc2VsZi5faW5ib3VuZF9mbG93X2NvbnRyb2xfd2luZG93X21hbmFnZXIKKyAg
ICAgICAgY29ubl9pbmNyZW1lbnQgPSBjb25uX21hbmFnZXIucHJvY2Vzc19ieXRlcygKKyAgICAg
ICAgICAgIGZyYW1lLmZsb3dfY29udHJvbGxlZF9sZW5ndGgKKyAgICAgICAgKQorICAgICAgICBp
ZiBjb25uX2luY3JlbWVudDoKKyAgICAgICAgICAgIGYgPSBXaW5kb3dVcGRhdGVGcmFtZSgwKQor
ICAgICAgICAgICAgZi53aW5kb3dfaW5jcmVtZW50ID0gY29ubl9pbmNyZW1lbnQKKyAgICAgICAg
ICAgIGZyYW1lcy5hcHBlbmQoZikKKyAgICAgICAgICAgIHNlbGYuY29uZmlnLmxvZ2dlci5kZWJ1
ZygKKyAgICAgICAgICAgICAgICAiUmVjZWl2ZWQgREFUQSBmcmFtZSBvbiBjbG9zZWQgc3RyZWFt
ICVkIC0gIgorICAgICAgICAgICAgICAgICJhdXRvLWVtaXR0ZWQgYSBXSU5ET1dfVVBEQVRFIGJ5
ICVkIiwKKyAgICAgICAgICAgICAgICBmcmFtZS5zdHJlYW1faWQsIGNvbm5faW5jcmVtZW50Cisg
ICAgICAgICAgICApCisgICAgICAgIGYgPSBSc3RTdHJlYW1GcmFtZShleGMuc3RyZWFtX2lkKQor
ICAgICAgICBmLmVycm9yX2NvZGUgPSBleGMuZXJyb3JfY29kZQorICAgICAgICBmcmFtZXMuYXBw
ZW5kKGYpCisgICAgICAgIHNlbGYuY29uZmlnLmxvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICJT
dHJlYW0gJWQgYWxyZWFkeSBDTE9TRUQgb3IgY2xlYW5lZCB1cCAtICIKKyAgICAgICAgICAgICJh
dXRvLWVtaXR0ZWQgYSBSU1RfRlJBTUUiICUgZnJhbWUuc3RyZWFtX2lkCisgICAgICAgICkKKyAg
ICAgICAgcmV0dXJuIGZyYW1lcywgZXZlbnRzICsgZXhjLl9ldmVudHMKKwogICAgIGRlZiBfcmVj
ZWl2ZV9kYXRhX2ZyYW1lKHNlbGYsIGZyYW1lKToKICAgICAgICAgIiIiCiAgICAgICAgIFJlY2Vp
dmUgYSBkYXRhIGZyYW1lIG9uIHRoZSBjb25uZWN0aW9uLgpAQCAtMTYzNiwxMiArMTY3NSwxOSBA
QCBjbGFzcyBIMkNvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAgc2VsZi5faW5ib3VuZF9mbG93
X2NvbnRyb2xfd2luZG93X21hbmFnZXIud2luZG93X2NvbnN1bWVkKAogICAgICAgICAgICAgZmxv
d19jb250cm9sbGVkX2xlbmd0aAogICAgICAgICApCi0gICAgICAgIHN0cmVhbSA9IHNlbGYuX2dl
dF9zdHJlYW1fYnlfaWQoZnJhbWUuc3RyZWFtX2lkKQotICAgICAgICBmcmFtZXMsIHN0cmVhbV9l
dmVudHMgPSBzdHJlYW0ucmVjZWl2ZV9kYXRhKAotICAgICAgICAgICAgZnJhbWUuZGF0YSwKLSAg
ICAgICAgICAgICdFTkRfU1RSRUFNJyBpbiBmcmFtZS5mbGFncywKLSAgICAgICAgICAgIGZsb3df
Y29udHJvbGxlZF9sZW5ndGgKLSAgICAgICAgKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHN0cmVhbSA9IHNlbGYuX2dldF9zdHJlYW1fYnlfaWQoZnJhbWUuc3RyZWFtX2lkKQorICAgICAg
ICAgICAgZnJhbWVzLCBzdHJlYW1fZXZlbnRzID0gc3RyZWFtLnJlY2VpdmVfZGF0YSgKKyAgICAg
ICAgICAgICAgICBmcmFtZS5kYXRhLAorICAgICAgICAgICAgICAgICdFTkRfU1RSRUFNJyBpbiBm
cmFtZS5mbGFncywKKyAgICAgICAgICAgICAgICBmbG93X2NvbnRyb2xsZWRfbGVuZ3RoCisgICAg
ICAgICAgICApCisgICAgICAgIGV4Y2VwdCBTdHJlYW1DbG9zZWRFcnJvciBhcyBlOgorICAgICAg
ICAgICAgIyBUaGlzIHN0cmVhbSBpcyBlaXRoZXIgbWFya2VkIGFzIENMT1NFRCBvciBhbHJlYWR5
IGdvbmUgZnJvbSBvdXIKKyAgICAgICAgICAgICMgaW50ZXJuYWwgc3RhdGUuCisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5faGFuZGxlX2RhdGFfb25fY2xvc2VkX3N0cmVhbShldmVudHMsIGUsIGZy
YW1lKQorCiAgICAgICAgIHJldHVybiBmcmFtZXMsIGV2ZW50cyArIHN0cmVhbV9ldmVudHMKIAog
ICAgIGRlZiBfcmVjZWl2ZV9zZXR0aW5nc19mcmFtZShzZWxmLCBmcmFtZSk6CkBAIC0xNzE3LDE1
ICsxNzYzLDE5IEBAIGNsYXNzIEgyQ29ubmVjdGlvbihvYmplY3QpOgogICAgICAgICBmbGFncyA9
IFtdCiAKICAgICAgICAgaWYgJ0FDSycgaW4gZnJhbWUuZmxhZ3M6Ci0gICAgICAgICAgICBldnQg
PSBQaW5nQWNrbm93bGVkZ2VkKCkKLSAgICAgICAgICAgIGV2dC5waW5nX2RhdGEgPSBmcmFtZS5v
cGFxdWVfZGF0YQotICAgICAgICAgICAgZXZlbnRzLmFwcGVuZChldnQpCisgICAgICAgICAgICBl
dnQgPSBQaW5nQWNrUmVjZWl2ZWQoKQogICAgICAgICBlbHNlOgorICAgICAgICAgICAgZXZ0ID0g
UGluZ1JlY2VpdmVkKCkKKworICAgICAgICAgICAgIyBhdXRvbWF0aWNhbGx5IEFDSyB0aGUgUElO
RyB3aXRoIHRoZSBzYW1lICdvcGFxdWUgZGF0YScKICAgICAgICAgICAgIGYgPSBQaW5nRnJhbWUo
MCkKICAgICAgICAgICAgIGYuZmxhZ3MgPSB7J0FDSyd9CiAgICAgICAgICAgICBmLm9wYXF1ZV9k
YXRhID0gZnJhbWUub3BhcXVlX2RhdGEKICAgICAgICAgICAgIGZsYWdzLmFwcGVuZChmKQogCisg
ICAgICAgIGV2dC5waW5nX2RhdGEgPSBmcmFtZS5vcGFxdWVfZGF0YQorICAgICAgICBldmVudHMu
YXBwZW5kKGV2dCkKKwogICAgICAgICByZXR1cm4gZmxhZ3MsIGV2ZW50cwogCiAgICAgZGVmIF9y
ZWNlaXZlX3JzdF9zdHJlYW1fZnJhbWUoc2VsZiwgZnJhbWUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi9oMi9ldmVudHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2V2ZW50cy5weQppbmRleCBmZjNlYzNkZjMxM2Zm
YzdkNmJiNTYzMTMyZjhjNDVlYmE5MjQzZDVhLi5hMDZjOTkwM2Q1YThhMmVlZWUzN2MyMjhlNGE4
MTFkNTcyZjNjZThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2V2ZW50cy5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL2gyL2V2ZW50cy5weQpAQCAtMzU2LDIyICszNTYsNTEgQEAgY2xhc3MgUmVtb3RlU2V0dGlu
Z3NDaGFuZ2VkKEV2ZW50KToKICAgICAgICAgKQogCiAKK2NsYXNzIFBpbmdSZWNlaXZlZChFdmVu
dCk6CisgICAgIiIiCisgICAgVGhlIFBpbmdSZWNlaXZlZCBldmVudCBpcyBmaXJlZCB3aGVuZXZl
ciBhIFBJTkcgaXMgcmVjZWl2ZWQuIEl0IGNvbnRhaW5zCisgICAgdGhlICdvcGFxdWUgZGF0YScg
b2YgdGhlIFBJTkcgZnJhbWUuIEEgcGluZyBhY2tub3dsZWRnbWVudCB3aXRoIHRoZSBzYW1lCisg
ICAgJ29wYXF1ZSBkYXRhJyBpcyBhdXRvbWF0aWNhbGx5IGVtaXR0ZWQgYWZ0ZXIgcmVjZWl2aW5n
IGEgcGluZy4KKworICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMS4wCisgICAgIiIiCisgICAgZGVm
IF9faW5pdF9fKHNlbGYpOgorICAgICAgICAjOiBUaGUgZGF0YSBpbmNsdWRlZCBvbiB0aGUgcGlu
Zy4KKyAgICAgICAgc2VsZi5waW5nX2RhdGEgPSBOb25lCisKKyAgICBkZWYgX19yZXByX18oc2Vs
Zik6CisgICAgICAgIHJldHVybiAiPFBpbmdSZWNlaXZlZCBwaW5nX2RhdGE6JXM+IiAlICgKKyAg
ICAgICAgICAgIF9ieXRlc19yZXByZXNlbnRhdGlvbihzZWxmLnBpbmdfZGF0YSksCisgICAgICAg
ICkKKworCiBjbGFzcyBQaW5nQWNrbm93bGVkZ2VkKEV2ZW50KToKICAgICAiIiIKLSAgICBUaGUg
UGluZ0Fja25vd2xlZGdlZCBldmVudCBpcyBmaXJlZCB3aGVuZXZlciBhIHVzZXItZW1pdHRlZCBQ
SU5HIGlzCi0gICAgYWNrbm93bGVkZ2VkLiBUaGlzIGNvbnRhaW5zIHRoZSBkYXRhIGluIHRoZSBB
Q0snZWQgUElORywgYWxsb3dpbmcgdGhlCi0gICAgdXNlciB0byBjb3JyZWxhdGUgUElOR3MgYW5k
IGNhbGN1bGF0ZSBSVFQuCisgICAgU2FtZSBhcyBQaW5nQWNrUmVjZWl2ZWQuCisKKyAgICAuLiBk
ZXByZWNhdGVkOjogMy4xLjAKICAgICAiIiIKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAg
ICAgICM6IFRoZSBkYXRhIGluY2x1ZGVkIG9uIHRoZSBwaW5nLgogICAgICAgICBzZWxmLnBpbmdf
ZGF0YSA9IE5vbmUKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8
UGluZ0Fja25vd2xlZGdlZCBwaW5nX2RhdGE6JXM+IiAlICgKKyAgICAgICAgcmV0dXJuICI8UGlu
Z0Fja1JlY2VpdmVkIHBpbmdfZGF0YTolcz4iICUgKAogICAgICAgICAgICAgX2J5dGVzX3JlcHJl
c2VudGF0aW9uKHNlbGYucGluZ19kYXRhKSwKICAgICAgICAgKQogCiAKK2NsYXNzIFBpbmdBY2tS
ZWNlaXZlZChQaW5nQWNrbm93bGVkZ2VkKToKKyAgICAiIiIKKyAgICBUaGUgUGluZ0Fja1JlY2Vp
dmVkIGV2ZW50IGlzIGZpcmVkIHdoZW5ldmVyIGEgUElORyBhY2tub3dsZWRnbWVudCBpcworICAg
IHJlY2VpdmVkLiBJdCBjb250YWlucyB0aGUgJ29wYXF1ZSBkYXRhJyBvZiB0aGUgUElORytBQ0sg
ZnJhbWUsIGFsbG93aW5nIHRoZQorICAgIHVzZXIgdG8gY29ycmVsYXRlIFBJTkdzIGFuZCBjYWxj
dWxhdGUgUlRULgorCisgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4xLjAKKyAgICAiIiIKKyAgICBw
YXNzCisKKwogY2xhc3MgU3RyZWFtRW5kZWQoRXZlbnQpOgogICAgICIiIgogICAgIFRoZSBTdHJl
YW1FbmRlZCBldmVudCBpcyBmaXJlZCB3aGVuZXZlciBhIHN0cmVhbSBpcyBlbmRlZCBieSBhIHJl
bW90ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9zZXR0aW5ncy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvc2V0
dGluZ3MucHkKaW5kZXggM2RhNzIwMzI5Y2I5ODc5MGYyZTRlN2RlNWUxYzg4Y2QxODA3MTgzNS4u
YmY4N2M5NGY0ZThjZmQ1ZWZjMDJiNGVmNmVjMDgwMmYzMTllZmFmMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi9oMi9zZXR0aW5ncy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3NldHRpbmdzLnB5CkBAIC0xNSw2
ICsxNSwxMiBAQCBmcm9tIGh5cGVyZnJhbWUuZnJhbWUgaW1wb3J0IFNldHRpbmdzRnJhbWUKIGZy
b20gaDIuZXJyb3JzIGltcG9ydCBFcnJvckNvZGVzCiBmcm9tIGgyLmV4Y2VwdGlvbnMgaW1wb3J0
IEludmFsaWRTZXR0aW5nc1ZhbHVlRXJyb3IKIAordHJ5OgorICAgIGZyb20gY29sbGVjdGlvbnMu
YWJjIGltcG9ydCBNdXRhYmxlTWFwcGluZworZXhjZXB0IEltcG9ydEVycm9yOiAgIyBwcmFnbWE6
IG5vIGNvdmVyCisgICAgIyBQeXRob24gMi43IGNvbXBhdGliaWxpdHkKKyAgICBmcm9tIGNvbGxl
Y3Rpb25zIGltcG9ydCBNdXRhYmxlTWFwcGluZworCiAKIGNsYXNzIFNldHRpbmdDb2RlcyhlbnVt
LkludEVudW0pOgogICAgICIiIgpAQCAtNDksNiArNTUsMTAgQEAgY2xhc3MgU2V0dGluZ0NvZGVz
KGVudW0uSW50RW51bSk6CiAgICAgIzogYW5kIHZhbHVlIGluIG9jdGV0cyBwbHVzIGFuIG92ZXJo
ZWFkIG9mIDMyIG9jdGV0cyBmb3IgZWFjaCBoZWFkZXIgZmllbGQuCiAgICAgTUFYX0hFQURFUl9M
SVNUX1NJWkUgPSBTZXR0aW5nc0ZyYW1lLk1BWF9IRUFERVJfTElTVF9TSVpFCiAKKyAgICAjOiBU
aGlzIHNldHRpbmcgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIHRoZSBjb25uZWN0IHByb3RvY29sLiBU
byBlbmFibGUgb24gYQorICAgICM6IGNsaWVudCBzZXQgdGhpcyB0byAxLgorICAgIEVOQUJMRV9D
T05ORUNUX1BST1RPQ09MID0gU2V0dGluZ3NGcmFtZS5FTkFCTEVfQ09OTkVDVF9QUk9UT0NPTAor
CiAKIGRlZiBfc2V0dGluZ19jb2RlX2Zyb21faW50KGNvZGUpOgogICAgICIiIgpAQCAtODgsNyAr
OTgsNyBAQCBjbGFzcyBDaGFuZ2VkU2V0dGluZzoKICAgICAgICAgKQogCiAKLWNsYXNzIFNldHRp
bmdzKGNvbGxlY3Rpb25zLk11dGFibGVNYXBwaW5nKToKK2NsYXNzIFNldHRpbmdzKE11dGFibGVN
YXBwaW5nKToKICAgICAiIiIKICAgICBBbiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgSFRUUC8y
IHNldHRpbmdzIHN0YXRlLgogCkBAIC0xMzUsNiArMTQ1LDcgQEAgY2xhc3MgU2V0dGluZ3MoY29s
bGVjdGlvbnMuTXV0YWJsZU1hcHBpbmcpOgogICAgICAgICAgICAgU2V0dGluZ0NvZGVzLkVOQUJM
RV9QVVNIOiBjb2xsZWN0aW9ucy5kZXF1ZShbaW50KGNsaWVudCldKSwKICAgICAgICAgICAgIFNl
dHRpbmdDb2Rlcy5JTklUSUFMX1dJTkRPV19TSVpFOiBjb2xsZWN0aW9ucy5kZXF1ZShbNjU1MzVd
KSwKICAgICAgICAgICAgIFNldHRpbmdDb2Rlcy5NQVhfRlJBTUVfU0laRTogY29sbGVjdGlvbnMu
ZGVxdWUoWzE2Mzg0XSksCisgICAgICAgICAgICBTZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1Rf
UFJPVE9DT0w6IGNvbGxlY3Rpb25zLmRlcXVlKFswXSksCiAgICAgICAgIH0KICAgICAgICAgaWYg
aW5pdGlhbF92YWx1ZXMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBp
biBpbml0aWFsX3ZhbHVlcy5pdGVtcygpOgpAQCAtMjQzLDYgKzI1NCwxOCBAQCBjbGFzcyBTZXR0
aW5ncyhjb2xsZWN0aW9ucy5NdXRhYmxlTWFwcGluZyk6CiAgICAgZGVmIG1heF9oZWFkZXJfbGlz
dF9zaXplKHNlbGYsIHZhbHVlKToKICAgICAgICAgc2VsZltTZXR0aW5nQ29kZXMuTUFYX0hFQURF
Ul9MSVNUX1NJWkVdID0gdmFsdWUKIAorICAgIEBwcm9wZXJ0eQorICAgIGRlZiBlbmFibGVfY29u
bmVjdF9wcm90b2NvbChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoZSBjdXJyZW50IHZh
bHVlIG9mIHRoZSA6ZGF0YTpgRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0wKKyAgICAgICAgPGgyLnNl
dHRpbmdzLlNldHRpbmdDb2Rlcy5FTkFCTEVfQ09OTkVDVF9QUk9UT0NPTD5gIHNldHRpbmcuCisg
ICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZltTZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5F
Q1RfUFJPVE9DT0xdCisKKyAgICBAZW5hYmxlX2Nvbm5lY3RfcHJvdG9jb2wuc2V0dGVyCisgICAg
ZGVmIGVuYWJsZV9jb25uZWN0X3Byb3RvY29sKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZltT
ZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0xdID0gdmFsdWUKKwogICAgICMgSW1w
bGVtZW50IHRoZSBNdXRhYmxlTWFwcGluZyBBUEkuCiAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYs
IGtleSk6CiAgICAgICAgIHZhbCA9IHNlbGYuX3NldHRpbmdzW2tleV1bMF0KQEAgLTI5Miw3ICsz
MTUsNyBAQCBjbGFzcyBTZXR0aW5ncyhjb2xsZWN0aW9ucy5NdXRhYmxlTWFwcGluZyk6CiAgICAg
ICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKIAogCi1kZWYgX3ZhbGlkYXRlX3NldHRpbmco
c2V0dGluZywgdmFsdWUpOgorZGVmIF92YWxpZGF0ZV9zZXR0aW5nKHNldHRpbmcsIHZhbHVlKTog
ICMgbm9xYTogQzkwMQogICAgICIiIgogICAgIENvbmZpcm1zIHRoYXQgYSBzcGVjaWZpYyBzZXR0
aW5nIGhhcyBhIHdlbGwtZm9ybWVkIHZhbHVlLiBJZiB0aGUgc2V0dGluZyBpcwogICAgIGludmFs
aWQsIHJldHVybnMgYW4gZXJyb3IgY29kZS4gT3RoZXJ3aXNlLCByZXR1cm5zIDAgKE5PX0VSUk9S
KS4KQEAgLTMwOSw1ICszMzIsOCBAQCBkZWYgX3ZhbGlkYXRlX3NldHRpbmcoc2V0dGluZywgdmFs
dWUpOgogICAgIGVsaWYgc2V0dGluZyA9PSBTZXR0aW5nQ29kZXMuTUFYX0hFQURFUl9MSVNUX1NJ
WkU6CiAgICAgICAgIGlmIHZhbHVlIDwgMDoKICAgICAgICAgICAgIHJldHVybiBFcnJvckNvZGVz
LlBST1RPQ09MX0VSUk9SCisgICAgZWxpZiBzZXR0aW5nID09IFNldHRpbmdDb2Rlcy5FTkFCTEVf
Q09OTkVDVF9QUk9UT0NPTDoKKyAgICAgICAgaWYgdmFsdWUgbm90IGluICgwLCAxKToKKyAgICAg
ICAgICAgIHJldHVybiBFcnJvckNvZGVzLlBST1RPQ09MX0VSUk9SCiAKICAgICByZXR1cm4gMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9oMi9zdHJlYW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3N0cmVhbS5weQpp
bmRleCA0ODllYTRkOGQ2ZjUxODYwNGM3YmM4YmNmZmNlNWI0ZGVkZWQ0YjRlLi4xY2I5MTc4NmQ0
MjU0YzlmYjFkMjc0YzM4NDE4MzQ3YzI3Mzg0MjdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3N0
cmVhbS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3N0cmVhbS5weQpAQCAtMzc4LDQxICszNzgsNiBAQCBj
bGFzcyBIMlN0cmVhbVN0YXRlTWFjaGluZShvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAg
cmFpc2UgUHJvdG9jb2xFcnJvcigiQXR0ZW1wdGVkIHRvIHB1c2ggb24gY2xvc2VkIHN0cmVhbS4i
KQogCi0gICAgZGVmIHdpbmRvd19vbl9jbG9zZWRfc3RyZWFtKHNlbGYsIHByZXZpb3VzX3N0YXRl
KToKLSAgICAgICAgIiIiCi0gICAgICAgIENhbGxlZCB3aGVuIGEgV0lORE9XX1VQREFURSBmcmFt
ZSBpcyByZWNlaXZlZCBvbiBhbiBhbHJlYWR5LWNsb3NlZAotICAgICAgICBzdHJlYW0uCi0KLSAg
ICAgICAgSWYgd2Ugc2VudCBhbiBFTkRfU1RSRUFNIGZyYW1lLCB3ZSBqdXN0IGlnbm9yZSB0aGUg
ZnJhbWUsIGFzIGluc3RydWN0ZWQKLSAgICAgICAgaW4gUkZDIDc1NDAgU2VjdGlvbiA1LjEuIFRl
Y2huaWNhbGx5IHdlIHNob3VsZCBldmVudHVhbGx5IGNvbnNpZGVyCi0gICAgICAgIFdJTkRPV19V
UERBVEUgaW4gdGhpcyBzdGF0ZSBhbiBlcnJvciwgYnV0IHdlIGRvbid0IGhhdmUgYWNjZXNzIHRv
IGEKLSAgICAgICAgY2xvY2sgc28gd2UganVzdCBhbHdheXMgYWxsb3cgaXQuIElmIHdlIGNsb3Nl
ZCB0aGUgc3RyZWFtIGZvciBhbnkgb3RoZXIKLSAgICAgICAgcmVhc29uLCB3ZSBiZWhhdmUgYXMg
d2UgZG8gZm9yIHJlY2VpdmluZyBhbnkgb3RoZXIgZnJhbWUgb24gYSBjbG9zZWQKLSAgICAgICAg
c3RyZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgYXNzZXJ0IHNlbGYuc3RyZWFtX2Nsb3NlZF9i
eSBpcyBub3QgTm9uZQotCi0gICAgICAgIGlmIHNlbGYuc3RyZWFtX2Nsb3NlZF9ieSA9PSBTdHJl
YW1DbG9zZWRCeS5TRU5EX0VORF9TVFJFQU06Ci0gICAgICAgICAgICByZXR1cm4gW10KLSAgICAg
ICAgcmV0dXJuIHNlbGYucmVjdl9vbl9jbG9zZWRfc3RyZWFtKHByZXZpb3VzX3N0YXRlKQotCi0g
ICAgZGVmIHJlc2V0X29uX2Nsb3NlZF9zdHJlYW0oc2VsZiwgcHJldmlvdXNfc3RhdGUpOgotICAg
ICAgICAiIiIKLSAgICAgICAgQ2FsbGVkIHdoZW4gYSBSU1RfU1RSRUFNIGZyYW1lIGlzIHJlY2Vp
dmVkIG9uIGFuIGFscmVhZHktY2xvc2VkIHN0cmVhbS4KLQotICAgICAgICBJZiB3ZSBzZW50IGFu
IEVORF9TVFJFQU0gZnJhbWUsIHdlIGp1c3QgaWdub3JlIHRoZSBmcmFtZSwgYXMgaW5zdHJ1Y3Rl
ZAotICAgICAgICBpbiBSRkMgNzU0MCBTZWN0aW9uIDUuMS4gVGVjaG5pY2FsbHkgd2Ugc2hvdWxk
IGV2ZW50dWFsbHkgY29uc2lkZXIKLSAgICAgICAgUlNUX1NUUkVBTSBpbiB0aGlzIHN0YXRlIGFu
IGVycm9yLCBidXQgd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gYSBjbG9jawotICAgICAgICBzbyB3
ZSBqdXN0IGFsd2F5cyBhbGxvdyBpdC4gSWYgd2UgY2xvc2VkIHRoZSBzdHJlYW0gZm9yIGFueSBv
dGhlcgotICAgICAgICByZWFzb24sIHdlIGJlaGF2ZSBhcyB3ZSBkbyBmb3IgcmVjZWl2aW5nIGFu
eSBvdGhlciBmcmFtZSBvbiBhIGNsb3NlZAotICAgICAgICBzdHJlYW0uCi0gICAgICAgICIiIgot
ICAgICAgICBhc3NlcnQgc2VsZi5zdHJlYW1fY2xvc2VkX2J5IGlzIG5vdCBOb25lCi0KLSAgICAg
ICAgaWYgc2VsZi5zdHJlYW1fY2xvc2VkX2J5IGlzIFN0cmVhbUNsb3NlZEJ5LlNFTkRfRU5EX1NU
UkVBTToKLSAgICAgICAgICAgIHJldHVybiBbXQotICAgICAgICByZXR1cm4gc2VsZi5yZWN2X29u
X2Nsb3NlZF9zdHJlYW0ocHJldmlvdXNfc3RhdGUpCi0KICAgICBkZWYgc2VuZF9pbmZvcm1hdGlv
bmFsX3Jlc3BvbnNlKHNlbGYsIHByZXZpb3VzX3N0YXRlKToKICAgICAgICAgIiIiCiAgICAgICAg
IENhbGxlZCB3aGVuIGFuIGluZm9ybWF0aW9uYWwgaGVhZGVyIGJsb2NrIGlzIHNlbnQgKHRoYXQg
aXMsIGEgYmxvY2sKQEAgLTc0MCwxMSArNzA1LDEyIEBAIF90cmFuc2l0aW9ucyA9IHsKIAogICAg
ICMgPiBXSU5ET1dfVVBEQVRFIG9yIFJTVF9TVFJFQU0gZnJhbWVzIGNhbiBiZSByZWNlaXZlZCBp
biB0aGlzIHN0YXRlCiAgICAgIyA+IGZvciBhIHNob3J0IHBlcmlvZCBhZnRlciBhIERBVEEgb3Ig
SEVBREVSUyBmcmFtZSBjb250YWluaW5nIGEKLSAgICAjID4gRU5EX1NUUkVBTSBmbGFnIGlzIHNl
bnQuCisgICAgIyA+IEVORF9TVFJFQU0gZmxhZyBpcyBzZW50LCBhcyBpbnN0cnVjdGVkIGluIFJG
QyA3NTQwIFNlY3Rpb24gNS4xLiBCdXQgd2UKKyAgICAjID4gZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8g
YSBjbG9jayBzbyB3ZSBqdXN0IGFsd2F5cyBhbGxvdyBpdC4KICAgICAoU3RyZWFtU3RhdGUuQ0xP
U0VELCBTdHJlYW1JbnB1dHMuUkVDVl9XSU5ET1dfVVBEQVRFKToKLSAgICAgICAgKEgyU3RyZWFt
U3RhdGVNYWNoaW5lLndpbmRvd19vbl9jbG9zZWRfc3RyZWFtLCBTdHJlYW1TdGF0ZS5DTE9TRUQp
LAorICAgICAgICAoTm9uZSwgU3RyZWFtU3RhdGUuQ0xPU0VEKSwKICAgICAoU3RyZWFtU3RhdGUu
Q0xPU0VELCBTdHJlYW1JbnB1dHMuUkVDVl9SU1RfU1RSRUFNKToKLSAgICAgICAgKEgyU3RyZWFt
U3RhdGVNYWNoaW5lLnJlc2V0X29uX2Nsb3NlZF9zdHJlYW0sIFN0cmVhbVN0YXRlLkNMT1NFRCks
CisgICAgICAgIChOb25lLCBTdHJlYW1TdGF0ZS5DTE9TRUQpLAogCiAgICAgIyA+IEEgcmVjZWl2
ZXIgTVVTVCB0cmVhdCB0aGUgcmVjZWlwdCBvZiBhIFBVU0hfUFJPTUlTRSBvbiBhIHN0cmVhbSB0
aGF0IGlzCiAgICAgIyA+IG5laXRoZXIgIm9wZW4iIG5vciAiaGFsZi1jbG9zZWQgKGxvY2FsKSIg
YXMgYSBjb25uZWN0aW9uIGVycm9yIG9mIHR5cGUKQEAgLTc4OCw3ICs3NTQsNyBAQCBjbGFzcyBI
MlN0cmVhbShvYmplY3QpOgogICAgICAgICBzZWxmLm1heF9vdXRib3VuZF9mcmFtZV9zaXplID0g
Tm9uZQogICAgICAgICBzZWxmLnJlcXVlc3RfbWV0aG9kID0gTm9uZQogCi0gICAgICAgICMgVGhl
IGN1cmVudCB2YWx1ZSBvZiB0aGUgb3V0Ym91bmQgc3RyZWFtIGZsb3cgY29udHJvbCB3aW5kb3cK
KyAgICAgICAgIyBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgb3V0Ym91bmQgc3RyZWFtIGZsb3cg
Y29udHJvbCB3aW5kb3cKICAgICAgICAgc2VsZi5vdXRib3VuZF9mbG93X2NvbnRyb2xfd2luZG93
ID0gb3V0Ym91bmRfd2luZG93X3NpemUKIAogICAgICAgICAjIFRoZSBmbG93IGNvbnRyb2wgbWFu
YWdlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvdXRpbGl0aWVzLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi91
dGlsaXRpZXMucHkKaW5kZXggMGNmZjBmYTY3MTA2ZWVjMTA0NjhmNTcyNjEzOGRhNzQzZWM3MzY5
ZC4uMDZjOTE2ZWVhN2I5Nzk4ZjcxOGJlNTExYjMwYjQ0NzAwZGQ4MzNhZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9oMi91dGlsaXRpZXMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi91dGlsaXRpZXMucHkKQEAg
LTMzLDYgKzMzLDcgQEAgX0FMTE9XRURfUFNFVURPX0hFQURFUl9GSUVMRFMgPSBmcm96ZW5zZXQo
WwogICAgIGInOmF1dGhvcml0eScsIHUnOmF1dGhvcml0eScsCiAgICAgYic6cGF0aCcsIHUnOnBh
dGgnLAogICAgIGInOnN0YXR1cycsIHUnOnN0YXR1cycsCisgICAgYic6cHJvdG9jb2wnLCB1Jzpw
cm90b2NvbCcsCiBdKQogCiAKQEAgLTQ3LDEzICs0OCwxOSBAQCBfUkVRVUVTVF9PTkxZX0hFQURF
UlMgPSBmcm96ZW5zZXQoWwogICAgIGInOnNjaGVtZScsIHUnOnNjaGVtZScsCiAgICAgYic6cGF0
aCcsIHUnOnBhdGgnLAogICAgIGInOmF1dGhvcml0eScsIHUnOmF1dGhvcml0eScsCi0gICAgYic6
bWV0aG9kJywgdSc6bWV0aG9kJworICAgIGInOm1ldGhvZCcsIHUnOm1ldGhvZCcsCisgICAgYic6
cHJvdG9jb2wnLCB1Jzpwcm90b2NvbCcsCiBdKQogCiAKIF9SRVNQT05TRV9PTkxZX0hFQURFUlMg
PSBmcm96ZW5zZXQoW2InOnN0YXR1cycsIHUnOnN0YXR1cyddKQogCiAKKyMgQSBTZXQgb2YgcHNl
dWRvIGhlYWRlcnMgdGhhdCBhcmUgb25seSB2YWxpZCBpZiB0aGUgbWV0aG9kIGlzCisjIENPTk5F
Q1QsIHNlZSBSRkMgODQ0MSDCpyA1CitfQ09OTkVDVF9SRVFVRVNUX09OTFlfSEVBREVSUyA9IGZy
b3plbnNldChbYic6cHJvdG9jb2wnLCB1Jzpwcm90b2NvbCddKQorCisKIGlmIHN5cy52ZXJzaW9u
X2luZm9bMF0gPT0gMjogICMgUHl0aG9uIDIuWAogICAgIF9XSElURVNQQUNFID0gZnJvemVuc2V0
KHdoaXRlc3BhY2UpCiBlbHNlOiAgIyBQeXRob24gMy4zKwpAQCAtMzIzLDYgKzMzMCw3IEBAIGRl
ZiBfcmVqZWN0X3BzZXVkb19oZWFkZXJfZmllbGRzKGhlYWRlcnMsIGhkcl92YWxpZGF0aW9uX2Zs
YWdzKToKICAgICAiIiIKICAgICBzZWVuX3BzZXVkb19oZWFkZXJfZmllbGRzID0gc2V0KCkKICAg
ICBzZWVuX3JlZ3VsYXJfaGVhZGVyID0gRmFsc2UKKyAgICBtZXRob2QgPSBOb25lCiAKICAgICBm
b3IgaGVhZGVyIGluIGhlYWRlcnM6CiAgICAgICAgIGlmIF9jdXN0b21fc3RhcnRzd2l0aChoZWFk
ZXJbMF0sIGInOicsIHUnOicpOgpAQCAtMzQ0LDYgKzM1MiwxMiBAQCBkZWYgX3JlamVjdF9wc2V1
ZG9faGVhZGVyX2ZpZWxkcyhoZWFkZXJzLCBoZHJfdmFsaWRhdGlvbl9mbGFncyk6CiAgICAgICAg
ICAgICAgICAgICAgICJSZWNlaXZlZCBjdXN0b20gcHNldWRvLWhlYWRlciBmaWVsZCAlcyIgJSBo
ZWFkZXJbMF0KICAgICAgICAgICAgICAgICApCiAKKyAgICAgICAgICAgIGlmIGhlYWRlclswXSBp
biAoYic6bWV0aG9kJywgdSc6bWV0aG9kJyk6CisgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5z
dGFuY2UoaGVhZGVyWzFdLCBieXRlcyk6CisgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9IGhl
YWRlclsxXS5lbmNvZGUoJ3V0Zi04JykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgICAgICBtZXRob2QgPSBoZWFkZXJbMV0KKwogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgc2Vlbl9yZWd1bGFyX2hlYWRlciA9IFRydWUKIApAQCAtMzUxLDExICszNjUsMTIgQEAgZGVm
IF9yZWplY3RfcHNldWRvX2hlYWRlcl9maWVsZHMoaGVhZGVycywgaGRyX3ZhbGlkYXRpb25fZmxh
Z3MpOgogCiAgICAgIyBDaGVjayB0aGUgcHNldWRvLWhlYWRlcnMgd2UgZ290IHRvIGNvbmZpcm0g
dGhleSdyZSBhY2NlcHRhYmxlLgogICAgIF9jaGVja19wc2V1ZG9faGVhZGVyX2ZpZWxkX2FjY2Vw
dGFiaWxpdHkoCi0gICAgICAgIHNlZW5fcHNldWRvX2hlYWRlcl9maWVsZHMsIGhkcl92YWxpZGF0
aW9uX2ZsYWdzCisgICAgICAgIHNlZW5fcHNldWRvX2hlYWRlcl9maWVsZHMsIG1ldGhvZCwgaGRy
X3ZhbGlkYXRpb25fZmxhZ3MKICAgICApCiAKIAogZGVmIF9jaGVja19wc2V1ZG9faGVhZGVyX2Zp
ZWxkX2FjY2VwdGFiaWxpdHkocHNldWRvX2hlYWRlcnMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZHJfdmFsaWRhdGlvbl9mbGFncyk6CiAgICAgIiIiCiAgICAg
R2l2ZW4gdGhlIHNldCBvZiBwc2V1ZG8taGVhZGVycyBwcmVzZW50IGluIGEgaGVhZGVyIGJsb2Nr
IGFuZCB0aGUKQEAgLTM5NCw2ICs0MDksMTMgQEAgZGVmIF9jaGVja19wc2V1ZG9faGVhZGVyX2Zp
ZWxkX2FjY2VwdGFiaWxpdHkocHNldWRvX2hlYWRlcnMsCiAgICAgICAgICAgICAgICAgIkVuY291
bnRlcmVkIHJlc3BvbnNlLW9ubHkgaGVhZGVycyAlcyIgJQogICAgICAgICAgICAgICAgIGludmFs
aWRfcmVxdWVzdF9oZWFkZXJzCiAgICAgICAgICAgICApCisgICAgICAgIGlmIG1ldGhvZCAhPSBi
J0NPTk5FQ1QnOgorICAgICAgICAgICAgaW52YWxpZF9oZWFkZXJzID0gcHNldWRvX2hlYWRlcnMg
JiBfQ09OTkVDVF9SRVFVRVNUX09OTFlfSEVBREVSUworICAgICAgICAgICAgaWYgaW52YWxpZF9o
ZWFkZXJzOgorICAgICAgICAgICAgICAgIHJhaXNlIFByb3RvY29sRXJyb3IoCisgICAgICAgICAg
ICAgICAgICAgICJFbmNvdW50ZXJlZCBjb25uZWN0LXJlcXVlc3Qtb25seSBoZWFkZXJzICVzIiAl
CisgICAgICAgICAgICAgICAgICAgIGludmFsaWRfaGVhZGVycworICAgICAgICAgICAgICAgICkK
IAogCiBkZWYgX3ZhbGlkYXRlX2hvc3RfYXV0aG9yaXR5X2hlYWRlcihoZWFkZXJzKToKQEAgLTYx
NywzICs2MzksMjIgQEAgZGVmIHZhbGlkYXRlX291dGJvdW5kX2hlYWRlcnMoaGVhZGVycywgaGRy
X3ZhbGlkYXRpb25fZmxhZ3MpOgogICAgIGhlYWRlcnMgPSBfY2hlY2tfcGF0aF9oZWFkZXIoaGVh
ZGVycywgaGRyX3ZhbGlkYXRpb25fZmxhZ3MpCiAKICAgICByZXR1cm4gaGVhZGVycworCisKK2Ns
YXNzIFNpemVMaW1pdERpY3QoY29sbGVjdGlvbnMuT3JkZXJlZERpY3QpOgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuX3NpemVfbGltaXQg
PSBrd2FyZ3MucG9wKCJzaXplX2xpbWl0IiwgTm9uZSkKKyAgICAgICAgc3VwZXIoU2l6ZUxpbWl0
RGljdCwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAgIHNlbGYuX2No
ZWNrX3NpemVfbGltaXQoKQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUp
OgorICAgICAgICBzdXBlcihTaXplTGltaXREaWN0LCBzZWxmKS5fX3NldGl0ZW1fXyhrZXksIHZh
bHVlKQorCisgICAgICAgIHNlbGYuX2NoZWNrX3NpemVfbGltaXQoKQorCisgICAgZGVmIF9jaGVj
a19zaXplX2xpbWl0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9zaXplX2xpbWl0IGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgd2hpbGUgbGVuKHNlbGYpID4gc2VsZi5fc2l6ZV9saW1pdDoKKyAg
ICAgICAgICAgICAgICBzZWxmLnBvcGl0ZW0obGFzdD1GYWxzZSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvc2V0dXAuY2ZnIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9zZXR1cC5jZmcKaW5kZXggNWU0MDkwMDE3YTliZWM1ZGU2
MGE3NDVkMTcwMDdhOWU5NWYzMWE0My4uMzY3MDUwN2ZmMTJlMDJiNmQwNzZjZjk4NGViZGEwZDA1
Mjc5NDVkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9zZXR1cC5jZmcKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9zZXR1
cC5jZmcKQEAgLTEsMiArMSwxMCBAQAorW3Rvb2w6cHl0ZXN0XQordGVzdHBhdGhzID0gdGVzdAor
CiBbd2hlZWxdCiB1bml2ZXJzYWwgPSAxCisKK1tlZ2dfaW5mb10KK3RhZ19idWlsZCA9IAordGFn
X2RhdGUgPSAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvc2V0dXAucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3NldHVw
LnB5CmluZGV4IGQzYjc3ZjlkNzkwMGIwYmMzMGFiM2YzN2FmNDY4MmE5NjBiZjE5MzYuLjFjZTk1
ZDU3OTZkYzlmYzY5MGI2MjYzODdjNDE2Zjg0NTdmNjNlYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
c2V0dXAucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9zZXR1cC5weQpAQCAtNDAsNyArNDAsMTEgQEAgc2V0dXAo
CiAgICAgbG9uZ19kZXNjcmlwdGlvbj11J1xuXG4nLmpvaW4oW3JlYWRtZSwgaGlzdG9yeV0pLAog
ICAgIGF1dGhvcj0nQ29yeSBCZW5maWVsZCcsCiAgICAgYXV0aG9yX2VtYWlsPSdjb3J5QGx1a2Fz
YS5jby51aycsCi0gICAgdXJsPSdodHRwOi8vaHlwZXIucnRmZC5vcmcnLAorICAgIHVybD0naHR0
cHM6Ly9naXRodWIuY29tL3B5dGhvbi1oeXBlci9oeXBlci1oMicsCisgICAgcHJvamVjdF91cmxz
PXsKKyAgICAgICAgJ0RvY3VtZW50YXRpb24nOiAnaHR0cHM6Ly9weXRob24taHlwZXIub3JnL3By
b2plY3RzL2gyJywKKyAgICAgICAgJ1NvdXJjZSc6ICdodHRwczovL2dpdGh1Yi5jb20vcHl0aG9u
LWh5cGVyL2h5cGVyLWgyJywKKyAgICB9LAogICAgIHBhY2thZ2VzPXBhY2thZ2VzLAogICAgIHBh
Y2thZ2VfZGF0YT17Jyc6IFsnTElDRU5TRScsICdSRUFETUUucnN0JywgJ0NPTlRSSUJVVE9SUy5y
c3QnLCAnSElTVE9SWS5yc3QnLCAnTk9USUNFUyddfSwKICAgICBwYWNrYWdlX2Rpcj17J2gyJzog
J2gyJ30sCkBAIC01NCwxOCArNTgsMTkgQEAgc2V0dXAoCiAgICAgICAgICdQcm9ncmFtbWluZyBM
YW5ndWFnZSA6OiBQeXRob24gOjogMicsCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6
OiBQeXRob24gOjogMi43JywKICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhv
biA6OiAzJywKLSAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjMn
LAogICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNCcsCiAgICAg
ICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy41JywKICAgICAgICAgJ1By
b2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjYnLAorICAgICAgICAnUHJvZ3JhbW1p
bmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNycsCisgICAgICAgICdQcm9ncmFtbWluZyBMYW5n
dWFnZSA6OiBQeXRob24gOjogMy44JywKICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6
IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBDUHl0aG9uJywKICAgICAgICAgJ1Byb2dyYW1t
aW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBQeVB5JywKICAgICBd
LAogICAgIGluc3RhbGxfcmVxdWlyZXM9WwotICAgICAgICAnaHlwZXJmcmFtZT49NS4wLCA8Nics
Ci0gICAgICAgICdocGFjaz49Mi4zLCA8NCcsCisgICAgICAgICdoeXBlcmZyYW1lPj01LjIuMCwg
PDYnLAorICAgICAgICAnaHBhY2s+PTMuMCw8NCcsCiAgICAgXSwKICAgICBleHRyYXNfcmVxdWly
ZT17Ci0gICAgICAgICc6cHl0aG9uX3ZlcnNpb24gPT0gIjIuNyIgb3IgcHl0aG9uX3ZlcnNpb24g
PT0gIjMuMyInOiBbJ2VudW0zND49MS4xLjYsIDwyJ10sCisgICAgICAgICc6cHl0aG9uX3ZlcnNp
b24gPT0gIjIuNyInOiBbJ2VudW0zND49MS4xLjYsIDwyJ10sCiAgICAgfQogKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfYmFzaWNfbG9naWMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9i
YXNpY19sb2dpYy5weQppbmRleCAzY2ZjN2NjN2U4Y2E3YzRkOWMzNDQ5NzMyNjVjYTVmNmI1OGE1
NTA4Li43ZGY5OWE2YTU3MWM0NmNlMTdiOWFjNDAwMmJlNWYwMWUyNzQzNTdlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2gyL3Rlc3QvdGVzdF9iYXNpY19sb2dpYy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVz
dF9iYXNpY19sb2dpYy5weQpAQCAtMTE0LDYgKzExNCwyMyBAQCBjbGFzcyBUZXN0QmFzaWNDbGll
bnQob2JqZWN0KToKICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGFfZnJhbWVfcGFkX2xlbmd0aD0w
CiAgICAgICAgICkKIAorICAgIGRlZiB0ZXN0X3NlbmRpbmdfZGF0YV9pbl9tZW1vcnl2aWV3KHNl
bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgU3VwcG9ydCBtZW1vcnl2aWV3IGZvciBzZW5kaW5n
IGRhdGEuCisgICAgICAgICIiIgorICAgICAgICBjID0gaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rp
b24oKQorICAgICAgICBjLmluaXRpYXRlX2Nvbm5lY3Rpb24oKQorICAgICAgICBjLnNlbmRfaGVh
ZGVycygxLCBzZWxmLmV4YW1wbGVfcmVxdWVzdF9oZWFkZXJzKQorCisgICAgICAgICMgQ2xlYXIg
dGhlIGRhdGEsIHRoZW4gc2VuZCBzb21lIGRhdGEuCisgICAgICAgIGMuY2xlYXJfb3V0Ym91bmRf
ZGF0YV9idWZmZXIoKQorICAgICAgICBldmVudHMgPSBjLnNlbmRfZGF0YSgxLCBtZW1vcnl2aWV3
KGInc29tZSBkYXRhJykpCisgICAgICAgIGFzc2VydCBub3QgZXZlbnRzCisgICAgICAgIGRhdGFf
dG9fc2VuZCA9IGMuZGF0YV90b19zZW5kKCkKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAg
IGRhdGFfdG9fc2VuZCA9PSBiJ1x4MDBceDAwXHRceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFzb21l
IGRhdGEnCisgICAgICAgICkKKwogICAgIGRlZiB0ZXN0X3NlbmRpbmdfZGF0YV93aXRoX3BhZGRp
bmcoc2VsZik6CiAgICAgICAgICIiIgogICAgICAgICBTaW5nbGUgZGF0YSBmcmFtZXMgd2l0aCBw
YWRkaW5nIGFyZSBlbmNvZGVkIGNvcnJlY3RseS4KQEAgLTEwODEsNyArMTA5OCwxMiBAQCBjbGFz
cyBUZXN0QmFzaWNTZXJ2ZXIob2JqZWN0KToKICAgICAgICAgYy5jbGVhcl9vdXRib3VuZF9kYXRh
X2J1ZmZlcigpCiAgICAgICAgIGV2ZW50cyA9IGMucmVjZWl2ZV9kYXRhKHNlbnRfZnJhbWUuc2Vy
aWFsaXplKCkpCiAKLSAgICAgICAgYXNzZXJ0IG5vdCBldmVudHMKKyAgICAgICAgYXNzZXJ0IGxl
bihldmVudHMpID09IDEKKyAgICAgICAgZXZlbnQgPSBldmVudHNbMF0KKworICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShldmVudCwgaDIuZXZlbnRzLlBpbmdSZWNlaXZlZCkKKyAgICAgICAgYXNz
ZXJ0IGV2ZW50LnBpbmdfZGF0YSA9PSBwaW5nX2RhdGEKKwogICAgICAgICBhc3NlcnQgYy5kYXRh
X3RvX3NlbmQoKSA9PSBleHBlY3RlZF9kYXRhCiAKICAgICBkZWYgdGVzdF9yZWNlaXZpbmdfc2V0
dGluZ3NfZnJhbWVfZXZlbnQoc2VsZiwgZnJhbWVfZmFjdG9yeSk6CkBAIC0xMzI0LDcgKzEzNDYs
NyBAQCBjbGFzcyBUZXN0QmFzaWNTZXJ2ZXIob2JqZWN0KToKIAogICAgIGRlZiB0ZXN0X3JlY2Vp
dmluZ19waW5nX2Fja25vd2xlZGdlbWVudChzZWxmLCBmcmFtZV9mYWN0b3J5KToKICAgICAgICAg
IiIiCi0gICAgICAgIFJlY2VpdmluZyBhIFBJTkcgYWNrbm9sd2VkZ2VtZW50IGZpcmVzIGEgUGlu
Z0Fja25vbHdlZGdlZCBldmVudC4KKyAgICAgICAgUmVjZWl2aW5nIGEgUElORyBhY2tub3dsZWRn
ZW1lbnQgZmlyZXMgYSBQaW5nQWNrUmVjZWl2ZWQgZXZlbnQuCiAgICAgICAgICIiIgogICAgICAg
ICBjID0gaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oY29uZmlnPXNlbGYuc2VydmVyX2NvbmZp
ZykKICAgICAgICAgYy5yZWNlaXZlX2RhdGEoZnJhbWVfZmFjdG9yeS5wcmVhbWJsZSgpKQpAQCAt
MTMzOSw3ICsxMzYxLDggQEAgY2xhc3MgVGVzdEJhc2ljU2VydmVyKG9iamVjdCk6CiAgICAgICAg
IGFzc2VydCBsZW4oZXZlbnRzKSA9PSAxCiAgICAgICAgIGV2ZW50ID0gZXZlbnRzWzBdCiAKLSAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZXZlbnQsIGgyLmV2ZW50cy5QaW5nQWNrbm93bGVkZ2Vk
KQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShldmVudCwgaDIuZXZlbnRzLlBpbmdBY2tSZWNl
aXZlZCkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZXZlbnQsIGgyLmV2ZW50cy5QaW5nQWNr
bm93bGVkZ2VkKSAgIyBkZXByZWNhdGVkCiAgICAgICAgIGFzc2VydCBldmVudC5waW5nX2RhdGEg
PT0gcGluZ19kYXRhCiAKICAgICBkZWYgdGVzdF9zdHJlYW1fZW5kZWRfcmVtb3RlbHkoc2VsZiwg
ZnJhbWVfZmFjdG9yeSk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9jbG9zZWRfc3Ry
ZWFtcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2Nsb3NlZF9zdHJlYW1zLnB5CmluZGV4IDIzNDRm
NzJkNmExYTRlYzg3NjkwZjRkZTQ3ODMyNjdhZjBjNDgxMzMuLjYzMWE2Njc4N2FmMGQzNTM3NTBj
NzgxMjg0NWRiY2E5NTBlNzdmZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2Nsb3Nl
ZF9zdHJlYW1zLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2Nsb3NlZF9zdHJlYW1zLnB5CkBA
IC0xMDcsNiArMTA3LDc3IEBAIGNsYXNzIFRlc3RDbG9zZWRTdHJlYW1zKG9iamVjdCk6CiAgICAg
ICAgICMgVGhlIHN0cmVhbXMgZGljdGlvbmFyeSBzaG91bGQgYmUgZW1wdHkuCiAgICAgICAgIGFz
c2VydCBub3QgYy5zdHJlYW1zCiAKKyAgICBkZWYgdGVzdF9yZWNlaXZlX3JzdF9zdHJlYW1fb25f
Y2xvc2VkX3N0cmVhbShzZWxmLCBmcmFtZV9mYWN0b3J5KToKKyAgICAgICAgIiIiCisgICAgICAg
IFJTVF9TVFJFQU0gZnJhbWUgc2hvdWxkIGJlIGlnbm9yZWQgaWYgc3RyZWFtIGlzIGluIGEgY2xv
c2VkIHN0YXRlLgorICAgICAgICBTZWUgUkZDIDc1NDAgU2VjdGlvbiA1LjEgKGNsb3NlZCBzdGF0
ZSkKKyAgICAgICAgIiIiCisgICAgICAgIGMgPSBoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbigp
CisgICAgICAgIGMuaW5pdGlhdGVfY29ubmVjdGlvbigpCisKKyAgICAgICAgIyBDbGllbnQgc2Vu
ZHMgcmVxdWVzdAorICAgICAgICBjLnNlbmRfaGVhZGVycygxLCBzZWxmLmV4YW1wbGVfcmVxdWVz
dF9oZWFkZXJzKQorCisgICAgICAgICMgU29tZSB0aW1lIHBhc3NlcyBhbmQgY2xpZW50IHNlbmRz
IERBVEEgZnJhbWUgYW5kIGNsb3NlcyBzdHJlYW0sCisgICAgICAgICMgc28gaXQgaXMgaW4gYSBo
YWxmLWNsb3NlZCBzdGF0ZQorICAgICAgICBjLnNlbmRfZGF0YSgxLCBiJ3NvbWUgZGF0YScsIGVu
ZF9zdHJlYW09VHJ1ZSkKKworICAgICAgICAjIFNlcnZlciByZWNlaXZlZCBIRUFERVJTIGZyYW1l
IGJ1dCBEQVRBIGZyYW1lIGlzIHN0aWxsIG9uIHRoZSB3YXkuCisgICAgICAgICMgU3RyZWFtIGlz
IGluIG9wZW4gc3RhdGUgb24gdGhlIHNlcnZlci1zaWRlLiBJbiB0aGlzIHN0YXRlIHNlcnZlciBp
cworICAgICAgICAjIGFsbG93ZWQgdG8gZW5kIHN0cmVhbSBhbmQgcmVzZXQgaXQgLSB0aGlzIHRy
aWNrIGhlbHBzIGltbWVkaWF0ZWx5CisgICAgICAgICMgY2xvc2Ugc3RyZWFtIG9uIHRoZSBzZXJ2
ZXItc2lkZS4KKyAgICAgICAgaGVhZGVyc19mcmFtZSA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfaGVh
ZGVyc19mcmFtZSgKKyAgICAgICAgICAgIFsoJzpzdGF0dXMnLCAnMjAwJyldLAorICAgICAgICAg
ICAgZmxhZ3M9WydFTkRfU1RSRUFNJ10sCisgICAgICAgICAgICBzdHJlYW1faWQ9MSwKKyAgICAg
ICAgKQorICAgICAgICBldmVudHMgPSBjLnJlY2VpdmVfZGF0YShoZWFkZXJzX2ZyYW1lLnNlcmlh
bGl6ZSgpKQorICAgICAgICBhc3NlcnQgbGVuKGV2ZW50cykgPT0gMgorICAgICAgICByZXNwb25z
ZV9yZWNlaXZlZCwgc3RyZWFtX2VuZGVkID0gZXZlbnRzCisgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKHJlc3BvbnNlX3JlY2VpdmVkLCBoMi5ldmVudHMuUmVzcG9uc2VSZWNlaXZlZCkKKyAgICAg
ICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc3RyZWFtX2VuZGVkLCBoMi5ldmVudHMuU3RyZWFtRW5kZWQp
CisKKyAgICAgICAgcnN0X3N0cmVhbV9mcmFtZSA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0
cmVhbV9mcmFtZShzdHJlYW1faWQ9MSkKKyAgICAgICAgZXZlbnRzID0gYy5yZWNlaXZlX2RhdGEo
cnN0X3N0cmVhbV9mcmFtZS5zZXJpYWxpemUoKSkKKyAgICAgICAgYXNzZXJ0IG5vdCBldmVudHMK
KworICAgIGRlZiB0ZXN0X3JlY2VpdmVfd2luZG93X3VwZGF0ZV9vbl9jbG9zZWRfc3RyZWFtKHNl
bGYsIGZyYW1lX2ZhY3RvcnkpOgorICAgICAgICAiIiIKKyAgICAgICAgV0lORE9XX1VQREFURSBm
cmFtZSBzaG91bGQgYmUgaWdub3JlZCBpZiBzdHJlYW0gaXMgaW4gYSBjbG9zZWQgc3RhdGUuCisg
ICAgICAgIFNlZSBSRkMgNzU0MCBTZWN0aW9uIDUuMSAoY2xvc2VkIHN0YXRlKQorICAgICAgICAi
IiIKKyAgICAgICAgYyA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKCkKKyAgICAgICAgYy5p
bml0aWF0ZV9jb25uZWN0aW9uKCkKKworICAgICAgICAjIENsaWVudCBzZW5kcyByZXF1ZXN0Cisg
ICAgICAgIGMuc2VuZF9oZWFkZXJzKDEsIHNlbGYuZXhhbXBsZV9yZXF1ZXN0X2hlYWRlcnMpCisK
KyAgICAgICAgIyBTb21lIHRpbWUgcGFzc2VzIGFuZCBjbGllbnQgc2VuZHMgREFUQSBmcmFtZSBh
bmQgY2xvc2VzIHN0cmVhbSwKKyAgICAgICAgIyBzbyBpdCBpcyBpbiBhIGhhbGYtY2xvc2VkIHN0
YXRlCisgICAgICAgIGMuc2VuZF9kYXRhKDEsIGInc29tZSBkYXRhJywgZW5kX3N0cmVhbT1UcnVl
KQorCisgICAgICAgICMgU2VydmVyIHJlY2VpdmVkIEhFQURFUlMgZnJhbWUgYnV0IERBVEEgZnJh
bWUgaXMgc3RpbGwgb24gdGhlIHdheS4KKyAgICAgICAgIyBTdHJlYW0gaXMgaW4gb3BlbiBzdGF0
ZSBvbiB0aGUgc2VydmVyLXNpZGUuIEluIHRoaXMgc3RhdGUgc2VydmVyIGlzCisgICAgICAgICMg
YWxsb3dlZCB0byBlbmQgc3RyZWFtIGFuZCBhZnRlciB0aGF0IGFja25vd2xlZGdlIHJlY2VpdmVk
IGRhdGEgYnkKKyAgICAgICAgIyBzZW5kaW5nIFdJTkRPV19VUERBVEUgZnJhbWVzLgorICAgICAg
ICBoZWFkZXJzX2ZyYW1lID0gZnJhbWVfZmFjdG9yeS5idWlsZF9oZWFkZXJzX2ZyYW1lKAorICAg
ICAgICAgICAgWygnOnN0YXR1cycsICcyMDAnKV0sCisgICAgICAgICAgICBmbGFncz1bJ0VORF9T
VFJFQU0nXSwKKyAgICAgICAgICAgIHN0cmVhbV9pZD0xLAorICAgICAgICApCisgICAgICAgIGV2
ZW50cyA9IGMucmVjZWl2ZV9kYXRhKGhlYWRlcnNfZnJhbWUuc2VyaWFsaXplKCkpCisgICAgICAg
IGFzc2VydCBsZW4oZXZlbnRzKSA9PSAyCisgICAgICAgIHJlc3BvbnNlX3JlY2VpdmVkLCBzdHJl
YW1fZW5kZWQgPSBldmVudHMKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2VfcmVj
ZWl2ZWQsIGgyLmV2ZW50cy5SZXNwb25zZVJlY2VpdmVkKQorICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShzdHJlYW1fZW5kZWQsIGgyLmV2ZW50cy5TdHJlYW1FbmRlZCkKKworICAgICAgICB3aW5k
b3dfdXBkYXRlX2ZyYW1lID0gZnJhbWVfZmFjdG9yeS5idWlsZF93aW5kb3dfdXBkYXRlX2ZyYW1l
KAorICAgICAgICAgICAgc3RyZWFtX2lkPTEsCisgICAgICAgICAgICBpbmNyZW1lbnQ9MSwKKyAg
ICAgICAgKQorICAgICAgICBldmVudHMgPSBjLnJlY2VpdmVfZGF0YSh3aW5kb3dfdXBkYXRlX2Zy
YW1lLnNlcmlhbGl6ZSgpKQorICAgICAgICBhc3NlcnQgbm90IGV2ZW50cworCiAKIGNsYXNzIFRl
c3RTdHJlYW1zQ2xvc2VkQnlFbmRTdHJlYW0ob2JqZWN0KToKICAgICBleGFtcGxlX3JlcXVlc3Rf
aGVhZGVycyA9IFsKQEAgLTEyNCw3ICsxOTUsNiBAQCBjbGFzcyBUZXN0U3RyZWFtc0Nsb3NlZEJ5
RW5kU3RyZWFtKG9iamVjdCk6CiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAogICAgICAg
ICAiZnJhbWUiLAogICAgICAgICBbCi0gICAgICAgICAgICBsYW1iZGEgc2VsZiwgZmY6IGZmLmJ1
aWxkX2RhdGFfZnJhbWUoYidoZWxsbycpLAogICAgICAgICAgICAgbGFtYmRhIHNlbGYsIGZmOiBm
Zi5idWlsZF9oZWFkZXJzX2ZyYW1lKAogICAgICAgICAgICAgICAgIHNlbGYuZXhhbXBsZV9yZXF1
ZXN0X2hlYWRlcnMsIGZsYWdzPVsnRU5EX1NUUkVBTSddKSwKICAgICAgICAgICAgIGxhbWJkYSBz
ZWxmLCBmZjogZmYuYnVpbGRfaGVhZGVyc19mcmFtZSgKQEAgLTE3NCw3ICsyNDQsNiBAQCBjbGFz
cyBUZXN0U3RyZWFtc0Nsb3NlZEJ5RW5kU3RyZWFtKG9iamVjdCk6CiAgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKAogICAgICAgICAiZnJhbWUiLAogICAgICAgICBbCi0gICAgICAgICAgICBs
YW1iZGEgc2VsZiwgZmY6IGZmLmJ1aWxkX2RhdGFfZnJhbWUoYidoZWxsbycpLAogICAgICAgICAg
ICAgbGFtYmRhIHNlbGYsIGZmOiBmZi5idWlsZF9oZWFkZXJzX2ZyYW1lKAogICAgICAgICAgICAg
ICAgIHNlbGYuZXhhbXBsZV9yZXNwb25zZV9oZWFkZXJzLCBmbGFncz1bJ0VORF9TVFJFQU0nXSks
CiAgICAgICAgICAgICBsYW1iZGEgc2VsZiwgZmY6IGZmLmJ1aWxkX2hlYWRlcnNfZnJhbWUoCkBA
IC0yNzMsOCArMzQyLDYgQEAgY2xhc3MgVGVzdFN0cmVhbXNDbG9zZWRCeVJzdFN0cmVhbShvYmpl
Y3QpOgogICAgICAgICAgICAgICAgIHNlbGYuZXhhbXBsZV9yZXF1ZXN0X2hlYWRlcnMpLAogICAg
ICAgICAgICAgbGFtYmRhIHNlbGYsIGZmOiBmZi5idWlsZF9oZWFkZXJzX2ZyYW1lKAogICAgICAg
ICAgICAgICAgIHNlbGYuZXhhbXBsZV9yZXF1ZXN0X2hlYWRlcnMsIGZsYWdzPVsnRU5EX1NUUkVB
TSddKSwKLSAgICAgICAgICAgIGxhbWJkYSBzZWxmLCBmZjogZmYuYnVpbGRfZGF0YV9mcmFtZShi
J2hlbGxvJyksCi0gICAgICAgICAgICBsYW1iZGEgc2VsZiwgZmY6IGZmLmJ1aWxkX3dpbmRvd191
cGRhdGVfZnJhbWUoMSwgMSksCiAgICAgICAgIF0KICAgICApCiAgICAgZGVmIHRlc3RfcmVzZXRz
X2Z1cnRoZXJfZnJhbWVzX2FmdGVyX3JlY3ZfcmVzZXQoc2VsZiwKQEAgLTI4Miw3ICszNDksOCBA
QCBjbGFzcyBUZXN0U3RyZWFtc0Nsb3NlZEJ5UnN0U3RyZWFtKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUpOgogICAgICAg
ICAiIiIKICAgICAgICAgQSBzdHJlYW0gdGhhdCBpcyBjbG9zZWQgYnkgcmVjZWl2ZSBSU1RfU1RS
RUFNIGNhbiByZWNlaXZlIGZ1cnRoZXIKLSAgICAgICAgZnJhbWVzOiBpdCBzaW1wbHkgc2VuZHMg
UlNUX1NUUkVBTSBmb3IgaXQuCisgICAgICAgIGZyYW1lczogaXQgc2ltcGx5IHNlbmRzIFJTVF9T
VFJFQU0gZm9yIGl0LCBhbmQgYWRkaXRpb25hbGx5CisgICAgICAgIFdJTkRPV19VUERBVEUgZm9y
IERBVEEgZnJhbWVzLgogICAgICAgICAiIiIKICAgICAgICAgYyA9IGgyLmNvbm5lY3Rpb24uSDJD
b25uZWN0aW9uKGNvbmZpZz1zZWxmLnNlcnZlcl9jb25maWcpCiAgICAgICAgIGMucmVjZWl2ZV9k
YXRhKGZyYW1lX2ZhY3RvcnkucHJlYW1ibGUoKSkKQEAgLTMyNiw2ICszOTQsNTkgQEAgY2xhc3Mg
VGVzdFN0cmVhbXNDbG9zZWRCeVJzdFN0cmVhbShvYmplY3QpOgogICAgICAgICBhc3NlcnQgbm90
IGV2ZW50cwogICAgICAgICBhc3NlcnQgYy5kYXRhX3RvX3NlbmQoKSA9PSByc3RfZnJhbWUuc2Vy
aWFsaXplKCkgKiAzCiAKKyAgICBkZWYgdGVzdF9yZXNldHNfZnVydGhlcl9kYXRhX2ZyYW1lc19h
ZnRlcl9yZWN2X3Jlc2V0KHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV9mYWN0b3J5KToKKyAgICAgICAgIiIiCisgICAg
ICAgIEEgc3RyZWFtIHRoYXQgaXMgY2xvc2VkIGJ5IHJlY2VpdmUgUlNUX1NUUkVBTSBjYW4gcmVj
ZWl2ZSBmdXJ0aGVyCisgICAgICAgIERBVEEgZnJhbWVzOiBpdCBzaW1wbHkgc2VuZHMgV0lORE9X
X1VQREFURSBmb3IgdGhlIGNvbm5lY3Rpb24gZmxvdworICAgICAgICB3aW5kb3csIGFuZCBSU1Rf
U1RSRUFNIGZvciB0aGUgc3RyZWFtLgorICAgICAgICAiIiIKKyAgICAgICAgYyA9IGgyLmNvbm5l
Y3Rpb24uSDJDb25uZWN0aW9uKGNvbmZpZz1zZWxmLnNlcnZlcl9jb25maWcpCisgICAgICAgIGMu
cmVjZWl2ZV9kYXRhKGZyYW1lX2ZhY3RvcnkucHJlYW1ibGUoKSkKKyAgICAgICAgYy5pbml0aWF0
ZV9jb25uZWN0aW9uKCkKKworICAgICAgICBoZWFkZXJfZnJhbWUgPSBmcmFtZV9mYWN0b3J5LmJ1
aWxkX2hlYWRlcnNfZnJhbWUoCisgICAgICAgICAgICBzZWxmLmV4YW1wbGVfcmVxdWVzdF9oZWFk
ZXJzLCBmbGFncz1bJ0VORF9TVFJFQU0nXQorICAgICAgICApCisgICAgICAgIGMucmVjZWl2ZV9k
YXRhKGhlYWRlcl9mcmFtZS5zZXJpYWxpemUoKSkKKworICAgICAgICBjLnNlbmRfaGVhZGVycygK
KyAgICAgICAgICAgIHN0cmVhbV9pZD0xLAorICAgICAgICAgICAgaGVhZGVycz1zZWxmLmV4YW1w
bGVfcmVzcG9uc2VfaGVhZGVycywKKyAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UKKyAgICAg
ICAgKQorCisgICAgICAgIHJzdF9mcmFtZSA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0cmVh
bV9mcmFtZSgKKyAgICAgICAgICAgIDEsIGgyLmVycm9ycy5FcnJvckNvZGVzLlNUUkVBTV9DTE9T
RUQKKyAgICAgICAgKQorICAgICAgICBjLnJlY2VpdmVfZGF0YShyc3RfZnJhbWUuc2VyaWFsaXpl
KCkpCisgICAgICAgIGMuY2xlYXJfb3V0Ym91bmRfZGF0YV9idWZmZXIoKQorCisgICAgICAgIGYg
PSBmcmFtZV9mYWN0b3J5LmJ1aWxkX2RhdGFfZnJhbWUoCisgICAgICAgICAgICBkYXRhPWInc29t
ZSBkYXRhJworICAgICAgICApCisKKyAgICAgICAgZXZlbnRzID0gYy5yZWNlaXZlX2RhdGEoZi5z
ZXJpYWxpemUoKSkKKyAgICAgICAgYXNzZXJ0IG5vdCBldmVudHMKKworICAgICAgICBleHBlY3Rl
ZCA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0cmVhbV9mcmFtZSgKKyAgICAgICAgICAgIHN0
cmVhbV9pZD0xLAorICAgICAgICAgICAgZXJyb3JfY29kZT1oMi5lcnJvcnMuRXJyb3JDb2Rlcy5T
VFJFQU1fQ0xPU0VELAorICAgICAgICApLnNlcmlhbGl6ZSgpCisgICAgICAgIGFzc2VydCBjLmRh
dGFfdG9fc2VuZCgpID09IGV4cGVjdGVkCisKKyAgICAgICAgZXZlbnRzID0gYy5yZWNlaXZlX2Rh
dGEoZi5zZXJpYWxpemUoKSAqIDMpCisgICAgICAgIGFzc2VydCBub3QgZXZlbnRzCisgICAgICAg
IGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkICogMworCisgICAgICAgICMgSXRl
cmF0ZSBvdmVyIHRoZSBzdHJlYW1zIHRvIG1ha2Ugc3VyZSBpdCdzIGdvbmUsIHRoZW4gY29uZmly
bSB0aGUKKyAgICAgICAgIyBiZWhhdmlvdXIgaXMgdW5jaGFuZ2VkLgorICAgICAgICBjLm9wZW5f
b3V0Ym91bmRfc3RyZWFtcworCisgICAgICAgIGV2ZW50cyA9IGMucmVjZWl2ZV9kYXRhKGYuc2Vy
aWFsaXplKCkgKiAzKQorICAgICAgICBhc3NlcnQgbm90IGV2ZW50cworICAgICAgICBhc3NlcnQg
Yy5kYXRhX3RvX3NlbmQoKSA9PSBleHBlY3RlZCAqIDMKKwogICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgKICAgICAgICAgImZyYW1lIiwKICAgICAgICAgWwpAQCAtMzMzLDggKzQ1NCw2IEBA
IGNsYXNzIFRlc3RTdHJlYW1zQ2xvc2VkQnlSc3RTdHJlYW0ob2JqZWN0KToKICAgICAgICAgICAg
ICAgICBzZWxmLmV4YW1wbGVfcmVxdWVzdF9oZWFkZXJzKSwKICAgICAgICAgICAgIGxhbWJkYSBz
ZWxmLCBmZjogZmYuYnVpbGRfaGVhZGVyc19mcmFtZSgKICAgICAgICAgICAgICAgICBzZWxmLmV4
YW1wbGVfcmVxdWVzdF9oZWFkZXJzLCBmbGFncz1bJ0VORF9TVFJFQU0nXSksCi0gICAgICAgICAg
ICBsYW1iZGEgc2VsZiwgZmY6IGZmLmJ1aWxkX2RhdGFfZnJhbWUoYidoZWxsbycpLAotICAgICAg
ICAgICAgbGFtYmRhIHNlbGYsIGZmOiBmZi5idWlsZF93aW5kb3dfdXBkYXRlX2ZyYW1lKDEsIDEp
LAogICAgICAgICBdCiAgICAgKQogICAgIGRlZiB0ZXN0X3Jlc2V0c19mdXJ0aGVyX2ZyYW1lc19h
ZnRlcl9zZW5kX3Jlc2V0KHNlbGYsCkBAIC0zODYsMyArNTA1LDUxIEBAIGNsYXNzIFRlc3RTdHJl
YW1zQ2xvc2VkQnlSc3RTdHJlYW0ob2JqZWN0KToKICAgICAgICAgZXZlbnRzID0gYy5yZWNlaXZl
X2RhdGEoZi5zZXJpYWxpemUoKSAqIDMpCiAgICAgICAgIGFzc2VydCBub3QgZXZlbnRzCiAgICAg
ICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IHJzdF9mcmFtZS5zZXJpYWxpemUoKSAqIDMK
KworICAgIGRlZiB0ZXN0X3Jlc2V0c19mdXJ0aGVyX2RhdGFfZnJhbWVzX2FmdGVyX3NlbmRfcmVz
ZXQoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZyYW1lX2ZhY3RvcnkpOgorICAgICAgICAiIiIKKyAgICAgICAgQSBzdHJlYW0g
dGhhdCBpcyBjbG9zZWQgYnkgc2VudCBSU1RfU1RSRUFNIGNhbiByZWNlaXZlIGZ1cnRoZXIKKyAg
ICAgICAgZGF0YSBmcmFtZXM6IGl0IHNpbXBseSBzZW5kcyBXSU5ET1dfVVBEQVRFIGFuZCBSU1Rf
U1RSRUFNIGZvciBpdC4KKyAgICAgICAgIiIiCisgICAgICAgIGMgPSBoMi5jb25uZWN0aW9uLkgy
Q29ubmVjdGlvbihjb25maWc9c2VsZi5zZXJ2ZXJfY29uZmlnKQorICAgICAgICBjLnJlY2VpdmVf
ZGF0YShmcmFtZV9mYWN0b3J5LnByZWFtYmxlKCkpCisgICAgICAgIGMuaW5pdGlhdGVfY29ubmVj
dGlvbigpCisKKyAgICAgICAgaGVhZGVyX2ZyYW1lID0gZnJhbWVfZmFjdG9yeS5idWlsZF9oZWFk
ZXJzX2ZyYW1lKAorICAgICAgICAgICAgc2VsZi5leGFtcGxlX3JlcXVlc3RfaGVhZGVycywgZmxh
Z3M9WydFTkRfU1RSRUFNJ10KKyAgICAgICAgKQorICAgICAgICBjLnJlY2VpdmVfZGF0YShoZWFk
ZXJfZnJhbWUuc2VyaWFsaXplKCkpCisKKyAgICAgICAgYy5zZW5kX2hlYWRlcnMoCisgICAgICAg
ICAgICBzdHJlYW1faWQ9MSwKKyAgICAgICAgICAgIGhlYWRlcnM9c2VsZi5leGFtcGxlX3Jlc3Bv
bnNlX2hlYWRlcnMsCisgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlCisgICAgICAgICkKKwor
ICAgICAgICBjLnJlc2V0X3N0cmVhbSgxLCBoMi5lcnJvcnMuRXJyb3JDb2Rlcy5JTlRFUk5BTF9F
UlJPUikKKworICAgICAgICBjLmNsZWFyX291dGJvdW5kX2RhdGFfYnVmZmVyKCkKKworICAgICAg
ICBmID0gZnJhbWVfZmFjdG9yeS5idWlsZF9kYXRhX2ZyYW1lKAorICAgICAgICAgICAgZGF0YT1i
J3NvbWUgZGF0YScKKyAgICAgICAgKQorICAgICAgICBldmVudHMgPSBjLnJlY2VpdmVfZGF0YShm
LnNlcmlhbGl6ZSgpKQorICAgICAgICBhc3NlcnQgbm90IGV2ZW50cworICAgICAgICBleHBlY3Rl
ZCA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0cmVhbV9mcmFtZSgKKyAgICAgICAgICAgIHN0
cmVhbV9pZD0xLAorICAgICAgICAgICAgZXJyb3JfY29kZT1oMi5lcnJvcnMuRXJyb3JDb2Rlcy5T
VFJFQU1fQ0xPU0VELAorICAgICAgICApLnNlcmlhbGl6ZSgpCisgICAgICAgIGFzc2VydCBjLmRh
dGFfdG9fc2VuZCgpID09IGV4cGVjdGVkCisKKyAgICAgICAgZXZlbnRzID0gYy5yZWNlaXZlX2Rh
dGEoZi5zZXJpYWxpemUoKSAqIDMpCisgICAgICAgIGFzc2VydCBub3QgZXZlbnRzCisgICAgICAg
IGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkICogMworCisgICAgICAgICMgSXRl
cmF0ZSBvdmVyIHRoZSBzdHJlYW1zIHRvIG1ha2Ugc3VyZSBpdCdzIGdvbmUsIHRoZW4gY29uZmly
bSB0aGUKKyAgICAgICAgIyBiZWhhdmlvdXIgaXMgdW5jaGFuZ2VkLgorICAgICAgICBjLm9wZW5f
b3V0Ym91bmRfc3RyZWFtcworCisgICAgICAgIGV2ZW50cyA9IGMucmVjZWl2ZV9kYXRhKGYuc2Vy
aWFsaXplKCkgKiAzKQorICAgICAgICBhc3NlcnQgbm90IGV2ZW50cworICAgICAgICBhc3NlcnQg
Yy5kYXRhX3RvX3NlbmQoKSA9PSBleHBlY3RlZCAqIDMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVz
dC90ZXN0X2V2ZW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2V2ZW50cy5weQppbmRleCAwNmY3
ZGEzOWM3YmVlM2VjNjYzNTc0MzVlMzhiYzkwYmE1Yzc4MDcxLi5hNmU4ZDgzNzkwNjY4MGQ2NWNh
NmRmNTliY2EyYzFlNzU0NjAzYjM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9ldmVu
dHMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfZXZlbnRzLnB5CkBAIC0yMTMsMTQgKzIxMywy
MyBAQCBjbGFzcyBUZXN0RXZlbnRSZXBycyhvYmplY3QpOgogICAgICAgICAgICAgIm5ld192YWx1
ZT0zMjc2OCl9PiIKICAgICAgICAgKQogCi0gICAgZGVmIHRlc3RfcGluZ2Fja25vd2xlZGdlZF9y
ZXByKHNlbGYpOgorICAgIGRlZiB0ZXN0X3BpbmdyZWNlaXZlZF9yZXByKHNlbGYpOgogICAgICAg
ICAiIiIKLSAgICAgICAgUGluZ0Fja25vd2xlZGdlZCBoYXMgYSB1c2VmdWwgZGVidWcgcmVwcmVz
ZW50YXRpb24uCisgICAgICAgIFBpbmdSZWNlaXZlZCBoYXMgYSB1c2VmdWwgZGVidWcgcmVwcmVz
ZW50YXRpb24uCiAgICAgICAgICIiIgotICAgICAgICBlID0gaDIuZXZlbnRzLlBpbmdBY2tub3ds
ZWRnZWQoKQorICAgICAgICBlID0gaDIuZXZlbnRzLlBpbmdSZWNlaXZlZCgpCiAgICAgICAgIGUu
cGluZ19kYXRhID0gYidhYmNkZWZnaCcKIAotICAgICAgICBhc3NlcnQgcmVwcihlKSA9PSAiPFBp
bmdBY2tub3dsZWRnZWQgcGluZ19kYXRhOjYxNjI2MzY0NjU2NjY3Njg+IgorICAgICAgICBhc3Nl
cnQgcmVwcihlKSA9PSAiPFBpbmdSZWNlaXZlZCBwaW5nX2RhdGE6NjE2MjYzNjQ2NTY2Njc2OD4i
CisKKyAgICBkZWYgdGVzdF9waW5nYWNrcmVjZWl2ZWRfcmVwcihzZWxmKToKKyAgICAgICAgIiIi
CisgICAgICAgIFBpbmdBY2tSZWNlaXZlZCBoYXMgYSB1c2VmdWwgZGVidWcgcmVwcmVzZW50YXRp
b24uCisgICAgICAgICIiIgorICAgICAgICBlID0gaDIuZXZlbnRzLlBpbmdBY2tSZWNlaXZlZCgp
CisgICAgICAgIGUucGluZ19kYXRhID0gYidhYmNkZWZnaCcKKworICAgICAgICBhc3NlcnQgcmVw
cihlKSA9PSAiPFBpbmdBY2tSZWNlaXZlZCBwaW5nX2RhdGE6NjE2MjYzNjQ2NTY2Njc2OD4iCiAK
ICAgICBkZWYgdGVzdF9zdHJlYW1lbmRlZF9yZXByKHNlbGYpOgogICAgICAgICAiIiIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2Zsb3dfY29udHJvbF93aW5kb3cucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L3Rlc3QvdGVzdF9mbG93X2NvbnRyb2xfd2luZG93LnB5CmluZGV4IDM4MGNkNjFlM2IxOWFiYzQ3
ZWY3NzM1MjFlODlmNDY0NTY2YjhhNGYuLjI0YjM0NWFhYzNhM2ZlYTdiN2E1MTUxYWYyZDQwNWIw
ZDZjZGIxNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2Zsb3dfY29udHJvbF93aW5k
b3cucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfZmxvd19jb250cm9sX3dpbmRvdy5weQpAQCAt
NjM4LDYgKzYzOCw0MiBAQCBjbGFzcyBUZXN0Rmxvd0NvbnRyb2wob2JqZWN0KToKICAgICAgICAg
d2l0aCBweXRlc3QucmFpc2VzKGgyLmV4Y2VwdGlvbnMuRmxvd0NvbnRyb2xFcnJvcik6CiAgICAg
ICAgICAgICBjLmluY3JlbWVudF9mbG93X2NvbnRyb2xfd2luZG93KGluY3JlbWVudD1pbmNyZW1l
bnQsIHN0cmVhbV9pZD0xKQogCisgICAgZGVmIHRlc3Rfc2VuZF91cGRhdGVfb25fY2xvc2VkX3N0
cmVhbXMoc2VsZiwgZnJhbWVfZmFjdG9yeSk6CisgICAgICAgIGMgPSBoMi5jb25uZWN0aW9uLkgy
Q29ubmVjdGlvbigpCisgICAgICAgIGMuaW5pdGlhdGVfY29ubmVjdGlvbigpCisgICAgICAgIGMu
c2VuZF9oZWFkZXJzKDEsIHNlbGYuZXhhbXBsZV9yZXF1ZXN0X2hlYWRlcnMpCisgICAgICAgIGMu
cmVzZXRfc3RyZWFtKDEpCisKKyAgICAgICAgYy5jbGVhcl9vdXRib3VuZF9kYXRhX2J1ZmZlcigp
CisgICAgICAgIGMub3Blbl9vdXRib3VuZF9zdHJlYW1zCisgICAgICAgIGMub3Blbl9pbmJvdW5k
X3N0cmVhbXMKKworICAgICAgICBmID0gZnJhbWVfZmFjdG9yeS5idWlsZF9kYXRhX2ZyYW1lKGIn
c29tZSBkYXRhJyoxNTAwKQorICAgICAgICBldmVudHMgPSBjLnJlY2VpdmVfZGF0YShmLnNlcmlh
bGl6ZSgpKjMpCisgICAgICAgIGFzc2VydCBub3QgZXZlbnRzCisKKyAgICAgICAgZXhwZWN0ZWQg
PSBmcmFtZV9mYWN0b3J5LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUoCisgICAgICAgICAgICBzdHJl
YW1faWQ9MSwKKyAgICAgICAgICAgIGVycm9yX2NvZGU9aDIuZXJyb3JzLkVycm9yQ29kZXMuU1RS
RUFNX0NMT1NFRCwKKyAgICAgICAgKS5zZXJpYWxpemUoKSAqIDIgKyBmcmFtZV9mYWN0b3J5LmJ1
aWxkX3dpbmRvd191cGRhdGVfZnJhbWUoCisgICAgICAgICAgICBzdHJlYW1faWQ9MCwKKyAgICAg
ICAgICAgIGluY3JlbWVudD00MDUwMCwKKyAgICAgICAgKS5zZXJpYWxpemUoKSArIGZyYW1lX2Zh
Y3RvcnkuYnVpbGRfcnN0X3N0cmVhbV9mcmFtZSgKKyAgICAgICAgICAgIHN0cmVhbV9pZD0xLAor
ICAgICAgICAgICAgZXJyb3JfY29kZT1oMi5lcnJvcnMuRXJyb3JDb2Rlcy5TVFJFQU1fQ0xPU0VE
LAorICAgICAgICApLnNlcmlhbGl6ZSgpCisgICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgp
ID09IGV4cGVjdGVkCisKKyAgICAgICAgZiA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfZGF0YV9mcmFt
ZShiJycpCisgICAgICAgIGV2ZW50cyA9IGMucmVjZWl2ZV9kYXRhKGYuc2VyaWFsaXplKCkpCisg
ICAgICAgIGFzc2VydCBub3QgZXZlbnRzCisKKyAgICAgICAgZXhwZWN0ZWQgPSBmcmFtZV9mYWN0
b3J5LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUoCisgICAgICAgICAgICBzdHJlYW1faWQ9MSwKKyAg
ICAgICAgICAgIGVycm9yX2NvZGU9aDIuZXJyb3JzLkVycm9yQ29kZXMuU1RSRUFNX0NMT1NFRCwK
KyAgICAgICAgKS5zZXJpYWxpemUoKQorICAgICAgICBhc3NlcnQgYy5kYXRhX3RvX3NlbmQoKSA9
PSBleHBlY3RlZAorCiAKIGNsYXNzIFRlc3RBdXRvbWF0aWNGbG93Q29udHJvbChvYmplY3QpOgog
ICAgICIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfaDJfdXBncmFkZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvdGVzdC90ZXN0X2gyX3VwZ3JhZGUucHkKaW5kZXggMWQ0ZWFjNjdmNjQ3MjBkMGZhODIz
YWY1ZThhODNiODdlYmVjODdhYi4uZDYzZDQ0ZjNmNzhjMjBlZWZhYmU1YTZjMThkNmIwMjI3YTlk
YjFjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfaDJfdXBncmFkZS5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL3Rlc3QvdGVzdF9oMl91cGdyYWRlLnB5CkBAIC0yNjAsMTEgKzI2MCwxMSBAQCBjbGFz
cyBUZXN0U2VydmVyVXBncmFkZShvYmplY3QpOgogICAgICAgICApCiAgICAgICAgIGMucmVjZWl2
ZV9kYXRhKGYuc2VyaWFsaXplKCkpCiAKLSAgICAgICAgZXhwZWN0ZWRfZnJhbWUgPSBmcmFtZV9m
YWN0b3J5LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUoCisgICAgICAgIGV4cGVjdGVkID0gZnJhbWVf
ZmFjdG9yeS5idWlsZF9yc3Rfc3RyZWFtX2ZyYW1lKAogICAgICAgICAgICAgc3RyZWFtX2lkPTEs
CiAgICAgICAgICAgICBlcnJvcl9jb2RlPWgyLmVycm9ycy5FcnJvckNvZGVzLlNUUkVBTV9DTE9T
RUQsCi0gICAgICAgICkKLSAgICAgICAgYXNzZXJ0IGMuZGF0YV90b19zZW5kKCkgPT0gZXhwZWN0
ZWRfZnJhbWUuc2VyaWFsaXplKCkKKyAgICAgICAgKS5zZXJpYWxpemUoKQorICAgICAgICBhc3Nl
cnQgYy5kYXRhX3RvX3NlbmQoKSA9PSBleHBlY3RlZAogCiAgICAgZGVmIHRlc3RfY2xpZW50X3Nl
dHRpbmdzX2FyZV9hcHBsaWVkKHNlbGYsIGZyYW1lX2ZhY3RvcnkpOgogICAgICAgICAiIiIKQEAg
LTI3OCw3ICsyNzgsNyBAQCBjbGFzcyBUZXN0U2VydmVyVXBncmFkZShvYmplY3QpOgogICAgICAg
ICAjIHN0YXJ0IG9mIHRoZSBjb25uZWN0aW9uLCBkbyBub3QgYWdyZWUgb24gdGhlaXIgaW5pdGlh
bCBzZXR0aW5ncwogICAgICAgICAjIHN0YXRlLgogICAgICAgICBhc3NlcnQgKAotICAgICAgICAg
ICAgY2xpZW50LmxvY2FsX3NldHRpbmdzLl9zZXR0aW5ncyAhPSBzZXJ2ZXIucmVtb3RlX3NldHRp
bmdzLl9zZXR0aW5ncworICAgICAgICAgICAgY2xpZW50LmxvY2FsX3NldHRpbmdzICE9IHNlcnZl
ci5yZW1vdGVfc2V0dGluZ3MKICAgICAgICAgKQogCiAgICAgICAgICMgR2V0IHRoZSBjbGllbnQg
aGVhZGVyIGRhdGEgYW5kIHBhc3MgaXQgdG8gdGhlIHNlcnZlci4KQEAgLTI5NywxMCArMjk3LDYg
QEAgY2xhc3MgVGVzdFNlcnZlclVwZ3JhZGUob2JqZWN0KToKICAgICAgICAgKQogICAgICAgICBh
c3NlcnQgc2VydmVyLmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkX2ZyYW1lLnNlcmlhbGl6ZSgp
CiAKLSAgICAgICAgIyBXZSB2aW9sYXRlIGFic3RyYWN0aW9uIGxheWVycyBoZXJlLCBidXQgSSBk
b24ndCB0aGluayBkZWZpbmluZyBfX2VxX18KLSAgICAgICAgIyBmb3IgdGhpcyBpcyB3b3J0aCBp
dC4gSW4gdGhpcyBjYXNlLCBib3RoIHRoZSBjbGllbnQgYW5kIHNlcnZlciBzaG91bGQKLSAgICAg
ICAgIyBhZ3JlZSB0aGF0IHRoZXNlIHNldHRpbmdzIGhhdmUgYmVlbiBBQ0snZCwgc28gdGhlaXIg
dW5kZXJseWluZwotICAgICAgICAjIGRpY3Rpb25hcmllcyBzaG91bGQgYmUgaWRlbnRpY2FsLgog
ICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgY2xpZW50LmxvY2FsX3NldHRpbmdzLl9zZXR0
aW5ncyA9PSBzZXJ2ZXIucmVtb3RlX3NldHRpbmdzLl9zZXR0aW5ncworICAgICAgICAgICAgY2xp
ZW50LmxvY2FsX3NldHRpbmdzID09IHNlcnZlci5yZW1vdGVfc2V0dGluZ3MKICAgICAgICAgKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfaGVhZF9yZXF1ZXN0LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90
ZXN0L3Rlc3RfaGVhZF9yZXF1ZXN0LnB5CmluZGV4IDMxM2JmMTJhN2MzMTIzOTBiZmZjZDY2Mjcz
NDc0ZDQ4MTUyODJkMmUuLmVmNzMwMDcyNTRlNDdhOTliYjczZTkwNTJjZWUxZGQwZjNiMjAxNmUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2hlYWRfcmVxdWVzdC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL3Rlc3QvdGVzdF9oZWFkX3JlcXVlc3QucHkKQEAgLTgsNDkgKzgsNDggQEAgaW1wb3J0IHB5
dGVzdAogCiAKIGNsYXNzIFRlc3RIZWFkUmVxdWVzdChvYmplY3QpOgotCi0gICAgICAgIGV4YW1w
bGVfcmVxdWVzdF9oZWFkZXJzID0gWwotICAgICAgICAgICAgKGInOmF1dGhvcml0eScsIGInZXhh
bXBsZS5jb20nKSwKLSAgICAgICAgICAgIChiJzpwYXRoJywgYicvJyksCi0gICAgICAgICAgICAo
Yic6c2NoZW1lJywgYidodHRwcycpLAotICAgICAgICAgICAgKGInOm1ldGhvZCcsIGInSEVBRCcp
LAotICAgICAgICBdCi0KLSAgICAgICAgZXhhbXBsZV9yZXNwb25zZV9oZWFkZXJzID0gWwotICAg
ICAgICAgICAgKGInOnN0YXR1cycsIGInMjAwJyksCi0gICAgICAgICAgICAoYidzZXJ2ZXInLCBi
J2Zha2Utc2Vydi8wLjEuMCcpLAotICAgICAgICAgICAgKGInY29udGVudF9sZW5ndGgnLCBiJzEn
KSwKLSAgICAgICAgXQotCi0gICAgICAgIGRlZiB0ZXN0X25vbl96ZXJvX2NvbnRlbnRfYW5kX25v
X2JvZHkoc2VsZiwgZnJhbWVfZmFjdG9yeSk6Ci0KLSAgICAgICAgICAgIGMgPSBoMi5jb25uZWN0
aW9uLkgyQ29ubmVjdGlvbigpCi0gICAgICAgICAgICBjLmluaXRpYXRlX2Nvbm5lY3Rpb24oKQot
ICAgICAgICAgICAgYy5zZW5kX2hlYWRlcnMoMSwgc2VsZi5leGFtcGxlX3JlcXVlc3RfaGVhZGVy
cywgZW5kX3N0cmVhbT1UcnVlKQotCi0gICAgICAgICAgICBmID0gZnJhbWVfZmFjdG9yeS5idWls
ZF9oZWFkZXJzX2ZyYW1lKAotICAgICAgICAgICAgICAgIHNlbGYuZXhhbXBsZV9yZXNwb25zZV9o
ZWFkZXJzLAotICAgICAgICAgICAgICAgIGZsYWdzPVsnRU5EX1NUUkVBTSddCi0gICAgICAgICAg
ICApCi0gICAgICAgICAgICBldmVudHMgPSBjLnJlY2VpdmVfZGF0YShmLnNlcmlhbGl6ZSgpKQot
Ci0gICAgICAgICAgICBhc3NlcnQgbGVuKGV2ZW50cykgPT0gMgotICAgICAgICAgICAgZXZlbnQg
PSBldmVudHNbMF0KLQotICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZXZlbnQsIGgyLmV2
ZW50cy5SZXNwb25zZVJlY2VpdmVkKQotICAgICAgICAgICAgYXNzZXJ0IGV2ZW50LnN0cmVhbV9p
ZCA9PSAxCi0gICAgICAgICAgICBhc3NlcnQgZXZlbnQuaGVhZGVycyA9PSBzZWxmLmV4YW1wbGVf
cmVzcG9uc2VfaGVhZGVycwotCi0gICAgICAgIGRlZiB0ZXN0X3JlamVjdF9ub25femVyb19jb250
ZW50X2FuZF9ib2R5KHNlbGYsIGZyYW1lX2ZhY3RvcnkpOgotICAgICAgICAgICAgYyA9IGgyLmNv
bm5lY3Rpb24uSDJDb25uZWN0aW9uKCkKLSAgICAgICAgICAgIGMuaW5pdGlhdGVfY29ubmVjdGlv
bigpCi0gICAgICAgICAgICBjLnNlbmRfaGVhZGVycygxLCBzZWxmLmV4YW1wbGVfcmVxdWVzdF9o
ZWFkZXJzKQotCi0gICAgICAgICAgICBoZWFkZXJzID0gZnJhbWVfZmFjdG9yeS5idWlsZF9oZWFk
ZXJzX2ZyYW1lKAotICAgICAgICAgICAgICAgIHNlbGYuZXhhbXBsZV9yZXNwb25zZV9oZWFkZXJz
Ci0gICAgICAgICAgICApCi0gICAgICAgICAgICBkYXRhID0gZnJhbWVfZmFjdG9yeS5idWlsZF9k
YXRhX2ZyYW1lKGRhdGE9YidceDAxJykKLQotICAgICAgICAgICAgYy5yZWNlaXZlX2RhdGEoaGVh
ZGVycy5zZXJpYWxpemUoKSkKLSAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhoMi5leGNl
cHRpb25zLkludmFsaWRCb2R5TGVuZ3RoRXJyb3IpOgotICAgICAgICAgICAgICAgIGMucmVjZWl2
ZV9kYXRhKGRhdGEuc2VyaWFsaXplKCkpCisgICAgZXhhbXBsZV9yZXF1ZXN0X2hlYWRlcnMgPSBb
CisgICAgICAgIChiJzphdXRob3JpdHknLCBiJ2V4YW1wbGUuY29tJyksCisgICAgICAgIChiJzpw
YXRoJywgYicvJyksCisgICAgICAgIChiJzpzY2hlbWUnLCBiJ2h0dHBzJyksCisgICAgICAgIChi
JzptZXRob2QnLCBiJ0hFQUQnKSwKKyAgICBdCisKKyAgICBleGFtcGxlX3Jlc3BvbnNlX2hlYWRl
cnMgPSBbCisgICAgICAgIChiJzpzdGF0dXMnLCBiJzIwMCcpLAorICAgICAgICAoYidzZXJ2ZXIn
LCBiJ2Zha2Utc2Vydi8wLjEuMCcpLAorICAgICAgICAoYidjb250ZW50X2xlbmd0aCcsIGInMScp
LAorICAgIF0KKworICAgIGRlZiB0ZXN0X25vbl96ZXJvX2NvbnRlbnRfYW5kX25vX2JvZHkoc2Vs
ZiwgZnJhbWVfZmFjdG9yeSk6CisKKyAgICAgICAgYyA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0
aW9uKCkKKyAgICAgICAgYy5pbml0aWF0ZV9jb25uZWN0aW9uKCkKKyAgICAgICAgYy5zZW5kX2hl
YWRlcnMoMSwgc2VsZi5leGFtcGxlX3JlcXVlc3RfaGVhZGVycywgZW5kX3N0cmVhbT1UcnVlKQor
CisgICAgICAgIGYgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX2hlYWRlcnNfZnJhbWUoCisgICAgICAg
ICAgICBzZWxmLmV4YW1wbGVfcmVzcG9uc2VfaGVhZGVycywKKyAgICAgICAgICAgIGZsYWdzPVsn
RU5EX1NUUkVBTSddCisgICAgICAgICkKKyAgICAgICAgZXZlbnRzID0gYy5yZWNlaXZlX2RhdGEo
Zi5zZXJpYWxpemUoKSkKKworICAgICAgICBhc3NlcnQgbGVuKGV2ZW50cykgPT0gMgorICAgICAg
ICBldmVudCA9IGV2ZW50c1swXQorCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGV2ZW50LCBo
Mi5ldmVudHMuUmVzcG9uc2VSZWNlaXZlZCkKKyAgICAgICAgYXNzZXJ0IGV2ZW50LnN0cmVhbV9p
ZCA9PSAxCisgICAgICAgIGFzc2VydCBldmVudC5oZWFkZXJzID09IHNlbGYuZXhhbXBsZV9yZXNw
b25zZV9oZWFkZXJzCisKKyAgICBkZWYgdGVzdF9yZWplY3Rfbm9uX3plcm9fY29udGVudF9hbmRf
Ym9keShzZWxmLCBmcmFtZV9mYWN0b3J5KToKKyAgICAgICAgYyA9IGgyLmNvbm5lY3Rpb24uSDJD
b25uZWN0aW9uKCkKKyAgICAgICAgYy5pbml0aWF0ZV9jb25uZWN0aW9uKCkKKyAgICAgICAgYy5z
ZW5kX2hlYWRlcnMoMSwgc2VsZi5leGFtcGxlX3JlcXVlc3RfaGVhZGVycykKKworICAgICAgICBo
ZWFkZXJzID0gZnJhbWVfZmFjdG9yeS5idWlsZF9oZWFkZXJzX2ZyYW1lKAorICAgICAgICAgICAg
c2VsZi5leGFtcGxlX3Jlc3BvbnNlX2hlYWRlcnMKKyAgICAgICAgKQorICAgICAgICBkYXRhID0g
ZnJhbWVfZmFjdG9yeS5idWlsZF9kYXRhX2ZyYW1lKGRhdGE9YidceDAxJykKKworICAgICAgICBj
LnJlY2VpdmVfZGF0YShoZWFkZXJzLnNlcmlhbGl6ZSgpKQorICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoaDIuZXhjZXB0aW9ucy5JbnZhbGlkQm9keUxlbmd0aEVycm9yKToKKyAgICAgICAgICAg
IGMucmVjZWl2ZV9kYXRhKGRhdGEuc2VyaWFsaXplKCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rl
c3QvdGVzdF9pbnZhbGlkX2ZyYW1lX3NlcXVlbmNlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2lu
dmFsaWRfZnJhbWVfc2VxdWVuY2VzLnB5CmluZGV4IDFmMmY2Yzc3YWFlOTgwM2E2YjZlNTVlYmVm
NTUyMmMwZDhkNTQ3MzIuLjEyYjcwYzRhNmJjYjZkMWI3ZTQyNTI0MDc4OTg5MzNjM2Y5YzlhYWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2ludmFsaWRfZnJhbWVfc2VxdWVuY2VzLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2ludmFsaWRfZnJhbWVfc2VxdWVuY2VzLnB5CkBAIC0x
NDksMTQgKzE0OSwxNiBAQCBjbGFzcyBUZXN0SW52YWxpZEZyYW1lU2VxdWVuY2VzKG9iamVjdCk6
CiAgICAgICAgIGMucmVjZWl2ZV9kYXRhKGYuc2VyaWFsaXplKCkpCiAgICAgICAgIGMuY2xlYXJf
b3V0Ym91bmRfZGF0YV9idWZmZXIoKQogCi0gICAgICAgIGJhZF9mcmFtZSA9IGZyYW1lX2ZhY3Rv
cnkuYnVpbGRfZGF0YV9mcmFtZShkYXRhPWInaGVsbG8nKQorICAgICAgICBiYWRfZnJhbWUgPSBm
cmFtZV9mYWN0b3J5LmJ1aWxkX2RhdGFfZnJhbWUoCisgICAgICAgICAgICBkYXRhPWInc29tZSBk
YXRhJworICAgICAgICApCiAgICAgICAgIGMucmVjZWl2ZV9kYXRhKGJhZF9mcmFtZS5zZXJpYWxp
emUoKSkKIAotICAgICAgICBleHBlY3RlZF9mcmFtZSA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0
X3N0cmVhbV9mcmFtZSgKKyAgICAgICAgZXhwZWN0ZWQgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX3Jz
dF9zdHJlYW1fZnJhbWUoCiAgICAgICAgICAgICBzdHJlYW1faWQ9MSwKLSAgICAgICAgICAgIGVy
cm9yX2NvZGU9MHg1LAotICAgICAgICApCi0gICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgp
ID09IGV4cGVjdGVkX2ZyYW1lLnNlcmlhbGl6ZSgpCisgICAgICAgICAgICBlcnJvcl9jb2RlPWgy
LmVycm9ycy5FcnJvckNvZGVzLlNUUkVBTV9DTE9TRUQsCisgICAgICAgICkuc2VyaWFsaXplKCkK
KyAgICAgICAgYXNzZXJ0IGMuZGF0YV90b19zZW5kKCkgPT0gZXhwZWN0ZWQKIAogICAgIGRlZiB0
ZXN0X3VuZXhwZWN0ZWRfY29udGludWF0aW9uX29uX2Nsb3NlZF9zdHJlYW0oc2VsZiwgZnJhbWVf
ZmFjdG9yeSk6CiAgICAgICAgICIiIgpAQCAtMjkzLDE1ICsyOTUsMTUgQEAgY2xhc3MgVGVzdElu
dmFsaWRGcmFtZVNlcXVlbmNlcyhvYmplY3QpOgogICAgICAgICBjLmNsZWFyX291dGJvdW5kX2Rh
dGFfYnVmZmVyKCkKIAogICAgICAgICBiYWRfZnJhbWUgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX2Rh
dGFfZnJhbWUoCi0gICAgICAgICAgICBkYXRhPWInaGVsbG8nCisgICAgICAgICAgICBkYXRhPWIn
c29tZSBkYXRhJwogICAgICAgICApCiAgICAgICAgIGV2ZW50cyA9IGMucmVjZWl2ZV9kYXRhKGJh
ZF9mcmFtZS5zZXJpYWxpemUoKSkKIAotICAgICAgICBleHBlY3RlZF9mcmFtZSA9IGZyYW1lX2Zh
Y3RvcnkuYnVpbGRfcnN0X3N0cmVhbV9mcmFtZSgKKyAgICAgICAgZXhwZWN0ZWQgPSBmcmFtZV9m
YWN0b3J5LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUoCiAgICAgICAgICAgICBzdHJlYW1faWQ9MSwK
LSAgICAgICAgICAgIGVycm9yX2NvZGU9MHg1LAotICAgICAgICApCi0gICAgICAgIGFzc2VydCBj
LmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkX2ZyYW1lLnNlcmlhbGl6ZSgpCisgICAgICAgICAg
ICBlcnJvcl9jb2RlPWgyLmVycm9ycy5FcnJvckNvZGVzLlNUUkVBTV9DTE9TRUQsCisgICAgICAg
ICkuc2VyaWFsaXplKCkKKyAgICAgICAgYXNzZXJ0IGMuZGF0YV90b19zZW5kKCkgPT0gZXhwZWN0
ZWQKIAogICAgICAgICBhc3NlcnQgbGVuKGV2ZW50cykgPT0gMQogICAgICAgICBldmVudCA9IGV2
ZW50c1swXQpAQCAtMzI3LDE2ICszMjksMTYgQEAgY2xhc3MgVGVzdEludmFsaWRGcmFtZVNlcXVl
bmNlcyhvYmplY3QpOgogICAgICAgICBjLmNsZWFyX291dGJvdW5kX2RhdGFfYnVmZmVyKCkKIAog
ICAgICAgICBiYWRfZnJhbWUgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX2RhdGFfZnJhbWUoCi0gICAg
ICAgICAgICBkYXRhPWInaGVsbG8nCisgICAgICAgICAgICBkYXRhPWInc29tZSBkYXRhJwogICAg
ICAgICApCiAgICAgICAgICMgUmVjZWl2ZSA1IGZyYW1lcy4KICAgICAgICAgZXZlbnRzID0gYy5y
ZWNlaXZlX2RhdGEoYmFkX2ZyYW1lLnNlcmlhbGl6ZSgpICogNSkKIAotICAgICAgICBleHBlY3Rl
ZF9mcmFtZSA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0cmVhbV9mcmFtZSgKKyAgICAgICAg
ZXhwZWN0ZWQgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUoCiAgICAgICAg
ICAgICBzdHJlYW1faWQ9MSwKLSAgICAgICAgICAgIGVycm9yX2NvZGU9MHg1LAotICAgICAgICAp
Ci0gICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkX2ZyYW1lLnNlcmlh
bGl6ZSgpICogNQorICAgICAgICAgICAgZXJyb3JfY29kZT1oMi5lcnJvcnMuRXJyb3JDb2Rlcy5T
VFJFQU1fQ0xPU0VELAorICAgICAgICApLnNlcmlhbGl6ZSgpCisgICAgICAgIGFzc2VydCBjLmRh
dGFfdG9fc2VuZCgpID09IGV4cGVjdGVkICogNQogCiAgICAgICAgIGFzc2VydCBsZW4oZXZlbnRz
KSA9PSAxCiAgICAgICAgIGV2ZW50ID0gZXZlbnRzWzBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rl
c3QvdGVzdF9pbnZhbGlkX2hlYWRlcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9pbnZhbGlkX2hl
YWRlcnMucHkKaW5kZXggMWEzMTVlZTI2YWNmMTVlNThhNzA5NDQwM2EzMTc0MzU0MjFmZDU2Yy4u
YTM3OTk1MDczM2Q4Yjc4M2RkNjdkNzBmYWQ0YjQ0MmE0ZmM0YmFjZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi90ZXN0L3Rlc3RfaW52YWxpZF9oZWFkZXJzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0
X2ludmFsaWRfaGVhZGVycy5weQpAQCAtNTQsNiArNTQsNyBAQCBjbGFzcyBUZXN0SW52YWxpZEZy
YW1lU2VxdWVuY2VzKG9iamVjdCk6CiAgICAgICAgIGJhc2VfcmVxdWVzdF9oZWFkZXJzICsgWygn
bmFtZScsICd2YWx1ZSB3aXRoIHRyYWlsaW5nIHNwYWNlICcpXSwKICAgICAgICAgW2hlYWRlciBm
b3IgaGVhZGVyIGluIGJhc2VfcmVxdWVzdF9oZWFkZXJzCiAgICAgICAgICBpZiBoZWFkZXJbMF0g
IT0gJzphdXRob3JpdHknXSwKKyAgICAgICAgWygnOnByb3RvY29sJywgJ3dlYnNvY2tldCcpXSAr
IGJhc2VfcmVxdWVzdF9oZWFkZXJzLAogICAgIF0KICAgICBzZXJ2ZXJfY29uZmlnID0gaDIuY29u
ZmlnLkgyQ29uZmlndXJhdGlvbigKICAgICAgICAgY2xpZW50X3NpZGU9RmFsc2UsIGhlYWRlcl9l
bmNvZGluZz0ndXRmLTgnCkBAIC0yMDMsNyArMjA0LDcgQEAgY2xhc3MgVGVzdEludmFsaWRGcmFt
ZVNlcXVlbmNlcyhvYmplY3QpOgogICAgICAgICAjIFJhaXNlIGV4Y2VwdGlvbiBpZiBwc2V1ZG8g
aGVhZGVyIGluIHRyYWlsZXIKICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKGgyLmV4Y2VwdGlv
bnMuUHJvdG9jb2xFcnJvcikgYXMgZToKICAgICAgICAgICAgIGMucmVjZWl2ZV9kYXRhKHRyYWls
ZXIpCi0gICAgICAgIGFzc2VydCAicHNldWRvLWhlYWRlciBpbiB0cmFpbGVyIiBpbiBzdHIoZSkK
KyAgICAgICAgYXNzZXJ0ICJwc2V1ZG8taGVhZGVyIGluIHRyYWlsZXIiIGluIHN0cihlLnZhbHVl
KQogCiAgICAgICAgICMgVGVzdCBhcHByb3ByaWF0ZSByZXNwb25zZSBmcmFtZSBpcyBnZW5lcmF0
ZWQKICAgICAgICAgZXhwZWN0ZWRfZnJhbWUgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX2dvYXdheV9m
cmFtZSgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3NldHRpbmdzLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi90ZXN0L3Rlc3Rfc2V0dGluZ3MucHkKaW5kZXggMjE2M2JiOWI4ZDQ0NDJmMjY2NDIxYTIxMDZm
NTdkODg5ZTk2ODFjZS4uZDE5ZjkzYTdjMmVkMjhlZWQ0ZTQwOGViMjg5NDhlMWUxOTRiMmZiNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rfc2V0dGluZ3MucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90
ZXN0L3Rlc3Rfc2V0dGluZ3MucHkKQEAgLTEyLDcgKzEyLDkgQEAgaW1wb3J0IGgyLmV4Y2VwdGlv
bnMKIGltcG9ydCBoMi5zZXR0aW5ncwogCiBmcm9tIGh5cG90aGVzaXMgaW1wb3J0IGdpdmVuLCBh
c3N1bWUKLWZyb20gaHlwb3RoZXNpcy5zdHJhdGVnaWVzIGltcG9ydCBpbnRlZ2VycworZnJvbSBo
eXBvdGhlc2lzLnN0cmF0ZWdpZXMgaW1wb3J0ICgKKyAgICBpbnRlZ2VycywgYm9vbGVhbnMsIGZp
eGVkX2RpY3Rpb25hcmllcywgYnVpbGRzCispCiAKIAogY2xhc3MgVGVzdFNldHRpbmdzKG9iamVj
dCk6CkBAIC0yOSw2ICszMSw3IEBAIGNsYXNzIFRlc3RTZXR0aW5ncyhvYmplY3QpOgogICAgICAg
ICBhc3NlcnQgc1toMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX1BVU0hdID09IDEKICAg
ICAgICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLklOSVRJQUxfV0lORE9XX1NJ
WkVdID09IDY1NTM1CiAgICAgICAgIGFzc2VydCBzW2gyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5N
QVhfRlJBTUVfU0laRV0gPT0gMTYzODQKKyAgICAgICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0
dGluZ0NvZGVzLkVOQUJMRV9DT05ORUNUX1BST1RPQ09MXSA9PSAwCiAKICAgICBkZWYgdGVzdF9z
ZXR0aW5nc19kZWZhdWx0c19zZXJ2ZXIoc2VsZik6CiAgICAgICAgICIiIgpAQCAtNDAsNiArNDMs
NyBAQCBjbGFzcyBUZXN0U2V0dGluZ3Mob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHNbaDIuc2V0
dGluZ3MuU2V0dGluZ0NvZGVzLkVOQUJMRV9QVVNIXSA9PSAwCiAgICAgICAgIGFzc2VydCBzW2gy
LnNldHRpbmdzLlNldHRpbmdDb2Rlcy5JTklUSUFMX1dJTkRPV19TSVpFXSA9PSA2NTUzNQogICAg
ICAgICBhc3NlcnQgc1toMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0ZSQU1FX1NJWkVdID09
IDE2Mzg0CisgICAgICAgIGFzc2VydCBzW2gyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5FTkFCTEVf
Q09OTkVDVF9QUk9UT0NPTF0gPT0gMAogCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdj
bGllbnQnLCBbVHJ1ZSwgRmFsc2VdKQogICAgIGRlZiB0ZXN0X2Nhbl9zZXRfaW5pdGlhbF92YWx1
ZXMoc2VsZiwgY2xpZW50KToKQEAgLTUyLDYgKzU2LDcgQEAgY2xhc3MgVGVzdFNldHRpbmdzKG9i
amVjdCk6CiAgICAgICAgICAgICBoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0ZSQU1FX1NJ
WkU6IDE2Mzg4LAogICAgICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9DT05D
VVJSRU5UX1NUUkVBTVM6IDEwMCwKICAgICAgICAgICAgIGgyLnNldHRpbmdzLlNldHRpbmdDb2Rl
cy5NQVhfSEVBREVSX0xJU1RfU0laRTogMioqMTYsCisgICAgICAgICAgICBoMi5zZXR0aW5ncy5T
ZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0w6IDEsCiAgICAgICAgIH0KICAgICAg
ICAgcyA9IGgyLnNldHRpbmdzLlNldHRpbmdzKGNsaWVudD1jbGllbnQsIGluaXRpYWxfdmFsdWVz
PW92ZXJyaWRlcykKIApAQCAtNjEsNiArNjYsNyBAQCBjbGFzcyBUZXN0U2V0dGluZ3Mob2JqZWN0
KToKICAgICAgICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9GUkFNRV9T
SVpFXSA9PSAxNjM4OAogICAgICAgICBhc3NlcnQgc1toMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMu
TUFYX0NPTkNVUlJFTlRfU1RSRUFNU10gPT0gMTAwCiAgICAgICAgIGFzc2VydCBzW2gyLnNldHRp
bmdzLlNldHRpbmdDb2Rlcy5NQVhfSEVBREVSX0xJU1RfU0laRV0gPT0gMioqMTYKKyAgICAgICAg
YXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLkVOQUJMRV9DT05ORUNUX1BST1RPQ09M
XSA9PSAxCiAKICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCiAgICAgICAgICdzZXR0aW5n
LHZhbHVlJywKQEAgLTcyLDYgKzc4LDcgQEAgY2xhc3MgVGVzdFNldHRpbmdzKG9iamVjdCk6CiAg
ICAgICAgICAgICAoaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9GUkFNRV9TSVpFLCAxKSwK
ICAgICAgICAgICAgIChoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0ZSQU1FX1NJWkUsIDIq
KjMwKSwKICAgICAgICAgICAgIChoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0hFQURFUl9M
SVNUX1NJWkUsIC0xKSwKKyAgICAgICAgICAgIChoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuRU5B
QkxFX0NPTk5FQ1RfUFJPVE9DT0wsIC0xKSwKICAgICAgICAgXQogICAgICkKICAgICBkZWYgdGVz
dF9jYW5ub3Rfc2V0X2ludmFsaWRfaW5pdGlhbF92YWx1ZXMoc2VsZiwgc2V0dGluZywgdmFsdWUp
OgpAQCAtMTA2LDYgKzExMyw3IEBAIGNsYXNzIFRlc3RTZXR0aW5ncyhvYmplY3QpOgogICAgICAg
ICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLkVOQUJMRV9QVVNIOiAwLAogICAgICAgICAg
ICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLklOSVRJQUxfV0lORE9XX1NJWkU6IDYwLAogICAg
ICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9GUkFNRV9TSVpFOiAxNjM4NSwK
KyAgICAgICAgICAgIGgyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5FTkFCTEVfQ09OTkVDVF9QUk9U
T0NPTDogMSwKICAgICAgICAgfQogICAgICAgICBzLnVwZGF0ZShuZXdfc2V0dGluZ3MpCiAKQEAg
LTE2OSwxNiArMTc3LDE2IEBAIGNsYXNzIFRlc3RTZXR0aW5ncyhvYmplY3QpOgogICAgICAgICBM
ZW5ndGggaXMgcmVsYXRlZCBvbmx5IHRvIHRoZSBudW1iZXIgb2Yga2V5cy4KICAgICAgICAgIiIi
CiAgICAgICAgIHMgPSBoMi5zZXR0aW5ncy5TZXR0aW5ncyhjbGllbnQ9VHJ1ZSkKLSAgICAgICAg
YXNzZXJ0IGxlbihzKSA9PSA0CisgICAgICAgIGFzc2VydCBsZW4ocykgPT0gNQogCiAgICAgICAg
IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLkhFQURFUl9UQUJMRV9TSVpFXSA9PSA4MDAwCi0g
ICAgICAgIGFzc2VydCBsZW4ocykgPT0gNAorICAgICAgICBhc3NlcnQgbGVuKHMpID09IDUKIAog
ICAgICAgICBzLmFja25vd2xlZGdlKCkKLSAgICAgICAgYXNzZXJ0IGxlbihzKSA9PSA0CisgICAg
ICAgIGFzc2VydCBsZW4ocykgPT0gNQogCiAgICAgICAgIGRlbCBzW2gyLnNldHRpbmdzLlNldHRp
bmdDb2Rlcy5IRUFERVJfVEFCTEVfU0laRV0KLSAgICAgICAgYXNzZXJ0IGxlbihzKSA9PSAzCisg
ICAgICAgIGFzc2VydCBsZW4ocykgPT0gNAogCiAgICAgZGVmIHRlc3RfbmV3X3ZhbHVlc193b3Jr
KHNlbGYpOgogICAgICAgICAiIiIKQEAgLTIzMiw2ICsyNDAsOSBAQCBjbGFzcyBUZXN0U2V0dGlu
Z3Mob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHMubWF4X2ZyYW1lX3NpemUgPT0gc1toMi5zZXR0
aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0ZSQU1FX1NJWkVdCiAgICAgICAgIGFzc2VydCBzLm1heF9j
b25jdXJyZW50X3N0cmVhbXMgPT0gMioqMzIgKyAxICAjIEEgc2Vuc2libGUgZGVmYXVsdC4KICAg
ICAgICAgYXNzZXJ0IHMubWF4X2hlYWRlcl9saXN0X3NpemUgaXMgTm9uZQorICAgICAgICBhc3Nl
cnQgcy5lbmFibGVfY29ubmVjdF9wcm90b2NvbCA9PSBzWworICAgICAgICAgICAgaDIuc2V0dGlu
Z3MuU2V0dGluZ0NvZGVzLkVOQUJMRV9DT05ORUNUX1BST1RPQ09MCisgICAgICAgIF0KIAogICAg
IGRlZiB0ZXN0X3NldHRpbmdzX3NldHRlcnMoc2VsZik6CiAgICAgICAgICIiIgpAQCAtMjQ1LDYg
KzI1Niw3IEBAIGNsYXNzIFRlc3RTZXR0aW5ncyhvYmplY3QpOgogICAgICAgICBzLm1heF9mcmFt
ZV9zaXplID0gMTYzODUKICAgICAgICAgcy5tYXhfY29uY3VycmVudF9zdHJlYW1zID0gNAogICAg
ICAgICBzLm1heF9oZWFkZXJfbGlzdF9zaXplID0gMioqMTYKKyAgICAgICAgcy5lbmFibGVfY29u
bmVjdF9wcm90b2NvbCA9IDEKIAogICAgICAgICBzLmFja25vd2xlZGdlKCkKICAgICAgICAgYXNz
ZXJ0IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLkhFQURFUl9UQUJMRV9TSVpFXSA9PSAwCkBA
IC0yNTMsNiArMjY1LDcgQEAgY2xhc3MgVGVzdFNldHRpbmdzKG9iamVjdCk6CiAgICAgICAgIGFz
c2VydCBzW2gyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5NQVhfRlJBTUVfU0laRV0gPT0gMTYzODUK
ICAgICAgICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9DT05DVVJSRU5U
X1NUUkVBTVNdID09IDQKICAgICAgICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVz
Lk1BWF9IRUFERVJfTElTVF9TSVpFXSA9PSAyKioxNgorICAgICAgICBhc3NlcnQgc1toMi5zZXR0
aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0xdID09IDEKIAogICAgIEBn
aXZlbihpbnRlZ2VycygpKQogICAgIGRlZiB0ZXN0X2Nhbm5vdF9zZXRfaW52YWxpZF92YWx1ZXNf
Zm9yX2VuYWJsZV9wdXNoKHNlbGYsIHZhbCk6CkBAIC0zNjEsMTMxICszNzQsOTcgQEAgY2xhc3Mg
VGVzdFNldHRpbmdzKG9iamVjdCk6CiAgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoS2V5
RXJyb3IpOgogICAgICAgICAgICAgICAgIHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9I
RUFERVJfTElTVF9TSVpFXQogCi0KLWNsYXNzIFRlc3RTZXR0aW5nc0VxdWFsaXR5KG9iamVjdCk6
Ci0gICAgIiIiCi0gICAgQSBjbGFzcyBkZWZpbmluZyB0ZXN0cyBmb3IgdGhlIHN0YW5kYXJkIGlt
cGxlbWVudGF0aW9uIG9mID09IGFuZCAhPSAuCi0gICAgIiIiCi0KLSAgICBkZWYgYW5faW5zdGFu
Y2Uoc2VsZik6CisgICAgQGdpdmVuKGludGVnZXJzKCkpCisgICAgZGVmIHRlc3RfY2Fubm90X3Nl
dF9pbnZhbGlkX3ZhbHVlc19mb3JfZW5hYmxlX2Nvbm5lY3RfcHJvdG9jb2woc2VsZiwgdmFsKToK
ICAgICAgICAgIiIiCi0gICAgICAgIFJldHVybiBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgdW5k
ZXIgdGVzdC4gIEVhY2ggY2FsbCB0byB0aGlzIG1ldGhvZAotICAgICAgICBtdXN0IHJldHVybiBh
IGRpZmZlcmVudCBvYmplY3QuICBBbGwgb2JqZWN0cyByZXR1cm5lZCBtdXN0IGJlIGVxdWFsIHRv
Ci0gICAgICAgIGVhY2ggb3RoZXIuCisgICAgICAgIFNFVFRJTkdTX0VOQUJMRV9DT05ORUNUX1BS
T1RPQ09MIG9ubHkgYWxsb3dzIHR3byB2YWx1ZXM6IDAsIDEuCiAgICAgICAgICIiIgotICAgICAg
ICBvdmVycmlkZXMgPSB7Ci0gICAgICAgICAgICBoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuSEVB
REVSX1RBQkxFX1NJWkU6IDAsCi0gICAgICAgICAgICBoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMu
TUFYX0ZSQU1FX1NJWkU6IDE2Mzg0LAotICAgICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0Nv
ZGVzLk1BWF9DT05DVVJSRU5UX1NUUkVBTVM6IDQsCi0gICAgICAgICAgICBoMi5zZXR0aW5ncy5T
ZXR0aW5nQ29kZXMuTUFYX0hFQURFUl9MSVNUX1NJWkU6IDIqKjE2LAotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBoMi5zZXR0aW5ncy5TZXR0aW5ncyhjbGllbnQ9VHJ1ZSwgaW5pdGlhbF92YWx1
ZXM9b3ZlcnJpZGVzKQorICAgICAgICBhc3N1bWUodmFsIG5vdCBpbiAoMCwgMSkpCisgICAgICAg
IHMgPSBoMi5zZXR0aW5ncy5TZXR0aW5ncygpCiAKLSAgICBkZWYgYW5vdGhlcl9pbnN0YW5jZShz
ZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFJldHVybiBhbiBpbnN0YW5jZSBvZiB0aGUgY2xh
c3MgdW5kZXIgdGVzdC4gIEVhY2ggY2FsbCB0byB0aGlzIG1ldGhvZAotICAgICAgICBtdXN0IHJl
dHVybiBhIGRpZmZlcmVudCBvYmplY3QuICBUaGUgb2JqZWN0cyBtdXN0IG5vdCBiZSBlcXVhbCB0
byB0aGUKLSAgICAgICAgb2JqZWN0cyByZXR1cm5lZCBieSBhbl9pbnN0YW5jZS4gIFRoZXkgbWF5
IG9yIG1heSBub3QgYmUgZXF1YWwgdG8KLSAgICAgICAgZWFjaCBvdGhlciAodGhleSB3aWxsIG5v
dCBiZSBjb21wYXJlZCBhZ2FpbnN0IGVhY2ggb3RoZXIpLgotICAgICAgICAiIiIKLSAgICAgICAg
b3ZlcnJpZGVzID0gewotICAgICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLkhFQURF
Ul9UQUJMRV9TSVpFOiA4MDgwLAotICAgICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVz
Lk1BWF9GUkFNRV9TSVpFOiAxNjM4OCwKLSAgICAgICAgICAgIGgyLnNldHRpbmdzLlNldHRpbmdD
b2Rlcy5NQVhfQ09OQ1VSUkVOVF9TVFJFQU1TOiAxMDAsCi0gICAgICAgICAgICBoMi5zZXR0aW5n
cy5TZXR0aW5nQ29kZXMuTUFYX0hFQURFUl9MSVNUX1NJWkU6IDIqKjE2LAotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBoMi5zZXR0aW5ncy5TZXR0aW5ncyhjbGllbnQ9RmFsc2UsIGluaXRpYWxf
dmFsdWVzPW92ZXJyaWRlcykKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKGgyLmV4Y2VwdGlv
bnMuSW52YWxpZFNldHRpbmdzVmFsdWVFcnJvcikgYXMgZToKKyAgICAgICAgICAgIHMuZW5hYmxl
X2Nvbm5lY3RfcHJvdG9jb2wgPSB2YWwKIAotICAgIGRlZiB0ZXN0X2lkZW50aWNhbF9lcShzZWxm
KToKLSAgICAgICAgIiIiCi0gICAgICAgIEFuIG9iamVjdCBjb21wYXJlcyBlcXVhbCB0byBpdHNl
bGYgdXNpbmcgdGhlID09IG9wZXJhdG9yLgotICAgICAgICAiIiIKLSAgICAgICAgbyA9IHNlbGYu
YW5faW5zdGFuY2UoKQotICAgICAgICBhc3NlcnQgKG8gPT0gbykKKyAgICAgICAgcy5hY2tub3ds
ZWRnZSgpCisgICAgICAgIGFzc2VydCBlLnZhbHVlLmVycm9yX2NvZGUgPT0gaDIuZXJyb3JzLkVy
cm9yQ29kZXMuUFJPVE9DT0xfRVJST1IKKyAgICAgICAgYXNzZXJ0IHMuZW5hYmxlX2Nvbm5lY3Rf
cHJvdG9jb2wgPT0gMAogCi0gICAgZGVmIHRlc3RfaWRlbnRpY2FsX25lKHNlbGYpOgotICAgICAg
ICAiIiIKLSAgICAgICAgQW4gb2JqZWN0IGRvZXNuJ3QgY29tcGFyZSBub3QgZXF1YWwgdG8gaXRz
ZWxmIHVzaW5nIHRoZSAhPSBvcGVyYXRvci4KLSAgICAgICAgIiIiCi0gICAgICAgIG8gPSBzZWxm
LmFuX2luc3RhbmNlKCkKLSAgICAgICAgYXNzZXJ0IG5vdCAobyAhPSBvKQorICAgICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoaDIuZXhjZXB0aW9ucy5JbnZhbGlkU2V0dGluZ3NWYWx1ZUVycm9yKSBh
cyBlOgorICAgICAgICAgICAgc1toMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5F
Q1RfUFJPVE9DT0xdID0gdmFsCiAKLSAgICBkZWYgdGVzdF9zYW1lX2VxKHNlbGYpOgotICAgICAg
ICAiIiIKLSAgICAgICAgVHdvIG9iamVjdHMgdGhhdCBhcmUgZXF1YWwgdG8gZWFjaCBvdGhlciBj
b21wYXJlIGVxdWFsIHRvIGVhY2ggb3RoZXIKLSAgICAgICAgdXNpbmcgdGhlID09IG9wZXJhdG9y
LgotICAgICAgICAiIiIKLSAgICAgICAgYSA9IHNlbGYuYW5faW5zdGFuY2UoKQotICAgICAgICBi
ID0gc2VsZi5hbl9pbnN0YW5jZSgpCi0gICAgICAgIGFzc2VydCAoYSA9PSBiKQorICAgICAgICBz
LmFja25vd2xlZGdlKCkKKyAgICAgICAgYXNzZXJ0IGUudmFsdWUuZXJyb3JfY29kZSA9PSBoMi5l
cnJvcnMuRXJyb3JDb2Rlcy5QUk9UT0NPTF9FUlJPUgorICAgICAgICBhc3NlcnQgc1toMi5zZXR0
aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0xdID09IDAKIAotICAgIGRl
ZiB0ZXN0X3NhbWVfbmUoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBUd28gb2JqZWN0cyB0
aGF0IGFyZSBlcXVhbCB0byBlYWNoIG90aGVyIGRvIG5vdCBjb21wYXJlIG5vdCBlcXVhbCB0bwot
ICAgICAgICBlYWNoIG90aGVyIHVzaW5nIHRoZSAhPSBvcGVyYXRvci4KLSAgICAgICAgIiIiCi0g
ICAgICAgIGEgPSBzZWxmLmFuX2luc3RhbmNlKCkKLSAgICAgICAgYiA9IHNlbGYuYW5faW5zdGFu
Y2UoKQotICAgICAgICBhc3NlcnQgbm90IChhICE9IGIpCiAKLSAgICBkZWYgdGVzdF9kaWZmZXJl
bnRfZXEoc2VsZik6CitjbGFzcyBUZXN0U2V0dGluZ3NFcXVhbGl0eShvYmplY3QpOgorICAgICIi
IgorICAgIEEgY2xhc3MgZGVmaW5pbmcgdGVzdHMgZm9yIHRoZSBzdGFuZGFyZCBpbXBsZW1lbnRh
dGlvbiBvZiA9PSBhbmQgIT0gLgorICAgICIiIgorCisgICAgU2V0dGluZ3NTdHJhdGVneSA9IGJ1
aWxkcygKKyAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ3MsCisgICAgICAgIGNsaWVudD1ib29s
ZWFucygpLAorICAgICAgICBpbml0aWFsX3ZhbHVlcz1maXhlZF9kaWN0aW9uYXJpZXMoeworICAg
ICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLkhFQURFUl9UQUJMRV9TSVpFOgorICAg
ICAgICAgICAgICAgIGludGVnZXJzKDAsIDIqKjMyIC0gMSksCisgICAgICAgICAgICBoMi5zZXR0
aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX1BVU0g6IGludGVnZXJzKDAsIDEpLAorICAgICAgICAg
ICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLklOSVRJQUxfV0lORE9XX1NJWkU6CisgICAgICAg
ICAgICAgICAgaW50ZWdlcnMoMCwgMioqMzEgLSAxKSwKKyAgICAgICAgICAgIGgyLnNldHRpbmdz
LlNldHRpbmdDb2Rlcy5NQVhfRlJBTUVfU0laRToKKyAgICAgICAgICAgICAgICBpbnRlZ2Vycygy
KioxNCwgMioqMjQgLSAxKSwKKyAgICAgICAgICAgIGgyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5N
QVhfQ09OQ1VSUkVOVF9TVFJFQU1TOgorICAgICAgICAgICAgICAgIGludGVnZXJzKDAsIDIqKjMy
IC0gMSksCisgICAgICAgICAgICBoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0hFQURFUl9M
SVNUX1NJWkU6CisgICAgICAgICAgICAgICAgaW50ZWdlcnMoMCwgMioqMzIgLSAxKSwKKyAgICAg
ICAgfSkKKyAgICApCisKKyAgICBAZ2l2ZW4oc2V0dGluZ3M9U2V0dGluZ3NTdHJhdGVneSkKKyAg
ICBkZWYgdGVzdF9lcXVhbGl0eV9yZWZsZXhpdmUoc2VsZiwgc2V0dGluZ3MpOgogICAgICAgICAi
IiIKLSAgICAgICAgVHdvIG9iamVjdHMgdGhhdCBhcmUgbm90IGVxdWFsIHRvIGVhY2ggb3RoZXIg
ZG8gbm90IGNvbXBhcmUgZXF1YWwgdG8KLSAgICAgICAgZWFjaCBvdGhlciB1c2luZyB0aGUgPT0g
b3BlcmF0b3IuCisgICAgICAgIEFuIG9iamVjdCBjb21wYXJlcyBlcXVhbCB0byBpdHNlbGYgdXNp
bmcgdGhlID09IG9wZXJhdG9yIGFuZCB0aGUgIT0KKyAgICAgICAgb3BlcmF0b3IuCiAgICAgICAg
ICIiIgotICAgICAgICBhID0gc2VsZi5hbl9pbnN0YW5jZSgpCi0gICAgICAgIGIgPSBzZWxmLmFu
b3RoZXJfaW5zdGFuY2UoKQotICAgICAgICBhc3NlcnQgbm90IChhID09IGIpCisgICAgICAgIGFz
c2VydCAoc2V0dGluZ3MgPT0gc2V0dGluZ3MpCisgICAgICAgIGFzc2VydCBub3QgKHNldHRpbmdz
ICE9IHNldHRpbmdzKQogCi0gICAgZGVmIHRlc3RfZGlmZmVyZW50X25lKHNlbGYpOgorICAgIEBn
aXZlbihzZXR0aW5ncz1TZXR0aW5nc1N0cmF0ZWd5LCBvX3NldHRpbmdzPVNldHRpbmdzU3RyYXRl
Z3kpCisgICAgZGVmIHRlc3RfZXF1YWxpdHlfbXVsdGlwbGUoc2VsZiwgc2V0dGluZ3MsIG9fc2V0
dGluZ3MpOgogICAgICAgICAiIiIKLSAgICAgICAgVHdvIG9iamVjdHMgdGhhdCBhcmUgbm90IGVx
dWFsIHRvIGVhY2ggb3RoZXIgY29tcGFyZSBub3QgZXF1YWwgdG8gZWFjaAotICAgICAgICBvdGhl
ciB1c2luZyB0aGUgIT0gb3BlcmF0b3IuCisgICAgICAgIFR3byBvYmplY3RzIGNvbXBhcmUgdGhl
bXNlbHZlcyB1c2luZyB0aGUgPT0gb3BlcmF0b3IgYW5kIHRoZSAhPQorICAgICAgICBvcGVyYXRv
ci4KICAgICAgICAgIiIiCi0gICAgICAgIGEgPSBzZWxmLmFuX2luc3RhbmNlKCkKLSAgICAgICAg
YiA9IHNlbGYuYW5vdGhlcl9pbnN0YW5jZSgpCi0gICAgICAgIGFzc2VydCAoYSAhPSBiKQorICAg
ICAgICBpZiBzZXR0aW5ncyA9PSBvX3NldHRpbmdzOgorICAgICAgICAgICAgYXNzZXJ0IHNldHRp
bmdzID09IG9fc2V0dGluZ3MKKyAgICAgICAgICAgIGFzc2VydCBub3QgKHNldHRpbmdzICE9IG9f
c2V0dGluZ3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgc2V0dGluZ3MgIT0g
b19zZXR0aW5ncworICAgICAgICAgICAgYXNzZXJ0IG5vdCAoc2V0dGluZ3MgPT0gb19zZXR0aW5n
cykKIAotICAgIGRlZiB0ZXN0X2Fub3RoZXJfdHlwZV9lcShzZWxmKToKKyAgICBAZ2l2ZW4oc2V0
dGluZ3M9U2V0dGluZ3NTdHJhdGVneSkKKyAgICBkZWYgdGVzdF9hbm90aGVyX3R5cGVfZXF1YWxp
dHkoc2VsZiwgc2V0dGluZ3MpOgogICAgICAgICAiIiIKICAgICAgICAgVGhlIG9iamVjdCBkb2Vz
IG5vdCBjb21wYXJlIGVxdWFsIHRvIGFuIG9iamVjdCBvZiBhbiB1bnJlbGF0ZWQgdHlwZQogICAg
ICAgICAod2hpY2ggZG9lcyBub3QgaW1wbGVtZW50IHRoZSBjb21wYXJpc29uKSB1c2luZyB0aGUg
PT0gb3BlcmF0b3IuCiAgICAgICAgICIiIgotICAgICAgICBhID0gc2VsZi5hbl9pbnN0YW5jZSgp
Ci0gICAgICAgIGIgPSBvYmplY3QoKQotICAgICAgICBhc3NlcnQgbm90IChhID09IGIpCisgICAg
ICAgIG9iaiA9IG9iamVjdCgpCisgICAgICAgIGFzc2VydCAoc2V0dGluZ3MgIT0gb2JqKQorICAg
ICAgICBhc3NlcnQgbm90IChzZXR0aW5ncyA9PSBvYmopCiAKLSAgICBkZWYgdGVzdF9hbm90aGVy
X3R5cGVfbmUoc2VsZik6CisgICAgQGdpdmVuKHNldHRpbmdzPVNldHRpbmdzU3RyYXRlZ3kpCisg
ICAgZGVmIHRlc3RfZGVsZWdhdGVkX2VxKHNlbGYsIHNldHRpbmdzKToKICAgICAgICAgIiIiCi0g
ICAgICAgIFRoZSBvYmplY3QgY29tcGFyZXMgbm90IGVxdWFsIHRvIGFuIG9iamVjdCBvZiBhbiB1
bnJlbGF0ZWQgdHlwZSAod2hpY2gKLSAgICAgICAgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBjb21w
YXJpc29uKSB1c2luZyB0aGUgIT0gb3BlcmF0b3IuCi0gICAgICAgICIiIgotICAgICAgICBhID0g
c2VsZi5hbl9pbnN0YW5jZSgpCi0gICAgICAgIGIgPSBvYmplY3QoKQotICAgICAgICBhc3NlcnQg
KGEgIT0gYikKLQotICAgIGRlZiB0ZXN0X2RlbGVnYXRlZF9lcShzZWxmKToKLSAgICAgICAgIiIi
Ci0gICAgICAgIFRoZSByZXN1bHQgb2YgY29tcGFyaXNvbiB1c2luZyA9PSBpcyBkZWxlZ2F0ZWQg
dG8gdGhlIHJpZ2h0LWhhbmQKLSAgICAgICAgb3BlcmFuZCBpZiBpdCBpcyBvZiBhbiB1bnJlbGF0
ZWQgdHlwZS4KKyAgICAgICAgVGhlIHJlc3VsdCBvZiBjb21wYXJpc29uIGlzIGRlbGVnYXRlZCB0
byB0aGUgcmlnaHQtaGFuZCBvcGVyYW5kIGlmCisgICAgICAgIGl0IGlzIG9mIGFuIHVucmVsYXRl
ZCB0eXBlLgogICAgICAgICAiIiIKICAgICAgICAgY2xhc3MgRGVsZWdhdGUob2JqZWN0KToKICAg
ICAgICAgICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgogICAgICAgICAgICAgICAgIHJldHVy
biBbc2VsZl0KIAotICAgICAgICBhID0gc2VsZi5hbl9pbnN0YW5jZSgpCi0gICAgICAgIGIgPSBE
ZWxlZ2F0ZSgpCi0gICAgICAgIGFzc2VydCAoYSA9PSBiKSA9PSBbYl0KLQotICAgIGRlZiB0ZXN0
X2RlbGVnYXRlX25lKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhlIHJlc3VsdCBvZiBj
b21wYXJpc29uIHVzaW5nICE9IGlzIGRlbGVnYXRlZCB0byB0aGUgcmlnaHQtaGFuZAotICAgICAg
ICBvcGVyYW5kIGlmIGl0IGlzIG9mIGFuIHVucmVsYXRlZCB0eXBlLgotICAgICAgICAiIiIKLSAg
ICAgICAgY2xhc3MgRGVsZWdhdGUob2JqZWN0KToKICAgICAgICAgICAgIGRlZiBfX25lX18oc2Vs
Ziwgb3RoZXIpOgogICAgICAgICAgICAgICAgIHJldHVybiBbc2VsZl0KIAotICAgICAgICBhID0g
c2VsZi5hbl9pbnN0YW5jZSgpCi0gICAgICAgIGIgPSBEZWxlZ2F0ZSgpCi0gICAgICAgIGFzc2Vy
dCAoYSAhPSBiKSA9PSBbYl0KKyAgICAgICAgZGVsZyA9IERlbGVnYXRlKCkKKyAgICAgICAgYXNz
ZXJ0IChzZXR0aW5ncyA9PSBkZWxnKSA9PSBbZGVsZ10KKyAgICAgICAgYXNzZXJ0IChzZXR0aW5n
cyAhPSBkZWxnKSA9PSBbZGVsZ10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3N0cmVh
bV9yZXNldC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3N0cmVhbV9yZXNldC5weQppbmRleCAwODg4
NmU4ZTNlZDIzYzcxMDMzZTJlZjM1ZDJjYjUyYWYwYTYxMGUxLi43Nzg0NDU1MTVmYTI0NDYzMWYw
ZTVkZmUzYmRiOWI5YzY4ODVlMTY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9zdHJl
YW1fcmVzZXQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rfc3RyZWFtX3Jlc2V0LnB5CkBAIC03
MCw4ICs3MCw4IEBAIGNsYXNzIFRlc3RTdHJlYW1SZXNldChvYmplY3QpOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcl9pZCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfZmFj
dG9yeSk6CiAgICAgICAgICIiIgotICAgICAgICBBIHN0cmVhbSB0aGF0IGhhcyBiZWVuIHJlc2V0
IHN0aWxsIGFmZmVjdHMgdGhlIGNvbm5lY3Rpb24gZmxvdyBjb250cm9sCi0gICAgICAgIHdpbmRv
dy4KKyAgICAgICAgQSBzdHJlYW0gdGhhdCBoYXMgYmVlbiByZXNldCBkb2VzIG5vdCBhZmZlY3Qg
dGhlIGNvbm5lY3Rpb24gZmxvdworICAgICAgICBjb250cm9sIHdpbmRvdy4KICAgICAgICAgIiIi
CiAgICAgICAgIGMgPSBoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbigpCiAgICAgICAgIGMuaW5p
dGlhdGVfY29ubmVjdGlvbigpCkBAIC04OSwxOSArODksMTkgQEAgY2xhc3MgVGVzdFN0cmVhbVJl
c2V0KG9iamVjdCk6CiAgICAgICAgIGMuY2xlYXJfb3V0Ym91bmRfZGF0YV9idWZmZXIoKQogCiAg
ICAgICAgIGYgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX2RhdGFfZnJhbWUoCi0gICAgICAgICAgICBk
YXRhPWInc29tZSBkYXRhIScsCisgICAgICAgICAgICBkYXRhPWInc29tZSBkYXRhJywKICAgICAg
ICAgICAgIHN0cmVhbV9pZD1jbG9zZV9pZAogICAgICAgICApCi0gICAgICAgIGV2ZW50cyA9IGMu
cmVjZWl2ZV9kYXRhKGYuc2VyaWFsaXplKCkpCisgICAgICAgIGMucmVjZWl2ZV9kYXRhKGYuc2Vy
aWFsaXplKCkpCiAKLSAgICAgICAgcnN0X2ZyYW1lID0gZnJhbWVfZmFjdG9yeS5idWlsZF9yc3Rf
c3RyZWFtX2ZyYW1lKAotICAgICAgICAgICAgY2xvc2VfaWQsIGgyLmVycm9ycy5FcnJvckNvZGVz
LlNUUkVBTV9DTE9TRUQKLSAgICAgICAgKQotICAgICAgICBhc3NlcnQgbm90IGV2ZW50cwotICAg
ICAgICBhc3NlcnQgYy5kYXRhX3RvX3NlbmQoKSA9PSByc3RfZnJhbWUuc2VyaWFsaXplKCkKKyAg
ICAgICAgZXhwZWN0ZWQgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUoCisg
ICAgICAgICAgICBzdHJlYW1faWQ9Y2xvc2VfaWQsCisgICAgICAgICAgICBlcnJvcl9jb2RlPWgy
LmVycm9ycy5FcnJvckNvZGVzLlNUUkVBTV9DTE9TRUQsCisgICAgICAgICkuc2VyaWFsaXplKCkK
KyAgICAgICAgYXNzZXJ0IGMuZGF0YV90b19zZW5kKCkgPT0gZXhwZWN0ZWQKIAogICAgICAgICBu
ZXdfd2luZG93ID0gYy5yZW1vdGVfZmxvd19jb250cm9sX3dpbmRvdyhzdHJlYW1faWQ9b3RoZXJf
aWQpCi0gICAgICAgIGFzc2VydCBpbml0aWFsX3dpbmRvdyAtIGxlbihiJ3NvbWUgZGF0YSEnKSA9
PSBuZXdfd2luZG93CisgICAgICAgIGFzc2VydCBpbml0aWFsX3dpbmRvdyAtIGxlbihiJ3NvbWUg
ZGF0YScpID09IG5ld193aW5kb3cKIAogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnY2xl
YXJfc3RyZWFtcycsIFtUcnVlLCBGYWxzZV0pCiAgICAgZGVmIHRlc3RfcmVzZXRfc3RyZWFtX2F1
dG9tYXRpY2FsbHlfcmVzZXRzX3B1c2hlZF9zdHJlYW1zKHNlbGYsCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL3Rlc3QvdGVzdF91dGlsaXR5X2Z1bmN0aW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3V0
aWxpdHlfZnVuY3Rpb25zLnB5CmluZGV4IDYxZDUyN2Y2ODhiYWE5NDIyOTI2OWQ0NDZkNDM2NWEx
N2NlZjE2MWUuLjRjYjBiMmFlNjA4NWFmYmYwYmZmYzY3YTRlZGY3YjRmN2NiMDI4NWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3V0aWxpdHlfZnVuY3Rpb25zLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvdGVzdC90ZXN0X3V0aWxpdHlfZnVuY3Rpb25zLnB5CkBAIC0xMiw3ICsxMiw3IEBAIGltcG9y
dCBoMi5jb25uZWN0aW9uCiBpbXBvcnQgaDIuZXJyb3JzCiBpbXBvcnQgaDIuZXZlbnRzCiBpbXBv
cnQgaDIuZXhjZXB0aW9ucwotZnJvbSBoMi51dGlsaXRpZXMgaW1wb3J0IGV4dHJhY3RfbWV0aG9k
X2hlYWRlcgorZnJvbSBoMi51dGlsaXRpZXMgaW1wb3J0IFNpemVMaW1pdERpY3QsIGV4dHJhY3Rf
bWV0aG9kX2hlYWRlcgogCiAjIFRoZXNlIHRlc3RzIHJlcXVpcmUgYSBub24tbGlzdC1yZXR1cm5p
bmcgcmFuZ2UgZnVuY3Rpb24uCiB0cnk6CkBAIC0xNzYsMyArMTc2LDUxIEBAIGNsYXNzIFRlc3RF
eHRyYWN0SGVhZGVyKG9iamVjdCk6CiAgICAgKQogICAgIGRlZiB0ZXN0X2V4dHJhY3RfaGVhZGVy
X21ldGhvZChzZWxmLCBoZWFkZXJzKToKICAgICAgICAgYXNzZXJ0IGV4dHJhY3RfbWV0aG9kX2hl
YWRlcihoZWFkZXJzKSA9PSBiJ0dFVCcKKworCitkZWYgdGVzdF9zaXplX2xpbWl0X2RpY3RfbGlt
aXQoKToKKyAgICBkY3QgPSBTaXplTGltaXREaWN0KHNpemVfbGltaXQ9MikKKworICAgIGRjdFsx
XSA9IDEKKyAgICBkY3RbMl0gPSAyCisKKyAgICBhc3NlcnQgbGVuKGRjdCkgPT0gMgorICAgIGFz
c2VydCBkY3RbMV0gPT0gMQorICAgIGFzc2VydCBkY3RbMl0gPT0gMgorCisgICAgZGN0WzNdID0g
MworCisgICAgYXNzZXJ0IGxlbihkY3QpID09IDIKKyAgICBhc3NlcnQgZGN0WzJdID09IDIKKyAg
ICBhc3NlcnQgZGN0WzNdID09IDMKKyAgICBhc3NlcnQgMSBub3QgaW4gZGN0CisKKworZGVmIHRl
c3Rfc2l6ZV9saW1pdF9kaWN0X2xpbWl0X2luaXQoKToKKyAgICBpbml0aWFsX2RjdCA9IHsKKyAg
ICAgICAgMTogMSwKKyAgICAgICAgMjogMiwKKyAgICAgICAgMzogMywKKyAgICB9CisKKyAgICBk
Y3QgPSBTaXplTGltaXREaWN0KGluaXRpYWxfZGN0LCBzaXplX2xpbWl0PTIpCisKKyAgICBhc3Nl
cnQgbGVuKGRjdCkgPT0gMgorCisKK2RlZiB0ZXN0X3NpemVfbGltaXRfZGljdF9ub19saW1pdCgp
OgorICAgIGRjdCA9IFNpemVMaW1pdERpY3Qoc2l6ZV9saW1pdD1Ob25lKQorCisgICAgZGN0WzFd
ID0gMQorICAgIGRjdFsyXSA9IDIKKworICAgIGFzc2VydCBsZW4oZGN0KSA9PSAyCisgICAgYXNz
ZXJ0IGRjdFsxXSA9PSAxCisgICAgYXNzZXJ0IGRjdFsyXSA9PSAyCisKKyAgICBkY3RbM10gPSAz
CisKKyAgICBhc3NlcnQgbGVuKGRjdCkgPT0gMworICAgIGFzc2VydCBkY3RbMV0gPT0gMQorICAg
IGFzc2VydCBkY3RbMl0gPT0gMgorICAgIGFzc2VydCBkY3RbM10gPT0gMwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi90ZXN0X3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3RfcmVxdWlyZW1lbnRz
LnR4dAppbmRleCAzNWJjYmMyZjA5MWE4NzExOTg5NWQxMTE0ZmY0Y2RjOGM4NTVmOThiLi5lMGVl
ZmEyOGFjZmI3ODhjNjMzMjE5YWE0YmVjYTMyNDcxNWIxMDViIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L3Rlc3RfcmVxdWlyZW1lbnRzLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3RfcmVxdWlyZW1lbnRzLnR4
dApAQCAtMSw1ICsxLDUgQEAKLXB5dGVzdD09My4wLjcKLXB5dGVzdC1jb3Y9PTIuNC4wCi1jb3Zl
cmFnZT09NC4zLjQKLXB5dGVzdC14ZGlzdD09MS4xNS4wCi1oeXBvdGhlc2lzPT0zLjcuMAorcHl0
ZXN0PT00LjYuNSAgIyBycS5maWx0ZXI6IDwgNQorcHl0ZXN0LWNvdj09Mi44LjEKK3B5dGVzdC14
ZGlzdD09MS4zMS4wCitjb3ZlcmFnZT09NC41LjQKK2h5cG90aGVzaXMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdG94LmluaQppbmRleCBhM2Q2YzRhNzg1YjFjNTE5MzYy
MDVkOTcwOTExZjY1MTE2MjYyY2I1Li45NzFmOWEwN2U5M2M4YzM0YTFmOGQ5MzY2YWZmODNiYWM3
MTMzYWZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3RveC5pbmkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90b3guaW5p
CkBAIC0xLDM3ICsxLDI0IEBACiBbdG94XQotZW52bGlzdCA9IHB5MjcsIHB5MzMsIHB5MzQsIHB5
MzUsIHB5MzYsIHB5cHksIGxpbnQsIHBhY2thZ2luZywgZG9jcworZW52bGlzdCA9IHB5MjcsIHB5
MzQsIHB5MzUsIHB5MzYsIHB5MzcsIHB5MzgsIHB5cHksIGxpbnQsIHBhY2thZ2luZywgZG9jcwog
CiBbdGVzdGVudl0KIGRlcHM9IC1ye3RveGluaWRpcn0vdGVzdF9yZXF1aXJlbWVudHMudHh0CiBj
b21tYW5kcz0KLSAgICBjb3ZlcmFnZSBydW4gLW0gcHkudGVzdCB7cG9zYXJnc30ge3RveGluaWRp
cn0vdGVzdC8KKyAgICBjb3ZlcmFnZSBydW4gLW0gcHkudGVzdCB7cG9zYXJnc30KICAgICBjb3Zl
cmFnZSByZXBvcnQKIAogW3Rlc3RlbnY6cHlweV0KICMgdGVtcG9yYXJpbHkgZGlzYWJsZSBjb3Zl
cmFnZSB0ZXN0aW5nIG9uIFB5UHkgZHVlIHRvIHBlcmZvcm1hbmNlIHByb2JsZW1zCi1jb21tYW5k
cz0gcHkudGVzdCB7cG9zYXJnc30ge3RveGluaWRpcn0vdGVzdC8KLQotW3Rlc3RlbnY6cHkyNy10
d2lzdGVkTWFzdGVyXQotIyBUaGlzIGlzIGEgdmFsaWRhdGlvbiB0ZXN0IHRoYXQgY29uZmlybXMg
dGhhdCBUd2lzdGVkJ3MgdGVzdCBjYXNlcyBoYXZlbid0Ci0jIGJyb2tlbi4KLWRlcHMgPQotICAg
ICMgW3RscyxodHRwMl0gc3ludGF4IGRvZXNuJ3Qgd29yayBoZXJlIHNvIHdlIGVudW1lcmF0ZSBh
bGwgZGVwZW5kZW5jaWVzLgotICAgIGdpdCtodHRwczovL2dpdGh1Yi5jb20vdHdpc3RlZC90d2lz
dGVkCi0gICAgcHlvcGVuc3NsCi0gICAgc2VydmljZV9pZGVudGl0eQotICAgIGlkbmEKLSAgICBw
cmlvcml0eQotICAgIHNwaGlueAotY29tbWFuZHMgPSBweXRob24gLW0gdHdpc3RlZC50cmlhbCAt
LXJlcG9ydGVyPXRleHQgdHdpc3RlZAorY29tbWFuZHM9IHB5LnRlc3Qge3Bvc2FyZ3N9CiAKIFt0
ZXN0ZW52OmxpbnRdCi1iYXNlcHl0aG9uPXB5dGhvbjMuNAotZGVwcyA9IGZsYWtlOD09My4zLjAK
K2Jhc2VweXRob249cHl0aG9uMy43CitkZXBzID0gZmxha2U4PT0zLjcuOAogY29tbWFuZHMgPSBm
bGFrZTggLS1tYXgtY29tcGxleGl0eSAxMCBoMiB0ZXN0CiAKIFt0ZXN0ZW52OmRvY3NdCi1iYXNl
cHl0aG9uPXB5dGhvbjMuNQotZGVwcyA9IHNwaGlueD09MS40LjkKK2Jhc2VweXRob249cHl0aG9u
My43CitkZXBzID0gc3BoaW54PT0yLjIuMAogY2hhbmdlZGlyID0ge3RveGluaWRpcn0vZG9jcwog
d2hpdGVsaXN0X2V4dGVybmFscyA9IHJtCiBjb21tYW5kcyA9CkBAIC00MCwxNSArMjcsMjIgQEAg
Y29tbWFuZHMgPQogCiBbdGVzdGVudjpncmFwaHNdCiBiYXNlcHl0aG9uPXB5dGhvbjIuNwotZGVw
cyA9IGdyYXBodml6PT0wLjYKK2RlcHMgPSBncmFwaHZpej09MC4xMwogY29tbWFuZHMgPQogICAg
IHB5dGhvbiB2aXN1YWxpemVyL3Zpc3VhbGl6ZS5weSAtaSBkb2NzL3NvdXJjZS9fc3RhdGljCiAK
IFt0ZXN0ZW52OnBhY2thZ2luZ10KLWJhc2VweXRob249cHl0aG9uMi43CitiYXNlcHl0aG9uPXB5
dGhvbjMuNwogZGVwcyA9Ci0gICAgY2hlY2stbWFuaWZlc3Q9PTAuMzUKLSAgICByZWFkbWVfcmVu
ZGVyZXI9PTE3LjIKKyAgICBjaGVjay1tYW5pZmVzdD09MC4zOQorICAgIHJlYWRtZS1yZW5kZXJl
cj09MjQuMAogY29tbWFuZHMgPQogICAgIGNoZWNrLW1hbmlmZXN0CiAgICAgcHl0aG9uIHNldHVw
LnB5IGNoZWNrIC0tbWV0YWRhdGEgLS1yZXN0cnVjdHVyZWR0ZXh0IC0tc3RyaWN0CisKK1t0ZXN0
ZW52Omgyc3BlY10KK2Jhc2VweXRob249cHl0aG9uMy42CitkZXBzID0gdHdpc3RlZFt0bHNdPT0x
OS43LjAKK3doaXRlbGlzdF9leHRlcm5hbHMgPSB7dG94aW5pZGlyfS90ZXN0L2gyc3BlY3Rlc3Qu
c2gKK2NvbW1hbmRzID0KKyAgICB7dG94aW5pZGlyfS90ZXN0L2gyc3BlY3Rlc3Quc2gKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvdXRpbHMvYmFja3BvcnQuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3V0aWxzL2JhY2twb3J0
LnNoCmluZGV4IDNmNWQwNzY3OTk0NzQyMzI2ZjIwZjVhNmI1OGQ4NzQ2ZDViZDJhODEuLjI3M2Mx
NDc5YjI3YmRjOTVlOTliM2Q1OWM5YmU0NDk0ODNhYTJiMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
dXRpbHMvYmFja3BvcnQuc2gKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi91dGlscy9iYWNrcG9ydC5zaApAQCAtMTYs
NiArMTYsNyBAQCBmaQogaWYgISBnaXQgcHVsbCAtLWZmLW9ubHk7IHRoZW4KICAgICBlY2hvICJV
bmFibGUgdG8gdXBkYXRlICRUQVJHRVRfQlJBTkNIIgogICAgIGV4aXQgMgorZmkKIAogaWYgISBn
aXQgY2hlY2tvdXQgLWIgIiRQUl9CUkFOQ0giOyB0aGVuCiAgICAgZWNobyAiRmFpbGVkIHRvIG9w
ZW4gbmV3IGJyYW5jaCAkUFJfQlJBTkNIIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL0hJ
U1RPUlkucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL0hJU1RPUlkucnN0CmluZGV4IDIyY2Q4N2ViMzQ1
OGRkYjI3MDQyZGQ0ODhjZjM2NWVjZGJlOTAwMzMuLjE3MmIyYjkxYmFmOWU5ZGY5NTUwMGEzZTY5
YjQ4OTQ5ZmRkOTc1NDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9ISVNUT1JZLnJzdAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyZnJhbWUvSElTVE9SWS5yc3QKQEAgLTQsNiArNCwxOCBAQCBSZWxlYXNl
IEhpc3RvcnkKIDYuMC4wZGV2MAogLS0tLS0tLS0tCiAKKzUuMi4wICgyMDE5LTAxLTE4KQorLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyoqQVBJIENoYW5nZXMgKEJhY2t3YXJkLWNvbXBhdGlibGUpKioK
KworLSBBZGQgYSBuZXcgRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0wgc2V0dGluZ3MgcGFyYW10ZXIu
CisKKyoqT3RoZXIgQ2hhbmdlcyoqCisKKy0gRml4IGNvbGxlY3Rpb25zLmFiYyBkZXByZWNhdGlv
bi4KKy0gRHJvcCBzdXBwb3J0IGZvciBQeXRob24gMy4zIGFuZCBzdXBwb3J0IDMuNy4KKwogNS4x
LjAgKDIwMTctMDQtMjQpCiAtLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlcmZyYW1lL1BLRy1JTkZPIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL1BLRy1JTkZPCmluZGV4IDM5M2Mx
ZThkODZkMDQzNDg5YzIyMTAxMzIyNDFkOWZjY2U2ZWE1NWMuLmNmZDUzZjdlOTM4MzZmMTNkNDQ3
NWQzYmM0MGZhNTYzNDk1MjM4MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9QS0ctSU5G
TworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvUEtHLUlORk8KQEAgLTEsOCArMSw4IEBACiBNZXRhZGF0
YS1WZXJzaW9uOiAxLjEKIE5hbWU6IGh5cGVyZnJhbWUKLVZlcnNpb246IDUuMS4wCitWZXJzaW9u
OiA1LjIuMAogU3VtbWFyeTogSFRUUC8yIGZyYW1pbmcgbGF5ZXIgZm9yIFB5dGhvbgotSG9tZS1w
YWdlOiBodHRwOi8vaHlwZXIucnRmZC5vcmcKK0hvbWUtcGFnZTogaHR0cHM6Ly9weXRob24taHlw
ZXIub3JnL2h5cGVyZnJhbWUvZW4vbGF0ZXN0LwogQXV0aG9yOiBDb3J5IEJlbmZpZWxkCiBBdXRo
b3ItZW1haWw6IGNvcnlAbHVrYXNhLmNvLnVrCiBMaWNlbnNlOiBNSVQgTGljZW5zZQpAQCAtNTMs
NiArNTMsMTggQEAgRGVzY3JpcHRpb246ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CiAgICAgICAgIDYuMC4wZGV2MAogICAgICAgICAtLS0tLS0tLS0KICAgICAgICAgCisg
ICAgICAgIDUuMi4wICgyMDE5LTAxLTE4KQorICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0KKyAg
ICAgICAgCisgICAgICAgICoqQVBJIENoYW5nZXMgKEJhY2t3YXJkLWNvbXBhdGlibGUpKioKKyAg
ICAgICAgCisgICAgICAgIC0gQWRkIGEgbmV3IEVOQUJMRV9DT05ORUNUX1BST1RPQ09MIHNldHRp
bmdzIHBhcmFtdGVyLgorICAgICAgICAKKyAgICAgICAgKipPdGhlciBDaGFuZ2VzKioKKyAgICAg
ICAgCisgICAgICAgIC0gRml4IGNvbGxlY3Rpb25zLmFiYyBkZXByZWNhdGlvbi4KKyAgICAgICAg
LSBEcm9wIHN1cHBvcnQgZm9yIFB5dGhvbiAzLjMgYW5kIHN1cHBvcnQgMy43LgorICAgICAgICAK
ICAgICAgICAgNS4xLjAgKDIwMTctMDQtMjQpCiAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLQog
ICAgICAgICAKQEAgLTIyMyw4ICsyMzUsOCBAQCBDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5n
dWFnZSA6OiBQeXRob24KIENsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhv
biA6OiAyCiBDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43
CiBDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMwotQ2xhc3Np
ZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuMwogQ2xhc3NpZmllcjog
UHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNAogQ2xhc3NpZmllcjogUHJvZ3Jh
bW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNQogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcg
TGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNgorQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3Vh
Z2UgOjogUHl0aG9uIDo6IDMuNwogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjog
UHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IENQeXRob24KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlw
ZXJmcmFtZS9oeXBlcmZyYW1lLmVnZy1pbmZvL1BLRy1JTkZPIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5
cGVyZnJhbWUuZWdnLWluZm8vUEtHLUlORk8KaW5kZXggMzkzYzFlOGQ4NmQwNDM0ODljMjIxMDEz
MjI0MWQ5ZmNjZTZlYTU1Yy4uY2ZkNTNmN2U5MzgzNmYxM2Q0NDc1ZDNiYzQwZmE1NjM0OTUyMzgx
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUuZWdnLWluZm8vUEtHLUlO
Rk8KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUuZWdnLWluZm8vUEtHLUlORk8KQEAg
LTEsOCArMSw4IEBACiBNZXRhZGF0YS1WZXJzaW9uOiAxLjEKIE5hbWU6IGh5cGVyZnJhbWUKLVZl
cnNpb246IDUuMS4wCitWZXJzaW9uOiA1LjIuMAogU3VtbWFyeTogSFRUUC8yIGZyYW1pbmcgbGF5
ZXIgZm9yIFB5dGhvbgotSG9tZS1wYWdlOiBodHRwOi8vaHlwZXIucnRmZC5vcmcKK0hvbWUtcGFn
ZTogaHR0cHM6Ly9weXRob24taHlwZXIub3JnL2h5cGVyZnJhbWUvZW4vbGF0ZXN0LwogQXV0aG9y
OiBDb3J5IEJlbmZpZWxkCiBBdXRob3ItZW1haWw6IGNvcnlAbHVrYXNhLmNvLnVrCiBMaWNlbnNl
OiBNSVQgTGljZW5zZQpAQCAtNTMsNiArNTMsMTggQEAgRGVzY3JpcHRpb246ID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgIDYuMC4wZGV2MAogICAgICAgICAt
LS0tLS0tLS0KICAgICAgICAgCisgICAgICAgIDUuMi4wICgyMDE5LTAxLTE4KQorICAgICAgICAt
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgICoqQVBJIENoYW5nZXMgKEJhY2t3
YXJkLWNvbXBhdGlibGUpKioKKyAgICAgICAgCisgICAgICAgIC0gQWRkIGEgbmV3IEVOQUJMRV9D
T05ORUNUX1BST1RPQ09MIHNldHRpbmdzIHBhcmFtdGVyLgorICAgICAgICAKKyAgICAgICAgKipP
dGhlciBDaGFuZ2VzKioKKyAgICAgICAgCisgICAgICAgIC0gRml4IGNvbGxlY3Rpb25zLmFiYyBk
ZXByZWNhdGlvbi4KKyAgICAgICAgLSBEcm9wIHN1cHBvcnQgZm9yIFB5dGhvbiAzLjMgYW5kIHN1
cHBvcnQgMy43LgorICAgICAgICAKICAgICAgICAgNS4xLjAgKDIwMTctMDQtMjQpCiAgICAgICAg
IC0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAKQEAgLTIyMyw4ICsyMzUsOCBAQCBDbGFzc2lm
aWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24KIENsYXNzaWZpZXI6IFByb2dyYW1t
aW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyCiBDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5n
dWFnZSA6OiBQeXRob24gOjogMi43CiBDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6
OiBQeXRob24gOjogMwotQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9u
IDo6IDMuMwogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMu
NAogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNQogQ2xh
c3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNgorQ2xhc3NpZmll
cjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNwogQ2xhc3NpZmllcjogUHJv
Z3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IENQeXRob24K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lL19faW5pdF9fLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvX19pbml0X18ucHkKaW5kZXggOGZkMWNkMzM4OGI1M2M3
Yzk3MDY1MzViODMxMjAxNjUyMTk0N2RmMC4uNzYyMGI0YmRmN2YxNDViZTlhOGQ2OTM1MzQ5OGEz
Y2NlYWM3YzkxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvX19pbml0
X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvX19pbml0X18ucHkKQEAgLTUs
NCArNSw0IEBAIGh5cGVyZnJhbWUKIAogQSBtb2R1bGUgZm9yIHByb3ZpZGluZyBhIHB1cmUtUHl0
aG9uIEhUVFAvMiBmcmFtaW5nIGxheWVyLgogIiIiCi1fX3ZlcnNpb25fXyA9ICc1LjEuMCcKK19f
dmVyc2lvbl9fID0gJzUuMi4wJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJh
bWUvZmxhZ3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS9mbGFncy5weQppbmRleCAw
NWIzNTAxN2U3MDJjZjBlMjU0OTczZTE0M2FkNTBjYTllNmMxMjY1Li4xNjYwYmQxODAwYTI0NGY1
ZGZmOGY0MmMxNjA1ODQ5MzVmZjZjNzFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlw
ZXJmcmFtZS9mbGFncy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS9mbGFncy5w
eQpAQCAtNywxMSArNywxNiBAQCBEZWZpbmVzIGJhc2ljIEZsYWcgYW5kIEZsYWdzIGRhdGEgc3Ry
dWN0dXJlcy4KICIiIgogaW1wb3J0IGNvbGxlY3Rpb25zCiAKK3RyeToKKyAgICBmcm9tIGNvbGxl
Y3Rpb25zLmFiYyBpbXBvcnQgTXV0YWJsZVNldAorZXhjZXB0IEltcG9ydEVycm9yOiAgIyBwcmFn
bWE6IG5vIGNvdmVyCisgICAgIyBQeXRob24gMi43IGNvbXBhdGliaWxpdHkKKyAgICBmcm9tIGNv
bGxlY3Rpb25zIGltcG9ydCBNdXRhYmxlU2V0CiAKIEZsYWcgPSBjb2xsZWN0aW9ucy5uYW1lZHR1
cGxlKCJGbGFnIiwgWyJuYW1lIiwgImJpdCJdKQogCiAKLWNsYXNzIEZsYWdzKGNvbGxlY3Rpb25z
Lk11dGFibGVTZXQpOgorY2xhc3MgRmxhZ3MoTXV0YWJsZVNldCk6CiAgICAgIiIiCiAgICAgQSBz
aW1wbGUgTXV0YWJsZVNldCBpbXBsZW1lbnRhdGlvbiB0aGF0IHdpbGwgb25seSBhY2NlcHQga25v
d24gZmxhZ3MgYXMKICAgICBlbGVtZW50cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9o
eXBlcmZyYW1lL2ZyYW1lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvZnJhbWUucHkK
aW5kZXggNTI5NDc2OGEyODgwMzUyMTk1NTI5N2Q4ZTUyZmEyOGQ5ZmZhMWI0Yi4uNzk1MDU3Mjc5
YjU3ZTUwN2MxZGI2OTdkMzg0MjIyNjdkYjg4NGEwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZy
YW1lL2h5cGVyZnJhbWUvZnJhbWUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUv
ZnJhbWUucHkKQEAgLTM5NSw2ICszOTUsOCBAQCBjbGFzcyBTZXR0aW5nc0ZyYW1lKEZyYW1lKToK
ICAgICBNQVhfRlJBTUVfU0laRSA9IDB4MDUKICAgICAjOiBUaGUgYnl0ZSB0aGF0IHNpZ25hbHMg
dGhlIFNFVFRJTkdTX01BWF9IRUFERVJfTElTVF9TSVpFIHNldHRpbmcuCiAgICAgTUFYX0hFQURF
Ul9MSVNUX1NJWkUgPSAweDA2CisgICAgIzogVGhlIGJ5dGUgdGhhdCBzaWduYWxzIFNFVFRJTkdT
X0VOQUJMRV9DT05ORUNUX1BST1RPQ09MIHNldHRpbmcuCisgICAgRU5BQkxFX0NPTk5FQ1RfUFJP
VE9DT0wgPSAweDA4CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgc3RyZWFtX2lkPTAsIHNldHRp
bmdzPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoU2V0dGluZ3NGcmFtZSwgc2VsZiku
X19pbml0X18oc3RyZWFtX2lkLCAqKmt3YXJncykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFt
ZS9zZXR1cC5jZmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvc2V0dXAuY2ZnCmluZGV4IDFlM2ViMzY3YzEx
NjFjMzEwZmFhM2I0NmIzYWViNzAwZWFlMzdjY2EuLjUwMjIwZTEzNWJjNGNjMGViMGYxZGJkNjkx
NDQxZDI4MDA3NTIwNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9zZXR1cC5jZmcKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlcmZyYW1lL3NldHVwLmNmZwpAQCAtMSw2ICsxLDkgQEAKIFt3aGVlbF0KIHVu
aXZlcnNhbCA9IDEKIAorW3Rvb2w6cHl0ZXN0XQordGVzdHBhdGhzID0gdGVzdAorCiBbZWdnX2lu
Zm9dCiB0YWdfYnVpbGQgPSAKIHRhZ19kYXRlID0gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZy
YW1lL3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3NldHVwLnB5CmluZGV4IDhmMTNjMjYzOWY1
MWU0NjdiZDkxMzc2YmZlNGNiMjc1NzRhMGQyYjkuLjFhYjcyMTIxNDE2MzBlZDQxMzk2ZWJlZTQz
Y2IzYzIwNTI5MTgxZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9zZXR1cC5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h5cGVyZnJhbWUvc2V0dXAucHkKQEAgLTM2LDcgKzM2LDcgQEAgc2V0dXAoCiAgICAg
bG9uZ19kZXNjcmlwdGlvbj1vcGVuKCdSRUFETUUucnN0JykucmVhZCgpICsgJ1xuXG4nICsgb3Bl
bignSElTVE9SWS5yc3QnKS5yZWFkKCksCiAgICAgYXV0aG9yPSdDb3J5IEJlbmZpZWxkJywKICAg
ICBhdXRob3JfZW1haWw9J2NvcnlAbHVrYXNhLmNvLnVrJywKLSAgICB1cmw9J2h0dHA6Ly9oeXBl
ci5ydGZkLm9yZycsCisgICAgdXJsPSdodHRwczovL3B5dGhvbi1oeXBlci5vcmcvaHlwZXJmcmFt
ZS9lbi9sYXRlc3QvJywKICAgICBwYWNrYWdlcz1wYWNrYWdlcywKICAgICBwYWNrYWdlX2RhdGE9
eycnOiBbJ0xJQ0VOU0UnLCAnUkVBRE1FLnJzdCcsICdDT05UUklCVVRPUlMucnN0JywgJ0hJU1RP
UlkucnN0J119LAogICAgIHBhY2thZ2VfZGlyPXsnaHlwZXJmcmFtZSc6ICdoeXBlcmZyYW1lJ30s
CkBAIC01MCwxMCArNTAsMTAgQEAgc2V0dXAoCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFn
ZSA6OiBQeXRob24gOjogMicsCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRo
b24gOjogMi43JywKICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAz
JywKLSAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjMnLAogICAg
ICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNCcsCiAgICAgICAgICdQ
cm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy41JywKICAgICAgICAgJ1Byb2dyYW1t
aW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjYnLAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFu
Z3VhZ2UgOjogUHl0aG9uIDo6IDMuNycsCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6
OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjogQ1B5dGhvbicsCiAgICAgXSwKICkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHlwZXJmcmFtZS90ZXN0L3Rlc3RfZnJhbWVzLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZy
YW1lL3Rlc3QvdGVzdF9mcmFtZXMucHkKaW5kZXggOTQ4MzQ5YTkxZTdlZWNmN2VjYTFkYjRkYTNh
MGVkY2E0ODcyMDFlZC4uYWJmZWNiNjkyZGMzM2EzNTFiMWViNjNhOGMwM2E4ZWY5NDYzY2UzOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3Rlc3QvdGVzdF9mcmFtZXMucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oeXBlcmZyYW1lL3Rlc3QvdGVzdF9mcmFtZXMucHkKQEAgLTU2LDI5ICs1NiwyOSBAQCBjbGFz
cyBUZXN0R2VuZXJhbEZyYW1lQmVoYXZpb3VyKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBmLnN0
cmVhbV9pZCA9PSAwCiAKICAgICBkZWYgdGVzdF9wYXJzZV9mcmFtZV9oZWFkZXJfdW5rbm93bl90
eXBlKHNlbGYpOgotICAgICAgICBmLCBsID0gRnJhbWUucGFyc2VfZnJhbWVfaGVhZGVyKAorICAg
ICAgICBmcmFtZSwgbGVuZ3RoID0gRnJhbWUucGFyc2VfZnJhbWVfaGVhZGVyKAogICAgICAgICAg
ICAgYidceDAwXHgwMFx4NTlceEZGXHgwMFx4MDBceDAwXHgwMFx4MDEnCiAgICAgICAgICkKLSAg
ICAgICAgYXNzZXJ0IGYudHlwZSA9PSAweEZGCi0gICAgICAgIGFzc2VydCBsID09IDB4NTkKLSAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZiwgRXh0ZW5zaW9uRnJhbWUpCi0gICAgICAgIGFzc2Vy
dCBmLnN0cmVhbV9pZCA9PSAxCisgICAgICAgIGFzc2VydCBmcmFtZS50eXBlID09IDB4RkYKKyAg
ICAgICAgYXNzZXJ0IGxlbmd0aCA9PSAweDU5CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGZy
YW1lLCBFeHRlbnNpb25GcmFtZSkKKyAgICAgICAgYXNzZXJ0IGZyYW1lLnN0cmVhbV9pZCA9PSAx
CiAKICAgICBkZWYgdGVzdF9mbGFnc19hcmVfcGVyc2lzdGVkKHNlbGYpOgotICAgICAgICBmLCBs
ID0gRnJhbWUucGFyc2VfZnJhbWVfaGVhZGVyKAorICAgICAgICBmcmFtZSwgbGVuZ3RoID0gRnJh
bWUucGFyc2VfZnJhbWVfaGVhZGVyKAogICAgICAgICAgICAgYidceDAwXHgwMFx4NTlceEZGXHgw
OVx4MDBceDAwXHgwMFx4MDEnCiAgICAgICAgICkKLSAgICAgICAgYXNzZXJ0IGYudHlwZSA9PSAw
eEZGCi0gICAgICAgIGFzc2VydCBsID09IDB4NTkKLSAgICAgICAgYXNzZXJ0IGYuZmxhZ19ieXRl
ID09IDB4MDkKKyAgICAgICAgYXNzZXJ0IGZyYW1lLnR5cGUgPT0gMHhGRgorICAgICAgICBhc3Nl
cnQgbGVuZ3RoID09IDB4NTkKKyAgICAgICAgYXNzZXJ0IGZyYW1lLmZsYWdfYnl0ZSA9PSAweDA5
CiAKICAgICBkZWYgdGVzdF9wYXJzZV9ib2R5X3Vua25vd25fdHlwZShzZWxmKToKLSAgICAgICAg
ZiA9IGRlY29kZV9mcmFtZSgKKyAgICAgICAgZnJhbWUgPSBkZWNvZGVfZnJhbWUoCiAgICAgICAg
ICAgICBiJ1x4MDBceDAwXHgwQ1x4RkZceDAwXHgwMFx4MDBceDAwXHgwMWhlbGxvIHdvcmxkIScK
ICAgICAgICAgKQotICAgICAgICBhc3NlcnQgZi5ib2R5ID09IGInaGVsbG8gd29ybGQhJwotICAg
ICAgICBhc3NlcnQgZi5ib2R5X2xlbiA9PSAxMgotICAgICAgICBhc3NlcnQgZi5zdHJlYW1faWQg
PT0gMQorICAgICAgICBhc3NlcnQgZnJhbWUuYm9keSA9PSBiJ2hlbGxvIHdvcmxkIScKKyAgICAg
ICAgYXNzZXJ0IGZyYW1lLmJvZHlfbGVuID09IDEyCisgICAgICAgIGFzc2VydCBmcmFtZS5zdHJl
YW1faWQgPT0gMQogCiAgICAgZGVmIHRlc3RfY2FuX3JvdW5kX3RyaXBfdW5rbm93bl9mcmFtZXMo
c2VsZik6CiAgICAgICAgIGZyYW1lX2RhdGEgPSBiJ1x4MDBceDAwXHgwQ1x4RkZceDAwXHgwMFx4
MDBceDAwXHgwMWhlbGxvIHdvcmxkIScKQEAgLTMwNiwxMyArMzA2LDE0IEBAIGNsYXNzIFRlc3RS
c3RTdHJlYW1GcmFtZShvYmplY3QpOgogCiBjbGFzcyBUZXN0U2V0dGluZ3NGcmFtZShvYmplY3Qp
OgogICAgIHNlcmlhbGl6ZWQgPSAoCi0gICAgICAgIGInXHgwMFx4MDBceDI0XHgwNFx4MDFceDAw
XHgwMFx4MDBceDAwJyArICAjIEZyYW1lIGhlYWRlcgorICAgICAgICBiJ1x4MDBceDAwXHgyQVx4
MDRceDAxXHgwMFx4MDBceDAwXHgwMCcgKyAgIyBGcmFtZSBoZWFkZXIKICAgICAgICAgYidceDAw
XHgwMVx4MDBceDAwXHgxMFx4MDAnICsgICAgICAgICAgICAgICMgSEVBREVSX1RBQkxFX1NJWkUK
ICAgICAgICAgYidceDAwXHgwMlx4MDBceDAwXHgwMFx4MDAnICsgICAgICAgICAgICAgICMgRU5B
QkxFX1BVU0gKICAgICAgICAgYidceDAwXHgwM1x4MDBceDAwXHgwMFx4NjQnICsgICAgICAgICAg
ICAgICMgTUFYX0NPTkNVUlJFTlRfU1RSRUFNUwogICAgICAgICBiJ1x4MDBceDA0XHgwMFx4MDBc
eEZGXHhGRicgKyAgICAgICAgICAgICAgIyBJTklUSUFMX1dJTkRPV19TSVpFCiAgICAgICAgIGIn
XHgwMFx4MDVceDAwXHgwMFx4NDBceDAwJyArICAgICAgICAgICAgICAjIE1BWF9GUkFNRV9TSVpF
Ci0gICAgICAgIGInXHgwMFx4MDZceDAwXHgwMFx4RkZceEZGJyAgICAgICAgICAgICAgICAjIE1B
WF9IRUFERVJfTElTVF9TSVpFCisgICAgICAgIGInXHgwMFx4MDZceDAwXHgwMFx4RkZceEZGJyAr
ICAgICAgICAgICAgICAjIE1BWF9IRUFERVJfTElTVF9TSVpFCisgICAgICAgIGInXHgwMFx4MDhc
eDAwXHgwMFx4MDBceDAxJyAgICAgICAgICAgICAgICAjIEVOQUJMRV9DT05ORUNUX1BST1RPQ09M
CiAgICAgKQogCiAgICAgc2V0dGluZ3MgPSB7CkBAIC0zMjIsNiArMzIzLDcgQEAgY2xhc3MgVGVz
dFNldHRpbmdzRnJhbWUob2JqZWN0KToKICAgICAgICAgU2V0dGluZ3NGcmFtZS5JTklUSUFMX1dJ
TkRPV19TSVpFOiA2NTUzNSwKICAgICAgICAgU2V0dGluZ3NGcmFtZS5NQVhfRlJBTUVfU0laRTog
MTYzODQsCiAgICAgICAgIFNldHRpbmdzRnJhbWUuTUFYX0hFQURFUl9MSVNUX1NJWkU6IDY1NTM1
LAorICAgICAgICBTZXR0aW5nc0ZyYW1lLkVOQUJMRV9DT05ORUNUX1BST1RPQ09MOiAxLAogICAg
IH0KIAogICAgIGRlZiB0ZXN0X3NldHRpbmdzX2ZyYW1lX2hhc19vbmx5X29uZV9mbGFnKHNlbGYp
OgpAQCAtMzU5LDcgKzM2MSw3IEBAIGNsYXNzIFRlc3RTZXR0aW5nc0ZyYW1lKG9iamVjdCk6CiAg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGYsIFNldHRpbmdzRnJhbWUpCiAgICAgICAgIGFzc2Vy
dCBmLmZsYWdzID09IHNldChbJ0FDSyddKQogICAgICAgICBhc3NlcnQgZi5zZXR0aW5ncyA9PSBz
ZWxmLnNldHRpbmdzCi0gICAgICAgIGFzc2VydCBmLmJvZHlfbGVuID09IDM2CisgICAgICAgIGFz
c2VydCBmLmJvZHlfbGVuID09IDQyCiAKICAgICBkZWYgdGVzdF9zZXR0aW5nc19mcmFtZXNfbmV2
ZXJfaGF2ZV9zdHJlYW1zKHNlbGYpOgogICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVF
cnJvcik6CkBAIC01MTksNiArNTIxLDE5IEBAIGNsYXNzIFRlc3RHb0F3YXlGcmFtZShvYmplY3Qp
OgogICAgICAgICBhc3NlcnQgZi5hZGRpdGlvbmFsX2RhdGEgPT0gYidoZWxsbycKICAgICAgICAg
YXNzZXJ0IGYuYm9keV9sZW4gPT0gMTMKIAorICAgICAgICBzID0gKAorICAgICAgICAgICAgYidc
eDAwXHgwMFx4MDhceDA3XHgwMFx4MDBceDAwXHgwMFx4MDAnICsgICMgRnJhbWUgaGVhZGVyCisg
ICAgICAgICAgICBiJ1x4MDBceDAwXHgwMFx4NDAnICsgICAgICAgICAgICAgICAgICAgICAgIyBM
YXN0IFN0cmVhbSBJRAorICAgICAgICAgICAgYidceDAwXHgwMFx4MDBceDIwJyArICAgICAgICAg
ICAgICAgICAgICAgICMgRXJyb3IgQ29kZQorICAgICAgICAgICAgYicnICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICMgQWRkaXRpb25hbCBkYXRhCisgICAgICAgICkKKyAg
ICAgICAgZiA9IGRlY29kZV9mcmFtZShzKQorCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGYs
IEdvQXdheUZyYW1lKQorICAgICAgICBhc3NlcnQgZi5mbGFncyA9PSBzZXQoKQorICAgICAgICBh
c3NlcnQgZi5hZGRpdGlvbmFsX2RhdGEgPT0gYicnCisgICAgICAgIGFzc2VydCBmLmJvZHlfbGVu
ID09IDgKKwogICAgIGRlZiB0ZXN0X2dvYXdheV9mcmFtZV9uZXZlcl9oYXNfYV9zdHJlYW0oc2Vs
Zik6CiAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKICAgICAgICAgICAg
IEdvQXdheUZyYW1lKHN0cmVhbV9pZD0xKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0
YWRhdGEvLmdpdGh1Yi93b3JrZmxvd3MvbWFpbi55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0
YS8uZ2l0aHViL3dvcmtmbG93cy9tYWluLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTYzMjBmZDAwMDNkNTYx
M2QxMWE4YzUzYTg1YTE2OGNmMDUwYWJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvLmdpdGh1Yi93b3JrZmxvd3MvbWFpbi55bWwKQEAgLTAsMCArMSwxMjYgQEAK
K25hbWU6IEF1dG9tYXRlZCBUZXN0cworCitvbjogW3B1c2gsIHB1bGxfcmVxdWVzdF0KKworam9i
czoKKyAgdGVzdDoKKyAgICBzdHJhdGVneToKKyAgICAgIG1hdHJpeDoKKyAgICAgICAgcHl0aG9u
OiBbMi43LCAzLjUsIDMuNiwgMy43LCAzLjgsIDMuOV0KKyAgICAgICAgcGxhdGZvcm06IFt1YnVu
dHUtbGF0ZXN0LCBtYWNvcy1sYXRlc3QsIHdpbmRvd3MtbGF0ZXN0XQorICAgIHJ1bnMtb246ICR7
eyBtYXRyaXgucGxhdGZvcm0gfX0KKyAgICBzdGVwczoKKyAgICAgIC0gdXNlczogYWN0aW9ucy9j
aGVja291dEB2MgorICAgICAgLSBuYW1lOiBTZXR1cCBQeXRob24KKyAgICAgICAgdXNlczogYWN0
aW9ucy9zZXR1cC1weXRob25AdjIKKyAgICAgICAgd2l0aDoKKyAgICAgICAgICBweXRob24tdmVy
c2lvbjogJHt7IG1hdHJpeC5weXRob24gfX0KKyAgICAgIC0gbmFtZTogSW5zdGFsbCB0b3gKKyAg
ICAgICAgcnVuOiB8CisgICAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIHRveAorICAgICAg
LSBuYW1lOiBSdW4gdGVzdHMKKyAgICAgICAgcnVuOiB0b3gKKyAgICAgICAgZW52OgorICAgICAg
ICAgIFRPWEVOVjogcHl0aG9uCisKKyAgcWE6CisgICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAor
ICAgIHN0ZXBzOgorICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYyCisgICAgICAtIG5h
bWU6IFNldHVwIFB5dGhvbgorICAgICAgICB1c2VzOiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2Mgor
ICAgICAgICB3aXRoOgorICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAzLjkKKyAgICAgIC0gbmFt
ZTogSW5zdGFsbCB0b3gKKyAgICAgICAgcnVuOiB8CisgICAgICAgICAgcHl0aG9uIC1tIHBpcCBp
bnN0YWxsIHRveAorICAgICAgLSBuYW1lOiBSdW4gY2hlY2tzCisgICAgICAgIHJ1bjogdG94Cisg
ICAgICAgIGVudjoKKyAgICAgICAgICBUT1hFTlY6IHFhCisKKyAgY292ZXJhZ2U6CisgICAgcnVu
cy1vbjogdWJ1bnR1LWxhdGVzdAorICAgIHN0ZXBzOgorICAgICAgLSB1c2VzOiBhY3Rpb25zL2No
ZWNrb3V0QHYyCisgICAgICAtIG5hbWU6IFNldHVwIFB5dGhvbgorICAgICAgICB1c2VzOiBhY3Rp
b25zL3NldHVwLXB5dGhvbkB2MgorICAgICAgICB3aXRoOgorICAgICAgICAgIHB5dGhvbi12ZXJz
aW9uOiAzLjkKKyAgICAgIC0gbmFtZTogSW5zdGFsbCB0b3gKKyAgICAgICAgcnVuOiB8CisgICAg
ICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIHRveAorICAgICAgLSBuYW1lOiBFdmFsdWF0ZSBj
b3ZlcmFnZQorICAgICAgICBydW46IHRveAorICAgICAgICBlbnY6CisgICAgICAgICAgVE9YRU5W
OiBjb3YKKworICBiZW5jaG1hcms6CisgICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAorICAgIHN0
ZXBzOgorICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYyCisgICAgICAtIG5hbWU6IFNl
dHVwIFB5dGhvbgorICAgICAgICB1c2VzOiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2MgorICAgICAg
ICB3aXRoOgorICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAzLjkKKyAgICAgIC0gbmFtZTogSW5z
dGFsbCB0b3gKKyAgICAgICAgcnVuOiB8CisgICAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxs
IHRveAorICAgICAgLSBuYW1lOiBSdW4gYmVuY2htYXJrcworICAgICAgICBydW46IHRveAorICAg
ICAgICBlbnY6CisgICAgICAgICAgVE9YRU5WOiBwZXJmCisKKyAgZGlmZmNvdjoKKyAgICBydW5z
LW9uOiB1YnVudHUtbGF0ZXN0CisgICAgc3RlcHM6CisgICAgICAtIHVzZXM6IGFjdGlvbnMvY2hl
Y2tvdXRAdjIKKyAgICAgICAgd2l0aDoKKyAgICAgICAgICBmZXRjaC1kZXB0aDogMAorICAgICAg
LSBuYW1lOiBTZXR1cCBQeXRob24KKyAgICAgICAgdXNlczogYWN0aW9ucy9zZXR1cC1weXRob25A
djIKKyAgICAgICAgd2l0aDoKKyAgICAgICAgICBweXRob24tdmVyc2lvbjogMy45CisgICAgICAt
IG5hbWU6IEluc3RhbGwgdG94CisgICAgICAgIHJ1bjogfAorICAgICAgICAgIHB5dGhvbiAtbSBw
aXAgaW5zdGFsbCB0b3gKKyAgICAgIC0gbmFtZTogRXZhbHVhdGUgY292ZXJhZ2UKKyAgICAgICAg
cnVuOiB0b3gKKyAgICAgICAgZW52OgorICAgICAgICAgIFRPWEVOVjogZGlmZmNvdgorCisgIGRv
Y3M6CisgICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAorICAgIHN0ZXBzOgorICAgICAgLSB1c2Vz
OiBhY3Rpb25zL2NoZWNrb3V0QHYyCisgICAgICAtIG5hbWU6IFNldHVwIFB5dGhvbgorICAgICAg
ICB1c2VzOiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2MgorICAgICAgICB3aXRoOgorICAgICAgICAg
IHB5dGhvbi12ZXJzaW9uOiAzLjkKKyAgICAgIC0gbmFtZTogSW5zdGFsbCB0b3gKKyAgICAgICAg
cnVuOiB8CisgICAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIHRveAorICAgICAgLSBuYW1l
OiBCdWlsZCBkb2NzCisgICAgICAgIHJ1bjogdG94CisgICAgICAgIGVudjoKKyAgICAgICAgICBU
T1hFTlY6IGRvY3MKKworICByZWxlYXNlOgorICAgIG5lZWRzOiB0ZXN0CisgICAgaWY6IGdpdGh1
Yi5ldmVudF9uYW1lID09ICdwdXNoJyAmJiBjb250YWlucyhnaXRodWIucmVmLCAncmVmcy90YWdz
LycpCisgICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAorCisgICAgc3RlcHM6CisgICAgICAtIHVz
ZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKKyAgICAgIC0gbmFtZTogU2V0dXAgUHl0aG9uCisgICAg
ICAgIHVzZXM6IGFjdGlvbnMvc2V0dXAtcHl0aG9uQHYyCisgICAgICAgIHdpdGg6CisgICAgICAg
ICAgcHl0aG9uLXZlcnNpb246IDMuOQorICAgICAgLSBuYW1lOiBJbnN0YWxsIHRveAorICAgICAg
ICBydW46IHwKKyAgICAgICAgICBweXRob24gLW0gcGlwIGluc3RhbGwgdG94CisgICAgICAtIG5h
bWU6IFJlbGVhc2UKKyAgICAgICAgcnVuOiB0b3ggLWUgcmVsZWFzZQorICAgICAgICBlbnY6Cisg
ICAgICAgICAgVFdJTkVfUEFTU1dPUkQ6ICR7eyBzZWNyZXRzLlBZUElfVE9LRU4gfX0KKyAgICAg
ICAgICBHSVRIVUJfVE9LRU46ICR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvLmdpdGh1Yi93b3JrZmxvd3MvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS8uZ2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZDVjNDAxNjM1ZWRjNTM2ODFmZjQ1NGFmMmU1ZWI5NTAyNGQ0MGZm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvLmdpdGh1Yi93b3Jr
Zmxvd3MvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvLmdpdGh1Yi93b3JrZmxvd3MvbWFpbi55bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaW1wb3J0bGliX21ldGFkYXRhL0xJQ0VOU0UgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9M
SUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJlN2UwOTJiMGIwNTBkYTczODViMWE1ZjE2NzBmNGMxMzRjZmEx
NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9MSUNFTlNFCkBA
IC0wLDAgKzEsMTMgQEAKK0NvcHlyaWdodCAyMDE3LTIwMTkgSmFzb24gUi4gQ29vbWJzLCBCYXJy
eSBXYXJzYXcKKworTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIu
MCAodGhlICJMaWNlbnNlIik7Cit5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBj
b21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCitZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhl
IExpY2Vuc2UgYXQKKworaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4w
CisKK1VubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3Jp
dGluZywgc29mdHdhcmUKK2Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCitXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O
UyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KK1NlZSB0aGUgTGljZW5z
ZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKK2xp
bWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJf
bWV0YWRhdGEvTUFOSUZFU1QuaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9NQU5JRkVTVC5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZmNmNmQ2MzNhZGEyZTYwOGZhNWY0ZjZmNmI1NzFmM2RlNDEwYWI5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvTUFOSUZFU1QuaW4KQEAg
LTAsMCArMSw1IEBACitpbmNsdWRlICoucHkgTUFOSUZFU1QuaW4gTElDRU5TRSBSRUFETUUucnN0
CitnbG9iYWwtaW5jbHVkZSAqLnR4dCAqLnJzdCAqLmluaSAqLmNmZyAqLnRvbWwgKi53aGwgKi5l
Z2cKK2V4Y2x1ZGUgLmdpdGlnbm9yZQorcHJ1bmUgYnVpbGQKK3BydW5lIC50b3gKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9t
ZXRhZGF0YS9SRUFETUUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NTVkOWFiOTg3NmIyZDVhMzlmYjI0N2U0
MmVhOGExNTkyODgxZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0
YS9SRUFETUUucnN0CkBAIC0wLDAgKzEsNDIgQEAKKz09PT09PT09PT09PT09PT09PT09PT09PT0K
KyBgYGltcG9ydGxpYl9tZXRhZGF0YWBgCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK2Bg
aW1wb3J0bGliX21ldGFkYXRhYGAgaXMgYSBsaWJyYXJ5IHRvIGFjY2VzcyB0aGUgbWV0YWRhdGEg
Zm9yIGEKK1B5dGhvbiBwYWNrYWdlLgorCitBcyBvZiBQeXRob24gMy44LCB0aGlzIGZ1bmN0aW9u
YWxpdHkgaGFzIGJlZW4gYWRkZWQgdG8gdGhlCitgUHl0aG9uIHN0YW5kYXJkIGxpYnJhcnkKKzxo
dHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvaW1wb3J0bGliLm1ldGFkYXRhLmh0bWw+
YF8uCitUaGlzIHBhY2thZ2Ugc3VwcGxpZXMgYmFja3BvcnRzIG9mIHRoYXQgZnVuY3Rpb25hbGl0
eSBpbmNsdWRpbmcKK2ltcHJvdmVtZW50cyBhZGRlZCB0byBzdWJzZXF1ZW50IFB5dGhvbiB2ZXJz
aW9ucy4KKworCitVc2FnZQorPT09PT0KKworU2VlIHRoZSBgb25saW5lIGRvY3VtZW50YXRpb24g
PGh0dHBzOi8vaW1wb3J0bGliX21ldGFkYXRhLnJlYWR0aGVkb2NzLmlvLz5gXworZm9yIHVzYWdl
IGRldGFpbHMuCisKK2BGaW5kZXIgYXV0aG9ycworPGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMv
cmVmZXJlbmNlL2ltcG9ydC5odG1sI2ZpbmRlcnMtYW5kLWxvYWRlcnM+YF8gY2FuCithbHNvIGFk
ZCBzdXBwb3J0IGZvciBjdXN0b20gcGFja2FnZSBpbnN0YWxsZXJzLiAgU2VlIHRoZSBhYm92ZSBk
b2N1bWVudGF0aW9uCitmb3IgZGV0YWlscy4KKworCitDYXZlYXRzCis9PT09PT09CisKK1RoaXMg
cHJvamVjdCBwcmltYXJpbHkgc3VwcG9ydHMgdGhpcmQtcGFydHkgcGFja2FnZXMgaW5zdGFsbGVk
IGJ5IFB5UEEKK3Rvb2xzIChvciBvdGhlciBjb25mb3JtaW5nIHBhY2thZ2VzKS4gSXQgZG9lcyBu
b3Qgc3VwcG9ydDoKKworLSBQYWNrYWdlcyBpbiB0aGUgc3RkbGliLgorLSBQYWNrYWdlcyBpbnN0
YWxsZWQgd2l0aG91dCBtZXRhZGF0YS4KKworUHJvamVjdCBkZXRhaWxzCis9PT09PT09PT09PT09
PT0KKworICogUHJvamVjdCBob21lOiBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uL2ltcG9ydGxp
Yl9tZXRhZGF0YQorICogUmVwb3J0IGJ1Z3MgYXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24v
aW1wb3J0bGliX21ldGFkYXRhL2lzc3VlcworICogQ29kZSBob3N0aW5nOiBodHRwczovL2dpdGh1
Yi5jb20vcHl0aG9uL2ltcG9ydGxpYl9tZXRhZGF0YQorICogRG9jdW1lbnRhdGlvbjogaHR0cHM6
Ly9pbXBvcnRsaWJfbWV0YWRhdGEucmVhZHRoZWRvY3MuaW8vCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS9jb2RlY292LnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2Nv
ZGVjb3YueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2YzdmNGJkMTkwOWM5YmUyZTRmZmU1OGM5MTM4ZDNmZTJi
YzYyOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9jb2RlY292
LnltbApAQCAtMCwwICsxLDIgQEAKK2NvZGVjb3Y6CisgIHRva2VuOiA1ZWIxYmM0NS0xYjdmLTQz
ZTYtOGJjMS1mMmIwMjgzM2RiYTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L2NvdmVyYWdlLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2NvdmVyYWdlLmluaQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNGQzMTAyZjQyNTYxODg2YjJlYjRiOTZlZTFjYmQwMjhlZWZlMGZkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvY292ZXJhZ2UuaW5pCkBAIC0wLDAg
KzEsMjQgQEAKK1tydW5dCiticmFuY2ggPSB0cnVlCitwYXJhbGxlbCA9IHRydWUKK29taXQgPQor
ICAgICBzZXR1cCoKKyAgICAudG94LyovbGliL3B5dGhvbioKKyAgICAqL3Rlc3RzLyoucHkKKyAg
ICAqL3Rlc3RpbmcvKi5weQorICAgIC91c3IvbG9jYWwvKgorICAgICovbW9kLnB5CitwbHVnaW5z
ID0KKyAgICAgY292ZXJwbHVnCisKK1tyZXBvcnRdCitleGNsdWRlX2xpbmVzID0KKyAgICBwcmFn
bWE6IG5vY292ZXIKKyAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgcmFpc2UgQXNz
ZXJ0aW9uRXJyb3IKKyAgICBhc3NlcnRccworICAgIG5vY292ZXJweSR7UFlWfQorCitbcGF0aHNd
Citzb3VyY2UgPQorICAgIGltcG9ydGxpYl9tZXRhZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvY292ZXJwbHVnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvY292
ZXJwbHVnLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiMGM3Y2I1NDkwYmJiMGQ4NGMxYTQxNTI1M2E5NDQ0MzNi
M2M1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9jb3ZlcnBs
dWcucHkKQEAgLTAsMCArMSwyMSBAQAorIiIiQ292ZXJhZ2UgcGx1Z2luIHRvIGFkZCBleGNsdWRl
IGxpbmVzIGJhc2VkIG9uIHRoZSBQeXRob24gdmVyc2lvbi4iIiIKKworaW1wb3J0IHN5cworCitm
cm9tIGNvdmVyYWdlIGltcG9ydCBDb3ZlcmFnZVBsdWdpbgorCisKK2NsYXNzIE15Q29uZmlnUGx1
Z2luKENvdmVyYWdlUGx1Z2luKToKKyAgICBkZWYgY29uZmlndXJlKHNlbGYsIGNvbmZpZyk6Cisg
ICAgICAgIG9wdF9uYW1lID0gJ3JlcG9ydDpleGNsdWRlX2xpbmVzJworICAgICAgICBleGNsdWRl
X2xpbmVzID0gY29uZmlnLmdldF9vcHRpb24ob3B0X25hbWUpCisgICAgICAgICMgUHl0aG9uID49
IDMuNiBoYXMgb3MuUGF0aExpa2UuCisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMs
IDYpOgorICAgICAgICAgICAgZXhjbHVkZV9saW5lcy5hcHBlbmQoJ3ByYWdtYTogPj0zNicpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBleGNsdWRlX2xpbmVzLmFwcGVuZCgncHJhZ21hOiA8
PTM1JykKKyAgICAgICAgY29uZmlnLnNldF9vcHRpb24ob3B0X25hbWUsIGV4Y2x1ZGVfbGluZXMp
CisKKworZGVmIGNvdmVyYWdlX2luaXQocmVnLCBvcHRpb25zKToKKyAgICByZWcuYWRkX2NvbmZp
Z3VyZXIoTXlDb25maWdQbHVnaW4oKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFk
YXRhL2RvY3MvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL19faW5p
dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMy
MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL19faW5p
dF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24g
dG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvY2hhbmdl
bG9nLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvY2hhbmdlbG9nLnJzdApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zOTY1MzU3NDRhNWU2ODg4MDEyMmVlYzFiNjhhMzVhZmIyM2E1MjI2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy9jaGFuZ2Vsb2cucnN0CkBA
IC0wLDAgKzEsMzE0IEBACis9PT09PT09PT09PT09PT09PT09PT09PT09CisgaW1wb3J0bGliX21l
dGFkYXRhIE5FV1MKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKwordjIuMS4wCis9PT09PT0K
KworKiAjMjUzOiBXaGVuIHF1ZXJ5aW5nIGZvciBwYWNrYWdlIG1ldGFkYXRhLCB0aGUgbG9va3Vw
CisgIG5vdyBob25vcnMKKyAgYHBhY2thZ2Ugbm9ybWFsaXphdGlvbiBydWxlcyA8aHR0cHM6Ly9w
YWNrYWdpbmcucHl0aG9uLm9yZy9zcGVjaWZpY2F0aW9ucy9yZWNvcmRpbmctaW5zdGFsbGVkLXBh
Y2thZ2VzLz5gXy4KKwordjIuMC4wCis9PT09PT0KKworKiBgYGltcG9ydGxpYl9tZXRhZGF0YWBg
IG5vIGxvbmdlciBwcmVzZW50cyBhCisgIGBgX192ZXJzaW9uX19gYCBhdHRyaWJ1dGUuIENvbnN1
bWVycyB3aXNoaW5nIHRvCisgIHJlc29sdmUgdGhlIHZlcnNpb24gb2YgdGhlIHBhY2thZ2Ugc2hv
dWxkIHF1ZXJ5IGl0CisgIGRpcmVjdGx5IHdpdGgKKyAgYGBpbXBvcnRsaWJfbWV0YWRhdGEudmVy
c2lvbignaW1wb3J0bGliLW1ldGFkYXRhJylgYC4KKyAgQ2xvc2VzICM3MS4KKwordjEuNy4wCis9
PT09PT0KKworKiBgYFBhdGhOb3RGb3VuZEVycm9yYGAgbm93IGhhcyBhIGN1c3RvbSBgYF9fc3Ry
X19gYAorICBtZW50aW9uaW5nICJwYWNrYWdlIG1ldGFkYXRhIiBiZWluZyBtaXNzaW5nIHRvIGhl
bHAKKyAgZ3VpZGUgdXNlcnMgdG8gdGhlIGNhdXNlIHdoZW4gdGhlIHBhY2thZ2UgaXMgaW5zdGFs
bGVkCisgIGJ1dCBubyBtZXRhZGF0YSBpcyBwcmVzZW50LiBDbG9zZXMgIzEyNC4KKwordjEuNi4x
Cis9PT09PT0KKworKiBBZGRlZCBgYERpc3RyaWJ1dGlvbi5fbG9jYWwoKWBgIGFzIGEgcHJvdmlz
aW9uYWwKKyAgZGVtb25zdHJhdGlvbiBvZiBob3cgdG8gbG9hZCBtZXRhZGF0YSBmb3IgYSBsb2Nh
bAorICBwYWNrYWdlLiBJbXBsaWNpdGx5IHJlcXVpcmVzIHRoYXQKKyAgYHBlcDUxNyA8aHR0cHM6
Ly9weXBpLm9yZy9wcm9qZWN0L3BlcDUxNz5gXyBpcworICBpbnN0YWxsZWQuIFJlZiAjNDIuCisq
IEVuc3VyZSBpbnB1dHMgdG8gRmFzdFBhdGggYXJlIFVuaWNvZGUuIENsb3NlcyAjMTIxLgorKiBU
ZXN0cyBub3cgcmVseSBvbiBgYGltcG9ydGxpYi5yZXNvdXJjZXMuZmlsZXNgYCAoYW5kCisgIGJh
Y2twb3J0KSBpbnN0ZWFkIG9mIHRoZSBvbGRlciBgYHBhdGhgYCBmdW5jdGlvbi4KKyogU3VwcG9y
dCBhbnkgaXRlcmFibGUgZnJvbSBgYGZpbmRfZGlzdHJpYnV0aW9uc2BgLgorICBDbG9zZXMgIzEy
Mi4KKwordjEuNi4wCis9PT09PT0KKworKiBBZGRlZCBgYG1vZHVsZWBgIGFuZCBgYGF0dHJgYCBh
dHRyaWJ1dGVzIHRvIGBgRW50cnlQb2ludGBgCisKK3YxLjUuMgorPT09PT09CisKKyogRml4IHJl
ZHVuZGFudCBlbnRyaWVzIGZyb20gYGBGYXN0UGF0aC56aXBfY2hpbGRyZW5gYC4KKyAgQ2xvc2Vz
ICMxMTcuCisKK3YxLjUuMQorPT09PT09CisKKyogSW1wcm92ZSByZWxpYWJpbGl0eSBhbmQgY29u
c2lzdGVuY3kgb2YgY29tcGF0aWJpbGl0eQorICBpbXBvcnRzIGZvciBjb250ZXh0bGliIGFuZCBw
YXRobGliIHdoZW4gcnVubmluZyB0ZXN0cy4KKyAgQ2xvc2VzICMxMTYuCisKK3YxLjUuMAorPT09
PT09CisKKyogQWRkaXRpb25hbCBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zIGluIEZhc3RQYXRo
IG5vdworICBzYXZlcyBhbiBhZGRpdGlvbmFsIDIwJSBvbiBhIHR5cGljYWwgY2FsbC4KKyogQ29y
cmVjdCBmb3IgaXNzdWUgd2hlcmUgUHlPeGlkaXplciBmaW5kZXIgaGFzIG5vCisgIGBgX19tb2R1
bGVfX2BgIGF0dHJpYnV0ZS4gQ2xvc2VzICMxMTAuCisKK3YxLjQuMAorPT09PT09CisKKyogVGhy
b3VnaCBjYXJlZnVsIG9wdGltaXphdGlvbiwgYGBkaXN0cmlidXRpb24oKWBgIGlzCisgIDMtNHgg
ZmFzdGVyLiBUaGFua3MgdG8gQW50b255IExlZSBmb3IgdGhlCisgIGNvbnRyaWJ1dGlvbi4gQ2xv
c2VzICM5NS4KKworKiBXaGVuIHNlYXJjaGluZyB0aHJvdWdoIGBgc3lzLnBhdGhgYCwgaWYgYW55
IGVycm9yCisgIG9jY3VycyBhdHRlbXB0aW5nIHRvIGxpc3QgYSBwYXRoIGVudHJ5LCB0aGF0IGVu
dHJ5CisgIGlzIHNraXBwZWQsIG1ha2luZyB0aGUgc3lzdGVtIG11Y2ggbW9yZSBsZW5pZW50Cisg
IHRvIGVycm9ycy4gQ2xvc2VzICM5NC4KKwordjEuMy4wCis9PT09PT0KKworKiBJbXByb3ZlIGN1
c3RvbSBmaW5kZXJzIGRvY3VtZW50YXRpb24uIENsb3NlcyAjMTA1LgorCit2MS4yLjAKKz09PT09
PQorCisqIE9uY2UgYWdhaW4sIGRyb3Agc3VwcG9ydCBmb3IgUHl0aG9uIDMuNC4gUmVmICMxMDQu
CisKK3YxLjEuMworPT09PT09CisKKyogUmVzdG9yZWQgc3VwcG9ydCBmb3IgUHl0aG9uIDMuNCBk
dWUgdG8gaW1wcm9wZXIgdmVyc2lvbgorICBjb21wYXRpYmlsaXR5IGRlY2xhcmF0aW9ucyBpbiB0
aGUgdjEuMS4wIGFuZCB2MS4xLjEKKyAgcmVsZWFzZXMuIENsb3NlcyAjMTA0LgorCit2MS4xLjIK
Kz09PT09PQorCisqIFJlcGFpcmVkIHByb2plY3QgbWV0YWRhdGEgdG8gY29ycmVjdGx5IGRlY2xh
cmUgdGhlCisgIGBgcHl0aG9uX3JlcXVpcmVzYGAgZGlyZWN0aXZlLiBDbG9zZXMgIzEwMy4KKwor
djEuMS4xCis9PT09PT0KKworKiBGaXhlZCBgYHJlcHIoRW50cnlQb2ludClgYCBvbiBQeVB5IDMg
YWxzby4gQ2xvc2VzICMxMDIuCisKK3YxLjEuMAorPT09PT09CisKKyogRHJvcHBlZCBzdXBwb3J0
IGZvciBQeXRob24gMy40LgorKiBFbnRyeVBvaW50cyBhcmUgbm93IHBpY2tsZWFibGUuIENsb3Nl
cyAjOTYuCisqIEZpeGVkIGBgcmVwcihFbnRyeVBvaW50KWBgIG9uIFB5UHkgMi4gQ2xvc2VzICM5
Ny4KKwordjEuMC4wCis9PT09PT0KKworKiBQcm9qZWN0IGFkb3B0cyBzZW12ZXIgZm9yIHZlcnNp
b25pbmcuCisKKyogUmVtb3ZlZCBjb21wYXRpYmlsaXR5IHNoaW0gaW50cm9kdWNlZCBpbiAwLjIz
LgorCisqIEZvciBiZXR0ZXIgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBzdGRsaWIgaW1wbGVtZW50
YXRpb24gYW5kIHRvCisgIGF2b2lkIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbnMgYmVpbmcgZGlzY292
ZXJlZCBieSB0aGUgc3RkbGliIGFuZAorICBiYWNrcG9ydCBpbXBsZW1lbnRhdGlvbnMsIHRoZSBi
YWNrcG9ydCBub3cgZGlzYWJsZXMgdGhlCisgIHN0ZGxpYiBEaXN0cmlidXRpb25GaW5kZXIgZHVy
aW5nIGluaXRpYWxpemF0aW9uIChpbXBvcnQgdGltZSkuCisgIENsb3NlcyAjOTEgYW5kIGNsb3Nl
cyAjMTAwLgorCiswLjIzCis9PT09CisqIEFkZGVkIGEgY29tcGF0aWJpbGl0eSBzaGltIHRvIHBy
ZXZlbnQgZmFpbHVyZXMgb24gYmV0YSByZWxlYXNlcworICBvZiBQeXRob24gYmVmb3JlIHRoZSBz
aWduYXR1cmUgY2hhbmdlZCB0byBhY2NlcHQgdGhlCisgICJjb250ZXh0IiBwYXJhbWV0ZXIgb24g
ZmluZF9kaXN0cmlidXRpb25zLiBUaGlzIHdvcmthcm91bmQKKyAgd2lsbCBoYXZlIGEgbGltaXRl
ZCBsaWZlc3Bhbiwgbm90IHRvIGV4dGVuZCBiZXlvbmQgcmVsZWFzZSBvZgorICBQeXRob24gMy44
IGZpbmFsLgorCiswLjIyCis9PT09CisqIFJlbmFtZWQgYGBwYWNrYWdlYGAgcGFyYW1ldGVyIHRv
IGBgZGlzdHJpYnV0aW9uX25hbWVgYAorICBhcyBgcmVjb21tZW5kZWQgPGh0dHBzOi8vYnVncy5w
eXRob24ub3JnL2lzc3VlMzQ2MzIjbXNnMzQ5NDIzPmBfCisgIGluIHRoZSBmb2xsb3dpbmcgZnVu
Y3Rpb25zOiBgYGRpc3RyaWJ1dGlvbmBgLCBgYG1ldGFkYXRhYGAsCisgIGBgdmVyc2lvbmBgLCBg
YGZpbGVzYGAsIGFuZCBgYHJlcXVpcmVzYGAuIFRoaXMKKyAgYmFja3dhcmQtaW5jb21wYXRpYmxl
IGNoYW5nZSBpcyBleHBlY3RlZCB0byBoYXZlIGxpdHRsZSBpbXBhY3QKKyAgYXMgdGhlc2UgZnVu
Y3Rpb25zIGFyZSBhc3N1bWVkIHRvIGJlIHByaW1hcmlseSB1c2VkIHdpdGgKKyAgcG9zaXRpb25h
bCBwYXJhbWV0ZXJzLgorCiswLjIxCis9PT09CisqIGBgaW1wb3J0bGliLm1ldGFkYXRhYGAgbm93
IGV4cG9zZXMgdGhlIGBgRGlzdHJpYnV0aW9uRmluZGVyYGAKKyAgbWV0YWNsYXNzIGFuZCByZWZl
cmVuY2VzIGl0IGluIHRoZSBkb2NzIGZvciBleHRlbmRpbmcgdGhlCisgIHNlYXJjaCBhbGdvcml0
aG0uCisqIEFkZCBgYERpc3RyaWJ1dGlvbi5hdGBgIGZvciBjb25zdHJ1Y3RpbmcgYSBEaXN0cmli
dXRpb24gb2JqZWN0CisgIGZyb20gYSBrbm93biBtZXRhZGF0YSBkaXJlY3Rvcnkgb24gdGhlIGZp
bGUgc3lzdGVtLiBDbG9zZXMgIzgwLgorKiBEaXN0cmlidXRpb24gZmluZGVycyBub3cgcmVjZWl2
ZSBhIGNvbnRleHQgb2JqZWN0IHRoYXQKKyAgc3VwcGxpZXMgYGAucGF0aGBgIGFuZCBgYC5uYW1l
YGAgcHJvcGVydGllcy4gVGhpcyBjaGFuZ2UKKyAgaW50cm9kdWNlcyBhIGZ1bmRhbWVudGFsIGJh
Y2t3YXJkIGluY29tcGF0aWJpbGl0eSBmb3IKKyAgYW55IHByb2plY3RzIGltcGxlbWVudGluZyBh
IGBgZmluZF9kaXN0cmlidXRpb25zYGAgbWV0aG9kCisgIG9uIGEgYGBNZXRhUGF0aEZpbmRlcmBg
LiBUaGlzIG5ldyBsYXllciBvZiBhYnN0cmFjdGlvbgorICBhbGxvd3MgdGhpcyBjb250ZXh0IHRv
IGJlIHN1cHBsaWVkIGRpcmVjdGx5IG9yIGNvbnN0cnVjdGVkCisgIG9uIGRlbWFuZCBhbmQgb3Bl
bnMgdGhlIG9wcG9ydHVuaXR5IGZvciBhCisgIGBgZmluZF9kaXN0cmlidXRpb25zYGAgbWV0aG9k
IHRvIHNvbGljaXQgYWRkaXRpb25hbAorICBjb250ZXh0IGZyb20gdGhlIGNhbGxlci4gQ2xvc2Vz
ICM4NS4KKworMC4yMAorPT09PQorKiBDbGFyaWZ5IGluIHRoZSBkb2NzIHRoYXQgY2FsbHMgdG8g
YGAuZmlsZXNgYCBjb3VsZCByZXR1cm4KKyAgYGBOb25lYGAgd2hlbiB0aGUgbWV0YWRhdGEgaXMg
bm90IHByZXNlbnQuIENsb3NlcyAjNjkuCisqIFJldHVybiBhbGwgcmVxdWlyZW1lbnRzIGFuZCBu
b3QganVzdCB0aGUgZmlyc3QgZm9yIGRpc3QtaW5mbworICBwYWNrYWdlcy4gQ2xvc2VzICM2Ny4K
KworMC4xOQorPT09PQorKiBSZXN0cmFpbiBvdmVyLWVhZ2VyIGVnZyBtZXRhZGF0YSByZXNvbHV0
aW9uLgorKiBBZGQgc3VwcG9ydCBmb3IgZW50cnkgcG9pbnRzIHdpdGggY29sb25zIGluIHRoZSBu
YW1lLiBDbG9zZXMgIzc1LgorCiswLjE4Cis9PT09CisqIFBhcnNlIGVudHJ5IHBvaW50cyBjYXNl
IHNlbnNpdGl2ZWx5LiAgQ2xvc2VzICM2OAorKiBBZGQgYSB2ZXJzaW9uIGNvbnN0cmFpbnQgb24g
dGhlIGJhY2twb3J0IGNvbmZpZ3BhcnNlciBwYWNrYWdlLiAgQ2xvc2VzICM2NgorCiswLjE3Cis9
PT09CisqIEZpeCBhIHBlcm1pc3Npb24gcHJvYmxlbSBpbiB0aGUgdGVzdHMgb24gV2luZG93cy4K
KworMC4xNgorPT09PQorKiBEb24ndCBjcmFzaCBpZiB0aGVyZSBleGlzdHMgYW4gRUdHLUlORk8g
ZGlyZWN0b3J5IG9uIHN5cy5wYXRoLgorCiswLjE1Cis9PT09CisqIEZpeCBkb2N1bWVudGF0aW9u
LgorCiswLjE0Cis9PT09CisqIFJlbW92ZWQgYGBsb2NhbF9kaXN0cmlidXRpb25gYCBmdW5jdGlv
biBmcm9tIHRoZSBBUEkuCisgICoqVGhpcyBiYWNrd2FyZC1pbmNvbXBhdGlibGUgY2hhbmdlIHJl
bW92ZXMgdGhpcworICBiZWhhdmlvciBzdW1tYXJpbHkqKi4gUHJvamVjdHMgc2hvdWxkIHJlbW92
ZSB0aGVpcgorICByZWxpYW5jZSBvbiB0aGlzIGJlaGF2aW9yLiBBIHJlcGxhY2VtZW50IGJlaGF2
aW9yIGlzCisgIHVuZGVyIHJldmlldyBpbiB0aGUgYHBlcDUxNyBwcm9qZWN0CisgIDxodHRwczov
L2dpdGh1Yi5jb20vcHlwYS9wZXA1MTc+YF8uIENsb3NlcyAjNDIuCisKKzAuMTMKKz09PT0KKyog
VXBkYXRlIGRvY3N0cmluZ3MgdG8gbWF0Y2ggUEVQIDguIENsb3NlcyAjNjMuCisqIE1lcmdlZCBt
b2R1bGVzIGludG8gb25lIG1vZHVsZS4gQ2xvc2VzICM2Mi4KKworMC4xMgorPT09PQorKiBBZGQg
c3VwcG9ydCBmb3IgZWdncy4gICE2NTsgQ2xvc2VzICMxOS4KKworMC4xMQorPT09PQorKiBTdXBw
b3J0IGdlbmVyaWMgemlwIGZpbGVzIChub3QganVzdCB3aGVlbHMpLiAgQ2xvc2VzICM1OQorKiBT
dXBwb3J0IHppcCBmaWxlcyB3aXRoIG11bHRpcGxlIGRpc3RyaWJ1dGlvbnMgaW4gdGhlbS4gIENs
b3NlcyAjNjAKKyogRnVsbHkgZXhwb3NlIHRoZSBwdWJsaWMgQVBJIGluIGBgaW1wb3J0bGliX21l
dGFkYXRhLl9fYWxsX19gYC4KKworMC4xMAorPT09PQorKiBUaGUgYGBEaXN0cmlidXRpb25gYCBB
QkMgaXMgbm93IG9mZmljaWFsbHkgcGFydCBvZiB0aGUgcHVibGljIEFQSS4KKyAgQ2xvc2VzICMz
Ny4KKyogRml4ZWQgc3VwcG9ydCBmb3Igb2xkZXIgc2luZ2xlIGZpbGUgZWdnLWluZm8gZm9ybWF0
cy4gIENsb3NlcyAjNDMuCisqIEZpeGVkIGEgdGVzdGluZyBidWcgd2hlbiBgYCRDV0RgYCBoYXMg
c3BhY2VzIGluIHRoZSBwYXRoLiAgQ2xvc2VzICM1MC4KKyogQWRkIFB5dGhvbiAzLjggdG8gdGhl
IGBgdG94YGAgdGVzdGluZyBtYXRyaXguCisKKzAuOQorPT09CisqIEZpeGVkIGlzc3VlIHdoZXJl
IGVudHJ5IHBvaW50cyB3aXRob3V0IGFuIGF0dHJpYnV0ZSB3b3VsZCByYWlzZSBhbgorICBFeGNl
cHRpb24uICBDbG9zZXMgIzQwLgorKiBSZW1vdmVkIHVudXNlZCBgYG5hbWVgYCBwYXJhbWV0ZXIg
ZnJvbSBgYGVudHJ5X3BvaW50cygpYGAuIENsb3NlcyAjNDQuCisqIGBgRGlzdHJpYnV0aW9uRmlu
ZGVyYGAgY2xhc3NlcyBtdXN0IG5vdyBiZSBpbnN0YW50aWF0ZWQgYmVmb3JlCisgIGJlaW5nIHBs
YWNlZCBvbiBgYHN5cy5tZXRhX3BhdGhgYC4KKworMC44Cis9PT0KKyogVGhpcyBsaWJyYXJ5IGNh
biBub3cgZGlzY292ZXIvZW51bWVyYXRlIGFsbCBpbnN0YWxsZWQgcGFja2FnZXMuICoqVGhpcwor
ICBiYWNrd2FyZC1pbmNvbXBhdGlibGUgY2hhbmdlIGFsdGVycyB0aGUgcHJvdG9jb2wgZmluZGVy
cyBtdXN0CisgIGltcGxlbWVudCB0byBzdXBwb3J0IGRpc3RyaWJ1dGlvbiBwYWNrYWdlIGRpc2Nv
dmVyeS4qKiBDbG9zZXMgIzI0LgorKiBUaGUgc2lnbmF0dXJlIG9mIGBgZmluZF9kaXN0cmlidXRp
b25zKClgYCBvbiBjdXN0b20gaW5zdGFsbGVyIGZpbmRlcnMKKyAgc2hvdWxkIG5vdyBhY2NlcHQg
dHdvIHBhcmFtZXRlcnMsIGBgbmFtZWBgIGFuZCBgYHBhdGhgYCBhbmQKKyAgdGhlc2UgcGFyYW1l
dGVycyBtdXN0IHN1cHBseSBkZWZhdWx0cy4KKyogVGhlIGBgZW50cnlfcG9pbnRzKClgYCBtZXRo
b2Qgbm8gbG9uZ2VyIGFjY2VwdHMgYSBwYWNrYWdlIG5hbWUKKyAgYnV0IGluc3RlYWQgcmV0dXJu
cyBhbGwgZW50cnkgcG9pbnRzIGluIGEgZGljdGlvbmFyeSBrZXllZCBieSB0aGUKKyAgYGBFbnRy
eVBvaW50Lmdyb3VwYGAuIFRoZSBgYHJlc29sdmVgYCBtZXRob2QgaGFzIGJlZW4gcmVtb3ZlZC4g
SW5zdGVhZCwKKyAgY2FsbCBgYEVudHJ5UG9pbnQubG9hZCgpYGAsIHdoaWNoIGhhcyB0aGUgc2Ft
ZSBzZW1hbnRpY3MgYXMKKyAgYGBwa2dfcmVzb3VyY2VzYGAgYW5kIGBgZW50cnlwb2ludHNgYC4g
ICoqVGhpcyBpcyBhIGJhY2t3YXJkIGluY29tcGF0aWJsZQorICBjaGFuZ2UuKioKKyogTWV0YWRh
dGEgaXMgbm93IGFsd2F5cyByZXR1cm5lZCBhcyBVbmljb2RlIHRleHQgcmVnYXJkbGVzcyBvZgor
ICBQeXRob24gdmVyc2lvbi4gQ2xvc2VzICMyOS4KKyogVGhpcyBsaWJyYXJ5IGNhbiBub3cgZGlz
Y292ZXIgbWV0YWRhdGEgZm9yIGEgJ2xvY2FsJyBwYWNrYWdlIChmb3VuZAorICBpbiB0aGUgY3Vy
cmVudC13b3JraW5nIGRpcmVjdG9yeSkuIENsb3NlcyAjMjcuCisqIEFkZGVkIGBgZmlsZXMoKWBg
IGZ1bmN0aW9uIGZvciByZXNvbHZpbmcgZmlsZXMgZnJvbSBhIGRpc3RyaWJ1dGlvbi4KKyogQWRk
ZWQgYSBuZXcgYGByZXF1aXJlcygpYGAgZnVuY3Rpb24sIHdoaWNoIHJldHVybnMgdGhlIHJlcXVp
cmVtZW50cworICBmb3IgYSBwYWNrYWdlIHN1aXRhYmxlIGZvciBwYXJzaW5nIGJ5CisgIGBgcGFj
a2FnaW5nLnJlcXVpcmVtZW50cy5SZXF1aXJlbWVudGBgLiBDbG9zZXMgIzE4LgorKiBUaGUgdG9w
LWxldmVsIGBgcmVhZF90ZXh0KClgYCBmdW5jdGlvbiBoYXMgYmVlbiByZW1vdmVkLiAgVXNlCisg
IGBgUGFja2FnZVBhdGgucmVhZF90ZXh0KClgYCBvbiBpbnN0YW5jZXMgcmV0dXJuZWQgYnkgdGhl
IGBgZmlsZXMoKWBgCisgIGZ1bmN0aW9uLiAgKipUaGlzIGlzIGEgYmFja3dhcmQgaW5jb21wYXRp
YmxlIGNoYW5nZS4qKgorKiBSZWxlYXNlIGRhdGVzIGFyZSBub3cgYXV0b21hdGljYWxseSBpbmpl
Y3RlZCBpbnRvIHRoZSBjaGFuZ2Vsb2cKKyAgYmFzZWQgb24gU0NNIHRhZ3MuCisKKzAuNworPT09
CisqIEZpeGVkIGlzc3VlIHdoZXJlIHBhY2thZ2VzIHdpdGggZGFzaGVzIGluIHRoZWlyIG5hbWVz
IHdvdWxkCisgIG5vdCBiZSBkaXNjb3ZlcmVkLiBDbG9zZXMgIzIxLgorKiBEaXN0cmlidXRpb24g
bG9va3VwIGlzIG5vdyBjYXNlLWluc2Vuc2l0aXZlLiBDbG9zZXMgIzIwLgorKiBXaGVlbCBkaXN0
cmlidXRpb25zIGNhbiBubyBsb25nZXIgYmUgZGlzY292ZXJlZCBieSB0aGVpciBtb2R1bGUKKyAg
bmFtZS4gTGlrZSBQYXRoIGRpc3RyaWJ1dGlvbnMsIHRoZXkgbXVzdCBiZSBpbmRpY2F0ZWQgYnkg
dGhlaXIKKyAgZGlzdHJpYnV0aW9uIHBhY2thZ2UgbmFtZS4KKworMC42Cis9PT0KKyogUmVtb3Zl
ZCBgYGltcG9ydGxpYl9tZXRhZGF0YS5kaXN0cmlidXRpb25gYCBmdW5jdGlvbi4gTm93CisgIHRo
ZSBwdWJsaWMgaW50ZXJmYWNlIGlzIHByaW1hcmlseSB0aGUgdXRpbGl0eSBmdW5jdGlvbnMgZXhw
b3NlZAorICBpbiBgYGltcG9ydGxpYl9tZXRhZGF0YS5fX2FsbF9fYGAuIENsb3NlcyAjMTQuCisq
IEFkZGVkIHR3byBuZXcgdXRpbGl0eSBmdW5jdGlvbnMgYGByZWFkX3RleHRgYCBhbmQKKyAgYGBt
ZXRhZGF0YWBgLgorCiswLjUKKz09PQorKiBVcGRhdGVkIFJFQURNRSBhbmQgcmVtb3ZlZCBkZXRh
aWxzIGFib3V0IERpc3RyaWJ1dGlvbgorICBjbGFzcywgbm93IGNvbnNpZGVyZWQgcHJpdmF0ZS4g
Q2xvc2VzICMxNS4KKyogQWRkZWQgdGVzdCBzdWl0ZSBzdXBwb3J0IGZvciBQeXRob24gMy40Ky4K
KyogRml4ZWQgU3ludGF4RXJyb3JzIG9uIFB5dGhvbiAzLjQgYW5kIDMuNS4gITEyCisqIEZpeGVk
IGVycm9ycyBvbiBXaW5kb3dzIGpvaW5pbmcgUGF0aCBlbGVtZW50cy4gITE1CisKKzAuNAorPT09
CisqIEhvdXNla2VlcGluZy4KKworMC4zCis9PT0KKyogQWRkZWQgdXNhZ2UgZG9jdW1lbnRhdGlv
bi4gIENsb3NlcyAjOAorKiBBZGQgc3VwcG9ydCBmb3IgZ2V0dGluZyBtZXRhZGF0YSBmcm9tIHdo
ZWVscyBvbiBgYHN5cy5wYXRoYGAuICBDbG9zZXMgIzkKKworMC4yCis9PT0KKyogQWRkZWQgYGBp
bXBvcnRsaWJfbWV0YWRhdGEuZW50cnlfcG9pbnRzKClgYC4gIENsb3NlcyAjMQorKiBBZGRlZCBg
YGltcG9ydGxpYl9tZXRhZGF0YS5yZXNvbHZlKClgYC4gIENsb3NlcyAjMTIKKyogQWRkIHN1cHBv
cnQgZm9yIFB5dGhvbiAyLjcuICBDbG9zZXMgIzQKKworMC4xCis9PT0KKyogSW5pdGlhbCByZWxl
YXNlLgorCisKKy4uCisgICBMb2NhbCBWYXJpYWJsZXM6CisgICBtb2RlOiBjaGFuZ2UtbG9nLW1v
ZGUKKyAgIGluZGVudC10YWJzLW1vZGU6IG5pbAorICAgc2VudGVuY2UtZW5kLWRvdWJsZS1zcGFj
ZTogdAorICAgZmlsbC1jb2x1bW46IDc4CisgICBjb2Rpbmc6IHV0Zi04CisgICBFbmQ6CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL2NvbmYucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9y
dGxpYl9tZXRhZGF0YS9kb2NzL2NvbmYucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI5YTdhNGVhZWQxMGUzODc2
ZjgyNzg5Zjg1Y2E3MzY4NzBkM2JmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGli
X21ldGFkYXRhL2RvY3MvY29uZi5weQpAQCAtMCwwICsxLDE4NSBAQAorIyEvdXNyL2Jpbi9lbnYg
cHl0aG9uMworIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyMKKyMgaW1wb3J0bGliX21ldGFkYXRh
IGRvY3VtZW50YXRpb24gYnVpbGQgY29uZmlndXJhdGlvbiBmaWxlLCBjcmVhdGVkIGJ5CisjIHNw
aGlueC1xdWlja3N0YXJ0IG9uIFRodSBOb3YgMzAgMTA6MjE6MDAgMjAxNy4KKyMKKyMgVGhpcyBm
aWxlIGlzIGV4ZWNmaWxlKClkIHdpdGggdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHNldCB0byBpdHMK
KyMgY29udGFpbmluZyBkaXIuCisjCisjIE5vdGUgdGhhdCBub3QgYWxsIHBvc3NpYmxlIGNvbmZp
Z3VyYXRpb24gdmFsdWVzIGFyZSBwcmVzZW50IGluIHRoaXMKKyMgYXV0b2dlbmVyYXRlZCBmaWxl
LgorIworIyBBbGwgY29uZmlndXJhdGlvbiB2YWx1ZXMgaGF2ZSBhIGRlZmF1bHQ7IHZhbHVlcyB0
aGF0IGFyZSBjb21tZW50ZWQgb3V0CisjIHNlcnZlIHRvIHNob3cgdGhlIGRlZmF1bHQuCisKKyMg
SWYgZXh0ZW5zaW9ucyAob3IgbW9kdWxlcyB0byBkb2N1bWVudCB3aXRoIGF1dG9kb2MpIGFyZSBp
biBhbm90aGVyIGRpcmVjdG9yeSwKKyMgYWRkIHRoZXNlIGRpcmVjdG9yaWVzIHRvIHN5cy5wYXRo
IGhlcmUuIElmIHRoZSBkaXJlY3RvcnkgaXMgcmVsYXRpdmUgdG8gdGhlCisjIGRvY3VtZW50YXRp
b24gcm9vdCwgdXNlIG9zLnBhdGguYWJzcGF0aCB0byBtYWtlIGl0IGFic29sdXRlLCBsaWtlIHNo
b3duIGhlcmUuCisjCisjIGltcG9ydCBvcworIyBpbXBvcnQgc3lzCisjIHN5cy5wYXRoLmluc2Vy
dCgwLCBvcy5wYXRoLmFic3BhdGgoJy4nKSkKKworCisjIC0tIEdlbmVyYWwgY29uZmlndXJhdGlv
biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJ
ZiB5b3VyIGRvY3VtZW50YXRpb24gbmVlZHMgYSBtaW5pbWFsIFNwaGlueCB2ZXJzaW9uLCBzdGF0
ZSBpdCBoZXJlLgorIworIyBuZWVkc19zcGhpbnggPSAnMS4wJworCisjIEFkZCBhbnkgU3BoaW54
IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVyZSwgYXMgc3RyaW5ncy4gVGhleSBjYW4gYmUKKyMg
ZXh0ZW5zaW9ucyBjb21pbmcgd2l0aCBTcGhpbnggKG5hbWVkICdzcGhpbnguZXh0LionKSBvciB5
b3VyIGN1c3RvbQorIyBvbmVzLgorZXh0ZW5zaW9ucyA9IFsKKyAgICAncnN0LmxpbmtlcicsCisg
ICAgJ3NwaGlueC5leHQuYXV0b2RvYycsCisgICAgJ3NwaGlueC5leHQuY292ZXJhZ2UnLAorICAg
ICdzcGhpbnguZXh0LmRvY3Rlc3QnLAorICAgICdzcGhpbnguZXh0LmludGVyc3BoaW54JywKKyAg
ICAnc3BoaW54LmV4dC52aWV3Y29kZScsCisgICAgXQorCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBj
b250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KK3RlbXBs
YXRlc19wYXRoID0gWydfdGVtcGxhdGVzJ10KKworIyBUaGUgc3VmZml4KGVzKSBvZiBzb3VyY2Ug
ZmlsZW5hbWVzLgorIyBZb3UgY2FuIHNwZWNpZnkgbXVsdGlwbGUgc3VmZml4IGFzIGEgbGlzdCBv
ZiBzdHJpbmc6CisjCisjIHNvdXJjZV9zdWZmaXggPSBbJy5yc3QnLCAnLm1kJ10KK3NvdXJjZV9z
dWZmaXggPSAnLnJzdCcKKworIyBUaGUgbWFzdGVyIHRvY3RyZWUgZG9jdW1lbnQuCittYXN0ZXJf
ZG9jID0gJ2luZGV4JworCisjIEdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2plY3Qu
Citwcm9qZWN0ID0gJ2ltcG9ydGxpYl9tZXRhZGF0YScKK2NvcHlyaWdodCA9ICcyMDE3LTIwMTks
IEphc29uIFIuIENvb21icywgQmFycnkgV2Fyc2F3JworYXV0aG9yID0gJ0phc29uIFIuIENvb21i
cywgQmFycnkgV2Fyc2F3JworCisjIFRoZSB2ZXJzaW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlv
dSdyZSBkb2N1bWVudGluZywgYWN0cyBhcyByZXBsYWNlbWVudCBmb3IKKyMgfHZlcnNpb258IGFu
ZCB8cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2YXJpb3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0
IHRoZQorIyBidWlsdCBkb2N1bWVudHMuCisjCisjIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KK3Zl
cnNpb24gPSAnMC4xJworIyBUaGUgZnVsbCB2ZXJzaW9uLCBpbmNsdWRpbmcgYWxwaGEvYmV0YS9y
YyB0YWdzLgorcmVsZWFzZSA9ICcwLjEnCisKKyMgVGhlIGxhbmd1YWdlIGZvciBjb250ZW50IGF1
dG9nZW5lcmF0ZWQgYnkgU3BoaW54LiBSZWZlciB0byBkb2N1bWVudGF0aW9uCisjIGZvciBhIGxp
c3Qgb2Ygc3VwcG9ydGVkIGxhbmd1YWdlcy4KKyMKKyMgVGhpcyBpcyBhbHNvIHVzZWQgaWYgeW91
IGRvIGNvbnRlbnQgdHJhbnNsYXRpb24gdmlhIGdldHRleHQgY2F0YWxvZ3MuCisjIFVzdWFsbHkg
eW91IHNldCAibGFuZ3VhZ2UiIGZyb20gdGhlIGNvbW1hbmQgbGluZSBmb3IgdGhlc2UgY2FzZXMu
CitsYW5ndWFnZSA9IE5vbmUKKworIyBMaXN0IG9mIHBhdHRlcm5zLCByZWxhdGl2ZSB0byBzb3Vy
Y2UgZGlyZWN0b3J5LCB0aGF0IG1hdGNoIGZpbGVzIGFuZAorIyBkaXJlY3RvcmllcyB0byBpZ25v
cmUgd2hlbiBsb29raW5nIGZvciBzb3VyY2UgZmlsZXMuCisjIFRoaXMgcGF0dGVybnMgYWxzbyBl
ZmZlY3QgdG8gaHRtbF9zdGF0aWNfcGF0aCBhbmQgaHRtbF9leHRyYV9wYXRoCitleGNsdWRlX3Bh
dHRlcm5zID0gWydfYnVpbGQnLCAnVGh1bWJzLmRiJywgJy5EU19TdG9yZSddCisKKyMgVGhlIG5h
bWUgb2YgdGhlIFB5Z21lbnRzIChzeW50YXggaGlnaGxpZ2h0aW5nKSBzdHlsZSB0byB1c2UuCitw
eWdtZW50c19zdHlsZSA9ICdzcGhpbngnCisKKyMgSWYgdHJ1ZSwgYHRvZG9gIGFuZCBgdG9kb0xp
c3RgIHByb2R1Y2Ugb3V0cHV0LCBlbHNlIHRoZXkgcHJvZHVjZSBub3RoaW5nLgordG9kb19pbmNs
dWRlX3RvZG9zID0gRmFsc2UKKworCisjIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGUgdGhlbWUg
dG8gdXNlIGZvciBIVE1MIGFuZCBIVE1MIEhlbHAgcGFnZXMuICBTZWUgdGhlIGRvY3VtZW50YXRp
b24gZm9yCisjIGEgbGlzdCBvZiBidWlsdGluIHRoZW1lcy4KKyMKK2h0bWxfdGhlbWUgPSAnZGVm
YXVsdCcKKworIyBDdXN0b20gc2lkZWJhciB0ZW1wbGF0ZXMsIG11c3QgYmUgYSBkaWN0aW9uYXJ5
IHRoYXQgbWFwcyBkb2N1bWVudCBuYW1lcworIyB0byB0ZW1wbGF0ZSBuYW1lcy4KKyMKKyMgVGhp
cyBpcyByZXF1aXJlZCBmb3IgdGhlIGFsYWJhc3RlciB0aGVtZQorIyByZWZzOiBodHRwOi8vYWxh
YmFzdGVyLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9pbnN0YWxsYXRpb24uaHRtbCNzaWRlYmFy
cworaHRtbF9zaWRlYmFycyA9IHsKKyAgICAnKionOiBbCisgICAgICAgICdyZWxhdGlvbnMuaHRt
bCcsICAjIG5lZWRzICdzaG93X3JlbGF0ZWQnOiBUcnVlIHRoZW1lIG9wdGlvbiB0byBkaXNwbGF5
CisgICAgICAgICdzZWFyY2hib3guaHRtbCcsCisgICAgICAgIF0KKyAgICB9CisKKworIyAtLSBP
cHRpb25zIGZvciBIVE1MSGVscCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKyMgT3V0cHV0IGZpbGUgYmFzZSBuYW1lIGZvciBIVE1MIGhlbHAgYnVp
bGRlci4KK2h0bWxoZWxwX2Jhc2VuYW1lID0gJ2ltcG9ydGxpYl9tZXRhZGF0YWRvYycKKworCisj
IC0tIE9wdGlvbnMgZm9yIExhVGVYIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworbGF0ZXhfZWxlbWVudHMgPSB7CisgICAgIyBUaGUgcGFwZXIg
c2l6ZSAoJ2xldHRlcnBhcGVyJyBvciAnYTRwYXBlcicpLgorICAgICMKKyAgICAjICdwYXBlcnNp
emUnOiAnbGV0dGVycGFwZXInLAorCisgICAgIyBUaGUgZm9udCBzaXplICgnMTBwdCcsICcxMXB0
JyBvciAnMTJwdCcpLgorICAgICMKKyAgICAjICdwb2ludHNpemUnOiAnMTBwdCcsCisKKyAgICAj
IEFkZGl0aW9uYWwgc3R1ZmYgZm9yIHRoZSBMYVRlWCBwcmVhbWJsZS4KKyAgICAjCisgICAgIyAn
cHJlYW1ibGUnOiAnJywKKworICAgICMgTGF0ZXggZmlndXJlIChmbG9hdCkgYWxpZ25tZW50Cisg
ICAgIworICAgICMgJ2ZpZ3VyZV9hbGlnbic6ICdodGJwJywKKyAgICB9CisKKyMgR3JvdXBpbmcg
dGhlIGRvY3VtZW50IHRyZWUgaW50byBMYVRlWCBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMgKHNv
dXJjZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwgdGl0bGUsCisjICBhdXRob3IsIGRvY3VtZW50
Y2xhc3MgW2hvd3RvLCBtYW51YWwsIG9yIG93biBjbGFzc10pLgorbGF0ZXhfZG9jdW1lbnRzID0g
WworICAgIChtYXN0ZXJfZG9jLCAnaW1wb3J0bGliX21ldGFkYXRhLnRleCcsCisgICAgICdpbXBv
cnRsaWJcXF9tZXRhZGF0YSBEb2N1bWVudGF0aW9uJywKKyAgICAgJ0JyZXR0IENhbm5vbiwgQmFy
cnkgV2Fyc2F3JywgJ21hbnVhbCcpLAorICAgIF0KKworCisjIC0tIE9wdGlvbnMgZm9yIG1hbnVh
bCBwYWdlIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
IyBPbmUgZW50cnkgcGVyIG1hbnVhbCBwYWdlLiBMaXN0IG9mIHR1cGxlcworIyAoc291cmNlIHN0
YXJ0IGZpbGUsIG5hbWUsIGRlc2NyaXB0aW9uLCBhdXRob3JzLCBtYW51YWwgc2VjdGlvbikuCitt
YW5fcGFnZXMgPSBbCisgICAgKG1hc3Rlcl9kb2MsICdpbXBvcnRsaWJfbWV0YWRhdGEnLCAnaW1w
b3J0bGliX21ldGFkYXRhIERvY3VtZW50YXRpb24nLAorICAgICBbYXV0aG9yXSwgMSkKKyAgICBd
CisKKworIyAtLSBPcHRpb25zIGZvciBUZXhpbmZvIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgR3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUg
aW50byBUZXhpbmZvIGZpbGVzLiBMaXN0IG9mIHR1cGxlcworIyAoc291cmNlIHN0YXJ0IGZpbGUs
IHRhcmdldCBuYW1lLCB0aXRsZSwgYXV0aG9yLAorIyAgZGlyIG1lbnUgZW50cnksIGRlc2NyaXB0
aW9uLCBjYXRlZ29yeSkKK3RleGluZm9fZG9jdW1lbnRzID0gWworICAgIChtYXN0ZXJfZG9jLCAn
aW1wb3J0bGliX21ldGFkYXRhJywgJ2ltcG9ydGxpYl9tZXRhZGF0YSBEb2N1bWVudGF0aW9uJywK
KyAgICAgYXV0aG9yLCAnaW1wb3J0bGliX21ldGFkYXRhJywgJ09uZSBsaW5lIGRlc2NyaXB0aW9u
IG9mIHByb2plY3QuJywKKyAgICAgJ01pc2NlbGxhbmVvdXMnKSwKKyAgICBdCisKKworIyBFeGFt
cGxlIGNvbmZpZ3VyYXRpb24gZm9yIGludGVyc3BoaW54OiByZWZlciB0byB0aGUgUHl0aG9uIHN0
YW5kYXJkIGxpYnJhcnkuCitpbnRlcnNwaGlueF9tYXBwaW5nID0geworICAgICdweXRob24nOiAo
J2h0dHBzOi8vZG9jcy5weXRob24ub3JnLzMnLCBOb25lKSwKKyAgICAnaW1wb3J0bGliX3Jlc291
cmNlcyc6ICgKKyAgICAgICAgJ2h0dHBzOi8vaW1wb3J0bGliLXJlc291cmNlcy5yZWFkdGhlZG9j
cy5pby9lbi9sYXRlc3QvJywgTm9uZQorICAgICAgICApLAorICAgIH0KKworCisjIEZvciByc3Qu
bGlua2VyLCBpbmplY3QgcmVsZWFzZSBkYXRlcyBpbnRvIGNoYW5nZWxvZy5yc3QKK2xpbmtfZmls
ZXMgPSB7CisgICAgJ2NoYW5nZWxvZy5yc3QnOiBkaWN0KAorICAgICAgICByZXBsYWNlPVsKKyAg
ICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgcGF0dGVybj1yJ14oP20pKCg/UDxzY21f
dmVyc2lvbj52P1xkKyhcLlxkKyl7MSwyfSkpXG5bLT1dK1xuJywKKyAgICAgICAgICAgICAgICB3
aXRoX3NjbT0ne3RleHR9XG57cmV2W3RpbWVzdGFtcF06JVktJW0tJWR9XG5cbicsCisgICAgICAg
ICAgICAgICAgKSwKKyAgICAgICAgICAgIF0sCisgICAgICAgICksCisgICAgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxp
Yl9tZXRhZGF0YS9kb2NzL2luZGV4LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzMzMmY1ZThkMTFlMDVhMDg5
YWRkZmM3YzNlMDlmMDk3MjFhOWExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJf
bWV0YWRhdGEvZG9jcy9pbmRleC5yc3QKQEAgLTAsMCArMSw1MiBAQAorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorIFdlbGNvbWUgdG8gaW1wb3J0bGliX21ldGFkYXRhCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKK2BgaW1wb3J0bGliX21ldGFkYXRhYGAgaXMgYSBs
aWJyYXJ5IHdoaWNoIHByb3ZpZGVzIGFuIEFQSSBmb3IgYWNjZXNzaW5nIGFuCitpbnN0YWxsZWQg
cGFja2FnZSdzIG1ldGFkYXRhIChzZWUgOnBlcDpgNTY2YCksIHN1Y2ggYXMgaXRzIGVudHJ5IHBv
aW50cyBvciBpdHMgdG9wLWxldmVsCituYW1lLiAgVGhpcyBmdW5jdGlvbmFsaXR5IGludGVuZHMg
dG8gcmVwbGFjZSBtb3N0IHVzZXMgb2YgYGBwa2dfcmVzb3VyY2VzYGAKK2BlbnRyeSBwb2ludCBB
UElgXyBhbmQgYG1ldGFkYXRhIEFQSWBfLiAgQWxvbmcgd2l0aCA6bW9kOmBpbXBvcnRsaWIucmVz
b3VyY2VzYCBpbgorUHl0aG9uIDMuNyBhbmQgbmV3ZXIgKGJhY2twb3J0ZWQgYXMgOmRvYzpgaW1w
b3J0bGliX3Jlc291cmNlcyA8aW1wb3J0bGliX3Jlc291cmNlczppbmRleD5gIGZvciBvbGRlcgor
dmVyc2lvbnMgb2YgUHl0aG9uKSwgdGhpcyBjYW4gZWxpbWluYXRlIHRoZSBuZWVkIHRvIHVzZSB0
aGUgb2xkZXIgYW5kIGxlc3MKK2VmZmljaWVudCBgYHBrZ19yZXNvdXJjZXNgYCBwYWNrYWdlLgor
CitgYGltcG9ydGxpYl9tZXRhZGF0YWBgIHN1cHBsaWVzIGEgYmFja3BvcnQgb2YKKzpkb2M6YGlt
cG9ydGxpYi5tZXRhZGF0YSA8bGlicmFyeS9pbXBvcnRsaWIubWV0YWRhdGE+YCBhcyBmb3VuZCBp
bgorUHl0aG9uIDMuOCBhbmQgbGF0ZXIgZm9yIGVhcmxpZXIgUHl0aG9uIHJlbGVhc2VzLiAgVXNl
cnMgb2YKK1B5dGhvbiAzLjggYW5kIGJleW9uZCBhcmUgZW5jb3VyYWdlZCB0byB1c2UgdGhlIHN0
YW5kYXJkIGxpYnJhcnkgbW9kdWxlCit3aGVuIHBvc3NpYmxlIGFuZCBmYWxsIGJhY2sgdG8gYGBp
bXBvcnRsaWJfbWV0YWRhdGFgYCB3aGVuIG5lY2Vzc2FyeS4KK1doZW4gaW1wb3J0ZWQgb24gUHl0
aG9uIDMuOCBhbmQgbGF0ZXIsIGBgaW1wb3J0bGliX21ldGFkYXRhYGAgcmVwbGFjZXMgdGhlCitE
aXN0cmlidXRpb25GaW5kZXIgYmVoYXZpb3IgZnJvbSB0aGUgc3RkbGliLCBidXQgbGVhdmVzIHRo
ZSBBUEkgaW4gdGFjdC4KK0RldmVsb3BlcnMgbG9va2luZyBmb3IgZGV0YWlsZWQgQVBJIGRlc2Ny
aXB0aW9ucyBzaG91bGQgcmVmZXIgdG8gdGhlIFB5dGhvbgorMy44IHN0YW5kYXJkIGxpYnJhcnkg
ZG9jdW1lbnRhdGlvbi4KKworVGhlIGRvY3VtZW50YXRpb24gaGVyZSBpbmNsdWRlcyBhIGdlbmVy
YWwgOnJlZjpgdXNhZ2UgPHVzaW5nPmAgZ3VpZGUuCisKKworLi4gdG9jdHJlZTo6CisgICA6bWF4
ZGVwdGg6IDIKKyAgIDpjYXB0aW9uOiBDb250ZW50czoKKworICAgdXNpbmcucnN0CisgICBjaGFu
Z2Vsb2cgKGxpbmtzKS5yc3QKKworCitQcm9qZWN0IGRldGFpbHMKKz09PT09PT09PT09PT09PQor
CisgKiBQcm9qZWN0IGhvbWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vaW1wb3J0bGliX21l
dGFkYXRhCisgKiBSZXBvcnQgYnVncyBhdDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi9pbXBv
cnRsaWJfbWV0YWRhdGEvaXNzdWVzCisgKiBDb2RlIGhvc3Rpbmc6IGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRob24vaW1wb3J0bGliX21ldGFkYXRhCisgKiBEb2N1bWVudGF0aW9uOiBodHRwczovL2lt
cG9ydGxpYl9tZXRhZGF0YS5yZWFkdGhlZG9jcy5pby8KKworCitJbmRpY2VzIGFuZCB0YWJsZXMK
Kz09PT09PT09PT09PT09PT09PQorCisqIDpyZWY6YGdlbmluZGV4YAorKiA6cmVmOmBtb2RpbmRl
eGAKKyogOnJlZjpgc2VhcmNoYAorCisKKy4uIF9gZW50cnkgcG9pbnQgQVBJYDogaHR0cHM6Ly9z
ZXR1cHRvb2xzLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9wa2dfcmVzb3VyY2VzLmh0bWwjZW50
cnktcG9pbnRzCisuLiBfYG1ldGFkYXRhIEFQSWA6IGh0dHBzOi8vc2V0dXB0b29scy5yZWFkdGhl
ZG9jcy5pby9lbi9sYXRlc3QvcGtnX3Jlc291cmNlcy5odG1sI21ldGFkYXRhLWFwaQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy91c2luZy5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9y
dGxpYl9tZXRhZGF0YS9kb2NzL3VzaW5nLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTk2NTE0N2Y0NWM4Mjkw
ZmQ3YzE0ZTU3MTYxZGNkNzI3ZjI4YTRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvZG9jcy91c2luZy5yc3QKQEAgLTAsMCArMSwyNjAgQEAKKy4uIF91c2luZzoK
KworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgVXNpbmcgOm1vZDpgIWltcG9y
dGxpYl9tZXRhZGF0YWAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitgYGlt
cG9ydGxpYl9tZXRhZGF0YWBgIGlzIGEgbGlicmFyeSB0aGF0IHByb3ZpZGVzIGZvciBhY2Nlc3Mg
dG8gaW5zdGFsbGVkCitwYWNrYWdlIG1ldGFkYXRhLiAgQnVpbHQgaW4gcGFydCBvbiBQeXRob24n
cyBpbXBvcnQgc3lzdGVtLCB0aGlzIGxpYnJhcnkKK2ludGVuZHMgdG8gcmVwbGFjZSBzaW1pbGFy
IGZ1bmN0aW9uYWxpdHkgaW4gdGhlIGBlbnRyeSBwb2ludAorQVBJYF8gYW5kIGBtZXRhZGF0YSBB
UElgXyBvZiBgYHBrZ19yZXNvdXJjZXNgYC4gIEFsb25nIHdpdGgKKzptb2Q6YGltcG9ydGxpYi5y
ZXNvdXJjZXNgIGluIFB5dGhvbiAzLjcKK2FuZCBuZXdlciAoYmFja3BvcnRlZCBhcyA6ZG9jOmBp
bXBvcnRsaWJfcmVzb3VyY2VzIDxpbXBvcnRsaWJfcmVzb3VyY2VzOmluZGV4PmAgZm9yIG9sZGVy
IHZlcnNpb25zIG9mCitQeXRob24pLCB0aGlzIGNhbiBlbGltaW5hdGUgdGhlIG5lZWQgdG8gdXNl
IHRoZSBvbGRlciBhbmQgbGVzcyBlZmZpY2llbnQKK2BgcGtnX3Jlc291cmNlc2BgIHBhY2thZ2Uu
CisKK0J5ICJpbnN0YWxsZWQgcGFja2FnZSIgd2UgZ2VuZXJhbGx5IG1lYW4gYSB0aGlyZC1wYXJ0
eSBwYWNrYWdlIGluc3RhbGxlZCBpbnRvCitQeXRob24ncyBgYHNpdGUtcGFja2FnZXNgYCBkaXJl
Y3RvcnkgdmlhIHRvb2xzIHN1Y2ggYXMgYHBpcAorPGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9w
aXAvPmBfLiAgU3BlY2lmaWNhbGx5LAoraXQgbWVhbnMgYSBwYWNrYWdlIHdpdGggZWl0aGVyIGEg
ZGlzY292ZXJhYmxlIGBgZGlzdC1pbmZvYGAgb3IgYGBlZ2ctaW5mb2BgCitkaXJlY3RvcnksIGFu
ZCBtZXRhZGF0YSBkZWZpbmVkIGJ5IDpwZXA6YDU2NmAgb3IgaXRzIG9sZGVyIHNwZWNpZmljYXRp
b25zLgorQnkgZGVmYXVsdCwgcGFja2FnZSBtZXRhZGF0YSBjYW4gbGl2ZSBvbiB0aGUgZmlsZSBz
eXN0ZW0gb3IgaW4gemlwIGFyY2hpdmVzIG9uCis6ZGF0YTpgc3lzLnBhdGhgLiAgVGhyb3VnaCBh
biBleHRlbnNpb24gbWVjaGFuaXNtLCB0aGUgbWV0YWRhdGEgY2FuIGxpdmUgYWxtb3N0Cithbnl3
aGVyZS4KKworCitPdmVydmlldworPT09PT09PT0KKworTGV0J3Mgc2F5IHlvdSB3YW50ZWQgdG8g
Z2V0IHRoZSB2ZXJzaW9uIHN0cmluZyBmb3IgYSBwYWNrYWdlIHlvdSd2ZSBpbnN0YWxsZWQKK3Vz
aW5nIGBgcGlwYGAuICBXZSBzdGFydCBieSBjcmVhdGluZyBhIHZpcnR1YWwgZW52aXJvbm1lbnQg
YW5kIGluc3RhbGxpbmcKK3NvbWV0aGluZyBpbnRvIGl0OjoKKworICAgICQgcHl0aG9uMyAtbSB2
ZW52IGV4YW1wbGUKKyAgICAkIHNvdXJjZSBleGFtcGxlL2Jpbi9hY3RpdmF0ZQorICAgIChleGFt
cGxlKSAkIHBpcCBpbnN0YWxsIGltcG9ydGxpYl9tZXRhZGF0YQorICAgIChleGFtcGxlKSAkIHBp
cCBpbnN0YWxsIHdoZWVsCisKK1lvdSBjYW4gZ2V0IHRoZSB2ZXJzaW9uIHN0cmluZyBmb3IgYGB3
aGVlbGBgIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZzo6CisKKyAgICAoZXhhbXBsZSkgJCBweXRo
b24KKyAgICA+Pj4gZnJvbSBpbXBvcnRsaWJfbWV0YWRhdGEgaW1wb3J0IHZlcnNpb24KKyAgICA+
Pj4gdmVyc2lvbignd2hlZWwnKQorICAgICcwLjMyLjMnCisKK1lvdSBjYW4gYWxzbyBnZXQgdGhl
IHNldCBvZiBlbnRyeSBwb2ludHMga2V5ZWQgYnkgZ3JvdXAsIHN1Y2ggYXMKK2BgY29uc29sZV9z
Y3JpcHRzYGAsIGBgZGlzdHV0aWxzLmNvbW1hbmRzYGAgYW5kIG90aGVycy4gIEVhY2ggZ3JvdXAg
Y29udGFpbnMgYQorc2VxdWVuY2Ugb2YgOnJlZjpgRW50cnlQb2ludCA8ZW50cnktcG9pbnRzPmAg
b2JqZWN0cy4KKworWW91IGNhbiBnZXQgdGhlIDpyZWY6YG1ldGFkYXRhIGZvciBhIGRpc3RyaWJ1
dGlvbiA8bWV0YWRhdGE+YDo6CisKKyAgICA+Pj4gbGlzdChtZXRhZGF0YSgnd2hlZWwnKSkKKyAg
ICBbJ01ldGFkYXRhLVZlcnNpb24nLCAnTmFtZScsICdWZXJzaW9uJywgJ1N1bW1hcnknLCAnSG9t
ZS1wYWdlJywgJ0F1dGhvcicsICdBdXRob3ItZW1haWwnLCAnTWFpbnRhaW5lcicsICdNYWludGFp
bmVyLWVtYWlsJywgJ0xpY2Vuc2UnLCAnUHJvamVjdC1VUkwnLCAnUHJvamVjdC1VUkwnLCAnUHJv
amVjdC1VUkwnLCAnS2V5d29yZHMnLCAnUGxhdGZvcm0nLCAnQ2xhc3NpZmllcicsICdDbGFzc2lm
aWVyJywgJ0NsYXNzaWZpZXInLCAnQ2xhc3NpZmllcicsICdDbGFzc2lmaWVyJywgJ0NsYXNzaWZp
ZXInLCAnQ2xhc3NpZmllcicsICdDbGFzc2lmaWVyJywgJ0NsYXNzaWZpZXInLCAnQ2xhc3NpZmll
cicsICdDbGFzc2lmaWVyJywgJ0NsYXNzaWZpZXInLCAnUmVxdWlyZXMtUHl0aG9uJywgJ1Byb3Zp
ZGVzLUV4dHJhJywgJ1JlcXVpcmVzLURpc3QnLCAnUmVxdWlyZXMtRGlzdCddCisKK1lvdSBjYW4g
YWxzbyBnZXQgYSA6cmVmOmBkaXN0cmlidXRpb24ncyB2ZXJzaW9uIG51bWJlciA8dmVyc2lvbj5g
LCBsaXN0IGl0cworOnJlZjpgY29uc3RpdHVlbnQgZmlsZXMgPGZpbGVzPmAsIGFuZCBnZXQgYSBs
aXN0IG9mIHRoZSBkaXN0cmlidXRpb24ncworOnJlZjpgcmVxdWlyZW1lbnRzYC4KKworCitGdW5j
dGlvbmFsIEFQSQorPT09PT09PT09PT09PT0KKworVGhpcyBwYWNrYWdlIHByb3ZpZGVzIHRoZSBm
b2xsb3dpbmcgZnVuY3Rpb25hbGl0eSB2aWEgaXRzIHB1YmxpYyBBUEkuCisKKworLi4gX2VudHJ5
LXBvaW50czoKKworRW50cnkgcG9pbnRzCistLS0tLS0tLS0tLS0KKworVGhlIGBgZW50cnlfcG9p
bnRzKClgYCBmdW5jdGlvbiByZXR1cm5zIGEgZGljdGlvbmFyeSBvZiBhbGwgZW50cnkgcG9pbnRz
LAora2V5ZWQgYnkgZ3JvdXAuICBFbnRyeSBwb2ludHMgYXJlIHJlcHJlc2VudGVkIGJ5IGBgRW50
cnlQb2ludGBgIGluc3RhbmNlczsKK2VhY2ggYGBFbnRyeVBvaW50YGAgaGFzIGEgYGAubmFtZWBg
LCBgYC5ncm91cGBgLCBhbmQgYGAudmFsdWVgYCBhdHRyaWJ1dGVzIGFuZAorYSBgYC5sb2FkKClg
YCBtZXRob2QgdG8gcmVzb2x2ZSB0aGUgdmFsdWUuICBUaGVyZSBhcmUgYWxzbyBgYC5tb2R1bGVg
YCwKK2BgLmF0dHJgYCwgYW5kIGBgLmV4dHJhc2BgIGF0dHJpYnV0ZXMgZm9yIGdldHRpbmcgdGhl
IGNvbXBvbmVudHMgb2YgdGhlCitgYC52YWx1ZWBgIGF0dHJpYnV0ZTo6CisKKyAgICA+Pj4gZXBz
ID0gZW50cnlfcG9pbnRzKCkKKyAgICA+Pj4gbGlzdChlcHMpCisgICAgWydjb25zb2xlX3Njcmlw
dHMnLCAnZGlzdHV0aWxzLmNvbW1hbmRzJywgJ2Rpc3R1dGlscy5zZXR1cF9rZXl3b3JkcycsICdl
Z2dfaW5mby53cml0ZXJzJywgJ3NldHVwdG9vbHMuaW5zdGFsbGF0aW9uJ10KKyAgICA+Pj4gc2Ny
aXB0cyA9IGVwc1snY29uc29sZV9zY3JpcHRzJ10KKyAgICA+Pj4gd2hlZWwgPSBbZXAgZm9yIGVw
IGluIHNjcmlwdHMgaWYgZXAubmFtZSA9PSAnd2hlZWwnXVswXQorICAgID4+PiB3aGVlbAorICAg
IEVudHJ5UG9pbnQobmFtZT0nd2hlZWwnLCB2YWx1ZT0nd2hlZWwuY2xpOm1haW4nLCBncm91cD0n
Y29uc29sZV9zY3JpcHRzJykKKyAgICA+Pj4gd2hlZWwubW9kdWxlCisgICAgJ3doZWVsLmNsaScK
KyAgICA+Pj4gd2hlZWwuYXR0cgorICAgICdtYWluJworICAgID4+PiB3aGVlbC5leHRyYXMKKyAg
ICBbXQorICAgID4+PiBtYWluID0gd2hlZWwubG9hZCgpCisgICAgPj4+IG1haW4KKyAgICA8ZnVu
Y3Rpb24gbWFpbiBhdCAweDEwMzUyODQ4OD4KKworVGhlIGBgZ3JvdXBgYCBhbmQgYGBuYW1lYGAg
YXJlIGFyYml0cmFyeSB2YWx1ZXMgZGVmaW5lZCBieSB0aGUgcGFja2FnZSBhdXRob3IKK2FuZCB1
c3VhbGx5IGEgY2xpZW50IHdpbGwgd2lzaCB0byByZXNvbHZlIGFsbCBlbnRyeSBwb2ludHMgZm9y
IGEgcGFydGljdWxhcgorZ3JvdXAuICBSZWFkIGB0aGUgc2V0dXB0b29scyBkb2NzCis8aHR0cHM6
Ly9zZXR1cHRvb2xzLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9zZXR1cHRvb2xzLmh0bWwjZHlu
YW1pYy1kaXNjb3Zlcnktb2Ytc2VydmljZXMtYW5kLXBsdWdpbnM+YF8KK2ZvciBtb3JlIGluZm9y
bWF0aW9uIG9uIGVudHJ5IHBvaW50cywgdGhlaXIgZGVmaW5pdGlvbiwgYW5kIHVzYWdlLgorCisK
Ky4uIF9tZXRhZGF0YToKKworRGlzdHJpYnV0aW9uIG1ldGFkYXRhCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworRXZlcnkgZGlzdHJpYnV0aW9uIGluY2x1ZGVzIHNvbWUgbWV0YWRhdGEsIHdoaWNo
IHlvdSBjYW4gZXh0cmFjdCB1c2luZyB0aGUKK2BgbWV0YWRhdGEoKWBgIGZ1bmN0aW9uOjoKKwor
ICAgID4+PiB3aGVlbF9tZXRhZGF0YSA9IG1ldGFkYXRhKCd3aGVlbCcpCisKK1RoZSBrZXlzIG9m
IHRoZSByZXR1cm5lZCBkYXRhIHN0cnVjdHVyZSBbI2YxXV8gbmFtZSB0aGUgbWV0YWRhdGEga2V5
d29yZHMsIGFuZAordGhlaXIgdmFsdWVzIGFyZSByZXR1cm5lZCB1bnBhcnNlZCBmcm9tIHRoZSBk
aXN0cmlidXRpb24gbWV0YWRhdGE6OgorCisgICAgPj4+IHdoZWVsX21ldGFkYXRhWydSZXF1aXJl
cy1QeXRob24nXQorICAgICc+PTIuNywgIT0zLjAuKiwgIT0zLjEuKiwgIT0zLjIuKiwgIT0zLjMu
KicKKworCisuLiBfdmVyc2lvbjoKKworRGlzdHJpYnV0aW9uIHZlcnNpb25zCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworVGhlIGBgdmVyc2lvbigpYGAgZnVuY3Rpb24gaXMgdGhlIHF1aWNrZXN0
IHdheSB0byBnZXQgYSBkaXN0cmlidXRpb24ncyB2ZXJzaW9uCitudW1iZXIsIGFzIGEgc3RyaW5n
OjoKKworICAgID4+PiB2ZXJzaW9uKCd3aGVlbCcpCisgICAgJzAuMzIuMycKKworCisuLiBfZmls
ZXM6CisKK0Rpc3RyaWJ1dGlvbiBmaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4g
YWxzbyBnZXQgdGhlIGZ1bGwgc2V0IG9mIGZpbGVzIGNvbnRhaW5lZCB3aXRoaW4gYSBkaXN0cmli
dXRpb24uICBUaGUKK2BgZmlsZXMoKWBgIGZ1bmN0aW9uIHRha2VzIGEgZGlzdHJpYnV0aW9uIHBh
Y2thZ2UgbmFtZSBhbmQgcmV0dXJucyBhbGwgb2YgdGhlCitmaWxlcyBpbnN0YWxsZWQgYnkgdGhp
cyBkaXN0cmlidXRpb24uICBFYWNoIGZpbGUgb2JqZWN0IHJldHVybmVkIGlzIGEKK2BgUGFja2Fn
ZVBhdGhgYCwgYSA6Y2xhc3M6YHBhdGhsaWIuUGF0aGAgZGVyaXZlZCBvYmplY3Qgd2l0aCBhZGRp
dGlvbmFsIGBgZGlzdGBgLAorYGBzaXplYGAsIGFuZCBgYGhhc2hgYCBwcm9wZXJ0aWVzIGFzIGlu
ZGljYXRlZCBieSB0aGUgbWV0YWRhdGEuICBGb3IgZXhhbXBsZTo6CisKKyAgICA+Pj4gdXRpbCA9
IFtwIGZvciBwIGluIGZpbGVzKCd3aGVlbCcpIGlmICd1dGlsLnB5JyBpbiBzdHIocCldWzBdCisg
ICAgPj4+IHV0aWwKKyAgICBQYWNrYWdlUGF0aCgnd2hlZWwvdXRpbC5weScpCisgICAgPj4+IHV0
aWwuc2l6ZQorICAgIDg1OQorICAgID4+PiB1dGlsLmRpc3QKKyAgICA8aW1wb3J0bGliX21ldGFk
YXRhLl9ob29rcy5QYXRoRGlzdHJpYnV0aW9uIG9iamVjdCBhdCAweDEwMWUwY2VmMD4KKyAgICA+
Pj4gdXRpbC5oYXNoCisgICAgPEZpbGVIYXNoIG1vZGU6IHNoYTI1NiB2YWx1ZTogYllrdzVvTWNj
ZmF6VkNvWVF3S2trZW1vVnlNQUZvUjM0bW1LQng4UjFOST4KKworT25jZSB5b3UgaGF2ZSB0aGUg
ZmlsZSwgeW91IGNhbiBhbHNvIHJlYWQgaXRzIGNvbnRlbnRzOjoKKworICAgID4+PiBwcmludCh1
dGlsLnJlYWRfdGV4dCgpKQorICAgIGltcG9ydCBiYXNlNjQKKyAgICBpbXBvcnQgc3lzCisgICAg
Li4uCisgICAgZGVmIGFzX2J5dGVzKHMpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHMsIHRleHRf
dHlwZSk6CisgICAgICAgICAgICByZXR1cm4gcy5lbmNvZGUoJ3V0Zi04JykKKyAgICAgICAgcmV0
dXJuIHMKKworSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIG1ldGFkYXRhIGZpbGUgbGlzdGluZyBmaWxl
cworKFJFQ09SRCBvciBTT1VSQ0VTLnR4dCkgaXMgbWlzc2luZywgYGBmaWxlcygpYGAgd2lsbAor
cmV0dXJuIGBgTm9uZWBgLiBUaGUgY2FsbGVyIG1heSB3aXNoIHRvIHdyYXAgY2FsbHMgdG8KK2Bg
ZmlsZXMoKWBgIGluIGBhbHdheXNfaXRlcmFibGUKKzxodHRwczovL21vcmUtaXRlcnRvb2xzLnJl
YWR0aGVkb2NzLmlvL2VuL3N0YWJsZS9hcGkuaHRtbCNtb3JlX2l0ZXJ0b29scy5hbHdheXNfaXRl
cmFibGU+YF8KK29yIG90aGVyd2lzZSBndWFyZCBhZ2FpbnN0IHRoaXMgY29uZGl0aW9uIGlmIHRo
ZSB0YXJnZXQKK2Rpc3RyaWJ1dGlvbiBpcyBub3Qga25vd24gdG8gaGF2ZSB0aGUgbWV0YWRhdGEg
cHJlc2VudC4KKworLi4gX3JlcXVpcmVtZW50czoKKworRGlzdHJpYnV0aW9uIHJlcXVpcmVtZW50
cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUbyBnZXQgdGhlIGZ1bGwgc2V0IG9mIHJl
cXVpcmVtZW50cyBmb3IgYSBkaXN0cmlidXRpb24sIHVzZSB0aGUgYGByZXF1aXJlcygpYGAKK2Z1
bmN0aW9uOjoKKworICAgID4+PiByZXF1aXJlcygnd2hlZWwnKQorICAgIFsicHl0ZXN0ICg+PTMu
MC4wKSA7IGV4dHJhID09ICd0ZXN0JyIsICJweXRlc3QtY292IDsgZXh0cmEgPT0gJ3Rlc3QnIl0K
KworCitEaXN0cmlidXRpb25zCis9PT09PT09PT09PT09CisKK1doaWxlIHRoZSBhYm92ZSBBUEkg
aXMgdGhlIG1vc3QgY29tbW9uIGFuZCBjb252ZW5pZW50IHVzYWdlLCB5b3UgY2FuIGdldCBhbGwK
K29mIHRoYXQgaW5mb3JtYXRpb24gZnJvbSB0aGUgYGBEaXN0cmlidXRpb25gYCBjbGFzcy4gIEEg
YGBEaXN0cmlidXRpb25gYCBpcyBhbgorYWJzdHJhY3Qgb2JqZWN0IHRoYXQgcmVwcmVzZW50cyB0
aGUgbWV0YWRhdGEgZm9yIGEgUHl0aG9uIHBhY2thZ2UuICBZb3UgY2FuCitnZXQgdGhlIGBgRGlz
dHJpYnV0aW9uYGAgaW5zdGFuY2U6OgorCisgICAgPj4+IGZyb20gaW1wb3J0bGliX21ldGFkYXRh
IGltcG9ydCBkaXN0cmlidXRpb24KKyAgICA+Pj4gZGlzdCA9IGRpc3RyaWJ1dGlvbignd2hlZWwn
KQorCitUaHVzLCBhbiBhbHRlcm5hdGl2ZSB3YXkgdG8gZ2V0IHRoZSB2ZXJzaW9uIG51bWJlciBp
cyB0aHJvdWdoIHRoZQorYGBEaXN0cmlidXRpb25gYCBpbnN0YW5jZTo6CisKKyAgICA+Pj4gZGlz
dC52ZXJzaW9uCisgICAgJzAuMzIuMycKKworVGhlcmUgYXJlIGFsbCBraW5kcyBvZiBhZGRpdGlv
bmFsIG1ldGFkYXRhIGF2YWlsYWJsZSBvbiB0aGUgYGBEaXN0cmlidXRpb25gYAoraW5zdGFuY2U6
OgorCisgICAgPj4+IGQubWV0YWRhdGFbJ1JlcXVpcmVzLVB5dGhvbiddCisgICAgJz49Mi43LCAh
PTMuMC4qLCAhPTMuMS4qLCAhPTMuMi4qLCAhPTMuMy4qJworICAgID4+PiBkLm1ldGFkYXRhWydM
aWNlbnNlJ10KKyAgICAnTUlUJworCitUaGUgZnVsbCBzZXQgb2YgYXZhaWxhYmxlIG1ldGFkYXRh
IGlzIG5vdCBkZXNjcmliZWQgaGVyZS4gIFNlZSA6cGVwOmA1NjZgCitmb3IgYWRkaXRpb25hbCBk
ZXRhaWxzLgorCisKK0V4dGVuZGluZyB0aGUgc2VhcmNoIGFsZ29yaXRobQorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK0JlY2F1c2UgcGFja2FnZSBtZXRhZGF0YSBpcyBub3QgYXZh
aWxhYmxlIHRocm91Z2ggOmRhdGE6YHN5cy5wYXRoYCBzZWFyY2hlcywgb3IKK3BhY2thZ2UgbG9h
ZGVycyBkaXJlY3RseSwgdGhlIG1ldGFkYXRhIGZvciBhIHBhY2thZ2UgaXMgZm91bmQgdGhyb3Vn
aCBpbXBvcnQKK3N5c3RlbSBgZmluZGVyc2BfLiAgVG8gZmluZCBhIGRpc3RyaWJ1dGlvbiBwYWNr
YWdlJ3MgbWV0YWRhdGEsCitgYGltcG9ydGxpYi5tZXRhZGF0YWBgIHF1ZXJpZXMgdGhlIGxpc3Qg
b2YgOnRlcm06YG1ldGEgcGF0aCBmaW5kZXJzIDxtZXRhIHBhdGggZmluZGVyPmAgb24KKzpkYXRh
OmBzeXMubWV0YV9wYXRoYC4KKworQnkgZGVmYXVsdCBgYGltcG9ydGxpYl9tZXRhZGF0YWBgIGlu
c3RhbGxzIGEgZmluZGVyIGZvciBkaXN0cmlidXRpb24gcGFja2FnZXMKK2ZvdW5kIG9uIHRoZSBm
aWxlIHN5c3RlbS4gIFRoaXMgZmluZGVyIGRvZXNuJ3QgYWN0dWFsbHkgZmluZCBhbnkgKnBhY2th
Z2VzKiwKK2J1dCBpdCBjYW4gZmluZCB0aGUgcGFja2FnZXMnIG1ldGFkYXRhLgorCitUaGUgYWJz
dHJhY3QgY2xhc3MgOnB5OmNsYXNzOmBpbXBvcnRsaWIuYWJjLk1ldGFQYXRoRmluZGVyYCBkZWZp
bmVzIHRoZQoraW50ZXJmYWNlIGV4cGVjdGVkIG9mIGZpbmRlcnMgYnkgUHl0aG9uJ3MgaW1wb3J0
IHN5c3RlbS4KK2BgaW1wb3J0bGliX21ldGFkYXRhYGAgZXh0ZW5kcyB0aGlzIHByb3RvY29sIGJ5
IGxvb2tpbmcgZm9yIGFuIG9wdGlvbmFsCitgYGZpbmRfZGlzdHJpYnV0aW9uc2BgIGNhbGxhYmxl
IG9uIHRoZSBmaW5kZXJzIGZyb20KKzpkYXRhOmBzeXMubWV0YV9wYXRoYCBhbmQgcHJlc2VudHMg
dGhpcyBleHRlbmRlZCBpbnRlcmZhY2UgYXMgdGhlCitgYERpc3RyaWJ1dGlvbkZpbmRlcmBgIGFi
c3RyYWN0IGJhc2UgY2xhc3MsIHdoaWNoIGRlZmluZXMgdGhpcyBhYnN0cmFjdAorbWV0aG9kOjoK
KworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgZmluZF9kaXN0cmlidXRpb25zKGNv
bnRleHQ9RGlzdHJpYnV0aW9uRmluZGVyLkNvbnRleHQoKSk6CisgICAgICAgICIiIlJldHVybiBh
biBpdGVyYWJsZSBvZiBhbGwgRGlzdHJpYnV0aW9uIGluc3RhbmNlcyBjYXBhYmxlIG9mCisgICAg
ICAgIGxvYWRpbmcgdGhlIG1ldGFkYXRhIGZvciBwYWNrYWdlcyBmb3IgdGhlIGluZGljYXRlZCBg
YGNvbnRleHRgYC4KKyAgICAgICAgIiIiCisKK1RoZSBgYERpc3RyaWJ1dGlvbkZpbmRlci5Db250
ZXh0YGAgb2JqZWN0IHByb3ZpZGVzIGBgLnBhdGhgYCBhbmQgYGAubmFtZWBgCitwcm9wZXJ0aWVz
IGluZGljYXRpbmcgdGhlIHBhdGggdG8gc2VhcmNoIGFuZCBuYW1lIHRvIG1hdGNoIGFuZCBtYXkK
K3N1cHBseSBvdGhlciByZWxldmFudCBjb250ZXh0LgorCitXaGF0IHRoaXMgbWVhbnMgaW4gcHJh
Y3RpY2UgaXMgdGhhdCB0byBzdXBwb3J0IGZpbmRpbmcgZGlzdHJpYnV0aW9uIHBhY2thZ2UKK21l
dGFkYXRhIGluIGxvY2F0aW9ucyBvdGhlciB0aGFuIHRoZSBmaWxlIHN5c3RlbSwgc3ViY2xhc3MK
K2BgRGlzdHJpYnV0aW9uYGAgYW5kIGltcGxlbWVudCB0aGUgYWJzdHJhY3QgbWV0aG9kcy4gVGhl
biBmcm9tCithIGN1c3RvbSBmaW5kZXIsIHJldHVybiBpbnN0YW5jZXMgb2YgdGhpcyBkZXJpdmVk
IGBgRGlzdHJpYnV0aW9uYGAgaW4gdGhlCitgYGZpbmRfZGlzdHJpYnV0aW9ucygpYGAgbWV0aG9k
LgorCisKKy4uIF9gZW50cnkgcG9pbnQgQVBJYDogaHR0cHM6Ly9zZXR1cHRvb2xzLnJlYWR0aGVk
b2NzLmlvL2VuL2xhdGVzdC9wa2dfcmVzb3VyY2VzLmh0bWwjZW50cnktcG9pbnRzCisuLiBfYG1l
dGFkYXRhIEFQSWA6IGh0dHBzOi8vc2V0dXB0b29scy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3Qv
cGtnX3Jlc291cmNlcy5odG1sI21ldGFkYXRhLWFwaQorLi4gX2BmaW5kZXJzYDogaHR0cHM6Ly9k
b2NzLnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvaW1wb3J0Lmh0bWwjZmluZGVycy1hbmQtbG9hZGVy
cworCisKKy4uIHJ1YnJpYzo6IEZvb3Rub3RlcworCisuLiBbI2YxXSBUZWNobmljYWxseSwgdGhl
IHJldHVybmVkIGRpc3RyaWJ1dGlvbiBtZXRhZGF0YSBvYmplY3QgaXMgYW4KKyAgICAgICAgIDpj
bGFzczpgZW1haWwubWVzc2FnZS5FbWFpbE1lc3NhZ2VgCisgICAgICAgICBpbnN0YW5jZSwgYnV0
IHRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLCBhbmQgbm90IHBhcnQgb2YgdGhlCisg
ICAgICAgICBzdGFibGUgQVBJLiAgWW91IHNob3VsZCBvbmx5IHVzZSBkaWN0aW9uYXJ5LWxpa2Ug
bWV0aG9kcyBhbmQgc3ludGF4CisgICAgICAgICB0byBhY2Nlc3MgdGhlIG1ldGFkYXRhIGNvbnRl
bnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvdzNjLWltcG9ydC5sb2cKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWIwMDE2NjAwNTVlNTlmNzM2NzEwYzZlYmE3ZDg5NWFlOWI5MjRhYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvdzNjLWltcG9ydC5sb2cKQEAg
LTAsMCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitU
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy9fX2lu
aXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvY2hhbmdlbG9nLnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvY29uZi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFk
YXRhL2RvY3MvaW5kZXgucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy91c2luZy5y
c3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2ltcG9ydGxpYl9tZXRhZGF0
YS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2ltcG9ydGxpYl9tZXRhZGF0
YS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWNiYzJkMDNjNDE1MTA5YzE5NjBmZmQxNmMyN2Iy
MTBkY2M5ZWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1w
b3J0bGliX21ldGFkYXRhL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNjI3IEBACitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMsIGFic29sdXRlX2ltcG9ydAorCitpbXBvcnQg
aW8KK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgYWJjCitpbXBvcnQgY3N2CitpbXBvcnQg
c3lzCitpbXBvcnQgemlwcAoraW1wb3J0IG9wZXJhdG9yCitpbXBvcnQgZnVuY3Rvb2xzCitpbXBv
cnQgaXRlcnRvb2xzCitpbXBvcnQgcG9zaXhwYXRoCitpbXBvcnQgY29sbGVjdGlvbnMKKworZnJv
bSAuX2NvbXBhdCBpbXBvcnQgKAorICAgIGluc3RhbGwsCisgICAgTnVsbEZpbmRlciwKKyAgICBD
b25maWdQYXJzZXIsCisgICAgc3VwcHJlc3MsCisgICAgbWFwLAorICAgIEZpbGVOb3RGb3VuZEVy
cm9yLAorICAgIElzQURpcmVjdG9yeUVycm9yLAorICAgIE5vdEFEaXJlY3RvcnlFcnJvciwKKyAg
ICBQZXJtaXNzaW9uRXJyb3IsCisgICAgcGF0aGxpYiwKKyAgICBNb2R1bGVOb3RGb3VuZEVycm9y
LAorICAgIE1ldGFQYXRoRmluZGVyLAorICAgIGVtYWlsX21lc3NhZ2VfZnJvbV9zdHJpbmcsCisg
ICAgUHlQeV9yZXByLAorICAgIHVuaXF1ZV9vcmRlcmVkLAorICAgIHN0ciwKKyAgICApCitmcm9t
IGltcG9ydGxpYiBpbXBvcnQgaW1wb3J0X21vZHVsZQorZnJvbSBpdGVydG9vbHMgaW1wb3J0IHN0
YXJtYXAKKworCitfX21ldGFjbGFzc19fID0gdHlwZQorCisKK19fYWxsX18gPSBbCisgICAgJ0Rp
c3RyaWJ1dGlvbicsCisgICAgJ0Rpc3RyaWJ1dGlvbkZpbmRlcicsCisgICAgJ1BhY2thZ2VOb3RG
b3VuZEVycm9yJywKKyAgICAnZGlzdHJpYnV0aW9uJywKKyAgICAnZGlzdHJpYnV0aW9ucycsCisg
ICAgJ2VudHJ5X3BvaW50cycsCisgICAgJ2ZpbGVzJywKKyAgICAnbWV0YWRhdGEnLAorICAgICdy
ZXF1aXJlcycsCisgICAgJ3ZlcnNpb24nLAorICAgIF0KKworCitjbGFzcyBQYWNrYWdlTm90Rm91
bmRFcnJvcihNb2R1bGVOb3RGb3VuZEVycm9yKToKKyAgICAiIiJUaGUgcGFja2FnZSB3YXMgbm90
IGZvdW5kLiIiIgorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHRtcGwgPSAiTm8g
cGFja2FnZSBtZXRhZGF0YSB3YXMgZm91bmQgZm9yIHtzZWxmLm5hbWV9IgorICAgICAgICByZXR1
cm4gdG1wbC5mb3JtYXQoKipsb2NhbHMoKSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBuYW1l
KHNlbGYpOgorICAgICAgICBuYW1lLCA9IHNlbGYuYXJncworICAgICAgICByZXR1cm4gbmFtZQor
CisKK2NsYXNzIEVudHJ5UG9pbnQoCisgICAgICAgIFB5UHlfcmVwciwKKyAgICAgICAgY29sbGVj
dGlvbnMubmFtZWR0dXBsZSgnRW50cnlQb2ludEJhc2UnLCAnbmFtZSB2YWx1ZSBncm91cCcpKToK
KyAgICAiIiJBbiBlbnRyeSBwb2ludCBhcyBkZWZpbmVkIGJ5IFB5dGhvbiBwYWNrYWdpbmcgY29u
dmVudGlvbnMuCisKKyAgICBTZWUgYHRoZSBwYWNrYWdpbmcgZG9jcyBvbiBlbnRyeSBwb2ludHMK
KyAgICA8aHR0cHM6Ly9wYWNrYWdpbmcucHl0aG9uLm9yZy9zcGVjaWZpY2F0aW9ucy9lbnRyeS1w
b2ludHMvPmBfCisgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgIiIiCisKKyAgICBwYXR0
ZXJuID0gcmUuY29tcGlsZSgKKyAgICAgICAgcicoP1A8bW9kdWxlPltcdy5dKylccyonCisgICAg
ICAgIHInKDpccyooP1A8YXR0cj5bXHcuXSspKT9ccyonCisgICAgICAgIHInKD9QPGV4dHJhcz5c
Wy4qXF0pP1xzKiQnCisgICAgICAgICkKKyAgICAiIiIKKyAgICBBIHJlZ3VsYXIgZXhwcmVzc2lv
biBkZXNjcmliaW5nIHRoZSBzeW50YXggZm9yIGFuIGVudHJ5IHBvaW50LAorICAgIHdoaWNoIG1p
Z2h0IGxvb2sgbGlrZToKKworICAgICAgICAtIG1vZHVsZQorICAgICAgICAtIHBhY2thZ2UubW9k
dWxlCisgICAgICAgIC0gcGFja2FnZS5tb2R1bGU6YXR0cmlidXRlCisgICAgICAgIC0gcGFja2Fn
ZS5tb2R1bGU6b2JqZWN0LmF0dHJpYnV0ZQorICAgICAgICAtIHBhY2thZ2UubW9kdWxlOmF0dHIg
W2V4dHJhMSwgZXh0cmEyXQorCisgICAgT3RoZXIgY29tYmluYXRpb25zIGFyZSBwb3NzaWJsZSBh
cyB3ZWxsLgorCisgICAgVGhlIGV4cHJlc3Npb24gaXMgbGVuaWVudCBhYm91dCB3aGl0ZXNwYWNl
IGFyb3VuZCB0aGUgJzonLAorICAgIGZvbGxvd2luZyB0aGUgYXR0ciwgYW5kIGZvbGxvd2luZyBh
bnkgZXh0cmFzLgorICAgICIiIgorCisgICAgZGVmIGxvYWQoc2VsZik6CisgICAgICAgICIiIkxv
YWQgdGhlIGVudHJ5IHBvaW50IGZyb20gaXRzIGRlZmluaXRpb24uIElmIG9ubHkgYSBtb2R1bGUK
KyAgICAgICAgaXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSwgcmV0dXJuIHRoYXQgbW9kdWxlLiBP
dGhlcndpc2UsCisgICAgICAgIHJldHVybiB0aGUgbmFtZWQgb2JqZWN0LgorICAgICAgICAiIiIK
KyAgICAgICAgbWF0Y2ggPSBzZWxmLnBhdHRlcm4ubWF0Y2goc2VsZi52YWx1ZSkKKyAgICAgICAg
bW9kdWxlID0gaW1wb3J0X21vZHVsZShtYXRjaC5ncm91cCgnbW9kdWxlJykpCisgICAgICAgIGF0
dHJzID0gZmlsdGVyKE5vbmUsIChtYXRjaC5ncm91cCgnYXR0cicpIG9yICcnKS5zcGxpdCgnLicp
KQorICAgICAgICByZXR1cm4gZnVuY3Rvb2xzLnJlZHVjZShnZXRhdHRyLCBhdHRycywgbW9kdWxl
KQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1vZHVsZShzZWxmKToKKyAgICAgICAgbWF0Y2gg
PSBzZWxmLnBhdHRlcm4ubWF0Y2goc2VsZi52YWx1ZSkKKyAgICAgICAgcmV0dXJuIG1hdGNoLmdy
b3VwKCdtb2R1bGUnKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGF0dHIoc2VsZik6CisgICAg
ICAgIG1hdGNoID0gc2VsZi5wYXR0ZXJuLm1hdGNoKHNlbGYudmFsdWUpCisgICAgICAgIHJldHVy
biBtYXRjaC5ncm91cCgnYXR0cicpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZXh0cmFzKHNl
bGYpOgorICAgICAgICBtYXRjaCA9IHNlbGYucGF0dGVybi5tYXRjaChzZWxmLnZhbHVlKQorICAg
ICAgICByZXR1cm4gbGlzdChyZS5maW5kaXRlcihyJ1x3KycsIG1hdGNoLmdyb3VwKCdleHRyYXMn
KSBvciAnJykpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX2Zyb21fY29uZmlnKGNscywg
Y29uZmlnKToKKyAgICAgICAgcmV0dXJuIFsKKyAgICAgICAgICAgIGNscyhuYW1lLCB2YWx1ZSwg
Z3JvdXApCisgICAgICAgICAgICBmb3IgZ3JvdXAgaW4gY29uZmlnLnNlY3Rpb25zKCkKKyAgICAg
ICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBjb25maWcuaXRlbXMoZ3JvdXApCisgICAgICAgICAg
ICBdCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX2Zyb21fdGV4dChjbHMsIHRleHQpOgor
ICAgICAgICBjb25maWcgPSBDb25maWdQYXJzZXIoZGVsaW1pdGVycz0nPScpCisgICAgICAgICMg
Y2FzZSBzZW5zaXRpdmU6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8xNjExNzk5LzgxMjE4
MworICAgICAgICBjb25maWcub3B0aW9ueGZvcm0gPSBzdHIKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgY29uZmlnLnJlYWRfc3RyaW5nKHRleHQpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVF
cnJvcjogICMgcHJhZ21hOiBub2NvdmVyCisgICAgICAgICAgICAjIFB5dGhvbiAyIGhhcyBubyBy
ZWFkX3N0cmluZworICAgICAgICAgICAgY29uZmlnLnJlYWRmcChpby5TdHJpbmdJTyh0ZXh0KSkK
KyAgICAgICAgcmV0dXJuIEVudHJ5UG9pbnQuX2Zyb21fY29uZmlnKGNvbmZpZykKKworICAgIGRl
ZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFN1cHBseSBpdGVyIHNvIG9u
ZSBtYXkgY29uc3RydWN0IGRpY3RzIG9mIEVudHJ5UG9pbnRzIGVhc2lseS4KKyAgICAgICAgIiIi
CisgICAgICAgIHJldHVybiBpdGVyKChzZWxmLm5hbWUsIHNlbGYpKQorCisgICAgZGVmIF9fcmVk
dWNlX18oc2VsZik6CisgICAgICAgIHJldHVybiAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3Nf
XywKKyAgICAgICAgICAgIChzZWxmLm5hbWUsIHNlbGYudmFsdWUsIHNlbGYuZ3JvdXApLAorICAg
ICAgICAgICAgKQorCisKK2NsYXNzIFBhY2thZ2VQYXRoKHBhdGhsaWIuUHVyZVBvc2l4UGF0aCk6
CisgICAgIiIiQSByZWZlcmVuY2UgdG8gYSBwYXRoIGluIGEgcGFja2FnZSIiIgorCisgICAgZGVm
IHJlYWRfdGV4dChzZWxmLCBlbmNvZGluZz0ndXRmLTgnKToKKyAgICAgICAgd2l0aCBzZWxmLmxv
Y2F0ZSgpLm9wZW4oZW5jb2Rpbmc9ZW5jb2RpbmcpIGFzIHN0cmVhbToKKyAgICAgICAgICAgIHJl
dHVybiBzdHJlYW0ucmVhZCgpCisKKyAgICBkZWYgcmVhZF9iaW5hcnkoc2VsZik6CisgICAgICAg
IHdpdGggc2VsZi5sb2NhdGUoKS5vcGVuKCdyYicpIGFzIHN0cmVhbToKKyAgICAgICAgICAgIHJl
dHVybiBzdHJlYW0ucmVhZCgpCisKKyAgICBkZWYgbG9jYXRlKHNlbGYpOgorICAgICAgICAiIiJS
ZXR1cm4gYSBwYXRoLWxpa2Ugb2JqZWN0IGZvciB0aGlzIHBhdGgiIiIKKyAgICAgICAgcmV0dXJu
IHNlbGYuZGlzdC5sb2NhdGVfZmlsZShzZWxmKQorCisKK2NsYXNzIEZpbGVIYXNoOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBzcGVjKToKKyAgICAgICAgc2VsZi5tb2RlLCBfLCBzZWxmLnZhbHVl
ID0gc3BlYy5wYXJ0aXRpb24oJz0nKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAg
ICByZXR1cm4gJzxGaWxlSGFzaCBtb2RlOiB7fSB2YWx1ZToge30+Jy5mb3JtYXQoc2VsZi5tb2Rl
LCBzZWxmLnZhbHVlKQorCisKK2NsYXNzIERpc3RyaWJ1dGlvbjoKKyAgICAiIiJBIFB5dGhvbiBk
aXN0cmlidXRpb24gcGFja2FnZS4iIiIKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBk
ZWYgcmVhZF90ZXh0KHNlbGYsIGZpbGVuYW1lKToKKyAgICAgICAgIiIiQXR0ZW1wdCB0byBsb2Fk
IG1ldGFkYXRhIGZpbGUgZ2l2ZW4gYnkgdGhlIG5hbWUuCisKKyAgICAgICAgOnBhcmFtIGZpbGVu
YW1lOiBUaGUgbmFtZSBvZiB0aGUgZmlsZSBpbiB0aGUgZGlzdHJpYnV0aW9uIGluZm8uCisgICAg
ICAgIDpyZXR1cm46IFRoZSB0ZXh0IGlmIGZvdW5kLCBvdGhlcndpc2UgTm9uZS4KKyAgICAgICAg
IiIiCisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIGxvY2F0ZV9maWxlKHNlbGYs
IHBhdGgpOgorICAgICAgICAiIiIKKyAgICAgICAgR2l2ZW4gYSBwYXRoIHRvIGEgZmlsZSBpbiB0
aGlzIGRpc3RyaWJ1dGlvbiwgcmV0dXJuIGEgcGF0aAorICAgICAgICB0byBpdC4KKyAgICAgICAg
IiIiCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZnJvbV9uYW1lKGNscywgbmFtZSk6Cisg
ICAgICAgICIiIlJldHVybiB0aGUgRGlzdHJpYnV0aW9uIGZvciB0aGUgZ2l2ZW4gcGFja2FnZSBu
YW1lLgorCisgICAgICAgIDpwYXJhbSBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgZGlzdHJpYnV0aW9u
IHBhY2thZ2UgdG8gc2VhcmNoIGZvci4KKyAgICAgICAgOnJldHVybjogVGhlIERpc3RyaWJ1dGlv
biBpbnN0YW5jZSAob3Igc3ViY2xhc3MgdGhlcmVvZikgZm9yIHRoZSBuYW1lZAorICAgICAgICAg
ICAgcGFja2FnZSwgaWYgZm91bmQuCisgICAgICAgIDpyYWlzZXMgUGFja2FnZU5vdEZvdW5kRXJy
b3I6IFdoZW4gdGhlIG5hbWVkIHBhY2thZ2UncyBkaXN0cmlidXRpb24KKyAgICAgICAgICAgIG1l
dGFkYXRhIGNhbm5vdCBiZSBmb3VuZC4KKyAgICAgICAgIiIiCisgICAgICAgIGZvciByZXNvbHZl
ciBpbiBjbHMuX2Rpc2NvdmVyX3Jlc29sdmVycygpOgorICAgICAgICAgICAgZGlzdHMgPSByZXNv
bHZlcihEaXN0cmlidXRpb25GaW5kZXIuQ29udGV4dChuYW1lPW5hbWUpKQorICAgICAgICAgICAg
ZGlzdCA9IG5leHQoaXRlcihkaXN0cyksIE5vbmUpCisgICAgICAgICAgICBpZiBkaXN0IGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBkaXN0CisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICByYWlzZSBQYWNrYWdlTm90Rm91bmRFcnJvcihuYW1lKQorCisgICAgQGNsYXNzbWV0
aG9kCisgICAgZGVmIGRpc2NvdmVyKGNscywgKiprd2FyZ3MpOgorICAgICAgICAiIiJSZXR1cm4g
YW4gaXRlcmFibGUgb2YgRGlzdHJpYnV0aW9uIG9iamVjdHMgZm9yIGFsbCBwYWNrYWdlcy4KKwor
ICAgICAgICBQYXNzIGEgYGBjb250ZXh0YGAgb3IgcGFzcyBrZXl3b3JkIGFyZ3VtZW50cyBmb3Ig
Y29uc3RydWN0aW5nCisgICAgICAgIGEgY29udGV4dC4KKworICAgICAgICA6Y29udGV4dDogQSBg
YERpc3RyaWJ1dGlvbkZpbmRlci5Db250ZXh0YGAgb2JqZWN0LgorICAgICAgICA6cmV0dXJuOiBJ
dGVyYWJsZSBvZiBEaXN0cmlidXRpb24gb2JqZWN0cyBmb3IgYWxsIHBhY2thZ2VzLgorICAgICAg
ICAiIiIKKyAgICAgICAgY29udGV4dCA9IGt3YXJncy5wb3AoJ2NvbnRleHQnLCBOb25lKQorICAg
ICAgICBpZiBjb250ZXh0IGFuZCBrd2FyZ3M6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJjYW5ub3QgYWNjZXB0IGNvbnRleHQgYW5kIGt3YXJncyIpCisgICAgICAgIGNvbnRleHQgPSBj
b250ZXh0IG9yIERpc3RyaWJ1dGlvbkZpbmRlci5Db250ZXh0KCoqa3dhcmdzKQorICAgICAgICBy
ZXR1cm4gaXRlcnRvb2xzLmNoYWluLmZyb21faXRlcmFibGUoCisgICAgICAgICAgICByZXNvbHZl
cihjb250ZXh0KQorICAgICAgICAgICAgZm9yIHJlc29sdmVyIGluIGNscy5fZGlzY292ZXJfcmVz
b2x2ZXJzKCkKKyAgICAgICAgICAgICkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgYXQo
cGF0aCk6CisgICAgICAgICIiIlJldHVybiBhIERpc3RyaWJ1dGlvbiBmb3IgdGhlIGluZGljYXRl
ZCBtZXRhZGF0YSBwYXRoCisKKyAgICAgICAgOnBhcmFtIHBhdGg6IGEgc3RyaW5nIG9yIHBhdGgt
bGlrZSBvYmplY3QKKyAgICAgICAgOnJldHVybjogYSBjb25jcmV0ZSBEaXN0cmlidXRpb24gaW5z
dGFuY2UgZm9yIHRoZSBwYXRoCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gUGF0aERpc3Ry
aWJ1dGlvbihwYXRobGliLlBhdGgocGF0aCkpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVm
IF9kaXNjb3Zlcl9yZXNvbHZlcnMoKToKKyAgICAgICAgIiIiU2VhcmNoIHRoZSBtZXRhX3BhdGgg
Zm9yIHJlc29sdmVycy4iIiIKKyAgICAgICAgZGVjbGFyZWQgPSAoCisgICAgICAgICAgICBnZXRh
dHRyKGZpbmRlciwgJ2ZpbmRfZGlzdHJpYnV0aW9ucycsIE5vbmUpCisgICAgICAgICAgICBmb3Ig
ZmluZGVyIGluIHN5cy5tZXRhX3BhdGgKKyAgICAgICAgICAgICkKKyAgICAgICAgcmV0dXJuIGZp
bHRlcihOb25lLCBkZWNsYXJlZCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfbG9jYWwo
Y2xzLCByb290PScuJyk6CisgICAgICAgIGZyb20gcGVwNTE3IGltcG9ydCBidWlsZCwgbWV0YQor
ICAgICAgICBzeXN0ZW0gPSBidWlsZC5jb21wYXRfc3lzdGVtKHJvb3QpCisgICAgICAgIGJ1aWxk
ZXIgPSBmdW5jdG9vbHMucGFydGlhbCgKKyAgICAgICAgICAgIG1ldGEuYnVpbGQsCisgICAgICAg
ICAgICBzb3VyY2VfZGlyPXJvb3QsCisgICAgICAgICAgICBzeXN0ZW09c3lzdGVtLAorICAgICAg
ICAgICAgKQorICAgICAgICByZXR1cm4gUGF0aERpc3RyaWJ1dGlvbih6aXBwLlBhdGgobWV0YS5i
dWlsZF9hc196aXAoYnVpbGRlcikpKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1ldGFkYXRh
KHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHBhcnNlZCBtZXRhZGF0YSBmb3IgdGhpcyBE
aXN0cmlidXRpb24uCisKKyAgICAgICAgVGhlIHJldHVybmVkIG9iamVjdCB3aWxsIGhhdmUga2V5
cyB0aGF0IG5hbWUgdGhlIHZhcmlvdXMgYml0cyBvZgorICAgICAgICBtZXRhZGF0YS4gIFNlZSBQ
RVAgNTY2IGZvciBkZXRhaWxzLgorICAgICAgICAiIiIKKyAgICAgICAgdGV4dCA9ICgKKyAgICAg
ICAgICAgIHNlbGYucmVhZF90ZXh0KCdNRVRBREFUQScpCisgICAgICAgICAgICBvciBzZWxmLnJl
YWRfdGV4dCgnUEtHLUlORk8nKQorICAgICAgICAgICAgIyBUaGlzIGxhc3QgY2xhdXNlIGlzIGhl
cmUgdG8gc3VwcG9ydCBvbGQgZWdnLWluZm8gZmlsZXMuICBJdHMKKyAgICAgICAgICAgICMgZWZm
ZWN0IGlzIHRvIGp1c3QgZW5kIHVwIHVzaW5nIHRoZSBQYXRoRGlzdHJpYnV0aW9uJ3Mgc2VsZi5f
cGF0aAorICAgICAgICAgICAgIyAod2hpY2ggcG9pbnRzIHRvIHRoZSBlZ2ctaW5mbyBmaWxlKSBh
dHRyaWJ1dGUgdW5jaGFuZ2VkLgorICAgICAgICAgICAgb3Igc2VsZi5yZWFkX3RleHQoJycpCisg
ICAgICAgICAgICApCisgICAgICAgIHJldHVybiBlbWFpbF9tZXNzYWdlX2Zyb21fc3RyaW5nKHRl
eHQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmVyc2lvbihzZWxmKToKKyAgICAgICAgIiIi
UmV0dXJuIHRoZSAnVmVyc2lvbicgbWV0YWRhdGEgZm9yIHRoZSBkaXN0cmlidXRpb24gcGFja2Fn
ZS4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYubWV0YWRhdGFbJ1ZlcnNpb24nXQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGVudHJ5X3BvaW50cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIEVudHJ5
UG9pbnQuX2Zyb21fdGV4dChzZWxmLnJlYWRfdGV4dCgnZW50cnlfcG9pbnRzLnR4dCcpKQorCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIGZpbGVzKHNlbGYpOgorICAgICAgICAiIiJGaWxlcyBpbiB0
aGlzIGRpc3RyaWJ1dGlvbi4KKworICAgICAgICA6cmV0dXJuOiBMaXN0IG9mIFBhY2thZ2VQYXRo
IGZvciB0aGlzIGRpc3RyaWJ1dGlvbiBvciBOb25lCisKKyAgICAgICAgUmVzdWx0IGlzIGBOb25l
YCBpZiB0aGUgbWV0YWRhdGEgZmlsZSB0aGF0IGVudW1lcmF0ZXMgZmlsZXMKKyAgICAgICAgKGku
ZS4gUkVDT1JEIGZvciBkaXN0LWluZm8gb3IgU09VUkNFUy50eHQgZm9yIGVnZy1pbmZvKSBpcwor
ICAgICAgICBtaXNzaW5nLgorICAgICAgICBSZXN1bHQgbWF5IGJlIGVtcHR5IGlmIHRoZSBtZXRh
ZGF0YSBleGlzdHMgYnV0IGlzIGVtcHR5LgorICAgICAgICAiIiIKKyAgICAgICAgZmlsZV9saW5l
cyA9IHNlbGYuX3JlYWRfZmlsZXNfZGlzdGluZm8oKSBvciBzZWxmLl9yZWFkX2ZpbGVzX2VnZ2lu
Zm8oKQorCisgICAgICAgIGRlZiBtYWtlX2ZpbGUobmFtZSwgaGFzaD1Ob25lLCBzaXplX3N0cj1O
b25lKToKKyAgICAgICAgICAgIHJlc3VsdCA9IFBhY2thZ2VQYXRoKG5hbWUpCisgICAgICAgICAg
ICByZXN1bHQuaGFzaCA9IEZpbGVIYXNoKGhhc2gpIGlmIGhhc2ggZWxzZSBOb25lCisgICAgICAg
ICAgICByZXN1bHQuc2l6ZSA9IGludChzaXplX3N0cikgaWYgc2l6ZV9zdHIgZWxzZSBOb25lCisg
ICAgICAgICAgICByZXN1bHQuZGlzdCA9IHNlbGYKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQK
KworICAgICAgICByZXR1cm4gZmlsZV9saW5lcyBhbmQgbGlzdChzdGFybWFwKG1ha2VfZmlsZSwg
Y3N2LnJlYWRlcihmaWxlX2xpbmVzKSkpCisKKyAgICBkZWYgX3JlYWRfZmlsZXNfZGlzdGluZm8o
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZWFkIHRoZSBsaW5lcyBvZiBSRUNPUkQKKyAg
ICAgICAgIiIiCisgICAgICAgIHRleHQgPSBzZWxmLnJlYWRfdGV4dCgnUkVDT1JEJykKKyAgICAg
ICAgcmV0dXJuIHRleHQgYW5kIHRleHQuc3BsaXRsaW5lcygpCisKKyAgICBkZWYgX3JlYWRfZmls
ZXNfZWdnaW5mbyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFNPVVJDRVMudHh0IG1pZ2h0
IGNvbnRhaW4gbGl0ZXJhbCBjb21tYXMsIHNvIHdyYXAgZWFjaCBsaW5lCisgICAgICAgIGluIHF1
b3Rlcy4KKyAgICAgICAgIiIiCisgICAgICAgIHRleHQgPSBzZWxmLnJlYWRfdGV4dCgnU09VUkNF
Uy50eHQnKQorICAgICAgICByZXR1cm4gdGV4dCBhbmQgbWFwKCcie30iJy5mb3JtYXQsIHRleHQu
c3BsaXRsaW5lcygpKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJlcXVpcmVzKHNlbGYpOgor
ICAgICAgICAiIiJHZW5lcmF0ZWQgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBmb3IgdGhpcyBEaXN0
cmlidXRpb24iIiIKKyAgICAgICAgcmVxcyA9IHNlbGYuX3JlYWRfZGlzdF9pbmZvX3JlcXMoKSBv
ciBzZWxmLl9yZWFkX2VnZ19pbmZvX3JlcXMoKQorICAgICAgICByZXR1cm4gcmVxcyBhbmQgbGlz
dChyZXFzKQorCisgICAgZGVmIF9yZWFkX2Rpc3RfaW5mb19yZXFzKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5tZXRhZGF0YS5nZXRfYWxsKCdSZXF1aXJlcy1EaXN0JykKKworICAgIGRlZiBf
cmVhZF9lZ2dfaW5mb19yZXFzKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBzZWxmLnJlYWRfdGV4
dCgncmVxdWlyZXMudHh0JykKKyAgICAgICAgcmV0dXJuIHNvdXJjZSBhbmQgc2VsZi5fZGVwc19m
cm9tX3JlcXVpcmVzX3RleHQoc291cmNlKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9k
ZXBzX2Zyb21fcmVxdWlyZXNfdGV4dChjbHMsIHNvdXJjZSk6CisgICAgICAgIHNlY3Rpb25fcGFp
cnMgPSBjbHMuX3JlYWRfc2VjdGlvbnMoc291cmNlLnNwbGl0bGluZXMoKSkKKyAgICAgICAgc2Vj
dGlvbnMgPSB7CisgICAgICAgICAgICBzZWN0aW9uOiBsaXN0KG1hcChvcGVyYXRvci5pdGVtZ2V0
dGVyKCdsaW5lJyksIHJlc3VsdHMpKQorICAgICAgICAgICAgZm9yIHNlY3Rpb24sIHJlc3VsdHMg
aW4KKyAgICAgICAgICAgIGl0ZXJ0b29scy5ncm91cGJ5KHNlY3Rpb25fcGFpcnMsIG9wZXJhdG9y
Lml0ZW1nZXR0ZXIoJ3NlY3Rpb24nKSkKKyAgICAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNs
cy5fY29udmVydF9lZ2dfaW5mb19yZXFzX3RvX3NpbXBsZV9yZXFzKHNlY3Rpb25zKQorCisgICAg
QHN0YXRpY21ldGhvZAorICAgIGRlZiBfcmVhZF9zZWN0aW9ucyhsaW5lcyk6CisgICAgICAgIHNl
Y3Rpb24gPSBOb25lCisgICAgICAgIGZvciBsaW5lIGluIGZpbHRlcihOb25lLCBsaW5lcyk6Cisg
ICAgICAgICAgICBzZWN0aW9uX21hdGNoID0gcmUubWF0Y2gocidcWyguKilcXSQnLCBsaW5lKQor
ICAgICAgICAgICAgaWYgc2VjdGlvbl9tYXRjaDoKKyAgICAgICAgICAgICAgICBzZWN0aW9uID0g
c2VjdGlvbl9tYXRjaC5ncm91cCgxKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg
ICAgICB5aWVsZCBsb2NhbHMoKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfY29udmVy
dF9lZ2dfaW5mb19yZXFzX3RvX3NpbXBsZV9yZXFzKHNlY3Rpb25zKToKKyAgICAgICAgIiIiCisg
ICAgICAgIEhpc3RvcmljYWxseSwgc2V0dXB0b29scyB3b3VsZCBzb2xpY2l0IGFuZCBzdG9yZSAn
ZXh0cmEnCisgICAgICAgIHJlcXVpcmVtZW50cywgaW5jbHVkaW5nIHRob3NlIHdpdGggZW52aXJv
bm1lbnQgbWFya2VycywKKyAgICAgICAgaW4gc2VwYXJhdGUgc2VjdGlvbnMuIE1vcmUgbW9kZXJu
IHRvb2xzIGV4cGVjdCBlYWNoCisgICAgICAgIGRlcGVuZGVuY3kgdG8gYmUgZGVmaW5lZCBzZXBh
cmF0ZWx5LCB3aXRoIGFueSByZWxldmFudAorICAgICAgICBleHRyYXMgYW5kIGVudmlyb25tZW50
IG1hcmtlcnMgYXR0YWNoZWQgZGlyZWN0bHkgdG8gdGhhdAorICAgICAgICByZXF1aXJlbWVudC4g
VGhpcyBtZXRob2QgY29udmVydHMgdGhlIGZvcm1lciB0byB0aGUKKyAgICAgICAgbGF0dGVyLiBT
ZWUgX3Rlc3RfZGVwc19mcm9tX3JlcXVpcmVzX3RleHQgZm9yIGFuIGV4YW1wbGUuCisgICAgICAg
ICIiIgorICAgICAgICBkZWYgbWFrZV9jb25kaXRpb24obmFtZSk6CisgICAgICAgICAgICByZXR1
cm4gbmFtZSBhbmQgJ2V4dHJhID09ICJ7bmFtZX0iJy5mb3JtYXQobmFtZT1uYW1lKQorCisgICAg
ICAgIGRlZiBwYXJzZV9jb25kaXRpb24oc2VjdGlvbik6CisgICAgICAgICAgICBzZWN0aW9uID0g
c2VjdGlvbiBvciAnJworICAgICAgICAgICAgZXh0cmEsIHNlcCwgbWFya2VycyA9IHNlY3Rpb24u
cGFydGl0aW9uKCc6JykKKyAgICAgICAgICAgIGlmIGV4dHJhIGFuZCBtYXJrZXJzOgorICAgICAg
ICAgICAgICAgIG1hcmtlcnMgPSAnKHttYXJrZXJzfSknLmZvcm1hdChtYXJrZXJzPW1hcmtlcnMp
CisgICAgICAgICAgICBjb25kaXRpb25zID0gbGlzdChmaWx0ZXIoTm9uZSwgW21hcmtlcnMsIG1h
a2VfY29uZGl0aW9uKGV4dHJhKV0pKQorICAgICAgICAgICAgcmV0dXJuICc7ICcgKyAnIGFuZCAn
LmpvaW4oY29uZGl0aW9ucykgaWYgY29uZGl0aW9ucyBlbHNlICcnCisKKyAgICAgICAgZm9yIHNl
Y3Rpb24sIGRlcHMgaW4gc2VjdGlvbnMuaXRlbXMoKToKKyAgICAgICAgICAgIGZvciBkZXAgaW4g
ZGVwczoKKyAgICAgICAgICAgICAgICB5aWVsZCBkZXAgKyBwYXJzZV9jb25kaXRpb24oc2VjdGlv
bikKKworCitjbGFzcyBEaXN0cmlidXRpb25GaW5kZXIoTWV0YVBhdGhGaW5kZXIpOgorICAgICIi
IgorICAgIEEgTWV0YVBhdGhGaW5kZXIgY2FwYWJsZSBvZiBkaXNjb3ZlcmluZyBpbnN0YWxsZWQg
ZGlzdHJpYnV0aW9ucy4KKyAgICAiIiIKKworICAgIGNsYXNzIENvbnRleHQ6CisgICAgICAgICIi
IgorICAgICAgICBLZXl3b3JkIGFyZ3VtZW50cyBwcmVzZW50ZWQgYnkgdGhlIGNhbGxlciB0bwor
ICAgICAgICBgYGRpc3RyaWJ1dGlvbnMoKWBgIG9yIGBgRGlzdHJpYnV0aW9uLmRpc2NvdmVyKClg
YAorICAgICAgICB0byBuYXJyb3cgdGhlIHNjb3BlIG9mIGEgc2VhcmNoIGZvciBkaXN0cmlidXRp
b25zCisgICAgICAgIGluIGFsbCBEaXN0cmlidXRpb25GaW5kZXJzLgorCisgICAgICAgIEVhY2gg
RGlzdHJpYnV0aW9uRmluZGVyIG1heSBleHBlY3QgYW55IHBhcmFtZXRlcnMKKyAgICAgICAgYW5k
IHNob3VsZCBhdHRlbXB0IHRvIGhvbm9yIHRoZSBjYW5vbmljYWwKKyAgICAgICAgcGFyYW1ldGVy
cyBkZWZpbmVkIGJlbG93IHdoZW4gYXBwcm9wcmlhdGUuCisgICAgICAgICIiIgorCisgICAgICAg
IG5hbWUgPSBOb25lCisgICAgICAgICIiIgorICAgICAgICBTcGVjaWZpYyBuYW1lIGZvciB3aGlj
aCBhIGRpc3RyaWJ1dGlvbiBmaW5kZXIgc2hvdWxkIG1hdGNoLgorICAgICAgICBBIG5hbWUgb2Yg
YGBOb25lYGAgbWF0Y2hlcyBhbGwgZGlzdHJpYnV0aW9ucy4KKyAgICAgICAgIiIiCisKKyAgICAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHZhcnMoc2VsZiku
dXBkYXRlKGt3YXJncykKKworICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgZGVmIHBhdGgoc2Vs
Zik6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFRoZSBwYXRoIHRoYXQgYSBkaXN0cmli
dXRpb24gZmluZGVyIHNob3VsZCBzZWFyY2guCisKKyAgICAgICAgICAgIFR5cGljYWxseSByZWZl
cnMgdG8gUHl0aG9uIHBhY2thZ2UgcGF0aHMgYW5kIGRlZmF1bHRzCisgICAgICAgICAgICB0byBg
YHN5cy5wYXRoYGAuCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHJldHVybiB2YXJzKHNl
bGYpLmdldCgncGF0aCcsIHN5cy5wYXRoKQorCisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAg
IGRlZiBmaW5kX2Rpc3RyaWJ1dGlvbnMoc2VsZiwgY29udGV4dD1Db250ZXh0KCkpOgorICAgICAg
ICAiIiIKKyAgICAgICAgRmluZCBkaXN0cmlidXRpb25zLgorCisgICAgICAgIFJldHVybiBhbiBp
dGVyYWJsZSBvZiBhbGwgRGlzdHJpYnV0aW9uIGluc3RhbmNlcyBjYXBhYmxlIG9mCisgICAgICAg
IGxvYWRpbmcgdGhlIG1ldGFkYXRhIGZvciBwYWNrYWdlcyBtYXRjaGluZyB0aGUgYGBjb250ZXh0
YGAsCisgICAgICAgIGEgRGlzdHJpYnV0aW9uRmluZGVyLkNvbnRleHQgaW5zdGFuY2UuCisgICAg
ICAgICIiIgorCisKK2NsYXNzIEZhc3RQYXRoOgorICAgICIiIgorICAgIE1pY3JvLW9wdGltaXpl
ZCBjbGFzcyBmb3Igc2VhcmNoaW5nIGEgcGF0aCBmb3IKKyAgICBjaGlsZHJlbi4KKyAgICAiIiIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290KToKKyAgICAgICAgc2VsZi5yb290ID0gc3Ry
KHJvb3QpCisgICAgICAgIHNlbGYuYmFzZSA9IG9zLnBhdGguYmFzZW5hbWUoc2VsZi5yb290KS5s
b3dlcigpCisKKyAgICBkZWYgam9pbnBhdGgoc2VsZiwgY2hpbGQpOgorICAgICAgICByZXR1cm4g
cGF0aGxpYi5QYXRoKHNlbGYucm9vdCwgY2hpbGQpCisKKyAgICBkZWYgY2hpbGRyZW4oc2VsZik6
CisgICAgICAgIHdpdGggc3VwcHJlc3MoRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHJldHVybiBv
cy5saXN0ZGlyKHNlbGYucm9vdCBvciAnJykKKyAgICAgICAgd2l0aCBzdXBwcmVzcyhFeGNlcHRp
b24pOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuemlwX2NoaWxkcmVuKCkKKyAgICAgICAgcmV0
dXJuIFtdCisKKyAgICBkZWYgemlwX2NoaWxkcmVuKHNlbGYpOgorICAgICAgICB6aXBfcGF0aCA9
IHppcHAuUGF0aChzZWxmLnJvb3QpCisgICAgICAgIG5hbWVzID0gemlwX3BhdGgucm9vdC5uYW1l
bGlzdCgpCisgICAgICAgIHNlbGYuam9pbnBhdGggPSB6aXBfcGF0aC5qb2lucGF0aAorCisgICAg
ICAgIHJldHVybiB1bmlxdWVfb3JkZXJlZCgKKyAgICAgICAgICAgIGNoaWxkLnNwbGl0KHBvc2l4
cGF0aC5zZXAsIDEpWzBdCisgICAgICAgICAgICBmb3IgY2hpbGQgaW4gbmFtZXMKKyAgICAgICAg
ICAgICkKKworICAgIGRlZiBpc19lZ2coc2VsZiwgc2VhcmNoKToKKyAgICAgICAgYmFzZSA9IHNl
bGYuYmFzZQorICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgYmFzZSA9PSBzZWFyY2gudmVy
c2lvbmxlc3NfZWdnX25hbWUKKyAgICAgICAgICAgIG9yIGJhc2Uuc3RhcnRzd2l0aChzZWFyY2gu
cHJlZml4KQorICAgICAgICAgICAgYW5kIGJhc2UuZW5kc3dpdGgoJy5lZ2cnKSkKKworICAgIGRl
ZiBzZWFyY2goc2VsZiwgbmFtZSk6CisgICAgICAgIGZvciBjaGlsZCBpbiBzZWxmLmNoaWxkcmVu
KCk6CisgICAgICAgICAgICBuX2xvdyA9IGNoaWxkLmxvd2VyKCkKKyAgICAgICAgICAgIGlmIChu
X2xvdyBpbiBuYW1lLmV4YWN0X21hdGNoZXMKKyAgICAgICAgICAgICAgICAgICAgb3Igbl9sb3cu
cmVwbGFjZSgnLicsICdfJykuc3RhcnRzd2l0aChuYW1lLnByZWZpeCkKKyAgICAgICAgICAgICAg
ICAgICAgYW5kIG5fbG93LmVuZHN3aXRoKG5hbWUuc3VmZml4ZXMpCisgICAgICAgICAgICAgICAg
ICAgICMgbGVnYWN5IGNhc2U6CisgICAgICAgICAgICAgICAgICAgIG9yIHNlbGYuaXNfZWdnKG5h
bWUpIGFuZCBuX2xvdyA9PSAnZWdnLWluZm8nKToKKyAgICAgICAgICAgICAgICB5aWVsZCBzZWxm
LmpvaW5wYXRoKGNoaWxkKQorCisKK2NsYXNzIFByZXBhcmVkOgorICAgICIiIgorICAgIEEgcHJl
cGFyZWQgc2VhcmNoIGZvciBtZXRhZGF0YSBvbiBhIHBvc3NpYmx5LW5hbWVkIHBhY2thZ2UuCisg
ICAgIiIiCisgICAgbm9ybWFsaXplZCA9ICcnCisgICAgcHJlZml4ID0gJycKKyAgICBzdWZmaXhl
cyA9ICcuZGlzdC1pbmZvJywgJy5lZ2ctaW5mbycKKyAgICBleGFjdF9tYXRjaGVzID0gWycnXVs6
MF0KKyAgICB2ZXJzaW9ubGVzc19lZ2dfbmFtZSA9ICcnCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbmFtZSk6CisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgaWYgbmFtZSBpcyBO
b25lOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNlbGYubm9ybWFsaXplZCA9IHNlbGYu
bm9ybWFsaXplKG5hbWUpCisgICAgICAgIHNlbGYucHJlZml4ID0gc2VsZi5ub3JtYWxpemVkICsg
Jy0nCisgICAgICAgIHNlbGYuZXhhY3RfbWF0Y2hlcyA9IFsKKyAgICAgICAgICAgIHNlbGYubm9y
bWFsaXplZCArIHN1ZmZpeCBmb3Igc3VmZml4IGluIHNlbGYuc3VmZml4ZXNdCisgICAgICAgIHNl
bGYudmVyc2lvbmxlc3NfZWdnX25hbWUgPSBzZWxmLm5vcm1hbGl6ZWQgKyAnLmVnZycKKworICAg
IEBzdGF0aWNtZXRob2QKKyAgICBkZWYgbm9ybWFsaXplKG5hbWUpOgorICAgICAgICAiIiIKKyAg
ICAgICAgUEVQIDUwMyBub3JtYWxpemF0aW9uIHBsdXMgZGFzaGVzIGFzIHVuZGVyc2NvcmVzLgor
ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHJlLnN1YihyIlstXy5dKyIsICItIiwgbmFtZSku
bG93ZXIoKS5yZXBsYWNlKCctJywgJ18nKQorCisKK0BpbnN0YWxsCitjbGFzcyBNZXRhZGF0YVBh
dGhGaW5kZXIoTnVsbEZpbmRlciwgRGlzdHJpYnV0aW9uRmluZGVyKToKKyAgICAiIiJBIGRlZ2Vu
ZXJhdGUgZmluZGVyIGZvciBkaXN0cmlidXRpb24gcGFja2FnZXMgb24gdGhlIGZpbGUgc3lzdGVt
LgorCisgICAgVGhpcyBmaW5kZXIgc3VwcGxpZXMgb25seSBhIGZpbmRfZGlzdHJpYnV0aW9ucygp
IG1ldGhvZCBmb3IgdmVyc2lvbnMKKyAgICBvZiBQeXRob24gdGhhdCBkbyBub3QgaGF2ZSBhIFBh
dGhGaW5kZXIgZmluZF9kaXN0cmlidXRpb25zKCkuCisgICAgIiIiCisKKyAgICBkZWYgZmluZF9k
aXN0cmlidXRpb25zKHNlbGYsIGNvbnRleHQ9RGlzdHJpYnV0aW9uRmluZGVyLkNvbnRleHQoKSk6
CisgICAgICAgICIiIgorICAgICAgICBGaW5kIGRpc3RyaWJ1dGlvbnMuCisKKyAgICAgICAgUmV0
dXJuIGFuIGl0ZXJhYmxlIG9mIGFsbCBEaXN0cmlidXRpb24gaW5zdGFuY2VzIGNhcGFibGUgb2YK
KyAgICAgICAgbG9hZGluZyB0aGUgbWV0YWRhdGEgZm9yIHBhY2thZ2VzIG1hdGNoaW5nIGBgY29u
dGV4dC5uYW1lYGAKKyAgICAgICAgKG9yIGFsbCBuYW1lcyBpZiBgYE5vbmVgYCBpbmRpY2F0ZWQp
IGFsb25nIHRoZSBwYXRocyBpbiB0aGUgbGlzdAorICAgICAgICBvZiBkaXJlY3RvcmllcyBgYGNv
bnRleHQucGF0aGBgLgorICAgICAgICAiIiIKKyAgICAgICAgZm91bmQgPSBzZWxmLl9zZWFyY2hf
cGF0aHMoY29udGV4dC5uYW1lLCBjb250ZXh0LnBhdGgpCisgICAgICAgIHJldHVybiBtYXAoUGF0
aERpc3RyaWJ1dGlvbiwgZm91bmQpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3NlYXJj
aF9wYXRocyhjbHMsIG5hbWUsIHBhdGhzKToKKyAgICAgICAgIiIiRmluZCBtZXRhZGF0YSBkaXJl
Y3RvcmllcyBpbiBwYXRocyBoZXVyaXN0aWNhbGx5LiIiIgorICAgICAgICByZXR1cm4gaXRlcnRv
b2xzLmNoYWluLmZyb21faXRlcmFibGUoCisgICAgICAgICAgICBwYXRoLnNlYXJjaChQcmVwYXJl
ZChuYW1lKSkKKyAgICAgICAgICAgIGZvciBwYXRoIGluIG1hcChGYXN0UGF0aCwgcGF0aHMpCisg
ICAgICAgICAgICApCisKKworY2xhc3MgUGF0aERpc3RyaWJ1dGlvbihEaXN0cmlidXRpb24pOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGEgZGlz
dHJpYnV0aW9uIGZyb20gYSBwYXRoIHRvIHRoZSBtZXRhZGF0YSBkaXJlY3RvcnkuCisKKyAgICAg
ICAgOnBhcmFtIHBhdGg6IEEgcGF0aGxpYi5QYXRoIG9yIHNpbWlsYXIgb2JqZWN0IHN1cHBvcnRp
bmcKKyAgICAgICAgICAgICAgICAgICAgIC5qb2lucGF0aCgpLCBfX2Rpdl9fLCAucGFyZW50LCBh
bmQgLnJlYWRfdGV4dCgpLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fcGF0aCA9IHBhdGgK
KworICAgIGRlZiByZWFkX3RleHQoc2VsZiwgZmlsZW5hbWUpOgorICAgICAgICB3aXRoIHN1cHBy
ZXNzKEZpbGVOb3RGb3VuZEVycm9yLCBJc0FEaXJlY3RvcnlFcnJvciwgS2V5RXJyb3IsCisgICAg
ICAgICAgICAgICAgICAgICAgTm90QURpcmVjdG9yeUVycm9yLCBQZXJtaXNzaW9uRXJyb3IpOgor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGguam9pbnBhdGgoZmlsZW5hbWUpLnJlYWRfdGV4
dChlbmNvZGluZz0ndXRmLTgnKQorICAgIHJlYWRfdGV4dC5fX2RvY19fID0gRGlzdHJpYnV0aW9u
LnJlYWRfdGV4dC5fX2RvY19fCisKKyAgICBkZWYgbG9jYXRlX2ZpbGUoc2VsZiwgcGF0aCk6Cisg
ICAgICAgIHJldHVybiBzZWxmLl9wYXRoLnBhcmVudCAvIHBhdGgKKworCitkZWYgZGlzdHJpYnV0
aW9uKGRpc3RyaWJ1dGlvbl9uYW1lKToKKyAgICAiIiJHZXQgdGhlIGBgRGlzdHJpYnV0aW9uYGAg
aW5zdGFuY2UgZm9yIHRoZSBuYW1lZCBwYWNrYWdlLgorCisgICAgOnBhcmFtIGRpc3RyaWJ1dGlv
bl9uYW1lOiBUaGUgbmFtZSBvZiB0aGUgZGlzdHJpYnV0aW9uIHBhY2thZ2UgYXMgYSBzdHJpbmcu
CisgICAgOnJldHVybjogQSBgYERpc3RyaWJ1dGlvbmBgIGluc3RhbmNlIChvciBzdWJjbGFzcyB0
aGVyZW9mKS4KKyAgICAiIiIKKyAgICByZXR1cm4gRGlzdHJpYnV0aW9uLmZyb21fbmFtZShkaXN0
cmlidXRpb25fbmFtZSkKKworCitkZWYgZGlzdHJpYnV0aW9ucygqKmt3YXJncyk6CisgICAgIiIi
R2V0IGFsbCBgYERpc3RyaWJ1dGlvbmBgIGluc3RhbmNlcyBpbiB0aGUgY3VycmVudCBlbnZpcm9u
bWVudC4KKworICAgIDpyZXR1cm46IEFuIGl0ZXJhYmxlIG9mIGBgRGlzdHJpYnV0aW9uYGAgaW5z
dGFuY2VzLgorICAgICIiIgorICAgIHJldHVybiBEaXN0cmlidXRpb24uZGlzY292ZXIoKiprd2Fy
Z3MpCisKKworZGVmIG1ldGFkYXRhKGRpc3RyaWJ1dGlvbl9uYW1lKToKKyAgICAiIiJHZXQgdGhl
IG1ldGFkYXRhIGZvciB0aGUgbmFtZWQgcGFja2FnZS4KKworICAgIDpwYXJhbSBkaXN0cmlidXRp
b25fbmFtZTogVGhlIG5hbWUgb2YgdGhlIGRpc3RyaWJ1dGlvbiBwYWNrYWdlIHRvIHF1ZXJ5Lgor
ICAgIDpyZXR1cm46IEFuIGVtYWlsLk1lc3NhZ2UgY29udGFpbmluZyB0aGUgcGFyc2VkIG1ldGFk
YXRhLgorICAgICIiIgorICAgIHJldHVybiBEaXN0cmlidXRpb24uZnJvbV9uYW1lKGRpc3RyaWJ1
dGlvbl9uYW1lKS5tZXRhZGF0YQorCisKK2RlZiB2ZXJzaW9uKGRpc3RyaWJ1dGlvbl9uYW1lKToK
KyAgICAiIiJHZXQgdGhlIHZlcnNpb24gc3RyaW5nIGZvciB0aGUgbmFtZWQgcGFja2FnZS4KKwor
ICAgIDpwYXJhbSBkaXN0cmlidXRpb25fbmFtZTogVGhlIG5hbWUgb2YgdGhlIGRpc3RyaWJ1dGlv
biBwYWNrYWdlIHRvIHF1ZXJ5LgorICAgIDpyZXR1cm46IFRoZSB2ZXJzaW9uIHN0cmluZyBmb3Ig
dGhlIHBhY2thZ2UgYXMgZGVmaW5lZCBpbiB0aGUgcGFja2FnZSdzCisgICAgICAgICJWZXJzaW9u
IiBtZXRhZGF0YSBrZXkuCisgICAgIiIiCisgICAgcmV0dXJuIGRpc3RyaWJ1dGlvbihkaXN0cmli
dXRpb25fbmFtZSkudmVyc2lvbgorCisKK2RlZiBlbnRyeV9wb2ludHMoKToKKyAgICAiIiJSZXR1
cm4gRW50cnlQb2ludCBvYmplY3RzIGZvciBhbGwgaW5zdGFsbGVkIHBhY2thZ2VzLgorCisgICAg
OnJldHVybjogRW50cnlQb2ludCBvYmplY3RzIGZvciBhbGwgaW5zdGFsbGVkIHBhY2thZ2VzLgor
ICAgICIiIgorICAgIGVwcyA9IGl0ZXJ0b29scy5jaGFpbi5mcm9tX2l0ZXJhYmxlKAorICAgICAg
ICBkaXN0LmVudHJ5X3BvaW50cyBmb3IgZGlzdCBpbiBkaXN0cmlidXRpb25zKCkpCisgICAgYnlf
Z3JvdXAgPSBvcGVyYXRvci5hdHRyZ2V0dGVyKCdncm91cCcpCisgICAgb3JkZXJlZCA9IHNvcnRl
ZChlcHMsIGtleT1ieV9ncm91cCkKKyAgICBncm91cGVkID0gaXRlcnRvb2xzLmdyb3VwYnkob3Jk
ZXJlZCwgYnlfZ3JvdXApCisgICAgcmV0dXJuIHsKKyAgICAgICAgZ3JvdXA6IHR1cGxlKGVwcykK
KyAgICAgICAgZm9yIGdyb3VwLCBlcHMgaW4gZ3JvdXBlZAorICAgICAgICB9CisKKworZGVmIGZp
bGVzKGRpc3RyaWJ1dGlvbl9uYW1lKToKKyAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGZpbGVzIGZv
ciB0aGUgbmFtZWQgcGFja2FnZS4KKworICAgIDpwYXJhbSBkaXN0cmlidXRpb25fbmFtZTogVGhl
IG5hbWUgb2YgdGhlIGRpc3RyaWJ1dGlvbiBwYWNrYWdlIHRvIHF1ZXJ5LgorICAgIDpyZXR1cm46
IExpc3Qgb2YgZmlsZXMgY29tcG9zaW5nIHRoZSBkaXN0cmlidXRpb24uCisgICAgIiIiCisgICAg
cmV0dXJuIGRpc3RyaWJ1dGlvbihkaXN0cmlidXRpb25fbmFtZSkuZmlsZXMKKworCitkZWYgcmVx
dWlyZXMoZGlzdHJpYnV0aW9uX25hbWUpOgorICAgICIiIgorICAgIFJldHVybiBhIGxpc3Qgb2Yg
cmVxdWlyZW1lbnRzIGZvciB0aGUgbmFtZWQgcGFja2FnZS4KKworICAgIDpyZXR1cm46IEFuIGl0
ZXJhdG9yIG9mIHJlcXVpcmVtZW50cywgc3VpdGFibGUgZm9yCisgICAgcGFja2FnaW5nLnJlcXVp
cmVtZW50LlJlcXVpcmVtZW50LgorICAgICIiIgorICAgIHJldHVybiBkaXN0cmlidXRpb24oZGlz
dHJpYnV0aW9uX25hbWUpLnJlcXVpcmVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRh
ZGF0YS9pbXBvcnRsaWJfbWV0YWRhdGEvX2NvbXBhdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFk
YXRhL2ltcG9ydGxpYl9tZXRhZGF0YS9fY29tcGF0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwM2Q0YTIyZTg1
MWY4Njc3NDFiOTM5NThlYzAzNWE5MDc3MTc3NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS9pbXBvcnRsaWJfbWV0YWRhdGEvX2NvbXBhdC5weQpAQCAtMCwwICsx
LDE1MiBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIHVuaWNvZGVf
bGl0ZXJhbHMKKworaW1wb3J0IGlvCitpbXBvcnQgYWJjCitpbXBvcnQgc3lzCitpbXBvcnQgZW1h
aWwKKworCitpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsKTogICMgcHJhZ21hOiBub2NvdmVyCisg
ICAgaW1wb3J0IGJ1aWx0aW5zCisgICAgZnJvbSBjb25maWdwYXJzZXIgaW1wb3J0IENvbmZpZ1Bh
cnNlcgorICAgIGltcG9ydCBjb250ZXh0bGliCisgICAgRmlsZU5vdEZvdW5kRXJyb3IgPSBidWls
dGlucy5GaWxlTm90Rm91bmRFcnJvcgorICAgIElzQURpcmVjdG9yeUVycm9yID0gYnVpbHRpbnMu
SXNBRGlyZWN0b3J5RXJyb3IKKyAgICBOb3RBRGlyZWN0b3J5RXJyb3IgPSBidWlsdGlucy5Ob3RB
RGlyZWN0b3J5RXJyb3IKKyAgICBQZXJtaXNzaW9uRXJyb3IgPSBidWlsdGlucy5QZXJtaXNzaW9u
RXJyb3IKKyAgICBtYXAgPSBidWlsdGlucy5tYXAKKyAgICBmcm9tIGl0ZXJ0b29scyBpbXBvcnQg
ZmlsdGVyZmFsc2UKK2Vsc2U6ICAjIHByYWdtYTogbm9jb3ZlcgorICAgIGZyb20gYmFja3BvcnRz
LmNvbmZpZ3BhcnNlciBpbXBvcnQgQ29uZmlnUGFyc2VyCisgICAgZnJvbSBpdGVydG9vbHMgaW1w
b3J0IGltYXAgYXMgbWFwICAjIHR5cGU6IGlnbm9yZQorICAgIGZyb20gaXRlcnRvb2xzIGltcG9y
dCBpZmlsdGVyZmFsc2UgYXMgZmlsdGVyZmFsc2UKKyAgICBpbXBvcnQgY29udGV4dGxpYjIgYXMg
Y29udGV4dGxpYgorICAgIEZpbGVOb3RGb3VuZEVycm9yID0gSU9FcnJvciwgT1NFcnJvcgorICAg
IElzQURpcmVjdG9yeUVycm9yID0gSU9FcnJvciwgT1NFcnJvcgorICAgIE5vdEFEaXJlY3RvcnlF
cnJvciA9IElPRXJyb3IsIE9TRXJyb3IKKyAgICBQZXJtaXNzaW9uRXJyb3IgPSBJT0Vycm9yLCBP
U0Vycm9yCisKK3N0ciA9IHR5cGUoJycpCisKK3N1cHByZXNzID0gY29udGV4dGxpYi5zdXBwcmVz
cworCitpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDUpOiAgIyBwcmFnbWE6IG5vY292ZXIKKyAg
ICBpbXBvcnQgcGF0aGxpYgorZWxzZTogICMgcHJhZ21hOiBub2NvdmVyCisgICAgaW1wb3J0IHBh
dGhsaWIyIGFzIHBhdGhsaWIKKwordHJ5OgorICAgIE1vZHVsZU5vdEZvdW5kRXJyb3IgPSBidWls
dGlucy5GaWxlTm90Rm91bmRFcnJvcgorZXhjZXB0IChOYW1lRXJyb3IsIEF0dHJpYnV0ZUVycm9y
KTogICMgcHJhZ21hOiBub2NvdmVyCisgICAgTW9kdWxlTm90Rm91bmRFcnJvciA9IEltcG9ydEVy
cm9yICAjIHR5cGU6IGlnbm9yZQorCisKK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKTogICMg
cHJhZ21hOiBub2NvdmVyCisgICAgZnJvbSBpbXBvcnRsaWIuYWJjIGltcG9ydCBNZXRhUGF0aEZp
bmRlcgorZWxzZTogICMgcHJhZ21hOiBub2NvdmVyCisgICAgY2xhc3MgTWV0YVBhdGhGaW5kZXIo
b2JqZWN0KToKKyAgICAgICAgX19tZXRhY2xhc3NfXyA9IGFiYy5BQkNNZXRhCisKKworX19tZXRh
Y2xhc3NfXyA9IHR5cGUKK19fYWxsX18gPSBbCisgICAgJ2luc3RhbGwnLCAnTnVsbEZpbmRlcics
ICdNZXRhUGF0aEZpbmRlcicsICdNb2R1bGVOb3RGb3VuZEVycm9yJywKKyAgICAncGF0aGxpYics
ICdDb25maWdQYXJzZXInLCAnbWFwJywgJ3N1cHByZXNzJywgJ0ZpbGVOb3RGb3VuZEVycm9yJywK
KyAgICAnTm90QURpcmVjdG9yeUVycm9yJywgJ2VtYWlsX21lc3NhZ2VfZnJvbV9zdHJpbmcnLAor
ICAgIF0KKworCitkZWYgaW5zdGFsbChjbHMpOgorICAgICIiIgorICAgIENsYXNzIGRlY29yYXRv
ciBmb3IgaW5zdGFsbGF0aW9uIG9uIHN5cy5tZXRhX3BhdGguCisKKyAgICBBZGRzIHRoZSBiYWNr
cG9ydCBEaXN0cmlidXRpb25GaW5kZXIgdG8gc3lzLm1ldGFfcGF0aCBhbmQKKyAgICBhdHRlbXB0
cyB0byBkaXNhYmxlIHRoZSBmaW5kZXIgZnVuY3Rpb25hbGl0eSBvZiB0aGUgc3RkbGliCisgICAg
RGlzdHJpYnV0aW9uRmluZGVyLgorICAgICIiIgorICAgIHN5cy5tZXRhX3BhdGguYXBwZW5kKGNs
cygpKQorICAgIGRpc2FibGVfc3RkbGliX2ZpbmRlcigpCisgICAgcmV0dXJuIGNscworCisKK2Rl
ZiBkaXNhYmxlX3N0ZGxpYl9maW5kZXIoKToKKyAgICAiIiIKKyAgICBHaXZlIHRoZSBiYWNrcG9y
dCBwcmltYWN5IGZvciBkaXNjb3ZlcmluZyBwYXRoLWJhc2VkIGRpc3RyaWJ1dGlvbnMKKyAgICBi
eSBtb25rZXktcGF0Y2hpbmcgdGhlIHN0ZGxpYiBPX08uCisKKyAgICBTZWUgIzkxIGZvciBtb3Jl
IGJhY2tncm91bmQgZm9yIHJhdGlvbmFsZSBvbiB0aGlzIHNrZXRjaHkKKyAgICBiZWhhdmlvci4K
KyAgICAiIiIKKyAgICBkZWYgbWF0Y2hlcyhmaW5kZXIpOgorICAgICAgICByZXR1cm4gKAorICAg
ICAgICAgICAgZ2V0YXR0cihmaW5kZXIsICdfX21vZHVsZV9fJywgTm9uZSkgPT0gJ19mcm96ZW5f
aW1wb3J0bGliX2V4dGVybmFsJworICAgICAgICAgICAgYW5kIGhhc2F0dHIoZmluZGVyLCAnZmlu
ZF9kaXN0cmlidXRpb25zJykKKyAgICAgICAgICAgICkKKyAgICBmb3IgZmluZGVyIGluIGZpbHRl
cihtYXRjaGVzLCBzeXMubWV0YV9wYXRoKTogICMgcHJhZ21hOiBub2NvdmVyCisgICAgICAgIGRl
bCBmaW5kZXIuZmluZF9kaXN0cmlidXRpb25zCisKKworY2xhc3MgTnVsbEZpbmRlcjoKKyAgICAi
IiIKKyAgICBBICJGaW5kZXIiIChha2EgIk1ldGFDbGFzc0ZpbmRlciIpIHRoYXQgbmV2ZXIgZmlu
ZHMgYW55IG1vZHVsZXMsCisgICAgYnV0IG1heSBmaW5kIGRpc3RyaWJ1dGlvbnMuCisgICAgIiIi
CisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBmaW5kX3NwZWMoKmFyZ3MsICoqa3dhcmdzKToK
KyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMgSW4gUHl0aG9uIDIsIHRoZSBpbXBvcnQgc3lz
dGVtIHJlcXVpcmVzIGZpbmRlcnMKKyAgICAjIHRvIGhhdmUgYSBmaW5kX21vZHVsZSgpIG1ldGhv
ZCwgYnV0IHRoaXMgdXNhZ2UKKyAgICAjIGlzIGRlcHJlY2F0ZWQgaW4gUHl0aG9uIDMgaW4gZmF2
b3Igb2YgZmluZF9zcGVjKCkuCisgICAgIyBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZmluZGVy
IChpLmUuIGJlaW5nIHByZXNlbnQKKyAgICAjIG9uIHN5cy5tZXRhX3BhdGggYnV0IGhhdmluZyBu
byBvdGhlciBpbXBvcnQKKyAgICAjIHN5c3RlbSBmdW5jdGlvbmFsaXR5KSwgdGhlIHR3byBtZXRo
b2RzIGFyZSBpZGVudGljYWwuCisgICAgZmluZF9tb2R1bGUgPSBmaW5kX3NwZWMKKworCitkZWYg
cHkyX21lc3NhZ2VfZnJvbV9zdHJpbmcodGV4dCk6ICAjIG5vY292ZXJweTMKKyAgICAjIFdvcmsg
YXJvdW5kIGh0dHBzOi8vYnVncy5weXRob24ub3JnL2lzc3VlMjU1NDUgd2hlcmUKKyAgICAjIGVt
YWlsLm1lc3NhZ2VfZnJvbV9zdHJpbmcgY2Fubm90IGhhbmRsZSBVbmljb2RlIG9uIFB5dGhvbiAy
LgorICAgIGlvX2J1ZmZlciA9IGlvLlN0cmluZ0lPKHRleHQpCisgICAgcmV0dXJuIGVtYWlsLm1l
c3NhZ2VfZnJvbV9maWxlKGlvX2J1ZmZlcikKKworCitlbWFpbF9tZXNzYWdlX2Zyb21fc3RyaW5n
ID0gKAorICAgIHB5Ml9tZXNzYWdlX2Zyb21fc3RyaW5nCisgICAgaWYgc3lzLnZlcnNpb25faW5m
byA8ICgzLCkgZWxzZQorICAgIGVtYWlsLm1lc3NhZ2VfZnJvbV9zdHJpbmcKKyAgICApCisKKwor
Y2xhc3MgUHlQeV9yZXByOgorICAgICIiIgorICAgIE92ZXJyaWRlIHJlcHIgZm9yIEVudHJ5UG9p
bnQgb2JqZWN0cyBvbiBQeVB5IHRvIGF2b2lkIF9faXRlcl9fIGFjY2Vzcy4KKyAgICBSZWYgIzk3
LCAjMTAyLgorICAgICIiIgorICAgIGFmZmVjdGVkID0gaGFzYXR0cihzeXMsICdweXB5X3ZlcnNp
b25faW5mbycpCisKKyAgICBkZWYgX19jb21wYXRfcmVwcl9fKHNlbGYpOiAgIyBwcmFnbWE6IG5v
Y292ZXIKKyAgICAgICAgZGVmIG1ha2VfcGFyYW0obmFtZSk6CisgICAgICAgICAgICB2YWx1ZSA9
IGdldGF0dHIoc2VsZiwgbmFtZSkKKyAgICAgICAgICAgIHJldHVybiAne25hbWV9PXt2YWx1ZSFy
fScuZm9ybWF0KCoqbG9jYWxzKCkpCisgICAgICAgIHBhcmFtcyA9ICcsICcuam9pbihtYXAobWFr
ZV9wYXJhbSwgc2VsZi5fZmllbGRzKSkKKyAgICAgICAgcmV0dXJuICdFbnRyeVBvaW50KHtwYXJh
bXN9KScuZm9ybWF0KCoqbG9jYWxzKCkpCisKKyAgICBpZiBhZmZlY3RlZDogICMgcHJhZ21hOiBu
b2NvdmVyCisgICAgICAgIF9fcmVwcl9fID0gX19jb21wYXRfcmVwcl9fCisgICAgZGVsIGFmZmVj
dGVkCisKKworIyBmcm9tIGl0ZXJ0b29scyByZWNpcGVzCitkZWYgdW5pcXVlX2V2ZXJzZWVuKGl0
ZXJhYmxlKTogICMgcHJhZ21hOiBub2NvdmVyCisgICAgIkxpc3QgdW5pcXVlIGVsZW1lbnRzLCBw
cmVzZXJ2aW5nIG9yZGVyLiBSZW1lbWJlciBhbGwgZWxlbWVudHMgZXZlciBzZWVuLiIKKyAgICBz
ZWVuID0gc2V0KCkKKyAgICBzZWVuX2FkZCA9IHNlZW4uYWRkCisKKyAgICBmb3IgZWxlbWVudCBp
biBmaWx0ZXJmYWxzZShzZWVuLl9fY29udGFpbnNfXywgaXRlcmFibGUpOgorICAgICAgICBzZWVu
X2FkZChlbGVtZW50KQorICAgICAgICB5aWVsZCBlbGVtZW50CisKKwordW5pcXVlX29yZGVyZWQg
PSAoCisgICAgdW5pcXVlX2V2ZXJzZWVuIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgNykgZWxz
ZSBkaWN0LmZyb21rZXlzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1w
b3J0bGliX21ldGFkYXRhL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEv
aW1wb3J0bGliX21ldGFkYXRhL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjMWMxOTg4MjRj
OWUwMmY2MTBkMDk3ODUyYjJiY2I0MGRkOTMzMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS9pbXBvcnRsaWJfbWV0YWRhdGEvdzNjLWltcG9ydC5sb2cKQEAgLTAs
MCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1wb3J0bGliX21l
dGFkYXRhL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1wb3J0bGliX21l
dGFkYXRhL19jb21wYXQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3By
ZXBhcmUvZXhhbXBsZS9leGFtcGxlL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRh
dGEvcHJlcGFyZS9leGFtcGxlL2V4YW1wbGUvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE3M2I3
NDMzOTQxNjljMzMwZTQ1ZmNlMWI0ZTVmZjYyNjRmOGI3MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaW1wb3J0bGliX21ldGFkYXRhL3ByZXBhcmUvZXhhbXBsZS9leGFtcGxlL19faW5pdF9fLnB5
CkBAIC0wLDAgKzEsMiBAQAorZGVmIG1haW4oKToKKyAgICByZXR1cm4gJ2V4YW1wbGUnCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9wcmVwYXJlL2V4YW1wbGUvZXhhbXBsZS93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3ByZXBhcmUvZXhhbXBsZS9l
eGFtcGxlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyMmQ5OWY2Mjg2MmJmMWMxMGJjYjA5
YjcxNGRjZGFiMDJlMWE2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRh
ZGF0YS9wcmVwYXJlL2V4YW1wbGUvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9wcmVwYXJlL2V4YW1wbGUvZXhh
bXBsZS9fX2luaXRfXy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJl
cGFyZS9leGFtcGxlL3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9l
eGFtcGxlL3NldHVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2NjNhZDM4OWEyNDNiZTJjMjRkZGNiYWEyODg4
OTIzNzViYWI3ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9w
cmVwYXJlL2V4YW1wbGUvc2V0dXAucHkKQEAgLTAsMCArMSwxMCBAQAorZnJvbSBzZXR1cHRvb2xz
IGltcG9ydCBzZXR1cAorc2V0dXAoCisgICAgbmFtZT0nZXhhbXBsZScsCisgICAgdmVyc2lvbj0n
MjEuMTInLAorICAgIGxpY2Vuc2U9J0FwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlJywKKyAgICBwYWNr
YWdlcz1bJ2V4YW1wbGUnXSwKKyAgICBlbnRyeV9wb2ludHM9eworICAgICAgICAnY29uc29sZV9z
Y3JpcHRzJzogWydleGFtcGxlID0gZXhhbXBsZTptYWluJywgJ0V4YW1wbGU9ZXhhbXBsZTptYWlu
J10sCisgICAgICAgIH0sCisgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRh
dGEvcHJlcGFyZS9leGFtcGxlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRh
dGEvcHJlcGFyZS9leGFtcGxlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjMDgzMjc0YTEz
M2UxZjRhMmJmYWIwNTQyM2ZkMmYzMWFlOWU5ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS9wcmVwYXJlL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCAr
MSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxl
L3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9weXByb2plY3Qu
dG9tbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3B5cHJvamVjdC50b21sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU1YzNhNmE0NTUyMzRkY2MzNTJiZWQ2N2RhNzFiNzJkN2EwMzcyMDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9weXByb2plY3QudG9tbApAQCAtMCwwICsxLDIg
QEAKK1tidWlsZC1zeXN0ZW1dCityZXF1aXJlcyA9IFsic2V0dXB0b29scz49MzAuMyIsICJ3aGVl
bCIsICJzZXR1cHRvb2xzX3NjbSJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0
YS9zZXR1cC5jZmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9zZXR1cC5jZmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmExMGM4ZDM1OGNhMjcyYWZjYmIyYWU3MGFjYmFlYmJhN2RhMzE2MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3NldHVwLmNmZwpAQCAtMCwwICsxLDQ3IEBA
CitbbWV0YWRhdGFdCituYW1lID0gaW1wb3J0bGliX21ldGFkYXRhCithdXRob3IgPSBKYXNvbiBS
LiBDb29tYnMKK2F1dGhvcl9lbWFpbCA9IGphcmFjb0BqYXJhY28uY29tCit1cmwgPSBodHRwOi8v
aW1wb3J0bGliLW1ldGFkYXRhLnJlYWR0aGVkb2NzLmlvLworZGVzY3JpcHRpb24gPSBSZWFkIG1l
dGFkYXRhIGZyb20gUHl0aG9uIHBhY2thZ2VzCitsb25nX2Rlc2NyaXB0aW9uID0gZmlsZTogUkVB
RE1FLnJzdAorbGljZW5zZSA9IEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlCitjbGFzc2lmaWVycyA9
CisgICAgRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDMgLSBBbHBoYQorICAgIEludGVuZGVkIEF1ZGll
bmNlIDo6IERldmVsb3BlcnMKKyAgICBMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBBcGFjaGUg
U29mdHdhcmUgTGljZW5zZQorICAgIFRvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExp
YnJhcmllcworICAgIFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzCisgICAgUHJv
Z3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIKKworW29wdGlvbnNdCitweXRob25fcmVx
dWlyZXMgPSA+PTIuNywhPTMuMC4qLCE9My4xLiosIT0zLjIuKiwhPTMuMy4qLCE9My40LioKK3Nl
dHVwX3JlcXVpcmVzID0gc2V0dXB0b29scy1zY20KK2luc3RhbGxfcmVxdWlyZXMgPQorICAgIHpp
cHA+PTAuNQorICAgIHBhdGhsaWIyOyBweXRob25fdmVyc2lvbiA8ICczJworICAgIGNvbnRleHRs
aWIyOyBweXRob25fdmVyc2lvbiA8ICczJworICAgIGNvbmZpZ3BhcnNlcj49My41OyBweXRob25f
dmVyc2lvbiA8ICczJworcGFja2FnZXMgPSBpbXBvcnRsaWJfbWV0YWRhdGEKKworW215cHldCitp
Z25vcmVfbWlzc2luZ19pbXBvcnRzID0gVHJ1ZQorIyBYWFggV2UgcmVhbGx5IHNob3VsZCB1c2Ug
dGhlIGRlZmF1bHQgYFRydWVgIHZhbHVlIGhlcmUsIGJ1dCBpdCBjYXVzZXMgdG9vCisjIG1hbnkg
d2FybmluZ3MsIHNvIGZvciBub3cganVzdCBkaXNhYmxlIGl0LiAgRS5nLiBhIHBhY2thZ2UncyBf
X3NwZWNfXyBpcworIyBkZWZpbmVkIGFzIE9wdGlvbmFsW01vZHVsZVNwZWNdIHNvIHdlIGNhbid0
IGp1c3QgYmxpbmRseSBwdWxsIGF0dHJpYnV0ZXMgb2ZmCisjIG9mIHRoYXQgYXR0cmlidXRlLiAg
VGhlIHJlYWwgZml4IGlzIHRvIGFkZCBjb25kaXRpb25hbHMgb3IgYXNzZXJ0cyBwcm92aW5nCisj
IHRoYXQgcGFja2FnZS5fX3NwZWNfXyBpcyBub3QgTm9uZS4KK3N0cmljdF9vcHRpb25hbCA9IEZh
bHNlCisKK1t3aGVlbF0KK3VuaXZlcnNhbD0xCisKK1tvcHRpb25zLmV4dHJhc19yZXF1aXJlXQor
dGVzdGluZyA9CisgICAgaW1wb3J0bGliX3Jlc291cmNlcz49MS4zOyBweXRob25fdmVyc2lvbiA8
ICIzLjkiCisgICAgcGFja2FnaW5nCisgICAgcGVwNTE3CisgICAgdW5pdHRlc3QyOyBweXRob25f
dmVyc2lvbiA8ICIzIgorZG9jcyA9CisgICAgc3BoaW54CisgICAgcnN0LmxpbmtlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvc2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9t
ZXRhZGF0YS9zZXR1cC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWQ0M2Q3YzkzYWNmODUzYTEwM2UzNTNhOTFi
Mzk3MmFhODg0ZDVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEv
c2V0dXAucHkKQEAgLTAsMCArMSwzIEBACitmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwCisK
K3NldHVwKHVzZV9zY21fdmVyc2lvbj1UcnVlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJf
bWV0YWRhdGEvdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0
cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2
ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVz
dHMvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVz
dHMvZGF0YS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL2RhdGEv
X19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYy
ZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3Rz
L2RhdGEvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQg
Zm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEv
dGVzdHMvZGF0YS9leGFtcGxlLTIxLjEyLXB5My1ub25lLWFueS53aGwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxp
Yl9tZXRhZGF0YS90ZXN0cy9kYXRhL2V4YW1wbGUtMjEuMTItcHkzLW5vbmUtYW55LndobApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NDFhYjA3ZjdhYWRkNWMzZmZlMTk5YjFlMzk3Yjg0NTA0NDQ0OTk0CkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAxNDU1CnpjbVdJV1dAWnMjVXxgXjJzSCM1aEMjODk/TEpgT1ZWUFBP
bnR3X3UqJFZ0X1lrSSY0QEVReWNURTIjQUxeYkoxWQp6ZCo7bUwzdEp1cUYqR2ZAR1U/Skg4YGlI
Xnh7bG13bmlFcDAjfUVLRmFTcVQjbVZYJSQpaipTVzFGLV9hTHxyMzgKekp3cWVDbCs1QjEtT1Jr
U2UwXlduNUp3bHM1WGFjPWphLUtlTHxuZ3I3eWEyTmE+KzItK19CZWI8KzxzPHZZMEQ8CnpKJVg/
N3p3WEdoPDhDJEleQW9KKkF9X2R+VXA7PHcpaSVRPzNPUzxvaWtiJFlzWnk3Tl9JRTFtVW42enIt
clJNNAp6V3F9ZHVjWGxxeSg9STtxS1lzSXBifSM8QUMjaW9eVmg+cXRlKVR2Kz8hPW1YUDNJVT55
Q1Nva19CLWFJSS1LdzMKelFNRE1MZ0YjcHBrSGY8flR3USYqJndLY3V5fnlqV3Q5OTxvYE9RSEZT
QnhKTmBKZVVIXzBsPTF6YlZNVz4hZ2xlCnpyI30xMnp6WVQhakxvaFlVd3AhSz5iKEJOdVI3T3dI
RlVrc3A3aHhpcUBrKGhgO15QbVhNMiN3M1heTVJQb01YYAp6PlUoRE9sU2ZRdztXQD11XmBKSjtJ
Z1VXQWZ5WV4/Y19sQGFAZGYjcmNfcWJxQl40I3plJl4wPnBGOGlfdE04fEcKek49SE1wP2BoRm1r
MkFVX0pWUTV4ZGJEbT5RelVIc2N9TEpqP3FXdFgzLTZ8STI1fHVgO3M5YipKUWtNWjdzVGhKCnpt
WmohXloxYVlne1NAOHhIb3VmRT1ySi1kVG0paHtKY2IzaUl7T0U/bCVDbUgpYTFheGFOJUEpPEM2
KT51M1EybAp6RShaJSVUeklwbGgtPWV7YnNST2RUfExIYDc0amMwRzF9ZC1pZShCZ1EpTygoYm10
UEVBaWd4ZV4zK3pEXjJaUEEKej1Lal9AbGxuSGIlcHFzPj17fmJ7SkZBPElGN3J0YHg/OTBaSzx3
cHhtKE1iWEtsJWhFSVpnTCVvNXJwalAtK0ByCnp8TXB3YV5HUiRSN2RTZkFBfiZxNnBKViNGJCo8
bU5pJD5XVS1Gc1FMcGEweig5WExubntKIStkMkgpbWkzOXRGTQp6V3d+Sj92O0RRajJXNTx9KmAz
TzR4O2dpWno0ZEk8VSgqRnI3RTEtanw5TGFoWT5CakVfbz1wb0hsOFAheHolfVIKel4yUGRVaHd4
NE95a1c3TjBATHBzUFhkYTJLQWgtI3R+dllBb24zKkdFTiU7NVh8ajVJYFBjdjRmYHhMb1NkRz5t
Cno9dHxmd3d0bjYmJjNrdHB0LT87LUp7Qk9HLUwhN3lgIXlQPStySVR8ZWY/NW8+a3JsZFokPjUm
WDU0dWg3fkVqNgp6cSFDMTYkPVMjVFY5VUE/P0Y8WXs4aU5vOTtMT1BBcmxJRjJnbFhLcyF+a147
aEgycDNnPkRwajl6WW5pMiMtPGQKeklSZjJPXm57S3VSaFM5NDE1dUpheHs+SX45Y0pWZiNzb1lA
TEsxJn5IIUItUkpzU3w3MllUeGlHbCZOTzA3TFZ5CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9kYXRhL2V4YW1wbGUtMjEu
MTItcHkzLjYuZWdnIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0YS9leGFtcGxl
LTIxLjEyLXB5My42LmVnZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZGIyOThhMTliMDlkMzYwZDE4ZjcyYTkxZTlk
ZDcwZDdkN2Y1NGVjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNDk3CnpjbVdJV1dAWnMjVXxg
XjJjO3xmRkAzbkYwa3JwOERDPWQkKnY4JWhndUJWQHl6a1l4Pmdifn44JGFUbS0hMWNTTwp6dEtO
ajlVMSEha2EwJj1zeFo8XjxVI2BPQ21YeGxsWVMkfGJyfmt8Sz97e3pHSGRyRDI/OXQ8I0MzI19v
bT07Y34KelZFMUE/PmM0ZkAja0NTKk4rPFowYF4mT19aeCleSHV8ZzxqPEQkSFduJFB+UG9wN010
dE5oLT5uN0dMNDJZZlohCnpFazV4WW8kNDNKKjN0V1k8byk7alFqUD0zWEZeVTIyY1M2bD5Hb2ch
WCtXcCQwJURMeTs3JChxNC1JbTU0YzA1RQp6Q0BEU1Yka3B0PzxNd2NHZDcrSTxwZUN6cypLMzha
PnMkUGM5VCFfezdjWGFoYD5pJj1QNHxfRitLcGY5dDVSSGEKemEkTX1zQ2R2ZClEP2MlPi0pTHtS
WXdmZ2M/YEIyY3YlM0FKaGdyblBBI1M0MD5HWGEzNndGKk45WjBJQDxNeHUlCnp7JlViOCltQFg+
dHtYN30tTk9qUHZkSGRBTmk5Z3RPRyhYM3U4aHlnJSohcVlJcSkkUDFGRyZSek4hYmNmd34tbAp6
U1ExJXhZRjxmRVdxZCg/Vz9sKGNYU2QoRV5WO1htZC1tJTQ+N0NOaShDbTkhd0FTTns/Z2BKKDRX
UztiOGBjeUYKejgtTHlydzJgfSo1elU2WERWI3hFSyRBSXVTUGE+UWxLZ2BCb1liPF45Rlc3akEl
O0NnY09TQ3ZQIWRYMldgUztUCnpWcD1NU2tFKCE0T0dAKSNnKEE9JTVFY2dGKVFaSTFmfUIrU2Ax
czdjJSMhJGN5QEU8X1B2Nzdaekd1IXt6T2R5ewp6NUpTX1ZFMFpvUXZTSXl0clImSUByYTIqe2RU
MmdTRHFkKG03aWlLbUFPP2pNIW8tNWc8aXpCUiljQU9XPkIkOV4KekJebWo3eTJmVGVpO3w2Pkok
PD89PWE9Wj42OSoxX244Qzx0el9eaUZLPlJhOXIlMFF+Rnxqc3tIaiFsc1lgKUpACnpRYzhPcS10
WXQrWDlfeWJGKHYpZT94WFhmQ2VEYlNGblFPY2cmWmstTytRajZndl4+YmRDfmtTbE9rZ2xPYGtr
Nwp6SlpmUWRWeG19bitNQFpoPUI/d3V4PWRidns+PHItTGh8ZHcxMWheISU/KndEUUBqbUBafHFa
PTs5NTZKSzxleGQKenI4SUBZPyEjKjRfRGZDRnVreCtvVWN3M1ZCX29wdkd3d19ZXmVQeEVYI2BS
NV5iWDZTPS1TYVUydCtkaiE7OzMkCnokbDgmejMlVXUma3F0YDlGdERXMm4tUiRZKmIrOW5RUndM
IVZOQHJ3UVJ0fjAtNUIpNWkha09qdk4wJTA4UWx6SQp6VXhBVl4zQG1CWFdKMjs0RUl9aHskQ2pR
RStNfEttNW9yO2d4eyhiNG05Xi19N2glOSE2YXhxKjxeWFMySGpyaXgKTkFUJDdLb2VVfj03eXpW
USUxOzBRCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxp
Yl9tZXRhZGF0YS90ZXN0cy9kYXRhL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0
YWRhdGEvdGVzdHMvZGF0YS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjFlMDUwYmNjODQ2
NzBhMGU3NTMwYjdhZjE5NzM3MTFlZTU5ZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0YS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5IEBA
CitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0Rv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBv
ZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9kYXRhL19faW5pdF9fLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0YS9leGFtcGxlLTIxLjEyLXB5My1u
b25lLWFueS53aGwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9kYXRhL2V4YW1wbGUt
MjEuMTItcHkzLjYuZWdnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0
cy9maXh0dXJlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL2ZpeHR1cmVzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkODM0YzY1ODBjM2FjZmQ0ODI2MWI0NzNlYmU4ZGNjZWI0NTQ1MDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9maXh0dXJlcy5w
eQpAQCAtMCwwICsxLDI2MyBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVy
YWxzCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0IHNodXRpbAoraW1wb3J0IHRlbXBm
aWxlCitpbXBvcnQgdGV4dHdyYXAKKworZnJvbSAucHkzOWNvbXBhdCBpbXBvcnQgRlNfTk9OQVND
SUkKKworZnJvbSBpbXBvcnRsaWJfbWV0YWRhdGEuX2NvbXBhdCBpbXBvcnQgcGF0aGxpYiwgY29u
dGV4dGxpYgorCisKK19fbWV0YWNsYXNzX18gPSB0eXBlCisKKworQGNvbnRleHRsaWIuY29udGV4
dG1hbmFnZXIKK2RlZiB0ZW1wZGlyKCk6CisgICAgdG1wZGlyID0gdGVtcGZpbGUubWtkdGVtcCgp
CisgICAgdHJ5OgorICAgICAgICB5aWVsZCBwYXRobGliLlBhdGgodG1wZGlyKQorICAgIGZpbmFs
bHk6CisgICAgICAgIHNodXRpbC5ybXRyZWUodG1wZGlyKQorCisKK0Bjb250ZXh0bGliLmNvbnRl
eHRtYW5hZ2VyCitkZWYgc2F2ZV9jd2QoKToKKyAgICBvcmlnID0gb3MuZ2V0Y3dkKCkKKyAgICB0
cnk6CisgICAgICAgIHlpZWxkCisgICAgZmluYWxseToKKyAgICAgICAgb3MuY2hkaXIob3JpZykK
KworCitAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorZGVmIHRlbXBkaXJfYXNfY3dkKCk6Cisg
ICAgd2l0aCB0ZW1wZGlyKCkgYXMgdG1wOgorICAgICAgICB3aXRoIHNhdmVfY3dkKCk6CisgICAg
ICAgICAgICBvcy5jaGRpcihzdHIodG1wKSkKKyAgICAgICAgICAgIHlpZWxkIHRtcAorCisKK0Bj
b250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCitkZWYgaW5zdGFsbF9maW5kZXIoZmluZGVyKToKKyAg
ICBzeXMubWV0YV9wYXRoLmFwcGVuZChmaW5kZXIpCisgICAgdHJ5OgorICAgICAgICB5aWVsZAor
ICAgIGZpbmFsbHk6CisgICAgICAgIHN5cy5tZXRhX3BhdGgucmVtb3ZlKGZpbmRlcikKKworCitj
bGFzcyBGaXh0dXJlczoKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZml4dHVy
ZXMgPSBjb250ZXh0bGliLkV4aXRTdGFjaygpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzZWxm
LmZpeHR1cmVzLmNsb3NlKQorCisKK2NsYXNzIFNpdGVEaXIoRml4dHVyZXMpOgorICAgIGRlZiBz
ZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoU2l0ZURpciwgc2VsZikuc2V0VXAoKQorICAgICAg
ICBzZWxmLnNpdGVfZGlyID0gc2VsZi5maXh0dXJlcy5lbnRlcl9jb250ZXh0KHRlbXBkaXIoKSkK
KworCitjbGFzcyBPblN5c1BhdGgoRml4dHVyZXMpOgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBA
Y29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorICAgIGRlZiBhZGRfc3lzX3BhdGgoZGlyKToKKyAg
ICAgICAgc3lzLnBhdGhbOjBdID0gW3N0cihkaXIpXQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICB5aWVsZAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc3lzLnBhdGgucmVtb3ZlKHN0
cihkaXIpKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihPblN5c1BhdGgs
IHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZi5maXh0dXJlcy5lbnRlcl9jb250ZXh0KHNlbGYu
YWRkX3N5c19wYXRoKHNlbGYuc2l0ZV9kaXIpKQorCisKK2NsYXNzIERpc3RJbmZvUGtnKE9uU3lz
UGF0aCwgU2l0ZURpcik6CisgICAgZmlsZXMgPSB7CisgICAgICAgICJkaXN0aW5mb19wa2ctMS4w
LjAuZGlzdC1pbmZvIjogeworICAgICAgICAgICAgIk1FVEFEQVRBIjogIiIiCisgICAgICAgICAg
ICAgICAgTmFtZTogZGlzdGluZm8tcGtnCisgICAgICAgICAgICAgICAgQXV0aG9yOiBTdGV2ZW4g
TWEKKyAgICAgICAgICAgICAgICBWZXJzaW9uOiAxLjAuMAorICAgICAgICAgICAgICAgIFJlcXVp
cmVzLURpc3Q6IHdoZWVsID49IDEuMAorICAgICAgICAgICAgICAgIFJlcXVpcmVzLURpc3Q6IHB5
dGVzdDsgZXh0cmEgPT0gJ3Rlc3QnCisgICAgICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAg
IlJFQ09SRCI6ICJtb2QucHksc2hhMjU2PWFiYywyMFxuIiwKKyAgICAgICAgICAgICJlbnRyeV9w
b2ludHMudHh0IjogIiIiCisgICAgICAgICAgICAgICAgW2VudHJpZXNdCisgICAgICAgICAgICAg
ICAgbWFpbiA9IG1vZDptYWluCisgICAgICAgICAgICAgICAgbnM6c3ViID0gbW9kOm1haW4KKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgIm1vZC5weSI6ICIiIgorICAg
ICAgICAgICAgZGVmIG1haW4oKToKKyAgICAgICAgICAgICAgICBwcmludCgiaGVsbG8gd29ybGQi
KQorICAgICAgICAgICAgIiIiLAorICAgICAgICB9CisKKyAgICBkZWYgc2V0VXAoc2VsZik6Cisg
ICAgICAgIHN1cGVyKERpc3RJbmZvUGtnLCBzZWxmKS5zZXRVcCgpCisgICAgICAgIGJ1aWxkX2Zp
bGVzKERpc3RJbmZvUGtnLmZpbGVzLCBzZWxmLnNpdGVfZGlyKQorCisKK2NsYXNzIERpc3RJbmZv
UGtnV2l0aERvdChPblN5c1BhdGgsIFNpdGVEaXIpOgorICAgIGZpbGVzID0geworICAgICAgICAi
cGtnX2RvdC0xLjAuMC5kaXN0LWluZm8iOiB7CisgICAgICAgICAgICAiTUVUQURBVEEiOiAiIiIK
KyAgICAgICAgICAgICAgICBOYW1lOiBwa2cuZG90CisgICAgICAgICAgICAgICAgVmVyc2lvbjog
MS4wLjAKKyAgICAgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICB9LAorICAgICAgICB9CisK
KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKERpc3RJbmZvUGtnV2l0aERvdCwg
c2VsZikuc2V0VXAoKQorICAgICAgICBidWlsZF9maWxlcyhEaXN0SW5mb1BrZ1dpdGhEb3QuZmls
ZXMsIHNlbGYuc2l0ZV9kaXIpCisKKworY2xhc3MgRGlzdEluZm9Qa2dXaXRoRG90TGVnYWN5KE9u
U3lzUGF0aCwgU2l0ZURpcik6CisgICAgZmlsZXMgPSB7CisgICAgICAgICJwa2cuZG90LTEuMC4w
LmRpc3QtaW5mbyI6IHsKKyAgICAgICAgICAgICJNRVRBREFUQSI6ICIiIgorICAgICAgICAgICAg
ICAgIE5hbWU6IHBrZy5kb3QKKyAgICAgICAgICAgICAgICBWZXJzaW9uOiAxLjAuMAorICAgICAg
ICAgICAgICAgICIiIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0KKworICAgIGRlZiBzZXRV
cChzZWxmKToKKyAgICAgICAgc3VwZXIoRGlzdEluZm9Qa2dXaXRoRG90TGVnYWN5LCBzZWxmKS5z
ZXRVcCgpCisgICAgICAgIGJ1aWxkX2ZpbGVzKERpc3RJbmZvUGtnV2l0aERvdExlZ2FjeS5maWxl
cywgc2VsZi5zaXRlX2RpcikKKworCitjbGFzcyBEaXN0SW5mb1BrZ09mZlBhdGgoU2l0ZURpcik6
CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihEaXN0SW5mb1BrZ09mZlBhdGgs
IHNlbGYpLnNldFVwKCkKKyAgICAgICAgYnVpbGRfZmlsZXMoRGlzdEluZm9Qa2cuZmlsZXMsIHNl
bGYuc2l0ZV9kaXIpCisKKworY2xhc3MgRWdnSW5mb1BrZyhPblN5c1BhdGgsIFNpdGVEaXIpOgor
ICAgIGZpbGVzID0geworICAgICAgICAiZWdnaW5mb19wa2cuZWdnLWluZm8iOiB7CisgICAgICAg
ICAgICAiUEtHLUlORk8iOiAiIiIKKyAgICAgICAgICAgICAgICBOYW1lOiBlZ2dpbmZvLXBrZwor
ICAgICAgICAgICAgICAgIEF1dGhvcjogU3RldmVuIE1hCisgICAgICAgICAgICAgICAgTGljZW5z
ZTogVW5rbm93bgorICAgICAgICAgICAgICAgIFZlcnNpb246IDEuMC4wCisgICAgICAgICAgICAg
ICAgQ2xhc3NpZmllcjogSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycworICAgICAgICAg
ICAgICAgIENsYXNzaWZpZXI6IFRvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJh
cmllcworICAgICAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgICJTT1VSQ0VTLnR4dCI6ICIi
IgorICAgICAgICAgICAgICAgIG1vZC5weQorICAgICAgICAgICAgICAgIGVnZ2luZm9fcGtnLmVn
Zy1pbmZvL3RvcF9sZXZlbC50eHQKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgICJlbnRy
eV9wb2ludHMudHh0IjogIiIiCisgICAgICAgICAgICAgICAgW2VudHJpZXNdCisgICAgICAgICAg
ICAgICAgbWFpbiA9IG1vZDptYWluCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAicmVx
dWlyZXMudHh0IjogIiIiCisgICAgICAgICAgICAgICAgd2hlZWwgPj0gMS4wOyBweXRob25fdmVy
c2lvbiA+PSAiMi43IgorICAgICAgICAgICAgICAgIFt0ZXN0XQorICAgICAgICAgICAgICAgIHB5
dGVzdAorICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgInRvcF9sZXZlbC50eHQiOiAibW9k
XG4iCisgICAgICAgICAgICB9LAorICAgICAgICAibW9kLnB5IjogIiIiCisgICAgICAgICAgICBk
ZWYgbWFpbigpOgorICAgICAgICAgICAgICAgIHByaW50KCJoZWxsbyB3b3JsZCIpCisgICAgICAg
ICAgICAiIiIsCisgICAgICAgIH0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3Vw
ZXIoRWdnSW5mb1BrZywgc2VsZikuc2V0VXAoKQorICAgICAgICBidWlsZF9maWxlcyhFZ2dJbmZv
UGtnLmZpbGVzLCBwcmVmaXg9c2VsZi5zaXRlX2RpcikKKworCitjbGFzcyBFZ2dJbmZvRmlsZShP
blN5c1BhdGgsIFNpdGVEaXIpOgorICAgIGZpbGVzID0geworICAgICAgICAiZWdnaW5mb19maWxl
LmVnZy1pbmZvIjogIiIiCisgICAgICAgICAgICBNZXRhZGF0YS1WZXJzaW9uOiAxLjAKKyAgICAg
ICAgICAgIE5hbWU6IGVnZ2luZm9fZmlsZQorICAgICAgICAgICAgVmVyc2lvbjogMC4xCisgICAg
ICAgICAgICBTdW1tYXJ5OiBBbiBleGFtcGxlIHBhY2thZ2UKKyAgICAgICAgICAgIEhvbWUtcGFn
ZTogd3d3LmV4YW1wbGUuY29tCisgICAgICAgICAgICBBdXRob3I6IEVyaWMgSGFmZmEtVmVlCisg
ICAgICAgICAgICBBdXRob3ItZW1haWw6IGVyaWNAZXhhbXBsZS5jb21zCisgICAgICAgICAgICBM
aWNlbnNlOiBVTktOT1dOCisgICAgICAgICAgICBEZXNjcmlwdGlvbjogVU5LTk9XTgorICAgICAg
ICAgICAgUGxhdGZvcm06IFVOS05PV04KKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgfQorCisg
ICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihFZ2dJbmZvRmlsZSwgc2VsZikuc2V0
VXAoKQorICAgICAgICBidWlsZF9maWxlcyhFZ2dJbmZvRmlsZS5maWxlcywgcHJlZml4PXNlbGYu
c2l0ZV9kaXIpCisKKworY2xhc3MgTG9jYWxQYWNrYWdlOgorICAgIGZpbGVzID0geworICAgICAg
ICAic2V0dXAucHkiOiAiIiIKKyAgICAgICAgICAgIGltcG9ydCBzZXR1cHRvb2xzCisgICAgICAg
ICAgICBzZXR1cHRvb2xzLnNldHVwKG5hbWU9ImxvY2FsLXBrZyIsIHZlcnNpb249IjIuMC4xIikK
KyAgICAgICAgICAgICIiIiwKKyAgICAgICAgfQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAg
ICAgICBzZWxmLmZpeHR1cmVzID0gY29udGV4dGxpYi5FeGl0U3RhY2soKQorICAgICAgICBzZWxm
LmFkZENsZWFudXAoc2VsZi5maXh0dXJlcy5jbG9zZSkKKyAgICAgICAgc2VsZi5maXh0dXJlcy5l
bnRlcl9jb250ZXh0KHRlbXBkaXJfYXNfY3dkKCkpCisgICAgICAgIGJ1aWxkX2ZpbGVzKHNlbGYu
ZmlsZXMpCisKKworZGVmIGJ1aWxkX2ZpbGVzKGZpbGVfZGVmcywgcHJlZml4PXBhdGhsaWIuUGF0
aCgpKToKKyAgICAiIiJCdWlsZCBhIHNldCBvZiBmaWxlcy9kaXJlY3RvcmllcywgYXMgZGVzY3Jp
YmVkIGJ5IHRoZQorCisgICAgZmlsZV9kZWZzIGRpY3Rpb25hcnkuICBFYWNoIGtleS92YWx1ZSBw
YWlyIGluIHRoZSBkaWN0aW9uYXJ5IGlzCisgICAgaW50ZXJwcmV0ZWQgYXMgYSBmaWxlbmFtZS9j
b250ZW50cyBwYWlyLiAgSWYgdGhlIGNvbnRlbnRzIHZhbHVlIGlzIGEKKyAgICBkaWN0aW9uYXJ5
LCBhIGRpcmVjdG9yeSBpcyBjcmVhdGVkLCBhbmQgdGhlIGRpY3Rpb25hcnkgaW50ZXJwcmV0ZWQK
KyAgICBhcyB0aGUgZmlsZXMgd2l0aGluIGl0LCByZWN1cnNpdmVseS4KKworICAgIEZvciBleGFt
cGxlOgorCisgICAgeyJSRUFETUUudHh0IjogIkEgUkVBRE1FIGZpbGUiLAorICAgICAiZm9vIjog
eworICAgICAgICAiX19pbml0X18ucHkiOiAiIiwKKyAgICAgICAgImJhciI6IHsKKyAgICAgICAg
ICAgICJfX2luaXRfXy5weSI6ICIiLAorICAgICAgICB9LAorICAgICAgICAiYmF6LnB5IjogIiMg
U29tZSBjb2RlIiwKKyAgICAgfQorICAgIH0KKyAgICAiIiIKKyAgICBmb3IgbmFtZSwgY29udGVu
dHMgaW4gZmlsZV9kZWZzLml0ZW1zKCk6CisgICAgICAgIGZ1bGxfbmFtZSA9IHByZWZpeCAvIG5h
bWUKKyAgICAgICAgaWYgaXNpbnN0YW5jZShjb250ZW50cywgZGljdCk6CisgICAgICAgICAgICBm
dWxsX25hbWUubWtkaXIoKQorICAgICAgICAgICAgYnVpbGRfZmlsZXMoY29udGVudHMsIHByZWZp
eD1mdWxsX25hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNv
bnRlbnRzLCBieXRlcyk6CisgICAgICAgICAgICAgICAgd2l0aCBmdWxsX25hbWUub3Blbignd2In
KSBhcyBmOgorICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGNvbnRlbnRzKQorICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICB3aXRoIGZ1bGxfbmFtZS5vcGVuKCd3JykgYXMgZjoK
KyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShEQUxTKGNvbnRlbnRzKSkKKworCitjbGFzcyBG
aWxlQnVpbGRlcjoKKyAgICBkZWYgdW5pY29kZV9maWxlbmFtZShzZWxmKToKKyAgICAgICAgcmV0
dXJuIEZTX05PTkFTQ0lJIG9yIFwKKyAgICAgICAgICAgIHNlbGYuc2tpcCgiRmlsZSBzeXN0ZW0g
ZG9lcyBub3Qgc3VwcG9ydCBub24tYXNjaWkuIikKKworCitkZWYgREFMUyhzdHIpOgorICAgICJE
ZWRlbnQgYW5kIGxlZnQtc3RyaXAiCisgICAgcmV0dXJuIHRleHR3cmFwLmRlZGVudChzdHIpLmxz
dHJpcCgpCisKKworY2xhc3MgTnVsbEZpbmRlcjoKKyAgICBkZWYgZmluZF9tb2R1bGUoc2VsZiwg
bmFtZSk6CisgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L3Rlc3RzL3B5Mzljb21wYXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9weTM5
Y29tcGF0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNzVkNGMzNTVhZjgxMzA2YzA2YTNjMDA1YjZiMmM3MDM2
YzM1OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9w
eTM5Y29tcGF0LnB5CkBAIC0wLDAgKzEsNCBAQAordHJ5OgorICAgIGZyb20gdGVzdC5zdXBwb3J0
Lm9zX2hlbHBlcnMgaW1wb3J0IEZTX05PTkFTQ0lJCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAg
ZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IEZTX05PTkFTQ0lJICAjIG5vcWEKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3Rlc3RfYXBpLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvdGVzdHMvdGVzdF9hcGkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZhOTc5OTY0MjMxNDAz
MDAxOGM5MWYyNTgzMTgxOWQxNzBlZGUzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0
bGliX21ldGFkYXRhL3Rlc3RzL3Rlc3RfYXBpLnB5CkBAIC0wLDAgKzEsMTk2IEBACitpbXBvcnQg
cmUKK2ltcG9ydCB0ZXh0d3JhcAorCit0cnk6CisgICAgaW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0
dGVzdAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCB1bml0dGVzdAorCitmcm9tIC4g
aW1wb3J0IGZpeHR1cmVzCitmcm9tIGltcG9ydGxpYl9tZXRhZGF0YSBpbXBvcnQgKAorICAgIERp
c3RyaWJ1dGlvbiwgUGFja2FnZU5vdEZvdW5kRXJyb3IsIGRpc3RyaWJ1dGlvbiwKKyAgICBlbnRy
eV9wb2ludHMsIGZpbGVzLCBtZXRhZGF0YSwgcmVxdWlyZXMsIHZlcnNpb24sCisgICAgKQorCit0
cnk6CisgICAgZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IEl0ZXJhdG9yCitleGNlcHQgSW1w
b3J0RXJyb3I6CisgICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgSXRlcmF0b3IgICMgbm9xYTog
RjQwMQorCit0cnk6CisgICAgZnJvbSBidWlsdGlucyBpbXBvcnQgc3RyIGFzIHRleHQKK2V4Y2Vw
dCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIF9fYnVpbHRpbl9fIGltcG9ydCB1bmljb2RlIGFzIHRl
eHQKKworCitjbGFzcyBBUElUZXN0cygKKyAgICAgICAgZml4dHVyZXMuRWdnSW5mb1BrZywKKyAg
ICAgICAgZml4dHVyZXMuRGlzdEluZm9Qa2csCisgICAgICAgIGZpeHR1cmVzLkRpc3RJbmZvUGtn
V2l0aERvdCwKKyAgICAgICAgZml4dHVyZXMuRWdnSW5mb0ZpbGUsCisgICAgICAgIHVuaXR0ZXN0
LlRlc3RDYXNlKToKKworICAgIHZlcnNpb25fcGF0dGVybiA9IHInXGQrXC5cZCsoXC5cZCk/Jwor
CisgICAgZGVmIHRlc3RfcmV0cmlldmVzX3ZlcnNpb25fb2Zfc2VsZihzZWxmKToKKyAgICAgICAg
cGtnX3ZlcnNpb24gPSB2ZXJzaW9uKCdlZ2dpbmZvLXBrZycpCisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKHBrZ192ZXJzaW9uLCB0ZXh0KQorICAgICAgICBhc3NlcnQgcmUubWF0Y2goc2VsZi52
ZXJzaW9uX3BhdHRlcm4sIHBrZ192ZXJzaW9uKQorCisgICAgZGVmIHRlc3RfcmV0cmlldmVzX3Zl
cnNpb25fb2ZfZGlzdGluZm9fcGtnKHNlbGYpOgorICAgICAgICBwa2dfdmVyc2lvbiA9IHZlcnNp
b24oJ2Rpc3RpbmZvLXBrZycpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHBrZ192ZXJzaW9u
LCB0ZXh0KQorICAgICAgICBhc3NlcnQgcmUubWF0Y2goc2VsZi52ZXJzaW9uX3BhdHRlcm4sIHBr
Z192ZXJzaW9uKQorCisgICAgZGVmIHRlc3RfZm9yX25hbWVfZG9lc19ub3RfZXhpc3Qoc2VsZik6
CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUGFja2FnZU5vdEZvdW5kRXJyb3IpOgor
ICAgICAgICAgICAgZGlzdHJpYnV0aW9uKCdkb2VzLW5vdC1leGlzdCcpCisKKyAgICBkZWYgdGVz
dF9uYW1lX25vcm1hbGl6YXRpb24oc2VsZik6CisgICAgICAgIG5hbWVzID0gJ3BrZy5kb3QnLCAn
cGtnX2RvdCcsICdwa2ctZG90JywgJ3BrZy4uZG90JywgJ1BrZy5Eb3QnCisgICAgICAgIGZvciBu
YW1lIGluIG5hbWVzOgorICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QobmFtZSk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IGRpc3RyaWJ1dGlvbihuYW1lKS5tZXRhZGF0YVsnTmFtZSddID09
ICdwa2cuZG90JworCisgICAgZGVmIHRlc3RfZm9yX3RvcF9sZXZlbChzZWxmKToKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGRpc3RyaWJ1dGlvbignZWdnaW5mby1wa2cn
KS5yZWFkX3RleHQoJ3RvcF9sZXZlbC50eHQnKS5zdHJpcCgpLAorICAgICAgICAgICAgJ21vZCcp
CisKKyAgICBkZWYgdGVzdF9yZWFkX3RleHQoc2VsZik6CisgICAgICAgIHRvcF9sZXZlbCA9IFsK
KyAgICAgICAgICAgIHBhdGggZm9yIHBhdGggaW4gZmlsZXMoJ2VnZ2luZm8tcGtnJykKKyAgICAg
ICAgICAgIGlmIHBhdGgubmFtZSA9PSAndG9wX2xldmVsLnR4dCcKKyAgICAgICAgICAgIF1bMF0K
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0b3BfbGV2ZWwucmVhZF90ZXh0KCksICdtb2Rcbicp
CisKKyAgICBkZWYgdGVzdF9lbnRyeV9wb2ludHMoc2VsZik6CisgICAgICAgIGVudHJpZXMgPSBk
aWN0KGVudHJ5X3BvaW50cygpWydlbnRyaWVzJ10pCisgICAgICAgIGVwID0gZW50cmllc1snbWFp
biddCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXAudmFsdWUsICdtb2Q6bWFpbicpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXAuZXh0cmFzLCBbXSkKKworICAgIGRlZiB0ZXN0X21ldGFk
YXRhX2Zvcl90aGlzX3BhY2thZ2Uoc2VsZik6CisgICAgICAgIG1kID0gbWV0YWRhdGEoJ2VnZ2lu
Zm8tcGtnJykKKyAgICAgICAgYXNzZXJ0IG1kWydhdXRob3InXSA9PSAnU3RldmVuIE1hJworICAg
ICAgICBhc3NlcnQgbWRbJ0xJQ0VOU0UnXSA9PSAnVW5rbm93bicKKyAgICAgICAgYXNzZXJ0IG1k
WydOYW1lJ10gPT0gJ2VnZ2luZm8tcGtnJworICAgICAgICBjbGFzc2lmaWVycyA9IG1kLmdldF9h
bGwoJ0NsYXNzaWZpZXInKQorICAgICAgICBhc3NlcnQgJ1RvcGljIDo6IFNvZnR3YXJlIERldmVs
b3BtZW50IDo6IExpYnJhcmllcycgaW4gY2xhc3NpZmllcnMKKworICAgIGRlZiB0ZXN0X2ltcG9y
dGxpYl9tZXRhZGF0YV92ZXJzaW9uKHNlbGYpOgorICAgICAgICByZXNvbHZlZCA9IHZlcnNpb24o
J2ltcG9ydGxpYi1tZXRhZGF0YScpCisgICAgICAgIGFzc2VydCByZS5tYXRjaChzZWxmLnZlcnNp
b25fcGF0dGVybiwgcmVzb2x2ZWQpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIF90ZXN0
X2ZpbGVzKGZpbGVzKToKKyAgICAgICAgcm9vdCA9IGZpbGVzWzBdLnJvb3QKKyAgICAgICAgZm9y
IGZpbGUgaW4gZmlsZXM6CisgICAgICAgICAgICBhc3NlcnQgZmlsZS5yb290ID09IHJvb3QKKyAg
ICAgICAgICAgIGFzc2VydCBub3QgZmlsZS5oYXNoIG9yIGZpbGUuaGFzaC52YWx1ZQorICAgICAg
ICAgICAgYXNzZXJ0IG5vdCBmaWxlLmhhc2ggb3IgZmlsZS5oYXNoLm1vZGUgPT0gJ3NoYTI1NicK
KyAgICAgICAgICAgIGFzc2VydCBub3QgZmlsZS5zaXplIG9yIGZpbGUuc2l6ZSA+PSAwCisgICAg
ICAgICAgICBhc3NlcnQgZmlsZS5sb2NhdGUoKS5leGlzdHMoKQorICAgICAgICAgICAgYXNzZXJ0
IGlzaW5zdGFuY2UoZmlsZS5yZWFkX2JpbmFyeSgpLCBieXRlcykKKyAgICAgICAgICAgIGlmIGZp
bGUubmFtZS5lbmRzd2l0aCgnLnB5Jyk6CisgICAgICAgICAgICAgICAgZmlsZS5yZWFkX3RleHQo
KQorCisgICAgZGVmIHRlc3RfZmlsZV9oYXNoX3JlcHIoc2VsZik6CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGFzc2VydFJlZ2V4ID0gc2VsZi5hc3NlcnRSZWdleAorICAgICAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAjIFB5dGhvbiAyCisgICAgICAgICAgICBhc3Nl
cnRSZWdleCA9IHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcworCisgICAgICAgIHV0aWwgPSBbCisg
ICAgICAgICAgICBwIGZvciBwIGluIGZpbGVzKCdkaXN0aW5mby1wa2cnKQorICAgICAgICAgICAg
aWYgcC5uYW1lID09ICdtb2QucHknCisgICAgICAgICAgICBdWzBdCisgICAgICAgIGFzc2VydFJl
Z2V4KAorICAgICAgICAgICAgcmVwcih1dGlsLmhhc2gpLAorICAgICAgICAgICAgJzxGaWxlSGFz
aCBtb2RlOiBzaGEyNTYgdmFsdWU6IC4qPicpCisKKyAgICBkZWYgdGVzdF9maWxlc19kaXN0X2lu
Zm8oc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZmlsZXMoZmlsZXMoJ2Rpc3RpbmZvLXBrZycp
KQorCisgICAgZGVmIHRlc3RfZmlsZXNfZWdnX2luZm8oc2VsZik6CisgICAgICAgIHNlbGYuX3Rl
c3RfZmlsZXMoZmlsZXMoJ2VnZ2luZm8tcGtnJykpCisKKyAgICBkZWYgdGVzdF92ZXJzaW9uX2Vn
Z19pbmZvX2ZpbGUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmVyc2lvbignZWdn
aW5mby1maWxlJyksICcwLjEnKQorCisgICAgZGVmIHRlc3RfcmVxdWlyZXNfZWdnX2luZm9fZmls
ZShzZWxmKToKKyAgICAgICAgcmVxdWlyZW1lbnRzID0gcmVxdWlyZXMoJ2VnZ2luZm8tZmlsZScp
CisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJlcXVpcmVtZW50cykKKworICAgIGRlZiB0ZXN0
X3JlcXVpcmVzX2VnZ19pbmZvKHNlbGYpOgorICAgICAgICBkZXBzID0gcmVxdWlyZXMoJ2VnZ2lu
Zm8tcGtnJykKKyAgICAgICAgYXNzZXJ0IGxlbihkZXBzKSA9PSAyCisgICAgICAgIGFzc2VydCBh
bnkoCisgICAgICAgICAgICBkZXAgPT0gJ3doZWVsID49IDEuMDsgcHl0aG9uX3ZlcnNpb24gPj0g
IjIuNyInCisgICAgICAgICAgICBmb3IgZGVwIGluIGRlcHMKKyAgICAgICAgICAgICkKKworICAg
IGRlZiB0ZXN0X3JlcXVpcmVzX2Rpc3RfaW5mbyhzZWxmKToKKyAgICAgICAgZGVwcyA9IHJlcXVp
cmVzKCdkaXN0aW5mby1wa2cnKQorICAgICAgICBhc3NlcnQgbGVuKGRlcHMpID09IDIKKyAgICAg
ICAgYXNzZXJ0IGFsbChkZXBzKQorICAgICAgICBhc3NlcnQgJ3doZWVsID49IDEuMCcgaW4gZGVw
cworICAgICAgICBhc3NlcnQgInB5dGVzdDsgZXh0cmEgPT0gJ3Rlc3QnIiBpbiBkZXBzCisKKyAg
ICBkZWYgdGVzdF9tb3JlX2NvbXBsZXhfZGVwc19yZXF1aXJlc190ZXh0KHNlbGYpOgorICAgICAg
ICByZXF1aXJlcyA9IHRleHR3cmFwLmRlZGVudCgiIiIKKyAgICAgICAgICAgIGRlcDEKKyAgICAg
ICAgICAgIGRlcDIKKworICAgICAgICAgICAgWzpweXRob25fdmVyc2lvbiA8ICIzIl0KKyAgICAg
ICAgICAgIGRlcDMKKworICAgICAgICAgICAgW2V4dHJhMV0KKyAgICAgICAgICAgIGRlcDQKKwor
ICAgICAgICAgICAgW2V4dHJhMjpweXRob25fdmVyc2lvbiA8ICIzIl0KKyAgICAgICAgICAgIGRl
cDUKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgZGVwcyA9IHNvcnRlZChEaXN0cmlidXRpb24u
X2RlcHNfZnJvbV9yZXF1aXJlc190ZXh0KHJlcXVpcmVzKSkKKyAgICAgICAgZXhwZWN0ZWQgPSBb
CisgICAgICAgICAgICAnZGVwMScsCisgICAgICAgICAgICAnZGVwMicsCisgICAgICAgICAgICAn
ZGVwMzsgcHl0aG9uX3ZlcnNpb24gPCAiMyInLAorICAgICAgICAgICAgJ2RlcDQ7IGV4dHJhID09
ICJleHRyYTEiJywKKyAgICAgICAgICAgICdkZXA1OyAocHl0aG9uX3ZlcnNpb24gPCAiMyIpIGFu
ZCBleHRyYSA9PSAiZXh0cmEyIicsCisgICAgICAgICAgICBdCisgICAgICAgICMgSXQncyBpbXBv
cnRhbnQgdGhhdCB0aGUgZW52aXJvbm1lbnQgbWFya2VyIGV4cHJlc3Npb24gYmUKKyAgICAgICAg
IyB3cmFwcGVkIGluIHBhcmVudGhlc2VzIHRvIGF2b2lkIHRoZSBmb2xsb3dpbmcgJ2FuZCcgYmlu
ZGluZyBtb3JlCisgICAgICAgICMgdGlnaHRseSB0aGFuIHNvbWUgb3RoZXIgcGFydCBvZiB0aGUg
ZW52aXJvbm1lbnQgZXhwcmVzc2lvbi4KKworICAgICAgICBhc3NlcnQgZGVwcyA9PSBleHBlY3Rl
ZAorCisKK2NsYXNzIExlZ2FjeURvdHMoZml4dHVyZXMuRGlzdEluZm9Qa2dXaXRoRG90TGVnYWN5
LCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfbmFtZV9ub3JtYWxpemF0aW9uKHNl
bGYpOgorICAgICAgICBuYW1lcyA9ICdwa2cuZG90JywgJ3BrZ19kb3QnLCAncGtnLWRvdCcsICdw
a2cuLmRvdCcsICdQa2cuRG90JworICAgICAgICBmb3IgbmFtZSBpbiBuYW1lczoKKyAgICAgICAg
ICAgIHdpdGggc2VsZi5zdWJUZXN0KG5hbWUpOgorICAgICAgICAgICAgICAgIGFzc2VydCBkaXN0
cmlidXRpb24obmFtZSkubWV0YWRhdGFbJ05hbWUnXSA9PSAncGtnLmRvdCcKKworCitjbGFzcyBP
ZmZTeXNQYXRoVGVzdHMoZml4dHVyZXMuRGlzdEluZm9Qa2dPZmZQYXRoLCB1bml0dGVzdC5UZXN0
Q2FzZSk6CisgICAgZGVmIHRlc3RfZmluZF9kaXN0cmlidXRpb25zX3NwZWNpZmllZF9wYXRoKHNl
bGYpOgorICAgICAgICBkaXN0cyA9IERpc3RyaWJ1dGlvbi5kaXNjb3ZlcihwYXRoPVtzdHIoc2Vs
Zi5zaXRlX2RpcildKQorICAgICAgICBhc3NlcnQgYW55KAorICAgICAgICAgICAgZGlzdC5tZXRh
ZGF0YVsnTmFtZSddID09ICdkaXN0aW5mby1wa2cnCisgICAgICAgICAgICBmb3IgZGlzdCBpbiBk
aXN0cworICAgICAgICAgICAgKQorCisgICAgZGVmIHRlc3RfZGlzdHJpYnV0aW9uX2F0X3BhdGhs
aWIoc2VsZik6CisgICAgICAgICIiIkRlbW9uc3RyYXRlIGhvdyB0byBsb2FkIG1ldGFkYXRhIGRp
cmVjdCBmcm9tIGEgZGlyZWN0b3J5LgorICAgICAgICAiIiIKKyAgICAgICAgZGlzdF9pbmZvX3Bh
dGggPSBzZWxmLnNpdGVfZGlyIC8gJ2Rpc3RpbmZvX3BrZy0xLjAuMC5kaXN0LWluZm8nCisgICAg
ICAgIGRpc3QgPSBEaXN0cmlidXRpb24uYXQoZGlzdF9pbmZvX3BhdGgpCisgICAgICAgIGFzc2Vy
dCBkaXN0LnZlcnNpb24gPT0gJzEuMC4wJworCisgICAgZGVmIHRlc3RfZGlzdHJpYnV0aW9uX2F0
X3N0cihzZWxmKToKKyAgICAgICAgZGlzdF9pbmZvX3BhdGggPSBzZWxmLnNpdGVfZGlyIC8gJ2Rp
c3RpbmZvX3BrZy0xLjAuMC5kaXN0LWluZm8nCisgICAgICAgIGRpc3QgPSBEaXN0cmlidXRpb24u
YXQoc3RyKGRpc3RfaW5mb19wYXRoKSkKKyAgICAgICAgYXNzZXJ0IGRpc3QudmVyc2lvbiA9PSAn
MS4wLjAnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X2lu
dGVncmF0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvdGVzdF9pbnRlZ3Jh
dGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNzc1NzRjNDQ4ZjFiOGZmN2EyMDJkOGVjNWQ1YmZkMDZmY2I1
N2JjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvdGVz
dF9pbnRlZ3JhdGlvbi5weQpAQCAtMCwwICsxLDU0IEBACisjIGNvZGluZzogdXRmLTgKKworZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCisKK2ltcG9ydCB1bml0dGVzdAor
aW1wb3J0IHBhY2thZ2luZy5yZXF1aXJlbWVudHMKK2ltcG9ydCBwYWNrYWdpbmcudmVyc2lvbgor
Citmcm9tIC4gaW1wb3J0IGZpeHR1cmVzCitmcm9tIGltcG9ydGxpYl9tZXRhZGF0YSBpbXBvcnQg
KAorICAgIERpc3RyaWJ1dGlvbiwKKyAgICBfY29tcGF0LAorICAgIHZlcnNpb24sCisgICAgKQor
CisKK2NsYXNzIEludGVncmF0aW9uVGVzdHMoZml4dHVyZXMuRGlzdEluZm9Qa2csIHVuaXR0ZXN0
LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X3BhY2thZ2Vfc3BlY19pbnN0YWxsZWQoc2VsZik6
CisgICAgICAgICIiIgorICAgICAgICBJbGx1c3RyYXRlIHRoZSByZWNvbW1lbmRlZCBwcm9jZWR1
cmUgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEgc3BlY2lmaWVkIHZlcnNpb24gb2YgYSBwYWNr
YWdlIGlzIGluc3RhbGxlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGRlZiBpc19pbnN0YWxsZWQo
cGFja2FnZV9zcGVjKToKKyAgICAgICAgICAgIHJlcSA9IHBhY2thZ2luZy5yZXF1aXJlbWVudHMu
UmVxdWlyZW1lbnQocGFja2FnZV9zcGVjKQorICAgICAgICAgICAgcmV0dXJuIHZlcnNpb24ocmVx
Lm5hbWUpIGluIHJlcS5zcGVjaWZpZXIKKworICAgICAgICBhc3NlcnQgaXNfaW5zdGFsbGVkKCdk
aXN0aW5mby1wa2c9PTEuMCcpCisgICAgICAgIGFzc2VydCBpc19pbnN0YWxsZWQoJ2Rpc3RpbmZv
LXBrZz49MS4wLDwyLjAnKQorICAgICAgICBhc3NlcnQgbm90IGlzX2luc3RhbGxlZCgnZGlzdGlu
Zm8tcGtnPDEuMCcpCisKKworY2xhc3MgRmluZGVyVGVzdHMoZml4dHVyZXMuRml4dHVyZXMsIHVu
aXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2ZpbmRlcl93aXRob3V0X21vZHVsZShz
ZWxmKToKKyAgICAgICAgY2xhc3MgTW9kdWxlRnJlZUZpbmRlcihmaXh0dXJlcy5OdWxsRmluZGVy
KToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgQSBmaW5kZXIgd2l0aG91dCBhbiBfX21v
ZHVsZV9fIGF0dHJpYnV0ZQorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYgX19nZXRh
dHRyaWJ1dGVfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgICAgICAgICBpZiBuYW1lID09ICdfX21v
ZHVsZV9fJzoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5fX2dldGF0dHJpYnV0ZV9fKG5hbWUpCisK
KyAgICAgICAgc2VsZi5maXh0dXJlcy5lbnRlcl9jb250ZXh0KAorICAgICAgICAgICAgZml4dHVy
ZXMuaW5zdGFsbF9maW5kZXIoTW9kdWxlRnJlZUZpbmRlcigpKSkKKyAgICAgICAgX2NvbXBhdC5k
aXNhYmxlX3N0ZGxpYl9maW5kZXIoKQorCisKK2NsYXNzIExvY2FsUHJvamVjdFRlc3RzKGZpeHR1
cmVzLkxvY2FsUGFja2FnZSwgdW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2ZpbmRf
bG9jYWwoc2VsZik6CisgICAgICAgIGRpc3QgPSBEaXN0cmlidXRpb24uX2xvY2FsKCkKKyAgICAg
ICAgYXNzZXJ0IGRpc3QubWV0YWRhdGFbJ05hbWUnXSA9PSAnbG9jYWwtcGtnJworICAgICAgICBh
c3NlcnQgZGlzdC52ZXJzaW9uID09ICcyLjAuMScKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGli
X21ldGFkYXRhL3Rlc3RzL3Rlc3RfbWFpbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rl
c3RzL3Rlc3RfbWFpbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDc3NTBiYzMwMTY2NDBlMjEzM2M0N2MwN2Qw
ZDA2NDY2MzcyNDg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEv
dGVzdHMvdGVzdF9tYWluLnB5CkBAIC0wLDAgKzEsMjg1IEBACisjIGNvZGluZzogdXRmLTgKK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworCitpbXBvcnQgcmUKK2ltcG9y
dCBqc29uCitpbXBvcnQgcGlja2xlCitpbXBvcnQgdGV4dHdyYXAKK2ltcG9ydCB1bml0dGVzdAor
aW1wb3J0IGltcG9ydGxpYgoraW1wb3J0IGltcG9ydGxpYl9tZXRhZGF0YQoraW1wb3J0IHB5ZmFr
ZWZzLmZha2VfZmlsZXN5c3RlbV91bml0dGVzdCBhcyBmZnMKKworZnJvbSAuIGltcG9ydCBmaXh0
dXJlcworZnJvbSBpbXBvcnRsaWJfbWV0YWRhdGEgaW1wb3J0ICgKKyAgICBEaXN0cmlidXRpb24s
IEVudHJ5UG9pbnQsIE1ldGFkYXRhUGF0aEZpbmRlciwKKyAgICBQYWNrYWdlTm90Rm91bmRFcnJv
ciwgZGlzdHJpYnV0aW9ucywKKyAgICBlbnRyeV9wb2ludHMsIG1ldGFkYXRhLCB2ZXJzaW9uLAor
ICAgICkKKwordHJ5OgorICAgIGZyb20gYnVpbHRpbnMgaW1wb3J0IHN0ciBhcyB0ZXh0CitleGNl
cHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBfX2J1aWx0aW5fXyBpbXBvcnQgdW5pY29kZSBhcyB0
ZXh0CisKKworY2xhc3MgQmFzaWNUZXN0cyhmaXh0dXJlcy5EaXN0SW5mb1BrZywgdW5pdHRlc3Qu
VGVzdENhc2UpOgorICAgIHZlcnNpb25fcGF0dGVybiA9IHInXGQrXC5cZCsoXC5cZCk/JworCisg
ICAgZGVmIHRlc3RfcmV0cmlldmVzX3ZlcnNpb25fb2Zfc2VsZihzZWxmKToKKyAgICAgICAgZGlz
dCA9IERpc3RyaWJ1dGlvbi5mcm9tX25hbWUoJ2Rpc3RpbmZvLXBrZycpCisgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGRpc3QudmVyc2lvbiwgdGV4dCkKKyAgICAgICAgYXNzZXJ0IHJlLm1hdGNo
KHNlbGYudmVyc2lvbl9wYXR0ZXJuLCBkaXN0LnZlcnNpb24pCisKKyAgICBkZWYgdGVzdF9mb3Jf
bmFtZV9kb2VzX25vdF9leGlzdChzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhQYWNrYWdlTm90Rm91bmRFcnJvcik6CisgICAgICAgICAgICBEaXN0cmlidXRpb24uZnJvbV9u
YW1lKCdkb2VzLW5vdC1leGlzdCcpCisKKyAgICBkZWYgdGVzdF9wYWNrYWdlX25vdF9mb3VuZF9t
ZW50aW9uc19tZXRhZGF0YShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gYSBwYWNr
YWdlIGlzIG5vdCBmb3VuZCwgdGhhdCBjb3VsZCBpbmRpY2F0ZSB0aGF0IHRoZQorICAgICAgICBw
YWNrZ2FlIGlzIG5vdCBpbnN0YWxsZWQgb3IgdGhhdCBpdCBpcyBpbnN0YWxsZWQgd2l0aG91dAor
ICAgICAgICBtZXRhZGF0YS4gRW5zdXJlIHRoZSBleGNlcHRpb24gbWVudGlvbnMgbWV0YWRhdGEg
dG8gaGVscAorICAgICAgICBndWlkZSB1c2VycyB0b3dhcmQgdGhlIGNhdXNlLiBTZWUgIzEyNC4K
KyAgICAgICAgIiIiCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUGFja2FnZU5vdEZv
dW5kRXJyb3IpIGFzIGN0eDoKKyAgICAgICAgICAgIERpc3RyaWJ1dGlvbi5mcm9tX25hbWUoJ2Rv
ZXMtbm90LWV4aXN0JykKKworICAgICAgICBhc3NlcnQgIm1ldGFkYXRhIiBpbiBzdHIoY3R4LmV4
Y2VwdGlvbikKKworICAgIGRlZiB0ZXN0X25ld19zdHlsZV9jbGFzc2VzKHNlbGYpOgorICAgICAg
ICBzZWxmLmFzc2VydElzSW5zdGFuY2UoRGlzdHJpYnV0aW9uLCB0eXBlKQorICAgICAgICBzZWxm
LmFzc2VydElzSW5zdGFuY2UoTWV0YWRhdGFQYXRoRmluZGVyLCB0eXBlKQorCisKK2NsYXNzIElt
cG9ydFRlc3RzKGZpeHR1cmVzLkRpc3RJbmZvUGtnLCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
ZGVmIHRlc3RfaW1wb3J0X25vbmV4aXN0ZW50X21vZHVsZShzZWxmKToKKyAgICAgICAgIyBFbnN1
cmUgdGhhdCB0aGUgTWV0YWRhdGFQYXRoRmluZGVyIGRvZXMgbm90IGNyYXNoIGFuIGltcG9ydCBv
ZiBhCisgICAgICAgICMgbm9uLWV4aXN0ZW50IG1vZHVsZS4KKyAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgICAgICBpbXBvcnRsaWIuaW1wb3J0X21v
ZHVsZSgnZG9lc19ub3RfZXhpc3QnKQorCisgICAgZGVmIHRlc3RfcmVzb2x2ZShzZWxmKToKKyAg
ICAgICAgZW50cmllcyA9IGRpY3QoZW50cnlfcG9pbnRzKClbJ2VudHJpZXMnXSkKKyAgICAgICAg
ZXAgPSBlbnRyaWVzWydtYWluJ10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcC5sb2FkKCku
X19uYW1lX18sICJtYWluIikKKworICAgIGRlZiB0ZXN0X2VudHJ5cG9pbnRfd2l0aF9jb2xvbl9p
bl9uYW1lKHNlbGYpOgorICAgICAgICBlbnRyaWVzID0gZGljdChlbnRyeV9wb2ludHMoKVsnZW50
cmllcyddKQorICAgICAgICBlcCA9IGVudHJpZXNbJ25zOnN1YiddCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZXAudmFsdWUsICdtb2Q6bWFpbicpCisKKyAgICBkZWYgdGVzdF9yZXNvbHZlX3dp
dGhvdXRfYXR0cihzZWxmKToKKyAgICAgICAgZXAgPSBFbnRyeVBvaW50KAorICAgICAgICAgICAg
bmFtZT0nZXAnLAorICAgICAgICAgICAgdmFsdWU9J2ltcG9ydGxpYl9tZXRhZGF0YScsCisgICAg
ICAgICAgICBncm91cD0nZ3JwJywKKyAgICAgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IGVwLmxv
YWQoKSBpcyBpbXBvcnRsaWJfbWV0YWRhdGEKKworCitjbGFzcyBOYW1lTm9ybWFsaXphdGlvblRl
c3RzKAorICAgICAgICBmaXh0dXJlcy5PblN5c1BhdGgsIGZpeHR1cmVzLlNpdGVEaXIsIHVuaXR0
ZXN0LlRlc3RDYXNlKToKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBrZ193aXRoX2Rhc2hl
cyhzaXRlX2Rpcik6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGUgbWluaW1hbCBtZXRhZGF0
YSBmb3IgYSBwYWNrYWdlIHdpdGggZGFzaGVzCisgICAgICAgIGluIHRoZSBuYW1lIChhbmQgdGh1
cyB1bmRlcnNjb3JlcyBpbiB0aGUgZmlsZW5hbWUpLgorICAgICAgICAiIiIKKyAgICAgICAgbWV0
YWRhdGFfZGlyID0gc2l0ZV9kaXIgLyAnbXlfcGtnLmRpc3QtaW5mbycKKyAgICAgICAgbWV0YWRh
dGFfZGlyLm1rZGlyKCkKKyAgICAgICAgbWV0YWRhdGEgPSBtZXRhZGF0YV9kaXIgLyAnTUVUQURB
VEEnCisgICAgICAgIHdpdGggbWV0YWRhdGEub3BlbigndycpIGFzIHN0cm06CisgICAgICAgICAg
ICBzdHJtLndyaXRlKCdWZXJzaW9uOiAxLjBcbicpCisgICAgICAgIHJldHVybiAnbXktcGtnJwor
CisgICAgZGVmIHRlc3RfZGFzaGVzX2luX2Rpc3RfbmFtZV9mb3VuZF9hc191bmRlcnNjb3Jlcyhz
ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEZvciBhIHBhY2thZ2Ugd2l0aCBhIGRhc2ggaW4g
dGhlIG5hbWUsIHRoZSBkaXN0LWluZm8gbWV0YWRhdGEKKyAgICAgICAgdXNlcyB1bmRlcnNjb3Jl
cyBpbiB0aGUgbmFtZS4gRW5zdXJlIHRoZSBtZXRhZGF0YSBsb2Fkcy4KKyAgICAgICAgIiIiCisg
ICAgICAgIHBrZ19uYW1lID0gc2VsZi5wa2dfd2l0aF9kYXNoZXMoc2VsZi5zaXRlX2RpcikKKyAg
ICAgICAgYXNzZXJ0IHZlcnNpb24ocGtnX25hbWUpID09ICcxLjAnCisKKyAgICBAc3RhdGljbWV0
aG9kCisgICAgZGVmIHBrZ193aXRoX21peGVkX2Nhc2Uoc2l0ZV9kaXIpOgorICAgICAgICAiIiIK
KyAgICAgICAgQ3JlYXRlIG1pbmltYWwgbWV0YWRhdGEgZm9yIGEgcGFja2FnZSB3aXRoIG1peGVk
IGNhc2UKKyAgICAgICAgaW4gdGhlIG5hbWUuCisgICAgICAgICIiIgorICAgICAgICBtZXRhZGF0
YV9kaXIgPSBzaXRlX2RpciAvICdDaGVycnlQeS5kaXN0LWluZm8nCisgICAgICAgIG1ldGFkYXRh
X2Rpci5ta2RpcigpCisgICAgICAgIG1ldGFkYXRhID0gbWV0YWRhdGFfZGlyIC8gJ01FVEFEQVRB
JworICAgICAgICB3aXRoIG1ldGFkYXRhLm9wZW4oJ3cnKSBhcyBzdHJtOgorICAgICAgICAgICAg
c3RybS53cml0ZSgnVmVyc2lvbjogMS4wXG4nKQorICAgICAgICByZXR1cm4gJ0NoZXJyeVB5Jwor
CisgICAgZGVmIHRlc3RfZGlzdF9uYW1lX2ZvdW5kX2FzX2FueV9jYXNlKHNlbGYpOgorICAgICAg
ICAiIiIKKyAgICAgICAgRW5zdXJlIHRoZSBtZXRhZGF0YSBsb2FkcyB3aGVuIHF1ZXJpZWQgd2l0
aCBhbnkgY2FzZS4KKyAgICAgICAgIiIiCisgICAgICAgIHBrZ19uYW1lID0gc2VsZi5wa2dfd2l0
aF9taXhlZF9jYXNlKHNlbGYuc2l0ZV9kaXIpCisgICAgICAgIGFzc2VydCB2ZXJzaW9uKHBrZ19u
YW1lKSA9PSAnMS4wJworICAgICAgICBhc3NlcnQgdmVyc2lvbihwa2dfbmFtZS5sb3dlcigpKSA9
PSAnMS4wJworICAgICAgICBhc3NlcnQgdmVyc2lvbihwa2dfbmFtZS51cHBlcigpKSA9PSAnMS4w
JworCisKK2NsYXNzIE5vbkFTQ0lJVGVzdHMoZml4dHVyZXMuT25TeXNQYXRoLCBmaXh0dXJlcy5T
aXRlRGlyLCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBw
a2dfd2l0aF9ub25fYXNjaWlfZGVzY3JpcHRpb24oc2l0ZV9kaXIpOgorICAgICAgICAiIiIKKyAg
ICAgICAgQ3JlYXRlIG1pbmltYWwgbWV0YWRhdGEgZm9yIGEgcGFja2FnZSB3aXRoIG5vbi1BU0NJ
SSBpbgorICAgICAgICB0aGUgZGVzY3JpcHRpb24uCisgICAgICAgICIiIgorICAgICAgICBtZXRh
ZGF0YV9kaXIgPSBzaXRlX2RpciAvICdwb3J0ZW5kLmRpc3QtaW5mbycKKyAgICAgICAgbWV0YWRh
dGFfZGlyLm1rZGlyKCkKKyAgICAgICAgbWV0YWRhdGEgPSBtZXRhZGF0YV9kaXIgLyAnTUVUQURB
VEEnCisgICAgICAgIHdpdGggbWV0YWRhdGEub3BlbigndycsIGVuY29kaW5nPSd1dGYtOCcpIGFz
IGZwOgorICAgICAgICAgICAgZnAud3JpdGUoJ0Rlc2NyaXB0aW9uOiBww7Ryy4h0ZW5kXG4nKQor
ICAgICAgICByZXR1cm4gJ3BvcnRlbmQnCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBr
Z193aXRoX25vbl9hc2NpaV9kZXNjcmlwdGlvbl9lZ2dfaW5mbyhzaXRlX2Rpcik6CisgICAgICAg
ICIiIgorICAgICAgICBDcmVhdGUgbWluaW1hbCBtZXRhZGF0YSBmb3IgYW4gZWdnLWluZm8gcGFj
a2FnZSB3aXRoCisgICAgICAgIG5vbi1BU0NJSSBpbiB0aGUgZGVzY3JpcHRpb24uCisgICAgICAg
ICIiIgorICAgICAgICBtZXRhZGF0YV9kaXIgPSBzaXRlX2RpciAvICdwb3J0ZW5kLmRpc3QtaW5m
bycKKyAgICAgICAgbWV0YWRhdGFfZGlyLm1rZGlyKCkKKyAgICAgICAgbWV0YWRhdGEgPSBtZXRh
ZGF0YV9kaXIgLyAnTUVUQURBVEEnCisgICAgICAgIHdpdGggbWV0YWRhdGEub3BlbigndycsIGVu
Y29kaW5nPSd1dGYtOCcpIGFzIGZwOgorICAgICAgICAgICAgZnAud3JpdGUodGV4dHdyYXAuZGVk
ZW50KCIiIgorICAgICAgICAgICAgICAgIE5hbWU6IHBvcnRlbmQKKworICAgICAgICAgICAgICAg
IHDDtHLLiHRlbmQKKyAgICAgICAgICAgICAgICAiIiIpLmxzdHJpcCgpKQorICAgICAgICByZXR1
cm4gJ3BvcnRlbmQnCisKKyAgICBkZWYgdGVzdF9tZXRhZGF0YV9sb2FkcyhzZWxmKToKKyAgICAg
ICAgcGtnX25hbWUgPSBzZWxmLnBrZ193aXRoX25vbl9hc2NpaV9kZXNjcmlwdGlvbihzZWxmLnNp
dGVfZGlyKQorICAgICAgICBtZXRhID0gbWV0YWRhdGEocGtnX25hbWUpCisgICAgICAgIGFzc2Vy
dCBtZXRhWydEZXNjcmlwdGlvbiddID09ICdww7Ryy4h0ZW5kJworCisgICAgZGVmIHRlc3RfbWV0
YWRhdGFfbG9hZHNfZWdnX2luZm8oc2VsZik6CisgICAgICAgIHBrZ19uYW1lID0gc2VsZi5wa2df
d2l0aF9ub25fYXNjaWlfZGVzY3JpcHRpb25fZWdnX2luZm8oc2VsZi5zaXRlX2RpcikKKyAgICAg
ICAgbWV0YSA9IG1ldGFkYXRhKHBrZ19uYW1lKQorICAgICAgICBhc3NlcnQgbWV0YS5nZXRfcGF5
bG9hZCgpID09ICdww7Ryy4h0ZW5kXG4nCisKKworY2xhc3MgRGlzY292ZXJ5VGVzdHMoZml4dHVy
ZXMuRWdnSW5mb1BrZywKKyAgICAgICAgICAgICAgICAgICAgIGZpeHR1cmVzLkRpc3RJbmZvUGtn
LAorICAgICAgICAgICAgICAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRl
c3RfcGFja2FnZV9kaXNjb3Zlcnkoc2VsZik6CisgICAgICAgIGRpc3RzID0gbGlzdChkaXN0cmli
dXRpb25zKCkpCisgICAgICAgIGFzc2VydCBhbGwoCisgICAgICAgICAgICBpc2luc3RhbmNlKGRp
c3QsIERpc3RyaWJ1dGlvbikKKyAgICAgICAgICAgIGZvciBkaXN0IGluIGRpc3RzCisgICAgICAg
ICAgICApCisgICAgICAgIGFzc2VydCBhbnkoCisgICAgICAgICAgICBkaXN0Lm1ldGFkYXRhWydO
YW1lJ10gPT0gJ2VnZ2luZm8tcGtnJworICAgICAgICAgICAgZm9yIGRpc3QgaW4gZGlzdHMKKyAg
ICAgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IGFueSgKKyAgICAgICAgICAgIGRpc3QubWV0YWRh
dGFbJ05hbWUnXSA9PSAnZGlzdGluZm8tcGtnJworICAgICAgICAgICAgZm9yIGRpc3QgaW4gZGlz
dHMKKyAgICAgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfdXNhZ2Uoc2VsZik6Cisg
ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBs
aXN0KGRpc3RyaWJ1dGlvbnMoY29udGV4dD0nc29tZXRoaW5nJywgbmFtZT0nZWxzZScpKQorCisK
K2NsYXNzIERpcmVjdG9yeVRlc3QoZml4dHVyZXMuT25TeXNQYXRoLCBmaXh0dXJlcy5TaXRlRGly
LCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfZWdnX2luZm8oc2VsZik6CisgICAg
ICAgICMgbWFrZSBhbiBgRUdHLUlORk9gIGRpcmVjdG9yeSB0aGF0J3MgdW5yZWxhdGVkCisgICAg
ICAgIHNlbGYuc2l0ZV9kaXIuam9pbnBhdGgoJ0VHRy1JTkZPJykubWtkaXIoKQorICAgICAgICAj
IHVzZWQgdG8gY3Jhc2ggd2l0aCBgSXNBRGlyZWN0b3J5RXJyb3JgCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoUGFja2FnZU5vdEZvdW5kRXJyb3IpOgorICAgICAgICAgICAgdmVyc2lv
bigndW5rbm93bi1wYWNrYWdlJykKKworICAgIGRlZiB0ZXN0X2VnZyhzZWxmKToKKyAgICAgICAg
ZWdnID0gc2VsZi5zaXRlX2Rpci5qb2lucGF0aCgnZm9vLTMuNi5lZ2cnKQorICAgICAgICBlZ2cu
bWtkaXIoKQorICAgICAgICB3aXRoIHNlbGYuYWRkX3N5c19wYXRoKGVnZyk6CisgICAgICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFBhY2thZ2VOb3RGb3VuZEVycm9yKToKKyAgICAgICAg
ICAgICAgICB2ZXJzaW9uKCdmb28nKQorCisKK2NsYXNzIE1pc3NpbmdTeXNQYXRoKGZpeHR1cmVz
Lk9uU3lzUGF0aCwgdW5pdHRlc3QuVGVzdENhc2UpOgorICAgIHNpdGVfZGlyID0gJy9kb2VzLW5v
dC1leGlzdCcKKworICAgIGRlZiB0ZXN0X2Rpc2NvdmVyeShzZWxmKToKKyAgICAgICAgIiIiCisg
ICAgICAgIERpc2NvdmVyaW5nIGRpc3RyaWJ1dGlvbnMgc2hvdWxkIHN1Y2NlZWQgZXZlbiBpZgor
ICAgICAgICB0aGVyZSBpcyBhbiBpbnZhbGlkIHBhdGggb24gc3lzLnBhdGguCisgICAgICAgICIi
IgorICAgICAgICBpbXBvcnRsaWJfbWV0YWRhdGEuZGlzdHJpYnV0aW9ucygpCisKKworY2xhc3Mg
SW5hY2Nlc3NpYmxlU3lzUGF0aChmaXh0dXJlcy5PblN5c1BhdGgsIGZmcy5UZXN0Q2FzZSk6Cisg
ICAgc2l0ZV9kaXIgPSAnL2FjY2Vzcy1kZW5pZWQnCisKKyAgICBkZWYgc2V0VXAoc2VsZik6Cisg
ICAgICAgIHN1cGVyKEluYWNjZXNzaWJsZVN5c1BhdGgsIHNlbGYpLnNldFVwKCkKKyAgICAgICAg
c2VsZi5zZXRVcFB5ZmFrZWZzKCkKKyAgICAgICAgc2VsZi5mcy5jcmVhdGVfZGlyKHNlbGYuc2l0
ZV9kaXIsIHBlcm1fYml0cz0wMDApCisKKyAgICBkZWYgdGVzdF9kaXNjb3Zlcnkoc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICBEaXNjb3ZlcmluZyBkaXN0cmlidXRpb25zIHNob3VsZCBzdWNj
ZWVkIGV2ZW4gaWYKKyAgICAgICAgdGhlcmUgaXMgYW4gaW52YWxpZCBwYXRoIG9uIHN5cy5wYXRo
LgorICAgICAgICAiIiIKKyAgICAgICAgbGlzdChpbXBvcnRsaWJfbWV0YWRhdGEuZGlzdHJpYnV0
aW9ucygpKQorCisKK2NsYXNzIFRlc3RFbnRyeVBvaW50cyh1bml0dGVzdC5UZXN0Q2FzZSk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgc3VwZXIoVGVzdEVudHJ5UG9p
bnRzLCBzZWxmKS5fX2luaXRfXygqYXJncykKKyAgICAgICAgc2VsZi5lcCA9IGltcG9ydGxpYl9t
ZXRhZGF0YS5FbnRyeVBvaW50KCduYW1lJywgJ3ZhbHVlJywgJ2dyb3VwJykKKworICAgIGRlZiB0
ZXN0X2VudHJ5X3BvaW50X3BpY2tsZWFibGUoc2VsZik6CisgICAgICAgIHJldml2ZWQgPSBwaWNr
bGUubG9hZHMocGlja2xlLmR1bXBzKHNlbGYuZXApKQorICAgICAgICBhc3NlcnQgcmV2aXZlZCA9
PSBzZWxmLmVwCisKKyAgICBkZWYgdGVzdF9pbW11dGFibGUoc2VsZik6CisgICAgICAgICIiIkVu
dHJ5UG9pbnRzIHNob3VsZCBiZSBpbW11dGFibGUiIiIKKyAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBzZWxmLmVwLm5hbWUgPSAnYmFk
YWN0b3InCisKKyAgICBkZWYgdGVzdF9yZXByKHNlbGYpOgorICAgICAgICBhc3NlcnQgJ0VudHJ5
UG9pbnQnIGluIHJlcHIoc2VsZi5lcCkKKyAgICAgICAgYXNzZXJ0ICduYW1lPScgaW4gcmVwcihz
ZWxmLmVwKQorICAgICAgICBhc3NlcnQgIiduYW1lJyIgaW4gcmVwcihzZWxmLmVwKQorCisgICAg
ZGVmIHRlc3RfaGFzaGFibGUoc2VsZik6CisgICAgICAgICIiIkVudHJ5UG9pbnRzIHNob3VsZCBi
ZSBoYXNoYWJsZSIiIgorICAgICAgICBoYXNoKHNlbGYuZXApCisKKyAgICBkZWYgdGVzdF9qc29u
X2R1bXAoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBqc29uIHNob3VsZCBub3QgZXhwZWN0
IHRvIGJlIGFibGUgdG8gZHVtcCBhbiBFbnRyeVBvaW50CisgICAgICAgICIiIgorICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbik6CisgICAgICAgICAgICBqc29uLmR1bXBz
KHNlbGYuZXApCisKKyAgICBkZWYgdGVzdF9tb2R1bGUoc2VsZik6CisgICAgICAgIGFzc2VydCBz
ZWxmLmVwLm1vZHVsZSA9PSAndmFsdWUnCisKKyAgICBkZWYgdGVzdF9hdHRyKHNlbGYpOgorICAg
ICAgICBhc3NlcnQgc2VsZi5lcC5hdHRyIGlzIE5vbmUKKworCitjbGFzcyBGaWxlU3lzdGVtKAor
ICAgICAgICBmaXh0dXJlcy5PblN5c1BhdGgsIGZpeHR1cmVzLlNpdGVEaXIsIGZpeHR1cmVzLkZp
bGVCdWlsZGVyLAorICAgICAgICB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfdW5p
Y29kZV9kaXJfb25fc3lzX3BhdGgoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBFbnN1cmUg
YSBVbmljb2RlIHN1YmRpcmVjdG9yeSBvZiBhIGRpcmVjdG9yeSBvbiBzeXMucGF0aAorICAgICAg
ICBkb2VzIG5vdCBjcmFzaC4KKyAgICAgICAgIiIiCisgICAgICAgIGZpeHR1cmVzLmJ1aWxkX2Zp
bGVzKAorICAgICAgICAgICAge3NlbGYudW5pY29kZV9maWxlbmFtZSgpOiB7fX0sCisgICAgICAg
ICAgICBwcmVmaXg9c2VsZi5zaXRlX2RpciwKKyAgICAgICAgICAgICkKKyAgICAgICAgbGlzdChk
aXN0cmlidXRpb25zKCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0
cy90ZXN0X3ppcC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3Rlc3RfemlwLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVjZWJjZDAyZjdhNDgzNzI4NDlkNWQ1OTE4YWNhNGM1MjcwZGNkYmEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X3ppcC5w
eQpAQCAtMCwwICsxLDgwIEBACitpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSBp
bXBvcnRsaWJfbWV0YWRhdGEgaW1wb3J0ICgKKyAgICBkaXN0cmlidXRpb24sIGVudHJ5X3BvaW50
cywgZmlsZXMsIFBhY2thZ2VOb3RGb3VuZEVycm9yLAorICAgIHZlcnNpb24sIGRpc3RyaWJ1dGlv
bnMsCisgICAgKQorCit0cnk6CisgICAgZnJvbSBpbXBvcnRsaWIgaW1wb3J0IHJlc291cmNlcwor
ICAgIGdldGF0dHIocmVzb3VyY2VzLCAnZmlsZXMnKQorICAgIGdldGF0dHIocmVzb3VyY2VzLCAn
YXNfZmlsZScpCitleGNlcHQgKEltcG9ydEVycm9yLCBBdHRyaWJ1dGVFcnJvcik6CisgICAgaW1w
b3J0IGltcG9ydGxpYl9yZXNvdXJjZXMgYXMgcmVzb3VyY2VzCisKK3RyeToKKyAgICBmcm9tIGNv
bnRleHRsaWIgaW1wb3J0IEV4aXRTdGFjaworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGZyb20g
Y29udGV4dGxpYjIgaW1wb3J0IEV4aXRTdGFjaworCisKK2NsYXNzIFRlc3RaaXAodW5pdHRlc3Qu
VGVzdENhc2UpOgorICAgIHJvb3QgPSAndGVzdHMuZGF0YScKKworICAgIGRlZiBfZml4dHVyZV9v
bl9wYXRoKHNlbGYsIGZpbGVuYW1lKToKKyAgICAgICAgcGtnX2ZpbGUgPSByZXNvdXJjZXMuZmls
ZXMoc2VsZi5yb290KS5qb2lucGF0aChmaWxlbmFtZSkKKyAgICAgICAgZmlsZSA9IHNlbGYucmVz
b3VyY2VzLmVudGVyX2NvbnRleHQocmVzb3VyY2VzLmFzX2ZpbGUocGtnX2ZpbGUpKQorICAgICAg
ICBhc3NlcnQgZmlsZS5uYW1lLnN0YXJ0c3dpdGgoJ2V4YW1wbGUtJyksIGZpbGUubmFtZQorICAg
ICAgICBzeXMucGF0aC5pbnNlcnQoMCwgc3RyKGZpbGUpKQorICAgICAgICBzZWxmLnJlc291cmNl
cy5jYWxsYmFjayhzeXMucGF0aC5wb3AsIDApCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg
ICAgICMgRmluZCB0aGUgcGF0aCB0byB0aGUgZXhhbXBsZS0qLndobCBzbyB3ZSBjYW4gYWRkIGl0
IHRvIHRoZSBmcm9udCBvZgorICAgICAgICAjIHN5cy5wYXRoLCB3aGVyZSB3ZSdsbCB0aGVuIHRy
eSB0byBmaW5kIHRoZSBtZXRhZGF0YSB0aGVyZW9mLgorICAgICAgICBzZWxmLnJlc291cmNlcyA9
IEV4aXRTdGFjaygpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzZWxmLnJlc291cmNlcy5jbG9z
ZSkKKyAgICAgICAgc2VsZi5fZml4dHVyZV9vbl9wYXRoKCdleGFtcGxlLTIxLjEyLXB5My1ub25l
LWFueS53aGwnKQorCisgICAgZGVmIHRlc3RfemlwX3ZlcnNpb24oc2VsZik6CisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodmVyc2lvbignZXhhbXBsZScpLCAnMjEuMTInKQorCisgICAgZGVmIHRl
c3RfemlwX3ZlcnNpb25fZG9lc19ub3RfbWF0Y2goc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXMoUGFja2FnZU5vdEZvdW5kRXJyb3IpOgorICAgICAgICAgICAgdmVyc2lvbign
ZGVmaW5pdGVseS1ub3QtaW5zdGFsbGVkJykKKworICAgIGRlZiB0ZXN0X3ppcF9lbnRyeV9wb2lu
dHMoc2VsZik6CisgICAgICAgIHNjcmlwdHMgPSBkaWN0KGVudHJ5X3BvaW50cygpWydjb25zb2xl
X3NjcmlwdHMnXSkKKyAgICAgICAgZW50cnlfcG9pbnQgPSBzY3JpcHRzWydleGFtcGxlJ10KKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbnRyeV9wb2ludC52YWx1ZSwgJ2V4YW1wbGU6bWFpbicp
CisgICAgICAgIGVudHJ5X3BvaW50ID0gc2NyaXB0c1snRXhhbXBsZSddCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZW50cnlfcG9pbnQudmFsdWUsICdleGFtcGxlOm1haW4nKQorCisgICAgZGVm
IHRlc3RfbWlzc2luZ19tZXRhZGF0YShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUo
ZGlzdHJpYnV0aW9uKCdleGFtcGxlJykucmVhZF90ZXh0KCdkb2VzIG5vdCBleGlzdCcpKQorCisg
ICAgZGVmIHRlc3RfY2FzZV9pbnNlbnNpdGl2ZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh2ZXJzaW9uKCdFeGFtcGxlJyksICcyMS4xMicpCisKKyAgICBkZWYgdGVzdF9maWxlcyhz
ZWxmKToKKyAgICAgICAgZm9yIGZpbGUgaW4gZmlsZXMoJ2V4YW1wbGUnKToKKyAgICAgICAgICAg
IHBhdGggPSBzdHIoZmlsZS5kaXN0LmxvY2F0ZV9maWxlKGZpbGUpKQorICAgICAgICAgICAgYXNz
ZXJ0ICcud2hsLycgaW4gcGF0aCwgcGF0aAorCisgICAgZGVmIHRlc3Rfb25lX2Rpc3RyaWJ1dGlv
bihzZWxmKToKKyAgICAgICAgZGlzdHMgPSBsaXN0KGRpc3RyaWJ1dGlvbnMocGF0aD1zeXMucGF0
aFs6MV0pKQorICAgICAgICBhc3NlcnQgbGVuKGRpc3RzKSA9PSAxCisKKworY2xhc3MgVGVzdEVn
ZyhUZXN0WmlwKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgICMgRmluZCB0aGUgcGF0
aCB0byB0aGUgZXhhbXBsZS0qLmVnZyBzbyB3ZSBjYW4gYWRkIGl0IHRvIHRoZSBmcm9udCBvZgor
ICAgICAgICAjIHN5cy5wYXRoLCB3aGVyZSB3ZSdsbCB0aGVuIHRyeSB0byBmaW5kIHRoZSBtZXRh
ZGF0YSB0aGVyZW9mLgorICAgICAgICBzZWxmLnJlc291cmNlcyA9IEV4aXRTdGFjaygpCisgICAg
ICAgIHNlbGYuYWRkQ2xlYW51cChzZWxmLnJlc291cmNlcy5jbG9zZSkKKyAgICAgICAgc2VsZi5f
Zml4dHVyZV9vbl9wYXRoKCdleGFtcGxlLTIxLjEyLXB5My42LmVnZycpCisKKyAgICBkZWYgdGVz
dF9maWxlcyhzZWxmKToKKyAgICAgICAgZm9yIGZpbGUgaW4gZmlsZXMoJ2V4YW1wbGUnKToKKyAg
ICAgICAgICAgIHBhdGggPSBzdHIoZmlsZS5kaXN0LmxvY2F0ZV9maWxlKGZpbGUpKQorICAgICAg
ICAgICAgYXNzZXJ0ICcuZWdnLycgaW4gcGF0aCwgcGF0aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRh
ZGF0YS90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzM3YzQ5YWI1NmIzYzU5MTYw
YWZmYWZhMDg5NGJkNWVjNGRkNTllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJf
bWV0YWRhdGEvdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMyBAQAorVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
CitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxp
Yl9tZXRhZGF0YS90ZXN0cy9maXh0dXJlcy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rl
c3RzL3B5Mzljb21wYXQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X2Fw
aS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3Rlc3RfaW50ZWdyYXRpb24ucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X21haW4ucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9y
dGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X3ppcC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3RveC5pbmkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWYwZTk3NTc4MzczZGUwYTYzMWZjYWViODc2ZTA2ODg4YjUwMWUyOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3RveC5pbmkKQEAgLTAsMCArMSw5
NyBAQAorW3RveF0KK2Vudmxpc3QgPSB7cHkyNyxweTM1LHB5MzYscHkzNyxweTM4fXssLWNvdiwt
ZGlmZmNvdn0scWEsZG9jcyxwZXJmCitza2lwX21pc3NpbmdfaW50ZXJwcmV0ZXJzID0gVHJ1ZQor
bWludmVyc2lvbiA9IDMuMgorIyBFbnN1cmUgdGhhdCBhIGxhdGUgdmVyc2lvbiBvZiBwaXAgaXMg
dXNlZCBldmVuIG9uIHRveC12ZW52LgorcmVxdWlyZXMgPQorICAgIHRveC1waXAtdmVyc2lvbj49
MC4wLjYKKworW3Rlc3RlbnZdCitwaXBfdmVyc2lvbiA9IHBpcAorY29tbWFuZHMgPQorICAgICFj
b3YsIWRpZmZjb3Y6IHB5dGhvbiAtbSB1bml0dGVzdCBkaXNjb3ZlciB7cG9zYXJnc30KKyAgICBj
b3YsZGlmZmNvdjogcHl0aG9uIC1tIGNvdmVyYWdlIHJ1biB7W2NvdmVyYWdlXXJjfSAtbSB1bml0
dGVzdCBkaXNjb3ZlciB7cG9zYXJnc30KKyAgICBjb3YsZGlmZmNvdjogcHl0aG9uIC1tIGNvdmVy
YWdlIGNvbWJpbmUge1tjb3ZlcmFnZV1yY30KKyAgICBjb3Y6IHB5dGhvbiAtbSBjb3ZlcmFnZSBo
dG1sIHtbY292ZXJhZ2VdcmN9CisgICAgY292OiBweXRob24gLW0gY292ZXJhZ2UgeG1sIHtbY292
ZXJhZ2VdcmN9CisgICAgY292OiBweXRob24gLW0gY292ZXJhZ2UgcmVwb3J0IC1tIHtbY292ZXJh
Z2VdcmN9IC0tZmFpbC11bmRlcj0xMDAKKyAgICBkaWZmY292OiBweXRob24gLW0gY292ZXJhZ2Ug
eG1sIHtbY292ZXJhZ2VdcmN9CisgICAgZGlmZmNvdjogZGlmZi1jb3ZlciBjb3ZlcmFnZS54bWwg
LS1odG1sLXJlcG9ydCBkaWZmY292Lmh0bWwKKyAgICBkaWZmY292OiBkaWZmLWNvdmVyIGNvdmVy
YWdlLnhtbCAtLWZhaWwtdW5kZXI9MTAwCit1c2VkZXZlbG9wID0gVHJ1ZQorcGFzc2VudiA9Cisg
ICAgUFlUSE9OKgorICAgIExBTkcqCisgICAgTENfKgorICAgIFBZVgorZGVwcyA9CisgICAgY292
LGRpZmZjb3Y6IGNvdmVyYWdlPj00LjUKKyAgICBkaWZmY292OiBkaWZmX2NvdmVyCisgICAgcHlm
YWtlZnMKK3NldGVudiA9CisgICAgY292OiBDT1ZFUkFHRV9QUk9DRVNTX1NUQVJUPXtbY292ZXJh
Z2VdcmNmaWxlfQorICAgIGNvdjogQ09WRVJBR0VfT1BUSU9OUz0iLXAiCisgICAgY292OiBDT1ZF
UkFHRV9GSUxFPXt0b3hpbmlkaXJ9Ly5jb3ZlcmFnZQorICAgIHB5Mjc6IFBZVj0yCisgICAgcHkz
NSxweTM2LHB5MzcscHkzODogUFlWPTMKKyAgICAjIHdvcmthcm91bmQgZGVwcmVjYXRpb24gd2Fy
bmluZ3MgaW4gcGlwJ3MgdmVuZG9yZWQgcGFja2FnZXMKKyAgICBQWVRIT05XQVJOSU5HUz1pZ25v
cmU6VXNpbmcgb3IgaW1wb3J0aW5nIHRoZSBBQkNzOkRlcHJlY2F0aW9uV2FybmluZzpwaXAuX3Zl
bmRvcgorZXh0cmFzID0KKyAgICB0ZXN0aW5nCisKKworW3Rlc3RlbnY6cWFdCitiYXNlcHl0aG9u
ID0gcHl0aG9uMy43Citjb21tYW5kcyA9CisgICAgcHl0aG9uIC1tIGZsYWtlOCBpbXBvcnRsaWJf
bWV0YWRhdGEKKyAgICBteXB5IGltcG9ydGxpYl9tZXRhZGF0YQorZGVwcyA9CisgICAgbXlweQor
ICAgIGZsYWtlOAorICAgIGZsdWZsLmZsYWtlOAorZXh0cmFzID0KKworCitbdGVzdGVudjpkb2Nz
XQorYmFzZXB5dGhvbiA9IHB5dGhvbjMKK2NvbW1hbmRzID0KKyAgICBzcGhpbngtYnVpbGQgZG9j
cyBidWlsZC9zcGhpbngvaHRtbAorZXh0cmFzID0KKyAgICBkb2NzCisKKworW3Rlc3RlbnY6cGVy
Zl0KK3VzZV9kZXZlbG9wID0gRmFsc2UKK2RlcHMgPQorICAgIGlweXRob24KK2NvbW1hbmRzID0K
KyAgICBweXRob24gLW0gdGltZWl0IC1zICdpbXBvcnQgaW1wb3J0bGliX21ldGFkYXRhJyAtLSAn
aW1wb3J0bGliX21ldGFkYXRhLmRpc3RyaWJ1dGlvbigiaXB5dGhvbiIpJworCisKK1t0ZXN0ZW52
OnJlbGVhc2VdCitiYXNlcHl0aG9uID0gcHl0aG9uMworZGVwcyA9CisgICAgdHdpbmUKKyAgICB3
aGVlbAorICAgIHNldHVwdG9vbHMKKyAgICBrZXlyaW5nCisgICAgc2V0dXB0b29sc19zY20KK3Bh
c3NlbnYgPQorICAgIFRXSU5FX1BBU1NXT1JECitzZXRlbnYgPQorICAgIFRXSU5FX1VTRVJOQU1F
ID0ge2VudjpUV0lORV9VU0VSTkFNRTpfX3Rva2VuX199Citjb21tYW5kcyA9CisgICAgcHl0aG9u
IHNldHVwLnB5IHNkaXN0IGJkaXN0X3doZWVsCisgICAgcHl0aG9uIC1tIHR3aW5lIHtwb3Nhcmdz
fSB1cGxvYWQgZGlzdC8qCisKKworW2NvdmVyYWdlXQorcmNmaWxlID0ge3RveGluaWRpcn0vY292
ZXJhZ2UuaW5pCityYyA9IC0tcmNmaWxlPSJ7W2NvdmVyYWdlXXJjZmlsZX0iCisKKworW2ZsYWtl
OF0KK2hhbmctY2xvc2luZyA9IFRydWUKK2pvYnMgPSAxCittYXgtbGluZS1sZW5ndGggPSA3OQor
ZW5hYmxlLWV4dGVuc2lvbnMgPSBVNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRh
dGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMzA3OTI2YmY1NDgxMzZhNWZlNzU5MjVlMGVhOWU2Zjg3MjllMzllCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdzNjLWltcG9ydC5sb2cK
QEAgLTAsMCArMSwyNiBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAor
CitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvTElDRU5T
RQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL01BTklGRVNULmluCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJf
bWV0YWRhdGEvUkVBRE1FLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2NvZGVjb3YueW1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvY292ZXJhZ2UuaW5pCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJf
bWV0YWRhdGEvY292ZXJwbHVnLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHlwcm9qZWN0
LnRvbWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9zZXR1cC5jZmcKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxp
Yl9tZXRhZGF0YS9zZXR1cC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3RveC5pbmkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5naXRodWIvd29ya2Zsb3dzL2RvY3MueW1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMxNTcz
ODc3OTAzZTQwZjcyNTM1ZjQ5N2YxNDVlYzFkYTlhNzFjMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nLy5naXRodWIvd29ya2Zsb3dzL2RvY3MueW1sCkBAIC0wLDAgKzEsMzAgQEAK
K25hbWU6IERvY3VtZW50YXRpb24KKworb246CisgIHB1bGxfcmVxdWVzdDoKKyAgICBwYXRoczoK
KyAgICAgIC0gJ2RvY3MvKionCisgIHB1c2g6CisgICAgcGF0aHM6CisgICAgICAtICdkb2NzLyoq
JworCitqb2JzOgorICBkb2NzOgorICAgIG5hbWU6IG5veCAtcyBkb2NzCisgICAgcnVucy1vbjog
dWJ1bnR1LWxhdGVzdAorCisgICAgc3RlcHM6CisgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0
QHYxCisKKyAgICAtIHVzZXM6IGFjdGlvbnMvc2V0dXAtcHl0aG9uQHYyCisgICAgICBuYW1lOiBJ
bnN0YWxsIFB5dGhvbgorICAgICAgd2l0aDoKKyAgICAgICAgcHl0aG9uLXZlcnNpb246ICczLjkn
CisKKyAgICAtIG5hbWU6IEluc3RhbGwgZGVwZW5kZW5jaWVzCisgICAgICBydW46IHwKKyAgICAg
ICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBwaXAKKyAgICAgICAgcHl0aG9uIC1t
IHBpcCBpbnN0YWxsIC0tdXBncmFkZSBub3gKKworICAgIC0gbmFtZTogQnVpbGQgZG9jdW1lbnRh
dGlvbgorICAgICAgcnVuOiBweXRob24gLW0gbm94IC1zIGRvY3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nLy5naXRodWIvd29ya2Zsb3dzL2xpbnQueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmdp
dGh1Yi93b3JrZmxvd3MvbGludC55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAzZjE2ZmQ2ODFmODg0ZTViYmMx
ZjE0NDNlZTg0ODExZTMxNTI4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5n
aXRodWIvd29ya2Zsb3dzL2xpbnQueW1sCkBAIC0wLDAgKzEsNTkgQEAKK25hbWU6IExpbnRpbmcK
Kworb246CisgIHB1bGxfcmVxdWVzdDoKKyAgICBwYXRoczoKKyAgICAgIC0gIioqLnB5IgorICBw
dXNoOgorICAgIHBhdGhzOgorICAgICAgLSAiKioucHkiCisKK2pvYnM6CisgIGxpbnQ6CisgICAg
bmFtZTogbm94IC1zIGxpbnQKKyAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CisKKyAgICBzdGVw
czoKKyAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2MQorCisgICAgICAtIHVzZXM6IGFj
dGlvbnMvc2V0dXAtcHl0aG9uQHYyCisgICAgICAgIG5hbWU6IEluc3RhbGwgUHl0aG9uCisgICAg
ICAgIHdpdGg6CisgICAgICAgICAgcHl0aG9uLXZlcnNpb246ICIzLjkiCisKKyAgICAgIC0gbmFt
ZTogSW5zdGFsbCBkZXBlbmRlbmNpZXMKKyAgICAgICAgcnVuOiB8CisgICAgICAgICAgcHl0aG9u
IC1tIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBwaXAKKyAgICAgICAgICBweXRob24gLW0gcGlwIGlu
c3RhbGwgLS11cGdyYWRlIG5veAorCisgICAgICAtIG5hbWU6IFJ1biBgbm94IC1zIGxpbnRgCisg
ICAgICAgIHJ1bjogcHl0aG9uIC1tIG5veCAtcyBsaW50CisKKyAgYnVpbGQ6CisgICAgbmFtZTog
QnVpbGQgc2Rpc3QgYW5kIHdoZWVsCisgICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAorICAgICMg
TGludGluZyB2ZXJpZmllcyB0aGF0IHRoZSBwcm9qZWN0IGlzIGluIGFuIGFjY2VwdGFibGUgc3Rh
dGUgdG8gY3JlYXRlIGZpbGVzCisgICAgIyBmb3IgcmVsZWFzaW5nLgorICAgICMgQW5kIHRoaXMg
YWN0aW9uIHNob3VsZCBiZSBydW4gd2hlbmV2ZXIgYSByZWxlYXNlIGlzIHJlYWR5IHRvIGdvIHB1
YmxpYyBhcworICAgICMgdGhlIHZlcnNpb24gbnVtYmVyIHdpbGwgYmUgY2hhbmdlZCBieSBlZGl0
aW5nIF9fYWJvdXRfXy5weS4KKyAgICBuZWVkczogbGludAorCisgICAgc3RlcHM6CisgICAgICAt
IHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjEKKworICAgICAgLSB1c2VzOiBhY3Rpb25zL3NldHVw
LXB5dGhvbkB2MgorICAgICAgICBuYW1lOiBJbnN0YWxsIFB5dGhvbgorICAgICAgICB3aXRoOgor
ICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAiMy45IgorCisgICAgICAtIG5hbWU6IEluc3RhbGwg
ZGVwZW5kZW5jaWVzCisgICAgICAgIHJ1bjogcHl0aG9uIC1tIHBpcCBpbnN0YWxsIC0tdXBncmFk
ZSBidWlsZAorCisgICAgICAtIG5hbWU6IEJ1aWxkCisgICAgICAgIHJ1bjogcHl0aG9uIC1tIGJ1
aWxkCisKKyAgICAgIC0gbmFtZTogQXJjaGl2ZSBmaWxlcworICAgICAgICB1c2VzOiBhY3Rpb25z
L3VwbG9hZC1hcnRpZmFjdEB2MQorICAgICAgICB3aXRoOgorICAgICAgICAgIG5hbWU6IGRpc3QK
KyAgICAgICAgICBwYXRoOiBkaXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8uZ2l0aHVi
L3dvcmtmbG93cy90ZXN0LnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5naXRodWIvd29ya2Zsb3dzL3Rl
c3QueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE4MDMxMDcxNmU2NmRiMzFiNTU4OWIwZjc4MjRmZDMyNDlkMzEy
MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy90
ZXN0LnltbApAQCAtMCwwICsxLDc1IEBACituYW1lOiBUZXN0CisKK29uOgorICBwdWxsX3JlcXVl
c3Q6CisgICAgcGF0aHM6CisgICAgICAtICIuZ2l0aHViL3dvcmtmbG93cy90ZXN0LnltbCIKKyAg
ICAgIC0gIioqLnB5IgorICBwdXNoOgorICAgIHBhdGhzOgorICAgICAgLSAiLmdpdGh1Yi93b3Jr
Zmxvd3MvdGVzdC55bWwiCisgICAgICAtICIqKi5weSIKKworam9iczoKKyAgdGVzdDoKKyAgICBu
YW1lOiAke3sgbWF0cml4Lm9zIH19IC8gJHt7IG1hdHJpeC5weXRob25fdmVyc2lvbiB9fQorICAg
IHJ1bnMtb246ICR7eyBtYXRyaXgub3MgfX0tbGF0ZXN0CisgICAgc3RyYXRlZ3k6CisgICAgICBm
YWlsLWZhc3Q6IGZhbHNlCisgICAgICBtYXRyaXg6CisgICAgICAgIG9zOiBbVWJ1bnR1LCBXaW5k
b3dzLCBtYWNPU10KKyAgICAgICAgIyBQeXRob24gMy40IGlzIG5vdCBhdmFpbGFibGUgZnJvbSBh
Y3Rpb25zL3NldHVwLXB5dGhvbkB2Mi4KKyAgICAgICAgcHl0aG9uX3ZlcnNpb246CisgICAgICAg
ICAgWyIyLjciLCAiMy41IiwgIjMuNiIsICIzLjciLCAiMy44IiwgIjMuOSIsICJweXB5MiIsICJw
eXB5MyJdCisgICAgICAgIGV4Y2x1ZGU6CisgICAgICAgICAgIyBUaGlzIGlzIGZhaWxpbmcgZHVl
IHRvIHBpcCBub3QgYmVpbmcgaW4gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQuCisgICAgICAgICAg
IyBodHRwczovL2dpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcnVucy80MjQ3ODU4NzEjc3RlcDo3
OjkKKyAgICAgICAgICAtIG9zOiB3aW5kb3dzCisgICAgICAgICAgICBweXRob25fdmVyc2lvbjog
cHlweTMKKworICAgIHN0ZXBzOgorICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYxCisK
KyAgICAgIC0gdXNlczogYWN0aW9ucy9zZXR1cC1weXRob25AdjIKKyAgICAgICAgbmFtZTogSW5z
dGFsbCBQeXRob24gJHt7IG1hdHJpeC5weXRob25fdmVyc2lvbiB9fQorICAgICAgICB3aXRoOgor
ICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAke3sgbWF0cml4LnB5dGhvbl92ZXJzaW9uIH19CisK
KyAgICAgICMgU2V0IGBweXRob25gIHRvIGEgcmVjZW50IDMueCB2ZXJzaW9uIGlmIHdlJ3JlIG5v
dCB0ZXN0aW5nIFB5dGhvbiAzLjYrLgorICAgICAgIyAgICBXaHk/IE5veCBuZWVkcyBQeXRob24g
My41KyBhbmQgZXZlcnlvbmUgbGlrZXMgZi1zdHJpbmdzLgorICAgICAgLSB1c2VzOiBhY3Rpb25z
L3NldHVwLXB5dGhvbkB2MgorICAgICAgICBuYW1lOiBJbnN0YWxsIFB5dGhvbiAzLngKKyAgICAg
ICAgd2l0aDoKKyAgICAgICAgICBweXRob24tdmVyc2lvbjogMy54CisgICAgICAgIGlmOiA+Cisg
ICAgICAgICAgKAorICAgICAgICAgICAgbWF0cml4LnB5dGhvbl92ZXJzaW9uID09ICcyLjcnIHx8
CisgICAgICAgICAgICBtYXRyaXgucHl0aG9uX3ZlcnNpb24gPT0gJ3B5cHkyJyB8fAorICAgICAg
ICAgICAgbWF0cml4LnB5dGhvbl92ZXJzaW9uID09ICczLjUnCisgICAgICAgICAgKQorCisgICAg
ICAjIFdvcmthcm91bmQgaHR0cHM6Ly9naXRodWIuY29tL3RoZWFjb2Rlcy9ub3gvaXNzdWVzLzI1
MAorICAgICAgLSBuYW1lOiBXb3JrYXJvdW5kIGZvciBXaW5kb3dzIFB5dGhvbiAyLjcKKyAgICAg
ICAgIyBUaGlzIGlzIGluIFBBVEgsIHNvIG5veCByZXNvbHZlcyB0byBpdCAtIGJ1dCB0aGVuIHN1
YnNlcXVlbnQgc3RlcHMgZmFpbC4KKyAgICAgICAgcnVuOiBybSBDOi9Qcm9ncmFtRGF0YS9DaG9j
b2xhdGV5L2Jpbi9weXRob24yLjcuZXhlCisgICAgICAgIHNoZWxsOiBiYXNoCisgICAgICAgIGlm
OiBydW5uZXIub3MgPT0gJ1dpbmRvd3MnICYmIG1hdHJpeC5weXRob25fdmVyc2lvbiA9PSAnMi43
JworCisgICAgICAtIG5hbWU6IEluc3RhbGwgZGVwZW5kZW5jaWVzCisgICAgICAgIHJ1bjogfAor
ICAgICAgICAgIHB5dGhvbiAtbSBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcGlwCisgICAgICAgICAg
cHl0aG9uIC1tIHBpcCBpbnN0YWxsIG5veAorICAgICAgICBzaGVsbDogYmFzaAorCisgICAgICAt
IG5hbWU6IFJ1biBub3gKKyAgICAgICAgcnVuOiB8CisgICAgICAgICAgcHl0aG9uIC1tIG5veCAt
LWVycm9yLW9uLW1pc3NpbmctaW50ZXJwcmV0ZXJzIC1zIHRlc3RzLSR7eyBtYXRyaXgucHl0aG9u
X3ZlcnNpb24gfX0KKyAgICAgICAgc2hlbGw6IGJhc2gKKyAgICAgICAgaWY6IG1hdHJpeC5weXRo
b25fdmVyc2lvbiAhPSAncHlweTInCisKKyAgICAgICMgQmluYXJ5IGlzIG5hbWVkICdweXB5Jywg
YnV0IHNldHVwLXB5dGhvbiBzcGVjaWZpZXMgaXQgYXMgJ3B5cHkyJy4KKyAgICAgIC0gbmFtZTog
UnVuIG5veCBmb3IgcHlweTIKKyAgICAgICAgcnVuOiB8CisgICAgICAgICAgcHl0aG9uIC1tIG5v
eCAtLWVycm9yLW9uLW1pc3NpbmctaW50ZXJwcmV0ZXJzIC1zIHRlc3RzLXB5cHkKKyAgICAgICAg
c2hlbGw6IGJhc2gKKyAgICAgICAgaWY6IG1hdHJpeC5weXRob25fdmVyc2lvbiA9PSAncHlweTIn
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nLy5naXRodWIvd29ya2Zsb3dzL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY3NDBmNGNlOGZhOWI2YzBjZDg4MjFkODc5ZDE0MTU4NDNiY2EyOGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0
LmxvZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8uZ2l0aHViL3dv
cmtmbG93cy9kb2NzLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5naXRodWIvd29ya2Zsb3dzL2xpbnQu
eW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmdpdGh1Yi93b3JrZmxvd3MvdGVzdC55bWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL0NIQU5HRUxPRy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9DSEFOR0VM
T0cucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhiMjc1YjA2NDYwZTkyMGYyOWFhYzkxYjc4ZmQ4ZjU4NjNlMTVl
MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9DSEFOR0VMT0cucnN0CkBAIC0w
LDAgKzEsMjk1IEBACitDaGFuZ2Vsb2cKKy0tLS0tLS0tLQorCisyMC43IC0gMjAyMC0xMS0yOAor
fn5+fn5+fn5+fn5+fn5+fn4KKworTm8gdW5yZWxlYXNlZCBjaGFuZ2VzLgorCisyMC42IC0gMjAy
MC0xMS0yOAorfn5+fn5+fn5+fn5+fn5+fn4KKworKiBGaXggZmxpdCBjb25maWd1cmF0aW9uLCB0
byBpbmNsdWRlIExJQ0VOU0UgZmlsZXMgKDppc3N1ZTpgMzU3YCkKKworMjAuNSAtIDIwMjAtMTEt
MjcKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogT2ZmaWNpYWxseSBzdXBwb3J0IFB5dGhvbiAzLjkg
KDppc3N1ZTpgMzQzYCkKKyogRGVwcmVjYXRlIHRoZSBgYExlZ2FjeVZlcnNpb25gYCBhbmQgYGBM
ZWdhY3lTcGVjaWZpZXJgYCBjbGFzc2VzICg6aXNzdWU6YDMyMWApCisqIEhhbmRsZSBgYE9TRXJy
b3JgYCBvbiBub24tZHluYW1pYyBleGVjdXRhYmxlcyB3aGVuIGF0dGVtcHRpbmcgdG8gcmVzb2x2
ZQorICB0aGUgZ2xpYmMgdmVyc2lvbiBzdHJpbmcuCisKKzIwLjQgLSAyMDIwLTA1LTE5Cit+fn5+
fn5+fn5+fn5+fn5+fgorCisqIENhbm9uaWNhbGl6ZSB2ZXJzaW9uIGJlZm9yZSBjb21wYXJpbmcg
c3BlY2lmaWVycy4gKDppc3N1ZTpgMjgyYCkKKyogQ2hhbmdlIHR5cGUgaGludCBmb3IgYGBjYW5v
bmljYWxpemVfbmFtZWBgIHRvIHJldHVybgorICBgYHBhY2thZ2luZy51dGlscy5Ob3JtYWxpemVk
TmFtZWBgLgorICBUaGlzIGVuYWJsZXMgdGhlIHVzZSBvZiBzdGF0aWMgdHlwaW5nIHRvb2xzIChs
aWtlIG15cHkpIHRvIGRldGVjdCBtaXhpbmcgb2YKKyAgbm9ybWFsaXplZCBhbmQgdW4tbm9ybWFs
aXplZCBuYW1lcy4KKworMjAuMyAtIDIwMjAtMDMtMDUKK35+fn5+fn5+fn5+fn5+fn5+CisKKyog
Rml4IGNoYW5nZWxvZyBmb3IgMjAuMi4KKworMjAuMiAtIDIwMjAtMDMtMDUKK35+fn5+fn5+fn5+
fn5+fn5+CisKKyogRml4IGEgYnVnIHRoYXQgY2F1c2VkIGEgMzItYml0IE9TIHRoYXQgcnVucyBv
biBhIDY0LWJpdCBBUk0gQ1BVIChlLmcuIEFSTS12OCwKKyAgYWFyY2g2NCksIHRvIHJlcG9ydCB0
aGUgd3JvbmcgYml0bmVzcy4KKworMjAuMSAtIDIwMjAtMDEtMjQKK35+fn5+fn5+fn5+fn5+fn5+
fn4KKworKiBGaXggYSBidWcgY2F1c2VkIGJ5IHJldXNlIG9mIGFuIGV4aGF1c3RlZCBpdGVyYXRv
ci4gKDppc3N1ZTpgMjU3YCkKKworMjAuMCAtIDIwMjAtMDEtMDYKK35+fn5+fn5+fn5+fn5+fn5+
CisKKyogQWRkIHR5cGUgaGludHMgKDppc3N1ZTpgMTkxYCkKKworKiBBZGQgcHJvcGVyIHRyb3Zl
IGNsYXNzaWZpZXJzIGZvciBQeVB5IHN1cHBvcnQgKDppc3N1ZTpgMTk4YCkKKworKiBTY2FsZSBi
YWNrIGRlcGVuZGluZyBvbiBgYGN0eXBlc2BgIGZvciBtYW55bGludXggc3VwcG9ydCBkZXRlY3Rp
b24gKDppc3N1ZTpgMTcxYCkKKworKiBVc2UgYGBzeXMuaW1wbGVtZW50YXRpb24ubmFtZWBgIHdo
ZXJlIGFwcHJvcHJpYXRlIGZvciBgYHBhY2thZ2luZy50YWdzYGAgKDppc3N1ZTpgMTkzYCkKKwor
KiBFeHBhbmQgdXBvbiB0aGUgQVBJIHByb3ZkZWQgYnkgYGBwYWNrYWdpbmcudGFnc2BgOiBgYGlu
dGVycHJldGVyX25hbWUoKWBgLCBgYG1hY19wbGF0Zm9ybXMoKWBgLCBgYGNvbXBhdGlibGVfdGFn
cygpYGAsIGBgY3B5dGhvbl90YWdzKClgYCwgYGBnZW5lcmljX3RhZ3MoKWBgICg6aXNzdWU6YDE4
N2ApCisKKyogT2ZmaWNpYWxseSBzdXBwb3J0IFB5dGhvbiAzLjggKDppc3N1ZTpgMjMyYCkKKwor
KiBBZGQgYGBtYWpvcmBgLCBgYG1pbm9yYGAsIGFuZCBgYG1pY3JvYGAgYWxpYXNlcyB0byBgYHBh
Y2thZ2luZy52ZXJzaW9uLlZlcnNpb25gYCAoOmlzc3VlOmAyMjZgKQorCisqIFByb3Blcmx5IG1h
cmsgYGBwYWNrYWdpbmdgYCBoYXMgYmVpbmcgZnVsbHkgdHlwZWQgYnkgYWRkaW5nIGEgYHB5LnR5
cGVkYCBmaWxlICg6aXNzdWU6YDIyNmApCisKKzE5LjIgLSAyMDE5LTA5LTE4Cit+fn5+fn5+fn5+
fn5+fn5+fgorCisqIFJlbW92ZSBkZXBlbmRlbmN5IG9uIGBgYXR0cnNgYCAoOmlzc3VlOmAxNzhg
LCA6aXNzdWU6YDE3OWApCisKKyogVXNlIGFwcHJvcHJpYXRlIGZhbGxiYWNrcyBmb3IgQ1B5dGhv
biBBQkkgdGFnICg6aXNzdWU6YDE4MWAsIDppc3N1ZTpgMTg1YCkKKworKiBBZGQgbWFueWxpbnV4
MjAxNCBzdXBwb3J0ICg6aXNzdWU6YDE4NmApCisKKyogSW1wcm92ZSBBQkkgZGV0ZWN0aW9uICg6
aXNzdWU6YDE4MWApCisKKyogUHJvcGVybHkgaGFuZGxlIGRlYnVnIHdoZWVscyBmb3IgUHl0aG9u
IDMuOCAoOmlzc3VlOmAxNzJgKQorCisqIEltcHJvdmUgZGV0ZWN0aW9uIG9mIGRlYnVnIGJ1aWxk
cyBvbiBXaW5kb3dzICg6aXNzdWU6YDE5NGApCisKKzE5LjEgLSAyMDE5LTA3LTMwCit+fn5+fn5+
fn5+fn5+fn5+fgorCisqIEFkZCB0aGUgYGBwYWNrYWdpbmcudGFnc2BgIG1vZHVsZS4gKDppc3N1
ZTpgMTU2YCkKKworKiBDb3JyZWN0bHkgaGFuZGxlIHR3by1kaWdpdCB2ZXJzaW9ucyBpbiBgYHB5
dGhvbl92ZXJzaW9uYGAgKDppc3N1ZTpgMTE5YCkKKworCisxOS4wIC0gMjAxOS0wMS0yMAorfn5+
fn5+fn5+fn5+fn5+fn4KKworKiBGaXggc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIFBFUCA1MDgg
ZGlyZWN0IFVSTCByZXF1aXJlbWVudHMgd2l0aCBtYXJrZXJzLgorCisqIEJldHRlciBoYW5kbGlu
ZyBvZiBmaWxlIFVSTHMKKworICBUaGlzIGFsbG93cyBmb3IgdXNpbmcgYGBmaWxlOi8vL2Fic29s
dXRlL3BhdGhgYCwgd2hpY2ggd2FzIHByZXZpb3VzbHkKKyAgcHJldmVudGVkIGR1ZSB0byB0aGUg
bWlzc2luZyBgYG5ldGxvY2BgLgorCisgIFRoaXMgYWxsb3dzIGZvciBhbGwgZmlsZSBVUkxzIHRo
YXQgYGB1cmx1bnBhcnNlYGAgdHVybnMgYmFjayBpbnRvIHRoZQorICBvcmlnaW5hbCBVUkwgdG8g
YmUgdmFsaWQuCisKKworMTguMCAtIDIwMTgtMDktMjYKK35+fn5+fn5+fn5+fn5+fn5+CisKKyog
SW1wcm92ZSBlcnJvciBtZXNzYWdlcyB3aGVuIGludmFsaWQgcmVxdWlyZW1lbnRzIGFyZSBnaXZl
bi4gKDppc3N1ZTpgMTI5YCkKKworCisxNy4xIC0gMjAxNy0wMi0yOAorfn5+fn5+fn5+fn5+fn5+
fn4KKworKiBGaXggYGB1dGlscy5jYW5vbmljYWxpemVfdmVyc2lvbmBgIHdoZW4gc3VwcGx5aW5n
IG5vbiBQRVAgNDQwIHZlcnNpb25zLgorCisKKzE3LjAgLSAyMDE3LTAyLTI4Cit+fn5+fn5+fn5+
fn5+fn5+fgorCisqIERyb3Agc3VwcG9ydCBmb3IgcHl0aG9uIDIuNiwgMy4yLCBhbmQgMy4zLgor
CisqIERlZmluZSBtaW5pbWFsIHB5cGFyc2luZyB2ZXJzaW9uIHRvIDIuMC4yICg6aXNzdWU6YDkx
YCkuCisKKyogQWRkIGBgZXBvY2hgYCwgYGByZWxlYXNlYGAsIGBgcHJlYGAsIGBgZGV2YGAsIGFu
ZCBgYHBvc3RgYCBhdHRyaWJ1dGVzIHRvCisgIGBgVmVyc2lvbmBgIGFuZCBgYExlZ2FjeVZlcnNp
b25gYCAoOmlzc3VlOmAzNGApLgorCisqIEFkZCBgYFZlcnNpb24oKS5pc19kZXZyZWxlYXNlYGAg
YW5kIGBgTGVnYWN5VmVyc2lvbigpLmlzX2RldnJlbGVhc2VgYCB0bworICBtYWtlIGl0IGVhc3kg
dG8gZGV0ZXJtaW5lIGlmIGEgcmVsZWFzZSBpcyBhIGRldmVsb3BtZW50IHJlbGVhc2UuCisKKyog
QWRkIGBgdXRpbHMuY2Fub25pY2FsaXplX3ZlcnNpb25gYCB0byBjYW5vbmljYWxpemUgdmVyc2lv
biBzdHJpbmdzIG9yCisgIGBgVmVyc2lvbmBgIGluc3RhbmNlcyAoOmlzc3VlOmAxMjFgKS4KKwor
CisxNi44IC0gMjAxNi0xMC0yOQorfn5+fn5+fn5+fn5+fn5+fn4KKworKiBGaXggbWFya2VycyB0
aGF0IHV0aWxpemUgYGBpbmBgIHNvIHRoYXQgdGhleSByZW5kZXIgY29ycmVjdGx5LgorCisqIEZp
eCBhbiBlcnJvbmVvdXMgdGVzdCBvbiBQeXRob24gUkMgcmVsZWFzZXMuCisKKworMTYuNyAtIDIw
MTYtMDQtMjMKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogQWRkIHN1cHBvcnQgZm9yIHRoZSBkZXBy
ZWNhdGVkIGBgcHl0aG9uX2ltcGxlbWVudGF0aW9uYGAgbWFya2VyIHdoaWNoIHdhcworICBhbiB1
bmRvY3VtZW50ZWQgc2V0dXB0b29scyBtYXJrZXIgaW4gYWRkaXRpb24gdG8gdGhlIG5ld2VyIG1h
cmtlcnMuCisKKworMTYuNiAtIDIwMTYtMDMtMjkKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogQWRk
IHN1cHBvcnQgZm9yIHRoZSBkZXByZWNhdGVkLCBQRVAgMzQ1IGVudmlyb25tZW50IG1hcmtlcnMg
aW4gYWRkaXRpb24gdG8KKyAgdGhlIG5ld2VyIG1hcmtlcnMuCisKKworMTYuNSAtIDIwMTYtMDIt
MjYKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogRml4IGEgcmVncmVzc2lvbiBpbiBwYXJzaW5nIHJl
cXVpcmVtZW50cyB3aXRoIHdoaXRlc3BhY2VzIGJldHdlZW4gdGhlIGNvbW1hCisgIHNlcGFyYXRv
cnMuCisKKworMTYuNCAtIDIwMTYtMDItMjIKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogRml4IGEg
cmVncmVzc2lvbiBpbiBwYXJzaW5nIHJlcXVpcmVtZW50cyBsaWtlIGBgZm9vICg9PTQpYGAuCisK
KworMTYuMyAtIDIwMTYtMDItMjEKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogRml4IGEgYnVnIHdo
ZXJlIGBgcGFja2FnaW5nLnJlcXVpcmVtZW50czpSZXF1aXJlbWVudGBgIHdhcyBvdmVybHkgc3Ry
aWN0IHdoZW4KKyAgbWF0Y2hpbmcgbGVnYWN5IHJlcXVpcmVtZW50cy4KKworCisxNi4yIC0gMjAx
Ni0wMi0wOQorfn5+fn5+fn5+fn5+fn5+fn4KKworKiBBZGQgYSBmdW5jdGlvbiB0aGF0IGltcGxl
bWVudHMgdGhlIG5hbWUgY2Fub25pY2FsaXphdGlvbiBmcm9tIFBFUCA1MDMuCisKKworMTYuMSAt
IDIwMTYtMDItMDcKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogSW1wbGVtZW50IHJlcXVpcmVtZW50
IHNwZWNpZmllcnMgZnJvbSBQRVAgNTA4LgorCisKKzE2LjAgLSAyMDE2LTAxLTE5Cit+fn5+fn5+
fn5+fn5+fn5+fgorCisqIFJlbGljZW5zZSBzbyB0aGF0IHBhY2thZ2luZyBpcyBhdmFpbGFibGUg
dW5kZXIgKmVpdGhlciogdGhlIEFwYWNoZSBMaWNlbnNlLAorICBWZXJzaW9uIDIuMCBvciBhIDIg
Q2xhdXNlIEJTRCBsaWNlbnNlLgorCisqIFN1cHBvcnQgaW5zdGFsbGF0aW9uIG9mIHBhY2thZ2lu
ZyB3aGVuIG9ubHkgZGlzdHV0aWxzIGlzIGF2YWlsYWJsZS4KKworKiBGaXggYGA9PWBgIGNvbXBh
cmlzb24gd2hlbiB0aGVyZSBpcyBhIHByZWZpeCBhbmQgYSBsb2NhbCB2ZXJzaW9uIGluIHBsYXku
CisgICg6aXNzdWU6YDQxYCkuCisKKyogSW1wbGVtZW50IGVudmlyb25tZW50IG1hcmtlcnMgZnJv
bSBQRVAgNTA4LgorCisKKzE1LjMgLSAyMDE1LTA4LTAxCit+fn5+fn5+fn5+fn5+fn5+fgorCisq
IE5vcm1hbGl6ZSBwb3N0LXJlbGVhc2Ugc3BlbGxpbmdzIGZvciByZXYvciBwcmVmaXhlcy4gOmlz
c3VlOmAzNWAKKworCisxNS4yIC0gMjAxNS0wNS0xMworfn5+fn5+fn5+fn5+fn5+fn4KKworKiBG
aXggYW4gZXJyb3Igd2hlcmUgdGhlIGFyYml0YXJ5IHNwZWNpZmllciAoYGA9PT1gYCkgd2FzIG5v
dCBjb3JyZWN0bHkKKyAgYWxsb3dpbmcgcHJlLXJlbGVhc2VzIHdoZW4gaXQgd2FzIGJlaW5nIHVz
ZWQuCisKKyogRXhwb3NlIHRoZSBzcGVjaWZpZXIgYW5kIHZlcnNpb24gcGFydHMgdGhyb3VnaCBw
cm9wZXJ0aWVzIG9uIHRoZQorICBgYFNwZWNpZmllcmBgIGNsYXNzZXMuCisKKyogQWxsb3cgaXRl
cmF0aW5nIG92ZXIgdGhlIGBgU3BlY2lmaWVyU2V0YGAgdG8gZ2V0IGFjY2VzcyB0byBhbGwgb2Yg
dGhlCisgIGBgU3BlY2lmaWVyYGAgaW5zdGFuY2VzLgorCisqIEFsbG93IHRlc3RpbmcgaWYgYSB2
ZXJzaW9uIGlzIGNvbnRhaW5lZCB3aXRoaW4gYSBzcGVjaWZpZXIgdmlhIHRoZSBgYGluYGAKKyAg
b3BlcmF0b3IuCisKKworMTUuMSAtIDIwMTUtMDQtMTMKK35+fn5+fn5+fn5+fn5+fn5+CisKKyog
Rml4IGEgbG9naWMgZXJyb3IgdGhhdCB3YXMgY2F1c2luZyBpbmNvbnNpc3RlbnQgYW5zd2VycyBh
Ym91dCB3aGV0aGVyIG9yIG5vdAorICBhIHByZS1yZWxlYXNlIHdhcyBjb250YWluZWQgd2l0aGlu
IGEgYGBTcGVjaWZpZXJTZXRgYCBvciBub3QuCisKKworMTUuMCAtIDIwMTUtMDEtMDIKK35+fn5+
fn5+fn5+fn5+fn5+CisKKyogQWRkIGBgVmVyc2lvbigpLmlzX3Bvc3RyZWxlYXNlYGAgYW5kIGBg
TGVnYWN5VmVyc2lvbigpLmlzX3Bvc3RyZWxlYXNlYGAgdG8KKyAgbWFrZSBpdCBlYXN5IHRvIGRl
dGVybWluZSBpZiBhIHJlbGVhc2UgaXMgYSBwb3N0IHJlbGVhc2UuCisKKyogQWRkIGBgVmVyc2lv
bigpLmJhc2VfdmVyc2lvbmBgIGFuZCBgYExlZ2FjeVZlcnNpb24oKS5iYXNlX3ZlcnNpb25gYCB0
byBtYWtlCisgIGl0IGVhc3kgdG8gZ2V0IHRoZSBwdWJsaWMgdmVyc2lvbiB3aXRob3V0IGFueSBw
cmUgb3IgcG9zdCByZWxlYXNlIG1hcmtlcnMuCisKKyogU3VwcG9ydCB0aGUgdXBkYXRlIHRvIFBF
UCA0NDAgd2hpY2ggcmVtb3ZlZCB0aGUgaW1wbGllZCBgYCE9Vi4qYGAgd2hlbiB1c2luZworICBl
aXRoZXIgYGA+VmBgIG9yIGBgPFZgYCBhbmQgd2hpY2ggaW5zdGVhZCBzcGVjaWFsIGNhc2VkIHRo
ZSBoYW5kbGluZyBvZgorICBwcmUtcmVsZWFzZXMsIHBvc3QtcmVsZWFzZXMsIGFuZCBsb2NhbCB2
ZXJzaW9ucyB3aGVuIHVzaW5nIGBgPlZgYCBvciBgYDxWYGAuCisKKworMTQuNSAtIDIwMTQtMTIt
MTcKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogTm9ybWFsaXplIHJlbGVhc2UgY2FuZGlkYXRlcyBh
cyBgYHJjYGAgaW5zdGVhZCBvZiBgYGNgYC4KKworKiBFeHBvc2UgdGhlIGBgVkVSU0lPTl9QQVRU
RVJOYGAgY29uc3RhbnQsIGEgcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nCisgIGEgdmFsaWQg
dmVyc2lvbi4KKworCisxNC40IC0gMjAxNC0xMi0xNQorfn5+fn5+fn5+fn5+fn5+fn4KKworKiBF
bnN1cmUgdGhhdCB2ZXJzaW9ucyBhcmUgbm9ybWFsaXplZCBiZWZvcmUgY29tcGFyaXNvbiB3aGVu
IHVzZWQgaW4gYQorICBzcGVjaWZpZXIgd2l0aCBhIGxlc3MgdGhhbiAoYGA8YGApIG9yIGdyZWF0
ZXIgdGhhbiAoYGA+YGApIG9wZXJhdG9yLgorCisKKzE0LjMgLSAyMDE0LTExLTE5Cit+fn5+fn5+
fn5+fn5+fn5+fgorCisqICoqQkFDS1dBUkRTIElOQ09NUEFUSUJMRSoqIFJlZmFjdG9yIHNwZWNp
ZmllciBzdXBwb3J0IHNvIHRoYXQgaXQgY2FuIHNhbmVseQorICBoYW5kbGUgbGVnYWN5IHNwZWNp
ZmllcnMgYXMgd2VsbCBhcyBQRVAgNDQwIHNwZWNpZmllcnMuCisKKyogKipCQUNLV0FSRFMgSU5D
T01QQVRJQkxFKiogTW92ZSB0aGUgc3BlY2lmaWVyIHN1cHBvcnQgb3V0IG9mCisgIGBgcGFja2Fn
aW5nLnZlcnNpb25gYCBpbnRvIGBgcGFja2FnaW5nLnNwZWNpZmllcnNgYC4KKworCisxNC4yIC0g
MjAxNC0wOS0xMAorfn5+fn5+fn5+fn5+fn5+fn4KKworKiBBZGQgcHJlcmVsZWFzZSBzdXBwb3J0
IHRvIGBgU3BlY2lmaWVyYGAuCisqIFJlbW92ZSB0aGUgYWJpbGl0eSB0byBkbyBgYGl0ZW0gaW4g
U3BlY2lmaWVyKClgYCBhbmQgcmVwbGFjZSBpdCB3aXRoCisgIGBgU3BlY2lmaWVyKCkuY29udGFp
bnMoaXRlbSlgYCBpbiBvcmRlciB0byBhbGxvdyBmbGFncyB0aGF0IHNpZ25hbCBpZiBhCisgIHBy
ZXJlbGVhc2Ugc2hvdWxkIGJlIGFjY2VwdGVkIG9yIG5vdC4KKyogQWRkIGEgbWV0aG9kIGBgU3Bl
Y2lmaWVyKCkuZmlsdGVyKClgYCB3aGljaCB3aWxsIHRha2UgYW4gaXRlcmFibGUgYW5kIHJldHVy
bnMKKyAgYW4gaXRlcmFibGUgd2l0aCBpdGVtcyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgc3BlY2lm
aWVyIGZpbHRlcmVkIG91dC4KKworCisxNC4xIC0gMjAxNC0wOS0wOAorfn5+fn5+fn5+fn5+fn5+
fn4KKworKiBBbGxvdyBgYExlZ2FjeVZlcnNpb25gYCBhbmQgYGBWZXJzaW9uYGAgdG8gYmUgc29y
dGVkIHRvZ2V0aGVyLgorKiBBZGQgYGBwYWNrYWdpbmcudmVyc2lvbi5wYXJzZSgpYGAgdG8gZW5h
YmxlIGVhc2lseSBwYXJzaW5nIGEgdmVyc2lvbiBzdHJpbmcKKyAgYXMgZWl0aGVyIGEgYGBWZXJz
aW9uYGAgb3IgYSBgYExlZ2FjeVZlcnNpb25gYCBkZXBlbmRpbmcgb24gaXQncyBQRVAgNDQwCisg
IHZhbGlkaXR5LgorCisKKzE0LjAgLSAyMDE0LTA5LTA1Cit+fn5+fn5+fn5+fn5+fn5+fgorCisq
IEluaXRpYWwgcmVsZWFzZS4KKworCisuLiBfYG1hc3RlcmA6IGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXBhL3BhY2thZ2luZy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL0NPTlRSSUJVVElORy5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy9DT05UUklCVVRJTkcucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5ZDcwZWMw
NDdhYTgwZGI5ZjBjNTQ4OTQyNDcyYThiYzQwOGE0Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy9DT05UUklCVVRJTkcucnN0CkBAIC0wLDAgKzEsMjMgQEAKK0NvbnRyaWJ1dGlu
ZyB0byBwYWNrYWdpbmcKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworQXMgYW4gb3BlbiBz
b3VyY2UgcHJvamVjdCwgcGFja2FnaW5nIHdlbGNvbWVzIGNvbnRyaWJ1dGlvbnMgb2YgbWFueSBm
b3Jtcy4KKworRXhhbXBsZXMgb2YgY29udHJpYnV0aW9ucyBpbmNsdWRlOgorCisqIENvZGUgcGF0
Y2hlcworKiBEb2N1bWVudGF0aW9uIGltcHJvdmVtZW50cworKiBCdWcgcmVwb3J0cyBhbmQgcGF0
Y2ggcmV2aWV3cworCitFeHRlbnNpdmUgY29udHJpYnV0aW9uIGd1aWRlbGluZXMgYXJlIGF2YWls
YWJsZSBpbiB0aGUgcmVwb3NpdG9yeSBhdAorYGBkb2NzL2RldmVsb3BtZW50L2luZGV4LnJzdGBg
LCBvciBvbmxpbmUgYXQ6CisKK2h0dHBzOi8vcGFja2FnaW5nLnB5cGEuaW8vZW4vbGF0ZXN0L2Rl
dmVsb3BtZW50LworCitTZWN1cml0eSBpc3N1ZXMKKy0tLS0tLS0tLS0tLS0tLQorCitUbyByZXBv
cnQgYSBzZWN1cml0eSBpc3N1ZSwgcGxlYXNlIGZvbGxvdyB0aGUgc3BlY2lhbCBgc2VjdXJpdHkg
cmVwb3J0aW5nCitndWlkZWxpbmVzYF8sIGRvIG5vdCByZXBvcnQgdGhlbSBpbiB0aGUgcHVibGlj
IGlzc3VlIHRyYWNrZXIuCisKKy4uIF9gc2VjdXJpdHkgcmVwb3J0aW5nIGd1aWRlbGluZXNgOiBo
dHRwczovL3BhY2thZ2luZy5weXBhLmlvL2VuL2xhdGVzdC9zZWN1cml0eS8KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL0xJQ0VOU0UgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9MSUNFTlNFCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZmNjJkNDRlNGVmNzMzYzBlNzEzYWZjZDIzNzFmZWQ3ZjJiM2RlNjcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9MSUNFTlNFCkBAIC0wLDAgKzEsMyBAQAorVGhpcyBzb2Z0
d2FyZSBpcyBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgKmVpdGhlciogb2YgdGhl
IGxpY2Vuc2VzCitmb3VuZCBpbiBMSUNFTlNFLkFQQUNIRSBvciBMSUNFTlNFLkJTRC4gQ29udHJp
YnV0aW9ucyB0byB0aGlzIHNvZnR3YXJlIGlzIG1hZGUKK3VuZGVyIHRoZSB0ZXJtcyBvZiAqYm90
aCogdGhlc2UgbGljZW5zZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9MSUNFTlNFLkFQ
QUNIRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nL0xJQ0VOU0UuQVBBQ0hFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MzNiMWE1
M2Y1YjgzMGEyMDVmZDJkZjc4ZTJiMzQ5NzQ2NTZjN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy9MSUNFTlNFLkFQQUNIRQpAQCAtMCwwICsxLDE3NyBAQAorCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorICAgICAgICAgICAgICAgICAgICAg
ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLworCisgICBURVJNUyBBTkQgQ09ORElU
SU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKworICAgMS4gRGVm
aW5pdGlvbnMuCisKKyAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29u
ZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCisgICAgICBhbmQgZGlzdHJpYnV0aW9uIGFz
IGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KKworICAg
ICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1
dGhvcml6ZWQgYnkKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0
aGUgTGljZW5zZS4KKworICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24g
b2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAorICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBj
b250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgorICAgICAgY29u
dHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlv
biwKKyAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJl
Y3QsIHRvIGNhdXNlIHRoZQorICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBl
bnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKKyAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBv
d25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorICAgICAgb3V0
c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVu
dGl0eS4KKworICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFs
IG9yIExlZ2FsIEVudGl0eQorICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5
IHRoaXMgTGljZW5zZS4KKworICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVm
ZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCisgICAgICBpbmNsdWRpbmcgYnV0
IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCisgICAg
ICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorCisgICAgICAiT2JqZWN0IiBmb3Jt
IHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAorICAgICAgdHJh
bnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1
dAorICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBk
b2N1bWVudGF0aW9uLAorICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVz
LgorCisgICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0
aGVyIGluIFNvdXJjZSBvcgorICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVy
IHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQorICAgICAgY29weXJpZ2h0IG5vdGljZSB0
aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCisgICAgICAoYW4gZXhh
bXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgorCisgICAgICAiRGVyaXZh
dGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2Jq
ZWN0CisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBX
b3JrIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0
aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNl
bnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBw
dXJwb3NlcworICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5v
dCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisgICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVy
ZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCisgICAgICB0
aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgorCisgICAgICAiQ29udHJpYnV0
aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZworICAgICAg
dGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9y
IGFkZGl0aW9ucworICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVv
ZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisgICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9y
IGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCisgICAgICBvciBi
eSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBi
ZWhhbGYgb2YKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2Yg
dGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxl
Y3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAorICAgICAgdG8g
dGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxp
bWl0ZWQgdG8KKyAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3Rz
LCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCisgICAgICBhbmQgaXNzdWUgdHJhY2tpbmcg
c3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQorICAgICAg
TGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUg
V29yaywgYnV0CisgICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1
b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQorICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5
IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCisKKyAgICAgICJD
b250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVn
YWwgRW50aXR5CisgICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVl
biByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKKyAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0
ZWQgd2l0aGluIHRoZSBXb3JrLgorCisgICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4g
U3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5z
ZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAg
ICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGly
cmV2b2NhYmxlCisgICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUg
RGVyaXZhdGl2ZSBXb3JrcyBvZiwKKyAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBl
cmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQorICAgICAgV29yayBhbmQgc3Vj
aCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KKworICAgMy4gR3Jh
bnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25z
IG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0
byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNo
YXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQg
aW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCisgICAg
ICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2Zl
ciB0aGUgV29yaywKKyAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhv
c2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCisgICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRo
YXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorICAgICAgQ29udHJpYnV0aW9u
KHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQorICAg
ICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0
dGVkLiBJZiBZb3UKKyAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFu
eSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0g
aW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisgICAgICBvciBhIENvbnRyaWJ1
dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorICAg
ICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBs
aWNlbnNlcworICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0
IFdvcmsgc2hhbGwgdGVybWluYXRlCisgICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRp
b24gaXMgZmlsZWQuCisKKyAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBh
bmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisgICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29y
a3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKKyAgICAgIG1vZGlmaWNh
dGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91Cisg
ICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworICAgICAgKGEpIFlvdSBtdXN0
IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKKyAgICAgICAgICBEZXJp
dmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorCisgICAgICAoYikgWW91
IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2Vz
CisgICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisKKyAg
ICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZh
dGl2ZSBXb3JrcworICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQs
IHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKKyAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZy
b20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAorICAgICAgICAgIGV4Y2x1ZGluZyB0aG9z
ZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKKyAgICAgICAgICB0
aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCisKKyAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRl
cyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cworICAgICAgICAgIGRpc3RyaWJ1
dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QK
KyAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90
aWNlcyBjb250YWluZWQKKyAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVk
aW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKKyAgICAgICAgICBwZXJ0YWluIHRvIGFueSBw
YXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKKyAgICAgICAgICBv
ZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmli
dXRlZAorICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0
aGUgU291cmNlIGZvcm0gb3IKKyAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBh
bG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKKyAgICAgICAgICB3aXRoaW4gYSBk
aXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCisgICAgICAg
ICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhl
IGNvbnRlbnRzCisgICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRp
b25hbCBwdXJwb3NlcyBvbmx5IGFuZAorICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vu
c2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCisgICAgICAgICAgbm90aWNlcyB3
aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKKyAg
ICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29y
aywgcHJvdmlkZWQKKyAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBu
b3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKyAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExp
Y2Vuc2UuCisKKyAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQg
dG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAorICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBv
ciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworICAgICAgZm9yIHVzZSwg
cmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgor
ICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQg
WW91ciB1c2UsCisgICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdv
cmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKKyAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBp
biB0aGlzIExpY2Vuc2UuCisKKyAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5s
ZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKKyAgICAgIGFueSBDb250cmlidXRp
b24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworICAg
ICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNv
bmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0
ZXJtcyBvciBjb25kaXRpb25zLgorICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90
aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQorICAgICAgdGhlIHRlcm1zIG9m
IGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKyAg
ICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KKworICAgNi4g
VHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNl
IHRoZSB0cmFkZQorICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHBy
b2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAorICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZv
ciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisgICAgICBv
cmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJ
Q0UgZmlsZS4KKworICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVk
IGJ5IGFwcGxpY2FibGUgbGF3IG9yCisgICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5z
b3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCisgICAgICBDb250cmlidXRvciBwcm92aWRl
cyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgIFdJVEhPVVQg
V0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgor
ICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50
aWVzIG9yIGNvbmRpdGlvbnMKKyAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJD
SEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKKyAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
WW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQorICAgICAgYXBw
cm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1
bWUgYW55CisgICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJt
aXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisKKyAgIDguIExpbWl0YXRpb24gb2YgTGlhYmls
aXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAorICAgICAgd2hldGhl
ciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2Us
CisgICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJl
cmF0ZSBhbmQgZ3Jvc3NseQorICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3
cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKKyAgICAgIGxpYWJsZSB0byBZb3UgZm9y
IGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKKyAgICAg
IGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFy
aXNpbmcgYXMgYQorICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVz
ZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQorICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3Qg
bGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAorICAgICAgd29yayBzdG9w
cGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKyAg
ICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29u
dHJpYnV0b3IKKyAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1
Y2ggZGFtYWdlcy4KKworICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlh
YmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZworICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2
ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKKyAgICAgIGFuZCBjaGFy
Z2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHks
CisgICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25z
aXN0ZW50IHdpdGggdGhpcworICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1
Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKyAgICAgIG9uIFlvdXIgb3duIGJlaGFs
ZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisgICAgICBv
ZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5p
ZnksCisgICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9y
IGFueSBsaWFiaWxpdHkKKyAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdh
aW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KKyAgICAgIG9mIHlvdXIgYWNjZXB0aW5n
IGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgorCisgICBFTkQgT0Yg
VEVSTVMgQU5EIENPTkRJVElPTlMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL0xJQ0VOU0Uu
QlNEIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYWNrYWdpbmcvTElDRU5TRS5CU0QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJjZTdiNzVjOTJm
YjAxYTNmNmVkMTdlZWEzNjNmNzU2YjdkYTU4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFj
a2FnaW5nL0xJQ0VOU0UuQlNECkBAIC0wLDAgKzEsMjMgQEAKK0NvcHlyaWdodCAoYykgRG9uYWxk
IFN0dWZmdCBhbmQgaW5kaXZpZHVhbCBjb250cmlidXRvcnMuCitBbGwgcmlnaHRzIHJlc2VydmVk
LgorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKK21vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorCisgICAgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
LAorICAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisKKyAgICAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECitBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKK0RB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCitTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
K09SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCitPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvUkVBRE1FLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL1JFQURNRS5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZThiZWJlNzRkYzFkZjdiNzFjMjA1NWMyMjBmOGMyNmFlMmMzNzJkYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL1JFQURNRS5yc3QKQEAgLTAsMCArMSw3MyBAQAorcGFja2FnaW5n
Cis9PT09PT09PT0KKworLi4gc3RhcnQtaW50cm8KKworUmV1c2FibGUgY29yZSB1dGlsaXRpZXMg
Zm9yIHZhcmlvdXMgUHl0aG9uIFBhY2thZ2luZworYGludGVyb3BlcmFiaWxpdHkgc3BlY2lmaWNh
dGlvbnMgPGh0dHBzOi8vcGFja2FnaW5nLnB5dGhvbi5vcmcvc3BlY2lmaWNhdGlvbnMvPmBfLgor
CitUaGlzIGxpYnJhcnkgcHJvdmlkZXMgdXRpbGl0aWVzIHRoYXQgaW1wbGVtZW50IHRoZSBpbnRl
cm9wZXJhYmlsaXR5CitzcGVjaWZpY2F0aW9ucyB3aGljaCBoYXZlIGNsZWFybHkgb25lIGNvcnJl
Y3QgYmVoYXZpb3VyIChlZzogOnBlcDpgNDQwYCkKK29yIGJlbmVmaXQgZ3JlYXRseSBmcm9tIGhh
dmluZyBhIHNpbmdsZSBzaGFyZWQgaW1wbGVtZW50YXRpb24gKGVnOiA6cGVwOmA0MjVgKS4KKwor
Li4gZW5kLWludHJvCisKK1RoZSBgYHBhY2thZ2luZ2BgIHByb2plY3QgaW5jbHVkZXMgdGhlIGZv
bGxvd2luZzogdmVyc2lvbiBoYW5kbGluZywgc3BlY2lmaWVycywKK21hcmtlcnMsIHJlcXVpcmVt
ZW50cywgdGFncywgdXRpbGl0aWVzLgorCitEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tCisK
K1RoZSBgZG9jdW1lbnRhdGlvbmBfIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFuZCB0aGUgQVBJIGZv
ciB0aGUgZm9sbG93aW5nOgorCistIFZlcnNpb24gSGFuZGxpbmcKKy0gU3BlY2lmaWVycworLSBN
YXJrZXJzCistIFJlcXVpcmVtZW50cworLSBUYWdzCistIFV0aWxpdGllcworCitJbnN0YWxsYXRp
b24KKy0tLS0tLS0tLS0tLQorCitVc2UgYGBwaXBgYCB0byBpbnN0YWxsIHRoZXNlIHV0aWxpdGll
czo6CisKKyAgICBwaXAgaW5zdGFsbCBwYWNrYWdpbmcKKworRGlzY3Vzc2lvbgorLS0tLS0tLS0t
LQorCitJZiB5b3UgcnVuIGludG8gYnVncywgeW91IGNhbiBmaWxlIHRoZW0gaW4gb3VyIGBpc3N1
ZSB0cmFja2VyYF8uCisKK1lvdSBjYW4gYWxzbyBqb2luIGBgI3B5cGFgYCBvbiBGcmVlbm9kZSB0
byBhc2sgcXVlc3Rpb25zIG9yIGdldCBpbnZvbHZlZC4KKworCisuLiBfYGRvY3VtZW50YXRpb25g
OiBodHRwczovL3BhY2thZ2luZy5weXBhLmlvLworLi4gX2Bpc3N1ZSB0cmFja2VyYDogaHR0cHM6
Ly9naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL2lzc3VlcworCisKK0NvZGUgb2YgQ29uZHVjdAor
LS0tLS0tLS0tLS0tLS0tCisKK0V2ZXJ5b25lIGludGVyYWN0aW5nIGluIHRoZSBwYWNrYWdpbmcg
cHJvamVjdCdzIGNvZGViYXNlcywgaXNzdWUgdHJhY2tlcnMsIGNoYXQKK3Jvb21zLCBhbmQgbWFp
bGluZyBsaXN0cyBpcyBleHBlY3RlZCB0byBmb2xsb3cgdGhlIGBQU0YgQ29kZSBvZiBDb25kdWN0
YF8uCisKKy4uIF9QU0YgQ29kZSBvZiBDb25kdWN0OiBodHRwczovL2dpdGh1Yi5jb20vcHlwYS8u
Z2l0aHViL2Jsb2IvbWFpbi9DT0RFX09GX0NPTkRVQ1QubWQKKworQ29udHJpYnV0aW5nCistLS0t
LS0tLS0tLS0KKworVGhlIGBgQ09OVFJJQlVUSU5HLnJzdGBgIGZpbGUgb3V0bGluZXMgaG93IHRv
IGNvbnRyaWJ1dGUgdG8gdGhpcyBwcm9qZWN0IGFzCit3ZWxsIGFzIGhvdyB0byByZXBvcnQgYSBw
b3RlbnRpYWwgc2VjdXJpdHkgaXNzdWUuIFRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGlzCitwcm9q
ZWN0IGFsc28gY292ZXJzIGluZm9ybWF0aW9uIGFib3V0IGBwcm9qZWN0IGRldmVsb3BtZW50YF8g
YW5kIGBzZWN1cml0eWBfLgorCisuLiBfYHByb2plY3QgZGV2ZWxvcG1lbnRgOiBodHRwczovL3Bh
Y2thZ2luZy5weXBhLmlvL2VuL2xhdGVzdC9kZXZlbG9wbWVudC8KKy4uIF9gc2VjdXJpdHlgOiBo
dHRwczovL3BhY2thZ2luZy5weXBhLmlvL2VuL2xhdGVzdC9zZWN1cml0eS8KKworUHJvamVjdCBI
aXN0b3J5CistLS0tLS0tLS0tLS0tLS0KKworUGxlYXNlIHJldmlldyB0aGUgYGBDSEFOR0VMT0cu
cnN0YGAgZmlsZSBvciB0aGUgYENoYW5nZWxvZyBkb2N1bWVudGF0aW9uYF8gZm9yCityZWNlbnQg
Y2hhbmdlcyBhbmQgcHJvamVjdCBoaXN0b3J5LgorCisuLiBfYENoYW5nZWxvZyBkb2N1bWVudGF0
aW9uYDogaHR0cHM6Ly9wYWNrYWdpbmcucHlwYS5pby9lbi9sYXRlc3QvY2hhbmdlbG9nLwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9NYWtlZmlsZSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2Rv
Y3MvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ2ODNiNDAyNDdjZDdiZDhkOTE1MTlhZTQxYzFiYWNk
ZWE2MWEyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvTWFrZWZpbGUK
QEAgLTAsMCArMSwxNTMgQEAKKyMgTWFrZWZpbGUgZm9yIFNwaGlueCBkb2N1bWVudGF0aW9uCisj
CisKKyMgWW91IGNhbiBzZXQgdGhlc2UgdmFyaWFibGVzIGZyb20gdGhlIGNvbW1hbmQgbGluZS4K
K1NQSElOWE9QVFMgICAgPQorU1BISU5YQlVJTEQgICA9IHNwaGlueC1idWlsZAorUEFQRVIgICAg
ICAgICA9CitCVUlMRERJUiAgICAgID0gX2J1aWxkCisKKyMgSW50ZXJuYWwgdmFyaWFibGVzLgor
UEFQRVJPUFRfYTQgICAgID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1hNAorUEFQRVJPUFRfbGV0dGVy
ID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1sZXR0ZXIKK0FMTFNQSElOWE9QVFMgICA9IC1kICQoQlVJ
TERESVIpL2RvY3RyZWVzICQoUEFQRVJPUFRfJChQQVBFUikpICQoU1BISU5YT1BUUykgLgorIyB0
aGUgaTE4biBidWlsZGVyIGNhbm5vdCBzaGFyZSB0aGUgZW52aXJvbm1lbnQgYW5kIGRvY3RyZWVz
IHdpdGggdGhlIG90aGVycworSTE4TlNQSElOWE9QVFMgID0gJChQQVBFUk9QVF8kKFBBUEVSKSkg
JChTUEhJTlhPUFRTKSAuCisKKy5QSE9OWTogaGVscCBjbGVhbiBodG1sIGRpcmh0bWwgc2luZ2xl
aHRtbCBwaWNrbGUganNvbiBodG1saGVscCBxdGhlbHAgZGV2aGVscCBlcHViIGxhdGV4IGxhdGV4
cGRmIHRleHQgbWFuIGNoYW5nZXMgbGlua2NoZWNrIGRvY3Rlc3QgZ2V0dGV4dAorCitoZWxwOgor
CUBlY2hvICJQbGVhc2UgdXNlIFxgbWFrZSA8dGFyZ2V0Picgd2hlcmUgPHRhcmdldD4gaXMgb25l
IG9mIgorCUBlY2hvICIgIGh0bWwgICAgICAgdG8gbWFrZSBzdGFuZGFsb25lIEhUTUwgZmlsZXMi
CisJQGVjaG8gIiAgZGlyaHRtbCAgICB0byBtYWtlIEhUTUwgZmlsZXMgbmFtZWQgaW5kZXguaHRt
bCBpbiBkaXJlY3RvcmllcyIKKwlAZWNobyAiICBzaW5nbGVodG1sIHRvIG1ha2UgYSBzaW5nbGUg
bGFyZ2UgSFRNTCBmaWxlIgorCUBlY2hvICIgIHBpY2tsZSAgICAgdG8gbWFrZSBwaWNrbGUgZmls
ZXMiCisJQGVjaG8gIiAganNvbiAgICAgICB0byBtYWtlIEpTT04gZmlsZXMiCisJQGVjaG8gIiAg
aHRtbGhlbHAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgSFRNTCBoZWxwIHByb2plY3QiCisJ
QGVjaG8gIiAgcXRoZWxwICAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgcXRoZWxwIHByb2pl
Y3QiCisJQGVjaG8gIiAgZGV2aGVscCAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgRGV2aGVs
cCBwcm9qZWN0IgorCUBlY2hvICIgIGVwdWIgICAgICAgdG8gbWFrZSBhbiBlcHViIgorCUBlY2hv
ICIgIGxhdGV4ICAgICAgdG8gbWFrZSBMYVRlWCBmaWxlcywgeW91IGNhbiBzZXQgUEFQRVI9YTQg
b3IgUEFQRVI9bGV0dGVyIgorCUBlY2hvICIgIGxhdGV4cGRmICAgdG8gbWFrZSBMYVRlWCBmaWxl
cyBhbmQgcnVuIHRoZW0gdGhyb3VnaCBwZGZsYXRleCIKKwlAZWNobyAiICB0ZXh0ICAgICAgIHRv
IG1ha2UgdGV4dCBmaWxlcyIKKwlAZWNobyAiICBtYW4gICAgICAgIHRvIG1ha2UgbWFudWFsIHBh
Z2VzIgorCUBlY2hvICIgIHRleGluZm8gICAgdG8gbWFrZSBUZXhpbmZvIGZpbGVzIgorCUBlY2hv
ICIgIGluZm8gICAgICAgdG8gbWFrZSBUZXhpbmZvIGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdo
IG1ha2VpbmZvIgorCUBlY2hvICIgIGdldHRleHQgICAgdG8gbWFrZSBQTyBtZXNzYWdlIGNhdGFs
b2dzIgorCUBlY2hvICIgIGNoYW5nZXMgICAgdG8gbWFrZSBhbiBvdmVydmlldyBvZiBhbGwgY2hh
bmdlZC9hZGRlZC9kZXByZWNhdGVkIGl0ZW1zIgorCUBlY2hvICIgIGxpbmtjaGVjayAgdG8gY2hl
Y2sgYWxsIGV4dGVybmFsIGxpbmtzIGZvciBpbnRlZ3JpdHkiCisJQGVjaG8gIiAgZG9jdGVzdCAg
ICB0byBydW4gYWxsIGRvY3Rlc3RzIGVtYmVkZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChpZiBl
bmFibGVkKSIKKworY2xlYW46CisJLXJtIC1yZiAkKEJVSUxERElSKS8qCisKK2h0bWw6CisJJChT
UEhJTlhCVUlMRCkgLWIgaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0bWwKKwlA
ZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJ
TERESVIpL2h0bWwuIgorCitkaXJodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIGRpcmh0bWwgJChB
TExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9kaXJodG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQg
ZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9kaXJodG1sLiIKKwor
c2luZ2xlaHRtbDoKKwkkKFNQSElOWEJVSUxEKSAtYiBzaW5nbGVodG1sICQoQUxMU1BISU5YT1BU
UykgJChCVUlMRERJUikvc2luZ2xlaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVk
LiBUaGUgSFRNTCBwYWdlIGlzIGluICQoQlVJTERESVIpL3NpbmdsZWh0bWwuIgorCitwaWNrbGU6
CisJJChTUEhJTlhCVUlMRCkgLWIgcGlja2xlICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikv
cGlja2xlCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nl
c3MgdGhlIHBpY2tsZSBmaWxlcy4iCisKK2pzb246CisJJChTUEhJTlhCVUlMRCkgLWIganNvbiAk
KEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2pzb24KKwlAZWNobworCUBlY2hvICJCdWlsZCBm
aW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgSlNPTiBmaWxlcy4iCisKK2h0bWxoZWxw
OgorCSQoU1BISU5YQlVJTEQpIC1iIGh0bWxoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJ
UikvaHRtbGhlbHAKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4g
cnVuIEhUTUwgSGVscCBXb3Jrc2hvcCB3aXRoIHRoZSIgXAorCSAgICAgICIuaGhwIHByb2plY3Qg
ZmlsZSBpbiAkKEJVSUxERElSKS9odG1saGVscC4iCisKK3F0aGVscDoKKwkkKFNQSElOWEJVSUxE
KSAtYiBxdGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9xdGhlbHAKKwlAZWNobwor
CUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuICJxY29sbGVjdGlvbmdlbmVy
YXRvciIgd2l0aCB0aGUiIFwKKwkgICAgICAiLnFoY3AgcHJvamVjdCBmaWxlIGluICQoQlVJTERE
SVIpL3F0aGVscCwgbGlrZSB0aGlzOiIKKwlAZWNobyAiIyBxY29sbGVjdGlvbmdlbmVyYXRvciAk
KEJVSUxERElSKS9xdGhlbHAvcGFja2FnaW5nLnFoY3AiCisJQGVjaG8gIlRvIHZpZXcgdGhlIGhl
bHAgZmlsZToiCisJQGVjaG8gIiMgYXNzaXN0YW50IC1jb2xsZWN0aW9uRmlsZSAkKEJVSUxERElS
KS9xdGhlbHAvcGFja2FnaW5nLnFoYyIKKworZGV2aGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBk
ZXZoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZGV2aGVscAorCUBlY2hvCisJQGVj
aG8gIkJ1aWxkIGZpbmlzaGVkLiIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKKwlA
ZWNobyAiIyBta2RpciAtcCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvcGFja2FnaW5nIgor
CUBlY2hvICIjIGxuIC1zICQoQlVJTERESVIpL2RldmhlbHAgJCRIT01FLy5sb2NhbC9zaGFyZS9k
ZXZoZWxwL3BhY2thZ2luZyIKKwlAZWNobyAiIyBkZXZoZWxwIgorCitlcHViOgorCSQoU1BISU5Y
QlVJTEQpIC1iIGVwdWIgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9lcHViCisJQGVjaG8K
KwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJChCVUlMRERJUikv
ZXB1Yi4iCisKK2xhdGV4OgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BU
UykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgdGhl
IExhVGVYIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisJQGVjaG8gIlJ1biBcYG1h
a2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJvdWdoIChwZGYpbGF0ZXgiIFwK
KwkgICAgICAiKHVzZSBcYG1ha2UgbGF0ZXhwZGYnIGhlcmUgdG8gZG8gdGhhdCBhdXRvbWF0aWNh
bGx5KS4iCisKK2xhdGV4cGRmOgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5Y
T1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobyAiUnVubmluZyBMYVRlWCBmaWxlcyB0aHJv
dWdoIHBkZmxhdGV4Li4uIgorCSQoTUFLRSkgLUMgJChCVUlMRERJUikvbGF0ZXggYWxsLXBkZgor
CUBlY2hvICJwZGZsYXRleCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJChCVUlMRERJ
UikvbGF0ZXguIgorCit0ZXh0OgorCSQoU1BISU5YQlVJTEQpIC1iIHRleHQgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS90ZXh0CisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRo
ZSB0ZXh0IGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXh0LiIKKworbWFuOgorCSQoU1BISU5Y
QlVJTEQpIC1iIG1hbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL21hbgorCUBlY2hvCisJ
QGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWFudWFsIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElS
KS9tYW4uIgorCit0ZXhpbmZvOgorCSQoU1BISU5YQlVJTEQpIC1iIHRleGluZm8gJChBTExTUEhJ
TlhPUFRTKSAkKEJVSUxERElSKS90ZXhpbmZvCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNo
ZWQuIFRoZSBUZXhpbmZvIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXhpbmZvLiIKKwlAZWNo
byAiUnVuIFxgbWFrZScgaW4gdGhhdCBkaXJlY3RvcnkgdG8gcnVuIHRoZXNlIHRocm91Z2ggbWFr
ZWluZm8iIFwKKwkgICAgICAiKHVzZSBcYG1ha2UgaW5mbycgaGVyZSB0byBkbyB0aGF0IGF1dG9t
YXRpY2FsbHkpLiIKKworaW5mbzoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXhpbmZvICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvdGV4aW5mbworCUBlY2hvICJSdW5uaW5nIFRleGluZm8gZmls
ZXMgdGhyb3VnaCBtYWtlaW5mby4uLiIKKwltYWtlIC1DICQoQlVJTERESVIpL3RleGluZm8gaW5m
bworCUBlY2hvICJtYWtlaW5mbyBmaW5pc2hlZDsgdGhlIEluZm8gZmlsZXMgYXJlIGluICQoQlVJ
TERESVIpL3RleGluZm8uIgorCitnZXR0ZXh0OgorCSQoU1BISU5YQlVJTEQpIC1iIGdldHRleHQg
JChJMThOU1BISU5YT1BUUykgJChCVUlMRERJUikvbG9jYWxlCisJQGVjaG8KKwlAZWNobyAiQnVp
bGQgZmluaXNoZWQuIFRoZSBtZXNzYWdlIGNhdGFsb2dzIGFyZSBpbiAkKEJVSUxERElSKS9sb2Nh
bGUuIgorCitjaGFuZ2VzOgorCSQoU1BISU5YQlVJTEQpIC1iIGNoYW5nZXMgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS9jaGFuZ2VzCisJQGVjaG8KKwlAZWNobyAiVGhlIG92ZXJ2aWV3IGZp
bGUgaXMgaW4gJChCVUlMRERJUikvY2hhbmdlcy4iCisKK2xpbmtjaGVjazoKKwkkKFNQSElOWEJV
SUxEKSAtYiBsaW5rY2hlY2sgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9saW5rY2hlY2sK
KwlAZWNobworCUBlY2hvICJMaW5rIGNoZWNrIGNvbXBsZXRlOyBsb29rIGZvciBhbnkgZXJyb3Jz
IGluIHRoZSBhYm92ZSBvdXRwdXQgIiBcCisJICAgICAgIm9yIGluICQoQlVJTERESVIpL2xpbmtj
aGVjay9vdXRwdXQudHh0LiIKKworZG9jdGVzdDoKKwkkKFNQSElOWEJVSUxEKSAtYiBkb2N0ZXN0
ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZG9jdGVzdAorCUBlY2hvICJUZXN0aW5nIG9m
IGRvY3Rlc3RzIGluIHRoZSBzb3VyY2VzIGZpbmlzaGVkLCBsb29rIGF0IHRoZSAiIFwKKwkgICAg
ICAicmVzdWx0cyBpbiAkKEJVSUxERElSKS9kb2N0ZXN0L291dHB1dC50eHQuIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9jaGFuZ2Vsb2cucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9j
cy9jaGFuZ2Vsb2cucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NWIwNTIxZDBjMmNkYmZlNDkzZDE5NzY1YjA0
ZDVjMTE5ZmE3ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2NoYW5n
ZWxvZy5yc3QKQEAgLTAsMCArMSBAQAorLi4gaW5jbHVkZTo6IC4uL0NIQU5HRUxPRy5yc3QKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvY29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2Rv
Y3MvY29uZi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmQ0YjEzYWEzNDBkOTVlY2JmM2I4OGFhYjdhOWFmZDE0
MWRkZGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9jb25mLnB5CkBA
IC0wLDAgKzEsMTEzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIyBUaGlzIGZpbGUgaXMg
ZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJz
aW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4g
dGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5j
dGlvbgorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworIyBJZiBleHRlbnNpb25zIChvciBtb2R1
bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2RvYykgYXJlIGluIGFub3RoZXIgZGlyZWN0b3J5LAor
IyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8gc3lzLnBhdGggaGVyZS4gSWYgdGhlIGRpcmVjdG9y
eSBpcyByZWxhdGl2ZSB0byB0aGUKKyMgZG9jdW1lbnRhdGlvbiByb290LCB1c2Ugb3MucGF0aC5h
YnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUsIGxpa2Ugc2hvd24gaGVyZS4KK3N5cy5wYXRoLmlu
c2VydCgwLCBvcy5wYXRoLmFic3BhdGgoIi4iKSkKKworIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRp
b24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisjIEFkZCBhbnkgU3BoaW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVyZSwgYXMgc3RyaW5n
cy4gVGhleSBjYW4gYmUKKyMgZXh0ZW5zaW9ucyAgY29taW5nIHdpdGggU3BoaW54IChuYW1lZCAn
c3BoaW54LmV4dC4qJykgb3IgeW91ciBjdXN0b20gb25lcy4KK2V4dGVuc2lvbnMgPSBbCisgICAg
InNwaGlueC5leHQuYXV0b2RvYyIsCisgICAgInNwaGlueC5leHQuZG9jdGVzdCIsCisgICAgInNw
aGlueC5leHQuZXh0bGlua3MiLAorICAgICJzcGhpbnguZXh0LmludGVyc3BoaW54IiwKKyAgICAi
c3BoaW54LmV4dC52aWV3Y29kZSIsCitdCisKKyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4g
dGVtcGxhdGVzIGhlcmUsIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LgordGVtcGxhdGVzX3Bh
dGggPSBbIl90ZW1wbGF0ZXMiXQorCisjIFRoZSBzdWZmaXggb2Ygc291cmNlIGZpbGVuYW1lcy4K
K3NvdXJjZV9zdWZmaXggPSAiLnJzdCIKKworIyBUaGUgbWFzdGVyIHRvY3RyZWUgZG9jdW1lbnQu
CittYXN0ZXJfZG9jID0gImluZGV4IgorCisjIEdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhl
IHByb2plY3QuCitwcm9qZWN0ID0gIlBhY2thZ2luZyIKKworIyBUaGUgdmVyc2lvbiBpbmZvIGZv
ciB0aGUgcHJvamVjdCB5b3UncmUgZG9jdW1lbnRpbmcsIGFjdHMgYXMgcmVwbGFjZW1lbnQgZm9y
CisjIHx2ZXJzaW9ufCBhbmQgfHJlbGVhc2V8LCBhbHNvIHVzZWQgaW4gdmFyaW91cyBvdGhlciBw
bGFjZXMgdGhyb3VnaG91dCB0aGUKKyMgYnVpbHQgZG9jdW1lbnRzLgorIworCitiYXNlX2RpciA9
IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCBvcy5wYXJkaXIpCithYm91
dCA9IHt9Cit3aXRoIG9wZW4ob3MucGF0aC5qb2luKGJhc2VfZGlyLCAicGFja2FnaW5nIiwgIl9f
aW5pdF9fLnB5IikpIGFzIGY6CisgICAgZXhlYyhmLnJlYWQoKSwgYWJvdXQpCisKK3ZlcnNpb24g
PSByZWxlYXNlID0gYWJvdXRbIl9fdmVyc2lvbl9fIl0KK2NvcHlyaWdodCA9ICIyMDE0LTIwMTkg
RG9uYWxkIFN0dWZmdCBhbmQgaW5kaXZpZHVhbCBjb250cmlidXRvcnMiCisKKyMgTGlzdCBvZiBw
YXR0ZXJucywgcmVsYXRpdmUgdG8gc291cmNlIGRpcmVjdG9yeSwgdGhhdCBtYXRjaCBmaWxlcyBh
bmQKKyMgZGlyZWN0b3JpZXMgdG8gaWdub3JlIHdoZW4gbG9va2luZyBmb3Igc291cmNlIGZpbGVz
LgorZXhjbHVkZV9wYXR0ZXJucyA9IFsiX2J1aWxkIl0KKworZXh0bGlua3MgPSB7CisgICAgImlz
c3VlIjogKCJodHRwczovL2dpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvaXNzdWVzLyVzIiwgIiMi
KSwKKyAgICAicHVsbCI6ICgiaHR0cHM6Ly9naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwv
JXMiLCAiUFIgIyIpLAorfQorIyAtLSBPcHRpb25zIGZvciBIVE1MIG91dHB1dCAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIFRoZSB0aGVtZSB0
byB1c2UgZm9yIEhUTUwgYW5kIEhUTUwgSGVscCBwYWdlcy4gIFNlZSB0aGUgZG9jdW1lbnRhdGlv
biBmb3IKKyMgYSBsaXN0IG9mIGJ1aWx0aW4gdGhlbWVzLgorCitodG1sX3RoZW1lID0gImZ1cm8i
CitodG1sX3RpdGxlID0gInBhY2thZ2luZyIKKworIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFp
biBjdXN0b20gc3RhdGljIGZpbGVzIChzdWNoIGFzIHN0eWxlIHNoZWV0cykgaGVyZSwKKyMgcmVs
YXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXkgYXJlIGNvcGllZCBhZnRlciB0aGUgYnVpbHRp
biBzdGF0aWMgZmlsZXMsCisjIHNvIGEgZmlsZSBuYW1lZCAiZGVmYXVsdC5jc3MiIHdpbGwgb3Zl
cndyaXRlIHRoZSBidWlsdGluICJkZWZhdWx0LmNzcyIuCitodG1sX3N0YXRpY19wYXRoID0gWyJf
c3RhdGljIl0KKworIyBPdXRwdXQgZmlsZSBiYXNlIG5hbWUgZm9yIEhUTUwgaGVscCBidWlsZGVy
LgoraHRtbGhlbHBfYmFzZW5hbWUgPSAicGFja2FnaW5nZG9jIgorCisKKyMgLS0gT3B0aW9ucyBm
b3IgTGFUZVggb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworbGF0ZXhfZWxlbWVudHMgPSB7fQorCisjIEdyb3VwaW5nIHRoZSBkb2N1bWVu
dCB0cmVlIGludG8gTGFUZVggZmlsZXMuIExpc3Qgb2YgdHVwbGVzCisjIChzb3VyY2Ugc3RhcnQg
ZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBhdXRob3IsIGRvY3VtZW50Y2xhc3MgW2hvd3RvL21h
bnVhbF0pCitsYXRleF9kb2N1bWVudHMgPSBbCisgICAgKCJpbmRleCIsICJwYWNrYWdpbmcudGV4
IiwgIlBhY2thZ2luZyBEb2N1bWVudGF0aW9uIiwgIkRvbmFsZCBTdHVmZnQiLCAibWFudWFsIikK
K10KKworIyAtLSBPcHRpb25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIE9uZSBlbnRyeSBwZXIgbWFudWFsIHBh
Z2UuIExpc3Qgb2YgdHVwbGVzCisjIChzb3VyY2Ugc3RhcnQgZmlsZSwgbmFtZSwgZGVzY3JpcHRp
b24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0aW9uKS4KK21hbl9wYWdlcyA9IFsoImluZGV4IiwgInBh
Y2thZ2luZyIsICJQYWNrYWdpbmcgRG9jdW1lbnRhdGlvbiIsIFsiRG9uYWxkIFN0dWZmdCJdLCAx
KV0KKworIyAtLSBPcHRpb25zIGZvciBUZXhpbmZvIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEdyb3VwaW5nIHRoZSBkb2N1bWVudCB0
cmVlIGludG8gVGV4aW5mbyBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBm
aWxlLCB0YXJnZXQgbmFtZSwgdGl0bGUsIGF1dGhvciwKKyMgIGRpciBtZW51IGVudHJ5LCBkZXNj
cmlwdGlvbiwgY2F0ZWdvcnkpCit0ZXhpbmZvX2RvY3VtZW50cyA9IFsKKyAgICAoCisgICAgICAg
ICJpbmRleCIsCisgICAgICAgICJwYWNrYWdpbmciLAorICAgICAgICAiUGFja2FnaW5nIERvY3Vt
ZW50YXRpb24iLAorICAgICAgICAiRG9uYWxkIFN0dWZmdCIsCisgICAgICAgICJwYWNrYWdpbmci
LAorICAgICAgICAiQ29yZSB1dGlsaXRpZXMgZm9yIFB5dGhvbiBwYWNrYWdlcyIsCisgICAgICAg
ICJNaXNjZWxsYW5lb3VzIiwKKyAgICApCitdCisKKyMgRXhhbXBsZSBjb25maWd1cmF0aW9uIGZv
ciBpbnRlcnNwaGlueDogcmVmZXIgdG8gdGhlIFB5dGhvbiBzdGFuZGFyZCBsaWJyYXJ5LgoraW50
ZXJzcGhpbnhfbWFwcGluZyA9IHsiaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvIjogTm9uZX0KKwor
ZXB1Yl90aGVtZSA9ICJlcHViIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZl
bG9wbWVudC9nZXR0aW5nLXN0YXJ0ZWQucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9w
bWVudC9nZXR0aW5nLXN0YXJ0ZWQucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ZTk0ODc4MjdiMzQyYzY2NTk0
OWU3ZDk1M2I5NjFiZTA2OTA3ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9k
b2NzL2RldmVsb3BtZW50L2dldHRpbmctc3RhcnRlZC5yc3QKQEAgLTAsMCArMSw4MCBAQAorR2V0
dGluZyBzdGFydGVkCis9PT09PT09PT09PT09PT0KKworV29ya2luZyBvbiBwYWNrYWdpbmcgcmVx
dWlyZXMgdGhlIGluc3RhbGxhdGlvbiBvZiBhIHNtYWxsIG51bWJlciBvZgorZGV2ZWxvcG1lbnQg
ZGVwZW5kZW5jaWVzLiBUbyBzZWUgd2hhdCBkZXBlbmRlbmNpZXMgYXJlIHJlcXVpcmVkIHRvCity
dW4gdGhlIHRlc3RzIG1hbnVhbGx5LCBwbGVhc2UgbG9vayBhdCB0aGUgYGBub3hmaWxlLnB5YGAg
ZmlsZS4KKworUnVubmluZyB0ZXN0cworfn5+fn5+fn5+fn5+fgorCitUaGUgcGFja2FnaW5nIHVu
aXQgdGVzdHMgYXJlIGZvdW5kIGluIHRoZSBgYHRlc3RzL2BgIGRpcmVjdG9yeSBhbmQgYXJlCitk
ZXNpZ25lZCB0byBiZSBydW4gdXNpbmcgYHB5dGVzdGBfLiBgcHl0ZXN0YF8gd2lsbCBkaXNjb3Zl
ciB0aGUgdGVzdHMKK2F1dG9tYXRpY2FsbHksIHNvIGFsbCB5b3UgaGF2ZSB0byBkbyBpczoKKwor
Li4gY29kZS1ibG9jazo6IGNvbnNvbGUKKworICAgICQgcHl0aG9uIC1tIHB5dGVzdAorICAgIC4u
LgorICAgIDI5MjA0IHBhc3NlZCwgNCBza2lwcGVkLCAxIHhmYWlsZWQgaW4gODMuOTggc2Vjb25k
cworCitUaGlzIHJ1bnMgdGhlIHRlc3RzIHdpdGggdGhlIGRlZmF1bHQgUHl0aG9uIGludGVycHJl
dGVyLiBUaGlzIGFsc28gYWxsb3dzCit5b3UgdG8gcnVuIHNlbGVjdCB0ZXN0cyBpbnN0ZWFkIG9m
IHRoZSBlbnRpcmUgdGVzdCBzdWl0ZS4KKworWW91IGNhbiBhbHNvIHZlcmlmeSB0aGF0IHRoZSB0
ZXN0cyBwYXNzIG9uIG90aGVyIHN1cHBvcnRlZCBQeXRob24gaW50ZXJwcmV0ZXJzLgorRm9yIHRo
aXMgd2UgdXNlIGBub3hgXywgd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIGB2aXJ0
dWFsZW52YF8gZm9yCitlYWNoIHN1cHBvcnRlZCBQeXRob24gdmVyc2lvbiBhbmQgcnVuIHRoZSB0
ZXN0cy4gRm9yIGV4YW1wbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlCisKKyAgICAkIG5v
eCAtcyB0ZXN0cworICAgIC4uLgorICAgIG5veCA+IFJhbiBtdWx0aXBsZSBzZXNzaW9uczoKKyAg
ICBub3ggPiAqIHRlc3RzLTIuNzogc3VjY2VzcworICAgIG5veCA+ICogdGVzdHMtMy40OiBza2lw
cGVkCisgICAgbm94ID4gKiB0ZXN0cy0zLjU6IHN1Y2Nlc3MKKyAgICBub3ggPiAqIHRlc3RzLTMu
Njogc3VjY2VzcworICAgIG5veCA+ICogdGVzdHMtMy43OiBzdWNjZXNzCisgICAgbm94ID4gKiB0
ZXN0cy0zLjg6IHN1Y2Nlc3MKKyAgICBub3ggPiAqIHRlc3RzLXB5cHk6IHNraXBwZWQKKyAgICBu
b3ggPiAqIHRlc3RzLXB5cHkzOiBza2lwcGVkCisKK1lvdSBtYXkgbm90IGhhdmUgYWxsIHRoZSBy
ZXF1aXJlZCBQeXRob24gdmVyc2lvbnMgaW5zdGFsbGVkLCBpbiB3aGljaCBjYXNlIHlvdQord2ls
bCBzZWUgb25lIG9yIG1vcmUgYGBJbnRlcnByZXRlck5vdEZvdW5kYGAgZXJyb3JzLgorCitSdW5u
aW5nIGxpbnRlcnMKK35+fn5+fn5+fn5+fn5+fgorCitJZiB5b3Ugd2lzaCB0byBydW4gdGhlIGxp
bnRpbmcgcnVsZXMsIHlvdSBtYXkgdXNlIGBwcmUtY29tbWl0YF8gb3IgcnVuCitgYG5veCAtcyBs
aW50YGAuCisKKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlCisKKyAgICAkIG5veCAtcyBsaW50Cisg
ICAgLi4uCisgICAgbm94ID4gU2Vzc2lvbiBsaW50IHdhcyBzdWNjZXNzZnVsLgorCitCdWlsZGlu
ZyBkb2N1bWVudGF0aW9uCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK3BhY2thZ2luZyBkb2N1
bWVudGF0aW9uIGlzIHN0b3JlZCBpbiB0aGUgYGBkb2NzL2BgIGRpcmVjdG9yeS4gSXQgaXMKK3dy
aXR0ZW4gaW4gYHJlU3RydWN0dXJlZCBUZXh0YF8gYW5kIHJlbmRlcmVkIHVzaW5nIGBTcGhpbnhg
Xy4KKworVXNlIGBub3hgXyB0byBidWlsZCB0aGUgZG9jdW1lbnRhdGlvbi4gRm9yIGV4YW1wbGU6
CisKKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlCisKKyAgICAkIG5veCAtcyBkb2NzCisgICAgLi4u
CisgICAgbm94ID4gU2Vzc2lvbiBkb2NzIHdhcyBzdWNjZXNzZnVsLgorCitUaGUgSFRNTCBkb2N1
bWVudGF0aW9uIGluZGV4IGNhbiBub3cgYmUgZm91bmQgYXQKK2BgZG9jcy9fYnVpbGQvaHRtbC9p
bmRleC5odG1sYGAuCisKKy4uIF9gcHl0ZXN0YDogaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5
dGVzdC8KKy4uIF9gbm94YDogaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L25veC8KKy4uIF9gdmly
dHVhbGVudmA6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC92aXJ0dWFsZW52LworLi4gX2BwaXBg
OiBodHRwczovL3B5cGkub3JnL3Byb2plY3QvcGlwLworLi4gX2BzcGhpbnhgOiBodHRwczovL3B5
cGkub3JnL3Byb2plY3QvU3BoaW54LworLi4gX2ByZVN0cnVjdHVyZWQgVGV4dGA6IGh0dHA6Ly9z
cGhpbngtZG9jLm9yZy9yZXN0Lmh0bWwKKy4uIF9gcHJlLWNvbW1pdGA6IGh0dHBzOi8vcHJlLWNv
bW1pdC5jb20KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQvaW5k
ZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9pbmRleC5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzBhZWE4YWNiMzkzNGUxMjQ5NTljMWNhYjgxNTcwZGMxYjYzN2VhMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQvaW5kZXgucnN0CkBAIC0w
LDAgKzEsMTkgQEAKK0RldmVsb3BtZW50Cis9PT09PT09PT09PQorCitBcyBhbiBvcGVuIHNvdXJj
ZSBwcm9qZWN0LCBwYWNrYWdpbmcgd2VsY29tZXMgY29udHJpYnV0aW9ucyBvZiBhbGwKK2Zvcm1z
LiBUaGUgc2VjdGlvbnMgYmVsb3cgd2lsbCBoZWxwIHlvdSBnZXQgc3RhcnRlZC4KKworRmlsZSBi
dWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIG91ciBpc3N1ZSB0cmFja2VyIG9uIGBHaXRIdWJg
Xy4gSWYgaXQgaXMgYQorYnVnIGNoZWNrIG91dCBgd2hhdCB0byBwdXQgaW4geW91ciBidWcgcmVw
b3J0YF8uCisKKy4uIHRvY3RyZWU6OgorICAgIDptYXhkZXB0aDogMgorCisgICAgZ2V0dGluZy1z
dGFydGVkCisgICAgc3VibWl0dGluZy1wYXRjaGVzCisgICAgcmV2aWV3aW5nLXBhdGNoZXMKKyAg
ICByZWxlYXNlLXByb2Nlc3MKKworLi4gX2BHaXRIdWJgOiBodHRwczovL2dpdGh1Yi5jb20vcHlw
YS9wYWNrYWdpbmcKKy4uIF9gd2hhdCB0byBwdXQgaW4geW91ciBidWcgcmVwb3J0YDogaHR0cDov
L3d3dy5jb250cmlidXRpb24tZ3VpZGUub3JnLyN3aGF0LXRvLXB1dC1pbi15b3VyLWJ1Zy1yZXBv
cnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQvcmVsZWFzZS1w
cm9jZXNzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQvcmVsZWFzZS1wcm9j
ZXNzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNjM0YWM0MGJkZTI2NDg2MjUwY2NkZWM1M2ZkMjNlZmMwNjhm
MzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9y
ZWxlYXNlLXByb2Nlc3MucnN0CkBAIC0wLDAgKzEsMjEgQEAKK1JlbGVhc2UgUHJvY2VzcworPT09
PT09PT09PT09PT09CisKKyMuIENoZWNrb3V0IHRoZSBjdXJyZW50IGBgbWFzdGVyYGAgYnJhbmNo
LgorIy4gSW5zdGFsbCB0aGUgbGF0ZXN0IGBgbm94YGA6OgorCisgICAgJCBwaXAgaW5zdGFsbCBu
b3gKKworIy4gUnVuIHRoZSByZWxlYXNlIGF1dG9tYXRpb24gd2l0aCB0aGUgcmVxdWlyZWQgdmVy
c2lvbiBudW1iZXIgKFlZLk4pOjoKKworICAgICQgbm94IC1zIHJlbGVhc2UgLS0gWVkuTgorCisj
LiBOb3RpZnkgdGhlIG90aGVyIHByb2plY3Qgb3duZXJzIG9mIHRoZSByZWxlYXNlLgorCisuLiBu
b3RlOjoKKworICAgQWNjZXNzIG5lZWRlZCBmb3IgbWFraW5nIHRoZSByZWxlYXNlIGFyZToKKwor
ICAgLSBQeVBJIG1haW50YWluZXIgKG9yIG93bmVyKSBhY2Nlc3MgdG8gYHBhY2thZ2luZ2AKKyAg
IC0gcHVzaCBkaXJlY3RseSB0byB0aGUgYG1hc3RlcmAgYnJhbmNoIG9uIHRoZSBzb3VyY2UgcmVw
b3NpdG9yeQorICAgLSBwdXNoIHRhZ3MgZGlyZWN0bHkgdG8gdGhlIHNvdXJjZSByZXBvc2l0b3J5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3Jldmlld2luZy1w
YXRjaGVzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQvcmV2aWV3aW5nLXBh
dGNoZXMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NzZjNzUxMmRlN2FhNzI4MzA0NTIwMjY1ZTRjZTQxMjBi
NzVlN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50
L3Jldmlld2luZy1wYXRjaGVzLnJzdApAQCAtMCwwICsxLDM3IEBACitSZXZpZXdpbmcgYW5kIG1l
cmdpbmcgcGF0Y2hlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRXZlcnlvbmUg
aXMgZW5jb3VyYWdlZCB0byByZXZpZXcgb3BlbiBwdWxsIHJlcXVlc3RzLiBXZSBvbmx5IGFzayB0
aGF0IHlvdSB0cnkKK2FuZCB0aGluayBjYXJlZnVsbHksIGFzayBxdWVzdGlvbnMgYW5kIGFyZSBg
ZXhjZWxsZW50IHRvIG9uZSBhbm90aGVyYF8uIENvZGUKK3JldmlldyBpcyBvdXIgb3Bwb3J0dW5p
dHkgdG8gc2hhcmUga25vd2xlZGdlLCBkZXNpZ24gaWRlYXMgYW5kIG1ha2UgZnJpZW5kcy4KKwor
V2hlbiByZXZpZXdpbmcgYSBwYXRjaCB0cnkgdG8ga2VlcCBlYWNoIG9mIHRoZXNlIGNvbmNlcHRz
IGluIG1pbmQ6CisKK0FyY2hpdGVjdHVyZQorLS0tLS0tLS0tLS0tCisKKyogSXMgdGhlIHByb3Bv
c2VkIGNoYW5nZSBiZWluZyBtYWRlIGluIHRoZSBjb3JyZWN0IHBsYWNlPworCitJbnRlbnQKKy0t
LS0tLQorCisqIFdoYXQgaXMgdGhlIGNoYW5nZSBiZWluZyBwcm9wb3NlZD8KKyogRG8gd2Ugd2Fu
dCB0aGlzIGZlYXR1cmUgb3IgaXMgdGhlIGJ1ZyB0aGV5J3JlIGZpeGluZyByZWFsbHkgYSBidWc/
CisKK0ltcGxlbWVudGF0aW9uCistLS0tLS0tLS0tLS0tLQorCisqIERvZXMgdGhlIGNoYW5nZSBk
byB3aGF0IHRoZSBhdXRob3IgY2xhaW1zPworKiBBcmUgdGhlcmUgc3VmZmljaWVudCB0ZXN0cz8K
KyogSGFzIGl0IGJlZW4gZG9jdW1lbnRlZD8KKyogV2lsbCB0aGlzIGNoYW5nZSBpbnRyb2R1Y2Ug
bmV3IGJ1Z3M/CisKK0dyYW1tYXIgYW5kIHN0eWxlCistLS0tLS0tLS0tLS0tLS0tLQorCitUaGVz
ZSBhcmUgc21hbGwgdGhpbmdzIHRoYXQgYXJlIG5vdCBjYXVnaHQgYnkgdGhlIGF1dG9tYXRlZCBz
dHlsZSBjaGVja2Vycy4KKworKiBEb2VzIGEgdmFyaWFibGUgbmVlZCBhIGJldHRlciBuYW1lPwor
KiBTaG91bGQgdGhpcyBiZSBhIGtleXdvcmQgYXJndW1lbnQ/CisKKy4uIF9gZXhjZWxsZW50IHRv
IG9uZSBhbm90aGVyYDogaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vb2hyaXRlL2JldHRlci1jb2Rl
LXJldmlldwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9zdWJt
aXR0aW5nLXBhdGNoZXMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9zdWJt
aXR0aW5nLXBhdGNoZXMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmNDMzYzQ1ZjIwYTA1M2VhZDg2Y2IxMDMy
ZjU0ZWVkMGI5ZjU4NGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2Rl
dmVsb3BtZW50L3N1Ym1pdHRpbmctcGF0Y2hlcy5yc3QKQEAgLTAsMCArMSw4MSBAQAorU3VibWl0
dGluZyBwYXRjaGVzCis9PT09PT09PT09PT09PT09PT0KKworKiBBbHdheXMgbWFrZSBhIG5ldyBi
cmFuY2ggZm9yIHlvdXIgd29yay4KKyogUGF0Y2hlcyBzaG91bGQgYmUgc21hbGwgdG8gZmFjaWxp
dGF0ZSBlYXNpZXIgcmV2aWV3LiBgU3R1ZGllcyBoYXZlIHNob3duYF8KKyAgdGhhdCByZXZpZXcg
cXVhbGl0eSBmYWxscyBvZmYgYXMgcGF0Y2ggc2l6ZSBncm93cy4gU29tZXRpbWVzIHRoaXMgd2ls
bCByZXN1bHQKKyAgaW4gbWFueSBzbWFsbCBQUnMgdG8gbGFuZCBhIHNpbmdsZSBsYXJnZSBmZWF0
dXJlLgorKiBMYXJnZXIgY2hhbmdlcyBzaG91bGQgYmUgZGlzY3Vzc2VkIGluIGEgdGlja2V0IGJl
Zm9yZSBzdWJtaXNzaW9uLgorKiBOZXcgZmVhdHVyZXMgYW5kIHNpZ25pZmljYW50IGJ1ZyBmaXhl
cyBzaG91bGQgYmUgZG9jdW1lbnRlZCBpbiB0aGUKKyAgOmRvYzpgL2NoYW5nZWxvZ2AuCisqIFlv
dSBtdXN0IGhhdmUgbGVnYWwgcGVybWlzc2lvbiB0byBkaXN0cmlidXRlIGFueSBjb2RlIHlvdSBj
b250cmlidXRlIGFuZCBpdAorICBtdXN0IGJlIGF2YWlsYWJsZSB1bmRlciBib3RoIHRoZSBCU0Qg
YW5kIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIFZlcnNpb24gMi4wCisgIGxpY2Vuc2VzLgorCitJ
ZiB5b3UgYmVsaWV2ZSB5b3UndmUgaWRlbnRpZmllZCBhIHNlY3VyaXR5IGlzc3VlIGluIHBhY2th
Z2luZywgcGxlYXNlCitmb2xsb3cgdGhlIGRpcmVjdGlvbnMgb24gdGhlIDpkb2M6YHNlY3VyaXR5
IHBhZ2UgPC9zZWN1cml0eT5gLgorCitDb2RlCistLS0tCisKK1RoaXMgcHJvamVjdCdzIHNvdXJj
ZSBpcyBhdXRvLWZvcm1hdHRlZCB3aXRoIHxibGFja3wuIFlvdSBjYW4gY2hlY2sgaWYgeW91cgor
Y29kZSBtZWV0cyBvdXIgcmVxdWlyZW1lbnRzIGJ5IHJ1bm5pbmcgb3VyIGxpbnRlcnMgYWdhaW5z
dCBpdCB3aXRoIGBgbm94IC1zCitsaW50YGAgb3IgYGBwcmUtY29tbWl0IHJ1biAtLWFsbC1maWxl
c2BgLgorCitgV3JpdGUgY29tbWVudHMgYXMgY29tcGxldGUgc2VudGVuY2VzLmBfCisKK0V2ZXJ5
IGNvZGUgZmlsZSBtdXN0IHN0YXJ0IHdpdGggdGhlIGJvaWxlcnBsYXRlIGxpY2Vuc2luZyBub3Rp
Y2U6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICMgVGhpcyBmaWxlIGlzIGR1YWwg
bGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbgor
ICAgICMgMi4wLCBhbmQgdGhlIEJTRCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0
aGUgcm9vdCBvZiB0aGlzIHJlcG9zaXRvcnkKKyAgICAjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgor
CitBZGRpdGlvbmFsbHksIGV2ZXJ5IFB5dGhvbiBjb2RlIGZpbGUgbXVzdCBjb250YWluCisKKy4u
IGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworCitUZXN0cworLS0tLS0KKwor
QWxsIGNvZGUgY2hhbmdlcyBtdXN0IGJlIGFjY29tcGFuaWVkIGJ5IHVuaXQgdGVzdHMgd2l0aCAx
MDAlIGNvZGUgY292ZXJhZ2UgKGFzCittZWFzdXJlZCBieSB0aGUgY29tYmluZWQgbWV0cmljcyBh
Y3Jvc3Mgb3VyIGJ1aWxkIG1hdHJpeCkuCisKKworRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0t
LQorCitBbGwgZmVhdHVyZXMgc2hvdWxkIGJlIGRvY3VtZW50ZWQgd2l0aCBwcm9zZSBpbiB0aGUg
YGBkb2NzYGAgc2VjdGlvbi4KKworV2hlbiByZWZlcnJpbmcgdG8gYSBoeXBvdGhldGljYWwgaW5k
aXZpZHVhbCAoc3VjaCBhcyAiYSBwZXJzb24gcmVjZWl2aW5nIGFuCitlbmNyeXB0ZWQgbWVzc2Fn
ZSIpIHVzZSBnZW5kZXIgbmV1dHJhbCBwcm9ub3VucyAodGhleS90aGVtL3RoZWlyKS4KKworRG9j
c3RyaW5ncyBhcmUgdHlwaWNhbGx5IG9ubHkgdXNlZCB3aGVuIHdyaXRpbmcgYWJzdHJhY3QgY2xh
c3NlcywgYnV0IHNob3VsZAorYmUgd3JpdHRlbiBsaWtlIHRoaXMgaWYgcmVxdWlyZWQ6CisKKy4u
IGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGRlZiBzb21lX2Z1bmN0aW9uKHNvbWVfYXJnKToK
KyAgICAgICAgIiIiCisgICAgICAgIERvZXMgc29tZSB0aGluZ3MuCisKKyAgICAgICAgOnBhcmFt
IHNvbWVfYXJnOiBTb21lIGFyZ3VtZW50LgorICAgICAgICAiIiIKKworU28sIHNwZWNpZmljYWxs
eToKKworKiBBbHdheXMgdXNlIHRocmVlIGRvdWJsZSBxdW90ZXMuCisqIFB1dCB0aGUgdGhyZWUg
ZG91YmxlIHF1b3RlcyBvbiB0aGVpciBvd24gbGluZS4KKyogTm8gYmxhbmsgbGluZSBhdCB0aGUg
ZW5kLgorKiBVc2UgU3BoaW54IHBhcmFtZXRlci9hdHRyaWJ1dGUgZG9jdW1lbnRhdGlvbiBgc3lu
dGF4YF8uCisKKworLi4gfGJsYWNrfCByZXBsYWNlOjogYGBibGFja2BgCisuLiBfYmxhY2s6IGh0
dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9ibGFjay8KKy4uIF9gV3JpdGUgY29tbWVudHMgYXMgY29t
cGxldGUgc2VudGVuY2VzLmA6IGh0dHBzOi8vbmVkYmF0Y2hlbGRlci5jb20vYmxvZy8yMDE0MDEv
Y29tbWVudHNfc2hvdWxkX2JlX3NlbnRlbmNlcy5odG1sCisuLiBfYHN5bnRheGA6IGh0dHA6Ly9z
cGhpbngtZG9jLm9yZy9kb21haW5zLmh0bWwjaW5mby1maWVsZC1saXN0cworLi4gX2BTdHVkaWVz
IGhhdmUgc2hvd25gOiBodHRwOi8vd3d3LmlibS5jb20vZGV2ZWxvcGVyd29ya3MvcmF0aW9uYWwv
bGlicmFyeS8xMS1wcm92ZW4tcHJhY3RpY2VzLWZvci1wZWVyLXJldmlldy8KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhN2M3
MjhmZjU1NmFiOTNlMDc0N2M5YTJlNDEzMWI1NGNhMGE1ODAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MjEgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQvZ2V0dGluZy1z
dGFydGVkLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQvaW5kZXgucnN0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9yZWxlYXNlLXByb2Nlc3MucnN0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9yZXZpZXdpbmctcGF0Y2hlcy5yc3QKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3N1Ym1pdHRpbmctcGF0Y2hlcy5yc3QKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvaW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9j
cy9pbmRleC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFmZGFlODNjNDYyZjc3MmM0MDEyMDc5NGRkMzg3MzBj
OTRkZjIyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvaW5kZXgucnN0
CkBAIC0wLDAgKzEsMzggQEAKK1dlbGNvbWUgdG8gcGFja2FnaW5nCis9PT09PT09PT09PT09PT09
PT09PQorCisuLiBpbmNsdWRlOjogLi4vUkVBRE1FLnJzdAorICAgOnN0YXJ0LWFmdGVyOiBzdGFy
dC1pbnRybworICAgOmVuZC1iZWZvcmU6IGVuZC1pbnRybworCisKK0luc3RhbGxhdGlvbgorLS0t
LS0tLS0tLS0tCisKK1lvdSBjYW4gaW5zdGFsbCBwYWNrYWdpbmcgd2l0aCBgYHBpcGBgOgorCisu
LiBjb2RlLWJsb2NrOjogY29uc29sZQorCisgICAgJCBwaXAgaW5zdGFsbCBwYWNrYWdpbmcKKwor
CisuLiB0b2N0cmVlOjoKKyAgICA6bWF4ZGVwdGg6IDEKKyAgICA6Y2FwdGlvbjogQVBJIERvY3Vt
ZW50YXRpb24KKyAgICA6aGlkZGVuOgorCisgICAgdmVyc2lvbgorICAgIHNwZWNpZmllcnMKKyAg
ICBtYXJrZXJzCisgICAgcmVxdWlyZW1lbnRzCisgICAgdGFncworICAgIHV0aWxzCisKKy4uIHRv
Y3RyZWU6OgorICAgIDptYXhkZXB0aDogMgorICAgIDpjYXB0aW9uOiBQcm9qZWN0CisgICAgOmhp
ZGRlbjoKKworICAgIGRldmVsb3BtZW50L2luZGV4CisgICAgc2VjdXJpdHkKKyAgICBjaGFuZ2Vs
b2cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvbWFya2Vycy5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy9kb2NzL21hcmtlcnMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkMjUzNjE2NDc2YWFmMmUxNzFm
MTZmYjAxOThjZmIxNGNhZjZlNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9k
b2NzL21hcmtlcnMucnN0CkBAIC0wLDAgKzEsOTMgQEAKK01hcmtlcnMKKz09PT09PT0KKworLi4g
Y3VycmVudG1vZHVsZTo6IHBhY2thZ2luZy5tYXJrZXJzCisKK09uZSBleHRyYSByZXF1aXJlbWVu
dCBvZiBkZWFsaW5nIHdpdGggZGVwZW5kZW5jaWVzIGlzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkK
K2lmIGl0IGlzIHJlcXVpcmVkIGRlcGVuZGluZyBvbiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBvciBQ
eXRob24gdmVyc2lvbiBpbiB1c2UuCitgUEVQIDUwOGBfIGRlZmluZXMgdGhlIHNjaGVtZSB3aGlj
aCBoYXMgYmVlbiBpbXBsZW1lbnRlZCBieSB0aGlzIG1vZHVsZS4KKworVXNhZ2UKKy0tLS0tCisK
Ky4uIGRvY3Rlc3Q6OgorCisgICAgPj4+IGZyb20gcGFja2FnaW5nLm1hcmtlcnMgaW1wb3J0IE1h
cmtlciwgVW5kZWZpbmVkRW52aXJvbm1lbnROYW1lCisgICAgPj4+IG1hcmtlciA9IE1hcmtlcigi
cHl0aG9uX3ZlcnNpb24+JzInIikKKyAgICA+Pj4gbWFya2VyCisgICAgPE1hcmtlcigncHl0aG9u
X3ZlcnNpb24gPiAiMiInKT4KKyAgICA+Pj4gIyBXZSBjYW4gZXZhbHVhdGUgdGhlIG1hcmtlciB0
byBzZWUgaWYgaXQgaXMgc2F0aXNmaWVkCisgICAgPj4+IG1hcmtlci5ldmFsdWF0ZSgpCisgICAg
VHJ1ZQorICAgID4+PiAjIFdlIGNhbiBhbHNvIG92ZXJyaWRlIHRoZSBlbnZpcm9ubWVudAorICAg
ID4+PiBlbnYgPSB7J3B5dGhvbl92ZXJzaW9uJzogJzEuNS40J30KKyAgICA+Pj4gbWFya2VyLmV2
YWx1YXRlKGVudmlyb25tZW50PWVudikKKyAgICBGYWxzZQorICAgID4+PiAjIE11bHRpcGxlIG1h
cmtlcnMgY2FuIGJlIEFORGVkCisgICAgPj4+IGFuZF9tYXJrZXIgPSBNYXJrZXIoIm9zX25hbWU9
PSdhJyBhbmQgb3NfbmFtZT09J2InIikKKyAgICA+Pj4gYW5kX21hcmtlcgorICAgIDxNYXJrZXIo
J29zX25hbWUgPT0gImEiIGFuZCBvc19uYW1lID09ICJiIicpPgorICAgID4+PiAjIE11bHRpcGxl
IG1hcmtlcnMgY2FuIGJlIE9SZWQKKyAgICA+Pj4gb3JfbWFya2VyID0gTWFya2VyKCJvc19uYW1l
PT0nYScgb3Igb3NfbmFtZT09J2InIikKKyAgICA+Pj4gb3JfbWFya2VyCisgICAgPE1hcmtlcign
b3NfbmFtZSA9PSAiYSIgb3Igb3NfbmFtZSA9PSAiYiInKT4KKyAgICA+Pj4gIyBNYXJrZXJzIGNh
biBiZSBhbHNvIHVzZWQgd2l0aCBleHRyYXMsIHRvIHB1bGwgaW4gZGVwZW5kZW5jaWVzIGlmCisg
ICAgPj4+ICMgYSBjZXJ0YWluIGV4dHJhIGlzIGJlaW5nIGluc3RhbGxlZAorICAgID4+PiBleHRy
YSA9IE1hcmtlcignZXh0cmEgPT0gImJhciInKQorICAgID4+PiAjIEV2YWx1YXRpbmcgYW4gZXh0
cmEgbWFya2VyIHdpdGggbm8gZW52aXJvbm1lbnQgaXMgYW4gZXJyb3IKKyAgICA+Pj4gdHJ5Ogor
ICAgIC4uLiAgICAgZXh0cmEuZXZhbHVhdGUoKQorICAgIC4uLiBleGNlcHQgVW5kZWZpbmVkRW52
aXJvbm1lbnROYW1lOgorICAgIC4uLiAgICAgcGFzcworICAgID4+PiBleHRyYV9lbnZpcm9ubWVu
dCA9IHsnZXh0cmEnOiAnJ30KKyAgICA+Pj4gZXh0cmEuZXZhbHVhdGUoZW52aXJvbm1lbnQ9ZXh0
cmFfZW52aXJvbm1lbnQpCisgICAgRmFsc2UKKyAgICA+Pj4gZXh0cmFfZW52aXJvbm1lbnRbJ2V4
dHJhJ10gPSAnYmFyJworICAgID4+PiBleHRyYS5ldmFsdWF0ZShlbnZpcm9ubWVudD1leHRyYV9l
bnZpcm9ubWVudCkKKyAgICBUcnVlCisKKworUmVmZXJlbmNlCistLS0tLS0tLS0KKworLi4gY2xh
c3M6OiBNYXJrZXIobWFya2VycykKKworICAgIFRoaXMgY2xhc3MgYWJzdHJhY3RzIGhhbmRsaW5n
IG1hcmtlcnMgZm9yIGRlcGVuZGVuY2llcyBvZiBhIHByb2plY3QuIEl0IGNhbgorICAgIGJlIHBh
c3NlZCBhIHNpbmdsZSBtYXJrZXIgb3IgbXVsdGlwbGUgbWFya2VycyB0aGF0IGFyZSBBTkRlZCBv
ciBPUmVkCisgICAgdG9nZXRoZXIuIEVhY2ggbWFya2VyIHdpbGwgYmUgcGFyc2VkIGFjY29yZGlu
ZyB0byBQRVAgNTA4LgorCisgICAgOnBhcmFtIHN0ciBtYXJrZXJzOiBUaGUgc3RyaW5nIHJlcHJl
c2VudGF0aW9uIG9mIGEgbWFya2VyIG9yIG1hcmtlcnMuCisgICAgOnJhaXNlcyBJbnZhbGlkTWFy
a2VyOiBJZiB0aGUgZ2l2ZW4gYGBtYXJrZXJzYGAgYXJlIG5vdCBwYXJzZWFibGUsIHRoZW4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkLgor
CisgICAgLi4gbWV0aG9kOjogZXZhbHVhdGUoZW52aXJvbm1lbnQ9Tm9uZSkKKworICAgIEV2YWx1
YXRlIHRoZSBtYXJrZXIgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgUHl0aG9uIHBy
b2Nlc3MuCisKKyAgICA6cGFyYW0gZGljdCBlbnZpcm9ubWVudDogQSBkaWN0aW9uYXJ5IGNvbnRh
aW5pbmcga2V5cyBhbmQgdmFsdWVzIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92
ZXJyaWRlIHRoZSBkZXRlY3RlZCBlbnZpcm9ubWVudC4KKyAgICA6cmFpc2VzOiBVbmRlZmluZWRD
b21wYXJpc29uOiBJZiB0aGUgbWFya2VyIHVzZXMgYSBQRVAgNDQwIGNvbXBhcmlzb24gb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdzIHdoaWNoIGFyZSBub3QgdmFs
aWQgUEVQIDQ0MCB2ZXJzaW9ucy4KKyAgICA6cmFpc2VzOiBVbmRlZmluZWRFbnZpcm9ubWVudE5h
bWU6IElmIHRoZSBtYXJrZXIgYWNjZXNzZXMgYSB2YWx1ZSB0aGF0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpc24ndCBwcmVzZW50IGluc2lkZSBvZiB0aGUgZW52aXJv
bm1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcnku
CisKKy4uIGV4Y2VwdGlvbjo6IEludmFsaWRNYXJrZXIKKworICAgIFJhaXNlZCB3aGVuIGF0dGVt
cHRpbmcgdG8gY3JlYXRlIGEgOmNsYXNzOmBNYXJrZXJgIHdpdGggYSBzdHJpbmcgdGhhdAorICAg
IGRvZXMgbm90IGNvbmZvcm0gdG8gUEVQIDUwOC4KKworCisuLiBleGNlcHRpb246OiBVbmRlZmlu
ZWRDb21wYXJpc29uCisKKyAgICBSYWlzZWQgd2hlbiBhdHRlbXB0aW5nIHRvIGV2YWx1YXRlIGEg
OmNsYXNzOmBNYXJrZXJgIHdpdGggYSBQRVAgNDQwCisgICAgY29tcGFyaXNvbiBvcGVyYXRvciBh
Z2FpbnN0IHZhbHVlcyB0aGF0IGFyZSBub3QgdmFsaWQgUEVQIDQ0MCB2ZXJzaW9ucy4KKworCisu
LiBleGNlcHRpb246OiBVbmRlZmluZWRFbnZpcm9ubWVudE5hbWUKKworICAgIFJhaXNlZCB3aGVu
IGF0dGVtcHRpbmcgdG8gZXZhbHVhdGUgYSA6Y2xhc3M6YE1hcmtlcmAgd2l0aCBhIHZhbHVlIHRo
YXQgaXMKKyAgICBtaXNzaW5nIGZyb20gdGhlIGV2YWx1YXRpb24gZW52aXJvbm1lbnQuCisKKwor
Li4gX2BQRVAgNTA4YDogaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDUwOC8K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvcmVxdWlyZW1lbnRzLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL2RvY3MvcmVxdWlyZW1lbnRzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lN2M1YTg1YTVlNTlk
ZmY1MjZjNTYwYmNlYjMwZjMxZTU4NjMwYmRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvZG9jcy9yZXF1aXJlbWVudHMucnN0CkBAIC0wLDAgKzEsODkgQEAKK1JlcXVpcmVtZW50
cworPT09PT09PT09PT09CisKKy4uIGN1cnJlbnRtb2R1bGU6OiBwYWNrYWdpbmcucmVxdWlyZW1l
bnRzCisKK1BhcnNlIGEgZ2l2ZW4gcmVxdWlyZW1lbnRzIGxpbmUgZm9yIHNwZWNpZnlpbmcgZGVw
ZW5kZW5jaWVzIG9mIGEgUHl0aG9uCitwcm9qZWN0LCB1c2luZyBgUEVQIDUwOGBfIHdoaWNoIGRl
ZmluZXMgdGhlIHNjaGVtZSB0aGF0IGhhcyBiZWVuIGltcGxlbWVudGVkCitieSB0aGlzIG1vZHVs
ZS4KKworVXNhZ2UKKy0tLS0tCisKKy4uIGRvY3Rlc3Q6OgorCisgICAgPj4+IGZyb20gcGFja2Fn
aW5nLnJlcXVpcmVtZW50cyBpbXBvcnQgUmVxdWlyZW1lbnQKKyAgICA+Pj4gc2ltcGxlX3JlcSA9
IFJlcXVpcmVtZW50KCJuYW1lIikKKyAgICA+Pj4gc2ltcGxlX3JlcQorICAgIDxSZXF1aXJlbWVu
dCgnbmFtZScpPgorICAgID4+PiBzaW1wbGVfcmVxLm5hbWUKKyAgICAnbmFtZScKKyAgICA+Pj4g
c2ltcGxlX3JlcS51cmwgaXMgTm9uZQorICAgIFRydWUKKyAgICA+Pj4gc2ltcGxlX3JlcS5leHRy
YXMKKyAgICBzZXQoKQorICAgID4+PiBzaW1wbGVfcmVxLnNwZWNpZmllcgorICAgIDxTcGVjaWZp
ZXJTZXQoJycpPgorICAgID4+PiBzaW1wbGVfcmVxLm1hcmtlciBpcyBOb25lCisgICAgVHJ1ZQor
ICAgID4+PiAjIFJlcXVpcmVtZW50cyBjYW4gYmUgc3BlY2lmaWVkIHdpdGggZXh0cmFzLCBzcGVj
aWZpZXJzIGFuZCBtYXJrZXJzCisgICAgPj4+IHJlcSA9IFJlcXVpcmVtZW50KCduYW1lW2Zvb10+
PTIsPDM7IHB5dGhvbl92ZXJzaW9uPiIyLjAiJykKKyAgICA+Pj4gcmVxLm5hbWUKKyAgICAnbmFt
ZScKKyAgICA+Pj4gcmVxLmV4dHJhcworICAgIHsnZm9vJ30KKyAgICA+Pj4gcmVxLnNwZWNpZmll
cgorICAgIDxTcGVjaWZpZXJTZXQoJzwzLD49MicpPgorICAgID4+PiByZXEubWFya2VyCisgICAg
PE1hcmtlcigncHl0aG9uX3ZlcnNpb24gPiAiMi4wIicpPgorICAgID4+PiAjIFJlcXVpcmVtZW50
cyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgd2l0aCBhIFVSTCwgYnV0IG1heSBub3Qgc3BlY2lmeQor
ICAgID4+PiAjIGEgdmVyc2lvbi4KKyAgICA+Pj4gdXJsX3JlcSA9IFJlcXVpcmVtZW50KCduYW1l
IEAgaHR0cHM6Ly9naXRodWIuY29tL3B5cGEgO29zX25hbWU9PSJhIicpCisgICAgPj4+IHVybF9y
ZXEubmFtZQorICAgICduYW1lJworICAgID4+PiB1cmxfcmVxLnVybAorICAgICdodHRwczovL2dp
dGh1Yi5jb20vcHlwYScKKyAgICA+Pj4gdXJsX3JlcS5leHRyYXMKKyAgICBzZXQoKQorICAgID4+
PiB1cmxfcmVxLm1hcmtlcgorICAgIDxNYXJrZXIoJ29zX25hbWUgPT0gImEiJyk+CisKKworUmVm
ZXJlbmNlCistLS0tLS0tLS0KKworLi4gY2xhc3M6OiBSZXF1aXJlbWVudChyZXF1aXJlbWVudCkK
KworICAgIFRoaXMgY2xhc3MgYWJzdHJhY3RzIGhhbmRsaW5nIHRoZSBkZXRhaWxzIG9mIGEgcmVx
dWlyZW1lbnQgZm9yIGEgcHJvamVjdC4KKyAgICBFYWNoIHJlcXVpcmVtZW50IHdpbGwgYmUgcGFy
c2VkIGFjY29yZGluZyB0byBQRVAgNTA4LgorCisgICAgOnBhcmFtIHN0ciByZXF1aXJlbWVudDog
VGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHJlcXVpcmVtZW50LgorICAgIDpyYWlzZXMg
SW52YWxpZFJlcXVpcmVtZW50OiBJZiB0aGUgZ2l2ZW4gYGByZXF1aXJlbWVudGBgIGlzIG5vdCBw
YXJzZWFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gdGhpcyBleGNl
cHRpb24gd2lsbCBiZSByYWlzZWQuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBuYW1lCisKKyAgICAg
ICBUaGUgbmFtZSBvZiB0aGUgcmVxdWlyZW1lbnQuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiB1cmwK
KworICAgICAgVGhlIFVSTCwgaWYgYW55IHdoZXJlIHRvIGRvd25sb2FkIHRoZSByZXF1aXJlbWVu
dCBmcm9tLiBDYW4gYmUgTm9uZS4KKworICAgIC4uIGF0dHJpYnV0ZTo6IGV4dHJhcworCisgICAg
ICBBIHNldCBvZiBleHRyYXMgdGhhdCB0aGUgcmVxdWlyZW1lbnQgc3BlY2lmaWVzLgorCisgICAg
Li4gYXR0cmlidXRlOjogc3BlY2lmaWVyCisKKyAgICAgIEEgOmNsYXNzOmB+LlNwZWNpZmllclNl
dGAgb2YgdGhlIHZlcnNpb24gc3BlY2lmaWVkIGJ5IHRoZSByZXF1aXJlbWVudC4KKworICAgIC4u
IGF0dHJpYnV0ZTo6IG1hcmtlcgorCisgICAgICBBIDpjbGFzczpgfi5NYXJrZXJgIG9mIHRoZSBt
YXJrZXIgZm9yIHRoZSByZXF1aXJlbWVudC4gQ2FuIGJlIE5vbmUuCisKKy4uIGV4Y2VwdGlvbjo6
IEludmFsaWRSZXF1aXJlbWVudAorCisgICAgUmFpc2VkIHdoZW4gYXR0ZW1wdGluZyB0byBjcmVh
dGUgYSA6Y2xhc3M6YFJlcXVpcmVtZW50YCB3aXRoIGEgc3RyaW5nIHRoYXQKKyAgICBkb2VzIG5v
dCBjb25mb3JtIHRvIFBFUCA1MDguCisKKy4uIF9gUEVQIDUwOGA6IGh0dHBzOi8vd3d3LnB5dGhv
bi5vcmcvZGV2L3BlcHMvcGVwLTA1MDgvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2Nz
L3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3JlcXVpcmVtZW50cy50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTk1YWUxOGI0ZjlkMzMxMDkxYmM1YWMwMzY5ODVjN2ZiMWY5NmNkMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvcmVxdWlyZW1lbnRzLnR4dApAQCAt
MCwwICsxIEBACitmdXJvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3NlY3VyaXR5
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3Mvc2VjdXJpdHkucnN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZmRi
MDAwMjllZTIxN2JlYWMxZjYxZDZhZDM2ZjJkZDdmMGFkMzYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy9kb2NzL3NlY3VyaXR5LnJzdApAQCAtMCwwICsxLDE4IEBACitTZWN1cml0
eQorPT09PT09PT0KKworV2UgdGFrZSB0aGUgc2VjdXJpdHkgb2YgcGFja2FnaW5nIHNlcmlvdXNs
eS4gSWYgeW91IGJlbGlldmUgeW91J3ZlIGlkZW50aWZpZWQgYQorc2VjdXJpdHkgaXNzdWUgaW4g
aXQsIERPIE5PVCByZXBvcnQgdGhlIGlzc3VlIGluIGFueSBwdWJsaWMgZm9ydW0sIGluY2x1ZGlu
ZworKGJ1dCBub3QgbGltaXRlZCB0byk6CisKKy0gR2l0SHViIGlzc3VlIHRyYWNrZXIKKy0gT2Zm
aWNpYWwgb3IgdW5vZmZpY2lhbCBjaGF0IGNoYW5uZWxzCistIE9mZmljaWFsIG9yIHVub2ZmaWNp
YWwgbWFpbGluZyBsaXN0cworCitQbGVhc2UgcmVwb3J0IHlvdXIgaXNzdWUgdG8gYGBzZWN1cml0
eUBweXRob24ub3JnYGAuIE1lc3NhZ2VzIG1heSBiZSBvcHRpb25hbGx5CitlbmNyeXB0ZWQgd2l0
aCBHUEcgdXNpbmcga2V5IGZpbmdlcnByaW50cyBhdmFpbGFibGUgYXQgdGhlIGBQeXRob24gU2Vj
dXJpdHkKK3BhZ2UgPGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvbmV3cy9zZWN1cml0eS8+YF8uCisK
K09uY2UgeW91J3ZlIHN1Ym1pdHRlZCBhbiBpc3N1ZSB2aWEgZW1haWwsIHlvdSBzaG91bGQgcmVj
ZWl2ZSBhbiBhY2tub3dsZWRnbWVudAord2l0aGluIDQ4IGhvdXJzLCBhbmQgZGVwZW5kaW5nIG9u
IHRoZSBhY3Rpb24gdG8gYmUgdGFrZW4sIHlvdSBtYXkgcmVjZWl2ZQorZnVydGhlciBmb2xsb3ct
dXAgZW1haWxzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9zcGVjaWZpZXJzLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL2RvY3Mvc3BlY2lmaWVycy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFlNDU4
Yjg3ODlhNTVjZWUwNDQ1NGQ0YmM3ZGJlYWE4MTk0ZWUwZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL2RvY3Mvc3BlY2lmaWVycy5yc3QKQEAgLTAsMCArMSwyMjIgQEAKK1NwZWNp
ZmllcnMKKz09PT09PT09PT0KKworLi4gY3VycmVudG1vZHVsZTo6IHBhY2thZ2luZy5zcGVjaWZp
ZXJzCisKK0EgY29yZSByZXF1aXJlbWVudCBvZiBkZWFsaW5nIHdpdGggZGVwZW5kZW5jaWVzIGlz
IHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgd2hhdAordmVyc2lvbnMgb2YgYSBkZXBlbmRlbmN5IGFy
ZSBhY2NlcHRhYmxlIGZvciB5b3UuIGBQRVAgNDQwYF8gZGVmaW5lcyB0aGUKK3N0YW5kYXJkIHNw
ZWNpZmllciBzY2hlbWUgd2hpY2ggaGFzIGJlZW4gaW1wbGVtZW50ZWQgYnkgdGhpcyBtb2R1bGUu
CisKK1VzYWdlCistLS0tLQorCisuLiBkb2N0ZXN0OjoKKworICAgID4+PiBmcm9tIHBhY2thZ2lu
Zy5zcGVjaWZpZXJzIGltcG9ydCBTcGVjaWZpZXJTZXQKKyAgICA+Pj4gZnJvbSBwYWNrYWdpbmcu
dmVyc2lvbiBpbXBvcnQgVmVyc2lvbgorICAgID4+PiBzcGVjMSA9IFNwZWNpZmllclNldCgifj0x
LjAiKQorICAgID4+PiBzcGVjMQorICAgIDxTcGVjaWZpZXJTZXQoJ349MS4wJyk+CisgICAgPj4+
IHNwZWMyID0gU3BlY2lmaWVyU2V0KCI+PTEuMCIpCisgICAgPj4+IHNwZWMyCisgICAgPFNwZWNp
ZmllclNldCgnPj0xLjAnKT4KKyAgICA+Pj4gIyBXZSBjYW4gY29tYmluZSBzcGVjaWZpZXJzCisg
ICAgPj4+IGNvbWJpbmVkX3NwZWMgPSBzcGVjMSAmIHNwZWMyCisgICAgPj4+IGNvbWJpbmVkX3Nw
ZWMKKyAgICA8U3BlY2lmaWVyU2V0KCc+PTEuMCx+PTEuMCcpPgorICAgID4+PiAjIFdlIGNhbiBh
bHNvIGltcGxpY2l0bHkgY29tYmluZSBhIHN0cmluZyBzcGVjaWZpZXIKKyAgICA+Pj4gY29tYmlu
ZWRfc3BlYyAmPSAiIT0xLjEiCisgICAgPj4+IGNvbWJpbmVkX3NwZWMKKyAgICA8U3BlY2lmaWVy
U2V0KCchPTEuMSw+PTEuMCx+PTEuMCcpPgorICAgID4+PiAjIENyZWF0ZSBhIGZldyB2ZXJzaW9u
cyB0byBjaGVjayBmb3IgY29udGFpbnMuCisgICAgPj4+IHYxID0gVmVyc2lvbigiMS4wYTUiKQor
ICAgID4+PiB2MiA9IFZlcnNpb24oIjEuMCIpCisgICAgPj4+ICMgV2UgY2FuIGNoZWNrIGEgdmVy
c2lvbiBvYmplY3QgdG8gc2VlIGlmIGl0IGZhbGxzIHdpdGhpbiBhIHNwZWNpZmllcgorICAgID4+
PiB2MSBpbiBjb21iaW5lZF9zcGVjCisgICAgRmFsc2UKKyAgICA+Pj4gdjIgaW4gY29tYmluZWRf
c3BlYworICAgIFRydWUKKyAgICA+Pj4gIyBXZSBjYW4gZXZlbiBkbyB0aGUgc2FtZSB3aXRoIGEg
c3RyaW5nIGJhc2VkIHZlcnNpb24KKyAgICA+Pj4gIjEuNCIgaW4gY29tYmluZWRfc3BlYworICAg
IFRydWUKKyAgICA+Pj4gIyBGaW5hbGx5IHdlIGNhbiBmaWx0ZXIgYSBsaXN0IG9mIHZlcnNpb25z
IHRvIGdldCBvbmx5IHRob3NlIHdoaWNoIGFyZQorICAgID4+PiAjIGNvbnRhaW5lZCB3aXRoaW4g
b3VyIHNwZWNpZmllci4KKyAgICA+Pj4gbGlzdChjb21iaW5lZF9zcGVjLmZpbHRlcihbdjEsIHYy
LCAiMS40Il0pKQorICAgIFs8VmVyc2lvbignMS4wJyk+LCAnMS40J10KKworCitSZWZlcmVuY2UK
Ky0tLS0tLS0tLQorCisuLiBjbGFzczo6IFNwZWNpZmllclNldChzcGVjaWZpZXJzLCBwcmVyZWxl
YXNlcz1Ob25lKQorCisgICAgVGhpcyBjbGFzcyBhYnN0cmFjdHMgaGFuZGxpbmcgc3BlY2lmeWlu
ZyB0aGUgZGVwZW5kZW5jaWVzIG9mIGEgcHJvamVjdC4gSXQKKyAgICBjYW4gYmUgcGFzc2VkIGEg
c2luZ2xlIHNwZWNpZmllciAoYGA+PTMuMGBgKSwgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZgor
ICAgIHNwZWNpZmllcnMgKGBgPj0zLjAsIT0zLjFgYCksIG9yIG5vIHNwZWNpZmllciBhdCBhbGwu
IEVhY2ggaW5kaXZpZHVhbAorICAgIHNwZWNpZmllciB3aWxsIGJlIGF0dGVtcHRlZCB0byBiZSBw
YXJzZWQgYXMgYSBQRVAgNDQwIHNwZWNpZmllcgorICAgICg6Y2xhc3M6YFNwZWNpZmllcmApIG9y
IGFzIGEgbGVnYWN5LCBzZXR1cHRvb2xzIHN0eWxlIHNwZWNpZmllcgorICAgIChkZXByZWNhdGVk
IDpjbGFzczpgTGVnYWN5U3BlY2lmaWVyYCkuIFlvdSBtYXkgY29tYmluZQorICAgIDpjbGFzczpg
U3BlY2lmaWVyU2V0YCBpbnN0YW5jZXMgdXNpbmcgdGhlIGBgJmBgIG9wZXJhdG9yCisgICAgKGBg
U3BlY2lmaWVyU2V0KCI+MiIpICYgU3BlY2lmaWVyU2V0KCI8NCIpYGApLgorCisgICAgQm90aCB0
aGUgbWVtYmVyc2hpcCB0ZXN0cyBhbmQgdGhlIGNvbWJpbmF0aW9uIHN1cHBvcnQgdXNpbmcgcmF3
IHN0cmluZ3MKKyAgICBpbiBwbGFjZSBvZiBhbHJlYWR5IGluc3RhbnRpYXRlZCBvYmplY3RzLgor
CisgICAgOnBhcmFtIHN0ciBzcGVjaWZpZXJzOiBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9m
IGEgc3BlY2lmaWVyIG9yIGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hLXNlcGFy
YXRlZCBsaXN0IG9mIHNwZWNpZmllcnMgd2hpY2ggd2lsbAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYmUgcGFyc2VkIGFuZCBub3JtYWxpemVkIGJlZm9yZSB1c2UuCisgICAgOnBhcmFtIGJv
b2wgcHJlcmVsZWFzZXM6IFRoaXMgdGVsbHMgdGhlIFNwZWNpZmllclNldCBpZiBpdCBzaG91bGQg
YWNjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXJlbGVhc2UgdmVyc2lvbnMg
aWYgYXBwbGljYWJsZSBvciBub3QuIFRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0IG9mIGBgTm9uZWBgIHdpbGwgYXV0b2RldGVjdCBpdCBmcm9tIHRoZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnaXZlbiBzcGVjaWZpZXJzLgorICAgIDpyYWlzZXMgSW52YWxp
ZFNwZWNpZmllcjogSWYgdGhlIGdpdmVuIGBgc3BlY2lmaWVyc2BgIGFyZSBub3QgcGFyc2VhYmxl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGFuIHRoaXMgZXhjZXB0aW9uIHdpbGwg
YmUgcmFpc2VkLgorCisgICAgLi4gYXR0cmlidXRlOjogcHJlcmVsZWFzZXMKKworICAgICAgICBB
IGJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoaXMgOmNsYXNzOmBTcGVjaWZpZXJT
ZXRgCisgICAgICAgIHJlcHJlc2VudHMgYSBzcGVjaWZpZXIgdGhhdCBpbmNsdWRlcyBhIHByZS1y
ZWxlYXNlIHZlcnNpb25zLiBUaGlzIGNhbiBiZQorICAgICAgICBzZXQgdG8gZWl0aGVyIGBgVHJ1
ZWBgIG9yIGBgRmFsc2VgYCB0byBleHBsaWNpdGx5IGVuYWJsZSBvciBkaXNhYmxlCisgICAgICAg
IHByZXJlbGVhc2VzIG9yIGl0IGNhbiBiZSBzZXQgdG8gYGBOb25lYGAgKHRoZSBkZWZhdWx0KSB0
byBlbmFibGUKKyAgICAgICAgYXV0b2RldGVjdGlvbi4KKworICAgIC4uIG1ldGhvZDo6IF9fY29u
dGFpbnNfXyh2ZXJzaW9uKQorCisgICAgICAgIFRoaXMgaXMgdGhlIG1vcmUgUHl0aG9uaWMgdmVy
c2lvbiBvZiA6bWV0aDpgY29udGFpbnMoKWAsIGJ1dCBkb2VzCisgICAgICAgIG5vdCBhbGxvdyB5
b3UgdG8gb3ZlcnJpZGUgdGhlIGBgcHJlcmVsZWFzZXNgYCBhcmd1bWVudC4gIElmIHlvdQorICAg
ICAgICBuZWVkIHRoYXQsIHVzZSA6bWV0aDpgY29udGFpbnMoKWAuCisKKyAgICAgICAgU2VlIDpt
ZXRoOmBjb250YWlucygpYC4KKworICAgIC4uIG1ldGhvZDo6IGNvbnRhaW5zKHZlcnNpb24sIHBy
ZXJlbGVhc2VzPU5vbmUpCisKKyAgICAgICAgRGV0ZXJtaW5lcyBpZiBgYHZlcnNpb25gYCwgd2hp
Y2ggY2FuIGJlIGVpdGhlciBhIHZlcnNpb24gc3RyaW5nLCBhCisgICAgICAgIDpjbGFzczpgVmVy
c2lvbmAsIG9yIGEgZGVwcmVjYXRlZCA6Y2xhc3M6YExlZ2FjeVZlcnNpb25gIG9iamVjdCwgaXMK
KyAgICAgICAgY29udGFpbmVkIHdpdGhpbiB0aGlzIHNldCBvZiBzcGVjaWZpZXJzLgorCisgICAg
ICAgIFRoaXMgd2lsbCBlaXRoZXIgbWF0Y2ggb3Igbm90IG1hdGNoIHByZXJlbGVhc2VzIGJhc2Vk
IG9uIHRoZQorICAgICAgICBgYHByZXJlbGVhc2VzYGAgcGFyYW1ldGVyLiBXaGVuIGBgcHJlcmVs
ZWFzZXNgYCBpcyBzZXQgdG8gYGBOb25lYGAKKyAgICAgICAgKHRoZSBkZWZhdWx0KSBpdCB3aWxs
IHVzZSB0aGUgYGBTcGVjaWZpZXIoKS5wcmVyZWxlYXNlc2BgIGF0dHJpYnV0ZSB0bworICAgICAg
ICBkZXRlcm1pbmUgaWYgdG8gYWxsb3cgdGhlbS4gT3RoZXJ3aXNlIGl0IHdpbGwgdXNlIHRoZSBi
b29sZWFuIHZhbHVlIG9mCisgICAgICAgIHRoZSBwYXNzZWQgaW4gdmFsdWUgdG8gZGV0ZXJtaW5l
IGlmIHRvIGFsbG93IHRoZW0gb3Igbm90LgorCisgICAgLi4gbWV0aG9kOjogX19sZW5fXygpCisK
KyAgICAgICAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIHNwZWNpZmllcnMgaW4gdGhpcyBzcGVjaWZp
ZXIgc2V0LgorCisgICAgLi4gbWV0aG9kOjogX19pdGVyX18oKQorCisgICAgICAgIFJldHVybnMg
YW4gaXRlcmF0b3Igb3ZlciBhbGwgdGhlIHVuZGVybHlpbmcgOmNsYXNzOmBTcGVjaWZpZXJgIChv
cgorICAgICAgICBkZXByZWNhdGVkIDpjbGFzczpgTGVnYWN5U3BlY2lmaWVyYCkgaW5zdGFuY2Vz
IGluIHRoaXMgc3BlY2lmaWVyIHNldC4KKworICAgIC4uIG1ldGhvZDo6IGZpbHRlcihpdGVyYWJs
ZSwgcHJlcmVsZWFzZXM9Tm9uZSkKKworICAgICAgICBUYWtlcyBhbiBpdGVyYWJsZSB0aGF0IGNh
biBjb250YWluIHZlcnNpb24gc3RyaW5ncywgOmNsYXNzOmB+LlZlcnNpb25gLAorICAgICAgICBh
bmQgZGVwcmVjYXRlZCA6Y2xhc3M6YH4uTGVnYWN5VmVyc2lvbmAgaW5zdGFuY2VzIGFuZCB3aWxs
IHRoZW4gZmlsdGVyCisgICAgICAgIGl0LCByZXR1cm5pbmcgYW4gaXRlcmFibGUgdGhhdCBjb250
YWlucyBvbmx5IGl0ZW1zIHdoaWNoIG1hdGNoIHRoZQorICAgICAgICBydWxlcyBvZiB0aGlzIHNw
ZWNpZmllciBvYmplY3QuCisKKyAgICAgICAgVGhpcyBtZXRob2QgaXMgc21hcnRlciB0aGFuIGp1
c3QKKyAgICAgICAgYGBmaWx0ZXIoU3BlY2lmaWVyKCkuY29udGFpbnMsIFsuLi5dKWBgIGJlY2F1
c2UgaXQgaW1wbGVtZW50cyB0aGUgcnVsZQorICAgICAgICBmcm9tIFBFUCA0NDAgd2hlcmUgYSBw
cmVyZWxlYXNlIGl0ZW0gU0hPVUxEIGJlIGFjY2VwdGVkIGlmIG5vIG90aGVyCisgICAgICAgIHZl
cnNpb25zIG1hdGNoIHRoZSBnaXZlbiBzcGVjaWZpZXIuCisKKyAgICAgICAgVGhlIGBgcHJlcmVs
ZWFzZXNgYCBwYXJhbWV0ZXIgZnVuY3Rpb25zIHNpbWlsYXJseSB0byB0aGF0IG9mIHRoZSBzYW1l
CisgICAgICAgIHBhcmFtZXRlciBpbiBgYGNvbnRhaW5zYGAuIElmIHRoZSB2YWx1ZSBpcyBgYE5v
bmVgYCAodGhlIGRlZmF1bHQpIHRoZW4KKyAgICAgICAgaXQgd2lsbCBpbnRlbGxpZ2VudGx5IGRl
Y2lkZSBpZiB0byBhbGxvdyBwcmVyZWxlYXNlcyBiYXNlZCBvbiB0aGUKKyAgICAgICAgc3BlY2lm
aWVyLCB0aGUgYGBTcGVjaWZpZXIoKS5wcmVyZWxlYXNlc2BgIHZhbHVlLCBhbmQgdGhlIFBFUCA0
NDAKKyAgICAgICAgcnVsZXMuIE90aGVyd2lzZSBpdCB3aWxsIGFjdCBhcyBhIGJvb2xlYW4gd2hp
Y2ggd2lsbCBlbmFibGUgb3IgZGlzYWJsZQorICAgICAgICBhbGwgcHJlcmVsZWFzZSB2ZXJzaW9u
cyBmcm9tIGJlaW5nIGluY2x1ZGVkLgorCisKKy4uIGNsYXNzOjogU3BlY2lmaWVyKHNwZWNpZmll
ciwgcHJlcmVsZWFzZXM9Tm9uZSkKKworICAgIFRoaXMgY2xhc3MgYWJzdHJhY3RzIHRoZSBoYW5k
bGluZyBvZiBhIHNpbmdsZSBgUEVQIDQ0MGBfIGNvbXBhdGlibGUKKyAgICBzcGVjaWZpZXIuIEl0
IGlzIGdlbmVyYWxseSBub3QgcmVxdWlyZWQgdG8gaW5zdGFudGlhdGUgdGhpcyBtYW51YWxseSwK
KyAgICBwcmVmZXJyaW5nIGluc3RlYWQgdG8gd29yayB3aXRoIDpjbGFzczpgU3BlY2lmaWVyU2V0
YC4KKworICAgIDpwYXJhbSBzdHIgc3BlY2lmaWVyOiBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9u
IG9mIGEgc3BlY2lmaWVyIHdoaWNoIHdpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYmUg
cGFyc2VkIGFuZCBub3JtYWxpemVkIGJlZm9yZSB1c2UuCisgICAgOnBhcmFtIGJvb2wgcHJlcmVs
ZWFzZXM6IFRoaXMgdGVsbHMgdGhlIHNwZWNpZmllciBpZiBpdCBzaG91bGQgYWNjZXB0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByZXJlbGVhc2UgdmVyc2lvbnMgaWYgYXBwbGljYWJs
ZSBvciBub3QuIFRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IG9mIGBg
Tm9uZWBgIHdpbGwgYXV0b2RldGVjdCBpdCBmcm9tIHRoZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnaXZlbiBzcGVjaWZpZXJzLgorICAgIDpyYWlzZXMgSW52YWxpZFNwZWNpZmllcjog
SWYgdGhlIGBgc3BlY2lmaWVyYGAgZG9lcyBub3QgY29uZm9ybSB0byBQRVAgNDQwCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBhbnkgd2F5IHRoZW4gdGhpcyBleGNlcHRpb24gd2ls
bCBiZSByYWlzZWQuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBvcGVyYXRvcgorCisgICAgICAgIFRo
ZSBzdHJpbmcgdmFsdWUgb2YgdGhlIG9wZXJhdG9yIHBhcnQgb2YgdGhpcyBzcGVjaWZpZXIuCisK
KyAgICAuLiBhdHRyaWJ1dGU6OiB2ZXJzaW9uCisKKyAgICAgICAgVGhlIHN0cmluZyB2ZXJzaW9u
IG9mIHRoZSB2ZXJzaW9uIHBhcnQgb2YgdGhpcyBzcGVjaWZpZXIuCisKKyAgICAuLiBhdHRyaWJ1
dGU6OiBwcmVyZWxlYXNlcworCisgICAgICAgIFNlZSA6YXR0cjpgU3BlY2lmaWVyU2V0LnByZXJl
bGVhc2VzYC4KKworICAgIC4uIG1ldGhvZDo6IF9fY29udGFpbnNfXyh2ZXJzaW9uKQorCisgICAg
ICAgIFNlZSA6bWV0aDpgU3BlY2lmaWVyU2V0Ll9fY29udGFpbnNfXygpYC4KKworICAgIC4uIG1l
dGhvZDo6IGNvbnRhaW5zKHZlcnNpb24sIHByZXJlbGVhc2VzPU5vbmUpCisKKyAgICAgICAgU2Vl
IDptZXRoOmBTcGVjaWZpZXJTZXQuY29udGFpbnMoKWAuCisKKyAgICAuLiBtZXRob2Q6OiBmaWx0
ZXIoaXRlcmFibGUsIHByZXJlbGVhc2VzPU5vbmUpCisKKyAgICAgICAgU2VlIDptZXRoOmBTcGVj
aWZpZXJTZXQuZmlsdGVyKClgLgorCisKKy4uIGNsYXNzOjogTGVnYWN5U3BlY2lmaWVyKHNwZWNp
ZmllciwgcHJlcmVsZWFzZXM9Tm9uZSkKKworICAgIC4uIGRlcHJlY2F0ZWQ6OiAyMC41CisKKyAg
ICAgICAgVXNlIDpjbGFzczpgU3BlY2lmaWVyYCBpbnN0ZWFkLgorCisgICAgVGhpcyBjbGFzcyBh
YnN0cmFjdHMgdGhlIGhhbmRsaW5nIG9mIGEgc2luZ2xlIGxlZ2FjeSwgc2V0dXB0b29scyBzdHls
ZQorICAgIHNwZWNpZmllci4gSXQgaXMgZ2VuZXJhbGx5IG5vdCByZXF1aXJlZCB0byBpbnN0YW50
aWF0ZSB0aGlzIG1hbnVhbGx5LAorICAgIHByZWZlcnJpbmcgaW5zdGVhZCB0byB3b3JrIHdpdGgg
OmNsYXNzOmBTcGVjaWZpZXJTZXRgLgorCisgICAgOnBhcmFtIHN0ciBzcGVjaWZpZXI6IFRoZSBz
dHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBzcGVjaWZpZXIgd2hpY2ggd2lsbAorICAgICAgICAg
ICAgICAgICAgICAgICAgICBiZSBwYXJzZWQgYW5kIG5vcm1hbGl6ZWQgYmVmb3JlIHVzZS4KKyAg
ICA6cGFyYW0gYm9vbCBwcmVyZWxlYXNlczogVGhpcyB0ZWxscyB0aGUgc3BlY2lmaWVyIGlmIGl0
IHNob3VsZCBhY2NlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlcmVsZWFzZSB2
ZXJzaW9ucyBpZiBhcHBsaWNhYmxlIG9yIG5vdC4gVGhlCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQgb2YgYGBOb25lYGAgd2lsbCBhdXRvZGV0ZWN0IGl0IGZyb20gdGhlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpdmVuIHNwZWNpZmllcnMuCisgICAgOnJhaXNl
cyBJbnZhbGlkU3BlY2lmaWVyOiBJZiB0aGUgYGBzcGVjaWZpZXJgYCBpcyBub3QgcGFyc2VhYmxl
IHRoZW4gdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSByYWlzZWQu
CisKKyAgICAuLiBhdHRyaWJ1dGU6OiBvcGVyYXRvcgorCisgICAgICAgIFRoZSBzdHJpbmcgdmFs
dWUgb2YgdGhlIG9wZXJhdG9yIHBhcnQgb2YgdGhpcyBzcGVjaWZpZXIuCisKKyAgICAuLiBhdHRy
aWJ1dGU6OiB2ZXJzaW9uCisKKyAgICAgICAgVGhlIHN0cmluZyB2ZXJzaW9uIG9mIHRoZSB2ZXJz
aW9uIHBhcnQgb2YgdGhpcyBzcGVjaWZpZXIuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBwcmVyZWxl
YXNlcworCisgICAgICAgIFNlZSA6YXR0cjpgU3BlY2lmaWVyU2V0LnByZXJlbGVhc2VzYC4KKwor
ICAgIC4uIG1ldGhvZDo6IF9fY29udGFpbnNfXyh2ZXJzaW9uKQorCisgICAgICAgIFNlZSA6bWV0
aDpgU3BlY2lmaWVyU2V0Ll9fY29udGFpbnNfXygpYC4KKworICAgIC4uIG1ldGhvZDo6IGNvbnRh
aW5zKHZlcnNpb24sIHByZXJlbGVhc2VzPU5vbmUpCisKKyAgICAgICAgU2VlIDptZXRoOmBTcGVj
aWZpZXJTZXQuY29udGFpbnMoKWAuCisKKyAgICAuLiBtZXRob2Q6OiBmaWx0ZXIoaXRlcmFibGUs
IHByZXJlbGVhc2VzPU5vbmUpCisKKyAgICAgICAgU2VlIDptZXRoOmBTcGVjaWZpZXJTZXQuZmls
dGVyKClgLgorCisKKy4uIGV4Y2VwdGlvbjo6IEludmFsaWRTcGVjaWZpZXIKKworICAgIFJhaXNl
ZCB3aGVuIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGEgOmNsYXNzOmBTcGVjaWZpZXJgIHdpdGggYSBz
cGVjaWZpZXIKKyAgICBzdHJpbmcgdGhhdCBkb2VzIG5vdCBjb25mb3JtIHRvIGBQRVAgNDQwYF8u
CisKKworLi4gX2BQRVAgNDQwYDogaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAt
MDQ0MC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvdGFncy5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy9kb2NzL3RhZ3MucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkN2UxMGFiNjM2MzUxYWE2MTU4MmVk
YjFkM2Y3M2RhNDUzZDY0NjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2Nz
L3RhZ3MucnN0CkBAIC0wLDAgKzEsMjIwIEBACitUYWdzCis9PT09CisKKy4uIGN1cnJlbnRtb2R1
bGU6OiBwYWNrYWdpbmcudGFncworCitXaGVlbHMgZW5jb2RlIHRoZSBQeXRob24gaW50ZXJwcmV0
ZXIsIEFCSSwgYW5kIHBsYXRmb3JtIHRoYXQgdGhleSBzdXBwb3J0IGluCit0aGVpciBmaWxlbmFt
ZXMgdXNpbmcgYHBsYXRmb3JtIGNvbXBhdGliaWxpdHkgdGFnc2BfLiBUaGlzIG1vZHVsZSBwcm92
aWRlcworc3VwcG9ydCBmb3IgYm90aCBwYXJzaW5nIHRoZXNlIHRhZ3MgYXMgd2VsbCBhcyBkaXNj
b3ZlcmluZyB3aGF0IHRhZ3MgdGhlCitydW5uaW5nIFB5dGhvbiBpbnRlcnByZXRlciBzdXBwb3J0
cy4KKworVXNhZ2UKKy0tLS0tCisKKy4uIGRvY3Rlc3Q6OgorCisgICAgPj4+IGZyb20gcGFja2Fn
aW5nLnRhZ3MgaW1wb3J0IFRhZywgc3lzX3RhZ3MKKyAgICA+Pj4gaW1wb3J0IHN5cworICAgID4+
PiBsb29raW5nX2ZvciA9IFRhZygicHl7bWFqb3J9Ii5mb3JtYXQobWFqb3I9c3lzLnZlcnNpb25f
aW5mby5tYWpvciksICJub25lIiwgImFueSIpCisgICAgPj4+IHN1cHBvcnRlZF90YWdzID0gbGlz
dChzeXNfdGFncygpKQorICAgID4+PiBsb29raW5nX2ZvciBpbiBzdXBwb3J0ZWRfdGFncworICAg
IFRydWUKKyAgICA+Pj4gcmVhbGx5X29sZCA9IFRhZygicHkxIiwgIm5vbmUiLCAiYW55IikKKyAg
ICA+Pj4gd2hlZWxzID0ge3JlYWxseV9vbGQsIGxvb2tpbmdfZm9yfQorICAgID4+PiBiZXN0X3do
ZWVsID0gTm9uZQorICAgID4+PiBmb3Igc3VwcG9ydGVkX3RhZyBpbiBzdXBwb3J0ZWRfdGFnczoK
KyAgICAuLi4gICAgIGZvciB3aGVlbF90YWcgaW4gd2hlZWxzOgorICAgIC4uLiAgICAgICAgIGlm
IHN1cHBvcnRlZF90YWcgPT0gd2hlZWxfdGFnOgorICAgIC4uLiAgICAgICAgICAgICBiZXN0X3do
ZWVsID0gd2hlZWxfdGFnCisgICAgLi4uICAgICAgICAgICAgIGJyZWFrCisgICAgPj4+IGJlc3Rf
d2hlZWwgPT0gbG9va2luZ19mb3IKKyAgICBUcnVlCisKK1JlZmVyZW5jZQorLS0tLS0tLS0tCisK
K0hpZ2ggTGV2ZWwgSW50ZXJmYWNlCisnJycnJycnJycnJycnJycnJycnJworCitUaGUgZm9sbG93
aW5nIGZ1bmN0aW9ucyBhcmUgdGhlIG1haW4gaW50ZXJmYWNlIHRvIHRoZSBsaWJyYXJ5LCBhbmQg
YXJlIHR5cGljYWxseSB0aGUgb25seQoraXRlbXMgdGhhdCBhcHBsaWNhdGlvbnMgc2hvdWxkIG5l
ZWQgdG8gcmVmZXJlbmNlLCBpbiBvcmRlciB0byBwYXJzZSBhbmQgY2hlY2sgdGFncy4KKworLi4g
Y2xhc3M6OiBUYWcoaW50ZXJwcmV0ZXIsIGFiaSwgcGxhdGZvcm0pCisKKyAgICBBIHJlcHJlc2Vu
dGF0aW9uIG9mIHRoZSB0YWcgdHJpcGxlIGZvciBhIHdoZWVsLiBJbnN0YW5jZXMgYXJlIGNvbnNp
ZGVyZWQKKyAgICBpbW11dGFibGUgYW5kIHRodXMgYXJlIGhhc2hhYmxlLiBFcXVhbGl0eSBjaGVj
a2luZyBpcyBhbHNvIHN1cHBvcnRlZC4KKworICAgIDpwYXJhbSBzdHIgaW50ZXJwcmV0ZXI6IFRo
ZSBpbnRlcnByZXRlciBuYW1lLCBlLmcuIGBgInB5ImBgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHNlZSA6YXR0cjpgSU5URVJQUkVURVJfU0hPUlRfTkFNRVNgIGZvciBtYXBwaW5nCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2VsbC1rbm93biBpbnRlcnByZXRlciBuYW1lcyB0
byB0aGVpciBzaG9ydCBuYW1lcykuCisgICAgOnBhcmFtIHN0ciBhYmk6IFRoZSBBQkkgdGhhdCBh
IHdoZWVsIHN1cHBvcnRzLCBlLmcuIGBgImNwMzdtImBgLgorICAgIDpwYXJhbSBzdHIgcGxhdGZv
cm06IFRoZSBPUy9wbGF0Zm9ybSB0aGUgd2hlZWwgc3VwcG9ydHMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgZS5nLiBgYCJ3aW5fYW1kNjQiYGAuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBpbnRl
cnByZXRlcgorCisgICAgICAgIFRoZSBpbnRlcnByZXRlciBuYW1lLgorCisgICAgLi4gYXR0cmli
dXRlOjogYWJpCisKKyAgICAgICAgVGhlIHN1cHBvcnRlZCBBQkkuCisKKyAgICAuLiBhdHRyaWJ1
dGU6OiBwbGF0Zm9ybQorCisgICAgICAgIFRoZSBPUy9wbGF0Zm9ybS4KKworCisuLiBmdW5jdGlv
bjo6IHBhcnNlX3RhZyh0YWcpCisKKyAgICBQYXJzZXMgdGhlIHByb3ZpZGVkIGBgdGFnYGAgaW50
byBhIHNldCBvZiA6Y2xhc3M6YFRhZ2AgaW5zdGFuY2VzLgorCisgICAgUmV0dXJuaW5nIGEgc2V0
IGlzIHJlcXVpcmVkIGR1ZSB0byB0aGUgcG9zc2liaWxpdHkgdGhhdCB0aGUgdGFnIGlzIGEKKyAg
ICBgY29tcHJlc3NlZCB0YWcgc2V0YF8sIGUuZy4gYGAicHkyLnB5My1ub25lLWFueSJgYCB3aGlj
aCBzdXBwb3J0cyBib3RoCisgICAgUHl0aG9uIDIgYW5kIFB5dGhvbiAzLgorCisgICAgOnBhcmFt
IHN0ciB0YWc6IFRoZSB0YWcgdG8gcGFyc2UsIGUuZy4gYGAicHkzLW5vbmUtYW55ImBgLgorCisK
Ky4uIGZ1bmN0aW9uOjogc3lzX3RhZ3MoKiwgd2Fybj1GYWxzZSkKKworICAgIFlpZWxkcyB0aGUg
dGFncyB0aGF0IHRoZSBydW5uaW5nIGludGVycHJldGVyIHN1cHBvcnRzLgorCisgICAgVGhlIGl0
ZXJhYmxlIGlzIG9yZGVyZWQgc28gdGhhdCB0aGUgYmVzdC1tYXRjaGluZyB0YWcgaXMgZmlyc3Qg
aW4gdGhlCisgICAgc2VxdWVuY2UuIFRoZSBleGFjdCBwcmVmZXJlbnRpYWwgb3JkZXIgdG8gdGFn
cyBpcyBpbnRlcnByZXRlci1zcGVjaWZpYywgYnV0CisgICAgaW4gZ2VuZXJhbCB0aGUgdGFnIGlt
cG9ydGFuY2UgaXMgaW4gdGhlIG9yZGVyIG9mOgorCisgICAgMS4gSW50ZXJwcmV0ZXIKKyAgICAy
LiBQbGF0Zm9ybQorICAgIDMuIEFCSQorCisgICAgVGhpcyBvcmRlciBpcyBkdWUgdG8gdGhlIGZh
Y3QgdGhhdCBhbiBBQkkgaXMgaW5oZXJlbnRseSB0aWVkIHRvIHRoZQorICAgIHBsYXRmb3JtLCBi
dXQgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBpcyBub3QgbmVjZXNzYXJpbHkgdGllZCB0byB0aGUg
QUJJLiBUaGUKKyAgICBpbnRlcnByZXRlciBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgdGFnIGFzIGl0
IGRpY3RhdGVzIGJhc2ljIHN1cHBvcnQgZm9yIGFueQorICAgIHdoZWVsLgorCisgICAgVGhlIGZ1
bmN0aW9uIHJldHVybnMgYW4gaXRlcmFibGUgaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHRoZSBwb3Nz
aWJsZQorICAgIHNob3J0LWNpcmN1aXRpbmcgb2YgdGFnIGdlbmVyYXRpb24gaWYgdGhlIGVudGly
ZSBzZXF1ZW5jZSBpcyBub3QgbmVjZXNzYXJ5CisgICAgYW5kIHRhZyBjYWxjdWxhdGlvbiBoYXBw
ZW5zIHRvIGJlIGV4cGVuc2l2ZS4KKworICAgIDpwYXJhbSBib29sIHdhcm46IFdoZXRoZXIgd2Fy
bmluZ3Mgc2hvdWxkIGJlIGxvZ2dlZC4gRGVmYXVsdHMgdG8gYGBGYWxzZWBgLgorCisKK0xvdyBM
ZXZlbCBJbnRlcmZhY2UKKycnJycnJycnJycnJycnJycnJycKKworVGhlIGZvbGxvd2luZyBmdW5j
dGlvbnMgYXJlIGxvdy1sZXZlbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBUaGV5IHNob3VsZCB0
eXBpY2FsbHkgbm90CitiZSBuZWVkZWQgaW4gYXBwbGljYXRpb24gY29kZSwgdW5sZXNzIHRoZSBh
cHBsaWNhdGlvbiBoYXMgc3BlY2lhbGlzZWQgcmVxdWlyZW1lbnRzIChmb3IKK2V4YW1wbGUsIGNv
bnN0cnVjdGluZyBzZXRzIG9mIHN1cHBvcnRlZCB0YWdzIGZvciBlbnZpcm9ubWVudHMgb3RoZXIg
dGhhbiB0aGUgcnVubmluZworaW50ZXJwcmV0ZXIpLgorCitUaGVzZSBmdW5jdGlvbnMgY2FwdHVy
ZSB0aGUgcHJlY2lzZSBkZXRhaWxzIG9mIHdoaWNoIGVudmlyb25tZW50cyBzdXBwb3J0IHdoaWNo
IHRhZ3MuIFRoYXQKK2luZm9ybWF0aW9uIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBjb21wYXRpYmls
aXR5IHRhZyBzdGFuZGFyZHMgYnV0IGlzIG5vdGVkIGFzIGJlaW5nIHVwCit0byB0aGUgaW1wbGVt
ZW50YXRpb24gdG8gcHJvdmlkZS4KKworCisuLiBhdHRyaWJ1dGU6OiBJTlRFUlBSRVRFUl9TSE9S
VF9OQU1FUworCisgICAgQSBkaWN0aW9uYXJ5IG1hcHBpbmcgaW50ZXJwcmV0ZXIgbmFtZXMgdG8g
dGhlaXIgYGFiYnJldmlhdGlvbiBjb2Rlc2BfCisgICAgKGUuZy4gYGAiY3B5dGhvbiJgYCBpcyBg
YCJjcCJgYCkuIEFsbCBpbnRlcnByZXRlciBuYW1lcyBhcmUgbG93ZXItY2FzZS4KKworCisuLiBm
dW5jdGlvbjo6IGludGVycHJldGVyX25hbWUoKQorCisgICAgUmV0dXJucyB0aGUgcnVubmluZyBp
bnRlcnByZXRlcidzIG5hbWUuCisKKyAgICBUaGlzIHR5cGljYWxseSBhY3RzIGFzIHRoZSBwcmVm
aXggdG8gdGhlIDphdHRyOmB+VGFnLmludGVycHJldGVyYCB0YWcuCisKKworLi4gZnVuY3Rpb246
OiBpbnRlcnByZXRlcl92ZXJzaW9uKCosIHdhcm49RmFsc2UpCisKKyAgICBSZXR1cm5zIHRoZSBy
dW5uaW5nIGludGVycHJldGVyJ3MgdmVyc2lvbi4KKworICAgIFRoaXMgdHlwaWNhbGx5IGFjdHMg
YXMgdGhlIHN1ZmZpeCB0byB0aGUgOmF0dHI6YH5UYWcuaW50ZXJwcmV0ZXJgIHRhZy4KKworCisu
LiBmdW5jdGlvbjo6IG1hY19wbGF0Zm9ybXModmVyc2lvbj1Ob25lLCBhcmNoPU5vbmUpCisKKyAg
ICBZaWVsZHMgdGhlIDphdHRyOmB+VGFnLnBsYXRmb3JtYCB0YWdzIGZvciBtYWNPUy4KKworICAg
IDpwYXJhbSB0dXBsZSB2ZXJzaW9uOiBBIHR3by1pdGVtIHR1cGxlIHByZXNlbnRpbmcgdGhlIHZl
cnNpb24gb2YgbWFjT1MuCisgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIHRo
ZSBjdXJyZW50IHN5c3RlbSdzIHZlcnNpb24uCisgICAgOnBhcmFtIHN0ciBhcmNoOiBUaGUgQ1BV
IGFyY2hpdGVjdHVyZS4gRGVmYXVsdHMgdG8gdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGUKKyAgICAg
ICAgICAgICAgICAgICAgIGN1cnJlbnQgc3lzdGVtLCBlLmcuIGBgIng4Nl82NCJgYC4KKworICAg
IC4uIG5vdGU6OgorICAgICAgICBFcXVpdmFsZW50IHN1cHBvcnQgZm9yIHRoZSBvdGhlciBtYWpv
ciBwbGF0Zm9ybXMgaXMgcHVycG9zZWZ1bGx5IG5vdAorICAgICAgICBwcm92aWRlZDoKKworICAg
ICAgICAtIE9uIFdpbmRvd3MsIHBsYXRmb3JtIGNvbXBhdGliaWxpdHkgaXMgc3RhdGljYWxseSBz
cGVjaWZpZWQKKyAgICAgICAgLSBPbiBMaW51eCwgY29kZSBtdXN0IGJlIHJ1biBvbiB0aGUgc3lz
dGVtIGl0c2VsZiB0byBkZXRlcm1pbmUKKyAgICAgICAgICBjb21wYXRpYmlsaXR5CisKKworLi4g
ZnVuY3Rpb246OiBjb21wYXRpYmxlX3RhZ3MocHl0aG9uX3ZlcnNpb249Tm9uZSwgaW50ZXJwcmV0
ZXI9Tm9uZSwgcGxhdGZvcm1zPU5vbmUpCisKKyAgICBZaWVsZHMgdGhlIHRhZ3MgZm9yIGFuIGlu
dGVycHJldGVyIGNvbXBhdGlibGUgd2l0aCB0aGUgUHl0aG9uIHZlcnNpb24KKyAgICBzcGVjaWZp
ZWQgYnkgYGBweXRob25fdmVyc2lvbmBgLgorCisgICAgVGhlIHNwZWNpZmljIHRhZ3MgZ2VuZXJh
dGVkIGFyZToKKworICAgIC0gYGBweSotbm9uZS08cGxhdGZvcm0+YGAKKyAgICAtIGBgPGludGVy
cHJldGVyPi1ub25lLWFueWBgIGlmIGBgaW50ZXJwcmV0ZXJgYCBpcyBwcm92aWRlZAorICAgIC0g
YGBweSotbm9uZS1hbnlgYAorCisgICAgOnBhcmFtIFNlcXVlbmNlIHB5dGhvbl92ZXJzaW9uOiBB
IG9uZS0gb3IgdHdvLWl0ZW0gc2VxdWVuY2UgcmVwcmVzZW50aW5nIHRoZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJsZSB2ZXJzaW9uIG9mIFB5dGhvbi4gRGVmYXVs
dHMgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgc3lzLnZlcnNpb25faW5m
b1s6Ml1gYC4KKyAgICA6cGFyYW0gc3RyIGludGVycHJldGVyOiBUaGUgbmFtZSBvZiB0aGUgaW50
ZXJwcmV0ZXIgKGlmIGtub3duKSwgZS5nLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBg
ImNwMzgiYGAuIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGludGVycHJldGVyLgorICAgIDpwYXJh
bSBJdGVyYWJsZSBwbGF0Zm9ybXM6IEl0ZXJhYmxlIG9mIGNvbXBhdGlibGUgcGxhdGZvcm1zLiBE
ZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybXMg
Y29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IHN5c3RlbS4KKworLi4gZnVuY3Rpb246OiBjcHl0
aG9uX3RhZ3MocHl0aG9uX3ZlcnNpb249Tm9uZSwgYWJpcz1Ob25lLCBwbGF0Zm9ybXM9Tm9uZSwg
Kiwgd2Fybj1GYWxzZSkKKworICAgIFlpZWxkcyB0aGUgdGFncyBmb3IgdGhlIENQeXRob24gaW50
ZXJwcmV0ZXIuCisKKyAgICBUaGUgc3BlY2lmaWMgdGFncyBnZW5lcmF0ZWQgYXJlOgorCisgICAg
LSBgYGNwPHB5dGhvbl92ZXJzaW9uPi08YWJpPi08cGxhdGZvcm0+YGAKKyAgICAtIGBgY3A8cHl0
aG9uX3ZlcnNpb24+LWFiaTMtPHBsYXRmb3JtPmBgCisgICAgLSBgYGNwPHB5dGhvbl92ZXJzaW9u
Pi1ub25lLTxwbGF0Zm9ybT5gYAorICAgIC0gYGBjcDxvbGRlciB2ZXJzaW9uPi1hYmkzLTxwbGF0
Zm9ybT5gYCB3aGVyZSAib2xkZXIgdmVyc2lvbiIgaXMgYWxsIG9sZGVyCisgICAgICBtaW5vciB2
ZXJzaW9ucyBkb3duIHRvIFB5dGhvbiAzLjIgKHdoZW4gYGBhYmkzYGAgd2FzIGludHJvZHVjZWQp
CisKKyAgICBJZiBgYHB5dGhvbl92ZXJzaW9uYGAgb25seSBwcm92aWRlcyBhIG1ham9yLW9ubHkg
dmVyc2lvbiB0aGVuIG9ubHkKKyAgICB1c2VyLXByb3ZpZGVkIEFCSXMgdmlhIGBgYWJpc2BgIGFu
ZCB0aGUgYGBub25lYGAgQUJJIHdpbGwgYmUgdXNlZC4KKworICAgIDpwYXJhbSBTZXF1ZW5jZSBw
eXRob25fdmVyc2lvbjogQSBvbmUtIG9yIHR3by1pdGVtIHNlcXVlbmNlIHJlcHJlc2VudGluZyB0
aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldHRlZCBQeXRob24gdmVy
c2lvbi4gRGVmYXVsdHMgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgc3lz
LnZlcnNpb25faW5mb1s6Ml1gYC4KKyAgICA6cGFyYW0gSXRlcmFibGUgYWJpczogSXRlcmFibGUg
b2YgY29tcGF0aWJsZSBBQklzLiBEZWZhdWx0cyB0byB0aGUgQUJJcworICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21wYXRpYmxlIHdpdGggdGhlIGN1cnJlbnQgc3lzdGVtLgorICAgIDpwYXJh
bSBJdGVyYWJsZSBwbGF0Zm9ybXM6IEl0ZXJhYmxlIG9mIGNvbXBhdGlibGUgcGxhdGZvcm1zLiBE
ZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybXMg
Y29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IHN5c3RlbS4KKyAgICA6cGFyYW0gYm9vbCB3YXJu
OiBXaGV0aGVyIHdhcm5pbmdzIHNob3VsZCBiZSBsb2dnZWQuIERlZmF1bHRzIHRvIGBgRmFsc2Vg
YC4KKworLi4gZnVuY3Rpb246OiBnZW5lcmljX3RhZ3MoaW50ZXJwcmV0ZXI9Tm9uZSwgYWJpcz1O
b25lLCBwbGF0Zm9ybXM9Tm9uZSwgKiwgd2Fybj1GYWxzZSkKKworICAgIFlpZWxkcyB0aGUgdGFn
cyBmb3IgYW4gaW50ZXJwcmV0ZXIgd2hpY2ggcmVxdWlyZXMgbm8gc3BlY2lhbGl6YXRpb24uCisK
KyAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIGlmIG9uZSBvZiB0aGUgb3RoZXIgaW50
ZXJwcmV0ZXItc3BlY2lmaWMKKyAgICBmdW5jdGlvbnMgcHJvdmlkZWQgYnkgdGhpcyBtb2R1bGUg
aXMgbm90IGFwcHJvcHJpYXRlIChpLmUuIG5vdCBjYWxjdWxhdGluZworICAgIHRhZ3MgZm9yIGEg
Q1B5dGhvbiBpbnRlcnByZXRlcikuCisKKyAgICBUaGUgc3BlY2lmaWMgdGFncyBnZW5lcmF0ZWQg
YXJlOgorCisgICAgLSBgYDxpbnRlcnByZXRlcj4tPGFiaT4tPHBsYXRmb3JtPmBgCisKKyAgICBU
aGUgYGAibm9uZSJgYCBBQkkgd2lsbCBiZSBhZGRlZCBpZiBpdCB3YXMgbm90IGV4cGxpY2l0bHkg
cHJvdmlkZWQuCisKKyAgICA6cGFyYW0gc3RyIGludGVycHJldGVyOiBUaGUgbmFtZSBvZiB0aGUg
aW50ZXJwcmV0ZXIuIERlZmF1bHRzIHRvIGJlaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2FsY3VsYXRlZC4KKyAgICA6cGFyYW0gSXRlcmFibGUgYWJpczogSXRlcmFibGUgb2YgY29t
cGF0aWJsZSBBQklzLiBEZWZhdWx0cyB0byB0aGUgQUJJcworICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21wYXRpYmxlIHdpdGggdGhlIGN1cnJlbnQgc3lzdGVtLgorICAgIDpwYXJhbSBJdGVy
YWJsZSBwbGF0Zm9ybXM6IEl0ZXJhYmxlIG9mIGNvbXBhdGlibGUgcGxhdGZvcm1zLiBEZWZhdWx0
cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybXMgY29tcGF0
aWJsZSB3aXRoIHRoZSBjdXJyZW50IHN5c3RlbS4KKyAgICA6cGFyYW0gYm9vbCB3YXJuOiBXaGV0
aGVyIHdhcm5pbmdzIHNob3VsZCBiZSBsb2dnZWQuIERlZmF1bHRzIHRvIGBgRmFsc2VgYC4KKwor
Li4gX2BhYmJyZXZpYXRpb24gY29kZXNgOiBodHRwczovL3d3dy5weXRob24ub3JnL2Rldi9wZXBz
L3BlcC0wNDI1LyNweXRob24tdGFnCisuLiBfYGNvbXByZXNzZWQgdGFnIHNldGA6IGh0dHBzOi8v
d3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTA0MjUvI2NvbXByZXNzZWQtdGFnLXNldHMKKy4u
IF9gcGxhdGZvcm0gY29tcGF0aWJpbGl0eSB0YWdzYDogaHR0cHM6Ly9wYWNrYWdpbmcucHl0aG9u
Lm9yZy9zcGVjaWZpY2F0aW9ucy9wbGF0Zm9ybS1jb21wYXRpYmlsaXR5LXRhZ3MvCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3V0aWxzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3Mv
dXRpbHMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzNDA5NGFhMzBlMDI3ODM3MGJkZjM3YmM5MjIwODI1YWEw
YzBlYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3V0aWxzLnJzdApA
QCAtMCwwICsxLDQxIEBACitVdGlsaXRpZXMKKz09PT09PT09PQorCisuLiBjdXJyZW50bW9kdWxl
OjogcGFja2FnaW5nLnV0aWxzCisKKworQSBzZXQgb2Ygc21hbGwsIGhlbHBlciB1dGlsaXRpZXMg
Zm9yIGRlYWxpbmcgd2l0aCBQeXRob24gcGFja2FnZXMuCisKKworUmVmZXJlbmNlCistLS0tLS0t
LS0KKworLi4gZnVuY3Rpb246OiBjYW5vbmljYWxpemVfbmFtZShuYW1lKQorCisgICAgVGhpcyBm
dW5jdGlvbiB0YWtlcyBhIHZhbGlkIFB5dGhvbiBwYWNrYWdlIG5hbWUsIGFuZCByZXR1cm5zIHRo
ZSBub3JtYWxpemVkCisgICAgZm9ybSBvZiBpdC4KKworICAgIDpwYXJhbSBzdHIgbmFtZTogVGhl
IG5hbWUgdG8gbm9ybWFsaXplLgorCisgICAgLi4gZG9jdGVzdDo6CisKKyAgICAgICAgPj4+IGZy
b20gcGFja2FnaW5nLnV0aWxzIGltcG9ydCBjYW5vbmljYWxpemVfbmFtZQorICAgICAgICA+Pj4g
Y2Fub25pY2FsaXplX25hbWUoIkRqYW5nbyIpCisgICAgICAgICdkamFuZ28nCisgICAgICAgID4+
PiBjYW5vbmljYWxpemVfbmFtZSgib3Nsby5jb25jdXJyZW5jeSIpCisgICAgICAgICdvc2xvLWNv
bmN1cnJlbmN5JworICAgICAgICA+Pj4gY2Fub25pY2FsaXplX25hbWUoInJlcXVlc3RzIikKKyAg
ICAgICAgJ3JlcXVlc3RzJworCisuLiBmdW5jdGlvbjo6IGNhbm9uaWNhbGl6ZV92ZXJzaW9uKHZl
cnNpb24pCisKKyAgICBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgc3RyaW5nIHJlcHJlc2VudGluZyBh
IHBhY2thZ2UgdmVyc2lvbiAob3IgYQorICAgIGBgVmVyc2lvbmBgIGluc3RhbmNlKSwgYW5kIHJl
dHVybnMgdGhlIG5vcm1hbGl6ZWQgZm9ybSBvZiBpdC4KKworICAgIDpwYXJhbSBzdHIgdmVyc2lv
bjogVGhlIHZlcnNpb24gdG8gbm9ybWFsaXplLgorCisgICAgLi4gZG9jdGVzdDo6CisKKyAgICAg
ICAgPj4+IGZyb20gcGFja2FnaW5nLnV0aWxzIGltcG9ydCBjYW5vbmljYWxpemVfdmVyc2lvbgor
ICAgICAgICA+Pj4gY2Fub25pY2FsaXplX3ZlcnNpb24oJzEuNC4wLjAuMCcpCisgICAgICAgICcx
LjQnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3ZlcnNpb24ucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvZG9jcy92ZXJzaW9uLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDNjZjc4NjhlOTAxZWEyMGE1
YmU0MDk0OWY0YWQ1YmZiMzVlZmYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcv
ZG9jcy92ZXJzaW9uLnJzdApAQCAtMCwwICsxLDI5MiBAQAorVmVyc2lvbiBIYW5kbGluZworPT09
PT09PT09PT09PT09PQorCisuLiBjdXJyZW50bW9kdWxlOjogcGFja2FnaW5nLnZlcnNpb24KKwor
QSBjb3JlIHJlcXVpcmVtZW50IG9mIGRlYWxpbmcgd2l0aCBwYWNrYWdlcyBpcyB0aGUgYWJpbGl0
eSB0byB3b3JrIHdpdGgKK3ZlcnNpb25zLiBgUEVQIDQ0MGBfIGRlZmluZXMgdGhlIHN0YW5kYXJk
IHZlcnNpb24gc2NoZW1lIGZvciBQeXRob24gcGFja2FnZXMKK3doaWNoIGhhcyBiZWVuIGltcGxl
bWVudGVkIGJ5IHRoaXMgbW9kdWxlLgorCitVc2FnZQorLS0tLS0KKworLi4gZG9jdGVzdDo6CisK
KyAgICA+Pj4gZnJvbSBwYWNrYWdpbmcudmVyc2lvbiBpbXBvcnQgVmVyc2lvbiwgcGFyc2UKKyAg
ICA+Pj4gdjEgPSBwYXJzZSgiMS4wYTUiKQorICAgID4+PiB2MiA9IFZlcnNpb24oIjEuMCIpCisg
ICAgPj4+IHYxCisgICAgPFZlcnNpb24oJzEuMGE1Jyk+CisgICAgPj4+IHYyCisgICAgPFZlcnNp
b24oJzEuMCcpPgorICAgID4+PiB2MSA8IHYyCisgICAgVHJ1ZQorICAgID4+PiB2MS5lcG9jaAor
ICAgIDAKKyAgICA+Pj4gdjEucmVsZWFzZQorICAgICgxLCAwKQorICAgID4+PiB2MS5wcmUKKyAg
ICAoJ2EnLCA1KQorICAgID4+PiB2MS5pc19wcmVyZWxlYXNlCisgICAgVHJ1ZQorICAgID4+PiB2
Mi5pc19wcmVyZWxlYXNlCisgICAgRmFsc2UKKyAgICA+Pj4gVmVyc2lvbigiZnJlbmNoIHRvYXN0
IikKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgIC4uLgor
ICAgIEludmFsaWRWZXJzaW9uOiBJbnZhbGlkIHZlcnNpb246ICdmcmVuY2ggdG9hc3QnCisgICAg
Pj4+IFZlcnNpb24oIjEuMCIpLnBvc3QKKyAgICA+Pj4gVmVyc2lvbigiMS4wIikuaXNfcG9zdHJl
bGVhc2UKKyAgICBGYWxzZQorICAgID4+PiBWZXJzaW9uKCIxLjAucG9zdDAiKS5wb3N0CisgICAg
MAorICAgID4+PiBWZXJzaW9uKCIxLjAucG9zdDAiKS5pc19wb3N0cmVsZWFzZQorICAgIFRydWUK
KworCitSZWZlcmVuY2UKKy0tLS0tLS0tLQorCisuLiBmdW5jdGlvbjo6IHBhcnNlKHZlcnNpb24p
CisKKyAgICBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgdmVyc2lvbiBzdHJpbmcgYW5kIHdpbGwgcGFy
c2UgaXQgYXMgYQorICAgIDpjbGFzczpgVmVyc2lvbmAgaWYgdGhlIHZlcnNpb24gaXMgYSB2YWxp
ZCBQRVAgNDQwIHZlcnNpb24sIG90aGVyd2lzZSBpdAorICAgIHdpbGwgcGFyc2UgaXQgYXMgYSBk
ZXByZWNhdGVkIDpjbGFzczpgTGVnYWN5VmVyc2lvbmAuCisKKworLi4gY2xhc3M6OiBWZXJzaW9u
KHZlcnNpb24pCisKKyAgICBUaGlzIGNsYXNzIGFic3RyYWN0cyBoYW5kbGluZyBvZiBhIHByb2pl
Y3QncyB2ZXJzaW9ucy4gSXQgaW1wbGVtZW50cyB0aGUKKyAgICBzY2hlbWUgZGVmaW5lZCBpbiBg
UEVQIDQ0MGBfLiBBIDpjbGFzczpgVmVyc2lvbmAgaW5zdGFuY2UgaXMgY29tcGFyaXNvbgorICAg
IGF3YXJlIGFuZCBjYW4gYmUgY29tcGFyZWQgYW5kIHNvcnRlZCB1c2luZyB0aGUgc3RhbmRhcmQg
UHl0aG9uIGludGVyZmFjZXMuCisKKyAgICA6cGFyYW0gc3RyIHZlcnNpb246IFRoZSBzdHJpbmcg
cmVwcmVzZW50YXRpb24gb2YgYSB2ZXJzaW9uIHdoaWNoIHdpbGwgYmUKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHBhcnNlZCBhbmQgbm9ybWFsaXplZCBiZWZvcmUgdXNlLgorICAgIDpyYWlzZXMg
SW52YWxpZFZlcnNpb246IElmIHRoZSBgYHZlcnNpb25gYCBkb2VzIG5vdCBjb25mb3JtIHRvIFBF
UCA0NDAgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnkgd2F5IHRoZW4gdGhpcyBl
eGNlcHRpb24gd2lsbCBiZSByYWlzZWQuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBwdWJsaWMKKwor
ICAgICAgICBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHB1YmxpYyB2ZXJzaW9uIHBvcnRpb24g
b2YgdGhpcyBgYFZlcnNpb24oKWBgLgorCisgICAgLi4gYXR0cmlidXRlOjogYmFzZV92ZXJzaW9u
CisKKyAgICAgICAgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBiYXNlIHZlcnNpb24gb2YgdGhp
cyA6Y2xhc3M6YFZlcnNpb25gCisgICAgICAgIGluc3RhbmNlLiBUaGUgYmFzZSB2ZXJzaW9uIGlz
IHRoZSBwdWJsaWMgdmVyc2lvbiBvZiB0aGUgcHJvamVjdCB3aXRob3V0CisgICAgICAgIGFueSBw
cmUgb3IgcG9zdCByZWxlYXNlIG1hcmtlcnMuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBlcG9jaAor
CisgICAgICAgIEFuIGludGVnZXIgZ2l2aW5nIHRoZSB2ZXJzaW9uIGVwb2NoIG9mIHRoaXMgOmNs
YXNzOmBWZXJzaW9uYCBpbnN0YW5jZQorCisgICAgLi4gYXR0cmlidXRlOjogcmVsZWFzZQorCisg
ICAgICAgIEEgdHVwbGUgb2YgaW50ZWdlcnMgZ2l2aW5nIHRoZSBjb21wb25lbnRzIG9mIHRoZSBy
ZWxlYXNlIHNlZ21lbnQgb2YKKyAgICAgICAgdGhpcyA6Y2xhc3M6YFZlcnNpb25gIGluc3RhbmNl
OyB0aGF0IGlzLCB0aGUgYGAxLjIuM2BgIHBhcnQgb2YgdGhlCisgICAgICAgIHZlcnNpb24gbnVt
YmVyLCBpbmNsdWRpbmcgdHJhaWxpbmcgemVyb2VzIGJ1dCBub3QgaW5jbHVkaW5nIHRoZSBlcG9j
aAorICAgICAgICBvciBhbnkgcHJlcmVsZWFzZS9kZXZlbG9wbWVudC9wb3N0cmVsZWFzZSBzdWZm
aXhlcworCisgICAgLi4gYXR0cmlidXRlOjogbWFqb3IKKworICAgICAgICBBbiBpbnRlZ2VyIHJl
cHJlc2VudGluZyB0aGUgZmlyc3QgaXRlbSBvZiA6YXR0cjpgcmVsZWFzZWAgb3IgYGAwYGAgaWYg
dW5hdmFpbGFibGUuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBtaW5vcgorCisgICAgICAgIEFuIGlu
dGVnZXIgcmVwcmVzZW50aW5nIHRoZSBzZWNvbmQgaXRlbSBvZiA6YXR0cjpgcmVsZWFzZWAgb3Ig
YGAwYGAgaWYgdW5hdmFpbGFibGUuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBtaWNybworCisgICAg
ICAgIEFuIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZSB0aGlyZCBpdGVtIG9mIDphdHRyOmByZWxl
YXNlYCBvciBgYDBgYCBpZiB1bmF2YWlsYWJsZS4KKworICAgIC4uIGF0dHJpYnV0ZTo6IGxvY2Fs
CisKKyAgICAgICAgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBsb2NhbCB2ZXJzaW9uIHBvcnRp
b24gb2YgdGhpcyBgYFZlcnNpb24oKWBgCisgICAgICAgIGlmIGl0IGhhcyBvbmUsIG9yIGBgTm9u
ZWBgIG90aGVyd2lzZS4KKworICAgIC4uIGF0dHJpYnV0ZTo6IHByZQorCisgICAgICAgIElmIHRo
aXMgOmNsYXNzOmBWZXJzaW9uYCBpbnN0YW5jZSByZXByZXNlbnRzIGEgcHJlcmVsZWFzZSwgdGhp
cworICAgICAgICBhdHRyaWJ1dGUgd2lsbCBiZSBhIHBhaXIgb2YgdGhlIHByZXJlbGVhc2UgcGhh
c2UgKHRoZSBzdHJpbmcgYGAiYSJgYCwKKyAgICAgICAgYGAiYiJgYCwgb3IgYGAicmMiYGApIGFu
ZCB0aGUgcHJlcmVsZWFzZSBudW1iZXIgKGFuIGludGVnZXIpLiAgSWYgdGhpcworICAgICAgICBp
bnN0YW5jZSBpcyBub3QgYSBwcmVyZWxlYXNlLCB0aGUgYXR0cmlidXRlIHdpbGwgYmUgYE5vbmVg
LgorCisgICAgLi4gYXR0cmlidXRlOjogaXNfcHJlcmVsZWFzZQorCisgICAgICAgIEEgYm9vbGVh
biB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyA6Y2xhc3M6YFZlcnNpb25gIGluc3RhbmNl
CisgICAgICAgIHJlcHJlc2VudHMgYSBwcmVyZWxlYXNlIGFuZC9vciBkZXZlbG9wbWVudCByZWxl
YXNlLgorCisgICAgLi4gYXR0cmlidXRlOjogZGV2CisKKyAgICAgICAgSWYgdGhpcyA6Y2xhc3M6
YFZlcnNpb25gIGluc3RhbmNlIHJlcHJlc2VudHMgYSBkZXZlbG9wbWVudCByZWxlYXNlLAorICAg
ICAgICB0aGlzIGF0dHJpYnV0ZSB3aWxsIGJlIHRoZSBkZXZlbG9wbWVudCByZWxlYXNlIG51bWJl
ciAoYW4gaW50ZWdlcik7CisgICAgICAgIG90aGVyd2lzZSwgaXQgd2lsbCBiZSBgTm9uZWAuCisK
KyAgICAuLiBhdHRyaWJ1dGU6OiBpc19kZXZyZWxlYXNlCisKKyAgICAgICAgQSBib29sZWFuIHZh
bHVlIGluZGljYXRpbmcgd2hldGhlciB0aGlzIDpjbGFzczpgVmVyc2lvbmAgaW5zdGFuY2UKKyAg
ICAgICAgcmVwcmVzZW50cyBhIGRldmVsb3BtZW50IHJlbGVhc2UuCisKKyAgICAuLiBhdHRyaWJ1
dGU6OiBwb3N0CisKKyAgICAgICAgSWYgdGhpcyA6Y2xhc3M6YFZlcnNpb25gIGluc3RhbmNlIHJl
cHJlc2VudHMgYSBwb3N0cmVsZWFzZSwgdGhpcworICAgICAgICBhdHRyaWJ1dGUgd2lsbCBiZSB0
aGUgcG9zdHJlbGVhc2UgbnVtYmVyIChhbiBpbnRlZ2VyKTsgb3RoZXJ3aXNlLCBpdAorICAgICAg
ICB3aWxsIGJlIGBOb25lYC4KKworICAgIC4uIGF0dHJpYnV0ZTo6IGlzX3Bvc3RyZWxlYXNlCisK
KyAgICAgICAgQSBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGlzIDpjbGFzczpg
VmVyc2lvbmAgaW5zdGFuY2UKKyAgICAgICAgcmVwcmVzZW50cyBhIHBvc3QtcmVsZWFzZS4KKwor
CisuLiBjbGFzczo6IExlZ2FjeVZlcnNpb24odmVyc2lvbikKKworICAgIC4uIGRlcHJlY2F0ZWQ6
OiAyMC41CisKKyAgICAgICAgVXNlIDpjbGFzczpgVmVyc2lvbmAgaW5zdGVhZC4KKworICAgIFRo
aXMgY2xhc3MgYWJzdHJhY3RzIGhhbmRsaW5nIG9mIGEgcHJvamVjdCdzIHZlcnNpb25zIGlmIHRo
ZXkgYXJlIG5vdAorICAgIGNvbXBhdGlibGUgd2l0aCB0aGUgc2NoZW1lIGRlZmluZWQgaW4gYFBF
UCA0NDBgXy4gSXQgaW1wbGVtZW50cyBhIHNpbWlsYXIKKyAgICBpbnRlcmZhY2UgdG8gdGhhdCBv
ZiA6Y2xhc3M6YFZlcnNpb25gLgorCisgICAgVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBwcmV2
aW91cyBkZSBmYWN0byBzb3J0aW5nIGFsZ29yaXRobSB1c2VkIGJ5CisgICAgc2V0dXB0b29scywg
aG93ZXZlciBpdCB3aWxsIGFsd2F5cyBzb3J0IGFzIGxlc3MgdGhhbiBhIDpjbGFzczpgVmVyc2lv
bmAKKyAgICBpbnN0YW5jZS4KKworICAgIDpwYXJhbSBzdHIgdmVyc2lvbjogVGhlIHN0cmluZyBy
ZXByZXNlbnRhdGlvbiBvZiBhIHZlcnNpb24gd2hpY2ggd2lsbCBiZQorICAgICAgICAgICAgICAg
ICAgICAgICAgdXNlZCBhcyBpcy4KKworICAgIC4uIG5vdGU6OgorCisgICAgICAgIDpjbGFzczpg
TGVnYWN5VmVyc2lvbmAgaW5zdGFuY2VzIGFyZSBhbHdheXMgb3JkZXJlZCBsb3dlciB0aGFuIDpj
bGFzczpgVmVyc2lvbmAgaW5zdGFuY2VzLgorCisgICAgICAgID4+PiBmcm9tIHBhY2thZ2luZy52
ZXJzaW9uIGltcG9ydCBWZXJzaW9uLCBMZWdhY3lWZXJzaW9uCisgICAgICAgID4+PiB2MSA9IFZl
cnNpb24oIjEuMCIpCisgICAgICAgID4+PiB2MiA9IExlZ2FjeVZlcnNpb24oIjEuMCIpCisgICAg
ICAgID4+PiB2MSA+IHYyCisgICAgICAgIFRydWUKKyAgICAgICAgPj4+IHYzID0gTGVnYWN5VmVy
c2lvbigiMS4zIikKKyAgICAgICAgPj4+IHYxID4gdjMKKyAgICAgICAgVHJ1ZQorCisgICAgICAg
IEFsc28gbm90ZSB0aGF0IHNvbWUgc3RyaW5ncyBhcmUgc3RpbGwgdmFsaWQgUEVQIDQ0MCBzdHJp
bmdzICg6Y2xhc3M6YFZlcnNpb25gKSwgZXZlbiBpZiB0aGV5IGxvb2sgdmVyeSBzaW1pbGFyIHRv
CisgICAgICAgIG90aGVyIHZlcnNpb25zIHRoYXQgYXJlIG5vdCAoOmNsYXNzOmBMZWdhY3lWZXJz
aW9uYCkuIEV4YW1wbGVzIGluY2x1ZGUgdmVyc2lvbnMgd2l0aCBgUHJlLXJlbGVhc2Ugc3BlbGxp
bmdgXyBhbmQKKyAgICAgICAgYFBvc3QtcmVsZWFzZSBzcGVsbGluZ2BfLgorCisgICAgICAgID4+
PiBmcm9tIHBhY2thZ2luZy52ZXJzaW9uIGltcG9ydCBwYXJzZQorICAgICAgICA+Pj4gdjEgPSBw
YXJzZSgnMC45LjhhJykKKyAgICAgICAgPj4+IHYyID0gcGFyc2UoJzAuOS44YmV0YScpCisgICAg
ICAgID4+PiB2MyA9IHBhcnNlKCcwLjkuOHInKQorICAgICAgICA+Pj4gdjQgPSBwYXJzZSgnMC45
LjhyZXYnKQorICAgICAgICA+Pj4gdjUgPSBwYXJzZSgnMC45Ljh0JykKKyAgICAgICAgPj4+IHYx
CisgICAgICAgIDxWZXJzaW9uKCcwLjkuOGEwJyk+CisgICAgICAgID4+PiB2MS5pc19wcmVyZWxl
YXNlCisgICAgICAgIFRydWUKKyAgICAgICAgPj4+IHYyCisgICAgICAgIDxWZXJzaW9uKCcwLjku
OGIwJyk+CisgICAgICAgID4+PiB2Mi5pc19wcmVyZWxlYXNlCisgICAgICAgIFRydWUKKyAgICAg
ICAgPj4+IHYzCisgICAgICAgIDxWZXJzaW9uKCcwLjkuOC5wb3N0MCcpPgorICAgICAgICA+Pj4g
djMuaXNfcG9zdHJlbGVhc2UKKyAgICAgICAgVHJ1ZQorICAgICAgICA+Pj4gdjQKKyAgICAgICAg
PFZlcnNpb24oJzAuOS44LnBvc3QwJyk+CisgICAgICAgID4+PiB2NC5pc19wb3N0cmVsZWFzZQor
ICAgICAgICBUcnVlCisgICAgICAgID4+PiB2NQorICAgICAgICA8TGVnYWN5VmVyc2lvbignMC45
Ljh0Jyk+CisgICAgICAgID4+PiB2NS5pc19wcmVyZWxlYXNlCisgICAgICAgIEZhbHNlCisgICAg
ICAgID4+PiB2NS5pc19wb3N0cmVsZWFzZQorICAgICAgICBGYWxzZQorCisgICAgLi4gYXR0cmli
dXRlOjogcHVibGljCisKKyAgICAgICAgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBwdWJsaWMg
dmVyc2lvbiBwb3J0aW9uIG9mIHRoaXMKKyAgICAgICAgOmNsYXNzOmBMZWdhY3lWZXJzaW9uYC4g
VGhpcyB3aWxsIGFsd2F5cyBiZSB0aGUgZW50aXJlIHZlcnNpb24gc3RyaW5nLgorCisgICAgLi4g
YXR0cmlidXRlOjogYmFzZV92ZXJzaW9uCisKKyAgICAgICAgQSBzdHJpbmcgcmVwcmVzZW50aW5n
IHRoZSBiYXNlIHZlcnNpb24gcG9ydGlvbiBvZiB0aGlzCisgICAgICAgIDpjbGFzczpgTGVnYWN5
VmVyc2lvbmAgaW5zdGFuY2UuIFRoaXMgd2lsbCBhbHdheXMgYmUgdGhlIGVudGlyZSB2ZXJzaW9u
CisgICAgICAgIHN0cmluZy4KKworICAgIC4uIGF0dHJpYnV0ZTo6IGVwb2NoCisKKyAgICAgICAg
VGhpcyB3aWxsIGFsd2F5cyBiZSBgYC0xYGAgc2luY2Ugd2l0aG91dCBgUEVQIDQ0MGBfIHdlIGRv
IG5vdCBoYXZlIHRoZQorICAgICAgICBjb25jZXB0IG9mIHZlcnNpb24gZXBvY2hzLiAgVGhlIHZh
bHVlIHJlZmxlY3RzIHRoZSBmYWN0IHRoYXQKKyAgICAgICAgOmNsYXNzOmBMZWdhY3lWZXJzaW9u
YCBpbnN0YW5jZXMgYWx3YXlzIGNvbXBhcmUgbGVzcyB0aGFuCisgICAgICAgIDpjbGFzczpgVmVy
c2lvbmAgaW5zdGFuY2VzLgorCisgICAgLi4gYXR0cmlidXRlOjogcmVsZWFzZQorCisgICAgICAg
IFRoaXMgd2lsbCBhbHdheXMgYmUgYGBOb25lYGAgc2luY2Ugd2l0aG91dCBgUEVQIDQ0MGBfIHdl
IGRvIG5vdCBoYXZlCisgICAgICAgIHRoZSBjb25jZXB0IG9mIGEgcmVsZWFzZSBzZWdtZW50IG9y
IGl0cyBjb21wb25lbnRzLiAgSXQgZXhpc3RzCisgICAgICAgIHByaW1hcmlseSB0byBhbGxvdyBh
IDpjbGFzczpgTGVnYWN5VmVyc2lvbmAgdG8gYmUgdXNlZCBhcyBhIHN0YW5kIGluCisgICAgICAg
IGZvciBhIDpjbGFzczpgVmVyc2lvbmAuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBsb2NhbAorCisg
ICAgICAgIFRoaXMgd2lsbCBhbHdheXMgYmUgYGBOb25lYGAgc2luY2Ugd2l0aG91dCBgUEVQIDQ0
MGBfIHdlIGRvIG5vdCBoYXZlCisgICAgICAgIHRoZSBjb25jZXB0IG9mIGEgbG9jYWwgdmVyc2lv
bi4gSXQgZXhpc3RzIHByaW1hcmlseSB0byBhbGxvdyBhCisgICAgICAgIDpjbGFzczpgTGVnYWN5
VmVyc2lvbmAgdG8gYmUgdXNlZCBhcyBhIHN0YW5kIGluIGZvciBhIDpjbGFzczpgVmVyc2lvbmAu
CisKKyAgICAuLiBhdHRyaWJ1dGU6OiBwcmUKKworICAgICAgICBUaGlzIHdpbGwgYWx3YXlzIGJl
IGBgTm9uZWBgIHNpbmNlIHdpdGhvdXQgYFBFUCA0NDBgXyB3ZSBkbyBub3QgaGF2ZQorICAgICAg
ICB0aGUgY29uY2VwdCBvZiBhIHByZXJlbGVhc2UuIEl0IGV4aXN0cyBwcmltYXJpbHkgdG8gYWxs
b3cgYQorICAgICAgICA6Y2xhc3M6YExlZ2FjeVZlcnNpb25gIHRvIGJlIHVzZWQgYXMgYSBzdGFu
ZCBpbiBmb3IgYSA6Y2xhc3M6YFZlcnNpb25gLgorCisgICAgLi4gYXR0cmlidXRlOjogaXNfcHJl
cmVsZWFzZQorCisgICAgICAgIEEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhp
cyA6Y2xhc3M6YExlZ2FjeVZlcnNpb25gCisgICAgICAgIHJlcHJlc2VudHMgYSBwcmVyZWxlYXNl
IGFuZC9vciBkZXZlbG9wbWVudCByZWxlYXNlLiAgU2luY2Ugd2l0aG91dAorICAgICAgICBgUEVQ
IDQ0MGBfIHRoZXJlIGlzIG5vIGNvbmNlcHQgb2YgcHJlIG9yIGRldiByZWxlYXNlcyB0aGlzIHdp
bGwKKyAgICAgICAgYWx3YXlzIGJlIGBGYWxzZWAgYW5kIGV4aXN0cyBmb3IgY29tcGF0aWJpbGl0
eSB3aXRoIDpjbGFzczpgVmVyc2lvbmAuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBkZXYKKworICAg
ICAgICBUaGlzIHdpbGwgYWx3YXlzIGJlIGBgTm9uZWBgIHNpbmNlIHdpdGhvdXQgYFBFUCA0NDBg
XyB3ZSBkbyBub3QgaGF2ZQorICAgICAgICB0aGUgY29uY2VwdCBvZiBhIGRldmVsb3BtZW50IHJl
bGVhc2UuIEl0IGV4aXN0cyBwcmltYXJpbHkgdG8gYWxsb3cgYQorICAgICAgICA6Y2xhc3M6YExl
Z2FjeVZlcnNpb25gIHRvIGJlIHVzZWQgYXMgYSBzdGFuZCBpbiBmb3IgYSA6Y2xhc3M6YFZlcnNp
b25gLgorCisgICAgLi4gYXR0cmlidXRlOjogaXNfZGV2cmVsZWFzZQorCisgICAgICAgIEEgYm9v
bGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyA6Y2xhc3M6YExlZ2FjeVZlcnNpb25g
CisgICAgICAgIHJlcHJlc2VudHMgYSBkZXZlbG9wbWVudCByZWxlYXNlLiAgU2luY2Ugd2l0aG91
dCBgUEVQIDQ0MGBfIHRoZXJlIGlzCisgICAgICAgIG5vIGNvbmNlcHQgb2YgZGV2IHJlbGVhc2Vz
IHRoaXMgd2lsbCBhbHdheXMgYmUgYEZhbHNlYCBhbmQgZXhpc3RzIGZvcgorICAgICAgICBjb21w
YXRpYmlsaXR5IHdpdGggOmNsYXNzOmBWZXJzaW9uYC4KKworICAgIC4uIGF0dHJpYnV0ZTo6IHBv
c3QKKworICAgICAgICBUaGlzIHdpbGwgYWx3YXlzIGJlIGBgTm9uZWBgIHNpbmNlIHdpdGhvdXQg
YFBFUCA0NDBgXyB3ZSBkbyBub3QgaGF2ZQorICAgICAgICB0aGUgY29uY2VwdCBvZiBhIHBvc3Ry
ZWxlYXNlLiBJdCBleGlzdHMgcHJpbWFyaWx5IHRvIGFsbG93IGEKKyAgICAgICAgOmNsYXNzOmBM
ZWdhY3lWZXJzaW9uYCB0byBiZSB1c2VkIGFzIGEgc3RhbmQgaW4gZm9yIGEgOmNsYXNzOmBWZXJz
aW9uYC4KKworICAgIC4uIGF0dHJpYnV0ZTo6IGlzX3Bvc3RyZWxlYXNlCisKKyAgICAgICAgQSBi
b29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGlzIDpjbGFzczpgTGVnYWN5VmVyc2lv
bmAKKyAgICAgICAgcmVwcmVzZW50cyBhIHBvc3QtcmVsZWFzZS4gU2luY2Ugd2l0aG91dCBgUEVQ
IDQ0MGBfIHRoZXJlIGlzIG5vIGNvbmNlcHQKKyAgICAgICAgb2YgcG9zdC1yZWxlYXNlcyB0aGlz
IHdpbGwgYWx3YXlzIGJlIGBgRmFsc2VgYCBhbmQgZXhpc3RzIGZvcgorICAgICAgICBjb21wYXRp
YmlsaXR5IHdpdGggOmNsYXNzOmBWZXJzaW9uYC4KKworCisuLiBleGNlcHRpb246OiBJbnZhbGlk
VmVyc2lvbgorCisgICAgUmFpc2VkIHdoZW4gYXR0ZW1wdGluZyB0byBjcmVhdGUgYSA6Y2xhc3M6
YFZlcnNpb25gIHdpdGggYSB2ZXJzaW9uIHN0cmluZworICAgIHRoYXQgZG9lcyBub3QgY29uZm9y
bSB0byBgUEVQIDQ0MGBfLgorCisKKy4uIGRhdGE6OiBWRVJTSU9OX1BBVFRFUk4KKworICAgIEEg
c3RyaW5nIGNvbnRhaW5pbmcgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB1c2VkIHRvIG1hdGNoIGEg
dmFsaWQgdmVyc2lvbi4KKyAgICBUaGUgcGF0dGVybiBpcyBub3QgYW5jaG9yZWQgYXQgZWl0aGVy
IGVuZCwgYW5kIGlzIGludGVuZGVkIGZvciBlbWJlZGRpbmcKKyAgICBpbiBsYXJnZXIgZXhwcmVz
c2lvbnMgKGZvciBleGFtcGxlLCBtYXRjaGluZyBhIHZlcnNpb24gbnVtYmVyIGFzIHBhcnQgb2YK
KyAgICBhIGZpbGUgbmFtZSkuIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gc2hvdWxkIGJlIGNvbXBp
bGVkIHdpdGggdGhlCisgICAgYGByZS5WRVJCT1NFYGAgYW5kIGBgcmUuSUdOT1JFQ0FTRWBgIGZs
YWdzIHNldC4KKworCisuLiBfUEVQIDQ0MDogaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVw
cy9wZXAtMDQ0MC8KKy4uIF9QcmUtcmVsZWFzZSBzcGVsbGluZyA6IGh0dHBzOi8vd3d3LnB5dGhv
bi5vcmcvZGV2L3BlcHMvcGVwLTA0NDAvI3ByZS1yZWxlYXNlLXNwZWxsaW5nCisuLiBfUG9zdC1y
ZWxlYXNlIHNwZWxsaW5nIDogaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQ0
MC8jcG9zdC1yZWxlYXNlLXNwZWxsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2Nz
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy93M2MtaW1wb3J0LmxvZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43YjY4NTI5OTg0MzY2ZGYxMjViMmM2NmQ4ZmRjMmJmOTU3YjNiYjcyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDI4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL01ha2VmaWxlCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvZG9jcy9jaGFuZ2Vsb2cucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9jb25mLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvZG9jcy9pbmRleC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL21hcmtl
cnMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9yZXF1aXJlbWVudHMucnN0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvZG9jcy9yZXF1aXJlbWVudHMudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9zZWN1cml0
eS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3NwZWNpZmllcnMucnN0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdp
bmcvZG9jcy90YWdzLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvdXRpbHMucnN0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvZG9jcy92ZXJzaW9uLnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvbXlw
eS5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9teXB5LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTk3MzQ4NTUwMzVh
OGJhMzhhZWZiN2Q5NmMzODk5MWRhNjFkNzFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvbXlweS5pbmkKQEAgLTAsMCArMSwyMCBAQAorW215cHldCitpZ25vcmVfbWlzc2luZ19p
bXBvcnRzID0gVHJ1ZQorCisjIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBmbGFncyBlbmFibGVkIGJ5
IC0tc3RyaWN0CisjCisjIE5vdGU6IHdhcm5fdW51c2VkX2lnbm9yZXMgaXMgRmFsc2UgZHVlIHRv
IGluY29ycmVjdCB0eXBlc2hlZCBhbm5vdGF0aW9ucyBmb3IKKyMgcGxhdGZvcm0ubWFjX3Zlcigp
Cit3YXJuX3VudXNlZF9jb25maWdzID0gVHJ1ZQorZGlzYWxsb3dfc3ViY2xhc3NpbmdfYW55ID0g
VHJ1ZQorZGlzYWxsb3dfYW55X2dlbmVyaWNzID0gVHJ1ZQorZGlzYWxsb3dfdW50eXBlZF9jYWxs
cyA9IFRydWUKK2Rpc2FsbG93X3VudHlwZWRfZGVmcyA9IFRydWUKK2Rpc2FsbG93X2luY29tcGxl
dGVfZGVmcyA9IFRydWUKK2NoZWNrX3VudHlwZWRfZGVmcyA9IFRydWUKK2Rpc2FsbG93X3VudHlw
ZWRfZGVjb3JhdG9ycyA9IFRydWUKK25vX2ltcGxpY2l0X29wdGlvbmFsID0gVHJ1ZQord2Fybl9y
ZWR1bmRhbnRfY2FzdHMgPSBUcnVlCit3YXJuX3VudXNlZF9pZ25vcmVzID0gRmFsc2UKK3dhcm5f
cmV0dXJuX2FueSA9IFRydWUKK25vX2ltcGxpY2l0X3JlZXhwb3J0ID0gVHJ1ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvbm94ZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL25veGZpbGUucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzU4NDVhYjgwNDc3OGZkM2ZmODY3MDU2ZDc4YTRkZmY5N2ZjYTdiZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL25veGZpbGUucHkKQEAgLTAsMCArMSwzMDkg
QEAKKyMgbXlweTogZGlzYWxsb3ctdW50eXBlZC1kZWZzPUZhbHNlLCBkaXNhbGxvdy11bnR5cGVk
LWNhbGxzPUZhbHNlCisKK2ltcG9ydCB0aW1lCitpbXBvcnQgcmUKK2ltcG9ydCBvcworaW1wb3J0
IHN5cworaW1wb3J0IGdsb2IKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBkaWZmbGliCitpbXBvcnQg
dGVtcGZpbGUKK2ltcG9ydCB0ZXh0d3JhcAoraW1wb3J0IGRhdGV0aW1lCitpbXBvcnQgY29udGV4
dGxpYgoraW1wb3J0IHN1YnByb2Nlc3MKK2Zyb20gcGF0aGxpYiBpbXBvcnQgUGF0aAorCitpbXBv
cnQgbm94CisKK25veC5vcHRpb25zLnNlc3Npb25zID0gWyJsaW50Il0KK25veC5vcHRpb25zLnJl
dXNlX2V4aXN0aW5nX3ZpcnR1YWxlbnZzID0gVHJ1ZQorCisKK0Bub3guc2Vzc2lvbihweXRob249
WyIyLjciLCAiMy40IiwgIjMuNSIsICIzLjYiLCAiMy43IiwgIjMuOCIsICIzLjkiLCAicHlweSIs
ICJweXB5MyJdKQorZGVmIHRlc3RzKHNlc3Npb24pOgorICAgIGRlZiBjb3ZlcmFnZSgqYXJncyk6
CisgICAgICAgIHNlc3Npb24ucnVuKCJweXRob24iLCAiLW0iLCAiY292ZXJhZ2UiLCAqYXJncykK
KworICAgICMgT25jZSBjb3ZlcmFnZSA1IGlzIHVzZWQgdGhlbiBgLmNvdmVyYWdlYCBjYW4gbW92
ZSBpbnRvIGBweXByb2plY3QudG9tbGAuCisgICAgc2Vzc2lvbi5pbnN0YWxsKCJjb3ZlcmFnZTw1
LjAuMCIsICJwcmV0ZW5kIiwgInB5dGVzdCIsICJwaXA+PTkuMC4yIikKKworICAgIGlmICJweXB5
IiBub3QgaW4gc2Vzc2lvbi5weXRob246CisgICAgICAgIGNvdmVyYWdlKAorICAgICAgICAgICAg
InJ1biIsCisgICAgICAgICAgICAiLS1zb3VyY2UiLAorICAgICAgICAgICAgInBhY2thZ2luZy8i
LAorICAgICAgICAgICAgIi1tIiwKKyAgICAgICAgICAgICJweXRlc3QiLAorICAgICAgICAgICAg
Ii0tc3RyaWN0IiwKKyAgICAgICAgICAgICpzZXNzaW9uLnBvc2FyZ3MsCisgICAgICAgICkKKyAg
ICAgICAgY292ZXJhZ2UoInJlcG9ydCIsICItbSIsICItLWZhaWwtdW5kZXIiLCAiMTAwIikKKyAg
ICBlbHNlOgorICAgICAgICAjIERvbid0IGRvIGNvdmVyYWdlIHRyYWNraW5nIGZvciBQeVB5LCBz
aW5jZSBpdCdzIFNMT1cuCisgICAgICAgIHNlc3Npb24ucnVuKAorICAgICAgICAgICAgInB5dGhv
biIsICItbSIsICJweXRlc3QiLCAiLS1jYXB0dXJlPW5vIiwgIi0tc3RyaWN0IiwgKnNlc3Npb24u
cG9zYXJncworICAgICAgICApCisKKworQG5veC5zZXNzaW9uKHB5dGhvbj0iMy45IikKK2RlZiBs
aW50KHNlc3Npb24pOgorICAgICMgUnVuIHRoZSBsaW50ZXJzICh2aWEgcHJlLWNvbW1pdCkKKyAg
ICBzZXNzaW9uLmluc3RhbGwoInByZS1jb21taXQiKQorICAgIHNlc3Npb24ucnVuKCJwcmUtY29t
bWl0IiwgInJ1biIsICItLWFsbC1maWxlcyIpCisKKyAgICAjIENoZWNrIHRoZSBkaXN0cmlidXRp
b24KKyAgICBzZXNzaW9uLmluc3RhbGwoImJ1aWxkIiwgInR3aW5lIikKKyAgICBzZXNzaW9uLnJ1
bigicHl0aG9uIiwgIi1tIiwgImJ1aWxkIikKKyAgICBzZXNzaW9uLnJ1bigidHdpbmUiLCAiY2hl
Y2siLCAqZ2xvYi5nbG9iKCJkaXN0LyoiKSkKKworCitAbm94LnNlc3Npb24ocHl0aG9uPSIzLjki
KQorZGVmIGRvY3Moc2Vzc2lvbik6CisgICAgc2h1dGlsLnJtdHJlZSgiZG9jcy9fYnVpbGQiLCBp
Z25vcmVfZXJyb3JzPVRydWUpCisgICAgc2Vzc2lvbi5pbnN0YWxsKCJmdXJvIikKKworICAgIHZh
cmlhbnRzID0gWworICAgICAgICAjIChidWlsZGVyLCBkZXN0KQorICAgICAgICAoImh0bWwiLCAi
aHRtbCIpLAorICAgICAgICAoImxhdGV4IiwgImxhdGV4IiksCisgICAgICAgICgiZG9jdGVzdCIs
ICJodG1sIiksCisgICAgXQorCisgICAgZm9yIGJ1aWxkZXIsIGRlc3QgaW4gdmFyaWFudHM6Cisg
ICAgICAgIHNlc3Npb24ucnVuKAorICAgICAgICAgICAgInNwaGlueC1idWlsZCIsCisgICAgICAg
ICAgICAiLVciLAorICAgICAgICAgICAgIi1iIiwKKyAgICAgICAgICAgIGJ1aWxkZXIsCisgICAg
ICAgICAgICAiLWQiLAorICAgICAgICAgICAgImRvY3MvX2J1aWxkL2RvY3RyZWVzLyIgKyBkZXN0
LAorICAgICAgICAgICAgImRvY3MiLCAgIyBzb3VyY2UgZGlyZWN0b3J5CisgICAgICAgICAgICAi
ZG9jcy9fYnVpbGQvIiArIGRlc3QsICAjIG91dHB1dCBkaXJlY3RvcnkKKyAgICAgICAgKQorCisK
K0Bub3guc2Vzc2lvbgorZGVmIHJlbGVhc2Uoc2Vzc2lvbik6CisgICAgcGFja2FnZV9uYW1lID0g
InBhY2thZ2luZyIKKyAgICB2ZXJzaW9uX2ZpbGUgPSBQYXRoKGYie3BhY2thZ2VfbmFtZX0vX19p
bml0X18ucHkiKQorICAgIGNoYW5nZWxvZ19maWxlID0gUGF0aCgiQ0hBTkdFTE9HLnJzdCIpCisK
KyAgICB0cnk6CisgICAgICAgIHJlbGVhc2VfdmVyc2lvbiA9IF9nZXRfdmVyc2lvbl9mcm9tX2Fy
Z3VtZW50cyhzZXNzaW9uLnBvc2FyZ3MpCisgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKKyAg
ICAgICAgc2Vzc2lvbi5lcnJvcihmIkludmFsaWQgYXJndW1lbnRzOiB7ZX0iKQorCisgICAgIyBD
aGVjayBzdGF0ZSBvZiB3b3JraW5nIGRpcmVjdG9yeSBhbmQgZ2l0LgorICAgIF9jaGVja193b3Jr
aW5nX2RpcmVjdG9yeV9zdGF0ZShzZXNzaW9uKQorICAgIF9jaGVja19naXRfc3RhdGUoc2Vzc2lv
biwgcmVsZWFzZV92ZXJzaW9uKQorCisgICAgIyBQcmVwYXJlIGZvciByZWxlYXNlLgorICAgIF9j
aGFuZ2Vsb2dfdXBkYXRlX3VucmVsZWFzZWRfdGl0bGUocmVsZWFzZV92ZXJzaW9uLCBmaWxlPWNo
YW5nZWxvZ19maWxlKQorICAgIHNlc3Npb24ucnVuKCJnaXQiLCAiYWRkIiwgc3RyKGNoYW5nZWxv
Z19maWxlKSwgZXh0ZXJuYWw9VHJ1ZSkKKyAgICBfYnVtcChzZXNzaW9uLCB2ZXJzaW9uPXJlbGVh
c2VfdmVyc2lvbiwgZmlsZT12ZXJzaW9uX2ZpbGUsIGtpbmQ9InJlbGVhc2UiKQorCisgICAgIyBU
YWcgdGhlIHJlbGVhc2UgY29tbWl0LgorICAgICMgZm10OiBvZmYKKyAgICBzZXNzaW9uLnJ1bigK
KyAgICAgICAgImdpdCIsICJ0YWciLAorICAgICAgICAiLXMiLCByZWxlYXNlX3ZlcnNpb24sCisg
ICAgICAgICItbSIsIGYiUmVsZWFzZSB7cmVsZWFzZV92ZXJzaW9ufSIsCisgICAgICAgIGV4dGVy
bmFsPVRydWUsCisgICAgKQorICAgICMgZm10OiBvbgorCisgICAgIyBQcmVwYXJlIGZvciBkZXZl
bG9wbWVudC4KKyAgICBfY2hhbmdlbG9nX2FkZF91bnJlbGVhc2VkX3RpdGxlKGZpbGU9Y2hhbmdl
bG9nX2ZpbGUpCisgICAgc2Vzc2lvbi5ydW4oImdpdCIsICJhZGQiLCBzdHIoY2hhbmdlbG9nX2Zp
bGUpLCBleHRlcm5hbD1UcnVlKQorCisgICAgbWFqb3IsIG1pbm9yID0gbWFwKGludCwgcmVsZWFz
ZV92ZXJzaW9uLnNwbGl0KCIuIikpCisgICAgbmV4dF92ZXJzaW9uID0gZiJ7bWFqb3J9LnttaW5v
ciArIDF9LmRldjAiCisgICAgX2J1bXAoc2Vzc2lvbiwgdmVyc2lvbj1uZXh0X3ZlcnNpb24sIGZp
bGU9dmVyc2lvbl9maWxlLCBraW5kPSJkZXZlbG9wbWVudCIpCisKKyAgICAjIENoZWNrb3V0IHRo
ZSBnaXQgdGFnLgorICAgIHNlc3Npb24ucnVuKCJnaXQiLCAiY2hlY2tvdXQiLCAiLXEiLCByZWxl
YXNlX3ZlcnNpb24sIGV4dGVybmFsPVRydWUpCisKKyAgICBzZXNzaW9uLmluc3RhbGwoImJ1aWxk
IiwgInR3aW5lIikKKworICAgICMgQnVpbGQgdGhlIGRpc3RyaWJ1dGlvbi4KKyAgICBzZXNzaW9u
LnJ1bigicHl0aG9uIiwgIi1tIiwgImJ1aWxkIikKKworICAgICMgQ2hlY2sgd2hhdCBmaWxlcyBh
cmUgaW4gZGlzdC8gZm9yIHVwbG9hZC4KKyAgICBmaWxlcyA9IHNvcnRlZChnbG9iLmdsb2IoImRp
c3QvKiIpKQorICAgIGV4cGVjdGVkID0gWworICAgICAgICBmImRpc3Qve3BhY2thZ2VfbmFtZX0t
e3JlbGVhc2VfdmVyc2lvbn0tcHkyLnB5My1ub25lLWFueS53aGwiLAorICAgICAgICBmImRpc3Qv
e3BhY2thZ2VfbmFtZX0te3JlbGVhc2VfdmVyc2lvbn0udGFyLmd6IiwKKyAgICBdCisgICAgaWYg
ZmlsZXMgIT0gZXhwZWN0ZWQ6CisgICAgICAgIGRpZmZfZ2VuZXJhdG9yID0gZGlmZmxpYi5jb250
ZXh0X2RpZmYoCisgICAgICAgICAgICBleHBlY3RlZCwgZmlsZXMsIGZyb21maWxlPSJleHBlY3Rl
ZCIsIHRvZmlsZT0iZ290IiwgbGluZXRlcm09IiIKKyAgICAgICAgKQorICAgICAgICBkaWZmID0g
IlxuIi5qb2luKGRpZmZfZ2VuZXJhdG9yKQorICAgICAgICBzZXNzaW9uLmVycm9yKGYiR290IHRo
ZSB3cm9uZyBmaWxlczpcbntkaWZmfSIpCisKKyAgICAjIEdldCBiYWNrIG91dCBpbnRvIG1hc3Rl
ci4KKyAgICBzZXNzaW9uLnJ1bigiZ2l0IiwgImNoZWNrb3V0IiwgIi1xIiwgIm1hc3RlciIsIGV4
dGVybmFsPVRydWUpCisKKyAgICAjIENoZWNrIGFuZCB1cGxvYWQgZGlzdHJpYnV0aW9uIGZpbGVz
LgorICAgIHNlc3Npb24ucnVuKCJ0d2luZSIsICJjaGVjayIsICpmaWxlcykKKworICAgICMgVXBs
b2FkIHRoZSBkaXN0cmlidXRpb24uCisgICAgc2Vzc2lvbi5ydW4oInR3aW5lIiwgInVwbG9hZCIs
ICpmaWxlcykKKworICAgICMgUHVzaCB0aGUgY29tbWl0cyBhbmQgdGFnLgorICAgICMgTk9URTog
VGhlIGZvbGxvd2luZyBmYWlscyBpZiBwdXNoaW5nIHRvIHRoZSBicmFuY2ggaXMgbm90IGFsbG93
ZWQuIFRoaXMgY2FuCisgICAgIyAgICAgICBoYXBwZW4gb24gR2l0SHViLCBpZiB0aGUgbWFzdGVy
IGJyYW5jaCBpcyBwcm90ZWN0ZWQsIHRoZXJlIGFyZSByZXF1aXJlZAorICAgICMgICAgICAgQ0kg
Y2hlY2tzIGFuZCAiSW5jbHVkZSBhZG1pbmlzdHJhdG9ycyIgaXMgZW5hYmxlZCBvbiB0aGUgcHJv
dGVjdGlvbi4KKyAgICBzZXNzaW9uLnJ1bigiZ2l0IiwgInB1c2giLCAidXBzdHJlYW0iLCAibWFz
dGVyIiwgcmVsZWFzZV92ZXJzaW9uLCBleHRlcm5hbD1UcnVlKQorCisKKyMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyMgSGVscGVycworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZGVmIF9nZXRfdmVy
c2lvbl9mcm9tX2FyZ3VtZW50cyhhcmd1bWVudHMpOgorICAgICIiIkNoZWNrcyB0aGUgYXJndW1l
bnRzIHBhc3NlZCB0byBgbm94IC1zIHJlbGVhc2VgLgorCisgICAgT25seSAxIGFyZ3VtZW50IHRo
YXQgbG9va3MgbGlrZSBhIHZlcnNpb24/IFJldHVybiB0aGUgYXJndW1lbnQuCisgICAgT3RoZXJ3
aXNlLCByYWlzZSBhIFZhbHVlRXJyb3IgZGVzY3JpYmluZyB3aGF0J3Mgd3JvbmcuCisgICAgIiIi
CisgICAgaWYgbGVuKGFyZ3VtZW50cykgIT0gMToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
RXhwZWN0ZWQgZXhhY3RseSAxIGFyZ3VtZW50IikKKworICAgIHZlcnNpb24gPSBhcmd1bWVudHNb
MF0KKyAgICBwYXJ0cyA9IHZlcnNpb24uc3BsaXQoIi4iKQorCisgICAgaWYgbGVuKHBhcnRzKSAh
PSAyOgorICAgICAgICAjIE5vdCBvZiB0aGUgZm9ybTogWVkuTgorICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCJub3Qgb2YgdGhlIGZvcm06IFlZLk4iKQorCisgICAgaWYgbm90IGFsbChwYXJ0Lmlz
ZGlnaXQoKSBmb3IgcGFydCBpbiBwYXJ0cyk6CisgICAgICAgICMgTm90IGFsbCBzZWdtZW50cyBh
cmUgaW50ZWdlcnMuCisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5vbi1pbnRlZ2VyIHNlZ21l
bnRzIikKKworICAgICMgQWxsIGlzIGdvb2QuCisgICAgcmV0dXJuIHZlcnNpb24KKworCitkZWYg
X2NoZWNrX3dvcmtpbmdfZGlyZWN0b3J5X3N0YXRlKHNlc3Npb24pOgorICAgICIiIkNoZWNrIHN0
YXRlIG9mIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgcHJpb3IgdG8gbWFraW5nIHRoZSByZWxlYXNl
LiIiIgorICAgIHNob3VsZF9ub3RfZXhpc3QgPSBbImJ1aWxkLyIsICJkaXN0LyJdCisKKyAgICBi
YWRfZXhpc3RpbmdfcGF0aHMgPSBsaXN0KGZpbHRlcihvcy5wYXRoLmV4aXN0cywgc2hvdWxkX25v
dF9leGlzdCkpCisgICAgaWYgYmFkX2V4aXN0aW5nX3BhdGhzOgorICAgICAgICBzZXNzaW9uLmVy
cm9yKGYiUmVtb3ZlIHsnLCAnLmpvaW4oYmFkX2V4aXN0aW5nX3BhdGhzKX0gYW5kIHRyeSBhZ2Fp
biIpCisKKworZGVmIF9jaGVja19naXRfc3RhdGUoc2Vzc2lvbiwgdmVyc2lvbl90YWcpOgorICAg
ICIiIkNoZWNrIHN0YXRlIG9mIHRoZSBnaXQgcmVwb3NpdG9yeSwgcHJpb3IgdG8gbWFraW5nIHRo
ZSByZWxlYXNlLiIiIgorICAgICMgRW5zdXJlIHRoZSB1cHN0cmVhbSByZW1vdGUgcHVzaGVzIHRv
IHRoZSBjb3JyZWN0IFVSTC4KKyAgICBhbGxvd2VkX3Vwc3RyZWFtcyA9IFsKKyAgICAgICAgImdp
dEBnaXRodWIuY29tOnB5cGEvcGFja2FnaW5nLmdpdCIsCisgICAgICAgICJodHRwczovL2dpdGh1
Yi5jb20vcHlwYS9wYWNrYWdpbmcuZ2l0IiwKKyAgICBdCisgICAgcmVzdWx0ID0gc3VicHJvY2Vz
cy5ydW4oCisgICAgICAgIFsiZ2l0IiwgInJlbW90ZSIsICJnZXQtdXJsIiwgIi0tcHVzaCIsICJ1
cHN0cmVhbSJdLAorICAgICAgICBjYXB0dXJlX291dHB1dD1UcnVlLAorICAgICAgICBlbmNvZGlu
Zz0idXRmLTgiLAorICAgICkKKyAgICBpZiByZXN1bHQuc3Rkb3V0LnJzdHJpcCgpIG5vdCBpbiBh
bGxvd2VkX3Vwc3RyZWFtczoKKyAgICAgICAgc2Vzc2lvbi5lcnJvcihmImdpdCByZW1vdGUgYHVw
c3RyZWFtYCBpcyBub3Qgb25lIG9mIHthbGxvd2VkX3Vwc3RyZWFtc30iKQorICAgICMgRW5zdXJl
IHdlJ3JlIG9uIG1hc3RlciBicmFuY2ggZm9yIGN1dHRpbmcgYSByZWxlYXNlLgorICAgIHJlc3Vs
dCA9IHN1YnByb2Nlc3MucnVuKAorICAgICAgICBbImdpdCIsICJyZXYtcGFyc2UiLCAiLS1hYmJy
ZXYtcmVmIiwgIkhFQUQiXSwKKyAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwKKyAgICAgICAg
ZW5jb2Rpbmc9InV0Zi04IiwKKyAgICApCisgICAgaWYgcmVzdWx0LnN0ZG91dCAhPSAibWFzdGVy
XG4iOgorICAgICAgICBzZXNzaW9uLmVycm9yKGYiTm90IG9uIG1hc3RlciBicmFuY2g6IHtyZXN1
bHQuc3Rkb3V0IXJ9IikKKworICAgICMgRW5zdXJlIHRoZXJlIGFyZSBubyB1bmNvbW1pdHRlZCBj
aGFuZ2VzLgorICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKAorICAgICAgICBbImdpdCIsICJz
dGF0dXMiLCAiLS1wb3JjZWxhaW4iXSwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9InV0
Zi04IgorICAgICkKKyAgICBpZiByZXN1bHQuc3Rkb3V0OgorICAgICAgICBwcmludChyZXN1bHQu
c3Rkb3V0LCBlbmQ9IiIsIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgc2Vzc2lvbi5lcnJvcigi
VGhlIHdvcmtpbmcgdHJlZSBoYXMgdW5jb21taXR0ZWQgY2hhbmdlcyIpCisKKyAgICAjIEVuc3Vy
ZSB0aGlzIHRhZyBkb2Vzbid0IGV4aXN0IGFscmVhZHkuCisgICAgcmVzdWx0ID0gc3VicHJvY2Vz
cy5ydW4oCisgICAgICAgIFsiZ2l0IiwgInJldi1wYXJzZSIsIHZlcnNpb25fdGFnXSwgY2FwdHVy
ZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9InV0Zi04IgorICAgICkKKyAgICBpZiBub3QgcmVzdWx0
LnJldHVybmNvZGU6CisgICAgICAgIHNlc3Npb24uZXJyb3IoZiJUYWcgYWxyZWFkeSBleGlzdHMh
IHt2ZXJzaW9uX3RhZ30gLS0ge3Jlc3VsdC5zdGRvdXQhcn0iKQorCisgICAgIyBCYWNrIHVwIHRo
ZSBjdXJyZW50IGdpdCByZWZlcmVuY2UsIGluIGEgdGFnIHRoYXQncyBlYXN5IHRvIGNsZWFuIHVw
LgorICAgIF9yZWxlYXNlX2JhY2t1cF90YWcgPSAiYXV0by9yZWxlYXNlLXN0YXJ0LSIgKyBzdHIo
aW50KHRpbWUudGltZSgpKSkKKyAgICBzZXNzaW9uLnJ1bigiZ2l0IiwgInRhZyIsIF9yZWxlYXNl
X2JhY2t1cF90YWcsIGV4dGVybmFsPVRydWUpCisKKworZGVmIF9idW1wKHNlc3Npb24sICosIHZl
cnNpb24sIGZpbGUsIGtpbmQpOgorICAgIHNlc3Npb24ubG9nKGYiQnVtcCB2ZXJzaW9uIHRvIHt2
ZXJzaW9uIXJ9IikKKyAgICBjb250ZW50cyA9IGZpbGUucmVhZF90ZXh0KCkKKyAgICBuZXdfY29u
dGVudHMgPSByZS5zdWIoCisgICAgICAgICdfX3ZlcnNpb25fXyA9ICIoLispIicsIGYnX192ZXJz
aW9uX18gPSAie3ZlcnNpb259IicsIGNvbnRlbnRzCisgICAgKQorICAgIGZpbGUud3JpdGVfdGV4
dChuZXdfY29udGVudHMpCisKKyAgICBzZXNzaW9uLmxvZygiZ2l0IGNvbW1pdCIpCisgICAgc3Vi
cHJvY2Vzcy5ydW4oWyJnaXQiLCAiYWRkIiwgc3RyKGZpbGUpXSkKKyAgICBzdWJwcm9jZXNzLnJ1
bihbImdpdCIsICJjb21taXQiLCAiLW0iLCBmIkJ1bXAgZm9yIHtraW5kfSJdKQorCisKK0Bjb250
ZXh0bGliLmNvbnRleHRtYW5hZ2VyCitkZWYgX3JlcGxhY2VfZmlsZShvcmlnaW5hbF9wYXRoKToK
KyAgICAjIENyZWF0ZSBhIHRlbXBvcmFyeSBmaWxlLgorICAgIGZoLCByZXBsYWNlbWVudF9wYXRo
ID0gdGVtcGZpbGUubWtzdGVtcCgpCisKKyAgICB0cnk6CisgICAgICAgIHdpdGggb3MuZmRvcGVu
KGZoLCAidyIpIGFzIHJlcGxhY2VtZW50OgorICAgICAgICAgICAgd2l0aCBvcGVuKG9yaWdpbmFs
X3BhdGgpIGFzIG9yaWdpbmFsOgorICAgICAgICAgICAgICAgIHlpZWxkIG9yaWdpbmFsLCByZXBs
YWNlbWVudAorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHJhaXNlCisgICAgZWxzZToK
KyAgICAgICAgc2h1dGlsLmNvcHltb2RlKG9yaWdpbmFsX3BhdGgsIHJlcGxhY2VtZW50X3BhdGgp
CisgICAgICAgIG9zLnJlbW92ZShvcmlnaW5hbF9wYXRoKQorICAgICAgICBzaHV0aWwubW92ZShy
ZXBsYWNlbWVudF9wYXRoLCBvcmlnaW5hbF9wYXRoKQorCisKK2RlZiBfY2hhbmdlbG9nX3VwZGF0
ZV91bnJlbGVhc2VkX3RpdGxlKHZlcnNpb24sICosIGZpbGUpOgorICAgICIiIlVwZGF0ZSBhbiAi
KnVucmVsZWFzZWQqIiBoZWFkaW5nIHRvICJ7dmVyc2lvbn0gLSB7ZGF0ZX0iICIiIgorICAgIHl5
eXlfbW1fZGQgPSBkYXRldGltZS5kYXRldGltZS50b2RheSgpLnN0cmZ0aW1lKCIlWS0lbS0lZCIp
CisgICAgdGl0bGUgPSBmInt2ZXJzaW9ufSAtIHt5eXl5X21tX2RkfSIKKworICAgIHdpdGggX3Jl
cGxhY2VfZmlsZShmaWxlKSBhcyAob3JpZ2luYWwsIHJlcGxhY2VtZW50KToKKyAgICAgICAgZm9y
IGxpbmUgaW4gb3JpZ2luYWw6CisgICAgICAgICAgICBpZiBsaW5lID09ICIqdW5yZWxlYXNlZCpc
biI6CisgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQud3JpdGUoZiJ7dGl0bGV9XG4iKQorICAg
ICAgICAgICAgICAgIHJlcGxhY2VtZW50LndyaXRlKGxlbih0aXRsZSkgKiAifiIgKyAiXG4iKQor
ICAgICAgICAgICAgICAgICMgU2tpcCBwcm9jZXNzaW5nIHRoZSBuZXh0IGxpbmUgKHRoZSBoZWFk
aW5nIHVuZGVybGluZSBmb3IgKnVucmVsZWFzZWQqKQorICAgICAgICAgICAgICAgICMgc2luY2Ug
d2UgYWxyZWFkeSB3cm90ZSB0aGUgaGVhZGluZyB1bmRlcmxpbmUuCisgICAgICAgICAgICAgICAg
bmV4dChvcmlnaW5hbCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVwbGFj
ZW1lbnQud3JpdGUobGluZSkKKworCitkZWYgX2NoYW5nZWxvZ19hZGRfdW5yZWxlYXNlZF90aXRs
ZSgqLCBmaWxlKToKKyAgICB3aXRoIF9yZXBsYWNlX2ZpbGUoZmlsZSkgYXMgKG9yaWdpbmFsLCBy
ZXBsYWNlbWVudCk6CisgICAgICAgICMgRHVwbGljYXRlIGZpcnN0IDMgbGluZXMgZnJvbSB0aGUg
b3JpZ2luYWwgZmlsZS4KKyAgICAgICAgZm9yIF8gaW4gcmFuZ2UoMyk6CisgICAgICAgICAgICBs
aW5lID0gbmV4dChvcmlnaW5hbCkKKyAgICAgICAgICAgIHJlcGxhY2VtZW50LndyaXRlKGxpbmUp
CisKKyAgICAgICAgIyBXcml0ZSB0aGUgaGVhZGluZy4KKyAgICAgICAgcmVwbGFjZW1lbnQud3Jp
dGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAor
ICAgICAgICAgICAgICAgICp1bnJlbGVhc2VkKgorICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+
fgorCisgICAgICAgICAgICAgICAgTm8gdW5yZWxlYXNlZCBjaGFuZ2VzLgorCisgICAgICAgICAg
ICAgICAgIiIiCisgICAgICAgICAgICApCisgICAgICAgICkKKworICAgICAgICAjIER1cGxpY2F0
ZSBhbGwgdGhlIHJlbWFpbmluZyBsaW5lcy4KKyAgICAgICAgZm9yIGxpbmUgaW4gb3JpZ2luYWw6
CisgICAgICAgICAgICByZXBsYWNlbWVudC53cml0ZShsaW5lKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvcGFja2FnaW5nL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5n
L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZmVjYjg2N2E4OTMyNjg5OGNjMGNmMjhiYzU4MjZm
NmExYzhmZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvX19p
bml0X18ucHkKQEAgLTAsMCArMSw1IEBACisjIFRoaXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24KKyMgMi4wLCBhbmQg
dGhlIEJTRCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGlz
IHJlcG9zaXRvcnkKKyMgZm9yIGNvbXBsZXRlIGRldGFpbHMuCisiIiJDb3JlIHV0aWxpdGllcyBm
b3IgUHl0aG9uIHBhY2thZ2VzIiIiCitfX3ZlcnNpb25fXyA9ICIyMC43IgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL19jb21wYXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNr
YWdpbmcvX2NvbXBhdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTRiZDRlZGU4NzYxZGY1ODgyYTMzNTRiYzIy
YmRlZTdhNWU4YThiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5n
L19jb21wYXQucHkKQEAgLTAsMCArMSwzOCBAQAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNl
ZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwg
YW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2Yg
dGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBv
cnQgc3lzCisKK2Zyb20gLl90eXBpbmcgaW1wb3J0IFRZUEVfQ0hFQ0tJTkcKKworaWYgVFlQRV9D
SEVDS0lORzogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnks
IERpY3QsIFR1cGxlLCBUeXBlCisKKworUFkyID0gc3lzLnZlcnNpb25faW5mb1swXSA9PSAyCitQ
WTMgPSBzeXMudmVyc2lvbl9pbmZvWzBdID09IDMKKworIyBmbGFrZTg6IG5vcWEKKworaWYgUFkz
OgorICAgIHN0cmluZ190eXBlcyA9IChzdHIsKQorZWxzZToKKyAgICBzdHJpbmdfdHlwZXMgPSAo
YmFzZXN0cmluZywpCisKKworZGVmIHdpdGhfbWV0YWNsYXNzKG1ldGEsICpiYXNlcyk6CisgICAg
IyB0eXBlOiAoVHlwZVtBbnldLCBUdXBsZVtUeXBlW0FueV0sIC4uLl0pIC0+IEFueQorICAgICIi
IgorICAgIENyZWF0ZSBhIGJhc2UgY2xhc3Mgd2l0aCBhIG1ldGFjbGFzcy4KKyAgICAiIiIKKyAg
ICAjIFRoaXMgcmVxdWlyZXMgYSBiaXQgb2YgZXhwbGFuYXRpb246IHRoZSBiYXNpYyBpZGVhIGlz
IHRvIG1ha2UgYSBkdW1teQorICAgICMgbWV0YWNsYXNzIGZvciBvbmUgbGV2ZWwgb2YgY2xhc3Mg
aW5zdGFudGlhdGlvbiB0aGF0IHJlcGxhY2VzIGl0c2VsZiB3aXRoCisgICAgIyB0aGUgYWN0dWFs
IG1ldGFjbGFzcy4KKyAgICBjbGFzcyBtZXRhY2xhc3MobWV0YSk6ICAjIHR5cGU6IGlnbm9yZQor
ICAgICAgICBkZWYgX19uZXdfXyhjbHMsIG5hbWUsIHRoaXNfYmFzZXMsIGQpOgorICAgICAgICAg
ICAgIyB0eXBlOiAoVHlwZVtBbnldLCBzdHIsIFR1cGxlW0FueV0sIERpY3RbQW55LCBBbnldKSAt
PiBBbnkKKyAgICAgICAgICAgIHJldHVybiBtZXRhKG5hbWUsIGJhc2VzLCBkKQorCisgICAgcmV0
dXJuIHR5cGUuX19uZXdfXyhtZXRhY2xhc3MsICJ0ZW1wb3JhcnlfY2xhc3MiLCAoKSwge30pCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvX3N0cnVjdHVyZXMucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy9wYWNrYWdpbmcvX3N0cnVjdHVyZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAwZDVjNTU4
OGM5OWRjMjE2Y2RlYTUwODRkYTQ0MGVmYjY0MTk0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL3BhY2thZ2luZy9fc3RydWN0dXJlcy5weQpAQCAtMCwwICsxLDg2IEBACisjIFRo
aXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24KKyMgMi4wLCBhbmQgdGhlIEJTRCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VO
U0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGlzIHJlcG9zaXRvcnkKKyMgZm9yIGNvbXBsZXRlIGRl
dGFpbHMuCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCisKKworY2xhc3MgSW5maW5pdHlUeXBlKG9iamVjdCk6CisgICAgZGVm
IF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1
cm4gIkluZmluaXR5IgorCisgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6
ICgpIC0+IGludAorICAgICAgICByZXR1cm4gaGFzaChyZXByKHNlbGYpKQorCisgICAgZGVmIF9f
bHRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICMgdHlwZTogKG9iamVjdCkgLT4gYm9vbAorICAg
ICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfX2xlX18oc2VsZiwgb3RoZXIpOgorICAgICAg
ICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBk
ZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgIyB0eXBlOiAob2JqZWN0KSAtPiBib29s
CisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKG90aGVyLCBzZWxmLl9fY2xhc3NfXykKKworICAg
IGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJv
b2wKKyAgICAgICAgcmV0dXJuIG5vdCBpc2luc3RhbmNlKG90aGVyLCBzZWxmLl9fY2xhc3NfXykK
KworICAgIGRlZiBfX2d0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3Qp
IC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBfX2dlX18oc2VsZiwgb3Ro
ZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIFRy
dWUKKworICAgIGRlZiBfX25lZ19fKHNlbGYpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+
IE5lZ2F0aXZlSW5maW5pdHlUeXBlCisgICAgICAgIHJldHVybiBOZWdhdGl2ZUluZmluaXR5CisK
KworSW5maW5pdHkgPSBJbmZpbml0eVR5cGUoKQorCisKK2NsYXNzIE5lZ2F0aXZlSW5maW5pdHlU
eXBlKG9iamVjdCk6CisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IHN0cgorICAgICAgICByZXR1cm4gIi1JbmZpbml0eSIKKworICAgIGRlZiBfX2hhc2hfXyhz
ZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBpbnQKKyAgICAgICAgcmV0dXJuIGhhc2gocmVw
cihzZWxmKSkKKworICAgIGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6
IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBfX2xlX18o
c2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAg
cmV0dXJuIFRydWUKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5
cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2Uob3RoZXIsIHNl
bGYuX19jbGFzc19fKQorCisgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICMg
dHlwZTogKG9iamVjdCkgLT4gYm9vbAorICAgICAgICByZXR1cm4gbm90IGlzaW5zdGFuY2Uob3Ro
ZXIsIHNlbGYuX19jbGFzc19fKQorCisgICAgZGVmIF9fZ3RfXyhzZWxmLCBvdGhlcik6CisgICAg
ICAgICMgdHlwZTogKG9iamVjdCkgLT4gYm9vbAorICAgICAgICByZXR1cm4gRmFsc2UKKworICAg
IGRlZiBfX2dlX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJv
b2wKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX19uZWdfXyhzZWxmKToKKyAgICAg
ICAgIyB0eXBlOiAob2JqZWN0KSAtPiBJbmZpbml0eVR5cGUKKyAgICAgICAgcmV0dXJuIEluZmlu
aXR5CisKKworTmVnYXRpdmVJbmZpbml0eSA9IE5lZ2F0aXZlSW5maW5pdHlUeXBlKCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9fdHlwaW5nLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdp
bmcvcGFja2FnaW5nL190eXBpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdhOGI5MTg1YTA3ZDAzMzhlNjUy
ODEwZjQ4NzU3ZGZlOWUwYzkwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Bh
Y2thZ2luZy9fdHlwaW5nLnB5CkBAIC0wLDAgKzEsNDggQEAKKyIiIkZvciBuZWF0bHkgaW1wbGVt
ZW50aW5nIHN0YXRpYyB0eXBpbmcgaW4gcGFja2FnaW5nLgorCitgbXlweWAgLSB0aGUgc3RhdGlj
IHR5cGUgYW5hbHlzaXMgdG9vbCB3ZSB1c2UgLSB1c2VzIHRoZSBgdHlwaW5nYCBtb2R1bGUsIHdo
aWNoCitwcm92aWRlcyBjb3JlIGZ1bmN0aW9uYWxpdHkgZnVuZGFtZW50YWwgdG8gbXlweSdzIGZ1
bmN0aW9uaW5nLgorCitHZW5lcmFsbHksIGB0eXBpbmdgIHdvdWxkIGJlIGltcG9ydGVkIGF0IHJ1
bnRpbWUgYW5kIHVzZWQgaW4gdGhhdCBmYXNoaW9uIC0KK2l0IGFjdHMgYXMgYSBuby1vcCBhdCBy
dW50aW1lIGFuZCBkb2VzIG5vdCBoYXZlIGFueSBydW4tdGltZSBvdmVyaGVhZCBieQorZGVzaWdu
LgorCitBcyBpdCB0dXJucyBvdXQsIGB0eXBpbmdgIGlzIG5vdCB2ZW5kb3JhYmxlIC0gaXQgdXNl
cyBzZXBhcmF0ZSBzb3VyY2VzIGZvcgorUHl0aG9uIDIvUHl0aG9uIDMuIFRodXMsIHRoaXMgY29k
ZWJhc2UgY2FuIG5vdCBleHBlY3QgaXQgdG8gYmUgcHJlc2VudC4KK1RvIHdvcmsgYXJvdW5kIHRo
aXMsIG15cHkgYWxsb3dzIHRoZSB0eXBpbmcgaW1wb3J0IHRvIGJlIGJlaGluZCBhIEZhbHNlLXkK
K29wdGlvbmFsIHRvIHByZXZlbnQgaXQgZnJvbSBydW5uaW5nIGF0IHJ1bnRpbWUgYW5kIHR5cGUt
Y29tbWVudHMgY2FuIGJlIHVzZWQKK3RvIHJlbW92ZSB0aGUgbmVlZCBmb3IgdGhlIHR5cGVzIHRv
IGJlIGFjY2Vzc2libGUgZGlyZWN0bHkgZHVyaW5nIHJ1bnRpbWUuCisKK1RoaXMgbW9kdWxlIHBy
b3ZpZGVzIHRoZSBGYWxzZS15IGd1YXJkIGluIGEgbmljZWx5IG5hbWVkIGZhc2hpb24gc28gdGhh
dCBhCitjdXJpb3VzIG1haW50YWluZXIgY2FuIHJlYWNoIGhlcmUgdG8gcmVhZCB0aGlzLgorCitJ
biBwYWNrYWdpbmcsIGFsbCBzdGF0aWMtdHlwaW5nIHJlbGF0ZWQgaW1wb3J0cyBzaG91bGQgYmUg
Z3VhcmRlZCBhcyBmb2xsb3dzOgorCisgICAgZnJvbSBwYWNrYWdpbmcuX3R5cGluZyBpbXBvcnQg
VFlQRV9DSEVDS0lORworCisgICAgaWYgVFlQRV9DSEVDS0lORzoKKyAgICAgICAgZnJvbSB0eXBp
bmcgaW1wb3J0IC4uLgorCitSZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vbXlweS9pc3N1
ZXMvMzIxNgorIiIiCisKK19fYWxsX18gPSBbIlRZUEVfQ0hFQ0tJTkciLCAiY2FzdCJdCisKKyMg
VGhlIFRZUEVfQ0hFQ0tJTkcgY29uc3RhbnQgZGVmaW5lZCBieSB0aGUgdHlwaW5nIG1vZHVsZSBp
cyBGYWxzZSBhdCBydW50aW1lCisjIGJ1dCBUcnVlIHdoaWxlIHR5cGUgY2hlY2tpbmcuCitpZiBG
YWxzZTogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUWVBFX0NI
RUNLSU5HCitlbHNlOgorICAgIFRZUEVfQ0hFQ0tJTkcgPSBGYWxzZQorCisjIHR5cGluZydzIGNh
c3Qgc3ludGF4IHJlcXVpcmVzIGNhbGxpbmcgdHlwaW5nLmNhc3QgYXQgcnVudGltZSwgYnV0IHdl
IGRvbid0CisjIHdhbnQgdG8gaW1wb3J0IHR5cGluZyBhdCBydW50aW1lLiBIZXJlLCB3ZSBpbmZv
cm0gdGhlIHR5cGUgY2hlY2tlcnMgdGhhdAorIyB3ZSdyZSBpbXBvcnRpbmcgYHR5cGluZy5jYXN0
YCBhcyBgY2FzdGAgYW5kIHJlLWltcGxlbWVudCB0eXBpbmcuY2FzdCdzCisjIHJ1bnRpbWUgYmVo
YXZpb3IgaW4gYSBibG9jayB0aGF0IGlzIGlnbm9yZWQgYnkgdHlwZSBjaGVja2Vycy4KK2lmIFRZ
UEVfQ0hFQ0tJTkc6ICAjIHByYWdtYTogbm8gY292ZXIKKyAgICAjIG5vdCBleGVjdXRlZCBhdCBy
dW50aW1lCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IGNhc3QKK2Vsc2U6CisgICAgIyBleGVjdXRl
ZCBhdCBydW50aW1lCisgICAgZGVmIGNhc3QodHlwZV8sIHZhbHVlKTogICMgbm9xYQorICAgICAg
ICByZXR1cm4gdmFsdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9tYXJr
ZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL21hcmtlcnMucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODdjZDNmOTU4NTcyMTQxZjEzZjMwNWIyOTE1ZjlmMGRkZmVkZmQyNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9tYXJrZXJzLnB5CkBAIC0wLDAgKzEsMzI4IEBA
CisjIFRoaXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQXBh
Y2hlIExpY2Vuc2UsIFZlcnNpb24KKyMgMi4wLCBhbmQgdGhlIEJTRCBMaWNlbnNlLiBTZWUgdGhl
IExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGlzIHJlcG9zaXRvcnkKKyMgZm9yIGNvbXBs
ZXRlIGRldGFpbHMuCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBvcGVyYXRvcgoraW1wb3J0IG9zCitpbXBv
cnQgcGxhdGZvcm0KK2ltcG9ydCBzeXMKKworZnJvbSBweXBhcnNpbmcgaW1wb3J0IFBhcnNlRXhj
ZXB0aW9uLCBQYXJzZVJlc3VsdHMsIHN0cmluZ1N0YXJ0LCBzdHJpbmdFbmQKK2Zyb20gcHlwYXJz
aW5nIGltcG9ydCBaZXJvT3JNb3JlLCBHcm91cCwgRm9yd2FyZCwgUXVvdGVkU3RyaW5nCitmcm9t
IHB5cGFyc2luZyBpbXBvcnQgTGl0ZXJhbCBhcyBMICAjIG5vcWEKKworZnJvbSAuX2NvbXBhdCBp
bXBvcnQgc3RyaW5nX3R5cGVzCitmcm9tIC5fdHlwaW5nIGltcG9ydCBUWVBFX0NIRUNLSU5HCitm
cm9tIC5zcGVjaWZpZXJzIGltcG9ydCBTcGVjaWZpZXIsIEludmFsaWRTcGVjaWZpZXIKKworaWYg
VFlQRV9DSEVDS0lORzogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIGZyb20gdHlwaW5nIGltcG9y
dCBBbnksIENhbGxhYmxlLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVwbGUsIFVuaW9uCisKKyAg
ICBPcGVyYXRvciA9IENhbGxhYmxlW1tzdHIsIHN0cl0sIGJvb2xdCisKKworX19hbGxfXyA9IFsK
KyAgICAiSW52YWxpZE1hcmtlciIsCisgICAgIlVuZGVmaW5lZENvbXBhcmlzb24iLAorICAgICJV
bmRlZmluZWRFbnZpcm9ubWVudE5hbWUiLAorICAgICJNYXJrZXIiLAorICAgICJkZWZhdWx0X2Vu
dmlyb25tZW50IiwKK10KKworCitjbGFzcyBJbnZhbGlkTWFya2VyKFZhbHVlRXJyb3IpOgorICAg
ICIiIgorICAgIEFuIGludmFsaWQgbWFya2VyIHdhcyBmb3VuZCwgdXNlcnMgc2hvdWxkIHJlZmVy
IHRvIFBFUCA1MDguCisgICAgIiIiCisKKworY2xhc3MgVW5kZWZpbmVkQ29tcGFyaXNvbihWYWx1
ZUVycm9yKToKKyAgICAiIiIKKyAgICBBbiBpbnZhbGlkIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVk
IG9uIGEgdmFsdWUgdGhhdCBkb2Vzbid0IHN1cHBvcnQgaXQuCisgICAgIiIiCisKKworY2xhc3Mg
VW5kZWZpbmVkRW52aXJvbm1lbnROYW1lKFZhbHVlRXJyb3IpOgorICAgICIiIgorICAgIEEgbmFt
ZSB3YXMgYXR0ZW1wdGVkIHRvIGJlIHVzZWQgdGhhdCBkb2VzIG5vdCBleGlzdCBpbnNpZGUgb2Yg
dGhlCisgICAgZW52aXJvbm1lbnQuCisgICAgIiIiCisKKworY2xhc3MgTm9kZShvYmplY3QpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZSk6CisgICAgICAgICMgdHlwZTogKEFueSkgLT4g
Tm9uZQorICAgICAgICBzZWxmLnZhbHVlID0gdmFsdWUKKworICAgIGRlZiBfX3N0cl9fKHNlbGYp
OgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1cm4gc3RyKHNlbGYudmFs
dWUpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3Ry
CisgICAgICAgIHJldHVybiAiPHswfSh7MSFyfSk+Ii5mb3JtYXQoc2VsZi5fX2NsYXNzX18uX19u
YW1lX18sIHN0cihzZWxmKSkKKworICAgIGRlZiBzZXJpYWxpemUoc2VsZik6CisgICAgICAgICMg
dHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworCitj
bGFzcyBWYXJpYWJsZShOb2RlKToKKyAgICBkZWYgc2VyaWFsaXplKHNlbGYpOgorICAgICAgICAj
IHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1cm4gc3RyKHNlbGYpCisKKworY2xhc3MgVmFs
dWUoTm9kZSk6CisgICAgZGVmIHNlcmlhbGl6ZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAt
PiBzdHIKKyAgICAgICAgcmV0dXJuICciezB9IicuZm9ybWF0KHNlbGYpCisKKworY2xhc3MgT3Ao
Tm9kZSk6CisgICAgZGVmIHNlcmlhbGl6ZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBz
dHIKKyAgICAgICAgcmV0dXJuIHN0cihzZWxmKQorCisKK1ZBUklBQkxFID0gKAorICAgIEwoImlt
cGxlbWVudGF0aW9uX3ZlcnNpb24iKQorICAgIHwgTCgicGxhdGZvcm1fcHl0aG9uX2ltcGxlbWVu
dGF0aW9uIikKKyAgICB8IEwoImltcGxlbWVudGF0aW9uX25hbWUiKQorICAgIHwgTCgicHl0aG9u
X2Z1bGxfdmVyc2lvbiIpCisgICAgfCBMKCJwbGF0Zm9ybV9yZWxlYXNlIikKKyAgICB8IEwoInBs
YXRmb3JtX3ZlcnNpb24iKQorICAgIHwgTCgicGxhdGZvcm1fbWFjaGluZSIpCisgICAgfCBMKCJw
bGF0Zm9ybV9zeXN0ZW0iKQorICAgIHwgTCgicHl0aG9uX3ZlcnNpb24iKQorICAgIHwgTCgic3lz
X3BsYXRmb3JtIikKKyAgICB8IEwoIm9zX25hbWUiKQorICAgIHwgTCgib3MubmFtZSIpICAjIFBF
UC0zNDUKKyAgICB8IEwoInN5cy5wbGF0Zm9ybSIpICAjIFBFUC0zNDUKKyAgICB8IEwoInBsYXRm
b3JtLnZlcnNpb24iKSAgIyBQRVAtMzQ1CisgICAgfCBMKCJwbGF0Zm9ybS5tYWNoaW5lIikgICMg
UEVQLTM0NQorICAgIHwgTCgicGxhdGZvcm0ucHl0aG9uX2ltcGxlbWVudGF0aW9uIikgICMgUEVQ
LTM0NQorICAgIHwgTCgicHl0aG9uX2ltcGxlbWVudGF0aW9uIikgICMgdW5kb2N1bWVudGVkIHNl
dHVwdG9vbHMgbGVnYWN5CisgICAgfCBMKCJleHRyYSIpICAjIFBFUC01MDgKKykKK0FMSUFTRVMg
PSB7CisgICAgIm9zLm5hbWUiOiAib3NfbmFtZSIsCisgICAgInN5cy5wbGF0Zm9ybSI6ICJzeXNf
cGxhdGZvcm0iLAorICAgICJwbGF0Zm9ybS52ZXJzaW9uIjogInBsYXRmb3JtX3ZlcnNpb24iLAor
ICAgICJwbGF0Zm9ybS5tYWNoaW5lIjogInBsYXRmb3JtX21hY2hpbmUiLAorICAgICJwbGF0Zm9y
bS5weXRob25faW1wbGVtZW50YXRpb24iOiAicGxhdGZvcm1fcHl0aG9uX2ltcGxlbWVudGF0aW9u
IiwKKyAgICAicHl0aG9uX2ltcGxlbWVudGF0aW9uIjogInBsYXRmb3JtX3B5dGhvbl9pbXBsZW1l
bnRhdGlvbiIsCit9CitWQVJJQUJMRS5zZXRQYXJzZUFjdGlvbihsYW1iZGEgcywgbCwgdDogVmFy
aWFibGUoQUxJQVNFUy5nZXQodFswXSwgdFswXSkpKQorCitWRVJTSU9OX0NNUCA9ICgKKyAgICBM
KCI9PT0iKSB8IEwoIj09IikgfCBMKCI+PSIpIHwgTCgiPD0iKSB8IEwoIiE9IikgfCBMKCJ+PSIp
IHwgTCgiPiIpIHwgTCgiPCIpCispCisKK01BUktFUl9PUCA9IFZFUlNJT05fQ01QIHwgTCgibm90
IGluIikgfCBMKCJpbiIpCitNQVJLRVJfT1Auc2V0UGFyc2VBY3Rpb24obGFtYmRhIHMsIGwsIHQ6
IE9wKHRbMF0pKQorCitNQVJLRVJfVkFMVUUgPSBRdW90ZWRTdHJpbmcoIiciKSB8IFF1b3RlZFN0
cmluZygnIicpCitNQVJLRVJfVkFMVUUuc2V0UGFyc2VBY3Rpb24obGFtYmRhIHMsIGwsIHQ6IFZh
bHVlKHRbMF0pKQorCitCT09MT1AgPSBMKCJhbmQiKSB8IEwoIm9yIikKKworTUFSS0VSX1ZBUiA9
IFZBUklBQkxFIHwgTUFSS0VSX1ZBTFVFCisKK01BUktFUl9JVEVNID0gR3JvdXAoTUFSS0VSX1ZB
UiArIE1BUktFUl9PUCArIE1BUktFUl9WQVIpCitNQVJLRVJfSVRFTS5zZXRQYXJzZUFjdGlvbihs
YW1iZGEgcywgbCwgdDogdHVwbGUodFswXSkpCisKK0xQQVJFTiA9IEwoIigiKS5zdXBwcmVzcygp
CitSUEFSRU4gPSBMKCIpIikuc3VwcHJlc3MoKQorCitNQVJLRVJfRVhQUiA9IEZvcndhcmQoKQor
TUFSS0VSX0FUT00gPSBNQVJLRVJfSVRFTSB8IEdyb3VwKExQQVJFTiArIE1BUktFUl9FWFBSICsg
UlBBUkVOKQorTUFSS0VSX0VYUFIgPDwgTUFSS0VSX0FUT00gKyBaZXJvT3JNb3JlKEJPT0xPUCAr
IE1BUktFUl9FWFBSKQorCitNQVJLRVIgPSBzdHJpbmdTdGFydCArIE1BUktFUl9FWFBSICsgc3Ry
aW5nRW5kCisKKworZGVmIF9jb2VyY2VfcGFyc2VfcmVzdWx0KHJlc3VsdHMpOgorICAgICMgdHlw
ZTogKFVuaW9uW1BhcnNlUmVzdWx0cywgTGlzdFtBbnldXSkgLT4gTGlzdFtBbnldCisgICAgaWYg
aXNpbnN0YW5jZShyZXN1bHRzLCBQYXJzZVJlc3VsdHMpOgorICAgICAgICByZXR1cm4gW19jb2Vy
Y2VfcGFyc2VfcmVzdWx0KGkpIGZvciBpIGluIHJlc3VsdHNdCisgICAgZWxzZToKKyAgICAgICAg
cmV0dXJuIHJlc3VsdHMKKworCitkZWYgX2Zvcm1hdF9tYXJrZXIobWFya2VyLCBmaXJzdD1UcnVl
KToKKyAgICAjIHR5cGU6IChVbmlvbltMaXN0W3N0cl0sIFR1cGxlW05vZGUsIC4uLl0sIHN0cl0s
IE9wdGlvbmFsW2Jvb2xdKSAtPiBzdHIKKworICAgIGFzc2VydCBpc2luc3RhbmNlKG1hcmtlciwg
KGxpc3QsIHR1cGxlLCBzdHJpbmdfdHlwZXMpKQorCisgICAgIyBTb21ldGltZXMgd2UgaGF2ZSBh
IHN0cnVjdHVyZSBsaWtlIFtbLi4uXV0gd2hpY2ggaXMgYSBzaW5nbGUgaXRlbSBsaXN0CisgICAg
IyB3aGVyZSB0aGUgc2luZ2xlIGl0ZW0gaXMgaXRzZWxmIGl0J3Mgb3duIGxpc3QuIEluIHRoYXQg
Y2FzZSB3ZSB3YW50IHNraXAKKyAgICAjIHRoZSByZXN0IG9mIHRoaXMgZnVuY3Rpb24gc28gdGhh
dCB3ZSBkb24ndCBnZXQgZXh0cmFuZW91cyAoKSBvbiB0aGUKKyAgICAjIG91dHNpZGUuCisgICAg
aWYgKAorICAgICAgICBpc2luc3RhbmNlKG1hcmtlciwgbGlzdCkKKyAgICAgICAgYW5kIGxlbiht
YXJrZXIpID09IDEKKyAgICAgICAgYW5kIGlzaW5zdGFuY2UobWFya2VyWzBdLCAobGlzdCwgdHVw
bGUpKQorICAgICk6CisgICAgICAgIHJldHVybiBfZm9ybWF0X21hcmtlcihtYXJrZXJbMF0pCisK
KyAgICBpZiBpc2luc3RhbmNlKG1hcmtlciwgbGlzdCk6CisgICAgICAgIGlubmVyID0gKF9mb3Jt
YXRfbWFya2VyKG0sIGZpcnN0PUZhbHNlKSBmb3IgbSBpbiBtYXJrZXIpCisgICAgICAgIGlmIGZp
cnN0OgorICAgICAgICAgICAgcmV0dXJuICIgIi5qb2luKGlubmVyKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcmV0dXJuICIoIiArICIgIi5qb2luKGlubmVyKSArICIpIgorICAgIGVsaWYg
aXNpbnN0YW5jZShtYXJrZXIsIHR1cGxlKToKKyAgICAgICAgcmV0dXJuICIgIi5qb2luKFttLnNl
cmlhbGl6ZSgpIGZvciBtIGluIG1hcmtlcl0pCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIG1h
cmtlcgorCisKK19vcGVyYXRvcnMgPSB7CisgICAgImluIjogbGFtYmRhIGxocywgcmhzOiBsaHMg
aW4gcmhzLAorICAgICJub3QgaW4iOiBsYW1iZGEgbGhzLCByaHM6IGxocyBub3QgaW4gcmhzLAor
ICAgICI8Ijogb3BlcmF0b3IubHQsCisgICAgIjw9Ijogb3BlcmF0b3IubGUsCisgICAgIj09Ijog
b3BlcmF0b3IuZXEsCisgICAgIiE9Ijogb3BlcmF0b3IubmUsCisgICAgIj49Ijogb3BlcmF0b3Iu
Z2UsCisgICAgIj4iOiBvcGVyYXRvci5ndCwKK30gICMgdHlwZTogRGljdFtzdHIsIE9wZXJhdG9y
XQorCisKK2RlZiBfZXZhbF9vcChsaHMsIG9wLCByaHMpOgorICAgICMgdHlwZTogKHN0ciwgT3As
IHN0cikgLT4gYm9vbAorICAgIHRyeToKKyAgICAgICAgc3BlYyA9IFNwZWNpZmllcigiIi5qb2lu
KFtvcC5zZXJpYWxpemUoKSwgcmhzXSkpCisgICAgZXhjZXB0IEludmFsaWRTcGVjaWZpZXI6Cisg
ICAgICAgIHBhc3MKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gc3BlYy5jb250YWlucyhsaHMp
CisKKyAgICBvcGVyID0gX29wZXJhdG9ycy5nZXQob3Auc2VyaWFsaXplKCkpICAjIHR5cGU6IE9w
dGlvbmFsW09wZXJhdG9yXQorICAgIGlmIG9wZXIgaXMgTm9uZToKKyAgICAgICAgcmFpc2UgVW5k
ZWZpbmVkQ29tcGFyaXNvbigKKyAgICAgICAgICAgICJVbmRlZmluZWQgezAhcn0gb24gezEhcn0g
YW5kIHsyIXJ9LiIuZm9ybWF0KG9wLCBsaHMsIHJocykKKyAgICAgICAgKQorCisgICAgcmV0dXJu
IG9wZXIobGhzLCByaHMpCisKKworY2xhc3MgVW5kZWZpbmVkKG9iamVjdCk6CisgICAgcGFzcwor
CisKK191bmRlZmluZWQgPSBVbmRlZmluZWQoKQorCisKK2RlZiBfZ2V0X2VudihlbnZpcm9ubWVu
dCwgbmFtZSk6CisgICAgIyB0eXBlOiAoRGljdFtzdHIsIHN0cl0sIHN0cikgLT4gc3RyCisgICAg
dmFsdWUgPSBlbnZpcm9ubWVudC5nZXQobmFtZSwgX3VuZGVmaW5lZCkgICMgdHlwZTogVW5pb25b
c3RyLCBVbmRlZmluZWRdCisKKyAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBVbmRlZmluZWQpOgor
ICAgICAgICByYWlzZSBVbmRlZmluZWRFbnZpcm9ubWVudE5hbWUoCisgICAgICAgICAgICAiezAh
cn0gZG9lcyBub3QgZXhpc3QgaW4gZXZhbHVhdGlvbiBlbnZpcm9ubWVudC4iLmZvcm1hdChuYW1l
KQorICAgICAgICApCisKKyAgICByZXR1cm4gdmFsdWUKKworCitkZWYgX2V2YWx1YXRlX21hcmtl
cnMobWFya2VycywgZW52aXJvbm1lbnQpOgorICAgICMgdHlwZTogKExpc3RbQW55XSwgRGljdFtz
dHIsIHN0cl0pIC0+IGJvb2wKKyAgICBncm91cHMgPSBbW11dICAjIHR5cGU6IExpc3RbTGlzdFti
b29sXV0KKworICAgIGZvciBtYXJrZXIgaW4gbWFya2VyczoKKyAgICAgICAgYXNzZXJ0IGlzaW5z
dGFuY2UobWFya2VyLCAobGlzdCwgdHVwbGUsIHN0cmluZ190eXBlcykpCisKKyAgICAgICAgaWYg
aXNpbnN0YW5jZShtYXJrZXIsIGxpc3QpOgorICAgICAgICAgICAgZ3JvdXBzWy0xXS5hcHBlbmQo
X2V2YWx1YXRlX21hcmtlcnMobWFya2VyLCBlbnZpcm9ubWVudCkpCisgICAgICAgIGVsaWYgaXNp
bnN0YW5jZShtYXJrZXIsIHR1cGxlKToKKyAgICAgICAgICAgIGxocywgb3AsIHJocyA9IG1hcmtl
cgorCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGxocywgVmFyaWFibGUpOgorICAgICAgICAg
ICAgICAgIGxoc192YWx1ZSA9IF9nZXRfZW52KGVudmlyb25tZW50LCBsaHMudmFsdWUpCisgICAg
ICAgICAgICAgICAgcmhzX3ZhbHVlID0gcmhzLnZhbHVlCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIGxoc192YWx1ZSA9IGxocy52YWx1ZQorICAgICAgICAgICAgICAgIHJoc192
YWx1ZSA9IF9nZXRfZW52KGVudmlyb25tZW50LCByaHMudmFsdWUpCisKKyAgICAgICAgICAgIGdy
b3Vwc1stMV0uYXBwZW5kKF9ldmFsX29wKGxoc192YWx1ZSwgb3AsIHJoc192YWx1ZSkpCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgbWFya2VyIGluIFsiYW5kIiwgIm9yIl0KKyAg
ICAgICAgICAgIGlmIG1hcmtlciA9PSAib3IiOgorICAgICAgICAgICAgICAgIGdyb3Vwcy5hcHBl
bmQoW10pCisKKyAgICByZXR1cm4gYW55KGFsbChpdGVtKSBmb3IgaXRlbSBpbiBncm91cHMpCisK
KworZGVmIGZvcm1hdF9mdWxsX3ZlcnNpb24oaW5mbyk6CisgICAgIyB0eXBlOiAoc3lzLl92ZXJz
aW9uX2luZm8pIC0+IHN0cgorICAgIHZlcnNpb24gPSAiezAubWFqb3J9LnswLm1pbm9yfS57MC5t
aWNyb30iLmZvcm1hdChpbmZvKQorICAgIGtpbmQgPSBpbmZvLnJlbGVhc2VsZXZlbAorICAgIGlm
IGtpbmQgIT0gImZpbmFsIjoKKyAgICAgICAgdmVyc2lvbiArPSBraW5kWzBdICsgc3RyKGluZm8u
c2VyaWFsKQorICAgIHJldHVybiB2ZXJzaW9uCisKKworZGVmIGRlZmF1bHRfZW52aXJvbm1lbnQo
KToKKyAgICAjIHR5cGU6ICgpIC0+IERpY3Rbc3RyLCBzdHJdCisgICAgaWYgaGFzYXR0cihzeXMs
ICJpbXBsZW1lbnRhdGlvbiIpOgorICAgICAgICAjIElnbm9yaW5nIHRoZSBgc3lzLmltcGxlbWVu
dGF0aW9uYCByZWZlcmVuY2UgZm9yIHR5cGUgY2hlY2tpbmcgZHVlIHRvCisgICAgICAgICMgbXlw
eSBub3QgbGlraW5nIHRoYXQgdGhlIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0IGluIFB5dGhvbiAy
Ljcgd2hlbgorICAgICAgICAjIHJ1biB3aXRoIHRoZSBgLS1weTI3YCBmbGFnLgorICAgICAgICBp
dmVyID0gZm9ybWF0X2Z1bGxfdmVyc2lvbihzeXMuaW1wbGVtZW50YXRpb24udmVyc2lvbikgICMg
dHlwZTogaWdub3JlCisgICAgICAgIGltcGxlbWVudGF0aW9uX25hbWUgPSBzeXMuaW1wbGVtZW50
YXRpb24ubmFtZSAgIyB0eXBlOiBpZ25vcmUKKyAgICBlbHNlOgorICAgICAgICBpdmVyID0gIjAi
CisgICAgICAgIGltcGxlbWVudGF0aW9uX25hbWUgPSAiIgorCisgICAgcmV0dXJuIHsKKyAgICAg
ICAgImltcGxlbWVudGF0aW9uX25hbWUiOiBpbXBsZW1lbnRhdGlvbl9uYW1lLAorICAgICAgICAi
aW1wbGVtZW50YXRpb25fdmVyc2lvbiI6IGl2ZXIsCisgICAgICAgICJvc19uYW1lIjogb3MubmFt
ZSwKKyAgICAgICAgInBsYXRmb3JtX21hY2hpbmUiOiBwbGF0Zm9ybS5tYWNoaW5lKCksCisgICAg
ICAgICJwbGF0Zm9ybV9yZWxlYXNlIjogcGxhdGZvcm0ucmVsZWFzZSgpLAorICAgICAgICAicGxh
dGZvcm1fc3lzdGVtIjogcGxhdGZvcm0uc3lzdGVtKCksCisgICAgICAgICJwbGF0Zm9ybV92ZXJz
aW9uIjogcGxhdGZvcm0udmVyc2lvbigpLAorICAgICAgICAicHl0aG9uX2Z1bGxfdmVyc2lvbiI6
IHBsYXRmb3JtLnB5dGhvbl92ZXJzaW9uKCksCisgICAgICAgICJwbGF0Zm9ybV9weXRob25faW1w
bGVtZW50YXRpb24iOiBwbGF0Zm9ybS5weXRob25faW1wbGVtZW50YXRpb24oKSwKKyAgICAgICAg
InB5dGhvbl92ZXJzaW9uIjogIi4iLmpvaW4ocGxhdGZvcm0ucHl0aG9uX3ZlcnNpb25fdHVwbGUo
KVs6Ml0pLAorICAgICAgICAic3lzX3BsYXRmb3JtIjogc3lzLnBsYXRmb3JtLAorICAgIH0KKwor
CitjbGFzcyBNYXJrZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWFya2VyKToK
KyAgICAgICAgIyB0eXBlOiAoc3RyKSAtPiBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHNlbGYuX21hcmtlcnMgPSBfY29lcmNlX3BhcnNlX3Jlc3VsdChNQVJLRVIucGFyc2VTdHJpbmco
bWFya2VyKSkKKyAgICAgICAgZXhjZXB0IFBhcnNlRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAg
ICBlcnJfc3RyID0gIkludmFsaWQgbWFya2VyOiB7MCFyfSwgcGFyc2UgZXJyb3IgYXQgezEhcn0i
LmZvcm1hdCgKKyAgICAgICAgICAgICAgICBtYXJrZXIsIG1hcmtlcltlLmxvYyA6IGUubG9jICsg
OF0KKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJhaXNlIEludmFsaWRNYXJrZXIoZXJyX3N0
cikKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgor
ICAgICAgICByZXR1cm4gX2Zvcm1hdF9tYXJrZXIoc2VsZi5fbWFya2VycykKKworICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcmV0dXJu
ICI8TWFya2VyKHswIXJ9KT4iLmZvcm1hdChzdHIoc2VsZikpCisKKyAgICBkZWYgZXZhbHVhdGUo
c2VsZiwgZW52aXJvbm1lbnQ9Tm9uZSk6CisgICAgICAgICMgdHlwZTogKE9wdGlvbmFsW0RpY3Rb
c3RyLCBzdHJdXSkgLT4gYm9vbAorICAgICAgICAiIiJFdmFsdWF0ZSBhIG1hcmtlci4KKworICAg
ICAgICBSZXR1cm4gdGhlIGJvb2xlYW4gZnJvbSBldmFsdWF0aW5nIHRoZSBnaXZlbiBtYXJrZXIg
YWdhaW5zdCB0aGUKKyAgICAgICAgZW52aXJvbm1lbnQuIGVudmlyb25tZW50IGlzIGFuIG9wdGlv
bmFsIGFyZ3VtZW50IHRvIG92ZXJyaWRlIGFsbCBvcgorICAgICAgICBwYXJ0IG9mIHRoZSBkZXRl
cm1pbmVkIGVudmlyb25tZW50LgorCisgICAgICAgIFRoZSBlbnZpcm9ubWVudCBpcyBkZXRlcm1p
bmVkIGZyb20gdGhlIGN1cnJlbnQgUHl0aG9uIHByb2Nlc3MuCisgICAgICAgICIiIgorICAgICAg
ICBjdXJyZW50X2Vudmlyb25tZW50ID0gZGVmYXVsdF9lbnZpcm9ubWVudCgpCisgICAgICAgIGlm
IGVudmlyb25tZW50IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY3VycmVudF9lbnZpcm9ubWVu
dC51cGRhdGUoZW52aXJvbm1lbnQpCisKKyAgICAgICAgcmV0dXJuIF9ldmFsdWF0ZV9tYXJrZXJz
KHNlbGYuX21hcmtlcnMsIGN1cnJlbnRfZW52aXJvbm1lbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy9wYWNrYWdpbmcvcHkudHlwZWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvcHku
dHlwZWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5
MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3JlcXVpcmVtZW50cy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9yZXF1aXJlbWVudHMucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIy
NmU5ODRlMjQ2NzExZDQ0OWJjMGM0YzQyMGVjNTY4NGE2ZWJiMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9yZXF1aXJlbWVudHMucHkKQEAgLTAsMCArMSwxNTEg
QEAKKyMgVGhpcyBmaWxlIGlzIGR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBB
cGFjaGUgTGljZW5zZSwgVmVyc2lvbgorIyAyLjAsIGFuZCB0aGUgQlNEIExpY2Vuc2UuIFNlZSB0
aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoaXMgcmVwb3NpdG9yeQorIyBmb3IgY29t
cGxldGUgZGV0YWlscy4KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHN0cmluZworaW1wb3J0IHJlCitpbXBv
cnQgc3lzCisKK2Zyb20gcHlwYXJzaW5nIGltcG9ydCBzdHJpbmdTdGFydCwgc3RyaW5nRW5kLCBv
cmlnaW5hbFRleHRGb3IsIFBhcnNlRXhjZXB0aW9uCitmcm9tIHB5cGFyc2luZyBpbXBvcnQgWmVy
b09yTW9yZSwgV29yZCwgT3B0aW9uYWwsIFJlZ2V4LCBDb21iaW5lCitmcm9tIHB5cGFyc2luZyBp
bXBvcnQgTGl0ZXJhbCBhcyBMICAjIG5vcWEKKworZnJvbSAuX3R5cGluZyBpbXBvcnQgVFlQRV9D
SEVDS0lORworZnJvbSAubWFya2VycyBpbXBvcnQgTUFSS0VSX0VYUFIsIE1hcmtlcgorZnJvbSAu
c3BlY2lmaWVycyBpbXBvcnQgTGVnYWN5U3BlY2lmaWVyLCBTcGVjaWZpZXIsIFNwZWNpZmllclNl
dAorCitpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6CisgICAgZnJvbSB1cmxsaWIgaW1wb3J0
IHBhcnNlIGFzIHVybHBhcnNlICAjIHByYWdtYTogbm8gY292ZXIKK2Vsc2U6ICAjIHByYWdtYTog
bm8gY292ZXIKKyAgICBpbXBvcnQgdXJscGFyc2UKKworCitpZiBUWVBFX0NIRUNLSU5HOiAgIyBw
cmFnbWE6IG5vIGNvdmVyCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKKworCitjbGFzcyBJ
bnZhbGlkUmVxdWlyZW1lbnQoVmFsdWVFcnJvcik6CisgICAgIiIiCisgICAgQW4gaW52YWxpZCBy
ZXF1aXJlbWVudCB3YXMgZm91bmQsIHVzZXJzIHNob3VsZCByZWZlciB0byBQRVAgNTA4LgorICAg
ICIiIgorCisKK0FMUEhBTlVNID0gV29yZChzdHJpbmcuYXNjaWlfbGV0dGVycyArIHN0cmluZy5k
aWdpdHMpCisKK0xCUkFDS0VUID0gTCgiWyIpLnN1cHByZXNzKCkKK1JCUkFDS0VUID0gTCgiXSIp
LnN1cHByZXNzKCkKK0xQQVJFTiA9IEwoIigiKS5zdXBwcmVzcygpCitSUEFSRU4gPSBMKCIpIiku
c3VwcHJlc3MoKQorQ09NTUEgPSBMKCIsIikuc3VwcHJlc3MoKQorU0VNSUNPTE9OID0gTCgiOyIp
LnN1cHByZXNzKCkKK0FUID0gTCgiQCIpLnN1cHByZXNzKCkKKworUFVOQ1RVQVRJT04gPSBXb3Jk
KCItXy4iKQorSURFTlRJRklFUl9FTkQgPSBBTFBIQU5VTSB8IChaZXJvT3JNb3JlKFBVTkNUVUFU
SU9OKSArIEFMUEhBTlVNKQorSURFTlRJRklFUiA9IENvbWJpbmUoQUxQSEFOVU0gKyBaZXJvT3JN
b3JlKElERU5USUZJRVJfRU5EKSkKKworTkFNRSA9IElERU5USUZJRVIoIm5hbWUiKQorRVhUUkEg
PSBJREVOVElGSUVSCisKK1VSSSA9IFJlZ2V4KHIiW14gXSsiKSgidXJsIikKK1VSTCA9IEFUICsg
VVJJCisKK0VYVFJBU19MSVNUID0gRVhUUkEgKyBaZXJvT3JNb3JlKENPTU1BICsgRVhUUkEpCitF
WFRSQVMgPSAoTEJSQUNLRVQgKyBPcHRpb25hbChFWFRSQVNfTElTVCkgKyBSQlJBQ0tFVCkoImV4
dHJhcyIpCisKK1ZFUlNJT05fUEVQNDQwID0gUmVnZXgoU3BlY2lmaWVyLl9yZWdleF9zdHIsIHJl
LlZFUkJPU0UgfCByZS5JR05PUkVDQVNFKQorVkVSU0lPTl9MRUdBQ1kgPSBSZWdleChMZWdhY3lT
cGVjaWZpZXIuX3JlZ2V4X3N0ciwgcmUuVkVSQk9TRSB8IHJlLklHTk9SRUNBU0UpCisKK1ZFUlNJ
T05fT05FID0gVkVSU0lPTl9QRVA0NDAgXiBWRVJTSU9OX0xFR0FDWQorVkVSU0lPTl9NQU5ZID0g
Q29tYmluZSgKKyAgICBWRVJTSU9OX09ORSArIFplcm9Pck1vcmUoQ09NTUEgKyBWRVJTSU9OX09O
RSksIGpvaW5TdHJpbmc9IiwiLCBhZGphY2VudD1GYWxzZQorKSgiX3Jhd19zcGVjIikKK19WRVJT
SU9OX1NQRUMgPSBPcHRpb25hbCgoKExQQVJFTiArIFZFUlNJT05fTUFOWSArIFJQQVJFTikgfCBW
RVJTSU9OX01BTlkpKQorX1ZFUlNJT05fU1BFQy5zZXRQYXJzZUFjdGlvbihsYW1iZGEgcywgbCwg
dDogdC5fcmF3X3NwZWMgb3IgIiIpCisKK1ZFUlNJT05fU1BFQyA9IG9yaWdpbmFsVGV4dEZvcihf
VkVSU0lPTl9TUEVDKSgic3BlY2lmaWVyIikKK1ZFUlNJT05fU1BFQy5zZXRQYXJzZUFjdGlvbihs
YW1iZGEgcywgbCwgdDogdFsxXSkKKworTUFSS0VSX0VYUFIgPSBvcmlnaW5hbFRleHRGb3IoTUFS
S0VSX0VYUFIoKSkoIm1hcmtlciIpCitNQVJLRVJfRVhQUi5zZXRQYXJzZUFjdGlvbigKKyAgICBs
YW1iZGEgcywgbCwgdDogTWFya2VyKHNbdC5fb3JpZ2luYWxfc3RhcnQgOiB0Ll9vcmlnaW5hbF9l
bmRdKQorKQorTUFSS0VSX1NFUEFSQVRPUiA9IFNFTUlDT0xPTgorTUFSS0VSID0gTUFSS0VSX1NF
UEFSQVRPUiArIE1BUktFUl9FWFBSCisKK1ZFUlNJT05fQU5EX01BUktFUiA9IFZFUlNJT05fU1BF
QyArIE9wdGlvbmFsKE1BUktFUikKK1VSTF9BTkRfTUFSS0VSID0gVVJMICsgT3B0aW9uYWwoTUFS
S0VSKQorCitOQU1FRF9SRVFVSVJFTUVOVCA9IE5BTUUgKyBPcHRpb25hbChFWFRSQVMpICsgKFVS
TF9BTkRfTUFSS0VSIHwgVkVSU0lPTl9BTkRfTUFSS0VSKQorCitSRVFVSVJFTUVOVCA9IHN0cmlu
Z1N0YXJ0ICsgTkFNRURfUkVRVUlSRU1FTlQgKyBzdHJpbmdFbmQKKyMgcHlwYXJzaW5nIGlzbid0
IHRocmVhZCBzYWZlIGR1cmluZyBpbml0aWFsaXphdGlvbiwgc28gd2UgZG8gaXQgZWFnZXJseSwg
c2VlCisjIGlzc3VlICMxMDQKK1JFUVVJUkVNRU5ULnBhcnNlU3RyaW5nKCJ4W10iKQorCisKK2Ns
YXNzIFJlcXVpcmVtZW50KG9iamVjdCk6CisgICAgIiIiUGFyc2UgYSByZXF1aXJlbWVudC4KKwor
ICAgIFBhcnNlIGEgZ2l2ZW4gcmVxdWlyZW1lbnQgc3RyaW5nIGludG8gaXRzIHBhcnRzLCBzdWNo
IGFzIG5hbWUsIHNwZWNpZmllciwKKyAgICBVUkwsIGFuZCBleHRyYXMuIFJhaXNlcyBJbnZhbGlk
UmVxdWlyZW1lbnQgb24gYSBiYWRseS1mb3JtZWQgcmVxdWlyZW1lbnQKKyAgICBzdHJpbmcuCisg
ICAgIiIiCisKKyAgICAjIFRPRE86IENhbiB3ZSB0ZXN0IHdoZXRoZXIgc29tZXRoaW5nIGlzIGNv
bnRhaW5lZCB3aXRoaW4gYSByZXF1aXJlbWVudD8KKyAgICAjICAgICAgIElmIHNvIGhvdyBkbyB3
ZSBkbyB0aGF0PyBEbyB3ZSBuZWVkIHRvIHRlc3QgYWdhaW5zdCB0aGUgX25hbWVfIG9mCisgICAg
IyAgICAgICB0aGUgdGhpbmcgYXMgd2VsbCBhcyB0aGUgdmVyc2lvbj8gV2hhdCBhYm91dCB0aGUg
bWFya2Vycz8KKyAgICAjIFRPRE86IENhbiB3ZSBub3JtYWxpemUgdGhlIG5hbWUgYW5kIGV4dHJh
IG5hbWU/CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWlyZW1lbnRfc3RyaW5nKToKKyAg
ICAgICAgIyB0eXBlOiAoc3RyKSAtPiBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJl
cSA9IFJFUVVJUkVNRU5ULnBhcnNlU3RyaW5nKHJlcXVpcmVtZW50X3N0cmluZykKKyAgICAgICAg
ZXhjZXB0IFBhcnNlRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByYWlzZSBJbnZhbGlkUmVx
dWlyZW1lbnQoCisgICAgICAgICAgICAgICAgJ1BhcnNlIGVycm9yIGF0ICJ7MCFyfSI6IHsxfScu
Zm9ybWF0KAorICAgICAgICAgICAgICAgICAgICByZXF1aXJlbWVudF9zdHJpbmdbZS5sb2MgOiBl
LmxvYyArIDhdLCBlLm1zZworICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKworICAg
ICAgICBzZWxmLm5hbWUgPSByZXEubmFtZQorICAgICAgICBpZiByZXEudXJsOgorICAgICAgICAg
ICAgcGFyc2VkX3VybCA9IHVybHBhcnNlLnVybHBhcnNlKHJlcS51cmwpCisgICAgICAgICAgICBp
ZiBwYXJzZWRfdXJsLnNjaGVtZSA9PSAiZmlsZSI6CisgICAgICAgICAgICAgICAgaWYgdXJscGFy
c2UudXJsdW5wYXJzZShwYXJzZWRfdXJsKSAhPSByZXEudXJsOgorICAgICAgICAgICAgICAgICAg
ICByYWlzZSBJbnZhbGlkUmVxdWlyZW1lbnQoIkludmFsaWQgVVJMIGdpdmVuIikKKyAgICAgICAg
ICAgIGVsaWYgbm90IChwYXJzZWRfdXJsLnNjaGVtZSBhbmQgcGFyc2VkX3VybC5uZXRsb2MpIG9y
ICgKKyAgICAgICAgICAgICAgICBub3QgcGFyc2VkX3VybC5zY2hlbWUgYW5kIG5vdCBwYXJzZWRf
dXJsLm5ldGxvYworICAgICAgICAgICAgKToKKyAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlk
UmVxdWlyZW1lbnQoIkludmFsaWQgVVJMOiB7MH0iLmZvcm1hdChyZXEudXJsKSkKKyAgICAgICAg
ICAgIHNlbGYudXJsID0gcmVxLnVybAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi51
cmwgPSBOb25lCisgICAgICAgIHNlbGYuZXh0cmFzID0gc2V0KHJlcS5leHRyYXMuYXNMaXN0KCkg
aWYgcmVxLmV4dHJhcyBlbHNlIFtdKQorICAgICAgICBzZWxmLnNwZWNpZmllciA9IFNwZWNpZmll
clNldChyZXEuc3BlY2lmaWVyKQorICAgICAgICBzZWxmLm1hcmtlciA9IHJlcS5tYXJrZXIgaWYg
cmVxLm1hcmtlciBlbHNlIE5vbmUKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICAj
IHR5cGU6ICgpIC0+IHN0cgorICAgICAgICBwYXJ0cyA9IFtzZWxmLm5hbWVdICAjIHR5cGU6IExp
c3Rbc3RyXQorCisgICAgICAgIGlmIHNlbGYuZXh0cmFzOgorICAgICAgICAgICAgcGFydHMuYXBw
ZW5kKCJbezB9XSIuZm9ybWF0KCIsIi5qb2luKHNvcnRlZChzZWxmLmV4dHJhcykpKSkKKworICAg
ICAgICBpZiBzZWxmLnNwZWNpZmllcjoKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZChzdHIoc2Vs
Zi5zcGVjaWZpZXIpKQorCisgICAgICAgIGlmIHNlbGYudXJsOgorICAgICAgICAgICAgcGFydHMu
YXBwZW5kKCJAIHswfSIuZm9ybWF0KHNlbGYudXJsKSkKKyAgICAgICAgICAgIGlmIHNlbGYubWFy
a2VyOgorICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgiICIpCisKKyAgICAgICAgaWYgc2Vs
Zi5tYXJrZXI6CisgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoIjsgezB9Ii5mb3JtYXQoc2VsZi5t
YXJrZXIpKQorCisgICAgICAgIHJldHVybiAiIi5qb2luKHBhcnRzKQorCisgICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1cm4gIjxS
ZXF1aXJlbWVudCh7MCFyfSk+Ii5mb3JtYXQoc3RyKHNlbGYpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvcGFja2FnaW5nL3NwZWNpZmllcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdp
bmcvc3BlY2lmaWVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDJjYmZlZjMzMjVmYzI0MjVjNzY1ZGRmMTJj
Mjk2MDUzZDUzZjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5n
L3NwZWNpZmllcnMucHkKQEAgLTAsMCArMSw4NjQgQEAKKyMgVGhpcyBmaWxlIGlzIGR1YWwgbGlj
ZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbgorIyAy
LjAsIGFuZCB0aGUgQlNEIExpY2Vuc2UuIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290
IG9mIHRoaXMgcmVwb3NpdG9yeQorIyBmb3IgY29tcGxldGUgZGV0YWlscy4KK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKwor
aW1wb3J0IGFiYworaW1wb3J0IGZ1bmN0b29scworaW1wb3J0IGl0ZXJ0b29scworaW1wb3J0IHJl
CitpbXBvcnQgd2FybmluZ3MKKworZnJvbSAuX2NvbXBhdCBpbXBvcnQgc3RyaW5nX3R5cGVzLCB3
aXRoX21ldGFjbGFzcworZnJvbSAuX3R5cGluZyBpbXBvcnQgVFlQRV9DSEVDS0lORworZnJvbSAu
dXRpbHMgaW1wb3J0IGNhbm9uaWNhbGl6ZV92ZXJzaW9uCitmcm9tIC52ZXJzaW9uIGltcG9ydCBW
ZXJzaW9uLCBMZWdhY3lWZXJzaW9uLCBwYXJzZQorCitpZiBUWVBFX0NIRUNLSU5HOiAgIyBwcmFn
bWE6IG5vIGNvdmVyCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QsIERpY3QsIFVuaW9uLCBJ
dGVyYWJsZSwgSXRlcmF0b3IsIE9wdGlvbmFsLCBDYWxsYWJsZSwgVHVwbGUKKworICAgIFBhcnNl
ZFZlcnNpb24gPSBVbmlvbltWZXJzaW9uLCBMZWdhY3lWZXJzaW9uXQorICAgIFVucGFyc2VkVmVy
c2lvbiA9IFVuaW9uW1ZlcnNpb24sIExlZ2FjeVZlcnNpb24sIHN0cl0KKyAgICBDYWxsYWJsZU9w
ZXJhdG9yID0gQ2FsbGFibGVbW1BhcnNlZFZlcnNpb24sIHN0cl0sIGJvb2xdCisKKworY2xhc3Mg
SW52YWxpZFNwZWNpZmllcihWYWx1ZUVycm9yKToKKyAgICAiIiIKKyAgICBBbiBpbnZhbGlkIHNw
ZWNpZmllciB3YXMgZm91bmQsIHVzZXJzIHNob3VsZCByZWZlciB0byBQRVAgNDQwLgorICAgICIi
IgorCisKK2NsYXNzIEJhc2VTcGVjaWZpZXIod2l0aF9tZXRhY2xhc3MoYWJjLkFCQ01ldGEsIG9i
amVjdCkpOiAgIyB0eXBlOiBpZ25vcmUKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVm
IF9fc3RyX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgICIiIgor
ICAgICAgICBSZXR1cm5zIHRoZSBzdHIgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBTcGVjaWZpZXIg
bGlrZSBvYmplY3QuIFRoaXMKKyAgICAgICAgc2hvdWxkIGJlIHJlcHJlc2VudGF0aXZlIG9mIHRo
ZSBTcGVjaWZpZXIgaXRzZWxmLgorICAgICAgICAiIiIKKworICAgIEBhYmMuYWJzdHJhY3RtZXRo
b2QKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gaW50Cisg
ICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgaGFzaCB2YWx1ZSBmb3IgdGhpcyBTcGVjaWZp
ZXIgbGlrZSBvYmplY3QuCisgICAgICAgICIiIgorCisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAor
ICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+
IGJvb2wKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBib29sZWFuIHJlcHJlc2VudGlu
ZyB3aGV0aGVyIG9yIG5vdCB0aGUgdHdvIFNwZWNpZmllciBsaWtlCisgICAgICAgIG9iamVjdHMg
YXJlIGVxdWFsLgorICAgICAgICAiIiIKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBk
ZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgIyB0eXBlOiAob2JqZWN0KSAtPiBib29s
CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgYm9vbGVhbiByZXByZXNlbnRpbmcgd2hl
dGhlciBvciBub3QgdGhlIHR3byBTcGVjaWZpZXIgbGlrZQorICAgICAgICBvYmplY3RzIGFyZSBu
b3QgZXF1YWwuCisgICAgICAgICIiIgorCisgICAgQGFiYy5hYnN0cmFjdHByb3BlcnR5CisgICAg
ZGVmIHByZXJlbGVhc2VzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW2Jv
b2xdCisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHByZS1yZWxl
YXNlcyBhcyBhIHdob2xlIGFyZSBhbGxvd2VkIGJ5IHRoaXMKKyAgICAgICAgc3BlY2lmaWVyLgor
ICAgICAgICAiIiIKKworICAgIEBwcmVyZWxlYXNlcy5zZXR0ZXIKKyAgICBkZWYgcHJlcmVsZWFz
ZXMoc2VsZiwgdmFsdWUpOgorICAgICAgICAjIHR5cGU6IChib29sKSAtPiBOb25lCisgICAgICAg
ICIiIgorICAgICAgICBTZXRzIHdoZXRoZXIgb3Igbm90IHByZS1yZWxlYXNlcyBhcyBhIHdob2xl
IGFyZSBhbGxvd2VkIGJ5IHRoaXMKKyAgICAgICAgc3BlY2lmaWVyLgorICAgICAgICAiIiIKKwor
ICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgY29udGFpbnMoc2VsZiwgaXRlbSwgcHJl
cmVsZWFzZXM9Tm9uZSk6CisgICAgICAgICMgdHlwZTogKHN0ciwgT3B0aW9uYWxbYm9vbF0pIC0+
IGJvb2wKKyAgICAgICAgIiIiCisgICAgICAgIERldGVybWluZXMgaWYgdGhlIGdpdmVuIGl0ZW0g
aXMgY29udGFpbmVkIHdpdGhpbiB0aGlzIHNwZWNpZmllci4KKyAgICAgICAgIiIiCisKKyAgICBA
YWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIGZpbHRlcihzZWxmLCBpdGVyYWJsZSwgcHJlcmVs
ZWFzZXM9Tm9uZSk6CisgICAgICAgICMgdHlwZTogKEl0ZXJhYmxlW1VucGFyc2VkVmVyc2lvbl0s
IE9wdGlvbmFsW2Jvb2xdKSAtPiBJdGVyYWJsZVtVbnBhcnNlZFZlcnNpb25dCisgICAgICAgICIi
IgorICAgICAgICBUYWtlcyBhbiBpdGVyYWJsZSBvZiBpdGVtcyBhbmQgZmlsdGVycyB0aGVtIHNv
IHRoYXQgb25seSBpdGVtcyB3aGljaAorICAgICAgICBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGlz
IHNwZWNpZmllciBhcmUgYWxsb3dlZCBpbiBpdC4KKyAgICAgICAgIiIiCisKKworY2xhc3MgX0lu
ZGl2aWR1YWxTcGVjaWZpZXIoQmFzZVNwZWNpZmllcik6CisKKyAgICBfb3BlcmF0b3JzID0ge30g
ICMgdHlwZTogRGljdFtzdHIsIHN0cl0KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzcGVjPSIi
LCBwcmVyZWxlYXNlcz1Ob25lKToKKyAgICAgICAgIyB0eXBlOiAoc3RyLCBPcHRpb25hbFtib29s
XSkgLT4gTm9uZQorICAgICAgICBtYXRjaCA9IHNlbGYuX3JlZ2V4LnNlYXJjaChzcGVjKQorICAg
ICAgICBpZiBub3QgbWF0Y2g6CisgICAgICAgICAgICByYWlzZSBJbnZhbGlkU3BlY2lmaWVyKCJJ
bnZhbGlkIHNwZWNpZmllcjogJ3swfSciLmZvcm1hdChzcGVjKSkKKworICAgICAgICBzZWxmLl9z
cGVjID0gKAorICAgICAgICAgICAgbWF0Y2guZ3JvdXAoIm9wZXJhdG9yIikuc3RyaXAoKSwKKyAg
ICAgICAgICAgIG1hdGNoLmdyb3VwKCJ2ZXJzaW9uIikuc3RyaXAoKSwKKyAgICAgICAgKSAgIyB0
eXBlOiBUdXBsZVtzdHIsIHN0cl0KKworICAgICAgICAjIFN0b3JlIHdoZXRoZXIgb3Igbm90IHRo
aXMgU3BlY2lmaWVyIHNob3VsZCBhY2NlcHQgcHJlcmVsZWFzZXMKKyAgICAgICAgc2VsZi5fcHJl
cmVsZWFzZXMgPSBwcmVyZWxlYXNlcworCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAg
ICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICBwcmUgPSAoCisgICAgICAgICAgICAiLCBwcmVy
ZWxlYXNlcz17MCFyfSIuZm9ybWF0KHNlbGYucHJlcmVsZWFzZXMpCisgICAgICAgICAgICBpZiBz
ZWxmLl9wcmVyZWxlYXNlcyBpcyBub3QgTm9uZQorICAgICAgICAgICAgZWxzZSAiIgorICAgICAg
ICApCisKKyAgICAgICAgcmV0dXJuICI8ezB9KHsxIXJ9ezJ9KT4iLmZvcm1hdChzZWxmLl9fY2xh
c3NfXy5fX25hbWVfXywgc3RyKHNlbGYpLCBwcmUpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToK
KyAgICAgICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcmV0dXJuICJ7MH17MX0iLmZvcm1h
dCgqc2VsZi5fc3BlYykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBfY2Fub25pY2FsX3NwZWMo
c2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVHVwbGVbc3RyLCBVbmlvbltWZXJzaW9uLCBz
dHJdXQorICAgICAgICByZXR1cm4gc2VsZi5fc3BlY1swXSwgY2Fub25pY2FsaXplX3ZlcnNpb24o
c2VsZi5fc3BlY1sxXSkKKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgIyB0eXBl
OiAoKSAtPiBpbnQKKyAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5fY2Fub25pY2FsX3NwZWMpCisK
KyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgIyB0eXBlOiAob2JqZWN0KSAt
PiBib29sCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIHN0cmluZ190eXBlcyk6CisgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgb3RoZXIgPSBzZWxmLl9fY2xhc3NfXyhzdHIo
b3RoZXIpKQorICAgICAgICAgICAgZXhjZXB0IEludmFsaWRTcGVjaWZpZXI6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgIGVsaWYgbm90IGlzaW5zdGFuY2Uo
b3RoZXIsIHNlbGYuX19jbGFzc19fKToKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRl
ZAorCisgICAgICAgIHJldHVybiBzZWxmLl9jYW5vbmljYWxfc3BlYyA9PSBvdGhlci5fY2Fub25p
Y2FsX3NwZWMKKworICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6
IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgc3RyaW5nX3R5
cGVzKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBvdGhlciA9IHNlbGYuX19j
bGFzc19fKHN0cihvdGhlcikpCisgICAgICAgICAgICBleGNlcHQgSW52YWxpZFNwZWNpZmllcjoK
KyAgICAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgICAgICAgZWxpZiBub3Qg
aXNpbnN0YW5jZShvdGhlciwgc2VsZi5fX2NsYXNzX18pOgorICAgICAgICAgICAgcmV0dXJuIE5v
dEltcGxlbWVudGVkCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3NwZWMgIT0gb3RoZXIuX3NwZWMK
KworICAgIGRlZiBfZ2V0X29wZXJhdG9yKHNlbGYsIG9wKToKKyAgICAgICAgIyB0eXBlOiAoc3Ry
KSAtPiBDYWxsYWJsZU9wZXJhdG9yCisgICAgICAgIG9wZXJhdG9yX2NhbGxhYmxlID0gZ2V0YXR0
cigKKyAgICAgICAgICAgIHNlbGYsICJfY29tcGFyZV97MH0iLmZvcm1hdChzZWxmLl9vcGVyYXRv
cnNbb3BdKQorICAgICAgICApICAjIHR5cGU6IENhbGxhYmxlT3BlcmF0b3IKKyAgICAgICAgcmV0
dXJuIG9wZXJhdG9yX2NhbGxhYmxlCisKKyAgICBkZWYgX2NvZXJjZV92ZXJzaW9uKHNlbGYsIHZl
cnNpb24pOgorICAgICAgICAjIHR5cGU6IChVbnBhcnNlZFZlcnNpb24pIC0+IFBhcnNlZFZlcnNp
b24KKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmVyc2lvbiwgKExlZ2FjeVZlcnNpb24sIFZl
cnNpb24pKToKKyAgICAgICAgICAgIHZlcnNpb24gPSBwYXJzZSh2ZXJzaW9uKQorICAgICAgICBy
ZXR1cm4gdmVyc2lvbgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG9wZXJhdG9yKHNlbGYpOgor
ICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1cm4gc2VsZi5fc3BlY1swXQor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIHZlcnNpb24oc2VsZik6CisgICAgICAgICMgdHlwZTog
KCkgLT4gc3RyCisgICAgICAgIHJldHVybiBzZWxmLl9zcGVjWzFdCisKKyAgICBAcHJvcGVydHkK
KyAgICBkZWYgcHJlcmVsZWFzZXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9u
YWxbYm9vbF0KKyAgICAgICAgcmV0dXJuIHNlbGYuX3ByZXJlbGVhc2VzCisKKyAgICBAcHJlcmVs
ZWFzZXMuc2V0dGVyCisgICAgZGVmIHByZXJlbGVhc2VzKHNlbGYsIHZhbHVlKToKKyAgICAgICAg
IyB0eXBlOiAoYm9vbCkgLT4gTm9uZQorICAgICAgICBzZWxmLl9wcmVyZWxlYXNlcyA9IHZhbHVl
CisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGl0ZW0pOgorICAgICAgICAjIHR5cGU6IChz
dHIpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIHNlbGYuY29udGFpbnMoaXRlbSkKKworICAgIGRl
ZiBjb250YWlucyhzZWxmLCBpdGVtLCBwcmVyZWxlYXNlcz1Ob25lKToKKyAgICAgICAgIyB0eXBl
OiAoVW5wYXJzZWRWZXJzaW9uLCBPcHRpb25hbFtib29sXSkgLT4gYm9vbAorCisgICAgICAgICMg
RGV0ZXJtaW5lIGlmIHByZXJlbGVhc2VzIGFyZSB0byBiZSBhbGxvd2VkIG9yIG5vdC4KKyAgICAg
ICAgaWYgcHJlcmVsZWFzZXMgaXMgTm9uZToKKyAgICAgICAgICAgIHByZXJlbGVhc2VzID0gc2Vs
Zi5wcmVyZWxlYXNlcworCisgICAgICAgICMgTm9ybWFsaXplIGl0ZW0gdG8gYSBWZXJzaW9uIG9y
IExlZ2FjeVZlcnNpb24sIHRoaXMgYWxsb3dzIHVzIHRvIGhhdmUKKyAgICAgICAgIyBhIHNob3J0
Y3V0IGZvciBgYCIyLjAiIGluIFNwZWNpZmllcigiPj0yIikKKyAgICAgICAgbm9ybWFsaXplZF9p
dGVtID0gc2VsZi5fY29lcmNlX3ZlcnNpb24oaXRlbSkKKworICAgICAgICAjIERldGVybWluZSBp
ZiB3ZSBzaG91bGQgYmUgc3VwcG9ydGluZyBwcmVyZWxlYXNlcyBpbiB0aGlzIHNwZWNpZmllcgor
ICAgICAgICAjIG9yIG5vdCwgaWYgd2UgZG8gbm90IHN1cHBvcnQgcHJlcmVsZWFzZXMgdGhhbiB3
ZSBjYW4gc2hvcnQgY2lyY3VpdAorICAgICAgICAjIGxvZ2ljIGlmIHRoaXMgdmVyc2lvbiBpcyBh
IHByZXJlbGVhc2VzLgorICAgICAgICBpZiBub3JtYWxpemVkX2l0ZW0uaXNfcHJlcmVsZWFzZSBh
bmQgbm90IHByZXJlbGVhc2VzOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAg
IyBBY3R1YWxseSBkbyB0aGUgY29tcGFyaXNvbiB0byBkZXRlcm1pbmUgaWYgdGhpcyBpdGVtIGlz
IGNvbnRhaW5lZAorICAgICAgICAjIHdpdGhpbiB0aGlzIFNwZWNpZmllciBvciBub3QuCisgICAg
ICAgIG9wZXJhdG9yX2NhbGxhYmxlID0gc2VsZi5fZ2V0X29wZXJhdG9yKHNlbGYub3BlcmF0b3Ip
ICAjIHR5cGU6IENhbGxhYmxlT3BlcmF0b3IKKyAgICAgICAgcmV0dXJuIG9wZXJhdG9yX2NhbGxh
YmxlKG5vcm1hbGl6ZWRfaXRlbSwgc2VsZi52ZXJzaW9uKQorCisgICAgZGVmIGZpbHRlcihzZWxm
LCBpdGVyYWJsZSwgcHJlcmVsZWFzZXM9Tm9uZSk6CisgICAgICAgICMgdHlwZTogKEl0ZXJhYmxl
W1VucGFyc2VkVmVyc2lvbl0sIE9wdGlvbmFsW2Jvb2xdKSAtPiBJdGVyYWJsZVtVbnBhcnNlZFZl
cnNpb25dCisKKyAgICAgICAgeWllbGRlZCA9IEZhbHNlCisgICAgICAgIGZvdW5kX3ByZXJlbGVh
c2VzID0gW10KKworICAgICAgICBrdyA9IHsicHJlcmVsZWFzZXMiOiBwcmVyZWxlYXNlcyBpZiBw
cmVyZWxlYXNlcyBpcyBub3QgTm9uZSBlbHNlIFRydWV9CisKKyAgICAgICAgIyBBdHRlbXB0IHRv
IGl0ZXJhdGUgb3ZlciBhbGwgdGhlIHZhbHVlcyBpbiB0aGUgaXRlcmFibGUgYW5kIGlmIGFueSBv
ZgorICAgICAgICAjIHRoZW0gbWF0Y2gsIHlpZWxkIHRoZW0uCisgICAgICAgIGZvciB2ZXJzaW9u
IGluIGl0ZXJhYmxlOgorICAgICAgICAgICAgcGFyc2VkX3ZlcnNpb24gPSBzZWxmLl9jb2VyY2Vf
dmVyc2lvbih2ZXJzaW9uKQorCisgICAgICAgICAgICBpZiBzZWxmLmNvbnRhaW5zKHBhcnNlZF92
ZXJzaW9uLCAqKmt3KToKKyAgICAgICAgICAgICAgICAjIElmIG91ciB2ZXJzaW9uIGlzIGEgcHJl
cmVsZWFzZSwgYW5kIHdlIHdlcmUgbm90IHNldCB0byBhbGxvdworICAgICAgICAgICAgICAgICMg
cHJlcmVsZWFzZXMsIHRoZW4gd2UnbGwgc3RvcmUgaXQgZm9yIGxhdGVyIGluY2FzZSBub3RoaW5n
CisgICAgICAgICAgICAgICAgIyBlbHNlIG1hdGNoZXMgdGhpcyBzcGVjaWZpZXIuCisgICAgICAg
ICAgICAgICAgaWYgcGFyc2VkX3ZlcnNpb24uaXNfcHJlcmVsZWFzZSBhbmQgbm90ICgKKyAgICAg
ICAgICAgICAgICAgICAgcHJlcmVsZWFzZXMgb3Igc2VsZi5wcmVyZWxlYXNlcworICAgICAgICAg
ICAgICAgICk6CisgICAgICAgICAgICAgICAgICAgIGZvdW5kX3ByZXJlbGVhc2VzLmFwcGVuZCh2
ZXJzaW9uKQorICAgICAgICAgICAgICAgICMgRWl0aGVyIHRoaXMgaXMgbm90IGEgcHJlcmVsZWFz
ZSwgb3Igd2Ugc2hvdWxkIGhhdmUgYmVlbgorICAgICAgICAgICAgICAgICMgYWNjZXB0aW5nIHBy
ZXJlbGVhc2VzIGZyb20gdGhlIGJlZ2lubmluZy4KKyAgICAgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgICAgICB5aWVsZGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICB5aWVs
ZCB2ZXJzaW9uCisKKyAgICAgICAgIyBOb3cgdGhhdCB3ZSd2ZSBpdGVyYXRlZCBvdmVyIGV2ZXJ5
dGhpbmcsIGRldGVybWluZSBpZiB3ZSd2ZSB5aWVsZGVkCisgICAgICAgICMgYW55IHZhbHVlcywg
YW5kIGlmIHdlIGhhdmUgbm90IGFuZCB3ZSBoYXZlIGFueSBwcmVyZWxlYXNlcyBzdG9yZWQgdXAK
KyAgICAgICAgIyB0aGVuIHdlIHdpbGwgZ28gYWhlYWQgYW5kIHlpZWxkIHRoZSBwcmVyZWxlYXNl
cy4KKyAgICAgICAgaWYgbm90IHlpZWxkZWQgYW5kIGZvdW5kX3ByZXJlbGVhc2VzOgorICAgICAg
ICAgICAgZm9yIHZlcnNpb24gaW4gZm91bmRfcHJlcmVsZWFzZXM6CisgICAgICAgICAgICAgICAg
eWllbGQgdmVyc2lvbgorCisKK2NsYXNzIExlZ2FjeVNwZWNpZmllcihfSW5kaXZpZHVhbFNwZWNp
Zmllcik6CisKKyAgICBfcmVnZXhfc3RyID0gciIiIgorICAgICAgICAoP1A8b3BlcmF0b3I+KD09
fCE9fDw9fD49fDx8PikpCisgICAgICAgIFxzKgorICAgICAgICAoP1A8dmVyc2lvbj4KKyAgICAg
ICAgICAgIFteLDtccyldKiAjIFNpbmNlIHRoaXMgaXMgYSAibGVnYWN5IiBzcGVjaWZpZXIsIGFu
ZCB0aGUgdmVyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICMgc3RyaW5nIGNhbiBiZSBqdXN0
IGFib3V0IGFueXRoaW5nLCB3ZSBtYXRjaCBldmVyeXRoaW5nCisgICAgICAgICAgICAgICAgICAg
ICAgIyBleGNlcHQgZm9yIHdoaXRlc3BhY2UsIGEgc2VtaS1jb2xvbiBmb3IgbWFya2VyIHN1cHBv
cnQsCisgICAgICAgICAgICAgICAgICAgICAgIyBhIGNsb3NpbmcgcGFyZW4gc2luY2UgdmVyc2lv
bnMgY2FuIGJlIGVuY2xvc2VkIGluCisgICAgICAgICAgICAgICAgICAgICAgIyB0aGVtLCBhbmQg
YSBjb21tYSBzaW5jZSBpdCdzIGEgdmVyc2lvbiBzZXBhcmF0b3IuCisgICAgICAgICkKKyAgICAg
ICAgIiIiCisKKyAgICBfcmVnZXggPSByZS5jb21waWxlKHIiXlxzKiIgKyBfcmVnZXhfc3RyICsg
ciJccyokIiwgcmUuVkVSQk9TRSB8IHJlLklHTk9SRUNBU0UpCisKKyAgICBfb3BlcmF0b3JzID0g
eworICAgICAgICAiPT0iOiAiZXF1YWwiLAorICAgICAgICAiIT0iOiAibm90X2VxdWFsIiwKKyAg
ICAgICAgIjw9IjogImxlc3NfdGhhbl9lcXVhbCIsCisgICAgICAgICI+PSI6ICJncmVhdGVyX3Ro
YW5fZXF1YWwiLAorICAgICAgICAiPCI6ICJsZXNzX3RoYW4iLAorICAgICAgICAiPiI6ICJncmVh
dGVyX3RoYW4iLAorICAgIH0KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzcGVjPSIiLCBwcmVy
ZWxlYXNlcz1Ob25lKToKKyAgICAgICAgIyB0eXBlOiAoc3RyLCBPcHRpb25hbFtib29sXSkgLT4g
Tm9uZQorICAgICAgICBzdXBlcihMZWdhY3lTcGVjaWZpZXIsIHNlbGYpLl9faW5pdF9fKHNwZWMs
IHByZXJlbGVhc2VzKQorCisgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAiQ3Jl
YXRpbmcgYSBMZWdhY3lWZXJzaW9uIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgIgor
ICAgICAgICAgICAgInJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZSIsCisgICAgICAg
ICAgICBEZXByZWNhdGlvbldhcm5pbmcsCisgICAgICAgICkKKworICAgIGRlZiBfY29lcmNlX3Zl
cnNpb24oc2VsZiwgdmVyc2lvbik6CisgICAgICAgICMgdHlwZTogKFVuaW9uW1BhcnNlZFZlcnNp
b24sIHN0cl0pIC0+IExlZ2FjeVZlcnNpb24KKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmVy
c2lvbiwgTGVnYWN5VmVyc2lvbik6CisgICAgICAgICAgICB2ZXJzaW9uID0gTGVnYWN5VmVyc2lv
bihzdHIodmVyc2lvbikpCisgICAgICAgIHJldHVybiB2ZXJzaW9uCisKKyAgICBkZWYgX2NvbXBh
cmVfZXF1YWwoc2VsZiwgcHJvc3BlY3RpdmUsIHNwZWMpOgorICAgICAgICAjIHR5cGU6IChMZWdh
Y3lWZXJzaW9uLCBzdHIpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIHByb3NwZWN0aXZlID09IHNl
bGYuX2NvZXJjZV92ZXJzaW9uKHNwZWMpCisKKyAgICBkZWYgX2NvbXBhcmVfbm90X2VxdWFsKHNl
bGYsIHByb3NwZWN0aXZlLCBzcGVjKToKKyAgICAgICAgIyB0eXBlOiAoTGVnYWN5VmVyc2lvbiwg
c3RyKSAtPiBib29sCisgICAgICAgIHJldHVybiBwcm9zcGVjdGl2ZSAhPSBzZWxmLl9jb2VyY2Vf
dmVyc2lvbihzcGVjKQorCisgICAgZGVmIF9jb21wYXJlX2xlc3NfdGhhbl9lcXVhbChzZWxmLCBw
cm9zcGVjdGl2ZSwgc3BlYyk6CisgICAgICAgICMgdHlwZTogKExlZ2FjeVZlcnNpb24sIHN0cikg
LT4gYm9vbAorICAgICAgICByZXR1cm4gcHJvc3BlY3RpdmUgPD0gc2VsZi5fY29lcmNlX3ZlcnNp
b24oc3BlYykKKworICAgIGRlZiBfY29tcGFyZV9ncmVhdGVyX3RoYW5fZXF1YWwoc2VsZiwgcHJv
c3BlY3RpdmUsIHNwZWMpOgorICAgICAgICAjIHR5cGU6IChMZWdhY3lWZXJzaW9uLCBzdHIpIC0+
IGJvb2wKKyAgICAgICAgcmV0dXJuIHByb3NwZWN0aXZlID49IHNlbGYuX2NvZXJjZV92ZXJzaW9u
KHNwZWMpCisKKyAgICBkZWYgX2NvbXBhcmVfbGVzc190aGFuKHNlbGYsIHByb3NwZWN0aXZlLCBz
cGVjKToKKyAgICAgICAgIyB0eXBlOiAoTGVnYWN5VmVyc2lvbiwgc3RyKSAtPiBib29sCisgICAg
ICAgIHJldHVybiBwcm9zcGVjdGl2ZSA8IHNlbGYuX2NvZXJjZV92ZXJzaW9uKHNwZWMpCisKKyAg
ICBkZWYgX2NvbXBhcmVfZ3JlYXRlcl90aGFuKHNlbGYsIHByb3NwZWN0aXZlLCBzcGVjKToKKyAg
ICAgICAgIyB0eXBlOiAoTGVnYWN5VmVyc2lvbiwgc3RyKSAtPiBib29sCisgICAgICAgIHJldHVy
biBwcm9zcGVjdGl2ZSA+IHNlbGYuX2NvZXJjZV92ZXJzaW9uKHNwZWMpCisKKworZGVmIF9yZXF1
aXJlX3ZlcnNpb25fY29tcGFyZSgKKyAgICBmbiwgICMgdHlwZTogKENhbGxhYmxlW1tTcGVjaWZp
ZXIsIFBhcnNlZFZlcnNpb24sIHN0cl0sIGJvb2xdKQorKToKKyAgICAjIHR5cGU6ICguLi4pIC0+
IENhbGxhYmxlW1tTcGVjaWZpZXIsIFBhcnNlZFZlcnNpb24sIHN0cl0sIGJvb2xdCisgICAgQGZ1
bmN0b29scy53cmFwcyhmbikKKyAgICBkZWYgd3JhcHBlZChzZWxmLCBwcm9zcGVjdGl2ZSwgc3Bl
Yyk6CisgICAgICAgICMgdHlwZTogKFNwZWNpZmllciwgUGFyc2VkVmVyc2lvbiwgc3RyKSAtPiBi
b29sCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHByb3NwZWN0aXZlLCBWZXJzaW9uKToKKyAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gZm4oc2VsZiwgcHJvc3BlY3Rp
dmUsIHNwZWMpCisKKyAgICByZXR1cm4gd3JhcHBlZAorCisKK2NsYXNzIFNwZWNpZmllcihfSW5k
aXZpZHVhbFNwZWNpZmllcik6CisKKyAgICBfcmVnZXhfc3RyID0gciIiIgorICAgICAgICAoP1A8
b3BlcmF0b3I+KH49fD09fCE9fDw9fD49fDx8Pnw9PT0pKQorICAgICAgICAoP1A8dmVyc2lvbj4K
KyAgICAgICAgICAgICg/OgorICAgICAgICAgICAgICAgICMgVGhlIGlkZW50aXR5IG9wZXJhdG9y
cyBhbGxvdyBmb3IgYW4gZXNjYXBlIGhhdGNoIHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICMg
ZG8gYW4gZXhhY3Qgc3RyaW5nIG1hdGNoIG9mIHRoZSB2ZXJzaW9uIHlvdSB3aXNoIHRvIGluc3Rh
bGwuCisgICAgICAgICAgICAgICAgIyBUaGlzIHdpbGwgbm90IGJlIHBhcnNlZCBieSBQRVAgNDQw
IGFuZCB3ZSBjYW5ub3QgZGV0ZXJtaW5lCisgICAgICAgICAgICAgICAgIyBhbnkgc2VtYW50aWMg
bWVhbmluZyBmcm9tIGl0LiBUaGlzIG9wZXJhdG9yIGlzIGRpc2NvdXJhZ2VkCisgICAgICAgICAg
ICAgICAgIyBidXQgaW5jbHVkZWQgZW50aXJlbHkgYXMgYW4gZXNjYXBlIGhhdGNoLgorICAgICAg
ICAgICAgICAgICg/PD09PT0pICAjIE9ubHkgbWF0Y2ggZm9yIHRoZSBpZGVudGl0eSBvcGVyYXRv
cgorICAgICAgICAgICAgICAgIFxzKgorICAgICAgICAgICAgICAgIFteXHNdKiAgICAjIFdlIGp1
c3QgbWF0Y2ggZXZlcnl0aGluZywgZXhjZXB0IGZvciB3aGl0ZXNwYWNlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICMgc2luY2Ugd2UgYXJlIG9ubHkgdGVzdGluZyBmb3Igc3RyaWN0IGlkZW50
aXR5LgorICAgICAgICAgICAgKQorICAgICAgICAgICAgfAorICAgICAgICAgICAgKD86CisgICAg
ICAgICAgICAgICAgIyBUaGUgKG5vbillcXVhbGl0eSBvcGVyYXRvcnMgYWxsb3cgZm9yIHdpbGQg
Y2FyZCBhbmQgbG9jYWwKKyAgICAgICAgICAgICAgICAjIHZlcnNpb25zIHRvIGJlIHNwZWNpZmll
ZCBzbyB3ZSBoYXZlIHRvIGRlZmluZSB0aGVzZSB0d28KKyAgICAgICAgICAgICAgICAjIG9wZXJh
dG9ycyBzZXBhcmF0ZWx5IHRvIGVuYWJsZSB0aGF0LgorICAgICAgICAgICAgICAgICg/PD09PXwh
PSkgICAgICAgICAgICAjIE9ubHkgbWF0Y2ggZm9yIGVxdWFscyBhbmQgbm90IGVxdWFscworCisg
ICAgICAgICAgICAgICAgXHMqCisgICAgICAgICAgICAgICAgdj8KKyAgICAgICAgICAgICAgICAo
PzpbMC05XSshKT8gICAgICAgICAgIyBlcG9jaAorICAgICAgICAgICAgICAgIFswLTldKyg/Olwu
WzAtOV0rKSogICAjIHJlbGVhc2UKKyAgICAgICAgICAgICAgICAoPzogICAgICAgICAgICAgICAg
ICAgIyBwcmUgcmVsZWFzZQorICAgICAgICAgICAgICAgICAgICBbLV9cLl0/CisgICAgICAgICAg
ICAgICAgICAgIChhfGJ8Y3xyY3xhbHBoYXxiZXRhfHByZXxwcmV2aWV3KQorICAgICAgICAgICAg
ICAgICAgICBbLV9cLl0/CisgICAgICAgICAgICAgICAgICAgIFswLTldKgorICAgICAgICAgICAg
ICAgICk/CisgICAgICAgICAgICAgICAgKD86ICAgICAgICAgICAgICAgICAgICMgcG9zdCByZWxl
YXNlCisgICAgICAgICAgICAgICAgICAgICg/Oi1bMC05XSspfCg/OlstX1wuXT8ocG9zdHxyZXZ8
cilbLV9cLl0/WzAtOV0qKQorICAgICAgICAgICAgICAgICk/CisKKyAgICAgICAgICAgICAgICAj
IFlvdSBjYW5ub3QgdXNlIGEgd2lsZCBjYXJkIGFuZCBhIGRldiBvciBsb2NhbCB2ZXJzaW9uCisg
ICAgICAgICAgICAgICAgIyB0b2dldGhlciBzbyBncm91cCB0aGVtIHdpdGggYSB8IGFuZCBtYWtl
IHRoZW0gb3B0aW9uYWwuCisgICAgICAgICAgICAgICAgKD86CisgICAgICAgICAgICAgICAgICAg
ICg/OlstX1wuXT9kZXZbLV9cLl0/WzAtOV0qKT8gICAgICAgICAjIGRldiByZWxlYXNlCisgICAg
ICAgICAgICAgICAgICAgICg/OlwrW2EtejAtOV0rKD86Wy1fXC5dW2EtejAtOV0rKSopPyAjIGxv
Y2FsCisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgXC5cKiAgIyBX
aWxkIGNhcmQgc3ludGF4IG9mIC4qCisgICAgICAgICAgICAgICAgKT8KKyAgICAgICAgICAgICkK
KyAgICAgICAgICAgIHwKKyAgICAgICAgICAgICg/OgorICAgICAgICAgICAgICAgICMgVGhlIGNv
bXBhdGlibGUgb3BlcmF0b3IgcmVxdWlyZXMgYXQgbGVhc3QgdHdvIGRpZ2l0cyBpbiB0aGUKKyAg
ICAgICAgICAgICAgICAjIHJlbGVhc2Ugc2VnbWVudC4KKyAgICAgICAgICAgICAgICAoPzw9fj0p
ICAgICAgICAgICAgICAgIyBPbmx5IG1hdGNoIGZvciB0aGUgY29tcGF0aWJsZSBvcGVyYXRvcgor
CisgICAgICAgICAgICAgICAgXHMqCisgICAgICAgICAgICAgICAgdj8KKyAgICAgICAgICAgICAg
ICAoPzpbMC05XSshKT8gICAgICAgICAgIyBlcG9jaAorICAgICAgICAgICAgICAgIFswLTldKyg/
OlwuWzAtOV0rKSsgICAjIHJlbGVhc2UgIChXZSBoYXZlIGEgKyBpbnN0ZWFkIG9mIGEgKikKKyAg
ICAgICAgICAgICAgICAoPzogICAgICAgICAgICAgICAgICAgIyBwcmUgcmVsZWFzZQorICAgICAg
ICAgICAgICAgICAgICBbLV9cLl0/CisgICAgICAgICAgICAgICAgICAgIChhfGJ8Y3xyY3xhbHBo
YXxiZXRhfHByZXxwcmV2aWV3KQorICAgICAgICAgICAgICAgICAgICBbLV9cLl0/CisgICAgICAg
ICAgICAgICAgICAgIFswLTldKgorICAgICAgICAgICAgICAgICk/CisgICAgICAgICAgICAgICAg
KD86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBvc3QgcmVsZWFzZQorICAg
ICAgICAgICAgICAgICAgICAoPzotWzAtOV0rKXwoPzpbLV9cLl0/KHBvc3R8cmV2fHIpWy1fXC5d
P1swLTldKikKKyAgICAgICAgICAgICAgICApPworICAgICAgICAgICAgICAgICg/OlstX1wuXT9k
ZXZbLV9cLl0/WzAtOV0qKT8gICAgICAgICAgIyBkZXYgcmVsZWFzZQorICAgICAgICAgICAgKQor
ICAgICAgICAgICAgfAorICAgICAgICAgICAgKD86CisgICAgICAgICAgICAgICAgIyBBbGwgb3Ro
ZXIgb3BlcmF0b3JzIG9ubHkgYWxsb3cgYSBzdWIgc2V0IG9mIHdoYXQgdGhlCisgICAgICAgICAg
ICAgICAgIyAobm9uKWVxdWFsaXR5IG9wZXJhdG9ycyBkby4gU3BlY2lmaWNhbGx5IHRoZXkgZG8g
bm90IGFsbG93CisgICAgICAgICAgICAgICAgIyBsb2NhbCB2ZXJzaW9ucyB0byBiZSBzcGVjaWZp
ZWQgbm9yIGRvIHRoZXkgYWxsb3cgdGhlIHByZWZpeAorICAgICAgICAgICAgICAgICMgbWF0Y2hp
bmcgd2lsZCBjYXJkcy4KKyAgICAgICAgICAgICAgICAoPzwhPT18IT18fj0pICAgICAgICAgIyBX
ZSBoYXZlIHNwZWNpYWwgY2FzZXMgZm9yIHRoZXNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICMgb3BlcmF0b3JzIHNvIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoZXkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkb24ndCBtYXRjaCBoZXJlLgor
CisgICAgICAgICAgICAgICAgXHMqCisgICAgICAgICAgICAgICAgdj8KKyAgICAgICAgICAgICAg
ICAoPzpbMC05XSshKT8gICAgICAgICAgIyBlcG9jaAorICAgICAgICAgICAgICAgIFswLTldKyg/
OlwuWzAtOV0rKSogICAjIHJlbGVhc2UKKyAgICAgICAgICAgICAgICAoPzogICAgICAgICAgICAg
ICAgICAgIyBwcmUgcmVsZWFzZQorICAgICAgICAgICAgICAgICAgICBbLV9cLl0/CisgICAgICAg
ICAgICAgICAgICAgIChhfGJ8Y3xyY3xhbHBoYXxiZXRhfHByZXxwcmV2aWV3KQorICAgICAgICAg
ICAgICAgICAgICBbLV9cLl0/CisgICAgICAgICAgICAgICAgICAgIFswLTldKgorICAgICAgICAg
ICAgICAgICk/CisgICAgICAgICAgICAgICAgKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAjIHBvc3QgcmVsZWFzZQorICAgICAgICAgICAgICAgICAgICAoPzotWzAtOV0rKXwo
PzpbLV9cLl0/KHBvc3R8cmV2fHIpWy1fXC5dP1swLTldKikKKyAgICAgICAgICAgICAgICApPwor
ICAgICAgICAgICAgICAgICg/OlstX1wuXT9kZXZbLV9cLl0/WzAtOV0qKT8gICAgICAgICAgIyBk
ZXYgcmVsZWFzZQorICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgICIiIgorCisgICAg
X3JlZ2V4ID0gcmUuY29tcGlsZShyIl5ccyoiICsgX3JlZ2V4X3N0ciArIHIiXHMqJCIsIHJlLlZF
UkJPU0UgfCByZS5JR05PUkVDQVNFKQorCisgICAgX29wZXJhdG9ycyA9IHsKKyAgICAgICAgIn49
IjogImNvbXBhdGlibGUiLAorICAgICAgICAiPT0iOiAiZXF1YWwiLAorICAgICAgICAiIT0iOiAi
bm90X2VxdWFsIiwKKyAgICAgICAgIjw9IjogImxlc3NfdGhhbl9lcXVhbCIsCisgICAgICAgICI+
PSI6ICJncmVhdGVyX3RoYW5fZXF1YWwiLAorICAgICAgICAiPCI6ICJsZXNzX3RoYW4iLAorICAg
ICAgICAiPiI6ICJncmVhdGVyX3RoYW4iLAorICAgICAgICAiPT09IjogImFyYml0cmFyeSIsCisg
ICAgfQorCisgICAgQF9yZXF1aXJlX3ZlcnNpb25fY29tcGFyZQorICAgIGRlZiBfY29tcGFyZV9j
b21wYXRpYmxlKHNlbGYsIHByb3NwZWN0aXZlLCBzcGVjKToKKyAgICAgICAgIyB0eXBlOiAoUGFy
c2VkVmVyc2lvbiwgc3RyKSAtPiBib29sCisKKyAgICAgICAgIyBDb21wYXRpYmxlIHJlbGVhc2Vz
IGhhdmUgYW4gZXF1aXZhbGVudCBjb21iaW5hdGlvbiBvZiA+PSBhbmQgPT0uIFRoYXQKKyAgICAg
ICAgIyBpcyB0aGF0IH49Mi4yIGlzIGVxdWl2YWxlbnQgdG8gPj0yLjIsPT0yLiouIFRoaXMgYWxs
b3dzIHVzIHRvCisgICAgICAgICMgaW1wbGVtZW50IHRoaXMgaW4gdGVybXMgb2YgdGhlIG90aGVy
IHNwZWNpZmllcnMgaW5zdGVhZCBvZgorICAgICAgICAjIGltcGxlbWVudGluZyBpdCBvdXJzZWx2
ZXMuIFRoZSBvbmx5IHRoaW5nIHdlIG5lZWQgdG8gZG8gaXMgY29uc3RydWN0CisgICAgICAgICMg
dGhlIG90aGVyIHNwZWNpZmllcnMuCisKKyAgICAgICAgIyBXZSB3YW50IGV2ZXJ5dGhpbmcgYnV0
IHRoZSBsYXN0IGl0ZW0gaW4gdGhlIHZlcnNpb24sIGJ1dCB3ZSB3YW50IHRvCisgICAgICAgICMg
aWdub3JlIHBvc3QgYW5kIGRldiByZWxlYXNlcyBhbmQgd2Ugd2FudCB0byB0cmVhdCB0aGUgcHJl
LXJlbGVhc2UgYXMKKyAgICAgICAgIyBpdCdzIG93biBzZXBhcmF0ZSBzZWdtZW50LgorICAgICAg
ICBwcmVmaXggPSAiLiIuam9pbigKKyAgICAgICAgICAgIGxpc3QoCisgICAgICAgICAgICAgICAg
aXRlcnRvb2xzLnRha2V3aGlsZSgKKyAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHg6IChub3Qg
eC5zdGFydHN3aXRoKCJwb3N0IikgYW5kIG5vdCB4LnN0YXJ0c3dpdGgoImRldiIpKSwKKyAgICAg
ICAgICAgICAgICAgICAgX3ZlcnNpb25fc3BsaXQoc3BlYyksCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgKVs6LTFdCisgICAgICAgICkKKworICAgICAgICAjIEFkZCB0aGUgcHJlZml4
IG5vdGF0aW9uIHRvIHRoZSBlbmQgb2Ygb3VyIHN0cmluZworICAgICAgICBwcmVmaXggKz0gIi4q
IgorCisgICAgICAgIHJldHVybiBzZWxmLl9nZXRfb3BlcmF0b3IoIj49IikocHJvc3BlY3RpdmUs
IHNwZWMpIGFuZCBzZWxmLl9nZXRfb3BlcmF0b3IoIj09IikoCisgICAgICAgICAgICBwcm9zcGVj
dGl2ZSwgcHJlZml4CisgICAgICAgICkKKworICAgIEBfcmVxdWlyZV92ZXJzaW9uX2NvbXBhcmUK
KyAgICBkZWYgX2NvbXBhcmVfZXF1YWwoc2VsZiwgcHJvc3BlY3RpdmUsIHNwZWMpOgorICAgICAg
ICAjIHR5cGU6IChQYXJzZWRWZXJzaW9uLCBzdHIpIC0+IGJvb2wKKworICAgICAgICAjIFdlIG5l
ZWQgc3BlY2lhbCBsb2dpYyB0byBoYW5kbGUgcHJlZml4IG1hdGNoaW5nCisgICAgICAgIGlmIHNw
ZWMuZW5kc3dpdGgoIi4qIik6CisgICAgICAgICAgICAjIEluIHRoZSBjYXNlIG9mIHByZWZpeCBt
YXRjaGluZyB3ZSB3YW50IHRvIGlnbm9yZSBsb2NhbCBzZWdtZW50LgorICAgICAgICAgICAgcHJv
c3BlY3RpdmUgPSBWZXJzaW9uKHByb3NwZWN0aXZlLnB1YmxpYykKKyAgICAgICAgICAgICMgU3Bs
aXQgdGhlIHNwZWMgb3V0IGJ5IGRvdHMsIGFuZCBwcmV0ZW5kIHRoYXQgdGhlcmUgaXMgYW4gaW1w
bGljaXQKKyAgICAgICAgICAgICMgZG90IGluIGJldHdlZW4gYSByZWxlYXNlIHNlZ21lbnQgYW5k
IGEgcHJlLXJlbGVhc2Ugc2VnbWVudC4KKyAgICAgICAgICAgIHNwbGl0X3NwZWMgPSBfdmVyc2lv
bl9zcGxpdChzcGVjWzotMl0pICAjIFJlbW92ZSB0aGUgdHJhaWxpbmcgLioKKworICAgICAgICAg
ICAgIyBTcGxpdCB0aGUgcHJvc3BlY3RpdmUgdmVyc2lvbiBvdXQgYnkgZG90cywgYW5kIHByZXRl
bmQgdGhhdCB0aGVyZQorICAgICAgICAgICAgIyBpcyBhbiBpbXBsaWNpdCBkb3QgaW4gYmV0d2Vl
biBhIHJlbGVhc2Ugc2VnbWVudCBhbmQgYSBwcmUtcmVsZWFzZQorICAgICAgICAgICAgIyBzZWdt
ZW50LgorICAgICAgICAgICAgc3BsaXRfcHJvc3BlY3RpdmUgPSBfdmVyc2lvbl9zcGxpdChzdHIo
cHJvc3BlY3RpdmUpKQorCisgICAgICAgICAgICAjIFNob3J0ZW4gdGhlIHByb3NwZWN0aXZlIHZl
cnNpb24gdG8gYmUgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBzcGVjCisgICAgICAgICAgICAjIHNv
IHRoYXQgd2UgY2FuIGRldGVybWluZSBpZiB0aGUgc3BlY2lmaWVyIGlzIGEgcHJlZml4IG9mIHRo
ZQorICAgICAgICAgICAgIyBwcm9zcGVjdGl2ZSB2ZXJzaW9uIG9yIG5vdC4KKyAgICAgICAgICAg
IHNob3J0ZW5lZF9wcm9zcGVjdGl2ZSA9IHNwbGl0X3Byb3NwZWN0aXZlWzogbGVuKHNwbGl0X3Nw
ZWMpXQorCisgICAgICAgICAgICAjIFBhZCBvdXQgb3VyIHR3byBzaWRlcyB3aXRoIHplcm9zIHNv
IHRoYXQgdGhleSBib3RoIGVxdWFsIHRoZSBzYW1lCisgICAgICAgICAgICAjIGxlbmd0aC4KKyAg
ICAgICAgICAgIHBhZGRlZF9zcGVjLCBwYWRkZWRfcHJvc3BlY3RpdmUgPSBfcGFkX3ZlcnNpb24o
CisgICAgICAgICAgICAgICAgc3BsaXRfc3BlYywgc2hvcnRlbmVkX3Byb3NwZWN0aXZlCisgICAg
ICAgICAgICApCisKKyAgICAgICAgICAgIHJldHVybiBwYWRkZWRfcHJvc3BlY3RpdmUgPT0gcGFk
ZGVkX3NwZWMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgQ29udmVydCBvdXIgc3BlYyBz
dHJpbmcgaW50byBhIFZlcnNpb24KKyAgICAgICAgICAgIHNwZWNfdmVyc2lvbiA9IFZlcnNpb24o
c3BlYykKKworICAgICAgICAgICAgIyBJZiB0aGUgc3BlY2lmaWVyIGRvZXMgbm90IGhhdmUgYSBs
b2NhbCBzZWdtZW50LCB0aGVuIHdlIHdhbnQgdG8KKyAgICAgICAgICAgICMgYWN0IGFzIGlmIHRo
ZSBwcm9zcGVjdGl2ZSB2ZXJzaW9uIGFsc28gZG9lcyBub3QgaGF2ZSBhIGxvY2FsCisgICAgICAg
ICAgICAjIHNlZ21lbnQuCisgICAgICAgICAgICBpZiBub3Qgc3BlY192ZXJzaW9uLmxvY2FsOgor
ICAgICAgICAgICAgICAgIHByb3NwZWN0aXZlID0gVmVyc2lvbihwcm9zcGVjdGl2ZS5wdWJsaWMp
CisKKyAgICAgICAgICAgIHJldHVybiBwcm9zcGVjdGl2ZSA9PSBzcGVjX3ZlcnNpb24KKworICAg
IEBfcmVxdWlyZV92ZXJzaW9uX2NvbXBhcmUKKyAgICBkZWYgX2NvbXBhcmVfbm90X2VxdWFsKHNl
bGYsIHByb3NwZWN0aXZlLCBzcGVjKToKKyAgICAgICAgIyB0eXBlOiAoUGFyc2VkVmVyc2lvbiwg
c3RyKSAtPiBib29sCisgICAgICAgIHJldHVybiBub3Qgc2VsZi5fY29tcGFyZV9lcXVhbChwcm9z
cGVjdGl2ZSwgc3BlYykKKworICAgIEBfcmVxdWlyZV92ZXJzaW9uX2NvbXBhcmUKKyAgICBkZWYg
X2NvbXBhcmVfbGVzc190aGFuX2VxdWFsKHNlbGYsIHByb3NwZWN0aXZlLCBzcGVjKToKKyAgICAg
ICAgIyB0eXBlOiAoUGFyc2VkVmVyc2lvbiwgc3RyKSAtPiBib29sCisKKyAgICAgICAgIyBOQjog
TG9jYWwgdmVyc2lvbiBpZGVudGlmaWVycyBhcmUgTk9UIHBlcm1pdHRlZCBpbiB0aGUgdmVyc2lv
bgorICAgICAgICAjIHNwZWNpZmllciwgc28gbG9jYWwgdmVyc2lvbiBsYWJlbHMgY2FuIGJlIHVu
aXZlcnNhbGx5IHJlbW92ZWQgZnJvbQorICAgICAgICAjIHRoZSBwcm9zcGVjdGl2ZSB2ZXJzaW9u
LgorICAgICAgICByZXR1cm4gVmVyc2lvbihwcm9zcGVjdGl2ZS5wdWJsaWMpIDw9IFZlcnNpb24o
c3BlYykKKworICAgIEBfcmVxdWlyZV92ZXJzaW9uX2NvbXBhcmUKKyAgICBkZWYgX2NvbXBhcmVf
Z3JlYXRlcl90aGFuX2VxdWFsKHNlbGYsIHByb3NwZWN0aXZlLCBzcGVjKToKKyAgICAgICAgIyB0
eXBlOiAoUGFyc2VkVmVyc2lvbiwgc3RyKSAtPiBib29sCisKKyAgICAgICAgIyBOQjogTG9jYWwg
dmVyc2lvbiBpZGVudGlmaWVycyBhcmUgTk9UIHBlcm1pdHRlZCBpbiB0aGUgdmVyc2lvbgorICAg
ICAgICAjIHNwZWNpZmllciwgc28gbG9jYWwgdmVyc2lvbiBsYWJlbHMgY2FuIGJlIHVuaXZlcnNh
bGx5IHJlbW92ZWQgZnJvbQorICAgICAgICAjIHRoZSBwcm9zcGVjdGl2ZSB2ZXJzaW9uLgorICAg
ICAgICByZXR1cm4gVmVyc2lvbihwcm9zcGVjdGl2ZS5wdWJsaWMpID49IFZlcnNpb24oc3BlYykK
KworICAgIEBfcmVxdWlyZV92ZXJzaW9uX2NvbXBhcmUKKyAgICBkZWYgX2NvbXBhcmVfbGVzc190
aGFuKHNlbGYsIHByb3NwZWN0aXZlLCBzcGVjX3N0cik6CisgICAgICAgICMgdHlwZTogKFBhcnNl
ZFZlcnNpb24sIHN0cikgLT4gYm9vbAorCisgICAgICAgICMgQ29udmVydCBvdXIgc3BlYyB0byBh
IFZlcnNpb24gaW5zdGFuY2UsIHNpbmNlIHdlJ2xsIHdhbnQgdG8gd29yayB3aXRoCisgICAgICAg
ICMgaXQgYXMgYSB2ZXJzaW9uLgorICAgICAgICBzcGVjID0gVmVyc2lvbihzcGVjX3N0cikKKwor
ICAgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvc3BlY3RpdmUgdmVyc2lvbiBpcyBsZXNz
IHRoYW4gdGhlIHNwZWMKKyAgICAgICAgIyB2ZXJzaW9uLiBJZiBpdCdzIG5vdCB3ZSBjYW4gc2hv
cnQgY2lyY3VpdCBhbmQganVzdCByZXR1cm4gRmFsc2Ugbm93CisgICAgICAgICMgaW5zdGVhZCBv
ZiBkb2luZyBleHRyYSB1bm5lZWRlZCB3b3JrLgorICAgICAgICBpZiBub3QgcHJvc3BlY3RpdmUg
PCBzcGVjOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgIyBUaGlzIHNwZWNp
YWwgY2FzZSBpcyBoZXJlIHNvIHRoYXQsIHVubGVzcyB0aGUgc3BlY2lmaWVyIGl0c2VsZgorICAg
ICAgICAjIGluY2x1ZGVzIGlzIGEgcHJlLXJlbGVhc2UgdmVyc2lvbiwgdGhhdCB3ZSBkbyBub3Qg
YWNjZXB0IHByZS1yZWxlYXNlCisgICAgICAgICMgdmVyc2lvbnMgZm9yIHRoZSB2ZXJzaW9uIG1l
bnRpb25lZCBpbiB0aGUgc3BlY2lmaWVyIChlLmcuIDwzLjEgc2hvdWxkCisgICAgICAgICMgbm90
IG1hdGNoIDMuMS5kZXYwLCBidXQgc2hvdWxkIG1hdGNoIDMuMC5kZXYwKS4KKyAgICAgICAgaWYg
bm90IHNwZWMuaXNfcHJlcmVsZWFzZSBhbmQgcHJvc3BlY3RpdmUuaXNfcHJlcmVsZWFzZToKKyAg
ICAgICAgICAgIGlmIFZlcnNpb24ocHJvc3BlY3RpdmUuYmFzZV92ZXJzaW9uKSA9PSBWZXJzaW9u
KHNwZWMuYmFzZV92ZXJzaW9uKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAg
ICAgICAjIElmIHdlJ3ZlIGdvdHRlbiB0byBoZXJlLCBpdCBtZWFucyB0aGF0IHByb3NwZWN0aXZl
IHZlcnNpb24gaXMgYm90aAorICAgICAgICAjIGxlc3MgdGhhbiB0aGUgc3BlYyB2ZXJzaW9uICph
bmQqIGl0J3Mgbm90IGEgcHJlLXJlbGVhc2Ugb2YgdGhlIHNhbWUKKyAgICAgICAgIyB2ZXJzaW9u
IGluIHRoZSBzcGVjLgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgQF9yZXF1aXJlX3ZlcnNp
b25fY29tcGFyZQorICAgIGRlZiBfY29tcGFyZV9ncmVhdGVyX3RoYW4oc2VsZiwgcHJvc3BlY3Rp
dmUsIHNwZWNfc3RyKToKKyAgICAgICAgIyB0eXBlOiAoUGFyc2VkVmVyc2lvbiwgc3RyKSAtPiBi
b29sCisKKyAgICAgICAgIyBDb252ZXJ0IG91ciBzcGVjIHRvIGEgVmVyc2lvbiBpbnN0YW5jZSwg
c2luY2Ugd2UnbGwgd2FudCB0byB3b3JrIHdpdGgKKyAgICAgICAgIyBpdCBhcyBhIHZlcnNpb24u
CisgICAgICAgIHNwZWMgPSBWZXJzaW9uKHNwZWNfc3RyKQorCisgICAgICAgICMgQ2hlY2sgdG8g
c2VlIGlmIHRoZSBwcm9zcGVjdGl2ZSB2ZXJzaW9uIGlzIGdyZWF0ZXIgdGhhbiB0aGUgc3BlYwor
ICAgICAgICAjIHZlcnNpb24uIElmIGl0J3Mgbm90IHdlIGNhbiBzaG9ydCBjaXJjdWl0IGFuZCBq
dXN0IHJldHVybiBGYWxzZSBub3cKKyAgICAgICAgIyBpbnN0ZWFkIG9mIGRvaW5nIGV4dHJhIHVu
bmVlZGVkIHdvcmsuCisgICAgICAgIGlmIG5vdCBwcm9zcGVjdGl2ZSA+IHNwZWM6CisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAjIFRoaXMgc3BlY2lhbCBjYXNlIGlzIGhlcmUg
c28gdGhhdCwgdW5sZXNzIHRoZSBzcGVjaWZpZXIgaXRzZWxmCisgICAgICAgICMgaW5jbHVkZXMg
aXMgYSBwb3N0LXJlbGVhc2UgdmVyc2lvbiwgdGhhdCB3ZSBkbyBub3QgYWNjZXB0CisgICAgICAg
ICMgcG9zdC1yZWxlYXNlIHZlcnNpb25zIGZvciB0aGUgdmVyc2lvbiBtZW50aW9uZWQgaW4gdGhl
IHNwZWNpZmllcgorICAgICAgICAjIChlLmcuID4zLjEgc2hvdWxkIG5vdCBtYXRjaCAzLjAucG9z
dDAsIGJ1dCBzaG91bGQgbWF0Y2ggMy4yLnBvc3QwKS4KKyAgICAgICAgaWYgbm90IHNwZWMuaXNf
cG9zdHJlbGVhc2UgYW5kIHByb3NwZWN0aXZlLmlzX3Bvc3RyZWxlYXNlOgorICAgICAgICAgICAg
aWYgVmVyc2lvbihwcm9zcGVjdGl2ZS5iYXNlX3ZlcnNpb24pID09IFZlcnNpb24oc3BlYy5iYXNl
X3ZlcnNpb24pOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgICMgRW5z
dXJlIHRoYXQgd2UgZG8gbm90IGFsbG93IGEgbG9jYWwgdmVyc2lvbiBvZiB0aGUgdmVyc2lvbiBt
ZW50aW9uZWQKKyAgICAgICAgIyBpbiB0aGUgc3BlY2lmaWVyLCB3aGljaCBpcyB0ZWNobmljYWxs
eSBncmVhdGVyIHRoYW4sIHRvIG1hdGNoLgorICAgICAgICBpZiBwcm9zcGVjdGl2ZS5sb2NhbCBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIFZlcnNpb24ocHJvc3BlY3RpdmUuYmFzZV92ZXJz
aW9uKSA9PSBWZXJzaW9uKHNwZWMuYmFzZV92ZXJzaW9uKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gRmFsc2UKKworICAgICAgICAjIElmIHdlJ3ZlIGdvdHRlbiB0byBoZXJlLCBpdCBtZWFucyB0
aGF0IHByb3NwZWN0aXZlIHZlcnNpb24gaXMgYm90aAorICAgICAgICAjIGdyZWF0ZXIgdGhhbiB0
aGUgc3BlYyB2ZXJzaW9uICphbmQqIGl0J3Mgbm90IGEgcHJlLXJlbGVhc2Ugb2YgdGhlCisgICAg
ICAgICMgc2FtZSB2ZXJzaW9uIGluIHRoZSBzcGVjLgorICAgICAgICByZXR1cm4gVHJ1ZQorCisg
ICAgZGVmIF9jb21wYXJlX2FyYml0cmFyeShzZWxmLCBwcm9zcGVjdGl2ZSwgc3BlYyk6CisgICAg
ICAgICMgdHlwZTogKFZlcnNpb24sIHN0cikgLT4gYm9vbAorICAgICAgICByZXR1cm4gc3RyKHBy
b3NwZWN0aXZlKS5sb3dlcigpID09IHN0cihzcGVjKS5sb3dlcigpCisKKyAgICBAcHJvcGVydHkK
KyAgICBkZWYgcHJlcmVsZWFzZXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAor
CisgICAgICAgICMgSWYgdGhlcmUgaXMgYW4gZXhwbGljaXQgcHJlcmVsZWFzZXMgc2V0IGZvciB0
aGlzLCB0aGVuIHdlJ2xsIGp1c3QKKyAgICAgICAgIyBibGluZGx5IHVzZSB0aGF0LgorICAgICAg
ICBpZiBzZWxmLl9wcmVyZWxlYXNlcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9wcmVyZWxlYXNlcworCisgICAgICAgICMgTG9vayBhdCBhbGwgb2Ygb3VyIHNwZWNpZmll
cnMgYW5kIGRldGVybWluZSBpZiB0aGV5IGFyZSBpbmNsdXNpdmUKKyAgICAgICAgIyBvcGVyYXRv
cnMsIGFuZCBpZiB0aGV5IGFyZSBpZiB0aGV5IGFyZSBpbmNsdWRpbmcgYW4gZXhwbGljaXQKKyAg
ICAgICAgIyBwcmVyZWxlYXNlLgorICAgICAgICBvcGVyYXRvciwgdmVyc2lvbiA9IHNlbGYuX3Nw
ZWMKKyAgICAgICAgaWYgb3BlcmF0b3IgaW4gWyI9PSIsICI+PSIsICI8PSIsICJ+PSIsICI9PT0i
XToKKyAgICAgICAgICAgICMgVGhlID09IHNwZWNpZmllciBjYW4gaW5jbHVkZSBhIHRyYWlsaW5n
IC4qLCBpZiBpdCBkb2VzIHdlCisgICAgICAgICAgICAjIHdhbnQgdG8gcmVtb3ZlIGJlZm9yZSBw
YXJzaW5nLgorICAgICAgICAgICAgaWYgb3BlcmF0b3IgPT0gIj09IiBhbmQgdmVyc2lvbi5lbmRz
d2l0aCgiLioiKToKKyAgICAgICAgICAgICAgICB2ZXJzaW9uID0gdmVyc2lvbls6LTJdCisKKyAg
ICAgICAgICAgICMgUGFyc2UgdGhlIHZlcnNpb24sIGFuZCBpZiBpdCBpcyBhIHByZS1yZWxlYXNl
IHRoYW4gdGhpcworICAgICAgICAgICAgIyBzcGVjaWZpZXIgYWxsb3dzIHByZS1yZWxlYXNlcy4K
KyAgICAgICAgICAgIGlmIHBhcnNlKHZlcnNpb24pLmlzX3ByZXJlbGVhc2U6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBwcmVyZWxl
YXNlcy5zZXR0ZXIKKyAgICBkZWYgcHJlcmVsZWFzZXMoc2VsZiwgdmFsdWUpOgorICAgICAgICAj
IHR5cGU6IChib29sKSAtPiBOb25lCisgICAgICAgIHNlbGYuX3ByZXJlbGVhc2VzID0gdmFsdWUK
KworCitfcHJlZml4X3JlZ2V4ID0gcmUuY29tcGlsZShyIl4oWzAtOV0rKSgoPzphfGJ8Y3xyYylb
MC05XSspJCIpCisKKworZGVmIF92ZXJzaW9uX3NwbGl0KHZlcnNpb24pOgorICAgICMgdHlwZTog
KHN0cikgLT4gTGlzdFtzdHJdCisgICAgcmVzdWx0ID0gW10gICMgdHlwZTogTGlzdFtzdHJdCisg
ICAgZm9yIGl0ZW0gaW4gdmVyc2lvbi5zcGxpdCgiLiIpOgorICAgICAgICBtYXRjaCA9IF9wcmVm
aXhfcmVnZXguc2VhcmNoKGl0ZW0pCisgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgcmVz
dWx0LmV4dGVuZChtYXRjaC5ncm91cHMoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoaXRlbSkKKyAgICByZXR1cm4gcmVzdWx0CisKKworZGVmIF9wYWRfdmVyc2lv
bihsZWZ0LCByaWdodCk6CisgICAgIyB0eXBlOiAoTGlzdFtzdHJdLCBMaXN0W3N0cl0pIC0+IFR1
cGxlW0xpc3Rbc3RyXSwgTGlzdFtzdHJdXQorICAgIGxlZnRfc3BsaXQsIHJpZ2h0X3NwbGl0ID0g
W10sIFtdCisKKyAgICAjIEdldCB0aGUgcmVsZWFzZSBzZWdtZW50IG9mIG91ciB2ZXJzaW9ucwor
ICAgIGxlZnRfc3BsaXQuYXBwZW5kKGxpc3QoaXRlcnRvb2xzLnRha2V3aGlsZShsYW1iZGEgeDog
eC5pc2RpZ2l0KCksIGxlZnQpKSkKKyAgICByaWdodF9zcGxpdC5hcHBlbmQobGlzdChpdGVydG9v
bHMudGFrZXdoaWxlKGxhbWJkYSB4OiB4LmlzZGlnaXQoKSwgcmlnaHQpKSkKKworICAgICMgR2V0
IHRoZSByZXN0IG9mIG91ciB2ZXJzaW9ucworICAgIGxlZnRfc3BsaXQuYXBwZW5kKGxlZnRbbGVu
KGxlZnRfc3BsaXRbMF0pIDpdKQorICAgIHJpZ2h0X3NwbGl0LmFwcGVuZChyaWdodFtsZW4ocmln
aHRfc3BsaXRbMF0pIDpdKQorCisgICAgIyBJbnNlcnQgb3VyIHBhZGRpbmcKKyAgICBsZWZ0X3Nw
bGl0Lmluc2VydCgxLCBbIjAiXSAqIG1heCgwLCBsZW4ocmlnaHRfc3BsaXRbMF0pIC0gbGVuKGxl
ZnRfc3BsaXRbMF0pKSkKKyAgICByaWdodF9zcGxpdC5pbnNlcnQoMSwgWyIwIl0gKiBtYXgoMCwg
bGVuKGxlZnRfc3BsaXRbMF0pIC0gbGVuKHJpZ2h0X3NwbGl0WzBdKSkpCisKKyAgICByZXR1cm4g
KGxpc3QoaXRlcnRvb2xzLmNoYWluKCpsZWZ0X3NwbGl0KSksIGxpc3QoaXRlcnRvb2xzLmNoYWlu
KCpyaWdodF9zcGxpdCkpKQorCisKK2NsYXNzIFNwZWNpZmllclNldChCYXNlU3BlY2lmaWVyKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgc3BlY2lmaWVycz0iIiwgcHJlcmVsZWFzZXM9Tm9uZSk6
CisgICAgICAgICMgdHlwZTogKHN0ciwgT3B0aW9uYWxbYm9vbF0pIC0+IE5vbmUKKworICAgICAg
ICAjIFNwbGl0IG9uICwgdG8gYnJlYWsgZWFjaCBpbmRpdmlkdWFsIHNwZWNpZmllciBpbnRvIGl0
J3Mgb3duIGl0ZW0sIGFuZAorICAgICAgICAjIHN0cmlwIGVhY2ggaXRlbSB0byByZW1vdmUgbGVh
ZGluZy90cmFpbGluZyB3aGl0ZXNwYWNlLgorICAgICAgICBzcGxpdF9zcGVjaWZpZXJzID0gW3Mu
c3RyaXAoKSBmb3IgcyBpbiBzcGVjaWZpZXJzLnNwbGl0KCIsIikgaWYgcy5zdHJpcCgpXQorCisg
ICAgICAgICMgUGFyc2VkIGVhY2ggaW5kaXZpZHVhbCBzcGVjaWZpZXIsIGF0dGVtcHRpbmcgZmly
c3QgdG8gbWFrZSBpdCBhCisgICAgICAgICMgU3BlY2lmaWVyIGFuZCBmYWxsaW5nIGJhY2sgdG8g
YSBMZWdhY3lTcGVjaWZpZXIuCisgICAgICAgIHBhcnNlZCA9IHNldCgpCisgICAgICAgIGZvciBz
cGVjaWZpZXIgaW4gc3BsaXRfc3BlY2lmaWVyczoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBwYXJzZWQuYWRkKFNwZWNpZmllcihzcGVjaWZpZXIpKQorICAgICAgICAgICAgZXhj
ZXB0IEludmFsaWRTcGVjaWZpZXI6CisgICAgICAgICAgICAgICAgcGFyc2VkLmFkZChMZWdhY3lT
cGVjaWZpZXIoc3BlY2lmaWVyKSkKKworICAgICAgICAjIFR1cm4gb3VyIHBhcnNlZCBzcGVjaWZp
ZXJzIGludG8gYSBmcm96ZW4gc2V0IGFuZCBzYXZlIHRoZW0gZm9yIGxhdGVyLgorICAgICAgICBz
ZWxmLl9zcGVjcyA9IGZyb3plbnNldChwYXJzZWQpCisKKyAgICAgICAgIyBTdG9yZSBvdXIgcHJl
cmVsZWFzZXMgdmFsdWUgc28gd2UgY2FuIHVzZSBpdCBsYXRlciB0byBkZXRlcm1pbmUgaWYKKyAg
ICAgICAgIyB3ZSBhY2NlcHQgcHJlcmVsZWFzZXMgb3Igbm90LgorICAgICAgICBzZWxmLl9wcmVy
ZWxlYXNlcyA9IHByZXJlbGVhc2VzCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAg
ICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHByZSA9ICgKKyAgICAgICAgICAgICIsIHByZXJl
bGVhc2VzPXswIXJ9Ii5mb3JtYXQoc2VsZi5wcmVyZWxlYXNlcykKKyAgICAgICAgICAgIGlmIHNl
bGYuX3ByZXJlbGVhc2VzIGlzIG5vdCBOb25lCisgICAgICAgICAgICBlbHNlICIiCisgICAgICAg
ICkKKworICAgICAgICByZXR1cm4gIjxTcGVjaWZpZXJTZXQoezAhcn17MX0pPiIuZm9ybWF0KHN0
cihzZWxmKSwgcHJlKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgICMgdHlwZTog
KCkgLT4gc3RyCisgICAgICAgIHJldHVybiAiLCIuam9pbihzb3J0ZWQoc3RyKHMpIGZvciBzIGlu
IHNlbGYuX3NwZWNzKSkKKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgIyB0eXBl
OiAoKSAtPiBpbnQKKyAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5fc3BlY3MpCisKKyAgICBkZWYg
X19hbmRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICMgdHlwZTogKFVuaW9uW1NwZWNpZmllclNl
dCwgc3RyXSkgLT4gU3BlY2lmaWVyU2V0CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIHN0
cmluZ190eXBlcyk6CisgICAgICAgICAgICBvdGhlciA9IFNwZWNpZmllclNldChvdGhlcikKKyAg
ICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgU3BlY2lmaWVyU2V0KToKKyAgICAgICAg
ICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorCisgICAgICAgIHNwZWNpZmllciA9IFNwZWNpZmll
clNldCgpCisgICAgICAgIHNwZWNpZmllci5fc3BlY3MgPSBmcm96ZW5zZXQoc2VsZi5fc3BlY3Mg
fCBvdGhlci5fc3BlY3MpCisKKyAgICAgICAgaWYgc2VsZi5fcHJlcmVsZWFzZXMgaXMgTm9uZSBh
bmQgb3RoZXIuX3ByZXJlbGVhc2VzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc3BlY2lmaWVy
Ll9wcmVyZWxlYXNlcyA9IG90aGVyLl9wcmVyZWxlYXNlcworICAgICAgICBlbGlmIHNlbGYuX3By
ZXJlbGVhc2VzIGlzIG5vdCBOb25lIGFuZCBvdGhlci5fcHJlcmVsZWFzZXMgaXMgTm9uZToKKyAg
ICAgICAgICAgIHNwZWNpZmllci5fcHJlcmVsZWFzZXMgPSBzZWxmLl9wcmVyZWxlYXNlcworICAg
ICAgICBlbGlmIHNlbGYuX3ByZXJlbGVhc2VzID09IG90aGVyLl9wcmVyZWxlYXNlczoKKyAgICAg
ICAgICAgIHNwZWNpZmllci5fcHJlcmVsZWFzZXMgPSBzZWxmLl9wcmVyZWxlYXNlcworICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAi
Q2Fubm90IGNvbWJpbmUgU3BlY2lmaWVyU2V0cyB3aXRoIFRydWUgYW5kIEZhbHNlIHByZXJlbGVh
c2UgIgorICAgICAgICAgICAgICAgICJvdmVycmlkZXMuIgorICAgICAgICAgICAgKQorCisgICAg
ICAgIHJldHVybiBzcGVjaWZpZXIKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAg
ICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhl
ciwgKHN0cmluZ190eXBlcywgX0luZGl2aWR1YWxTcGVjaWZpZXIpKToKKyAgICAgICAgICAgIG90
aGVyID0gU3BlY2lmaWVyU2V0KHN0cihvdGhlcikpCisgICAgICAgIGVsaWYgbm90IGlzaW5zdGFu
Y2Uob3RoZXIsIFNwZWNpZmllclNldCk6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50
ZWQKKworICAgICAgICByZXR1cm4gc2VsZi5fc3BlY3MgPT0gb3RoZXIuX3NwZWNzCisKKyAgICBk
ZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgIyB0eXBlOiAob2JqZWN0KSAtPiBib29s
CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIChzdHJpbmdfdHlwZXMsIF9JbmRpdmlkdWFs
U3BlY2lmaWVyKSk6CisgICAgICAgICAgICBvdGhlciA9IFNwZWNpZmllclNldChzdHIob3RoZXIp
KQorICAgICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKG90aGVyLCBTcGVjaWZpZXJTZXQpOgorICAg
ICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Nw
ZWNzICE9IG90aGVyLl9zcGVjcworCisgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgICMg
dHlwZTogKCkgLT4gaW50CisgICAgICAgIHJldHVybiBsZW4oc2VsZi5fc3BlY3MpCisKKyAgICBk
ZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gSXRlcmF0b3JbX0luZGl2
aWR1YWxTcGVjaWZpZXJdCisgICAgICAgIHJldHVybiBpdGVyKHNlbGYuX3NwZWNzKQorCisgICAg
QHByb3BlcnR5CisgICAgZGVmIHByZXJlbGVhc2VzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IE9wdGlvbmFsW2Jvb2xdCisKKyAgICAgICAgIyBJZiB3ZSBoYXZlIGJlZW4gZ2l2ZW4gYW4g
ZXhwbGljaXQgcHJlcmVsZWFzZSBtb2RpZmllciwgdGhlbiB3ZSdsbAorICAgICAgICAjIHBhc3Mg
dGhhdCB0aHJvdWdoIGhlcmUuCisgICAgICAgIGlmIHNlbGYuX3ByZXJlbGVhc2VzIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3ByZXJlbGVhc2VzCisKKyAgICAgICAgIyBJ
ZiB3ZSBkb24ndCBoYXZlIGFueSBzcGVjaWZpZXJzLCBhbmQgd2UgZG9uJ3QgaGF2ZSBhIGZvcmNl
ZCB2YWx1ZSwKKyAgICAgICAgIyB0aGVuIHdlJ2xsIGp1c3QgcmV0dXJuIE5vbmUgc2luY2Ugd2Ug
ZG9uJ3Qga25vdyBpZiB0aGlzIHNob3VsZCBoYXZlCisgICAgICAgICMgcHJlLXJlbGVhc2VzIG9y
IG5vdC4KKyAgICAgICAgaWYgbm90IHNlbGYuX3NwZWNzOgorICAgICAgICAgICAgcmV0dXJuIE5v
bmUKKworICAgICAgICAjIE90aGVyd2lzZSB3ZSdsbCBzZWUgaWYgYW55IG9mIHRoZSBnaXZlbiBz
cGVjaWZpZXJzIGFjY2VwdAorICAgICAgICAjIHByZXJlbGVhc2VzLCBpZiBhbnkgb2YgdGhlbSBk
byB3ZSdsbCByZXR1cm4gVHJ1ZSwgb3RoZXJ3aXNlIEZhbHNlLgorICAgICAgICByZXR1cm4gYW55
KHMucHJlcmVsZWFzZXMgZm9yIHMgaW4gc2VsZi5fc3BlY3MpCisKKyAgICBAcHJlcmVsZWFzZXMu
c2V0dGVyCisgICAgZGVmIHByZXJlbGVhc2VzKHNlbGYsIHZhbHVlKToKKyAgICAgICAgIyB0eXBl
OiAoYm9vbCkgLT4gTm9uZQorICAgICAgICBzZWxmLl9wcmVyZWxlYXNlcyA9IHZhbHVlCisKKyAg
ICBkZWYgX19jb250YWluc19fKHNlbGYsIGl0ZW0pOgorICAgICAgICAjIHR5cGU6IChVbmlvbltQ
YXJzZWRWZXJzaW9uLCBzdHJdKSAtPiBib29sCisgICAgICAgIHJldHVybiBzZWxmLmNvbnRhaW5z
KGl0ZW0pCisKKyAgICBkZWYgY29udGFpbnMoc2VsZiwgaXRlbSwgcHJlcmVsZWFzZXM9Tm9uZSk6
CisgICAgICAgICMgdHlwZTogKFVuaW9uW1BhcnNlZFZlcnNpb24sIHN0cl0sIE9wdGlvbmFsW2Jv
b2xdKSAtPiBib29sCisKKyAgICAgICAgIyBFbnN1cmUgdGhhdCBvdXIgaXRlbSBpcyBhIFZlcnNp
b24gb3IgTGVnYWN5VmVyc2lvbiBpbnN0YW5jZS4KKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo
aXRlbSwgKExlZ2FjeVZlcnNpb24sIFZlcnNpb24pKToKKyAgICAgICAgICAgIGl0ZW0gPSBwYXJz
ZShpdGVtKQorCisgICAgICAgICMgRGV0ZXJtaW5lIGlmIHdlJ3JlIGZvcmNpbmcgYSBwcmVyZWxl
YXNlIG9yIG5vdCwgaWYgd2UncmUgbm90IGZvcmNpbmcKKyAgICAgICAgIyBvbmUgZm9yIHRoaXMg
cGFydGljdWxhciBmaWx0ZXIgY2FsbCwgdGhlbiB3ZSdsbCB1c2Ugd2hhdGV2ZXIgdGhlCisgICAg
ICAgICMgU3BlY2lmaWVyU2V0IHRoaW5rcyBmb3Igd2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIHN1
cHBvcnQgcHJlcmVsZWFzZXMuCisgICAgICAgIGlmIHByZXJlbGVhc2VzIGlzIE5vbmU6CisgICAg
ICAgICAgICBwcmVyZWxlYXNlcyA9IHNlbGYucHJlcmVsZWFzZXMKKworICAgICAgICAjIFdlIGNh
biBkZXRlcm1pbmUgaWYgd2UncmUgZ29pbmcgdG8gYWxsb3cgcHJlLXJlbGVhc2VzIGJ5IGxvb2tp
bmcgdG8KKyAgICAgICAgIyBzZWUgaWYgYW55IG9mIHRoZSB1bmRlcmx5aW5nIGl0ZW1zIHN1cHBv
cnRzIHRoZW0uIElmIG5vbmUgb2YgdGhlbSBkbworICAgICAgICAjIGFuZCB0aGlzIGl0ZW0gaXMg
YSBwcmUtcmVsZWFzZSB0aGVuIHdlIGRvIG5vdCBhbGxvdyBpdCBhbmQgd2UgY2FuCisgICAgICAg
ICMgc2hvcnQgY2lyY3VpdCB0aGF0IGhlcmUuCisgICAgICAgICMgTm90ZTogVGhpcyBtZWFucyB0
aGF0IDEuMC5kZXYxIHdvdWxkIG5vdCBiZSBjb250YWluZWQgaW4gc29tZXRoaW5nCisgICAgICAg
ICMgICAgICAgbGlrZSA+PTEuMC5kZXZhYmMgaG93ZXZlciBpdCB3b3VsZCBiZSBpbiA+PTEuMC5k
ZWJhYmMsPjAuMC5kZXYwCisgICAgICAgIGlmIG5vdCBwcmVyZWxlYXNlcyBhbmQgaXRlbS5pc19w
cmVyZWxlYXNlOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgIyBXZSBzaW1w
bHkgZGlzcGF0Y2ggdG8gdGhlIHVuZGVybHlpbmcgc3BlY3MgaGVyZSB0byBtYWtlIHN1cmUgdGhh
dCB0aGUKKyAgICAgICAgIyBnaXZlbiB2ZXJzaW9uIGlzIGNvbnRhaW5lZCB3aXRoaW4gYWxsIG9m
IHRoZW0uCisgICAgICAgICMgTm90ZTogVGhpcyB1c2Ugb2YgYWxsKCkgaGVyZSBtZWFucyB0aGF0
IGFuIGVtcHR5IHNldCBvZiBzcGVjaWZpZXJzCisgICAgICAgICMgICAgICAgd2lsbCBhbHdheXMg
cmV0dXJuIFRydWUsIHRoaXMgaXMgYW4gZXhwbGljaXQgZGVzaWduIGRlY2lzaW9uLgorICAgICAg
ICByZXR1cm4gYWxsKHMuY29udGFpbnMoaXRlbSwgcHJlcmVsZWFzZXM9cHJlcmVsZWFzZXMpIGZv
ciBzIGluIHNlbGYuX3NwZWNzKQorCisgICAgZGVmIGZpbHRlcigKKyAgICAgICAgc2VsZiwKKyAg
ICAgICAgaXRlcmFibGUsICAjIHR5cGU6IEl0ZXJhYmxlW1VuaW9uW1BhcnNlZFZlcnNpb24sIHN0
cl1dCisgICAgICAgIHByZXJlbGVhc2VzPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW2Jvb2xdCisg
ICAgKToKKyAgICAgICAgIyB0eXBlOiAoLi4uKSAtPiBJdGVyYWJsZVtVbmlvbltQYXJzZWRWZXJz
aW9uLCBzdHJdXQorCisgICAgICAgICMgRGV0ZXJtaW5lIGlmIHdlJ3JlIGZvcmNpbmcgYSBwcmVy
ZWxlYXNlIG9yIG5vdCwgaWYgd2UncmUgbm90IGZvcmNpbmcKKyAgICAgICAgIyBvbmUgZm9yIHRo
aXMgcGFydGljdWxhciBmaWx0ZXIgY2FsbCwgdGhlbiB3ZSdsbCB1c2Ugd2hhdGV2ZXIgdGhlCisg
ICAgICAgICMgU3BlY2lmaWVyU2V0IHRoaW5rcyBmb3Igd2hldGhlciBvciBub3Qgd2Ugc2hvdWxk
IHN1cHBvcnQgcHJlcmVsZWFzZXMuCisgICAgICAgIGlmIHByZXJlbGVhc2VzIGlzIE5vbmU6Cisg
ICAgICAgICAgICBwcmVyZWxlYXNlcyA9IHNlbGYucHJlcmVsZWFzZXMKKworICAgICAgICAjIElm
IHdlIGhhdmUgYW55IHNwZWNpZmllcnMsIHRoZW4gd2Ugd2FudCB0byB3cmFwIG91ciBpdGVyYWJs
ZSBpbiB0aGUKKyAgICAgICAgIyBmaWx0ZXIgbWV0aG9kIGZvciBlYWNoIG9uZSwgdGhpcyB3aWxs
IGFjdCBhcyBhIGxvZ2ljYWwgQU5EIGFtb25nc3QKKyAgICAgICAgIyBlYWNoIHNwZWNpZmllci4K
KyAgICAgICAgaWYgc2VsZi5fc3BlY3M6CisgICAgICAgICAgICBmb3Igc3BlYyBpbiBzZWxmLl9z
cGVjczoKKyAgICAgICAgICAgICAgICBpdGVyYWJsZSA9IHNwZWMuZmlsdGVyKGl0ZXJhYmxlLCBw
cmVyZWxlYXNlcz1ib29sKHByZXJlbGVhc2VzKSkKKyAgICAgICAgICAgIHJldHVybiBpdGVyYWJs
ZQorICAgICAgICAjIElmIHdlIGRvIG5vdCBoYXZlIGFueSBzcGVjaWZpZXJzLCB0aGVuIHdlIG5l
ZWQgdG8gaGF2ZSBhIHJvdWdoIGZpbHRlcgorICAgICAgICAjIHdoaWNoIHdpbGwgZmlsdGVyIG91
dCBhbnkgcHJlLXJlbGVhc2VzLCB1bmxlc3MgdGhlcmUgYXJlIG5vIGZpbmFsCisgICAgICAgICMg
cmVsZWFzZXMsIGFuZCB3aGljaCB3aWxsIGZpbHRlciBvdXQgTGVnYWN5VmVyc2lvbiBpbiBnZW5l
cmFsLgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZmlsdGVyZWQgPSBbXSAgIyB0eXBlOiBM
aXN0W1VuaW9uW1BhcnNlZFZlcnNpb24sIHN0cl1dCisgICAgICAgICAgICBmb3VuZF9wcmVyZWxl
YXNlcyA9IFtdICAjIHR5cGU6IExpc3RbVW5pb25bUGFyc2VkVmVyc2lvbiwgc3RyXV0KKworICAg
ICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcmFibGU6CisgICAgICAgICAgICAgICAgIyBFbnN1cmUg
dGhhdCB3ZSBzb21lIGtpbmQgb2YgVmVyc2lvbiBjbGFzcyBmb3IgdGhpcyBpdGVtLgorICAgICAg
ICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGl0ZW0sIChMZWdhY3lWZXJzaW9uLCBWZXJzaW9u
KSk6CisgICAgICAgICAgICAgICAgICAgIHBhcnNlZF92ZXJzaW9uID0gcGFyc2UoaXRlbSkKKyAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwYXJzZWRfdmVyc2lvbiA9
IGl0ZW0KKworICAgICAgICAgICAgICAgICMgRmlsdGVyIG91dCBhbnkgaXRlbSB3aGljaCBpcyBw
YXJzZWQgYXMgYSBMZWdhY3lWZXJzaW9uCisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShw
YXJzZWRfdmVyc2lvbiwgTGVnYWN5VmVyc2lvbik6CisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisKKyAgICAgICAgICAgICAgICAjIFN0b3JlIGFueSBpdGVtIHdoaWNoIGlzIGEgcHJlLXJl
bGVhc2UgZm9yIGxhdGVyIHVubGVzcyB3ZSd2ZQorICAgICAgICAgICAgICAgICMgYWxyZWFkeSBm
b3VuZCBhIGZpbmFsIHZlcnNpb24gb3Igd2UgYXJlIGFjY2VwdGluZyBwcmVyZWxlYXNlcworICAg
ICAgICAgICAgICAgIGlmIHBhcnNlZF92ZXJzaW9uLmlzX3ByZXJlbGVhc2UgYW5kIG5vdCBwcmVy
ZWxlYXNlczoKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGZpbHRlcmVkOgorICAgICAgICAg
ICAgICAgICAgICAgICAgZm91bmRfcHJlcmVsZWFzZXMuYXBwZW5kKGl0ZW0pCisgICAgICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWQuYXBwZW5kKGl0ZW0pCisK
KyAgICAgICAgICAgICMgSWYgd2UndmUgZm91bmQgbm8gaXRlbXMgZXhjZXB0IGZvciBwcmUtcmVs
ZWFzZXMsIHRoZW4gd2UnbGwgZ28KKyAgICAgICAgICAgICMgYWhlYWQgYW5kIHVzZSB0aGUgcHJl
LXJlbGVhc2VzCisgICAgICAgICAgICBpZiBub3QgZmlsdGVyZWQgYW5kIGZvdW5kX3ByZXJlbGVh
c2VzIGFuZCBwcmVyZWxlYXNlcyBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBmb3Vu
ZF9wcmVyZWxlYXNlcworCisgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy90YWdzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2Fn
aW5nL3RhZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQyNDQ3ZDg2M2IzNDM5YjBhMmM2NGZjN2NjYjYwMThl
ZTNkOGIyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy90YWdz
LnB5CkBAIC0wLDAgKzEsODU2IEBACisjIFRoaXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24KKyMgMi4wLCBhbmQgdGhl
IEJTRCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGlzIHJl
cG9zaXRvcnkKKyMgZm9yIGNvbXBsZXRlIGRldGFpbHMuCisKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0CisKK2ltcG9ydCBkaXN0dXRpbHMudXRpbAorCit0cnk6CisgICAg
ZnJvbSBpbXBvcnRsaWIubWFjaGluZXJ5IGltcG9ydCBFWFRFTlNJT05fU1VGRklYRVMKK2V4Y2Vw
dCBJbXBvcnRFcnJvcjogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIGltcG9ydCBpbXAKKworICAg
IEVYVEVOU0lPTl9TVUZGSVhFUyA9IFt4WzBdIGZvciB4IGluIGltcC5nZXRfc3VmZml4ZXMoKV0K
KyAgICBkZWwgaW1wCitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQg
b3MKK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHJlCitpbXBvcnQgc3RydWN0CitpbXBvcnQgc3lz
CitpbXBvcnQgc3lzY29uZmlnCitpbXBvcnQgd2FybmluZ3MKKworZnJvbSAuX3R5cGluZyBpbXBv
cnQgVFlQRV9DSEVDS0lORywgY2FzdAorCitpZiBUWVBFX0NIRUNLSU5HOiAgIyBwcmFnbWE6IG5v
IGNvdmVyCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0ICgKKyAgICAgICAgRGljdCwKKyAgICAgICAg
RnJvemVuU2V0LAorICAgICAgICBJTywKKyAgICAgICAgSXRlcmFibGUsCisgICAgICAgIEl0ZXJh
dG9yLAorICAgICAgICBMaXN0LAorICAgICAgICBPcHRpb25hbCwKKyAgICAgICAgU2VxdWVuY2Us
CisgICAgICAgIFR1cGxlLAorICAgICAgICBVbmlvbiwKKyAgICApCisKKyAgICBQeXRob25WZXJz
aW9uID0gU2VxdWVuY2VbaW50XQorICAgIE1hY1ZlcnNpb24gPSBUdXBsZVtpbnQsIGludF0KKyAg
ICBHbGliY1ZlcnNpb24gPSBUdXBsZVtpbnQsIGludF0KKworCitsb2dnZXIgPSBsb2dnaW5nLmdl
dExvZ2dlcihfX25hbWVfXykKKworSU5URVJQUkVURVJfU0hPUlRfTkFNRVMgPSB7CisgICAgInB5
dGhvbiI6ICJweSIsICAjIEdlbmVyaWMuCisgICAgImNweXRob24iOiAiY3AiLAorICAgICJweXB5
IjogInBwIiwKKyAgICAiaXJvbnB5dGhvbiI6ICJpcCIsCisgICAgImp5dGhvbiI6ICJqeSIsCit9
ICAjIHR5cGU6IERpY3Rbc3RyLCBzdHJdCisKKworXzMyX0JJVF9JTlRFUlBSRVRFUiA9IHN5cy5t
YXhzaXplIDw9IDIgKiogMzIKKworCitfTEVHQUNZX01BTllMSU5VWF9NQVAgPSB7CisgICAgIyBD
ZW50T1MgNyB3LyBnbGliYyAyLjE3IChQRVAgNTk5KQorICAgICgyLCAxNyk6ICJtYW55bGludXgy
MDE0IiwKKyAgICAjIENlbnRPUyA2IHcvIGdsaWJjIDIuMTIgKFBFUCA1NzEpCisgICAgKDIsIDEy
KTogIm1hbnlsaW51eDIwMTAiLAorICAgICMgQ2VudE9TIDUgdy8gZ2xpYmMgMi41IChQRVAgNTEz
KQorICAgICgyLCA1KTogIm1hbnlsaW51eDEiLAorfQorCisjIElmIGdsaWJjIGV2ZXIgY2hhbmdl
cyBpdHMgbWFqb3IgdmVyc2lvbiwgd2UgbmVlZCB0byBrbm93IHdoYXQgdGhlIGxhc3QKKyMgbWlu
b3IgdmVyc2lvbiB3YXMsIHNvIHdlIGNhbiBidWlsZCB0aGUgY29tcGxldGUgbGlzdCBvZiBhbGwg
dmVyc2lvbnMuCisjIEZvciBub3csIGd1ZXNzIHdoYXQgdGhlIGhpZ2hlc3QgbWlub3IgdmVyc2lv
biBtaWdodCBiZSwgYXNzdW1lIGl0IHdpbGwKKyMgYmUgNTAgZm9yIHRlc3RpbmcuIE9uY2UgdGhp
cyBhY3R1YWxseSBoYXBwZW5zLCB1cGRhdGUgdGhlIGRpY3Rpb25hcnkKKyMgd2l0aCB0aGUgYWN0
dWFsIHZhbHVlLgorX0xBU1RfR0xJQkNfTUlOT1IgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChs
YW1iZGE6IDUwKSAgIyB0eXBlOiBEaWN0W2ludCwgaW50XQorZ2xpYmNWZXJzaW9uID0gY29sbGVj
dGlvbnMubmFtZWR0dXBsZSgiVmVyc2lvbiIsIFsibWFqb3IiLCAibWlub3IiXSkKKworCitjbGFz
cyBUYWcob2JqZWN0KToKKyAgICAiIiIKKyAgICBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0YWcg
dHJpcGxlIGZvciBhIHdoZWVsLgorCisgICAgSW5zdGFuY2VzIGFyZSBjb25zaWRlcmVkIGltbXV0
YWJsZSBhbmQgdGh1cyBhcmUgaGFzaGFibGUuIEVxdWFsaXR5IGNoZWNraW5nCisgICAgaXMgYWxz
byBzdXBwb3J0ZWQuCisgICAgIiIiCisKKyAgICBfX3Nsb3RzX18gPSBbIl9pbnRlcnByZXRlciIs
ICJfYWJpIiwgIl9wbGF0Zm9ybSIsICJfaGFzaCJdCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
aW50ZXJwcmV0ZXIsIGFiaSwgcGxhdGZvcm0pOgorICAgICAgICAjIHR5cGU6IChzdHIsIHN0ciwg
c3RyKSAtPiBOb25lCisgICAgICAgIHNlbGYuX2ludGVycHJldGVyID0gaW50ZXJwcmV0ZXIubG93
ZXIoKQorICAgICAgICBzZWxmLl9hYmkgPSBhYmkubG93ZXIoKQorICAgICAgICBzZWxmLl9wbGF0
Zm9ybSA9IHBsYXRmb3JtLmxvd2VyKCkKKyAgICAgICAgIyBUaGUgX19oYXNoX18gb2YgZXZlcnkg
c2luZ2xlIGVsZW1lbnQgaW4gYSBTZXRbVGFnXSB3aWxsIGJlIGV2YWx1YXRlZCBlYWNoIHRpbWUK
KyAgICAgICAgIyB0aGF0IGEgc2V0IGNhbGxzIGl0cyBgLmRpc2pvaW50KClgIG1ldGhvZCwgd2hp
Y2ggbWF5IGJlIGNhbGxlZCBodW5kcmVkcyBvZgorICAgICAgICAjIHRpbWVzIHdoZW4gc2Nhbm5p
bmcgYSBwYWdlIG9mIGxpbmtzIGZvciBwYWNrYWdlcyB3aXRoIHRhZ3MgbWF0Y2hpbmcgdGhhdAor
ICAgICAgICAjIFNldFtUYWddLiBQcmUtY29tcHV0aW5nIHRoZSB2YWx1ZSBoZXJlIHByb2R1Y2Vz
IHNpZ25pZmljYW50IHNwZWVkdXBzIGZvcgorICAgICAgICAjIGRvd25zdHJlYW0gY29uc3VtZXJz
LgorICAgICAgICBzZWxmLl9oYXNoID0gaGFzaCgoc2VsZi5faW50ZXJwcmV0ZXIsIHNlbGYuX2Fi
aSwgc2VsZi5fcGxhdGZvcm0pKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGludGVycHJldGVy
KHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1cm4gc2VsZi5f
aW50ZXJwcmV0ZXIKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhYmkoc2VsZik6CisgICAgICAg
ICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJldHVybiBzZWxmLl9hYmkKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBwbGF0Zm9ybShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBzdHIK
KyAgICAgICAgcmV0dXJuIHNlbGYuX3BsYXRmb3JtCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90
aGVyKToKKyAgICAgICAgIyB0eXBlOiAob2JqZWN0KSAtPiBib29sCisgICAgICAgIGlmIG5vdCBp
c2luc3RhbmNlKG90aGVyLCBUYWcpOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVk
CisKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgIChzZWxmLnBsYXRmb3JtID09IG90aGVy
LnBsYXRmb3JtKQorICAgICAgICAgICAgYW5kIChzZWxmLmFiaSA9PSBvdGhlci5hYmkpCisgICAg
ICAgICAgICBhbmQgKHNlbGYuaW50ZXJwcmV0ZXIgPT0gb3RoZXIuaW50ZXJwcmV0ZXIpCisgICAg
ICAgICkKKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBp
bnQKKyAgICAgICAgcmV0dXJuIHNlbGYuX2hhc2gKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgor
ICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1cm4gInt9LXt9LXt9Ii5mb3Jt
YXQoc2VsZi5faW50ZXJwcmV0ZXIsIHNlbGYuX2FiaSwgc2VsZi5fcGxhdGZvcm0pCisKKyAgICBk
ZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJl
dHVybiAiPHtzZWxmfSBAIHtzZWxmX2lkfT4iLmZvcm1hdChzZWxmPXNlbGYsIHNlbGZfaWQ9aWQo
c2VsZikpCisKKworZGVmIHBhcnNlX3RhZyh0YWcpOgorICAgICMgdHlwZTogKHN0cikgLT4gRnJv
emVuU2V0W1RhZ10KKyAgICAiIiIKKyAgICBQYXJzZXMgdGhlIHByb3ZpZGVkIHRhZyAoZS5nLiBg
cHkzLW5vbmUtYW55YCkgaW50byBhIGZyb3plbnNldCBvZiBUYWcgaW5zdGFuY2VzLgorCisgICAg
UmV0dXJuaW5nIGEgc2V0IGlzIHJlcXVpcmVkIGR1ZSB0byB0aGUgcG9zc2liaWxpdHkgdGhhdCB0
aGUgdGFnIGlzIGEKKyAgICBjb21wcmVzc2VkIHRhZyBzZXQuCisgICAgIiIiCisgICAgdGFncyA9
IHNldCgpCisgICAgaW50ZXJwcmV0ZXJzLCBhYmlzLCBwbGF0Zm9ybXMgPSB0YWcuc3BsaXQoIi0i
KQorICAgIGZvciBpbnRlcnByZXRlciBpbiBpbnRlcnByZXRlcnMuc3BsaXQoIi4iKToKKyAgICAg
ICAgZm9yIGFiaSBpbiBhYmlzLnNwbGl0KCIuIik6CisgICAgICAgICAgICBmb3IgcGxhdGZvcm1f
IGluIHBsYXRmb3Jtcy5zcGxpdCgiLiIpOgorICAgICAgICAgICAgICAgIHRhZ3MuYWRkKFRhZyhp
bnRlcnByZXRlciwgYWJpLCBwbGF0Zm9ybV8pKQorICAgIHJldHVybiBmcm96ZW5zZXQodGFncykK
KworCitkZWYgX3dhcm5fa2V5d29yZF9wYXJhbWV0ZXIoZnVuY19uYW1lLCBrd2FyZ3MpOgorICAg
ICMgdHlwZTogKHN0ciwgRGljdFtzdHIsIGJvb2xdKSAtPiBib29sCisgICAgIiIiCisgICAgQmFj
a3dhcmRzLWNvbXBhdGliaWxpdHkgd2l0aCBQeXRob24gMi43IHRvIGFsbG93IHRyZWF0aW5nICd3
YXJuJyBhcyBrZXl3b3JkLW9ubHkuCisgICAgIiIiCisgICAgaWYgbm90IGt3YXJnczoKKyAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgZWxpZiBsZW4oa3dhcmdzKSA+IDEgb3IgIndhcm4iIG5vdCBp
biBrd2FyZ3M6CisgICAgICAgIGt3YXJncy5wb3AoIndhcm4iLCBOb25lKQorICAgICAgICBhcmcg
PSBuZXh0KGl0ZXIoa3dhcmdzLmtleXMoKSkpCisgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAg
ICAgICAgICAgICJ7fSgpIGdvdCBhbiB1bmV4cGVjdGVkIGtleXdvcmQgYXJndW1lbnQgeyFyfSIu
Zm9ybWF0KGZ1bmNfbmFtZSwgYXJnKQorICAgICAgICApCisgICAgcmV0dXJuIGt3YXJnc1sid2Fy
biJdCisKKworZGVmIF9nZXRfY29uZmlnX3ZhcihuYW1lLCB3YXJuPUZhbHNlKToKKyAgICAjIHR5
cGU6IChzdHIsIGJvb2wpIC0+IFVuaW9uW2ludCwgc3RyLCBOb25lXQorICAgIHZhbHVlID0gc3lz
Y29uZmlnLmdldF9jb25maWdfdmFyKG5hbWUpCisgICAgaWYgdmFsdWUgaXMgTm9uZSBhbmQgd2Fy
bjoKKyAgICAgICAgbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgIkNvbmZpZyB2YXJpYWJsZSAn
JXMnIGlzIHVuc2V0LCBQeXRob24gQUJJIHRhZyBtYXkgYmUgaW5jb3JyZWN0IiwgbmFtZQorICAg
ICAgICApCisgICAgcmV0dXJuIHZhbHVlCisKKworZGVmIF9ub3JtYWxpemVfc3RyaW5nKHN0cmlu
Zyk6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBzdHIKKyAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2Uo
Ii4iLCAiXyIpLnJlcGxhY2UoIi0iLCAiXyIpCisKKworZGVmIF9hYmkzX2FwcGxpZXMocHl0aG9u
X3ZlcnNpb24pOgorICAgICMgdHlwZTogKFB5dGhvblZlcnNpb24pIC0+IGJvb2wKKyAgICAiIiIK
KyAgICBEZXRlcm1pbmUgaWYgdGhlIFB5dGhvbiB2ZXJzaW9uIHN1cHBvcnRzIGFiaTMuCisKKyAg
ICBQRVAgMzg0IHdhcyBmaXJzdCBpbXBsZW1lbnRlZCBpbiBQeXRob24gMy4yLgorICAgICIiIgor
ICAgIHJldHVybiBsZW4ocHl0aG9uX3ZlcnNpb24pID4gMSBhbmQgdHVwbGUocHl0aG9uX3ZlcnNp
b24pID49ICgzLCAyKQorCisKK2RlZiBfY3B5dGhvbl9hYmlzKHB5X3ZlcnNpb24sIHdhcm49RmFs
c2UpOgorICAgICMgdHlwZTogKFB5dGhvblZlcnNpb24sIGJvb2wpIC0+IExpc3Rbc3RyXQorICAg
IHB5X3ZlcnNpb24gPSB0dXBsZShweV92ZXJzaW9uKSAgIyBUbyBhbGxvdyBmb3IgdmVyc2lvbiBj
b21wYXJpc29uLgorICAgIGFiaXMgPSBbXQorICAgIHZlcnNpb24gPSBfdmVyc2lvbl9ub2RvdChw
eV92ZXJzaW9uWzoyXSkKKyAgICBkZWJ1ZyA9IHB5bWFsbG9jID0gdWNzNCA9ICIiCisgICAgd2l0
aF9kZWJ1ZyA9IF9nZXRfY29uZmlnX3ZhcigiUHlfREVCVUciLCB3YXJuKQorICAgIGhhc19yZWZj
b3VudCA9IGhhc2F0dHIoc3lzLCAiZ2V0dG90YWxyZWZjb3VudCIpCisgICAgIyBXaW5kb3dzIGRv
ZXNuJ3Qgc2V0IFB5X0RFQlVHLCBzbyBjaGVja2luZyBmb3Igc3VwcG9ydCBvZiBkZWJ1Zy1jb21w
aWxlZAorICAgICMgZXh0ZW5zaW9uIG1vZHVsZXMgaXMgdGhlIGJlc3Qgb3B0aW9uLgorICAgICMg
aHR0cHM6Ly9naXRodWIuY29tL3B5cGEvcGlwL2lzc3Vlcy8zMzgzI2lzc3VlY29tbWVudC0xNzMy
Njc2OTIKKyAgICBoYXNfZXh0ID0gIl9kLnB5ZCIgaW4gRVhURU5TSU9OX1NVRkZJWEVTCisgICAg
aWYgd2l0aF9kZWJ1ZyBvciAod2l0aF9kZWJ1ZyBpcyBOb25lIGFuZCAoaGFzX3JlZmNvdW50IG9y
IGhhc19leHQpKToKKyAgICAgICAgZGVidWcgPSAiZCIKKyAgICBpZiBweV92ZXJzaW9uIDwgKDMs
IDgpOgorICAgICAgICB3aXRoX3B5bWFsbG9jID0gX2dldF9jb25maWdfdmFyKCJXSVRIX1BZTUFM
TE9DIiwgd2FybikKKyAgICAgICAgaWYgd2l0aF9weW1hbGxvYyBvciB3aXRoX3B5bWFsbG9jIGlz
IE5vbmU6CisgICAgICAgICAgICBweW1hbGxvYyA9ICJtIgorICAgICAgICBpZiBweV92ZXJzaW9u
IDwgKDMsIDMpOgorICAgICAgICAgICAgdW5pY29kZV9zaXplID0gX2dldF9jb25maWdfdmFyKCJQ
eV9VTklDT0RFX1NJWkUiLCB3YXJuKQorICAgICAgICAgICAgaWYgdW5pY29kZV9zaXplID09IDQg
b3IgKAorICAgICAgICAgICAgICAgIHVuaWNvZGVfc2l6ZSBpcyBOb25lIGFuZCBzeXMubWF4dW5p
Y29kZSA9PSAweDEwRkZGRgorICAgICAgICAgICAgKToKKyAgICAgICAgICAgICAgICB1Y3M0ID0g
InUiCisgICAgZWxpZiBkZWJ1ZzoKKyAgICAgICAgIyBEZWJ1ZyBidWlsZHMgY2FuIGFsc28gbG9h
ZCAibm9ybWFsIiBleHRlbnNpb24gbW9kdWxlcy4KKyAgICAgICAgIyBXZSBjYW4gYWxzbyBhc3N1
bWUgbm8gVUNTLTQgb3IgcHltYWxsb2MgcmVxdWlyZW1lbnQuCisgICAgICAgIGFiaXMuYXBwZW5k
KCJjcHt2ZXJzaW9ufSIuZm9ybWF0KHZlcnNpb249dmVyc2lvbikpCisgICAgYWJpcy5pbnNlcnQo
CisgICAgICAgIDAsCisgICAgICAgICJjcHt2ZXJzaW9ufXtkZWJ1Z317cHltYWxsb2N9e3VjczR9
Ii5mb3JtYXQoCisgICAgICAgICAgICB2ZXJzaW9uPXZlcnNpb24sIGRlYnVnPWRlYnVnLCBweW1h
bGxvYz1weW1hbGxvYywgdWNzND11Y3M0CisgICAgICAgICksCisgICAgKQorICAgIHJldHVybiBh
YmlzCisKKworZGVmIGNweXRob25fdGFncygKKyAgICBweXRob25fdmVyc2lvbj1Ob25lLCAgIyB0
eXBlOiBPcHRpb25hbFtQeXRob25WZXJzaW9uXQorICAgIGFiaXM9Tm9uZSwgICMgdHlwZTogT3B0
aW9uYWxbSXRlcmFibGVbc3RyXV0KKyAgICBwbGF0Zm9ybXM9Tm9uZSwgICMgdHlwZTogT3B0aW9u
YWxbSXRlcmFibGVbc3RyXV0KKyAgICAqKmt3YXJncyAgIyB0eXBlOiBib29sCispOgorICAgICMg
dHlwZTogKC4uLikgLT4gSXRlcmF0b3JbVGFnXQorICAgICIiIgorICAgIFlpZWxkcyB0aGUgdGFn
cyBmb3IgYSBDUHl0aG9uIGludGVycHJldGVyLgorCisgICAgVGhlIHRhZ3MgY29uc2lzdCBvZjoK
KyAgICAtIGNwPHB5dGhvbl92ZXJzaW9uPi08YWJpPi08cGxhdGZvcm0+CisgICAgLSBjcDxweXRo
b25fdmVyc2lvbj4tYWJpMy08cGxhdGZvcm0+CisgICAgLSBjcDxweXRob25fdmVyc2lvbj4tbm9u
ZS08cGxhdGZvcm0+CisgICAgLSBjcDxsZXNzIHRoYW4gcHl0aG9uX3ZlcnNpb24+LWFiaTMtPHBs
YXRmb3JtPiAgIyBPbGRlciBQeXRob24gdmVyc2lvbnMgZG93biB0byAzLjIuCisKKyAgICBJZiBw
eXRob25fdmVyc2lvbiBvbmx5IHNwZWNpZmllcyBhIG1ham9yIHZlcnNpb24gdGhlbiB1c2VyLXBy
b3ZpZGVkIEFCSXMgYW5kCisgICAgdGhlICdub25lJyBBQkl0YWcgd2lsbCBiZSB1c2VkLgorCisg
ICAgSWYgJ2FiaTMnIG9yICdub25lJyBhcmUgc3BlY2lmaWVkIGluICdhYmlzJyB0aGVuIHRoZXkg
d2lsbCBiZSB5aWVsZGVkIGF0CisgICAgdGhlaXIgbm9ybWFsIHBvc2l0aW9uIGFuZCBub3QgYXQg
dGhlIGJlZ2lubmluZy4KKyAgICAiIiIKKyAgICB3YXJuID0gX3dhcm5fa2V5d29yZF9wYXJhbWV0
ZXIoImNweXRob25fdGFncyIsIGt3YXJncykKKyAgICBpZiBub3QgcHl0aG9uX3ZlcnNpb246Cisg
ICAgICAgIHB5dGhvbl92ZXJzaW9uID0gc3lzLnZlcnNpb25faW5mb1s6Ml0KKworICAgIGludGVy
cHJldGVyID0gImNwe30iLmZvcm1hdChfdmVyc2lvbl9ub2RvdChweXRob25fdmVyc2lvbls6Ml0p
KQorCisgICAgaWYgYWJpcyBpcyBOb25lOgorICAgICAgICBpZiBsZW4ocHl0aG9uX3ZlcnNpb24p
ID4gMToKKyAgICAgICAgICAgIGFiaXMgPSBfY3B5dGhvbl9hYmlzKHB5dGhvbl92ZXJzaW9uLCB3
YXJuKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYWJpcyA9IFtdCisgICAgYWJpcyA9IGxp
c3QoYWJpcykKKyAgICAjICdhYmkzJyBhbmQgJ25vbmUnIGFyZSBleHBsaWNpdGx5IGhhbmRsZWQg
bGF0ZXIuCisgICAgZm9yIGV4cGxpY2l0X2FiaSBpbiAoImFiaTMiLCAibm9uZSIpOgorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBhYmlzLnJlbW92ZShleHBsaWNpdF9hYmkpCisgICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgcGFzcworCisgICAgcGxhdGZvcm1zID0gbGlz
dChwbGF0Zm9ybXMgb3IgX3BsYXRmb3JtX3RhZ3MoKSkKKyAgICBmb3IgYWJpIGluIGFiaXM6Cisg
ICAgICAgIGZvciBwbGF0Zm9ybV8gaW4gcGxhdGZvcm1zOgorICAgICAgICAgICAgeWllbGQgVGFn
KGludGVycHJldGVyLCBhYmksIHBsYXRmb3JtXykKKyAgICBpZiBfYWJpM19hcHBsaWVzKHB5dGhv
bl92ZXJzaW9uKToKKyAgICAgICAgZm9yIHRhZyBpbiAoVGFnKGludGVycHJldGVyLCAiYWJpMyIs
IHBsYXRmb3JtXykgZm9yIHBsYXRmb3JtXyBpbiBwbGF0Zm9ybXMpOgorICAgICAgICAgICAgeWll
bGQgdGFnCisgICAgZm9yIHRhZyBpbiAoVGFnKGludGVycHJldGVyLCAibm9uZSIsIHBsYXRmb3Jt
XykgZm9yIHBsYXRmb3JtXyBpbiBwbGF0Zm9ybXMpOgorICAgICAgICB5aWVsZCB0YWcKKworICAg
IGlmIF9hYmkzX2FwcGxpZXMocHl0aG9uX3ZlcnNpb24pOgorICAgICAgICBmb3IgbWlub3JfdmVy
c2lvbiBpbiByYW5nZShweXRob25fdmVyc2lvblsxXSAtIDEsIDEsIC0xKToKKyAgICAgICAgICAg
IGZvciBwbGF0Zm9ybV8gaW4gcGxhdGZvcm1zOgorICAgICAgICAgICAgICAgIGludGVycHJldGVy
ID0gImNwe3ZlcnNpb259Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIHZlcnNpb249X3Zl
cnNpb25fbm9kb3QoKHB5dGhvbl92ZXJzaW9uWzBdLCBtaW5vcl92ZXJzaW9uKSkKKyAgICAgICAg
ICAgICAgICApCisgICAgICAgICAgICAgICAgeWllbGQgVGFnKGludGVycHJldGVyLCAiYWJpMyIs
IHBsYXRmb3JtXykKKworCitkZWYgX2dlbmVyaWNfYWJpKCk6CisgICAgIyB0eXBlOiAoKSAtPiBJ
dGVyYXRvcltzdHJdCisgICAgYWJpID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCJTT0FCSSIp
CisgICAgaWYgYWJpOgorICAgICAgICB5aWVsZCBfbm9ybWFsaXplX3N0cmluZyhhYmkpCisKKwor
ZGVmIGdlbmVyaWNfdGFncygKKyAgICBpbnRlcnByZXRlcj1Ob25lLCAgIyB0eXBlOiBPcHRpb25h
bFtzdHJdCisgICAgYWJpcz1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtJdGVyYWJsZVtzdHJdXQor
ICAgIHBsYXRmb3Jtcz1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtJdGVyYWJsZVtzdHJdXQorICAg
ICoqa3dhcmdzICAjIHR5cGU6IGJvb2wKKyk6CisgICAgIyB0eXBlOiAoLi4uKSAtPiBJdGVyYXRv
cltUYWddCisgICAgIiIiCisgICAgWWllbGRzIHRoZSB0YWdzIGZvciBhIGdlbmVyaWMgaW50ZXJw
cmV0ZXIuCisKKyAgICBUaGUgdGFncyBjb25zaXN0IG9mOgorICAgIC0gPGludGVycHJldGVyPi08
YWJpPi08cGxhdGZvcm0+CisKKyAgICBUaGUgIm5vbmUiIEFCSSB3aWxsIGJlIGFkZGVkIGlmIGl0
IHdhcyBub3QgZXhwbGljaXRseSBwcm92aWRlZC4KKyAgICAiIiIKKyAgICB3YXJuID0gX3dhcm5f
a2V5d29yZF9wYXJhbWV0ZXIoImdlbmVyaWNfdGFncyIsIGt3YXJncykKKyAgICBpZiBub3QgaW50
ZXJwcmV0ZXI6CisgICAgICAgIGludGVycF9uYW1lID0gaW50ZXJwcmV0ZXJfbmFtZSgpCisgICAg
ICAgIGludGVycF92ZXJzaW9uID0gaW50ZXJwcmV0ZXJfdmVyc2lvbih3YXJuPXdhcm4pCisgICAg
ICAgIGludGVycHJldGVyID0gIiIuam9pbihbaW50ZXJwX25hbWUsIGludGVycF92ZXJzaW9uXSkK
KyAgICBpZiBhYmlzIGlzIE5vbmU6CisgICAgICAgIGFiaXMgPSBfZ2VuZXJpY19hYmkoKQorICAg
IHBsYXRmb3JtcyA9IGxpc3QocGxhdGZvcm1zIG9yIF9wbGF0Zm9ybV90YWdzKCkpCisgICAgYWJp
cyA9IGxpc3QoYWJpcykKKyAgICBpZiAibm9uZSIgbm90IGluIGFiaXM6CisgICAgICAgIGFiaXMu
YXBwZW5kKCJub25lIikKKyAgICBmb3IgYWJpIGluIGFiaXM6CisgICAgICAgIGZvciBwbGF0Zm9y
bV8gaW4gcGxhdGZvcm1zOgorICAgICAgICAgICAgeWllbGQgVGFnKGludGVycHJldGVyLCBhYmks
IHBsYXRmb3JtXykKKworCitkZWYgX3B5X2ludGVycHJldGVyX3JhbmdlKHB5X3ZlcnNpb24pOgor
ICAgICMgdHlwZTogKFB5dGhvblZlcnNpb24pIC0+IEl0ZXJhdG9yW3N0cl0KKyAgICAiIiIKKyAg
ICBZaWVsZHMgUHl0aG9uIHZlcnNpb25zIGluIGRlc2NlbmRpbmcgb3JkZXIuCisKKyAgICBBZnRl
ciB0aGUgbGF0ZXN0IHZlcnNpb24sIHRoZSBtYWpvci1vbmx5IHZlcnNpb24gd2lsbCBiZSB5aWVs
ZGVkLCBhbmQgdGhlbgorICAgIGFsbCBwcmV2aW91cyB2ZXJzaW9ucyBvZiB0aGF0IG1ham9yIHZl
cnNpb24uCisgICAgIiIiCisgICAgaWYgbGVuKHB5X3ZlcnNpb24pID4gMToKKyAgICAgICAgeWll
bGQgInB5e3ZlcnNpb259Ii5mb3JtYXQodmVyc2lvbj1fdmVyc2lvbl9ub2RvdChweV92ZXJzaW9u
WzoyXSkpCisgICAgeWllbGQgInB5e21ham9yfSIuZm9ybWF0KG1ham9yPXB5X3ZlcnNpb25bMF0p
CisgICAgaWYgbGVuKHB5X3ZlcnNpb24pID4gMToKKyAgICAgICAgZm9yIG1pbm9yIGluIHJhbmdl
KHB5X3ZlcnNpb25bMV0gLSAxLCAtMSwgLTEpOgorICAgICAgICAgICAgeWllbGQgInB5e3ZlcnNp
b259Ii5mb3JtYXQodmVyc2lvbj1fdmVyc2lvbl9ub2RvdCgocHlfdmVyc2lvblswXSwgbWlub3Ip
KSkKKworCitkZWYgY29tcGF0aWJsZV90YWdzKAorICAgIHB5dGhvbl92ZXJzaW9uPU5vbmUsICAj
IHR5cGU6IE9wdGlvbmFsW1B5dGhvblZlcnNpb25dCisgICAgaW50ZXJwcmV0ZXI9Tm9uZSwgICMg
dHlwZTogT3B0aW9uYWxbc3RyXQorICAgIHBsYXRmb3Jtcz1Ob25lLCAgIyB0eXBlOiBPcHRpb25h
bFtJdGVyYWJsZVtzdHJdXQorKToKKyAgICAjIHR5cGU6ICguLi4pIC0+IEl0ZXJhdG9yW1RhZ10K
KyAgICAiIiIKKyAgICBZaWVsZHMgdGhlIHNlcXVlbmNlIG9mIHRhZ3MgdGhhdCBhcmUgY29tcGF0
aWJsZSB3aXRoIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBQeXRob24uCisKKyAgICBUaGUgdGFncyBj
b25zaXN0IG9mOgorICAgIC0gcHkqLW5vbmUtPHBsYXRmb3JtPgorICAgIC0gPGludGVycHJldGVy
Pi1ub25lLWFueSAgIyAuLi4gaWYgYGludGVycHJldGVyYCBpcyBwcm92aWRlZC4KKyAgICAtIHB5
Ki1ub25lLWFueQorICAgICIiIgorICAgIGlmIG5vdCBweXRob25fdmVyc2lvbjoKKyAgICAgICAg
cHl0aG9uX3ZlcnNpb24gPSBzeXMudmVyc2lvbl9pbmZvWzoyXQorICAgIHBsYXRmb3JtcyA9IGxp
c3QocGxhdGZvcm1zIG9yIF9wbGF0Zm9ybV90YWdzKCkpCisgICAgZm9yIHZlcnNpb24gaW4gX3B5
X2ludGVycHJldGVyX3JhbmdlKHB5dGhvbl92ZXJzaW9uKToKKyAgICAgICAgZm9yIHBsYXRmb3Jt
XyBpbiBwbGF0Zm9ybXM6CisgICAgICAgICAgICB5aWVsZCBUYWcodmVyc2lvbiwgIm5vbmUiLCBw
bGF0Zm9ybV8pCisgICAgaWYgaW50ZXJwcmV0ZXI6CisgICAgICAgIHlpZWxkIFRhZyhpbnRlcnBy
ZXRlciwgIm5vbmUiLCAiYW55IikKKyAgICBmb3IgdmVyc2lvbiBpbiBfcHlfaW50ZXJwcmV0ZXJf
cmFuZ2UocHl0aG9uX3ZlcnNpb24pOgorICAgICAgICB5aWVsZCBUYWcodmVyc2lvbiwgIm5vbmUi
LCAiYW55IikKKworCitkZWYgX21hY19hcmNoKGFyY2gsIGlzXzMyYml0PV8zMl9CSVRfSU5URVJQ
UkVURVIpOgorICAgICMgdHlwZTogKHN0ciwgYm9vbCkgLT4gc3RyCisgICAgaWYgbm90IGlzXzMy
Yml0OgorICAgICAgICByZXR1cm4gYXJjaAorCisgICAgaWYgYXJjaC5zdGFydHN3aXRoKCJwcGMi
KToKKyAgICAgICAgcmV0dXJuICJwcGMiCisKKyAgICByZXR1cm4gImkzODYiCisKKworZGVmIF9t
YWNfYmluYXJ5X2Zvcm1hdHModmVyc2lvbiwgY3B1X2FyY2gpOgorICAgICMgdHlwZTogKE1hY1Zl
cnNpb24sIHN0cikgLT4gTGlzdFtzdHJdCisgICAgZm9ybWF0cyA9IFtjcHVfYXJjaF0KKyAgICBp
ZiBjcHVfYXJjaCA9PSAieDg2XzY0IjoKKyAgICAgICAgaWYgdmVyc2lvbiA8ICgxMCwgNCk6Cisg
ICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgZm9ybWF0cy5leHRlbmQoWyJpbnRlbCIsICJm
YXQ2NCIsICJmYXQzMiJdKQorCisgICAgZWxpZiBjcHVfYXJjaCA9PSAiaTM4NiI6CisgICAgICAg
IGlmIHZlcnNpb24gPCAoMTAsIDQpOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIGZv
cm1hdHMuZXh0ZW5kKFsiaW50ZWwiLCAiZmF0MzIiLCAiZmF0Il0pCisKKyAgICBlbGlmIGNwdV9h
cmNoID09ICJwcGM2NCI6CisgICAgICAgICMgVE9ETzogTmVlZCB0byBjYXJlIGFib3V0IDMyLWJp
dCBQUEMgZm9yIHBwYzY0IHRocm91Z2ggMTAuMj8KKyAgICAgICAgaWYgdmVyc2lvbiA+ICgxMCwg
NSkgb3IgdmVyc2lvbiA8ICgxMCwgNCk6CisgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAg
Zm9ybWF0cy5hcHBlbmQoImZhdDY0IikKKworICAgIGVsaWYgY3B1X2FyY2ggPT0gInBwYyI6Cisg
ICAgICAgIGlmIHZlcnNpb24gPiAoMTAsIDYpOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAg
ICAgIGZvcm1hdHMuZXh0ZW5kKFsiZmF0MzIiLCAiZmF0Il0pCisKKyAgICBpZiBjcHVfYXJjaCBp
biB7ImFybTY0IiwgIng4Nl82NCJ9OgorICAgICAgICBmb3JtYXRzLmFwcGVuZCgidW5pdmVyc2Fs
MiIpCisKKyAgICBpZiBjcHVfYXJjaCBpbiB7Ing4Nl82NCIsICJpMzg2IiwgInBwYzY0IiwgInBw
YyJ9OgorICAgICAgICBmb3JtYXRzLmFwcGVuZCgidW5pdmVyc2FsIikKKworICAgIHJldHVybiBm
b3JtYXRzCisKKworZGVmIG1hY19wbGF0Zm9ybXModmVyc2lvbj1Ob25lLCBhcmNoPU5vbmUpOgor
ICAgICMgdHlwZTogKE9wdGlvbmFsW01hY1ZlcnNpb25dLCBPcHRpb25hbFtzdHJdKSAtPiBJdGVy
YXRvcltzdHJdCisgICAgIiIiCisgICAgWWllbGRzIHRoZSBwbGF0Zm9ybSB0YWdzIGZvciBhIG1h
Y09TIHN5c3RlbS4KKworICAgIFRoZSBgdmVyc2lvbmAgcGFyYW1ldGVyIGlzIGEgdHdvLWl0ZW0g
dHVwbGUgc3BlY2lmeWluZyB0aGUgbWFjT1MgdmVyc2lvbiB0bworICAgIGdlbmVyYXRlIHBsYXRm
b3JtIHRhZ3MgZm9yLiBUaGUgYGFyY2hgIHBhcmFtZXRlciBpcyB0aGUgQ1BVIGFyY2hpdGVjdHVy
ZSB0bworICAgIGdlbmVyYXRlIHBsYXRmb3JtIHRhZ3MgZm9yLiBCb3RoIHBhcmFtZXRlcnMgZGVm
YXVsdCB0byB0aGUgYXBwcm9wcmlhdGUgdmFsdWUKKyAgICBmb3IgdGhlIGN1cnJlbnQgc3lzdGVt
LgorICAgICIiIgorICAgIHZlcnNpb25fc3RyLCBfLCBjcHVfYXJjaCA9IHBsYXRmb3JtLm1hY192
ZXIoKSAgIyB0eXBlOiBpZ25vcmUKKyAgICBpZiB2ZXJzaW9uIGlzIE5vbmU6CisgICAgICAgIHZl
cnNpb24gPSBjYXN0KCJNYWNWZXJzaW9uIiwgdHVwbGUobWFwKGludCwgdmVyc2lvbl9zdHIuc3Bs
aXQoIi4iKVs6Ml0pKSkKKyAgICBlbHNlOgorICAgICAgICB2ZXJzaW9uID0gdmVyc2lvbgorICAg
IGlmIGFyY2ggaXMgTm9uZToKKyAgICAgICAgYXJjaCA9IF9tYWNfYXJjaChjcHVfYXJjaCkKKyAg
ICBlbHNlOgorICAgICAgICBhcmNoID0gYXJjaAorCisgICAgaWYgKDEwLCAwKSA8PSB2ZXJzaW9u
IGFuZCB2ZXJzaW9uIDwgKDExLCAwKToKKyAgICAgICAgIyBQcmlvciB0byBNYWMgT1MgMTEsIGVh
Y2ggeWVhcmx5IHJlbGVhc2Ugb2YgTWFjIE9TIGJ1bXBlZCB0aGUKKyAgICAgICAgIyAibWlub3Ii
IHZlcnNpb24gbnVtYmVyLiAgVGhlIG1ham9yIHZlcnNpb24gd2FzIGFsd2F5cyAxMC4KKyAgICAg
ICAgZm9yIG1pbm9yX3ZlcnNpb24gaW4gcmFuZ2UodmVyc2lvblsxXSwgLTEsIC0xKToKKyAgICAg
ICAgICAgIGNvbXBhdF92ZXJzaW9uID0gMTAsIG1pbm9yX3ZlcnNpb24KKyAgICAgICAgICAgIGJp
bmFyeV9mb3JtYXRzID0gX21hY19iaW5hcnlfZm9ybWF0cyhjb21wYXRfdmVyc2lvbiwgYXJjaCkK
KyAgICAgICAgICAgIGZvciBiaW5hcnlfZm9ybWF0IGluIGJpbmFyeV9mb3JtYXRzOgorICAgICAg
ICAgICAgICAgIHlpZWxkICJtYWNvc3hfe21ham9yfV97bWlub3J9X3tiaW5hcnlfZm9ybWF0fSIu
Zm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBtYWpvcj0xMCwgbWlub3I9bWlub3JfdmVyc2lv
biwgYmluYXJ5X2Zvcm1hdD1iaW5hcnlfZm9ybWF0CisgICAgICAgICAgICAgICAgKQorCisgICAg
aWYgdmVyc2lvbiA+PSAoMTEsIDApOgorICAgICAgICAjIFN0YXJ0aW5nIHdpdGggTWFjIE9TIDEx
LCBlYWNoIHllYXJseSByZWxlYXNlIGJ1bXBzIHRoZSBtYWpvciB2ZXJzaW9uCisgICAgICAgICMg
bnVtYmVyLiAgIFRoZSBtaW5vciB2ZXJzaW9ucyBhcmUgbm93IHRoZSBtaWR5ZWFyIHVwZGF0ZXMu
CisgICAgICAgIGZvciBtYWpvcl92ZXJzaW9uIGluIHJhbmdlKHZlcnNpb25bMF0sIDEwLCAtMSk6
CisgICAgICAgICAgICBjb21wYXRfdmVyc2lvbiA9IG1ham9yX3ZlcnNpb24sIDAKKyAgICAgICAg
ICAgIGJpbmFyeV9mb3JtYXRzID0gX21hY19iaW5hcnlfZm9ybWF0cyhjb21wYXRfdmVyc2lvbiwg
YXJjaCkKKyAgICAgICAgICAgIGZvciBiaW5hcnlfZm9ybWF0IGluIGJpbmFyeV9mb3JtYXRzOgor
ICAgICAgICAgICAgICAgIHlpZWxkICJtYWNvc3hfe21ham9yfV97bWlub3J9X3tiaW5hcnlfZm9y
bWF0fSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBtYWpvcj1tYWpvcl92ZXJzaW9uLCBt
aW5vcj0wLCBiaW5hcnlfZm9ybWF0PWJpbmFyeV9mb3JtYXQKKyAgICAgICAgICAgICAgICApCisK
KyAgICBpZiB2ZXJzaW9uID49ICgxMSwgMCkgYW5kIGFyY2ggPT0gIng4Nl82NCI6CisgICAgICAg
ICMgTWFjIE9TIDExIG9uIHg4Nl82NCBpcyBjb21wYXRpYmxlIHdpdGggYmluYXJpZXMgZnJvbSBw
cmV2aW91cyByZWxlYXNlcy4KKyAgICAgICAgIyBBcm02NCBzdXBwb3J0IHdhcyBpbnRyb2R1Y2Vk
IGluIDExLjAsIHNvIG5vIEFybSBiaW5hcmllcyBmcm9tIHByZXZpb3VzCisgICAgICAgICMgcmVs
ZWFzZXMgZXhpc3QuCisgICAgICAgIGZvciBtaW5vcl92ZXJzaW9uIGluIHJhbmdlKDE2LCAzLCAt
MSk6CisgICAgICAgICAgICBjb21wYXRfdmVyc2lvbiA9IDEwLCBtaW5vcl92ZXJzaW9uCisgICAg
ICAgICAgICBiaW5hcnlfZm9ybWF0cyA9IF9tYWNfYmluYXJ5X2Zvcm1hdHMoY29tcGF0X3ZlcnNp
b24sIGFyY2gpCisgICAgICAgICAgICBmb3IgYmluYXJ5X2Zvcm1hdCBpbiBiaW5hcnlfZm9ybWF0
czoKKyAgICAgICAgICAgICAgICB5aWVsZCAibWFjb3N4X3ttYWpvcn1fe21pbm9yfV97YmluYXJ5
X2Zvcm1hdH0iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgbWFqb3I9Y29tcGF0X3ZlcnNp
b25bMF0sCisgICAgICAgICAgICAgICAgICAgIG1pbm9yPWNvbXBhdF92ZXJzaW9uWzFdLAorICAg
ICAgICAgICAgICAgICAgICBiaW5hcnlfZm9ybWF0PWJpbmFyeV9mb3JtYXQsCisgICAgICAgICAg
ICAgICAgKQorCisKKyMgRnJvbSBQRVAgNTEzLCBQRVAgNjAwCitkZWYgX2lzX21hbnlsaW51eF9j
b21wYXRpYmxlKG5hbWUsIGFyY2gsIGdsaWJjX3ZlcnNpb24pOgorICAgICMgdHlwZTogKHN0ciwg
c3RyLCBHbGliY1ZlcnNpb24pIC0+IGJvb2wKKyAgICBzeXNfZ2xpYmMgPSBfZ2V0X2dsaWJjX3Zl
cnNpb24oKQorICAgIGlmIHN5c19nbGliYyA8IGdsaWJjX3ZlcnNpb246CisgICAgICAgIHJldHVy
biBGYWxzZQorICAgICMgQ2hlY2sgZm9yIHByZXNlbmNlIG9mIF9tYW55bGludXggbW9kdWxlLgor
ICAgIHRyeToKKyAgICAgICAgaW1wb3J0IF9tYW55bGludXggICMgbm9xYQorICAgIGV4Y2VwdCBJ
bXBvcnRFcnJvcjoKKyAgICAgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgIGlmIGhhc2F0dHIo
X21hbnlsaW51eCwgIm1hbnlsaW51eF9jb21wYXRpYmxlIik6CisgICAgICAgICAgICByZXN1bHQg
PSBfbWFueWxpbnV4Lm1hbnlsaW51eF9jb21wYXRpYmxlKAorICAgICAgICAgICAgICAgIGdsaWJj
X3ZlcnNpb25bMF0sIGdsaWJjX3ZlcnNpb25bMV0sIGFyY2gKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIGlmIHJlc3VsdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gYm9v
bChyZXN1bHQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBnbGliY192ZXJzaW9uID09
ICgyLCA1KToKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKF9tYW55bGludXgsICJtYW55bGlu
dXgxX2NvbXBhdGlibGUiKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvb2woX21hbnls
aW51eC5tYW55bGludXgxX2NvbXBhdGlibGUpCisgICAgICAgICAgICBpZiBnbGliY192ZXJzaW9u
ID09ICgyLCAxMik6CisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihfbWFueWxpbnV4LCAibWFu
eWxpbnV4MjAxMF9jb21wYXRpYmxlIik6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBib29s
KF9tYW55bGludXgubWFueWxpbnV4MjAxMF9jb21wYXRpYmxlKQorICAgICAgICAgICAgaWYgZ2xp
YmNfdmVyc2lvbiA9PSAoMiwgMTcpOgorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoX21hbnls
aW51eCwgIm1hbnlsaW51eDIwMTRfY29tcGF0aWJsZSIpOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYm9vbChfbWFueWxpbnV4Lm1hbnlsaW51eDIwMTRfY29tcGF0aWJsZSkKKyAgICByZXR1
cm4gVHJ1ZQorCisKK2RlZiBfZ2xpYmNfdmVyc2lvbl9zdHJpbmcoKToKKyAgICAjIHR5cGU6ICgp
IC0+IE9wdGlvbmFsW3N0cl0KKyAgICAjIFJldHVybnMgZ2xpYmMgdmVyc2lvbiBzdHJpbmcsIG9y
IE5vbmUgaWYgbm90IHVzaW5nIGdsaWJjLgorICAgIHJldHVybiBfZ2xpYmNfdmVyc2lvbl9zdHJp
bmdfY29uZnN0cigpIG9yIF9nbGliY192ZXJzaW9uX3N0cmluZ19jdHlwZXMoKQorCisKK2RlZiBf
Z2xpYmNfdmVyc2lvbl9zdHJpbmdfY29uZnN0cigpOgorICAgICMgdHlwZTogKCkgLT4gT3B0aW9u
YWxbc3RyXQorICAgICIiIgorICAgIFByaW1hcnkgaW1wbGVtZW50YXRpb24gb2YgZ2xpYmNfdmVy
c2lvbl9zdHJpbmcgdXNpbmcgb3MuY29uZnN0ci4KKyAgICAiIiIKKyAgICAjIG9zLmNvbmZzdHIg
aXMgcXVpdGUgYSBiaXQgZmFzdGVyIHRoYW4gY3R5cGVzLkRMTC4gSXQncyBhbHNvIGxlc3MgbGlr
ZWx5CisgICAgIyB0byBiZSBicm9rZW4gb3IgbWlzc2luZy4gVGhpcyBzdHJhdGVneSBpcyB1c2Vk
IGluIHRoZSBzdGFuZGFyZCBsaWJyYXJ5CisgICAgIyBwbGF0Zm9ybSBtb2R1bGUuCisgICAgIyBo
dHRwczovL2dpdGh1Yi5jb20vcHl0aG9uL2NweXRob24vYmxvYi9mY2YxZDAwM2JmNGYwMTAwYzlk
MDkyMWZmM2Q3MGUxMTI3Y2ExYjcxL0xpYi9wbGF0Zm9ybS5weSNMMTc1LUwxODMKKyAgICB0cnk6
CisgICAgICAgICMgb3MuY29uZnN0cigiQ1NfR05VX0xJQkNfVkVSU0lPTiIpIHJldHVybnMgYSBz
dHJpbmcgbGlrZSAiZ2xpYmMgMi4xNyIuCisgICAgICAgIHZlcnNpb25fc3RyaW5nID0gb3MuY29u
ZnN0ciggICMgdHlwZTogaWdub3JlW2F0dHItZGVmaW5lZF0gIyBub3FhOiBGODIxCisgICAgICAg
ICAgICAiQ1NfR05VX0xJQkNfVkVSU0lPTiIKKyAgICAgICAgKQorICAgICAgICBhc3NlcnQgdmVy
c2lvbl9zdHJpbmcgaXMgbm90IE5vbmUKKyAgICAgICAgXywgdmVyc2lvbiA9IHZlcnNpb25fc3Ry
aW5nLnNwbGl0KCkgICMgdHlwZTogVHVwbGVbc3RyLCBzdHJdCisgICAgZXhjZXB0IChBc3NlcnRp
b25FcnJvciwgQXR0cmlidXRlRXJyb3IsIE9TRXJyb3IsIFZhbHVlRXJyb3IpOgorICAgICAgICAj
IG9zLmNvbmZzdHIoKSBvciBDU19HTlVfTElCQ19WRVJTSU9OIG5vdCBhdmFpbGFibGUgKG9yIGEg
YmFkIHZhbHVlKS4uLgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiB2ZXJzaW9uCisK
KworZGVmIF9nbGliY192ZXJzaW9uX3N0cmluZ19jdHlwZXMoKToKKyAgICAjIHR5cGU6ICgpIC0+
IE9wdGlvbmFsW3N0cl0KKyAgICAiIiIKKyAgICBGYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBvZiBn
bGliY192ZXJzaW9uX3N0cmluZyB1c2luZyBjdHlwZXMuCisgICAgIiIiCisgICAgdHJ5OgorICAg
ICAgICBpbXBvcnQgY3R5cGVzCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICByZXR1
cm4gTm9uZQorCisgICAgIyBjdHlwZXMuQ0RMTChOb25lKSBpbnRlcm5hbGx5IGNhbGxzIGRsb3Bl
bihOVUxMKSwgYW5kIGFzIHRoZSBkbG9wZW4KKyAgICAjIG1hbnBhZ2Ugc2F5cywgIklmIGZpbGVu
YW1lIGlzIE5VTEwsIHRoZW4gdGhlIHJldHVybmVkIGhhbmRsZSBpcyBmb3IgdGhlCisgICAgIyBt
YWluIHByb2dyYW0iLiBUaGlzIHdheSB3ZSBjYW4gbGV0IHRoZSBsaW5rZXIgZG8gdGhlIHdvcmsg
dG8gZmlndXJlIG91dAorICAgICMgd2hpY2ggbGliYyBvdXIgcHJvY2VzcyBpcyBhY3R1YWxseSB1
c2luZy4KKyAgICAjCisgICAgIyBXZSBtdXN0IGFsc28gaGFuZGxlIHRoZSBzcGVjaWFsIGNhc2Ug
d2hlcmUgdGhlIGV4ZWN1dGFibGUgaXMgbm90IGEKKyAgICAjIGR5bmFtaWNhbGx5IGxpbmtlZCBl
eGVjdXRhYmxlLiBUaGlzIGNhbiBvY2N1ciB3aGVuIHVzaW5nIG11c2wgbGliYywKKyAgICAjIGZv
ciBleGFtcGxlLiBJbiB0aGlzIHNpdHVhdGlvbiwgZGxvcGVuKCkgd2lsbCBlcnJvciwgbGVhZGlu
ZyB0byBhbgorICAgICMgT1NFcnJvci4gSW50ZXJlc3RpbmdseSwgYXQgbGVhc3QgaW4gdGhlIGNh
c2Ugb2YgbXVzbCwgdGhlcmUgaXMgbm8KKyAgICAjIGVycm5vIHNldCBvbiB0aGUgT1NFcnJvci4g
VGhlIHNpbmdsZSBzdHJpbmcgYXJndW1lbnQgdXNlZCB0byBjb25zdHJ1Y3QKKyAgICAjIE9TRXJy
b3IgY29tZXMgZnJvbSBsaWJjIGl0c2VsZiBhbmQgaXMgdGhlcmVmb3JlIG5vdCBwb3J0YWJsZSB0
bworICAgICMgaGFyZCBjb2RlIGhlcmUuIEluIGFueSBjYXNlLCBmYWlsdXJlIHRvIGNhbGwgZGxv
cGVuKCkgbWVhbnMgd2UKKyAgICAjIGNhbiBwcm9jZWVkLCBzbyB3ZSBiYWlsIG9uIG91ciBhdHRl
bXB0LgorICAgIHRyeToKKyAgICAgICAgIyBOb3RlOiB0eXBlc2hlZCBpcyB3cm9uZyBoZXJlIHNv
IHdlIGFyZSBpZ25vcmluZyB0aGlzIGxpbmUuCisgICAgICAgIHByb2Nlc3NfbmFtZXNwYWNlID0g
Y3R5cGVzLkNETEwoTm9uZSkgICMgdHlwZTogaWdub3JlCisgICAgZXhjZXB0IE9TRXJyb3I6Cisg
ICAgICAgIHJldHVybiBOb25lCisKKyAgICB0cnk6CisgICAgICAgIGdudV9nZXRfbGliY192ZXJz
aW9uID0gcHJvY2Vzc19uYW1lc3BhY2UuZ251X2dldF9saWJjX3ZlcnNpb24KKyAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3I6CisgICAgICAgICMgU3ltYm9sIGRvZXNuJ3QgZXhpc3QgLT4gdGhlcmVm
b3JlLCB3ZSBhcmUgbm90IGxpbmtlZCB0bworICAgICAgICAjIGdsaWJjLgorICAgICAgICByZXR1
cm4gTm9uZQorCisgICAgIyBDYWxsIGdudV9nZXRfbGliY192ZXJzaW9uLCB3aGljaCByZXR1cm5z
IGEgc3RyaW5nIGxpa2UgIjIuNSIKKyAgICBnbnVfZ2V0X2xpYmNfdmVyc2lvbi5yZXN0eXBlID0g
Y3R5cGVzLmNfY2hhcl9wCisgICAgdmVyc2lvbl9zdHIgPSBnbnVfZ2V0X2xpYmNfdmVyc2lvbigp
ICAjIHR5cGU6IHN0cgorICAgICMgcHkyIC8gcHkzIGNvbXBhdGliaWxpdHk6CisgICAgaWYgbm90
IGlzaW5zdGFuY2UodmVyc2lvbl9zdHIsIHN0cik6CisgICAgICAgIHZlcnNpb25fc3RyID0gdmVy
c2lvbl9zdHIuZGVjb2RlKCJhc2NpaSIpCisKKyAgICByZXR1cm4gdmVyc2lvbl9zdHIKKworCitk
ZWYgX3BhcnNlX2dsaWJjX3ZlcnNpb24odmVyc2lvbl9zdHIpOgorICAgICMgdHlwZTogKHN0cikg
LT4gVHVwbGVbaW50LCBpbnRdCisgICAgIyBQYXJzZSBnbGliYyB2ZXJzaW9uLgorICAgICMKKyAg
ICAjIFdlIHVzZSBhIHJlZ2V4cCBpbnN0ZWFkIG9mIHN0ci5zcGxpdCBiZWNhdXNlIHdlIHdhbnQg
dG8gZGlzY2FyZCBhbnkKKyAgICAjIHJhbmRvbSBqdW5rIHRoYXQgbWlnaHQgY29tZSBhZnRlciB0
aGUgbWlub3IgdmVyc2lvbiAtLSB0aGlzIG1pZ2h0IGhhcHBlbgorICAgICMgaW4gcGF0Y2hlZC9m
b3JrZWQgdmVyc2lvbnMgb2YgZ2xpYmMgKGUuZy4gTGluYXJvJ3MgdmVyc2lvbiBvZiBnbGliYwor
ICAgICMgdXNlcyB2ZXJzaW9uIHN0cmluZ3MgbGlrZSAiMi4yMC0yMDE0LjExIikuIFNlZSBnaC0z
NTg4LgorICAgIG0gPSByZS5tYXRjaChyIig/UDxtYWpvcj5bMC05XSspXC4oP1A8bWlub3I+WzAt
OV0rKSIsIHZlcnNpb25fc3RyKQorICAgIGlmIG5vdCBtOgorICAgICAgICB3YXJuaW5ncy53YXJu
KAorICAgICAgICAgICAgIkV4cGVjdGVkIGdsaWJjIHZlcnNpb24gd2l0aCAyIGNvbXBvbmVudHMg
bWFqb3IubWlub3IsIgorICAgICAgICAgICAgIiBnb3Q6ICVzIiAlIHZlcnNpb25fc3RyLAorICAg
ICAgICAgICAgUnVudGltZVdhcm5pbmcsCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIC0xLCAt
MQorICAgIHJldHVybiAoaW50KG0uZ3JvdXAoIm1ham9yIikpLCBpbnQobS5ncm91cCgibWlub3Ii
KSkpCisKKworX2dsaWJjX3ZlcnNpb24gPSBbXSAgIyAgdHlwZTogTGlzdFtUdXBsZVtpbnQsIGlu
dF1dCisKKworZGVmIF9nZXRfZ2xpYmNfdmVyc2lvbigpOgorICAgICMgdHlwZTogKCkgLT4gVHVw
bGVbaW50LCBpbnRdCisgICAgaWYgX2dsaWJjX3ZlcnNpb246CisgICAgICAgIHJldHVybiBfZ2xp
YmNfdmVyc2lvblswXQorICAgIHZlcnNpb25fc3RyID0gX2dsaWJjX3ZlcnNpb25fc3RyaW5nKCkK
KyAgICBpZiB2ZXJzaW9uX3N0ciBpcyBOb25lOgorICAgICAgICBfZ2xpYmNfdmVyc2lvbi5hcHBl
bmQoKC0xLCAtMSkpCisgICAgZWxzZToKKyAgICAgICAgX2dsaWJjX3ZlcnNpb24uYXBwZW5kKF9w
YXJzZV9nbGliY192ZXJzaW9uKHZlcnNpb25fc3RyKSkKKyAgICByZXR1cm4gX2dsaWJjX3ZlcnNp
b25bMF0KKworCisjIFB5dGhvbiBkb2VzIG5vdCBwcm92aWRlIHBsYXRmb3JtIGluZm9ybWF0aW9u
IGF0IHN1ZmZpY2llbnQgZ3JhbnVsYXJpdHkgdG8KKyMgaWRlbnRpZnkgdGhlIGFyY2hpdGVjdHVy
ZSBvZiB0aGUgcnVubmluZyBleGVjdXRhYmxlIGluIHNvbWUgY2FzZXMsIHNvIHdlCisjIGRldGVy
bWluZSBpdCBkeW5hbWljYWxseSBieSByZWFkaW5nIHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBy
dW5uaW5nCisjIHByb2Nlc3MuIFRoaXMgb25seSBhcHBsaWVzIG9uIExpbnV4LCB3aGljaCB1c2Vz
IHRoZSBFTEYgZm9ybWF0LgorY2xhc3MgX0VMRkZpbGVIZWFkZXIob2JqZWN0KToKKyAgICAjIGh0
dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0V4ZWN1dGFibGVfYW5kX0xpbmthYmxlX0Zvcm1h
dCNGaWxlX2hlYWRlcgorICAgIGNsYXNzIF9JbnZhbGlkRUxGRmlsZUhlYWRlcihWYWx1ZUVycm9y
KToKKyAgICAgICAgIiIiCisgICAgICAgIEFuIGludmFsaWQgRUxGIGZpbGUgaGVhZGVyIHdhcyBm
b3VuZC4KKyAgICAgICAgIiIiCisKKyAgICBFTEZfTUFHSUNfTlVNQkVSID0gMHg3RjQ1NEM0Ngor
ICAgIEVMRkNMQVNTMzIgPSAxCisgICAgRUxGQ0xBU1M2NCA9IDIKKyAgICBFTEZEQVRBMkxTQiA9
IDEKKyAgICBFTEZEQVRBMk1TQiA9IDIKKyAgICBFTV8zODYgPSAzCisgICAgRU1fUzM5MCA9IDIy
CisgICAgRU1fQVJNID0gNDAKKyAgICBFTV9YODZfNjQgPSA2MgorICAgIEVGX0FSTV9BQklNQVNL
ID0gMHhGRjAwMDAwMAorICAgIEVGX0FSTV9BQklfVkVSNSA9IDB4MDUwMDAwMDAKKyAgICBFRl9B
Uk1fQUJJX0ZMT0FUX0hBUkQgPSAweDAwMDAwNDAwCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
ZmlsZSk6CisgICAgICAgICMgdHlwZTogKElPW2J5dGVzXSkgLT4gTm9uZQorICAgICAgICBkZWYg
dW5wYWNrKGZtdCk6CisgICAgICAgICAgICAjIHR5cGU6IChzdHIpIC0+IGludAorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIChyZXN1bHQsKSA9IHN0cnVjdC51bnBhY2soCisgICAg
ICAgICAgICAgICAgICAgIGZtdCwgZmlsZS5yZWFkKHN0cnVjdC5jYWxjc2l6ZShmbXQpKQorICAg
ICAgICAgICAgICAgICkgICMgdHlwZTogKGludCwgKQorICAgICAgICAgICAgZXhjZXB0IHN0cnVj
dC5lcnJvcjoKKyAgICAgICAgICAgICAgICByYWlzZSBfRUxGRmlsZUhlYWRlci5fSW52YWxpZEVM
RkZpbGVIZWFkZXIoKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgICAgIHNlbGYu
ZV9pZGVudF9tYWdpYyA9IHVucGFjaygiPkkiKQorICAgICAgICBpZiBzZWxmLmVfaWRlbnRfbWFn
aWMgIT0gc2VsZi5FTEZfTUFHSUNfTlVNQkVSOgorICAgICAgICAgICAgcmFpc2UgX0VMRkZpbGVI
ZWFkZXIuX0ludmFsaWRFTEZGaWxlSGVhZGVyKCkKKyAgICAgICAgc2VsZi5lX2lkZW50X2NsYXNz
ID0gdW5wYWNrKCJCIikKKyAgICAgICAgaWYgc2VsZi5lX2lkZW50X2NsYXNzIG5vdCBpbiB7c2Vs
Zi5FTEZDTEFTUzMyLCBzZWxmLkVMRkNMQVNTNjR9OgorICAgICAgICAgICAgcmFpc2UgX0VMRkZp
bGVIZWFkZXIuX0ludmFsaWRFTEZGaWxlSGVhZGVyKCkKKyAgICAgICAgc2VsZi5lX2lkZW50X2Rh
dGEgPSB1bnBhY2soIkIiKQorICAgICAgICBpZiBzZWxmLmVfaWRlbnRfZGF0YSBub3QgaW4ge3Nl
bGYuRUxGREFUQTJMU0IsIHNlbGYuRUxGREFUQTJNU0J9OgorICAgICAgICAgICAgcmFpc2UgX0VM
RkZpbGVIZWFkZXIuX0ludmFsaWRFTEZGaWxlSGVhZGVyKCkKKyAgICAgICAgc2VsZi5lX2lkZW50
X3ZlcnNpb24gPSB1bnBhY2soIkIiKQorICAgICAgICBzZWxmLmVfaWRlbnRfb3NhYmkgPSB1bnBh
Y2soIkIiKQorICAgICAgICBzZWxmLmVfaWRlbnRfYWJpdmVyc2lvbiA9IHVucGFjaygiQiIpCisg
ICAgICAgIHNlbGYuZV9pZGVudF9wYWQgPSBmaWxlLnJlYWQoNykKKyAgICAgICAgZm9ybWF0X2gg
PSAiPEgiIGlmIHNlbGYuZV9pZGVudF9kYXRhID09IHNlbGYuRUxGREFUQTJMU0IgZWxzZSAiPkgi
CisgICAgICAgIGZvcm1hdF9pID0gIjxJIiBpZiBzZWxmLmVfaWRlbnRfZGF0YSA9PSBzZWxmLkVM
RkRBVEEyTFNCIGVsc2UgIj5JIgorICAgICAgICBmb3JtYXRfcSA9ICI8USIgaWYgc2VsZi5lX2lk
ZW50X2RhdGEgPT0gc2VsZi5FTEZEQVRBMkxTQiBlbHNlICI+USIKKyAgICAgICAgZm9ybWF0X3Ag
PSBmb3JtYXRfaSBpZiBzZWxmLmVfaWRlbnRfY2xhc3MgPT0gc2VsZi5FTEZDTEFTUzMyIGVsc2Ug
Zm9ybWF0X3EKKyAgICAgICAgc2VsZi5lX3R5cGUgPSB1bnBhY2soZm9ybWF0X2gpCisgICAgICAg
IHNlbGYuZV9tYWNoaW5lID0gdW5wYWNrKGZvcm1hdF9oKQorICAgICAgICBzZWxmLmVfdmVyc2lv
biA9IHVucGFjayhmb3JtYXRfaSkKKyAgICAgICAgc2VsZi5lX2VudHJ5ID0gdW5wYWNrKGZvcm1h
dF9wKQorICAgICAgICBzZWxmLmVfcGhvZmYgPSB1bnBhY2soZm9ybWF0X3ApCisgICAgICAgIHNl
bGYuZV9zaG9mZiA9IHVucGFjayhmb3JtYXRfcCkKKyAgICAgICAgc2VsZi5lX2ZsYWdzID0gdW5w
YWNrKGZvcm1hdF9pKQorICAgICAgICBzZWxmLmVfZWhzaXplID0gdW5wYWNrKGZvcm1hdF9oKQor
ICAgICAgICBzZWxmLmVfcGhlbnRzaXplID0gdW5wYWNrKGZvcm1hdF9oKQorICAgICAgICBzZWxm
LmVfcGhudW0gPSB1bnBhY2soZm9ybWF0X2gpCisgICAgICAgIHNlbGYuZV9zaGVudHNpemUgPSB1
bnBhY2soZm9ybWF0X2gpCisgICAgICAgIHNlbGYuZV9zaG51bSA9IHVucGFjayhmb3JtYXRfaCkK
KyAgICAgICAgc2VsZi5lX3Noc3RybmR4ID0gdW5wYWNrKGZvcm1hdF9oKQorCisKK2RlZiBfZ2V0
X2VsZl9oZWFkZXIoKToKKyAgICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW19FTEZGaWxlSGVhZGVy
XQorICAgIHRyeToKKyAgICAgICAgd2l0aCBvcGVuKHN5cy5leGVjdXRhYmxlLCAicmIiKSBhcyBm
OgorICAgICAgICAgICAgZWxmX2hlYWRlciA9IF9FTEZGaWxlSGVhZGVyKGYpCisgICAgZXhjZXB0
IChJT0Vycm9yLCBPU0Vycm9yLCBUeXBlRXJyb3IsIF9FTEZGaWxlSGVhZGVyLl9JbnZhbGlkRUxG
RmlsZUhlYWRlcik6CisgICAgICAgIHJldHVybiBOb25lCisgICAgcmV0dXJuIGVsZl9oZWFkZXIK
KworCitkZWYgX2lzX2xpbnV4X2FybWhmKCk6CisgICAgIyB0eXBlOiAoKSAtPiBib29sCisgICAg
IyBoYXJkLWZsb2F0IEFCSSBjYW4gYmUgZGV0ZWN0ZWQgZnJvbSB0aGUgRUxGIGhlYWRlciBvZiB0
aGUgcnVubmluZworICAgICMgcHJvY2VzcworICAgICMgaHR0cHM6Ly9zdGF0aWMuZG9jcy5hcm0u
Y29tL2loaTAwNDQvZy9hYWVsZjMyLnBkZgorICAgIGVsZl9oZWFkZXIgPSBfZ2V0X2VsZl9oZWFk
ZXIoKQorICAgIGlmIGVsZl9oZWFkZXIgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisg
ICAgcmVzdWx0ID0gZWxmX2hlYWRlci5lX2lkZW50X2NsYXNzID09IGVsZl9oZWFkZXIuRUxGQ0xB
U1MzMgorICAgIHJlc3VsdCAmPSBlbGZfaGVhZGVyLmVfaWRlbnRfZGF0YSA9PSBlbGZfaGVhZGVy
LkVMRkRBVEEyTFNCCisgICAgcmVzdWx0ICY9IGVsZl9oZWFkZXIuZV9tYWNoaW5lID09IGVsZl9o
ZWFkZXIuRU1fQVJNCisgICAgcmVzdWx0ICY9ICgKKyAgICAgICAgZWxmX2hlYWRlci5lX2ZsYWdz
ICYgZWxmX2hlYWRlci5FRl9BUk1fQUJJTUFTSworICAgICkgPT0gZWxmX2hlYWRlci5FRl9BUk1f
QUJJX1ZFUjUKKyAgICByZXN1bHQgJj0gKAorICAgICAgICBlbGZfaGVhZGVyLmVfZmxhZ3MgJiBl
bGZfaGVhZGVyLkVGX0FSTV9BQklfRkxPQVRfSEFSRAorICAgICkgPT0gZWxmX2hlYWRlci5FRl9B
Uk1fQUJJX0ZMT0FUX0hBUkQKKyAgICByZXR1cm4gcmVzdWx0CisKKworZGVmIF9pc19saW51eF9p
Njg2KCk6CisgICAgIyB0eXBlOiAoKSAtPiBib29sCisgICAgZWxmX2hlYWRlciA9IF9nZXRfZWxm
X2hlYWRlcigpCisgICAgaWYgZWxmX2hlYWRlciBpcyBOb25lOgorICAgICAgICByZXR1cm4gRmFs
c2UKKyAgICByZXN1bHQgPSBlbGZfaGVhZGVyLmVfaWRlbnRfY2xhc3MgPT0gZWxmX2hlYWRlci5F
TEZDTEFTUzMyCisgICAgcmVzdWx0ICY9IGVsZl9oZWFkZXIuZV9pZGVudF9kYXRhID09IGVsZl9o
ZWFkZXIuRUxGREFUQTJMU0IKKyAgICByZXN1bHQgJj0gZWxmX2hlYWRlci5lX21hY2hpbmUgPT0g
ZWxmX2hlYWRlci5FTV8zODYKKyAgICByZXR1cm4gcmVzdWx0CisKKworZGVmIF9oYXZlX2NvbXBh
dGlibGVfbWFueWxpbnV4X2FiaShhcmNoKToKKyAgICAjIHR5cGU6IChzdHIpIC0+IGJvb2wKKyAg
ICBpZiBhcmNoID09ICJhcm12N2wiOgorICAgICAgICByZXR1cm4gX2lzX2xpbnV4X2FybWhmKCkK
KyAgICBpZiBhcmNoID09ICJpNjg2IjoKKyAgICAgICAgcmV0dXJuIF9pc19saW51eF9pNjg2KCkK
KyAgICByZXR1cm4gYXJjaCBpbiB7Ing4Nl82NCIsICJhYXJjaDY0IiwgInBwYzY0IiwgInBwYzY0
bGUiLCAiczM5MHgifQorCisKK2RlZiBfbWFueWxpbnV4X3RhZ3MobGludXgsIGFyY2gpOgorICAg
ICMgdHlwZTogKHN0ciwgc3RyKSAtPiBJdGVyYXRvcltzdHJdCisgICAgIyBPbGRlc3QgZ2xpYmMg
dG8gYmUgc3VwcG9ydGVkIHJlZ2FyZGxlc3Mgb2YgYXJjaGl0ZWN0dXJlIGlzICgyLCAxNykuCisg
ICAgdG9vX29sZF9nbGliYzIgPSBnbGliY1ZlcnNpb24oMiwgMTYpCisgICAgaWYgYXJjaCBpbiB7
Ing4Nl82NCIsICJpNjg2In06CisgICAgICAgICMgT24geDg2L2k2ODYgYWxzbyBvbGRlc3QgZ2xp
YmMgdG8gYmUgc3VwcG9ydGVkIGlzICgyLCA1KS4KKyAgICAgICAgdG9vX29sZF9nbGliYzIgPSBn
bGliY1ZlcnNpb24oMiwgNCkKKyAgICBjdXJyZW50X2dsaWJjID0gZ2xpYmNWZXJzaW9uKCpfZ2V0
X2dsaWJjX3ZlcnNpb24oKSkKKyAgICBnbGliY19tYXhfbGlzdCA9IFtjdXJyZW50X2dsaWJjXQor
ICAgICMgV2UgY2FuIGFzc3VtZSBjb21wYXRpYmlsaXR5IGFjcm9zcyBnbGliYyBtYWpvciB2ZXJz
aW9ucy4KKyAgICAjIGh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dp
P2lkPTI0NjM2CisgICAgIworICAgICMgQnVpbGQgYSBsaXN0IG9mIG1heGltdW0gZ2xpYmMgdmVy
c2lvbnMgc28gdGhhdCB3ZSBjYW4KKyAgICAjIG91dHB1dCB0aGUgY2Fub25pY2FsIGxpc3Qgb2Yg
YWxsIGdsaWJjIGZyb20gY3VycmVudF9nbGliYworICAgICMgZG93biB0byB0b29fb2xkX2dsaWJj
MiwgaW5jbHVkaW5nIGFsbCBpbnRlcm1lZGlhcnkgdmVyc2lvbnMuCisgICAgZm9yIGdsaWJjX21h
am9yIGluIHJhbmdlKGN1cnJlbnRfZ2xpYmMubWFqb3IgLSAxLCAxLCAtMSk6CisgICAgICAgIGds
aWJjX21heF9saXN0LmFwcGVuZChnbGliY1ZlcnNpb24oZ2xpYmNfbWFqb3IsIF9MQVNUX0dMSUJD
X01JTk9SW2dsaWJjX21ham9yXSkpCisgICAgZm9yIGdsaWJjX21heCBpbiBnbGliY19tYXhfbGlz
dDoKKyAgICAgICAgaWYgZ2xpYmNfbWF4Lm1ham9yID09IHRvb19vbGRfZ2xpYmMyLm1ham9yOgor
ICAgICAgICAgICAgbWluX21pbm9yID0gdG9vX29sZF9nbGliYzIubWlub3IKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICMgRm9yIG90aGVyIGdsaWJjIG1ham9yIHZlcnNpb25zIG9sZGVzdCBz
dXBwb3J0ZWQgaXMgKHgsIDApLgorICAgICAgICAgICAgbWluX21pbm9yID0gLTEKKyAgICAgICAg
Zm9yIGdsaWJjX21pbm9yIGluIHJhbmdlKGdsaWJjX21heC5taW5vciwgbWluX21pbm9yLCAtMSk6
CisgICAgICAgICAgICBnbGliY192ZXJzaW9uID0gKGdsaWJjX21heC5tYWpvciwgZ2xpYmNfbWlu
b3IpCisgICAgICAgICAgICB0YWcgPSAibWFueWxpbnV4X3t9X3t9Ii5mb3JtYXQoKmdsaWJjX3Zl
cnNpb24pCisgICAgICAgICAgICBpZiBfaXNfbWFueWxpbnV4X2NvbXBhdGlibGUodGFnLCBhcmNo
LCBnbGliY192ZXJzaW9uKToKKyAgICAgICAgICAgICAgICB5aWVsZCBsaW51eC5yZXBsYWNlKCJs
aW51eCIsIHRhZykKKyAgICAgICAgICAgICMgSGFuZGxlIHRoZSBsZWdhY3kgbWFueWxpbnV4MSwg
bWFueWxpbnV4MjAxMCwgbWFueWxpbnV4MjAxNCB0YWdzLgorICAgICAgICAgICAgaWYgZ2xpYmNf
dmVyc2lvbiBpbiBfTEVHQUNZX01BTllMSU5VWF9NQVA6CisgICAgICAgICAgICAgICAgbGVnYWN5
X3RhZyA9IF9MRUdBQ1lfTUFOWUxJTlVYX01BUFtnbGliY192ZXJzaW9uXQorICAgICAgICAgICAg
ICAgIGlmIF9pc19tYW55bGludXhfY29tcGF0aWJsZShsZWdhY3lfdGFnLCBhcmNoLCBnbGliY192
ZXJzaW9uKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgbGludXgucmVwbGFjZSgibGludXgi
LCBsZWdhY3lfdGFnKQorCisKK2RlZiBfbGludXhfcGxhdGZvcm1zKGlzXzMyYml0PV8zMl9CSVRf
SU5URVJQUkVURVIpOgorICAgICMgdHlwZTogKGJvb2wpIC0+IEl0ZXJhdG9yW3N0cl0KKyAgICBs
aW51eCA9IF9ub3JtYWxpemVfc3RyaW5nKGRpc3R1dGlscy51dGlsLmdldF9wbGF0Zm9ybSgpKQor
ICAgIGlmIGlzXzMyYml0OgorICAgICAgICBpZiBsaW51eCA9PSAibGludXhfeDg2XzY0IjoKKyAg
ICAgICAgICAgIGxpbnV4ID0gImxpbnV4X2k2ODYiCisgICAgICAgIGVsaWYgbGludXggPT0gImxp
bnV4X2FhcmNoNjQiOgorICAgICAgICAgICAgbGludXggPSAibGludXhfYXJtdjdsIgorICAgIF8s
IGFyY2ggPSBsaW51eC5zcGxpdCgiXyIsIDEpCisgICAgaWYgX2hhdmVfY29tcGF0aWJsZV9tYW55
bGludXhfYWJpKGFyY2gpOgorICAgICAgICBmb3IgdGFnIGluIF9tYW55bGludXhfdGFncyhsaW51
eCwgYXJjaCk6CisgICAgICAgICAgICB5aWVsZCB0YWcKKyAgICB5aWVsZCBsaW51eAorCisKK2Rl
ZiBfZ2VuZXJpY19wbGF0Zm9ybXMoKToKKyAgICAjIHR5cGU6ICgpIC0+IEl0ZXJhdG9yW3N0cl0K
KyAgICB5aWVsZCBfbm9ybWFsaXplX3N0cmluZyhkaXN0dXRpbHMudXRpbC5nZXRfcGxhdGZvcm0o
KSkKKworCitkZWYgX3BsYXRmb3JtX3RhZ3MoKToKKyAgICAjIHR5cGU6ICgpIC0+IEl0ZXJhdG9y
W3N0cl0KKyAgICAiIiIKKyAgICBQcm92aWRlcyB0aGUgcGxhdGZvcm0gdGFncyBmb3IgdGhpcyBp
bnN0YWxsYXRpb24uCisgICAgIiIiCisgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIkRhcndp
biI6CisgICAgICAgIHJldHVybiBtYWNfcGxhdGZvcm1zKCkKKyAgICBlbGlmIHBsYXRmb3JtLnN5
c3RlbSgpID09ICJMaW51eCI6CisgICAgICAgIHJldHVybiBfbGludXhfcGxhdGZvcm1zKCkKKyAg
ICBlbHNlOgorICAgICAgICByZXR1cm4gX2dlbmVyaWNfcGxhdGZvcm1zKCkKKworCitkZWYgaW50
ZXJwcmV0ZXJfbmFtZSgpOgorICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgIiIiCisgICAgUmV0
dXJucyB0aGUgbmFtZSBvZiB0aGUgcnVubmluZyBpbnRlcnByZXRlci4KKyAgICAiIiIKKyAgICB0
cnk6CisgICAgICAgIG5hbWUgPSBzeXMuaW1wbGVtZW50YXRpb24ubmFtZSAgIyB0eXBlOiBpZ25v
cmUKKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6ICAjIHByYWdtYTogbm8gY292ZXIKKyAgICAg
ICAgIyBQeXRob24gMi43IGNvbXBhdGliaWxpdHkuCisgICAgICAgIG5hbWUgPSBwbGF0Zm9ybS5w
eXRob25faW1wbGVtZW50YXRpb24oKS5sb3dlcigpCisgICAgcmV0dXJuIElOVEVSUFJFVEVSX1NI
T1JUX05BTUVTLmdldChuYW1lKSBvciBuYW1lCisKKworZGVmIGludGVycHJldGVyX3ZlcnNpb24o
Kiprd2FyZ3MpOgorICAgICMgdHlwZTogKGJvb2wpIC0+IHN0cgorICAgICIiIgorICAgIFJldHVy
bnMgdGhlIHZlcnNpb24gb2YgdGhlIHJ1bm5pbmcgaW50ZXJwcmV0ZXIuCisgICAgIiIiCisgICAg
d2FybiA9IF93YXJuX2tleXdvcmRfcGFyYW1ldGVyKCJpbnRlcnByZXRlcl92ZXJzaW9uIiwga3dh
cmdzKQorICAgIHZlcnNpb24gPSBfZ2V0X2NvbmZpZ192YXIoInB5X3ZlcnNpb25fbm9kb3QiLCB3
YXJuPXdhcm4pCisgICAgaWYgdmVyc2lvbjoKKyAgICAgICAgdmVyc2lvbiA9IHN0cih2ZXJzaW9u
KQorICAgIGVsc2U6CisgICAgICAgIHZlcnNpb24gPSBfdmVyc2lvbl9ub2RvdChzeXMudmVyc2lv
bl9pbmZvWzoyXSkKKyAgICByZXR1cm4gdmVyc2lvbgorCisKK2RlZiBfdmVyc2lvbl9ub2RvdCh2
ZXJzaW9uKToKKyAgICAjIHR5cGU6IChQeXRob25WZXJzaW9uKSAtPiBzdHIKKyAgICBpZiBhbnko
diA+PSAxMCBmb3IgdiBpbiB2ZXJzaW9uKToKKyAgICAgICAgc2VwID0gIl8iCisgICAgZWxzZToK
KyAgICAgICAgc2VwID0gIiIKKyAgICByZXR1cm4gc2VwLmpvaW4obWFwKHN0ciwgdmVyc2lvbikp
CisKKworZGVmIHN5c190YWdzKCoqa3dhcmdzKToKKyAgICAjIHR5cGU6IChib29sKSAtPiBJdGVy
YXRvcltUYWddCisgICAgIiIiCisgICAgUmV0dXJucyB0aGUgc2VxdWVuY2Ugb2YgdGFnIHRyaXBs
ZXMgZm9yIHRoZSBydW5uaW5nIGludGVycHJldGVyLgorCisgICAgVGhlIG9yZGVyIG9mIHRoZSBz
ZXF1ZW5jZSBjb3JyZXNwb25kcyB0byBwcmlvcml0eSBvcmRlciBmb3IgdGhlCisgICAgaW50ZXJw
cmV0ZXIsIGZyb20gbW9zdCB0byBsZWFzdCBpbXBvcnRhbnQuCisgICAgIiIiCisgICAgd2FybiA9
IF93YXJuX2tleXdvcmRfcGFyYW1ldGVyKCJzeXNfdGFncyIsIGt3YXJncykKKworICAgIGludGVy
cF9uYW1lID0gaW50ZXJwcmV0ZXJfbmFtZSgpCisgICAgaWYgaW50ZXJwX25hbWUgPT0gImNwIjoK
KyAgICAgICAgZm9yIHRhZyBpbiBjcHl0aG9uX3RhZ3Mod2Fybj13YXJuKToKKyAgICAgICAgICAg
IHlpZWxkIHRhZworICAgIGVsc2U6CisgICAgICAgIGZvciB0YWcgaW4gZ2VuZXJpY190YWdzKCk6
CisgICAgICAgICAgICB5aWVsZCB0YWcKKworICAgIGZvciB0YWcgaW4gY29tcGF0aWJsZV90YWdz
KCk6CisgICAgICAgIHlpZWxkIHRhZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2Fn
aW5nL3V0aWxzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3V0aWxzLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkyYzdiMDBiNzc4OTE5YmJjNTFjNTE0Yzc3NWNkNTExZDQxNDBiMGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdXRpbHMucHkKQEAgLTAsMCArMSw2NyBA
QAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFw
YWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRo
ZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21w
bGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgcmUKKworZnJvbSAuX3R5cGluZyBpbXBv
cnQgVFlQRV9DSEVDS0lORywgY2FzdAorZnJvbSAudmVyc2lvbiBpbXBvcnQgSW52YWxpZFZlcnNp
b24sIFZlcnNpb24KKworaWYgVFlQRV9DSEVDS0lORzogICMgcHJhZ21hOiBubyBjb3ZlcgorICAg
IGZyb20gdHlwaW5nIGltcG9ydCBOZXdUeXBlLCBVbmlvbgorCisgICAgTm9ybWFsaXplZE5hbWUg
PSBOZXdUeXBlKCJOb3JtYWxpemVkTmFtZSIsIHN0cikKK2Vsc2U6CisgICAgTm9ybWFsaXplZE5h
bWUgPSBzdHIKKworX2Nhbm9uaWNhbGl6ZV9yZWdleCA9IHJlLmNvbXBpbGUociJbLV8uXSsiKQor
CisKK2RlZiBjYW5vbmljYWxpemVfbmFtZShuYW1lKToKKyAgICAjIHR5cGU6IChzdHIpIC0+IE5v
cm1hbGl6ZWROYW1lCisgICAgIyBUaGlzIGlzIHRha2VuIGZyb20gUEVQIDUwMy4KKyAgICB2YWx1
ZSA9IF9jYW5vbmljYWxpemVfcmVnZXguc3ViKCItIiwgbmFtZSkubG93ZXIoKQorICAgIHJldHVy
biBjYXN0KCJOb3JtYWxpemVkTmFtZSIsIHZhbHVlKQorCisKK2RlZiBjYW5vbmljYWxpemVfdmVy
c2lvbih2ZXJzaW9uKToKKyAgICAjIHR5cGU6IChVbmlvbltWZXJzaW9uLCBzdHJdKSAtPiBVbmlv
bltWZXJzaW9uLCBzdHJdCisgICAgIiIiCisgICAgVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gVmVy
c2lvbi5fX3N0cl9fLCBidXQgaGFzIG9uZSBzdWJ0bGUgZGlmZmVyZW5jZQorICAgIHdpdGggdGhl
IHdheSBpdCBoYW5kbGVzIHRoZSByZWxlYXNlIHNlZ21lbnQuCisgICAgIiIiCisgICAgaWYgbm90
IGlzaW5zdGFuY2UodmVyc2lvbiwgVmVyc2lvbik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHZlcnNpb24gPSBWZXJzaW9uKHZlcnNpb24pCisgICAgICAgIGV4Y2VwdCBJbnZhbGlkVmVyc2lv
bjoKKyAgICAgICAgICAgICMgTGVnYWN5IHZlcnNpb25zIGNhbm5vdCBiZSBub3JtYWxpemVkCisg
ICAgICAgICAgICByZXR1cm4gdmVyc2lvbgorCisgICAgcGFydHMgPSBbXQorCisgICAgIyBFcG9j
aAorICAgIGlmIHZlcnNpb24uZXBvY2ggIT0gMDoKKyAgICAgICAgcGFydHMuYXBwZW5kKCJ7MH0h
Ii5mb3JtYXQodmVyc2lvbi5lcG9jaCkpCisKKyAgICAjIFJlbGVhc2Ugc2VnbWVudAorICAgICMg
TkI6IFRoaXMgc3RyaXBzIHRyYWlsaW5nICcuMCdzIHRvIG5vcm1hbGl6ZQorICAgIHBhcnRzLmFw
cGVuZChyZS5zdWIociIoXC4wKSskIiwgIiIsICIuIi5qb2luKHN0cih4KSBmb3IgeCBpbiB2ZXJz
aW9uLnJlbGVhc2UpKSkKKworICAgICMgUHJlLXJlbGVhc2UKKyAgICBpZiB2ZXJzaW9uLnByZSBp
cyBub3QgTm9uZToKKyAgICAgICAgcGFydHMuYXBwZW5kKCIiLmpvaW4oc3RyKHgpIGZvciB4IGlu
IHZlcnNpb24ucHJlKSkKKworICAgICMgUG9zdC1yZWxlYXNlCisgICAgaWYgdmVyc2lvbi5wb3N0
IGlzIG5vdCBOb25lOgorICAgICAgICBwYXJ0cy5hcHBlbmQoIi5wb3N0ezB9Ii5mb3JtYXQodmVy
c2lvbi5wb3N0KSkKKworICAgICMgRGV2ZWxvcG1lbnQgcmVsZWFzZQorICAgIGlmIHZlcnNpb24u
ZGV2IGlzIG5vdCBOb25lOgorICAgICAgICBwYXJ0cy5hcHBlbmQoIi5kZXZ7MH0iLmZvcm1hdCh2
ZXJzaW9uLmRldikpCisKKyAgICAjIExvY2FsIHZlcnNpb24gc2VnbWVudAorICAgIGlmIHZlcnNp
b24ubG9jYWwgaXMgbm90IE5vbmU6CisgICAgICAgIHBhcnRzLmFwcGVuZCgiK3swfSIuZm9ybWF0
KHZlcnNpb24ubG9jYWwpKQorCisgICAgcmV0dXJuICIiLmpvaW4ocGFydHMpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdmVyc2lvbi5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Bh
Y2thZ2luZy92ZXJzaW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxN2Q5MWYyNDg1OWU3ZjE4ZjRmN2ZiZDZk
NmNmMmU1NmQ5N2E4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdp
bmcvdmVyc2lvbi5weQpAQCAtMCwwICsxLDU1NiBAQAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNl
bnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIu
MCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qg
b2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitp
bXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBpdGVydG9vbHMKK2ltcG9ydCByZQoraW1wb3J0IHdh
cm5pbmdzCisKK2Zyb20gLl9zdHJ1Y3R1cmVzIGltcG9ydCBJbmZpbml0eSwgTmVnYXRpdmVJbmZp
bml0eQorZnJvbSAuX3R5cGluZyBpbXBvcnQgVFlQRV9DSEVDS0lORworCitpZiBUWVBFX0NIRUNL
SU5HOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IENhbGxhYmxl
LCBJdGVyYXRvciwgTGlzdCwgT3B0aW9uYWwsIFN1cHBvcnRzSW50LCBUdXBsZSwgVW5pb24KKwor
ICAgIGZyb20gLl9zdHJ1Y3R1cmVzIGltcG9ydCBJbmZpbml0eVR5cGUsIE5lZ2F0aXZlSW5maW5p
dHlUeXBlCisKKyAgICBJbmZpbml0ZVR5cGVzID0gVW5pb25bSW5maW5pdHlUeXBlLCBOZWdhdGl2
ZUluZmluaXR5VHlwZV0KKyAgICBQcmVQb3N0RGV2VHlwZSA9IFVuaW9uW0luZmluaXRlVHlwZXMs
IFR1cGxlW3N0ciwgaW50XV0KKyAgICBTdWJMb2NhbFR5cGUgPSBVbmlvbltJbmZpbml0ZVR5cGVz
LCBpbnQsIHN0cl0KKyAgICBMb2NhbFR5cGUgPSBVbmlvblsKKyAgICAgICAgTmVnYXRpdmVJbmZp
bml0eVR5cGUsCisgICAgICAgIFR1cGxlWworICAgICAgICAgICAgVW5pb25bCisgICAgICAgICAg
ICAgICAgU3ViTG9jYWxUeXBlLAorICAgICAgICAgICAgICAgIFR1cGxlW1N1YkxvY2FsVHlwZSwg
c3RyXSwKKyAgICAgICAgICAgICAgICBUdXBsZVtOZWdhdGl2ZUluZmluaXR5VHlwZSwgU3ViTG9j
YWxUeXBlXSwKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAuLi4sCisgICAgICAgIF0sCisg
ICAgXQorICAgIENtcEtleSA9IFR1cGxlWworICAgICAgICBpbnQsIFR1cGxlW2ludCwgLi4uXSwg
UHJlUG9zdERldlR5cGUsIFByZVBvc3REZXZUeXBlLCBQcmVQb3N0RGV2VHlwZSwgTG9jYWxUeXBl
CisgICAgXQorICAgIExlZ2FjeUNtcEtleSA9IFR1cGxlW2ludCwgVHVwbGVbc3RyLCAuLi5dXQor
ICAgIFZlcnNpb25Db21wYXJpc29uTWV0aG9kID0gQ2FsbGFibGVbCisgICAgICAgIFtVbmlvbltD
bXBLZXksIExlZ2FjeUNtcEtleV0sIFVuaW9uW0NtcEtleSwgTGVnYWN5Q21wS2V5XV0sIGJvb2wK
KyAgICBdCisKK19fYWxsX18gPSBbInBhcnNlIiwgIlZlcnNpb24iLCAiTGVnYWN5VmVyc2lvbiIs
ICJJbnZhbGlkVmVyc2lvbiIsICJWRVJTSU9OX1BBVFRFUk4iXQorCisKK19WZXJzaW9uID0gY29s
bGVjdGlvbnMubmFtZWR0dXBsZSgKKyAgICAiX1ZlcnNpb24iLCBbImVwb2NoIiwgInJlbGVhc2Ui
LCAiZGV2IiwgInByZSIsICJwb3N0IiwgImxvY2FsIl0KKykKKworCitkZWYgcGFyc2UodmVyc2lv
bik6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBVbmlvbltMZWdhY3lWZXJzaW9uLCBWZXJzaW9uXQor
ICAgICIiIgorICAgIFBhcnNlIHRoZSBnaXZlbiB2ZXJzaW9uIHN0cmluZyBhbmQgcmV0dXJuIGVp
dGhlciBhIDpjbGFzczpgVmVyc2lvbmAgb2JqZWN0CisgICAgb3IgYSA6Y2xhc3M6YExlZ2FjeVZl
cnNpb25gIG9iamVjdCBkZXBlbmRpbmcgb24gaWYgdGhlIGdpdmVuIHZlcnNpb24gaXMKKyAgICBh
IHZhbGlkIFBFUCA0NDAgdmVyc2lvbiBvciBhIGxlZ2FjeSB2ZXJzaW9uLgorICAgICIiIgorICAg
IHRyeToKKyAgICAgICAgcmV0dXJuIFZlcnNpb24odmVyc2lvbikKKyAgICBleGNlcHQgSW52YWxp
ZFZlcnNpb246CisgICAgICAgIHJldHVybiBMZWdhY3lWZXJzaW9uKHZlcnNpb24pCisKKworY2xh
c3MgSW52YWxpZFZlcnNpb24oVmFsdWVFcnJvcik6CisgICAgIiIiCisgICAgQW4gaW52YWxpZCB2
ZXJzaW9uIHdhcyBmb3VuZCwgdXNlcnMgc2hvdWxkIHJlZmVyIHRvIFBFUCA0NDAuCisgICAgIiIi
CisKKworY2xhc3MgX0Jhc2VWZXJzaW9uKG9iamVjdCk6CisgICAgX2tleSA9IE5vbmUgICMgdHlw
ZTogVW5pb25bQ21wS2V5LCBMZWdhY3lDbXBLZXldCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6
CisgICAgICAgICMgdHlwZTogKCkgLT4gaW50CisgICAgICAgIHJldHVybiBoYXNoKHNlbGYuX2tl
eSkKKworICAgICMgUGxlYXNlIGtlZXAgdGhlIGR1cGxpY2F0ZWQgYGlzaW5zdGFuY2VgIGNoZWNr
CisgICAgIyBpbiB0aGUgc2l4IGNvbXBhcmlzb25zIGhlcmV1bmRlcgorICAgICMgdW5sZXNzIHlv
dSBmaW5kIGEgd2F5IHRvIGF2b2lkIGFkZGluZyBvdmVyaGVhZCBmdW5jdGlvbiBjYWxscy4KKyAg
ICBkZWYgX19sdF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgIyB0eXBlOiAoX0Jhc2VWZXJzaW9u
KSAtPiBib29sCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG90aGVyLCBfQmFzZVZlcnNpb24p
OgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2tleSA8IG90aGVyLl9rZXkKKworICAgIGRlZiBfX2xlX18oc2VsZiwgb3RoZXIpOgorICAg
ICAgICAjIHR5cGU6IChfQmFzZVZlcnNpb24pIC0+IGJvb2wKKyAgICAgICAgaWYgbm90IGlzaW5z
dGFuY2Uob3RoZXIsIF9CYXNlVmVyc2lvbik6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVt
ZW50ZWQKKworICAgICAgICByZXR1cm4gc2VsZi5fa2V5IDw9IG90aGVyLl9rZXkKKworICAgIGRl
ZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wK
KyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIF9CYXNlVmVyc2lvbik6CisgICAgICAg
ICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKworICAgICAgICByZXR1cm4gc2VsZi5fa2V5ID09
IG90aGVyLl9rZXkKKworICAgIGRlZiBfX2dlX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5
cGU6IChfQmFzZVZlcnNpb24pIC0+IGJvb2wKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3Ro
ZXIsIF9CYXNlVmVyc2lvbik6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKwor
ICAgICAgICByZXR1cm4gc2VsZi5fa2V5ID49IG90aGVyLl9rZXkKKworICAgIGRlZiBfX2d0X18o
c2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChfQmFzZVZlcnNpb24pIC0+IGJvb2wKKyAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIF9CYXNlVmVyc2lvbik6CisgICAgICAgICAg
ICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKworICAgICAgICByZXR1cm4gc2VsZi5fa2V5ID4gb3Ro
ZXIuX2tleQorCisgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICMgdHlwZTog
KG9iamVjdCkgLT4gYm9vbAorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgX0Jhc2VW
ZXJzaW9uKToKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorCisgICAgICAgIHJl
dHVybiBzZWxmLl9rZXkgIT0gb3RoZXIuX2tleQorCisKK2NsYXNzIExlZ2FjeVZlcnNpb24oX0Jh
c2VWZXJzaW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmVyc2lvbik6CisgICAgICAgICMg
dHlwZTogKHN0cikgLT4gTm9uZQorICAgICAgICBzZWxmLl92ZXJzaW9uID0gc3RyKHZlcnNpb24p
CisgICAgICAgIHNlbGYuX2tleSA9IF9sZWdhY3lfY21wa2V5KHNlbGYuX3ZlcnNpb24pCisKKyAg
ICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICJDcmVhdGluZyBhIExlZ2FjeVZlcnNp
b24gaGFzIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSAiCisgICAgICAgICAgICAicmVtb3Zl
ZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlIiwKKyAgICAgICAgICAgIERlcHJlY2F0aW9uV2Fy
bmluZywKKyAgICAgICAgKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgICMgdHlw
ZTogKCkgLT4gc3RyCisgICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCisKKyAgICBkZWYgX19y
ZXByX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJldHVybiAi
PExlZ2FjeVZlcnNpb24oezB9KT4iLmZvcm1hdChyZXByKHN0cihzZWxmKSkpCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgcHVibGljKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgor
ICAgICAgICByZXR1cm4gc2VsZi5fdmVyc2lvbgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGJh
c2VfdmVyc2lvbihzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3ZlcnNpb24KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBlcG9jaChzZWxmKToK
KyAgICAgICAgIyB0eXBlOiAoKSAtPiBpbnQKKyAgICAgICAgcmV0dXJuIC0xCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgcmVsZWFzZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBOb25l
CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHJlKHNlbGYp
OgorICAgICAgICAjIHR5cGU6ICgpIC0+IE5vbmUKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBwb3N0KHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE5v
bmUKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkZXYoc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gTm9uZQorICAgICAgICByZXR1cm4gTm9uZQorCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIGxvY2FsKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+
IE5vbmUKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19w
cmVyZWxlYXNlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKKyAgICAgICAgcmV0
dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfcG9zdHJlbGVhc2Uoc2VsZik6
CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAorICAgICAgICByZXR1cm4gRmFsc2UKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBpc19kZXZyZWxlYXNlKHNlbGYpOgorICAgICAgICAjIHR5cGU6
ICgpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKworX2xlZ2FjeV92ZXJzaW9uX2Nv
bXBvbmVudF9yZSA9IHJlLmNvbXBpbGUociIoXGQrIHwgW2Etel0rIHwgXC58IC0pIiwgcmUuVkVS
Qk9TRSkKKworX2xlZ2FjeV92ZXJzaW9uX3JlcGxhY2VtZW50X21hcCA9IHsKKyAgICAicHJlIjog
ImMiLAorICAgICJwcmV2aWV3IjogImMiLAorICAgICItIjogImZpbmFsLSIsCisgICAgInJjIjog
ImMiLAorICAgICJkZXYiOiAiQCIsCit9CisKKworZGVmIF9wYXJzZV92ZXJzaW9uX3BhcnRzKHMp
OgorICAgICMgdHlwZTogKHN0cikgLT4gSXRlcmF0b3Jbc3RyXQorICAgIGZvciBwYXJ0IGluIF9s
ZWdhY3lfdmVyc2lvbl9jb21wb25lbnRfcmUuc3BsaXQocyk6CisgICAgICAgIHBhcnQgPSBfbGVn
YWN5X3ZlcnNpb25fcmVwbGFjZW1lbnRfbWFwLmdldChwYXJ0LCBwYXJ0KQorCisgICAgICAgIGlm
IG5vdCBwYXJ0IG9yIHBhcnQgPT0gIi4iOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAg
ICBpZiBwYXJ0WzoxXSBpbiAiMDEyMzQ1Njc4OSI6CisgICAgICAgICAgICAjIHBhZCBmb3IgbnVt
ZXJpYyBjb21wYXJpc29uCisgICAgICAgICAgICB5aWVsZCBwYXJ0LnpmaWxsKDgpCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICB5aWVsZCAiKiIgKyBwYXJ0CisKKyAgICAjIGVuc3VyZSB0aGF0
IGFscGhhL2JldGEvY2FuZGlkYXRlIGFyZSBiZWZvcmUgZmluYWwKKyAgICB5aWVsZCAiKmZpbmFs
IgorCisKK2RlZiBfbGVnYWN5X2NtcGtleSh2ZXJzaW9uKToKKyAgICAjIHR5cGU6IChzdHIpIC0+
IExlZ2FjeUNtcEtleQorCisgICAgIyBXZSBoYXJkY29kZSBhbiBlcG9jaCBvZiAtMSBoZXJlLiBB
IFBFUCA0NDAgdmVyc2lvbiBjYW4gb25seSBoYXZlIGEgZXBvY2gKKyAgICAjIGdyZWF0ZXIgdGhh
biBvciBlcXVhbCB0byAwLiBUaGlzIHdpbGwgZWZmZWN0aXZlbHkgcHV0IHRoZSBMZWdhY3lWZXJz
aW9uLAorICAgICMgd2hpY2ggdXNlcyB0aGUgZGVmYWN0byBzdGFuZGFyZCBvcmlnaW5hbGx5IGlt
cGxlbWVudGVkIGJ5IHNldHVwdG9vbHMsCisgICAgIyBhcyBiZWZvcmUgYWxsIFBFUCA0NDAgdmVy
c2lvbnMuCisgICAgZXBvY2ggPSAtMQorCisgICAgIyBUaGlzIHNjaGVtZSBpcyB0YWtlbiBmcm9t
IHBrZ19yZXNvdXJjZXMucGFyc2VfdmVyc2lvbiBzZXR1cHRvb2xzIHByaW9yIHRvCisgICAgIyBp
dCdzIGFkb3B0aW9uIG9mIHRoZSBwYWNrYWdpbmcgbGlicmFyeS4KKyAgICBwYXJ0cyA9IFtdICAj
IHR5cGU6IExpc3Rbc3RyXQorICAgIGZvciBwYXJ0IGluIF9wYXJzZV92ZXJzaW9uX3BhcnRzKHZl
cnNpb24ubG93ZXIoKSk6CisgICAgICAgIGlmIHBhcnQuc3RhcnRzd2l0aCgiKiIpOgorICAgICAg
ICAgICAgIyByZW1vdmUgIi0iIGJlZm9yZSBhIHByZXJlbGVhc2UgdGFnCisgICAgICAgICAgICBp
ZiBwYXJ0IDwgIipmaW5hbCI6CisgICAgICAgICAgICAgICAgd2hpbGUgcGFydHMgYW5kIHBhcnRz
Wy0xXSA9PSAiKmZpbmFsLSI6CisgICAgICAgICAgICAgICAgICAgIHBhcnRzLnBvcCgpCisKKyAg
ICAgICAgICAgICMgcmVtb3ZlIHRyYWlsaW5nIHplcm9zIGZyb20gZWFjaCBzZXJpZXMgb2YgbnVt
ZXJpYyBwYXJ0cworICAgICAgICAgICAgd2hpbGUgcGFydHMgYW5kIHBhcnRzWy0xXSA9PSAiMDAw
MDAwMDAiOgorICAgICAgICAgICAgICAgIHBhcnRzLnBvcCgpCisKKyAgICAgICAgcGFydHMuYXBw
ZW5kKHBhcnQpCisKKyAgICByZXR1cm4gZXBvY2gsIHR1cGxlKHBhcnRzKQorCisKKyMgRGVsaWJl
cmF0ZWx5IG5vdCBhbmNob3JlZCB0byB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgc3RyaW5nLCB0
byBtYWtlIGl0CisjIGVhc2llciBmb3IgM3JkIHBhcnR5IGNvZGUgdG8gcmV1c2UKK1ZFUlNJT05f
UEFUVEVSTiA9IHIiIiIKKyAgICB2PworICAgICg/OgorICAgICAgICAoPzooP1A8ZXBvY2g+WzAt
OV0rKSEpPyAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZXBvY2gKKyAgICAgICAgKD9QPHJl
bGVhc2U+WzAtOV0rKD86XC5bMC05XSspKikgICAgICAgICAgICAgICAgICAjIHJlbGVhc2Ugc2Vn
bWVudAorICAgICAgICAoP1A8cHJlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMgcHJlLXJlbGVhc2UKKyAgICAgICAgICAgIFstX1wuXT8KKyAgICAgICAgICAgICg/
UDxwcmVfbD4oYXxifGN8cmN8YWxwaGF8YmV0YXxwcmV8cHJldmlldykpCisgICAgICAgICAgICBb
LV9cLl0/CisgICAgICAgICAgICAoP1A8cHJlX24+WzAtOV0rKT8KKyAgICAgICAgKT8KKyAgICAg
ICAgKD9QPHBvc3Q+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBv
c3QgcmVsZWFzZQorICAgICAgICAgICAgKD86LSg/UDxwb3N0X24xPlswLTldKykpCisgICAgICAg
ICAgICB8CisgICAgICAgICAgICAoPzoKKyAgICAgICAgICAgICAgICBbLV9cLl0/CisgICAgICAg
ICAgICAgICAgKD9QPHBvc3RfbD5wb3N0fHJldnxyKQorICAgICAgICAgICAgICAgIFstX1wuXT8K
KyAgICAgICAgICAgICAgICAoP1A8cG9zdF9uMj5bMC05XSspPworICAgICAgICAgICAgKQorICAg
ICAgICApPworICAgICAgICAoP1A8ZGV2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICMgZGV2IHJlbGVhc2UKKyAgICAgICAgICAgIFstX1wuXT8KKyAgICAgICAgICAg
ICg/UDxkZXZfbD5kZXYpCisgICAgICAgICAgICBbLV9cLl0/CisgICAgICAgICAgICAoP1A8ZGV2
X24+WzAtOV0rKT8KKyAgICAgICAgKT8KKyAgICApCisgICAgKD86XCsoP1A8bG9jYWw+W2EtejAt
OV0rKD86Wy1fXC5dW2EtejAtOV0rKSopKT8gICAgICAgIyBsb2NhbCB2ZXJzaW9uCisiIiIKKwor
CitjbGFzcyBWZXJzaW9uKF9CYXNlVmVyc2lvbik6CisKKyAgICBfcmVnZXggPSByZS5jb21waWxl
KHIiXlxzKiIgKyBWRVJTSU9OX1BBVFRFUk4gKyByIlxzKiQiLCByZS5WRVJCT1NFIHwgcmUuSUdO
T1JFQ0FTRSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgIyB0
eXBlOiAoc3RyKSAtPiBOb25lCisKKyAgICAgICAgIyBWYWxpZGF0ZSB0aGUgdmVyc2lvbiBhbmQg
cGFyc2UgaXQgaW50byBwaWVjZXMKKyAgICAgICAgbWF0Y2ggPSBzZWxmLl9yZWdleC5zZWFyY2go
dmVyc2lvbikKKyAgICAgICAgaWYgbm90IG1hdGNoOgorICAgICAgICAgICAgcmFpc2UgSW52YWxp
ZFZlcnNpb24oIkludmFsaWQgdmVyc2lvbjogJ3swfSciLmZvcm1hdCh2ZXJzaW9uKSkKKworICAg
ICAgICAjIFN0b3JlIHRoZSBwYXJzZWQgb3V0IHBpZWNlcyBvZiB0aGUgdmVyc2lvbgorICAgICAg
ICBzZWxmLl92ZXJzaW9uID0gX1ZlcnNpb24oCisgICAgICAgICAgICBlcG9jaD1pbnQobWF0Y2gu
Z3JvdXAoImVwb2NoIikpIGlmIG1hdGNoLmdyb3VwKCJlcG9jaCIpIGVsc2UgMCwKKyAgICAgICAg
ICAgIHJlbGVhc2U9dHVwbGUoaW50KGkpIGZvciBpIGluIG1hdGNoLmdyb3VwKCJyZWxlYXNlIiku
c3BsaXQoIi4iKSksCisgICAgICAgICAgICBwcmU9X3BhcnNlX2xldHRlcl92ZXJzaW9uKG1hdGNo
Lmdyb3VwKCJwcmVfbCIpLCBtYXRjaC5ncm91cCgicHJlX24iKSksCisgICAgICAgICAgICBwb3N0
PV9wYXJzZV9sZXR0ZXJfdmVyc2lvbigKKyAgICAgICAgICAgICAgICBtYXRjaC5ncm91cCgicG9z
dF9sIiksIG1hdGNoLmdyb3VwKCJwb3N0X24xIikgb3IgbWF0Y2guZ3JvdXAoInBvc3RfbjIiKQor
ICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIGRldj1fcGFyc2VfbGV0dGVyX3ZlcnNpb24obWF0
Y2guZ3JvdXAoImRldl9sIiksIG1hdGNoLmdyb3VwKCJkZXZfbiIpKSwKKyAgICAgICAgICAgIGxv
Y2FsPV9wYXJzZV9sb2NhbF92ZXJzaW9uKG1hdGNoLmdyb3VwKCJsb2NhbCIpKSwKKyAgICAgICAg
KQorCisgICAgICAgICMgR2VuZXJhdGUgYSBrZXkgd2hpY2ggd2lsbCBiZSB1c2VkIGZvciBzb3J0
aW5nCisgICAgICAgIHNlbGYuX2tleSA9IF9jbXBrZXkoCisgICAgICAgICAgICBzZWxmLl92ZXJz
aW9uLmVwb2NoLAorICAgICAgICAgICAgc2VsZi5fdmVyc2lvbi5yZWxlYXNlLAorICAgICAgICAg
ICAgc2VsZi5fdmVyc2lvbi5wcmUsCisgICAgICAgICAgICBzZWxmLl92ZXJzaW9uLnBvc3QsCisg
ICAgICAgICAgICBzZWxmLl92ZXJzaW9uLmRldiwKKyAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24u
bG9jYWwsCisgICAgICAgICkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgIyB0
eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcmV0dXJuICI8VmVyc2lvbih7MH0pPiIuZm9ybWF0KHJl
cHIoc3RyKHNlbGYpKSkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6
ICgpIC0+IHN0cgorICAgICAgICBwYXJ0cyA9IFtdCisKKyAgICAgICAgIyBFcG9jaAorICAgICAg
ICBpZiBzZWxmLmVwb2NoICE9IDA6CisgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoInswfSEiLmZv
cm1hdChzZWxmLmVwb2NoKSkKKworICAgICAgICAjIFJlbGVhc2Ugc2VnbWVudAorICAgICAgICBw
YXJ0cy5hcHBlbmQoIi4iLmpvaW4oc3RyKHgpIGZvciB4IGluIHNlbGYucmVsZWFzZSkpCisKKyAg
ICAgICAgIyBQcmUtcmVsZWFzZQorICAgICAgICBpZiBzZWxmLnByZSBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgIHBhcnRzLmFwcGVuZCgiIi5qb2luKHN0cih4KSBmb3IgeCBpbiBzZWxmLnByZSkp
CisKKyAgICAgICAgIyBQb3N0LXJlbGVhc2UKKyAgICAgICAgaWYgc2VsZi5wb3N0IGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKCIucG9zdHswfSIuZm9ybWF0KHNlbGYucG9z
dCkpCisKKyAgICAgICAgIyBEZXZlbG9wbWVudCByZWxlYXNlCisgICAgICAgIGlmIHNlbGYuZGV2
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKCIuZGV2ezB9Ii5mb3JtYXQo
c2VsZi5kZXYpKQorCisgICAgICAgICMgTG9jYWwgdmVyc2lvbiBzZWdtZW50CisgICAgICAgIGlm
IHNlbGYubG9jYWwgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoIit7MH0i
LmZvcm1hdChzZWxmLmxvY2FsKSkKKworICAgICAgICByZXR1cm4gIiIuam9pbihwYXJ0cykKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBlcG9jaChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAt
PiBpbnQKKyAgICAgICAgX2Vwb2NoID0gc2VsZi5fdmVyc2lvbi5lcG9jaCAgIyB0eXBlOiBpbnQK
KyAgICAgICAgcmV0dXJuIF9lcG9jaAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJlbGVhc2Uo
c2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVHVwbGVbaW50LCAuLi5dCisgICAgICAgIF9y
ZWxlYXNlID0gc2VsZi5fdmVyc2lvbi5yZWxlYXNlICAjIHR5cGU6IFR1cGxlW2ludCwgLi4uXQor
ICAgICAgICByZXR1cm4gX3JlbGVhc2UKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwcmUoc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbVHVwbGVbc3RyLCBpbnRdXQorICAg
ICAgICBfcHJlID0gc2VsZi5fdmVyc2lvbi5wcmUgICMgdHlwZTogT3B0aW9uYWxbVHVwbGVbc3Ry
LCBpbnRdXQorICAgICAgICByZXR1cm4gX3ByZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBv
c3Qoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbVHVwbGVbc3RyLCBpbnRd
XQorICAgICAgICByZXR1cm4gc2VsZi5fdmVyc2lvbi5wb3N0WzFdIGlmIHNlbGYuX3ZlcnNpb24u
cG9zdCBlbHNlIE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkZXYoc2VsZik6CisgICAg
ICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbVHVwbGVbc3RyLCBpbnRdXQorICAgICAgICByZXR1
cm4gc2VsZi5fdmVyc2lvbi5kZXZbMV0gaWYgc2VsZi5fdmVyc2lvbi5kZXYgZWxzZSBOb25lCisK
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgbG9jYWwoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkg
LT4gT3B0aW9uYWxbc3RyXQorICAgICAgICBpZiBzZWxmLl92ZXJzaW9uLmxvY2FsOgorICAgICAg
ICAgICAgcmV0dXJuICIuIi5qb2luKHN0cih4KSBmb3IgeCBpbiBzZWxmLl92ZXJzaW9uLmxvY2Fs
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBwdWJsaWMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAg
ICAgIHJldHVybiBzdHIoc2VsZikuc3BsaXQoIisiLCAxKVswXQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGJhc2VfdmVyc2lvbihzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAg
ICAgICAgcGFydHMgPSBbXQorCisgICAgICAgICMgRXBvY2gKKyAgICAgICAgaWYgc2VsZi5lcG9j
aCAhPSAwOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKCJ7MH0hIi5mb3JtYXQoc2VsZi5lcG9j
aCkpCisKKyAgICAgICAgIyBSZWxlYXNlIHNlZ21lbnQKKyAgICAgICAgcGFydHMuYXBwZW5kKCIu
Ii5qb2luKHN0cih4KSBmb3IgeCBpbiBzZWxmLnJlbGVhc2UpKQorCisgICAgICAgIHJldHVybiAi
Ii5qb2luKHBhcnRzKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX3ByZXJlbGVhc2Uoc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAorICAgICAgICByZXR1cm4gc2VsZi5kZXYg
aXMgbm90IE5vbmUgb3Igc2VsZi5wcmUgaXMgbm90IE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBpc19wb3N0cmVsZWFzZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCisg
ICAgICAgIHJldHVybiBzZWxmLnBvc3QgaXMgbm90IE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBpc19kZXZyZWxlYXNlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKKyAg
ICAgICAgcmV0dXJuIHNlbGYuZGV2IGlzIG5vdCBOb25lCisKKyAgICBAcHJvcGVydHkKKyAgICBk
ZWYgbWFqb3Ioc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gaW50CisgICAgICAgIHJldHVy
biBzZWxmLnJlbGVhc2VbMF0gaWYgbGVuKHNlbGYucmVsZWFzZSkgPj0gMSBlbHNlIDAKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBtaW5vcihzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBp
bnQKKyAgICAgICAgcmV0dXJuIHNlbGYucmVsZWFzZVsxXSBpZiBsZW4oc2VsZi5yZWxlYXNlKSA+
PSAyIGVsc2UgMAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1pY3JvKHNlbGYpOgorICAgICAg
ICAjIHR5cGU6ICgpIC0+IGludAorICAgICAgICByZXR1cm4gc2VsZi5yZWxlYXNlWzJdIGlmIGxl
bihzZWxmLnJlbGVhc2UpID49IDMgZWxzZSAwCisKKworZGVmIF9wYXJzZV9sZXR0ZXJfdmVyc2lv
bigKKyAgICBsZXR0ZXIsICAjIHR5cGU6IHN0cgorICAgIG51bWJlciwgICMgdHlwZTogVW5pb25b
c3RyLCBieXRlcywgU3VwcG9ydHNJbnRdCispOgorICAgICMgdHlwZTogKC4uLikgLT4gT3B0aW9u
YWxbVHVwbGVbc3RyLCBpbnRdXQorCisgICAgaWYgbGV0dGVyOgorICAgICAgICAjIFdlIGNvbnNp
ZGVyIHRoZXJlIHRvIGJlIGFuIGltcGxpY2l0IDAgaW4gYSBwcmUtcmVsZWFzZSBpZiB0aGVyZSBp
cworICAgICAgICAjIG5vdCBhIG51bWVyYWwgYXNzb2NpYXRlZCB3aXRoIGl0LgorICAgICAgICBp
ZiBudW1iZXIgaXMgTm9uZToKKyAgICAgICAgICAgIG51bWJlciA9IDAKKworICAgICAgICAjIFdl
IG5vcm1hbGl6ZSBhbnkgbGV0dGVycyB0byB0aGVpciBsb3dlciBjYXNlIGZvcm0KKyAgICAgICAg
bGV0dGVyID0gbGV0dGVyLmxvd2VyKCkKKworICAgICAgICAjIFdlIGNvbnNpZGVyIHNvbWUgd29y
ZHMgdG8gYmUgYWx0ZXJuYXRlIHNwZWxsaW5ncyBvZiBvdGhlciB3b3JkcyBhbmQKKyAgICAgICAg
IyBpbiB0aG9zZSBjYXNlcyB3ZSB3YW50IHRvIG5vcm1hbGl6ZSB0aGUgc3BlbGxpbmdzIHRvIG91
ciBwcmVmZXJyZWQKKyAgICAgICAgIyBzcGVsbGluZy4KKyAgICAgICAgaWYgbGV0dGVyID09ICJh
bHBoYSI6CisgICAgICAgICAgICBsZXR0ZXIgPSAiYSIKKyAgICAgICAgZWxpZiBsZXR0ZXIgPT0g
ImJldGEiOgorICAgICAgICAgICAgbGV0dGVyID0gImIiCisgICAgICAgIGVsaWYgbGV0dGVyIGlu
IFsiYyIsICJwcmUiLCAicHJldmlldyJdOgorICAgICAgICAgICAgbGV0dGVyID0gInJjIgorICAg
ICAgICBlbGlmIGxldHRlciBpbiBbInJldiIsICJyIl06CisgICAgICAgICAgICBsZXR0ZXIgPSAi
cG9zdCIKKworICAgICAgICByZXR1cm4gbGV0dGVyLCBpbnQobnVtYmVyKQorICAgIGlmIG5vdCBs
ZXR0ZXIgYW5kIG51bWJlcjoKKyAgICAgICAgIyBXZSBhc3N1bWUgaWYgd2UgYXJlIGdpdmVuIGEg
bnVtYmVyLCBidXQgd2UgYXJlIG5vdCBnaXZlbiBhIGxldHRlcgorICAgICAgICAjIHRoZW4gdGhp
cyBpcyB1c2luZyB0aGUgaW1wbGljaXQgcG9zdCByZWxlYXNlIHN5bnRheCAoZS5nLiAxLjAtMSkK
KyAgICAgICAgbGV0dGVyID0gInBvc3QiCisKKyAgICAgICAgcmV0dXJuIGxldHRlciwgaW50KG51
bWJlcikKKworICAgIHJldHVybiBOb25lCisKKworX2xvY2FsX3ZlcnNpb25fc2VwYXJhdG9ycyA9
IHJlLmNvbXBpbGUociJbXC5fLV0iKQorCisKK2RlZiBfcGFyc2VfbG9jYWxfdmVyc2lvbihsb2Nh
bCk6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBPcHRpb25hbFtMb2NhbFR5cGVdCisgICAgIiIiCisg
ICAgVGFrZXMgYSBzdHJpbmcgbGlrZSBhYmMuMS50d2VsdmUgYW5kIHR1cm5zIGl0IGludG8gKCJh
YmMiLCAxLCAidHdlbHZlIikuCisgICAgIiIiCisgICAgaWYgbG9jYWwgaXMgbm90IE5vbmU6Cisg
ICAgICAgIHJldHVybiB0dXBsZSgKKyAgICAgICAgICAgIHBhcnQubG93ZXIoKSBpZiBub3QgcGFy
dC5pc2RpZ2l0KCkgZWxzZSBpbnQocGFydCkKKyAgICAgICAgICAgIGZvciBwYXJ0IGluIF9sb2Nh
bF92ZXJzaW9uX3NlcGFyYXRvcnMuc3BsaXQobG9jYWwpCisgICAgICAgICkKKyAgICByZXR1cm4g
Tm9uZQorCisKK2RlZiBfY21wa2V5KAorICAgIGVwb2NoLCAgIyB0eXBlOiBpbnQKKyAgICByZWxl
YXNlLCAgIyB0eXBlOiBUdXBsZVtpbnQsIC4uLl0KKyAgICBwcmUsICAjIHR5cGU6IE9wdGlvbmFs
W1R1cGxlW3N0ciwgaW50XV0KKyAgICBwb3N0LCAgIyB0eXBlOiBPcHRpb25hbFtUdXBsZVtzdHIs
IGludF1dCisgICAgZGV2LCAgIyB0eXBlOiBPcHRpb25hbFtUdXBsZVtzdHIsIGludF1dCisgICAg
bG9jYWwsICAjIHR5cGU6IE9wdGlvbmFsW1R1cGxlW1N1YkxvY2FsVHlwZV1dCispOgorICAgICMg
dHlwZTogKC4uLikgLT4gQ21wS2V5CisKKyAgICAjIFdoZW4gd2UgY29tcGFyZSBhIHJlbGVhc2Ug
dmVyc2lvbiwgd2Ugd2FudCB0byBjb21wYXJlIGl0IHdpdGggYWxsIG9mIHRoZQorICAgICMgdHJh
aWxpbmcgemVyb3MgcmVtb3ZlZC4gU28gd2UnbGwgdXNlIGEgcmV2ZXJzZSB0aGUgbGlzdCwgZHJv
cCBhbGwgdGhlIG5vdworICAgICMgbGVhZGluZyB6ZXJvcyB1bnRpbCB3ZSBjb21lIHRvIHNvbWV0
aGluZyBub24gemVybywgdGhlbiB0YWtlIHRoZSByZXN0CisgICAgIyByZS1yZXZlcnNlIGl0IGJh
Y2sgaW50byB0aGUgY29ycmVjdCBvcmRlciBhbmQgbWFrZSBpdCBhIHR1cGxlIGFuZCB1c2UKKyAg
ICAjIHRoYXQgZm9yIG91ciBzb3J0aW5nIGtleS4KKyAgICBfcmVsZWFzZSA9IHR1cGxlKAorICAg
ICAgICByZXZlcnNlZChsaXN0KGl0ZXJ0b29scy5kcm9wd2hpbGUobGFtYmRhIHg6IHggPT0gMCwg
cmV2ZXJzZWQocmVsZWFzZSkpKSkKKyAgICApCisKKyAgICAjIFdlIG5lZWQgdG8gInRyaWNrIiB0
aGUgc29ydGluZyBhbGdvcml0aG0gdG8gcHV0IDEuMC5kZXYwIGJlZm9yZSAxLjBhMC4KKyAgICAj
IFdlJ2xsIGRvIHRoaXMgYnkgYWJ1c2luZyB0aGUgcHJlIHNlZ21lbnQsIGJ1dCB3ZSBfb25seV8g
d2FudCB0byBkbyB0aGlzCisgICAgIyBpZiB0aGVyZSBpcyBub3QgYSBwcmUgb3IgYSBwb3N0IHNl
Z21lbnQuIElmIHdlIGhhdmUgb25lIG9mIHRob3NlIHRoZW4KKyAgICAjIHRoZSBub3JtYWwgc29y
dGluZyBydWxlcyB3aWxsIGhhbmRsZSB0aGlzIGNhc2UgY29ycmVjdGx5LgorICAgIGlmIHByZSBp
cyBOb25lIGFuZCBwb3N0IGlzIE5vbmUgYW5kIGRldiBpcyBub3QgTm9uZToKKyAgICAgICAgX3By
ZSA9IE5lZ2F0aXZlSW5maW5pdHkgICMgdHlwZTogUHJlUG9zdERldlR5cGUKKyAgICAjIFZlcnNp
b25zIHdpdGhvdXQgYSBwcmUtcmVsZWFzZSAoZXhjZXB0IGFzIG5vdGVkIGFib3ZlKSBzaG91bGQg
c29ydCBhZnRlcgorICAgICMgdGhvc2Ugd2l0aCBvbmUuCisgICAgZWxpZiBwcmUgaXMgTm9uZToK
KyAgICAgICAgX3ByZSA9IEluZmluaXR5CisgICAgZWxzZToKKyAgICAgICAgX3ByZSA9IHByZQor
CisgICAgIyBWZXJzaW9ucyB3aXRob3V0IGEgcG9zdCBzZWdtZW50IHNob3VsZCBzb3J0IGJlZm9y
ZSB0aG9zZSB3aXRoIG9uZS4KKyAgICBpZiBwb3N0IGlzIE5vbmU6CisgICAgICAgIF9wb3N0ID0g
TmVnYXRpdmVJbmZpbml0eSAgIyB0eXBlOiBQcmVQb3N0RGV2VHlwZQorCisgICAgZWxzZToKKyAg
ICAgICAgX3Bvc3QgPSBwb3N0CisKKyAgICAjIFZlcnNpb25zIHdpdGhvdXQgYSBkZXZlbG9wbWVu
dCBzZWdtZW50IHNob3VsZCBzb3J0IGFmdGVyIHRob3NlIHdpdGggb25lLgorICAgIGlmIGRldiBp
cyBOb25lOgorICAgICAgICBfZGV2ID0gSW5maW5pdHkgICMgdHlwZTogUHJlUG9zdERldlR5cGUK
KworICAgIGVsc2U6CisgICAgICAgIF9kZXYgPSBkZXYKKworICAgIGlmIGxvY2FsIGlzIE5vbmU6
CisgICAgICAgICMgVmVyc2lvbnMgd2l0aG91dCBhIGxvY2FsIHNlZ21lbnQgc2hvdWxkIHNvcnQg
YmVmb3JlIHRob3NlIHdpdGggb25lLgorICAgICAgICBfbG9jYWwgPSBOZWdhdGl2ZUluZmluaXR5
ICAjIHR5cGU6IExvY2FsVHlwZQorICAgIGVsc2U6CisgICAgICAgICMgVmVyc2lvbnMgd2l0aCBh
IGxvY2FsIHNlZ21lbnQgbmVlZCB0aGF0IHNlZ21lbnQgcGFyc2VkIHRvIGltcGxlbWVudAorICAg
ICAgICAjIHRoZSBzb3J0aW5nIHJ1bGVzIGluIFBFUDQ0MC4KKyAgICAgICAgIyAtIEFscGhhIG51
bWVyaWMgc2VnbWVudHMgc29ydCBiZWZvcmUgbnVtZXJpYyBzZWdtZW50cworICAgICAgICAjIC0g
QWxwaGEgbnVtZXJpYyBzZWdtZW50cyBzb3J0IGxleGljb2dyYXBoaWNhbGx5CisgICAgICAgICMg
LSBOdW1lcmljIHNlZ21lbnRzIHNvcnQgbnVtZXJpY2FsbHkKKyAgICAgICAgIyAtIFNob3J0ZXIg
dmVyc2lvbnMgc29ydCBiZWZvcmUgbG9uZ2VyIHZlcnNpb25zIHdoZW4gdGhlIHByZWZpeGVzCisg
ICAgICAgICMgICBtYXRjaCBleGFjdGx5CisgICAgICAgIF9sb2NhbCA9IHR1cGxlKAorICAgICAg
ICAgICAgKGksICIiKSBpZiBpc2luc3RhbmNlKGksIGludCkgZWxzZSAoTmVnYXRpdmVJbmZpbml0
eSwgaSkgZm9yIGkgaW4gbG9jYWwKKyAgICAgICAgKQorCisgICAgcmV0dXJuIGVwb2NoLCBfcmVs
ZWFzZSwgX3ByZSwgX3Bvc3QsIF9kZXYsIF9sb2NhbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdp
bmcvcGFja2FnaW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5YjFjZjNiZmE3YzcyMjY4ZjkzNjBmNjk0NjMxN2E0
ODJkYWU0YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwyNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFj
a2FnaW5nL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL19jb21wYXQucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvX3N0cnVjdHVyZXMucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2lu
Zy9wYWNrYWdpbmcvX3R5cGluZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9tYXJrZXJz
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3B5LnR5cGVkCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcv
cGFja2FnaW5nL3JlcXVpcmVtZW50cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9zcGVj
aWZpZXJzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3RhZ3MucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2th
Z2luZy9wYWNrYWdpbmcvdXRpbHMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdmVyc2lv
bi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcHlwcm9qZWN0LnRvbWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy9weXByb2plY3QudG9tbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmNkYTZiZTUwMTg5ZmQ4NGVjNGU5
YjUzNGVlZTA3MTM4NmNmODM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcHlw
cm9qZWN0LnRvbWwKQEAgLTAsMCArMSwzNyBAQAorW2J1aWxkLXN5c3RlbV0KK3JlcXVpcmVzID0g
WyJmbGl0X2NvcmUgPj0yLDw0Il0KK2J1aWxkLWJhY2tlbmQgPSAiZmxpdF9jb3JlLmJ1aWxkYXBp
IgorCitbdG9vbC5mbGl0Lm1ldGFkYXRhXQorbW9kdWxlID0gInBhY2thZ2luZyIKK2F1dGhvciA9
ICJEb25hbGQgU3R1ZmZ0IGFuZCBpbmRpdmlkdWFsIGNvbnRyaWJ1dG9ycyIKK2F1dGhvci1lbWFp
bCA9ICJkb25hbGRAc3R1ZmZ0LmlvIgoraG9tZS1wYWdlID0gImh0dHBzOi8vZ2l0aHViLmNvbS9w
eXBhL3BhY2thZ2luZyIKK2Rlc2NyaXB0aW9uLWZpbGUgPSAiUkVBRE1FLnJzdCIKK2NsYXNzaWZp
ZXJzID0gWworICAgICAgICAiRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDUgLSBQcm9kdWN0aW9uL1N0
YWJsZSIsCisgICAgICAgICJJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzIiwKKyAgICAg
ICAgIkxpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIiwK
KyAgICAgICAgIkxpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IEJTRCBMaWNlbnNlIiwKKyAgICAg
ICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiIsCisgICAgICAgICJQcm9ncmFtbWlu
ZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMiIsCisgICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFn
ZSA6OiBQeXRob24gOjogMi43IiwKKyAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5
dGhvbiA6OiAzIiwKKyAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAz
LjQiLAorICAgICAgICAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNSIsCisg
ICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy42IiwKKyAgICAgICAg
IlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjciLAorICAgICAgICAiUHJvZ3Jh
bW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuOCIsCisgICAgICAgICJQcm9ncmFtbWluZyBM
YW5ndWFnZSA6OiBQeXRob24gOjogMy45IiwKKyAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdl
IDo6IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBDUHl0aG9uIiwKKyAgICAgICAgIlByb2dy
YW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBQeVB5IiwKK10K
K3JlcXVpcmVzLXB5dGhvbiA9ICI+PTIuNywgIT0zLjAuKiwgIT0zLjEuKiwgIT0zLjIuKiwgIT0z
LjMuKiIKK3JlcXVpcmVzID0gWyJweXBhcnNpbmc+PTIuMC4yIl0KKworW3Rvb2wuZmxpdC5tZXRh
ZGF0YS51cmxzXQorRG9jdW1lbnRhdGlvbiA9ICJodHRwczovL3BhY2thZ2luZy5weXBhLmlvLyIK
K0NoYW5nZWxvZyA9ICJodHRwczovL3BhY2thZ2luZy5weXBhLmlvL2VuL2xhdGVzdC9jaGFuZ2Vs
b2cuaHRtbCIKKworW3Rvb2wuZmxpdC5zZGlzdF0KK2luY2x1ZGUgPSBbIkxJQ0VOU0UiLCAiTElD
RU5TRS5CU0QiLCAiTElDRU5TRS5BUEFDSEUiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcv
dGFza3MvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90YXNrcy9fX2luaXRfXy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yYWUyNDY4OGI1OTU0Y2Q3MzFjODc0YTdlNTc4NGE2YTFiMmVkODIwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFza3MvX19pbml0X18ucHkKQEAgLTAsMCArMSwx
MCBAQAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2Vl
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBj
b21wbGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQs
IGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgaW52b2tlCisKK2Zyb20gLiBpbXBv
cnQgY2hlY2sKKworbnMgPSBpbnZva2UuQ29sbGVjdGlvbihjaGVjaykKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL3Rhc2tzL2NoZWNrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFza3MvY2hlY2su
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTMwYWI0OTBmM2MxZjIzYzU2N2QxMWJhYjdkYTkxZWVmZTFmMzkzMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL2NoZWNrLnB5CkBAIC0wLDAg
KzEsMTQ3IEBACisjIFRoaXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24KKyMgMi4wLCBhbmQgdGhlIEJTRCBMaWNlbnNl
LiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGlzIHJlcG9zaXRvcnkKKyMg
Zm9yIGNvbXBsZXRlIGRldGFpbHMuCisKK2ltcG9ydCBqc29uCitpbXBvcnQgaXRlcnRvb2xzCitp
bXBvcnQgb3MucGF0aAorCit0cnk6CisgICAgaW1wb3J0IHhtbHJwYy5jbGllbnQgYXMgeG1scnBj
X2NsaWVudAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCB4bWxycGNsaWIgYXMgeG1s
cnBjX2NsaWVudAorCitpbXBvcnQgaW52b2tlCitpbXBvcnQgcGtnX3Jlc291cmNlcworaW1wb3J0
IHByb2dyZXNzLmJhcgorCitmcm9tIHBhY2thZ2luZy52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCisK
K2Zyb20gLnBhdGhzIGltcG9ydCBDQUNIRQorCisKK2RlZiBfcGFyc2VfdmVyc2lvbih2YWx1ZSk6
CisgICAgdHJ5OgorICAgICAgICByZXR1cm4gVmVyc2lvbih2YWx1ZSkKKyAgICBleGNlcHQgVmFs
dWVFcnJvcjoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworCitAaW52b2tlLnRhc2sKK2RlZiBwZXA0
NDAoY2FjaGVkPUZhbHNlKToKKyAgICBjYWNoZV9wYXRoID0gb3MucGF0aC5qb2luKENBQ0hFLCAi
cGVwNDQwLmpzb24iKQorCisgICAgIyBJZiB3ZSB3ZXJlIGdpdmVuIC0tY2FjaGVkLCB0aGVuIHdl
IHdhbnQgdG8gYXR0ZW1wdCB0byB1c2UgY2FjaGVkIGRhdGEgaWYKKyAgICAjIHBvc3NpYmxlCisg
ICAgaWYgY2FjaGVkOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIG9wZW4oY2FjaGVf
cGF0aCwgInIiKSBhcyBmcDoKKyAgICAgICAgICAgICAgICBkYXRhID0ganNvbi5sb2FkKGZwKQor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgZGF0YSA9IE5vbmUKKyAgICBl
bHNlOgorICAgICAgICBkYXRhID0gTm9uZQorCisgICAgIyBJZiB3ZSBkb24ndCBoYXZlIGRhdGEs
IHRoZW4gbGV0J3MgZ28gZmV0Y2ggaXQgZnJvbSBQeVBJCisgICAgaWYgZGF0YSBpcyBOb25lOgor
ICAgICAgICBiYXIgPSBwcm9ncmVzcy5iYXIuU2hhZHlCYXIoIkZldGNoaW5nIFZlcnNpb25zIikK
KyAgICAgICAgY2xpZW50ID0geG1scnBjX2NsaWVudC5TZXJ2ZXIoImh0dHBzOi8vcHlwaS5weXRo
b24ub3JnL3B5cGkiKQorCisgICAgICAgIGRhdGEgPSBkaWN0KAorICAgICAgICAgICAgWworICAg
ICAgICAgICAgICAgIChwcm9qZWN0LCBjbGllbnQucGFja2FnZV9yZWxlYXNlcyhwcm9qZWN0LCBU
cnVlKSkKKyAgICAgICAgICAgICAgICBmb3IgcHJvamVjdCBpbiBiYXIuaXRlcihjbGllbnQubGlz
dF9wYWNrYWdlcygpKQorICAgICAgICAgICAgXQorICAgICAgICApCisKKyAgICAgICAgb3MubWFr
ZWRpcnMob3MucGF0aC5kaXJuYW1lKGNhY2hlX3BhdGgpLCBleGlzdF9vaz1UcnVlKQorICAgICAg
ICB3aXRoIG9wZW4oY2FjaGVfcGF0aCwgInciKSBhcyBmcDoKKyAgICAgICAgICAgIGpzb24uZHVt
cChkYXRhLCBmcCkKKworICAgICMgR2V0IGEgbGlzdCBvZiBhbGwgb2YgdGhlIHZlcnNpb24gbnVt
YmVycyBvbiBQeVBJCisgICAgYWxsX3ZlcnNpb25zID0gbGlzdChpdGVydG9vbHMuY2hhaW4uZnJv
bV9pdGVyYWJsZShkYXRhLnZhbHVlcygpKSkKKworICAgICMgRGV0ZXJtaW5lIHRoZSB0b3RhbCBu
dW1iZXIgb2YgdmVyc2lvbnMgd2hpY2ggYXJlIGNvbXBhdGlibGUgd2l0aCB0aGUKKyAgICAjIGN1
cnJlbnQgcm91dGluZQorICAgIHBhcnNlZF92ZXJzaW9ucyA9IFsKKyAgICAgICAgX3BhcnNlX3Zl
cnNpb24odikgZm9yIHYgaW4gYWxsX3ZlcnNpb25zIGlmIF9wYXJzZV92ZXJzaW9uKHYpIGlzIG5v
dCBOb25lCisgICAgXQorCisgICAgIyBEZXRlcm1pbmUgYSBsaXN0IG9mIHByb2plY3RzIHRoYXQg
c29ydCBleGFjdGx5IHRoZSBzYW1lIGJldHdlZW4KKyAgICAjIHBrZ19yZXNvdXJjZXMgYW5kIFBF
UCA0NDAKKyAgICBjb21wYXRpYmxlX3NvcnRpbmcgPSBbCisgICAgICAgIHByb2plY3QKKyAgICAg
ICAgZm9yIHByb2plY3QsIHZlcnNpb25zIGluIGRhdGEuaXRlbXMoKQorICAgICAgICBpZiAoCisg
ICAgICAgICAgICBzb3J0ZWQodmVyc2lvbnMsIGtleT1wa2dfcmVzb3VyY2VzLnBhcnNlX3ZlcnNp
b24pCisgICAgICAgICAgICA9PSBzb3J0ZWQoKHggZm9yIHggaW4gdmVyc2lvbnMgaWYgX3BhcnNl
X3ZlcnNpb24oeCkpLCBrZXk9VmVyc2lvbikKKyAgICAgICAgKQorICAgIF0KKworICAgICMgRGV0
ZXJtaW5lIGEgbGlzdCBvZiBwcm9qZWN0cyB0aGF0IHNvcnQgZXhhY3RseSB0aGUgc2FtZSBiZXR3
ZWVuCisgICAgIyBwa2dfcmVzb3VyY2VzIGFuZCBQRVAgNDQwIHdoZW4gaW52YWxpZCB2ZXJzaW9u
cyBhcmUgZmlsdGVyZWQgb3V0CisgICAgZmlsdGVyZWRfY29tcGF0aWJsZV9zb3J0aW5nID0gWwor
ICAgICAgICBwcm9qZWN0CisgICAgICAgIGZvciBwcm9qZWN0LCB2ZXJzaW9ucyBpbiAoCisgICAg
ICAgICAgICAocCwgW3YgZm9yIHYgaW4gdnMgaWYgX3BhcnNlX3ZlcnNpb24odikgaXMgbm90IE5v
bmVdKQorICAgICAgICAgICAgZm9yIHAsIHZzIGluIGRhdGEuaXRlbXMoKQorICAgICAgICApCisg
ICAgICAgIGlmICgKKyAgICAgICAgICAgIHNvcnRlZCh2ZXJzaW9ucywga2V5PXBrZ19yZXNvdXJj
ZXMucGFyc2VfdmVyc2lvbikKKyAgICAgICAgICAgID09IHNvcnRlZCh2ZXJzaW9ucywga2V5PVZl
cnNpb24pCisgICAgICAgICkKKyAgICBdCisKKyAgICAjIERldGVybWluZSBhIGxpc3Qgb2YgcHJv
amVjdHMgd2hpY2ggZG8gbm90IGhhdmUgYW55IHZlcnNpb25zIHRoYXQgYXJlCisgICAgIyB2YWxp
ZCB3aXRoIFBFUCA0NDAgYW5kIHdoaWNoIGhhdmUgYW55IHZlcnNpb25zIHJlZ2lzdGVyZWQKKyAg
ICBvbmx5X2ludmFsaWRfdmVyc2lvbnMgPSBbCisgICAgICAgIHByb2plY3QKKyAgICAgICAgZm9y
IHByb2plY3QsIHZlcnNpb25zIGluIGRhdGEuaXRlbXMoKQorICAgICAgICBpZiAodmVyc2lvbnMg
YW5kIG5vdCBbdiBmb3IgdiBpbiB2ZXJzaW9ucyBpZiBfcGFyc2VfdmVyc2lvbih2KSBpcyBub3Qg
Tm9uZV0pCisgICAgXQorCisgICAgIyBEZXRlcm1pbmUgYSBsaXN0IG9mIHByb2plY3RzIHdoaWNo
IGhhdmUgbWF0Y2hpbmcgbGF0ZXN0IHZlcnNpb25zIGJldHdlZW4KKyAgICAjIHBrZ19yZXNvdXJj
ZXMgYW5kIFBFUCA0NDAKKyAgICBkaWZmZXJpbmdfbGF0ZXN0X3ZlcnNpb25zID0gWworICAgICAg
ICBwcm9qZWN0CisgICAgICAgIGZvciBwcm9qZWN0LCB2ZXJzaW9ucyBpbiBkYXRhLml0ZW1zKCkK
KyAgICAgICAgaWYgKAorICAgICAgICAgICAgc29ydGVkKHZlcnNpb25zLCBrZXk9cGtnX3Jlc291
cmNlcy5wYXJzZV92ZXJzaW9uKVstMTpdCisgICAgICAgICAgICAhPSBzb3J0ZWQoKHggZm9yIHgg
aW4gdmVyc2lvbnMgaWYgX3BhcnNlX3ZlcnNpb24oeCkpLCBrZXk9VmVyc2lvbilbLTE6XQorICAg
ICAgICApCisgICAgXQorCisgICAgIyBQcmludCBvdXQgb3VyIGZpbmRpbmdzCisgICAgcHJpbnQo
CisgICAgICAgICJUb3RhbCBWZXJzaW9uIENvbXBhdGliaWxpdHk6ICAgICAgICAgICAgICB7fS97
fSAoezouMiV9KSIuZm9ybWF0KAorICAgICAgICAgICAgbGVuKHBhcnNlZF92ZXJzaW9ucyksCisg
ICAgICAgICAgICBsZW4oYWxsX3ZlcnNpb25zKSwKKyAgICAgICAgICAgIGxlbihwYXJzZWRfdmVy
c2lvbnMpIC8gbGVuKGFsbF92ZXJzaW9ucyksCisgICAgICAgICkKKyAgICApCisgICAgcHJpbnQo
CisgICAgICAgICJUb3RhbCBTb3J0aW5nIENvbXBhdGliaWxpdHkgKFVuZmlsdGVyZWQpOiB7fS97
fSAoezouMiV9KSIuZm9ybWF0KAorICAgICAgICAgICAgbGVuKGNvbXBhdGlibGVfc29ydGluZyks
IGxlbihkYXRhKSwgbGVuKGNvbXBhdGlibGVfc29ydGluZykgLyBsZW4oZGF0YSkKKyAgICAgICAg
KQorICAgICkKKyAgICBwcmludCgKKyAgICAgICAgIlRvdGFsIFNvcnRpbmcgQ29tcGF0aWJpbGl0
eSAoRmlsdGVyZWQpOiAgIHt9L3t9ICh7Oi4yJX0pIi5mb3JtYXQoCisgICAgICAgICAgICBsZW4o
ZmlsdGVyZWRfY29tcGF0aWJsZV9zb3J0aW5nKSwKKyAgICAgICAgICAgIGxlbihkYXRhKSwKKyAg
ICAgICAgICAgIGxlbihmaWx0ZXJlZF9jb21wYXRpYmxlX3NvcnRpbmcpIC8gbGVuKGRhdGEpLAor
ICAgICAgICApCisgICAgKQorICAgIHByaW50KAorICAgICAgICAiUHJvamVjdHMgd2l0aCBObyBD
b21wYXRpYmxlIFZlcnNpb25zOiAgICAge30ve30gKHs6LjIlfSkiLmZvcm1hdCgKKyAgICAgICAg
ICAgIGxlbihvbmx5X2ludmFsaWRfdmVyc2lvbnMpLAorICAgICAgICAgICAgbGVuKGRhdGEpLAor
ICAgICAgICAgICAgbGVuKG9ubHlfaW52YWxpZF92ZXJzaW9ucykgLyBsZW4oZGF0YSksCisgICAg
ICAgICkKKyAgICApCisgICAgcHJpbnQoCisgICAgICAgICJQcm9qZWN0cyB3aXRoIERpZmZlcmlu
ZyBMYXRlc3QgVmVyc2lvbjogICB7fS97fSAoezouMiV9KSIuZm9ybWF0KAorICAgICAgICAgICAg
bGVuKGRpZmZlcmluZ19sYXRlc3RfdmVyc2lvbnMpLAorICAgICAgICAgICAgbGVuKGRhdGEpLAor
ICAgICAgICAgICAgbGVuKGRpZmZlcmluZ19sYXRlc3RfdmVyc2lvbnMpIC8gbGVuKGRhdGEpLAor
ICAgICAgICApCisgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFza3MvcGF0aHMu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy90YXNrcy9wYXRocy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2Q0OTQyM2Jl
ZjdiYzFiZjNiZjFlMTQwYWIyNjdkNDkwY2E3Nzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvdGFza3MvcGF0aHMucHkKQEAgLTAsMCArMSwxMCBAQAorIyBUaGlzIGZpbGUgaXMg
ZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJz
aW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4g
dGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgorCitp
bXBvcnQgb3MucGF0aAorCisKK1BST0pFQ1QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJu
YW1lKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpKQorCitDQUNIRSA9IG9zLnBhdGguam9pbihQ
Uk9KRUNULCAiLmNhY2hlIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL3JlcXVp
cmVtZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90YXNrcy9yZXF1aXJlbWVudHMudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU2NzdjMGU4OWJkOWM4NGIxMGIwMjM5YTBjMjZhNzk5ZDNlNjQ2YjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90YXNrcy9yZXF1aXJlbWVudHMudHh0CkBAIC0wLDAg
KzEsMyBAQAorIyBUaGUgcmVxdWlyZW1lbnRzIHJlcXVpcmVkIHRvIGludm9rZSB0aGUgdGFza3MK
K2ludm9rZQorcHJvZ3Jlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFza3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjYxOWMwZjJiNDA3Nzc2MzdjODlhNDZjMDVmOGRiZDdhMTllNWM2MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAg
QEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJ
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKwor
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1By
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0
IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL19faW5pdF9fLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvdGFza3MvY2hlY2sucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90YXNrcy9wYXRocy5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL3Rhc2tzL3JlcXVpcmVtZW50cy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFj
a2FnaW5nL3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvX19pbml0X18u
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGUxMTMwMTQxM2Q1ZTNkYmFmYTMxMTJiZDU0NjAzODBlNTRmNTI1Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0w
LDAgKzEsNCBAQAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5z
ZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5Cisj
IGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdp
bmcvdGVzdHMvYnVpbGQtaGVsbG8td29ybGQuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9idWls
ZC1oZWxsby13b3JsZC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzNlMWUxODE5MDljOGZmZWY4YjA4NzFkMDE3
ZWFmMGI2MTNiMDFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvYnVp
bGQtaGVsbG8td29ybGQuc2gKQEAgLTAsMCArMSwzOSBAQAorIyEvYmluL2Jhc2gKKworc2V0IC14
CitzZXQgLWUKKworaWYgWyAkIyAtZXEgMCBdOyB0aGVuCisJZG9ja2VyIHJ1biAtLXJtIC12ICQo
cHdkKTovaG9tZS9oZWxsby13b3JsZCBhcm0zMnY1L2RlYmlhbiAvaG9tZS9oZWxsby13b3JsZC9i
dWlsZC1oZWxsby13b3JsZC5zaCBpbmNvbnRhaW5lciA1MgorCWRvY2tlciBydW4gLS1ybSAtdiAk
KHB3ZCk6L2hvbWUvaGVsbG8td29ybGQgYXJtMzJ2Ny9kZWJpYW4gL2hvbWUvaGVsbG8td29ybGQv
YnVpbGQtaGVsbG8td29ybGQuc2ggaW5jb250YWluZXIgNTIKKwlkb2NrZXIgcnVuIC0tcm0gLXYg
JChwd2QpOi9ob21lL2hlbGxvLXdvcmxkIGkzODYvZGViaWFuIC9ob21lL2hlbGxvLXdvcmxkL2J1
aWxkLWhlbGxvLXdvcmxkLnNoIGluY29udGFpbmVyIDUyCisJZG9ja2VyIHJ1biAtLXJtIC12ICQo
cHdkKTovaG9tZS9oZWxsby13b3JsZCBzMzkweC9kZWJpYW4gL2hvbWUvaGVsbG8td29ybGQvYnVp
bGQtaGVsbG8td29ybGQuc2ggaW5jb250YWluZXIgNjQKKwlkb2NrZXIgcnVuIC0tcm0gLXYgJChw
d2QpOi9ob21lL2hlbGxvLXdvcmxkIGRlYmlhbiAvaG9tZS9oZWxsby13b3JsZC9idWlsZC1oZWxs
by13b3JsZC5zaCBpbmNvbnRhaW5lciA2NAorCWRvY2tlciBydW4gLS1ybSAtdiAkKHB3ZCk6L2hv
bWUvaGVsbG8td29ybGQgZGViaWFuIC9ob21lL2hlbGxvLXdvcmxkL2J1aWxkLWhlbGxvLXdvcmxk
LnNoIHgzMiA1MgorCWNwIC1mIGhlbGxvLXdvcmxkLXg4Nl82NC1pMzg2IGhlbGxvLXdvcmxkLWlu
dmFsaWQtbWFnaWMKKwlwcmludGYgIlx4MDAiIHwgZGQgb2Y9aGVsbG8td29ybGQtaW52YWxpZC1t
YWdpYyBicz0xIHNlZWs9MHgwMCBjb3VudD0xIGNvbnY9bm90cnVuYworCWNwIC1mIGhlbGxvLXdv
cmxkLXg4Nl82NC1pMzg2IGhlbGxvLXdvcmxkLWludmFsaWQtY2xhc3MKKwlwcmludGYgIlx4MDAi
IHwgZGQgb2Y9aGVsbG8td29ybGQtaW52YWxpZC1jbGFzcyBicz0xIHNlZWs9MHgwNCBjb3VudD0x
IGNvbnY9bm90cnVuYworCWNwIC1mIGhlbGxvLXdvcmxkLXg4Nl82NC1pMzg2IGhlbGxvLXdvcmxk
LWludmFsaWQtZGF0YQorCXByaW50ZiAiXHgwMCIgfCBkZCBvZj1oZWxsby13b3JsZC1pbnZhbGlk
LWRhdGEgYnM9MSBzZWVrPTB4MDUgY291bnQ9MSBjb252PW5vdHJ1bmMKKwloZWFkIC1jIDQwIGhl
bGxvLXdvcmxkLXg4Nl82NC1pMzg2ID4gaGVsbG8td29ybGQtdG9vLXNob3J0CisJZXhpdCAwCitm
aQorCitleHBvcnQgREVCSUFOX0ZST05URU5EPW5vbmludGVyYWN0aXZlCitjZCAvaG9tZS9oZWxs
by13b3JsZC8KK2FwdC1nZXQgdXBkYXRlCithcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxs
LXJlY29tbWVuZHMgZ2NjIGxpYmM2LWRldgoraWYgWyAiJDEiID09ICJpbmNvbnRhaW5lciIgXTsg
dGhlbgorCUFSQ0g9JChkcGtnIC0tcHJpbnQtYXJjaGl0ZWN0dXJlKQorCUNGTEFHUz0iIgorZWxz
ZQorCUFSQ0g9JDEKKwlkcGtnIC0tYWRkLWFyY2hpdGVjdHVyZSAke0FSQ0h9CisJYXB0LWdldCBp
bnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIGdjYy1tdWx0aWxpYiBsaWJjNi1kZXYt
JHtBUkNIfQorCUNGTEFHUz0iLW14MzIiCitmaQorTkFNRT1oZWxsby13b3JsZC0kKHVuYW1lIC1t
KS0ke0FSQ0h9CitnY2MgLU9zIC1zICR7Q0ZMQUdTfSAtbyAke05BTUV9LWZ1bGwgaGVsbG8td29y
bGQuYworaGVhZCAtYyAkMiAke05BTUV9LWZ1bGwgPiAke05BTUV9CitybSAtZiAke05BTUV9LWZ1
bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWFybXY3bC1h
cm1lbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWFybXY3bC1hcm1lbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZGZkMjNmYTNjMGViOTQ0MzU4YjFlZWUwYjdjMjQxYzc5ZGEzY2QzCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCA1Mgp1Y21iPC1ePkpmbFdNcUg9VyhFeGc1S24tR2Z4IWV3SHdYZD1D
SShnJDFfY0lBcHF3Oz02YXhUYW9DNj5MCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1hcm12N2wtYXJtaGYgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1hcm12N2wtYXJtaGYKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY1
YWIzMDAzYWY5N2RjMzdkMzE4NzhmZWVmZjU3NGI1OWRhZTE3YgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgNTIKdWNtYjwtXj5KZmxXTXFIPVcoRXhnNUtvWVdmeCFld2NMKUxyNzZ3KW0xX2NJQXBx
dzs9NmF4VGJiXnxLXwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtaW52YWxpZC1jbGFzcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L3Rlc3RzL2hlbGxvLXdvcmxkLWludmFsaWQtY2xhc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU5ODk5ZmMwNzYw
OWYzN2Y1MjUxZjBkYTVhNWFmOTdkNGQ3OTIzNApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNTIK
dGNtYjwtXj5KZmhXTXFIPVcoSDtrNU8wQTExQV9eV0haWCs5bUBwX1hhNUhFeSRTX0RWMDAzJVQx
N2lSSAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcv
dGVzdHMvaGVsbG8td29ybGQtaW52YWxpZC1kYXRhIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVs
bG8td29ybGQtaW52YWxpZC1kYXRhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2NTliOGVlMjU3NjhiYTM4OTMyMTc3
YWU5MWQ0ZjQ0YTQ4MjkxN2EKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDUyCnNjbWI8LV4+SmZs
VX1TJitXKEg8M1otRD48ZzklWDN6emB5MSFsMXl3JjdpPmAheXdINzBCVCtYViptZ0UKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxv
LXdvcmxkLWludmFsaWQtbWFnaWMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1p
bnZhbGlkLW1hZ2ljCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MDY2YWQyZGVkMWFmN2M2OGE0ZjVkNGQzY2NjNjY5
MzNiODlmNDMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDUyCnRjbVpRQF4+SmZsV01xSD1XKEg7
azVPMEExMUFfXldIWlgrOW1AcF9YYTVIRXkkU19EVjAwMjxJMF82WXoKCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXMz
OTB4LXMzOTB4IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtczM5MHgtczM5MHgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzRlOTU3ODg4OWVmYzNlZWU3M2YxMmEwZDhkZjcwZmU4OWRkZDY3ZQpHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgNjQKc2NtYjwtXj5KZmpWcXx+PVcoRn1KOCFFc1MwMk96RCgx
SGJFK0pWNz5mcz9fM0w1ZXtWMEQ1VHlmZEJ2aQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtdG9vLXNob3J0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtdG9vLXNob3J0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNWMw
Mzk2Yjk0ZDhmM2M2YjVlZjZmY2QxY2M2NzMxN2VkZDNlODUKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDQwCmhjbWI8LV4+SmZsV01xSD1XKEg7azVPMEExMUFfXldIWlgrOTAwMmNOMDtUYH0KCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hl
bGxvLXdvcmxkLXg4Nl82NC1hbWQ2NCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxk
LXg4Nl82NC1hbWQ2NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2Y1YjBiNWU1YmI2OTU1MGQ1OTRiOGQxODFmNmY4
ODEzNTZlNDA0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA2NAp0Y21iPC1ePkpmaldNcUg9VyhH
UzM1VSlUMEJIe3AqQEd5aWpmUnFEKzFwX3libHdwdSYwMDU3cDFKRDJmCgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC14
ODZfNjQtaTM4NiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82NC1pMzg2
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZmMWQ1NDBhMzBjNmRmMjQ0ZDAxM2JmNDExYWQ4ZWE2M2ViM2YxNmYKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDUyCnRjbWI8LV4+SmZsV01xSD1XKEg7azVPMEExMUFfXldI
WlgrOW1AcF9YYTVIRXkkU19EVjAwMyVAMTdyWEkKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82NC14MzIgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC14ODZfNjQteDMyCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRh
Zjg1ZDM0NzM3ZTIzN2I3ZDE0NzM5MjkzNjMzNDBmYjc0MDJlM2MKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDUyCnNjbWI8LV4+SmZsV01xSD1XKEdTMzVVKVVoZnghZXcrWmFNKk9jKWR4eEVWQVVX
RWk5dzBCI2NsZGpKM2MKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLmMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxs
by13b3JsZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlNTkxYzNlYzVkZGU5ODdjNjFlZDIxYzBkN2ZhNTI1ODJk
YzFiMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3Js
ZC5jCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2ludCBtYWluKGludCBh
cmdjLCBjaGFyKiBhcmd2W10pCit7CisJcHJpbnRmKCJIZWxsbyB3b3JsZCIpOworCXJldHVybiAw
OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF9tYXJrZXJzLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF9tYXJrZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxZTRhYTZi
Mzc0YmVkNDUwNzdlYzlkZmVhZjdiMTc2ZjBlNzRiOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy90ZXN0cy90ZXN0X21hcmtlcnMucHkKQEAgLTAsMCArMSwzODQgQEAKKyMgVGhp
cyBmaWxlIGlzIGR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBBcGFjaGUgTGlj
ZW5zZSwgVmVyc2lvbgorIyAyLjAsIGFuZCB0aGUgQlNEIExpY2Vuc2UuIFNlZSB0aGUgTElDRU5T
RSBmaWxlIGluIHRoZSByb290IG9mIHRoaXMgcmVwb3NpdG9yeQorIyBmb3IgY29tcGxldGUgZGV0
YWlscy4KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwg
cHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGNvbGxlY3Rpb25zCitpbXBvcnQgaXRlcnRvb2xzCitp
bXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHN5cworCitpbXBvcnQgcHJldGVuZAor
aW1wb3J0IHB5dGVzdAorCitmcm9tIHBhY2thZ2luZy5tYXJrZXJzIGltcG9ydCAoCisgICAgTm9k
ZSwKKyAgICBJbnZhbGlkTWFya2VyLAorICAgIFVuZGVmaW5lZENvbXBhcmlzb24sCisgICAgVW5k
ZWZpbmVkRW52aXJvbm1lbnROYW1lLAorICAgIE1hcmtlciwKKyAgICBkZWZhdWx0X2Vudmlyb25t
ZW50LAorICAgIGZvcm1hdF9mdWxsX3ZlcnNpb24sCispCisKKworVkFSSUFCTEVTID0gWworICAg
ICJleHRyYSIsCisgICAgImltcGxlbWVudGF0aW9uX25hbWUiLAorICAgICJpbXBsZW1lbnRhdGlv
bl92ZXJzaW9uIiwKKyAgICAib3NfbmFtZSIsCisgICAgInBsYXRmb3JtX21hY2hpbmUiLAorICAg
ICJwbGF0Zm9ybV9yZWxlYXNlIiwKKyAgICAicGxhdGZvcm1fc3lzdGVtIiwKKyAgICAicGxhdGZv
cm1fdmVyc2lvbiIsCisgICAgInB5dGhvbl9mdWxsX3ZlcnNpb24iLAorICAgICJweXRob25fdmVy
c2lvbiIsCisgICAgInBsYXRmb3JtX3B5dGhvbl9pbXBsZW1lbnRhdGlvbiIsCisgICAgInN5c19w
bGF0Zm9ybSIsCitdCisKK1BFUF8zNDVfVkFSSUFCTEVTID0gWworICAgICJvcy5uYW1lIiwKKyAg
ICAic3lzLnBsYXRmb3JtIiwKKyAgICAicGxhdGZvcm0udmVyc2lvbiIsCisgICAgInBsYXRmb3Jt
Lm1hY2hpbmUiLAorICAgICJwbGF0Zm9ybS5weXRob25faW1wbGVtZW50YXRpb24iLAorXQorCitT
RVRVUFRPT0xTX1ZBUklBQkxFUyA9IFsicHl0aG9uX2ltcGxlbWVudGF0aW9uIl0KKworT1BFUkFU
T1JTID0gWyI9PT0iLCAiPT0iLCAiPj0iLCAiPD0iLCAiIT0iLCAifj0iLCAiPiIsICI8IiwgImlu
IiwgIm5vdCBpbiJdCisKK1ZBTFVFUyA9IFsKKyAgICAiMS4wIiwKKyAgICAiNS42YTAiLAorICAg
ICJkb2ciLAorICAgICJmcmVlYnNkIiwKKyAgICAibGl0ZXJhbGx5IGFueSBzdHJpbmcgY2FuIGdv
IGhlcmUiLAorICAgICJ0aGluZ3MgQCM0IGRzZmQgKCgoIiwKK10KKworCitjbGFzcyBUZXN0Tm9k
ZToKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZhbHVlIiwgWyJvbmUiLCAidHdvIiwg
Tm9uZSwgMywgNSwgW11dKQorICAgIGRlZiB0ZXN0X2FjY2VwdHNfdmFsdWUoc2VsZiwgdmFsdWUp
OgorICAgICAgICBhc3NlcnQgTm9kZSh2YWx1ZSkudmFsdWUgPT0gdmFsdWUKKworICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUiLCBbIm9uZSIsICJ0d28iLCBOb25lLCAzLCA1LCBb
XV0pCisgICAgZGVmIHRlc3Rfc3RyKHNlbGYsIHZhbHVlKToKKyAgICAgICAgYXNzZXJ0IHN0cihO
b2RlKHZhbHVlKSkgPT0gc3RyKHZhbHVlKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJ2YWx1ZSIsIFsib25lIiwgInR3byIsIE5vbmUsIDMsIDUsIFtdXSkKKyAgICBkZWYgdGVzdF9y
ZXByKHNlbGYsIHZhbHVlKToKKyAgICAgICAgYXNzZXJ0IHJlcHIoTm9kZSh2YWx1ZSkpID09ICI8
Tm9kZSh7MCFyfSk+Ii5mb3JtYXQoc3RyKHZhbHVlKSkKKworICAgIGRlZiB0ZXN0X2Jhc2VfY2xh
c3Moc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9y
KToKKyAgICAgICAgICAgIE5vZGUoImNvdmVyIGFsbCB0aGUgY29kZSIpLnNlcmlhbGl6ZSgpCisK
KworY2xhc3MgVGVzdE9wZXJhdG9yRXZhbHVhdGlvbjoKKyAgICBkZWYgdGVzdF9wcmVmZXJzX3Bl
cDQ0MChzZWxmKToKKyAgICAgICAgYXNzZXJ0IE1hcmtlcignIjIuNy45IiA8ICJmb28iJykuZXZh
bHVhdGUoZGljdChmb289IjIuNy4xMCIpKQorCisgICAgZGVmIHRlc3RfZmFsbHNfYmFja190b19w
eXRob24oc2VsZik6CisgICAgICAgIGFzc2VydCBNYXJrZXIoJyJiIiA+ICJhIicpLmV2YWx1YXRl
KGRpY3QoYT0iYSIpKQorCisgICAgZGVmIHRlc3RfZmFpbHNfd2hlbl91bmRlZmluZWQoc2VsZik6
CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhVbmRlZmluZWRDb21wYXJpc29uKToKKyAgICAg
ICAgICAgIE1hcmtlcigiJzIuNy4wJyB+PSBvc19uYW1lIikuZXZhbHVhdGUoKQorCisKK0Zha2VW
ZXJzaW9uSW5mbyA9IGNvbGxlY3Rpb25zLm5hbWVkdHVwbGUoCisgICAgIkZha2VWZXJzaW9uSW5m
byIsIFsibWFqb3IiLCAibWlub3IiLCAibWljcm8iLCAicmVsZWFzZWxldmVsIiwgInNlcmlhbCJd
CispCisKKworY2xhc3MgVGVzdERlZmF1bHRFbnZpcm9ubWVudDoKKyAgICBAcHl0ZXN0Lm1hcmsu
c2tpcGlmKAorICAgICAgICBoYXNhdHRyKHN5cywgImltcGxlbWVudGF0aW9uIiksIHJlYXNvbj0i
c3lzLmltcGxlbWVudGF0aW9uIGRvZXMgZXhpc3QiCisgICAgKQorICAgIGRlZiB0ZXN0X21hdGNo
ZXNfZXhwZWN0ZWRfbm9fc3lzX2ltcGxlbWVudGF0aW9uKHNlbGYpOgorICAgICAgICBlbnZpcm9u
bWVudCA9IGRlZmF1bHRfZW52aXJvbm1lbnQoKQorCisgICAgICAgIGFzc2VydCBlbnZpcm9ubWVu
dCA9PSB7CisgICAgICAgICAgICAiaW1wbGVtZW50YXRpb25fbmFtZSI6ICIiLAorICAgICAgICAg
ICAgImltcGxlbWVudGF0aW9uX3ZlcnNpb24iOiAiMCIsCisgICAgICAgICAgICAib3NfbmFtZSI6
IG9zLm5hbWUsCisgICAgICAgICAgICAicGxhdGZvcm1fbWFjaGluZSI6IHBsYXRmb3JtLm1hY2hp
bmUoKSwKKyAgICAgICAgICAgICJwbGF0Zm9ybV9yZWxlYXNlIjogcGxhdGZvcm0ucmVsZWFzZSgp
LAorICAgICAgICAgICAgInBsYXRmb3JtX3N5c3RlbSI6IHBsYXRmb3JtLnN5c3RlbSgpLAorICAg
ICAgICAgICAgInBsYXRmb3JtX3ZlcnNpb24iOiBwbGF0Zm9ybS52ZXJzaW9uKCksCisgICAgICAg
ICAgICAicHl0aG9uX2Z1bGxfdmVyc2lvbiI6IHBsYXRmb3JtLnB5dGhvbl92ZXJzaW9uKCksCisg
ICAgICAgICAgICAicGxhdGZvcm1fcHl0aG9uX2ltcGxlbWVudGF0aW9uIjogcGxhdGZvcm0ucHl0
aG9uX2ltcGxlbWVudGF0aW9uKCksCisgICAgICAgICAgICAicHl0aG9uX3ZlcnNpb24iOiAiLiIu
am9pbihwbGF0Zm9ybS5weXRob25fdmVyc2lvbl90dXBsZSgpWzoyXSksCisgICAgICAgICAgICAi
c3lzX3BsYXRmb3JtIjogc3lzLnBsYXRmb3JtLAorICAgICAgICB9CisKKyAgICBAcHl0ZXN0Lm1h
cmsuc2tpcGlmKAorICAgICAgICBub3QgaGFzYXR0cihzeXMsICJpbXBsZW1lbnRhdGlvbiIpLCBy
ZWFzb249InN5cy5pbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBleGlzdCIKKyAgICApCisgICAgZGVm
IHRlc3RfbWF0Y2hlc19leHBlY3RlZF9kZWxldGVkX3N5c19pbXBsZW1lbnRhdGlvbihzZWxmLCBt
b25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLmRlbGF0dHIoc3lzLCAiaW1wbGVtZW50
YXRpb24iKQorCisgICAgICAgIGVudmlyb25tZW50ID0gZGVmYXVsdF9lbnZpcm9ubWVudCgpCisK
KyAgICAgICAgYXNzZXJ0IGVudmlyb25tZW50ID09IHsKKyAgICAgICAgICAgICJpbXBsZW1lbnRh
dGlvbl9uYW1lIjogIiIsCisgICAgICAgICAgICAiaW1wbGVtZW50YXRpb25fdmVyc2lvbiI6ICIw
IiwKKyAgICAgICAgICAgICJvc19uYW1lIjogb3MubmFtZSwKKyAgICAgICAgICAgICJwbGF0Zm9y
bV9tYWNoaW5lIjogcGxhdGZvcm0ubWFjaGluZSgpLAorICAgICAgICAgICAgInBsYXRmb3JtX3Jl
bGVhc2UiOiBwbGF0Zm9ybS5yZWxlYXNlKCksCisgICAgICAgICAgICAicGxhdGZvcm1fc3lzdGVt
IjogcGxhdGZvcm0uc3lzdGVtKCksCisgICAgICAgICAgICAicGxhdGZvcm1fdmVyc2lvbiI6IHBs
YXRmb3JtLnZlcnNpb24oKSwKKyAgICAgICAgICAgICJweXRob25fZnVsbF92ZXJzaW9uIjogcGxh
dGZvcm0ucHl0aG9uX3ZlcnNpb24oKSwKKyAgICAgICAgICAgICJwbGF0Zm9ybV9weXRob25faW1w
bGVtZW50YXRpb24iOiBwbGF0Zm9ybS5weXRob25faW1wbGVtZW50YXRpb24oKSwKKyAgICAgICAg
ICAgICJweXRob25fdmVyc2lvbiI6ICIuIi5qb2luKHBsYXRmb3JtLnB5dGhvbl92ZXJzaW9uX3R1
cGxlKClbOjJdKSwKKyAgICAgICAgICAgICJzeXNfcGxhdGZvcm0iOiBzeXMucGxhdGZvcm0sCisg
ICAgICAgIH0KKworICAgIEBweXRlc3QubWFyay5za2lwaWYoCisgICAgICAgIG5vdCBoYXNhdHRy
KHN5cywgImltcGxlbWVudGF0aW9uIiksIHJlYXNvbj0ic3lzLmltcGxlbWVudGF0aW9uIGRvZXMg
bm90IGV4aXN0IgorICAgICkKKyAgICBkZWYgdGVzdF9tYXRjaGVzX2V4cGVjdGVkKHNlbGYpOgor
ICAgICAgICBlbnZpcm9ubWVudCA9IGRlZmF1bHRfZW52aXJvbm1lbnQoKQorCisgICAgICAgIGl2
ZXIgPSAiezAubWFqb3J9LnswLm1pbm9yfS57MC5taWNyb30iLmZvcm1hdChzeXMuaW1wbGVtZW50
YXRpb24udmVyc2lvbikKKyAgICAgICAgaWYgc3lzLmltcGxlbWVudGF0aW9uLnZlcnNpb24ucmVs
ZWFzZWxldmVsICE9ICJmaW5hbCI6CisgICAgICAgICAgICBpdmVyID0gInswfXsxWzBdfXsyfSIu
Zm9ybWF0KAorICAgICAgICAgICAgICAgIGl2ZXIsCisgICAgICAgICAgICAgICAgc3lzLmltcGxl
bWVudGF0aW9uLnZlcnNpb24ucmVsZWFzZWxldmVsLAorICAgICAgICAgICAgICAgIHN5cy5pbXBs
ZW1lbnRhdGlvbi52ZXJzaW9uLnNlcmlhbCwKKyAgICAgICAgICAgICkKKworICAgICAgICBhc3Nl
cnQgZW52aXJvbm1lbnQgPT0geworICAgICAgICAgICAgImltcGxlbWVudGF0aW9uX25hbWUiOiBz
eXMuaW1wbGVtZW50YXRpb24ubmFtZSwKKyAgICAgICAgICAgICJpbXBsZW1lbnRhdGlvbl92ZXJz
aW9uIjogaXZlciwKKyAgICAgICAgICAgICJvc19uYW1lIjogb3MubmFtZSwKKyAgICAgICAgICAg
ICJwbGF0Zm9ybV9tYWNoaW5lIjogcGxhdGZvcm0ubWFjaGluZSgpLAorICAgICAgICAgICAgInBs
YXRmb3JtX3JlbGVhc2UiOiBwbGF0Zm9ybS5yZWxlYXNlKCksCisgICAgICAgICAgICAicGxhdGZv
cm1fc3lzdGVtIjogcGxhdGZvcm0uc3lzdGVtKCksCisgICAgICAgICAgICAicGxhdGZvcm1fdmVy
c2lvbiI6IHBsYXRmb3JtLnZlcnNpb24oKSwKKyAgICAgICAgICAgICJweXRob25fZnVsbF92ZXJz
aW9uIjogcGxhdGZvcm0ucHl0aG9uX3ZlcnNpb24oKSwKKyAgICAgICAgICAgICJwbGF0Zm9ybV9w
eXRob25faW1wbGVtZW50YXRpb24iOiBwbGF0Zm9ybS5weXRob25faW1wbGVtZW50YXRpb24oKSwK
KyAgICAgICAgICAgICJweXRob25fdmVyc2lvbiI6ICIuIi5qb2luKHBsYXRmb3JtLnB5dGhvbl92
ZXJzaW9uX3R1cGxlKClbOjJdKSwKKyAgICAgICAgICAgICJzeXNfcGxhdGZvcm0iOiBzeXMucGxh
dGZvcm0sCisgICAgICAgIH0KKworICAgIEBweXRlc3QubWFyay5za2lwaWYoCisgICAgICAgIGhh
c2F0dHIoc3lzLCAiaW1wbGVtZW50YXRpb24iKSwgcmVhc29uPSJzeXMuaW1wbGVtZW50YXRpb24g
ZG9lcyBleGlzdCIKKyAgICApCisgICAgZGVmIHRlc3RfbW9ua2V5cGF0Y2hfc3lzX2ltcGxlbWVu
dGF0aW9uKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigK
KyAgICAgICAgICAgIHN5cywKKyAgICAgICAgICAgICJpbXBsZW1lbnRhdGlvbiIsCisgICAgICAg
ICAgICBwcmV0ZW5kLnN0dWIodmVyc2lvbj1GYWtlVmVyc2lvbkluZm8oMywgNCwgMiwgImZpbmFs
IiwgMCksIG5hbWU9ImxpbnV4IiksCisgICAgICAgICAgICByYWlzaW5nPUZhbHNlLAorICAgICAg
ICApCisKKyAgICAgICAgZW52aXJvbm1lbnQgPSBkZWZhdWx0X2Vudmlyb25tZW50KCkKKyAgICAg
ICAgYXNzZXJ0IGVudmlyb25tZW50ID09IHsKKyAgICAgICAgICAgICJpbXBsZW1lbnRhdGlvbl9u
YW1lIjogImxpbnV4IiwKKyAgICAgICAgICAgICJpbXBsZW1lbnRhdGlvbl92ZXJzaW9uIjogIjMu
NC4yIiwKKyAgICAgICAgICAgICJvc19uYW1lIjogb3MubmFtZSwKKyAgICAgICAgICAgICJwbGF0
Zm9ybV9tYWNoaW5lIjogcGxhdGZvcm0ubWFjaGluZSgpLAorICAgICAgICAgICAgInBsYXRmb3Jt
X3JlbGVhc2UiOiBwbGF0Zm9ybS5yZWxlYXNlKCksCisgICAgICAgICAgICAicGxhdGZvcm1fc3lz
dGVtIjogcGxhdGZvcm0uc3lzdGVtKCksCisgICAgICAgICAgICAicGxhdGZvcm1fdmVyc2lvbiI6
IHBsYXRmb3JtLnZlcnNpb24oKSwKKyAgICAgICAgICAgICJweXRob25fZnVsbF92ZXJzaW9uIjog
cGxhdGZvcm0ucHl0aG9uX3ZlcnNpb24oKSwKKyAgICAgICAgICAgICJwbGF0Zm9ybV9weXRob25f
aW1wbGVtZW50YXRpb24iOiBwbGF0Zm9ybS5weXRob25faW1wbGVtZW50YXRpb24oKSwKKyAgICAg
ICAgICAgICJweXRob25fdmVyc2lvbiI6ICIuIi5qb2luKHBsYXRmb3JtLnB5dGhvbl92ZXJzaW9u
X3R1cGxlKClbOjJdKSwKKyAgICAgICAgICAgICJzeXNfcGxhdGZvcm0iOiBzeXMucGxhdGZvcm0s
CisgICAgICAgIH0KKworICAgIGRlZiB0ZXN0X211bHRpZGlnaXRfbWlub3JfdmVyc2lvbihzZWxm
LCBtb25rZXlwYXRjaCk6CisgICAgICAgIHZlcnNpb25faW5mbyA9ICgzLCAxMCwgMCwgImZpbmFs
IiwgMCkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMsICJ2ZXJzaW9uX2luZm8iLCB2
ZXJzaW9uX2luZm8sIHJhaXNpbmc9RmFsc2UpCisKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0
cihwbGF0Zm9ybSwgInB5dGhvbl92ZXJzaW9uIiwgbGFtYmRhOiAiMy4xMC4wIiwgcmFpc2luZz1G
YWxzZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAgIHBsYXRmb3Jt
LCAicHl0aG9uX3ZlcnNpb25fdHVwbGUiLCBsYW1iZGE6ICgiMyIsICIxMCIsICIwIiksIHJhaXNp
bmc9RmFsc2UKKyAgICAgICAgKQorCisgICAgICAgIGVudmlyb25tZW50ID0gZGVmYXVsdF9lbnZp
cm9ubWVudCgpCisgICAgICAgIGFzc2VydCBlbnZpcm9ubWVudFsicHl0aG9uX3ZlcnNpb24iXSA9
PSAiMy4xMCIKKworICAgIGRlZiB0ZXN0c193aGVuX3JlbGVhc2VsZXZlbF9maW5hbChzZWxmKToK
KyAgICAgICAgdiA9IEZha2VWZXJzaW9uSW5mbygzLCA0LCAyLCAiZmluYWwiLCAwKQorICAgICAg
ICBhc3NlcnQgZm9ybWF0X2Z1bGxfdmVyc2lvbih2KSA9PSAiMy40LjIiCisKKyAgICBkZWYgdGVz
dHNfd2hlbl9yZWxlYXNlbGV2ZWxfbm90X2ZpbmFsKHNlbGYpOgorICAgICAgICB2ID0gRmFrZVZl
cnNpb25JbmZvKDMsIDQsIDIsICJiZXRhIiwgNCkKKyAgICAgICAgYXNzZXJ0IGZvcm1hdF9mdWxs
X3ZlcnNpb24odikgPT0gIjMuNC4yYjQiCisKKworY2xhc3MgVGVzdE1hcmtlcjoKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJtYXJrZXJfc3RyaW5nIiwKKyAgICAgICAg
WworICAgICAgICAgICAgInswfSB7MX0gezIhcn0iLmZvcm1hdCgqaSkKKyAgICAgICAgICAgIGZv
ciBpIGluIGl0ZXJ0b29scy5wcm9kdWN0KFZBUklBQkxFUywgT1BFUkFUT1JTLCBWQUxVRVMpCisg
ICAgICAgIF0KKyAgICAgICAgKyBbCisgICAgICAgICAgICAiezIhcn0gezF9IHswfSIuZm9ybWF0
KCppKQorICAgICAgICAgICAgZm9yIGkgaW4gaXRlcnRvb2xzLnByb2R1Y3QoVkFSSUFCTEVTLCBP
UEVSQVRPUlMsIFZBTFVFUykKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3RfcGFyc2Vz
X3ZhbGlkKHNlbGYsIG1hcmtlcl9zdHJpbmcpOgorICAgICAgICBNYXJrZXIobWFya2VyX3N0cmlu
ZykKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgIm1hcmtlcl9zdHJp
bmciLAorICAgICAgICBbCisgICAgICAgICAgICAidGhpc19pc250X2FfcmVhbF92YXJpYWJsZSA+
PSAnMS4wJyIsCisgICAgICAgICAgICAicHl0aG9uX3ZlcnNpb24iLAorICAgICAgICAgICAgIihw
eXRob25fdmVyc2lvbikiLAorICAgICAgICAgICAgInB5dGhvbl92ZXJzaW9uID49IDEuMCBhbmQg
KHB5dGhvbl92ZXJzaW9uKSIsCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3BhcnNl
c19pbnZhbGlkKHNlbGYsIG1hcmtlcl9zdHJpbmcpOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoSW52YWxpZE1hcmtlcik6CisgICAgICAgICAgICBNYXJrZXIobWFya2VyX3N0cmluZykKKwor
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJtYXJrZXJfc3RyaW5nIiwg
ImV4cGVjdGVkIiksCisgICAgICAgIFsKKyAgICAgICAgICAgICMgVGVzdCB0aGUgZGlmZmVyZW50
IHF1b3RpbmcgcnVsZXMKKyAgICAgICAgICAgICgicHl0aG9uX3ZlcnNpb24gPT0gJzIuNyciLCAn
cHl0aG9uX3ZlcnNpb24gPT0gIjIuNyInKSwKKyAgICAgICAgICAgICgncHl0aG9uX3ZlcnNpb24g
PT0gIjIuNyInLCAncHl0aG9uX3ZlcnNpb24gPT0gIjIuNyInKSwKKyAgICAgICAgICAgICMgVGVz
dCBhbmQvb3IgZXhwcmVzc2lvbnMKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAncHl0
aG9uX3ZlcnNpb24gPT0gIjIuNyIgYW5kIG9zX25hbWUgPT0gImxpbnV4IicsCisgICAgICAgICAg
ICAgICAgJ3B5dGhvbl92ZXJzaW9uID09ICIyLjciIGFuZCBvc19uYW1lID09ICJsaW51eCInLAor
ICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAncHl0aG9uX3Zl
cnNpb24gPT0gIjIuNyIgb3Igb3NfbmFtZSA9PSAibGludXgiJywKKyAgICAgICAgICAgICAgICAn
cHl0aG9uX3ZlcnNpb24gPT0gIjIuNyIgb3Igb3NfbmFtZSA9PSAibGludXgiJywKKyAgICAgICAg
ICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgJ3B5dGhvbl92ZXJzaW9uID09
ICIyLjciIGFuZCBvc19uYW1lID09ICJsaW51eCIgb3IgJworICAgICAgICAgICAgICAgICdzeXNf
cGxhdGZvcm0gPT0gIndpbjMyIicsCisgICAgICAgICAgICAgICAgJ3B5dGhvbl92ZXJzaW9uID09
ICIyLjciIGFuZCBvc19uYW1lID09ICJsaW51eCIgb3IgJworICAgICAgICAgICAgICAgICdzeXNf
cGxhdGZvcm0gPT0gIndpbjMyIicsCisgICAgICAgICAgICApLAorICAgICAgICAgICAgIyBUZXN0
IG5lc3RlZCBleHByZXNzaW9ucyBhbmQgZ3JvdXBpbmcgd2l0aCAoKQorICAgICAgICAgICAgKCco
cHl0aG9uX3ZlcnNpb24gPT0gIjIuNyIpJywgJ3B5dGhvbl92ZXJzaW9uID09ICIyLjciJyksCisg
ICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgJyhweXRob25fdmVyc2lvbiA9PSAiMi43IiBh
bmQgc3lzX3BsYXRmb3JtID09ICJ3aW4zMiIpJywKKyAgICAgICAgICAgICAgICAncHl0aG9uX3Zl
cnNpb24gPT0gIjIuNyIgYW5kIHN5c19wbGF0Zm9ybSA9PSAid2luMzIiJywKKyAgICAgICAgICAg
ICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgJ3B5dGhvbl92ZXJzaW9uID09ICIy
LjciIGFuZCAoc3lzX3BsYXRmb3JtID09ICJ3aW4zMiIgb3IgJworICAgICAgICAgICAgICAgICdz
eXNfcGxhdGZvcm0gPT0gImxpbnV4IiknLAorICAgICAgICAgICAgICAgICdweXRob25fdmVyc2lv
biA9PSAiMi43IiBhbmQgKHN5c19wbGF0Zm9ybSA9PSAid2luMzIiIG9yICcKKyAgICAgICAgICAg
ICAgICAnc3lzX3BsYXRmb3JtID09ICJsaW51eCIpJywKKyAgICAgICAgICAgICksCisgICAgICAg
IF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3N0cl9hbmRfcmVwcihzZWxmLCBtYXJrZXJfc3RyaW5n
LCBleHBlY3RlZCk6CisgICAgICAgIG0gPSBNYXJrZXIobWFya2VyX3N0cmluZykKKyAgICAgICAg
YXNzZXJ0IHN0cihtKSA9PSBleHBlY3RlZAorICAgICAgICBhc3NlcnQgcmVwcihtKSA9PSAiPE1h
cmtlcih7MCFyfSk+Ii5mb3JtYXQoc3RyKG0pKQorCisgICAgZGVmIHRlc3RfZXh0cmFfd2l0aF9u
b19leHRyYV9pbl9lbnZpcm9ubWVudChzZWxmKToKKyAgICAgICAgIyBXZSBjYW4ndCBldmFsdWF0
ZSBhbiBleHRyYSBpZiBubyBleHRyYSBpcyBwYXNzZWQgaW50byB0aGUgZW52aXJvbm1lbnQKKyAg
ICAgICAgbSA9IE1hcmtlcigiZXh0cmEgPT0gJ3NlY3VyaXR5JyIpCisgICAgICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhVbmRlZmluZWRFbnZpcm9ubWVudE5hbWUpOgorICAgICAgICAgICAgbS5ldmFs
dWF0ZSgpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgibWFya2Vy
X3N0cmluZyIsICJlbnZpcm9ubWVudCIsICJleHBlY3RlZCIpLAorICAgICAgICBbCisgICAgICAg
ICAgICAoIm9zX25hbWUgPT0gJ3swfSciLmZvcm1hdChvcy5uYW1lKSwgTm9uZSwgVHJ1ZSksCisg
ICAgICAgICAgICAoIm9zX25hbWUgPT0gJ2ZvbyciLCB7Im9zX25hbWUiOiAiZm9vIn0sIFRydWUp
LAorICAgICAgICAgICAgKCJvc19uYW1lID09ICdmb28nIiwgeyJvc19uYW1lIjogImJhciJ9LCBG
YWxzZSksCisgICAgICAgICAgICAoIicyLjcnIGluIHB5dGhvbl92ZXJzaW9uIiwgeyJweXRob25f
dmVyc2lvbiI6ICIyLjcuNSJ9LCBUcnVlKSwKKyAgICAgICAgICAgICgiJzIuNycgbm90IGluIHB5
dGhvbl92ZXJzaW9uIiwgeyJweXRob25fdmVyc2lvbiI6ICIyLjcifSwgRmFsc2UpLAorICAgICAg
ICAgICAgKAorICAgICAgICAgICAgICAgICJvc19uYW1lID09ICdmb28nIGFuZCBweXRob25fdmVy
c2lvbiB+PSAnMi43LjAnIiwKKyAgICAgICAgICAgICAgICB7Im9zX25hbWUiOiAiZm9vIiwgInB5
dGhvbl92ZXJzaW9uIjogIjIuNy42In0sCisgICAgICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAg
ICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgInB5dGhvbl92ZXJzaW9uIH49
ICcyLjcuMCcgYW5kIChvc19uYW1lID09ICdmb28nIG9yICIKKyAgICAgICAgICAgICAgICAib3Nf
bmFtZSA9PSAnYmFyJykiLAorICAgICAgICAgICAgICAgIHsib3NfbmFtZSI6ICJmb28iLCAicHl0
aG9uX3ZlcnNpb24iOiAiMi43LjQifSwKKyAgICAgICAgICAgICAgICBUcnVlLAorICAgICAgICAg
ICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAicHl0aG9uX3ZlcnNpb24gfj0g
JzIuNy4wJyBhbmQgKG9zX25hbWUgPT0gJ2Zvbycgb3IgIgorICAgICAgICAgICAgICAgICJvc19u
YW1lID09ICdiYXInKSIsCisgICAgICAgICAgICAgICAgeyJvc19uYW1lIjogImJhciIsICJweXRo
b25fdmVyc2lvbiI6ICIyLjcuNCJ9LAorICAgICAgICAgICAgICAgIFRydWUsCisgICAgICAgICAg
ICApLAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICJweXRob25fdmVyc2lvbiB+PSAn
Mi43LjAnIGFuZCAob3NfbmFtZSA9PSAnZm9vJyBvciAiCisgICAgICAgICAgICAgICAgIm9zX25h
bWUgPT0gJ2JhcicpIiwKKyAgICAgICAgICAgICAgICB7Im9zX25hbWUiOiAib3RoZXIiLCAicHl0
aG9uX3ZlcnNpb24iOiAiMi43LjQifSwKKyAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAg
ICAgICksCisgICAgICAgICAgICAoImV4dHJhID09ICdzZWN1cml0eSciLCB7ImV4dHJhIjogInF1
dXgifSwgRmFsc2UpLAorICAgICAgICAgICAgKCJleHRyYSA9PSAnc2VjdXJpdHknIiwgeyJleHRy
YSI6ICJzZWN1cml0eSJ9LCBUcnVlKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3Rf
ZXZhbHVhdGVzKHNlbGYsIG1hcmtlcl9zdHJpbmcsIGVudmlyb25tZW50LCBleHBlY3RlZCk6Cisg
ICAgICAgIGFyZ3MgPSBbXSBpZiBlbnZpcm9ubWVudCBpcyBOb25lIGVsc2UgW2Vudmlyb25tZW50
XQorICAgICAgICBhc3NlcnQgTWFya2VyKG1hcmtlcl9zdHJpbmcpLmV2YWx1YXRlKCphcmdzKSA9
PSBleHBlY3RlZAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAibWFy
a2VyX3N0cmluZyIsCisgICAgICAgIFsKKyAgICAgICAgICAgICJ7MH0gezF9IHsyIXJ9Ii5mb3Jt
YXQoKmkpCisgICAgICAgICAgICBmb3IgaSBpbiBpdGVydG9vbHMucHJvZHVjdChQRVBfMzQ1X1ZB
UklBQkxFUywgT1BFUkFUT1JTLCBWQUxVRVMpCisgICAgICAgIF0KKyAgICAgICAgKyBbCisgICAg
ICAgICAgICAiezIhcn0gezF9IHswfSIuZm9ybWF0KCppKQorICAgICAgICAgICAgZm9yIGkgaW4g
aXRlcnRvb2xzLnByb2R1Y3QoUEVQXzM0NV9WQVJJQUJMRVMsIE9QRVJBVE9SUywgVkFMVUVTKQor
ICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9wYXJzZXNfcGVwMzQ1X3ZhbGlkKHNlbGYs
IG1hcmtlcl9zdHJpbmcpOgorICAgICAgICBNYXJrZXIobWFya2VyX3N0cmluZykKKworICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJtYXJrZXJfc3RyaW5nIiwgImVudmly
b25tZW50IiwgImV4cGVjdGVkIiksCisgICAgICAgIFsKKyAgICAgICAgICAgICgib3MubmFtZSA9
PSAnezB9JyIuZm9ybWF0KG9zLm5hbWUpLCBOb25lLCBUcnVlKSwKKyAgICAgICAgICAgICgic3lz
LnBsYXRmb3JtID09ICd3aW4zMiciLCB7InN5c19wbGF0Zm9ybSI6ICJsaW51eDIifSwgRmFsc2Up
LAorICAgICAgICAgICAgKCJwbGF0Zm9ybS52ZXJzaW9uIGluICdVYnVudHUnIiwgeyJwbGF0Zm9y
bV92ZXJzaW9uIjogIiMzOSJ9LCBGYWxzZSksCisgICAgICAgICAgICAoInBsYXRmb3JtLm1hY2hp
bmU9PSd4ODZfNjQnIiwgeyJwbGF0Zm9ybV9tYWNoaW5lIjogIng4Nl82NCJ9LCBUcnVlKSwKKyAg
ICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAicGxhdGZvcm0ucHl0aG9uX2ltcGxlbWVudGF0
aW9uPT0nSnl0aG9uJyIsCisgICAgICAgICAgICAgICAgeyJwbGF0Zm9ybV9weXRob25faW1wbGVt
ZW50YXRpb24iOiAiQ1B5dGhvbiJ9LAorICAgICAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAg
ICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAicHl0aG9uX3ZlcnNpb24gPT0g
JzIuNScgYW5kIHBsYXRmb3JtLnB5dGhvbl9pbXBsZW1lbnRhdGlvbiIKKyAgICAgICAgICAgICAg
ICAiIT0gJ0p5dGhvbiciLAorICAgICAgICAgICAgICAgIHsicHl0aG9uX3ZlcnNpb24iOiAiMi43
In0sCisgICAgICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICApLAorICAgICAgICBdLAor
ICAgICkKKyAgICBkZWYgdGVzdF9ldmFsdWF0ZV9wZXAzNDVfbWFya2VycyhzZWxmLCBtYXJrZXJf
c3RyaW5nLCBlbnZpcm9ubWVudCwgZXhwZWN0ZWQpOgorICAgICAgICBhcmdzID0gW10gaWYgZW52
aXJvbm1lbnQgaXMgTm9uZSBlbHNlIFtlbnZpcm9ubWVudF0KKyAgICAgICAgYXNzZXJ0IE1hcmtl
cihtYXJrZXJfc3RyaW5nKS5ldmFsdWF0ZSgqYXJncykgPT0gZXhwZWN0ZWQKKworICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgIm1hcmtlcl9zdHJpbmciLAorICAgICAgICBb
CisgICAgICAgICAgICAiezB9IHsxfSB7MiFyfSIuZm9ybWF0KCppKQorICAgICAgICAgICAgZm9y
IGkgaW4gaXRlcnRvb2xzLnByb2R1Y3QoU0VUVVBUT09MU19WQVJJQUJMRVMsIE9QRVJBVE9SUywg
VkFMVUVTKQorICAgICAgICBdCisgICAgICAgICsgWworICAgICAgICAgICAgInsyIXJ9IHsxfSB7
MH0iLmZvcm1hdCgqaSkKKyAgICAgICAgICAgIGZvciBpIGluIGl0ZXJ0b29scy5wcm9kdWN0KFNF
VFVQVE9PTFNfVkFSSUFCTEVTLCBPUEVSQVRPUlMsIFZBTFVFUykKKyAgICAgICAgXSwKKyAgICAp
CisgICAgZGVmIHRlc3RfcGFyc2VzX3NldHVwdG9vbHNfbGVnYWN5X3ZhbGlkKHNlbGYsIG1hcmtl
cl9zdHJpbmcpOgorICAgICAgICBNYXJrZXIobWFya2VyX3N0cmluZykKKworICAgIGRlZiB0ZXN0
X2V2YWx1YXRlX3NldHVwdG9vbHNfbGVnYWN5X21hcmtlcnMoc2VsZik6CisgICAgICAgIG1hcmtl
cl9zdHJpbmcgPSAicHl0aG9uX2ltcGxlbWVudGF0aW9uPT0nSnl0aG9uJyIKKyAgICAgICAgYXJn
cyA9IFt7InBsYXRmb3JtX3B5dGhvbl9pbXBsZW1lbnRhdGlvbiI6ICJDUHl0aG9uIn1dCisgICAg
ICAgIGFzc2VydCBNYXJrZXIobWFya2VyX3N0cmluZykuZXZhbHVhdGUoKmFyZ3MpIGlzIEZhbHNl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3JlcXVpcmVtZW50cy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL3Rlc3RzL3Rlc3RfcmVxdWlyZW1lbnRzLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUw
ZTM4ZDZhZGNhNWE4NGM3M2M5MzJlYjQ1MTVlZTE3ODg2MDA1OGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3JlcXVpcmVtZW50cy5weQpAQCAtMCwwICsxLDE5
NyBAQAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2Vl
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBj
b21wbGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQs
IGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gcGFja2Fn
aW5nLm1hcmtlcnMgaW1wb3J0IE1hcmtlcgorZnJvbSBwYWNrYWdpbmcucmVxdWlyZW1lbnRzIGlt
cG9ydCBJbnZhbGlkUmVxdWlyZW1lbnQsIFJlcXVpcmVtZW50LCBVUkwKK2Zyb20gcGFja2FnaW5n
LnJlcXVpcmVtZW50cyBpbXBvcnQgVVJMX0FORF9NQVJLRVIKK2Zyb20gcGFja2FnaW5nLnNwZWNp
ZmllcnMgaW1wb3J0IFNwZWNpZmllclNldAorCisKK2NsYXNzIFRlc3RSZXF1aXJlbWVudHM6Cisg
ICAgZGVmIHRlc3Rfc3RyaW5nX3NwZWNpZmllcl9tYXJrZXIoc2VsZik6CisgICAgICAgIHJlcXVp
cmVtZW50ID0gJ25hbWVbYmFyXT49MzsgcHl0aG9uX3ZlcnNpb24gPT0gIjIuNyInCisgICAgICAg
IHJlcSA9IFJlcXVpcmVtZW50KHJlcXVpcmVtZW50KQorICAgICAgICBhc3NlcnQgc3RyKHJlcSkg
PT0gcmVxdWlyZW1lbnQKKworICAgIGRlZiB0ZXN0X3N0cmluZ191cmwoc2VsZik6CisgICAgICAg
IHJlcXVpcmVtZW50ID0gIm5hbWVAIGh0dHA6Ly9mb28uY29tIgorICAgICAgICByZXEgPSBSZXF1
aXJlbWVudChyZXF1aXJlbWVudCkKKyAgICAgICAgYXNzZXJ0IHN0cihyZXEpID09IHJlcXVpcmVt
ZW50CisKKyAgICBkZWYgdGVzdF9zdHJpbmdfdXJsX3dpdGhfbWFya2VyKHNlbGYpOgorICAgICAg
ICByZXF1aXJlbWVudCA9ICduYW1lQCBodHRwOi8vZm9vLmNvbSA7IGV4dHJhID09ICJmZWF0dXJl
IicKKyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQocmVxdWlyZW1lbnQpCisgICAgICAgIGFzc2Vy
dCBzdHIocmVxKSA9PSByZXF1aXJlbWVudAorCisgICAgZGVmIHRlc3RfcmVwcihzZWxmKToKKyAg
ICAgICAgcmVxID0gUmVxdWlyZW1lbnQoIm5hbWUiKQorICAgICAgICBhc3NlcnQgcmVwcihyZXEp
ID09ICI8UmVxdWlyZW1lbnQoJ25hbWUnKT4iCisKKyAgICBkZWYgX2Fzc2VydF9yZXF1aXJlbWVu
dCgKKyAgICAgICAgc2VsZiwgcmVxLCBuYW1lLCB1cmw9Tm9uZSwgZXh0cmFzPVtdLCBzcGVjaWZp
ZXI9IiIsIG1hcmtlcj1Ob25lCisgICAgKToKKyAgICAgICAgYXNzZXJ0IHJlcS5uYW1lID09IG5h
bWUKKyAgICAgICAgYXNzZXJ0IHJlcS51cmwgPT0gdXJsCisgICAgICAgIGFzc2VydCBzb3J0ZWQo
cmVxLmV4dHJhcykgPT0gc29ydGVkKGV4dHJhcykKKyAgICAgICAgYXNzZXJ0IHN0cihyZXEuc3Bl
Y2lmaWVyKSA9PSBzcGVjaWZpZXIKKyAgICAgICAgaWYgbWFya2VyOgorICAgICAgICAgICAgYXNz
ZXJ0IHN0cihyZXEubWFya2VyKSA9PSBtYXJrZXIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGFzc2VydCByZXEubWFya2VyIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X3NpbXBsZV9uYW1lcyhz
ZWxmKToKKyAgICAgICAgZm9yIG5hbWUgaW4gKCJBIiwgImFhIiwgIm5hbWUiKToKKyAgICAgICAg
ICAgIHJlcSA9IFJlcXVpcmVtZW50KG5hbWUpCisgICAgICAgICAgICBzZWxmLl9hc3NlcnRfcmVx
dWlyZW1lbnQocmVxLCBuYW1lKQorCisgICAgZGVmIHRlc3RfbmFtZV93aXRoX290aGVyX2NoYXJh
Y3RlcnMoc2VsZik6CisgICAgICAgIG5hbWUgPSAiZm9vLWJhci5xdXV4X2JheiIKKyAgICAgICAg
cmVxID0gUmVxdWlyZW1lbnQobmFtZSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3JlcXVpcmVtZW50
KHJlcSwgbmFtZSkKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfbmFtZShzZWxmKToKKyAgICAgICAg
d2l0aCBweXRlc3QucmFpc2VzKEludmFsaWRSZXF1aXJlbWVudCk6CisgICAgICAgICAgICBSZXF1
aXJlbWVudCgiZm9vISIpCisKKyAgICBkZWYgdGVzdF9uYW1lX3dpdGhfdmVyc2lvbihzZWxmKToK
KyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQoIm5hbWU+PTMiKQorICAgICAgICBzZWxmLl9hc3Nl
cnRfcmVxdWlyZW1lbnQocmVxLCAibmFtZSIsIHNwZWNpZmllcj0iPj0zIikKKworICAgIGRlZiB0
ZXN0X3dpdGhfbGVnYWN5X3ZlcnNpb24oc2VsZik6CisgICAgICAgIHJlcSA9IFJlcXVpcmVtZW50
KCJuYW1lPT0xLjAub3JnMSIpCisgICAgICAgIHNlbGYuX2Fzc2VydF9yZXF1aXJlbWVudChyZXEs
ICJuYW1lIiwgc3BlY2lmaWVyPSI9PTEuMC5vcmcxIikKKworICAgIGRlZiB0ZXN0X3dpdGhfbGVn
YWN5X3ZlcnNpb25fYW5kX21hcmtlcihzZWxmKToKKyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQo
Im5hbWU+PTEueC55O3B5dGhvbl92ZXJzaW9uPT0nMi42JyIpCisgICAgICAgIHNlbGYuX2Fzc2Vy
dF9yZXF1aXJlbWVudCgKKyAgICAgICAgICAgIHJlcSwgIm5hbWUiLCBzcGVjaWZpZXI9Ij49MS54
LnkiLCBtYXJrZXI9J3B5dGhvbl92ZXJzaW9uID09ICIyLjYiJworICAgICAgICApCisKKyAgICBk
ZWYgdGVzdF92ZXJzaW9uX3dpdGhfcGFyZW5zX2FuZF93aGl0ZXNwYWNlKHNlbGYpOgorICAgICAg
ICByZXEgPSBSZXF1aXJlbWVudCgibmFtZSAoPT00KSIpCisgICAgICAgIHNlbGYuX2Fzc2VydF9y
ZXF1aXJlbWVudChyZXEsICJuYW1lIiwgc3BlY2lmaWVyPSI9PTQiKQorCisgICAgZGVmIHRlc3Rf
bmFtZV93aXRoX211bHRpcGxlX3ZlcnNpb25zKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1aXJl
bWVudCgibmFtZT49Myw8MiIpCisgICAgICAgIHNlbGYuX2Fzc2VydF9yZXF1aXJlbWVudChyZXEs
ICJuYW1lIiwgc3BlY2lmaWVyPSI8Miw+PTMiKQorCisgICAgZGVmIHRlc3RfbmFtZV93aXRoX211
bHRpcGxlX3ZlcnNpb25zX2FuZF93aGl0ZXNwYWNlKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1
aXJlbWVudCgibmFtZSA+PTIsIDwzIikKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3JlcXVpcmVtZW50
KHJlcSwgIm5hbWUiLCBzcGVjaWZpZXI9IjwzLD49MiIpCisKKyAgICBkZWYgdGVzdF9leHRyYXMo
c2VsZik6CisgICAgICAgIHJlcSA9IFJlcXVpcmVtZW50KCJmb29iYXIgW3F1dXgsYmFyXSIpCisg
ICAgICAgIHNlbGYuX2Fzc2VydF9yZXF1aXJlbWVudChyZXEsICJmb29iYXIiLCBleHRyYXM9WyJi
YXIiLCAicXV1eCJdKQorCisgICAgZGVmIHRlc3RfZW1wdHlfZXh0cmFzKHNlbGYpOgorICAgICAg
ICByZXEgPSBSZXF1aXJlbWVudCgiZm9vW10iKQorICAgICAgICBzZWxmLl9hc3NlcnRfcmVxdWly
ZW1lbnQocmVxLCAiZm9vIikKKworICAgIGRlZiB0ZXN0X3VybChzZWxmKToKKyAgICAgICAgdXJs
X3NlY3Rpb24gPSAiQCBodHRwOi8vZXhhbXBsZS5jb20iCisgICAgICAgIHBhcnNlZCA9IFVSTC5w
YXJzZVN0cmluZyh1cmxfc2VjdGlvbikKKyAgICAgICAgYXNzZXJ0IHBhcnNlZC51cmwgPT0gImh0
dHA6Ly9leGFtcGxlLmNvbSIKKworICAgIGRlZiB0ZXN0X3VybF9hbmRfbWFya2VyKHNlbGYpOgor
ICAgICAgICBpbnN0cmluZyA9ICJAIGh0dHA6Ly9leGFtcGxlLmNvbSA7IG9zX25hbWU9PSdhJyIK
KyAgICAgICAgcGFyc2VkID0gVVJMX0FORF9NQVJLRVIucGFyc2VTdHJpbmcoaW5zdHJpbmcpCisg
ICAgICAgIGFzc2VydCBwYXJzZWQudXJsID09ICJodHRwOi8vZXhhbXBsZS5jb20iCisgICAgICAg
IGFzc2VydCBzdHIocGFyc2VkLm1hcmtlcikgPT0gJ29zX25hbWUgPT0gImEiJworCisgICAgZGVm
IHRlc3RfaW52YWxpZF91cmwoc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZh
bGlkUmVxdWlyZW1lbnQpIGFzIGU6CisgICAgICAgICAgICBSZXF1aXJlbWVudCgibmFtZSBAIGdv
cGhlcjovZm9vL2NvbSIpCisgICAgICAgIGFzc2VydCAiSW52YWxpZCBVUkw6ICIgaW4gc3RyKGUu
dmFsdWUpCisgICAgICAgIGFzc2VydCAiZ29waGVyOi9mb28vY29tIiBpbiBzdHIoZS52YWx1ZSkK
KworICAgIGRlZiB0ZXN0X2ZpbGVfdXJsKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1aXJlbWVu
dCgibmFtZSBAIGZpbGU6Ly8vYWJzb2x1dGUvcGF0aCIpCisgICAgICAgIHNlbGYuX2Fzc2VydF9y
ZXF1aXJlbWVudChyZXEsICJuYW1lIiwgImZpbGU6Ly8vYWJzb2x1dGUvcGF0aCIpCisgICAgICAg
IHJlcSA9IFJlcXVpcmVtZW50KCJuYW1lIEAgZmlsZTovLy4iKQorICAgICAgICBzZWxmLl9hc3Nl
cnRfcmVxdWlyZW1lbnQocmVxLCAibmFtZSIsICJmaWxlOi8vLiIpCisKKyAgICBkZWYgdGVzdF9p
bnZhbGlkX2ZpbGVfdXJscyhzZWxmKToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFs
aWRSZXF1aXJlbWVudCk6CisgICAgICAgICAgICBSZXF1aXJlbWVudCgibmFtZSBAIGZpbGU6LiIp
CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlkUmVxdWlyZW1lbnQpOgorICAgICAg
ICAgICAgUmVxdWlyZW1lbnQoIm5hbWUgQCBmaWxlOi8uIikKKworICAgIGRlZiB0ZXN0X2V4dHJh
c19hbmRfdXJsX2FuZF9tYXJrZXIoc2VsZik6CisgICAgICAgIHJlcSA9IFJlcXVpcmVtZW50KCJu
YW1lIFtmcmVkLGJhcl0gQCBodHRwOi8vZm9vLmNvbSA7IHB5dGhvbl92ZXJzaW9uPT0nMi43JyIp
CisgICAgICAgIHNlbGYuX2Fzc2VydF9yZXF1aXJlbWVudCgKKyAgICAgICAgICAgIHJlcSwKKyAg
ICAgICAgICAgICJuYW1lIiwKKyAgICAgICAgICAgIGV4dHJhcz1bImJhciIsICJmcmVkIl0sCisg
ICAgICAgICAgICB1cmw9Imh0dHA6Ly9mb28uY29tIiwKKyAgICAgICAgICAgIG1hcmtlcj0ncHl0
aG9uX3ZlcnNpb24gPT0gIjIuNyInLAorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9jb21wbGV4
X3VybF9hbmRfbWFya2VyKHNlbGYpOgorICAgICAgICB1cmwgPSAiaHR0cHM6Ly9leGFtcGxlLmNv
bS9uYW1lO3Y9MS4xLz9xdWVyeT1mb28mYmFyPWJheiNibGFoIgorICAgICAgICByZXEgPSBSZXF1
aXJlbWVudCgiZm9vIEAgJXMgOyBweXRob25fdmVyc2lvbj09JzMuNCciICUgdXJsKQorICAgICAg
ICBzZWxmLl9hc3NlcnRfcmVxdWlyZW1lbnQocmVxLCAiZm9vIiwgdXJsPXVybCwgbWFya2VyPSdw
eXRob25fdmVyc2lvbiA9PSAiMy40IicpCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9tYXJrZXJz
KHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgKKyAgICAgICAgICAgICJuYW1lW3F1
dXgsIHN0cmFuZ2VdO3B5dGhvbl92ZXJzaW9uPCcyLjcnIGFuZCAiICJwbGF0Zm9ybV92ZXJzaW9u
PT0nMiciCisgICAgICAgICkKKyAgICAgICAgbWFya2VyID0gJ3B5dGhvbl92ZXJzaW9uIDwgIjIu
NyIgYW5kIHBsYXRmb3JtX3ZlcnNpb24gPT0gIjIiJworICAgICAgICBzZWxmLl9hc3NlcnRfcmVx
dWlyZW1lbnQocmVxLCAibmFtZSIsIGV4dHJhcz1bInN0cmFuZ2UiLCAicXV1eCJdLCBtYXJrZXI9
bWFya2VyKQorCisgICAgZGVmIHRlc3RfbXVsdGlwbGVfY29tcGFyc2lvbl9tYXJrZXJzKHNlbGYp
OgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgibmFtZTsgb3NfbmFtZT09J2EnIGFuZCBvc19u
YW1lPT0nYicgb3Igb3NfbmFtZT09J2MnIikKKyAgICAgICAgbWFya2VyID0gJ29zX25hbWUgPT0g
ImEiIGFuZCBvc19uYW1lID09ICJiIiBvciBvc19uYW1lID09ICJjIicKKyAgICAgICAgc2VsZi5f
YXNzZXJ0X3JlcXVpcmVtZW50KHJlcSwgIm5hbWUiLCBtYXJrZXI9bWFya2VyKQorCisgICAgZGVm
IHRlc3RfaW52YWxpZF9tYXJrZXIoc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJ
bnZhbGlkUmVxdWlyZW1lbnQpOgorICAgICAgICAgICAgUmVxdWlyZW1lbnQoIm5hbWU7IGZvb2Jh
cj09J3gnIikKKworICAgIGRlZiB0ZXN0X3R5cGVzKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1
aXJlbWVudCgiZm9vYmFyW3F1dXhdPDIsPj0zOyBvc19uYW1lPT0nYSciKQorICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShyZXEubmFtZSwgc3RyKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShy
ZXEuZXh0cmFzLCBzZXQpCisgICAgICAgIGFzc2VydCByZXEudXJsIGlzIE5vbmUKKyAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UocmVxLnNwZWNpZmllciwgU3BlY2lmaWVyU2V0KQorICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShyZXEubWFya2VyLCBNYXJrZXIpCisKKyAgICBkZWYgdGVzdF90eXBl
c193aXRoX25vdGhpbmcoc2VsZik6CisgICAgICAgIHJlcSA9IFJlcXVpcmVtZW50KCJmb29iYXIi
KQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXEubmFtZSwgc3RyKQorICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShyZXEuZXh0cmFzLCBzZXQpCisgICAgICAgIGFzc2VydCByZXEudXJsIGlz
IE5vbmUKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVxLnNwZWNpZmllciwgU3BlY2lmaWVy
U2V0KQorICAgICAgICBhc3NlcnQgcmVxLm1hcmtlciBpcyBOb25lCisKKyAgICBkZWYgdGVzdF90
eXBlc193aXRoX3VybChzZWxmKToKKyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQoImZvb2JhciBA
IGh0dHA6Ly9mb28uY29tIikKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVxLm5hbWUsIHN0
cikKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVxLmV4dHJhcywgc2V0KQorICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShyZXEudXJsLCBzdHIpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KHJlcS5zcGVjaWZpZXIsIFNwZWNpZmllclNldCkKKyAgICAgICAgYXNzZXJ0IHJlcS5tYXJrZXIg
aXMgTm9uZQorCisgICAgZGVmIHRlc3Rfc3lzX3BsYXRmb3JtX2xpbnV4X2VxdWFsKHNlbGYpOgor
ICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgnc29tZXRoaW5nPj0xLjIuMzsgc3lzX3BsYXRmb3Jt
ID09ICJmb28iJykKKworICAgICAgICBhc3NlcnQgcmVxLm5hbWUgPT0gInNvbWV0aGluZyIKKyAg
ICAgICAgYXNzZXJ0IHJlcS5tYXJrZXIgaXMgbm90IE5vbmUKKyAgICAgICAgYXNzZXJ0IHJlcS5t
YXJrZXIuZXZhbHVhdGUoZGljdChzeXNfcGxhdGZvcm09ImZvbyIpKSBpcyBUcnVlCisgICAgICAg
IGFzc2VydCByZXEubWFya2VyLmV2YWx1YXRlKGRpY3Qoc3lzX3BsYXRmb3JtPSJiYXIiKSkgaXMg
RmFsc2UKKworICAgIGRlZiB0ZXN0X3N5c19wbGF0Zm9ybV9saW51eF9pbihzZWxmKToKKyAgICAg
ICAgcmVxID0gUmVxdWlyZW1lbnQoImF2aWF0bz49MS4yLjM7ICdmJyBpbiBzeXNfcGxhdGZvcm0i
KQorCisgICAgICAgIGFzc2VydCByZXEubmFtZSA9PSAiYXZpYXRvIgorICAgICAgICBhc3NlcnQg
cmVxLm1hcmtlciBpcyBub3QgTm9uZQorICAgICAgICBhc3NlcnQgcmVxLm1hcmtlci5ldmFsdWF0
ZShkaWN0KHN5c19wbGF0Zm9ybT0iZm9vIikpIGlzIFRydWUKKyAgICAgICAgYXNzZXJ0IHJlcS5t
YXJrZXIuZXZhbHVhdGUoZGljdChzeXNfcGxhdGZvcm09ImJhciIpKSBpcyBGYWxzZQorCisgICAg
ZGVmIHRlc3RfcGFyc2VleGNlcHRpb25fZXJyb3JfbXNnKHNlbGYpOgorICAgICAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoSW52YWxpZFJlcXVpcmVtZW50KSBhcyBlOgorICAgICAgICAgICAgUmVxdWly
ZW1lbnQoInRvdG8gNDIiKQorICAgICAgICBhc3NlcnQgIkV4cGVjdGVkIHN0cmluZ0VuZCIgaW4g
c3RyKGUudmFsdWUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3NwZWNp
ZmllcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3NwZWNpZmllcnMucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzlhNDQ0NjZmNzUyNWY0NjY5NWYzMTZiODYwNDlhODhiOTA1NzcyNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL3Rlc3Rfc3BlY2lmaWVycy5weQpAQCAtMCww
ICsxLDk5OSBAQAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5z
ZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5Cisj
IGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgaXRlcnRvb2xzCitpbXBv
cnQgb3BlcmF0b3IKK2ltcG9ydCB3YXJuaW5ncworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gcGFj
a2FnaW5nLnNwZWNpZmllcnMgaW1wb3J0ICgKKyAgICBJbnZhbGlkU3BlY2lmaWVyLAorICAgIExl
Z2FjeVNwZWNpZmllciwKKyAgICBTcGVjaWZpZXIsCisgICAgU3BlY2lmaWVyU2V0LAorKQorZnJv
bSBwYWNrYWdpbmcudmVyc2lvbiBpbXBvcnQgTGVnYWN5VmVyc2lvbiwgVmVyc2lvbiwgcGFyc2UK
KworZnJvbSAudGVzdF92ZXJzaW9uIGltcG9ydCBWRVJTSU9OUywgTEVHQUNZX1ZFUlNJT05TCisK
KworTEVHQUNZX1NQRUNJRklFUlMgPSBbCisgICAgIj09Mi4xLjAuMyIsCisgICAgIiE9Mi4yLjAu
NSIsCisgICAgIjw9NSIsCisgICAgIj49Ny45YTEiLAorICAgICI8MS4wLmRldjEiLAorICAgICI+
Mi4wLnBvc3QxIiwKK10KKworU1BFQ0lGSUVSUyA9IFsKKyAgICAifj0yLjAiLAorICAgICI9PTIu
MS4qIiwKKyAgICAiPT0yLjEuMC4zIiwKKyAgICAiIT0yLjIuKiIsCisgICAgIiE9Mi4yLjAuNSIs
CisgICAgIjw9NSIsCisgICAgIj49Ny45YTEiLAorICAgICI8MS4wLmRldjEiLAorICAgICI+Mi4w
LnBvc3QxIiwKKyAgICAiPT09bG9sd2F0IiwKK10KKworCitjbGFzcyBUZXN0U3BlY2lmaWVyOgor
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3BlY2lmaWVyIiwgU1BFQ0lGSUVSUykKKyAg
ICBkZWYgdGVzdF9zcGVjaWZpZXJzX3ZhbGlkKHNlbGYsIHNwZWNpZmllcik6CisgICAgICAgIFNw
ZWNpZmllcihzcGVjaWZpZXIpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAg
ICAgICJzcGVjaWZpZXIiLAorICAgICAgICBbCisgICAgICAgICAgICAjIE9wZXJhdG9yLWxlc3Mg
c3BlY2lmaWVyCisgICAgICAgICAgICAiMi4wIiwKKyAgICAgICAgICAgICMgSW52YWxpZCBvcGVy
YXRvcgorICAgICAgICAgICAgIj0+Mi4wIiwKKyAgICAgICAgICAgICMgVmVyc2lvbi1sZXNzIHNw
ZWNpZmllcgorICAgICAgICAgICAgIj09IiwKKyAgICAgICAgICAgICMgTG9jYWwgc2VnbWVudCBv
biBvcGVyYXRvcnMgd2hpY2ggZG9uJ3Qgc3VwcG9ydCB0aGVtCisgICAgICAgICAgICAifj0xLjAr
NSIsCisgICAgICAgICAgICAiPj0xLjArZGVhZGJlZWYiLAorICAgICAgICAgICAgIjw9MS4wK2Fi
YzEyMyIsCisgICAgICAgICAgICAiPjEuMCt3YXR3YXQiLAorICAgICAgICAgICAgIjwxLjArMS4w
IiwKKyAgICAgICAgICAgICMgUHJlZml4IG1hdGNoaW5nIG9uIG9wZXJhdG9ycyB3aGljaCBkb24n
dCBzdXBwb3J0IHRoZW0KKyAgICAgICAgICAgICJ+PTEuMC4qIiwKKyAgICAgICAgICAgICI+PTEu
MC4qIiwKKyAgICAgICAgICAgICI8PTEuMC4qIiwKKyAgICAgICAgICAgICI+MS4wLioiLAorICAg
ICAgICAgICAgIjwxLjAuKiIsCisgICAgICAgICAgICAjIENvbWJpbmF0aW9uIG9mIGxvY2FsIGFu
ZCBwcmVmaXggbWF0Y2hpbmcgb24gb3BlcmF0b3JzIHdoaWNoIGRvCisgICAgICAgICAgICAjIHN1
cHBvcnQgb25lIG9yIHRoZSBvdGhlcgorICAgICAgICAgICAgIj09MS4wLiorNSIsCisgICAgICAg
ICAgICAiIT0xLjAuKitkZWFkYmVlZiIsCisgICAgICAgICAgICAjIFByZWZpeCBtYXRjaGluZyBj
YW5ub3QgYmUgdXNlZCBpbnNpZGUgb2YgYSBsb2NhbCB2ZXJzaW9uCisgICAgICAgICAgICAiPT0x
LjArNS4qIiwKKyAgICAgICAgICAgICIhPTEuMCtkZWFkYmVlZi4qIiwKKyAgICAgICAgICAgICMg
UHJlZml4IG1hdGNoaW5nIG11c3QgYXBwZWFyIGF0IHRoZSBlbmQKKyAgICAgICAgICAgICI9PTEu
MC4qLjUiLAorICAgICAgICAgICAgIyBDb21wYXRpYmxlIG9wZXJhdG9yIHJlcXVpcmVzIDIgZGln
aXRzIGluIHRoZSByZWxlYXNlIG9wZXJhdG9yCisgICAgICAgICAgICAifj0xIiwKKyAgICAgICAg
ICAgICMgQ2Fubm90IHVzZSBhIHByZWZpeCBtYXRjaGluZyBhZnRlciBhIC5kZXZOIHZlcnNpb24K
KyAgICAgICAgICAgICI9PTEuMC5kZXYxLioiLAorICAgICAgICAgICAgIiE9MS4wLmRldjEuKiIs
CisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3NwZWNpZmllcnNfaW52YWxpZChzZWxm
LCBzcGVjaWZpZXIpOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW52YWxpZFNwZWNpZmll
cik6CisgICAgICAgICAgICBTcGVjaWZpZXIoc3BlY2lmaWVyKQorCisgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKAorICAgICAgICAidmVyc2lvbiIsCisgICAgICAgIFsKKyAgICAgICAgICAg
ICMgVmFyaW91cyBkZXZlbG9wbWVudCByZWxlYXNlIGluY2FybmF0aW9ucworICAgICAgICAgICAg
IjEuMGRldiIsCisgICAgICAgICAgICAiMS4wLmRldiIsCisgICAgICAgICAgICAiMS4wZGV2MSIs
CisgICAgICAgICAgICAiMS4wZGV2IiwKKyAgICAgICAgICAgICIxLjAtZGV2IiwKKyAgICAgICAg
ICAgICIxLjAtZGV2MSIsCisgICAgICAgICAgICAiMS4wREVWIiwKKyAgICAgICAgICAgICIxLjAu
REVWIiwKKyAgICAgICAgICAgICIxLjBERVYxIiwKKyAgICAgICAgICAgICIxLjBERVYiLAorICAg
ICAgICAgICAgIjEuMC5ERVYxIiwKKyAgICAgICAgICAgICIxLjAtREVWIiwKKyAgICAgICAgICAg
ICIxLjAtREVWMSIsCisgICAgICAgICAgICAjIFZhcmlvdXMgYWxwaGEgaW5jYXJuYXRpb25zCisg
ICAgICAgICAgICAiMS4wYSIsCisgICAgICAgICAgICAiMS4wLmEiLAorICAgICAgICAgICAgIjEu
MC5hMSIsCisgICAgICAgICAgICAiMS4wLWEiLAorICAgICAgICAgICAgIjEuMC1hMSIsCisgICAg
ICAgICAgICAiMS4wYWxwaGEiLAorICAgICAgICAgICAgIjEuMC5hbHBoYSIsCisgICAgICAgICAg
ICAiMS4wLmFscGhhMSIsCisgICAgICAgICAgICAiMS4wLWFscGhhIiwKKyAgICAgICAgICAgICIx
LjAtYWxwaGExIiwKKyAgICAgICAgICAgICIxLjBBIiwKKyAgICAgICAgICAgICIxLjAuQSIsCisg
ICAgICAgICAgICAiMS4wLkExIiwKKyAgICAgICAgICAgICIxLjAtQSIsCisgICAgICAgICAgICAi
MS4wLUExIiwKKyAgICAgICAgICAgICIxLjBBTFBIQSIsCisgICAgICAgICAgICAiMS4wLkFMUEhB
IiwKKyAgICAgICAgICAgICIxLjAuQUxQSEExIiwKKyAgICAgICAgICAgICIxLjAtQUxQSEEiLAor
ICAgICAgICAgICAgIjEuMC1BTFBIQTEiLAorICAgICAgICAgICAgIyBWYXJpb3VzIGJldGEgaW5j
YXJuYXRpb25zCisgICAgICAgICAgICAiMS4wYiIsCisgICAgICAgICAgICAiMS4wLmIiLAorICAg
ICAgICAgICAgIjEuMC5iMSIsCisgICAgICAgICAgICAiMS4wLWIiLAorICAgICAgICAgICAgIjEu
MC1iMSIsCisgICAgICAgICAgICAiMS4wYmV0YSIsCisgICAgICAgICAgICAiMS4wLmJldGEiLAor
ICAgICAgICAgICAgIjEuMC5iZXRhMSIsCisgICAgICAgICAgICAiMS4wLWJldGEiLAorICAgICAg
ICAgICAgIjEuMC1iZXRhMSIsCisgICAgICAgICAgICAiMS4wQiIsCisgICAgICAgICAgICAiMS4w
LkIiLAorICAgICAgICAgICAgIjEuMC5CMSIsCisgICAgICAgICAgICAiMS4wLUIiLAorICAgICAg
ICAgICAgIjEuMC1CMSIsCisgICAgICAgICAgICAiMS4wQkVUQSIsCisgICAgICAgICAgICAiMS4w
LkJFVEEiLAorICAgICAgICAgICAgIjEuMC5CRVRBMSIsCisgICAgICAgICAgICAiMS4wLUJFVEEi
LAorICAgICAgICAgICAgIjEuMC1CRVRBMSIsCisgICAgICAgICAgICAjIFZhcmlvdXMgcmVsZWFz
ZSBjYW5kaWRhdGUgaW5jYXJuYXRpb25zCisgICAgICAgICAgICAiMS4wYyIsCisgICAgICAgICAg
ICAiMS4wLmMiLAorICAgICAgICAgICAgIjEuMC5jMSIsCisgICAgICAgICAgICAiMS4wLWMiLAor
ICAgICAgICAgICAgIjEuMC1jMSIsCisgICAgICAgICAgICAiMS4wcmMiLAorICAgICAgICAgICAg
IjEuMC5yYyIsCisgICAgICAgICAgICAiMS4wLnJjMSIsCisgICAgICAgICAgICAiMS4wLXJjIiwK
KyAgICAgICAgICAgICIxLjAtcmMxIiwKKyAgICAgICAgICAgICIxLjBDIiwKKyAgICAgICAgICAg
ICIxLjAuQyIsCisgICAgICAgICAgICAiMS4wLkMxIiwKKyAgICAgICAgICAgICIxLjAtQyIsCisg
ICAgICAgICAgICAiMS4wLUMxIiwKKyAgICAgICAgICAgICIxLjBSQyIsCisgICAgICAgICAgICAi
MS4wLlJDIiwKKyAgICAgICAgICAgICIxLjAuUkMxIiwKKyAgICAgICAgICAgICIxLjAtUkMiLAor
ICAgICAgICAgICAgIjEuMC1SQzEiLAorICAgICAgICAgICAgIyBWYXJpb3VzIHBvc3QgcmVsZWFz
ZSBpbmNhcm5hdGlvbnMKKyAgICAgICAgICAgICIxLjBwb3N0IiwKKyAgICAgICAgICAgICIxLjAu
cG9zdCIsCisgICAgICAgICAgICAiMS4wcG9zdDEiLAorICAgICAgICAgICAgIjEuMHBvc3QiLAor
ICAgICAgICAgICAgIjEuMC1wb3N0IiwKKyAgICAgICAgICAgICIxLjAtcG9zdDEiLAorICAgICAg
ICAgICAgIjEuMFBPU1QiLAorICAgICAgICAgICAgIjEuMC5QT1NUIiwKKyAgICAgICAgICAgICIx
LjBQT1NUMSIsCisgICAgICAgICAgICAiMS4wUE9TVCIsCisgICAgICAgICAgICAiMS4wLlBPU1Qx
IiwKKyAgICAgICAgICAgICIxLjAtUE9TVCIsCisgICAgICAgICAgICAiMS4wLVBPU1QxIiwKKyAg
ICAgICAgICAgICIxLjAtNSIsCisgICAgICAgICAgICAjIExvY2FsIHZlcnNpb24gY2FzZSBpbnNl
bnNpdGl2aXR5CisgICAgICAgICAgICAiMS4wK0FiQyIKKyAgICAgICAgICAgICMgSW50ZWdlciBO
b3JtYWxpemF0aW9uCisgICAgICAgICAgICAiMS4wMSIsCisgICAgICAgICAgICAiMS4wYTA1IiwK
KyAgICAgICAgICAgICIxLjBiMDciLAorICAgICAgICAgICAgIjEuMGMwNTYiLAorICAgICAgICAg
ICAgIjEuMHJjMDkiLAorICAgICAgICAgICAgIjEuMC5wb3N0MDAwIiwKKyAgICAgICAgICAgICIx
LjEuZGV2MDkwMDAiLAorICAgICAgICAgICAgIjAwITEuMiIsCisgICAgICAgICAgICAiMDEwMCEw
LjAiLAorICAgICAgICAgICAgIyBWYXJpb3VzIG90aGVyIG5vcm1hbGl6YXRpb25zCisgICAgICAg
ICAgICAidjEuMCIsCisgICAgICAgICAgICAiICBcciBcZiBcdiB2MS4wXHRcbiIsCisgICAgICAg
IF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3NwZWNpZmllcnNfbm9ybWFsaXplZChzZWxmLCB2ZXJz
aW9uKToKKyAgICAgICAgaWYgIisiIG5vdCBpbiB2ZXJzaW9uOgorICAgICAgICAgICAgb3BzID0g
WyJ+PSIsICI9PSIsICIhPSIsICI8PSIsICI+PSIsICI8IiwgIj4iXQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgb3BzID0gWyI9PSIsICIhPSJdCisKKyAgICAgICAgZm9yIG9wIGluIG9wczoK
KyAgICAgICAgICAgIFNwZWNpZmllcihvcCArIHZlcnNpb24pCisKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoCisgICAgICAgICgic3BlY2lmaWVyIiwgImV4cGVjdGVkIiksCisgICAgICAg
IFsKKyAgICAgICAgICAgICMgU2luZ2xlIGl0ZW0gc3BlY2lmaWVycyBzaG91bGQganVzdCBiZSBy
ZWZsZXhpdmUKKyAgICAgICAgICAgICgiIT0yLjAiLCAiIT0yLjAiKSwKKyAgICAgICAgICAgICgi
PDIuMCIsICI8Mi4wIiksCisgICAgICAgICAgICAoIjw9Mi4wIiwgIjw9Mi4wIiksCisgICAgICAg
ICAgICAoIj09Mi4wIiwgIj09Mi4wIiksCisgICAgICAgICAgICAoIj4yLjAiLCAiPjIuMCIpLAor
ICAgICAgICAgICAgKCI+PTIuMCIsICI+PTIuMCIpLAorICAgICAgICAgICAgKCJ+PTIuMCIsICJ+
PTIuMCIpLAorICAgICAgICAgICAgIyBTcGFjZXMgc2hvdWxkIGJlIHJlbW92ZWQKKyAgICAgICAg
ICAgICgiPCAyIiwgIjwyIiksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3NwZWNp
ZmllcnNfc3RyX2FuZF9yZXByKHNlbGYsIHNwZWNpZmllciwgZXhwZWN0ZWQpOgorICAgICAgICBz
cGVjID0gU3BlY2lmaWVyKHNwZWNpZmllcikKKworICAgICAgICBhc3NlcnQgc3RyKHNwZWMpID09
IGV4cGVjdGVkCisgICAgICAgIGFzc2VydCByZXByKHNwZWMpID09ICI8U3BlY2lmaWVyKHswfSk+
Ii5mb3JtYXQocmVwcihleHBlY3RlZCkpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
InNwZWNpZmllciIsIFNQRUNJRklFUlMpCisgICAgZGVmIHRlc3Rfc3BlY2lmaWVyc19oYXNoKHNl
bGYsIHNwZWNpZmllcik6CisgICAgICAgIGFzc2VydCBoYXNoKFNwZWNpZmllcihzcGVjaWZpZXIp
KSA9PSBoYXNoKFNwZWNpZmllcihzcGVjaWZpZXIpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKAorICAgICAgICAoImxlZnQiLCAicmlnaHQiLCAib3AiKSwKKyAgICAgICAgaXRlcnRv
b2xzLmNoYWluKAorICAgICAgICAgICAgKgorICAgICAgICAgICAgIyBWZXJpZnkgdGhhdCB0aGUg
ZXF1YWwgKD09KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAgICAgIFtbKHgsIHgs
IG9wZXJhdG9yLmVxKSBmb3IgeCBpbiBTUEVDSUZJRVJTXV0KKyAgICAgICAgICAgICsKKyAgICAg
ICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIG5vdCBlcXVhbCAoIT0pIG9wZXJhdG9yIHdvcmtzIGNv
cnJlY3RseQorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIFsoeCwgeSwgb3BlcmF0b3Iu
bmUpIGZvciBqLCB5IGluIGVudW1lcmF0ZShTUEVDSUZJRVJTKSBpZiBpICE9IGpdCisgICAgICAg
ICAgICAgICAgZm9yIGksIHggaW4gZW51bWVyYXRlKFNQRUNJRklFUlMpCisgICAgICAgICAgICBd
CisgICAgICAgICksCisgICAgKQorICAgIGRlZiB0ZXN0X2NvbXBhcmlzb25fdHJ1ZShzZWxmLCBs
ZWZ0LCByaWdodCwgb3ApOgorICAgICAgICBhc3NlcnQgb3AoU3BlY2lmaWVyKGxlZnQpLCBTcGVj
aWZpZXIocmlnaHQpKQorICAgICAgICBhc3NlcnQgb3AobGVmdCwgU3BlY2lmaWVyKHJpZ2h0KSkK
KyAgICAgICAgYXNzZXJ0IG9wKFNwZWNpZmllcihsZWZ0KSwgcmlnaHQpCisKKyAgICBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoKCJsZWZ0IiwgInJpZ2h0IiksIFsoIj09Mi44LjAiLCAiPT0yLjgi
KV0pCisgICAgZGVmIHRlc3RfY29tcGFyaXNvbl9jYW5vbmljYWxpemVzKHNlbGYsIGxlZnQsIHJp
Z2h0KToKKyAgICAgICAgYXNzZXJ0IFNwZWNpZmllcihsZWZ0KSA9PSBTcGVjaWZpZXIocmlnaHQp
CisgICAgICAgIGFzc2VydCBsZWZ0ID09IFNwZWNpZmllcihyaWdodCkKKyAgICAgICAgYXNzZXJ0
IFNwZWNpZmllcihsZWZ0KSA9PSByaWdodAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KAorICAgICAgICAoImxlZnQiLCAicmlnaHQiLCAib3AiKSwKKyAgICAgICAgaXRlcnRvb2xzLmNo
YWluKAorICAgICAgICAgICAgKgorICAgICAgICAgICAgIyBWZXJpZnkgdGhhdCB0aGUgZXF1YWwg
KD09KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAgICAgIFtbKHgsIHgsIG9wZXJh
dG9yLm5lKSBmb3IgeCBpbiBTUEVDSUZJRVJTXV0KKyAgICAgICAgICAgICsKKyAgICAgICAgICAg
ICMgVmVyaWZ5IHRoYXQgdGhlIG5vdCBlcXVhbCAoIT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3Rs
eQorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIFsoeCwgeSwgb3BlcmF0b3IuZXEpIGZv
ciBqLCB5IGluIGVudW1lcmF0ZShTUEVDSUZJRVJTKSBpZiBpICE9IGpdCisgICAgICAgICAgICAg
ICAgZm9yIGksIHggaW4gZW51bWVyYXRlKFNQRUNJRklFUlMpCisgICAgICAgICAgICBdCisgICAg
ICAgICksCisgICAgKQorICAgIGRlZiB0ZXN0X2NvbXBhcmlzb25fZmFsc2Uoc2VsZiwgbGVmdCwg
cmlnaHQsIG9wKToKKyAgICAgICAgYXNzZXJ0IG5vdCBvcChTcGVjaWZpZXIobGVmdCksIFNwZWNp
ZmllcihyaWdodCkpCisgICAgICAgIGFzc2VydCBub3Qgb3AobGVmdCwgU3BlY2lmaWVyKHJpZ2h0
KSkKKyAgICAgICAgYXNzZXJ0IG5vdCBvcChTcGVjaWZpZXIobGVmdCksIHJpZ2h0KQorCisgICAg
ZGVmIHRlc3RfY29tcGFyaXNvbl9ub25fc3BlY2lmaWVyKHNlbGYpOgorICAgICAgICBhc3NlcnQg
U3BlY2lmaWVyKCI9PTEuMCIpICE9IDEyCisgICAgICAgIGFzc2VydCBub3QgU3BlY2lmaWVyKCI9
PTEuMCIpID09IDEyCisgICAgICAgIGFzc2VydCBTcGVjaWZpZXIoIj09MS4wIikgIT0gIjEyIgor
ICAgICAgICBhc3NlcnQgbm90IFNwZWNpZmllcigiPT0xLjAiKSA9PSAiMTIiCisKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVyc2lvbiIsICJzcGVjIiwgImV4cGVj
dGVkIiksCisgICAgICAgIFsKKyAgICAgICAgICAgICh2LCBzLCBUcnVlKQorICAgICAgICAgICAg
Zm9yIHYsIHMgaW4gWworICAgICAgICAgICAgICAgICMgVGVzdCB0aGUgZXF1YWxpdHkgb3BlcmF0
aW9uCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPT0yIiksCisgICAgICAgICAgICAgICAgKCIy
LjAiLCAiPT0yLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCIsICI9PTIuMC4wIiksCisgICAg
ICAgICAgICAgICAgKCIyLjArZGVhZGJlZWYiLCAiPT0yIiksCisgICAgICAgICAgICAgICAgKCIy
LjArZGVhZGJlZWYiLCAiPT0yLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCtkZWFkYmVlZiIs
ICI9PTIuMC4wIiksCisgICAgICAgICAgICAgICAgKCIyLjArZGVhZGJlZWYiLCAiPT0yK2RlYWRi
ZWVmIiksCisgICAgICAgICAgICAgICAgKCIyLjArZGVhZGJlZWYiLCAiPT0yLjArZGVhZGJlZWYi
KSwKKyAgICAgICAgICAgICAgICAoIjIuMCtkZWFkYmVlZiIsICI9PTIuMC4wK2RlYWRiZWVmIiks
CisgICAgICAgICAgICAgICAgKCIyLjArZGVhZGJlZWYuMCIsICI9PTIuMC4wK2RlYWRiZWVmLjAw
IiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoZSBlcXVhbGl0eSBvcGVyYXRpb24gd2l0aCBh
IHByZWZpeAorICAgICAgICAgICAgICAgICgiMi5kZXYxIiwgIj09Mi4qIiksCisgICAgICAgICAg
ICAgICAgKCIyYTEiLCAiPT0yLioiKSwKKyAgICAgICAgICAgICAgICAoIjJhMS5wb3N0MSIsICI9
PTIuKiIpLAorICAgICAgICAgICAgICAgICgiMmIxIiwgIj09Mi4qIiksCisgICAgICAgICAgICAg
ICAgKCIyYjEuZGV2MSIsICI9PTIuKiIpLAorICAgICAgICAgICAgICAgICgiMmMxIiwgIj09Mi4q
IiksCisgICAgICAgICAgICAgICAgKCIyYzEucG9zdDEuZGV2MSIsICI9PTIuKiIpLAorICAgICAg
ICAgICAgICAgICgiMnJjMSIsICI9PTIuKiIpLAorICAgICAgICAgICAgICAgICgiMiIsICI9PTIu
KiIpLAorICAgICAgICAgICAgICAgICgiMi4wIiwgIj09Mi4qIiksCisgICAgICAgICAgICAgICAg
KCIyLjAuMCIsICI9PTIuKiIpLAorICAgICAgICAgICAgICAgICgiMi4wLnBvc3QxIiwgIj09Mi4w
LnBvc3QxLioiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC5wb3N0MS5kZXYxIiwgIj09Mi4wLnBv
c3QxLioiKSwKKyAgICAgICAgICAgICAgICAoIjIuMStsb2NhbC52ZXJzaW9uIiwgIj09Mi4xLioi
KSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGluLWVxdWFsaXR5IG9wZXJhdGlvbgorICAg
ICAgICAgICAgICAgICgiMi4xIiwgIiE9MiIpLAorICAgICAgICAgICAgICAgICgiMi4xIiwgIiE9
Mi4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAuMSIsICIhPTIiKSwKKyAgICAgICAgICAgICAg
ICAoIjIuMC4xIiwgIiE9Mi4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAuMSIsICIhPTIuMC4w
IiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiIT0yLjArZGVhZGJlZWYiKSwKKyAgICAgICAg
ICAgICAgICAjIFRlc3QgdGhlIGluLWVxdWFsaXR5IG9wZXJhdGlvbiB3aXRoIGEgcHJlZml4Cisg
ICAgICAgICAgICAgICAgKCIyLjAiLCAiIT0zLioiKSwKKyAgICAgICAgICAgICAgICAoIjIuMSIs
ICIhPTIuMC4qIiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoZSBncmVhdGVyIHRoYW4gZXF1
YWwgb3BlcmF0aW9uCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPj0yIiksCisgICAgICAgICAg
ICAgICAgKCIyLjAiLCAiPj0yLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCIsICI+PTIuMC4w
IiksCisgICAgICAgICAgICAgICAgKCIyLjAucG9zdDEiLCAiPj0yIiksCisgICAgICAgICAgICAg
ICAgKCIyLjAucG9zdDEuZGV2MSIsICI+PTIiKSwKKyAgICAgICAgICAgICAgICAoIjMiLCAiPj0y
IiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoZSBsZXNzIHRoYW4gZXF1YWwgb3BlcmF0aW9u
CisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPD0yIiksCisgICAgICAgICAgICAgICAgKCIyLjAi
LCAiPD0yLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCIsICI8PTIuMC4wIiksCisgICAgICAg
ICAgICAgICAgKCIyLjAuZGV2MSIsICI8PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGExIiwg
Ijw9MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYTEuZGV2MSIsICI8PTIiKSwKKyAgICAgICAg
ICAgICAgICAoIjIuMGIxIiwgIjw9MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYjEucG9zdDEi
LCAiPD0yIiksCisgICAgICAgICAgICAgICAgKCIyLjBjMSIsICI8PTIiKSwKKyAgICAgICAgICAg
ICAgICAoIjIuMGMxLnBvc3QxLmRldjEiLCAiPD0yIiksCisgICAgICAgICAgICAgICAgKCIyLjBy
YzEiLCAiPD0yIiksCisgICAgICAgICAgICAgICAgKCIxIiwgIjw9MiIpLAorICAgICAgICAgICAg
ICAgICMgVGVzdCB0aGUgZ3JlYXRlciB0aGFuIG9wZXJhdGlvbgorICAgICAgICAgICAgICAgICgi
MyIsICI+MiIpLAorICAgICAgICAgICAgICAgICgiMi4xIiwgIj4yLjAiKSwKKyAgICAgICAgICAg
ICAgICAoIjIuMC4xIiwgIj4yIiksCisgICAgICAgICAgICAgICAgKCIyLjEucG9zdDEiLCAiPjIi
KSwKKyAgICAgICAgICAgICAgICAoIjIuMStsb2NhbC52ZXJzaW9uIiwgIj4yIiksCisgICAgICAg
ICAgICAgICAgIyBUZXN0IHRoZSBsZXNzIHRoYW4gb3BlcmF0aW9uCisgICAgICAgICAgICAgICAg
KCIxIiwgIjwyIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPDIuMSIpLAorICAgICAgICAg
ICAgICAgICgiMi4wLmRldjAiLCAiPDIuMSIpLAorICAgICAgICAgICAgICAgICMgVGVzdCB0aGUg
Y29tcGF0aWJpbGl0eSBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICAoIjEiLCAifj0xLjAiKSwK
KyAgICAgICAgICAgICAgICAoIjEuMC4xIiwgIn49MS4wIiksCisgICAgICAgICAgICAgICAgKCIx
LjEiLCAifj0xLjAiKSwKKyAgICAgICAgICAgICAgICAoIjEuOTk5OTk5OSIsICJ+PTEuMCIpLAor
ICAgICAgICAgICAgICAgICMgVGVzdCB0aGF0IGVwb2NocyBhcmUgaGFuZGxlZCBzYW5lbHkKKyAg
ICAgICAgICAgICAgICAoIjIhMS4wIiwgIn49MiExLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIh
MS4wIiwgIj09MiExLioiKSwKKyAgICAgICAgICAgICAgICAoIjIhMS4wIiwgIj09MiExLjAiKSwK
KyAgICAgICAgICAgICAgICAoIjIhMS4wIiwgIiE9MS4wIiksCisgICAgICAgICAgICAgICAgKCIx
LjAiLCAiIT0yITEuMCIpLAorICAgICAgICAgICAgICAgICgiMS4wIiwgIjw9MiEwLjEiKSwKKyAg
ICAgICAgICAgICAgICAoIjIhMS4wIiwgIj49Mi4wIiksCisgICAgICAgICAgICAgICAgKCIxLjAi
LCAiPDIhMC4xIiksCisgICAgICAgICAgICAgICAgKCIyITEuMCIsICI+Mi4wIiksCisgICAgICAg
ICAgICAgICAgIyBUZXN0IHNvbWUgbm9ybWFsaXphdGlvbiBydWxlcworICAgICAgICAgICAgICAg
ICgiMi4wLjUiLCAiPjIuMGRldiIpLAorICAgICAgICAgICAgXQorICAgICAgICBdCisgICAgICAg
ICsgWworICAgICAgICAgICAgKHYsIHMsIEZhbHNlKQorICAgICAgICAgICAgZm9yIHYsIHMgaW4g
WworICAgICAgICAgICAgICAgICMgVGVzdCB0aGUgZXF1YWxpdHkgb3BlcmF0aW9uCisgICAgICAg
ICAgICAgICAgKCIyLjEiLCAiPT0yIiksCisgICAgICAgICAgICAgICAgKCIyLjEiLCAiPT0yLjAi
KSwKKyAgICAgICAgICAgICAgICAoIjIuMSIsICI9PTIuMC4wIiksCisgICAgICAgICAgICAgICAg
KCIyLjAiLCAiPT0yLjArZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGVx
dWFsaXR5IG9wZXJhdGlvbiB3aXRoIGEgcHJlZml4CisgICAgICAgICAgICAgICAgKCIyLjAiLCAi
PT0zLioiKSwKKyAgICAgICAgICAgICAgICAoIjIuMSIsICI9PTIuMC4qIiksCisgICAgICAgICAg
ICAgICAgIyBUZXN0IHRoZSBpbi1lcXVhbGl0eSBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICAo
IjIuMCIsICIhPTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCIsICIhPTIuMCIpLAorICAgICAg
ICAgICAgICAgICgiMi4wIiwgIiE9Mi4wLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCtkZWFk
YmVlZiIsICIhPTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCtkZWFkYmVlZiIsICIhPTIuMCIp
LAorICAgICAgICAgICAgICAgICgiMi4wK2RlYWRiZWVmIiwgIiE9Mi4wLjAiKSwKKyAgICAgICAg
ICAgICAgICAoIjIuMCtkZWFkYmVlZiIsICIhPTIrZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICAg
ICAoIjIuMCtkZWFkYmVlZiIsICIhPTIuMCtkZWFkYmVlZiIpLAorICAgICAgICAgICAgICAgICgi
Mi4wK2RlYWRiZWVmIiwgIiE9Mi4wLjArZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICAgICAoIjIu
MCtkZWFkYmVlZi4wIiwgIiE9Mi4wLjArZGVhZGJlZWYuMDAiKSwKKyAgICAgICAgICAgICAgICAj
IFRlc3QgdGhlIGluLWVxdWFsaXR5IG9wZXJhdGlvbiB3aXRoIGEgcHJlZml4CisgICAgICAgICAg
ICAgICAgKCIyLmRldjEiLCAiIT0yLioiKSwKKyAgICAgICAgICAgICAgICAoIjJhMSIsICIhPTIu
KiIpLAorICAgICAgICAgICAgICAgICgiMmExLnBvc3QxIiwgIiE9Mi4qIiksCisgICAgICAgICAg
ICAgICAgKCIyYjEiLCAiIT0yLioiKSwKKyAgICAgICAgICAgICAgICAoIjJiMS5kZXYxIiwgIiE9
Mi4qIiksCisgICAgICAgICAgICAgICAgKCIyYzEiLCAiIT0yLioiKSwKKyAgICAgICAgICAgICAg
ICAoIjJjMS5wb3N0MS5kZXYxIiwgIiE9Mi4qIiksCisgICAgICAgICAgICAgICAgKCIycmMxIiwg
IiE9Mi4qIiksCisgICAgICAgICAgICAgICAgKCIyIiwgIiE9Mi4qIiksCisgICAgICAgICAgICAg
ICAgKCIyLjAiLCAiIT0yLioiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC4wIiwgIiE9Mi4qIiks
CisgICAgICAgICAgICAgICAgKCIyLjAucG9zdDEiLCAiIT0yLjAucG9zdDEuKiIpLAorICAgICAg
ICAgICAgICAgICgiMi4wLnBvc3QxLmRldjEiLCAiIT0yLjAucG9zdDEuKiIpLAorICAgICAgICAg
ICAgICAgICMgVGVzdCB0aGUgZ3JlYXRlciB0aGFuIGVxdWFsIG9wZXJhdGlvbgorICAgICAgICAg
ICAgICAgICgiMi4wLmRldjEiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgKCIyLjBhMSIsICI+
PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGExLmRldjEiLCAiPj0yIiksCisgICAgICAgICAg
ICAgICAgKCIyLjBiMSIsICI+PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGIxLnBvc3QxIiwg
Ij49MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYzEiLCAiPj0yIiksCisgICAgICAgICAgICAg
ICAgKCIyLjBjMS5wb3N0MS5kZXYxIiwgIj49MiIpLAorICAgICAgICAgICAgICAgICgiMi4wcmMx
IiwgIj49MiIpLAorICAgICAgICAgICAgICAgICgiMSIsICI+PTIiKSwKKyAgICAgICAgICAgICAg
ICAjIFRlc3QgdGhlIGxlc3MgdGhhbiBlcXVhbCBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICAo
IjIuMC5wb3N0MSIsICI8PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC5wb3N0MS5kZXYxIiwg
Ijw9MiIpLAorICAgICAgICAgICAgICAgICgiMyIsICI8PTIiKSwKKyAgICAgICAgICAgICAgICAj
IFRlc3QgdGhlIGdyZWF0ZXIgdGhhbiBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICAoIjEiLCAi
PjIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC5kZXYxIiwgIj4yIiksCisgICAgICAgICAgICAg
ICAgKCIyLjBhMSIsICI+MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYTEucG9zdDEiLCAiPjIi
KSwKKyAgICAgICAgICAgICAgICAoIjIuMGIxIiwgIj4yIiksCisgICAgICAgICAgICAgICAgKCIy
LjBiMS5kZXYxIiwgIj4yIiksCisgICAgICAgICAgICAgICAgKCIyLjBjMSIsICI+MiIpLAorICAg
ICAgICAgICAgICAgICgiMi4wYzEucG9zdDEuZGV2MSIsICI+MiIpLAorICAgICAgICAgICAgICAg
ICgiMi4wcmMxIiwgIj4yIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPjIiKSwKKyAgICAg
ICAgICAgICAgICAoIjIuMC5wb3N0MSIsICI+MiIpLAorICAgICAgICAgICAgICAgICgiMi4wLnBv
c3QxLmRldjEiLCAiPjIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCtsb2NhbC52ZXJzaW9uIiwg
Ij4yIiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoZSBsZXNzIHRoYW4gb3BlcmF0aW9uCisg
ICAgICAgICAgICAgICAgKCIyLjAuZGV2MSIsICI8MiIpLAorICAgICAgICAgICAgICAgICgiMi4w
YTEiLCAiPDIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGExLnBvc3QxIiwgIjwyIiksCisgICAg
ICAgICAgICAgICAgKCIyLjBiMSIsICI8MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYjIuZGV2
MSIsICI8MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYzEiLCAiPDIiKSwKKyAgICAgICAgICAg
ICAgICAoIjIuMGMxLnBvc3QxLmRldjEiLCAiPDIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMHJj
MSIsICI8MiIpLAorICAgICAgICAgICAgICAgICgiMi4wIiwgIjwyIiksCisgICAgICAgICAgICAg
ICAgKCIyLnBvc3QxIiwgIjwyIiksCisgICAgICAgICAgICAgICAgKCIyLnBvc3QxLmRldjEiLCAi
PDIiKSwKKyAgICAgICAgICAgICAgICAoIjMiLCAiPDIiKSwKKyAgICAgICAgICAgICAgICAjIFRl
c3QgdGhlIGNvbXBhdGliaWxpdHkgb3BlcmF0aW9uCisgICAgICAgICAgICAgICAgKCIyLjAiLCAi
fj0xLjAiKSwKKyAgICAgICAgICAgICAgICAoIjEuMS4wIiwgIn49MS4wLjAiKSwKKyAgICAgICAg
ICAgICAgICAoIjEuMS5wb3N0MSIsICJ+PTEuMC4wIiksCisgICAgICAgICAgICAgICAgIyBUZXN0
IHRoYXQgZXBvY2hzIGFyZSBoYW5kbGVkIHNhbmVseQorICAgICAgICAgICAgICAgICgiMS4wIiwg
In49MiExLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIhMS4wIiwgIn49MS4wIiksCisgICAgICAg
ICAgICAgICAgKCIyITEuMCIsICI9PTEuMCIpLAorICAgICAgICAgICAgICAgICgiMS4wIiwgIj09
MiExLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIhMS4wIiwgIj09MS4qIiksCisgICAgICAgICAg
ICAgICAgKCIxLjAiLCAiPT0yITEuKiIpLAorICAgICAgICAgICAgICAgICgiMiExLjAiLCAiIT0y
ITEuMCIpLAorICAgICAgICAgICAgXQorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9z
cGVjaWZpZXJzKHNlbGYsIHZlcnNpb24sIHNwZWMsIGV4cGVjdGVkKToKKyAgICAgICAgc3BlYyA9
IFNwZWNpZmllcihzcGVjLCBwcmVyZWxlYXNlcz1UcnVlKQorCisgICAgICAgIGlmIGV4cGVjdGVk
OgorICAgICAgICAgICAgIyBUZXN0IHRoYXQgdGhlIHBsYWluIHN0cmluZyBmb3JtIHdvcmtzCisg
ICAgICAgICAgICBhc3NlcnQgdmVyc2lvbiBpbiBzcGVjCisgICAgICAgICAgICBhc3NlcnQgc3Bl
Yy5jb250YWlucyh2ZXJzaW9uKQorCisgICAgICAgICAgICAjIFRlc3QgdGhhdCB0aGUgdmVyc2lv
biBpbnN0YW5jZSBmb3JtIHdvcmtzCisgICAgICAgICAgICBhc3NlcnQgVmVyc2lvbih2ZXJzaW9u
KSBpbiBzcGVjCisgICAgICAgICAgICBhc3NlcnQgc3BlYy5jb250YWlucyhWZXJzaW9uKHZlcnNp
b24pKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBUZXN0IHRoYXQgdGhlIHBsYWluIHN0
cmluZyBmb3JtIHdvcmtzCisgICAgICAgICAgICBhc3NlcnQgdmVyc2lvbiBub3QgaW4gc3BlYwor
ICAgICAgICAgICAgYXNzZXJ0IG5vdCBzcGVjLmNvbnRhaW5zKHZlcnNpb24pCisKKyAgICAgICAg
ICAgICMgVGVzdCB0aGF0IHRoZSB2ZXJzaW9uIGluc3RhbmNlIGZvcm0gd29ya3MKKyAgICAgICAg
ICAgIGFzc2VydCBWZXJzaW9uKHZlcnNpb24pIG5vdCBpbiBzcGVjCisgICAgICAgICAgICBhc3Nl
cnQgbm90IHNwZWMuY29udGFpbnMoVmVyc2lvbih2ZXJzaW9uKSkKKworICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJ2ZXJzaW9uIiwgInNwZWMiLCAiZXhwZWN0ZWQiKSwK
KyAgICAgICAgWworICAgICAgICAgICAgIyBUZXN0IGlkZW50aXR5IGNvbXBhcmlzb24gYnkgaXRz
ZWxmCisgICAgICAgICAgICAoImxvbHdhdCIsICI9PT1sb2x3YXQiLCBUcnVlKSwKKyAgICAgICAg
ICAgICgiTG9sd2F0IiwgIj09PWxvbHdhdCIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjAiLCAi
PT09MS4wIiwgVHJ1ZSksCisgICAgICAgICAgICAoIm5vcGUiLCAiPT09bG9sd2F0IiwgRmFsc2Up
LAorICAgICAgICAgICAgKCIxLjAuMCIsICI9PT0xLjAiLCBGYWxzZSksCisgICAgICAgICAgICAo
IjEuMC5kZXYwIiwgIj09PTEuMC5kZXYwIiwgVHJ1ZSksCisgICAgICAgIF0sCisgICAgKQorICAg
IGRlZiB0ZXN0X3NwZWNpZmllcnNfaWRlbnRpdHkoc2VsZiwgdmVyc2lvbiwgc3BlYywgZXhwZWN0
ZWQpOgorICAgICAgICBzcGVjID0gU3BlY2lmaWVyKHNwZWMpCisKKyAgICAgICAgaWYgZXhwZWN0
ZWQ6CisgICAgICAgICAgICAjIElkZW50aXR5IGNvbXBhcmlzb25zIG9ubHkgc3VwcG9ydCB0aGUg
cGxhaW4gc3RyaW5nIGZvcm0KKyAgICAgICAgICAgIGFzc2VydCB2ZXJzaW9uIGluIHNwZWMKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICMgSWRlbnRpdHkgY29tcGFyaXNvbnMgb25seSBzdXBw
b3J0IHRoZSBwbGFpbiBzdHJpbmcgZm9ybQorICAgICAgICAgICAgYXNzZXJ0IHZlcnNpb24gbm90
IGluIHNwZWMKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJzcGVj
aWZpZXIiLCAiZXhwZWN0ZWQiKSwKKyAgICAgICAgWworICAgICAgICAgICAgKCI9PTEuMCIsIEZh
bHNlKSwKKyAgICAgICAgICAgICgiPj0xLjAiLCBGYWxzZSksCisgICAgICAgICAgICAoIjw9MS4w
IiwgRmFsc2UpLAorICAgICAgICAgICAgKCJ+PTEuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgi
PDEuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiPjEuMCIsIEZhbHNlKSwKKyAgICAgICAgICAg
ICgiPDEuMC5kZXYxIiwgRmFsc2UpLAorICAgICAgICAgICAgKCI+MS4wLmRldjEiLCBGYWxzZSks
CisgICAgICAgICAgICAoIj09MS4wLioiLCBGYWxzZSksCisgICAgICAgICAgICAoIj09MS4wLmRl
djEiLCBUcnVlKSwKKyAgICAgICAgICAgICgiPj0xLjAuZGV2MSIsIFRydWUpLAorICAgICAgICAg
ICAgKCI8PTEuMC5kZXYxIiwgVHJ1ZSksCisgICAgICAgICAgICAoIn49MS4wLmRldjEiLCBUcnVl
KSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3Rfc3BlY2lmaWVyX3ByZXJlbGVhc2Vz
X2RldGVjdGlvbihzZWxmLCBzcGVjaWZpZXIsIGV4cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0IFNw
ZWNpZmllcihzcGVjaWZpZXIpLnByZXJlbGVhc2VzID09IGV4cGVjdGVkCisKKyAgICBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgic3BlY2lmaWVyIiwgInZlcnNpb24iLCAiZXhw
ZWN0ZWQiKSwKKyAgICAgICAgWworICAgICAgICAgICAgKCI+PTEuMCIsICIyLjAuZGV2MSIsIEZh
bHNlKSwKKyAgICAgICAgICAgICgiPj0yLjAuZGV2MSIsICIyLjBhMSIsIFRydWUpLAorICAgICAg
ICAgICAgKCI9PTIuMC4qIiwgIjIuMGExLmRldjEiLCBGYWxzZSksCisgICAgICAgICAgICAoIj09
Mi4wYTEuKiIsICIyLjBhMS5kZXYxIiwgVHJ1ZSksCisgICAgICAgICAgICAoIjw9Mi4wIiwgIjEu
MC5kZXYxIiwgRmFsc2UpLAorICAgICAgICAgICAgKCI8PTIuMC5kZXYxIiwgIjEuMGExIiwgVHJ1
ZSksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3NwZWNpZmllcnNfcHJlcmVsZWFz
ZXMoc2VsZiwgc3BlY2lmaWVyLCB2ZXJzaW9uLCBleHBlY3RlZCk6CisgICAgICAgIHNwZWMgPSBT
cGVjaWZpZXIoc3BlY2lmaWVyKQorCisgICAgICAgIGlmIGV4cGVjdGVkOgorICAgICAgICAgICAg
YXNzZXJ0IHZlcnNpb24gaW4gc3BlYworICAgICAgICAgICAgc3BlYy5wcmVyZWxlYXNlcyA9IEZh
bHNlCisgICAgICAgICAgICBhc3NlcnQgdmVyc2lvbiBub3QgaW4gc3BlYworICAgICAgICBlbHNl
OgorICAgICAgICAgICAgYXNzZXJ0IHZlcnNpb24gbm90IGluIHNwZWMKKyAgICAgICAgICAgIHNw
ZWMucHJlcmVsZWFzZXMgPSBUcnVlCisgICAgICAgICAgICBhc3NlcnQgdmVyc2lvbiBpbiBzcGVj
CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgic3BlY2lmaWVyIiwg
InByZXJlbGVhc2VzIiwgImlucHV0IiwgImV4cGVjdGVkIiksCisgICAgICAgIFsKKyAgICAgICAg
ICAgICgiPj0xLjAiLCBOb25lLCBbIjIuMGExIl0sIFsiMi4wYTEiXSksCisgICAgICAgICAgICAo
Ij49MS4wLmRldjEiLCBOb25lLCBbIjEuMCIsICIyLjBhMSJdLCBbIjEuMCIsICIyLjBhMSJdKSwK
KyAgICAgICAgICAgICgiPj0xLjAuZGV2MSIsIEZhbHNlLCBbIjEuMCIsICIyLjBhMSJdLCBbIjEu
MCJdKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3Rfc3BlY2lmaWVyX2ZpbHRlcihz
ZWxmLCBzcGVjaWZpZXIsIHByZXJlbGVhc2VzLCBpbnB1dCwgZXhwZWN0ZWQpOgorICAgICAgICBz
cGVjID0gU3BlY2lmaWVyKHNwZWNpZmllcikKKworICAgICAgICBrd2FyZ3MgPSB7InByZXJlbGVh
c2VzIjogcHJlcmVsZWFzZXN9IGlmIHByZXJlbGVhc2VzIGlzIG5vdCBOb25lIGVsc2Uge30KKwor
ICAgICAgICBhc3NlcnQgbGlzdChzcGVjLmZpbHRlcihpbnB1dCwgKiprd2FyZ3MpKSA9PSBleHBl
Y3RlZAorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgZGVmIHRlc3Rfc3BlY2lmaWVyX2V4
cGxpY2l0X2xlZ2FjeShzZWxmKToKKyAgICAgICAgYXNzZXJ0IFNwZWNpZmllcigiPT0xLjAiKS5j
b250YWlucyhMZWdhY3lWZXJzaW9uKCIxLjAiKSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgKKyAgICAgICAgKCJzcGVjIiwgIm9wIiksCisgICAgICAgIFsKKyAgICAgICAgICAgICgi
fj0yLjAiLCAifj0iKSwKKyAgICAgICAgICAgICgiPT0yLjEuKiIsICI9PSIpLAorICAgICAgICAg
ICAgKCI9PTIuMS4wLjMiLCAiPT0iKSwKKyAgICAgICAgICAgICgiIT0yLjIuKiIsICIhPSIpLAor
ICAgICAgICAgICAgKCIhPTIuMi4wLjUiLCAiIT0iKSwKKyAgICAgICAgICAgICgiPD01IiwgIjw9
IiksCisgICAgICAgICAgICAoIj49Ny45YTEiLCAiPj0iKSwKKyAgICAgICAgICAgICgiPDEuMC5k
ZXYxIiwgIjwiKSwKKyAgICAgICAgICAgICgiPjIuMC5wb3N0MSIsICI+IiksCisgICAgICAgICAg
ICAoIj09PWxvbHdhdCIsICI9PT0iKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3Rf
c3BlY2lmaWVyX29wZXJhdG9yX3Byb3BlcnR5KHNlbGYsIHNwZWMsIG9wKToKKyAgICAgICAgYXNz
ZXJ0IFNwZWNpZmllcihzcGVjKS5vcGVyYXRvciA9PSBvcAorCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKAorICAgICAgICAoInNwZWMiLCAidmVyc2lvbiIpLAorICAgICAgICBbCisgICAg
ICAgICAgICAoIn49Mi4wIiwgIjIuMCIpLAorICAgICAgICAgICAgKCI9PTIuMS4qIiwgIjIuMS4q
IiksCisgICAgICAgICAgICAoIj09Mi4xLjAuMyIsICIyLjEuMC4zIiksCisgICAgICAgICAgICAo
IiE9Mi4yLioiLCAiMi4yLioiKSwKKyAgICAgICAgICAgICgiIT0yLjIuMC41IiwgIjIuMi4wLjUi
KSwKKyAgICAgICAgICAgICgiPD01IiwgIjUiKSwKKyAgICAgICAgICAgICgiPj03LjlhMSIsICI3
LjlhMSIpLAorICAgICAgICAgICAgKCI8MS4wLmRldjEiLCAiMS4wLmRldjEiKSwKKyAgICAgICAg
ICAgICgiPjIuMC5wb3N0MSIsICIyLjAucG9zdDEiKSwKKyAgICAgICAgICAgICgiPT09bG9sd2F0
IiwgImxvbHdhdCIpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9zcGVjaWZpZXJf
dmVyc2lvbl9wcm9wZXJ0eShzZWxmLCBzcGVjLCB2ZXJzaW9uKToKKyAgICAgICAgYXNzZXJ0IFNw
ZWNpZmllcihzcGVjKS52ZXJzaW9uID09IHZlcnNpb24KKworICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgKKyAgICAgICAgKCJzcGVjIiwgImV4cGVjdGVkX2xlbmd0aCIpLAorICAgICAgICBb
KCIiLCAwKSwgKCI9PTIuMCIsIDEpLCAoIj49Mi4wIiwgMSksICgiPj0yLjAsPDMiLCAyKSwgKCI+
PTIuMCw8Myw9PTIuNCIsIDMpXSwKKyAgICApCisgICAgZGVmIHRlc3RfbGVuZ3RoKHNlbGYsIHNw
ZWMsIGV4cGVjdGVkX2xlbmd0aCk6CisgICAgICAgIHNwZWMgPSBTcGVjaWZpZXJTZXQoc3BlYykK
KyAgICAgICAgYXNzZXJ0IGxlbihzcGVjKSA9PSBleHBlY3RlZF9sZW5ndGgKKworICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJzcGVjIiwgImV4cGVjdGVkX2l0ZW1zIiks
CisgICAgICAgIFsKKyAgICAgICAgICAgICgiIiwgW10pLAorICAgICAgICAgICAgKCI9PTIuMCIs
IFsiPT0yLjAiXSksCisgICAgICAgICAgICAoIj49Mi4wIiwgWyI+PTIuMCJdKSwKKyAgICAgICAg
ICAgICgiPj0yLjAsPDMiLCBbIj49Mi4wIiwgIjwzIl0pLAorICAgICAgICAgICAgKCI+PTIuMCw8
Myw9PTIuNCIsIFsiPj0yLjAiLCAiPDMiLCAiPT0yLjQiXSksCisgICAgICAgIF0sCisgICAgKQor
ICAgIGRlZiB0ZXN0X2l0ZXJhdGlvbihzZWxmLCBzcGVjLCBleHBlY3RlZF9pdGVtcyk6CisgICAg
ICAgIHNwZWMgPSBTcGVjaWZpZXJTZXQoc3BlYykKKyAgICAgICAgaXRlbXMgPSBzZXQoc3RyKGl0
ZW0pIGZvciBpdGVtIGluIHNwZWMpCisgICAgICAgIGFzc2VydCBpdGVtcyA9PSBzZXQoZXhwZWN0
ZWRfaXRlbXMpCisKKworY2xhc3MgVGVzdExlZ2FjeVNwZWNpZmllcjoKKyAgICBkZWYgdGVzdF9s
ZWdhY3lfc3BlY2lmaWVyX2lzX2RlcHJlY2F0ZWQoc2VsZik6CisgICAgICAgIHdpdGggd2Fybmlu
Z3MuY2F0Y2hfd2FybmluZ3MocmVjb3JkPVRydWUpIGFzIHc6CisgICAgICAgICAgICBMZWdhY3lT
cGVjaWZpZXIoIj49c29tZS1sZWdhY3ktdmVyc2lvbiIpCisgICAgICAgICAgICBhc3NlcnQgbGVu
KHcpID09IDEKKyAgICAgICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKHdbMF0uY2F0ZWdvcnksIERl
cHJlY2F0aW9uV2FybmluZykKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAg
ICAgKCJ2ZXJzaW9uIiwgInNwZWMiLCAiZXhwZWN0ZWQiKSwKKyAgICAgICAgWworICAgICAgICAg
ICAgKHYsIHMsIFRydWUpCisgICAgICAgICAgICBmb3IgdiwgcyBpbiBbCisgICAgICAgICAgICAg
ICAgIyBUZXN0IHRoZSBlcXVhbGl0eSBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICAoIjIuMCIs
ICI9PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCIsICI9PTIuMCIpLAorICAgICAgICAgICAg
ICAgICgiMi4wIiwgIj09Mi4wLjAiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGluLWVx
dWFsaXR5IG9wZXJhdGlvbgorICAgICAgICAgICAgICAgICgiMi4xIiwgIiE9MiIpLAorICAgICAg
ICAgICAgICAgICgiMi4xIiwgIiE9Mi4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAuMSIsICIh
PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC4xIiwgIiE9Mi4wIiksCisgICAgICAgICAgICAg
ICAgKCIyLjAuMSIsICIhPTIuMC4wIiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoZSBncmVh
dGVyIHRoYW4gZXF1YWwgb3BlcmF0aW9uCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPj0yIiks
CisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPj0yLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIu
MCIsICI+PTIuMC4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAucG9zdDEiLCAiPj0yIiksCisg
ICAgICAgICAgICAgICAgKCIyLjAucG9zdDEuZGV2MSIsICI+PTIiKSwKKyAgICAgICAgICAgICAg
ICAoIjMiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoZSBsZXNzIHRoYW4gZXF1
YWwgb3BlcmF0aW9uCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPD0yIiksCisgICAgICAgICAg
ICAgICAgKCIyLjAiLCAiPD0yLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCIsICI8PTIuMC4w
IiksCisgICAgICAgICAgICAgICAgKCIyLjAuZGV2MSIsICI8PTIiKSwKKyAgICAgICAgICAgICAg
ICAoIjIuMGExIiwgIjw9MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYTEuZGV2MSIsICI8PTIi
KSwKKyAgICAgICAgICAgICAgICAoIjIuMGIxIiwgIjw9MiIpLAorICAgICAgICAgICAgICAgICgi
Mi4wYjEucG9zdDEiLCAiPD0yIiksCisgICAgICAgICAgICAgICAgKCIyLjBjMSIsICI8PTIiKSwK
KyAgICAgICAgICAgICAgICAoIjIuMGMxLnBvc3QxLmRldjEiLCAiPD0yIiksCisgICAgICAgICAg
ICAgICAgKCIyLjByYzEiLCAiPD0yIiksCisgICAgICAgICAgICAgICAgKCIxIiwgIjw9MiIpLAor
ICAgICAgICAgICAgICAgICMgVGVzdCB0aGUgZ3JlYXRlciB0aGFuIG9wZXJhdGlvbgorICAgICAg
ICAgICAgICAgICgiMyIsICI+MiIpLAorICAgICAgICAgICAgICAgICgiMi4xIiwgIj4yLjAiKSwK
KyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGxlc3MgdGhhbiBvcGVyYXRpb24KKyAgICAgICAg
ICAgICAgICAoIjEiLCAiPDIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCIsICI8Mi4xIiksCisg
ICAgICAgICAgICBdCisgICAgICAgIF0KKyAgICAgICAgKyBbCisgICAgICAgICAgICAodiwgcywg
RmFsc2UpCisgICAgICAgICAgICBmb3IgdiwgcyBpbiBbCisgICAgICAgICAgICAgICAgIyBUZXN0
IHRoZSBlcXVhbGl0eSBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICAoIjIuMSIsICI9PTIiKSwK
KyAgICAgICAgICAgICAgICAoIjIuMSIsICI9PTIuMCIpLAorICAgICAgICAgICAgICAgICgiMi4x
IiwgIj09Mi4wLjAiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGluLWVxdWFsaXR5IG9w
ZXJhdGlvbgorICAgICAgICAgICAgICAgICgiMi4wIiwgIiE9MiIpLAorICAgICAgICAgICAgICAg
ICgiMi4wIiwgIiE9Mi4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiIT0yLjAuMCIpLAor
ICAgICAgICAgICAgICAgICMgVGVzdCB0aGUgZ3JlYXRlciB0aGFuIGVxdWFsIG9wZXJhdGlvbgor
ICAgICAgICAgICAgICAgICgiMi4wLmRldjEiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgKCIy
LjBhMSIsICI+PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGExLmRldjEiLCAiPj0yIiksCisg
ICAgICAgICAgICAgICAgKCIyLjBiMSIsICI+PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGIx
LnBvc3QxIiwgIj49MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYzEiLCAiPj0yIiksCisgICAg
ICAgICAgICAgICAgKCIyLjBjMS5wb3N0MS5kZXYxIiwgIj49MiIpLAorICAgICAgICAgICAgICAg
ICgiMi4wcmMxIiwgIj49MiIpLAorICAgICAgICAgICAgICAgICgiMSIsICI+PTIiKSwKKyAgICAg
ICAgICAgICAgICAjIFRlc3QgdGhlIGxlc3MgdGhhbiBlcXVhbCBvcGVyYXRpb24KKyAgICAgICAg
ICAgICAgICAoIjIuMC5wb3N0MSIsICI8PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC5wb3N0
MS5kZXYxIiwgIjw9MiIpLAorICAgICAgICAgICAgICAgICgiMyIsICI8PTIiKSwKKyAgICAgICAg
ICAgICAgICAjIFRlc3QgdGhlIGdyZWF0ZXIgdGhhbiBvcGVyYXRpb24KKyAgICAgICAgICAgICAg
ICAoIjEiLCAiPjIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC5kZXYxIiwgIj4yIiksCisgICAg
ICAgICAgICAgICAgKCIyLjBhMSIsICI+MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYTEucG9z
dDEiLCAiPjIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGIxIiwgIj4yIiksCisgICAgICAgICAg
ICAgICAgKCIyLjBiMS5kZXYxIiwgIj4yIiksCisgICAgICAgICAgICAgICAgKCIyLjBjMSIsICI+
MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYzEucG9zdDEuZGV2MSIsICI+MiIpLAorICAgICAg
ICAgICAgICAgICgiMi4wcmMxIiwgIj4yIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPjIi
KSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGxlc3MgdGhhbiBvcGVyYXRpb24KKyAgICAg
ICAgICAgICAgICAoIjMiLCAiPDIiKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgXSwKKyAgICAp
CisgICAgZGVmIHRlc3Rfc3BlY2lmaWVycyhzZWxmLCB2ZXJzaW9uLCBzcGVjLCBleHBlY3RlZCk6
CisgICAgICAgIHNwZWMgPSBMZWdhY3lTcGVjaWZpZXIoc3BlYywgcHJlcmVsZWFzZXM9VHJ1ZSkK
KworICAgICAgICBpZiBleHBlY3RlZDoKKyAgICAgICAgICAgICMgVGVzdCB0aGF0IHRoZSBwbGFp
biBzdHJpbmcgZm9ybSB3b3JrcworICAgICAgICAgICAgYXNzZXJ0IHZlcnNpb24gaW4gc3BlYwor
ICAgICAgICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnModmVyc2lvbikKKworICAgICAgICAgICAg
IyBUZXN0IHRoYXQgdGhlIHZlcnNpb24gaW5zdGFuY2UgZm9ybSB3b3JrcworICAgICAgICAgICAg
YXNzZXJ0IExlZ2FjeVZlcnNpb24odmVyc2lvbikgaW4gc3BlYworICAgICAgICAgICAgYXNzZXJ0
IHNwZWMuY29udGFpbnMoTGVnYWN5VmVyc2lvbih2ZXJzaW9uKSkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICMgVGVzdCB0aGF0IHRoZSBwbGFpbiBzdHJpbmcgZm9ybSB3b3JrcworICAgICAg
ICAgICAgYXNzZXJ0IHZlcnNpb24gbm90IGluIHNwZWMKKyAgICAgICAgICAgIGFzc2VydCBub3Qg
c3BlYy5jb250YWlucyh2ZXJzaW9uKQorCisgICAgICAgICAgICAjIFRlc3QgdGhhdCB0aGUgdmVy
c2lvbiBpbnN0YW5jZSBmb3JtIHdvcmtzCisgICAgICAgICAgICBhc3NlcnQgTGVnYWN5VmVyc2lv
bih2ZXJzaW9uKSBub3QgaW4gc3BlYworICAgICAgICAgICAgYXNzZXJ0IG5vdCBzcGVjLmNvbnRh
aW5zKExlZ2FjeVZlcnNpb24odmVyc2lvbikpCisKKyAgICBkZWYgdGVzdF9zcGVjaWZpZXJfZXhw
bGljaXRfcHJlcmVsZWFzZXMoc2VsZik6CisgICAgICAgIHNwZWMgPSBMZWdhY3lTcGVjaWZpZXIo
Ij49MS4wIikKKyAgICAgICAgYXNzZXJ0IG5vdCBzcGVjLnByZXJlbGVhc2VzCisgICAgICAgIHNw
ZWMucHJlcmVsZWFzZXMgPSBUcnVlCisgICAgICAgIGFzc2VydCBzcGVjLnByZXJlbGVhc2VzCisK
KyAgICAgICAgc3BlYyA9IExlZ2FjeVNwZWNpZmllcigiPj0xLjAiLCBwcmVyZWxlYXNlcz1GYWxz
ZSkKKyAgICAgICAgYXNzZXJ0IG5vdCBzcGVjLnByZXJlbGVhc2VzCisgICAgICAgIHNwZWMucHJl
cmVsZWFzZXMgPSBUcnVlCisgICAgICAgIGFzc2VydCBzcGVjLnByZXJlbGVhc2VzCisKKyAgICAg
ICAgc3BlYyA9IExlZ2FjeVNwZWNpZmllcigiPj0xLjAiLCBwcmVyZWxlYXNlcz1UcnVlKQorICAg
ICAgICBhc3NlcnQgc3BlYy5wcmVyZWxlYXNlcworICAgICAgICBzcGVjLnByZXJlbGVhc2VzID0g
RmFsc2UKKyAgICAgICAgYXNzZXJ0IG5vdCBzcGVjLnByZXJlbGVhc2VzCisKKyAgICAgICAgc3Bl
YyA9IExlZ2FjeVNwZWNpZmllcigiPj0xLjAiLCBwcmVyZWxlYXNlcz1UcnVlKQorICAgICAgICBh
c3NlcnQgc3BlYy5wcmVyZWxlYXNlcworICAgICAgICBzcGVjLnByZXJlbGVhc2VzID0gTm9uZQor
ICAgICAgICBhc3NlcnQgbm90IHNwZWMucHJlcmVsZWFzZXMKKworCitjbGFzcyBUZXN0U3BlY2lm
aWVyU2V0OgorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmVyc2lvbiIsIFZFUlNJT05T
ICsgTEVHQUNZX1ZFUlNJT05TKQorICAgIGRlZiB0ZXN0X2VtcHR5X3NwZWNpZmllcihzZWxmLCB2
ZXJzaW9uKToKKyAgICAgICAgc3BlYyA9IFNwZWNpZmllclNldChwcmVyZWxlYXNlcz1UcnVlKQor
CisgICAgICAgIGFzc2VydCB2ZXJzaW9uIGluIHNwZWMKKyAgICAgICAgYXNzZXJ0IHNwZWMuY29u
dGFpbnModmVyc2lvbikKKyAgICAgICAgYXNzZXJ0IHBhcnNlKHZlcnNpb24pIGluIHNwZWMKKyAg
ICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnMocGFyc2UodmVyc2lvbikpCisKKyAgICBkZWYgdGVz
dF9zcGVjaWZpZXJfcHJlcmVsZWFzZXNfZXhwbGljaXQoc2VsZik6CisgICAgICAgIHNwZWMgPSBT
cGVjaWZpZXJTZXQoKQorICAgICAgICBhc3NlcnQgbm90IHNwZWMucHJlcmVsZWFzZXMKKyAgICAg
ICAgYXNzZXJ0ICIxLjAuZGV2MSIgbm90IGluIHNwZWMKKyAgICAgICAgYXNzZXJ0IG5vdCBzcGVj
LmNvbnRhaW5zKCIxLjAuZGV2MSIpCisgICAgICAgIHNwZWMucHJlcmVsZWFzZXMgPSBUcnVlCisg
ICAgICAgIGFzc2VydCBzcGVjLnByZXJlbGVhc2VzCisgICAgICAgIGFzc2VydCAiMS4wLmRldjEi
IGluIHNwZWMKKyAgICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnMoIjEuMC5kZXYxIikKKworICAg
ICAgICBzcGVjID0gU3BlY2lmaWVyU2V0KHByZXJlbGVhc2VzPVRydWUpCisgICAgICAgIGFzc2Vy
dCBzcGVjLnByZXJlbGVhc2VzCisgICAgICAgIGFzc2VydCAiMS4wLmRldjEiIGluIHNwZWMKKyAg
ICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnMoIjEuMC5kZXYxIikKKyAgICAgICAgc3BlYy5wcmVy
ZWxlYXNlcyA9IEZhbHNlCisgICAgICAgIGFzc2VydCBub3Qgc3BlYy5wcmVyZWxlYXNlcworICAg
ICAgICBhc3NlcnQgIjEuMC5kZXYxIiBub3QgaW4gc3BlYworICAgICAgICBhc3NlcnQgbm90IHNw
ZWMuY29udGFpbnMoIjEuMC5kZXYxIikKKworICAgICAgICBzcGVjID0gU3BlY2lmaWVyU2V0KHBy
ZXJlbGVhc2VzPVRydWUpCisgICAgICAgIGFzc2VydCBzcGVjLnByZXJlbGVhc2VzCisgICAgICAg
IGFzc2VydCAiMS4wLmRldjEiIGluIHNwZWMKKyAgICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnMo
IjEuMC5kZXYxIikKKyAgICAgICAgc3BlYy5wcmVyZWxlYXNlcyA9IE5vbmUKKyAgICAgICAgYXNz
ZXJ0IG5vdCBzcGVjLnByZXJlbGVhc2VzCisgICAgICAgIGFzc2VydCAiMS4wLmRldjEiIG5vdCBp
biBzcGVjCisgICAgICAgIGFzc2VydCBub3Qgc3BlYy5jb250YWlucygiMS4wLmRldjEiKQorCisg
ICAgZGVmIHRlc3Rfc3BlY2lmaWVyX2NvbnRhaW5zX3ByZXJlbGVhc2VzKHNlbGYpOgorICAgICAg
ICBzcGVjID0gU3BlY2lmaWVyU2V0KCkKKyAgICAgICAgYXNzZXJ0IHNwZWMucHJlcmVsZWFzZXMg
aXMgTm9uZQorICAgICAgICBhc3NlcnQgbm90IHNwZWMuY29udGFpbnMoIjEuMC5kZXYxIikKKyAg
ICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnMoIjEuMC5kZXYxIiwgcHJlcmVsZWFzZXM9VHJ1ZSkK
KworICAgICAgICBzcGVjID0gU3BlY2lmaWVyU2V0KHByZXJlbGVhc2VzPVRydWUpCisgICAgICAg
IGFzc2VydCBzcGVjLnByZXJlbGVhc2VzCisgICAgICAgIGFzc2VydCBzcGVjLmNvbnRhaW5zKCIx
LjAuZGV2MSIpCisgICAgICAgIGFzc2VydCBub3Qgc3BlYy5jb250YWlucygiMS4wLmRldjEiLCBw
cmVyZWxlYXNlcz1GYWxzZSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAg
ICAgKCJzcGVjaWZpZXIiLCAic3BlY2lmaWVyX3ByZXJlbGVhc2VzIiwgInByZXJlbGVhc2VzIiwg
ImlucHV0IiwgImV4cGVjdGVkIiksCisgICAgICAgIFsKKyAgICAgICAgICAgICMgR2VuZXJhbCB0
ZXN0IG9mIHRoZSBmaWx0ZXIgbWV0aG9kCisgICAgICAgICAgICAoIiIsIE5vbmUsIE5vbmUsIFsi
MS4wIiwgIjIuMGExIl0sIFsiMS4wIl0pLAorICAgICAgICAgICAgKCI+PTEuMC5kZXYxIiwgTm9u
ZSwgTm9uZSwgWyIxLjAiLCAiMi4wYTEiXSwgWyIxLjAiLCAiMi4wYTEiXSksCisgICAgICAgICAg
ICAoIiIsIE5vbmUsIE5vbmUsIFsiMS4wYTEiXSwgWyIxLjBhMSJdKSwKKyAgICAgICAgICAgICgi
IiwgTm9uZSwgTm9uZSwgWyIxLjAiLCBWZXJzaW9uKCIyLjAiKV0sIFsiMS4wIiwgVmVyc2lvbigi
Mi4wIildKSwKKyAgICAgICAgICAgICgiIiwgTm9uZSwgTm9uZSwgWyIyLjBkb2ciLCAiMS4wIl0s
IFsiMS4wIl0pLAorICAgICAgICAgICAgIyBUZXN0IG92ZXJyaWRpbmcgd2l0aCB0aGUgcHJlcmVs
ZWFzZXMgcGFyYW1ldGVyIG9uIGZpbHRlcgorICAgICAgICAgICAgKCIiLCBOb25lLCBGYWxzZSwg
WyIxLjBhMSJdLCBbXSksCisgICAgICAgICAgICAoIj49MS4wLmRldjEiLCBOb25lLCBGYWxzZSwg
WyIxLjAiLCAiMi4wYTEiXSwgWyIxLjAiXSksCisgICAgICAgICAgICAoIiIsIE5vbmUsIFRydWUs
IFsiMS4wIiwgIjIuMGExIl0sIFsiMS4wIiwgIjIuMGExIl0pLAorICAgICAgICAgICAgIyBUZXN0
IG92ZXJyaWRpbmcgd2l0aCB0aGUgb3ZlcmFsbCBzcGVjaWZpZXIKKyAgICAgICAgICAgICgiIiwg
VHJ1ZSwgTm9uZSwgWyIxLjAiLCAiMi4wYTEiXSwgWyIxLjAiLCAiMi4wYTEiXSksCisgICAgICAg
ICAgICAoIiIsIEZhbHNlLCBOb25lLCBbIjEuMCIsICIyLjBhMSJdLCBbIjEuMCJdKSwKKyAgICAg
ICAgICAgICgiPj0xLjAuZGV2MSIsIFRydWUsIE5vbmUsIFsiMS4wIiwgIjIuMGExIl0sIFsiMS4w
IiwgIjIuMGExIl0pLAorICAgICAgICAgICAgKCI+PTEuMC5kZXYxIiwgRmFsc2UsIE5vbmUsIFsi
MS4wIiwgIjIuMGExIl0sIFsiMS4wIl0pLAorICAgICAgICAgICAgKCIiLCBUcnVlLCBOb25lLCBb
IjEuMGExIl0sIFsiMS4wYTEiXSksCisgICAgICAgICAgICAoIiIsIEZhbHNlLCBOb25lLCBbIjEu
MGExIl0sIFtdKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3Rfc3BlY2lmaWVyX2Zp
bHRlcigKKyAgICAgICAgc2VsZiwgc3BlY2lmaWVyX3ByZXJlbGVhc2VzLCBzcGVjaWZpZXIsIHBy
ZXJlbGVhc2VzLCBpbnB1dCwgZXhwZWN0ZWQKKyAgICApOgorICAgICAgICBpZiBzcGVjaWZpZXJf
cHJlcmVsZWFzZXMgaXMgTm9uZToKKyAgICAgICAgICAgIHNwZWMgPSBTcGVjaWZpZXJTZXQoc3Bl
Y2lmaWVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3BlYyA9IFNwZWNpZmllclNldChz
cGVjaWZpZXIsIHByZXJlbGVhc2VzPXNwZWNpZmllcl9wcmVyZWxlYXNlcykKKworICAgICAgICBr
d2FyZ3MgPSB7InByZXJlbGVhc2VzIjogcHJlcmVsZWFzZXN9IGlmIHByZXJlbGVhc2VzIGlzIG5v
dCBOb25lIGVsc2Uge30KKworICAgICAgICBhc3NlcnQgbGlzdChzcGVjLmZpbHRlcihpbnB1dCwg
Kiprd2FyZ3MpKSA9PSBleHBlY3RlZAorCisgICAgZGVmIHRlc3RfbGVnYWN5X3NwZWNpZmllcnNf
Y29tYmluZWQoc2VsZik6CisgICAgICAgIHNwZWMgPSBTcGVjaWZpZXJTZXQoIjwzLD4xLTEtMSIp
CisgICAgICAgIGFzc2VydCAiMi4wIiBpbiBzcGVjCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoCisgICAgICAgICgic3BlY2lmaWVyIiwgImV4cGVjdGVkIiksCisgICAgICAgIFsKKyAg
ICAgICAgICAgICMgU2luZ2xlIGl0ZW0gc3BlY2lmaWVycyBzaG91bGQganVzdCBiZSByZWZsZXhp
dmUKKyAgICAgICAgICAgICgiIT0yLjAiLCAiIT0yLjAiKSwKKyAgICAgICAgICAgICgiPDIuMCIs
ICI8Mi4wIiksCisgICAgICAgICAgICAoIjw9Mi4wIiwgIjw9Mi4wIiksCisgICAgICAgICAgICAo
Ij09Mi4wIiwgIj09Mi4wIiksCisgICAgICAgICAgICAoIj4yLjAiLCAiPjIuMCIpLAorICAgICAg
ICAgICAgKCI+PTIuMCIsICI+PTIuMCIpLAorICAgICAgICAgICAgKCJ+PTIuMCIsICJ+PTIuMCIp
LAorICAgICAgICAgICAgIyBTcGFjZXMgc2hvdWxkIGJlIHJlbW92ZWQKKyAgICAgICAgICAgICgi
PCAyIiwgIjwyIiksCisgICAgICAgICAgICAjIE11bHRpcGxlIGl0ZW0gc3BlY2lmaWVycyBzaG91
bGQgd29yaworICAgICAgICAgICAgKCIhPTIuMCw+MS4wIiwgIiE9Mi4wLD4xLjAiKSwKKyAgICAg
ICAgICAgICgiIT0yLjAgLD4xLjAiLCAiIT0yLjAsPjEuMCIpLAorICAgICAgICBdLAorICAgICkK
KyAgICBkZWYgdGVzdF9zcGVjaWZpZXJzX3N0cl9hbmRfcmVwcihzZWxmLCBzcGVjaWZpZXIsIGV4
cGVjdGVkKToKKyAgICAgICAgc3BlYyA9IFNwZWNpZmllclNldChzcGVjaWZpZXIpCisKKyAgICAg
ICAgYXNzZXJ0IHN0cihzcGVjKSA9PSBleHBlY3RlZAorICAgICAgICBhc3NlcnQgcmVwcihzcGVj
KSA9PSAiPFNwZWNpZmllclNldCh7MH0pPiIuZm9ybWF0KHJlcHIoZXhwZWN0ZWQpKQorCisgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzcGVjaWZpZXIiLCBTUEVDSUZJRVJTICsgTEVHQUNZ
X1NQRUNJRklFUlMpCisgICAgZGVmIHRlc3Rfc3BlY2lmaWVyc19oYXNoKHNlbGYsIHNwZWNpZmll
cik6CisgICAgICAgIGFzc2VydCBoYXNoKFNwZWNpZmllclNldChzcGVjaWZpZXIpKSA9PSBoYXNo
KFNwZWNpZmllclNldChzcGVjaWZpZXIpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KAorICAgICAgICAoImxlZnQiLCAicmlnaHQiLCAiZXhwZWN0ZWQiKSwgWygiPjIuMCIsICI8NS4w
IiwgIj4yLjAsPDUuMCIpXQorICAgICkKKyAgICBkZWYgdGVzdF9zcGVjaWZpZXJzX2NvbWJpbmUo
c2VsZiwgbGVmdCwgcmlnaHQsIGV4cGVjdGVkKToKKyAgICAgICAgcmVzdWx0ID0gU3BlY2lmaWVy
U2V0KGxlZnQpICYgU3BlY2lmaWVyU2V0KHJpZ2h0KQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09
IFNwZWNpZmllclNldChleHBlY3RlZCkKKworICAgICAgICByZXN1bHQgPSBTcGVjaWZpZXJTZXQo
bGVmdCkgJiByaWdodAorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFNwZWNpZmllclNldChleHBl
Y3RlZCkKKworICAgICAgICByZXN1bHQgPSBTcGVjaWZpZXJTZXQobGVmdCwgcHJlcmVsZWFzZXM9
VHJ1ZSkgJiBTcGVjaWZpZXJTZXQocmlnaHQpCisgICAgICAgIGFzc2VydCByZXN1bHQgPT0gU3Bl
Y2lmaWVyU2V0KGV4cGVjdGVkKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnByZXJlbGVhc2VzCisK
KyAgICAgICAgcmVzdWx0ID0gU3BlY2lmaWVyU2V0KGxlZnQsIHByZXJlbGVhc2VzPUZhbHNlKSAm
IFNwZWNpZmllclNldChyaWdodCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBTcGVjaWZpZXJT
ZXQoZXhwZWN0ZWQpCisgICAgICAgIGFzc2VydCBub3QgcmVzdWx0LnByZXJlbGVhc2VzCisKKyAg
ICAgICAgcmVzdWx0ID0gU3BlY2lmaWVyU2V0KGxlZnQpICYgU3BlY2lmaWVyU2V0KHJpZ2h0LCBw
cmVyZWxlYXNlcz1UcnVlKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFNwZWNpZmllclNldChl
eHBlY3RlZCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5wcmVyZWxlYXNlcworCisgICAgICAgIHJl
c3VsdCA9IFNwZWNpZmllclNldChsZWZ0KSAmIFNwZWNpZmllclNldChyaWdodCwgcHJlcmVsZWFz
ZXM9RmFsc2UpCisgICAgICAgIGFzc2VydCByZXN1bHQgPT0gU3BlY2lmaWVyU2V0KGV4cGVjdGVk
KQorICAgICAgICBhc3NlcnQgbm90IHJlc3VsdC5wcmVyZWxlYXNlcworCisgICAgICAgIHJlc3Vs
dCA9IFNwZWNpZmllclNldChsZWZ0LCBwcmVyZWxlYXNlcz1UcnVlKSAmIFNwZWNpZmllclNldCgK
KyAgICAgICAgICAgIHJpZ2h0LCBwcmVyZWxlYXNlcz1UcnVlCisgICAgICAgICkKKyAgICAgICAg
YXNzZXJ0IHJlc3VsdCA9PSBTcGVjaWZpZXJTZXQoZXhwZWN0ZWQpCisgICAgICAgIGFzc2VydCBy
ZXN1bHQucHJlcmVsZWFzZXMKKworICAgICAgICByZXN1bHQgPSBTcGVjaWZpZXJTZXQobGVmdCwg
cHJlcmVsZWFzZXM9RmFsc2UpICYgU3BlY2lmaWVyU2V0KAorICAgICAgICAgICAgcmlnaHQsIHBy
ZXJlbGVhc2VzPUZhbHNlCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBTcGVj
aWZpZXJTZXQoZXhwZWN0ZWQpCisgICAgICAgIGFzc2VydCBub3QgcmVzdWx0LnByZXJlbGVhc2Vz
CisKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAg
cmVzdWx0ID0gU3BlY2lmaWVyU2V0KGxlZnQsIHByZXJlbGVhc2VzPVRydWUpICYgU3BlY2lmaWVy
U2V0KAorICAgICAgICAgICAgICAgIHJpZ2h0LCBwcmVyZWxlYXNlcz1GYWxzZQorICAgICAgICAg
ICAgKQorCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAg
ICAgIHJlc3VsdCA9IFNwZWNpZmllclNldChsZWZ0LCBwcmVyZWxlYXNlcz1GYWxzZSkgJiBTcGVj
aWZpZXJTZXQoCisgICAgICAgICAgICAgICAgcmlnaHQsIHByZXJlbGVhc2VzPVRydWUKKyAgICAg
ICAgICAgICkKKworICAgIGRlZiB0ZXN0X3NwZWNpZmllcnNfY29tYmluZV9ub3RfaW1wbGVtZW50
ZWQoc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAg
ICAgICAgU3BlY2lmaWVyU2V0KCkgJiAxMgorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KAorICAgICAgICAoImxlZnQiLCAicmlnaHQiLCAib3AiKSwKKyAgICAgICAgaXRlcnRvb2xzLmNo
YWluKAorICAgICAgICAgICAgKgorICAgICAgICAgICAgIyBWZXJpZnkgdGhhdCB0aGUgZXF1YWwg
KD09KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAgICAgIFtbKHgsIHgsIG9wZXJh
dG9yLmVxKSBmb3IgeCBpbiBTUEVDSUZJRVJTXV0KKyAgICAgICAgICAgICsKKyAgICAgICAgICAg
ICMgVmVyaWZ5IHRoYXQgdGhlIG5vdCBlcXVhbCAoIT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3Rs
eQorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIFsoeCwgeSwgb3BlcmF0b3IubmUpIGZv
ciBqLCB5IGluIGVudW1lcmF0ZShTUEVDSUZJRVJTKSBpZiBpICE9IGpdCisgICAgICAgICAgICAg
ICAgZm9yIGksIHggaW4gZW51bWVyYXRlKFNQRUNJRklFUlMpCisgICAgICAgICAgICBdCisgICAg
ICAgICksCisgICAgKQorICAgIGRlZiB0ZXN0X2NvbXBhcmlzb25fdHJ1ZShzZWxmLCBsZWZ0LCBy
aWdodCwgb3ApOgorICAgICAgICBhc3NlcnQgb3AoU3BlY2lmaWVyU2V0KGxlZnQpLCBTcGVjaWZp
ZXJTZXQocmlnaHQpKQorICAgICAgICBhc3NlcnQgb3AoU3BlY2lmaWVyU2V0KGxlZnQpLCBTcGVj
aWZpZXIocmlnaHQpKQorICAgICAgICBhc3NlcnQgb3AoU3BlY2lmaWVyKGxlZnQpLCBTcGVjaWZp
ZXJTZXQocmlnaHQpKQorICAgICAgICBhc3NlcnQgb3AobGVmdCwgU3BlY2lmaWVyU2V0KHJpZ2h0
KSkKKyAgICAgICAgYXNzZXJ0IG9wKFNwZWNpZmllclNldChsZWZ0KSwgcmlnaHQpCisKKyAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgibGVmdCIsICJyaWdodCIsICJvcCIp
LAorICAgICAgICBpdGVydG9vbHMuY2hhaW4oCisgICAgICAgICAgICAqCisgICAgICAgICAgICAj
IFZlcmlmeSB0aGF0IHRoZSBlcXVhbCAoPT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAg
ICAgICAgICAgW1soeCwgeCwgb3BlcmF0b3IubmUpIGZvciB4IGluIFNQRUNJRklFUlNdXQorICAg
ICAgICAgICAgKworICAgICAgICAgICAgIyBWZXJpZnkgdGhhdCB0aGUgbm90IGVxdWFsICghPSkg
b3BlcmF0b3Igd29ya3MgY29ycmVjdGx5CisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAg
Wyh4LCB5LCBvcGVyYXRvci5lcSkgZm9yIGosIHkgaW4gZW51bWVyYXRlKFNQRUNJRklFUlMpIGlm
IGkgIT0gal0KKyAgICAgICAgICAgICAgICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoU1BFQ0lGSUVS
UykKKyAgICAgICAgICAgIF0KKyAgICAgICAgKSwKKyAgICApCisgICAgZGVmIHRlc3RfY29tcGFy
aXNvbl9mYWxzZShzZWxmLCBsZWZ0LCByaWdodCwgb3ApOgorICAgICAgICBhc3NlcnQgbm90IG9w
KFNwZWNpZmllclNldChsZWZ0KSwgU3BlY2lmaWVyU2V0KHJpZ2h0KSkKKyAgICAgICAgYXNzZXJ0
IG5vdCBvcChTcGVjaWZpZXJTZXQobGVmdCksIFNwZWNpZmllcihyaWdodCkpCisgICAgICAgIGFz
c2VydCBub3Qgb3AoU3BlY2lmaWVyKGxlZnQpLCBTcGVjaWZpZXJTZXQocmlnaHQpKQorICAgICAg
ICBhc3NlcnQgbm90IG9wKGxlZnQsIFNwZWNpZmllclNldChyaWdodCkpCisgICAgICAgIGFzc2Vy
dCBub3Qgb3AoU3BlY2lmaWVyU2V0KGxlZnQpLCByaWdodCkKKworICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgoImxlZnQiLCAicmlnaHQiKSwgWygiPT0yLjguMCIsICI9PTIuOCIpXSkKKyAg
ICBkZWYgdGVzdF9jb21wYXJpc29uX2Nhbm9uaWNhbGl6ZXMoc2VsZiwgbGVmdCwgcmlnaHQpOgor
ICAgICAgICBhc3NlcnQgU3BlY2lmaWVyU2V0KGxlZnQpID09IFNwZWNpZmllclNldChyaWdodCkK
KyAgICAgICAgYXNzZXJ0IGxlZnQgPT0gU3BlY2lmaWVyU2V0KHJpZ2h0KQorICAgICAgICBhc3Nl
cnQgU3BlY2lmaWVyU2V0KGxlZnQpID09IHJpZ2h0CisKKyAgICBkZWYgdGVzdF9jb21wYXJpc29u
X25vbl9zcGVjaWZpZXIoc2VsZik6CisgICAgICAgIGFzc2VydCBTcGVjaWZpZXJTZXQoIj09MS4w
IikgIT0gMTIKKyAgICAgICAgYXNzZXJ0IG5vdCBTcGVjaWZpZXJTZXQoIj09MS4wIikgPT0gMTIK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJ2ZXJzaW9uIiwgInNw
ZWNpZmllciIsICJleHBlY3RlZCIpLAorICAgICAgICBbCisgICAgICAgICAgICAoIjEuMC4wK2xv
Y2FsIiwgIj09MS4wLjAiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4wLjArbG9jYWwiLCAiIT0x
LjAuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMS4wLjArbG9jYWwiLCAiPD0xLjAuMCIsIFRy
dWUpLAorICAgICAgICAgICAgKCIxLjAuMCtsb2NhbCIsICI+PTEuMC4wIiwgVHJ1ZSksCisgICAg
ICAgICAgICAoIjEuMC4wK2xvY2FsIiwgIjwxLjAuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgi
MS4wLjArbG9jYWwiLCAiPjEuMC4wIiwgRmFsc2UpLAorICAgICAgICBdLAorICAgICkKKyAgICBk
ZWYgdGVzdF9jb21wYXJpc29uX2lnbm9yZXNfbG9jYWwoc2VsZiwgdmVyc2lvbiwgc3BlY2lmaWVy
LCBleHBlY3RlZCk6CisgICAgICAgIGFzc2VydCAoVmVyc2lvbih2ZXJzaW9uKSBpbiBTcGVjaWZp
ZXJTZXQoc3BlY2lmaWVyKSkgPT0gZXhwZWN0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L3Rlc3RzL3Rlc3Rfc3RydWN0dXJlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL3Rlc3Rfc3Ry
dWN0dXJlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2IxODk2Yzc5NzNkNGM0NzEzYTEwNjUwY2Q4MmRkM2Ez
ZTVlNTlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF9zdHJ1
Y3R1cmVzLnB5CkBAIC0wLDAgKzEsNjAgQEAKKyMgVGhpcyBmaWxlIGlzIGR1YWwgbGljZW5zZWQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbgorIyAyLjAsIGFu
ZCB0aGUgQlNEIExpY2Vuc2UuIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRo
aXMgcmVwb3NpdG9yeQorIyBmb3IgY29tcGxldGUgZGV0YWlscy4KK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0
IHB5dGVzdAorCitmcm9tIHBhY2thZ2luZy5fc3RydWN0dXJlcyBpbXBvcnQgSW5maW5pdHksIE5l
Z2F0aXZlSW5maW5pdHkKKworCitkZWYgdGVzdF9pbmZpbml0eV9yZXByKCk6CisgICAgcmVwcihJ
bmZpbml0eSkgPT0gIkluZmluaXR5IgorCisKK2RlZiB0ZXN0X25lZ2F0aXZlX2luZmluaXR5X3Jl
cHIoKToKKyAgICByZXByKE5lZ2F0aXZlSW5maW5pdHkpID09ICItSW5maW5pdHkiCisKKworZGVm
IHRlc3RfaW5maW5pdHlfaGFzaCgpOgorICAgIGFzc2VydCBoYXNoKEluZmluaXR5KSA9PSBoYXNo
KEluZmluaXR5KQorCisKK2RlZiB0ZXN0X25lZ2F0aXZlX2luZmluaXR5X2hhc2goKToKKyAgICBh
c3NlcnQgaGFzaChOZWdhdGl2ZUluZmluaXR5KSA9PSBoYXNoKE5lZ2F0aXZlSW5maW5pdHkpCisK
KworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJsZWZ0IiwgWzEsICJhIiwgKCJiIiwgNCldKQor
ZGVmIHRlc3RfaW5maW5pdHlfY29tcGFyaXNvbihsZWZ0KToKKyAgICBhc3NlcnQgbGVmdCA8IElu
ZmluaXR5CisgICAgYXNzZXJ0IGxlZnQgPD0gSW5maW5pdHkKKyAgICBhc3NlcnQgbm90IGxlZnQg
PT0gSW5maW5pdHkKKyAgICBhc3NlcnQgbGVmdCAhPSBJbmZpbml0eQorICAgIGFzc2VydCBub3Qg
bGVmdCA+IEluZmluaXR5CisgICAgYXNzZXJ0IG5vdCBsZWZ0ID49IEluZmluaXR5CisKKworQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJsZWZ0IiwgWzEsICJhIiwgKCJiIiwgNCldKQorZGVmIHRl
c3RfbmVnYXRpdmVfaW5maW5pdHlfbGVzc2VyKGxlZnQpOgorICAgIGFzc2VydCBub3QgbGVmdCA8
IE5lZ2F0aXZlSW5maW5pdHkKKyAgICBhc3NlcnQgbm90IGxlZnQgPD0gTmVnYXRpdmVJbmZpbml0
eQorICAgIGFzc2VydCBub3QgbGVmdCA9PSBOZWdhdGl2ZUluZmluaXR5CisgICAgYXNzZXJ0IGxl
ZnQgIT0gTmVnYXRpdmVJbmZpbml0eQorICAgIGFzc2VydCBsZWZ0ID4gTmVnYXRpdmVJbmZpbml0
eQorICAgIGFzc2VydCBsZWZ0ID49IE5lZ2F0aXZlSW5maW5pdHkKKworCitkZWYgdGVzdF9pbmZp
bnR5X2VxdWFsKCk6CisgICAgYXNzZXJ0IEluZmluaXR5ID09IEluZmluaXR5CisKKworZGVmIHRl
c3RfbmVnYXRpdmVfaW5maW5pdHlfZXF1YWwoKToKKyAgICBhc3NlcnQgTmVnYXRpdmVJbmZpbml0
eSA9PSBOZWdhdGl2ZUluZmluaXR5CisKKworZGVmIHRlc3RfbmVnYXRlX2luZmluaXR5KCk6Cisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoLUluZmluaXR5LCBOZWdhdGl2ZUluZmluaXR5Ll9fY2xhc3Nf
XykKKworCitkZWYgdGVzdF9uZWdhdGVfbmVnYXRpdmVfaW5maW5pdHkoKToKKyAgICBhc3NlcnQg
aXNpbnN0YW5jZSgtTmVnYXRpdmVJbmZpbml0eSwgSW5maW5pdHkuX19jbGFzc19fKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF90YWdzLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcv
dGVzdHMvdGVzdF90YWdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YjEwOWE4OWYzMzFhMDQ4ZTAwNDkxYjAz
MTBhNjJjNDNiNzE5ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90
ZXN0X3RhZ3MucHkKQEAgLTAsMCArMSwxMzY0IEBACisjIFRoaXMgZmlsZSBpcyBkdWFsIGxpY2Vu
c2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24KKyMgMi4w
LCBhbmQgdGhlIEJTRCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGlzIHJlcG9zaXRvcnkKKyMgZm9yIGNvbXBsZXRlIGRldGFpbHMuCisKK3RyeToKKyAgICBp
bXBvcnQgY29sbGVjdGlvbnMuYWJjIGFzIGNvbGxlY3Rpb25zX2FiYworZXhjZXB0IEltcG9ydEVy
cm9yOgorICAgIGltcG9ydCBjb2xsZWN0aW9ucyBhcyBjb2xsZWN0aW9uc19hYmMKKwordHJ5Ogor
ICAgIGltcG9ydCBjdHlwZXMKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBjdHlwZXMgPSBOb25l
CitpbXBvcnQgZGlzdHV0aWxzLnV0aWwKKworaW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KK2lt
cG9ydCByZQoraW1wb3J0IHN5cworaW1wb3J0IHN5c2NvbmZpZworaW1wb3J0IHR5cGVzCitpbXBv
cnQgd2FybmluZ3MKKworaW1wb3J0IHByZXRlbmQKK2ltcG9ydCBweXRlc3QKKworZnJvbSBwYWNr
YWdpbmcgaW1wb3J0IHRhZ3MKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBleGFtcGxlX3RhZygp
OgorICAgIHJldHVybiB0YWdzLlRhZygicHkzIiwgIm5vbmUiLCAiYW55IikKKworCitAcHl0ZXN0
LmZpeHR1cmUKK2RlZiBpc194ODYoKToKKyAgICByZXR1cm4gcmUubWF0Y2gociIoaVxkODZ8eDg2
XzY0KSIsIHBsYXRmb3JtLm1hY2hpbmUoKSkgaXMgbm90IE5vbmUKKworCitAcHl0ZXN0LmZpeHR1
cmUKK2RlZiBtYW55bGludXhfbW9kdWxlKG1vbmtleXBhdGNoKToKKyAgICBtb25rZXlwYXRjaC5z
ZXRhdHRyKHRhZ3MsICJfZ2V0X2dsaWJjX3ZlcnNpb24iLCBsYW1iZGEgKmFyZ3M6ICgyLCAyMCkp
CisgICAgbW9kdWxlX25hbWUgPSAiX21hbnlsaW51eCIKKyAgICBtb2R1bGUgPSB0eXBlcy5Nb2R1
bGVUeXBlKG1vZHVsZV9uYW1lKQorICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oc3lzLm1vZHVsZXMs
IG1vZHVsZV9uYW1lLCBtb2R1bGUpCisgICAgcmV0dXJuIG1vZHVsZQorCisKK0BweXRlc3QuZml4
dHVyZQorZGVmIG1vY2tfaW50ZXJwcmV0ZXJfbmFtZShtb25rZXlwYXRjaCk6CisgICAgZGVmIG1v
Y2sobmFtZSk6CisgICAgICAgIGlmIGhhc2F0dHIoc3lzLCAiaW1wbGVtZW50YXRpb24iKSBhbmQg
c3lzLmltcGxlbWVudGF0aW9uLm5hbWUgIT0gbmFtZS5sb3dlcigpOgorICAgICAgICAgICAgbW9u
a2V5cGF0Y2guc2V0YXR0cihzeXMuaW1wbGVtZW50YXRpb24sICJuYW1lIiwgbmFtZS5sb3dlcigp
KQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZWxpZiBwbGF0Zm9ybS5weXRob25f
aW1wbGVtZW50YXRpb24oKSAhPSBuYW1lOgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0
cihwbGF0Zm9ybSwgInB5dGhvbl9pbXBsZW1lbnRhdGlvbiIsIGxhbWJkYTogbmFtZSkKKyAgICAg
ICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgcmV0dXJuIG1v
Y2sKKworCitjbGFzcyBUZXN0VGFnOgorICAgIGRlZiB0ZXN0X2xvd2VyY2FzaW5nKHNlbGYpOgor
ICAgICAgICB0YWcgPSB0YWdzLlRhZygiUFkzIiwgIk5vbmUiLCAiQU5ZIikKKyAgICAgICAgYXNz
ZXJ0IHRhZy5pbnRlcnByZXRlciA9PSAicHkzIgorICAgICAgICBhc3NlcnQgdGFnLmFiaSA9PSAi
bm9uZSIKKyAgICAgICAgYXNzZXJ0IHRhZy5wbGF0Zm9ybSA9PSAiYW55IgorCisgICAgZGVmIHRl
c3RfZXF1YWxpdHkoc2VsZik6CisgICAgICAgIGFyZ3MgPSAicHkzIiwgIm5vbmUiLCAiYW55Igor
ICAgICAgICBhc3NlcnQgdGFncy5UYWcoKmFyZ3MpID09IHRhZ3MuVGFnKCphcmdzKQorCisgICAg
ZGVmIHRlc3RfZXF1YWxpdHlfZmFpbHNfd2l0aF9ub25fdGFnKHNlbGYpOgorICAgICAgICBhc3Nl
cnQgbm90IHRhZ3MuVGFnKCJweTMiLCAibm9uZSIsICJhbnkiKSA9PSAibm9uLXRhZyIKKworICAg
IGRlZiB0ZXN0X2hhc2hpbmcoc2VsZiwgZXhhbXBsZV90YWcpOgorICAgICAgICB0YWdzID0ge2V4
YW1wbGVfdGFnfSAgIyBTaG91bGQgbm90IHJhaXNlIFR5cGVFcnJvci4KKyAgICAgICAgYXNzZXJ0
IGV4YW1wbGVfdGFnIGluIHRhZ3MKKworICAgIGRlZiB0ZXN0X2hhc2hfZXF1YWxpdHkoc2VsZiwg
ZXhhbXBsZV90YWcpOgorICAgICAgICBlcXVhbF90YWcgPSB0YWdzLlRhZygicHkzIiwgIm5vbmUi
LCAiYW55IikKKyAgICAgICAgYXNzZXJ0IGV4YW1wbGVfdGFnID09IGVxdWFsX3RhZyAgIyBTYW5p
dHkgY2hlY2suCisgICAgICAgIGFzc2VydCBleGFtcGxlX3RhZy5fX2hhc2hfXygpID09IGVxdWFs
X3RhZy5fX2hhc2hfXygpCisKKyAgICBkZWYgdGVzdF9zdHIoc2VsZiwgZXhhbXBsZV90YWcpOgor
ICAgICAgICBhc3NlcnQgc3RyKGV4YW1wbGVfdGFnKSA9PSAicHkzLW5vbmUtYW55IgorCisgICAg
ZGVmIHRlc3RfcmVwcihzZWxmLCBleGFtcGxlX3RhZyk6CisgICAgICAgIGFzc2VydCByZXByKGV4
YW1wbGVfdGFnKSA9PSAiPHB5My1ub25lLWFueSBAIHt0YWdfaWR9PiIuZm9ybWF0KAorICAgICAg
ICAgICAgdGFnX2lkPWlkKGV4YW1wbGVfdGFnKQorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9h
dHRyaWJ1dGVfYWNjZXNzKHNlbGYsIGV4YW1wbGVfdGFnKToKKyAgICAgICAgYXNzZXJ0IGV4YW1w
bGVfdGFnLmludGVycHJldGVyID09ICJweTMiCisgICAgICAgIGFzc2VydCBleGFtcGxlX3RhZy5h
YmkgPT0gIm5vbmUiCisgICAgICAgIGFzc2VydCBleGFtcGxlX3RhZy5wbGF0Zm9ybSA9PSAiYW55
IgorCisKK2NsYXNzIFRlc3RXYXJuS2V5d29yZE9ubHlQYXJhbWV0ZXI6CisgICAgZGVmIHRlc3Rf
bm9fYXJndW1lbnQoc2VsZik6CisgICAgICAgIGFzc2VydCBub3QgdGFncy5fd2Fybl9rZXl3b3Jk
X3BhcmFtZXRlcigidGVzdF93YXJuX2tleXdvcmRfcGFyYW1ldGVycyIsIHt9KQorCisgICAgZGVm
IHRlc3RfZmFsc2Uoc2VsZik6CisgICAgICAgIGFzc2VydCBub3QgdGFncy5fd2Fybl9rZXl3b3Jk
X3BhcmFtZXRlcigKKyAgICAgICAgICAgICJ0ZXN0X3dhcm5fa2V5d29yZF9wYXJhbWV0ZXJzIiwg
eyJ3YXJuIjogRmFsc2V9CisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3RydWUoc2VsZik6Cisg
ICAgICAgIGFzc2VydCB0YWdzLl93YXJuX2tleXdvcmRfcGFyYW1ldGVyKAorICAgICAgICAgICAg
InRlc3Rfd2Fybl9rZXl3b3JkX3BhcmFtZXRlcnMiLCB7Indhcm4iOiBUcnVlfQorICAgICAgICAp
CisKKyAgICBkZWYgdGVzdF90b29fbWFueV9hcmd1bWVudHMoc2VsZik6CisgICAgICAgIG1lc3Nh
Z2VfcmUgPSByZS5jb21waWxlKHIidG9vX21hbnkuK3shcn0iLmZvcm1hdCgid2hhdGV2ZXIiKSkK
KyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvciwgbWF0Y2g9bWVzc2FnZV9yZSk6
CisgICAgICAgICAgICB0YWdzLl93YXJuX2tleXdvcmRfcGFyYW1ldGVyKCJ0b29fbWFueSIsIHsi
d2FybiI6IFRydWUsICJ3aGF0ZXZlciI6IFRydWV9KQorCisgICAgZGVmIHRlc3Rfd3JvbmdfYXJn
dW1lbnQoc2VsZik6CisgICAgICAgIG1lc3NhZ2VfcmUgPSByZS5jb21waWxlKHIibWlzc2luZy4r
eyFyfSIuZm9ybWF0KCJ1bmV4cGVjdGVkIikpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhU
eXBlRXJyb3IsIG1hdGNoPW1lc3NhZ2VfcmUpOgorICAgICAgICAgICAgdGFncy5fd2Fybl9rZXl3
b3JkX3BhcmFtZXRlcigibWlzc2luZyIsIHsidW5leHBlY3RlZCI6IFRydWV9KQorCisKK2NsYXNz
IFRlc3RQYXJzZVRhZzoKKyAgICBkZWYgdGVzdF9zaW1wbGUoc2VsZiwgZXhhbXBsZV90YWcpOgor
ICAgICAgICBwYXJzZWRfdGFncyA9IHRhZ3MucGFyc2VfdGFnKHN0cihleGFtcGxlX3RhZykpCisg
ICAgICAgIGFzc2VydCBwYXJzZWRfdGFncyA9PSB7ZXhhbXBsZV90YWd9CisKKyAgICBkZWYgdGVz
dF9tdWx0aV9pbnRlcnByZXRlcihzZWxmLCBleGFtcGxlX3RhZyk6CisgICAgICAgIGV4cGVjdGVk
ID0ge2V4YW1wbGVfdGFnLCB0YWdzLlRhZygicHkyIiwgIm5vbmUiLCAiYW55Iil9CisgICAgICAg
IGdpdmVuID0gdGFncy5wYXJzZV90YWcoInB5Mi5weTMtbm9uZS1hbnkiKQorICAgICAgICBhc3Nl
cnQgZ2l2ZW4gPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0ZXN0X211bHRpX3BsYXRmb3JtKHNlbGYp
OgorICAgICAgICBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDM3IiwgImNw
MzdtIiwgcGxhdGZvcm0pCisgICAgICAgICAgICBmb3IgcGxhdGZvcm0gaW4gKAorICAgICAgICAg
ICAgICAgICJtYWNvc3hfMTBfNl9pbnRlbCIsCisgICAgICAgICAgICAgICAgIm1hY29zeF8xMF85
X2ludGVsIiwKKyAgICAgICAgICAgICAgICAibWFjb3N4XzEwXzlfeDg2XzY0IiwKKyAgICAgICAg
ICAgICAgICAibWFjb3N4XzEwXzEwX2ludGVsIiwKKyAgICAgICAgICAgICAgICAibWFjb3N4XzEw
XzEwX3g4Nl82NCIsCisgICAgICAgICAgICApCisgICAgICAgIH0KKyAgICAgICAgZ2l2ZW4gPSB0
YWdzLnBhcnNlX3RhZygKKyAgICAgICAgICAgICJjcDM3LWNwMzdtLW1hY29zeF8xMF82X2ludGVs
Lm1hY29zeF8xMF85X2ludGVsLm1hY29zeF8xMF85X3g4Nl82NC4iCisgICAgICAgICAgICAibWFj
b3N4XzEwXzEwX2ludGVsLm1hY29zeF8xMF8xMF94ODZfNjQiCisgICAgICAgICkKKyAgICAgICAg
YXNzZXJ0IGdpdmVuID09IGV4cGVjdGVkCisKKworY2xhc3MgVGVzdEludGVycHJldGVyTmFtZToK
KyAgICBkZWYgdGVzdF9zeXNfaW1wbGVtZW50YXRpb25fbmFtZShzZWxmLCBtb25rZXlwYXRjaCk6
CisgICAgICAgIGNsYXNzIE1vY2tJbXBsZW1lbnRhdGlvbihvYmplY3QpOgorICAgICAgICAgICAg
cGFzcworCisgICAgICAgIG1vY2tfaW1wbGVtZW50YXRpb24gPSBNb2NrSW1wbGVtZW50YXRpb24o
KQorICAgICAgICBtb2NrX2ltcGxlbWVudGF0aW9uLm5hbWUgPSAic2lsbHl3YWxrIgorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKHN5cywgImltcGxlbWVudGF0aW9uIiwgbW9ja19pbXBsZW1l
bnRhdGlvbiwgcmFpc2luZz1GYWxzZSkKKyAgICAgICAgYXNzZXJ0IHRhZ3MuaW50ZXJwcmV0ZXJf
bmFtZSgpID09ICJzaWxseXdhbGsiCisKKyAgICBkZWYgdGVzdF9wbGF0Zm9ybShzZWxmLCBtb25r
ZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLmRlbGF0dHIoc3lzLCAiaW1wbGVtZW50YXRp
b24iLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBuYW1lID0gIlNpbGx5V2FsayIKKyAgICAgICAg
bW9ua2V5cGF0Y2guc2V0YXR0cihwbGF0Zm9ybSwgInB5dGhvbl9pbXBsZW1lbnRhdGlvbiIsIGxh
bWJkYTogbmFtZSkKKyAgICAgICAgYXNzZXJ0IHRhZ3MuaW50ZXJwcmV0ZXJfbmFtZSgpID09IG5h
bWUubG93ZXIoKQorCisgICAgZGVmIHRlc3RfaW50ZXJwcmV0ZXJfc2hvcnRfbmFtZXMoc2VsZiwg
bW9ja19pbnRlcnByZXRlcl9uYW1lLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vY2tfaW50ZXJw
cmV0ZXJfbmFtZSgiY3B5dGhvbiIpCisgICAgICAgIGFzc2VydCB0YWdzLmludGVycHJldGVyX25h
bWUoKSA9PSAiY3AiCisKKworY2xhc3MgVGVzdEludGVycHJldGVyVmVyc2lvbjoKKyAgICBkZWYg
dGVzdF93YXJuKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgY2xhc3MgTW9ja0NvbmZpZ1Zh
cihvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJldHVybl8pOgorICAg
ICAgICAgICAgICAgIHNlbGYud2FybiA9IE5vbmUKKyAgICAgICAgICAgICAgICBzZWxmLl9yZXR1
cm4gPSByZXR1cm5fCisKKyAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBuYW1lLCB3YXJu
KToKKyAgICAgICAgICAgICAgICBzZWxmLndhcm4gPSB3YXJuCisgICAgICAgICAgICAgICAgcmV0
dXJuIHNlbGYuX3JldHVybgorCisgICAgICAgIG1vY2tfY29uZmlnX3ZhciA9IE1vY2tDb25maWdW
YXIoIjM4IikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2dldF9jb25maWdf
dmFyIiwgbW9ja19jb25maWdfdmFyKQorICAgICAgICB0YWdzLmludGVycHJldGVyX3ZlcnNpb24o
d2Fybj1UcnVlKQorICAgICAgICBhc3NlcnQgbW9ja19jb25maWdfdmFyLndhcm4KKworICAgIGRl
ZiB0ZXN0X3B5dGhvbl92ZXJzaW9uX25vZG90KHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAg
bW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2dldF9jb25maWdfdmFyIiwgbGFtYmRhIHZhciwg
d2FybjogIk5OIikKKyAgICAgICAgYXNzZXJ0IHRhZ3MuaW50ZXJwcmV0ZXJfdmVyc2lvbigpID09
ICJOTiIKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgInZlcnNpb25f
aW5mbyx2ZXJzaW9uX3N0ciIsCisgICAgICAgIFsKKyAgICAgICAgICAgICgoMSwgMiwgMyksICIx
MiIpLAorICAgICAgICAgICAgKCgxLCAxMiwgMyksICIxXzEyIiksCisgICAgICAgICAgICAoKDEx
LCAyLCAzKSwgIjExXzIiKSwKKyAgICAgICAgICAgICgoMTEsIDEyLCAzKSwgIjExXzEyIiksCisg
ICAgICAgICAgICAoKDEsIDIsIDEzKSwgIjEyIiksCisgICAgICAgIF0sCisgICAgKQorICAgIGRl
ZiB0ZXN0X3N5c192ZXJzaW9uX2luZm8oc2VsZiwgdmVyc2lvbl9pbmZvLCB2ZXJzaW9uX3N0ciwg
bW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfZ2V0X2Nv
bmZpZ192YXIiLCBsYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBOb25lKQorICAgICAgICBtb25rZXlw
YXRjaC5zZXRhdHRyKHN5cywgInZlcnNpb25faW5mbyIsIHZlcnNpb25faW5mbykKKyAgICAgICAg
YXNzZXJ0IHRhZ3MuaW50ZXJwcmV0ZXJfdmVyc2lvbigpID09IHZlcnNpb25fc3RyCisKKworY2xh
c3MgVGVzdE1hY09TUGxhdGZvcm1zOgorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAg
ICAgICAgImFyY2gsIGlzXzMyYml0LCBleHBlY3RlZCIsCisgICAgICAgIFsKKyAgICAgICAgICAg
ICgiaTM4NiIsIFRydWUsICJpMzg2IiksCisgICAgICAgICAgICAoInBwYyIsIFRydWUsICJwcGMi
KSwKKyAgICAgICAgICAgICgieDg2XzY0IiwgRmFsc2UsICJ4ODZfNjQiKSwKKyAgICAgICAgICAg
ICgieDg2XzY0IiwgVHJ1ZSwgImkzODYiKSwKKyAgICAgICAgICAgICgicHBjNjQiLCBGYWxzZSwg
InBwYzY0IiksCisgICAgICAgICAgICAoInBwYzY0IiwgVHJ1ZSwgInBwYyIpLAorICAgICAgICBd
LAorICAgICkKKyAgICBkZWYgdGVzdF9hcmNoaXRlY3R1cmVzKHNlbGYsIGFyY2gsIGlzXzMyYml0
LCBleHBlY3RlZCk6CisgICAgICAgIGFzc2VydCB0YWdzLl9tYWNfYXJjaChhcmNoLCBpc18zMmJp
dD1pc18zMmJpdCkgPT0gZXhwZWN0ZWQKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgK
KyAgICAgICAgInZlcnNpb24sYXJjaCxleHBlY3RlZCIsCisgICAgICAgIFsKKyAgICAgICAgICAg
ICgKKyAgICAgICAgICAgICAgICAoMTAsIDE1KSwKKyAgICAgICAgICAgICAgICAieDg2XzY0IiwK
KyAgICAgICAgICAgICAgICBbIng4Nl82NCIsICJpbnRlbCIsICJmYXQ2NCIsICJmYXQzMiIsICJ1
bml2ZXJzYWwyIiwgInVuaXZlcnNhbCJdLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgK
KyAgICAgICAgICAgICAgICAoMTAsIDQpLAorICAgICAgICAgICAgICAgICJ4ODZfNjQiLAorICAg
ICAgICAgICAgICAgIFsieDg2XzY0IiwgImludGVsIiwgImZhdDY0IiwgImZhdDMyIiwgInVuaXZl
cnNhbDIiLCAidW5pdmVyc2FsIl0sCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKCgxMCwg
MyksICJ4ODZfNjQiLCBbXSksCisgICAgICAgICAgICAoKDEwLCAxNSksICJpMzg2IiwgWyJpMzg2
IiwgImludGVsIiwgImZhdDMyIiwgImZhdCIsICJ1bml2ZXJzYWwiXSksCisgICAgICAgICAgICAo
KDEwLCA0KSwgImkzODYiLCBbImkzODYiLCAiaW50ZWwiLCAiZmF0MzIiLCAiZmF0IiwgInVuaXZl
cnNhbCJdKSwKKyAgICAgICAgICAgICgoMTAsIDMpLCAiaTM4NiIsIFtdKSwKKyAgICAgICAgICAg
ICgoMTAsIDE1KSwgInBwYzY0IiwgW10pLAorICAgICAgICAgICAgKCgxMCwgNiksICJwcGM2NCIs
IFtdKSwKKyAgICAgICAgICAgICgoMTAsIDUpLCAicHBjNjQiLCBbInBwYzY0IiwgImZhdDY0Iiwg
InVuaXZlcnNhbCJdKSwKKyAgICAgICAgICAgICgoMTAsIDMpLCAicHBjNjQiLCBbXSksCisgICAg
ICAgICAgICAoKDEwLCAxNSksICJwcGMiLCBbXSksCisgICAgICAgICAgICAoKDEwLCA3KSwgInBw
YyIsIFtdKSwKKyAgICAgICAgICAgICgoMTAsIDYpLCAicHBjIiwgWyJwcGMiLCAiZmF0MzIiLCAi
ZmF0IiwgInVuaXZlcnNhbCJdKSwKKyAgICAgICAgICAgICgoMTAsIDApLCAicHBjIiwgWyJwcGMi
LCAiZmF0MzIiLCAiZmF0IiwgInVuaXZlcnNhbCJdKSwKKyAgICAgICAgICAgICgoMTEsIDApLCAi
cmlzY3YiLCBbInJpc2N2Il0pLAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICgxMSwg
MCksCisgICAgICAgICAgICAgICAgIng4Nl82NCIsCisgICAgICAgICAgICAgICAgWyJ4ODZfNjQi
LCAiaW50ZWwiLCAiZmF0NjQiLCAiZmF0MzIiLCAidW5pdmVyc2FsMiIsICJ1bml2ZXJzYWwiXSwK
KyAgICAgICAgICAgICksCisgICAgICAgICAgICAoKDExLCAwKSwgImFybTY0IiwgWyJhcm02NCIs
ICJ1bml2ZXJzYWwyIl0pLAorICAgICAgICAgICAgKCgxMSwgMSksICJhcm02NCIsIFsiYXJtNjQi
LCAidW5pdmVyc2FsMiJdKSwKKyAgICAgICAgICAgICgoMTIsIDApLCAiYXJtNjQiLCBbImFybTY0
IiwgInVuaXZlcnNhbDIiXSksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X2JpbmFy
eV9mb3JtYXRzKHNlbGYsIHZlcnNpb24sIGFyY2gsIGV4cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0
IHRhZ3MuX21hY19iaW5hcnlfZm9ybWF0cyh2ZXJzaW9uLCBhcmNoKSA9PSBleHBlY3RlZAorCisg
ICAgZGVmIHRlc3RfdmVyc2lvbl9kZXRlY3Rpb24oc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAg
ICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSAhPSAiRGFyd2luIjoKKyAgICAgICAgICAgIG1vbmtleXBh
dGNoLnNldGF0dHIoCisgICAgICAgICAgICAgICAgcGxhdGZvcm0sICJtYWNfdmVyIiwgbGFtYmRh
OiAoIjEwLjE0IiwgKCIiLCAiIiwgIiIpLCAieDg2XzY0IikKKyAgICAgICAgICAgICkKKyAgICAg
ICAgdmVyc2lvbiA9IHBsYXRmb3JtLm1hY192ZXIoKVswXS5zcGxpdCgiLiIpCisgICAgICAgIGV4
cGVjdGVkID0gIm1hY29zeF97bWFqb3J9X3ttaW5vcn0iLmZvcm1hdChtYWpvcj12ZXJzaW9uWzBd
LCBtaW5vcj12ZXJzaW9uWzFdKQorICAgICAgICBwbGF0Zm9ybXMgPSBsaXN0KHRhZ3MubWFjX3Bs
YXRmb3JtcyhhcmNoPSJ4ODZfNjQiKSkKKyAgICAgICAgYXNzZXJ0IHBsYXRmb3Jtc1swXS5zdGFy
dHN3aXRoKGV4cGVjdGVkKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJhcmNoIiwg
WyJ4ODZfNjQiLCAiaTM4NiJdKQorICAgIGRlZiB0ZXN0X2FyY2hfZGV0ZWN0aW9uKHNlbGYsIGFy
Y2gsIG1vbmtleXBhdGNoKToKKyAgICAgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgIT0gIkRhcndp
biIgb3IgcGxhdGZvcm0ubWFjX3ZlcigpWzJdICE9IGFyY2g6CisgICAgICAgICAgICBtb25rZXlw
YXRjaC5zZXRhdHRyKAorICAgICAgICAgICAgICAgIHBsYXRmb3JtLCAibWFjX3ZlciIsIGxhbWJk
YTogKCIxMC4xNCIsICgiIiwgIiIsICIiKSwgYXJjaCkKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9tYWNfYXJjaCIsIGxhbWJkYSAqYXJnczog
YXJjaCkKKyAgICAgICAgYXNzZXJ0IG5leHQodGFncy5tYWNfcGxhdGZvcm1zKCgxMCwgMTQpKSku
ZW5kc3dpdGgoYXJjaCkKKworICAgIGRlZiB0ZXN0X21hY19wbGF0Zm9ybXMoc2VsZik6CisgICAg
ICAgIHBsYXRmb3JtcyA9IGxpc3QodGFncy5tYWNfcGxhdGZvcm1zKCgxMCwgNSksICJ4ODZfNjQi
KSkKKyAgICAgICAgYXNzZXJ0IHBsYXRmb3JtcyA9PSBbCisgICAgICAgICAgICAibWFjb3N4XzEw
XzVfeDg2XzY0IiwKKyAgICAgICAgICAgICJtYWNvc3hfMTBfNV9pbnRlbCIsCisgICAgICAgICAg
ICAibWFjb3N4XzEwXzVfZmF0NjQiLAorICAgICAgICAgICAgIm1hY29zeF8xMF81X2ZhdDMyIiwK
KyAgICAgICAgICAgICJtYWNvc3hfMTBfNV91bml2ZXJzYWwyIiwKKyAgICAgICAgICAgICJtYWNv
c3hfMTBfNV91bml2ZXJzYWwiLAorICAgICAgICAgICAgIm1hY29zeF8xMF80X3g4Nl82NCIsCisg
ICAgICAgICAgICAibWFjb3N4XzEwXzRfaW50ZWwiLAorICAgICAgICAgICAgIm1hY29zeF8xMF80
X2ZhdDY0IiwKKyAgICAgICAgICAgICJtYWNvc3hfMTBfNF9mYXQzMiIsCisgICAgICAgICAgICAi
bWFjb3N4XzEwXzRfdW5pdmVyc2FsMiIsCisgICAgICAgICAgICAibWFjb3N4XzEwXzRfdW5pdmVy
c2FsIiwKKyAgICAgICAgXQorCisgICAgICAgIGFzc2VydCBsZW4obGlzdCh0YWdzLm1hY19wbGF0
Zm9ybXMoKDEwLCAxNyksICJ4ODZfNjQiKSkpID09IDE0ICogNgorCisgICAgICAgIGFzc2VydCBu
b3QgbGlzdCh0YWdzLm1hY19wbGF0Zm9ybXMoKDEwLCAwKSwgIng4Nl82NCIpKQorCisgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtYWpvcixtaW5vciIsIFsoMTEsIDApLCAoMTEsIDMpLCAo
MTIsIDApLCAoMTIsIDMpXSkKKyAgICBkZWYgdGVzdF9tYWNvc18xMShzZWxmLCBtYWpvciwgbWlu
b3IpOgorICAgICAgICBwbGF0Zm9ybXMgPSBsaXN0KHRhZ3MubWFjX3BsYXRmb3JtcygobWFqb3Is
IG1pbm9yKSwgIng4Nl82NCIpKQorICAgICAgICBhc3NlcnQgIm1hY29zeF8xMV8wX2FybTY0IiBu
b3QgaW4gcGxhdGZvcm1zCisgICAgICAgIGFzc2VydCAibWFjb3N4XzExXzBfeDg2XzY0IiBpbiBw
bGF0Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hfMTFfM194ODZfNjQiIG5vdCBpbiBwbGF0
Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hfMTFfMF91bml2ZXJzYWwiIGluIHBsYXRmb3Jt
cworICAgICAgICBhc3NlcnQgIm1hY29zeF8xMV8wX3VuaXZlcnNhbDIiIGluIHBsYXRmb3Jtcwor
ICAgICAgICAjIE1hYyBPUyAiMTAuMTYiIGlzIHRoZSB2ZXJzaW9uIG51bWJlciB0aGF0IGJpbmFy
aWVzIGNvbXBpbGVkIGFnYWluc3QgYW4gb2xkCisgICAgICAgICMgKHByZSAxMS4wKSBTREsgd2ls
bCBzZWUuICAgSXQgY2FuIGFsc28gYmUgZW5hYmxlZCBleHBsaWNpdGx5IGZvciBhIHByb2Nlc3MK
KyAgICAgICAgIyB3aXRoIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBTWVNURU1fVkVSU0lPTl9D
T01QQVQ9MS4KKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hfMTBfMTZfeDg2XzY0IiBpbiBwbGF0Zm9y
bXMKKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hfMTBfMTVfeDg2XzY0IiBpbiBwbGF0Zm9ybXMKKyAg
ICAgICAgYXNzZXJ0ICJtYWNvc3hfMTBfNF94ODZfNjQiIGluIHBsYXRmb3JtcworICAgICAgICBh
c3NlcnQgIm1hY29zeF8xMF8zX3g4Nl82NCIgbm90IGluIHBsYXRmb3JtcworICAgICAgICBpZiBt
YWpvciA+PSAxMjoKKyAgICAgICAgICAgIGFzc2VydCAibWFjb3N4XzEyXzBfeDg2XzY0IiBpbiBw
bGF0Zm9ybXMKKyAgICAgICAgICAgIGFzc2VydCAibWFjb3N4XzEyXzBfdW5pdmVyc2FsIiBpbiBw
bGF0Zm9ybXMKKyAgICAgICAgICAgIGFzc2VydCAibWFjb3N4XzEyXzBfdW5pdmVyc2FsMiIgaW4g
cGxhdGZvcm1zCisKKyAgICAgICAgcGxhdGZvcm1zID0gbGlzdCh0YWdzLm1hY19wbGF0Zm9ybXMo
KG1ham9yLCBtaW5vciksICJhcm02NCIpKQorICAgICAgICBhc3NlcnQgIm1hY29zeF8xMV8wX2Fy
bTY0IiBpbiBwbGF0Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hfMTFfM19hcm02NCIgbm90
IGluIHBsYXRmb3JtcworICAgICAgICBhc3NlcnQgIm1hY29zeF8xMV8wX3VuaXZlcnNhbCIgbm90
IGluIHBsYXRmb3JtcworICAgICAgICBhc3NlcnQgIm1hY29zeF8xMV8wX3VuaXZlcnNhbDIiIGlu
IHBsYXRmb3JtcworICAgICAgICBhc3NlcnQgIm1hY29zeF8xMF8xNV94ODZfNjQiIG5vdCBpbiBw
bGF0Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hfMTBfNF94ODZfNjQiIG5vdCBpbiBwbGF0
Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hfMTBfM194ODZfNjQiIG5vdCBpbiBwbGF0Zm9y
bXMKKyAgICAgICAgaWYgbWFqb3IgPj0gMTI6CisgICAgICAgICAgICBhc3NlcnQgIm1hY29zeF8x
Ml8wX2FybTY0IiBpbiBwbGF0Zm9ybXMKKyAgICAgICAgICAgIGFzc2VydCAibWFjb3N4XzEyXzBf
dW5pdmVyc2FsMiIgaW4gcGxhdGZvcm1zCisKKworY2xhc3MgVGVzdE1hbnlsaW51eFBsYXRmb3Jt
OgorICAgIGRlZiB0ZWFyZG93bl9tZXRob2Qoc2VsZik6CisgICAgICAgICMgQ2xlYXIgdGhlIHZl
cnNpb24gY2FjaGUKKyAgICAgICAgdGFncy5fZ2xpYmNfdmVyc2lvbiA9IFtdCisKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRmIiwgKFRydWUsIEZhbHNlKSkKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoCisgICAgICAgICJhdHRyaWJ1dGUsZ2xpYmMiLCAoKCIxIiwgKDIsIDUp
KSwgKCIyMDEwIiwgKDIsIDEyKSksICgiMjAxNCIsICgyLCAxNykpKQorICAgICkKKyAgICBkZWYg
dGVzdF9tb2R1bGVfZGVjbGFyYXRpb24oCisgICAgICAgIHNlbGYsIG1vbmtleXBhdGNoLCBtYW55
bGludXhfbW9kdWxlLCBhdHRyaWJ1dGUsIGdsaWJjLCB0ZgorICAgICk6CisgICAgICAgIG1hbnls
aW51eCA9ICJtYW55bGludXh7fV9jb21wYXRpYmxlIi5mb3JtYXQoYXR0cmlidXRlKQorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hbnlsaW51eF9tb2R1bGUsIG1hbnlsaW51eCwgdGYsIHJh
aXNpbmc9RmFsc2UpCisgICAgICAgIHJlcyA9IHRhZ3MuX2lzX21hbnlsaW51eF9jb21wYXRpYmxl
KG1hbnlsaW51eCwgIng4Nl82NCIsIGdsaWJjKQorICAgICAgICBhc3NlcnQgdGYgaXMgcmVzCisK
KyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJhdHRyaWJ1dGUsZ2xpYmMi
LCAoKCIxIiwgKDIsIDUpKSwgKCIyMDEwIiwgKDIsIDEyKSksICgiMjAxNCIsICgyLCAxNykpKQor
ICAgICkKKyAgICBkZWYgdGVzdF9tb2R1bGVfZGVjbGFyYXRpb25fbWlzc2luZ19hdHRyaWJ1dGUo
CisgICAgICAgIHNlbGYsIG1vbmtleXBhdGNoLCBtYW55bGludXhfbW9kdWxlLCBhdHRyaWJ1dGUs
IGdsaWJjCisgICAgKToKKyAgICAgICAgbWFueWxpbnV4ID0gIm1hbnlsaW51eHt9X2NvbXBhdGli
bGUiLmZvcm1hdChhdHRyaWJ1dGUpCisgICAgICAgIG1vbmtleXBhdGNoLmRlbGF0dHIobWFueWxp
bnV4X21vZHVsZSwgbWFueWxpbnV4LCByYWlzaW5nPUZhbHNlKQorICAgICAgICBhc3NlcnQgdGFn
cy5faXNfbWFueWxpbnV4X2NvbXBhdGlibGUobWFueWxpbnV4LCAieDg2XzY0IiwgZ2xpYmMpCisK
KyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJ2ZXJzaW9uLGNvbXBhdGli
bGUiLCAoKCgyLCAwKSwgVHJ1ZSksICgoMiwgNSksIFRydWUpLCAoKDIsIDEwKSwgRmFsc2UpKQor
ICAgICkKKyAgICBkZWYgdGVzdF9pc19tYW55bGludXhfY29tcGF0aWJsZV9nbGliY19zdXBwb3J0
KAorICAgICAgICBzZWxmLCB2ZXJzaW9uLCBjb21wYXRpYmxlLCBtb25rZXlwYXRjaAorICAgICk6
CisgICAgICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oc3lzLm1vZHVsZXMsICJfbWFueWxpbnV4Iiwg
Tm9uZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2dldF9nbGliY192ZXJz
aW9uIiwgbGFtYmRhOiAoMiwgNSkpCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICBib29s
KHRhZ3MuX2lzX21hbnlsaW51eF9jb21wYXRpYmxlKCJtYW55bGludXgxIiwgImFueSIsIHZlcnNp
b24pKQorICAgICAgICAgICAgPT0gY29tcGF0aWJsZQorICAgICAgICApCisKKyAgICBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoInZlcnNpb25fc3RyIiwgWyJnbGliYy0yLjQuNSIsICIyIl0pCisg
ICAgZGVmIHRlc3RfY2hlY2tfZ2xpYmNfdmVyc2lvbl93YXJuaW5nKHNlbGYsIHZlcnNpb25fc3Ry
KToKKyAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncyhyZWNvcmQ9VHJ1ZSkgYXMg
dzoKKyAgICAgICAgICAgIHRhZ3MuX3BhcnNlX2dsaWJjX3ZlcnNpb24odmVyc2lvbl9zdHIpCisg
ICAgICAgICAgICBhc3NlcnQgbGVuKHcpID09IDEKKyAgICAgICAgICAgIGFzc2VydCBpc3N1YmNs
YXNzKHdbMF0uY2F0ZWdvcnksIFJ1bnRpbWVXYXJuaW5nKQorCisgICAgQHB5dGVzdC5tYXJrLnNr
aXBpZihub3QgY3R5cGVzLCByZWFzb249InJlcXVpcmVzIGN0eXBlcyIpCisgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKAorICAgICAgICAidmVyc2lvbl9zdHIsZXhwZWN0ZWQiLAorICAgICAg
ICBbCisgICAgICAgICAgICAjIEJlIHZlcnkgZXhwbGljaXQgYWJvdXQgYnl0ZXMgYW5kIFVuaWNv
ZGUgZm9yIFB5dGhvbiAyIHRlc3RpbmcuCisgICAgICAgICAgICAoYiIyLjQiLCAiMi40IiksCisg
ICAgICAgICAgICAodSIyLjQiLCAiMi40IiksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0
ZXN0X2dsaWJjX3ZlcnNpb25fc3RyaW5nKHNlbGYsIHZlcnNpb25fc3RyLCBleHBlY3RlZCwgbW9u
a2V5cGF0Y2gpOgorICAgICAgICBjbGFzcyBMaWJjVmVyc2lvbjoKKyAgICAgICAgICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB2ZXJzaW9uX3N0cik6CisgICAgICAgICAgICAgICAgc2VsZi52ZXJzaW9u
X3N0ciA9IHZlcnNpb25fc3RyCisKKyAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdmVyc2lvbl9zdHIKKworICAgICAgICBjbGFzcyBQcm9jZXNz
TmFtZXNwYWNlOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxpYmNfdmVyc2lvbik6
CisgICAgICAgICAgICAgICAgc2VsZi5nbnVfZ2V0X2xpYmNfdmVyc2lvbiA9IGxpYmNfdmVyc2lv
bgorCisgICAgICAgIHByb2Nlc3NfbmFtZXNwYWNlID0gUHJvY2Vzc05hbWVzcGFjZShMaWJjVmVy
c2lvbih2ZXJzaW9uX3N0cikpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoY3R5cGVzLCAi
Q0RMTCIsIGxhbWJkYSBfOiBwcm9jZXNzX25hbWVzcGFjZSkKKyAgICAgICAgbW9ua2V5cGF0Y2gu
c2V0YXR0cih0YWdzLCAiX2dsaWJjX3ZlcnNpb25fc3RyaW5nX2NvbmZzdHIiLCBsYW1iZGE6IEZh
bHNlKQorCisgICAgICAgIGFzc2VydCB0YWdzLl9nbGliY192ZXJzaW9uX3N0cmluZygpID09IGV4
cGVjdGVkCisKKyAgICAgICAgZGVsIHByb2Nlc3NfbmFtZXNwYWNlLmdudV9nZXRfbGliY192ZXJz
aW9uCisgICAgICAgIGFzc2VydCB0YWdzLl9nbGliY192ZXJzaW9uX3N0cmluZygpIGlzIE5vbmUK
KworICAgIGRlZiB0ZXN0X2dsaWJjX3ZlcnNpb25fc3RyaW5nX2NvbmZzdHIoc2VsZiwgbW9ua2V5
cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG9zLCAiY29uZnN0ciIsIGxhbWJk
YSB4OiAiZ2xpYmMgMi4yMCIsIHJhaXNpbmc9RmFsc2UpCisgICAgICAgIGFzc2VydCB0YWdzLl9n
bGliY192ZXJzaW9uX3N0cmluZ19jb25mc3RyKCkgPT0gIjIuMjAiCisKKyAgICBkZWYgdGVzdF9n
bGliY192ZXJzaW9uX3N0cmluZ19mYWlsKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9u
a2V5cGF0Y2guc2V0YXR0cihvcywgImNvbmZzdHIiLCBsYW1iZGEgeDogTm9uZSwgcmFpc2luZz1G
YWxzZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0aXRlbShzeXMubW9kdWxlcywgImN0eXBlcyIs
IE5vbmUpCisgICAgICAgIGFzc2VydCB0YWdzLl9nbGliY192ZXJzaW9uX3N0cmluZygpIGlzIE5v
bmUKKyAgICAgICAgYXNzZXJ0IHRhZ3MuX2dldF9nbGliY192ZXJzaW9uKCkgPT0gKC0xLCAtMSkK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgImZhaWx1cmUiLAorICAg
ICAgICBbcHJldGVuZC5yYWlzZXIoVmFsdWVFcnJvciksIHByZXRlbmQucmFpc2VyKE9TRXJyb3Ip
LCBsYW1iZGEgeDogIlhYWCJdLAorICAgICkKKyAgICBkZWYgdGVzdF9nbGliY192ZXJzaW9uX3N0
cmluZ19jb25mc3RyX2ZhaWwoc2VsZiwgbW9ua2V5cGF0Y2gsIGZhaWx1cmUpOgorICAgICAgICBt
b25rZXlwYXRjaC5zZXRhdHRyKG9zLCAiY29uZnN0ciIsIGZhaWx1cmUsIHJhaXNpbmc9RmFsc2Up
CisgICAgICAgIGFzc2VydCB0YWdzLl9nbGliY192ZXJzaW9uX3N0cmluZ19jb25mc3RyKCkgaXMg
Tm9uZQorCisgICAgZGVmIHRlc3RfZ2xpYmNfdmVyc2lvbl9zdHJpbmdfY29uZnN0cl9taXNzaW5n
KHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsYXR0cihvcywgImNv
bmZzdHIiLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBhc3NlcnQgdGFncy5fZ2xpYmNfdmVyc2lv
bl9zdHJpbmdfY29uZnN0cigpIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X2dsaWJjX3ZlcnNpb25f
c3RyaW5nX2N0eXBlc19taXNzaW5nKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5
cGF0Y2guc2V0aXRlbShzeXMubW9kdWxlcywgImN0eXBlcyIsIE5vbmUpCisgICAgICAgIGFzc2Vy
dCB0YWdzLl9nbGliY192ZXJzaW9uX3N0cmluZ19jdHlwZXMoKSBpcyBOb25lCisKKyAgICBkZWYg
dGVzdF9nbGliY192ZXJzaW9uX3N0cmluZ19jdHlwZXNfcmFpc2Vfb3NlcnJvcihzZWxmLCBtb25r
ZXlwYXRjaCk6CisgICAgICAgIGRlZiBwYXRjaGVkX2NkbGwobmFtZSk6CisgICAgICAgICAgICBy
YWlzZSBPU0Vycm9yKCJEeW5hbWljIGxvYWRpbmcgbm90IHN1cHBvcnRlZCIpCisKKyAgICAgICAg
bW9ua2V5cGF0Y2guc2V0YXR0cihjdHlwZXMsICJDRExMIiwgcGF0Y2hlZF9jZGxsKQorICAgICAg
ICBhc3NlcnQgdGFncy5fZ2xpYmNfdmVyc2lvbl9zdHJpbmdfY3R5cGVzKCkgaXMgTm9uZQorCisg
ICAgZGVmIHRlc3RfZ2V0X2NvbmZpZ192YXJfZG9lc19ub3RfbG9nKHNlbGYsIG1vbmtleXBhdGNo
KToKKyAgICAgICAgZGVidWcgPSBwcmV0ZW5kLmNhbGxfcmVjb3JkZXIobGFtYmRhICphOiBOb25l
KQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MubG9nZ2VyLCAiZGVidWciLCBkZWJ1
ZykKKyAgICAgICAgdGFncy5fZ2V0X2NvbmZpZ192YXIoIm1pc3NpbmciKQorICAgICAgICBhc3Nl
cnQgZGVidWcuY2FsbHMgPT0gW10KKworICAgIGRlZiB0ZXN0X2dldF9jb25maWdfdmFyX2RvZXNf
bG9nKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgZGVidWcgPSBwcmV0ZW5kLmNhbGxfcmVj
b3JkZXIobGFtYmRhICphOiBOb25lKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3Mu
bG9nZ2VyLCAiZGVidWciLCBkZWJ1ZykKKyAgICAgICAgdGFncy5fZ2V0X2NvbmZpZ192YXIoIm1p
c3NpbmciLCB3YXJuPVRydWUpCisgICAgICAgIGFzc2VydCBkZWJ1Zy5jYWxscyA9PSBbCisgICAg
ICAgICAgICBwcmV0ZW5kLmNhbGwoCisgICAgICAgICAgICAgICAgIkNvbmZpZyB2YXJpYWJsZSAn
JXMnIGlzIHVuc2V0LCBQeXRob24gQUJJIHRhZyBtYXkgYmUgaW5jb3JyZWN0IiwKKyAgICAgICAg
ICAgICAgICAibWlzc2luZyIsCisgICAgICAgICAgICApCisgICAgICAgIF0KKworICAgIEBweXRl
c3QubWFyay5za2lwaWYocGxhdGZvcm0uc3lzdGVtKCkgIT0gIkxpbnV4IiwgcmVhc29uPSJyZXF1
aXJlcyBMaW51eCIpCisgICAgZGVmIHRlc3RfaXNfbWFueWxpbnV4X2NvbXBhdGlibGVfb2xkKHNl
bGYpOgorICAgICAgICAjIEFzc3VtaW5nIG5vIG9uZSBpcyBydW5uaW5nIHRoaXMgdGVzdCB3aXRo
IGEgdmVyc2lvbiBvZiBnbGliYyByZWxlYXNlZCBpbgorICAgICAgICAjIDE5OTcuCisgICAgICAg
IGFzc2VydCB0YWdzLl9pc19tYW55bGludXhfY29tcGF0aWJsZSgiYW55IiwgImFueSIsICgyLCAw
KSkKKworICAgIGRlZiB0ZXN0X2lzX21hbnlsaW51eF9jb21wYXRpYmxlKHNlbGYsIG1vbmtleXBh
dGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2dsaWJjX3ZlcnNpb25f
c3RyaW5nIiwgbGFtYmRhOiAiMi40IikKKyAgICAgICAgYXNzZXJ0IHRhZ3MuX2lzX21hbnlsaW51
eF9jb21wYXRpYmxlKCIiLCAiYW55IiwgKDIsIDQpKQorCisgICAgZGVmIHRlc3RfZ2xpYmNfdmVy
c2lvbl9zdHJpbmdfbm9uZShzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNo
LnNldGF0dHIodGFncywgIl9nbGliY192ZXJzaW9uX3N0cmluZyIsIGxhbWJkYTogTm9uZSkKKyAg
ICAgICAgYXNzZXJ0IG5vdCB0YWdzLl9pc19tYW55bGludXhfY29tcGF0aWJsZSgiYW55IiwgImFu
eSIsICgyLCA0KSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgImFy
Y2gsaXNfMzJiaXQsZXhwZWN0ZWQiLAorICAgICAgICBbCisgICAgICAgICAgICAoImxpbnV4LXg4
Nl82NCIsIEZhbHNlLCAibGludXhfeDg2XzY0IiksCisgICAgICAgICAgICAoImxpbnV4LXg4Nl82
NCIsIFRydWUsICJsaW51eF9pNjg2IiksCisgICAgICAgICAgICAoImxpbnV4LWFhcmNoNjQiLCBG
YWxzZSwgImxpbnV4X2FhcmNoNjQiKSwKKyAgICAgICAgICAgICgibGludXgtYWFyY2g2NCIsIFRy
dWUsICJsaW51eF9hcm12N2wiKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3RfbGlu
dXhfcGxhdGZvcm1zXzMyXzY0Yml0X29uXzY0Yml0X29zKAorICAgICAgICBzZWxmLCBhcmNoLCBp
c18zMmJpdCwgZXhwZWN0ZWQsIG1vbmtleXBhdGNoCisgICAgKToKKyAgICAgICAgbW9ua2V5cGF0
Y2guc2V0YXR0cihkaXN0dXRpbHMudXRpbCwgImdldF9wbGF0Zm9ybSIsIGxhbWJkYTogYXJjaCkK
KyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihvcywgImNvbmZzdHIiLCBsYW1iZGEgeDogImds
aWJjIDIuMjAiLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRh
Z3MsICJfaXNfbWFueWxpbnV4X2NvbXBhdGlibGUiLCBsYW1iZGEgKmFyZ3M6IEZhbHNlKQorICAg
ICAgICBsaW51eF9wbGF0Zm9ybSA9IGxpc3QodGFncy5fbGludXhfcGxhdGZvcm1zKGlzXzMyYml0
PWlzXzMyYml0KSlbLTFdCisgICAgICAgIGFzc2VydCBsaW51eF9wbGF0Zm9ybSA9PSBleHBlY3Rl
ZAorCisgICAgZGVmIHRlc3RfbGludXhfcGxhdGZvcm1zX21hbnlsaW51eF91bnN1cHBvcnRlZChz
ZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoZGlzdHV0aWxz
LnV0aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6ICJsaW51eF94ODZfNjQiKQorICAgICAgICBt
b25rZXlwYXRjaC5zZXRhdHRyKG9zLCAiY29uZnN0ciIsIGxhbWJkYSB4OiAiZ2xpYmMgMi4yMCIs
IHJhaXNpbmc9RmFsc2UpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9pc19t
YW55bGludXhfY29tcGF0aWJsZSIsIGxhbWJkYSAqYXJnczogRmFsc2UpCisgICAgICAgIGxpbnV4
X3BsYXRmb3JtID0gbGlzdCh0YWdzLl9saW51eF9wbGF0Zm9ybXMoaXNfMzJiaXQ9RmFsc2UpKQor
ICAgICAgICBhc3NlcnQgbGludXhfcGxhdGZvcm0gPT0gWyJsaW51eF94ODZfNjQiXQorCisgICAg
ZGVmIHRlc3RfbGludXhfcGxhdGZvcm1zX21hbnlsaW51eDEoc2VsZiwgaXNfeDg2LCBtb25rZXlw
YXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoCisgICAgICAgICAgICB0YWdzLCAi
X2lzX21hbnlsaW51eF9jb21wYXRpYmxlIiwgbGFtYmRhIG5hbWUsICphcmdzOiBuYW1lID09ICJt
YW55bGludXgxIgorICAgICAgICApCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoZGlzdHV0
aWxzLnV0aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6ICJsaW51eF94ODZfNjQiKQorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKHBsYXRmb3JtLCAibWFjaGluZSIsIGxhbWJkYTogIng4Nl82
NCIpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIob3MsICJjb25mc3RyIiwgbGFtYmRhIHg6
ICJnbGliYyAyLjIwIiwgcmFpc2luZz1GYWxzZSkKKyAgICAgICAgcGxhdGZvcm1zID0gbGlzdCh0
YWdzLl9saW51eF9wbGF0Zm9ybXMoaXNfMzJiaXQ9RmFsc2UpKQorICAgICAgICBhcmNoID0gcGxh
dGZvcm0ubWFjaGluZSgpCisgICAgICAgIGFzc2VydCBwbGF0Zm9ybXMgPT0gWyJtYW55bGludXgx
XyIgKyBhcmNoLCAibGludXhfIiArIGFyY2hdCisKKyAgICBkZWYgdGVzdF9saW51eF9wbGF0Zm9y
bXNfbWFueWxpbnV4MjAxMChzZWxmLCBpc194ODYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9u
a2V5cGF0Y2guc2V0YXR0cihkaXN0dXRpbHMudXRpbCwgImdldF9wbGF0Zm9ybSIsIGxhbWJkYTog
ImxpbnV4X3g4Nl82NCIpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIocGxhdGZvcm0sICJt
YWNoaW5lIiwgbGFtYmRhOiAieDg2XzY0IikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihv
cywgImNvbmZzdHIiLCBsYW1iZGEgeDogImdsaWJjIDIuMTIiLCByYWlzaW5nPUZhbHNlKQorICAg
ICAgICBwbGF0Zm9ybXMgPSBsaXN0KHRhZ3MuX2xpbnV4X3BsYXRmb3Jtcyhpc18zMmJpdD1GYWxz
ZSkpCisgICAgICAgIGFyY2ggPSBwbGF0Zm9ybS5tYWNoaW5lKCkKKyAgICAgICAgZXhwZWN0ZWQg
PSBbCisgICAgICAgICAgICAibWFueWxpbnV4XzJfMTJfIiArIGFyY2gsCisgICAgICAgICAgICAi
bWFueWxpbnV4MjAxMF8iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xMV8iICsg
YXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xMF8iICsgYXJjaCwKKyAgICAgICAgICAg
ICJtYW55bGludXhfMl85XyIgKyBhcmNoLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzhfIiAr
IGFyY2gsCisgICAgICAgICAgICAibWFueWxpbnV4XzJfN18iICsgYXJjaCwKKyAgICAgICAgICAg
ICJtYW55bGludXhfMl82XyIgKyBhcmNoLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzVfIiAr
IGFyY2gsCisgICAgICAgICAgICAibWFueWxpbnV4MV8iICsgYXJjaCwKKyAgICAgICAgICAgICJs
aW51eF8iICsgYXJjaCwKKyAgICAgICAgXQorICAgICAgICBhc3NlcnQgcGxhdGZvcm1zID09IGV4
cGVjdGVkCisKKyAgICBkZWYgdGVzdF9saW51eF9wbGF0Zm9ybXNfbWFueWxpbnV4MjAxNChzZWxm
LCBpc194ODYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihkaXN0
dXRpbHMudXRpbCwgImdldF9wbGF0Zm9ybSIsIGxhbWJkYTogImxpbnV4X3g4Nl82NCIpCisgICAg
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIocGxhdGZvcm0sICJtYWNoaW5lIiwgbGFtYmRhOiAieDg2
XzY0IikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihvcywgImNvbmZzdHIiLCBsYW1iZGEg
eDogImdsaWJjIDIuMTciLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBwbGF0Zm9ybXMgPSBsaXN0
KHRhZ3MuX2xpbnV4X3BsYXRmb3Jtcyhpc18zMmJpdD1GYWxzZSkpCisgICAgICAgIGFyY2ggPSBw
bGF0Zm9ybS5tYWNoaW5lKCkKKyAgICAgICAgZXhwZWN0ZWQgPSBbCisgICAgICAgICAgICAibWFu
eWxpbnV4XzJfMTdfIiArIGFyY2gsCisgICAgICAgICAgICAibWFueWxpbnV4MjAxNF8iICsgYXJj
aCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xNl8iICsgYXJjaCwKKyAgICAgICAgICAgICJt
YW55bGludXhfMl8xNV8iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xNF8iICsg
YXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xM18iICsgYXJjaCwKKyAgICAgICAgICAg
ICJtYW55bGludXhfMl8xMl8iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXgyMDEwXyIg
KyBhcmNoLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzExXyIgKyBhcmNoLAorICAgICAgICAg
ICAgIm1hbnlsaW51eF8yXzEwXyIgKyBhcmNoLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzlf
IiArIGFyY2gsCisgICAgICAgICAgICAibWFueWxpbnV4XzJfOF8iICsgYXJjaCwKKyAgICAgICAg
ICAgICJtYW55bGludXhfMl83XyIgKyBhcmNoLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzZf
IiArIGFyY2gsCisgICAgICAgICAgICAibWFueWxpbnV4XzJfNV8iICsgYXJjaCwKKyAgICAgICAg
ICAgICJtYW55bGludXgxXyIgKyBhcmNoLAorICAgICAgICAgICAgImxpbnV4XyIgKyBhcmNoLAor
ICAgICAgICBdCisgICAgICAgIGFzc2VydCBwbGF0Zm9ybXMgPT0gZXhwZWN0ZWQKKworICAgIGRl
ZiB0ZXN0X2xpbnV4X3BsYXRmb3Jtc19tYW55bGludXgyMDE0X2FybWhmX2FiaShzZWxmLCBtb25r
ZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9nbGliY192ZXJz
aW9uX3N0cmluZyIsIGxhbWJkYTogIjIuMzAiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRy
KAorICAgICAgICAgICAgdGFncywKKyAgICAgICAgICAgICJfaXNfbWFueWxpbnV4X2NvbXBhdGli
bGUiLAorICAgICAgICAgICAgbGFtYmRhIG5hbWUsICphcmdzOiBuYW1lID09ICJtYW55bGludXgy
MDE0IiwKKyAgICAgICAgKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGRpc3R1dGlscy51
dGlsLCAiZ2V0X3BsYXRmb3JtIiwgbGFtYmRhOiAibGludXhfYXJtdjdsIikKKyAgICAgICAgbW9u
a2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAgIHN5cywKKyAgICAgICAgICAgICJleGVjdXRh
YmxlIiwKKyAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p
LCAiaGVsbG8td29ybGQtYXJtdjdsLWFybWhmIiksCisgICAgICAgICkKKyAgICAgICAgcGxhdGZv
cm1zID0gbGlzdCh0YWdzLl9saW51eF9wbGF0Zm9ybXMoaXNfMzJiaXQ9VHJ1ZSkpCisgICAgICAg
IGV4cGVjdGVkID0gWyJtYW55bGludXgyMDE0X2FybXY3bCIsICJsaW51eF9hcm12N2wiXQorICAg
ICAgICBhc3NlcnQgcGxhdGZvcm1zID09IGV4cGVjdGVkCisKKyAgICBkZWYgdGVzdF9saW51eF9w
bGF0Zm9ybXNfbWFueWxpbnV4MjAxNF9pMzg2X2FiaShzZWxmLCBtb25rZXlwYXRjaCk6CisgICAg
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9nbGliY192ZXJzaW9uX3N0cmluZyIsIGxh
bWJkYTogIjIuMTciKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGRpc3R1dGlscy51dGls
LCAiZ2V0X3BsYXRmb3JtIiwgbGFtYmRhOiAibGludXhfeDg2XzY0IikKKyAgICAgICAgbW9ua2V5
cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAgIHN5cywKKyAgICAgICAgICAgICJleGVjdXRhYmxl
IiwKKyAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAi
aGVsbG8td29ybGQteDg2XzY0LWkzODYiKSwKKyAgICAgICAgKQorICAgICAgICBwbGF0Zm9ybXMg
PSBsaXN0KHRhZ3MuX2xpbnV4X3BsYXRmb3Jtcyhpc18zMmJpdD1UcnVlKSkKKyAgICAgICAgZXhw
ZWN0ZWQgPSBbCisgICAgICAgICAgICAibWFueWxpbnV4XzJfMTdfaTY4NiIsCisgICAgICAgICAg
ICAibWFueWxpbnV4MjAxNF9pNjg2IiwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xNl9pNjg2
IiwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xNV9pNjg2IiwKKyAgICAgICAgICAgICJtYW55
bGludXhfMl8xNF9pNjg2IiwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xM19pNjg2IiwKKyAg
ICAgICAgICAgICJtYW55bGludXhfMl8xMl9pNjg2IiwKKyAgICAgICAgICAgICJtYW55bGludXgy
MDEwX2k2ODYiLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzExX2k2ODYiLAorICAgICAgICAg
ICAgIm1hbnlsaW51eF8yXzEwX2k2ODYiLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzlfaTY4
NiIsCisgICAgICAgICAgICAibWFueWxpbnV4XzJfOF9pNjg2IiwKKyAgICAgICAgICAgICJtYW55
bGludXhfMl83X2k2ODYiLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzZfaTY4NiIsCisgICAg
ICAgICAgICAibWFueWxpbnV4XzJfNV9pNjg2IiwKKyAgICAgICAgICAgICJtYW55bGludXgxX2k2
ODYiLAorICAgICAgICAgICAgImxpbnV4X2k2ODYiLAorICAgICAgICBdCisgICAgICAgIGFzc2Vy
dCBwbGF0Zm9ybXMgPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0ZXN0X2xpbnV4X3BsYXRmb3Jtc19t
YW55bGludXhfZ2xpYmMzKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgIyB0ZXN0IGZvciBh
IGZ1dHVyZSBnbGljIDMueCB2ZXJzaW9uCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFn
cywgIl9nbGliY192ZXJzaW9uX3N0cmluZyIsIGxhbWJkYTogIjMuMiIpCisgICAgICAgIG1vbmtl
eXBhdGNoLnNldGF0dHIodGFncywgIl9pc19tYW55bGludXhfY29tcGF0aWJsZSIsIGxhbWJkYSBu
YW1lLCAqYXJnczogVHJ1ZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihkaXN0dXRpbHMu
dXRpbCwgImdldF9wbGF0Zm9ybSIsIGxhbWJkYTogImxpbnV4X2FhcmNoNjQiKQorICAgICAgICBt
b25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAgICAgc3lzLAorICAgICAgICAgICAgImV4ZWN1
dGFibGUiLAorICAgICAgICAgICAgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVf
XyksICJoZWxsby13b3JsZC1hYXJjaDY0IiksCisgICAgICAgICkKKyAgICAgICAgcGxhdGZvcm1z
ID0gbGlzdCh0YWdzLl9saW51eF9wbGF0Zm9ybXMoaXNfMzJiaXQ9RmFsc2UpKQorICAgICAgICBl
eHBlY3RlZCA9ICgKKyAgICAgICAgICAgIFsibWFueWxpbnV4XzNfMl9hYXJjaDY0IiwgIm1hbnls
aW51eF8zXzFfYWFyY2g2NCIsICJtYW55bGludXhfM18wX2FhcmNoNjQiXQorICAgICAgICAgICAg
KyBbIm1hbnlsaW51eF8yX3t9X2FhcmNoNjQiLmZvcm1hdChpKSBmb3IgaSBpbiByYW5nZSg1MCwg
MTYsIC0xKV0KKyAgICAgICAgICAgICsgWyJtYW55bGludXgyMDE0X2FhcmNoNjQiLCAibGludXhf
YWFyY2g2NCJdCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IHBsYXRmb3JtcyA9PSBleHBlY3Rl
ZAorCisgICAgZGVmIHRlc3RfbGludXhfcGxhdGZvcm1zX21hbnlsaW51eDIwMTRfYXJtdjZsKHNl
bGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAg
ICAgIHRhZ3MsICJfaXNfbWFueWxpbnV4X2NvbXBhdGlibGUiLCBsYW1iZGEgbmFtZSwgXzogbmFt
ZSA9PSAibWFueWxpbnV4MjAxNCIKKyAgICAgICAgKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRh
dHRyKGRpc3R1dGlscy51dGlsLCAiZ2V0X3BsYXRmb3JtIiwgbGFtYmRhOiAibGludXhfYXJtdjZs
IikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihvcywgImNvbmZzdHIiLCBsYW1iZGEgeDog
ImdsaWJjIDIuMjAiLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBwbGF0Zm9ybXMgPSBsaXN0KHRh
Z3MuX2xpbnV4X3BsYXRmb3Jtcyhpc18zMmJpdD1UcnVlKSkKKyAgICAgICAgZXhwZWN0ZWQgPSBb
ImxpbnV4X2FybXY2bCJdCisgICAgICAgIGFzc2VydCBwbGF0Zm9ybXMgPT0gZXhwZWN0ZWQKKwor
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgIm1hY2hpbmUsIGFiaSwgYWx0
X21hY2hpbmUiLAorICAgICAgICBbKCJ4ODZfNjQiLCAieDMyIiwgImk2ODYiKSwgKCJhcm12N2wi
LCAiYXJtZWwiLCAiYXJtdjdsIildLAorICAgICkKKyAgICBkZWYgdGVzdF9saW51eF9wbGF0Zm9y
bXNfbm90X21hbnlsaW51eF9hYmkoCisgICAgICAgIHNlbGYsIG1vbmtleXBhdGNoLCBtYWNoaW5l
LCBhYmksIGFsdF9tYWNoaW5lCisgICAgKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0
YWdzLCAiX2lzX21hbnlsaW51eF9jb21wYXRpYmxlIiwgbGFtYmRhIG5hbWUsIF86IEZhbHNlKQor
ICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAgICAgZGlzdHV0aWxzLnV0aWws
ICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6ICJsaW51eF97fSIuZm9ybWF0KG1hY2hpbmUpCisgICAg
ICAgICkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAgIHN5cywKKyAg
ICAgICAgICAgICJleGVjdXRhYmxlIiwKKyAgICAgICAgICAgIG9zLnBhdGguam9pbigKKyAgICAg
ICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiaGVsbG8td29ybGQte30te30i
LmZvcm1hdChtYWNoaW5lLCBhYmkpCisgICAgICAgICAgICApLAorICAgICAgICApCisgICAgICAg
IHBsYXRmb3JtcyA9IGxpc3QodGFncy5fbGludXhfcGxhdGZvcm1zKGlzXzMyYml0PVRydWUpKQor
ICAgICAgICBleHBlY3RlZCA9IFsibGludXhfe30iLmZvcm1hdChhbHRfbWFjaGluZSldCisgICAg
ICAgIGFzc2VydCBwbGF0Zm9ybXMgPT0gZXhwZWN0ZWQKKworICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgKKyAgICAgICAgIm1hY2hpbmUsIGFiaSwgZWxmX2NsYXNzLCBlbGZfZGF0YSwgZWxm
X21hY2hpbmUiLAorICAgICAgICBbCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgIng4
Nl82NCIsCisgICAgICAgICAgICAgICAgIngzMiIsCisgICAgICAgICAgICAgICAgdGFncy5fRUxG
RmlsZUhlYWRlci5FTEZDTEFTUzMyLAorICAgICAgICAgICAgICAgIHRhZ3MuX0VMRkZpbGVIZWFk
ZXIuRUxGREFUQTJMU0IsCisgICAgICAgICAgICAgICAgdGFncy5fRUxGRmlsZUhlYWRlci5FTV9Y
ODZfNjQsCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICJ4
ODZfNjQiLAorICAgICAgICAgICAgICAgICJpMzg2IiwKKyAgICAgICAgICAgICAgICB0YWdzLl9F
TEZGaWxlSGVhZGVyLkVMRkNMQVNTMzIsCisgICAgICAgICAgICAgICAgdGFncy5fRUxGRmlsZUhl
YWRlci5FTEZEQVRBMkxTQiwKKyAgICAgICAgICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVN
XzM4NiwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgIng4
Nl82NCIsCisgICAgICAgICAgICAgICAgImFtZDY0IiwKKyAgICAgICAgICAgICAgICB0YWdzLl9F
TEZGaWxlSGVhZGVyLkVMRkNMQVNTNjQsCisgICAgICAgICAgICAgICAgdGFncy5fRUxGRmlsZUhl
YWRlci5FTEZEQVRBMkxTQiwKKyAgICAgICAgICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVN
X1g4Nl82NCwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAg
ImFybXY3bCIsCisgICAgICAgICAgICAgICAgImFybWVsIiwKKyAgICAgICAgICAgICAgICB0YWdz
Ll9FTEZGaWxlSGVhZGVyLkVMRkNMQVNTMzIsCisgICAgICAgICAgICAgICAgdGFncy5fRUxGRmls
ZUhlYWRlci5FTEZEQVRBMkxTQiwKKyAgICAgICAgICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVy
LkVNX0FSTSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAg
ImFybXY3bCIsCisgICAgICAgICAgICAgICAgImFybWhmIiwKKyAgICAgICAgICAgICAgICB0YWdz
Ll9FTEZGaWxlSGVhZGVyLkVMRkNMQVNTMzIsCisgICAgICAgICAgICAgICAgdGFncy5fRUxGRmls
ZUhlYWRlci5FTEZEQVRBMkxTQiwKKyAgICAgICAgICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVy
LkVNX0FSTSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAg
InMzOTB4IiwKKyAgICAgICAgICAgICAgICAiczM5MHgiLAorICAgICAgICAgICAgICAgIHRhZ3Mu
X0VMRkZpbGVIZWFkZXIuRUxGQ0xBU1M2NCwKKyAgICAgICAgICAgICAgICB0YWdzLl9FTEZGaWxl
SGVhZGVyLkVMRkRBVEEyTVNCLAorICAgICAgICAgICAgICAgIHRhZ3MuX0VMRkZpbGVIZWFkZXIu
RU1fUzM5MCwKKyAgICAgICAgICAgICksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0
X2dldF9lbGZfaGVhZGVyKAorICAgICAgICBzZWxmLCBtb25rZXlwYXRjaCwgbWFjaGluZSwgYWJp
LCBlbGZfY2xhc3MsIGVsZl9kYXRhLCBlbGZfbWFjaGluZQorICAgICk6CisgICAgICAgIHBhdGgg
PSBvcy5wYXRoLmpvaW4oCisgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAi
aGVsbG8td29ybGQte30te30iLmZvcm1hdChtYWNoaW5lLCBhYmkpCisgICAgICAgICkKKyAgICAg
ICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMsICJleGVjdXRhYmxlIiwgcGF0aCkKKyAgICAgICAg
ZWxmX2hlYWRlciA9IHRhZ3MuX2dldF9lbGZfaGVhZGVyKCkKKyAgICAgICAgYXNzZXJ0IGVsZl9o
ZWFkZXIuZV9pZGVudF9jbGFzcyA9PSBlbGZfY2xhc3MKKyAgICAgICAgYXNzZXJ0IGVsZl9oZWFk
ZXIuZV9pZGVudF9kYXRhID09IGVsZl9kYXRhCisgICAgICAgIGFzc2VydCBlbGZfaGVhZGVyLmVf
bWFjaGluZSA9PSBlbGZfbWFjaGluZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAor
ICAgICAgICAiY29udGVudCIsIFtOb25lLCAiaW52YWxpZC1tYWdpYyIsICJpbnZhbGlkLWNsYXNz
IiwgImludmFsaWQtZGF0YSIsICJ0b28tc2hvcnQiXQorICAgICkKKyAgICBkZWYgdGVzdF9nZXRf
ZWxmX2hlYWRlcl9iYWRfZXhjdXRhYmxlKHNlbGYsIG1vbmtleXBhdGNoLCBjb250ZW50KToKKyAg
ICAgICAgaWYgY29udGVudDoKKyAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oCisgICAg
ICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgImhlbGxvLXdvcmxkLXt9Ii5m
b3JtYXQoY29udGVudCkKKyAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IHBhdGggPSBOb25lCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lzLCAiZXhlY3V0YWJs
ZSIsIHBhdGgpCisgICAgICAgIGFzc2VydCB0YWdzLl9nZXRfZWxmX2hlYWRlcigpIGlzIE5vbmUK
KworICAgIGRlZiB0ZXN0X2lzX2xpbnV4X2FybWhmX25vdF9lbGYoc2VsZiwgbW9ua2V5cGF0Y2gp
OgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfZ2V0X2VsZl9oZWFkZXIiLCBs
YW1iZGE6IE5vbmUpCisgICAgICAgIGFzc2VydCBub3QgdGFncy5faXNfbGludXhfYXJtaGYoKQor
CisgICAgZGVmIHRlc3RfaXNfbGludXhfaTY4Nl9ub3RfZWxmKHNlbGYsIG1vbmtleXBhdGNoKToK
KyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2dldF9lbGZfaGVhZGVyIiwgbGFt
YmRhOiBOb25lKQorICAgICAgICBhc3NlcnQgbm90IHRhZ3MuX2lzX2xpbnV4X2k2ODYoKQorCisK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAicGxhdGZvcm1fbmFtZSxkaXNwYXRjaF9m
dW5jIiwKKyAgICBbCisgICAgICAgICgiRGFyd2luIiwgIm1hY19wbGF0Zm9ybXMiKSwKKyAgICAg
ICAgKCJMaW51eCIsICJfbGludXhfcGxhdGZvcm1zIiksCisgICAgICAgICgiR2VuZXJpYyIsICJf
Z2VuZXJpY19wbGF0Zm9ybXMiKSwKKyAgICBdLAorKQorZGVmIHRlc3RfX3BsYXRmb3JtX3RhZ3Mo
cGxhdGZvcm1fbmFtZSwgZGlzcGF0Y2hfZnVuYywgbW9ua2V5cGF0Y2gpOgorICAgIGV4cGVjdGVk
ID0gWyJzaWxseXdhbGsiXQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIocGxhdGZvcm0sICJzeXN0
ZW0iLCBsYW1iZGE6IHBsYXRmb3JtX25hbWUpCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdz
LCBkaXNwYXRjaF9mdW5jLCBsYW1iZGE6IGV4cGVjdGVkKQorICAgIGFzc2VydCB0YWdzLl9wbGF0
Zm9ybV90YWdzKCkgPT0gZXhwZWN0ZWQKKworCitjbGFzcyBUZXN0Q1B5dGhvbkFCSToKKyAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJweV9kZWJ1ZyxnZXR0b3RhbHJlZmNv
dW50LHJlc3VsdCIsCisgICAgICAgIFsoMSwgRmFsc2UsIFRydWUpLCAoMCwgRmFsc2UsIEZhbHNl
KSwgKE5vbmUsIFRydWUsIFRydWUpXSwKKyAgICApCisgICAgZGVmIHRlc3RfZGVidWcoc2VsZiwg
cHlfZGVidWcsIGdldHRvdGFscmVmY291bnQsIHJlc3VsdCwgbW9ua2V5cGF0Y2gpOgorICAgICAg
ICBjb25maWcgPSB7IlB5X0RFQlVHIjogcHlfZGVidWcsICJXSVRIX1BZTUFMTE9DIjogMCwgIlB5
X1VOSUNPREVfU0laRSI6IDJ9CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lzY29uZmln
LCAiZ2V0X2NvbmZpZ192YXIiLCBjb25maWcuX19nZXRpdGVtX18pCisgICAgICAgIGlmIGdldHRv
dGFscmVmY291bnQ6CisgICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHN5cywgImdldHRv
dGFscmVmY291bnQiLCAxLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBleHBlY3RlZCA9IFsiY3Az
N2QiIGlmIHJlc3VsdCBlbHNlICJjcDM3Il0KKyAgICAgICAgYXNzZXJ0IHRhZ3MuX2NweXRob25f
YWJpcygoMywgNykpID09IGV4cGVjdGVkCisKKyAgICBkZWYgdGVzdF9kZWJ1Z19maWxlX2V4dGVu
c2lvbihzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIGNvbmZpZyA9IHsiUHlfREVCVUciOiBO
b25lfQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHN5c2NvbmZpZywgImdldF9jb25maWdf
dmFyIiwgY29uZmlnLl9fZ2V0aXRlbV9fKQorICAgICAgICBtb25rZXlwYXRjaC5kZWxhdHRyKHN5
cywgImdldHRvdGFscmVmY291bnQiLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBtb25rZXlwYXRj
aC5zZXRhdHRyKHRhZ3MsICJFWFRFTlNJT05fU1VGRklYRVMiLCB7Il9kLnB5ZCJ9KQorICAgICAg
ICBhc3NlcnQgdGFncy5fY3B5dGhvbl9hYmlzKCgzLCA4KSkgPT0gWyJjcDM4ZCIsICJjcDM4Il0K
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgImRlYnVnLGV4cGVjdGVk
IiwgWyhUcnVlLCBbImNwMzhkIiwgImNwMzgiXSksIChGYWxzZSwgWyJjcDM4Il0pXQorICAgICkK
KyAgICBkZWYgdGVzdF9fZGVidWdfY3AzOChzZWxmLCBkZWJ1ZywgZXhwZWN0ZWQsIG1vbmtleXBh
dGNoKToKKyAgICAgICAgY29uZmlnID0geyJQeV9ERUJVRyI6IGRlYnVnfQorICAgICAgICBtb25r
ZXlwYXRjaC5zZXRhdHRyKHN5c2NvbmZpZywgImdldF9jb25maWdfdmFyIiwgY29uZmlnLl9fZ2V0
aXRlbV9fKQorICAgICAgICBhc3NlcnQgdGFncy5fY3B5dGhvbl9hYmlzKCgzLCA4KSkgPT0gZXhw
ZWN0ZWQKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgInB5bWFsbG9j
LHZlcnNpb24scmVzdWx0IiwKKyAgICAgICAgWworICAgICAgICAgICAgKDEsICgzLCA3KSwgVHJ1
ZSksCisgICAgICAgICAgICAoMCwgKDMsIDcpLCBGYWxzZSksCisgICAgICAgICAgICAoTm9uZSwg
KDMsIDcpLCBUcnVlKSwKKyAgICAgICAgICAgICgxLCAoMywgOCksIEZhbHNlKSwKKyAgICAgICAg
XSwKKyAgICApCisgICAgZGVmIHRlc3RfcHltYWxsb2Moc2VsZiwgcHltYWxsb2MsIHZlcnNpb24s
IHJlc3VsdCwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBjb25maWcgPSB7IlB5X0RFQlVHIjogMCwg
IldJVEhfUFlNQUxMT0MiOiBweW1hbGxvYywgIlB5X1VOSUNPREVfU0laRSI6IDJ9CisgICAgICAg
IG1vbmtleXBhdGNoLnNldGF0dHIoc3lzY29uZmlnLCAiZ2V0X2NvbmZpZ192YXIiLCBjb25maWcu
X19nZXRpdGVtX18pCisgICAgICAgIGJhc2VfYWJpID0gImNwe317fSIuZm9ybWF0KHZlcnNpb25b
MF0sIHZlcnNpb25bMV0pCisgICAgICAgIGV4cGVjdGVkID0gW2Jhc2VfYWJpICsgIm0iIGlmIHJl
c3VsdCBlbHNlIGJhc2VfYWJpXQorICAgICAgICBhc3NlcnQgdGFncy5fY3B5dGhvbl9hYmlzKHZl
cnNpb24pID09IGV4cGVjdGVkCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAg
ICAgICJ1bmljb2RlX3NpemUsbWF4dW5pY29kZSx2ZXJzaW9uLHJlc3VsdCIsCisgICAgICAgIFsK
KyAgICAgICAgICAgICg0LCAweDEwRkZGRiwgKDMsIDIpLCBUcnVlKSwKKyAgICAgICAgICAgICgy
LCAweEZGRkYsICgzLCAyKSwgRmFsc2UpLAorICAgICAgICAgICAgKE5vbmUsIDB4MTBGRkZGLCAo
MywgMiksIFRydWUpLAorICAgICAgICAgICAgKE5vbmUsIDB4RkZGRiwgKDMsIDIpLCBGYWxzZSks
CisgICAgICAgICAgICAoNCwgMHgxMEZGRkYsICgzLCAzKSwgRmFsc2UpLAorICAgICAgICBdLAor
ICAgICkKKyAgICBkZWYgdGVzdF93aWRlX3VuaWNvZGUoc2VsZiwgdW5pY29kZV9zaXplLCBtYXh1
bmljb2RlLCB2ZXJzaW9uLCByZXN1bHQsIG1vbmtleXBhdGNoKToKKyAgICAgICAgY29uZmlnID0g
eyJQeV9ERUJVRyI6IDAsICJXSVRIX1BZTUFMTE9DIjogMCwgIlB5X1VOSUNPREVfU0laRSI6IHVu
aWNvZGVfc2l6ZX0KKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXNjb25maWcsICJnZXRf
Y29uZmlnX3ZhciIsIGNvbmZpZy5fX2dldGl0ZW1fXykKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cihzeXMsICJtYXh1bmljb2RlIiwgbWF4dW5pY29kZSkKKyAgICAgICAgYmFzZV9hYmkgPSAi
Y3AiICsgdGFncy5fdmVyc2lvbl9ub2RvdCh2ZXJzaW9uKQorICAgICAgICBleHBlY3RlZCA9IFti
YXNlX2FiaSArICJ1IiBpZiByZXN1bHQgZWxzZSBiYXNlX2FiaV0KKyAgICAgICAgYXNzZXJ0IHRh
Z3MuX2NweXRob25fYWJpcyh2ZXJzaW9uKSA9PSBleHBlY3RlZAorCisKK2NsYXNzIFRlc3RDUHl0
aG9uVGFnczoKKyAgICBkZWYgdGVzdF9pdGVyYXRvcl9yZXR1cm5lZChzZWxmKToKKyAgICAgICAg
cmVzdWx0X2l0ZXJhdG9yID0gdGFncy5jcHl0aG9uX3RhZ3MoCisgICAgICAgICAgICAoMywgOCks
IFsiY3AzOGQiLCAiY3AzOCJdLCBbInBsYXQxIiwgInBsYXQyIl0KKyAgICAgICAgKQorICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHRfaXRlcmF0b3IsIGNvbGxlY3Rpb25zX2FiYy5JdGVy
YXRvcikKKworICAgIGRlZiB0ZXN0X2FsbF9hcmdzKHNlbGYpOgorICAgICAgICByZXN1bHRfaXRl
cmF0b3IgPSB0YWdzLmNweXRob25fdGFncygKKyAgICAgICAgICAgICgzLCAxMSksIFsiY3AzXzEx
ZCIsICJjcDNfMTEiXSwgWyJwbGF0MSIsICJwbGF0MiJdCisgICAgICAgICkKKyAgICAgICAgcmVz
dWx0ID0gbGlzdChyZXN1bHRfaXRlcmF0b3IpCisgICAgICAgIGFzc2VydCByZXN1bHQgPT0gWwor
ICAgICAgICAgICAgdGFncy5UYWcoImNwM18xMSIsICJjcDNfMTFkIiwgInBsYXQxIiksCisgICAg
ICAgICAgICB0YWdzLlRhZygiY3AzXzExIiwgImNwM18xMWQiLCAicGxhdDIiKSwKKyAgICAgICAg
ICAgIHRhZ3MuVGFnKCJjcDNfMTEiLCAiY3AzXzExIiwgInBsYXQxIiksCisgICAgICAgICAgICB0
YWdzLlRhZygiY3AzXzExIiwgImNwM18xMSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5U
YWcoImNwM18xMSIsICJhYmkzIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3Az
XzExIiwgImFiaTMiLCAicGxhdDIiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDNfMTEiLCAi
bm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwM18xMSIsICJub25lIiwg
InBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzXzEwIiwgImFiaTMiLCAicGxhdDEi
KSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDNfMTAiLCAiYWJpMyIsICJwbGF0MiIpLAorICAg
ICAgICAgICAgdGFncy5UYWcoImNwMzkiLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAgICAgICAg
dGFncy5UYWcoImNwMzkiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWco
ImNwMzgiLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzgiLCAi
YWJpMyIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzciLCAiYWJpMyIsICJw
bGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzciLCAiYWJpMyIsICJwbGF0MiIpLAor
ICAgICAgICAgICAgdGFncy5UYWcoImNwMzYiLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAgICAg
ICAgdGFncy5UYWcoImNwMzYiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5U
YWcoImNwMzUiLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzUi
LCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzQiLCAiYWJpMyIs
ICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzQiLCAiYWJpMyIsICJwbGF0MiIp
LAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzMiLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAg
ICAgICAgdGFncy5UYWcoImNwMzMiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFn
cy5UYWcoImNwMzIiLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNw
MzIiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICBdCisgICAgICAgIHJlc3VsdF9pdGVyYXRv
ciA9IHRhZ3MuY3B5dGhvbl90YWdzKAorICAgICAgICAgICAgKDMsIDgpLCBbImNwMzhkIiwgImNw
MzgiXSwgWyJwbGF0MSIsICJwbGF0MiJdCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gbGlz
dChyZXN1bHRfaXRlcmF0b3IpCisgICAgICAgIGFzc2VydCByZXN1bHQgPT0gWworICAgICAgICAg
ICAgdGFncy5UYWcoImNwMzgiLCAiY3AzOGQiLCAicGxhdDEiKSwKKyAgICAgICAgICAgIHRhZ3Mu
VGFnKCJjcDM4IiwgImNwMzhkIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3Az
OCIsICJjcDM4IiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzOCIsICJjcDM4
IiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzOCIsICJhYmkzIiwgInBsYXQx
IiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzOCIsICJhYmkzIiwgInBsYXQyIiksCisgICAg
ICAgICAgICB0YWdzLlRhZygiY3AzOCIsICJub25lIiwgInBsYXQxIiksCisgICAgICAgICAgICB0
YWdzLlRhZygiY3AzOCIsICJub25lIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygi
Y3AzNyIsICJhYmkzIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzNyIsICJh
YmkzIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzNiIsICJhYmkzIiwgInBs
YXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzNiIsICJhYmkzIiwgInBsYXQyIiksCisg
ICAgICAgICAgICB0YWdzLlRhZygiY3AzNSIsICJhYmkzIiwgInBsYXQxIiksCisgICAgICAgICAg
ICB0YWdzLlRhZygiY3AzNSIsICJhYmkzIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRh
ZygiY3AzNCIsICJhYmkzIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzNCIs
ICJhYmkzIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzMyIsICJhYmkzIiwg
InBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzMyIsICJhYmkzIiwgInBsYXQyIiks
CisgICAgICAgICAgICB0YWdzLlRhZygiY3AzMiIsICJhYmkzIiwgInBsYXQxIiksCisgICAgICAg
ICAgICB0YWdzLlRhZygiY3AzMiIsICJhYmkzIiwgInBsYXQyIiksCisgICAgICAgIF0KKworICAg
ICAgICByZXN1bHQgPSBsaXN0KHRhZ3MuY3B5dGhvbl90YWdzKCgzLCAzKSwgWyJjcDMzbSJdLCBb
InBsYXQxIiwgInBsYXQyIl0pKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsKKyAgICAgICAg
ICAgIHRhZ3MuVGFnKCJjcDMzIiwgImNwMzNtIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdz
LlRhZygiY3AzMyIsICJjcDMzbSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNw
MzMiLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzMiLCAiYWJp
MyIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzMiLCAibm9uZSIsICJwbGF0
MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzMiLCAibm9uZSIsICJwbGF0MiIpLAorICAg
ICAgICAgICAgdGFncy5UYWcoImNwMzIiLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAgICAgICAg
dGFncy5UYWcoImNwMzIiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICBdCisKKyAgICBkZWYg
dGVzdF9weXRob25fdmVyc2lvbl9kZWZhdWx0cyhzZWxmKToKKyAgICAgICAgdGFnID0gbmV4dCh0
YWdzLmNweXRob25fdGFncyhhYmlzPVsiYWJpMyJdLCBwbGF0Zm9ybXM9WyJhbnkiXSkpCisgICAg
ICAgIGludGVycHJldGVyID0gImNwIiArIHRhZ3MuX3ZlcnNpb25fbm9kb3Qoc3lzLnZlcnNpb25f
aW5mb1s6Ml0pCisgICAgICAgIGFzc2VydCBpbnRlcnByZXRlciA9PSB0YWcuaW50ZXJwcmV0ZXIK
KworICAgIGRlZiB0ZXN0X2FiaV9kZWZhdWx0cyhzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAg
IG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9jcHl0aG9uX2FiaXMiLCBsYW1iZGEgXzEsIF8y
OiBbImNwMzgiXSkKKyAgICAgICAgcmVzdWx0ID0gbGlzdCh0YWdzLmNweXRob25fdGFncygoMywg
OCksIHBsYXRmb3Jtcz1bImFueSJdKSkKKyAgICAgICAgYXNzZXJ0IHRhZ3MuVGFnKCJjcDM4Iiwg
ImNwMzgiLCAiYW55IikgaW4gcmVzdWx0CisgICAgICAgIGFzc2VydCB0YWdzLlRhZygiY3AzOCIs
ICJhYmkzIiwgImFueSIpIGluIHJlc3VsdAorICAgICAgICBhc3NlcnQgdGFncy5UYWcoImNwMzgi
LCAibm9uZSIsICJhbnkiKSBpbiByZXN1bHQKKworICAgIGRlZiB0ZXN0X2FiaV9kZWZhdWx0c19u
ZWVkc191bmRlcnNjb3JlKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2gu
c2V0YXR0cih0YWdzLCAiX2NweXRob25fYWJpcyIsIGxhbWJkYSBfMSwgXzI6IFsiY3AzXzExIl0p
CisgICAgICAgIHJlc3VsdCA9IGxpc3QodGFncy5jcHl0aG9uX3RhZ3MoKDMsIDExKSwgcGxhdGZv
cm1zPVsiYW55Il0pKQorICAgICAgICBhc3NlcnQgdGFncy5UYWcoImNwM18xMSIsICJjcDNfMTEi
LCAiYW55IikgaW4gcmVzdWx0CisgICAgICAgIGFzc2VydCB0YWdzLlRhZygiY3AzXzExIiwgImFi
aTMiLCAiYW55IikgaW4gcmVzdWx0CisgICAgICAgIGFzc2VydCB0YWdzLlRhZygiY3AzXzExIiwg
Im5vbmUiLCAiYW55IikgaW4gcmVzdWx0CisKKyAgICBkZWYgdGVzdF9wbGF0Zm9ybXNfZGVmYXVs
dHMoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3Ms
ICJfcGxhdGZvcm1fdGFncyIsIGxhbWJkYTogWyJwbGF0MSJdKQorICAgICAgICByZXN1bHQgPSBs
aXN0KHRhZ3MuY3B5dGhvbl90YWdzKCgzLCA4KSwgYWJpcz1bIndoYXRldmVyIl0pKQorICAgICAg
ICBhc3NlcnQgdGFncy5UYWcoImNwMzgiLCAid2hhdGV2ZXIiLCAicGxhdDEiKSBpbiByZXN1bHQK
KworICAgIGRlZiB0ZXN0X3BsYXRmb3Jtc19kZWZhdWx0c19uZWVkc191bmRlcnNjb3JlKHNlbGYs
IG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX3BsYXRm
b3JtX3RhZ3MiLCBsYW1iZGE6IFsicGxhdDEiXSkKKyAgICAgICAgcmVzdWx0ID0gbGlzdCh0YWdz
LmNweXRob25fdGFncygoMywgMTEpLCBhYmlzPVsid2hhdGV2ZXIiXSkpCisgICAgICAgIGFzc2Vy
dCB0YWdzLlRhZygiY3AzXzExIiwgIndoYXRldmVyIiwgInBsYXQxIikgaW4gcmVzdWx0CisKKyAg
ICBkZWYgdGVzdF9tYWpvcl9vbmx5X3B5dGhvbl92ZXJzaW9uKHNlbGYpOgorICAgICAgICByZXN1
bHQgPSBsaXN0KHRhZ3MuY3B5dGhvbl90YWdzKCgzLCksIFsiYWJpIl0sIFsicGxhdCJdKSkKKyAg
ICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzIiwgImFi
aSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzIiwgIm5vbmUiLCAicGxhdCIp
LAorICAgICAgICBdCisKKyAgICBkZWYgdGVzdF9tYWpvcl9vbmx5X3B5dGhvbl92ZXJzaW9uX3dp
dGhfZGVmYXVsdF9hYmlzKHNlbGYpOgorICAgICAgICByZXN1bHQgPSBsaXN0KHRhZ3MuY3B5dGhv
bl90YWdzKCgzLCksIHBsYXRmb3Jtcz1bInBsYXQiXSkpCisgICAgICAgIGFzc2VydCByZXN1bHQg
PT0gW3RhZ3MuVGFnKCJjcDMiLCAibm9uZSIsICJwbGF0IildCisKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoImFiaXMiLCBbW10sIFsiYWJpMyJdLCBbIm5vbmUiXV0pCisgICAgZGVmIHRl
c3Rfc2tpcF9yZWR1bmRhbnRfYWJpcyhzZWxmLCBhYmlzKToKKyAgICAgICAgcmVzdWx0cyA9IGxp
c3QodGFncy5jcHl0aG9uX3RhZ3MoKDMsIDApLCBhYmlzPWFiaXMsIHBsYXRmb3Jtcz1bImFueSJd
KSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdHMgPT0gW3RhZ3MuVGFnKCJjcDMwIiwgIm5vbmUiLCAi
YW55IildCisKKyAgICBkZWYgdGVzdF9hYmkzX3B5dGhvbjMzKHNlbGYpOgorICAgICAgICByZXN1
bHRzID0gbGlzdCh0YWdzLmNweXRob25fdGFncygoMywgMyksIGFiaXM9WyJjcDMzIl0sIHBsYXRm
b3Jtcz1bInBsYXQiXSkpCisgICAgICAgIGFzc2VydCByZXN1bHRzID09IFsKKyAgICAgICAgICAg
IHRhZ3MuVGFnKCJjcDMzIiwgImNwMzMiLCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5UYWco
ImNwMzMiLCAiYWJpMyIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzMyIsICJu
b25lIiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDMyIiwgImFiaTMiLCAicGxh
dCIpLAorICAgICAgICBdCisKKyAgICBkZWYgdGVzdF9ub19leGNlc3NfYWJpM19weXRob24zMihz
ZWxmKToKKyAgICAgICAgcmVzdWx0cyA9IGxpc3QodGFncy5jcHl0aG9uX3RhZ3MoKDMsIDIpLCBh
YmlzPVsiY3AzMiJdLCBwbGF0Zm9ybXM9WyJwbGF0Il0pKQorICAgICAgICBhc3NlcnQgcmVzdWx0
cyA9PSBbCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzMiIsICJjcDMyIiwgInBsYXQiKSwKKyAg
ICAgICAgICAgIHRhZ3MuVGFnKCJjcDMyIiwgImFiaTMiLCAicGxhdCIpLAorICAgICAgICAgICAg
dGFncy5UYWcoImNwMzIiLCAibm9uZSIsICJwbGF0IiksCisgICAgICAgIF0KKworICAgIGRlZiB0
ZXN0X25vX2FiaTNfcHl0aG9uMzEoc2VsZik6CisgICAgICAgIHJlc3VsdHMgPSBsaXN0KHRhZ3Mu
Y3B5dGhvbl90YWdzKCgzLCAxKSwgYWJpcz1bImNwMzEiXSwgcGxhdGZvcm1zPVsicGxhdCJdKSkK
KyAgICAgICAgYXNzZXJ0IHJlc3VsdHMgPT0gWworICAgICAgICAgICAgdGFncy5UYWcoImNwMzEi
LCAiY3AzMSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzMSIsICJub25lIiwg
InBsYXQiKSwKKyAgICAgICAgXQorCisgICAgZGVmIHRlc3Rfbm9fYWJpM19weXRob24yNyhzZWxm
KToKKyAgICAgICAgcmVzdWx0cyA9IGxpc3QodGFncy5jcHl0aG9uX3RhZ3MoKDIsIDcpLCBhYmlz
PVsiY3AyNyJdLCBwbGF0Zm9ybXM9WyJwbGF0Il0pKQorICAgICAgICBhc3NlcnQgcmVzdWx0cyA9
PSBbCisgICAgICAgICAgICB0YWdzLlRhZygiY3AyNyIsICJjcDI3IiwgInBsYXQiKSwKKyAgICAg
ICAgICAgIHRhZ3MuVGFnKCJjcDI3IiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICBdCisKKwor
Y2xhc3MgVGVzdEdlbmVyaWNUYWdzOgorICAgIEBweXRlc3QubWFyay5za2lwaWYoCisgICAgICAg
IG5vdCBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoIlNPQUJJIiksIHJlYXNvbj0iU09BQkkgbm90
IGRlZmluZWQiCisgICAgKQorICAgIGRlZiB0ZXN0X19nZW5lcmljX2FiaV9zb2FiaV9wcm92aWRl
ZChzZWxmKToKKyAgICAgICAgYWJpID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCJTT0FCSSIp
LnJlcGxhY2UoIi4iLCAiXyIpLnJlcGxhY2UoIi0iLCAiXyIpCisgICAgICAgIGFzc2VydCBbYWJp
XSA9PSBsaXN0KHRhZ3MuX2dlbmVyaWNfYWJpKCkpCisKKyAgICBkZWYgdGVzdF9fZ2VuZXJpY19h
Ymkoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAg
ICAgICAgICAgc3lzY29uZmlnLCAiZ2V0X2NvbmZpZ192YXIiLCBsYW1iZGEga2V5OiAiY3B5dGhv
bi0zN20tZGFyd2luIgorICAgICAgICApCisgICAgICAgIGFzc2VydCBsaXN0KHRhZ3MuX2dlbmVy
aWNfYWJpKCkpID09IFsiY3B5dGhvbl8zN21fZGFyd2luIl0KKworICAgIGRlZiB0ZXN0X19nZW5l
cmljX2FiaV9ub19zb2FiaShzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNo
LnNldGF0dHIoc3lzY29uZmlnLCAiZ2V0X2NvbmZpZ192YXIiLCBsYW1iZGEga2V5OiBOb25lKQor
ICAgICAgICBhc3NlcnQgbm90IGxpc3QodGFncy5fZ2VuZXJpY19hYmkoKSkKKworICAgIGRlZiB0
ZXN0X2dlbmVyaWNfcGxhdGZvcm1zKHNlbGYpOgorICAgICAgICBwbGF0Zm9ybSA9IGRpc3R1dGls
cy51dGlsLmdldF9wbGF0Zm9ybSgpLnJlcGxhY2UoIi0iLCAiXyIpCisgICAgICAgIHBsYXRmb3Jt
ID0gcGxhdGZvcm0ucmVwbGFjZSgiLiIsICJfIikKKyAgICAgICAgYXNzZXJ0IGxpc3QodGFncy5f
Z2VuZXJpY19wbGF0Zm9ybXMoKSkgPT0gW3BsYXRmb3JtXQorCisgICAgZGVmIHRlc3RfaXRlcmF0
b3JfcmV0dXJuZWQoc2VsZik6CisgICAgICAgIHJlc3VsdF9pdGVyYXRvciA9IHRhZ3MuZ2VuZXJp
Y190YWdzKCJzaWxseXdhbGszMyIsIFsiYWJpIl0sIFsicGxhdDEiLCAicGxhdDIiXSkKKyAgICAg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0X2l0ZXJhdG9yLCBjb2xsZWN0aW9uc19hYmMuSXRl
cmF0b3IpCisKKyAgICBkZWYgdGVzdF9hbGxfYXJncyhzZWxmKToKKyAgICAgICAgcmVzdWx0X2l0
ZXJhdG9yID0gdGFncy5nZW5lcmljX3RhZ3MoInNpbGx5d2FsazMzIiwgWyJhYmkiXSwgWyJwbGF0
MSIsICJwbGF0MiJdKQorICAgICAgICByZXN1bHQgPSBsaXN0KHJlc3VsdF9pdGVyYXRvcikKKyAg
ICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbCisgICAgICAgICAgICB0YWdzLlRhZygic2lsbHl3YWxr
MzMiLCAiYWJpIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygic2lsbHl3YWxrMzMi
LCAiYWJpIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygic2lsbHl3YWxrMzMiLCAi
bm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInNpbGx5d2FsazMzIiwgIm5v
bmUiLCAicGxhdDIiKSwKKyAgICAgICAgXQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJhYmkiLCBbW10sIFsibm9uZSJdXSkKKyAgICBkZWYgdGVzdF9hYmlfdW5zcGVjaWZpZWQoc2Vs
ZiwgYWJpKToKKyAgICAgICAgbm9fYWJpID0gbGlzdCh0YWdzLmdlbmVyaWNfdGFncygic2lsbHl3
YWxrMzQiLCBhYmksIFsicGxhdDEiLCAicGxhdDIiXSkpCisgICAgICAgIGFzc2VydCBub19hYmkg
PT0gWworICAgICAgICAgICAgdGFncy5UYWcoInNpbGx5d2FsazM0IiwgIm5vbmUiLCAicGxhdDEi
KSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJzaWxseXdhbGszNCIsICJub25lIiwgInBsYXQyIiks
CisgICAgICAgIF0KKworICAgIGRlZiB0ZXN0X2ludGVycHJldGVyX2RlZmF1bHQoc2VsZiwgbW9u
a2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJpbnRlcnByZXRl
cl9uYW1lIiwgbGFtYmRhOiAic2lsbHl3YWxrIikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0
cih0YWdzLCAiaW50ZXJwcmV0ZXJfdmVyc2lvbiIsIGxhbWJkYSB3YXJuOiAiTk4iKQorICAgICAg
ICByZXN1bHQgPSBsaXN0KHRhZ3MuZ2VuZXJpY190YWdzKGFiaXM9WyJub25lIl0sIHBsYXRmb3Jt
cz1bImFueSJdKSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbdGFncy5UYWcoInNpbGx5d2Fs
a05OIiwgIm5vbmUiLCAiYW55IildCisKKyAgICBkZWYgdGVzdF9hYmlzX2RlZmF1bHQoc2VsZiwg
bW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfZ2VuZXJp
Y19hYmkiLCBsYW1iZGE6IGl0ZXIoWyJhYmkiXSkpCisgICAgICAgIHJlc3VsdCA9IGxpc3QodGFn
cy5nZW5lcmljX3RhZ3MoaW50ZXJwcmV0ZXI9InNpbGx5d2FsayIsIHBsYXRmb3Jtcz1bImFueSJd
KSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbCisgICAgICAgICAgICB0YWdzLlRhZygic2ls
bHl3YWxrIiwgImFiaSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJzaWxseXdhbGsi
LCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgXQorCisgICAgZGVmIHRlc3RfcGxhdGZvcm1zX2Rl
ZmF1bHQoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRh
Z3MsICJfcGxhdGZvcm1fdGFncyIsIGxhbWJkYTogWyJwbGF0Il0pCisgICAgICAgIHJlc3VsdCA9
IGxpc3QodGFncy5nZW5lcmljX3RhZ3MoaW50ZXJwcmV0ZXI9InNpbGx5d2FsayIsIGFiaXM9WyJu
b25lIl0pKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFt0YWdzLlRhZygic2lsbHl3YWxrIiwg
Im5vbmUiLCAicGxhdCIpXQorCisKK2NsYXNzIFRlc3RDb21wYXRpYmxlVGFnczoKKyAgICBkZWYg
dGVzdF9hbGxfYXJncyhzZWxmKToKKyAgICAgICAgcmVzdWx0ID0gbGlzdCh0YWdzLmNvbXBhdGli
bGVfdGFncygoMywgMyksICJjcDMzIiwgWyJwbGF0MSIsICJwbGF0MiJdKSkKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdCA9PSBbCisgICAgICAgICAgICB0YWdzLlRhZygicHkzMyIsICJub25lIiwgInBs
YXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzMyIsICJub25lIiwgInBsYXQyIiksCisg
ICAgICAgICAgICB0YWdzLlRhZygicHkzIiwgIm5vbmUiLCAicGxhdDEiKSwKKyAgICAgICAgICAg
IHRhZ3MuVGFnKCJweTMiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWco
InB5MzIiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzIiLCAi
bm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzEiLCAibm9uZSIsICJw
bGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzEiLCAibm9uZSIsICJwbGF0MiIpLAor
ICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAg
ICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5U
YWcoImNwMzMiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMzIiwg
Im5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzIiwgIm5vbmUiLCAiYW55
IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzMiIsICJub25lIiwgImFueSIpLAorICAgICAg
ICAgICAgdGFncy5UYWcoInB5MzEiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3Mu
VGFnKCJweTMwIiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgIF0KKworICAgIGRlZiB0ZXN0X2Fs
bF9hcmdzX25lZWRzX3VuZGVyc2NvcmUoc2VsZik6CisgICAgICAgIHJlc3VsdCA9IGxpc3QodGFn
cy5jb21wYXRpYmxlX3RhZ3MoKDMsIDExKSwgImNwM18xMSIsIFsicGxhdDEiLCAicGxhdDIiXSkp
CisgICAgICAgIGFzc2VydCByZXN1bHQgPT0gWworICAgICAgICAgICAgdGFncy5UYWcoInB5M18x
MSIsICJub25lIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzXzExIiwgIm5v
bmUiLCAicGxhdDIiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMiLCAibm9uZSIsICJwbGF0
MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MyIsICJub25lIiwgInBsYXQyIiksCisgICAg
ICAgICAgICB0YWdzLlRhZygicHkzXzEwIiwgIm5vbmUiLCAicGxhdDEiKSwKKyAgICAgICAgICAg
IHRhZ3MuVGFnKCJweTNfMTAiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5U
YWcoInB5MzkiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5Mzki
LCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzgiLCAibm9uZSIs
ICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzgiLCAibm9uZSIsICJwbGF0MiIp
LAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzciLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAg
ICAgICAgdGFncy5UYWcoInB5MzciLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFn
cy5UYWcoInB5MzYiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5
MzYiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzUiLCAibm9u
ZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzUiLCAibm9uZSIsICJwbGF0
MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzQiLCAibm9uZSIsICJwbGF0MSIpLAorICAg
ICAgICAgICAgdGFncy5UYWcoInB5MzQiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAg
dGFncy5UYWcoInB5MzMiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWco
InB5MzMiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzIiLCAi
bm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzIiLCAibm9uZSIsICJw
bGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzEiLCAibm9uZSIsICJwbGF0MSIpLAor
ICAgICAgICAgICAgdGFncy5UYWcoInB5MzEiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAg
ICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5U
YWcoInB5MzAiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwM18x
MSIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5M18xMSIsICJub25l
IiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MyIsICJub25lIiwgImFueSIpLAor
ICAgICAgICAgICAgdGFncy5UYWcoInB5M18xMCIsICJub25lIiwgImFueSIpLAorICAgICAgICAg
ICAgdGFncy5UYWcoInB5MzkiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFn
KCJweTM4IiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzNyIsICJu
b25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzYiLCAibm9uZSIsICJhbnki
KSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTM1IiwgIm5vbmUiLCAiYW55IiksCisgICAgICAg
ICAgICB0YWdzLlRhZygicHkzNCIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5U
YWcoInB5MzMiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMyIiwg
Im5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzMSIsICJub25lIiwgImFu
eSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJhbnkiKSwKKyAgICAg
ICAgXQorCisgICAgZGVmIHRlc3RfbWFqb3Jfb25seV9weXRob25fdmVyc2lvbihzZWxmKToKKyAg
ICAgICAgcmVzdWx0ID0gbGlzdCh0YWdzLmNvbXBhdGlibGVfdGFncygoMywpLCAiY3AzMyIsIFsi
cGxhdCJdKSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbCisgICAgICAgICAgICB0YWdzLlRh
ZygicHkzIiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzMiLCAi
bm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMiLCAibm9uZSIsICJhbnki
KSwKKyAgICAgICAgXQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF9weXRob25fdmVyc2lvbihzZWxm
LCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lzLCAidmVyc2lv
bl9pbmZvIiwgKDMsIDEpKQorICAgICAgICByZXN1bHQgPSBsaXN0KHRhZ3MuY29tcGF0aWJsZV90
YWdzKGludGVycHJldGVyPSJjcDMxIiwgcGxhdGZvcm1zPVsicGxhdCJdKSkKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdCA9PSBbCisgICAgICAgICAgICB0YWdzLlRhZygicHkzMSIsICJub25lIiwgInBs
YXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMiLCAibm9uZSIsICJwbGF0IiksCisgICAg
ICAgICAgICB0YWdzLlRhZygicHkzMCIsICJub25lIiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRh
Z3MuVGFnKCJjcDMxIiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkz
MSIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MyIsICJub25lIiwg
ImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJhbnkiKSwKKyAg
ICAgICAgXQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF9weXRob25fdmVyc2lvbl9uZWVkc191bmRl
cnNjb3JlKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihz
eXMsICJ2ZXJzaW9uX2luZm8iLCAoMywgMTEpKQorICAgICAgICByZXN1bHQgPSBsaXN0KHRhZ3Mu
Y29tcGF0aWJsZV90YWdzKGludGVycHJldGVyPSJjcDNfMTEiLCBwbGF0Zm9ybXM9WyJwbGF0Il0p
KQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTNf
MTEiLCAibm9uZSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzIiwgIm5vbmUi
LCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5M18xMCIsICJub25lIiwgInBsYXQi
KSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTM5IiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAg
ICAgICAgdGFncy5UYWcoInB5MzgiLCAibm9uZSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdz
LlRhZygicHkzNyIsICJub25lIiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTM2
IiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzUiLCAibm9uZSIs
ICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzNCIsICJub25lIiwgInBsYXQiKSwK
KyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMzIiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICAg
ICAgdGFncy5UYWcoInB5MzIiLCAibm9uZSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRh
ZygicHkzMSIsICJub25lIiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMwIiwg
Im5vbmUiLCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwM18xMSIsICJub25lIiwg
ImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5M18xMSIsICJub25lIiwgImFueSIpLAor
ICAgICAgICAgICAgdGFncy5UYWcoInB5MyIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAg
dGFncy5UYWcoInB5M18xMCIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWco
InB5MzkiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTM4IiwgIm5v
bmUiLCAiYW55IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzNyIsICJub25lIiwgImFueSIp
LAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzYiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAg
ICAgIHRhZ3MuVGFnKCJweTM1IiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0YWdzLlRh
ZygicHkzNCIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzMiLCAi
bm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMyIiwgIm5vbmUiLCAiYW55
IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzMSIsICJub25lIiwgImFueSIpLAorICAgICAg
ICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgXQorCisgICAg
ZGVmIHRlc3RfZGVmYXVsdF9pbnRlcnByZXRlcihzZWxmKToKKyAgICAgICAgcmVzdWx0ID0gbGlz
dCh0YWdzLmNvbXBhdGlibGVfdGFncygoMywgMSksIHBsYXRmb3Jtcz1bInBsYXQiXSkpCisgICAg
ICAgIGFzc2VydCByZXN1bHQgPT0gWworICAgICAgICAgICAgdGFncy5UYWcoInB5MzEiLCAibm9u
ZSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzIiwgIm5vbmUiLCAicGxhdCIp
LAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJwbGF0IiksCisgICAgICAg
ICAgICB0YWdzLlRhZygicHkzMSIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5U
YWcoInB5MyIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAi
bm9uZSIsICJhbnkiKSwKKyAgICAgICAgXQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF9wbGF0Zm9y
bXMoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3Ms
ICJfcGxhdGZvcm1fdGFncyIsIGxhbWJkYTogaXRlcihbInBsYXQiLCAicGxhdDIiXSkpCisgICAg
ICAgIHJlc3VsdCA9IGxpc3QodGFncy5jb21wYXRpYmxlX3RhZ3MoKDMsIDEpLCAiY3AzMSIpKQor
ICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMxIiwg
Im5vbmUiLCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzEiLCAibm9uZSIsICJw
bGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MyIsICJub25lIiwgInBsYXQiKSwKKyAg
ICAgICAgICAgIHRhZ3MuVGFnKCJweTMiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAg
dGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygi
cHkzMCIsICJub25lIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzMSIsICJu
b25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzEiLCAibm9uZSIsICJhbnki
KSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAg
ICAgIHRhZ3MuVGFnKCJweTMwIiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgIF0KKworCitjbGFz
cyBUZXN0U3lzVGFnczoKKyAgICBkZWYgdGVhcmRvd25fbWV0aG9kKHNlbGYpOgorICAgICAgICAj
IENsZWFyIHRoZSB2ZXJzaW9uIGNhY2hlCisgICAgICAgIHRhZ3MuX2dsaWJjX3ZlcnNpb24gPSBb
XQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAibmFtZSxleHBlY3Rl
ZCIsCisgICAgICAgIFsoIkNQeXRob24iLCAiY3AiKSwgKCJQeVB5IiwgInBwIiksICgiSnl0aG9u
IiwgImp5IiksICgiSXJvblB5dGhvbiIsICJpcCIpXSwKKyAgICApCisgICAgZGVmIHRlc3RfaW50
ZXJwcmV0ZXJfbmFtZShzZWxmLCBuYW1lLCBleHBlY3RlZCwgbW9ja19pbnRlcnByZXRlcl9uYW1l
KToKKyAgICAgICAgbW9ja19pbnRlcnByZXRlcl9uYW1lKG5hbWUpCisgICAgICAgIGFzc2VydCB0
YWdzLmludGVycHJldGVyX25hbWUoKSA9PSBleHBlY3RlZAorCisgICAgZGVmIHRlc3RfaXRlcmF0
b3Ioc2VsZik6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHRhZ3Muc3lzX3RhZ3MoKSwgY29s
bGVjdGlvbnNfYWJjLkl0ZXJhdG9yKQorCisgICAgZGVmIHRlc3RfbWFjX2NweXRob24oc2VsZiwg
bW9ja19pbnRlcnByZXRlcl9uYW1lLCBtb25rZXlwYXRjaCk6CisgICAgICAgIGlmIG1vY2tfaW50
ZXJwcmV0ZXJfbmFtZSgiQ1B5dGhvbiIpOgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0
cih0YWdzLCAiX2NweXRob25fYWJpcyIsIGxhbWJkYSAqYTogWyJjcDMzbSJdKQorICAgICAgICBp
ZiBwbGF0Zm9ybS5zeXN0ZW0oKSAhPSAiRGFyd2luIjoKKyAgICAgICAgICAgIG1vbmtleXBhdGNo
LnNldGF0dHIocGxhdGZvcm0sICJzeXN0ZW0iLCBsYW1iZGE6ICJEYXJ3aW4iKQorICAgICAgICAg
ICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAibWFjX3BsYXRmb3JtcyIsIGxhbWJkYTogWyJt
YWNvc3hfMTBfNV94ODZfNjQiXSkKKyAgICAgICAgYWJpcyA9IHRhZ3MuX2NweXRob25fYWJpcyhz
eXMudmVyc2lvbl9pbmZvWzoyXSkKKyAgICAgICAgcGxhdGZvcm1zID0gbGlzdCh0YWdzLm1hY19w
bGF0Zm9ybXMoKSkKKyAgICAgICAgcmVzdWx0ID0gbGlzdCh0YWdzLnN5c190YWdzKCkpCisgICAg
ICAgIGFzc2VydCBsZW4oYWJpcykgPT0gMQorICAgICAgICBhc3NlcnQgcmVzdWx0WzBdID09IHRh
Z3MuVGFnKAorICAgICAgICAgICAgImNwIiArIHRhZ3MuX3ZlcnNpb25fbm9kb3Qoc3lzLnZlcnNp
b25faW5mb1s6Ml0pLCBhYmlzWzBdLCBwbGF0Zm9ybXNbMF0KKyAgICAgICAgKQorICAgICAgICBh
c3NlcnQgcmVzdWx0Wy0xXSA9PSB0YWdzLlRhZygKKyAgICAgICAgICAgICJweSIgKyB0YWdzLl92
ZXJzaW9uX25vZG90KChzeXMudmVyc2lvbl9pbmZvWzBdLCAwKSksICJub25lIiwgImFueSIKKyAg
ICAgICAgKQorCisgICAgZGVmIHRlc3Rfd2luZG93c19jcHl0aG9uKHNlbGYsIG1vY2tfaW50ZXJw
cmV0ZXJfbmFtZSwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBpZiBtb2NrX2ludGVycHJldGVyX25h
bWUoIkNQeXRob24iKToKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9j
cHl0aG9uX2FiaXMiLCBsYW1iZGEgKmE6IFsiY3AzM20iXSkKKyAgICAgICAgaWYgcGxhdGZvcm0u
c3lzdGVtKCkgIT0gIldpbmRvd3MiOgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihw
bGF0Zm9ybSwgInN5c3RlbSIsIGxhbWJkYTogIldpbmRvd3MiKQorICAgICAgICAgICAgbW9ua2V5
cGF0Y2guc2V0YXR0cih0YWdzLCAiX2dlbmVyaWNfcGxhdGZvcm1zIiwgbGFtYmRhOiBbIndpbl9h
bWQ2NCJdKQorICAgICAgICBhYmlzID0gbGlzdCh0YWdzLl9jcHl0aG9uX2FiaXMoc3lzLnZlcnNp
b25faW5mb1s6Ml0pKQorICAgICAgICBwbGF0Zm9ybXMgPSBsaXN0KHRhZ3MuX2dlbmVyaWNfcGxh
dGZvcm1zKCkpCisgICAgICAgIHJlc3VsdCA9IGxpc3QodGFncy5zeXNfdGFncygpKQorICAgICAg
ICBpbnRlcnByZXRlciA9ICJjcCIgKyB0YWdzLl92ZXJzaW9uX25vZG90KHN5cy52ZXJzaW9uX2lu
Zm9bOjJdKQorICAgICAgICBhc3NlcnQgbGVuKGFiaXMpID09IDEKKyAgICAgICAgZXhwZWN0ZWQg
PSB0YWdzLlRhZyhpbnRlcnByZXRlciwgYWJpc1swXSwgcGxhdGZvcm1zWzBdKQorICAgICAgICBh
c3NlcnQgcmVzdWx0WzBdID09IGV4cGVjdGVkCisgICAgICAgIGV4cGVjdGVkID0gdGFncy5UYWco
CisgICAgICAgICAgICAicHkiICsgdGFncy5fdmVyc2lvbl9ub2RvdCgoc3lzLnZlcnNpb25faW5m
b1swXSwgMCkpLCAibm9uZSIsICJhbnkiCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dFstMV0gPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0ZXN0X2xpbnV4X2NweXRob24oc2VsZiwgbW9j
a19pbnRlcnByZXRlcl9uYW1lLCBtb25rZXlwYXRjaCk6CisgICAgICAgIGlmIG1vY2tfaW50ZXJw
cmV0ZXJfbmFtZSgiQ1B5dGhvbiIpOgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0
YWdzLCAiX2NweXRob25fYWJpcyIsIGxhbWJkYSAqYTogWyJjcDMzbSJdKQorICAgICAgICBpZiBw
bGF0Zm9ybS5zeXN0ZW0oKSAhPSAiTGludXgiOgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cihwbGF0Zm9ybSwgInN5c3RlbSIsIGxhbWJkYTogIkxpbnV4IikKKyAgICAgICAgICAgIG1v
bmtleXBhdGNoLnNldGF0dHIodGFncywgIl9saW51eF9wbGF0Zm9ybXMiLCBsYW1iZGE6IFsibGlu
dXhfeDg2XzY0Il0pCisgICAgICAgIGFiaXMgPSBsaXN0KHRhZ3MuX2NweXRob25fYWJpcyhzeXMu
dmVyc2lvbl9pbmZvWzoyXSkpCisgICAgICAgIHBsYXRmb3JtcyA9IGxpc3QodGFncy5fbGludXhf
cGxhdGZvcm1zKCkpCisgICAgICAgIHJlc3VsdCA9IGxpc3QodGFncy5zeXNfdGFncygpKQorICAg
ICAgICBleHBlY3RlZF9pbnRlcnByZXRlciA9ICJjcCIgKyB0YWdzLl92ZXJzaW9uX25vZG90KHN5
cy52ZXJzaW9uX2luZm9bOjJdKQorICAgICAgICBhc3NlcnQgbGVuKGFiaXMpID09IDEKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdFswXSA9PSB0YWdzLlRhZyhleHBlY3RlZF9pbnRlcnByZXRlciwgYWJp
c1swXSwgcGxhdGZvcm1zWzBdKQorICAgICAgICBleHBlY3RlZCA9IHRhZ3MuVGFnKAorICAgICAg
ICAgICAgInB5IiArIHRhZ3MuX3ZlcnNpb25fbm9kb3QoKHN5cy52ZXJzaW9uX2luZm9bMF0sIDAp
KSwgIm5vbmUiLCAiYW55IgorICAgICAgICApCisgICAgICAgIGFzc2VydCByZXN1bHRbLTFdID09
IGV4cGVjdGVkCisKKyAgICBkZWYgdGVzdF9nZW5lcmljKHNlbGYsIG1vbmtleXBhdGNoKToKKyAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihwbGF0Zm9ybSwgInN5c3RlbSIsIGxhbWJkYTogIkdl
bmVyaWMiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJpbnRlcnByZXRlcl9u
YW1lIiwgbGFtYmRhOiAiZ2VuZXJpYyIpCisKKyAgICAgICAgcmVzdWx0ID0gbGlzdCh0YWdzLnN5
c190YWdzKCkpCisgICAgICAgIGV4cGVjdGVkID0gdGFncy5UYWcoCisgICAgICAgICAgICAicHki
ICsgdGFncy5fdmVyc2lvbl9ub2RvdCgoc3lzLnZlcnNpb25faW5mb1swXSwgMCkpLCAibm9uZSIs
ICJhbnkiCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdFstMV0gPT0gZXhwZWN0ZWQK
KworICAgIGRlZiB0ZXN0X2xpbnV4X3BsYXRmb3Jtc19tYW55bGludXgyMDE0X2FybXY2bChzZWxm
LCBtb25rZXlwYXRjaCwgbWFueWxpbnV4X21vZHVsZSk6CisgICAgICAgIG1vbmtleXBhdGNoLnNl
dGF0dHIoZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6ICJsaW51eF9hcm12
NmwiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG9zLCAiY29uZnN0ciIsIGxhbWJkYSB4
OiAiZ2xpYmMgMi4yMCIsIHJhaXNpbmc9RmFsc2UpCisgICAgICAgIHBsYXRmb3JtcyA9IGxpc3Qo
dGFncy5fbGludXhfcGxhdGZvcm1zKGlzXzMyYml0PVRydWUpKQorICAgICAgICBleHBlY3RlZCA9
IFsibGludXhfYXJtdjZsIl0KKyAgICAgICAgYXNzZXJ0IHBsYXRmb3JtcyA9PSBleHBlY3RlZAor
CisgICAgZGVmIHRlc3Rfc2tpcF9tYW55bGludXhfMjAxNChzZWxmLCBtb25rZXlwYXRjaCwgbWFu
eWxpbnV4X21vZHVsZSk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoZGlzdHV0aWxzLnV0
aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6ICJsaW51eF9wcGM2NCIpCisgICAgICAgIG1vbmtl
eXBhdGNoLnNldGF0dHIodGFncywgIl9nZXRfZ2xpYmNfdmVyc2lvbiIsIGxhbWJkYTogKDIsIDIw
KSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAgIG1hbnlsaW51eF9t
b2R1bGUsICJtYW55bGludXgyMDE0X2NvbXBhdGlibGUiLCBGYWxzZSwgcmFpc2luZz1GYWxzZQor
ICAgICAgICApCisgICAgICAgIGV4cGVjdGVkID0gWworICAgICAgICAgICAgIm1hbnlsaW51eF8y
XzIwX3BwYzY0IiwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xOV9wcGM2NCIsCisgICAgICAg
ICAgICAibWFueWxpbnV4XzJfMThfcHBjNjQiLAorICAgICAgICAgICAgIyAibWFueWxpbnV4MjAx
NF9wcGM2NCIsICAjIHRoaXMgb25lIGlzIHNraXBwZWQKKyAgICAgICAgICAgICMgIm1hbnlsaW51
eF8yXzE3X3BwYzY0IiwgIyB0aGlzIG9uZSBpcyBhbHNvIHNraXBwZWQKKyAgICAgICAgICAgICJs
aW51eF9wcGM2NCIsCisgICAgICAgIF0KKyAgICAgICAgcGxhdGZvcm1zID0gbGlzdCh0YWdzLl9s
aW51eF9wbGF0Zm9ybXMoKSkKKyAgICAgICAgYXNzZXJ0IHBsYXRmb3JtcyA9PSBleHBlY3RlZAor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAibWFjaGluZSwgYWJpLCBh
bHRfbWFjaGluZSIsCisgICAgICAgIFsoIng4Nl82NCIsICJ4MzIiLCAiaTY4NiIpLCAoImFybXY3
bCIsICJhcm1lbCIsICJhcm12N2wiKV0sCisgICAgKQorICAgIGRlZiB0ZXN0X2xpbnV4X3BsYXRm
b3Jtc19ub3RfbWFueWxpbnV4X2FiaSgKKyAgICAgICAgc2VsZiwgbW9ua2V5cGF0Y2gsIG1hbnls
aW51eF9tb2R1bGUsIG1hY2hpbmUsIGFiaSwgYWx0X21hY2hpbmUKKyAgICApOgorICAgICAgICBt
b25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAgICAgZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxh
dGZvcm0iLCBsYW1iZGE6ICJsaW51eF97fSIuZm9ybWF0KG1hY2hpbmUpCisgICAgICAgICkKKyAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAgIHN5cywKKyAgICAgICAgICAg
ICJleGVjdXRhYmxlIiwKKyAgICAgICAgICAgIG9zLnBhdGguam9pbigKKyAgICAgICAgICAgICAg
ICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiaGVsbG8td29ybGQte30te30iLmZvcm1hdCht
YWNoaW5lLCBhYmkpCisgICAgICAgICAgICApLAorICAgICAgICApCisgICAgICAgIHBsYXRmb3Jt
cyA9IGxpc3QodGFncy5fbGludXhfcGxhdGZvcm1zKGlzXzMyYml0PVRydWUpKQorICAgICAgICBl
eHBlY3RlZCA9IFsibGludXhfe30iLmZvcm1hdChhbHRfbWFjaGluZSldCisgICAgICAgIGFzc2Vy
dCBwbGF0Zm9ybXMgPT0gZXhwZWN0ZWQKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgK
KyAgICAgICAgIm1hY2hpbmUsIG1ham9yLCBtaW5vciwgdGYiLCBbKCJ4ODZfNjQiLCAyLCAyMCwg
RmFsc2UpLCAoInMzOTB4IiwgMiwgMjIsIFRydWUpXQorICAgICkKKyAgICBkZWYgdGVzdF9saW51
eF91c2VfbWFueWxpbnV4X2NvbXBhdGlibGUoCisgICAgICAgIHNlbGYsIG1vbmtleXBhdGNoLCBt
YW55bGludXhfbW9kdWxlLCBtYWNoaW5lLCBtYWpvciwgbWlub3IsIHRmCisgICAgKToKKyAgICAg
ICAgZGVmIG1hbnlsaW51eF9jb21wYXRpYmxlKHRhZ19tYWpvciwgdGFnX21pbm9yLCB0YWdfYXJj
aCk6CisgICAgICAgICAgICBpZiB0YWdfbWFqb3IgPT0gMiBhbmQgdGFnX21pbm9yID09IDIyOgor
ICAgICAgICAgICAgICAgIHJldHVybiB0YWdfYXJjaCA9PSAiczM5MHgiCisgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKKworICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfZ2V0X2ds
aWJjX3ZlcnNpb24iLCBsYW1iZGE6IChtYWpvciwgbWlub3IpKQorICAgICAgICBtb25rZXlwYXRj
aC5zZXRhdHRyKAorICAgICAgICAgICAgZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxhdGZvcm0iLCBs
YW1iZGE6ICJsaW51eF97fSIuZm9ybWF0KG1hY2hpbmUpCisgICAgICAgICkKKyAgICAgICAgbW9u
a2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAgIG1hbnlsaW51eF9tb2R1bGUsCisgICAgICAg
ICAgICAibWFueWxpbnV4X2NvbXBhdGlibGUiLAorICAgICAgICAgICAgbWFueWxpbnV4X2NvbXBh
dGlibGUsCisgICAgICAgICAgICByYWlzaW5nPUZhbHNlLAorICAgICAgICApCisgICAgICAgIHBs
YXRmb3JtcyA9IGxpc3QodGFncy5fbGludXhfcGxhdGZvcm1zKGlzXzMyYml0PUZhbHNlKSkKKyAg
ICAgICAgaWYgdGY6CisgICAgICAgICAgICBleHBlY3RlZCA9IFsibWFueWxpbnV4XzJfMjJfe30i
LmZvcm1hdChtYWNoaW5lKV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4cGVjdGVkID0g
W10KKyAgICAgICAgZXhwZWN0ZWQuYXBwZW5kKCJsaW51eF97fSIuZm9ybWF0KG1hY2hpbmUpKQor
ICAgICAgICBhc3NlcnQgcGxhdGZvcm1zID09IGV4cGVjdGVkCisKKyAgICBkZWYgdGVzdF9saW51
eF91c2VfbWFueWxpbnV4X2NvbXBhdGlibGVfbm9uZShzZWxmLCBtb25rZXlwYXRjaCwgbWFueWxp
bnV4X21vZHVsZSk6CisgICAgICAgIGRlZiBtYW55bGludXhfY29tcGF0aWJsZSh0YWdfbWFqb3Is
IHRhZ19taW5vciwgdGFnX2FyY2gpOgorICAgICAgICAgICAgaWYgdGFnX21ham9yID09IDIgYW5k
IHRhZ19taW5vciA8IDI1OgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKKworICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfZ2V0
X2dsaWJjX3ZlcnNpb24iLCBsYW1iZGE6ICgyLCAzMCkpCisgICAgICAgIG1vbmtleXBhdGNoLnNl
dGF0dHIoZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6ICJsaW51eF94ODZf
NjQiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAgICAgbWFueWxpbnV4
X21vZHVsZSwKKyAgICAgICAgICAgICJtYW55bGludXhfY29tcGF0aWJsZSIsCisgICAgICAgICAg
ICBtYW55bGludXhfY29tcGF0aWJsZSwKKyAgICAgICAgICAgIHJhaXNpbmc9RmFsc2UsCisgICAg
ICAgICkKKyAgICAgICAgcGxhdGZvcm1zID0gbGlzdCh0YWdzLl9saW51eF9wbGF0Zm9ybXMoaXNf
MzJiaXQ9RmFsc2UpKQorICAgICAgICBleHBlY3RlZCA9IFsKKyAgICAgICAgICAgICJtYW55bGlu
dXhfMl8zMF94ODZfNjQiLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzI5X3g4Nl82NCIsCisg
ICAgICAgICAgICAibWFueWxpbnV4XzJfMjhfeDg2XzY0IiwKKyAgICAgICAgICAgICJtYW55bGlu
dXhfMl8yN194ODZfNjQiLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzI2X3g4Nl82NCIsCisg
ICAgICAgICAgICAibWFueWxpbnV4XzJfMjVfeDg2XzY0IiwKKyAgICAgICAgICAgICJsaW51eF94
ODZfNjQiLAorICAgICAgICBdCisgICAgICAgIGFzc2VydCBwbGF0Zm9ybXMgPT0gZXhwZWN0ZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL3Rlc3RfdXRpbHMucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy90ZXN0cy90ZXN0X3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4ZWE2YmRiOTBhYzQzZTVl
MzUxNWE5NmIzNTZiNTNmYzc3MmI0MzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2lu
Zy90ZXN0cy90ZXN0X3V0aWxzLnB5CkBAIC0wLDAgKzEsNDkgQEAKKyMgVGhpcyBmaWxlIGlzIGR1
YWwgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lv
bgorIyAyLjAsIGFuZCB0aGUgQlNEIExpY2Vuc2UuIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRo
ZSByb290IG9mIHRoaXMgcmVwb3NpdG9yeQorIyBmb3IgY29tcGxldGUgZGV0YWlscy4KK2Zyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rp
b24KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHBhY2thZ2luZy51dGlscyBpbXBvcnQgY2Fub25p
Y2FsaXplX25hbWUsIGNhbm9uaWNhbGl6ZV92ZXJzaW9uCitmcm9tIHBhY2thZ2luZy52ZXJzaW9u
IGltcG9ydCBWZXJzaW9uCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICgibmFt
ZSIsICJleHBlY3RlZCIpLAorICAgIFsKKyAgICAgICAgKCJmb28iLCAiZm9vIiksCisgICAgICAg
ICgiRm9vIiwgImZvbyIpLAorICAgICAgICAoImZPbyIsICJmb28iKSwKKyAgICAgICAgKCJmb28u
YmFyIiwgImZvby1iYXIiKSwKKyAgICAgICAgKCJGb28uQmFyIiwgImZvby1iYXIiKSwKKyAgICAg
ICAgKCJGb28uLi4uLkJhciIsICJmb28tYmFyIiksCisgICAgICAgICgiZm9vX2JhciIsICJmb28t
YmFyIiksCisgICAgICAgICgiZm9vX19fYmFyIiwgImZvby1iYXIiKSwKKyAgICAgICAgKCJmb28t
YmFyIiwgImZvby1iYXIiKSwKKyAgICAgICAgKCJmb28tLS0tYmFyIiwgImZvby1iYXIiKSwKKyAg
ICBdLAorKQorZGVmIHRlc3RfY2Fub25pY2FsaXplX25hbWUobmFtZSwgZXhwZWN0ZWQpOgorICAg
IGFzc2VydCBjYW5vbmljYWxpemVfbmFtZShuYW1lKSA9PSBleHBlY3RlZAorCisKK0BweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgKKyAgICAoInZlcnNpb24iLCAiZXhwZWN0ZWQiKSwKKyAgICBbCisg
ICAgICAgIChWZXJzaW9uKCIxLjQuMCIpLCAiMS40IiksCisgICAgICAgICgiMS40LjAiLCAiMS40
IiksCisgICAgICAgICgiMS40MC4wIiwgIjEuNDAiKSwKKyAgICAgICAgKCIxLjQuMC4wLjAwLjAw
MC4wMDAwIiwgIjEuNCIpLAorICAgICAgICAoIjEuMCIsICIxIiksCisgICAgICAgICgiMS4wK2Fi
YyIsICIxK2FiYyIpLAorICAgICAgICAoIjEuMC5kZXYwIiwgIjEuZGV2MCIpLAorICAgICAgICAo
IjEuMC5wb3N0MCIsICIxLnBvc3QwIiksCisgICAgICAgICgiMS4wYTAiLCAiMWEwIiksCisgICAg
ICAgICgiMS4wcmMwIiwgIjFyYzAiKSwKKyAgICAgICAgKCIxMDAhMC4wIiwgIjEwMCEwIiksCisg
ICAgICAgICgiMS4wLjEtdGVzdDciLCAiMS4wLjEtdGVzdDciKSwgICMgTGVnYWN5VmVyc2lvbiBp
cyB1bmNoYW5nZWQKKyAgICBdLAorKQorZGVmIHRlc3RfY2Fub25pY2FsaXplX3ZlcnNpb24odmVy
c2lvbiwgZXhwZWN0ZWQpOgorICAgIGFzc2VydCBjYW5vbmljYWxpemVfdmVyc2lvbih2ZXJzaW9u
KSA9PSBleHBlY3RlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF92ZXJz
aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF92ZXJzaW9uLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk2MWZjYTIwMWRkNDc5YmE3ODI5Y2ExZGEyNmVjMWFlOGIxYWI3NjUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3ZlcnNpb24ucHkKQEAgLTAsMCArMSw5MDUg
QEAKKyMgVGhpcyBmaWxlIGlzIGR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBB
cGFjaGUgTGljZW5zZSwgVmVyc2lvbgorIyAyLjAsIGFuZCB0aGUgQlNEIExpY2Vuc2UuIFNlZSB0
aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoaXMgcmVwb3NpdG9yeQorIyBmb3IgY29t
cGxldGUgZGV0YWlscy4KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGl0ZXJ0b29scworaW1wb3J0IG9wZXJh
dG9yCitpbXBvcnQgd2FybmluZ3MKKworaW1wb3J0IHByZXRlbmQKK2ltcG9ydCBweXRlc3QKKwor
ZnJvbSBwYWNrYWdpbmcudmVyc2lvbiBpbXBvcnQgVmVyc2lvbiwgTGVnYWN5VmVyc2lvbiwgSW52
YWxpZFZlcnNpb24sIHBhcnNlCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICgi
dmVyc2lvbiIsICJrbGFzcyIpLCBbKCIxLjAiLCBWZXJzaW9uKSwgKCIxLTEtMSIsIExlZ2FjeVZl
cnNpb24pXQorKQorZGVmIHRlc3RfcGFyc2UodmVyc2lvbiwga2xhc3MpOgorICAgIGFzc2VydCBp
c2luc3RhbmNlKHBhcnNlKHZlcnNpb24pLCBrbGFzcykKKworCisjIFRoaXMgbGlzdCBtdXN0IGJl
IGluIHRoZSBjb3JyZWN0IHNvcnRpbmcgb3JkZXIKK1ZFUlNJT05TID0gWworICAgICMgSW1wbGlj
aXQgZXBvY2ggb2YgMAorICAgICIxLjAuZGV2NDU2IiwKKyAgICAiMS4wYTEiLAorICAgICIxLjBh
Mi5kZXY0NTYiLAorICAgICIxLjBhMTIuZGV2NDU2IiwKKyAgICAiMS4wYTEyIiwKKyAgICAiMS4w
YjEuZGV2NDU2IiwKKyAgICAiMS4wYjIiLAorICAgICIxLjBiMi5wb3N0MzQ1LmRldjQ1NiIsCisg
ICAgIjEuMGIyLnBvc3QzNDUiLAorICAgICIxLjBiMi0zNDYiLAorICAgICIxLjBjMS5kZXY0NTYi
LAorICAgICIxLjBjMSIsCisgICAgIjEuMHJjMiIsCisgICAgIjEuMGMzIiwKKyAgICAiMS4wIiwK
KyAgICAiMS4wLnBvc3Q0NTYuZGV2MzQiLAorICAgICIxLjAucG9zdDQ1NiIsCisgICAgIjEuMS5k
ZXYxIiwKKyAgICAiMS4yKzEyM2FiYyIsCisgICAgIjEuMisxMjNhYmM0NTYiLAorICAgICIxLjIr
YWJjIiwKKyAgICAiMS4yK2FiYzEyMyIsCisgICAgIjEuMithYmMxMjNkZWYiLAorICAgICIxLjIr
MTIzNC5hYmMiLAorICAgICIxLjIrMTIzNDU2IiwKKyAgICAiMS4yLnIzMisxMjM0NTYiLAorICAg
ICIxLjIucmV2MzMrMTIzNDU2IiwKKyAgICAjIEV4cGxpY2l0IGVwb2NoIG9mIDEKKyAgICAiMSEx
LjAuZGV2NDU2IiwKKyAgICAiMSExLjBhMSIsCisgICAgIjEhMS4wYTIuZGV2NDU2IiwKKyAgICAi
MSExLjBhMTIuZGV2NDU2IiwKKyAgICAiMSExLjBhMTIiLAorICAgICIxITEuMGIxLmRldjQ1NiIs
CisgICAgIjEhMS4wYjIiLAorICAgICIxITEuMGIyLnBvc3QzNDUuZGV2NDU2IiwKKyAgICAiMSEx
LjBiMi5wb3N0MzQ1IiwKKyAgICAiMSExLjBiMi0zNDYiLAorICAgICIxITEuMGMxLmRldjQ1NiIs
CisgICAgIjEhMS4wYzEiLAorICAgICIxITEuMHJjMiIsCisgICAgIjEhMS4wYzMiLAorICAgICIx
ITEuMCIsCisgICAgIjEhMS4wLnBvc3Q0NTYuZGV2MzQiLAorICAgICIxITEuMC5wb3N0NDU2IiwK
KyAgICAiMSExLjEuZGV2MSIsCisgICAgIjEhMS4yKzEyM2FiYyIsCisgICAgIjEhMS4yKzEyM2Fi
YzQ1NiIsCisgICAgIjEhMS4yK2FiYyIsCisgICAgIjEhMS4yK2FiYzEyMyIsCisgICAgIjEhMS4y
K2FiYzEyM2RlZiIsCisgICAgIjEhMS4yKzEyMzQuYWJjIiwKKyAgICAiMSExLjIrMTIzNDU2IiwK
KyAgICAiMSExLjIucjMyKzEyMzQ1NiIsCisgICAgIjEhMS4yLnJldjMzKzEyMzQ1NiIsCitdCisK
KworY2xhc3MgVGVzdFZlcnNpb246CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJz
aW9uIiwgVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfdmFsaWRfdmVyc2lvbnMoc2VsZiwgdmVyc2lv
bik6CisgICAgICAgIFZlcnNpb24odmVyc2lvbikKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgKKyAgICAgICAgInZlcnNpb24iLAorICAgICAgICBbCisgICAgICAgICAgICAjIE5vbiBz
ZW5zaWNhbCB2ZXJzaW9ucyBzaG91bGQgYmUgaW52YWxpZAorICAgICAgICAgICAgImZyZW5jaCB0
b2FzdCIsCisgICAgICAgICAgICAjIFZlcnNpb25zIHdpdGggaW52YWxpZCBsb2NhbCB2ZXJzaW9u
cworICAgICAgICAgICAgIjEuMCthKyIsCisgICAgICAgICAgICAiMS4wKysiLAorICAgICAgICAg
ICAgIjEuMCtfZm9vYmFyIiwKKyAgICAgICAgICAgICIxLjArZm9vJmFzZCIsCisgICAgICAgICAg
ICAiMS4wKzErMSIsCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X2ludmFsaWRfdmVy
c2lvbnMoc2VsZiwgdmVyc2lvbik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlk
VmVyc2lvbik6CisgICAgICAgICAgICBWZXJzaW9uKHZlcnNpb24pCisKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVyc2lvbiIsICJub3JtYWxpemVkIiksCisgICAg
ICAgIFsKKyAgICAgICAgICAgICMgVmFyaW91cyBkZXZlbG9wbWVudCByZWxlYXNlIGluY2FybmF0
aW9ucworICAgICAgICAgICAgKCIxLjBkZXYiLCAiMS4wLmRldjAiKSwKKyAgICAgICAgICAgICgi
MS4wLmRldiIsICIxLjAuZGV2MCIpLAorICAgICAgICAgICAgKCIxLjBkZXYxIiwgIjEuMC5kZXYx
IiksCisgICAgICAgICAgICAoIjEuMGRldiIsICIxLjAuZGV2MCIpLAorICAgICAgICAgICAgKCIx
LjAtZGV2IiwgIjEuMC5kZXYwIiksCisgICAgICAgICAgICAoIjEuMC1kZXYxIiwgIjEuMC5kZXYx
IiksCisgICAgICAgICAgICAoIjEuMERFViIsICIxLjAuZGV2MCIpLAorICAgICAgICAgICAgKCIx
LjAuREVWIiwgIjEuMC5kZXYwIiksCisgICAgICAgICAgICAoIjEuMERFVjEiLCAiMS4wLmRldjEi
KSwKKyAgICAgICAgICAgICgiMS4wREVWIiwgIjEuMC5kZXYwIiksCisgICAgICAgICAgICAoIjEu
MC5ERVYxIiwgIjEuMC5kZXYxIiksCisgICAgICAgICAgICAoIjEuMC1ERVYiLCAiMS4wLmRldjAi
KSwKKyAgICAgICAgICAgICgiMS4wLURFVjEiLCAiMS4wLmRldjEiKSwKKyAgICAgICAgICAgICMg
VmFyaW91cyBhbHBoYSBpbmNhcm5hdGlvbnMKKyAgICAgICAgICAgICgiMS4wYSIsICIxLjBhMCIp
LAorICAgICAgICAgICAgKCIxLjAuYSIsICIxLjBhMCIpLAorICAgICAgICAgICAgKCIxLjAuYTEi
LCAiMS4wYTEiKSwKKyAgICAgICAgICAgICgiMS4wLWEiLCAiMS4wYTAiKSwKKyAgICAgICAgICAg
ICgiMS4wLWExIiwgIjEuMGExIiksCisgICAgICAgICAgICAoIjEuMGFscGhhIiwgIjEuMGEwIiks
CisgICAgICAgICAgICAoIjEuMC5hbHBoYSIsICIxLjBhMCIpLAorICAgICAgICAgICAgKCIxLjAu
YWxwaGExIiwgIjEuMGExIiksCisgICAgICAgICAgICAoIjEuMC1hbHBoYSIsICIxLjBhMCIpLAor
ICAgICAgICAgICAgKCIxLjAtYWxwaGExIiwgIjEuMGExIiksCisgICAgICAgICAgICAoIjEuMEEi
LCAiMS4wYTAiKSwKKyAgICAgICAgICAgICgiMS4wLkEiLCAiMS4wYTAiKSwKKyAgICAgICAgICAg
ICgiMS4wLkExIiwgIjEuMGExIiksCisgICAgICAgICAgICAoIjEuMC1BIiwgIjEuMGEwIiksCisg
ICAgICAgICAgICAoIjEuMC1BMSIsICIxLjBhMSIpLAorICAgICAgICAgICAgKCIxLjBBTFBIQSIs
ICIxLjBhMCIpLAorICAgICAgICAgICAgKCIxLjAuQUxQSEEiLCAiMS4wYTAiKSwKKyAgICAgICAg
ICAgICgiMS4wLkFMUEhBMSIsICIxLjBhMSIpLAorICAgICAgICAgICAgKCIxLjAtQUxQSEEiLCAi
MS4wYTAiKSwKKyAgICAgICAgICAgICgiMS4wLUFMUEhBMSIsICIxLjBhMSIpLAorICAgICAgICAg
ICAgIyBWYXJpb3VzIGJldGEgaW5jYXJuYXRpb25zCisgICAgICAgICAgICAoIjEuMGIiLCAiMS4w
YjAiKSwKKyAgICAgICAgICAgICgiMS4wLmIiLCAiMS4wYjAiKSwKKyAgICAgICAgICAgICgiMS4w
LmIxIiwgIjEuMGIxIiksCisgICAgICAgICAgICAoIjEuMC1iIiwgIjEuMGIwIiksCisgICAgICAg
ICAgICAoIjEuMC1iMSIsICIxLjBiMSIpLAorICAgICAgICAgICAgKCIxLjBiZXRhIiwgIjEuMGIw
IiksCisgICAgICAgICAgICAoIjEuMC5iZXRhIiwgIjEuMGIwIiksCisgICAgICAgICAgICAoIjEu
MC5iZXRhMSIsICIxLjBiMSIpLAorICAgICAgICAgICAgKCIxLjAtYmV0YSIsICIxLjBiMCIpLAor
ICAgICAgICAgICAgKCIxLjAtYmV0YTEiLCAiMS4wYjEiKSwKKyAgICAgICAgICAgICgiMS4wQiIs
ICIxLjBiMCIpLAorICAgICAgICAgICAgKCIxLjAuQiIsICIxLjBiMCIpLAorICAgICAgICAgICAg
KCIxLjAuQjEiLCAiMS4wYjEiKSwKKyAgICAgICAgICAgICgiMS4wLUIiLCAiMS4wYjAiKSwKKyAg
ICAgICAgICAgICgiMS4wLUIxIiwgIjEuMGIxIiksCisgICAgICAgICAgICAoIjEuMEJFVEEiLCAi
MS4wYjAiKSwKKyAgICAgICAgICAgICgiMS4wLkJFVEEiLCAiMS4wYjAiKSwKKyAgICAgICAgICAg
ICgiMS4wLkJFVEExIiwgIjEuMGIxIiksCisgICAgICAgICAgICAoIjEuMC1CRVRBIiwgIjEuMGIw
IiksCisgICAgICAgICAgICAoIjEuMC1CRVRBMSIsICIxLjBiMSIpLAorICAgICAgICAgICAgIyBW
YXJpb3VzIHJlbGVhc2UgY2FuZGlkYXRlIGluY2FybmF0aW9ucworICAgICAgICAgICAgKCIxLjBj
IiwgIjEuMHJjMCIpLAorICAgICAgICAgICAgKCIxLjAuYyIsICIxLjByYzAiKSwKKyAgICAgICAg
ICAgICgiMS4wLmMxIiwgIjEuMHJjMSIpLAorICAgICAgICAgICAgKCIxLjAtYyIsICIxLjByYzAi
KSwKKyAgICAgICAgICAgICgiMS4wLWMxIiwgIjEuMHJjMSIpLAorICAgICAgICAgICAgKCIxLjBy
YyIsICIxLjByYzAiKSwKKyAgICAgICAgICAgICgiMS4wLnJjIiwgIjEuMHJjMCIpLAorICAgICAg
ICAgICAgKCIxLjAucmMxIiwgIjEuMHJjMSIpLAorICAgICAgICAgICAgKCIxLjAtcmMiLCAiMS4w
cmMwIiksCisgICAgICAgICAgICAoIjEuMC1yYzEiLCAiMS4wcmMxIiksCisgICAgICAgICAgICAo
IjEuMEMiLCAiMS4wcmMwIiksCisgICAgICAgICAgICAoIjEuMC5DIiwgIjEuMHJjMCIpLAorICAg
ICAgICAgICAgKCIxLjAuQzEiLCAiMS4wcmMxIiksCisgICAgICAgICAgICAoIjEuMC1DIiwgIjEu
MHJjMCIpLAorICAgICAgICAgICAgKCIxLjAtQzEiLCAiMS4wcmMxIiksCisgICAgICAgICAgICAo
IjEuMFJDIiwgIjEuMHJjMCIpLAorICAgICAgICAgICAgKCIxLjAuUkMiLCAiMS4wcmMwIiksCisg
ICAgICAgICAgICAoIjEuMC5SQzEiLCAiMS4wcmMxIiksCisgICAgICAgICAgICAoIjEuMC1SQyIs
ICIxLjByYzAiKSwKKyAgICAgICAgICAgICgiMS4wLVJDMSIsICIxLjByYzEiKSwKKyAgICAgICAg
ICAgICMgVmFyaW91cyBwb3N0IHJlbGVhc2UgaW5jYXJuYXRpb25zCisgICAgICAgICAgICAoIjEu
MHBvc3QiLCAiMS4wLnBvc3QwIiksCisgICAgICAgICAgICAoIjEuMC5wb3N0IiwgIjEuMC5wb3N0
MCIpLAorICAgICAgICAgICAgKCIxLjBwb3N0MSIsICIxLjAucG9zdDEiKSwKKyAgICAgICAgICAg
ICgiMS4wcG9zdCIsICIxLjAucG9zdDAiKSwKKyAgICAgICAgICAgICgiMS4wLXBvc3QiLCAiMS4w
LnBvc3QwIiksCisgICAgICAgICAgICAoIjEuMC1wb3N0MSIsICIxLjAucG9zdDEiKSwKKyAgICAg
ICAgICAgICgiMS4wUE9TVCIsICIxLjAucG9zdDAiKSwKKyAgICAgICAgICAgICgiMS4wLlBPU1Qi
LCAiMS4wLnBvc3QwIiksCisgICAgICAgICAgICAoIjEuMFBPU1QxIiwgIjEuMC5wb3N0MSIpLAor
ICAgICAgICAgICAgKCIxLjBQT1NUIiwgIjEuMC5wb3N0MCIpLAorICAgICAgICAgICAgKCIxLjBy
IiwgIjEuMC5wb3N0MCIpLAorICAgICAgICAgICAgKCIxLjByZXYiLCAiMS4wLnBvc3QwIiksCisg
ICAgICAgICAgICAoIjEuMC5QT1NUMSIsICIxLjAucG9zdDEiKSwKKyAgICAgICAgICAgICgiMS4w
LnIxIiwgIjEuMC5wb3N0MSIpLAorICAgICAgICAgICAgKCIxLjAucmV2MSIsICIxLjAucG9zdDEi
KSwKKyAgICAgICAgICAgICgiMS4wLVBPU1QiLCAiMS4wLnBvc3QwIiksCisgICAgICAgICAgICAo
IjEuMC1QT1NUMSIsICIxLjAucG9zdDEiKSwKKyAgICAgICAgICAgICgiMS4wLTUiLCAiMS4wLnBv
c3Q1IiksCisgICAgICAgICAgICAoIjEuMC1yNSIsICIxLjAucG9zdDUiKSwKKyAgICAgICAgICAg
ICgiMS4wLXJldjUiLCAiMS4wLnBvc3Q1IiksCisgICAgICAgICAgICAjIExvY2FsIHZlcnNpb24g
Y2FzZSBpbnNlbnNpdGl2aXR5CisgICAgICAgICAgICAoIjEuMCtBYkMiLCAiMS4wK2FiYyIpLAor
ICAgICAgICAgICAgIyBJbnRlZ2VyIE5vcm1hbGl6YXRpb24KKyAgICAgICAgICAgICgiMS4wMSIs
ICIxLjEiKSwKKyAgICAgICAgICAgICgiMS4wYTA1IiwgIjEuMGE1IiksCisgICAgICAgICAgICAo
IjEuMGIwNyIsICIxLjBiNyIpLAorICAgICAgICAgICAgKCIxLjBjMDU2IiwgIjEuMHJjNTYiKSwK
KyAgICAgICAgICAgICgiMS4wcmMwOSIsICIxLjByYzkiKSwKKyAgICAgICAgICAgICgiMS4wLnBv
c3QwMDAiLCAiMS4wLnBvc3QwIiksCisgICAgICAgICAgICAoIjEuMS5kZXYwOTAwMCIsICIxLjEu
ZGV2OTAwMCIpLAorICAgICAgICAgICAgKCIwMCExLjIiLCAiMS4yIiksCisgICAgICAgICAgICAo
IjAxMDAhMC4wIiwgIjEwMCEwLjAiKSwKKyAgICAgICAgICAgICMgVmFyaW91cyBvdGhlciBub3Jt
YWxpemF0aW9ucworICAgICAgICAgICAgKCJ2MS4wIiwgIjEuMCIpLAorICAgICAgICAgICAgKCIg
ICB2MS4wXHRcbiIsICIxLjAiKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3Rfbm9y
bWFsaXplZF92ZXJzaW9ucyhzZWxmLCB2ZXJzaW9uLCBub3JtYWxpemVkKToKKyAgICAgICAgYXNz
ZXJ0IHN0cihWZXJzaW9uKHZlcnNpb24pKSA9PSBub3JtYWxpemVkCisKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVyc2lvbiIsICJleHBlY3RlZCIpLAorICAgICAg
ICBbCisgICAgICAgICAgICAoIjEuMC5kZXY0NTYiLCAiMS4wLmRldjQ1NiIpLAorICAgICAgICAg
ICAgKCIxLjBhMSIsICIxLjBhMSIpLAorICAgICAgICAgICAgKCIxLjBhMi5kZXY0NTYiLCAiMS4w
YTIuZGV2NDU2IiksCisgICAgICAgICAgICAoIjEuMGExMi5kZXY0NTYiLCAiMS4wYTEyLmRldjQ1
NiIpLAorICAgICAgICAgICAgKCIxLjBhMTIiLCAiMS4wYTEyIiksCisgICAgICAgICAgICAoIjEu
MGIxLmRldjQ1NiIsICIxLjBiMS5kZXY0NTYiKSwKKyAgICAgICAgICAgICgiMS4wYjIiLCAiMS4w
YjIiKSwKKyAgICAgICAgICAgICgiMS4wYjIucG9zdDM0NS5kZXY0NTYiLCAiMS4wYjIucG9zdDM0
NS5kZXY0NTYiKSwKKyAgICAgICAgICAgICgiMS4wYjIucG9zdDM0NSIsICIxLjBiMi5wb3N0MzQ1
IiksCisgICAgICAgICAgICAoIjEuMHJjMS5kZXY0NTYiLCAiMS4wcmMxLmRldjQ1NiIpLAorICAg
ICAgICAgICAgKCIxLjByYzEiLCAiMS4wcmMxIiksCisgICAgICAgICAgICAoIjEuMCIsICIxLjAi
KSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q0NTYuZGV2MzQiLCAiMS4wLnBvc3Q0NTYuZGV2MzQi
KSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q0NTYiLCAiMS4wLnBvc3Q0NTYiKSwKKyAgICAgICAg
ICAgICgiMS4wLjEiLCAiMS4wLjEiKSwKKyAgICAgICAgICAgICgiMCExLjAuMiIsICIxLjAuMiIp
LAorICAgICAgICAgICAgKCIxLjAuMys3IiwgIjEuMC4zKzciKSwKKyAgICAgICAgICAgICgiMCEx
LjAuNCs4LjAiLCAiMS4wLjQrOC4wIiksCisgICAgICAgICAgICAoIjEuMC41KzkuNSIsICIxLjAu
NSs5LjUiKSwKKyAgICAgICAgICAgICgiMS4yKzEyMzQuYWJjIiwgIjEuMisxMjM0LmFiYyIpLAor
ICAgICAgICAgICAgKCIxLjIrMTIzNDU2IiwgIjEuMisxMjM0NTYiKSwKKyAgICAgICAgICAgICgi
MS4yKzEyM2FiYyIsICIxLjIrMTIzYWJjIiksCisgICAgICAgICAgICAoIjEuMisxMjNhYmM0NTYi
LCAiMS4yKzEyM2FiYzQ1NiIpLAorICAgICAgICAgICAgKCIxLjIrYWJjIiwgIjEuMithYmMiKSwK
KyAgICAgICAgICAgICgiMS4yK2FiYzEyMyIsICIxLjIrYWJjMTIzIiksCisgICAgICAgICAgICAo
IjEuMithYmMxMjNkZWYiLCAiMS4yK2FiYzEyM2RlZiIpLAorICAgICAgICAgICAgKCIxLjEuZGV2
MSIsICIxLjEuZGV2MSIpLAorICAgICAgICAgICAgKCI3ITEuMC5kZXY0NTYiLCAiNyExLjAuZGV2
NDU2IiksCisgICAgICAgICAgICAoIjchMS4wYTEiLCAiNyExLjBhMSIpLAorICAgICAgICAgICAg
KCI3ITEuMGEyLmRldjQ1NiIsICI3ITEuMGEyLmRldjQ1NiIpLAorICAgICAgICAgICAgKCI3ITEu
MGExMi5kZXY0NTYiLCAiNyExLjBhMTIuZGV2NDU2IiksCisgICAgICAgICAgICAoIjchMS4wYTEy
IiwgIjchMS4wYTEyIiksCisgICAgICAgICAgICAoIjchMS4wYjEuZGV2NDU2IiwgIjchMS4wYjEu
ZGV2NDU2IiksCisgICAgICAgICAgICAoIjchMS4wYjIiLCAiNyExLjBiMiIpLAorICAgICAgICAg
ICAgKCI3ITEuMGIyLnBvc3QzNDUuZGV2NDU2IiwgIjchMS4wYjIucG9zdDM0NS5kZXY0NTYiKSwK
KyAgICAgICAgICAgICgiNyExLjBiMi5wb3N0MzQ1IiwgIjchMS4wYjIucG9zdDM0NSIpLAorICAg
ICAgICAgICAgKCI3ITEuMHJjMS5kZXY0NTYiLCAiNyExLjByYzEuZGV2NDU2IiksCisgICAgICAg
ICAgICAoIjchMS4wcmMxIiwgIjchMS4wcmMxIiksCisgICAgICAgICAgICAoIjchMS4wIiwgIjch
MS4wIiksCisgICAgICAgICAgICAoIjchMS4wLnBvc3Q0NTYuZGV2MzQiLCAiNyExLjAucG9zdDQ1
Ni5kZXYzNCIpLAorICAgICAgICAgICAgKCI3ITEuMC5wb3N0NDU2IiwgIjchMS4wLnBvc3Q0NTYi
KSwKKyAgICAgICAgICAgICgiNyExLjAuMSIsICI3ITEuMC4xIiksCisgICAgICAgICAgICAoIjch
MS4wLjIiLCAiNyExLjAuMiIpLAorICAgICAgICAgICAgKCI3ITEuMC4zKzciLCAiNyExLjAuMys3
IiksCisgICAgICAgICAgICAoIjchMS4wLjQrOC4wIiwgIjchMS4wLjQrOC4wIiksCisgICAgICAg
ICAgICAoIjchMS4wLjUrOS41IiwgIjchMS4wLjUrOS41IiksCisgICAgICAgICAgICAoIjchMS4x
LmRldjEiLCAiNyExLjEuZGV2MSIpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF92
ZXJzaW9uX3N0cl9yZXByKHNlbGYsIHZlcnNpb24sIGV4cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0
IHN0cihWZXJzaW9uKHZlcnNpb24pKSA9PSBleHBlY3RlZAorICAgICAgICBhc3NlcnQgcmVwcihW
ZXJzaW9uKHZlcnNpb24pKSA9PSAiPFZlcnNpb24oezB9KT4iLmZvcm1hdChyZXByKGV4cGVjdGVk
KSkKKworICAgIGRlZiB0ZXN0X3ZlcnNpb25fcmNfYW5kX2NfZXF1YWxzKHNlbGYpOgorICAgICAg
ICBhc3NlcnQgVmVyc2lvbigiMS4wcmMxIikgPT0gVmVyc2lvbigiMS4wYzEiKQorCisgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMpCisgICAgZGVmIHRlc3Rf
dmVyc2lvbl9oYXNoKHNlbGYsIHZlcnNpb24pOgorICAgICAgICBhc3NlcnQgaGFzaChWZXJzaW9u
KHZlcnNpb24pKSA9PSBoYXNoKFZlcnNpb24odmVyc2lvbikpCisKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoCisgICAgICAgICgidmVyc2lvbiIsICJwdWJsaWMiKSwKKyAgICAgICAgWwor
ICAgICAgICAgICAgKCIxLjAiLCAiMS4wIiksCisgICAgICAgICAgICAoIjEuMC5kZXYwIiwgIjEu
MC5kZXYwIiksCisgICAgICAgICAgICAoIjEuMC5kZXY2IiwgIjEuMC5kZXY2IiksCisgICAgICAg
ICAgICAoIjEuMGExIiwgIjEuMGExIiksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1IiwgIjEu
MGExLnBvc3Q1IiksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1LmRldjYiLCAiMS4wYTEucG9z
dDUuZGV2NiIpLAorICAgICAgICAgICAgKCIxLjByYzQiLCAiMS4wcmM0IiksCisgICAgICAgICAg
ICAoIjEuMC5wb3N0NSIsICIxLjAucG9zdDUiKSwKKyAgICAgICAgICAgICgiMSExLjAiLCAiMSEx
LjAiKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2NiIsICIxITEuMC5kZXY2IiksCisgICAgICAg
ICAgICAoIjEhMS4wYTEiLCAiMSExLjBhMSIpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1
IiwgIjEhMS4wYTEucG9zdDUiKSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5kZXY2Iiwg
IjEhMS4wYTEucG9zdDUuZGV2NiIpLAorICAgICAgICAgICAgKCIxITEuMHJjNCIsICIxITEuMHJj
NCIpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0NSIsICIxITEuMC5wb3N0NSIpLAorICAgICAg
ICAgICAgKCIxLjArZGVhZGJlZWYiLCAiMS4wIiksCisgICAgICAgICAgICAoIjEuMC5kZXY2K2Rl
YWRiZWVmIiwgIjEuMC5kZXY2IiksCisgICAgICAgICAgICAoIjEuMGExK2RlYWRiZWVmIiwgIjEu
MGExIiksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1K2RlYWRiZWVmIiwgIjEuMGExLnBvc3Q1
IiksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1LmRldjYrZGVhZGJlZWYiLCAiMS4wYTEucG9z
dDUuZGV2NiIpLAorICAgICAgICAgICAgKCIxLjByYzQrZGVhZGJlZWYiLCAiMS4wcmM0IiksCisg
ICAgICAgICAgICAoIjEuMC5wb3N0NStkZWFkYmVlZiIsICIxLjAucG9zdDUiKSwKKyAgICAgICAg
ICAgICgiMSExLjArZGVhZGJlZWYiLCAiMSExLjAiKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2
NitkZWFkYmVlZiIsICIxITEuMC5kZXY2IiksCisgICAgICAgICAgICAoIjEhMS4wYTErZGVhZGJl
ZWYiLCAiMSExLjBhMSIpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1K2RlYWRiZWVmIiwg
IjEhMS4wYTEucG9zdDUiKSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5kZXY2K2RlYWRi
ZWVmIiwgIjEhMS4wYTEucG9zdDUuZGV2NiIpLAorICAgICAgICAgICAgKCIxITEuMHJjNCtkZWFk
YmVlZiIsICIxITEuMHJjNCIpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0NStkZWFkYmVlZiIs
ICIxITEuMC5wb3N0NSIpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF92ZXJzaW9u
X3B1YmxpYyhzZWxmLCB2ZXJzaW9uLCBwdWJsaWMpOgorICAgICAgICBhc3NlcnQgVmVyc2lvbih2
ZXJzaW9uKS5wdWJsaWMgPT0gcHVibGljCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
CisgICAgICAgICgidmVyc2lvbiIsICJiYXNlX3ZlcnNpb24iKSwKKyAgICAgICAgWworICAgICAg
ICAgICAgKCIxLjAiLCAiMS4wIiksCisgICAgICAgICAgICAoIjEuMC5kZXYwIiwgIjEuMCIpLAor
ICAgICAgICAgICAgKCIxLjAuZGV2NiIsICIxLjAiKSwKKyAgICAgICAgICAgICgiMS4wYTEiLCAi
MS4wIiksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1IiwgIjEuMCIpLAorICAgICAgICAgICAg
KCIxLjBhMS5wb3N0NS5kZXY2IiwgIjEuMCIpLAorICAgICAgICAgICAgKCIxLjByYzQiLCAiMS4w
IiksCisgICAgICAgICAgICAoIjEuMC5wb3N0NSIsICIxLjAiKSwKKyAgICAgICAgICAgICgiMSEx
LjAiLCAiMSExLjAiKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2NiIsICIxITEuMCIpLAorICAg
ICAgICAgICAgKCIxITEuMGExIiwgIjEhMS4wIiksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9z
dDUiLCAiMSExLjAiKSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5kZXY2IiwgIjEhMS4w
IiksCisgICAgICAgICAgICAoIjEhMS4wcmM0IiwgIjEhMS4wIiksCisgICAgICAgICAgICAoIjEh
MS4wLnBvc3Q1IiwgIjEhMS4wIiksCisgICAgICAgICAgICAoIjEuMCtkZWFkYmVlZiIsICIxLjAi
KSwKKyAgICAgICAgICAgICgiMS4wLmRldjYrZGVhZGJlZWYiLCAiMS4wIiksCisgICAgICAgICAg
ICAoIjEuMGExK2RlYWRiZWVmIiwgIjEuMCIpLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NStk
ZWFkYmVlZiIsICIxLjAiKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUuZGV2NitkZWFkYmVl
ZiIsICIxLjAiKSwKKyAgICAgICAgICAgICgiMS4wcmM0K2RlYWRiZWVmIiwgIjEuMCIpLAorICAg
ICAgICAgICAgKCIxLjAucG9zdDUrZGVhZGJlZWYiLCAiMS4wIiksCisgICAgICAgICAgICAoIjEh
MS4wK2RlYWRiZWVmIiwgIjEhMS4wIiksCisgICAgICAgICAgICAoIjEhMS4wLmRldjYrZGVhZGJl
ZWYiLCAiMSExLjAiKSwKKyAgICAgICAgICAgICgiMSExLjBhMStkZWFkYmVlZiIsICIxITEuMCIp
LAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1K2RlYWRiZWVmIiwgIjEhMS4wIiksCisgICAg
ICAgICAgICAoIjEhMS4wYTEucG9zdDUuZGV2NitkZWFkYmVlZiIsICIxITEuMCIpLAorICAgICAg
ICAgICAgKCIxITEuMHJjNCtkZWFkYmVlZiIsICIxITEuMCIpLAorICAgICAgICAgICAgKCIxITEu
MC5wb3N0NStkZWFkYmVlZiIsICIxITEuMCIpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYg
dGVzdF92ZXJzaW9uX2Jhc2VfdmVyc2lvbihzZWxmLCB2ZXJzaW9uLCBiYXNlX3ZlcnNpb24pOgor
ICAgICAgICBhc3NlcnQgVmVyc2lvbih2ZXJzaW9uKS5iYXNlX3ZlcnNpb24gPT0gYmFzZV92ZXJz
aW9uCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVyc2lvbiIs
ICJlcG9jaCIpLAorICAgICAgICBbCisgICAgICAgICAgICAoIjEuMCIsIDApLAorICAgICAgICAg
ICAgKCIxLjAuZGV2MCIsIDApLAorICAgICAgICAgICAgKCIxLjAuZGV2NiIsIDApLAorICAgICAg
ICAgICAgKCIxLjBhMSIsIDApLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NSIsIDApLAorICAg
ICAgICAgICAgKCIxLjBhMS5wb3N0NS5kZXY2IiwgMCksCisgICAgICAgICAgICAoIjEuMHJjNCIs
IDApLAorICAgICAgICAgICAgKCIxLjAucG9zdDUiLCAwKSwKKyAgICAgICAgICAgICgiMSExLjAi
LCAxKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2NiIsIDEpLAorICAgICAgICAgICAgKCIxITEu
MGExIiwgMSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUiLCAxKSwKKyAgICAgICAgICAg
ICgiMSExLjBhMS5wb3N0NS5kZXY2IiwgMSksCisgICAgICAgICAgICAoIjEhMS4wcmM0IiwgMSks
CisgICAgICAgICAgICAoIjEhMS4wLnBvc3Q1IiwgMSksCisgICAgICAgICAgICAoIjEuMCtkZWFk
YmVlZiIsIDApLAorICAgICAgICAgICAgKCIxLjAuZGV2NitkZWFkYmVlZiIsIDApLAorICAgICAg
ICAgICAgKCIxLjBhMStkZWFkYmVlZiIsIDApLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NStk
ZWFkYmVlZiIsIDApLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NS5kZXY2K2RlYWRiZWVmIiwg
MCksCisgICAgICAgICAgICAoIjEuMHJjNCtkZWFkYmVlZiIsIDApLAorICAgICAgICAgICAgKCIx
LjAucG9zdDUrZGVhZGJlZWYiLCAwKSwKKyAgICAgICAgICAgICgiMSExLjArZGVhZGJlZWYiLCAx
KSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2NitkZWFkYmVlZiIsIDEpLAorICAgICAgICAgICAg
KCIxITEuMGExK2RlYWRiZWVmIiwgMSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUrZGVh
ZGJlZWYiLCAxKSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5kZXY2K2RlYWRiZWVmIiwg
MSksCisgICAgICAgICAgICAoIjEhMS4wcmM0K2RlYWRiZWVmIiwgMSksCisgICAgICAgICAgICAo
IjEhMS4wLnBvc3Q1K2RlYWRiZWVmIiwgMSksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0
ZXN0X3ZlcnNpb25fZXBvY2goc2VsZiwgdmVyc2lvbiwgZXBvY2gpOgorICAgICAgICBhc3NlcnQg
VmVyc2lvbih2ZXJzaW9uKS5lcG9jaCA9PSBlcG9jaAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKAorICAgICAgICAoInZlcnNpb24iLCAicmVsZWFzZSIpLAorICAgICAgICBbCisgICAg
ICAgICAgICAoIjEuMCIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEuMC5kZXYwIiwgKDEsIDAp
KSwKKyAgICAgICAgICAgICgiMS4wLmRldjYiLCAoMSwgMCkpLAorICAgICAgICAgICAgKCIxLjBh
MSIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1IiwgKDEsIDApKSwKKyAgICAg
ICAgICAgICgiMS4wYTEucG9zdDUuZGV2NiIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEuMHJj
NCIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEuMC5wb3N0NSIsICgxLCAwKSksCisgICAgICAg
ICAgICAoIjEhMS4wIiwgKDEsIDApKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2NiIsICgxLCAw
KSksCisgICAgICAgICAgICAoIjEhMS4wYTEiLCAoMSwgMCkpLAorICAgICAgICAgICAgKCIxITEu
MGExLnBvc3Q1IiwgKDEsIDApKSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5kZXY2Iiwg
KDEsIDApKSwKKyAgICAgICAgICAgICgiMSExLjByYzQiLCAoMSwgMCkpLAorICAgICAgICAgICAg
KCIxITEuMC5wb3N0NSIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEuMCtkZWFkYmVlZiIsICgx
LCAwKSksCisgICAgICAgICAgICAoIjEuMC5kZXY2K2RlYWRiZWVmIiwgKDEsIDApKSwKKyAgICAg
ICAgICAgICgiMS4wYTErZGVhZGJlZWYiLCAoMSwgMCkpLAorICAgICAgICAgICAgKCIxLjBhMS5w
b3N0NStkZWFkYmVlZiIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1LmRldjYr
ZGVhZGJlZWYiLCAoMSwgMCkpLAorICAgICAgICAgICAgKCIxLjByYzQrZGVhZGJlZWYiLCAoMSwg
MCkpLAorICAgICAgICAgICAgKCIxLjAucG9zdDUrZGVhZGJlZWYiLCAoMSwgMCkpLAorICAgICAg
ICAgICAgKCIxITEuMCtkZWFkYmVlZiIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEhMS4wLmRl
djYrZGVhZGJlZWYiLCAoMSwgMCkpLAorICAgICAgICAgICAgKCIxITEuMGExK2RlYWRiZWVmIiwg
KDEsIDApKSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NStkZWFkYmVlZiIsICgxLCAwKSks
CisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUuZGV2NitkZWFkYmVlZiIsICgxLCAwKSksCisg
ICAgICAgICAgICAoIjEhMS4wcmM0K2RlYWRiZWVmIiwgKDEsIDApKSwKKyAgICAgICAgICAgICgi
MSExLjAucG9zdDUrZGVhZGJlZWYiLCAoMSwgMCkpLAorICAgICAgICBdLAorICAgICkKKyAgICBk
ZWYgdGVzdF92ZXJzaW9uX3JlbGVhc2Uoc2VsZiwgdmVyc2lvbiwgcmVsZWFzZSk6CisgICAgICAg
IGFzc2VydCBWZXJzaW9uKHZlcnNpb24pLnJlbGVhc2UgPT0gcmVsZWFzZQorCisgICAgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoInZlcnNpb24iLCAibG9jYWwiKSwKKyAgICAg
ICAgWworICAgICAgICAgICAgKCIxLjAiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wLmRldjAi
LCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wLmRldjYiLCBOb25lKSwKKyAgICAgICAgICAgICgi
MS4wYTEiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUiLCBOb25lKSwKKyAgICAg
ICAgICAgICgiMS4wYTEucG9zdDUuZGV2NiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjByYzQi
LCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q1IiwgTm9uZSksCisgICAgICAgICAgICAo
IjEhMS4wIiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wLmRldjYiLCBOb25lKSwKKyAgICAg
ICAgICAgICgiMSExLjBhMSIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1Iiwg
Tm9uZSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUuZGV2NiIsIE5vbmUpLAorICAgICAg
ICAgICAgKCIxITEuMHJjNCIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0NSIsIE5v
bmUpLAorICAgICAgICAgICAgKCIxLjArZGVhZGJlZWYiLCAiZGVhZGJlZWYiKSwKKyAgICAgICAg
ICAgICgiMS4wLmRldjYrZGVhZGJlZWYiLCAiZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICgiMS4w
YTErZGVhZGJlZWYiLCAiZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUrZGVh
ZGJlZWYiLCAiZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUuZGV2NitkZWFk
YmVlZiIsICJkZWFkYmVlZiIpLAorICAgICAgICAgICAgKCIxLjByYzQrZGVhZGJlZWYiLCAiZGVh
ZGJlZWYiKSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q1K2RlYWRiZWVmIiwgImRlYWRiZWVmIiks
CisgICAgICAgICAgICAoIjEhMS4wK2RlYWRiZWVmIiwgImRlYWRiZWVmIiksCisgICAgICAgICAg
ICAoIjEhMS4wLmRldjYrZGVhZGJlZWYiLCAiZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICgiMSEx
LjBhMStkZWFkYmVlZiIsICJkZWFkYmVlZiIpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1
K2RlYWRiZWVmIiwgImRlYWRiZWVmIiksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUuZGV2
NitkZWFkYmVlZiIsICJkZWFkYmVlZiIpLAorICAgICAgICAgICAgKCIxITEuMHJjNCtkZWFkYmVl
ZiIsICJkZWFkYmVlZiIpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0NStkZWFkYmVlZiIsICJk
ZWFkYmVlZiIpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF92ZXJzaW9uX2xvY2Fs
KHNlbGYsIHZlcnNpb24sIGxvY2FsKToKKyAgICAgICAgYXNzZXJ0IFZlcnNpb24odmVyc2lvbiku
bG9jYWwgPT0gbG9jYWwKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAg
KCJ2ZXJzaW9uIiwgInByZSIpLAorICAgICAgICBbCisgICAgICAgICAgICAoIjEuMCIsIE5vbmUp
LAorICAgICAgICAgICAgKCIxLjAuZGV2MCIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjAuZGV2
NiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjBhMSIsICgiYSIsIDEpKSwKKyAgICAgICAgICAg
ICgiMS4wYTEucG9zdDUiLCAoImEiLCAxKSksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1LmRl
djYiLCAoImEiLCAxKSksCisgICAgICAgICAgICAoIjEuMHJjNCIsICgicmMiLCA0KSksCisgICAg
ICAgICAgICAoIjEuMC5wb3N0NSIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMCIsIE5vbmUp
LAorICAgICAgICAgICAgKCIxITEuMC5kZXY2IiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4w
YTEiLCAoImEiLCAxKSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUiLCAoImEiLCAxKSks
CisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUuZGV2NiIsICgiYSIsIDEpKSwKKyAgICAgICAg
ICAgICgiMSExLjByYzQiLCAoInJjIiwgNCkpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0NSIs
IE5vbmUpLAorICAgICAgICAgICAgKCIxLjArZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAg
ICgiMS4wLmRldjYrZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wYTErZGVhZGJl
ZWYiLCAoImEiLCAxKSksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1K2RlYWRiZWVmIiwgKCJh
IiwgMSkpLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NS5kZXY2K2RlYWRiZWVmIiwgKCJhIiwg
MSkpLAorICAgICAgICAgICAgKCIxLjByYzQrZGVhZGJlZWYiLCAoInJjIiwgNCkpLAorICAgICAg
ICAgICAgKCIxLjAucG9zdDUrZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMSExLjAr
ZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2NitkZWFkYmVlZiIsIE5v
bmUpLAorICAgICAgICAgICAgKCIxITEuMGExK2RlYWRiZWVmIiwgKCJhIiwgMSkpLAorICAgICAg
ICAgICAgKCIxITEuMGExLnBvc3Q1K2RlYWRiZWVmIiwgKCJhIiwgMSkpLAorICAgICAgICAgICAg
KCIxITEuMGExLnBvc3Q1LmRldjYrZGVhZGJlZWYiLCAoImEiLCAxKSksCisgICAgICAgICAgICAo
IjEhMS4wcmM0K2RlYWRiZWVmIiwgKCJyYyIsIDQpKSwKKyAgICAgICAgICAgICgiMSExLjAucG9z
dDUrZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3RfdmVy
c2lvbl9wcmUoc2VsZiwgdmVyc2lvbiwgcHJlKToKKyAgICAgICAgYXNzZXJ0IFZlcnNpb24odmVy
c2lvbikucHJlID09IHByZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAg
ICAoInZlcnNpb24iLCAiZXhwZWN0ZWQiKSwKKyAgICAgICAgWworICAgICAgICAgICAgKCIxLjAu
ZGV2MCIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjAuZGV2MSIsIFRydWUpLAorICAgICAgICAg
ICAgKCIxLjBhMS5kZXYxIiwgVHJ1ZSksCisgICAgICAgICAgICAoIjEuMGIxLmRldjEiLCBUcnVl
KSwKKyAgICAgICAgICAgICgiMS4wYzEuZGV2MSIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjBy
YzEuZGV2MSIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjBhMSIsIFRydWUpLAorICAgICAgICAg
ICAgKCIxLjBiMSIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjBjMSIsIFRydWUpLAorICAgICAg
ICAgICAgKCIxLjByYzEiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDEuZGV2MSIs
IFRydWUpLAorICAgICAgICAgICAgKCIxLjBiMS5wb3N0MS5kZXYxIiwgVHJ1ZSksCisgICAgICAg
ICAgICAoIjEuMGMxLnBvc3QxLmRldjEiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4wcmMxLnBv
c3QxLmRldjEiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDEiLCBUcnVlKSwKKyAg
ICAgICAgICAgICgiMS4wYjEucG9zdDEiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4wYzEucG9z
dDEiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4wcmMxLnBvc3QxIiwgVHJ1ZSksCisgICAgICAg
ICAgICAoIjEuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMS4wK2RldiIsIEZhbHNlKSwKKyAg
ICAgICAgICAgICgiMS4wLnBvc3QxIiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxLjAucG9zdDEr
ZGV2IiwgRmFsc2UpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF92ZXJzaW9uX2lz
X3ByZXJlbGVhc2Uoc2VsZiwgdmVyc2lvbiwgZXhwZWN0ZWQpOgorICAgICAgICBhc3NlcnQgVmVy
c2lvbih2ZXJzaW9uKS5pc19wcmVyZWxlYXNlIGlzIGV4cGVjdGVkCisKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVyc2lvbiIsICJkZXYiKSwKKyAgICAgICAgWwor
ICAgICAgICAgICAgKCIxLjAiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wLmRldjAiLCAwKSwK
KyAgICAgICAgICAgICgiMS4wLmRldjYiLCA2KSwKKyAgICAgICAgICAgICgiMS4wYTEiLCBOb25l
KSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4w
YTEucG9zdDUuZGV2NiIsIDYpLAorICAgICAgICAgICAgKCIxLjByYzQiLCBOb25lKSwKKyAgICAg
ICAgICAgICgiMS4wLnBvc3Q1IiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wIiwgTm9uZSks
CisgICAgICAgICAgICAoIjEhMS4wLmRldjYiLCA2KSwKKyAgICAgICAgICAgICgiMSExLjBhMSIs
IE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1IiwgTm9uZSksCisgICAgICAgICAg
ICAoIjEhMS4wYTEucG9zdDUuZGV2NiIsIDYpLAorICAgICAgICAgICAgKCIxITEuMHJjNCIsIE5v
bmUpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0NSIsIE5vbmUpLAorICAgICAgICAgICAgKCIx
LjArZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wLmRldjYrZGVhZGJlZWYiLCA2
KSwKKyAgICAgICAgICAgICgiMS4wYTErZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAgICgi
MS4wYTEucG9zdDUrZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUu
ZGV2NitkZWFkYmVlZiIsIDYpLAorICAgICAgICAgICAgKCIxLjByYzQrZGVhZGJlZWYiLCBOb25l
KSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q1K2RlYWRiZWVmIiwgTm9uZSksCisgICAgICAgICAg
ICAoIjEhMS4wK2RlYWRiZWVmIiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wLmRldjYrZGVh
ZGJlZWYiLCA2KSwKKyAgICAgICAgICAgICgiMSExLjBhMStkZWFkYmVlZiIsIE5vbmUpLAorICAg
ICAgICAgICAgKCIxITEuMGExLnBvc3Q1K2RlYWRiZWVmIiwgTm9uZSksCisgICAgICAgICAgICAo
IjEhMS4wYTEucG9zdDUuZGV2NitkZWFkYmVlZiIsIDYpLAorICAgICAgICAgICAgKCIxITEuMHJj
NCtkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0NStkZWFkYmVlZiIs
IE5vbmUpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF92ZXJzaW9uX2RldihzZWxm
LCB2ZXJzaW9uLCBkZXYpOgorICAgICAgICBhc3NlcnQgVmVyc2lvbih2ZXJzaW9uKS5kZXYgPT0g
ZGV2CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVyc2lvbiIs
ICJleHBlY3RlZCIpLAorICAgICAgICBbCisgICAgICAgICAgICAoIjEuMCIsIEZhbHNlKSwKKyAg
ICAgICAgICAgICgiMS4wLmRldjAiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4wLmRldjYiLCBU
cnVlKSwKKyAgICAgICAgICAgICgiMS4wYTEiLCBGYWxzZSksCisgICAgICAgICAgICAoIjEuMGEx
LnBvc3Q1IiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NS5kZXY2IiwgVHJ1ZSks
CisgICAgICAgICAgICAoIjEuMHJjNCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q1
IiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxITEuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgi
MSExLjAuZGV2NiIsIFRydWUpLAorICAgICAgICAgICAgKCIxITEuMGExIiwgRmFsc2UpLAorICAg
ICAgICAgICAgKCIxITEuMGExLnBvc3Q1IiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxITEuMGEx
LnBvc3Q1LmRldjYiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMSExLjByYzQiLCBGYWxzZSksCisg
ICAgICAgICAgICAoIjEhMS4wLnBvc3Q1IiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxLjArZGVh
ZGJlZWYiLCBGYWxzZSksCisgICAgICAgICAgICAoIjEuMC5kZXY2K2RlYWRiZWVmIiwgVHJ1ZSks
CisgICAgICAgICAgICAoIjEuMGExK2RlYWRiZWVmIiwgRmFsc2UpLAorICAgICAgICAgICAgKCIx
LjBhMS5wb3N0NStkZWFkYmVlZiIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUu
ZGV2NitkZWFkYmVlZiIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjByYzQrZGVhZGJlZWYiLCBG
YWxzZSksCisgICAgICAgICAgICAoIjEuMC5wb3N0NStkZWFkYmVlZiIsIEZhbHNlKSwKKyAgICAg
ICAgICAgICgiMSExLjArZGVhZGJlZWYiLCBGYWxzZSksCisgICAgICAgICAgICAoIjEhMS4wLmRl
djYrZGVhZGJlZWYiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMSExLjBhMStkZWFkYmVlZiIsIEZh
bHNlKSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NStkZWFkYmVlZiIsIEZhbHNlKSwKKyAg
ICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5kZXY2K2RlYWRiZWVmIiwgVHJ1ZSksCisgICAgICAg
ICAgICAoIjEhMS4wcmM0K2RlYWRiZWVmIiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxITEuMC5w
b3N0NStkZWFkYmVlZiIsIEZhbHNlKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3Rf
dmVyc2lvbl9pc19kZXZyZWxlYXNlKHNlbGYsIHZlcnNpb24sIGV4cGVjdGVkKToKKyAgICAgICAg
YXNzZXJ0IFZlcnNpb24odmVyc2lvbikuaXNfZGV2cmVsZWFzZSBpcyBleHBlY3RlZAorCisgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoInZlcnNpb24iLCAicG9zdCIpLAor
ICAgICAgICBbCisgICAgICAgICAgICAoIjEuMCIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjAu
ZGV2MCIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjAuZGV2NiIsIE5vbmUpLAorICAgICAgICAg
ICAgKCIxLjBhMSIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NSIsIDUpLAorICAg
ICAgICAgICAgKCIxLjBhMS5wb3N0NS5kZXY2IiwgNSksCisgICAgICAgICAgICAoIjEuMHJjNCIs
IE5vbmUpLAorICAgICAgICAgICAgKCIxLjAucG9zdDUiLCA1KSwKKyAgICAgICAgICAgICgiMSEx
LjAiLCBOb25lKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2NiIsIE5vbmUpLAorICAgICAgICAg
ICAgKCIxITEuMGExIiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUiLCA1KSwK
KyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5kZXY2IiwgNSksCisgICAgICAgICAgICAoIjEh
MS4wcmM0IiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wLnBvc3Q1IiwgNSksCisgICAgICAg
ICAgICAoIjEuMCtkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjAuZGV2NitkZWFk
YmVlZiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjBhMStkZWFkYmVlZiIsIE5vbmUpLAorICAg
ICAgICAgICAgKCIxLjBhMS5wb3N0NStkZWFkYmVlZiIsIDUpLAorICAgICAgICAgICAgKCIxLjBh
MS5wb3N0NS5kZXY2K2RlYWRiZWVmIiwgNSksCisgICAgICAgICAgICAoIjEuMHJjNCtkZWFkYmVl
ZiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjAucG9zdDUrZGVhZGJlZWYiLCA1KSwKKyAgICAg
ICAgICAgICgiMSExLjArZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2
NitkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMGExK2RlYWRiZWVmIiwgTm9u
ZSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUrZGVhZGJlZWYiLCA1KSwKKyAgICAgICAg
ICAgICgiMSExLjBhMS5wb3N0NS5kZXY2K2RlYWRiZWVmIiwgNSksCisgICAgICAgICAgICAoIjEh
MS4wcmM0K2RlYWRiZWVmIiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wLnBvc3Q1K2RlYWRi
ZWVmIiwgNSksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3ZlcnNpb25fcG9zdChz
ZWxmLCB2ZXJzaW9uLCBwb3N0KToKKyAgICAgICAgYXNzZXJ0IFZlcnNpb24odmVyc2lvbikucG9z
dCA9PSBwb3N0CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVy
c2lvbiIsICJleHBlY3RlZCIpLAorICAgICAgICBbCisgICAgICAgICAgICAoIjEuMC5kZXYxIiwg
RmFsc2UpLAorICAgICAgICAgICAgKCIxLjAiLCBGYWxzZSksCisgICAgICAgICAgICAoIjEuMCtm
b28iLCBGYWxzZSksCisgICAgICAgICAgICAoIjEuMC5wb3N0MS5kZXYxIiwgVHJ1ZSksCisgICAg
ICAgICAgICAoIjEuMC5wb3N0MSIsIFRydWUpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYg
dGVzdF92ZXJzaW9uX2lzX3Bvc3RyZWxlYXNlKHNlbGYsIHZlcnNpb24sIGV4cGVjdGVkKToKKyAg
ICAgICAgYXNzZXJ0IFZlcnNpb24odmVyc2lvbikuaXNfcG9zdHJlbGVhc2UgaXMgZXhwZWN0ZWQK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJsZWZ0IiwgInJpZ2h0
IiwgIm9wIiksCisgICAgICAgICMgQmVsb3cgd2UnbGwgZ2VuZXJhdGUgZXZlcnkgcG9zc2libGUg
Y29tYmluYXRpb24gb2YgVkVSU0lPTlMgdGhhdAorICAgICAgICAjIHNob3VsZCBiZSBUcnVlIGZv
ciB0aGUgZ2l2ZW4gb3BlcmF0b3IKKyAgICAgICAgaXRlcnRvb2xzLmNoYWluKAorICAgICAgICAg
ICAgKgorICAgICAgICAgICAgIyBWZXJpZnkgdGhhdCB0aGUgbGVzcyB0aGFuICg8KSBvcGVyYXRv
ciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICBbKHgsIHks
IG9wZXJhdG9yLmx0KSBmb3IgeSBpbiBWRVJTSU9OU1tpICsgMSA6XV0KKyAgICAgICAgICAgICAg
ICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoVkVSU0lPTlMpCisgICAgICAgICAgICBdCisgICAgICAg
ICAgICArCisgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBsZXNzIHRoYW4gZXF1YWwgKDw9
KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAg
ICBbKHgsIHksIG9wZXJhdG9yLmxlKSBmb3IgeSBpbiBWRVJTSU9OU1tpOl1dCisgICAgICAgICAg
ICAgICAgZm9yIGksIHggaW4gZW51bWVyYXRlKFZFUlNJT05TKQorICAgICAgICAgICAgXQorICAg
ICAgICAgICAgKworICAgICAgICAgICAgIyBWZXJpZnkgdGhhdCB0aGUgZXF1YWwgKD09KSBvcGVy
YXRvciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAgICAgIFtbKHgsIHgsIG9wZXJhdG9yLmVxKSBm
b3IgeCBpbiBWRVJTSU9OU11dCisgICAgICAgICAgICArCisgICAgICAgICAgICAjIFZlcmlmeSB0
aGF0IHRoZSBub3QgZXF1YWwgKCE9KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAg
ICAgIFsKKyAgICAgICAgICAgICAgICBbKHgsIHksIG9wZXJhdG9yLm5lKSBmb3IgaiwgeSBpbiBl
bnVtZXJhdGUoVkVSU0lPTlMpIGlmIGkgIT0gal0KKyAgICAgICAgICAgICAgICBmb3IgaSwgeCBp
biBlbnVtZXJhdGUoVkVSU0lPTlMpCisgICAgICAgICAgICBdCisgICAgICAgICAgICArCisgICAg
ICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBncmVhdGVyIHRoYW4gZXF1YWwgKD49KSBvcGVyYXRv
ciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICBbKHgsIHks
IG9wZXJhdG9yLmdlKSBmb3IgeSBpbiBWRVJTSU9OU1s6IGkgKyAxXV0KKyAgICAgICAgICAgICAg
ICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoVkVSU0lPTlMpCisgICAgICAgICAgICBdCisgICAgICAg
ICAgICArCisgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBncmVhdGVyIHRoYW4gKD4pIG9w
ZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIFso
eCwgeSwgb3BlcmF0b3IuZ3QpIGZvciB5IGluIFZFUlNJT05TWzppXV0KKyAgICAgICAgICAgICAg
ICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoVkVSU0lPTlMpCisgICAgICAgICAgICBdCisgICAgICAg
ICksCisgICAgKQorICAgIGRlZiB0ZXN0X2NvbXBhcmlzb25fdHJ1ZShzZWxmLCBsZWZ0LCByaWdo
dCwgb3ApOgorICAgICAgICBhc3NlcnQgb3AoVmVyc2lvbihsZWZ0KSwgVmVyc2lvbihyaWdodCkp
CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgibGVmdCIsICJyaWdo
dCIsICJvcCIpLAorICAgICAgICAjIEJlbG93IHdlJ2xsIGdlbmVyYXRlIGV2ZXJ5IHBvc3NpYmxl
IGNvbWJpbmF0aW9uIG9mIFZFUlNJT05TIHRoYXQKKyAgICAgICAgIyBzaG91bGQgYmUgRmFsc2Ug
Zm9yIHRoZSBnaXZlbiBvcGVyYXRvcgorICAgICAgICBpdGVydG9vbHMuY2hhaW4oCisgICAgICAg
ICAgICAqCisgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBsZXNzIHRoYW4gKDwpIG9wZXJh
dG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIFsoeCwg
eSwgb3BlcmF0b3IubHQpIGZvciB5IGluIFZFUlNJT05TWzogaSArIDFdXQorICAgICAgICAgICAg
ICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShWRVJTSU9OUykKKyAgICAgICAgICAgIF0KKyAgICAg
ICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIGxlc3MgdGhhbiBlcXVhbCAo
PD0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgWworICAgICAgICAgICAg
ICAgIFsoeCwgeSwgb3BlcmF0b3IubGUpIGZvciB5IGluIFZFUlNJT05TWzppXV0KKyAgICAgICAg
ICAgICAgICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoVkVSU0lPTlMpCisgICAgICAgICAgICBdCisg
ICAgICAgICAgICArCisgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBlcXVhbCAoPT0pIG9w
ZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIFso
eCwgeSwgb3BlcmF0b3IuZXEpIGZvciBqLCB5IGluIGVudW1lcmF0ZShWRVJTSU9OUykgaWYgaSAh
PSBqXQorICAgICAgICAgICAgICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShWRVJTSU9OUykKKyAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhl
IG5vdCBlcXVhbCAoIT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgW1so
eCwgeCwgb3BlcmF0b3IubmUpIGZvciB4IGluIFZFUlNJT05TXV0KKyAgICAgICAgICAgICsKKyAg
ICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIGdyZWF0ZXIgdGhhbiBlcXVhbCAoPj0pIG9wZXJh
dG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIFsoeCwg
eSwgb3BlcmF0b3IuZ2UpIGZvciB5IGluIFZFUlNJT05TW2kgKyAxIDpdXQorICAgICAgICAgICAg
ICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShWRVJTSU9OUykKKyAgICAgICAgICAgIF0KKyAgICAg
ICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIGdyZWF0ZXIgdGhhbiAoPikg
b3BlcmF0b3Igd29ya3MgY29ycmVjdGx5CisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAg
Wyh4LCB5LCBvcGVyYXRvci5ndCkgZm9yIHkgaW4gVkVSU0lPTlNbaTpdXQorICAgICAgICAgICAg
ICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShWRVJTSU9OUykKKyAgICAgICAgICAgIF0KKyAgICAg
ICAgKSwKKyAgICApCisgICAgZGVmIHRlc3RfY29tcGFyaXNvbl9mYWxzZShzZWxmLCBsZWZ0LCBy
aWdodCwgb3ApOgorICAgICAgICBhc3NlcnQgbm90IG9wKFZlcnNpb24obGVmdCksIFZlcnNpb24o
cmlnaHQpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJvcCIsIFsibHQiLCAibGUi
LCAiZXEiLCAiZ2UiLCAiZ3QiLCAibmUiXSkKKyAgICBkZWYgdGVzdF9kdW5kZXJfb3BfcmV0dXJu
c19ub3RpbXBsZW1lbnRlZChzZWxmLCBvcCk6CisgICAgICAgIG1ldGhvZCA9IGdldGF0dHIoVmVy
c2lvbiwgIl9fezB9X18iLmZvcm1hdChvcCkpCisgICAgICAgIGFzc2VydCBtZXRob2QoVmVyc2lv
bigiMSIpLCAxKSBpcyBOb3RJbXBsZW1lbnRlZAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCgib3AiLCAiZXhwZWN0ZWQiKSwgWygiZXEiLCBGYWxzZSksICgibmUiLCBUcnVlKV0pCisg
ICAgZGVmIHRlc3RfY29tcGFyZV9vdGhlcihzZWxmLCBvcCwgZXhwZWN0ZWQpOgorICAgICAgICBv
dGhlciA9IHByZXRlbmQuc3R1YigqKnsiX197MH1fXyIuZm9ybWF0KG9wKTogbGFtYmRhIG90aGVy
OiBOb3RJbXBsZW1lbnRlZH0pCisKKyAgICAgICAgYXNzZXJ0IGdldGF0dHIob3BlcmF0b3IsIG9w
KShWZXJzaW9uKCIxIiksIG90aGVyKSBpcyBleHBlY3RlZAorCisgICAgZGVmIHRlc3RfY29tcGFy
ZV9sZWdhY3l2ZXJzaW9uX3ZlcnNpb24oc2VsZik6CisgICAgICAgIHJlc3VsdCA9IHNvcnRlZChb
VmVyc2lvbigiMCIpLCBMZWdhY3lWZXJzaW9uKCIxIildKQorICAgICAgICBhc3NlcnQgcmVzdWx0
ID09IFtMZWdhY3lWZXJzaW9uKCIxIiksIFZlcnNpb24oIjAiKV0KKworICAgIGRlZiB0ZXN0X21h
am9yX3ZlcnNpb24oc2VsZik6CisgICAgICAgIGFzc2VydCBWZXJzaW9uKCIyLjEuMCIpLm1ham9y
ID09IDIKKworICAgIGRlZiB0ZXN0X21pbm9yX3ZlcnNpb24oc2VsZik6CisgICAgICAgIGFzc2Vy
dCBWZXJzaW9uKCIyLjEuMCIpLm1pbm9yID09IDEKKyAgICAgICAgYXNzZXJ0IFZlcnNpb24oIjIi
KS5taW5vciA9PSAwCisKKyAgICBkZWYgdGVzdF9taWNyb192ZXJzaW9uKHNlbGYpOgorICAgICAg
ICBhc3NlcnQgVmVyc2lvbigiMi4xLjMiKS5taWNybyA9PSAzCisgICAgICAgIGFzc2VydCBWZXJz
aW9uKCIyLjEiKS5taWNybyA9PSAwCisgICAgICAgIGFzc2VydCBWZXJzaW9uKCIyIikubWljcm8g
PT0gMAorCisKK0xFR0FDWV9WRVJTSU9OUyA9IFsiZm9vYmFyIiwgImEgY2F0IGlzIGZpbmUgdG9v
IiwgImxvbHd1dCIsICIxLTAiLCAiMi4wLWExIl0KKworCitjbGFzcyBUZXN0TGVnYWN5VmVyc2lv
bjoKKyAgICBkZWYgdGVzdF9sZWdhY3lfdmVyc2lvbl9pc19kZXByZWNhdGVkKHNlbGYpOgorICAg
ICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKHJlY29yZD1UcnVlKSBhcyB3OgorICAg
ICAgICAgICAgTGVnYWN5VmVyc2lvbigic29tZS1sZWdhY3ktdmVyc2lvbiIpCisgICAgICAgICAg
ICBhc3NlcnQgbGVuKHcpID09IDEKKyAgICAgICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKHdbMF0u
Y2F0ZWdvcnksIERlcHJlY2F0aW9uV2FybmluZykKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgidmVyc2lvbiIsIFZFUlNJT05TICsgTEVHQUNZX1ZFUlNJT05TKQorICAgIGRlZiB0ZXN0
X3ZhbGlkX2xlZ2FjeV92ZXJzaW9ucyhzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgTGVnYWN5VmVy
c2lvbih2ZXJzaW9uKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwg
VkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVnYWN5X3ZlcnNpb25f
c3RyX3JlcHIoc2VsZiwgdmVyc2lvbik6CisgICAgICAgIGFzc2VydCBzdHIoTGVnYWN5VmVyc2lv
bih2ZXJzaW9uKSkgPT0gdmVyc2lvbgorICAgICAgICBhc3NlcnQgcmVwcihMZWdhY3lWZXJzaW9u
KHZlcnNpb24pKSA9PSAiPExlZ2FjeVZlcnNpb24oezB9KT4iLmZvcm1hdCgKKyAgICAgICAgICAg
IHJlcHIodmVyc2lvbikKKyAgICAgICAgKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVn
YWN5X3ZlcnNpb25faGFzaChzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgYXNzZXJ0IGhhc2goTGVn
YWN5VmVyc2lvbih2ZXJzaW9uKSkgPT0gaGFzaChMZWdhY3lWZXJzaW9uKHZlcnNpb24pKQorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lf
VkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVnYWN5X3ZlcnNpb25fcHVibGljKHNlbGYsIHZlcnNp
b24pOgorICAgICAgICBhc3NlcnQgTGVnYWN5VmVyc2lvbih2ZXJzaW9uKS5wdWJsaWMgPT0gdmVy
c2lvbgorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMg
KyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVnYWN5X3ZlcnNpb25fYmFzZV92ZXJz
aW9uKHNlbGYsIHZlcnNpb24pOgorICAgICAgICBhc3NlcnQgTGVnYWN5VmVyc2lvbih2ZXJzaW9u
KS5iYXNlX3ZlcnNpb24gPT0gdmVyc2lvbgorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVn
YWN5X3ZlcnNpb25fZXBvY2goc2VsZiwgdmVyc2lvbik6CisgICAgICAgIGFzc2VydCBMZWdhY3lW
ZXJzaW9uKHZlcnNpb24pLmVwb2NoID09IC0xCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInZlcnNpb24iLCBWRVJTSU9OUyArIExFR0FDWV9WRVJTSU9OUykKKyAgICBkZWYgdGVzdF9s
ZWdhY3lfdmVyc2lvbl9yZWxlYXNlKHNlbGYsIHZlcnNpb24pOgorICAgICAgICBhc3NlcnQgTGVn
YWN5VmVyc2lvbih2ZXJzaW9uKS5yZWxlYXNlIGlzIE5vbmUKKworICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgidmVyc2lvbiIsIFZFUlNJT05TICsgTEVHQUNZX1ZFUlNJT05TKQorICAgIGRl
ZiB0ZXN0X2xlZ2FjeV92ZXJzaW9uX2xvY2FsKHNlbGYsIHZlcnNpb24pOgorICAgICAgICBhc3Nl
cnQgTGVnYWN5VmVyc2lvbih2ZXJzaW9uKS5sb2NhbCBpcyBOb25lCisKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInZlcnNpb24iLCBWRVJTSU9OUyArIExFR0FDWV9WRVJTSU9OUykKKyAg
ICBkZWYgdGVzdF9sZWdhY3lfdmVyc2lvbl9wcmUoc2VsZiwgdmVyc2lvbik6CisgICAgICAgIGFz
c2VydCBMZWdhY3lWZXJzaW9uKHZlcnNpb24pLnByZSBpcyBOb25lCisKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInZlcnNpb24iLCBWRVJTSU9OUyArIExFR0FDWV9WRVJTSU9OUykKKyAg
ICBkZWYgdGVzdF9sZWdhY3lfdmVyc2lvbl9pc19wcmVyZWxlYXNlKHNlbGYsIHZlcnNpb24pOgor
ICAgICAgICBhc3NlcnQgbm90IExlZ2FjeVZlcnNpb24odmVyc2lvbikuaXNfcHJlcmVsZWFzZQor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdB
Q1lfVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVnYWN5X3ZlcnNpb25fZGV2KHNlbGYsIHZlcnNp
b24pOgorICAgICAgICBhc3NlcnQgTGVnYWN5VmVyc2lvbih2ZXJzaW9uKS5kZXYgaXMgTm9uZQor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdB
Q1lfVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVnYWN5X3ZlcnNpb25faXNfZGV2cmVsZWFzZShz
ZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgYXNzZXJ0IG5vdCBMZWdhY3lWZXJzaW9uKHZlcnNpb24p
LmlzX2RldnJlbGVhc2UKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmVyc2lvbiIs
IFZFUlNJT05TICsgTEVHQUNZX1ZFUlNJT05TKQorICAgIGRlZiB0ZXN0X2xlZ2FjeV92ZXJzaW9u
X3Bvc3Qoc2VsZiwgdmVyc2lvbik6CisgICAgICAgIGFzc2VydCBMZWdhY3lWZXJzaW9uKHZlcnNp
b24pLnBvc3QgaXMgTm9uZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9u
IiwgVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVnYWN5X3ZlcnNp
b25faXNfcG9zdHJlbGVhc2Uoc2VsZiwgdmVyc2lvbik6CisgICAgICAgIGFzc2VydCBub3QgTGVn
YWN5VmVyc2lvbih2ZXJzaW9uKS5pc19wb3N0cmVsZWFzZQorCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKAorICAgICAgICAoImxlZnQiLCAicmlnaHQiLCAib3AiKSwKKyAgICAgICAgIyBC
ZWxvdyB3ZSdsbCBnZW5lcmF0ZSBldmVyeSBwb3NzaWJsZSBjb21iaW5hdGlvbiBvZgorICAgICAg
ICAjIFZFUlNJT05TICsgTEVHQUNZX1ZFUlNJT05TIHRoYXQgc2hvdWxkIGJlIFRydWUgZm9yIHRo
ZSBnaXZlbiBvcGVyYXRvcgorICAgICAgICBpdGVydG9vbHMuY2hhaW4oCisgICAgICAgICAgICAq
CisgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBlcXVhbCAoPT0pIG9wZXJhdG9yIHdvcmtz
IGNvcnJlY3RseQorICAgICAgICAgICAgW1soeCwgeCwgb3BlcmF0b3IuZXEpIGZvciB4IGluIFZF
UlNJT05TICsgTEVHQUNZX1ZFUlNJT05TXV0KKyAgICAgICAgICAgICsKKyAgICAgICAgICAgICMg
VmVyaWZ5IHRoYXQgdGhlIG5vdCBlcXVhbCAoIT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQor
ICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgKHgs
IHksIG9wZXJhdG9yLm5lKQorICAgICAgICAgICAgICAgICAgICBmb3IgaiwgeSBpbiBlbnVtZXJh
dGUoVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgICAgICAgICAgICAgICAgIGlmIGkg
IT0gagorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICBmb3IgaSwgeCBpbiBlbnVt
ZXJhdGUoVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgICAgICAgICBdCisgICAgICAg
ICksCisgICAgKQorICAgIGRlZiB0ZXN0X2NvbXBhcmlzb25fdHJ1ZShzZWxmLCBsZWZ0LCByaWdo
dCwgb3ApOgorICAgICAgICBhc3NlcnQgb3AoTGVnYWN5VmVyc2lvbihsZWZ0KSwgTGVnYWN5VmVy
c2lvbihyaWdodCkpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgi
bGVmdCIsICJyaWdodCIsICJvcCIpLAorICAgICAgICAjIEJlbG93IHdlJ2xsIGdlbmVyYXRlIGV2
ZXJ5IHBvc3NpYmxlIGNvbWJpbmF0aW9uIG9mCisgICAgICAgICMgVkVSU0lPTlMgKyBMRUdBQ1lf
VkVSU0lPTlMgdGhhdCBzaG91bGQgYmUgRmFsc2UgZm9yIHRoZSBnaXZlbgorICAgICAgICAjIG9w
ZXJhdG9yCisgICAgICAgIGl0ZXJ0b29scy5jaGFpbigKKyAgICAgICAgICAgICoKKyAgICAgICAg
ICAgICMgVmVyaWZ5IHRoYXQgdGhlIGVxdWFsICg9PSkgb3BlcmF0b3Igd29ya3MgY29ycmVjdGx5
CisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAo
eCwgeSwgb3BlcmF0b3IuZXEpCisgICAgICAgICAgICAgICAgICAgIGZvciBqLCB5IGluIGVudW1l
cmF0ZShWRVJTSU9OUyArIExFR0FDWV9WRVJTSU9OUykKKyAgICAgICAgICAgICAgICAgICAgaWYg
aSAhPSBqCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgIGZvciBpLCB4IGluIGVu
dW1lcmF0ZShWRVJTSU9OUyArIExFR0FDWV9WRVJTSU9OUykKKyAgICAgICAgICAgIF0KKyAgICAg
ICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIG5vdCBlcXVhbCAoIT0pIG9w
ZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgW1soeCwgeCwgb3BlcmF0b3IubmUp
IGZvciB4IGluIFZFUlNJT05TICsgTEVHQUNZX1ZFUlNJT05TXV0KKyAgICAgICAgKSwKKyAgICAp
CisgICAgZGVmIHRlc3RfY29tcGFyaXNvbl9mYWxzZShzZWxmLCBsZWZ0LCByaWdodCwgb3ApOgor
ICAgICAgICBhc3NlcnQgbm90IG9wKExlZ2FjeVZlcnNpb24obGVmdCksIExlZ2FjeVZlcnNpb24o
cmlnaHQpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJvcCIsIFsibHQiLCAibGUi
LCAiZXEiLCAiZ2UiLCAiZ3QiLCAibmUiXSkKKyAgICBkZWYgdGVzdF9kdW5kZXJfb3BfcmV0dXJu
c19ub3RpbXBsZW1lbnRlZChzZWxmLCBvcCk6CisgICAgICAgIG1ldGhvZCA9IGdldGF0dHIoTGVn
YWN5VmVyc2lvbiwgIl9fezB9X18iLmZvcm1hdChvcCkpCisgICAgICAgIGFzc2VydCBtZXRob2Qo
TGVnYWN5VmVyc2lvbigiMSIpLCAxKSBpcyBOb3RJbXBsZW1lbnRlZAorCisgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCgib3AiLCAiZXhwZWN0ZWQiKSwgWygiZXEiLCBGYWxzZSksICgibmUi
LCBUcnVlKV0pCisgICAgZGVmIHRlc3RfY29tcGFyZV9vdGhlcihzZWxmLCBvcCwgZXhwZWN0ZWQp
OgorICAgICAgICBvdGhlciA9IHByZXRlbmQuc3R1YigqKnsiX197MH1fXyIuZm9ybWF0KG9wKTog
bGFtYmRhIG90aGVyOiBOb3RJbXBsZW1lbnRlZH0pCisKKyAgICAgICAgYXNzZXJ0IGdldGF0dHIo
b3BlcmF0b3IsIG9wKShMZWdhY3lWZXJzaW9uKCIxIiksIG90aGVyKSBpcyBleHBlY3RlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2th
Z2luZy90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2I3ZjY4N2YyZGFhY2JhODg4
YTM1MzY0NDY3N2RiY2ZkNDI1ZDZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcv
dGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwzNiBAQAorVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvdGVzdHMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9idWlsZC1oZWxs
by13b3JsZC5zaAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWFybXY3bC1hcm1l
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWFybXY3bC1hcm1oZgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWludmFsaWQtY2xhc3MKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2lu
Zy90ZXN0cy9oZWxsby13b3JsZC1pbnZhbGlkLWRhdGEKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9o
ZWxsby13b3JsZC1pbnZhbGlkLW1hZ2ljCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29y
bGQtczM5MHgtczM5MHgKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC10b28tc2hv
cnQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC14ODZfNjQtYW1kNjQKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC14ODZfNjQtaTM4NgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82NC14MzIKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxs
by13b3JsZC5jCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF9tYXJrZXJzLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvdGVzdHMvdGVzdF9yZXF1aXJlbWVudHMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0
cy90ZXN0X3NwZWNpZmllcnMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3N0cnVjdHVy
ZXMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3RhZ3MucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2lu
Zy90ZXN0cy90ZXN0X3V0aWxzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF92ZXJzaW9u
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFj
a2FnaW5nL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhNzJlZmUwOWM2NzRhYjc3NzVlMDRj
N2FhM2QxZjk3MTJiYmM0OTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDI1IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9DSEFO
R0VMT0cucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvQ09OVFJJQlVUSU5HLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL0xJQ0VOU0UKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9MSUNFTlNFLkFQQUNIRQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL0xJQ0VOU0UuQlNECisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvUkVBRE1FLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL215cHkuaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvbm94ZmlsZS5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L3B5cHJvamVjdC50b21sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL0NIQU5HRUxPRy5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhdGhsaWIyL0NIQU5HRUxPRy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY3YzFiMzhlOWJjN2Nh
Y2E0YThkYTlhN2NmMTA2NzcxZTI3ZGZmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxp
YjIvQ0hBTkdFTE9HLnJzdApAQCAtMCwwICsxLDE2MyBAQAorSGlzdG9yeQorLS0tLS0tLQorCitW
ZXJzaW9uIDIuMy41CiteXl5eXl5eXl5eXl5eCisKKy0gRmFsbCBiYWNrIHRvIGFzY2lpIHdoZW4g
Z2V0ZmlsZXN5c3RlbWVuY29kaW5nIHJldHVybnMgTm9uZSAoc2VlCisgIGlzc3VlICM1OSkuCisK
K1ZlcnNpb24gMi4zLjQKK15eXl5eXl5eXl5eXl4KKworLSBEbyBub3QgcmFpc2Ugd2luZG93cyBl
cnJvciB3aGVuIGNhbGxpbmcgcmVzb2x2ZSBvbiBhIG5vbi1leGlzdGluZworICBwYXRoIGluIFB5
dGhvbiAyLjcsIHRvIG1hdGNoIGJlaGF2aW91ciBvbiBQeXRob24gMy54IChzZWUgaXNzdWUgIzU0
KS4KKworLSBVc2UgdGhlIG5ldyBjb2xsZWN0aW9ucy5hYmMgd2hlbiBwb3NzaWJsZSAoc2VlIGlz
c3VlICM1MykuCisKKy0gU3luYyB3aXRoIHVwc3RyZWFtIHBhdGhsaWIgKHNlZSBpc3N1ZXMgIzQ3
IGFuZCAjNTEpLgorCitWZXJzaW9uIDIuMy4zCiteXl5eXl5eXl5eXl5eCisKKy0gQnJpbmcgYmFj
ayBvbGQgZGVwcmVjYXRlZCBkZXBlbmRlbmN5IHN5bnRheCB0byBlbnN1cmUgY29tcGF0aWJpbGl0
eQorICB3aXRoIG9sZGVyIHN5c3RlbXMgKHNlZSBpc3N1ZSAjNDYpLgorCistIERyb3AgUHl0aG9u
IDMuMyBzdXBwb3J0LCBhcyBzY2FuZGlyIG5vIGxvbmdlciBzdXBwb3J0cyBpdC4KKworLSBBZGQg
UHl0aG9uIDMuNyBzdXBwb3J0LgorCitWZXJzaW9uIDIuMy4yCiteXl5eXl5eXl5eXl5eCisKKy0g
SG90Zml4IGZvciBicm9rZW4gc2V0dXAucHkuCisKK1ZlcnNpb24gMi4zLjEKK15eXl5eXl5eXl5e
Xl4KKworLSBGaXggdGVzdHMgZm9yIHN5c3RlbXMgd2hlcmUgZmlsZXN5c3RlbSBlbmNvZGluZyBv
bmx5IHN1cHBvcnRzIGFzY2lpCisgIChyZXBvcnRlZCBieSB5dXJpdmljdCwgZml4ZWQgd2l0aCBo
ZWxwIG9mIGhvbm5pYmFsLCBzZWUgaXNzdWUgIzMwKS4KKworLSBVc2UgbW9kZXJuIHNldHVwdG9v
bHMgc3ludGF4IGZvciBzcGVjaWZ5aW5nIGNvbmRpdGlvbmFsIHNjYW5kaXIKKyAgZGVwZW5kZW5j
eSAoc2VlIGlzc3VlICMzMSkuCisKKy0gUmVtb3ZlIGxlZ2FjeSB1c2Ugb2Ygc3VwcG9ydCBtb2R1
bGUgZnJvbSBvbGQgcGF0aGxpYiBtb2R1bGUgKHNlZQorICBpc3N1ZSAjMzkpLiBUaGlzIGZpeGVz
IHRoZSB0ZXN0cyBmb3IgUHl0aG9uIDMuNi4KKworLSBEcm9wIHRoZSAiZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCB1bmljb2RlX2xpdGVyYWxzIiBhbmQgLVFuZXcgdGVzdHMKKyAgYXMgaXQgaW50cm9k
dWNlZCBzdWJ0bGUgYnVncyBpbiB0aGUgdGVzdHMsIGFuZCBtYWludGFpbmluZyBzZXBhcmF0ZQor
ICB0ZXN0IG1vZHVsZXMgZm9yIHRoZXNlIGxlZ2FjeSBmZWF0dXJlcyBzZWVtcyBub3Qgd29ydGgg
dGhlIGVmZm9ydC4KKworLSBEcm9wIFB5dGhvbiAzLjIgc3VwcG9ydCwgYXMgc2NhbmRpciBubyBs
b25nZXIgc3VwcG9ydHMgaXQuCisKK1ZlcnNpb24gMi4zLjAKK15eXl5eXl5eXl5eXl4KKworLSBT
eW5jIHdpdGggdXBzdHJlYW0gcGF0aGxpYiBmcm9tIENQeXRob24gMy42LjEgKDdkMTAxN2QpLgor
CitWZXJzaW9uIDIuMi4xCiteXl5eXl5eXl5eXl5eCisKKy0gRml4IGNvbmRpdGlvbmFsIHNjYW5k
aXIgZGVwZW5kZW5jeSBpbiB3aGVlbCAocmVwb3J0ZWQgYnkgQXZkTiwgc2VlCisgIGlzc3VlICMy
MCBhbmQgcHVsbCByZXF1ZXN0ICMyMSkuCisKK1ZlcnNpb24gMi4yLjAKK15eXl5eXl5eXl5eXl4K
KworLSBTeW5jIHdpdGggdXBzdHJlYW0gcGF0aGxpYiBmcm9tIENQeXRob24gMy41LjIgYW5kIDMu
Ni4wOiBmaXggdmFyaW91cworICBleGNlcHRpb25zLCBlbXB0eSBnbG9iIHBhdHRlcm4sIHNjYW5k
aXIsIF9fZnNwYXRoX18uCisKKy0gU3VwcG9ydCB1bmljb2RlIHN0cmluZ3MgdG8gYmUgdXNlZCB0
byBjb25zdHJ1Y3QgcGF0aHMgaW4gUHl0aG9uIDIKKyAgKHJlcG9ydGVkIGJ5IG5hdGl2ZS1hcGks
IHNlZSBpc3N1ZSAjMTMgYW5kIHB1bGwgcmVxdWVzdCAjMTUpLgorCitWZXJzaW9uIDIuMS4wCite
Xl5eXl5eXl5eXl5eCisKKy0gU3luYyB3aXRoIHVwc3RyZWFtIHBhdGhsaWIgZnJvbSBDUHl0aG9u
IDMuNS4wOiBnZXRob21lZGlyLCBob21lLAorICBleHBhbmR1c2VyLgorCitWZXJzaW9uIDIuMC4x
CiteXl5eXl5eXl5eXl5eCisKKy0gRml4IFR5cGVFcnJvciBleGNlcHRpb25zIGluIHdyaXRlX2J5
dGVzIGFuZCB3cml0ZV90ZXh0IChjb250cmlidXRlZAorICBieSBFbWFudWVsZSBHYWlmYXMsIHNl
ZSBwdWxsIHJlcXVlc3QgIzIpLgorCitWZXJzaW9uIDIuMAorXl5eXl5eXl5eXl4KKworLSBTeW5j
IHdpdGggdXBzdHJlYW0gcGF0aGxpYiBmcm9tIENQeXRob246IHJlYWRfdGV4dCwgd3JpdGVfdGV4
dCwKKyAgcmVhZF9ieXRlcywgd3JpdGVfYnl0ZXMsIF9fZW50ZXJfXywgX19leGl0X18sIHNhbWVm
aWxlLgorLSBVc2UgdHJhdmlzIGFuZCBhcHB2ZXlvciBmb3IgY29udGludW91cyBpbnRlZ3JhdGlv
bi4KKy0gRml4ZWQgc29tZSBidWdzIGluIHRlc3QgY29kZS4KKworVmVyc2lvbiAxLjAuMQorXl5e
Xl5eXl5eXl5eXgorCistIFB1bGwgcmVxdWVzdCAjNDogUHl0aG9uIDIuNiBjb21wYXRpYmlsaXR5
IGJ5IGVldmVlLgorCitWZXJzaW9uIDEuMAorXl5eXl5eXl5eXl4KKworVGhpcyB2ZXJzaW9uIGJy
aW5ncyBgYHBhdGhsaWJgYCB1cCB0byBkYXRlIHdpdGggdGhlIG9mZmljaWFsIFB5dGhvbiAzLjQK
K3JlbGVhc2UsIGFuZCBhbHNvIGZpeGVzIGEgY291cGxlIG9mIDIuNy1zcGVjaWZpYyBpc3N1ZXMu
CisKKy0gUHl0aG9uIGlzc3VlICMyMDc2NTogQWRkIG1pc3NpbmcgZG9jdW1lbnRhdGlvbiBmb3Ig
UHVyZVBhdGgud2l0aF9uYW1lKCkKKyAgYW5kIFB1cmVQYXRoLndpdGhfc3VmZml4KCkuCistIEZp
eCB0ZXN0X21rZGlyX3BhcmVudHMgd2hlbiB0aGUgd29ya2luZyBkaXJlY3RvcnkgaGFzIGFkZGl0
aW9uYWwgYml0cworICBzZXQgKHN1Y2ggYXMgdGhlIHNldGdpZCBvciBzdGlja3kgYml0cykuCist
IFB5dGhvbiBpc3N1ZSAjMjAxMTE6IHBhdGhsaWIuUGF0aC53aXRoX3N1ZmZpeCgpIG5vdyBzYW5p
dHkgY2hlY2tzIHRoZQorICBnaXZlbiBzdWZmaXguCistIFB5dGhvbiBpc3N1ZSAjMTk5MTg6IEZp
eCBQdXJlUGF0aC5yZWxhdGl2ZV90bygpIHVuZGVyIFdpbmRvd3MuCistIFB5dGhvbiBpc3N1ZSAj
MTk5MjE6IFdoZW4gUGF0aC5ta2RpcigpIGlzIGNhbGxlZCB3aXRoIHBhcmVudHM9VHJ1ZSwgYW55
CisgIG1pc3NpbmcgcGFyZW50IGlzIGNyZWF0ZWQgd2l0aCB0aGUgZGVmYXVsdCBwZXJtaXNzaW9u
cywgaWdub3JpbmcgdGhlIG1vZGUKKyAgYXJndW1lbnQgKG1pbWlja2luZyB0aGUgUE9TSVggIm1r
ZGlyIC1wIiBjb21tYW5kKS4KKy0gUHl0aG9uIGlzc3VlICMxOTg4NzogSW1wcm92ZSB0aGUgUGF0
aC5yZXNvbHZlKCkgYWxnb3JpdGhtIHRvIHN1cHBvcnQKKyAgY2VydGFpbiBzeW1saW5rIGNoYWlu
cy4KKy0gTWFrZSBwYXRobGliIHVzYWJsZSB1bmRlciBQeXRob24gMi43IHdpdGggdW5pY29kZSBw
YXRobmFtZXMgKG9ubHkgcHVyZQorICBBU0NJSSwgdGhvdWdoKS4KKy0gSXNzdWUgIzIxOiBmaXgg
VHlwZUVycm9yIHVuZGVyIFB5dGhvbiAyLjcgd2hlbiB1c2luZyBuZXcgZGl2aXNpb24uCistIEFk
ZCB0b3ggc3VwcG9ydCBmb3IgZWFzaWVyIHRlc3RpbmcuCisKK1ZlcnNpb24gMC45NworXl5eXl5e
Xl5eXl5eCisKK1RoaXMgdmVyc2lvbiBicmluZ3MgYGBwYXRobGliYGAgdXAgdG8gZGF0ZSB3aXRo
IHRoZSBmaW5hbCBBUEkgc3BlY2lmaWVkCitpbiA6cGVwOmA0MjhgLiAgVGhlIGNoYW5nZXMgYXJl
IHRvbyBsb25nIHRvIGxpc3QgaGVyZSwgaXQgaXMgcmVjb21tZW5kZWQKK3RvIHJlYWQgdGhlIGBk
b2N1bWVudGF0aW9uIDxodHRwczovL3BhdGhsaWIucmVhZHRoZWRvY3Mub3JnLz5gXy4KKworLi4g
d2FybmluZzo6CisgICBUaGUgQVBJIGluIHRoaXMgdmVyc2lvbiBpcyBwYXJ0aWFsbHkgaW5jb21w
YXRpYmxlIHdpdGggcGF0aGxpYiAwLjggYW5kCisgICBlYXJsaWVyLiAgQmUgc3VyZSB0byBjaGVj
ayB5b3VyIGNvZGUgZm9yIHBvc3NpYmxlIGJyZWFrYWdlIQorCitWZXJzaW9uIDAuOAorXl5eXl5e
Xl5eXl4KKworLSBBZGQgUHVyZVBhdGgubmFtZSBhbmQgUHVyZVBhdGguYW5jaG9yLgorLSBBZGQg
UGF0aC5vd25lciBhbmQgUGF0aC5ncm91cC4KKy0gQWRkIFBhdGgucmVwbGFjZSgpLgorLSBBZGQg
UGF0aC5hc191cmkoKS4KKy0gSXNzdWUgIzEwOiB3aGVuIGNyZWF0aW5nIGEgZmlsZSB3aXRoIFBh
dGgub3BlbigpLCBkb24ndCBzZXQgdGhlIGV4ZWN1dGFibGUKKyAgYml0LgorLSBJc3N1ZSAjMTE6
IGZpeCBjb21wYXJpc29ucyB3aXRoIG5vbi1QYXRoIG9iamVjdHMuCisKK1ZlcnNpb24gMC43Cite
Xl5eXl5eXl5eXgorCistIEFkZCAnKionIChyZWN1cnNpdmUpIHBhdHRlcm5zIHRvIFBhdGguZ2xv
YigpLgorLSBGaXggb3BlbmF0KCkgc3VwcG9ydCBhZnRlciB0aGUgQVBJIHJlZmFjdG9yaW5nIGlu
IFB5dGhvbiAzLjMgYmV0YTEuCistIEFkZCBhICp0YXJnZXRfaXNfZGlyZWN0b3J5KiBhcmd1bWVu
dCB0byBQYXRoLnN5bWxpbmtfdG8oKQorCitWZXJzaW9uIDAuNgorXl5eXl5eXl5eXl4KKworLSBB
ZGQgUGF0aC5pc19maWxlKCkgYW5kIFBhdGguaXNfc3ltbGluaygpCistIEFkZCBQYXRoLmdsb2Io
KSBhbmQgUGF0aC5yZ2xvYigpCistIEFkZCBQdXJlUGF0aC5tYXRjaCgpCisKK1ZlcnNpb24gMC41
CiteXl5eXl5eXl5eXgorCistIEFkZCBQYXRoLm1rZGlyKCkuCistIEFkZCBQeXRob24gMi43IGNv
bXBhdGliaWxpdHkgYnkgTWljaGVsZSBMYWNjaGlhLgorLSBNYWtlIHBhcmVudCgpIHJhaXNlIFZh
bHVlRXJyb3Igd2hlbiB0aGUgbGV2ZWwgaXMgZ3JlYXRlciB0aGFuIHRoZSBwYXRoCisgIGxlbmd0
aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvTElDRU5TRS5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIy
L0xJQ0VOU0UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3MTVkM2Q3YTJjZDJhYTkzN2FmODZhZGFmNTJlMjkw
ZjA3MTM3MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL0xJQ0VOU0UucnN0CkBA
IC0wLDAgKzEsMjMgQEAKK1RoZSBNSVQgTGljZW5zZSAoTUlUKQorCitDb3B5cmlnaHQgKGMpIDIw
MTQtMjAxNyBNYXR0aGlhcyBDLiBNLiBUcm9mZmFlcworQ29weXJpZ2h0IChjKSAyMDEyLTIwMTQg
QW50b2luZSBQaXRyb3UgYW5kIGNvbnRyaWJ1dG9ycworCitQZXJtaXNzaW9uIGlzIGhlcmVieSBn
cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Citv
ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi
U29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBt
b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2Vs
bAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g
dGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKK2NvcGllcyBvciBzdWJz
dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J
TkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklM
SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us
IEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF
IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZUV0FSRS4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYXRobGliMi9NQU5JRkVTVC5pbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvTUFOSUZFU1Qu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmYwMzM2OWRjNjgxYTg1ZGEwZTQxZjIwOGU5MjBmMzczNWQ3YmUxMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvTUFOSUZFU1QuaW4KQEAgLTAsMCArMSwx
MCBAQAoraW5jbHVkZSAqLnB5CityZWN1cnNpdmUtaW5jbHVkZSBwYXRobGliMiAqLnB5CityZWN1
cnNpdmUtaW5jbHVkZSB0ZXN0cyAqLnB5CitpbmNsdWRlICoucnN0CitpbmNsdWRlIFZFUlNJT04K
K2luY2x1ZGUgcmVxdWlyZW1lbnRzLnR4dAorZXhjbHVkZSAudHJhdmlzLnltbAorZXhjbHVkZSBh
cHB2ZXlvci55bWwKK2V4Y2x1ZGUgY29kZWNvdi55bWwKK3BydW5lIGFwcHZleW9yCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhdGhsaWIyL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL1JFQURNRS5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjM3OGYyODRkZDFjODBhM2E4M2UzNWJkZmEzZTIyNWM0ODk5M2JkOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvUkVBRE1FLnJzdApAQCAtMCwwICsxLDY2IEBA
CitwYXRobGliMgorPT09PT09PT0KKworfGFwcHZleW9yfCB8dHJhdmlzfCB8Y29kZWNvdnwKKwor
Rm9yayBvZiBwYXRobGliIGFpbWluZyB0byBzdXBwb3J0IHRoZSBmdWxsIHN0ZGxpYiBQeXRob24g
QVBJLgorCitUaGUgYG9sZCBwYXRobGliIDxodHRwczovL2JpdGJ1Y2tldC5vcmcvcGl0cm91L3Bh
dGhsaWI+YF8KK21vZHVsZSBvbiBiaXRidWNrZXQgaXMgaW4gYnVnZml4LW9ubHkgbW9kZS4KK1Ro
ZSBnb2FsIG9mIHBhdGhsaWIyIGlzIHRvIHByb3ZpZGUgYSBiYWNrcG9ydCBvZgorYHN0YW5kYXJk
IHBhdGhsaWIgPGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvZGV2L2xpYnJhcnkvcGF0aGxpYi5odG1s
PmBfCittb2R1bGUgd2hpY2ggdHJhY2tzIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IG1vZHVsZSwKK3Nv
IGFsbCB0aGUgbmV3ZXN0IGZlYXR1cmVzIG9mIHRoZSBzdGFuZGFyZCBwYXRobGliIGNhbiBiZQor
dXNlZCBhbHNvIG9uIG9sZGVyIFB5dGhvbiB2ZXJzaW9ucy4KKworRG93bmxvYWQKKy0tLS0tLS0t
CisKK1N0YW5kYWxvbmUgcmVsZWFzZXMgYXJlIGF2YWlsYWJsZSBvbiBQeVBJOgoraHR0cDovL3B5
cGkucHl0aG9uLm9yZy9weXBpL3BhdGhsaWIyLworCitEZXZlbG9wbWVudAorLS0tLS0tLS0tLS0K
KworVGhlIG1haW4gZGV2ZWxvcG1lbnQgdGFrZXMgcGxhY2UgaW4gdGhlIFB5dGhvbiBzdGFuZGFy
ZCBsaWJyYXJ5OiBzZWUKK3RoZSBgUHl0aG9uIGRldmVsb3BlcidzIGd1aWRlIDxodHRwOi8vZG9j
cy5weXRob24ub3JnL2Rldmd1aWRlLz5gXy4KK0luIHBhcnRpY3VsYXIsIG5ldyBmZWF0dXJlcyBz
aG91bGQgYmUgc3VibWl0dGVkIHRvIHRoZQorYFB5dGhvbiBidWcgdHJhY2tlciA8aHR0cDovL2J1
Z3MucHl0aG9uLm9yZy8+YF8uCisKK0lzc3VlcyB0aGF0IG9jY3VyIGluIHRoaXMgYmFja3BvcnQs
IGJ1dCB0aGF0IGRvIG5vdCBvY2N1ciBub3QgaW4gdGhlCitzdGFuZGFyZCBQeXRob24gcGF0aGxp
YiBtb2R1bGUgY2FuIGJlIHN1Ym1pdHRlZCBvbgordGhlIGBwYXRobGliMiBidWcgdHJhY2tlciA8
aHR0cHM6Ly9naXRodWIuY29tL21jbXRyb2ZmYWVzL3BhdGhsaWIyL2lzc3Vlcz5gXy4KKworRG9j
dW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCitSZWZlciB0byB0aGUKK2BzdGFuZGFyZCBwYXRo
bGliIDxodHRwOi8vZG9jcy5weXRob24ub3JnL2Rldi9saWJyYXJ5L3BhdGhsaWIuaHRtbD5gXwor
ZG9jdW1lbnRhdGlvbi4KKworS25vd24gSXNzdWVzCistLS0tLS0tLS0tLS0KKworRm9yIGhpc3Rv
cmljIHJlYXNvbnMsIHBhdGhsaWIyIHN0aWxsIHVzZXMgYnl0ZXMgdG8gcmVwcmVzZW50IGZpbGUg
cGF0aHMgaW50ZXJuYWxseS4KK1VuZm9ydHVuYXRlbHksIG9uIFdpbmRvd3Mgd2l0aCBQeXRob24g
Mi43LCB0aGUgZmlsZSBzeXN0ZW0gZW5jb2RlciAoYGBtY2JzYGApCitoYXMgb25seSBwb29yIHN1
cHBvcnQgZm9yIG5vbi1hc2NpaSBjaGFyYWN0ZXJzLAorYW5kIGNhbiBzaWxlbnRseSByZXBsYWNl
IG5vbi1hc2NpaSBjaGFyYWN0ZXJzIHdpdGhvdXQgd2FybmluZy4KK0ZvciBleGFtcGxlLCBgYHUn
0YLQtdGB0YInLmVuY29kZShzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCkpYGAgcmVzdWx0cyBp
biBgYD8/Pz9gYAord2hpY2ggaXMgb2J2aW91c2x5IGNvbXBsZXRlbHkgdXNlbGVzcy4KKworVGhl
cmVmb3JlLCBvbiBXaW5kb3dzIHdpdGggUHl0aG9uIDIuNywgdW50aWwgdGhpcyBwcm9ibGVtIGlz
IGZpeGVkIHVwc3RyZWFtLAordW5mb3J0dW5hdGVseSB5b3UgY2Fubm90IHJlbHkgb24gcGF0aGxp
YjIgdG8gc3VwcG9ydCB0aGUgZnVsbCB1bmljb2RlIHJhbmdlIGZvciBmaWxlbmFtZXMuCitTZWUg
YGlzc3VlICM1NiA8aHR0cHM6Ly9naXRodWIuY29tL21jbXRyb2ZmYWVzL3BhdGhsaWIyL2lzc3Vl
cy81Nj5gXyBmb3IgbW9yZSBkZXRhaWxzLgorCisuLiB8dHJhdmlzfCBpbWFnZTo6IGh0dHBzOi8v
dHJhdmlzLWNpLm9yZy9tY210cm9mZmFlcy9wYXRobGliMi5wbmc/YnJhbmNoPWRldmVsb3AKKyAg
ICA6dGFyZ2V0OiBodHRwczovL3RyYXZpcy1jaS5vcmcvbWNtdHJvZmZhZXMvcGF0aGxpYjIKKyAg
ICA6YWx0OiB0cmF2aXMtY2kKKworLi4gfGFwcHZleW9yfCBpbWFnZTo6IGh0dHBzOi8vY2kuYXBw
dmV5b3IuY29tL2FwaS9wcm9qZWN0cy9zdGF0dXMvYmFkZHgzcnBldDJ3eWkyYz9zdmc9dHJ1ZQor
ICAgIDp0YXJnZXQ6IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvbWNtdHJvZmZhZXMv
cGF0aGxpYjIKKyAgICA6YWx0OiBhcHB2ZXlvcgorCisuLiB8Y29kZWNvdnwgaW1hZ2U6OiBodHRw
czovL2NvZGVjb3YuaW8vZ2gvbWNtdHJvZmZhZXMvcGF0aGxpYjIvYnJhbmNoL2RldmVsb3AvZ3Jh
cGgvYmFkZ2Uuc3ZnCisgICAgOnRhcmdldDogaHR0cHM6Ly9jb2RlY292LmlvL2doL21jbXRyb2Zm
YWVzL3BhdGhsaWIyCisgICAgOmFsdDogY29kZWNvdgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhs
aWIyL1ZFUlNJT04gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL1ZFUlNJT04KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M2YzlhNDkx
ZTBiZTdmYzMwOTc1ZWNhMTA3MWVkMjg4Y2MyMWEwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGF0aGxpYjIvVkVSU0lPTgpAQCAtMCwwICsxIEBACisyLjMuNQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YXRobGliMi9hcHB2ZXlvci55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL2FwcHZleW9yLnltbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYWU3ZjI1ZjM0ZjRlZjExZTIyYjc1YzQ3OWVlODE2MjM0NzkwOTJkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYXRobGliMi9hcHB2ZXlvci55bWwKQEAgLTAsMCArMSwzMCBAQAorZW52
aXJvbm1lbnQ6CisKKyAgbWF0cml4OgorICAgIC0gUFlUSE9OOiAiQzpcXFB5dGhvbjI3IgorCisg
ICAgLSBQWVRIT046ICJDOlxcUHl0aG9uMzQiCisKKyAgICAtIFBZVEhPTjogIkM6XFxQeXRob24z
NSIKKworICAgIC0gUFlUSE9OOiAiQzpcXFB5dGhvbjM2IgorCisgICAgLSBQWVRIT046ICJDOlxc
UHl0aG9uMzciCisKK2luaXQ6CisgIC0gIiVQWVRIT04lL3B5dGhvbiAtLXZlcnNpb24iCisKK2lu
c3RhbGw6CisgIC0gInBvd2Vyc2hlbGwgYXBwdmV5b3JcXGluc3RhbGwucHMxIgorCitidWlsZDog
b2ZmCisKK3Rlc3Rfc2NyaXB0OgorICAtIGNkIHRlc3RzCisgIC0gIiVQWVRIT04lL1NjcmlwdHMv
cHkudGVzdCAtLWNvdi1yZXBvcnQ9eG1sIC0tY292PXBhdGhsaWIyIC4iCisKK2FmdGVyX3Rlc3Q6
CisgIC0gcHM6IHwKKyAgICAgICRlbnY6UEFUSCA9ICdDOlxtc3lzNjRcdXNyXGJpbjsnICsgJGVu
djpQQVRICisgICAgICBJbnZva2UtV2ViUmVxdWVzdCAtVXJpICdodHRwczovL2NvZGVjb3YuaW8v
YmFzaCcgLU91dEZpbGUgY29kZWNvdi5zaAorICAgICAgYmFzaCBjb2RlY292LnNoIC1mICJjb3Zl
cmFnZS54bWwiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL2FwcHZleW9yL2luc3RhbGwucHMx
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYXRobGliMi9hcHB2ZXlvci9pbnN0YWxsLnBzMQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYmZiYjhk
Yjk2MThiM2UyZjY4NmE4MTE4YzY3NjA3YTEzMTEyNDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYXRobGliMi9hcHB2ZXlvci9pbnN0YWxsLnBzMQpAQCAtMCwwICsxLDQ0IEBACisjIFNhbXBs
ZSBzY3JpcHQgdG8gaW5zdGFsbCBQeXRob24gYW5kIHBpcCB1bmRlciBXaW5kb3dzCisjIEF1dGhv
cnM6IE9saXZpZXIgR3Jpc2VsIGFuZCBLeWxlIEthc3RuZXIKKyMgTGljZW5zZTogQ0MwIDEuMCBV
bml2ZXJzYWw6IGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEu
MC8KKworJEdFVF9QSVBfVVJMID0gImh0dHBzOi8vYm9vdHN0cmFwLnB5cGEuaW8vZ2V0LXBpcC5w
eSIKKyRHRVRfUElQX1BBVEggPSAiQzpcZ2V0LXBpcC5weSIKKworCitmdW5jdGlvbiBJbnN0YWxs
UGlwICgkcHl0aG9uX2hvbWUpIHsKKyAgICAkcGlwX3BhdGggPSAkcHl0aG9uX2hvbWUgKyAiL1Nj
cmlwdHMvcGlwLmV4ZSIKKyAgICAkcHl0aG9uX3BhdGggPSAkcHl0aG9uX2hvbWUgKyAiL3B5dGhv
bi5leGUiCisgICAgaWYgKC1ub3QoVGVzdC1QYXRoICRwaXBfcGF0aCkpIHsKKyAgICAgICAgV3Jp
dGUtSG9zdCAiSW5zdGFsbGluZyBwaXAuLi4iCisgICAgICAgICR3ZWJjbGllbnQgPSBOZXctT2Jq
ZWN0IFN5c3RlbS5OZXQuV2ViQ2xpZW50CisgICAgICAgICR3ZWJjbGllbnQuRG93bmxvYWRGaWxl
KCRHRVRfUElQX1VSTCwgJEdFVF9QSVBfUEFUSCkKKyAgICAgICAgV3JpdGUtSG9zdCAiRXhlY3V0
aW5nOiIgJHB5dGhvbl9wYXRoICRHRVRfUElQX1BBVEgKKyAgICAgICAgU3RhcnQtUHJvY2VzcyAt
RmlsZVBhdGggIiRweXRob25fcGF0aCIgLUFyZ3VtZW50TGlzdCAiJEdFVF9QSVBfUEFUSCIgLVdh
aXQgLVBhc3N0aHJ1CisgICAgfSBlbHNlIHsKKyAgICAgICAgV3JpdGUtSG9zdCAiVXBncmFkaW5n
IHBpcC4uLiIKKyAgICAgICAgJiAkcHl0aG9uX3BhdGggLW0gcGlwIGluc3RhbGwgLS11cGdyYWRl
IHBpcAorICAgIH0KKyAgICBXcml0ZS1Ib3N0ICJVcGdyYWRpbmcgc2V0dXB0b29scy4uLiIKKyAg
ICAmICRweXRob25fcGF0aCAtbSBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgc2V0dXB0b29scworfQor
CitmdW5jdGlvbiBJbnN0YWxsUGFja2FnZSAoJHB5dGhvbl9ob21lLCAkcGtnKSB7CisgICAgJHBp
cF9wYXRoID0gJHB5dGhvbl9ob21lICsgIi9TY3JpcHRzL3BpcC5leGUiCisgICAgJiAkcGlwX3Bh
dGggaW5zdGFsbCAkcGtnCit9CisKK2Z1bmN0aW9uIEluc3RhbGxSZXF1aXJlbWVudHMgKCRweXRo
b25faG9tZSwgJHJlcXMpIHsKKyAgICAkcGlwX3BhdGggPSAkcHl0aG9uX2hvbWUgKyAiL1Njcmlw
dHMvcGlwLmV4ZSIKKyAgICAmICRwaXBfcGF0aCBpbnN0YWxsIC1yICRyZXFzCit9CisKK2Z1bmN0
aW9uIG1haW4gKCkgeworICAgIEluc3RhbGxQaXAgJGVudjpQWVRIT04KKyAgICBJbnN0YWxsUmVx
dWlyZW1lbnRzICRlbnY6UFlUSE9OIC1yIHJlcXVpcmVtZW50cy50eHQKKyAgICBJbnN0YWxsUGFj
a2FnZSAkZW52OlBZVEhPTiBweXRlc3QtY292CisgICAgSW5zdGFsbFBhY2thZ2UgJGVudjpQWVRI
T04gdW5pdHRlc3QyCisgICAgSW5zdGFsbFBhY2thZ2UgJGVudjpQWVRIT04gLgorfQorCittYWlu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL2FwcHZleW9yL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYXRobGliMi9hcHB2ZXlvci93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTdmODY4ZThk
ODhkNmYxZDFmMGI1MmYyNjUxOTQ2ZDYzZGJmYzhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YXRobGliMi9hcHB2ZXlvci93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhdGhsaWIyL2FwcHZleW9yL2luc3RhbGwucHMxCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
dGhsaWIyL2NvZGVjb3YueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9jb2RlY292LnltbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kYjI0NzIwMDljNjBhY2M3MmNhMmY2ZjA2NWJiNGI2NzRkYzY2NzQ2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYXRobGliMi9jb2RlY292LnltbApAQCAtMCwwICsxIEBACitjb21tZW50OiBv
ZmYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvcGF0aGxpYjIvX19pbml0X18ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhdGhsaWIyL3BhdGhsaWIyL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1YTQ3YTY2YzY2NzQy
NzE4ZDFkZTgwMTllZTc4NTdmNzk1YTM1ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhs
aWIyL3BhdGhsaWIyL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTgwOSBAQAorIyBDb3B5cmlnaHQg
KGMpIDIwMTQtMjAxNyBNYXR0aGlhcyBDLiBNLiBUcm9mZmFlcworIyBDb3B5cmlnaHQgKGMpIDIw
MTItMjAxNCBBbnRvaW5lIFBpdHJvdSBhbmQgY29udHJpYnV0b3JzCisjIERpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vuc2UuCisKK2ltcG9ydCBjdHlwZXMKK2ltcG9y
dCBmbm1hdGNoCitpbXBvcnQgZnVuY3Rvb2xzCitpbXBvcnQgaW8KK2ltcG9ydCBudHBhdGgKK2lt
cG9ydCBvcworaW1wb3J0IHBvc2l4cGF0aAoraW1wb3J0IHJlCitpbXBvcnQgc2l4CitpbXBvcnQg
c3lzCisKK2Zyb20gZXJybm8gaW1wb3J0IEVJTlZBTCwgRU5PRU5ULCBFTk9URElSLCBFQkFERgor
ZnJvbSBlcnJubyBpbXBvcnQgRUVYSVNULCBFUEVSTSwgRUFDQ0VTCitmcm9tIG9wZXJhdG9yIGlt
cG9ydCBhdHRyZ2V0dGVyCitmcm9tIHN0YXQgaW1wb3J0ICgKKyAgICBTX0lTRElSLCBTX0lTTE5L
LCBTX0lTUkVHLCBTX0lTU09DSywgU19JU0JMSywgU19JU0NIUiwgU19JU0ZJRk8pCisKK3RyeToK
KyAgICBmcm9tIGNvbGxlY3Rpb25zLmFiYyBpbXBvcnQgU2VxdWVuY2UKK2V4Y2VwdCBJbXBvcnRF
cnJvcjoKKyAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBTZXF1ZW5jZQorCit0cnk6CisgICAg
ZnJvbSB1cmxsaWIgaW1wb3J0IHF1b3RlIGFzIHVybHF1b3RlX2Zyb21fYnl0ZXMKK2V4Y2VwdCBJ
bXBvcnRFcnJvcjoKKyAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgcXVvdGVfZnJvbV9ieXRl
cyBhcyB1cmxxdW90ZV9mcm9tX2J5dGVzCisKKwordHJ5OgorICAgIGludGVybiA9IGludGVybgor
ZXhjZXB0IE5hbWVFcnJvcjoKKyAgICBpbnRlcm4gPSBzeXMuaW50ZXJuCisKK3N1cHBvcnRzX3N5
bWxpbmtzID0gVHJ1ZQoraWYgb3MubmFtZSA9PSAnbnQnOgorICAgIGltcG9ydCBudAorICAgIGlm
IHN5cy5nZXR3aW5kb3dzdmVyc2lvbigpWzoyXSA+PSAoNiwgMCkgYW5kIHN5cy52ZXJzaW9uX2lu
Zm8gPj0gKDMsIDIpOgorICAgICAgICBmcm9tIG50IGltcG9ydCBfZ2V0ZmluYWxwYXRobmFtZQor
ICAgIGVsc2U6CisgICAgICAgIHN1cHBvcnRzX3N5bWxpbmtzID0gRmFsc2UKKyAgICAgICAgX2dl
dGZpbmFscGF0aG5hbWUgPSBOb25lCitlbHNlOgorICAgIG50ID0gTm9uZQorCit0cnk6CisgICAg
ZnJvbSBvcyBpbXBvcnQgc2NhbmRpciBhcyBvc19zY2FuZGlyCitleGNlcHQgSW1wb3J0RXJyb3I6
CisgICAgZnJvbSBzY2FuZGlyIGltcG9ydCBzY2FuZGlyIGFzIG9zX3NjYW5kaXIKKworX19hbGxf
XyA9IFsKKyAgICAiUHVyZVBhdGgiLCAiUHVyZVBvc2l4UGF0aCIsICJQdXJlV2luZG93c1BhdGgi
LAorICAgICJQYXRoIiwgIlBvc2l4UGF0aCIsICJXaW5kb3dzUGF0aCIsCisgICAgXQorCisjCisj
IEludGVybmFscworIworCisjIEVCQURGIC0gZ3VhcmQgYWdhaW5zIG1hY09TIGBzdGF0YCB0aHJv
d2luZyBFQkFERgorX0lHTk9SRURfRVJST1MgPSAoRU5PRU5ULCBFTk9URElSLCBFQkFERikKKwor
X0lHTk9SRURfV0lORVJST1JTID0gKAorICAgIDIxLCAgIyBFUlJPUl9OT1RfUkVBRFkgLSBkcml2
ZSBleGlzdHMgYnV0IGlzIG5vdCBhY2Nlc3NpYmxlCispCisKKworZGVmIF9pZ25vcmVfZXJyb3Io
ZXhjZXB0aW9uKToKKyAgICByZXR1cm4gKGdldGF0dHIoZXhjZXB0aW9uLCAnZXJybm8nLCBOb25l
KSBpbiBfSUdOT1JFRF9FUlJPUyBvcgorICAgICAgICAgICAgZ2V0YXR0cihleGNlcHRpb24sICd3
aW5lcnJvcicsIE5vbmUpIGluIF9JR05PUkVEX1dJTkVSUk9SUykKKworCitkZWYgX3B5Ml9mc2Vu
Y29kZShwYXJ0cyk6CisgICAgIyBweTIgPT4gbWluaW1hbCB1bmljb2RlIHN1cHBvcnQKKyAgICBh
c3NlcnQgc2l4LlBZMgorICAgIHJldHVybiBbcGFydC5lbmNvZGUoJ2FzY2lpJykgaWYgaXNpbnN0
YW5jZShwYXJ0LCBzaXgudGV4dF90eXBlKQorICAgICAgICAgICAgZWxzZSBwYXJ0IGZvciBwYXJ0
IGluIHBhcnRzXQorCisKK2RlZiBfdHJ5X2V4Y2VwdF9maWxlZXhpc3RzZXJyb3IodHJ5X2Z1bmMs
IGV4Y2VwdF9mdW5jLCBlbHNlX2Z1bmM9Tm9uZSk6CisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+
PSAoMywgMyk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRyeV9mdW5jKCkKKyAgICAgICAg
ZXhjZXB0IEZpbGVFeGlzdHNFcnJvciBhcyBleGM6CisgICAgICAgICAgICBleGNlcHRfZnVuYyhl
eGMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBlbHNlX2Z1bmMgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICAgICAgZWxzZV9mdW5jKCkKKyAgICBlbHNlOgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICB0cnlfZnVuYygpCisgICAgICAgIGV4Y2VwdCBFbnZpcm9ubWVudEVycm9yIGFz
IGV4YzoKKyAgICAgICAgICAgIGlmIGV4Yy5lcnJubyAhPSBFRVhJU1Q6CisgICAgICAgICAgICAg
ICAgcmFpc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXhjZXB0X2Z1bmMo
ZXhjKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgZWxzZV9mdW5jIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgIGVsc2VfZnVuYygpCisKKworZGVmIF90cnlfZXhjZXB0X2ZpbGVu
b3Rmb3VuZGVycm9yKHRyeV9mdW5jLCBleGNlcHRfZnVuYyk6CisgICAgaWYgc3lzLnZlcnNpb25f
aW5mbyA+PSAoMywgMyk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRyeV9mdW5jKCkKKyAg
ICAgICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yIGFzIGV4YzoKKyAgICAgICAgICAgIGV4Y2Vw
dF9mdW5jKGV4YykKKyAgICBlbGlmIG9zLm5hbWUgIT0gJ250JzoKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgdHJ5X2Z1bmMoKQorICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvciBhcyBl
eGM6CisgICAgICAgICAgICBpZiBleGMuZXJybm8gIT0gRU5PRU5UOgorICAgICAgICAgICAgICAg
IHJhaXNlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGV4Y2VwdF9mdW5jKGV4
YykKKyAgICBlbHNlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0cnlfZnVuYygpCisgICAg
ICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3IgYXMgZXhjOgorICAgICAgICAgICAgIyBlcnJubyBjb250
YWlucyB3aW5lcnJvcgorICAgICAgICAgICAgIyAyID0gZmlsZSBub3QgZm91bmQKKyAgICAgICAg
ICAgICMgMyA9IHBhdGggbm90IGZvdW5kCisgICAgICAgICAgICBpZiBleGMuZXJybm8gbm90IGlu
ICgyLCAzKToKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBleGNlcHRfZnVuYyhleGMpCisgICAgICAgIGV4Y2VwdCBFbnZpcm9ubWVudEVy
cm9yIGFzIGV4YzoKKyAgICAgICAgICAgIGlmIGV4Yy5lcnJubyAhPSBFTk9FTlQ6CisgICAgICAg
ICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXhjZXB0
X2Z1bmMoZXhjKQorCisKK2RlZiBfdHJ5X2V4Y2VwdF9wZXJtaXNzaW9uZXJyb3JfaXRlcih0cnlf
aXRlciwgZXhjZXB0X2l0ZXIpOgorICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDMpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBmb3IgeCBpbiB0cnlfaXRlcigpOgorICAgICAgICAg
ICAgICAgIHlpZWxkIHgKKyAgICAgICAgZXhjZXB0IFBlcm1pc3Npb25FcnJvciBhcyBleGM6Cisg
ICAgICAgICAgICBmb3IgeCBpbiBleGNlcHRfaXRlcihleGMpOgorICAgICAgICAgICAgICAgIHlp
ZWxkIHgKKyAgICBlbHNlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmb3IgeCBpbiB0cnlf
aXRlcigpOgorICAgICAgICAgICAgICAgIHlpZWxkIHgKKyAgICAgICAgZXhjZXB0IEVudmlyb25t
ZW50RXJyb3IgYXMgZXhjOgorICAgICAgICAgICAgaWYgZXhjLmVycm5vIG5vdCBpbiAoRVBFUk0s
IEVBQ0NFUyk6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgZm9yIHggaW4gZXhjZXB0X2l0ZXIoZXhjKToKKyAgICAgICAgICAgICAgICAg
ICAgeWllbGQgeAorCisKK2RlZiBfd2luMzJfZ2V0X3VuaXF1ZV9wYXRoX2lkKHBhdGgpOgorICAg
ICMgZ2V0IGZpbGUgaW5mb3JtYXRpb24sIG5lZWRlZCBmb3Igc2FtZWZpbGUgb24gb2xkZXIgUHl0
aG9uIHZlcnNpb25zCisgICAgIyBzZWUgaHR0cDovL3RpbWdvbGRlbi5tZS51ay9weXRob24vd2lu
MzJfaG93X2RvX2kvCisgICAgIyBzZWVfaWZfdHdvX2ZpbGVzX2FyZV90aGVfc2FtZV9maWxlLmh0
bWwKKyAgICBmcm9tIGN0eXBlcyBpbXBvcnQgUE9JTlRFUiwgU3RydWN0dXJlLCBXaW5FcnJvcgor
ICAgIGZyb20gY3R5cGVzLndpbnR5cGVzIGltcG9ydCBEV09SRCwgSEFORExFLCBCT09MCisKKyAg
ICBjbGFzcyBGSUxFVElNRShTdHJ1Y3R1cmUpOgorICAgICAgICBfZmllbGRzXyA9IFsoImRhdGV0
aW1lX2xvIiwgRFdPUkQpLAorICAgICAgICAgICAgICAgICAgICAoImRhdGV0aW1lX2hpIiwgRFdP
UkQpLAorICAgICAgICAgICAgICAgICAgICBdCisKKyAgICBjbGFzcyBCWV9IQU5ETEVfRklMRV9J
TkZPUk1BVElPTihTdHJ1Y3R1cmUpOgorICAgICAgICBfZmllbGRzXyA9IFsoImF0dHJpYnV0ZXMi
LCBEV09SRCksCisgICAgICAgICAgICAgICAgICAgICgiY3JlYXRlZF9hdCIsIEZJTEVUSU1FKSwK
KyAgICAgICAgICAgICAgICAgICAgKCJhY2Nlc3NlZF9hdCIsIEZJTEVUSU1FKSwKKyAgICAgICAg
ICAgICAgICAgICAgKCJ3cml0dGVuX2F0IiwgRklMRVRJTUUpLAorICAgICAgICAgICAgICAgICAg
ICAoInZvbHVtZSIsIERXT1JEKSwKKyAgICAgICAgICAgICAgICAgICAgKCJmaWxlX2hpIiwgRFdP
UkQpLAorICAgICAgICAgICAgICAgICAgICAoImZpbGVfbG8iLCBEV09SRCksCisgICAgICAgICAg
ICAgICAgICAgICgibl9saW5rcyIsIERXT1JEKSwKKyAgICAgICAgICAgICAgICAgICAgKCJpbmRl
eF9oaSIsIERXT1JEKSwKKyAgICAgICAgICAgICAgICAgICAgKCJpbmRleF9sbyIsIERXT1JEKSwK
KyAgICAgICAgICAgICAgICAgICAgXQorCisgICAgQ3JlYXRlRmlsZSA9IGN0eXBlcy53aW5kbGwu
a2VybmVsMzIuQ3JlYXRlRmlsZVcKKyAgICBDcmVhdGVGaWxlLmFyZ3R5cGVzID0gW2N0eXBlcy5j
X3djaGFyX3AsIERXT1JELCBEV09SRCwgY3R5cGVzLmNfdm9pZF9wLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRFdPUkQsIERXT1JELCBIQU5ETEVdCisgICAgQ3JlYXRlRmlsZS5yZXN0eXBl
ID0gSEFORExFCisgICAgR2V0RmlsZUluZm9ybWF0aW9uQnlIYW5kbGUgPSAoCisgICAgICAgIGN0
eXBlcy53aW5kbGwua2VybmVsMzIuR2V0RmlsZUluZm9ybWF0aW9uQnlIYW5kbGUpCisgICAgR2V0
RmlsZUluZm9ybWF0aW9uQnlIYW5kbGUuYXJndHlwZXMgPSBbCisgICAgICAgIEhBTkRMRSwgUE9J
TlRFUihCWV9IQU5ETEVfRklMRV9JTkZPUk1BVElPTildCisgICAgR2V0RmlsZUluZm9ybWF0aW9u
QnlIYW5kbGUucmVzdHlwZSA9IEJPT0wKKyAgICBDbG9zZUhhbmRsZSA9IGN0eXBlcy53aW5kbGwu
a2VybmVsMzIuQ2xvc2VIYW5kbGUKKyAgICBDbG9zZUhhbmRsZS5hcmd0eXBlcyA9IFtIQU5ETEVd
CisgICAgQ2xvc2VIYW5kbGUucmVzdHlwZSA9IEJPT0wKKyAgICBHRU5FUklDX1JFQUQgPSAweDgw
MDAwMDAwCisgICAgRklMRV9TSEFSRV9SRUFEID0gMHgwMDAwMDAwMQorICAgIEZJTEVfRkxBR19C
QUNLVVBfU0VNQU5USUNTID0gMHgwMjAwMDAwMAorICAgIE9QRU5fRVhJU1RJTkcgPSAzCisgICAg
aWYgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAgICAgZmxhZ3MgPSBGSUxFX0ZMQUdfQkFDS1VQ
X1NFTUFOVElDUworICAgIGVsc2U6CisgICAgICAgIGZsYWdzID0gMAorICAgIGhmaWxlID0gQ3Jl
YXRlRmlsZShwYXRoLCBHRU5FUklDX1JFQUQsIEZJTEVfU0hBUkVfUkVBRCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgTm9uZSwgT1BFTl9FWElTVElORywgZmxhZ3MsIE5vbmUpCisgICAgaWYgaGZp
bGUgPT0gMHhmZmZmZmZmZjoKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMyk6
CisgICAgICAgICAgICByYWlzZSBGaWxlTm90Rm91bmRFcnJvcihwYXRoKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgZXhjID0gT1NFcnJvcigiZmlsZSBub3QgZm91bmQ6IHBhdGgiKQorICAg
ICAgICAgICAgZXhjLmVycm5vID0gRU5PRU5UCisgICAgICAgICAgICByYWlzZSBleGMKKyAgICBp
bmZvID0gQllfSEFORExFX0ZJTEVfSU5GT1JNQVRJT04oKQorICAgIHN1Y2Nlc3MgPSBHZXRGaWxl
SW5mb3JtYXRpb25CeUhhbmRsZShoZmlsZSwgaW5mbykKKyAgICBDbG9zZUhhbmRsZShoZmlsZSkK
KyAgICBpZiBzdWNjZXNzID09IDA6CisgICAgICAgIHJhaXNlIFdpbkVycm9yKCkKKyAgICByZXR1
cm4gaW5mby52b2x1bWUsIGluZm8uaW5kZXhfaGksIGluZm8uaW5kZXhfbG8KKworCitkZWYgX2lz
X3dpbGRjYXJkX3BhdHRlcm4ocGF0KToKKyAgICAjIFdoZXRoZXIgdGhpcyBwYXR0ZXJuIG5lZWRz
IGFjdHVhbCBtYXRjaGluZyB1c2luZyBmbm1hdGNoLCBvciBjYW4KKyAgICAjIGJlIGxvb2tlZCB1
cCBkaXJlY3RseSBhcyBhIGZpbGUuCisgICAgcmV0dXJuICIqIiBpbiBwYXQgb3IgIj8iIGluIHBh
dCBvciAiWyIgaW4gcGF0CisKKworY2xhc3MgX0ZsYXZvdXIob2JqZWN0KToKKworICAgICIiIkEg
Zmxhdm91ciBpbXBsZW1lbnRzIGEgcGFydGljdWxhciAocGxhdGZvcm0tc3BlY2lmaWMpIHNldCBv
ZiBwYXRoCisgICAgc2VtYW50aWNzLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAg
ICAgICBzZWxmLmpvaW4gPSBzZWxmLnNlcC5qb2luCisKKyAgICBkZWYgcGFyc2VfcGFydHMoc2Vs
ZiwgcGFydHMpOgorICAgICAgICBpZiBzaXguUFkyOgorICAgICAgICAgICAgcGFydHMgPSBfcHky
X2ZzZW5jb2RlKHBhcnRzKQorICAgICAgICBwYXJzZWQgPSBbXQorICAgICAgICBzZXAgPSBzZWxm
LnNlcAorICAgICAgICBhbHRzZXAgPSBzZWxmLmFsdHNlcAorICAgICAgICBkcnYgPSByb290ID0g
JycKKyAgICAgICAgaXQgPSByZXZlcnNlZChwYXJ0cykKKyAgICAgICAgZm9yIHBhcnQgaW4gaXQ6
CisgICAgICAgICAgICBpZiBub3QgcGFydDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICAgICAgaWYgYWx0c2VwOgorICAgICAgICAgICAgICAgIHBhcnQgPSBwYXJ0LnJlcGxhY2Uo
YWx0c2VwLCBzZXApCisgICAgICAgICAgICBkcnYsIHJvb3QsIHJlbCA9IHNlbGYuc3BsaXRyb290
KHBhcnQpCisgICAgICAgICAgICBpZiBzZXAgaW4gcmVsOgorICAgICAgICAgICAgICAgIGZvciB4
IGluIHJldmVyc2VkKHJlbC5zcGxpdChzZXApKToKKyAgICAgICAgICAgICAgICAgICAgaWYgeCBh
bmQgeCAhPSAnLic6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQuYXBwZW5kKGludGVy
bih4KSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgcmVsIGFuZCByZWwg
IT0gJy4nOgorICAgICAgICAgICAgICAgICAgICBwYXJzZWQuYXBwZW5kKGludGVybihyZWwpKQor
ICAgICAgICAgICAgaWYgZHJ2IG9yIHJvb3Q6CisgICAgICAgICAgICAgICAgaWYgbm90IGRydjoK
KyAgICAgICAgICAgICAgICAgICAgIyBJZiBubyBkcml2ZSBpcyBwcmVzZW50LCB0cnkgdG8gZmlu
ZCBvbmUgaW4gdGhlIHByZXZpb3VzCisgICAgICAgICAgICAgICAgICAgICMgcGFydHMuIFRoaXMg
bWFrZXMgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIGUuZy4KKyAgICAgICAgICAgICAgICAgICAgIyAo
IkM6IiwgIi8iLCAiYSIpIHJlYXNvbmFibHkgaW50dWl0aXZlLgorICAgICAgICAgICAgICAgICAg
ICBmb3IgcGFydCBpbiBpdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBwYXJ0Ogor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiBhbHRzZXA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydCA9IHBhcnQu
cmVwbGFjZShhbHRzZXAsIHNlcCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGRydiA9IHNlbGYu
c3BsaXRyb290KHBhcnQpWzBdCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBkcnY6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBicmVhaworICAg
ICAgICBpZiBkcnYgb3Igcm9vdDoKKyAgICAgICAgICAgIHBhcnNlZC5hcHBlbmQoZHJ2ICsgcm9v
dCkKKyAgICAgICAgcGFyc2VkLnJldmVyc2UoKQorICAgICAgICByZXR1cm4gZHJ2LCByb290LCBw
YXJzZWQKKworICAgIGRlZiBqb2luX3BhcnNlZF9wYXJ0cyhzZWxmLCBkcnYsIHJvb3QsIHBhcnRz
LCBkcnYyLCByb290MiwgcGFydHMyKToKKyAgICAgICAgIiIiCisgICAgICAgIEpvaW4gdGhlIHR3
byBwYXRocyByZXByZXNlbnRlZCBieSB0aGUgcmVzcGVjdGl2ZQorICAgICAgICAoZHJpdmUsIHJv
b3QsIHBhcnRzKSB0dXBsZXMuICBSZXR1cm4gYSBuZXcgKGRyaXZlLCByb290LCBwYXJ0cykgdHVw
bGUuCisgICAgICAgICIiIgorICAgICAgICBpZiByb290MjoKKyAgICAgICAgICAgIGlmIG5vdCBk
cnYyIGFuZCBkcnY6CisgICAgICAgICAgICAgICAgcmV0dXJuIGRydiwgcm9vdDIsIFtkcnYgKyBy
b290Ml0gKyBwYXJ0czJbMTpdCisgICAgICAgIGVsaWYgZHJ2MjoKKyAgICAgICAgICAgIGlmIGRy
djIgPT0gZHJ2IG9yIHNlbGYuY2FzZWZvbGQoZHJ2MikgPT0gc2VsZi5jYXNlZm9sZChkcnYpOgor
ICAgICAgICAgICAgICAgICMgU2FtZSBkcml2ZSA9PiBzZWNvbmQgcGF0aCBpcyByZWxhdGl2ZSB0
byB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICByZXR1cm4gZHJ2LCByb290LCBwYXJ0cyArIHBh
cnRzMlsxOl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgU2Vjb25kIHBhdGggaXMgbm9u
LWFuY2hvcmVkIChjb21tb24gY2FzZSkKKyAgICAgICAgICAgIHJldHVybiBkcnYsIHJvb3QsIHBh
cnRzICsgcGFydHMyCisgICAgICAgIHJldHVybiBkcnYyLCByb290MiwgcGFydHMyCisKKworY2xh
c3MgX1dpbmRvd3NGbGF2b3VyKF9GbGF2b3VyKToKKyAgICAjIFJlZmVyZW5jZSBmb3IgV2luZG93
cyBwYXRocyBjYW4gYmUgZm91bmQgYXQKKyAgICAjIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20v
ZW4tdXMvbGlicmFyeS9hYTM2NTI0NyUyOHY9dnMuODUlMjkuYXNweAorCisgICAgc2VwID0gJ1xc
JworICAgIGFsdHNlcCA9ICcvJworICAgIGhhc19kcnYgPSBUcnVlCisgICAgcGF0aG1vZCA9IG50
cGF0aAorCisgICAgaXNfc3VwcG9ydGVkID0gKG9zLm5hbWUgPT0gJ250JykKKworICAgIGRyaXZl
X2xldHRlcnMgPSBzZXQoJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5P
UFFSU1RVVldYWVonKQorICAgIGV4dF9uYW1lc3BhY2VfcHJlZml4ID0gJ1xcXFw/XFwnCisKKyAg
ICByZXNlcnZlZF9uYW1lcyA9ICgKKyAgICAgICAgc2V0KFsnQ09OJywgJ1BSTicsICdBVVgnLCAn
TlVMJ10pIHwKKyAgICAgICAgc2V0KFsnQ09NJWQnICUgaSBmb3IgaSBpbiByYW5nZSgxLCAxMCld
KSB8CisgICAgICAgIHNldChbJ0xQVCVkJyAlIGkgZm9yIGkgaW4gcmFuZ2UoMSwgMTApXSkKKyAg
ICAgICAgKQorCisgICAgIyBJbnRlcmVzdGluZyBmaW5kaW5ncyBhYm91dCBleHRlbmRlZCBwYXRo
czoKKyAgICAjIC0gJ1xcP1xjOlxhJywgJy8vPy9jOlxhJyBhbmQgJy8vPy9jOi9hJyBhcmUgYWxs
IHN1cHBvcnRlZAorICAgICMgICBidXQgJ1xcP1xjOi9hJyBpcyBub3QKKyAgICAjIC0gZXh0ZW5k
ZWQgcGF0aHMgYXJlIGFsd2F5cyBhYnNvbHV0ZTsgInJlbGF0aXZlIiBleHRlbmRlZCBwYXRocyB3
aWxsCisgICAgIyAgIGZhaWwuCisKKyAgICBkZWYgc3BsaXRyb290KHNlbGYsIHBhcnQsIHNlcD1z
ZXApOgorICAgICAgICBmaXJzdCA9IHBhcnRbMDoxXQorICAgICAgICBzZWNvbmQgPSBwYXJ0WzE6
Ml0KKyAgICAgICAgaWYgKHNlY29uZCA9PSBzZXAgYW5kIGZpcnN0ID09IHNlcCk6CisgICAgICAg
ICAgICAjIFhYWCBleHRlbmRlZCBwYXRocyBzaG91bGQgYWxzbyBkaXNhYmxlIHRoZSBjb2xsYXBz
aW5nIG9mICIuIgorICAgICAgICAgICAgIyBjb21wb25lbnRzIChhY2NvcmRpbmcgdG8gTVNETiBk
b2NzKS4KKyAgICAgICAgICAgIHByZWZpeCwgcGFydCA9IHNlbGYuX3NwbGl0X2V4dGVuZGVkX3Bh
dGgocGFydCkKKyAgICAgICAgICAgIGZpcnN0ID0gcGFydFswOjFdCisgICAgICAgICAgICBzZWNv
bmQgPSBwYXJ0WzE6Ml0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByZWZpeCA9ICcnCisg
ICAgICAgIHRoaXJkID0gcGFydFsyOjNdCisgICAgICAgIGlmIChzZWNvbmQgPT0gc2VwIGFuZCBm
aXJzdCA9PSBzZXAgYW5kIHRoaXJkICE9IHNlcCk6CisgICAgICAgICAgICAjIGlzIGEgVU5DIHBh
dGg6CisgICAgICAgICAgICAjIHZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2diByb290CisgICAgICAgICAg
ICAjIFxcbWFjaGluZVxtb3VudHBvaW50XGRpcmVjdG9yeVxldGNcLi4uCisgICAgICAgICAgICAj
ICAgICAgICAgICAgZGlyZWN0b3J5IF5eXl5eXl5eXl5eXl5eCisgICAgICAgICAgICBpbmRleCA9
IHBhcnQuZmluZChzZXAsIDIpCisgICAgICAgICAgICBpZiBpbmRleCAhPSAtMToKKyAgICAgICAg
ICAgICAgICBpbmRleDIgPSBwYXJ0LmZpbmQoc2VwLCBpbmRleCArIDEpCisgICAgICAgICAgICAg
ICAgIyBhIFVOQyBwYXRoIGNhbid0IGhhdmUgdHdvIHNsYXNoZXMgaW4gYSByb3cKKyAgICAgICAg
ICAgICAgICAjIChhZnRlciB0aGUgaW5pdGlhbCB0d28pCisgICAgICAgICAgICAgICAgaWYgaW5k
ZXgyICE9IGluZGV4ICsgMToKKyAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXgyID09IC0xOgor
ICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgyID0gbGVuKHBhcnQpCisgICAgICAgICAgICAg
ICAgICAgIGlmIHByZWZpeDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVmaXgg
KyBwYXJ0WzE6aW5kZXgyXSwgc2VwLCBwYXJ0W2luZGV4MiArIDE6XQorICAgICAgICAgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcnRbOmluZGV4Ml0s
IHNlcCwgcGFydFtpbmRleDIgKyAxOl0KKyAgICAgICAgZHJ2ID0gcm9vdCA9ICcnCisgICAgICAg
IGlmIHNlY29uZCA9PSAnOicgYW5kIGZpcnN0IGluIHNlbGYuZHJpdmVfbGV0dGVyczoKKyAgICAg
ICAgICAgIGRydiA9IHBhcnRbOjJdCisgICAgICAgICAgICBwYXJ0ID0gcGFydFsyOl0KKyAgICAg
ICAgICAgIGZpcnN0ID0gdGhpcmQKKyAgICAgICAgaWYgZmlyc3QgPT0gc2VwOgorICAgICAgICAg
ICAgcm9vdCA9IGZpcnN0CisgICAgICAgICAgICBwYXJ0ID0gcGFydC5sc3RyaXAoc2VwKQorICAg
ICAgICByZXR1cm4gcHJlZml4ICsgZHJ2LCByb290LCBwYXJ0CisKKyAgICBkZWYgY2FzZWZvbGQo
c2VsZiwgcyk6CisgICAgICAgIHJldHVybiBzLmxvd2VyKCkKKworICAgIGRlZiBjYXNlZm9sZF9w
YXJ0cyhzZWxmLCBwYXJ0cyk6CisgICAgICAgIHJldHVybiBbcC5sb3dlcigpIGZvciBwIGluIHBh
cnRzXQorCisgICAgZGVmIHJlc29sdmUoc2VsZiwgcGF0aCwgc3RyaWN0PUZhbHNlKToKKyAgICAg
ICAgcyA9IHN0cihwYXRoKQorICAgICAgICBpZiBub3QgczoKKyAgICAgICAgICAgIHJldHVybiBv
cy5nZXRjd2QoKQorICAgICAgICBwcmV2aW91c19zID0gTm9uZQorICAgICAgICBpZiBfZ2V0Zmlu
YWxwYXRobmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIHN0cmljdDoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gc2VsZi5fZXh0X3RvX25vcm1hbChfZ2V0ZmluYWxwYXRobmFtZShzKSkK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBFbmQgb2YgdGhlIHBhdGggYWZ0
ZXIgdGhlIGZpcnN0IG9uZSBub3QgZm91bmQKKyAgICAgICAgICAgICAgICB0YWlsX3BhcnRzID0g
W10KKworICAgICAgICAgICAgICAgIGRlZiBfdHJ5X2Z1bmMoKToKKyAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0WzBdID0gc2VsZi5fZXh0X3RvX25vcm1hbChfZ2V0ZmluYWxwYXRobmFtZShzKSkK
KyAgICAgICAgICAgICAgICAgICAgIyBpZiB0aGVyZSB3YXMgbm8gZXhjZXB0aW9uLCBzZXQgZmxh
ZyB0byAwCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdFsxXSA9IDAKKworICAgICAgICAgICAg
ICAgIGRlZiBfZXhjX2Z1bmMoZXhjKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworCisgICAg
ICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gW05v
bmUsIDFdCisgICAgICAgICAgICAgICAgICAgIF90cnlfZXhjZXB0X2ZpbGVub3Rmb3VuZGVycm9y
KF90cnlfZnVuYywgX2V4Y19mdW5jKQorICAgICAgICAgICAgICAgICAgICBpZiByZXN1bHRbMV0g
PT0gMTogICMgZmlsZSBub3QgZm91bmQgZXhjZXB0aW9uIHJhaXNlZAorICAgICAgICAgICAgICAg
ICAgICAgICAgcHJldmlvdXNfcyA9IHMKKyAgICAgICAgICAgICAgICAgICAgICAgIHMsIHRhaWwg
PSBvcy5wYXRoLnNwbGl0KHMpCisgICAgICAgICAgICAgICAgICAgICAgICB0YWlsX3BhcnRzLmFw
cGVuZCh0YWlsKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHJldmlvdXNfcyA9PSBzOgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXRoCisgICAgICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gcmVzdWx0WzBdCisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHMsICpyZXZlcnNlZCh0YWlsX3Bh
cnRzKSkKKyAgICAgICAgIyBNZWFucyBmYWxsYmFjayBvbiBhYnNvbHV0ZQorICAgICAgICByZXR1
cm4gTm9uZQorCisgICAgZGVmIF9zcGxpdF9leHRlbmRlZF9wYXRoKHNlbGYsIHMsIGV4dF9wcmVm
aXg9ZXh0X25hbWVzcGFjZV9wcmVmaXgpOgorICAgICAgICBwcmVmaXggPSAnJworICAgICAgICBp
ZiBzLnN0YXJ0c3dpdGgoZXh0X3ByZWZpeCk6CisgICAgICAgICAgICBwcmVmaXggPSBzWzo0XQor
ICAgICAgICAgICAgcyA9IHNbNDpdCisgICAgICAgICAgICBpZiBzLnN0YXJ0c3dpdGgoJ1VOQ1xc
Jyk6CisgICAgICAgICAgICAgICAgcHJlZml4ICs9IHNbOjNdCisgICAgICAgICAgICAgICAgcyA9
ICdcXCcgKyBzWzM6XQorICAgICAgICByZXR1cm4gcHJlZml4LCBzCisKKyAgICBkZWYgX2V4dF90
b19ub3JtYWwoc2VsZiwgcyk6CisgICAgICAgICMgVHVybiBiYWNrIGFuIGV4dGVuZGVkIHBhdGgg
aW50byBhIG5vcm1hbCBET1MtbGlrZSBwYXRoCisgICAgICAgIHJldHVybiBzZWxmLl9zcGxpdF9l
eHRlbmRlZF9wYXRoKHMpWzFdCisKKyAgICBkZWYgaXNfcmVzZXJ2ZWQoc2VsZiwgcGFydHMpOgor
ICAgICAgICAjIE5PVEU6IHRoZSBydWxlcyBmb3IgcmVzZXJ2ZWQgbmFtZXMgc2VlbSBzb21ld2hh
dCBjb21wbGljYXRlZAorICAgICAgICAjIChlLmcuIHIiLi5cTlVMIiBpcyByZXNlcnZlZCBidXQg
bm90IHIiZm9vXE5VTCIpLgorICAgICAgICAjIFdlIGVyciBvbiB0aGUgc2lkZSBvZiBjYXV0aW9u
IGFuZCByZXR1cm4gVHJ1ZSBmb3IgcGF0aHMgd2hpY2ggYXJlCisgICAgICAgICMgbm90IGNvbnNp
ZGVyZWQgcmVzZXJ2ZWQgYnkgV2luZG93cy4KKyAgICAgICAgaWYgbm90IHBhcnRzOgorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIHBhcnRzWzBdLnN0YXJ0c3dpdGgoJ1xcXFwn
KToKKyAgICAgICAgICAgICMgVU5DIHBhdGhzIGFyZSBuZXZlciByZXNlcnZlZAorICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBwYXJ0c1stMV0ucGFydGl0aW9uKCcuJylb
MF0udXBwZXIoKSBpbiBzZWxmLnJlc2VydmVkX25hbWVzCisKKyAgICBkZWYgbWFrZV91cmkoc2Vs
ZiwgcGF0aCk6CisgICAgICAgICMgVW5kZXIgV2luZG93cywgZmlsZSBVUklzIHVzZSB0aGUgVVRG
LTggZW5jb2RpbmcuCisgICAgICAgIGRyaXZlID0gcGF0aC5kcml2ZQorICAgICAgICBpZiBsZW4o
ZHJpdmUpID09IDIgYW5kIGRyaXZlWzFdID09ICc6JzoKKyAgICAgICAgICAgICMgSXQncyBhIHBh
dGggb24gYSBsb2NhbCBkcml2ZSA9PiAnZmlsZTovLy9jOi9hL2InCisgICAgICAgICAgICByZXN0
ID0gcGF0aC5hc19wb3NpeCgpWzI6XS5sc3RyaXAoJy8nKQorICAgICAgICAgICAgcmV0dXJuICdm
aWxlOi8vLyVzLyVzJyAlICgKKyAgICAgICAgICAgICAgICBkcml2ZSwgdXJscXVvdGVfZnJvbV9i
eXRlcyhyZXN0LmVuY29kZSgndXRmLTgnKSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAj
IEl0J3MgYSBwYXRoIG9uIGEgbmV0d29yayBkcml2ZSA9PiAnZmlsZTovL2hvc3Qvc2hhcmUvYS9i
JworICAgICAgICAgICAgcmV0dXJuICdmaWxlOicgKyB1cmxxdW90ZV9mcm9tX2J5dGVzKAorICAg
ICAgICAgICAgICAgIHBhdGguYXNfcG9zaXgoKS5lbmNvZGUoJ3V0Zi04JykpCisKKyAgICBkZWYg
Z2V0aG9tZWRpcihzZWxmLCB1c2VybmFtZSk6CisgICAgICAgIGlmICdIT01FJyBpbiBvcy5lbnZp
cm9uOgorICAgICAgICAgICAgdXNlcmhvbWUgPSBvcy5lbnZpcm9uWydIT01FJ10KKyAgICAgICAg
ZWxpZiAnVVNFUlBST0ZJTEUnIGluIG9zLmVudmlyb246CisgICAgICAgICAgICB1c2VyaG9tZSA9
IG9zLmVudmlyb25bJ1VTRVJQUk9GSUxFJ10KKyAgICAgICAgZWxpZiAnSE9NRVBBVEgnIGluIG9z
LmVudmlyb246CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZHJ2ID0gb3MuZW52
aXJvblsnSE9NRURSSVZFJ10KKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAg
ICAgICAgICBkcnYgPSAnJworICAgICAgICAgICAgdXNlcmhvbWUgPSBkcnYgKyBvcy5lbnZpcm9u
WydIT01FUEFUSCddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJy
b3IoIkNhbid0IGRldGVybWluZSBob21lIGRpcmVjdG9yeSIpCisKKyAgICAgICAgaWYgdXNlcm5h
bWU6CisgICAgICAgICAgICAjIFRyeSB0byBndWVzcyB1c2VyIGhvbWUgZGlyZWN0b3J5LiAgQnkg
ZGVmYXVsdCBhbGwgdXNlcnMKKyAgICAgICAgICAgICMgZGlyZWN0b3JpZXMgYXJlIGxvY2F0ZWQg
aW4gdGhlIHNhbWUgcGxhY2UgYW5kIGFyZSBuYW1lZCBieQorICAgICAgICAgICAgIyBjb3JyZXNw
b25kaW5nIHVzZXJuYW1lcy4gIElmIGN1cnJlbnQgdXNlciBob21lIGRpcmVjdG9yeSBwb2ludHMK
KyAgICAgICAgICAgICMgdG8gbm9uc3RhbmRhcmQgcGxhY2UsIHRoaXMgZ3Vlc3MgaXMgbGlrZWx5
IHdyb25nLgorICAgICAgICAgICAgaWYgb3MuZW52aXJvblsnVVNFUk5BTUUnXSAhPSB1c2VybmFt
ZToKKyAgICAgICAgICAgICAgICBkcnYsIHJvb3QsIHBhcnRzID0gc2VsZi5wYXJzZV9wYXJ0cygo
dXNlcmhvbWUsKSkKKyAgICAgICAgICAgICAgICBpZiBwYXJ0c1stMV0gIT0gb3MuZW52aXJvblsn
VVNFUk5BTUUnXToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJDYW4n
dCBkZXRlcm1pbmUgaG9tZSBkaXJlY3RvcnkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImZvciAlciIgJSB1c2VybmFtZSkKKyAgICAgICAgICAgICAgICBwYXJ0c1st
MV0gPSB1c2VybmFtZQorICAgICAgICAgICAgICAgIGlmIGRydiBvciByb290OgorICAgICAgICAg
ICAgICAgICAgICB1c2VyaG9tZSA9IGRydiArIHJvb3QgKyBzZWxmLmpvaW4ocGFydHNbMTpdKQor
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHVzZXJob21lID0gc2Vs
Zi5qb2luKHBhcnRzKQorICAgICAgICByZXR1cm4gdXNlcmhvbWUKKworCitjbGFzcyBfUG9zaXhG
bGF2b3VyKF9GbGF2b3VyKToKKyAgICBzZXAgPSAnLycKKyAgICBhbHRzZXAgPSAnJworICAgIGhh
c19kcnYgPSBGYWxzZQorICAgIHBhdGhtb2QgPSBwb3NpeHBhdGgKKworICAgIGlzX3N1cHBvcnRl
ZCA9IChvcy5uYW1lICE9ICdudCcpCisKKyAgICBkZWYgc3BsaXRyb290KHNlbGYsIHBhcnQsIHNl
cD1zZXApOgorICAgICAgICBpZiBwYXJ0IGFuZCBwYXJ0WzBdID09IHNlcDoKKyAgICAgICAgICAg
IHN0cmlwcGVkX3BhcnQgPSBwYXJ0LmxzdHJpcChzZXApCisgICAgICAgICAgICAjIEFjY29yZGlu
ZyB0byBQT1NJWCBwYXRoIHJlc29sdXRpb246CisgICAgICAgICAgICAjIGh0dHA6Ly9wdWJzLm9w
ZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvYmFzZWRlZnMvCisgICAgICAgICAgICAj
IHhiZF9jaGFwMDQuaHRtbCN0YWdfMDRfMTEKKyAgICAgICAgICAgICMgIkEgcGF0aG5hbWUgdGhh
dCBiZWdpbnMgd2l0aCB0d28gc3VjY2Vzc2l2ZSBzbGFzaGVzIG1heSBiZQorICAgICAgICAgICAg
IyBpbnRlcnByZXRlZCBpbiBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIG1hbm5lciwgYWx0aG91
Z2ggbW9yZQorICAgICAgICAgICAgIyB0aGFuIHR3byBsZWFkaW5nIHNsYXNoZXMgc2hhbGwgYmUg
dHJlYXRlZCBhcyBhIHNpbmdsZSBzbGFzaCIuCisgICAgICAgICAgICBpZiBsZW4ocGFydCkgLSBs
ZW4oc3RyaXBwZWRfcGFydCkgPT0gMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gJycsIHNlcCAq
IDIsIHN0cmlwcGVkX3BhcnQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0
dXJuICcnLCBzZXAsIHN0cmlwcGVkX3BhcnQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl
dHVybiAnJywgJycsIHBhcnQKKworICAgIGRlZiBjYXNlZm9sZChzZWxmLCBzKToKKyAgICAgICAg
cmV0dXJuIHMKKworICAgIGRlZiBjYXNlZm9sZF9wYXJ0cyhzZWxmLCBwYXJ0cyk6CisgICAgICAg
IHJldHVybiBwYXJ0cworCisgICAgZGVmIHJlc29sdmUoc2VsZiwgcGF0aCwgc3RyaWN0PUZhbHNl
KToKKyAgICAgICAgc2VwID0gc2VsZi5zZXAKKyAgICAgICAgYWNjZXNzb3IgPSBwYXRoLl9hY2Nl
c3NvcgorICAgICAgICBzZWVuID0ge30KKworICAgICAgICBkZWYgX3Jlc29sdmUocGF0aCwgcmVz
dCk6CisgICAgICAgICAgICBpZiByZXN0LnN0YXJ0c3dpdGgoc2VwKToKKyAgICAgICAgICAgICAg
ICBwYXRoID0gJycKKworICAgICAgICAgICAgZm9yIG5hbWUgaW4gcmVzdC5zcGxpdChzZXApOgor
ICAgICAgICAgICAgICAgIGlmIG5vdCBuYW1lIG9yIG5hbWUgPT0gJy4nOgorICAgICAgICAgICAg
ICAgICAgICAjIGN1cnJlbnQgZGlyCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgICAgICAgICAgaWYgbmFtZSA9PSAnLi4nOgorICAgICAgICAgICAgICAgICAgICAjIHBhcmVu
dCBkaXIKKyAgICAgICAgICAgICAgICAgICAgcGF0aCwgXywgXyA9IHBhdGgucnBhcnRpdGlvbihz
ZXApCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgbmV3cGF0
aCA9IHBhdGggKyBzZXAgKyBuYW1lCisgICAgICAgICAgICAgICAgaWYgbmV3cGF0aCBpbiBzZWVu
OgorICAgICAgICAgICAgICAgICAgICAjIEFscmVhZHkgc2VlbiB0aGlzIHBhdGgKKyAgICAgICAg
ICAgICAgICAgICAgcGF0aCA9IHNlZW5bbmV3cGF0aF0KKyAgICAgICAgICAgICAgICAgICAgaWYg
cGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgdXNlIGNhY2hlZCB2
YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAg
ICAgIyBUaGUgc3ltbGluayBpcyBub3QgcmVzb2x2ZWQsIHNvIHdlIG11c3QgaGF2ZSBhIHN5bWxp
bmsKKyAgICAgICAgICAgICAgICAgICAgIyBsb29wLgorICAgICAgICAgICAgICAgICAgICByYWlz
ZSBSdW50aW1lRXJyb3IoIlN5bWxpbmsgbG9vcCBmcm9tICVyIiAlIG5ld3BhdGgpCisgICAgICAg
ICAgICAgICAgIyBSZXNvbHZlIHRoZSBzeW1ib2xpYyBsaW5rCisgICAgICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSBhY2Nlc3Nvci5yZWFkbGluayhuZXdwYXRo
KQorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICAgICAg
ICAgIGlmIGUuZXJybm8gIT0gRUlOVkFMIGFuZCBzdHJpY3Q6CisgICAgICAgICAgICAgICAgICAg
ICAgICByYWlzZQorICAgICAgICAgICAgICAgICAgICAjIE5vdCBhIHN5bWxpbmssIG9yIG5vbi1z
dHJpY3QgbW9kZS4gV2UganVzdCBsZWF2ZSB0aGUgcGF0aAorICAgICAgICAgICAgICAgICAgICAj
IHVudG91Y2hlZC4KKyAgICAgICAgICAgICAgICAgICAgcGF0aCA9IG5ld3BhdGgKKyAgICAgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWVuW25ld3BhdGhdID0gTm9uZSAg
IyBub3QgcmVzb2x2ZWQgc3ltbGluaworICAgICAgICAgICAgICAgICAgICBwYXRoID0gX3Jlc29s
dmUocGF0aCwgdGFyZ2V0KQorICAgICAgICAgICAgICAgICAgICBzZWVuW25ld3BhdGhdID0gcGF0
aCAgIyByZXNvbHZlZCBzeW1saW5rCisKKyAgICAgICAgICAgIHJldHVybiBwYXRoCisgICAgICAg
ICMgTk9URTogYWNjb3JkaW5nIHRvIFBPU0lYLCBnZXRjd2QoKSBjYW5ub3QgY29udGFpbiBwYXRo
IGNvbXBvbmVudHMKKyAgICAgICAgIyB3aGljaCBhcmUgc3ltbGlua3MuCisgICAgICAgIGJhc2Ug
PSAnJyBpZiBwYXRoLmlzX2Fic29sdXRlKCkgZWxzZSBvcy5nZXRjd2QoKQorICAgICAgICByZXR1
cm4gX3Jlc29sdmUoYmFzZSwgc3RyKHBhdGgpKSBvciBzZXAKKworICAgIGRlZiBpc19yZXNlcnZl
ZChzZWxmLCBwYXJ0cyk6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIG1ha2VfdXJp
KHNlbGYsIHBhdGgpOgorICAgICAgICAjIFdlIHJlcHJlc2VudCB0aGUgcGF0aCB1c2luZyB0aGUg
bG9jYWwgZmlsZXN5c3RlbSBlbmNvZGluZywKKyAgICAgICAgIyBmb3IgcG9ydGFiaWxpdHkgdG8g
b3RoZXIgYXBwbGljYXRpb25zLgorICAgICAgICBicGF0aCA9IGJ5dGVzKHBhdGgpCisgICAgICAg
IHJldHVybiAnZmlsZTovLycgKyB1cmxxdW90ZV9mcm9tX2J5dGVzKGJwYXRoKQorCisgICAgZGVm
IGdldGhvbWVkaXIoc2VsZiwgdXNlcm5hbWUpOgorICAgICAgICBpZiBub3QgdXNlcm5hbWU6Cisg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIG9zLmVudmlyb25bJ0hPTUUn
XQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgIGltcG9ydCBw
d2QKKyAgICAgICAgICAgICAgICByZXR1cm4gcHdkLmdldHB3dWlkKG9zLmdldHVpZCgpKS5wd19k
aXIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGltcG9ydCBwd2QKKyAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHdkLmdldHB3bmFtKHVzZXJuYW1lKS5wd19kaXIK
KyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICByYWlzZSBSdW50
aW1lRXJyb3IoIkNhbid0IGRldGVybWluZSBob21lIGRpcmVjdG9yeSAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJmb3IgJXIiICUgdXNlcm5hbWUpCisKKworX3dpbmRvd3Nf
Zmxhdm91ciA9IF9XaW5kb3dzRmxhdm91cigpCitfcG9zaXhfZmxhdm91ciA9IF9Qb3NpeEZsYXZv
dXIoKQorCisKK2NsYXNzIF9BY2Nlc3NvcjoKKworICAgICIiIkFuIGFjY2Vzc29yIGltcGxlbWVu
dHMgYSBwYXJ0aWN1bGFyIChzeXN0ZW0tc3BlY2lmaWMgb3Igbm90KSB3YXkgb2YKKyAgICBhY2Nl
c3NpbmcgcGF0aHMgb24gdGhlIGZpbGVzeXN0ZW0uIiIiCisKKworY2xhc3MgX05vcm1hbEFjY2Vz
c29yKF9BY2Nlc3Nvcik6CisKKyAgICBkZWYgX3dyYXBfc3RyZnVuYyhzdHJmdW5jKToKKyAgICAg
ICAgQGZ1bmN0b29scy53cmFwcyhzdHJmdW5jKQorICAgICAgICBkZWYgd3JhcHBlZChwYXRob2Jq
LCAqYXJncyk6CisgICAgICAgICAgICByZXR1cm4gc3RyZnVuYyhzdHIocGF0aG9iaiksICphcmdz
KQorICAgICAgICByZXR1cm4gc3RhdGljbWV0aG9kKHdyYXBwZWQpCisKKyAgICBkZWYgX3dyYXBf
YmluYXJ5X3N0cmZ1bmMoc3RyZnVuYyk6CisgICAgICAgIEBmdW5jdG9vbHMud3JhcHMoc3RyZnVu
YykKKyAgICAgICAgZGVmIHdyYXBwZWQocGF0aG9iakEsIHBhdGhvYmpCLCAqYXJncyk6CisgICAg
ICAgICAgICByZXR1cm4gc3RyZnVuYyhzdHIocGF0aG9iakEpLCBzdHIocGF0aG9iakIpLCAqYXJn
cykKKyAgICAgICAgcmV0dXJuIHN0YXRpY21ldGhvZCh3cmFwcGVkKQorCisgICAgc3RhdCA9IF93
cmFwX3N0cmZ1bmMob3Muc3RhdCkKKworICAgIGxzdGF0ID0gX3dyYXBfc3RyZnVuYyhvcy5sc3Rh
dCkKKworICAgIG9wZW4gPSBfd3JhcF9zdHJmdW5jKG9zLm9wZW4pCisKKyAgICBsaXN0ZGlyID0g
X3dyYXBfc3RyZnVuYyhvcy5saXN0ZGlyKQorCisgICAgc2NhbmRpciA9IF93cmFwX3N0cmZ1bmMo
b3Nfc2NhbmRpcikKKworICAgIGNobW9kID0gX3dyYXBfc3RyZnVuYyhvcy5jaG1vZCkKKworICAg
IGlmIGhhc2F0dHIob3MsICJsY2htb2QiKToKKyAgICAgICAgbGNobW9kID0gX3dyYXBfc3RyZnVu
Yyhvcy5sY2htb2QpCisgICAgZWxzZToKKyAgICAgICAgZGVmIGxjaG1vZChzZWxmLCBwYXRob2Jq
LCBtb2RlKToKKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoImxjaG1vZCgp
IG5vdCBhdmFpbGFibGUgb24gdGhpcyBzeXN0ZW0iKQorCisgICAgbWtkaXIgPSBfd3JhcF9zdHJm
dW5jKG9zLm1rZGlyKQorCisgICAgdW5saW5rID0gX3dyYXBfc3RyZnVuYyhvcy51bmxpbmspCisK
KyAgICBybWRpciA9IF93cmFwX3N0cmZ1bmMob3Mucm1kaXIpCisKKyAgICByZW5hbWUgPSBfd3Jh
cF9iaW5hcnlfc3RyZnVuYyhvcy5yZW5hbWUpCisKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49
ICgzLCAzKToKKyAgICAgICAgcmVwbGFjZSA9IF93cmFwX2JpbmFyeV9zdHJmdW5jKG9zLnJlcGxh
Y2UpCisKKyAgICBpZiBudDoKKyAgICAgICAgaWYgc3VwcG9ydHNfc3ltbGlua3M6CisgICAgICAg
ICAgICBzeW1saW5rID0gX3dyYXBfYmluYXJ5X3N0cmZ1bmMob3Muc3ltbGluaykKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGRlZiBzeW1saW5rKGEsIGIsIHRhcmdldF9pc19kaXJlY3Rvcnkp
OgorICAgICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoCisgICAgICAgICAg
ICAgICAgICAgICJzeW1saW5rKCkgbm90IGF2YWlsYWJsZSBvbiB0aGlzIHN5c3RlbSIpCisgICAg
ZWxzZToKKyAgICAgICAgIyBVbmRlciBQT1NJWCwgb3Muc3ltbGluaygpIHRha2VzIHR3byBhcmdz
CisgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgZGVmIHN5bWxpbmsoYSwgYiwgdGFyZ2V0
X2lzX2RpcmVjdG9yeSk6CisgICAgICAgICAgICByZXR1cm4gb3Muc3ltbGluayhzdHIoYSksIHN0
cihiKSkKKworICAgIHV0aW1lID0gX3dyYXBfc3RyZnVuYyhvcy51dGltZSkKKworICAgICMgSGVs
cGVyIGZvciByZXNvbHZlKCkKKyAgICBkZWYgcmVhZGxpbmsoc2VsZiwgcGF0aCk6CisgICAgICAg
IHJldHVybiBvcy5yZWFkbGluayhwYXRoKQorCisKK19ub3JtYWxfYWNjZXNzb3IgPSBfTm9ybWFs
QWNjZXNzb3IoKQorCisKKyMKKyMgR2xvYmJpbmcgaGVscGVycworIworCitkZWYgX21ha2Vfc2Vs
ZWN0b3IocGF0dGVybl9wYXJ0cyk6CisgICAgcGF0ID0gcGF0dGVybl9wYXJ0c1swXQorICAgIGNo
aWxkX3BhcnRzID0gcGF0dGVybl9wYXJ0c1sxOl0KKyAgICBpZiBwYXQgPT0gJyoqJzoKKyAgICAg
ICAgY2xzID0gX1JlY3Vyc2l2ZVdpbGRjYXJkU2VsZWN0b3IKKyAgICBlbGlmICcqKicgaW4gcGF0
OgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgIkludmFsaWQgcGF0dGVy
bjogJyoqJyBjYW4gb25seSBiZSBhbiBlbnRpcmUgcGF0aCBjb21wb25lbnQiKQorICAgIGVsaWYg
X2lzX3dpbGRjYXJkX3BhdHRlcm4ocGF0KToKKyAgICAgICAgY2xzID0gX1dpbGRjYXJkU2VsZWN0
b3IKKyAgICBlbHNlOgorICAgICAgICBjbHMgPSBfUHJlY2lzZVNlbGVjdG9yCisgICAgcmV0dXJu
IGNscyhwYXQsIGNoaWxkX3BhcnRzKQorCisKK2lmIGhhc2F0dHIoZnVuY3Rvb2xzLCAibHJ1X2Nh
Y2hlIik6CisgICAgX21ha2Vfc2VsZWN0b3IgPSBmdW5jdG9vbHMubHJ1X2NhY2hlKCkoX21ha2Vf
c2VsZWN0b3IpCisKKworY2xhc3MgX1NlbGVjdG9yOgorCisgICAgIiIiQSBzZWxlY3RvciBtYXRj
aGVzIGEgc3BlY2lmaWMgZ2xvYiBwYXR0ZXJuIHBhcnQgYWdhaW5zdCB0aGUgY2hpbGRyZW4KKyAg
ICBvZiBhIGdpdmVuIHBhdGguIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY2hpbGRfcGFy
dHMpOgorICAgICAgICBzZWxmLmNoaWxkX3BhcnRzID0gY2hpbGRfcGFydHMKKyAgICAgICAgaWYg
Y2hpbGRfcGFydHM6CisgICAgICAgICAgICBzZWxmLnN1Y2Nlc3NvciA9IF9tYWtlX3NlbGVjdG9y
KGNoaWxkX3BhcnRzKQorICAgICAgICAgICAgc2VsZi5kaXJvbmx5ID0gVHJ1ZQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgc2VsZi5zdWNjZXNzb3IgPSBfVGVybWluYXRpbmdTZWxlY3Rvcigp
CisgICAgICAgICAgICBzZWxmLmRpcm9ubHkgPSBGYWxzZQorCisgICAgZGVmIHNlbGVjdF9mcm9t
KHNlbGYsIHBhcmVudF9wYXRoKToKKyAgICAgICAgIiIiSXRlcmF0ZSBvdmVyIGFsbCBjaGlsZCBw
YXRocyBvZiBgcGFyZW50X3BhdGhgIG1hdGNoZWQgYnkgdGhpcworICAgICAgICBzZWxlY3Rvci4g
IFRoaXMgY2FuIGNvbnRhaW4gcGFyZW50X3BhdGggaXRzZWxmLiIiIgorICAgICAgICBwYXRoX2Ns
cyA9IHR5cGUocGFyZW50X3BhdGgpCisgICAgICAgIGlzX2RpciA9IHBhdGhfY2xzLmlzX2Rpcgor
ICAgICAgICBleGlzdHMgPSBwYXRoX2Nscy5leGlzdHMKKyAgICAgICAgc2NhbmRpciA9IHBhcmVu
dF9wYXRoLl9hY2Nlc3Nvci5zY2FuZGlyCisgICAgICAgIGlmIG5vdCBpc19kaXIocGFyZW50X3Bh
dGgpOgorICAgICAgICAgICAgcmV0dXJuIGl0ZXIoW10pCisgICAgICAgIHJldHVybiBzZWxmLl9z
ZWxlY3RfZnJvbShwYXJlbnRfcGF0aCwgaXNfZGlyLCBleGlzdHMsIHNjYW5kaXIpCisKKworY2xh
c3MgX1Rlcm1pbmF0aW5nU2VsZWN0b3I6CisKKyAgICBkZWYgX3NlbGVjdF9mcm9tKHNlbGYsIHBh
cmVudF9wYXRoLCBpc19kaXIsIGV4aXN0cywgc2NhbmRpcik6CisgICAgICAgIHlpZWxkIHBhcmVu
dF9wYXRoCisKKworY2xhc3MgX1ByZWNpc2VTZWxlY3RvcihfU2VsZWN0b3IpOgorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG5hbWUsIGNoaWxkX3BhcnRzKToKKyAgICAgICAgc2VsZi5uYW1lID0g
bmFtZQorICAgICAgICBfU2VsZWN0b3IuX19pbml0X18oc2VsZiwgY2hpbGRfcGFydHMpCisKKyAg
ICBkZWYgX3NlbGVjdF9mcm9tKHNlbGYsIHBhcmVudF9wYXRoLCBpc19kaXIsIGV4aXN0cywgc2Nh
bmRpcik6CisgICAgICAgIGRlZiB0cnlfaXRlcigpOgorICAgICAgICAgICAgcGF0aCA9IHBhcmVu
dF9wYXRoLl9tYWtlX2NoaWxkX3JlbHBhdGgoc2VsZi5uYW1lKQorICAgICAgICAgICAgaWYgKGlz
X2RpciBpZiBzZWxmLmRpcm9ubHkgZWxzZSBleGlzdHMpKHBhdGgpOgorICAgICAgICAgICAgICAg
IGZvciBwIGluIHNlbGYuc3VjY2Vzc29yLl9zZWxlY3RfZnJvbSgKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHBhdGgsIGlzX2RpciwgZXhpc3RzLCBzY2FuZGlyKToKKyAgICAgICAgICAgICAgICAg
ICAgeWllbGQgcAorCisgICAgICAgIGRlZiBleGNlcHRfaXRlcihleGMpOgorICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgICAgICB5aWVsZAorCisgICAgICAgIGZvciB4IGluIF90cnlfZXhjZXB0
X3Blcm1pc3Npb25lcnJvcl9pdGVyKHRyeV9pdGVyLCBleGNlcHRfaXRlcik6CisgICAgICAgICAg
ICB5aWVsZCB4CisKKworY2xhc3MgX1dpbGRjYXJkU2VsZWN0b3IoX1NlbGVjdG9yKToKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBwYXQsIGNoaWxkX3BhcnRzKToKKyAgICAgICAgc2VsZi5wYXQg
PSByZS5jb21waWxlKGZubWF0Y2gudHJhbnNsYXRlKHBhdCkpCisgICAgICAgIF9TZWxlY3Rvci5f
X2luaXRfXyhzZWxmLCBjaGlsZF9wYXJ0cykKKworICAgIGRlZiBfc2VsZWN0X2Zyb20oc2VsZiwg
cGFyZW50X3BhdGgsIGlzX2RpciwgZXhpc3RzLCBzY2FuZGlyKToKKyAgICAgICAgZGVmIHRyeV9p
dGVyKCk6CisgICAgICAgICAgICBjZiA9IHBhcmVudF9wYXRoLl9mbGF2b3VyLmNhc2Vmb2xkCisg
ICAgICAgICAgICBlbnRyaWVzID0gbGlzdChzY2FuZGlyKHBhcmVudF9wYXRoKSkKKyAgICAgICAg
ICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmRp
cm9ubHkgb3IgZW50cnkuaXNfZGlyKCk6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBlbnRy
eS5uYW1lCisgICAgICAgICAgICAgICAgICAgIGNhc2Vmb2xkZWQgPSBjZihuYW1lKQorICAgICAg
ICAgICAgICAgICAgICBpZiBzZWxmLnBhdC5tYXRjaChjYXNlZm9sZGVkKToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHBhdGggPSBwYXJlbnRfcGF0aC5fbWFrZV9jaGlsZF9yZWxwYXRoKG5hbWUp
CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcCBpbiBzZWxmLnN1Y2Nlc3Nvci5fc2VsZWN0
X2Zyb20oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsIGlzX2RpciwgZXhp
c3RzLCBzY2FuZGlyKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCBwCisKKyAg
ICAgICAgZGVmIGV4Y2VwdF9pdGVyKGV4Yyk6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAg
ICAgIHlpZWxkCisKKyAgICAgICAgZm9yIHggaW4gX3RyeV9leGNlcHRfcGVybWlzc2lvbmVycm9y
X2l0ZXIodHJ5X2l0ZXIsIGV4Y2VwdF9pdGVyKToKKyAgICAgICAgICAgIHlpZWxkIHgKKworCitj
bGFzcyBfUmVjdXJzaXZlV2lsZGNhcmRTZWxlY3RvcihfU2VsZWN0b3IpOgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBhdCwgY2hpbGRfcGFydHMpOgorICAgICAgICBfU2VsZWN0b3IuX19pbml0
X18oc2VsZiwgY2hpbGRfcGFydHMpCisKKyAgICBkZWYgX2l0ZXJhdGVfZGlyZWN0b3JpZXMoc2Vs
ZiwgcGFyZW50X3BhdGgsIGlzX2Rpciwgc2NhbmRpcik6CisgICAgICAgIHlpZWxkIHBhcmVudF9w
YXRoCisKKyAgICAgICAgZGVmIHRyeV9pdGVyKCk6CisgICAgICAgICAgICBlbnRyaWVzID0gbGlz
dChzY2FuZGlyKHBhcmVudF9wYXRoKSkKKyAgICAgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVz
OgorICAgICAgICAgICAgICAgIGVudHJ5X2lzX2RpciA9IEZhbHNlCisgICAgICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgICAgICBlbnRyeV9pc19kaXIgPSBlbnRyeS5pc19kaXIoKQor
ICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICAgICAgICAg
IGlmIG5vdCBfaWdub3JlX2Vycm9yKGUpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgICAgICAgICBpZiBlbnRyeV9pc19kaXIgYW5kIG5vdCBlbnRyeS5pc19zeW1saW5r
KCk6CisgICAgICAgICAgICAgICAgICAgIHBhdGggPSBwYXJlbnRfcGF0aC5fbWFrZV9jaGlsZF9y
ZWxwYXRoKGVudHJ5Lm5hbWUpCisgICAgICAgICAgICAgICAgICAgIGZvciBwIGluIHNlbGYuX2l0
ZXJhdGVfZGlyZWN0b3JpZXMocGF0aCwgaXNfZGlyLCBzY2FuZGlyKToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHlpZWxkIHAKKworICAgICAgICBkZWYgZXhjZXB0X2l0ZXIoZXhjKToKKyAgICAg
ICAgICAgIHJldHVybgorICAgICAgICAgICAgeWllbGQKKworICAgICAgICBmb3IgeCBpbiBfdHJ5
X2V4Y2VwdF9wZXJtaXNzaW9uZXJyb3JfaXRlcih0cnlfaXRlciwgZXhjZXB0X2l0ZXIpOgorICAg
ICAgICAgICAgeWllbGQgeAorCisgICAgZGVmIF9zZWxlY3RfZnJvbShzZWxmLCBwYXJlbnRfcGF0
aCwgaXNfZGlyLCBleGlzdHMsIHNjYW5kaXIpOgorICAgICAgICBkZWYgdHJ5X2l0ZXIoKToKKyAg
ICAgICAgICAgIHlpZWxkZWQgPSBzZXQoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgIHN1Y2Nlc3Nvcl9zZWxlY3QgPSBzZWxmLnN1Y2Nlc3Nvci5fc2VsZWN0X2Zyb20KKyAgICAg
ICAgICAgICAgICBmb3Igc3RhcnRpbmdfcG9pbnQgaW4gc2VsZi5faXRlcmF0ZV9kaXJlY3Rvcmll
cygKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudF9wYXRoLCBpc19kaXIsIHNjYW5kaXIp
OgorICAgICAgICAgICAgICAgICAgICBmb3IgcCBpbiBzdWNjZXNzb3Jfc2VsZWN0KAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0aW5nX3BvaW50LCBpc19kaXIsIGV4aXN0cywgc2Nh
bmRpcik6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBwIG5vdCBpbiB5aWVsZGVkOgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB5aWVsZGVkLmFkZChwKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAg
ICB5aWVsZGVkLmNsZWFyKCkKKworICAgICAgICBkZWYgZXhjZXB0X2l0ZXIoZXhjKToKKyAgICAg
ICAgICAgIHJldHVybgorICAgICAgICAgICAgeWllbGQKKworICAgICAgICBmb3IgeCBpbiBfdHJ5
X2V4Y2VwdF9wZXJtaXNzaW9uZXJyb3JfaXRlcih0cnlfaXRlciwgZXhjZXB0X2l0ZXIpOgorICAg
ICAgICAgICAgeWllbGQgeAorCisKKyMKKyMgUHVibGljIEFQSQorIworCitjbGFzcyBfUGF0aFBh
cmVudHMoU2VxdWVuY2UpOgorCisgICAgIiIiVGhpcyBvYmplY3QgcHJvdmlkZXMgc2VxdWVuY2Ut
bGlrZSBhY2Nlc3MgdG8gdGhlIGxvZ2ljYWwgYW5jZXN0b3JzCisgICAgb2YgYSBwYXRoLiAgRG9u
J3QgdHJ5IHRvIGNvbnN0cnVjdCBpdCB5b3Vyc2VsZi4iIiIKKyAgICBfX3Nsb3RzX18gPSAoJ19w
YXRoY2xzJywgJ19kcnYnLCAnX3Jvb3QnLCAnX3BhcnRzJykKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwYXRoKToKKyAgICAgICAgIyBXZSBkb24ndCBzdG9yZSB0aGUgaW5zdGFuY2UgdG8gYXZv
aWQgcmVmZXJlbmNlIGN5Y2xlcworICAgICAgICBzZWxmLl9wYXRoY2xzID0gdHlwZShwYXRoKQor
ICAgICAgICBzZWxmLl9kcnYgPSBwYXRoLl9kcnYKKyAgICAgICAgc2VsZi5fcm9vdCA9IHBhdGgu
X3Jvb3QKKyAgICAgICAgc2VsZi5fcGFydHMgPSBwYXRoLl9wYXJ0cworCisgICAgZGVmIF9fbGVu
X18oc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2RydiBvciBzZWxmLl9yb290OgorICAgICAgICAg
ICAgcmV0dXJuIGxlbihzZWxmLl9wYXJ0cykgLSAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByZXR1cm4gbGVuKHNlbGYuX3BhcnRzKQorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGlk
eCk6CisgICAgICAgIGlmIGlkeCA8IDAgb3IgaWR4ID49IGxlbihzZWxmKToKKyAgICAgICAgICAg
IHJhaXNlIEluZGV4RXJyb3IoaWR4KQorICAgICAgICByZXR1cm4gc2VsZi5fcGF0aGNscy5fZnJv
bV9wYXJzZWRfcGFydHMoc2VsZi5fZHJ2LCBzZWxmLl9yb290LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFydHNbOi1pZHggLSAxXSkKKwor
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8ezB9LnBhcmVudHM+Ii5m
b3JtYXQoc2VsZi5fcGF0aGNscy5fX25hbWVfXykKKworCitjbGFzcyBQdXJlUGF0aChvYmplY3Qp
OgorCisgICAgIiIiUHVyZVBhdGggcmVwcmVzZW50cyBhIGZpbGVzeXN0ZW0gcGF0aCBhbmQgb2Zm
ZXJzIG9wZXJhdGlvbnMgd2hpY2gKKyAgICBkb24ndCBpbXBseSBhbnkgYWN0dWFsIGZpbGVzeXN0
ZW0gSS9PLiAgRGVwZW5kaW5nIG9uIHlvdXIgc3lzdGVtLAorICAgIGluc3RhbnRpYXRpbmcgYSBQ
dXJlUGF0aCB3aWxsIHJldHVybiBlaXRoZXIgYSBQdXJlUG9zaXhQYXRoIG9yIGEKKyAgICBQdXJl
V2luZG93c1BhdGggb2JqZWN0LiAgWW91IGNhbiBhbHNvIGluc3RhbnRpYXRlIGVpdGhlciBvZiB0
aGVzZSBjbGFzc2VzCisgICAgZGlyZWN0bHksIHJlZ2FyZGxlc3Mgb2YgeW91ciBzeXN0ZW0uCisg
ICAgIiIiCisgICAgX19zbG90c19fID0gKAorICAgICAgICAnX2RydicsICdfcm9vdCcsICdfcGFy
dHMnLAorICAgICAgICAnX3N0cicsICdfaGFzaCcsICdfcHBhcnRzJywgJ19jYWNoZWRfY3BhcnRz
JywKKyAgICApCisKKyAgICBkZWYgX19uZXdfXyhjbHMsICphcmdzKToKKyAgICAgICAgIiIiQ29u
c3RydWN0IGEgUHVyZVBhdGggZnJvbSBvbmUgb3Igc2V2ZXJhbCBzdHJpbmdzIGFuZCBvciBleGlz
dGluZworICAgICAgICBQdXJlUGF0aCBvYmplY3RzLiAgVGhlIHN0cmluZ3MgYW5kIHBhdGggb2Jq
ZWN0cyBhcmUgY29tYmluZWQgc28gYXMKKyAgICAgICAgdG8geWllbGQgYSBjYW5vbmljYWxpemVk
IHBhdGgsIHdoaWNoIGlzIGluY29ycG9yYXRlZCBpbnRvIHRoZQorICAgICAgICBuZXcgUHVyZVBh
dGggb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgY2xzIGlzIFB1cmVQYXRoOgorICAg
ICAgICAgICAgY2xzID0gUHVyZVdpbmRvd3NQYXRoIGlmIG9zLm5hbWUgPT0gJ250JyBlbHNlIFB1
cmVQb3NpeFBhdGgKKyAgICAgICAgcmV0dXJuIGNscy5fZnJvbV9wYXJ0cyhhcmdzKQorCisgICAg
ZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICMgVXNpbmcgdGhlIHBhcnRzIHR1cGxlIGhl
bHBzIHNoYXJlIGludGVybmVkIHBhdGggcGFydHMKKyAgICAgICAgIyB3aGVuIHBpY2tsaW5nIHJl
bGF0ZWQgcGF0aHMuCisgICAgICAgIHJldHVybiAoc2VsZi5fX2NsYXNzX18sIHR1cGxlKHNlbGYu
X3BhcnRzKSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfcGFyc2VfYXJncyhjbHMsIGFy
Z3MpOgorICAgICAgICAjIFRoaXMgaXMgdXNlZnVsIHdoZW4geW91IGRvbid0IHdhbnQgdG8gY3Jl
YXRlIGFuIGluc3RhbmNlLCBqdXN0CisgICAgICAgICMgY2Fub25pY2FsaXplIHNvbWUgY29uc3Ry
dWN0b3IgYXJndW1lbnRzLgorICAgICAgICBwYXJ0cyA9IFtdCisgICAgICAgIGZvciBhIGluIGFy
Z3M6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGEsIFB1cmVQYXRoKToKKyAgICAgICAgICAg
ICAgICBwYXJ0cyArPSBhLl9wYXJ0cworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA2KToKKyAgICAgICAgICAgICAgICAgICAgYSA9
IG9zLmZzcGF0aChhKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg
ICMgZHVjayB0eXBpbmcgZm9yIG9sZGVyIFB5dGhvbiB2ZXJzaW9ucworICAgICAgICAgICAgICAg
ICAgICBpZiBoYXNhdHRyKGEsICJfX2ZzcGF0aF9fIik6CisgICAgICAgICAgICAgICAgICAgICAg
ICBhID0gYS5fX2ZzcGF0aF9fKCkKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGEsIHN0
cik6CisgICAgICAgICAgICAgICAgICAgICMgRm9yY2UtY2FzdCBzdHIgc3ViY2xhc3NlcyB0byBz
dHIgKGlzc3VlICMyMTEyNykKKyAgICAgICAgICAgICAgICAgICAgcGFydHMuYXBwZW5kKHN0cihh
KSkKKyAgICAgICAgICAgICAgICAjIGFsc28gaGFuZGxlIHVuaWNvZGUgZm9yIFBZMiAoc2l4LnRl
eHRfdHlwZSA9IHVuaWNvZGUpCisgICAgICAgICAgICAgICAgZWxpZiBzaXguUFkyIGFuZCBpc2lu
c3RhbmNlKGEsIHNpeC50ZXh0X3R5cGUpOgorICAgICAgICAgICAgICAgICAgICAjIGNhc3QgdG8g
c3RyIHVzaW5nIGZpbGVzeXN0ZW0gZW5jb2RpbmcKKyAgICAgICAgICAgICAgICAgICAgIyBub3Rl
OiBpbiByYXJlIGNpcmN1bXN0YW5jZXMsIG9uIFB5dGhvbiA8IDMuMiwKKyAgICAgICAgICAgICAg
ICAgICAgIyBnZXRmaWxlc3lzdGVtZW5jb2RpbmcgY2FuIHJldHVybiBOb25lLCBpbiB0aGF0Cisg
ICAgICAgICAgICAgICAgICAgICMgY2FzZSBmYWxsIGJhY2sgdG8gYXNjaWkKKyAgICAgICAgICAg
ICAgICAgICAgcGFydHMuYXBwZW5kKGEuZW5jb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAg
c3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZygpIG9yICJhc2NpaSIpKQorICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAg
ICAgICAgICAgICAgICJhcmd1bWVudCBzaG91bGQgYmUgYSBzdHIgb2JqZWN0IG9yIGFuIG9zLlBh
dGhMaWtlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJvYmplY3QgcmV0dXJuaW5nIHN0ciwg
bm90ICVyIgorICAgICAgICAgICAgICAgICAgICAgICAgJSB0eXBlKGEpKQorICAgICAgICByZXR1
cm4gY2xzLl9mbGF2b3VyLnBhcnNlX3BhcnRzKHBhcnRzKQorCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIF9mcm9tX3BhcnRzKGNscywgYXJncywgaW5pdD1UcnVlKToKKyAgICAgICAgIyBXZSBu
ZWVkIHRvIGNhbGwgX3BhcnNlX2FyZ3Mgb24gdGhlIGluc3RhbmNlLCBzbyBhcyB0byBnZXQgdGhl
CisgICAgICAgICMgcmlnaHQgZmxhdm91ci4KKyAgICAgICAgc2VsZiA9IG9iamVjdC5fX25ld19f
KGNscykKKyAgICAgICAgZHJ2LCByb290LCBwYXJ0cyA9IHNlbGYuX3BhcnNlX2FyZ3MoYXJncykK
KyAgICAgICAgc2VsZi5fZHJ2ID0gZHJ2CisgICAgICAgIHNlbGYuX3Jvb3QgPSByb290CisgICAg
ICAgIHNlbGYuX3BhcnRzID0gcGFydHMKKyAgICAgICAgaWYgaW5pdDoKKyAgICAgICAgICAgIHNl
bGYuX2luaXQoKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgQGNsYXNzbWV0aG9kCisgICAg
ZGVmIF9mcm9tX3BhcnNlZF9wYXJ0cyhjbHMsIGRydiwgcm9vdCwgcGFydHMsIGluaXQ9VHJ1ZSk6
CisgICAgICAgIHNlbGYgPSBvYmplY3QuX19uZXdfXyhjbHMpCisgICAgICAgIHNlbGYuX2RydiA9
IGRydgorICAgICAgICBzZWxmLl9yb290ID0gcm9vdAorICAgICAgICBzZWxmLl9wYXJ0cyA9IHBh
cnRzCisgICAgICAgIGlmIGluaXQ6CisgICAgICAgICAgICBzZWxmLl9pbml0KCkKKyAgICAgICAg
cmV0dXJuIHNlbGYKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfZm9ybWF0X3BhcnNlZF9w
YXJ0cyhjbHMsIGRydiwgcm9vdCwgcGFydHMpOgorICAgICAgICBpZiBkcnYgb3Igcm9vdDoKKyAg
ICAgICAgICAgIHJldHVybiBkcnYgKyByb290ICsgY2xzLl9mbGF2b3VyLmpvaW4ocGFydHNbMTpd
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGNscy5fZmxhdm91ci5qb2luKHBh
cnRzKQorCisgICAgZGVmIF9pbml0KHNlbGYpOgorICAgICAgICAjIE92ZXJyaWRkZW4gaW4gY29u
Y3JldGUgUGF0aAorICAgICAgICBwYXNzCisKKyAgICBkZWYgX21ha2VfY2hpbGQoc2VsZiwgYXJn
cyk6CisgICAgICAgIGRydiwgcm9vdCwgcGFydHMgPSBzZWxmLl9wYXJzZV9hcmdzKGFyZ3MpCisg
ICAgICAgIGRydiwgcm9vdCwgcGFydHMgPSBzZWxmLl9mbGF2b3VyLmpvaW5fcGFyc2VkX3BhcnRz
KAorICAgICAgICAgICAgc2VsZi5fZHJ2LCBzZWxmLl9yb290LCBzZWxmLl9wYXJ0cywgZHJ2LCBy
b290LCBwYXJ0cykKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Zyb21fcGFyc2VkX3BhcnRzKGRydiwg
cm9vdCwgcGFydHMpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJu
IHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBhdGgsIHN1aXRhYmxlIGZvcgorICAg
ICAgICBwYXNzaW5nIHRvIHN5c3RlbSBjYWxscy4iIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX3N0cgorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAg
ICAgICAgICBzZWxmLl9zdHIgPSBzZWxmLl9mb3JtYXRfcGFyc2VkX3BhcnRzKHNlbGYuX2Rydiwg
c2VsZi5fcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fcGFydHMpIG9yICcuJworICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3N0cgor
CisgICAgZGVmIF9fZnNwYXRoX18oc2VsZik6CisgICAgICAgIHJldHVybiBzdHIoc2VsZikKKwor
ICAgIGRlZiBhc19wb3NpeChzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBzdHJpbmcgcmVw
cmVzZW50YXRpb24gb2YgdGhlIHBhdGggd2l0aCBmb3J3YXJkICgvKQorICAgICAgICBzbGFzaGVz
LiIiIgorICAgICAgICBmID0gc2VsZi5fZmxhdm91cgorICAgICAgICByZXR1cm4gc3RyKHNlbGYp
LnJlcGxhY2UoZi5zZXAsICcvJykKKworICAgIGRlZiBfX2J5dGVzX18oc2VsZik6CisgICAgICAg
ICIiIlJldHVybiB0aGUgYnl0ZXMgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBhdGguICBUaGlzIGlz
IG9ubHkKKyAgICAgICAgcmVjb21tZW5kZWQgdG8gdXNlIHVuZGVyIFVuaXguIiIiCisgICAgICAg
IGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMik6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yKCJuZWVkcyBQeXRob24gMy4yIG9yIGxhdGVyIikKKyAgICAgICAgcmV0dXJu
IG9zLmZzZW5jb2RlKHN0cihzZWxmKSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuICJ7MH0oezEhcn0pIi5mb3JtYXQoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNl
bGYuYXNfcG9zaXgoKSkKKworICAgIGRlZiBhc191cmkoc2VsZik6CisgICAgICAgICIiIlJldHVy
biB0aGUgcGF0aCBhcyBhICdmaWxlJyBVUkkuIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLmlzX2Fi
c29sdXRlKCk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJyZWxhdGl2ZSBwYXRoIGNh
bid0IGJlIGV4cHJlc3NlZCBhcyBhIGZpbGUgVVJJIikKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Zs
YXZvdXIubWFrZV91cmkoc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBfY3BhcnRzKHNl
bGYpOgorICAgICAgICAjIENhY2hlZCBjYXNlZm9sZGVkIHBhcnRzLCBmb3IgaGFzaGluZyBhbmQg
Y29tcGFyaXNvbgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVk
X2NwYXJ0cworICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBzZWxm
Ll9jYWNoZWRfY3BhcnRzID0gc2VsZi5fZmxhdm91ci5jYXNlZm9sZF9wYXJ0cyhzZWxmLl9wYXJ0
cykKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9jYWNoZWRfY3BhcnRzCisKKyAgICBkZWYgX19l
cV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIFB1cmVQ
YXRoKToKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgICAgICByZXR1cm4g
KAorICAgICAgICAgICAgc2VsZi5fY3BhcnRzID09IG90aGVyLl9jcGFydHMKKyAgICAgICAgICAg
IGFuZCBzZWxmLl9mbGF2b3VyIGlzIG90aGVyLl9mbGF2b3VyKQorCisgICAgZGVmIF9fbmVfXyhz
ZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBub3Qgc2VsZiA9PSBvdGhlcgorCisgICAgZGVm
IF9faGFzaF9fKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5f
aGFzaAorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBzZWxmLl9o
YXNoID0gaGFzaCh0dXBsZShzZWxmLl9jcGFydHMpKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYu
X2hhc2gKKworICAgIGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICBpZiAobm90IGlz
aW5zdGFuY2Uob3RoZXIsIFB1cmVQYXRoKQorICAgICAgICAgICAgICAgIG9yIHNlbGYuX2ZsYXZv
dXIgaXMgbm90IG90aGVyLl9mbGF2b3VyKToKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1l
bnRlZAorICAgICAgICByZXR1cm4gc2VsZi5fY3BhcnRzIDwgb3RoZXIuX2NwYXJ0cworCisgICAg
ZGVmIF9fbGVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIGlmIChub3QgaXNpbnN0YW5jZShvdGhl
ciwgUHVyZVBhdGgpCisgICAgICAgICAgICAgICAgb3Igc2VsZi5fZmxhdm91ciBpcyBub3Qgb3Ro
ZXIuX2ZsYXZvdXIpOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAg
IHJldHVybiBzZWxmLl9jcGFydHMgPD0gb3RoZXIuX2NwYXJ0cworCisgICAgZGVmIF9fZ3RfXyhz
ZWxmLCBvdGhlcik6CisgICAgICAgIGlmIChub3QgaXNpbnN0YW5jZShvdGhlciwgUHVyZVBhdGgp
CisgICAgICAgICAgICAgICAgb3Igc2VsZi5fZmxhdm91ciBpcyBub3Qgb3RoZXIuX2ZsYXZvdXIp
OgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgIHJldHVybiBzZWxm
Ll9jcGFydHMgPiBvdGhlci5fY3BhcnRzCisKKyAgICBkZWYgX19nZV9fKHNlbGYsIG90aGVyKToK
KyAgICAgICAgaWYgKG5vdCBpc2luc3RhbmNlKG90aGVyLCBQdXJlUGF0aCkKKyAgICAgICAgICAg
ICAgICBvciBzZWxmLl9mbGF2b3VyIGlzIG5vdCBvdGhlci5fZmxhdm91cik6CisgICAgICAgICAg
ICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NwYXJ0cyA+PSBv
dGhlci5fY3BhcnRzCisKKyAgICBkcml2ZSA9IHByb3BlcnR5KGF0dHJnZXR0ZXIoJ19kcnYnKSwK
KyAgICAgICAgICAgICAgICAgICAgIGRvYz0iIiJUaGUgZHJpdmUgcHJlZml4IChsZXR0ZXIgb3Ig
VU5DIHBhdGgpLCBpZiBhbnkuIiIiKQorCisgICAgcm9vdCA9IHByb3BlcnR5KGF0dHJnZXR0ZXIo
J19yb290JyksCisgICAgICAgICAgICAgICAgICAgIGRvYz0iIiJUaGUgcm9vdCBvZiB0aGUgcGF0
aCwgaWYgYW55LiIiIikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhbmNob3Ioc2VsZik6Cisg
ICAgICAgICIiIlRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZSBkcml2ZSBhbmQgcm9vdCwgb3IgJycu
IiIiCisgICAgICAgIGFuY2hvciA9IHNlbGYuX2RydiArIHNlbGYuX3Jvb3QKKyAgICAgICAgcmV0
dXJuIGFuY2hvcgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAg
ICIiIlRoZSBmaW5hbCBwYXRoIGNvbXBvbmVudCwgaWYgYW55LiIiIgorICAgICAgICBwYXJ0cyA9
IHNlbGYuX3BhcnRzCisgICAgICAgIGlmIGxlbihwYXJ0cykgPT0gKDEgaWYgKHNlbGYuX2RydiBv
ciBzZWxmLl9yb290KSBlbHNlIDApOgorICAgICAgICAgICAgcmV0dXJuICcnCisgICAgICAgIHJl
dHVybiBwYXJ0c1stMV0KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzdWZmaXgoc2VsZik6Cisg
ICAgICAgICIiIlRoZSBmaW5hbCBjb21wb25lbnQncyBsYXN0IHN1ZmZpeCwgaWYgYW55LiIiIgor
ICAgICAgICBuYW1lID0gc2VsZi5uYW1lCisgICAgICAgIGkgPSBuYW1lLnJmaW5kKCcuJykKKyAg
ICAgICAgaWYgMCA8IGkgPCBsZW4obmFtZSkgLSAxOgorICAgICAgICAgICAgcmV0dXJuIG5hbWVb
aTpdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gJycKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBzdWZmaXhlcyhzZWxmKToKKyAgICAgICAgIiIiQSBsaXN0IG9mIHRoZSBmaW5h
bCBjb21wb25lbnQncyBzdWZmaXhlcywgaWYgYW55LiIiIgorICAgICAgICBuYW1lID0gc2VsZi5u
YW1lCisgICAgICAgIGlmIG5hbWUuZW5kc3dpdGgoJy4nKToKKyAgICAgICAgICAgIHJldHVybiBb
XQorICAgICAgICBuYW1lID0gbmFtZS5sc3RyaXAoJy4nKQorICAgICAgICByZXR1cm4gWycuJyAr
IHN1ZmZpeCBmb3Igc3VmZml4IGluIG5hbWUuc3BsaXQoJy4nKVsxOl1dCisKKyAgICBAcHJvcGVy
dHkKKyAgICBkZWYgc3RlbShzZWxmKToKKyAgICAgICAgIiIiVGhlIGZpbmFsIHBhdGggY29tcG9u
ZW50LCBtaW51cyBpdHMgbGFzdCBzdWZmaXguIiIiCisgICAgICAgIG5hbWUgPSBzZWxmLm5hbWUK
KyAgICAgICAgaSA9IG5hbWUucmZpbmQoJy4nKQorICAgICAgICBpZiAwIDwgaSA8IGxlbihuYW1l
KSAtIDE6CisgICAgICAgICAgICByZXR1cm4gbmFtZVs6aV0KKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJldHVybiBuYW1lCisKKyAgICBkZWYgd2l0aF9uYW1lKHNlbGYsIG5hbWUpOgorICAg
ICAgICAiIiJSZXR1cm4gYSBuZXcgcGF0aCB3aXRoIHRoZSBmaWxlIG5hbWUgY2hhbmdlZC4iIiIK
KyAgICAgICAgaWYgbm90IHNlbGYubmFtZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
IiVyIGhhcyBhbiBlbXB0eSBuYW1lIiAlIChzZWxmLCkpCisgICAgICAgIGRydiwgcm9vdCwgcGFy
dHMgPSBzZWxmLl9mbGF2b3VyLnBhcnNlX3BhcnRzKChuYW1lLCkpCisgICAgICAgIGlmIChub3Qg
bmFtZSBvciBuYW1lWy0xXSBpbiBbc2VsZi5fZmxhdm91ci5zZXAsIHNlbGYuX2ZsYXZvdXIuYWx0
c2VwXQorICAgICAgICAgICAgICAgIG9yIGRydiBvciByb290IG9yIGxlbihwYXJ0cykgIT0gMSk6
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIG5hbWUgJXIiICUgKG5hbWUp
KQorICAgICAgICByZXR1cm4gc2VsZi5fZnJvbV9wYXJzZWRfcGFydHMoc2VsZi5fZHJ2LCBzZWxm
Ll9yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFy
dHNbOi0xXSArIFtuYW1lXSkKKworICAgIGRlZiB3aXRoX3N1ZmZpeChzZWxmLCBzdWZmaXgpOgor
ICAgICAgICAiIiJSZXR1cm4gYSBuZXcgcGF0aCB3aXRoIHRoZSBmaWxlIHN1ZmZpeCBjaGFuZ2Vk
LiAgSWYgdGhlIHBhdGgKKyAgICAgICAgaGFzIG5vIHN1ZmZpeCwgYWRkIGdpdmVuIHN1ZmZpeC4g
IElmIHRoZSBnaXZlbiBzdWZmaXggaXMgYW4gZW1wdHkKKyAgICAgICAgc3RyaW5nLCByZW1vdmUg
dGhlIHN1ZmZpeCBmcm9tIHRoZSBwYXRoLgorICAgICAgICAiIiIKKyAgICAgICAgIyBYWFggaWYg
c3VmZml4IGlzIE5vbmUsIHNob3VsZCB0aGUgY3VycmVudCBzdWZmaXggYmUgcmVtb3ZlZD8KKyAg
ICAgICAgZiA9IHNlbGYuX2ZsYXZvdXIKKyAgICAgICAgaWYgZi5zZXAgaW4gc3VmZml4IG9yIGYu
YWx0c2VwIGFuZCBmLmFsdHNlcCBpbiBzdWZmaXg6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJJbnZhbGlkIHN1ZmZpeCAlciIgJSAoc3VmZml4KSkKKyAgICAgICAgaWYgc3VmZml4IGFu
ZCBub3Qgc3VmZml4LnN0YXJ0c3dpdGgoJy4nKSBvciBzdWZmaXggPT0gJy4nOgorICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigiSW52YWxpZCBzdWZmaXggJXIiICUgKHN1ZmZpeCkpCisgICAg
ICAgIG5hbWUgPSBzZWxmLm5hbWUKKyAgICAgICAgaWYgbm90IG5hbWU6CisgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCIlciBoYXMgYW4gZW1wdHkgbmFtZSIgJSAoc2VsZiwpKQorICAgICAg
ICBvbGRfc3VmZml4ID0gc2VsZi5zdWZmaXgKKyAgICAgICAgaWYgbm90IG9sZF9zdWZmaXg6Cisg
ICAgICAgICAgICBuYW1lID0gbmFtZSArIHN1ZmZpeAorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgbmFtZSA9IG5hbWVbOi1sZW4ob2xkX3N1ZmZpeCldICsgc3VmZml4CisgICAgICAgIHJldHVy
biBzZWxmLl9mcm9tX3BhcnNlZF9wYXJ0cyhzZWxmLl9kcnYsIHNlbGYuX3Jvb3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYXJ0c1s6LTFdICsgW25hbWVd
KQorCisgICAgZGVmIHJlbGF0aXZlX3RvKHNlbGYsICpvdGhlcik6CisgICAgICAgICIiIlJldHVy
biB0aGUgcmVsYXRpdmUgcGF0aCB0byBhbm90aGVyIHBhdGggaWRlbnRpZmllZCBieSB0aGUgcGFz
c2VkCisgICAgICAgIGFyZ3VtZW50cy4gIElmIHRoZSBvcGVyYXRpb24gaXMgbm90IHBvc3NpYmxl
IChiZWNhdXNlIHRoaXMgaXMgbm90CisgICAgICAgIGEgc3VicGF0aCBvZiB0aGUgb3RoZXIgcGF0
aCksIHJhaXNlIFZhbHVlRXJyb3IuCisgICAgICAgICIiIgorICAgICAgICAjIEZvciB0aGUgcHVy
cG9zZSBvZiB0aGlzIG1ldGhvZCwgZHJpdmUgYW5kIHJvb3QgYXJlIGNvbnNpZGVyZWQKKyAgICAg
ICAgIyBzZXBhcmF0ZSBwYXJ0cywgaS5lLjoKKyAgICAgICAgIyAgIFBhdGgoJ2M6LycpLnJlbGF0
aXZlX3RvKCdjOicpICBnaXZlcyBQYXRoKCcvJykKKyAgICAgICAgIyAgIFBhdGgoJ2M6LycpLnJl
bGF0aXZlX3RvKCcvJykgICByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgIGlmIG5vdCBvdGhlcjoK
KyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigibmVlZCBhdCBsZWFzdCBvbmUgYXJndW1lbnQi
KQorICAgICAgICBwYXJ0cyA9IHNlbGYuX3BhcnRzCisgICAgICAgIGRydiA9IHNlbGYuX2Rydgor
ICAgICAgICByb290ID0gc2VsZi5fcm9vdAorICAgICAgICBpZiByb290OgorICAgICAgICAgICAg
YWJzX3BhcnRzID0gW2Rydiwgcm9vdF0gKyBwYXJ0c1sxOl0KKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGFic19wYXJ0cyA9IHBhcnRzCisgICAgICAgIHRvX2RydiwgdG9fcm9vdCwgdG9fcGFy
dHMgPSBzZWxmLl9wYXJzZV9hcmdzKG90aGVyKQorICAgICAgICBpZiB0b19yb290OgorICAgICAg
ICAgICAgdG9fYWJzX3BhcnRzID0gW3RvX2RydiwgdG9fcm9vdF0gKyB0b19wYXJ0c1sxOl0KKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHRvX2Fic19wYXJ0cyA9IHRvX3BhcnRzCisgICAgICAg
IG4gPSBsZW4odG9fYWJzX3BhcnRzKQorICAgICAgICBjZiA9IHNlbGYuX2ZsYXZvdXIuY2FzZWZv
bGRfcGFydHMKKyAgICAgICAgaWYgKHJvb3Qgb3IgZHJ2KSBpZiBuID09IDAgZWxzZSBjZihhYnNf
cGFydHNbOm5dKSAhPSBjZih0b19hYnNfcGFydHMpOgorICAgICAgICAgICAgZm9ybWF0dGVkID0g
c2VsZi5fZm9ybWF0X3BhcnNlZF9wYXJ0cyh0b19kcnYsIHRvX3Jvb3QsIHRvX3BhcnRzKQorICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiezAhcn0gZG9lcyBub3Qgc3RhcnQgd2l0aCB7MSFy
fSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvcm1hdChzdHIoc2VsZiksIHN0cihm
b3JtYXR0ZWQpKSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Zyb21fcGFyc2VkX3BhcnRzKCcnLCBy
b290IGlmIG4gPT0gMSBlbHNlICcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWJzX3BhcnRzW246XSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXJ0cyhzZWxm
KToKKyAgICAgICAgIiIiQW4gb2JqZWN0IHByb3ZpZGluZyBzZXF1ZW5jZS1saWtlIGFjY2VzcyB0
byB0aGUKKyAgICAgICAgY29tcG9uZW50cyBpbiB0aGUgZmlsZXN5c3RlbSBwYXRoLiIiIgorICAg
ICAgICAjIFdlIGNhY2hlIHRoZSB0dXBsZSB0byBhdm9pZCBidWlsZGluZyBhIG5ldyBvbmUgZWFj
aCB0aW1lIC5wYXJ0cworICAgICAgICAjIGlzIGFjY2Vzc2VkLiAgWFhYIGlzIHRoaXMgbmVjZXNz
YXJ5PworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcHBhcnRzCisgICAg
ICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuX3BwYXJ0cyA9IHR1
cGxlKHNlbGYuX3BhcnRzKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BwYXJ0cworCisgICAg
ZGVmIGpvaW5wYXRoKHNlbGYsICphcmdzKToKKyAgICAgICAgIiIiQ29tYmluZSB0aGlzIHBhdGgg
d2l0aCBvbmUgb3Igc2V2ZXJhbCBhcmd1bWVudHMsIGFuZCByZXR1cm4gYQorICAgICAgICBuZXcg
cGF0aCByZXByZXNlbnRpbmcgZWl0aGVyIGEgc3VicGF0aCAoaWYgYWxsIGFyZ3VtZW50cyBhcmUg
cmVsYXRpdmUKKyAgICAgICAgcGF0aHMpIG9yIGEgdG90YWxseSBkaWZmZXJlbnQgcGF0aCAoaWYg
b25lIG9mIHRoZSBhcmd1bWVudHMgaXMKKyAgICAgICAgYW5jaG9yZWQpLgorICAgICAgICAiIiIK
KyAgICAgICAgcmV0dXJuIHNlbGYuX21ha2VfY2hpbGQoYXJncykKKworICAgIGRlZiBfX3RydWVk
aXZfXyhzZWxmLCBrZXkpOgorICAgICAgICByZXR1cm4gc2VsZi5fbWFrZV9jaGlsZCgoa2V5LCkp
CisKKyAgICBkZWYgX19ydHJ1ZWRpdl9fKHNlbGYsIGtleSk6CisgICAgICAgIHJldHVybiBzZWxm
Ll9mcm9tX3BhcnRzKFtrZXldICsgc2VsZi5fcGFydHMpCisKKyAgICBpZiBzaXguUFkyOgorICAg
ICAgICBfX2Rpdl9fID0gX190cnVlZGl2X18KKyAgICAgICAgX19yZGl2X18gPSBfX3J0cnVlZGl2
X18KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXJlbnQoc2VsZik6CisgICAgICAgICIiIlRo
ZSBsb2dpY2FsIHBhcmVudCBvZiB0aGUgcGF0aC4iIiIKKyAgICAgICAgZHJ2ID0gc2VsZi5fZHJ2
CisgICAgICAgIHJvb3QgPSBzZWxmLl9yb290CisgICAgICAgIHBhcnRzID0gc2VsZi5fcGFydHMK
KyAgICAgICAgaWYgbGVuKHBhcnRzKSA9PSAxIGFuZCAoZHJ2IG9yIHJvb3QpOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Zyb21fcGFyc2VkX3BhcnRzKGRy
diwgcm9vdCwgcGFydHNbOi0xXSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXJlbnRzKHNl
bGYpOgorICAgICAgICAiIiJBIHNlcXVlbmNlIG9mIHRoaXMgcGF0aCdzIGxvZ2ljYWwgcGFyZW50
cy4iIiIKKyAgICAgICAgcmV0dXJuIF9QYXRoUGFyZW50cyhzZWxmKQorCisgICAgZGVmIGlzX2Fi
c29sdXRlKHNlbGYpOgorICAgICAgICAiIiJUcnVlIGlmIHRoZSBwYXRoIGlzIGFic29sdXRlICho
YXMgYm90aCBhIHJvb3QgYW5kLCBpZiBhcHBsaWNhYmxlLAorICAgICAgICBhIGRyaXZlKS4iIiIK
KyAgICAgICAgaWYgbm90IHNlbGYuX3Jvb3Q6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgcmV0dXJuIG5vdCBzZWxmLl9mbGF2b3VyLmhhc19kcnYgb3IgYm9vbChzZWxmLl9kcnYp
CisKKyAgICBkZWYgaXNfcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgICIiIlJldHVybiBUcnVlIGlm
IHRoZSBwYXRoIGNvbnRhaW5zIG9uZSBvZiB0aGUgc3BlY2lhbCBuYW1lcyByZXNlcnZlZAorICAg
ICAgICBieSB0aGUgc3lzdGVtLCBpZiBhbnkuIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9mbGF2
b3VyLmlzX3Jlc2VydmVkKHNlbGYuX3BhcnRzKQorCisgICAgZGVmIG1hdGNoKHNlbGYsIHBhdGhf
cGF0dGVybik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gVHJ1ZSBpZiB0aGlzIHBhdGgg
bWF0Y2hlcyB0aGUgZ2l2ZW4gcGF0dGVybi4KKyAgICAgICAgIiIiCisgICAgICAgIGNmID0gc2Vs
Zi5fZmxhdm91ci5jYXNlZm9sZAorICAgICAgICBwYXRoX3BhdHRlcm4gPSBjZihwYXRoX3BhdHRl
cm4pCisgICAgICAgIGRydiwgcm9vdCwgcGF0X3BhcnRzID0gc2VsZi5fZmxhdm91ci5wYXJzZV9w
YXJ0cygocGF0aF9wYXR0ZXJuLCkpCisgICAgICAgIGlmIG5vdCBwYXRfcGFydHM6CisgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCJlbXB0eSBwYXR0ZXJuIikKKyAgICAgICAgaWYgZHJ2IGFu
ZCBkcnYgIT0gY2Yoc2VsZi5fZHJ2KToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAg
ICBpZiByb290IGFuZCByb290ICE9IGNmKHNlbGYuX3Jvb3QpOgorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgICAgIHBhcnRzID0gc2VsZi5fY3BhcnRzCisgICAgICAgIGlmIGRydiBvciBy
b290OgorICAgICAgICAgICAgaWYgbGVuKHBhdF9wYXJ0cykgIT0gbGVuKHBhcnRzKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHBhdF9wYXJ0cyA9IHBhdF9wYXJ0
c1sxOl0KKyAgICAgICAgZWxpZiBsZW4ocGF0X3BhcnRzKSA+IGxlbihwYXJ0cyk6CisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgZm9yIHBhcnQsIHBhdCBpbiB6aXAocmV2ZXJzZWQo
cGFydHMpLCByZXZlcnNlZChwYXRfcGFydHMpKToKKyAgICAgICAgICAgIGlmIG5vdCBmbm1hdGNo
LmZubWF0Y2hjYXNlKHBhcnQsIHBhdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisg
ICAgICAgIHJldHVybiBUcnVlCisKKworIyBDYW4ndCBzdWJjbGFzcyBvcy5QYXRoTGlrZSBmcm9t
IFB1cmVQYXRoIGFuZCBrZWVwIHRoZSBjb25zdHJ1Y3RvcgorIyBvcHRpbWl6YXRpb25zIGluIFB1
cmVQYXRoLl9wYXJzZV9hcmdzKCkuCitpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA2KToKKyAg
ICBvcy5QYXRoTGlrZS5yZWdpc3RlcihQdXJlUGF0aCkKKworCitjbGFzcyBQdXJlUG9zaXhQYXRo
KFB1cmVQYXRoKToKKyAgICBfZmxhdm91ciA9IF9wb3NpeF9mbGF2b3VyCisgICAgX19zbG90c19f
ID0gKCkKKworCitjbGFzcyBQdXJlV2luZG93c1BhdGgoUHVyZVBhdGgpOgorICAgICIiIlB1cmVQ
YXRoIHN1YmNsYXNzIGZvciBXaW5kb3dzIHN5c3RlbXMuCisKKyAgICBPbiBhIFdpbmRvd3Mgc3lz
dGVtLCBpbnN0YW50aWF0aW5nIGEgUHVyZVBhdGggc2hvdWxkIHJldHVybiB0aGlzIG9iamVjdC4K
KyAgICBIb3dldmVyLCB5b3UgY2FuIGFsc28gaW5zdGFudGlhdGUgaXQgZGlyZWN0bHkgb24gYW55
IHN5c3RlbS4KKyAgICAiIiIKKyAgICBfZmxhdm91ciA9IF93aW5kb3dzX2ZsYXZvdXIKKyAgICBf
X3Nsb3RzX18gPSAoKQorCisKKyMgRmlsZXN5c3RlbS1hY2Nlc3NpbmcgY2xhc3NlcworCisKK2Ns
YXNzIFBhdGgoUHVyZVBhdGgpOgorICAgICIiIlB1cmVQYXRoIHN1YmNsYXNzIHRoYXQgY2FuIG1h
a2Ugc3lzdGVtIGNhbGxzLgorCisgICAgUGF0aCByZXByZXNlbnRzIGEgZmlsZXN5c3RlbSBwYXRo
IGJ1dCB1bmxpa2UgUHVyZVBhdGgsIGFsc28gb2ZmZXJzCisgICAgbWV0aG9kcyB0byBkbyBzeXN0
ZW0gY2FsbHMgb24gcGF0aCBvYmplY3RzLiBEZXBlbmRpbmcgb24geW91ciBzeXN0ZW0sCisgICAg
aW5zdGFudGlhdGluZyBhIFBhdGggd2lsbCByZXR1cm4gZWl0aGVyIGEgUG9zaXhQYXRoIG9yIGEg
V2luZG93c1BhdGgKKyAgICBvYmplY3QuIFlvdSBjYW4gYWxzbyBpbnN0YW50aWF0ZSBhIFBvc2l4
UGF0aCBvciBXaW5kb3dzUGF0aCBkaXJlY3RseSwKKyAgICBidXQgY2Fubm90IGluc3RhbnRpYXRl
IGEgV2luZG93c1BhdGggb24gYSBQT1NJWCBzeXN0ZW0gb3IgdmljZSB2ZXJzYS4KKyAgICAiIiIK
KyAgICBfX3Nsb3RzX18gPSAoCisgICAgICAgICdfYWNjZXNzb3InLAorICAgICAgICAnX2Nsb3Nl
ZCcsCisgICAgKQorCisgICAgZGVmIF9fbmV3X18oY2xzLCAqYXJncywgKiprd2FyZ3MpOgorICAg
ICAgICBpZiBjbHMgaXMgUGF0aDoKKyAgICAgICAgICAgIGNscyA9IFdpbmRvd3NQYXRoIGlmIG9z
Lm5hbWUgPT0gJ250JyBlbHNlIFBvc2l4UGF0aAorICAgICAgICBzZWxmID0gY2xzLl9mcm9tX3Bh
cnRzKGFyZ3MsIGluaXQ9RmFsc2UpCisgICAgICAgIGlmIG5vdCBzZWxmLl9mbGF2b3VyLmlzX3N1
cHBvcnRlZDoKKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoImNhbm5vdCBp
bnN0YW50aWF0ZSAlciBvbiB5b3VyIHN5c3RlbSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJSAoY2xzLl9fbmFtZV9fLCkpCisgICAgICAgIHNlbGYuX2luaXQoKQorICAg
ICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9pbml0KHNlbGYsCisgICAgICAgICAgICAgICMg
UHJpdmF0ZSBub24tY29uc3RydWN0b3IgYXJndW1lbnRzCisgICAgICAgICAgICAgIHRlbXBsYXRl
PU5vbmUsCisgICAgICAgICAgICAgICk6CisgICAgICAgIHNlbGYuX2Nsb3NlZCA9IEZhbHNlCisg
ICAgICAgIGlmIHRlbXBsYXRlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5fYWNjZXNz
b3IgPSB0ZW1wbGF0ZS5fYWNjZXNzb3IKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYu
X2FjY2Vzc29yID0gX25vcm1hbF9hY2Nlc3NvcgorCisgICAgZGVmIF9tYWtlX2NoaWxkX3JlbHBh
dGgoc2VsZiwgcGFydCk6CisgICAgICAgICMgVGhpcyBpcyBhbiBvcHRpbWl6YXRpb24gdXNlZCBm
b3IgZGlyIHdhbGtpbmcuICBgcGFydGAgbXVzdCBiZQorICAgICAgICAjIGEgc2luZ2xlIHBhcnQg
cmVsYXRpdmUgdG8gdGhpcyBwYXRoLgorICAgICAgICBwYXJ0cyA9IHNlbGYuX3BhcnRzICsgW3Bh
cnRdCisgICAgICAgIHJldHVybiBzZWxmLl9mcm9tX3BhcnNlZF9wYXJ0cyhzZWxmLl9kcnYsIHNl
bGYuX3Jvb3QsIHBhcnRzKQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgaWYg
c2VsZi5fY2xvc2VkOgorICAgICAgICAgICAgc2VsZi5fcmFpc2VfY2xvc2VkKCkKKyAgICAgICAg
cmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCB0LCB2LCB0Yik6CisgICAgICAg
IHNlbGYuX2Nsb3NlZCA9IFRydWUKKworICAgIGRlZiBfcmFpc2VfY2xvc2VkKHNlbGYpOgorICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCJJL08gb3BlcmF0aW9uIG9uIGNsb3NlZCBwYXRoIikKKwor
ICAgIGRlZiBfb3BlbmVyKHNlbGYsIG5hbWUsIGZsYWdzLCBtb2RlPTBvNjY2KToKKyAgICAgICAg
IyBBIHN0dWIgZm9yIHRoZSBvcGVuZXIgYXJndW1lbnQgdG8gYnVpbHQtaW4gb3BlbigpCisgICAg
ICAgIHJldHVybiBzZWxmLl9hY2Nlc3Nvci5vcGVuKHNlbGYsIGZsYWdzLCBtb2RlKQorCisgICAg
ZGVmIF9yYXdfb3BlbihzZWxmLCBmbGFncywgbW9kZT0wbzc3Nyk6CisgICAgICAgICIiIgorICAg
ICAgICBPcGVuIHRoZSBmaWxlIHBvaW50ZWQgYnkgdGhpcyBwYXRoIGFuZCByZXR1cm4gYSBmaWxl
IGRlc2NyaXB0b3IsCisgICAgICAgIGFzIG9zLm9wZW4oKSBkb2VzLgorICAgICAgICAiIiIKKyAg
ICAgICAgaWYgc2VsZi5fY2xvc2VkOgorICAgICAgICAgICAgc2VsZi5fcmFpc2VfY2xvc2VkKCkK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2FjY2Vzc29yLm9wZW4oc2VsZiwgZmxhZ3MsIG1vZGUpCisK
KyAgICAjIFB1YmxpYyBBUEkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBjd2QoY2xzKToK
KyAgICAgICAgIiIiUmV0dXJuIGEgbmV3IHBhdGggcG9pbnRpbmcgdG8gdGhlIGN1cnJlbnQgd29y
a2luZyBkaXJlY3RvcnkKKyAgICAgICAgKGFzIHJldHVybmVkIGJ5IG9zLmdldGN3ZCgpKS4KKyAg
ICAgICAgIiIiCisgICAgICAgIHJldHVybiBjbHMob3MuZ2V0Y3dkKCkpCisKKyAgICBAY2xhc3Nt
ZXRob2QKKyAgICBkZWYgaG9tZShjbHMpOgorICAgICAgICAiIiJSZXR1cm4gYSBuZXcgcGF0aCBw
b2ludGluZyB0byB0aGUgdXNlcidzIGhvbWUgZGlyZWN0b3J5IChhcworICAgICAgICByZXR1cm5l
ZCBieSBvcy5wYXRoLmV4cGFuZHVzZXIoJ34nKSkuCisgICAgICAgICIiIgorICAgICAgICByZXR1
cm4gY2xzKGNscygpLl9mbGF2b3VyLmdldGhvbWVkaXIoTm9uZSkpCisKKyAgICBkZWYgc2FtZWZp
bGUoc2VsZiwgb3RoZXJfcGF0aCk6CisgICAgICAgICIiIlJldHVybiB3aGV0aGVyIG90aGVyX3Bh
dGggaXMgdGhlIHNhbWUgb3Igbm90IGFzIHRoaXMgZmlsZQorICAgICAgICAoYXMgcmV0dXJuZWQg
Ynkgb3MucGF0aC5zYW1lZmlsZSgpKS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGhhc2F0dHIo
b3MucGF0aCwgInNhbWVzdGF0Iik6CisgICAgICAgICAgICBzdCA9IHNlbGYuc3RhdCgpCisgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgb3RoZXJfc3QgPSBvdGhlcl9wYXRoLnN0YXQo
KQorICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgICAgIG90
aGVyX3N0ID0gb3Muc3RhdChvdGhlcl9wYXRoKQorICAgICAgICAgICAgcmV0dXJuIG9zLnBhdGgu
c2FtZXN0YXQoc3QsIG90aGVyX3N0KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZmlsZW5h
bWUxID0gc2l4LnRleHRfdHlwZShzZWxmKQorICAgICAgICAgICAgZmlsZW5hbWUyID0gc2l4LnRl
eHRfdHlwZShvdGhlcl9wYXRoKQorICAgICAgICAgICAgc3QxID0gX3dpbjMyX2dldF91bmlxdWVf
cGF0aF9pZChmaWxlbmFtZTEpCisgICAgICAgICAgICBzdDIgPSBfd2luMzJfZ2V0X3VuaXF1ZV9w
YXRoX2lkKGZpbGVuYW1lMikKKyAgICAgICAgICAgIHJldHVybiBzdDEgPT0gc3QyCisKKyAgICBk
ZWYgaXRlcmRpcihzZWxmKToKKyAgICAgICAgIiIiSXRlcmF0ZSBvdmVyIHRoZSBmaWxlcyBpbiB0
aGlzIGRpcmVjdG9yeS4gIERvZXMgbm90IHlpZWxkIGFueQorICAgICAgICByZXN1bHQgZm9yIHRo
ZSBzcGVjaWFsIHBhdGhzICcuJyBhbmQgJy4uJy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNl
bGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIGZv
ciBuYW1lIGluIHNlbGYuX2FjY2Vzc29yLmxpc3RkaXIoc2VsZik6CisgICAgICAgICAgICBpZiBu
YW1lIGluICgnLicsICcuLicpOgorICAgICAgICAgICAgICAgICMgWWllbGRpbmcgYSBwYXRoIG9i
amVjdCBmb3IgdGhlc2UgbWFrZXMgbGl0dGxlIHNlbnNlCisgICAgICAgICAgICAgICAgY29udGlu
dWUKKyAgICAgICAgICAgIHlpZWxkIHNlbGYuX21ha2VfY2hpbGRfcmVscGF0aChuYW1lKQorICAg
ICAgICAgICAgaWYgc2VsZi5fY2xvc2VkOgorICAgICAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Ns
b3NlZCgpCisKKyAgICBkZWYgZ2xvYihzZWxmLCBwYXR0ZXJuKToKKyAgICAgICAgIiIiSXRlcmF0
ZSBvdmVyIHRoaXMgc3VidHJlZSBhbmQgeWllbGQgYWxsIGV4aXN0aW5nIGZpbGVzIChvZiBhbnkK
KyAgICAgICAga2luZCwgaW5jbHVkaW5nIGRpcmVjdG9yaWVzKSBtYXRjaGluZyB0aGUgZ2l2ZW4g
cmVsYXRpdmUgcGF0dGVybi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBwYXR0ZXJuOgor
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5hY2NlcHRhYmxlIHBhdHRlcm46IHswIXJ9
Ii5mb3JtYXQocGF0dGVybikpCisgICAgICAgIHBhdHRlcm4gPSBzZWxmLl9mbGF2b3VyLmNhc2Vm
b2xkKHBhdHRlcm4pCisgICAgICAgIGRydiwgcm9vdCwgcGF0dGVybl9wYXJ0cyA9IHNlbGYuX2Zs
YXZvdXIucGFyc2VfcGFydHMoKHBhdHRlcm4sKSkKKyAgICAgICAgaWYgZHJ2IG9yIHJvb3Q6Cisg
ICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJOb24tcmVsYXRpdmUgcGF0dGVy
bnMgYXJlIHVuc3VwcG9ydGVkIikKKyAgICAgICAgc2VsZWN0b3IgPSBfbWFrZV9zZWxlY3Rvcih0
dXBsZShwYXR0ZXJuX3BhcnRzKSkKKyAgICAgICAgZm9yIHAgaW4gc2VsZWN0b3Iuc2VsZWN0X2Zy
b20oc2VsZik6CisgICAgICAgICAgICB5aWVsZCBwCisKKyAgICBkZWYgcmdsb2Ioc2VsZiwgcGF0
dGVybik6CisgICAgICAgICIiIlJlY3Vyc2l2ZWx5IHlpZWxkIGFsbCBleGlzdGluZyBmaWxlcyAo
b2YgYW55IGtpbmQsIGluY2x1ZGluZworICAgICAgICBkaXJlY3RvcmllcykgbWF0Y2hpbmcgdGhl
IGdpdmVuIHJlbGF0aXZlIHBhdHRlcm4sIGFueXdoZXJlIGluCisgICAgICAgIHRoaXMgc3VidHJl
ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHBhdHRlcm4gPSBzZWxmLl9mbGF2b3VyLmNhc2Vmb2xk
KHBhdHRlcm4pCisgICAgICAgIGRydiwgcm9vdCwgcGF0dGVybl9wYXJ0cyA9IHNlbGYuX2ZsYXZv
dXIucGFyc2VfcGFydHMoKHBhdHRlcm4sKSkKKyAgICAgICAgaWYgZHJ2IG9yIHJvb3Q6CisgICAg
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJOb24tcmVsYXRpdmUgcGF0dGVybnMg
YXJlIHVuc3VwcG9ydGVkIikKKyAgICAgICAgc2VsZWN0b3IgPSBfbWFrZV9zZWxlY3RvcigoIioq
IiwpICsgdHVwbGUocGF0dGVybl9wYXJ0cykpCisgICAgICAgIGZvciBwIGluIHNlbGVjdG9yLnNl
bGVjdF9mcm9tKHNlbGYpOgorICAgICAgICAgICAgeWllbGQgcAorCisgICAgZGVmIGFic29sdXRl
KHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gYW4gYWJzb2x1dGUgdmVyc2lvbiBvZiB0aGlzIHBh
dGguICBUaGlzIGZ1bmN0aW9uIHdvcmtzCisgICAgICAgIGV2ZW4gaWYgdGhlIHBhdGggZG9lc24n
dCBwb2ludCB0byBhbnl0aGluZy4KKworICAgICAgICBObyBub3JtYWxpemF0aW9uIGlzIGRvbmUs
IGkuZS4gYWxsICcuJyBhbmQgJy4uJyB3aWxsIGJlIGtlcHQgYWxvbmcuCisgICAgICAgIFVzZSBy
ZXNvbHZlKCkgdG8gZ2V0IHRoZSBjYW5vbmljYWwgcGF0aCB0byBhIGZpbGUuCisgICAgICAgICIi
IgorICAgICAgICAjIFhYWCB1bnRlc3RlZCB5ZXQhCisgICAgICAgIGlmIHNlbGYuX2Nsb3NlZDoK
KyAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIGlmIHNlbGYuaXNfYWJz
b2x1dGUoKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICMgRklYTUUgdGhpcyBt
dXN0IGRlZmVyIHRvIHRoZSBzcGVjaWZpYyBmbGF2b3VyIChhbmQsIHVuZGVyIFdpbmRvd3MsCisg
ICAgICAgICMgdXNlIG50Ll9nZXRmdWxscGF0aG5hbWUoKSkKKyAgICAgICAgb2JqID0gc2VsZi5f
ZnJvbV9wYXJ0cyhbb3MuZ2V0Y3dkKCldICsgc2VsZi5fcGFydHMsIGluaXQ9RmFsc2UpCisgICAg
ICAgIG9iai5faW5pdCh0ZW1wbGF0ZT1zZWxmKQorICAgICAgICByZXR1cm4gb2JqCisKKyAgICBk
ZWYgcmVzb2x2ZShzZWxmLCBzdHJpY3Q9RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgTWFr
ZSB0aGUgcGF0aCBhYnNvbHV0ZSwgcmVzb2x2aW5nIGFsbCBzeW1saW5rcyBvbiB0aGUgd2F5IGFu
ZCBhbHNvCisgICAgICAgIG5vcm1hbGl6aW5nIGl0IChmb3IgZXhhbXBsZSB0dXJuaW5nIHNsYXNo
ZXMgaW50byBiYWNrc2xhc2hlcyB1bmRlcgorICAgICAgICBXaW5kb3dzKS4KKyAgICAgICAgIiIi
CisgICAgICAgIGlmIHNlbGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3Nl
ZCgpCisgICAgICAgIHMgPSBzZWxmLl9mbGF2b3VyLnJlc29sdmUoc2VsZiwgc3RyaWN0PXN0cmlj
dCkKKyAgICAgICAgaWYgcyBpcyBOb25lOgorICAgICAgICAgICAgIyBObyBzeW1saW5rIHJlc29s
dXRpb24gPT4gZm9yIGNvbnNpc3RlbmN5LCByYWlzZSBhbiBlcnJvciBpZgorICAgICAgICAgICAg
IyB0aGUgcGF0aCBpcyBmb3JiaWRkZW4KKyAgICAgICAgICAgICMgYnV0IG5vdCByYWlzZSBlcnJv
ciBpZiBmaWxlIGRvZXMgbm90IGV4aXN0IChzZWUgaXNzdWUgIzU0KS4KKworICAgICAgICAgICAg
ZGVmIF90cnlfZnVuYygpOgorICAgICAgICAgICAgICAgIHNlbGYuc3RhdCgpCisKKyAgICAgICAg
ICAgIGRlZiBfZXhjX2Z1bmMoZXhjKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAg
ICAgIF90cnlfZXhjZXB0X2ZpbGVub3Rmb3VuZGVycm9yKF90cnlfZnVuYywgX2V4Y19mdW5jKQor
ICAgICAgICAgICAgcyA9IHN0cihzZWxmLmFic29sdXRlKCkpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAjIGVuc3VyZSBzIGlzIGEgc3RyaW5nIChub3JtcGF0aCByZXF1aXJlcyB0aGlzIG9u
IG9sZGVyIHB5dGhvbikKKyAgICAgICAgICAgIHMgPSBzdHIocykKKyAgICAgICAgIyBOb3cgd2Ug
aGF2ZSBubyBzeW1saW5rcyBpbiB0aGUgcGF0aCwgaXQncyBzYWZlIHRvIG5vcm1hbGl6ZSBpdC4K
KyAgICAgICAgbm9ybWVkID0gc2VsZi5fZmxhdm91ci5wYXRobW9kLm5vcm1wYXRoKHMpCisgICAg
ICAgIG9iaiA9IHNlbGYuX2Zyb21fcGFydHMoKG5vcm1lZCwpLCBpbml0PUZhbHNlKQorICAgICAg
ICBvYmouX2luaXQodGVtcGxhdGU9c2VsZikKKyAgICAgICAgcmV0dXJuIG9iagorCisgICAgZGVm
IHN0YXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0
aGUgc3RhdCgpIHN5c3RlbSBjYWxsIG9uIHRoaXMgcGF0aCwgbGlrZQorICAgICAgICBvcy5zdGF0
KCkgZG9lcy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9hY2Nlc3Nvci5zdGF0
KHNlbGYpCisKKyAgICBkZWYgb3duZXIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1
cm4gdGhlIGxvZ2luIG5hbWUgb2YgdGhlIGZpbGUgb3duZXIuCisgICAgICAgICIiIgorICAgICAg
ICBpbXBvcnQgcHdkCisgICAgICAgIHJldHVybiBwd2QuZ2V0cHd1aWQoc2VsZi5zdGF0KCkuc3Rf
dWlkKS5wd19uYW1lCisKKyAgICBkZWYgZ3JvdXAoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBSZXR1cm4gdGhlIGdyb3VwIG5hbWUgb2YgdGhlIGZpbGUgZ2lkLgorICAgICAgICAiIiIKKyAg
ICAgICAgaW1wb3J0IGdycAorICAgICAgICByZXR1cm4gZ3JwLmdldGdyZ2lkKHNlbGYuc3RhdCgp
LnN0X2dpZCkuZ3JfbmFtZQorCisgICAgZGVmIG9wZW4oc2VsZiwgbW9kZT0ncicsIGJ1ZmZlcmlu
Zz0tMSwgZW5jb2Rpbmc9Tm9uZSwKKyAgICAgICAgICAgICBlcnJvcnM9Tm9uZSwgbmV3bGluZT1O
b25lKToKKyAgICAgICAgIiIiCisgICAgICAgIE9wZW4gdGhlIGZpbGUgcG9pbnRlZCBieSB0aGlz
IHBhdGggYW5kIHJldHVybiBhIGZpbGUgb2JqZWN0LCBhcworICAgICAgICB0aGUgYnVpbHQtaW4g
b3BlbigpIGZ1bmN0aW9uIGRvZXMuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9jbG9z
ZWQ6CisgICAgICAgICAgICBzZWxmLl9yYWlzZV9jbG9zZWQoKQorICAgICAgICBpZiBzeXMudmVy
c2lvbl9pbmZvID49ICgzLCAzKToKKyAgICAgICAgICAgIHJldHVybiBpby5vcGVuKAorICAgICAg
ICAgICAgICAgIHN0cihzZWxmKSwgbW9kZSwgYnVmZmVyaW5nLCBlbmNvZGluZywgZXJyb3JzLCBu
ZXdsaW5lLAorICAgICAgICAgICAgICAgIG9wZW5lcj1zZWxmLl9vcGVuZXIpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByZXR1cm4gaW8ub3BlbihzdHIoc2VsZiksIG1vZGUsIGJ1ZmZlcmlu
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nLCBlcnJvcnMsIG5ld2xpbmUp
CisKKyAgICBkZWYgcmVhZF9ieXRlcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE9wZW4g
dGhlIGZpbGUgaW4gYnl0ZXMgbW9kZSwgcmVhZCBpdCwgYW5kIGNsb3NlIHRoZSBmaWxlLgorICAg
ICAgICAiIiIKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4obW9kZT0ncmInKSBhcyBmOgorICAgICAg
ICAgICAgcmV0dXJuIGYucmVhZCgpCisKKyAgICBkZWYgcmVhZF90ZXh0KHNlbGYsIGVuY29kaW5n
PU5vbmUsIGVycm9ycz1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIE9wZW4gdGhlIGZpbGUg
aW4gdGV4dCBtb2RlLCByZWFkIGl0LCBhbmQgY2xvc2UgdGhlIGZpbGUuCisgICAgICAgICIiIgor
ICAgICAgICB3aXRoIHNlbGYub3Blbihtb2RlPSdyJywgZW5jb2Rpbmc9ZW5jb2RpbmcsIGVycm9y
cz1lcnJvcnMpIGFzIGY6CisgICAgICAgICAgICByZXR1cm4gZi5yZWFkKCkKKworICAgIGRlZiB3
cml0ZV9ieXRlcyhzZWxmLCBkYXRhKToKKyAgICAgICAgIiIiCisgICAgICAgIE9wZW4gdGhlIGZp
bGUgaW4gYnl0ZXMgbW9kZSwgd3JpdGUgdG8gaXQsIGFuZCBjbG9zZSB0aGUgZmlsZS4KKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRhdGEsIHNpeC5iaW5hcnlfdHlwZSk6
CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgJ2RhdGEgbXVz
dCBiZSAlcywgbm90ICVzJyAlCisgICAgICAgICAgICAgICAgKHNpeC5iaW5hcnlfdHlwZS5fX25h
bWVfXywgZGF0YS5fX2NsYXNzX18uX19uYW1lX18pKQorICAgICAgICB3aXRoIHNlbGYub3Blbiht
b2RlPSd3YicpIGFzIGY6CisgICAgICAgICAgICByZXR1cm4gZi53cml0ZShkYXRhKQorCisgICAg
ZGVmIHdyaXRlX3RleHQoc2VsZiwgZGF0YSwgZW5jb2Rpbmc9Tm9uZSwgZXJyb3JzPU5vbmUpOgor
ICAgICAgICAiIiIKKyAgICAgICAgT3BlbiB0aGUgZmlsZSBpbiB0ZXh0IG1vZGUsIHdyaXRlIHRv
IGl0LCBhbmQgY2xvc2UgdGhlIGZpbGUuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZShkYXRhLCBzaXgudGV4dF90eXBlKToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv
cigKKyAgICAgICAgICAgICAgICAnZGF0YSBtdXN0IGJlICVzLCBub3QgJXMnICUKKyAgICAgICAg
ICAgICAgICAoc2l4LnRleHRfdHlwZS5fX25hbWVfXywgZGF0YS5fX2NsYXNzX18uX19uYW1lX18p
KQorICAgICAgICB3aXRoIHNlbGYub3Blbihtb2RlPSd3JywgZW5jb2Rpbmc9ZW5jb2RpbmcsIGVy
cm9ycz1lcnJvcnMpIGFzIGY6CisgICAgICAgICAgICByZXR1cm4gZi53cml0ZShkYXRhKQorCisg
ICAgZGVmIHRvdWNoKHNlbGYsIG1vZGU9MG82NjYsIGV4aXN0X29rPVRydWUpOgorICAgICAgICAi
IiIKKyAgICAgICAgQ3JlYXRlIHRoaXMgZmlsZSB3aXRoIHRoZSBnaXZlbiBhY2Nlc3MgbW9kZSwg
aWYgaXQgZG9lc24ndCBleGlzdC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2Nsb3Nl
ZDoKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIGlmIGV4aXN0X29r
OgorICAgICAgICAgICAgIyBGaXJzdCB0cnkgdG8gYnVtcCBtb2RpZmljYXRpb24gdGltZQorICAg
ICAgICAgICAgIyBJbXBsZW1lbnRhdGlvbiBub3RlOiBHTlUgdG91Y2ggdXNlcyB0aGUgVVRJTUVf
Tk9XIG9wdGlvbiBvZgorICAgICAgICAgICAgIyB0aGUgdXRpbWVuc2F0KCkgLyBmdXRpbWVucygp
IGZ1bmN0aW9ucy4KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLl9hY2Nl
c3Nvci51dGltZShzZWxmLCBOb25lKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAg
ICAgICAgICAgICAgIyBBdm9pZCBleGNlcHRpb24gY2hhaW5pbmcKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICBm
bGFncyA9IG9zLk9fQ1JFQVQgfCBvcy5PX1dST05MWQorICAgICAgICBpZiBub3QgZXhpc3Rfb2s6
CisgICAgICAgICAgICBmbGFncyB8PSBvcy5PX0VYQ0wKKyAgICAgICAgZmQgPSBzZWxmLl9yYXdf
b3BlbihmbGFncywgbW9kZSkKKyAgICAgICAgb3MuY2xvc2UoZmQpCisKKyAgICBkZWYgbWtkaXIo
c2VsZiwgbW9kZT0wbzc3NywgcGFyZW50cz1GYWxzZSwgZXhpc3Rfb2s9RmFsc2UpOgorICAgICAg
ICAiIiIKKyAgICAgICAgQ3JlYXRlIGEgbmV3IGRpcmVjdG9yeSBhdCB0aGlzIGdpdmVuIHBhdGgu
CisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9jbG9zZWQ6CisgICAgICAgICAgICBzZWxm
Ll9yYWlzZV9jbG9zZWQoKQorCisgICAgICAgIGRlZiBfdHJ5X2Z1bmMoKToKKyAgICAgICAgICAg
IHNlbGYuX2FjY2Vzc29yLm1rZGlyKHNlbGYsIG1vZGUpCisKKyAgICAgICAgZGVmIF9leGNfZnVu
YyhleGMpOgorICAgICAgICAgICAgaWYgbm90IHBhcmVudHMgb3Igc2VsZi5wYXJlbnQgPT0gc2Vs
ZjoKKyAgICAgICAgICAgICAgICByYWlzZSBleGMKKyAgICAgICAgICAgIHNlbGYucGFyZW50Lm1r
ZGlyKHBhcmVudHM9VHJ1ZSwgZXhpc3Rfb2s9VHJ1ZSkKKyAgICAgICAgICAgIHNlbGYubWtkaXIo
bW9kZSwgcGFyZW50cz1GYWxzZSwgZXhpc3Rfb2s9ZXhpc3Rfb2spCisKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgX3RyeV9leGNlcHRfZmlsZW5vdGZvdW5kZXJyb3IoX3RyeV9mdW5jLCBfZXhj
X2Z1bmMpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgIyBDYW5ub3QgcmVs
eSBvbiBjaGVja2luZyBmb3IgRUVYSVNULCBzaW5jZSB0aGUgb3BlcmF0aW5nIHN5c3RlbQorICAg
ICAgICAgICAgIyBjb3VsZCBnaXZlIHByaW9yaXR5IHRvIG90aGVyIGVycm9ycyBsaWtlIEVBQ0NF
UyBvciBFUk9GUworICAgICAgICAgICAgaWYgbm90IGV4aXN0X29rIG9yIG5vdCBzZWxmLmlzX2Rp
cigpOgorICAgICAgICAgICAgICAgIHJhaXNlCisKKyAgICBkZWYgY2htb2Qoc2VsZiwgbW9kZSk6
CisgICAgICAgICIiIgorICAgICAgICBDaGFuZ2UgdGhlIHBlcm1pc3Npb25zIG9mIHRoZSBwYXRo
LCBsaWtlIG9zLmNobW9kKCkuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9jbG9zZWQ6
CisgICAgICAgICAgICBzZWxmLl9yYWlzZV9jbG9zZWQoKQorICAgICAgICBzZWxmLl9hY2Nlc3Nv
ci5jaG1vZChzZWxmLCBtb2RlKQorCisgICAgZGVmIGxjaG1vZChzZWxmLCBtb2RlKToKKyAgICAg
ICAgIiIiCisgICAgICAgIExpa2UgY2htb2QoKSwgZXhjZXB0IGlmIHRoZSBwYXRoIHBvaW50cyB0
byBhIHN5bWxpbmssIHRoZSBzeW1saW5rJ3MKKyAgICAgICAgcGVybWlzc2lvbnMgYXJlIGNoYW5n
ZWQsIHJhdGhlciB0aGFuIGl0cyB0YXJnZXQncy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNl
bGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIHNl
bGYuX2FjY2Vzc29yLmxjaG1vZChzZWxmLCBtb2RlKQorCisgICAgZGVmIHVubGluayhzZWxmKToK
KyAgICAgICAgIiIiCisgICAgICAgIFJlbW92ZSB0aGlzIGZpbGUgb3IgbGluay4KKyAgICAgICAg
SWYgdGhlIHBhdGggaXMgYSBkaXJlY3RvcnksIHVzZSBybWRpcigpIGluc3RlYWQuCisgICAgICAg
ICIiIgorICAgICAgICBpZiBzZWxmLl9jbG9zZWQ6CisgICAgICAgICAgICBzZWxmLl9yYWlzZV9j
bG9zZWQoKQorICAgICAgICBzZWxmLl9hY2Nlc3Nvci51bmxpbmsoc2VsZikKKworICAgIGRlZiBy
bWRpcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJlbW92ZSB0aGlzIGRpcmVjdG9yeS4g
IFRoZSBkaXJlY3RvcnkgbXVzdCBiZSBlbXB0eS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNl
bGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIHNl
bGYuX2FjY2Vzc29yLnJtZGlyKHNlbGYpCisKKyAgICBkZWYgbHN0YXQoc2VsZik6CisgICAgICAg
ICIiIgorICAgICAgICBMaWtlIHN0YXQoKSwgZXhjZXB0IGlmIHRoZSBwYXRoIHBvaW50cyB0byBh
IHN5bWxpbmssIHRoZSBzeW1saW5rJ3MKKyAgICAgICAgc3RhdHVzIGluZm9ybWF0aW9uIGlzIHJl
dHVybmVkLCByYXRoZXIgdGhhbiBpdHMgdGFyZ2V0J3MuCisgICAgICAgICIiIgorICAgICAgICBp
ZiBzZWxmLl9jbG9zZWQ6CisgICAgICAgICAgICBzZWxmLl9yYWlzZV9jbG9zZWQoKQorICAgICAg
ICByZXR1cm4gc2VsZi5fYWNjZXNzb3IubHN0YXQoc2VsZikKKworICAgIGRlZiByZW5hbWUoc2Vs
ZiwgdGFyZ2V0KToKKyAgICAgICAgIiIiCisgICAgICAgIFJlbmFtZSB0aGlzIHBhdGggdG8gdGhl
IGdpdmVuIHBhdGguCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9jbG9zZWQ6CisgICAg
ICAgICAgICBzZWxmLl9yYWlzZV9jbG9zZWQoKQorICAgICAgICBzZWxmLl9hY2Nlc3Nvci5yZW5h
bWUoc2VsZiwgdGFyZ2V0KQorCisgICAgZGVmIHJlcGxhY2Uoc2VsZiwgdGFyZ2V0KToKKyAgICAg
ICAgIiIiCisgICAgICAgIFJlbmFtZSB0aGlzIHBhdGggdG8gdGhlIGdpdmVuIHBhdGgsIGNsb2Ji
ZXJpbmcgdGhlIGV4aXN0aW5nCisgICAgICAgIGRlc3RpbmF0aW9uIGlmIGl0IGV4aXN0cy4KKyAg
ICAgICAgIiIiCisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMyk6CisgICAgICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJyZXBsYWNlKCkgaXMgb25seSBhdmFpbGFi
bGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aCBQeXRob24g
My4zIGFuZCBsYXRlciIpCisgICAgICAgIGlmIHNlbGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNl
bGYuX3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIHNlbGYuX2FjY2Vzc29yLnJlcGxhY2Uoc2VsZiwg
dGFyZ2V0KQorCisgICAgZGVmIHN5bWxpbmtfdG8oc2VsZiwgdGFyZ2V0LCB0YXJnZXRfaXNfZGly
ZWN0b3J5PUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ha2UgdGhpcyBwYXRoIGEgc3lt
bGluayBwb2ludGluZyB0byB0aGUgZ2l2ZW4gcGF0aC4KKyAgICAgICAgTm90ZSB0aGUgb3JkZXIg
b2YgYXJndW1lbnRzIChzZWxmLCB0YXJnZXQpIGlzIHRoZSByZXZlcnNlIG9mCisgICAgICAgIG9z
LnN5bWxpbmsncy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2Nsb3NlZDoKKyAgICAg
ICAgICAgIHNlbGYuX3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIHNlbGYuX2FjY2Vzc29yLnN5bWxp
bmsodGFyZ2V0LCBzZWxmLCB0YXJnZXRfaXNfZGlyZWN0b3J5KQorCisgICAgIyBDb252ZW5pZW5j
ZSBmdW5jdGlvbnMgZm9yIHF1ZXJ5aW5nIHRoZSBzdGF0IHJlc3VsdHMKKworICAgIGRlZiBleGlz
dHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGV0aGVyIHRoaXMgcGF0aCBleGlzdHMu
CisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnN0YXQoKQorICAg
ICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgbm90IF9pZ25vcmVfZXJy
b3IoZSk6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICMgTm9uLWVuY29kYWJsZSBw
YXRoCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAg
IGRlZiBpc19kaXIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGV0aGVyIHRoaXMgcGF0
aCBpcyBhIGRpcmVjdG9yeS4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHJldHVybiBTX0lTRElSKHNlbGYuc3RhdCgpLnN0X21vZGUpCisgICAgICAgIGV4Y2VwdCBPU0Vy
cm9yIGFzIGU6CisgICAgICAgICAgICBpZiBub3QgX2lnbm9yZV9lcnJvcihlKToKKyAgICAgICAg
ICAgICAgICByYWlzZQorICAgICAgICAgICAgIyBQYXRoIGRvZXNuJ3QgZXhpc3Qgb3IgaXMgYSBi
cm9rZW4gc3ltbGluaworICAgICAgICAgICAgIyAoc2VlIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9w
aXRyb3UvcGF0aGxpYi9pc3N1ZS8xMi8pCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAg
ICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAjIE5vbi1lbmNvZGFibGUgcGF0aAor
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgaXNfZmlsZShzZWxmKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFdoZXRoZXIgdGhpcyBwYXRoIGlzIGEgcmVndWxhciBmaWxlIChhbHNv
IFRydWUgZm9yIHN5bWxpbmtzIHBvaW50aW5nCisgICAgICAgIHRvIHJlZ3VsYXIgZmlsZXMpLgor
ICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIFNfSVNSRUcoc2Vs
Zi5zdGF0KCkuc3RfbW9kZSkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAg
ICAgIGlmIG5vdCBfaWdub3JlX2Vycm9yKGUpOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAg
ICAgICAgICAjIFBhdGggZG9lc24ndCBleGlzdCBvciBpcyBhIGJyb2tlbiBzeW1saW5rCisgICAg
ICAgICAgICAjIChzZWUgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3BpdHJvdS9wYXRobGliL2lzc3Vl
LzEyLykKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQgVmFsdWVFcnJv
cjoKKyAgICAgICAgICAgICMgTm9uLWVuY29kYWJsZSBwYXRoCisgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKworICAgIGRlZiBpc19tb3VudChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIENo
ZWNrIGlmIHRoaXMgcGF0aCBpcyBhIFBPU0lYIG1vdW50IHBvaW50CisgICAgICAgICIiIgorICAg
ICAgICAjIE5lZWQgdG8gZXhpc3QgYW5kIGJlIGEgZGlyCisgICAgICAgIGlmIG5vdCBzZWxmLmV4
aXN0cygpIG9yIG5vdCBzZWxmLmlzX2RpcigpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICAgICAgcGFyZW50ID0gUGF0aChzZWxmLnBhcmVudCkKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgcGFyZW50X2RldiA9IHBhcmVudC5zdGF0KCkuc3RfZGV2CisgICAgICAgIGV4Y2VwdCBP
U0Vycm9yOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgZGV2ID0gc2VsZi5z
dGF0KCkuc3RfZGV2CisgICAgICAgIGlmIGRldiAhPSBwYXJlbnRfZGV2OgorICAgICAgICAgICAg
cmV0dXJuIFRydWUKKyAgICAgICAgaW5vID0gc2VsZi5zdGF0KCkuc3RfaW5vCisgICAgICAgIHBh
cmVudF9pbm8gPSBwYXJlbnQuc3RhdCgpLnN0X2lubworICAgICAgICByZXR1cm4gaW5vID09IHBh
cmVudF9pbm8KKworICAgIGRlZiBpc19zeW1saW5rKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg
ICAgV2hldGhlciB0aGlzIHBhdGggaXMgYSBzeW1ib2xpYyBsaW5rLgorICAgICAgICAiIiIKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIFNfSVNMTksoc2VsZi5sc3RhdCgpLnN0X21v
ZGUpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICBpZiBub3QgX2ln
bm9yZV9lcnJvcihlKToKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgIyBQYXRo
IGRvZXNuJ3QgZXhpc3QKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQg
VmFsdWVFcnJvcjoKKyAgICAgICAgICAgICMgTm9uLWVuY29kYWJsZSBwYXRoCisgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBpc19ibG9ja19kZXZpY2Uoc2VsZik6CisgICAgICAg
ICIiIgorICAgICAgICBXaGV0aGVyIHRoaXMgcGF0aCBpcyBhIGJsb2NrIGRldmljZS4KKyAgICAg
ICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBTX0lTQkxLKHNlbGYuc3Rh
dCgpLnN0X21vZGUpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICBp
ZiBub3QgX2lnbm9yZV9lcnJvcihlKToKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAg
ICAgIyBQYXRoIGRvZXNuJ3QgZXhpc3Qgb3IgaXMgYSBicm9rZW4gc3ltbGluaworICAgICAgICAg
ICAgIyAoc2VlIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9waXRyb3UvcGF0aGxpYi9pc3N1ZS8xMi8p
CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Cisg
ICAgICAgICAgICAjIE5vbi1lbmNvZGFibGUgcGF0aAorICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisKKyAgICBkZWYgaXNfY2hhcl9kZXZpY2Uoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBX
aGV0aGVyIHRoaXMgcGF0aCBpcyBhIGNoYXJhY3RlciBkZXZpY2UuCisgICAgICAgICIiIgorICAg
ICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gU19JU0NIUihzZWxmLnN0YXQoKS5zdF9tb2Rl
KQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgbm90IF9pZ25v
cmVfZXJyb3IoZSk6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICMgUGF0aCBk
b2Vzbid0IGV4aXN0IG9yIGlzIGEgYnJva2VuIHN5bWxpbmsKKyAgICAgICAgICAgICMgKHNlZSBo
dHRwczovL2JpdGJ1Y2tldC5vcmcvcGl0cm91L3BhdGhsaWIvaXNzdWUvMTIvKQorICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAg
IyBOb24tZW5jb2RhYmxlIHBhdGgKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVm
IGlzX2ZpZm8oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGV0aGVyIHRoaXMgcGF0aCBp
cyBhIEZJRk8uCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4g
U19JU0ZJRk8oc2VsZi5zdGF0KCkuc3RfbW9kZSkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMg
ZToKKyAgICAgICAgICAgIGlmIG5vdCBfaWdub3JlX2Vycm9yKGUpOgorICAgICAgICAgICAgICAg
IHJhaXNlCisgICAgICAgICAgICAjIFBhdGggZG9lc24ndCBleGlzdCBvciBpcyBhIGJyb2tlbiBz
eW1saW5rCisgICAgICAgICAgICAjIChzZWUgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3BpdHJvdS9w
YXRobGliL2lzc3VlLzEyLykKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBleGNl
cHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICMgTm9uLWVuY29kYWJsZSBwYXRoCisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBpc19zb2NrZXQoc2VsZik6CisgICAgICAgICIi
IgorICAgICAgICBXaGV0aGVyIHRoaXMgcGF0aCBpcyBhIHNvY2tldC4KKyAgICAgICAgIiIiCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBTX0lTU09DSyhzZWxmLnN0YXQoKS5zdF9t
b2RlKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgbm90IF9p
Z25vcmVfZXJyb3IoZSk6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICMgUGF0
aCBkb2Vzbid0IGV4aXN0IG9yIGlzIGEgYnJva2VuIHN5bWxpbmsKKyAgICAgICAgICAgICMgKHNl
ZSBodHRwczovL2JpdGJ1Y2tldC5vcmcvcGl0cm91L3BhdGhsaWIvaXNzdWUvMTIvKQorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAg
ICAgIyBOb24tZW5jb2RhYmxlIHBhdGgKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ZGVmIGV4cGFuZHVzZXIoc2VsZik6CisgICAgICAgICIiIiBSZXR1cm4gYSBuZXcgcGF0aCB3aXRo
IGV4cGFuZGVkIH4gYW5kIH51c2VyIGNvbnN0cnVjdHMKKyAgICAgICAgKGFzIHJldHVybmVkIGJ5
IG9zLnBhdGguZXhwYW5kdXNlcikKKyAgICAgICAgIiIiCisgICAgICAgIGlmIChub3QgKHNlbGYu
X2RydiBvciBzZWxmLl9yb290KQorICAgICAgICAgICAgICAgIGFuZCBzZWxmLl9wYXJ0cyBhbmQg
c2VsZi5fcGFydHNbMF1bOjFdID09ICd+Jyk6CisgICAgICAgICAgICBob21lZGlyID0gc2VsZi5f
Zmxhdm91ci5nZXRob21lZGlyKHNlbGYuX3BhcnRzWzBdWzE6XSkKKyAgICAgICAgICAgIHJldHVy
biBzZWxmLl9mcm9tX3BhcnRzKFtob21lZGlyXSArIHNlbGYuX3BhcnRzWzE6XSkKKworICAgICAg
ICByZXR1cm4gc2VsZgorCisKK2NsYXNzIFBvc2l4UGF0aChQYXRoLCBQdXJlUG9zaXhQYXRoKToK
KyAgICAiIiJQYXRoIHN1YmNsYXNzIGZvciBub24tV2luZG93cyBzeXN0ZW1zLgorCisgICAgT24g
YSBQT1NJWCBzeXN0ZW0sIGluc3RhbnRpYXRpbmcgYSBQYXRoIHNob3VsZCByZXR1cm4gdGhpcyBv
YmplY3QuCisgICAgIiIiCisgICAgX19zbG90c19fID0gKCkKKworCitjbGFzcyBXaW5kb3dzUGF0
aChQYXRoLCBQdXJlV2luZG93c1BhdGgpOgorICAgICIiIlBhdGggc3ViY2xhc3MgZm9yIFdpbmRv
d3Mgc3lzdGVtcy4KKworICAgIE9uIGEgV2luZG93cyBzeXN0ZW0sIGluc3RhbnRpYXRpbmcgYSBQ
YXRoIHNob3VsZCByZXR1cm4gdGhpcyBvYmplY3QuCisgICAgIiIiCisgICAgX19zbG90c19fID0g
KCkKKworICAgIGRlZiBvd25lcihzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF
cnJvcigiUGF0aC5vd25lcigpIGlzIHVuc3VwcG9ydGVkIG9uIHRoaXMgc3lzdGVtIikKKworICAg
IGRlZiBncm91cChzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiUGF0
aC5ncm91cCgpIGlzIHVuc3VwcG9ydGVkIG9uIHRoaXMgc3lzdGVtIikKKworICAgIGRlZiBpc19t
b3VudChzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigKKyAgICAgICAg
ICAgICJQYXRoLmlzX21vdW50KCkgaXMgdW5zdXBwb3J0ZWQgb24gdGhpcyBzeXN0ZW0iKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYXRobGliMi9wYXRobGliMi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0
aGxpYjIvcGF0aGxpYjIvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjMwYzI3NTNiMTdkY2M3
MDc0MzZkMGUxM2FlOGVmMTQzNjA2NDJmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxp
YjIvcGF0aGxpYjIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYXRobGliMi9wYXRobGliMi9fX2luaXRfXy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGli
Mi9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9yZXF1aXJlbWVudHMudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjlkNDMyMTI3OTAwZWNhN2I0YzFiNGY0YTA1ODc0MDI2ZjU4NWNjMDEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3JlcXVpcmVtZW50cy50eHQKQEAgLTAsMCArMSwzIEBA
CitzaXgKK3NjYW5kaXI7IHB5dGhvbl92ZXJzaW9uIDwgJzMuNScKK21vY2s7IHB5dGhvbl92ZXJz
aW9uIDwgJzMuMycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvc2V0dXAuY2ZnIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YXRobGliMi9zZXR1cC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJhZmM4NjFkMzE1NGU2ZTkzNzQyYjkxNjFh
MzM0ZDVjODE2ZjJjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvc2V0dXAuY2Zn
CkBAIC0wLDAgKzEsOCBAQAorW25vc2V0ZXN0c10KK3dpdGgtY292ZXJhZ2U9MQorY292ZXItcGFj
a2FnZT1wYXRobGliMgorY292ZXItYnJhbmNoZXM9MQorY292ZXItaHRtbD0xCisKK1t3aGVlbF0K
K3VuaXZlcnNhbCA9IDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvc2V0dXAucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhdGhsaWIyL3NldHVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiYjZhYWEwZGZhZTVmNzdhNzE0ODZlMDJj
OGZiMTcxYjMzNWI2OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3NldHVwLnB5
CkBAIC0wLDAgKzEsNDggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE0LTIwMTcgTWF0dGhpYXMgQy4g
TS4gVHJvZmZhZXMKKyMgQ29weXJpZ2h0IChjKSAyMDEyLTIwMTQgQW50b2luZSBQaXRyb3UgYW5k
IGNvbnRyaWJ1dG9ycworIyBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBM
aWNlbnNlLgorCitpbXBvcnQgaW8KK2Zyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAsIGZpbmRf
cGFja2FnZXMKKworCitkZWYgcmVhZGZpbGUoZmlsZW5hbWUpOgorICAgIHdpdGggaW8ub3Blbihm
aWxlbmFtZSwgZW5jb2Rpbmc9InV0Zi04IikgYXMgc3RyZWFtOgorICAgICAgICByZXR1cm4gc3Ry
ZWFtLnJlYWQoKS5zcGxpdCgiXG4iKQorCisKK3JlYWRtZSA9IHJlYWRmaWxlKCJSRUFETUUucnN0
IilbNTpdICAjIHNraXAgdGl0bGUgYW5kIGJhZGdlcwordmVyc2lvbiA9IHJlYWRmaWxlKCJWRVJT
SU9OIilbMF0uc3RyaXAoKQorCitzZXR1cCgKKyAgICBuYW1lPSdwYXRobGliMicsCisgICAgdmVy
c2lvbj12ZXJzaW9uLAorICAgIHBhY2thZ2VzPWZpbmRfcGFja2FnZXMoKSwKKyAgICBsaWNlbnNl
PSdNSVQnLAorICAgIGRlc2NyaXB0aW9uPSdPYmplY3Qtb3JpZW50ZWQgZmlsZXN5c3RlbSBwYXRo
cycsCisgICAgbG9uZ19kZXNjcmlwdGlvbj0iXG4iLmpvaW4ocmVhZG1lWzI6XSksCisgICAgYXV0
aG9yPSdNYXR0aGlhcyBDLiBNLiBUcm9mZmFlcycsCisgICAgYXV0aG9yX2VtYWlsPSdtYXR0aGlh
cy50cm9mZmFlc0BnbWFpbC5jb20nLAorICAgIGNsYXNzaWZpZXJzPVsKKyAgICAgICAgJ0RldmVs
b3BtZW50IFN0YXR1cyA6OiA1IC0gUHJvZHVjdGlvbi9TdGFibGUnLAorICAgICAgICAnSW50ZW5k
ZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycycsCisgICAgICAgICdMaWNlbnNlIDo6IE9TSSBBcHBy
b3ZlZCA6OiBNSVQgTGljZW5zZScsCisgICAgICAgICdPcGVyYXRpbmcgU3lzdGVtIDo6IE9TIElu
ZGVwZW5kZW50JywKKyAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbicsCisg
ICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMicsCisgICAgICAgICdQ
cm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMycsCisgICAgICAgICdQcm9ncmFtbWlu
ZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi42JywKKyAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1
YWdlIDo6IFB5dGhvbiA6OiAyLjcnLAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjog
UHl0aG9uIDo6IDMuNCcsCisgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24g
OjogMy41JywKKyAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjYn
LAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNycsCisgICAg
ICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMnLAorICAgICAg
ICAnVG9waWMgOjogU3lzdGVtIDo6IEZpbGVzeXN0ZW1zJywKKyAgICAgICAgXSwKKyAgICB1cmw9
J2h0dHBzOi8vZ2l0aHViLmNvbS9tY210cm9mZmFlcy9wYXRobGliMicsCisgICAgaW5zdGFsbF9y
ZXF1aXJlcz1bJ3NpeCddLAorICAgIGV4dHJhc19yZXF1aXJlPXsKKyAgICAgICAgJzpweXRob25f
dmVyc2lvbjwiMy41Iic6IFsnc2NhbmRpciddLAorICAgICAgICB9LAorKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYXRobGliMi90ZXN0cy90ZXN0X3BhdGhsaWIyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi90ZXN0
cy90ZXN0X3BhdGhsaWIyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1YTUyODFhOWQ3MjRmNmQxOTNlM2Q2YTgz
ZmYwZTBlZDNlNTMxZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3Rlc3RzL3Rl
c3RfcGF0aGxpYjIucHkKQEAgLTAsMCArMSwyNDA2IEBACisjIENvcHlyaWdodCAoYykgMjAxNC0y
MDE3IE1hdHRoaWFzIEMuIE0uIFRyb2ZmYWVzCisjIENvcHlyaWdodCAoYykgMjAxMi0yMDE0IEFu
dG9pbmUgUGl0cm91IGFuZCBjb250cmlidXRvcnMKKyMgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBNSVQgTGljZW5zZS4KKworCitpbXBvcnQgaW8KK2ltcG9ydCBvcworaW1wb3J0
IGVycm5vCitpbXBvcnQgcGF0aGxpYjIgYXMgcGF0aGxpYgoraW1wb3J0IHBpY2tsZQoraW1wb3J0
IHNpeAoraW1wb3J0IHNvY2tldAoraW1wb3J0IHN0YXQKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZW1w
ZmlsZQorCitpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAzKToKKyAgICBpbXBvcnQgY29sbGVj
dGlvbnMuYWJjIGFzIGNvbGxlY3Rpb25zX2FiYworZWxzZToKKyAgICBpbXBvcnQgY29sbGVjdGlv
bnMgYXMgY29sbGVjdGlvbnNfYWJjCisKK2lmIHN5cy52ZXJzaW9uX2luZm8gPCAoMiwgNyk6Cisg
ICAgdHJ5OgorICAgICAgICBpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CisgICAgZXhjZXB0
IEltcG9ydEVycm9yOgorICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigidW5pdHRlc3QyIGlzIHJl
cXVpcmVkIGZvciB0ZXN0cyBvbiBwcmUtMi43IikKK2Vsc2U6CisgICAgaW1wb3J0IHVuaXR0ZXN0
CisKK2lmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMyk6CisgICAgdHJ5OgorICAgICAgICBpbXBv
cnQgbW9jaworICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgcmFpc2UgSW1wb3J0RXJy
b3IoIm1vY2sgaXMgcmVxdWlyZWQgZm9yIHRlc3RzIG9uIHByZS0zLjMiKQorZWxzZToKKyAgICBm
cm9tIHVuaXR0ZXN0IGltcG9ydCBtb2NrCisKKyMgYXNzZXJ0UmFpc2VzUmVnZXggaXMgbWlzc2lu
ZyBwcmlvciB0byBQeXRob24gMy4yCitpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDIpOgorICAg
IHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydFJhaXNlc1JlZ2V4ID0gdW5pdHRlc3QuVGVzdENhc2Uu
YXNzZXJ0UmFpc2VzUmVnZXhwCisKK3RyeToKKyAgICBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQK
K2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIHRlc3QgaW1wb3J0IHRlc3Rfc3VwcG9ydCBh
cyBzdXBwb3J0CisKK2FuZHJvaWRfbm90X3Jvb3QgPSBnZXRhdHRyKHN1cHBvcnQsICJhbmRyb2lk
X25vdF9yb290IiwgRmFsc2UpCisKK1RFU1RGTiA9IHN1cHBvcnQuVEVTVEZOCisKKyMgd29yayBh
cm91bmQgYnJva2VuIHN1cHBvcnQucm10cmVlIG9uIFB5dGhvbiAzLjMgb24gV2luZG93cworaWYg
KG9zLm5hbWUgPT0gJ250JworICAgICAgICBhbmQgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCkg
YW5kIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgNCkpOgorICAgIGltcG9ydCBzaHV0aWwKKyAgICBz
dXBwb3J0LnJtdHJlZSA9IHNodXRpbC5ybXRyZWUKKwordHJ5OgorICAgIGltcG9ydCBncnAKKyAg
ICBpbXBvcnQgcHdkCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZ3JwID0gcHdkID0gTm9uZQor
CisjIHN1cHBvcnQuY2FuX3N5bWxpbmsgaXMgbWlzc2luZyBwcmlvciB0byBQeXRob24gMworaWYg
c2l4LlBZMjoKKworICAgIGRlZiBzdXBwb3J0X2Nhbl9zeW1saW5rKCk6CisgICAgICAgIHJldHVy
biBwYXRobGliLnN1cHBvcnRzX3N5bWxpbmtzCisKKyAgICBzdXBwb3J0X3NraXBfdW5sZXNzX3N5
bWxpbmsgPSB1bml0dGVzdC5za2lwSWYoCisgICAgICAgIG5vdCBwYXRobGliLnN1cHBvcnRzX3N5
bWxpbmtzLAorICAgICAgICAic3ltbGlua3Mgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3Jt
IikKK2Vsc2U6CisgICAgc3VwcG9ydF9jYW5fc3ltbGluayA9IHN1cHBvcnQuY2FuX3N5bWxpbmsK
KyAgICBzdXBwb3J0X3NraXBfdW5sZXNzX3N5bWxpbmsgPSBzdXBwb3J0LnNraXBfdW5sZXNzX3N5
bWxpbmsKKworCisjIEJhY2twb3J0ZWQgZnJvbSAzLjQKK2RlZiBmc19pc19jYXNlX2luc2Vuc2l0
aXZlKGRpcmVjdG9yeSk6CisgICAgIiIiRGV0ZWN0cyBpZiB0aGUgZmlsZSBzeXN0ZW0gZm9yIHRo
ZSBzcGVjaWZpZWQgZGlyZWN0b3J5IGlzCisgICAgY2FzZS1pbnNlbnNpdGl2ZS4KKyAgICAiIiIK
KyAgICBiYXNlX2ZwLCBiYXNlX3BhdGggPSB0ZW1wZmlsZS5ta3N0ZW1wKGRpcj1kaXJlY3Rvcnkp
CisgICAgY2FzZV9wYXRoID0gYmFzZV9wYXRoLnVwcGVyKCkKKyAgICBpZiBjYXNlX3BhdGggPT0g
YmFzZV9wYXRoOgorICAgICAgICBjYXNlX3BhdGggPSBiYXNlX3BhdGgubG93ZXIoKQorICAgIHRy
eToKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguc2FtZWZpbGUoYmFzZV9wYXRoLCBjYXNlX3BhdGgp
CisgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5F
Tk9FTlQ6CisgICAgICAgICAgICByYWlzZQorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBmaW5h
bGx5OgorICAgICAgICBvcy51bmxpbmsoYmFzZV9wYXRoKQorCisKK3N1cHBvcnQuZnNfaXNfY2Fz
ZV9pbnNlbnNpdGl2ZSA9IGZzX2lzX2Nhc2VfaW5zZW5zaXRpdmUKKworCitjbGFzcyBfQmFzZUZs
YXZvdXJUZXN0KG9iamVjdCk6CisKKyAgICBkZWYgX2NoZWNrX3BhcnNlX3BhcnRzKHNlbGYsIGFy
ZywgZXhwZWN0ZWQpOgorICAgICAgICBmID0gc2VsZi5mbGF2b3VyLnBhcnNlX3BhcnRzCisgICAg
ICAgIHNlcCA9IHNlbGYuZmxhdm91ci5zZXAKKyAgICAgICAgYWx0c2VwID0gc2VsZi5mbGF2b3Vy
LmFsdHNlcAorICAgICAgICBhY3R1YWwgPSBmKFt4LnJlcGxhY2UoJy8nLCBzZXApIGZvciB4IGlu
IGFyZ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsLCBleHBlY3RlZCkKKyAgICAg
ICAgaWYgYWx0c2VwOgorICAgICAgICAgICAgYWN0dWFsID0gZihbeC5yZXBsYWNlKCcvJywgYWx0
c2VwKSBmb3IgeCBpbiBhcmddKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWws
IGV4cGVjdGVkKQorICAgICAgICBkcnYsIHJvb3QsIHBhcnRzID0gYWN0dWFsCisgICAgICAgICMg
bmVpdGhlciBieXRlcyAocHkzKSBub3IgdW5pY29kZSAocHkyKQorICAgICAgICBzZWxmLmFzc2Vy
dElzSW5zdGFuY2UoZHJ2LCBzdHIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShyb290
LCBzdHIpCisgICAgICAgIGZvciBwIGluIHBhcnRzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJ
c0luc3RhbmNlKHAsIHN0cikKKworICAgIGRlZiB0ZXN0X3BhcnNlX3BhcnRzX2NvbW1vbihzZWxm
KToKKyAgICAgICAgY2hlY2sgPSBzZWxmLl9jaGVja19wYXJzZV9wYXJ0cworICAgICAgICBzZXAg
PSBzZWxmLmZsYXZvdXIuc2VwCisgICAgICAgICMgVW5hbmNob3JlZCBwYXJ0cworICAgICAgICBj
aGVjayhbXSwgICAgICAgICAgICAgICAgICAgKCcnLCAnJywgW10pKQorICAgICAgICBjaGVjayhb
J2EnXSwgICAgICAgICAgICAgICAgKCcnLCAnJywgWydhJ10pKQorICAgICAgICBjaGVjayhbJ2Ev
J10sICAgICAgICAgICAgICAgKCcnLCAnJywgWydhJ10pKQorICAgICAgICBjaGVjayhbJ2EnLCAn
YiddLCAgICAgICAgICAgKCcnLCAnJywgWydhJywgJ2InXSkpCisgICAgICAgICMgRXhwYW5zaW9u
CisgICAgICAgIGNoZWNrKFsnYS9iJ10sICAgICAgICAgICAgICAoJycsICcnLCBbJ2EnLCAnYidd
KSkKKyAgICAgICAgY2hlY2soWydhL2IvJ10sICAgICAgICAgICAgICgnJywgJycsIFsnYScsICdi
J10pKQorICAgICAgICBjaGVjayhbJ2EnLCAnYi9jJywgJ2QnXSwgICAgKCcnLCAnJywgWydhJywg
J2InLCAnYycsICdkJ10pKQorICAgICAgICAjIENvbGxhcHNpbmcgYW5kIHN0cmlwcGluZyBleGNl
c3Mgc2xhc2hlcworICAgICAgICBjaGVjayhbJ2EnLCAnYi8vYycsICdkJ10sICAgKCcnLCAnJywg
WydhJywgJ2InLCAnYycsICdkJ10pKQorICAgICAgICBjaGVjayhbJ2EnLCAnYi9jLycsICdkJ10s
ICAgKCcnLCAnJywgWydhJywgJ2InLCAnYycsICdkJ10pKQorICAgICAgICAjIEVsaW1pbmF0aW5n
IHN0YW5kYWxvbmUgZG90cworICAgICAgICBjaGVjayhbJy4nXSwgICAgICAgICAgICAgICAgKCcn
LCAnJywgW10pKQorICAgICAgICBjaGVjayhbJy4nLCAnLicsICdiJ10sICAgICAgKCcnLCAnJywg
WydiJ10pKQorICAgICAgICBjaGVjayhbJ2EnLCAnLicsICdiJ10sICAgICAgKCcnLCAnJywgWydh
JywgJ2InXSkpCisgICAgICAgIGNoZWNrKFsnYScsICcuJywgJy4nXSwgICAgICAoJycsICcnLCBb
J2EnXSkpCisgICAgICAgICMgVGhlIGZpcnN0IHBhcnQgaXMgYW5jaG9yZWQKKyAgICAgICAgY2hl
Y2soWycvYS9iJ10sICAgICAgICAgICAgICgnJywgc2VwLCBbc2VwLCAnYScsICdiJ10pKQorICAg
ICAgICBjaGVjayhbJy9hJywgJ2InXSwgICAgICAgICAgKCcnLCBzZXAsIFtzZXAsICdhJywgJ2In
XSkpCisgICAgICAgIGNoZWNrKFsnL2EvJywgJ2InXSwgICAgICAgICAoJycsIHNlcCwgW3NlcCwg
J2EnLCAnYiddKSkKKyAgICAgICAgIyBJZ25vcmluZyBwYXJ0cyBiZWZvcmUgYW4gYW5jaG9yZWQg
cGFydAorICAgICAgICBjaGVjayhbJ2EnLCAnL2InLCAnYyddLCAgICAgKCcnLCBzZXAsIFtzZXAs
ICdiJywgJ2MnXSkpCisgICAgICAgIGNoZWNrKFsnYScsICcvYicsICcvYyddLCAgICAoJycsIHNl
cCwgW3NlcCwgJ2MnXSkpCisKKworY2xhc3MgUG9zaXhGbGF2b3VyVGVzdChfQmFzZUZsYXZvdXJU
ZXN0LCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZmxhdm91ciA9IHBhdGhsaWIuX3Bvc2l4X2Zs
YXZvdXIKKworICAgIGRlZiB0ZXN0X3BhcnNlX3BhcnRzKHNlbGYpOgorICAgICAgICBjaGVjayA9
IHNlbGYuX2NoZWNrX3BhcnNlX3BhcnRzCisgICAgICAgICMgQ29sbGFwc2luZyBvZiBleGNlc3Mg
bGVhZGluZyBzbGFzaGVzLCBleGNlcHQgZm9yIHRoZSBkb3VibGUtc2xhc2gKKyAgICAgICAgIyBz
cGVjaWFsIGNhc2UuCisgICAgICAgIGNoZWNrKFsnLy9hJywgJ2InXSwgICAgICAgICAgICAgKCcn
LCAnLy8nLCBbJy8vJywgJ2EnLCAnYiddKSkKKyAgICAgICAgY2hlY2soWycvLy9hJywgJ2InXSwg
ICAgICAgICAgICAoJycsICcvJywgWycvJywgJ2EnLCAnYiddKSkKKyAgICAgICAgY2hlY2soWycv
Ly8vYScsICdiJ10sICAgICAgICAgICAoJycsICcvJywgWycvJywgJ2EnLCAnYiddKSkKKyAgICAg
ICAgIyBQYXRocyB3aGljaCBsb29rIGxpa2UgTlQgcGF0aHMgYXJlbid0IHRyZWF0ZWQgc3BlY2lh
bGx5CisgICAgICAgIGNoZWNrKFsnYzphJ10sICAgICAgICAgICAgICAgICAgKCcnLCAnJywgWydj
OmEnXSkpCisgICAgICAgIGNoZWNrKFsnYzpcXGEnXSwgICAgICAgICAgICAgICAgKCcnLCAnJywg
WydjOlxcYSddKSkKKyAgICAgICAgY2hlY2soWydcXGEnXSwgICAgICAgICAgICAgICAgICAoJycs
ICcnLCBbJ1xcYSddKSkKKworICAgIGRlZiB0ZXN0X3NwbGl0cm9vdChzZWxmKToKKyAgICAgICAg
ZiA9IHNlbGYuZmxhdm91ci5zcGxpdHJvb3QKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCcn
KSwgKCcnLCAnJywgJycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ2EnKSwgKCcnLCAn
JywgJ2EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCdhL2InKSwgKCcnLCAnJywgJ2Ev
YicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ2EvYi8nKSwgKCcnLCAnJywgJ2EvYi8n
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCcvYScpLCAoJycsICcvJywgJ2EnKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCcvYS9iJyksICgnJywgJy8nLCAnYS9iJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZignL2EvYi8nKSwgKCcnLCAnLycsICdhL2IvJykpCisgICAg
ICAgICMgVGhlIHJvb3QgaXMgY29sbGFwc2VkIHdoZW4gdGhlcmUgYXJlIHJlZHVuZGFudCBzbGFz
aGVzCisgICAgICAgICMgZXhjZXB0IHdoZW4gdGhlcmUgYXJlIGV4YWN0bHkgdHdvIGxlYWRpbmcg
c2xhc2hlcywgd2hpY2gKKyAgICAgICAgIyBpcyBhIHNwZWNpYWwgY2FzZSBpbiBQT1NJWC4KKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCcvL2EnKSwgKCcnLCAnLy8nLCAnYScpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGYoJy8vL2EnKSwgKCcnLCAnLycsICdhJykpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZignLy8vYS9iJyksICgnJywgJy8nLCAnYS9iJykpCisgICAgICAgICMg
UGF0aHMgd2hpY2ggbG9vayBsaWtlIE5UIHBhdGhzIGFyZW4ndCB0cmVhdGVkIHNwZWNpYWxseQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ2M6L2EvYicpLCAoJycsICcnLCAnYzovYS9iJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZignXFwvYS9iJyksICgnJywgJycsICdcXC9hL2In
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCdcXGFcXGInKSwgKCcnLCAnJywgJ1xcYVxc
YicpKQorCisKK2NsYXNzIE5URmxhdm91clRlc3QoX0Jhc2VGbGF2b3VyVGVzdCwgdW5pdHRlc3Qu
VGVzdENhc2UpOgorICAgIGZsYXZvdXIgPSBwYXRobGliLl93aW5kb3dzX2ZsYXZvdXIKKworICAg
IGRlZiB0ZXN0X3BhcnNlX3BhcnRzKHNlbGYpOgorICAgICAgICBjaGVjayA9IHNlbGYuX2NoZWNr
X3BhcnNlX3BhcnRzCisgICAgICAgICMgRmlyc3QgcGFydCBpcyBhbmNob3JlZAorICAgICAgICBj
aGVjayhbJ2M6J10sICAgICAgICAgICAgICAgICgnYzonLCAnJywgWydjOiddKSkKKyAgICAgICAg
Y2hlY2soWydjOi8nXSwgICAgICAgICAgICAgICAoJ2M6JywgJ1xcJywgWydjOlxcJ10pKQorICAg
ICAgICBjaGVjayhbJy8nXSwgICAgICAgICAgICAgICAgICgnJywgJ1xcJywgWydcXCddKSkKKyAg
ICAgICAgY2hlY2soWydjOmEnXSwgICAgICAgICAgICAgICAoJ2M6JywgJycsIFsnYzonLCAnYSdd
KSkKKyAgICAgICAgY2hlY2soWydjOi9hJ10sICAgICAgICAgICAgICAoJ2M6JywgJ1xcJywgWydj
OlxcJywgJ2EnXSkpCisgICAgICAgIGNoZWNrKFsnL2EnXSwgICAgICAgICAgICAgICAgKCcnLCAn
XFwnLCBbJ1xcJywgJ2EnXSkpCisgICAgICAgICMgVU5DIHBhdGhzCisgICAgICAgIGNoZWNrKFsn
Ly9hL2InXSwgICAgICAgICAgICAgKCdcXFxcYVxcYicsICdcXCcsIFsnXFxcXGFcXGJcXCddKSkK
KyAgICAgICAgY2hlY2soWycvL2EvYi8nXSwgICAgICAgICAgICAoJ1xcXFxhXFxiJywgJ1xcJywg
WydcXFxcYVxcYlxcJ10pKQorICAgICAgICBjaGVjayhbJy8vYS9iL2MnXSwgICAgICAgICAgICgn
XFxcXGFcXGInLCAnXFwnLCBbJ1xcXFxhXFxiXFwnLCAnYyddKSkKKyAgICAgICAgIyBTZWNvbmQg
cGFydCBpcyBhbmNob3JlZCwgc28gdGhhdCB0aGUgZmlyc3QgcGFydCBpcyBpZ25vcmVkCisgICAg
ICAgIGNoZWNrKFsnYScsICdaOmInLCAnYyddLCAgICAgKCdaOicsICcnLCBbJ1o6JywgJ2InLCAn
YyddKSkKKyAgICAgICAgY2hlY2soWydhJywgJ1o6L2InLCAnYyddLCAgICAoJ1o6JywgJ1xcJywg
WydaOlxcJywgJ2InLCAnYyddKSkKKyAgICAgICAgIyBVTkMgcGF0aHMKKyAgICAgICAgY2hlY2so
WydhJywgJy8vYi9jJywgJ2QnXSwgICAoJ1xcXFxiXFxjJywgJ1xcJywgWydcXFxcYlxcY1xcJywg
J2QnXSkpCisgICAgICAgICMgQ29sbGFwc2luZyBhbmQgc3RyaXBwaW5nIGV4Y2VzcyBzbGFzaGVz
CisgICAgICAgIGNoZWNrKFsnYScsICdaOi8vYi8vYy8nLCAnZC8nXSwgKCdaOicsICdcXCcsIFsn
WjpcXCcsICdiJywgJ2MnLCAnZCddKSkKKyAgICAgICAgIyBVTkMgcGF0aHMKKyAgICAgICAgY2hl
Y2soWydhJywgJy8vYi9jLy8nLCAnZCddLCAoJ1xcXFxiXFxjJywgJ1xcJywgWydcXFxcYlxcY1xc
JywgJ2QnXSkpCisgICAgICAgICMgRXh0ZW5kZWQgcGF0aHMKKyAgICAgICAgY2hlY2soWycvLz8v
YzovJ10sICAgICAgICAgICAoJ1xcXFw/XFxjOicsICdcXCcsIFsnXFxcXD9cXGM6XFwnXSkpCisg
ICAgICAgIGNoZWNrKFsnLy8/L2M6L2EnXSwgICAgICAgICAgKCdcXFxcP1xcYzonLCAnXFwnLCBb
J1xcXFw/XFxjOlxcJywgJ2EnXSkpCisgICAgICAgIGNoZWNrKFsnLy8/L2M6L2EnLCAnL2InXSwg
ICAgKCdcXFxcP1xcYzonLCAnXFwnLCBbJ1xcXFw/XFxjOlxcJywgJ2InXSkpCisgICAgICAgICMg
RXh0ZW5kZWQgVU5DIHBhdGhzIChmb3JtYXQgaXMgIlxcP1xVTkNcc2VydmVyXHNoYXJlIikKKyAg
ICAgICAgY2hlY2soWycvLz8vVU5DL2IvYyddLAorICAgICAgICAgICAgICAoJ1xcXFw/XFxVTkNc
XGJcXGMnLCAnXFwnLCBbJ1xcXFw/XFxVTkNcXGJcXGNcXCddKSkKKyAgICAgICAgY2hlY2soWycv
Lz8vVU5DL2IvYy9kJ10sCisgICAgICAgICAgICAgICgnXFxcXD9cXFVOQ1xcYlxcYycsICdcXCcs
IFsnXFxcXD9cXFVOQ1xcYlxcY1xcJywgJ2QnXSkpCisgICAgICAgICMgU2Vjb25kIHBhcnQgaGFz
IGEgcm9vdCBidXQgbm90IGRyaXZlCisgICAgICAgIGNoZWNrKFsnYScsICcvYicsICdjJ10sICAg
ICAgKCcnLCAnXFwnLCBbJ1xcJywgJ2InLCAnYyddKSkKKyAgICAgICAgY2hlY2soWydaOi9hJywg
Jy9iJywgJ2MnXSwgICAoJ1o6JywgJ1xcJywgWydaOlxcJywgJ2InLCAnYyddKSkKKyAgICAgICAg
Y2hlY2soWycvLz8vWjovYScsICcvYicsICdjJ10sCisgICAgICAgICAgICAgICgnXFxcXD9cXFo6
JywgJ1xcJywgWydcXFxcP1xcWjpcXCcsICdiJywgJ2MnXSkpCisKKyAgICBkZWYgdGVzdF9zcGxp
dHJvb3Qoc2VsZik6CisgICAgICAgIGYgPSBzZWxmLmZsYXZvdXIuc3BsaXRyb290CisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZignJyksICgnJywgJycsICcnKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChmKCdhJyksICgnJywgJycsICdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZignYVxcYicpLCAoJycsICcnLCAnYVxcYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYo
J1xcYScpLCAoJycsICdcXCcsICdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZignXFxh
XFxiJyksICgnJywgJ1xcJywgJ2FcXGInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCdj
OmFcXGInKSwgKCdjOicsICcnLCAnYVxcYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYo
J2M6XFxhXFxiJyksICgnYzonLCAnXFwnLCAnYVxcYicpKQorICAgICAgICAjIFJlZHVuZGFudCBz
bGFzaGVzIGluIHRoZSByb290IGFyZSBjb2xsYXBzZWQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChmKCdcXFxcYScpLCAoJycsICdcXCcsICdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZignXFxcXFxcYS9iJyksICgnJywgJ1xcJywgJ2EvYicpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGYoJ2M6XFxcXGEnKSwgKCdjOicsICdcXCcsICdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZignYzpcXFxcXFxhL2InKSwgKCdjOicsICdcXCcsICdhL2InKSkKKyAgICAgICAgIyBW
YWxpZCBVTkMgcGF0aHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCdcXFxcYVxcYicpLCAo
J1xcXFxhXFxiJywgJ1xcJywgJycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ1xcXFxh
XFxiXFwnKSwgKCdcXFxcYVxcYicsICdcXCcsICcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChmKCdcXFxcYVxcYlxcY1xcZCcpLCAoJ1xcXFxhXFxiJywgJ1xcJywgJ2NcXGQnKSkKKyAgICAg
ICAgIyBUaGVzZSBhcmUgbm9uLVVOQyBwYXRocyAoYWNjb3JkaW5nIHRvIG50cGF0aC5weSBhbmQg
dGVzdF9udHBhdGgpCisgICAgICAgICMgSG93ZXZlciwgY29tbWFuZC5jb20gc2F5cyBzdWNoIHBh
dGhzIGFyZSBpbnZhbGlkLCBzbyBpdCdzCisgICAgICAgICMgZGlmZmljdWx0IHRvIGtub3cgd2hh
dCB0aGUgcmlnaHQgc2VtYW50aWNzIGFyZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ1xc
XFxcXGFcXGInKSwgKCcnLCAnXFwnLCAnYVxcYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGYoJ1xcXFxhJyksICgnJywgJ1xcJywgJ2EnKSkKKworCisjCisjIFRlc3RzIGZvciB0aGUgcHVy
ZSBjbGFzc2VzCisjCisKK3dpdGhfZnNlbmNvZGUgPSB1bml0dGVzdC5za2lwSWYoCisgICAgc3lz
LnZlcnNpb25faW5mbyA8ICgzLCAyKSwKKyAgICAnb3MuZnNlbmNvZGUgaGFzIGJlZW4gaW50cm9k
dWNlZCBpbiB2ZXJzaW9uIDMuMicpCisKKworY2xhc3MgX0Jhc2VQdXJlUGF0aFRlc3Qob2JqZWN0
KToKKworICAgICMga2V5cyBhcmUgY2Fub25pY2FsIHBhdGhzLCB2YWx1ZXMgYXJlIGxpc3Qgb2Yg
dHVwbGVzIG9mIGFyZ3VtZW50cworICAgICMgc3VwcG9zZWQgdG8gcHJvZHVjZSBlcXVhbCBwYXRo
cworICAgIGVxdWl2YWxlbmNlcyA9IHsKKyAgICAgICAgJ2EvYic6IFsKKyAgICAgICAgICAgICgn
YScsICdiJyksICgnYS8nLCAnYicpLCAoJ2EnLCAnYi8nKSwgKCdhLycsICdiLycpLAorICAgICAg
ICAgICAgKCdhL2IvJywpLCAoJ2EvL2InLCksICgnYS8vYi8vJywpLAorICAgICAgICAgICAgIyBl
bXB0eSBjb21wb25lbnRzIGdldCByZW1vdmVkCisgICAgICAgICAgICAoJycsICdhJywgJ2InKSwg
KCdhJywgJycsICdiJyksICgnYScsICdiJywgJycpLAorICAgICAgICAgICAgXSwKKyAgICAgICAg
Jy9iL2MvZCc6IFsKKyAgICAgICAgICAgICgnYScsICcvYi9jJywgJ2QnKSwgKCdhJywgJy8vL2Iv
L2MnLCAnZC8nKSwKKyAgICAgICAgICAgICgnL2EnLCAnL2IvYycsICdkJyksCisgICAgICAgICAg
ICAjIGVtcHR5IGNvbXBvbmVudHMgZ2V0IHJlbW92ZWQKKyAgICAgICAgICAgICgnLycsICdiJywg
JycsICdjL2QnKSwgKCcvJywgJycsICdiL2MvZCcpLCAoJycsICcvYi9jL2QnKSwKKyAgICAgICAg
ICAgIF0sCisgICAgfQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBwID0gc2VsZi5j
bHMoJ2EnKQorICAgICAgICBzZWxmLmZsYXZvdXIgPSBwLl9mbGF2b3VyCisgICAgICAgIHNlbGYu
c2VwID0gc2VsZi5mbGF2b3VyLnNlcAorICAgICAgICBzZWxmLmFsdHNlcCA9IHNlbGYuZmxhdm91
ci5hbHRzZXAKKworICAgIGRlZiB0ZXN0X2NvbnN0cnVjdG9yX2NvbW1vbihzZWxmKToKKyAgICAg
ICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKCdhJykKKyAgICAgICAgc2VsZi5hc3NlcnRJ
c0luc3RhbmNlKHAsIFApCisKKyAgICAgICAgY2xhc3MgUGF0aExpa2U6CisgICAgICAgICAgICBk
ZWYgX19mc3BhdGhfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gImEvYi9jIgorCisg
ICAgICAgIFAoJ2EnLCAnYicsICdjJykKKyAgICAgICAgUCgnL2EnLCAnYicsICdjJykKKyAgICAg
ICAgUCgnYS9iL2MnKQorICAgICAgICBQKCcvYS9iL2MnKQorICAgICAgICBQKFBhdGhMaWtlKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUChQKCdhJykpLCBQKCdhJykpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoUChQKCdhJyksICdiJyksIFAoJ2EvYicpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFAoUCgnYScpLCBQKCdiJykpLCBQKCdhL2InKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChQKFAoJ2EnKSwgUCgnYicpLCBQKCdjJykpLCBQKFBhdGhMaWtlKCkpKQorCisgICAg
ZGVmIF9jaGVja19zdHJfc3ViY2xhc3Moc2VsZiwgKmFyZ3MpOgorICAgICAgICAjIElzc3VlICMy
MTEyNzogaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGNvbnN0cnVjdCBhIFB1cmVQYXRoIG9iamVj
dAorICAgICAgICAjIGZyb20gYSBzdHIgc3ViY2xhc3MgaW5zdGFuY2UsIGFuZCBpdCB0aGVuIGdl
dHMgY29udmVydGVkIHRvCisgICAgICAgICMgYSBwdXJlIHN0ciBvYmplY3QuCisgICAgICAgIGNs
YXNzIFN0clN1YmNsYXNzKHN0cik6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIFAgPSBzZWxm
LmNscworICAgICAgICBwID0gUCgqKFN0clN1YmNsYXNzKHgpIGZvciB4IGluIGFyZ3MpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIFAoKmFyZ3MpKQorICAgICAgICBmb3IgcGFydCBpbiBw
LnBhcnRzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyh0eXBlKHBhcnQpLCBzdHIpCisKKyAg
ICBkZWYgdGVzdF9zdHJfc3ViY2xhc3NfY29tbW9uKHNlbGYpOgorICAgICAgICBzZWxmLl9jaGVj
a19zdHJfc3ViY2xhc3MoJycpCisgICAgICAgIHNlbGYuX2NoZWNrX3N0cl9zdWJjbGFzcygnLicp
CisgICAgICAgIHNlbGYuX2NoZWNrX3N0cl9zdWJjbGFzcygnYScpCisgICAgICAgIHNlbGYuX2No
ZWNrX3N0cl9zdWJjbGFzcygnYS9iLnR4dCcpCisgICAgICAgIHNlbGYuX2NoZWNrX3N0cl9zdWJj
bGFzcygnL2EvYi50eHQnKQorCisgICAgZGVmIHRlc3Rfam9pbl9jb21tb24oc2VsZik6CisgICAg
ICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUCgnYS9iJykKKyAgICAgICAgcHAgPSBwLmpv
aW5wYXRoKCdjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcCwgUCgnYS9iL2MnKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRJcyh0eXBlKHBwKSwgdHlwZShwKSkKKyAgICAgICAgcHAgPSBwLmpv
aW5wYXRoKCdjJywgJ2QnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCdhL2IvYy9k
JykpCisgICAgICAgIHBwID0gcC5qb2lucGF0aChQKCdjJykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocHAsIFAoJ2EvYi9jJykpCisgICAgICAgIHBwID0gcC5qb2lucGF0aCgnL2MnKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCcvYycpKQorCisgICAgZGVmIHRlc3RfZGl2X2Nv
bW1vbihzZWxmKToKKyAgICAgICAgIyBCYXNpY2FsbHkgdGhlIHNhbWUgYXMgam9pbnBhdGgoKQor
ICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9IFAoJ2EvYicpCisgICAgICAgIHBwID0g
cCAvICdjJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCdhL2IvYycpKQorICAgICAg
ICBzZWxmLmFzc2VydElzKHR5cGUocHApLCB0eXBlKHApKQorICAgICAgICBwcCA9IHAgLyAnYy9k
JworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCdhL2IvYy9kJykpCisgICAgICAgIHBw
ID0gcCAvICdjJyAvICdkJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCdhL2IvYy9k
JykpCisgICAgICAgIHBwID0gJ2MnIC8gcCAvICdkJworICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBwLCBQKCdjL2EvYi9kJykpCisgICAgICAgIHBwID0gcCAvIFAoJ2MnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBwLCBQKCdhL2IvYycpKQorICAgICAgICBwcCA9IHAgLyAnL2MnCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocHAsIFAoJy9jJykpCisKKyAgICBkZWYgX2NoZWNrX3N0cihz
ZWxmLCBleHBlY3RlZCwgYXJncyk6CisgICAgICAgIHAgPSBzZWxmLmNscygqYXJncykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzdHIocCksIGV4cGVjdGVkLnJlcGxhY2UoJy8nLCBzZWxmLnNl
cCkpCisKKyAgICBkZWYgdGVzdF9zdHJfY29tbW9uKHNlbGYpOgorICAgICAgICAjIENhbm9uaWNh
bGl6ZWQgcGF0aHMgcm91bmR0cmlwCisgICAgICAgIGZvciBwYXRoc3RyIGluICgnYScsICdhL2In
LCAnYS9iL2MnLCAnLycsICcvYS9iJywgJy9hL2IvYycpOgorICAgICAgICAgICAgc2VsZi5fY2hl
Y2tfc3RyKHBhdGhzdHIsIChwYXRoc3RyLCkpCisgICAgICAgICMgU3BlY2lhbCBjYXNlIGZvciB0
aGUgZW1wdHkgcGF0aAorICAgICAgICBzZWxmLl9jaGVja19zdHIoJy4nLCAoJycsKSkKKyAgICAg
ICAgIyBPdGhlciB0ZXN0cyBmb3Igc3RyKCkgYXJlIGluIHRlc3RfZXF1aXZhbGVuY2VzKCkKKwor
ICAgIGRlZiB0ZXN0X2FzX3Bvc2l4X2NvbW1vbihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xz
CisgICAgICAgIGZvciBwYXRoc3RyIGluICgnYScsICdhL2InLCAnYS9iL2MnLCAnLycsICcvYS9i
JywgJy9hL2IvYycpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKHBhdGhzdHIpLmFz
X3Bvc2l4KCksIHBhdGhzdHIpCisgICAgICAgICMgT3RoZXIgdGVzdHMgZm9yIGFzX3Bvc2l4KCkg
YXJlIGluIHRlc3RfZXF1aXZhbGVuY2VzKCkKKworICAgIEB3aXRoX2ZzZW5jb2RlCisgICAgZGVm
IHRlc3RfYXNfYnl0ZXNfY29tbW9uKHNlbGYpOgorICAgICAgICBzZXAgPSBvcy5mc2VuY29kZShz
ZWxmLnNlcCkKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ynl0ZXMoUCgnYS9iJykpLCBiJ2EnICsgc2VwICsgYidiJykKKworICAgIGRlZiB0ZXN0X2FzX3Vy
aV9jb21tb24oc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgUCgnYScpLmFzX3VyaSgpCisg
ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBQ
KCkuYXNfdXJpKCkKKworICAgIGRlZiB0ZXN0X3JlcHJfY29tbW9uKHNlbGYpOgorICAgICAgICBm
b3IgcGF0aHN0ciBpbiAoJ2EnLCAnYS9iJywgJ2EvYi9jJywgJy8nLCAnL2EvYicsICcvYS9iL2Mn
KToKKyAgICAgICAgICAgIHAgPSBzZWxmLmNscyhwYXRoc3RyKQorICAgICAgICAgICAgY2xzbmFt
ZSA9IHAuX19jbGFzc19fLl9fbmFtZV9fCisgICAgICAgICAgICByID0gcmVwcihwKQorICAgICAg
ICAgICAgIyBUaGUgcmVwcigpIGlzIGluIHRoZSBmb3JtIENsYXNzTmFtZSgiZm9yd2FyZC1zbGFz
aGVzIHBhdGgiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHIuc3RhcnRzd2l0aChjbHNu
YW1lICsgJygnKSwgcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyLmVuZHN3aXRoKCcp
JyksIHIpCisgICAgICAgICAgICBpbm5lciA9IHJbbGVuKGNsc25hbWUpICsgMTogLTFdCisgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwoaW5uZXIpLCBwLmFzX3Bvc2l4KCkpCisgICAg
ICAgICAgICAjIFRoZSByZXByKCkgcm91bmR0cmlwcworICAgICAgICAgICAgcSA9IGV2YWwociwg
cGF0aGxpYi5fX2RpY3RfXykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMocS5fX2NsYXNzX18s
IHAuX19jbGFzc19fKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxLCBwKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKHEpLCByKQorCisgICAgZGVmIHRlc3RfZXFfY29t
bW9uKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCdhL2InKSwgUCgnYS9iJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS9iJyks
IFAoJ2EnLCAnYicpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKFAoJ2EvYicpLCBQKCdh
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoUCgnYS9iJyksIFAoJy9hL2InKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChQKCdhL2InKSwgUCgpKQorICAgICAgICBzZWxmLmFz
c2VydE5vdEVxdWFsKFAoJy9hL2InKSwgUCgnLycpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVx
dWFsKFAoKSwgUCgnLycpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKFAoKSwgIiIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoUCgpLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRO
b3RFcXVhbChQKCksIGludCkKKworICAgIGRlZiB0ZXN0X21hdGNoX2NvbW1vbihzZWxmKToKKyAg
ICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3Is
IFAoJ2EnKS5tYXRjaCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3Is
IFAoJ2EnKS5tYXRjaCwgJy4nKQorICAgICAgICAjIFNpbXBsZSByZWxhdGl2ZSBwYXR0ZXJuCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCdiLnB5JykubWF0Y2goJ2IucHknKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKFAoJ2EvYi5weScpLm1hdGNoKCdiLnB5JykpCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShQKCcvYS9iLnB5JykubWF0Y2goJ2IucHknKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShQKCdhLnB5JykubWF0Y2goJ2IucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShQKCdiL3B5JykubWF0Y2goJ2IucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCcv
YS5weScpLm1hdGNoKCdiLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnYi5weS9j
JykubWF0Y2goJ2IucHknKSkKKyAgICAgICAgIyBXaWxjYXJkIHJlbGF0aXZlIHBhdHRlcm4KKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJ2IucHknKS5tYXRjaCgnKi5weScpKQorICAgICAgICBz
ZWxmLmFzc2VydFRydWUoUCgnYS9iLnB5JykubWF0Y2goJyoucHknKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKFAoJy9hL2IucHknKS5tYXRjaCgnKi5weScpKQorICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKFAoJ2IucHljJykubWF0Y2goJyoucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShQKCdiLi9weScpLm1hdGNoKCcqLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgn
Yi5weS9jJykubWF0Y2goJyoucHknKSkKKyAgICAgICAgIyBNdWx0aS1wYXJ0IHJlbGF0aXZlIHBh
dHRlcm4KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJ2FiL2MucHknKS5tYXRjaCgnYSovKi5w
eScpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoUCgnL2QvYWIvYy5weScpLm1hdGNoKCdhKi8q
LnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnYS5weScpLm1hdGNoKCdhKi8qLnB5
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnL2RhYi9jLnB5JykubWF0Y2goJ2EqLyou
cHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCdhYi9jLnB5L2QnKS5tYXRjaCgnYSov
Ki5weScpKQorICAgICAgICAjIEFic29sdXRlIHBhdHRlcm4KKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKFAoJy9iLnB5JykubWF0Y2goJy8qLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
UCgnYi5weScpLm1hdGNoKCcvKi5weScpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJ2Ev
Yi5weScpLm1hdGNoKCcvKi5weScpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJy9hL2Iu
cHknKS5tYXRjaCgnLyoucHknKSkKKyAgICAgICAgIyBNdWx0aS1wYXJ0IGFic29sdXRlIHBhdHRl
cm4KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJy9hL2IucHknKS5tYXRjaCgnL2EvKi5weScp
KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJy9hYi5weScpLm1hdGNoKCcvYS8qLnB5Jykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnL2EvYi9jLnB5JykubWF0Y2goJy9hLyoucHkn
KSkKKworICAgIGRlZiB0ZXN0X29yZGVyaW5nX2NvbW1vbihzZWxmKToKKyAgICAgICAgIyBPcmRl
cmluZyBpcyB0dXBsZS1hbGlrZQorICAgICAgICBkZWYgYXNzZXJ0TGVzcyhhLCBiKToKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhhLCBiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVh
dGVyKGIsIGEpCisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBhID0gUCgnYScpCisgICAg
ICAgIGIgPSBQKCdhL2InKQorICAgICAgICBjID0gUCgnYWJjJykKKyAgICAgICAgZCA9IFAoJ2In
KQorICAgICAgICBhc3NlcnRMZXNzKGEsIGIpCisgICAgICAgIGFzc2VydExlc3MoYSwgYykKKyAg
ICAgICAgYXNzZXJ0TGVzcyhhLCBkKQorICAgICAgICBhc3NlcnRMZXNzKGIsIGMpCisgICAgICAg
IGFzc2VydExlc3MoYywgZCkKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIGEgPSBQKCcv
YScpCisgICAgICAgIGIgPSBQKCcvYS9iJykKKyAgICAgICAgYyA9IFAoJy9hYmMnKQorICAgICAg
ICBkID0gUCgnL2InKQorICAgICAgICBhc3NlcnRMZXNzKGEsIGIpCisgICAgICAgIGFzc2VydExl
c3MoYSwgYykKKyAgICAgICAgYXNzZXJ0TGVzcyhhLCBkKQorICAgICAgICBhc3NlcnRMZXNzKGIs
IGMpCisgICAgICAgIGFzc2VydExlc3MoYywgZCkKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5m
byA+ICgzLCk6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6
CisgICAgICAgICAgICAgICAgUCgpIDwge30KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIFAo
KSA8IHt9CisKKyAgICBkZWYgdGVzdF9wYXJ0c19jb21tb24oc2VsZik6CisgICAgICAgICMgYHBh
cnRzYCByZXR1cm5zIGEgdHVwbGUKKyAgICAgICAgc2VwID0gc2VsZi5zZXAKKyAgICAgICAgUCA9
IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKCdhL2InKQorICAgICAgICBwYXJ0cyA9IHAucGFydHMK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJ0cywgKCdhJywgJ2InKSkKKyAgICAgICAgIyBU
aGUgb2JqZWN0IGdldHMgcmV1c2VkCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocGFydHMsIHAucGFy
dHMpCisgICAgICAgICMgV2hlbiB0aGUgcGF0aCBpcyBhYnNvbHV0ZSwgdGhlIGFuY2hvciBpcyBh
IHNlcGFyYXRlIHBhcnQKKyAgICAgICAgcCA9IFAoJy9hL2InKQorICAgICAgICBwYXJ0cyA9IHAu
cGFydHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJ0cywgKHNlcCwgJ2EnLCAnYicpKQor
CisgICAgZGVmIHRlc3RfZnNwYXRoX2NvbW1vbihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xz
CisgICAgICAgIHAgPSBQKCdhL2InKQorICAgICAgICBzZWxmLl9jaGVja19zdHIocC5fX2ZzcGF0
aF9fKCksICgnYS9iJywpKQorICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA2KToK
KyAgICAgICAgICAgIHNlbGYuX2NoZWNrX3N0cihvcy5mc3BhdGgocCksICgnYS9iJywpKQorCisg
ICAgZGVmIHRlc3RfZXF1aXZhbGVuY2VzKHNlbGYpOgorICAgICAgICBmb3IgaywgdHVwbGVzIGlu
IHNlbGYuZXF1aXZhbGVuY2VzLml0ZW1zKCk6CisgICAgICAgICAgICBjYW5vbiA9IGsucmVwbGFj
ZSgnLycsIHNlbGYuc2VwKQorICAgICAgICAgICAgcG9zaXggPSBrLnJlcGxhY2Uoc2VsZi5zZXAs
ICcvJykKKyAgICAgICAgICAgIGlmIGNhbm9uICE9IHBvc2l4OgorICAgICAgICAgICAgICAgIHR1
cGxlcyA9IHR1cGxlcyArIFsKKyAgICAgICAgICAgICAgICAgICAgdHVwbGUocGFydC5yZXBsYWNl
KCcvJywgc2VsZi5zZXApIGZvciBwYXJ0IGluIHQpCisgICAgICAgICAgICAgICAgICAgIGZvciB0
IGluIHR1cGxlcworICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgdHVwbGVz
LmFwcGVuZCgocG9zaXgsICkpCisgICAgICAgICAgICBwY2Fub24gPSBzZWxmLmNscyhjYW5vbikK
KyAgICAgICAgICAgIGZvciB0IGluIHR1cGxlczoKKyAgICAgICAgICAgICAgICBwID0gc2VsZi5j
bHMoKnQpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLCBwY2Fub24sICJmYWls
ZWQgd2l0aCBhcmdzIHswfSIuZm9ybWF0KHQpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoaGFzaChwKSwgaGFzaChwY2Fub24pKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc3RyKHApLCBjYW5vbikKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAu
YXNfcG9zaXgoKSwgcG9zaXgpCisKKyAgICBkZWYgdGVzdF9wYXJlbnRfY29tbW9uKHNlbGYpOgor
ICAgICAgICAjIFJlbGF0aXZlCisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUCgn
YS9iL2MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucGFyZW50LCBQKCdhL2InKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnBhcmVudC5wYXJlbnQsIFAoJ2EnKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwLnBhcmVudC5wYXJlbnQucGFyZW50LCBQKCkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocC5wYXJlbnQucGFyZW50LnBhcmVudC5wYXJlbnQsIFAoKSkKKyAgICAg
ICAgIyBBbmNob3JlZAorICAgICAgICBwID0gUCgnL2EvYi9jJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwLnBhcmVudCwgUCgnL2EvYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAu
cGFyZW50LnBhcmVudCwgUCgnL2EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnBhcmVu
dC5wYXJlbnQucGFyZW50LCBQKCcvJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5wYXJl
bnQucGFyZW50LnBhcmVudC5wYXJlbnQsIFAoJy8nKSkKKworICAgIGRlZiB0ZXN0X3BhcmVudHNf
Y29tbW9uKHNlbGYpOgorICAgICAgICAjIFJlbGF0aXZlCisgICAgICAgIFAgPSBzZWxmLmNscwor
ICAgICAgICBwID0gUCgnYS9iL2MnKQorICAgICAgICBwYXIgPSBwLnBhcmVudHMKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsZW4ocGFyKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
YXJbMF0sIFAoJ2EvYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhclsxXSwgUCgnYScp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhclsyXSwgUCgnLicpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxpc3QocGFyKSwgW1AoJ2EvYicpLCBQKCdhJyksIFAoJy4nKV0pCisgICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvcik6CisgICAgICAgICAgICBwYXJb
LTFdCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvcik6CisgICAgICAg
ICAgICBwYXJbM10KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgor
ICAgICAgICAgICAgcGFyWzBdID0gcAorICAgICAgICAjIEFuY2hvcmVkCisgICAgICAgIHAgPSBQ
KCcvYS9iL2MnKQorICAgICAgICBwYXIgPSBwLnBhcmVudHMKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsZW4ocGFyKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJbMF0sIFAoJy9h
L2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJbMV0sIFAoJy9hJykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocGFyWzJdLCBQKCcvJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGlzdChwYXIpLCBbUCgnL2EvYicpLCBQKCcvYScpLCBQKCcvJyldKQorICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IpOgorICAgICAgICAgICAgcGFyWzNdCisKKyAg
ICBkZWYgdGVzdF9kcml2ZV9jb21tb24oc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvYicpLmRyaXZlLCAnJykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChQKCcvYS9iJykuZHJpdmUsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFAoJycpLmRyaXZlLCAnJykKKworICAgIGRlZiB0ZXN0X3Jvb3RfY29tbW9uKHNlbGYpOgorICAg
ICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2VwID0gc2VsZi5zZXAKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChQKCcnKS5yb290LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdh
L2InKS5yb290LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvJykucm9vdCwgc2Vw
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hL2InKS5yb290LCBzZXApCisKKyAgICBk
ZWYgdGVzdF9hbmNob3JfY29tbW9uKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAg
ICAgc2VwID0gc2VsZi5zZXAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcnKS5hbmNob3Is
ICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvYicpLmFuY2hvciwgJycpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLycpLmFuY2hvciwgc2VwKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFAoJy9hL2InKS5hbmNob3IsIHNlcCkKKworICAgIGRlZiB0ZXN0X25hbWVfY29t
bW9uKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCcnKS5uYW1lLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcuJykubmFtZSwg
JycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLycpLm5hbWUsICcnKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFAoJ2EvYicpLm5hbWUsICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChQKCcvYS9iJykubmFtZSwgJ2InKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9h
L2IvLicpLm5hbWUsICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2IucHknKS5u
YW1lLCAnYi5weScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnL2EvYi5weScpLm5hbWUs
ICdiLnB5JykKKworICAgIGRlZiB0ZXN0X3N1ZmZpeF9jb21tb24oc2VsZik6CisgICAgICAgIFAg
PSBzZWxmLmNscworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJycpLnN1ZmZpeCwgJycpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLicpLnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoUCgnLi4nKS5zdWZmaXgsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFAoJy8nKS5zdWZmaXgsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvYicpLnN1
ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnL2EvYicpLnN1ZmZpeCwgJycp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnL2EvYi8uJykuc3VmZml4LCAnJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2IucHknKS5zdWZmaXgsICcucHknKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFAoJy9hL2IucHknKS5zdWZmaXgsICcucHknKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFAoJ2EvLmhncmMnKS5zdWZmaXgsICcnKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFAoJy9hLy5oZ3JjJykuc3VmZml4LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCdhLy5oZy5yYycpLnN1ZmZpeCwgJy5yYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
UCgnL2EvLmhnLnJjJykuc3VmZml4LCAnLnJjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQ
KCdhL2IudGFyLmd6Jykuc3VmZml4LCAnLmd6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQ
KCcvYS9iLnRhci5neicpLnN1ZmZpeCwgJy5neicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
UCgnYS9Tb21lIG5hbWUuIEVuZGluZyB3aXRoIGEgZG90LicpLnN1ZmZpeCwgJycpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoUCgnL2EvU29tZSBuYW1lLiBFbmRpbmcgd2l0aCBhIGRvdC4nKS5z
dWZmaXgsICcnKQorCisgICAgZGVmIHRlc3Rfc3VmZml4ZXNfY29tbW9uKHNlbGYpOgorICAgICAg
ICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcnKS5zdWZmaXhlcywg
W10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLicpLnN1ZmZpeGVzLCBbXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvJykuc3VmZml4ZXMsIFtdKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFAoJ2EvYicpLnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCcvYS9iJykuc3VmZml4ZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9h
L2IvLicpLnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2IucHkn
KS5zdWZmaXhlcywgWycucHknXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iLnB5
Jykuc3VmZml4ZXMsIFsnLnB5J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS8uaGdy
YycpLnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS8uaGdyYycp
LnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhLy5oZy5yYycpLnN1
ZmZpeGVzLCBbJy5yYyddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hLy5oZy5yYycp
LnN1ZmZpeGVzLCBbJy5yYyddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvYi50YXIu
Z3onKS5zdWZmaXhlcywgWycudGFyJywgJy5neiddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFAoJy9hL2IudGFyLmd6Jykuc3VmZml4ZXMsIFsnLnRhcicsICcuZ3onXSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChQKCdhL1NvbWUgbmFtZS4gRW5kaW5nIHdpdGggYSBkb3QuJykuc3VmZml4
ZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hL1NvbWUgbmFtZS4gRW5kaW5n
IHdpdGggYSBkb3QuJykuc3VmZml4ZXMsIFtdKQorCisgICAgZGVmIHRlc3Rfc3RlbV9jb21tb24o
c2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAo
JycpLnN0ZW0sICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy4nKS5zdGVtLCAnJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcuLicpLnN0ZW0sICcuLicpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoUCgnLycpLnN0ZW0sICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFAoJ2EvYicpLnN0ZW0sICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2IucHkn
KS5zdGVtLCAnYicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS8uaGdyYycpLnN0ZW0s
ICcuaGdyYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS8uaGcucmMnKS5zdGVtLCAn
LmhnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2IudGFyLmd6Jykuc3RlbSwgJ2Iu
dGFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL1NvbWUgbmFtZS4gRW5kaW5nIHdp
dGggYSBkb3QuJykuc3RlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnU29tZSBuYW1lLiBF
bmRpbmcgd2l0aCBhIGRvdC4nKQorCisgICAgZGVmIHRlc3Rfd2l0aF9uYW1lX2NvbW1vbihzZWxm
KToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS9i
Jykud2l0aF9uYW1lKCdkLnhtbCcpLCBQKCdhL2QueG1sJykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoUCgnL2EvYicpLndpdGhfbmFtZSgnZC54bWwnKSwgUCgnL2EvZC54bWwnKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2IucHknKS53aXRoX25hbWUoJ2QueG1sJyksIFAoJ2Ev
ZC54bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iLnB5Jykud2l0aF9uYW1l
KCdkLnhtbCcpLCBQKCcvYS9kLnhtbCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2Ev
RG90IGVuZGluZy4nKS53aXRoX25hbWUoJ2QueG1sJyksIFAoJ2EvZC54bWwnKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChQKCcvYS9Eb3QgZW5kaW5nLicpLndpdGhfbmFtZSgnZC54bWwnKSwg
UCgnL2EvZC54bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgn
Jykud2l0aF9uYW1lLCAnZC54bWwnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVy
cm9yLCBQKCcuJykud2l0aF9uYW1lLCAnZC54bWwnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhWYWx1ZUVycm9yLCBQKCcvJykud2l0aF9uYW1lLCAnZC54bWwnKQorICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdhL2InKS53aXRoX25hbWUsICcnKQorICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdhL2InKS53aXRoX25hbWUsICcvYycpCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2EvYicpLndpdGhfbmFtZSwg
J2MvJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnYS9iJykud2l0
aF9uYW1lLCAnYy9kJykKKworICAgIGRlZiB0ZXN0X3dpdGhfc3VmZml4X2NvbW1vbihzZWxmKToK
KyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS9iJyku
d2l0aF9zdWZmaXgoJy5neicpLCBQKCdhL2IuZ3onKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCcvYS9iJykud2l0aF9zdWZmaXgoJy5neicpLCBQKCcvYS9iLmd6JykpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoUCgnYS9iLnB5Jykud2l0aF9zdWZmaXgoJy5neicpLCBQKCdhL2IuZ3on
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iLnB5Jykud2l0aF9zdWZmaXgoJy5n
eicpLCBQKCcvYS9iLmd6JykpCisgICAgICAgICMgU3RyaXBwaW5nIHN1ZmZpeAorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFAoJ2EvYi5weScpLndpdGhfc3VmZml4KCcnKSwgUCgnYS9iJykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnL2EvYicpLndpdGhfc3VmZml4KCcnKSwgUCgnL2Ev
YicpKQorICAgICAgICAjIFBhdGggZG9lc24ndCBoYXZlIGEgImZpbGVuYW1lIiBjb21wb25lbnQK
KyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnJykud2l0aF9zdWZmaXgs
ICcuZ3onKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCcuJykud2l0
aF9zdWZmaXgsICcuZ3onKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQ
KCcvJykud2l0aF9zdWZmaXgsICcuZ3onKQorICAgICAgICAjIEludmFsaWQgc3VmZml4CisgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2EvYicpLndpdGhfc3VmZml4LCAn
Z3onKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdhL2InKS53aXRo
X3N1ZmZpeCwgJy8nKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdh
L2InKS53aXRoX3N1ZmZpeCwgJy4nKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVy
cm9yLCBQKCdhL2InKS53aXRoX3N1ZmZpeCwgJy8uZ3onKQorICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhWYWx1ZUVycm9yLCBQKCdhL2InKS53aXRoX3N1ZmZpeCwgJ2MvZCcpCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2EvYicpLndpdGhfc3VmZml4LCAnLmMvLmQn
KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdhL2InKS53aXRoX3N1
ZmZpeCwgJy4vLmQnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdh
L2InKS53aXRoX3N1ZmZpeCwgJy5kLy4nKQorCisgICAgZGVmIHRlc3RfcmVsYXRpdmVfdG9fY29t
bW9uKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9IFAoJ2EvYicpCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcC5yZWxhdGl2ZV90bykKKyAgICAg
ICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwg
cC5yZWxhdGl2ZV90bywgYidhJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZl
X3RvKFAoKSksIFAoJ2EvYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVsYXRpdmVf
dG8oJycpLCBQKCdhL2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3Rv
KFAoJ2EnKSksIFAoJ2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3Rv
KCdhJyksIFAoJ2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCdh
LycpLCBQKCdiJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90byhQKCdh
L2InKSksIFAoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCdhL2In
KSwgUCgpKQorICAgICAgICAjIFdpdGggc2V2ZXJhbCBhcmdzCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocC5yZWxhdGl2ZV90bygnYScsICdiJyksIFAoKSkKKyAgICAgICAgIyBVbnJlbGF0ZWQg
cGF0aHMKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcC5yZWxhdGl2ZV90
bywgUCgnYycpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0
aXZlX3RvLCBQKCdhL2IvYycpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9y
LCBwLnJlbGF0aXZlX3RvLCBQKCdhL2MnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvciwgcC5yZWxhdGl2ZV90bywgUCgnL2EnKSkKKyAgICAgICAgcCA9IFAoJy9hL2InKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVsYXRpdmVfdG8oUCgnLycpKSwgUCgnYS9iJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90bygnLycpLCBQKCdhL2InKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKFAoJy9hJykpLCBQKCdiJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90bygnL2EnKSwgUCgnYicpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVsYXRpdmVfdG8oJy9hLycpLCBQKCdiJykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90byhQKCcvYS9iJykpLCBQKCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90bygnL2EvYicpLCBQKCkpCisgICAg
ICAgICMgVW5yZWxhdGVkIHBhdGhzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJy
b3IsIHAucmVsYXRpdmVfdG8sIFAoJy9jJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZh
bHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJy9hL2IvYycpKQorICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCcvYS9jJykpCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcC5yZWxhdGl2ZV90bywgJycpCisgICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJ2EnKSkKKwor
ICAgIGRlZiB0ZXN0X3BpY2tsaW5nX2NvbW1vbihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xz
CisgICAgICAgIHAgPSBQKCcvYS9iJykKKyAgICAgICAgZm9yIHByb3RvIGluIHJhbmdlKDAsIHBp
Y2tsZS5ISUdIRVNUX1BST1RPQ09MICsgMSk6CisgICAgICAgICAgICBkdW1wZWQgPSBwaWNrbGUu
ZHVtcHMocCwgcHJvdG8pCisgICAgICAgICAgICBwcCA9IHBpY2tsZS5sb2FkcyhkdW1wZWQpCisg
ICAgICAgICAgICBzZWxmLmFzc2VydElzKHBwLl9fY2xhc3NfXywgcC5fX2NsYXNzX18pCisgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChoYXNoKHBwKSwgaGFzaChwKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Ry
KHBwKSwgc3RyKHApKQorCisgICAgIyBub3RlOiB0aGlzIGlzIGEgbmV3IHRlc3Qgbm90IHBhcnQg
b2YgdXBzdHJlYW0KKyAgICAjIHRlc3QgdGhhdCB1bmljb2RlIHdvcmtzIG9uIFB5dGhvbiAyCisg
ICAgQHVuaXR0ZXN0LnNraXBJZigKKyAgICAgICAgc2l4LnVuaWNocigweDAxMDApLmVuY29kZSgK
KyAgICAgICAgICAgIHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKSwgInJlcGxhY2UiKSA9PSBi
Ij8iLAorICAgICAgICAiZmlsZSBzeXN0ZW0gZW5jb2Rpbmcgb25seSBzdXBwb3J0cyBhc2NpaSIp
CisgICAgZGVmIHRlc3RfdW5pY29kZShzZWxmKToKKyAgICAgICAgc2VsZi5jbHMoc2l4LnVuaWNo
cigweDAxMDApKQorCisKK2NsYXNzIFB1cmVQb3NpeFBhdGhUZXN0KF9CYXNlUHVyZVBhdGhUZXN0
LCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgY2xzID0gcGF0aGxpYi5QdXJlUG9zaXhQYXRoCisK
KyAgICBkZWYgdGVzdF9yb290KHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iJykucm9vdCwgJy8nKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFAoJy8vL2EvYicpLnJvb3QsICcvJykKKyAgICAgICAgIyBQT1NJWCBzcGVjaWFsIGNh
c2UgZm9yIHR3byBsZWFkaW5nIHNsYXNoZXMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcv
L2EvYicpLnJvb3QsICcvLycpCisKKyAgICBkZWYgdGVzdF9lcShzZWxmKToKKyAgICAgICAgUCA9
IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoUCgnYS9iJyksIFAoJ0EvYicp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hJyksIFAoJy8vL2EnKSkKKyAgICAgICAg
c2VsZi5hc3NlcnROb3RFcXVhbChQKCcvYScpLCBQKCcvL2EnKSkKKworICAgIGRlZiB0ZXN0X2Fz
X3VyaShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoUCgnLycpLmFzX3VyaSgpLCAnZmlsZTovLy8nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFAoJy9hL2IuYycpLmFzX3VyaSgpLCAnZmlsZTovLy9hL2IuYycpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoUCgnL2EvYiUjYycpLmFzX3VyaSgpLCAnZmlsZTovLy9hL2IlMjUlMjNjJykKKwor
ICAgIEB3aXRoX2ZzZW5jb2RlCisgICAgZGVmIHRlc3RfYXNfdXJpX25vbl9hc2NpaShzZWxmKToK
KyAgICAgICAgZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHF1b3RlX2Zyb21fYnl0ZXMKKyAgICAg
ICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9zLmZzZW5jb2RlKCdc
eGU5JykKKyAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKKyAgICAgICAgICAgIHNl
bGYuc2tpcFRlc3QoIlxceGU5IGNhbm5vdCBiZSBlbmNvZGVkIHRvIHRoZSBmaWxlc3lzdGVtIGVu
Y29kaW5nIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iXHhlOScpLmFzX3VyaSgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlOi8vL2EvYicgKyBxdW90ZV9mcm9tX2J5
dGVzKG9zLmZzZW5jb2RlKCdceGU5JykpKQorCisgICAgZGVmIHRlc3RfbWF0Y2goc2VsZik6Cisg
ICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJ0EucHknKS5t
YXRjaCgnYS5QWScpKQorCisgICAgZGVmIHRlc3RfaXNfYWJzb2x1dGUoc2VsZik6CisgICAgICAg
IFAgPSBzZWxmLmNscworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoKS5pc19hYnNvbHV0ZSgp
KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJ2EnKS5pc19hYnNvbHV0ZSgpKQorICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKFAoJ2EvYi8nKS5pc19hYnNvbHV0ZSgpKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoUCgnLycpLmlzX2Fic29sdXRlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShQKCcvYScpLmlzX2Fic29sdXRlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCcvYS9i
LycpLmlzX2Fic29sdXRlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCcvL2EnKS5pc19h
YnNvbHV0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoUCgnLy9hL2InKS5pc19hYnNvbHV0
ZSgpKQorCisgICAgZGVmIHRlc3RfaXNfcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgIFAgPSBzZWxm
LmNscworICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNlLCBQKCcnKS5pc19yZXNlcnZlZCgpKQor
ICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNlLCBQKCcvJykuaXNfcmVzZXJ2ZWQoKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRJcyhGYWxzZSwgUCgnL2Zvby9iYXInKS5pc19yZXNlcnZlZCgpKQorICAg
ICAgICBzZWxmLmFzc2VydElzKEZhbHNlLCBQKCcvZGV2L2Nvbi9QUk4vTlVMJykuaXNfcmVzZXJ2
ZWQoKSkKKworICAgIGRlZiB0ZXN0X2pvaW4oc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscwor
ICAgICAgICBwID0gUCgnLy9hJykKKyAgICAgICAgcHAgPSBwLmpvaW5wYXRoKCdiJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwcCwgUCgnLy9hL2InKSkKKyAgICAgICAgcHAgPSBQKCcvYScp
LmpvaW5wYXRoKCcvL2MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCcvL2MnKSkK
KyAgICAgICAgcHAgPSBQKCcvL2EnKS5qb2lucGF0aCgnL2MnKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBwLCBQKCcvYycpKQorCisgICAgZGVmIHRlc3RfZGl2KHNlbGYpOgorICAgICAgICAj
IEJhc2ljYWxseSB0aGUgc2FtZSBhcyBqb2lucGF0aCgpCisgICAgICAgIFAgPSBzZWxmLmNscwor
ICAgICAgICBwID0gUCgnLy9hJykKKyAgICAgICAgcHAgPSBwIC8gJ2InCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocHAsIFAoJy8vYS9iJykpCisgICAgICAgIHBwID0gUCgnL2EnKSAvICcvL2Mn
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHAsIFAoJy8vYycpKQorICAgICAgICBwcCA9IFAo
Jy8vYScpIC8gJy9jJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCcvYycpKQorCisK
K2NsYXNzIFB1cmVXaW5kb3dzUGF0aFRlc3QoX0Jhc2VQdXJlUGF0aFRlc3QsIHVuaXR0ZXN0LlRl
c3RDYXNlKToKKyAgICBjbHMgPSBwYXRobGliLlB1cmVXaW5kb3dzUGF0aAorCisgICAgZXF1aXZh
bGVuY2VzID0gX0Jhc2VQdXJlUGF0aFRlc3QuZXF1aXZhbGVuY2VzLmNvcHkoKQorICAgIGVxdWl2
YWxlbmNlcy51cGRhdGUoeworICAgICAgICAnYzphJzogWygnYzonLCAnYScpLCAoJ2M6JywgJ2Ev
JyksICgnLycsICdjOicsICdhJyldLAorICAgICAgICAnYzovYSc6IFsKKyAgICAgICAgICAgICgn
YzovJywgJ2EnKSwgKCdjOicsICcvJywgJ2EnKSwgKCdjOicsICcvYScpLAorICAgICAgICAgICAg
KCcveicsICdjOi8nLCAnYScpLCAoJy8veC95JywgJ2M6LycsICdhJyksCisgICAgICAgICAgICBd
LAorICAgICAgICAnLy9hL2IvJzogWygnLy9hL2InLCldLAorICAgICAgICAnLy9hL2IvYyc6IFsK
KyAgICAgICAgICAgICgnLy9hL2InLCAnYycpLCAoJy8vYS9iLycsICdjJyksCisgICAgICAgICAg
ICBdLAorICAgIH0pCisKKyAgICBkZWYgdGVzdF9zdHIoc2VsZik6CisgICAgICAgIHAgPSBzZWxm
LmNscygnYS9iL2MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgJ2FcXGJcXGMn
KQorICAgICAgICBwID0gc2VsZi5jbHMoJ2M6L2EvYi9jJykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzdHIocCksICdjOlxcYVxcYlxcYycpCisgICAgICAgIHAgPSBzZWxmLmNscygnLy9hL2In
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgJ1xcXFxhXFxiXFwnKQorICAgICAg
ICBwID0gc2VsZi5jbHMoJy8vYS9iL2MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihw
KSwgJ1xcXFxhXFxiXFxjJykKKyAgICAgICAgcCA9IHNlbGYuY2xzKCcvL2EvYi9jL2QnKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgJ1xcXFxhXFxiXFxjXFxkJykKKworICAgIGRl
ZiB0ZXN0X3N0cl9zdWJjbGFzcyhzZWxmKToKKyAgICAgICAgc2VsZi5fY2hlY2tfc3RyX3N1YmNs
YXNzKCdjOicpCisgICAgICAgIHNlbGYuX2NoZWNrX3N0cl9zdWJjbGFzcygnYzphJykKKyAgICAg
ICAgc2VsZi5fY2hlY2tfc3RyX3N1YmNsYXNzKCdjOmFcXGIudHh0JykKKyAgICAgICAgc2VsZi5f
Y2hlY2tfc3RyX3N1YmNsYXNzKCdjOlxcJykKKyAgICAgICAgc2VsZi5fY2hlY2tfc3RyX3N1YmNs
YXNzKCdjOlxcYScpCisgICAgICAgIHNlbGYuX2NoZWNrX3N0cl9zdWJjbGFzcygnYzpcXGFcXGIu
dHh0JykKKyAgICAgICAgc2VsZi5fY2hlY2tfc3RyX3N1YmNsYXNzKCdcXFxcc29tZVxcc2hhcmUn
KQorICAgICAgICBzZWxmLl9jaGVja19zdHJfc3ViY2xhc3MoJ1xcXFxzb21lXFxzaGFyZVxcYScp
CisgICAgICAgIHNlbGYuX2NoZWNrX3N0cl9zdWJjbGFzcygnXFxcXHNvbWVcXHNoYXJlXFxhXFxi
LnR4dCcpCisKKyAgICBkZWYgdGVzdF9lcShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzphL2InKSwgUCgnYzphL2InKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYicpLCBQKCdjOicsICdhJywgJ2InKSkKKyAgICAgICAg
c2VsZi5hc3NlcnROb3RFcXVhbChQKCdjOmEvYicpLCBQKCdkOmEvYicpKQorICAgICAgICBzZWxm
LmFzc2VydE5vdEVxdWFsKFAoJ2M6YS9iJyksIFAoJ2M6L2EvYicpKQorICAgICAgICBzZWxmLmFz
c2VydE5vdEVxdWFsKFAoJy9hL2InKSwgUCgnYzovYS9iJykpCisgICAgICAgICMgQ2FzZS1pbnNl
bnNpdGl2aXR5CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS9CJyksIFAoJ0EvYicpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ0M6YS9CJyksIFAoJ2M6QS9iJykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoUCgnLy9Tb21lL1NIQVJFL2EvQicpLCBQKCcvL3NvbUUvc2hhcmUv
QS9iJykpCisKKyAgICBAd2l0aF9mc2VuY29kZQorICAgIGRlZiB0ZXN0X2FzX3VyaShzZWxmKToK
KyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvcik6CisgICAgICAgICAgICBQKCcvYS9iJykuYXNfdXJpKCkKKyAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIFAoJ2M6YS9iJykuYXNf
dXJpKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi8nKS5hc191cmkoKSwgJ2ZpbGU6
Ly8vYzovJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi9hL2IuYycpLmFzX3VyaSgp
LCAnZmlsZTovLy9jOi9hL2IuYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzovYS9i
JSNjJykuYXNfdXJpKCksICdmaWxlOi8vL2M6L2EvYiUyNSUyM2MnKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFAoJ2M6L2EvYlx4ZTknKS5hc191cmkoKSwgJ2ZpbGU6Ly8vYzovYS9iJUMzJUE5
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvL3NvbWUvc2hhcmUvJykuYXNfdXJpKCks
ICdmaWxlOi8vc29tZS9zaGFyZS8nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8vc29t
ZS9zaGFyZS9hL2IuYycpLmFzX3VyaSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxl
Oi8vc29tZS9zaGFyZS9hL2IuYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLy9zb21l
L3NoYXJlL2EvYiUjY1x4ZTknKS5hc191cmkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAn
ZmlsZTovL3NvbWUvc2hhcmUvYS9iJTI1JTIzYyVDMyVBOScpCisKKyAgICBkZWYgdGVzdF9tYXRj
aF9jb21tb24oc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICAjIEFic29sdXRl
IHBhdHRlcm5zCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCdjOi9iLnB5JykubWF0Y2goJy8q
LnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCdjOi9iLnB5JykubWF0Y2goJ2M6Ki5w
eScpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoUCgnYzovYi5weScpLm1hdGNoKCdjOi8qLnB5
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnZDovYi5weScpLm1hdGNoKCdjOi8qLnB5
JykpICAjIHdyb25nIGRyaXZlCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnYi5weScpLm1h
dGNoKCcvKi5weScpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJ2IucHknKS5tYXRjaCgn
YzoqLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnYi5weScpLm1hdGNoKCdjOi8q
LnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnYzpiLnB5JykubWF0Y2goJy8qLnB5
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnYzpiLnB5JykubWF0Y2goJ2M6LyoucHkn
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCcvYi5weScpLm1hdGNoKCdjOioucHknKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCcvYi5weScpLm1hdGNoKCdjOi8qLnB5JykpCisg
ICAgICAgICMgVU5DIHBhdHRlcm5zCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCcvL3NvbWUv
c2hhcmUvYS5weScpLm1hdGNoKCcvKi5weScpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoUCgn
Ly9zb21lL3NoYXJlL2EucHknKS5tYXRjaCgnLy9zb21lL3NoYXJlLyoucHknKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShQKCcvL290aGVyL3NoYXJlL2EucHknKS5tYXRjaCgnLy9zb21lL3No
YXJlLyoucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCcvL3NvbWUvc2hhcmUvYS9i
LnB5JykubWF0Y2goJy8vc29tZS9zaGFyZS8qLnB5JykpCisgICAgICAgICMgQ2FzZS1pbnNlbnNp
dGl2aXR5CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCdCLnB5JykubWF0Y2goJ2IuUFknKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJ2M6L2EvQi5QeScpLm1hdGNoKCdDOi9BLyoucFkn
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJy8vU29tZS9TaGFyZS9CLlB5JykubWF0Y2go
Jy8vc29tRS9zaGFyRS8qLnBZJykpCisKKyAgICBkZWYgdGVzdF9vcmRlcmluZ19jb21tb24oc2Vs
Zik6CisgICAgICAgICMgQ2FzZS1pbnNlbnNpdGl2aXR5CisgICAgICAgIGRlZiBhc3NlcnRPcmRl
cmVkRXF1YWwoYSwgYik6CisgICAgICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChhLCBiKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwoYiwgYSkKKyAgICAgICAgUCA9IHNl
bGYuY2xzCisgICAgICAgIHAgPSBQKCdjOkEvYicpCisgICAgICAgIHEgPSBQKCdDOmEvQicpCisg
ICAgICAgIGFzc2VydE9yZGVyZWRFcXVhbChwLCBxKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KHAgPCBxKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHAgPiBxKQorICAgICAgICBwID0gUCgn
Ly9zb21lL1NoYXJlL0EvYicpCisgICAgICAgIHEgPSBQKCcvL1NvbWUvU0hBUkUvYS9CJykKKyAg
ICAgICAgYXNzZXJ0T3JkZXJlZEVxdWFsKHAsIHEpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
cCA8IHEpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocCA+IHEpCisKKyAgICBkZWYgdGVzdF9w
YXJ0cyhzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKCdjOmEvYicp
CisgICAgICAgIHBhcnRzID0gcC5wYXJ0cworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnRz
LCAoJ2M6JywgJ2EnLCAnYicpKQorICAgICAgICBwID0gUCgnYzovYS9iJykKKyAgICAgICAgcGFy
dHMgPSBwLnBhcnRzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFydHMsICgnYzpcXCcsICdh
JywgJ2InKSkKKyAgICAgICAgcCA9IFAoJy8vYS9iL2MvZCcpCisgICAgICAgIHBhcnRzID0gcC5w
YXJ0cworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnRzLCAoJ1xcXFxhXFxiXFwnLCAnYycs
ICdkJykpCisKKyAgICBkZWYgdGVzdF9wYXJlbnQoc2VsZik6CisgICAgICAgICMgQW5jaG9yZWQK
KyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKCd6OmEvYi9jJykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwLnBhcmVudCwgUCgnejphL2InKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwLnBhcmVudC5wYXJlbnQsIFAoJ3o6YScpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHAucGFyZW50LnBhcmVudC5wYXJlbnQsIFAoJ3o6JykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocC5wYXJlbnQucGFyZW50LnBhcmVudC5wYXJlbnQsIFAoJ3o6JykpCisgICAgICAgIHAg
PSBQKCd6Oi9hL2IvYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5wYXJlbnQsIFAoJ3o6
L2EvYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucGFyZW50LnBhcmVudCwgUCgnejov
YScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucGFyZW50LnBhcmVudC5wYXJlbnQsIFAo
J3o6LycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucGFyZW50LnBhcmVudC5wYXJlbnQu
cGFyZW50LCBQKCd6Oi8nKSkKKyAgICAgICAgcCA9IFAoJy8vYS9iL2MvZCcpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocC5wYXJlbnQsIFAoJy8vYS9iL2MnKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwLnBhcmVudC5wYXJlbnQsIFAoJy8vYS9iJykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocC5wYXJlbnQucGFyZW50LnBhcmVudCwgUCgnLy9hL2InKSkKKworICAgIGRlZiB0ZXN0
X3BhcmVudHMoc2VsZik6CisgICAgICAgICMgQW5jaG9yZWQKKyAgICAgICAgUCA9IHNlbGYuY2xz
CisgICAgICAgIHAgPSBQKCd6OmEvYi8nKQorICAgICAgICBwYXIgPSBwLnBhcmVudHMKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocGFyKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwYXJbMF0sIFAoJ3o6YScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhclsxXSwgUCgn
ejonKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHBhciksIFtQKCd6OmEnKSwgUCgn
ejonKV0pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvcik6CisgICAg
ICAgICAgICBwYXJbMl0KKyAgICAgICAgcCA9IFAoJ3o6L2EvYi8nKQorICAgICAgICBwYXIgPSBw
LnBhcmVudHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocGFyKSwgMikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwYXJbMF0sIFAoJ3o6L2EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwYXJbMV0sIFAoJ3o6LycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocGFy
KSwgW1AoJ3o6L2EnKSwgUCgnejovJyldKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2Vz
KEluZGV4RXJyb3IpOgorICAgICAgICAgICAgcGFyWzJdCisgICAgICAgIHAgPSBQKCcvL2EvYi9j
L2QnKQorICAgICAgICBwYXIgPSBwLnBhcmVudHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
ZW4ocGFyKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJbMF0sIFAoJy8vYS9iL2Mn
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJbMV0sIFAoJy8vYS9iJykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGlzdChwYXIpLCBbUCgnLy9hL2IvYycpLCBQKCcvL2EvYicpXSkK
KyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbmRleEVycm9yKToKKyAgICAgICAgICAg
IHBhclsyXQorCisgICAgZGVmIHRlc3RfZHJpdmUoc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNs
cworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6JykuZHJpdmUsICdjOicpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzphL2InKS5kcml2ZSwgJ2M6JykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChQKCdjOi8nKS5kcml2ZSwgJ2M6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCdjOi9hL2IvJykuZHJpdmUsICdjOicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgn
Ly9hL2InKS5kcml2ZSwgJ1xcXFxhXFxiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcv
L2EvYi8nKS5kcml2ZSwgJ1xcXFxhXFxiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcv
L2EvYi9jL2QnKS5kcml2ZSwgJ1xcXFxhXFxiJykKKworICAgIGRlZiB0ZXN0X3Jvb3Qoc2VsZik6
CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6Jyku
cm9vdCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzphL2InKS5yb290LCAnJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi8nKS5yb290LCAnXFwnKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvYi8nKS5yb290LCAnXFwnKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFAoJy8vYS9iJykucm9vdCwgJ1xcJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCcvL2EvYi8nKS5yb290LCAnXFwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8v
YS9iL2MvZCcpLnJvb3QsICdcXCcpCisKKyAgICBkZWYgdGVzdF9hbmNob3Ioc2VsZik6CisgICAg
ICAgIFAgPSBzZWxmLmNscworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6JykuYW5jaG9y
LCAnYzonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS9iJykuYW5jaG9yLCAnYzon
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6LycpLmFuY2hvciwgJ2M6XFwnKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvYi8nKS5hbmNob3IsICdjOlxcJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvL2EvYicpLmFuY2hvciwgJ1xcXFxhXFxiXFwnKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8vYS9iLycpLmFuY2hvciwgJ1xcXFxhXFxiXFwnKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8vYS9iL2MvZCcpLmFuY2hvciwgJ1xcXFxhXFxi
XFwnKQorCisgICAgZGVmIHRlc3RfbmFtZShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzonKS5uYW1lLCAnJykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChQKCdjOi8nKS5uYW1lLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQ
KCdjOmEvYicpLm5hbWUsICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi9hL2In
KS5uYW1lLCAnYicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzphL2IucHknKS5uYW1l
LCAnYi5weScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzovYS9iLnB5JykubmFtZSwg
J2IucHknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8vTXkucHkvU2hhcmUucGhwJyku
bmFtZSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLy9NeS5weS9TaGFyZS5waHAv
YS9iJykubmFtZSwgJ2InKQorCisgICAgZGVmIHRlc3Rfc3VmZml4KHNlbGYpOgorICAgICAgICBQ
ID0gc2VsZi5jbHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOicpLnN1ZmZpeCwgJycp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzovJykuc3VmZml4LCAnJykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYicpLnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoUCgnYzovYS9iJykuc3VmZml4LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCdjOmEvYi5weScpLnN1ZmZpeCwgJy5weScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
UCgnYzovYS9iLnB5Jykuc3VmZml4LCAnLnB5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQ
KCdjOmEvLmhncmMnKS5zdWZmaXgsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6
L2EvLmhncmMnKS5zdWZmaXgsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS8u
aGcucmMnKS5zdWZmaXgsICcucmMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2Ev
LmhnLnJjJykuc3VmZml4LCAnLnJjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEv
Yi50YXIuZ3onKS5zdWZmaXgsICcuZ3onKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6
L2EvYi50YXIuZ3onKS5zdWZmaXgsICcuZ3onKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAo
J2M6YS9Tb21lIG5hbWUuIEVuZGluZyB3aXRoIGEgZG90LicpLnN1ZmZpeCwgJycpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzovYS9Tb21lIG5hbWUuIEVuZGluZyB3aXRoIGEgZG90Licp
LnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLy9NeS5weS9TaGFyZS5w
aHAnKS5zdWZmaXgsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8vTXkucHkvU2hh
cmUucGhwL2EvYicpLnN1ZmZpeCwgJycpCisKKyAgICBkZWYgdGVzdF9zdWZmaXhlcyhzZWxmKToK
KyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzonKS5z
dWZmaXhlcywgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzovJykuc3VmZml4ZXMs
IFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS9iJykuc3VmZml4ZXMsIFtdKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvYicpLnN1ZmZpeGVzLCBbXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYi5weScpLnN1ZmZpeGVzLCBbJy5weSddKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvYi5weScpLnN1ZmZpeGVzLCBbJy5weSddKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS8uaGdyYycpLnN1ZmZpeGVzLCBbXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi9hLy5oZ3JjJykuc3VmZml4ZXMsIFtdKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS8uaGcucmMnKS5zdWZmaXhlcywgWycucmMnXSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi9hLy5oZy5yYycpLnN1ZmZpeGVzLCBbJy5y
YyddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS9iLnRhci5neicpLnN1ZmZpeGVz
LCBbJy50YXInLCAnLmd6J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzovYS9iLnRh
ci5neicpLnN1ZmZpeGVzLCBbJy50YXInLCAnLmd6J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoUCgnLy9NeS5weS9TaGFyZS5waHAnKS5zdWZmaXhlcywgW10pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoUCgnLy9NeS5weS9TaGFyZS5waHAvYS9iJykuc3VmZml4ZXMsIFtdKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS9Tb21lIG5hbWUuIEVuZGluZyB3aXRoIGEgZG90Licp
LnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi9hL1NvbWUgbmFt
ZS4gRW5kaW5nIHdpdGggYSBkb3QuJykuc3VmZml4ZXMsIFtdKQorCisgICAgZGVmIHRlc3Rfc3Rl
bShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
UCgnYzonKS5zdGVtLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi4nKS5zdGVt
LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi4uJykuc3RlbSwgJy4uJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi8nKS5zdGVtLCAnJykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChQKCdjOmEvYicpLnN0ZW0sICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCdjOmEvYi5weScpLnN0ZW0sICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdj
OmEvLmhncmMnKS5zdGVtLCAnLmhncmMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6
YS8uaGcucmMnKS5zdGVtLCAnLmhnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEv
Yi50YXIuZ3onKS5zdGVtLCAnYi50YXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6
YS9Tb21lIG5hbWUuIEVuZGluZyB3aXRoIGEgZG90LicpLnN0ZW0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgJ1NvbWUgbmFtZS4gRW5kaW5nIHdpdGggYSBkb3QuJykKKworICAgIGRlZiB0ZXN0
X3dpdGhfbmFtZShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoUCgnYzphL2InKS53aXRoX25hbWUoJ2QueG1sJyksIFAoJ2M6YS9kLnhtbCcpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvYicpLndpdGhfbmFtZSgnZC54bWwnKSwg
UCgnYzovYS9kLnhtbCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAg
UCgnYzphL0RvdCBlbmRpbmcuJykud2l0aF9uYW1lKCdkLnhtbCcpLCBQKCdjOmEvZC54bWwnKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIFAoJ2M6L2EvRG90IGVuZGlu
Zy4nKS53aXRoX25hbWUoJ2QueG1sJyksIFAoJ2M6L2EvZC54bWwnKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnYzonKS53aXRoX25hbWUsICdkLnhtbCcpCisgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2M6LycpLndpdGhfbmFtZSwgJ2Qu
eG1sJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnLy9NeS9TaGFy
ZScpLndpdGhfbmFtZSwgJ2QueG1sJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVF
cnJvciwgUCgnYzphL2InKS53aXRoX25hbWUsICdkOicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFZhbHVlRXJyb3IsIFAoJ2M6YS9iJykud2l0aF9uYW1lLCAnZDplJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnYzphL2InKS53aXRoX25hbWUsICdkOi9lJykK
KyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnYzphL2InKS53aXRoX25h
bWUsICcvL015L1NoYXJlJykKKworICAgIGRlZiB0ZXN0X3dpdGhfc3VmZml4KHNlbGYpOgorICAg
ICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYicpLndp
dGhfc3VmZml4KCcuZ3onKSwgUCgnYzphL2IuZ3onKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCdjOi9hL2InKS53aXRoX3N1ZmZpeCgnLmd6JyksIFAoJ2M6L2EvYi5neicpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS9iLnB5Jykud2l0aF9zdWZmaXgoJy5neicpLCBQKCdj
OmEvYi5neicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvYi5weScpLndpdGhf
c3VmZml4KCcuZ3onKSwgUCgnYzovYS9iLmd6JykpCisgICAgICAgICMgUGF0aCBkb2Vzbid0IGhh
dmUgYSAiZmlsZW5hbWUiIGNvbXBvbmVudAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1
ZUVycm9yLCBQKCcnKS53aXRoX3N1ZmZpeCwgJy5neicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFZhbHVlRXJyb3IsIFAoJy4nKS53aXRoX3N1ZmZpeCwgJy5neicpCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJy8nKS53aXRoX3N1ZmZpeCwgJy5neicpCisgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJy8vTXkvU2hhcmUnKS53aXRoX3N1
ZmZpeCwgJy5neicpCisgICAgICAgICMgSW52YWxpZCBzdWZmaXgKKyAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnYzphL2InKS53aXRoX3N1ZmZpeCwgJ2d6JykKKyAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnYzphL2InKS53aXRoX3N1ZmZpeCwg
Jy8nKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdjOmEvYicpLndp
dGhfc3VmZml4LCAnXFwnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQ
KCdjOmEvYicpLndpdGhfc3VmZml4LCAnYzonKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLCBQKCdjOmEvYicpLndpdGhfc3VmZml4LCAnLy5neicpCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2M6YS9iJykud2l0aF9zdWZmaXgsICdcXC5neicp
CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2M6YS9iJykud2l0aF9z
dWZmaXgsICdjOi5neicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAo
J2M6YS9iJykud2l0aF9zdWZmaXgsICdjL2QnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLCBQKCdjOmEvYicpLndpdGhfc3VmZml4LCAnY1xcZCcpCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2M6YS9iJykud2l0aF9zdWZmaXgsICcuYy9kJykK
KyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnYzphL2InKS53aXRoX3N1
ZmZpeCwgJy5jXFxkJykKKworICAgIGRlZiB0ZXN0X3JlbGF0aXZlX3RvKHNlbGYpOgorICAgICAg
ICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9IFAoJ0M6Rm9vL0JhcicpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90byhQKCdjOicpKSwgUCgnRm9vL0JhcicpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHAucmVsYXRpdmVfdG8oJ2M6JyksIFAoJ0Zvby9CYXInKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKFAoJ2M6Zm9PJykpLCBQKCdCYXIn
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCdjOmZvTycpLCBQKCdC
YXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCdjOmZvTy8nKSwg
UCgnQmFyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90byhQKCdjOmZv
Ty9iYVInKSksIFAoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCdj
OmZvTy9iYVInKSwgUCgpKQorICAgICAgICAjIFVucmVsYXRlZCBwYXRocworICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCkpCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sICcnKQorICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCdkOicpKQorICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCcvJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAo
J0ZvbycpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZl
X3RvLCBQKCcvRm9vJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAu
cmVsYXRpdmVfdG8sIFAoJ0M6L0ZvbycpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1
ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCdDOkZvby9CYXIvQmF6JykpCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJ0M6Rm9vL0JheicpKQor
ICAgICAgICBwID0gUCgnQzovRm9vL0JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5y
ZWxhdGl2ZV90byhQKCdjOicpKSwgUCgnL0Zvby9CYXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwLnJlbGF0aXZlX3RvKCdjOicpLCBQKCcvRm9vL0JhcicpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHN0cihwLnJlbGF0aXZlX3RvKFAoJ2M6JykpKSwgJ1xcRm9vXFxCYXInKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwLnJlbGF0aXZlX3RvKCdjOicpKSwgJ1xcRm9vXFxC
YXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVsYXRpdmVfdG8oUCgnYzovJykpLCBQ
KCdGb28vQmFyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90bygnYzov
JyksIFAoJ0Zvby9CYXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3Rv
KFAoJ2M6L2ZvTycpKSwgUCgnQmFyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxh
dGl2ZV90bygnYzovZm9PJyksIFAoJ0JhcicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAu
cmVsYXRpdmVfdG8oJ2M6L2ZvTy8nKSwgUCgnQmFyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocC5yZWxhdGl2ZV90byhQKCdjOi9mb08vYmFSJykpLCBQKCkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocC5yZWxhdGl2ZV90bygnYzovZm9PL2JhUicpLCBQKCkpCisgICAgICAgICMgVW5y
ZWxhdGVkIHBhdGhzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVs
YXRpdmVfdG8sIFAoJ0M6L0JheicpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVy
cm9yLCBwLnJlbGF0aXZlX3RvLCBQKCdDOi9Gb28vQmFyL0JheicpKQorICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCdDOi9Gb28vQmF6JykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJ0M6
Rm9vJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVf
dG8sIFAoJ2Q6JykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVs
YXRpdmVfdG8sIFAoJ2Q6LycpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9y
LCBwLnJlbGF0aXZlX3RvLCBQKCcvJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVl
RXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJy9Gb28nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvciwgcC5yZWxhdGl2ZV90bywgUCgnLy9DL0ZvbycpKQorICAgICAgICAjIFVO
QyBwYXRocworICAgICAgICBwID0gUCgnLy9TZXJ2ZXIvU2hhcmUvRm9vL0JhcicpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90byhQKCcvL3NFcnZlci9zSGFyZScpKSwgUCgn
Rm9vL0JhcicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVsYXRpdmVfdG8oJy8vc0Vy
dmVyL3NIYXJlJyksIFAoJ0Zvby9CYXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJl
bGF0aXZlX3RvKCcvL3NFcnZlci9zSGFyZS8nKSwgUCgnRm9vL0JhcicpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHAucmVsYXRpdmVfdG8oUCgnLy9zRXJ2ZXIvc0hhcmUvRm9vJykpLCBQKCdC
YXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCcvL3NFcnZlci9z
SGFyZS9Gb28nKSwgUCgnQmFyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2
ZV90bygnLy9zRXJ2ZXIvc0hhcmUvRm9vLycpLCBQKCdCYXInKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwLnJlbGF0aXZlX3RvKFAoJy8vc0VydmVyL3NIYXJlL0Zvby9CYXInKSksIFAoKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCcvL3NFcnZlci9zSGFyZS9G
b28vQmFyJyksIFAoKSkKKyAgICAgICAgIyBVbnJlbGF0ZWQgcGF0aHMKKyAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcC5yZWxhdGl2ZV90bywgUCgnL1NlcnZlci9TaGFyZS9G
b28nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcC5yZWxhdGl2ZV90
bywgUCgnYzovU2VydmVyL1NoYXJlL0ZvbycpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCcvL3ovU2hhcmUvRm9vJykpCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJy8vU2VydmVyL3ov
Rm9vJykpCisKKyAgICBkZWYgdGVzdF9pc19hYnNvbHV0ZShzZWxmKToKKyAgICAgICAgUCA9IHNl
bGYuY2xzCisgICAgICAgICMgVW5kZXIgTlQsIG9ubHkgcGF0aHMgd2l0aCBib3RoIGEgZHJpdmUg
YW5kIGEgcm9vdCBhcmUgYWJzb2x1dGUKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCkuaXNf
YWJzb2x1dGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCdhJykuaXNfYWJzb2x1dGUo
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCdhL2IvJykuaXNfYWJzb2x1dGUoKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCcvJykuaXNfYWJzb2x1dGUoKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShQKCcvYScpLmlzX2Fic29sdXRlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoUCgnL2EvYi8nKS5pc19hYnNvbHV0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KFAoJ2M6JykuaXNfYWJzb2x1dGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCdjOmEn
KS5pc19hYnNvbHV0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJ2M6YS9iLycpLmlz
X2Fic29sdXRlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCdjOi8nKS5pc19hYnNvbHV0
ZSgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoUCgnYzovYScpLmlzX2Fic29sdXRlKCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCdjOi9hL2IvJykuaXNfYWJzb2x1dGUoKSkKKyAgICAg
ICAgIyBVTkMgcGF0aHMgYXJlIGFic29sdXRlIGJ5IGRlZmluaXRpb24KKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKFAoJy8vYS9iJykuaXNfYWJzb2x1dGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKFAoJy8vYS9iLycpLmlzX2Fic29sdXRlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQ
KCcvL2EvYi9jJykuaXNfYWJzb2x1dGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJy8v
YS9iL2MvZCcpLmlzX2Fic29sdXRlKCkpCisKKyAgICBkZWYgdGVzdF9qb2luKHNlbGYpOgorICAg
ICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9IFAoJ0M6L2EvYicpCisgICAgICAgIHBwID0g
cC5qb2lucGF0aCgneC95JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcCwgUCgnQzovYS9i
L3gveScpKQorICAgICAgICBwcCA9IHAuam9pbnBhdGgoJy94L3knKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHBwLCBQKCdDOi94L3knKSkKKyAgICAgICAgIyBKb2luaW5nIHdpdGggYSBkaWZm
ZXJlbnQgZHJpdmUgPT4gdGhlIGZpcnN0IHBhdGggaXMgaWdub3JlZCwgZXZlbgorICAgICAgICAj
IGlmIHRoZSBzZWNvbmQgcGF0aCBpcyByZWxhdGl2ZS4KKyAgICAgICAgcHAgPSBwLmpvaW5wYXRo
KCdEOngveScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHAsIFAoJ0Q6eC95JykpCisgICAg
ICAgIHBwID0gcC5qb2lucGF0aCgnRDoveC95JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
cCwgUCgnRDoveC95JykpCisgICAgICAgIHBwID0gcC5qb2lucGF0aCgnLy9ob3N0L3NoYXJlL3gv
eScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHAsIFAoJy8vaG9zdC9zaGFyZS94L3knKSkK
KyAgICAgICAgIyBKb2luaW5nIHdpdGggdGhlIHNhbWUgZHJpdmUgPT4gdGhlIGZpcnN0IHBhdGgg
aXMgYXBwZW5kZWQgdG8gaWYKKyAgICAgICAgIyB0aGUgc2Vjb25kIHBhdGggaXMgcmVsYXRpdmUu
CisgICAgICAgIHBwID0gcC5qb2lucGF0aCgnYzp4L3knKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBwLCBQKCdDOi9hL2IveC95JykpCisgICAgICAgIHBwID0gcC5qb2lucGF0aCgnYzoveC95
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcCwgUCgnQzoveC95JykpCisKKyAgICBkZWYg
dGVzdF9kaXYoc2VsZik6CisgICAgICAgICMgQmFzaWNhbGx5IHRoZSBzYW1lIGFzIGpvaW5wYXRo
KCkKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKCdDOi9hL2InKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHAgLyAneC95JywgUCgnQzovYS9iL3gveScpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHAgLyAneCcgLyAneScsIFAoJ0M6L2EvYi94L3knKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwIC8gJy94L3knLCBQKCdDOi94L3knKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwIC8gJy94JyAvICd5JywgUCgnQzoveC95JykpCisgICAgICAgICMgSm9pbmlu
ZyB3aXRoIGEgZGlmZmVyZW50IGRyaXZlID0+IHRoZSBmaXJzdCBwYXRoIGlzIGlnbm9yZWQsIGV2
ZW4KKyAgICAgICAgIyBpZiB0aGUgc2Vjb25kIHBhdGggaXMgcmVsYXRpdmUuCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocCAvICdEOngveScsIFAoJ0Q6eC95JykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocCAvICdEOicgLyAneC95JywgUCgnRDp4L3knKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwIC8gJ0Q6L3gveScsIFAoJ0Q6L3gveScpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHAgLyAnRDonIC8gJy94L3knLCBQKCdEOi94L3knKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwIC8gJy8vaG9zdC9zaGFyZS94L3knLCBQKCcvL2hvc3Qvc2hhcmUveC95JykpCisgICAg
ICAgICMgSm9pbmluZyB3aXRoIHRoZSBzYW1lIGRyaXZlID0+IHRoZSBmaXJzdCBwYXRoIGlzIGFw
cGVuZGVkIHRvIGlmCisgICAgICAgICMgdGhlIHNlY29uZCBwYXRoIGlzIHJlbGF0aXZlLgorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHAgLyAnYzp4L3knLCBQKCdDOi9hL2IveC95JykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocCAvICdjOi94L3knLCBQKCdDOi94L3knKSkKKworICAgIGRl
ZiB0ZXN0X2lzX3Jlc2VydmVkKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAg
c2VsZi5hc3NlcnRJcyhGYWxzZSwgUCgnJykuaXNfcmVzZXJ2ZWQoKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRJcyhGYWxzZSwgUCgnLycpLmlzX3Jlc2VydmVkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
SXMoRmFsc2UsIFAoJy9mb28vYmFyJykuaXNfcmVzZXJ2ZWQoKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRJcyhUcnVlLCBQKCdjb24nKS5pc19yZXNlcnZlZCgpKQorICAgICAgICBzZWxmLmFzc2VydElz
KFRydWUsIFAoJ05VTCcpLmlzX3Jlc2VydmVkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1
ZSwgUCgnTlVMLnR4dCcpLmlzX3Jlc2VydmVkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1
ZSwgUCgnY29tMScpLmlzX3Jlc2VydmVkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1ZSwg
UCgnY29tOS5iYXInKS5pc19yZXNlcnZlZCgpKQorICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNl
LCBQKCdiYXIuY29tOScpLmlzX3Jlc2VydmVkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1
ZSwgUCgnbHB0MScpLmlzX3Jlc2VydmVkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1ZSwg
UCgnbHB0OS5iYXInKS5pc19yZXNlcnZlZCgpKQorICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNl
LCBQKCdiYXIubHB0OScpLmlzX3Jlc2VydmVkKCkpCisgICAgICAgICMgT25seSB0aGUgbGFzdCBj
b21wb25lbnQgbWF0dGVycworICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNlLCBQKCdjOi9OVUwv
Y29uL2JheicpLmlzX3Jlc2VydmVkKCkpCisgICAgICAgICMgVU5DIHBhdGhzIGFyZSBuZXZlciBy
ZXNlcnZlZAorICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNlLCBQKCcvL215L3NoYXJlL251bC9j
b24vYXV4JykuaXNfcmVzZXJ2ZWQoKSkKKworCitjbGFzcyBQdXJlUGF0aFRlc3QoX0Jhc2VQdXJl
UGF0aFRlc3QsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBjbHMgPSBwYXRobGliLlB1cmVQYXRo
CisKKyAgICBkZWYgdGVzdF9jb25jcmV0ZV9jbGFzcyhzZWxmKToKKyAgICAgICAgcCA9IHNlbGYu
Y2xzKCdhJykKKyAgICAgICAgc2VsZi5hc3NlcnRJcygKKyAgICAgICAgICAgIHR5cGUocCksCisg
ICAgICAgICAgICBwYXRobGliLlB1cmVXaW5kb3dzUGF0aAorICAgICAgICAgICAgaWYgb3MubmFt
ZSA9PSAnbnQnIGVsc2UgcGF0aGxpYi5QdXJlUG9zaXhQYXRoKQorCisgICAgZGVmIHRlc3RfZGlm
ZmVyZW50X2ZsYXZvdXJzX3VuZXF1YWwoc2VsZik6CisgICAgICAgIHAgPSBwYXRobGliLlB1cmVQ
b3NpeFBhdGgoJ2EnKQorICAgICAgICBxID0gcGF0aGxpYi5QdXJlV2luZG93c1BhdGgoJ2EnKQor
ICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHAsIHEpCisKKyAgICBAdW5pdHRlc3Quc2tpcElm
KHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCksCisgICAgICAgICAgICAgICAgICAgICAnTW9zdCB0
eXBlcyBhcmUgb3JkZXJhYmxlIGluIFB5dGhvbiAyJykKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRf
Zmxhdm91cnNfdW5vcmRlcmVkKHNlbGYpOgorICAgICAgICBwID0gcGF0aGxpYi5QdXJlUG9zaXhQ
YXRoKCdhJykKKyAgICAgICAgcSA9IHBhdGhsaWIuUHVyZVdpbmRvd3NQYXRoKCdhJykKKyAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgcCA8IHEK
KyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAg
cCA8PSBxCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAg
ICAgICAgIHAgPiBxCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToK
KyAgICAgICAgICAgIHAgPj0gcQorCisKKyMKKyMgVGVzdHMgZm9yIHRoZSBjb25jcmV0ZSBjbGFz
c2VzCisjCisKKyMgTWFrZSBzdXJlIGFueSBzeW1ib2xpYyBsaW5rcyBpbiB0aGUgYmFzZSB0ZXN0
IHBhdGggYXJlIHJlc29sdmVkCitCQVNFID0gb3MucGF0aC5yZWFscGF0aChURVNURk4pCisKKwor
ZGVmIGpvaW4oKngpOgorICAgIHJldHVybiBvcy5wYXRoLmpvaW4oQkFTRSwgKngpCisKKworZGVm
IHJlbF9qb2luKCp4KToKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKFRFU1RGTiwgKngpCisKKwor
b25seV9udCA9IHVuaXR0ZXN0LnNraXBJZihvcy5uYW1lICE9ICdudCcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICd0ZXN0IHJlcXVpcmVzIGEgV2luZG93cy1jb21wYXRpYmxlIHN5c3RlbScp
Citvbmx5X3Bvc2l4ID0gdW5pdHRlc3Quc2tpcElmKG9zLm5hbWUgPT0gJ250JywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3Rlc3QgcmVxdWlyZXMgYSBQT1NJWC1jb21wYXRpYmxlIHN5
c3RlbScpCisKKworQG9ubHlfcG9zaXgKK2NsYXNzIFBvc2l4UGF0aEFzUHVyZVRlc3QoUHVyZVBv
c2l4UGF0aFRlc3QpOgorICAgIGNscyA9IHBhdGhsaWIuUG9zaXhQYXRoCisKKworQG9ubHlfbnQK
K2NsYXNzIFdpbmRvd3NQYXRoQXNQdXJlVGVzdChQdXJlV2luZG93c1BhdGhUZXN0KToKKyAgICBj
bHMgPSBwYXRobGliLldpbmRvd3NQYXRoCisKKyAgICBkZWYgdGVzdF9vd25lcihzZWxmKToKKyAg
ICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1w
bGVtZW50ZWRFcnJvcik6CisgICAgICAgICAgICBQKCdjOi8nKS5vd25lcigpCisKKyAgICBkZWYg
dGVzdF9ncm91cChzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvcik6CisgICAgICAgICAgICBQKCdjOi8n
KS5ncm91cCgpCisKKworY2xhc3MgX0Jhc2VQYXRoVGVzdChvYmplY3QpOgorICAgICIiIlRlc3Rz
IGZvciB0aGUgRlMtYWNjZXNzaW5nIGZ1bmN0aW9uYWxpdGllcyBvZiB0aGUgUGF0aCBjbGFzc2Vz
LiIiIgorCisgICAgIyAoQkFTRSkKKyAgICAjICB8CisgICAgIyAgfC0tIGJyb2tlbkxpbmsgLT4g
bm9uLWV4aXN0aW5nCisgICAgIyAgfC0tIGRpckEKKyAgICAjICB8ICAgYC0tIGxpbmtDIC0+IC4u
L2RpckIKKyAgICAjICB8LS0gZGlyQgorICAgICMgIHwgICB8LS0gZmlsZUIKKyAgICAjICB8ICAg
YC0tIGxpbmtEIC0+IC4uL2RpckIKKyAgICAjICB8LS0gZGlyQworICAgICMgIHwgICB8LS0gZGly
RAorICAgICMgIHwgICB8ICAgYC0tIGZpbGVECisgICAgIyAgfCAgIGAtLSBmaWxlQworICAgICMg
IHwtLSBkaXJFICAjIE5vIHBlcm1pc3Npb25zCisgICAgIyAgfC0tIGZpbGVBCisgICAgIyAgfC0t
IGxpbmtBIC0+IGZpbGVBCisgICAgIyAgYC0tIGxpbmtCIC0+IGRpckIKKyAgICAjCisKKyAgICBk
ZWYgc2V0VXAoc2VsZik6CisgICAgICAgIGRlZiBjbGVhbnVwKCk6CisgICAgICAgICAgICBvcy5j
aG1vZChqb2luKCdkaXJFJyksIDBvNzc3KQorICAgICAgICAgICAgc3VwcG9ydC5ybXRyZWUoQkFT
RSkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGNsZWFudXApCisgICAgICAgIG9zLm1rZGlyKEJB
U0UpCisgICAgICAgIG9zLm1rZGlyKGpvaW4oJ2RpckEnKSkKKyAgICAgICAgb3MubWtkaXIoam9p
bignZGlyQicpKQorICAgICAgICBvcy5ta2Rpcihqb2luKCdkaXJDJykpCisgICAgICAgIG9zLm1r
ZGlyKGpvaW4oJ2RpckMnLCAnZGlyRCcpKQorICAgICAgICBvcy5ta2Rpcihqb2luKCdkaXJFJykp
CisgICAgICAgIHdpdGggb3Blbihqb2luKCdmaWxlQScpLCAnd2InKSBhcyBmOgorICAgICAgICAg
ICAgZi53cml0ZShiInRoaXMgaXMgZmlsZSBBXG4iKQorICAgICAgICB3aXRoIG9wZW4oam9pbign
ZGlyQicsICdmaWxlQicpLCAnd2InKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZShiInRoaXMg
aXMgZmlsZSBCXG4iKQorICAgICAgICB3aXRoIG9wZW4oam9pbignZGlyQycsICdmaWxlQycpLCAn
d2InKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZShiInRoaXMgaXMgZmlsZSBDXG4iKQorICAg
ICAgICB3aXRoIG9wZW4oam9pbignZGlyQycsICdkaXJEJywgJ2ZpbGVEJyksICd3YicpIGFzIGY6
CisgICAgICAgICAgICBmLndyaXRlKGIidGhpcyBpcyBmaWxlIERcbiIpCisgICAgICAgIG9zLmNo
bW9kKGpvaW4oJ2RpckUnKSwgMCkKKyAgICAgICAgaWYgc3VwcG9ydF9jYW5fc3ltbGluaygpOgor
ICAgICAgICAgICAgIyBSZWxhdGl2ZSBzeW1saW5rcworICAgICAgICAgICAgb3Muc3ltbGluaygn
ZmlsZUEnLCBqb2luKCdsaW5rQScpKQorICAgICAgICAgICAgb3Muc3ltbGluaygnbm9uLWV4aXN0
aW5nJywgam9pbignYnJva2VuTGluaycpKQorICAgICAgICAgICAgc2VsZi5kaXJsaW5rKCdkaXJC
Jywgam9pbignbGlua0InKSkKKyAgICAgICAgICAgIHNlbGYuZGlybGluayhvcy5wYXRoLmpvaW4o
Jy4uJywgJ2RpckInKSwgam9pbignZGlyQScsICdsaW5rQycpKQorICAgICAgICAgICAgIyBUaGlz
IG9uZSBnb2VzIHVwd2FyZHMsIGNyZWF0aW5nIGEgbG9vcAorICAgICAgICAgICAgc2VsZi5kaXJs
aW5rKG9zLnBhdGguam9pbignLi4nLCAnZGlyQicpLCBqb2luKCdkaXJCJywgJ2xpbmtEJykpCisK
KyAgICBpZiBvcy5uYW1lID09ICdudCc6CisgICAgICAgICMgV29ya2Fyb3VuZCBmb3IgaHR0cDov
L2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTEzNzcyCisgICAgICAgIGRlZiBkaXJsaW5rKHNlbGYsIHNy
YywgZGVzdCk6CisgICAgICAgICAgICBvcy5zeW1saW5rKHNyYywgZGVzdCwgdGFyZ2V0X2lzX2Rp
cmVjdG9yeT1UcnVlKQorICAgIGVsc2U6CisgICAgICAgIGRlZiBkaXJsaW5rKHNlbGYsIHNyYywg
ZGVzdCk6CisgICAgICAgICAgICBvcy5zeW1saW5rKHNyYywgZGVzdCkKKworICAgIGRlZiBhc3Nl
cnRTYW1lKHNlbGYsIHBhdGhfYSwgcGF0aF9iKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9z
LnBhdGguc2FtZWZpbGUoc3RyKHBhdGhfYSksIHN0cihwYXRoX2IpKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICIlciBhbmQgJXIgZG9uJ3QgcG9pbnQgdG8gdGhlIHNhbWUgZmlsZSIgJQorICAg
ICAgICAgICAgICAgICAgICAgICAgKHBhdGhfYSwgcGF0aF9iKSkKKworICAgIGRlZiBhc3NlcnRG
aWxlTm90Rm91bmQoc2VsZiwgZnVuYywgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgaWYgc3lz
LnZlcnNpb25faW5mbyA+PSAoMywgMyk6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp
c2VzKEZpbGVOb3RGb3VuZEVycm9yKSBhcyBjbToKKyAgICAgICAgICAgICAgICBmdW5jKCphcmdz
LCAqKmt3YXJncykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoT1NFcnJvcikgYXMgY206CisgICAgICAgICAgICAgICAgIyBQeXRob24gMi42IGtsdWRn
ZSBmb3IgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTc4NTMKKyAgICAgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgICAgIGZ1bmMoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICAg
ICAgICAgIGV4Y2VwdDogICMgbm9xYTogRTcyMgorICAgICAgICAgICAgICAgICAgICByYWlzZQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVO
T0VOVCkKKworICAgIGRlZiBhc3NlcnRGaWxlRXhpc3RzKHNlbGYsIGZ1bmMsICphcmdzLCAqKmt3
YXJncyk6CisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDMpOgorICAgICAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhGaWxlRXhpc3RzRXJyb3IpIGFzIGNtOgorICAgICAg
ICAgICAgICAgIGZ1bmMoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKKyAgICAgICAgICAgICAg
ICAjIFB5dGhvbiAyLjYga2x1ZGdlIGZvciBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlNzg1
MworICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZnVuYygqYXJncywg
Kiprd2FyZ3MpCisgICAgICAgICAgICAgICAgZXhjZXB0OiAgIyBub3FhOiBFNzIyCisgICAgICAg
ICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2Vw
dGlvbi5lcnJubywgZXJybm8uRUVYSVNUKQorCisgICAgZGVmIF90ZXN0X2N3ZChzZWxmLCBwKToK
KyAgICAgICAgcSA9IHNlbGYuY2xzKG9zLmdldGN3ZCgpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHAsIHEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHApLCBzdHIocSkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0SXModHlwZShwKSwgdHlwZShxKSkKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHAuaXNfYWJzb2x1dGUoKSkKKworICAgIGRlZiB0ZXN0X2N3ZChzZWxmKToKKyAgICAgICAg
cCA9IHNlbGYuY2xzLmN3ZCgpCisgICAgICAgIHNlbGYuX3Rlc3RfY3dkKHApCisKKyAgICBkZWYg
X3Rlc3RfaG9tZShzZWxmLCBwKToKKyAgICAgICAgcSA9IHNlbGYuY2xzKG9zLnBhdGguZXhwYW5k
dXNlcignficpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIHEpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc3RyKHApLCBzdHIocSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShw
KSwgdHlwZShxKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHAuaXNfYWJzb2x1dGUoKSkKKwor
ICAgIGRlZiB0ZXN0X2hvbWUoc2VsZik6CisgICAgICAgIHAgPSBzZWxmLmNscy5ob21lKCkKKyAg
ICAgICAgc2VsZi5fdGVzdF9ob21lKHApCisKKyAgICBkZWYgdGVzdF9zYW1lZmlsZShzZWxmKToK
KyAgICAgICAgZmlsZUFfcGF0aCA9IG9zLnBhdGguam9pbihCQVNFLCAnZmlsZUEnKQorICAgICAg
ICBmaWxlQl9wYXRoID0gb3MucGF0aC5qb2luKEJBU0UsICdkaXJCJywgJ2ZpbGVCJykKKyAgICAg
ICAgcCA9IHNlbGYuY2xzKGZpbGVBX3BhdGgpCisgICAgICAgIHBwID0gc2VsZi5jbHMoZmlsZUFf
cGF0aCkKKyAgICAgICAgcSA9IHNlbGYuY2xzKGZpbGVCX3BhdGgpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShwLnNhbWVmaWxlKGZpbGVBX3BhdGgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
cC5zYW1lZmlsZShwcCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocC5zYW1lZmlsZShmaWxl
Ql9wYXRoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwLnNhbWVmaWxlKHEpKQorICAgICAg
ICAjIFRlc3QgdGhlIG5vbi1leGlzdGVudCBmaWxlIGNhc2UKKyAgICAgICAgbm9uX2V4aXN0ZW50
ID0gb3MucGF0aC5qb2luKEJBU0UsICdmb28nKQorICAgICAgICByID0gc2VsZi5jbHMobm9uX2V4
aXN0ZW50KQorICAgICAgICBzZWxmLmFzc2VydEZpbGVOb3RGb3VuZChwLnNhbWVmaWxlLCByKQor
ICAgICAgICBzZWxmLmFzc2VydEZpbGVOb3RGb3VuZChwLnNhbWVmaWxlLCBub25fZXhpc3RlbnQp
CisgICAgICAgIHNlbGYuYXNzZXJ0RmlsZU5vdEZvdW5kKHIuc2FtZWZpbGUsIHApCisgICAgICAg
IHNlbGYuYXNzZXJ0RmlsZU5vdEZvdW5kKHIuc2FtZWZpbGUsIG5vbl9leGlzdGVudCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRGaWxlTm90Rm91bmQoci5zYW1lZmlsZSwgcikKKyAgICAgICAgc2VsZi5h
c3NlcnRGaWxlTm90Rm91bmQoci5zYW1lZmlsZSwgbm9uX2V4aXN0ZW50KQorCisgICAgZGVmIHRl
c3RfZW1wdHlfcGF0aChzZWxmKToKKyAgICAgICAgIyBUaGUgZW1wdHkgcGF0aCBwb2ludHMgdG8g
Jy4nCisgICAgICAgIHAgPSBzZWxmLmNscygnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
LnN0YXQoKSwgb3Muc3RhdCgnLicpKQorCisgICAgZGVmIHRlc3RfZXhwYW5kdXNlcl9jb21tb24o
c2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUCgnficpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocC5leHBhbmR1c2VyKCksIFAob3MucGF0aC5leHBhbmR1c2VyKCd+
JykpKQorICAgICAgICBwID0gUCgnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLmV4
cGFuZHVzZXIoKSwgcCkKKyAgICAgICAgcCA9IFAoJy9+JykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwLmV4cGFuZHVzZXIoKSwgcCkKKyAgICAgICAgcCA9IFAoJy4uL34nKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHAuZXhwYW5kdXNlcigpLCBwKQorICAgICAgICBwID0gUChQKCcnKS5h
YnNvbHV0ZSgpLmFuY2hvcikgLyAnficKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLmV4cGFu
ZHVzZXIoKSwgcCkKKworICAgIGRlZiB0ZXN0X2V4aXN0cyhzZWxmKToKKyAgICAgICAgUCA9IHNl
bGYuY2xzCisgICAgICAgIHAgPSBQKEJBU0UpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1ZSwg
cC5leGlzdHMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhUcnVlLCAocCAvICdkaXJBJykuZXhp
c3RzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1ZSwgKHAgLyAnZmlsZUEnKS5leGlzdHMo
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhGYWxzZSwgKHAgLyAnZmlsZUEnIC8gJ2JhaCcpLmV4
aXN0cygpKQorICAgICAgICBpZiBzdXBwb3J0X2Nhbl9zeW1saW5rKCk6CisgICAgICAgICAgICBz
ZWxmLmFzc2VydElzKFRydWUsIChwIC8gJ2xpbmtBJykuZXhpc3RzKCkpCisgICAgICAgICAgICBz
ZWxmLmFzc2VydElzKFRydWUsIChwIC8gJ2xpbmtCJykuZXhpc3RzKCkpCisgICAgICAgICAgICBz
ZWxmLmFzc2VydElzKFRydWUsIChwIC8gJ2xpbmtCJyAvICdmaWxlQicpLmV4aXN0cygpKQorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRJcyhGYWxzZSwgKHAgLyAnbGlua0EnIC8gJ2JhaCcpLmV4aXN0
cygpKQorICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNlLCAocCAvICdmb28nKS5leGlzdHMoKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRJcyhGYWxzZSwgUCgnL3h5enp5JykuZXhpc3RzKCkpCisKKyAg
ICBkZWYgdGVzdF9vcGVuX2NvbW1vbihzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0Up
CisgICAgICAgIHdpdGggKHAgLyAnZmlsZUEnKS5vcGVuKCdyJykgYXMgZjoKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShmLCBpby5UZXh0SU9CYXNlKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgInRoaXMgaXMgZmlsZSBBXG4iKQorICAgICAgICB3aXRo
IChwIC8gJ2ZpbGVBJykub3BlbigncmInKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJ
c0luc3RhbmNlKGYsIGlvLkJ1ZmZlcmVkSU9CYXNlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmLnJlYWQoKS5zdHJpcCgpLCBiInRoaXMgaXMgZmlsZSBBIikKKyAgICAgICAgd2l0aCAo
cCAvICdmaWxlQScpLm9wZW4oJ3JiJywgYnVmZmVyaW5nPTApIGFzIGY6CisgICAgICAgICAgICBz
ZWxmLmFzc2VydElzSW5zdGFuY2UoZiwgaW8uUmF3SU9CYXNlKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmLnJlYWQoKS5zdHJpcCgpLCBiInRoaXMgaXMgZmlsZSBBIikKKworICAgIGRl
ZiB0ZXN0X3JlYWRfd3JpdGVfYnl0ZXMoc2VsZik6CisgICAgICAgIHAgPSBzZWxmLmNscyhCQVNF
KQorICAgICAgICAocCAvICdmaWxlQScpLndyaXRlX2J5dGVzKGInYWJjZGVmZycpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoKHAgLyAnZmlsZUEnKS5yZWFkX2J5dGVzKCksIGInYWJjZGVmZycp
CisgICAgICAgICMgY2hlY2sgdGhhdCB0cnlpbmcgdG8gd3JpdGUgc3RyIGRvZXMgbm90IHRydW5j
YXRlIHRoZSBmaWxlCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKSBh
cyBjbToKKyAgICAgICAgICAgIChwIC8gJ2ZpbGVBJykud3JpdGVfYnl0ZXMoc2l4LnUoJ3NvbWVz
dHInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN0cihjbS5leGNlcHRpb24pLnN0YXJ0c3dp
dGgoJ2RhdGEgbXVzdCBiZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChwIC8gJ2ZpbGVB
JykucmVhZF9ieXRlcygpLCBiJ2FiY2RlZmcnKQorCisgICAgZGVmIHRlc3RfcmVhZF93cml0ZV90
ZXh0KHNlbGYpOgorICAgICAgICBwID0gc2VsZi5jbHMoQkFTRSkKKyAgICAgICAgKHAgLyAnZmls
ZUEnKS53cml0ZV90ZXh0KHNpeC51KCdcdTAwZTRiY2RlZmcnKSwgZW5jb2Rpbmc9J2xhdGluLTEn
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChwIC8gJ2ZpbGVBJykucmVhZF90ZXh0KAorICAg
ICAgICAgICAgZW5jb2Rpbmc9J3V0Zi04JywgZXJyb3JzPSdpZ25vcmUnKSwgc2l4LnUoJ2JjZGVm
ZycpKQorICAgICAgICAjIGNoZWNrIHRoYXQgdHJ5aW5nIHRvIHdyaXRlIGJ5dGVzIGRvZXMgbm90
IHRydW5jYXRlIHRoZSBmaWxlCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVy
cm9yKSBhcyBjbToKKyAgICAgICAgICAgIChwIC8gJ2ZpbGVBJykud3JpdGVfdGV4dChiJ3NvbWVi
eXRlcycpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzdHIoY20uZXhjZXB0aW9uKS5zdGFydHN3
aXRoKCdkYXRhIG11c3QgYmUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgocCAvICdmaWxl
QScpLnJlYWRfdGV4dChlbmNvZGluZz0nbGF0aW4tMScpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpeC51KCdcdTAwZTRiY2RlZmcnKSkKKworICAgIGRlZiB0ZXN0X2l0ZXJkaXIoc2VsZik6
CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUChCQVNFKQorICAgICAgICBpdCA9
IHAuaXRlcmRpcigpCisgICAgICAgIHBhdGhzID0gc2V0KGl0KQorICAgICAgICBleHBlY3RlZCA9
IFsnZGlyQScsICdkaXJCJywgJ2RpckMnLCAnZGlyRScsICdmaWxlQSddCisgICAgICAgIGlmIHN1
cHBvcnRfY2FuX3N5bWxpbmsoKToKKyAgICAgICAgICAgIGV4cGVjdGVkICs9IFsnbGlua0EnLCAn
bGlua0InLCAnYnJva2VuTGluayddCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0aHMsIHNl
dChQKEJBU0UsIHEpIGZvciBxIGluIGV4cGVjdGVkKSkKKworICAgIEBzdXBwb3J0X3NraXBfdW5s
ZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9pdGVyZGlyX3N5bWxpbmsoc2VsZik6CisgICAgICAg
ICMgX19pdGVyX18gb24gYSBzeW1saW5rIHRvIGEgZGlyZWN0b3J5CisgICAgICAgIFAgPSBzZWxm
LmNscworICAgICAgICBwID0gUChCQVNFLCAnbGlua0InKQorICAgICAgICBwYXRocyA9IHNldChw
Lml0ZXJkaXIoKSkKKyAgICAgICAgZXhwZWN0ZWQgPSBzZXQoUChCQVNFLCAnbGlua0InLCBxKSBm
b3IgcSBpbiBbJ2ZpbGVCJywgJ2xpbmtEJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0
aHMsIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3RfaXRlcmRpcl9ub2RpcihzZWxmKToKKyAgICAg
ICAgIyBfX2l0ZXJfXyBvbiBzb21ldGhpbmcgdGhhdCBpcyBub3QgYSBkaXJlY3RvcnkKKyAgICAg
ICAgcCA9IHNlbGYuY2xzKEJBU0UsICdmaWxlQScpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoT1NFcnJvcikgYXMgY206CisgICAgICAgICAgICAjIFB5dGhvbiAyLjYga2x1ZGdlIGZv
ciBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlNzg1MworICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIG5leHQocC5pdGVyZGlyKCkpCisgICAgICAgICAgICBleGNlcHQ6ICAjIG5v
cWE6IEU3MjJzCisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgIyBFTk9FTlQgb3IgRUlO
VkFMIHVuZGVyIFdpbmRvd3MsIEVOT1RESVIgb3RoZXJ3aXNlCisgICAgICAgICMgKHNlZSBpc3N1
ZSAjMTI4MDIpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oY20uZXhjZXB0aW9uLmVycm5vLCAoZXJy
bm8uRU5PVERJUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
cnJuby5FTk9FTlQsIGVycm5vLkVJTlZBTCkpCisKKyAgICBkZWYgdGVzdF9nbG9iX2NvbW1vbihz
ZWxmKToKKyAgICAgICAgZGVmIF9jaGVjayhnbG9iLCBleHBlY3RlZCk6CisgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHNldChnbG9iKSwgc2V0KFAoQkFTRSwgcSkgZm9yIHEgaW4gZXhwZWN0
ZWQpKQorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9IFAoQkFTRSkKKyAgICAgICAg
aXQgPSBwLmdsb2IoImZpbGVBIikKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGl0LCBj
b2xsZWN0aW9uc19hYmMuSXRlcmF0b3IpCisgICAgICAgIF9jaGVjayhpdCwgWyJmaWxlQSJdKQor
ICAgICAgICBfY2hlY2socC5nbG9iKCJmaWxlQiIpLCBbXSkKKyAgICAgICAgX2NoZWNrKHAuZ2xv
YigiZGlyKi9maWxlKiIpLCBbImRpckIvZmlsZUIiLCAiZGlyQy9maWxlQyJdKQorICAgICAgICBp
ZiBub3Qgc3VwcG9ydF9jYW5fc3ltbGluaygpOgorICAgICAgICAgICAgX2NoZWNrKHAuZ2xvYigi
KkEiKSwgWydkaXJBJywgJ2ZpbGVBJ10pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBfY2hl
Y2socC5nbG9iKCIqQSIpLCBbJ2RpckEnLCAnZmlsZUEnLCAnbGlua0EnXSkKKyAgICAgICAgaWYg
bm90IHN1cHBvcnRfY2FuX3N5bWxpbmsoKToKKyAgICAgICAgICAgIF9jaGVjayhwLmdsb2IoIipC
LyoiKSwgWydkaXJCL2ZpbGVCJ10pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBfY2hlY2so
cC5nbG9iKCIqQi8qIiksIFsnZGlyQi9maWxlQicsICdkaXJCL2xpbmtEJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdsaW5rQi9maWxlQicsICdsaW5rQi9saW5rRCddKQor
ICAgICAgICBpZiBub3Qgc3VwcG9ydF9jYW5fc3ltbGluaygpOgorICAgICAgICAgICAgX2NoZWNr
KHAuZ2xvYigiKi9maWxlQiIpLCBbJ2RpckIvZmlsZUInXSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIF9jaGVjayhwLmdsb2IoIiovZmlsZUIiKSwgWydkaXJCL2ZpbGVCJywgJ2xpbmtCL2Zp
bGVCJ10pCisKKyAgICBkZWYgdGVzdF9yZ2xvYl9jb21tb24oc2VsZik6CisgICAgICAgIGRlZiBf
Y2hlY2soZ2xvYiwgZXhwZWN0ZWQpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQo
Z2xvYiksIHNldChQKEJBU0UsIHEpIGZvciBxIGluIGV4cGVjdGVkKSkKKyAgICAgICAgUCA9IHNl
bGYuY2xzCisgICAgICAgIHAgPSBQKEJBU0UpCisgICAgICAgIGl0ID0gcC5yZ2xvYigiZmlsZUEi
KQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaXQsIGNvbGxlY3Rpb25zX2FiYy5JdGVy
YXRvcikKKyAgICAgICAgX2NoZWNrKGl0LCBbImZpbGVBIl0pCisgICAgICAgIF9jaGVjayhwLnJn
bG9iKCJmaWxlQiIpLCBbImRpckIvZmlsZUIiXSkKKyAgICAgICAgX2NoZWNrKHAucmdsb2IoIiov
ZmlsZUEiKSwgW10pCisgICAgICAgIGlmIG5vdCBzdXBwb3J0X2Nhbl9zeW1saW5rKCk6CisgICAg
ICAgICAgICBfY2hlY2socC5yZ2xvYigiKi9maWxlQiIpLCBbImRpckIvZmlsZUIiXSkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIF9jaGVjayhwLnJnbG9iKCIqL2ZpbGVCIiksIFsiZGlyQi9m
aWxlQiIsICJkaXJCL2xpbmtEL2ZpbGVCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibGlua0IvZmlsZUIiLCAiZGlyQS9saW5rQy9maWxlQiJdKQorICAgICAgICBf
Y2hlY2socC5yZ2xvYigiZmlsZSoiKSwgWyJmaWxlQSIsICJkaXJCL2ZpbGVCIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlyQy9maWxlQyIsICJkaXJDL2RpckQvZmlsZUQi
XSkKKyAgICAgICAgcCA9IFAoQkFTRSwgImRpckMiKQorICAgICAgICBfY2hlY2socC5yZ2xvYigi
ZmlsZSoiKSwgWyJkaXJDL2ZpbGVDIiwgImRpckMvZGlyRC9maWxlRCJdKQorICAgICAgICBfY2hl
Y2socC5yZ2xvYigiKi8qIiksIFsiZGlyQy9kaXJEL2ZpbGVEIl0pCisKKyAgICBAc3VwcG9ydF9z
a2lwX3VubGVzc19zeW1saW5rCisgICAgZGVmIHRlc3Rfcmdsb2Jfc3ltbGlua19sb29wKHNlbGYp
OgorICAgICAgICAjIERvbid0IGdldCBmb29sZWQgYnkgc3ltbGluayBsb29wcyAoSXNzdWUgIzI2
MDEyKQorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9IFAoQkFTRSkKKyAgICAgICAg
Z2l2ZW4gPSBzZXQocC5yZ2xvYignKicpKQorICAgICAgICBleHBlY3QgPSBzZXQoWworICAgICAg
ICAgICAgICAgICAgJ2Jyb2tlbkxpbmsnLAorICAgICAgICAgICAgICAgICAgJ2RpckEnLCAnZGly
QS9saW5rQycsCisgICAgICAgICAgICAgICAgICAnZGlyQicsICdkaXJCL2ZpbGVCJywgJ2RpckIv
bGlua0QnLAorICAgICAgICAgICAgICAgICAgJ2RpckMnLCAnZGlyQy9kaXJEJywgJ2RpckMvZGly
RC9maWxlRCcsICdkaXJDL2ZpbGVDJywKKyAgICAgICAgICAgICAgICAgICdkaXJFJywKKyAgICAg
ICAgICAgICAgICAgICdmaWxlQScsCisgICAgICAgICAgICAgICAgICAnbGlua0EnLAorICAgICAg
ICAgICAgICAgICAgJ2xpbmtCJywKKyAgICAgICAgICAgICAgICAgIF0pCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZ2l2ZW4sIHNldChbcCAvIHggZm9yIHggaW4gZXhwZWN0XSkpCisKKyAgICBk
ZWYgdGVzdF9nbG9iX2RvdGRvdChzZWxmKToKKyAgICAgICAgIyAiLi4iIGlzIG5vdCBzcGVjaWFs
IGluIGdsb2JzCisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUChCQVNFKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHNldChwLmdsb2IoIi4uIikpLCBzZXQoW1AoQkFTRSwgIi4u
IildKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQocC5nbG9iKCJkaXJBLy4uL2ZpbGUq
IikpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNldChbUChCQVNFLCAiZGlyQS8uLi9maWxl
QSIpXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KHAuZ2xvYigiLi4veHl6enkiKSks
IHNldCgpKQorCisgICAgZGVmIF9jaGVja19yZXNvbHZlKHNlbGYsIHAsIGV4cGVjdGVkLCBzdHJp
Y3Q9VHJ1ZSk6CisgICAgICAgIHEgPSBwLnJlc29sdmUoc3RyaWN0KQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHEsIGV4cGVjdGVkKQorCisgICAgIyB0aGlzIGNhbiBiZSB1c2VkIHRvIGNoZWNr
IGJvdGggcmVsYXRpdmUgYW5kIGFic29sdXRlIHJlc29sdXRpb25zCisgICAgX2NoZWNrX3Jlc29s
dmVfcmVsYXRpdmUgPSBfY2hlY2tfcmVzb2x2ZV9hYnNvbHV0ZSA9IF9jaGVja19yZXNvbHZlCisK
KyAgICBAc3VwcG9ydF9za2lwX3VubGVzc19zeW1saW5rCisgICAgZGVmIHRlc3RfcmVzb2x2ZV9j
b21tb24oc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUChCQVNFLCAn
Zm9vJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKKyAg
ICAgICAgICAgIHAucmVzb2x2ZShzdHJpY3Q9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVOT0VOVCkKKyAgICAgICAgIyBOb24tc3RyaWN0
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHAucmVzb2x2ZShzdHJpY3Q9RmFsc2UpKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oQkFTRSwgJ2ZvbycpKQorICAg
ICAgICBwID0gUChCQVNFLCAnZm9vJywgJ2luJywgJ3NwYW0nKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHN0cihwLnJlc29sdmUoc3RyaWN0PUZhbHNlKSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgb3MucGF0aC5qb2luKEJBU0UsICdmb28nLCAnaW4nLCAnc3BhbScpKQorICAgICAgICBw
ID0gUChCQVNFLCAnLi4nLCAnZm9vJywgJ2luJywgJ3NwYW0nKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHN0cihwLnJlc29sdmUoc3RyaWN0PUZhbHNlKSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbignZm9vJywgJ2luJywgJ3NwYW0nKSkp
CisgICAgICAgICMgVGhlc2UgYXJlIGFsbCByZWxhdGl2ZSBzeW1saW5rcworICAgICAgICBwID0g
UChCQVNFLCAnZGlyQicsICdmaWxlQicpCisgICAgICAgIHNlbGYuX2NoZWNrX3Jlc29sdmVfcmVs
YXRpdmUocCwgcCkKKyAgICAgICAgcCA9IFAoQkFTRSwgJ2xpbmtBJykKKyAgICAgICAgc2VsZi5f
Y2hlY2tfcmVzb2x2ZV9yZWxhdGl2ZShwLCBQKEJBU0UsICdmaWxlQScpKQorICAgICAgICBwID0g
UChCQVNFLCAnZGlyQScsICdsaW5rQycsICdmaWxlQicpCisgICAgICAgIHNlbGYuX2NoZWNrX3Jl
c29sdmVfcmVsYXRpdmUocCwgUChCQVNFLCAnZGlyQicsICdmaWxlQicpKQorICAgICAgICBwID0g
UChCQVNFLCAnZGlyQicsICdsaW5rRCcsICdmaWxlQicpCisgICAgICAgIHNlbGYuX2NoZWNrX3Jl
c29sdmVfcmVsYXRpdmUocCwgUChCQVNFLCAnZGlyQicsICdmaWxlQicpKQorICAgICAgICAjIE5v
bi1zdHJpY3QKKyAgICAgICAgcCA9IFAoQkFTRSwgJ2RpckEnLCAnbGlua0MnLCAnZmlsZUInLCAn
Zm9vJywgJ2luJywgJ3NwYW0nKQorICAgICAgICBzZWxmLl9jaGVja19yZXNvbHZlX3JlbGF0aXZl
KHAsIFAoQkFTRSwgJ2RpckInLCAnZmlsZUInLCAnZm9vJywgJ2luJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcGFtJyksIEZhbHNlKQorICAgICAgICBwID0g
UChCQVNFLCAnZGlyQScsICdsaW5rQycsICcuLicsICdmb28nLCAnaW4nLCAnc3BhbScpCisgICAg
ICAgIGlmIG9zLm5hbWUgPT0gJ250JzoKKyAgICAgICAgICAgICMgSW4gV2luZG93cywgaWYgbGlu
a1kgcG9pbnRzIHRvIGRpckIsICdkaXJBXGxpbmtZXC4uJworICAgICAgICAgICAgIyByZXNvbHZl
cyB0byAnZGlyQScgd2l0aG91dCByZXNvbHZpbmcgbGlua1kgZmlyc3QuCisgICAgICAgICAgICBz
ZWxmLl9jaGVja19yZXNvbHZlX3JlbGF0aXZlKHAsIFAoQkFTRSwgJ2RpckEnLCAnZm9vJywgJ2lu
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BhbScp
LCBGYWxzZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgSW4gUG9zaXgsIGlmIGxpbmtZ
IHBvaW50cyB0byBkaXJCLCAnZGlyQS9saW5rWS8uLicKKyAgICAgICAgICAgICMgcmVzb2x2ZXMg
dG8gJ2RpckIvLi4nIGZpcnN0IGJlZm9yZSByZXNvbHZpbmcgdG8gcGFyZW50IG9mIGRpckIuCisg
ICAgICAgICAgICBzZWxmLl9jaGVja19yZXNvbHZlX3JlbGF0aXZlKAorICAgICAgICAgICAgICAg
IHAsIFAoQkFTRSwgJ2ZvbycsICdpbicsICdzcGFtJyksIEZhbHNlKQorICAgICAgICAjIE5vdyBj
cmVhdGUgYWJzb2x1dGUgc3ltbGlua3MKKyAgICAgICAgZCA9IHRlbXBmaWxlLm1rZHRlbXAoc3Vm
Zml4PSctZGlyRCcpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzdXBwb3J0LnJtdHJlZSwgZCkK
KyAgICAgICAgb3Muc3ltbGluayhvcy5wYXRoLmpvaW4oZCksIGpvaW4oJ2RpckEnLCAnbGlua1gn
KSkKKyAgICAgICAgb3Muc3ltbGluayhqb2luKCdkaXJCJyksIG9zLnBhdGguam9pbihkLCAnbGlu
a1knKSkKKyAgICAgICAgcCA9IFAoQkFTRSwgJ2RpckEnLCAnbGlua1gnLCAnbGlua1knLCAnZmls
ZUInKQorICAgICAgICBzZWxmLl9jaGVja19yZXNvbHZlX2Fic29sdXRlKHAsIFAoQkFTRSwgJ2Rp
ckInLCAnZmlsZUInKSkKKyAgICAgICAgIyBOb24tc3RyaWN0CisgICAgICAgIHAgPSBQKEJBU0Us
ICdkaXJBJywgJ2xpbmtYJywgJ2xpbmtZJywgJ2ZvbycsICdpbicsICdzcGFtJykKKyAgICAgICAg
c2VsZi5fY2hlY2tfcmVzb2x2ZV9yZWxhdGl2ZShwLCBQKEJBU0UsICdkaXJCJywgJ2ZvbycsICdp
bicsICdzcGFtJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2Up
CisgICAgICAgIHAgPSBQKEJBU0UsICdkaXJBJywgJ2xpbmtYJywgJ2xpbmtZJywgJy4uJywgJ2Zv
bycsICdpbicsICdzcGFtJykKKyAgICAgICAgaWYgb3MubmFtZSA9PSAnbnQnOgorICAgICAgICAg
ICAgIyBJbiBXaW5kb3dzLCBpZiBsaW5rWSBwb2ludHMgdG8gZGlyQiwgJ2RpckFcbGlua1lcLi4n
CisgICAgICAgICAgICAjIHJlc29sdmVzIHRvICdkaXJBJyB3aXRob3V0IHJlc29sdmluZyBsaW5r
WSBmaXJzdC4KKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX3Jlc29sdmVfcmVsYXRpdmUocCwgUChk
LCAnZm9vJywgJ2luJywgJ3NwYW0nKSwgRmFsc2UpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAjIEluIFBvc2l4LCBpZiBsaW5rWSBwb2ludHMgdG8gZGlyQiwgJ2RpckEvbGlua1kvLi4nCisg
ICAgICAgICAgICAjIHJlc29sdmVzIHRvICdkaXJCLy4uJyBmaXJzdCBiZWZvcmUgcmVzb2x2aW5n
IHRvIHBhcmVudCBvZiBkaXJCLgorICAgICAgICAgICAgc2VsZi5fY2hlY2tfcmVzb2x2ZV9yZWxh
dGl2ZSgKKyAgICAgICAgICAgICAgICBwLCBQKEJBU0UsICdmb28nLCAnaW4nLCAnc3BhbScpLCBG
YWxzZSkKKworICAgIEBzdXBwb3J0X3NraXBfdW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9y
ZXNvbHZlX2RvdChzZWxmKToKKyAgICAgICAgIyBTZWUgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3Bp
dHJvdS9wYXRobGliL2lzc3VlLzkvCisgICAgICAgICMgcGF0aHJlc29sdmUtZmFpbHMtb24tY29t
cGxleC1zeW1saW5rcworICAgICAgICBwID0gc2VsZi5jbHMoQkFTRSkKKyAgICAgICAgc2VsZi5k
aXJsaW5rKCcuJywgam9pbignMCcpKQorICAgICAgICBzZWxmLmRpcmxpbmsob3MucGF0aC5qb2lu
KCcwJywgJzAnKSwgam9pbignMScpKQorICAgICAgICBzZWxmLmRpcmxpbmsob3MucGF0aC5qb2lu
KCcxJywgJzEnKSwgam9pbignMicpKQorICAgICAgICBxID0gcCAvICcyJworICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHEucmVzb2x2ZShzdHJpY3Q9VHJ1ZSksIHApCisgICAgICAgIHIgPSBxIC8g
JzMnIC8gJzQnCisgICAgICAgIHNlbGYuYXNzZXJ0RmlsZU5vdEZvdW5kKHIucmVzb2x2ZSwgc3Ry
aWN0PVRydWUpCisgICAgICAgICMgTm9uLXN0cmljdAorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHIucmVzb2x2ZShzdHJpY3Q9RmFsc2UpLCBwIC8gJzMnIC8gJzQnKQorCisgICAgZGVmIHRlc3Rf
d2l0aChzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UpCisgICAgICAgIGl0ID0gcC5p
dGVyZGlyKCkKKyAgICAgICAgaXQyID0gcC5pdGVyZGlyKCkKKyAgICAgICAgbmV4dChpdDIpCisg
ICAgICAgIHdpdGggcDoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIyBJL08gb3BlcmF0aW9u
IG9uIGNsb3NlZCBwYXRoCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG5l
eHQsIGl0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBuZXh0LCBpdDIp
CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAub3BlbikKKyAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcC5yZXNvbHZlKQorICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLmFic29sdXRlKQorICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhWYWx1ZUVycm9yLCBwLl9fZW50ZXJfXykKKworICAgIGRlZiB0ZXN0X2NobW9kKHNlbGYp
OgorICAgICAgICBwID0gc2VsZi5jbHMoQkFTRSkgLyAnZmlsZUEnCisgICAgICAgIG1vZGUgPSBw
LnN0YXQoKS5zdF9tb2RlCisgICAgICAgICMgQ2xlYXIgd3JpdGFibGUgYml0CisgICAgICAgIG5l
d19tb2RlID0gbW9kZSAmIH4wbzIyMgorICAgICAgICBwLmNobW9kKG5ld19tb2RlKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHAuc3RhdCgpLnN0X21vZGUsIG5ld19tb2RlKQorICAgICAgICAj
IFNldCB3cml0YWJsZSBiaXQKKyAgICAgICAgbmV3X21vZGUgPSBtb2RlIHwgMG8yMjIKKyAgICAg
ICAgcC5jaG1vZChuZXdfbW9kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnN0YXQoKS5z
dF9tb2RlLCBuZXdfbW9kZSkKKworICAgICMgWFhYIGFsc28gbmVlZCBhIHRlc3QgZm9yIGxjaG1v
ZAorCisgICAgZGVmIHRlc3Rfc3RhdChzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0Up
IC8gJ2ZpbGVBJworICAgICAgICBzdCA9IHAuc3RhdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocC5zdGF0KCksIHN0KQorICAgICAgICAjIENoYW5nZSBmaWxlIG1vZGUgYnkgZmxpcHBpbmcg
d3JpdGUgYml0CisgICAgICAgIHAuY2htb2Qoc3Quc3RfbW9kZSBeIDBvMjIyKQorICAgICAgICBz
ZWxmLmFkZENsZWFudXAocC5jaG1vZCwgc3Quc3RfbW9kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRO
b3RFcXVhbChwLnN0YXQoKSwgc3QpCisKKyAgICBAc3VwcG9ydF9za2lwX3VubGVzc19zeW1saW5r
CisgICAgZGVmIHRlc3RfbHN0YXQoc2VsZik6CisgICAgICAgIHAgPSBzZWxmLmNscyhCQVNFKSAv
ICdsaW5rQScKKyAgICAgICAgc3QgPSBwLnN0YXQoKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVx
dWFsKHN0LCBwLmxzdGF0KCkpCisKKyAgICBkZWYgdGVzdF9sc3RhdF9ub3N5bWxpbmsoc2VsZik6
CisgICAgICAgIHAgPSBzZWxmLmNscyhCQVNFKSAvICdmaWxlQScKKyAgICAgICAgc3QgPSBwLnN0
YXQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0LCBwLmxzdGF0KCkpCisKKyAgICBAdW5p
dHRlc3Quc2tpcFVubGVzcyhwd2QsICJ0aGUgcHdkIG1vZHVsZSBpcyBuZWVkZWQgZm9yIHRoaXMg
dGVzdCIpCisgICAgZGVmIHRlc3Rfb3duZXIoc2VsZik6CisgICAgICAgIHAgPSBzZWxmLmNscyhC
QVNFKSAvICdmaWxlQScKKyAgICAgICAgdWlkID0gcC5zdGF0KCkuc3RfdWlkCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIG5hbWUgPSBwd2QuZ2V0cHd1aWQodWlkKS5wd19uYW1lCisgICAgICAg
IGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAg
ICAgICAgInVzZXIgJWQgZG9lc24ndCBoYXZlIGFuIGVudHJ5IGluIHRoZSBzeXN0ZW0gZGF0YWJh
c2UiICUgdWlkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWUsIHAub3duZXIoKSkKKwor
ICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGdycCwgInRoZSBncnAgbW9kdWxlIGlzIG5lZWRlZCBm
b3IgdGhpcyB0ZXN0IikKKyAgICBkZWYgdGVzdF9ncm91cChzZWxmKToKKyAgICAgICAgcCA9IHNl
bGYuY2xzKEJBU0UpIC8gJ2ZpbGVBJworICAgICAgICBnaWQgPSBwLnN0YXQoKS5zdF9naWQKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgbmFtZSA9IGdycC5nZXRncmdpZChnaWQpLmdyX25hbWUK
KyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAg
ICAgICAgICAgICAgICAiZ3JvdXAgJWQgZG9lc24ndCBoYXZlIGFuIGVudHJ5IGluIHRoZSBzeXN0
ZW0gZGF0YWJhc2UiICUgZ2lkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWUsIHAuZ3Jv
dXAoKSkKKworICAgIGRlZiB0ZXN0X3VubGluayhzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xz
KEJBU0UpIC8gJ2ZpbGVBJworICAgICAgICBwLnVubGluaygpCisgICAgICAgIHNlbGYuYXNzZXJ0
RmlsZU5vdEZvdW5kKHAuc3RhdCkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlTm90Rm91bmQocC51
bmxpbmspCisKKyAgICBkZWYgdGVzdF9ybWRpcihzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xz
KEJBU0UpIC8gJ2RpckEnCisgICAgICAgIGZvciBxIGluIHAuaXRlcmRpcigpOgorICAgICAgICAg
ICAgcS51bmxpbmsoKQorICAgICAgICBwLnJtZGlyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxl
Tm90Rm91bmQocC5zdGF0KQorICAgICAgICBzZWxmLmFzc2VydEZpbGVOb3RGb3VuZChwLnVubGlu
aykKKworICAgIGRlZiB0ZXN0X3JlbmFtZShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzKEJB
U0UpCisgICAgICAgIHAgPSBQIC8gJ2ZpbGVBJworICAgICAgICBzaXplID0gcC5zdGF0KCkuc3Rf
c2l6ZQorICAgICAgICAjIFJlbmFtaW5nIHRvIGFub3RoZXIgcGF0aAorICAgICAgICBxID0gUCAv
ICdkaXJBJyAvICdmaWxlQUEnCisgICAgICAgIHAucmVuYW1lKHEpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocS5zdGF0KCkuc3Rfc2l6ZSwgc2l6ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxl
Tm90Rm91bmQocC5zdGF0KQorICAgICAgICAjIFJlbmFtaW5nIHRvIGEgc3RyIG9mIGEgcmVsYXRp
dmUgcGF0aAorICAgICAgICByID0gcmVsX2pvaW4oJ2ZpbGVBQUEnKQorICAgICAgICBxLnJlbmFt
ZShyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnN0YXQocikuc3Rfc2l6ZSwgc2l6ZSkK
KyAgICAgICAgc2VsZi5hc3NlcnRGaWxlTm90Rm91bmQocS5zdGF0KQorCisgICAgZGVmIHRlc3Rf
cmVwbGFjZShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0UpCisgICAgICAgIHAgPSBQ
IC8gJ2ZpbGVBJworICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDMpOgorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwgcC5yZXBsYWNlLCBw
KQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNpemUgPSBwLnN0YXQoKS5zdF9zaXplCisg
ICAgICAgICMgUmVwbGFjaW5nIGEgbm9uLWV4aXN0aW5nIHBhdGgKKyAgICAgICAgcSA9IFAgLyAn
ZGlyQScgLyAnZmlsZUFBJworICAgICAgICBwLnJlcGxhY2UocSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChxLnN0YXQoKS5zdF9zaXplLCBzaXplKQorICAgICAgICBzZWxmLmFzc2VydEZpbGVO
b3RGb3VuZChwLnN0YXQpCisgICAgICAgICMgUmVwbGFjaW5nIGFub3RoZXIgKGV4aXN0aW5nKSBw
YXRoCisgICAgICAgIHIgPSByZWxfam9pbignZGlyQicsICdmaWxlQicpCisgICAgICAgIHEucmVw
bGFjZShyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnN0YXQocikuc3Rfc2l6ZSwgc2l6
ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlTm90Rm91bmQocS5zdGF0KQorCisgICAgZGVmIHRl
c3RfdG91Y2hfY29tbW9uKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMoQkFTRSkKKyAgICAg
ICAgcCA9IFAgLyAnbmV3ZmlsZUEnCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocC5leGlzdHMo
KSkKKyAgICAgICAgcC50b3VjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwLmV4aXN0cygp
KQorICAgICAgICAjIFJld2luZCB0aGUgbXRpbWUgc3VmZmljaWVudGx5IGZhciBpbiB0aGUgcGFz
dCB0byB3b3JrIGFyb3VuZAorICAgICAgICAjIGZpbGVzeXN0ZW0tc3BlY2lmaWMgdGltZXN0YW1w
IGdyYW51bGFyaXR5LgorICAgICAgICBvbGRfbXRpbWUgPSBwLnN0YXQoKS5zdF9tdGltZSAtIDEw
CisgICAgICAgIG9zLnV0aW1lKHN0cihwKSwgKG9sZF9tdGltZSwgb2xkX210aW1lKSkKKyAgICAg
ICAgIyBUaGUgZmlsZSBtdGltZSBzaG91bGQgYmUgcmVmcmVzaGVkIGJ5IGNhbGxpbmcgdG91Y2go
KSBhZ2FpbgorICAgICAgICBwLnRvdWNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1
YWwocC5zdGF0KCkuc3RfbXRpbWUsIG9sZF9tdGltZSkKKyAgICAgICAgIyBOb3cgd2l0aCBleGlz
dF9vaz1GYWxzZQorICAgICAgICBwID0gUCAvICduZXdmaWxlQicKKyAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShwLmV4aXN0cygpKQorICAgICAgICBwLnRvdWNoKG1vZGU9MG83MDAsIGV4aXN0X29r
PUZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocC5leGlzdHMoKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgcC50b3VjaCwgZXhpc3Rfb2s9RmFsc2UpCisKKyAgICBk
ZWYgdGVzdF90b3VjaF9ub2NoYW5nZShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0Up
CisgICAgICAgIHAgPSBQIC8gJ2ZpbGVBJworICAgICAgICBwLnRvdWNoKCkKKyAgICAgICAgd2l0
aCBwLm9wZW4oJ3JiJykgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFk
KCkuc3RyaXAoKSwgYiJ0aGlzIGlzIGZpbGUgQSIpCisKKyAgICBkZWYgdGVzdF9ta2RpcihzZWxm
KToKKyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0UpCisgICAgICAgIHAgPSBQIC8gJ25ld2RpckEn
CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocC5leGlzdHMoKSkKKyAgICAgICAgcC5ta2Rpcigp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwLmV4aXN0cygpKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUocC5pc19kaXIoKSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9y
KSBhcyBjbToKKyAgICAgICAgICAgICMgUHl0aG9uIDIuNiBrbHVkZ2UgZm9yIGh0dHA6Ly9idWdz
LnB5dGhvbi5vcmcvaXNzdWU3ODUzCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
cC5ta2RpcigpCisgICAgICAgICAgICBleGNlcHQ6ICAjIG5vcWE6IEU3MjIKKyAgICAgICAgICAg
ICAgICByYWlzZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJubywg
ZXJybm8uRUVYSVNUKQorCisgICAgZGVmIHRlc3RfbWtkaXJfcGFyZW50cyhzZWxmKToKKyAgICAg
ICAgIyBDcmVhdGluZyBhIGNoYWluIG9mIGRpcmVjdG9yaWVzCisgICAgICAgIHAgPSBzZWxmLmNs
cyhCQVNFLCAnbmV3ZGlyQicsICduZXdkaXJDJykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShw
LmV4aXN0cygpKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IpIGFzIGNt
OgorICAgICAgICAgICAgcC5ta2RpcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhj
ZXB0aW9uLmVycm5vLCBlcnJuby5FTk9FTlQpCisgICAgICAgIHAubWtkaXIocGFyZW50cz1UcnVl
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUocC5leGlzdHMoKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKHAuaXNfZGlyKCkpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJv
cikgYXMgY206CisgICAgICAgICAgICBwLm1rZGlyKHBhcmVudHM9VHJ1ZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVFWElTVCkKKyAgICAgICAg
IyB0ZXN0IGBtb2RlYCBhcmcKKyAgICAgICAgbW9kZSA9IHN0YXQuU19JTU9ERShwLnN0YXQoKS5z
dF9tb2RlKSAgIyBkZWZhdWx0IG1vZGUKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UsICduZXdk
aXJEJywgJ25ld2RpckUnKQorICAgICAgICBwLm1rZGlyKDBvNTU1LCBwYXJlbnRzPVRydWUpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwLmV4aXN0cygpKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUocC5pc19kaXIoKSkKKyAgICAgICAgaWYgb3MubmFtZSAhPSAnbnQnOgorICAgICAgICAgICAg
IyB0aGUgZGlyZWN0b3J5J3MgcGVybWlzc2lvbnMgZm9sbG93IHRoZSBtb2RlIGFyZ3VtZW50Cisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXQuU19JTU9ERShwLnN0YXQoKS5zdF9tb2Rl
KSwgMG83NTU1ICYgbW9kZSkKKyAgICAgICAgIyB0aGUgcGFyZW50J3MgcGVybWlzc2lvbnMgZm9s
bG93IHRoZSBkZWZhdWx0IHByb2Nlc3Mgc2V0dGluZ3MKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzdGF0LlNfSU1PREUocC5wYXJlbnQuc3RhdCgpLnN0X21vZGUpLCBtb2RlKQorCisgICAgZGVm
IHRlc3RfbWtkaXJfZXhpc3Rfb2soc2VsZik6CisgICAgICAgIHAgPSBzZWxmLmNscyhCQVNFLCAn
ZGlyQicpCisgICAgICAgIHN0X2N0aW1lX2ZpcnN0ID0gcC5zdGF0KCkuc3RfY3RpbWUKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKHAuZXhpc3RzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShw
LmlzX2RpcigpKQorICAgICAgICBzZWxmLmFzc2VydEZpbGVFeGlzdHMocC5ta2RpcikKKyAgICAg
ICAgcC5ta2RpcihleGlzdF9vaz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocC5leGlz
dHMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnN0YXQoKS5zdF9jdGltZSwgc3RfY3Rp
bWVfZmlyc3QpCisKKyAgICBkZWYgdGVzdF9ta2Rpcl9leGlzdF9va193aXRoX3BhcmVudChzZWxm
KToKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UsICdkaXJDJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKHAuZXhpc3RzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmlsZUV4aXN0cyhwLm1rZGly
KQorICAgICAgICBwID0gcCAvICduZXdkaXJDJworICAgICAgICBwLm1rZGlyKHBhcmVudHM9VHJ1
ZSkKKyAgICAgICAgc3RfY3RpbWVfZmlyc3QgPSBwLnN0YXQoKS5zdF9jdGltZQorICAgICAgICBz
ZWxmLmFzc2VydFRydWUocC5leGlzdHMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlRXhpc3Rz
KHAubWtkaXIsIHBhcmVudHM9VHJ1ZSkKKyAgICAgICAgcC5ta2RpcihwYXJlbnRzPVRydWUsIGV4
aXN0X29rPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwLmV4aXN0cygpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHAuc3RhdCgpLnN0X2N0aW1lLCBzdF9jdGltZV9maXJzdCkKKwor
ICAgIGRlZiB0ZXN0X21rZGlyX2V4aXN0X29rX3Jvb3Qoc2VsZik6CisgICAgICAgICMgSXNzdWUg
IzI1ODAzOiBBIGRyaXZlIHJvb3QgY291bGQgcmFpc2UgUGVybWlzc2lvbkVycm9yIG9uIFdpbmRv
d3MKKyAgICAgICAgc2VsZi5jbHMoJy8nKS5yZXNvbHZlKCkubWtkaXIoZXhpc3Rfb2s9VHJ1ZSkK
KyAgICAgICAgc2VsZi5jbHMoJy8nKS5yZXNvbHZlKCkubWtkaXIocGFyZW50cz1UcnVlLCBleGlz
dF9vaz1UcnVlKQorCisgICAgQG9ubHlfbnQgICAgIyBYWFg6IG5vdCBzdXJlIGhvdyB0byB0ZXN0
IHRoaXMgb24gUE9TSVgKKyAgICBkZWYgdGVzdF9ta2Rpcl93aXRoX3Vua25vd25fZHJpdmUoc2Vs
Zik6CisgICAgICAgIGZvciBkIGluICdaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQSc6CisgICAg
ICAgICAgICBwID0gc2VsZi5jbHMoZCArICc6XFwnKQorICAgICAgICAgICAgaWYgbm90IHAuaXNf
ZGlyKCk6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IHNlbGYuc2tpcFRlc3QoImNhbm5vdCBmaW5kIGEgZHJpdmUgdGhhdCBkb2Vzbid0IGV4aXN0IikK
KyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKToKKyAgICAgICAgICAgIChw
IC8gJ2NoaWxkJyAvICdwYXRoJykubWtkaXIocGFyZW50cz1UcnVlKQorCisgICAgZGVmIHRlc3Rf
bWtkaXJfd2l0aF9jaGlsZF9maWxlKHNlbGYpOgorICAgICAgICBwID0gc2VsZi5jbHMoQkFTRSwg
J2RpckInLCAnZmlsZUInKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocC5leGlzdHMoKSkKKyAg
ICAgICAgIyBBbiBleGNlcHRpb24gaXMgcmFpc2VkIHdoZW4gdGhlIGxhc3QgcGF0aCBjb21wb25l
bnQgaXMgYW4gZXhpc3RpbmcKKyAgICAgICAgIyByZWd1bGFyIGZpbGUsIHJlZ2FyZGxlc3Mgb2Yg
d2hldGhlciBleGlzdF9vayBpcyB0cnVlIG9yIG5vdC4KKyAgICAgICAgc2VsZi5hc3NlcnRGaWxl
RXhpc3RzKHAubWtkaXIsIHBhcmVudHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlRXhp
c3RzKHAubWtkaXIsIHBhcmVudHM9VHJ1ZSwgZXhpc3Rfb2s9VHJ1ZSkKKworICAgIGRlZiB0ZXN0
X21rZGlyX25vX3BhcmVudHNfZmlsZShzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0Us
ICdmaWxlQScpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwLmV4aXN0cygpKQorICAgICAgICAj
IEFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiB0aGUgbGFzdCBwYXRoIGNvbXBvbmVudCBpcyBh
biBleGlzdGluZworICAgICAgICAjIHJlZ3VsYXIgZmlsZSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVy
IGV4aXN0X29rIGlzIHRydWUgb3Igbm90LgorICAgICAgICBzZWxmLmFzc2VydEZpbGVFeGlzdHMo
cC5ta2RpcikKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlRXhpc3RzKHAubWtkaXIsIGV4aXN0X29r
PVRydWUpCisKKyAgICBkZWYgdGVzdF9ta2Rpcl9jb25jdXJyZW50X3BhcmVudF9jcmVhdGlvbihz
ZWxmKToKKyAgICAgICAgZm9yIHBhdHRlcm5fbnVtIGluIHJhbmdlKDMyKToKKyAgICAgICAgICAg
IHAgPSBzZWxmLmNscyhCQVNFLCAnZGlyQ1BDJWQnICUgcGF0dGVybl9udW0pCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKHAuZXhpc3RzKCkpCisKKyAgICAgICAgICAgIGRlZiBteV9ta2Rp
cihwYXRoLCBtb2RlPTBvNzc3KToKKyAgICAgICAgICAgICAgICBwYXRoID0gc3RyKHBhdGgpCisg
ICAgICAgICAgICAgICAgIyBFbXVsYXRlIGFub3RoZXIgcHJvY2VzcyB0aGF0IHdvdWxkIGNyZWF0
ZSB0aGUgZGlyZWN0b3J5CisgICAgICAgICAgICAgICAgIyBqdXN0IGJlZm9yZSB3ZSB0cnkgdG8g
Y3JlYXRlIGl0IG91cnNlbHZlcy4gIFdlIGRvIGl0CisgICAgICAgICAgICAgICAgIyBpbiBhbGwg
cG9zc2libGUgcGF0dGVybiBjb21iaW5hdGlvbnMsIGFzc3VtaW5nIHRoYXQgdGhpcworICAgICAg
ICAgICAgICAgICMgZnVuY3Rpb24gaXMgY2FsbGVkIGF0IG1vc3QgNSB0aW1lcyAoZGlyQ1BDL2Rp
cjEvZGlyMiwKKyAgICAgICAgICAgICAgICAjIGRpckNQQy9kaXIxLCBkaXJDUEMsIGRpckNQQy9k
aXIxLCBkaXJDUEMvZGlyMS9kaXIyKS4KKyAgICAgICAgICAgICAgICBpZiBwYXR0ZXJuLnBvcCgp
OgorICAgICAgICAgICAgICAgICAgICBvcy5ta2RpcihwYXRoLCBtb2RlKSAgICAgICMgZnJvbSBh
bm90aGVyIHByb2Nlc3MKKyAgICAgICAgICAgICAgICAgICAgY29uY3VycmVudGx5X2NyZWF0ZWQu
YWRkKHBhdGgpCisgICAgICAgICAgICAgICAgb3MubWtkaXIocGF0aCwgbW9kZSkgICAgICAgICAg
IyBvdXIgcmVhbCBjYWxsCisKKyAgICAgICAgICAgIHBhdHRlcm4gPSBbYm9vbChwYXR0ZXJuX251
bSAmICgxIDw8IG4pKSBmb3IgbiBpbiByYW5nZSg1KV0KKyAgICAgICAgICAgIGNvbmN1cnJlbnRs
eV9jcmVhdGVkID0gc2V0KCkKKyAgICAgICAgICAgIHAxMiA9IHAgLyAnZGlyMScgLyAnZGlyMicK
KworICAgICAgICAgICAgZGVmIF90cnlfZnVuYygpOgorICAgICAgICAgICAgICAgIHdpdGggbW9j
ay5wYXRjaCgicGF0aGxpYjIuX25vcm1hbF9hY2Nlc3Nvci5ta2RpciIsIG15X21rZGlyKToKKyAg
ICAgICAgICAgICAgICAgICAgcDEyLm1rZGlyKHBhcmVudHM9VHJ1ZSwgZXhpc3Rfb2s9RmFsc2Up
CisKKyAgICAgICAgICAgIGRlZiBfZXhjX2Z1bmMoZXhjKToKKyAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEluKHN0cihwMTIpLCBjb25jdXJyZW50bHlfY3JlYXRlZCkKKworICAgICAgICAgICAg
ZGVmIF9lbHNlX2Z1bmMoKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKHN0cihw
MTIpLCBjb25jdXJyZW50bHlfY3JlYXRlZCkKKworICAgICAgICAgICAgcGF0aGxpYi5fdHJ5X2V4
Y2VwdF9maWxlZXhpc3RzZXJyb3IoCisgICAgICAgICAgICAgICAgX3RyeV9mdW5jLCBfZXhjX2Z1
bmMsIF9lbHNlX2Z1bmMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocC5leGlzdHMoKSkK
KworICAgIEBzdXBwb3J0X3NraXBfdW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9zeW1saW5r
X3RvKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMoQkFTRSkKKyAgICAgICAgdGFyZ2V0ID0g
UCAvICdmaWxlQScKKyAgICAgICAgIyBTeW1saW5raW5nIGEgcGF0aCB0YXJnZXQKKyAgICAgICAg
bGluayA9IFAgLyAnZGlyQScgLyAnbGlua0FBJworICAgICAgICBsaW5rLnN5bWxpbmtfdG8odGFy
Z2V0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmsuc3RhdCgpLCB0YXJnZXQuc3RhdCgp
KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGxpbmsubHN0YXQoKSwgdGFyZ2V0LnN0YXQo
KSkKKyAgICAgICAgIyBTeW1saW5raW5nIGEgc3RyIHRhcmdldAorICAgICAgICBsaW5rID0gUCAv
ICdkaXJBJyAvICdsaW5rQUFBJworICAgICAgICBsaW5rLnN5bWxpbmtfdG8oc3RyKHRhcmdldCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluay5zdGF0KCksIHRhcmdldC5zdGF0KCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwobGluay5sc3RhdCgpLCB0YXJnZXQuc3RhdCgpKQor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGxpbmsuaXNfZGlyKCkpCisgICAgICAgICMgU3ltbGlu
a2luZyB0byBhIGRpcmVjdG9yeQorICAgICAgICB0YXJnZXQgPSBQIC8gJ2RpckInCisgICAgICAg
IGxpbmsgPSBQIC8gJ2RpckEnIC8gJ2xpbmtBQUFBJworICAgICAgICBsaW5rLnN5bWxpbmtfdG8o
dGFyZ2V0LCB0YXJnZXRfaXNfZGlyZWN0b3J5PVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGluay5zdGF0KCksIHRhcmdldC5zdGF0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1
YWwobGluay5sc3RhdCgpLCB0YXJnZXQuc3RhdCgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
bGluay5pc19kaXIoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxpc3QobGluay5pdGVyZGly
KCkpKQorCisgICAgZGVmIHRlc3RfaXNfZGlyKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMo
QkFTRSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKChQIC8gJ2RpckEnKS5pc19kaXIoKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoUCAvICdmaWxlQScpLmlzX2RpcigpKQorICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKChQIC8gJ25vbi1leGlzdGluZycpLmlzX2RpcigpKQorICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKChQIC8gJ2ZpbGVBJyAvICdiYWgnKS5pc19kaXIoKSkKKyAgICAgICAg
aWYgc3VwcG9ydF9jYW5fc3ltbGluaygpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgo
UCAvICdsaW5rQScpLmlzX2RpcigpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKChQIC8g
J2xpbmtCJykuaXNfZGlyKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKChQIC8gJ2Jy
b2tlbkxpbmsnKS5pc19kaXIoKSkKKworICAgIGRlZiB0ZXN0X2lzX2ZpbGUoc2VsZik6CisgICAg
ICAgIFAgPSBzZWxmLmNscyhCQVNFKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoKFAgLyAnZmls
ZUEnKS5pc19maWxlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnZGlyQScpLmlz
X2ZpbGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoUCAvICdub24tZXhpc3RpbmcnKS5p
c19maWxlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnZmlsZUEnIC8gJ2JhaCcp
LmlzX2ZpbGUoKSkKKyAgICAgICAgaWYgc3VwcG9ydF9jYW5fc3ltbGluaygpOgorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKChQIC8gJ2xpbmtBJykuaXNfZmlsZSgpKQorICAgICAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZSgoUCAvICdsaW5rQicpLmlzX2ZpbGUoKSkKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoKFAgLyAnYnJva2VuTGluaycpLmlzX2ZpbGUoKSkKKworICAgIGRlZiB0
ZXN0X2lzX3N5bWxpbmsoc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscyhCQVNFKQorICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKChQIC8gJ2ZpbGVBJykuaXNfc3ltbGluaygpKQorICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKChQIC8gJ2RpckEnKS5pc19zeW1saW5rKCkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoKFAgLyAnbm9uLWV4aXN0aW5nJykuaXNfc3ltbGluaygpKQorICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKChQIC8gJ2ZpbGVBJyAvICdiYWgnKS5pc19zeW1saW5rKCkpCisgICAg
ICAgIGlmIHN1cHBvcnRfY2FuX3N5bWxpbmsoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZSgoUCAvICdsaW5rQScpLmlzX3N5bWxpbmsoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZSgoUCAvICdsaW5rQicpLmlzX3N5bWxpbmsoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZSgoUCAvICdicm9rZW5MaW5rJykuaXNfc3ltbGluaygpKQorCisgICAgZGVmIHRlc3RfaXNfZmlm
b19mYWxzZShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0UpCisgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoKFAgLyAnZmlsZUEnKS5pc19maWZvKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoKFAgLyAnZGlyQScpLmlzX2ZpZm8oKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgo
UCAvICdub24tZXhpc3RpbmcnKS5pc19maWZvKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
KFAgLyAnZmlsZUEnIC8gJ2JhaCcpLmlzX2ZpZm8oKSkKKworICAgIEB1bml0dGVzdC5za2lwVW5s
ZXNzKGhhc2F0dHIob3MsICJta2ZpZm8iKSwgIm9zLm1rZmlmbygpIHJlcXVpcmVkIikKKyAgICBA
dW5pdHRlc3Quc2tpcElmKGFuZHJvaWRfbm90X3Jvb3QsICJta2ZpZm8gbm90IGFsbG93ZWQsIG5v
biByb290IHVzZXIiKQorICAgIGRlZiB0ZXN0X2lzX2ZpZm9fdHJ1ZShzZWxmKToKKyAgICAgICAg
UCA9IHNlbGYuY2xzKEJBU0UsICdteWZpZm8nKQorICAgICAgICBvcy5ta2ZpZm8oc3RyKFApKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUoUC5pc19maWZvKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoUC5pc19zb2NrZXQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQLmlzX2ZpbGUo
KSkKKworICAgIGRlZiB0ZXN0X2lzX3NvY2tldF9mYWxzZShzZWxmKToKKyAgICAgICAgUCA9IHNl
bGYuY2xzKEJBU0UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnZmlsZUEnKS5pc19z
b2NrZXQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoUCAvICdkaXJBJykuaXNfc29ja2V0
KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnbm9uLWV4aXN0aW5nJykuaXNfc29j
a2V0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnZmlsZUEnIC8gJ2JhaCcpLmlz
X3NvY2tldCgpKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzb2NrZXQsICJB
Rl9VTklYIiksICJVbml4IHNvY2tldHMgcmVxdWlyZWQiKQorICAgIGRlZiB0ZXN0X2lzX3NvY2tl
dF90cnVlKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMoQkFTRSwgJ215c29jaycpCisgICAg
ICAgIHNvY2sgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9VTklYLCBzb2NrZXQuU09DS19TVFJF
QU0pCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzb2NrLmNsb3NlKQorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBzb2NrLmJpbmQoc3RyKFApKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBl
OgorICAgICAgICAgICAgaWYgIkFGX1VOSVggcGF0aCB0b28gbG9uZyIgaW4gc3RyKGUpOgorICAg
ICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoImNhbm5vdCBiaW5kIFVuaXggc29ja2V0OiAiICsg
c3RyKGUpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoUC5pc19zb2NrZXQoKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShQLmlzX2ZpZm8oKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQ
LmlzX2ZpbGUoKSkKKworICAgIGRlZiB0ZXN0X2lzX2Jsb2NrX2RldmljZV9mYWxzZShzZWxmKToK
KyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAg
LyAnZmlsZUEnKS5pc19ibG9ja19kZXZpY2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgo
UCAvICdkaXJBJykuaXNfYmxvY2tfZGV2aWNlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
KFAgLyAnbm9uLWV4aXN0aW5nJykuaXNfYmxvY2tfZGV2aWNlKCkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoKFAgLyAnZmlsZUEnIC8gJ2JhaCcpLmlzX2Jsb2NrX2RldmljZSgpKQorCisgICAg
ZGVmIHRlc3RfaXNfY2hhcl9kZXZpY2VfZmFsc2Uoc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNs
cyhCQVNFKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKChQIC8gJ2ZpbGVBJykuaXNfY2hhcl9k
ZXZpY2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoUCAvICdkaXJBJykuaXNfY2hhcl9k
ZXZpY2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoUCAvICdub24tZXhpc3RpbmcnKS5p
c19jaGFyX2RldmljZSgpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKChQIC8gJ2ZpbGVBJyAv
ICdiYWgnKS5pc19jaGFyX2RldmljZSgpKQorCisgICAgQG9ubHlfcG9zaXgKKyAgICBkZWYgdGVz
dF9pc19jaGFyX2RldmljZV90cnVlKHNlbGYpOgorICAgICAgICAjIFVuZGVyIFVuaXgsIC9kZXYv
bnVsbCBzaG91bGQgZ2VuZXJhbGx5IGJlIGEgY2hhciBkZXZpY2UKKyAgICAgICAgUCA9IHNlbGYu
Y2xzKCcvZGV2L251bGwnKQorICAgICAgICBpZiBub3QgUC5leGlzdHMoKToKKyAgICAgICAgICAg
IHNlbGYuc2tpcFRlc3QoIi9kZXYvbnVsbCByZXF1aXJlZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShQLmlzX2NoYXJfZGV2aWNlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUC5pc19i
bG9ja19kZXZpY2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQLmlzX2ZpbGUoKSkKKwor
ICAgIGRlZiB0ZXN0X3BpY2tsaW5nX2NvbW1vbihzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xz
KEJBU0UsICdmaWxlQScpCisgICAgICAgIGZvciBwcm90byBpbiByYW5nZSgwLCBwaWNrbGUuSElH
SEVTVF9QUk9UT0NPTCArIDEpOgorICAgICAgICAgICAgZHVtcGVkID0gcGlja2xlLmR1bXBzKHAs
IHByb3RvKQorICAgICAgICAgICAgcHAgPSBwaWNrbGUubG9hZHMoZHVtcGVkKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwcC5zdGF0KCksIHAuc3RhdCgpKQorCisgICAgZGVmIHRlc3Rf
cGFydHNfaW50ZXJuaW5nKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9
IFAoJy91c3IvYmluL2ZvbycpCisgICAgICAgIHEgPSBQKCcvdXNyL2xvY2FsL2JpbicpCisgICAg
ICAgICMgJ3VzcicKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhwLnBhcnRzWzFdLCBxLnBhcnRzWzFd
KQorICAgICAgICAjICdiaW4nCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocC5wYXJ0c1syXSwgcS5w
YXJ0c1szXSkKKworICAgIGRlZiBfY2hlY2tfY29tcGxleF9zeW1saW5rcyhzZWxmLCBsaW5rMF90
YXJnZXQpOgorICAgICAgICAjIFRlc3Qgc29sdmluZyBhIG5vbi1sb29waW5nIGNoYWluIG9mIHN5
bWxpbmtzIChpc3N1ZSAjMTk4ODcpCisgICAgICAgIFAgPSBzZWxmLmNscyhCQVNFKQorICAgICAg
ICBzZWxmLmRpcmxpbmsob3MucGF0aC5qb2luKCdsaW5rMCcsICdsaW5rMCcpLCBqb2luKCdsaW5r
MScpKQorICAgICAgICBzZWxmLmRpcmxpbmsob3MucGF0aC5qb2luKCdsaW5rMScsICdsaW5rMScp
LCBqb2luKCdsaW5rMicpKQorICAgICAgICBzZWxmLmRpcmxpbmsob3MucGF0aC5qb2luKCdsaW5r
MicsICdsaW5rMicpLCBqb2luKCdsaW5rMycpKQorICAgICAgICBzZWxmLmRpcmxpbmsobGluazBf
dGFyZ2V0LCBqb2luKCdsaW5rMCcpKQorCisgICAgICAgICMgUmVzb2x2ZSBhYnNvbHV0ZSBwYXRo
cworICAgICAgICBwID0gKFAgLyAnbGluazAnKS5yZXNvbHZlKCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwLCBQKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgQkFTRSkKKyAg
ICAgICAgcCA9IChQIC8gJ2xpbmsxJykucmVzb2x2ZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocCwgUCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIocCksIEJBU0UpCisgICAgICAg
IHAgPSAoUCAvICdsaW5rMicpLnJlc29sdmUoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAs
IFApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHApLCBCQVNFKQorICAgICAgICBwID0g
KFAgLyAnbGluazMnKS5yZXNvbHZlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLCBQKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgQkFTRSkKKworICAgICAgICAjIFJlc29s
dmUgcmVsYXRpdmUgcGF0aHMKKyAgICAgICAgb2xkX3BhdGggPSBvcy5nZXRjd2QoKQorICAgICAg
ICBvcy5jaGRpcihCQVNFKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwID0gc2VsZi5jbHMo
J2xpbmswJykucmVzb2x2ZSgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIFApCisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgQkFTRSkKKyAgICAgICAgICAgIHAg
PSBzZWxmLmNscygnbGluazEnKS5yZXNvbHZlKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocCwgUCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHApLCBCQVNFKQorICAg
ICAgICAgICAgcCA9IHNlbGYuY2xzKCdsaW5rMicpLnJlc29sdmUoKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwLCBQKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIocCks
IEJBU0UpCisgICAgICAgICAgICBwID0gc2VsZi5jbHMoJ2xpbmszJykucmVzb2x2ZSgpCisgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIFApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHN0cihwKSwgQkFTRSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG9zLmNoZGly
KG9sZF9wYXRoKQorCisgICAgQHN1cHBvcnRfc2tpcF91bmxlc3Nfc3ltbGluaworICAgIGRlZiB0
ZXN0X2NvbXBsZXhfc3ltbGlua3NfYWJzb2x1dGUoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNr
X2NvbXBsZXhfc3ltbGlua3MoQkFTRSkKKworICAgIEBzdXBwb3J0X3NraXBfdW5sZXNzX3N5bWxp
bmsKKyAgICBkZWYgdGVzdF9jb21wbGV4X3N5bWxpbmtzX3JlbGF0aXZlKHNlbGYpOgorICAgICAg
ICBzZWxmLl9jaGVja19jb21wbGV4X3N5bWxpbmtzKCcuJykKKworICAgIEBzdXBwb3J0X3NraXBf
dW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9jb21wbGV4X3N5bWxpbmtzX3JlbGF0aXZlX2Rv
dF9kb3Qoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX2NvbXBsZXhfc3ltbGlua3Mob3MucGF0
aC5qb2luKCdkaXJBJywgJy4uJykpCisKKworY2xhc3MgUGF0aFRlc3QoX0Jhc2VQYXRoVGVzdCwg
dW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGNscyA9IHBhdGhsaWIuUGF0aAorCisgICAgZGVmIHRl
c3RfY29uY3JldGVfY2xhc3Moc2VsZik6CisgICAgICAgIHAgPSBzZWxmLmNscygnYScpCisgICAg
ICAgIHNlbGYuYXNzZXJ0SXMoCisgICAgICAgICAgICB0eXBlKHApLAorICAgICAgICAgICAgcGF0
aGxpYi5XaW5kb3dzUGF0aCBpZiBvcy5uYW1lID09ICdudCcgZWxzZSBwYXRobGliLlBvc2l4UGF0
aCkKKworICAgIGRlZiB0ZXN0X3Vuc3VwcG9ydGVkX2ZsYXZvdXIoc2VsZik6CisgICAgICAgIGlm
IG9zLm5hbWUgPT0gJ250JzoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxl
bWVudGVkRXJyb3IsIHBhdGhsaWIuUG9zaXhQYXRoKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwgcGF0aGxpYi5XaW5kb3dz
UGF0aCkKKworICAgIGRlZiB0ZXN0X2dsb2JfZW1wdHlfcGF0dGVybihzZWxmKToKKyAgICAgICAg
cCA9IHNlbGYuY2xzKCkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVl
RXJyb3IsICdVbmFjY2VwdGFibGUgcGF0dGVybicpOgorICAgICAgICAgICAgbGlzdChwLmdsb2Io
JycpKQorCisKK0Bvbmx5X3Bvc2l4CitjbGFzcyBQb3NpeFBhdGhUZXN0KF9CYXNlUGF0aFRlc3Qs
IHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBjbHMgPSBwYXRobGliLlBvc2l4UGF0aAorCisgICAg
ZGVmIF9jaGVja19zeW1saW5rX2xvb3Aoc2VsZiwgKmFyZ3MpOgorICAgICAgICBwYXRoID0gc2Vs
Zi5jbHMoKmFyZ3MpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9y
KToKKyAgICAgICAgICAgIHByaW50KHBhdGgucmVzb2x2ZShzdHJpY3Q9VHJ1ZSkpCisKKyAgICBk
ZWYgX2NoZWNrX3N5bWxpbmtfbG9vcF9ub25zdHJpY3Qoc2VsZiwgKmFyZ3MpOgorICAgICAgICBw
YXRoID0gc2VsZi5jbHMoKmFyZ3MpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUnVu
dGltZUVycm9yKToKKyAgICAgICAgICAgIHByaW50KHBhdGgucmVzb2x2ZShzdHJpY3Q9RmFsc2Up
KQorCisgICAgZGVmIHRlc3Rfb3Blbl9tb2RlKHNlbGYpOgorICAgICAgICBvbGRfbWFzayA9IG9z
LnVtYXNrKDApCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChvcy51bWFzaywgb2xkX21hc2spCisg
ICAgICAgIHAgPSBzZWxmLmNscyhCQVNFKQorICAgICAgICB3aXRoIChwIC8gJ25ld19maWxlJyku
b3Blbignd2InKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc3QgPSBvcy5zdGF0KGpvaW4o
J25ld19maWxlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RhdC5TX0lNT0RFKHN0LnN0
X21vZGUpLCAwbzY2NikKKyAgICAgICAgb3MudW1hc2soMG8wMjIpCisgICAgICAgIHdpdGggKHAg
LyAnb3RoZXJfbmV3X2ZpbGUnKS5vcGVuKCd3YicpOgorICAgICAgICAgICAgcGFzcworICAgICAg
ICBzdCA9IG9zLnN0YXQoam9pbignb3RoZXJfbmV3X2ZpbGUnKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzdGF0LlNfSU1PREUoc3Quc3RfbW9kZSksIDBvNjQ0KQorCisgICAgZGVmIHRlc3Rf
dG91Y2hfbW9kZShzZWxmKToKKyAgICAgICAgb2xkX21hc2sgPSBvcy51bWFzaygwKQorICAgICAg
ICBzZWxmLmFkZENsZWFudXAob3MudW1hc2ssIG9sZF9tYXNrKQorICAgICAgICBwID0gc2VsZi5j
bHMoQkFTRSkKKyAgICAgICAgKHAgLyAnbmV3X2ZpbGUnKS50b3VjaCgpCisgICAgICAgIHN0ID0g
b3Muc3RhdChqb2luKCduZXdfZmlsZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXQu
U19JTU9ERShzdC5zdF9tb2RlKSwgMG82NjYpCisgICAgICAgIG9zLnVtYXNrKDBvMDIyKQorICAg
ICAgICAocCAvICdvdGhlcl9uZXdfZmlsZScpLnRvdWNoKCkKKyAgICAgICAgc3QgPSBvcy5zdGF0
KGpvaW4oJ290aGVyX25ld19maWxlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RhdC5T
X0lNT0RFKHN0LnN0X21vZGUpLCAwbzY0NCkKKyAgICAgICAgKHAgLyAnbWFza2VkX25ld19maWxl
JykudG91Y2gobW9kZT0wbzc1MCkKKyAgICAgICAgc3QgPSBvcy5zdGF0KGpvaW4oJ21hc2tlZF9u
ZXdfZmlsZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXQuU19JTU9ERShzdC5zdF9t
b2RlKSwgMG83NTApCisKKyAgICBAc3VwcG9ydF9za2lwX3VubGVzc19zeW1saW5rCisgICAgZGVm
IHRlc3RfcmVzb2x2ZV9sb29wKHNlbGYpOgorICAgICAgICAjIExvb3BzIHdpdGggcmVsYXRpdmUg
c3ltbGlua3MKKyAgICAgICAgb3Muc3ltbGluaygnbGlua1gvaW5zaWRlJywgam9pbignbGlua1gn
KSkKKyAgICAgICAgc2VsZi5fY2hlY2tfc3ltbGlua19sb29wKEJBU0UsICdsaW5rWCcpCisgICAg
ICAgIG9zLnN5bWxpbmsoJ2xpbmtZJywgam9pbignbGlua1knKSkKKyAgICAgICAgc2VsZi5fY2hl
Y2tfc3ltbGlua19sb29wKEJBU0UsICdsaW5rWScpCisgICAgICAgIG9zLnN5bWxpbmsoJ2xpbmta
Ly4uL2xpbmtaJywgam9pbignbGlua1onKSkKKyAgICAgICAgc2VsZi5fY2hlY2tfc3ltbGlua19s
b29wKEJBU0UsICdsaW5rWicpCisgICAgICAgICMgTm9uLXN0cmljdAorICAgICAgICBzZWxmLl9j
aGVja19zeW1saW5rX2xvb3Bfbm9uc3RyaWN0KEJBU0UsICdsaW5rWicsICdmb28nKQorICAgICAg
ICAjIExvb3BzIHdpdGggYWJzb2x1dGUgc3ltbGlua3MKKyAgICAgICAgb3Muc3ltbGluayhqb2lu
KCdsaW5rVS9pbnNpZGUnKSwgam9pbignbGlua1UnKSkKKyAgICAgICAgc2VsZi5fY2hlY2tfc3lt
bGlua19sb29wKEJBU0UsICdsaW5rVScpCisgICAgICAgIG9zLnN5bWxpbmsoam9pbignbGlua1Yn
KSwgam9pbignbGlua1YnKSkKKyAgICAgICAgc2VsZi5fY2hlY2tfc3ltbGlua19sb29wKEJBU0Us
ICdsaW5rVicpCisgICAgICAgIG9zLnN5bWxpbmsoam9pbignbGlua1cvLi4vbGlua1cnKSwgam9p
bignbGlua1cnKSkKKyAgICAgICAgc2VsZi5fY2hlY2tfc3ltbGlua19sb29wKEJBU0UsICdsaW5r
VycpCisgICAgICAgICMgTm9uLXN0cmljdAorICAgICAgICBzZWxmLl9jaGVja19zeW1saW5rX2xv
b3Bfbm9uc3RyaWN0KEJBU0UsICdsaW5rVycsICdmb28nKQorCisgICAgZGVmIHRlc3RfZ2xvYihz
ZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKEJBU0UpCisgICAgICAg
IGdpdmVuID0gc2V0KHAuZ2xvYigiRklMRWEiKSkKKyAgICAgICAgZXhwZWN0ID0gc2V0KCkgaWYg
bm90IHN1cHBvcnQuZnNfaXNfY2FzZV9pbnNlbnNpdGl2ZShCQVNFKSBlbHNlIGdpdmVuCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2l2ZW4sIGV4cGVjdCkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZXQocC5nbG9iKCJGSUxFYSoiKSksIHNldCgpKQorCisgICAgZGVmIHRlc3Rfcmdsb2Io
c2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUChCQVNFLCAiZGlyQyIp
CisgICAgICAgIGdpdmVuID0gc2V0KHAucmdsb2IoIkZJTEVkIikpCisgICAgICAgIGV4cGVjdCA9
IHNldCgpIGlmIG5vdCBzdXBwb3J0LmZzX2lzX2Nhc2VfaW5zZW5zaXRpdmUoQkFTRSkgZWxzZSBn
aXZlbgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdpdmVuLCBleHBlY3QpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2V0KHAucmdsb2IoIkZJTEVkKiIpKSwgc2V0KCkpCisKKyAgICBAdW5p
dHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHB3ZCwgJ2dldHB3YWxsJyksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3B3ZCBtb2R1bGUgZG9lcyBub3QgZXhwb3NlIGdldHB3YWxsKCknKQorICAg
IGRlZiB0ZXN0X2V4cGFuZHVzZXIoc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAg
ICBzdXBwb3J0LmltcG9ydF9tb2R1bGUoJ3B3ZCcpCisgICAgICAgIGltcG9ydCBwd2QKKyAgICAg
ICAgcHdkZW50ID0gcHdkLmdldHB3dWlkKG9zLmdldHVpZCgpKQorICAgICAgICB1c2VybmFtZSA9
IHB3ZGVudC5wd19uYW1lCisgICAgICAgIHVzZXJob21lID0gcHdkZW50LnB3X2Rpci5yc3RyaXAo
Jy8nKSBvciAnLycKKyAgICAgICAgIyBmaW5kIGFyYml0cmFyeSBkaWZmZXJlbnQgdXNlciAoaWYg
ZXhpc3RzKQorICAgICAgICBmb3IgcHdkZW50IGluIHB3ZC5nZXRwd2FsbCgpOgorICAgICAgICAg
ICAgb3RoZXJuYW1lID0gcHdkZW50LnB3X25hbWUKKyAgICAgICAgICAgIG90aGVyaG9tZSA9IHB3
ZGVudC5wd19kaXIucnN0cmlwKCcvJykKKyAgICAgICAgICAgIGlmIG90aGVybmFtZSAhPSB1c2Vy
bmFtZSBhbmQgb3RoZXJob21lOgorICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgcDEg
PSBQKCd+L0RvY3VtZW50cycpCisgICAgICAgIHAyID0gUCgnficgKyB1c2VybmFtZSArICcvRG9j
dW1lbnRzJykKKyAgICAgICAgcDMgPSBQKCd+JyArIG90aGVybmFtZSArICcvRG9jdW1lbnRzJykK
KyAgICAgICAgcDQgPSBQKCcuLi9+JyArIHVzZXJuYW1lICsgJy9Eb2N1bWVudHMnKQorICAgICAg
ICBwNSA9IFAoJy9+JyArIHVzZXJuYW1lICsgJy9Eb2N1bWVudHMnKQorICAgICAgICBwNiA9IFAo
JycpCisgICAgICAgIHA3ID0gUCgnfmZha2V1c2VyL0RvY3VtZW50cycpCisKKyAgICAgICAgd2l0
aCBzdXBwb3J0LkVudmlyb25tZW50VmFyR3VhcmQoKSBhcyBlbnY6CisgICAgICAgICAgICBlbnYu
dW5zZXQoJ0hPTUUnKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAxLmV4cGFuZHVz
ZXIoKSwgUCh1c2VyaG9tZSkgLyAnRG9jdW1lbnRzJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocDIuZXhwYW5kdXNlcigpLCBQKHVzZXJob21lKSAvICdEb2N1bWVudHMnKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwMy5leHBhbmR1c2VyKCksIFAob3RoZXJob21lKSAvICdE
b2N1bWVudHMnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwNC5leHBhbmR1c2VyKCks
IHA0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwNS5leHBhbmR1c2VyKCksIHA1KQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwNi5leHBhbmR1c2VyKCksIHA2KQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBwNy5leHBhbmR1c2VyKQorCisg
ICAgICAgICAgICBlbnYuc2V0KCdIT01FJywgJy90bXAnKQorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwMS5leHBhbmR1c2VyKCksIFAoJy90bXAvRG9jdW1lbnRzJykpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHAyLmV4cGFuZHVzZXIoKSwgUCh1c2VyaG9tZSkgLyAnRG9jdW1l
bnRzJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDMuZXhwYW5kdXNlcigpLCBQKG90
aGVyaG9tZSkgLyAnRG9jdW1lbnRzJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDQu
ZXhwYW5kdXNlcigpLCBwNCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDUuZXhwYW5k
dXNlcigpLCBwNSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDYuZXhwYW5kdXNlcigp
LCBwNikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgcDcuZXhw
YW5kdXNlcikKKworCitAb25seV9udAorY2xhc3MgV2luZG93c1BhdGhUZXN0KF9CYXNlUGF0aFRl
c3QsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBjbHMgPSBwYXRobGliLldpbmRvd3NQYXRoCisK
KyAgICBkZWYgdGVzdF9nbG9iKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAg
cCA9IFAoQkFTRSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQocC5nbG9iKCJGSUxFYSIp
KSwgc2V0KFtQKEJBU0UsICJmaWxlQSIpXSkpCisKKyAgICBkZWYgdGVzdF9yZ2xvYihzZWxmKToK
KyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKEJBU0UsICJkaXJDIikKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzZXQocC5yZ2xvYigiRklMRWQiKSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0KFtQKEJBU0UsICJkaXJDL2RpckQvZmlsZUQiKV0pKQorCisgICAgZGVm
IHRlc3RfZXhwYW5kdXNlcihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHdp
dGggc3VwcG9ydC5FbnZpcm9ubWVudFZhckd1YXJkKCkgYXMgZW52OgorICAgICAgICAgICAgZW52
LnVuc2V0KCdIT01FJykKKyAgICAgICAgICAgIGVudi51bnNldCgnVVNFUlBST0ZJTEUnKQorICAg
ICAgICAgICAgZW52LnVuc2V0KCdIT01FUEFUSCcpCisgICAgICAgICAgICBlbnYudW5zZXQoJ0hP
TUVEUklWRScpCisgICAgICAgICAgICBlbnYuc2V0KCdVU0VSTkFNRScsICdhbGljZScpCisKKyAg
ICAgICAgICAgICMgdGVzdCB0aGF0IHRoZSBwYXRoIHJldHVybnMgdW5jaGFuZ2VkCisgICAgICAg
ICAgICBwMSA9IFAoJ34vTXkgRG9jdW1lbnRzJykKKyAgICAgICAgICAgIHAyID0gUCgnfmFsaWNl
L015IERvY3VtZW50cycpCisgICAgICAgICAgICBwMyA9IFAoJ35ib2IvTXkgRG9jdW1lbnRzJykK
KyAgICAgICAgICAgIHA0ID0gUCgnL34vTXkgRG9jdW1lbnRzJykKKyAgICAgICAgICAgIHA1ID0g
UCgnZDp+L015IERvY3VtZW50cycpCisgICAgICAgICAgICBwNiA9IFAoJycpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHAxLmV4cGFuZHVzZXIpCisgICAgICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHAyLmV4cGFuZHVzZXIpCisgICAg
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHAzLmV4cGFuZHVzZXIpCisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHA0LmV4cGFuZHVzZXIoKSwgcDQpCisgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHA1LmV4cGFuZHVzZXIoKSwgcDUpCisgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHA2LmV4cGFuZHVzZXIoKSwgcDYpCisKKyAgICAgICAgICAgIGRlZiBj
aGVjaygpOgorICAgICAgICAgICAgICAgIGVudi51bnNldCgnVVNFUk5BTUUnKQorICAgICAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDEuZXhwYW5kdXNlcigpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUCgnQzovVXNlcnMvYWxpY2UvTXkgRG9jdW1lbnRzJykpCisgICAg
ICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHAyLmV4cGFuZHVzZXIpCisg
ICAgICAgICAgICAgICAgZW52LnNldCgnVVNFUk5BTUUnLCAnYWxpY2UnKQorICAgICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocDIuZXhwYW5kdXNlcigpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUCgnQzovVXNlcnMvYWxpY2UvTXkgRG9jdW1lbnRzJykpCisgICAgICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwMy5leHBhbmR1c2VyKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQKCdDOi9Vc2Vycy9ib2IvTXkgRG9jdW1lbnRzJykpCisgICAg
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwNC5leHBhbmR1c2VyKCksIHA0KQorICAgICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDUuZXhwYW5kdXNlcigpLCBwNSkKKyAgICAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHA2LmV4cGFuZHVzZXIoKSwgcDYpCisKKyAgICAgICAg
ICAgICMgdGVzdCB0aGUgZmlyc3QgbG9va3VwIGtleSBpbiB0aGUgZW52IHZhcnMKKyAgICAgICAg
ICAgIGVudi5zZXQoJ0hPTUUnLCAnQzpcXFVzZXJzXFxhbGljZScpCisgICAgICAgICAgICBjaGVj
aygpCisKKyAgICAgICAgICAgICMgdGVzdCB0aGF0IEhPTUVQQVRIIGlzIGF2YWlsYWJsZSBpbnN0
ZWFkCisgICAgICAgICAgICBlbnYudW5zZXQoJ0hPTUUnKQorICAgICAgICAgICAgZW52LnNldCgn
SE9NRVBBVEgnLCAnQzpcXFVzZXJzXFxhbGljZScpCisgICAgICAgICAgICBjaGVjaygpCisKKyAg
ICAgICAgICAgIGVudi5zZXQoJ0hPTUVEUklWRScsICdDOlxcJykKKyAgICAgICAgICAgIGVudi5z
ZXQoJ0hPTUVQQVRIJywgJ1VzZXJzXFxhbGljZScpCisgICAgICAgICAgICBjaGVjaygpCisKKyAg
ICAgICAgICAgIGVudi51bnNldCgnSE9NRURSSVZFJykKKyAgICAgICAgICAgIGVudi51bnNldCgn
SE9NRVBBVEgnKQorICAgICAgICAgICAgZW52LnNldCgnVVNFUlBST0ZJTEUnLCAnQzpcXFVzZXJz
XFxhbGljZScpCisgICAgICAgICAgICBjaGVjaygpCisKKworIyBleHRyYSB0ZXN0IHRvIGVuc3Vy
ZSBjb3ZlcmFnZSBvZiBpc3N1ZSAjNTQKK2RlZiB0ZXN0X3Jlc29sdmVfZXh0cmEoKToKKyAgICBw
YXRobGliLlBhdGgoIn4vZG9lc19ub3RfZXhpc3QiKS5yZXNvbHZlKCkKKworCitkZWYgbWFpbigp
OgorICAgIHVuaXR0ZXN0Lm1haW4oX19uYW1lX18pCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFp
bl9fIjoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvdGVz
dHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3Rlc3RzL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjgwZTAyY2IwYzljNWQ0ODk0NWZiM2YyYzJiOWZkNzQ5NzNmNGFiZDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3Rlc3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAg
KzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvdGVzdHMvdGVzdF9wYXRobGliMi5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ5ZTYyZjBiNmIyNDFjYTI3YTBlZTBiOThmNDY0
Njg0ZGU1ZjQ4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwyNiBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9DSEFOR0VMT0cucnN0
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYXRobGliMi9MSUNFTlNFLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvTUFOSUZFU1QuaW4K
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhdGhsaWIyL1JFQURNRS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL1ZFUlNJT04KKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhdGhsaWIyL2FwcHZleW9yLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvY29kZWNvdi55bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhdGhsaWIyL3JlcXVpcmVtZW50cy50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3NldHVwLmNmZworL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGF0aGxpYjIvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L0NIQU5HRUxPRy5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BsdWdneS9DSEFOR0VMT0cucnN0CmluZGV4IDkxYmY1M2ZkY2NiNTMyZTBhNTA0
ZjU4NTFhODgzNTlkZjNiY2QzODQuLjA1MzZkZGEwM2E4NjdhNWJlMzZkNTg2Y2FhMjJlZmFmYWIw
YzlmMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L0NIQU5HRUxPRy5yc3QKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvQ0hBTkdFTE9HLnJzdApAQCAtMSw1ICsxLDE4MCBAQAotMC42LjAKLS0tLS0tCis9PT09
PT09PT0KK0NoYW5nZWxvZworPT09PT09PT09CisKKy4uIHRvd25jcmllciByZWxlYXNlIG5vdGVz
IHN0YXJ0CisKK3BsdWdneSAwLjEzLjEgKDIwMTktMTEtMjEpCis9PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCistIGAjMjM2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvcHVs
bC8yMzY+YF86IEltcHJvdmVkIGRvY3VtZW50YXRpb24sIGVzcGVjaWFsbHkgd2l0aCByZWdhcmQg
dG8gcmVmZXJlbmNlcy4KKworCitwbHVnZ3kgMC4xMy4wICgyMDE5LTA5LTEwKQorPT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworLSBgIzIyMiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cGx1Z2d5L2lzc3Vlcy8yMjI+YF86IFJlcGxhY2UgYGBpbXBvcnRsaWJfbWV0YWRhdGFgYCBiYWNr
cG9ydCB3aXRoIGBgaW1wb3J0bGliLm1ldGFkYXRhYGAgZnJvbSB0aGUKKyAgc3RhbmRhcmQgbGli
cmFyeSBvbiBQeXRob24gMy44Ky4KKworCitwbHVnZ3kgMC4xMi4wICgyMDE5LTA1LTI3KQorPT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworRmVhdHVyZXMKKy0tLS0tLS0tCisKKy0gYCMyMTUg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMvMjE1PmBfOiBTd2l0
Y2ggZnJvbSBgYHBrZ19yZXNvdXJjZXNgYCB0byBgYGltcG9ydGxpYi1tZXRhZGF0YWBgIGZvciBl
bnRyeXBvaW50IGRldGVjdGlvbiBmb3IgaW1wcm92ZWQgcGVyZm9ybWFuY2UgYW5kIGltcG9ydCB0
aW1lLiAgVGhpcyB0aW1lIHdpdGggYGAuZWdnYGAgc3VwcG9ydC4KKworCitwbHVnZ3kgMC4xMS4w
ICgyMDE5LTA1LTA3KQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVnIEZpeGVzCist
LS0tLS0tLS0KKworLSBgIzIwNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5
L2lzc3Vlcy8yMDU+YF86IFJldmVydCBjaGFuZ2VzIG1hZGUgaW4gMC4xMC4wIHJlbGVhc2UgYnJl
YWtpbmcgYGAuZWdnYGAgaW5zdGFsbHMuCisKKworcGx1Z2d5IDAuMTAuMCAoMjAxOS0wNS0wNykK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0ZlYXR1cmVzCistLS0tLS0tLQorCistIGAj
MTk5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE5OT5gXzog
U3dpdGNoIGZyb20gYGBwa2dfcmVzb3VyY2VzYGAgdG8gYGBpbXBvcnRsaWItbWV0YWRhdGFgYCBm
b3IgZW50cnlwb2ludCBkZXRlY3Rpb24gZm9yIGltcHJvdmVkIHBlcmZvcm1hbmNlIGFuZCBpbXBv
cnQgdGltZS4KKworCitwbHVnZ3kgMC45LjAgKDIwMTktMDItMjEpCis9PT09PT09PT09PT09PT09
PT09PT09PT09CisKK0ZlYXR1cmVzCistLS0tLS0tLQorCistIGAjMTg5IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE4OT5gXzogYGBQbHVnaW5NYW5hZ2VyLmxv
YWRfc2V0dXB0b29sc19lbnRyeXBvaW50c2BgIG5vdyBhY2NlcHRzIGEgYGBuYW1lYGAgcGFyYW1l
dGVyIHRoYXQgd2hlbiBnaXZlbiB3aWxsCisgIGxvYWQgb25seSBlbnRyeSBwb2ludHMgd2l0aCB0
aGF0IG5hbWUuCisKKyAgYGBQbHVnaW5NYW5hZ2VyLmxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50
c2BgIGFsc28gbm93IHJldHVybnMgdGhlIG51bWJlciBvZiBwbHVnaW5zIGxvYWRlZCBieSB0aGUK
KyAgY2FsbCwgYXMgb3Bwb3NlZCB0byB0aGUgbnVtYmVyIG9mIGFsbCBwbHVnaW5zIGxvYWRlZCBi
eSBhbGwgY2FsbHMgdG8gdGhpcyBtZXRob2QuCisKKworCitCdWcgRml4ZXMKKy0tLS0tLS0tLQor
CistIGAjMTg3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE4
Nz5gXzogRml4IGludGVybmFsIGBgdmFybmFtZXNgYCBmdW5jdGlvbiBmb3IgUHlQeTMuCisKKwor
cGx1Z2d5IDAuOC4xICgyMDE4LTExLTA5KQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitU
cml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAj
MTY2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE2Nj5gXzog
QWRkIGBgc3RhY2tsZXZlbD0yYGAgdG8gaW1wbHByZWZpeCB3YXJuaW5nIHNvIHRoYXQgdGhlIHJl
cG9ydGVkIGxvY2F0aW9uIG9mIHdhcm5pbmcgaXMgdGhlIGNhbGxlciBvZiBQbHVnaW5NYW5hZ2Vy
LgorCisKK3BsdWdneSAwLjguMCAoMjAxOC0xMC0xNSkKKz09PT09PT09PT09PT09PT09PT09PT09
PT0KKworRmVhdHVyZXMKKy0tLS0tLS0tCisKKy0gYCMxNzcgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMvMTc3PmBfOiBBZGQgYGBnZXRfaG9va2ltcGxzKClgYCBt
ZXRob2QgdG8gaG9vayBjYWxsZXJzLgorCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzE2NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcGx1Z2d5L2lzc3Vlcy8xNjU+YF86IEFkZCBjaGFuZ2Vsb2cgaW4gbG9uZyBwYWNr
YWdlIGRlc2NyaXB0aW9uIGFuZCBkb2N1bWVudGF0aW9uLgorCisKKy0gYCMxNzIgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMvMTcyPmBfOiBBZGQgYSB0ZXN0IGV4
ZW1wbGlmeWluZyB0aGUgb3B0LWluIG5hdHVyZSBvZiBzcGVjIGRlZmluZWQgYXJncy4KKworCist
IGAjNTcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMvNTc+YF86
IEVuY2Fwc3VsYXRlIGhvb2sgc3BlY2lmaWNhdGlvbnMgaW4gYSB0eXBlIGZvciBlYXNpZXIgaW50
cm9zcGVjdGlvbi4KKworCitwbHVnZ3kgMC43LjEgKDIwMTgtMDctMjgpCis9PT09PT09PT09PT09
PT09PT09PT09PT09CisKK0RlcHJlY2F0aW9ucyBhbmQgUmVtb3ZhbHMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworLSBgIzExNiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1
Z2d5L2lzc3Vlcy8xMTY+YF86IERlcHJlY2F0ZSB0aGUgYGBpbXBscHJlZml4YGAga3dhcmcgdG8g
YGBQbHVnaW5NYW5hZ2VyYGAgYW5kIGluc3RlYWQKKyAgZXhwZWN0IHVzZXJzIHRvIHN0YXJ0IHVz
aW5nIGV4cGxpY2l0IGBgSG9va2ltcGxNYXJrZXJgYCBldmVyeXdoZXJlLgorCisKKworRmVhdHVy
ZXMKKy0tLS0tLS0tCisKKy0gYCMxMjIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3Bs
dWdneS9pc3N1ZXMvMTIyPmBfOiBBZGQgYGAucGx1Z2luYGAgbWVtYmVyIHRvIGBgUGx1Z2luVmFs
aWRhdGlvbkVycm9yYGAgdG8gYWNjZXNzIGZhaWxpbmcgcGx1Z2luIGR1cmluZyBwb3N0LW1vcnRl
bS4KKworCistIGAjMTM4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNz
dWVzLzEzOD5gXzogQWRkIHBlciBpbXBsZW1lbnRhdGlvbiB3YXJuaW5ncyBzdXBwb3J0IGZvciBo
b29rc3BlY3MgYWxsb3dpbmcgZm9yIGJvdGgKKyAgZGVwcmVjYXRpb24gYW5kIGZ1dHVyZSB3YXJu
aW5ncyBvZiBsZWdhY3kgYW5kIChmdXR1cmUpIGV4cGVyaW1lbnRhbCBob29rcworICByZXNwZWN0
aXZlbHkuCisKKworCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjMTEwIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzExMD5gXzogRml4IGEgYnVnIHdoZXJl
IGBgX0hvb2tDYWxsZXIuY2FsbF9oaXN0b3JpYygpYGAgd291bGQgY2FsbCB0aGUgYGBwcm9jYGAK
KyAgYXJnIGV2ZW4gd2hlbiB0aGUgZGVmYXVsdCBpcyBgYE5vbmVgYCByZXN1bHRpbmcgaW4gYSBg
YFR5cGVFcnJvcmBgLgorCistIGAjMTYwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
bHVnZ3kvaXNzdWVzLzE2MD5gXzogRml4IHByb2JsZW0gd2hlbiBoYW5kbGluZyBgYFZlcnNpb25D
b25mbGljdGBgIGVycm9ycyB3aGVuIGxvYWRpbmcgc2V0dXB0b29scyBwbHVnaW5zLgorCisKKwor
SW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMTIz
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzEyMz5gXzogRG9j
dW1lbnQgaG93IGV4Y2VwdGlvbnMgYXJlIGhhbmRsZWQgYW5kIGhvdyB0aGUgaG9vayBjYWxsIGxv
b3AKKyAgdGVybWluYXRlcyBpbW1lZGlhdGVseSBvbiB0aGUgZmlyc3QgZXJyb3Igd2hpY2ggaXMg
dGhlbiBkZWxpdmVyZWQKKyAgdG8gYW55IHN1cnJvdW5kaW5nIHdyYXBwZXJzLgorCisKKy0gYCMx
MzYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMvMTM2PmBfOiBE
b2NzIHJld29yayBpbmNsdWRpbmcgYSBtdWNoIGJldHRlciBpbnRyb2R1Y3Rpb24gYW5kIGNvbXBy
ZWhlbnNpdmUgZXhhbXBsZQorICBzZXQgZm9yIG5ldyB1c2Vycy4gQSBiaWcgdGhhbmtzIGdvZXMg
b3V0IHRvIEBvYmVzdHdhbHRlciBmb3IgdGhlIGdyZWF0IHdvcmshCisKKworCitUcml2aWFsL0lu
dGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMTE3IDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzExNz5gXzogQnJlYWsgdXAg
dGhlIG1haW4gbW9ub2xpdGhpYyBwYWNrYWdlIG1vZHVsZXMgaW50byBzZXBhcmF0ZSBtb2R1bGVz
IGJ5IGNvbmNlcm4KKworCistIGAjMTMxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
bHVnZ3kvaXNzdWVzLzEzMT5gXzogQXV0b21hdGUgYGBzZXR1cHRvb2xzYGAgd2hlZWxzIGJ1aWxk
aW5nIGFuZCBQeVBpIHVwbG9hZCB1c2luZyBUcmF2aXNDSS4KKworCistIGAjMTUzIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE1Mz5gXzogUmVvcmdhbml6ZSB0
ZXN0cyBtb3JlIGFwcHJvcHJpYXRlbHkgYnkgbW9kdWxlcyByZWxhdGluZyB0byBlYWNoCisgIGlu
dGVybmFsIGNvbXBvbmVudC9mZWF0dXJlLiBUaGlzIGlzIGluIGFuIGVmZm9ydCB0byBhdm9pZCAo
ZnV0dXJlKQorICBkdXBsaWNhdGlvbiBhbmQgYmV0dGVyIHNlcGFyYXRpb24gb2YgY29uY2VybnMg
aW4gdGhlIHRlc3Qgc2V0LgorCisKKy0gYCMxNTYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3BsdWdneS9pc3N1ZXMvMTU2PmBfOiBBZGQgYGBIb29rSW1wbC5fX3JlcHJfXygpYGAgZm9y
IGJldHRlciBkZWJ1Z2dpbmcuCisKKworLSBgIzY2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9wbHVnZ3kvaXNzdWVzLzY2PmBfOiBTdGFydCB1c2luZyBgYHRvd25jcmllcmBgIGFuZCBh
IGN1c3RvbSBgYHRveGBgIGVudmlyb25tZW50IHRvIHByZXBhcmUgcmVsZWFzZXMhCisKKworcGx1
Z2d5IDAuNy4wIChVbnJlbGVhc2VkKQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIGAj
MTYwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE2MD5gXzog
V2UgZGlzY292ZXJlZCBhIGRlcGxveW1lbnQgaXNzdWUgc28gdGhpcyB2ZXJzaW9uIHdhcyBuZXZl
ciByZWxlYXNlZCB0byBQeVBJLCBvbmx5IHRoZSB0YWcgZXhpc3RzLgorCitwbHVnZ3kgMC42LjAg
KDIwMTctMTEtMjQpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKIC0gQWRkIENJIHRlc3Rp
bmcgZm9yIHRoZSBmZWF0dXJlcywgcmVsZWFzZSwgYW5kIG1hc3RlcgogICBicmFuY2hlcyBvZiBg
YHB5dGVzdGBgIChQUiBgIzc5YF8pLgogLSBEb2N1bWVudCBwdWJsaWMgQVBJIGZvciBgYF9SZXN1
bHRgYCBvYmplY3RzIHBhc3NlZCB0byB3cmFwcGVycwpAQCAtMjcsOCArMjAyLDkgQEAKIC4uIF8j
MTAzOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvcHVsbC8xMDMKIAogCi0w
LjUuMgotLS0tLS0KK3BsdWdneSAwLjUuMiAoMjAxNy0wOS0wNikKKz09PT09PT09PT09PT09PT09
PT09PT09PT0KKwogLSBmaXggYnVnIHdoZXJlIGBgZmlyc3RyZXN1bHRgYCB3cmFwcGVycyB3ZXJl
IGJlaW5nIHNlbnQgYW4gaW5jb3JyZWN0bHkgY29uZmlndXJlZAogICBgYF9SZXN1bHRgYCAoYSBs
aXN0IHdhcyBzZXQgaW5zdGVhZCBvZiBhIHNpbmdsZSB2YWx1ZSkuIEFkZCB0ZXN0cyB0byBjaGVj
ayBmb3IKICAgdGhpcyBhcyB3ZWxsIGFzIGBgX1Jlc3VsdC5mb3JjZV9yZXN1bHQoKWBgIGJlaGF2
aW91ci4gVGhhbmtzIHRvIGBAdGdvb2RsZXRgXwpAQCAtNDUsMTggKzIyMSwyMCBAQAogLi4gXyM4
MDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L3B1bGwvODAKIAogCi0wLjUu
MQotLS0tLS0KK3BsdWdneSAwLjUuMSAoMjAxNy0wOC0yOSkKKz09PT09PT09PT09PT09PT09PT09
PT09PT0KKwogLSBmaXggYSBidWcgYW5kIGFkZCB0ZXN0cyBmb3IgY2FzZSB3aGVyZSBgYGZpcnN0
cmVzdWx0YGAgaG9va3MgcmV0dXJuCiAgIGBgTm9uZWBgIHJlc3VsdHMuIFRoYW5rcyB0byBgQFJv
bm55UGZhbm5zY2htaWR0YF8gYW5kIGBAdGdvb2RsZXRgXwogICBmb3IgdGhlIGlzc3VlIChgIzY4
YF8pIGFuZCBQUiAoYCM2OWBfKSByZXNwZWN0aXZlbHkuCiAKIC4uIF8jNjk6IGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9wdWxsLzY5Ci0uLiBfIzY4OiBodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdXNlcy82OAorLi4gXyM2ODogaHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L2lzc3Vlcy82OAorCiAKK3BsdWdneSAwLjUuMCAoMjAx
Ny0wOC0yOCkKKz09PT09PT09PT09PT09PT09PT09PT09PT0KIAotMC41LjAKLS0tLS0tCiAtIGZp
eCBidWcgd2hlcmUgY2FsbGJhY2tzIGZvciBoaXN0b3JpYyBob29rcyB3b3VsZCBub3QgYmUgY2Fs
bGVkIGZvcgogICBhbHJlYWR5IHJlZ2lzdGVyZWQgcGx1Z2lucy4gIFRoYW5rcyBgQHZvZGlrYF8g
Zm9yIHRoZSBQUgogICBhbmQgYEBocGs0MmBfIGZvciBmdXJ0aGVyIGZpeGVzLgpAQCAtMTE0LDgg
KzI5Miw5IEBACiAuLiBfIzE0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kv
aXNzdWVzLzE0CiAKIAotMC40LjAKLS0tLS0tCitwbHVnZ3kgMC40LjAgKDIwMTYtMDktMjUpCis9
PT09PT09PT09PT09PT09PT09PT09PT09CisKIC0gYWRkIGBgaGFzX3BsdWdpbihuYW1lKWBgIG1l
dGhvZCB0byBwbHVnaW5tYW5hZ2VyLiAgdGhhbmtzIGBAbmljb2RkZW11c2BfLgogCiAtIGZpeCBg
IzExYF86IG1ha2UgcGx1Z2luIHBhcnNpbmcgbW9yZSByZXNpbGllbnQgYWdhaW5zdCBleGNlcHRp
b25zCkBAIC0xMzEsMTkgKzMxMCwyMSBAQAogLi4gXyM0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzQKIAogCi0wLjMuMQotLS0tLS0KK3BsdWdneSAwLjMuMSAo
MjAxNS0wOS0xNykKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKwogLSBhdm9pZCB1c2luZyBk
ZXByZWNhdGVkLWluLXB5dGhvbjMuNSBnZXRhcmdzcGVjIG1ldGhvZC4gVGhhbmtzCiAgIGBAbWRi
b29tYF8uCiAKIAotMC4zLjAKLS0tLS0tCitwbHVnZ3kgMC4zLjAgKDIwMTUtMDUtMDcpCis9PT09
PT09PT09PT09PT09PT09PT09PT09CisKIGluaXRpYWwgcmVsZWFzZQogCiAuLiBjb250cmlidXRv
cnMKIC4uIF9AaHBrNDI6IGh0dHBzOi8vZ2l0aHViLmNvbS9ocGs0MgotLi4gX0B0Z29vZGxldDog
aHR0cHM6Ly9naXRodWIuY29tL3Rnb29kbGV0CisuLiBfQHRnb29kbGV0OiBodHRwczovL2dpdGh1
Yi5jb20vZ29vZGJveQogLi4gX0BNaWNoYWxUSEVEVURFOiBodHRwczovL2dpdGh1Yi5jb20vTWlj
aGFsVEhFRFVERQogLi4gX0B2b2RpazogaHR0cHM6Ly9naXRodWIuY29tL3ZvZGlrCiAuLiBfQFJv
bm55UGZhbm5zY2htaWR0OiBodHRwczovL2dpdGh1Yi5jb20vUm9ubnlQZmFubnNjaG1pZHQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L0hPV1RPUkVMRUFTRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9IT1dU
T1JFTEVBU0UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwY2M0ZmRlZWMwZTk2N2M3YTkwMTJiOTgyYTM4Yzhm
MmYzYzkwODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9IT1dUT1JFTEVBU0UucnN0
CkBAIC0wLDAgKzEsMjMgQEAKK1JlbGVhc2UgUHJvY2VkdXJlCistLS0tLS0tLS0tLS0tLS0tLQor
CisjLiBGcm9tIGEgY2xlYW4gd29yayB0cmVlLCBleGVjdXRlOjoKKworICAgIHRveCAtZSByZWxl
YXNlIC0tIFZFUlNJT04KKworICAgVGhpcyB3aWxsIGNyZWF0ZSB0aGUgYnJhbmNoIHJlYWR5IHRv
IGJlIHB1c2hlZC4KKworIy4gT3BlbiBhIFBSIHRhcmdldGluZyBgYG1hc3RlcmBgLgorCisjLiBB
bGwgdGVzdHMgbXVzdCBwYXNzIGFuZCB0aGUgUFIgbXVzdCBiZSBhcHByb3ZlZCBieSBhdCBsZWFz
dCBhbm90aGVyIG1haW50YWluZXIuCisKKyMuIFB1Ymxpc2ggdG8gUHlQSSBieSBwdXNoaW5nIGEg
dGFnOjoKKworICAgICBnaXQgdGFnIFguWS5aIHJlbGVhc2UtWC5ZLloKKyAgICAgZ2l0IHB1c2gg
Z2l0QGdpdGh1Yi5jb206cHl0ZXN0LWRldi9wbHVnZ3kuZ2l0IFguWS5aCisKKyAgIFRoZSB0YWcg
d2lsbCB0cmlnZ2VyIGEgbmV3IGJ1aWxkLCB3aGljaCB3aWxsIGRlcGxveSB0byBQeVBJLgorCisj
LiBNYWtlIHN1cmUgaXQgaXMgYGF2YWlsYWJsZSBvbiBQeVBJIDxodHRwczovL3B5cGkub3JnL3By
b2plY3QvcGx1Z2d5PmBfLgorCisjLiBNZXJnZSB0aGUgUFIgaW50byBgYG1hc3RlcmBgLCBlaXRo
ZXIgbWFudWFsbHkgb3IgdXNpbmcgR2l0SHViJ3Mgd2ViIGludGVyZmFjZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L0xJQ0VOU0UgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9MSUNFTlNFCmluZGV4IDEyMTAxN2Qw
ODY2YWZjNjE3NGJjYmQ5MjE0ZmFkZmZkODAwNmY4MzQuLjg1ZjRkZDYzZDJkYThlMzFkN2U4NGQ1
MTgwZjAxNmZkZmUzMTVjMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L0xJQ0VOU0UKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wbHVnZ3kvTElDRU5TRQpAQCAtMSw2ICsxLDYgQEAKIFRoZSBNSVQgTGljZW5zZSAoTUlU
KQogCi1Db3B5cmlnaHQgKGMpIDIwMTUgaG9sZ2VyIGtyZWtlbCAocmF0aGVyIHVzZXMgYml0YnVj
a2V0L2hwazQyKSAKK0NvcHlyaWdodCAoYykgMjAxNSBob2xnZXIga3Jla2VsIChyYXRoZXIgdXNl
cyBiaXRidWNrZXQvaHBrNDIpCiAKIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg
b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKIG9mIHRoaXMgc29mdHdh
cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0
byBkZWFsCkBAIC0xOSw0ICsxOSwzIEBAIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg
TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS
T00sCiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF
IE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogU09GVFdBUkUuCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9SRUFETUUucnN0CmluZGV4IDM2MzZiNmVj
NjQyNTAyMzIwYWVjYjczODc0NmRjNWM4ODkwODJmNDcuLmI3OWVmMDI0NjAxODU1Nzk5MTE4ZjFm
ODA2NDExMGM0MTIwOWQwMzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L1JFQURNRS5yc3QKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvUkVBRE1FLnJzdApAQCAtMSwxNCArMSwxNSBAQAorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogcGx1Z2d5IC0gQSBtaW5p
bWFsaXN0IHByb2R1Y3Rpb24gcmVhZHkgcGx1Z2luIHN5c3RlbQogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotfHB5cGl8IHxhbmFjb25kYXwgfHZl
cnNpb25zfCB8dHJhdmlzfCB8YXBwdmV5b3J8CiAKK3xweXBpfCB8Y29uZGEtZm9yZ2V8IHx2ZXJz
aW9uc3wgfHRyYXZpc3wgfGFwcHZleW9yfCB8Z2l0dGVyfCB8YmxhY2t8IHxjb2RlY292fAogCiBU
aGlzIGlzIHRoZSBjb3JlIGZyYW1ld29yayB1c2VkIGJ5IHRoZSBgcHl0ZXN0YF8sIGB0b3hgXywg
YW5kIGBkZXZwaWBfIHByb2plY3RzLgogCiBQbGVhc2UgYHJlYWQgdGhlIGRvY3NgXyB0byBsZWFy
biBtb3JlIQogCiBBIGRlZmluaXRpdmUgZXhhbXBsZQotKioqKioqKioqKioqKioqKioqKioKKz09
PT09PT09PT09PT09PT09PT09CiAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBpbXBvcnQg
cGx1Z2d5CkBAIC0yMCw2ICsyMSw3IEBAIEEgZGVmaW5pdGl2ZSBleGFtcGxlCiAgICAgY2xhc3Mg
TXlTcGVjKG9iamVjdCk6CiAgICAgICAgICIiIkEgaG9vayBzcGVjaWZpY2F0aW9uIG5hbWVzcGFj
ZS4KICAgICAgICAgIiIiCisKICAgICAgICAgQGhvb2tzcGVjCiAgICAgICAgIGRlZiBteWhvb2so
c2VsZiwgYXJnMSwgYXJnMik6CiAgICAgICAgICAgICAiIiJNeSBzcGVjaWFsIGxpdHRsZSBob29r
IHRoYXQgeW91IGNhbiBjdXN0b21pemUuCkBAIC0yOSw2ICszMSw3IEBAIEEgZGVmaW5pdGl2ZSBl
eGFtcGxlCiAgICAgY2xhc3MgUGx1Z2luXzEob2JqZWN0KToKICAgICAgICAgIiIiQSBob29rIGlt
cGxlbWVudGF0aW9uIG5hbWVzcGFjZS4KICAgICAgICAgIiIiCisKICAgICAgICAgQGhvb2tpbXBs
CiAgICAgICAgIGRlZiBteWhvb2soc2VsZiwgYXJnMSwgYXJnMik6CiAgICAgICAgICAgICBwcmlu
dCgiaW5zaWRlIFBsdWdpbl8xLm15aG9vaygpIikKQEAgLTM4LDYgKzQxLDcgQEAgQSBkZWZpbml0
aXZlIGV4YW1wbGUKICAgICBjbGFzcyBQbHVnaW5fMihvYmplY3QpOgogICAgICAgICAiIiJBIDJu
ZCBob29rIGltcGxlbWVudGF0aW9uIG5hbWVzcGFjZS4KICAgICAgICAgIiIiCisKICAgICAgICAg
QGhvb2tpbXBsCiAgICAgICAgIGRlZiBteWhvb2soc2VsZiwgYXJnMSwgYXJnMik6CiAgICAgICAg
ICAgICBwcmludCgiaW5zaWRlIFBsdWdpbl8yLm15aG9vaygpIikKQEAgLTUyLDIyICs1Niw0NiBA
QCBBIGRlZmluaXRpdmUgZXhhbXBsZQogICAgIHBtLnJlZ2lzdGVyKFBsdWdpbl8xKCkpCiAgICAg
cG0ucmVnaXN0ZXIoUGx1Z2luXzIoKSkKIAotICAgICMgY2FsbCBvdXIgYG15aG9va2AgaG9vawor
ICAgICMgY2FsbCBvdXIgYGBteWhvb2tgYCBob29rCiAgICAgcmVzdWx0cyA9IHBtLmhvb2subXlo
b29rKGFyZzE9MSwgYXJnMj0yKQogICAgIHByaW50KHJlc3VsdHMpCiAKIAorUnVubmluZyB0aGlz
IGRpcmVjdGx5IGdldHMgdXM6OgorCisgICAgJCBweXRob24gZG9jcy9leGFtcGxlcy90b3ktZXhh
bXBsZS5weQorICAgIGluc2lkZSBQbHVnaW5fMi5teWhvb2soKQorICAgIGluc2lkZSBQbHVnaW5f
MS5teWhvb2soKQorICAgIFstMSwgM10KKworCiAuLiBiYWRnZXMKKwogLi4gfHB5cGl8IGltYWdl
OjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvcGx1Z2d5LnN2ZwotICAgIDp0YXJnZXQ6
IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcGx1Z2d5CisgICAgOnRhcmdldDogaHR0cHM6
Ly9weXBpLm9yZy9weXBpL3BsdWdneQorCiAuLiB8dmVyc2lvbnN8IGltYWdlOjogaHR0cHM6Ly9p
bWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMvcGx1Z2d5LnN2ZwotICAgIDp0YXJnZXQ6IGh0
dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcGx1Z2d5CisgICAgOnRhcmdldDogaHR0cHM6Ly9w
eXBpLm9yZy9weXBpL3BsdWdneQorCiAuLiB8dHJhdmlzfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNo
aWVsZHMuaW8vdHJhdmlzL3B5dGVzdC1kZXYvcGx1Z2d5L21hc3Rlci5zdmcKICAgICA6dGFyZ2V0
OiBodHRwczovL3RyYXZpcy1jaS5vcmcvcHl0ZXN0LWRldi9wbHVnZ3kKKwogLi4gfGFwcHZleW9y
fCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYXBwdmV5b3IvY2kvcHl0ZXN0Ym90L3Bs
dWdneS9tYXN0ZXIuc3ZnCiAgICAgOnRhcmdldDogaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJv
amVjdC9weXRlc3Rib3QvcGx1Z2d5Ci0uLiB8YW5hY29uZGF8IGltYWdlOjogaHR0cHM6Ly9hbmFj
b25kYS5vcmcvY29uZGEtZm9yZ2UvcGx1Z2d5L2JhZGdlcy92ZXJzaW9uLnN2ZwotICAgIDp0YXJn
ZXQ6IGh0dHBzOi8vYW5hY29uZGEub3JnL2NvbmRhLWZvcmdlL3BsdWdneQorCisuLiB8Y29uZGEt
Zm9yZ2V8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb25kYS92bi9jb25kYS1mb3Jn
ZS9wbHVnZ3kuc3ZnCisgICAgOnRhcmdldDogaHR0cHM6Ly9hbmFjb25kYS5vcmcvY29uZGEtZm9y
Z2UvcHl0ZXN0CisKKy4uIHxnaXR0ZXJ8IGltYWdlOjogaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmlt
L3B5dGVzdC1kZXYvcGx1Z2d5LnN2ZworICAgIDphbHQ6IEpvaW4gdGhlIGNoYXQgYXQgaHR0cHM6
Ly9naXR0ZXIuaW0vcHl0ZXN0LWRldi9wbHVnZ3kKKyAgICA6dGFyZ2V0OiBodHRwczovL2dpdHRl
ci5pbS9weXRlc3QtZGV2L3BsdWdneT91dG1fc291cmNlPWJhZGdlJnV0bV9tZWRpdW09YmFkZ2Um
dXRtX2NhbXBhaWduPXByLWJhZGdlJnV0bV9jb250ZW50PWJhZGdlCisKKy4uIHxibGFja3wgaW1h
Z2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NvZGUlMjBzdHlsZS1ibGFjay0wMDAw
MDAuc3ZnCisgICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL2FtYnYvYmxhY2sKKworLi4g
fGNvZGVjb3Z8IGltYWdlOjogaHR0cHM6Ly9jb2RlY292LmlvL2doL3B5dGVzdC1kZXYvcGx1Z2d5
L2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3ZnCisgICAgOnRhcmdldDogaHR0cHM6Ly9jb2Rl
Y292LmlvL2doL3B5dGVzdC1kZXYvcGx1Z2d5CisgICAgOmFsdDogQ29kZSBjb3ZlcmFnZSBTdGF0
dXMKIAogLi4gbGlua3MKIC4uIF9weXRlc3Q6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9hcHB2
ZXlvci55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9hcHB2ZXlvci55bWwKaW5kZXggYzM5MDNmOGJmY2M2NzFi
YmU4NjBiMTkxM2ZjNWNjYTA2ZGFiODg1YS4uMWZjMTJmZmYzOTcyZDg2NDhlZmY2OGZhOTVhOTMw
MjEwZmIxY2M0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvYXBwdmV5b3IueW1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L2FwcHZleW9yLnltbApAQCAtMSwxNSArMSwxNCBAQAogZW52aXJvbm1lbnQ6CiAg
IG1hdHJpeDoKICAgIyBub3RlOiBwbGVhc2UgdXNlICJ0b3ggLS1saXN0ZW52cyIgdG8gcG9wdWxh
dGUgdGhlIGJ1aWxkIG1hdHJpeCBiZWxvdwotICAtIFRPWEVOVjogImNoZWNrIgorICAtIFRPWEVO
VjogImxpbnRpbmciCiAgIC0gVE9YRU5WOiAiZG9jcyIKLSAgLSBUT1hFTlY6ICJweTI3LXB5dGVz
dHJlbGVhc2UiCi0gIC0gVE9YRU5WOiAicHkzNC1weXRlc3RyZWxlYXNlIgotICAtIFRPWEVOVjog
InB5MzUtcHl0ZXN0cmVsZWFzZSIKLSAgLSBUT1hFTlY6ICJweTM2LXB5dGVzdHJlbGVhc2UiCi0g
IC0gVE9YRU5WOiAicHlweS1weXRlc3RyZWxlYXNlIgotICAtIFRPWEVOVjogInB5MjctcHl0ZXN0
bWFzdGVyIgotICAtIFRPWEVOVjogInB5MjctcHl0ZXN0ZmVhdHVyZXMiCisgIC0gVE9YRU5WOiAi
cHkyNyIKKyAgLSBUT1hFTlY6ICJweTM0IgorICAtIFRPWEVOVjogInB5MzUiCisgIC0gVE9YRU5W
OiAicHkzNiIKKyAgLSBUT1hFTlY6ICJweTM3IgorICAtIFRPWEVOVjogInB5cHkiCiAgIC0gVE9Y
RU5WOiAicHkzNi1weXRlc3RtYXN0ZXIiCiAgIC0gVE9YRU5WOiAicHkzNi1weXRlc3RmZWF0dXJl
cyIKIApAQCAtMjYsOSArMjUsMTQgQEAgaW5zdGFsbDoKICAgLSBlY2hvIFB5UHkgaW5zdGFsbGVk
CiAgIC0gcHlweSAtLXZlcnNpb24KIAotICAtIEM6XFB5dGhvbjM1XHB5dGhvbiAtbSBwaXAgaW5z
dGFsbCB0b3gKKyAgLSBDOlxQeXRob24zNVxweXRob24gLW0gcGlwIGluc3RhbGwgLVUgcGlwCisg
IC0gQzpcUHl0aG9uMzVccHl0aG9uIC1tIHBpcCBpbnN0YWxsIC1VIC0tZm9yY2UtcmVpbnN0YWxs
IHNldHVwdG9vbHMgdG94CiAKIGJ1aWxkOiBmYWxzZSAgIyBOb3QgYSBDIyBwcm9qZWN0LCBidWls
ZCBzdHVmZiBhdCB0aGUgdGVzdCBzdGVwIGluc3RlYWQuCiAKIHRlc3Rfc2NyaXB0OgotICAtIEM6
XFB5dGhvbjM1XHB5dGhvbiAtbSB0b3gKKyAgLSBDOlxQeXRob24zNVxTY3JpcHRzXHRveAorCisj
IFdlIGRvbid0IGRlcGxveSBhbnl0aGluZyBvbiB0YWdzIHdpdGggQXBwVmV5b3IsIHdlIHVzZSBU
cmF2aXMgaW5zdGVhZCwgc28gd2UKKyMgbWlnaHQgYXMgd2VsbCBzYXZlIHJlc291cmNlcworc2tp
cF90YWdzOiB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9jaGFuZ2Vsb2cvUkVBRE1FLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L2NoYW5nZWxvZy9SRUFETUUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3ZTIxZmIz
M2ZiMzQwMDgxMjQ2YTM4MzFmMDlmYTA2NTk3MDk2YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9jaGFuZ2Vsb2cvUkVBRE1FLnJzdApAQCAtMCwwICsxLDMyIEBACitUaGlzIGRpcmVj
dG9yeSBjb250YWlucyAibmV3c2ZyYWdtZW50cyIgd2hpY2ggYXJlIHNob3J0IGZpbGVzIHRoYXQg
Y29udGFpbiBhIHNtYWxsICoqUmVTVCoqLWZvcm1hdHRlZAordGV4dCB0aGF0IHdpbGwgYmUgYWRk
ZWQgdG8gdGhlIG5leHQgYGBDSEFOR0VMT0dgYC4KKworVGhlIGBgQ0hBTkdFTE9HYGAgd2lsbCBi
ZSByZWFkIGJ5IHVzZXJzLCBzbyB0aGlzIGRlc2NyaXB0aW9uIHNob3VsZCBiZSBhaW1lZCB0byBw
eXRlc3QgdXNlcnMKK2luc3RlYWQgb2YgZGVzY3JpYmluZyBpbnRlcm5hbCBjaGFuZ2VzIHdoaWNo
IGFyZSBvbmx5IHJlbGV2YW50IHRvIHRoZSBkZXZlbG9wZXJzLgorCitNYWtlIHN1cmUgdG8gdXNl
IGZ1bGwgc2VudGVuY2VzIHdpdGggY29ycmVjdCBjYXNlIGFuZCBwdW5jdHVhdGlvbiwgZm9yIGV4
YW1wbGU6OgorCisgICAgRml4IGlzc3VlIHdpdGggbm9uLWFzY2lpIG1lc3NhZ2VzIGZyb20gdGhl
IGBgd2FybmluZ3NgYCBtb2R1bGUuCisKK0VhY2ggZmlsZSBzaG91bGQgYmUgbmFtZWQgbGlrZSBg
YDxJU1NVRT4uPFRZUEU+LnJzdGBgLCB3aGVyZQorYGA8SVNTVUU+YGAgaXMgYW4gaXNzdWUgbnVt
YmVyLCBhbmQgYGA8VFlQRT5gYCBpcyBvbmUgb2Y6CisKKyogYGBmZWF0dXJlYGA6IG5ldyB1c2Vy
IGZhY2luZyBmZWF0dXJlcywgbGlrZSBuZXcgY29tbWFuZC1saW5lIG9wdGlvbnMgYW5kIG5ldyBi
ZWhhdmlvci4KKyogYGBidWdmaXhgYDogZml4ZXMgYSByZXBvcnRlZCBidWcuCisqIGBgZG9jYGA6
IGRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnQsIGxpa2UgcmV3b3JkaW5nIGFuIGVudGlyZSBzZXNz
aW9uIG9yIGFkZGluZyBtaXNzaW5nIGRvY3MuCisqIGBgcmVtb3ZhbGBgOiBmZWF0dXJlIGRlcHJl
Y2F0aW9uIG9yIHJlbW92YWwuCisqIGBgdmVuZG9yYGA6IGNoYW5nZXMgaW4gcGFja2FnZXMgdmVu
ZG9yZWQgaW4gcHl0ZXN0LgorKiBgYHRyaXZpYWxgYDogZml4aW5nIGEgc21hbGwgdHlwbyBvciBp
bnRlcm5hbCBjaGFuZ2UgdGhhdCBtaWdodCBiZSBub3Rld29ydGh5LgorCitTbyBmb3IgZXhhbXBs
ZTogYGAxMjMuZmVhdHVyZS5yc3RgYCwgYGA0NTYuYnVnZml4LnJzdGBgLgorCitJZiB5b3VyIFBS
IGZpeGVzIGFuIGlzc3VlLCB1c2UgdGhhdCBudW1iZXIgaGVyZS4gSWYgdGhlcmUgaXMgbm8gaXNz
dWUsCit0aGVuIGFmdGVyIHlvdSBzdWJtaXQgdGhlIFBSIGFuZCBnZXQgdGhlIFBSIG51bWJlciB5
b3UgY2FuIGFkZCBhCitjaGFuZ2Vsb2cgdXNpbmcgdGhhdCBpbnN0ZWFkLgorCitJZiB5b3UgYXJl
IG5vdCBzdXJlIHdoYXQgaXNzdWUgdHlwZSB0byB1c2UsIGRvbid0IGhlc2l0YXRlIHRvIGFzayBp
biB5b3VyIFBSLgorCitgYHRvd25jcmllcmBgIHByZXNlcnZlcyBtdWx0aXBsZSBwYXJhZ3JhcGhz
IGFuZCBmb3JtYXR0aW5nIChjb2RlIGJsb2NrcywgbGlzdHMsIGFuZCBzbyBvbiksIGJ1dCBmb3Ig
ZW50cmllcworb3RoZXIgdGhhbiBgYGZlYXR1cmVzYGAgaXQgaXMgdXN1YWxseSBiZXR0ZXIgdG8g
c3RpY2sgdG8gYSBzaW5nbGUgcGFyYWdyYXBoIHRvIGtlZXAgaXQgY29uY2lzZS4gWW91IGNhbiBp
bnN0YWxsCitgYHRvd25jcmllcmBgIGFuZCB0aGVuIHJ1biBgYHRvd25jcmllciAtLWRyYWZ0YGAK
K2lmIHlvdSB3YW50IHRvIGdldCBhIHByZXZpZXcgb2YgaG93IHlvdXIgY2hhbmdlIHdpbGwgbG9v
ayBpbiB0aGUgZmluYWwgcmVsZWFzZSBub3Rlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2No
YW5nZWxvZy9fdGVtcGxhdGUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvY2hhbmdlbG9nL190ZW1wbGF0ZS5y
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTc0ZTVjMWIyZGVkMGUzNGY4ZDBlNTNjNTNkZWVhMTkxYzA2OGMyYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2NoYW5nZWxvZy9fdGVtcGxhdGUucnN0CkBA
IC0wLDAgKzEsNDAgQEAKK3slIGZvciBzZWN0aW9uIGluIHNlY3Rpb25zICV9Cit7JSBzZXQgdW5k
ZXJsaW5lID0gIi0iICV9Cit7JSBpZiBzZWN0aW9uICV9Cit7e3NlY3Rpb259fQore3sgdW5kZXJs
aW5lICogc2VjdGlvbnxsZW5ndGggfX17JSBzZXQgdW5kZXJsaW5lID0gIn4iICV9CisKK3slIGVu
ZGlmICV9Cit7JSBpZiBzZWN0aW9uc1tzZWN0aW9uXSAlfQoreyUgZm9yIGNhdGVnb3J5LCB2YWwg
aW4gZGVmaW5pdGlvbnMuaXRlbXMoKSBpZiBjYXRlZ29yeSBpbiBzZWN0aW9uc1tzZWN0aW9uXSAl
fQorCit7eyBkZWZpbml0aW9uc1tjYXRlZ29yeV1bJ25hbWUnXSB9fQore3sgdW5kZXJsaW5lICog
ZGVmaW5pdGlvbnNbY2F0ZWdvcnldWyduYW1lJ118bGVuZ3RoIH19CisKK3slIGlmIGRlZmluaXRp
b25zW2NhdGVnb3J5XVsnc2hvd2NvbnRlbnQnXSAlfQoreyUgZm9yIHRleHQsIHZhbHVlcyBpbiBz
ZWN0aW9uc1tzZWN0aW9uXVtjYXRlZ29yeV18ZGljdHNvcnQoYnk9J3ZhbHVlJykgJX0KK3slIHNl
dCBpc3N1ZV9qb2luZXIgPSBqb2luZXIoJywgJykgJX0KKy0geyUgZm9yIHZhbHVlIGluIHZhbHVl
c3xzb3J0ICV9e3sgaXNzdWVfam9pbmVyKCkgfX1ge3sgdmFsdWUgfX0gPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMve3sgdmFsdWVbMTpdIH19PmBfeyUgZW5kZm9y
ICV9OiB7eyB0ZXh0IH19CisKKworeyUgZW5kZm9yICV9Cit7JSBlbHNlICV9CistIHt7IHNlY3Rp
b25zW3NlY3Rpb25dW2NhdGVnb3J5XVsnJ118c29ydHxqb2luKCcsICcpIH19CisKKworeyUgZW5k
aWYgJX0KK3slIGlmIHNlY3Rpb25zW3NlY3Rpb25dW2NhdGVnb3J5XXxsZW5ndGggPT0gMCAlfQor
CitObyBzaWduaWZpY2FudCBjaGFuZ2VzLgorCisKK3slIGVsc2UgJX0KK3slIGVuZGlmICV9Cit7
JSBlbmRmb3IgJX0KK3slIGVsc2UgJX0KKworTm8gc2lnbmlmaWNhbnQgY2hhbmdlcy4KKworCit7
JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9jaGFuZ2Vs
b2cvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9jaGFuZ2Vsb2cvdzNjLWltcG9ydC5sb2cK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWZjNmQ1MmJlMDQxNTU0ZjZjNzdkYmMyOGY2MGQ1ZjY0NjQ5MDVhMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2NoYW5nZWxvZy93M2MtaW1wb3J0LmxvZwpAQCAt
MCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1Ro
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9jaGFuZ2Vsb2cvUkVBRE1FLnJzdAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L2NoYW5nZWxvZy9fdGVtcGxhdGUucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9kb2NzL2FwaV9yZWZlcmVuY2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9hcGlfcmVmZXJl
bmNlLnJzdAppbmRleCBhYTE1MTM1YWQzZGYwNGUyYjU5NDgzNjc4ZGM4NDY0YmJhYzY4YmUyLi4z
OTNkMGFlYmVhMDYyOTAxNTcxNzI5ZmIzZTc4ZmEzNmZiNTQ5NDQxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9kb2NzL2FwaV9yZWZlcmVuY2UucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvYXBp
X3JlZmVyZW5jZS5yc3QKQEAgLTEsMyArMSw1IEBACis6b3JwaGFuOgorCiBBcGkgUmVmZXJlbmNl
CiA9PT09PT09PT09PT09CiAKQEAgLTYsOSArOCwxMiBAQCBBcGkgUmVmZXJlbmNlCiAgICAgOnVu
ZG9jLW1lbWJlcnM6CiAgICAgOnNob3ctaW5oZXJpdGFuY2U6CiAKKy4uIGF1dG9jbGFzczo6IHBs
dWdneS5jYWxsZXJzLl9SZXN1bHQKKy4uIGF1dG9tZXRob2Q6OiBwbHVnZ3kuY2FsbGVycy5fUmVz
dWx0LmdldF9yZXN1bHQKKy4uIGF1dG9tZXRob2Q6OiBwbHVnZ3kuY2FsbGVycy5fUmVzdWx0LmZv
cmNlX3Jlc3VsdAogCi0uLiBhdXRvbWV0aG9kOjogcGx1Z2d5Ll9SZXN1bHQuZ2V0X3Jlc3VsdAot
Ci0uLiBhdXRvbWV0aG9kOjogcGx1Z2d5Ll9SZXN1bHQuZm9yY2VfcmVzdWx0CisuLiBhdXRvY2xh
c3M6OiBwbHVnZ3kuaG9va3MuX0hvb2tDYWxsZXIKKy4uIGF1dG9tZXRob2Q6OiBwbHVnZ3kuaG9v
a3MuX0hvb2tDYWxsZXIuY2FsbF9leHRyYQorLi4gYXV0b21ldGhvZDo6IHBsdWdneS5ob29rcy5f
SG9va0NhbGxlci5jYWxsX2hpc3RvcmljCiAKLS4uIGF1dG9tZXRob2Q6OiBwbHVnZ3kuX0hvb2tD
YWxsZXIuY2FsbF9leHRyYQorLi4gYXV0b2NsYXNzOjogcGx1Z2d5Lmhvb2tzLl9Ib29rUmVsYXkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvY2hhbmdlbG9nLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L2RvY3MvY2hhbmdlbG9nLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjViMDUyMWQwYzJjZGJmZTQ5M2QxOTc2
NWIwNGQ1YzExOWZhN2ViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9jaGFu
Z2Vsb2cucnN0CkBAIC0wLDAgKzEgQEAKKy4uIGluY2x1ZGU6OiAuLi9DSEFOR0VMT0cucnN0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2NvbmYucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2Nv
bmYucHkKaW5kZXggMDQwNjUyMThmZGEwMzFjNjNiNGQ5NWZlMWViYmZmZjhiOGUzODlmNy4uNDI4
Mjk4NTBkODk0MTlkNzQ5YjkwOTU5MTgxNmJkMjc3OGMzMjcwOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvZG9jcy9jb25mLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvY29uZi5weQpAQCAtMSw1
OSArMSw2NSBAQAogIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KLWltcG9ydCBwa2dfcmVzb3VyY2Vz
CitpbXBvcnQgc3lzCisKK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDgpOgorICAgIGZyb20g
aW1wb3J0bGliIGltcG9ydCBtZXRhZGF0YQorZWxzZToKKyAgICBpbXBvcnQgaW1wb3J0bGliX21l
dGFkYXRhIGFzIG1ldGFkYXRhCiAKIAogZXh0ZW5zaW9ucyA9IFsKLSAgICAnc3BoaW54LmV4dC5h
dXRvZG9jJywKLSAgICAnc3BoaW54LmV4dC5kb2N0ZXN0JywKLSAgICAnc3BoaW54LmV4dC5pbnRl
cnNwaGlueCcsCi0gICAgJ3NwaGlueC5leHQuY292ZXJhZ2UnLAotICAgICdzcGhpbnguZXh0LnZp
ZXdjb2RlJywKKyAgICAic3BoaW54LmV4dC5hdXRvZG9jIiwKKyAgICAic3BoaW54LmV4dC5kb2N0
ZXN0IiwKKyAgICAic3BoaW54LmV4dC5pbnRlcnNwaGlueCIsCisgICAgInNwaGlueC5leHQuY292
ZXJhZ2UiLAorICAgICJzcGhpbnguZXh0LnZpZXdjb2RlIiwKIF0KIAogIyBBZGQgYW55IHBhdGhz
IHRoYXQgY29udGFpbiB0ZW1wbGF0ZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3Rvcnku
Ci10ZW1wbGF0ZXNfcGF0aCA9IFsnX3RlbXBsYXRlcyddCit0ZW1wbGF0ZXNfcGF0aCA9IFsiX3Rl
bXBsYXRlcyJdCiAKLXNvdXJjZV9zdWZmaXggPSAnLnJzdCcKK3NvdXJjZV9zdWZmaXggPSAiLnJz
dCIKIAogIyBUaGUgbWFzdGVyIHRvY3RyZWUgZG9jdW1lbnQuCi1tYXN0ZXJfZG9jID0gJ2luZGV4
JworbWFzdGVyX2RvYyA9ICJpbmRleCIKIAogIyBHZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRo
ZSBwcm9qZWN0LgogCi1kaXN0ID0gcGtnX3Jlc291cmNlcy5nZXRfZGlzdHJpYnV0aW9uKCdwbHVn
Z3knKQotcHJvamVjdCA9IGRpc3QucHJvamVjdF9uYW1lCi1jb3B5cmlnaHQgPSB1JzIwMTYsIEhv
bGdlciBLcmVrZWwnCi1hdXRob3IgPSAnSG9sZ2VyIEtyZWtlbCcKK3Byb2plY3QgPSAicGx1Z2d5
IgorY29weXJpZ2h0ID0gdSIyMDE2LCBIb2xnZXIgS3Jla2VsIgorYXV0aG9yID0gIkhvbGdlciBL
cmVrZWwiCiAKLXJlbGVhc2UgPSBkaXN0LnZlcnNpb24KK3JlbGVhc2UgPSBtZXRhZGF0YS52ZXJz
aW9uKHByb2plY3QpCiAjIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KLXZlcnNpb24gPSB1Jy4nLmpv
aW4oZGlzdC52ZXJzaW9uLnNwbGl0KCcuJylbOjJdKQordmVyc2lvbiA9IHUiLiIuam9pbihyZWxl
YXNlLnNwbGl0KCIuIilbOjJdKQogCiAKIGxhbmd1YWdlID0gTm9uZQogCi1weWdtZW50c19zdHls
ZSA9ICdzcGhpbngnCi1odG1sX2xvZ28gPSAnX3N0YXRpYy9pbWcvcGx1Zy5wbmcnCi1odG1sX3Ro
ZW1lID0gJ2FsYWJhc3RlcicKK3B5Z21lbnRzX3N0eWxlID0gInNwaGlueCIKKyMgaHRtbF9sb2dv
ID0gIl9zdGF0aWMvaW1nL3BsdWcucG5nIgoraHRtbF90aGVtZSA9ICJhbGFiYXN0ZXIiCiBodG1s
X3RoZW1lX29wdGlvbnMgPSB7Ci0gICAgIyAnbG9nbyc6ICdpbWcvcGx1Zy5wbmcnLAotICAgICMg
J2xvZ29fbmFtZSc6ICd0cnVlJywKLSAgICAnZGVzY3JpcHRpb24nOiAnVGhlIGBweXRlc3RgIHBs
dWdpbiBzeXN0ZW0nLAotICAgICdnaXRodWJfdXNlcic6ICdweXRlc3QtZGV2JywKLSAgICAnZ2l0
aHViX3JlcG8nOiAncGx1Z2d5JywKLSAgICAnZ2l0aHViX2J1dHRvbic6ICd0cnVlJywKLSAgICAn
Z2l0aHViX2Jhbm5lcic6ICd0cnVlJywKLSAgICAncGFnZV93aWR0aCc6ICcxMDgwcHgnLAotICAg
ICdmaXhlZF9zaWRlYmFyJzogJ2ZhbHNlJywKKyAgICAibG9nbyI6ICJpbWcvcGx1Zy5wbmciLAor
ICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgcHl0ZXN0IHBsdWdpbiBzeXN0ZW0iLAorICAgICJnaXRo
dWJfdXNlciI6ICJweXRlc3QtZGV2IiwKKyAgICAiZ2l0aHViX3JlcG8iOiAicGx1Z2d5IiwKKyAg
ICAiZ2l0aHViX2J1dHRvbiI6ICJ0cnVlIiwKKyAgICAiZ2l0aHViX2Jhbm5lciI6ICJ0cnVlIiwK
KyAgICAiZ2l0aHViX3R5cGUiOiAic3RhciIsCisgICAgInRyYXZpc19idXR0b24iOiAidHJ1ZSIs
CisgICAgImJhZGdlX2JyYW5jaCI6ICJtYXN0ZXIiLAorICAgICJwYWdlX3dpZHRoIjogIjEwODBw
eCIsCisgICAgImZpeGVkX3NpZGViYXIiOiAiZmFsc2UiLAorfQoraHRtbF9zaWRlYmFycyA9IHsK
KyAgICAiKioiOiBbImFib3V0Lmh0bWwiLCAibG9jYWx0b2MuaHRtbCIsICJyZWxhdGlvbnMuaHRt
bCIsICJzZWFyY2hib3guaHRtbCJdCiB9Ci1odG1sX3N0YXRpY19wYXRoID0gWydfc3RhdGljJ10K
K2h0bWxfc3RhdGljX3BhdGggPSBbIl9zdGF0aWMiXQogCiAjIE9uZSBlbnRyeSBwZXIgbWFudWFs
IHBhZ2UuIExpc3Qgb2YgdHVwbGVzCiAjIChzb3VyY2Ugc3RhcnQgZmlsZSwgbmFtZSwgZGVzY3Jp
cHRpb24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0aW9uKS4KLW1hbl9wYWdlcyA9IFsKLSAgICAobWFz
dGVyX2RvYywgJ3BsdWdneScsIHUncGx1Z2d5IERvY3VtZW50YXRpb24nLAotICAgICBbYXV0aG9y
XSwgMSkKLV0KK21hbl9wYWdlcyA9IFsobWFzdGVyX2RvYywgInBsdWdneSIsIHUicGx1Z2d5IERv
Y3VtZW50YXRpb24iLCBbYXV0aG9yXSwgMSldCiAKIAogIyAtLSBPcHRpb25zIGZvciBUZXhpbmZv
IG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC02
MiwxMCArNjgsMjIgQEAgbWFuX3BhZ2VzID0gWwogIyAoc291cmNlIHN0YXJ0IGZpbGUsIHRhcmdl
dCBuYW1lLCB0aXRsZSwgYXV0aG9yLAogIyAgZGlyIG1lbnUgZW50cnksIGRlc2NyaXB0aW9uLCBj
YXRlZ29yeSkKIHRleGluZm9fZG9jdW1lbnRzID0gWwotICAgIChtYXN0ZXJfZG9jLCAncGx1Z2d5
JywgdSdwbHVnZ3kgRG9jdW1lbnRhdGlvbicsCi0gICAgIGF1dGhvciwgJ3BsdWdneScsICdPbmUg
bGluZSBkZXNjcmlwdGlvbiBvZiBwcm9qZWN0LicsCi0gICAgICdNaXNjZWxsYW5lb3VzJyksCisg
ICAgKAorICAgICAgICBtYXN0ZXJfZG9jLAorICAgICAgICAicGx1Z2d5IiwKKyAgICAgICAgdSJw
bHVnZ3kgRG9jdW1lbnRhdGlvbiIsCisgICAgICAgIGF1dGhvciwKKyAgICAgICAgInBsdWdneSIs
CisgICAgICAgICJPbmUgbGluZSBkZXNjcmlwdGlvbiBvZiBwcm9qZWN0LiIsCisgICAgICAgICJN
aXNjZWxsYW5lb3VzIiwKKyAgICApCiBdCiAKICMgRXhhbXBsZSBjb25maWd1cmF0aW9uIGZvciBp
bnRlcnNwaGlueDogcmVmZXIgdG8gdGhlIFB5dGhvbiBzdGFuZGFyZCBsaWJyYXJ5LgotaW50ZXJz
cGhpbnhfbWFwcGluZyA9IHsnaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvJzogTm9uZX0KK2ludGVy
c3BoaW54X21hcHBpbmcgPSB7CisgICAgInB5dGhvbiI6ICgiaHR0cHM6Ly9kb2NzLnB5dGhvbi5v
cmcvMyIsIE5vbmUpLAorICAgICJweXRlc3QiOiAoImh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2Vu
L2xhdGVzdCIsIE5vbmUpLAorICAgICJzZXR1cHRvb2xzIjogKCJodHRwczovL3NldHVwdG9vbHMu
cmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0IiwgTm9uZSksCisgICAgInRveCI6ICgiaHR0cHM6Ly90
b3gucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0IiwgTm9uZSksCisgICAgImRldnBpIjogKCJodHRw
czovL2RldnBpLm5ldC9kb2NzL2RldnBpL2RldnBpL3N0YWJsZS8rZG9jLyIsIE5vbmUpLAorfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS9lZ2dz
YW1wbGVfc3BhbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0v
ZWdnc2FtcGxlX3NwYW0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ3MWIxMzhkMDBhYzcyNDEyNWI1NzE3Y2Vm
ZjJiOTUyYmE3YWZjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBs
ZXMvZWdnc2FtcGxlLXNwYW0vZWdnc2FtcGxlX3NwYW0ucHkKQEAgLTAsMCArMSwyMiBAQAoraW1w
b3J0IGVnZ3NhbXBsZQorCisKK0BlZ2dzYW1wbGUuaG9va2ltcGwKK2RlZiBlZ2dzYW1wbGVfYWRk
X2luZ3JlZGllbnRzKGluZ3JlZGllbnRzKToKKyAgICAiIiJIZXJlIHRoZSBjYWxsZXIgZXhwZWN0
cyB1cyB0byByZXR1cm4gYSBsaXN0LiIiIgorICAgIGlmICJlZ2ciIGluIGluZ3JlZGllbnRzOgor
ICAgICAgICBzcGFtID0gWyJsb3ZlbHkgc3BhbSIsICJ3b25kZXJvdXMgc3BhbSJdCisgICAgZWxz
ZToKKyAgICAgICAgc3BhbSA9IFsic3BsZW5kaWZlcm91cyBzcGFtIiwgIm1hZ25pZmljZW50IHNw
YW0iXQorICAgIHJldHVybiBzcGFtCisKKworQGVnZ3NhbXBsZS5ob29raW1wbAorZGVmIGVnZ3Nh
bXBsZV9wcmVwX2NvbmRpbWVudHMoY29uZGltZW50cyk6CisgICAgIiIiSGVyZSB0aGUgY2FsbGVy
IHBhc3NlcyBhIG11dGFibGUgb2JqZWN0LCBzbyB3ZSBtZXNzIHdpdGggaXQgZGlyZWN0bHkuIiIi
CisgICAgdHJ5OgorICAgICAgICBkZWwgY29uZGltZW50c1sic3RlYWsgc2F1Y2UiXQorICAgIGV4
Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgcGFzcworICAgIGNvbmRpbWVudHNbInNwYW0gc2F1Y2Ui
XSA9IDQyCisgICAgcmV0dXJuIGYiTm93IHRoaXMgaXMgd2hhdCBJIGNhbGwgYSBjb25kaW1lbnRz
IHRyYXkhIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUt
c3BhbS9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0v
c2V0dXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgxYThlYjQwMzg3OTJlMjIwMzhiMjY5NmVmN2Q3OTg2NjI4
YzIwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2Ft
cGxlLXNwYW0vc2V0dXAucHkKQEAgLTAsMCArMSw4IEBACitmcm9tIHNldHVwdG9vbHMgaW1wb3J0
IHNldHVwCisKK3NldHVwKAorICAgIG5hbWU9ImVnZ3NhbXBsZS1zcGFtIiwKKyAgICBpbnN0YWxs
X3JlcXVpcmVzPSJlZ2dzYW1wbGUiLAorICAgIGVudHJ5X3BvaW50cz17ImVnZ3NhbXBsZSI6IFsi
c3BhbSA9IGVnZ3NhbXBsZV9zcGFtIl19LAorICAgIHB5X21vZHVsZXM9WyJlZ2dzYW1wbGVfc3Bh
bSJdLAorKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUt
c3BhbS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxl
LXNwYW0vdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU0M2UzM2U1YmFkMTUzNTViZDBlZTE0
NmE0NThlNjM1N2U0MDM5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhh
bXBsZXMvZWdnc2FtcGxlLXNwYW0vdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS9lZ2dzYW1wbGVf
c3BhbS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0vc2V0dXAu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3Nh
bXBsZS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL2Vn
Z3NhbXBsZS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGM0YjM2ZGVjM2FjNWYzYjQ2NjNhZmMx
OGQ1YTUzOWMwZTQyNzJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFt
cGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxlL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNCBAQAoraW1w
b3J0IHBsdWdneQorCitob29raW1wbCA9IHBsdWdneS5Ib29raW1wbE1hcmtlcigiZWdnc2FtcGxl
IikKKyIiIk1hcmtlciB0byBiZSBpbXBvcnRlZCBhbmQgdXNlZCBpbiBwbHVnaW5zIChhbmQgZm9y
IG93biBpbXBsZW1lbnRhdGlvbnMpIiIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4
YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvaG9va3NwZWNzLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9j
cy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxlL2hvb2tzcGVjcy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
ODg2NmIyNDkxMjg3YmFmZWYyNDg3MTFjMWQwZGE1MjYyZDcyMzUzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxlL2hvb2tzcGVj
cy5weQpAQCAtMCwwICsxLDIxIEBACitpbXBvcnQgcGx1Z2d5CisKK2hvb2tzcGVjID0gcGx1Z2d5
Lkhvb2tzcGVjTWFya2VyKCJlZ2dzYW1wbGUiKQorCisKK0Bob29rc3BlYworZGVmIGVnZ3NhbXBs
ZV9hZGRfaW5ncmVkaWVudHMoaW5ncmVkaWVudHM6IHR1cGxlKToKKyAgICAiIiJIYXZlIGEgbG9v
ayBhdCB0aGUgaW5ncmVkaWVudHMgYW5kIG9mZmVyIHlvdXIgb3duLgorCisgICAgOnBhcmFtIGlu
Z3JlZGllbnRzOiB0aGUgaW5ncmVkaWVudHMsIGRvbid0IHRvdWNoIHRoZW0hCisgICAgOnJldHVy
bjogYSBsaXN0IG9mIGluZ3JlZGllbnRzCisgICAgIiIiCisKKworQGhvb2tzcGVjCitkZWYgZWdn
c2FtcGxlX3ByZXBfY29uZGltZW50cyhjb25kaW1lbnRzOiBkaWN0KToKKyAgICAiIiJSZW9yZ2Fu
aXplIHRoZSBjb25kaW1lbnRzIHRyYXkgdG8geW91ciBoZWFydCdzIGNvbnRlbnQuCisKKyAgICA6
cGFyYW0gY29uZGltZW50czogc29tZSBzYXVjZXMgYW5kIHN0dWZmCisgICAgOnJldHVybjogYSB3
aXR0eSBjb21tZW50IGFib3V0IHlvdXIgYWN0aXZpdHkKKyAgICAiIiIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS9ob3N0LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxlL2hvc3QucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWMxZDMzYjQ1Mzk5MjJiMGFjODYyYmFkMDY3NmM5MTFhMzNlODg5MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS9o
b3N0LnB5CkBAIC0wLDAgKzEsNTcgQEAKK2ltcG9ydCBpdGVydG9vbHMKK2ltcG9ydCByYW5kb20K
KworaW1wb3J0IHBsdWdneQorCitmcm9tIGVnZ3NhbXBsZSBpbXBvcnQgaG9va3NwZWNzLCBsaWIK
KworY29uZGltZW50c190cmF5ID0geyJwaWNrbGVkIHdhbG51dHMiOiAxMywgInN0ZWFrIHNhdWNl
IjogNCwgIm11c2h5IHBlYXMiOiAyfQorCisKK2RlZiBtYWluKCk6CisgICAgcG0gPSBnZXRfcGx1
Z2luX21hbmFnZXIoKQorICAgIGNvb2sgPSBFZ2dzZWxsZW50Q29vayhwbS5ob29rKQorICAgIGNv
b2suYWRkX2luZ3JlZGllbnRzKCkKKyAgICBjb29rLnByZXBhcmVfdGhlX2Zvb2QoKQorICAgIGNv
b2suc2VydmVfdGhlX2Zvb2QoKQorCisKK2RlZiBnZXRfcGx1Z2luX21hbmFnZXIoKToKKyAgICBw
bSA9IHBsdWdneS5QbHVnaW5NYW5hZ2VyKCJlZ2dzYW1wbGUiKQorICAgIHBtLmFkZF9ob29rc3Bl
Y3MoaG9va3NwZWNzKQorICAgIHBtLmxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50cygiZWdnc2Ft
cGxlIikKKyAgICBwbS5yZWdpc3RlcihsaWIpCisgICAgcmV0dXJuIHBtCisKKworY2xhc3MgRWdn
c2VsbGVudENvb2s6CisgICAgRkFWT1JJVEVfSU5HUkVESUVOVFMgPSAoImVnZyIsICJlZ2ciLCAi
ZWdnIikKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob29rKToKKyAgICAgICAgc2VsZi5ob29r
ID0gaG9vaworICAgICAgICBzZWxmLmluZ3JlZGllbnRzID0gTm9uZQorCisgICAgZGVmIGFkZF9p
bmdyZWRpZW50cyhzZWxmKToKKyAgICAgICAgcmVzdWx0cyA9IHNlbGYuaG9vay5lZ2dzYW1wbGVf
YWRkX2luZ3JlZGllbnRzKAorICAgICAgICAgICAgaW5ncmVkaWVudHM9c2VsZi5GQVZPUklURV9J
TkdSRURJRU5UUworICAgICAgICApCisgICAgICAgIG15X2luZ3JlZGllbnRzID0gbGlzdChzZWxm
LkZBVk9SSVRFX0lOR1JFRElFTlRTKQorICAgICAgICAjIEVhY2ggaG9vayByZXR1cm5zIGEgbGlz
dCAtIHNvIHdlIGNoYWluIHRoaXMgbGlzdCBvZiBsaXN0cworICAgICAgICBvdGhlcl9pbmdyZWRp
ZW50cyA9IGxpc3QoaXRlcnRvb2xzLmNoYWluKCpyZXN1bHRzKSkKKyAgICAgICAgc2VsZi5pbmdy
ZWRpZW50cyA9IG15X2luZ3JlZGllbnRzICsgb3RoZXJfaW5ncmVkaWVudHMKKworICAgIGRlZiBw
cmVwYXJlX3RoZV9mb29kKHNlbGYpOgorICAgICAgICByYW5kb20uc2h1ZmZsZShzZWxmLmluZ3Jl
ZGllbnRzKQorCisgICAgZGVmIHNlcnZlX3RoZV9mb29kKHNlbGYpOgorICAgICAgICBjb25kaW1l
bnRfY29tbWVudHMgPSBzZWxmLmhvb2suZWdnc2FtcGxlX3ByZXBfY29uZGltZW50cygKKyAgICAg
ICAgICAgIGNvbmRpbWVudHM9Y29uZGltZW50c190cmF5CisgICAgICAgICkKKyAgICAgICAgcHJp
bnQoZiJZb3VyIGZvb2QuIEVuam95IHNvbWUgeycsICcuam9pbihzZWxmLmluZ3JlZGllbnRzKX0i
KQorICAgICAgICBwcmludChmIlNvbWUgY29uZGltZW50cz8gV2UgaGF2ZSB7JywgJy5qb2luKGNv
bmRpbWVudHNfdHJheS5rZXlzKCkpfSIpCisgICAgICAgIGlmIGFueShjb25kaW1lbnRfY29tbWVu
dHMpOgorICAgICAgICAgICAgcHJpbnQoIlxuIi5qb2luKGNvbmRpbWVudF9jb21tZW50cykpCisK
KworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS9saWIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvbGliLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYyY2VhNzQ1OGVhNDkxY2M3Yjg2MDEyMmU3ZTM5MGMxZmNmZTIwMWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvbGli
LnB5CkBAIC0wLDAgKzEsMTQgQEAKK2ltcG9ydCBlZ2dzYW1wbGUKKworCitAZWdnc2FtcGxlLmhv
b2tpbXBsCitkZWYgZWdnc2FtcGxlX2FkZF9pbmdyZWRpZW50cygpOgorICAgIHNwaWNlcyA9IFsi
c2FsdCIsICJwZXBwZXIiXQorICAgIHlvdV9jYW5fbmV2ZXJfaGF2ZV9lbm91Z2hfZWdncyA9IFsi
ZWdnIiwgImVnZyJdCisgICAgaW5ncmVkaWVudHMgPSBzcGljZXMgKyB5b3VfY2FuX25ldmVyX2hh
dmVfZW5vdWdoX2VnZ3MKKyAgICByZXR1cm4gaW5ncmVkaWVudHMKKworCitAZWdnc2FtcGxlLmhv
b2tpbXBsCitkZWYgZWdnc2FtcGxlX3ByZXBfY29uZGltZW50cyhjb25kaW1lbnRzKToKKyAgICBj
b25kaW1lbnRzWyJtaW50IHNhdWNlIl0gPSAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2Nz
L2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvdzNjLWltcG9ydC5sb2cKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2ViYWM0YWRlYWNlZTQ3ZDk3NWYyNWFmZGI0MzE1ZjBmYzlmMGNlZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIwIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2Nz
L2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9k
b2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvaG9va3NwZWNzLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxlL2hvc3QucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvbGliLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9zZXR1cC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL3NldHVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiM2ZhY2IzYjY3
MThkZGRhMmQ4ZjFkN2UyYzNlZmVmYjg2MjhiMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9zZXR1cC5weQpAQCAtMCwwICsxLDggQEAKK2Zy
b20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAsIGZpbmRfcGFja2FnZXMKKworc2V0dXAoCisgICAg
bmFtZT0iZWdnc2FtcGxlIiwKKyAgICBpbnN0YWxsX3JlcXVpcmVzPSJwbHVnZ3k+PTAuMyw8MS4w
IiwKKyAgICBlbnRyeV9wb2ludHM9eyJjb25zb2xlX3NjcmlwdHMiOiBbImVnZ3NhbXBsZT1lZ2dz
YW1wbGUuaG9zdDptYWluIl19LAorICAgIHBhY2thZ2VzPWZpbmRfcGFja2FnZXMoKSwKKykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvdzNjLWltcG9ydC5sb2cK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTBjMjU1NDAwZDNkM2QwN2Q1YmYyMTgyOWU5NjhhNTliYmVlMDgxNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL3czYy1p
bXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhh
bXBsZXMvZWdnc2FtcGxlL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4
YW1wbGVzL2ZpcnN0ZXhhbXBsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZmlyc3Rl
eGFtcGxlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzY2VjN2NkMjE0NDc0M2Nh
MWFiZmJiMmE3Y2I4MjQ4YTQ0MWQyMjkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZmlyc3RleGFtcGxlLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotaW1wb3J0IHBsdWdneQotCi1ob29rc3Bl
YyA9IHBsdWdneS5Ib29rc3BlY01hcmtlcigibXlwcm9qZWN0IikKLWhvb2tpbXBsID0gcGx1Z2d5
Lkhvb2tpbXBsTWFya2VyKCJteXByb2plY3QiKQotCi0KLWNsYXNzIE15U3BlYyhvYmplY3QpOgot
ICAgICIiIkEgaG9vayBzcGVjaWZpY2F0aW9uIG5hbWVzcGFjZS4KLSAgICAiIiIKLSAgICBAaG9v
a3NwZWMKLSAgICBkZWYgbXlob29rKHNlbGYsIGFyZzEsIGFyZzIpOgotICAgICAgICAiIiJNeSBz
cGVjaWFsIGxpdHRsZSBob29rIHRoYXQgeW91IGNhbiBjdXN0b21pemUuCi0gICAgICAgICIiIgot
Ci0KLWNsYXNzIFBsdWdpbl8xKG9iamVjdCk6Ci0gICAgIiIiQSBob29rIGltcGxlbWVudGF0aW9u
IG5hbWVzcGFjZS4KLSAgICAiIiIKLSAgICBAaG9va2ltcGwKLSAgICBkZWYgbXlob29rKHNlbGYs
IGFyZzEsIGFyZzIpOgotICAgICAgICBwcmludCgiaW5zaWRlIFBsdWdpbl8xLm15aG9vaygpIikK
LSAgICAgICAgcmV0dXJuIGFyZzEgKyBhcmcyCi0KLQotY2xhc3MgUGx1Z2luXzIob2JqZWN0KToK
LSAgICAiIiJBIDJuZCBob29rIGltcGxlbWVudGF0aW9uIG5hbWVzcGFjZS4KLSAgICAiIiIKLSAg
ICBAaG9va2ltcGwKLSAgICBkZWYgbXlob29rKHNlbGYsIGFyZzEsIGFyZzIpOgotICAgICAgICBw
cmludCgiaW5zaWRlIFBsdWdpbl8yLm15aG9vaygpIikKLSAgICAgICAgcmV0dXJuIGFyZzEgLSBh
cmcyCi0KLQotIyBjcmVhdGUgYSBtYW5hZ2VyIGFuZCBhZGQgdGhlIHNwZWMKLXBtID0gcGx1Z2d5
LlBsdWdpbk1hbmFnZXIoIm15cHJvamVjdCIpCi1wbS5hZGRfaG9va3NwZWNzKE15U3BlYykKLQot
IyByZWdpc3RlciBwbHVnaW5zCi1wbS5yZWdpc3RlcihQbHVnaW5fMSgpKQotcG0ucmVnaXN0ZXIo
UGx1Z2luXzIoKSkKLQotIyBjYWxsIG91ciBgbXlob29rYCBob29rCi1yZXN1bHRzID0gcG0uaG9v
ay5teWhvb2soYXJnMT0xLCBhcmcyPTIpCi1wcmludChyZXN1bHRzKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy90b3ktZXhhbXBsZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3Mv
ZXhhbXBsZXMvdG95LWV4YW1wbGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZkYzdlOTIyOGRiMjg2OTgwNDRh
Njk4NzA3MTNmNmVlYmVmMjYyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3Mv
ZXhhbXBsZXMvdG95LWV4YW1wbGUucHkKQEAgLTAsMCArMSw0MSBAQAoraW1wb3J0IHBsdWdneQor
Citob29rc3BlYyA9IHBsdWdneS5Ib29rc3BlY01hcmtlcigibXlwcm9qZWN0IikKK2hvb2tpbXBs
ID0gcGx1Z2d5Lkhvb2tpbXBsTWFya2VyKCJteXByb2plY3QiKQorCisKK2NsYXNzIE15U3BlYyhv
YmplY3QpOgorICAgICIiIkEgaG9vayBzcGVjaWZpY2F0aW9uIG5hbWVzcGFjZS4iIiIKKworICAg
IEBob29rc3BlYworICAgIGRlZiBteWhvb2soc2VsZiwgYXJnMSwgYXJnMik6CisgICAgICAgICIi
Ik15IHNwZWNpYWwgbGl0dGxlIGhvb2sgdGhhdCB5b3UgY2FuIGN1c3RvbWl6ZS4iIiIKKworCitj
bGFzcyBQbHVnaW5fMShvYmplY3QpOgorICAgICIiIkEgaG9vayBpbXBsZW1lbnRhdGlvbiBuYW1l
c3BhY2UuIiIiCisKKyAgICBAaG9va2ltcGwKKyAgICBkZWYgbXlob29rKHNlbGYsIGFyZzEsIGFy
ZzIpOgorICAgICAgICBwcmludCgiaW5zaWRlIFBsdWdpbl8xLm15aG9vaygpIikKKyAgICAgICAg
cmV0dXJuIGFyZzEgKyBhcmcyCisKKworY2xhc3MgUGx1Z2luXzIob2JqZWN0KToKKyAgICAiIiJB
IDJuZCBob29rIGltcGxlbWVudGF0aW9uIG5hbWVzcGFjZS4iIiIKKworICAgIEBob29raW1wbAor
ICAgIGRlZiBteWhvb2soc2VsZiwgYXJnMSwgYXJnMik6CisgICAgICAgIHByaW50KCJpbnNpZGUg
UGx1Z2luXzIubXlob29rKCkiKQorICAgICAgICByZXR1cm4gYXJnMSAtIGFyZzIKKworCisjIGNy
ZWF0ZSBhIG1hbmFnZXIgYW5kIGFkZCB0aGUgc3BlYworcG0gPSBwbHVnZ3kuUGx1Z2luTWFuYWdl
cigibXlwcm9qZWN0IikKK3BtLmFkZF9ob29rc3BlY3MoTXlTcGVjKQorIyByZWdpc3RlciBwbHVn
aW5zCitwbS5yZWdpc3RlcihQbHVnaW5fMSgpKQorcG0ucmVnaXN0ZXIoUGx1Z2luXzIoKSkKKyMg
Y2FsbCBvdXIgYG15aG9va2AgaG9vaworcmVzdWx0cyA9IHBtLmhvb2subXlob29rKGFyZzE9MSwg
YXJnMj0yKQorcHJpbnQocmVzdWx0cykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhh
bXBsZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL3czYy1pbXBv
cnQubG9nCmluZGV4IDA2OGI2YTE4ZTE2NmM3ZDRlZmI1YjJiYjYyMTE5MTZmNWUwMDgxOWQuLmMz
N2ExODBiNmJkYTJiZDBkMWJhYjViY2IwMDhiOTBiNzZmODEwYmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L2RvY3MvZXhhbXBsZXMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9j
cy9leGFtcGxlcy93M2MtaW1wb3J0LmxvZwpAQCAtMTQsNCArMTQsNCBAQCBQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2ZpcnN0ZXhhbXBsZS5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvdG95LWV4YW1wbGUucHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L2RvY3MvaW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9pbmRleC5yc3QKaW5k
ZXggZGI2NWExMDIzZmRkNTA1MGRiZjUzNTI5YzE1MzJjMjE0Mjg5MDg4OC4uNzI1NDZkYzI0M2M3
YzM1Y2Y3OTRkODAxNGEyZTI1MzBhNzcxMjAzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9j
cy9pbmRleC5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9pbmRleC5yc3QKQEAgLTEsNjcgKzEs
MTgyIEBACiBgYHBsdWdneWBgCiA9PT09PT09PT09CisqKlRoZSBweXRlc3QgcGx1Z2luIHN5c3Rl
bSoqCiAKLVRoZSBgYHB5dGVzdGBgIHBsdWdpbiBzeXN0ZW0KLSoqKioqKioqKioqKioqKioqKioq
KioqKioqKioKLWBgcGx1Z2d5YGAgaXMgdGhlIGNyeXN0YWxsaXplZCBjb3JlIG9mIGBwbHVnaW4g
bWFuYWdlbWVudCBhbmQgaG9vawotY2FsbGluZ2BfIGZvciBgcHl0ZXN0YF8uCi0KLUluIGZhY3Qs
IGBgcHl0ZXN0YGAgaXMgaXRzZWxmIGNvbXBvc2VkIGFzIGEgc2V0IG9mIGBgcGx1Z2d5YGAgcGx1
Z2lucworV2hhdCBpcyBpdD8KKyoqKioqKioqKioqCitgYHBsdWdneWBgIGlzIHRoZSBjcnlzdGFs
bGl6ZWQgY29yZSBvZiA6cmVmOmBwbHVnaW4gbWFuYWdlbWVudCBhbmQgaG9vaworY2FsbGluZyA8
cHl0ZXN0OndyaXRpbmctcGx1Z2lucz5gIGZvciA6c3RkOmRvYzpgcHl0ZXN0IDxweXRlc3Q6aW5k
ZXg+YC4KK0l0IGVuYWJsZXMgYDUwMCsgcGx1Z2luc2BfIHRvIGV4dGVuZCBhbmQgY3VzdG9taXpl
IGBgcHl0ZXN0YGAncyBkZWZhdWx0CitiZWhhdmlvdXIuIEV2ZW4gYGBweXRlc3RgYCBpdHNlbGYg
aXMgY29tcG9zZWQgYXMgYSBzZXQgb2YgYGBwbHVnZ3lgYCBwbHVnaW5zCiB3aGljaCBhcmUgaW52
b2tlZCBpbiBzZXF1ZW5jZSBhY2NvcmRpbmcgdG8gYSB3ZWxsIGRlZmluZWQgc2V0IG9mIHByb3Rv
Y29scy4KLVNvbWUgYDIwMCsgcGx1Z2luc2BfIHVzZSBgYHBsdWdneWBgIHRvIGV4dGVuZCBhbmQg
Y3VzdG9taXplIGBgcHl0ZXN0YGAncyBkZWZhdWx0IGJlaGF2aW91ci4KIAotSW4gZXNzZW5jZSwg
YGBwbHVnZ3lgYCBlbmFibGVzIGZ1bmN0aW9uIGBob29raW5nYF8gc28geW91IGNhbiBidWlsZCAi
cGx1Z2dhYmxlIiBzeXN0ZW1zLgorSXQgZ2l2ZXMgdXNlcnMgdGhlIGFiaWxpdHkgdG8gZXh0ZW5k
IG9yIG1vZGlmeSB0aGUgYmVoYXZpb3VyIG9mIGEKK2BgaG9zdCBwcm9ncmFtYGAgYnkgaW5zdGFs
bGluZyBhIGBgcGx1Z2luYGAgZm9yIHRoYXQgcHJvZ3JhbS4KK1RoZSBwbHVnaW4gY29kZSB3aWxs
IHJ1biBhcyBwYXJ0IG9mIG5vcm1hbCBwcm9ncmFtIGV4ZWN1dGlvbiwgY2hhbmdpbmcgb3IKK2Vu
aGFuY2luZyBjZXJ0YWluIGFzcGVjdHMgb2YgaXQuCisKK0luIGVzc2VuY2UsIGBgcGx1Z2d5YGAg
ZW5hYmxlcyBmdW5jdGlvbiBgaG9va2luZ2BfIHNvIHlvdSBjYW4gYnVpbGQKKyJwbHVnZ2FibGUi
IHN5c3RlbXMuCisKK1doeSBpcyBpdCB1c2VmdWw/CisqKioqKioqKioqKioqKioqKgorVGhlcmUg
YXJlIHNvbWUgZXN0YWJsaXNoZWQgbWVjaGFuaXNtcyBmb3IgbW9kaWZ5aW5nIHRoZSBiZWhhdmlv
ciBvZiBvdGhlcgorcHJvZ3JhbXMvbGlicmFyaWVzIGluIFB5dGhvbiBsaWtlCitgbWV0aG9kIG92
ZXJyaWRpbmcgPGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01ldGhvZF9vdmVycmlkaW5n
PmBfCisoZS5nLiBKaW5qYTIpIG9yCitgbW9ua2V5IHBhdGNoaW5nIDxodHRwczovL2VuLndpa2lw
ZWRpYS5vcmcvd2lraS9Nb25rZXlfcGF0Y2g+YF8gKGUuZy4gZ2V2ZW50CitvciBmb3IgOnN0ZDpk
b2M6YHdyaXRpbmcgdGVzdHMgPHB5dGVzdDptb25rZXlwYXRjaD5gKS4KK1RoZXNlIHN0cmF0ZWdp
ZXMgYmVjb21lIHByb2JsZW1hdGljIHRob3VnaCB3aGVuIHNldmVyYWwgcGFydGllcyB3YW50IHRv
CitwYXJ0aWNpcGF0ZSBpbiB0aGUgbW9kaWZpY2F0aW9uIG9mIHRoZSBzYW1lIHByb2dyYW0uIFRo
ZXJlZm9yZSBgYHBsdWdneWBgCitkb2VzIG5vdCByZWx5IG9uIHRoZXNlIG1lY2hhbmlzbXMgdG8g
ZW5hYmxlIGEgbW9yZSBzdHJ1Y3R1cmVkIGFwcHJvYWNoIGFuZAorYXZvaWQgdW5uZWNlc3Nhcnkg
ZXhwb3N1cmUgb2Ygc3RhdGUgYW5kIGJlaGF2aW91ci4gVGhpcyBsZWFkcyB0byBhIG1vcmUKK2Bs
b29zZWx5IGNvdXBsZWQgPGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xvb3NlX2NvdXBs
aW5nPmBfIHJlbGF0aW9uc2hpcAorYmV0d2VlbiBgYGhvc3RgYCBhbmQgYGBwbHVnaW5zYGAuCisK
K1RoZSBgYHBsdWdneWBgIGFwcHJvYWNoIHB1dHMgdGhlIGJ1cmRlbiBvbiB0aGUgZGVzaWduZXIg
b2YgdGhlCitgYGhvc3QgcHJvZ3JhbWBgIHRvIHRoaW5rIGNhcmVmdWxseSBhYm91dCB3aGljaCBv
YmplY3RzIGFyZSByZWFsbHkKK25lZWRlZCBpbiBhIGhvb2sgaW1wbGVtZW50YXRpb24uIFRoaXMg
Z2l2ZXMgYGBwbHVnaW5gYCBjcmVhdG9ycyBhIGNsZWFyCitmcmFtZXdvcmsgZm9yIGhvdyB0byBl
eHRlbmQgdGhlIGBgaG9zdGBgIHZpYSBhIHdlbGwgZGVmaW5lZCBzZXQgb2YgZnVuY3Rpb25zCith
bmQgb2JqZWN0cyB0byB3b3JrIHdpdGguCisKK0hvdyBkb2VzIGl0IHdvcms/CisqKioqKioqKioq
KioqKioqKgorTGV0IHVzIHN0YXJ0IHdpdGggYSBzaG9ydCBvdmVydmlldyBvZiB3aGF0IGlzIGlu
dm9sdmVkOgorCisqIGBgaG9zdGBgIG9yIGBgaG9zdCBwcm9ncmFtYGA6IHRoZSBwcm9ncmFtIG9m
ZmVyaW5nIGV4dGVuc2liaWxpdHkKKyAgYnkgc3BlY2lmeWluZyBgYGhvb2sgZnVuY3Rpb25zYGAg
YW5kIGludm9raW5nIHRoZWlyIGltcGxlbWVudGF0aW9uKHMpIGFzCisgIHBhcnQgb2YgcHJvZ3Jh
bSBleGVjdXRpb24KKyogYGBwbHVnaW5gYDogdGhlIHByb2dyYW0gaW1wbGVtZW50aW5nIChhIHN1
YnNldCBvZikgdGhlIHNwZWNpZmllZCBob29rcyBhbmQKKyAgcGFydGljaXBhdGluZyBpbiBwcm9n
cmFtIGV4ZWN1dGlvbiB3aGVuIHRoZSBpbXBsZW1lbnRhdGlvbnMgYXJlIGludm9rZWQKKyAgYnkg
dGhlIGBgaG9zdGBgCisqIGBgcGx1Z2d5YGA6IGNvbm5lY3RzIGBgaG9zdGBgIGFuZCBgYHBsdWdp
bnNgYCBieSB1c2luZyAuLi4KKworICAgIC0gdGhlIGhvb2sgOnJlZjpgc3BlY2lmaWNhdGlvbnMg
PHNwZWNzPmAgZGVmaW5pbmcgY2FsbCBzaWduYXR1cmVzCisgICAgICBwcm92aWRlZCBieSB0aGUg
YGBob3N0YGAgKGEuay5hIGBgaG9va3NwZWNzYGAgLSBzZWUgOnJlZjpgbWFya2luZ19ob29rc2Ap
CisgICAgLSB0aGUgaG9vayA6cmVmOmBpbXBsZW1lbnRhdGlvbnMgPGltcGxzPmAgcHJvdmlkZWQg
YnkgcmVnaXN0ZXJlZAorICAgICAgYGBwbHVnaW5zYGAgKGEuay5hIGBgaG9va2ltcGxgYCAtIHNl
ZSBgY2FsbGJhY2tzYF8pCisgICAgLSB0aGUgaG9vayA6cmVmOmBjYWxsZXIgPGNhbGxpbmc+YCAt
IGEgY2FsbCBsb29wIHRyaWdnZXJlZCBhdCBhcHByb3ByaWF0ZQorICAgICAgcHJvZ3JhbSBwb3Np
dGlvbnMgaW4gdGhlIGBgaG9zdGBgIGludm9raW5nIHRoZSBpbXBsZW1lbnRhdGlvbnMgYW5kCisg
ICAgICBjb2xsZWN0aW5nIHRoZSByZXN1bHRzCisKKyAgICAuLi4gd2hlcmUgZm9yIGVhY2ggcmVn
aXN0ZXJlZCBob29rICpzcGVjaWZpY2F0aW9uKiwgYSBob29rICpjYWxsKiB3aWxsCisgICAgaW52
b2tlIHVwIHRvIGBgTmBgIHJlZ2lzdGVyZWQgaG9vayAqaW1wbGVtZW50YXRpb25zKi4KKyogYGB1
c2VyYGA6IHRoZSBwZXJzb24gd2hvIGluc3RhbGxlZCB0aGUgYGBob3N0IHByb2dyYW1gYCBhbmQg
d2FudHMgdG8KKyAgZXh0ZW5kIGl0cyBmdW5jdGlvbmFsaXR5IHdpdGggYGBwbHVnaW5zYGAuIElu
IHRoZSBzaW1wbGVzdCBjYXNlIHRoZXkgaW5zdGFsbAorICB0aGUgYGBwbHVnaW5gYCBpbiB0aGUg
c2FtZSBlbnZpcm9ubWVudCBhcyB0aGUgYGBob3N0YGAgYW5kIHRoZSBtYWdpYyB3aWxsCisgIGhh
cHBlbiB3aGVuIHRoZSBgYGhvc3QgcHJvZ3JhbWBgIGlzIHJ1biB0aGUgbmV4dCB0aW1lLiBEZXBl
bmRpbmcgb24KKyAgdGhlIGBgcGx1Z2luYGAsIHRoZXJlIG1pZ2h0IGJlIG90aGVyIHRoaW5ncyB0
aGV5IG5lZWQgdG8gZG8uIEZvciBleGFtcGxlLAorICB0aGV5IG1pZ2h0IGhhdmUgdG8gY2FsbCB0
aGUgaG9zdCB3aXRoIGFuIGFkZGl0aW9uYWwgY29tbWFuZGxpbmUgcGFyYW1ldGVyCisgIHRvIHRo
ZSBob3N0IHRoYXQgdGhlIGBgcGx1Z2luYGAgYWRkZWQuCisKK0EgdG95IGV4YW1wbGUKKy0tLS0t
LS0tLS0tLS0KK0xldCB1cyBkZW1vbnN0cmF0ZSB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IGluIG9u
ZSBtb2R1bGUgYW5kIHNob3cgaG93IHlvdSBjYW4KK3N0YXJ0IGV4cGVyaW1lbnRpbmcgd2l0aCBw
bHVnZ3kgZnVuY3Rpb25hbGl0eS4KIAotSG93J3MgaXQgd29yaz8KLS0tLS0tLS0tLS0tLS0tCi1B
IGBwbHVnaW5gIGlzIGEgYG5hbWVzcGFjZWBfIHdoaWNoIGRlZmluZXMgaG9vayBmdW5jdGlvbnMu
CisuLiBsaXRlcmFsaW5jbHVkZTo6IGV4YW1wbGVzL3RveS1leGFtcGxlLnB5CiAKLWBgcGx1Z2d5
YGAgbWFuYWdlcyAqcGx1Z2lucyogYnkgcmVseWluZyBvbjoKK1J1bm5pbmcgdGhpcyBkaXJlY3Rs
eSBnZXRzIHVzOjoKIAotLSBhIGhvb2sgKnNwZWNpZmljYXRpb24qIC0gZGVmaW5lcyBhIGNhbGwg
c2lnbmF0dXJlCi0tIGEgc2V0IG9mIGhvb2sgKmltcGxlbWVudGF0aW9ucyogLSBha2EgYGNhbGxi
YWNrc2BfCi0tIHRoZSBob29rICpjYWxsZXIqIC0gYSBjYWxsIGxvb3Agd2hpY2ggY29sbGVjdHMg
cmVzdWx0cworICAgICQgcHl0aG9uIGRvY3MvZXhhbXBsZXMvdG95LWV4YW1wbGUucHkKIAotd2hl
cmUgZm9yIGVhY2ggcmVnaXN0ZXJlZCBob29rICpzcGVjaWZpY2F0aW9uKiwgYSBob29rICpjYWxs
KiB3aWxsIGludm9rZSB1cCB0byBgYE5gYAotcmVnaXN0ZXJlZCBob29rICppbXBsZW1lbnRhdGlv
bnMqLgorICAgIGluc2lkZSBQbHVnaW5fMi5teWhvb2soKQorICAgIGluc2lkZSBQbHVnaW5fMS5t
eWhvb2soKQorICAgIFstMSwgM10KIAotYGBwbHVnZ3lgYCBhY2NvbXBsaXNoZXMgYWxsIHRoaXMg
YnkgaW1wbGVtZW50aW5nIGEgYHJlcXVlc3QtcmVzcG9uc2UgcGF0dGVybmBfIHVzaW5nICpmdW5j
dGlvbioKLXN1YnNjcmlwdGlvbnMgYW5kIGNhbiBiZSB0aG91Z2h0IG9mIGFuZCB1c2VkIGFzIGEg
cnVkaW1lbnRhcnkgYnVzbGVzcyBgcHVibGlzaC1zdWJzY3JpYmVgXwotZXZlbnQgc3lzdGVtLgor
QSBjb21wbGV0ZSBleGFtcGxlCistLS0tLS0tLS0tLS0tLS0tLS0KK05vdyBsZXQgdXMgZGVtb25z
dHJhdGUgaG93IHRoaXMgcGxheXMgdG9nZXRoZXIgaW4gYSB2YWd1ZWx5IHJlYWwgd29ybGQgc2Nl
bmFyaW8uCiAKLWBgcGx1Z2d5YGAncyBhcHByb2FjaCBpcyBtZWFudCB0byBsZXQgYSBkZXNpZ25l
ciB0aGluayBjYXJlZnVseSBhYm91dCB3aGljaCBvYmplY3RzIGFyZQotZXhwbGljaXRseSBuZWVk
ZWQgYnkgYW4gZXh0ZW5zaW9uIHdyaXRlci4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBzdWJjbGFz
cy1iYXNlZCBleHRlbnNpb24KLXN5c3RlbXMgd2hpY2ggbWF5IGV4cG9zZSB1bmVjZXNzYXJ5IHN0
YXRlIGFuZCBiZWhhdmlvdXIgb3IgZW5jb3VyYWdlIGB0aWdodCBjb3VwbGluZ2BfCi1pbiBvdmVy
bHlpbmcgZnJhbWV3b3Jrcy4KK0xldCdzIGFzc3VtZSBvdXIgYGBob3N0IHByb2dyYW1gYCBpcyBj
YWxsZWQgKiplZ2dzYW1wbGUqKiB3aGVyZSBzb21lIGVnZ3Mgd2lsbAorYmUgcHJlcGFyZWQgYW5k
IHNlcnZlZCB3aXRoIGEgdHJheSBjb250YWluaW5nIGNvbmRpbWVudHMuIEFzIGV2ZXJ5Ym9keSBr
bm93czoKK3RoZSBtb3JlIGNvb2tzIGFyZSBpbnZvbHZlZCB0aGUgYmV0dGVyIHRoZSBmb29kLCBz
byBsZXQgdXMgbWFrZSB0aGUgcHJvY2VzcworcGx1Z2dhYmxlIGFuZCB3cml0ZSBhIHBsdWdpbiB0
aGF0IGltcHJvdmVzIHRoZSBtZWFsIHdpdGggc29tZSBzcGFtIGFuZCByZXBsYWNlcwordGhlIHN0
ZWFrIHNhdWNlIChub2JvZHkgbGlrZXMgdGhhdCBhbnl3YXkpIHdpdGggc3BhbSBzYXVjZSAoaXQn
cyBhIHRoaW5nIC0gdHJ1c3QgbWUpLgogCisuLiBub3RlOjoKIAotQSBmaXJzdCBleGFtcGxlCi0t
LS0tLS0tLS0tLS0tLS0KKyAgICAqKm5hbWluZyBtYXJrZXJzKio6IGBgSG9va1NwZWNNYXJrZXJg
YCBhbmQgYGBIb29rSW1wbE1hcmtlcmBgIG11c3QgYmUKKyAgICBpbml0aWFsaXplZCB3aXRoIHRo
ZSBuYW1lIG9mIHRoZSBgYGhvc3RgYCBwcm9qZWN0ICh0aGUgYGBuYW1lYGAKKyAgICBwYXJhbWV0
ZXIgaW4gYGBzZXR1cCgpYGApIC0gc28gKiplZ2dzYW1wbGUqKiBpbiBvdXIgY2FzZS4KIAotLi4g
bGl0ZXJhbGluY2x1ZGU6OiBleGFtcGxlcy9maXJzdGV4YW1wbGUucHkKKyAgICAqKm5hbWluZyBw
bHVnaW4gcHJvamVjdHMqKjogdGhleSBzaG91bGQgYmUgbmFtZWQgaW4gdGhlIGZvcm0gb2YKKyAg
ICBgYDxob3N0Pi08cGx1Z2luPmBgIChlLmcuIGBgcHl0ZXN0LXhkaXN0YGApLCB0aGVyZWZvcmUg
d2UgY2FsbCBvdXIKKyAgICBwbHVnaW4gKmVnZ3NhbXBsZS1zcGFtKi4KIAotUnVubmluZyB0aGlz
IGRpcmVjdGx5IGdldHMgdXM6OgorVGhlIGhvc3QKK15eXl5eXl5eCitgYGVnZ3NhbXBsZS9lZ2dz
YW1wbGUvX19pbml0X18ucHlgYAogCi0gICAgJCBweXRob24gZG9jcy9leGFtcGxlcy9maXJzdGV4
YW1wbGUucHkKKy4uIGxpdGVyYWxpbmNsdWRlOjogZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBs
ZS9fX2luaXRfXy5weQogCi0gICAgaW5zaWRlIFBsdWdpbl8yLm15aG9vaygpCi0gICAgaW5zaWRl
IFBsdWdpbl8xLm15aG9vaygpCi0gICAgWy0xLCAzXQorYGBlZ2dzYW1wbGUvZWdnc2FtcGxlL2hv
b2tzcGVjcy5weWBgCisKKy4uIGxpdGVyYWxpbmNsdWRlOjogZXhhbXBsZXMvZWdnc2FtcGxlL2Vn
Z3NhbXBsZS9ob29rc3BlY3MucHkKKworYGBlZ2dzYW1wbGUvZWdnc2FtcGxlL2xpYi5weWBgCisK
Ky4uIGxpdGVyYWxpbmNsdWRlOjogZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS9saWIucHkK
KworYGBlZ2dzYW1wbGUvZWdnc2FtcGxlL2hvc3QucHlgYAorCisuLiBsaXRlcmFsaW5jbHVkZTo6
IGV4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvaG9zdC5weQorCitgYGVnZ3NhbXBsZS9zZXR1
cC5weWBgCisKKy4uIGxpdGVyYWxpbmNsdWRlOjogZXhhbXBsZXMvZWdnc2FtcGxlL3NldHVwLnB5
CisKK0xldCdzIGdldCBjb29raW5nIC0gd2UgaW5zdGFsbCB0aGUgaG9zdCBhbmQgc2VlIHdoYXQg
YSBwcm9ncmFtIHJ1biBsb29rcyBsaWtlOjoKKworICAgICQgcGlwIGluc3RhbGwgLS1lZGl0YWJs
ZSBwbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUKKyAgICAkIGVnZ3NhbXBsZQorCisgICAg
WW91ciBmb29kLiBFbmpveSBzb21lIGVnZywgZWdnLCBzYWx0LCBlZ2csIGVnZywgcGVwcGVyLCBl
Z2cKKyAgICBTb21lIGNvbmRpbWVudHM/IFdlIGhhdmUgcGlja2xlZCB3YWxudXRzLCBzdGVhayBz
YXVjZSwgbXVzaHkgcGVhcywgbWludCBzYXVjZQorCitUaGUgcGx1Z2luCiteXl5eXl5eXl5eCitg
YGVnZ3NhbXBsZS1zcGFtL2VnZ3NhbXBsZV9zcGFtLnB5YGAKKworLi4gbGl0ZXJhbGluY2x1ZGU6
OiBleGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS9lZ2dzYW1wbGVfc3BhbS5weQorCitgYGVnZ3NhbXBs
ZS1zcGFtL3NldHVwLnB5YGAKKworLi4gbGl0ZXJhbGluY2x1ZGU6OiBleGFtcGxlcy9lZ2dzYW1w
bGUtc3BhbS9zZXR1cC5weQorCitMZXQncyBnZXQgY29va2luZyB3aXRoIG1vcmUgY29va3MgLSB3
ZSBpbnN0YWxsIHRoZSBwbHVnaW4gYW5kIGFuZCBzZWUgd2hhdAord2UgZ2V0OjoKKworICAgICQg
cGlwIGluc3RhbGwgLS1lZGl0YWJsZSBwbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUtc3Bh
bQorICAgICQgZWdnc2FtcGxlCisKKyAgICBZb3VyIGZvb2QuIEVuam95IHNvbWUgZWdnLCBsb3Zl
bHkgc3BhbSwgc2FsdCwgZWdnLCBlZ2csIGVnZywgd29uZGVyb3VzIHNwYW0sIGVnZywgcGVwcGVy
CisgICAgU29tZSBjb25kaW1lbnRzPyBXZSBoYXZlIHBpY2tsZWQgd2FsbnV0cywgbXVzaHkgcGVh
cywgbWludCBzYXVjZSwgc3BhbSBzYXVjZQorICAgIE5vdyB0aGlzIGlzIHdoYXQgSSBjYWxsIGEg
Y29uZGltZW50cyB0cmF5IQorCitNb3JlIHJlYWwgd29ybGQgZXhhbXBsZXMKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorVG8gc2VlIGhvdyBgYHBsdWdneWBgIGlzIHVzZWQgaW4gdGhlIHJlYWwg
d29ybGQsIGhhdmUgYSBsb29rIGF0IHRoZXNlIHByb2plY3RzCitkb2N1bWVudGF0aW9uIGFuZCBz
b3VyY2UgY29kZToKKworKiA6cmVmOmBweXRlc3QgPHB5dGVzdDp3cml0aW5nLXBsdWdpbnM+YAor
KiA6c3RkOmRvYzpgdG94IDx0b3g6cGx1Z2lucz5gCisqIDpzdGQ6ZG9jOmBkZXZwaSA8ZGV2cGk6
ZGV2Z3VpZGUvaW5kZXg+YAogCiBGb3IgbW9yZSBkZXRhaWxzIGFuZCBhZHZhbmNlZCB1c2FnZSBw
bGVhc2UgcmVhZCBvbi4KIAogLi4gX2RlZmluZToKIAotRGVmaW5pbmcgYW5kIENvbGxlY3Rpbmcg
SG9va3MKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1BICpwbHVnaW4qIGlzIGEgbmFt
ZXNwYWNlIHR5cGUgKGN1cnJlbnRseSBvbmUgb2YgYSBgYGNsYXNzYGAgb3IgbW9kdWxlKQotd2hp
Y2ggZGVmaW5lcyBhIHNldCBvZiAqaG9vayogZnVuY3Rpb25zLgorRGVmaW5lIGFuZCBjb2xsZWN0
IGhvb2tzCisqKioqKioqKioqKioqKioqKioqKioqKioKK0EgKnBsdWdpbiogaXMgYSA6cmVmOmBu
YW1lc3BhY2UgPHB5dGhvbjp0dXQtc2NvcGVzPmAgdHlwZSAoY3VycmVudGx5IG9uZSBvZiBhCitg
YGNsYXNzYGAgb3IgbW9kdWxlKSB3aGljaCBkZWZpbmVzIGEgc2V0IG9mICpob29rKiBmdW5jdGlv
bnMuCiAKLUFzIG1lbnRpb25lZCBpbiA6cmVmOmBtYW5hZ2VgLCBhbGwgKnBsdWdpbnMqIHdoaWNo
IGRlZmluZSAqaG9va3MqCitBcyBtZW50aW9uZWQgaW4gOnJlZjpgbWFuYWdlYCwgYWxsICpwbHVn
aW5zKiB3aGljaCBzcGVjaWZ5ICpob29rcyoKIGFyZSBtYW5hZ2VkIGJ5IGFuIGluc3RhbmNlIG9m
IGEgOnB5OmNsYXNzOmBwbHVnZ3kuUGx1Z2luTWFuYWdlcmAgd2hpY2gKIGRlZmluZXMgdGhlIHBy
aW1hcnkgYGBwbHVnZ3lgYCBBUEkuCiAKLUluIG9yZGVyIGZvciBhIGBgUGx1Z2luTWFuYWdlcmBg
IHRvIGRldGVjdCBmdW5jdGlvbnMgaW4gYSBuYW1lc3BhY2UKK0luIG9yZGVyIGZvciBhIDpweTpj
bGFzczpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyYCB0byBkZXRlY3QgZnVuY3Rpb25zIGluIGEgbmFt
ZXNwYWNlCiBpbnRlbmRlZCB0byBiZSAqaG9va3MqLCB0aGV5IG11c3QgYmUgZGVjb3JhdGVkIHVz
aW5nIHNwZWNpYWwgYGBwbHVnZ3lgYCAqbWFya3MqLgogCiAuLiBfbWFya2luZ19ob29rczoKQEAg
LTY5LDI0ICsxODQsMjUgQEAgaW50ZW5kZWQgdG8gYmUgKmhvb2tzKiwgdGhleSBtdXN0IGJlIGRl
Y29yYXRlZCB1c2luZyBzcGVjaWFsIGBgcGx1Z2d5YGAgKm1hcmtzKi4KIE1hcmtpbmcgaG9va3MK
IC0tLS0tLS0tLS0tLS0KIFRoZSA6cHk6Y2xhc3M6YH5wbHVnZ3kuSG9va3NwZWNNYXJrZXJgIGFu
ZCA6cHk6Y2xhc3M6YH5wbHVnZ3kuSG9va2ltcGxNYXJrZXJgCi1kZWNvcmF0b3JzIGFyZSB1c2Vk
IHRvICptYXJrKiBmdW5jdGlvbnMgZm9yIGRldGVjdGlvbiBieSBhIGBgUGx1Z2luTWFuYWdlcmBg
OgorZGVjb3JhdG9ycyBhcmUgdXNlZCB0byAqbWFyayogZnVuY3Rpb25zIGZvciBkZXRlY3Rpb24g
YnkgYQorOnB5OmNsYXNzOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXJgOgogCiAuLiBjb2RlLWJsb2Nr
OjogcHl0aG9uCiAKICAgICBmcm9tIHBsdWdneSBpbXBvcnQgSG9va3NwZWNNYXJrZXIsIEhvb2tp
bXBsTWFya2VyCiAKLSAgICBob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCdwcm9qZWN0X25hbWUn
KQotICAgIGhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoJ3Byb2plY3RfbmFtZScpCisgICAgaG9v
a3NwZWMgPSBIb29rc3BlY01hcmtlcigicHJvamVjdF9uYW1lIikKKyAgICBob29raW1wbCA9IEhv
b2tpbXBsTWFya2VyKCJwcm9qZWN0X25hbWUiKQogCiAKIEVhY2ggZGVjb3JhdG9yIHR5cGUgdGFr
ZXMgYSBzaW5nbGUgYGBwcm9qZWN0X25hbWVgYCBzdHJpbmcgYXMgaXRzCiBsb25lIGFyZ3VtZW50
IHRoZSB2YWx1ZSBvZiB3aGljaCBpcyB1c2VkIHRvIG1hcmsgaG9va3MgZm9yIGRldGVjdGlvbiBi
eQotYnkgYSBzaW1pbGFybHkgY29uZmlndXJlZCBgYFBsdWdpbk1hbmFnZXJgYCBpbnN0YW5jZS4K
K2Egc2ltaWxhcmx5IGNvbmZpZ3VyZWQgOnB5OmNsYXNzOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXJg
IGluc3RhbmNlLgogCiBUaGF0IGlzLCBhICptYXJrKiB0eXBlIGNhbGxlZCB3aXRoIGBgcHJvamVj
dF9uYW1lYGAgcmV0dXJucyBhbiBvYmplY3Qgd2hpY2gKIGNhbiBiZSB1c2VkIHRvIGRlY29yYXRl
IGZ1bmN0aW9ucyB3aGljaCB3aWxsIHRoZW4gYmUgZGV0ZWN0ZWQgYnkgYQotYGBQbHVnaW5NYW5h
Z2VyYGAgd2hpY2ggd2FzIGluc3RhbnRpYXRlZCB3aXRoIHRoZSB0aGUgc2FtZSBgYHByb2plY3Rf
bmFtZWBgCi12YWx1ZS4KKzpweTpjbGFzczpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyYCB3aGljaCB3
YXMgaW5zdGFudGlhdGVkIHdpdGggdGhlIHNhbWUKK2BgcHJvamVjdF9uYW1lYGAgdmFsdWUuCiAK
IEZ1cnRoZXJtb3JlLCBlYWNoICpob29raW1wbCogb3IgKmhvb2tzcGVjKiBkZWNvcmF0b3IgY2Fu
IGNvbmZpZ3VyZSB0aGUKIHVuZGVybHlpbmcgY2FsbC10aW1lIGJlaGF2aW9yIG9mIGVhY2ggKmhv
b2sqIG9iamVjdCBieSBwcm92aWRpbmcgc3BlY2lhbApAQCAtOTUsOCArMjExLDggQEAgdW5kZXJs
eWluZyBjYWxsLXRpbWUgYmVoYXZpb3Igb2YgZWFjaCAqaG9vayogb2JqZWN0IGJ5IHByb3ZpZGlu
ZyBzcGVjaWFsCiAKIC4uIG5vdGU6OgogICAgIFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgY29ycmVz
cG9uZCB0byBzaW1pbGFyIGRvY3VtZW50YXRpb24gaW4KLSAgICBgYHB5dGVzdGBgIGZvciBgV3Jp
dGluZyBob29rIGZ1bmN0aW9uc2BfIGFuZCBjYW4gYmUgdXNlZAotICAgIGFzIGEgc3VwcGxlbWVu
dGFyeSByZXNvdXJjZS4KKyAgICBgYHB5dGVzdGBgIGZvciA6cmVmOmBweXRlc3Q6d3JpdGluZ2hv
b2tzYCBhbmQgY2FuIGJlIHVzZWQgYXMKKyAgICBhIHN1cHBsZW1lbnRhcnkgcmVzb3VyY2UuCiAK
IC4uIF9pbXBsczoKIApAQCAtMTEzLDcgKzIyOSw4IEBAIHdoaWNoIGhhcyBiZWVuIGFwcHJvcHJp
YXRlbHkgbWFya2VkLgogICAgIGltcG9ydCBzeXMKICAgICBmcm9tIHBsdWdneSBpbXBvcnQgUGx1
Z2luTWFuYWdlciwgSG9va2ltcGxNYXJrZXIKIAotICAgIGhvb2tpbXBsID0gSG9va2ltcGxNYXJr
ZXIoJ215cHJvamVjdCcpCisgICAgaG9va2ltcGwgPSBIb29raW1wbE1hcmtlcigibXlwcm9qZWN0
IikKKwogCiAgICAgQGhvb2tpbXBsCiAgICAgZGVmIHNldHVwX3Byb2plY3QoY29uZmlnLCBhcmdz
KToKQEAgLTEyNSw3ICsyNDIsOCBAQCB3aGljaCBoYXMgYmVlbiBhcHByb3ByaWF0ZWx5IG1hcmtl
ZC4KIAogICAgICAgICByZXR1cm4gY29uZmlnCiAKLSAgICBwbSA9IFBsdWdpbk1hbmFnZXIoJ215
cHJvamVjdCcpCisKKyAgICBwbSA9IFBsdWdpbk1hbmFnZXIoIm15cHJvamVjdCIpCiAKICAgICAj
IGxvYWQgYWxsIGhvb2tpbXBscyBmcm9tIHRoZSBsb2NhbCBtb2R1bGUncyBuYW1lc3BhY2UKICAg
ICBwbHVnaW5fbmFtZSA9IHBtLnJlZ2lzdGVyKHN5cy5tb2R1bGVzW19fbmFtZV9fXSkKQEAgLTEz
NCw3ICsyNTIsNyBAQCB3aGljaCBoYXMgYmVlbiBhcHByb3ByaWF0ZWx5IG1hcmtlZC4KIAogT3B0
aW9uYWwgdmFsaWRhdGlvbgogXl5eXl5eXl5eXl5eXl5eXl5eXgotTm9ybWFsbHkgZWFjaCAqaG9v
a2ltcGwqIHNob3VsZCBiZSB2YWxpZGF0ZWQgYSBhZ2FpbnN0IGEgY29ycmVzcG9uZGluZworTm9y
bWFsbHkgZWFjaCAqaG9va2ltcGwqIHNob3VsZCBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBhIGNvcnJl
c3BvbmRpbmcKIGhvb2sgOnJlZjpgc3BlY2lmaWNhdGlvbiA8c3BlY3M+YC4gSWYgeW91IHdhbnQg
dG8gbWFrZSBhbiBleGNlcHRpb24KIHRoZW4gdGhlICpob29raW1wbCogc2hvdWxkIGJlIG1hcmtl
ZCB3aXRoIHRoZSBgYCJvcHRpb25hbGhvb2siYGAgb3B0aW9uOgogCkBAIC0xNjIsNyArMjgwLDgg
QEAgd2lsbCBiZSBleGVjdXRlZCAqZmlyc3QqIG9yICpsYXN0KiByZXNwZWN0aXZlbHkgaW4gdGhl
IGhvb2sgY2FsbCBsb29wOgogICAgIGltcG9ydCBzeXMKICAgICBmcm9tIHBsdWdneSBpbXBvcnQg
UGx1Z2luTWFuYWdlciwgSG9va2ltcGxNYXJrZXIKIAotICAgIGhvb2tpbXBsID0gSG9va2ltcGxN
YXJrZXIoJ215cHJvamVjdCcpCisgICAgaG9va2ltcGwgPSBIb29raW1wbE1hcmtlcigibXlwcm9q
ZWN0IikKKwogCiAgICAgQGhvb2tpbXBsKHRyeWxhc3Q9VHJ1ZSkKICAgICBkZWYgc2V0dXBfcHJv
amVjdChjb25maWcsIGFyZ3MpOgpAQCAtMTc3LDggKzI5Niw5IEBAIHdpbGwgYmUgZXhlY3V0ZWQg
KmZpcnN0KiBvciAqbGFzdCogcmVzcGVjdGl2ZWx5IGluIHRoZSBob29rIGNhbGwgbG9vcDoKICAg
ICBjbGFzcyBTb21lT3RoZXJQbHVnaW4ob2JqZWN0KToKICAgICAgICAgIiIiU29tZSBvdGhlciBw
bHVnaW4gZGVmaW5pbmcgdGhlIHNhbWUgaG9vay4KICAgICAgICAgIiIiCisKICAgICAgICAgQGhv
b2tpbXBsKHRyeWZpcnN0PVRydWUpCi0gICAgICAgIGRlZiBzZXR1cF9wcm9qZWN0KGNvbmZpZywg
YXJncyk6CisgICAgICAgIGRlZiBzZXR1cF9wcm9qZWN0KHNlbGYsIGNvbmZpZywgYXJncyk6CiAg
ICAgICAgICAgICAiIiJSZXBvcnQgd2hhdCBhcmdzIHdlcmUgcGFzc2VkIGJlZm9yZSBjYWxsaW5n
CiAgICAgICAgICAgICBkb3duc3RyZWFtIGhvb2tzLgogICAgICAgICAgICAgIiIiCkBAIC0xODcs
MTIgKzMwNywxMyBAQCB3aWxsIGJlIGV4ZWN1dGVkICpmaXJzdCogb3IgKmxhc3QqIHJlc3BlY3Rp
dmVseSBpbiB0aGUgaG9vayBjYWxsIGxvb3A6CiAKICAgICAgICAgICAgIHJldHVybiBjb25maWcK
IAotICAgIHBtID0gUGx1Z2luTWFuYWdlcignbXlwcm9qZWN0JykKKworICAgIHBtID0gUGx1Z2lu
TWFuYWdlcigibXlwcm9qZWN0IikKIAogICAgICMgbG9hZCBmcm9tIHRoZSBsb2NhbCBtb2R1bGUn
cyBuYW1lc3BhY2UKICAgICBwbS5yZWdpc3RlcihzeXMubW9kdWxlc1tfX25hbWVfX10pCiAgICAg
IyBsb2FkIGEgcGx1Z2luIGRlZmluZWQgb24gYSBjbGFzcwotICAgIHBtLnJlZ2lzdGVyKFNvbWVQ
bHVnaW4oKSkKKyAgICBwbS5yZWdpc3RlcihTb21lT3RoZXJQbHVnaW4oKSkKIAogRm9yIGFub3Ro
ZXIgZXhhbXBsZSBzZWUgdGhlIGBob29rIGZ1bmN0aW9uIG9yZGVyaW5nYF8gc2VjdGlvbiBvZiB0
aGUKIGBgcHl0ZXN0YGAgZG9jcy4KQEAgLTIwMSw2ICszMjIsOSBAQCBGb3IgYW5vdGhlciBleGFt
cGxlIHNlZSB0aGUgYGhvb2sgZnVuY3Rpb24gb3JkZXJpbmdgXyBzZWN0aW9uIG9mIHRoZQogICAg
IGBgdHJ5Zmlyc3RgYCBhbmQgYGB0cnlsYXN0YGAgaG9va3MgYXJlIHN0aWxsIGludm9rZWQgaW4g
TElGTyBvcmRlciB3aXRoaW4KICAgICBlYWNoIGNhdGVnb3J5LgogCisKKy4uIF9ob29rd3JhcHBl
cnM6CisKIFdyYXBwZXJzCiBeXl5eXl5eXgogQSAqaG9va2ltcGwqIGNhbiBiZSBtYXJrZWQgd2l0
aCBhIGBgImhvb2t3cmFwcGVyImBgIG9wdGlvbiB3aGljaCBpbmRpY2F0ZXMgdGhhdApAQCAtMjA4
LDcgKzMzMiw3IEBAIHRoZSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB0byAqd3JhcCogKG9yIHN1
cnJvdW5kKSBhbGwgb3RoZXIgbm9ybWFsICpob29raW1wbCoKIGNhbGxzLiBBICpob29rd3JhcHBl
ciogY2FuIHRodXMgZXhlY3V0ZSBzb21lIGNvZGUgYWhlYWQgYW5kIGFmdGVyIHRoZSBleGVjdXRp
b24KIG9mIGFsbCBjb3JyZXNwb25kaW5nIG5vbi13cmFwcHBlciAqaG9va2ltcGxzKi4KIAotTXVj
aCBpbiB0aGUgc2FtZSB3YXkgYXMgYSBgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXJgXywgKmhv
b2t3cmFwcGVycyogbXVzdAorTXVjaCBpbiB0aGUgc2FtZSB3YXkgYXMgYSA6cHk6ZnVuYzpgQGNv
bnRleHRsaWIuY29udGV4dG1hbmFnZXIgPHB5dGhvbjpjb250ZXh0bGliLmNvbnRleHRtYW5hZ2Vy
PmAsICpob29rd3JhcHBlcnMqIG11c3QKIGJlIGltcGxlbWVudGVkIGFzIGdlbmVyYXRvciBmdW5j
dGlvbiB3aXRoIGEgc2luZ2xlIGBgeWllbGRgYCBpbiBpdHMgYm9keToKIAogCkBAIC0yMjAsOCAr
MzQ0LDcgQEAgYmUgaW1wbGVtZW50ZWQgYXMgZ2VuZXJhdG9yIGZ1bmN0aW9uIHdpdGggYSBzaW5n
bGUgYGB5aWVsZGBgIGluIGl0cyBib2R5OgogICAgICAgICBzaG91bGQgcmV0dXJuIGpzb24gZW5j
b2RlZCBjb25maWcgb3B0aW9ucy4KICAgICAgICAgIiIiCiAgICAgICAgIGlmIGNvbmZpZy5kZWJ1
ZzoKLSAgICAgICAgICAgIHByaW50KCJQcmUtaG9vayBjb25maWcgaXMge30iLmZvcm1hdCgKLSAg
ICAgICAgICAgICAgICBjb25maWcudG9qc29uKCkpKQorICAgICAgICAgICAgcHJpbnQoIlByZS1o
b29rIGNvbmZpZyBpcyB7fSIuZm9ybWF0KGNvbmZpZy50b2pzb24oKSkpCiAKICAgICAgICAgIyBn
ZXQgaW5pdGlhbCBkZWZhdWx0IGNvbmZpZwogICAgICAgICBkZWZhdWx0cyA9IGNvbmZpZy50b2pz
b24oKQpAQCAtMjMzLDE3ICszNTYsMTYgQEAgYmUgaW1wbGVtZW50ZWQgYXMgZ2VuZXJhdG9yIGZ1
bmN0aW9uIHdpdGggYSBzaW5nbGUgYGB5aWVsZGBgIGluIGl0cyBib2R5OgogICAgICAgICAgICAg
cHJpbnQoIkpTT04gY29uZmlnIG92ZXJyaWRlIGlzIHt9Ii5mb3JtYXQoaXRlbSkpCiAKICAgICAg
ICAgaWYgY29uZmlnLmRlYnVnOgotICAgICAgICAgICAgcHJpbnQoIlBvc3QtaG9vayBjb25maWcg
aXMge30iLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBjb25maWcudG9qc29uKCkpKQorICAgICAg
ICAgICAgcHJpbnQoIlBvc3QtaG9vayBjb25maWcgaXMge30iLmZvcm1hdChjb25maWcudG9qc29u
KCkpKQogCiAgICAgICAgIGlmIGNvbmZpZy51c2VfZGVmYXVsdHM6CiAgICAgICAgICAgICBvdXRj
b21lLmZvcmNlX3Jlc3VsdChkZWZhdWx0cykKIAotVGhlIGdlbmVyYXRvciBpcyBgc2VudGBfIGEg
OnB5OmNsYXNzOmBwbHVnZ3kuX1Jlc3VsdGAgb2JqZWN0IHdoaWNoIGNhbgorVGhlIGdlbmVyYXRv
ciBpcyA6cHk6bWV0aDpgc2VudCA8cHl0aG9uOmdlbmVyYXRvci5zZW5kPmAgYSA6cHk6Y2xhc3M6
YHBsdWdneS5jYWxsZXJzLl9SZXN1bHRgIG9iamVjdCB3aGljaCBjYW4KIGJlIGFzc2lnbmVkIGlu
IHRoZSBgYHlpZWxkYGAgZXhwcmVzc2lvbiBhbmQgdXNlZCB0byBvdmVycmlkZSBvciBpbnNwZWN0
CiB0aGUgZmluYWwgcmVzdWx0KHMpIHJldHVybmVkIGJhY2sgdG8gdGhlIGNhbGxlciB1c2luZyB0
aGUKLTpweTptZXRoOmB+cGx1Z2d5Ll9SZXN1bHQuZm9yY2VfcmVzdWx0YCBvcgotOnB5Om1ldGg6
YH5wbHVnZ3kuX1Jlc3VsdC5nZXRfcmVzdWx0YCBtZXRob2RzLgorOnB5Om1ldGg6YH5wbHVnZ3ku
Y2FsbGVycy5fUmVzdWx0LmZvcmNlX3Jlc3VsdGAgb3IKKzpweTptZXRoOmB+cGx1Z2d5LmNhbGxl
cnMuX1Jlc3VsdC5nZXRfcmVzdWx0YCBtZXRob2RzLgogCiAuLiBub3RlOjoKICAgICBIb29rIHdy
YXBwZXJzIGNhbiAqKm5vdCoqIHJldHVybiByZXN1bHRzIChhcyBwZXIgZ2VuZXJhdG9yIGZ1bmN0
aW9uCkBAIC0yNzMsMTUgKzM5NSwxNyBAQCBzaG91bGQgYmUgYWRkZWQgYmVmb3JlIHJlZ2lzdGVy
aW5nIGNvcnJlc3BvbmRpbmcgKmhvb2tpbXBscyo6CiAgICAgaW1wb3J0IHN5cwogICAgIGZyb20g
cGx1Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBIb29rc3BlY01hcmtlcgogCi0gICAgaG9va3Nw
ZWMgPSBIb29rc3BlY01hcmtlcignbXlwcm9qZWN0JykKKyAgICBob29rc3BlYyA9IEhvb2tzcGVj
TWFya2VyKCJteXByb2plY3QiKQorCiAKICAgICBAaG9va3NwZWMKICAgICBkZWYgc2V0dXBfcHJv
amVjdChjb25maWcsIGFyZ3MpOgotICAgICAgICAiIiJUaGlzIGhvb2sgaXMgdXNlZCB0byBwcm9j
ZXNzIHRoZSBpbml0YWwgY29uZmlnIGFuZCBpbnB1dAorICAgICAgICAiIiJUaGlzIGhvb2sgaXMg
dXNlZCB0byBwcm9jZXNzIHRoZSBpbml0aWFsIGNvbmZpZyBhbmQgaW5wdXQKICAgICAgICAgYXJn
dW1lbnRzLgogICAgICAgICAiIiIKIAotICAgIHBtID0gUGx1Z2luTWFuYWdlcignbXlwcm9qZWN0
JykKKworICAgIHBtID0gUGx1Z2luTWFuYWdlcigibXlwcm9qZWN0IikKIAogICAgICMgbG9hZCBm
cm9tIHRoZSBsb2NhbCBtb2R1bGUncyBuYW1lc3BhY2UKICAgICBwbS5hZGRfaG9va3NwZWNzKHN5
cy5tb2R1bGVzW19fbmFtZV9fXSkKQEAgLTMyMyw2ICs0NDcsNyBAQCBJbiBvdGhlciB3b3JkcyB0
aGlzIGlzIG9rOgogICAgIGRlZiBteWhvb2soY29uZmlnLCBhcmdzKToKICAgICAgICAgcGFzcwog
CisKICAgICBAaG9va2ltcGwKICAgICBkZWYgbXlob29rKGFyZ3MpOgogICAgICAgICBwcmludChh
cmdzKQpAQCAtMzM2LDEwICs0NjEsMTYgQEAgd2hlcmVhcyB0aGlzIGlzIG5vdDoKICAgICBkZWYg
bXlob29rKGNvbmZpZywgYXJncyk6CiAgICAgICAgIHBhc3MKIAorCiAgICAgQGhvb2tpbXBsCiAg
ICAgZGVmIG15aG9vayhjb25maWcsIGFyZ3MsIGV4dHJhX2FyZyk6CiAgICAgICAgIHByaW50KGFy
Z3MpCiAKKy4uIG5vdGU6OgorICAgIFRoZSBvbmUgZXhjZXB0aW9uIHRvIHRoaXMgcnVsZSAodGhh
dCBhICpob29rc3BlYyogbXVzdCBoYXZlIGFzIGxlYXN0IGFzCisgICAgbWFueSBhcmd1bWVudHMg
YXMgaXRzICpob29raW1wbHMqKSBpcyB0aGUgY29udmVudGlvbmFsIDpyZWY6YHNlbGYgPHB5dGhv
bjp0dXQtcmVtYXJrcz5gIGFyZzsgdGhpcworICAgIGlzIGFsd2F5cyBpZ25vcmVkIHdoZW4gKmhv
b2tpbXBscyogYXJlIGRlZmluZWQgYXMgOnJlZjpgbWV0aG9kcyA8cHl0aG9uOnR1dC1tZXRob2Rv
YmplY3RzPmAuCisKIC4uIF9maXJzdHJlc3VsdDoKIAogRmlyc3QgcmVzdWx0IG9ubHkKQEAgLTM1
NywxNSArNDg4LDE2IEBAIHRoZW4gYGBOb25lYGAuCiBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIG9w
dGltaXppbmcgYSBjYWxsIGxvb3AgZm9yIHdoaWNoIHlvdSBhcmUgb25seQogaW50ZXJlc3RlZCBp
biBhIHNpbmdsZSBjb3JlICpob29raW1wbCouIEFuIGV4YW1wbGUgaXMgdGhlCiBgcHl0ZXN0X2Nt
ZGxpbmVfbWFpbmBfIGNlbnRyYWwgcm91dGluZSBvZiBgYHB5dGVzdGBgLgorTm90ZSB0aGF0IGFs
bCBgYGhvb2t3cmFwcGVyc2BgIGFyZSBzdGlsbCBpbnZva2VkIHdpdGggdGhlIGZpcnN0IHJlc3Vs
dC4KIAotQWxzbyBzZWUgdGhlIGBmaXJzdCByZXN1bHRgXyBzZWN0aW9uIGluIHRoZSBgYHB5dGVz
dGBgIGRvY3MuCitBbHNvIHNlZSB0aGUgOnJlZjpgcHl0ZXN0OmZpcnN0cmVzdWx0YCBzZWN0aW9u
IGluIHRoZSBgYHB5dGVzdGBgIGRvY3MuCiAKIC4uIF9oaXN0b3JpYzoKIAogSGlzdG9yaWMgaG9v
a3MKIF5eXl5eXl5eXl5eXl5eCiBZb3UgY2FuIG1hcmsgYSAqaG9va3NwZWMqIGFzIGJlaW5nICpo
aXN0b3JpYyogbWVhbmluZyB0aGF0IHRoZSBob29rCi1jYW4gYmUgY2FsbGVkIHdpdGggOnB5Om1l
dGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5jYWxsX2hpc3RvcmljKClgICoqYmVmb3JlKioKK2Nh
biBiZSBjYWxsZWQgd2l0aCA6cHk6bWV0aDpgfnBsdWdneS5ob29rcy5fSG9va0NhbGxlci5jYWxs
X2hpc3RvcmljKClgICoqYmVmb3JlKioKIGhhdmluZyBiZWVuIHJlZ2lzdGVyZWQ6CiAKIC4uIGNv
ZGUtYmxvY2s6OiBweXRob24KQEAgLTM3NSw3ICs1MDcsNyBAQCBoYXZpbmcgYmVlbiByZWdpc3Rl
cmVkOgogICAgICAgICBwYXNzCiAKIFRoZSBpbXBsaWNhdGlvbiBpcyB0aGF0IGxhdGUgcmVnaXN0
ZXJlZCAqaG9va2ltcGxzKiB3aWxsIGJlIGNhbGxlZCBiYWNrCi1pbW1lZGlhdGVseSBhdCByZWdp
c3RlciB0aW1lIGFuZCAqKmNhbiBub3QqKiByZXR1cm4gYSByZXN1bHQgdG8gdGhlIGNhbGxlci4q
KgoraW1tZWRpYXRlbHkgYXQgcmVnaXN0ZXIgdGltZSBhbmQgKipjYW4gbm90KiogcmV0dXJuIGEg
cmVzdWx0IHRvIHRoZSBjYWxsZXIuCiAKIFRoaXMgdHVybnMgb3V0IHRvIGJlIHBhcnRpY3VsYXJs
eSB1c2VmdWwgd2hlbiBkZWFsaW5nIHdpdGggbGF6eSBvcgogZHluYW1pY2FsbHkgbG9hZGVkIHBs
dWdpbnMuCkBAIC0zODMsNTcgKzUxNSw1NiBAQCBkeW5hbWljYWxseSBsb2FkZWQgcGx1Z2lucy4K
IEZvciBtb3JlIGluZm8gc2VlIDpyZWY6YGNhbGxfaGlzdG9yaWNgLgogCiAKLS4uIGxpbmtzCi0u
LiBfQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXI6Ci0gICAgaHR0cHM6Ly9kb2NzLnB5dGhvbi5v
cmcvMy42L2xpYnJhcnkvY29udGV4dGxpYi5odG1sI2NvbnRleHRsaWIuY29udGV4dG1hbmFnZXIK
LS4uIF9weXRlc3RfY21kbGluZV9tYWluOgotICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9ibG9iL21hc3Rlci9fcHl0ZXN0L2hvb2tzcGVjLnB5I0w4MAotLi4gX2hvb2tz
cGVjIG1vZHVsZToKLSAgICBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvYmxv
Yi9tYXN0ZXIvX3B5dGVzdC9ob29rc3BlYy5weQotLi4gX1dyaXRpbmcgaG9vayBmdW5jdGlvbnM6
Ci0gICAgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5nX3BsdWdpbnMuaHRt
bCN3cml0aW5nLWhvb2stZnVuY3Rpb25zCi0uLiBfaG9va3dyYXBwZXI6Ci0gICAgaHR0cDovL2Rv
Yy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5nX3BsdWdpbnMuaHRtbCNob29rd3JhcHBlci1l
eGVjdXRpbmctYXJvdW5kLW90aGVyLWhvb2tzCi0uLiBfaG9vayBmdW5jdGlvbiBvcmRlcmluZzoK
LSAgICBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dyaXRpbmdfcGx1Z2lucy5odG1s
I2hvb2stZnVuY3Rpb24tb3JkZXJpbmctY2FsbC1leGFtcGxlCi0uLiBfZmlyc3QgcmVzdWx0Ogot
ICAgIGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvd3JpdGluZ19wbHVnaW5zLmh0bWwj
Zmlyc3RyZXN1bHQtc3RvcC1hdC1maXJzdC1ub24tbm9uZS1yZXN1bHQKLS4uIF9zZW50OgotICAg
IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvcmVmZXJlbmNlL2V4cHJlc3Npb25zLmh0bWwjZ2Vu
ZXJhdG9yLnNlbmQKK1dhcm5pbmdzIG9uIGhvb2sgaW1wbGVtZW50YXRpb24KK15eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXl4KKworQXMgcHJvamVjdHMgZXZvbHZlIG5ldyBob29rcyBtYXkg
YmUgaW50cm9kdWNlZCBhbmQvb3IgZGVwcmVjYXRlZC4KKworaWYgYSBob29rc3BlYyBzcGVjaWZp
ZXMgYSBgYHdhcm5fb25faW1wbGBgLCBwbHVnZ3kgd2lsbCB0cmlnZ2VyIGl0IGZvciBhbnkgcGx1
Z2luIGltcGxlbWVudGluZyB0aGUgaG9vay4KKworCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisK
KyAgICBAaG9va3NwZWMoCisgICAgICAgIHdhcm5fb25faW1wbD1EZXByZWNhdGlvbldhcm5pbmco
Im9sZGhvb2sgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIHNvb24iKQorICAgICkK
KyAgICBkZWYgb2xkaG9vaygpOgorICAgICAgICBwYXNzCiAKIC4uIF9tYW5hZ2U6CiAKLVRoZSBQ
bHVnaW4gUmVnaXN0cnkKK1RoZSBQbHVnaW4gcmVnaXN0cnkKICoqKioqKioqKioqKioqKioqKioK
IGBgcGx1Z2d5YGAgbWFuYWdlcyBwbHVnaW5zIHVzaW5nIGluc3RhbmNlcyBvZiB0aGUKIDpweTpj
bGFzczpgcGx1Z2d5LlBsdWdpbk1hbmFnZXJgLgogCi1BIGBgUGx1Z2luTWFuYWdlcmBgIGlzIGlu
c3RhbnRpYXRlZCB3aXRoIGEgc2luZ2xlCitBIDpweTpjbGFzczpgfnBsdWdneS5QbHVnaW5NYW5h
Z2VyYCBpcyBpbnN0YW50aWF0ZWQgd2l0aCBhIHNpbmdsZQogYGBzdHJgYCBhcmd1bWVudCwgdGhl
IGBgcHJvamVjdF9uYW1lYGA6CiAKIC4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIGltcG9y
dCBwbHVnZ3kKLSAgICBwbSA9IHBsdWdneS5QbHVnaW5NYW5hZ2VyKCdteV9wcm9qZWN0X25hbWUn
KQorCisgICAgcG0gPSBwbHVnZ3kuUGx1Z2luTWFuYWdlcigibXlfcHJvamVjdF9uYW1lIikKIAog
Ci1UaGUgYGBwcm9qZWN0X25hbWVgYCB2YWx1ZSBpcyB1c2VkIHdoZW4gYSBgYFBsdWdpbk1hbmFn
ZXJgYCBzY2FucyBmb3IgKmhvb2sqCi1mdW5jdGlvbnMgOnJlZjpgZGVmaW5lZCBvbiBhIHBsdWdp
biA8ZGVmaW5lPmAuCi1UaGlzIGFsbG93cyBmb3IgbXVsdGlwbGUKLXBsdWdpbiBtYW5hZ2VycyBm
cm9tIG11bHRpcGxlIHByb2plY3RzIHRvIGRlZmluZSBob29rcyBhbG9uZ3NpZGUgZWFjaCBvdGhl
ci4KK1RoZSBgYHByb2plY3RfbmFtZWBgIHZhbHVlIGlzIHVzZWQgd2hlbiBhIDpweTpjbGFzczpg
fnBsdWdneS5QbHVnaW5NYW5hZ2VyYAorc2NhbnMgZm9yICpob29rKiBmdW5jdGlvbnMgOnJlZjpg
ZGVmaW5lZCBvbiBhIHBsdWdpbiA8ZGVmaW5lPmAuCitUaGlzIGFsbG93cyBmb3IgbXVsdGlwbGUg
cGx1Z2luIG1hbmFnZXJzIGZyb20gbXVsdGlwbGUgcHJvamVjdHMKK3RvIGRlZmluZSBob29rcyBh
bG9uZ3NpZGUgZWFjaCBvdGhlci4KIAogCiBSZWdpc3RyYXRpb24KIC0tLS0tLS0tLS0tLQotRWFj
aCBgYFBsdWdpbk1hbmFnZXJgYCBtYWludGFpbnMgYSAqcGx1Z2luKiByZWdpc3RyeSB3aGVyZSBl
YWNoICpwbHVnaW4qCitFYWNoIDpweTpjbGFzczpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyYCBtYWlu
dGFpbnMgYSAqcGx1Z2luKiByZWdpc3RyeSB3aGVyZSBlYWNoICpwbHVnaW4qCiBjb250YWlucyBh
IHNldCBvZiAqaG9va2ltcGwqIGRlZmluaXRpb25zLiBMb2FkaW5nICpob29raW1wbCogYW5kICpo
b29rc3BlYyoKIGRlZmluaXRpb25zIHRvIHBvcHVsYXRlIHRoZSByZWdpc3RyeSBpcyBkZXNjcmli
ZWQgaW4gZGV0YWlsIGluIHRoZSBzZWN0aW9uIG9uCiA6cmVmOmBkZWZpbmVgLgogCiBJbiBzdW1t
YXJ5LCB5b3UgcGFzcyBhIHBsdWdpbiBuYW1lc3BhY2Ugb2JqZWN0IHRvIHRoZQogOnB5Om1ldGg6
YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5yZWdpc3RlcigpYCBhbmQKLTpweTptZXRoOmB+cGx1Z2d5
LlBsdWdpbk1hbmFnZXIuYWRkX2hvb2tzcGVjKClgIG1ldGhvZHMgdG8gY29sbGVjdAotaG9vayAq
aW1wbGVtZW50YXRpb25zKiBhbmQgKnNwZWNmaWNhdGlvbnMqIGZyb20gKnBsdWdpbiogbmFtZXNw
YWNlcyByZXNwZWN0aXZlbHkuCis6cHk6bWV0aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLmFkZF9o
b29rc3BlY3MoKWAgbWV0aG9kcyB0byBjb2xsZWN0Citob29rICppbXBsZW1lbnRhdGlvbnMqIGFu
ZCAqc3BlY2lmaWNhdGlvbnMqIGZyb20gKnBsdWdpbiogbmFtZXNwYWNlcyByZXNwZWN0aXZlbHku
CiAKIFlvdSBjYW4gdW5yZWdpc3RlciBhbnkgKnBsdWdpbioncyBob29rcyB1c2luZwogOnB5Om1l
dGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci51bnJlZ2lzdGVyKClgIGFuZCBjaGVjayBpZiBhIHBs
dWdpbiBpcwpAQCAtNDQyLDExICs1NzMsMTIgQEAgcmVnaXN0ZXJlZCBieSBwYXNzaW5nIGl0cyBu
YW1lIHRvIHRoZQogCiBMb2FkaW5nIGBgc2V0dXB0b29sc2BgIGVudHJ5IHBvaW50cwogXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KLVlvdSBjYW4gYXV0b21hdGljYWxseSBsb2Fk
IHBsdWdpbnMgcmVnaXN0ZXJlZCB0aHJvdWdoIGBzZXR1cHRvb2xzIGVudHJ5IHBvaW50c2BfCitZ
b3UgY2FuIGF1dG9tYXRpY2FsbHkgbG9hZCBwbHVnaW5zIHJlZ2lzdGVyZWQgdGhyb3VnaAorOnJl
Zjpgc2V0dXB0b29scyBlbnRyeSBwb2ludHMgPHNldHVwdG9vbHM6ZW50cnkgcG9pbnRzPmAKIHdp
dGggdGhlIDpweTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXIubG9hZF9zZXR1cHRvb2xzX2Vu
dHJ5cG9pbnRzKClgCiBtZXRob2QuCiAKLUFuIGV4YW1wbGUgdXNlIG9mIHRoaXMgaXMgdGhlIGBw
eXRlc3QgZW50cnkgcG9pbnRgXy4KK0FuIGV4YW1wbGUgdXNlIG9mIHRoaXMgaXMgdGhlIDpyZWY6
YHB5dGVzdCBlbnRyeSBwb2ludCA8cHl0ZXN0OnBpcC1pbnN0YWxsYWJsZSBwbHVnaW5zPmAuCiAK
IAogQmxvY2tpbmcKQEAgLTQ1OCw3ICs1OTAsNyBAQCBZb3UgY2FuIGJsb2NrIGFueSBwbHVnaW4g
ZnJvbSBiZWluZyByZWdpc3RlcmVkIHVzaW5nCiAKIEluc3BlY3Rpb24KIC0tLS0tLS0tLS0KLVlv
dSBjYW4gdXNlIGEgdmFyaWV0eSBvZiBtZXRob2RzIHRvIGluc3BlY3QgdGhlIGJvdGggdGhlIHJl
Z2lzdHJ5CitZb3UgY2FuIHVzZSBhIHZhcmlldHkgb2YgbWV0aG9kcyB0byBpbnNwZWN0IGJvdGgg
dGhlIHJlZ2lzdHJ5CiBhbmQgcGFydGljdWxhciBwbHVnaW5zIGluIGl0OgogCiAtIDpweTptZXRo
OmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXIubGlzdF9uYW1lX3BsdWdpbigpYCAtCkBAIC00NzcsMjgg
KzYwOSwyMiBAQCBZb3UgY2FuIHJldHJpZXZlIHRoZSAqb3B0aW9ucyogYXBwbGllZCB0byBhIHBh
cnRpY3VsYXIKIDpweTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXIucGFyc2VfaG9va3NwZWNf
b3B0cygpYCBhbmQKIDpweTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXIucGFyc2VfaG9va2lt
cGxfb3B0cygpYCByZXNwZWN0aXZlbHkuCiAKLS4uIGxpbmtzCi0uLiBfc2V0dXB0b29scyBlbnRy
eSBwb2ludHM6Ci0gICAgaHR0cDovL3NldHVwdG9vbHMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0
L3NldHVwdG9vbHMuaHRtbCNkeW5hbWljLWRpc2NvdmVyeS1vZi1zZXJ2aWNlcy1hbmQtcGx1Z2lu
cwotLi4gX3B5dGVzdCBlbnRyeSBwb2ludDoKLSAgICBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L3dyaXRpbmdfcGx1Z2lucy5odG1sI3NldHVwdG9vbHMtZW50cnktcG9pbnRzCi0KIAog
Li4gX2NhbGxpbmc6CiAKLUNhbGxpbmcgSG9va3MKK0NhbGxpbmcgaG9va3MKICoqKioqKioqKioq
KioKIFRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgYGBwbHVnZ3lgYCBlbmFibGVzIGFuIGV4dGVu
c2lvbiBwcm92aWRlcgogdG8gb3ZlcnJpZGUgZnVuY3Rpb24gY2FsbHMgbWFkZSBhdCBjZXJ0YWlu
IHBvaW50cyB0aHJvdWdob3V0IGEgcHJvZ3JhbS4KIAogQSBwYXJ0aWN1bGFyICpob29rKiBpcyBp
bnZva2VkIGJ5IGNhbGxpbmcgYW4gaW5zdGFuY2Ugb2YKLWEgOnB5OmNsYXNzOmBwbHVnZ3kuX0hv
b2tDYWxsZXJgIHdoaWNoIGluIHR1cm4gKmxvb3BzKiB0aHJvdWdoIHRoZQorYSA6cHk6Y2xhc3M6
YHBsdWdneS5ob29rcy5fSG9va0NhbGxlcmAgd2hpY2ggaW4gdHVybiAqbG9vcHMqIHRocm91Z2gg
dGhlCiBgYDE6TmBgIHJlZ2lzdGVyZWQgKmhvb2tpbXBscyogYW5kIGNhbGxzIHRoZW0gaW4gc2Vx
dWVuY2UuCiAKLUV2ZXJ5IDpweTpjbGFzczpgcGx1Z2d5LlBsdWdpbk1hbmFnZXJgIGhhcyBhIGBg
aG9va2BgIGF0dHJpYnV0ZQotd2hpY2ggaXMgYW4gaW5zdGFuY2Ugb2YgdGhpcyA6cHk6Y2xhc3M6
YHBsdWdneS5fSG9va1JlbGF5YC4KLVRoZSBgYF9Ib29rUmVsYXlgYCBpdHNlbGYgY29udGFpbnMg
cmVmZXJlbmNlcyAoYnkgaG9vayBuYW1lKSB0byBlYWNoCi1yZWdpc3RlcmVkICpob29raW1wbCon
cyBgYF9Ib29rQ2FsbGVyYGAgaW5zdGFuY2UuCitFdmVyeSA6cHk6Y2xhc3M6YH5wbHVnZ3kuUGx1
Z2luTWFuYWdlcmAgaGFzIGEgYGBob29rYGAgYXR0cmlidXRlCit3aGljaCBpcyBhbiBpbnN0YW5j
ZSBvZiB0aGlzIDpweTpjbGFzczpgcGx1Z2d5Lmhvb2tzLl9Ib29rUmVsYXlgLgorVGhlIDpweTpj
bGFzczpgfnBsdWdneS5ob29rcy5fSG9va1JlbGF5YCBpdHNlbGYgY29udGFpbnMgcmVmZXJlbmNl
cworKGJ5IGhvb2sgbmFtZSkgdG8gZWFjaCByZWdpc3RlcmVkICpob29raW1wbConcyA6cHk6Y2xh
c3M6YH5wbHVnZ3kuaG9va3MuX0hvb2tDYWxsZXJgIGluc3RhbmNlLgogCiBNb3JlIHByYWN0aWNh
bGx5IHlvdSBjYWxsIGEgKmhvb2sqIGxpa2Ugc286CiAKQEAgLTUxNyw3ICs2NDMsNyBAQCBNb3Jl
IHByYWN0aWNhbGx5IHlvdSBjYWxsIGEgKmhvb2sqIGxpa2Ugc286CiAgICAgIyB3ZSBpbnZva2Ug
dGhlIF9Ib29rQ2FsbGVyIGFuZCB0aHVzIGFsbCB1bmRlcmx5aW5nIGhvb2tpbXBscwogICAgIHJl
c3VsdF9saXN0ID0gcG0uaG9vay5teWhvb2soY29uZmlnPWNvbmZpZywgYXJncz1zeXMuYXJndikK
IAotTm90ZSB0aGF0IHlvdSAqKm11c3QqKiBjYWxsIGhvb2tzIHVzaW5nIGtleXdvcmQgYGFyZ3Vt
ZW50c2BfIHN5bnRheCEKK05vdGUgdGhhdCB5b3UgKiptdXN0KiogY2FsbCBob29rcyB1c2luZyBr
ZXl3b3JkIDpzdGQ6dGVybTpgcHl0aG9uOmFyZ3VtZW50YCBzeW50YXghCiAKIEhvb2sgaW1wbGVt
ZW50YXRpb25zIGFyZSBjYWxsZWQgaW4gTElGTyByZWdpc3RlcmVkIG9yZGVyOiAqdGhlIGxhc3QK
IHJlZ2lzdGVyZWQgcGx1Z2luJ3MgaG9va3MgYXJlIGNhbGxlZCBmaXJzdCouIEFzIGFuIGV4YW1w
bGUsIHRoZSBiZWxvdwpAQCAtNTI3LDI3ICs2NTMsMzQgQEAgYXNzZXJ0aW9uIHNob3VsZCBub3Qg
ZXJyb3I6CiAKICAgICBmcm9tIHBsdWdneSBpbXBvcnQgUGx1Z2luTWFuYWdlciwgSG9va2ltcGxN
YXJrZXIKIAotICAgIGhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoJ215cHJvamVjdCcpCisgICAg
aG9va2ltcGwgPSBIb29raW1wbE1hcmtlcigibXlwcm9qZWN0IikKKwogCiAgICAgY2xhc3MgUGx1
Z2luMShvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKICAgICAgICAgZGVmIG15aG9vayhzZWxm
LCBhcmdzKToKICAgICAgICAgICAgICIiIkRlZmF1bHQgaW1wbGVtZW50YXRpb24uCiAgICAgICAg
ICAgICAiIiIKICAgICAgICAgICAgIHJldHVybiAxCiAKKwogICAgIGNsYXNzIFBsdWdpbjIob2Jq
ZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCiAgICAgICAgIGRlZiBteWhvb2soc2VsZiwgYXJncyk6
CiAgICAgICAgICAgICAiIiJEZWZhdWx0IGltcGxlbWVudGF0aW9uLgogICAgICAgICAgICAgIiIi
CiAgICAgICAgICAgICByZXR1cm4gMgogCisKICAgICBjbGFzcyBQbHVnaW4zKG9iamVjdCk6Cisg
ICAgICAgIEBob29raW1wbAogICAgICAgICBkZWYgbXlob29rKHNlbGYsIGFyZ3MpOgogICAgICAg
ICAgICAgIiIiRGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KICAgICAgICAgICAgICIiIgogICAgICAg
ICAgICAgcmV0dXJuIDMKIAotICAgIHBtID0gUGx1Z2luTWFuYWdlcignbXlwcm9qZWN0JykKKwor
ICAgIHBtID0gUGx1Z2luTWFuYWdlcigibXlwcm9qZWN0IikKICAgICBwbS5yZWdpc3RlcihQbHVn
aW4xKCkpCiAgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMigpKQogICAgIHBtLnJlZ2lzdGVyKFBsdWdp
bjMoKSkKQEAgLTU2MiwxMSArNjk1LDY3IEBAIHdoaWNoIHJldHVybnMgYSB2YWx1ZSBvdGhlciB0
aGVuIGEgYGBOb25lYGAgcmVzdWx0IHdpbGwgaGF2ZSB0aGF0IHJlc3VsdAogYXBwZW5kZWQgdG8g
YSA6cHk6Y2xhc3M6YGxpc3RgIHdoaWNoIGlzIHJldHVybmVkIGJ5IHRoZSBjYWxsLgogCiBUaGUg
b25seSBleGNlcHRpb24gdG8gdGhpcyBiZWhhdmlvdXIgaXMgaWYgdGhlIGhvb2sgaGFzIGJlZW4g
bWFya2VkIHRvIHJldHVybgotaXRzIDpyZWY6YGZpcnN0cmVzdWx0YCBpbiB3aGljaCBjYXNlIG9u
bHkgdGhlIGZpcnN0IHNpbmdsZSB2YWx1ZSAod2hpY2ggaXMgbm90Ci1gYE5vbmVgYCkgd2lsbCBi
ZSByZXR1cm5lZC4KK2l0cyA6cmVmOmBmaXJzdCByZXN1bHQgb25seSA8Zmlyc3RyZXN1bHQ+YCBp
biB3aGljaCBjYXNlIG9ubHkgdGhlIGZpcnN0CitzaW5nbGUgdmFsdWUgKHdoaWNoIGlzIG5vdCBg
YE5vbmVgYCkgd2lsbCBiZSByZXR1cm5lZC4KIAogLi4gX2NhbGxfaGlzdG9yaWM6CiAKK0V4Y2Vw
dGlvbiBoYW5kbGluZworLS0tLS0tLS0tLS0tLS0tLS0tCitJZiBhbnkgKmhvb2tpbXBsKiBlcnJv
cnMgd2l0aCBhbiBleGNlcHRpb24gbm8gZnVydGhlciBjYWxsYmFja3MKK2FyZSBpbnZva2VkIGFu
ZCB0aGUgZXhjZXB0aW9uIGlzIHBhY2thZ2VkIHVwIGFuZCBkZWxpdmVyZWQgdG8KK2FueSA6cmVm
OmB3cmFwcGVycyA8aG9va3dyYXBwZXJzPmAgYmVmb3JlIGJlaW5nIHJlLXJhaXNlZCBhdCB0aGUK
K2hvb2sgaW52b2NhdGlvbiBwb2ludDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAg
ZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1hbmFnZXIsIEhvb2tpbXBsTWFya2VyCisKKyAgICBo
b29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJteXByb2plY3QiKQorCisKKyAgICBjbGFzcyBQbHVn
aW4xKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgbXlob29rKHNlbGYs
IGFyZ3MpOgorICAgICAgICAgICAgcmV0dXJuIDEKKworCisgICAgY2xhc3MgUGx1Z2luMihvYmpl
Y3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIG15aG9vayhzZWxmLCBhcmdzKToK
KyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcgorCisKKyAgICBjbGFzcyBQbHVnaW4zKG9i
amVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgbXlob29rKHNlbGYsIGFyZ3Mp
OgorICAgICAgICAgICAgcmV0dXJuIDMKKworCisgICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRy
dWUpCisgICAgZGVmIG15aG9vayhzZWxmLCBhcmdzKToKKyAgICAgICAgb3V0Y29tZSA9IHlpZWxk
CisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3V0Y29tZS5nZXRfcmVzdWx0KCkKKyAgICAg
ICAgZXhjZXB0IFJ1bnRpbWVFcnJvcjoKKyAgICAgICAgICAgICMgbG9nIHRoZSBlcnJvciBkZXRh
aWxzCisgICAgICAgICAgICBwcmludChvdXRjb21lLmV4Y2luZm8pCisKKworICAgIHBtID0gUGx1
Z2luTWFuYWdlcigibXlwcm9qZWN0IikKKworICAgICMgcmVnaXN0ZXIgcGx1Z2lucworICAgIHBt
LnJlZ2lzdGVyKFBsdWdpbjEoKSkKKyAgICBwbS5yZWdpc3RlcihQbHVnaW4yKCkpCisgICAgcG0u
cmVnaXN0ZXIoUGx1Z2luMygpKQorCisgICAgIyByZWdpc3RlciB3cmFwcGVyCisgICAgcG0ucmVn
aXN0ZXIoc3lzLm1vZHVsZXNbX19uYW1lX19dKQorCisgICAgIyB0aGlzIHJhaXNlcyBSdW50aW1l
RXJyb3IgZHVlIHRvIFBsdWdpbjIKKyAgICBwbS5ob29rLm15aG9vayhhcmdzPSgpKQorCiBIaXN0
b3JpYyBjYWxscwogLS0tLS0tLS0tLS0tLS0KIEEgKmhpc3RvcmljIGNhbGwqIGFsbG93cyBmb3Ig
YWxsIG5ld2x5IHJlZ2lzdGVyZWQgZnVuY3Rpb25zIHRvIHJlY2VpdmUgYWxsIGhvb2sKQEAgLTU3
NSw0NiArNzY0LDU2IEBAIG9ubHkgdXNlZnVsIGlmIHlvdSBleHBlY3QgdGhhdCBzb21lICpob29r
aW1wbHMqIG1heSBiZSByZWdpc3RlcmVkICoqYWZ0ZXIqKiB0aGUKIGhvb2sgaXMgaW5pdGlhbGx5
IGludm9rZWQuCiAKIEhpc3RvcmljIGhvb2tzIG11c3QgYmUgOnJlZjpgc3BlY2lhbGx5IG1hcmtl
ZCA8aGlzdG9yaWM+YCBhbmQgY2FsbGVkCi11c2luZyB0aGUgOnB5Om1ldGg6YHBsdWdneS5fSG9v
a0NhbGxlci5jYWxsX2hpc3RvcmljKClgIG1ldGhvZDoKK3VzaW5nIHRoZSA6cHk6bWV0aDpgfnBs
dWdneS5ob29rcy5fSG9va0NhbGxlci5jYWxsX2hpc3RvcmljKClgIG1ldGhvZDoKIAogLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgogCisgICAgZGVmIGNhbGxiYWNrKHJlc3VsdCk6CisgICAgICAgIHBy
aW50KCJoaXN0b3JpYyBjYWxsIHJlc3VsdCBpcyB7cmVzdWx0fSIuZm9ybWF0KHJlc3VsdD1yZXN1
bHQpKQorCisKICAgICAjIGNhbGwgd2l0aCBoaXN0b3J5OyBubyByZXN1bHRzIHJldHVybmVkCi0g
ICAgcG0uaG9vay5teWhvb2suY2FsbF9oaXN0b3JpYyhjb25maWc9Y29uZmlnLCBhcmdzPXN5cy5h
cmd2KQorICAgIHBtLmhvb2subXlob29rLmNhbGxfaGlzdG9yaWMoCisgICAgICAgIGt3YXJncz17
ImNvbmZpZyI6IGNvbmZpZywgImFyZ3MiOiBzeXMuYXJndn0sIHJlc3VsdF9jYWxsYmFjaz1jYWxs
YmFjaworICAgICkKIAogICAgICMgLi4uIG1vcmUgb2Ygb3VyIHByb2dyYW0gLi4uCiAKICAgICAj
IGxhdGUgbG9hZGluZyBvZiBzb21lIHBsdWdpbgogICAgIGltcG9ydCBteWxhdGVwbHVnaW4KIAot
ICAgICMgaGlzdG9yaWMgY2FsbCBiYWNrIGlzIGRvbmUgaGVyZQorICAgICMgaGlzdG9yaWMgY2Fs
bGJhY2sgaXMgaW52b2tlZCBoZXJlCiAgICAgcG0ucmVnaXN0ZXIobXlsYXRlcGx1Z2luKQogCi1O
b3RlIHRoYXQgaWYgeW91IGBgY2FsbF9oaXN0b3JpYygpYGAgdGhlIGBgX0hvb2tDYWxsZXJgYCAo
YW5kIHRodXMgeW91cgotY2FsbGluZyBjb2RlKSBjYW4gbm90IHJlY2VpdmUgcmVzdWx0cyBiYWNr
IGZyb20gdGhlIHVuZGVybHlpbmcgKmhvb2tpbXBsKgotZnVuY3Rpb25zLgorTm90ZSB0aGF0IGlm
IHlvdSA6cHk6bWV0aDpgfnBsdWdneS5ob29rcy5fSG9va0NhbGxlci5jYWxsX2hpc3RvcmljKClg
Cit0aGUgOnB5OmNsYXNzOmB+cGx1Z2d5Lmhvb2tzLl9Ib29rQ2FsbGVyYCAoYW5kIHRodXMgeW91
ciBjYWxsaW5nIGNvZGUpCitjYW4gbm90IHJlY2VpdmUgcmVzdWx0cyBiYWNrIGZyb20gdGhlIHVu
ZGVybHlpbmcgKmhvb2tpbXBsKiBmdW5jdGlvbnMuCitJbnN0ZWFkIHlvdSBjYW4gcHJvdmlkZSBh
ICpjYWxsYmFjayogZm9yIHByb2Nlc3NpbmcgcmVzdWx0cyAobGlrZSB0aGUKK2BgY2FsbGJhY2tg
YCBmdW5jdGlvbiBhYm92ZSkgd2hpY2ggd2lsbCBiZSBjYWxsZWQgYXMgZWFjaCBuZXcgcGx1Z2lu
CitpcyByZWdpc3RlcmVkLgorCisuLiBub3RlOjoKKyAgICAqaGlzdG9yaWMqIGNhbGxzIGFyZSBp
bmNvbXBhdGlibGUgd2l0aCA6cmVmOmBmaXJzdHJlc3VsdGAgbWFya2VkCisgICAgaG9va3Mgc2lu
Y2Ugb25seSB0aGUgZmlyc3QgcmVnaXN0ZXJlZCBwbHVnaW4ncyBob29rKHMpIHdvdWxkCisgICAg
ZXZlciBiZSBjYWxsZWQuCiAKIENhbGxpbmcgd2l0aCBleHRyYXMKIC0tLS0tLS0tLS0tLS0tLS0t
LS0KIFlvdSBjYW4gY2FsbCBhIGhvb2sgd2l0aCB0ZW1wb3JhcmlseSBwYXJ0aWNpcGF0aW5nICpp
bXBsZW1lbnRhdGlvbiogZnVuY3Rpb25zCiAodGhhdCBhcmVuJ3QgaW4gdGhlIHJlZ2lzdHJ5KSB1
c2luZyB0aGUKLTpweTptZXRoOmBwbHVnZ3kuX0hvb2tDYWxsZXIuY2FsbF9leHRyYSgpYCBtZXRo
b2QuCis6cHk6bWV0aDpgcGx1Z2d5Lmhvb2tzLl9Ib29rQ2FsbGVyLmNhbGxfZXh0cmEoKWAgbWV0
aG9kLgogCiAKIENhbGxpbmcgd2l0aCBhIHN1YnNldCBvZiByZWdpc3RlcmVkIHBsdWdpbnMKIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFlvdSBjYW4gbWFrZSBh
IGNhbGwgdXNpbmcgYSBzdWJzZXQgb2YgcGx1Z2lucyBieSBhc2tpbmcgdGhlCi1gYFBsdWdpbk1h
bmFnZXJgYCBmaXJzdCBmb3IgYSBgYF9Ib29rQ2FsbGVyYGAgd2l0aCB0aG9zZSBwbHVnaW5zIHJl
bW92ZWQKKzpweTpjbGFzczpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyYCBmaXJzdCBmb3IgYQorOnB5
OmNsYXNzOmB+cGx1Z2d5Lmhvb2tzLl9Ib29rQ2FsbGVyYCB3aXRoIHRob3NlIHBsdWdpbnMgcmVt
b3ZlZAogdXNpbmcgdGhlIDpweTptZXRoOmBwbHVnZ3kuUGx1Z2luTWFuYWdlci5zdWJzZXRfaG9v
a19jYWxsZXIoKWAgbWV0aG9kLgogCi1Zb3UgdGhlbiBjYW4gdXNlIHRoYXQgYGBfSG9va0NhbGxl
cmBgIHRvIG1ha2Ugbm9ybWFsLCBgYGNhbGxfaGlzdG9yaWMoKWBgLAotb3IgYGBjYWxsX2V4dHJh
KClgYCBjYWxscyBhcyBuZWNlc3NhcnkuCi0KLQotLi4gbGlua3MKLS4uIF9hcmd1bWVudHM6Ci0g
ICAgaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9nbG9zc2FyeS5odG1sI3Rlcm0tYXJndW1lbnQK
LQorWW91IHRoZW4gY2FuIHVzZSB0aGF0IDpweTpjbGFzczpgX0hvb2tDYWxsZXIgPHBsdWdneS5o
b29rcy5fSG9va0NhbGxlcj5gCit0byBtYWtlIG5vcm1hbCwgOnB5Om1ldGg6YH5wbHVnZ3kuaG9v
a3MuX0hvb2tDYWxsZXIuY2FsbF9oaXN0b3JpY2AsIG9yCis6cHk6bWV0aDpgfnBsdWdneS5ob29r
cy5fSG9va0NhbGxlci5jYWxsX2V4dHJhYCBjYWxscyBhcyBuZWNlc3NhcnkuCiAKIEJ1aWx0LWlu
IHRyYWNpbmcKICoqKioqKioqKioqKioqKioKQEAgLTYzMCw3ICs4MjksNyBAQCB1bmRvIGZ1bmN0
aW9uIHRvIGRpc2FibGUgdGhlIGJlaGF2aW91ci4KIAogLi4gY29kZS1ibG9jazo6IHB5dGhvbgog
Ci0gICAgcG0gPSBQbHVnaW5NYW5hZ2VyKCdteXByb2plY3QnKQorICAgIHBtID0gUGx1Z2luTWFu
YWdlcigibXlwcm9qZWN0IikKICAgICAjIG1hZ2ljIGxpbmUgdG8gc2V0IGEgd3JpdGVyIGZ1bmN0
aW9uCiAgICAgcG0udHJhY2Uucm9vdC5zZXR3cml0ZXIocHJpbnQpCiAgICAgdW5kbyA9IHBtLmVu
YWJsZV90cmFjaW5nKCkKQEAgLTY0OSw2ICs4NDgsNyBAQCBUaGUgZXhwZWN0ZWQgc2lnbmF0dXJl
IGFuZCBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBmb3IgdGhlc2UgZnVuY3Rpb25zIGlzOgogICAg
IGRlZiBiZWZvcmUoaG9va19uYW1lLCBtZXRob2RzLCBrd2FyZ3MpOgogICAgICAgICBwYXNzCiAK
KwogICAgIGRlZiBhZnRlcihvdXRjb21lLCBob29rX25hbWUsIG1ldGhvZHMsIGt3YXJncyk6CiAg
ICAgICAgIHBhc3MKIApAQCAtNjYzLDYgKzg2MywxOSBAQCBwcm9qZWN0cyByZWx5IG9uIGl0LiBP
dXIgR2l0aHViIGludGVncmF0ZWQgQ0kgcHJvY2VzcyBydW5zIHRoZSBmdWxsCiBgdG94IHRlc3Qg
c3VpdGVgXyBvbiBlYWNoIGNvbW1pdCBzbyBiZSBzdXJlIHlvdXIgY2hhbmdlcyBjYW4gcnVuIG9u
CiBhbGwgcmVxdWlyZWQgYFB5dGhvbiBpbnRlcnByZXRlcnNgXyBhbmQgYGBweXRlc3RgYCB2ZXJz
aW9ucy4KIAorRm9yIGRldmVsb3BtZW50LCB3ZSBzdWdnZXN0IHRvIGNyZWF0ZSBhIHZpcnR1YWwg
ZW52aXJvbm1lbnQgYW5kIGluc3RhbGwgYGBwbHVnZ3lgYCBpbgorZWRpdGFibGUgbW9kZSBhbmQg
YGBkZXZgYCBkZXBlbmRlbmNpZXM6OgorCisgICAgJCBweXRob24zIC1tIHZlbnYgLmVudgorICAg
ICQgc291cmNlIC5lbnYvYmluL2FjdGl2YXRlCisgICAgJCBwaXAgaW5zdGFsbCAtZSAuW2Rldl0K
KworVG8gbWFrZSBzdXJlIHlvdSBmb2xsb3cgdGhlIGNvZGUgc3R5bGUgdXNlZCBpbiB0aGUgcHJv
amVjdCwgaW5zdGFsbCBwcmUtY29tbWl0XyB3aGljaAord2lsbCBydW4gc3R5bGUgY2hlY2tzIGJl
Zm9yZSBlYWNoIGNvbW1pdDo6CisKKyAgICAkIHByZS1jb21taXQgaW5zdGFsbAorCisKIFJlbGVh
c2UgUG9saWN5CiAqKioqKioqKioqKioqKgogUGx1Z2d5IHVzZXMgYFNlbWFudGljIFZlcnNpb25p
bmdgXy4gQnJlYWtpbmcgY2hhbmdlcyBhcmUgb25seSBmb3Jlc2VlbiBmb3IKQEAgLTY3MSwzMSAr
ODg0LDQ0IEBAIGluIHlvdXIgcHJvamVjdCB5b3Ugc2hvdWxkIHRodXMgdXNlIGEgZGVwZW5kZW5j
eSByZXN0cmljdGlvbiBsaWtlCiBgYCJwbHVnZ3k+PTAuMS4wLDwxLjAiYGAgdG8gYXZvaWQgc3Vy
cHJpc2VzLgogCiAKK1RhYmxlIG9mIGNvbnRlbnRzCisqKioqKioqKioqKioqKioqKgorCisuLiB0
b2N0cmVlOjoKKyAgICA6bWF4ZGVwdGg6IDIKKworICAgIGFwaV9yZWZlcmVuY2UKKyAgICBjaGFu
Z2Vsb2cKKworCisKIC4uIGh5cGVybGlua3MKLS4uIF9weXRlc3Q6Ci0gICAgaHR0cDovL3B5dGVz
dC5vcmcKKy4uIF9weXRlc3RfY21kbGluZV9tYWluOgorICAgIGh0dHBzOi8vZG9jcy5weXRlc3Qu
b3JnL2VuL2xhdGVzdC9fbW9kdWxlcy9fcHl0ZXN0L2hvb2tzcGVjLmh0bWwjcHl0ZXN0X2NtZGxp
bmVfbWFpbgorLi4gX2hvb2tzcGVjIG1vZHVsZToKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9y
Zy9lbi9sYXRlc3QvX21vZHVsZXMvX3B5dGVzdC9ob29rc3BlYy5odG1sCisuLiBfaG9va3dyYXBw
ZXI6CisgICAgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5nX3BsdWdpbnMu
aHRtbCNob29rd3JhcHBlci1leGVjdXRpbmctYXJvdW5kLW90aGVyLWhvb2tzCisuLiBfaG9vayBm
dW5jdGlvbiBvcmRlcmluZzoKKyAgICBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dy
aXRpbmdfcGx1Z2lucy5odG1sI2hvb2stZnVuY3Rpb24tb3JkZXJpbmctY2FsbC1leGFtcGxlCiAu
LiBfcmVxdWVzdC1yZXNwb25zZSBwYXR0ZXJuOgogICAgIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9y
Zy93aWtpL1JlcXVlc3QlRTIlODAlOTNyZXNwb25zZQogLi4gX3B1Ymxpc2gtc3Vic2NyaWJlOgog
ICAgIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1B1Ymxpc2glRTIlODAlOTNzdWJzY3Jp
YmVfcGF0dGVybgogLi4gX2hvb2tpbmc6CiAgICAgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dp
a2kvSG9va2luZwotLi4gX3BsdWdpbiBtYW5hZ2VtZW50IGFuZCBob29rIGNhbGxpbmc6Ci0gICAg
aHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5nX3BsdWdpbnMuaHRtbAotLi4g
X25hbWVzcGFjZToKLSAgICBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjYvdHV0b3JpYWwvY2xh
c3Nlcy5odG1sI3B5dGhvbi1zY29wZXMtYW5kLW5hbWVzcGFjZXMKIC4uIF9jYWxsYmFja3M6CiAg
ICAgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ2FsbGJhY2tfKGNvbXB1dGVyX3Byb2dy
YW1taW5nKQogLi4gX3RveCB0ZXN0IHN1aXRlOgogICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3BsdWdneS9ibG9iL21hc3Rlci90b3guaW5pCiAuLiBfU2VtYW50aWMgVmVyc2lvbmlu
ZzoKLSAgICBodHRwOi8vc2VtdmVyLm9yZy8KLS4uIF90aWdodCBjb3VwbGluZzoKLSAgICBodHRw
czovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db3VwbGluZ18lMjhjb21wdXRlcl9wcm9ncmFtbWlu
ZyUyOSNUeXBlc19vZl9jb3VwbGluZworICAgIGh0dHBzOi8vc2VtdmVyLm9yZy8KIC4uIF9QeXRo
b24gaW50ZXJwcmV0ZXJzOgogICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdn
eS9ibG9iL21hc3Rlci90b3guaW5pI0wyCi0uLiBfMjAwKyBwbHVnaW5zOgorLi4gXzUwMCsgcGx1
Z2luczoKICAgICBodHRwOi8vcGx1Z2luY29tcGF0Lmhlcm9rdWFwcC5jb20vCisuLiBfcHJlLWNv
bW1pdDoKKyAgICBodHRwczovL3ByZS1jb21taXQuY29tLwogCiAKIC4uIEluZGljZXMgYW5kIHRh
YmxlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L2RvY3MvdzNjLWltcG9ydC5sb2cKaW5kZXggODc1YjU4MWI4YzJjMmZlMjJkYzJkZTY3
YWM1MDY5NDI5NjQwM2I0Ny4uNDZlYjlhMDNmYTM0MDcxYTBlYWZkNTE4YTQ4OWU0OWZhMzg0OWU0
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9kb2NzL3czYy1pbXBvcnQubG9nCkBAIC0xNSw1ICsxNSw2IEBAIE5vbmUKIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2FwaV9yZWZlcmVu
Y2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9jaGFuZ2Vsb2cucnN0CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9j
cy9jb25mLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9pbmRleC5yc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L3BsdWdneS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9fX2luaXRfXy5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI1MTc1ZDk1NjYxNGIwMmYzZWU1YWE4
YmM5MzMxODNlYjc1MTIzMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9wbHVnZ3kvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw2ODQgKzAsMCBAQAotaW1wb3J0IGluc3BlY3QKLWltcG9ydCB3YXJuaW5ncwotZnJvbSAuY2Fs
bGVycyBpbXBvcnQgX211bHRpY2FsbCwgSG9va0NhbGxFcnJvciwgX1Jlc3VsdCwgX2xlZ2FjeW11
bHRpY2FsbAotCi1fX3ZlcnNpb25fXyA9ICcwLjUuMy5kZXYnCi0KLV9fYWxsX18gPSBbIlBsdWdp
bk1hbmFnZXIiLCAiUGx1Z2luVmFsaWRhdGlvbkVycm9yIiwgIkhvb2tDYWxsRXJyb3IiLAotICAg
ICAgICAgICAiSG9va3NwZWNNYXJrZXIiLCAiSG9va2ltcGxNYXJrZXIiXQotCi0KLWNsYXNzIFBs
dWdpblZhbGlkYXRpb25FcnJvcihFeGNlcHRpb24pOgotICAgICIiIiBwbHVnaW4gZmFpbGVkIHZh
bGlkYXRpb24uICIiIgotCi0KLWNsYXNzIEhvb2tzcGVjTWFya2VyKG9iamVjdCk6Ci0gICAgIiIi
IERlY29yYXRvciBoZWxwZXIgY2xhc3MgZm9yIG1hcmtpbmcgZnVuY3Rpb25zIGFzIGhvb2sgc3Bl
Y2lmaWNhdGlvbnMuCi0KLSAgICBZb3UgY2FuIGluc3RhbnRpYXRlIGl0IHdpdGggYSBwcm9qZWN0
X25hbWUgdG8gZ2V0IGEgZGVjb3JhdG9yLgotICAgIENhbGxpbmcgUGx1Z2luTWFuYWdlci5hZGRf
aG9va3NwZWNzIGxhdGVyIHdpbGwgZGlzY292ZXIgYWxsIG1hcmtlZCBmdW5jdGlvbnMKLSAgICBp
ZiB0aGUgUGx1Z2luTWFuYWdlciB1c2VzIHRoZSBzYW1lIHByb2plY3RfbmFtZS4KLSAgICAiIiIK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0X25hbWUpOgotICAgICAgICBzZWxmLnBy
b2plY3RfbmFtZSA9IHByb2plY3RfbmFtZQotCi0gICAgZGVmIF9fY2FsbF9fKHNlbGYsIGZ1bmN0
aW9uPU5vbmUsIGZpcnN0cmVzdWx0PUZhbHNlLCBoaXN0b3JpYz1GYWxzZSk6Ci0gICAgICAgICIi
IiBpZiBwYXNzZWQgYSBmdW5jdGlvbiwgZGlyZWN0bHkgc2V0cyBhdHRyaWJ1dGVzIG9uIHRoZSBm
dW5jdGlvbgotICAgICAgICB3aGljaCB3aWxsIG1ha2UgaXQgZGlzY292ZXJhYmxlIHRvIGFkZF9o
b29rc3BlY3MoKS4gIElmIHBhc3NlZCBubwotICAgICAgICBmdW5jdGlvbiwgcmV0dXJucyBhIGRl
Y29yYXRvciB3aGljaCBjYW4gYmUgYXBwbGllZCB0byBhIGZ1bmN0aW9uCi0gICAgICAgIGxhdGVy
IHVzaW5nIHRoZSBhdHRyaWJ1dGVzIHN1cHBsaWVkLgotCi0gICAgICAgIElmIGZpcnN0cmVzdWx0
IGlzIFRydWUgdGhlIDE6TiBob29rIGNhbGwgKE4gYmVpbmcgdGhlIG51bWJlciBvZiByZWdpc3Rl
cmVkCi0gICAgICAgIGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb25zKSB3aWxsIHN0b3AgYXQg
STw9TiB3aGVuIHRoZSBJJ3RoIGZ1bmN0aW9uCi0gICAgICAgIHJldHVybnMgYSBub24tTm9uZSBy
ZXN1bHQuCi0KLSAgICAgICAgSWYgaGlzdG9yaWMgaXMgVHJ1ZSBjYWxscyB0byBhIGhvb2sgd2ls
bCBiZSBtZW1vcml6ZWQgYW5kIHJlcGxheWVkCi0gICAgICAgIG9uIGxhdGVyIHJlZ2lzdGVyZWQg
cGx1Z2lucy4KLQotICAgICAgICAiIiIKLSAgICAgICAgZGVmIHNldGF0dHJfaG9va3NwZWNfb3B0
cyhmdW5jKToKLSAgICAgICAgICAgIGlmIGhpc3RvcmljIGFuZCBmaXJzdHJlc3VsdDoKLSAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW5ub3QgaGF2ZSBhIGhpc3RvcmljIGZpcnN0
cmVzdWx0IGhvb2siKQotICAgICAgICAgICAgc2V0YXR0cihmdW5jLCBzZWxmLnByb2plY3RfbmFt
ZSArICJfc3BlYyIsCi0gICAgICAgICAgICAgICAgICAgIGRpY3QoZmlyc3RyZXN1bHQ9Zmlyc3Ry
ZXN1bHQsIGhpc3RvcmljPWhpc3RvcmljKSkKLSAgICAgICAgICAgIHJldHVybiBmdW5jCi0KLSAg
ICAgICAgaWYgZnVuY3Rpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gc2V0YXR0
cl9ob29rc3BlY19vcHRzKGZ1bmN0aW9uKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0
dXJuIHNldGF0dHJfaG9va3NwZWNfb3B0cwotCi0KLWNsYXNzIEhvb2tpbXBsTWFya2VyKG9iamVj
dCk6Ci0gICAgIiIiIERlY29yYXRvciBoZWxwZXIgY2xhc3MgZm9yIG1hcmtpbmcgZnVuY3Rpb25z
IGFzIGhvb2sgaW1wbGVtZW50YXRpb25zLgotCi0gICAgWW91IGNhbiBpbnN0YW50aWF0ZSB3aXRo
IGEgcHJvamVjdF9uYW1lIHRvIGdldCBhIGRlY29yYXRvci4KLSAgICBDYWxsaW5nIFBsdWdpbk1h
bmFnZXIucmVnaXN0ZXIgbGF0ZXIgd2lsbCBkaXNjb3ZlciBhbGwgbWFya2VkIGZ1bmN0aW9ucwot
ICAgIGlmIHRoZSBQbHVnaW5NYW5hZ2VyIHVzZXMgdGhlIHNhbWUgcHJvamVjdF9uYW1lLgotICAg
ICIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0X25hbWUpOgotICAgICAgICBzZWxm
LnByb2plY3RfbmFtZSA9IHByb2plY3RfbmFtZQotCi0gICAgZGVmIF9fY2FsbF9fKHNlbGYsIGZ1
bmN0aW9uPU5vbmUsIGhvb2t3cmFwcGVyPUZhbHNlLCBvcHRpb25hbGhvb2s9RmFsc2UsCi0gICAg
ICAgICAgICAgICAgIHRyeWZpcnN0PUZhbHNlLCB0cnlsYXN0PUZhbHNlKToKLQotICAgICAgICAi
IiIgaWYgcGFzc2VkIGEgZnVuY3Rpb24sIGRpcmVjdGx5IHNldHMgYXR0cmlidXRlcyBvbiB0aGUg
ZnVuY3Rpb24KLSAgICAgICAgd2hpY2ggd2lsbCBtYWtlIGl0IGRpc2NvdmVyYWJsZSB0byByZWdp
c3RlcigpLiAgSWYgcGFzc2VkIG5vIGZ1bmN0aW9uLAotICAgICAgICByZXR1cm5zIGEgZGVjb3Jh
dG9yIHdoaWNoIGNhbiBiZSBhcHBsaWVkIHRvIGEgZnVuY3Rpb24gbGF0ZXIgdXNpbmcKLSAgICAg
ICAgdGhlIGF0dHJpYnV0ZXMgc3VwcGxpZWQuCi0KLSAgICAgICAgSWYgb3B0aW9uYWxob29rIGlz
IFRydWUgYSBtaXNzaW5nIG1hdGNoaW5nIGhvb2sgc3BlY2lmaWNhdGlvbiB3aWxsIG5vdCByZXN1
bHQKLSAgICAgICAgaW4gYW4gZXJyb3IgKGJ5IGRlZmF1bHQgaXQgaXMgYW4gZXJyb3IgaWYgbm8g
bWF0Y2hpbmcgc3BlYyBpcyBmb3VuZCkuCi0KLSAgICAgICAgSWYgdHJ5Zmlyc3QgaXMgVHJ1ZSB0
aGlzIGhvb2sgaW1wbGVtZW50YXRpb24gd2lsbCBydW4gYXMgZWFybHkgYXMgcG9zc2libGUKLSAg
ICAgICAgaW4gdGhlIGNoYWluIG9mIE4gaG9vayBpbXBsZW1lbnRhdGlvbnMgZm9yIGEgc3BlY2Zp
Y2F0aW9uLgotCi0gICAgICAgIElmIHRyeWxhc3QgaXMgVHJ1ZSB0aGlzIGhvb2sgaW1wbGVtZW50
YXRpb24gd2lsbCBydW4gYXMgbGF0ZSBhcyBwb3NzaWJsZQotICAgICAgICBpbiB0aGUgY2hhaW4g
b2YgTiBob29rIGltcGxlbWVudGF0aW9ucy4KLQotICAgICAgICBJZiBob29rd3JhcHBlciBpcyBU
cnVlIHRoZSBob29rIGltcGxlbWVudGF0aW9ucyBuZWVkcyB0byBleGVjdXRlIGV4YWN0bHkKLSAg
ICAgICAgb25lICJ5aWVsZCIuICBUaGUgY29kZSBiZWZvcmUgdGhlIHlpZWxkIGlzIHJ1biBlYXJs
eSBiZWZvcmUgYW55IG5vbi1ob29rd3JhcHBlcgotICAgICAgICBmdW5jdGlvbiBpcyBydW4uICBU
aGUgY29kZSBhZnRlciB0aGUgeWllbGQgaXMgcnVuIGFmdGVyIGFsbCBub24taG9va3dyYXBwZXIK
LSAgICAgICAgZnVuY3Rpb24gaGF2ZSBydW4uICBUaGUgeWllbGQgcmVjZWl2ZXMgYSBgYF9SZXN1
bHRgYCBvYmplY3QgcmVwcmVzZW50aW5nCi0gICAgICAgIHRoZSBleGNlcHRpb24gb3IgcmVzdWx0
IG91dGNvbWUgb2YgdGhlIGlubmVyIGNhbGxzIChpbmNsdWRpbmcgb3RoZXIgaG9va3dyYXBwZXIK
LSAgICAgICAgY2FsbHMpLgotCi0gICAgICAgICIiIgotICAgICAgICBkZWYgc2V0YXR0cl9ob29r
aW1wbF9vcHRzKGZ1bmMpOgotICAgICAgICAgICAgc2V0YXR0cihmdW5jLCBzZWxmLnByb2plY3Rf
bmFtZSArICJfaW1wbCIsCi0gICAgICAgICAgICAgICAgICAgIGRpY3QoaG9va3dyYXBwZXI9aG9v
a3dyYXBwZXIsIG9wdGlvbmFsaG9vaz1vcHRpb25hbGhvb2ssCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgdHJ5Zmlyc3Q9dHJ5Zmlyc3QsIHRyeWxhc3Q9dHJ5bGFzdCkpCi0gICAgICAgICAgICBy
ZXR1cm4gZnVuYwotCi0gICAgICAgIGlmIGZ1bmN0aW9uIGlzIE5vbmU6Ci0gICAgICAgICAgICBy
ZXR1cm4gc2V0YXR0cl9ob29raW1wbF9vcHRzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBy
ZXR1cm4gc2V0YXR0cl9ob29raW1wbF9vcHRzKGZ1bmN0aW9uKQotCi0KLWRlZiBub3JtYWxpemVf
aG9va2ltcGxfb3B0cyhvcHRzKToKLSAgICBvcHRzLnNldGRlZmF1bHQoInRyeWZpcnN0IiwgRmFs
c2UpCi0gICAgb3B0cy5zZXRkZWZhdWx0KCJ0cnlsYXN0IiwgRmFsc2UpCi0gICAgb3B0cy5zZXRk
ZWZhdWx0KCJob29rd3JhcHBlciIsIEZhbHNlKQotICAgIG9wdHMuc2V0ZGVmYXVsdCgib3B0aW9u
YWxob29rIiwgRmFsc2UpCi0KLQotY2xhc3MgX1RhZ1RyYWNlcihvYmplY3QpOgotICAgIGRlZiBf
X2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fdGFnMnByb2MgPSB7fQotICAgICAgICBzZWxm
LndyaXRlciA9IE5vbmUKLSAgICAgICAgc2VsZi5pbmRlbnQgPSAwCi0KLSAgICBkZWYgZ2V0KHNl
bGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gX1RhZ1RyYWNlclN1YihzZWxmLCAobmFtZSwpKQot
Ci0gICAgZGVmIGZvcm1hdF9tZXNzYWdlKHNlbGYsIHRhZ3MsIGFyZ3MpOgotICAgICAgICBpZiBp
c2luc3RhbmNlKGFyZ3NbLTFdLCBkaWN0KToKLSAgICAgICAgICAgIGV4dHJhID0gYXJnc1stMV0K
LSAgICAgICAgICAgIGFyZ3MgPSBhcmdzWzotMV0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGV4dHJhID0ge30KLQotICAgICAgICBjb250ZW50ID0gIiAiLmpvaW4obWFwKHN0ciwgYXJncykp
Ci0gICAgICAgIGluZGVudCA9ICIgICIgKiBzZWxmLmluZGVudAotCi0gICAgICAgIGxpbmVzID0g
WwotICAgICAgICAgICAgIiVzJXMgWyVzXVxuIiAlIChpbmRlbnQsIGNvbnRlbnQsICI6Ii5qb2lu
KHRhZ3MpKQotICAgICAgICBdCi0KLSAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIGV4dHJhLml0
ZW1zKCk6Ci0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiVzICAgICVzOiAlc1xuIiAlIChpbmRl
bnQsIG5hbWUsIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuIGxpbmVzCi0KLSAgICBkZWYgcHJvY2Vz
c21lc3NhZ2Uoc2VsZiwgdGFncywgYXJncyk6Ci0gICAgICAgIGlmIHNlbGYud3JpdGVyIGlzIG5v
dCBOb25lIGFuZCBhcmdzOgotICAgICAgICAgICAgbGluZXMgPSBzZWxmLmZvcm1hdF9tZXNzYWdl
KHRhZ3MsIGFyZ3MpCi0gICAgICAgICAgICBzZWxmLndyaXRlcignJy5qb2luKGxpbmVzKSkKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fdGFnMnByb2NbdGFnc10odGFncywgYXJncykK
LSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgcGFzcwotCi0gICAgZGVmIHNl
dHdyaXRlcihzZWxmLCB3cml0ZXIpOgotICAgICAgICBzZWxmLndyaXRlciA9IHdyaXRlcgotCi0g
ICAgZGVmIHNldHByb2Nlc3NvcihzZWxmLCB0YWdzLCBwcm9jZXNzb3IpOgotICAgICAgICBpZiBp
c2luc3RhbmNlKHRhZ3MsIHN0cik6Ci0gICAgICAgICAgICB0YWdzID0gdHVwbGUodGFncy5zcGxp
dCgiOiIpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodGFn
cywgdHVwbGUpCi0gICAgICAgIHNlbGYuX3RhZzJwcm9jW3RhZ3NdID0gcHJvY2Vzc29yCi0KLQot
Y2xhc3MgX1RhZ1RyYWNlclN1YihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290
LCB0YWdzKToKLSAgICAgICAgc2VsZi5yb290ID0gcm9vdAotICAgICAgICBzZWxmLnRhZ3MgPSB0
YWdzCi0KLSAgICBkZWYgX19jYWxsX18oc2VsZiwgKmFyZ3MpOgotICAgICAgICBzZWxmLnJvb3Qu
cHJvY2Vzc21lc3NhZ2Uoc2VsZi50YWdzLCBhcmdzKQotCi0gICAgZGVmIHNldG15cHJvY2Vzc29y
KHNlbGYsIHByb2Nlc3Nvcik6Ci0gICAgICAgIHNlbGYucm9vdC5zZXRwcm9jZXNzb3Ioc2VsZi50
YWdzLCBwcm9jZXNzb3IpCi0KLSAgICBkZWYgZ2V0KHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1
cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5yb290LCBzZWxmLnRhZ3MgKyAobmFtZSwpKQotCi0KLWNs
YXNzIF9UcmFjZWRIb29rRXhlY3V0aW9uKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBsdWdpbm1hbmFnZXIsIGJlZm9yZSwgYWZ0ZXIpOgotICAgICAgICBzZWxmLnBsdWdpbm1hbmFn
ZXIgPSBwbHVnaW5tYW5hZ2VyCi0gICAgICAgIHNlbGYuYmVmb3JlID0gYmVmb3JlCi0gICAgICAg
IHNlbGYuYWZ0ZXIgPSBhZnRlcgotICAgICAgICBzZWxmLm9sZGNhbGwgPSBwbHVnaW5tYW5hZ2Vy
Ll9pbm5lcl9ob29rZXhlYwotICAgICAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2Uoc2VsZi5vbGRj
YWxsLCBfVHJhY2VkSG9va0V4ZWN1dGlvbikKLSAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLl9p
bm5lcl9ob29rZXhlYyA9IHNlbGYKLQotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBob29rLCBob29r
X2ltcGxzLCBrd2FyZ3MpOgotICAgICAgICBzZWxmLmJlZm9yZShob29rLm5hbWUsIGhvb2tfaW1w
bHMsIGt3YXJncykKLSAgICAgICAgb3V0Y29tZSA9IF9SZXN1bHQuZnJvbV9jYWxsKGxhbWJkYTog
c2VsZi5vbGRjYWxsKGhvb2ssIGhvb2tfaW1wbHMsIGt3YXJncykpCi0gICAgICAgIHNlbGYuYWZ0
ZXIob3V0Y29tZSwgaG9vay5uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpCi0gICAgICAgIHJldHVy
biBvdXRjb21lLmdldF9yZXN1bHQoKQotCi0gICAgZGVmIHVuZG8oc2VsZik6Ci0gICAgICAgIHNl
bGYucGx1Z2lubWFuYWdlci5faW5uZXJfaG9va2V4ZWMgPSBzZWxmLm9sZGNhbGwKLQotCi1jbGFz
cyBQbHVnaW5NYW5hZ2VyKG9iamVjdCk6Ci0gICAgIiIiIENvcmUgUGx1Z2lubWFuYWdlciBjbGFz
cyB3aGljaCBtYW5hZ2VzIHJlZ2lzdHJhdGlvbgotICAgIG9mIHBsdWdpbiBvYmplY3RzIGFuZCAx
Ok4gaG9vayBjYWxsaW5nLgotCi0gICAgWW91IGNhbiByZWdpc3RlciBuZXcgaG9va3MgYnkgY2Fs
bGluZyBgYGFkZF9ob29rc3BlYyhtb2R1bGVfb3JfY2xhc3MpYGAuCi0gICAgWW91IGNhbiByZWdp
c3RlciBwbHVnaW4gb2JqZWN0cyAod2hpY2ggY29udGFpbiBob29rcykgYnkgY2FsbGluZwotICAg
IGBgcmVnaXN0ZXIocGx1Z2luKWBgLiAgVGhlIFBsdWdpbm1hbmFnZXIgaXMgaW5pdGlhbGl6ZWQg
d2l0aCBhCi0gICAgcHJlZml4IHRoYXQgaXMgc2VhcmNoZWQgZm9yIGluIHRoZSBuYW1lcyBvZiB0
aGUgZGljdCBvZiByZWdpc3RlcmVkCi0gICAgcGx1Z2luIG9iamVjdHMuICBBbiBvcHRpb25hbCBl
eGNsdWRlZnVuYyBhbGxvd3MgdG8gYmxhY2tsaXN0IG5hbWVzIHdoaWNoCi0gICAgYXJlIG5vdCBj
b25zaWRlcmVkIGFzIGhvb2tzIGRlc3BpdGUgYSBtYXRjaGluZyBwcmVmaXguCi0KLSAgICBGb3Ig
ZGVidWdnaW5nIHB1cnBvc2VzIHlvdSBjYW4gY2FsbCBgYGVuYWJsZV90cmFjaW5nKClgYAotICAg
IHdoaWNoIHdpbGwgc3Vic2VxdWVudGx5IHNlbmQgZGVidWcgaW5mb3JtYXRpb24gdG8gdGhlIHRy
YWNlIGhlbHBlci4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0X25h
bWUsIGltcGxwcmVmaXg9Tm9uZSk6Ci0gICAgICAgICIiIiBpZiBpbXBscHJlZml4IGlzIGdpdmVu
IGltcGxlbWVudGF0aW9uIGZ1bmN0aW9ucwotICAgICAgICB3aWxsIGJlIHJlY29nbml6ZWQgaWYg
dGhlaXIgbmFtZSBtYXRjaGVzIHRoZSBpbXBscHJlZml4LiAiIiIKLSAgICAgICAgc2VsZi5wcm9q
ZWN0X25hbWUgPSBwcm9qZWN0X25hbWUKLSAgICAgICAgc2VsZi5fbmFtZTJwbHVnaW4gPSB7fQot
ICAgICAgICBzZWxmLl9wbHVnaW4yaG9va2NhbGxlcnMgPSB7fQotICAgICAgICBzZWxmLl9wbHVn
aW5fZGlzdGluZm8gPSBbXQotICAgICAgICBzZWxmLnRyYWNlID0gX1RhZ1RyYWNlcigpLmdldCgi
cGx1Z2lubWFuYWdlIikKLSAgICAgICAgc2VsZi5ob29rID0gX0hvb2tSZWxheShzZWxmLnRyYWNl
LnJvb3QuZ2V0KCJob29rIikpCi0gICAgICAgIHNlbGYuX2ltcGxwcmVmaXggPSBpbXBscHJlZml4
Ci0gICAgICAgIHNlbGYuX2lubmVyX2hvb2tleGVjID0gbGFtYmRhIGhvb2ssIG1ldGhvZHMsIGt3
YXJnczogXAotICAgICAgICAgICAgaG9vay5tdWx0aWNhbGwoCi0gICAgICAgICAgICAgICAgbWV0
aG9kcywga3dhcmdzLAotICAgICAgICAgICAgICAgIGZpcnN0cmVzdWx0PWhvb2suc3BlY19vcHRz
LmdldCgnZmlyc3RyZXN1bHQnKSwKLSAgICAgICAgICAgICkKLQotICAgIGRlZiBfaG9va2V4ZWMo
c2VsZiwgaG9vaywgbWV0aG9kcywga3dhcmdzKToKLSAgICAgICAgIyBjYWxsZWQgZnJvbSBhbGwg
aG9va2NhbGxlciBpbnN0YW5jZXMuCi0gICAgICAgICMgZW5hYmxlX3RyYWNpbmcgd2lsbCBzZXQg
aXRzIG93biB3cmFwcGluZyBmdW5jdGlvbiBhdCBzZWxmLl9pbm5lcl9ob29rZXhlYwotICAgICAg
ICByZXR1cm4gc2VsZi5faW5uZXJfaG9va2V4ZWMoaG9vaywgbWV0aG9kcywga3dhcmdzKQotCi0g
ICAgZGVmIHJlZ2lzdGVyKHNlbGYsIHBsdWdpbiwgbmFtZT1Ob25lKToKLSAgICAgICAgIiIiIFJl
Z2lzdGVyIGEgcGx1Z2luIGFuZCByZXR1cm4gaXRzIGNhbm9uaWNhbCBuYW1lIG9yIE5vbmUgaWYg
dGhlIG5hbWUKLSAgICAgICAgaXMgYmxvY2tlZCBmcm9tIHJlZ2lzdGVyaW5nLiAgUmFpc2UgYSBW
YWx1ZUVycm9yIGlmIHRoZSBwbHVnaW4gaXMgYWxyZWFkeQotICAgICAgICByZWdpc3RlcmVkLiAi
IiIKLSAgICAgICAgcGx1Z2luX25hbWUgPSBuYW1lIG9yIHNlbGYuZ2V0X2Nhbm9uaWNhbF9uYW1l
KHBsdWdpbikKLQotICAgICAgICBpZiBwbHVnaW5fbmFtZSBpbiBzZWxmLl9uYW1lMnBsdWdpbiBv
ciBwbHVnaW4gaW4gc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzOgotICAgICAgICAgICAgaWYgc2Vs
Zi5fbmFtZTJwbHVnaW4uZ2V0KHBsdWdpbl9uYW1lLCAtMSkgaXMgTm9uZToKLSAgICAgICAgICAg
ICAgICByZXR1cm4gICMgYmxvY2tlZCBwbHVnaW4sIHJldHVybiBOb25lIHRvIGluZGljYXRlIG5v
IHJlZ2lzdHJhdGlvbgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUGx1Z2luIGFscmVh
ZHkgcmVnaXN0ZXJlZDogJXM9JXNcbiVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChwbHVnaW5fbmFtZSwgcGx1Z2luLCBzZWxmLl9uYW1lMnBsdWdpbikpCi0KLSAgICAgICAgIyBY
WFggaWYgYW4gZXJyb3IgaGFwcGVucyB3ZSBzaG91bGQgbWFrZSBzdXJlIG5vIHN0YXRlIGhhcyBi
ZWVuCi0gICAgICAgICMgY2hhbmdlZCBhdCBwb2ludCBvZiByZXR1cm4KLSAgICAgICAgc2VsZi5f
bmFtZTJwbHVnaW5bcGx1Z2luX25hbWVdID0gcGx1Z2luCi0KLSAgICAgICAgIyByZWdpc3RlciBt
YXRjaGluZyBob29rIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgcGx1Z2luCi0gICAgICAgIHNlbGYu
X3BsdWdpbjJob29rY2FsbGVyc1twbHVnaW5dID0gaG9va2NhbGxlcnMgPSBbXQotICAgICAgICBm
b3IgbmFtZSBpbiBkaXIocGx1Z2luKToKLSAgICAgICAgICAgIGhvb2tpbXBsX29wdHMgPSBzZWxm
LnBhcnNlX2hvb2tpbXBsX29wdHMocGx1Z2luLCBuYW1lKQotICAgICAgICAgICAgaWYgaG9va2lt
cGxfb3B0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBub3JtYWxpemVfaG9va2ltcGxf
b3B0cyhob29raW1wbF9vcHRzKQotICAgICAgICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIocGx1
Z2luLCBuYW1lKQotICAgICAgICAgICAgICAgIGhvb2tpbXBsID0gSG9va0ltcGwocGx1Z2luLCBw
bHVnaW5fbmFtZSwgbWV0aG9kLCBob29raW1wbF9vcHRzKQotICAgICAgICAgICAgICAgIGhvb2sg
PSBnZXRhdHRyKHNlbGYuaG9vaywgbmFtZSwgTm9uZSkKLSAgICAgICAgICAgICAgICBpZiBob29r
IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGhvb2sgPSBfSG9va0NhbGxlcihuYW1lLCBz
ZWxmLl9ob29rZXhlYykKLSAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihzZWxmLmhvb2ssIG5h
bWUsIGhvb2spCi0gICAgICAgICAgICAgICAgZWxpZiBob29rLmhhc19zcGVjKCk6Ci0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9ob29rKGhvb2ssIGhvb2tpbXBsKQotICAgICAgICAg
ICAgICAgICAgICBob29rLl9tYXliZV9hcHBseV9oaXN0b3J5KGhvb2tpbXBsKQotICAgICAgICAg
ICAgICAgIGhvb2suX2FkZF9ob29raW1wbChob29raW1wbCkKLSAgICAgICAgICAgICAgICBob29r
Y2FsbGVycy5hcHBlbmQoaG9vaykKLSAgICAgICAgcmV0dXJuIHBsdWdpbl9uYW1lCi0KLSAgICBk
ZWYgcGFyc2VfaG9va2ltcGxfb3B0cyhzZWxmLCBwbHVnaW4sIG5hbWUpOgotICAgICAgICBtZXRo
b2QgPSBnZXRhdHRyKHBsdWdpbiwgbmFtZSkKLSAgICAgICAgaWYgbm90IGluc3BlY3QuaXNyb3V0
aW5lKG1ldGhvZCk6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgcmVzID0gZ2V0YXR0cihtZXRob2QsIHNlbGYucHJvamVjdF9uYW1lICsgIl9pbXBsIiwgTm9u
ZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHJlcyA9IHt9Ci0gICAg
ICAgIGlmIHJlcyBpcyBub3QgTm9uZSBhbmQgbm90IGlzaW5zdGFuY2UocmVzLCBkaWN0KToKLSAg
ICAgICAgICAgICMgZmFsc2UgcG9zaXRpdmUKLSAgICAgICAgICAgIHJlcyA9IE5vbmUKLSAgICAg
ICAgZWxpZiByZXMgaXMgTm9uZSBhbmQgc2VsZi5faW1wbHByZWZpeCBhbmQgbmFtZS5zdGFydHN3
aXRoKHNlbGYuX2ltcGxwcmVmaXgpOgotICAgICAgICAgICAgcmVzID0ge30KLSAgICAgICAgcmV0
dXJuIHJlcwotCi0gICAgZGVmIHVucmVnaXN0ZXIoc2VsZiwgcGx1Z2luPU5vbmUsIG5hbWU9Tm9u
ZSk6Ci0gICAgICAgICIiIiB1bnJlZ2lzdGVyIGEgcGx1Z2luIG9iamVjdCBhbmQgYWxsIGl0cyBj
b250YWluZWQgaG9vayBpbXBsZW1lbnRhdGlvbnMKLSAgICAgICAgZnJvbSBpbnRlcm5hbCBkYXRh
IHN0cnVjdHVyZXMuICIiIgotICAgICAgICBpZiBuYW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICBh
c3NlcnQgcGx1Z2luIGlzIG5vdCBOb25lLCAib25lIG9mIG5hbWUgb3IgcGx1Z2luIG5lZWRzIHRv
IGJlIHNwZWNpZmllZCIKLSAgICAgICAgICAgIG5hbWUgPSBzZWxmLmdldF9uYW1lKHBsdWdpbikK
LQotICAgICAgICBpZiBwbHVnaW4gaXMgTm9uZToKLSAgICAgICAgICAgIHBsdWdpbiA9IHNlbGYu
Z2V0X3BsdWdpbihuYW1lKQotCi0gICAgICAgICMgaWYgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0g
PT0gTm9uZSByZWdpc3RyYXRpb24gd2FzIGJsb2NrZWQ6IGlnbm9yZQotICAgICAgICBpZiBzZWxm
Ll9uYW1lMnBsdWdpbi5nZXQobmFtZSk6Ci0gICAgICAgICAgICBkZWwgc2VsZi5fbmFtZTJwbHVn
aW5bbmFtZV0KLQotICAgICAgICBmb3IgaG9va2NhbGxlciBpbiBzZWxmLl9wbHVnaW4yaG9va2Nh
bGxlcnMucG9wKHBsdWdpbiwgW10pOgotICAgICAgICAgICAgaG9va2NhbGxlci5fcmVtb3ZlX3Bs
dWdpbihwbHVnaW4pCi0KLSAgICAgICAgcmV0dXJuIHBsdWdpbgotCi0gICAgZGVmIHNldF9ibG9j
a2VkKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiIgYmxvY2sgcmVnaXN0cmF0aW9ucyBvZiB0aGUg
Z2l2ZW4gbmFtZSwgdW5yZWdpc3RlciBpZiBhbHJlYWR5IHJlZ2lzdGVyZWQuICIiIgotICAgICAg
ICBzZWxmLnVucmVnaXN0ZXIobmFtZT1uYW1lKQotICAgICAgICBzZWxmLl9uYW1lMnBsdWdpbltu
YW1lXSA9IE5vbmUKLQotICAgIGRlZiBpc19ibG9ja2VkKHNlbGYsIG5hbWUpOgotICAgICAgICAi
IiIgcmV0dXJuIFRydWUgaWYgdGhlIG5hbWUgYmxvZ3MgcmVnaXN0ZXJpbmcgcGx1Z2lucyBvZiB0
aGF0IG5hbWUuICIiIgotICAgICAgICByZXR1cm4gbmFtZSBpbiBzZWxmLl9uYW1lMnBsdWdpbiBh
bmQgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0gaXMgTm9uZQotCi0gICAgZGVmIGFkZF9ob29rc3Bl
Y3Moc2VsZiwgbW9kdWxlX29yX2NsYXNzKToKLSAgICAgICAgIiIiIGFkZCBuZXcgaG9vayBzcGVj
aWZpY2F0aW9ucyBkZWZpbmVkIGluIHRoZSBnaXZlbiBtb2R1bGVfb3JfY2xhc3MuCi0gICAgICAg
IEZ1bmN0aW9ucyBhcmUgcmVjb2duaXplZCBpZiB0aGV5IGhhdmUgYmVlbiBkZWNvcmF0ZWQgYWNj
b3JkaW5nbHkuICIiIgotICAgICAgICBuYW1lcyA9IFtdCi0gICAgICAgIGZvciBuYW1lIGluIGRp
cihtb2R1bGVfb3JfY2xhc3MpOgotICAgICAgICAgICAgc3BlY19vcHRzID0gc2VsZi5wYXJzZV9o
b29rc3BlY19vcHRzKG1vZHVsZV9vcl9jbGFzcywgbmFtZSkKLSAgICAgICAgICAgIGlmIHNwZWNf
b3B0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBoYyA9IGdldGF0dHIoc2VsZi5ob29r
LCBuYW1lLCBOb25lKQotICAgICAgICAgICAgICAgIGlmIGhjIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgICAgIGhjID0gX0hvb2tDYWxsZXIobmFtZSwgc2VsZi5faG9va2V4ZWMsIG1vZHVsZV9v
cl9jbGFzcywgc3BlY19vcHRzKQotICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKHNlbGYuaG9v
aywgbmFtZSwgaGMpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
IyBwbHVnaW5zIHJlZ2lzdGVyZWQgdGhpcyBob29rIHdpdGhvdXQga25vd2luZyB0aGUgc3BlYwot
ICAgICAgICAgICAgICAgICAgICBoYy5zZXRfc3BlY2lmaWNhdGlvbihtb2R1bGVfb3JfY2xhc3Ms
IHNwZWNfb3B0cykKLSAgICAgICAgICAgICAgICAgICAgZm9yIGhvb2tmdW5jdGlvbiBpbiAoaGMu
X3dyYXBwZXJzICsgaGMuX25vbndyYXBwZXJzKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuX3ZlcmlmeV9ob29rKGhjLCBob29rZnVuY3Rpb24pCi0gICAgICAgICAgICAgICAgbmFtZXMu
YXBwZW5kKG5hbWUpCi0KLSAgICAgICAgaWYgbm90IG5hbWVzOgotICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigiZGlkIG5vdCBmaW5kIGFueSAlciBob29rcyBpbiAlciIgJQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2VsZi5wcm9qZWN0X25hbWUsIG1vZHVsZV9vcl9jbGFzcykp
Ci0KLSAgICBkZWYgcGFyc2VfaG9va3NwZWNfb3B0cyhzZWxmLCBtb2R1bGVfb3JfY2xhc3MsIG5h
bWUpOgotICAgICAgICBtZXRob2QgPSBnZXRhdHRyKG1vZHVsZV9vcl9jbGFzcywgbmFtZSkKLSAg
ICAgICAgcmV0dXJuIGdldGF0dHIobWV0aG9kLCBzZWxmLnByb2plY3RfbmFtZSArICJfc3BlYyIs
IE5vbmUpCi0KLSAgICBkZWYgZ2V0X3BsdWdpbnMoc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4g
dGhlIHNldCBvZiByZWdpc3RlcmVkIHBsdWdpbnMuICIiIgotICAgICAgICByZXR1cm4gc2V0KHNl
bGYuX3BsdWdpbjJob29rY2FsbGVycykKLQotICAgIGRlZiBpc19yZWdpc3RlcmVkKHNlbGYsIHBs
dWdpbik6Ci0gICAgICAgICIiIiBSZXR1cm4gVHJ1ZSBpZiB0aGUgcGx1Z2luIGlzIGFscmVhZHkg
cmVnaXN0ZXJlZC4gIiIiCi0gICAgICAgIHJldHVybiBwbHVnaW4gaW4gc2VsZi5fcGx1Z2luMmhv
b2tjYWxsZXJzCi0KLSAgICBkZWYgZ2V0X2Nhbm9uaWNhbF9uYW1lKHNlbGYsIHBsdWdpbik6Ci0g
ICAgICAgICIiIiBSZXR1cm4gY2Fub25pY2FsIG5hbWUgZm9yIGEgcGx1Z2luIG9iamVjdC4gTm90
ZSB0aGF0IGEgcGx1Z2luCi0gICAgICAgIG1heSBiZSByZWdpc3RlcmVkIHVuZGVyIGEgZGlmZmVy
ZW50IG5hbWUgd2hpY2ggd2FzIHNwZWNpZmllZAotICAgICAgICBieSB0aGUgY2FsbGVyIG9mIHJl
Z2lzdGVyKHBsdWdpbiwgbmFtZSkuIFRvIG9idGFpbiB0aGUgbmFtZQotICAgICAgICBvZiBhbiBy
ZWdpc3RlcmVkIHBsdWdpbiB1c2UgYGBnZXRfbmFtZShwbHVnaW4pYGAgaW5zdGVhZC4iIiIKLSAg
ICAgICAgcmV0dXJuIGdldGF0dHIocGx1Z2luLCAiX19uYW1lX18iLCBOb25lKSBvciBzdHIoaWQo
cGx1Z2luKSkKLQotICAgIGRlZiBnZXRfcGx1Z2luKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiIg
UmV0dXJuIGEgcGx1Z2luIG9yIE5vbmUgZm9yIHRoZSBnaXZlbiBuYW1lLiAiIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYuX25hbWUycGx1Z2luLmdldChuYW1lKQotCi0gICAgZGVmIGhhc19wbHVnaW4o
c2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIiBSZXR1cm4gVHJ1ZSBpZiBhIHBsdWdpbiB3aXRoIHRo
ZSBnaXZlbiBuYW1lIGlzIHJlZ2lzdGVyZWQuICIiIgotICAgICAgICByZXR1cm4gc2VsZi5nZXRf
cGx1Z2luKG5hbWUpIGlzIG5vdCBOb25lCi0KLSAgICBkZWYgZ2V0X25hbWUoc2VsZiwgcGx1Z2lu
KToKLSAgICAgICAgIiIiIFJldHVybiBuYW1lIGZvciByZWdpc3RlcmVkIHBsdWdpbiBvciBOb25l
IGlmIG5vdCByZWdpc3RlcmVkLiAiIiIKLSAgICAgICAgZm9yIG5hbWUsIHZhbCBpbiBzZWxmLl9u
YW1lMnBsdWdpbi5pdGVtcygpOgotICAgICAgICAgICAgaWYgcGx1Z2luID09IHZhbDoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbmFtZQotCi0gICAgZGVmIF92ZXJpZnlfaG9vayhzZWxmLCBob29r
LCBob29raW1wbCk6Ci0gICAgICAgIGlmIGhvb2suaXNfaGlzdG9yaWMoKSBhbmQgaG9va2ltcGwu
aG9va3dyYXBwZXI6Ci0gICAgICAgICAgICByYWlzZSBQbHVnaW5WYWxpZGF0aW9uRXJyb3IoCi0g
ICAgICAgICAgICAgICAgIlBsdWdpbiAlclxuaG9vayAlclxuaGlzdG9yaWMgaW5jb21wYXRpYmxl
IHRvIGhvb2t3cmFwcGVyIiAlCi0gICAgICAgICAgICAgICAgKGhvb2tpbXBsLnBsdWdpbl9uYW1l
LCBob29rLm5hbWUpKQotCi0gICAgICAgICMgcG9zaXRpb25hbCBhcmcgY2hlY2tpbmcKLSAgICAg
ICAgbm90aW5zcGVjID0gc2V0KGhvb2tpbXBsLmFyZ25hbWVzKSAtIHNldChob29rLmFyZ25hbWVz
KQotICAgICAgICBpZiBub3RpbnNwZWM6Ci0gICAgICAgICAgICByYWlzZSBQbHVnaW5WYWxpZGF0
aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgIlBsdWdpbiAlciBmb3IgaG9vayAlclxuaG9va2lt
cGwgZGVmaW5pdGlvbjogJXNcbiIKLSAgICAgICAgICAgICAgICAiQXJndW1lbnQocykgJXMgYXJl
IGRlY2xhcmVkIGluIHRoZSBob29raW1wbCBidXQgIgotICAgICAgICAgICAgICAgICJjYW4gbm90
IGJlIGZvdW5kIGluIHRoZSBob29rc3BlYyIgJQotICAgICAgICAgICAgICAgIChob29raW1wbC5w
bHVnaW5fbmFtZSwgaG9vay5uYW1lLAotICAgICAgICAgICAgICAgICBfZm9ybWF0ZGVmKGhvb2tp
bXBsLmZ1bmN0aW9uKSwgbm90aW5zcGVjKQotICAgICAgICAgICAgKQotCi0gICAgZGVmIGNoZWNr
X3BlbmRpbmcoc2VsZik6Ci0gICAgICAgICIiIiBWZXJpZnkgdGhhdCBhbGwgaG9va3Mgd2hpY2gg
aGF2ZSBub3QgYmVlbiB2ZXJpZmllZCBhZ2FpbnN0Ci0gICAgICAgIGEgaG9vayBzcGVjaWZpY2F0
aW9uIGFyZSBvcHRpb25hbCwgb3RoZXJ3aXNlIHJhaXNlIFBsdWdpblZhbGlkYXRpb25FcnJvciIi
IgotICAgICAgICBmb3IgbmFtZSBpbiBzZWxmLmhvb2suX19kaWN0X186Ci0gICAgICAgICAgICBp
ZiBuYW1lWzBdICE9ICJfIjoKLSAgICAgICAgICAgICAgICBob29rID0gZ2V0YXR0cihzZWxmLmhv
b2ssIG5hbWUpCi0gICAgICAgICAgICAgICAgaWYgbm90IGhvb2suaGFzX3NwZWMoKToKLSAgICAg
ICAgICAgICAgICAgICAgZm9yIGhvb2tpbXBsIGluIChob29rLl93cmFwcGVycyArIGhvb2suX25v
bndyYXBwZXJzKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBob29raW1wbC5vcHRp
b25hbGhvb2s6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgUGx1Z2luVmFsaWRh
dGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5rbm93biBob29r
ICVyIGluIHBsdWdpbiAlciIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmFt
ZSwgaG9va2ltcGwucGx1Z2luKSkKLQotICAgIGRlZiBsb2FkX3NldHVwdG9vbHNfZW50cnlwb2lu
dHMoc2VsZiwgZW50cnlwb2ludF9uYW1lKToKLSAgICAgICAgIiIiIExvYWQgbW9kdWxlcyBmcm9t
IHF1ZXJ5aW5nIHRoZSBzcGVjaWZpZWQgc2V0dXB0b29scyBlbnRyeXBvaW50IG5hbWUuCi0gICAg
ICAgIFJldHVybiB0aGUgbnVtYmVyIG9mIGxvYWRlZCBwbHVnaW5zLiAiIiIKLSAgICAgICAgZnJv
bSBwa2dfcmVzb3VyY2VzIGltcG9ydCAoaXRlcl9lbnRyeV9wb2ludHMsIERpc3RyaWJ1dGlvbk5v
dEZvdW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uQ29uZmxp
Y3QpCi0gICAgICAgIGZvciBlcCBpbiBpdGVyX2VudHJ5X3BvaW50cyhlbnRyeXBvaW50X25hbWUp
OgotICAgICAgICAgICAgIyBpcyB0aGUgcGx1Z2luIHJlZ2lzdGVyZWQgb3IgYmxvY2tlZD8KLSAg
ICAgICAgICAgIGlmIHNlbGYuZ2V0X3BsdWdpbihlcC5uYW1lKSBvciBzZWxmLmlzX2Jsb2NrZWQo
ZXAubmFtZSk6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICBwbHVnaW4gPSBlcC5sb2FkKCkKLSAgICAgICAgICAgIGV4Y2VwdCBEaXN0
cmlidXRpb25Ob3RGb3VuZDoKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAg
ZXhjZXB0IFZlcnNpb25Db25mbGljdCBhcyBlOgotICAgICAgICAgICAgICAgIHJhaXNlIFBsdWdp
blZhbGlkYXRpb25FcnJvcigKLSAgICAgICAgICAgICAgICAgICAgIlBsdWdpbiAlciBjb3VsZCBu
b3QgYmUgbG9hZGVkOiAlcyEiICUgKGVwLm5hbWUsIGUpKQotICAgICAgICAgICAgc2VsZi5yZWdp
c3RlcihwbHVnaW4sIG5hbWU9ZXAubmFtZSkKLSAgICAgICAgICAgIHNlbGYuX3BsdWdpbl9kaXN0
aW5mby5hcHBlbmQoKHBsdWdpbiwgZXAuZGlzdCkpCi0gICAgICAgIHJldHVybiBsZW4oc2VsZi5f
cGx1Z2luX2Rpc3RpbmZvKQotCi0gICAgZGVmIGxpc3RfcGx1Z2luX2Rpc3RpbmZvKHNlbGYpOgot
ICAgICAgICAiIiIgcmV0dXJuIGxpc3Qgb2YgZGlzdGluZm8vcGx1Z2luIHR1cGxlcyBmb3IgYWxs
IHNldHVwdG9vbHMgcmVnaXN0ZXJlZAotICAgICAgICBwbHVnaW5zLiAiIiIKLSAgICAgICAgcmV0
dXJuIGxpc3Qoc2VsZi5fcGx1Z2luX2Rpc3RpbmZvKQotCi0gICAgZGVmIGxpc3RfbmFtZV9wbHVn
aW4oc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gbGlzdCBvZiBuYW1lL3BsdWdpbiBwYWlycy4g
IiIiCi0gICAgICAgIHJldHVybiBsaXN0KHNlbGYuX25hbWUycGx1Z2luLml0ZW1zKCkpCi0KLSAg
ICBkZWYgZ2V0X2hvb2tjYWxsZXJzKHNlbGYsIHBsdWdpbik6Ci0gICAgICAgICIiIiBnZXQgYWxs
IGhvb2sgY2FsbGVycyBmb3IgdGhlIHNwZWNpZmllZCBwbHVnaW4uICIiIgotICAgICAgICByZXR1
cm4gc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzLmdldChwbHVnaW4pCi0KLSAgICBkZWYgYWRkX2hv
b2tjYWxsX21vbml0b3Jpbmcoc2VsZiwgYmVmb3JlLCBhZnRlcik6Ci0gICAgICAgICIiIiBhZGQg
YmVmb3JlL2FmdGVyIHRyYWNpbmcgZnVuY3Rpb25zIGZvciBhbGwgaG9va3MKLSAgICAgICAgYW5k
IHJldHVybiBhbiB1bmRvIGZ1bmN0aW9uIHdoaWNoLCB3aGVuIGNhbGxlZCwKLSAgICAgICAgd2ls
bCByZW1vdmUgdGhlIGFkZGVkIHRyYWNlcnMuCi0KLSAgICAgICAgYGBiZWZvcmUoaG9va19uYW1l
LCBob29rX2ltcGxzLCBrd2FyZ3MpYGAgd2lsbCBiZSBjYWxsZWQgYWhlYWQKLSAgICAgICAgb2Yg
YWxsIGhvb2sgY2FsbHMgYW5kIHJlY2VpdmUgYSBob29rY2FsbGVyIGluc3RhbmNlLCBhIGxpc3QK
LSAgICAgICAgb2YgSG9va0ltcGwgaW5zdGFuY2VzIGFuZCB0aGUga2V5d29yZCBhcmd1bWVudHMg
Zm9yIHRoZSBob29rIGNhbGwuCi0KLSAgICAgICAgYGBhZnRlcihvdXRjb21lLCBob29rX25hbWUs
IGhvb2tfaW1wbHMsIGt3YXJncylgYCByZWNlaXZlcyB0aGUKLSAgICAgICAgc2FtZSBhcmd1bWVu
dHMgYXMgYGBiZWZvcmVgYCBidXQgYWxzbyBhIDpweTpjbGFzczpgX1Jlc3VsdGBgIG9iamVjdAot
ICAgICAgICB3aGljaCByZXByZXNlbnRzIHRoZSByZXN1bHQgb2YgdGhlIG92ZXJhbGwgaG9vayBj
YWxsLgotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIF9UcmFjZWRIb29rRXhlY3V0aW9uKHNl
bGYsIGJlZm9yZSwgYWZ0ZXIpLnVuZG8KLQotICAgIGRlZiBlbmFibGVfdHJhY2luZyhzZWxmKToK
LSAgICAgICAgIiIiIGVuYWJsZSB0cmFjaW5nIG9mIGhvb2sgY2FsbHMgYW5kIHJldHVybiBhbiB1
bmRvIGZ1bmN0aW9uLiAiIiIKLSAgICAgICAgaG9va3RyYWNlID0gc2VsZi5ob29rLl90cmFjZQot
Ci0gICAgICAgIGRlZiBiZWZvcmUoaG9va19uYW1lLCBtZXRob2RzLCBrd2FyZ3MpOgotICAgICAg
ICAgICAgaG9va3RyYWNlLnJvb3QuaW5kZW50ICs9IDEKLSAgICAgICAgICAgIGhvb2t0cmFjZSho
b29rX25hbWUsIGt3YXJncykKLQotICAgICAgICBkZWYgYWZ0ZXIob3V0Y29tZSwgaG9va19uYW1l
LCBtZXRob2RzLCBrd2FyZ3MpOgotICAgICAgICAgICAgaWYgb3V0Y29tZS5leGNpbmZvIGlzIE5v
bmU6Ci0gICAgICAgICAgICAgICAgaG9va3RyYWNlKCJmaW5pc2giLCBob29rX25hbWUsICItLT4i
LCBvdXRjb21lLmdldF9yZXN1bHQoKSkKLSAgICAgICAgICAgIGhvb2t0cmFjZS5yb290LmluZGVu
dCAtPSAxCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuYWRkX2hvb2tjYWxsX21vbml0b3JpbmcoYmVm
b3JlLCBhZnRlcikKLQotICAgIGRlZiBzdWJzZXRfaG9va19jYWxsZXIoc2VsZiwgbmFtZSwgcmVt
b3ZlX3BsdWdpbnMpOgotICAgICAgICAiIiIgUmV0dXJuIGEgbmV3IF9Ib29rQ2FsbGVyIGluc3Rh
bmNlIGZvciB0aGUgbmFtZWQgbWV0aG9kCi0gICAgICAgIHdoaWNoIG1hbmFnZXMgY2FsbHMgdG8g
YWxsIHJlZ2lzdGVyZWQgcGx1Z2lucyBleGNlcHQgdGhlCi0gICAgICAgIG9uZXMgZnJvbSByZW1v
dmVfcGx1Z2lucy4gIiIiCi0gICAgICAgIG9yaWcgPSBnZXRhdHRyKHNlbGYuaG9vaywgbmFtZSkK
LSAgICAgICAgcGx1Z2luc190b19yZW1vdmUgPSBbcGx1ZyBmb3IgcGx1ZyBpbiByZW1vdmVfcGx1
Z2lucyBpZiBoYXNhdHRyKHBsdWcsIG5hbWUpXQotICAgICAgICBpZiBwbHVnaW5zX3RvX3JlbW92
ZToKLSAgICAgICAgICAgIGhjID0gX0hvb2tDYWxsZXIob3JpZy5uYW1lLCBvcmlnLl9ob29rZXhl
Yywgb3JpZy5fc3BlY21vZHVsZV9vcl9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3JpZy5zcGVjX29wdHMpCi0gICAgICAgICAgICBmb3IgaG9va2ltcGwgaW4gKG9yaWcuX3dy
YXBwZXJzICsgb3JpZy5fbm9ud3JhcHBlcnMpOgotICAgICAgICAgICAgICAgIHBsdWdpbiA9IGhv
b2tpbXBsLnBsdWdpbgotICAgICAgICAgICAgICAgIGlmIHBsdWdpbiBub3QgaW4gcGx1Z2luc190
b19yZW1vdmU6Ci0gICAgICAgICAgICAgICAgICAgIGhjLl9hZGRfaG9va2ltcGwoaG9va2ltcGwp
Ci0gICAgICAgICAgICAgICAgICAgICMgd2UgYWxzbyBrZWVwIHRyYWNrIG9mIHRoaXMgaG9vayBj
YWxsZXIgc28gaXQKLSAgICAgICAgICAgICAgICAgICAgIyBnZXRzIHByb3Blcmx5IHJlbW92ZWQg
b24gcGx1Z2luIHVucmVnaXN0cmF0aW9uCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3BsdWdp
bjJob29rY2FsbGVycy5zZXRkZWZhdWx0KHBsdWdpbiwgW10pLmFwcGVuZChoYykKLSAgICAgICAg
ICAgIHJldHVybiBoYwotICAgICAgICByZXR1cm4gb3JpZwotCi0KLWRlZiB2YXJuYW1lcyhmdW5j
KToKLSAgICAiIiJSZXR1cm4gdHVwbGUgb2YgcG9zaXRpb25hbCBhbmQga2V5d3JvcmQgYXJndW1l
bnQgbmFtZXMgZm9yIGEgZnVuY3Rpb24sCi0gICAgbWV0aG9kLCBjbGFzcyBvciBjYWxsYWJsZS4K
LQotICAgIEluIGNhc2Ugb2YgYSBjbGFzcywgaXRzIGBgX19pbml0X19gYCBtZXRob2QgaXMgY29u
c2lkZXJlZC4KLSAgICBGb3IgbWV0aG9kcyB0aGUgYGBzZWxmYGAgcGFyYW1ldGVyIGlzIG5vdCBp
bmNsdWRlZC4KLSAgICAiIiIKLSAgICBjYWNoZSA9IGdldGF0dHIoZnVuYywgIl9fZGljdF9fIiwg
e30pCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gY2FjaGVbIl92YXJuYW1lcyJdCi0gICAgZXhj
ZXB0IEtleUVycm9yOgotICAgICAgICBwYXNzCi0KLSAgICBpZiBpbnNwZWN0LmlzY2xhc3MoZnVu
Yyk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZ1bmMgPSBmdW5jLl9faW5pdF9fCi0gICAg
ICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiAoKSwgKCkKLSAg
ICBlbGlmIG5vdCBpbnNwZWN0Lmlzcm91dGluZShmdW5jKTogICMgY2FsbGFibGUgb2JqZWN0Pwot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmdW5jID0gZ2V0YXR0cihmdW5jLCAnX19jYWxsX18n
LCBmdW5jKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgcmV0dXJuICgp
Ci0KLSAgICB0cnk6ICAjIGZ1bmMgTVVTVCBiZSBhIGZ1bmN0aW9uIG9yIG1ldGhvZCBoZXJlIG9y
IHdlIHdvbid0IHBhcnNlIGFueSBhcmdzCi0gICAgICAgIHNwZWMgPSBfZ2V0YXJnc3BlYyhmdW5j
KQotICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgIHJldHVybiAoKSwgKCkKLQotICAgIGFy
Z3MsIGRlZmF1bHRzID0gdHVwbGUoc3BlYy5hcmdzKSwgc3BlYy5kZWZhdWx0cwotICAgIGlmIGRl
ZmF1bHRzOgotICAgICAgICBpbmRleCA9IC1sZW4oZGVmYXVsdHMpCi0gICAgICAgIGFyZ3MsIGRl
ZmF1bHRzID0gYXJnc1s6aW5kZXhdLCB0dXBsZShhcmdzW2luZGV4Ol0pCi0gICAgZWxzZToKLSAg
ICAgICAgZGVmYXVsdHMgPSAoKQotCi0gICAgIyBzdHJpcCBhbnkgaW1wbGljaXQgaW5zdGFuY2Ug
YXJnCi0gICAgaWYgYXJnczoKLSAgICAgICAgaWYgaW5zcGVjdC5pc21ldGhvZChmdW5jKSBvciAo
Ci0gICAgICAgICAgICAnLicgaW4gZ2V0YXR0cihmdW5jLCAnX19xdWFsbmFtZV9fJywgKCkpIGFu
ZCBhcmdzWzBdID09ICdzZWxmJwotICAgICAgICApOgotICAgICAgICAgICAgYXJncyA9IGFyZ3Nb
MTpdCi0KLSAgICBhc3NlcnQgInNlbGYiIG5vdCBpbiBhcmdzICAjIGJlc3QgbmFtaW5nIHByYWN0
aXNlcyBjaGVjaz8KLSAgICB0cnk6Ci0gICAgICAgIGNhY2hlWyJfdmFybmFtZXMiXSA9IGFyZ3Ms
IGRlZmF1bHRzCi0gICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAgcGFzcwotICAgIHJldHVy
biBhcmdzLCBkZWZhdWx0cwotCi0KLWNsYXNzIF9Ib29rUmVsYXkob2JqZWN0KToKLSAgICAiIiIg
aG9vayBob2xkZXIgb2JqZWN0IGZvciBwZXJmb3JtaW5nIDE6TiBob29rIGNhbGxzIHdoZXJlIE4g
aXMgdGhlIG51bWJlcgotICAgIG9mIHJlZ2lzdGVyZWQgcGx1Z2lucy4KLQotICAgICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHRyYWNlKToKLSAgICAgICAgc2VsZi5fdHJhY2UgPSB0cmFj
ZQotCi0KLWNsYXNzIF9Ib29rQ2FsbGVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IG5hbWUsIGhvb2tfZXhlY3V0ZSwgc3BlY21vZHVsZV9vcl9jbGFzcz1Ob25lLAotICAgICAgICAg
ICAgICAgICBzcGVjX29wdHM9Tm9uZSk6Ci0gICAgICAgIHNlbGYubmFtZSA9IG5hbWUKLSAgICAg
ICAgc2VsZi5fd3JhcHBlcnMgPSBbXQotICAgICAgICBzZWxmLl9ub253cmFwcGVycyA9IFtdCi0g
ICAgICAgIHNlbGYuX2hvb2tleGVjID0gaG9va19leGVjdXRlCi0gICAgICAgIHNlbGYuX3NwZWNt
b2R1bGVfb3JfY2xhc3MgPSBOb25lCi0gICAgICAgIHNlbGYuYXJnbmFtZXMgPSBOb25lCi0gICAg
ICAgIHNlbGYua3dhcmduYW1lcyA9IE5vbmUKLSAgICAgICAgc2VsZi5tdWx0aWNhbGwgPSBfbXVs
dGljYWxsCi0gICAgICAgIHNlbGYuc3BlY19vcHRzID0gc3BlY19vcHRzIG9yIHt9Ci0gICAgICAg
IGlmIHNwZWNtb2R1bGVfb3JfY2xhc3MgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLnNl
dF9zcGVjaWZpY2F0aW9uKHNwZWNtb2R1bGVfb3JfY2xhc3MsIHNwZWNfb3B0cykKLQotICAgIGRl
ZiBoYXNfc3BlYyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3NwZWNtb2R1bGVfb3JfY2xh
c3MgaXMgbm90IE5vbmUKLQotICAgIGRlZiBzZXRfc3BlY2lmaWNhdGlvbihzZWxmLCBzcGVjbW9k
dWxlX29yX2NsYXNzLCBzcGVjX29wdHMpOgotICAgICAgICBhc3NlcnQgbm90IHNlbGYuaGFzX3Nw
ZWMoKQotICAgICAgICBzZWxmLl9zcGVjbW9kdWxlX29yX2NsYXNzID0gc3BlY21vZHVsZV9vcl9j
bGFzcwotICAgICAgICBzcGVjZnVuYyA9IGdldGF0dHIoc3BlY21vZHVsZV9vcl9jbGFzcywgc2Vs
Zi5uYW1lKQotICAgICAgICAjIGdldCBzcGVjIGFyZyBzaWduYXR1cmUKLSAgICAgICAgYXJnbmFt
ZXMsIHNlbGYua3dhcmduYW1lcyA9IHZhcm5hbWVzKHNwZWNmdW5jKQotICAgICAgICBzZWxmLmFy
Z25hbWVzID0gWyJfX211bHRpY2FsbF9fIl0gKyBsaXN0KGFyZ25hbWVzKQotICAgICAgICBzZWxm
LnNwZWNfb3B0cy51cGRhdGUoc3BlY19vcHRzKQotICAgICAgICBpZiBzcGVjX29wdHMuZ2V0KCJo
aXN0b3JpYyIpOgotICAgICAgICAgICAgc2VsZi5fY2FsbF9oaXN0b3J5ID0gW10KLQotICAgIGRl
ZiBpc19oaXN0b3JpYyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGhhc2F0dHIoc2VsZiwgIl9jYWxs
X2hpc3RvcnkiKQotCi0gICAgZGVmIF9yZW1vdmVfcGx1Z2luKHNlbGYsIHBsdWdpbik6Ci0gICAg
ICAgIGRlZiByZW1vdmUod3JhcHBlcnMpOgotICAgICAgICAgICAgZm9yIGksIG1ldGhvZCBpbiBl
bnVtZXJhdGUod3JhcHBlcnMpOgotICAgICAgICAgICAgICAgIGlmIG1ldGhvZC5wbHVnaW4gPT0g
cGx1Z2luOgotICAgICAgICAgICAgICAgICAgICBkZWwgd3JhcHBlcnNbaV0KLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgaWYgcmVtb3ZlKHNlbGYuX3dyYXBwZXJzKSBp
cyBOb25lOgotICAgICAgICAgICAgaWYgcmVtb3ZlKHNlbGYuX25vbndyYXBwZXJzKSBpcyBOb25l
OgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInBsdWdpbiAlciBub3QgZm91bmQi
ICUgKHBsdWdpbiwpKQotCi0gICAgZGVmIF9hZGRfaG9va2ltcGwoc2VsZiwgaG9va2ltcGwpOgot
ICAgICAgICAiIiJBIGFuIGltcGxlbWVudGF0aW9uIHRvIHRoZSBjYWxsYmFjayBjaGFpbi4KLSAg
ICAgICAgIiIiCi0gICAgICAgIGlmIGhvb2tpbXBsLmhvb2t3cmFwcGVyOgotICAgICAgICAgICAg
bWV0aG9kcyA9IHNlbGYuX3dyYXBwZXJzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBtZXRo
b2RzID0gc2VsZi5fbm9ud3JhcHBlcnMKLQotICAgICAgICBpZiBob29raW1wbC50cnlsYXN0Ogot
ICAgICAgICAgICAgbWV0aG9kcy5pbnNlcnQoMCwgaG9va2ltcGwpCi0gICAgICAgIGVsaWYgaG9v
a2ltcGwudHJ5Zmlyc3Q6Ci0gICAgICAgICAgICBtZXRob2RzLmFwcGVuZChob29raW1wbCkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICMgZmluZCBsYXN0IG5vbi10cnlmaXJzdCBtZXRob2QK
LSAgICAgICAgICAgIGkgPSBsZW4obWV0aG9kcykgLSAxCi0gICAgICAgICAgICB3aGlsZSBpID49
IDAgYW5kIG1ldGhvZHNbaV0udHJ5Zmlyc3Q6Ci0gICAgICAgICAgICAgICAgaSAtPSAxCi0gICAg
ICAgICAgICBtZXRob2RzLmluc2VydChpICsgMSwgaG9va2ltcGwpCi0KLSAgICAgICAgaWYgJ19f
bXVsdGljYWxsX18nIGluIGhvb2tpbXBsLmFyZ25hbWVzOgotICAgICAgICAgICAgd2FybmluZ3Mu
d2FybigKLSAgICAgICAgICAgICAgICAiU3VwcG9ydCBmb3IgX19tdWx0aWNhbGxfXyBpcyBub3cg
ZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSIKLSAgICAgICAgICAgICAgICAicmVtb3ZlZCBpbiBhbiB1
cGNvbWluZyByZWxlYXNlLiIsCi0gICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nCi0g
ICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLm11bHRpY2FsbCA9IF9sZWdhY3ltdWx0aWNh
bGwKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8X0hvb2tDYWxs
ZXIgJXI+IiAlIChzZWxmLm5hbWUsKQotCi0gICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAq
Kmt3YXJncyk6Ci0gICAgICAgIGlmIGFyZ3M6Ci0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3Io
Imhvb2sgY2FsbGluZyBzdXBwb3J0cyBvbmx5IGtleXdvcmQgYXJndW1lbnRzIikKLSAgICAgICAg
YXNzZXJ0IG5vdCBzZWxmLmlzX2hpc3RvcmljKCkKLSAgICAgICAgaWYgc2VsZi5hcmduYW1lczoK
LSAgICAgICAgICAgIG5vdGluY2FsbCA9IHNldChzZWxmLmFyZ25hbWVzKSAtIHNldChbJ19fbXVs
dGljYWxsX18nXSkgLSBzZXQoCi0gICAgICAgICAgICAgICAga3dhcmdzLmtleXMoKSkKLSAgICAg
ICAgICAgIGlmIG5vdGluY2FsbDoKLSAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAotICAg
ICAgICAgICAgICAgICAgICAiQXJndW1lbnQocykge30gd2hpY2ggYXJlIGRlY2xhcmVkIGluIHRo
ZSBob29rc3BlYyAiCi0gICAgICAgICAgICAgICAgICAgICJjYW4gbm90IGJlIGZvdW5kIGluIHRo
aXMgaG9vayBjYWxsIgotICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KHR1cGxlKG5vdGluY2Fs
bCkpLAotICAgICAgICAgICAgICAgICAgICBzdGFja2xldmVsPTIsCi0gICAgICAgICAgICAgICAg
KQotICAgICAgICByZXR1cm4gc2VsZi5faG9va2V4ZWMoc2VsZiwgc2VsZi5fbm9ud3JhcHBlcnMg
KyBzZWxmLl93cmFwcGVycywga3dhcmdzKQotCi0gICAgZGVmIGNhbGxfaGlzdG9yaWMoc2VsZiwg
cHJvYz1Ob25lLCBrd2FyZ3M9Tm9uZSk6Ci0gICAgICAgICIiIiBjYWxsIHRoZSBob29rIHdpdGgg
Z2l2ZW4gYGBrd2FyZ3NgYCBmb3IgYWxsIHJlZ2lzdGVyZWQgcGx1Z2lucyBhbmQKLSAgICAgICAg
Zm9yIGFsbCBwbHVnaW5zIHdoaWNoIHdpbGwgYmUgcmVnaXN0ZXJlZCBhZnRlcndhcmRzLgotCi0g
ICAgICAgIElmIGBgcHJvY2BgIGlzIG5vdCBOb25lIGl0IHdpbGwgYmUgY2FsbGVkIGZvciBmb3Ig
ZWFjaCBub24tTm9uZSByZXN1bHQKLSAgICAgICAgb2J0YWluZWQgZnJvbSBhIGhvb2sgaW1wbGVt
ZW50YXRpb24uCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9jYWxsX2hpc3RvcnkuYXBwZW5k
KChrd2FyZ3Mgb3Ige30sIHByb2MpKQotICAgICAgICAjIGhpc3Rvcml6aW5nIGhvb2tzIGRvbid0
IHJldHVybiByZXN1bHRzCi0gICAgICAgIHJlcyA9IHNlbGYuX2hvb2tleGVjKHNlbGYsIHNlbGYu
X25vbndyYXBwZXJzICsgc2VsZi5fd3JhcHBlcnMsIGt3YXJncykKLSAgICAgICAgZm9yIHggaW4g
cmVzIG9yIFtdOgotICAgICAgICAgICAgcHJvYyh4KQotCi0gICAgZGVmIGNhbGxfZXh0cmEoc2Vs
ZiwgbWV0aG9kcywga3dhcmdzKToKLSAgICAgICAgIiIiIENhbGwgdGhlIGhvb2sgd2l0aCBzb21l
IGFkZGl0aW9uYWwgdGVtcG9yYXJpbHkgcGFydGljaXBhdGluZwotICAgICAgICBtZXRob2RzIHVz
aW5nIHRoZSBzcGVjaWZpZWQga3dhcmdzIGFzIGNhbGwgcGFyYW1ldGVycy4gIiIiCi0gICAgICAg
IG9sZCA9IGxpc3Qoc2VsZi5fbm9ud3JhcHBlcnMpLCBsaXN0KHNlbGYuX3dyYXBwZXJzKQotICAg
ICAgICBmb3IgbWV0aG9kIGluIG1ldGhvZHM6Ci0gICAgICAgICAgICBvcHRzID0gZGljdChob29r
d3JhcHBlcj1GYWxzZSwgdHJ5bGFzdD1GYWxzZSwgdHJ5Zmlyc3Q9RmFsc2UpCi0gICAgICAgICAg
ICBob29raW1wbCA9IEhvb2tJbXBsKE5vbmUsICI8dGVtcD4iLCBtZXRob2QsIG9wdHMpCi0gICAg
ICAgICAgICBzZWxmLl9hZGRfaG9va2ltcGwoaG9va2ltcGwpCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIHJldHVybiBzZWxmKCoqa3dhcmdzKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAg
ICAgc2VsZi5fbm9ud3JhcHBlcnMsIHNlbGYuX3dyYXBwZXJzID0gb2xkCi0KLSAgICBkZWYgX21h
eWJlX2FwcGx5X2hpc3Rvcnkoc2VsZiwgbWV0aG9kKToKLSAgICAgICAgIiIiQXBwbHkgY2FsbCBo
aXN0b3J5IHRvIGEgbmV3IGhvb2tpbXBsIGlmIGl0IGlzIG1hcmtlZCBhcyBoaXN0b3JpYy4KLSAg
ICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuaXNfaGlzdG9yaWMoKToKLSAgICAgICAgICAgIGZv
ciBrd2FyZ3MsIHByb2MgaW4gc2VsZi5fY2FsbF9oaXN0b3J5OgotICAgICAgICAgICAgICAgIHJl
cyA9IHNlbGYuX2hvb2tleGVjKHNlbGYsIFttZXRob2RdLCBrd2FyZ3MpCi0gICAgICAgICAgICAg
ICAgaWYgcmVzIGFuZCBwcm9jIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBwcm9j
KHJlc1swXSkKLQotCi1jbGFzcyBIb29rSW1wbChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwbHVnaW4sIHBsdWdpbl9uYW1lLCBmdW5jdGlvbiwgaG9va19pbXBsX29wdHMpOgotICAg
ICAgICBzZWxmLmZ1bmN0aW9uID0gZnVuY3Rpb24KLSAgICAgICAgc2VsZi5hcmduYW1lcywgc2Vs
Zi5rd2FyZ25hbWVzID0gdmFybmFtZXMoc2VsZi5mdW5jdGlvbikKLSAgICAgICAgc2VsZi5wbHVn
aW4gPSBwbHVnaW4KLSAgICAgICAgc2VsZi5vcHRzID0gaG9va19pbXBsX29wdHMKLSAgICAgICAg
c2VsZi5wbHVnaW5fbmFtZSA9IHBsdWdpbl9uYW1lCi0gICAgICAgIHNlbGYuX19kaWN0X18udXBk
YXRlKGhvb2tfaW1wbF9vcHRzKQotCi0KLWlmIGhhc2F0dHIoaW5zcGVjdCwgJ2dldGZ1bGxhcmdz
cGVjJyk6Ci0gICAgZGVmIF9nZXRhcmdzcGVjKGZ1bmMpOgotICAgICAgICByZXR1cm4gaW5zcGVj
dC5nZXRmdWxsYXJnc3BlYyhmdW5jKQotZWxzZToKLSAgICBkZWYgX2dldGFyZ3NwZWMoZnVuYyk6
Ci0gICAgICAgIHJldHVybiBpbnNwZWN0LmdldGFyZ3NwZWMoZnVuYykKLQotCi1pZiBoYXNhdHRy
KGluc3BlY3QsICdzaWduYXR1cmUnKToKLSAgICBkZWYgX2Zvcm1hdGRlZihmdW5jKToKLSAgICAg
ICAgcmV0dXJuICIlcyVzIiAlICgKLSAgICAgICAgICAgIGZ1bmMuX19uYW1lX18sCi0gICAgICAg
ICAgICBzdHIoaW5zcGVjdC5zaWduYXR1cmUoZnVuYykpCi0gICAgICAgICkKLWVsc2U6Ci0gICAg
ZGVmIF9mb3JtYXRkZWYoZnVuYyk6Ci0gICAgICAgIHJldHVybiAiJXMlcyIgJSAoCi0gICAgICAg
ICAgICBmdW5jLl9fbmFtZV9fLAotICAgICAgICAgICAgaW5zcGVjdC5mb3JtYXRhcmdzcGVjKCpp
bnNwZWN0LmdldGFyZ3NwZWMoZnVuYykpCi0gICAgICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L3BsdWdneS9jYWxsZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L2NhbGxlcnMucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmZjY3YmVjZmZiY2I0YzNlMGNkYzJmZTFiZGI4
YjY4MzRkYmQ3NjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L2NhbGxlcnMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMDEg
KzAsMCBAQAotJycnCi1DYWxsIGxvb3AgbWFjaGluZXJ5Ci0nJycKLWltcG9ydCBzeXMKLWltcG9y
dCB3YXJuaW5ncwotCi1fcHkzID0gc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKQotCi0KLWlmIG5v
dCBfcHkzOgotICAgIGV4ZWMoIiIiCi1kZWYgX3JlcmFpc2UoY2xzLCB2YWwsIHRiKToKLSAgICBy
YWlzZSBjbHMsIHZhbCwgdGIKLSIiIikKLQotCi1kZWYgX3JhaXNlX3dyYXBmYWlsKHdyYXBfY29u
dHJvbGxlciwgbXNnKToKLSAgICBjbyA9IHdyYXBfY29udHJvbGxlci5naV9jb2RlCi0gICAgcmFp
c2UgUnVudGltZUVycm9yKCJ3cmFwX2NvbnRyb2xsZXIgYXQgJXIgJXM6JWQgJXMiICUKLSAgICAg
ICAgICAgICAgICAgICAgICAgKGNvLmNvX25hbWUsIGNvLmNvX2ZpbGVuYW1lLCBjby5jb19maXJz
dGxpbmVubywgbXNnKSkKLQotCi1jbGFzcyBIb29rQ2FsbEVycm9yKEV4Y2VwdGlvbik6Ci0gICAg
IiIiIEhvb2sgd2FzIGNhbGxlZCB3cm9uZ2x5LiAiIiIKLQotCi1jbGFzcyBfUmVzdWx0KG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlc3VsdCwgZXhjaW5mbyk6Ci0gICAgICAgIHNl
bGYuX3Jlc3VsdCA9IHJlc3VsdAotICAgICAgICBzZWxmLl9leGNpbmZvID0gZXhjaW5mbwotCi0g
ICAgQHByb3BlcnR5Ci0gICAgZGVmIGV4Y2luZm8oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxm
Ll9leGNpbmZvCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgcmVzdWx0KHNlbGYpOgotICAgICAg
ICAiIiJHZXQgdGhlIHJlc3VsdChzKSBmb3IgdGhpcyBob29rIGNhbGwgKERFUFJFQ0FURUQgaW4g
ZmF2b3Igb2YgYGBnZXRfcmVzdWx0KClgYCkuIiIiCi0gICAgICAgIG1zZyA9ICdVc2UgZ2V0X3Jl
c3VsdCgpIHdoaWNoIGZvcmNlcyBjb3JyZWN0IGV4Y2VwdGlvbiBoYW5kbGluZycKLSAgICAgICAg
d2FybmluZ3Mud2FybihEZXByZWNhdGlvbldhcm5pbmcobXNnKSwgc3RhY2tsZXZlbD0yKQotICAg
ICAgICByZXR1cm4gc2VsZi5fcmVzdWx0Ci0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJv
bV9jYWxsKGNscywgZnVuYyk6Ci0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAg
ICAgICByZXN1bHQgPSBleGNpbmZvID0gTm9uZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBy
ZXN1bHQgPSBmdW5jKCkKLSAgICAgICAgZXhjZXB0IEJhc2VFeGNlcHRpb246Ci0gICAgICAgICAg
ICBleGNpbmZvID0gc3lzLmV4Y19pbmZvKCkKLQotICAgICAgICByZXR1cm4gY2xzKHJlc3VsdCwg
ZXhjaW5mbykKLQotICAgIGRlZiBmb3JjZV9yZXN1bHQoc2VsZiwgcmVzdWx0KToKLSAgICAgICAg
IiIiRm9yY2UgdGhlIHJlc3VsdChzKSB0byBgYHJlc3VsdGBgLgotCi0gICAgICAgIElmIHRoZSBo
b29rIHdhcyBtYXJrZWQgYXMgYSBgYGZpcnN0cmVzdWx0YGAgYSBzaW5nbGUgdmFsdWUgc2hvdWxk
Ci0gICAgICAgIGJlIHNldCBvdGhlcndpc2Ugc2V0IGEgKG1vZGlmaWVkKSBsaXN0IG9mIHJlc3Vs
dHMuIEFueSBleGNlcHRpb25zCi0gICAgICAgIGZvdW5kIGR1cmluZyBpbnZvY2F0aW9uIHdpbGwg
YmUgZGVsZXRlZC4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX3Jlc3VsdCA9IHJlc3VsdAot
ICAgICAgICBzZWxmLl9leGNpbmZvID0gTm9uZQotCi0gICAgZGVmIGdldF9yZXN1bHQoc2VsZik6
Ci0gICAgICAgICIiIkdldCB0aGUgcmVzdWx0KHMpIGZvciB0aGlzIGhvb2sgY2FsbC4KLQotICAg
ICAgICBJZiB0aGUgaG9vayB3YXMgbWFya2VkIGFzIGEgYGBmaXJzdHJlc3VsdGBgIG9ubHkgYSBz
aW5nbGUgdmFsdWUKLSAgICAgICAgd2lsbCBiZSByZXR1cm5lZCBvdGhlcndpc2UgYSBsaXN0IG9m
IHJlc3VsdHMuCi0gICAgICAgICIiIgotICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUK
LSAgICAgICAgaWYgc2VsZi5fZXhjaW5mbyBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIHNl
bGYuX3Jlc3VsdAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZXggPSBzZWxmLl9leGNpbmZv
Ci0gICAgICAgICAgICBpZiBfcHkzOgotICAgICAgICAgICAgICAgIHJhaXNlIGV4WzFdLndpdGhf
dHJhY2ViYWNrKGV4WzJdKQotICAgICAgICAgICAgX3JlcmFpc2UoKmV4KSAgIyBub3FhCi0KLQot
ZGVmIF93cmFwcGVkX2NhbGwod3JhcF9jb250cm9sbGVyLCBmdW5jKToKLSAgICAiIiIgV3JhcCBj
YWxsaW5nIHRvIGEgZnVuY3Rpb24gd2l0aCBhIGdlbmVyYXRvciB3aGljaCBuZWVkcyB0byB5aWVs
ZAotICAgIGV4YWN0bHkgb25jZS4gIFRoZSB5aWVsZCBwb2ludCB3aWxsIHRyaWdnZXIgY2FsbGlu
ZyB0aGUgd3JhcHBlZCBmdW5jdGlvbgotICAgIGFuZCByZXR1cm4gaXRzIGBgX1Jlc3VsdGBgIHRv
IHRoZSB5aWVsZCBwb2ludC4gIFRoZSBnZW5lcmF0b3IgdGhlbiBuZWVkcwotICAgIHRvIGZpbmlz
aCAocmFpc2UgU3RvcEl0ZXJhdGlvbikgaW4gb3JkZXIgZm9yIHRoZSB3cmFwcGVkIGNhbGwgdG8g
Y29tcGxldGUuCi0gICAgIiIiCi0gICAgdHJ5OgotICAgICAgICBuZXh0KHdyYXBfY29udHJvbGxl
cikgICAjIGZpcnN0IHlpZWxkCi0gICAgZXhjZXB0IFN0b3BJdGVyYXRpb246Ci0gICAgICAgIF9y
YWlzZV93cmFwZmFpbCh3cmFwX2NvbnRyb2xsZXIsICJkaWQgbm90IHlpZWxkIikKLSAgICBjYWxs
X291dGNvbWUgPSBfUmVzdWx0LmZyb21fY2FsbChmdW5jKQotICAgIHRyeToKLSAgICAgICAgd3Jh
cF9jb250cm9sbGVyLnNlbmQoY2FsbF9vdXRjb21lKQotICAgICAgICBfcmFpc2Vfd3JhcGZhaWwo
d3JhcF9jb250cm9sbGVyLCAiaGFzIHNlY29uZCB5aWVsZCIpCi0gICAgZXhjZXB0IFN0b3BJdGVy
YXRpb246Ci0gICAgICAgIHBhc3MKLSAgICByZXR1cm4gY2FsbF9vdXRjb21lLmdldF9yZXN1bHQo
KQotCi0KLWNsYXNzIF9MZWdhY3lNdWx0aUNhbGwob2JqZWN0KToKLSAgICAiIiIgZXhlY3V0ZSBh
IGNhbGwgaW50byBtdWx0aXBsZSBweXRob24gZnVuY3Rpb25zL21ldGhvZHMuICIiIgotCi0gICAg
IyBYWFggbm90ZSB0aGF0IHRoZSBfX211bHRpY2FsbF9fIGFyZ3VtZW50IGlzIHN1cHBvcnRlZCBv
bmx5Ci0gICAgIyBmb3IgcHl0ZXN0IGNvbXBhdGliaWxpdHkgcmVhc29ucy4gIEl0IHdhcyBuZXZl
ciBvZmZpY2lhbGx5Ci0gICAgIyBzdXBwb3J0ZWQgdGhlcmUgYW5kIGlzIGV4cGxpY2l0ZWx5IGRl
cHJlY2F0ZWQgc2luY2UgMi44Ci0gICAgIyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IHNvb24sIGFsbG93
aW5nIHRvIGF2b2lkIHRoZSBiZWxvdyByZWN1cnNpb24KLSAgICAjIGluIGV4ZWN1dGUoKSBhbmQg
c2ltcGxpZnkvc3BlZWQgdXAgdGhlIGV4ZWN1dGUgbG9vcC4KLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBob29rX2ltcGxzLCBrd2FyZ3MsIGZpcnN0cmVzdWx0PUZhbHNlKToKLSAgICAgICAgc2Vs
Zi5ob29rX2ltcGxzID0gaG9va19pbXBscwotICAgICAgICBzZWxmLmNhbGxlcl9rd2FyZ3MgPSBr
d2FyZ3MgICMgY29tZSBmcm9tIF9Ib29rQ2FsbGVyLl9fY2FsbF9fKCkKLSAgICAgICAgc2VsZi5j
YWxsZXJfa3dhcmdzWyJfX211bHRpY2FsbF9fIl0gPSBzZWxmCi0gICAgICAgIHNlbGYuZmlyc3Ry
ZXN1bHQgPSBmaXJzdHJlc3VsdAotCi0gICAgZGVmIGV4ZWN1dGUoc2VsZik6Ci0gICAgICAgIGNh
bGxlcl9rd2FyZ3MgPSBzZWxmLmNhbGxlcl9rd2FyZ3MKLSAgICAgICAgc2VsZi5yZXN1bHRzID0g
cmVzdWx0cyA9IFtdCi0gICAgICAgIGZpcnN0cmVzdWx0ID0gc2VsZi5maXJzdHJlc3VsdAotCi0g
ICAgICAgIHdoaWxlIHNlbGYuaG9va19pbXBsczoKLSAgICAgICAgICAgIGhvb2tfaW1wbCA9IHNl
bGYuaG9va19pbXBscy5wb3AoKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGFy
Z3MgPSBbY2FsbGVyX2t3YXJnc1thcmduYW1lXSBmb3IgYXJnbmFtZSBpbiBob29rX2ltcGwuYXJn
bmFtZXNdCi0gICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICAgICAgZm9y
IGFyZ25hbWUgaW4gaG9va19pbXBsLmFyZ25hbWVzOgotICAgICAgICAgICAgICAgICAgICBpZiBh
cmduYW1lIG5vdCBpbiBjYWxsZXJfa3dhcmdzOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFp
c2UgSG9va0NhbGxFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaG9vayBjYWxs
IG11c3QgcHJvdmlkZSBhcmd1bWVudCAlciIgJSAoYXJnbmFtZSwpKQotICAgICAgICAgICAgaWYg
aG9va19pbXBsLmhvb2t3cmFwcGVyOgotICAgICAgICAgICAgICAgIHJldHVybiBfd3JhcHBlZF9j
YWxsKGhvb2tfaW1wbC5mdW5jdGlvbigqYXJncyksIHNlbGYuZXhlY3V0ZSkKLSAgICAgICAgICAg
IHJlcyA9IGhvb2tfaW1wbC5mdW5jdGlvbigqYXJncykKLSAgICAgICAgICAgIGlmIHJlcyBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgICAgICBpZiBmaXJzdHJlc3VsdDoKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlcwotICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHJlcykKLQot
ICAgICAgICBpZiBub3QgZmlyc3RyZXN1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0cwot
Ci0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICBzdGF0dXMgPSAiJWQgbWV0aHMiICUg
KGxlbihzZWxmLmhvb2tfaW1wbHMpLCkKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAicmVzdWx0
cyIpOgotICAgICAgICAgICAgc3RhdHVzID0gKCIlZCByZXN1bHRzLCAiICUgbGVuKHNlbGYucmVz
dWx0cykpICsgc3RhdHVzCi0gICAgICAgIHJldHVybiAiPF9NdWx0aUNhbGwgJXMsIGt3YXJncz0l
cj4iICUgKHN0YXR1cywgc2VsZi5jYWxsZXJfa3dhcmdzKQotCi0KLWRlZiBfbGVnYWN5bXVsdGlj
YWxsKGhvb2tfaW1wbHMsIGNhbGxlcl9rd2FyZ3MsIGZpcnN0cmVzdWx0PUZhbHNlKToKLSAgICBy
ZXR1cm4gX0xlZ2FjeU11bHRpQ2FsbCgKLSAgICAgICAgaG9va19pbXBscywgY2FsbGVyX2t3YXJn
cywgZmlyc3RyZXN1bHQ9Zmlyc3RyZXN1bHQpLmV4ZWN1dGUoKQotCi0KLWRlZiBfbXVsdGljYWxs
KGhvb2tfaW1wbHMsIGNhbGxlcl9rd2FyZ3MsIGZpcnN0cmVzdWx0PUZhbHNlKToKLSAgICAiIiJF
eGVjdXRlIGEgY2FsbCBpbnRvIG11bHRpcGxlIHB5dGhvbiBmdW5jdGlvbnMvbWV0aG9kcyBhbmQg
cmV0dXJuIHRoZQotICAgIHJlc3VsdChzKS4KLQotICAgIGBgY2FsbGVyX2t3YXJnc2BgIGNvbWVz
IGZyb20gX0hvb2tDYWxsZXIuX19jYWxsX18oKS4KLSAgICAiIiIKLSAgICBfX3RyYWNlYmFja2hp
ZGVfXyA9IFRydWUKLSAgICByZXN1bHRzID0gW10KLSAgICBleGNpbmZvID0gTm9uZQotICAgIHRy
eTogICMgcnVuIGltcGwgYW5kIHdyYXBwZXIgc2V0dXAgZnVuY3Rpb25zIGluIGEgbG9vcAotICAg
ICAgICB0ZWFyZG93bnMgPSBbXQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmb3IgaG9va19p
bXBsIGluIHJldmVyc2VkKGhvb2tfaW1wbHMpOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICAgICAgYXJncyA9IFtjYWxsZXJfa3dhcmdzW2FyZ25hbWVdIGZvciBhcmduYW1l
IGluIGhvb2tfaW1wbC5hcmduYW1lc10KLSAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6
Ci0gICAgICAgICAgICAgICAgICAgIGZvciBhcmduYW1lIGluIGhvb2tfaW1wbC5hcmduYW1lczoK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGFyZ25hbWUgbm90IGluIGNhbGxlcl9rd2FyZ3M6
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgSG9va0NhbGxFcnJvcigKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImhvb2sgY2FsbCBtdXN0IHByb3ZpZGUgYXJndW1l
bnQgJXIiICUgKGFyZ25hbWUsKSkKLQotICAgICAgICAgICAgICAgIGlmIGhvb2tfaW1wbC5ob29r
d3JhcHBlcjoKLSAgICAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAg
ICAgZ2VuID0gaG9va19pbXBsLmZ1bmN0aW9uKCphcmdzKQotICAgICAgICAgICAgICAgICAgICAg
ICAgbmV4dChnZW4pICAgIyBmaXJzdCB5aWVsZAotICAgICAgICAgICAgICAgICAgICAgICAgdGVh
cmRvd25zLmFwcGVuZChnZW4pCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0
aW9uOgotICAgICAgICAgICAgICAgICAgICAgICAgX3JhaXNlX3dyYXBmYWlsKGdlbiwgImRpZCBu
b3QgeWllbGQiKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJl
cyA9IGhvb2tfaW1wbC5mdW5jdGlvbigqYXJncykKLSAgICAgICAgICAgICAgICAgICAgaWYgcmVz
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQocmVz
KQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgZmlyc3RyZXN1bHQ6ICAjIGhhbHQgZnVydGhl
ciBpbXBsIGNhbGxzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAg
ZXhjZXB0IEJhc2VFeGNlcHRpb246Ci0gICAgICAgICAgICBleGNpbmZvID0gc3lzLmV4Y19pbmZv
KCkKLSAgICBmaW5hbGx5OgotICAgICAgICBpZiBmaXJzdHJlc3VsdDogICMgZmlyc3QgcmVzdWx0
IGhvb2tzIHJldHVybiBhIHNpbmdsZSB2YWx1ZQotICAgICAgICAgICAgb3V0Y29tZSA9IF9SZXN1
bHQocmVzdWx0c1swXSBpZiByZXN1bHRzIGVsc2UgTm9uZSwgZXhjaW5mbykKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIG91dGNvbWUgPSBfUmVzdWx0KHJlc3VsdHMsIGV4Y2luZm8pCi0KLSAg
ICAgICAgIyBydW4gYWxsIHdyYXBwZXIgcG9zdC15aWVsZCBibG9ja3MKLSAgICAgICAgZm9yIGdl
biBpbiByZXZlcnNlZCh0ZWFyZG93bnMpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
ICAgIGdlbi5zZW5kKG91dGNvbWUpCi0gICAgICAgICAgICAgICAgX3JhaXNlX3dyYXBmYWlsKGdl
biwgImhhcyBzZWNvbmQgeWllbGQiKQotICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246
Ci0gICAgICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIHJldHVybiBvdXRjb21lLmdldF9yZXN1
bHQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvcGx1Z2d5L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmZDBkNWEwOTM3ZDgyZTZlMjM3YTU2ZjFmM2JjZjIxNGRjZWMyZTJiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L3BsdWdneS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9jYWxsZXJz
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9weXByb2plY3QudG9tbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L3B5cHJvamVjdC50b21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxMWNmNTNlZDNiZWRhZmFmOTc2NTA0MTUyMDZm
Y2NjMGQ1NzU4N2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9weXByb2plY3QudG9t
bApAQCAtMCwwICsxLDQ0IEBACitbYnVpbGQtc3lzdGVtXQorcmVxdWlyZXMgPSBbCisgICJzZXR1
cHRvb2xzIiwKKyAgInNldHVwdG9vbHMtc2NtIiwKKyAgIndoZWVsIiwKK10KKworW3Rvb2wudG93
bmNyaWVyXQorcGFja2FnZSA9ICJwbHVnZ3kiCitwYWNrYWdlX2RpciA9ICJzcmMvcGx1Z2d5Igor
ZmlsZW5hbWUgPSAiQ0hBTkdFTE9HLnJzdCIKK2RpcmVjdG9yeSA9ICJjaGFuZ2Vsb2cvIgordGl0
bGVfZm9ybWF0ID0gInBsdWdneSB7dmVyc2lvbn0gKHtwcm9qZWN0X2RhdGV9KSIKK3RlbXBsYXRl
ID0gImNoYW5nZWxvZy9fdGVtcGxhdGUucnN0IgorCisgIFtbdG9vbC50b3duY3JpZXIudHlwZV1d
CisgIGRpcmVjdG9yeSA9ICJyZW1vdmFsIgorICBuYW1lID0gIkRlcHJlY2F0aW9ucyBhbmQgUmVt
b3ZhbHMiCisgIHNob3djb250ZW50ID0gdHJ1ZQorCisgIFtbdG9vbC50b3duY3JpZXIudHlwZV1d
CisgIGRpcmVjdG9yeSA9ICJmZWF0dXJlIgorICBuYW1lID0gIkZlYXR1cmVzIgorICBzaG93Y29u
dGVudCA9IHRydWUKKworICBbW3Rvb2wudG93bmNyaWVyLnR5cGVdXQorICBkaXJlY3RvcnkgPSAi
YnVnZml4IgorICBuYW1lID0gIkJ1ZyBGaXhlcyIKKyAgc2hvd2NvbnRlbnQgPSB0cnVlCisKKyAg
W1t0b29sLnRvd25jcmllci50eXBlXV0KKyAgZGlyZWN0b3J5ID0gInZlbmRvciIKKyAgbmFtZSA9
ICJWZW5kb3JlZCBMaWJyYXJpZXMiCisgIHNob3djb250ZW50ID0gdHJ1ZQorCisgIFtbdG9vbC50
b3duY3JpZXIudHlwZV1dCisgIGRpcmVjdG9yeSA9ICJkb2MiCisgIG5hbWUgPSAiSW1wcm92ZWQg
RG9jdW1lbnRhdGlvbiIKKyAgc2hvd2NvbnRlbnQgPSB0cnVlCisKKyAgW1t0b29sLnRvd25jcmll
ci50eXBlXV0KKyAgZGlyZWN0b3J5ID0gInRyaXZpYWwiCisgIG5hbWUgPSAiVHJpdmlhbC9JbnRl
cm5hbCBDaGFuZ2VzIgorICBzaG93Y29udGVudCA9IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L3NjcmlwdHMvcmVsZWFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NjcmlwdHMvcmVsZWFzZS5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNGExOGE0Yzc4ZGU3ZTA5ZTMzMzkyMmEwZDdhZTdhOWRiNWQwZWQ4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2NyaXB0cy9yZWxlYXNlLnB5CkBAIC0wLDAgKzEs
NjkgQEAKKyIiIgorUmVsZWFzZSBzY3JpcHQuCisiIiIKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0
IHN5cworZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBjaGVja19jYWxsCisKK2Zyb20gY29sb3JhbWEg
aW1wb3J0IGluaXQsIEZvcmUKK2Zyb20gZ2l0IGltcG9ydCBSZXBvLCBSZW1vdGUKKworCitkZWYg
Y3JlYXRlX2JyYW5jaCh2ZXJzaW9uKToKKyAgICAiIiJDcmVhdGUgYSBmcmVzaCBicmFuY2ggZnJv
bSB1cHN0cmVhbS9tYXN0ZXIiIiIKKyAgICByZXBvID0gUmVwby5pbml0KCIuIikKKyAgICBpZiBy
ZXBvLmlzX2RpcnR5KHVudHJhY2tlZF9maWxlcz1UcnVlKToKKyAgICAgICAgcmFpc2UgUnVudGlt
ZUVycm9yKGYiUmVwb3NpdG9yeSBpcyBkaXJ0eSwgcGxlYXNlIGNvbW1pdC9zdGFzaCB5b3VyIGNo
YW5nZXMuIikKKworICAgIGJyYW5jaF9uYW1lID0gZiJyZWxlYXNlLXt2ZXJzaW9ufSIKKyAgICBw
cmludChmIntGb3JlLkNZQU59Q3JlYXRlIHticmFuY2hfbmFtZX0gYnJhbmNoIGZyb20gdXBzdHJl
YW0gbWFzdGVyIikKKyAgICB1cHN0cmVhbSA9IGdldF91cHN0cmVhbShyZXBvKQorICAgIHVwc3Ry
ZWFtLmZldGNoKCkKKyAgICByZWxlYXNlX2JyYW5jaCA9IHJlcG8uY3JlYXRlX2hlYWQoYnJhbmNo
X25hbWUsIHVwc3RyZWFtLnJlZnMubWFzdGVyLCBmb3JjZT1UcnVlKQorICAgIHJlbGVhc2VfYnJh
bmNoLmNoZWNrb3V0KCkKKyAgICByZXR1cm4gcmVwbworCisKK2RlZiBnZXRfdXBzdHJlYW0ocmVw
bzogUmVwbykgLT4gUmVtb3RlOgorICAgICIiIkZpbmQgdXBzdHJlYW0gcmVwb3NpdG9yeSBmb3Ig
cGx1Z2d5IG9uIHRoZSByZW1vdGVzIiIiCisgICAgZm9yIHJlbW90ZSBpbiByZXBvLnJlbW90ZXM6
CisgICAgICAgIGZvciB1cmwgaW4gcmVtb3RlLnVybHM6CisgICAgICAgICAgICBpZiB1cmwuZW5k
c3dpdGgoKCJweXRlc3QtZGV2L3BsdWdneS5naXQiLCAicHl0ZXN0LWRldi9wbHVnZ3kiKSk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZQorICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiY291
bGQgbm90IGZpbmQgcHl0ZXN0LWRldi9wbHVnZ3kgcmVtb3RlIikKKworCitkZWYgcHJlX3JlbGVh
c2UodmVyc2lvbik6CisgICAgIiIiR2VuZXJhdGVzIG5ldyBkb2NzLCByZWxlYXNlIGFubm91bmNl
bWVudHMgYW5kIGNyZWF0ZXMgYSBsb2NhbCB0YWcuIiIiCisgICAgY3JlYXRlX2JyYW5jaCh2ZXJz
aW9uKQorICAgIGNoYW5nZWxvZyh2ZXJzaW9uLCB3cml0ZV9vdXQ9VHJ1ZSkKKworICAgIGNoZWNr
X2NhbGwoWyJnaXQiLCAiY29tbWl0IiwgIi1hIiwgIi1tIiwgZiJQcmVwYXJpbmcgcmVsZWFzZSB7
dmVyc2lvbn0iXSkKKworICAgIHByaW50KCkKKyAgICBwcmludChmIntGb3JlLkdSRUVOfVBsZWFz
ZSBwdXNoIHlvdXIgYnJhbmNoIHRvIHlvdXIgZm9yayBhbmQgb3BlbiBhIFBSLiIpCisKKworZGVm
IGNoYW5nZWxvZyh2ZXJzaW9uLCB3cml0ZV9vdXQ9RmFsc2UpOgorICAgIGlmIHdyaXRlX291dDoK
KyAgICAgICAgYWRkb3B0cyA9IFtdCisgICAgZWxzZToKKyAgICAgICAgYWRkb3B0cyA9IFsiLS1k
cmFmdCJdCisgICAgcHJpbnQoZiJ7Rm9yZS5DWUFOfUdlbmVyYXRpbmcgQ0hBTkdFTE9HIikKKyAg
ICBjaGVja19jYWxsKFsidG93bmNyaWVyIiwgIi0teWVzIiwgIi0tdmVyc2lvbiIsIHZlcnNpb25d
ICsgYWRkb3B0cykKKworCitkZWYgbWFpbigpOgorICAgIGluaXQoYXV0b3Jlc2V0PVRydWUpCisg
ICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoInZlcnNpb24iLCBoZWxwPSJSZWxlYXNlIHZlcnNpb24iKQorICAgIG9wdGlvbnMgPSBw
YXJzZXIucGFyc2VfYXJncygpCisgICAgdHJ5OgorICAgICAgICBwcmVfcmVsZWFzZShvcHRpb25z
LnZlcnNpb24pCisgICAgZXhjZXB0IFJ1bnRpbWVFcnJvciBhcyBlOgorICAgICAgICBwcmludChm
IntGb3JlLlJFRH1FUlJPUjoge2V9IikKKyAgICAgICAgcmV0dXJuIDEKKworCitpZiBfX25hbWVf
XyA9PSAiX19tYWluX18iOgorICAgIHN5cy5leGl0KG1haW4oKSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zY3JpcHRzL3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmYjljN2RhMDZhYWVkMGEwODczOWFiNDMxNjkzNjY2YzVm
YzllMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zY3JpcHRzL3czYy1pbXBvcnQu
bG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NjcmlwdHMvcmVsZWFz
ZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1
cC5weQppbmRleCBiN2MwZjY5NzEyMGFkNGNjMDk3ODcyYmQwMTBmYWRkMjAxNmQyYmU5Li5hZTJj
ZDg0YzExOWVkODk3M2Y0YzQyMzYyM2U3MjYzYjM0YzNmOTM4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9zZXR1cC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1cC5weQpAQCAtMSw1MSArMSw0OSBA
QAotaW1wb3J0IG9zCiBmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwCiAKIGNsYXNzaWZpZXJz
ID0gWwotICAgICdEZXZlbG9wbWVudCBTdGF0dXMgOjogNCAtIEJldGEnLAotICAgICdJbnRlbmRl
ZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzJywKLSAgICAnTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQg
OjogTUlUIExpY2Vuc2UnLAotICAgICdPcGVyYXRpbmcgU3lzdGVtIDo6IFBPU0lYJywKLSAgICAn
T3BlcmF0aW5nIFN5c3RlbSA6OiBNaWNyb3NvZnQgOjogV2luZG93cycsCi0gICAgJ09wZXJhdGlu
ZyBTeXN0ZW0gOjogTWFjT1MgOjogTWFjT1MgWCcsCi0gICAgJ1RvcGljIDo6IFNvZnR3YXJlIERl
dmVsb3BtZW50IDo6IFRlc3RpbmcnLAotICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVu
dCA6OiBMaWJyYXJpZXMnLAotICAgICdUb3BpYyA6OiBVdGlsaXRpZXMnLAotICAgICdQcm9ncmFt
bWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjogQ1B5dGhvbicsCi0g
ICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBQ
eVB5J10gKyBbCi0gICAgKCdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogJXMnICUg
eCkgZm9yIHggaW4KLSAgICAnMiAyLjcgMyAzLjQgMy41IDMuNicuc3BsaXQoKV0KLQotd2l0aCBv
cGVuKCdSRUFETUUucnN0JykgYXMgZmQ6Ci0gICAgbG9uZ19kZXNjcmlwdGlvbiA9IGZkLnJlYWQo
KQotCi0KLWRlZiBnZXRfdmVyc2lvbigpOgotICAgIHAgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5k
aXJuYW1lKAotICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSks
ICJwbHVnZ3kvX19pbml0X18ucHkiKQotICAgIHdpdGggb3BlbihwKSBhcyBmOgotICAgICAgICBm
b3IgbGluZSBpbiBmLnJlYWRsaW5lcygpOgotICAgICAgICAgICAgaWYgIl9fdmVyc2lvbl9fIiBp
biBsaW5lOgotICAgICAgICAgICAgICAgIHJldHVybiBsaW5lLnN0cmlwKCkuc3BsaXQoIj0iKVst
MV0uc3RyaXAoIiAnIikKLSAgICByYWlzZSBWYWx1ZUVycm9yKCJjb3VsZCBub3QgcmVhZCB2ZXJz
aW9uIikKKyAgICAiRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDQgLSBCZXRhIiwKKyAgICAiSW50ZW5k
ZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycyIsCisgICAgIkxpY2Vuc2UgOjogT1NJIEFwcHJvdmVk
IDo6IE1JVCBMaWNlbnNlIiwKKyAgICAiT3BlcmF0aW5nIFN5c3RlbSA6OiBQT1NJWCIsCisgICAg
Ik9wZXJhdGluZyBTeXN0ZW0gOjogTWljcm9zb2Z0IDo6IFdpbmRvd3MiLAorICAgICJPcGVyYXRp
bmcgU3lzdGVtIDo6IE1hY09TIDo6IE1hY09TIFgiLAorICAgICJUb3BpYyA6OiBTb2Z0d2FyZSBE
ZXZlbG9wbWVudCA6OiBUZXN0aW5nIiwKKyAgICAiVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1l
bnQgOjogTGlicmFyaWVzIiwKKyAgICAiVG9waWMgOjogVXRpbGl0aWVzIiwKKyAgICAiUHJvZ3Jh
bW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IENQeXRob24iLAor
ICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjog
UHlQeSIsCitdICsgWworICAgICgiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6ICVz
IiAlIHgpCisgICAgZm9yIHggaW4gIjIgMi43IDMgMy40IDMuNSAzLjYgMy43IDMuOCIuc3BsaXQo
KQorXQorCit3aXRoIG9wZW4oIlJFQURNRS5yc3QiLCAicmIiKSBhcyBmZDoKKyAgICBsb25nX2Rl
c2NyaXB0aW9uID0gZmQucmVhZCgpLmRlY29kZSgidXRmLTgiKQorCit3aXRoIG9wZW4oIkNIQU5H
RUxPRy5yc3QiLCAicmIiKSBhcyBmZDoKKyAgICBsb25nX2Rlc2NyaXB0aW9uICs9ICJcblxuIiAr
IGZkLnJlYWQoKS5kZWNvZGUoInV0Zi04IikKIAogCiBkZWYgbWFpbigpOgogICAgIHNldHVwKAot
ICAgICAgICBuYW1lPSdwbHVnZ3knLAotICAgICAgICBkZXNjcmlwdGlvbj0ncGx1Z2luIGFuZCBo
b29rIGNhbGxpbmcgbWVjaGFuaXNtcyBmb3IgcHl0aG9uJywKKyAgICAgICAgbmFtZT0icGx1Z2d5
IiwKKyAgICAgICAgZGVzY3JpcHRpb249InBsdWdpbiBhbmQgaG9vayBjYWxsaW5nIG1lY2hhbmlz
bXMgZm9yIHB5dGhvbiIsCiAgICAgICAgIGxvbmdfZGVzY3JpcHRpb249bG9uZ19kZXNjcmlwdGlv
biwKLSAgICAgICAgdmVyc2lvbj1nZXRfdmVyc2lvbigpLAotICAgICAgICBsaWNlbnNlPSdNSVQg
bGljZW5zZScsCi0gICAgICAgIHBsYXRmb3Jtcz1bJ3VuaXgnLCAnbGludXgnLCAnb3N4JywgJ3dp
bjMyJ10sCi0gICAgICAgIGF1dGhvcj0nSG9sZ2VyIEtyZWtlbCcsCi0gICAgICAgIGF1dGhvcl9l
bWFpbD0naG9sZ2VyQG1lcmxpbnV4LmV1JywKLSAgICAgICAgdXJsPSdodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9wbHVnZ3knLAotICAgICAgICBweXRob25fcmVxdWlyZXM9Jz49Mi43LCAh
PTMuMC4qLCAhPTMuMS4qLCAhPTMuMi4qLCAhPTMuMy4qJywKKyAgICAgICAgdXNlX3NjbV92ZXJz
aW9uPXsid3JpdGVfdG8iOiAic3JjL3BsdWdneS9fdmVyc2lvbi5weSJ9LAorICAgICAgICBzZXR1
cF9yZXF1aXJlcz1bInNldHVwdG9vbHMtc2NtIl0sCisgICAgICAgIGxpY2Vuc2U9Ik1JVCBsaWNl
bnNlIiwKKyAgICAgICAgcGxhdGZvcm1zPVsidW5peCIsICJsaW51eCIsICJvc3giLCAid2luMzIi
XSwKKyAgICAgICAgYXV0aG9yPSJIb2xnZXIgS3Jla2VsIiwKKyAgICAgICAgYXV0aG9yX2VtYWls
PSJob2xnZXJAbWVybGludXguZXUiLAorICAgICAgICB1cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3BsdWdneSIsCisgICAgICAgIHB5dGhvbl9yZXF1aXJlcz0iPj0yLjcsICE9My4w
LiosICE9My4xLiosICE9My4yLiosICE9My4zLioiLAorICAgICAgICBpbnN0YWxsX3JlcXVpcmVz
PVsnaW1wb3J0bGliLW1ldGFkYXRhPj0wLjEyO3B5dGhvbl92ZXJzaW9uPCIzLjgiJ10sCisgICAg
ICAgIGV4dHJhc19yZXF1aXJlPXsiZGV2IjogWyJwcmUtY29tbWl0IiwgInRveCJdfSwKICAgICAg
ICAgY2xhc3NpZmllcnM9Y2xhc3NpZmllcnMsCi0gICAgICAgIHBhY2thZ2VzPVsncGx1Z2d5J10s
CisgICAgICAgIHBhY2thZ2VzPVsicGx1Z2d5Il0sCisgICAgICAgIHBhY2thZ2VfZGlyPXsiIjog
InNyYyJ9LAogICAgICkKIAogCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgoraWYgX19uYW1l
X18gPT0gIl9fbWFpbl9fIjoKICAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Ny
Yy9wbHVnZ3kvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L19faW5pdF9fLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZiNGY5OTFhNjEwMzQzYzJjYjdkYTA2ZTVlMjZkODE4MmNkMDdlYmUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L19faW5pdF9fLnB5CkBAIC0w
LDAgKzEsMTggQEAKK3RyeToKKyAgICBmcm9tIC5fdmVyc2lvbiBpbXBvcnQgdmVyc2lvbiBhcyBf
X3ZlcnNpb25fXworZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgYnJva2VuIGluc3RhbGxhdGlv
biwgd2UgZG9uJ3QgZXZlbiB0cnkKKyAgICAjIHVua25vd24gb25seSB3b3JrcyBiZWNhdXNlIHdl
IGRvIHBvb3IgbWFucyB2ZXJzaW9uIGNvbXBhcmUKKyAgICBfX3ZlcnNpb25fXyA9ICJ1bmtub3du
IgorCitfX2FsbF9fID0gWworICAgICJQbHVnaW5NYW5hZ2VyIiwKKyAgICAiUGx1Z2luVmFsaWRh
dGlvbkVycm9yIiwKKyAgICAiSG9va0NhbGxFcnJvciIsCisgICAgIkhvb2tzcGVjTWFya2VyIiwK
KyAgICAiSG9va2ltcGxNYXJrZXIiLAorXQorCitmcm9tIC5tYW5hZ2VyIGltcG9ydCBQbHVnaW5N
YW5hZ2VyLCBQbHVnaW5WYWxpZGF0aW9uRXJyb3IKK2Zyb20gLmNhbGxlcnMgaW1wb3J0IEhvb2tD
YWxsRXJyb3IKK2Zyb20gLmhvb2tzIGltcG9ydCBIb29rc3BlY01hcmtlciwgSG9va2ltcGxNYXJr
ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvX3RyYWNpbmcucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9zcmMvcGx1Z2d5L190cmFjaW5nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiOTcxNWYwMjYxYTJl
MGE0MzcyM2RlOTI1M2NjYjBmOWM4M2FkMzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9zcmMvcGx1Z2d5L190cmFjaW5nLnB5CkBAIC0wLDAgKzEsNjIgQEAKKyIiIgorVHJhY2luZyB1
dGlscworIiIiCisKKworY2xhc3MgVGFnVHJhY2VyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYpOgorICAgICAgICBzZWxmLl90YWdzMnByb2MgPSB7fQorICAgICAgICBzZWxmLl93cml0
ZXIgPSBOb25lCisgICAgICAgIHNlbGYuaW5kZW50ID0gMAorCisgICAgZGVmIGdldChzZWxmLCBu
YW1lKToKKyAgICAgICAgcmV0dXJuIFRhZ1RyYWNlclN1YihzZWxmLCAobmFtZSwpKQorCisgICAg
ZGVmIF9mb3JtYXRfbWVzc2FnZShzZWxmLCB0YWdzLCBhcmdzKToKKyAgICAgICAgaWYgaXNpbnN0
YW5jZShhcmdzWy0xXSwgZGljdCk6CisgICAgICAgICAgICBleHRyYSA9IGFyZ3NbLTFdCisgICAg
ICAgICAgICBhcmdzID0gYXJnc1s6LTFdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleHRy
YSA9IHt9CisKKyAgICAgICAgY29udGVudCA9ICIgIi5qb2luKG1hcChzdHIsIGFyZ3MpKQorICAg
ICAgICBpbmRlbnQgPSAiICAiICogc2VsZi5pbmRlbnQKKworICAgICAgICBsaW5lcyA9IFsiJXMl
cyBbJXNdXG4iICUgKGluZGVudCwgY29udGVudCwgIjoiLmpvaW4odGFncykpXQorCisgICAgICAg
IGZvciBuYW1lLCB2YWx1ZSBpbiBleHRyYS5pdGVtcygpOgorICAgICAgICAgICAgbGluZXMuYXBw
ZW5kKCIlcyAgICAlczogJXNcbiIgJSAoaW5kZW50LCBuYW1lLCB2YWx1ZSkpCisKKyAgICAgICAg
cmV0dXJuICIiLmpvaW4obGluZXMpCisKKyAgICBkZWYgX3Byb2Nlc3NtZXNzYWdlKHNlbGYsIHRh
Z3MsIGFyZ3MpOgorICAgICAgICBpZiBzZWxmLl93cml0ZXIgaXMgbm90IE5vbmUgYW5kIGFyZ3M6
CisgICAgICAgICAgICBzZWxmLl93cml0ZXIoc2VsZi5fZm9ybWF0X21lc3NhZ2UodGFncywgYXJn
cykpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHByb2Nlc3NvciA9IHNlbGYuX3RhZ3MycHJv
Y1t0YWdzXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBwcm9jZXNzb3IodGFncywgYXJncykKKworICAgIGRlZiBz
ZXR3cml0ZXIoc2VsZiwgd3JpdGVyKToKKyAgICAgICAgc2VsZi5fd3JpdGVyID0gd3JpdGVyCisK
KyAgICBkZWYgc2V0cHJvY2Vzc29yKHNlbGYsIHRhZ3MsIHByb2Nlc3Nvcik6CisgICAgICAgIGlm
IGlzaW5zdGFuY2UodGFncywgc3RyKToKKyAgICAgICAgICAgIHRhZ3MgPSB0dXBsZSh0YWdzLnNw
bGl0KCI6IikpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh0
YWdzLCB0dXBsZSkKKyAgICAgICAgc2VsZi5fdGFnczJwcm9jW3RhZ3NdID0gcHJvY2Vzc29yCisK
KworY2xhc3MgVGFnVHJhY2VyU3ViKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJv
b3QsIHRhZ3MpOgorICAgICAgICBzZWxmLnJvb3QgPSByb290CisgICAgICAgIHNlbGYudGFncyA9
IHRhZ3MKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncyk6CisgICAgICAgIHNlbGYucm9v
dC5fcHJvY2Vzc21lc3NhZ2Uoc2VsZi50YWdzLCBhcmdzKQorCisgICAgZGVmIGdldChzZWxmLCBu
YW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYucm9vdCwgc2VsZi50YWdz
ICsgKG5hbWUsKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvY2FsbGVycy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvY2FsbGVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lN2VhNDY0
YjBkYTgxYTViM2ZiNTRhOTNjNzA5NTI5ODcwOTA4YTY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvc3JjL3BsdWdneS9jYWxsZXJzLnB5CkBAIC0wLDAgKzEsMjA4IEBACisiIiIKK0Nh
bGwgbG9vcCBtYWNoaW5lcnkKKyIiIgoraW1wb3J0IHN5cworaW1wb3J0IHdhcm5pbmdzCisKK19w
eTMgPSBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApCisKKworaWYgbm90IF9weTM6CisgICAgZXhl
YygKKyAgICAgICAgIiIiCitkZWYgX3JlcmFpc2UoY2xzLCB2YWwsIHRiKToKKyAgICByYWlzZSBj
bHMsIHZhbCwgdGIKKyIiIgorICAgICkKKworCitkZWYgX3JhaXNlX3dyYXBmYWlsKHdyYXBfY29u
dHJvbGxlciwgbXNnKToKKyAgICBjbyA9IHdyYXBfY29udHJvbGxlci5naV9jb2RlCisgICAgcmFp
c2UgUnVudGltZUVycm9yKAorICAgICAgICAid3JhcF9jb250cm9sbGVyIGF0ICVyICVzOiVkICVz
IgorICAgICAgICAlIChjby5jb19uYW1lLCBjby5jb19maWxlbmFtZSwgY28uY29fZmlyc3RsaW5l
bm8sIG1zZykKKyAgICApCisKKworY2xhc3MgSG9va0NhbGxFcnJvcihFeGNlcHRpb24pOgorICAg
ICIiIiBIb29rIHdhcyBjYWxsZWQgd3JvbmdseS4gIiIiCisKKworY2xhc3MgX1Jlc3VsdChvYmpl
Y3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXN1bHQsIGV4Y2luZm8pOgorICAgICAgICBz
ZWxmLl9yZXN1bHQgPSByZXN1bHQKKyAgICAgICAgc2VsZi5fZXhjaW5mbyA9IGV4Y2luZm8KKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBleGNpbmZvKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fZXhjaW5mbworCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJlc3VsdChzZWxmKToKKyAgICAg
ICAgIiIiR2V0IHRoZSByZXN1bHQocykgZm9yIHRoaXMgaG9vayBjYWxsIChERVBSRUNBVEVEIGlu
IGZhdm9yIG9mIGBgZ2V0X3Jlc3VsdCgpYGApLiIiIgorICAgICAgICBtc2cgPSAiVXNlIGdldF9y
ZXN1bHQoKSB3aGljaCBmb3JjZXMgY29ycmVjdCBleGNlcHRpb24gaGFuZGxpbmciCisgICAgICAg
IHdhcm5pbmdzLndhcm4oRGVwcmVjYXRpb25XYXJuaW5nKG1zZyksIHN0YWNrbGV2ZWw9MikKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdAorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZy
b21fY2FsbChjbHMsIGZ1bmMpOgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAg
ICAgICAgcmVzdWx0ID0gZXhjaW5mbyA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
cmVzdWx0ID0gZnVuYygpCisgICAgICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uOgorICAgICAgICAg
ICAgZXhjaW5mbyA9IHN5cy5leGNfaW5mbygpCisKKyAgICAgICAgcmV0dXJuIGNscyhyZXN1bHQs
IGV4Y2luZm8pCisKKyAgICBkZWYgZm9yY2VfcmVzdWx0KHNlbGYsIHJlc3VsdCk6CisgICAgICAg
ICIiIkZvcmNlIHRoZSByZXN1bHQocykgdG8gYGByZXN1bHRgYC4KKworICAgICAgICBJZiB0aGUg
aG9vayB3YXMgbWFya2VkIGFzIGEgYGBmaXJzdHJlc3VsdGBgIGEgc2luZ2xlIHZhbHVlIHNob3Vs
ZAorICAgICAgICBiZSBzZXQgb3RoZXJ3aXNlIHNldCBhIChtb2RpZmllZCkgbGlzdCBvZiByZXN1
bHRzLiBBbnkgZXhjZXB0aW9ucworICAgICAgICBmb3VuZCBkdXJpbmcgaW52b2NhdGlvbiB3aWxs
IGJlIGRlbGV0ZWQuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9yZXN1bHQgPSByZXN1bHQK
KyAgICAgICAgc2VsZi5fZXhjaW5mbyA9IE5vbmUKKworICAgIGRlZiBnZXRfcmVzdWx0KHNlbGYp
OgorICAgICAgICAiIiJHZXQgdGhlIHJlc3VsdChzKSBmb3IgdGhpcyBob29rIGNhbGwuCisKKyAg
ICAgICAgSWYgdGhlIGhvb2sgd2FzIG1hcmtlZCBhcyBhIGBgZmlyc3RyZXN1bHRgYCBvbmx5IGEg
c2luZ2xlIHZhbHVlCisgICAgICAgIHdpbGwgYmUgcmV0dXJuZWQgb3RoZXJ3aXNlIGEgbGlzdCBv
ZiByZXN1bHRzLgorICAgICAgICAiIiIKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVl
CisgICAgICAgIGlmIHNlbGYuX2V4Y2luZm8gaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9yZXN1bHQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4ID0gc2VsZi5fZXhjaW5m
bworICAgICAgICAgICAgaWYgX3B5MzoKKyAgICAgICAgICAgICAgICByYWlzZSBleFsxXS53aXRo
X3RyYWNlYmFjayhleFsyXSkKKyAgICAgICAgICAgIF9yZXJhaXNlKCpleCkgICMgbm9xYQorCisK
K2RlZiBfd3JhcHBlZF9jYWxsKHdyYXBfY29udHJvbGxlciwgZnVuYyk6CisgICAgIiIiIFdyYXAg
Y2FsbGluZyB0byBhIGZ1bmN0aW9uIHdpdGggYSBnZW5lcmF0b3Igd2hpY2ggbmVlZHMgdG8geWll
bGQKKyAgICBleGFjdGx5IG9uY2UuICBUaGUgeWllbGQgcG9pbnQgd2lsbCB0cmlnZ2VyIGNhbGxp
bmcgdGhlIHdyYXBwZWQgZnVuY3Rpb24KKyAgICBhbmQgcmV0dXJuIGl0cyBgYF9SZXN1bHRgYCB0
byB0aGUgeWllbGQgcG9pbnQuICBUaGUgZ2VuZXJhdG9yIHRoZW4gbmVlZHMKKyAgICB0byBmaW5p
c2ggKHJhaXNlIFN0b3BJdGVyYXRpb24pIGluIG9yZGVyIGZvciB0aGUgd3JhcHBlZCBjYWxsIHRv
IGNvbXBsZXRlLgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgbmV4dCh3cmFwX2NvbnRyb2xs
ZXIpICAjIGZpcnN0IHlpZWxkCisgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgIF9y
YWlzZV93cmFwZmFpbCh3cmFwX2NvbnRyb2xsZXIsICJkaWQgbm90IHlpZWxkIikKKyAgICBjYWxs
X291dGNvbWUgPSBfUmVzdWx0LmZyb21fY2FsbChmdW5jKQorICAgIHRyeToKKyAgICAgICAgd3Jh
cF9jb250cm9sbGVyLnNlbmQoY2FsbF9vdXRjb21lKQorICAgICAgICBfcmFpc2Vfd3JhcGZhaWwo
d3JhcF9jb250cm9sbGVyLCAiaGFzIHNlY29uZCB5aWVsZCIpCisgICAgZXhjZXB0IFN0b3BJdGVy
YXRpb246CisgICAgICAgIHBhc3MKKyAgICByZXR1cm4gY2FsbF9vdXRjb21lLmdldF9yZXN1bHQo
KQorCisKK2NsYXNzIF9MZWdhY3lNdWx0aUNhbGwob2JqZWN0KToKKyAgICAiIiIgZXhlY3V0ZSBh
IGNhbGwgaW50byBtdWx0aXBsZSBweXRob24gZnVuY3Rpb25zL21ldGhvZHMuICIiIgorCisgICAg
IyBYWFggbm90ZSB0aGF0IHRoZSBfX211bHRpY2FsbF9fIGFyZ3VtZW50IGlzIHN1cHBvcnRlZCBv
bmx5CisgICAgIyBmb3IgcHl0ZXN0IGNvbXBhdGliaWxpdHkgcmVhc29ucy4gIEl0IHdhcyBuZXZl
ciBvZmZpY2lhbGx5CisgICAgIyBzdXBwb3J0ZWQgdGhlcmUgYW5kIGlzIGV4cGxpY2l0ZWx5IGRl
cHJlY2F0ZWQgc2luY2UgMi44CisgICAgIyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IHNvb24sIGFsbG93
aW5nIHRvIGF2b2lkIHRoZSBiZWxvdyByZWN1cnNpb24KKyAgICAjIGluIGV4ZWN1dGUoKSBhbmQg
c2ltcGxpZnkvc3BlZWQgdXAgdGhlIGV4ZWN1dGUgbG9vcC4KKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBob29rX2ltcGxzLCBrd2FyZ3MsIGZpcnN0cmVzdWx0PUZhbHNlKToKKyAgICAgICAgc2Vs
Zi5ob29rX2ltcGxzID0gaG9va19pbXBscworICAgICAgICBzZWxmLmNhbGxlcl9rd2FyZ3MgPSBr
d2FyZ3MgICMgY29tZSBmcm9tIF9Ib29rQ2FsbGVyLl9fY2FsbF9fKCkKKyAgICAgICAgc2VsZi5j
YWxsZXJfa3dhcmdzWyJfX211bHRpY2FsbF9fIl0gPSBzZWxmCisgICAgICAgIHNlbGYuZmlyc3Ry
ZXN1bHQgPSBmaXJzdHJlc3VsdAorCisgICAgZGVmIGV4ZWN1dGUoc2VsZik6CisgICAgICAgIGNh
bGxlcl9rd2FyZ3MgPSBzZWxmLmNhbGxlcl9rd2FyZ3MKKyAgICAgICAgc2VsZi5yZXN1bHRzID0g
cmVzdWx0cyA9IFtdCisgICAgICAgIGZpcnN0cmVzdWx0ID0gc2VsZi5maXJzdHJlc3VsdAorCisg
ICAgICAgIHdoaWxlIHNlbGYuaG9va19pbXBsczoKKyAgICAgICAgICAgIGhvb2tfaW1wbCA9IHNl
bGYuaG9va19pbXBscy5wb3AoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGFy
Z3MgPSBbY2FsbGVyX2t3YXJnc1thcmduYW1lXSBmb3IgYXJnbmFtZSBpbiBob29rX2ltcGwuYXJn
bmFtZXNdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgZm9y
IGFyZ25hbWUgaW4gaG9va19pbXBsLmFyZ25hbWVzOgorICAgICAgICAgICAgICAgICAgICBpZiBh
cmduYW1lIG5vdCBpbiBjYWxsZXJfa3dhcmdzOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFp
c2UgSG9va0NhbGxFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaG9vayBjYWxs
IG11c3QgcHJvdmlkZSBhcmd1bWVudCAlciIgJSAoYXJnbmFtZSwpCisgICAgICAgICAgICAgICAg
ICAgICAgICApCisgICAgICAgICAgICBpZiBob29rX2ltcGwuaG9va3dyYXBwZXI6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIF93cmFwcGVkX2NhbGwoaG9va19pbXBsLmZ1bmN0aW9uKCphcmdzKSwg
c2VsZi5leGVjdXRlKQorICAgICAgICAgICAgcmVzID0gaG9va19pbXBsLmZ1bmN0aW9uKCphcmdz
KQorICAgICAgICAgICAgaWYgcmVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGlmIGZp
cnN0cmVzdWx0OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzCisgICAgICAgICAgICAg
ICAgcmVzdWx0cy5hcHBlbmQocmVzKQorCisgICAgICAgIGlmIG5vdCBmaXJzdHJlc3VsdDoKKyAg
ICAgICAgICAgIHJldHVybiByZXN1bHRzCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAg
ICAgIHN0YXR1cyA9ICIlZCBtZXRocyIgJSAobGVuKHNlbGYuaG9va19pbXBscyksKQorICAgICAg
ICBpZiBoYXNhdHRyKHNlbGYsICJyZXN1bHRzIik6CisgICAgICAgICAgICBzdGF0dXMgPSAoIiVk
IHJlc3VsdHMsICIgJSBsZW4oc2VsZi5yZXN1bHRzKSkgKyBzdGF0dXMKKyAgICAgICAgcmV0dXJu
ICI8X011bHRpQ2FsbCAlcywga3dhcmdzPSVyPiIgJSAoc3RhdHVzLCBzZWxmLmNhbGxlcl9rd2Fy
Z3MpCisKKworZGVmIF9sZWdhY3ltdWx0aWNhbGwoaG9va19pbXBscywgY2FsbGVyX2t3YXJncywg
Zmlyc3RyZXN1bHQ9RmFsc2UpOgorICAgIHJldHVybiBfTGVnYWN5TXVsdGlDYWxsKAorICAgICAg
ICBob29rX2ltcGxzLCBjYWxsZXJfa3dhcmdzLCBmaXJzdHJlc3VsdD1maXJzdHJlc3VsdAorICAg
ICkuZXhlY3V0ZSgpCisKKworZGVmIF9tdWx0aWNhbGwoaG9va19pbXBscywgY2FsbGVyX2t3YXJn
cywgZmlyc3RyZXN1bHQ9RmFsc2UpOgorICAgICIiIkV4ZWN1dGUgYSBjYWxsIGludG8gbXVsdGlw
bGUgcHl0aG9uIGZ1bmN0aW9ucy9tZXRob2RzIGFuZCByZXR1cm4gdGhlCisgICAgcmVzdWx0KHMp
LgorCisgICAgYGBjYWxsZXJfa3dhcmdzYGAgY29tZXMgZnJvbSBfSG9va0NhbGxlci5fX2NhbGxf
XygpLgorICAgICIiIgorICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgIHJlc3VsdHMg
PSBbXQorICAgIGV4Y2luZm8gPSBOb25lCisgICAgdHJ5OiAgIyBydW4gaW1wbCBhbmQgd3JhcHBl
ciBzZXR1cCBmdW5jdGlvbnMgaW4gYSBsb29wCisgICAgICAgIHRlYXJkb3ducyA9IFtdCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIGZvciBob29rX2ltcGwgaW4gcmV2ZXJzZWQoaG9va19pbXBs
cyk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBhcmdzID0gW2Nh
bGxlcl9rd2FyZ3NbYXJnbmFtZV0gZm9yIGFyZ25hbWUgaW4gaG9va19pbXBsLmFyZ25hbWVzXQor
ICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgZm9y
IGFyZ25hbWUgaW4gaG9va19pbXBsLmFyZ25hbWVzOgorICAgICAgICAgICAgICAgICAgICAgICAg
aWYgYXJnbmFtZSBub3QgaW4gY2FsbGVyX2t3YXJnczoKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByYWlzZSBIb29rQ2FsbEVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaG9vayBjYWxsIG11c3QgcHJvdmlkZSBhcmd1bWVudCAlciIgJSAoYXJnbmFtZSwpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICAgICAgaWYgaG9va19pbXBs
Lmhvb2t3cmFwcGVyOgorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
ICAgICAgICBnZW4gPSBob29rX2ltcGwuZnVuY3Rpb24oKmFyZ3MpCisgICAgICAgICAgICAgICAg
ICAgICAgICBuZXh0KGdlbikgICMgZmlyc3QgeWllbGQKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlYXJkb3ducy5hcHBlbmQoZ2VuKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgU3RvcEl0
ZXJhdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgIF9yYWlzZV93cmFwZmFpbChnZW4sICJk
aWQgbm90IHlpZWxkIikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICByZXMgPSBob29rX2ltcGwuZnVuY3Rpb24oKmFyZ3MpCisgICAgICAgICAgICAgICAgICAgIGlm
IHJlcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5k
KHJlcykKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGZpcnN0cmVzdWx0OiAgIyBoYWx0IGZ1
cnRoZXIgaW1wbCBjYWxscworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAg
ICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uOgorICAgICAgICAgICAgZXhjaW5mbyA9IHN5cy5leGNf
aW5mbygpCisgICAgZmluYWxseToKKyAgICAgICAgaWYgZmlyc3RyZXN1bHQ6ICAjIGZpcnN0IHJl
c3VsdCBob29rcyByZXR1cm4gYSBzaW5nbGUgdmFsdWUKKyAgICAgICAgICAgIG91dGNvbWUgPSBf
UmVzdWx0KHJlc3VsdHNbMF0gaWYgcmVzdWx0cyBlbHNlIE5vbmUsIGV4Y2luZm8pCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBvdXRjb21lID0gX1Jlc3VsdChyZXN1bHRzLCBleGNpbmZvKQor
CisgICAgICAgICMgcnVuIGFsbCB3cmFwcGVyIHBvc3QteWllbGQgYmxvY2tzCisgICAgICAgIGZv
ciBnZW4gaW4gcmV2ZXJzZWQodGVhcmRvd25zKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBnZW4uc2VuZChvdXRjb21lKQorICAgICAgICAgICAgICAgIF9yYWlzZV93cmFwZmFp
bChnZW4sICJoYXMgc2Vjb25kIHlpZWxkIikKKyAgICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0
aW9uOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICByZXR1cm4gb3V0Y29tZS5nZXRf
cmVzdWx0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvaG9va3MucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS9zcmMvcGx1Z2d5L2hvb2tzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhMWMyODcxOThmMmYy
YTE4OTYwOTkwNDE2NTZmNmNmZjgzMjA5MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9zcmMvcGx1Z2d5L2hvb2tzLnB5CkBAIC0wLDAgKzEsMzU5IEBACisiIiIKK0ludGVybmFsIGhv
b2sgYW5ub3RhdGlvbiwgcmVwcmVzZW50YXRpb24gYW5kIGNhbGxpbmcgbWFjaGluZXJ5LgorIiIi
CitpbXBvcnQgaW5zcGVjdAoraW1wb3J0IHN5cworaW1wb3J0IHdhcm5pbmdzCitmcm9tIC5jYWxs
ZXJzIGltcG9ydCBfbGVnYWN5bXVsdGljYWxsLCBfbXVsdGljYWxsCisKKworY2xhc3MgSG9va3Nw
ZWNNYXJrZXIob2JqZWN0KToKKyAgICAiIiIgRGVjb3JhdG9yIGhlbHBlciBjbGFzcyBmb3IgbWFy
a2luZyBmdW5jdGlvbnMgYXMgaG9vayBzcGVjaWZpY2F0aW9ucy4KKworICAgIFlvdSBjYW4gaW5z
dGFudGlhdGUgaXQgd2l0aCBhIHByb2plY3RfbmFtZSB0byBnZXQgYSBkZWNvcmF0b3IuCisgICAg
Q2FsbGluZyA6cHk6bWV0aDpgLlBsdWdpbk1hbmFnZXIuYWRkX2hvb2tzcGVjc2AgbGF0ZXIgd2ls
bCBkaXNjb3ZlciBhbGwgbWFya2VkIGZ1bmN0aW9ucworICAgIGlmIHRoZSA6cHk6Y2xhc3M6YC5Q
bHVnaW5NYW5hZ2VyYCB1c2VzIHRoZSBzYW1lIHByb2plY3RfbmFtZS4KKyAgICAiIiIKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0X25hbWUpOgorICAgICAgICBzZWxmLnByb2plY3Rf
bmFtZSA9IHByb2plY3RfbmFtZQorCisgICAgZGVmIF9fY2FsbF9fKAorICAgICAgICBzZWxmLCBm
dW5jdGlvbj1Ob25lLCBmaXJzdHJlc3VsdD1GYWxzZSwgaGlzdG9yaWM9RmFsc2UsIHdhcm5fb25f
aW1wbD1Ob25lCisgICAgKToKKyAgICAgICAgIiIiIGlmIHBhc3NlZCBhIGZ1bmN0aW9uLCBkaXJl
Y3RseSBzZXRzIGF0dHJpYnV0ZXMgb24gdGhlIGZ1bmN0aW9uCisgICAgICAgIHdoaWNoIHdpbGwg
bWFrZSBpdCBkaXNjb3ZlcmFibGUgdG8gOnB5Om1ldGg6YC5QbHVnaW5NYW5hZ2VyLmFkZF9ob29r
c3BlY3NgLgorICAgICAgICBJZiBwYXNzZWQgbm8gZnVuY3Rpb24sIHJldHVybnMgYSBkZWNvcmF0
b3Igd2hpY2ggY2FuIGJlIGFwcGxpZWQgdG8gYSBmdW5jdGlvbgorICAgICAgICBsYXRlciB1c2lu
ZyB0aGUgYXR0cmlidXRlcyBzdXBwbGllZC4KKworICAgICAgICBJZiBgYGZpcnN0cmVzdWx0YGAg
aXMgYGBUcnVlYGAgdGhlIDE6TiBob29rIGNhbGwgKE4gYmVpbmcgdGhlIG51bWJlciBvZiByZWdp
c3RlcmVkCisgICAgICAgIGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb25zKSB3aWxsIHN0b3Ag
YXQgSTw9TiB3aGVuIHRoZSBJJ3RoIGZ1bmN0aW9uCisgICAgICAgIHJldHVybnMgYSBub24tYGBO
b25lYGAgcmVzdWx0LgorCisgICAgICAgIElmIGBgaGlzdG9yaWNgYCBpcyBgYFRydWVgYCBjYWxs
cyB0byBhIGhvb2sgd2lsbCBiZSBtZW1vcml6ZWQgYW5kIHJlcGxheWVkCisgICAgICAgIG9uIGxh
dGVyIHJlZ2lzdGVyZWQgcGx1Z2lucy4KKworICAgICAgICAiIiIKKworICAgICAgICBkZWYgc2V0
YXR0cl9ob29rc3BlY19vcHRzKGZ1bmMpOgorICAgICAgICAgICAgaWYgaGlzdG9yaWMgYW5kIGZp
cnN0cmVzdWx0OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNhbm5vdCBoYXZl
IGEgaGlzdG9yaWMgZmlyc3RyZXN1bHQgaG9vayIpCisgICAgICAgICAgICBzZXRhdHRyKAorICAg
ICAgICAgICAgICAgIGZ1bmMsCisgICAgICAgICAgICAgICAgc2VsZi5wcm9qZWN0X25hbWUgKyAi
X3NwZWMiLAorICAgICAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgICAgIGZpcnN0
cmVzdWx0PWZpcnN0cmVzdWx0LAorICAgICAgICAgICAgICAgICAgICBoaXN0b3JpYz1oaXN0b3Jp
YywKKyAgICAgICAgICAgICAgICAgICAgd2Fybl9vbl9pbXBsPXdhcm5fb25faW1wbCwKKyAgICAg
ICAgICAgICAgICApLAorICAgICAgICAgICAgKQorICAgICAgICAgICAgcmV0dXJuIGZ1bmMKKwor
ICAgICAgICBpZiBmdW5jdGlvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZXRh
dHRyX2hvb2tzcGVjX29wdHMoZnVuY3Rpb24pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy
ZXR1cm4gc2V0YXR0cl9ob29rc3BlY19vcHRzCisKKworY2xhc3MgSG9va2ltcGxNYXJrZXIob2Jq
ZWN0KToKKyAgICAiIiIgRGVjb3JhdG9yIGhlbHBlciBjbGFzcyBmb3IgbWFya2luZyBmdW5jdGlv
bnMgYXMgaG9vayBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICBZb3UgY2FuIGluc3RhbnRpYXRlIHdp
dGggYSBgYHByb2plY3RfbmFtZWBgIHRvIGdldCBhIGRlY29yYXRvci4KKyAgICBDYWxsaW5nIDpw
eTptZXRoOmAuUGx1Z2luTWFuYWdlci5yZWdpc3RlcmAgbGF0ZXIgd2lsbCBkaXNjb3ZlciBhbGwg
bWFya2VkIGZ1bmN0aW9ucworICAgIGlmIHRoZSA6cHk6Y2xhc3M6YC5QbHVnaW5NYW5hZ2VyYCB1
c2VzIHRoZSBzYW1lIHByb2plY3RfbmFtZS4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwcm9qZWN0X25hbWUpOgorICAgICAgICBzZWxmLnByb2plY3RfbmFtZSA9IHByb2plY3Rf
bmFtZQorCisgICAgZGVmIF9fY2FsbF9fKAorICAgICAgICBzZWxmLAorICAgICAgICBmdW5jdGlv
bj1Ob25lLAorICAgICAgICBob29rd3JhcHBlcj1GYWxzZSwKKyAgICAgICAgb3B0aW9uYWxob29r
PUZhbHNlLAorICAgICAgICB0cnlmaXJzdD1GYWxzZSwKKyAgICAgICAgdHJ5bGFzdD1GYWxzZSwK
KyAgICApOgorCisgICAgICAgICIiIiBpZiBwYXNzZWQgYSBmdW5jdGlvbiwgZGlyZWN0bHkgc2V0
cyBhdHRyaWJ1dGVzIG9uIHRoZSBmdW5jdGlvbgorICAgICAgICB3aGljaCB3aWxsIG1ha2UgaXQg
ZGlzY292ZXJhYmxlIHRvIDpweTptZXRoOmAuUGx1Z2luTWFuYWdlci5yZWdpc3RlcmAuCisgICAg
ICAgIElmIHBhc3NlZCBubyBmdW5jdGlvbiwgcmV0dXJucyBhIGRlY29yYXRvciB3aGljaCBjYW4g
YmUgYXBwbGllZCB0byBhCisgICAgICAgIGZ1bmN0aW9uIGxhdGVyIHVzaW5nIHRoZSBhdHRyaWJ1
dGVzIHN1cHBsaWVkLgorCisgICAgICAgIElmIGBgb3B0aW9uYWxob29rYGAgaXMgYGBUcnVlYGAg
YSBtaXNzaW5nIG1hdGNoaW5nIGhvb2sgc3BlY2lmaWNhdGlvbiB3aWxsIG5vdCByZXN1bHQKKyAg
ICAgICAgaW4gYW4gZXJyb3IgKGJ5IGRlZmF1bHQgaXQgaXMgYW4gZXJyb3IgaWYgbm8gbWF0Y2hp
bmcgc3BlYyBpcyBmb3VuZCkuCisKKyAgICAgICAgSWYgYGB0cnlmaXJzdGBgIGlzIGBgVHJ1ZWBg
IHRoaXMgaG9vayBpbXBsZW1lbnRhdGlvbiB3aWxsIHJ1biBhcyBlYXJseSBhcyBwb3NzaWJsZQor
ICAgICAgICBpbiB0aGUgY2hhaW4gb2YgTiBob29rIGltcGxlbWVudGF0aW9ucyBmb3IgYSBzcGVj
aWZpY2F0aW9uLgorCisgICAgICAgIElmIGBgdHJ5bGFzdGBgIGlzIGBgVHJ1ZWBgIHRoaXMgaG9v
ayBpbXBsZW1lbnRhdGlvbiB3aWxsIHJ1biBhcyBsYXRlIGFzIHBvc3NpYmxlCisgICAgICAgIGlu
IHRoZSBjaGFpbiBvZiBOIGhvb2sgaW1wbGVtZW50YXRpb25zLgorCisgICAgICAgIElmIGBgaG9v
a3dyYXBwZXJgYCBpcyBgYFRydWVgYCB0aGUgaG9vayBpbXBsZW1lbnRhdGlvbnMgbmVlZHMgdG8g
ZXhlY3V0ZSBleGFjdGx5CisgICAgICAgIG9uZSBgYHlpZWxkYGAuICBUaGUgY29kZSBiZWZvcmUg
dGhlIGBgeWllbGRgYCBpcyBydW4gZWFybHkgYmVmb3JlIGFueSBub24taG9va3dyYXBwZXIKKyAg
ICAgICAgZnVuY3Rpb24gaXMgcnVuLiAgVGhlIGNvZGUgYWZ0ZXIgdGhlIGBgeWllbGRgYCBpcyBy
dW4gYWZ0ZXIgYWxsIG5vbi1ob29rd3JhcHBlcgorICAgICAgICBmdW5jdGlvbiBoYXZlIHJ1bi4g
IFRoZSBgYHlpZWxkYGAgcmVjZWl2ZXMgYSA6cHk6Y2xhc3M6YC5jYWxsZXJzLl9SZXN1bHRgIG9i
amVjdAorICAgICAgICByZXByZXNlbnRpbmcgdGhlIGV4Y2VwdGlvbiBvciByZXN1bHQgb3V0Y29t
ZSBvZiB0aGUgaW5uZXIgY2FsbHMgKGluY2x1ZGluZyBvdGhlcgorICAgICAgICBob29rd3JhcHBl
ciBjYWxscykuCisKKyAgICAgICAgIiIiCisKKyAgICAgICAgZGVmIHNldGF0dHJfaG9va2ltcGxf
b3B0cyhmdW5jKToKKyAgICAgICAgICAgIHNldGF0dHIoCisgICAgICAgICAgICAgICAgZnVuYywK
KyAgICAgICAgICAgICAgICBzZWxmLnByb2plY3RfbmFtZSArICJfaW1wbCIsCisgICAgICAgICAg
ICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICAgICAgaG9va3dyYXBwZXI9aG9va3dyYXBwZXIs
CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsaG9vaz1vcHRpb25hbGhvb2ssCisgICAgICAg
ICAgICAgICAgICAgIHRyeWZpcnN0PXRyeWZpcnN0LAorICAgICAgICAgICAgICAgICAgICB0cnls
YXN0PXRyeWxhc3QsCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIHJldHVybiBmdW5jCisKKyAgICAgICAgaWYgZnVuY3Rpb24gaXMgTm9uZToKKyAgICAgICAg
ICAgIHJldHVybiBzZXRhdHRyX2hvb2tpbXBsX29wdHMKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHJldHVybiBzZXRhdHRyX2hvb2tpbXBsX29wdHMoZnVuY3Rpb24pCisKKworZGVmIG5vcm1h
bGl6ZV9ob29raW1wbF9vcHRzKG9wdHMpOgorICAgIG9wdHMuc2V0ZGVmYXVsdCgidHJ5Zmlyc3Qi
LCBGYWxzZSkKKyAgICBvcHRzLnNldGRlZmF1bHQoInRyeWxhc3QiLCBGYWxzZSkKKyAgICBvcHRz
LnNldGRlZmF1bHQoImhvb2t3cmFwcGVyIiwgRmFsc2UpCisgICAgb3B0cy5zZXRkZWZhdWx0KCJv
cHRpb25hbGhvb2siLCBGYWxzZSkKKworCitpZiBoYXNhdHRyKGluc3BlY3QsICJnZXRmdWxsYXJn
c3BlYyIpOgorCisgICAgZGVmIF9nZXRhcmdzcGVjKGZ1bmMpOgorICAgICAgICByZXR1cm4gaW5z
cGVjdC5nZXRmdWxsYXJnc3BlYyhmdW5jKQorCisKK2Vsc2U6CisKKyAgICBkZWYgX2dldGFyZ3Nw
ZWMoZnVuYyk6CisgICAgICAgIHJldHVybiBpbnNwZWN0LmdldGFyZ3NwZWMoZnVuYykKKworCitf
UFlQWTMgPSBoYXNhdHRyKHN5cywgInB5cHlfdmVyc2lvbl9pbmZvIikgYW5kIHN5cy52ZXJzaW9u
X2luZm8ubWFqb3IgPT0gMworCisKK2RlZiB2YXJuYW1lcyhmdW5jKToKKyAgICAiIiJSZXR1cm4g
dHVwbGUgb2YgcG9zaXRpb25hbCBhbmQga2V5d3JvcmQgYXJndW1lbnQgbmFtZXMgZm9yIGEgZnVu
Y3Rpb24sCisgICAgbWV0aG9kLCBjbGFzcyBvciBjYWxsYWJsZS4KKworICAgIEluIGNhc2Ugb2Yg
YSBjbGFzcywgaXRzIGBgX19pbml0X19gYCBtZXRob2QgaXMgY29uc2lkZXJlZC4KKyAgICBGb3Ig
bWV0aG9kcyB0aGUgYGBzZWxmYGAgcGFyYW1ldGVyIGlzIG5vdCBpbmNsdWRlZC4KKyAgICAiIiIK
KyAgICBjYWNoZSA9IGdldGF0dHIoZnVuYywgIl9fZGljdF9fIiwge30pCisgICAgdHJ5OgorICAg
ICAgICByZXR1cm4gY2FjaGVbIl92YXJuYW1lcyJdCisgICAgZXhjZXB0IEtleUVycm9yOgorICAg
ICAgICBwYXNzCisKKyAgICBpZiBpbnNwZWN0LmlzY2xhc3MoZnVuYyk6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGZ1bmMgPSBmdW5jLl9faW5pdF9fCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1
dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiAoKSwgKCkKKyAgICBlbGlmIG5vdCBpbnNwZWN0
Lmlzcm91dGluZShmdW5jKTogICMgY2FsbGFibGUgb2JqZWN0PworICAgICAgICB0cnk6CisgICAg
ICAgICAgICBmdW5jID0gZ2V0YXR0cihmdW5jLCAiX19jYWxsX18iLCBmdW5jKQorICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcmV0dXJuICgpLCAoKQorCisgICAgdHJ5OiAg
IyBmdW5jIE1VU1QgYmUgYSBmdW5jdGlvbiBvciBtZXRob2QgaGVyZSBvciB3ZSB3b24ndCBwYXJz
ZSBhbnkgYXJncworICAgICAgICBzcGVjID0gX2dldGFyZ3NwZWMoZnVuYykKKyAgICBleGNlcHQg
VHlwZUVycm9yOgorICAgICAgICByZXR1cm4gKCksICgpCisKKyAgICBhcmdzLCBkZWZhdWx0cyA9
IHR1cGxlKHNwZWMuYXJncyksIHNwZWMuZGVmYXVsdHMKKyAgICBpZiBkZWZhdWx0czoKKyAgICAg
ICAgaW5kZXggPSAtbGVuKGRlZmF1bHRzKQorICAgICAgICBhcmdzLCBrd2FyZ3MgPSBhcmdzWzpp
bmRleF0sIHR1cGxlKGFyZ3NbaW5kZXg6XSkKKyAgICBlbHNlOgorICAgICAgICBrd2FyZ3MgPSAo
KQorCisgICAgIyBzdHJpcCBhbnkgaW1wbGljaXQgaW5zdGFuY2UgYXJnCisgICAgIyBweXB5MyB1
c2VzICJvYmoiIGluc3RlYWQgb2YgInNlbGYiIGZvciBkZWZhdWx0IGR1bmRlciBtZXRob2RzCisg
ICAgaW1wbGljaXRfbmFtZXMgPSAoInNlbGYiLCkgaWYgbm90IF9QWVBZMyBlbHNlICgic2VsZiIs
ICJvYmoiKQorICAgIGlmIGFyZ3M6CisgICAgICAgIGlmIGluc3BlY3QuaXNtZXRob2QoZnVuYykg
b3IgKAorICAgICAgICAgICAgIi4iIGluIGdldGF0dHIoZnVuYywgIl9fcXVhbG5hbWVfXyIsICgp
KSBhbmQgYXJnc1swXSBpbiBpbXBsaWNpdF9uYW1lcworICAgICAgICApOgorICAgICAgICAgICAg
YXJncyA9IGFyZ3NbMTpdCisKKyAgICB0cnk6CisgICAgICAgIGNhY2hlWyJfdmFybmFtZXMiXSA9
IGFyZ3MsIGt3YXJncworICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgIHBhc3MKKyAgICBy
ZXR1cm4gYXJncywga3dhcmdzCisKKworY2xhc3MgX0hvb2tSZWxheShvYmplY3QpOgorICAgICIi
IiBob29rIGhvbGRlciBvYmplY3QgZm9yIHBlcmZvcm1pbmcgMTpOIGhvb2sgY2FsbHMgd2hlcmUg
TiBpcyB0aGUgbnVtYmVyCisgICAgb2YgcmVnaXN0ZXJlZCBwbHVnaW5zLgorCisgICAgIiIiCisK
KworY2xhc3MgX0hvb2tDYWxsZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFt
ZSwgaG9va19leGVjdXRlLCBzcGVjbW9kdWxlX29yX2NsYXNzPU5vbmUsIHNwZWNfb3B0cz1Ob25l
KToKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorICAgICAgICBzZWxmLl93cmFwcGVycyA9IFtd
CisgICAgICAgIHNlbGYuX25vbndyYXBwZXJzID0gW10KKyAgICAgICAgc2VsZi5faG9va2V4ZWMg
PSBob29rX2V4ZWN1dGUKKyAgICAgICAgc2VsZi5hcmduYW1lcyA9IE5vbmUKKyAgICAgICAgc2Vs
Zi5rd2FyZ25hbWVzID0gTm9uZQorICAgICAgICBzZWxmLm11bHRpY2FsbCA9IF9tdWx0aWNhbGwK
KyAgICAgICAgc2VsZi5zcGVjID0gTm9uZQorICAgICAgICBpZiBzcGVjbW9kdWxlX29yX2NsYXNz
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYXNzZXJ0IHNwZWNfb3B0cyBpcyBub3QgTm9uZQor
ICAgICAgICAgICAgc2VsZi5zZXRfc3BlY2lmaWNhdGlvbihzcGVjbW9kdWxlX29yX2NsYXNzLCBz
cGVjX29wdHMpCisKKyAgICBkZWYgaGFzX3NwZWMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
LnNwZWMgaXMgbm90IE5vbmUKKworICAgIGRlZiBzZXRfc3BlY2lmaWNhdGlvbihzZWxmLCBzcGVj
bW9kdWxlX29yX2NsYXNzLCBzcGVjX29wdHMpOgorICAgICAgICBhc3NlcnQgbm90IHNlbGYuaGFz
X3NwZWMoKQorICAgICAgICBzZWxmLnNwZWMgPSBIb29rU3BlYyhzcGVjbW9kdWxlX29yX2NsYXNz
LCBzZWxmLm5hbWUsIHNwZWNfb3B0cykKKyAgICAgICAgaWYgc3BlY19vcHRzLmdldCgiaGlzdG9y
aWMiKToKKyAgICAgICAgICAgIHNlbGYuX2NhbGxfaGlzdG9yeSA9IFtdCisKKyAgICBkZWYgaXNf
aGlzdG9yaWMoc2VsZik6CisgICAgICAgIHJldHVybiBoYXNhdHRyKHNlbGYsICJfY2FsbF9oaXN0
b3J5IikKKworICAgIGRlZiBfcmVtb3ZlX3BsdWdpbihzZWxmLCBwbHVnaW4pOgorICAgICAgICBk
ZWYgcmVtb3ZlKHdyYXBwZXJzKToKKyAgICAgICAgICAgIGZvciBpLCBtZXRob2QgaW4gZW51bWVy
YXRlKHdyYXBwZXJzKToKKyAgICAgICAgICAgICAgICBpZiBtZXRob2QucGx1Z2luID09IHBsdWdp
bjoKKyAgICAgICAgICAgICAgICAgICAgZGVsIHdyYXBwZXJzW2ldCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgaWYgcmVtb3ZlKHNlbGYuX3dyYXBwZXJzKSBpcyBO
b25lOgorICAgICAgICAgICAgaWYgcmVtb3ZlKHNlbGYuX25vbndyYXBwZXJzKSBpcyBOb25lOgor
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInBsdWdpbiAlciBub3QgZm91bmQiICUg
KHBsdWdpbiwpKQorCisgICAgZGVmIGdldF9ob29raW1wbHMoc2VsZik6CisgICAgICAgICMgT3Jk
ZXIgaXMgaW1wb3J0YW50IGZvciBfaG9va2V4ZWMKKyAgICAgICAgcmV0dXJuIHNlbGYuX25vbndy
YXBwZXJzICsgc2VsZi5fd3JhcHBlcnMKKworICAgIGRlZiBfYWRkX2hvb2tpbXBsKHNlbGYsIGhv
b2tpbXBsKToKKyAgICAgICAgIiIiQWRkIGFuIGltcGxlbWVudGF0aW9uIHRvIHRoZSBjYWxsYmFj
ayBjaGFpbi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGhvb2tpbXBsLmhvb2t3cmFwcGVyOgor
ICAgICAgICAgICAgbWV0aG9kcyA9IHNlbGYuX3dyYXBwZXJzCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBtZXRob2RzID0gc2VsZi5fbm9ud3JhcHBlcnMKKworICAgICAgICBpZiBob29raW1w
bC50cnlsYXN0OgorICAgICAgICAgICAgbWV0aG9kcy5pbnNlcnQoMCwgaG9va2ltcGwpCisgICAg
ICAgIGVsaWYgaG9va2ltcGwudHJ5Zmlyc3Q6CisgICAgICAgICAgICBtZXRob2RzLmFwcGVuZCho
b29raW1wbCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgZmluZCBsYXN0IG5vbi10cnlm
aXJzdCBtZXRob2QKKyAgICAgICAgICAgIGkgPSBsZW4obWV0aG9kcykgLSAxCisgICAgICAgICAg
ICB3aGlsZSBpID49IDAgYW5kIG1ldGhvZHNbaV0udHJ5Zmlyc3Q6CisgICAgICAgICAgICAgICAg
aSAtPSAxCisgICAgICAgICAgICBtZXRob2RzLmluc2VydChpICsgMSwgaG9va2ltcGwpCisKKyAg
ICAgICAgaWYgIl9fbXVsdGljYWxsX18iIGluIGhvb2tpbXBsLmFyZ25hbWVzOgorICAgICAgICAg
ICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICAgICAiU3VwcG9ydCBmb3IgX19tdWx0aWNh
bGxfXyBpcyBub3cgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSIKKyAgICAgICAgICAgICAgICAicmVt
b3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiIsCisgICAgICAgICAgICAgICAgRGVwcmVjYXRp
b25XYXJuaW5nLAorICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5tdWx0aWNhbGwgPSBf
bGVnYWN5bXVsdGljYWxsCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVy
biAiPF9Ib29rQ2FsbGVyICVyPiIgJSAoc2VsZi5uYW1lLCkKKworICAgIGRlZiBfX2NhbGxfXyhz
ZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgcmFp
c2UgVHlwZUVycm9yKCJob29rIGNhbGxpbmcgc3VwcG9ydHMgb25seSBrZXl3b3JkIGFyZ3VtZW50
cyIpCisgICAgICAgIGFzc2VydCBub3Qgc2VsZi5pc19oaXN0b3JpYygpCisgICAgICAgIGlmIHNl
bGYuc3BlYyBhbmQgc2VsZi5zcGVjLmFyZ25hbWVzOgorICAgICAgICAgICAgbm90aW5jYWxsID0g
KAorICAgICAgICAgICAgICAgIHNldChzZWxmLnNwZWMuYXJnbmFtZXMpIC0gc2V0KFsiX19tdWx0
aWNhbGxfXyJdKSAtIHNldChrd2FyZ3Mua2V5cygpKQorICAgICAgICAgICAgKQorICAgICAgICAg
ICAgaWYgbm90aW5jYWxsOgorICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAg
ICAgICAgICAgICAgICJBcmd1bWVudChzKSB7fSB3aGljaCBhcmUgZGVjbGFyZWQgaW4gdGhlIGhv
b2tzcGVjICIKKyAgICAgICAgICAgICAgICAgICAgImNhbiBub3QgYmUgZm91bmQgaW4gdGhpcyBo
b29rIGNhbGwiLmZvcm1hdCh0dXBsZShub3RpbmNhbGwpKSwKKyAgICAgICAgICAgICAgICAgICAg
c3RhY2tsZXZlbD0yLAorICAgICAgICAgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2hv
b2tleGVjKHNlbGYsIHNlbGYuZ2V0X2hvb2tpbXBscygpLCBrd2FyZ3MpCisKKyAgICBkZWYgY2Fs
bF9oaXN0b3JpYyhzZWxmLCByZXN1bHRfY2FsbGJhY2s9Tm9uZSwga3dhcmdzPU5vbmUsIHByb2M9
Tm9uZSk6CisgICAgICAgICIiIkNhbGwgdGhlIGhvb2sgd2l0aCBnaXZlbiBgYGt3YXJnc2BgIGZv
ciBhbGwgcmVnaXN0ZXJlZCBwbHVnaW5zIGFuZAorICAgICAgICBmb3IgYWxsIHBsdWdpbnMgd2hp
Y2ggd2lsbCBiZSByZWdpc3RlcmVkIGFmdGVyd2FyZHMuCisKKyAgICAgICAgSWYgYGByZXN1bHRf
Y2FsbGJhY2tgYCBpcyBub3QgYGBOb25lYGAgaXQgd2lsbCBiZSBjYWxsZWQgZm9yIGZvciBlYWNo
CisgICAgICAgIG5vbi1gYE5vbmVgYCByZXN1bHQgb2J0YWluZWQgZnJvbSBhIGhvb2sgaW1wbGVt
ZW50YXRpb24uCisKKyAgICAgICAgLi4gbm90ZTo6CisgICAgICAgICAgICBUaGUgYGBwcm9jYGAg
YXJndW1lbnQgaXMgbm93IGRlcHJlY2F0ZWQuCisgICAgICAgICIiIgorICAgICAgICBpZiBwcm9j
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICAg
ICAiU3VwcG9ydCBmb3IgYHByb2NgIGFyZ3VtZW50IGlzIG5vdyBkZXByZWNhdGVkIGFuZCB3aWxs
IGJlIgorICAgICAgICAgICAgICAgICJyZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIiwK
KyAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsCisgICAgICAgICAgICApCisgICAg
ICAgICAgICByZXN1bHRfY2FsbGJhY2sgPSBwcm9jCisKKyAgICAgICAgc2VsZi5fY2FsbF9oaXN0
b3J5LmFwcGVuZCgoa3dhcmdzIG9yIHt9LCByZXN1bHRfY2FsbGJhY2spKQorICAgICAgICAjIGhp
c3Rvcml6aW5nIGhvb2tzIGRvbid0IHJldHVybiByZXN1bHRzCisgICAgICAgIHJlcyA9IHNlbGYu
X2hvb2tleGVjKHNlbGYsIHNlbGYuZ2V0X2hvb2tpbXBscygpLCBrd2FyZ3MpCisgICAgICAgIGlm
IHJlc3VsdF9jYWxsYmFjayBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICMg
WFhYOiByZW1lbWJlciBmaXJzdHJlc3VsdCBpc24ndCBjb21wYXQgd2l0aCBoaXN0b3JpYworICAg
ICAgICBmb3IgeCBpbiByZXMgb3IgW106CisgICAgICAgICAgICByZXN1bHRfY2FsbGJhY2soeCkK
KworICAgIGRlZiBjYWxsX2V4dHJhKHNlbGYsIG1ldGhvZHMsIGt3YXJncyk6CisgICAgICAgICIi
IiBDYWxsIHRoZSBob29rIHdpdGggc29tZSBhZGRpdGlvbmFsIHRlbXBvcmFyaWx5IHBhcnRpY2lw
YXRpbmcKKyAgICAgICAgbWV0aG9kcyB1c2luZyB0aGUgc3BlY2lmaWVkIGBga3dhcmdzYGAgYXMg
Y2FsbCBwYXJhbWV0ZXJzLiAiIiIKKyAgICAgICAgb2xkID0gbGlzdChzZWxmLl9ub253cmFwcGVy
cyksIGxpc3Qoc2VsZi5fd3JhcHBlcnMpCisgICAgICAgIGZvciBtZXRob2QgaW4gbWV0aG9kczoK
KyAgICAgICAgICAgIG9wdHMgPSBkaWN0KGhvb2t3cmFwcGVyPUZhbHNlLCB0cnlsYXN0PUZhbHNl
LCB0cnlmaXJzdD1GYWxzZSkKKyAgICAgICAgICAgIGhvb2tpbXBsID0gSG9va0ltcGwoTm9uZSwg
Ijx0ZW1wPiIsIG1ldGhvZCwgb3B0cykKKyAgICAgICAgICAgIHNlbGYuX2FkZF9ob29raW1wbCho
b29raW1wbCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYoKiprd2FyZ3Mp
CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9ub253cmFwcGVycywgc2VsZi5f
d3JhcHBlcnMgPSBvbGQKKworICAgIGRlZiBfbWF5YmVfYXBwbHlfaGlzdG9yeShzZWxmLCBtZXRo
b2QpOgorICAgICAgICAiIiJBcHBseSBjYWxsIGhpc3RvcnkgdG8gYSBuZXcgaG9va2ltcGwgaWYg
aXQgaXMgbWFya2VkIGFzIGhpc3RvcmljLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5p
c19oaXN0b3JpYygpOgorICAgICAgICAgICAgZm9yIGt3YXJncywgcmVzdWx0X2NhbGxiYWNrIGlu
IHNlbGYuX2NhbGxfaGlzdG9yeToKKyAgICAgICAgICAgICAgICByZXMgPSBzZWxmLl9ob29rZXhl
YyhzZWxmLCBbbWV0aG9kXSwga3dhcmdzKQorICAgICAgICAgICAgICAgIGlmIHJlcyBhbmQgcmVz
dWx0X2NhbGxiYWNrIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICByZXN1bHRfY2Fs
bGJhY2socmVzWzBdKQorCisKK2NsYXNzIEhvb2tJbXBsKG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBsdWdpbiwgcGx1Z2luX25hbWUsIGZ1bmN0aW9uLCBob29rX2ltcGxfb3B0cyk6
CisgICAgICAgIHNlbGYuZnVuY3Rpb24gPSBmdW5jdGlvbgorICAgICAgICBzZWxmLmFyZ25hbWVz
LCBzZWxmLmt3YXJnbmFtZXMgPSB2YXJuYW1lcyhzZWxmLmZ1bmN0aW9uKQorICAgICAgICBzZWxm
LnBsdWdpbiA9IHBsdWdpbgorICAgICAgICBzZWxmLm9wdHMgPSBob29rX2ltcGxfb3B0cworICAg
ICAgICBzZWxmLnBsdWdpbl9uYW1lID0gcGx1Z2luX25hbWUKKyAgICAgICAgc2VsZi5fX2RpY3Rf
Xy51cGRhdGUoaG9va19pbXBsX29wdHMpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAg
ICAgIHJldHVybiAiPEhvb2tJbXBsIHBsdWdpbl9uYW1lPSVyLCBwbHVnaW49JXI+IiAlIChzZWxm
LnBsdWdpbl9uYW1lLCBzZWxmLnBsdWdpbikKKworCitjbGFzcyBIb29rU3BlYyhvYmplY3QpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lc3BhY2UsIG5hbWUsIG9wdHMpOgorICAgICAgICBz
ZWxmLm5hbWVzcGFjZSA9IG5hbWVzcGFjZQorICAgICAgICBzZWxmLmZ1bmN0aW9uID0gZnVuY3Rp
b24gPSBnZXRhdHRyKG5hbWVzcGFjZSwgbmFtZSkKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQor
ICAgICAgICBzZWxmLmFyZ25hbWVzLCBzZWxmLmt3YXJnbmFtZXMgPSB2YXJuYW1lcyhmdW5jdGlv
bikKKyAgICAgICAgc2VsZi5vcHRzID0gb3B0cworICAgICAgICBzZWxmLmFyZ25hbWVzID0gWyJf
X211bHRpY2FsbF9fIl0gKyBsaXN0KHNlbGYuYXJnbmFtZXMpCisgICAgICAgIHNlbGYud2Fybl9v
bl9pbXBsID0gb3B0cy5nZXQoIndhcm5fb25faW1wbCIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9zcmMvcGx1Z2d5L21hbmFnZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L21hbmFnZXIu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDdiNDJjYmEyZDVlZDE1ZjE0YWU4ZWUyZDIzZjk1MTBmNTZiNGUxZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvbWFuYWdlci5weQpAQCAt
MCwwICsxLDM5NCBAQAoraW1wb3J0IGluc3BlY3QKK2ltcG9ydCBzeXMKK2Zyb20gLiBpbXBvcnQg
X3RyYWNpbmcKK2Zyb20gLmNhbGxlcnMgaW1wb3J0IF9SZXN1bHQKK2Zyb20gLmhvb2tzIGltcG9y
dCBIb29rSW1wbCwgX0hvb2tSZWxheSwgX0hvb2tDYWxsZXIsIG5vcm1hbGl6ZV9ob29raW1wbF9v
cHRzCitpbXBvcnQgd2FybmluZ3MKKworaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgOCk6Cisg
ICAgZnJvbSBpbXBvcnRsaWIgaW1wb3J0IG1ldGFkYXRhIGFzIGltcG9ydGxpYl9tZXRhZGF0YQor
ZWxzZToKKyAgICBpbXBvcnQgaW1wb3J0bGliX21ldGFkYXRhCisKKworZGVmIF93YXJuX2Zvcl9m
dW5jdGlvbih3YXJuaW5nLCBmdW5jdGlvbik6CisgICAgd2FybmluZ3Mud2Fybl9leHBsaWNpdCgK
KyAgICAgICAgd2FybmluZywKKyAgICAgICAgdHlwZSh3YXJuaW5nKSwKKyAgICAgICAgbGluZW5v
PWZ1bmN0aW9uLl9fY29kZV9fLmNvX2ZpcnN0bGluZW5vLAorICAgICAgICBmaWxlbmFtZT1mdW5j
dGlvbi5fX2NvZGVfXy5jb19maWxlbmFtZSwKKyAgICApCisKKworY2xhc3MgUGx1Z2luVmFsaWRh
dGlvbkVycm9yKEV4Y2VwdGlvbik6CisgICAgIiIiIHBsdWdpbiBmYWlsZWQgdmFsaWRhdGlvbi4K
KworICAgIDpwYXJhbSBvYmplY3QgcGx1Z2luOiB0aGUgcGx1Z2luIHdoaWNoIGZhaWxlZCB2YWxp
ZGF0aW9uLAorICAgICAgICBtYXkgYmUgYSBtb2R1bGUgb3IgYW4gYXJiaXRyYXJ5IG9iamVjdC4K
KyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwbHVnaW4sIG1lc3NhZ2UpOgorICAg
ICAgICBzZWxmLnBsdWdpbiA9IHBsdWdpbgorICAgICAgICBzdXBlcihFeGNlcHRpb24sIHNlbGYp
Ll9faW5pdF9fKG1lc3NhZ2UpCisKKworY2xhc3MgRGlzdEZhY2FkZShvYmplY3QpOgorICAgICIi
IkVtdWxhdGUgYSBwa2dfcmVzb3VyY2VzIERpc3RyaWJ1dGlvbiIiIgorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGRpc3QpOgorICAgICAgICBzZWxmLl9kaXN0ID0gZGlzdAorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIHByb2plY3RfbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubWV0
YWRhdGFbIm5hbWUiXQorCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHIsIGRlZmF1bHQ9
Tm9uZSk6CisgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYuX2Rpc3QsIGF0dHIsIGRlZmF1bHQp
CisKKyAgICBkZWYgX19kaXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNvcnRlZChkaXIoc2Vs
Zi5fZGlzdCkgKyBbIl9kaXN0IiwgInByb2plY3RfbmFtZSJdKQorCisKK2NsYXNzIFBsdWdpbk1h
bmFnZXIob2JqZWN0KToKKyAgICAiIiIgQ29yZSA6cHk6Y2xhc3M6YC5QbHVnaW5NYW5hZ2VyYCBj
bGFzcyB3aGljaCBtYW5hZ2VzIHJlZ2lzdHJhdGlvbgorICAgIG9mIHBsdWdpbiBvYmplY3RzIGFu
ZCAxOk4gaG9vayBjYWxsaW5nLgorCisgICAgWW91IGNhbiByZWdpc3RlciBuZXcgaG9va3MgYnkg
Y2FsbGluZyA6cHk6bWV0aDpgYWRkX2hvb2tzcGVjcyhtb2R1bGVfb3JfY2xhc3MpCisgICAgPC5Q
bHVnaW5NYW5hZ2VyLmFkZF9ob29rc3BlY3M+YC4KKyAgICBZb3UgY2FuIHJlZ2lzdGVyIHBsdWdp
biBvYmplY3RzICh3aGljaCBjb250YWluIGhvb2tzKSBieSBjYWxsaW5nCisgICAgOnB5Om1ldGg6
YHJlZ2lzdGVyKHBsdWdpbikgPC5QbHVnaW5NYW5hZ2VyLnJlZ2lzdGVyPmAuICBUaGUgOnB5OmNs
YXNzOmAuUGx1Z2luTWFuYWdlcmAKKyAgICBpcyBpbml0aWFsaXplZCB3aXRoIGEgcHJlZml4IHRo
YXQgaXMgc2VhcmNoZWQgZm9yIGluIHRoZSBuYW1lcyBvZiB0aGUgZGljdAorICAgIG9mIHJlZ2lz
dGVyZWQgcGx1Z2luIG9iamVjdHMuCisKKyAgICBGb3IgZGVidWdnaW5nIHB1cnBvc2VzIHlvdSBj
YW4gY2FsbCA6cHk6bWV0aDpgLlBsdWdpbk1hbmFnZXIuZW5hYmxlX3RyYWNpbmdgCisgICAgd2hp
Y2ggd2lsbCBzdWJzZXF1ZW50bHkgc2VuZCBkZWJ1ZyBpbmZvcm1hdGlvbiB0byB0aGUgdHJhY2Ug
aGVscGVyLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb2plY3RfbmFtZSwg
aW1wbHByZWZpeD1Ob25lKToKKyAgICAgICAgIiIiSWYgYGBpbXBscHJlZml4YGAgaXMgZ2l2ZW4g
aW1wbGVtZW50YXRpb24gZnVuY3Rpb25zCisgICAgICAgIHdpbGwgYmUgcmVjb2duaXplZCBpZiB0
aGVpciBuYW1lIG1hdGNoZXMgdGhlIGBgaW1wbHByZWZpeGBgLiAiIiIKKyAgICAgICAgc2VsZi5w
cm9qZWN0X25hbWUgPSBwcm9qZWN0X25hbWUKKyAgICAgICAgc2VsZi5fbmFtZTJwbHVnaW4gPSB7
fQorICAgICAgICBzZWxmLl9wbHVnaW4yaG9va2NhbGxlcnMgPSB7fQorICAgICAgICBzZWxmLl9w
bHVnaW5fZGlzdGluZm8gPSBbXQorICAgICAgICBzZWxmLnRyYWNlID0gX3RyYWNpbmcuVGFnVHJh
Y2VyKCkuZ2V0KCJwbHVnaW5tYW5hZ2UiKQorICAgICAgICBzZWxmLmhvb2sgPSBfSG9va1JlbGF5
KCkKKyAgICAgICAgaWYgaW1wbHByZWZpeCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHdhcm5p
bmdzLndhcm4oCisgICAgICAgICAgICAgICAgIlN1cHBvcnQgZm9yIHRoZSBgaW1wbHByZWZpeGAg
YXJnIGlzIG5vdyBkZXByZWNhdGVkIGFuZCB3aWxsICIKKyAgICAgICAgICAgICAgICAiYmUgcmVt
b3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBQbGVhc2UgdXNlIEhvb2tpbXBsTWFya2VyLiIs
CisgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLAorICAgICAgICAgICAgICAgIHN0
YWNrbGV2ZWw9MiwKKyAgICAgICAgICAgICkKKyAgICAgICAgc2VsZi5faW1wbHByZWZpeCA9IGlt
cGxwcmVmaXgKKyAgICAgICAgc2VsZi5faW5uZXJfaG9va2V4ZWMgPSBsYW1iZGEgaG9vaywgbWV0
aG9kcywga3dhcmdzOiBob29rLm11bHRpY2FsbCgKKyAgICAgICAgICAgIG1ldGhvZHMsCisgICAg
ICAgICAgICBrd2FyZ3MsCisgICAgICAgICAgICBmaXJzdHJlc3VsdD1ob29rLnNwZWMub3B0cy5n
ZXQoImZpcnN0cmVzdWx0IikgaWYgaG9vay5zcGVjIGVsc2UgRmFsc2UsCisgICAgICAgICkKKwor
ICAgIGRlZiBfaG9va2V4ZWMoc2VsZiwgaG9vaywgbWV0aG9kcywga3dhcmdzKToKKyAgICAgICAg
IyBjYWxsZWQgZnJvbSBhbGwgaG9va2NhbGxlciBpbnN0YW5jZXMuCisgICAgICAgICMgZW5hYmxl
X3RyYWNpbmcgd2lsbCBzZXQgaXRzIG93biB3cmFwcGluZyBmdW5jdGlvbiBhdCBzZWxmLl9pbm5l
cl9ob29rZXhlYworICAgICAgICByZXR1cm4gc2VsZi5faW5uZXJfaG9va2V4ZWMoaG9vaywgbWV0
aG9kcywga3dhcmdzKQorCisgICAgZGVmIHJlZ2lzdGVyKHNlbGYsIHBsdWdpbiwgbmFtZT1Ob25l
KToKKyAgICAgICAgIiIiIFJlZ2lzdGVyIGEgcGx1Z2luIGFuZCByZXR1cm4gaXRzIGNhbm9uaWNh
bCBuYW1lIG9yIGBgTm9uZWBgIGlmIHRoZSBuYW1lCisgICAgICAgIGlzIGJsb2NrZWQgZnJvbSBy
ZWdpc3RlcmluZy4gIFJhaXNlIGEgOnB5OmNsYXNzOmBWYWx1ZUVycm9yYCBpZiB0aGUgcGx1Z2lu
CisgICAgICAgIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC4gIiIiCisgICAgICAgIHBsdWdpbl9uYW1l
ID0gbmFtZSBvciBzZWxmLmdldF9jYW5vbmljYWxfbmFtZShwbHVnaW4pCisKKyAgICAgICAgaWYg
cGx1Z2luX25hbWUgaW4gc2VsZi5fbmFtZTJwbHVnaW4gb3IgcGx1Z2luIGluIHNlbGYuX3BsdWdp
bjJob29rY2FsbGVyczoKKyAgICAgICAgICAgIGlmIHNlbGYuX25hbWUycGx1Z2luLmdldChwbHVn
aW5fbmFtZSwgLTEpIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuICAjIGJsb2NrZWQg
cGx1Z2luLCByZXR1cm4gTm9uZSB0byBpbmRpY2F0ZSBubyByZWdpc3RyYXRpb24KKyAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgIlBsdWdpbiBhbHJlYWR5IHJl
Z2lzdGVyZWQ6ICVzPSVzXG4lcyIKKyAgICAgICAgICAgICAgICAlIChwbHVnaW5fbmFtZSwgcGx1
Z2luLCBzZWxmLl9uYW1lMnBsdWdpbikKKyAgICAgICAgICAgICkKKworICAgICAgICAjIFhYWCBp
ZiBhbiBlcnJvciBoYXBwZW5zIHdlIHNob3VsZCBtYWtlIHN1cmUgbm8gc3RhdGUgaGFzIGJlZW4K
KyAgICAgICAgIyBjaGFuZ2VkIGF0IHBvaW50IG9mIHJldHVybgorICAgICAgICBzZWxmLl9uYW1l
MnBsdWdpbltwbHVnaW5fbmFtZV0gPSBwbHVnaW4KKworICAgICAgICAjIHJlZ2lzdGVyIG1hdGNo
aW5nIGhvb2sgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBwbHVnaW4KKyAgICAgICAgc2VsZi5fcGx1
Z2luMmhvb2tjYWxsZXJzW3BsdWdpbl0gPSBob29rY2FsbGVycyA9IFtdCisgICAgICAgIGZvciBu
YW1lIGluIGRpcihwbHVnaW4pOgorICAgICAgICAgICAgaG9va2ltcGxfb3B0cyA9IHNlbGYucGFy
c2VfaG9va2ltcGxfb3B0cyhwbHVnaW4sIG5hbWUpCisgICAgICAgICAgICBpZiBob29raW1wbF9v
cHRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIG5vcm1hbGl6ZV9ob29raW1wbF9vcHRz
KGhvb2tpbXBsX29wdHMpCisgICAgICAgICAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihwbHVnaW4s
IG5hbWUpCisgICAgICAgICAgICAgICAgaG9va2ltcGwgPSBIb29rSW1wbChwbHVnaW4sIHBsdWdp
bl9uYW1lLCBtZXRob2QsIGhvb2tpbXBsX29wdHMpCisgICAgICAgICAgICAgICAgaG9vayA9IGdl
dGF0dHIoc2VsZi5ob29rLCBuYW1lLCBOb25lKQorICAgICAgICAgICAgICAgIGlmIGhvb2sgaXMg
Tm9uZToKKyAgICAgICAgICAgICAgICAgICAgaG9vayA9IF9Ib29rQ2FsbGVyKG5hbWUsIHNlbGYu
X2hvb2tleGVjKQorICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKHNlbGYuaG9vaywgbmFtZSwg
aG9vaykKKyAgICAgICAgICAgICAgICBlbGlmIGhvb2suaGFzX3NwZWMoKToKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fdmVyaWZ5X2hvb2soaG9vaywgaG9va2ltcGwpCisgICAgICAgICAgICAg
ICAgICAgIGhvb2suX21heWJlX2FwcGx5X2hpc3RvcnkoaG9va2ltcGwpCisgICAgICAgICAgICAg
ICAgaG9vay5fYWRkX2hvb2tpbXBsKGhvb2tpbXBsKQorICAgICAgICAgICAgICAgIGhvb2tjYWxs
ZXJzLmFwcGVuZChob29rKQorICAgICAgICByZXR1cm4gcGx1Z2luX25hbWUKKworICAgIGRlZiBw
YXJzZV9ob29raW1wbF9vcHRzKHNlbGYsIHBsdWdpbiwgbmFtZSk6CisgICAgICAgIG1ldGhvZCA9
IGdldGF0dHIocGx1Z2luLCBuYW1lKQorICAgICAgICBpZiBub3QgaW5zcGVjdC5pc3JvdXRpbmUo
bWV0aG9kKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB0cnk6CisgICAgICAgICAgICBy
ZXMgPSBnZXRhdHRyKG1ldGhvZCwgc2VsZi5wcm9qZWN0X25hbWUgKyAiX2ltcGwiLCBOb25lKQor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcmVzID0ge30KKyAgICAgICAg
aWYgcmVzIGlzIG5vdCBOb25lIGFuZCBub3QgaXNpbnN0YW5jZShyZXMsIGRpY3QpOgorICAgICAg
ICAgICAgIyBmYWxzZSBwb3NpdGl2ZQorICAgICAgICAgICAgcmVzID0gTm9uZQorICAgICAgICAj
IFRPRE86IHJlbW92ZSB3aGVuIHdlIGRyb3AgaW1wbHByZWZpeCBpbiAxLjAKKyAgICAgICAgZWxp
ZiByZXMgaXMgTm9uZSBhbmQgc2VsZi5faW1wbHByZWZpeCBhbmQgbmFtZS5zdGFydHN3aXRoKHNl
bGYuX2ltcGxwcmVmaXgpOgorICAgICAgICAgICAgX3dhcm5fZm9yX2Z1bmN0aW9uKAorICAgICAg
ICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZygKKyAgICAgICAgICAgICAgICAgICAgIlRoZSBg
aW1wbHByZWZpeGAgc3lzdGVtIGlzIGRlcHJlY2F0ZWQgcGxlYXNlIGRlY29yYXRlICIKKyAgICAg
ICAgICAgICAgICAgICAgInRoaXMgZnVuY3Rpb24gdXNpbmcgYW4gaW5zdGFuY2Ugb2YgSG9va2lt
cGxNYXJrZXIuIgorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgbWV0aG9kLAor
ICAgICAgICAgICAgKQorICAgICAgICAgICAgcmVzID0ge30KKyAgICAgICAgcmV0dXJuIHJlcwor
CisgICAgZGVmIHVucmVnaXN0ZXIoc2VsZiwgcGx1Z2luPU5vbmUsIG5hbWU9Tm9uZSk6CisgICAg
ICAgICIiIiB1bnJlZ2lzdGVyIGEgcGx1Z2luIG9iamVjdCBhbmQgYWxsIGl0cyBjb250YWluZWQg
aG9vayBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgZnJvbSBpbnRlcm5hbCBkYXRhIHN0cnVjdHVy
ZXMuICIiIgorICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgICAgICBhc3NlcnQgcGx1
Z2luIGlzIG5vdCBOb25lLCAib25lIG9mIG5hbWUgb3IgcGx1Z2luIG5lZWRzIHRvIGJlIHNwZWNp
ZmllZCIKKyAgICAgICAgICAgIG5hbWUgPSBzZWxmLmdldF9uYW1lKHBsdWdpbikKKworICAgICAg
ICBpZiBwbHVnaW4gaXMgTm9uZToKKyAgICAgICAgICAgIHBsdWdpbiA9IHNlbGYuZ2V0X3BsdWdp
bihuYW1lKQorCisgICAgICAgICMgaWYgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0gPT0gTm9uZSBy
ZWdpc3RyYXRpb24gd2FzIGJsb2NrZWQ6IGlnbm9yZQorICAgICAgICBpZiBzZWxmLl9uYW1lMnBs
dWdpbi5nZXQobmFtZSk6CisgICAgICAgICAgICBkZWwgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0K
KworICAgICAgICBmb3IgaG9va2NhbGxlciBpbiBzZWxmLl9wbHVnaW4yaG9va2NhbGxlcnMucG9w
KHBsdWdpbiwgW10pOgorICAgICAgICAgICAgaG9va2NhbGxlci5fcmVtb3ZlX3BsdWdpbihwbHVn
aW4pCisKKyAgICAgICAgcmV0dXJuIHBsdWdpbgorCisgICAgZGVmIHNldF9ibG9ja2VkKHNlbGYs
IG5hbWUpOgorICAgICAgICAiIiIgYmxvY2sgcmVnaXN0cmF0aW9ucyBvZiB0aGUgZ2l2ZW4gbmFt
ZSwgdW5yZWdpc3RlciBpZiBhbHJlYWR5IHJlZ2lzdGVyZWQuICIiIgorICAgICAgICBzZWxmLnVu
cmVnaXN0ZXIobmFtZT1uYW1lKQorICAgICAgICBzZWxmLl9uYW1lMnBsdWdpbltuYW1lXSA9IE5v
bmUKKworICAgIGRlZiBpc19ibG9ja2VkKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiIgcmV0dXJu
IGBgVHJ1ZWBgIGlmIHRoZSBnaXZlbiBwbHVnaW4gbmFtZSBpcyBibG9ja2VkLiAiIiIKKyAgICAg
ICAgcmV0dXJuIG5hbWUgaW4gc2VsZi5fbmFtZTJwbHVnaW4gYW5kIHNlbGYuX25hbWUycGx1Z2lu
W25hbWVdIGlzIE5vbmUKKworICAgIGRlZiBhZGRfaG9va3NwZWNzKHNlbGYsIG1vZHVsZV9vcl9j
bGFzcyk6CisgICAgICAgICIiIiBhZGQgbmV3IGhvb2sgc3BlY2lmaWNhdGlvbnMgZGVmaW5lZCBp
biB0aGUgZ2l2ZW4gYGBtb2R1bGVfb3JfY2xhc3NgYC4KKyAgICAgICAgRnVuY3Rpb25zIGFyZSBy
ZWNvZ25pemVkIGlmIHRoZXkgaGF2ZSBiZWVuIGRlY29yYXRlZCBhY2NvcmRpbmdseS4gIiIiCisg
ICAgICAgIG5hbWVzID0gW10KKyAgICAgICAgZm9yIG5hbWUgaW4gZGlyKG1vZHVsZV9vcl9jbGFz
cyk6CisgICAgICAgICAgICBzcGVjX29wdHMgPSBzZWxmLnBhcnNlX2hvb2tzcGVjX29wdHMobW9k
dWxlX29yX2NsYXNzLCBuYW1lKQorICAgICAgICAgICAgaWYgc3BlY19vcHRzIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgIGhjID0gZ2V0YXR0cihzZWxmLmhvb2ssIG5hbWUsIE5vbmUpCisg
ICAgICAgICAgICAgICAgaWYgaGMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgaGMgPSBf
SG9va0NhbGxlcihuYW1lLCBzZWxmLl9ob29rZXhlYywgbW9kdWxlX29yX2NsYXNzLCBzcGVjX29w
dHMpCisgICAgICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZi5ob29rLCBuYW1lLCBoYykKKyAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIHBsdWdpbnMgcmVnaXN0
ZXJlZCB0aGlzIGhvb2sgd2l0aG91dCBrbm93aW5nIHRoZSBzcGVjCisgICAgICAgICAgICAgICAg
ICAgIGhjLnNldF9zcGVjaWZpY2F0aW9uKG1vZHVsZV9vcl9jbGFzcywgc3BlY19vcHRzKQorICAg
ICAgICAgICAgICAgICAgICBmb3IgaG9va2Z1bmN0aW9uIGluIGhjLmdldF9ob29raW1wbHMoKToK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9ob29rKGhjLCBob29rZnVuY3Rp
b24pCisgICAgICAgICAgICAgICAgbmFtZXMuYXBwZW5kKG5hbWUpCisKKyAgICAgICAgaWYgbm90
IG5hbWVzOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAi
ZGlkIG5vdCBmaW5kIGFueSAlciBob29rcyBpbiAlciIgJSAoc2VsZi5wcm9qZWN0X25hbWUsIG1v
ZHVsZV9vcl9jbGFzcykKKyAgICAgICAgICAgICkKKworICAgIGRlZiBwYXJzZV9ob29rc3BlY19v
cHRzKHNlbGYsIG1vZHVsZV9vcl9jbGFzcywgbmFtZSk6CisgICAgICAgIG1ldGhvZCA9IGdldGF0
dHIobW9kdWxlX29yX2NsYXNzLCBuYW1lKQorICAgICAgICByZXR1cm4gZ2V0YXR0cihtZXRob2Qs
IHNlbGYucHJvamVjdF9uYW1lICsgIl9zcGVjIiwgTm9uZSkKKworICAgIGRlZiBnZXRfcGx1Z2lu
cyhzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiB0aGUgc2V0IG9mIHJlZ2lzdGVyZWQgcGx1Z2lu
cy4gIiIiCisgICAgICAgIHJldHVybiBzZXQoc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzKQorCisg
ICAgZGVmIGlzX3JlZ2lzdGVyZWQoc2VsZiwgcGx1Z2luKToKKyAgICAgICAgIiIiIFJldHVybiBg
YFRydWVgYCBpZiB0aGUgcGx1Z2luIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC4gIiIiCisgICAgICAg
IHJldHVybiBwbHVnaW4gaW4gc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzCisKKyAgICBkZWYgZ2V0
X2Nhbm9uaWNhbF9uYW1lKHNlbGYsIHBsdWdpbik6CisgICAgICAgICIiIiBSZXR1cm4gY2Fub25p
Y2FsIG5hbWUgZm9yIGEgcGx1Z2luIG9iamVjdC4gTm90ZSB0aGF0IGEgcGx1Z2luCisgICAgICAg
IG1heSBiZSByZWdpc3RlcmVkIHVuZGVyIGEgZGlmZmVyZW50IG5hbWUgd2hpY2ggd2FzIHNwZWNp
ZmllZAorICAgICAgICBieSB0aGUgY2FsbGVyIG9mIDpweTptZXRoOmByZWdpc3RlcihwbHVnaW4s
IG5hbWUpIDwuUGx1Z2luTWFuYWdlci5yZWdpc3Rlcj5gLgorICAgICAgICBUbyBvYnRhaW4gdGhl
IG5hbWUgb2YgYW4gcmVnaXN0ZXJlZCBwbHVnaW4gdXNlIDpweTptZXRoOmBnZXRfbmFtZShwbHVn
aW4pCisgICAgICAgIDwuUGx1Z2luTWFuYWdlci5nZXRfbmFtZT5gIGluc3RlYWQuIiIiCisgICAg
ICAgIHJldHVybiBnZXRhdHRyKHBsdWdpbiwgIl9fbmFtZV9fIiwgTm9uZSkgb3Igc3RyKGlkKHBs
dWdpbikpCisKKyAgICBkZWYgZ2V0X3BsdWdpbihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiIFJl
dHVybiBhIHBsdWdpbiBvciBgYE5vbmVgYCBmb3IgdGhlIGdpdmVuIG5hbWUuICIiIgorICAgICAg
ICByZXR1cm4gc2VsZi5fbmFtZTJwbHVnaW4uZ2V0KG5hbWUpCisKKyAgICBkZWYgaGFzX3BsdWdp
bihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiIFJldHVybiBgYFRydWVgYCBpZiBhIHBsdWdpbiB3
aXRoIHRoZSBnaXZlbiBuYW1lIGlzIHJlZ2lzdGVyZWQuICIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5nZXRfcGx1Z2luKG5hbWUpIGlzIG5vdCBOb25lCisKKyAgICBkZWYgZ2V0X25hbWUoc2VsZiwg
cGx1Z2luKToKKyAgICAgICAgIiIiIFJldHVybiBuYW1lIGZvciByZWdpc3RlcmVkIHBsdWdpbiBv
ciBgYE5vbmVgYCBpZiBub3QgcmVnaXN0ZXJlZC4gIiIiCisgICAgICAgIGZvciBuYW1lLCB2YWwg
aW4gc2VsZi5fbmFtZTJwbHVnaW4uaXRlbXMoKToKKyAgICAgICAgICAgIGlmIHBsdWdpbiA9PSB2
YWw6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWUKKworICAgIGRlZiBfdmVyaWZ5X2hvb2so
c2VsZiwgaG9vaywgaG9va2ltcGwpOgorICAgICAgICBpZiBob29rLmlzX2hpc3RvcmljKCkgYW5k
IGhvb2tpbXBsLmhvb2t3cmFwcGVyOgorICAgICAgICAgICAgcmFpc2UgUGx1Z2luVmFsaWRhdGlv
bkVycm9yKAorICAgICAgICAgICAgICAgIGhvb2tpbXBsLnBsdWdpbiwKKyAgICAgICAgICAgICAg
ICAiUGx1Z2luICVyXG5ob29rICVyXG5oaXN0b3JpYyBpbmNvbXBhdGlibGUgdG8gaG9va3dyYXBw
ZXIiCisgICAgICAgICAgICAgICAgJSAoaG9va2ltcGwucGx1Z2luX25hbWUsIGhvb2submFtZSks
CisgICAgICAgICAgICApCisgICAgICAgIGlmIGhvb2suc3BlYy53YXJuX29uX2ltcGw6CisgICAg
ICAgICAgICBfd2Fybl9mb3JfZnVuY3Rpb24oaG9vay5zcGVjLndhcm5fb25faW1wbCwgaG9va2lt
cGwuZnVuY3Rpb24pCisgICAgICAgICMgcG9zaXRpb25hbCBhcmcgY2hlY2tpbmcKKyAgICAgICAg
bm90aW5zcGVjID0gc2V0KGhvb2tpbXBsLmFyZ25hbWVzKSAtIHNldChob29rLnNwZWMuYXJnbmFt
ZXMpCisgICAgICAgIGlmIG5vdGluc3BlYzoKKyAgICAgICAgICAgIHJhaXNlIFBsdWdpblZhbGlk
YXRpb25FcnJvcigKKyAgICAgICAgICAgICAgICBob29raW1wbC5wbHVnaW4sCisgICAgICAgICAg
ICAgICAgIlBsdWdpbiAlciBmb3IgaG9vayAlclxuaG9va2ltcGwgZGVmaW5pdGlvbjogJXNcbiIK
KyAgICAgICAgICAgICAgICAiQXJndW1lbnQocykgJXMgYXJlIGRlY2xhcmVkIGluIHRoZSBob29r
aW1wbCBidXQgIgorICAgICAgICAgICAgICAgICJjYW4gbm90IGJlIGZvdW5kIGluIHRoZSBob29r
c3BlYyIKKyAgICAgICAgICAgICAgICAlICgKKyAgICAgICAgICAgICAgICAgICAgaG9va2ltcGwu
cGx1Z2luX25hbWUsCisgICAgICAgICAgICAgICAgICAgIGhvb2submFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgX2Zvcm1hdGRlZihob29raW1wbC5mdW5jdGlvbiksCisgICAgICAgICAgICAgICAg
ICAgIG5vdGluc3BlYywKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKQorCisgICAg
ZGVmIGNoZWNrX3BlbmRpbmcoc2VsZik6CisgICAgICAgICIiIiBWZXJpZnkgdGhhdCBhbGwgaG9v
a3Mgd2hpY2ggaGF2ZSBub3QgYmVlbiB2ZXJpZmllZCBhZ2FpbnN0CisgICAgICAgIGEgaG9vayBz
cGVjaWZpY2F0aW9uIGFyZSBvcHRpb25hbCwgb3RoZXJ3aXNlIHJhaXNlIDpweTpjbGFzczpgLlBs
dWdpblZhbGlkYXRpb25FcnJvcmAuIiIiCisgICAgICAgIGZvciBuYW1lIGluIHNlbGYuaG9vay5f
X2RpY3RfXzoKKyAgICAgICAgICAgIGlmIG5hbWVbMF0gIT0gIl8iOgorICAgICAgICAgICAgICAg
IGhvb2sgPSBnZXRhdHRyKHNlbGYuaG9vaywgbmFtZSkKKyAgICAgICAgICAgICAgICBpZiBub3Qg
aG9vay5oYXNfc3BlYygpOgorICAgICAgICAgICAgICAgICAgICBmb3IgaG9va2ltcGwgaW4gaG9v
ay5nZXRfaG9va2ltcGxzKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgaG9va2lt
cGwub3B0aW9uYWxob29rOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFBsdWdp
blZhbGlkYXRpb25FcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9va2lt
cGwucGx1Z2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5rbm93biBob29r
ICVyIGluIHBsdWdpbiAlciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAobmFt
ZSwgaG9va2ltcGwucGx1Z2luKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisKKyAg
ICBkZWYgbG9hZF9zZXR1cHRvb2xzX2VudHJ5cG9pbnRzKHNlbGYsIGdyb3VwLCBuYW1lPU5vbmUp
OgorICAgICAgICAiIiIgTG9hZCBtb2R1bGVzIGZyb20gcXVlcnlpbmcgdGhlIHNwZWNpZmllZCBz
ZXR1cHRvb2xzIGBgZ3JvdXBgYC4KKworICAgICAgICA6cGFyYW0gc3RyIGdyb3VwOiBlbnRyeSBw
b2ludCBncm91cCB0byBsb2FkIHBsdWdpbnMKKyAgICAgICAgOnBhcmFtIHN0ciBuYW1lOiBpZiBn
aXZlbiwgbG9hZHMgb25seSBwbHVnaW5zIHdpdGggdGhlIGdpdmVuIGBgbmFtZWBgLgorICAgICAg
ICA6cnR5cGU6IGludAorICAgICAgICA6cmV0dXJuOiByZXR1cm4gdGhlIG51bWJlciBvZiBsb2Fk
ZWQgcGx1Z2lucyBieSB0aGlzIGNhbGwuCisgICAgICAgICIiIgorICAgICAgICBjb3VudCA9IDAK
KyAgICAgICAgZm9yIGRpc3QgaW4gaW1wb3J0bGliX21ldGFkYXRhLmRpc3RyaWJ1dGlvbnMoKToK
KyAgICAgICAgICAgIGZvciBlcCBpbiBkaXN0LmVudHJ5X3BvaW50czoKKyAgICAgICAgICAgICAg
ICBpZiAoCisgICAgICAgICAgICAgICAgICAgIGVwLmdyb3VwICE9IGdyb3VwCisgICAgICAgICAg
ICAgICAgICAgIG9yIChuYW1lIGlzIG5vdCBOb25lIGFuZCBlcC5uYW1lICE9IG5hbWUpCisgICAg
ICAgICAgICAgICAgICAgICMgYWxyZWFkeSByZWdpc3RlcmVkCisgICAgICAgICAgICAgICAgICAg
IG9yIHNlbGYuZ2V0X3BsdWdpbihlcC5uYW1lKQorICAgICAgICAgICAgICAgICAgICBvciBzZWxm
LmlzX2Jsb2NrZWQoZXAubmFtZSkKKyAgICAgICAgICAgICAgICApOgorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHBsdWdpbiA9IGVwLmxvYWQoKQorICAgICAg
ICAgICAgICAgIHNlbGYucmVnaXN0ZXIocGx1Z2luLCBuYW1lPWVwLm5hbWUpCisgICAgICAgICAg
ICAgICAgc2VsZi5fcGx1Z2luX2Rpc3RpbmZvLmFwcGVuZCgocGx1Z2luLCBEaXN0RmFjYWRlKGRp
c3QpKSkKKyAgICAgICAgICAgICAgICBjb3VudCArPSAxCisgICAgICAgIHJldHVybiBjb3VudAor
CisgICAgZGVmIGxpc3RfcGx1Z2luX2Rpc3RpbmZvKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJu
IGxpc3Qgb2YgZGlzdGluZm8vcGx1Z2luIHR1cGxlcyBmb3IgYWxsIHNldHVwdG9vbHMgcmVnaXN0
ZXJlZAorICAgICAgICBwbHVnaW5zLiAiIiIKKyAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5fcGx1
Z2luX2Rpc3RpbmZvKQorCisgICAgZGVmIGxpc3RfbmFtZV9wbHVnaW4oc2VsZik6CisgICAgICAg
ICIiIiByZXR1cm4gbGlzdCBvZiBuYW1lL3BsdWdpbiBwYWlycy4gIiIiCisgICAgICAgIHJldHVy
biBsaXN0KHNlbGYuX25hbWUycGx1Z2luLml0ZW1zKCkpCisKKyAgICBkZWYgZ2V0X2hvb2tjYWxs
ZXJzKHNlbGYsIHBsdWdpbik6CisgICAgICAgICIiIiBnZXQgYWxsIGhvb2sgY2FsbGVycyBmb3Ig
dGhlIHNwZWNpZmllZCBwbHVnaW4uICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fcGx1Z2luMmhv
b2tjYWxsZXJzLmdldChwbHVnaW4pCisKKyAgICBkZWYgYWRkX2hvb2tjYWxsX21vbml0b3Jpbmco
c2VsZiwgYmVmb3JlLCBhZnRlcik6CisgICAgICAgICIiIiBhZGQgYmVmb3JlL2FmdGVyIHRyYWNp
bmcgZnVuY3Rpb25zIGZvciBhbGwgaG9va3MKKyAgICAgICAgYW5kIHJldHVybiBhbiB1bmRvIGZ1
bmN0aW9uIHdoaWNoLCB3aGVuIGNhbGxlZCwKKyAgICAgICAgd2lsbCByZW1vdmUgdGhlIGFkZGVk
IHRyYWNlcnMuCisKKyAgICAgICAgYGBiZWZvcmUoaG9va19uYW1lLCBob29rX2ltcGxzLCBrd2Fy
Z3MpYGAgd2lsbCBiZSBjYWxsZWQgYWhlYWQKKyAgICAgICAgb2YgYWxsIGhvb2sgY2FsbHMgYW5k
IHJlY2VpdmUgYSBob29rY2FsbGVyIGluc3RhbmNlLCBhIGxpc3QKKyAgICAgICAgb2YgSG9va0lt
cGwgaW5zdGFuY2VzIGFuZCB0aGUga2V5d29yZCBhcmd1bWVudHMgZm9yIHRoZSBob29rIGNhbGwu
CisKKyAgICAgICAgYGBhZnRlcihvdXRjb21lLCBob29rX25hbWUsIGhvb2tfaW1wbHMsIGt3YXJn
cylgYCByZWNlaXZlcyB0aGUKKyAgICAgICAgc2FtZSBhcmd1bWVudHMgYXMgYGBiZWZvcmVgYCBi
dXQgYWxzbyBhIDpweTpjbGFzczpgcGx1Z2d5LmNhbGxlcnMuX1Jlc3VsdGAgb2JqZWN0CisgICAg
ICAgIHdoaWNoIHJlcHJlc2VudHMgdGhlIHJlc3VsdCBvZiB0aGUgb3ZlcmFsbCBob29rIGNhbGwu
CisgICAgICAgICIiIgorICAgICAgICBvbGRjYWxsID0gc2VsZi5faW5uZXJfaG9va2V4ZWMKKwor
ICAgICAgICBkZWYgdHJhY2VkX2hvb2tleGVjKGhvb2ssIGhvb2tfaW1wbHMsIGt3YXJncyk6Cisg
ICAgICAgICAgICBiZWZvcmUoaG9vay5uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpCisgICAgICAg
ICAgICBvdXRjb21lID0gX1Jlc3VsdC5mcm9tX2NhbGwobGFtYmRhOiBvbGRjYWxsKGhvb2ssIGhv
b2tfaW1wbHMsIGt3YXJncykpCisgICAgICAgICAgICBhZnRlcihvdXRjb21lLCBob29rLm5hbWUs
IGhvb2tfaW1wbHMsIGt3YXJncykKKyAgICAgICAgICAgIHJldHVybiBvdXRjb21lLmdldF9yZXN1
bHQoKQorCisgICAgICAgIHNlbGYuX2lubmVyX2hvb2tleGVjID0gdHJhY2VkX2hvb2tleGVjCisK
KyAgICAgICAgZGVmIHVuZG8oKToKKyAgICAgICAgICAgIHNlbGYuX2lubmVyX2hvb2tleGVjID0g
b2xkY2FsbAorCisgICAgICAgIHJldHVybiB1bmRvCisKKyAgICBkZWYgZW5hYmxlX3RyYWNpbmco
c2VsZik6CisgICAgICAgICIiIiBlbmFibGUgdHJhY2luZyBvZiBob29rIGNhbGxzIGFuZCByZXR1
cm4gYW4gdW5kbyBmdW5jdGlvbi4gIiIiCisgICAgICAgIGhvb2t0cmFjZSA9IHNlbGYudHJhY2Uu
cm9vdC5nZXQoImhvb2siKQorCisgICAgICAgIGRlZiBiZWZvcmUoaG9va19uYW1lLCBtZXRob2Rz
LCBrd2FyZ3MpOgorICAgICAgICAgICAgaG9va3RyYWNlLnJvb3QuaW5kZW50ICs9IDEKKyAgICAg
ICAgICAgIGhvb2t0cmFjZShob29rX25hbWUsIGt3YXJncykKKworICAgICAgICBkZWYgYWZ0ZXIo
b3V0Y29tZSwgaG9va19uYW1lLCBtZXRob2RzLCBrd2FyZ3MpOgorICAgICAgICAgICAgaWYgb3V0
Y29tZS5leGNpbmZvIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgaG9va3RyYWNlKCJmaW5pc2gi
LCBob29rX25hbWUsICItLT4iLCBvdXRjb21lLmdldF9yZXN1bHQoKSkKKyAgICAgICAgICAgIGhv
b2t0cmFjZS5yb290LmluZGVudCAtPSAxCisKKyAgICAgICAgcmV0dXJuIHNlbGYuYWRkX2hvb2tj
YWxsX21vbml0b3JpbmcoYmVmb3JlLCBhZnRlcikKKworICAgIGRlZiBzdWJzZXRfaG9va19jYWxs
ZXIoc2VsZiwgbmFtZSwgcmVtb3ZlX3BsdWdpbnMpOgorICAgICAgICAiIiIgUmV0dXJuIGEgbmV3
IDpweTpjbGFzczpgLmhvb2tzLl9Ib29rQ2FsbGVyYCBpbnN0YW5jZSBmb3IgdGhlIG5hbWVkIG1l
dGhvZAorICAgICAgICB3aGljaCBtYW5hZ2VzIGNhbGxzIHRvIGFsbCByZWdpc3RlcmVkIHBsdWdp
bnMgZXhjZXB0IHRoZQorICAgICAgICBvbmVzIGZyb20gcmVtb3ZlX3BsdWdpbnMuICIiIgorICAg
ICAgICBvcmlnID0gZ2V0YXR0cihzZWxmLmhvb2ssIG5hbWUpCisgICAgICAgIHBsdWdpbnNfdG9f
cmVtb3ZlID0gW3BsdWcgZm9yIHBsdWcgaW4gcmVtb3ZlX3BsdWdpbnMgaWYgaGFzYXR0cihwbHVn
LCBuYW1lKV0KKyAgICAgICAgaWYgcGx1Z2luc190b19yZW1vdmU6CisgICAgICAgICAgICBoYyA9
IF9Ib29rQ2FsbGVyKAorICAgICAgICAgICAgICAgIG9yaWcubmFtZSwgb3JpZy5faG9va2V4ZWMs
IG9yaWcuc3BlYy5uYW1lc3BhY2UsIG9yaWcuc3BlYy5vcHRzCisgICAgICAgICAgICApCisgICAg
ICAgICAgICBmb3IgaG9va2ltcGwgaW4gb3JpZy5nZXRfaG9va2ltcGxzKCk6CisgICAgICAgICAg
ICAgICAgcGx1Z2luID0gaG9va2ltcGwucGx1Z2luCisgICAgICAgICAgICAgICAgaWYgcGx1Z2lu
IG5vdCBpbiBwbHVnaW5zX3RvX3JlbW92ZToKKyAgICAgICAgICAgICAgICAgICAgaGMuX2FkZF9o
b29raW1wbChob29raW1wbCkKKyAgICAgICAgICAgICAgICAgICAgIyB3ZSBhbHNvIGtlZXAgdHJh
Y2sgb2YgdGhpcyBob29rIGNhbGxlciBzbyBpdAorICAgICAgICAgICAgICAgICAgICAjIGdldHMg
cHJvcGVybHkgcmVtb3ZlZCBvbiBwbHVnaW4gdW5yZWdpc3RyYXRpb24KKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzLnNldGRlZmF1bHQocGx1Z2luLCBbXSkuYXBw
ZW5kKGhjKQorICAgICAgICAgICAgcmV0dXJuIGhjCisgICAgICAgIHJldHVybiBvcmlnCisKKwor
aWYgaGFzYXR0cihpbnNwZWN0LCAic2lnbmF0dXJlIik6CisKKyAgICBkZWYgX2Zvcm1hdGRlZihm
dW5jKToKKyAgICAgICAgcmV0dXJuICIlcyVzIiAlIChmdW5jLl9fbmFtZV9fLCBzdHIoaW5zcGVj
dC5zaWduYXR1cmUoZnVuYykpKQorCisKK2Vsc2U6CisKKyAgICBkZWYgX2Zvcm1hdGRlZihmdW5j
KToKKyAgICAgICAgcmV0dXJuICIlcyVzIiAlICgKKyAgICAgICAgICAgIGZ1bmMuX19uYW1lX18s
CisgICAgICAgICAgICBpbnNwZWN0LmZvcm1hdGFyZ3NwZWMoKmluc3BlY3QuZ2V0YXJnc3BlYyhm
dW5jKSksCisgICAgICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L3czYy1pbXBvcnQubG9nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjlmMzU1OTBlYTljYmM3YjkwYWM2YWZhZWZjNWI2MGMzODcyOGFlOTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L3czYy1pbXBvcnQubG9nCkBAIC0wLDAg
KzEsMjEgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvX19pbml0X18ucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS9zcmMvcGx1Z2d5L190cmFjaW5nLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc3JjL3BsdWdn
eS9jYWxsZXJzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc3JjL3BsdWdneS9ob29rcy5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L3NyYy9wbHVnZ3kvbWFuYWdlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGlu
Zy9iZW5jaG1hcmsucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2JlbmNobWFyay5weQppbmRleCA1
YTkxM2U5ZDQxOGRmYTM5ZGRkOWE3MjZkNDdhMTc1NWZlYWI5YjhkLi5hYThkZTkyOTExYmJlZWQ0
NTQ5Nzc4MjA4MzUxMTc4NjBlMGFkMDZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5n
L2JlbmNobWFyay5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2JlbmNobWFyay5weQpAQCAt
Miw4ICsyLDkgQEAKIEJlbmNobWFya2luZyBhbmQgcGVyZm9ybWFuY2UgdGVzdHMuCiAiIiIKIGlt
cG9ydCBweXRlc3QKLWZyb20gcGx1Z2d5IGltcG9ydCAoX211bHRpY2FsbCwgX2xlZ2FjeW11bHRp
Y2FsbCwgSG9va0ltcGwsIEhvb2tzcGVjTWFya2VyLAotICAgICAgICAgICAgICAgICAgICBIb29r
aW1wbE1hcmtlcikKK2Zyb20gcGx1Z2d5IGltcG9ydCBIb29rc3BlY01hcmtlciwgSG9va2ltcGxN
YXJrZXIKK2Zyb20gcGx1Z2d5Lmhvb2tzIGltcG9ydCBIb29rSW1wbAorZnJvbSBwbHVnZ3kuY2Fs
bGVycyBpbXBvcnQgX211bHRpY2FsbCwgX2xlZ2FjeW11bHRpY2FsbAogCiBob29rc3BlYyA9IEhv
b2tzcGVjTWFya2VyKCJleGFtcGxlIikKIGhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoImV4YW1w
bGUiKQpAQCAtMTQsNyArMTUsNyBAQCBkZWYgTUMobWV0aG9kcywga3dhcmdzLCBjYWxsZXJ0eXBl
LCBmaXJzdHJlc3VsdD1GYWxzZSk6CiAgICAgZm9yIG1ldGhvZCBpbiBtZXRob2RzOgogICAgICAg
ICBmID0gSG9va0ltcGwoTm9uZSwgIjx0ZW1wPiIsIG1ldGhvZCwgbWV0aG9kLmV4YW1wbGVfaW1w
bCkKICAgICAgICAgaG9va2Z1bmNzLmFwcGVuZChmKQotICAgIHJldHVybiBjYWxsZXJ0eXBlKGhv
b2tmdW5jcywga3dhcmdzLCB7ImZpcnN0cmVzdWx0IjogZmlyc3RyZXN1bHR9KQorICAgIHJldHVy
biBjYWxsZXJ0eXBlKGhvb2tmdW5jcywga3dhcmdzLCBmaXJzdHJlc3VsdD1maXJzdHJlc3VsdCkK
IAogCiBAaG9va2ltcGwKQEAgLTI3LDMyICsyOCwyMyBAQCBkZWYgd3JhcHBlcihhcmcxLCBhcmcy
LCBhcmczKToKICAgICB5aWVsZAogCiAKLUBweXRlc3QuZml4dHVyZSgKLSAgICBwYXJhbXM9WzEw
LCAxMDBdLAotICAgIGlkcz0iaG9va3M9e30iLmZvcm1hdCwKLSkKK0BweXRlc3QuZml4dHVyZShw
YXJhbXM9WzEwLCAxMDBdLCBpZHM9Imhvb2tzPXt9Ii5mb3JtYXQpCiBkZWYgaG9va3MocmVxdWVz
dCk6CiAgICAgcmV0dXJuIFtob29rIGZvciBpIGluIHJhbmdlKHJlcXVlc3QucGFyYW0pXQogCiAK
LUBweXRlc3QuZml4dHVyZSgKLSAgICBwYXJhbXM9WzEwLCAxMDBdLAotICAgIGlkcz0id3JhcHBl
cnM9e30iLmZvcm1hdCwKLSkKK0BweXRlc3QuZml4dHVyZShwYXJhbXM9WzEwLCAxMDBdLCBpZHM9
IndyYXBwZXJzPXt9Ii5mb3JtYXQpCiBkZWYgd3JhcHBlcnMocmVxdWVzdCk6CiAgICAgcmV0dXJu
IFt3cmFwcGVyIGZvciBpIGluIHJhbmdlKHJlcXVlc3QucGFyYW0pXQogCiAKLUBweXRlc3QuZml4
dHVyZSgKLSAgICBwYXJhbXM9W19tdWx0aWNhbGwsIF9sZWdhY3ltdWx0aWNhbGxdLAotICAgIGlk
cz1sYW1iZGEgaXRlbTogaXRlbS5fX25hbWVfXwotKQorQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1b
X211bHRpY2FsbCwgX2xlZ2FjeW11bHRpY2FsbF0sIGlkcz1sYW1iZGEgaXRlbTogaXRlbS5fX25h
bWVfXykKIGRlZiBjYWxsZXJ0eXBlKHJlcXVlc3QpOgogICAgIHJldHVybiByZXF1ZXN0LnBhcmFt
CiAKIAogZGVmIGlubmVyX2V4ZWMobWV0aG9kcywgY2FsbGVydHlwZSk6Ci0gICAgcmV0dXJuIE1D
KG1ldGhvZHMsIHsnYXJnMSc6IDEsICdhcmcyJzogMiwgJ2FyZzMnOiAzfSwgY2FsbGVydHlwZSkK
KyAgICByZXR1cm4gTUMobWV0aG9kcywgeyJhcmcxIjogMSwgImFyZzIiOiAyLCAiYXJnMyI6IDN9
LCBjYWxsZXJ0eXBlKQogCiAKIGRlZiB0ZXN0X2hvb2tfYW5kX3dyYXBwZXJzX3NwZWVkKGJlbmNo
bWFyaywgaG9va3MsIHdyYXBwZXJzLCBjYWxsZXJ0eXBlKToKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L3Rlc3RpbmcvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2NvbmZ0ZXN0LnB5
CmluZGV4IDNkNjFhMzQ5Yzg4YzY4N2YzMTFiMTAwNWNhZDVjY2IwNGIxYjg5ODYuLmU0NDY2N2Vm
NWYxYzQxODgyOTM0YjY2MjMwZTU3N2NhMTU0NTQzMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L3Rlc3RpbmcvY29uZnRlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy9jb25mdGVzdC5w
eQpAQCAtMiwxNyArMiwxMiBAQCBpbXBvcnQgcHl0ZXN0CiAKIAogQHB5dGVzdC5maXh0dXJlKAot
ICAgIHBhcmFtcz1bCi0gICAgICAgIGxhbWJkYSBzcGVjOiBzcGVjLAotICAgICAgICBsYW1iZGEg
c3BlYzogc3BlYygpCi0gICAgXSwKLSAgICBpZHM9WwotICAgICAgICAic3BlYy1pcy1jbGFzcyIs
Ci0gICAgICAgICJzcGVjLWlzLWluc3RhbmNlIgotICAgIF0sCisgICAgcGFyYW1zPVtsYW1iZGEg
c3BlYzogc3BlYywgbGFtYmRhIHNwZWM6IHNwZWMoKV0sCisgICAgaWRzPVsic3BlYy1pcy1jbGFz
cyIsICJzcGVjLWlzLWluc3RhbmNlIl0sCiApCiBkZWYgaGVfcG0ocmVxdWVzdCwgcG0pOgogICAg
IGZyb20gcGx1Z2d5IGltcG9ydCBIb29rc3BlY01hcmtlcgorCiAgICAgaG9va3NwZWMgPSBIb29r
c3BlY01hcmtlcigiZXhhbXBsZSIpCiAKICAgICBjbGFzcyBIb29rcyhvYmplY3QpOgpAQCAtMjcs
NCArMjIsNSBAQCBkZWYgaGVfcG0ocmVxdWVzdCwgcG0pOgogQHB5dGVzdC5maXh0dXJlCiBkZWYg
cG0oKToKICAgICBmcm9tIHBsdWdneSBpbXBvcnQgUGx1Z2luTWFuYWdlcgorCiAgICAgcmV0dXJu
IFBsdWdpbk1hbmFnZXIoImV4YW1wbGUiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGlu
Zy90ZXN0X2RlcHJlY2F0aW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXByZWNh
dGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1MTkyMWI2Njg1ZTdmMGM4MDRmODBkMDgwNzMzMTljNDI2
MDgyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXByZWNh
dGlvbnMucHkKQEAgLTAsMCArMSw1NCBAQAorIiIiCitEZXByZWNhdGlvbiB3YXJuaW5ncyB0ZXN0
aW5nIHJvdW5kdXAuCisiIiIKK2ltcG9ydCBweXRlc3QKK2Zyb20gcGx1Z2d5LmNhbGxlcnMgaW1w
b3J0IF9SZXN1bHQKK2Zyb20gcGx1Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBIb29raW1wbE1h
cmtlciwgSG9va3NwZWNNYXJrZXIKKworaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigiZXhhbXBs
ZSIpCitob29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJleGFtcGxlIikKKworCitkZWYgdGVzdF9y
ZXN1bHRfZGVwcmVjYXRlZCgpOgorICAgIHIgPSBfUmVzdWx0KDEwLCBOb25lKQorICAgIHdpdGgg
cHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgorICAgICAgICBhc3NlcnQgci5yZXN1bHQgPT0gMTAK
KworCitkZWYgdGVzdF9pbXBscHJlZml4X2RlcHJlY2F0ZWQoKToKKyAgICB3aXRoIHB5dGVzdC5k
ZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgcG0gPSBQbHVnaW5NYW5hZ2VyKCJibGFoIiwgaW1w
bHByZWZpeD0iYmxhaF8iKQorCisgICAgY2xhc3MgUGx1Z2luOgorICAgICAgICBkZWYgYmxhaF9t
eWhvb2soc2VsZiwgYXJnMSk6CisgICAgICAgICAgICByZXR1cm4gYXJnMQorCisgICAgd2l0aCBw
eXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CisgICAgICAgIHBtLnJlZ2lzdGVyKFBsdWdpbigpKQor
CisKK2RlZiB0ZXN0X2NhbGxoaXN0b3JpY19wcm9jX2RlcHJlY2F0ZWQocG0pOgorICAgICIiImBg
cHJvY2BgIGt3YXJnIHRvIGBQbHVnaW5NYW5hbmdlci5jYWxsX2hpc3RvcmljKClgIGlzIG5vdyBv
ZmZpY2lhbGx5CisgICAgZGVwcmVjYXRlZC4KKyAgICAiIiIKKworICAgIGNsYXNzIFAxKG9iamVj
dCk6CisgICAgICAgIEBob29rc3BlYyhoaXN0b3JpYz1UcnVlKQorICAgICAgICBAaG9va2ltcGwK
KyAgICAgICAgZGVmIG0oc2VsZiwgeCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICBwMSA9IFAx
KCkKKyAgICBwbS5hZGRfaG9va3NwZWNzKHAxKQorICAgIHBtLnJlZ2lzdGVyKHAxKQorICAgIHdp
dGggcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgorICAgICAgICBwbS5ob29rLm0uY2FsbF9oaXN0
b3JpYyhrd2FyZ3M9ZGljdCh4PTEwKSwgcHJvYz1sYW1iZGEgcmVzOiByZXMpCisKKworZGVmIHRl
c3RfbXVsdGljYWxsX2RlcHJlY2F0ZWQocG0pOgorICAgIGNsYXNzIFAxKG9iamVjdCk6CisgICAg
ICAgIEBob29raW1wbAorICAgICAgICBkZWYgbShzZWxmLCBfX211bHRpY2FsbF9fLCB4KToKKyAg
ICAgICAgICAgIHBhc3MKKworICAgIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwocG0ucmVnaXN0ZXIs
IFAxKCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfZGV0YWlscy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXRhaWxzLnB5CmluZGV4IDJmYWQxOThkOTU4NWQ0
YzNiMTlmNWVmMjA1MmU3NDNlY2Y0ZThlNjcuLmZjNDlmYzMwOGRlYzEwY2U1YzNmNjg5MTQ1NGY3
ZDI0MzI1YjJkOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXRhaWxz
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXRhaWxzLnB5CkBAIC0xLDggKzEs
NiBAQAogaW1wb3J0IHdhcm5pbmdzCi0KIGltcG9ydCBweXRlc3QKLQotZnJvbSBwbHVnZ3kgaW1w
b3J0IFBsdWdpbk1hbmFnZXIsIEhvb2tpbXBsTWFya2VyLCBIb29rc3BlY01hcmtlciwgX1Jlc3Vs
dAorZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1hbmFnZXIsIEhvb2tpbXBsTWFya2VyLCBIb29r
c3BlY01hcmtlcgogCiBob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJleGFtcGxlIikKIGhvb2tp
bXBsID0gSG9va2ltcGxNYXJrZXIoImV4YW1wbGUiKQpAQCAtMTEsOCArOSw3IEBAIGhvb2tpbXBs
ID0gSG9va2ltcGxNYXJrZXIoImV4YW1wbGUiKQogZGVmIHRlc3RfcGFyc2VfaG9va2ltcGxfb3Zl
cnJpZGUoKToKICAgICBjbGFzcyBNeVBsdWdpbk1hbmFnZXIoUGx1Z2luTWFuYWdlcik6CiAgICAg
ICAgIGRlZiBwYXJzZV9ob29raW1wbF9vcHRzKHNlbGYsIG1vZHVsZV9vcl9jbGFzcywgbmFtZSk6
Ci0gICAgICAgICAgICBvcHRzID0gUGx1Z2luTWFuYWdlci5wYXJzZV9ob29raW1wbF9vcHRzKAot
ICAgICAgICAgICAgICAgIHNlbGYsIG1vZHVsZV9vcl9jbGFzcywgbmFtZSkKKyAgICAgICAgICAg
IG9wdHMgPSBQbHVnaW5NYW5hZ2VyLnBhcnNlX2hvb2tpbXBsX29wdHMoc2VsZiwgbW9kdWxlX29y
X2NsYXNzLCBuYW1lKQogICAgICAgICAgICAgaWYgb3B0cyBpcyBOb25lOgogICAgICAgICAgICAg
ICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgieDEiKToKICAgICAgICAgICAgICAgICAgICAgb3B0cyA9
IHt9CkBAIC00NywxMyArNDQsMzggQEAgZGVmIHRlc3RfcGFyc2VfaG9va2ltcGxfb3ZlcnJpZGUo
KToKICAgICBhc3NlcnQgcG0uaG9vay54MW1ldGgyLl93cmFwcGVyc1swXS5ob29rd3JhcHBlcgog
CiAKK2RlZiB0ZXN0X3dhcm5fd2hlbl9kZXByZWNhdGVkX3NwZWNpZmllZChyZWN3YXJuKToKKyAg
ICB3YXJuaW5nID0gRGVwcmVjYXRpb25XYXJuaW5nKCJmb28gaXMgZGVwcmVjYXRlZCIpCisKKyAg
ICBjbGFzcyBTcGVjKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYyh3YXJuX29uX2ltcGw9d2Fy
bmluZykKKyAgICAgICAgZGVmIGZvbyhzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIGNs
YXNzIFBsdWdpbihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGZvbyhz
ZWxmKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHBtID0gUGx1Z2luTWFuYWdlcihob29rc3Bl
Yy5wcm9qZWN0X25hbWUpCisgICAgcG0uYWRkX2hvb2tzcGVjcyhTcGVjKQorCisgICAgd2l0aCBw
eXRlc3Qud2FybnMoRGVwcmVjYXRpb25XYXJuaW5nKSBhcyByZWNvcmRzOgorICAgICAgICBwbS5y
ZWdpc3RlcihQbHVnaW4oKSkKKyAgICAocmVjb3JkLCkgPSByZWNvcmRzCisgICAgYXNzZXJ0IHJl
Y29yZC5tZXNzYWdlIGlzIHdhcm5pbmcKKyAgICBhc3NlcnQgcmVjb3JkLmZpbGVuYW1lID09IFBs
dWdpbi5mb28uX19jb2RlX18uY29fZmlsZW5hbWUKKyAgICBhc3NlcnQgcmVjb3JkLmxpbmVubyA9
PSBQbHVnaW4uZm9vLl9fY29kZV9fLmNvX2ZpcnN0bGluZW5vCisKKwogZGVmIHRlc3RfcGx1Z2lu
X2dldGF0dHJfcmFpc2VzX2Vycm9ycygpOgogICAgICIiIlBsdWdneSBtdXN0IGJlIGFibGUgdG8g
aGFuZGxlIHBsdWdpbnMgd2hpY2ggcmFpc2Ugd2VpcmQgZXhjZXB0aW9ucwogICAgIHdoZW4gZ2V0
YXR0cigpIGdldHMgY2FsbGVkICgjMTEpLgogICAgICIiIgorCiAgICAgY2xhc3MgRG9udFRvdWNo
TWUob2JqZWN0KToKICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIHgpOgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdjYW50IHRvdWNoIG1lJykKKyAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbigiY2FudCB0b3VjaCBtZSIpCiAKICAgICBjbGFzcyBNb2R1bGUob2JqZWN0KToKICAg
ICAgICAgcGFzcwpAQCAtNjMsMTQgKzg1LDE1IEBAIGRlZiB0ZXN0X3BsdWdpbl9nZXRhdHRyX3Jh
aXNlc19lcnJvcnMoKToKIAogICAgIHBtID0gUGx1Z2luTWFuYWdlcihob29rc3BlYy5wcm9qZWN0
X25hbWUpCiAgICAgIyByZWdpc3RlcigpIHdvdWxkIHJhaXNlIGFuIGVycm9yCi0gICAgcG0ucmVn
aXN0ZXIobW9kdWxlLCAnZG9udHRvdWNoJykKLSAgICBhc3NlcnQgcG0uZ2V0X3BsdWdpbignZG9u
dHRvdWNoJykgaXMgbW9kdWxlCisgICAgcG0ucmVnaXN0ZXIobW9kdWxlLCAiZG9udHRvdWNoIikK
KyAgICBhc3NlcnQgcG0uZ2V0X3BsdWdpbigiZG9udHRvdWNoIikgaXMgbW9kdWxlCiAKIAogZGVm
IHRlc3Rfd2FybmluZ19vbl9jYWxsX3ZzX2hvb2tzcGVjX2FyZ19taXNtYXRjaCgpOgogICAgICIi
IlZlcmlmeSB0aGF0IGlzIGEgaG9vayBpcyBjYWxsZWQgd2l0aCBsZXNzIGFyZ3VtZW50cyB0aGVu
IGRlZmluZWQgaW4gdGhlCiAgICAgc3BlYyB0aGF0IGEgd2FybmluZyBpcyBlbWl0dGVkLgogICAg
ICIiIgorCiAgICAgY2xhc3MgU3BlYzoKICAgICAgICAgQGhvb2tzcGVjCiAgICAgICAgIGRlZiBt
eWhvb2soc2VsZiwgYXJnMSwgYXJnMik6CkBAIC04Niw3ICsxMDksNyBAQCBkZWYgdGVzdF93YXJu
aW5nX29uX2NhbGxfdnNfaG9va3NwZWNfYXJnX21pc21hdGNoKCk6CiAgICAgcG0uYWRkX2hvb2tz
cGVjcyhTcGVjKCkpCiAKICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKHJlY29yZD1U
cnVlKSBhcyB3YXJuczoKLSAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdhbHdheXMnKQor
ICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImFsd2F5cyIpCiAKICAgICAgICAgIyBjYWxs
aW5nIHNob3VsZCB0cmlnZ2VyIGEgd2FybmluZwogICAgICAgICBwbS5ob29rLm15aG9vayhhcmcx
PTEpCkBAIC05Nyw3ICsxMjAsMTYgQEAgZGVmIHRlc3Rfd2FybmluZ19vbl9jYWxsX3ZzX2hvb2tz
cGVjX2FyZ19taXNtYXRjaCgpOgogICAgICAgICBhc3NlcnQgIkFyZ3VtZW50KHMpICgnYXJnMics
KSIgaW4gc3RyKHdhcm5pbmcubWVzc2FnZSkKIAogCi1kZWYgdGVzdF9yZXN1bHRfZGVwcmVjYXRl
ZCgpOgotICAgIHIgPSBfUmVzdWx0KDEwLCBOb25lKQotICAgIHdpdGggcHl0ZXN0LmRlcHJlY2F0
ZWRfY2FsbCgpOgotICAgICAgICBhc3NlcnQgci5yZXN1bHQgPT0gMTAKK2RlZiB0ZXN0X3JlcHIo
KToKKyAgICBjbGFzcyBQbHVnaW46CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgbXlo
b29rKCk6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIHBt
ID0gUGx1Z2luTWFuYWdlcihob29rc3BlYy5wcm9qZWN0X25hbWUpCisKKyAgICBwbHVnaW4gPSBQ
bHVnaW4oKQorICAgIHBuYW1lID0gcG0ucmVnaXN0ZXIocGx1Z2luKQorICAgIGFzc2VydCByZXBy
KHBtLmhvb2subXlob29rLl9ub253cmFwcGVyc1swXSkgPT0gKAorICAgICAgICAiPEhvb2tJbXBs
IHBsdWdpbl9uYW1lPSVyLCBwbHVnaW49JXI+IiAlIChwbmFtZSwgcGx1Z2luKQorICAgICkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9oZWxwZXJzLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvdGVzdGluZy90ZXN0X2hlbHBlcnMucHkKaW5kZXggYjE3ODA5Njg0NDY1MDgzZTRkMDAxMzRm
MjM3NTFiZjBjNGMyYTM0OS4uNjRjM2VkYWEwYTFlOGFmZjdjNzljOGI1ZDM1MmRiYjFjZjQwYmFi
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hlbHBlcnMucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hlbHBlcnMucHkKQEAgLTEsNCArMSw4IEBACi1mcm9t
IHBsdWdneSBpbXBvcnQgX2Zvcm1hdGRlZiwgdmFybmFtZXMKK2Zyb20gcGx1Z2d5Lmhvb2tzIGlt
cG9ydCB2YXJuYW1lcworZnJvbSBwbHVnZ3kubWFuYWdlciBpbXBvcnQgX2Zvcm1hdGRlZgorCitp
bXBvcnQgc3lzCitpbXBvcnQgcHl0ZXN0CiAKIAogZGVmIHRlc3RfdmFybmFtZXMoKToKQEAgLTE0
LDggKzE4LDggQEAgZGVmIHRlc3RfdmFybmFtZXMoKToKICAgICAgICAgICAgIHBhc3MKIAogICAg
IGFzc2VydCB2YXJuYW1lcyhmKSA9PSAoKCJ4IiwpLCAoKSkKLSAgICBhc3NlcnQgdmFybmFtZXMo
QSgpLmYpID09ICgoJ3knLCksICgpKQotICAgIGFzc2VydCB2YXJuYW1lcyhCKCkpID09ICgoJ3on
LCksICgpKQorICAgIGFzc2VydCB2YXJuYW1lcyhBKCkuZikgPT0gKCgieSIsKSwgKCkpCisgICAg
YXNzZXJ0IHZhcm5hbWVzKEIoKSkgPT0gKCgieiIsKSwgKCkpCiAKIAogZGVmIHRlc3RfdmFybmFt
ZXNfZGVmYXVsdCgpOgpAQCAtNDYsMTEgKzUwLDI5IEBAIGRlZiB0ZXN0X3Zhcm5hbWVzX2NsYXNz
KCk6CiAgICAgYXNzZXJ0IHZhcm5hbWVzKEYpID09ICgoKSwgKCkpCiAKIAorQHB5dGVzdC5tYXJr
LnNraXBpZigKKyAgICBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKSwgcmVhc29uPSJLZXl3b3JkIG9u
bHkgYXJndW1lbnRzIGFyZSBQeXRob24gMyBvbmx5IgorKQorZGVmIHRlc3RfdmFybmFtZXNfa2V5
d29yZF9vbmx5KCk6CisgICAgIyBTeW50YXhFcnJvciBvbiBQeXRob24gMiwgc28gd2UgZXhlYwor
ICAgIG5zID0ge30KKyAgICBleGVjKAorICAgICAgICAiZGVmIGYxKHgsICosIHkpOiBwYXNzXG4i
CisgICAgICAgICJkZWYgZjIoeCwgKiwgeT0zKTogcGFzc1xuIgorICAgICAgICAiZGVmIGYzKHg9
MSwgKiwgeT0zKTogcGFzc1xuIiwKKyAgICAgICAgbnMsCisgICAgKQorCisgICAgYXNzZXJ0IHZh
cm5hbWVzKG5zWyJmMSJdKSA9PSAoKCJ4IiwpLCAoKSkKKyAgICBhc3NlcnQgdmFybmFtZXMobnNb
ImYyIl0pID09ICgoIngiLCksICgpKQorICAgIGFzc2VydCB2YXJuYW1lcyhuc1siZjMiXSkgPT0g
KCgpLCAoIngiLCkpCisKKwogZGVmIHRlc3RfZm9ybWF0ZGVmKCk6CiAgICAgZGVmIGZ1bmN0aW9u
MSgpOgogICAgICAgICBwYXNzCiAKLSAgICBhc3NlcnQgX2Zvcm1hdGRlZihmdW5jdGlvbjEpID09
ICdmdW5jdGlvbjEoKScKKyAgICBhc3NlcnQgX2Zvcm1hdGRlZihmdW5jdGlvbjEpID09ICJmdW5j
dGlvbjEoKSIKIAogICAgIGRlZiBmdW5jdGlvbjIoYXJnMSk6CiAgICAgICAgIHBhc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9ob29rY2FsbGVyLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvdGVzdGluZy90ZXN0X2hvb2tjYWxsZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY2NGYyYmJmNjZjNjY4
ZDYzNTA1OTk5MjUzNzEwNmJiZDQ3MzBkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L3Rlc3RpbmcvdGVzdF9ob29rY2FsbGVyLnB5CkBAIC0wLDAgKzEsMjE1IEBACitpbXBvcnQgcHl0
ZXN0CisKK2Zyb20gcGx1Z2d5IGltcG9ydCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIK
K2Zyb20gcGx1Z2d5Lmhvb2tzIGltcG9ydCBIb29rSW1wbAorCitob29rc3BlYyA9IEhvb2tzcGVj
TWFya2VyKCJleGFtcGxlIikKK2hvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoImV4YW1wbGUiKQor
CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGhjKHBtKToKKyAgICBjbGFzcyBIb29rcyhvYmplY3Qp
OgorICAgICAgICBAaG9va3NwZWMKKyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToK
KyAgICAgICAgICAgIHBhc3MKKworICAgIHBtLmFkZF9ob29rc3BlY3MoSG9va3MpCisgICAgcmV0
dXJuIHBtLmhvb2suaGVfbWV0aG9kMQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGFkZG1ldGgo
aGMpOgorICAgIGRlZiBhZGRtZXRoKHRyeWZpcnN0PUZhbHNlLCB0cnlsYXN0PUZhbHNlLCBob29r
d3JhcHBlcj1GYWxzZSk6CisgICAgICAgIGRlZiB3cmFwKGZ1bmMpOgorICAgICAgICAgICAgaG9v
a2ltcGwodHJ5Zmlyc3Q9dHJ5Zmlyc3QsIHRyeWxhc3Q9dHJ5bGFzdCwgaG9va3dyYXBwZXI9aG9v
a3dyYXBwZXIpKGZ1bmMpCisgICAgICAgICAgICBoYy5fYWRkX2hvb2tpbXBsKEhvb2tJbXBsKE5v
bmUsICI8dGVtcD4iLCBmdW5jLCBmdW5jLmV4YW1wbGVfaW1wbCkpCisgICAgICAgICAgICByZXR1
cm4gZnVuYworCisgICAgICAgIHJldHVybiB3cmFwCisKKyAgICByZXR1cm4gYWRkbWV0aAorCisK
K2RlZiBmdW5jcyhob29rbWV0aG9kcyk6CisgICAgcmV0dXJuIFtob29rbWV0aG9kLmZ1bmN0aW9u
IGZvciBob29rbWV0aG9kIGluIGhvb2ttZXRob2RzXQorCisKK2RlZiB0ZXN0X2FkZGluZ19ub253
cmFwcGVycyhoYywgYWRkbWV0aCk6CisgICAgQGFkZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2Qx
KCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMigp
OgorICAgICAgICBwYXNzCisKKyAgICBAYWRkbWV0aCgpCisgICAgZGVmIGhlX21ldGhvZDMoKToK
KyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gW2hl
X21ldGhvZDEsIGhlX21ldGhvZDIsIGhlX21ldGhvZDNdCisKKworZGVmIHRlc3RfYWRkaW5nX25v
bndyYXBwZXJzX3RyeWxhc3QoaGMsIGFkZG1ldGgpOgorICAgIEBhZGRtZXRoKCkKKyAgICBkZWYg
aGVfbWV0aG9kMV9taWRkbGUoKToKKyAgICAgICAgcGFzcworCisgICAgQGFkZG1ldGgodHJ5bGFz
dD1UcnVlKQorICAgIGRlZiBoZV9tZXRob2QxKCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRt
ZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMV9iKCk6CisgICAgICAgIHBhc3MKKworICAgIGFzc2Vy
dCBmdW5jcyhoYy5fbm9ud3JhcHBlcnMpID09IFtoZV9tZXRob2QxLCBoZV9tZXRob2QxX21pZGRs
ZSwgaGVfbWV0aG9kMV9iXQorCisKK2RlZiB0ZXN0X2FkZGluZ19ub253cmFwcGVyc190cnlsYXN0
MyhoYywgYWRkbWV0aCk6CisgICAgQGFkZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2QxX2EoKToK
KyAgICAgICAgcGFzcworCisgICAgQGFkZG1ldGgodHJ5bGFzdD1UcnVlKQorICAgIGRlZiBoZV9t
ZXRob2QxX2IoKToKKyAgICAgICAgcGFzcworCisgICAgQGFkZG1ldGgoKQorICAgIGRlZiBoZV9t
ZXRob2QxX2MoKToKKyAgICAgICAgcGFzcworCisgICAgQGFkZG1ldGgodHJ5bGFzdD1UcnVlKQor
ICAgIGRlZiBoZV9tZXRob2QxX2QoKToKKyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IGZ1bmNz
KGhjLl9ub253cmFwcGVycykgPT0gWworICAgICAgICBoZV9tZXRob2QxX2QsCisgICAgICAgIGhl
X21ldGhvZDFfYiwKKyAgICAgICAgaGVfbWV0aG9kMV9hLAorICAgICAgICBoZV9tZXRob2QxX2Ms
CisgICAgXQorCisKK2RlZiB0ZXN0X2FkZGluZ19ub253cmFwcGVyc190cnlsYXN0MihoYywgYWRk
bWV0aCk6CisgICAgQGFkZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2QxX21pZGRsZSgpOgorICAg
ICAgICBwYXNzCisKKyAgICBAYWRkbWV0aCgpCisgICAgZGVmIGhlX21ldGhvZDFfYigpOgorICAg
ICAgICBwYXNzCisKKyAgICBAYWRkbWV0aCh0cnlsYXN0PVRydWUpCisgICAgZGVmIGhlX21ldGhv
ZDEoKToKKyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykg
PT0gW2hlX21ldGhvZDEsIGhlX21ldGhvZDFfbWlkZGxlLCBoZV9tZXRob2QxX2JdCisKKworZGVm
IHRlc3RfYWRkaW5nX25vbndyYXBwZXJzX3RyeWZpcnN0KGhjLCBhZGRtZXRoKToKKyAgICBAYWRk
bWV0aCh0cnlmaXJzdD1UcnVlKQorICAgIGRlZiBoZV9tZXRob2QxKCk6CisgICAgICAgIHBhc3MK
KworICAgIEBhZGRtZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMV9taWRkbGUoKToKKyAgICAgICAg
cGFzcworCisgICAgQGFkZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2QxX2IoKToKKyAgICAgICAg
cGFzcworCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gW2hlX21ldGhvZDFf
bWlkZGxlLCBoZV9tZXRob2QxX2IsIGhlX21ldGhvZDFdCisKKworZGVmIHRlc3RfYWRkaW5nX3dy
YXBwZXJzX29yZGVyaW5nKGhjLCBhZGRtZXRoKToKKyAgICBAYWRkbWV0aChob29rd3JhcHBlcj1U
cnVlKQorICAgIGRlZiBoZV9tZXRob2QxKCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRo
KCkKKyAgICBkZWYgaGVfbWV0aG9kMV9taWRkbGUoKToKKyAgICAgICAgcGFzcworCisgICAgQGFk
ZG1ldGgoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBkZWYgaGVfbWV0aG9kMygpOgorICAgICAgICBw
YXNzCisKKyAgICBhc3NlcnQgZnVuY3MoaGMuX25vbndyYXBwZXJzKSA9PSBbaGVfbWV0aG9kMV9t
aWRkbGVdCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl93cmFwcGVycykgPT0gW2hlX21ldGhvZDEsIGhl
X21ldGhvZDNdCisKKworZGVmIHRlc3RfYWRkaW5nX3dyYXBwZXJzX29yZGVyaW5nX3RyeWZpcnN0
KGhjLCBhZGRtZXRoKToKKyAgICBAYWRkbWV0aChob29rd3JhcHBlcj1UcnVlLCB0cnlmaXJzdD1U
cnVlKQorICAgIGRlZiBoZV9tZXRob2QxKCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRo
KGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIGhlX21ldGhvZDIoKToKKyAgICAgICAgcGFzcwor
CisgICAgYXNzZXJ0IGhjLl9ub253cmFwcGVycyA9PSBbXQorICAgIGFzc2VydCBmdW5jcyhoYy5f
d3JhcHBlcnMpID09IFtoZV9tZXRob2QyLCBoZV9tZXRob2QxXQorCisKK2RlZiB0ZXN0X2hvb2tz
cGVjKHBtKToKKyAgICBjbGFzcyBIb29rU3BlYyhvYmplY3QpOgorICAgICAgICBAaG9va3NwZWMo
KQorICAgICAgICBkZWYgaGVfbXlob29rMShhcmcxKToKKyAgICAgICAgICAgIHBhc3MKKworICAg
ICAgICBAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKKyAgICAgICAgZGVmIGhlX215aG9vazIo
YXJnMSk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0
PUZhbHNlKQorICAgICAgICBkZWYgaGVfbXlob29rMyhhcmcxKToKKyAgICAgICAgICAgIHBhc3MK
KworICAgIHBtLmFkZF9ob29rc3BlY3MoSG9va1NwZWMpCisgICAgYXNzZXJ0IG5vdCBwbS5ob29r
LmhlX215aG9vazEuc3BlYy5vcHRzWyJmaXJzdHJlc3VsdCJdCisgICAgYXNzZXJ0IHBtLmhvb2su
aGVfbXlob29rMi5zcGVjLm9wdHNbImZpcnN0cmVzdWx0Il0KKyAgICBhc3NlcnQgbm90IHBtLmhv
b2suaGVfbXlob29rMy5zcGVjLm9wdHNbImZpcnN0cmVzdWx0Il0KKworCitAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoIm5hbWUiLCBbImhvb2t3cmFwcGVyIiwgIm9wdGlvbmFsaG9vayIsICJ0cnlm
aXJzdCIsICJ0cnlsYXN0Il0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZhbCIsIFtUcnVl
LCBGYWxzZV0pCitkZWYgdGVzdF9ob29raW1wbChuYW1lLCB2YWwpOgorICAgIEBob29raW1wbCgq
KntuYW1lOiB2YWx9KQorICAgIGRlZiBoZV9teWhvb2sxKGFyZzEpOgorICAgICAgICBwYXNzCisK
KyAgICBpZiB2YWw6CisgICAgICAgIGFzc2VydCBoZV9teWhvb2sxLmV4YW1wbGVfaW1wbC5nZXQo
bmFtZSkKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoaGVfbXlob29rMSwg
bmFtZSkKKworCitkZWYgdGVzdF9ob29rcmVsYXlfcmVnaXN0cnkocG0pOgorICAgICIiIlZlcmlm
eSBob29rIGNhbGxlciBpbnN0YW5jZXMgYXJlIHJlZ2lzdGVyZWQgYnkgbmFtZSBvbnRvIHRoZSBy
ZWxheQorICAgIGFuZCBjYW4gYmUgbGlrZXdpc2UgdW5yZWdpc3RlcmVkLiIiIgorCisgICAgY2xh
c3MgQXBpKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYworICAgICAgICBkZWYgaGVsbG8oc2Vs
ZiwgYXJnKToKKyAgICAgICAgICAgICJhcGkgaG9vayAxIgorCisgICAgcG0uYWRkX2hvb2tzcGVj
cyhBcGkpCisgICAgaG9vayA9IHBtLmhvb2sKKyAgICBhc3NlcnQgaGFzYXR0cihob29rLCAiaGVs
bG8iKQorICAgIGFzc2VydCByZXByKGhvb2suaGVsbG8pLmZpbmQoImhlbGxvIikgIT0gLTEKKwor
ICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVm
IGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gYXJnICsgMQorCisgICAgcGx1
Z2luID0gUGx1Z2luKCkKKyAgICBwbS5yZWdpc3RlcihwbHVnaW4pCisgICAgb3V0ID0gaG9vay5o
ZWxsbyhhcmc9MykKKyAgICBhc3NlcnQgb3V0ID09IFs0XQorICAgIGFzc2VydCBub3QgaGFzYXR0
cihob29rLCAid29ybGQiKQorICAgIHBtLnVucmVnaXN0ZXIocGx1Z2luKQorICAgIGFzc2VydCBo
b29rLmhlbGxvKGFyZz0zKSA9PSBbXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90
ZXN0X2hvb2tyZWxheS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9ob29rcmVsYXkucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlNzgyMWJlZDhmOWQwZDNhMWI5OGNmZTlj
MDc3MjQxNjljNWM0MWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hvb2tyZWxheS5weQorKysgL2Rldi9udWxs
CkBAIC0xLDIxMCArMCwwIEBACi1pbXBvcnQgcHl0ZXN0Ci1mcm9tIHBsdWdneSBpbXBvcnQgUGx1
Z2luVmFsaWRhdGlvbkVycm9yLCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIKLQotCi1o
b29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJleGFtcGxlIikKLWhvb2tpbXBsID0gSG9va2ltcGxN
YXJrZXIoImV4YW1wbGUiKQotCi0KLWRlZiB0ZXN0X2hhcHB5cGF0aChwbSk6Ci0gICAgY2xhc3Mg
QXBpKG9iamVjdCk6Ci0gICAgICAgIEBob29rc3BlYwotICAgICAgICBkZWYgaGVsbG8oc2VsZiwg
YXJnKToKLSAgICAgICAgICAgICJhcGkgaG9vayAxIgotCi0gICAgcG0uYWRkX2hvb2tzcGVjcyhB
cGkpCi0gICAgaG9vayA9IHBtLmhvb2sKLSAgICBhc3NlcnQgaGFzYXR0cihob29rLCAnaGVsbG8n
KQotICAgIGFzc2VydCByZXByKGhvb2suaGVsbG8pLmZpbmQoImhlbGxvIikgIT0gLTEKLQotICAg
IGNsYXNzIFBsdWdpbihvYmplY3QpOgotICAgICAgICBAaG9va2ltcGwKLSAgICAgICAgZGVmIGhl
bGxvKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICByZXR1cm4gYXJnICsgMQotCi0gICAgcGx1Z2lu
ID0gUGx1Z2luKCkKLSAgICBwbS5yZWdpc3RlcihwbHVnaW4pCi0gICAgb3V0ID0gaG9vay5oZWxs
byhhcmc9MykKLSAgICBhc3NlcnQgb3V0ID09IFs0XQotICAgIGFzc2VydCBub3QgaGFzYXR0ciho
b29rLCAnd29ybGQnKQotICAgIHBtLnVucmVnaXN0ZXIocGx1Z2luKQotICAgIGFzc2VydCBob29r
LmhlbGxvKGFyZz0zKSA9PSBbXQotCi0KLWRlZiB0ZXN0X2FyZ21pc21hdGNoKHBtKToKLSAgICBj
bGFzcyBBcGkob2JqZWN0KToKLSAgICAgICAgQGhvb2tzcGVjCi0gICAgICAgIGRlZiBoZWxsbyhz
ZWxmLCBhcmcpOgotICAgICAgICAgICAgImFwaSBob29rIDEiCi0KLSAgICBwbS5hZGRfaG9va3Nw
ZWNzKEFwaSkKLQotICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgotICAgICAgICBAaG9va2ltcGwK
LSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZ3dyb25nKToKLSAgICAgICAgICAgIHBhc3MKLQot
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhQbHVnaW5WYWxpZGF0aW9uRXJyb3IpIGFzIGV4YzoKLSAg
ICAgICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCi0KLSAgICBhc3NlcnQgImFyZ3dyb25nIiBpbiBz
dHIoZXhjLnZhbHVlKQotCi0KLWRlZiB0ZXN0X29ubHlfa3dhcmdzKHBtKToKLSAgICBjbGFzcyBB
cGkob2JqZWN0KToKLSAgICAgICAgQGhvb2tzcGVjCi0gICAgICAgIGRlZiBoZWxsbyhzZWxmLCBh
cmcpOgotICAgICAgICAgICAgImFwaSBob29rIDEiCi0KLSAgICBwbS5hZGRfaG9va3NwZWNzKEFw
aSkKLSAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBleGM6Ci0gICAgICAgIHBt
Lmhvb2suaGVsbG8oMykKLQotICAgIGNvbXByZWhlbnNpYmxlID0gImhvb2sgY2FsbGluZyBzdXBw
b3J0cyBvbmx5IGtleXdvcmQgYXJndW1lbnRzIgotICAgIGFzc2VydCBjb21wcmVoZW5zaWJsZSBp
biBzdHIoZXhjLnZhbHVlKQotCi0KLWRlZiB0ZXN0X2NhbGxfb3JkZXIocG0pOgotICAgIGNsYXNz
IEFwaShvYmplY3QpOgotICAgICAgICBAaG9va3NwZWMKLSAgICAgICAgZGVmIGhlbGxvKHNlbGYs
IGFyZyk6Ci0gICAgICAgICAgICAiYXBpIGhvb2sgMSIKLQotICAgIHBtLmFkZF9ob29rc3BlY3Mo
QXBpKQotCi0gICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgotICAgICAgICBAaG9va2ltcGwKLSAg
ICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICByZXR1cm4gMQotCi0gICAg
Y2xhc3MgUGx1Z2luMihvYmplY3QpOgotICAgICAgICBAaG9va2ltcGwKLSAgICAgICAgZGVmIGhl
bGxvKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICByZXR1cm4gMgotCi0gICAgY2xhc3MgUGx1Z2lu
MyhvYmplY3QpOgotICAgICAgICBAaG9va2ltcGwKLSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFy
Zyk6Ci0gICAgICAgICAgICByZXR1cm4gMwotCi0gICAgY2xhc3MgUGx1Z2luNChvYmplY3QpOgot
ICAgICAgICBAaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICAgICAgZGVmIGhlbGxvKHNl
bGYsIGFyZyk6Ci0gICAgICAgICAgICBhc3NlcnQgYXJnID09IDAKLSAgICAgICAgICAgIG91dGNv
bWUgPSB5aWVsZAotICAgICAgICAgICAgYXNzZXJ0IG91dGNvbWUuZ2V0X3Jlc3VsdCgpID09IFsz
LCAyLCAxXQotCi0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKQotICAgIHBtLnJlZ2lzdGVyKFBs
dWdpbjIoKSkKLSAgICBwbS5yZWdpc3RlcihQbHVnaW4zKCkpCi0gICAgcG0ucmVnaXN0ZXIoUGx1
Z2luNCgpKSAgIyBob29rd3JhcHBlciBzaG91bGQgZ2V0IHNhbWUgbGlzdCByZXN1bHQKLSAgICBy
ZXMgPSBwbS5ob29rLmhlbGxvKGFyZz0wKQotICAgIGFzc2VydCByZXMgPT0gWzMsIDIsIDFdCi0K
LQotZGVmIHRlc3RfZmlyc3RyZXN1bHRfZGVmaW5pdGlvbihwbSk6Ci0gICAgY2xhc3MgQXBpKG9i
amVjdCk6Ci0gICAgICAgIEBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotICAgICAgICBkZWYg
aGVsbG8oc2VsZiwgYXJnKToKLSAgICAgICAgICAgICJhcGkgaG9vayAxIgotCi0gICAgcG0uYWRk
X2hvb2tzcGVjcyhBcGkpCi0KLSAgICBjbGFzcyBQbHVnaW4xKG9iamVjdCk6Ci0gICAgICAgIEBo
b29raW1wbAotICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKLSAgICAgICAgICAgIHJldHVy
biBhcmcgKyAxCi0KLSAgICBjbGFzcyBQbHVnaW4yKG9iamVjdCk6Ci0gICAgICAgIEBob29raW1w
bAotICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKLSAgICAgICAgICAgIHJldHVybiBhcmcg
LSAxCi0KLSAgICBjbGFzcyBQbHVnaW4zKG9iamVjdCk6Ci0gICAgICAgIEBob29raW1wbAotICAg
ICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAg
ICBjbGFzcyBQbHVnaW40KG9iamVjdCk6Ci0gICAgICAgIEBob29raW1wbChob29rd3JhcHBlcj1U
cnVlKQotICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKLSAgICAgICAgICAgIGFzc2VydCBh
cmcgPT0gMwotICAgICAgICAgICAgb3V0Y29tZSA9IHlpZWxkCi0gICAgICAgICAgICBhc3NlcnQg
b3V0Y29tZS5nZXRfcmVzdWx0KCkgPT0gMgotCi0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKSAg
IyBkaXNjYXJkZWQgLSBub3QgdGhlIGxhc3QgcmVnaXN0ZXJlZCBwbHVnaW4KLSAgICBwbS5yZWdp
c3RlcihQbHVnaW4yKCkpICAjIHVzZWQgYXMgcmVzdWx0Ci0gICAgcG0ucmVnaXN0ZXIoUGx1Z2lu
MygpKSAgIyBOb25lIHJlc3VsdCBpcyBpZ25vcmVkCi0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luNCgp
KSAgIyBob29rd3JhcHBlciBzaG91bGQgZ2V0IHNhbWUgbm9uLWxpc3QgcmVzdWx0Ci0gICAgcmVz
ID0gcG0uaG9vay5oZWxsbyhhcmc9MykKLSAgICBhc3NlcnQgcmVzID09IDIKLQotCi1kZWYgdGVz
dF9maXJzdHJlc3VsdF9mb3JjZV9yZXN1bHQocG0pOgotICAgICIiIlZlcmlmeSBmb3JjaW5nIGEg
cmVzdWx0IGluIGEgd3JhcHBlci4KLSAgICAiIiIKLSAgICBjbGFzcyBBcGkob2JqZWN0KToKLSAg
ICAgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi0gICAgICAgIGRlZiBoZWxsbyhzZWxm
LCBhcmcpOgotICAgICAgICAgICAgImFwaSBob29rIDEiCi0KLSAgICBwbS5hZGRfaG9va3NwZWNz
KEFwaSkKLQotICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0KToKLSAgICAgICAgQGhvb2tpbXBsCi0g
ICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgotICAgICAgICAgICAgcmV0dXJuIGFyZyArIDEK
LQotICAgIGNsYXNzIFBsdWdpbjIob2JqZWN0KToKLSAgICAgICAgQGhvb2tpbXBsKGhvb2t3cmFw
cGVyPVRydWUpCi0gICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgotICAgICAgICAgICAgYXNz
ZXJ0IGFyZyA9PSAzCi0gICAgICAgICAgICBvdXRjb21lID0geWllbGQKLSAgICAgICAgICAgIGFz
c2VydCBvdXRjb21lLmdldF9yZXN1bHQoKSA9PSA0Ci0gICAgICAgICAgICBvdXRjb21lLmZvcmNl
X3Jlc3VsdCgwKQotCi0gICAgY2xhc3MgUGx1Z2luMyhvYmplY3QpOgotICAgICAgICBAaG9va2lt
cGwKLSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICByZXR1cm4gTm9u
ZQotCi0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKQotICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjIo
KSkgICMgd3JhcHBlcgotICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjMoKSkgICMgaWdub3JlZCBzaW5j
ZSByZXR1cm5zIE5vbmUKLSAgICByZXMgPSBwbS5ob29rLmhlbGxvKGFyZz0zKQotICAgIGFzc2Vy
dCByZXMgPT0gMCAgIyB0aGlzIHJlc3VsdCBpcyBmb3JjZWQgYW5kIG5vdCBhIGxpc3QKLQotCi1k
ZWYgdGVzdF9maXJzdHJlc3VsdF9yZXR1cm5zX25vbmUocG0pOgotICAgICIiIklmIE5vbmUgcmVz
dWx0cyBhcmUgcmV0dXJuZWQgYnkgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbnMgZW5zdXJlCi0g
ICAgdGhlIG11bHRpLWNhbGwgbG9vcCByZXR1cm5zIGEgTm9uZSB2YWx1ZS4KLSAgICAiIiIKLSAg
ICBjbGFzcyBBcGkob2JqZWN0KToKLSAgICAgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUp
Ci0gICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgotICAgICAgICAgICAgImFwaSBob29rIDEi
Ci0KLSAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKLQotICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0
KToKLSAgICAgICAgQGhvb2tpbXBsCi0gICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgotICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjEoKSkKLSAgICBy
ZXMgPSBwbS5ob29rLmhlbGxvKGFyZz0zKQotICAgIGFzc2VydCByZXMgaXMgTm9uZQotCi0KLWRl
ZiB0ZXN0X2ZpcnN0cmVzdWx0X25vX3BsdWdpbihwbSk6Ci0gICAgIiIiSWYgbm8gaW1wbGVtZW50
YXRpb25zL3BsdWdpbnMgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQgZm9yIGEgZmlyc3RyZXN1bHQKLSAg
ICBob29rIHRoZSBtdWx0aS1jYWxsIGxvb3Agc2hvdWxkIHJldHVybiBhIE5vbmUgdmFsdWUuCi0g
ICAgIiIiCi0gICAgY2xhc3MgQXBpKG9iamVjdCk6Ci0gICAgICAgIEBob29rc3BlYyhmaXJzdHJl
c3VsdD1UcnVlKQotICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKLSAgICAgICAgICAgICJh
cGkgaG9vayAxIgotCi0gICAgcG0uYWRkX2hvb2tzcGVjcyhBcGkpCi0gICAgcmVzID0gcG0uaG9v
ay5oZWxsbyhhcmc9MykKLSAgICBhc3NlcnQgcmVzIGlzIE5vbmUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L3Rlc3RpbmcvdGVzdF9pbnZvY2F0aW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rpbmcv
dGVzdF9pbnZvY2F0aW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmVjNjNjZmM3ZGM0MjNmYTA1NGU0NzUx
NTA5ZGYwOTFlNjcxNDdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90
ZXN0X2ludm9jYXRpb25zLnB5CkBAIC0wLDAgKzEsMjE2IEBACitpbXBvcnQgcHl0ZXN0Citmcm9t
IHBsdWdneSBpbXBvcnQgUGx1Z2luVmFsaWRhdGlvbkVycm9yLCBIb29raW1wbE1hcmtlciwgSG9v
a3NwZWNNYXJrZXIKKworCitob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJleGFtcGxlIikKK2hv
b2tpbXBsID0gSG9va2ltcGxNYXJrZXIoImV4YW1wbGUiKQorCisKK2RlZiB0ZXN0X2FyZ21pc21h
dGNoKHBtKToKKyAgICBjbGFzcyBBcGkob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjCisgICAg
ICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgImFwaSBob29rIDEiCisKKyAg
ICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKKworICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgorICAg
ICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZ3dyb25nKToKKyAgICAg
ICAgICAgIHBhc3MKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhQbHVnaW5WYWxpZGF0aW9uRXJy
b3IpIGFzIGV4YzoKKyAgICAgICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCisKKyAgICBhc3NlcnQg
ImFyZ3dyb25nIiBpbiBzdHIoZXhjLnZhbHVlKQorCisKK2RlZiB0ZXN0X29ubHlfa3dhcmdzKHBt
KToKKyAgICBjbGFzcyBBcGkob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRl
ZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgImFwaSBob29rIDEiCisKKyAgICBwbS5h
ZGRfaG9va3NwZWNzKEFwaSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBl
eGM6CisgICAgICAgIHBtLmhvb2suaGVsbG8oMykKKworICAgIGNvbXByZWhlbnNpYmxlID0gImhv
b2sgY2FsbGluZyBzdXBwb3J0cyBvbmx5IGtleXdvcmQgYXJndW1lbnRzIgorICAgIGFzc2VydCBj
b21wcmVoZW5zaWJsZSBpbiBzdHIoZXhjLnZhbHVlKQorCisKK2RlZiB0ZXN0X29wdF9pbl9hcmdz
KHBtKToKKyAgICAiIiJWZXJmaXkgdGhhdCB0d28gaG9va2ltcGxzIHdpdGggbXV0ZXggYXJncyBj
YW4gc2VydmUKKyAgICB1bmRlciB0aGUgc2FtZSBzcGVjLgorICAgICIiIgorCisgICAgY2xhc3Mg
QXBpKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYworICAgICAgICBkZWYgaGVsbG8oc2VsZiwg
YXJnMSwgYXJnMiwgY29tbW9uX2FyZyk6CisgICAgICAgICAgICAiYXBpIGhvb2sgMSIKKworICAg
IGNsYXNzIFBsdWdpbjEob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBo
ZWxsbyhzZWxmLCBhcmcxLCBjb21tb25fYXJnKToKKyAgICAgICAgICAgIHJldHVybiBhcmcxICsg
Y29tbW9uX2FyZworCisgICAgY2xhc3MgUGx1Z2luMihvYmplY3QpOgorICAgICAgICBAaG9va2lt
cGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZzIsIGNvbW1vbl9hcmcpOgorICAgICAgICAg
ICAgcmV0dXJuIGFyZzIgKyBjb21tb25fYXJnCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkK
KyAgICBwbS5yZWdpc3RlcihQbHVnaW4xKCkpCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMigpKQor
CisgICAgcmVzdWx0cyA9IHBtLmhvb2suaGVsbG8oYXJnMT0xLCBhcmcyPTIsIGNvbW1vbl9hcmc9
MCkKKyAgICBhc3NlcnQgcmVzdWx0cyA9PSBbMiwgMV0KKworCitkZWYgdGVzdF9jYWxsX29yZGVy
KHBtKToKKyAgICBjbGFzcyBBcGkob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAg
IGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgImFwaSBob29rIDEiCisKKyAgICBw
bS5hZGRfaG9va3NwZWNzKEFwaSkKKworICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0KToKKyAgICAg
ICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAg
cmV0dXJuIDEKKworICAgIGNsYXNzIFBsdWdpbjIob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBs
CisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIDIKKwor
ICAgIGNsYXNzIFBsdWdpbjMob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRl
ZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIDMKKworICAgIGNsYXNzIFBs
dWdpbjQob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAg
ICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAwCisg
ICAgICAgICAgICBvdXRjb21lID0geWllbGQKKyAgICAgICAgICAgIGFzc2VydCBvdXRjb21lLmdl
dF9yZXN1bHQoKSA9PSBbMywgMiwgMV0KKworICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjEoKSkKKyAg
ICBwbS5yZWdpc3RlcihQbHVnaW4yKCkpCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMygpKQorICAg
IHBtLnJlZ2lzdGVyKFBsdWdpbjQoKSkgICMgaG9va3dyYXBwZXIgc2hvdWxkIGdldCBzYW1lIGxp
c3QgcmVzdWx0CisgICAgcmVzID0gcG0uaG9vay5oZWxsbyhhcmc9MCkKKyAgICBhc3NlcnQgcmVz
ID09IFszLCAyLCAxXQorCisKK2RlZiB0ZXN0X2ZpcnN0cmVzdWx0X2RlZmluaXRpb24ocG0pOgor
ICAgIGNsYXNzIEFwaShvYmplY3QpOgorICAgICAgICBAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1
ZSkKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICAiYXBpIGhvb2sg
MSIKKworICAgIHBtLmFkZF9ob29rc3BlY3MoQXBpKQorCisgICAgY2xhc3MgUGx1Z2luMShvYmpl
Y3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6Cisg
ICAgICAgICAgICByZXR1cm4gYXJnICsgMQorCisgICAgY2xhc3MgUGx1Z2luMihvYmplY3QpOgor
ICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAg
ICAgICByZXR1cm4gYXJnIC0gMQorCisgICAgY2xhc3MgUGx1Z2luMyhvYmplY3QpOgorICAgICAg
ICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICBy
ZXR1cm4gTm9uZQorCisgICAgY2xhc3MgUGx1Z2luNChvYmplY3QpOgorICAgICAgICBAaG9va2lt
cGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAg
ICAgICAgICBhc3NlcnQgYXJnID09IDMKKyAgICAgICAgICAgIG91dGNvbWUgPSB5aWVsZAorICAg
ICAgICAgICAgYXNzZXJ0IG91dGNvbWUuZ2V0X3Jlc3VsdCgpID09IDIKKworICAgIHBtLnJlZ2lz
dGVyKFBsdWdpbjEoKSkgICMgZGlzY2FyZGVkIC0gbm90IHRoZSBsYXN0IHJlZ2lzdGVyZWQgcGx1
Z2luCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMigpKSAgIyB1c2VkIGFzIHJlc3VsdAorICAgIHBt
LnJlZ2lzdGVyKFBsdWdpbjMoKSkgICMgTm9uZSByZXN1bHQgaXMgaWdub3JlZAorICAgIHBtLnJl
Z2lzdGVyKFBsdWdpbjQoKSkgICMgaG9va3dyYXBwZXIgc2hvdWxkIGdldCBzYW1lIG5vbi1saXN0
IHJlc3VsdAorICAgIHJlcyA9IHBtLmhvb2suaGVsbG8oYXJnPTMpCisgICAgYXNzZXJ0IHJlcyA9
PSAyCisKKworZGVmIHRlc3RfZmlyc3RyZXN1bHRfZm9yY2VfcmVzdWx0KHBtKToKKyAgICAiIiJW
ZXJpZnkgZm9yY2luZyBhIHJlc3VsdCBpbiBhIHdyYXBwZXIuCisgICAgIiIiCisKKyAgICBjbGFz
cyBBcGkob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCisgICAg
ICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgImFwaSBob29rIDEiCisKKyAg
ICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKKworICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0KToKKyAg
ICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAg
ICAgcmV0dXJuIGFyZyArIDEKKworICAgIGNsYXNzIFBsdWdpbjIob2JqZWN0KToKKyAgICAgICAg
QGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcp
OgorICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAzCisgICAgICAgICAgICBvdXRjb21lID0geWll
bGQKKyAgICAgICAgICAgIGFzc2VydCBvdXRjb21lLmdldF9yZXN1bHQoKSA9PSA0CisgICAgICAg
ICAgICBvdXRjb21lLmZvcmNlX3Jlc3VsdCgwKQorCisgICAgY2xhc3MgUGx1Z2luMyhvYmplY3Qp
OgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAg
ICAgICAgICByZXR1cm4gTm9uZQorCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKQorICAgIHBt
LnJlZ2lzdGVyKFBsdWdpbjIoKSkgICMgd3JhcHBlcgorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjMo
KSkgICMgaWdub3JlZCBzaW5jZSByZXR1cm5zIE5vbmUKKyAgICByZXMgPSBwbS5ob29rLmhlbGxv
KGFyZz0zKQorICAgIGFzc2VydCByZXMgPT0gMCAgIyB0aGlzIHJlc3VsdCBpcyBmb3JjZWQgYW5k
IG5vdCBhIGxpc3QKKworCitkZWYgdGVzdF9maXJzdHJlc3VsdF9yZXR1cm5zX25vbmUocG0pOgor
ICAgICIiIklmIE5vbmUgcmVzdWx0cyBhcmUgcmV0dXJuZWQgYnkgdW5kZXJseWluZyBpbXBsZW1l
bnRhdGlvbnMgZW5zdXJlCisgICAgdGhlIG11bHRpLWNhbGwgbG9vcCByZXR1cm5zIGEgTm9uZSB2
YWx1ZS4KKyAgICAiIiIKKworICAgIGNsYXNzIEFwaShvYmplY3QpOgorICAgICAgICBAaG9va3Nw
ZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAg
ICAgICAgICAiYXBpIGhvb2sgMSIKKworICAgIHBtLmFkZF9ob29rc3BlY3MoQXBpKQorCisgICAg
Y2xhc3MgUGx1Z2luMShvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhl
bGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgcG0ucmVnaXN0
ZXIoUGx1Z2luMSgpKQorICAgIHJlcyA9IHBtLmhvb2suaGVsbG8oYXJnPTMpCisgICAgYXNzZXJ0
IHJlcyBpcyBOb25lCisKKworZGVmIHRlc3RfZmlyc3RyZXN1bHRfbm9fcGx1Z2luKHBtKToKKyAg
ICAiIiJJZiBubyBpbXBsZW1lbnRhdGlvbnMvcGx1Z2lucyBoYXZlIGJlZW4gcmVnaXN0ZXJlZCBm
b3IgYSBmaXJzdHJlc3VsdAorICAgIGhvb2sgdGhlIG11bHRpLWNhbGwgbG9vcCBzaG91bGQgcmV0
dXJuIGEgTm9uZSB2YWx1ZS4KKyAgICAiIiIKKworICAgIGNsYXNzIEFwaShvYmplY3QpOgorICAg
ICAgICBAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYs
IGFyZyk6CisgICAgICAgICAgICAiYXBpIGhvb2sgMSIKKworICAgIHBtLmFkZF9ob29rc3BlY3Mo
QXBpKQorICAgIHJlcyA9IHBtLmhvb2suaGVsbG8oYXJnPTMpCisgICAgYXNzZXJ0IHJlcyBpcyBO
b25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfbWV0aG9kX29yZGVyaW5n
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X21ldGhvZF9vcmRlcmluZy5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTU4NGEwYWU1YTgyNDRmMWQwNjNlNzNiOWIyMzk3Mjk5
M2U2MTFmYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfbWV0aG9kX29yZGVyaW5nLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMzIyICswLDAgQEAKLWltcG9ydCBweXRlc3QKLQotCi1pbXBvcnQgc3lzCi1pbXBvcnQg
dHlwZXMKLQotZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1hbmFnZXIsIEhvb2tJbXBsLCBIb29r
aW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIKLQotaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigi
ZXhhbXBsZSIpCi1ob29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJleGFtcGxlIikKLQotCi1AcHl0
ZXN0LmZpeHR1cmUKLWRlZiBoYyhwbSk6Ci0gICAgY2xhc3MgSG9va3Mob2JqZWN0KToKLSAgICAg
ICAgQGhvb2tzcGVjCi0gICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6Ci0gICAgICAg
ICAgICBwYXNzCi0gICAgcG0uYWRkX2hvb2tzcGVjcyhIb29rcykKLSAgICByZXR1cm4gcG0uaG9v
ay5oZV9tZXRob2QxCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgYWRkbWV0aChoYyk6Ci0gICAg
ZGVmIGFkZG1ldGgodHJ5Zmlyc3Q9RmFsc2UsIHRyeWxhc3Q9RmFsc2UsIGhvb2t3cmFwcGVyPUZh
bHNlKToKLSAgICAgICAgZGVmIHdyYXAoZnVuYyk6Ci0gICAgICAgICAgICBob29raW1wbCh0cnlm
aXJzdD10cnlmaXJzdCwgdHJ5bGFzdD10cnlsYXN0LAotICAgICAgICAgICAgICAgICAgICAgaG9v
a3dyYXBwZXI9aG9va3dyYXBwZXIpKGZ1bmMpCi0gICAgICAgICAgICBoYy5fYWRkX2hvb2tpbXBs
KEhvb2tJbXBsKE5vbmUsICI8dGVtcD4iLCBmdW5jLCBmdW5jLmV4YW1wbGVfaW1wbCkpCi0gICAg
ICAgICAgICByZXR1cm4gZnVuYwotICAgICAgICByZXR1cm4gd3JhcAotICAgIHJldHVybiBhZGRt
ZXRoCi0KLQotZGVmIGZ1bmNzKGhvb2ttZXRob2RzKToKLSAgICByZXR1cm4gW2hvb2ttZXRob2Qu
ZnVuY3Rpb24gZm9yIGhvb2ttZXRob2QgaW4gaG9va21ldGhvZHNdCi0KLQotZGVmIHRlc3RfYWRk
aW5nX25vbndyYXBwZXJzKGhjLCBhZGRtZXRoKToKLSAgICBAYWRkbWV0aCgpCi0gICAgZGVmIGhl
X21ldGhvZDEoKToKLSAgICAgICAgcGFzcwotCi0gICAgQGFkZG1ldGgoKQotICAgIGRlZiBoZV9t
ZXRob2QyKCk6Ci0gICAgICAgIHBhc3MKLQotICAgIEBhZGRtZXRoKCkKLSAgICBkZWYgaGVfbWV0
aG9kMygpOgotICAgICAgICBwYXNzCi0gICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykg
PT0gW2hlX21ldGhvZDEsIGhlX21ldGhvZDIsIGhlX21ldGhvZDNdCi0KLQotZGVmIHRlc3RfYWRk
aW5nX25vbndyYXBwZXJzX3RyeWxhc3QoaGMsIGFkZG1ldGgpOgotICAgIEBhZGRtZXRoKCkKLSAg
ICBkZWYgaGVfbWV0aG9kMV9taWRkbGUoKToKLSAgICAgICAgcGFzcwotCi0gICAgQGFkZG1ldGgo
dHJ5bGFzdD1UcnVlKQotICAgIGRlZiBoZV9tZXRob2QxKCk6Ci0gICAgICAgIHBhc3MKLQotICAg
IEBhZGRtZXRoKCkKLSAgICBkZWYgaGVfbWV0aG9kMV9iKCk6Ci0gICAgICAgIHBhc3MKLSAgICBh
c3NlcnQgZnVuY3MoaGMuX25vbndyYXBwZXJzKSA9PSBbaGVfbWV0aG9kMSwgaGVfbWV0aG9kMV9t
aWRkbGUsIGhlX21ldGhvZDFfYl0KLQotCi1kZWYgdGVzdF9hZGRpbmdfbm9ud3JhcHBlcnNfdHJ5
bGFzdDMoaGMsIGFkZG1ldGgpOgotICAgIEBhZGRtZXRoKCkKLSAgICBkZWYgaGVfbWV0aG9kMV9h
KCk6Ci0gICAgICAgIHBhc3MKLQotICAgIEBhZGRtZXRoKHRyeWxhc3Q9VHJ1ZSkKLSAgICBkZWYg
aGVfbWV0aG9kMV9iKCk6Ci0gICAgICAgIHBhc3MKLQotICAgIEBhZGRtZXRoKCkKLSAgICBkZWYg
aGVfbWV0aG9kMV9jKCk6Ci0gICAgICAgIHBhc3MKLQotICAgIEBhZGRtZXRoKHRyeWxhc3Q9VHJ1
ZSkKLSAgICBkZWYgaGVfbWV0aG9kMV9kKCk6Ci0gICAgICAgIHBhc3MKLSAgICBhc3NlcnQgZnVu
Y3MoaGMuX25vbndyYXBwZXJzKSA9PSBcCi0gICAgICAgIFtoZV9tZXRob2QxX2QsIGhlX21ldGhv
ZDFfYiwgaGVfbWV0aG9kMV9hLCBoZV9tZXRob2QxX2NdCi0KLQotZGVmIHRlc3RfYWRkaW5nX25v
bndyYXBwZXJzX3RyeWxhc3QyKGhjLCBhZGRtZXRoKToKLSAgICBAYWRkbWV0aCgpCi0gICAgZGVm
IGhlX21ldGhvZDFfbWlkZGxlKCk6Ci0gICAgICAgIHBhc3MKLQotICAgIEBhZGRtZXRoKCkKLSAg
ICBkZWYgaGVfbWV0aG9kMV9iKCk6Ci0gICAgICAgIHBhc3MKLQotICAgIEBhZGRtZXRoKHRyeWxh
c3Q9VHJ1ZSkKLSAgICBkZWYgaGVfbWV0aG9kMSgpOgotICAgICAgICBwYXNzCi0gICAgYXNzZXJ0
IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gXAotICAgICAgICBbaGVfbWV0aG9kMSwgaGVfbWV0
aG9kMV9taWRkbGUsIGhlX21ldGhvZDFfYl0KLQotCi1kZWYgdGVzdF9hZGRpbmdfbm9ud3JhcHBl
cnNfdHJ5Zmlyc3QoaGMsIGFkZG1ldGgpOgotICAgIEBhZGRtZXRoKHRyeWZpcnN0PVRydWUpCi0g
ICAgZGVmIGhlX21ldGhvZDEoKToKLSAgICAgICAgcGFzcwotCi0gICAgQGFkZG1ldGgoKQotICAg
IGRlZiBoZV9tZXRob2QxX21pZGRsZSgpOgotICAgICAgICBwYXNzCi0KLSAgICBAYWRkbWV0aCgp
Ci0gICAgZGVmIGhlX21ldGhvZDFfYigpOgotICAgICAgICBwYXNzCi0gICAgYXNzZXJ0IGZ1bmNz
KGhjLl9ub253cmFwcGVycykgPT0gWwotICAgICAgICBoZV9tZXRob2QxX21pZGRsZSwgaGVfbWV0
aG9kMV9iLCBoZV9tZXRob2QxXQotCi0KLWRlZiB0ZXN0X2FkZGluZ193cmFwcGVyc19vcmRlcmlu
ZyhoYywgYWRkbWV0aCk6Ci0gICAgQGFkZG1ldGgoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYg
aGVfbWV0aG9kMSgpOgotICAgICAgICBwYXNzCi0KLSAgICBAYWRkbWV0aCgpCi0gICAgZGVmIGhl
X21ldGhvZDFfbWlkZGxlKCk6Ci0gICAgICAgIHBhc3MKLQotICAgIEBhZGRtZXRoKGhvb2t3cmFw
cGVyPVRydWUpCi0gICAgZGVmIGhlX21ldGhvZDMoKToKLSAgICAgICAgcGFzcwotCi0gICAgYXNz
ZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gW2hlX21ldGhvZDFfbWlkZGxlXQotICAgIGFz
c2VydCBmdW5jcyhoYy5fd3JhcHBlcnMpID09IFtoZV9tZXRob2QxLCBoZV9tZXRob2QzXQotCi0K
LWRlZiB0ZXN0X2FkZGluZ193cmFwcGVyc19vcmRlcmluZ190cnlmaXJzdChoYywgYWRkbWV0aCk6
Ci0gICAgQGFkZG1ldGgoaG9va3dyYXBwZXI9VHJ1ZSwgdHJ5Zmlyc3Q9VHJ1ZSkKLSAgICBkZWYg
aGVfbWV0aG9kMSgpOgotICAgICAgICBwYXNzCi0KLSAgICBAYWRkbWV0aChob29rd3JhcHBlcj1U
cnVlKQotICAgIGRlZiBoZV9tZXRob2QyKCk6Ci0gICAgICAgIHBhc3MKLQotICAgIGFzc2VydCBo
Yy5fbm9ud3JhcHBlcnMgPT0gW10KLSAgICBhc3NlcnQgZnVuY3MoaGMuX3dyYXBwZXJzKSA9PSBb
aGVfbWV0aG9kMiwgaGVfbWV0aG9kMV0KLQotCi1kZWYgdGVzdF9ob29rc3BlYyhwbSk6Ci0gICAg
Y2xhc3MgSG9va1NwZWMob2JqZWN0KToKLSAgICAgICAgQGhvb2tzcGVjKCkKLSAgICAgICAgZGVm
IGhlX215aG9vazEoYXJnMSk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgQGhvb2tzcGVj
KGZpcnN0cmVzdWx0PVRydWUpCi0gICAgICAgIGRlZiBoZV9teWhvb2syKGFyZzEpOgotICAgICAg
ICAgICAgcGFzcwotCi0gICAgICAgIEBob29rc3BlYyhmaXJzdHJlc3VsdD1GYWxzZSkKLSAgICAg
ICAgZGVmIGhlX215aG9vazMoYXJnMSk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICBwbS5hZGRf
aG9va3NwZWNzKEhvb2tTcGVjKQotICAgIGFzc2VydCBub3QgcG0uaG9vay5oZV9teWhvb2sxLnNw
ZWNfb3B0c1siZmlyc3RyZXN1bHQiXQotICAgIGFzc2VydCBwbS5ob29rLmhlX215aG9vazIuc3Bl
Y19vcHRzWyJmaXJzdHJlc3VsdCJdCi0gICAgYXNzZXJ0IG5vdCBwbS5ob29rLmhlX215aG9vazMu
c3BlY19vcHRzWyJmaXJzdHJlc3VsdCJdCi0KLQotQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdu
YW1lJywgWyJob29rd3JhcHBlciIsICJvcHRpb25hbGhvb2siLCAidHJ5Zmlyc3QiLCAidHJ5bGFz
dCJdKQotQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd2YWwnLCBbVHJ1ZSwgRmFsc2VdKQotZGVm
IHRlc3RfaG9va2ltcGwobmFtZSwgdmFsKToKLSAgICBAaG9va2ltcGwoKip7bmFtZTogdmFsfSkK
LSAgICBkZWYgaGVfbXlob29rMShhcmcxKToKLSAgICAgICAgcGFzcwotICAgIGlmIHZhbDoKLSAg
ICAgICAgYXNzZXJ0IGhlX215aG9vazEuZXhhbXBsZV9pbXBsLmdldChuYW1lKQotICAgIGVsc2U6
Ci0gICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihoZV9teWhvb2sxLCBuYW1lKQotCi0KLWRlZiB0
ZXN0X2xvYWRfc2V0dXB0b29sc19pbnN0YW50aWF0aW9uKG1vbmtleXBhdGNoLCBwbSk6Ci0gICAg
cGtnX3Jlc291cmNlcyA9IHB5dGVzdC5pbXBvcnRvcnNraXAoInBrZ19yZXNvdXJjZXMiKQotCi0g
ICAgZGVmIG15X2l0ZXIobmFtZSk6Ci0gICAgICAgIGFzc2VydCBuYW1lID09ICJoZWxsbyIKLQot
ICAgICAgICBjbGFzcyBFbnRyeVBvaW50KG9iamVjdCk6Ci0gICAgICAgICAgICBuYW1lID0gIm15
bmFtZSIKLSAgICAgICAgICAgIGRpc3QgPSBOb25lCi0KLSAgICAgICAgICAgIGRlZiBsb2FkKHNl
bGYpOgotICAgICAgICAgICAgICAgIGNsYXNzIFBzZXVkb1BsdWdpbihvYmplY3QpOgotICAgICAg
ICAgICAgICAgICAgICB4ID0gNDIKLSAgICAgICAgICAgICAgICByZXR1cm4gUHNldWRvUGx1Z2lu
KCkKLQotICAgICAgICByZXR1cm4gaXRlcihbRW50cnlQb2ludCgpXSkKLQotICAgIG1vbmtleXBh
dGNoLnNldGF0dHIocGtnX3Jlc291cmNlcywgJ2l0ZXJfZW50cnlfcG9pbnRzJywgbXlfaXRlcikK
LSAgICBudW0gPSBwbS5sb2FkX3NldHVwdG9vbHNfZW50cnlwb2ludHMoImhlbGxvIikKLSAgICBh
c3NlcnQgbnVtID09IDEKLSAgICBwbHVnaW4gPSBwbS5nZXRfcGx1Z2luKCJteW5hbWUiKQotICAg
IGFzc2VydCBwbHVnaW4ueCA9PSA0MgotICAgIGFzc2VydCBwbS5saXN0X3BsdWdpbl9kaXN0aW5m
bygpID09IFsocGx1Z2luLCBOb25lKV0KLQotCi1kZWYgdGVzdF9sb2FkX3NldHVwdG9vbHNfbm90
X2luc3RhbGxlZChtb25rZXlwYXRjaCwgcG0pOgotICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oCi0g
ICAgICAgIHN5cy5tb2R1bGVzLCAncGtnX3Jlc291cmNlcycsCi0gICAgICAgIHR5cGVzLk1vZHVs
ZVR5cGUoInBrZ19yZXNvdXJjZXMiKSkKLQotICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbXBvcnRF
cnJvcik6Ci0gICAgICAgIHBtLmxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50cygicXdlIikKLQot
Ci1kZWYgdGVzdF9hZGRfdHJhY2VmdW5jcyhoZV9wbSk6Ci0gICAgb3V0ID0gW10KLQotICAgIGNs
YXNzIGFwaTEob2JqZWN0KToKLSAgICAgICAgQGhvb2tpbXBsCi0gICAgICAgIGRlZiBoZV9tZXRo
b2QxKHNlbGYpOgotICAgICAgICAgICAgb3V0LmFwcGVuZCgiaGVfbWV0aG9kMS1hcGkxIikKLQot
ICAgIGNsYXNzIGFwaTIob2JqZWN0KToKLSAgICAgICAgQGhvb2tpbXBsCi0gICAgICAgIGRlZiBo
ZV9tZXRob2QxKHNlbGYpOgotICAgICAgICAgICAgb3V0LmFwcGVuZCgiaGVfbWV0aG9kMS1hcGky
IikKLQotICAgIGhlX3BtLnJlZ2lzdGVyKGFwaTEoKSkKLSAgICBoZV9wbS5yZWdpc3RlcihhcGky
KCkpCi0KLSAgICBkZWYgYmVmb3JlKGhvb2tfbmFtZSwgaG9va19pbXBscywga3dhcmdzKToKLSAg
ICAgICAgb3V0LmFwcGVuZCgoaG9va19uYW1lLCBsaXN0KGhvb2tfaW1wbHMpLCBrd2FyZ3MpKQot
Ci0gICAgZGVmIGFmdGVyKG91dGNvbWUsIGhvb2tfbmFtZSwgaG9va19pbXBscywga3dhcmdzKToK
LSAgICAgICAgb3V0LmFwcGVuZCgob3V0Y29tZSwgaG9va19uYW1lLCBsaXN0KGhvb2tfaW1wbHMp
LCBrd2FyZ3MpKQotCi0gICAgdW5kbyA9IGhlX3BtLmFkZF9ob29rY2FsbF9tb25pdG9yaW5nKGJl
Zm9yZSwgYWZ0ZXIpCi0KLSAgICBoZV9wbS5ob29rLmhlX21ldGhvZDEoYXJnPTEpCi0gICAgYXNz
ZXJ0IGxlbihvdXQpID09IDQKLSAgICBhc3NlcnQgb3V0WzBdWzBdID09ICJoZV9tZXRob2QxIgot
ICAgIGFzc2VydCBsZW4ob3V0WzBdWzFdKSA9PSAyCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2Uob3V0
WzBdWzJdLCBkaWN0KQotICAgIGFzc2VydCBvdXRbMV0gPT0gImhlX21ldGhvZDEtYXBpMiIKLSAg
ICBhc3NlcnQgb3V0WzJdID09ICJoZV9tZXRob2QxLWFwaTEiCi0gICAgYXNzZXJ0IGxlbihvdXRb
M10pID09IDQKLSAgICBhc3NlcnQgb3V0WzNdWzFdID09IG91dFswXVswXQotCi0gICAgdW5kbygp
Ci0gICAgaGVfcG0uaG9vay5oZV9tZXRob2QxKGFyZz0xKQotICAgIGFzc2VydCBsZW4ob3V0KSA9
PSA0ICsgMgotCi0KLWRlZiB0ZXN0X2hvb2tfdHJhY2luZyhoZV9wbSk6Ci0gICAgc2F2ZWluZGVu
dCA9IFtdCi0KLSAgICBjbGFzcyBhcGkxKG9iamVjdCk6Ci0gICAgICAgIEBob29raW1wbAotICAg
ICAgICBkZWYgaGVfbWV0aG9kMShzZWxmKToKLSAgICAgICAgICAgIHNhdmVpbmRlbnQuYXBwZW5k
KGhlX3BtLnRyYWNlLnJvb3QuaW5kZW50KQotCi0gICAgY2xhc3MgYXBpMihvYmplY3QpOgotICAg
ICAgICBAaG9va2ltcGwKLSAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZik6Ci0gICAgICAgICAg
ICBzYXZlaW5kZW50LmFwcGVuZChoZV9wbS50cmFjZS5yb290LmluZGVudCkKLSAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoKQotCi0gICAgaGVfcG0ucmVnaXN0ZXIoYXBpMSgpKQotICAgIG91
dCA9IFtdCi0gICAgaGVfcG0udHJhY2Uucm9vdC5zZXR3cml0ZXIob3V0LmFwcGVuZCkKLSAgICB1
bmRvID0gaGVfcG0uZW5hYmxlX3RyYWNpbmcoKQotICAgIHRyeToKLSAgICAgICAgaW5kZW50ID0g
aGVfcG0udHJhY2Uucm9vdC5pbmRlbnQKLSAgICAgICAgaGVfcG0uaG9vay5oZV9tZXRob2QxKGFy
Zz0xKQotICAgICAgICBhc3NlcnQgaW5kZW50ID09IGhlX3BtLnRyYWNlLnJvb3QuaW5kZW50Ci0g
ICAgICAgIGFzc2VydCBsZW4ob3V0KSA9PSAyCi0gICAgICAgIGFzc2VydCAnaGVfbWV0aG9kMScg
aW4gb3V0WzBdCi0gICAgICAgIGFzc2VydCAnZmluaXNoJyBpbiBvdXRbMV0KLQotICAgICAgICBv
dXRbOl0gPSBbXQotICAgICAgICBoZV9wbS5yZWdpc3RlcihhcGkyKCkpCi0KLSAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgaGVfcG0uaG9vay5oZV9t
ZXRob2QxKGFyZz0xKQotICAgICAgICBhc3NlcnQgaGVfcG0udHJhY2Uucm9vdC5pbmRlbnQgPT0g
aW5kZW50Ci0gICAgICAgIGFzc2VydCBzYXZlaW5kZW50WzBdID4gaW5kZW50Ci0gICAgZmluYWxs
eToKLSAgICAgICAgdW5kbygpCi0KLQotQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdpbmNsdWRl
X2hvb2tzcGVjJywgW1RydWUsIEZhbHNlXSkKLWRlZiB0ZXN0X3ByZWZpeF9ob29raW1wbChpbmNs
dWRlX2hvb2tzcGVjKToKLSAgICBwbSA9IFBsdWdpbk1hbmFnZXIoaG9va3NwZWMucHJvamVjdF9u
YW1lLCAiaGVsbG9fIikKLQotICAgIGlmIGluY2x1ZGVfaG9va3NwZWM6Ci0gICAgICAgIGNsYXNz
IEhvb2tTcGVjKG9iamVjdCk6Ci0gICAgICAgICAgICBAaG9va3NwZWMKLSAgICAgICAgICAgIGRl
ZiBoZWxsb19teWhvb2soc2VsZiwgYXJnMSk6Ci0gICAgICAgICAgICAgICAgIiIiIGFkZCB0byBh
cmcxICIiIgotCi0gICAgICAgIHBtLmFkZF9ob29rc3BlY3MoSG9va1NwZWMpCi0KLSAgICBjbGFz
cyBQbHVnaW4ob2JqZWN0KToKLSAgICAgICAgZGVmIGhlbGxvX215aG9vayhzZWxmLCBhcmcxKToK
LSAgICAgICAgICAgIHJldHVybiBhcmcxICsgMQotCi0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkp
Ci0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCi0gICAgcmVzdWx0cyA9IHBtLmhvb2suaGVsbG9f
bXlob29rKGFyZzE9MTcpCi0gICAgYXNzZXJ0IHJlc3VsdHMgPT0gWzE4LCAxOF0KLQotCi1kZWYg
dGVzdF9wcmVmaXhfaG9va2ltcGxfZG9udG1hdGNoX21vZHVsZSgpOgotICAgIHBtID0gUGx1Z2lu
TWFuYWdlcihob29rc3BlYy5wcm9qZWN0X25hbWUsICJoZWxsb18iKQotCi0gICAgY2xhc3MgQmFk
UGx1Z2luKG9iamVjdCk6Ci0gICAgICAgIGhlbGxvX21vZHVsZSA9IF9faW1wb3J0X18oJ2VtYWls
JykKLQotICAgIHBtLnJlZ2lzdGVyKEJhZFBsdWdpbigpKQotICAgIHBtLmNoZWNrX3BlbmRpbmco
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X211bHRpY2FsbC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9tdWx0aWNhbGwucHkKaW5kZXggODYwYTIwOWI2NjkwZTYx
MzhlNzdlODc2ODc3ZDI5YTBiMzY3YjNlNC4uZWFmNTM0YTAxNjZhNDJlNGY3MjA1YmM4M2MwZjBi
ZWJhMmU2ODgxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X211bHRpY2Fs
bC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfbXVsdGljYWxsLnB5CkBAIC0xLDMw
ICsxLDIwIEBACiBpbXBvcnQgcHl0ZXN0Ci0KLWZyb20gcGx1Z2d5IGltcG9ydCBfbXVsdGljYWxs
LCBfbGVnYWN5bXVsdGljYWxsLCBIb29rSW1wbCwgSG9va0NhbGxFcnJvcgotZnJvbSBwbHVnZ3ku
Y2FsbGVycyBpbXBvcnQgX0xlZ2FjeU11bHRpQ2FsbAotZnJvbSBwbHVnZ3kgaW1wb3J0IEhvb2tz
cGVjTWFya2VyLCBIb29raW1wbE1hcmtlcgorZnJvbSBwbHVnZ3kgaW1wb3J0IEhvb2tDYWxsRXJy
b3IsIEhvb2tzcGVjTWFya2VyLCBIb29raW1wbE1hcmtlcgorZnJvbSBwbHVnZ3kuaG9va3MgaW1w
b3J0IEhvb2tJbXBsCitmcm9tIHBsdWdneS5jYWxsZXJzIGltcG9ydCBfbXVsdGljYWxsLCBfbGVn
YWN5bXVsdGljYWxsCiAKIAogaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigiZXhhbXBsZSIpCiBo
b29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJleGFtcGxlIikKIAogCi1kZWYgdGVzdF91c2VzX2Nv
cHlfb2ZfbWV0aG9kcygpOgotICAgIG91dCA9IFtsYW1iZGE6IDQyXQotICAgIG1jID0gX0xlZ2Fj
eU11bHRpQ2FsbChvdXQsIHt9KQotICAgIHJlcHIobWMpCi0gICAgb3V0WzpdID0gW10KLSAgICBy
ZXMgPSBtYy5leGVjdXRlKCkKLSAgICByZXR1cm4gcmVzID09IDQyCi0KLQogZGVmIE1DKG1ldGhv
ZHMsIGt3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2UpOgogICAgIGNhbGxlciA9IF9tdWx0aWNhbGwK
ICAgICBob29rZnVuY3MgPSBbXQogICAgIGZvciBtZXRob2QgaW4gbWV0aG9kczoKICAgICAgICAg
ZiA9IEhvb2tJbXBsKE5vbmUsICI8dGVtcD4iLCBtZXRob2QsIG1ldGhvZC5leGFtcGxlX2ltcGwp
CiAgICAgICAgIGhvb2tmdW5jcy5hcHBlbmQoZikKLSAgICAgICAgaWYgJ19fbXVsdGljYWxsX18n
IGluIGYuYXJnbmFtZXM6CisgICAgICAgIGlmICJfX211bHRpY2FsbF9fIiBpbiBmLmFyZ25hbWVz
OgogICAgICAgICAgICAgY2FsbGVyID0gX2xlZ2FjeW11bHRpY2FsbAogICAgIHJldHVybiBjYWxs
ZXIoaG9va2Z1bmNzLCBrd2FyZ3MsIGZpcnN0cmVzdWx0PWZpcnN0cmVzdWx0KQogCkBAIC03MCw2
ICs2MCw3IEBAIGRlZiB0ZXN0X2tleXdvcmRfYXJnc193aXRoX2RlZmF1bHRhcmdzKCk6CiAgICAg
QGhvb2tpbXBsCiAgICAgZGVmIGYoeCwgej0xKToKICAgICAgICAgcmV0dXJuIHggKyB6CisKICAg
ICByZXNsaXN0ID0gTUMoW2ZdLCBkaWN0KHg9MjMsIHk9MjQpKQogICAgIGFzc2VydCByZXNsaXN0
ID09IFsyNF0KIApAQCAtNzgsNiArNjksNyBAQCBkZWYgdGVzdF90YWdzX2NhbGxfZXJyb3IoKToK
ICAgICBAaG9va2ltcGwKICAgICBkZWYgZih4KToKICAgICAgICAgcmV0dXJuIHgKKwogICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhIb29rQ2FsbEVycm9yKToKICAgICAgICAgTUMoW2ZdLCB7fSkKIApA
QCAtMTcyLDcgKzE2NCw3IEBAIGRlZiB0ZXN0X2hvb2t3cmFwcGVyX3Rvb19tYW55X3lpZWxkKCk6
CiAgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgZXg6CiAgICAgICAgIE1D
KFttMV0sIHt9KQogICAgIGFzc2VydCAibTEiIGluIHN0cihleC52YWx1ZSkKLSAgICBhc3NlcnQg
KF9fZmlsZV9fICsgJzonKSBpbiBzdHIoZXgudmFsdWUpCisgICAgYXNzZXJ0IChfX2ZpbGVfXyAr
ICI6IikgaW4gc3RyKGV4LnZhbHVlKQogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZXhj
IiwgW1ZhbHVlRXJyb3IsIFN5c3RlbUV4aXRdKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVz
dGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfcGx1
Z2lubWFuYWdlci5weQppbmRleCBlMmM4NmNjNjQ0MjZiMTM2OTgwYTg5ODE0YjU2OGViZGI5NmRi
ODlmLi42NzI2MWFhYTdiYmFlYWZkMjVkMDY2Njc2Y2ZhYjM4ZWIwNDNiNTZmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfcGx1Z2lubWFuYWdlci5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS90ZXN0aW5nL3Rlc3RfcGx1Z2lubWFuYWdlci5weQpAQCAtMSw4ICsxLDE3IEBACisiIiIK
K2BgUGx1Z2luTWFuYWdlcmBgIHVuaXQgYW5kIHB1YmxpYyBBUEkgdGVzdGluZy4KKyIiIgogaW1w
b3J0IHB5dGVzdAogaW1wb3J0IHR5cGVzCiAKLWZyb20gcGx1Z2d5IGltcG9ydCAoUGx1Z2luVmFs
aWRhdGlvbkVycm9yLAotICAgICAgICAgICAgICAgICAgICBIb29rQ2FsbEVycm9yLCBIb29raW1w
bE1hcmtlciwgSG9va3NwZWNNYXJrZXIpCitmcm9tIHBsdWdneSBpbXBvcnQgKAorICAgIFBsdWdp
bk1hbmFnZXIsCisgICAgUGx1Z2luVmFsaWRhdGlvbkVycm9yLAorICAgIEhvb2tDYWxsRXJyb3Is
CisgICAgSG9va2ltcGxNYXJrZXIsCisgICAgSG9va3NwZWNNYXJrZXIsCispCitmcm9tIHBsdWdn
eS5tYW5hZ2VyIGltcG9ydCBpbXBvcnRsaWJfbWV0YWRhdGEKIAogCiBob29rc3BlYyA9IEhvb2tz
cGVjTWFya2VyKCJleGFtcGxlIikKQEAgLTEwLDYgKzE5LDcgQEAgaG9va2ltcGwgPSBIb29raW1w
bE1hcmtlcigiZXhhbXBsZSIpCiAKIAogZGVmIHRlc3RfcGx1Z2luX2RvdWJsZV9yZWdpc3Rlcihw
bSk6CisgICAgIiIiUmVnaXN0ZXJpbmcgdGhlIHNhbWUgcGx1Z2luIG1vcmUgdGhlbiBvbmNlIGlz
bid0IGFsbG93ZWQiIiIKICAgICBwbS5yZWdpc3Rlcig0MiwgbmFtZT0iYWJjIikKICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CiAgICAgICAgIHBtLnJlZ2lzdGVyKDQyLCBuYW1l
PSJhYmMiKQpAQCAtMTgsNiArMjgsOCBAQCBkZWYgdGVzdF9wbHVnaW5fZG91YmxlX3JlZ2lzdGVy
KHBtKToKIAogCiBkZWYgdGVzdF9wbShwbSk6CisgICAgIiIiQmFzaWMgcmVnaXN0cmF0aW9uIHdp
dGggb2JqZWN0cyIiIgorCiAgICAgY2xhc3MgQShvYmplY3QpOgogICAgICAgICBwYXNzCiAKQEAg
LTI5LDcgKzQxLDcgQEAgZGVmIHRlc3RfcG0ocG0pOgogICAgIG91dCA9IHBtLmdldF9wbHVnaW5z
KCkKICAgICBhc3NlcnQgYTEgaW4gb3V0CiAgICAgYXNzZXJ0IGEyIGluIG91dAotICAgIGFzc2Vy
dCBwbS5nZXRfcGx1Z2luKCdoZWxsbycpID09IGEyCisgICAgYXNzZXJ0IHBtLmdldF9wbHVnaW4o
ImhlbGxvIikgPT0gYTIKICAgICBhc3NlcnQgcG0udW5yZWdpc3RlcihhMSkgPT0gYTEKICAgICBh
c3NlcnQgbm90IHBtLmlzX3JlZ2lzdGVyZWQoYTEpCiAKQEAgLTQzLDkgKzU1LDkgQEAgZGVmIHRl
c3RfaGFzX3BsdWdpbihwbSk6CiAgICAgICAgIHBhc3MKIAogICAgIGExID0gQSgpCi0gICAgcG0u
cmVnaXN0ZXIoYTEsICdoZWxsbycpCisgICAgcG0ucmVnaXN0ZXIoYTEsICJoZWxsbyIpCiAgICAg
YXNzZXJ0IHBtLmlzX3JlZ2lzdGVyZWQoYTEpCi0gICAgYXNzZXJ0IHBtLmhhc19wbHVnaW4oJ2hl
bGxvJykKKyAgICBhc3NlcnQgcG0uaGFzX3BsdWdpbigiaGVsbG8iKQogCiAKIGRlZiB0ZXN0X3Jl
Z2lzdGVyX2R5bmFtaWNfYXR0cihoZV9wbSk6CkBAIC0xMDQsOSArMTE2LDEyIEBAIGRlZiB0ZXN0
X3JlZ2lzdGVyX21pc21hdGNoX21ldGhvZChoZV9wbSk6CiAgICAgICAgIGRlZiBoZV9tZXRob2Rf
bm90ZXhpc3RzKHNlbGYpOgogICAgICAgICAgICAgcGFzcwogCi0gICAgaGVfcG0ucmVnaXN0ZXIo
aGVsbG8oKSkKLSAgICB3aXRoIHB5dGVzdC5yYWlzZXMoUGx1Z2luVmFsaWRhdGlvbkVycm9yKToK
KyAgICBwbHVnaW4gPSBoZWxsbygpCisKKyAgICBoZV9wbS5yZWdpc3RlcihwbHVnaW4pCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKFBsdWdpblZhbGlkYXRpb25FcnJvcikgYXMgZXhjaW5mbzoKICAg
ICAgICAgaGVfcG0uY2hlY2tfcGVuZGluZygpCisgICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUucGx1
Z2luIGlzIHBsdWdpbgogCiAKIGRlZiB0ZXN0X3JlZ2lzdGVyX21pc21hdGNoX2FyZyhoZV9wbSk6
CkBAIC0xMTUsMTMgKzEzMCwxNyBAQCBkZWYgdGVzdF9yZWdpc3Rlcl9taXNtYXRjaF9hcmcoaGVf
cG0pOgogICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBxbHdramUpOgogICAgICAgICAgICAg
cGFzcwogCi0gICAgd2l0aCBweXRlc3QucmFpc2VzKFBsdWdpblZhbGlkYXRpb25FcnJvcik6Ci0g
ICAgICAgIGhlX3BtLnJlZ2lzdGVyKGhlbGxvKCkpCisgICAgcGx1Z2luID0gaGVsbG8oKQorCisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFBsdWdpblZhbGlkYXRpb25FcnJvcikgYXMgZXhjaW5mbzoK
KyAgICAgICAgaGVfcG0ucmVnaXN0ZXIocGx1Z2luKQorICAgIGFzc2VydCBleGNpbmZvLnZhbHVl
LnBsdWdpbiBpcyBwbHVnaW4KIAogCiBkZWYgdGVzdF9yZWdpc3RlcihwbSk6CiAgICAgY2xhc3Mg
TXlQbHVnaW4ob2JqZWN0KToKICAgICAgICAgcGFzcworCiAgICAgbXkgPSBNeVBsdWdpbigpCiAg
ICAgcG0ucmVnaXN0ZXIobXkpCiAgICAgYXNzZXJ0IG15IGluIHBtLmdldF9wbHVnaW5zKCkKQEAg
LTE2MCw2ICsxNzksNyBAQCBkZWYgdGVzdF9yZWdpc3Rlcl9oaXN0b3JpYyhwbSk6CiAgICAgICAg
IEBob29rc3BlYyhoaXN0b3JpYz1UcnVlKQogICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBh
cmcpOgogICAgICAgICAgICAgcGFzcworCiAgICAgcG0uYWRkX2hvb2tzcGVjcyhIb29rcykKIAog
ICAgIHBtLmhvb2suaGVfbWV0aG9kMS5jYWxsX2hpc3RvcmljKGt3YXJncz1kaWN0KGFyZz0xKSkK
QEAgLTE4NCwyNCArMjA0LDQ4IEBAIGRlZiB0ZXN0X3JlZ2lzdGVyX2hpc3RvcmljKHBtKToKICAg
ICBhc3NlcnQgb3V0ID09IFsxLCAxMCwgMTIwLCAxMl0KIAogCi1kZWYgdGVzdF93aXRoX3Jlc3Vs
dF9tZW1vcml6ZWQocG0pOgorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJyZXN1bHRfY2FsbGJh
Y2siLCBbVHJ1ZSwgRmFsc2VdKQorZGVmIHRlc3Rfd2l0aF9yZXN1bHRfbWVtb3JpemVkKHBtLCBy
ZXN1bHRfY2FsbGJhY2spOgorICAgICIiIlZlcmlmeSB0aGF0IGBgX0hvb2tDYWxsZXIuX21heWJl
X2FwcGx5X2hpc3RvcnkoKWAKKyAgICBjb3JyZWN0bHkgYXBwbGllcyB0aGUgYGByZXN1bHRfY2Fs
bGJhY2tgYCBmdW5jdGlvbiwgd2hlbiBwcm92aWRlZCwKKyAgICB0byB0aGUgcmVzdWx0IGZyb20g
Y2FsbGluZyBlYWNoIG5ld2x5IHJlZ2lzdGVyZWQgaG9vay4KKyAgICAiIiIKKyAgICBvdXQgPSBb
XQorICAgIGlmIHJlc3VsdF9jYWxsYmFjazoKKworICAgICAgICBkZWYgY2FsbGJhY2socmVzKToK
KyAgICAgICAgICAgIG91dC5hcHBlbmQocmVzKQorCisgICAgZWxzZToKKyAgICAgICAgY2FsbGJh
Y2sgPSBOb25lCisKICAgICBjbGFzcyBIb29rcyhvYmplY3QpOgogICAgICAgICBAaG9va3NwZWMo
aGlzdG9yaWM9VHJ1ZSkKICAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKICAgICAg
ICAgICAgIHBhc3MKKwogICAgIHBtLmFkZF9ob29rc3BlY3MoSG9va3MpCiAKKyAgICBjbGFzcyBQ
bHVnaW4xKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9k
MShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyAqIDEwCisKKyAgICBwbS5yZWdp
c3RlcihQbHVnaW4xKCkpCisKICAgICBoZV9tZXRob2QxID0gcG0uaG9vay5oZV9tZXRob2QxCi0g
ICAgaGVfbWV0aG9kMS5jYWxsX2hpc3RvcmljKGxhbWJkYSByZXM6IG91dC5hcHBlbmQocmVzKSwg
ZGljdChhcmc9MSkpCi0gICAgb3V0ID0gW10KKyAgICBoZV9tZXRob2QxLmNhbGxfaGlzdG9yaWMo
cmVzdWx0X2NhbGxiYWNrPWNhbGxiYWNrLCBrd2FyZ3M9ZGljdChhcmc9MSkpCiAKLSAgICBjbGFz
cyBQbHVnaW4ob2JqZWN0KToKKyAgICBjbGFzcyBQbHVnaW4yKG9iamVjdCk6CiAgICAgICAgIEBo
b29raW1wbAogICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgogICAgICAgICAgICAg
cmV0dXJuIGFyZyAqIDEwCiAKLSAgICBwbS5yZWdpc3RlcihQbHVnaW4oKSkKLSAgICBhc3NlcnQg
b3V0ID09IFsxMF0KKyAgICBwbS5yZWdpc3RlcihQbHVnaW4yKCkpCisgICAgaWYgcmVzdWx0X2Nh
bGxiYWNrOgorICAgICAgICBhc3NlcnQgb3V0ID09IFsxMCwgMTBdCisgICAgZWxzZToKKyAgICAg
ICAgYXNzZXJ0IG91dCA9PSBbXQogCiAKIGRlZiB0ZXN0X3dpdGhfY2FsbGJhY2tzX2ltbWVkaWF0
ZWx5X2V4ZWN1dGVkKHBtKToKQEAgLTIwOSw2ICsyNTMsNyBAQCBkZWYgdGVzdF93aXRoX2NhbGxi
YWNrc19pbW1lZGlhdGVseV9leGVjdXRlZChwbSk6CiAgICAgICAgIEBob29rc3BlYyhoaXN0b3Jp
Yz1UcnVlKQogICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgogICAgICAgICAgICAg
cGFzcworCiAgICAgcG0uYWRkX2hvb2tzcGVjcyhIb29rcykKIAogICAgIGNsYXNzIFBsdWdpbjEo
b2JqZWN0KToKQEAgLTI4Myw2ICszMjgsNyBAQCBkZWYgdGVzdF9jYWxsX3dpdGhfdG9vX2Zld19h
cmdzKHBtKToKICAgICAgICAgQGhvb2tpbXBsCiAgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYs
IGFyZyk6CiAgICAgICAgICAgICAwIC8gMAorCiAgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKQog
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhIb29rQ2FsbEVycm9yKToKICAgICAgICAgd2l0aCBweXRl
c3Qud2FybnMoVXNlcldhcm5pbmcpOgpAQCAtMzM5LDEzICszODUsMzYgQEAgZGVmIHRlc3Rfc3Vi
c2V0X2hvb2tfY2FsbGVyKHBtKToKICAgICBhc3NlcnQgb3V0ID09IFsxMF0KIAogCi1kZWYgdGVz
dF9tdWx0aWNhbGxfZGVwcmVjYXRlZChwbSk6Ci0gICAgY2xhc3MgUDEob2JqZWN0KToKK2RlZiB0
ZXN0X2dldF9ob29raW1wbHMocG0pOgorICAgIGNsYXNzIEhvb2tzKG9iamVjdCk6CisgICAgICAg
IEBob29rc3BlYworICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAg
ICAgcGFzcworCisgICAgcG0uYWRkX2hvb2tzcGVjcyhIb29rcykKKyAgICBhc3NlcnQgcG0uaG9v
ay5oZV9tZXRob2QxLmdldF9ob29raW1wbHMoKSA9PSBbXQorCisgICAgY2xhc3MgUGx1Z2luMShv
YmplY3QpOgogICAgICAgICBAaG9va2ltcGwKLSAgICAgICAgZGVmIG0oc2VsZiwgX19tdWx0aWNh
bGxfXywgeCk6CisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CiAgICAgICAgICAg
ICBwYXNzCiAKLSAgICBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKHBtLnJlZ2lzdGVyLCBQMSgpKQor
ICAgIGNsYXNzIFBsdWdpbjIob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRl
ZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CisgICAgICAgICAgICBwYXNzCisKKyAgICBjbGFzcyBQ
bHVnaW5ObyhvYmplY3QpOgorICAgICAgICBwYXNzCisKKyAgICBwbHVnaW4xLCBwbHVnaW4yLCBw
bHVnaW4zID0gUGx1Z2luMSgpLCBQbHVnaW4yKCksIFBsdWdpbk5vKCkKKyAgICBwbS5yZWdpc3Rl
cihwbHVnaW4xKQorICAgIHBtLnJlZ2lzdGVyKHBsdWdpbjIpCisgICAgcG0ucmVnaXN0ZXIocGx1
Z2luMykKKworICAgIGhvb2tpbXBscyA9IHBtLmhvb2suaGVfbWV0aG9kMS5nZXRfaG9va2ltcGxz
KCkKKyAgICBob29rX3BsdWdpbnMgPSBbaXRlbS5wbHVnaW4gZm9yIGl0ZW0gaW4gaG9va2ltcGxz
XQorICAgIGFzc2VydCBob29rX3BsdWdpbnMgPT0gW3BsdWdpbjEsIHBsdWdpbjJdCiAKIAogZGVm
IHRlc3RfYWRkX2hvb2tzcGVjc19ub2hvb2tzKHBtKToKQEAgLTM1OCwxNyArNDI3LDE3NCBAQCBk
ZWYgdGVzdF9yZWplY3RfcHJlZml4ZWRfbW9kdWxlKHBtKToKICAgICBwcmVmaXggaW4gaXRzIG5h
bWUgKGluIHRoaXMgY2FzZSBgJ2V4YW1wbGVfKidgIGlzbid0IGNvbGxlY3RlZAogICAgIHdoZW4g
cmVnaXN0ZXJpbmcgYSBtb2R1bGUgd2hpY2ggaW1wb3J0cyBpdC4KICAgICAiIiIKLSAgICBwbS5f
aW1wbHByZWZpeCA9ICdleGFtcGxlJworICAgIHBtLl9pbXBscHJlZml4ID0gImV4YW1wbGUiCiAg
ICAgY29uZnRlc3QgPSB0eXBlcy5Nb2R1bGVUeXBlKCJjb25mdGVzdCIpCi0gICAgc3JjID0gKCIi
IgorICAgIHNyYyA9ICIiIgogZGVmIGV4YW1wbGVfaG9vaygpOgogICAgIHBhc3MKLSIiIikKKyIi
IgogICAgIGV4ZWMoc3JjLCBjb25mdGVzdC5fX2RpY3RfXykKICAgICBjb25mdGVzdC5leGFtcGxl
X2JsYWggPSB0eXBlcy5Nb2R1bGVUeXBlKCJleGFtcGxlX2JsYWgiKQotICAgIG5hbWUgPSBwbS5y
ZWdpc3Rlcihjb25mdGVzdCkKLSAgICBhc3NlcnQgbmFtZSA9PSAnY29uZnRlc3QnCi0gICAgYXNz
ZXJ0IGdldGF0dHIocG0uaG9vaywgJ2V4YW1wbGVfYmxhaCcsIE5vbmUpIGlzIE5vbmUKLSAgICBh
c3NlcnQgZ2V0YXR0cihwbS5ob29rLCAnZXhhbXBsZV9ob29rJywgTm9uZSkgICMgY29uZnRlc3Qu
ZXhhbXBsZV9ob29rIHNob3VsZCBiZSBjb2xsZWN0ZWQKLSAgICBhc3NlcnQgcG0ucGFyc2VfaG9v
a2ltcGxfb3B0cyhjb25mdGVzdCwgJ2V4YW1wbGVfYmxhaCcpIGlzIE5vbmUKLSAgICBhc3NlcnQg
cG0ucGFyc2VfaG9va2ltcGxfb3B0cyhjb25mdGVzdCwgJ2V4YW1wbGVfaG9vaycpID09IHt9Cisg
ICAgd2l0aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CisgICAgICAgIG5hbWUgPSBwbS5yZWdp
c3Rlcihjb25mdGVzdCkKKyAgICBhc3NlcnQgbmFtZSA9PSAiY29uZnRlc3QiCisgICAgYXNzZXJ0
IGdldGF0dHIocG0uaG9vaywgImV4YW1wbGVfYmxhaCIsIE5vbmUpIGlzIE5vbmUKKyAgICBhc3Nl
cnQgZ2V0YXR0cigKKyAgICAgICAgcG0uaG9vaywgImV4YW1wbGVfaG9vayIsIE5vbmUKKyAgICAp
ICAjIGNvbmZ0ZXN0LmV4YW1wbGVfaG9vayBzaG91bGQgYmUgY29sbGVjdGVkCisgICAgd2l0aCBw
eXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CisgICAgICAgIGFzc2VydCBwbS5wYXJzZV9ob29raW1w
bF9vcHRzKGNvbmZ0ZXN0LCAiZXhhbXBsZV9ibGFoIikgaXMgTm9uZQorICAgICAgICBhc3NlcnQg
cG0ucGFyc2VfaG9va2ltcGxfb3B0cyhjb25mdGVzdCwgImV4YW1wbGVfaG9vayIpID09IHt9CisK
KworZGVmIHRlc3RfbG9hZF9zZXR1cHRvb2xzX2luc3RhbnRpYXRpb24obW9ua2V5cGF0Y2gsIHBt
KToKKyAgICBjbGFzcyBFbnRyeVBvaW50KG9iamVjdCk6CisgICAgICAgIG5hbWUgPSAibXluYW1l
IgorICAgICAgICBncm91cCA9ICJoZWxsbyIKKyAgICAgICAgdmFsdWUgPSAibXluYW1lOmZvbyIK
KworICAgICAgICBkZWYgbG9hZChzZWxmKToKKyAgICAgICAgICAgIGNsYXNzIFBzZXVkb1BsdWdp
bihvYmplY3QpOgorICAgICAgICAgICAgICAgIHggPSA0MgorCisgICAgICAgICAgICByZXR1cm4g
UHNldWRvUGx1Z2luKCkKKworICAgIGNsYXNzIERpc3RyaWJ1dGlvbihvYmplY3QpOgorICAgICAg
ICBlbnRyeV9wb2ludHMgPSAoRW50cnlQb2ludCgpLCkKKworICAgIGRpc3QgPSBEaXN0cmlidXRp
b24oKQorCisgICAgZGVmIG15X2Rpc3RyaWJ1dGlvbnMoKToKKyAgICAgICAgcmV0dXJuIChkaXN0
LCkKKworICAgIG1vbmtleXBhdGNoLnNldGF0dHIoaW1wb3J0bGliX21ldGFkYXRhLCAiZGlzdHJp
YnV0aW9ucyIsIG15X2Rpc3RyaWJ1dGlvbnMpCisgICAgbnVtID0gcG0ubG9hZF9zZXR1cHRvb2xz
X2VudHJ5cG9pbnRzKCJoZWxsbyIpCisgICAgYXNzZXJ0IG51bSA9PSAxCisgICAgcGx1Z2luID0g
cG0uZ2V0X3BsdWdpbigibXluYW1lIikKKyAgICBhc3NlcnQgcGx1Z2luLnggPT0gNDIKKyAgICBy
ZXQgPSBwbS5saXN0X3BsdWdpbl9kaXN0aW5mbygpCisgICAgIyBwb29yIG1hbidzIGBhc3NlcnQg
cmV0ID09IFsocGx1Z2luLCBtb2NrLkFOWSldYAorICAgIGFzc2VydCBsZW4ocmV0KSA9PSAxCisg
ICAgYXNzZXJ0IGxlbihyZXRbMF0pID09IDIKKyAgICBhc3NlcnQgcmV0WzBdWzBdID09IHBsdWdp
bgorICAgIGFzc2VydCByZXRbMF1bMV0uX2Rpc3QgPT0gZGlzdAorICAgIG51bSA9IHBtLmxvYWRf
c2V0dXB0b29sc19lbnRyeXBvaW50cygiaGVsbG8iKQorICAgIGFzc2VydCBudW0gPT0gMCAgIyBu
byBwbHVnaW4gbG9hZGVkIGJ5IHRoaXMgY2FsbAorCisKK2RlZiB0ZXN0X2FkZF90cmFjZWZ1bmNz
KGhlX3BtKToKKyAgICBvdXQgPSBbXQorCisgICAgY2xhc3MgYXBpMShvYmplY3QpOgorICAgICAg
ICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZik6CisgICAgICAgICAgICBv
dXQuYXBwZW5kKCJoZV9tZXRob2QxLWFwaTEiKQorCisgICAgY2xhc3MgYXBpMihvYmplY3QpOgor
ICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZik6CisgICAgICAg
ICAgICBvdXQuYXBwZW5kKCJoZV9tZXRob2QxLWFwaTIiKQorCisgICAgaGVfcG0ucmVnaXN0ZXIo
YXBpMSgpKQorICAgIGhlX3BtLnJlZ2lzdGVyKGFwaTIoKSkKKworICAgIGRlZiBiZWZvcmUoaG9v
a19uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpOgorICAgICAgICBvdXQuYXBwZW5kKChob29rX25h
bWUsIGxpc3QoaG9va19pbXBscyksIGt3YXJncykpCisKKyAgICBkZWYgYWZ0ZXIob3V0Y29tZSwg
aG9va19uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpOgorICAgICAgICBvdXQuYXBwZW5kKChvdXRj
b21lLCBob29rX25hbWUsIGxpc3QoaG9va19pbXBscyksIGt3YXJncykpCisKKyAgICB1bmRvID0g
aGVfcG0uYWRkX2hvb2tjYWxsX21vbml0b3JpbmcoYmVmb3JlLCBhZnRlcikKKworICAgIGhlX3Bt
Lmhvb2suaGVfbWV0aG9kMShhcmc9MSkKKyAgICBhc3NlcnQgbGVuKG91dCkgPT0gNAorICAgIGFz
c2VydCBvdXRbMF1bMF0gPT0gImhlX21ldGhvZDEiCisgICAgYXNzZXJ0IGxlbihvdXRbMF1bMV0p
ID09IDIKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShvdXRbMF1bMl0sIGRpY3QpCisgICAgYXNzZXJ0
IG91dFsxXSA9PSAiaGVfbWV0aG9kMS1hcGkyIgorICAgIGFzc2VydCBvdXRbMl0gPT0gImhlX21l
dGhvZDEtYXBpMSIKKyAgICBhc3NlcnQgbGVuKG91dFszXSkgPT0gNAorICAgIGFzc2VydCBvdXRb
M11bMV0gPT0gb3V0WzBdWzBdCisKKyAgICB1bmRvKCkKKyAgICBoZV9wbS5ob29rLmhlX21ldGhv
ZDEoYXJnPTEpCisgICAgYXNzZXJ0IGxlbihvdXQpID09IDQgKyAyCisKKworZGVmIHRlc3RfaG9v
a190cmFjaW5nKGhlX3BtKToKKyAgICBzYXZlaW5kZW50ID0gW10KKworICAgIGNsYXNzIGFwaTEo
b2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYp
OgorICAgICAgICAgICAgc2F2ZWluZGVudC5hcHBlbmQoaGVfcG0udHJhY2Uucm9vdC5pbmRlbnQp
CisKKyAgICBjbGFzcyBhcGkyKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBk
ZWYgaGVfbWV0aG9kMShzZWxmKToKKyAgICAgICAgICAgIHNhdmVpbmRlbnQuYXBwZW5kKGhlX3Bt
LnRyYWNlLnJvb3QuaW5kZW50KQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisKKyAg
ICBoZV9wbS5yZWdpc3RlcihhcGkxKCkpCisgICAgb3V0ID0gW10KKyAgICBoZV9wbS50cmFjZS5y
b290LnNldHdyaXRlcihvdXQuYXBwZW5kKQorICAgIHVuZG8gPSBoZV9wbS5lbmFibGVfdHJhY2lu
ZygpCisgICAgdHJ5OgorICAgICAgICBpbmRlbnQgPSBoZV9wbS50cmFjZS5yb290LmluZGVudAor
ICAgICAgICBoZV9wbS5ob29rLmhlX21ldGhvZDEoYXJnPTEpCisgICAgICAgIGFzc2VydCBpbmRl
bnQgPT0gaGVfcG0udHJhY2Uucm9vdC5pbmRlbnQKKyAgICAgICAgYXNzZXJ0IGxlbihvdXQpID09
IDIKKyAgICAgICAgYXNzZXJ0ICJoZV9tZXRob2QxIiBpbiBvdXRbMF0KKyAgICAgICAgYXNzZXJ0
ICJmaW5pc2giIGluIG91dFsxXQorCisgICAgICAgIG91dFs6XSA9IFtdCisgICAgICAgIGhlX3Bt
LnJlZ2lzdGVyKGFwaTIoKSkKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJv
cik6CisgICAgICAgICAgICBoZV9wbS5ob29rLmhlX21ldGhvZDEoYXJnPTEpCisgICAgICAgIGFz
c2VydCBoZV9wbS50cmFjZS5yb290LmluZGVudCA9PSBpbmRlbnQKKyAgICAgICAgYXNzZXJ0IHNh
dmVpbmRlbnRbMF0gPiBpbmRlbnQKKyAgICBmaW5hbGx5OgorICAgICAgICB1bmRvKCkKKworCitk
ZWYgdGVzdF9pbXBscHJlZml4X3dhcm5pbmcocmVjd2Fybik6CisgICAgUGx1Z2luTWFuYWdlciho
b29rc3BlYy5wcm9qZWN0X25hbWUsICJoZWxsb18iKQorICAgIHcgPSByZWN3YXJuLnBvcChEZXBy
ZWNhdGlvbldhcm5pbmcpCisgICAgYXNzZXJ0ICJ0ZXN0X3BsdWdpbm1hbmFnZXIucHkiIGluIHcu
ZmlsZW5hbWUKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImluY2x1ZGVfaG9va3NwZWMi
LCBbVHJ1ZSwgRmFsc2VdKQorZGVmIHRlc3RfcHJlZml4X2hvb2tpbXBsKGluY2x1ZGVfaG9va3Nw
ZWMpOgorICAgIHdpdGggcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgorICAgICAgICBwbSA9IFBs
dWdpbk1hbmFnZXIoaG9va3NwZWMucHJvamVjdF9uYW1lLCAiaGVsbG9fIikKKworICAgIGlmIGlu
Y2x1ZGVfaG9va3NwZWM6CisKKyAgICAgICAgY2xhc3MgSG9va1NwZWMob2JqZWN0KToKKyAgICAg
ICAgICAgIEBob29rc3BlYworICAgICAgICAgICAgZGVmIGhlbGxvX215aG9vayhzZWxmLCBhcmcx
KToKKyAgICAgICAgICAgICAgICAiIiIgYWRkIHRvIGFyZzEgIiIiCisKKyAgICAgICAgcG0uYWRk
X2hvb2tzcGVjcyhIb29rU3BlYykKKworICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgorICAgICAg
ICBkZWYgaGVsbG9fbXlob29rKHNlbGYsIGFyZzEpOgorICAgICAgICAgICAgcmV0dXJuIGFyZzEg
KyAxCisKKyAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgcG0ucmVn
aXN0ZXIoUGx1Z2luKCkpCisgICAgICAgIHBtLnJlZ2lzdGVyKFBsdWdpbigpKQorICAgIHJlc3Vs
dHMgPSBwbS5ob29rLmhlbGxvX215aG9vayhhcmcxPTE3KQorICAgIGFzc2VydCByZXN1bHRzID09
IFsxOCwgMThdCisKKworZGVmIHRlc3RfcHJlZml4X2hvb2tpbXBsX2RvbnRtYXRjaF9tb2R1bGUo
KToKKyAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgcG0gPSBQbHVn
aW5NYW5hZ2VyKGhvb2tzcGVjLnByb2plY3RfbmFtZSwgImhlbGxvXyIpCisKKyAgICBjbGFzcyBC
YWRQbHVnaW4ob2JqZWN0KToKKyAgICAgICAgaGVsbG9fbW9kdWxlID0gX19pbXBvcnRfXygiZW1h
aWwiKQorCisgICAgcG0ucmVnaXN0ZXIoQmFkUGx1Z2luKCkpCisgICAgcG0uY2hlY2tfcGVuZGlu
ZygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfdHJhY2VyLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3RyYWNlci5weQppbmRleCA0YTNlMTZjZWM0MzYzOGNkMDM2
MmJkOTQ5ZDQzZDI1OTA5ZDk2ZWY5Li45OTJlYzY3OTE0OWI1ZDI2ZjY4YTI3MzRjZWRiYzZkZWJk
ZDkzNTJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfdHJhY2VyLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF90cmFjZXIucHkKQEAgLTEsOSArMSwxNCBAQAor
ZnJvbSBwbHVnZ3kuX3RyYWNpbmcgaW1wb3J0IFRhZ1RyYWNlcgogCi1mcm9tIHBsdWdneSBpbXBv
cnQgX1RhZ1RyYWNlcgoraW1wb3J0IHB5dGVzdAogCiAKLWRlZiB0ZXN0X3NpbXBsZSgpOgotICAg
IHJvb3Rsb2dnZXIgPSBfVGFnVHJhY2VyKCkKK0BweXRlc3QuZml4dHVyZQorZGVmIHJvb3Rsb2dn
ZXIoKToKKyAgICByZXR1cm4gVGFnVHJhY2VyKCkKKworCitkZWYgdGVzdF9zaW1wbGUocm9vdGxv
Z2dlcik6CiAgICAgbG9nID0gcm9vdGxvZ2dlci5nZXQoInB5dGVzdCIpCiAgICAgbG9nKCJoZWxs
byIpCiAgICAgb3V0ID0gW10KQEAgLTE2LDggKzIxLDcgQEAgZGVmIHRlc3Rfc2ltcGxlKCk6CiAg
ICAgYXNzZXJ0IG91dFsxXSA9PSAiaGVsbG8gW3B5dGVzdDpjb2xsZWN0aW9uXVxuIgogCiAKLWRl
ZiB0ZXN0X2luZGVudCgpOgotICAgIHJvb3Rsb2dnZXIgPSBfVGFnVHJhY2VyKCkKK2RlZiB0ZXN0
X2luZGVudChyb290bG9nZ2VyKToKICAgICBsb2cgPSByb290bG9nZ2VyLmdldCgiMSIpCiAgICAg
b3V0ID0gW10KICAgICBsb2cucm9vdC5zZXR3cml0ZXIobGFtYmRhIGFyZzogb3V0LmFwcGVuZChh
cmcpKQpAQCAtMzMsMjcgKzM3LDI4IEBAIGRlZiB0ZXN0X2luZGVudCgpOgogICAgIGxvZy5yb290
LmluZGVudCAtPSAxCiAgICAgbG9nKCJsYXN0IikKICAgICBhc3NlcnQgbGVuKG91dCkgPT0gNwot
ICAgIG5hbWVzID0gW3hbOngucmZpbmQoJyBbJyldIGZvciB4IGluIG91dF0KKyAgICBuYW1lcyA9
IFt4WzogeC5yZmluZCgiIFsiKV0gZm9yIHggaW4gb3V0XQogICAgIGFzc2VydCBuYW1lcyA9PSBb
Ci0gICAgICAgICdoZWxsbycsICcgIGxpbmUxJywgJyAgbGluZTInLAotICAgICAgICAnICAgIGxp
bmUzJywgJyAgICBsaW5lNCcsICcgIGxpbmU1JywgJ2xhc3QnXQorICAgICAgICAiaGVsbG8iLAor
ICAgICAgICAiICBsaW5lMSIsCisgICAgICAgICIgIGxpbmUyIiwKKyAgICAgICAgIiAgICBsaW5l
MyIsCisgICAgICAgICIgICAgbGluZTQiLAorICAgICAgICAiICBsaW5lNSIsCisgICAgICAgICJs
YXN0IiwKKyAgICBdCiAKIAotZGVmIHRlc3RfcmVhZGFibGVfb3V0cHV0X2RpY3RhcmdzKCk6Ci0g
ICAgcm9vdGxvZ2dlciA9IF9UYWdUcmFjZXIoKQorZGVmIHRlc3RfcmVhZGFibGVfb3V0cHV0X2Rp
Y3RhcmdzKHJvb3Rsb2dnZXIpOgogCi0gICAgb3V0ID0gcm9vdGxvZ2dlci5mb3JtYXRfbWVzc2Fn
ZShbJ3Rlc3QnXSwgWzFdKQotICAgIGFzc2VydCBvdXQgPT0gWycxIFt0ZXN0XVxuJ10KKyAgICBv
dXQgPSByb290bG9nZ2VyLl9mb3JtYXRfbWVzc2FnZShbInRlc3QiXSwgWzFdKQorICAgIGFzc2Vy
dCBvdXQgPT0gIjEgW3Rlc3RdXG4iCiAKLSAgICBvdXQyID0gcm9vdGxvZ2dlci5mb3JtYXRfbWVz
c2FnZShbJ3Rlc3QnXSwgWyd0ZXN0JywgeydhJzogMX1dKQotICAgIGFzc2VydCBvdXQyID09IFsK
LSAgICAgICAgJ3Rlc3QgW3Rlc3RdXG4nLAotICAgICAgICAnICAgIGE6IDFcbicKLSAgICBdCisg
ICAgb3V0MiA9IHJvb3Rsb2dnZXIuX2Zvcm1hdF9tZXNzYWdlKFsidGVzdCJdLCBbInRlc3QiLCB7
ImEiOiAxfV0pCisgICAgYXNzZXJ0IG91dDIgPT0gInRlc3QgW3Rlc3RdXG4gICAgYTogMVxuIgog
CiAKLWRlZiB0ZXN0X3NldHByb2Nlc3NvcigpOgotICAgIHJvb3Rsb2dnZXIgPSBfVGFnVHJhY2Vy
KCkKK2RlZiB0ZXN0X3NldHByb2Nlc3Nvcihyb290bG9nZ2VyKToKICAgICBsb2cgPSByb290bG9n
Z2VyLmdldCgiMSIpCiAgICAgbG9nMiA9IGxvZy5nZXQoIjIiKQogICAgIGFzc2VydCBsb2cyLnRh
Z3MgPT0gdHVwbGUoIjEyIikKQEAgLTcxLDE5ICs3NiwzIEBAIGRlZiB0ZXN0X3NldHByb2Nlc3Nv
cigpOgogICAgIGxvZzIoInNlZW4iKQogICAgIHRhZ3MsIGFyZ3MgPSBsMlswXQogICAgIGFzc2Vy
dCBhcmdzID09ICgic2VlbiIsKQotCi0KLWRlZiB0ZXN0X3NldG15cHJvY2Vzc29yKCk6Ci0gICAg
cm9vdGxvZ2dlciA9IF9UYWdUcmFjZXIoKQotICAgIGxvZyA9IHJvb3Rsb2dnZXIuZ2V0KCIxIikK
LSAgICBsb2cyID0gbG9nLmdldCgiMiIpCi0gICAgb3V0ID0gW10KLSAgICBsb2cyLnNldG15cHJv
Y2Vzc29yKGxhbWJkYSAqYXJnczogb3V0LmFwcGVuZChhcmdzKSkKLSAgICBsb2coIm5vdCBzZWVu
IikKLSAgICBhc3NlcnQgbm90IG91dAotICAgIGxvZzIoNDIpCi0gICAgYXNzZXJ0IGxlbihvdXQp
ID09IDEKLSAgICB0YWdzLCBhcmdzID0gb3V0WzBdCi0gICAgYXNzZXJ0ICIxIiBpbiB0YWdzCi0g
ICAgYXNzZXJ0ICIyIiBpbiB0YWdzCi0gICAgYXNzZXJ0IGFyZ3MgPT0gKDQyLCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0
aW5nL3czYy1pbXBvcnQubG9nCmluZGV4IDg0YmRiYzExZDk1NTI5ZWUxNmRlYWIwNWM3MTdmNGM4
YzAzYjBhNjIuLjg5NmExYmZjMjRmMjIzZTBjNTgxMGRlMjYyOWU0ZGEzMjk1ODFjNGQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvdGVzdGluZy93M2MtaW1wb3J0LmxvZwpAQCAtMTYsMTAgKzE2LDExIEBAIE5vbmUKIExpc3Qg
b2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy9iZW5jaG1hcmsucHkKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS90ZXN0aW5nL2NvbmZ0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2RlcHJlY2F0
aW9ucy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXRhaWxzLnB5CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvdGVzdGluZy90ZXN0X2hlbHBlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfaG9v
a3JlbGF5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X21ldGhvZF9vcmRlcmluZy5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9ob29rY2FsbGVyLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVz
dGluZy90ZXN0X2ludm9jYXRpb25zLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X211bHRp
Y2FsbC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9wbHVnaW5tYW5hZ2VyLnB5CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3RyYWNlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
dG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3RveC5pbmkKaW5kZXggODlkNDRlMzUyZGJhNDJmNzI2MTFm
MGVlY2UwNmY2MzM2ZWE5ODFlYS4uMWE0ZTNmNTI4ODM1ZGIxN2ViNzJlNGJmM2FhOTI5NDllMzcy
ZmZlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdG94LmluaQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90
b3guaW5pCkBAIC0xLDQ0ICsxLDU4IEBACiBbdG94XQotZW52bGlzdD1jaGVjayxkb2NzLHB5ezI3
LDM0LDM1LDM2LHB5fS1weXRlc3RyZWxlYXNlLHB5ezI3LDM2fS1weXRlc3R7bWFzdGVyLGZlYXR1
cmVzfQorZW52bGlzdD1saW50aW5nLGRvY3MscHl7MjcsMzQsMzUsMzYsMzcsMzgscHkscHkzfSxw
eXszNiwzN30tcHl0ZXN0e21hc3RlcixmZWF0dXJlc30KIAogW3Rlc3RlbnZdCi1jb21tYW5kcz1w
eS50ZXN0IHtwb3NhcmdzOnRlc3RpbmcvfQorY29tbWFuZHM9CisgIHtlbnY6X1BMVUdHWV9UT1hf
Q01EOnB5dGVzdH0ge3Bvc2FyZ3N9CisgIGNvdmVyYWdlOiBjb3ZlcmFnZSByZXBvcnQgLW0KKyAg
Y292ZXJhZ2U6IGNvdmVyYWdlIHhtbAogc2V0ZW52PQogICBfUFlURVNUX1NFVFVQX1NLSVBfUExV
R0dZX0RFUD0xCisgIGNvdmVyYWdlOiBfUExVR0dZX1RPWF9DTUQ9Y292ZXJhZ2UgcnVuIC1tIHB5
dGVzdAorICBweXRlc3RtYXN0ZXI6IF9QWVRFU1RfREVQPWdpdCtodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QuZ2l0QG1hc3RlcgorICBweXRlc3RmZWF0dXJlczogX1BZVEVTVF9E
RVA9Z2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC5naXRAZmVhdHVyZXMK
IGRlcHM9Ci0gIHB5dGVzdHJlbGVhc2U6IHB5dGVzdAotICBweXRlc3RtYXN0ZXI6IGdpdCtodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QuZ2l0QG1hc3RlcgotICBweXRlc3RmZWF0
dXJlczogZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC5naXRAZmVhdHVy
ZXMKKyAgY292ZXJhZ2U6IGNvdmVyYWdlCisgIHtlbnY6X1BZVEVTVF9ERVA6cHl0ZXN0fQogCiBb
dGVzdGVudjpiZW5jaG1hcmtdCi1jb21tYW5kcz1weS50ZXN0IHtwb3NhcmdzOnRlc3RpbmcvYmVu
Y2htYXJrLnB5fQorY29tbWFuZHM9cHl0ZXN0IHtwb3NhcmdzOnRlc3RpbmcvYmVuY2htYXJrLnB5
fQogZGVwcz0KICAgcHl0ZXN0CiAgIHB5dGVzdC1iZW5jaG1hcmsKIAotW3Rlc3RlbnY6Y2hlY2td
Ci1kZXBzID0KLSAgZmxha2U4Ci0gIHJlc3RydWN0dXJlZHRleHRfbGludAotICBweWdtZW50cwot
Y29tbWFuZHMgPQotICBmbGFrZTggcGx1Z2d5LnB5IHNldHVwLnB5IHRlc3RpbmcKLSAgcnN0LWxp
bnQgQ0hBTkdFTE9HLnJzdCBSRUFETUUucnN0CitbdGVzdGVudjpsaW50aW5nXQorc2tpcF9pbnN0
YWxsID0gdHJ1ZQorYmFzZXB5dGhvbiA9IHB5dGhvbjMuNgorZGVwcyA9IHByZS1jb21taXQKK2Nv
bW1hbmRzID0gcHJlLWNvbW1pdCBydW4gLS1hbGwtZmlsZXMgLS1zaG93LWRpZmYtb24tZmFpbHVy
ZQogCiBbdGVzdGVudjpkb2NzXQogZGVwcyA9CiAgIHNwaGlueAogICBweWdtZW50cwogY29tbWFu
ZHMgPQotICBzcGhpbngtYnVpbGQgLWIgaHRtbCB7dG94aW5pZGlyfS9kb2NzIHt0b3hpbmlkaXJ9
L2J1aWxkL2h0bWwtZG9jcworICBzcGhpbngtYnVpbGQgLVcgLWIgaHRtbCB7dG94aW5pZGlyfS9k
b2NzIHt0b3hpbmlkaXJ9L2J1aWxkL2h0bWwtZG9jcwogCiBbcHl0ZXN0XQogbWludmVyc2lvbj0y
LjAKK3Rlc3RwYXRocyA9IHRlc3RpbmcKICMtLXB5YXJncyAtLWRvY3Rlc3QtbW9kdWxlcyAtLWln
bm9yZT0udG94Ci1hZGRvcHRzPS1yeHNYCi1ub3JlY3Vyc2VkaXJzPS50b3ggamEgLmhnIC5lbnYq
CithZGRvcHRzPS1yIGEKIGZpbHRlcndhcm5pbmdzID0KICAgZXJyb3IKIAogW2ZsYWtlOF0KIG1h
eC1saW5lLWxlbmd0aD05OQorCitbdGVzdGVudjpyZWxlYXNlXQorZGVjcmlwdGlvbiA9IGRvIGEg
cmVsZWFzZSwgcmVxdWlyZWQgcG9zYXJnIG9mIHRoZSB2ZXJzaW9uIG51bWJlcgorYmFzZXB5dGhv
biA9IHB5dGhvbjMKK3NraXBzZGlzdCA9IFRydWUKK3VzZWRldmVsb3AgPSBUcnVlCitwYXNzZW52
ID0gKgorZGVwcyA9CisgICAgY29sb3JhbWEKKyAgICBnaXRweXRob24KKyAgICB0b3duY3JpZXIK
K2NvbW1hbmRzID0gcHl0aG9uIHNjcmlwdHMvcmVsZWFzZS5weSB7cG9zYXJnc30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdzNjLWltcG9ydC5s
b2cKaW5kZXggY2MxZTU5YzFhMjVmODRhNzFmZWNkZTIxNzQ1YjY4NmQ0OWJiMzViNS4uZDMxMDUz
YWU2NDllYTM4MGVhYThjM2IyODU3NTE5MDkyYzM4ZTU4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdzNjLWltcG9ydC5sb2cKQEAgLTE1
LDEwICsxNSwxMiBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvQ0hBTkdFTE9HLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L0hPV1RPUkVMRUFTRS5yc3QKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS9MSUNFTlNFCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvTUFOSUZFU1QuaW4KIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9SRUFETUUucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvYXBwdmV5b3IueW1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcHlw
cm9qZWN0LnRvbWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1cC5jZmcKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1cC5w
eQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L3RveC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIv
RlVORElORy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL0ZVTkRJTkcueW1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEzMDc0NDVlYmJkZTYxMTY5MWQyM2YwNzA4MjU4YmIyZTI4OWM4MGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL0ZVTkRJTkcueW1sCkBAIC0wLDAgKzEsNCBAQAorIyBp
bmZvOgorIyAqIGh0dHBzOi8vaGVscC5naXRodWIuY29tL2VuL2FydGljbGVzL2Rpc3BsYXlpbmct
YS1zcG9uc29yLWJ1dHRvbi1pbi15b3VyLXJlcG9zaXRvcnkKKyMgKiBodHRwczovL3RpZGVsaWZ0
LmNvbS9zdWJzY3JpcHRpb24vaG93LXRvLWNvbm5lY3QtdGlkZWxpZnQtd2l0aC1naXRodWIKK3Rp
ZGVsaWZ0OiBweXBpL3B5dGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NV
RV9URU1QTEFURS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvSVNTVUVfVEVNUExBVEUubWQKaW5k
ZXggZmJjYmIxNmZjMzUxZGU3YjdjZTcyYzI4YzBlN2IzMzZlYWRjNGM5ZS4uZmI4MTQxNmRkNWUw
ZjY2YzM4YjExMDRlN2M1ZmJhN2Q3N2RhYjE0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdp
dGh1Yi9JU1NVRV9URU1QTEFURS5tZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL0lTU1VFX1RF
TVBMQVRFLm1kCkBAIC0xLDggKzEsMTAgQEAKKzwhLS0KIFRoYW5rcyBmb3Igc3VibWl0dGluZyBh
biBpc3N1ZSEKIAotSGVyZSdzIGEgcXVpY2sgY2hlY2tsaXN0IGluIHdoYXQgdG8gaW5jbHVkZToK
K0hlcmUncyBhIHF1aWNrIGNoZWNrbGlzdCBmb3Igd2hhdCB0byBwcm92aWRlOgorLS0+CiAKLS0g
WyBdIEluY2x1ZGUgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgYnVnIG9yIHN1Z2dlc3Rp
b24KLS0gWyBdIGBwaXAgbGlzdGAgb2YgdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQgeW91IGFyZSB1
c2luZworLSBbIF0gYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgYnVnIG9yIHN1Z2dlc3Rp
b24KKy0gWyBdIG91dHB1dCBvZiBgcGlwIGxpc3RgIGZyb20gdGhlIHZpcnR1YWwgZW52aXJvbm1l
bnQgeW91IGFyZSB1c2luZwogLSBbIF0gcHl0ZXN0IGFuZCBvcGVyYXRpbmcgc3lzdGVtIHZlcnNp
b25zCi0tIFsgXSBNaW5pbWFsIGV4YW1wbGUgaWYgcG9zc2libGUKKy0gWyBdIG1pbmltYWwgZXhh
bXBsZSBpZiBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9QVUxMX1JF
UVVFU1RfVEVNUExBVEUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1Q
TEFURS5tZAppbmRleCAyM2E5ZjhjNTY4MzI1NTA3YjBlN2E1YTUyOTNiOTNkMGYxOTI3YjM1Li41
OTBjYzk5NThhZTdiNThlN2VlNDUwNzkyMjAwOGEwOTlkYmNlOTM0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1QTEFURS5tZAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1QTEFURS5tZApAQCAtMSw5ICsxLDEwIEBACis8IS0t
CiBUaGFua3MgZm9yIHN1Ym1pdHRpbmcgYSBQUiwgeW91ciBjb250cmlidXRpb24gaXMgcmVhbGx5
IGFwcHJlY2lhdGVkIQogCi1IZXJlJ3MgYSBxdWljayBjaGVja2xpc3QgdGhhdCBzaG91bGQgYmUg
cHJlc2VudCBpbiBQUnMgKHlvdSBjYW4gZGVsZXRlIHRoaXMgdGV4dCBmcm9tIHRoZSBmaW5hbCBk
ZXNjcmlwdGlvbiwgdGhpcyBpcwotanVzdCBhIGd1aWRlbGluZSk6CitIZXJlIGlzIGEgcXVpY2sg
Y2hlY2tsaXN0IHRoYXQgc2hvdWxkIGJlIHByZXNlbnQgaW4gUFJzLgorKHBsZWFzZSBkZWxldGUg
dGhpcyB0ZXh0IGZyb20gdGhlIGZpbmFsIGRlc2NyaXB0aW9uLCB0aGlzIGlzIGp1c3QgYSBndWlk
ZWxpbmUpCistLT4KIAotLSBbIF0gQ3JlYXRlIGEgbmV3IGNoYW5nZWxvZyBmaWxlIGluIHRoZSBg
Y2hhbmdlbG9nYCBmb2xkZXIsIHdpdGggYSBuYW1lIGxpa2UgYDxJU1NVRSBOVU1CRVI+LjxUWVBF
Pi5yc3RgLiBTZWUgW2NoYW5nZWxvZy9SRUFETUUucnN0XSgvY2hhbmdlbG9nL1JFQURNRS5yc3Qp
IGZvciBkZXRhaWxzLgogLSBbIF0gVGFyZ2V0IHRoZSBgbWFzdGVyYCBicmFuY2ggZm9yIGJ1ZyBm
aXhlcywgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCB0cml2aWFsIGNoYW5nZXMuCiAtIFsgXSBU
YXJnZXQgdGhlIGBmZWF0dXJlc2AgYnJhbmNoIGZvciBuZXcgZmVhdHVyZXMgYW5kIHJlbW92YWxz
L2RlcHJlY2F0aW9ucy4KIC0gWyBdIEluY2x1ZGUgZG9jdW1lbnRhdGlvbiB3aGVuIGFkZGluZyBu
ZXcgZmVhdHVyZXMuCkBAIC0xMSw0ICsxMiw1IEBAIGp1c3QgYSBndWlkZWxpbmUpOgogCiBVbmxl
c3MgeW91ciBjaGFuZ2UgaXMgdHJpdmlhbCBvciBhIHNtYWxsIGRvY3VtZW50YXRpb24gZml4IChl
LmcuLCAgYSB0eXBvIG9yIHJld29yZCBvZiBhIHNtYWxsIHNlY3Rpb24pIHBsZWFzZToKIAorLSBb
IF0gQ3JlYXRlIGEgbmV3IGNoYW5nZWxvZyBmaWxlIGluIHRoZSBgY2hhbmdlbG9nYCBmb2xkZXIs
IHdpdGggYSBuYW1lIGxpa2UgYDxJU1NVRSBOVU1CRVI+LjxUWVBFPi5yc3RgLiBTZWUgW2NoYW5n
ZWxvZy9SRUFETUUucnN0XShodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvYmxv
Yi9tYXN0ZXIvY2hhbmdlbG9nL1JFQURNRS5yc3QpIGZvciBkZXRhaWxzLgogLSBbIF0gQWRkIHlv
dXJzZWxmIHRvIGBBVVRIT1JTYCBpbiBhbHBoYWJldGljYWwgb3JkZXI7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC8uZ2l0aHViL2NvbmZpZy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL2NvbmZp
Zy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODZhOGE5N2U3ODVkMmEwODc5NzEzNmQ2NDE2YzMxMzI4ZDI0Y2Zm
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvY29uZmlnLnltbApAQCAt
MCwwICsxLDIgQEAKK3J0ZDoKKyAgcHJvamVjdDogcHl0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC8uZ2l0aHViL2xhYmVscy50b21sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9sYWJlbHMudG9t
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hZWYxZTkxM2FmODRjYzdhOWZmZjQ0ZjhlNDJkZDQwN2VkZmRlODIxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9sYWJlbHMudG9tbApAQCAtMCww
ICsxLDE0OSBAQAorWyJvczogY3lnd2luIl0KK2NvbG9yID0gIjAwNmI3NSIKK2Rlc2NyaXB0aW9u
ID0gImN5Z3dpbiBwbGF0Zm9ybS1zcGVjaWZpYyBwcm9ibGVtIgorbmFtZSA9ICJvczogY3lnd2lu
IgorCitbIm9zOiBsaW51eCJdCitjb2xvciA9ICIxZDc2ZGIiCitkZXNjcmlwdGlvbiA9ICJsaW51
eCBwbGF0Zm9ybS1zcGVjaWZpYyBwcm9ibGVtIgorbmFtZSA9ICJvczogbGludXgiCisKK1sib3M6
IG1hYyJdCitjb2xvciA9ICJiZmRhZGMiCitkZXNjcmlwdGlvbiA9ICJtYWMgcGxhdGZvcm0tc3Bl
Y2lmaWMgcHJvYmxlbSIKK25hbWUgPSAib3M6IG1hYyIKKworWyJvczogd2luZG93cyJdCitjb2xv
ciA9ICJmYmNhMDQiCitkZXNjcmlwdGlvbiA9ICJ3aW5kb3dzIHBsYXRmb3JtLXNwZWNpZmljIHBy
b2JsZW0iCituYW1lID0gIm9zOiB3aW5kb3dzIgorCitbInBsdWdpbjogYXJnY29tcGxldGUiXQor
Y29sb3IgPSAiZDRjNWY5IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgYXJnY29tcGxl
dGUgYnVpbHRpbiBwbHVnaW4iCituYW1lID0gInBsdWdpbjogYXJnY29tcGxldGUiCisKK1sicGx1
Z2luOiBjYWNoZSJdCitjb2xvciA9ICJjN2RlZjgiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRv
IHRoZSBjYWNoZSBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBjYWNoZSIKKworWyJw
bHVnaW46IGNhcHR1cmUiXQorY29sb3IgPSAiMWQ3NmRiIgorZGVzY3JpcHRpb24gPSAicmVsYXRl
ZCB0byB0aGUgY2FwdHVyZSBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBjYXB0dXJl
IgorCitbInBsdWdpbjogZGVidWdnaW5nIl0KK2NvbG9yID0gImRkNTJhOCIKK2Rlc2NyaXB0aW9u
ID0gInJlbGF0ZWQgdG8gdGhlIGRlYnVnZ2luZyBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1
Z2luOiBkZWJ1Z2dpbmciCisKK1sicGx1Z2luOiBkb2N0ZXN0cyJdCitjb2xvciA9ICJmYWQ4Yzci
CitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBkb2N0ZXN0cyBidWlsdGluIHBsdWdpbiIK
K25hbWUgPSAicGx1Z2luOiBkb2N0ZXN0cyIKKworWyJwbHVnaW46IGp1bml0eG1sIl0KK2NvbG9y
ID0gImM1ZGVmNSIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGhlIGp1bml0eG1sIGJ1aWx0
aW4gcGx1Z2luIgorbmFtZSA9ICJwbHVnaW46IGp1bml0eG1sIgorCitbInBsdWdpbjogbG9nZ2lu
ZyJdCitjb2xvciA9ICJmZjU0MzIiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBsb2dn
aW5nIGJ1aWx0aW4gcGx1Z2luIgorbmFtZSA9ICJwbHVnaW46IGxvZ2dpbmciCisKK1sicGx1Z2lu
OiBtb25rZXlwYXRjaCJdCitjb2xvciA9ICIwZThhMTYiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVk
IHRvIHRoZSBtb25rZXlwYXRjaCBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBtb25r
ZXlwYXRjaCIKKworWyJwbHVnaW46IG5vc2UiXQorY29sb3IgPSAiYmZkYWRjIgorZGVzY3JpcHRp
b24gPSAicmVsYXRlZCB0byB0aGUgbm9zZSBpbnRlZ3JhdGlvbiBidWlsdGluIHBsdWdpbiIKK25h
bWUgPSAicGx1Z2luOiBub3NlIgorCitbInBsdWdpbjogcGFzdGViaW4iXQorY29sb3IgPSAiYmZk
NGYyIgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgcGFzdGViaW4gYnVpbHRpbiBwbHVn
aW4iCituYW1lID0gInBsdWdpbjogcGFzdGViaW4iCisKK1sicGx1Z2luOiBweXRlc3RlciJdCitj
b2xvciA9ICJjNWRlZjUiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBweXRlc3RlciBi
dWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBweXRlc3RlciIKKworWyJwbHVnaW46IHRt
cGRpciJdCitjb2xvciA9ICJiZmQ0ZjIiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSB0
bXBkaXIgYnVpbHRpbiBwbHVnaW4iCituYW1lID0gInBsdWdpbjogdG1wZGlyIgorCitbInBsdWdp
bjogdW5pdHRlc3QiXQorY29sb3IgPSAiMDA2Yjc1IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0
byB0aGUgdW5pdHRlc3QgaW50ZWdyYXRpb24gYnVpbHRpbiBwbHVnaW4iCituYW1lID0gInBsdWdp
bjogdW5pdHRlc3QiCisKK1sicGx1Z2luOiB3YXJuaW5ncyJdCitjb2xvciA9ICJmZWYyYzAiCitk
ZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSB3YXJuaW5ncyBidWlsdGluIHBsdWdpbiIKK25h
bWUgPSAicGx1Z2luOiB3YXJuaW5ncyIKKworWyJwbHVnaW46IHhkaXN0Il0KK2NvbG9yID0gIjUz
MTllNyIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGhlIHhkaXN0IGV4dGVybmFsIHBsdWdp
biIKK25hbWUgPSAicGx1Z2luOiB4ZGlzdCIKKworWyJzdGF0dXM6IGNyaXRpY2FsIl0KK2NvbG9y
ID0gImUxMWQyMSIKK2Rlc2NyaXB0aW9uID0gImdyYXZlIHByb2JsZW0gb3IgdXNhYmlsaXR5IGlz
c3VlIHRoYXQgYWZmZWN0cyBsb3RzIG9mIHVzZXJzIgorbmFtZSA9ICJzdGF0dXM6IGNyaXRpY2Fs
IgorCitbInN0YXR1czogZWFzeSJdCitjb2xvciA9ICJiZmU1YmYiCitkZXNjcmlwdGlvbiA9ICJl
YXN5IGlzc3VlIHRoYXQgaXMgZnJpZW5kbHkgdG8gbmV3IGNvbnRyaWJ1dG9yIgorbmFtZSA9ICJz
dGF0dXM6IGVhc3kiCisKK1sic3RhdHVzOiBoZWxwIHdhbnRlZCJdCitjb2xvciA9ICIxNTk4MTgi
CitkZXNjcmlwdGlvbiA9ICJkZXZlbG9wZXJzIHdvdWxkIGxpa2UgaGVscCBmcm9tIGV4cGVydHMg
b24gdGhpcyB0b3BpYyIKK25hbWUgPSAic3RhdHVzOiBoZWxwIHdhbnRlZCIKKworWyJzdGF0dXM6
IG5lZWRzIGluZm9ybWF0aW9uIl0KK2NvbG9yID0gIjUzMTllNyIKK2Rlc2NyaXB0aW9uID0gInJl
cG9ydGVyIG5lZWRzIHRvIHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbjsgY2FuIGJlIGNsb3NlZCBh
ZnRlciAyIG9yIG1vcmUgd2Vla3Mgb2YgaW5hY3Rpdml0eSIKK25hbWUgPSAic3RhdHVzOiBuZWVk
cyBpbmZvcm1hdGlvbiIKKworWyJ0b3BpYzogY29sbGVjdGlvbiJdCitjb2xvciA9ICIwMDZiNzUi
CitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBjb2xsZWN0aW9uIHBoYXNlIgorbmFtZSA9
ICJ0b3BpYzogY29sbGVjdGlvbiIKKworWyJ0b3BpYzogY29uZmlnIl0KK2NvbG9yID0gIjAwNmI3
NSIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gY29uZmlnIGhhbmRsaW5nLCBhcmd1bWVudCBw
YXJzaW5nIGFuZCBjb25maWcgZmlsZSIKK25hbWUgPSAidG9waWM6IGNvbmZpZyIKKworWyJ0b3Bp
YzogZml4dHVyZXMiXQorY29sb3IgPSAiNTMxOWU3IgorZGVzY3JpcHRpb24gPSAiYW55dGhpbmcg
aW52b2x2aW5nIGZpeHR1cmVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkiCituYW1lID0gInRvcGlj
OiBmaXh0dXJlcyIKKworWyJ0b3BpYzogbWFya3MiXQorY29sb3IgPSAiYjYwMjA1IgorZGVzY3Jp
cHRpb24gPSAicmVsYXRlZCB0byBtYXJrcywgZWl0aGVyIHRoZSBnZW5lcmFsIG1hcmtzIG9yIGJ1
aWx0aW4iCituYW1lID0gInRvcGljOiBtYXJrcyIKKworWyJ0b3BpYzogcGFyYW1ldHJpemUiXQor
Y29sb3IgPSAiZmJjYTA0IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUiCituYW1lID0gInRvcGljOiBwYXJhbWV0cml6ZSIKKworWyJ0b3BpYzogcmVw
b3J0aW5nIl0KK2NvbG9yID0gImZlZjJjMCIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGVy
bWluYWwgb3V0cHV0IGFuZCB1c2VyLWZhY2luZyBtZXNzYWdlcyBhbmQgZXJyb3JzIgorbmFtZSA9
ICJ0b3BpYzogcmVwb3J0aW5nIgorCitbInRvcGljOiByZXdyaXRlIl0KK2NvbG9yID0gIjBlOGEx
NiIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGhlIGFzc2VydGlvbiByZXdyaXRlIG1lY2hh
bmlzbSIKK25hbWUgPSAidG9waWM6IHJld3JpdGUiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8u
Z2l0aHViL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi93M2MtaW1wb3J0Lmxv
ZwppbmRleCBmYjdjZjIyMjU2NGI0MmZmNDgxNzJkYjcwYjMzODMwODYxMzk4YThiLi4zMGE2OWMz
NzEyZWMxZjY5NWUwZjc5MTNjYTdkMjBkYjMyYjllYjMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC8uZ2l0aHViL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvdzNjLWlt
cG9ydC5sb2cKQEAgLTE0LDUgKzE0LDggQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvLmdpdGh1Yi9GVU5ESU5HLnltbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvSVNTVUVf
VEVNUExBVEUubWQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1QTEFURS5t
ZAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvY29uZmlnLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIv
bGFiZWxzLnRvbWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvd29ya2Zsb3dzL21h
aW4ueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi93b3JrZmxvd3MvbWFpbi55bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTAwNmZiMDkyYzg3ZDIwZmFjNmUxMzM0ZTJhMDI1ZDE5MjVjZGJhMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvd29ya2Zsb3dzL21haW4ueW1sCkBAIC0wLDAgKzEs
MTkxIEBACituYW1lOiBtYWluCisKK29uOgorICBwdXNoOgorICAgIGJyYW5jaGVzOgorICAgICAg
LSA0LjYueAorICAgIHRhZ3M6CisgICAgICAtICIqIgorCisgIHB1bGxfcmVxdWVzdDoKKyAgICBi
cmFuY2hlczoKKyAgICAgIC0gNC42LngKKworam9iczoKKyAgYnVpbGQ6CisgICAgcnVucy1vbjog
JHt7IG1hdHJpeC5vcyB9fQorCisgICAgc3RyYXRlZ3k6CisgICAgICBmYWlsLWZhc3Q6IGZhbHNl
CisgICAgICBtYXRyaXg6CisgICAgICAgIG5hbWU6IFsKKyAgICAgICAgICAid2luZG93cy1weTI3
IiwKKyAgICAgICAgICAid2luZG93cy1weTM1IiwKKyAgICAgICAgICAid2luZG93cy1weTM2IiwK
KyAgICAgICAgICAid2luZG93cy1weTM3IiwKKyAgICAgICAgICAid2luZG93cy1weTM3LXBsdWdn
eSIsCisgICAgICAgICAgIndpbmRvd3MtcHkzOCIsCisKKyAgICAgICAgICAidWJ1bnR1LXB5Mjct
cGx1Z2d5IiwKKyAgICAgICAgICAidWJ1bnR1LXB5Mjctbm9ieXRlIiwKKyAgICAgICAgICAidWJ1
bnR1LXB5MzciLAorICAgICAgICAgICJ1YnVudHUtcHkzNy1wbHVnZ3kiLAorICAgICAgICAgICJ1
YnVudHUtcHkzNy1wZXhwZWN0LXB5MzctdHdpc3RlZCIsCisgICAgICAgICAgInVidW50dS1weTM3
LWZyZWV6ZSIsCisgICAgICAgICAgInVidW50dS1weXB5IiwKKyAgICAgICAgICAidWJ1bnR1LXB5
cHkzIiwKKworICAgICAgICAgICJtYWNvcy1weTI3IiwKKyAgICAgICAgICAibWFjb3MtcHkzOCIs
CisKKyAgICAgICAgXQorCisgICAgICAgIGluY2x1ZGU6CisgICAgICAgICAgIyBXaW5kb3dzIGpv
YnMKKyAgICAgICAgICAtIG5hbWU6ICJ3aW5kb3dzLXB5MjciCisgICAgICAgICAgICBweXRob246
ICIyLjciCisgICAgICAgICAgICBvczogd2luZG93cy1sYXRlc3QKKyAgICAgICAgICAgIHRveF9l
bnY6ICJweTI3LXhkaXN0IgorICAgICAgICAgICAgdXNlX2NvdmVyYWdlOiB0cnVlCisgICAgICAg
ICAgLSBuYW1lOiAid2luZG93cy1weTM1IgorICAgICAgICAgICAgcHl0aG9uOiAiMy41IgorICAg
ICAgICAgICAgb3M6IHdpbmRvd3MtbGF0ZXN0CisgICAgICAgICAgICB0b3hfZW52OiAicHkzNS14
ZGlzdCIKKyAgICAgICAgICAgIHVzZV9jb3ZlcmFnZTogdHJ1ZQorICAgICAgICAgIC0gbmFtZTog
IndpbmRvd3MtcHkzNiIKKyAgICAgICAgICAgIHB5dGhvbjogIjMuNiIKKyAgICAgICAgICAgIG9z
OiB3aW5kb3dzLWxhdGVzdAorICAgICAgICAgICAgdG94X2VudjogInB5MzYteGRpc3QiCisgICAg
ICAgICAgICB1c2VfY292ZXJhZ2U6IHRydWUKKyAgICAgICAgICAtIG5hbWU6ICJ3aW5kb3dzLXB5
MzciCisgICAgICAgICAgICBweXRob246ICIzLjciCisgICAgICAgICAgICBvczogd2luZG93cy1s
YXRlc3QKKyAgICAgICAgICAgIHRveF9lbnY6ICJweTM3LXR3aXN0ZWQtbnVtcHkiCisgICAgICAg
ICAgICB1c2VfY292ZXJhZ2U6IHRydWUKKyAgICAgICAgICAtIG5hbWU6ICJ3aW5kb3dzLXB5Mzct
cGx1Z2d5IgorICAgICAgICAgICAgcHl0aG9uOiAiMy43IgorICAgICAgICAgICAgb3M6IHdpbmRv
d3MtbGF0ZXN0CisgICAgICAgICAgICB0b3hfZW52OiAicHkzNy1wbHVnZ3ltYXN0ZXIteGRpc3Qi
CisgICAgICAgICAgICB1c2VfY292ZXJhZ2U6IHRydWUKKyAgICAgICAgICAtIG5hbWU6ICJ3aW5k
b3dzLXB5MzgiCisgICAgICAgICAgICBweXRob246ICIzLjgiCisgICAgICAgICAgICBvczogd2lu
ZG93cy1sYXRlc3QKKyAgICAgICAgICAgIHRveF9lbnY6ICJweTM4LXhkaXN0IgorICAgICAgICAg
ICAgdXNlX2NvdmVyYWdlOiB0cnVlCisKKyAgICAgICAgICAjIFVidW50dSBqb2JzIOKAkyBmaW5k
IHRoZSByZXN0IG9mIHRoZW0gaW4gLnRyYXZpcy55bWwKKyAgICAgICAgICAtIG5hbWU6ICJ1YnVu
dHUtcHkyNy1wbHVnZ3kiCisgICAgICAgICAgICBweXRob246ICIyLjciCisgICAgICAgICAgICBv
czogdWJ1bnR1LWxhdGVzdAorICAgICAgICAgICAgdG94X2VudjogInB5MjctcGx1Z2d5bWFzdGVy
LXhkaXN0IgorICAgICAgICAgICAgdXNlX2NvdmVyYWdlOiB0cnVlCisgICAgICAgICAgLSBuYW1l
OiAidWJ1bnR1LXB5Mjctbm9ieXRlIgorICAgICAgICAgICAgcHl0aG9uOiAiMi43IgorICAgICAg
ICAgICAgb3M6IHVidW50dS1sYXRlc3QKKyAgICAgICAgICAgIHRveF9lbnY6ICJweTI3LW5vYnl0
ZS1udW1weS14ZGlzdCIKKyAgICAgICAgICAgIHVzZV9jb3ZlcmFnZTogdHJ1ZQorICAgICAgICAg
IC0gbmFtZTogInVidW50dS1weTM3IgorICAgICAgICAgICAgcHl0aG9uOiAiMy43IgorICAgICAg
ICAgICAgb3M6IHVidW50dS1sYXRlc3QKKyAgICAgICAgICAgIHRveF9lbnY6ICJweTM3LWxzb2Yt
bnVtcHkteGRpc3QiCisgICAgICAgICAgICB1c2VfY292ZXJhZ2U6IHRydWUKKyAgICAgICAgICAt
IG5hbWU6ICJ1YnVudHUtcHkzNy1wbHVnZ3kiCisgICAgICAgICAgICBweXRob246ICIzLjciCisg
ICAgICAgICAgICBvczogdWJ1bnR1LWxhdGVzdAorICAgICAgICAgICAgdG94X2VudjogInB5Mzct
cGx1Z2d5bWFzdGVyLXhkaXN0IgorICAgICAgICAgICAgdXNlX2NvdmVyYWdlOiB0cnVlCisgICAg
ICAgICAgLSBuYW1lOiAidWJ1bnR1LXB5MzctcGV4cGVjdC1weTM3LXR3aXN0ZWQiCisgICAgICAg
ICAgICBweXRob246ICIzLjciCisgICAgICAgICAgICBvczogdWJ1bnR1LWxhdGVzdAorICAgICAg
ICAgICAgdG94X2VudjogInB5MzctcGV4cGVjdCxweTM3LXR3aXN0ZWQiCisgICAgICAgICAgICB1
c2VfY292ZXJhZ2U6IHRydWUKKyAgICAgICAgICAtIG5hbWU6ICJ1YnVudHUtcHkzNy1mcmVlemUi
CisgICAgICAgICAgICBweXRob246ICIzLjciCisgICAgICAgICAgICBvczogdWJ1bnR1LWxhdGVz
dAorICAgICAgICAgICAgdG94X2VudjogInB5MzctZnJlZXplIgorICAgICAgICAgIC0gbmFtZTog
InVidW50dS1weXB5IgorICAgICAgICAgICAgcHl0aG9uOiAicHlweTIiCisgICAgICAgICAgICBv
czogdWJ1bnR1LWxhdGVzdAorICAgICAgICAgICAgdG94X2VudjogInB5cHkteGRpc3QiCisgICAg
ICAgICAgICB1c2VfY292ZXJhZ2U6IHRydWUKKyAgICAgICAgICAtIG5hbWU6ICJ1YnVudHUtcHlw
eTMiCisgICAgICAgICAgICBweXRob246ICJweXB5MyIKKyAgICAgICAgICAgIG9zOiB1YnVudHUt
bGF0ZXN0CisgICAgICAgICAgICB0b3hfZW52OiAicHlweTMteGRpc3QiCisgICAgICAgICAgICB1
c2VfY292ZXJhZ2U6IHRydWUKKworICAgICAgICAgICMgTWFjT1Mgam9icworICAgICAgICAgIC0g
bmFtZTogIm1hY29zLXB5MjciCisgICAgICAgICAgICBweXRob246ICIyLjciCisgICAgICAgICAg
ICBvczogbWFjb3MtbGF0ZXN0CisgICAgICAgICAgICB0b3hfZW52OiAicHkyNy14ZGlzdCIKKyAg
ICAgICAgICAgIHVzZV9jb3ZlcmFnZTogdHJ1ZQorICAgICAgICAgIC0gbmFtZTogIm1hY29zLXB5
MzgiCisgICAgICAgICAgICBweXRob246ICIzLjgiCisgICAgICAgICAgICBvczogbWFjb3MtbGF0
ZXN0CisgICAgICAgICAgICB0b3hfZW52OiAicHkzOC14ZGlzdCIKKyAgICAgICAgICAgIHVzZV9j
b3ZlcmFnZTogdHJ1ZQorCisgICAgc3RlcHM6CisgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0
QHYxCisgICAgLSBuYW1lOiBTZXQgdXAgUHl0aG9uICR7eyBtYXRyaXgucHl0aG9uIH19IG9uICR7
eyBtYXRyaXgub3MgfX0KKyAgICAgIHVzZXM6IGFjdGlvbnMvc2V0dXAtcHl0aG9uQHYxCisgICAg
ICB3aXRoOgorICAgICAgICBweXRob24tdmVyc2lvbjogJHt7IG1hdHJpeC5weXRob24gfX0KKyAg
ICAtIG5hbWU6IEluc3RhbGwgZGVwZW5kZW5jaWVzCisgICAgICBydW46IHwKKyAgICAgICAgcHl0
aG9uIC1tIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBwaXAKKyAgICAgICAgcGlwIGluc3RhbGwgdG94
IGNvdmVyYWdlCisgICAgLSBuYW1lOiBUZXN0IHdpdGhvdXQgY292ZXJhZ2UKKyAgICAgIGlmOiAi
ISBtYXRyaXgudXNlX2NvdmVyYWdlIgorICAgICAgcnVuOiAidG94IC1lICR7eyBtYXRyaXgudG94
X2VudiB9fSIKKworICAgIC0gbmFtZTogVGVzdCB3aXRoIGNvdmVyYWdlCisgICAgICBpZjogIm1h
dHJpeC51c2VfY292ZXJhZ2UiCisgICAgICBlbnY6CisgICAgICAgIF9QWVRFU1RfVE9YX0NPVkVS
QUdFX1JVTjogImNvdmVyYWdlIHJ1biAtbSIKKyAgICAgICAgQ09WRVJBR0VfUFJPQ0VTU19TVEFS
VDogIi5jb3ZlcmFnZXJjIgorICAgICAgICBfUFlURVNUX1RPWF9FWFRSQV9ERVA6ICJjb3ZlcmFn
ZS1lbmFibGUtc3VicHJvY2VzcyIKKyAgICAgIHJ1bjogInRveCAtdnYgLWUgJHt7IG1hdHJpeC50
b3hfZW52IH19IgorCisgICAgLSBuYW1lOiBQcmVwYXJlIGNvdmVyYWdlIHRva2VuCisgICAgICBp
ZjogKG1hdHJpeC51c2VfY292ZXJhZ2UgJiYgKCBnaXRodWIucmVwb3NpdG9yeSA9PSAncHl0ZXN0
LWRldi9weXRlc3QnIHx8IGdpdGh1Yi5ldmVudF9uYW1lID09ICdwdWxsX3JlcXVlc3QnICkpCisg
ICAgICBydW46IHwKKyAgICAgICAgcHl0aG9uIHNjcmlwdHMvYXBwZW5kX2NvZGVjb3ZfdG9rZW4u
cHkKKyAgICAtIG5hbWU6IFJlcG9ydCBjb3ZlcmFnZQorICAgICAgaWY6IChtYXRyaXgudXNlX2Nv
dmVyYWdlKQorICAgICAgZW52OgorICAgICAgICBDT0RFQ09WX05BTUU6ICR7eyBtYXRyaXgubmFt
ZSB9fQorICAgICAgcnVuOiBiYXNoIHNjcmlwdHMvcmVwb3J0LWNvdmVyYWdlLnNoIC1GIEdIQSwk
e3sgcnVubmVyLm9zIH19CisKKyAgZGVwbG95OgorICAgIGlmOiBnaXRodWIuZXZlbnRfbmFtZSA9
PSAncHVzaCcgJiYgc3RhcnRzV2l0aChnaXRodWIuZXZlbnQucmVmLCAncmVmcy90YWdzJykgJiYg
Z2l0aHViLnJlcG9zaXRvcnkgPT0gJ3B5dGVzdC1kZXYvcHl0ZXN0JworCisgICAgcnVucy1vbjog
dWJ1bnR1LWxhdGVzdAorCisgICAgbmVlZHM6IFtidWlsZF0KKworICAgIHN0ZXBzOgorICAgIC0g
dXNlczogYWN0aW9ucy9jaGVja291dEB2MQorICAgIC0gbmFtZTogU2V0IHVwIFB5dGhvbgorICAg
ICAgdXNlczogYWN0aW9ucy9zZXR1cC1weXRob25AdjEKKyAgICAgIHdpdGg6CisgICAgICAgIHB5
dGhvbi12ZXJzaW9uOiAiMy43IgorICAgIC0gbmFtZTogSW5zdGFsbCBkZXBlbmRlbmNpZXMKKyAg
ICAgIHJ1bjogfAorICAgICAgICBweXRob24gLW0gcGlwIGluc3RhbGwgLS11cGdyYWRlIHBpcAor
ICAgICAgICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgd2hlZWwgc2V0dXB0b29scyB0b3gKKyAgICAt
IG5hbWU6IEJ1aWxkIHBhY2thZ2UKKyAgICAgIHJ1bjogfAorICAgICAgICBweXRob24gc2V0dXAu
cHkgc2Rpc3QgYmRpc3Rfd2hlZWwKKyAgICAtIG5hbWU6IFB1Ymxpc2ggcGFja2FnZSB0byBQeVBJ
CisgICAgICB1c2VzOiBweXBhL2doLWFjdGlvbi1weXBpLXB1Ymxpc2hAbWFzdGVyCisgICAgICB3
aXRoOgorICAgICAgICB1c2VyOiBfX3Rva2VuX18KKyAgICAgICAgcGFzc3dvcmQ6ICR7eyBzZWNy
ZXRzLnB5cGlfdG9rZW4gfX0KKyAgICAtIG5hbWU6IFB1Ymxpc2ggR2l0SHViIHJlbGVhc2Ugbm90
ZXMKKyAgICAgIGVudjoKKyAgICAgICAgR0hfUkVMRUFTRV9OT1RFU19UT0tFTjogJHt7IHNlY3Jl
dHMucmVsZWFzZV9ub3RlcyB9fQorICAgICAgcnVuOiB8CisgICAgICAgIHN1ZG8gYXB0LWdldCBp
bnN0YWxsIHBhbmRvYworICAgICAgICB0b3ggLWUgcHVibGlzaC1naC1yZWxlYXNlLW5vdGVzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0Ly5naXRodWIvd29ya2Zsb3dzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYzNjc1NmRkN2JkYzExNTg1YjE1NWExMjRiZmY0YTYyMzY3MDM1ZjQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0LmxvZwpAQCAtMCww
ICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3dvcmtmbG93cy9tYWluLnlt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQVVUSE9SUyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0FVVEhPUlMK
aW5kZXggM2VkZmRjZjg1ZWE2MmE4M2MzMmM4ZTMxZTM1NmQwNGQwMzVkYmViZC4uODBmY2U1Mzky
OTQzMzQxZTA4ZjUwN2RjNzNkODgwODU5ZWU4NjVkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
QVVUSE9SUworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9BVVRIT1JTCkBAIC02LDIwICs2LDMwIEBAIENvbnRy
aWJ1dG9ycyBpbmNsdWRlOjoKIEFhcm9uIENvbGVtYW4KIEFiZGVhbGkgSksKIEFiaGlqZWV0IEth
c3VyZGUKK0FkYW0gSm9obnNvbgorQWRhbSBVaGxpcgogQWhuIEtpLVdvb2sKK0FraW9taSBLYW1h
a3VyYQogQWxhbiBWZWxhc2NvCiBBbGV4YW5kZXIgSm9obnNvbgogQWxleGVpIEtvemxlbm9rCitB
bGxhbiBGZWxkbWFuCitBbHkgU2l2amkKIEFuYXRvbHkgQnViZW5rb2ZmCiBBbmRlcnMgSG92bcO2
bGxlcgorQW5kcmFzIE1pdHpraQogQW5kcmFzIFRpbQorQW5kcmVhIENpbWF0b3JpYnVzCiBBbmRy
ZWFzIFplaWRsZXIKK0FuZHJleSBQYXJhbW9ub3YKIEFuZHJ6ZWogT3N0cm93c2tpCiBBbmR5IEZy
ZWVsYW5kCiBBbnRob24gdmFuIGRlciBOZXV0CiBBbnRob255IFNoYXcKIEFudGhvbnkgU290dGls
ZQorQW50b24gTG9kZGVyCiBBbnRvbnkgTGVlCitBcmVsIENvcmRlcm8KIEFybWluIFJpZ28KIEFy
b24gQ295bGUKIEFyb24gQ3Vyem9uCkBAIC00MywxMCArNTMsMTYgQEAgQ2hhcmxlcyBDbG91ZAog
Q2hhcm5qaXQgU2lOR0ggKENDU0opCiBDaHJpcyBMYW1iCiBDaHJpc3RpYW4gQm9lbHNlbgorQ2hy
aXN0aWFuIEZldHplcgogQ2hyaXN0aWFuIFRoZXVuZXJ0CiBDaHJpc3RpYW4gVGlzbWVyCiBDaHJp
c3RvcGhlciBHaWxsaW5nCitDaHJpc3RvcGhlciBEaWduYW0KK0NsYXVkaW8gTWFkb3R0bworQ3Jh
enlNZXJseW4KIEN5cnVzIE1hZGVuCitEYW1pYW4gU2tyenlwY3phaworRGhpcmVuIFNlcmFpCiBE
YW5pZWwgR3JhbmEKIERhbmllbCBIYWhsZXIKIERhbmllbCBOdXJpCkBAIC01NSw2ICs3MSw3IEBA
IERhbmllbGxlIEplbmtpbnMKIERhdmUgSHVudAogRGF2aWQgRMOtYXotQmFycXVlcm8KIERhdmlk
IE1vaHIKK0RhdmlkIFN6b3R0ZW4KIERhdmlkIFZpZXJyYQogRGF3LVJhbiBMaW91CiBEZW5pcyBL
aXJpc292CkBAIC03MSw3ICs4OCwxMSBAQCBFbmRyZSBHYWxhY3ppCiBFcmljIEh1bnNiZXJnZXIK
IEVyaWMgU2llZ2VybWFuCiBFcmlrIE0uIEJyYXkKK0V2YW4gS2VwbmVyCitGYWJpZW4gWmFyaWZp
YW4KK0ZhYmlvIFphZHJvem55CiBGZW5nIE1hCitGZXJuYW5kbyBNZXp6YWJvdHRhIFJleQogRmxv
cmlhbiBCcnVoaW4KIEZsb3JpcyBCcnV5bm9vZ2hlCiBHYWJyaWVsIFJlaXMKQEAgLTg5LDYgKzEx
MCw5IEBAIEh1Z28gdmFuIEtlbWVuYWRlCiBIdWkgV2FuZyAoY29sZG5pZ2h0KQogSWFuIEJpY2tp
bmcKIElhbiBMZXNwZXJhbmNlCitJbHlhIEtvbnN0YW50aW5vdgorSW9udcibIFR1cnR1cmljxIMK
K0l3YW4gQnJpcXVlbW9udAogSmFhcCBCcm9la2h1aXplbgogSmFuIEJhbHN0ZXIKIEphbm5lIFZh
bmhhbGEKQEAgLTk3LDYgKzEyMSw3IEBAIEphdmllciBEb21pbmdvIENhbnNpbm8KIEphdmllciBS
b21lcm8KIEplZmYgUmFja2F1Y2thcwogSmVmZiBXaWRtYW4KK0plbm5pIFJpbmtlcgogSm9obiBF
ZGRpZSBBeXNvbgogSm9obiBUb3dsZXIKIEpvbiBTb25lc2VuCkBAIC0xMDQsNiArMTI5LDcgQEAg
Sm9uYXMgT2JyaXN0CiBKb3JkYW4gR3V5bW9uCiBKb3JkYW4gTW9sZG93CiBKb3JkYW4gU3BlaWNo
ZXIKK0pvc2VwaCBIdW5rZWxlcgogSm9zaHVhIEJyb25zb24KIEp1cmtvIEdvc3BvZG5ldGnEhwog
SnVzdHluYSBKYW5jenlzenluCkBAIC0xMTEsOCArMTM3LDExIEBAIEthbGUgS3VuZGVydAogS2F0
YXJ6eW5hIEphY2hpbQogS2F0ZXJpbmEgS291a2lvdQogS2V2aW4gQ294CitLZXZpbiBKLiBGb2xl
eQogS29kaSBCLiBBcmZlcgogS29zdGlzIEFuYWdub3N0b3BvdWxvcworS3Jpc3RvZmZlciBOb3Jk
c3Ryw7ZtCitLeWxlIEFsdGVuZG9yZgogTGF3cmVuY2UgTWl0Y2hlbGwKIExlZSBLYW1lbnRza3kK
IExldiBNYXhpbW92CkBAIC0xMjYsNiArMTU1LDcgQEAgTWFpayBGaWd1cmEKIE1hbmRlZXAgQmh1
dGFuaQogTWFudWVsIEtyZWJiZXIKIE1hcmMgU2NobGFpY2gKK01hcmNlbG8gRHVhcnRlIFRyZXZp
c2FuaQogTWFyY2luIEJhY2hyeQogTWFyayBBYnJhbW93aXR6CiBNYXJrdXMgVW50ZXJ3YWRpdHpl
cgpAQCAtMTQ2LDIyICsxNzYsMzAgQEAgTWljaGFlbCBEcm9ldHRib29tCiBNaWNoYWVsIFNlaWZl
cnQKIE1pY2hhbCBXYWpzemN6dWsKIE1paGFpIENhcG90xIMKK01pa2UgSG95bGUgKGhveWxlbWQp
CiBNaWtlIEx1bmR5CiBNaXJvIEhyb27EjW9rCiBOYXRoYW5pZWwgV2Fpc2Jyb3QKIE5lZCBCYXRj
aGVsZGVyCiBOZXZlbiBNdW5kYXIKK05pY2hvbGFzIERldmVuaXNoCitOaWNob2xhcyBNdXJwaHkK
K05pY2xhcyBPbG9mc3NvbgogTmljb2xhcyBEZWxhYnkKK05pa29sYXkgS29uZHJhdHlldgogT2xl
ZyBQaWRzYWRueWkKIE9sZWcgU3VzaGNoZW5rbwogT2xpdmVyIEJlc3R3YWx0ZXIKIE9tYXIgS29o
bAogT21lciBIYWRhcmkKK09uZMWZZWogU8O6a3VwCitPc2NhciBCZW5qYW1pbgogUGF0cmljayBI
YXllcwogUGF3ZcWCIEFkYW1jemFrCiBQZWRybyBBbGdhcnZpbwogUGlldGVyIE11bGRlcgogUGlv
dHIgQmFuYXN6a2lld2ljegorUHVsa2l0IEdveWFsCiBQdW55YXNobG9rYSBCaXN3YWwKIFF1ZW50
aW4gUHJhZGV0CiBSYWxmIFNjaG1pdHQKQEAgLTE3MSw2ICsyMDksNyBAQCBSYXBoYWVsIFBpZXJ6
aW5hCiBSYXF1ZWwgQWxlZ3JlCiBSYXZpIENoYW5kcmEKIFJvYmVydG8gUG9sbGkKK1JvbGFuZCBQ
dW50YWllcgogUm9tYWluIERvcmd1ZWlsCiBSb21hbiBCb2xzaGFrb3YKIFJvbm55IFBmYW5uc2No
bWlkdApAQCAtMTc4LDggKzIxNywxMSBAQCBSb3NzIExhd2xleQogUnVzc2VsIFdpbmRlcgogUnlh
biBXb29kZW4KIFNhbXVlbCBEaW9uLUdpcmFyZGVhdQorU2FtdWVsIFNlYXJsZXMtQnJ5YW50CiBT
YW11ZWxlIFBlZHJvbmkKK1Nhbmt0IFBldGVyc2J1ZwogU2VnZXYgRmluZXIKK1NlcmhpaSBNb3pn
aG92eWkKIFNpbW9uIEdvbWl6ZWxqCiBTa3lsYXIgRG93bmVzCiBTcmluaXZhcyBSZWRkeSBUaGF0
aXBhcnRoeQpAQCAtMTg4LDYgKzIzMCw5IEBAIFN0ZWZhbiBaaW1tZXJtYW5uCiBTdGVmYW5vIFRh
c2NoaW5pCiBTdGVmZmVuIEFsbG5lcgogU3RlcGhhbiBPYmVybWFubgorU3Zlbi1IZW5kcmlrIEhh
YXNlCitUYWRlayBUZWxlxbx5xYRza2kKK1Rha2FmdW1pIEFyYWtha2kKIFRhcmNpc2lvIEZpc2No
ZXIKIFRhcmVxIEFsYXlhbgogVGVkIFhpYW8KQEAgLTE5NiwxOCArMjQxLDIzIEBAIFRob21hcyBI
aXNjaAogVGltIFN0cmF6bnkKIFRvbSBEYWx0b24KIFRvbSBWaW5lcgorVG9tZXIgS2VyZW4KIFRy
ZXZvciBCZWtvbGF5CiBUeWxlciBHb29kbGV0CiBUenUtcGluZyBDaHVuZwogVmFzaWx5IEt1em5l
dHNvdgorVmljdG9yIE1hcnlhbWEKIFZpY3RvciBVcmlhcnRlCiBWaWRhciBULiBGYXVza2UKK1Zp
cmdpbCBEdXByYXMKIFZpdGFseSBMYXNobWFub3YKIFZsYWQgRHJhZ29zCitWb2xvZHlteXIgUGlz
a3VuCitXaWwgQ29vbGV5CiBXaWxsaWFtIExlZQorV2ltIEdsZW5uCiBXb3V0ZXIgdmFuIEFja29v
eQogWHVhbiBMdW9uZwogWHVlY29uZyBMaWFvCitaYWMgSGF0ZmllbGQtRG9kZHMKIFpvbHTDoW4g
TcOhdMOpCi1Sb2xhbmQgUHVudGFpZXIKLUFsbGFuIEZlbGRtYW4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L0NIQU5HRUxPRy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DSEFOR0VMT0cucnN0CmluZGV4IDIx
YTA5MDQxNGEwZGE3YWFlYmE5NTIyOGNkMjlhZTk4MzEwZTUxNTcuLjg5NDM3NjYzZjU5YTFkMzdm
ZWE4OWVjOTg5ZmRkYTM3Yjc2MjJhMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NIQU5HRUxP
Ry5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQ0hBTkdFTE9HLnJzdApAQCAtMSwzICsxLDEzIEBACis9
PT09PT09PT09PT09PT09PQorQ2hhbmdlbG9nIGhpc3RvcnkKKz09PT09PT09PT09PT09PT09CisK
K1ZlcnNpb25zIGZvbGxvdyBgU2VtYW50aWMgVmVyc2lvbmluZyA8aHR0cHM6Ly9zZW12ZXIub3Jn
Lz5gXyAoYGA8bWFqb3I+LjxtaW5vcj4uPHBhdGNoPmBgKS4KKworQmFja3dhcmQgaW5jb21wYXRp
YmxlIChicmVha2luZykgY2hhbmdlcyB3aWxsIG9ubHkgYmUgaW50cm9kdWNlZCBpbiBtYWpvciB2
ZXJzaW9ucword2l0aCBhZHZhbmNlIG5vdGljZSBpbiB0aGUgKipEZXByZWNhdGlvbnMqKiBzZWN0
aW9uIG9mIHJlbGVhc2VzLgorCisKIC4uCiAgICAgWW91IHNob3VsZCAqTk9UKiBiZSBhZGRpbmcg
bmV3IGNoYW5nZSBsb2cgZW50cmllcyB0byB0aGlzIGZpbGUsIHRoaXMKICAgICBmaWxlIGlzIG1h
bmFnZWQgYnkgdG93bmNyaWVyLiBZb3UgKm1heSogZWRpdCBwcmV2aW91cyBjaGFuZ2UgbG9ncyB0
bwpAQCAtOCw3ICsxOCwxOTg2IEBACiAKIC4uIHRvd25jcmllciByZWxlYXNlIG5vdGVzIHN0YXJ0
CiAKLVB5dGVzdCAzLjYuMiAoMjAxOC0wNi0yMCkKK3B5dGVzdCA0LjYuMTEgKDIwMjAtMDYtMDQp
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCist
IGAjNjMzNCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy82MzM0
PmBfOiBGaXggc3VtbWFyeSBlbnRyaWVzIGFwcGVhcmluZyB0d2ljZSB3aGVuIGBgZi9GYGAgYW5k
IGBgcy9TYGAgcmVwb3J0IGNoYXJzIHdlcmUgdXNlZCBhdCB0aGUgc2FtZSB0aW1lIGluIHRoZSBg
YC1yYGAgY29tbWFuZC1saW5lIG9wdGlvbiAoZm9yIGV4YW1wbGUgYGAtckZmYGApLgorCisgIFRo
ZSB1cHBlciBjYXNlIHZhcmlhbnRzIHdlcmUgbmV2ZXIgZG9jdW1lbnRlZCBhbmQgdGhlIHByZWZl
cnJlZCBmb3JtIHNob3VsZCBiZSB0aGUgbG93ZXIgY2FzZS4KKworCistIGAjNzMxMCA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy83MzEwPmBfOiBGaXggYGBVbmJv
dW5kTG9jYWxFcnJvcjogbG9jYWwgdmFyaWFibGUgJ2xldHRlcicgcmVmZXJlbmNlZCBiZWZvcmUK
KyAgYXNzaWdubWVudGBgIGluIGBgX3B5dGVzdC50ZXJtaW5hbC5weXRlc3RfcmVwb3J0X3Rlc3Rz
dGF0dXMoKWBgCisgIHdoZW4gcGx1Z2lucyByZXR1cm4gcmVwb3J0IG9iamVjdHMgaW4gYW4gdW5j
b252ZW50aW9uYWwgc3RhdGUuCisKKyAgVGhpcyB3YXMgbWFraW5nIGBgcHl0ZXN0X3JlcG9ydF90
ZXN0c3RhdHVzKClgYCBza2lwCisgIGVudGVyaW5nIGlmLWJsb2NrIGJyYW5jaGVzIHRoYXQgZGVj
bGFyZSB0aGUgYGBsZXR0ZXJgYCB2YXJpYWJsZS4KKworICBUaGUgZml4IHdhcyB0byBzZXQgdGhl
IGluaXRpYWwgdmFsdWUgb2YgdGhlIGBgbGV0dGVyYGAgYmVmb3JlCisgIHRoZSBpZi1ibG9jayBj
YXNjYWRlIHNvIHRoYXQgaXQgYWx3YXlzIGhhcyBhIHZhbHVlLgorCisKK3B5dGVzdCA0LjYuMTAg
KDIwMjAtMDUtMDgpCis9PT09PT09PT09PT09PT09PT09PT09PT09PQorCitGZWF0dXJlcworLS0t
LS0tLS0KKworLSBgIzY4NzAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNjg3MD5gXzogTmV3IGBgQ29uZmlnLmludm9jYXRpb25fYXJnc2BgIGF0dHJpYnV0ZSBj
b250YWluaW5nIHRoZSB1bmNoYW5nZWQgYXJndW1lbnRzIHBhc3NlZCB0byBgYHB5dGVzdC5tYWlu
KClgYC4KKworICBSZW1hcms6IHdoaWxlIHRoaXMgaXMgdGVjaG5pY2FsbHkgYSBuZXcgZmVhdHVy
ZSBhbmQgYWNjb3JkaW5nIHRvIG91ciBgcG9saWN5IDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9l
bi9sYXRlc3QvcHkyNy1weTM0LWRlcHJlY2F0aW9uLmh0bWwjd2hhdC1nb2VzLWludG8tNC02LXgt
cmVsZWFzZXM+YF8gaXQgc2hvdWxkIG5vdCBoYXZlIGJlZW4gYmFja3BvcnRlZCwgd2UgaGF2ZSBv
cGVuZWQgYW4gZXhjZXB0aW9uIGluIHRoaXMgcGFydGljdWxhciBjYXNlIGJlY2F1c2UgaXQgZml4
ZXMgYSBzZXJpb3VzIGludGVyYWN0aW9uIHdpdGggYGBweXRlc3QteGRpc3RgYCwgc28gaXQgY2Fu
IGFsc28gYmUgY29uc2lkZXJlZCBhIGJ1Z2ZpeC4KKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2Vz
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzY0MDQgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNjQwND5gXzogUmVtb3ZlIHVzYWdlIG9mIGBgcGFy
c2VyYGAgbW9kdWxlLCBkZXByZWNhdGVkIGluIFB5dGhvbiAzLjkuCisKKworcHl0ZXN0IDQuNi45
ICgyMDIwLTAxLTA0KQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0t
LS0tLS0tLQorCistIGAjNjMwMSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy82MzAxPmBfOiBGaXggYXNzZXJ0aW9uIHJld3JpdGluZyBmb3IgZWdnLWJhc2VkIGRp
c3RyaWJ1dGlvbnMgYW5kIGBgZWRpdGFibGVgYCBpbnN0YWxscyAoYGBwaXAgaW5zdGFsbCAtLWVk
aXRhYmxlYGApLgorCisKK3B5dGVzdCA0LjYuOCAoMjAxOS0xMi0xOSkKKz09PT09PT09PT09PT09
PT09PT09PT09PT0KKworRmVhdHVyZXMKKy0tLS0tLS0tCisKKy0gYCM1NDcxIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU0NzE+YF86IEpVbml0IFhNTCBub3cg
aW5jbHVkZXMgYSB0aW1lc3RhbXAgYW5kIGhvc3RuYW1lIGluIHRoZSB0ZXN0c3VpdGUgdGFnLgor
CisKKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzU0MzAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTQzMD5gXzoganVuaXR4bWw6IExvZ3MgZm9yIGZh
aWxlZCB0ZXN0IGFyZSBub3cgcGFzc2VkIHRvIGp1bml0IHJlcG9ydCBpbiBjYXNlIHRoZSB0ZXN0
IGZhaWxzIGR1cmluZyBjYWxsIHBoYXNlLgorCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2Vz
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzYzNDUgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNjM0NT5gXzogUGluIGBgY29sb3JhbWFgYCB0byBg
YDAuNC4xYGAgb25seSBmb3IgUHl0aG9uIDMuNCBzbyBuZXdlciBQeXRob24gdmVyc2lvbnMgY2Fu
IHN0aWxsIHJlY2VpdmUgY29sb3JhbWEgdXBkYXRlcy4KKworCitweXRlc3QgNC42LjcgKDIwMTkt
MTItMDUpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0t
CisKKy0gYCM1NDc3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzU0Nzc+YF86IFRoZSBYTUwgZmlsZSBwcm9kdWNlZCBieSBgYC0tanVuaXR4bWxgYCBub3cgY29y
cmVjdGx5IGNvbnRhaW4gYSBgYDx0ZXN0c3VpdGVzPmBgIHJvb3QgZWxlbWVudC4KKworCistIGAj
NjA0NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy82MDQ0PmBf
OiBQcm9wZXJseSBpZ25vcmUgYGBGaWxlTm90Rm91bmRFcnJvcmBgIChgYE9TRXJyb3IuZXJybm8g
PT0gTk9FTlRgYCBpbiBQeXRob24gMikgZXhjZXB0aW9ucyB3aGVuIHRyeWluZyB0byByZW1vdmUg
b2xkIHRlbXBvcmFyeSBkaXJlY3RvcmllcywKKyAgZm9yIGluc3RhbmNlIHdoZW4gbXVsdGlwbGUg
cHJvY2Vzc2VzIHRyeSB0byByZW1vdmUgdGhlIHNhbWUgZGlyZWN0b3J5IChjb21tb24gd2l0aCBg
YHB5dGVzdC14ZGlzdGBgCisgIGZvciBleGFtcGxlKS4KKworCitweXRlc3QgNC42LjYgKDIwMTkt
MTAtMTEpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0t
CisKKy0gYCM1NTIzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzU1MjM+YF86IEZpeGVkIHVzaW5nIG11bHRpcGxlIHNob3J0IG9wdGlvbnMgdG9nZXRoZXIgaW4g
dGhlIGNvbW1hbmQtbGluZSAoZm9yIGV4YW1wbGUgYGAtdnNgYCkgaW4gUHl0aG9uIDMuOCsuCisK
KworLSBgIzU1MzcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NTUzNz5gXzogUmVwbGFjZSBgYGltcG9ydGxpYl9tZXRhZGF0YWBgIGJhY2twb3J0IHdpdGggYGBp
bXBvcnRsaWIubWV0YWRhdGFgYCBmcm9tIHRoZQorICBzdGFuZGFyZCBsaWJyYXJ5IG9uIFB5dGhv
biAzLjgrLgorCisKKy0gYCM1ODA2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzU4MDY+YF86IEZpeCAibGV4ZXIiIGJlaW5nIHVzZWQgd2hlbiB1cGxvYWRpbmcg
dG8gYnBhc3RlLm5ldCBmcm9tIGBgLS1wYXN0ZWJpbmBgIHRvICJ0ZXh0Ii4KKworCistIGAjNTkw
MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81OTAyPmBfOiBG
aXggd2FybmluZ3MgYWJvdXQgZGVwcmVjYXRlZCBgYGNtcGBgIGF0dHJpYnV0ZSBpbiBgYGF0dHJz
Pj0xOS4yYGAuCisKKworCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCistIGAjNTgwMSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy81ODAxPmBfOiBGaXhlcyBweXRob24gdmVyc2lvbiBjaGVja3MgKGRldGVjdGVk
IGJ5IGBgZmxha2U4LTIwMjBgYCkgaW4gY2FzZSBweXRob240IGJlY29tZXMgYSB0aGluZy4KKwor
CitweXRlc3QgNC42LjUgKDIwMTktMDgtMDUpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisK
K0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCM0MzQ0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzNDQ+YF86IEZpeCBSdW50aW1lRXJyb3IvU3RvcEl0ZXJh
dGlvbiB3aGVuIHRyeWluZyB0byBjb2xsZWN0IHBhY2thZ2Ugd2l0aCAiX19pbml0X18ucHkiIG9u
bHkuCisKKworLSBgIzU0NzggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNTQ3OD5gXzogRml4IGVuY29kZSBlcnJvciB3aGVuIHVzaW5nIHVuaWNvZGUgc3RyaW5n
cyBpbiBleGNlcHRpb25zIHdpdGggYGBweXRlc3QucmFpc2VzYGAuCisKKworLSBgIzU1MjQgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTUyND5gXzogRml4IGlz
c3VlIHdoZXJlIGBgdG1wX3BhdGhgYCBhbmQgYGB0bXBkaXJgYCB3b3VsZCBub3QgcmVtb3ZlIGRp
cmVjdG9yaWVzIGNvbnRhaW5pbmcgZmlsZXMgbWFya2VkIGFzIHJlYWQtb25seSwKKyAgd2hpY2gg
Y291bGQgbGVhZCB0byBweXRlc3QgY3Jhc2hpbmcgd2hlbiBleGVjdXRlZCBhIHNlY29uZCB0aW1l
IHdpdGggdGhlIGBgLS1iYXNldGVtcGBgIG9wdGlvbi4KKworCistIGAjNTU0NyA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81NTQ3PmBfOiBgYC0tc3RlcC13aXNl
YGAgbm93IGhhbmRsZXMgYGB4ZmFpbChzdHJpY3Q9VHJ1ZSlgYCBtYXJrZXJzIHByb3Blcmx5Lgor
CisKKy0gYCM1NjUwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzU2NTA+YF86IEltcHJvdmVkIG91dHB1dCB3aGVuIHBhcnNpbmcgYW4gaW5pIGNvbmZpZ3VyYXRp
b24gZmlsZSBmYWlscy4KKworCitweXRlc3QgNC42LjQgKDIwMTktMDYtMjgpCis9PT09PT09PT09
PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCM1NDA0IDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU0MDQ+YF86IEVtaXQgYSB3
YXJuaW5nIHdoZW4gYXR0ZW1wdGluZyB0byB1bndyYXAgYSBicm9rZW4gb2JqZWN0IHJhaXNlcyBh
biBleGNlcHRpb24sCisgIGZvciBlYXNpZXIgZGVidWdnaW5nIChgIzUwODAgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTA4MD5gX18pLgorCisKKy0gYCM1NDQ0
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU0NDQ+YF86IEZp
eCBgYC0tc3RlcHdpc2VgYCBtb2RlIHdoZW4gdGhlIGZpcnN0IGZpbGUgcGFzc2VkIG9uIHRoZSBj
b21tYW5kLWxpbmUgZmFpbHMgdG8gY29sbGVjdC4KKworCistIGAjNTQ4MiA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81NDgyPmBfOiBGaXggYnVnIGludHJvZHVj
ZWQgaW4gNC42LjAgY2F1c2luZyBjb2xsZWN0aW9uIGVycm9ycyB3aGVuIHBhc3NpbmcKKyAgbW9y
ZSB0aGFuIDIgcG9zaXRpb25hbCBhcmd1bWVudHMgdG8gYGBweXRlc3QubWFyay5wYXJhbWV0cml6
ZWBgLgorCisKKy0gYCM1NTA1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzU1MDU+YF86IEZpeCBjcmFzaCB3aGVuIGRpc2NvdmVyeSBmYWlscyB3aGlsZSB1c2lu
ZyBgYC1wIG5vOnRlcm1pbmFsYGAuCisKKworcHl0ZXN0IDQuNi4zICgyMDE5LTA2LTExKQorPT09
PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjNTM4
MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MzgzPmBfOiBg
YC1xYGAgaGFzIGFnYWluIGFuIGltcGFjdCBvbiB0aGUgc3R5bGUgb2YgdGhlIGNvbGxlY3RlZCBp
dGVtcworICAoYGAtLWNvbGxlY3Qtb25seWBgKSB3aGVuIGBgLS1sb2ctY2xpLWxldmVsYGAgaXMg
dXNlZC4KKworCistIGAjNTM4OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy81Mzg5PmBfOiBGaXggcmVncmVzc2lvbnMgb2YgYCM1MDYzIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC81MDYzPmBfXyBmb3IgYGBpbXBvcnRsaWJfbWV0
YWRhdGEuUGF0aERpc3RyaWJ1dGlvbmBgIHdoaWNoIGhhdmUgdGhlaXIgYGBmaWxlc2BgIGF0dHJp
YnV0ZSBiZWluZyBgYE5vbmVgYC4KKworCistIGAjNTM5MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MzkwPmBfOiBGaXggcmVncmVzc2lvbiB3aGVyZSB0aGUg
YGBvYmpgYCBhdHRyaWJ1dGUgb2YgYGBUZXN0Q2FzZWBgIGl0ZW1zIHdhcyBubyBsb25nZXIgYm91
bmQgdG8gbWV0aG9kcy4KKworCitweXRlc3QgNC42LjIgKDIwMTktMDYtMDMpCis9PT09PT09PT09
PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCM1MzcwIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUzNzA+YF86IFJldmVydCB1
bnJvbGxpbmcgb2YgYGBhbGwoKWBgIHRvIGZpeCBgYE5hbWVFcnJvcmBgIG9uIG5lc3RlZCBjb21w
cmVoZW5zaW9ucy4KKworCistIGAjNTM3MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy81MzcxPmBfOiBSZXZlcnQgdW5yb2xsaW5nIG9mIGBgYWxsKClgYCB0byBm
aXggaW5jb3JyZWN0IGhhbmRsaW5nIG9mIGdlbmVyYXRvcnMgd2l0aCBgYGlmYGAuCisKKworLSBg
IzUzNzIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTM3Mj5g
XzogUmV2ZXJ0IHVucm9sbGluZyBvZiBgYGFsbCgpYGAgdG8gZml4IGluY29ycmVjdCBhc3NlcnRp
b24gd2hlbiB1c2luZyBgYGFsbCgpYGAgaW4gYW4gZXhwcmVzc2lvbi4KKworCitweXRlc3QgNC42
LjEgKDIwMTktMDYtMDIpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcwor
LS0tLS0tLS0tCisKKy0gYCM1MzU0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzUzNTQ+YF86IEZpeCBgYHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAgd2hlbiB0
aGUgYXJndmFsdWVzIGlzIGFuIGl0ZXJhdG9yLgorCisKKy0gYCM1MzU4IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUzNTg+YF86IEZpeCBhc3NlcnRpb24gcmV3
cml0aW5nIG9mIGBgYWxsKClgYCBjYWxscyB0byBkZWFsIHdpdGggbm9uLWdlbmVyYXRvcnMuCisK
KworcHl0ZXN0IDQuNi4wICgyMDE5LTA1LTMxKQorPT09PT09PT09PT09PT09PT09PT09PT09PQor
CitJbXBvcnRhbnQKKy0tLS0tLS0tLQorCitUaGUgYGA0LjYuWGBgIHNlcmllcyB3aWxsIGJlIHRo
ZSBsYXN0IHNlcmllcyB0byBzdXBwb3J0ICoqUHl0aG9uIDIgYW5kIFB5dGhvbiAzLjQqKi4KKwor
Rm9yIG1vcmUgZGV0YWlscywgc2VlIG91ciBgUHl0aG9uIDIuNyBhbmQgMy40IHN1cHBvcnQgcGxh
biA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3B5MjctcHkzNC1kZXByZWNhdGlv
bi5odG1sPmBfXy4KKworCitGZWF0dXJlcworLS0tLS0tLS0KKworLSBgIzQ1NTkgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDU1OT5gXzogQWRkZWQgdGhlIGBg
anVuaXRfbG9nX3Bhc3NpbmdfdGVzdHNgYCBpbmkgdmFsdWUgd2hpY2ggY2FuIGJlIHVzZWQgdG8g
ZW5hYmxlIG9yIGRpc2FibGUgbG9nZ2luZyBvZiBwYXNzaW5nIHRlc3Qgb3V0cHV0IGluIHRoZSBK
dW5pdCBYTUwgZmlsZS4KKworCistIGAjNDk1NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy80OTU2PmBfOiBweXRlc3RlcidzIGBgdGVzdGRpci5zcGF3bmBgIHVz
ZXMgYGB0bXBkaXJgYCBhcyBIT01FL1VTRVJQUk9GSUxFIGRpcmVjdG9yeS4KKworCistIGAjNTA2
MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDYyPmBfOiBV
bnJvbGwgY2FsbHMgdG8gYGBhbGxgYCB0byBmdWxsIGZvci1sb29wcyB3aXRoIGFzc2VydGlvbiBy
ZXdyaXRpbmcgZm9yIGJldHRlciBmYWlsdXJlIG1lc3NhZ2VzLCBlc3BlY2lhbGx5IHdoZW4gdXNp
bmcgR2VuZXJhdG9yIEV4cHJlc3Npb25zLgorCisKKy0gYCM1MDYzIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUwNjM+YF86IFN3aXRjaCBmcm9tIGBgcGtnX3Jl
c291cmNlc2BgIHRvIGBgaW1wb3J0bGliLW1ldGFkYXRhYGAgZm9yIGVudHJ5cG9pbnQgZGV0ZWN0
aW9uIGZvciBpbXByb3ZlZCBwZXJmb3JtYW5jZSBhbmQgaW1wb3J0IHRpbWUuCisKKworLSBgIzUw
OTEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTA5MT5gXzog
VGhlIG91dHB1dCBmb3IgaW5pIG9wdGlvbnMgaW4gYGAtLWhlbHBgYCBoYXMgYmVlbiBpbXByb3Zl
ZC4KKworCistIGAjNTI2OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy81MjY5PmBfOiBgYHB5dGVzdC5pbXBvcnRvcnNraXBgYCBpbmNsdWRlcyB0aGUgYGBJbXBv
cnRFcnJvcmBgIG5vdyBpbiB0aGUgZGVmYXVsdCBgYHJlYXNvbmBgLgorCisKKy0gYCM1MzExIDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUzMTE+YF86IENhcHR1
cmVkIGxvZ3MgdGhhdCBhcmUgb3V0cHV0IGZvciBlYWNoIGZhaWxpbmcgdGVzdCBhcmUgZm9ybWF0
dGVkIHVzaW5nIHRoZQorICBDb2xvcmVkTGV2ZWxGb3JtYXR0ZXIuCisKKworLSBgIzUzMTIgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTMxMj5gXzogSW1wcm92
ZWQgZm9ybWF0dGluZyBvZiBtdWx0aWxpbmUgbG9nIG1lc3NhZ2VzIGluIFB5dGhvbiAzLgorCisK
KworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzIwNjQgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjA2ND5gXzogVGhlIGRlYnVnZ2luZyBwbHVnaW4gaW1w
b3J0cyB0aGUgd3JhcHBlZCBgYFBkYmBgIGNsYXNzIChgYC0tcGRiY2xzYGApIG9uLWRlbWFuZCBu
b3cuCisKKworLSBgIzQ5MDggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNDkwOD5gXzogVGhlIGBgcHl0ZXN0X2VudGVyX3BkYmBgIGhvb2sgZ2V0cyBjYWxsZWQg
d2l0aCBwb3N0LW1vcnRlbSAoYGAtLXBkYmBgKS4KKworCistIGAjNTAzNiA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDM2PmBfOiBGaXggaXNzdWUgd2hlcmUg
Zml4dHVyZXMgZGVwZW5kZW50IG9uIG90aGVyIHBhcmFtZXRyaXplZCBmaXh0dXJlcyB3b3VsZCBi
ZSBlcnJvbmVvdXNseSBwYXJhbWV0cml6ZWQuCisKKworLSBgIzUyNTYgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTI1Nj5gXzogSGFuZGxlIGludGVybmFsIGVy
cm9yIGR1ZSB0byBhIGxvbmUgc3Vycm9nYXRlIHVuaWNvZGUgY2hhcmFjdGVyIG5vdCBiZWluZyBy
ZXByZXNlbnRhYmxlIGluIEp5dGhvbi4KKworCistIGAjNTI1NyA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MjU3PmBfOiBFbnN1cmUgdGhhdCBgYHN5cy5zdGRv
dXQubW9kZWBgIGRvZXMgbm90IGluY2x1ZGUgYGAnYidgYCBhcyBpdCBpcyBhIHRleHQgc3RyZWFt
LgorCisKKy0gYCM1Mjc4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzUyNzg+YF86IFB5dGVzdCdzIGludGVybmFsIHB5dGhvbiBwbHVnaW4gY2FuIGJlIGRpc2Fi
bGVkIHVzaW5nIGBgLXAgbm86cHl0aG9uYGAgYWdhaW4uCisKKworLSBgIzUyODYgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTI4Nj5gXzogRml4IGlzc3VlIHdp
dGggYGBkaXNhYmxlX3Rlc3RfaWRfZXNjYXBpbmdfYW5kX2ZvcmZlaXRfYWxsX3JpZ2h0c190b19j
b21tdW5pdHlfc3VwcG9ydGBgIG9wdGlvbiBub3Qgd29ya2luZyB3aGVuIHVzaW5nIGEgbGlzdCBv
ZiB0ZXN0IElEcyBpbiBwYXJhbWV0cml6ZWQgdGVzdHMuCisKKworLSBgIzUzMzAgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTMzMD5gXzogU2hvdyB0aGUgdGVz
dCBtb2R1bGUgYmVpbmcgY29sbGVjdGVkIHdoZW4gZW1pdHRpbmcgYGBQeXRlc3RDb2xsZWN0aW9u
V2FybmluZ2BgIG1lc3NhZ2VzIGZvcgorICB0ZXN0IGNsYXNzZXMgd2l0aCBgYF9faW5pdF9fYGAg
YW5kIGBgX19uZXdfX2BgIG1ldGhvZHMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gcGluIGRvd24gdGhl
IHByb2JsZW0uCisKKworLSBgIzUzMzMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNTMzMz5gXzogRml4IHJlZ3Jlc3Npb24gaW4gNC41LjAgd2l0aCBgYC0tbGZg
YCBub3QgcmUtcnVubmluZyBhbGwgdGVzdHMgd2l0aCBrbm93biBmYWlsdXJlcyBmcm9tIG5vbi1z
ZWxlY3RlZCB0ZXN0cy4KKworCisKK0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworLSBgIzUyNTAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNTI1MD5gXzogRXhwYW5kIGRvY3Mgb24gdXNlIG9mIGBgc2V0ZW52YGAgYW5k
IGBgZGVsZW52YGAgd2l0aCBgYG1vbmtleXBhdGNoYGAuCisKKworcHl0ZXN0IDQuNS4wICgyMDE5
LTA1LTExKQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitGZWF0dXJlcworLS0tLS0tLS0K
KworLSBgIzQ4MjYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NDgyNj5gXzogQSB3YXJuaW5nIGlzIG5vdyBlbWl0dGVkIHdoZW4gdW5rbm93biBtYXJrcyBhcmUg
dXNlZCBhcyBhIGRlY29yYXRvci4KKyAgVGhpcyBpcyBvZnRlbiBkdWUgdG8gYSB0eXBvLCB3aGlj
aCBjYW4gbGVhZCB0byBzaWxlbnRseSBicm9rZW4gdGVzdHMuCisKKworLSBgIzQ5MDcgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDkwNz5gXzogU2hvdyBYRmFp
bCByZWFzb24gYXMgcGFydCBvZiBKVW5pdFhNTCBtZXNzYWdlIGZpZWxkLgorCisKKy0gYCM1MDEz
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUwMTM+YF86IE1l
c3NhZ2VzIGZyb20gY3Jhc2ggcmVwb3J0cyBhcmUgZGlzcGxheWVkIHdpdGhpbiB0ZXN0IHN1bW1h
cmllcyBub3csIHRydW5jYXRlZCB0byB0aGUgdGVybWluYWwgd2lkdGguCisKKworLSBgIzUwMjMg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTAyMz5gXzogTmV3
IGZsYWcgYGAtLXN0cmljdC1tYXJrZXJzYGAgdGhhdCB0cmlnZ2VycyBhbiBlcnJvciB3aGVuIHVu
a25vd24gbWFya2VycyAoZS5nLiB0aG9zZSBub3QgcmVnaXN0ZXJlZCB1c2luZyB0aGUgYG1hcmtl
cnMgb3B0aW9uYF8gaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSkgYXJlIHVzZWQgaW4gdGhlIHRl
c3Qgc3VpdGUuCisKKyAgVGhlIGV4aXN0aW5nIGBgLS1zdHJpY3RgYCBvcHRpb24gaGFzIHRoZSBz
YW1lIGJlaGF2aW9yIGN1cnJlbnRseSwgYnV0IGNhbiBiZSBhdWdtZW50ZWQgaW4gdGhlIGZ1dHVy
ZSBmb3IgYWRkaXRpb25hbCBjaGVja3MuCisKKyAgLi4gX2BtYXJrZXJzIG9wdGlvbmA6IGh0dHBz
Oi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9yZWZlcmVuY2UuaHRtbCNjb25mdmFsLW1hcmtl
cnMKKworCistIGAjNTAyNiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy81MDI2PmBfOiBBc3NlcnRpb24gZmFpbHVyZSBtZXNzYWdlcyBmb3Igc2VxdWVuY2VzIGFu
ZCBkaWN0cyBjb250YWluIHRoZSBudW1iZXIgb2YgZGlmZmVyZW50IGl0ZW1zIG5vdy4KKworCist
IGAjNTAzNCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDM0
PmBfOiBJbXByb3ZlIHJlcG9ydGluZyB3aXRoIGBgLS1sZmBgIGFuZCBgYC0tZmZgYCAocnVuLWxh
c3QtZmFpbHVyZSkuCisKKworLSBgIzUwMzUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNTAzNT5gXzogVGhlIGBgLS1jYWNoZS1zaG93YGAgb3B0aW9uL2FjdGlv
biBhY2NlcHRzIGFuIG9wdGlvbmFsIGdsb2IgdG8gc2hvdyBvbmx5IG1hdGNoaW5nIGNhY2hlIGVu
dHJpZXMuCisKKworLSBgIzUwNTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvNTA1OT5gXzogU3RhbmRhcmQgaW5wdXQgKHN0ZGluKSBjYW4gYmUgZ2l2ZW4gdG8g
cHl0ZXN0ZXIncyBgYFRlc3RkaXIucnVuKClgYCBhbmQgYGBUZXN0ZGlyLnBvcGVuKClgYC4KKwor
CistIGAjNTA2OCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81
MDY4PmBfOiBUaGUgYGAtcmBgIG9wdGlvbiBsZWFybnQgYWJvdXQgYGBBYGAgdG8gZGlzcGxheSBh
bGwgcmVwb3J0cyAoaW5jbHVkaW5nIHBhc3NlZCBvbmVzKSBpbiB0aGUgc2hvcnQgdGVzdCBzdW1t
YXJ5LgorCisKKy0gYCM1MTA4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzUxMDg+YF86IFRoZSBzaG9ydCB0ZXN0IHN1bW1hcnkgaXMgZGlzcGxheWVkIGFmdGVy
IHBhc3NlcyB3aXRoIG91dHB1dCAoYGAtclBgYCkuCisKKworLSBgIzUxNzIgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTE3Mj5gXzogVGhlIGBgLS1sYXN0LWZh
aWxlZGBgIChgYC0tbGZgYCkgb3B0aW9uIGdvdCBzbWFydGVyIGFuZCB3aWxsIG5vdyBza2lwIGVu
dGlyZSBmaWxlcyBpZiBhbGwgdGVzdHMKKyAgb2YgdGhhdCB0ZXN0IGZpbGUgaGF2ZSBwYXNzZWQg
aW4gcHJldmlvdXMgcnVucywgZ3JlYXRseSBzcGVlZGluZyB1cCBjb2xsZWN0aW9uLgorCisKKy0g
YCM1MTc3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUxNzc+
YF86IEludHJvZHVjZSBuZXcgc3BlY2lmaWMgd2FybmluZyBgYFB5dGVzdFdhcm5pbmdgYCBzdWJj
bGFzc2VzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGZpbHRlciB3YXJuaW5ncyBiYXNlZCBvbiB0aGUg
Y2xhc3MsIHJhdGhlciB0aGFuIG9uIHRoZSBtZXNzYWdlLiBUaGUgbmV3IHN1YmNsYXNzZXMgYXJl
OgorCisKKyAgKiBgYFB5dGVzdEFzc2VydFJld3JpdGVXYXJuaW5nYGAKKworICAqIGBgUHl0ZXN0
Q2FjaGVXYXJuaW5nYGAKKworICAqIGBgUHl0ZXN0Q29sbGVjdGlvbldhcm5pbmdgYAorCisgICog
YGBQeXRlc3RDb25maWdXYXJuaW5nYGAKKworICAqIGBgUHl0ZXN0VW5oYW5kbGVkQ29yb3V0aW5l
V2FybmluZ2BgCisKKyAgKiBgYFB5dGVzdFVua25vd25NYXJrV2FybmluZ2BgCisKKworLSBgIzUy
MDIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTIwMj5gXzog
TmV3IGBgcmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eWBgIHNlc3Npb24tc2NvcGVkIGZpeHR1cmUg
YWxsb3dzIHVzZXJzIHRvIGxvZyBgYDxwcm9wZXJ0eT5gYCB0YWdzIGF0IHRoZSBgYHRlc3RzdWl0
ZWBgCisgIGxldmVsIHdpdGggdGhlIGBganVuaXR4bWxgYCBwbHVnaW4uCisKKyAgVGhlIGdlbmVy
YXRlZCBYTUwgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBsYXRlc3QgeHVuaXQgc3RhbmRhcmQsIGNv
bnRyYXJ5IHRvCisgIHRoZSBwcm9wZXJ0aWVzIHJlY29yZGVkIGJ5IGBgcmVjb3JkX3Byb3BlcnR5
YGAgYW5kIGBgcmVjb3JkX3htbF9hdHRyaWJ1dGVgYC4KKworCistIGAjNTIxNCA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MjE0PmBfOiBUaGUgZGVmYXVsdCBs
b2dnaW5nIGZvcm1hdCBoYXMgYmVlbiBjaGFuZ2VkIHRvIGltcHJvdmUgcmVhZGFiaWxpdHkuIEhl
cmUgaXMgYW4KKyAgZXhhbXBsZSBvZiBhIHByZXZpb3VzIGxvZ2dpbmcgbWVzc2FnZTo6CisKKyAg
ICAgIHRlc3RfbG9nX2NsaV9lbmFibGVkX2Rpc2FibGVkLnB5ICAgIDMgQ1JJVElDQUwgY3JpdGlj
YWwgbWVzc2FnZSBsb2dnZWQgYnkgdGVzdAorCisgIFRoaXMgaGFzIG5vdyBiZWNvbWU6OgorCisg
ICAgICBDUklUSUNBTCByb290OnRlc3RfbG9nX2NsaV9lbmFibGVkX2Rpc2FibGVkLnB5OjMgY3Jp
dGljYWwgbWVzc2FnZSBsb2dnZWQgYnkgdGVzdAorCisgIFRoZSBmb3JtYXR0aW5nIGNhbiBiZSBj
aGFuZ2VkIHRocm91Z2ggdGhlIGBsb2dfZm9ybWF0IDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9l
bi9sYXRlc3QvcmVmZXJlbmNlLmh0bWwjY29uZnZhbC1sb2dfZm9ybWF0PmBfXyBjb25maWd1cmF0
aW9uIG9wdGlvbi4KKworCistIGAjNTIyMCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy81MjIwPmBfOiBgYC0tZml4dHVyZXNgYCBub3cgYWxzbyBzaG93cyBmaXh0
dXJlIHNjb3BlIGZvciBzY29wZXMgb3RoZXIgdGhhbiBgYCJmdW5jdGlvbiJgYC4KKworCisKK0J1
ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCM1MTEzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzUxMTM+YF86IERlc2VsZWN0ZWQgaXRlbXMgZnJvbSBwbHVnaW5z
IHVzaW5nIGBgcHl0ZXN0X2NvbGxlY3RfbW9kaWZ5aXRlbXNgYCBhcyBhIGhvb2t3cmFwcGVyIGFy
ZSBjb3JyZWN0bHkgcmVwb3J0ZWQgbm93LgorCisKKy0gYCM1MTQ0IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUxNDQ+YF86IFdpdGggdXNhZ2UgZXJyb3JzIGBg
ZXhpdHN0YXR1c2BgIGlzIHNldCB0byBgYEVYSVRfVVNBR0VFUlJPUmBgIGluIHRoZSBgYHB5dGVz
dF9zZXNzaW9uZmluaXNoYGAgaG9vayBub3cgYXMgZXhwZWN0ZWQuCisKKworLSBgIzUyMzUgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTIzNT5gXzogYGBvdXRj
b21lLmV4aXRgYCBpcyBub3QgdXNlZCB3aXRoIGBgRU9GYGAgaW4gdGhlIHBkYiB3cmFwcGVyIGFu
eW1vcmUsIGJ1dCBvbmx5IHdpdGggYGBxdWl0YGAuCisKKworCitJbXByb3ZlZCBEb2N1bWVudGF0
aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCM0OTM1IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5MzU+YF86IEV4cGFuZCBkb2NzIG9uIHJlZ2lz
dGVyaW5nIG1hcmtzIGFuZCB0aGUgZWZmZWN0IG9mIGBgLS1zdHJpY3RgYC4KKworCisKK1RyaXZp
YWwvSW50ZXJuYWwgQ2hhbmdlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCM0OTQy
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5NDI+YF86IGBg
bG9nZ2luZy5yYWlzZUV4Y2VwdGlvbnNgYCBpcyBub3Qgc2V0IHRvIGBgRmFsc2VgYCBhbnltb3Jl
LgorCisKKy0gYCM1MDEzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzUwMTM+YF86IHB5dGVzdCBub3cgZGVwZW5kcyBvbiBgd2N3aWR0aCA8aHR0cHM6Ly9weXBp
Lm9yZy9wcm9qZWN0L3djd2lkdGg+YF9fIHRvIHByb3Blcmx5IHRyYWNrIHVuaWNvZGUgY2hhcmFj
dGVyIHNpemVzIGZvciBtb3JlIHByZWNpc2UgdGVybWluYWwgb3V0cHV0LgorCisKKy0gYCM1MDU5
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUwNTk+YF86IHB5
dGVzdGVyJ3MgYGBUZXN0ZGlyLnBvcGVuKClgYCB1c2VzIGBgc3Rkb3V0YGAgYW5kIGBgc3RkZXJy
YGAgdmlhIGtleXdvcmQgYXJndW1lbnRzIHdpdGggZGVmYXVsdHMgbm93IChgYHN1YnByb2Nlc3Mu
UElQRWBgKS4KKworCistIGAjNTA2OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy81MDY5PmBfOiBUaGUgY29kZSBmb3IgdGhlIHNob3J0IHRlc3Qgc3VtbWFyeSBp
biB0aGUgdGVybWluYWwgd2FzIG1vdmVkIHRvIHRoZSB0ZXJtaW5hbCBwbHVnaW4uCisKKworLSBg
IzUwODIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTA4Mj5g
XzogSW1wcm92ZWQgdmFsaWRhdGlvbiBvZiBrd2FyZ3MgZm9yIHZhcmlvdXMgbWV0aG9kcyBpbiB0
aGUgcHl0ZXN0ZXIgcGx1Z2luLgorCisKKy0gYCM1MjAyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUyMDI+YF86IGBgcmVjb3JkX3Byb3BlcnR5YGAgbm93IGVt
aXRzIGEgYGBQeXRlc3RXYXJuaW5nYGAgd2hlbiB1c2VkIHdpdGggYGBqdW5pdF9mYW1pbHk9eHVu
aXQyYGA6IHRoZSBmaXh0dXJlIGdlbmVyYXRlcworICBgYHByb3BlcnR5YGAgdGFncyBhcyBjaGls
ZHJlbiBvZiBgYHRlc3RjYXNlYGAsIHdoaWNoIGlzIG5vdCBwZXJtaXR0ZWQgYWNjb3JkaW5nIHRv
IHRoZSBtb3N0CisgIGByZWNlbnQgc2NoZW1hIDxodHRwczovL2dpdGh1Yi5jb20vamVua2luc2Np
L3h1bml0LXBsdWdpbi9ibG9iL21hc3Rlci8KKyAgc3JjL21haW4vcmVzb3VyY2VzL29yZy9qZW5r
aW5zY2kvcGx1Z2lucy94dW5pdC90eXBlcy9tb2RlbC94c2QvanVuaXQtMTAueHNkPmBfXy4KKwor
CistIGAjNTIzOSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81
MjM5PmBfOiBQaW4gYGBwbHVnZ3lgYCB0byBgYDwgMS4wYGAgc28gd2UgZG9uJ3QgdXBkYXRlIHRv
IGBgMS4wYGAgYXV0b21hdGljYWxseSB3aGVuCisgIGl0IGdldHMgcmVsZWFzZWQ6IHRoZXJlIGFy
ZSBwbGFubmVkIGJyZWFraW5nIGNoYW5nZXMsIGFuZCB3ZSB3YW50IHRvIGVuc3VyZQorICBweXRl
c3QgcHJvcGVybHkgc3VwcG9ydHMgYGBwbHVnZ3kgMS4wYGAuCisKKworcHl0ZXN0IDQuNC4yICgy
MDE5LTA1LTA4KQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0t
LS0tLQorCistIGAjNTA4OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy81MDg5PmBfOiBGaXggY3Jhc2ggY2F1c2VkIGJ5IGVycm9yIGluIGBgX19yZXByX19gYCBm
dW5jdGlvbiB3aXRoIGJvdGggYGBzaG93bG9jYWxzYGAgYW5kIHZlcmJvc2Ugb3V0cHV0IGVuYWJs
ZWQuCisKKworLSBgIzUxMzkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNTEzOT5gXzogRWxpbWluYXRlIGNvcmUgZGVwZW5kZW5jeSBvbiAndGVybWluYWwnIHBs
dWdpbi4KKworCistIGAjNTIyOSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy81MjI5PmBfOiBSZXF1aXJlIGBgcGx1Z2d5Pj0wLjExLjBgYCB3aGljaCByZXZlcnRz
IGEgZGVwZW5kZW5jeSB0byBgYGltcG9ydGxpYi1tZXRhZGF0YWBgIGFkZGVkIGluIGBgMC4xMC4w
YGAuCisgIFRoZSBgYGltcG9ydGxpYi1tZXRhZGF0YWBgIHBhY2thZ2UgY2Fubm90IGJlIGltcG9y
dGVkIHdoZW4gaW5zdGFsbGVkIGFzIGFuIGVnZyBhbmQgY2F1c2VzIGlzc3VlcyB3aGVuIHJlbHlp
bmcgb24gYGBzZXR1cC5weWBgIHRvIGluc3RhbGwgdGVzdCBkZXBlbmRlbmNpZXMuCisKKworCitJ
bXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCM1MTcx
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUxNzE+YF86IERv
YzogYGBweXRlc3RfaWdub3JlX2NvbGxlY3RgYCwgYGBweXRlc3RfY29sbGVjdF9kaXJlY3Rvcnlg
YCwgYGBweXRlc3RfY29sbGVjdF9maWxlYGAgYW5kIGBgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9k
dWxlYGAgaG9va3MncyAncGF0aCcgcGFyYW1ldGVyIGRvY3VtZW50ZWQgdHlwZSBpcyBub3cgYGBw
eS5wYXRoLmxvY2FsYGAKKworCistIGAjNTE4OCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy81MTg4PmBfOiBJbXByb3ZlIGhlbHAgZm9yIGBgLS1ydW54ZmFpbGBg
IGZsYWcuCisKKworCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCistIGAjNTE4MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy81MTgyPmBfOiBSZW1vdmVkIGludGVybmFsIGFuZCB1bnVzZWQgYGBfcHl0ZXN0LmRl
cHJlY2F0ZWQuTUFSS19JTkZPX0FUVFJJQlVURWBgLgorCisKK3B5dGVzdCA0LjQuMSAoMjAxOS0w
NC0xNSkKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVnIEZpeGVzCistLS0tLS0tLS0K
KworLSBgIzUwMzEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NTAzMT5gXzogRW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBwcm9wZXJseSByZXN0b3JlZCB3aGVu
IHVzaW5nIHB5dGVzdGVyJ3MgYGB0ZXN0ZGlyYGAgZml4dHVyZS4KKworCistIGAjNTAzOSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDM5PmBfOiBGaXggcmVn
cmVzc2lvbiB3aXRoIGBgLS1wZGJjbHNgYCwgd2hpY2ggc3RvcHBlZCB3b3JraW5nIHdpdGggbG9j
YWwgbW9kdWxlcyBpbiA0LjAuMC4KKworCistIGAjNTA5MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDkyPmBfOiBQcm9kdWNlIGEgd2FybmluZyB3aGVuIHVu
a25vd24ga2V5d29yZHMgYXJlIHBhc3NlZCB0byBgYHB5dGVzdC5wYXJhbSguLi4pYGAuCisKKwor
LSBgIzUwOTggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTA5
OD5gXzogSW52YWxpZGF0ZSBpbXBvcnQgY2FjaGVzIHdpdGggYGBtb25rZXlwYXRjaC5zeXNwYXRo
X3ByZXBlbmRgYCwgd2hpY2ggaXMgcmVxdWlyZWQgd2l0aCBuYW1lc3BhY2UgcGFja2FnZXMgYmVp
bmcgdXNlZC4KKworCitweXRlc3QgNC40LjAgKDIwMTktMDMtMjkpCis9PT09PT09PT09PT09PT09
PT09PT09PT09CisKK0ZlYXR1cmVzCistLS0tLS0tLQorCistIGAjMjIyNCA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMjI0PmBfOiBgYGFzeW5jYGAgdGVzdCBm
dW5jdGlvbnMgYXJlIHNraXBwZWQgYW5kIGEgd2FybmluZyBpcyBlbWl0dGVkIHdoZW4gYSBzdWl0
YWJsZQorICBhc3luYyBwbHVnaW4gaXMgbm90IGluc3RhbGxlZCAoc3VjaCBhcyBgYHB5dGVzdC1h
c3luY2lvYGAgb3IgYGBweXRlc3QtdHJpb2BgKS4KKworICBQcmV2aW91c2x5IGBgYXN5bmNgYCBm
dW5jdGlvbnMgd291bGQgbm90IGV4ZWN1dGUgYXQgYWxsIGJ1dCBzdGlsbCBiZSBtYXJrZWQgYXMg
InBhc3NlZCIuCisKKworLSBgIzI0ODIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMjQ4Mj5gXzogSW5jbHVkZSBuZXcgYGBkaXNhYmxlX3Rlc3RfaWRfZXNjYXBp
bmdfYW5kX2ZvcmZlaXRfYWxsX3JpZ2h0c190b19jb21tdW5pdHlfc3VwcG9ydGBgIG9wdGlvbiB0
byBkaXNhYmxlIGFzY2lpLWVzY2FwaW5nIGluIHBhcmFtZXRyaXplZCB2YWx1ZXMuIFRoaXMgbWF5
IGNhdXNlIGEgc2VyaWVzIG9mIHByb2JsZW1zIGFuZCBhcyB0aGUgbmFtZSBtYWtlcyBjbGVhciwg
dXNlIGF0IHlvdXIgb3duIHJpc2suCisKKworLSBgIzQ3MTggPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDcxOD5gXzogVGhlIGBgLXBgYCBvcHRpb24gY2FuIG5v
dyBiZSB1c2VkIHRvIGVhcmx5LWxvYWQgcGx1Z2lucyBhbHNvIGJ5IGVudHJ5LXBvaW50IG5hbWUs
IGluc3RlYWQgb2YganVzdAorICBieSBtb2R1bGUgbmFtZS4KKworICBUaGlzIG1ha2VzIGl0IHBv
c3NpYmxlIHRvIGVhcmx5IGxvYWQgZXh0ZXJuYWwgcGx1Z2lucyBsaWtlIGBgcHl0ZXN0LWNvdmBg
IGluIHRoZSBjb21tYW5kLWxpbmU6OgorCisgICAgICBweXRlc3QgLXAgcHl0ZXN0X2NvdgorCisK
Ky0gYCM0ODU1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ4
NTU+YF86IFRoZSBgYC0tcGRiY2xzYGAgb3B0aW9uIGhhbmRsZXMgY2xhc3NlcyB2aWEgbW9kdWxl
IGF0dHJpYnV0ZXMgbm93IChlLmcuCisgIGBgcGRiOnBkYi5QZGJgYCB3aXRoIGBwZGIrK2BfKSwg
YW5kIGl0cyB2YWxpZGF0aW9uIHdhcyBpbXByb3ZlZC4KKworICAuLiBfcGRiKys6IGh0dHBzOi8v
cHlwaS5vcmcvcHJvamVjdC9wZGJwcC8KKworCistIGAjNDg3NSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80ODc1PmBfOiBUaGUgYHRlc3RwYXRocyA8aHR0cHM6
Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3JlZmVyZW5jZS5odG1sI2NvbmZ2YWwtdGVzdHBh
dGhzPmBfXyBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBub3cgZGlzcGxheWVkIG5leHQKKyAgdG8g
dGhlIGBgcm9vdGRpcmBgIGFuZCBgYGluaWZpbGVgYCBsaW5lcyBpbiB0aGUgcHl0ZXN0IGhlYWRl
ciBpZiB0aGUgb3B0aW9uIGlzIGluIGVmZmVjdCwgaS5lLiwgZGlyZWN0b3JpZXMgb3IgZmlsZSBu
YW1lcyB3ZXJlCisgIG5vdCBleHBsaWNpdGx5IHBhc3NlZCBpbiB0aGUgY29tbWFuZCBsaW5lLgor
CisgIEFsc28sIGBgaW5pZmlsZWBgIGlzIG9ubHkgZGlzcGxheWVkIGlmIHRoZXJlJ3MgYSBjb25m
aWd1cmF0aW9uIGZpbGUsIGluc3RlYWQgb2YgYW4gZW1wdHkgYGBpbmlmaWxlOmBgIHN0cmluZy4K
KworCistIGAjNDkxMSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy80OTExPmBfOiBEb2N0ZXN0cyBjYW4gYmUgc2tpcHBlZCBub3cgZHluYW1pY2FsbHkgdXNpbmcg
YGBweXRlc3Quc2tpcCgpYGAuCisKKworLSBgIzQ5MjAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDkyMD5gXzogSW50ZXJuYWwgcmVmYWN0b3JpbmdzIGhhdmUg
YmVlbiBtYWRlIGluIG9yZGVyIHRvIG1ha2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZQorICBg
cHl0ZXN0LXN1YnRlc3RzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qtc3Vi
dGVzdHM+YF9fIHBsdWdpbgorICBwb3NzaWJsZSwgd2hpY2ggYWRkcyB1bml0dGVzdCBzdWItdGVz
dCBzdXBwb3J0IGFuZCBhIG5ldyBgYHN1YnRlc3RzYGAgZml4dHVyZSBhcyBkaXNjdXNzZWQgaW4K
KyAgYCMxMzY3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzEz
Njc+YF9fLgorCisgIEZvciBkZXRhaWxzIG9uIHRoZSBpbnRlcm5hbCByZWZhY3RvcmluZ3MsIHBs
ZWFzZSBzZWUgdGhlIGRldGFpbHMgb24gdGhlIHJlbGF0ZWQgUFIuCisKKworLSBgIzQ5MzEgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDkzMT5gXzogcHl0ZXN0
ZXIncyBgYExpbmVNYXRjaGVyYGAgYXNzZXJ0cyB0aGF0IHRoZSBwYXNzZWQgbGluZXMgYXJlIGEg
c2VxdWVuY2UuCisKKworLSBgIzQ5MzYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNDkzNj5gXzogSGFuZGxlIGBgLXAgcGx1Z2BgIGFmdGVyIGBgLXAgbm86cGx1
Z2BgLgorCisgIFRoaXMgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgYSBibG9ja2VkIHBsdWdpbiAo
ZS5nLiBpbiAiYWRkb3B0cyIpIGZyb20gdGhlCisgIGNvbW1hbmQgbGluZSBldGMuCisKKworLSBg
IzQ5NTEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDk1MT5g
XzogT3V0cHV0IGNhcHR1cmluZyBpcyBoYW5kbGVkIGNvcnJlY3RseSB3aGVuIG9ubHkgY2FwdHVy
aW5nIHZpYSBmaXh0dXJlcyAoY2Fwc3lzLCBjYXBmcykgd2l0aCBgYHBkYi5zZXRfdHJhY2UoKWBg
LgorCisKKy0gYCM0OTU2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzQ5NTY+YF86IGBgcHl0ZXN0ZXJgYCBzZXRzIGBgJEhPTUVgYCBhbmQgYGAkVVNFUlBST0ZJ
TEVgYCB0byB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBkdXJpbmcgdGVzdCBydW5zLgorCisgIFRo
aXMgZW5zdXJlcyB0byBub3QgbG9hZCBjb25maWd1cmF0aW9uIGZpbGVzIGZyb20gdGhlIHJlYWwg
dXNlcidzIGhvbWUgZGlyZWN0b3J5LgorCisKKy0gYCM0OTgwIDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5ODA+YF86IE5hbWVzcGFjZSBwYWNrYWdlcyBhcmUg
aGFuZGxlZCBiZXR0ZXIgd2l0aCBgYG1vbmtleXBhdGNoLnN5c3BhdGhfcHJlcGVuZGBgIGFuZCBg
YHRlc3RkaXIuc3lzcGF0aGluc2VydGBgICh2aWEgYGBwa2dfcmVzb3VyY2VzLmZpeHVwX25hbWVz
cGFjZV9wYWNrYWdlc2BgKS4KKworCistIGAjNDk5MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy80OTkzPmBfOiBUaGUgc3RlcHdpc2UgcGx1Z2luIHJlcG9ydHMg
c3RhdHVzIGluZm9ybWF0aW9uIG5vdy4KKworCistIGAjNTAwOCA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDA4PmBfOiBJZiBhIGBgc2V0dXAuY2ZnYGAgZmls
ZSBjb250YWlucyBgYFt0b29sOnB5dGVzdF1gYCBhbmQgYWxzbyB0aGUgbm8gbG9uZ2VyIHN1cHBv
cnRlZCBgYFtweXRlc3RdYGAgc2VjdGlvbiwgcHl0ZXN0IHdpbGwgdXNlIGBgW3Rvb2w6cHl0ZXN0
XWBgIGlnbm9yaW5nIGBgW3B5dGVzdF1gYC4gUHJldmlvdXNseSBpdCB3b3VsZCB1bmNvbmRpdGlv
bmFsbHkgZXJyb3Igb3V0LgorCisgIFRoaXMgbWFrZXMgaXQgc2ltcGxlciBmb3IgcGx1Z2lucyB0
byBzdXBwb3J0IG9sZCBweXRlc3QgdmVyc2lvbnMuCisKKworCitCdWcgRml4ZXMKKy0tLS0tLS0t
LQorCistIGAjMTg5NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8xODk1PmBfOiBGaXggYnVnIHdoZXJlIGZpeHR1cmVzIHJlcXVlc3RlZCBkeW5hbWljYWxseSB2
aWEgYGByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgpYGAgbWlnaHQgYmUgdGVhcmRvd24KKyAgYmVm
b3JlIHRoZSByZXF1ZXN0aW5nIGZpeHR1cmUuCisKKworLSBgIzQ4NTEgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDg1MT5gXzogcHl0ZXN0ZXIgdW5zZXRzIGBg
UFlURVNUX0FERE9QVFNgYCBub3cgdG8gbm90IHVzZSBvdXRlciBvcHRpb25zIHdpdGggYGB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpYGAuCisKKworLSBgIzQ5MDMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDkwMz5gXzogVXNlIHRoZSBjb3JyZWN0IG1vZGlmaWVkIHRp
bWUgZm9yIHllYXJzIGFmdGVyIDIwMzggaW4gcmV3cml0dGVuIGBgLnB5Y2BgIGZpbGVzLgorCisK
Ky0gYCM0OTI4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5
Mjg+YF86IEZpeCBsaW5lIG9mZnNldHMgd2l0aCBgYFNjb3BlTWlzbWF0Y2hgYCBlcnJvcnMuCisK
KworLSBgIzQ5NTcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NDk1Nz5gXzogYGAtcCBubzpwbHVnaW5gYCBpcyBoYW5kbGVkIGNvcnJlY3RseSBmb3IgZGVmYXVs
dCAoaW50ZXJuYWwpIHBsdWdpbnMgbm93LCBlLmcuIHdpdGggYGAtcCBubzpjYXB0dXJlYGAuCisK
KyAgUHJldmlvdXNseSB0aGV5IHdlcmUgbG9hZGVkIChpbXBvcnRlZCkgYWx3YXlzLCBtYWtpbmcg
ZS5nLiB0aGUgYGBjYXBmZGBgIGZpeHR1cmUgYXZhaWxhYmxlLgorCisKKy0gYCM0OTY4IDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5Njg+YF86IFRoZSBwZGIg
YGBxdWl0YGAgY29tbWFuZCBpcyBoYW5kbGVkIHByb3Blcmx5IHdoZW4gdXNlZCBhZnRlciB0aGUg
YGBkZWJ1Z2BgIGNvbW1hbmQgd2l0aCBgcGRiKytgXy4KKworICAuLiBfcGRiKys6IGh0dHBzOi8v
cHlwaS5vcmcvcHJvamVjdC9wZGJwcC8KKworCistIGAjNDk3NSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80OTc1PmBfOiBGaXggdGhlIGludGVycHJldGF0aW9u
IG9mIGBgLXFxYGAgb3B0aW9uIHdoZXJlIGl0IHdhcyBiZWluZyBjb25zaWRlcmVkIGFzIGBgLXZg
YCBpbnN0ZWFkLgorCisKKy0gYCM0OTc4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzQ5Nzg+YF86IGBgb3V0Y29tZXMuRXhpdGBgIGlzIG5vdCBzd2FsbG93ZWQg
aW4gYGBhc3NlcnRyZXByX2NvbXBhcmVgYCBhbnltb3JlLgorCisKKy0gYCM0OTg4IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5ODg+YF86IENsb3NlIGxvZ2dp
bmcncyBmaWxlIGhhbmRsZXIgZXhwbGljaXRseSB3aGVuIHRoZSBzZXNzaW9uIGZpbmlzaGVzLgor
CisKKy0gYCM1MDAzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzUwMDM+YF86IEZpeCBsaW5lIG9mZnNldCB3aXRoIG1hcmsgY29sbGVjdGlvbiBlcnJvciAob2Zm
IGJ5IG9uZSkuCisKKworCitJbXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy0gYCM0OTc0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzQ5NzQ+YF86IFVwZGF0ZSBkb2NzIGZvciBgYHB5dGVzdF9jbWRsaW5lX3BhcnNlYGAg
aG9vayB0byBub3RlIGF2YWlsYWJpbGl0eSBsaW1pbmF0aW9ucworCisKKworVHJpdmlhbC9JbnRl
cm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzQ3MTggPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDcxOD5gXzogYGBwbHVnZ3k+
PTAuOWBgIGlzIG5vdyByZXF1aXJlZC4KKworCistIGAjNDgxNSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80ODE1PmBfOiBgYGZ1bmNzaWdzPj0xLjBgYCBpcyBu
b3cgcmVxdWlyZWQgZm9yIFB5dGhvbiAyLjcuCisKKworLSBgIzQ4MjkgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDgyOT5gXzogU29tZSBsZWZ0LW92ZXIgaW50
ZXJuYWwgY29kZSByZWxhdGVkIHRvIGBgeWllbGRgYCB0ZXN0cyBoYXMgYmVlbiByZW1vdmVkLgor
CisKKy0gYCM0ODkwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzQ4OTA+YF86IFJlbW92ZSBpbnRlcm5hbGx5IHVudXNlZCBgYGFueXB5dGhvbmBgIGZpeHR1cmUg
ZnJvbSB0aGUgcHl0ZXN0ZXIgcGx1Z2luLgorCisKKy0gYCM0OTEyIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5MTI+YF86IFJlbW92ZSBkZXByZWNhdGVkIFNw
aGlueCBkaXJlY3RpdmUsIGBgYWRkX2Rlc2NyaXB0aW9uX3VuaXQoKWBgLAorICBwaW4gc3BoaW54
LXJlbW92ZWQtaW4gdG8gPj0gMC4yLjAgdG8gc3VwcG9ydCBTcGhpbnggMi4wLgorCisKKy0gYCM0
OTEzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5MTM+YF86
IEZpeCBweXRlc3QgdGVzdHMgaW52b2NhdGlvbiB3aXRoIGN1c3RvbSBgYFBZVEhPTlBBVEhgYC4K
KworCistIGAjNDk2NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy80OTY1PmBfOiBOZXcgYGBweXRlc3RfcmVwb3J0X3RvX3NlcmlhbGl6YWJsZWBgIGFuZCBgYHB5
dGVzdF9yZXBvcnRfZnJvbV9zZXJpYWxpemFibGVgYCAqKmV4cGVyaW1lbnRhbCoqIGhvb2tzLgor
CisgIFRoZXNlIGhvb2tzIHdpbGwgYmUgdXNlZCBieSBgYHB5dGVzdC14ZGlzdGBgLCBgYHB5dGVz
dC1zdWJ0ZXN0c2BgLCBhbmQgdGhlIHJlcGxhY2VtZW50IGZvcgorICByZXN1bHRsb2cgdG8gc2Vy
aWFsaXplIGFuZCBjdXN0b21pemUgcmVwb3J0cy4KKworICBUaGV5IGFyZSBleHBlcmltZW50YWws
IG1lYW5pbmcgdGhhdCB0aGVpciBkZXRhaWxzIG1pZ2h0IGNoYW5nZSBvciBldmVuIGJlIHJlbW92
ZWQKKyAgY29tcGxldGVseSBpbiBmdXR1cmUgcGF0Y2ggcmVsZWFzZXMgd2l0aG91dCB3YXJuaW5n
LgorCisgIEZlZWRiYWNrIGlzIHdlbGNvbWUgZnJvbSBwbHVnaW4gYXV0aG9ycyBhbmQgdXNlcnMg
YWxpa2UuCisKKworLSBgIzQ5ODcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvNDk4Nz5gXzogYGBDb2xsZWN0b3IucmVwcl9mYWlsdXJlYGAgcmVzcGVjdHMgdGhl
IGBgLS10YmBgIG9wdGlvbiwgYnV0IG9ubHkgZGVmYXVsdHMgdG8gYGBzaG9ydGBgIG5vdyAod2l0
aCBgYGF1dG9gYCkuCisKKworcHl0ZXN0IDQuMy4xICgyMDE5LTAzLTExKQorPT09PT09PT09PT09
PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjNDgxMCA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80ODEwPmBfOiBMb2dnaW5nIG1l
c3NhZ2VzIGluc2lkZSBgYHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCgpYGAgYXJlIG5vdyBwcm9w
ZXJseSBjYXB0dXJlZCBhbmQgZGlzcGxheWVkLgorCisKKy0gYCM0ODYxIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ4NjE+YF86IEltcHJvdmUgdmFsaWRhdGlv
biBvZiBjb250ZW50cyB3cml0dGVuIHRvIGNhcHR1cmVkIG91dHB1dCBzbyBpdCBiZWhhdmVzIHRo
ZSBzYW1lIGFzIHdoZW4gY2FwdHVyZSBpcyBkaXNhYmxlZC4KKworCistIGAjNDg5OCA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80ODk4PmBfOiBGaXggYGBBdHRy
aWJ1dGVFcnJvcjogRml4dHVyZVJlcXVlc3QgaGFzIG5vICdjb25mZycgYXR0cmlidXRlYGAgYnVn
IGluIGBgdGVzdGRpci5jb3B5X2V4YW1wbGVgYC4KKworCisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hh
bmdlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCM0NzY4IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ3Njg+YF86IEF2b2lkIHBrZ19yZXNvdXJj
ZXMgaW1wb3J0IGF0IHRoZSB0b3AtbGV2ZWwuCisKKworcHl0ZXN0IDQuMy4wICgyMDE5LTAyLTE2
KQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitEZXByZWNhdGlvbnMKKy0tLS0tLS0tLS0t
LQorCistIGAjNDcyNCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy80NzI0PmBfOiBgYHB5dGVzdC53YXJucygpYGAgbm93IGVtaXRzIGEgd2FybmluZyB3aGVuIGl0
IHJlY2VpdmVzIHVua25vd24ga2V5d29yZCBhcmd1bWVudHMuCisKKyAgVGhpcyB3aWxsIGJlIGNo
YW5nZWQgaW50byBhbiBlcnJvciBpbiB0aGUgZnV0dXJlLgorCisKKworRmVhdHVyZXMKKy0tLS0t
LS0tCisKKy0gYCMyNzUzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzI3NTM+YF86IFVzYWdlIGVycm9ycyBmcm9tIGFyZ3BhcnNlIGFyZSBtYXBwZWQgdG8gcHl0
ZXN0J3MgYGBVc2FnZUVycm9yYGAuCisKKworLSBgIzM3MTEgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzcxMT5gXzogQWRkIHRoZSBgYC0taWdub3JlLWdsb2Jg
YCBwYXJhbWV0ZXIgdG8gZXhjbHVkZSB0ZXN0LW1vZHVsZXMgd2l0aCBVbml4IHNoZWxsLXN0eWxl
IHdpbGRjYXJkcy4KKyAgQWRkIHRoZSBgYGNvbGxlY3RfaWdub3JlX2dsb2JgYCBmb3IgYGBjb25m
dGVzdC5weWBgIHRvIGV4Y2x1ZGUgdGVzdC1tb2R1bGVzIHdpdGggVW5peCBzaGVsbC1zdHlsZSB3
aWxkY2FyZHMuCisKKworLSBgIzQ2OTggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNDY5OD5gXzogVGhlIHdhcm5pbmcgYWJvdXQgUHl0aG9uIDIuNyBhbmQgMy40
IG5vdCBiZWluZyBzdXBwb3J0ZWQgaW4gcHl0ZXN0IDUuMCBoYXMgYmVlbiByZW1vdmVkLgorCisg
IEluIHRoZSBlbmQgaXQgd2FzIGNvbnNpZGVyZWQgdG8gYmUgbW9yZQorICBvZiBhIG51aXNhbmNl
IHRoYW4gYWN0dWFsIHV0aWxpdHkgYW5kIHVzZXJzIG9mIHRob3NlIFB5dGhvbiB2ZXJzaW9ucyBz
aG91bGRuJ3QgaGF2ZSBwcm9ibGVtcyBhcyBgYHBpcGBgIHdpbGwgbm90CisgIGluc3RhbGwgcHl0
ZXN0IDUuMCBvbiB0aG9zZSBpbnRlcnByZXRlcnMuCisKKworLSBgIzQ3MDcgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDcwNz5gXzogV2l0aCB0aGUgaGVscCBv
ZiBuZXcgYGBzZXRfbG9nX3BhdGgoKWBgIG1ldGhvZCB0aGVyZSBpcyBhIHdheSB0byBzZXQgYGBs
b2dfZmlsZWBgIHBhdGhzIGZyb20gaG9va3MuCisKKworCitCdWcgRml4ZXMKKy0tLS0tLS0tLQor
CistIGAjNDY1MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80
NjUxPmBfOiBgYC0taGVscGBgIGFuZCBgYC0tdmVyc2lvbmBgIGFyZSBoYW5kbGVkIHdpdGggYGBV
c2FnZUVycm9yYGAuCisKKworLSBgIzQ3ODIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNDc4Mj5gXzogRml4IGBgQXNzZXJ0aW9uRXJyb3JgYCB3aXRoIGNvbGxl
Y3Rpb24gb2YgYnJva2VuIHN5bWxpbmtzIHdpdGggcGFja2FnZXMuCisKKworcHl0ZXN0IDQuMi4x
ICgyMDE5LTAyLTEyKQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0t
LS0tLS0tLQorCistIGAjMjg5NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy8yODk1PmBfOiBUaGUgYGBweXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5pc2hgYCBo
b29rIG5vdyBpcyBhbHNvIGNhbGxlZCB3aXRoIGBgLS1jb2xsZWN0LW9ubHlgYC4KKworCistIGAj
Mzg5OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zODk5PmBf
OiBEbyBub3QgcmFpc2UgYGBVc2FnZUVycm9yYGAgd2hlbiBhbiBpbXBvcnRlZCBwYWNrYWdlIGhh
cyBhIGBgcHl0ZXN0X3BsdWdpbnMucHlgYCBjaGlsZCBtb2R1bGUuCisKKworLSBgIzQzNDcgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDM0Nz5gXzogRml4IG91
dHB1dCBjYXB0dXJpbmcgd2hlbiB1c2luZyBwZGIrKyB3aXRoIHJlY3Vyc2l2ZSBkZWJ1Z2dpbmcu
CisKKworLSBgIzQ1OTIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvNDU5Mj5gXzogRml4IGhhbmRsaW5nIG9mIGBgY29sbGVjdF9pZ25vcmVgYCB2aWEgcGFyZW50
IGBgY29uZnRlc3QucHlgYC4KKworCistIGAjNDcwMCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy80NzAwPmBfOiBGaXggcmVncmVzc2lvbiB3aGVyZSBgYHNldFVw
Q2xhc3NgYCB3b3VsZCBhbHdheXMgYmUgY2FsbGVkIGluIHN1YmNsYXNzZXMgZXZlbiBpZiBhbGwg
dGVzdHMKKyAgd2VyZSBza2lwcGVkIGJ5IGEgYGB1bml0dGVzdC5za2lwKClgYCBkZWNvcmF0b3Ig
YXBwbGllZCBpbiB0aGUgc3ViY2xhc3MuCisKKworLSBgIzQ3MzkgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDczOT5gXzogRml4IGBgcGFyYW1ldHJpemUoLi4u
IGlkcz08ZnVuY3Rpb24+KWBgIHdoZW4gdGhlIGZ1bmN0aW9uIHJldHVybnMgbm9uLXN0cmluZ3Mu
CisKKworLSBgIzQ3NDUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvNDc0NT5gXzogRml4L2ltcHJvdmUgY29sbGVjdGlvbiBvZiBhcmdzIHdoZW4gcGFzc2luZyBp
biBgYF9faW5pdF9fLnB5YGAgYW5kIGEgdGVzdCBmaWxlLgorCisKKy0gYCM0NzcwIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ3NzA+YF86IGBgbW9yZV9pdGVy
dG9vbHNgYCBpcyBub3cgY29uc3RyYWluZWQgdG8gPDYuMC4wIHdoZW4gcmVxdWlyZWQgZm9yIFB5
dGhvbiAyLjcgY29tcGF0aWJpbGl0eS4KKworCistIGAjNTI2IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUyNj5gXzogRml4ICJWYWx1ZUVycm9yOiBQbHVnaW4g
YWxyZWFkeSByZWdpc3RlcmVkIiBleGNlcHRpb25zIHdoZW4gcnVubmluZyBpbiBidWlsZCBkaXJl
Y3RvcmllcyB0aGF0IHN5bWxpbmsgdG8gYWN0dWFsIHNvdXJjZS4KKworCisKK0ltcHJvdmVkIERv
Y3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzM4OTkgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzg5OT5gXzogQWRkIG5vdGUgdG8g
YGBwbHVnaW5zLnJzdGBgIHRoYXQgYGBweXRlc3RfcGx1Z2luc2BgIHNob3VsZCBub3QgYmUgdXNl
ZCBhcyBhIG5hbWUgZm9yIGEgdXNlciBtb2R1bGUgY29udGFpbmluZyBwbHVnaW5zLgorCisKKy0g
YCM0MzI0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzMjQ+
YF86IERvY3VtZW50IGhvdyB0byB1c2UgYGByYWlzZXNgYCBhbmQgYGBkb2VzX25vdF9yYWlzZWBg
IHRvIHdyaXRlIHBhcmFtZXRyaXplZCB0ZXN0cyB3aXRoIGNvbmRpdGlvbmFsIHJhaXNlcy4KKwor
CistIGAjNDcwOSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80
NzA5PmBfOiBEb2N1bWVudCBob3cgdG8gY3VzdG9taXplIHRlc3QgZmFpbHVyZSBtZXNzYWdlcyB3
aGVuIHVzaW5nCisgIGBgcHl0ZXN0Lndhcm5zYGAuCisKKworCitUcml2aWFsL0ludGVybmFsIENo
YW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjNDc0MSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NzQxPmBfOiBTb21lIHZlcmJvc2l0eSBy
ZWxhdGVkIGF0dHJpYnV0ZXMgb2YgdGhlIFRlcm1pbmFsUmVwb3J0ZXIgcGx1Z2luIGFyZSBub3cK
KyAgcmVhZCBvbmx5IHByb3BlcnRpZXMuCisKKworcHl0ZXN0IDQuMi4wICgyMDE5LTAxLTMwKQor
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitGZWF0dXJlcworLS0tLS0tLS0KKworLSBgIzMw
OTQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzA5ND5gXzog
YENsYXNzaWMgeHVuaXQtc3R5bGUgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC94
dW5pdF9zZXR1cC5odG1sPmBfXyBmdW5jdGlvbnMgYW5kIG1ldGhvZHMKKyAgbm93IG9iZXkgdGhl
IHNjb3BlIG9mICphdXRvdXNlKiBmaXh0dXJlcy4KKworICBUaGlzIGZpeGVzIGEgbnVtYmVyIG9m
IHN1cnByaXNpbmcgaXNzdWVzIGxpa2UgYGBzZXR1cF9tZXRob2RgYCBiZWluZyBjYWxsZWQgYmVm
b3JlIHNlc3Npb24tc2NvcGVkCisgIGF1dG91c2UgZml4dHVyZXMgKHNlZSBgIzUxNyA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MTc+YF9fIGZvciBhbiBleGFt
cGxlKS4KKworCistIGAjNDYyNyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy80NjI3PmBfOiBEaXNwbGF5IGEgbWVzc2FnZSBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0
IHNlc3Npb24gd2hlbiBydW5uaW5nIHVuZGVyIFB5dGhvbiAyLjcgYW5kIDMuNCB0aGF0IHB5dGVz
dCA1LjAgd2lsbCBubyBsb25nZXIKKyAgc3VwcG9ydCB0aG9zZSBQeXRob24gdmVyc2lvbnMuCisK
KworLSBgIzQ2NjAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NDY2MD5gXzogVGhlIG51bWJlciBvZiAqc2VsZWN0ZWQqIHRlc3RzIG5vdyBhcmUgYWxzbyBkaXNw
bGF5ZWQgd2hlbiB0aGUgYGAta2BgIG9yIGBgLW1gYCBmbGFncyBhcmUgdXNlZC4KKworCistIGAj
NDY4OCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80Njg4PmBf
OiBgYHB5dGVzdF9yZXBvcnRfdGVzdHN0YXR1c2BgIGhvb2sgbm93IGNhbiBhbHNvIHJlY2VpdmUg
YSBgYGNvbmZpZ2BgIHBhcmFtZXRlci4KKworCistIGAjNDY5MSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NjkxPmBfOiBgYHB5dGVzdF90ZXJtaW5hbF9zdW1t
YXJ5YGAgaG9vayBub3cgY2FuIGFsc28gcmVjZWl2ZSBhIGBgY29uZmlnYGAgcGFyYW1ldGVyLgor
CisKKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzM1NDcgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzU0Nz5gXzogYGAtLWp1bml0eG1sYGAgY2FuIGVt
aXQgWE1MIGNvbXBhdGlibGUgd2l0aCBKZW5raW5zIHhVbml0LgorICBgYGp1bml0X2ZhbWlseWBg
IElOSSBvcHRpb24gYWNjZXB0cyBgYGxlZ2FjeXx4dW5pdDFgYCwgd2hpY2ggcHJvZHVjZXMgb2xk
IHN0eWxlIG91dHB1dCwgYW5kIGBgeHVuaXQyYGAgdGhhdCBjb25mb3JtcyBtb3JlIHN0cmljdGx5
IHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5raW5zY2kveHVuaXQtcGx1Z2luL2Jsb2IveHVuaXQt
Mi4zLjIvc3JjL21haW4vcmVzb3VyY2VzL29yZy9qZW5raW5zY2kvcGx1Z2lucy94dW5pdC90eXBl
cy9tb2RlbC94c2QvanVuaXQtMTAueHNkCisKKworLSBgIzQyODAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDI4MD5gXzogSW1wcm92ZSBxdWl0dGluZyBmcm9t
IHBkYiwgZXNwZWNpYWxseSB3aXRoIGBgLS10cmFjZWBgLgorCisgIFVzaW5nIGBgcVtxdWl0XWBg
IGFmdGVyIGBgcGRiLnNldF90cmFjZSgpYGAgd2lsbCBxdWl0IHB5dGVzdCBhbHNvLgorCisKKy0g
YCM0NDAyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ0MDI+
YF86IFdhcm5pbmcgc3VtbWFyeSBub3cgZ3JvdXBzIHdhcm5pbmdzIGJ5IG1lc3NhZ2UgaW5zdGVh
ZCBvZiBieSB0ZXN0IGlkLgorCisgIFRoaXMgbWFrZXMgdGhlIG91dHB1dCBtb3JlIGNvbXBhY3Qg
YW5kIGJldHRlciBjb252ZXlzIHRoZSBnZW5lcmFsIGlkZWEgb2YgaG93IG11Y2ggY29kZSBpcwor
ICBhY3R1YWxseSBnZW5lcmF0aW5nIHdhcm5pbmdzLCBpbnN0ZWFkIG9mIGhvdyBtYW55IHRlc3Rz
IGNhbGwgdGhhdCBjb2RlLgorCisKKy0gYCM0NTM2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzQ1MzY+YF86IGBgbW9ua2V5cGF0Y2guZGVsYXR0cmBgIGhhbmRs
ZXMgY2xhc3MgZGVzY3JpcHRvcnMgbGlrZSBgYHN0YXRpY21ldGhvZGBgL2BgY2xhc3NtZXRob2Rg
YC4KKworCistIGAjNDY0OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy80NjQ5PmBfOiBSZXN0b3JlIG1hcmtzIGJlaW5nIGNvbnNpZGVyZWQga2V5d29yZHMgZm9y
IGtleXdvcmQgZXhwcmVzc2lvbnMuCisKKworLSBgIzQ2NTMgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDY1Mz5gXzogYGB0bXBfcGF0aGBgIGZpeHR1cmUgYW5k
IG90aGVyIHJlbGF0ZWQgb25lcyBwcm92aWRlcyByZXNvbHZlZCBwYXRoIChhLmsuYSByZWFsIHBh
dGgpCisKKworLSBgIzQ2NjcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNDY2Nz5gXzogYGBweXRlc3RfdGVybWluYWxfc3VtbWFyeWBgIHVzZXMgcmVzdWx0IGZy
b20gYGBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXNgYCBob29rLCByYXRoZXIgdGhhbiBoYXJkY29k
ZWQgc3RyaW5ncy4KKworCistIGAjNDY2OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy80NjY5PmBfOiBDb3JyZWN0bHkgaGFuZGxlIGBgdW5pdHRlc3QuU2tpcFRl
c3RgYCBleGNlcHRpb24gY29udGFpbmluZyBub24tYXNjaWkgY2hhcmFjdGVycyBvbiBQeXRob24g
Mi4KKworCistIGAjNDY4MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy80NjgwPmBfOiBFbnN1cmUgdGhlIGBgdG1wZGlyYGAgYW5kIHRoZSBgYHRtcF9wYXRoYGAg
Zml4dHVyZXMgYXJlIHRoZSBzYW1lIGZvbGRlci4KKworCistIGAjNDY4MSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NjgxPmBfOiBFbnN1cmUgYGB0bXBfcGF0
aGBgIGlzIGFsd2F5cyBhIHJlYWwgcGF0aC4KKworCisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdl
cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCM0NjQzIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ2NDM+YF86IFVzZSBgYGEuaXRlbSgpYGAgaW5z
dGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBgYG5wLmFzc2NhbGFyKGEpYGAgaW4gYGBweXRlc3QuYXBw
cm94YGAuCisKKyAgYGBucC5hc3NjYWxhcmBgIGhhcyBiZWVuIGBkZXByZWNhdGVkIDxodHRwczov
L2dpdGh1Yi5jb20vbnVtcHkvbnVtcHkvYmxvYi9tYXN0ZXIvZG9jL3JlbGVhc2UvMS4xNi4wLW5v
dGVzLnJzdCNuZXctZGVwcmVjYXRpb25zPmBfXyBpbiBgYG51bXB5IDEuMTYuYGAuCisKKworLSBg
IzQ2NTcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDY1Nz5g
XzogQ29weSBzYWZlcmVwciBmcm9tIHB5bGliCisKKworLSBgIzQ2NjggPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDY2OD5gXzogVGhlIHZlcmJvc2Ugd29yZCBm
b3IgZXhwZWN0ZWQgZmFpbHVyZXMgaW4gdGhlIHRlc3RzdGF0dXMgcmVwb3J0IGNoYW5nZXMgZnJv
bSBgYHhmYWlsYGAgdG8gYGBYRkFJTGBgIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBvdGhlciB0ZXN0
IG91dGNvbWVzLgorCisKK3B5dGVzdCA0LjEuMSAoMjAxOS0wMS0xMikKKz09PT09PT09PT09PT09
PT09PT09PT09PT0KKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzIyNTYgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjI1Nj5gXzogU2hvdyBmdWxsIHJl
cHIgd2l0aCBgYGFzc2VydCBhPT1iYGAgYW5kIGBgLXZ2YGAuCisKKworLSBgIzM0NTYgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzQ1Nj5gXzogRXh0ZW5kIERv
Y3Rlc3QtbW9kdWxlcyB0byBpZ25vcmUgbW9jayBvYmplY3RzLgorCisKKy0gYCM0NjE3IDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ2MTc+YF86IEZpeGVkIGBg
cHl0ZXN0Lndhcm5zYGAgYnVnIHdoZW4gY29udGV4dCBtYW5hZ2VyIGlzIHJldXNlZCAoZS5nLiBt
dWx0aXBsZSBwYXJhbWV0cml6YXRpb24pLgorCisKKy0gYCM0NjMxIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ2MzE+YF86IERvbid0IHJld3JpdGUgYXNzZXJ0
aW9uIHdoZW4gYGBfX2dldGF0dHJfX2BgIGlzIGJyb2tlbgorCisKKworSW1wcm92ZWQgRG9jdW1l
bnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMzM3NSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMzc1PmBfOiBEb2N1bWVudCB0aGF0IHVz
aW5nIGBgc2V0dXAuY2ZnYGAgbWF5IGNyYXNoIG90aGVyIHRvb2xzIG9yIGNhdXNlIGhhcmQgdG8g
dHJhY2sgZG93biBwcm9ibGVtcyBiZWNhdXNlIGl0IHVzZXMgYSBkaWZmZXJlbnQgcGFyc2VyIHRo
YW4gYGBweXRlc3QuaW5pYGAgb3IgYGB0b3guaW5pYGAgZmlsZXMuCisKKworCitUcml2aWFsL0lu
dGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjNDYwMiA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NjAyPmBfOiBVbmluc3Rh
bGwgYGBoeXBvdGhlc2lzYGAgaW4gcmVnZW4gdG94IGVudi4KKworCitweXRlc3QgNC4xLjAgKDIw
MTktMDEtMDUpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK1JlbW92YWxzCistLS0tLS0t
LQorCistIGAjMjE2OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8yMTY5PmBfOiBgYHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGA6IGluIHByZXZpb3VzIHZlcnNp
b25zLCBlcnJvcnMgcmFpc2VkIGJ5IGlkIGZ1bmN0aW9ucyB3ZXJlIHN1cHByZXNzZWQgYW5kIGNo
YW5nZWQgaW50byB3YXJuaW5ncy4gTm93IHRoZSBleGNlcHRpb25zIGFyZSBwcm9wYWdhdGVkLCBh
bG9uZyB3aXRoIGEgcHl0ZXN0IG1lc3NhZ2UgaW5mb3JtaW5nIHRoZSBub2RlLCBwYXJhbWV0ZXIg
dmFsdWUgYW5kIGluZGV4IHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJyZWQuCisKKworLSBgIzMw
NzggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzA3OD5gXzog
UmVtb3ZlIGxlZ2FjeSBpbnRlcm5hbCB3YXJuaW5ncyBzeXN0ZW06IGBgY29uZmlnLndhcm5gYCwg
YGBOb2RlLndhcm5gYC4gVGhlIGBgcHl0ZXN0X2xvZ3dhcm5pbmdgYCBub3cgaXNzdWVzIGEgd2Fy
bmluZyB3aGVuIGltcGxlbWVudGVkLgorCisgIFNlZSBvdXIgYGRvY3MgPGh0dHBzOi8vZG9jcy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNjb25maWctd2Fybi1hbmQtbm9k
ZS13YXJuPmBfXyBvbiBpbmZvcm1hdGlvbiBvbiBob3cgdG8gdXBkYXRlIHlvdXIgY29kZS4KKwor
CistIGAjMzA3OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8z
MDc5PmBfOiBSZW1vdmVkIHN1cHBvcnQgZm9yIHlpZWxkIHRlc3RzIC0gdGhleSBhcmUgZnVuZGFt
ZW50YWxseSBicm9rZW4gYmVjYXVzZSB0aGV5IGRvbid0IHN1cHBvcnQgZml4dHVyZXMgcHJvcGVy
bHkgc2luY2UgY29sbGVjdGlvbiBhbmQgdGVzdCBleGVjdXRpb24gd2VyZSBzZXBhcmF0ZWQuCisK
KyAgU2VlIG91ciBgZG9jcyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJl
Y2F0aW9ucy5odG1sI3lpZWxkLXRlc3RzPmBfXyBvbiBpbmZvcm1hdGlvbiBvbiBob3cgdG8gdXBk
YXRlIHlvdXIgY29kZS4KKworCistIGAjMzA4MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8zMDgyPmBfOiBSZW1vdmVkIHN1cHBvcnQgZm9yIGFwcGx5aW5nIG1h
cmtzIGRpcmVjdGx5IHRvIHZhbHVlcyBpbiBgYEBweXRlc3QubWFyay5wYXJhbWV0cml6ZWBgLiBV
c2UgYGBweXRlc3QucGFyYW1gYCBpbnN0ZWFkLgorCisgIFNlZSBvdXIgYGRvY3MgPGh0dHBzOi8v
ZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNtYXJrcy1pbi1weXRl
c3QtbWFyay1wYXJhbWV0cml6ZT5gX18gb24gaW5mb3JtYXRpb24gb24gaG93IHRvIHVwZGF0ZSB5
b3VyIGNvZGUuCisKKworLSBgIzMwODMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMzA4Mz5gXzogUmVtb3ZlZCBgYE1ldGFmdW5jLmFkZGNhbGxgYC4gVGhpcyB3
YXMgdGhlIHByZWRlY2Vzc29yIG1lY2hhbmlzbSB0byBgYEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZWBgLgorCisgIFNlZSBvdXIgYGRvY3MgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVz
dC9kZXByZWNhdGlvbnMuaHRtbCNtZXRhZnVuYy1hZGRjYWxsPmBfXyBvbiBpbmZvcm1hdGlvbiBv
biBob3cgdG8gdXBkYXRlIHlvdXIgY29kZS4KKworCistIGAjMzA4NSA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMDg1PmBfOiBSZW1vdmVkIHN1cHBvcnQgZm9y
IHBhc3Npbmcgc3RyaW5ncyB0byBgYHB5dGVzdC5tYWluYGAuIE5vdywgYWx3YXlzIHBhc3MgYSBs
aXN0IG9mIHN0cmluZ3MgaW5zdGVhZC4KKworICBTZWUgb3VyIGBkb2NzIDxodHRwczovL2RvY3Mu
cHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0bWwjcGFzc2luZy1jb21tYW5kLWxp
bmUtc3RyaW5nLXRvLXB5dGVzdC1tYWluPmBfXyBvbiBpbmZvcm1hdGlvbiBvbiBob3cgdG8gdXBk
YXRlIHlvdXIgY29kZS4KKworCistIGAjMzA4NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8zMDg2PmBfOiBgYFtweXRlc3RdYGAgc2VjdGlvbiBpbiAqKnNldHVw
LmNmZyoqIGZpbGVzIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQsIHVzZSBgYFt0b29sOnB5dGVzdF1g
YCBpbnN0ZWFkLiBgYHNldHVwLmNmZ2BgIGZpbGVzCisgIGFyZSBtZWFudCBmb3IgdXNlIHdpdGgg
YGBkaXN0dXRpbHNgYCwgYW5kIGEgc2VjdGlvbiBuYW1lZCBgYHB5dGVzdGBgIGhhcyBub3Rvcmlv
dXNseSBiZWVuIGEgc291cmNlIG9mIGNvbmZsaWN0cyBhbmQgYnVncy4KKworICBOb3RlIHRoYXQg
Zm9yICoqcHl0ZXN0LmluaSoqIGFuZCAqKnRveC5pbmkqKiBmaWxlcyB0aGUgc2VjdGlvbiByZW1h
aW5zIGBgW3B5dGVzdF1gYC4KKworCistIGAjMzYxNiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNjE2PmBfOiBSZW1vdmVkIHRoZSBkZXByZWNhdGVkIGNvbXBh
dCBwcm9wZXJ0aWVzIGZvciBgYG5vZGUuQ2xhc3MvRnVuY3Rpb24vTW9kdWxlYGAgLSB1c2UgYGBw
eXRlc3QuQ2xhc3MvRnVuY3Rpb24vTW9kdWxlYGAgbm93LgorCisgIFNlZSBvdXIgYGRvY3MgPGh0
dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNpbnRlcm5h
bC1jbGFzc2VzLWFjY2Vzc2VkLXRocm91Z2gtbm9kZT5gX18gb24gaW5mb3JtYXRpb24gb24gaG93
IHRvIHVwZGF0ZSB5b3VyIGNvZGUuCisKKworLSBgIzQ0MjEgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDQyMT5gXzogUmVtb3ZlZCB0aGUgaW1wbGVtZW50YXRp
b24gb2YgdGhlIGBgcHl0ZXN0X25hbWVzcGFjZWBgIGhvb2suCisKKyAgU2VlIG91ciBgZG9jcyA8
aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sI3B5dGVz
dC1uYW1lc3BhY2U+YF9fIG9uIGluZm9ybWF0aW9uIG9uIGhvdyB0byB1cGRhdGUgeW91ciBjb2Rl
LgorCisKKy0gYCM0NDg5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzQ0ODk+YF86IFJlbW92ZWQgYGByZXF1ZXN0LmNhY2hlZF9zZXR1cGBgLiBUaGlzIHdhcyB0
aGUgcHJlZGVjZXNzb3IgbWVjaGFuaXNtIHRvIG1vZGVybiBmaXh0dXJlcy4KKworICBTZWUgb3Vy
IGBkb2NzIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0
bWwjY2FjaGVkLXNldHVwPmBfXyBvbiBpbmZvcm1hdGlvbiBvbiBob3cgdG8gdXBkYXRlIHlvdXIg
Y29kZS4KKworCistIGAjNDUzNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy80NTM1PmBfOiBSZW1vdmVkIHRoZSBkZXByZWNhdGVkIGBgUHlDb2xsZWN0b3IubWFr
ZWl0ZW1gYCBtZXRob2QuIFRoaXMgbWV0aG9kIHdhcyBtYWRlIHB1YmxpYyBieSBtaXN0YWtlIGEg
bG9uZyB0aW1lIGFnby4KKworCistIGAjNDU0MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy80NTQzPmBfOiBSZW1vdmVkIHN1cHBvcnQgdG8gZGVmaW5lIGZpeHR1
cmVzIHVzaW5nIHRoZSBgYHB5dGVzdF9mdW5jYXJnX19gYCBwcmVmaXguIFVzZSB0aGUgYGBAcHl0
ZXN0LmZpeHR1cmVgYCBkZWNvcmF0b3IgaW5zdGVhZC4KKworICBTZWUgb3VyIGBkb2NzIDxodHRw
czovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0bWwjcHl0ZXN0LWZ1
bmNhcmctcHJlZml4PmBfXyBvbiBpbmZvcm1hdGlvbiBvbiBob3cgdG8gdXBkYXRlIHlvdXIgY29k
ZS4KKworCistIGAjNDU0NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy80NTQ1PmBfOiBDYWxsaW5nIGZpeHR1cmVzIGRpcmVjdGx5IGlzIG5vdyBhbHdheXMgYW4g
ZXJyb3IgaW5zdGVhZCBvZiBhIHdhcm5pbmcuCisKKyAgU2VlIG91ciBgZG9jcyA8aHR0cHM6Ly9k
b2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sI2NhbGxpbmctZml4dHVy
ZXMtZGlyZWN0bHk+YF9fIG9uIGluZm9ybWF0aW9uIG9uIGhvdyB0byB1cGRhdGUgeW91ciBjb2Rl
LgorCisKKy0gYCM0NTQ2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzQ1NDY+YF86IFJlbW92ZSBgYE5vZGUuZ2V0X21hcmtlcihuYW1lKWBgIHRoZSByZXR1cm4g
dmFsdWUgd2FzIG5vdCB1c2FibGUgZm9yIG1vcmUgdGhhbiBhIGV4aXN0ZW5jZSBjaGVjay4KKwor
ICBVc2UgYGBOb2RlLmdldF9jbG9zZXN0X21hcmtlcihuYW1lKWBgIGFzIGEgcmVwbGFjZW1lbnQu
CisKKworLSBgIzQ1NDcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvNDU0Nz5gXzogVGhlIGRlcHJlY2F0ZWQgYGByZWNvcmRfeG1sX3Byb3BlcnR5YGAgZml4dHVy
ZSBoYXMgYmVlbiByZW1vdmVkLCB1c2UgdGhlIG1vcmUgZ2VuZXJpYyBgYHJlY29yZF9wcm9wZXJ0
eWBgIGluc3RlYWQuCisKKyAgU2VlIG91ciBgZG9jcyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcv
ZW4vbGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sI3JlY29yZC14bWwtcHJvcGVydHk+YF9fIGZvciBt
b3JlIGluZm9ybWF0aW9uLgorCisKKy0gYCM0NTQ4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzQ1NDg+YF86IEFuIGVycm9yIGlzIG5vdyByYWlzZWQgaWYgdGhl
IGBgcHl0ZXN0X3BsdWdpbnNgYCB2YXJpYWJsZSBpcyBkZWZpbmVkIGluIGEgbm9uLXRvcC1sZXZl
bCBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSAoaS5lLiwgbm90IHJlc2lkaW5nIGluIHRoZSBgYHJvb3Rk
aXJgYCkuCisKKyAgU2VlIG91ciBgZG9jcyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0
ZXN0L2RlcHJlY2F0aW9ucy5odG1sI3B5dGVzdC1wbHVnaW5zLWluLW5vbi10b3AtbGV2ZWwtY29u
ZnRlc3QtZmlsZXM+YF9fIGZvciBtb3JlIGluZm9ybWF0aW9uLgorCisKKy0gYCM4OTEgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvODkxPmBfOiBSZW1vdmUgYGB0
ZXN0ZnVuY3Rpb24ubWFya2VybmFtZWBgIGF0dHJpYnV0ZXMgLSB1c2UgYGBOb2RlLml0ZXJfbWFy
a2VycyhuYW1lPU5vbmUpYGAgdG8gaXRlcmF0ZSB0aGVtLgorCisKKworRGVwcmVjYXRpb25zCist
LS0tLS0tLS0tLS0KKworLSBgIzMwNTAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMzA1MD5gXzogRGVwcmVjYXRlZCB0aGUgYGBweXRlc3QuY29uZmlnYGAgZ2xv
YmFsLgorCisgIFNlZSBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRp
b25zLmh0bWwjcHl0ZXN0LWNvbmZpZy1nbG9iYWwgZm9yIHJhdGlvbmFsZS4KKworCistIGAjMzk3
NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTc0PmBfOiBQ
YXNzaW5nIHRoZSBgYG1lc3NhZ2VgYCBwYXJhbWV0ZXIgb2YgYGBweXRlc3QucmFpc2VzYGAgbm93
IGlzc3VlcyBhIGBgRGVwcmVjYXRpb25XYXJuaW5nYGAuCisKKyAgSXQgaXMgYSBjb21tb24gbWlz
dGFrZSB0byB0aGluayB0aGlzIHBhcmFtZXRlciB3aWxsIG1hdGNoIHRoZSBleGNlcHRpb24gbWVz
c2FnZSwgd2hpbGUgaW4gZmFjdAorICBpdCBvbmx5IHNlcnZlcyB0byBwcm92aWRlIGEgY3VzdG9t
IG1lc3NhZ2UgaW4gY2FzZSB0aGUgYGBweXRlc3QucmFpc2VzYGAgY2hlY2sgZmFpbHMuIFRvIGF2
b2lkIHRoaXMKKyAgbWlzdGFrZSBhbmQgYmVjYXVzZSBpdCBpcyBiZWxpZXZlZCB0byBiZSBsaXR0
bGUgdXNlZCwgcHl0ZXN0IGlzIGRlcHJlY2F0aW5nIGl0IHdpdGhvdXQgcHJvdmlkaW5nCisgIGFu
IGFsdGVybmF0aXZlIGZvciB0aGUgbW9tZW50LgorCisgIElmIHlvdSBoYXZlIGNvbmNlcm5zIGFi
b3V0IHRoaXMsIHBsZWFzZSBjb21tZW50IG9uIGBpc3N1ZSAjMzk3NCA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTc0PmBfXy4KKworCistIGAjNDQzNSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NDM1PmBfOiBEZXByZWNh
dGVkIGBgcmFpc2VzKC4uLiwgJ2NvZGUoYXNfYV9zdHJpbmcpJylgYCBhbmQgYGB3YXJucyguLi4s
ICdjb2RlKGFzX2Ffc3RyaW5nKScpYGAuCisKKyAgU2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3Jn
L2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNyYWlzZXMtd2FybnMtZXhlYyBmb3IgcmF0aW9u
YWxlIGFuZCBleGFtcGxlcy4KKworCisKK0ZlYXR1cmVzCistLS0tLS0tLQorCistIGAjMzE5MSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMTkxPmBfOiBBIHdh
cm5pbmcgaXMgbm93IGlzc3VlZCB3aGVuIGFzc2VydGlvbnMgYXJlIG1hZGUgZm9yIGBgTm9uZWBg
LgorCisgIFRoaXMgaXMgYSBjb21tb24gc291cmNlIG9mIGNvbmZ1c2lvbiBhbW9uZyBuZXcgdXNl
cnMsIHdoaWNoIHdyaXRlOgorCisgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgYXNz
ZXJ0IG1vY2tlZF9vYmplY3QuYXNzZXJ0X2NhbGxlZF93aXRoKDMsIDQsIDUsIGtleT0idmFsdWUi
KQorCisgIFdoZW4gdGhleSBzaG91bGQgd3JpdGU6CisKKyAgLi4gY29kZS1ibG9jazo6IHB5dGhv
bgorCisgICAgICBtb2NrZWRfb2JqZWN0LmFzc2VydF9jYWxsZWRfd2l0aCgzLCA0LCA1LCBrZXk9
InZhbHVlIikKKworICBCZWNhdXNlIHRoZSBgYGFzc2VydF9jYWxsZWRfd2l0aGBgIG1ldGhvZCBv
ZiBtb2NrIG9iamVjdHMgYWxyZWFkeSBleGVjdXRlcyBhbiBhc3NlcnRpb24uCisKKyAgVGhpcyB3
YXJuaW5nIHdpbGwgbm90IGJlIGlzc3VlZCB3aGVuIGBgTm9uZWBgIGlzIGV4cGxpY2l0bHkgY2hl
Y2tlZC4gQW4gYXNzZXJ0aW9uIGxpa2U6CisKKyAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisg
ICAgICBhc3NlcnQgdmFyaWFibGUgaXMgTm9uZQorCisgIHdpbGwgbm90IGlzc3VlIHRoZSB3YXJu
aW5nLgorCisKKy0gYCMzNjMyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzM2MzI+YF86IFJpY2hlciBlcXVhbGl0eSBjb21wYXJpc29uIGludHJvc3BlY3Rpb24g
b24gYGBBc3NlcnRpb25FcnJvcmBgIGZvciBvYmplY3RzIGNyZWF0ZWQgdXNpbmcgYGF0dHJzIDxo
dHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9zdGFibGUvPmBfXyBvciBgZGF0YWNsYXNzZXMgPGh0dHBz
Oi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9kYXRhY2xhc3Nlcy5odG1sPmBfIChQeXRob24g
My43KywgYGJhY2twb3J0ZWQgdG8gMy42IDxodHRwczovL3B5cGkub3JnL3Byb2plY3QvZGF0YWNs
YXNzZXM+YF9fKS4KKworCistIGAjNDI3OCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy80Mjc4PmBfOiBgYENBQ0hFRElSLlRBR2BgIGZpbGVzIGFyZSBub3cgY3Jl
YXRlZCBpbnNpZGUgY2FjaGUgZGlyZWN0b3JpZXMuCisKKyAgVGhvc2UgZmlsZXMgYXJlIHBhcnQg
b2YgdGhlIGBDYWNoZSBEaXJlY3RvcnkgVGFnZ2luZyBTdGFuZGFyZCA8aHR0cDovL3d3dy5iZm9y
ZC5pbmZvL2NhY2hlZGlyL3NwZWMuaHRtbD5gX18sIGFuZCBjYW4KKyAgYmUgdXNlZCBieSBiYWNr
dXAgb3Igc3luY2hyb25pemF0aW9uIHByb2dyYW1zIHRvIGlkZW50aWZ5IHB5dGVzdCdzIGNhY2hl
IGRpcmVjdG9yeSBhcyBzdWNoLgorCisKKy0gYCM0MjkyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQyOTI+YF86IGBgcHl0ZXN0Lm91dGNvbWVzLkV4aXRgYCBp
cyBkZXJpdmVkIGZyb20gYGBTeXN0ZW1FeGl0YGAgaW5zdGVhZCBvZiBgYEtleWJvYXJkSW50ZXJy
dXB0YGAuIFRoaXMgYWxsb3dzIHVzIHRvIGJldHRlciBoYW5kbGUgYGBwZGJgYCBleGl0aW5nLgor
CisKKy0gYCM0MzcxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzQzNzE+YF86IFVwZGF0ZWQgdGhlIGBgLS1jb2xsZWN0LW9ubHlgYCBvcHRpb24gdG8gZGlzcGxh
eSB0ZXN0IGRlc2NyaXB0aW9ucyB3aGVuIHJhbiB1c2luZyBgYC0tdmVyYm9zZWBgLgorCisKKy0g
YCM0Mzg2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzODY+
YF86IFJlc3RydWN0dXJlZCBgYEV4Y2VwdGlvbkluZm9gYCBvYmplY3QgY29uc3RydWN0aW9uIGFu
ZCBlbnN1cmUgaW5jb21wbGV0ZSBpbnN0YW5jZXMgaGF2ZSBhIGBgcmVwcmBgL2Bgc3RyYGAuCisK
KworLSBgIzQ0MTYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NDQxNj5gXzogcGRiOiBhZGRlZCBzdXBwb3J0IGZvciBrZXl3b3JkIGFyZ3VtZW50cyB3aXRoIGBg
cGRiLnNldF90cmFjZWBgLgorCisgIEl0IGhhbmRsZXMgYGBoZWFkZXJgYCBzaW1pbGFyIHRvIFB5
dGhvbiAzLjcgZG9lcyBpdCwgYW5kIGZvcndhcmRzIGFueQorICBvdGhlciBrZXl3b3JkIGFyZ3Vt
ZW50cyB0byB0aGUgYGBQZGJgYCBjb25zdHJ1Y3Rvci4KKworICBUaGlzIGFsbG93cyBmb3IgYGBf
X2ltcG9ydF9fKCJwZGIiKS5zZXRfdHJhY2Uoc2tpcD1bImZvby4qIl0pYGAuCisKKworLSBgIzQ0
ODMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDQ4Mz5gXzog
QWRkZWQgaW5pIHBhcmFtZXRlciBgYGp1bml0X2R1cmF0aW9uX3JlcG9ydGBgIHRvIG9wdGlvbmFs
bHkgcmVwb3J0IHRlc3QgY2FsbCBkdXJhdGlvbnMsIGV4Y2x1ZGluZyBzZXR1cCBhbmQgdGVhcmRv
d24gdGltZXMuCisKKyAgVGhlIEpVbml0IFhNTCBzcGVjaWZpY2F0aW9uIGFuZCB0aGUgZGVmYXVs
dCBweXRlc3QgYmVoYXZpb3IgaXMgdG8gaW5jbHVkZSBzZXR1cCBhbmQgdGVhcmRvd24gdGltZXMg
aW4gdGhlIHRlc3QgZHVyYXRpb24KKyAgcmVwb3J0LiBZb3UgY2FuIGluY2x1ZGUganVzdCB0aGUg
Y2FsbCBkdXJhdGlvbnMgaW5zdGVhZCAoZXhjbHVkaW5nIHNldHVwIGFuZCB0ZWFyZG93bikgYnkg
YWRkaW5nIHRoaXMgdG8geW91ciBgYHB5dGVzdC5pbmlgYCBmaWxlOgorCisgIC4uIGNvZGUtYmxv
Y2s6OiBpbmkKKworICAgICAgW3B5dGVzdF0KKyAgICAgIGp1bml0X2R1cmF0aW9uX3JlcG9ydCA9
IGNhbGwKKworCistIGAjNDUzMiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy80NTMyPmBfOiBgYC1yYWBgIG5vdyB3aWxsIHNob3cgZXJyb3JzIGFuZCBmYWlsdXJl
cyBsYXN0LCBpbnN0ZWFkIG9mIGFzIHRoZSBmaXJzdCBpdGVtcyBpbiB0aGUgc3VtbWFyeS4KKwor
ICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBvYnRhaW4gYSBsaXN0IG9mIGVycm9ycyBhbmQgZmFp
bHVyZXMgdG8gcnVuIHRlc3RzIHNlbGVjdGl2ZWx5LgorCisKKy0gYCM0NTk5IDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ1OTk+YF86IGBgcHl0ZXN0LmltcG9y
dG9yc2tpcGBgIG5vdyBzdXBwb3J0cyBhIGBgcmVhc29uYGAgcGFyYW1ldGVyLCB3aGljaCB3aWxs
IGJlIHNob3duIHdoZW4gdGhlCisgIHJlcXVlc3RlZCBtb2R1bGUgY2Fubm90IGJlIGltcG9ydGVk
LgorCisKKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzM1MzIgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzUzMj5gXzogYGAtcGBgIG5vdyBhY2NlcHRz
IGl0cyBhcmd1bWVudCB3aXRob3V0IGEgc3BhY2UgYmV0d2VlbiB0aGUgdmFsdWUsIGZvciBleGFt
cGxlIGBgLXBteXBsdWdpbmBgLgorCisKKy0gYCM0MzI3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzMjc+YF86IGBgYXBwcm94YGAgYWdhaW4gd29ya3Mgd2l0
aCBtb3JlIGdlbmVyaWMgY29udGFpbmVycywgbW9yZSBwcmVjaXNlbHkgaW5zdGFuY2VzIG9mIGBg
SXRlcmFibGVgYCBhbmQgYGBTaXplZGBgIGluc3RlYWQgb2YgbW9yZSByZXN0cmljdGl2ZSBgYFNl
cXVlbmNlYGAuCisKKworLSBgIzQzOTcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNDM5Nz5gXzogRW5zdXJlIHRoYXQgbm9kZSBpZHMgYXJlIHByaW50YWJsZS4K
KworCistIGAjNDQzNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy80NDM1PmBfOiBGaXhlZCBgYHJhaXNlcyguLi4sICdjb2RlKHN0cmluZyknKWBgIGZyYW1lIGZp
bGVuYW1lLgorCisKKy0gYCM0NDU4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzQ0NTg+YF86IERpc3BsYXkgYWN0dWFsIHRlc3QgaWRzIGluIGBgLS1jb2xsZWN0
LW9ubHlgYC4KKworCisKK0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworLSBgIzQ1NTcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNDU1Nz5gXzogTWFya2VycyBleGFtcGxlIGRvY3VtZW50YXRpb24gcGFnZSB1cGRhdGVk
IHRvIHN1cHBvcnQgbGF0ZXN0IHB5dGVzdCB2ZXJzaW9uLgorCisKKy0gYCM0NTU4IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ1NTg+YF86IFVwZGF0ZSBjYWNo
ZSBkb2N1bWVudGF0aW9uIGV4YW1wbGUgdG8gY29ycmVjdGx5IHNob3cgY2FjaGUgaGl0IGFuZCBt
aXNzLgorCisKKy0gYCM0NTgwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzQ1ODA+YF86IEltcHJvdmVkIGRldGFpbGVkIHN1bW1hcnkgcmVwb3J0IGRvY3VtZW50
YXRpb24uCisKKworCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCistIGAjNDQ0NyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy80NDQ3PmBfOiBDaGFuZ2VkIHRoZSBkZXByZWNhdGlvbiB0eXBlIG9mIGBgLS1yZXN1
bHQtbG9nYGAgdG8gYGBQeXRlc3REZXByZWNhdGlvbldhcm5pbmdgYC4KKworICBJdCB3YXMgZGVj
aWRlZCB0byByZW1vdmUgdGhpcyBmZWF0dXJlIGF0IHRoZSBuZXh0IG1ham9yIHJldmlzaW9uLgor
CisKK3B5dGVzdCA0LjAuMiAoMjAxOC0xMi0xMykKKz09PT09PT09PT09PT09PT09PT09PT09PT0K
KworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzQyNjUgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDI2NT5gXzogVmFsaWRhdGUgYXJndW1lbnRzIGZyb20g
dGhlIGBgUFlURVNUX0FERE9QVFNgYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbmQgdGhlIGBgYWRk
b3B0c2BgIGluaSBvcHRpb24gc2VwYXJhdGVseS4KKworCistIGAjNDQzNSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NDM1PmBfOiBGaXggYGByYWlzZXMoLi4u
LCAnY29kZShzdHJpbmcpJylgYCBmcmFtZSBmaWxlbmFtZS4KKworCistIGAjNDUwMCA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NTAwPmBfOiBXaGVuIGEgZml4
dHVyZSB5aWVsZHMgYW5kIGEgbG9nIGNhbGwgaXMgbWFkZSBhZnRlciB0aGUgdGVzdCBydW5zLCBh
bmQsIGlmIHRoZSB0ZXN0IGlzIGludGVycnVwdGVkLCBjYXB0dXJlIGF0dHJpYnV0ZXMgYXJlIGBg
Tm9uZWBgLgorCisKKy0gYCM0NTM4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzQ1Mzg+YF86IFJhaXNlIGBgVHlwZUVycm9yYGAgZm9yIGBgd2l0aCByYWlzZXMo
Li4uLCBtYXRjaD08bm9uLU5vbmUgZmFsc2V5IHZhbHVlPilgYC4KKworCisKK0ltcHJvdmVkIERv
Y3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzE0OTUgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTQ5NT5gXzogRG9jdW1lbnQgY29t
bW9uIGRvY3Rlc3QgZml4dHVyZSBkaXJlY3RvcnkgdHJlZSBzdHJ1Y3R1cmUgcGl0ZmFsbHMKKwor
CitweXRlc3QgNC4wLjEgKDIwMTgtMTEtMjMpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisK
K0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMzOTUyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM5NTI+YF86IERpc3BsYXkgd2FybmluZ3MgYmVmb3JlICJz
aG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyIgYWdhaW4sIGJ1dCBzdGlsbCBsYXRlciB3YXJuaW5ncyBp
biB0aGUgZW5kLgorCisKKy0gYCM0Mzg2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzQzODY+YF86IEhhbmRsZSB1bmluaXRpYWxpemVkIGV4Y2VwdGlvbmluZm8g
aW4gcmVwci9zdHIuCisKKworLSBgIzQzOTMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNDM5Mz5gXzogRG8gbm90IGNyZWF0ZSBgYC5naXRpZ25vcmVgYC9gYFJF
QURNRS5tZGBgIGZpbGVzIGluIGV4aXN0aW5nIGNhY2hlIGRpcmVjdG9yaWVzLgorCisKKy0gYCM0
NDAwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ0MDA+YF86
IFJlYXJyYW5nZSB3YXJuaW5nIGhhbmRsaW5nIGZvciB0aGUgeWllbGQgdGVzdCBlcnJvcnMgc28g
dGhlIG9wdC1vdXQgaW4gNC4wLnggY29ycmVjdGx5IHdvcmtzLgorCisKKy0gYCM0NDA1IDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ0MDU+YF86IEZpeCBjb2xs
ZWN0aW9uIG9mIHRlc3RwYXRocyB3aXRoIGBgLS1weWFyZ3NgYC4KKworCistIGAjNDQxMiA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NDEyPmBfOiBGaXggYXNz
ZXJ0aW9uIHJld3JpdGluZyBpbnZvbHZpbmcgYGBTdGFycmVkYGAgKyBzaWRlLWVmZmVjdHMuCisK
KworLSBgIzQ0MjUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NDQyNT5gXzogRW5zdXJlIHdlIHJlc29sdmUgdGhlIGFic29sdXRlIHBhdGggd2hlbiB0aGUgZ2l2
ZW4gYGAtLWJhc2V0ZW1wYGAgaXMgYSByZWxhdGl2ZSBwYXRoLgorCisKKworVHJpdmlhbC9JbnRl
cm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzQzMTUgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDMxNT5gXzogVXNlIGBgcGtn
X3Jlc291cmNlcy5wYXJzZV92ZXJzaW9uYGAgaW5zdGVhZCBvZiBgYExvb3NlVmVyc2lvbmBgIGlu
IG1pbnZlcnNpb24gY2hlY2suCisKKworLSBgIzQ0NDAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDQ0MD5gXzogQWRqdXN0IHRoZSBzdGFjayBsZXZlbCBvZiBz
b21lIGludGVybmFsIHB5dGVzdCB3YXJuaW5ncy4KKworCitweXRlc3QgNC4wLjAgKDIwMTgtMTEt
MTMpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK1JlbW92YWxzCistLS0tLS0tLQorCist
IGAjMzczNyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzM3
PmBfOiAqKlJlbW92ZWRJblB5dGVzdDRXYXJuaW5ncyBhcmUgbm93IGVycm9ycyBieSBkZWZhdWx0
LioqCisKKyAgRm9sbG93aW5nIG91ciBwbGFuIHRvIHJlbW92ZSBkZXByZWNhdGVkIGZlYXR1cmVz
IHdpdGggYXMgbGl0dGxlIGRpc3J1cHRpb24gYXMKKyAgcG9zc2libGUsIGFsbCB3YXJuaW5ncyBv
ZiB0eXBlIGBgUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmdzYGAgbm93IGdlbmVyYXRlIGVycm9ycwor
ICBpbnN0ZWFkIG9mIHdhcm5pbmcgbWVzc2FnZXMuCisKKyAgKipUaGUgYWZmZWN0ZWQgZmVhdHVy
ZXMgd2lsbCBiZSBlZmZlY3RpdmVseSByZW1vdmVkIGluIHB5dGVzdCA0LjEqKiwgc28gcGxlYXNl
IGNvbnN1bHQgdGhlCisgIGBEZXByZWNhdGlvbnMgYW5kIFJlbW92YWxzIDxodHRwczovL2RvY3Mu
cHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0bWw+YF9fCisgIHNlY3Rpb24gaW4g
dGhlIGRvY3MgZm9yIGRpcmVjdGlvbnMgb24gaG93IHRvIHVwZGF0ZSBleGlzdGluZyBjb2RlLgor
CisgIEluIHRoZSBweXRlc3QgYGA0LjAuWGBgIHNlcmllcywgaXQgaXMgcG9zc2libGUgdG8gY2hh
bmdlIHRoZSBlcnJvcnMgYmFjayBpbnRvIHdhcm5pbmdzIGFzIGEgc3RvcAorICBnYXAgbWVhc3Vy
ZSBieSBhZGRpbmcgdGhpcyB0byB5b3VyIGBgcHl0ZXN0LmluaWBgIGZpbGU6CisKKyAgLi4gY29k
ZS1ibG9jazo6IGluaQorCisgICAgICBbcHl0ZXN0XQorICAgICAgZmlsdGVyd2FybmluZ3MgPQor
ICAgICAgICAgIGlnbm9yZTo6cHl0ZXN0LlJlbW92ZWRJblB5dGVzdDRXYXJuaW5nCisKKyAgQnV0
IHRoaXMgd2lsbCBzdG9wIHdvcmtpbmcgd2hlbiBweXRlc3QgYGA0LjFgYCBpcyByZWxlYXNlZC4K
KworICAqKklmIHlvdSBoYXZlIGNvbmNlcm5zKiogYWJvdXQgdGhlIHJlbW92YWwgb2YgYSBzcGVj
aWZpYyBmZWF0dXJlLCBwbGVhc2UgYWRkIGEKKyAgY29tbWVudCB0byBgIzQzNDggPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDM0OD5gX18uCisKKworLSBgIzQz
NTggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDM1OD5gXzog
UmVtb3ZlIHRoZSBgYDo6KClgYCBub3RhdGlvbiB0byBkZW5vdGUgYSB0ZXN0IGNsYXNzIGluc3Rh
bmNlIGluIG5vZGUgaWRzLgorCisgIFByZXZpb3VzbHksIG5vZGUgaWRzIHRoYXQgY29udGFpbiB0
ZXN0IGluc3RhbmNlcyB3b3VsZCB1c2UgYGA6OigpYGAgdG8gZGVub3RlIHRoZSBpbnN0YW5jZSBs
aWtlIHRoaXM6OgorCisgICAgICB0ZXN0X2Zvby5weTo6VGVzdDo6KCk6OnRlc3RfYmFyCisKKyAg
VGhlIGV4dHJhIGBgOjooKWBgIHdhcyBwdXp6bGluZyB0byBtb3N0IHVzZXJzIGFuZCBoYXMgYmVl
biByZW1vdmVkLCBzbyB0aGF0IHRoZSB0ZXN0IGlkIGJlY29tZXMgbm93OjoKKworICAgICAgdGVz
dF9mb28ucHk6OlRlc3Q6OnRlc3RfYmFyCisKKyAgVGhpcyBjaGFuZ2UgY291bGQgbm90IGFjY29t
cGFueSBhIGRlcHJlY2F0aW9uIHBlcmlvZCBhcyBpcyB1c3VhbCB3aGVuIHVzZXItZmFjaW5nIGZ1
bmN0aW9uYWxpdHkgY2hhbmdlcyBiZWNhdXNlCisgIGl0IHdhcyBub3QgcmVhbGx5IHBvc3NpYmxl
IHRvIGRldGVjdCB3aGVuIHRoZSBmdW5jdGlvbmFsaXR5IHdhcyBiZWluZyB1c2VkIGV4cGxpY2l0
bHkuCisKKyAgVGhlIGV4dHJhIGBgOjooKWBgIG1pZ2h0IGhhdmUgYmVlbiByZW1vdmVkIGluIHNv
bWUgcGxhY2VzIGludGVybmFsbHkgYWxyZWFkeSwKKyAgd2hpY2ggdGhlbiBsZWQgdG8gY29uZnVz
aW9uIGluIHBsYWNlcyB3aGVyZSBpdCB3YXMgZXhwZWN0ZWQsIGUuZy4gd2l0aAorICBgYC0tZGVz
ZWxlY3RgYCAoYCM0MTI3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzQxMjc+YF8pLgorCisgIFRlc3QgY2xhc3MgaW5zdGFuY2VzIGFyZSBhbHNvIG5vdCBsaXN0
ZWQgd2l0aCBgYC0tY29sbGVjdC1vbmx5YGAgYW55bW9yZS4KKworCisKK0ZlYXR1cmVzCistLS0t
LS0tLQorCistIGAjNDI3MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy80MjcwPmBfOiBUaGUgYGBjYWNoZV9kaXJgYCBvcHRpb24gdXNlcyBgYCRUT1hfRU5WX0RJ
UmBgIGFzIHByZWZpeCAoaWYgc2V0IGluIHRoZSBlbnZpcm9ubWVudCkuCisKKyAgVGhpcyB1c2Vz
IGEgZGlmZmVyZW50IGNhY2hlIHBlciB0b3ggZW52aXJvbm1lbnQgYnkgZGVmYXVsdC4KKworCisK
K0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMzNTU0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM1NTQ+YF86IEZpeCBgYENhbGxJbmZvLl9fcmVwcl9fYGAg
Zm9yIHdoZW4gdGhlIGNhbGwgaXMgbm90IGZpbmlzaGVkIHlldC4KKworCitweXRlc3QgMy4xMC4x
ICgyMDE4LTExLTExKQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVnIEZpeGVzCist
LS0tLS0tLS0KKworLSBgIzQyODcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvNDI4Nz5gXzogRml4IG5lc3RlZCB1c2FnZSBvZiBkZWJ1Z2dpbmcgcGx1Z2luIChw
ZGIpLCBlLmcuIHdpdGggcHl0ZXN0ZXIncyBgYHRlc3RkaXIucnVucHl0ZXN0YGAuCisKKworLSBg
IzQzMDQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDMwND5g
XzogQmxvY2sgdGhlIGBgc3RlcHdpc2VgYCBwbHVnaW4gaWYgYGBjYWNoZXByb3ZpZGVyYGAgaXMg
YWxzbyBibG9ja2VkLCBhcyBvbmUgZGVwZW5kcyBvbiB0aGUgb3RoZXIuCisKKworLSBgIzQzMDYg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDMwNj5gXzogUGFy
c2UgYGBtaW52ZXJzaW9uYGAgYXMgYW4gYWN0dWFsIHZlcnNpb24gYW5kIG5vdCBhcyBkb3Qtc2Vw
YXJhdGVkIHN0cmluZ3MuCisKKworLSBgIzQzMTAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvNDMxMD5gXzogRml4IGR1cGxpY2F0ZSBjb2xsZWN0aW9uIGR1ZSB0
byBtdWx0aXBsZSBhcmdzIG1hdGNoaW5nIHRoZSBzYW1lIHBhY2thZ2VzLgorCisKKy0gYCM0MzIx
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzMjE+YF86IEZp
eCBgYGl0ZW0ubm9kZWlkYGAgd2l0aCByZXNvbHZlZCBzeW1saW5rcy4KKworCistIGAjNDMyNSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MzI1PmBfOiBGaXgg
Y29sbGVjdGlvbiBvZiBkaXJlY3Qgc3ltbGlua2VkIGZpbGVzLCB3aGVyZSB0aGUgdGFyZ2V0IGRv
ZXMgbm90IG1hdGNoIGBgcHl0aG9uX2ZpbGVzYGAuCisKKworLSBgIzQzMjkgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDMyOT5gXzogRml4IFR5cGVFcnJvciBp
biByZXBvcnRfY29sbGVjdCB3aXRoIF9jb2xsZWN0X3JlcG9ydF9sYXN0X3dyaXRlLgorCisKKwor
VHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBg
IzQzMDUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDMwNT5g
XzogUmVwbGFjZSBieXRlL3VuaWNvZGUgaGVscGVycyBpbiB0ZXN0X2NhcHR1cmUgd2l0aCBweXRo
b24gbGV2ZWwgc3ludGF4LgorCisKK3B5dGVzdCAzLjEwLjAgKDIwMTgtMTEtMDMpCis9PT09PT09
PT09PT09PT09PT09PT09PT09PQorCitGZWF0dXJlcworLS0tLS0tLS0KKworLSBgIzI2MTkgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjYxOT5gXzogUmVzdW1l
IGNhcHR1cmluZyBvdXRwdXQgYWZ0ZXIgYGBjb250aW51ZWBgIHdpdGggYGBfX2ltcG9ydF9fKCJw
ZGIiKS5zZXRfdHJhY2UoKWBgLgorCisgIFRoaXMgYWxzbyBhZGRzIGEgbmV3IGBgcHl0ZXN0X2xl
YXZlX3BkYmBgIGhvb2ssIGFuZCBwYXNzZXMgaW4gYGBwZGJgYCB0byB0aGUKKyAgZXhpc3Rpbmcg
YGBweXRlc3RfZW50ZXJfcGRiYGAgaG9vay4KKworCistIGAjNDE0NyA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MTQ3PmBfOiBBZGQgYGAtLXN3YGAsIGBgLS1z
dGVwd2lzZWBgIGFzIGFuIGFsdGVybmF0aXZlIHRvIGBgLS1sZiAteGBgIGZvciBzdG9wcGluZyBh
dCB0aGUgZmlyc3QgZmFpbHVyZSwgYnV0IHN0YXJ0aW5nIHRoZSBuZXh0IHRlc3QgaW52b2NhdGlv
biBmcm9tIHRoYXQgdGVzdC4gIFNlZSBgdGhlIGRvY3VtZW50YXRpb24gPGh0dHBzOi8vZG9jcy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC9jYWNoZS5odG1sI3N0ZXB3aXNlPmBfXyBmb3IgbW9yZSBpbmZv
LgorCisKKy0gYCM0MTg4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzQxODg+YF86IE1ha2UgYGAtLWNvbG9yYGAgZW1pdCBjb2xvcmZ1bCBkb3RzIHdoZW4gbm90
IHJ1bm5pbmcgaW4gdmVyYm9zZSBtb2RlLiBFYXJsaWVyLCBpdCB3b3VsZCBvbmx5IGNvbG9yaXpl
IHRoZSB0ZXN0LWJ5LXRlc3Qgb3V0cHV0IGlmIGBgLS12ZXJib3NlYGAgd2FzIGFsc28gcGFzc2Vk
LgorCisKKy0gYCM0MjI1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzQyMjU+YF86IEltcHJvdmUgcGVyZm9ybWFuY2Ugd2l0aCBjb2xsZWN0aW9uIHJlcG9ydGlu
ZyBpbiBub24tcXVpZXQgbW9kZSB3aXRoIHRlcm1pbmFscy4KKworICBUaGUgImNvbGxlY3Rpbmcg
4oCmIiBtZXNzYWdlIGlzIG9ubHkgcHJpbnRlZC91cGRhdGVkIGV2ZXJ5IDAuNXMuCisKKworCitC
dWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjMjcwMSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNzAxPmBfOiBGaXggZmFsc2UgYGBSZW1vdmVkSW5QeXRlc3Q0
V2FybmluZzogdXNhZ2Ugb2YgU2Vzc2lvbi4uLiBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIHB5
dGVzdGBgIHdhcm5pbmdzLgorCisKKy0gYCM0MDQ2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzQwNDY+YF86IEZpeCBwcm9ibGVtcyB3aXRoIHJ1bm5pbmcgdGVz
dHMgaW4gcGFja2FnZSBgYF9faW5pdF9fLnB5YGAgZmlsZXMuCisKKworLSBgIzQyNjAgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDI2MD5gXzogU3dhbGxvdyB3
YXJuaW5ncyBkdXJpbmcgYW5vbnltb3VzIGNvbXBpbGF0aW9uIG9mIHNvdXJjZS4KKworCistIGAj
NDI2MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MjYyPmBf
OiBGaXggYWNjZXNzIGRlbmllZCBlcnJvciB3aGVuIGRlbGV0aW5nIHN0YWxlIGRpcmVjdG9yaWVz
IGNyZWF0ZWQgYnkgYGB0bXBkaXJgYCAvIGBgdG1wX3BhdGhgYC4KKworCistIGAjNjExIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzYxMT5gXzogTmFtaW5nIGEg
Zml4dHVyZSBgYHJlcXVlc3RgYCB3aWxsIG5vdyByYWlzZSBhIHdhcm5pbmc6IHRoZSBgYHJlcXVl
c3RgYCBmaXh0dXJlIGlzIGludGVybmFsIGFuZAorICBzaG91bGQgbm90IGJlIG92ZXJ3cml0dGVu
IGFzIGl0IHdpbGwgbGVhZCB0byBpbnRlcm5hbCBlcnJvcnMuCisKKy0gYCM0MjY2IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQyNjY+YF86IEhhbmRsZSAoaWdu
b3JlKSBleGNlcHRpb25zIHJhaXNlZCBkdXJpbmcgY29sbGVjdGlvbiwgZS5nLiB3aXRoIERqYW5n
bydzIExhenlTZXR0aW5ncyBwcm94eSBjbGFzcy4KKworCisKK0ltcHJvdmVkIERvY3VtZW50YXRp
b24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzQyNTUgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDI1NT5gXzogQWRkZWQgbWlzc2luZyBkb2N1bWVu
dGF0aW9uIGFib3V0IHRoZSBmYWN0IHRoYXQgbW9kdWxlIG5hbWVzIHBhc3NlZCB0byBmaWx0ZXIg
d2FybmluZ3MgYXJlIG5vdCByZWdleC1lc2NhcGVkLgorCisKKworVHJpdmlhbC9JbnRlcm5hbCBD
aGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzQyNzIgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDI3Mj5gXzogRGlzcGxheSBjYWNoZWRp
ciBhbHNvIGluIG5vbi12ZXJib3NlIG1vZGUgaWYgbm9uLWRlZmF1bHQuCisKKworLSBgIzQyNzcg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDI3Nz5gXzogcGRi
OiBpbXByb3ZlIG1lc3NhZ2UgYWJvdXQgb3V0cHV0IGNhcHR1cmluZyB3aXRoIGBgc2V0X3RyYWNl
YGAuCisKKyAgRG8gbm90IGRpc3BsYXkgIklPLWNhcHR1cmluZyB0dXJuZWQgb2ZmL29uIiB3aGVu
IGBgLXNgYCBpcyB1c2VkIHRvIGF2b2lkCisgIGNvbmZ1c2lvbi4KKworCistIGAjNDI3OSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80Mjc5PmBfOiBJbXByb3Zl
IG1lc3NhZ2UgYW5kIHN0YWNrIGxldmVsIG9mIHdhcm5pbmdzIGlzc3VlZCBieSBgYG1vbmtleXBh
dGNoLnNldGVudmBgIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBp
cyBub3QgYSBgYHN0cmBgLgorCisKK3B5dGVzdCAzLjkuMyAoMjAxOC0xMC0yNykKKz09PT09PT09
PT09PT09PT09PT09PT09PT0KKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzQxNzQgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDE3ND5gXzogRml4ICJW
YWx1ZUVycm9yOiBQbHVnaW4gYWxyZWFkeSByZWdpc3RlcmVkIiB3aXRoIGNvbmZ0ZXN0IHBsdWdp
bnMgdmlhIHN5bWxpbmsuCisKKworLSBgIzQxODEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvNDE4MT5gXzogSGFuZGxlIHJhY2UgY29uZGl0aW9uIGJldHdlZW4g
Y3JlYXRpb24gYW5kIGRlbGV0aW9uIG9mIHRlbXBvcmFyeSBmb2xkZXJzLgorCisKKy0gYCM0MjIx
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQyMjE+YF86IEZp
eCBidWcgd2hlcmUgdGhlIHdhcm5pbmcgc3VtbWFyeSBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0IHNl
c3Npb24gd2FzIG5vdCBzaG93aW5nIHRoZSB0ZXN0IHdoZXJlIHRoZSB3YXJuaW5nIHdhcyBvcmln
aW5hdGVkLgorCisKKy0gYCM0MjQzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzQyNDM+YF86IEZpeCByZWdyZXNzaW9uIHdoZW4gYGBzdGFja2xldmVsYGAgZm9y
IHdhcm5pbmdzIHdhcyBwYXNzZWQgYXMgcG9zaXRpb25hbCBhcmd1bWVudCBvbiBweXRob24yLgor
CisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCist
IGAjMzg1MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zODUx
PmBfOiBBZGQgcmVmZXJlbmNlIHRvIGBgZW1wdHlfcGFyYW1ldGVyX3NldF9tYXJrYGAgaW5pIG9w
dGlvbiBpbiBkb2N1bWVudGF0aW9uIG9mIGBgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAKKwor
CisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky0gYCM0MDI4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQw
Mjg+YF86IFJldmVydCBwYXRjaGluZyBvZiBgYHN5cy5icmVha3BvaW50aG9va2BgIHNpbmNlIGl0
IGFwcGVhcnMgdG8gZG8gbm90aGluZy4KKworCistIGAjNDIzMyA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MjMzPmBfOiBBcHBseSBhbiBpbXBvcnQgc29ydGVy
IChgYHJlb3JkZXItcHl0aG9uLWltcG9ydHNgYCkgdG8gdGhlIGNvZGViYXNlLgorCisKKy0gYCM0
MjQ4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQyNDg+YF86
IFJlbW92ZSB1c2Ugb2YgdW5uZWNlc3NhcnkgY29tcGF0IHNoaW0sIHNpeC5iaW5hcnlfdHlwZQor
CisKK3B5dGVzdCAzLjkuMiAoMjAxOC0xMC0yMikKKz09PT09PT09PT09PT09PT09PT09PT09PT0K
KworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzI5MDkgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjkwOT5gXzogSW1wcm92ZSBlcnJvciBtZXNzYWdlIHdo
ZW4gYSByZWN1cnNpdmUgZGVwZW5kZW5jeSBiZXR3ZWVuIGZpeHR1cmVzIGlzIGRldGVjdGVkLgor
CisKKy0gYCMzMzQwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzMzNDA+YF86IEZpeCBsb2dnaW5nIG1lc3NhZ2VzIG5vdCBzaG93biBpbiBob29rcyBgYHB5dGVz
dF9zZXNzaW9uc3RhcnQoKWBgIGFuZCBgYHB5dGVzdF9zZXNzaW9uZmluaXNoKClgYC4KKworCist
IGAjMzUzMyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNTMz
PmBfOiBGaXggdW5lc2NhcGVkIFhNTCByYXcgb2JqZWN0cyBpbiBKVW5pdCByZXBvcnQgZm9yIHNr
aXBwZWQgdGVzdHMKKworCistIGAjMzY5MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8zNjkxPmBfOiBQeXRob24gMjogc2FmZWx5IGZvcm1hdCB3YXJuaW5nIG1l
c3NhZ2UgYWJvdXQgcGFzc2luZyB1bmljb2RlIHN0cmluZ3MgdG8gYGB3YXJuaW5ncy53YXJuYGAs
IHdoaWNoIG1heSBjYXVzZQorICBzdXJwcmlzaW5nIGBgTWVtb3J5RXJyb3JgYCBleGNlcHRpb24g
d2hlbiBtb25rZXkgcGF0Y2hpbmcgYGB3YXJuaW5ncy53YXJuYGAgaXRzZWxmLgorCisKKy0gYCM0
MDI2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQwMjY+YF86
IEltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBkZXRlcm1p
bmUgYSBmdW5jdGlvbidzIHNpZ25hdHVyZS4KKworCistIGAjNDE3NyA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MTc3PmBfOiBQaW4gYGBzZXR1cHRvb2xzPj00
MC4wYGAgdG8gc3VwcG9ydCBgYHB5X21vZHVsZXNgYCBpbiBgYHNldHVwLmNmZ2BgCisKKworLSBg
IzQxNzkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDE3OT5g
XzogUmVzdG9yZSB0aGUgdG1wZGlyIGJlaGF2aW91ciBvZiBzeW1saW5raW5nIHRoZSBjdXJyZW50
IHRlc3QgcnVuLgorCisKKy0gYCM0MTkyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzQxOTI+YF86IEZpeCBmaWxlbmFtZSByZXBvcnRlZCBieSBgYHdhcm5pbmdz
Lndhcm5gYCB3aGVuIHVzaW5nIGBgcmVjd2FybmBgIHVuZGVyIHB5dGhvbjIuCisKKworcHl0ZXN0
IDMuOS4xICgyMDE4LTEwLTE2KQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitGZWF0dXJl
cworLS0tLS0tLS0KKworLSBgIzQxNTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNDE1OT5gXzogRm9yIHRlc3Qtc3VpdGVzIGNvbnRhaW5pbmcgdGVzdCBjbGFz
c2VzLCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN1YmNsYXNzZWQKKyAgbW9kdWxlIGlzIG5v
dyBvdXRwdXQgb25seSBpZiBhIGhpZ2hlciB2ZXJib3NpdHkgbGV2ZWwgaXMgc3BlY2lmaWVkIChh
dCBsZWFzdAorICAiLXZ2IikuCisKKworcHl0ZXN0IDMuOS4wICgyMDE4LTEwLTE1IC0gbm90IHB1
Ymxpc2hlZCBkdWUgdG8gYSByZWxlYXNlIGF1dG9tYXRpb24gYnVnKQorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorCitEZXByZWNhdGlvbnMKKy0tLS0tLS0tLS0tLQorCistIGAjMzYxNiA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNjE2PmBfOiBUaGUgZm9sbG93aW5nIGFj
Y2Vzc2VzIGhhdmUgYmVlbiBkb2N1bWVudGVkIGFzIGRlcHJlY2F0ZWQgZm9yIHllYXJzLCBidXQg
YXJlIG5vdyBhY3R1YWxseSBlbWl0dGluZyBkZXByZWNhdGlvbiB3YXJuaW5ncy4KKworICAqIEFj
Y2VzcyBvZiBgYE1vZHVsZWBgLCBgYEZ1bmN0aW9uYGAsIGBgQ2xhc3NgYCwgYGBJbnN0YW5jZWBg
LCBgYEZpbGVgYCBhbmQgYGBJdGVtYGAgdGhyb3VnaCBgYE5vZGVgYCBpbnN0YW5jZXMuIE5vdwor
ICAgIHVzZXJzIHdpbGwgdGhpcyB3YXJuaW5nOjoKKworICAgICAgICAgIHVzYWdlIG9mIEZ1bmN0
aW9uLk1vZHVsZSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIHB5dGVzdC5Nb2R1bGUgaW5zdGVh
ZAorCisgICAgVXNlcnMgc2hvdWxkIGp1c3QgYGBpbXBvcnQgcHl0ZXN0YGAgYW5kIGFjY2VzcyB0
aG9zZSBvYmplY3RzIHVzaW5nIHRoZSBgYHB5dGVzdGBgIG1vZHVsZS4KKworICAqIGBgcmVxdWVz
dC5jYWNoZWRfc2V0dXBgYCwgdGhpcyB3YXMgdGhlIHByZWN1cnNvciBvZiB0aGUgc2V0dXAvdGVh
cmRvd24gbWVjaGFuaXNtIGF2YWlsYWJsZSB0byBmaXh0dXJlcy4gWW91IGNhbgorICAgIGNvbnN1
bHQgYGZ1bmNhcmcgY29tcGFyaXNvbiBzZWN0aW9uIGluIHRoZSBkb2NzIDxodHRwczovL2RvY3Mu
cHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZnVuY2FyZ19jb21wYXJlLmh0bWw+YF8uCisKKyAgKiBVc2lu
ZyBvYmplY3RzIG5hbWVkIGBgIkNsYXNzImBgIGFzIGEgd2F5IHRvIGN1c3RvbWl6ZSB0aGUgdHlw
ZSBvZiBub2RlcyB0aGF0IGFyZSBjb2xsZWN0ZWQgaW4gYGBDb2xsZWN0b3JgYAorICAgIHN1YmNs
YXNzZXMgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNlcnMgaW5zdGVhZCBzaG91bGQgdXNlIGBgcHl0
ZXN0X2NvbGxlY3RfbWFrZV9pdGVtYGAgdG8gY3VzdG9taXplIG5vZGUgdHlwZXMgZHVyaW5nCisg
ICAgY29sbGVjdGlvbi4KKworICAgIFRoaXMgaXNzdWUgc2hvdWxkIGFmZmVjdCBvbmx5IGFkdmFu
Y2VkIHBsdWdpbnMgd2hvIGNyZWF0ZSBuZXcgY29sbGVjdGlvbiB0eXBlcywgc28gaWYgeW91IHNl
ZSB0aGlzIHdhcm5pbmcKKyAgICBtZXNzYWdlIHBsZWFzZSBjb250YWN0IHRoZSBhdXRob3JzIHNv
IHRoZXkgY2FuIGNoYW5nZSB0aGUgY29kZS4KKworICAqIFRoZSB3YXJuaW5nIHRoYXQgcHJvZHVj
ZXMgdGhlIG1lc3NhZ2UgYmVsb3cgaGFzIGNoYW5nZWQgdG8gYGBSZW1vdmVkSW5QeXRlc3Q0V2Fy
bmluZ2BgOjoKKworICAgICAgICAgIGdldGZ1bmNhcmd2YWx1ZSBpcyBkZXByZWNhdGVkLCB1c2Ug
Z2V0Zml4dHVyZXZhbHVlCisKKworLSBgIzM5ODggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMzk4OD5gXzogQWRkIGEgRGVwcmVjYXRpb24gd2FybmluZyBmb3Ig
cHl0ZXN0LmVuc3VyZXRlbXAgYXMgaXQgd2FzIGRlcHJlY2F0ZWQgc2luY2UgYSB3aGlsZS4KKwor
CisKK0ZlYXR1cmVzCistLS0tLS0tLQorCistIGAjMjI5MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMjkzPmBfOiBJbXByb3ZlIHVzYWdlIGVycm9ycyBtZXNz
YWdlcyBieSBoaWRpbmcgaW50ZXJuYWwgZGV0YWlscyB3aGljaCBjYW4gYmUgZGlzdHJhY3Rpbmcg
YW5kIG5vaXN5LgorCisgIFRoaXMgaGFzIHRoZSBzaWRlIGVmZmVjdCB0aGF0IHNvbWUgZXJyb3Ig
Y29uZGl0aW9ucyB0aGF0IHByZXZpb3VzbHkgcmFpc2VkIGdlbmVyaWMgZXJyb3JzIChzdWNoIGFz
CisgIGBgVmFsdWVFcnJvcmBgIGZvciB1bnJlZ2lzdGVyZWQgbWFya3MpIGFyZSBub3cgcmFpc2lu
ZyBgYEZhaWxlZGBgIGV4Y2VwdGlvbnMuCisKKworLSBgIzMzMzIgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzMzMj5gXzogSW1wcm92ZSB0aGUgZXJyb3IgZGlz
cGxheWVkIHdoZW4gYSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSBjb3VsZCBub3QgYmUgaW1wb3J0ZWQu
CisKKyAgSW4gb3JkZXIgdG8gaW1wbGVtZW50IHRoaXMsIGEgbmV3IGBgY2hhaW5gYCBwYXJhbWV0
ZXIgd2FzIGFkZGVkIHRvIGBgRXhjZXB0aW9uSW5mby5nZXRyZXByYGAKKyAgdG8gc2hvdyBvciBo
aWRlIGNoYWluZWQgdHJhY2ViYWNrcyBpbiBQeXRob24gMyAoZGVmYXVsdHMgdG8gYGBUcnVlYGAp
LgorCisKKy0gYCMzODQ5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzM4NDk+YF86IEFkZCBgYGVtcHR5X3BhcmFtZXRlcl9zZXRfbWFyaz1mYWlsX2F0X2NvbGxl
Y3RgYCBpbmkgb3B0aW9uIGZvciByYWlzaW5nIGFuIGV4Y2VwdGlvbiB3aGVuIHBhcmFtZXRyaXpl
IGNvbGxlY3RzIGFuIGVtcHR5IHNldC4KKworCistIGAjMzk2NCA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTY0PmBfOiBMb2cgbWVzc2FnZXMgZ2VuZXJhdGVk
IGluIHRoZSBjb2xsZWN0aW9uIHBoYXNlIGFyZSBzaG93biB3aGVuCisgIGxpdmUtbG9nZ2luZyBp
cyBlbmFibGVkIGFuZC9vciB3aGVuIHRoZXkgYXJlIGxvZ2dlZCB0byBhIGZpbGUuCisKKworLSBg
IzM5ODUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzk4NT5g
XzogSW50cm9kdWNlIGBgdG1wX3BhdGhgYCBhcyBhIGZpeHR1cmUgcHJvdmlkaW5nIGEgUGF0aCBv
YmplY3QuCisKKworLSBgIzQwMTMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvNDAxMz5gXzogRGVwcmVjYXRpb24gd2FybmluZ3MgYXJlIG5vdyBzaG93biBldmVu
IGlmIHlvdSBjdXN0b21pemUgdGhlIHdhcm5pbmdzIGZpbHRlcnMgeW91cnNlbGYuIEluIHRoZSBw
cmV2aW91cyB2ZXJzaW9uCisgIGFueSBjdXN0b21pemF0aW9uIHdvdWxkIG92ZXJyaWRlIHB5dGVz
dCdzIGZpbHRlcnMgYW5kIGRlcHJlY2F0aW9uIHdhcm5pbmdzIHdvdWxkIGZhbGwgYmFjayB0byBi
ZWluZyBoaWRkZW4gYnkgZGVmYXVsdC4KKworCistIGAjNDA3MyA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MDczPmBfOiBBbGxvdyBzcGVjaWZpY2F0aW9uIG9m
IHRpbWVvdXQgZm9yIGBgVGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpYGAgYW5kIGBgVGVz
dGRpci5ydW4oKWBgLgorCisKKy0gYCM0MDk4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzQwOTg+YF86IEFkZCByZXR1cm5jb2RlIGFyZ3VtZW50IHRvIHB5dGVz
dC5leGl0KCkgdG8gZXhpdCBweXRlc3Qgd2l0aCBhIHNwZWNpZmljIHJldHVybiBjb2RlLgorCisK
Ky0gYCM0MTAyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQx
MDI+YF86IFJlaW1wbGVtZW50IGBgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbGBgIHVzaW5nIGBgcHl0
ZXN0Lndhcm5zYGAgc28gaXQgc3VwcG9ydHMgdGhlIGBgbWF0Y2g9Jy4uLidgYCBrZXl3b3JkIGFy
Z3VtZW50LgorCisgIFRoaXMgaGFzIHRoZSBzaWRlIGVmZmVjdCB0aGF0IGBgcHl0ZXN0LmRlcHJl
Y2F0ZWRfY2FsbGBgIG5vdyByYWlzZXMgYGBweXRlc3QuZmFpbC5FeGNlcHRpb25gYCBpbnN0ZWFk
CisgIG9mIGBgQXNzZXJ0aW9uRXJyb3JgYC4KKworCistIGAjNDE0OSA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MTQ5PmBfOiBSZXF1aXJlIHNldHVwdG9vbHM+
PTMwLjMgYW5kIG1vdmUgbW9zdCBvZiB0aGUgbWV0YWRhdGEgdG8gYGBzZXR1cC5jZmdgYC4KKwor
CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMyNTM1IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI1MzU+YF86IEltcHJvdmUgZXJyb3IgbWVzc2FnZSB3
aGVuIHRlc3QgZnVuY3Rpb25zIG9mIGBgdW5pdHRlc3QuVGVzdENhc2VgYCBzdWJjbGFzc2VzIHVz
ZSBhIHBhcmFtZXRyaXplZCBmaXh0dXJlLgorCisKKy0gYCMzMDU3IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzMwNTc+YF86IGBgcmVxdWVzdC5maXh0dXJlbmFt
ZXNgYCBub3cgY29ycmVjdGx5IHJldHVybnMgdGhlIG5hbWUgb2YgZml4dHVyZXMgY3JlYXRlZCBi
eSBgYHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKClgYC4KKworCistIGAjMzk0NiA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTQ2PmBfOiBXYXJuaW5nIGZpbHRl
cnMgcGFzc2VkIGFzIGNvbW1hbmQgbGluZSBvcHRpb25zIHVzaW5nIGBgLVdgYCBub3cgdGFrZSBw
cmVjZWRlbmNlIG92ZXIgZmlsdGVycyBkZWZpbmVkIGluIGBgaW5pYGAKKyAgY29uZmlndXJhdGlv
biBmaWxlcy4KKworCistIGAjNDA2NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy80MDY2PmBfOiBGaXggc291cmNlIHJlaW5kZW50aW5nIGJ5IHVzaW5nIGBgdGV4
dHdyYXAuZGVkZW50YGAgZGlyZWN0bHkuCisKKworLSBgIzQxMDIgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDEwMj5gXzogYGBweXRlc3Qud2FybmBgIHdpbGwg
Y2FwdHVyZSBwcmV2aW91c2x5LXdhcm5lZCB3YXJuaW5ncyBpbiBQeXRob24gMi4gUHJldmlvdXNs
eSB0aGV5IHdlcmUgbmV2ZXIgcmFpc2VkLgorCisKKy0gYCM0MTA4IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQxMDg+YF86IFJlc29sdmUgc3ltYm9saWMgbGlu
a3MgZm9yIGFyZ3MuCisKKyAgVGhpcyBmaXhlcyBydW5uaW5nIGBgcHl0ZXN0IHRlc3RzL3Rlc3Rf
Zm9vLnB5Ojp0ZXN0X2JhcmBgLCB3aGVyZSBgYHRlc3RzYGAKKyAgaXMgYSBzeW1saW5rIHRvIGBg
cHJvamVjdC9hcHAvdGVzdHNgYDoKKyAgcHJldmlvdXNseSBgYHByb2plY3QvYXBwL2NvbmZ0ZXN0
LnB5YGAgd291bGQgYmUgaWdub3JlZCBmb3IgZml4dHVyZXMgdGhlbi4KKworCistIGAjNDEzMiA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MTMyPmBfOiBGaXgg
ZHVwbGljYXRlIHByaW50aW5nIG9mIGludGVybmFsIGVycm9ycyB3aGVuIHVzaW5nIGBgLS1wZGJg
YC4KKworCistIGAjNDEzNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy80MTM1PmBfOiBwYXRobGliIGJhc2VkIHRtcGRpciBjbGVhbnVwIG5vdyBjb3JyZWN0bHkg
aGFuZGxlcyBzeW1saW5rcyBpbiB0aGUgZm9sZGVyLgorCisKKy0gYCM0MTUyIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQxNTI+YF86IERpc3BsYXkgdGhlIGZp
bGVuYW1lIHdoZW4gZW5jb3VudGVyaW5nIGBgU3ludGF4V2FybmluZ2BgLgorCisKKworSW1wcm92
ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMzcxMyA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzEzPmBfOiBVcGRhdGUg
dXNlZml4dHVyZXMgZG9jdW1lbnRhdGlvbiB0byBjbGFyaWZ5IHRoYXQgaXQgY2FuJ3QgYmUgdXNl
ZCB3aXRoIGZpeHR1cmUgZnVuY3Rpb25zLgorCisKKy0gYCM0MDU4IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQwNTg+YF86IFVwZGF0ZSBmaXh0dXJlIGRvY3Vt
ZW50YXRpb24gdG8gc3BlY2lmeSB0aGF0IGEgZml4dHVyZSBjYW4gYmUgaW52b2tlZCB0d2ljZSBp
biB0aGUgc2NvcGUgaXQncyBkZWZpbmVkIGZvci4KKworCistIGAjNDA2NCA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MDY0PmBfOiBBY2NvcmRpbmcgdG8gdW5p
dHRlc3QucnN0LCBzZXRVcE1vZHVsZSBhbmQgdGVhckRvd25Nb2R1bGUgd2VyZSBub3QgaW1wbGVt
ZW50ZWQsIGJ1dCBpdCB0dXJucyBvdXQgdGhleSBhcmUuIFNvIHVwZGF0ZWQgdGhlIGRvY3VtZW50
YXRpb24gZm9yIHVuaXR0ZXN0LgorCisKKy0gYCM0MTUxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQxNTE+YF86IEFkZCB0ZW1waXIgdGVzdGluZyBleGFtcGxl
IHRvIENPTlRSSUJVVElORy5yc3QgZ3VpZGUKKworCisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdl
cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCMyMjkzIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIyOTM+YF86IFRoZSBpbnRlcm5hbCBgYE1hcmtl
ckVycm9yYGAgZXhjZXB0aW9uIGhhcyBiZWVuIHJlbW92ZWQuCisKKworLSBgIzM5ODggPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzk4OD5gXzogUG9ydCB0aGUg
aW1wbGVtZW50YXRpb24gb2YgdG1wZGlyIHRvIHBhdGhsaWIuCisKKworLSBgIzQwNjMgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDA2Mz5gXzogRXhjbHVkZSAw
LjAwIHNlY29uZCBlbnRyaWVzIGZyb20gYGAtLWR1cmF0aW9uYGAgb3V0cHV0IHVubGVzcyBgYC12
dmBgIGlzIHBhc3NlZCBvbiB0aGUgY29tbWFuZC1saW5lLgorCisKKy0gYCM0MDkzIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQwOTM+YF86IEZpeGVkIGZvcm1h
dHRpbmcgb2Ygc3RyaW5nIGxpdGVyYWxzIGluIGludGVybmFsIHRlc3RzLgorCisKK3B5dGVzdCAz
LjguMiAoMjAxOC0xMC0wMikKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworRGVwcmVjYXRp
b25zIGFuZCBSZW1vdmFscworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjNDAzNiA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MDM2PmBfOiBUaGUg
YGBpdGVtYGAgcGFyYW1ldGVyIG9mIGBgcHl0ZXN0X3dhcm5pbmdfY2FwdHVyZWRgYCBob29rIGlz
IG5vdyBkb2N1bWVudGVkIGFzIGRlcHJlY2F0ZWQuIFdlIHJlYWxpemVkIG9ubHkgYWZ0ZXIKKyAg
dGhlIGBgMy44YGAgcmVsZWFzZSB0aGF0IHRoaXMgcGFyYW1ldGVyIGlzIGluY29tcGF0aWJsZSB3
aXRoIGBgcHl0ZXN0LXhkaXN0YGAuCisKKyAgT3VyIHBvbGljeSBpcyB0byBub3QgZGVwcmVjYXRl
IGZlYXR1cmVzIGR1cmluZyBidWdmaXggcmVsZWFzZXMsIGJ1dCBpbiB0aGlzIGNhc2Ugd2UgYmVs
aWV2ZSBpdCBtYWtlcyBzZW5zZSBhcyB3ZSBhcmUKKyAgb25seSBkb2N1bWVudGluZyBpdCBhcyBk
ZXByZWNhdGVkLCB3aXRob3V0IGlzc3Vpbmcgd2FybmluZ3Mgd2hpY2ggbWlnaHQgcG90ZW50aWFs
bHkgYnJlYWsgdGVzdCBzdWl0ZXMuIFRoaXMgd2lsbCBnZXQKKyAgdGhlIHdvcmQgb3V0IHRoYXQg
aG9vayBpbXBsZW1lbnRlcnMgc2hvdWxkIG5vdCB1c2UgdGhpcyBwYXJhbWV0ZXIgYXQgYWxsLgor
CisgIEluIGEgZnV0dXJlIHJlbGVhc2UgYGBpdGVtYGAgd2lsbCBhbHdheXMgYmUgYGBOb25lYGAg
YW5kIHdpbGwgZW1pdCBhIHByb3BlciB3YXJuaW5nIHdoZW4gYSBob29rIGltcGxlbWVudGF0aW9u
CisgIG1ha2VzIHVzZSBvZiBpdC4KKworCisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMz
NTM5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM1Mzk+YF86
IEZpeCByZWxvYWQgb24gYXNzZXJ0aW9uIHJld3JpdHRlbiBtb2R1bGVzLgorCisKKy0gYCM0MDM0
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQwMzQ+YF86IFRo
ZSBgYC51c2VyX3Byb3BlcnRpZXNgYCBhdHRyaWJ1dGUgb2YgYGBUZXN0UmVwb3J0YGAgb2JqZWN0
cyBpcyBhIGxpc3QKKyAgb2YgKG5hbWUsIHZhbHVlKSB0dXBsZXMsIGJ1dCBjb3VsZCBzb21ldGlt
ZXMgYmUgaW5zdGFudGlhdGVkIGFzIGEgdHVwbGUKKyAgb2YgdHVwbGVzLiAgSXQgaXMgbm93IGFs
d2F5cyBhIGxpc3QuCisKKworLSBgIzQwMzkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNDAzOT5gXzogTm8gbG9uZ2VyIGlzc3VlIHdhcm5pbmdzIGFib3V0IHVz
aW5nIGBgcHl0ZXN0X3BsdWdpbnNgYCBpbiBub24tdG9wLWxldmVsIGRpcmVjdG9yaWVzIHdoZW4g
dXNpbmcgYGAtLXB5YXJnc2BgOiB0aGUKKyAgY3VycmVudCBgYC0tcHlhcmdzYGAgbWVjaGFuaXNt
IGlzIG5vdCByZWxpYWJsZSBhbmQgbWlnaHQgZ2l2ZSBmYWxzZSBuZWdhdGl2ZXMuCisKKworLSBg
IzQwNDAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDA0MD5g
XzogRXhjbHVkZSBlbXB0eSByZXBvcnRzIGZvciBwYXNzZWQgdGVzdHMgd2hlbiBgYC1yUGBgIG9w
dGlvbiBpcyB1c2VkLgorCisKKy0gYCM0MDUxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzQwNTE+YF86IEltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIGFuIGlu
dmFsaWQgUHl0aG9uIGV4cHJlc3Npb24gaXMgcGFzc2VkIHRvIHRoZSBgYC1tYGAgb3B0aW9uLgor
CisKKy0gYCM0MDU2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzQwNTY+YF86IGBgTW9ua2V5UGF0Y2guc2V0ZW52YGAgYW5kIGBgTW9ua2V5UGF0Y2guZGVsZW52
YGAgaXNzdWUgYSB3YXJuaW5nIGlmIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGlzIG5v
dCBgYHN0cmBgIG9uIFB5dGhvbiAyLgorCisgIEluIFB5dGhvbiAyLCBhZGRpbmcgYGB1bmljb2Rl
YGAga2V5cyB0byBgYG9zLmVudmlyb25gYCBjYXVzZXMgcHJvYmxlbXMgd2l0aCBgYHN1YnByb2Nl
c3NgYCAoYW5kIHBvc3NpYmxlIG90aGVyIG1vZHVsZXMpLAorICBtYWtpbmcgdGhpcyBhIHN1YnRs
ZSBidWcgc3BlY2lhbGx5IHN1c2NlcHRpYmxlIHdoZW4gdXNlZCB3aXRoIGBgZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzYGAuCisKKworCitJbXByb3ZlZCBEb2N1bWVudGF0
aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCMzOTI4IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM5Mjg+YF86IEFkZCBwb3NzaWJsZSB2YWx1ZXMg
Zm9yIGZpeHR1cmUgc2NvcGUgdG8gZG9jcy4KKworCitweXRlc3QgMy44LjEgKDIwMTgtMDktMjIp
Cis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0g
YCMzMjg2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzMyODY+
YF86IGBgLnB5dGVzdF9jYWNoZWBgIGRpcmVjdG9yeSBpcyBub3cgYXV0b21hdGljYWxseSBpZ25v
cmVkIGJ5IEdpdC4gVXNlcnMgd2hvIHdvdWxkIGxpa2UgdG8gY29udHJpYnV0ZSBhIHNvbHV0aW9u
IGZvciBvdGhlciBTQ01zIHBsZWFzZSBjb25zdWx0L2NvbW1lbnQgb24gdGhpcyBpc3N1ZS4KKwor
CistIGAjMzc0OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8z
NzQ5PmBfOiBGaXggdGhlIGZvbGxvd2luZyBlcnJvciBkdXJpbmcgY29sbGVjdGlvbiBvZiB0ZXN0
cyBpbnNpZGUgcGFja2FnZXM6OgorCisgICAgICBUeXBlRXJyb3I6IG9iamVjdCBvZiB0eXBlICdQ
YWNrYWdlJyBoYXMgbm8gbGVuKCkKKworCistIGAjMzk0MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTQxPmBfOiBGaXggYnVnIHdoZXJlIGluZGlyZWN0IHBh
cmFtZXRyaXphdGlvbiB3b3VsZCBjb25zaWRlciB0aGUgc2NvcGUgb2YgYWxsIGZpeHR1cmVzIHVz
ZWQgYnkgdGhlIHRlc3QgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIHRoZSBwYXJhbWV0cml6YXRpb24g
c2NvcGUsIGFuZCBub3Qgb25seSB0aGUgc2NvcGUgb2YgdGhlIGZpeHR1cmVzIGJlaW5nIHBhcmFt
ZXRyaXplZC4KKworCistIGAjMzk3MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8zOTczPmBfOiBGaXggY3Jhc2ggb2YgdGhlIGFzc2VydGlvbiByZXdyaXRlciBp
ZiBhIHRlc3QgY2hhbmdlZCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aXRob3V0IHJl
c3RvcmluZyBpdCBhZnRlcndhcmRzLgorCisKKy0gYCMzOTk4IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM5OTg+YF86IEZpeCBpc3N1ZSB0aGF0IHByZXZlbnRl
ZCBzb21lIGNhcGxvZyBwcm9wZXJ0aWVzIChmb3IgZXhhbXBsZSBgYHJlY29yZF90dXBsZXNgYCkg
ZnJvbSBiZWluZyBhdmFpbGFibGUgd2hlbiBlbnRlcmluZyB0aGUgZGVidWdnZXIgd2l0aCBgYC0t
cGRiYGAuCisKKworLSBgIzM5OTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMzk5OT5gXzogRml4IGBgVW5pY29kZURlY29kZUVycm9yYGAgaW4gcHl0aG9uMi54
IHdoZW4gYSBjbGFzcyByZXR1cm5zIGEgbm9uLWFzY2lpIGJpbmFyeSBgYF9fcmVwcl9fYGAgaW4g
YW4gYXNzZXJ0aW9uIHdoaWNoIGFsc28gY29udGFpbnMgbm9uLWFzY2lpIHRleHQuCisKKworCitJ
bXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCMzOTk2
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM5OTY+YF86IE5l
dyBgRGVwcmVjYXRpb25zIGFuZCBSZW1vdmFscyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sPmBfIHBhZ2Ugc2hvd3MgYWxsIGN1cnJlbnRseQorICBk
ZXByZWNhdGVkIGZlYXR1cmVzLCB0aGUgcmF0aW9uYWxlIHRvIGRvIHNvLCBhbmQgYWx0ZXJuYXRp
dmVzIHRvIHVwZGF0ZSB5b3VyIGNvZGUuIEl0IGFsc28gbGlzdCBmZWF0dXJlcyByZW1vdmVkCisg
IGZyb20gcHl0ZXN0IGluIHBhc3QgbWFqb3IgcmVsZWFzZXMgdG8gaGVscCB0aG9zZSB3aXRoIGFu
Y2llbnQgcHl0ZXN0IHZlcnNpb25zIHRvIHVwZ3JhZGUuCisKKworCitUcml2aWFsL0ludGVybmFs
IENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMzk1NSA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTU1PmBfOiBJbXByb3ZlIHByZS1j
b21taXQgZGV0ZWN0aW9uIGZvciBjaGFuZ2Vsb2cgZmlsZW5hbWVzCisKKworLSBgIzM5NzUgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzk3NT5gXzogUmVtb3Zl
IGxlZ2FjeSBjb2RlIGFyb3VuZCBpbV9mdW5jIGFzIHRoYXQgd2FzIHB5dGhvbjIgb25seQorCisK
K3B5dGVzdCAzLjguMCAoMjAxOC0wOS0wNSkKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
RGVwcmVjYXRpb25zIGFuZCBSZW1vdmFscworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCist
IGAjMjQ1MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNDUy
PmBfOiBgYENvbmZpZy53YXJuYGAgYW5kIGBgTm9kZS53YXJuYGAgaGF2ZSBiZWVuCisgIGRlcHJl
Y2F0ZWQsIHNlZSBgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlv
bnMuaHRtbCNjb25maWctd2Fybi1hbmQtbm9kZS13YXJuPmBfIGZvciByYXRpb25hbGUgYW5kCisg
IGV4YW1wbGVzLgorCistIGAjMzkzNiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8zOTM2PmBfOiBgYEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5nc2BgIHNlY29u
ZCBwYXJhbWV0ZXIgaXMgbm8gbG9uZ2VyIHJlZ2V4LWVzY2FwZWQsCisgIG1ha2luZyBpdCBwb3Nz
aWJsZSB0byBhY3R1YWxseSB1c2UgcmVndWxhciBleHByZXNzaW9ucyB0byBjaGVjayB0aGUgd2Fy
bmluZyBtZXNzYWdlLgorCisgICoqTm90ZSoqOiByZWdleC1lc2NhcGluZyB0aGUgbWF0Y2ggc3Ry
aW5nIHdhcyBhbiBpbXBsZW1lbnRhdGlvbiBvdmVyc2lnaHQgdGhhdCBtaWdodCBicmVhayB0ZXN0
IHN1aXRlcyB3aGljaCBkZXBlbmQKKyAgb24gdGhlIG9sZCBiZWhhdmlvci4KKworCisKK0ZlYXR1
cmVzCistLS0tLS0tLQorCistIGAjMjQ1MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8yNDUyPmBfOiBJbnRlcm5hbCBweXRlc3Qgd2FybmluZ3MgYXJlIG5vdyBp
c3N1ZWQgdXNpbmcgdGhlIHN0YW5kYXJkIGBgd2FybmluZ3NgYCBtb2R1bGUsIG1ha2luZyBpdCBw
b3NzaWJsZSB0byB1c2UKKyAgdGhlIHN0YW5kYXJkIHdhcm5pbmdzIGZpbHRlcnMgdG8gbWFuYWdl
IHRob3NlIHdhcm5pbmdzLiBUaGlzIGludHJvZHVjZXMgYGBQeXRlc3RXYXJuaW5nYGAsCisgIGBg
UHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nYGAgYW5kIGBgUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmdg
YCB3YXJuaW5nIHR5cGVzIGFzIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkuCisKKyAgQ29uc3VsdCBg
dGhlIGRvY3VtZW50YXRpb24gPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC93YXJu
aW5ncy5odG1sI2ludGVybmFsLXB5dGVzdC13YXJuaW5ncz5gX18gZm9yIG1vcmUgaW5mby4KKwor
CistIGAjMjkwOCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8y
OTA4PmBfOiBgYERlcHJlY2F0aW9uV2FybmluZ2BgIGFuZCBgYFBlbmRpbmdEZXByZWNhdGlvbldh
cm5pbmdgYCBhcmUgbm93IHNob3duIGJ5IGRlZmF1bHQgaWYgbm8gb3RoZXIgd2FybmluZyBmaWx0
ZXIgaXMKKyAgY29uZmlndXJlZC4gVGhpcyBtYWtlcyBweXRlc3QgbW9yZSBjb21wbGlhbnQgd2l0
aAorICBgUEVQLTA1MDYgPGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTA1NjUv
I3JlY29tbWVuZGVkLWZpbHRlci1zZXR0aW5ncy1mb3ItdGVzdC1ydW5uZXJzPmBfLiBTZWUKKyAg
YHRoZSBkb2NzIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvd2FybmluZ3MuaHRt
bCNkZXByZWNhdGlvbndhcm5pbmctYW5kLXBlbmRpbmdkZXByZWNhdGlvbndhcm5pbmc+YF8gZm9y
CisgIG1vcmUgaW5mby4KKworCistIGAjMzI1MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8zMjUxPmBfOiBXYXJuaW5ncyBhcmUgbm93IGNhcHR1cmVkIGFuZCBk
aXNwbGF5ZWQgZHVyaW5nIHRlc3QgY29sbGVjdGlvbi4KKworCistIGAjMzc4NCA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzg0PmBfOiBgYFBZVEVTVF9ESVNB
QkxFX1BMVUdJTl9BVVRPTE9BRGBgIGVudmlyb25tZW50IHZhcmlhYmxlIGRpc2FibGVzIHBsdWdp
biBhdXRvLWxvYWRpbmcgd2hlbiBzZXQuCisKKworLSBgIzM4MjkgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzgyOT5gXzogQWRkZWQgdGhlIGBgY291bnRgYCBv
cHRpb24gdG8gYGBjb25zb2xlX291dHB1dF9zdHlsZWBgIHRvIGVuYWJsZSBkaXNwbGF5aW5nIHRo
ZSBwcm9ncmVzcyBhcyBhIGNvdW50IGluc3RlYWQgb2YgYSBwZXJjZW50YWdlLgorCisKKy0gYCMz
ODM3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM4Mzc+YF86
IEFkZGVkIHN1cHBvcnQgZm9yICd4ZmFpbGVkJyBhbmQgJ3hwYXNzZWQnIG91dGNvbWVzIHRvIHRo
ZSBgYHB5dGVzdGVyLlJ1blJlc3VsdC5hc3NlcnRfb3V0Y29tZXNgYCBzaWduYXR1cmUuCisKKwor
CitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjMzkxMSA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTExPmBfOiBUZXJtaW5hbCB3cml0ZXIgbm93IHRha2Vz
IGludG8gYWNjb3VudCB1bmljb2RlIGNoYXJhY3RlciB3aWR0aCB3aGVuIHdyaXRpbmcgb3V0IHBy
b2dyZXNzLgorCisKKy0gYCMzOTEzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzM5MTM+YF86IFB5dGVzdCBub3cgcmV0dXJucyB3aXRoIGNvcnJlY3QgZXhpdCBj
b2RlIChFWElUX1VTQUdFRVJST1IsIDQpIHdoZW4gY2FsbGVkIHdpdGggdW5rbm93biBhcmd1bWVu
dHMuCisKKworLSBgIzM5MTggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMzkxOD5gXzogSW1wcm92ZSBwZXJmb3JtYW5jZSBvZiBhc3NlcnRpb24gcmV3cml0aW5n
LgorCisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CistIGAjMzU2NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8z
NTY2PmBfOiBBZGRlZCBhIGJsdXJiIGluIHVzYWdlLnJzdCBmb3IgdGhlIHVzYWdlIG9mIC1yIGZs
YWcgd2hpY2ggaXMgdXNlZCB0byBzaG93IGFuIGV4dHJhIHRlc3Qgc3VtbWFyeSBpbmZvLgorCisK
Ky0gYCMzOTA3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM5
MDc+YF86IENvcnJlY3RlZCB0eXBlIG9mIHRoZSBleGNlcHRpb25zIGNvbGxlY3Rpb24gcGFzc2Vk
IHRvIGBgeGZhaWxgYDogYGByYWlzZXNgYCBhcmd1bWVudCBhY2NlcHRzIGEgYGB0dXBsZWBgIGlu
c3RlYWQgb2YgYGBsaXN0YGAuCisKKworCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMzg1MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8zODUzPmBfOiBSZW1vdmVkIGBgInJ1biBhbGwgKG5vIHJlY29y
ZGVkIGZhaWx1cmVzKSJgYCBtZXNzYWdlIHByaW50ZWQgd2l0aCBgYC0tZmFpbGVkLWZpcnN0YGAg
YW5kIGBgLS1sYXN0LWZhaWxlZGBgIHdoZW4gdGhlcmUgYXJlIG5vIGZhaWxlZCB0ZXN0cy4KKwor
CitweXRlc3QgMy43LjQgKDIwMTgtMDgtMjkpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisK
K0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMzNTA2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM1MDY+YF86IEZpeCBwb3NzaWJsZSBpbmZpbml0ZSByZWN1
cnNpb24gd2hlbiB3cml0aW5nIGBgLnB5Y2BgIGZpbGVzLgorCisKKy0gYCMzODUzIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM4NTM+YF86IENhY2hlIHBsdWdp
biBub3cgb2JleXMgdGhlIGBgLXFgYCBmbGFnIHdoZW4gYGAtLWxhc3QtZmFpbGVkYGAgYW5kIGBg
LS1mYWlsZWQtZmlyc3RgYCBmbGFncyBhcmUgdXNlZC4KKworCistIGAjMzg4MyA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zODgzPmBfOiBGaXggYmFkIGNvbnNv
bGUgb3V0cHV0IHdoZW4gdXNpbmcgYGBjb25zb2xlX291dHB1dF9zdHlsZT1jbGFzc2ljYGAuCisK
KworLSBgIzM4ODggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
Mzg4OD5gXzogRml4IG1hY09TIHNwZWNpZmljIGNvZGUgdXNpbmcgYGBjYXB0dXJlbWFuYWdlcmBg
IHBsdWdpbiBpbiBkb2N0ZXN0cy4KKworCisKK0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzM5MDIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMzkwMj5gXzogRml4IHB5dGVzdC5vcmcgbGlua3MKKworCitweXRl
c3QgMy43LjMgKDIwMTgtMDgtMjYpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBG
aXhlcworLS0tLS0tLS0tCisKKy0gYCMzMDMzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzMwMzM+YF86IEZpeHR1cmVzIGR1cmluZyB0ZWFyZG93biBjYW4gYWdh
aW4gdXNlIGBgY2Fwc3lzYGAgYW5kIGBgY2FwZmRgYCB0byBpbnNwZWN0IG91dHB1dCBjYXB0dXJl
ZCBkdXJpbmcgdGVzdHMuCisKKworLSBgIzM3NzMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMzc3Mz5gXzogRml4IGNvbGxlY3Rpb24gb2YgdGVzdHMgZnJvbSBg
YF9faW5pdF9fLnB5YGAgZmlsZXMgaWYgdGhleSBtYXRjaCB0aGUgYGBweXRob25fZmlsZXNgYCBj
b25maWd1cmF0aW9uIG9wdGlvbi4KKworCistIGAjMzc5NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzk2PmBfOiBGaXggaXNzdWUgd2hlcmUgdGVhcmRvd24g
b2YgZml4dHVyZXMgb2YgY29uc2VjdXRpdmUgc3ViLXBhY2thZ2VzIHdlcmUgZXhlY3V0ZWQgb25j
ZSwgYXQgdGhlIGVuZCBvZiB0aGUgb3V0ZXIKKyAgcGFja2FnZS4KKworCistIGAjMzgxNiA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zODE2PmBfOiBGaXggYnVn
IHdoZXJlIGBgLS1zaG93LWNhcHR1cmU9bm9gYCBvcHRpb24gd291bGQgc3RpbGwgc2hvdyBsb2dz
IHByaW50ZWQgZHVyaW5nIGZpeHR1cmUgdGVhcmRvd24uCisKKworLSBgIzM4MTkgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzgxOT5gXzogRml4IGBgc3Rkb3V0
L3N0ZGVycmBgIG5vdCBnZXR0aW5nIGNhcHR1cmVkIHdoZW4gcmVhbC10aW1lIGNsaSBsb2dnaW5n
IGlzIGFjdGl2ZS4KKworCistIGAjMzg0MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8zODQzPmBfOiBGaXggY29sbGVjdGlvbiBlcnJvciB3aGVuIHNwZWNpZnlp
bmcgdGVzdCBmdW5jdGlvbnMgZGlyZWN0bHkgaW4gdGhlIGNvbW1hbmQgbGluZSB1c2luZyBgYHRl
c3QucHk6OnRlc3RgYCBzeW50YXggdG9nZXRoZXIgd2l0aCBgYC0tZG9jdGVzdC1tb2R1bGVzYGAu
CisKKworLSBgIzM4NDggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMzg0OD5gXzogRml4IGJ1Z3Mgd2hlcmUgdW5pY29kZSBhcmd1bWVudHMgY291bGQgbm90IGJl
IHBhc3NlZCB0byBgYHRlc3RkaXIucnVucHl0ZXN0YGAgb24gUHl0aG9uIDIuCisKKworLSBgIzM4
NTQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzg1ND5gXzog
Rml4IGRvdWJsZSBjb2xsZWN0aW9uIG9mIHRlc3RzIHdpdGhpbiBwYWNrYWdlcyB3aGVuIHRoZSBm
aWxlbmFtZSBzdGFydHMgd2l0aCBhIGNhcGl0YWwgbGV0dGVyLgorCisKKworSW1wcm92ZWQgRG9j
dW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMzgyNCA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zODI0PmBfOiBBZGRlZCBleGFtcGxl
IGZvciBtdWx0aXBsZSBnbG9iIHBhdHRlcm4gbWF0Y2hlcyBpbiBgYHB5dGhvbl9maWxlc2BgLgor
CisKKy0gYCMzODMzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzM4MzM+YF86IEFkZGVkIG1pc3NpbmcgZG9jcyBmb3IgYGBweXRlc3Rlci5UZXN0ZGlyYGAuCisK
KworLSBgIzM4NzAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
Mzg3MD5gXzogQ29ycmVjdCBkb2N1bWVudGF0aW9uIGZvciBzZXR1cHRvb2xzIGludGVncmF0aW9u
LgorCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworLSBgIzM4MjYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMzgyNj5gXzogUmVwbGFjZSBicm9rZW4gdHlwZSBhbm5vdGF0aW9ucyB3aXRoIHR5cGUgY29t
bWVudHMuCisKKworLSBgIzM4NDUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMzg0NT5gXzogUmVtb3ZlIGEgcmVmZXJlbmNlIHRvIGlzc3VlIGAjNTY4IDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU2OD5gXyBmcm9tIHRoZSBk
b2N1bWVudGF0aW9uLCB3aGljaCBoYXMgc2luY2UgYmVlbgorICBmaXhlZC4KKworCitweXRlc3Qg
My43LjIgKDIwMTgtMDgtMTYpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhl
cworLS0tLS0tLS0tCisKKy0gYCMzNjcxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzM2NzE+YF86IEZpeCBgYGZpbHRlcndhcm5pbmdzYGAgbm90IGJlaW5nIHJl
Z2lzdGVyZWQgYXMgYSBidWlsdGluIG1hcmsuCisKKworLSBgIzM3NjggPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzc2OD5gXywgYCMzNzg5IDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3ODk+YF86IEZpeCB0ZXN0IGNvbGxl
Y3Rpb24gZnJvbSBwYWNrYWdlcyBtaXhlZCB3aXRoIG5vcm1hbCBkaXJlY3Rvcmllcy4KKworCist
IGAjMzc3MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzcx
PmBfOiBGaXggaW5maW5pdGUgcmVjdXJzaW9uIGR1cmluZyBjb2xsZWN0aW9uIGlmIGEgYGBweXRl
c3RfaWdub3JlX2NvbGxlY3RgYCBob29rIHJldHVybnMgYGBGYWxzZWBgIGluc3RlYWQgb2YgYGBO
b25lYGAuCisKKworLSBgIzM3NzQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMzc3ND5gXzogRml4IGJ1ZyB3aGVyZSBkZWNvcmF0ZWQgZml4dHVyZXMgd291bGQg
bG9zZSBmdW5jdGlvbmFsaXR5IChmb3IgZXhhbXBsZSBgYEBtb2NrLnBhdGNoYGApLgorCisKKy0g
YCMzNzc1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3NzU+
YF86IEZpeCBidWcgd2hlcmUgaW1wb3J0aW5nIG1vZHVsZXMgb3Igb3RoZXIgb2JqZWN0cyB3aXRo
IHByZWZpeCBgYHB5dGVzdF9gYCBwcmVmaXggd291bGQgcmFpc2UgYSBgYFBsdWdpblZhbGlkYXRp
b25FcnJvcmBgLgorCisKKy0gYCMzNzg4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzM3ODg+YF86IEZpeCBgYEF0dHJpYnV0ZUVycm9yYGAgZHVyaW5nIHRlYXJk
b3duIG9mIGBgVGVzdENhc2VgYCBzdWJjbGFzc2VzIHdoaWNoIHJhaXNlIGFuIGV4Y2VwdGlvbiBk
dXJpbmcgYGBfX2luaXRfX2BgLgorCisKKy0gYCMzODA0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM4MDQ+YF86IEZpeCB0cmFjZWJhY2sgcmVwb3J0aW5nIGZv
ciBleGNlcHRpb25zIHdpdGggYGBfX2NhdXNlX19gYCBjeWNsZXMuCisKKworCitJbXByb3ZlZCBE
b2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCMzNzQ2IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3NDY+YF86IEFkZCBkb2N1bWVu
dGF0aW9uIGZvciBgYG1ldGFmdW5jLmNvbmZpZ2BgIHRoYXQgaGFkIGJlZW4gbWlzdGFrZW5seSBo
aWRkZW4uCisKKworcHl0ZXN0IDMuNy4xICgyMDE4LTA4LTAyKQorPT09PT09PT09PT09PT09PT09
PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjMzQ3MyA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNDczPmBfOiBSYWlzZSBpbW1lZGlhdGVs
eSBpZiBgYGFwcHJveCgpYGAgaXMgZ2l2ZW4gYW4gZXhwZWN0ZWQgdmFsdWUgb2YgYSB0eXBlIGl0
IGRvZXNuJ3QgdW5kZXJzdGFuZCAoZS5nLiBzdHJpbmdzLCBuZXN0ZWQgZGljdHMsIGV0Yy4pLgor
CisKKy0gYCMzNzEyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzM3MTI+YF86IENvcnJlY3RseSByZXByZXNlbnQgdGhlIGRpbWVuc2lvbnMgb2YgYSBudW1weSBh
cnJheSB3aGVuIGNhbGxpbmcgYGByZXByKClgYCBvbiBgYGFwcHJveCgpYGAuCisKKy0gYCMzNzQy
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3NDI+YF86IEZp
eCBpbmNvbXBhdGliaWxpdHkgd2l0aCB0aGlyZCBwYXJ0eSBwbHVnaW5zIGR1cmluZyBjb2xsZWN0
aW9uLCB3aGljaCBwcm9kdWNlZCB0aGUgZXJyb3IgYGBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAn
X2NvbGxlY3RmaWxlJ2BgLgorCistIGAjMzc0NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8zNzQ1PmBfOiBEaXNwbGF5IHRoZSBhYnNvbHV0ZSBwYXRoIGlmIGBg
Y2FjaGVfZGlyYGAgaXMgbm90IHJlbGF0aXZlIHRvIHRoZSBgYHJvb3RkaXJgYCBpbnN0ZWFkIG9m
IGZhaWxpbmcuCisKKworLSBgIzM3NDcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMzc0Nz5gXzogRml4IGNvbXBhdGliaWxpdHkgcHJvYmxlbSB3aXRoIHBsdWdp
bnMgYW5kIHRoZSB3YXJuaW5nIGNvZGUgaXNzdWVkIGJ5IGZpeHR1cmUgZnVuY3Rpb25zIHdoZW4g
dGhleSBhcmUgY2FsbGVkIGRpcmVjdGx5LgorCisKKy0gYCMzNzQ4IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3NDg+YF86IEZpeCBpbmZpbml0ZSByZWN1cnNp
b24gaW4gYGBweXRlc3QuYXBwcm94YGAgd2l0aCBhcnJheXMgaW4gYGBudW1weTwxLjEzYGAuCisK
KworLSBgIzM3NTcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
Mzc1Nz5gXzogUGluIHBhdGhsaWIyIHRvIGBgPj0yLjIuMGBgIGFzIHdlIHJlcXVpcmUgYGBfX2Zz
cGF0aF9fYGAgc3VwcG9ydC4KKworCistIGAjMzc2MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzYzPmBfOiBGaXggYGBUeXBlRXJyb3JgYCB3aGVuIHRoZSBh
c3NlcnRpb24gbWVzc2FnZSBpcyBgYGJ5dGVzYGAgaW4gcHl0aG9uIDMuCisKKworcHl0ZXN0IDMu
Ny4wICgyMDE4LTA3LTMwKQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitEZXByZWNhdGlv
bnMgYW5kIFJlbW92YWxzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCMyNjM5IDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2Mzk+YF86IGBgcHl0
ZXN0X25hbWVzcGFjZWBgIGhhcyBiZWVuIGBkZXByZWNhdGVkIDxodHRwczovL2RvY3MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0bWwjcHl0ZXN0LW5hbWVzcGFjZT5gXy4KKwor
CistIGAjMzY2MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8z
NjYxPmBfOiBDYWxsaW5nIGEgZml4dHVyZSBmdW5jdGlvbiBkaXJlY3RseSwgYXMgb3Bwb3NlZCB0
byByZXF1ZXN0IHRoZW0gaW4gYSB0ZXN0IGZ1bmN0aW9uLCBub3cgaXNzdWVzIGEgYGBSZW1vdmVk
SW5QeXRlc3Q0V2FybmluZ2BgLiBTZWUgYHRoZSBkb2N1bWVudGF0aW9uIGZvciByYXRpb25hbGUg
YW5kIGV4YW1wbGVzIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRp
b25zLmh0bWwjY2FsbGluZy1maXh0dXJlcy1kaXJlY3RseT5gXy4KKworCisKK0ZlYXR1cmVzCist
LS0tLS0tLQorCistIGAjMjI4MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy8yMjgzPmBfOiBOZXcgYGBwYWNrYWdlYGAgZml4dHVyZSBzY29wZTogZml4dHVyZXMg
YXJlIGZpbmFsaXplZCB3aGVuIHRoZSBsYXN0IHRlc3Qgb2YgYSAqcGFja2FnZSogZmluaXNoZXMu
IFRoaXMgZmVhdHVyZSBpcyBjb25zaWRlcmVkICoqZXhwZXJpbWVudGFsKiosIHNvIHVzZSBpdCBz
cGFyaW5nbHkuCisKKworLSBgIzM1NzYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMzU3Nj5gXzogYGBOb2RlLmFkZF9tYXJrZXJgYCBub3cgc3VwcG9ydHMgYW4g
YGBhcHBlbmQ9VHJ1ZS9GYWxzZWBgIHBhcmFtZXRlciB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUg
bWFyayBjb21lcyBsYXN0IChkZWZhdWx0KSBvciBmaXJzdC4KKworCistIGAjMzU3OSA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNTc5PmBfOiBGaXh0dXJlIGBg
Y2FwbG9nYGAgbm93IGhhcyBhIGBgbWVzc2FnZXNgYCBwcm9wZXJ0eSwgcHJvdmlkaW5nIGNvbnZl
bmllbnQgYWNjZXNzIHRvIHRoZSBmb3JtYXQtaW50ZXJwb2xhdGVkIGxvZyBtZXNzYWdlcyB3aXRo
b3V0IHRoZSBleHRyYSBkYXRhIHByb3ZpZGVkIGJ5IHRoZSBmb3JtYXR0ZXIvaGFuZGxlci4KKwor
CistIGAjMzYxMCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8z
NjEwPmBfOiBOZXcgYGAtLXRyYWNlYGAgb3B0aW9uIHRvIGVudGVyIHRoZSBkZWJ1Z2dlciBhdCB0
aGUgc3RhcnQgb2YgYSB0ZXN0LgorCisKKy0gYCMzNjIzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM2MjM+YF86IEludHJvZHVjZSBgYHB5dGVzdGVyLmNvcHlf
ZXhhbXBsZWBgIGFzIGhlbHBlciB0byBkbyBhY2NlcHRhbmNlIHRlc3RzIGFnYWluc3QgZXhhbXBs
ZXMgZnJvbSB0aGUgcHJvamVjdC4KKworCisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMy
MjIwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIyMjA+YF86
IEZpeCBhIGJ1ZyB3aGVyZSBmaXh0dXJlcyBvdmVycmlkZGVuIGJ5IGRpcmVjdCBwYXJhbWV0ZXJz
IChmb3IgZXhhbXBsZSBwYXJhbWV0cml6YXRpb24pIHdlcmUgYmVpbmcgaW5zdGFudGlhdGVkIGV2
ZW4gaWYgdGhleSB3ZXJlIG5vdCBiZWluZyB1c2VkIGJ5IGEgdGVzdC4KKworCistIGAjMzY5NSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNjk1PmBfOiBGaXgg
YGBBcHByb3hOdW1weWBgIGluaXRpYWxpc2F0aW9uIGFyZ3VtZW50IG1peHVwLCBgYGFic2BgIGFu
ZCBgYHJlbGBgIHRvbGVyYW5jZXMgd2VyZSBmbGlwcGVkIGNhdXNpbmcgc3RyYW5nZSBjb21wYXJp
c29uIHJlc3VsdHMuCisgIEFkZCB0ZXN0cyB0byBjaGVjayBgYGFic2BgIGFuZCBgYHJlbGBgIHRv
bGVyYW5jZXMgZm9yIGBgbnAuYXJyYXlgYCBhbmQgdGVzdCBmb3IgZXhwZWN0aW5nIGBgbmFuYGAg
d2l0aCBgYG5wLmFycmF5KClgYAorCisKKy0gYCM5ODAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvOTgwPmBfOiBGaXggdHJ1bmNhdGVkIGxvY2FscyBvdXRwdXQg
aW4gdmVyYm9zZSBtb2RlLgorCisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCistIGAjMzI5NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8zMjk1PmBfOiBDb3JyZWN0IHRoZSB1c2FnZSBkb2N1bWVudGF0aW9uIG9m
IGBgLS1sYXN0LWZhaWxlZC1uby1mYWlsdXJlc2BgIGJ5IGFkZGluZyB0aGUgbWlzc2luZyBgYC0t
bGFzdC1mYWlsZWRgYCBhcmd1bWVudCBpbiB0aGUgcHJlc2VudGVkIGV4YW1wbGVzLCBiZWNhdXNl
IHRoZXkgYXJlIG1pc2xlYWRpbmcgYW5kIGxlYWQgdG8gdGhpbmsgdGhhdCB0aGUgbWlzc2luZyBh
cmd1bWVudCBpcyBub3QgbmVlZGVkLgorCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzM1MTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzUxOT5gXzogTm93IGEgYGBSRUFETUUubWRgYCBmaWxl
IGlzIGNyZWF0ZWQgaW4gYGAucHl0ZXN0X2NhY2hlYGAgdG8gbWFrZSBpdCBjbGVhciB3aHkgdGhl
IGRpcmVjdG9yeSBleGlzdHMuCisKKworcHl0ZXN0IDMuNi40ICgyMDE4LTA3LTI4KQorPT09PT09
PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIEludm9rZSBw
eXRlc3QgdXNpbmcgYGAtbXB5dGVzdGBgIHNvIGBgc3lzLnBhdGhgYCBkb2VzIG5vdCBnZXQgcG9s
bHV0ZWQgYnkgcGFja2FnZXMgaW5zdGFsbGVkIGluIGBgc2l0ZS1wYWNrYWdlc2BgLiAoYCM3NDIg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNzQyPmBfKQorCisK
K0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBVc2Ug
YGBzbXRwX2Nvbm5lY3Rpb25gYCBpbnN0ZWFkIG9mIGBgc210cGBgIGluIGZpeHR1cmVzIGRvY3Vt
ZW50YXRpb24gdG8gYXZvaWQgcG9zc2libGUgY29uZnVzaW9uLiAoYCMzNTkyIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM1OTI+YF8pCisKKworVHJpdmlhbC9J
bnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBSZW1vdmUgb2Jz
b2xldGUgYGBfX2Z1dHVyZV9fYGAgaW1wb3J0cy4gKGAjMjMxOSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMzE5PmBfKQorCistIEFkZCBDSVRBVElPTiB0byBw
cm92aWRlIGluZm9ybWF0aW9uIG9uIGhvdyB0byBmb3JtYWxseSBjaXRlIHB5dGVzdC4gKGAjMzQw
MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNDAyPmBfKQor
CistIFJlcGxhY2UgYnJva2VuIHR5cGUgYW5ub3RhdGlvbnMgd2l0aCB0eXBlIGNvbW1lbnRzLiAo
YCMzNjM1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM2MzU+
YF8pCisKKy0gUGluIGBgcGx1Z2d5YGAgdG8gYGA8MC44YGAuIChgIzM3MjcgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzcyNz5gXykKKworCitweXRlc3QgMy42
LjMgKDIwMTgtMDctMDQpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcwor
LS0tLS0tLS0tCisKKy0gRml4IGBgSW1wb3J0V2FybmluZ2BgIHRyaWdnZXJlZCBieSBleHBsaWNp
dCByZWxhdGl2ZSBpbXBvcnRzIGluCisgIGFzc2VydGlvbi1yZXdyaXR0ZW4gcGFja2FnZSBtb2R1
bGVzLiAoYCMzMDYxCisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzMwNjE+YF8pCisKKy0gRml4IGVycm9yIGluIGBgcHl0ZXN0LmFwcHJveGBgIHdoZW4gZGVh
bGluZyB3aXRoIDAtZGltZW5zaW9uIG51bXB5CisgIGFycmF5cy4gKGAjMzU5MyA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNTkzPmBfKQorCistIE5vIGxvbmdl
ciByYWlzZSBgYFZhbHVlRXJyb3JgYCB3aGVuIHVzaW5nIHRoZSBgYGdldF9tYXJrZXJgYCBBUEku
IChgIzM2MDUKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
MzYwNT5gXykKKworLSBGaXggcHJvYmxlbSB3aGVyZSBsb2cgbWVzc2FnZXMgd2l0aCBub24tYXNj
aWkgY2hhcmFjdGVycyB3b3VsZCBub3QKKyAgYXBwZWFyIGluIHRoZSBvdXRwdXQgbG9nIGZpbGUu
CisgIChgIzM2MzAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
MzYzMD5gXykKKworLSBObyBsb25nZXIgcmFpc2UgYGBBdHRyaWJ1dGVFcnJvcmBgIHdoZW4gbGVn
YWN5IG1hcmtzIGNhbid0IGJlIHN0b3JlZCBpbgorICBmdW5jdGlvbnMuIChgIzM2MzEgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzYzMT5gXykKKworCitJbXBy
b3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gVGhlIGRlc2Ny
aXB0aW9uIGFib3ZlIHRoZSBleGFtcGxlIGZvciBgYEBweXRlc3QubWFyay5za2lwaWZgYCBub3cg
YmV0dGVyCisgIG1hdGNoZXMgdGhlIGNvZGUuIChgIzM2MTEKKyAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzYxMT5gXykKKworCitUcml2aWFsL0ludGVybmFs
IENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIEludGVybmFsIHJlZmFjdG9y
aW5nOiByZW1vdmVkIHVudXNlZCBgYENhbGxTcGVjMnRveCAuX2dsb2JhbGlkX2FyZ3NgYAorICBh
dHRyaWJ1dGUgYW5kIGBgbWV0YWZ1bmNgYCBwYXJhbWV0ZXIgZnJvbSBgYENhbGxTcGVjMi5jb3B5
KClgYC4gKGAjMzU5OAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8zNTk4PmBfKQorCistIFNpbGVuY2UgdXNhZ2Ugb2YgYGByZWR1Y2VgYCB3YXJuaW5nIGlu
IFB5dGhvbiAyIChgIzM2MDkKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMzYwOT5gXykKKworLSBGaXggdXNhZ2Ugb2YgYGBhdHRyLmliYGAgZGVwcmVjYXRl
ZCBgYGNvbnZlcnRgYCBwYXJhbWV0ZXIuIChgIzM2NTMKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzY1Mz5gXykKKworCitweXRlc3QgMy42LjIgKDIwMTgt
MDYtMjApCiA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEJ1ZyBGaXhlcwpAQCAtMjYsNyAr
MjAxNSw3IEBAIEJ1ZyBGaXhlcwogICByYWlzZXMgYW4gZXhjZXB0aW9uLiAoYCMzNTY5CiAgIDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM1Njk+YF8pCiAKLS0g
Rml4IGVuY29kaW5nIGVycm9yIHdpdGggYHByaW50YCBzdGF0ZW1lbnRzIGluIGRvY3Rlc3RzIChg
IzM1ODMKKy0gRml4IGVuY29kaW5nIGVycm9yIHdpdGggYGBwcmludGBgIHN0YXRlbWVudHMgaW4g
ZG9jdGVzdHMgKGAjMzU4MwogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy8zNTgzPmBfKQogCiAKQEAgLTU0LDcgKzIwNDMsNyBAQCBUcml2aWFsL0ludGVybmFs
IENoYW5nZXMKICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
MzU2Nz5gXykKIAogCi1QeXRlc3QgMy42LjEgKDIwMTgtMDYtMDUpCitweXRlc3QgMy42LjEgKDIw
MTgtMDYtMDUpCiA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEJ1ZyBGaXhlcwpAQCAtOTgs
NyArMjA4Nyw3IEBAIFRyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcwogICA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNTI5PmBfKQogCiAKLVB5dGVzdCAzLjYuMCAo
MjAxOC0wNS0yMykKK3B5dGVzdCAzLjYuMCAoMjAxOC0wNS0yMykKID09PT09PT09PT09PT09PT09
PT09PT09PT0KIAogRmVhdHVyZXMKQEAgLTEwNyw3ICsyMDk2LDcgQEAgRmVhdHVyZXMKIC0gUmV2
YW1wIHRoZSBpbnRlcm5hbHMgb2YgdGhlIGBgcHl0ZXN0Lm1hcmtgYCBpbXBsZW1lbnRhdGlvbiB3
aXRoIGNvcnJlY3QgcGVyCiAgIG5vZGUgaGFuZGxpbmcgd2hpY2ggZml4ZXMgYSBudW1iZXIgb2Yg
bG9uZyBzdGFuZGluZyBidWdzIGNhdXNlZCBieSB0aGUgb2xkCiAgIGRlc2lnbi4gVGhpcyBpbnRy
b2R1Y2VzIG5ldyBgYE5vZGUuaXRlcl9tYXJrZXJzKG5hbWUpYGAgYW5kCi0gIGBgTm9kZS5nZXRf
Y2xvc2VzdF9tYXJrKG5hbWUpYGAgQVBJcy4gVXNlcnMgYXJlICoqc3Ryb25nbHkgZW5jb3VyYWdl
ZCoqIHRvCisgIGBgTm9kZS5nZXRfY2xvc2VzdF9tYXJrZXIobmFtZSlgYCBBUElzLiBVc2VycyBh
cmUgKipzdHJvbmdseSBlbmNvdXJhZ2VkKiogdG8KICAgcmVhZCB0aGUgYHJlYXNvbnMgZm9yIHRo
ZSByZXZhbXAgaW4gdGhlIGRvY3MKICAgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVz
dC9tYXJrLmh0bWwjbWFya2VyLXJldmFtcC1hbmQtaXRlcmF0aW9uPmBfLAogICBvciBqdW1wIG92
ZXIgdG8gZGV0YWlscyBhYm91dCBgdXBkYXRpbmcgZXhpc3RpbmcgY29kZSB0byB1c2UgdGhlIG5l
dyBBUElzCkBAIC0xMzMsNyArMjEyMiw3IEBAIEZlYXR1cmVzCiAgIGV4aXRzIHRoZSBkZWJ1Z2dl
ci4gT24gcHl0aG9uIDMuMiBhbmQgaGlnaGVyLCB1c2UgQ1RSTCtELiAoYCMzMjk5CiAgIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzMyOTk+YF8pCiAKLS0gcHl0
ZXN0IG5vdCBsb25nZXIgY2hhbmdlcyB0aGUgbG9nIGxldmVsIG9mIHRoZSByb290IGxvZ2dlciB3
aGVuIHRoZQorLSBweXRlc3Qgbm8gbG9uZ2VyIGNoYW5nZXMgdGhlIGxvZyBsZXZlbCBvZiB0aGUg
cm9vdCBsb2dnZXIgd2hlbiB0aGUKICAgYGBsb2ctbGV2ZWxgYCBwYXJhbWV0ZXIgaGFzIGdyZWF0
ZXIgbnVtZXJpYyB2YWx1ZSB0aGFuIHRoYXQgb2YgdGhlIGxldmVsIG9mCiAgIHRoZSByb290IGxv
Z2dlciwgd2hpY2ggbWFrZXMgaXQgcGxheSBiZXR0ZXIgd2l0aCBjdXN0b20gbG9nZ2luZyBjb25m
aWd1cmF0aW9uCiAgIGluIHVzZXIgY29kZS4gKGAjMzMwNyA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMzA3PmBfKQpAQCAtMTg0LDcgKzIxNzMsNyBAQCBUcml2
aWFsL0ludGVybmFsIENoYW5nZXMKICAgMy43IG9yIG5ld2VyLiAoYCMzNDk3IDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM0OTc+YF8pCiAKIAotUHl0ZXN0IDMu
NS4xICgyMDE4LTA0LTIzKQorcHl0ZXN0IDMuNS4xICgyMDE4LTA0LTIzKQogPT09PT09PT09PT09
PT09PT09PT09PT09PQogCiAKQEAgLTIzNiw3ICsyMjI1LDcgQEAgVHJpdmlhbC9JbnRlcm5hbCBD
aGFuZ2VzCiAgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzMz
OTg+YF8pCiAKIAotUHl0ZXN0IDMuNS4wICgyMDE4LTAzLTIxKQorcHl0ZXN0IDMuNS4wICgyMDE4
LTAzLTIxKQogPT09PT09PT09PT09PT09PT09PT09PT09PQogCiBEZXByZWNhdGlvbnMgYW5kIFJl
bW92YWxzCkBAIC0yNDcsNyArMjIzNiw3IEBAIERlcHJlY2F0aW9ucyBhbmQgUmVtb3ZhbHMKICAg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjc3MD5gXykKIAog
LSBEZWZpbmluZyBgYHB5dGVzdF9wbHVnaW5zYGAgaXMgbm93IGRlcHJlY2F0ZWQgaW4gbm9uLXRv
cC1sZXZlbCBjb25mdGVzdC5weQotICBmaWxlcywgYmVjYXVzZSB0aGV5ICJsZWFrIiB0byB0aGUg
ZW50aXJlIGRpcmVjdG9yeSB0cmVlLiAoYCMzMDg0CisgIGZpbGVzLCBiZWNhdXNlIHRoZXkgImxl
YWsiIHRvIHRoZSBlbnRpcmUgZGlyZWN0b3J5IHRyZWUuIGBTZWUgdGhlIGRvY3MgPGh0dHBzOi8v
ZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNweXRlc3QtcGx1Z2lu
cy1pbi1ub24tdG9wLWxldmVsLWNvbmZ0ZXN0LWZpbGVzPmBfIGZvciB0aGUgcmF0aW9uYWxlIGJl
aGluZCB0aGlzIGRlY2lzaW9uIChgIzMwODQKICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMzA4ND5gXykKIAogCkBAIC0yOTksNyArMjI4OCw3IEBAIEZlYXR1
cmVzCiAgIGBgcHl0ZXN0X3J1bnRlc3RfbG9nZmluaXNoYGAgaG9va3Mgd2hlbiBsaXZlIGxvZ3Mg
YXJlIGVuYWJsZWQuIChgIzMxODkKICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMzE4OT5gXykKIAotLSBQYXNzaW5nIGAtLWxvZy1jbGktbGV2ZWxgIGluIHRo
ZSBjb21tYW5kLWxpbmUgbm93IGF1dG9tYXRpY2FsbHkgYWN0aXZhdGVzCistIFBhc3NpbmcgYGAt
LWxvZy1jbGktbGV2ZWxgYCBpbiB0aGUgY29tbWFuZC1saW5lIG5vdyBhdXRvbWF0aWNhbGx5IGFj
dGl2YXRlcwogICBsaXZlIGxvZ2dpbmcuIChgIzMxOTAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzE5MD5gXykKIAogLSBBZGQgY29tbWFuZCBsaW5lIG9wdGlv
biBgYC0tZGVzZWxlY3RgYCB0byBhbGxvdyBkZXNlbGVjdGlvbiBvZiBpbmRpdmlkdWFsCkBAIC0z
ODgsNyArMjM3Nyw3IEBAIFRyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcwogICA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMzA4PmBfKQogCiAKLVB5dGVzdCAzLjQu
MiAoMjAxOC0wMy0wNCkKK3B5dGVzdCAzLjQuMiAoMjAxOC0wMy0wNCkKID09PT09PT09PT09PT09
PT09PT09PT09PT0KIAogQnVnIEZpeGVzCkBAIC00MjUsNyArMjQxNCw3IEBAIFRyaXZpYWwvSW50
ZXJuYWwgQ2hhbmdlcwogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8zMjU5PmBfKQogCiAKLVB5dGVzdCAzLjQuMSAoMjAxOC0wMi0yMCkKK3B5dGVzdCAzLjQu
MSAoMjAxOC0wMi0yMCkKID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogQnVnIEZpeGVzCkBA
IC00ODYsNyArMjQ3NSw3IEBAIFRyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcwogICA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy85ODU+YF8pCiAKIAotUHl0ZXN0IDMu
NC4wICgyMDE4LTAxLTMwKQorcHl0ZXN0IDMuNC4wICgyMDE4LTAxLTMwKQogPT09PT09PT09PT09
PT09PT09PT09PT09PQogCiBEZXByZWNhdGlvbnMgYW5kIFJlbW92YWxzCkBAIC02MTgsNyArMjYw
Nyw3IEBAIFRyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcwogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMTI5PmBfKQogCiAKLVB5dGVzdCAzLjMuMiAoMjAxNy0x
Mi0yNSkKK3B5dGVzdCAzLjMuMiAoMjAxNy0xMi0yNSkKID09PT09PT09PT09PT09PT09PT09PT09
PT0KIAogQnVnIEZpeGVzCkBAIC02NTEsMTEgKzI2NDAsMTEgQEAgVHJpdmlhbC9JbnRlcm5hbCBD
aGFuZ2VzCiAtIENvZGUgY2xlYW51cC4gKGAjMzAxNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMDE1PmBfLAogICBgIzMwMjEgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzAyMT5gXykKIAotLSBDbGVhbiB1cCBjb2RlIGJ5
IHJlcGxhY2luZyBpbXBvcnRzIGFuZCByZWZlcmVuY2VzIG9mIGBfYXN0YCB0byBgYXN0YC4gKGAj
MzAxOAotICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMDE4
PmBfKQorLSBDbGVhbiB1cCBjb2RlIGJ5IHJlcGxhY2luZyBpbXBvcnRzIGFuZCByZWZlcmVuY2Vz
IG9mIGBgX2FzdGBgIHRvIGBgYXN0YGAuCisgIChgIzMwMTggPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzAxOD5gXykKIAogCi1QeXRlc3QgMy4zLjEgKDIwMTct
MTItMDUpCitweXRlc3QgMy4zLjEgKDIwMTctMTItMDUpCiA9PT09PT09PT09PT09PT09PT09PT09
PT09CiAKIEJ1ZyBGaXhlcwpAQCAtNjk3LDEzICsyNjg2LDEzIEBAIFRyaXZpYWwvSW50ZXJuYWwg
Q2hhbmdlcwogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8y
OTQ5PmBfKQogCiAKLVB5dGVzdCAzLjMuMCAoMjAxNy0xMS0yMykKK3B5dGVzdCAzLjMuMCAoMjAx
Ny0xMS0yMykKID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogRGVwcmVjYXRpb25zIGFuZCBS
ZW1vdmFscwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0tIFB5dGVzdCBubyBsb25nZXIg
c3VwcG9ydHMgUHl0aG9uICoqMi42KiogYW5kICoqMy4zKiouIFRob3NlIFB5dGhvbiB2ZXJzaW9u
cworLSBweXRlc3Qgbm8gbG9uZ2VyIHN1cHBvcnRzIFB5dGhvbiAqKjIuNioqIGFuZCAqKjMuMyoq
LiBUaG9zZSBQeXRob24gdmVyc2lvbnMKICAgYXJlIEVPTCBmb3Igc29tZSB0aW1lIG5vdyBhbmQg
aW5jdXIgbWFpbnRlbmFuY2UgYW5kIGNvbXBhdGliaWxpdHkgY29zdHMgb24KICAgdGhlIHB5dGVz
dCBjb3JlIHRlYW0sIGFuZCBmb2xsb3dpbmcgdXAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29tbXVu
aXR5IHdlCiAgIGRlY2lkZWQgdGhhdCB0aGV5IHdpbGwgbm8gbG9uZ2VyIGJlIHN1cHBvcnRlZCBz
dGFydGluZyBvbiB0aGlzIHZlcnNpb24uIFVzZXJzCkBAIC03NTcsNyArMjc0Niw3IEBAIEZlYXR1
cmVzCiAtIE1hdGNoIGBgd2FybnNgYCBzaWduYXR1cmUgdG8gYGByYWlzZXNgYCBieSBhZGRpbmcg
YGBtYXRjaGBgIGtleXdvcmQuIChgIzI3MDgKICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMjcwOD5gXykKIAotLSBQeXRlc3Qgbm93IGNhcHR1cmVzIGFuZCBk
aXNwbGF5cyBvdXRwdXQgZnJvbSB0aGUgc3RhbmRhcmQgYGBsb2dnaW5nYGAgbW9kdWxlLgorLSBw
eXRlc3Qgbm93IGNhcHR1cmVzIGFuZCBkaXNwbGF5cyBvdXRwdXQgZnJvbSB0aGUgc3RhbmRhcmQg
YGBsb2dnaW5nYGAgbW9kdWxlLgogICBUaGUgdXNlciBjYW4gY29udHJvbCB0aGUgbG9nZ2luZyBs
ZXZlbCB0byBiZSBjYXB0dXJlZCBieSBzcGVjaWZ5aW5nIG9wdGlvbnMKICAgaW4gYGBweXRlc3Qu
aW5pYGAsIHRoZSBjb21tYW5kIGxpbmUgYW5kIGFsc28gZHVyaW5nIGluZGl2aWR1YWwgdGVzdHMg
dXNpbmcKICAgbWFya2Vycy4gQWxzbywgYSBgYGNhcGxvZ2BgIGZpeHR1cmUgaXMgYXZhaWxhYmxl
IHRoYXQgZW5hYmxlcyB1c2VycyB0byB0ZXN0CkBAIC04MjIsNyArMjgxMSw3IEBAIEJ1ZyBGaXhl
cwogICBhdm9pZHMgYSBudW1iZXIgb2YgcG90ZW50aWFsIHByb2JsZW1zLiAoYCMyNzUxCiAgIDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI3NTE+YF8pCiAKLS0g
UHl0ZXN0IG5vIGxvbmdlciBjb21wbGFpbnMgYWJvdXQgd2FybmluZ3Mgd2l0aCB1bmljb2RlIG1l
c3NhZ2VzIGJlaW5nCistIHB5dGVzdCBubyBsb25nZXIgY29tcGxhaW5zIGFib3V0IHdhcm5pbmdz
IHdpdGggdW5pY29kZSBtZXNzYWdlcyBiZWluZwogICBub24tYXNjaWkgY29tcGF0aWJsZSBldmVu
IGZvciBhc2NpaS1jb21wYXRpYmxlIG1lc3NhZ2VzLiBBcyBhIHJlc3VsdCBvZiB0aGlzLAogICB3
YXJuaW5ncyB3aXRoIHVuaWNvZGUgbWVzc2FnZXMgYXJlIGNvbnZlcnRlZCBmaXJzdCB0byBhbiBh
c2NpaSByZXByZXNlbnRhdGlvbgogICBmb3Igc2FmZXR5LiAoYCMyODA5IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI4MDk+YF8pCkBAIC04NDIsNyArMjgzMSw3
IEBAIEJ1ZyBGaXhlcwogVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAotLSBweXRlc3Qgbm93IGRlcGVuZHMgb24gYGF0dHJzIDxodHRwczovL3B5cGku
b3JnL3Byb2plY3QvYXR0cnMvPmBfIGZvciBpbnRlcm5hbAorLSBweXRlc3Qgbm93IGRlcGVuZHMg
b24gYGF0dHJzIDxodHRwczovL3B5cGkub3JnL3Byb2plY3QvYXR0cnMvPmBfXyBmb3IgaW50ZXJu
YWwKICAgc3RydWN0dXJlcyB0byBlYXNlIGNvZGUgbWFpbnRhaW5hYmlsaXR5LiAoYCMyNjQxCiAg
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2NDE+YF8pCiAK
QEAgLTg3NCw3ICsyODYzLDcgQEAgVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCiAgIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI5MjI+YF8pCiAKIAotUHl0ZXN0
IDMuMi41ICgyMDE3LTExLTE1KQorcHl0ZXN0IDMuMi41ICgyMDE3LTExLTE1KQogPT09PT09PT09
PT09PT09PT09PT09PT09PQogCiBCdWcgRml4ZXMKQEAgLTg4NSw3ICsyODc0LDcgQEAgQnVnIEZp
eGVzCiAgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI5MjY+
YF8pCiAKIAotUHl0ZXN0IDMuMi40ICgyMDE3LTExLTEzKQorcHl0ZXN0IDMuMi40ICgyMDE3LTEx
LTEzKQogPT09PT09PT09PT09PT09PT09PT09PT09PQogCiBCdWcgRml4ZXMKQEAgLTkzNCw3ICsy
OTIzLDcgQEAgSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy85MTE+YF8pCiAKIAotUHl0ZXN0IDMuMi4zICgyMDE3LTEw
LTAzKQorcHl0ZXN0IDMuMi4zICgyMDE3LTEwLTAzKQogPT09PT09PT09PT09PT09PT09PT09PT09
PQogCiBCdWcgRml4ZXMKQEAgLTk3NCwxMyArMjk2MywxMyBAQCBUcml2aWFsL0ludGVybmFsIENo
YW5nZXMKICAgKGAjMjc2NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8yNzY1PmBfKQogCiAKLVB5dGVzdCAzLjIuMiAoMjAxNy0wOS0wNikKK3B5dGVzdCAzLjIu
MiAoMjAxNy0wOS0wNikKID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogQnVnIEZpeGVzCiAt
LS0tLS0tLS0KIAotLSBDYWxsaW5nIHRoZSBkZXByZWNhdGVkIGByZXF1ZXN0LmdldGZ1bmNhcmd2
YWx1ZSgpYCBub3cgc2hvd3MgdGhlIHNvdXJjZSBvZgorLSBDYWxsaW5nIHRoZSBkZXByZWNhdGVk
IGBgcmVxdWVzdC5nZXRmdW5jYXJndmFsdWUoKWBgIG5vdyBzaG93cyB0aGUgc291cmNlIG9mCiAg
IHRoZSBjYWxsLiAoYCMyNjgxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzI2ODE+YF8pCiAKIC0gQWxsb3cgdGVzdHMgZGVjbGFyZWQgYXMgYGBAc3RhdGljbWV0
aG9kYGAgdG8gdXNlIGZpeHR1cmVzLiAoYCMyNjk5CkBAIC0xMDAyLDEwICsyOTkxLDEwIEBAIElt
cHJvdmVkIERvY3VtZW50YXRpb24KICAgYGBweXRlc3QubWFyay5NQVJLRVJfTkFNRS5fX2NhbGxf
X2BgIChgIzI2MDQKICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMjYwND5gXykKIAotLSBJbiBvbmUgb2YgdGhlIHNpbXBsZSBleGFtcGxlcywgdXNlIGBweXRl
c3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcygpYCB0byBza2lwCistIEluIG9uZSBvZiB0aGUgc2lt
cGxlIGV4YW1wbGVzLCB1c2UgYGBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcygpYGAgdG8g
c2tpcAogICB0ZXN0cyBiYXNlZCBvbiBhIGNvbW1hbmQtbGluZSBvcHRpb24sIGFsbG93aW5nIGl0
cyBzaGFyaW5nIHdoaWxlIHByZXZlbnRpbmcgYQotICB1c2VyIGVycm9yIHdoZW4gYWNlc3Npbmcg
YHB5dGVzdC5jb25maWdgIGJlZm9yZSB0aGUgYXJndW1lbnQgcGFyc2luZy4gKGAjMjY1MwotICA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjUzPmBfKQorICB1
c2VyIGVycm9yIHdoZW4gYWNlc3NpbmcgYGBweXRlc3QuY29uZmlnYGAgYmVmb3JlIHRoZSBhcmd1
bWVudCBwYXJzaW5nLgorICAoYCMyNjUzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzI2NTM+YF8pCiAKIAogVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCkBAIC0x
MDIxLDcgKzMwMTAsNyBAQCBUcml2aWFsL0ludGVybmFsIENoYW5nZXMKICAgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjczOT5gXykKIAogCi1QeXRlc3QgMy4y
LjEgKDIwMTctMDgtMDgpCitweXRlc3QgMy4yLjEgKDIwMTctMDgtMDgpCiA9PT09PT09PT09PT09
PT09PT09PT09PT09CiAKIEJ1ZyBGaXhlcwpAQCAtMTA1MSw3ICszMDQwLDcgQEAgSW1wcm92ZWQg
RG9jdW1lbnRhdGlvbgogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8yNjI2PmBfKQogCiAKLVB5dGVzdCAzLjIuMCAoMjAxNy0wNy0zMCkKK3B5dGVzdCAzLjIu
MCAoMjAxNy0wNy0zMCkKID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogRGVwcmVjYXRpb25z
IGFuZCBSZW1vdmFscwpAQCAtMTA4Myw3ICszMDcyLDcgQEAgRmVhdHVyZXMKICAgZnJvbSBwYXJl
bnQgY2xhc3NlcyBvciBtb2R1bGVzLiAoYCMyNTE2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LQogICBkZXYvcHl0ZXN0L2lzc3Vlcy8yNTE2PmBfKQogCi0tIENvbGxlY3Rpb24gaWdub3JlcyBs
b2NhbCB2aXJ0dWFsZW52cyBieSBkZWZhdWx0OyBgLS1jb2xsZWN0LWluLXZpcnR1YWxlbnZgCist
IENvbGxlY3Rpb24gaWdub3JlcyBsb2NhbCB2aXJ0dWFsZW52cyBieSBkZWZhdWx0OyBgYC0tY29s
bGVjdC1pbi12aXJ0dWFsZW52YGAKICAgb3ZlcnJpZGVzIHRoaXMgYmVoYXZpb3IuIChgIzI1MTgg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtCiAgIGRldi9weXRlc3QvaXNzdWVzLzI1MTg+YF8p
CiAKQEAgLTEyMTcsNyArMzIwNiw3IEBAIFRyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcwogICA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjIwPmBfKQogCiAKLVB5
dGVzdCAzLjEuMyAoMjAxNy0wNy0wMykKK3B5dGVzdCAzLjEuMyAoMjAxNy0wNy0wMykKID09PT09
PT09PT09PT09PT09PT09PT09PT0KIAogQnVnIEZpeGVzCkBAIC0xMjYzLDcgKzMyNTIsNyBAQCBU
cml2aWFsL0ludGVybmFsIENoYW5nZXMKICAgKGAjMjQ5OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNDk5PmBfKQogCiAKLVB5dGVzdCAzLjEuMiAoMjAxNy0w
Ni0wOCkKK3B5dGVzdCAzLjEuMiAoMjAxNy0wNi0wOCkKID09PT09PT09PT09PT09PT09PT09PT09
PT0KIAogQnVnIEZpeGVzCkBAIC0xMjk1LDcgKzMyODQsNyBAQCBJbXByb3ZlZCBEb2N1bWVudGF0
aW9uCiAgIGFuZCBpbXByb3ZlIG92ZXJhbGwgZmxvdyBvZiB0aGUgYGBza2lwcGluZ2BgIGRvY3Mu
ICgjODEwKQogCiAKLVB5dGVzdCAzLjEuMSAoMjAxNy0wNS0zMCkKK3B5dGVzdCAzLjEuMSAoMjAx
Ny0wNS0zMCkKID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogQnVnIEZpeGVzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9DSVRBVElPTiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NJVEFUSU9OCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ0ZTlkOGVjN2ExMzc1MzQ5MjU4ZjljZjUzNTA4YmIwZTQ0MWUyNWIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9DSVRBVElPTgpAQCAtMCwwICsxLDE2IEBACitOT1RFOiBDaGFu
Z2UgIngueSIgYnkgdGhlIHZlcnNpb24geW91IHVzZS4gSWYgeW91IGFyZSB1bnN1cmUgYWJvdXQg
d2hpY2ggdmVyc2lvbgoreW91IGFyZSB1c2luZyBydW46IGBwaXAgc2hvdyBweXRlc3RgLgorCitU
ZXh0OgorCitbcHl0ZXN0XSBweXRlc3QgeC55LCAyMDA0CitLcmVrZWwgZXQgYWwuLCBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QKKworQmliVGVYOgorCitAbWlzY3tweXRlc3R4
LnksCisgIHRpdGxlID0gICAgICAgIHtweXRlc3QgeC55fSwKKyAgYXV0aG9yID0ge0tyZWtlbCwg
SG9sZ2VyIGFuZCBPbGl2ZWlyYSwgQnJ1bm8gYW5kIFBmYW5uc2NobWlkdCwgUm9ubnkgYW5kIEJy
dXlub29naGUsIEZsb3JpcyBhbmQgTGF1Z2hlciwgQnJpYW5uYSBhbmQgQnJ1aGluLCBGbG9yaWFu
fSwKKyAgeWVhciA9ICAgICAgICAgezIwMDR9LAorICB1cmwgPSB7aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0fSwKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NPTlRSSUJV
VElORy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DT05UUklCVVRJTkcucnN0CmluZGV4IGMwMDVjMmZiMjU0
NTA1MmRmMjlhMWYwOTZkYzMwYTU3ZDI3NjkzM2IuLjU3NjI4YTM0YmRmNzBkNDVhNzAwNmRjNjdi
NWI4Y2M3ZWY2Y2UzZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NPTlRSSUJVVElORy5yc3QK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvQ09OVFJJQlVUSU5HLnJzdApAQCAtMTY2LDEwICsxNjYsMTAgQEAg
U2hvcnQgdmVyc2lvbgogIy4gRW5hYmxlIGFuZCBpbnN0YWxsIGBwcmUtY29tbWl0IDxodHRwczov
L3ByZS1jb21taXQuY29tPmBfIHRvIGVuc3VyZSBzdHlsZS1ndWlkZXMgYW5kIGNvZGUgY2hlY2tz
IGFyZSBmb2xsb3dlZC4KICMuIFRhcmdldCBgYG1hc3RlcmBgIGZvciBidWdmaXhlcyBhbmQgZG9j
IGNoYW5nZXMuCiAjLiBUYXJnZXQgYGBmZWF0dXJlc2BgIGZvciBuZXcgZmVhdHVyZXMgb3IgZnVu
Y3Rpb25hbGl0eSBjaGFuZ2VzLgotIy4gRm9sbG93ICoqUEVQLTgqKiBmb3IgbmFtaW5nIGFuZCBg
YmxhY2sgPGh0dHBzOi8vZ2l0aHViLmNvbS9hbWJ2L2JsYWNrPmBfIGZvciBmb3JtYXR0aW5nLgor
Iy4gRm9sbG93ICoqUEVQLTgqKiBmb3IgbmFtaW5nIGFuZCBgYmxhY2sgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRob24vYmxhY2s+YF8gZm9yIGZvcm1hdHRpbmcuCiAjLiBUZXN0cyBhcmUgcnVuIHVz
aW5nIGBgdG94YGA6OgogCi0gICAgdG94IC1lIGxpbnRpbmcscHkyNyxweTM2CisgICAgdG94IC1l
IGxpbnRpbmcscHkyNyxweTM3CiAKICAgIFRoZSB0ZXN0IGVudmlyb25tZW50cyBhYm92ZSBhcmUg
dXN1YWxseSBlbm91Z2ggdG8gY292ZXIgbW9zdCBjYXNlcyBsb2NhbGx5LgogCkBAIC0yMzcsMTIg
KzIzNywxMiBAQCBIZXJlIGlzIGEgc2ltcGxlIG92ZXJ2aWV3LCB3aXRoIHB5dGVzdC1zcGVjaWZp
YyBiaXRzOgogCiAjLiBSdW4gYWxsIHRoZSB0ZXN0cwogCi0gICBZb3UgbmVlZCB0byBoYXZlIFB5
dGhvbiAyLjcgYW5kIDMuNiBhdmFpbGFibGUgaW4geW91ciBzeXN0ZW0uICBOb3cKKyAgIFlvdSBu
ZWVkIHRvIGhhdmUgUHl0aG9uIDIuNyBhbmQgMy43IGF2YWlsYWJsZSBpbiB5b3VyIHN5c3RlbS4g
IE5vdwogICAgcnVubmluZyB0ZXN0cyBpcyBhcyBzaW1wbGUgYXMgaXNzdWluZyB0aGlzIGNvbW1h
bmQ6OgogCi0gICAgJCB0b3ggLWUgbGludGluZyxweTI3LHB5MzYKKyAgICAkIHRveCAtZSBsaW50
aW5nLHB5MjcscHkzNwogCi0gICBUaGlzIGNvbW1hbmQgd2lsbCBydW4gdGVzdHMgdmlhIHRoZSAi
dG94IiB0b29sIGFnYWluc3QgUHl0aG9uIDIuNyBhbmQgMy42CisgICBUaGlzIGNvbW1hbmQgd2ls
bCBydW4gdGVzdHMgdmlhIHRoZSAidG94IiB0b29sIGFnYWluc3QgUHl0aG9uIDIuNyBhbmQgMy43
CiAgICBhbmQgYWxzbyBwZXJmb3JtICJsaW50IiBjb2Rpbmctc3R5bGUgY2hlY2tzLgogCiAjLiBZ
b3UgY2FuIG5vdyBlZGl0IHlvdXIgbG9jYWwgd29ya2luZyBjb3B5IGFuZCBydW4gdGhlIHRlc3Rz
IGFnYWluIGFzIG5lY2Vzc2FyeS4gUGxlYXNlIGZvbGxvdyBQRVAtOCBmb3IgbmFtaW5nLgpAQCAt
MjUyLDkgKzI1Miw5IEBAIEhlcmUgaXMgYSBzaW1wbGUgb3ZlcnZpZXcsIHdpdGggcHl0ZXN0LXNw
ZWNpZmljIGJpdHM6CiAKICAgICAkIHRveCAtZSBweTI3IC0tIC0tcGRiCiAKLSAgIE9yIHRvIG9u
bHkgcnVuIHRlc3RzIGluIGEgcGFydGljdWxhciB0ZXN0IG1vZHVsZSBvbiBQeXRob24gMy42OjoK
KyAgIE9yIHRvIG9ubHkgcnVuIHRlc3RzIGluIGEgcGFydGljdWxhciB0ZXN0IG1vZHVsZSBvbiBQ
eXRob24gMy43OjoKIAotICAgICQgdG94IC1lIHB5MzYgLS0gdGVzdGluZy90ZXN0X2NvbmZpZy5w
eQorICAgICQgdG94IC1lIHB5MzcgLS0gdGVzdGluZy90ZXN0X2NvbmZpZy5weQogCiAKICAgIFdo
ZW4gY29tbWl0dGluZywgYGBwcmUtY29tbWl0YGAgd2lsbCByZS1mb3JtYXQgdGhlIGZpbGVzIGlm
IG5lY2Vzc2FyeS4KQEAgLTI4MCw2ICsyODAsNDcgQEAgSGVyZSBpcyBhIHNpbXBsZSBvdmVydmll
dywgd2l0aCBweXRlc3Qtc3BlY2lmaWMgYml0czoKICAgICBiYXNlOiBmZWF0dXJlcyAgICAgICAg
IyBpZiBpdCdzIGEgZmVhdHVyZQogCiAKK1dyaXRpbmcgVGVzdHMKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworV3JpdGluZyB0ZXN0cyBmb3IgcGx1Z2lucyBvciBmb3IgcHl0ZXN0IGl0
c2VsZiBpcyBvZnRlbiBkb25lIHVzaW5nIHRoZSBgdGVzdGRpciBmaXh0dXJlIDxodHRwczovL2Rv
Y3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvcmVmZXJlbmNlLmh0bWwjdGVzdGRpcj5gXywgYXMgYSAi
YmxhY2stYm94IiB0ZXN0LgorCitGb3IgZXhhbXBsZSwgdG8gZW5zdXJlIGEgc2ltcGxlIHRlc3Qg
cGFzc2VzIHlvdSBjYW4gd3JpdGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGRl
ZiB0ZXN0X3RydWVfYXNzZXJ0aW9uKHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCBUcnVlCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21l
cyhmYWlsZWQ9MCwgcGFzc2VkPTEpCisKKworQWx0ZXJuYXRpdmVseSwgaXQgaXMgcG9zc2libGUg
dG8gbWFrZSBjaGVja3MgYmFzZWQgb24gdGhlIGFjdHVhbCBvdXRwdXQgb2YgdGhlIHRlcm1hbCB1
c2luZworKmdsb2ItbGlrZSogZXhwcmVzc2lvbnM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24K
KworICAgIGRlZiB0ZXN0X3RydWVfYXNzZXJ0aW9uKHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Zvbygp
OgorICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIiphc3NlcnQgRmFsc2UqIiwgIioxIGZhaWxlZCoiXSkKKworV2hl
biBjaG9vc2luZyBhIGZpbGUgd2hlcmUgdG8gd3JpdGUgYSBuZXcgdGVzdCwgdGFrZSBhIGxvb2sg
YXQgdGhlIGV4aXN0aW5nIGZpbGVzIGFuZCBzZWUgaWYgdGhlcmUncworb25lIGZpbGUgd2hpY2gg
bG9va3MgbGlrZSBhIGdvb2QgZml0LiBGb3IgZXhhbXBsZSwgYSByZWdyZXNzaW9uIHRlc3QgYWJv
dXQgYSBidWcgaW4gdGhlIGBgLS1sZmBgIG9wdGlvbgorc2hvdWxkIGdvIGludG8gYGB0ZXN0X2Nh
Y2hlcHJvdmlkZXIucHlgYCwgZ2l2ZW4gdGhhdCB0aGlzIG9wdGlvbiBpcyBpbXBsZW1lbnRlZCBp
biBgYGNhY2hlcHJvdmlkZXIucHlgYC4KK0lmIGluIGRvdWJ0LCBnbyBhaGVhZCBhbmQgb3BlbiBh
IFBSIHdpdGggeW91ciBiZXN0IGd1ZXNzIGFuZCB3ZSBjYW4gZGlzY3VzcyB0aGlzIG92ZXIgdGhl
IGNvZGUuCisKKwogSm9pbmluZyB0aGUgRGV2ZWxvcG1lbnQgVGVhbQogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9IT1dUT1JFTEVBU0UucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvSE9XVE9SRUxFQVNFLnJzdAppbmRleCA5N2JkZGY3MjAyYjFmYTBmYTkz
MWExYjU3MDkwMmVkOWNkZDk0NTk4Li5iMzdhMjQ1YzBiZTM3YmQ3NWY1ZjZkMjk5Yzg3NzIwN2Ni
YTcyYmEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9IT1dUT1JFTEVBU0UucnN0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L0hPV1RPUkVMRUFTRS5yc3QKQEAgLTEwLDEwICsxMCw2IEBAIHRha2luZyBhIGxv
dCBvZiB0aW1lIHRvIG1ha2UgYSBuZXcgb25lLgogICAgIHB5dGVzdCByZWxlYXNlcyBtdXN0IGJl
IHByZXBhcmVkIG9uICoqTGludXgqKiBiZWNhdXNlIHRoZSBkb2NzIGFuZCBleGFtcGxlcyBleHBl
Y3QKICAgICB0byBiZSBleGVjdXRlZCBpbiB0aGF0IHBsYXRmb3JtLgogCi0jLiBJbnN0YWxsIGRl
dmVsb3BtZW50IGRlcGVuZGVuY2llcyBpbiBhIHZpcnR1YWwgZW52aXJvbm1lbnQgd2l0aDo6Ci0K
LSAgICBwaXAzIGluc3RhbGwgLVUgLXIgdGFza3MvcmVxdWlyZW1lbnRzLnR4dAotCiAjLiBDcmVh
dGUgYSBicmFuY2ggYGByZWxlYXNlLVguWS5aYGAgd2l0aCB0aGUgdmVyc2lvbiBmb3IgdGhlIHJl
bGVhc2UuCiAKICAgICogKipwYXRjaCByZWxlYXNlcyoqOiBmcm9tIHRoZSBsYXRlc3QgYGBtYXN0
ZXJgYDsKQEAgLTIyLDE4ICsxOCwyMyBAQCB0YWtpbmcgYSBsb3Qgb2YgdGltZSB0byBtYWtlIGEg
bmV3IG9uZS4KIAogICAgRW5zdXJlIHlvdXIgYXJlIGluIGEgY2xlYW4gd29yayB0cmVlLgogCi0j
LiBHZW5lcmF0ZSBkb2NzLCBjaGFuZ2Vsb2csIGFubm91bmNlbWVudHMgYW5kIGEgKipsb2NhbCoq
IHRhZzo6CisjLiBVc2luZyBgYHRveGBgLCBnZW5lcmF0ZSBkb2NzLCBjaGFuZ2Vsb2csIGFubm91
bmNlbWVudHM6OgorCisgICAgJCB0b3ggLWUgcmVsZWFzZSAtLSA8VkVSU0lPTj4KIAotICAgICBp
bnZva2UgZ2VuZXJhdGUucHJlLXJlbGVhc2UgPFZFUlNJT04+CisgICBUaGlzIHdpbGwgZ2VuZXJh
dGUgYSBjb21taXQgd2l0aCBhbGwgdGhlIGNoYW5nZXMgcmVhZHkgZm9yIHB1c2hpbmcuCiAKICMu
IE9wZW4gYSBQUiBmb3IgdGhpcyBicmFuY2ggdGFyZ2V0aW5nIGBgbWFzdGVyYGAuCiAKICMuIEFm
dGVyIGFsbCB0ZXN0cyBwYXNzIGFuZCB0aGUgUFIgaGFzIGJlZW4gYXBwcm92ZWQsIHB1Ymxpc2gg
dG8gUHlQSSBieSBwdXNoaW5nIHRoZSB0YWc6OgogCisgICAgIGdpdCB0YWcgPFZFUlNJT04+CiAg
ICAgIGdpdCBwdXNoIGdpdEBnaXRodWIuY29tOnB5dGVzdC1kZXYvcHl0ZXN0LmdpdCA8VkVSU0lP
Tj4KIAogICAgV2FpdCBmb3IgdGhlIGRlcGxveSB0byBjb21wbGV0ZSwgdGhlbiBtYWtlIHN1cmUg
aXQgaXMgYGF2YWlsYWJsZSBvbiBQeVBJIDxodHRwczovL3B5cGkub3JnL3Byb2plY3QvcHl0ZXN0
PmBfLgogCisjLiBNZXJnZSB0aGUgUFIgaW50byBgYG1hc3RlcmBgLgorCiAjLiBTZW5kIGFuIGVt
YWlsIGFubm91bmNlbWVudCB3aXRoIHRoZSBjb250ZW50cyBmcm9tOjoKIAogICAgICBkb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS08VkVSU0lPTj4ucnN0CkBAIC00NSw1ICs0NiwzIEBAIHRha2luZyBh
IGxvdCBvZiB0aW1lIHRvIG1ha2UgYSBuZXcgb25lLgogICAgKiB0ZXN0aW5nLWluLXB5dGhvbkBs
aXN0cy5pZHlsbC5vcmcgKG9ubHkgbWFqb3IvbWlub3IgcmVsZWFzZXMpCiAKICAgIEFuZCBhbm5v
dW5jZSBpdCBvbiBgVHdpdHRlciA8aHR0cHM6Ly90d2l0dGVyLmNvbS8+YF8gd2l0aCB0aGUgYGAj
cHl0ZXN0YGAgaGFzaHRhZy4KLQotIy4gQWZ0ZXIgYSBtaW5vci9tYWpvciByZWxlYXNlLCBtZXJn
ZSBgYHJlbGVhc2UtWC5ZLlpgYCBpbnRvIGBgbWFzdGVyYGAgYW5kIHB1c2ggKG9yIG9wZW4gYSBQ
UikuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9MSUNFTlNFIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvTElDRU5T
RQppbmRleCA2MjlkZjQ1YWM0MDU1MzJjMTA3ZWIyMzMyMTdiYzJhYzFhZDcwYzg4Li5kMTRmYjdm
ZjRiMzRiZThjZmIzNjFhM2NlOTBhMGU4ODE0NzVhOTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9MSUNFTlNFCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0xJQ0VOU0UKQEAgLTEsNiArMSw2IEBACiBUaGUg
TUlUIExpY2Vuc2UgKE1JVCkKIAotQ29weXJpZ2h0IChjKSAyMDA0LTIwMTcgSG9sZ2VyIEtyZWtl
bCBhbmQgb3RoZXJzCitDb3B5cmlnaHQgKGMpIDIwMDQtMjAyMCBIb2xnZXIgS3Jla2VsIGFuZCBv
dGhlcnMKIAogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv
IGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgogdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np
YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9SRUFETUUucnN0
CmluZGV4IDU2NGZmZmY2YzkxZWZjYWNlNzM2YWMyNTIxZTQ1NmI1MjMzZjc2ZTguLjY5NDA4OTc4
NzAzMmRiZDZiNjYyNWMxMmQ3MDhmMzQwODlhZjBlOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L1JFQURNRS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvUkVBRE1FLnJzdApAQCAtMSw4ICsxLDkgQEAK
LS4uIGltYWdlOjogaHR0cDovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvX3N0YXRpYy9weXRl
c3QxLnBuZwotICAgOnRhcmdldDogaHR0cDovL2RvY3MucHl0ZXN0Lm9yZworLi4gaW1hZ2U6OiBo
dHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvX3N0YXRpYy9weXRlc3QxLnBuZworICAg
OnRhcmdldDogaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0LwogICAgOmFsaWduOiBj
ZW50ZXIKICAgIDphbHQ6IHB5dGVzdAogCisKIC0tLS0tLQogCiAuLiBpbWFnZTo6IGh0dHBzOi8v
aW1nLnNoaWVsZHMuaW8vcHlwaS92L3B5dGVzdC5zdmcKQEAgLTE0LDE3ICsxNSwxOCBAQAogLi4g
aW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9weXRlc3Quc3Zn
CiAgICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGVzdC8KIAotLi4gaW1h
Z2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2NvdmVyYWxscy9weXRlc3QtZGV2L3B5dGVzdC9t
YXN0ZXIuc3ZnCi0gICAgOnRhcmdldDogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vci9weXRlc3QtZGV2
L3B5dGVzdAorLi4gaW1hZ2U6OiBodHRwczovL2NvZGVjb3YuaW8vZ2gvcHl0ZXN0LWRldi9weXRl
c3QvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5zdmcKKyAgICA6dGFyZ2V0OiBodHRwczovL2Nv
ZGVjb3YuaW8vZ2gvcHl0ZXN0LWRldi9weXRlc3QKKyAgICA6YWx0OiBDb2RlIGNvdmVyYWdlIFN0
YXR1cwogCiAuLiBpbWFnZTo6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9weXRlc3QtZGV2L3B5dGVz
dC5zdmc/YnJhbmNoPW1hc3RlcgogICAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9w
eXRlc3QtZGV2L3B5dGVzdAogCi0uLiBpbWFnZTo6IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2Fw
aS9wcm9qZWN0cy9zdGF0dXMvbXJnYmphdWE3dDMzcGc2Yj9zdmc9dHJ1ZQotICAgIDp0YXJnZXQ6
IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvcHl0ZXN0Ym90L3B5dGVzdAorLi4gaW1h
Z2U6OiBodHRwczovL2Rldi5henVyZS5jb20vcHl0ZXN0LWRldi9weXRlc3QvX2FwaXMvYnVpbGQv
c3RhdHVzL3B5dGVzdC1DST9icmFuY2hOYW1lPW1hc3RlcgorICAgIDp0YXJnZXQ6IGh0dHBzOi8v
ZGV2LmF6dXJlLmNvbS9weXRlc3QtZGV2L3B5dGVzdAogCiAuLiBpbWFnZTo6IGh0dHBzOi8vaW1n
LnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWJsYWNrLTAwMDAwMC5zdmcKLSAgOnRhcmdl
dDogaHR0cHM6Ly9naXRodWIuY29tL2FtYnYvYmxhY2sKKyAgICA6dGFyZ2V0OiBodHRwczovL2dp
dGh1Yi5jb20vcHl0aG9uL2JsYWNrCiAKIC4uIGltYWdlOjogaHR0cHM6Ly93d3cuY29kZXRyaWFn
ZS5jb20vcHl0ZXN0LWRldi9weXRlc3QvYmFkZ2VzL3VzZXJzLnN2ZwogICAgIDp0YXJnZXQ6IGh0
dHBzOi8vd3d3LmNvZGV0cmlhZ2UuY29tL3B5dGVzdC1kZXYvcHl0ZXN0CkBAIC02NSwyMyArNjcs
MjMgQEAgVG8gZXhlY3V0ZSBpdDo6CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT0gMSBm
YWlsZWQgaW4gMC4wNCBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAKLUR1
ZSB0byBgYHB5dGVzdGBgJ3MgZGV0YWlsZWQgYXNzZXJ0aW9uIGludHJvc3BlY3Rpb24sIG9ubHkg
cGxhaW4gYGBhc3NlcnRgYCBzdGF0ZW1lbnRzIGFyZSB1c2VkLiBTZWUgYGdldHRpbmctc3RhcnRl
ZCA8aHR0cDovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZ2V0dGluZy1zdGFydGVkLmh0bWwj
b3VyLWZpcnN0LXRlc3QtcnVuPmBfIGZvciBtb3JlIGV4YW1wbGVzLgorRHVlIHRvIGBgcHl0ZXN0
YGAncyBkZXRhaWxlZCBhc3NlcnRpb24gaW50cm9zcGVjdGlvbiwgb25seSBwbGFpbiBgYGFzc2Vy
dGBgIHN0YXRlbWVudHMgYXJlIHVzZWQuIFNlZSBgZ2V0dGluZy1zdGFydGVkIDxodHRwczovL2Rv
Y3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZ2V0dGluZy1zdGFydGVkLmh0bWwjb3VyLWZpcnN0LXRl
c3QtcnVuPmBfIGZvciBtb3JlIGV4YW1wbGVzLgogCiAKIEZlYXR1cmVzCiAtLS0tLS0tLQogCi0t
IERldGFpbGVkIGluZm8gb24gZmFpbGluZyBgYXNzZXJ0IHN0YXRlbWVudHMgPGh0dHA6Ly9kb2Nz
LnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2Fzc2VydC5odG1sPmBfIChubyBuZWVkIHRvIHJlbWVtYmVy
IGBgc2VsZi5hc3NlcnQqYGAgbmFtZXMpOworLSBEZXRhaWxlZCBpbmZvIG9uIGZhaWxpbmcgYGFz
c2VydCBzdGF0ZW1lbnRzIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvYXNzZXJ0
Lmh0bWw+YF8gKG5vIG5lZWQgdG8gcmVtZW1iZXIgYGBzZWxmLmFzc2VydCpgYCBuYW1lcyk7CiAK
IC0gYEF1dG8tZGlzY292ZXJ5Ci0gIDxodHRwOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9n
b29kcHJhY3RpY2VzLmh0bWwjcHl0aG9uLXRlc3QtZGlzY292ZXJ5PmBfCisgIDxodHRwczovL2Rv
Y3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZ29vZHByYWN0aWNlcy5odG1sI3B5dGhvbi10ZXN0LWRp
c2NvdmVyeT5gXwogICBvZiB0ZXN0IG1vZHVsZXMgYW5kIGZ1bmN0aW9uczsKIAotLSBgTW9kdWxh
ciBmaXh0dXJlcyA8aHR0cDovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZml4dHVyZS5odG1s
PmBfIGZvcgorLSBgTW9kdWxhciBmaXh0dXJlcyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L2ZpeHR1cmUuaHRtbD5gXyBmb3IKICAgbWFuYWdpbmcgc21hbGwgb3IgcGFyYW1ldHJp
emVkIGxvbmctbGl2ZWQgdGVzdCByZXNvdXJjZXM7CiAKLS0gQ2FuIHJ1biBgdW5pdHRlc3QgPGh0
dHA6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3VuaXR0ZXN0Lmh0bWw+YF8gKG9yIHRyaWFs
KSwKLSAgYG5vc2UgPGh0dHA6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L25vc2UuaHRtbD5g
XyB0ZXN0IHN1aXRlcyBvdXQgb2YgdGhlIGJveDsKKy0gQ2FuIHJ1biBgdW5pdHRlc3QgPGh0dHBz
Oi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC91bml0dGVzdC5odG1sPmBfIChvciB0cmlhbCks
CisgIGBub3NlIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvbm9zZS5odG1sPmBf
IHRlc3Qgc3VpdGVzIG91dCBvZiB0aGUgYm94OwogCiAtIFB5dGhvbiAyLjcsIFB5dGhvbiAzLjQr
LCBQeVB5IDIuMywgSnl0aG9uIDIuNSAodW50ZXN0ZWQpOwogCkBAIC05MSw3ICs5Myw3IEBAIEZl
YXR1cmVzCiBEb2N1bWVudGF0aW9uCiAtLS0tLS0tLS0tLS0tCiAKLUZvciBmdWxsIGRvY3VtZW50
YXRpb24sIGluY2x1ZGluZyBpbnN0YWxsYXRpb24sIHR1dG9yaWFscyBhbmQgUERGIGRvY3VtZW50
cywgcGxlYXNlIHNlZSBodHRwOi8vZG9jcy5weXRlc3Qub3JnLgorRm9yIGZ1bGwgZG9jdW1lbnRh
dGlvbiwgaW5jbHVkaW5nIGluc3RhbGxhdGlvbiwgdHV0b3JpYWxzIGFuZCBQREYgZG9jdW1lbnRz
LCBwbGVhc2Ugc2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC8uCiAKIAogQnVn
cy9SZXF1ZXN0cwpAQCAtMTAzLDEzICsxMDUsMzMgQEAgUGxlYXNlIHVzZSB0aGUgYEdpdEh1YiBp
c3N1ZSB0cmFja2VyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWUK
IENoYW5nZWxvZwogLS0tLS0tLS0tCiAKLUNvbnN1bHQgdGhlIGBDaGFuZ2Vsb2cgPGh0dHA6Ly9k
b2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sPmBfXyBwYWdlIGZvciBmaXhl
cyBhbmQgZW5oYW5jZW1lbnRzIG9mIGVhY2ggdmVyc2lvbi4KK0NvbnN1bHQgdGhlIGBDaGFuZ2Vs
b2cgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbD5gX18g
cGFnZSBmb3IgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyBvZiBlYWNoIHZlcnNpb24uCisKKworU3Vw
cG9ydCBweXRlc3QKKy0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gc3VwcG9ydCBweXRlc3QgYnkg
b2J0YWluaW5nIGEgYFRpZGVmbGlmdCBzdWJzY3JpcHRpb25gXy4KKworVGlkZWxpZnQgZ2l2ZXMg
c29mdHdhcmUgZGV2ZWxvcG1lbnQgdGVhbXMgYSBzaW5nbGUgc291cmNlIGZvciBwdXJjaGFzaW5n
IGFuZCBtYWludGFpbmluZyB0aGVpciBzb2Z0d2FyZSwKK3dpdGggcHJvZmVzc2lvbmFsIGdyYWRl
IGFzc3VyYW5jZXMgZnJvbSB0aGUgZXhwZXJ0cyB3aG8ga25vdyBpdCBiZXN0LCB3aGlsZSBzZWFt
bGVzc2x5IGludGVncmF0aW5nIHdpdGggZXhpc3RpbmcgdG9vbHMuCisKKworLi4gX2BUaWRlZmxp
ZnQgc3Vic2NyaXB0aW9uYDogaHR0cHM6Ly90aWRlbGlmdC5jb20vc3Vic2NyaXB0aW9uL3BrZy9w
eXBpLXB5dGVzdD91dG1fc291cmNlPXB5cGktcHl0ZXN0JnV0bV9tZWRpdW09cmVmZXJyYWwmdXRt
X2NhbXBhaWduPXJlYWRtZQorCisKK1NlY3VyaXR5CiteXl5eXl5eXgorCitweXRlc3QgaGFzIG5l
dmVyIGJlZW4gYXNzb2NpYXRlZCB3aXRoIGEgc2VjdXJpdHkgdnVuZXJhYmlsaXR5LCBidXQgaW4g
YW55IGNhc2UsIHRvIHJlcG9ydCBhCitzZWN1cml0eSB2dWxuZXJhYmlsaXR5IHBsZWFzZSB1c2Ug
dGhlIGBUaWRlbGlmdCBzZWN1cml0eSBjb250YWN0IDxodHRwczovL3RpZGVsaWZ0LmNvbS9zZWN1
cml0eT5gXy4KK1RpZGVsaWZ0IHdpbGwgY29vcmRpbmF0ZSB0aGUgZml4IGFuZCBkaXNjbG9zdXJl
LgogCiAKIExpY2Vuc2UKIC0tLS0tLS0KIAotQ29weXJpZ2h0IEhvbGdlciBLcmVrZWwgYW5kIG90
aGVycywgMjAwNC0yMDE3LgorQ29weXJpZ2h0IEhvbGdlciBLcmVrZWwgYW5kIG90aGVycywgMjAw
NC0yMDIwLgogCiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIGBNSVRgXyBsaWNl
bnNlLCBweXRlc3QgaXMgZnJlZSBhbmQgb3BlbiBzb3VyY2Ugc29mdHdhcmUuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L1RJREVMSUZULnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L1RJREVMSUZULnJzdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNzA4MTgxN2RmZDgyMjVmZWM2NDVkMzVmMjA3OTBlZDg3YTVmNTVlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvVElERUxJRlQucnN0CkBAIC0wLDAgKzEsNTcgQEAK
Kz09PT09PT09CitUaWRlbGlmdAorPT09PT09PT0KKworcHl0ZXN0IGlzIGEgbWVtYmVyIG9mIGBU
aWRlbGlmdGBfLiBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyBob3cgdGhlIGNvcmUgdGVhbSBtYW5h
Z2VzCitUaWRlbGlmdC1yZWxhdGVkIGFjdGl2aXRpZXMuCisKK1doYXQgaXMgaXQKKz09PT09PT09
PT0KKworVGlkZWxpZnQgYWltcyB0byBtYWtlIE9wZW4gU291cmNlIHN1c3RhaW5hYmxlIGJ5IG9m
ZmVyaW5nIHN1YnNjcmlwdGlvbnMgdG8gY29tcGFuaWVzIHdoaWNoIHJlbHkKK29uIE9wZW4gU291
cmNlIHBhY2thZ2VzLiBUaGlzIHN1YnNjcmlwdGlvbiBhbGxvd3MgaXQgdG8gcGF5IG1haW50YWlu
ZXJzIG9mIHRob3NlIE9wZW4gU291cmNlCitwYWNrYWdlcyB0byBhaWQgc3VzdGFpbmFiaWxpdHkg
b2YgdGhlIHdvcmsuCisKK0Z1bmRzCis9PT09PQorCitJdCB3YXMgZGVjaWRlZCBpbiB0aGUgYG1h
aWxpbmcgbGlzdGBfIHRoYXQgdGhlIFRpZGVsaWZ0IGNvbnRyaWJ1dGlvbiB3aWxsIGJlIHNwbGl0
IGV2ZW5seSBiZXR3ZWVuCittZW1iZXJzIG9mIHRoZSBgY29udHJpYnV0b3JzIHRlYW1gXyBpbnRl
cmVzdGVkIGluIHJlY2VpdmluZyBmdW5kaW5nLgorCitUaGUgY3VycmVudCBsaXN0IG9mIGNvbnRy
aWJ1dG9ycyByZWNlaXZpbmcgZnVuZGluZyBhcmU6CisKKyogYEBhc290dGlsZWBfCisqIGBAYmx1
ZXllZGBfCisqIGBAbmljb2RkZW11c2BfCisKK0NvbnRyaWJ1dG9ycyBpbnRlcmVzdGVkIGluIHJl
Y2VpdmluZyBhIHBhcnQgb2YgdGhlIGZ1bmRzIGp1c3QgbmVlZCB0byBzdWJtaXQgYSBQUiBhZGRp
bmcgdGhlaXIKK25hbWUgdG8gdGhlIGxpc3QuIENvbnRyaWJ1dG9ycyB0aGF0IHdhbnQgdG8gc3Rv
cCByZWNlaXZpbmcgdGhlIGZ1bmRzIHNob3VsZCBhbHNvIHN1Ym1pdCBhIFBSCitpbiB0aGUgc2Ft
ZSB3YXkuCisKK1RoZSBQUiBzaG91bGQgbWVudGlvbiBgQHB5dGVzdC1kZXYvdGlkZWxpZnQtYWRt
aW5zYF8gc28gYXBwcm9wcmlhdGUgY2hhbmdlcworY2FuIGJlIG1hZGUgaW4gdGhlIFRpZGVsaWZ0
IHBsYXRmb3JtLgorCitBZnRlciB0aGUgUFIgaGFzIGJlZW4gYWNjZXB0ZWQgYW5kIG1lcmdlZCwg
dGhlIGNvbnRyaWJ1dG9yIHNob3VsZCByZWdpc3RlciBpbiB0aGUgYFRpZGVsaWZ0YF8KK3BsYXRm
b3JtIGFuZCBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyB0aGVyZSwgaW5jbHVkaW5nIHNpZ25pbmcg
YW4gYGFncmVlbWVudGBfLgorCitBZG1pbnMKKz09PT09PQorCitBIGZldyBwZW9wbGUgaGF2ZSBh
ZG1pbiBhY2Nlc3MgdG8gdGhlIFRpZGVsaWZ0IGRhc2hib2FyZCB0byBtYWtlIGNoYW5nZXMuIFRo
b3NlIHBlb3BsZQorYXJlIHBhcnQgb2YgdGhlIGBAcHl0ZXN0LWRldi90aWRlbGlmdC1hZG1pbnNg
XyB0ZWFtLgorCitgQ29yZSBjb250cmlidXRvcnNgXyBpbnRlcmVzdGVkIGluIGhlbHBpbmcgb3V0
IHdpdGggVGlkZWxpZnQgbWFpbnRlbmFuY2UgYXJlIHdlbGNvbWUhIFdlIGRvbid0CitleHBlY3Qg
bXVjaCB3b3JrIGhlcmUgb3RoZXIgdGhhbiB0aGUgb2NjYXNpb25hbCBhZGRpbmcvcmVtb3ZhbCBv
ZiBhIGNvbnRyaWJ1dG9yIGZyb20gcmVjZWl2aW5nCitmdW5kcy4gSnVzdCBkcm9wIGEgbGluZSB0
byBvbmUgb2YgdGhlIGBAcHl0ZXN0LWRldi90aWRlbGlmdC1hZG1pbnNgXyBvciB1c2UgdGhlIG1h
aWxpbmcgbGlzdC4KKworCisuLiBfYFRpZGVsaWZ0YDogaHR0cHM6Ly90aWRlbGlmdC5jb20KKy4u
IF9gbWFpbGluZyBsaXN0YDogaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvcGlwZXJtYWlsL3B5dGVz
dC1kZXYvMjAxOS1NYXkvMDA0NzE2Lmh0bWwKKy4uIF9gY29udHJpYnV0b3JzIHRlYW1gOiBodHRw
czovL2dpdGh1Yi5jb20vb3Jncy9weXRlc3QtZGV2L3RlYW1zL2NvbnRyaWJ1dG9ycworLi4gX2Bj
b3JlIGNvbnRyaWJ1dG9yc2A6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcmdzL3B5dGVzdC1kZXYvdGVh
bXMvY29yZS9tZW1iZXJzCisuLiBfYEBweXRlc3QtZGV2L3RpZGVsaWZ0LWFkbWluc2A6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9vcmdzL3B5dGVzdC1kZXYvdGVhbXMvdGlkZWxpZnQtYWRtaW5zL21lbWJl
cnMKKy4uIF9gYWdyZWVtZW50YDogaHR0cHM6Ly90aWRlbGlmdC5jb20vZG9jcy9saWZ0aW5nL2Fn
cmVlbWVudAorCisuLiBfYEBhc290dGlsZWA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hc290dGlsZQor
Li4gX2BAYmx1ZXllZGA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibHVleWVkCisuLiBfYEBuaWNvZGRl
bXVzYDogaHR0cHM6Ly9naXRodWIuY29tL25pY29kZGVtdXMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19faW5pdF9fLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTQxZjA1MDRlNDcwNjQyOGY4YmMyNDFk
NWQyZDEwZWRiYTAxMzhiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw4ICswLDAgQEAKLV9fYWxsX18gPSBbJ19fdmVyc2lvbl9fJ10KLQotdHJ5OgotICAgIGZyb20g
Ll92ZXJzaW9uIGltcG9ydCB2ZXJzaW9uIGFzIF9fdmVyc2lvbl9fCi1leGNlcHQgSW1wb3J0RXJy
b3I6Ci0gICAgIyBicm9rZW4gaW5zdGFsbGF0aW9uLCB3ZSBkb24ndCBldmVuIHRyeQotICAgICMg
dW5rbm93biBvbmx5IHdvcmtzIGJlY2F1c2Ugd2UgZG8gcG9vciBtYW5zIHZlcnNpb24gY29tcGFy
ZQotICAgIF9fdmVyc2lvbl9fID0gJ3Vua25vd24nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L19hcmdjb21wbGV0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2FyZ2NvbXBsZXRl
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjI1YTc1ZjlmMWI3MDUwZDM4ZjM2
NWM0MTM1ZGQ0OGFhNzFiMWQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2FyZ2NvbXBsZXRlLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMTAzICswLDAgQEAKLQotIiIiYWxsb3cgYmFzaC1jb21wbGV0aW9uIGZvciBhcmdw
YXJzZSB3aXRoIGFyZ2NvbXBsZXRlIGlmIGluc3RhbGxlZAotbmVlZHMgYXJnY29tcGxldGU+PTAu
NS42IGZvciBweXRob24gMy4yLzMuMyAob2xkZXIgdmVyc2lvbnMgZmFpbAotdG8gZmluZCB0aGUg
bWFnaWMgc3RyaW5nLCBzbyBfQVJHQ09NUExFVEUgZW52LiB2YXIgaXMgbmV2ZXIgc2V0LCBhbmQK
LXRoaXMgZG9lcyBub3QgbmVlZCBzcGVjaWFsIGNvZGUuCi0KLUZ1bmN0aW9uIHRyeV9hcmdjb21w
bGV0ZShwYXJzZXIpIHNob3VsZCBiZSBjYWxsZWQgZGlyZWN0bHkgYmVmb3JlCi10aGUgY2FsbCB0
byBBcmd1bWVudFBhcnNlci5wYXJzZV9hcmdzKCkuCi0KLVRoZSBmaWxlc2NvbXBsZXRlciBpcyB3
aGF0IHlvdSBub3JtYWxseSB3b3VsZCB1c2Ugb24gdGhlIHBvc2l0aW9uYWwKLWFyZ3VtZW50cyBz
cGVjaWZpY2F0aW9uLCBpbiBvcmRlciB0byBnZXQgImRpcm5hbWUvIiBhZnRlciAiZGlybjxUQUI+
IgotaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAiZGlybmFtZSAiOgotCi0gICBvcHRwYXJzZXIuYWRk
X2FyZ3VtZW50KENvbmZpZy5fZmlsZV9vcl9kaXIsIG5hcmdzPScqJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICkuY29tcGxldGVyPWZpbGVzY29tcGxldGVyCi0KLU90aGVyLCBhcHBs
aWNhdGlvbiBzcGVjaWZpYywgY29tcGxldGVycyBzaG91bGQgZ28gaW4gdGhlIGZpbGUKLWRvaW5n
IHRoZSBhZGRfYXJndW1lbnQgY2FsbHMgYXMgdGhleSBuZWVkIHRvIGJlIHNwZWNpZmllZCBhcyAu
Y29tcGxldGVyCi1hdHRyaWJ1dGVzIGFzIHdlbGwuIChJZiBhcmdjb21wbGV0ZSBpcyBub3QgaW5z
dGFsbGVkLCB0aGUgZnVuY3Rpb24gdGhlCi1hdHRyaWJ1dGUgcG9pbnRzIHRvIHdpbGwgbm90IGJl
IHVzZWQpLgotCi1TUEVFRFVQCi09PT09PT09Ci1UaGUgZ2VuZXJpYyBhcmdjb21wbGV0ZSBzY3Jp
cHQgZm9yIGJhc2gtY29tcGxldGlvbgotKC9ldGMvYmFzaF9jb21wbGV0aW9uLmQvcHl0aG9uLWFy
Z2NvbXBsZXRlLnNoICkKLXVzZXMgYSBweXRob24gcHJvZ3JhbSB0byBkZXRlcm1pbmUgc3RhcnR1
cCBzY3JpcHQgZ2VuZXJhdGVkIGJ5IHBpcC4KLVlvdSBjYW4gc3BlZWQgdXAgY29tcGxldGlvbiBz
b21ld2hhdCBieSBjaGFuZ2luZyB0aGlzIHNjcmlwdCB0byBpbmNsdWRlCi0gICMgUFlUSE9OX0FS
R0NPTVBMRVRFX09LCi1zbyB0aGUgdGhlIHB5dGhvbi1hcmdjb21wbGV0ZS1jaGVjay1lYXN5LWlu
c3RhbGwtc2NyaXB0IGRvZXMgbm90Ci1uZWVkIHRvIGJlIGNhbGxlZCB0byBmaW5kIHRoZSBlbnRy
eSBwb2ludCBvZiB0aGUgY29kZSBhbmQgc2VlIGlmIHRoYXQgaXMKLW1hcmtlZCAgd2l0aCBQWVRI
T05fQVJHQ09NUExFVEVfT0sKLQotSU5TVEFMTC9ERUJVR0dJTkcKLT09PT09PT09PT09PT09PT09
Ci1UbyBpbmNsdWRlIHRoaXMgc3VwcG9ydCBpbiBhbm90aGVyIGFwcGxpY2F0aW9uIHRoYXQgaGFz
IHNldHVwLnB5IGdlbmVyYXRlZAotc2NyaXB0czoKLS0gYWRkIHRoZSBsaW5lOgotICAgICMgUFlU
SE9OX0FSR0NPTVBMRVRFX09LCi0gIG5lYXIgdGhlIHRvcCBvZiB0aGUgbWFpbiBweXRob24gZW50
cnkgcG9pbnQKLS0gaW5jbHVkZSBpbiB0aGUgZmlsZSBjYWxsaW5nIHBhcnNlX2FyZ3MoKToKLSAg
ICBmcm9tIF9hcmdjb21wbGV0ZSBpbXBvcnQgdHJ5X2FyZ2NvbXBsZXRlLCBmaWxlc2NvbXBsZXRl
cgotICAgLCBjYWxsIHRyeV9hcmdjb21wbGV0ZSBqdXN0IGJlZm9yZSBwYXJzZV9hcmdzKCksIGFu
ZCBvcHRpb25hbGx5IGFkZAotICAgZmlsZXNjb21wbGV0ZXIgdG8gdGhlIHBvc2l0aW9uYWwgYXJn
dW1lbnRzJyBhZGRfYXJndW1lbnQoKQotSWYgdGhpbmdzIGRvIG5vdCB3b3JrIHJpZ2h0IGF3YXk6
Ci0tIHN3aXRjaCBvbiBhcmdjb21wbGV0ZSBkZWJ1Z2dpbmcgd2l0aCAoYWxzbyBoZWxwZnVsIHdo
ZW4gZG9pbmcgY3VzdG9tCi0gIGNvbXBsZXRlcnMpOgotICAgIGV4cG9ydCBfQVJDX0RFQlVHPTEK
LS0gcnVuOgotICAgIHB5dGhvbi1hcmdjb21wbGV0ZS1jaGVjay1lYXN5LWluc3RhbGwtc2NyaXB0
ICQod2hpY2ggYXBwbmFtZSkKLSAgICBlY2hvICQ/Ci0gIHdpbGwgZWNobyAwIGlmIHRoZSBtYWdp
YyBsaW5lIGhhcyBiZWVuIGZvdW5kLCAxIGlmIG5vdAotLSBzb21ldGltZXMgaXQgaGVscHMgdG8g
ZmluZCBlYXJseSBvbiBlcnJvcnMgdXNpbmc6Ci0gICAgX0FSR0NPTVBMRVRFPTEgX0FSQ19ERUJV
Rz0xIGFwcG5hbWUKLSAgd2hpY2ggc2hvdWxkIHRocm93IGEgS2V5RXJyb3I6ICdDT01QTElORScg
KHdoaWNoIGlzIHByb3Blcmx5IHNldCBieSB0aGUKLSAgZ2xvYmFsIGFyZ2NvbXBsZXRlIHNjcmlw
dCkuCi0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lv
biwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBzeXMKLWltcG9ydCBvcwotZnJvbSBnbG9iIGltcG9y
dCBnbG9iCi0KLQotY2xhc3MgRmFzdEZpbGVzQ29tcGxldGVyOgotICAgICdGYXN0IGZpbGUgY29t
cGxldGVyIGNsYXNzJwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRpcmVjdG9yaWVzPVRydWUp
OgotICAgICAgICBzZWxmLmRpcmVjdG9yaWVzID0gZGlyZWN0b3JpZXMKLQotICAgIGRlZiBfX2Nh
bGxfXyhzZWxmLCBwcmVmaXgsICoqa3dhcmdzKToKLSAgICAgICAgIiIib25seSBjYWxsZWQgb24g
bm9uIG9wdGlvbiBjb21wbGV0aW9ucyIiIgotICAgICAgICBpZiBvcy5wYXRoLnNlcCBpbiBwcmVm
aXhbMTpdOgotICAgICAgICAgICAgcHJlZml4X2RpciA9IGxlbihvcy5wYXRoLmRpcm5hbWUocHJl
Zml4KSArIG9zLnBhdGguc2VwKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcHJlZml4X2Rp
ciA9IDAKLSAgICAgICAgY29tcGxldGlvbiA9IFtdCi0gICAgICAgIGdsb2JiZWQgPSBbXQotICAg
ICAgICBpZiAnKicgbm90IGluIHByZWZpeCBhbmQgJz8nIG5vdCBpbiBwcmVmaXg6Ci0gICAgICAg
ICAgICAjIHdlIGFyZSBvbiB1bml4LCBvdGhlcndpc2Ugbm8gYmFzaAotICAgICAgICAgICAgaWYg
bm90IHByZWZpeCBvciBwcmVmaXhbLTFdID09IG9zLnBhdGguc2VwOgotICAgICAgICAgICAgICAg
IGdsb2JiZWQuZXh0ZW5kKGdsb2IocHJlZml4ICsgJy4qJykpCi0gICAgICAgICAgICBwcmVmaXgg
Kz0gJyonCi0gICAgICAgIGdsb2JiZWQuZXh0ZW5kKGdsb2IocHJlZml4KSkKLSAgICAgICAgZm9y
IHggaW4gc29ydGVkKGdsb2JiZWQpOgotICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Rpcih4KToK
LSAgICAgICAgICAgICAgICB4ICs9ICcvJwotICAgICAgICAgICAgIyBhcHBlbmQgc3RyaXBwaW5n
IHRoZSBwcmVmaXggKGxpa2UgYmFzaCwgbm90IGxpa2UgY29tcGdlbikKLSAgICAgICAgICAgIGNv
bXBsZXRpb24uYXBwZW5kKHhbcHJlZml4X2RpcjpdKQotICAgICAgICByZXR1cm4gY29tcGxldGlv
bgotCi0KLWlmIG9zLmVudmlyb24uZ2V0KCdfQVJHQ09NUExFVEUnKToKLSAgICB0cnk6Ci0gICAg
ICAgIGltcG9ydCBhcmdjb21wbGV0ZS5jb21wbGV0ZXJzCi0gICAgZXhjZXB0IEltcG9ydEVycm9y
OgotICAgICAgICBzeXMuZXhpdCgtMSkKLSAgICBmaWxlc2NvbXBsZXRlciA9IEZhc3RGaWxlc0Nv
bXBsZXRlcigpCi0KLSAgICBkZWYgdHJ5X2FyZ2NvbXBsZXRlKHBhcnNlcik6Ci0gICAgICAgIGFy
Z2NvbXBsZXRlLmF1dG9jb21wbGV0ZShwYXJzZXIsIGFsd2F5c19jb21wbGV0ZV9vcHRpb25zPUZh
bHNlKQotZWxzZToKLSAgICBkZWYgdHJ5X2FyZ2NvbXBsZXRlKHBhcnNlcik6Ci0gICAgICAgIHBh
c3MKLSAgICBmaWxlc2NvbXBsZXRlciA9IE5vbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvX2NvZGUvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19faW5p
dF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MTVjMTNiNDJjMjViZDMxNDk4
OGRiYWE3ZmY5ZjRlM2QxZDJlNWMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX19pbml0X18ucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0iIiIgcHl0aG9uIGluc3BlY3Rpb24vY29kZSBnZW5l
cmF0aW9uIEFQSSAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWZyb20gLmNvZGUgaW1wb3J0IENvZGUgICMgbm9xYQot
ZnJvbSAuY29kZSBpbXBvcnQgRXhjZXB0aW9uSW5mbyAgIyBub3FhCi1mcm9tIC5jb2RlIGltcG9y
dCBGcmFtZSAgIyBub3FhCi1mcm9tIC5jb2RlIGltcG9ydCBUcmFjZWJhY2sgICMgbm9xYQotZnJv
bSAuY29kZSBpbXBvcnQgZ2V0cmF3Y29kZSAgIyBub3FhCi1mcm9tIC5zb3VyY2UgaW1wb3J0IFNv
dXJjZSAgIyBub3FhCi1mcm9tIC5zb3VyY2UgaW1wb3J0IGNvbXBpbGVfIGFzIGNvbXBpbGUgICMg
bm9xYQotZnJvbSAuc291cmNlIGltcG9ydCBnZXRmc2xpbmVubyAgIyBub3FhCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19weTJ0cmFjZWJhY2sucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L19jb2RlL19weTJ0cmFjZWJhY2sucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDVhYWNmMGE0MjhkODgwNjkxZmUwMzBhODM1YmMyNThkMDc4NTA2ZjAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9fY29kZS9fcHkydHJhY2ViYWNrLnB5CisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAot
IyBjb3BpZWQgZnJvbSBweXRob24tMi43LjMncyB0cmFjZWJhY2sucHkKLSMgQ0hBTkdFUzoKLSMg
LSBzb21lX3N0ciBpcyByZXBsYWNlZCwgdHJ5aW5nIHRvIGNyZWF0ZSB1bmljb2RlIHN0cmluZ3MK
LSMKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJp
bnRfZnVuY3Rpb24KLWltcG9ydCB0eXBlcwotCi0KLWRlZiBmb3JtYXRfZXhjZXB0aW9uX29ubHko
ZXR5cGUsIHZhbHVlKToKLSAgICAiIiJGb3JtYXQgdGhlIGV4Y2VwdGlvbiBwYXJ0IG9mIGEgdHJh
Y2ViYWNrLgotCi0gICAgVGhlIGFyZ3VtZW50cyBhcmUgdGhlIGV4Y2VwdGlvbiB0eXBlIGFuZCB2
YWx1ZSBzdWNoIGFzIGdpdmVuIGJ5Ci0gICAgc3lzLmxhc3RfdHlwZSBhbmQgc3lzLmxhc3RfdmFs
dWUuIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBsaXN0IG9mCi0gICAgc3RyaW5ncywgZWFjaCBlbmRp
bmcgaW4gYSBuZXdsaW5lLgotCi0gICAgTm9ybWFsbHksIHRoZSBsaXN0IGNvbnRhaW5zIGEgc2lu
Z2xlIHN0cmluZzsgaG93ZXZlciwgZm9yCi0gICAgU3ludGF4RXJyb3IgZXhjZXB0aW9ucywgaXQg
Y29udGFpbnMgc2V2ZXJhbCBsaW5lcyB0aGF0ICh3aGVuCi0gICAgcHJpbnRlZCkgZGlzcGxheSBk
ZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB3aGVyZSB0aGUgc3ludGF4Ci0gICAgZXJyb3Igb2Nj
dXJyZWQuCi0KLSAgICBUaGUgbWVzc2FnZSBpbmRpY2F0aW5nIHdoaWNoIGV4Y2VwdGlvbiBvY2N1
cnJlZCBpcyBhbHdheXMgdGhlIGxhc3QKLSAgICBzdHJpbmcgaW4gdGhlIGxpc3QuCi0KLSAgICAi
IiIKLQotICAgICMgQW4gaW5zdGFuY2Ugc2hvdWxkIG5vdCBoYXZlIGEgbWVhbmluZ2Z1bCB2YWx1
ZSBwYXJhbWV0ZXIsIGJ1dAotICAgICMgc29tZXRpbWVzIGRvZXMsIHBhcnRpY3VsYXJseSBmb3Ig
c3RyaW5nIGV4Y2VwdGlvbnMsIHN1Y2ggYXMKLSAgICAjID4+PiByYWlzZSBzdHJpbmcxLCBzdHJp
bmcyICAjIGRlcHJlY2F0ZWQKLSAgICAjCi0gICAgIyBDbGVhciB0aGVzZSBvdXQgZmlyc3QgYmVj
YXVzZSBpc3N1YnR5cGUoc3RyaW5nMSwgU3ludGF4RXJyb3IpCi0gICAgIyB3b3VsZCB0aHJvdyBh
bm90aGVyIGV4Y2VwdGlvbiBhbmQgbWFzayB0aGUgb3JpZ2luYWwgcHJvYmxlbS4KLSAgICBpZiAo
aXNpbnN0YW5jZShldHlwZSwgQmFzZUV4Y2VwdGlvbikgb3IKLSAgICAgICAgaXNpbnN0YW5jZShl
dHlwZSwgdHlwZXMuSW5zdGFuY2VUeXBlKSBvcgotICAgICAgICAgICAgZXR5cGUgaXMgTm9uZSBv
ciB0eXBlKGV0eXBlKSBpcyBzdHIpOgotICAgICAgICByZXR1cm4gW19mb3JtYXRfZmluYWxfZXhj
X2xpbmUoZXR5cGUsIHZhbHVlKV0KLQotICAgIHN0eXBlID0gZXR5cGUuX19uYW1lX18KLQotICAg
IGlmIG5vdCBpc3N1YmNsYXNzKGV0eXBlLCBTeW50YXhFcnJvcik6Ci0gICAgICAgIHJldHVybiBb
X2Zvcm1hdF9maW5hbF9leGNfbGluZShzdHlwZSwgdmFsdWUpXQotCi0gICAgIyBJdCB3YXMgYSBz
eW50YXggZXJyb3I7IHNob3cgZXhhY3RseSB3aGVyZSB0aGUgcHJvYmxlbSB3YXMgZm91bmQuCi0g
ICAgbGluZXMgPSBbXQotICAgIHRyeToKLSAgICAgICAgbXNnLCAoZmlsZW5hbWUsIGxpbmVubywg
b2Zmc2V0LCBiYWRsaW5lKSA9IHZhbHVlLmFyZ3MKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAg
ICAgICBwYXNzCi0gICAgZWxzZToKLSAgICAgICAgZmlsZW5hbWUgPSBmaWxlbmFtZSBvciAiPHN0
cmluZz4iCi0gICAgICAgIGxpbmVzLmFwcGVuZCgnICBGaWxlICIlcyIsIGxpbmUgJWRcbicgJSAo
ZmlsZW5hbWUsIGxpbmVubykpCi0gICAgICAgIGlmIGJhZGxpbmUgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKGJhZGxpbmUsIGJ5dGVzKTogICMgcHl0aG9uIDIgb25seQot
ICAgICAgICAgICAgICAgIGJhZGxpbmUgPSBiYWRsaW5lLmRlY29kZSgndXRmLTgnLCAncmVwbGFj
ZScpCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQodScgICAgJXNcbicgJSBiYWRsaW5lLnN0cmlw
KCkpCi0gICAgICAgICAgICBpZiBvZmZzZXQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
Y2FyZXRzcGFjZSA9IGJhZGxpbmUucnN0cmlwKCdcbicpWzpvZmZzZXRdLmxzdHJpcCgpCi0gICAg
ICAgICAgICAgICAgIyBub24tc3BhY2Ugd2hpdGVzcGFjZSAobGlrZXMgdGFicykgbXVzdCBiZSBr
ZXB0IGZvciBhbGlnbm1lbnQKLSAgICAgICAgICAgICAgICBjYXJldHNwYWNlID0gKChjLmlzc3Bh
Y2UoKSBhbmQgYyBvciAnICcpIGZvciBjIGluIGNhcmV0c3BhY2UpCi0gICAgICAgICAgICAgICAg
IyBvbmx5IHRocmVlIHNwYWNlcyB0byBhY2NvdW50IGZvciBvZmZzZXQxID09IHBvcyAwCi0gICAg
ICAgICAgICAgICAgbGluZXMuYXBwZW5kKCcgICAlc15cbicgJSAnJy5qb2luKGNhcmV0c3BhY2Up
KQotICAgICAgICB2YWx1ZSA9IG1zZwotCi0gICAgbGluZXMuYXBwZW5kKF9mb3JtYXRfZmluYWxf
ZXhjX2xpbmUoc3R5cGUsIHZhbHVlKSkKLSAgICByZXR1cm4gbGluZXMKLQotCi1kZWYgX2Zvcm1h
dF9maW5hbF9leGNfbGluZShldHlwZSwgdmFsdWUpOgotICAgICIiIlJldHVybiBhIGxpc3Qgb2Yg
YSBzaW5nbGUgbGluZSAtLSBub3JtYWwgY2FzZSBmb3IgZm9ybWF0X2V4Y2VwdGlvbl9vbmx5IiIi
Ci0gICAgdmFsdWVzdHIgPSBfc29tZV9zdHIodmFsdWUpCi0gICAgaWYgdmFsdWUgaXMgTm9uZSBv
ciBub3QgdmFsdWVzdHI6Ci0gICAgICAgIGxpbmUgPSAiJXNcbiIgJSBldHlwZQotICAgIGVsc2U6
Ci0gICAgICAgIGxpbmUgPSAiJXM6ICVzXG4iICUgKGV0eXBlLCB2YWx1ZXN0cikKLSAgICByZXR1
cm4gbGluZQotCi0KLWRlZiBfc29tZV9zdHIodmFsdWUpOgotICAgIHRyeToKLSAgICAgICAgcmV0
dXJuIHVuaWNvZGUodmFsdWUpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgcmV0dXJuIHN0cih2YWx1ZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoK
LSAgICAgICAgICAgIHBhc3MKLSAgICByZXR1cm4gJzx1bnByaW50YWJsZSAlcyBvYmplY3Q+JyAl
IHR5cGUodmFsdWUpLl9fbmFtZV9fCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19j
b2RlL2NvZGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL2NvZGUucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmYjIzMmJkNDMwZTliNGY4YWQ3NjllMzA1N2RkZWZlYzI4
MWE2N2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9fY29kZS9jb2RlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOTA2ICsw
LDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwg
cHJpbnRfZnVuY3Rpb24KLWltcG9ydCBzeXMKLWZyb20gaW5zcGVjdCBpbXBvcnQgQ09fVkFSQVJH
UywgQ09fVkFSS0VZV09SRFMKLWltcG9ydCByZQotZnJvbSB3ZWFrcmVmIGltcG9ydCByZWYKLWZy
b20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9QWTIsIF9QWTMsIFBZMzUsIHNhZmVfc3RyCi0KLWlt
cG9ydCBweQotYnVpbHRpbl9yZXByID0gcmVwcgotCi1pZiBfUFkzOgotICAgIGZyb20gdHJhY2Vi
YWNrIGltcG9ydCBmb3JtYXRfZXhjZXB0aW9uX29ubHkKLWVsc2U6Ci0gICAgZnJvbSAuX3B5MnRy
YWNlYmFjayBpbXBvcnQgZm9ybWF0X2V4Y2VwdGlvbl9vbmx5Ci0KLQotY2xhc3MgQ29kZShvYmpl
Y3QpOgotICAgICIiIiB3cmFwcGVyIGFyb3VuZCBQeXRob24gY29kZSBvYmplY3RzICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHJhd2NvZGUpOgotICAgICAgICBpZiBub3QgaGFzYXR0cihy
YXdjb2RlLCAiY29fZmlsZW5hbWUiKToKLSAgICAgICAgICAgIHJhd2NvZGUgPSBnZXRyYXdjb2Rl
KHJhd2NvZGUpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSByYXdj
b2RlLmNvX2ZpbGVuYW1lCi0gICAgICAgICAgICBzZWxmLmZpcnN0bGluZW5vID0gcmF3Y29kZS5j
b19maXJzdGxpbmVubyAtIDEKLSAgICAgICAgICAgIHNlbGYubmFtZSA9IHJhd2NvZGUuY29fbmFt
ZQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBUeXBl
RXJyb3IoIm5vdCBhIGNvZGUgb2JqZWN0OiAlciIgJSAocmF3Y29kZSwpKQotICAgICAgICBzZWxm
LnJhdyA9IHJhd2NvZGUKLQotICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5yYXcgPT0gb3RoZXIucmF3Ci0KLSAgICBfX2hhc2hfXyA9IE5vbmUKLQotICAg
IGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gbm90IHNlbGYgPT0gb3Ro
ZXIKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBwYXRoKHNlbGYpOgotICAgICAgICAiIiIgcmV0
dXJuIGEgcGF0aCBvYmplY3QgcG9pbnRpbmcgdG8gc291cmNlIGNvZGUgKG5vdGUgdGhhdCBpdAot
ICAgICAgICBtaWdodCBub3QgcG9pbnQgdG8gYW4gYWN0dWFsbHkgZXhpc3RpbmcgZmlsZSkuICIi
IgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwID0gcHkucGF0aC5sb2NhbChzZWxmLnJhdy5j
b19maWxlbmFtZSkKLSAgICAgICAgICAgICMgbWF5YmUgZG9uJ3QgdHJ5IHRoaXMgY2hlY2tpbmcK
LSAgICAgICAgICAgIGlmIG5vdCBwLmNoZWNrKCk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgT1NF
cnJvcigicHkucGF0aCBjaGVjayBmYWlsZWQuIikKLSAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0g
ICAgICAgICAgICAjIFhYWCBtYXliZSB0cnkgaGFyZGVyIGxpa2UgdGhlIHdlaXJkIGxvZ2ljCi0g
ICAgICAgICAgICAjIGluIHRoZSBzdGFuZGFyZCBsaWIgW2xpbmVjYWNoZS51cGRhdGVjYWNoZV0g
ZG9lcz8KLSAgICAgICAgICAgIHAgPSBzZWxmLnJhdy5jb19maWxlbmFtZQotCi0gICAgICAgIHJl
dHVybiBwCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZnVsbHNvdXJjZShzZWxmKToKLSAgICAg
ICAgIiIiIHJldHVybiBhIF9weXRlc3QuX2NvZGUuU291cmNlIG9iamVjdCBmb3IgdGhlIGZ1bGwg
c291cmNlIGZpbGUgb2YgdGhlIGNvZGUKLSAgICAgICAgIiIiCi0gICAgICAgIGZyb20gX3B5dGVz
dC5fY29kZSBpbXBvcnQgc291cmNlCi0gICAgICAgIGZ1bGwsIF8gPSBzb3VyY2UuZmluZHNvdXJj
ZShzZWxmLnJhdykKLSAgICAgICAgcmV0dXJuIGZ1bGwKLQotICAgIGRlZiBzb3VyY2Uoc2VsZik6
Ci0gICAgICAgICIiIiByZXR1cm4gYSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSBvYmplY3QgZm9yIHRo
ZSBjb2RlIG9iamVjdCdzIHNvdXJjZSBvbmx5Ci0gICAgICAgICIiIgotICAgICAgICAjIHJldHVy
biBzb3VyY2Ugb25seSBmb3IgdGhhdCBwYXJ0IG9mIGNvZGUKLSAgICAgICAgaW1wb3J0IF9weXRl
c3QuX2NvZGUKLSAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuU291cmNlKHNlbGYucmF3KQot
Ci0gICAgZGVmIGdldGFyZ3Moc2VsZiwgdmFyPUZhbHNlKToKLSAgICAgICAgIiIiIHJldHVybiBh
IHR1cGxlIHdpdGggdGhlIGFyZ3VtZW50IG5hbWVzIGZvciB0aGUgY29kZSBvYmplY3QKLQotICAg
ICAgICAgICAgaWYgJ3ZhcicgaXMgc2V0IFRydWUgYWxzbyByZXR1cm4gdGhlIG5hbWVzIG9mIHRo
ZSB2YXJpYWJsZSBhbmQKLSAgICAgICAgICAgIGtleXdvcmQgYXJndW1lbnRzIHdoZW4gcHJlc2Vu
dAotICAgICAgICAiIiIKLSAgICAgICAgIyBoYW5kZnVsbCBzaG9ydGN1dCBmb3IgZ2V0dGluZyBh
cmdzCi0gICAgICAgIHJhdyA9IHNlbGYucmF3Ci0gICAgICAgIGFyZ2NvdW50ID0gcmF3LmNvX2Fy
Z2NvdW50Ci0gICAgICAgIGlmIHZhcjoKLSAgICAgICAgICAgIGFyZ2NvdW50ICs9IHJhdy5jb19m
bGFncyAmIENPX1ZBUkFSR1MKLSAgICAgICAgICAgIGFyZ2NvdW50ICs9IHJhdy5jb19mbGFncyAm
IENPX1ZBUktFWVdPUkRTCi0gICAgICAgIHJldHVybiByYXcuY29fdmFybmFtZXNbOmFyZ2NvdW50
XQotCi0KLWNsYXNzIEZyYW1lKG9iamVjdCk6Ci0gICAgIiIiV3JhcHBlciBhcm91bmQgYSBQeXRo
b24gZnJhbWUgaG9sZGluZyBmX2xvY2FscyBhbmQgZl9nbG9iYWxzCi0gICAgaW4gd2hpY2ggZXhw
cmVzc2lvbnMgY2FuIGJlIGV2YWx1YXRlZC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBm
cmFtZSk6Ci0gICAgICAgIHNlbGYubGluZW5vID0gZnJhbWUuZl9saW5lbm8gLSAxCi0gICAgICAg
IHNlbGYuZl9nbG9iYWxzID0gZnJhbWUuZl9nbG9iYWxzCi0gICAgICAgIHNlbGYuZl9sb2NhbHMg
PSBmcmFtZS5mX2xvY2FscwotICAgICAgICBzZWxmLnJhdyA9IGZyYW1lCi0gICAgICAgIHNlbGYu
Y29kZSA9IENvZGUoZnJhbWUuZl9jb2RlKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHN0YXRl
bWVudChzZWxmKToKLSAgICAgICAgIiIiIHN0YXRlbWVudCB0aGlzIGZyYW1lIGlzIGF0ICIiIgot
ICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQotICAgICAgICBpZiBzZWxmLmNvZGUuZnVsbHNv
dXJjZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuU291cmNlKCIi
KQotICAgICAgICByZXR1cm4gc2VsZi5jb2RlLmZ1bGxzb3VyY2UuZ2V0c3RhdGVtZW50KHNlbGYu
bGluZW5vKQotCi0gICAgZGVmIGV2YWwoc2VsZiwgY29kZSwgKip2YXJzKToKLSAgICAgICAgIiIi
IGV2YWx1YXRlICdjb2RlJyBpbiB0aGUgZnJhbWUKLQotICAgICAgICAgICAgJ3ZhcnMnIGFyZSBv
cHRpb25hbCBhZGRpdGlvbmFsIGxvY2FsIHZhcmlhYmxlcwotCi0gICAgICAgICAgICByZXR1cm5z
IHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRpb24KLSAgICAgICAgIiIiCi0gICAgICAgIGZfbG9j
YWxzID0gc2VsZi5mX2xvY2Fscy5jb3B5KCkKLSAgICAgICAgZl9sb2NhbHMudXBkYXRlKHZhcnMp
Ci0gICAgICAgIHJldHVybiBldmFsKGNvZGUsIHNlbGYuZl9nbG9iYWxzLCBmX2xvY2FscykKLQot
ICAgIGRlZiBleGVjXyhzZWxmLCBjb2RlLCAqKnZhcnMpOgotICAgICAgICAiIiIgZXhlYyAnY29k
ZScgaW4gdGhlIGZyYW1lCi0KLSAgICAgICAgICAgICd2YXJzJyBhcmUgb3B0aW9uYTsgYWRkaXRp
b25hbCBsb2NhbCB2YXJpYWJsZXMKLSAgICAgICAgIiIiCi0gICAgICAgIGZfbG9jYWxzID0gc2Vs
Zi5mX2xvY2Fscy5jb3B5KCkKLSAgICAgICAgZl9sb2NhbHMudXBkYXRlKHZhcnMpCi0gICAgICAg
IHB5LmJ1aWx0aW4uZXhlY18oY29kZSwgc2VsZi5mX2dsb2JhbHMsIGZfbG9jYWxzKQotCi0gICAg
ZGVmIHJlcHIoc2VsZiwgb2JqZWN0KToKLSAgICAgICAgIiIiIHJldHVybiBhICdzYWZlJyAobm9u
LXJlY3Vyc2l2ZSwgb25lLWxpbmUpIHN0cmluZyByZXByIGZvciAnb2JqZWN0JwotICAgICAgICAi
IiIKLSAgICAgICAgcmV0dXJuIHB5LmlvLnNhZmVyZXByKG9iamVjdCkKLQotICAgIGRlZiBpc190
cnVlKHNlbGYsIG9iamVjdCk6Ci0gICAgICAgIHJldHVybiBvYmplY3QKLQotICAgIGRlZiBnZXRh
cmdzKHNlbGYsIHZhcj1GYWxzZSk6Ci0gICAgICAgICIiIiByZXR1cm4gYSBsaXN0IG9mIHR1cGxl
cyAobmFtZSwgdmFsdWUpIGZvciBhbGwgYXJndW1lbnRzCi0KLSAgICAgICAgICAgIGlmICd2YXIn
IGlzIHNldCBUcnVlIGFsc28gaW5jbHVkZSB0aGUgdmFyaWFibGUgYW5kIGtleXdvcmQKLSAgICAg
ICAgICAgIGFyZ3VtZW50cyB3aGVuIHByZXNlbnQKLSAgICAgICAgIiIiCi0gICAgICAgIHJldHZh
bCA9IFtdCi0gICAgICAgIGZvciBhcmcgaW4gc2VsZi5jb2RlLmdldGFyZ3ModmFyKToKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICByZXR2YWwuYXBwZW5kKChhcmcsIHNlbGYuZl9s
b2NhbHNbYXJnXSkpCi0gICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICAg
ICAgcGFzcyAgICAgIyB0aGlzIGNhbiBvY2N1ciB3aGVuIHVzaW5nIFBzeWNvCi0gICAgICAgIHJl
dHVybiByZXR2YWwKLQotCi1jbGFzcyBUcmFjZWJhY2tFbnRyeShvYmplY3QpOgotICAgICIiIiBh
IHNpbmdsZSBlbnRyeSBpbiBhIHRyYWNlYmFjayAiIiIKLQotICAgIF9yZXByX3N0eWxlID0gTm9u
ZQotICAgIGV4cHJpbmZvID0gTm9uZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJhd2VudHJ5
LCBleGNpbmZvPU5vbmUpOgotICAgICAgICBzZWxmLl9leGNpbmZvID0gZXhjaW5mbwotICAgICAg
ICBzZWxmLl9yYXdlbnRyeSA9IHJhd2VudHJ5Ci0gICAgICAgIHNlbGYubGluZW5vID0gcmF3ZW50
cnkudGJfbGluZW5vIC0gMQotCi0gICAgZGVmIHNldF9yZXByX3N0eWxlKHNlbGYsIG1vZGUpOgot
ICAgICAgICBhc3NlcnQgbW9kZSBpbiAoInNob3J0IiwgImxvbmciKQotICAgICAgICBzZWxmLl9y
ZXByX3N0eWxlID0gbW9kZQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGZyYW1lKHNlbGYpOgot
ICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQotICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29k
ZS5GcmFtZShzZWxmLl9yYXdlbnRyeS50Yl9mcmFtZSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiByZWxsaW5lKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5saW5lbm8gLSBzZWxmLmZyYW1l
LmNvZGUuZmlyc3RsaW5lbm8KLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0
dXJuICI8VHJhY2ViYWNrRW50cnkgJXM6JWQ+IiAlIChzZWxmLmZyYW1lLmNvZGUucGF0aCwgc2Vs
Zi5saW5lbm8gKyAxKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHN0YXRlbWVudChzZWxmKToK
LSAgICAgICAgIiIiIF9weXRlc3QuX2NvZGUuU291cmNlIG9iamVjdCBmb3IgdGhlIGN1cnJlbnQg
c3RhdGVtZW50ICIiIgotICAgICAgICBzb3VyY2UgPSBzZWxmLmZyYW1lLmNvZGUuZnVsbHNvdXJj
ZQotICAgICAgICByZXR1cm4gc291cmNlLmdldHN0YXRlbWVudChzZWxmLmxpbmVubykKLQotICAg
IEBwcm9wZXJ0eQotICAgIGRlZiBwYXRoKHNlbGYpOgotICAgICAgICAiIiIgcGF0aCB0byB0aGUg
c291cmNlIGNvZGUgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmZyYW1lLmNvZGUucGF0aAotCi0g
ICAgZGVmIGdldGxvY2FscyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZnJhbWUuZl9sb2Nh
bHMKLSAgICBsb2NhbHMgPSBwcm9wZXJ0eShnZXRsb2NhbHMsIE5vbmUsIE5vbmUsICJsb2NhbHMg
b2YgdW5kZXJsYXlpbmcgZnJhbWUiKQotCi0gICAgZGVmIGdldGZpcnN0bGluZXNvdXJjZShzZWxm
KToKLSAgICAgICAgIyBvbiBKeXRob24gdGhpcyBmaXJzdGxpbmVubyBjYW4gYmUgLTEgYXBwYXJl
bnRseQotICAgICAgICByZXR1cm4gbWF4KHNlbGYuZnJhbWUuY29kZS5maXJzdGxpbmVubywgMCkK
LQotICAgIGRlZiBnZXRzb3VyY2Uoc2VsZiwgYXN0Y2FjaGU9Tm9uZSk6Ci0gICAgICAgICIiIiBy
ZXR1cm4gZmFpbGluZyBzb3VyY2UgY29kZS4gIiIiCi0gICAgICAgICMgd2UgdXNlIHRoZSBwYXNz
ZWQgaW4gYXN0Y2FjaGUgdG8gbm90IHJlcGFyc2UgYXN0dHJlZXMKLSAgICAgICAgIyB3aXRoaW4g
ZXhjZXB0aW9uIGluZm8gcHJpbnRpbmcKLSAgICAgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLnNvdXJj
ZSBpbXBvcnQgZ2V0c3RhdGVtZW50cmFuZ2VfYXN0Ci0gICAgICAgIHNvdXJjZSA9IHNlbGYuZnJh
bWUuY29kZS5mdWxsc291cmNlCi0gICAgICAgIGlmIHNvdXJjZSBpcyBOb25lOgotICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKLSAgICAgICAga2V5ID0gYXN0bm9kZSA9IE5vbmUKLSAgICAgICAgaWYg
YXN0Y2FjaGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBrZXkgPSBzZWxmLmZyYW1lLmNvZGUu
cGF0aAotICAgICAgICAgICAgaWYga2V5IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGFz
dG5vZGUgPSBhc3RjYWNoZS5nZXQoa2V5LCBOb25lKQotICAgICAgICBzdGFydCA9IHNlbGYuZ2V0
Zmlyc3RsaW5lc291cmNlKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgYXN0bm9kZSwgXywg
ZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KHNlbGYubGluZW5vLCBzb3VyY2UsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0bm9kZT1hc3Ru
b2RlKQotICAgICAgICBleGNlcHQgU3ludGF4RXJyb3I6Ci0gICAgICAgICAgICBlbmQgPSBzZWxm
LmxpbmVubyArIDEKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIGtleSBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgICAgICBhc3RjYWNoZVtrZXldID0gYXN0bm9kZQotICAgICAgICByZXR1
cm4gc291cmNlW3N0YXJ0OmVuZF0KLQotICAgIHNvdXJjZSA9IHByb3BlcnR5KGdldHNvdXJjZSkK
LQotICAgIGRlZiBpc2hpZGRlbihzZWxmKToKLSAgICAgICAgIiIiIHJldHVybiBUcnVlIGlmIHRo
ZSBjdXJyZW50IGZyYW1lIGhhcyBhIHZhciBfX3RyYWNlYmFja2hpZGVfXwotICAgICAgICAgICAg
cmVzb2x2aW5nIHRvIFRydWUKLQotICAgICAgICAgICAgSWYgX190cmFjZWJhY2toaWRlX18gaXMg
YSBjYWxsYWJsZSwgaXQgZ2V0cyBjYWxsZWQgd2l0aCB0aGUKLSAgICAgICAgICAgIEV4Y2VwdGlv
bkluZm8gaW5zdGFuY2UgYW5kIGNhbiBkZWNpZGUgd2hldGhlciB0byBoaWRlIHRoZSB0cmFjZWJh
Y2suCi0KLSAgICAgICAgICAgIG1vc3RseSBmb3IgaW50ZXJuYWwgdXNlCi0gICAgICAgICIiIgot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0YmggPSBzZWxmLmZyYW1lLmZfbG9jYWxzWydfX3Ry
YWNlYmFja2hpZGVfXyddCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICB0YmggPSBzZWxmLmZyYW1lLmZfZ2xvYmFsc1snX190cmFjZWJh
Y2toaWRlX18nXQotICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQotCi0gICAgICAgIGlmIGNhbGxhYmxlKHRiaCk6Ci0gICAgICAgICAgICBy
ZXR1cm4gdGJoKE5vbmUgaWYgc2VsZi5fZXhjaW5mbyBpcyBOb25lIGVsc2Ugc2VsZi5fZXhjaW5m
bygpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHRiaAotCi0gICAgZGVmIF9f
c3RyX18oc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZuID0gc3RyKHNlbGYucGF0
aCkKLSAgICAgICAgZXhjZXB0IHB5LmVycm9yLkVycm9yOgotICAgICAgICAgICAgZm4gPSAnPz8/
JwotICAgICAgICBuYW1lID0gc2VsZi5mcmFtZS5jb2RlLm5hbWUKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgbGluZSA9IHN0cihzZWxmLnN0YXRlbWVudCkubHN0cmlwKCkKLSAgICAgICAgZXhj
ZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0
OiAgIyBub3FhCi0gICAgICAgICAgICBsaW5lID0gIj8/PyIKLSAgICAgICAgcmV0dXJuICIgIEZp
bGUgJXI6JWQgaW4gJXNcbiAgJXNcbiIgJSAoZm4sIHNlbGYubGluZW5vICsgMSwgbmFtZSwgbGlu
ZSkKLQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5mcmFtZS5jb2Rl
LnJhdy5jb19uYW1lCi0gICAgbmFtZSA9IHByb3BlcnR5KG5hbWUsIE5vbmUsIE5vbmUsICJjb19u
YW1lIG9mIHVuZGVybGF5aW5nIGNvZGUiKQotCi0KLWNsYXNzIFRyYWNlYmFjayhsaXN0KToKLSAg
ICAiIiIgVHJhY2ViYWNrIG9iamVjdHMgZW5jYXBzdWxhdGUgYW5kIG9mZmVyIGhpZ2hlciBsZXZl
bAotICAgICAgICBhY2Nlc3MgdG8gVHJhY2ViYWNrIGVudHJpZXMuCi0gICAgIiIiCi0gICAgRW50
cnkgPSBUcmFjZWJhY2tFbnRyeQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRiLCBleGNpbmZv
PU5vbmUpOgotICAgICAgICAiIiIgaW5pdGlhbGl6ZSBmcm9tIGdpdmVuIHB5dGhvbiB0cmFjZWJh
Y2sgb2JqZWN0IGFuZCBFeGNlcHRpb25JbmZvICIiIgotICAgICAgICBzZWxmLl9leGNpbmZvID0g
ZXhjaW5mbwotICAgICAgICBpZiBoYXNhdHRyKHRiLCAndGJfbmV4dCcpOgotICAgICAgICAgICAg
ZGVmIGYoY3VyKToKLSAgICAgICAgICAgICAgICB3aGlsZSBjdXIgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuRW50cnkoY3VyLCBleGNpbmZvPWV4Y2luZm8pCi0g
ICAgICAgICAgICAgICAgICAgIGN1ciA9IGN1ci50Yl9uZXh0Ci0gICAgICAgICAgICBsaXN0Ll9f
aW5pdF9fKHNlbGYsIGYodGIpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbGlzdC5fX2lu
aXRfXyhzZWxmLCB0YikKLQotICAgIGRlZiBjdXQoc2VsZiwgcGF0aD1Ob25lLCBsaW5lbm89Tm9u
ZSwgZmlyc3RsaW5lbm89Tm9uZSwgZXhjbHVkZXBhdGg9Tm9uZSk6Ci0gICAgICAgICIiIiByZXR1
cm4gYSBUcmFjZWJhY2sgaW5zdGFuY2Ugd3JhcHBpbmcgcGFydCBvZiB0aGlzIFRyYWNlYmFjawot
Ci0gICAgICAgICAgICBieSBwcm92ZGluZyBhbnkgY29tYmluYXRpb24gb2YgcGF0aCwgbGluZW5v
IGFuZCBmaXJzdGxpbmVubywgdGhlCi0gICAgICAgICAgICBmaXJzdCBmcmFtZSB0byBzdGFydCB0
aGUgdG8tYmUtcmV0dXJuZWQgdHJhY2ViYWNrIGlzIGRldGVybWluZWQKLQotICAgICAgICAgICAg
dGhpcyBhbGxvd3MgY3V0dGluZyB0aGUgZmlyc3QgcGFydCBvZiBhIFRyYWNlYmFjayBpbnN0YW5j
ZSBlLmcuCi0gICAgICAgICAgICBmb3IgZm9ybWF0dGluZyByZWFzb25zIChyZW1vdmluZyBzb21l
IHVuaW50ZXJlc3RpbmcgYml0cyB0aGF0IGRlYWwKLSAgICAgICAgICAgIHdpdGggaGFuZGxpbmcg
b2YgdGhlIGV4Y2VwdGlvbi90cmFjZWJhY2spCi0gICAgICAgICIiIgotICAgICAgICBmb3IgeCBp
biBzZWxmOgotICAgICAgICAgICAgY29kZSA9IHguZnJhbWUuY29kZQotICAgICAgICAgICAgY29k
ZXBhdGggPSBjb2RlLnBhdGgKLSAgICAgICAgICAgIGlmICgocGF0aCBpcyBOb25lIG9yIGNvZGVw
YXRoID09IHBhdGgpIGFuZAotICAgICAgICAgICAgICAgIChleGNsdWRlcGF0aCBpcyBOb25lIG9y
IG5vdCBoYXNhdHRyKGNvZGVwYXRoLCAncmVsdG8nKSBvcgotICAgICAgICAgICAgICAgICBub3Qg
Y29kZXBhdGgucmVsdG8oZXhjbHVkZXBhdGgpKSBhbmQKLSAgICAgICAgICAgICAgICAobGluZW5v
IGlzIE5vbmUgb3IgeC5saW5lbm8gPT0gbGluZW5vKSBhbmQKLSAgICAgICAgICAgICAgICAgICAg
KGZpcnN0bGluZW5vIGlzIE5vbmUgb3IgeC5mcmFtZS5jb2RlLmZpcnN0bGluZW5vID09IGZpcnN0
bGluZW5vKSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRyYWNlYmFjayh4Ll9yYXdlbnRyeSwg
c2VsZi5fZXhjaW5mbykKLSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgIGRlZiBfX2dldGl0ZW1f
XyhzZWxmLCBrZXkpOgotICAgICAgICB2YWwgPSBzdXBlcihUcmFjZWJhY2ssIHNlbGYpLl9fZ2V0
aXRlbV9fKGtleSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShrZXksIHR5cGUoc2xpY2UoMCkpKToK
LSAgICAgICAgICAgIHZhbCA9IHNlbGYuX19jbGFzc19fKHZhbCkKLSAgICAgICAgcmV0dXJuIHZh
bAotCi0gICAgZGVmIGZpbHRlcihzZWxmLCBmbj1sYW1iZGEgeDogbm90IHguaXNoaWRkZW4oKSk6
Ci0gICAgICAgICIiIiByZXR1cm4gYSBUcmFjZWJhY2sgaW5zdGFuY2Ugd2l0aCBjZXJ0YWluIGl0
ZW1zIHJlbW92ZWQKLQotICAgICAgICAgICAgZm4gaXMgYSBmdW5jdGlvbiB0aGF0IGdldHMgYSBz
aW5nbGUgYXJndW1lbnQsIGEgVHJhY2ViYWNrRW50cnkKLSAgICAgICAgICAgIGluc3RhbmNlLCBh
bmQgc2hvdWxkIHJldHVybiBUcnVlIHdoZW4gdGhlIGl0ZW0gc2hvdWxkIGJlIGFkZGVkCi0gICAg
ICAgICAgICB0byB0aGUgVHJhY2ViYWNrLCBGYWxzZSB3aGVuIG5vdAotCi0gICAgICAgICAgICBi
eSBkZWZhdWx0IHRoaXMgcmVtb3ZlcyBhbGwgdGhlIFRyYWNlYmFja0VudHJpZXMgd2hpY2ggYXJl
IGhpZGRlbgotICAgICAgICAgICAgKHNlZSBpc2hpZGRlbigpIGFib3ZlKQotICAgICAgICAiIiIK
LSAgICAgICAgcmV0dXJuIFRyYWNlYmFjayhmaWx0ZXIoZm4sIHNlbGYpLCBzZWxmLl9leGNpbmZv
KQotCi0gICAgZGVmIGdldGNyYXNoZW50cnkoc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gbGFz
dCBub24taGlkZGVuIHRyYWNlYmFjayBlbnRyeSB0aGF0IGxlYWQKLSAgICAgICAgdG8gdGhlIGV4
Y2VwdGlvbiBvZiBhIHRyYWNlYmFjay4KLSAgICAgICAgIiIiCi0gICAgICAgIGZvciBpIGluIHJh
bmdlKC0xLCAtbGVuKHNlbGYpIC0gMSwgLTEpOgotICAgICAgICAgICAgZW50cnkgPSBzZWxmW2ld
Ci0gICAgICAgICAgICBpZiBub3QgZW50cnkuaXNoaWRkZW4oKToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZW50cnkKLSAgICAgICAgcmV0dXJuIHNlbGZbLTFdCi0KLSAgICBkZWYgcmVjdXJzaW9u
aW5kZXgoc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmcmFtZS9U
cmFjZWJhY2tFbnRyeSB3aGVyZSByZWN1cnNpb24KLSAgICAgICAgICAgIG9yaWdpbmF0ZXMgaWYg
YXBwcm9wcmlhdGUsIE5vbmUgaWYgbm8gcmVjdXJzaW9uIG9jY3VycmVkCi0gICAgICAgICIiIgot
ICAgICAgICBjYWNoZSA9IHt9Ci0gICAgICAgIGZvciBpLCBlbnRyeSBpbiBlbnVtZXJhdGUoc2Vs
Zik6Ci0gICAgICAgICAgICAjIGlkIGZvciB0aGUgY29kZS5yYXcgaXMgbmVlZGVkIHRvIHdvcmsg
YXJvdW5kCi0gICAgICAgICAgICAjIHRoZSBzdHJhbmdlIG1ldGFwcm9ncmFtbWluZyBpbiB0aGUg
ZGVjb3JhdG9yIGxpYiBmcm9tIHB5cGkKLSAgICAgICAgICAgICMgd2hpY2ggZ2VuZXJhdGVzIGNv
ZGUgb2JqZWN0cyB0aGF0IGhhdmUgaGFzaC92YWx1ZSBlcXVhbGl0eQotICAgICAgICAgICAgIyBY
WFggbmVlZHMgYSB0ZXN0Ci0gICAgICAgICAgICBrZXkgPSBlbnRyeS5mcmFtZS5jb2RlLnBhdGgs
IGlkKGVudHJ5LmZyYW1lLmNvZGUucmF3KSwgZW50cnkubGluZW5vCi0gICAgICAgICAgICAjIHBy
aW50ICJjaGVja2luZyBmb3IgcmVjdXJzaW9uIGF0Iiwga2V5Ci0gICAgICAgICAgICB2YWx1ZXMg
PSBjYWNoZS5zZXRkZWZhdWx0KGtleSwgW10pCi0gICAgICAgICAgICBpZiB2YWx1ZXM6Ci0gICAg
ICAgICAgICAgICAgZiA9IGVudHJ5LmZyYW1lCi0gICAgICAgICAgICAgICAgbG9jID0gZi5mX2xv
Y2FscwotICAgICAgICAgICAgICAgIGZvciBvdGhlcmxvYyBpbiB2YWx1ZXM6Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIGYuaXNfdHJ1ZShmLmV2YWwoY29fZXF1YWwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX19yZWN1cnNpb25jYWNoZV9sb2NhbHNfMT1sb2MsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19yZWN1cnNpb25jYWNoZV9s
b2NhbHNfMj1vdGhlcmxvYykpOgotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkKLSAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQoZW50cnkuZnJhbWUuZl9sb2NhbHMpCi0gICAgICAgIHJl
dHVybiBOb25lCi0KLQotY29fZXF1YWwgPSBjb21waWxlKCdfX3JlY3Vyc2lvbmNhY2hlX2xvY2Fs
c18xID09IF9fcmVjdXJzaW9uY2FjaGVfbG9jYWxzXzInLAotICAgICAgICAgICAgICAgICAgICc/
JywgJ2V2YWwnKQotCi0KLWNsYXNzIEV4Y2VwdGlvbkluZm8ob2JqZWN0KToKLSAgICAiIiIgd3Jh
cHMgc3lzLmV4Y19pbmZvKCkgb2JqZWN0cyBhbmQgb2ZmZXJzCi0gICAgICAgIGhlbHAgZm9yIG5h
dmlnYXRpbmcgdGhlIHRyYWNlYmFjay4KLSAgICAiIiIKLSAgICBfc3RyaXB0ZXh0ID0gJycKLSAg
ICBfYXNzZXJ0X3N0YXJ0X3JlcHIgPSAiQXNzZXJ0aW9uRXJyb3IodVwnYXNzZXJ0ICIgaWYgX1BZ
MiBlbHNlICJBc3NlcnRpb25FcnJvcihcJ2Fzc2VydCAiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgdHVwPU5vbmUsIGV4cHJpbmZvPU5vbmUpOgotICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29k
ZQotICAgICAgICBpZiB0dXAgaXMgTm9uZToKLSAgICAgICAgICAgIHR1cCA9IHN5cy5leGNfaW5m
bygpCi0gICAgICAgICAgICBpZiBleHByaW5mbyBpcyBOb25lIGFuZCBpc2luc3RhbmNlKHR1cFsx
XSwgQXNzZXJ0aW9uRXJyb3IpOgotICAgICAgICAgICAgICAgIGV4cHJpbmZvID0gZ2V0YXR0cih0
dXBbMV0sICdtc2cnLCBOb25lKQotICAgICAgICAgICAgICAgIGlmIGV4cHJpbmZvIGlzIE5vbmU6
Ci0gICAgICAgICAgICAgICAgICAgIGV4cHJpbmZvID0gcHkuaW8uc2FmZXJlcHIodHVwWzFdKQot
ICAgICAgICAgICAgICAgIGlmIGV4cHJpbmZvIGFuZCBleHByaW5mby5zdGFydHN3aXRoKHNlbGYu
X2Fzc2VydF9zdGFydF9yZXByKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc3RyaXB0ZXh0
ID0gJ0Fzc2VydGlvbkVycm9yOiAnCi0gICAgICAgIHNlbGYuX2V4Y2luZm8gPSB0dXAKLSAgICAg
ICAgIzogdGhlIGV4Y2VwdGlvbiBjbGFzcwotICAgICAgICBzZWxmLnR5cGUgPSB0dXBbMF0KLSAg
ICAgICAgIzogdGhlIGV4Y2VwdGlvbiBpbnN0YW5jZQotICAgICAgICBzZWxmLnZhbHVlID0gdHVw
WzFdCi0gICAgICAgICM6IHRoZSBleGNlcHRpb24gcmF3IHRyYWNlYmFjawotICAgICAgICBzZWxm
LnRiID0gdHVwWzJdCi0gICAgICAgICM6IHRoZSBleGNlcHRpb24gdHlwZSBuYW1lCi0gICAgICAg
IHNlbGYudHlwZW5hbWUgPSBzZWxmLnR5cGUuX19uYW1lX18KLSAgICAgICAgIzogdGhlIGV4Y2Vw
dGlvbiB0cmFjZWJhY2sgKF9weXRlc3QuX2NvZGUuVHJhY2ViYWNrIGluc3RhbmNlKQotICAgICAg
ICBzZWxmLnRyYWNlYmFjayA9IF9weXRlc3QuX2NvZGUuVHJhY2ViYWNrKHNlbGYudGIsIGV4Y2lu
Zm89cmVmKHNlbGYpKQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4g
IjxFeGNlcHRpb25JbmZvICVzIHRibGVuPSVkPiIgJSAoc2VsZi50eXBlbmFtZSwgbGVuKHNlbGYu
dHJhY2ViYWNrKSkKLQotICAgIGRlZiBleGNvbmx5KHNlbGYsIHRyeXNob3J0PUZhbHNlKToKLSAg
ICAgICAgIiIiIHJldHVybiB0aGUgZXhjZXB0aW9uIGFzIGEgc3RyaW5nCi0KLSAgICAgICAgICAg
IHdoZW4gJ3RyeXNob3J0JyByZXNvbHZlcyB0byBUcnVlLCBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBh
Ci0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLl9Bc3NlcnRpb25FcnJvciwgb25seSB0aGUgYWN0
dWFsIGV4Y2VwdGlvbiBwYXJ0IG9mCi0gICAgICAgICAgICB0aGUgZXhjZXB0aW9uIHJlcHJlc2Vu
dGF0aW9uIGlzIHJldHVybmVkIChzbyAnQXNzZXJ0aW9uRXJyb3I6ICcgaXMKLSAgICAgICAgICAg
IHJlbW92ZWQgZnJvbSB0aGUgYmVnaW5uaW5nKQotICAgICAgICAiIiIKLSAgICAgICAgbGluZXMg
PSBmb3JtYXRfZXhjZXB0aW9uX29ubHkoc2VsZi50eXBlLCBzZWxmLnZhbHVlKQotICAgICAgICB0
ZXh0ID0gJycuam9pbihsaW5lcykKLSAgICAgICAgdGV4dCA9IHRleHQucnN0cmlwKCkKLSAgICAg
ICAgaWYgdHJ5c2hvcnQ6Ci0gICAgICAgICAgICBpZiB0ZXh0LnN0YXJ0c3dpdGgoc2VsZi5fc3Ry
aXB0ZXh0KToKLSAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dFtsZW4oc2VsZi5fc3RyaXB0ZXh0
KTpdCi0gICAgICAgIHJldHVybiB0ZXh0Ci0KLSAgICBkZWYgZXJyaXNpbnN0YW5jZShzZWxmLCBl
eGMpOgotICAgICAgICAiIiIgcmV0dXJuIFRydWUgaWYgdGhlIGV4Y2VwdGlvbiBpcyBhbiBpbnN0
YW5jZSBvZiBleGMgIiIiCi0gICAgICAgIHJldHVybiBpc2luc3RhbmNlKHNlbGYudmFsdWUsIGV4
YykKLQotICAgIGRlZiBfZ2V0cmVwcmNyYXNoKHNlbGYpOgotICAgICAgICBleGNvbmx5ID0gc2Vs
Zi5leGNvbmx5KHRyeXNob3J0PVRydWUpCi0gICAgICAgIGVudHJ5ID0gc2VsZi50cmFjZWJhY2su
Z2V0Y3Jhc2hlbnRyeSgpCi0gICAgICAgIHBhdGgsIGxpbmVubyA9IGVudHJ5LmZyYW1lLmNvZGUu
cmF3LmNvX2ZpbGVuYW1lLCBlbnRyeS5saW5lbm8KLSAgICAgICAgcmV0dXJuIFJlcHJGaWxlTG9j
YXRpb24ocGF0aCwgbGluZW5vICsgMSwgZXhjb25seSkKLQotICAgIGRlZiBnZXRyZXByKHNlbGYs
IHNob3dsb2NhbHM9RmFsc2UsIHN0eWxlPSJsb25nIiwKLSAgICAgICAgICAgICAgICBhYnNwYXRo
PUZhbHNlLCB0YmZpbHRlcj1UcnVlLCBmdW5jYXJncz1GYWxzZSk6Ci0gICAgICAgICIiIiByZXR1
cm4gc3RyKClhYmxlIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgZXhjZXB0aW9uIGluZm8uCi0gICAg
ICAgICAgICBzaG93bG9jYWxzOiBzaG93IGxvY2FscyBwZXIgdHJhY2ViYWNrIGVudHJ5Ci0gICAg
ICAgICAgICBzdHlsZTogbG9uZ3xzaG9ydHxub3xuYXRpdmUgdHJhY2ViYWNrIHN0eWxlCi0gICAg
ICAgICAgICB0YmZpbHRlcjogaGlkZSBlbnRyaWVzICh3aGVyZSBfX3RyYWNlYmFja2hpZGVfXyBp
cyB0cnVlKQotCi0gICAgICAgICAgICBpbiBjYXNlIG9mIHN0eWxlPT1uYXRpdmUsIHRiZmlsdGVy
IGFuZCBzaG93bG9jYWxzIGlzIGlnbm9yZWQuCi0gICAgICAgICIiIgotICAgICAgICBpZiBzdHls
ZSA9PSAnbmF0aXZlJzoKLSAgICAgICAgICAgIHJldHVybiBSZXByRXhjZXB0aW9uSW5mbyhSZXBy
VHJhY2ViYWNrTmF0aXZlKAotICAgICAgICAgICAgICAgIHB5LnN0ZC50cmFjZWJhY2suZm9ybWF0
X2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgc2VsZi50eXBlLAotICAgICAgICAgICAg
ICAgICAgICBzZWxmLnZhbHVlLAotICAgICAgICAgICAgICAgICAgICBzZWxmLnRyYWNlYmFja1sw
XS5fcmF3ZW50cnksCi0gICAgICAgICAgICAgICAgKSksIHNlbGYuX2dldHJlcHJjcmFzaCgpKQot
Ci0gICAgICAgIGZtdCA9IEZvcm1hdHRlZEV4Y2luZm8oc2hvd2xvY2Fscz1zaG93bG9jYWxzLCBz
dHlsZT1zdHlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNwYXRoPWFic3Bh
dGgsIHRiZmlsdGVyPXRiZmlsdGVyLCBmdW5jYXJncz1mdW5jYXJncykKLSAgICAgICAgcmV0dXJu
IGZtdC5yZXByX2V4Y2luZm8oc2VsZikKLQotICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAg
ICBlbnRyeSA9IHNlbGYudHJhY2ViYWNrWy0xXQotICAgICAgICBsb2MgPSBSZXByRmlsZUxvY2F0
aW9uKGVudHJ5LnBhdGgsIGVudHJ5LmxpbmVubyArIDEsIHNlbGYuZXhjb25seSgpKQotICAgICAg
ICByZXR1cm4gc3RyKGxvYykKLQotICAgIGRlZiBfX3VuaWNvZGVfXyhzZWxmKToKLSAgICAgICAg
ZW50cnkgPSBzZWxmLnRyYWNlYmFja1stMV0KLSAgICAgICAgbG9jID0gUmVwckZpbGVMb2NhdGlv
bihlbnRyeS5wYXRoLCBlbnRyeS5saW5lbm8gKyAxLCBzZWxmLmV4Y29ubHkoKSkKLSAgICAgICAg
cmV0dXJuIHVuaWNvZGUobG9jKQotCi0gICAgZGVmIG1hdGNoKHNlbGYsIHJlZ2V4cCk6Ci0gICAg
ICAgICIiIgotICAgICAgICBNYXRjaCB0aGUgcmVndWxhciBleHByZXNzaW9uICdyZWdleHAnIG9u
IHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YKLSAgICAgICAgdGhlIGV4Y2VwdGlvbi4gSWYg
aXQgbWF0Y2hlcyB0aGVuIFRydWUgaXMgcmV0dXJuZWQgKHNvIHRoYXQgaXQgaXMKLSAgICAgICAg
cG9zc2libGUgdG8gd3JpdGUgJ2Fzc2VydCBleGNpbmZvLm1hdGNoKCknKS4gSWYgaXQgZG9lc24n
dCBtYXRjaCBhbgotICAgICAgICBBc3NlcnRpb25FcnJvciBpcyByYWlzZWQuCi0gICAgICAgICIi
IgotICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgaWYgbm90IHJlLnNl
YXJjaChyZWdleHAsIHN0cihzZWxmLnZhbHVlKSk6Ci0gICAgICAgICAgICBhc3NlcnQgMCwgIlBh
dHRlcm4gJ3swIXN9JyBub3QgZm91bmQgaW4gJ3sxIXN9JyIuZm9ybWF0KAotICAgICAgICAgICAg
ICAgIHJlZ2V4cCwgc2VsZi52YWx1ZSkKLSAgICAgICAgcmV0dXJuIFRydWUKLQotCi1jbGFzcyBG
b3JtYXR0ZWRFeGNpbmZvKG9iamVjdCk6Ci0gICAgIiIiIHByZXNlbnRpbmcgaW5mb3JtYXRpb24g
YWJvdXQgZmFpbGluZyBGdW5jdGlvbnMgYW5kIEdlbmVyYXRvcnMuICIiIgotICAgICMgZm9yIHRy
YWNlYmFjayBlbnRyaWVzCi0gICAgZmxvd19tYXJrZXIgPSAiPiIKLSAgICBmYWlsX21hcmtlciA9
ICJFIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNob3dsb2NhbHM9RmFsc2UsIHN0eWxlPSJs
b25nIiwgYWJzcGF0aD1UcnVlLCB0YmZpbHRlcj1UcnVlLCBmdW5jYXJncz1GYWxzZSk6Ci0gICAg
ICAgIHNlbGYuc2hvd2xvY2FscyA9IHNob3dsb2NhbHMKLSAgICAgICAgc2VsZi5zdHlsZSA9IHN0
eWxlCi0gICAgICAgIHNlbGYudGJmaWx0ZXIgPSB0YmZpbHRlcgotICAgICAgICBzZWxmLmZ1bmNh
cmdzID0gZnVuY2FyZ3MKLSAgICAgICAgc2VsZi5hYnNwYXRoID0gYWJzcGF0aAotICAgICAgICBz
ZWxmLmFzdGNhY2hlID0ge30KLQotICAgIGRlZiBfZ2V0aW5kZW50KHNlbGYsIHNvdXJjZSk6Ci0g
ICAgICAgICMgZmlndXJlIG91dCBpbmRlbnQgZm9yIGdpdmVuIHNvdXJjZQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBzID0gc3RyKHNvdXJjZS5nZXRzdGF0ZW1lbnQobGVuKHNvdXJjZSkgLSAx
KSkKLSAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgcmFpc2UK
LSAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgcyA9IHN0cihzb3VyY2VbLTFdKQotICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJy
dXB0OgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBleGNlcHQ6ICAjIG5vcWEK
LSAgICAgICAgICAgICAgICByZXR1cm4gMAotICAgICAgICByZXR1cm4gNCArIChsZW4ocykgLSBs
ZW4ocy5sc3RyaXAoKSkpCi0KLSAgICBkZWYgX2dldGVudHJ5c291cmNlKHNlbGYsIGVudHJ5KToK
LSAgICAgICAgc291cmNlID0gZW50cnkuZ2V0c291cmNlKHNlbGYuYXN0Y2FjaGUpCi0gICAgICAg
IGlmIHNvdXJjZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNvdXJjZSA9IHNvdXJjZS5kZWlu
ZGVudCgpCi0gICAgICAgIHJldHVybiBzb3VyY2UKLQotICAgIGRlZiBfc2FmZXJlcHIoc2VsZiwg
b2JqKToKLSAgICAgICAgcmV0dXJuIHB5LmlvLnNhZmVyZXByKG9iaikKLQotICAgIGRlZiByZXBy
X2FyZ3Moc2VsZiwgZW50cnkpOgotICAgICAgICBpZiBzZWxmLmZ1bmNhcmdzOgotICAgICAgICAg
ICAgYXJncyA9IFtdCi0gICAgICAgICAgICBmb3IgYXJnbmFtZSwgYXJndmFsdWUgaW4gZW50cnku
ZnJhbWUuZ2V0YXJncyh2YXI9VHJ1ZSk6Ci0gICAgICAgICAgICAgICAgYXJncy5hcHBlbmQoKGFy
Z25hbWUsIHNlbGYuX3NhZmVyZXByKGFyZ3ZhbHVlKSkpCi0gICAgICAgICAgICByZXR1cm4gUmVw
ckZ1bmNBcmdzKGFyZ3MpCi0KLSAgICBkZWYgZ2V0X3NvdXJjZShzZWxmLCBzb3VyY2UsIGxpbmVf
aW5kZXg9LTEsIGV4Y2luZm89Tm9uZSwgc2hvcnQ9RmFsc2UpOgotICAgICAgICAiIiIgcmV0dXJu
IGZvcm1hdHRlZCBhbmQgbWFya2VkIHVwIHNvdXJjZSBsaW5lcy4gIiIiCi0gICAgICAgIGltcG9y
dCBfcHl0ZXN0Ll9jb2RlCi0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgaWYgc291cmNlIGlz
IE5vbmUgb3IgbGluZV9pbmRleCA+PSBsZW4oc291cmNlLmxpbmVzKToKLSAgICAgICAgICAgIHNv
dXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKCI/Pz8iKQotICAgICAgICAgICAgbGluZV9pbmRl
eCA9IDAKLSAgICAgICAgaWYgbGluZV9pbmRleCA8IDA6Ci0gICAgICAgICAgICBsaW5lX2luZGV4
ICs9IGxlbihzb3VyY2UpCi0gICAgICAgIHNwYWNlX3ByZWZpeCA9ICIgICAgIgotICAgICAgICBp
ZiBzaG9ydDoKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZChzcGFjZV9wcmVmaXggKyBzb3VyY2Uu
bGluZXNbbGluZV9pbmRleF0uc3RyaXAoKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZv
ciBsaW5lIGluIHNvdXJjZS5saW5lc1s6bGluZV9pbmRleF06Ci0gICAgICAgICAgICAgICAgbGlu
ZXMuYXBwZW5kKHNwYWNlX3ByZWZpeCArIGxpbmUpCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQo
c2VsZi5mbG93X21hcmtlciArICIgICAiICsgc291cmNlLmxpbmVzW2xpbmVfaW5kZXhdKQotICAg
ICAgICAgICAgZm9yIGxpbmUgaW4gc291cmNlLmxpbmVzW2xpbmVfaW5kZXggKyAxOl06Ci0gICAg
ICAgICAgICAgICAgbGluZXMuYXBwZW5kKHNwYWNlX3ByZWZpeCArIGxpbmUpCi0gICAgICAgIGlm
IGV4Y2luZm8gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBpbmRlbnQgPSA0IGlmIHNob3J0IGVs
c2Ugc2VsZi5fZ2V0aW5kZW50KHNvdXJjZSkKLSAgICAgICAgICAgIGxpbmVzLmV4dGVuZChzZWxm
LmdldF9leGNvbmx5KGV4Y2luZm8sIGluZGVudD1pbmRlbnQsIG1hcmthbGw9VHJ1ZSkpCi0gICAg
ICAgIHJldHVybiBsaW5lcwotCi0gICAgZGVmIGdldF9leGNvbmx5KHNlbGYsIGV4Y2luZm8sIGlu
ZGVudD00LCBtYXJrYWxsPUZhbHNlKToKLSAgICAgICAgbGluZXMgPSBbXQotICAgICAgICBpbmRl
bnQgPSAiICIgKiBpbmRlbnQKLSAgICAgICAgIyBnZXQgdGhlIHJlYWwgZXhjZXB0aW9uIGluZm9y
bWF0aW9uIG91dAotICAgICAgICBleGxpbmVzID0gZXhjaW5mby5leGNvbmx5KHRyeXNob3J0PVRy
dWUpLnNwbGl0KCdcbicpCi0gICAgICAgIGZhaWxpbmRlbnQgPSBzZWxmLmZhaWxfbWFya2VyICsg
aW5kZW50WzE6XQotICAgICAgICBmb3IgbGluZSBpbiBleGxpbmVzOgotICAgICAgICAgICAgbGlu
ZXMuYXBwZW5kKGZhaWxpbmRlbnQgKyBsaW5lKQotICAgICAgICAgICAgaWYgbm90IG1hcmthbGw6
Ci0gICAgICAgICAgICAgICAgZmFpbGluZGVudCA9IGluZGVudAotICAgICAgICByZXR1cm4gbGlu
ZXMKLQotICAgIGRlZiByZXByX2xvY2FscyhzZWxmLCBsb2NhbHMpOgotICAgICAgICBpZiBzZWxm
LnNob3dsb2NhbHM6Ci0gICAgICAgICAgICBsaW5lcyA9IFtdCi0gICAgICAgICAgICBrZXlzID0g
W2xvYyBmb3IgbG9jIGluIGxvY2FscyBpZiBsb2NbMF0gIT0gIkAiXQotICAgICAgICAgICAga2V5
cy5zb3J0KCkKLSAgICAgICAgICAgIGZvciBuYW1lIGluIGtleXM6Ci0gICAgICAgICAgICAgICAg
dmFsdWUgPSBsb2NhbHNbbmFtZV0KLSAgICAgICAgICAgICAgICBpZiBuYW1lID09ICdfX2J1aWx0
aW5zX18nOgotICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIl9fYnVpbHRpbnNfXyA9
IDxidWlsdGlucz4iKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg
ICMgVGhpcyBmb3JtYXR0aW5nIGNvdWxkIGFsbCBiZSBoYW5kbGVkIGJ5IHRoZQotICAgICAgICAg
ICAgICAgICAgICAjIF9yZXByKCkgZnVuY3Rpb24sIHdoaWNoIGlzIG9ubHkgcmVwcmxpYi5SZXBy
IGluCi0gICAgICAgICAgICAgICAgICAgICMgZGlzZ3Vpc2UsIHNvIGlzIHZlcnkgY29uZmlndXJh
YmxlLgotICAgICAgICAgICAgICAgICAgICBzdHJfcmVwciA9IHNlbGYuX3NhZmVyZXByKHZhbHVl
KQotICAgICAgICAgICAgICAgICAgICAjIGlmIGxlbihzdHJfcmVwcikgPCA3MCBvciBub3QgaXNp
bnN0YW5jZSh2YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobGlzdCwgdHVwbGUsIGRpY3QpKToKLSAgICAgICAgICAgICAgICAgICAgbGluZXMu
YXBwZW5kKCIlLTEwcyA9ICVzIiAlIChuYW1lLCBzdHJfcmVwcikpCi0gICAgICAgICAgICAgICAg
ICAgICMgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgIyAgICBzZWxmLl9saW5lKCIlLTEwcyA9
XFwiICUgKG5hbWUsKSkKLSAgICAgICAgICAgICAgICAgICAgIyAgICAjIFhYWAotICAgICAgICAg
ICAgICAgICAgICAjICAgIHB5LnN0ZC5wcHJpbnQucHByaW50KHZhbHVlLCBzdHJlYW09c2VsZi5l
eGNpbmZvd3JpdGVyKQotICAgICAgICAgICAgcmV0dXJuIFJlcHJMb2NhbHMobGluZXMpCi0KLSAg
ICBkZWYgcmVwcl90cmFjZWJhY2tfZW50cnkoc2VsZiwgZW50cnksIGV4Y2luZm89Tm9uZSk6Ci0g
ICAgICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0gICAgICAgIHNvdXJjZSA9IHNlbGYuX2dldGVu
dHJ5c291cmNlKGVudHJ5KQotICAgICAgICBpZiBzb3VyY2UgaXMgTm9uZToKLSAgICAgICAgICAg
IHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKCI/Pz8iKQotICAgICAgICAgICAgbGluZV9p
bmRleCA9IDAKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgICMgZW50cnkuZ2V0Zmlyc3RsaW5l
c291cmNlKCkgY2FuIGJlIC0xLCBzaG91bGQgYmUgMCBvbiBqeXRob24KLSAgICAgICAgICAgIGxp
bmVfaW5kZXggPSBlbnRyeS5saW5lbm8gLSBtYXgoZW50cnkuZ2V0Zmlyc3RsaW5lc291cmNlKCks
IDApCi0KLSAgICAgICAgbGluZXMgPSBbXQotICAgICAgICBzdHlsZSA9IGVudHJ5Ll9yZXByX3N0
eWxlCi0gICAgICAgIGlmIHN0eWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzdHlsZSA9IHNlbGYu
c3R5bGUKLSAgICAgICAgaWYgc3R5bGUgaW4gKCJzaG9ydCIsICJsb25nIik6Ci0gICAgICAgICAg
ICBzaG9ydCA9IHN0eWxlID09ICJzaG9ydCIKLSAgICAgICAgICAgIHJlcHJhcmdzID0gc2VsZi5y
ZXByX2FyZ3MoZW50cnkpIGlmIG5vdCBzaG9ydCBlbHNlIE5vbmUKLSAgICAgICAgICAgIHMgPSBz
ZWxmLmdldF9zb3VyY2Uoc291cmNlLCBsaW5lX2luZGV4LCBleGNpbmZvLCBzaG9ydD1zaG9ydCkK
LSAgICAgICAgICAgIGxpbmVzLmV4dGVuZChzKQotICAgICAgICAgICAgaWYgc2hvcnQ6Ci0gICAg
ICAgICAgICAgICAgbWVzc2FnZSA9ICJpbiAlcyIgJSAoZW50cnkubmFtZSkKLSAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGV4Y2luZm8gYW5kIGV4Y2luZm8udHlw
ZW5hbWUgb3IgIiIKLSAgICAgICAgICAgIHBhdGggPSBzZWxmLl9tYWtlcGF0aChlbnRyeS5wYXRo
KQotICAgICAgICAgICAgZmlsZWxvY3JlcHIgPSBSZXByRmlsZUxvY2F0aW9uKHBhdGgsIGVudHJ5
LmxpbmVubyArIDEsIG1lc3NhZ2UpCi0gICAgICAgICAgICBsb2NhbHNyZXByID0gTm9uZQotICAg
ICAgICAgICAgaWYgbm90IHNob3J0OgotICAgICAgICAgICAgICAgIGxvY2Fsc3JlcHIgPSBzZWxm
LnJlcHJfbG9jYWxzKGVudHJ5LmxvY2FscykKLSAgICAgICAgICAgIHJldHVybiBSZXByRW50cnko
bGluZXMsIHJlcHJhcmdzLCBsb2NhbHNyZXByLCBmaWxlbG9jcmVwciwgc3R5bGUpCi0gICAgICAg
IGlmIGV4Y2luZm86Ci0gICAgICAgICAgICBsaW5lcy5leHRlbmQoc2VsZi5nZXRfZXhjb25seShl
eGNpbmZvLCBpbmRlbnQ9NCkpCi0gICAgICAgIHJldHVybiBSZXByRW50cnkobGluZXMsIE5vbmUs
IE5vbmUsIE5vbmUsIHN0eWxlKQotCi0gICAgZGVmIF9tYWtlcGF0aChzZWxmLCBwYXRoKToKLSAg
ICAgICAgaWYgbm90IHNlbGYuYWJzcGF0aDoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICBucCA9IHB5LnBhdGgubG9jYWwoKS5iZXN0cmVscGF0aChwYXRoKQotICAgICAgICAgICAg
ZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHBhdGgKLSAgICAgICAgICAg
IGlmIGxlbihucCkgPCBsZW4oc3RyKHBhdGgpKToKLSAgICAgICAgICAgICAgICBwYXRoID0gbnAK
LSAgICAgICAgcmV0dXJuIHBhdGgKLQotICAgIGRlZiByZXByX3RyYWNlYmFjayhzZWxmLCBleGNp
bmZvKToKLSAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKLSAgICAgICAgaWYg
c2VsZi50YmZpbHRlcjoKLSAgICAgICAgICAgIHRyYWNlYmFjayA9IHRyYWNlYmFjay5maWx0ZXIo
KQotCi0gICAgICAgIGlmIGlzX3JlY3Vyc2lvbl9lcnJvcihleGNpbmZvKToKLSAgICAgICAgICAg
IHRyYWNlYmFjaywgZXh0cmFsaW5lID0gc2VsZi5fdHJ1bmNhdGVfcmVjdXJzaXZlX3RyYWNlYmFj
ayh0cmFjZWJhY2spCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBleHRyYWxpbmUgPSBOb25l
Ci0KLSAgICAgICAgbGFzdCA9IHRyYWNlYmFja1stMV0KLSAgICAgICAgZW50cmllcyA9IFtdCi0g
ICAgICAgIGZvciBpbmRleCwgZW50cnkgaW4gZW51bWVyYXRlKHRyYWNlYmFjayk6Ci0gICAgICAg
ICAgICBlaW5mbyA9IChsYXN0ID09IGVudHJ5KSBhbmQgZXhjaW5mbyBvciBOb25lCi0gICAgICAg
ICAgICByZXByZW50cnkgPSBzZWxmLnJlcHJfdHJhY2ViYWNrX2VudHJ5KGVudHJ5LCBlaW5mbykK
LSAgICAgICAgICAgIGVudHJpZXMuYXBwZW5kKHJlcHJlbnRyeSkKLSAgICAgICAgcmV0dXJuIFJl
cHJUcmFjZWJhY2soZW50cmllcywgZXh0cmFsaW5lLCBzdHlsZT1zZWxmLnN0eWxlKQotCi0gICAg
ZGVmIF90cnVuY2F0ZV9yZWN1cnNpdmVfdHJhY2ViYWNrKHNlbGYsIHRyYWNlYmFjayk6Ci0gICAg
ICAgICIiIgotICAgICAgICBUcnVuY2F0ZSB0aGUgZ2l2ZW4gcmVjdXJzaXZlIHRyYWNlYmFjayB0
cnlpbmcgdG8gZmluZCB0aGUgc3RhcnRpbmcgcG9pbnQKLSAgICAgICAgb2YgdGhlIHJlY3Vyc2lv
bi4KLQotICAgICAgICBUaGUgZGV0ZWN0aW9uIGlzIGRvbmUgYnkgZ29pbmcgdGhyb3VnaCBlYWNo
IHRyYWNlYmFjayBlbnRyeSBhbmQgZmluZGluZyB0aGUKLSAgICAgICAgcG9pbnQgaW4gd2hpY2gg
dGhlIGxvY2FscyBvZiB0aGUgZnJhbWUgYXJlIGVxdWFsIHRvIHRoZSBsb2NhbHMgb2YgYSBwcmV2
aW91cyBmcmFtZSAoc2VlIGBgcmVjdXJzaW9uaW5kZXgoKWBgLgotCi0gICAgICAgIEhhbmRsZSB0
aGUgc2l0dWF0aW9uIHdoZXJlIHRoZSByZWN1cnNpb24gcHJvY2VzcyBtaWdodCByYWlzZSBhbiBl
eGNlcHRpb24gKGZvciBleGFtcGxlCi0gICAgICAgIGNvbXBhcmluZyBudW1weSBhcnJheXMgdXNp
bmcgZXF1YWxpdHkgcmFpc2VzIGEgVHlwZUVycm9yKSwgaW4gd2hpY2ggY2FzZSB3ZSBkbyBvdXIg
YmVzdCB0bwotICAgICAgICB3YXJuIHRoZSB1c2VyIG9mIHRoZSBlcnJvciBhbmQgc2hvdyBhIGxp
bWl0ZWQgdHJhY2ViYWNrLgotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
cmVjdXJzaW9uaW5kZXggPSB0cmFjZWJhY2sucmVjdXJzaW9uaW5kZXgoKQotICAgICAgICBleGNl
cHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBtYXhfZnJhbWVzID0gMTAKLSAgICAgICAg
ICAgIGV4dHJhbGluZSA9ICgKLSAgICAgICAgICAgICAgICAnISEhIFJlY3Vyc2lvbiBlcnJvciBk
ZXRlY3RlZCwgYnV0IGFuIGVycm9yIG9jY3VycmVkIGxvY2F0aW5nIHRoZSBvcmlnaW4gb2YgcmVj
dXJzaW9uLlxuJwotICAgICAgICAgICAgICAgICcgIFRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uIGhh
cHBlbmVkIHdoZW4gY29tcGFyaW5nIGxvY2FscyBpbiB0aGUgc3RhY2sgZnJhbWU6XG4nCi0gICAg
ICAgICAgICAgICAgJyAgICB7ZXhjX3R5cGV9OiB7ZXhjX21zZ31cbicKLSAgICAgICAgICAgICAg
ICAnICBEaXNwbGF5aW5nIGZpcnN0IGFuZCBsYXN0IHttYXhfZnJhbWVzfSBzdGFjayBmcmFtZXMg
b3V0IG9mIHt0b3RhbH0uJwotICAgICAgICAgICAgKS5mb3JtYXQoZXhjX3R5cGU9dHlwZShlKS5f
X25hbWVfXywgZXhjX21zZz1zYWZlX3N0cihlKSwgbWF4X2ZyYW1lcz1tYXhfZnJhbWVzLCB0b3Rh
bD1sZW4odHJhY2ViYWNrKSkKLSAgICAgICAgICAgIHRyYWNlYmFjayA9IHRyYWNlYmFja1s6bWF4
X2ZyYW1lc10gKyB0cmFjZWJhY2tbLW1heF9mcmFtZXM6XQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgaWYgcmVjdXJzaW9uaW5kZXggaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgZXh0
cmFsaW5lID0gIiEhISBSZWN1cnNpb24gZGV0ZWN0ZWQgKHNhbWUgbG9jYWxzICYgcG9zaXRpb24p
IgotICAgICAgICAgICAgICAgIHRyYWNlYmFjayA9IHRyYWNlYmFja1s6cmVjdXJzaW9uaW5kZXgg
KyAxXQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBleHRyYWxpbmUgPSBOb25l
Ci0KLSAgICAgICAgcmV0dXJuIHRyYWNlYmFjaywgZXh0cmFsaW5lCi0KLSAgICBkZWYgcmVwcl9l
eGNpbmZvKHNlbGYsIGV4Y2luZm8pOgotICAgICAgICBpZiBfUFkyOgotICAgICAgICAgICAgcmVw
cnRyYWNlYmFjayA9IHNlbGYucmVwcl90cmFjZWJhY2soZXhjaW5mbykKLSAgICAgICAgICAgIHJl
cHJjcmFzaCA9IGV4Y2luZm8uX2dldHJlcHJjcmFzaCgpCi0KLSAgICAgICAgICAgIHJldHVybiBS
ZXByRXhjZXB0aW9uSW5mbyhyZXBydHJhY2ViYWNrLCByZXByY3Jhc2gpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICByZXByX2NoYWluID0gW10KLSAgICAgICAgICAgIGUgPSBleGNpbmZvLnZh
bHVlCi0gICAgICAgICAgICBkZXNjciA9IE5vbmUKLSAgICAgICAgICAgIHdoaWxlIGUgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYgZXhjaW5mbzoKLSAgICAgICAgICAgICAgICAgICAg
cmVwcnRyYWNlYmFjayA9IHNlbGYucmVwcl90cmFjZWJhY2soZXhjaW5mbykKLSAgICAgICAgICAg
ICAgICAgICAgcmVwcmNyYXNoID0gZXhjaW5mby5fZ2V0cmVwcmNyYXNoKCkKLSAgICAgICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAjIGZhbGxiYWNrIHRvIG5hdGl2ZSByZXBy
IGlmIHRoZSBleGNlcHRpb24gZG9lc24ndCBoYXZlIGEgdHJhY2ViYWNrOgotICAgICAgICAgICAg
ICAgICAgICAjIEV4Y2VwdGlvbkluZm8gb2JqZWN0cyByZXF1aXJlIGEgZnVsbCB0cmFjZWJhY2sg
dG8gd29yawotICAgICAgICAgICAgICAgICAgICByZXBydHJhY2ViYWNrID0gUmVwclRyYWNlYmFj
a05hdGl2ZShweS5zdGQudHJhY2ViYWNrLmZvcm1hdF9leGNlcHRpb24odHlwZShlKSwgZSwgTm9u
ZSkpCi0gICAgICAgICAgICAgICAgICAgIHJlcHJjcmFzaCA9IE5vbmUKLQotICAgICAgICAgICAg
ICAgIHJlcHJfY2hhaW4gKz0gWyhyZXBydHJhY2ViYWNrLCByZXByY3Jhc2gsIGRlc2NyKV0KLSAg
ICAgICAgICAgICAgICBpZiBlLl9fY2F1c2VfXyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAg
ICAgICAgZSA9IGUuX19jYXVzZV9fCi0gICAgICAgICAgICAgICAgICAgIGV4Y2luZm8gPSBFeGNl
cHRpb25JbmZvKCh0eXBlKGUpLCBlLCBlLl9fdHJhY2ViYWNrX18pKSBpZiBlLl9fdHJhY2ViYWNr
X18gZWxzZSBOb25lCi0gICAgICAgICAgICAgICAgICAgIGRlc2NyID0gJ1RoZSBhYm92ZSBleGNl
cHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRpb246Jwot
ICAgICAgICAgICAgICAgIGVsaWYgKGUuX19jb250ZXh0X18gaXMgbm90IE5vbmUgYW5kIG5vdCBl
Ll9fc3VwcHJlc3NfY29udGV4dF9fKToKLSAgICAgICAgICAgICAgICAgICAgZSA9IGUuX19jb250
ZXh0X18KLSAgICAgICAgICAgICAgICAgICAgZXhjaW5mbyA9IEV4Y2VwdGlvbkluZm8oKHR5cGUo
ZSksIGUsIGUuX190cmFjZWJhY2tfXykpIGlmIGUuX190cmFjZWJhY2tfXyBlbHNlIE5vbmUKLSAg
ICAgICAgICAgICAgICAgICAgZGVzY3IgPSAnRHVyaW5nIGhhbmRsaW5nIG9mIHRoZSBhYm92ZSBl
eGNlcHRpb24sIGFub3RoZXIgZXhjZXB0aW9uIG9jY3VycmVkOicKLSAgICAgICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICAgICBlID0gTm9uZQotICAgICAgICAgICAgcmVwcl9jaGFp
bi5yZXZlcnNlKCkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb25DaGFpblJlcHIocmVwcl9j
aGFpbikKLQotCi1jbGFzcyBUZXJtaW5hbFJlcHIob2JqZWN0KToKLSAgICBkZWYgX19zdHJfXyhz
ZWxmKToKLSAgICAgICAgcyA9IHNlbGYuX191bmljb2RlX18oKQotICAgICAgICBpZiBfUFkyOgot
ICAgICAgICAgICAgcyA9IHMuZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgIHJldHVybiBzCi0KLSAg
ICBkZWYgX191bmljb2RlX18oc2VsZik6Ci0gICAgICAgICMgRllJIHRoaXMgaXMgY2FsbGVkIGZy
b20gcHl0ZXN0LXhkaXN0J3Mgc2VyaWFsaXphdGlvbiBvZiBleGNlcHRpb24KLSAgICAgICAgIyBp
bmZvcm1hdGlvbi4KLSAgICAgICAgaW8gPSBweS5pby5UZXh0SU8oKQotICAgICAgICB0dyA9IHB5
LmlvLlRlcm1pbmFsV3JpdGVyKGZpbGU9aW8pCi0gICAgICAgIHNlbGYudG90ZXJtaW5hbCh0dykK
LSAgICAgICAgcmV0dXJuIGlvLmdldHZhbHVlKCkuc3RyaXAoKQotCi0gICAgZGVmIF9fcmVwcl9f
KHNlbGYpOgotICAgICAgICByZXR1cm4gIjwlcyBpbnN0YW5jZSBhdCAlMHg+IiAlIChzZWxmLl9f
Y2xhc3NfXywgaWQoc2VsZikpCi0KLQotY2xhc3MgRXhjZXB0aW9uUmVwcihUZXJtaW5hbFJlcHIp
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5zZWN0aW9ucyA9IFtdCi0K
LSAgICBkZWYgYWRkc2VjdGlvbihzZWxmLCBuYW1lLCBjb250ZW50LCBzZXA9Ii0iKToKLSAgICAg
ICAgc2VsZi5zZWN0aW9ucy5hcHBlbmQoKG5hbWUsIGNvbnRlbnQsIHNlcCkpCi0KLSAgICBkZWYg
dG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0gICAgICAgIGZvciBuYW1lLCBjb250ZW50LCBzZXAgaW4g
c2VsZi5zZWN0aW9uczoKLSAgICAgICAgICAgIHR3LnNlcChzZXAsIG5hbWUpCi0gICAgICAgICAg
ICB0dy5saW5lKGNvbnRlbnQpCi0KLQotY2xhc3MgRXhjZXB0aW9uQ2hhaW5SZXByKEV4Y2VwdGlv
blJlcHIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjaGFpbik6Ci0gICAgICAgIHN1cGVyKEV4
Y2VwdGlvbkNoYWluUmVwciwgc2VsZikuX19pbml0X18oKQotICAgICAgICBzZWxmLmNoYWluID0g
Y2hhaW4KLSAgICAgICAgIyByZXByY3Jhc2ggYW5kIHJlcHJ0cmFjZWJhY2sgb2YgdGhlIG91dGVy
bW9zdCAodGhlIG5ld2VzdCkgZXhjZXB0aW9uCi0gICAgICAgICMgaW4gdGhlIGNoYWluCi0gICAg
ICAgIHNlbGYucmVwcnRyYWNlYmFjayA9IGNoYWluWy0xXVswXQotICAgICAgICBzZWxmLnJlcHJj
cmFzaCA9IGNoYWluWy0xXVsxXQotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgotICAg
ICAgICBmb3IgZWxlbWVudCBpbiBzZWxmLmNoYWluOgotICAgICAgICAgICAgZWxlbWVudFswXS50
b3Rlcm1pbmFsKHR3KQotICAgICAgICAgICAgaWYgZWxlbWVudFsyXSBpcyBub3QgTm9uZToKLSAg
ICAgICAgICAgICAgICB0dy5saW5lKCIiKQotICAgICAgICAgICAgICAgIHR3LmxpbmUoZWxlbWVu
dFsyXSwgeWVsbG93PVRydWUpCi0gICAgICAgIHN1cGVyKEV4Y2VwdGlvbkNoYWluUmVwciwgc2Vs
ZikudG90ZXJtaW5hbCh0dykKLQotCi1jbGFzcyBSZXByRXhjZXB0aW9uSW5mbyhFeGNlcHRpb25S
ZXByKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVwcnRyYWNlYmFjaywgcmVwcmNyYXNoKToK
LSAgICAgICAgc3VwZXIoUmVwckV4Y2VwdGlvbkluZm8sIHNlbGYpLl9faW5pdF9fKCkKLSAgICAg
ICAgc2VsZi5yZXBydHJhY2ViYWNrID0gcmVwcnRyYWNlYmFjawotICAgICAgICBzZWxmLnJlcHJj
cmFzaCA9IHJlcHJjcmFzaAotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgotICAgICAg
ICBzZWxmLnJlcHJ0cmFjZWJhY2sudG90ZXJtaW5hbCh0dykKLSAgICAgICAgc3VwZXIoUmVwckV4
Y2VwdGlvbkluZm8sIHNlbGYpLnRvdGVybWluYWwodHcpCi0KLQotY2xhc3MgUmVwclRyYWNlYmFj
ayhUZXJtaW5hbFJlcHIpOgotICAgIGVudHJ5c2VwID0gIl8gIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlcHJlbnRyaWVzLCBleHRyYWxpbmUsIHN0eWxlKToKLSAgICAgICAgc2VsZi5yZXBy
ZW50cmllcyA9IHJlcHJlbnRyaWVzCi0gICAgICAgIHNlbGYuZXh0cmFsaW5lID0gZXh0cmFsaW5l
Ci0gICAgICAgIHNlbGYuc3R5bGUgPSBzdHlsZQotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwg
dHcpOgotICAgICAgICAjIHRoZSBlbnRyaWVzIG1pZ2h0IGhhdmUgZGlmZmVyZW50IHN0eWxlcwot
ICAgICAgICBmb3IgaSwgZW50cnkgaW4gZW51bWVyYXRlKHNlbGYucmVwcmVudHJpZXMpOgotICAg
ICAgICAgICAgaWYgZW50cnkuc3R5bGUgPT0gImxvbmciOgotICAgICAgICAgICAgICAgIHR3Lmxp
bmUoIiIpCi0gICAgICAgICAgICBlbnRyeS50b3Rlcm1pbmFsKHR3KQotICAgICAgICAgICAgaWYg
aSA8IGxlbihzZWxmLnJlcHJlbnRyaWVzKSAtIDE6Ci0gICAgICAgICAgICAgICAgbmV4dF9lbnRy
eSA9IHNlbGYucmVwcmVudHJpZXNbaSArIDFdCi0gICAgICAgICAgICAgICAgaWYgZW50cnkuc3R5
bGUgPT0gImxvbmciIG9yIFwKLSAgICAgICAgICAgICAgICAgICBlbnRyeS5zdHlsZSA9PSAic2hv
cnQiIGFuZCBuZXh0X2VudHJ5LnN0eWxlID09ICJsb25nIjoKLSAgICAgICAgICAgICAgICAgICAg
dHcuc2VwKHNlbGYuZW50cnlzZXApCi0KLSAgICAgICAgaWYgc2VsZi5leHRyYWxpbmU6Ci0gICAg
ICAgICAgICB0dy5saW5lKHNlbGYuZXh0cmFsaW5lKQotCi0KLWNsYXNzIFJlcHJUcmFjZWJhY2tO
YXRpdmUoUmVwclRyYWNlYmFjayk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRibGluZXMpOgot
ICAgICAgICBzZWxmLnN0eWxlID0gIm5hdGl2ZSIKLSAgICAgICAgc2VsZi5yZXByZW50cmllcyA9
IFtSZXByRW50cnlOYXRpdmUodGJsaW5lcyldCi0gICAgICAgIHNlbGYuZXh0cmFsaW5lID0gTm9u
ZQotCi0KLWNsYXNzIFJlcHJFbnRyeU5hdGl2ZShUZXJtaW5hbFJlcHIpOgotICAgIHN0eWxlID0g
Im5hdGl2ZSIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YmxpbmVzKToKLSAgICAgICAgc2Vs
Zi5saW5lcyA9IHRibGluZXMKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAg
ICAgdHcud3JpdGUoIiIuam9pbihzZWxmLmxpbmVzKSkKLQotCi1jbGFzcyBSZXByRW50cnkoVGVy
bWluYWxSZXByKToKLSAgICBsb2NhbHNzZXAgPSAiXyAiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbGluZXMsIHJlcHJmdW5jYXJncywgcmVwcmxvY2FscywgZmlsZWxvY3JlcHIsIHN0eWxlKToK
LSAgICAgICAgc2VsZi5saW5lcyA9IGxpbmVzCi0gICAgICAgIHNlbGYucmVwcmZ1bmNhcmdzID0g
cmVwcmZ1bmNhcmdzCi0gICAgICAgIHNlbGYucmVwcmxvY2FscyA9IHJlcHJsb2NhbHMKLSAgICAg
ICAgc2VsZi5yZXByZmlsZWxvYyA9IGZpbGVsb2NyZXByCi0gICAgICAgIHNlbGYuc3R5bGUgPSBz
dHlsZQotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgotICAgICAgICBpZiBzZWxmLnN0
eWxlID09ICJzaG9ydCI6Ci0gICAgICAgICAgICBzZWxmLnJlcHJmaWxlbG9jLnRvdGVybWluYWwo
dHcpCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmxpbmVzOgotICAgICAgICAgICAgICAg
IHJlZCA9IGxpbmUuc3RhcnRzd2l0aCgiRSAgICIpCi0gICAgICAgICAgICAgICAgdHcubGluZShs
aW5lLCBib2xkPVRydWUsIHJlZD1yZWQpCi0gICAgICAgICAgICAjIHR3LmxpbmUoIiIpCi0gICAg
ICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgc2VsZi5yZXByZnVuY2FyZ3M6Ci0gICAgICAgICAg
ICBzZWxmLnJlcHJmdW5jYXJncy50b3Rlcm1pbmFsKHR3KQotICAgICAgICBmb3IgbGluZSBpbiBz
ZWxmLmxpbmVzOgotICAgICAgICAgICAgcmVkID0gbGluZS5zdGFydHN3aXRoKCJFICAgIikKLSAg
ICAgICAgICAgIHR3LmxpbmUobGluZSwgYm9sZD1UcnVlLCByZWQ9cmVkKQotICAgICAgICBpZiBz
ZWxmLnJlcHJsb2NhbHM6Ci0gICAgICAgICAgICAjIHR3LnNlcChzZWxmLmxvY2Fsc3NlcCwgIkxv
Y2FscyIpCi0gICAgICAgICAgICB0dy5saW5lKCIiKQotICAgICAgICAgICAgc2VsZi5yZXBybG9j
YWxzLnRvdGVybWluYWwodHcpCi0gICAgICAgIGlmIHNlbGYucmVwcmZpbGVsb2M6Ci0gICAgICAg
ICAgICBpZiBzZWxmLmxpbmVzOgotICAgICAgICAgICAgICAgIHR3LmxpbmUoIiIpCi0gICAgICAg
ICAgICBzZWxmLnJlcHJmaWxlbG9jLnRvdGVybWluYWwodHcpCi0KLSAgICBkZWYgX19zdHJfXyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuICIlc1xuJXNcbiVzIiAlICgiXG4iLmpvaW4oc2VsZi5saW5l
cyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXBybG9jYWxzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVwcmZpbGVsb2MpCi0KLQotY2xhc3Mg
UmVwckZpbGVMb2NhdGlvbihUZXJtaW5hbFJlcHIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
YXRoLCBsaW5lbm8sIG1lc3NhZ2UpOgotICAgICAgICBzZWxmLnBhdGggPSBzdHIocGF0aCkKLSAg
ICAgICAgc2VsZi5saW5lbm8gPSBsaW5lbm8KLSAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2Fn
ZQotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgotICAgICAgICAjIGZpbGVuYW1lIGFu
ZCBsaW5lbm8gb3V0cHV0IGZvciBlYWNoIGVudHJ5LAotICAgICAgICAjIHVzaW5nIGFuIG91dHB1
dCBmb3JtYXQgdGhhdCBtb3N0IGVkaXRvcnMgdW50ZXJzdGFuZAotICAgICAgICBtc2cgPSBzZWxm
Lm1lc3NhZ2UKLSAgICAgICAgaSA9IG1zZy5maW5kKCJcbiIpCi0gICAgICAgIGlmIGkgIT0gLTE6
Ci0gICAgICAgICAgICBtc2cgPSBtc2dbOmldCi0gICAgICAgIHR3LndyaXRlKHNlbGYucGF0aCwg
Ym9sZD1UcnVlLCByZWQ9VHJ1ZSkKLSAgICAgICAgdHcubGluZSgiOiVzOiAlcyIgJSAoc2VsZi5s
aW5lbm8sIG1zZykpCi0KLQotY2xhc3MgUmVwckxvY2FscyhUZXJtaW5hbFJlcHIpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsaW5lcyk6Ci0gICAgICAgIHNlbGYubGluZXMgPSBsaW5lcwotCi0g
ICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgotICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmxp
bmVzOgotICAgICAgICAgICAgdHcubGluZShsaW5lKQotCi0KLWNsYXNzIFJlcHJGdW5jQXJncyhU
ZXJtaW5hbFJlcHIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcmdzKToKLSAgICAgICAgc2Vs
Zi5hcmdzID0gYXJncwotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgotICAgICAgICBp
ZiBzZWxmLmFyZ3M6Ci0gICAgICAgICAgICBsaW5lc29mYXIgPSAiIgotICAgICAgICAgICAgZm9y
IG5hbWUsIHZhbHVlIGluIHNlbGYuYXJnczoKLSAgICAgICAgICAgICAgICBucyA9ICIlcyA9ICVz
IiAlIChzYWZlX3N0cihuYW1lKSwgc2FmZV9zdHIodmFsdWUpKQotICAgICAgICAgICAgICAgIGlm
IGxlbihucykgKyBsZW4obGluZXNvZmFyKSArIDIgPiB0dy5mdWxsd2lkdGg6Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIGxpbmVzb2ZhcjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHR3LmxpbmUo
bGluZXNvZmFyKQotICAgICAgICAgICAgICAgICAgICBsaW5lc29mYXIgPSBucwotICAgICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGxpbmVzb2ZhcjoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGxpbmVzb2ZhciArPSAiLCAiICsgbnMKLSAgICAgICAgICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzb2ZhciA9IG5zCi0gICAgICAg
ICAgICBpZiBsaW5lc29mYXI6Ci0gICAgICAgICAgICAgICAgdHcubGluZShsaW5lc29mYXIpCi0g
ICAgICAgICAgICB0dy5saW5lKCIiKQotCi0KLWRlZiBnZXRyYXdjb2RlKG9iaiwgdHJ5Y2FsbD1U
cnVlKToKLSAgICAiIiIgcmV0dXJuIGNvZGUgb2JqZWN0IGZvciBnaXZlbiBmdW5jdGlvbi4gIiIi
Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gb2JqLl9fY29kZV9fCi0gICAgZXhjZXB0IEF0dHJp
YnV0ZUVycm9yOgotICAgICAgICBvYmogPSBnZXRhdHRyKG9iaiwgJ2ltX2Z1bmMnLCBvYmopCi0g
ICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCAnZnVuY19jb2RlJywgb2JqKQotICAgICAgICBvYmog
PSBnZXRhdHRyKG9iaiwgJ2ZfY29kZScsIG9iaikKLSAgICAgICAgb2JqID0gZ2V0YXR0cihvYmos
ICdfX2NvZGVfXycsIG9iaikKLSAgICAgICAgaWYgdHJ5Y2FsbCBhbmQgbm90IGhhc2F0dHIob2Jq
LCAnY29fZmlyc3RsaW5lbm8nKToKLSAgICAgICAgICAgIGlmIGhhc2F0dHIob2JqLCAnX19jYWxs
X18nKSBhbmQgbm90IHB5LnN0ZC5pbnNwZWN0LmlzY2xhc3Mob2JqKToKLSAgICAgICAgICAgICAg
ICB4ID0gZ2V0cmF3Y29kZShvYmouX19jYWxsX18sIHRyeWNhbGw9RmFsc2UpCi0gICAgICAgICAg
ICAgICAgaWYgaGFzYXR0cih4LCAnY29fZmlyc3RsaW5lbm8nKToKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHgKLSAgICAgICAgcmV0dXJuIG9iagotCi0KLWlmIFBZMzU6ICAjIFJlY3Vyc2lv
bkVycm9yIGludHJvZHVjZWQgaW4gMy41Ci0gICAgZGVmIGlzX3JlY3Vyc2lvbl9lcnJvcihleGNp
bmZvKToKLSAgICAgICAgcmV0dXJuIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShSZWN1cnNpb25FcnJv
cikgICMgbm9xYQotZWxzZToKLSAgICBkZWYgaXNfcmVjdXJzaW9uX2Vycm9yKGV4Y2luZm8pOgot
ICAgICAgICBpZiBub3QgZXhjaW5mby5lcnJpc2luc3RhbmNlKFJ1bnRpbWVFcnJvcik6Ci0gICAg
ICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuICJt
YXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCBleGNlZWRlZCIgaW4gc3RyKGV4Y2luZm8udmFsdWUpCi0g
ICAgICAgIGV4Y2VwdCBVbmljb2RlRXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvc291cmNlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9fY29kZS9zb3VyY2UucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI2MzhjNTk4Yjc0OWRiMjg4NjFkMjAwMDZlN2RmYThmOTBlNTU0YmMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29k
ZS9zb3VyY2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MTUgKzAsMCBAQAotZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBnZW5lcmF0b3JzLCBwcmludF9m
dW5jdGlvbgotCi1mcm9tIGJpc2VjdCBpbXBvcnQgYmlzZWN0X3JpZ2h0Ci1pbXBvcnQgc3lzCi1p
bXBvcnQgc2l4Ci1pbXBvcnQgaW5zcGVjdAotaW1wb3J0IHRva2VuaXplCi1pbXBvcnQgcHkKLWNw
eV9jb21waWxlID0gY29tcGlsZQotCi10cnk6Ci0gICAgaW1wb3J0IF9hc3QKLSAgICBmcm9tIF9h
c3QgaW1wb3J0IFB5Q0ZfT05MWV9BU1QgYXMgX0FTVF9GTEFHCi1leGNlcHQgSW1wb3J0RXJyb3I6
Ci0gICAgX0FTVF9GTEFHID0gMAotICAgIF9hc3QgPSBOb25lCi0KLQotY2xhc3MgU291cmNlKG9i
amVjdCk6Ci0gICAgIiIiIGEgaW1tdXRhYmxlIG9iamVjdCBob2xkaW5nIGEgc291cmNlIGNvZGUg
ZnJhZ21lbnQsCi0gICAgICAgIHBvc3NpYmx5IGRlaW5kZW50aW5nIGl0LgotICAgICIiIgotICAg
IF9jb21waWxlY291bnRlciA9IDAKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqcGFydHMsICoq
a3dhcmdzKToKLSAgICAgICAgc2VsZi5saW5lcyA9IGxpbmVzID0gW10KLSAgICAgICAgZGUgPSBr
d2FyZ3MuZ2V0KCdkZWluZGVudCcsIFRydWUpCi0gICAgICAgIHJzdHJpcCA9IGt3YXJncy5nZXQo
J3JzdHJpcCcsIFRydWUpCi0gICAgICAgIGZvciBwYXJ0IGluIHBhcnRzOgotICAgICAgICAgICAg
aWYgbm90IHBhcnQ6Ci0gICAgICAgICAgICAgICAgcGFydGxpbmVzID0gW10KLSAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UocGFydCwgU291cmNlKToKLSAgICAgICAgICAgICAgICBwYXJ0bGluZXMg
PSBwYXJ0LmxpbmVzCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGFydCwgKHR1cGxlLCBs
aXN0KSk6Ci0gICAgICAgICAgICAgICAgcGFydGxpbmVzID0gW3gucnN0cmlwKCJcbiIpIGZvciB4
IGluIHBhcnRdCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGFydCwgc2l4LnN0cmluZ190
eXBlcyk6Ci0gICAgICAgICAgICAgICAgcGFydGxpbmVzID0gcGFydC5zcGxpdCgnXG4nKQotICAg
ICAgICAgICAgICAgIGlmIHJzdHJpcDoKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgcGFydGxp
bmVzOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgcGFydGxpbmVzWy0xXS5zdHJpcCgpOgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAg
ICBwYXJ0bGluZXMucG9wKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcGFy
dGxpbmVzID0gZ2V0c291cmNlKHBhcnQsIGRlaW5kZW50PWRlKS5saW5lcwotICAgICAgICAgICAg
aWYgZGU6Ci0gICAgICAgICAgICAgICAgcGFydGxpbmVzID0gZGVpbmRlbnQocGFydGxpbmVzKQot
ICAgICAgICAgICAgbGluZXMuZXh0ZW5kKHBhcnRsaW5lcykKLQotICAgIGRlZiBfX2VxX18oc2Vs
Ziwgb3RoZXIpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5saW5lcyA9
PSBvdGhlci5saW5lcwotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAg
ICBpZiBpc2luc3RhbmNlKG90aGVyLCBzdHIpOgotICAgICAgICAgICAgICAgIHJldHVybiBzdHIo
c2VsZikgPT0gb3RoZXIKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgX19oYXNoX18g
PSBOb25lCi0KLSAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKLSAgICAgICAgaWYgaXNp
bnN0YW5jZShrZXksIGludCk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5saW5lc1trZXldCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBrZXkuc3RlcCBub3QgaW4gKE5vbmUsIDEpOgot
ICAgICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoImNhbm5vdCBzbGljZSBhIFNvdXJjZSB3
aXRoIGEgc3RlcCIpCi0gICAgICAgICAgICBuZXdzb3VyY2UgPSBTb3VyY2UoKQotICAgICAgICAg
ICAgbmV3c291cmNlLmxpbmVzID0gc2VsZi5saW5lc1trZXkuc3RhcnQ6a2V5LnN0b3BdCi0gICAg
ICAgICAgICByZXR1cm4gbmV3c291cmNlCi0KLSAgICBkZWYgX19sZW5fXyhzZWxmKToKLSAgICAg
ICAgcmV0dXJuIGxlbihzZWxmLmxpbmVzKQotCi0gICAgZGVmIHN0cmlwKHNlbGYpOgotICAgICAg
ICAiIiIgcmV0dXJuIG5ldyBzb3VyY2Ugb2JqZWN0IHdpdGggdHJhaWxpbmcKLSAgICAgICAgICAg
IGFuZCBsZWFkaW5nIGJsYW5rIGxpbmVzIHJlbW92ZWQuCi0gICAgICAgICIiIgotICAgICAgICBz
dGFydCwgZW5kID0gMCwgbGVuKHNlbGYpCi0gICAgICAgIHdoaWxlIHN0YXJ0IDwgZW5kIGFuZCBu
b3Qgc2VsZi5saW5lc1tzdGFydF0uc3RyaXAoKToKLSAgICAgICAgICAgIHN0YXJ0ICs9IDEKLSAg
ICAgICAgd2hpbGUgZW5kID4gc3RhcnQgYW5kIG5vdCBzZWxmLmxpbmVzW2VuZCAtIDFdLnN0cmlw
KCk6Ci0gICAgICAgICAgICBlbmQgLT0gMQotICAgICAgICBzb3VyY2UgPSBTb3VyY2UoKQotICAg
ICAgICBzb3VyY2UubGluZXNbOl0gPSBzZWxmLmxpbmVzW3N0YXJ0OmVuZF0KLSAgICAgICAgcmV0
dXJuIHNvdXJjZQotCi0gICAgZGVmIHB1dGFyb3VuZChzZWxmLCBiZWZvcmU9JycsIGFmdGVyPScn
LCBpbmRlbnQ9JyAnICogNCk6Ci0gICAgICAgICIiIiByZXR1cm4gYSBjb3B5IG9mIHRoZSBzb3Vy
Y2Ugb2JqZWN0IHdpdGgKLSAgICAgICAgICAgICdiZWZvcmUnIGFuZCAnYWZ0ZXInIHdyYXBwZWQg
YXJvdW5kIGl0LgotICAgICAgICAiIiIKLSAgICAgICAgYmVmb3JlID0gU291cmNlKGJlZm9yZSkK
LSAgICAgICAgYWZ0ZXIgPSBTb3VyY2UoYWZ0ZXIpCi0gICAgICAgIG5ld3NvdXJjZSA9IFNvdXJj
ZSgpCi0gICAgICAgIGxpbmVzID0gWyhpbmRlbnQgKyBsaW5lKSBmb3IgbGluZSBpbiBzZWxmLmxp
bmVzXQotICAgICAgICBuZXdzb3VyY2UubGluZXMgPSBiZWZvcmUubGluZXMgKyBsaW5lcyArIGFm
dGVyLmxpbmVzCi0gICAgICAgIHJldHVybiBuZXdzb3VyY2UKLQotICAgIGRlZiBpbmRlbnQoc2Vs
ZiwgaW5kZW50PScgJyAqIDQpOgotICAgICAgICAiIiIgcmV0dXJuIGEgY29weSBvZiB0aGUgc291
cmNlIG9iamVjdCB3aXRoCi0gICAgICAgICAgICBhbGwgbGluZXMgaW5kZW50ZWQgYnkgdGhlIGdp
dmVuIGluZGVudC1zdHJpbmcuCi0gICAgICAgICIiIgotICAgICAgICBuZXdzb3VyY2UgPSBTb3Vy
Y2UoKQotICAgICAgICBuZXdzb3VyY2UubGluZXMgPSBbKGluZGVudCArIGxpbmUpIGZvciBsaW5l
IGluIHNlbGYubGluZXNdCi0gICAgICAgIHJldHVybiBuZXdzb3VyY2UKLQotICAgIGRlZiBnZXRz
dGF0ZW1lbnQoc2VsZiwgbGluZW5vLCBhc3NlcnRpb249RmFsc2UpOgotICAgICAgICAiIiIgcmV0
dXJuIFNvdXJjZSBzdGF0ZW1lbnQgd2hpY2ggY29udGFpbnMgdGhlCi0gICAgICAgICAgICBnaXZl
biBsaW5lbnVtYmVyIChjb3VudGVkIGZyb20gMCkuCi0gICAgICAgICIiIgotICAgICAgICBzdGFy
dCwgZW5kID0gc2VsZi5nZXRzdGF0ZW1lbnRyYW5nZShsaW5lbm8sIGFzc2VydGlvbikKLSAgICAg
ICAgcmV0dXJuIHNlbGZbc3RhcnQ6ZW5kXQotCi0gICAgZGVmIGdldHN0YXRlbWVudHJhbmdlKHNl
bGYsIGxpbmVubywgYXNzZXJ0aW9uPUZhbHNlKToKLSAgICAgICAgIiIiIHJldHVybiAoc3RhcnQs
IGVuZCkgdHVwbGUgd2hpY2ggc3BhbnMgdGhlIG1pbmltYWwKLSAgICAgICAgICAgIHN0YXRlbWVu
dCByZWdpb24gd2hpY2ggY29udGFpbmluZyB0aGUgZ2l2ZW4gbGluZW5vLgotICAgICAgICAiIiIK
LSAgICAgICAgaWYgbm90ICgwIDw9IGxpbmVubyA8IGxlbihzZWxmKSk6Ci0gICAgICAgICAgICBy
YWlzZSBJbmRleEVycm9yKCJsaW5lbm8gb3V0IG9mIHJhbmdlIikKLSAgICAgICAgYXN0LCBzdGFy
dCwgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KGxpbmVubywgc2VsZikKLSAgICAgICAgcmV0
dXJuIHN0YXJ0LCBlbmQKLQotICAgIGRlZiBkZWluZGVudChzZWxmLCBvZmZzZXQ9Tm9uZSk6Ci0g
ICAgICAgICIiIiByZXR1cm4gYSBuZXcgc291cmNlIG9iamVjdCBkZWluZGVudGVkIGJ5IG9mZnNl
dC4KLSAgICAgICAgICAgIElmIG9mZnNldCBpcyBOb25lIHRoZW4gZ3Vlc3MgYW4gaW5kZW50YXRp
b24gb2Zmc2V0IGZyb20KLSAgICAgICAgICAgIHRoZSBmaXJzdCBub24tYmxhbmsgbGluZS4gIFN1
YnNlcXVlbnQgbGluZXMgd2hpY2ggaGF2ZSBhCi0gICAgICAgICAgICBsb3dlciBpbmRlbnRhdGlv
biBvZmZzZXQgd2lsbCBiZSBjb3BpZWQgdmVyYmF0aW0gYXMKLSAgICAgICAgICAgIHRoZXkgYXJl
IGFzc3VtZWQgdG8gYmUgcGFydCBvZiBtdWx0aWxpbmVzLgotICAgICAgICAiIiIKLSAgICAgICAg
IyBYWFggbWF5YmUgdXNlIHRoZSB0b2tlbml6ZXIgdG8gcHJvcGVybHkgaGFuZGxlIG11bHRpbGlu
ZQotICAgICAgICAjICAgICBzdHJpbmdzIGV0Yy5wcD8KLSAgICAgICAgbmV3c291cmNlID0gU291
cmNlKCkKLSAgICAgICAgbmV3c291cmNlLmxpbmVzWzpdID0gZGVpbmRlbnQoc2VsZi5saW5lcywg
b2Zmc2V0KQotICAgICAgICByZXR1cm4gbmV3c291cmNlCi0KLSAgICBkZWYgaXNwYXJzZWFibGUo
c2VsZiwgZGVpbmRlbnQ9VHJ1ZSk6Ci0gICAgICAgICIiIiByZXR1cm4gVHJ1ZSBpZiBzb3VyY2Ug
aXMgcGFyc2VhYmxlLCBoZXVyaXN0aWNhbGx5Ci0gICAgICAgICAgICBkZWluZGVudGluZyBpdCBi
eSBkZWZhdWx0LgotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0
IHBhcnNlcgotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICBkZWYgc3lu
dGF4X2NoZWNrZXIoeCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBpbGUoeCwgJ2FzZCcs
ICdleGVjJykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHN5bnRheF9jaGVja2VyID0gcGFy
c2VyLnN1aXRlCi0KLSAgICAgICAgaWYgZGVpbmRlbnQ6Ci0gICAgICAgICAgICBzb3VyY2UgPSBz
dHIoc2VsZi5kZWluZGVudCgpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc291cmNlID0g
c3RyKHNlbGYpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgY29tcGlsZShzb3VyY2UrJ1xu
JywgIngiLCAiZXhlYyIpCi0gICAgICAgICAgICBzeW50YXhfY2hlY2tlcihzb3VyY2UgKyAnXG4n
KQotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICByYWlzZQot
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIF9fc3RyX18oc2Vs
Zik6Ci0gICAgICAgIHJldHVybiAiXG4iLmpvaW4oc2VsZi5saW5lcykKLQotICAgIGRlZiBjb21w
aWxlKHNlbGYsIGZpbGVuYW1lPU5vbmUsIG1vZGU9J2V4ZWMnLAotICAgICAgICAgICAgICAgIGZs
YWc9Z2VuZXJhdG9ycy5jb21waWxlcl9mbGFnLAotICAgICAgICAgICAgICAgIGRvbnRfaW5oZXJp
dD0wLCBfZ2VuZnJhbWU9Tm9uZSk6Ci0gICAgICAgICIiIiByZXR1cm4gY29tcGlsZWQgY29kZSBv
YmplY3QuIGlmIGZpbGVuYW1lIGlzIE5vbmUKLSAgICAgICAgICAgIGludmVudCBhbiBhcnRpZmlj
aWFsIGZpbGVuYW1lIHdoaWNoIGRpc3BsYXlzCi0gICAgICAgICAgICB0aGUgc291cmNlL2xpbmUg
cG9zaXRpb24gb2YgdGhlIGNhbGxlciBmcmFtZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIG5v
dCBmaWxlbmFtZSBvciBweS5wYXRoLmxvY2FsKGZpbGVuYW1lKS5jaGVjayhmaWxlPTApOgotICAg
ICAgICAgICAgaWYgX2dlbmZyYW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgX2dlbmZyYW1l
ID0gc3lzLl9nZXRmcmFtZSgxKSAgIyB0aGUgY2FsbGVyCi0gICAgICAgICAgICBmbiwgbGluZW5v
ID0gX2dlbmZyYW1lLmZfY29kZS5jb19maWxlbmFtZSwgX2dlbmZyYW1lLmZfbGluZW5vCi0gICAg
ICAgICAgICBiYXNlID0gIjwlZC1jb2RlZ2VuICIgJSBzZWxmLl9jb21waWxlY291bnRlcgotICAg
ICAgICAgICAgc2VsZi5fX2NsYXNzX18uX2NvbXBpbGVjb3VudGVyICs9IDEKLSAgICAgICAgICAg
IGlmIG5vdCBmaWxlbmFtZToKLSAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IGJhc2UgKyAnJXM6
JWQ+JyAlIChmbiwgbGluZW5vKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBm
aWxlbmFtZSA9IGJhc2UgKyAnJXIgJXM6JWQ+JyAlIChmaWxlbmFtZSwgZm4sIGxpbmVubykKLSAg
ICAgICAgc291cmNlID0gIlxuIi5qb2luKHNlbGYubGluZXMpICsgJ1xuJwotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBjbyA9IGNweV9jb21waWxlKHNvdXJjZSwgZmlsZW5hbWUsIG1vZGUsIGZs
YWcpCi0gICAgICAgIGV4Y2VwdCBTeW50YXhFcnJvcjoKLSAgICAgICAgICAgIGV4ID0gc3lzLmV4
Y19pbmZvKClbMV0KLSAgICAgICAgICAgICMgcmUtcmVwcmVzZW50IHN5bnRheCBlcnJvcnMgZnJv
bSBwYXJzaW5nIHB5dGhvbiBzdHJpbmdzCi0gICAgICAgICAgICBtc2dsaW5lcyA9IHNlbGYubGlu
ZXNbOmV4LmxpbmVub10KLSAgICAgICAgICAgIGlmIGV4Lm9mZnNldDoKLSAgICAgICAgICAgICAg
ICBtc2dsaW5lcy5hcHBlbmQoIiAiICogZXgub2Zmc2V0ICsgJ14nKQotICAgICAgICAgICAgbXNn
bGluZXMuYXBwZW5kKCIoY29kZSB3YXMgY29tcGlsZWQgcHJvYmFibHkgZnJvbSBoZXJlOiAlcyki
ICUgZmlsZW5hbWUpCi0gICAgICAgICAgICBuZXdleCA9IFN5bnRheEVycm9yKCdcbicuam9pbiht
c2dsaW5lcykpCi0gICAgICAgICAgICBuZXdleC5vZmZzZXQgPSBleC5vZmZzZXQKLSAgICAgICAg
ICAgIG5ld2V4LmxpbmVubyA9IGV4LmxpbmVubwotICAgICAgICAgICAgbmV3ZXgudGV4dCA9IGV4
LnRleHQKLSAgICAgICAgICAgIHJhaXNlIG5ld2V4Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBpZiBmbGFnICYgX0FTVF9GTEFHOgotICAgICAgICAgICAgICAgIHJldHVybiBjbwotICAgICAg
ICAgICAgbGluZXMgPSBbKHggKyAiXG4iKSBmb3IgeCBpbiBzZWxmLmxpbmVzXQotICAgICAgICAg
ICAgcHkuc3RkLmxpbmVjYWNoZS5jYWNoZVtmaWxlbmFtZV0gPSAoMSwgTm9uZSwgbGluZXMsIGZp
bGVuYW1lKQotICAgICAgICAgICAgcmV0dXJuIGNvCi0KLSMKLSMgcHVibGljIEFQSSBzaG9ydGN1
dCBmdW5jdGlvbnMKLSMKLQotCi1kZWYgY29tcGlsZV8oc291cmNlLCBmaWxlbmFtZT1Ob25lLCBt
b2RlPSdleGVjJywgZmxhZ3M9Z2VuZXJhdG9ycy5jb21waWxlcl9mbGFnLCBkb250X2luaGVyaXQ9
MCk6Ci0gICAgIiIiIGNvbXBpbGUgdGhlIGdpdmVuIHNvdXJjZSB0byBhIHJhdyBjb2RlIG9iamVj
dCwKLSAgICAgICAgYW5kIG1haW50YWluIGFuIGludGVybmFsIGNhY2hlIHdoaWNoIGFsbG93cyBs
YXRlcgotICAgICAgICByZXRyaWV2YWwgb2YgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUgY29kZSBv
YmplY3QKLSAgICAgICAgYW5kIGFueSByZWN1cnNpdmVseSBjcmVhdGVkIGNvZGUgb2JqZWN0cy4K
LSAgICAiIiIKLSAgICBpZiBfYXN0IGlzIG5vdCBOb25lIGFuZCBpc2luc3RhbmNlKHNvdXJjZSwg
X2FzdC5BU1QpOgotICAgICAgICAjIFhYWCBzaG91bGQgU291cmNlIHN1cHBvcnQgaGF2aW5nIEFT
VD8KLSAgICAgICAgcmV0dXJuIGNweV9jb21waWxlKHNvdXJjZSwgZmlsZW5hbWUsIG1vZGUsIGZs
YWdzLCBkb250X2luaGVyaXQpCi0gICAgX2dlbmZyYW1lID0gc3lzLl9nZXRmcmFtZSgxKSAgIyB0
aGUgY2FsbGVyCi0gICAgcyA9IFNvdXJjZShzb3VyY2UpCi0gICAgY28gPSBzLmNvbXBpbGUoZmls
ZW5hbWUsIG1vZGUsIGZsYWdzLCBfZ2VuZnJhbWU9X2dlbmZyYW1lKQotICAgIHJldHVybiBjbwot
Ci0KLWRlZiBnZXRmc2xpbmVubyhvYmopOgotICAgICIiIiBSZXR1cm4gc291cmNlIGxvY2F0aW9u
IChwYXRoLCBsaW5lbm8pIGZvciB0aGUgZ2l2ZW4gb2JqZWN0LgotICAgIElmIHRoZSBzb3VyY2Ug
Y2Fubm90IGJlIGRldGVybWluZWQgcmV0dXJuICgiIiwgLTEpCi0gICAgIiIiCi0gICAgaW1wb3J0
IF9weXRlc3QuX2NvZGUKLSAgICB0cnk6Ci0gICAgICAgIGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLkNv
ZGUob2JqKQotICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGZuID0gKHB5LnN0ZC5pbnNwZWN0LmdldHNvdXJjZWZpbGUob2JqKSBvcgotICAgICAgICAgICAg
ICAgICAgcHkuc3RkLmluc3BlY3QuZ2V0ZmlsZShvYmopKQotICAgICAgICBleGNlcHQgVHlwZUVy
cm9yOgotICAgICAgICAgICAgcmV0dXJuICIiLCAtMQotCi0gICAgICAgIGZzcGF0aCA9IGZuIGFu
ZCBweS5wYXRoLmxvY2FsKGZuKSBvciBOb25lCi0gICAgICAgIGxpbmVubyA9IC0xCi0gICAgICAg
IGlmIGZzcGF0aDoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBfLCBsaW5lbm8g
PSBmaW5kc291cmNlKG9iaikKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAg
ICAgICAgIHBhc3MKLSAgICBlbHNlOgotICAgICAgICBmc3BhdGggPSBjb2RlLnBhdGgKLSAgICAg
ICAgbGluZW5vID0gY29kZS5maXJzdGxpbmVubwotICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmVu
bywgaW50KQotICAgIHJldHVybiBmc3BhdGgsIGxpbmVubwotCi0jCi0jIGhlbHBlciBmdW5jdGlv
bnMKLSMKLQotCi1kZWYgZmluZHNvdXJjZShvYmopOgotICAgIHRyeToKLSAgICAgICAgc291cmNl
bGluZXMsIGxpbmVubyA9IHB5LnN0ZC5pbnNwZWN0LmZpbmRzb3VyY2Uob2JqKQotICAgIGV4Y2Vw
dCBweS5idWlsdGluLl9zeXNleDoKLSAgICAgICAgcmFpc2UKLSAgICBleGNlcHQ6ICAjIG5vcWEK
LSAgICAgICAgcmV0dXJuIE5vbmUsIC0xCi0gICAgc291cmNlID0gU291cmNlKCkKLSAgICBzb3Vy
Y2UubGluZXMgPSBbbGluZS5yc3RyaXAoKSBmb3IgbGluZSBpbiBzb3VyY2VsaW5lc10KLSAgICBy
ZXR1cm4gc291cmNlLCBsaW5lbm8KLQotCi1kZWYgZ2V0c291cmNlKG9iaiwgKiprd2FyZ3MpOgot
ICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0gICAgb2JqID0gX3B5dGVzdC5fY29kZS5nZXRyYXdj
b2RlKG9iaikKLSAgICB0cnk6Ci0gICAgICAgIHN0cnNyYyA9IGluc3BlY3QuZ2V0c291cmNlKG9i
aikKLSAgICBleGNlcHQgSW5kZW50YXRpb25FcnJvcjoKLSAgICAgICAgc3Ryc3JjID0gIlwiQnVn
Z3kgcHl0aG9uIHZlcnNpb24gY29uc2lkZXIgdXBncmFkaW5nLCBjYW5ub3QgZ2V0IHNvdXJjZVwi
IgotICAgIGFzc2VydCBpc2luc3RhbmNlKHN0cnNyYywgc3RyKQotICAgIHJldHVybiBTb3VyY2Uo
c3Ryc3JjLCAqKmt3YXJncykKLQotCi1kZWYgZGVpbmRlbnQobGluZXMsIG9mZnNldD1Ob25lKToK
LSAgICBpZiBvZmZzZXQgaXMgTm9uZToKLSAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6Ci0gICAg
ICAgICAgICBsaW5lID0gbGluZS5leHBhbmR0YWJzKCkKLSAgICAgICAgICAgIHMgPSBsaW5lLmxz
dHJpcCgpCi0gICAgICAgICAgICBpZiBzOgotICAgICAgICAgICAgICAgIG9mZnNldCA9IGxlbihs
aW5lKSAtIGxlbihzKQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBvZmZzZXQgPSAwCi0gICAgaWYgb2Zmc2V0ID09IDA6Ci0gICAgICAgIHJldHVybiBs
aXN0KGxpbmVzKQotICAgIG5ld2xpbmVzID0gW10KLQotICAgIGRlZiByZWFkbGluZV9nZW5lcmF0
b3IobGluZXMpOgotICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKLSAgICAgICAgICAgIHlpZWxk
IGxpbmUgKyAnXG4nCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICB5aWVsZCAnJwot
Ci0gICAgaXQgPSByZWFkbGluZV9nZW5lcmF0b3IobGluZXMpCi0KLSAgICB0cnk6Ci0gICAgICAg
IGZvciBfLCBfLCAoc2xpbmUsIF8pLCAoZWxpbmUsIF8pLCBfIGluIHRva2VuaXplLmdlbmVyYXRl
X3Rva2VucyhsYW1iZGE6IG5leHQoaXQpKToKLSAgICAgICAgICAgIGlmIHNsaW5lID4gbGVuKGxp
bmVzKToKLSAgICAgICAgICAgICAgICBicmVhayAgIyBFbmQgb2YgaW5wdXQgcmVhY2hlZAotICAg
ICAgICAgICAgaWYgc2xpbmUgPiBsZW4obmV3bGluZXMpOgotICAgICAgICAgICAgICAgIGxpbmUg
PSBsaW5lc1tzbGluZSAtIDFdLmV4cGFuZHRhYnMoKQotICAgICAgICAgICAgICAgIGlmIGxpbmUu
bHN0cmlwKCkgYW5kIGxpbmVbOm9mZnNldF0uaXNzcGFjZSgpOgotICAgICAgICAgICAgICAgICAg
ICBsaW5lID0gbGluZVtvZmZzZXQ6XSAgIyBEZWluZGVudAotICAgICAgICAgICAgICAgIG5ld2xp
bmVzLmFwcGVuZChsaW5lKQotCi0gICAgICAgICAgICBmb3IgaSBpbiByYW5nZShzbGluZSwgZWxp
bmUpOgotICAgICAgICAgICAgICAgICMgRG9uJ3QgZGVpbmRlbnQgY29udGludWluZyBsaW5lcyBv
ZgotICAgICAgICAgICAgICAgICMgbXVsdGlsaW5lIHRva2VucyAoaS5lLiBtdWx0aWxpbmUgc3Ry
aW5ncykKLSAgICAgICAgICAgICAgICBuZXdsaW5lcy5hcHBlbmQobGluZXNbaV0pCi0gICAgZXhj
ZXB0IChJbmRlbnRhdGlvbkVycm9yLCB0b2tlbml6ZS5Ub2tlbkVycm9yKToKLSAgICAgICAgcGFz
cwotICAgICMgQWRkIGFueSBsaW5lcyB3ZSBkaWRuJ3Qgc2VlLiBFLmcuIGlmIGFuIGV4Y2VwdGlv
biB3YXMgcmFpc2VkLgotICAgIG5ld2xpbmVzLmV4dGVuZChsaW5lc1tsZW4obmV3bGluZXMpOl0p
Ci0gICAgcmV0dXJuIG5ld2xpbmVzCi0KLQotZGVmIGdldF9zdGF0ZW1lbnRfc3RhcnRlbmQyKGxp
bmVubywgbm9kZSk6Ci0gICAgaW1wb3J0IGFzdAotICAgICMgZmxhdHRlbiBhbGwgc3RhdGVtZW50
cyBhbmQgZXhjZXB0IGhhbmRsZXJzIGludG8gb25lIGxpbmVuby1saXN0Ci0gICAgIyBBU1QncyBs
aW5lIG51bWJlcnMgc3RhcnQgaW5kZXhpbmcgYXQgMQotICAgIHZhbHVlcyA9IFtdCi0gICAgZm9y
IHggaW4gYXN0LndhbGsobm9kZSk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgX2FzdC5zdG10
KSBvciBpc2luc3RhbmNlKHgsIF9hc3QuRXhjZXB0SGFuZGxlcik6Ci0gICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKHgubGluZW5vIC0gMSkKLSAgICAgICAgICAgIGZvciBuYW1lIGluICJmaW5hbGJv
ZHkiLCAib3JlbHNlIjoKLSAgICAgICAgICAgICAgICB2YWwgPSBnZXRhdHRyKHgsIG5hbWUsIE5v
bmUpCi0gICAgICAgICAgICAgICAgaWYgdmFsOgotICAgICAgICAgICAgICAgICAgICAjIHRyZWF0
IHRoZSBmaW5hbGx5L29yZWxzZSBwYXJ0IGFzIGl0cyBvd24gc3RhdGVtZW50Ci0gICAgICAgICAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQodmFsWzBdLmxpbmVubyAtIDEgLSAxKQotICAgIHZhbHVl
cy5zb3J0KCkKLSAgICBpbnNlcnRfaW5kZXggPSBiaXNlY3RfcmlnaHQodmFsdWVzLCBsaW5lbm8p
Ci0gICAgc3RhcnQgPSB2YWx1ZXNbaW5zZXJ0X2luZGV4IC0gMV0KLSAgICBpZiBpbnNlcnRfaW5k
ZXggPj0gbGVuKHZhbHVlcyk6Ci0gICAgICAgIGVuZCA9IE5vbmUKLSAgICBlbHNlOgotICAgICAg
ICBlbmQgPSB2YWx1ZXNbaW5zZXJ0X2luZGV4XQotICAgIHJldHVybiBzdGFydCwgZW5kCi0KLQot
ZGVmIGdldHN0YXRlbWVudHJhbmdlX2FzdChsaW5lbm8sIHNvdXJjZSwgYXNzZXJ0aW9uPUZhbHNl
LCBhc3Rub2RlPU5vbmUpOgotICAgIGlmIGFzdG5vZGUgaXMgTm9uZToKLSAgICAgICAgY29udGVu
dCA9IHN0cihzb3VyY2UpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGFzdG5vZGUgPSBjb21w
aWxlKGNvbnRlbnQsICJzb3VyY2UiLCAiZXhlYyIsIDEwMjQpICAjIDEwMjQgZm9yIEFTVAotICAg
ICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgIHN0YXJ0LCBlbmQgPSBnZXRzdGF0
ZW1lbnRyYW5nZV9vbGQobGluZW5vLCBzb3VyY2UsIGFzc2VydGlvbikKLSAgICAgICAgICAgIHJl
dHVybiBOb25lLCBzdGFydCwgZW5kCi0gICAgc3RhcnQsIGVuZCA9IGdldF9zdGF0ZW1lbnRfc3Rh
cnRlbmQyKGxpbmVubywgYXN0bm9kZSkKLSAgICAjIHdlIG5lZWQgdG8gY29ycmVjdCB0aGUgZW5k
OgotICAgICMgLSBhc3QtcGFyc2luZyBzdHJpcHMgY29tbWVudHMKLSAgICAjIC0gdGhlcmUgbWln
aHQgYmUgZW1wdHkgbGluZXMKLSAgICAjIC0gd2UgbWlnaHQgaGF2ZSBsZXNzZXIgaW5kZW50ZWQg
Y29kZSBibG9ja3MgYXQgdGhlIGVuZAotICAgIGlmIGVuZCBpcyBOb25lOgotICAgICAgICBlbmQg
PSBsZW4oc291cmNlLmxpbmVzKQotCi0gICAgaWYgZW5kID4gc3RhcnQgKyAxOgotICAgICAgICAj
IG1ha2Ugc3VyZSB3ZSBkb24ndCBzcGFuIGRpZmZlcmVudGx5IGluZGVudGVkIGNvZGUgYmxvY2tz
Ci0gICAgICAgICMgYnkgdXNpbmcgdGhlIEJsb2NrRmluZGVyIGhlbHBlciB1c2VkIHdoaWNoIGlu
c3BlY3QuZ2V0c291cmNlKCkgdXNlcyBpdHNlbGYKLSAgICAgICAgYmxvY2tfZmluZGVyID0gaW5z
cGVjdC5CbG9ja0ZpbmRlcigpCi0gICAgICAgICMgaWYgd2Ugc3RhcnQgd2l0aCBhbiBpbmRlbnRl
ZCBsaW5lLCBwdXQgYmxvY2tmaW5kZXIgdG8gInN0YXJ0ZWQiIG1vZGUKLSAgICAgICAgYmxvY2tf
ZmluZGVyLnN0YXJ0ZWQgPSBzb3VyY2UubGluZXNbc3RhcnRdWzBdLmlzc3BhY2UoKQotICAgICAg
ICBpdCA9ICgoeCArICJcbiIpIGZvciB4IGluIHNvdXJjZS5saW5lc1tzdGFydDplbmRdKQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBmb3IgdG9rIGluIHRva2VuaXplLmdlbmVyYXRlX3Rva2Vu
cyhsYW1iZGE6IG5leHQoaXQpKToKLSAgICAgICAgICAgICAgICBibG9ja19maW5kZXIudG9rZW5l
YXRlcigqdG9rKQotICAgICAgICBleGNlcHQgKGluc3BlY3QuRW5kT2ZCbG9jaywgSW5kZW50YXRp
b25FcnJvcik6Ci0gICAgICAgICAgICBlbmQgPSBibG9ja19maW5kZXIubGFzdCArIHN0YXJ0Ci0g
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAjIHRoZSBl
bmQgbWlnaHQgc3RpbGwgcG9pbnQgdG8gYSBjb21tZW50IG9yIGVtcHR5IGxpbmUsIGNvcnJlY3Qg
aXQKLSAgICB3aGlsZSBlbmQ6Ci0gICAgICAgIGxpbmUgPSBzb3VyY2UubGluZXNbZW5kIC0gMV0u
bHN0cmlwKCkKLSAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCIjIikgb3Igbm90IGxpbmU6Ci0g
ICAgICAgICAgICBlbmQgLT0gMQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYnJlYWsKLSAg
ICByZXR1cm4gYXN0bm9kZSwgc3RhcnQsIGVuZAotCi0KLWRlZiBnZXRzdGF0ZW1lbnRyYW5nZV9v
bGQobGluZW5vLCBzb3VyY2UsIGFzc2VydGlvbj1GYWxzZSk6Ci0gICAgIiIiIHJldHVybiAoc3Rh
cnQsIGVuZCkgdHVwbGUgd2hpY2ggc3BhbnMgdGhlIG1pbmltYWwKLSAgICAgICAgc3RhdGVtZW50
IHJlZ2lvbiB3aGljaCBjb250YWluaW5nIHRoZSBnaXZlbiBsaW5lbm8uCi0gICAgICAgIHJhaXNl
IGFuIEluZGV4RXJyb3IgaWYgbm8gc3VjaCBzdGF0ZW1lbnRyYW5nZSBjYW4gYmUgZm91bmQuCi0g
ICAgIiIiCi0gICAgIyBYWFggdGhpcyBsb2dpYyBpcyBvbmx5IHVzZWQgb24gcHl0aG9uMi40IGFu
ZCBiZWxvdwotICAgICMgMS4gZmluZCB0aGUgc3RhcnQgb2YgdGhlIHN0YXRlbWVudAotICAgIGZy
b20gY29kZW9wIGltcG9ydCBjb21waWxlX2NvbW1hbmQKLSAgICBmb3Igc3RhcnQgaW4gcmFuZ2Uo
bGluZW5vLCAtMSwgLTEpOgotICAgICAgICBpZiBhc3NlcnRpb246Ci0gICAgICAgICAgICBsaW5l
ID0gc291cmNlLmxpbmVzW3N0YXJ0XQotICAgICAgICAgICAgIyB0aGUgZm9sbG93aW5nIGxpbmVz
IGFyZSBub3QgZnVsbHkgdGVzdGVkLCBjaGFuZ2Ugd2l0aCBjYXJlCi0gICAgICAgICAgICBpZiAn
c3VwZXInIGluIGxpbmUgYW5kICdzZWxmJyBpbiBsaW5lIGFuZCAnX19pbml0X18nIGluIGxpbmU6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigibGlrZWx5IGEgc3ViY2xhc3MiKQot
ICAgICAgICAgICAgaWYgImFzc2VydCIgbm90IGluIGxpbmUgYW5kICJyYWlzZSIgbm90IGluIGxp
bmU6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgdHJ5bGluZXMgPSBzb3VyY2Uu
bGluZXNbc3RhcnQ6bGluZW5vICsgMV0KLSAgICAgICAgIyBxdWljayBoYWNrIHRvIHByZXBhcmUg
cGFyc2luZyBhbiBpbmRlbnRlZCBsaW5lIHdpdGgKLSAgICAgICAgIyBjb21waWxlX2NvbW1hbmQo
KSAod2hpY2ggZXJyb3JzIG9uICJyZXR1cm4iIG91dHNpZGUgZGVmcykKLSAgICAgICAgdHJ5bGlu
ZXMuaW5zZXJ0KDAsICdkZWYgeHh4KCk6JykKLSAgICAgICAgdHJ5c291cmNlID0gJ1xuICcuam9p
bih0cnlsaW5lcykKLSAgICAgICAgIyAgICAgICAgICAgICAgXiBzcGFjZSBoZXJlCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGNvbXBpbGVfY29tbWFuZCh0cnlzb3VyY2UpCi0gICAgICAgIGV4
Y2VwdCAoU3ludGF4RXJyb3IsIE92ZXJmbG93RXJyb3IsIFZhbHVlRXJyb3IpOgotICAgICAgICAg
ICAgY29udGludWUKLQotICAgICAgICAjIDIuIGZpbmQgdGhlIGVuZCBvZiB0aGUgc3RhdGVtZW50
Ci0gICAgICAgIGZvciBlbmQgaW4gcmFuZ2UobGluZW5vICsgMSwgbGVuKHNvdXJjZSkgKyAxKToK
LSAgICAgICAgICAgIHRyeXNvdXJjZSA9IHNvdXJjZVtzdGFydDplbmRdCi0gICAgICAgICAgICBp
ZiB0cnlzb3VyY2UuaXNwYXJzZWFibGUoKToKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQs
IGVuZAotICAgIHJhaXNlIFN5bnRheEVycm9yKCJubyB2YWxpZCBzb3VyY2UgcmFuZ2UgYXJvdW5k
IGxpbmUgJWQgIiAlIChsaW5lbm8sKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
X2NvZGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjIzMzRmM2Y4ZWRhOTY2YTJk
MThkZWRhNzJlOWQ5MDJmODdkNzFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L19jb2RlL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9fcHkydHJhY2Vi
YWNrLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9jb2RlLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9fY29kZS9zb3VyY2UucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
YXNzZXJ0aW9uL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vX19p
bml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0OGU5OGM4NWFhMmJiZGU4
ZGY1YzA3M2JhOWI2NDVmY2MzMjU3YjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vX19pbml0X18ucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotIiIiCi1zdXBwb3J0IGZvciBwcmVzZW50
aW5nIGRldGFpbGVkIGluZm9ybWF0aW9uIGluIGZhaWxpbmcgYXNzZXJ0aW9ucy4KLSIiIgotZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5j
dGlvbgotaW1wb3J0IHN5cwotaW1wb3J0IHNpeAotCi1mcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGlt
cG9ydCB1dGlsCi1mcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCByZXdyaXRlCi1mcm9tIF9w
eXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB0cnVuY2F0ZQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9u
KHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImRlYnVnY29uZmlnIikKLSAg
ICBncm91cC5hZGRvcHRpb24oJy0tYXNzZXJ0JywKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9u
PSJzdG9yZSIsCi0gICAgICAgICAgICAgICAgICAgIGRlc3Q9ImFzc2VydG1vZGUiLAotICAgICAg
ICAgICAgICAgICAgICBjaG9pY2VzPSgicmV3cml0ZSIsICJwbGFpbiIsKSwKLSAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdD0icmV3cml0ZSIsCi0gICAgICAgICAgICAgICAgICAgIG1ldGF2YXI9
Ik1PREUiLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSIiIkNvbnRyb2wgYXNzZXJ0aW9uIGRl
YnVnZ2luZyB0b29scy4gICdwbGFpbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJm
b3JtcyBubyBhc3NlcnRpb24gZGVidWdnaW5nLiAgJ3Jld3JpdGUnCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRoZSBkZWZhdWx0KSByZXdyaXRlcyBhc3NlcnQgc3RhdGVtZW50cyBpbgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QgbW9kdWxlcyBvbiBpbXBvcnQgdG8gcHJv
dmlkZSBhc3NlcnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uIGluZm9y
bWF0aW9uLiIiIikKLQotCi1kZWYgcmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGUoKm5hbWVzKToKLSAg
ICAiIiJSZWdpc3RlciBvbmUgb3IgbW9yZSBtb2R1bGUgbmFtZXMgdG8gYmUgcmV3cml0dGVuIG9u
IGltcG9ydC4KLQotICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBtYWtlIHN1cmUgdGhhdCB0aGlzIG1v
ZHVsZSBvciBhbGwgbW9kdWxlcyBpbnNpZGUKLSAgICB0aGUgcGFja2FnZSB3aWxsIGdldCB0aGVp
ciBhc3NlcnQgc3RhdGVtZW50cyByZXdyaXR0ZW4uCi0gICAgVGh1cyB5b3Ugc2hvdWxkIG1ha2Ug
c3VyZSB0byBjYWxsIHRoaXMgYmVmb3JlIHRoZSBtb2R1bGUgaXMKLSAgICBhY3R1YWxseSBpbXBv
cnRlZCwgdXN1YWxseSBpbiB5b3VyIF9faW5pdF9fLnB5IGlmIHlvdSBhcmUgYSBwbHVnaW4KLSAg
ICB1c2luZyBhIHBhY2thZ2UuCi0KLSAgICA6cmFpc2UgVHlwZUVycm9yOiBpZiB0aGUgZ2l2ZW4g
bW9kdWxlIG5hbWVzIGFyZSBub3Qgc3RyaW5ncy4KLSAgICAiIiIKLSAgICBmb3IgbmFtZSBpbiBu
YW1lczoKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobmFtZSwgc3RyKToKLSAgICAgICAgICAg
IG1zZyA9ICdleHBlY3RlZCBtb2R1bGUgbmFtZXMgYXMgKmFyZ3MsIGdvdCB7MH0gaW5zdGVhZCcK
LSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cuZm9ybWF0KHJlcHIobmFtZXMpKSkKLSAg
ICBmb3IgaG9vayBpbiBzeXMubWV0YV9wYXRoOgotICAgICAgICBpZiBpc2luc3RhbmNlKGhvb2ss
IHJld3JpdGUuQXNzZXJ0aW9uUmV3cml0aW5nSG9vayk6Ci0gICAgICAgICAgICBpbXBvcnRob29r
ID0gaG9vawotICAgICAgICAgICAgYnJlYWsKLSAgICBlbHNlOgotICAgICAgICBpbXBvcnRob29r
ID0gRHVtbXlSZXdyaXRlSG9vaygpCi0gICAgaW1wb3J0aG9vay5tYXJrX3Jld3JpdGUoKm5hbWVz
KQotCi0KLWNsYXNzIER1bW15UmV3cml0ZUhvb2sob2JqZWN0KToKLSAgICAiIiJBIG5vLW9wIGlt
cG9ydCBob29rIGZvciB3aGVuIHJld3JpdGluZyBpcyBkaXNhYmxlZC4iIiIKLQotICAgIGRlZiBt
YXJrX3Jld3JpdGUoc2VsZiwgKm5hbWVzKToKLSAgICAgICAgcGFzcwotCi0KLWNsYXNzIEFzc2Vy
dGlvblN0YXRlOgotICAgICIiIlN0YXRlIGZvciB0aGUgYXNzZXJ0aW9uIHBsdWdpbi4iIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcsIG1vZGUpOgotICAgICAgICBzZWxmLm1vZGUg
PSBtb2RlCi0gICAgICAgIHNlbGYudHJhY2UgPSBjb25maWcudHJhY2Uucm9vdC5nZXQoImFzc2Vy
dGlvbiIpCi0gICAgICAgIHNlbGYuaG9vayA9IE5vbmUKLQotCi1kZWYgaW5zdGFsbF9pbXBvcnRo
b29rKGNvbmZpZyk6Ci0gICAgIiIiVHJ5IHRvIGluc3RhbGwgdGhlIHJld3JpdGUgaG9vaywgcmFp
c2UgU3lzdGVtRXJyb3IgaWYgaXQgZmFpbHMuIiIiCi0gICAgIyBKeXRob24gaGFzIGFuIEFTVCBi
dWcgdGhhdCBtYWtlIHRoZSBhc3NlcnRpb24gcmV3cml0aW5nIGhvb2sgbWFsZnVuY3Rpb24uCi0g
ICAgaWYgKHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdqYXZhJykpOgotICAgICAgICByYWlzZSBT
eXN0ZW1FcnJvcigncmV3cml0ZSBub3Qgc3VwcG9ydGVkJykKLQotICAgIGNvbmZpZy5fYXNzZXJ0
c3RhdGUgPSBBc3NlcnRpb25TdGF0ZShjb25maWcsICdyZXdyaXRlJykKLSAgICBjb25maWcuX2Fz
c2VydHN0YXRlLmhvb2sgPSBob29rID0gcmV3cml0ZS5Bc3NlcnRpb25SZXdyaXRpbmdIb29rKGNv
bmZpZykKLSAgICBzeXMubWV0YV9wYXRoLmluc2VydCgwLCBob29rKQotICAgIGNvbmZpZy5fYXNz
ZXJ0c3RhdGUudHJhY2UoJ2luc3RhbGxlZCByZXdyaXRlIGltcG9ydCBob29rJykKLQotICAgIGRl
ZiB1bmRvKCk6Ci0gICAgICAgIGhvb2sgPSBjb25maWcuX2Fzc2VydHN0YXRlLmhvb2sKLSAgICAg
ICAgaWYgaG9vayBpcyBub3QgTm9uZSBhbmQgaG9vayBpbiBzeXMubWV0YV9wYXRoOgotICAgICAg
ICAgICAgc3lzLm1ldGFfcGF0aC5yZW1vdmUoaG9vaykKLQotICAgIGNvbmZpZy5hZGRfY2xlYW51
cCh1bmRvKQotICAgIHJldHVybiBob29rCi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0aW9uKHNlc3Np
b24pOgotICAgICMgdGhpcyBob29rIGlzIG9ubHkgY2FsbGVkIHdoZW4gdGVzdCBtb2R1bGVzIGFy
ZSBjb2xsZWN0ZWQKLSAgICAjIHNvIGZvciBleGFtcGxlIG5vdCBpbiB0aGUgbWFzdGVyIHByb2Nl
c3Mgb2YgcHl0ZXN0LXhkaXN0Ci0gICAgIyAod2hpY2ggZG9lcyBub3QgY29sbGVjdCB0ZXN0IG1v
ZHVsZXMpCi0gICAgYXNzZXJ0c3RhdGUgPSBnZXRhdHRyKHNlc3Npb24uY29uZmlnLCAnX2Fzc2Vy
dHN0YXRlJywgTm9uZSkKLSAgICBpZiBhc3NlcnRzdGF0ZToKLSAgICAgICAgaWYgYXNzZXJ0c3Rh
dGUuaG9vayBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGFzc2VydHN0YXRlLmhvb2suc2V0X3Nl
c3Npb24oc2Vzc2lvbikKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAg
IiIiU2V0dXAgdGhlIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUgaG9vawotCi0gICAgVGhlIG5l
d2ludGVycHJldCBhbmQgcmV3cml0ZSBtb2R1bGVzIHdpbGwgdXNlIHV0aWwuX3JlcHJjb21wYXJl
IGlmCi0gICAgaXQgZXhpc3RzIHRvIHVzZSBjdXN0b20gcmVwb3J0aW5nIHZpYSB0aGUKLSAgICBw
eXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlIGhvb2suICBUaGlzIHNldHMgdXAgdGhpcyBjdXN0b20K
LSAgICBjb21wYXJpc29uIGZvciB0aGUgdGVzdC4KLSAgICAiIiIKLSAgICBkZWYgY2FsbGJpbnJl
cHIob3AsIGxlZnQsIHJpZ2h0KToKLSAgICAgICAgIiIiQ2FsbCB0aGUgcHl0ZXN0X2Fzc2VydHJl
cHJfY29tcGFyZSBob29rIGFuZCBwcmVwYXJlIHRoZSByZXN1bHQKLQotICAgICAgICBUaGlzIHVz
ZXMgdGhlIGZpcnN0IHJlc3VsdCBmcm9tIHRoZSBob29rIGFuZCB0aGVuIGVuc3VyZXMgdGhlCi0g
ICAgICAgIGZvbGxvd2luZzoKLSAgICAgICAgKiBPdmVybHkgdmVyYm9zZSBleHBsYW5hdGlvbnMg
YXJlIHRydW5jYXRlZCB1bmxlc3MgY29uZmlndXJlZCBvdGhlcndpc2UKLSAgICAgICAgICAoZWcu
IGlmIHJ1bm5pbmcgaW4gdmVyYm9zZSBtb2RlKS4KLSAgICAgICAgKiBFbWJlZGRlZCBuZXdsaW5l
cyBhcmUgZXNjYXBlZCB0byBoZWxwIHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCkKLSAgICAgICAg
ICBsYXRlci4KLSAgICAgICAgKiBJZiB0aGUgcmV3cml0ZSBtb2RlIGlzIHVzZWQgZW1iZWRkZWQg
JS1jaGFyYWN0ZXJzIGFyZSByZXBsYWNlZAotICAgICAgICAgIHRvIHByb3RlY3QgbGF0ZXIgJSBm
b3JtYXR0aW5nLgotCi0gICAgICAgIFRoZSByZXN1bHQgY2FuIGJlIGZvcm1hdHRlZCBieSB1dGls
LmZvcm1hdF9leHBsYW5hdGlvbigpIGZvcgotICAgICAgICBwcmV0dHkgcHJpbnRpbmcuCi0gICAg
ICAgICIiIgotICAgICAgICBob29rX3Jlc3VsdCA9IGl0ZW0uaWhvb2sucHl0ZXN0X2Fzc2VydHJl
cHJfY29tcGFyZSgKLSAgICAgICAgICAgIGNvbmZpZz1pdGVtLmNvbmZpZywgb3A9b3AsIGxlZnQ9
bGVmdCwgcmlnaHQ9cmlnaHQpCi0gICAgICAgIGZvciBuZXdfZXhwbCBpbiBob29rX3Jlc3VsdDoK
LSAgICAgICAgICAgIGlmIG5ld19leHBsOgotICAgICAgICAgICAgICAgIG5ld19leHBsID0gdHJ1
bmNhdGUudHJ1bmNhdGVfaWZfcmVxdWlyZWQobmV3X2V4cGwsIGl0ZW0pCi0gICAgICAgICAgICAg
ICAgbmV3X2V4cGwgPSBbbGluZS5yZXBsYWNlKCJcbiIsICJcXG4iKSBmb3IgbGluZSBpbiBuZXdf
ZXhwbF0KLSAgICAgICAgICAgICAgICByZXMgPSBzaXgudGV4dF90eXBlKCJcbn4iKS5qb2luKG5l
d19leHBsKQotICAgICAgICAgICAgICAgIGlmIGl0ZW0uY29uZmlnLmdldHZhbHVlKCJhc3NlcnRt
b2RlIikgPT0gInJld3JpdGUiOgotICAgICAgICAgICAgICAgICAgICByZXMgPSByZXMucmVwbGFj
ZSgiJSIsICIlJSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcwotICAgIHV0aWwuX3JlcHJj
b21wYXJlID0gY2FsbGJpbnJlcHIKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRl
bSk6Ci0gICAgdXRpbC5fcmVwcmNvbXBhcmUgPSBOb25lCi0KLQotZGVmIHB5dGVzdF9zZXNzaW9u
ZmluaXNoKHNlc3Npb24pOgotICAgIGFzc2VydHN0YXRlID0gZ2V0YXR0cihzZXNzaW9uLmNvbmZp
ZywgJ19hc3NlcnRzdGF0ZScsIE5vbmUpCi0gICAgaWYgYXNzZXJ0c3RhdGU6Ci0gICAgICAgIGlm
IGFzc2VydHN0YXRlLmhvb2sgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBhc3NlcnRzdGF0ZS5o
b29rLnNldF9zZXNzaW9uKE5vbmUpCi0KLQotIyBFeHBvc2UgdGhpcyBwbHVnaW4ncyBpbXBsZW1l
bnRhdGlvbiBmb3IgdGhlIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUgaG9vawotcHl0ZXN0X2Fz
c2VydHJlcHJfY29tcGFyZSA9IHV0aWwuYXNzZXJ0cmVwcl9jb21wYXJlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9yZXdyaXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9hc3NlcnRpb24vcmV3cml0ZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjY0MzU4ZjQ5MGJjOTFhZjlhNWVjNTI2NTJiNmU4YjJiZTBhY2M2MS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2Vy
dGlvbi9yZXdyaXRlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOTQ4ICswLDAgQEAKLSIiIlJld3Jp
dGUgYXNzZXJ0aW9uIEFTVCB0byBwcm9kdWNlIG5pY2UgZXJyb3IgbWVzc2FnZXMiIiIKLWZyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rp
b24KLWltcG9ydCBhc3QKLWltcG9ydCBfYXN0Ci1pbXBvcnQgZXJybm8KLWltcG9ydCBpdGVydG9v
bHMKLWltcG9ydCBpbXAKLWltcG9ydCBtYXJzaGFsCi1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1w
b3J0IHNpeAotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHN5cwotaW1wb3J0IHR5cGVzCi0KLWltcG9y
dCBweQotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgdXRpbAotCi0KLSMgcHl0ZXN0IGNh
Y2hlcyByZXdyaXR0ZW4gcHljcyBpbiBfX3B5Y2FjaGVfXy4KLWlmIGhhc2F0dHIoaW1wLCAiZ2V0
X3RhZyIpOgotICAgIFBZVEVTVF9UQUcgPSBpbXAuZ2V0X3RhZygpICsgIi1QWVRFU1QiCi1lbHNl
OgotICAgIGlmIGhhc2F0dHIoc3lzLCAicHlweV92ZXJzaW9uX2luZm8iKToKLSAgICAgICAgaW1w
bCA9ICJweXB5IgotICAgIGVsaWYgc3lzLnBsYXRmb3JtID09ICJqYXZhIjoKLSAgICAgICAgaW1w
bCA9ICJqeXRob24iCi0gICAgZWxzZToKLSAgICAgICAgaW1wbCA9ICJjcHl0aG9uIgotICAgIHZl
ciA9IHN5cy52ZXJzaW9uX2luZm8KLSAgICBQWVRFU1RfVEFHID0gIiVzLSVzJXMtUFlURVNUIiAl
IChpbXBsLCB2ZXJbMF0sIHZlclsxXSkKLSAgICBkZWwgdmVyLCBpbXBsCi0KLVBZQ19FWFQgPSAi
LnB5IiArIChfX2RlYnVnX18gYW5kICJjIiBvciAibyIpCi1QWUNfVEFJTCA9ICIuIiArIFBZVEVT
VF9UQUcgKyBQWUNfRVhUCi0KLUFTQ0lJX0lTX0RFRkFVTFRfRU5DT0RJTkcgPSBzeXMudmVyc2lv
bl9pbmZvWzBdIDwgMwotCi1pZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA1KToKLSAgICBhc3Rf
Q2FsbCA9IGFzdC5DYWxsCi1lbHNlOgotICAgIGRlZiBhc3RfQ2FsbChhLCBiLCBjKToKLSAgICAg
ICAgcmV0dXJuIGFzdC5DYWxsKGEsIGIsIGMsIE5vbmUsIE5vbmUpCi0KLQotY2xhc3MgQXNzZXJ0
aW9uUmV3cml0aW5nSG9vayhvYmplY3QpOgotICAgICIiIlBFUDMwMiBJbXBvcnQgaG9vayB3aGlj
aCByZXdyaXRlcyBhc3NlcnRzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6
Ci0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCi0gICAgICAgIHNlbGYuZm5wYXRzID0gY29u
ZmlnLmdldGluaSgicHl0aG9uX2ZpbGVzIikKLSAgICAgICAgc2VsZi5zZXNzaW9uID0gTm9uZQot
ICAgICAgICBzZWxmLm1vZHVsZXMgPSB7fQotICAgICAgICBzZWxmLl9yZXdyaXR0ZW5fbmFtZXMg
PSBzZXQoKQotICAgICAgICBzZWxmLl9yZWdpc3Rlcl93aXRoX3BrZ19yZXNvdXJjZXMoKQotICAg
ICAgICBzZWxmLl9tdXN0X3Jld3JpdGUgPSBzZXQoKQotCi0gICAgZGVmIHNldF9zZXNzaW9uKHNl
bGYsIHNlc3Npb24pOgotICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCi0KLSAgICBkZWYg
ZmluZF9tb2R1bGUoc2VsZiwgbmFtZSwgcGF0aD1Ob25lKToKLSAgICAgICAgc3RhdGUgPSBzZWxm
LmNvbmZpZy5fYXNzZXJ0c3RhdGUKLSAgICAgICAgc3RhdGUudHJhY2UoImZpbmRfbW9kdWxlIGNh
bGxlZCBmb3I6ICVzIiAlIG5hbWUpCi0gICAgICAgIG5hbWVzID0gbmFtZS5yc3BsaXQoIi4iLCAx
KQotICAgICAgICBsYXN0bmFtZSA9IG5hbWVzWy0xXQotICAgICAgICBwdGggPSBOb25lCi0gICAg
ICAgIGlmIHBhdGggaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAjIFN0YXJ0aW5nIHdpdGggUHl0
aG9uIDMuMywgcGF0aCBpcyBhIF9OYW1lc3BhY2VQYXRoKCksIHdoaWNoCi0gICAgICAgICAgICAj
IGNhdXNlcyBwcm9ibGVtcyBpZiBub3QgY29udmVydGVkIHRvIGxpc3QuCi0gICAgICAgICAgICBw
YXRoID0gbGlzdChwYXRoKQotICAgICAgICAgICAgaWYgbGVuKHBhdGgpID09IDE6Ci0gICAgICAg
ICAgICAgICAgcHRoID0gcGF0aFswXQotICAgICAgICBpZiBwdGggaXMgTm9uZToKLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICBmZCwgZm4sIGRlc2MgPSBpbXAuZmluZF9tb2R1bGUo
bGFzdG5hbWUsIHBhdGgpCi0gICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIGlmIGZkIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIGZkLmNsb3NlKCkKLSAgICAgICAgICAgIHRwID0gZGVzY1syXQotICAgICAg
ICAgICAgaWYgdHAgPT0gaW1wLlBZX0NPTVBJTEVEOgotICAgICAgICAgICAgICAgIGlmIGhhc2F0
dHIoaW1wLCAic291cmNlX2Zyb21fY2FjaGUiKToKLSAgICAgICAgICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgICAgICAgICAgZm4gPSBpbXAuc291cmNlX2Zyb21fY2FjaGUoZm4pCi0g
ICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgICAgICAg
ICAgICAgIyBQeXRob24gMyBkb2Vzbid0IGxpa2Ugb3JwaGFuZWQgYnV0IHN0aWxsLWltcG9ydGFi
bGUKLSAgICAgICAgICAgICAgICAgICAgICAgICMgLnB5YyBmaWxlcy4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIGZuID0gZm5bOi0xXQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgICAgIGZuID0gZm5bOi0xXQotICAgICAgICAgICAgZWxpZiB0cCAhPSBpbXAuUFlfU09V
UkNFOgotICAgICAgICAgICAgICAgICMgRG9uJ3Qga25vdyB3aGF0IHRoaXMgaXMuCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZuID0gb3Mu
cGF0aC5qb2luKHB0aCwgbmFtZS5ycGFydGl0aW9uKCIuIilbMl0gKyAiLnB5IikKLQotICAgICAg
ICBmbl9weXBhdGggPSBweS5wYXRoLmxvY2FsKGZuKQotICAgICAgICBpZiBub3Qgc2VsZi5fc2hv
dWxkX3Jld3JpdGUobmFtZSwgZm5fcHlwYXRoLCBzdGF0ZSk6Ci0gICAgICAgICAgICByZXR1cm4g
Tm9uZQotCi0gICAgICAgIHNlbGYuX3Jld3JpdHRlbl9uYW1lcy5hZGQobmFtZSkKLQotICAgICAg
ICAjIFRoZSByZXF1ZXN0ZWQgbW9kdWxlIGxvb2tzIGxpa2UgYSB0ZXN0IGZpbGUsIHNvIHJld3Jp
dGUgaXQuIFRoaXMgaXMKLSAgICAgICAgIyB0aGUgbW9zdCBtYWdpY2FsIHBhcnQgb2YgdGhlIHBy
b2Nlc3M6IGxvYWQgdGhlIHNvdXJjZSwgcmV3cml0ZSB0aGUKLSAgICAgICAgIyBhc3NlcnRzLCBh
bmQgbG9hZCB0aGUgcmV3cml0dGVuIHNvdXJjZS4gV2UgYWxzbyBjYWNoZSB0aGUgcmV3cml0dGVu
Ci0gICAgICAgICMgbW9kdWxlIGNvZGUgaW4gYSBzcGVjaWFsIHB5Yy4gV2UgbXVzdCBiZSBhd2Fy
ZSBvZiB0aGUgcG9zc2liaWxpdHkgb2YKLSAgICAgICAgIyBjb25jdXJyZW50IHB5dGVzdCBwcm9j
ZXNzZXMgcmV3cml0aW5nIGFuZCBsb2FkaW5nIHB5Y3MuIFRvIGF2b2lkCi0gICAgICAgICMgdHJp
Y2t5IHJhY2UgY29uZGl0aW9ucywgd2UgbWFpbnRhaW4gdGhlIGZvbGxvd2luZyBpbnZhcmlhbnQ6
IFRoZQotICAgICAgICAjIGNhY2hlZCBweWMgaXMgYWx3YXlzIGEgY29tcGxldGUsIHZhbGlkIHB5
Yy4gT3BlcmF0aW9ucyBvbiBpdCBtdXN0IGJlCi0gICAgICAgICMgYXRvbWljLiBQT1NJWCdzIGF0
b21pYyByZW5hbWUgY29tZXMgaW4gaGFuZHkuCi0gICAgICAgIHdyaXRlID0gbm90IHN5cy5kb250
X3dyaXRlX2J5dGVjb2RlCi0gICAgICAgIGNhY2hlX2RpciA9IG9zLnBhdGguam9pbihmbl9weXBh
dGguZGlybmFtZSwgIl9fcHljYWNoZV9fIikKLSAgICAgICAgaWYgd3JpdGU6Ci0gICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgb3MubWtkaXIoY2FjaGVfZGlyKQotICAgICAgICAgICAg
ZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgICAgICAgICAgZSA9IHN5cy5leGNfaW5mbygpWzFdLmVy
cm5vCi0gICAgICAgICAgICAgICAgaWYgZSA9PSBlcnJuby5FRVhJU1Q6Ci0gICAgICAgICAgICAg
ICAgICAgICMgRWl0aGVyIHRoZSBfX3B5Y2FjaGVfXyBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHMg
KHRoZQotICAgICAgICAgICAgICAgICAgICAjIGNvbW1vbiBjYXNlKSBvciBpdCdzIGJsb2NrZWQg
YnkgYSBub24tZGlyIG5vZGUuIEluIHRoZQotICAgICAgICAgICAgICAgICAgICAjIGxhdHRlciBj
YXNlLCB3ZSdsbCBpZ25vcmUgaXQgaW4gX3dyaXRlX3B5Yy4KLSAgICAgICAgICAgICAgICAgICAg
cGFzcwotICAgICAgICAgICAgICAgIGVsaWYgZSBpbiBbZXJybm8uRU5PRU5ULCBlcnJuby5FTk9U
RElSXToKLSAgICAgICAgICAgICAgICAgICAgIyBPbmUgb2YgdGhlIHBhdGggY29tcG9uZW50cyB3
YXMgbm90IGEgZGlyZWN0b3J5LCBsaWtlbHkKLSAgICAgICAgICAgICAgICAgICAgIyBiZWNhdXNl
IHdlJ3JlIGluIGEgemlwIGZpbGUuCi0gICAgICAgICAgICAgICAgICAgIHdyaXRlID0gRmFsc2UK
LSAgICAgICAgICAgICAgICBlbGlmIGUgaW4gW2Vycm5vLkVBQ0NFUywgZXJybm8uRVJPRlMsIGVy
cm5vLkVQRVJNXToKLSAgICAgICAgICAgICAgICAgICAgc3RhdGUudHJhY2UoInJlYWQgb25seSBk
aXJlY3Rvcnk6ICVyIiAlIGZuX3B5cGF0aC5kaXJuYW1lKQotICAgICAgICAgICAgICAgICAgICB3
cml0ZSA9IEZhbHNlCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
cmFpc2UKLSAgICAgICAgY2FjaGVfbmFtZSA9IGZuX3B5cGF0aC5iYXNlbmFtZVs6LTNdICsgUFlD
X1RBSUwKLSAgICAgICAgcHljID0gb3MucGF0aC5qb2luKGNhY2hlX2RpciwgY2FjaGVfbmFtZSkK
LSAgICAgICAgIyBOb3RpY2UgdGhhdCBldmVuIGlmIHdlJ3JlIGluIGEgcmVhZC1vbmx5IGRpcmVj
dG9yeSwgSSdtIGdvaW5nCi0gICAgICAgICMgdG8gY2hlY2sgZm9yIGEgY2FjaGVkIHB5Yy4gVGhp
cyBtYXkgbm90IGJlIG9wdGltYWwuLi4KLSAgICAgICAgY28gPSBfcmVhZF9weWMoZm5fcHlwYXRo
LCBweWMsIHN0YXRlLnRyYWNlKQotICAgICAgICBpZiBjbyBpcyBOb25lOgotICAgICAgICAgICAg
c3RhdGUudHJhY2UoInJld3JpdGluZyAlciIgJSAoZm4sKSkKLSAgICAgICAgICAgIHNvdXJjZV9z
dGF0LCBjbyA9IF9yZXdyaXRlX3Rlc3Qoc2VsZi5jb25maWcsIGZuX3B5cGF0aCkKLSAgICAgICAg
ICAgIGlmIGNvIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgIyBQcm9iYWJseSBhIFN5bnRheEVy
cm9yIGluIHRoZSB0ZXN0LgotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAg
ICBpZiB3cml0ZToKLSAgICAgICAgICAgICAgICBfbWFrZV9yZXdyaXR0ZW5fcHljKHN0YXRlLCBz
b3VyY2Vfc3RhdCwgcHljLCBjbykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHN0YXRlLnRy
YWNlKCJmb3VuZCBjYWNoZWQgcmV3cml0dGVuIHB5YyBmb3IgJXIiICUgKGZuLCkpCi0gICAgICAg
IHNlbGYubW9kdWxlc1tuYW1lXSA9IGNvLCBweWMKLSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAg
IGRlZiBfc2hvdWxkX3Jld3JpdGUoc2VsZiwgbmFtZSwgZm5fcHlwYXRoLCBzdGF0ZSk6Ci0gICAg
ICAgICMgYWx3YXlzIHJld3JpdGUgY29uZnRlc3QgZmlsZXMKLSAgICAgICAgZm4gPSBzdHIoZm5f
cHlwYXRoKQotICAgICAgICBpZiBmbl9weXBhdGguYmFzZW5hbWUgPT0gJ2NvbmZ0ZXN0LnB5JzoK
LSAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJyZXdyaXRpbmcgY29uZnRlc3QgZmlsZTogJXIiICUg
KGZuLCkpCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgICAgIGlmIHNlbGYuc2Vzc2lv
biBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGlmIHNlbGYuc2Vzc2lvbi5pc2luaXRwYXRoKGZu
KToKLSAgICAgICAgICAgICAgICBzdGF0ZS50cmFjZSgibWF0Y2hlZCB0ZXN0IGZpbGUgKHdhcyBz
cGVjaWZpZWQgb24gY21kbGluZSk6ICVyIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGZuLCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICAgICAjIG1vZHVsZXMg
bm90IHBhc3NlZCBleHBsaWNpdGx5IG9uIHRoZSBjb21tYW5kIGxpbmUgYXJlIG9ubHkKLSAgICAg
ICAgIyByZXdyaXR0ZW4gaWYgdGhleSBtYXRjaCB0aGUgbmFtaW5nIGNvbnZlbnRpb24gZm9yIHRl
c3QgZmlsZXMKLSAgICAgICAgZm9yIHBhdCBpbiBzZWxmLmZucGF0czoKLSAgICAgICAgICAgIGlm
IGZuX3B5cGF0aC5mbm1hdGNoKHBhdCk6Ci0gICAgICAgICAgICAgICAgc3RhdGUudHJhY2UoIm1h
dGNoZWQgdGVzdCBmaWxlICVyIiAlIChmbiwpKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVl
Ci0KLSAgICAgICAgZm9yIG1hcmtlZCBpbiBzZWxmLl9tdXN0X3Jld3JpdGU6Ci0gICAgICAgICAg
ICBpZiBuYW1lID09IG1hcmtlZCBvciBuYW1lLnN0YXJ0c3dpdGgobWFya2VkICsgJy4nKToKLSAg
ICAgICAgICAgICAgICBzdGF0ZS50cmFjZSgibWF0Y2hlZCBtYXJrZWQgZmlsZSAlciAoZnJvbSAl
cikiICUgKG5hbWUsIG1hcmtlZCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAg
ICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBtYXJrX3Jld3JpdGUoc2VsZiwgKm5hbWVzKToK
LSAgICAgICAgIiIiTWFyayBpbXBvcnQgbmFtZXMgYXMgbmVlZGluZyB0byBiZSByZXdyaXR0ZW4u
Ci0KLSAgICAgICAgVGhlIG5hbWVkIG1vZHVsZSBvciBwYWNrYWdlIGFzIHdlbGwgYXMgYW55IG5l
c3RlZCBtb2R1bGVzIHdpbGwKLSAgICAgICAgYmUgcmV3cml0dGVuIG9uIGltcG9ydC4KLSAgICAg
ICAgIiIiCi0gICAgICAgIGFscmVhZHlfaW1wb3J0ZWQgPSBzZXQobmFtZXMpLmludGVyc2VjdGlv
bihzZXQoc3lzLm1vZHVsZXMpKQotICAgICAgICBpZiBhbHJlYWR5X2ltcG9ydGVkOgotICAgICAg
ICAgICAgZm9yIG5hbWUgaW4gYWxyZWFkeV9pbXBvcnRlZDoKLSAgICAgICAgICAgICAgICBpZiBu
YW1lIG5vdCBpbiBzZWxmLl9yZXdyaXR0ZW5fbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX3dhcm5fYWxyZWFkeV9pbXBvcnRlZChuYW1lKQotICAgICAgICBzZWxmLl9tdXN0X3Jld3Jp
dGUudXBkYXRlKG5hbWVzKQotCi0gICAgZGVmIF93YXJuX2FscmVhZHlfaW1wb3J0ZWQoc2VsZiwg
bmFtZSk6Ci0gICAgICAgIHNlbGYuY29uZmlnLndhcm4oCi0gICAgICAgICAgICAnUDEnLAotICAg
ICAgICAgICAgJ01vZHVsZSBhbHJlYWR5IGltcG9ydGVkIHNvIGNhbm5vdCBiZSByZXdyaXR0ZW46
ICVzJyAlIG5hbWUpCi0KLSAgICBkZWYgbG9hZF9tb2R1bGUoc2VsZiwgbmFtZSk6Ci0gICAgICAg
ICMgSWYgdGhlcmUgaXMgYW4gZXhpc3RpbmcgbW9kdWxlIG9iamVjdCBuYW1lZCAnZnVsbG5hbWUn
IGluCi0gICAgICAgICMgc3lzLm1vZHVsZXMsIHRoZSBsb2FkZXIgbXVzdCB1c2UgdGhhdCBleGlz
dGluZyBtb2R1bGUuIChPdGhlcndpc2UsCi0gICAgICAgICMgdGhlIHJlbG9hZCgpIGJ1aWx0aW4g
d2lsbCBub3Qgd29yayBjb3JyZWN0bHkuKQotICAgICAgICBpZiBuYW1lIGluIHN5cy5tb2R1bGVz
OgotICAgICAgICAgICAgcmV0dXJuIHN5cy5tb2R1bGVzW25hbWVdCi0KLSAgICAgICAgY28sIHB5
YyA9IHNlbGYubW9kdWxlcy5wb3AobmFtZSkKLSAgICAgICAgIyBJIHdpc2ggSSBjb3VsZCBqdXN0
IGNhbGwgaW1wLmxvYWRfY29tcGlsZWQgaGVyZSwgYnV0IF9fZmlsZV9fIGhhcyB0bwotICAgICAg
ICAjIGJlIHNldCBwcm9wZXJseS4gSW4gUHl0aG9uIDMuMissIHRoaXMgYWxsIHdvdWxkIGJlIGhh
bmRsZWQgY29ycmVjdGx5Ci0gICAgICAgICMgYnkgbG9hZF9jb21waWxlZC4KLSAgICAgICAgbW9k
ID0gc3lzLm1vZHVsZXNbbmFtZV0gPSBpbXAubmV3X21vZHVsZShuYW1lKQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBtb2QuX19maWxlX18gPSBjby5jb19maWxlbmFtZQotICAgICAgICAgICAg
IyBOb3JtYWxseSwgdGhpcyBhdHRyaWJ1dGUgaXMgMy4yKy4KLSAgICAgICAgICAgIG1vZC5fX2Nh
Y2hlZF9fID0gcHljCi0gICAgICAgICAgICBtb2QuX19sb2FkZXJfXyA9IHNlbGYKLSAgICAgICAg
ICAgIHB5LmJ1aWx0aW4uZXhlY18oY28sIG1vZC5fX2RpY3RfXykKLSAgICAgICAgZXhjZXB0OiAg
IyBub3FhCi0gICAgICAgICAgICBpZiBuYW1lIGluIHN5cy5tb2R1bGVzOgotICAgICAgICAgICAg
ICAgIGRlbCBzeXMubW9kdWxlc1tuYW1lXQotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgcmV0
dXJuIHN5cy5tb2R1bGVzW25hbWVdCi0KLSAgICBkZWYgaXNfcGFja2FnZShzZWxmLCBuYW1lKToK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZmQsIGZuLCBkZXNjID0gaW1wLmZpbmRfbW9kdWxl
KG5hbWUpCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBG
YWxzZQotICAgICAgICBpZiBmZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZkLmNsb3NlKCkK
LSAgICAgICAgdHAgPSBkZXNjWzJdCi0gICAgICAgIHJldHVybiB0cCA9PSBpbXAuUEtHX0RJUkVD
VE9SWQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9yZWdpc3Rlcl93aXRoX3BrZ19yZXNv
dXJjZXMoY2xzKToKLSAgICAgICAgIiIiCi0gICAgICAgIEVuc3VyZSBwYWNrYWdlIHJlc291cmNl
cyBjYW4gYmUgbG9hZGVkIGZyb20gdGhpcyBsb2FkZXIuIE1heSBiZSBjYWxsZWQKLSAgICAgICAg
bXVsdGlwbGUgdGltZXMsIGFzIHRoZSBvcGVyYXRpb24gaXMgaWRlbXBvdGVudC4KLSAgICAgICAg
IiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGltcG9ydCBwa2dfcmVzb3VyY2VzCi0gICAg
ICAgICAgICAjIGFjY2VzcyBhbiBhdHRyaWJ1dGUgaW4gY2FzZSBhIGRlZmVycmVkIGltcG9ydGVy
IGlzIHByZXNlbnQKLSAgICAgICAgICAgIHBrZ19yZXNvdXJjZXMuX19uYW1lX18KLSAgICAgICAg
ZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBTaW5j
ZSBweXRlc3QgdGVzdHMgYXJlIGFsd2F5cyBsb2NhdGVkIGluIHRoZSBmaWxlIHN5c3RlbSwgdGhl
Ci0gICAgICAgICMgIERlZmF1bHRQcm92aWRlciBpcyBhcHByb3ByaWF0ZS4KLSAgICAgICAgcGtn
X3Jlc291cmNlcy5yZWdpc3Rlcl9sb2FkZXJfdHlwZShjbHMsIHBrZ19yZXNvdXJjZXMuRGVmYXVs
dFByb3ZpZGVyKQotCi0gICAgZGVmIGdldF9kYXRhKHNlbGYsIHBhdGhuYW1lKToKLSAgICAgICAg
IiIiT3B0aW9uYWwgUEVQMzAyIGdldF9kYXRhIEFQSS4KLSAgICAgICAgIiIiCi0gICAgICAgIHdp
dGggb3BlbihwYXRobmFtZSwgJ3JiJykgYXMgZjoKLSAgICAgICAgICAgIHJldHVybiBmLnJlYWQo
KQotCi0KLWRlZiBfd3JpdGVfcHljKHN0YXRlLCBjbywgc291cmNlX3N0YXQsIHB5Yyk6Ci0gICAg
IyBUZWNobmljYWxseSwgd2UgZG9uJ3QgaGF2ZSB0byBoYXZlIHRoZSBzYW1lIHB5YyBmb3JtYXQg
YXMKLSAgICAjIChDKVB5dGhvbiwgc2luY2UgdGhlc2UgInB5Y3MiIHNob3VsZCBuZXZlciBiZSBz
ZWVuIGJ5IGJ1aWx0aW4KLSAgICAjIGltcG9ydC4gSG93ZXZlciwgdGhlcmUncyBsaXR0bGUgcmVh
c29uIGRldmlhdGUsIGFuZCBJIGhvcGUKLSAgICAjIHNvbWV0aW1lIHRvIGJlIGFibGUgdG8gdXNl
IGltcC5sb2FkX2NvbXBpbGVkIHRvIGxvYWQgdGhlbS4gKFNlZQotICAgICMgdGhlIGNvbW1lbnQg
aW4gbG9hZF9tb2R1bGUgYWJvdmUuKQotICAgIHRyeToKLSAgICAgICAgZnAgPSBvcGVuKHB5Yywg
IndiIikKLSAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAgZXJyID0gc3lzLmV4Y19pbmZvKClb
MV0uZXJybm8KLSAgICAgICAgc3RhdGUudHJhY2UoImVycm9yIHdyaXRpbmcgcHljIGZpbGUgYXQg
JXM6IGVycm5vPSVzIiAlIChweWMsIGVycikpCi0gICAgICAgICMgd2UgaWdub3JlIGFueSBmYWls
dXJlIHRvIHdyaXRlIHRoZSBjYWNoZSBmaWxlCi0gICAgICAgICMgdGhlcmUgYXJlIG1hbnkgcmVh
c29ucywgcGVybWlzc2lvbi1kZW5pZWQsIF9fcHljYWNoZV9fIGJlaW5nIGEKLSAgICAgICAgIyBm
aWxlIGV0Yy4KLSAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgdHJ5OgotICAgICAgICBmcC53cml0
ZShpbXAuZ2V0X21hZ2ljKCkpCi0gICAgICAgIG10aW1lID0gaW50KHNvdXJjZV9zdGF0Lm10aW1l
KQotICAgICAgICBzaXplID0gc291cmNlX3N0YXQuc2l6ZSAmIDB4RkZGRkZGRkYKLSAgICAgICAg
ZnAud3JpdGUoc3RydWN0LnBhY2soIjxsbCIsIG10aW1lLCBzaXplKSkKLSAgICAgICAgbWFyc2hh
bC5kdW1wKGNvLCBmcCkKLSAgICBmaW5hbGx5OgotICAgICAgICBmcC5jbG9zZSgpCi0gICAgcmV0
dXJuIFRydWUKLQotCi1STiA9ICJcclxuIi5lbmNvZGUoInV0Zi04IikKLU4gPSAiXG4iLmVuY29k
ZSgidXRmLTgiKQotCi1jb29raWVfcmUgPSByZS5jb21waWxlKHIiXlsgXHRcZl0qIy4qY29kaW5n
Wzo9XVsgXHRdKlstXHcuXSsiKQotQk9NX1VURjggPSAnXHhlZlx4YmJceGJmJwotCi0KLWRlZiBf
cmV3cml0ZV90ZXN0KGNvbmZpZywgZm4pOgotICAgICIiIlRyeSB0byByZWFkIGFuZCByZXdyaXRl
ICpmbiogYW5kIHJldHVybiB0aGUgY29kZSBvYmplY3QuIiIiCi0gICAgc3RhdGUgPSBjb25maWcu
X2Fzc2VydHN0YXRlCi0gICAgdHJ5OgotICAgICAgICBzdGF0ID0gZm4uc3RhdCgpCi0gICAgICAg
IHNvdXJjZSA9IGZuLnJlYWQoInJiIikKLSAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKLSAg
ICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKLSAgICBpZiBBU0NJSV9JU19ERUZBVUxUX0VOQ09ESU5H
OgotICAgICAgICAjIEFTQ0lJIGlzIHRoZSBkZWZhdWx0IGVuY29kaW5nIGluIFB5dGhvbiAyLiBX
aXRob3V0IGEgY29kaW5nCi0gICAgICAgICMgZGVjbGFyYXRpb24sIFB5dGhvbiAyIHdpbGwgY29t
cGxhaW4gYWJvdXQgYW55IGJ5dGVzIGluIHRoZSBmaWxlCi0gICAgICAgICMgb3V0c2lkZSB0aGUg
QVNDSUkgcmFuZ2UuIFNhZGx5LCB0aGlzIGJlaGF2aW9yIGRvZXMgbm90IGV4dGVuZCB0bwotICAg
ICAgICAjIGNvbXBpbGUoKSBvciBhc3QucGFyc2UoKSwgd2hpY2ggcHJlZmVyIHRvIGludGVycHJl
dCB0aGUgYnl0ZXMgYXMKLSAgICAgICAgIyBsYXRpbi0xLiAoQXQgbGVhc3QgdGhleSBwcm9wZXJs
eSBoYW5kbGUgZXhwbGljaXQgY29kaW5nIGNvb2tpZXMuKSBUbwotICAgICAgICAjIHByZXNlcnZl
IHRoaXMgZXJyb3IgYmVoYXZpb3IsIHdlIGNvdWxkIGZvcmNlIGFzdC5wYXJzZSgpIHRvIHVzZSBB
U0NJSQotICAgICAgICAjIGFzIHRoZSBlbmNvZGluZyBieSBpbnNlcnRpbmcgYSBjb2RpbmcgY29v
a2llLiBVbmZvcnR1bmF0ZWx5LCB0aGF0Ci0gICAgICAgICMgbWVzc2VzIHVwIGxpbmUgbnVtYmVy
cy4gVGh1cywgd2UgaGF2ZSB0byBjaGVjayBvdXJzZWx2ZXMgaWYgYW55dGhpbmcKLSAgICAgICAg
IyBpcyBvdXRzaWRlIHRoZSBBU0NJSSByYW5nZSBpbiB0aGUgY2FzZSBubyBlbmNvZGluZyBpcyBl
eHBsaWNpdGx5Ci0gICAgICAgICMgZGVjbGFyZWQuIEZvciBtb3JlIGNvbnRleHQsIHNlZSBpc3N1
ZSAjMjY5LiBZYXkgZm9yIFB5dGhvbiAzIHdoaWNoCi0gICAgICAgICMgZ2V0cyB0aGlzIHJpZ2h0
LgotICAgICAgICBlbmQxID0gc291cmNlLmZpbmQoIlxuIikKLSAgICAgICAgZW5kMiA9IHNvdXJj
ZS5maW5kKCJcbiIsIGVuZDEgKyAxKQotICAgICAgICBpZiAobm90IHNvdXJjZS5zdGFydHN3aXRo
KEJPTV9VVEY4KSBhbmQKLSAgICAgICAgICAgIGNvb2tpZV9yZS5tYXRjaChzb3VyY2VbMDplbmQx
XSkgaXMgTm9uZSBhbmQKLSAgICAgICAgICAgICAgICBjb29raWVfcmUubWF0Y2goc291cmNlW2Vu
ZDEgKyAxOmVuZDJdKSBpcyBOb25lKToKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoc3RhdGUsICJf
aW5kZWNvZGUiKToKLSAgICAgICAgICAgICAgICAjIGVuY29kaW5ncyBpbXBvcnRlZCB1cyBhZ2Fp
biwgc28gZG9uJ3QgcmV3cml0ZS4KLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQot
ICAgICAgICAgICAgc3RhdGUuX2luZGVjb2RlID0gVHJ1ZQotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgc291cmNlLmRlY29kZSgiYXNj
aWkiKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6Ci0gICAgICAg
ICAgICAgICAgICAgICMgTGV0IGl0IGZhaWwgaW4gcmVhbCBpbXBvcnQuCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBOb25lLCBOb25lCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAg
ICAgICAgIGRlbCBzdGF0ZS5faW5kZWNvZGUKLSAgICB0cnk6Ci0gICAgICAgIHRyZWUgPSBhc3Qu
cGFyc2Uoc291cmNlKQotICAgIGV4Y2VwdCBTeW50YXhFcnJvcjoKLSAgICAgICAgIyBMZXQgdGhp
cyBwb3AgdXAgYWdhaW4gaW4gdGhlIHJlYWwgaW1wb3J0LgotICAgICAgICBzdGF0ZS50cmFjZSgi
ZmFpbGVkIHRvIHBhcnNlOiAlciIgJSAoZm4sKSkKLSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUK
LSAgICByZXdyaXRlX2Fzc2VydHModHJlZSwgZm4sIGNvbmZpZykKLSAgICB0cnk6Ci0gICAgICAg
IGNvID0gY29tcGlsZSh0cmVlLCBmbi5zdHJwYXRoLCAiZXhlYyIsIGRvbnRfaW5oZXJpdD1UcnVl
KQotICAgIGV4Y2VwdCBTeW50YXhFcnJvcjoKLSAgICAgICAgIyBJdCdzIHBvc3NpYmxlIHRoYXQg
dGhpcyBlcnJvciBpcyBmcm9tIHNvbWUgYnVnIGluIHRoZQotICAgICAgICAjIGFzc2VydGlvbiBy
ZXdyaXRpbmcsIGJ1dCBJIGRvbid0IGtub3cgb2YgYSBmYXN0IHdheSB0byB0ZWxsLgotICAgICAg
ICBzdGF0ZS50cmFjZSgiZmFpbGVkIHRvIGNvbXBpbGU6ICVyIiAlIChmbiwpKQotICAgICAgICBy
ZXR1cm4gTm9uZSwgTm9uZQotICAgIHJldHVybiBzdGF0LCBjbwotCi0KLWRlZiBfbWFrZV9yZXdy
aXR0ZW5fcHljKHN0YXRlLCBzb3VyY2Vfc3RhdCwgcHljLCBjbyk6Ci0gICAgIiIiVHJ5IHRvIGR1
bXAgcmV3cml0dGVuIGNvZGUgdG8gKnB5YyouIiIiCi0gICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0
c3dpdGgoIndpbiIpOgotICAgICAgICAjIFdpbmRvd3MgZ3JhbnRzIGV4Y2x1c2l2ZSBhY2Nlc3Mg
dG8gb3BlbiBmaWxlcyBhbmQgZG9lc24ndCBoYXZlIGF0b21pYwotICAgICAgICAjIHJlbmFtZSwg
c28ganVzdCB3cml0ZSBpbnRvIHRoZSBmaW5hbCBmaWxlLgotICAgICAgICBfd3JpdGVfcHljKHN0
YXRlLCBjbywgc291cmNlX3N0YXQsIHB5YykKLSAgICBlbHNlOgotICAgICAgICAjIFdoZW4gbm90
IG9uIHdpbmRvd3MsIGFzc3VtZSByZW5hbWUgaXMgYXRvbWljLiBEdW1wIHRoZSBjb2RlIG9iamVj
dAotICAgICAgICAjIGludG8gYSBmaWxlIHNwZWNpZmljIHRvIHRoaXMgcHJvY2VzcyBhbmQgYXRv
bWljYWxseSByZXBsYWNlIGl0LgotICAgICAgICBwcm9jX3B5YyA9IHB5YyArICIuIiArIHN0cihv
cy5nZXRwaWQoKSkKLSAgICAgICAgaWYgX3dyaXRlX3B5YyhzdGF0ZSwgY28sIHNvdXJjZV9zdGF0
LCBwcm9jX3B5Yyk6Ci0gICAgICAgICAgICBvcy5yZW5hbWUocHJvY19weWMsIHB5YykKLQotCi1k
ZWYgX3JlYWRfcHljKHNvdXJjZSwgcHljLCB0cmFjZT1sYW1iZGEgeDogTm9uZSk6Ci0gICAgIiIi
UG9zc2libHkgcmVhZCBhIHB5dGVzdCBweWMgY29udGFpbmluZyByZXdyaXR0ZW4gY29kZS4KLQot
ICAgIFJldHVybiByZXdyaXR0ZW4gY29kZSBpZiBzdWNjZXNzZnVsIG9yIE5vbmUgaWYgbm90Lgot
ICAgICIiIgotICAgIHRyeToKLSAgICAgICAgZnAgPSBvcGVuKHB5YywgInJiIikKLSAgICBleGNl
cHQgSU9FcnJvcjoKLSAgICAgICAgcmV0dXJuIE5vbmUKLSAgICB3aXRoIGZwOgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBtdGltZSA9IGludChzb3VyY2UubXRpbWUoKSkKLSAgICAgICAgICAg
IHNpemUgPSBzb3VyY2Uuc2l6ZSgpCi0gICAgICAgICAgICBkYXRhID0gZnAucmVhZCgxMikKLSAg
ICAgICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3IgYXMgZToKLSAgICAgICAgICAgIHRyYWNlKCdf
cmVhZF9weWMoJXMpOiBFbnZpcm9ubWVudEVycm9yICVzJyAlIChzb3VyY2UsIGUpKQotICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgIyBDaGVjayBmb3IgaW52YWxpZCBvciBvdXQgb2Yg
ZGF0ZSBweWMgZmlsZS4KLSAgICAgICAgaWYgKGxlbihkYXRhKSAhPSAxMiBvciBkYXRhWzo0XSAh
PSBpbXAuZ2V0X21hZ2ljKCkgb3IKLSAgICAgICAgICAgICAgICBzdHJ1Y3QudW5wYWNrKCI8bGwi
LCBkYXRhWzQ6XSkgIT0gKG10aW1lLCBzaXplKSk6Ci0gICAgICAgICAgICB0cmFjZSgnX3JlYWRf
cHljKCVzKTogaW52YWxpZCBvciBvdXQgb2YgZGF0ZSBweWMnICUgc291cmNlKQotICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY28gPSBtYXJzaGFsLmxv
YWQoZnApCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHRyYWNl
KCdfcmVhZF9weWMoJXMpOiBtYXJzaGFsLmxvYWQgZXJyb3IgJXMnICUgKHNvdXJjZSwgZSkpCi0g
ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjbywgdHlw
ZXMuQ29kZVR5cGUpOgotICAgICAgICAgICAgdHJhY2UoJ19yZWFkX3B5Yyglcyk6IG5vdCBhIGNv
ZGUgb2JqZWN0JyAlIHNvdXJjZSkKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJl
dHVybiBjbwotCi0KLWRlZiByZXdyaXRlX2Fzc2VydHMobW9kLCBtb2R1bGVfcGF0aD1Ob25lLCBj
b25maWc9Tm9uZSk6Ci0gICAgIiIiUmV3cml0ZSB0aGUgYXNzZXJ0IHN0YXRlbWVudHMgaW4gbW9k
LiIiIgotICAgIEFzc2VydGlvblJld3JpdGVyKG1vZHVsZV9wYXRoLCBjb25maWcpLnJ1bihtb2Qp
Ci0KLQotZGVmIF9zYWZlcmVwcihvYmopOgotICAgICIiIkdldCBhIHNhZmUgcmVwciBvZiBhbiBv
YmplY3QgZm9yIGFzc2VydGlvbiBlcnJvciBtZXNzYWdlcy4KLQotICAgIFRoZSBhc3NlcnRpb24g
Zm9ybWF0dGluZyAodXRpbC5mb3JtYXRfZXhwbGFuYXRpb24oKSkgcmVxdWlyZXMKLSAgICBuZXds
aW5lcyB0byBiZSBlc2NhcGVkIHNpbmNlIHRoZXkgYXJlIGEgc3BlY2lhbCBjaGFyYWN0ZXIgZm9y
IGl0LgotICAgIE5vcm1hbGx5IGFzc2VydGlvbi51dGlsLmZvcm1hdF9leHBsYW5hdGlvbigpIGRv
ZXMgdGhpcyBidXQgZm9yIGEKLSAgICBjdXN0b20gcmVwciBpdCBpcyBwb3NzaWJsZSB0byBjb250
YWluIG9uZSBvZiB0aGUgc3BlY2lhbCBlc2NhcGUKLSAgICBzZXF1ZW5jZXMsIGVzcGVjaWFsbHkg
J1xueycgYW5kICdcbn0nIGFyZSBsaWtlbHkgdG8gYmUgcHJlc2VudCBpbgotICAgIEpTT04gcmVw
cnMuCi0KLSAgICAiIiIKLSAgICByZXByID0gcHkuaW8uc2FmZXJlcHIob2JqKQotICAgIGlmIGlz
aW5zdGFuY2UocmVwciwgc2l4LnRleHRfdHlwZSk6Ci0gICAgICAgIHQgPSBzaXgudGV4dF90eXBl
Ci0gICAgZWxzZToKLSAgICAgICAgdCA9IHNpeC5iaW5hcnlfdHlwZQotICAgIHJldHVybiByZXBy
LnJlcGxhY2UodCgiXG4iKSwgdCgiXFxuIikpCi0KLQotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbi51
dGlsIGltcG9ydCBmb3JtYXRfZXhwbGFuYXRpb24gYXMgX2Zvcm1hdF9leHBsYW5hdGlvbiAgIyBu
b3FhCi0KLQotZGVmIF9mb3JtYXRfYXNzZXJ0bXNnKG9iaik6Ci0gICAgIiIiRm9ybWF0IHRoZSBj
dXN0b20gYXNzZXJ0aW9uIG1lc3NhZ2UgZ2l2ZW4uCi0KLSAgICBGb3Igc3RyaW5ncyB0aGlzIHNp
bXBseSByZXBsYWNlcyBuZXdsaW5lcyB3aXRoICdcbn4nIHNvIHRoYXQKLSAgICB1dGlsLmZvcm1h
dF9leHBsYW5hdGlvbigpIHdpbGwgcHJlc2VydmUgdGhlbSBpbnN0ZWFkIG9mIGVzY2FwaW5nCi0g
ICAgbmV3bGluZXMuICBGb3Igb3RoZXIgb2JqZWN0cyBweS5pby5zYWZlcmVwcigpIGlzIHVzZWQg
Zmlyc3QuCi0KLSAgICAiIiIKLSAgICAjIHJlcHJsaWIgYXBwZWFycyB0byBoYXZlIGEgYnVnIHdo
aWNoIG1lYW5zIHRoYXQgaWYgYSBzdHJpbmcKLSAgICAjIGNvbnRhaW5zIGEgbmV3bGluZSBpdCBn
ZXRzIGVzY2FwZWQsIGhvd2V2ZXIgaWYgYW4gb2JqZWN0IGhhcyBhCi0gICAgIyAuX19yZXByX18o
KSB3aGljaCBjb250YWlucyBuZXdsaW5lcyBpdCBkb2VzIG5vdCBnZXQgZXNjYXBlZC4KLSAgICAj
IEhvd2V2ZXIgaW4gZWl0aGVyIGNhc2Ugd2Ugd2FudCB0byBwcmVzZXJ2ZSB0aGUgbmV3bGluZS4K
LSAgICBpZiBpc2luc3RhbmNlKG9iaiwgc2l4LnRleHRfdHlwZSkgb3IgaXNpbnN0YW5jZShvYmos
IHNpeC5iaW5hcnlfdHlwZSk6Ci0gICAgICAgIHMgPSBvYmoKLSAgICAgICAgaXNfcmVwciA9IEZh
bHNlCi0gICAgZWxzZToKLSAgICAgICAgcyA9IHB5LmlvLnNhZmVyZXByKG9iaikKLSAgICAgICAg
aXNfcmVwciA9IFRydWUKLSAgICBpZiBpc2luc3RhbmNlKHMsIHNpeC50ZXh0X3R5cGUpOgotICAg
ICAgICB0ID0gc2l4LnRleHRfdHlwZQotICAgIGVsc2U6Ci0gICAgICAgIHQgPSBzaXguYmluYXJ5
X3R5cGUKLSAgICBzID0gcy5yZXBsYWNlKHQoIlxuIiksIHQoIlxufiIpKS5yZXBsYWNlKHQoIiUi
KSwgdCgiJSUiKSkKLSAgICBpZiBpc19yZXByOgotICAgICAgICBzID0gcy5yZXBsYWNlKHQoIlxc
biIpLCB0KCJcbn4iKSkKLSAgICByZXR1cm4gcwotCi0KLWRlZiBfc2hvdWxkX3JlcHJfZ2xvYmFs
X25hbWUob2JqKToKLSAgICByZXR1cm4gbm90IGhhc2F0dHIob2JqLCAiX19uYW1lX18iKSBhbmQg
bm90IGNhbGxhYmxlKG9iaikKLQotCi1kZWYgX2Zvcm1hdF9ib29sb3AoZXhwbGFuYXRpb25zLCBp
c19vcik6Ci0gICAgZXhwbGFuYXRpb24gPSAiKCIgKyAoaXNfb3IgYW5kICIgb3IgIiBvciAiIGFu
ZCAiKS5qb2luKGV4cGxhbmF0aW9ucykgKyAiKSIKLSAgICBpZiBpc2luc3RhbmNlKGV4cGxhbmF0
aW9uLCBzaXgudGV4dF90eXBlKToKLSAgICAgICAgdCA9IHNpeC50ZXh0X3R5cGUKLSAgICBlbHNl
OgotICAgICAgICB0ID0gc2l4LmJpbmFyeV90eXBlCi0gICAgcmV0dXJuIGV4cGxhbmF0aW9uLnJl
cGxhY2UodCgnJScpLCB0KCclJScpKQotCi0KLWRlZiBfY2FsbF9yZXByY29tcGFyZShvcHMsIHJl
c3VsdHMsIGV4cGxzLCBlYWNoX29iaik6Ci0gICAgZm9yIGksIHJlcywgZXhwbCBpbiB6aXAocmFu
Z2UobGVuKG9wcykpLCByZXN1bHRzLCBleHBscyk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGRvbmUgPSBub3QgcmVzCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICBk
b25lID0gVHJ1ZQotICAgICAgICBpZiBkb25lOgotICAgICAgICAgICAgYnJlYWsKLSAgICBpZiB1
dGlsLl9yZXByY29tcGFyZSBpcyBub3QgTm9uZToKLSAgICAgICAgY3VzdG9tID0gdXRpbC5fcmVw
cmNvbXBhcmUob3BzW2ldLCBlYWNoX29ialtpXSwgZWFjaF9vYmpbaSArIDFdKQotICAgICAgICBp
ZiBjdXN0b20gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gY3VzdG9tCi0gICAgcmV0
dXJuIGV4cGwKLQotCi11bmFyeV9tYXAgPSB7Ci0gICAgYXN0Lk5vdDogIm5vdCAlcyIsCi0gICAg
YXN0LkludmVydDogIn4lcyIsCi0gICAgYXN0LlVTdWI6ICItJXMiLAotICAgIGFzdC5VQWRkOiAi
KyVzIgotfQotCi1iaW5vcF9tYXAgPSB7Ci0gICAgYXN0LkJpdE9yOiAifCIsCi0gICAgYXN0LkJp
dFhvcjogIl4iLAotICAgIGFzdC5CaXRBbmQ6ICImIiwKLSAgICBhc3QuTFNoaWZ0OiAiPDwiLAot
ICAgIGFzdC5SU2hpZnQ6ICI+PiIsCi0gICAgYXN0LkFkZDogIisiLAotICAgIGFzdC5TdWI6ICIt
IiwKLSAgICBhc3QuTXVsdDogIioiLAotICAgIGFzdC5EaXY6ICIvIiwKLSAgICBhc3QuRmxvb3JE
aXY6ICIvLyIsCi0gICAgYXN0Lk1vZDogIiUlIiwgICMgZXNjYXBlZCBmb3Igc3RyaW5nIGZvcm1h
dHRpbmcKLSAgICBhc3QuRXE6ICI9PSIsCi0gICAgYXN0Lk5vdEVxOiAiIT0iLAotICAgIGFzdC5M
dDogIjwiLAotICAgIGFzdC5MdEU6ICI8PSIsCi0gICAgYXN0Lkd0OiAiPiIsCi0gICAgYXN0Lkd0
RTogIj49IiwKLSAgICBhc3QuUG93OiAiKioiLAotICAgIGFzdC5JczogImlzIiwKLSAgICBhc3Qu
SXNOb3Q6ICJpcyBub3QiLAotICAgIGFzdC5JbjogImluIiwKLSAgICBhc3QuTm90SW46ICJub3Qg
aW4iCi19Ci0jIFB5dGhvbiAzLjUrIGNvbXBhdGliaWxpdHkKLXRyeToKLSAgICBiaW5vcF9tYXBb
YXN0Lk1hdE11bHRdID0gIkAiCi1leGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgcGFzcwotCi0j
IFB5dGhvbiAzLjQrIGNvbXBhdGliaWxpdHkKLWlmIGhhc2F0dHIoYXN0LCAiTmFtZUNvbnN0YW50
Iik6Ci0gICAgX05hbWVDb25zdGFudCA9IGFzdC5OYW1lQ29uc3RhbnQKLWVsc2U6Ci0gICAgZGVm
IF9OYW1lQ29uc3RhbnQoYyk6Ci0gICAgICAgIHJldHVybiBhc3QuTmFtZShzdHIoYyksIGFzdC5M
b2FkKCkpCi0KLQotZGVmIHNldF9sb2NhdGlvbihub2RlLCBsaW5lbm8sIGNvbF9vZmZzZXQpOgot
ICAgICIiIlNldCBub2RlIGxvY2F0aW9uIGluZm9ybWF0aW9uIHJlY3Vyc2l2ZWx5LiIiIgotICAg
IGRlZiBfZml4KG5vZGUsIGxpbmVubywgY29sX29mZnNldCk6Ci0gICAgICAgIGlmICJsaW5lbm8i
IGluIG5vZGUuX2F0dHJpYnV0ZXM6Ci0gICAgICAgICAgICBub2RlLmxpbmVubyA9IGxpbmVubwot
ICAgICAgICBpZiAiY29sX29mZnNldCIgaW4gbm9kZS5fYXR0cmlidXRlczoKLSAgICAgICAgICAg
IG5vZGUuY29sX29mZnNldCA9IGNvbF9vZmZzZXQKLSAgICAgICAgZm9yIGNoaWxkIGluIGFzdC5p
dGVyX2NoaWxkX25vZGVzKG5vZGUpOgotICAgICAgICAgICAgX2ZpeChjaGlsZCwgbGluZW5vLCBj
b2xfb2Zmc2V0KQotICAgIF9maXgobm9kZSwgbGluZW5vLCBjb2xfb2Zmc2V0KQotICAgIHJldHVy
biBub2RlCi0KLQotY2xhc3MgQXNzZXJ0aW9uUmV3cml0ZXIoYXN0Lk5vZGVWaXNpdG9yKToKLSAg
ICAiIiJBc3NlcnRpb24gcmV3cml0aW5nIGltcGxlbWVudGF0aW9uLgotCi0gICAgVGhlIG1haW4g
ZW50cnlwb2ludCBpcyB0byBjYWxsIC5ydW4oKSB3aXRoIGFuIGFzdC5Nb2R1bGUgaW5zdGFuY2Us
Ci0gICAgdGhpcyB3aWxsIHRoZW4gZmluZCBhbGwgdGhlIGFzc2VydCBzdGF0ZW1lbnRzIGFuZCBy
ZXdyaXRlIHRoZW0gdG8KLSAgICBwcm92aWRlIGludGVybWVkaWF0ZSB2YWx1ZXMgYW5kIGEgZGV0
YWlsZWQgYXNzZXJ0aW9uIGVycm9yLiAgU2VlCi0gICAgaHR0cDovL3B5Yml0ZXMuYmxvZ3Nwb3Qu
YmUvMjAxMS8wNy9iZWhpbmQtc2NlbmVzLW9mLXB5dGVzdHMtbmV3LWFzc2VydGlvbi5odG1sCi0g
ICAgZm9yIGFuIG92ZXJ2aWV3IG9mIGhvdyB0aGlzIHdvcmtzLgotCi0gICAgVGhlIGVudHJ5IHBv
aW50IGhlcmUgaXMgLnJ1bigpIHdoaWNoIHdpbGwgaXRlcmF0ZSBvdmVyIGFsbCB0aGUKLSAgICBz
dGF0ZW1lbnRzIGluIGFuIGFzdC5Nb2R1bGUgYW5kIGZvciBlYWNoIGFzdC5Bc3NlcnQgc3RhdGVt
ZW50IGl0Ci0gICAgZmluZHMgY2FsbCAudmlzaXQoKSB3aXRoIGl0LiAgVGhlbiAudmlzaXRfQXNz
ZXJ0KCkgdGFrZXMgb3ZlciBhbmQKLSAgICBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgbmV3
IGFzdCBzdGF0ZW1lbnRzIHRvIHJlcGxhY2UgdGhlCi0gICAgb3JpZ2luYWwgYXNzZXJ0IHN0YXRl
bWVudDogaXQgcmV3cml0ZXMgdGhlIHRlc3Qgb2YgYW4gYXNzZXJ0aW9uCi0gICAgdG8gcHJvdmlk
ZSBpbnRlcm1lZGlhdGUgdmFsdWVzIGFuZCByZXBsYWNlIGl0IHdpdGggYW4gaWYgc3RhdGVtZW50
Ci0gICAgd2hpY2ggcmFpc2VzIGFuIGFzc2VydGlvbiBlcnJvciB3aXRoIGEgZGV0YWlsZWQgZXhw
bGFuYXRpb24gaW4KLSAgICBjYXNlIHRoZSBleHByZXNzaW9uIGlzIGZhbHNlLgotCi0gICAgRm9y
IHRoaXMgLnZpc2l0X0Fzc2VydCgpIHVzZXMgdGhlIHZpc2l0b3IgcGF0dGVybiB0byB2aXNpdCBh
bGwgdGhlCi0gICAgQVNUIG5vZGVzIG9mIHRoZSBhc3QuQXNzZXJ0LnRlc3QgZmllbGQsIGVhY2gg
dmlzaXQgY2FsbCByZXR1cm5pbmcKLSAgICBhbiBBU1Qgbm9kZSBhbmQgdGhlIGNvcnJlc3BvbmRp
bmcgZXhwbGFuYXRpb24gc3RyaW5nLiAgRHVyaW5nIHRoaXMKLSAgICBzdGF0ZSBpcyBrZXB0IGlu
IHNldmVyYWwgaW5zdGFuY2UgYXR0cmlidXRlczoKLQotICAgIDpzdGF0ZW1lbnRzOiBBbGwgdGhl
IEFTVCBzdGF0ZW1lbnRzIHdoaWNoIHdpbGwgcmVwbGFjZSB0aGUgYXNzZXJ0Ci0gICAgICAgc3Rh
dGVtZW50LgotCi0gICAgOnZhcmlhYmxlczogVGhpcyBpcyBwb3B1bGF0ZWQgYnkgLnZhcmlhYmxl
KCkgd2l0aCBlYWNoIHZhcmlhYmxlCi0gICAgICAgdXNlZCBieSB0aGUgc3RhdGVtZW50cyBzbyB0
aGF0IHRoZXkgY2FuIGFsbCBiZSBzZXQgdG8gTm9uZSBhdAotICAgICAgIHRoZSBlbmQgb2YgdGhl
IHN0YXRlbWVudHMuCi0KLSAgICA6dmFyaWFibGVfY291bnRlcjogQ291bnRlciB0byBjcmVhdGUg
bmV3IHVuaXF1ZSB2YXJpYWJsZXMgbmVlZGVkCi0gICAgICAgYnkgc3RhdGVtZW50cy4gIFZhcmlh
YmxlcyBhcmUgY3JlYXRlZCB1c2luZyAudmFyaWFibGUoKSBhbmQKLSAgICAgICBoYXZlIHRoZSBm
b3JtIG9mICJAcHlfYXNzZXJ0MCIuCi0KLSAgICA6b25fZmFpbHVyZTogVGhlIEFTVCBzdGF0ZW1l
bnRzIHdoaWNoIHdpbGwgYmUgZXhlY3V0ZWQgaWYgdGhlCi0gICAgICAgYXNzZXJ0aW9uIHRlc3Qg
ZmFpbHMuICBUaGlzIGlzIHRoZSBjb2RlIHdoaWNoIHdpbGwgY29uc3RydWN0Ci0gICAgICAgdGhl
IGZhaWx1cmUgbWVzc2FnZSBhbmQgcmFpc2VzIHRoZSBBc3NlcnRpb25FcnJvci4KLQotICAgIDpl
eHBsYW5hdGlvbl9zcGVjaWZpZXJzOiBBIGRpY3QgZmlsbGVkIGJ5IC5leHBsYW5hdGlvbl9wYXJh
bSgpCi0gICAgICAgd2l0aCAlLWZvcm1hdHRpbmcgcGxhY2Vob2xkZXJzIGFuZCB0aGVpciBjb3Jy
ZXNwb25kaW5nCi0gICAgICAgZXhwcmVzc2lvbnMgdG8gdXNlIGluIHRoZSBidWlsZGluZyBvZiBh
biBhc3NlcnRpb24gbWVzc2FnZS4KLSAgICAgICBUaGlzIGlzIHVzZWQgYnkgLnBvcF9mb3JtYXRf
Y29udGV4dCgpIHRvIGJ1aWxkIGEgbWVzc2FnZS4KLQotICAgIDpzdGFjazogQSBzdGFjayBvZiB0
aGUgZXhwbGFuYXRpb25fc3BlY2lmaWVycyBkaWN0cyBtYWludGFpbmVkIGJ5Ci0gICAgICAgLnB1
c2hfZm9ybWF0X2NvbnRleHQoKSBhbmQgLnBvcF9mb3JtYXRfY29udGV4dCgpIHdoaWNoIGFsbG93
cwotICAgICAgIHRvIGJ1aWxkIGFub3RoZXIgJS1mb3JtYXR0ZWQgc3RyaW5nIHdoaWxlIGFscmVh
ZHkgYnVpbGRpbmcgb25lLgotCi0gICAgVGhpcyBzdGF0ZSBpcyByZXNldCBvbiBldmVyeSBuZXcg
YXNzZXJ0IHN0YXRlbWVudCB2aXNpdGVkIGFuZCB1c2VkCi0gICAgYnkgdGhlIG90aGVyIHZpc2l0
b3JzLgotCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kdWxlX3BhdGgsIGNv
bmZpZyk6Ci0gICAgICAgIHN1cGVyKEFzc2VydGlvblJld3JpdGVyLCBzZWxmKS5fX2luaXRfXygp
Ci0gICAgICAgIHNlbGYubW9kdWxlX3BhdGggPSBtb2R1bGVfcGF0aAotICAgICAgICBzZWxmLmNv
bmZpZyA9IGNvbmZpZwotCi0gICAgZGVmIHJ1bihzZWxmLCBtb2QpOgotICAgICAgICAiIiJGaW5k
IGFsbCBhc3NlcnQgc3RhdGVtZW50cyBpbiAqbW9kKiBhbmQgcmV3cml0ZSB0aGVtLiIiIgotICAg
ICAgICBpZiBub3QgbW9kLmJvZHk6Ci0gICAgICAgICAgICAjIE5vdGhpbmcgdG8gZG8uCi0gICAg
ICAgICAgICByZXR1cm4KLSAgICAgICAgIyBJbnNlcnQgc29tZSBzcGVjaWFsIGltcG9ydHMgYXQg
dGhlIHRvcCBvZiB0aGUgbW9kdWxlIGJ1dCBhZnRlciBhbnkKLSAgICAgICAgIyBkb2NzdHJpbmdz
IGFuZCBfX2Z1dHVyZV9fIGltcG9ydHMuCi0gICAgICAgIGFsaWFzZXMgPSBbYXN0LmFsaWFzKHB5
LmJ1aWx0aW4uYnVpbHRpbnMuX19uYW1lX18sICJAcHlfYnVpbHRpbnMiKSwKLSAgICAgICAgICAg
ICAgICAgICBhc3QuYWxpYXMoIl9weXRlc3QuYXNzZXJ0aW9uLnJld3JpdGUiLCAiQHB5dGVzdF9h
ciIpXQotICAgICAgICBkb2MgPSBnZXRhdHRyKG1vZCwgImRvY3N0cmluZyIsIE5vbmUpCi0gICAg
ICAgIGV4cGVjdF9kb2NzdHJpbmcgPSBkb2MgaXMgTm9uZQotICAgICAgICBpZiBkb2MgaXMgbm90
IE5vbmUgYW5kIHNlbGYuaXNfcmV3cml0ZV9kaXNhYmxlZChkb2MpOgotICAgICAgICAgICAgcmV0
dXJuCi0gICAgICAgIHBvcyA9IDAKLSAgICAgICAgbGluZW5vID0gMQotICAgICAgICBmb3IgaXRl
bSBpbiBtb2QuYm9keToKLSAgICAgICAgICAgIGlmIChleHBlY3RfZG9jc3RyaW5nIGFuZCBpc2lu
c3RhbmNlKGl0ZW0sIGFzdC5FeHByKSBhbmQKLSAgICAgICAgICAgICAgICAgICAgaXNpbnN0YW5j
ZShpdGVtLnZhbHVlLCBhc3QuU3RyKSk6Ci0gICAgICAgICAgICAgICAgZG9jID0gaXRlbS52YWx1
ZS5zCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5pc19yZXdyaXRlX2Rpc2FibGVkKGRvYyk6Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgICAgIGV4cGVjdF9kb2NzdHJp
bmcgPSBGYWxzZQotICAgICAgICAgICAgZWxpZiAobm90IGlzaW5zdGFuY2UoaXRlbSwgYXN0Lklt
cG9ydEZyb20pIG9yIGl0ZW0ubGV2ZWwgPiAwIG9yCi0gICAgICAgICAgICAgICAgICBpdGVtLm1v
ZHVsZSAhPSAiX19mdXR1cmVfXyIpOgotICAgICAgICAgICAgICAgIGxpbmVubyA9IGl0ZW0ubGlu
ZW5vCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIHBvcyArPSAxCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBsaW5lbm8gPSBpdGVtLmxpbmVubwotICAgICAgICBpbXBvcnRz
ID0gW2FzdC5JbXBvcnQoW2FsaWFzXSwgbGluZW5vPWxpbmVubywgY29sX29mZnNldD0wKQotICAg
ICAgICAgICAgICAgICAgIGZvciBhbGlhcyBpbiBhbGlhc2VzXQotICAgICAgICBtb2QuYm9keVtw
b3M6cG9zXSA9IGltcG9ydHMKLSAgICAgICAgIyBDb2xsZWN0IGFzc2VydHMuCi0gICAgICAgIG5v
ZGVzID0gW21vZF0KLSAgICAgICAgd2hpbGUgbm9kZXM6Ci0gICAgICAgICAgICBub2RlID0gbm9k
ZXMucG9wKCkKLSAgICAgICAgICAgIGZvciBuYW1lLCBmaWVsZCBpbiBhc3QuaXRlcl9maWVsZHMo
bm9kZSk6Ci0gICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShmaWVsZCwgbGlzdCk6Ci0gICAg
ICAgICAgICAgICAgICAgIG5ldyA9IFtdCi0gICAgICAgICAgICAgICAgICAgIGZvciBpLCBjaGls
ZCBpbiBlbnVtZXJhdGUoZmllbGQpOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZShjaGlsZCwgYXN0LkFzc2VydCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBU
cmFuc2Zvcm0gYXNzZXJ0LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldy5leHRlbmQo
c2VsZi52aXNpdChjaGlsZCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5ldy5hcHBlbmQoY2hpbGQpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShjaGlsZCwgYXN0LkFTVCk6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5vZGVzLmFwcGVuZChjaGlsZCkKLSAgICAgICAgICAgICAgICAg
ICAgc2V0YXR0cihub2RlLCBuYW1lLCBuZXcpCi0gICAgICAgICAgICAgICAgZWxpZiAoaXNpbnN0
YW5jZShmaWVsZCwgYXN0LkFTVCkgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgIyBEb24ndCBy
ZWN1cnNlIGludG8gZXhwcmVzc2lvbnMgYXMgdGhleSBjYW4ndCBjb250YWluCi0gICAgICAgICAg
ICAgICAgICAgICAgIyBhc3NlcnRzLgotICAgICAgICAgICAgICAgICAgICAgIG5vdCBpc2luc3Rh
bmNlKGZpZWxkLCBhc3QuZXhwcikpOgotICAgICAgICAgICAgICAgICAgICBub2Rlcy5hcHBlbmQo
ZmllbGQpCi0KLSAgICBkZWYgaXNfcmV3cml0ZV9kaXNhYmxlZChzZWxmLCBkb2NzdHJpbmcpOgot
ICAgICAgICByZXR1cm4gIlBZVEVTVF9ET05UX1JFV1JJVEUiIGluIGRvY3N0cmluZwotCi0gICAg
ZGVmIHZhcmlhYmxlKHNlbGYpOgotICAgICAgICAiIiJHZXQgYSBuZXcgdmFyaWFibGUuIiIiCi0g
ICAgICAgICMgVXNlIGEgY2hhcmFjdGVyIGludmFsaWQgaW4gcHl0aG9uIGlkZW50aWZpZXJzIHRv
IGF2b2lkIGNsYXNoaW5nLgotICAgICAgICBuYW1lID0gIkBweV9hc3NlcnQiICsgc3RyKG5leHQo
c2VsZi52YXJpYWJsZV9jb3VudGVyKSkKLSAgICAgICAgc2VsZi52YXJpYWJsZXMuYXBwZW5kKG5h
bWUpCi0gICAgICAgIHJldHVybiBuYW1lCi0KLSAgICBkZWYgYXNzaWduKHNlbGYsIGV4cHIpOgot
ICAgICAgICAiIiJHaXZlICpleHByKiBhIG5hbWUuIiIiCi0gICAgICAgIG5hbWUgPSBzZWxmLnZh
cmlhYmxlKCkKLSAgICAgICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChhc3QuQXNzaWduKFthc3Qu
TmFtZShuYW1lLCBhc3QuU3RvcmUoKSldLCBleHByKSkKLSAgICAgICAgcmV0dXJuIGFzdC5OYW1l
KG5hbWUsIGFzdC5Mb2FkKCkpCi0KLSAgICBkZWYgZGlzcGxheShzZWxmLCBleHByKToKLSAgICAg
ICAgIiIiQ2FsbCBweS5pby5zYWZlcmVwciBvbiB0aGUgZXhwcmVzc2lvbi4iIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYuaGVscGVyKCJzYWZlcmVwciIsIGV4cHIpCi0KLSAgICBkZWYgaGVscGVyKHNl
bGYsIG5hbWUsICphcmdzKToKLSAgICAgICAgIiIiQ2FsbCBhIGhlbHBlciBpbiB0aGlzIG1vZHVs
ZS4iIiIKLSAgICAgICAgcHlfbmFtZSA9IGFzdC5OYW1lKCJAcHl0ZXN0X2FyIiwgYXN0LkxvYWQo
KSkKLSAgICAgICAgYXR0ciA9IGFzdC5BdHRyaWJ1dGUocHlfbmFtZSwgIl8iICsgbmFtZSwgYXN0
LkxvYWQoKSkKLSAgICAgICAgcmV0dXJuIGFzdF9DYWxsKGF0dHIsIGxpc3QoYXJncyksIFtdKQot
Ci0gICAgZGVmIGJ1aWx0aW4oc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIlJldHVybiB0aGUgYnVp
bHRpbiBjYWxsZWQgKm5hbWUqLiIiIgotICAgICAgICBidWlsdGluX25hbWUgPSBhc3QuTmFtZSgi
QHB5X2J1aWx0aW5zIiwgYXN0LkxvYWQoKSkKLSAgICAgICAgcmV0dXJuIGFzdC5BdHRyaWJ1dGUo
YnVpbHRpbl9uYW1lLCBuYW1lLCBhc3QuTG9hZCgpKQotCi0gICAgZGVmIGV4cGxhbmF0aW9uX3Bh
cmFtKHNlbGYsIGV4cHIpOgotICAgICAgICAiIiJSZXR1cm4gYSBuZXcgbmFtZWQgJS1mb3JtYXR0
aW5nIHBsYWNlaG9sZGVyIGZvciBleHByLgotCi0gICAgICAgIFRoaXMgY3JlYXRlcyBhICUtZm9y
bWF0dGluZyBwbGFjZWhvbGRlciBmb3IgZXhwciBpbiB0aGUKLSAgICAgICAgY3VycmVudCBmb3Jt
YXR0aW5nIGNvbnRleHQsIGUuZy4gYGAlKHB5MClzYGAuICBUaGUgcGxhY2Vob2xkZXIKLSAgICAg
ICAgYW5kIGV4cHIgYXJlIHBsYWNlZCBpbiB0aGUgY3VycmVudCBmb3JtYXQgY29udGV4dCBzbyB0
aGF0IGl0Ci0gICAgICAgIGNhbiBiZSB1c2VkIG9uIHRoZSBuZXh0IGNhbGwgdG8gLnBvcF9mb3Jt
YXRfY29udGV4dCgpLgotCi0gICAgICAgICIiIgotICAgICAgICBzcGVjaWZpZXIgPSAicHkiICsg
c3RyKG5leHQoc2VsZi52YXJpYWJsZV9jb3VudGVyKSkKLSAgICAgICAgc2VsZi5leHBsYW5hdGlv
bl9zcGVjaWZpZXJzW3NwZWNpZmllcl0gPSBleHByCi0gICAgICAgIHJldHVybiAiJSgiICsgc3Bl
Y2lmaWVyICsgIilzIgotCi0gICAgZGVmIHB1c2hfZm9ybWF0X2NvbnRleHQoc2VsZik6Ci0gICAg
ICAgICIiIkNyZWF0ZSBhIG5ldyBmb3JtYXR0aW5nIGNvbnRleHQuCi0KLSAgICAgICAgVGhlIGZv
cm1hdCBjb250ZXh0IGlzIHVzZWQgZm9yIHdoZW4gYW4gZXhwbGFuYXRpb24gd2FudHMgdG8KLSAg
ICAgICAgaGF2ZSBhIHZhcmlhYmxlIHZhbHVlIGZvcm1hdHRlZCBpbiB0aGUgYXNzZXJ0aW9uIG1l
c3NhZ2UuICBJbgotICAgICAgICB0aGlzIGNhc2UgdGhlIHZhbHVlIHJlcXVpcmVkIGNhbiBiZSBh
ZGRlZCB1c2luZwotICAgICAgICAuZXhwbGFuYXRpb25fcGFyYW0oKS4gIEZpbmFsbHkgLnBvcF9m
b3JtYXRfY29udGV4dCgpIGlzIHVzZWQKLSAgICAgICAgdG8gZm9ybWF0IGEgc3RyaW5nIG9mICUt
Zm9ybWF0dGVkIHZhbHVlcyBhcyBhZGRlZCBieQotICAgICAgICAuZXhwbGFuYXRpb25fcGFyYW0o
KS4KLQotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5leHBsYW5hdGlvbl9zcGVjaWZpZXJzID0g
e30KLSAgICAgICAgc2VsZi5zdGFjay5hcHBlbmQoc2VsZi5leHBsYW5hdGlvbl9zcGVjaWZpZXJz
KQotCi0gICAgZGVmIHBvcF9mb3JtYXRfY29udGV4dChzZWxmLCBleHBsX2V4cHIpOgotICAgICAg
ICAiIiJGb3JtYXQgdGhlICUtZm9ybWF0dGVkIHN0cmluZyB3aXRoIGN1cnJlbnQgZm9ybWF0IGNv
bnRleHQuCi0KLSAgICAgICAgVGhlIGV4cGxfZXhwciBzaG91bGQgYmUgYW4gYXN0LlN0ciBpbnN0
YW5jZSBjb25zdHJ1Y3RlZCBmcm9tCi0gICAgICAgIHRoZSAlLXBsYWNlaG9sZGVycyBjcmVhdGVk
IGJ5IC5leHBsYW5hdGlvbl9wYXJhbSgpLiAgVGhpcyB3aWxsCi0gICAgICAgIGFkZCB0aGUgcmVx
dWlyZWQgY29kZSB0byBmb3JtYXQgc2FpZCBzdHJpbmcgdG8gLm9uX2ZhaWx1cmUgYW5kCi0gICAg
ICAgIHJldHVybiB0aGUgYXN0Lk5hbWUgaW5zdGFuY2Ugb2YgdGhlIGZvcm1hdHRlZCBzdHJpbmcu
Ci0KLSAgICAgICAgIiIiCi0gICAgICAgIGN1cnJlbnQgPSBzZWxmLnN0YWNrLnBvcCgpCi0gICAg
ICAgIGlmIHNlbGYuc3RhY2s6Ci0gICAgICAgICAgICBzZWxmLmV4cGxhbmF0aW9uX3NwZWNpZmll
cnMgPSBzZWxmLnN0YWNrWy0xXQotICAgICAgICBrZXlzID0gW2FzdC5TdHIoa2V5KSBmb3Iga2V5
IGluIGN1cnJlbnQua2V5cygpXQotICAgICAgICBmb3JtYXRfZGljdCA9IGFzdC5EaWN0KGtleXMs
IGxpc3QoY3VycmVudC52YWx1ZXMoKSkpCi0gICAgICAgIGZvcm0gPSBhc3QuQmluT3AoZXhwbF9l
eHByLCBhc3QuTW9kKCksIGZvcm1hdF9kaWN0KQotICAgICAgICBuYW1lID0gIkBweV9mb3JtYXQi
ICsgc3RyKG5leHQoc2VsZi52YXJpYWJsZV9jb3VudGVyKSkKLSAgICAgICAgc2VsZi5vbl9mYWls
dXJlLmFwcGVuZChhc3QuQXNzaWduKFthc3QuTmFtZShuYW1lLCBhc3QuU3RvcmUoKSldLCBmb3Jt
KSkKLSAgICAgICAgcmV0dXJuIGFzdC5OYW1lKG5hbWUsIGFzdC5Mb2FkKCkpCi0KLSAgICBkZWYg
Z2VuZXJpY192aXNpdChzZWxmLCBub2RlKToKLSAgICAgICAgIiIiSGFuZGxlIGV4cHJlc3Npb25z
IHdlIGRvbid0IGhhdmUgY3VzdG9tIGNvZGUgZm9yLiIiIgotICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShub2RlLCBhc3QuZXhwcikKLSAgICAgICAgcmVzID0gc2VsZi5hc3NpZ24obm9kZSkKLSAg
ICAgICAgcmV0dXJuIHJlcywgc2VsZi5leHBsYW5hdGlvbl9wYXJhbShzZWxmLmRpc3BsYXkocmVz
KSkKLQotICAgIGRlZiB2aXNpdF9Bc3NlcnQoc2VsZiwgYXNzZXJ0Xyk6Ci0gICAgICAgICIiIlJl
dHVybiB0aGUgQVNUIHN0YXRlbWVudHMgdG8gcmVwbGFjZSB0aGUgYXN0LkFzc2VydCBpbnN0YW5j
ZS4KLQotICAgICAgICBUaGlzIHJld3JpdGVzIHRoZSB0ZXN0IG9mIGFuIGFzc2VydGlvbiB0byBw
cm92aWRlCi0gICAgICAgIGludGVybWVkaWF0ZSB2YWx1ZXMgYW5kIHJlcGxhY2UgaXQgd2l0aCBh
biBpZiBzdGF0ZW1lbnQgd2hpY2gKLSAgICAgICAgcmFpc2VzIGFuIGFzc2VydGlvbiBlcnJvciB3
aXRoIGEgZGV0YWlsZWQgZXhwbGFuYXRpb24gaW4gY2FzZQotICAgICAgICB0aGUgZXhwcmVzc2lv
biBpcyBmYWxzZS4KLQotICAgICAgICAiIiIKLSAgICAgICAgaWYgaXNpbnN0YW5jZShhc3NlcnRf
LnRlc3QsIGFzdC5UdXBsZSkgYW5kIHNlbGYuY29uZmlnIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgZnNsb2NhdGlvbiA9IChzZWxmLm1vZHVsZV9wYXRoLCBhc3NlcnRfLmxpbmVubykKLSAgICAg
ICAgICAgIHNlbGYuY29uZmlnLndhcm4oJ1IxJywgJ2Fzc2VydGlvbiBpcyBhbHdheXMgdHJ1ZSwg
cGVyaGFwcyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZW1vdmUgcGFyZW50aGVz
ZXM/JywgZnNsb2NhdGlvbj1mc2xvY2F0aW9uKQotICAgICAgICBzZWxmLnN0YXRlbWVudHMgPSBb
XQotICAgICAgICBzZWxmLnZhcmlhYmxlcyA9IFtdCi0gICAgICAgIHNlbGYudmFyaWFibGVfY291
bnRlciA9IGl0ZXJ0b29scy5jb3VudCgpCi0gICAgICAgIHNlbGYuc3RhY2sgPSBbXQotICAgICAg
ICBzZWxmLm9uX2ZhaWx1cmUgPSBbXQotICAgICAgICBzZWxmLnB1c2hfZm9ybWF0X2NvbnRleHQo
KQotICAgICAgICAjIFJld3JpdGUgYXNzZXJ0IGludG8gYSBidW5jaCBvZiBzdGF0ZW1lbnRzLgot
ICAgICAgICB0b3BfY29uZGl0aW9uLCBleHBsYW5hdGlvbiA9IHNlbGYudmlzaXQoYXNzZXJ0Xy50
ZXN0KQotICAgICAgICAjIENyZWF0ZSBmYWlsdXJlIG1lc3NhZ2UuCi0gICAgICAgIGJvZHkgPSBz
ZWxmLm9uX2ZhaWx1cmUKLSAgICAgICAgbmVnYXRpb24gPSBhc3QuVW5hcnlPcChhc3QuTm90KCks
IHRvcF9jb25kaXRpb24pCi0gICAgICAgIHNlbGYuc3RhdGVtZW50cy5hcHBlbmQoYXN0LklmKG5l
Z2F0aW9uLCBib2R5LCBbXSkpCi0gICAgICAgIGlmIGFzc2VydF8ubXNnOgotICAgICAgICAgICAg
YXNzZXJ0bXNnID0gc2VsZi5oZWxwZXIoJ2Zvcm1hdF9hc3NlcnRtc2cnLCBhc3NlcnRfLm1zZykK
LSAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gIlxuPmFzc2VydCAiICsgZXhwbGFuYXRpb24KLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGFzc2VydG1zZyA9IGFzdC5TdHIoIiIpCi0gICAgICAg
ICAgICBleHBsYW5hdGlvbiA9ICJhc3NlcnQgIiArIGV4cGxhbmF0aW9uCi0gICAgICAgIHRlbXBs
YXRlID0gYXN0LkJpbk9wKGFzc2VydG1zZywgYXN0LkFkZCgpLCBhc3QuU3RyKGV4cGxhbmF0aW9u
KSkKLSAgICAgICAgbXNnID0gc2VsZi5wb3BfZm9ybWF0X2NvbnRleHQodGVtcGxhdGUpCi0gICAg
ICAgIGZtdCA9IHNlbGYuaGVscGVyKCJmb3JtYXRfZXhwbGFuYXRpb24iLCBtc2cpCi0gICAgICAg
IGVycl9uYW1lID0gYXN0Lk5hbWUoIkFzc2VydGlvbkVycm9yIiwgYXN0LkxvYWQoKSkKLSAgICAg
ICAgZXhjID0gYXN0X0NhbGwoZXJyX25hbWUsIFtmbXRdLCBbXSkKLSAgICAgICAgaWYgc3lzLnZl
cnNpb25faW5mb1swXSA+PSAzOgotICAgICAgICAgICAgcmFpc2VfID0gYXN0LlJhaXNlKGV4Yywg
Tm9uZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlXyA9IGFzdC5SYWlzZShleGMs
IE5vbmUsIE5vbmUpCi0gICAgICAgIGJvZHkuYXBwZW5kKHJhaXNlXykKLSAgICAgICAgIyBDbGVh
ciB0ZW1wb3JhcnkgdmFyaWFibGVzIGJ5IHNldHRpbmcgdGhlbSB0byBOb25lLgotICAgICAgICBp
ZiBzZWxmLnZhcmlhYmxlczoKLSAgICAgICAgICAgIHZhcmlhYmxlcyA9IFthc3QuTmFtZShuYW1l
LCBhc3QuU3RvcmUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZSBpbiBzZWxm
LnZhcmlhYmxlc10KLSAgICAgICAgICAgIGNsZWFyID0gYXN0LkFzc2lnbih2YXJpYWJsZXMsIF9O
YW1lQ29uc3RhbnQoTm9uZSkpCi0gICAgICAgICAgICBzZWxmLnN0YXRlbWVudHMuYXBwZW5kKGNs
ZWFyKQotICAgICAgICAjIEZpeCBsaW5lIG51bWJlcnMuCi0gICAgICAgIGZvciBzdG10IGluIHNl
bGYuc3RhdGVtZW50czoKLSAgICAgICAgICAgIHNldF9sb2NhdGlvbihzdG10LCBhc3NlcnRfLmxp
bmVubywgYXNzZXJ0Xy5jb2xfb2Zmc2V0KQotICAgICAgICByZXR1cm4gc2VsZi5zdGF0ZW1lbnRz
Ci0KLSAgICBkZWYgdmlzaXRfTmFtZShzZWxmLCBuYW1lKToKLSAgICAgICAgIyBEaXNwbGF5IHRo
ZSByZXByIG9mIHRoZSBuYW1lIGlmIGl0J3MgYSBsb2NhbCB2YXJpYWJsZSBvcgotICAgICAgICAj
IF9zaG91bGRfcmVwcl9nbG9iYWxfbmFtZSgpIHRoaW5rcyBpdCdzIGFjY2VwdGFibGUuCi0gICAg
ICAgIGxvY3MgPSBhc3RfQ2FsbChzZWxmLmJ1aWx0aW4oImxvY2FscyIpLCBbXSwgW10pCi0gICAg
ICAgIGlubG9jcyA9IGFzdC5Db21wYXJlKGFzdC5TdHIobmFtZS5pZCksIFthc3QuSW4oKV0sIFts
b2NzXSkKLSAgICAgICAgZG9yZXByID0gc2VsZi5oZWxwZXIoInNob3VsZF9yZXByX2dsb2JhbF9u
YW1lIiwgbmFtZSkKLSAgICAgICAgdGVzdCA9IGFzdC5Cb29sT3AoYXN0Lk9yKCksIFtpbmxvY3Ms
IGRvcmVwcl0pCi0gICAgICAgIGV4cHIgPSBhc3QuSWZFeHAodGVzdCwgc2VsZi5kaXNwbGF5KG5h
bWUpLCBhc3QuU3RyKG5hbWUuaWQpKQotICAgICAgICByZXR1cm4gbmFtZSwgc2VsZi5leHBsYW5h
dGlvbl9wYXJhbShleHByKQotCi0gICAgZGVmIHZpc2l0X0Jvb2xPcChzZWxmLCBib29sb3ApOgot
ICAgICAgICByZXNfdmFyID0gc2VsZi52YXJpYWJsZSgpCi0gICAgICAgIGV4cGxfbGlzdCA9IHNl
bGYuYXNzaWduKGFzdC5MaXN0KFtdLCBhc3QuTG9hZCgpKSkKLSAgICAgICAgYXBwID0gYXN0LkF0
dHJpYnV0ZShleHBsX2xpc3QsICJhcHBlbmQiLCBhc3QuTG9hZCgpKQotICAgICAgICBpc19vciA9
IGludChpc2luc3RhbmNlKGJvb2xvcC5vcCwgYXN0Lk9yKSkKLSAgICAgICAgYm9keSA9IHNhdmUg
PSBzZWxmLnN0YXRlbWVudHMKLSAgICAgICAgZmFpbF9zYXZlID0gc2VsZi5vbl9mYWlsdXJlCi0g
ICAgICAgIGxldmVscyA9IGxlbihib29sb3AudmFsdWVzKSAtIDEKLSAgICAgICAgc2VsZi5wdXNo
X2Zvcm1hdF9jb250ZXh0KCkKLSAgICAgICAgIyBQcm9jZXNzIGVhY2ggb3BlcmFuZCwgc2hvcnQt
Y2lyY3V0aW5nIGlmIG5lZWRlZC4KLSAgICAgICAgZm9yIGksIHYgaW4gZW51bWVyYXRlKGJvb2xv
cC52YWx1ZXMpOgotICAgICAgICAgICAgaWYgaToKLSAgICAgICAgICAgICAgICBmYWlsX2lubmVy
ID0gW10KLSAgICAgICAgICAgICAgICAjIGNvbmQgaXMgc2V0IGluIGEgcHJpb3IgbG9vcCBpdGVy
YXRpb24gYmVsb3cKLSAgICAgICAgICAgICAgICBzZWxmLm9uX2ZhaWx1cmUuYXBwZW5kKGFzdC5J
Zihjb25kLCBmYWlsX2lubmVyLCBbXSkpICAjIG5vcWEKLSAgICAgICAgICAgICAgICBzZWxmLm9u
X2ZhaWx1cmUgPSBmYWlsX2lubmVyCi0gICAgICAgICAgICBzZWxmLnB1c2hfZm9ybWF0X2NvbnRl
eHQoKQotICAgICAgICAgICAgcmVzLCBleHBsID0gc2VsZi52aXNpdCh2KQotICAgICAgICAgICAg
Ym9keS5hcHBlbmQoYXN0LkFzc2lnbihbYXN0Lk5hbWUocmVzX3ZhciwgYXN0LlN0b3JlKCkpXSwg
cmVzKSkKLSAgICAgICAgICAgIGV4cGxfZm9ybWF0ID0gc2VsZi5wb3BfZm9ybWF0X2NvbnRleHQo
YXN0LlN0cihleHBsKSkKLSAgICAgICAgICAgIGNhbGwgPSBhc3RfQ2FsbChhcHAsIFtleHBsX2Zv
cm1hdF0sIFtdKQotICAgICAgICAgICAgc2VsZi5vbl9mYWlsdXJlLmFwcGVuZChhc3QuRXhwcihj
YWxsKSkKLSAgICAgICAgICAgIGlmIGkgPCBsZXZlbHM6Ci0gICAgICAgICAgICAgICAgY29uZCA9
IHJlcwotICAgICAgICAgICAgICAgIGlmIGlzX29yOgotICAgICAgICAgICAgICAgICAgICBjb25k
ID0gYXN0LlVuYXJ5T3AoYXN0Lk5vdCgpLCBjb25kKQotICAgICAgICAgICAgICAgIGlubmVyID0g
W10KLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlbWVudHMuYXBwZW5kKGFzdC5JZihjb25kLCBp
bm5lciwgW10pKQotICAgICAgICAgICAgICAgIHNlbGYuc3RhdGVtZW50cyA9IGJvZHkgPSBpbm5l
cgotICAgICAgICBzZWxmLnN0YXRlbWVudHMgPSBzYXZlCi0gICAgICAgIHNlbGYub25fZmFpbHVy
ZSA9IGZhaWxfc2F2ZQotICAgICAgICBleHBsX3RlbXBsYXRlID0gc2VsZi5oZWxwZXIoImZvcm1h
dF9ib29sb3AiLCBleHBsX2xpc3QsIGFzdC5OdW0oaXNfb3IpKQotICAgICAgICBleHBsID0gc2Vs
Zi5wb3BfZm9ybWF0X2NvbnRleHQoZXhwbF90ZW1wbGF0ZSkKLSAgICAgICAgcmV0dXJuIGFzdC5O
YW1lKHJlc192YXIsIGFzdC5Mb2FkKCkpLCBzZWxmLmV4cGxhbmF0aW9uX3BhcmFtKGV4cGwpCi0K
LSAgICBkZWYgdmlzaXRfVW5hcnlPcChzZWxmLCB1bmFyeSk6Ci0gICAgICAgIHBhdHRlcm4gPSB1
bmFyeV9tYXBbdW5hcnkub3AuX19jbGFzc19fXQotICAgICAgICBvcGVyYW5kX3Jlcywgb3BlcmFu
ZF9leHBsID0gc2VsZi52aXNpdCh1bmFyeS5vcGVyYW5kKQotICAgICAgICByZXMgPSBzZWxmLmFz
c2lnbihhc3QuVW5hcnlPcCh1bmFyeS5vcCwgb3BlcmFuZF9yZXMpKQotICAgICAgICByZXR1cm4g
cmVzLCBwYXR0ZXJuICUgKG9wZXJhbmRfZXhwbCwpCi0KLSAgICBkZWYgdmlzaXRfQmluT3Aoc2Vs
ZiwgYmlub3ApOgotICAgICAgICBzeW1ib2wgPSBiaW5vcF9tYXBbYmlub3Aub3AuX19jbGFzc19f
XQotICAgICAgICBsZWZ0X2V4cHIsIGxlZnRfZXhwbCA9IHNlbGYudmlzaXQoYmlub3AubGVmdCkK
LSAgICAgICAgcmlnaHRfZXhwciwgcmlnaHRfZXhwbCA9IHNlbGYudmlzaXQoYmlub3AucmlnaHQp
Ci0gICAgICAgIGV4cGxhbmF0aW9uID0gIiglcyAlcyAlcykiICUgKGxlZnRfZXhwbCwgc3ltYm9s
LCByaWdodF9leHBsKQotICAgICAgICByZXMgPSBzZWxmLmFzc2lnbihhc3QuQmluT3AobGVmdF9l
eHByLCBiaW5vcC5vcCwgcmlnaHRfZXhwcikpCi0gICAgICAgIHJldHVybiByZXMsIGV4cGxhbmF0
aW9uCi0KLSAgICBkZWYgdmlzaXRfQ2FsbF8zNShzZWxmLCBjYWxsKToKLSAgICAgICAgIiIiCi0g
ICAgICAgIHZpc2l0IGBhc3QuQ2FsbGAgbm9kZXMgb24gUHl0aG9uMy41IGFuZCBhZnRlcgotICAg
ICAgICAiIiIKLSAgICAgICAgbmV3X2Z1bmMsIGZ1bmNfZXhwbCA9IHNlbGYudmlzaXQoY2FsbC5m
dW5jKQotICAgICAgICBhcmdfZXhwbHMgPSBbXQotICAgICAgICBuZXdfYXJncyA9IFtdCi0gICAg
ICAgIG5ld19rd2FyZ3MgPSBbXQotICAgICAgICBmb3IgYXJnIGluIGNhbGwuYXJnczoKLSAgICAg
ICAgICAgIHJlcywgZXhwbCA9IHNlbGYudmlzaXQoYXJnKQotICAgICAgICAgICAgYXJnX2V4cGxz
LmFwcGVuZChleHBsKQotICAgICAgICAgICAgbmV3X2FyZ3MuYXBwZW5kKHJlcykKLSAgICAgICAg
Zm9yIGtleXdvcmQgaW4gY2FsbC5rZXl3b3JkczoKLSAgICAgICAgICAgIHJlcywgZXhwbCA9IHNl
bGYudmlzaXQoa2V5d29yZC52YWx1ZSkKLSAgICAgICAgICAgIG5ld19rd2FyZ3MuYXBwZW5kKGFz
dC5rZXl3b3JkKGtleXdvcmQuYXJnLCByZXMpKQotICAgICAgICAgICAgaWYga2V5d29yZC5hcmc6
Ci0gICAgICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVuZChrZXl3b3JkLmFyZyArICI9IiArIGV4
cGwpCi0gICAgICAgICAgICBlbHNlOiAgIyAqKmFyZ3MgaGF2ZSBgYXJnYCBrZXl3b3JkcyB3aXRo
IGFuIC5hcmcgb2YgTm9uZQotICAgICAgICAgICAgICAgIGFyZ19leHBscy5hcHBlbmQoIioqIiAr
IGV4cGwpCi0KLSAgICAgICAgZXhwbCA9ICIlcyglcykiICUgKGZ1bmNfZXhwbCwgJywgJy5qb2lu
KGFyZ19leHBscykpCi0gICAgICAgIG5ld19jYWxsID0gYXN0LkNhbGwobmV3X2Z1bmMsIG5ld19h
cmdzLCBuZXdfa3dhcmdzKQotICAgICAgICByZXMgPSBzZWxmLmFzc2lnbihuZXdfY2FsbCkKLSAg
ICAgICAgcmVzX2V4cGwgPSBzZWxmLmV4cGxhbmF0aW9uX3BhcmFtKHNlbGYuZGlzcGxheShyZXMp
KQotICAgICAgICBvdXRlcl9leHBsID0gIiVzXG57JXMgPSAlc1xufSIgJSAocmVzX2V4cGwsIHJl
c19leHBsLCBleHBsKQotICAgICAgICByZXR1cm4gcmVzLCBvdXRlcl9leHBsCi0KLSAgICBkZWYg
dmlzaXRfU3RhcnJlZChzZWxmLCBzdGFycmVkKToKLSAgICAgICAgIyBGcm9tIFB5dGhvbiAzLjUs
IGEgU3RhcnJlZCBub2RlIGNhbiBhcHBlYXIgaW4gYSBmdW5jdGlvbiBjYWxsCi0gICAgICAgIHJl
cywgZXhwbCA9IHNlbGYudmlzaXQoc3RhcnJlZC52YWx1ZSkKLSAgICAgICAgcmV0dXJuIHN0YXJy
ZWQsICcqJyArIGV4cGwKLQotICAgIGRlZiB2aXNpdF9DYWxsX2xlZ2FjeShzZWxmLCBjYWxsKToK
LSAgICAgICAgIiIiCi0gICAgICAgIHZpc2l0IGBhc3QuQ2FsbCBub2RlcyBvbiAzLjQgYW5kIGJl
bG93YAotICAgICAgICAiIiIKLSAgICAgICAgbmV3X2Z1bmMsIGZ1bmNfZXhwbCA9IHNlbGYudmlz
aXQoY2FsbC5mdW5jKQotICAgICAgICBhcmdfZXhwbHMgPSBbXQotICAgICAgICBuZXdfYXJncyA9
IFtdCi0gICAgICAgIG5ld19rd2FyZ3MgPSBbXQotICAgICAgICBuZXdfc3RhciA9IG5ld19rd2Fy
ZyA9IE5vbmUKLSAgICAgICAgZm9yIGFyZyBpbiBjYWxsLmFyZ3M6Ci0gICAgICAgICAgICByZXMs
IGV4cGwgPSBzZWxmLnZpc2l0KGFyZykKLSAgICAgICAgICAgIG5ld19hcmdzLmFwcGVuZChyZXMp
Ci0gICAgICAgICAgICBhcmdfZXhwbHMuYXBwZW5kKGV4cGwpCi0gICAgICAgIGZvciBrZXl3b3Jk
IGluIGNhbGwua2V5d29yZHM6Ci0gICAgICAgICAgICByZXMsIGV4cGwgPSBzZWxmLnZpc2l0KGtl
eXdvcmQudmFsdWUpCi0gICAgICAgICAgICBuZXdfa3dhcmdzLmFwcGVuZChhc3Qua2V5d29yZChr
ZXl3b3JkLmFyZywgcmVzKSkKLSAgICAgICAgICAgIGFyZ19leHBscy5hcHBlbmQoa2V5d29yZC5h
cmcgKyAiPSIgKyBleHBsKQotICAgICAgICBpZiBjYWxsLnN0YXJhcmdzOgotICAgICAgICAgICAg
bmV3X3N0YXIsIGV4cGwgPSBzZWxmLnZpc2l0KGNhbGwuc3RhcmFyZ3MpCi0gICAgICAgICAgICBh
cmdfZXhwbHMuYXBwZW5kKCIqIiArIGV4cGwpCi0gICAgICAgIGlmIGNhbGwua3dhcmdzOgotICAg
ICAgICAgICAgbmV3X2t3YXJnLCBleHBsID0gc2VsZi52aXNpdChjYWxsLmt3YXJncykKLSAgICAg
ICAgICAgIGFyZ19leHBscy5hcHBlbmQoIioqIiArIGV4cGwpCi0gICAgICAgIGV4cGwgPSAiJXMo
JXMpIiAlIChmdW5jX2V4cGwsICcsICcuam9pbihhcmdfZXhwbHMpKQotICAgICAgICBuZXdfY2Fs
bCA9IGFzdC5DYWxsKG5ld19mdW5jLCBuZXdfYXJncywgbmV3X2t3YXJncywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdfc3RhciwgbmV3X2t3YXJnKQotICAgICAgICByZXMgPSBzZWxm
LmFzc2lnbihuZXdfY2FsbCkKLSAgICAgICAgcmVzX2V4cGwgPSBzZWxmLmV4cGxhbmF0aW9uX3Bh
cmFtKHNlbGYuZGlzcGxheShyZXMpKQotICAgICAgICBvdXRlcl9leHBsID0gIiVzXG57JXMgPSAl
c1xufSIgJSAocmVzX2V4cGwsIHJlc19leHBsLCBleHBsKQotICAgICAgICByZXR1cm4gcmVzLCBv
dXRlcl9leHBsCi0KLSAgICAjIGFzdC5DYWxsIHNpZ25hdHVyZSBjaGFuZ2VkIG9uIDMuNSwKLSAg
ICAjIGNvbmRpdGlvbmFsbHkgY2hhbmdlICB3aGljaCBtZXRob2RzIGlzIG5hbWVkCi0gICAgIyB2
aXNpdF9DYWxsIGRlcGVuZGluZyBvbiBQeXRob24gdmVyc2lvbgotICAgIGlmIHN5cy52ZXJzaW9u
X2luZm8gPj0gKDMsIDUpOgotICAgICAgICB2aXNpdF9DYWxsID0gdmlzaXRfQ2FsbF8zNQotICAg
IGVsc2U6Ci0gICAgICAgIHZpc2l0X0NhbGwgPSB2aXNpdF9DYWxsX2xlZ2FjeQotCi0gICAgZGVm
IHZpc2l0X0F0dHJpYnV0ZShzZWxmLCBhdHRyKToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo
YXR0ci5jdHgsIGFzdC5Mb2FkKToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmdlbmVyaWNfdmlz
aXQoYXR0cikKLSAgICAgICAgdmFsdWUsIHZhbHVlX2V4cGwgPSBzZWxmLnZpc2l0KGF0dHIudmFs
dWUpCi0gICAgICAgIHJlcyA9IHNlbGYuYXNzaWduKGFzdC5BdHRyaWJ1dGUodmFsdWUsIGF0dHIu
YXR0ciwgYXN0LkxvYWQoKSkpCi0gICAgICAgIHJlc19leHBsID0gc2VsZi5leHBsYW5hdGlvbl9w
YXJhbShzZWxmLmRpc3BsYXkocmVzKSkKLSAgICAgICAgcGF0ID0gIiVzXG57JXMgPSAlcy4lc1xu
fSIKLSAgICAgICAgZXhwbCA9IHBhdCAlIChyZXNfZXhwbCwgcmVzX2V4cGwsIHZhbHVlX2V4cGws
IGF0dHIuYXR0cikKLSAgICAgICAgcmV0dXJuIHJlcywgZXhwbAotCi0gICAgZGVmIHZpc2l0X0Nv
bXBhcmUoc2VsZiwgY29tcCk6Ci0gICAgICAgIHNlbGYucHVzaF9mb3JtYXRfY29udGV4dCgpCi0g
ICAgICAgIGxlZnRfcmVzLCBsZWZ0X2V4cGwgPSBzZWxmLnZpc2l0KGNvbXAubGVmdCkKLSAgICAg
ICAgaWYgaXNpbnN0YW5jZShjb21wLmxlZnQsIChfYXN0LkNvbXBhcmUsIF9hc3QuQm9vbE9wKSk6
Ci0gICAgICAgICAgICBsZWZ0X2V4cGwgPSAiKHswfSkiLmZvcm1hdChsZWZ0X2V4cGwpCi0gICAg
ICAgIHJlc192YXJpYWJsZXMgPSBbc2VsZi52YXJpYWJsZSgpIGZvciBpIGluIHJhbmdlKGxlbihj
b21wLm9wcykpXQotICAgICAgICBsb2FkX25hbWVzID0gW2FzdC5OYW1lKHYsIGFzdC5Mb2FkKCkp
IGZvciB2IGluIHJlc192YXJpYWJsZXNdCi0gICAgICAgIHN0b3JlX25hbWVzID0gW2FzdC5OYW1l
KHYsIGFzdC5TdG9yZSgpKSBmb3IgdiBpbiByZXNfdmFyaWFibGVzXQotICAgICAgICBpdCA9IHpp
cChyYW5nZShsZW4oY29tcC5vcHMpKSwgY29tcC5vcHMsIGNvbXAuY29tcGFyYXRvcnMpCi0gICAg
ICAgIGV4cGxzID0gW10KLSAgICAgICAgc3ltcyA9IFtdCi0gICAgICAgIHJlc3VsdHMgPSBbbGVm
dF9yZXNdCi0gICAgICAgIGZvciBpLCBvcCwgbmV4dF9vcGVyYW5kIGluIGl0OgotICAgICAgICAg
ICAgbmV4dF9yZXMsIG5leHRfZXhwbCA9IHNlbGYudmlzaXQobmV4dF9vcGVyYW5kKQotICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZShuZXh0X29wZXJhbmQsIChfYXN0LkNvbXBhcmUsIF9hc3QuQm9v
bE9wKSk6Ci0gICAgICAgICAgICAgICAgbmV4dF9leHBsID0gIih7MH0pIi5mb3JtYXQobmV4dF9l
eHBsKQotICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobmV4dF9yZXMpCi0gICAgICAgICAgICBz
eW0gPSBiaW5vcF9tYXBbb3AuX19jbGFzc19fXQotICAgICAgICAgICAgc3ltcy5hcHBlbmQoYXN0
LlN0cihzeW0pKQotICAgICAgICAgICAgZXhwbCA9ICIlcyAlcyAlcyIgJSAobGVmdF9leHBsLCBz
eW0sIG5leHRfZXhwbCkKLSAgICAgICAgICAgIGV4cGxzLmFwcGVuZChhc3QuU3RyKGV4cGwpKQot
ICAgICAgICAgICAgcmVzX2V4cHIgPSBhc3QuQ29tcGFyZShsZWZ0X3JlcywgW29wXSwgW25leHRf
cmVzXSkKLSAgICAgICAgICAgIHNlbGYuc3RhdGVtZW50cy5hcHBlbmQoYXN0LkFzc2lnbihbc3Rv
cmVfbmFtZXNbaV1dLCByZXNfZXhwcikpCi0gICAgICAgICAgICBsZWZ0X3JlcywgbGVmdF9leHBs
ID0gbmV4dF9yZXMsIG5leHRfZXhwbAotICAgICAgICAjIFVzZSBweXRlc3QuYXNzZXJ0aW9uLnV0
aWwuX3JlcHJjb21wYXJlIGlmIHRoYXQncyBhdmFpbGFibGUuCi0gICAgICAgIGV4cGxfY2FsbCA9
IHNlbGYuaGVscGVyKCJjYWxsX3JlcHJjb21wYXJlIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXN0LlR1cGxlKHN5bXMsIGFzdC5Mb2FkKCkpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3QuVHVwbGUobG9hZF9uYW1lcywgYXN0LkxvYWQoKSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5UdXBsZShleHBscywgYXN0LkxvYWQoKSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5UdXBsZShyZXN1bHRzLCBhc3QuTG9h
ZCgpKSkKLSAgICAgICAgaWYgbGVuKGNvbXAub3BzKSA+IDE6Ci0gICAgICAgICAgICByZXMgPSBh
c3QuQm9vbE9wKGFzdC5BbmQoKSwgbG9hZF9uYW1lcykKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHJlcyA9IGxvYWRfbmFtZXNbMF0KLSAgICAgICAgcmV0dXJuIHJlcywgc2VsZi5leHBsYW5h
dGlvbl9wYXJhbShzZWxmLnBvcF9mb3JtYXRfY29udGV4dChleHBsX2NhbGwpKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdHJ1bmNhdGUucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMmVkMTJlMmU1YTk2MGNhNjBkOTk4NjhlMTk4OTdhMjdkZGE2ZDgzMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2Fzc2VydGlvbi90cnVuY2F0ZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi0i
IiIKLVV0aWxpdGllcyBmb3IgdHJ1bmNhdGluZyBhc3NlcnRpb24gb3V0cHV0LgotCi1DdXJyZW50
IGRlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIHRydW5jYXRlIGFzc2VydGlvbiBleHBsYW5hdGlvbnMg
YXQKLX44IHRlcm1pbmFsIGxpbmVzLCB1bmxlc3MgcnVubmluZyBpbiAiLXZ2IiBtb2RlIG9yIHJ1
bm5pbmcgb24gQ0kuCi0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBvcwotCi1pbXBvcnQgc2l4Ci0KLQot
REVGQVVMVF9NQVhfTElORVMgPSA4Ci1ERUZBVUxUX01BWF9DSEFSUyA9IDggKiA4MAotVVNBR0Vf
TVNHID0gInVzZSAnLXZ2JyB0byBzaG93IgotCi0KLWRlZiB0cnVuY2F0ZV9pZl9yZXF1aXJlZChl
eHBsYW5hdGlvbiwgaXRlbSwgbWF4X2xlbmd0aD1Ob25lKToKLSAgICAiIiIKLSAgICBUcnVuY2F0
ZSB0aGlzIGFzc2VydGlvbiBleHBsYW5hdGlvbiBpZiB0aGUgZ2l2ZW4gdGVzdCBpdGVtIGlzIGVs
aWdpYmxlLgotICAgICIiIgotICAgIGlmIF9zaG91bGRfdHJ1bmNhdGVfaXRlbShpdGVtKToKLSAg
ICAgICAgcmV0dXJuIF90cnVuY2F0ZV9leHBsYW5hdGlvbihleHBsYW5hdGlvbikKLSAgICByZXR1
cm4gZXhwbGFuYXRpb24KLQotCi1kZWYgX3Nob3VsZF90cnVuY2F0ZV9pdGVtKGl0ZW0pOgotICAg
ICIiIgotICAgIFdoZXRoZXIgb3Igbm90IHRoaXMgdGVzdCBpdGVtIGlzIGVsaWdpYmxlIGZvciB0
cnVuY2F0aW9uLgotICAgICIiIgotICAgIHZlcmJvc2UgPSBpdGVtLmNvbmZpZy5vcHRpb24udmVy
Ym9zZQotICAgIHJldHVybiB2ZXJib3NlIDwgMiBhbmQgbm90IF9ydW5uaW5nX29uX2NpKCkKLQot
Ci1kZWYgX3J1bm5pbmdfb25fY2koKToKLSAgICAiIiJDaGVjayBpZiB3ZSdyZSBjdXJyZW50bHkg
cnVubmluZyBvbiBhIENJIHN5c3RlbS4iIiIKLSAgICBlbnZfdmFycyA9IFsnQ0knLCAnQlVJTERf
TlVNQkVSJ10KLSAgICByZXR1cm4gYW55KHZhciBpbiBvcy5lbnZpcm9uIGZvciB2YXIgaW4gZW52
X3ZhcnMpCi0KLQotZGVmIF90cnVuY2F0ZV9leHBsYW5hdGlvbihpbnB1dF9saW5lcywgbWF4X2xp
bmVzPU5vbmUsIG1heF9jaGFycz1Ob25lKToKLSAgICAiIiIKLSAgICBUcnVuY2F0ZSBnaXZlbiBs
aXN0IG9mIHN0cmluZ3MgdGhhdCBtYWtlcyB1cCB0aGUgYXNzZXJ0aW9uIGV4cGxhbmF0aW9uLgot
Ci0gICAgVHJ1bmNhdGVzIHRvIGVpdGhlciA4IGxpbmVzLCBvciA2NDAgY2hhcmFjdGVycyAtIHdo
aWNoZXZlciB0aGUgaW5wdXQgcmVhY2hlcwotICAgIGZpcnN0LiBUaGUgcmVtYWluaW5nIGxpbmVz
IHdpbGwgYmUgcmVwbGFjZWQgYnkgYSB1c2FnZSBtZXNzYWdlLgotICAgICIiIgotCi0gICAgaWYg
bWF4X2xpbmVzIGlzIE5vbmU6Ci0gICAgICAgIG1heF9saW5lcyA9IERFRkFVTFRfTUFYX0xJTkVT
Ci0gICAgaWYgbWF4X2NoYXJzIGlzIE5vbmU6Ci0gICAgICAgIG1heF9jaGFycyA9IERFRkFVTFRf
TUFYX0NIQVJTCi0KLSAgICAjIENoZWNrIGlmIHRydW5jYXRpb24gcmVxdWlyZWQKLSAgICBpbnB1
dF9jaGFyX2NvdW50ID0gbGVuKCIiLmpvaW4oaW5wdXRfbGluZXMpKQotICAgIGlmIGxlbihpbnB1
dF9saW5lcykgPD0gbWF4X2xpbmVzIGFuZCBpbnB1dF9jaGFyX2NvdW50IDw9IG1heF9jaGFyczoK
LSAgICAgICAgcmV0dXJuIGlucHV0X2xpbmVzCi0KLSAgICAjIFRydW5jYXRlIGZpcnN0IHRvIG1h
eF9saW5lcywgYW5kIHRoZW4gdHJ1bmNhdGUgdG8gbWF4X2NoYXJzIGlmIG1heF9jaGFycwotICAg
ICMgaXMgZXhjZWVkZWQuCi0gICAgdHJ1bmNhdGVkX2V4cGxhbmF0aW9uID0gaW5wdXRfbGluZXNb
Om1heF9saW5lc10KLSAgICB0cnVuY2F0ZWRfZXhwbGFuYXRpb24gPSBfdHJ1bmNhdGVfYnlfY2hh
cl9jb3VudCh0cnVuY2F0ZWRfZXhwbGFuYXRpb24sIG1heF9jaGFycykKLQotICAgICMgQWRkIGVs
bGlwc2lzIHRvIGZpbmFsIGxpbmUKLSAgICB0cnVuY2F0ZWRfZXhwbGFuYXRpb25bLTFdID0gdHJ1
bmNhdGVkX2V4cGxhbmF0aW9uWy0xXSArICIuLi4iCi0KLSAgICAjIEFwcGVuZCB1c2VmdWwgbWVz
c2FnZSB0byBleHBsYW5hdGlvbgotICAgIHRydW5jYXRlZF9saW5lX2NvdW50ID0gbGVuKGlucHV0
X2xpbmVzKSAtIGxlbih0cnVuY2F0ZWRfZXhwbGFuYXRpb24pCi0gICAgdHJ1bmNhdGVkX2xpbmVf
Y291bnQgKz0gMSAgIyBBY2NvdW50IGZvciB0aGUgcGFydC10cnVuY2F0ZWQgZmluYWwgbGluZQot
ICAgIG1zZyA9ICcuLi5GdWxsIG91dHB1dCB0cnVuY2F0ZWQnCi0gICAgaWYgdHJ1bmNhdGVkX2xp
bmVfY291bnQgPT0gMToKLSAgICAgICAgbXNnICs9ICcgKHswfSBsaW5lIGhpZGRlbiknLmZvcm1h
dCh0cnVuY2F0ZWRfbGluZV9jb3VudCkKLSAgICBlbHNlOgotICAgICAgICBtc2cgKz0gJyAoezB9
IGxpbmVzIGhpZGRlbiknLmZvcm1hdCh0cnVuY2F0ZWRfbGluZV9jb3VudCkKLSAgICBtc2cgKz0g
IiwgezB9IiAuZm9ybWF0KFVTQUdFX01TRykKLSAgICB0cnVuY2F0ZWRfZXhwbGFuYXRpb24uZXh0
ZW5kKFsKLSAgICAgICAgc2l4LnRleHRfdHlwZSgiIiksCi0gICAgICAgIHNpeC50ZXh0X3R5cGUo
bXNnKSwKLSAgICBdKQotICAgIHJldHVybiB0cnVuY2F0ZWRfZXhwbGFuYXRpb24KLQotCi1kZWYg
X3RydW5jYXRlX2J5X2NoYXJfY291bnQoaW5wdXRfbGluZXMsIG1heF9jaGFycyk6Ci0gICAgIyBD
aGVjayBpZiB0cnVuY2F0aW9uIHJlcXVpcmVkCi0gICAgaWYgbGVuKCIiLmpvaW4oaW5wdXRfbGlu
ZXMpKSA8PSBtYXhfY2hhcnM6Ci0gICAgICAgIHJldHVybiBpbnB1dF9saW5lcwotCi0gICAgIyBG
aW5kIHBvaW50IGF0IHdoaWNoIGlucHV0IGxlbmd0aCBleGNlZWRzIHRvdGFsIGFsbG93ZWQgbGVu
Z3RoCi0gICAgaXRlcmF0ZWRfY2hhcl9jb3VudCA9IDAKLSAgICBmb3IgaXRlcmF0ZWRfaW5kZXgs
IGlucHV0X2xpbmUgaW4gZW51bWVyYXRlKGlucHV0X2xpbmVzKToKLSAgICAgICAgaWYgaXRlcmF0
ZWRfY2hhcl9jb3VudCArIGxlbihpbnB1dF9saW5lKSA+IG1heF9jaGFyczoKLSAgICAgICAgICAg
IGJyZWFrCi0gICAgICAgIGl0ZXJhdGVkX2NoYXJfY291bnQgKz0gbGVuKGlucHV0X2xpbmUpCi0K
LSAgICAjIENyZWF0ZSB0cnVuY2F0ZWQgZXhwbGFuYXRpb24gd2l0aCBtb2RpZmllZCBmaW5hbCBs
aW5lCi0gICAgdHJ1bmNhdGVkX3Jlc3VsdCA9IGlucHV0X2xpbmVzWzppdGVyYXRlZF9pbmRleF0K
LSAgICBmaW5hbF9saW5lID0gaW5wdXRfbGluZXNbaXRlcmF0ZWRfaW5kZXhdCi0gICAgaWYgZmlu
YWxfbGluZToKLSAgICAgICAgZmluYWxfbGluZV90cnVuY2F0ZV9wb2ludCA9IG1heF9jaGFycyAt
IGl0ZXJhdGVkX2NoYXJfY291bnQKLSAgICAgICAgZmluYWxfbGluZSA9IGZpbmFsX2xpbmVbOmZp
bmFsX2xpbmVfdHJ1bmNhdGVfcG9pbnRdCi0gICAgdHJ1bmNhdGVkX3Jlc3VsdC5hcHBlbmQoZmlu
YWxfbGluZSkKLSAgICByZXR1cm4gdHJ1bmNhdGVkX3Jlc3VsdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNz
ZXJ0aW9uL3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxMWQ5OGVmMWZk
ZjE5NjQzZDJhYzZiODg2NDhlODhjNjdiZDlkYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdXRpbC5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDMwOCArMCwwIEBACi0iIiJVdGlsaXRpZXMgZm9yIGFzc2Vy
dGlvbiBkZWJ1Z2dpbmciIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBwcHJpbnQKLQotaW1wb3J0IF9weXRl
c3QuX2NvZGUKLWltcG9ydCBweQotaW1wb3J0IHNpeAotdHJ5OgotICAgIGZyb20gY29sbGVjdGlv
bnMgaW1wb3J0IFNlcXVlbmNlCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgU2VxdWVuY2UgPSBs
aXN0Ci0KLQotdSA9IHNpeC50ZXh0X3R5cGUKLQotIyBUaGUgX3JlcHJjb21wYXJlIGF0dHJpYnV0
ZSBvbiB0aGUgdXRpbCBtb2R1bGUgaXMgdXNlZCBieSB0aGUgbmV3IGFzc2VydGlvbgotIyBpbnRl
cnByZXRhdGlvbiBjb2RlIGFuZCBhc3NlcnRpb24gcmV3cml0ZXIgdG8gZGV0ZWN0IHRoaXMgcGx1
Z2luIHdhcwotIyBsb2FkZWQgYW5kIGluIHR1cm4gY2FsbCB0aGUgaG9va3MgZGVmaW5lZCBoZXJl
IGFzIHBhcnQgb2YgdGhlCi0jIERlYnVnSW50ZXJwcmV0ZXIuCi1fcmVwcmNvbXBhcmUgPSBOb25l
Ci0KLQotIyB0aGUgcmUtZW5jb2RpbmcgaXMgbmVlZGVkIGZvciBweXRob24yIHJlcHIKLSMgd2l0
aCBub24tYXNjaWkgY2hhcmFjdGVycyAoc2VlIGlzc3VlIDg3NyBhbmQgMTM3OSkKLWRlZiBlY3Uo
cyk6Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gdShzLCAndXRmLTgnLCAncmVwbGFjZScpCi0g
ICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAgcmV0dXJuIHMKLQotCi1kZWYgZm9ybWF0X2V4
cGxhbmF0aW9uKGV4cGxhbmF0aW9uKToKLSAgICAiIiJUaGlzIGZvcm1hdHMgYW4gZXhwbGFuYXRp
b24KLQotICAgIE5vcm1hbGx5IGFsbCBlbWJlZGRlZCBuZXdsaW5lcyBhcmUgZXNjYXBlZCwgaG93
ZXZlciB0aGVyZSBhcmUKLSAgICB0aHJlZSBleGNlcHRpb25zOiBcbnssIFxufSBhbmQgXG5+LiAg
VGhlIGZpcnN0IHR3byBhcmUgaW50ZW5kZWQKLSAgICBjb3ZlciBuZXN0ZWQgZXhwbGFuYXRpb25z
LCBzZWUgZnVuY3Rpb24gYW5kIGF0dHJpYnV0ZSBleHBsYW5hdGlvbnMKLSAgICBmb3IgZXhhbXBs
ZXMgKC52aXNpdF9DYWxsKCksIHZpc2l0X0F0dHJpYnV0ZSgpKS4gIFRoZSBsYXN0IG9uZSBpcwot
ICAgIGZvciB3aGVuIG9uZSBleHBsYW5hdGlvbiBuZWVkcyB0byBzcGFuIG11bHRpcGxlIGxpbmVz
LCBlLmcuIHdoZW4KLSAgICBkaXNwbGF5aW5nIGRpZmZzLgotICAgICIiIgotICAgIGV4cGxhbmF0
aW9uID0gZWN1KGV4cGxhbmF0aW9uKQotICAgIGxpbmVzID0gX3NwbGl0X2V4cGxhbmF0aW9uKGV4
cGxhbmF0aW9uKQotICAgIHJlc3VsdCA9IF9mb3JtYXRfbGluZXMobGluZXMpCi0gICAgcmV0dXJu
IHUoJ1xuJykuam9pbihyZXN1bHQpCi0KLQotZGVmIF9zcGxpdF9leHBsYW5hdGlvbihleHBsYW5h
dGlvbik6Ci0gICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBpbmRpdmlkdWFsIGxpbmVzIGluIHRoZSBl
eHBsYW5hdGlvbgotCi0gICAgVGhpcyB3aWxsIHJldHVybiBhIGxpc3Qgb2YgbGluZXMgc3BsaXQg
b24gJ1xueycsICdcbn0nIGFuZCAnXG5+Jy4KLSAgICBBbnkgb3RoZXIgbmV3bGluZXMgd2lsbCBi
ZSBlc2NhcGVkIGFuZCBhcHBlYXIgaW4gdGhlIGxpbmUgYXMgdGhlCi0gICAgbGl0ZXJhbCAnXG4n
IGNoYXJhY3RlcnMuCi0gICAgIiIiCi0gICAgcmF3X2xpbmVzID0gKGV4cGxhbmF0aW9uIG9yIHUo
JycpKS5zcGxpdCgnXG4nKQotICAgIGxpbmVzID0gW3Jhd19saW5lc1swXV0KLSAgICBmb3IgdmFs
dWVzIGluIHJhd19saW5lc1sxOl06Ci0gICAgICAgIGlmIHZhbHVlcyBhbmQgdmFsdWVzWzBdIGlu
IFsneycsICd9JywgJ34nLCAnPiddOgotICAgICAgICAgICAgbGluZXMuYXBwZW5kKHZhbHVlcykK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxpbmVzWy0xXSArPSAnXFxuJyArIHZhbHVlcwot
ICAgIHJldHVybiBsaW5lcwotCi0KLWRlZiBfZm9ybWF0X2xpbmVzKGxpbmVzKToKLSAgICAiIiJG
b3JtYXQgdGhlIGluZGl2aWR1YWwgbGluZXMKLQotICAgIFRoaXMgd2lsbCByZXBsYWNlIHRoZSAn
eycsICd9JyBhbmQgJ34nIGNoYXJhY3RlcnMgb2Ygb3VyIG1pbmkKLSAgICBmb3JtYXR0aW5nIGxh
bmd1YWdlIHdpdGggdGhlIHByb3BlciAnd2hlcmUgLi4uJywgJ2FuZCAuLi4nIGFuZCAnICsKLSAg
ICAuLi4nIHRleHQsIHRha2luZyBjYXJlIG9mIGluZGVudGF0aW9uIGFsb25nIHRoZSB3YXkuCi0K
LSAgICBSZXR1cm4gYSBsaXN0IG9mIGZvcm1hdHRlZCBsaW5lcy4KLSAgICAiIiIKLSAgICByZXN1
bHQgPSBsaW5lc1s6MV0KLSAgICBzdGFjayA9IFswXQotICAgIHN0YWNrY250ID0gWzBdCi0gICAg
Zm9yIGxpbmUgaW4gbGluZXNbMTpdOgotICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ3snKToK
LSAgICAgICAgICAgIGlmIHN0YWNrY250Wy0xXToKLSAgICAgICAgICAgICAgICBzID0gdSgnYW5k
ICAgJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcyA9IHUoJ3doZXJlICcp
Ci0gICAgICAgICAgICBzdGFjay5hcHBlbmQobGVuKHJlc3VsdCkpCi0gICAgICAgICAgICBzdGFj
a2NudFstMV0gKz0gMQotICAgICAgICAgICAgc3RhY2tjbnQuYXBwZW5kKDApCi0gICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKHUoJyArJykgKyB1KCcgICcpICogKGxlbihzdGFjaykgLSAxKSArIHMg
KyBsaW5lWzE6XSkKLSAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoJ30nKToKLSAgICAgICAg
ICAgIHN0YWNrLnBvcCgpCi0gICAgICAgICAgICBzdGFja2NudC5wb3AoKQotICAgICAgICAgICAg
cmVzdWx0W3N0YWNrWy0xXV0gKz0gbGluZVsxOl0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGFzc2VydCBsaW5lWzBdIGluIFsnficsICc+J10KLSAgICAgICAgICAgIHN0YWNrWy0xXSArPSAx
Ci0gICAgICAgICAgICBpbmRlbnQgPSBsZW4oc3RhY2spIGlmIGxpbmUuc3RhcnRzd2l0aCgnficp
IGVsc2UgbGVuKHN0YWNrKSAtIDEKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodSgnICAnKSAq
IGluZGVudCArIGxpbmVbMTpdKQotICAgIGFzc2VydCBsZW4oc3RhY2spID09IDEKLSAgICByZXR1
cm4gcmVzdWx0Ci0KLQotIyBQcm92aWRlIGJhc2VzdHJpbmcgaW4gcHl0aG9uMwotdHJ5OgotICAg
IGJhc2VzdHJpbmcgPSBiYXNlc3RyaW5nCi1leGNlcHQgTmFtZUVycm9yOgotICAgIGJhc2VzdHJp
bmcgPSBzdHIKLQotCi1kZWYgYXNzZXJ0cmVwcl9jb21wYXJlKGNvbmZpZywgb3AsIGxlZnQsIHJp
Z2h0KToKLSAgICAiIiJSZXR1cm4gc3BlY2lhbGlzZWQgZXhwbGFuYXRpb25zIGZvciBzb21lIG9w
ZXJhdG9ycy9vcGVyYW5kcyIiIgotICAgIHdpZHRoID0gODAgLSAxNSAtIGxlbihvcCkgLSAyICAj
IDE1IGNoYXJzIGluZGVudGF0aW9uLCAxIHNwYWNlIGFyb3VuZCBvcAotICAgIGxlZnRfcmVwciA9
IHB5LmlvLnNhZmVyZXByKGxlZnQsIG1heHNpemU9aW50KHdpZHRoIC8vIDIpKQotICAgIHJpZ2h0
X3JlcHIgPSBweS5pby5zYWZlcmVwcihyaWdodCwgbWF4c2l6ZT13aWR0aCAtIGxlbihsZWZ0X3Jl
cHIpKQotCi0gICAgc3VtbWFyeSA9IHUoJyVzICVzICVzJykgJSAoZWN1KGxlZnRfcmVwciksIG9w
LCBlY3UocmlnaHRfcmVwcikpCi0KLSAgICBkZWYgaXNzZXF1ZW5jZSh4KToKLSAgICAgICAgcmV0
dXJuIChpc2luc3RhbmNlKHgsIChsaXN0LCB0dXBsZSwgU2VxdWVuY2UpKSBhbmQgbm90IGlzaW5z
dGFuY2UoeCwgYmFzZXN0cmluZykpCi0KLSAgICBkZWYgaXN0ZXh0KHgpOgotICAgICAgICByZXR1
cm4gaXNpbnN0YW5jZSh4LCBiYXNlc3RyaW5nKQotCi0gICAgZGVmIGlzZGljdCh4KToKLSAgICAg
ICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgZGljdCkKLQotICAgIGRlZiBpc3NldCh4KToKLSAgICAg
ICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgKHNldCwgZnJvemVuc2V0KSkKLQotICAgIGRlZiBpc2l0
ZXJhYmxlKG9iaik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGl0ZXIob2JqKQotICAgICAg
ICAgICAgcmV0dXJuIG5vdCBpc3RleHQob2JqKQotICAgICAgICBleGNlcHQgVHlwZUVycm9yOgot
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICB2ZXJib3NlID0gY29uZmlnLmdldG9wdGlv
bigndmVyYm9zZScpCi0gICAgZXhwbGFuYXRpb24gPSBOb25lCi0gICAgdHJ5OgotICAgICAgICBp
ZiBvcCA9PSAnPT0nOgotICAgICAgICAgICAgaWYgaXN0ZXh0KGxlZnQpIGFuZCBpc3RleHQocmln
aHQpOgotICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gX2RpZmZfdGV4dChsZWZ0LCByaWdo
dCwgdmVyYm9zZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgaXNzZXF1
ZW5jZShsZWZ0KSBhbmQgaXNzZXF1ZW5jZShyaWdodCk6Ci0gICAgICAgICAgICAgICAgICAgIGV4
cGxhbmF0aW9uID0gX2NvbXBhcmVfZXFfc2VxdWVuY2UobGVmdCwgcmlnaHQsIHZlcmJvc2UpCi0g
ICAgICAgICAgICAgICAgZWxpZiBpc3NldChsZWZ0KSBhbmQgaXNzZXQocmlnaHQpOgotICAgICAg
ICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9IF9jb21wYXJlX2VxX3NldChsZWZ0LCByaWdodCwg
dmVyYm9zZSkKLSAgICAgICAgICAgICAgICBlbGlmIGlzZGljdChsZWZ0KSBhbmQgaXNkaWN0KHJp
Z2h0KToKLSAgICAgICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBfY29tcGFyZV9lcV9kaWN0
KGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQotICAgICAgICAgICAgICAgIGlmIGlzaXRlcmFibGUobGVm
dCkgYW5kIGlzaXRlcmFibGUocmlnaHQpOgotICAgICAgICAgICAgICAgICAgICBleHBsID0gX2Nv
bXBhcmVfZXFfaXRlcmFibGUobGVmdCwgcmlnaHQsIHZlcmJvc2UpCi0gICAgICAgICAgICAgICAg
ICAgIGlmIGV4cGxhbmF0aW9uIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICAgICAg
ZXhwbGFuYXRpb24uZXh0ZW5kKGV4cGwpCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9IGV4cGwKLSAgICAgICAgZWxpZiBvcCA9
PSAnbm90IGluJzoKLSAgICAgICAgICAgIGlmIGlzdGV4dChsZWZ0KSBhbmQgaXN0ZXh0KHJpZ2h0
KToKLSAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9IF9ub3Rpbl90ZXh0KGxlZnQsIHJpZ2h0
LCB2ZXJib3NlKQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIGV4cGxhbmF0aW9uID0g
WwotICAgICAgICAgICAgdSgnKHB5dGVzdF9hc3NlcnRpb24gcGx1Z2luOiByZXByZXNlbnRhdGlv
biBvZiBkZXRhaWxzIGZhaWxlZC4gICcKLSAgICAgICAgICAgICAgJ1Byb2JhYmx5IGFuIG9iamVj
dCBoYXMgYSBmYXVsdHkgX19yZXByX18uKScpLAotICAgICAgICAgICAgdShfcHl0ZXN0Ll9jb2Rl
LkV4Y2VwdGlvbkluZm8oKSldCi0KLSAgICBpZiBub3QgZXhwbGFuYXRpb246Ci0gICAgICAgIHJl
dHVybiBOb25lCi0KLSAgICByZXR1cm4gW3N1bW1hcnldICsgZXhwbGFuYXRpb24KLQotCi1kZWYg
X2RpZmZfdGV4dChsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxzZSk6Ci0gICAgIiIiUmV0dXJuIHRo
ZSBleHBsYW5hdGlvbiBmb3IgdGhlIGRpZmYgYmV0d2VlbiB0ZXh0IG9yIGJ5dGVzCi0KLSAgICBV
bmxlc3MgLS12ZXJib3NlIGlzIHVzZWQgdGhpcyB3aWxsIHNraXAgbGVhZGluZyBhbmQgdHJhaWxp
bmcKLSAgICBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBpZGVudGljYWwgdG8ga2VlcCB0aGUgZGlmZiBt
aW5pbWFsLgotCi0gICAgSWYgdGhlIGlucHV0IGFyZSBieXRlcyB0aGV5IHdpbGwgYmUgc2FmZWx5
IGNvbnZlcnRlZCB0byB0ZXh0LgotICAgICIiIgotICAgIGZyb20gZGlmZmxpYiBpbXBvcnQgbmRp
ZmYKLSAgICBleHBsYW5hdGlvbiA9IFtdCi0gICAgaWYgaXNpbnN0YW5jZShsZWZ0LCBzaXguYmlu
YXJ5X3R5cGUpOgotICAgICAgICBsZWZ0ID0gdShyZXByKGxlZnQpWzE6LTFdKS5yZXBsYWNlKHIn
XG4nLCAnXG4nKQotICAgIGlmIGlzaW5zdGFuY2UocmlnaHQsIHNpeC5iaW5hcnlfdHlwZSk6Ci0g
ICAgICAgIHJpZ2h0ID0gdShyZXByKHJpZ2h0KVsxOi0xXSkucmVwbGFjZShyJ1xuJywgJ1xuJykK
LSAgICBpZiBub3QgdmVyYm9zZToKLSAgICAgICAgaSA9IDAgICMganVzdCBpbiBjYXNlIGxlZnQg
b3IgcmlnaHQgaGFzIHplcm8gbGVuZ3RoCi0gICAgICAgIGZvciBpIGluIHJhbmdlKG1pbihsZW4o
bGVmdCksIGxlbihyaWdodCkpKToKLSAgICAgICAgICAgIGlmIGxlZnRbaV0gIT0gcmlnaHRbaV06
Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgaWYgaSA+IDQyOgotICAgICAgICAgICAg
aSAtPSAxMCAgICAgICAgICAgICAgICAgIyBQcm92aWRlIHNvbWUgY29udGV4dAotICAgICAgICAg
ICAgZXhwbGFuYXRpb24gPSBbdSgnU2tpcHBpbmcgJXMgaWRlbnRpY2FsIGxlYWRpbmcgJwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hhcmFjdGVycyBpbiBkaWZmLCB1c2UgLXYgdG8g
c2hvdycpICUgaV0KLSAgICAgICAgICAgIGxlZnQgPSBsZWZ0W2k6XQotICAgICAgICAgICAgcmln
aHQgPSByaWdodFtpOl0KLSAgICAgICAgaWYgbGVuKGxlZnQpID09IGxlbihyaWdodCk6Ci0gICAg
ICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4obGVmdCkpOgotICAgICAgICAgICAgICAgIGlmIGxl
ZnRbLWldICE9IHJpZ2h0Wy1pXToKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAg
ICAgIGlmIGkgPiA0MjoKLSAgICAgICAgICAgICAgICBpIC09IDEwICAgICAjIFByb3ZpZGUgc29t
ZSBjb250ZXh0Ci0gICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UoJ1NraXBwaW5nICVz
IGlkZW50aWNhbCB0cmFpbGluZyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2NoYXJhY3RlcnMgaW4gZGlmZiwgdXNlIC12IHRvIHNob3cnKSAlIGldCi0gICAgICAgICAgICAg
ICAgbGVmdCA9IGxlZnRbOi1pXQotICAgICAgICAgICAgICAgIHJpZ2h0ID0gcmlnaHRbOi1pXQot
ICAgIGtlZXBlbmRzID0gVHJ1ZQotICAgIGV4cGxhbmF0aW9uICs9IFtsaW5lLnN0cmlwKCdcbicp
Ci0gICAgICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIG5kaWZmKGxlZnQuc3BsaXRsaW5lcyhr
ZWVwZW5kcyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0LnNw
bGl0bGluZXMoa2VlcGVuZHMpKV0KLSAgICByZXR1cm4gZXhwbGFuYXRpb24KLQotCi1kZWYgX2Nv
bXBhcmVfZXFfaXRlcmFibGUobGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgotICAgIGlmIG5v
dCB2ZXJib3NlOgotICAgICAgICByZXR1cm4gW3UoJ1VzZSAtdiB0byBnZXQgdGhlIGZ1bGwgZGlm
ZicpXQotICAgICMgZHluYW1pYyBpbXBvcnQgdG8gc3BlZWR1cCBweXRlc3QKLSAgICBpbXBvcnQg
ZGlmZmxpYgotCi0gICAgdHJ5OgotICAgICAgICBsZWZ0X2Zvcm1hdHRpbmcgPSBwcHJpbnQucGZv
cm1hdChsZWZ0KS5zcGxpdGxpbmVzKCkKLSAgICAgICAgcmlnaHRfZm9ybWF0dGluZyA9IHBwcmlu
dC5wZm9ybWF0KHJpZ2h0KS5zcGxpdGxpbmVzKCkKLSAgICAgICAgZXhwbGFuYXRpb24gPSBbdSgn
RnVsbCBkaWZmOicpXQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICMgaGFjazogUHJl
dHR5UHJpbnRlci5wZm9ybWF0KCkgaW4gcHl0aG9uIDIgZmFpbHMgd2hlbiBmb3JtYXR0aW5nIGl0
ZW1zIHRoYXQgY2FuJ3QgYmUgc29ydGVkKCksIGllLCBjYWxsaW5nCi0gICAgICAgICMgc29ydGVk
KCkgb24gYSBsaXN0IHdvdWxkIHJhaXNlLiBTZWUgaXNzdWUgIzcxOC4KLSAgICAgICAgIyBBcyBh
IHdvcmthcm91bmQsIHRoZSBmdWxsIGRpZmYgaXMgZ2VuZXJhdGVkIGJ5IHVzaW5nIHRoZSByZXBy
KCkgc3RyaW5nIG9mIGVhY2ggaXRlbSBvZiBlYWNoIGNvbnRhaW5lci4KLSAgICAgICAgbGVmdF9m
b3JtYXR0aW5nID0gc29ydGVkKHJlcHIoeCkgZm9yIHggaW4gbGVmdCkKLSAgICAgICAgcmlnaHRf
Zm9ybWF0dGluZyA9IHNvcnRlZChyZXByKHgpIGZvciB4IGluIHJpZ2h0KQotICAgICAgICBleHBs
YW5hdGlvbiA9IFt1KCdGdWxsIGRpZmYgKGZhbGxiYWNrIHRvIGNhbGxpbmcgcmVwciBvbiBlYWNo
IGl0ZW0pOicpXQotICAgIGV4cGxhbmF0aW9uLmV4dGVuZChsaW5lLnN0cmlwKCkgZm9yIGxpbmUg
aW4gZGlmZmxpYi5uZGlmZihsZWZ0X2Zvcm1hdHRpbmcsIHJpZ2h0X2Zvcm1hdHRpbmcpKQotICAg
IHJldHVybiBleHBsYW5hdGlvbgotCi0KLWRlZiBfY29tcGFyZV9lcV9zZXF1ZW5jZShsZWZ0LCBy
aWdodCwgdmVyYm9zZT1GYWxzZSk6Ci0gICAgZXhwbGFuYXRpb24gPSBbXQotICAgIGZvciBpIGlu
IHJhbmdlKG1pbihsZW4obGVmdCksIGxlbihyaWdodCkpKToKLSAgICAgICAgaWYgbGVmdFtpXSAh
PSByaWdodFtpXToKLSAgICAgICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdBdCBpbmRleCAlcyBk
aWZmOiAlciAhPSAlcicpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoaSwgbGVmdFtp
XSwgcmlnaHRbaV0pXQotICAgICAgICAgICAgYnJlYWsKLSAgICBpZiBsZW4obGVmdCkgPiBsZW4o
cmlnaHQpOgotICAgICAgICBleHBsYW5hdGlvbiArPSBbdSgnTGVmdCBjb250YWlucyBtb3JlIGl0
ZW1zLCBmaXJzdCBleHRyYSBpdGVtOiAlcycpCi0gICAgICAgICAgICAgICAgICAgICAgICAlIHB5
LmlvLnNhZmVyZXByKGxlZnRbbGVuKHJpZ2h0KV0sKV0KLSAgICBlbGlmIGxlbihsZWZ0KSA8IGxl
bihyaWdodCk6Ci0gICAgICAgIGV4cGxhbmF0aW9uICs9IFsKLSAgICAgICAgICAgIHUoJ1JpZ2h0
IGNvbnRhaW5zIG1vcmUgaXRlbXMsIGZpcnN0IGV4dHJhIGl0ZW06ICVzJykgJQotICAgICAgICAg
ICAgcHkuaW8uc2FmZXJlcHIocmlnaHRbbGVuKGxlZnQpXSwpXQotICAgIHJldHVybiBleHBsYW5h
dGlvbgotCi0KLWRlZiBfY29tcGFyZV9lcV9zZXQobGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2Up
OgotICAgIGV4cGxhbmF0aW9uID0gW10KLSAgICBkaWZmX2xlZnQgPSBsZWZ0IC0gcmlnaHQKLSAg
ICBkaWZmX3JpZ2h0ID0gcmlnaHQgLSBsZWZ0Ci0gICAgaWYgZGlmZl9sZWZ0OgotICAgICAgICBl
eHBsYW5hdGlvbi5hcHBlbmQodSgnRXh0cmEgaXRlbXMgaW4gdGhlIGxlZnQgc2V0OicpKQotICAg
ICAgICBmb3IgaXRlbSBpbiBkaWZmX2xlZnQ6Ci0gICAgICAgICAgICBleHBsYW5hdGlvbi5hcHBl
bmQocHkuaW8uc2FmZXJlcHIoaXRlbSkpCi0gICAgaWYgZGlmZl9yaWdodDoKLSAgICAgICAgZXhw
bGFuYXRpb24uYXBwZW5kKHUoJ0V4dHJhIGl0ZW1zIGluIHRoZSByaWdodCBzZXQ6JykpCi0gICAg
ICAgIGZvciBpdGVtIGluIGRpZmZfcmlnaHQ6Ci0gICAgICAgICAgICBleHBsYW5hdGlvbi5hcHBl
bmQocHkuaW8uc2FmZXJlcHIoaXRlbSkpCi0gICAgcmV0dXJuIGV4cGxhbmF0aW9uCi0KLQotZGVm
IF9jb21wYXJlX2VxX2RpY3QobGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgotICAgIGV4cGxh
bmF0aW9uID0gW10KLSAgICBjb21tb24gPSBzZXQobGVmdCkuaW50ZXJzZWN0aW9uKHNldChyaWdo
dCkpCi0gICAgc2FtZSA9IGRpY3QoKGssIGxlZnRba10pIGZvciBrIGluIGNvbW1vbiBpZiBsZWZ0
W2tdID09IHJpZ2h0W2tdKQotICAgIGlmIHNhbWUgYW5kIHZlcmJvc2UgPCAyOgotICAgICAgICBl
eHBsYW5hdGlvbiArPSBbdSgnT21pdHRpbmcgJXMgaWRlbnRpY2FsIGl0ZW1zLCB1c2UgLXZ2IHRv
IHNob3cnKSAlCi0gICAgICAgICAgICAgICAgICAgICAgICBsZW4oc2FtZSldCi0gICAgZWxpZiBz
YW1lOgotICAgICAgICBleHBsYW5hdGlvbiArPSBbdSgnQ29tbW9uIGl0ZW1zOicpXQotICAgICAg
ICBleHBsYW5hdGlvbiArPSBwcHJpbnQucGZvcm1hdChzYW1lKS5zcGxpdGxpbmVzKCkKLSAgICBk
aWZmID0gc2V0KGsgZm9yIGsgaW4gY29tbW9uIGlmIGxlZnRba10gIT0gcmlnaHRba10pCi0gICAg
aWYgZGlmZjoKLSAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UoJ0RpZmZlcmluZyBpdGVtczonKV0K
LSAgICAgICAgZm9yIGsgaW4gZGlmZjoKLSAgICAgICAgICAgIGV4cGxhbmF0aW9uICs9IFtweS5p
by5zYWZlcmVwcih7azogbGVmdFtrXX0pICsgJyAhPSAnICsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBweS5pby5zYWZlcmVwcih7azogcmlnaHRba119KV0KLSAgICBleHRyYV9sZWZ0ID0g
c2V0KGxlZnQpIC0gc2V0KHJpZ2h0KQotICAgIGlmIGV4dHJhX2xlZnQ6Ci0gICAgICAgIGV4cGxh
bmF0aW9uLmFwcGVuZCh1KCdMZWZ0IGNvbnRhaW5zIG1vcmUgaXRlbXM6JykpCi0gICAgICAgIGV4
cGxhbmF0aW9uLmV4dGVuZChwcHJpbnQucGZvcm1hdCgKLSAgICAgICAgICAgIGRpY3QoKGssIGxl
ZnRba10pIGZvciBrIGluIGV4dHJhX2xlZnQpKS5zcGxpdGxpbmVzKCkpCi0gICAgZXh0cmFfcmln
aHQgPSBzZXQocmlnaHQpIC0gc2V0KGxlZnQpCi0gICAgaWYgZXh0cmFfcmlnaHQ6Ci0gICAgICAg
IGV4cGxhbmF0aW9uLmFwcGVuZCh1KCdSaWdodCBjb250YWlucyBtb3JlIGl0ZW1zOicpKQotICAg
ICAgICBleHBsYW5hdGlvbi5leHRlbmQocHByaW50LnBmb3JtYXQoCi0gICAgICAgICAgICBkaWN0
KChrLCByaWdodFtrXSkgZm9yIGsgaW4gZXh0cmFfcmlnaHQpKS5zcGxpdGxpbmVzKCkpCi0gICAg
cmV0dXJuIGV4cGxhbmF0aW9uCi0KLQotZGVmIF9ub3Rpbl90ZXh0KHRlcm0sIHRleHQsIHZlcmJv
c2U9RmFsc2UpOgotICAgIGluZGV4ID0gdGV4dC5maW5kKHRlcm0pCi0gICAgaGVhZCA9IHRleHRb
OmluZGV4XQotICAgIHRhaWwgPSB0ZXh0W2luZGV4ICsgbGVuKHRlcm0pOl0KLSAgICBjb3JyZWN0
X3RleHQgPSBoZWFkICsgdGFpbAotICAgIGRpZmYgPSBfZGlmZl90ZXh0KGNvcnJlY3RfdGV4dCwg
dGV4dCwgdmVyYm9zZSkKLSAgICBuZXdkaWZmID0gW3UoJyVzIGlzIGNvbnRhaW5lZCBoZXJlOicp
ICUgcHkuaW8uc2FmZXJlcHIodGVybSwgbWF4c2l6ZT00MildCi0gICAgZm9yIGxpbmUgaW4gZGlm
ZjoKLSAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKHUoJ1NraXBwaW5nJykpOgotICAgICAgICAg
ICAgY29udGludWUKLSAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKHUoJy0gJykpOgotICAgICAg
ICAgICAgY29udGludWUKLSAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKHUoJysgJykpOgotICAg
ICAgICAgICAgbmV3ZGlmZi5hcHBlbmQodSgnICAnKSArIGxpbmVbMjpdKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgbmV3ZGlmZi5hcHBlbmQobGluZSkKLSAgICByZXR1cm4gbmV3ZGlmZgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDEzMDdkM2FiYzcyMTU4ZjQxZDY0NDJjZmQ1OTFlMWIwNWY5
Y2FjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL19f
aW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vcmV3cml0ZS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3RydW5jYXRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9hc3NlcnRpb24vdXRpbC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9j
YWNoZXByb3ZpZGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNTM3YzE0NDcyYjFjZTkxNjljZmU3NjI5MDE1
ODg0YjBlNGUzZTRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FjaGVwcm92aWRlci5weQorKysgL2Rldi9udWxsCkBA
IC0xLDI2MCArMCwwIEBACi0iIiIKLW1lcmdlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgY2FjaGUg
cHJvdmlkZXIKLQotdGhlIG5hbWUgY2FjaGUgd2FzIG5vdCBjaG9zZW4gdG8gZW5zdXJlIHBsdWdn
eSBhdXRvbWF0aWNhbGx5Ci1pZ25vcmVzIHRoZSBleHRlcm5hbCBweXRlc3QtY2FjaGUKLSIiIgot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9m
dW5jdGlvbgotaW1wb3J0IHB5Ci1pbXBvcnQgcHl0ZXN0Ci1pbXBvcnQganNvbgotaW1wb3J0IG9z
Ci1mcm9tIG9zLnBhdGggaW1wb3J0IHNlcCBhcyBfc2VwLCBhbHRzZXAgYXMgX2FsdHNlcAotCi0K
LWNsYXNzIENhY2hlKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6Ci0g
ICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCi0gICAgICAgIHNlbGYuX2NhY2hlZGlyID0gQ2Fj
aGUuY2FjaGVfZGlyX2Zyb21fY29uZmlnKGNvbmZpZykKLSAgICAgICAgc2VsZi50cmFjZSA9IGNv
bmZpZy50cmFjZS5yb290LmdldCgiY2FjaGUiKQotICAgICAgICBpZiBjb25maWcuZ2V0dmFsdWUo
ImNhY2hlY2xlYXIiKToKLSAgICAgICAgICAgIHNlbGYudHJhY2UoImNsZWFyaW5nIGNhY2hlZGly
IikKLSAgICAgICAgICAgIGlmIHNlbGYuX2NhY2hlZGlyLmNoZWNrKCk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fY2FjaGVkaXIucmVtb3ZlKCkKLSAgICAgICAgICAgIHNlbGYuX2NhY2hlZGlyLm1r
ZGlyKCkKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgY2FjaGVfZGlyX2Zyb21fY29uZmln
KGNvbmZpZyk6Ci0gICAgICAgIGNhY2hlX2RpciA9IGNvbmZpZy5nZXRpbmkoImNhY2hlX2RpciIp
Ci0gICAgICAgIGNhY2hlX2RpciA9IG9zLnBhdGguZXhwYW5kdXNlcihjYWNoZV9kaXIpCi0gICAg
ICAgIGNhY2hlX2RpciA9IG9zLnBhdGguZXhwYW5kdmFycyhjYWNoZV9kaXIpCi0gICAgICAgIGlm
IG9zLnBhdGguaXNhYnMoY2FjaGVfZGlyKToKLSAgICAgICAgICAgIHJldHVybiBweS5wYXRoLmxv
Y2FsKGNhY2hlX2RpcikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBjb25maWcu
cm9vdGRpci5qb2luKGNhY2hlX2RpcikKLQotICAgIGRlZiBtYWtlZGlyKHNlbGYsIG5hbWUpOgot
ICAgICAgICAiIiIgcmV0dXJuIGEgZGlyZWN0b3J5IHBhdGggb2JqZWN0IHdpdGggdGhlIGdpdmVu
IG5hbWUuICBJZiB0aGUKLSAgICAgICAgZGlyZWN0b3J5IGRvZXMgbm90IHlldCBleGlzdCwgaXQg
d2lsbCBiZSBjcmVhdGVkLiAgWW91IGNhbiB1c2UgaXQKLSAgICAgICAgdG8gbWFuYWdlIGZpbGVz
IGxpa2VzIGUuIGcuIHN0b3JlL3JldHJpZXZlIGRhdGFiYXNlCi0gICAgICAgIGR1bXBzIGFjcm9z
cyB0ZXN0IHNlc3Npb25zLgotCi0gICAgICAgIDpwYXJhbSBuYW1lOiBtdXN0IGJlIGEgc3RyaW5n
IG5vdCBjb250YWluaW5nIGEgYGAvYGAgc2VwYXJhdG9yLgotICAgICAgICAgICAgIE1ha2Ugc3Vy
ZSB0aGUgbmFtZSBjb250YWlucyB5b3VyIHBsdWdpbiBvciBhcHBsaWNhdGlvbgotICAgICAgICAg
ICAgIGlkZW50aWZpZXJzIHRvIHByZXZlbnQgY2xhc2hlcyB3aXRoIG90aGVyIGNhY2hlIHVzZXJz
LgotICAgICAgICAiIiIKLSAgICAgICAgaWYgX3NlcCBpbiBuYW1lIG9yIF9hbHRzZXAgaXMgbm90
IE5vbmUgYW5kIF9hbHRzZXAgaW4gbmFtZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
Im5hbWUgaXMgbm90IGFsbG93ZWQgdG8gY29udGFpbiBwYXRoIHNlcGFyYXRvcnMiKQotICAgICAg
ICByZXR1cm4gc2VsZi5fY2FjaGVkaXIuZW5zdXJlX2RpcigiZCIsIG5hbWUpCi0KLSAgICBkZWYg
X2dldHZhbHVlcGF0aChzZWxmLCBrZXkpOgotICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVkaXIu
am9pbigndicsICprZXkuc3BsaXQoJy8nKSkKLQotICAgIGRlZiBnZXQoc2VsZiwga2V5LCBkZWZh
dWx0KToKLSAgICAgICAgIiIiIHJldHVybiBjYWNoZWQgdmFsdWUgZm9yIHRoZSBnaXZlbiBrZXku
ICBJZiBubyB2YWx1ZQotICAgICAgICB3YXMgeWV0IGNhY2hlZCBvciB0aGUgdmFsdWUgY2Fubm90
IGJlIHJlYWQsIHRoZSBzcGVjaWZpZWQKLSAgICAgICAgZGVmYXVsdCBpcyByZXR1cm5lZC4KLQot
ICAgICAgICA6cGFyYW0ga2V5OiBtdXN0IGJlIGEgYGAvYGAgc2VwYXJhdGVkIHZhbHVlLiBVc3Vh
bGx5IHRoZSBmaXJzdAotICAgICAgICAgICAgIG5hbWUgaXMgdGhlIG5hbWUgb2YgeW91ciBwbHVn
aW4gb3IgeW91ciBhcHBsaWNhdGlvbi4KLSAgICAgICAgOnBhcmFtIGRlZmF1bHQ6IG11c3QgYmUg
cHJvdmlkZWQgaW4gY2FzZSBvZiBhIGNhY2hlLW1pc3Mgb3IKLSAgICAgICAgICAgICBpbnZhbGlk
IGNhY2hlIHZhbHVlcy4KLQotICAgICAgICAiIiIKLSAgICAgICAgcGF0aCA9IHNlbGYuX2dldHZh
bHVlcGF0aChrZXkpCi0gICAgICAgIGlmIHBhdGguY2hlY2soKToKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICB3aXRoIHBhdGgub3BlbigiciIpIGFzIGY6Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBqc29uLmxvYWQoZikKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9y
OgotICAgICAgICAgICAgICAgIHNlbGYudHJhY2UoImNhY2hlLWludmFsaWQgYXQgJXMiICUgKHBh
dGgsKSkKLSAgICAgICAgcmV0dXJuIGRlZmF1bHQKLQotICAgIGRlZiBzZXQoc2VsZiwga2V5LCB2
YWx1ZSk6Ci0gICAgICAgICIiIiBzYXZlIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5LgotCi0gICAg
ICAgIDpwYXJhbSBrZXk6IG11c3QgYmUgYSBgYC9gYCBzZXBhcmF0ZWQgdmFsdWUuIFVzdWFsbHkg
dGhlIGZpcnN0Ci0gICAgICAgICAgICAgbmFtZSBpcyB0aGUgbmFtZSBvZiB5b3VyIHBsdWdpbiBv
ciB5b3VyIGFwcGxpY2F0aW9uLgotICAgICAgICA6cGFyYW0gdmFsdWU6IG11c3QgYmUgb2YgYW55
IGNvbWJpbmF0aW9uIG9mIGJhc2ljCi0gICAgICAgICAgICAgICBweXRob24gdHlwZXMsIGluY2x1
ZGluZyBuZXN0ZWQgdHlwZXMKLSAgICAgICAgICAgICAgIGxpa2UgZS4gZy4gbGlzdHMgb2YgZGlj
dGlvbmFyaWVzLgotICAgICAgICAiIiIKLSAgICAgICAgcGF0aCA9IHNlbGYuX2dldHZhbHVlcGF0
aChrZXkpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHBhdGguZGlycGF0aCgpLmVuc3VyZV9k
aXIoKQotICAgICAgICBleGNlcHQgKHB5LmVycm9yLkVFWElTVCwgcHkuZXJyb3IuRUFDQ0VTKToK
LSAgICAgICAgICAgIHNlbGYuY29uZmlnLndhcm4oCi0gICAgICAgICAgICAgICAgY29kZT0nSTkn
LCBtZXNzYWdlPSdjb3VsZCBub3QgY3JlYXRlIGNhY2hlIHBhdGggJXMnICUgKHBhdGgsKQotICAg
ICAgICAgICAgKQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGYgPSBwYXRoLm9wZW4oJ3cnKQotICAgICAgICBleGNlcHQgcHkuZXJyb3IuRU5PVERJUjoKLSAg
ICAgICAgICAgIHNlbGYuY29uZmlnLndhcm4oCi0gICAgICAgICAgICAgICAgY29kZT0nSTknLCBt
ZXNzYWdlPSdjYWNoZSBjb3VsZCBub3Qgd3JpdGUgcGF0aCAlcycgJSAocGF0aCwpKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgd2l0aCBmOgotICAgICAgICAgICAgICAgIHNlbGYudHJhY2Uo
ImNhY2hlLXdyaXRlICVzOiAlciIgJSAoa2V5LCB2YWx1ZSwpKQotICAgICAgICAgICAgICAgIGpz
b24uZHVtcCh2YWx1ZSwgZiwgaW5kZW50PTIsIHNvcnRfa2V5cz1UcnVlKQotCi0KLWNsYXNzIExG
UGx1Z2luOgotICAgICIiIiBQbHVnaW4gd2hpY2ggaW1wbGVtZW50cyB0aGUgLS1sZiAocnVuIGxh
c3QtZmFpbGluZykgb3B0aW9uICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6
Ci0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCi0gICAgICAgIGFjdGl2ZV9rZXlzID0gJ2xm
JywgJ2ZhaWxlZGZpcnN0JwotICAgICAgICBzZWxmLmFjdGl2ZSA9IGFueShjb25maWcuZ2V0dmFs
dWUoa2V5KSBmb3Iga2V5IGluIGFjdGl2ZV9rZXlzKQotICAgICAgICBzZWxmLmxhc3RmYWlsZWQg
PSBjb25maWcuY2FjaGUuZ2V0KCJjYWNoZS9sYXN0ZmFpbGVkIiwge30pCi0gICAgICAgIHNlbGYu
X3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50ID0gTm9uZQotCi0gICAgZGVmIHB5dGVzdF9yZXBvcnRf
Y29sbGVjdGlvbmZpbmlzaChzZWxmKToKLSAgICAgICAgaWYgc2VsZi5hY3RpdmU6Ci0gICAgICAg
ICAgICBpZiBub3Qgc2VsZi5fcHJldmlvdXNseV9mYWlsZWRfY291bnQ6Ci0gICAgICAgICAgICAg
ICAgbW9kZSA9ICJydW4gYWxsIChubyByZWNvcmRlZCBmYWlsdXJlcykiCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIG5vdW4gPSAnZmFpbHVyZScgaWYgc2VsZi5fcHJldmlvdXNs
eV9mYWlsZWRfY291bnQgPT0gMSBlbHNlICdmYWlsdXJlcycKLSAgICAgICAgICAgICAgICBzdWZm
aXggPSAiIGZpcnN0IiBpZiBzZWxmLmNvbmZpZy5nZXR2YWx1ZSgiZmFpbGVkZmlyc3QiKSBlbHNl
ICIiCi0gICAgICAgICAgICAgICAgbW9kZSA9ICJyZXJ1biBwcmV2aW91cyB7Y291bnR9IHtub3Vu
fXtzdWZmaXh9Ii5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgIGNvdW50PXNlbGYuX3ByZXZp
b3VzbHlfZmFpbGVkX2NvdW50LCBzdWZmaXg9c3VmZml4LCBub3VuPW5vdW4KLSAgICAgICAgICAg
ICAgICApCi0gICAgICAgICAgICByZXR1cm4gInJ1bi1sYXN0LWZhaWx1cmU6ICVzIiAlIG1vZGUK
LQotICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQoc2VsZiwgcmVwb3J0KToKLSAgICAg
ICAgaWYgKHJlcG9ydC53aGVuID09ICdjYWxsJyBhbmQgcmVwb3J0LnBhc3NlZCkgb3IgcmVwb3J0
LnNraXBwZWQ6Ci0gICAgICAgICAgICBzZWxmLmxhc3RmYWlsZWQucG9wKHJlcG9ydC5ub2RlaWQs
IE5vbmUpCi0gICAgICAgIGVsaWYgcmVwb3J0LmZhaWxlZDoKLSAgICAgICAgICAgIHNlbGYubGFz
dGZhaWxlZFtyZXBvcnQubm9kZWlkXSA9IFRydWUKLQotICAgIGRlZiBweXRlc3RfY29sbGVjdHJl
cG9ydChzZWxmLCByZXBvcnQpOgotICAgICAgICBwYXNzZWQgPSByZXBvcnQub3V0Y29tZSBpbiAo
J3Bhc3NlZCcsICdza2lwcGVkJykKLSAgICAgICAgaWYgcGFzc2VkOgotICAgICAgICAgICAgaWYg
cmVwb3J0Lm5vZGVpZCBpbiBzZWxmLmxhc3RmYWlsZWQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5s
YXN0ZmFpbGVkLnBvcChyZXBvcnQubm9kZWlkKQotICAgICAgICAgICAgICAgIHNlbGYubGFzdGZh
aWxlZC51cGRhdGUoCi0gICAgICAgICAgICAgICAgICAgIChpdGVtLm5vZGVpZCwgVHJ1ZSkKLSAg
ICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcmVwb3J0LnJlc3VsdCkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHNlbGYubGFzdGZhaWxlZFtyZXBvcnQubm9kZWlkXSA9IFRydWUKLQot
ICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhzZWxmLCBzZXNzaW9uLCBjb25m
aWcsIGl0ZW1zKToKLSAgICAgICAgaWYgc2VsZi5hY3RpdmUgYW5kIHNlbGYubGFzdGZhaWxlZDoK
LSAgICAgICAgICAgIHByZXZpb3VzbHlfZmFpbGVkID0gW10KLSAgICAgICAgICAgIHByZXZpb3Vz
bHlfcGFzc2VkID0gW10KLSAgICAgICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgotICAgICAgICAg
ICAgICAgIGlmIGl0ZW0ubm9kZWlkIGluIHNlbGYubGFzdGZhaWxlZDoKLSAgICAgICAgICAgICAg
ICAgICAgcHJldmlvdXNseV9mYWlsZWQuYXBwZW5kKGl0ZW0pCi0gICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNseV9wYXNzZWQuYXBwZW5kKGl0ZW0pCi0g
ICAgICAgICAgICBzZWxmLl9wcmV2aW91c2x5X2ZhaWxlZF9jb3VudCA9IGxlbihwcmV2aW91c2x5
X2ZhaWxlZCkKLSAgICAgICAgICAgIGlmIG5vdCBwcmV2aW91c2x5X2ZhaWxlZDoKLSAgICAgICAg
ICAgICAgICAjIHJ1bm5pbmcgYSBzdWJzZXQgb2YgYWxsIHRlc3RzIHdpdGggcmVjb3JkZWQgZmFp
bHVyZXMgb3V0c2lkZQotICAgICAgICAgICAgICAgICMgb2YgdGhlIHNldCBvZiB0ZXN0cyBjdXJy
ZW50bHkgZXhlY3V0aW5nCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBpZiBz
ZWxmLmNvbmZpZy5nZXR2YWx1ZSgibGYiKToKLSAgICAgICAgICAgICAgICBpdGVtc1s6XSA9IHBy
ZXZpb3VzbHlfZmFpbGVkCi0gICAgICAgICAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X2Rlc2Vs
ZWN0ZWQoaXRlbXM9cHJldmlvdXNseV9wYXNzZWQpCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgIGl0ZW1zWzpdID0gcHJldmlvdXNseV9mYWlsZWQgKyBwcmV2aW91c2x5X3Bhc3Nl
ZAotCi0gICAgZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNlbGYsIHNlc3Npb24pOgotICAgICAg
ICBjb25maWcgPSBzZWxmLmNvbmZpZwotICAgICAgICBpZiBjb25maWcuZ2V0dmFsdWUoImNhY2hl
c2hvdyIpIG9yIGhhc2F0dHIoY29uZmlnLCAic2xhdmVpbnB1dCIpOgotICAgICAgICAgICAgcmV0
dXJuCi0KLSAgICAgICAgc2F2ZWRfbGFzdGZhaWxlZCA9IGNvbmZpZy5jYWNoZS5nZXQoImNhY2hl
L2xhc3RmYWlsZWQiLCB7fSkKLSAgICAgICAgaWYgc2F2ZWRfbGFzdGZhaWxlZCAhPSBzZWxmLmxh
c3RmYWlsZWQ6Ci0gICAgICAgICAgICBjb25maWcuY2FjaGUuc2V0KCJjYWNoZS9sYXN0ZmFpbGVk
Iiwgc2VsZi5sYXN0ZmFpbGVkKQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0g
ICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQotICAgIGdyb3VwLmFkZG9wdGlv
bigKLSAgICAgICAgJy0tbGYnLCAnLS1sYXN0LWZhaWxlZCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScs
IGRlc3Q9ImxmIiwKLSAgICAgICAgaGVscD0icmVydW4gb25seSB0aGUgdGVzdHMgdGhhdCBmYWls
ZWQgIgotICAgICAgICAgICAgICJhdCB0aGUgbGFzdCBydW4gKG9yIGFsbCBpZiBub25lIGZhaWxl
ZCkiKQotICAgIGdyb3VwLmFkZG9wdGlvbigKLSAgICAgICAgJy0tZmYnLCAnLS1mYWlsZWQtZmly
c3QnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZXN0PSJmYWlsZWRmaXJzdCIsCi0gICAgICAgIGhl
bHA9InJ1biBhbGwgdGVzdHMgYnV0IHJ1biB0aGUgbGFzdCBmYWlsdXJlcyBmaXJzdC4gICIKLSAg
ICAgICAgICAgICAiVGhpcyBtYXkgcmUtb3JkZXIgdGVzdHMgYW5kIHRodXMgbGVhZCB0byAiCi0g
ICAgICAgICAgICAgInJlcGVhdGVkIGZpeHR1cmUgc2V0dXAvdGVhcmRvd24iKQotICAgIGdyb3Vw
LmFkZG9wdGlvbigKLSAgICAgICAgJy0tY2FjaGUtc2hvdycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScs
IGRlc3Q9ImNhY2hlc2hvdyIsCi0gICAgICAgIGhlbHA9InNob3cgY2FjaGUgY29udGVudHMsIGRv
bid0IHBlcmZvcm0gY29sbGVjdGlvbiBvciB0ZXN0cyIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKAot
ICAgICAgICAnLS1jYWNoZS1jbGVhcicsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlc3Q9ImNhY2hl
Y2xlYXIiLAotICAgICAgICBoZWxwPSJyZW1vdmUgYWxsIGNhY2hlIGNvbnRlbnRzIGF0IHN0YXJ0
IG9mIHRlc3QgcnVuLiIpCi0gICAgcGFyc2VyLmFkZGluaSgKLSAgICAgICAgImNhY2hlX2RpciIs
IGRlZmF1bHQ9Jy5jYWNoZScsCi0gICAgICAgIGhlbHA9ImNhY2hlIGRpcmVjdG9yeSBwYXRoLiIp
Ci0KLQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKLSAgICBpZiBjb25maWcub3B0
aW9uLmNhY2hlc2hvdzoKLSAgICAgICAgZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IHdyYXBfc2Vz
c2lvbgotICAgICAgICByZXR1cm4gd3JhcF9zZXNzaW9uKGNvbmZpZywgY2FjaGVzaG93KQotCi0K
LUBweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLWRlZiBweXRlc3RfY29uZmlndXJlKGNv
bmZpZyk6Ci0gICAgY29uZmlnLmNhY2hlID0gQ2FjaGUoY29uZmlnKQotICAgIGNvbmZpZy5wbHVn
aW5tYW5hZ2VyLnJlZ2lzdGVyKExGUGx1Z2luKGNvbmZpZyksICJsZnBsdWdpbiIpCi0KLQotQHB5
dGVzdC5maXh0dXJlCi1kZWYgY2FjaGUocmVxdWVzdCk6Ci0gICAgIiIiCi0gICAgUmV0dXJuIGEg
Y2FjaGUgb2JqZWN0IHRoYXQgY2FuIHBlcnNpc3Qgc3RhdGUgYmV0d2VlbiB0ZXN0aW5nIHNlc3Np
b25zLgotCi0gICAgY2FjaGUuZ2V0KGtleSwgZGVmYXVsdCkKLSAgICBjYWNoZS5zZXQoa2V5LCB2
YWx1ZSkKLQotICAgIEtleXMgbXVzdCBiZSBhIGBgL2BgIHNlcGFyYXRlZCB2YWx1ZSwgd2hlcmUg
dGhlIGZpcnN0IHBhcnQgaXMgdXN1YWxseSB0aGUKLSAgICBuYW1lIG9mIHlvdXIgcGx1Z2luIG9y
IGFwcGxpY2F0aW9uIHRvIGF2b2lkIGNsYXNoZXMgd2l0aCBvdGhlciBjYWNoZSB1c2Vycy4KLQot
ICAgIFZhbHVlcyBjYW4gYmUgYW55IG9iamVjdCBoYW5kbGVkIGJ5IHRoZSBqc29uIHN0ZGxpYiBt
b2R1bGUuCi0gICAgIiIiCi0gICAgcmV0dXJuIHJlcXVlc3QuY29uZmlnLmNhY2hlCi0KLQotZGVm
IHB5dGVzdF9yZXBvcnRfaGVhZGVyKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLm9wdGlvbi52ZXJi
b3NlOgotICAgICAgICByZWxwYXRoID0gcHkucGF0aC5sb2NhbCgpLmJlc3RyZWxwYXRoKGNvbmZp
Zy5jYWNoZS5fY2FjaGVkaXIpCi0gICAgICAgIHJldHVybiAiY2FjaGVkaXI6ICVzIiAlIHJlbHBh
dGgKLQotCi1kZWYgY2FjaGVzaG93KGNvbmZpZywgc2Vzc2lvbik6Ci0gICAgZnJvbSBwcHJpbnQg
aW1wb3J0IHBwcmludAotICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoKQotICAgIHR3Lmxp
bmUoImNhY2hlZGlyOiAiICsgc3RyKGNvbmZpZy5jYWNoZS5fY2FjaGVkaXIpKQotICAgIGlmIG5v
dCBjb25maWcuY2FjaGUuX2NhY2hlZGlyLmNoZWNrKCk6Ci0gICAgICAgIHR3LmxpbmUoImNhY2hl
IGlzIGVtcHR5IikKLSAgICAgICAgcmV0dXJuIDAKLSAgICBkdW1teSA9IG9iamVjdCgpCi0gICAg
YmFzZWRpciA9IGNvbmZpZy5jYWNoZS5fY2FjaGVkaXIKLSAgICB2ZGlyID0gYmFzZWRpci5qb2lu
KCJ2IikKLSAgICB0dy5zZXAoIi0iLCAiY2FjaGUgdmFsdWVzIikKLSAgICBmb3IgdmFscGF0aCBp
biBzb3J0ZWQodmRpci52aXNpdChsYW1iZGEgeDogeC5pc2ZpbGUoKSkpOgotICAgICAgICBrZXkg
PSB2YWxwYXRoLnJlbHRvKHZkaXIpLnJlcGxhY2UodmFscGF0aC5zZXAsICIvIikKLSAgICAgICAg
dmFsID0gY29uZmlnLmNhY2hlLmdldChrZXksIGR1bW15KQotICAgICAgICBpZiB2YWwgaXMgZHVt
bXk6Ci0gICAgICAgICAgICB0dy5saW5lKCIlcyBjb250YWlucyB1bnJlYWRhYmxlIGNvbnRlbnQs
ICIKLSAgICAgICAgICAgICAgICAgICAgIndpbGwgYmUgaWdub3JlZCIgJSBrZXkpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICB0dy5saW5lKCIlcyBjb250YWluczoiICUga2V5KQotICAgICAg
ICAgICAgc3RyZWFtID0gcHkuaW8uVGV4dElPKCkKLSAgICAgICAgICAgIHBwcmludCh2YWwsIHN0
cmVhbT1zdHJlYW0pCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBzdHJlYW0uZ2V0dmFsdWUoKS5z
cGxpdGxpbmVzKCk6Ci0gICAgICAgICAgICAgICAgdHcubGluZSgiICAiICsgbGluZSkKLQotICAg
IGRkaXIgPSBiYXNlZGlyLmpvaW4oImQiKQotICAgIGlmIGRkaXIuaXNkaXIoKSBhbmQgZGRpci5s
aXN0ZGlyKCk6Ci0gICAgICAgIHR3LnNlcCgiLSIsICJjYWNoZSBkaXJlY3RvcmllcyIpCi0gICAg
ICAgIGZvciBwIGluIHNvcnRlZChiYXNlZGlyLmpvaW4oImQiKS52aXNpdCgpKToKLSAgICAgICAg
ICAgICMgaWYgcC5jaGVjayhkaXI9MSk6Ci0gICAgICAgICAgICAjICAgIHByaW50KCIlcy8iICUg
cC5yZWx0byhiYXNlZGlyKSkKLSAgICAgICAgICAgIGlmIHAuaXNmaWxlKCk6Ci0gICAgICAgICAg
ICAgICAga2V5ID0gcC5yZWx0byhiYXNlZGlyKQotICAgICAgICAgICAgICAgIHR3LmxpbmUoIiVz
IGlzIGEgZmlsZSBvZiBsZW5ndGggJWQiICUgKAotICAgICAgICAgICAgICAgICAgICAgICAga2V5
LCBwLnNpemUoKSkpCi0gICAgcmV0dXJuIDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvY2FwdHVyZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FwdHVyZS5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjJlYmUzOGM4YzA5MDI4NmI3N2M3MzliMzJiNjIwMzAyOTRj
NzUyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2NhcHR1cmUucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2ODMgKzAsMCBA
QAotIiIiCi1wZXItdGVzdCBzdGRvdXQvc3RkZXJyIGNhcHR1cmluZyBtZWNoYW5pc20uCi0KLSIi
IgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmlu
dF9mdW5jdGlvbgotCi1pbXBvcnQgY29sbGVjdGlvbnMKLWltcG9ydCBjb250ZXh0bGliCi1pbXBv
cnQgc3lzCi1pbXBvcnQgb3MKLWltcG9ydCBpbwotZnJvbSBpbyBpbXBvcnQgVW5zdXBwb3J0ZWRP
cGVyYXRpb24KLWZyb20gdGVtcGZpbGUgaW1wb3J0IFRlbXBvcmFyeUZpbGUKLQotaW1wb3J0IHNp
eAotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgQ2FwdHVyZUlPCi0K
LQotcGF0Y2hzeXNkaWN0ID0gezA6ICdzdGRpbicsIDE6ICdzdGRvdXQnLCAyOiAnc3RkZXJyJ30K
LQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdl
dGdyb3VwKCJnZW5lcmFsIikKLSAgICBncm91cC5fYWRkb3B0aW9uKAotICAgICAgICAnLS1jYXB0
dXJlJywgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgIGRlZmF1bHQ9ImZkIiBpZiBoYXNhdHRyKG9z
LCAiZHVwIikgZWxzZSAic3lzIiwKLSAgICAgICAgbWV0YXZhcj0ibWV0aG9kIiwgY2hvaWNlcz1b
J2ZkJywgJ3N5cycsICdubyddLAotICAgICAgICBoZWxwPSJwZXItdGVzdCBjYXB0dXJpbmcgbWV0
aG9kOiBvbmUgb2YgZmR8c3lzfG5vLiIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbigKLSAgICAgICAg
Jy1zJywgYWN0aW9uPSJzdG9yZV9jb25zdCIsIGNvbnN0PSJubyIsIGRlc3Q9ImNhcHR1cmUiLAot
ICAgICAgICBoZWxwPSJzaG9ydGN1dCBmb3IgLS1jYXB0dXJlPW5vLiIpCi0KLQotQHB5dGVzdC5o
b29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVmIHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRl
c3RzKGVhcmx5X2NvbmZpZywgcGFyc2VyLCBhcmdzKToKLSAgICBucyA9IGVhcmx5X2NvbmZpZy5r
bm93bl9hcmdzX25hbWVzcGFjZQotICAgIGlmIG5zLmNhcHR1cmUgPT0gImZkIjoKLSAgICAgICAg
X3B5MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJvdW5kKHN5cy5zdGRvdXQpCi0gICAgX2NvbG9y
YW1hX3dvcmthcm91bmQoKQotICAgIF9yZWFkbGluZV93b3JrYXJvdW5kKCkKLSAgICBwbHVnaW5t
YW5hZ2VyID0gZWFybHlfY29uZmlnLnBsdWdpbm1hbmFnZXIKLSAgICBjYXBtYW4gPSBDYXB0dXJl
TWFuYWdlcihucy5jYXB0dXJlKQotICAgIHBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoY2FwbWFuLCAi
Y2FwdHVyZW1hbmFnZXIiKQotCi0gICAgIyBtYWtlIHN1cmUgdGhhdCBjYXB0dXJlbWFuYWdlciBp
cyBwcm9wZXJseSByZXNldCBhdCBmaW5hbCBzaHV0ZG93bgotICAgIGVhcmx5X2NvbmZpZy5hZGRf
Y2xlYW51cChjYXBtYW4uc3RvcF9nbG9iYWxfY2FwdHVyaW5nKQotCi0gICAgIyBtYWtlIHN1cmUg
bG9nZ2luZyBkb2VzIG5vdCByYWlzZSBleGNlcHRpb25zIGF0IHRoZSBlbmQKLSAgICBkZWYgc2ls
ZW5jZV9sb2dnaW5nX2F0X3NodXRkb3duKCk6Ci0gICAgICAgIGlmICJsb2dnaW5nIiBpbiBzeXMu
bW9kdWxlczoKLSAgICAgICAgICAgIHN5cy5tb2R1bGVzWyJsb2dnaW5nIl0ucmFpc2VFeGNlcHRp
b25zID0gRmFsc2UKLSAgICBlYXJseV9jb25maWcuYWRkX2NsZWFudXAoc2lsZW5jZV9sb2dnaW5n
X2F0X3NodXRkb3duKQotCi0gICAgIyBmaW5hbGx5IHRyaWdnZXIgY29uZnRlc3QgbG9hZGluZyBi
dXQgd2hpbGUgY2FwdHVyaW5nIChpc3N1ZTkzKQotICAgIGNhcG1hbi5zdGFydF9nbG9iYWxfY2Fw
dHVyaW5nKCkKLSAgICBvdXRjb21lID0geWllbGQKLSAgICBvdXQsIGVyciA9IGNhcG1hbi5zdXNw
ZW5kX2dsb2JhbF9jYXB0dXJlKCkKLSAgICBpZiBvdXRjb21lLmV4Y2luZm8gaXMgbm90IE5vbmU6
Ci0gICAgICAgIHN5cy5zdGRvdXQud3JpdGUob3V0KQotICAgICAgICBzeXMuc3RkZXJyLndyaXRl
KGVycikKLQotCi1jbGFzcyBDYXB0dXJlTWFuYWdlcjoKLSAgICAiIiIKLSAgICBDYXB0dXJlIHBs
dWdpbiwgbWFuYWdlcyB0aGF0IHRoZSBhcHByb3ByaWF0ZSBjYXB0dXJlIG1ldGhvZCBpcyBlbmFi
bGVkL2Rpc2FibGVkIGR1cmluZyBjb2xsZWN0aW9uIGFuZCBlYWNoCi0gICAgdGVzdCBwaGFzZSAo
c2V0dXAsIGNhbGwsIHRlYXJkb3duKS4gQWZ0ZXIgZWFjaCBvZiB0aG9zZSBwb2ludHMsIHRoZSBj
YXB0dXJlZCBvdXRwdXQgaXMgb2J0YWluZWQgYW5kCi0gICAgYXR0YWNoZWQgdG8gdGhlIGNvbGxl
Y3Rpb24vcnVudGVzdCByZXBvcnQuCi0KLSAgICBUaGVyZSBhcmUgdHdvIGxldmVscyBvZiBjYXB0
dXJlOgotICAgICogZ2xvYmFsOiB3aGljaCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgYW5kIGNhbiBi
ZSBzdXBwcmVzc2VkIGJ5IHRoZSBgYC1zYGAgb3B0aW9uLiBUaGlzIGlzIGFsd2F5cyBlbmFibGVk
L2Rpc2FibGVkCi0gICAgICBkdXJpbmcgY29sbGVjdGlvbiBhbmQgZWFjaCB0ZXN0IHBoYXNlLgot
ICAgICogZml4dHVyZTogd2hlbiBhIHRlc3QgZnVuY3Rpb24gb3Igb25lIG9mIGl0cyBmaXh0dXJl
IGRlcGVuZCBvbiB0aGUgYGBjYXBzeXNgYCBvciBgYGNhcGZkYGAgZml4dHVyZXMuIEluIHRoaXMK
LSAgICAgIGNhc2Ugc3BlY2lhbCBoYW5kbGluZyBpcyBuZWVkZWQgdG8gZW5zdXJlIHRoZSBmaXh0
dXJlcyB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aGUgZ2xvYmFsIGNhcHR1cmUuCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbWV0aG9kKToKLSAgICAgICAgc2VsZi5fbWV0aG9kID0g
bWV0aG9kCi0gICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcgPSBOb25lCi0KLSAgICBkZWYg
X2dldGNhcHR1cmUoc2VsZiwgbWV0aG9kKToKLSAgICAgICAgaWYgbWV0aG9kID09ICJmZCI6Ci0g
ICAgICAgICAgICByZXR1cm4gTXVsdGlDYXB0dXJlKG91dD1UcnVlLCBlcnI9VHJ1ZSwgQ2FwdHVy
ZT1GRENhcHR1cmUpCi0gICAgICAgIGVsaWYgbWV0aG9kID09ICJzeXMiOgotICAgICAgICAgICAg
cmV0dXJuIE11bHRpQ2FwdHVyZShvdXQ9VHJ1ZSwgZXJyPVRydWUsIENhcHR1cmU9U3lzQ2FwdHVy
ZSkKLSAgICAgICAgZWxpZiBtZXRob2QgPT0gIm5vIjoKLSAgICAgICAgICAgIHJldHVybiBNdWx0
aUNhcHR1cmUob3V0PUZhbHNlLCBlcnI9RmFsc2UsIGluXz1GYWxzZSkKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInVua25vd24gY2FwdHVyaW5nIG1ldGhvZDog
JXIiICUgbWV0aG9kKQotCi0gICAgZGVmIHN0YXJ0X2dsb2JhbF9jYXB0dXJpbmcoc2VsZik6Ci0g
ICAgICAgIGFzc2VydCBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nIGlzIE5vbmUKLSAgICAgICAgc2Vs
Zi5fZ2xvYmFsX2NhcHR1cmluZyA9IHNlbGYuX2dldGNhcHR1cmUoc2VsZi5fbWV0aG9kKQotICAg
ICAgICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nLnN0YXJ0X2NhcHR1cmluZygpCi0KLSAgICBkZWYg
c3RvcF9nbG9iYWxfY2FwdHVyaW5nKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9nbG9iYWxfY2Fw
dHVyaW5nIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5w
b3Bfb3V0ZXJyX3RvX29yaWcoKQotICAgICAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5z
dG9wX2NhcHR1cmluZygpCi0gICAgICAgICAgICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nID0gTm9u
ZQotCi0gICAgZGVmIHJlc3VtZV9nbG9iYWxfY2FwdHVyZShzZWxmKToKLSAgICAgICAgc2VsZi5f
Z2xvYmFsX2NhcHR1cmluZy5yZXN1bWVfY2FwdHVyaW5nKCkKLQotICAgIGRlZiBzdXNwZW5kX2ds
b2JhbF9jYXB0dXJlKHNlbGYsIGl0ZW09Tm9uZSwgaW5fPUZhbHNlKToKLSAgICAgICAgaWYgaXRl
bSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuZGVhY3RpdmF0ZV9maXh0dXJlKGl0ZW0p
Ci0gICAgICAgIGNhcCA9IGdldGF0dHIoc2VsZiwgIl9nbG9iYWxfY2FwdHVyaW5nIiwgTm9uZSkK
LSAgICAgICAgaWYgY2FwIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIG91dGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICAgICAgY2FwLnN1c3BlbmRfY2FwdHVyaW5nKGluXz1pbl8pCi0gICAgICAgICAg
ICByZXR1cm4gb3V0ZXJyCi0KLSAgICBkZWYgYWN0aXZhdGVfZml4dHVyZShzZWxmLCBpdGVtKToK
LSAgICAgICAgIiIiSWYgdGhlIGN1cnJlbnQgaXRlbSBpcyB1c2luZyBgYGNhcHN5c2BgIG9yIGBg
Y2FwZmRgYCwgYWN0aXZhdGUgdGhlbSBzbyB0aGV5IHRha2UgcHJlY2VkZW5jZSBvdmVyCi0gICAg
ICAgIHRoZSBnbG9iYWwgY2FwdHVyZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGZpeHR1cmUgPSBn
ZXRhdHRyKGl0ZW0sICJfY2FwdHVyZV9maXh0dXJlIiwgTm9uZSkKLSAgICAgICAgaWYgZml4dHVy
ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZpeHR1cmUuX3N0YXJ0KCkKLQotICAgIGRlZiBk
ZWFjdGl2YXRlX2ZpeHR1cmUoc2VsZiwgaXRlbSk6Ci0gICAgICAgICIiIkRlYWN0aXZhdGVzIHRo
ZSBgYGNhcHN5c2BgIG9yIGBgY2FwZmRgYCBmaXh0dXJlIG9mIHRoaXMgaXRlbSwgaWYgYW55LiIi
IgotICAgICAgICBmaXh0dXJlID0gZ2V0YXR0cihpdGVtLCAiX2NhcHR1cmVfZml4dHVyZSIsIE5v
bmUpCi0gICAgICAgIGlmIGZpeHR1cmUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmaXh0dXJl
LmNsb3NlKCkKLQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBk
ZWYgcHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQoc2VsZiwgY29sbGVjdG9yKToKLSAgICAgICAg
aWYgaXNpbnN0YW5jZShjb2xsZWN0b3IsIHB5dGVzdC5GaWxlKToKLSAgICAgICAgICAgIHNlbGYu
cmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKLSAgICAgICAgICAgIG91dGNvbWUgPSB5aWVsZAotICAg
ICAgICAgICAgb3V0LCBlcnIgPSBzZWxmLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoKQotICAgICAg
ICAgICAgcmVwID0gb3V0Y29tZS5nZXRfcmVzdWx0KCkKLSAgICAgICAgICAgIGlmIG91dDoKLSAg
ICAgICAgICAgICAgICByZXAuc2VjdGlvbnMuYXBwZW5kKCgiQ2FwdHVyZWQgc3Rkb3V0Iiwgb3V0
KSkKLSAgICAgICAgICAgIGlmIGVycjoKLSAgICAgICAgICAgICAgICByZXAuc2VjdGlvbnMuYXBw
ZW5kKCgiQ2FwdHVyZWQgc3RkZXJyIiwgZXJyKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHlpZWxkCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVm
IHB5dGVzdF9ydW50ZXN0X3NldHVwKHNlbGYsIGl0ZW0pOgotICAgICAgICBzZWxmLnJlc3VtZV9n
bG9iYWxfY2FwdHVyZSgpCi0gICAgICAgICMgbm8gbmVlZCB0byBhY3RpdmF0ZSBhIGNhcHR1cmUg
Zml4dHVyZSBiZWNhdXNlIHRoZXkgYWN0aXZhdGUgdGhlbXNlbHZlcyBkdXJpbmcgY3JlYXRpb247
IHRoaXMKLSAgICAgICAgIyBvbmx5IG1ha2VzIHNlbnNlIHdoZW4gYSBmaXh0dXJlIHVzZXMgYSBj
YXB0dXJlIGZpeHR1cmUsIG90aGVyd2lzZSB0aGUgY2FwdHVyZSBmaXh0dXJlIHdpbGwKLSAgICAg
ICAgIyBiZSBhY3RpdmF0ZWQgZHVyaW5nIHB5dGVzdF9ydW50ZXN0X2NhbGwKLSAgICAgICAgeWll
bGQKLSAgICAgICAgc2VsZi5zdXNwZW5kX2NhcHR1cmVfaXRlbShpdGVtLCAic2V0dXAiKQotCi0g
ICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotICAgIGRlZiBweXRlc3RfcnVu
dGVzdF9jYWxsKHNlbGYsIGl0ZW0pOgotICAgICAgICBzZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVy
ZSgpCi0gICAgICAgICMgaXQgaXMgaW1wb3J0YW50IHRvIGFjdGl2YXRlIHRoaXMgZml4dHVyZSBk
dXJpbmcgdGhlIGNhbGwgcGhhc2Ugc28gaXQgb3ZlcndyaXRlcyB0aGUgImdsb2JhbCIKLSAgICAg
ICAgIyBjYXB0dXJlCi0gICAgICAgIHNlbGYuYWN0aXZhdGVfZml4dHVyZShpdGVtKQotICAgICAg
ICB5aWVsZAotICAgICAgICBzZWxmLnN1c3BlbmRfY2FwdHVyZV9pdGVtKGl0ZW0sICJjYWxsIikK
LQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0
X3J1bnRlc3RfdGVhcmRvd24oc2VsZiwgaXRlbSk6Ci0gICAgICAgIHNlbGYucmVzdW1lX2dsb2Jh
bF9jYXB0dXJlKCkKLSAgICAgICAgc2VsZi5hY3RpdmF0ZV9maXh0dXJlKGl0ZW0pCi0gICAgICAg
IHlpZWxkCi0gICAgICAgIHNlbGYuc3VzcGVuZF9jYXB0dXJlX2l0ZW0oaXRlbSwgInRlYXJkb3du
IikKLQotICAgIEBweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0
X2tleWJvYXJkX2ludGVycnVwdChzZWxmLCBleGNpbmZvKToKLSAgICAgICAgc2VsZi5zdG9wX2ds
b2JhbF9jYXB0dXJpbmcoKQotCi0gICAgQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQot
ICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCBleGNpbmZvKToKLSAgICAgICAgc2Vs
Zi5zdG9wX2dsb2JhbF9jYXB0dXJpbmcoKQotCi0gICAgZGVmIHN1c3BlbmRfY2FwdHVyZV9pdGVt
KHNlbGYsIGl0ZW0sIHdoZW4sIGluXz1GYWxzZSk6Ci0gICAgICAgIG91dCwgZXJyID0gc2VsZi5z
dXNwZW5kX2dsb2JhbF9jYXB0dXJlKGl0ZW0sIGluXz1pbl8pCi0gICAgICAgIGl0ZW0uYWRkX3Jl
cG9ydF9zZWN0aW9uKHdoZW4sICJzdGRvdXQiLCBvdXQpCi0gICAgICAgIGl0ZW0uYWRkX3JlcG9y
dF9zZWN0aW9uKHdoZW4sICJzdGRlcnIiLCBlcnIpCi0KLQotY2FwdHVyZV9maXh0dXJlcyA9IHsn
Y2FwZmQnLCAnY2FwZmRiaW5hcnknLCAnY2Fwc3lzJywgJ2NhcHN5c2JpbmFyeSd9Ci0KLQotZGVm
IF9lbnN1cmVfb25seV9vbmVfY2FwdHVyZV9maXh0dXJlKHJlcXVlc3QsIG5hbWUpOgotICAgIGZp
eHR1cmVzID0gc2V0KHJlcXVlc3QuZml4dHVyZW5hbWVzKSAmIGNhcHR1cmVfZml4dHVyZXMgLSBz
ZXQoKG5hbWUsKSkKLSAgICBpZiBmaXh0dXJlczoKLSAgICAgICAgZml4dHVyZXMgPSBzb3J0ZWQo
Zml4dHVyZXMpCi0gICAgICAgIGZpeHR1cmVzID0gZml4dHVyZXNbMF0gaWYgbGVuKGZpeHR1cmVz
KSA9PSAxIGVsc2UgZml4dHVyZXMKLSAgICAgICAgcmFpc2UgcmVxdWVzdC5yYWlzZWVycm9yKAot
ICAgICAgICAgICAgImNhbm5vdCB1c2UgezB9IGFuZCB7MX0gYXQgdGhlIHNhbWUgdGltZSIuZm9y
bWF0KAotICAgICAgICAgICAgICAgIGZpeHR1cmVzLCBuYW1lLAotICAgICAgICAgICAgKSwKLSAg
ICAgICAgKQotCi0KLUBweXRlc3QuZml4dHVyZQotZGVmIGNhcHN5cyhyZXF1ZXN0KToKLSAgICAi
IiJFbmFibGUgY2FwdHVyaW5nIG9mIHdyaXRlcyB0byBzeXMuc3Rkb3V0L3N5cy5zdGRlcnIgYW5k
IG1ha2UKLSAgICBjYXB0dXJlZCBvdXRwdXQgYXZhaWxhYmxlIHZpYSBgYGNhcHN5cy5yZWFkb3V0
ZXJyKClgYCBtZXRob2QgY2FsbHMKLSAgICB3aGljaCByZXR1cm4gYSBgYChvdXQsIGVycilgYCB0
dXBsZS4gIGBgb3V0YGAgYW5kIGBgZXJyYGAgd2lsbCBiZSBgYHRleHRgYAotICAgIG9iamVjdHMu
Ci0gICAgIiIiCi0gICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwg
J2NhcHN5cycpCi0gICAgd2l0aCBfaW5zdGFsbF9jYXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1
ZXN0LCBTeXNDYXB0dXJlKSBhcyBmaXh0dXJlOgotICAgICAgICB5aWVsZCBmaXh0dXJlCi0KLQot
QHB5dGVzdC5maXh0dXJlCi1kZWYgY2Fwc3lzYmluYXJ5KHJlcXVlc3QpOgotICAgICIiIkVuYWJs
ZSBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIHN5cy5zdGRvdXQvc3lzLnN0ZGVyciBhbmQgbWFrZQot
ICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBg
IG1ldGhvZCBjYWxscwotICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAg
YGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgYnl0ZXNgYAotICAgIG9iamVjdHMuCi0gICAg
IiIiCi0gICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwgJ2NhcHN5
c2JpbmFyeScpCi0gICAgIyBDdXJyZW50bHksIHRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHRoZSBw
eXRob24zIHNwZWNpZmljIGAuYnVmZmVyYAotICAgICMgcHJvcGVydHkgb2YgQ2FwdHVyZUlPLgot
ICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywpOgotICAgICAgICByYWlzZSByZXF1ZXN0LnJh
aXNlZXJyb3IoJ2NhcHN5c2JpbmFyeSBpcyBvbmx5IHN1cHBvcnRlZCBvbiBweXRob24gMycpCi0g
ICAgd2l0aCBfaW5zdGFsbF9jYXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBTeXNDYXB0
dXJlQmluYXJ5KSBhcyBmaXh0dXJlOgotICAgICAgICB5aWVsZCBmaXh0dXJlCi0KLQotQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2FwZmQocmVxdWVzdCk6Ci0gICAgIiIiRW5hYmxlIGNhcHR1cmluZyBv
ZiB3cml0ZXMgdG8gZmlsZSBkZXNjcmlwdG9ycyAxIGFuZCAyIGFuZCBtYWtlCi0gICAgY2FwdHVy
ZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBmZC5yZWFkb3V0ZXJyKClgYCBtZXRob2QgY2Fs
bHMKLSAgICB3aGljaCByZXR1cm4gYSBgYChvdXQsIGVycilgYCB0dXBsZS4gIGBgb3V0YGAgYW5k
IGBgZXJyYGAgd2lsbCBiZSBgYHRleHRgYAotICAgIG9iamVjdHMuCi0gICAgIiIiCi0gICAgX2Vu
c3VyZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwgJ2NhcGZkJykKLSAgICBpZiBu
b3QgaGFzYXR0cihvcywgJ2R1cCcpOgotICAgICAgICBweXRlc3Quc2tpcCgiY2FwZmQgZml4dHVy
ZSBuZWVkcyBvcy5kdXAgZnVuY3Rpb24gd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIHN5
c3RlbSIpCi0gICAgd2l0aCBfaW5zdGFsbF9jYXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0
LCBGRENhcHR1cmUpIGFzIGZpeHR1cmU6Ci0gICAgICAgIHlpZWxkIGZpeHR1cmUKLQotCi1AcHl0
ZXN0LmZpeHR1cmUKLWRlZiBjYXBmZGJpbmFyeShyZXF1ZXN0KToKLSAgICAiIiJFbmFibGUgY2Fw
dHVyaW5nIG9mIHdyaXRlIHRvIGZpbGUgZGVzY3JpcHRvcnMgMSBhbmQgMiBhbmQgbWFrZQotICAg
IGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2FwZmRiaW5hcnkucmVhZG91dGVycmBg
IG1ldGhvZCBjYWxscwotICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAg
YGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlCi0gICAgYGBieXRlc2BgIG9iamVjdHMuCi0gICAg
IiIiCi0gICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwgJ2NhcGZk
YmluYXJ5JykKLSAgICBpZiBub3QgaGFzYXR0cihvcywgJ2R1cCcpOgotICAgICAgICBweXRlc3Qu
c2tpcCgiY2FwZmRiaW5hcnkgZml4dHVyZSBuZWVkcyBvcy5kdXAgZnVuY3Rpb24gd2hpY2ggaXMg
bm90IGF2YWlsYWJsZSBpbiB0aGlzIHN5c3RlbSIpCi0gICAgd2l0aCBfaW5zdGFsbF9jYXB0dXJl
X2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBGRENhcHR1cmVCaW5hcnkpIGFzIGZpeHR1cmU6Ci0g
ICAgICAgIHlpZWxkIGZpeHR1cmUKLQotCi1AY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgotZGVm
IF9pbnN0YWxsX2NhcHR1cmVfZml4dHVyZV9vbl9pdGVtKHJlcXVlc3QsIGNhcHR1cmVfY2xhc3Mp
OgotICAgICIiIgotICAgIENvbnRleHQgbWFuYWdlciB3aGljaCBjcmVhdGVzIGEgYGBDYXB0dXJl
Rml4dHVyZWBgIGluc3RhbmNlIGFuZCAiaW5zdGFsbHMiIGl0IG9uCi0gICAgdGhlIGl0ZW0vbm9k
ZSBvZiB0aGUgZ2l2ZW4gcmVxdWVzdC4gVXNlZCBieSBgYGNhcHN5c2BgIGFuZCBgYGNhcGZkYGAu
Ci0KLSAgICBUaGUgQ2FwdHVyZUZpeHR1cmUgaXMgYWRkZWQgYXMgYXR0cmlidXRlIG9mIHRoZSBp
dGVtIGJlY2F1c2UgaXQgbmVlZHMgdG8gYWNjZXNzZWQKLSAgICBieSBgYENhcHR1cmVNYW5hZ2Vy
YGAgZHVyaW5nIGl0cyBgYHB5dGVzdF9ydW50ZXN0XypgYCBob29rcy4KLSAgICAiIiIKLSAgICBy
ZXF1ZXN0Lm5vZGUuX2NhcHR1cmVfZml4dHVyZSA9IGZpeHR1cmUgPSBDYXB0dXJlRml4dHVyZShj
YXB0dXJlX2NsYXNzLCByZXF1ZXN0KQotICAgIGNhcG1hbmFnZXIgPSByZXF1ZXN0LmNvbmZpZy5w
bHVnaW5tYW5hZ2VyLmdldHBsdWdpbignY2FwdHVyZW1hbmFnZXInKQotICAgICMgbmVlZCB0byBh
Y3RpdmUgdGhpcyBmaXh0dXJlIHJpZ2h0IGF3YXkgaW4gY2FzZSBpdCBpcyBiZWluZyB1c2VkIGJ5
IGFub3RoZXIgZml4dHVyZSAoc2V0dXAgcGhhc2UpCi0gICAgIyBpZiB0aGlzIGZpeHR1cmUgaXMg
YmVpbmcgdXNlZCBvbmx5IGJ5IGEgdGVzdCBmdW5jdGlvbiAoY2FsbCBwaGFzZSksIHRoZW4gd2Ug
d291bGRuJ3QgbmVlZCB0aGlzCi0gICAgIyBhY3RpdmF0aW9uLCBidXQgaXQgZG9lc24ndCBodXJ0
Ci0gICAgY2FwbWFuYWdlci5hY3RpdmF0ZV9maXh0dXJlKHJlcXVlc3Qubm9kZSkKLSAgICB5aWVs
ZCBmaXh0dXJlCi0gICAgZml4dHVyZS5jbG9zZSgpCi0gICAgZGVsIHJlcXVlc3Qubm9kZS5fY2Fw
dHVyZV9maXh0dXJlCi0KLQotY2xhc3MgQ2FwdHVyZUZpeHR1cmU6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGNhcHR1cmVjbGFzcywgcmVxdWVzdCk6Ci0gICAgICAgIHNlbGYuY2FwdHVyZWNsYXNz
ID0gY2FwdHVyZWNsYXNzCi0gICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKLQotICAgIGRl
ZiBfc3RhcnQoc2VsZik6Ci0gICAgICAgIHNlbGYuX2NhcHR1cmUgPSBNdWx0aUNhcHR1cmUob3V0
PVRydWUsIGVycj1UcnVlLCBpbl89RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ2FwdHVyZT1zZWxmLmNhcHR1cmVjbGFzcykKLSAgICAgICAgc2VsZi5fY2FwdHVy
ZS5zdGFydF9jYXB0dXJpbmcoKQotCi0gICAgZGVmIGNsb3NlKHNlbGYpOgotICAgICAgICBjYXAg
PSBzZWxmLl9fZGljdF9fLnBvcCgiX2NhcHR1cmUiLCBOb25lKQotICAgICAgICBpZiBjYXAgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9vdXRlcnIgPSBjYXAucG9wX291dGVycl90b19v
cmlnKCkKLSAgICAgICAgICAgIGNhcC5zdG9wX2NhcHR1cmluZygpCi0KLSAgICBkZWYgcmVhZG91
dGVycihzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NhcHR1
cmUucmVhZG91dGVycigpCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAg
ICAgIHJldHVybiBzZWxmLl9vdXRlcnIKLQotICAgIEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2Vy
Ci0gICAgZGVmIGRpc2FibGVkKHNlbGYpOgotICAgICAgICBzZWxmLl9jYXB0dXJlLnN1c3BlbmRf
Y2FwdHVyaW5nKCkKLSAgICAgICAgY2FwbWFuYWdlciA9IHNlbGYucmVxdWVzdC5jb25maWcucGx1
Z2lubWFuYWdlci5nZXRwbHVnaW4oJ2NhcHR1cmVtYW5hZ2VyJykKLSAgICAgICAgY2FwbWFuYWdl
ci5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGl0ZW09Tm9uZSwgaW5fPUZhbHNlKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB5aWVsZAotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgY2Fw
bWFuYWdlci5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUoKQotICAgICAgICAgICAgc2VsZi5fY2FwdHVy
ZS5yZXN1bWVfY2FwdHVyaW5nKCkKLQotCi1kZWYgc2FmZV90ZXh0X2R1cGZpbGUoZiwgbW9kZSwg
ZGVmYXVsdF9lbmNvZGluZz0iVVRGOCIpOgotICAgICIiIiByZXR1cm4gYSBvcGVuIHRleHQgZmls
ZSBvYmplY3QgdGhhdCdzIGEgZHVwbGljYXRlIG9mIGYgb24gdGhlCi0gICAgICAgIEZELWxldmVs
IGlmIHBvc3NpYmxlLgotICAgICIiIgotICAgIGVuY29kaW5nID0gZ2V0YXR0cihmLCAiZW5jb2Rp
bmciLCBOb25lKQotICAgIHRyeToKLSAgICAgICAgZmQgPSBmLmZpbGVubygpCi0gICAgZXhjZXB0
IEV4Y2VwdGlvbjoKLSAgICAgICAgaWYgImIiIG5vdCBpbiBnZXRhdHRyKGYsICJtb2RlIiwgIiIp
IGFuZCBoYXNhdHRyKGYsICJlbmNvZGluZyIpOgotICAgICAgICAgICAgIyB3ZSBzZWVtIHRvIGhh
dmUgYSB0ZXh0IHN0cmVhbSwgbGV0J3MganVzdCB1c2UgaXQKLSAgICAgICAgICAgIHJldHVybiBm
Ci0gICAgZWxzZToKLSAgICAgICAgbmV3ZmQgPSBvcy5kdXAoZmQpCi0gICAgICAgIGlmICJiIiBu
b3QgaW4gbW9kZToKLSAgICAgICAgICAgIG1vZGUgKz0gImIiCi0gICAgICAgIGYgPSBvcy5mZG9w
ZW4obmV3ZmQsIG1vZGUsIDApICAjIG5vIGJ1ZmZlcmluZwotICAgIHJldHVybiBFbmNvZGVkRmls
ZShmLCBlbmNvZGluZyBvciBkZWZhdWx0X2VuY29kaW5nKQotCi0KLWNsYXNzIEVuY29kZWRGaWxl
KG9iamVjdCk6Ci0gICAgZXJyb3JzID0gInN0cmljdCIgICMgcG9zc2libHkgbmVlZGVkIGJ5IHB5
MyBjb2RlIChpc3N1ZTU1NSkKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBidWZmZXIsIGVuY29k
aW5nKToKLSAgICAgICAgc2VsZi5idWZmZXIgPSBidWZmZXIKLSAgICAgICAgc2VsZi5lbmNvZGlu
ZyA9IGVuY29kaW5nCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgb2JqKToKLSAgICAgICAgaWYgaXNp
bnN0YW5jZShvYmosIHNpeC50ZXh0X3R5cGUpOgotICAgICAgICAgICAgb2JqID0gb2JqLmVuY29k
ZShzZWxmLmVuY29kaW5nLCAicmVwbGFjZSIpCi0gICAgICAgIHNlbGYuYnVmZmVyLndyaXRlKG9i
aikKLQotICAgIGRlZiB3cml0ZWxpbmVzKHNlbGYsIGxpbmVsaXN0KToKLSAgICAgICAgZGF0YSA9
ICcnLmpvaW4obGluZWxpc3QpCi0gICAgICAgIHNlbGYud3JpdGUoZGF0YSkKLQotICAgIEBwcm9w
ZXJ0eQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICAiIiJFbnN1cmUgdGhhdCBmaWxlLm5h
bWUgaXMgYSBzdHJpbmcuIiIiCi0gICAgICAgIHJldHVybiByZXByKHNlbGYuYnVmZmVyKQotCi0g
ICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gZ2V0YXR0cihv
YmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCAiYnVmZmVyIiksIG5hbWUpCi0KLQotQ2FwdHVy
ZVJlc3VsdCA9IGNvbGxlY3Rpb25zLm5hbWVkdHVwbGUoIkNhcHR1cmVSZXN1bHQiLCBbIm91dCIs
ICJlcnIiXSkKLQotCi1jbGFzcyBNdWx0aUNhcHR1cmUob2JqZWN0KToKLSAgICBvdXQgPSBlcnIg
PSBpbl8gPSBOb25lCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3V0PVRydWUsIGVycj1UcnVl
LCBpbl89VHJ1ZSwgQ2FwdHVyZT1Ob25lKToKLSAgICAgICAgaWYgaW5fOgotICAgICAgICAgICAg
c2VsZi5pbl8gPSBDYXB0dXJlKDApCi0gICAgICAgIGlmIG91dDoKLSAgICAgICAgICAgIHNlbGYu
b3V0ID0gQ2FwdHVyZSgxKQotICAgICAgICBpZiBlcnI6Ci0gICAgICAgICAgICBzZWxmLmVyciA9
IENhcHR1cmUoMikKLQotICAgIGRlZiBzdGFydF9jYXB0dXJpbmcoc2VsZik6Ci0gICAgICAgIGlm
IHNlbGYuaW5fOgotICAgICAgICAgICAgc2VsZi5pbl8uc3RhcnQoKQotICAgICAgICBpZiBzZWxm
Lm91dDoKLSAgICAgICAgICAgIHNlbGYub3V0LnN0YXJ0KCkKLSAgICAgICAgaWYgc2VsZi5lcnI6
Ci0gICAgICAgICAgICBzZWxmLmVyci5zdGFydCgpCi0KLSAgICBkZWYgcG9wX291dGVycl90b19v
cmlnKHNlbGYpOgotICAgICAgICAiIiIgcG9wIGN1cnJlbnQgc25hcHNob3Qgb3V0L2VyciBjYXB0
dXJlIGFuZCBmbHVzaCB0byBvcmlnIHN0cmVhbXMuICIiIgotICAgICAgICBvdXQsIGVyciA9IHNl
bGYucmVhZG91dGVycigpCi0gICAgICAgIGlmIG91dDoKLSAgICAgICAgICAgIHNlbGYub3V0Lndy
aXRlb3JnKG91dCkKLSAgICAgICAgaWYgZXJyOgotICAgICAgICAgICAgc2VsZi5lcnIud3JpdGVv
cmcoZXJyKQotICAgICAgICByZXR1cm4gb3V0LCBlcnIKLQotICAgIGRlZiBzdXNwZW5kX2NhcHR1
cmluZyhzZWxmLCBpbl89RmFsc2UpOgotICAgICAgICBpZiBzZWxmLm91dDoKLSAgICAgICAgICAg
IHNlbGYub3V0LnN1c3BlbmQoKQotICAgICAgICBpZiBzZWxmLmVycjoKLSAgICAgICAgICAgIHNl
bGYuZXJyLnN1c3BlbmQoKQotICAgICAgICBpZiBpbl8gYW5kIHNlbGYuaW5fOgotICAgICAgICAg
ICAgc2VsZi5pbl8uc3VzcGVuZCgpCi0gICAgICAgICAgICBzZWxmLl9pbl9zdXNwZW5kZWQgPSBU
cnVlCi0KLSAgICBkZWYgcmVzdW1lX2NhcHR1cmluZyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5v
dXQ6Ci0gICAgICAgICAgICBzZWxmLm91dC5yZXN1bWUoKQotICAgICAgICBpZiBzZWxmLmVycjoK
LSAgICAgICAgICAgIHNlbGYuZXJyLnJlc3VtZSgpCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwg
Il9pbl9zdXNwZW5kZWQiKToKLSAgICAgICAgICAgIHNlbGYuaW5fLnJlc3VtZSgpCi0gICAgICAg
ICAgICBkZWwgc2VsZi5faW5fc3VzcGVuZGVkCi0KLSAgICBkZWYgc3RvcF9jYXB0dXJpbmcoc2Vs
Zik6Ci0gICAgICAgICIiIiBzdG9wIGNhcHR1cmluZyBhbmQgcmVzZXQgY2FwdHVyaW5nIHN0cmVh
bXMgIiIiCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19yZXNldCcpOgotICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigid2FzIGFscmVhZHkgc3RvcHBlZCIpCi0gICAgICAgIHNlbGYuX3Jl
c2V0ID0gVHJ1ZQotICAgICAgICBpZiBzZWxmLm91dDoKLSAgICAgICAgICAgIHNlbGYub3V0LmRv
bmUoKQotICAgICAgICBpZiBzZWxmLmVycjoKLSAgICAgICAgICAgIHNlbGYuZXJyLmRvbmUoKQot
ICAgICAgICBpZiBzZWxmLmluXzoKLSAgICAgICAgICAgIHNlbGYuaW5fLmRvbmUoKQotCi0gICAg
ZGVmIHJlYWRvdXRlcnIoc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gc25hcHNob3QgdW5pY29k
ZSB2YWx1ZSBvZiBzdGRvdXQvc3RkZXJyIGNhcHR1cmluZ3MuICIiIgotICAgICAgICByZXR1cm4g
Q2FwdHVyZVJlc3VsdChzZWxmLm91dC5zbmFwKCkgaWYgc2VsZi5vdXQgaXMgbm90IE5vbmUgZWxz
ZSAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5lcnIuc25hcCgpIGlmIHNl
bGYuZXJyIGlzIG5vdCBOb25lIGVsc2UgIiIpCi0KLQotY2xhc3MgTm9DYXB0dXJlOgotICAgIF9f
aW5pdF9fID0gc3RhcnQgPSBkb25lID0gc3VzcGVuZCA9IHJlc3VtZSA9IGxhbWJkYSAqYXJnczog
Tm9uZQotCi0KLWNsYXNzIEZEQ2FwdHVyZUJpbmFyeToKLSAgICAiIiJDYXB0dXJlIElPIHRvL2Zy
b20gYSBnaXZlbiBvcy1sZXZlbCBmaWxlZGVzY3JpcHRvci4KLQotICAgIHNuYXAoKSBwcm9kdWNl
cyBgYnl0ZXNgCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGFyZ2V0ZmQsIHRt
cGZpbGU9Tm9uZSk6Ci0gICAgICAgIHNlbGYudGFyZ2V0ZmQgPSB0YXJnZXRmZAotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBzZWxmLnRhcmdldGZkX3NhdmUgPSBvcy5kdXAoc2VsZi50YXJnZXRm
ZCkKLSAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgICAgICBzZWxmLnN0YXJ0ID0gbGFt
YmRhOiBOb25lCi0gICAgICAgICAgICBzZWxmLmRvbmUgPSBsYW1iZGE6IE5vbmUKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIGlmIHRhcmdldGZkID09IDA6Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0IG5vdCB0bXBmaWxlLCAiY2Fubm90IHNldCB0bXBmaWxlIHdpdGggc3RkaW4iCi0gICAgICAg
ICAgICAgICAgdG1wZmlsZSA9IG9wZW4ob3MuZGV2bnVsbCwgInIiKQotICAgICAgICAgICAgICAg
IHNlbGYuc3lzY2FwdHVyZSA9IFN5c0NhcHR1cmUodGFyZ2V0ZmQpCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIGlmIHRtcGZpbGUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAg
ICAgZiA9IFRlbXBvcmFyeUZpbGUoKQotICAgICAgICAgICAgICAgICAgICB3aXRoIGY6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB0bXBmaWxlID0gc2FmZV90ZXh0X2R1cGZpbGUoZiwgbW9kZT0i
d2IrIikKLSAgICAgICAgICAgICAgICBpZiB0YXJnZXRmZCBpbiBwYXRjaHN5c2RpY3Q6Ci0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuc3lzY2FwdHVyZSA9IFN5c0NhcHR1cmUodGFyZ2V0ZmQsIHRt
cGZpbGUpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5z
eXNjYXB0dXJlID0gTm9DYXB0dXJlKCkKLSAgICAgICAgICAgIHNlbGYudG1wZmlsZSA9IHRtcGZp
bGUKLSAgICAgICAgICAgIHNlbGYudG1wZmlsZV9mZCA9IHRtcGZpbGUuZmlsZW5vKCkKLQotICAg
IGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8RkRDYXB0dXJlICVzIG9sZGZk
PSVzPiIgJSAoc2VsZi50YXJnZXRmZCwgc2VsZi50YXJnZXRmZF9zYXZlKQotCi0gICAgZGVmIHN0
YXJ0KHNlbGYpOgotICAgICAgICAiIiIgU3RhcnQgY2FwdHVyaW5nIG9uIHRhcmdldGZkIHVzaW5n
IG1lbW9yaXplZCB0bXBmaWxlLiAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3MuZnN0
YXQoc2VsZi50YXJnZXRmZF9zYXZlKQotICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBP
U0Vycm9yKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInNhdmVkIGZpbGVkZXNjcmlw
dG9yIG5vdCB2YWxpZCBhbnltb3JlIikKLSAgICAgICAgb3MuZHVwMihzZWxmLnRtcGZpbGVfZmQs
IHNlbGYudGFyZ2V0ZmQpCi0gICAgICAgIHNlbGYuc3lzY2FwdHVyZS5zdGFydCgpCi0KLSAgICBk
ZWYgc25hcChzZWxmKToKLSAgICAgICAgc2VsZi50bXBmaWxlLnNlZWsoMCkKLSAgICAgICAgcmVz
ID0gc2VsZi50bXBmaWxlLnJlYWQoKQotICAgICAgICBzZWxmLnRtcGZpbGUuc2VlaygwKQotICAg
ICAgICBzZWxmLnRtcGZpbGUudHJ1bmNhdGUoKQotICAgICAgICByZXR1cm4gcmVzCi0KLSAgICBk
ZWYgZG9uZShzZWxmKToKLSAgICAgICAgIiIiIHN0b3AgY2FwdHVyaW5nLCByZXN0b3JlIHN0cmVh
bXMsIHJldHVybiBvcmlnaW5hbCBjYXB0dXJlIGZpbGUsCi0gICAgICAgIHNlZWtlZCB0byBwb3Np
dGlvbiB6ZXJvLiAiIiIKLSAgICAgICAgdGFyZ2V0ZmRfc2F2ZSA9IHNlbGYuX19kaWN0X18ucG9w
KCJ0YXJnZXRmZF9zYXZlIikKLSAgICAgICAgb3MuZHVwMih0YXJnZXRmZF9zYXZlLCBzZWxmLnRh
cmdldGZkKQotICAgICAgICBvcy5jbG9zZSh0YXJnZXRmZF9zYXZlKQotICAgICAgICBzZWxmLnN5
c2NhcHR1cmUuZG9uZSgpCi0gICAgICAgIHNlbGYudG1wZmlsZS5jbG9zZSgpCi0KLSAgICBkZWYg
c3VzcGVuZChzZWxmKToKLSAgICAgICAgc2VsZi5zeXNjYXB0dXJlLnN1c3BlbmQoKQotICAgICAg
ICBvcy5kdXAyKHNlbGYudGFyZ2V0ZmRfc2F2ZSwgc2VsZi50YXJnZXRmZCkKLQotICAgIGRlZiBy
ZXN1bWUoc2VsZik6Ci0gICAgICAgIHNlbGYuc3lzY2FwdHVyZS5yZXN1bWUoKQotICAgICAgICBv
cy5kdXAyKHNlbGYudG1wZmlsZV9mZCwgc2VsZi50YXJnZXRmZCkKLQotICAgIGRlZiB3cml0ZW9y
ZyhzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiIHdyaXRlIHRvIG9yaWdpbmFsIGZpbGUgZGVzY3Jp
cHRvci4gIiIiCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgc2l4LnRleHRfdHlwZSk6Ci0g
ICAgICAgICAgICBkYXRhID0gZGF0YS5lbmNvZGUoInV0ZjgiKSAgIyBYWFggdXNlIGVuY29kaW5n
IG9mIG9yaWdpbmFsIHN0cmVhbQotICAgICAgICBvcy53cml0ZShzZWxmLnRhcmdldGZkX3NhdmUs
IGRhdGEpCi0KLQotY2xhc3MgRkRDYXB0dXJlKEZEQ2FwdHVyZUJpbmFyeSk6Ci0gICAgIiIiQ2Fw
dHVyZSBJTyB0by9mcm9tIGEgZ2l2ZW4gb3MtbGV2ZWwgZmlsZWRlc2NyaXB0b3IuCi0KLSAgICBz
bmFwKCkgcHJvZHVjZXMgdGV4dAotICAgICIiIgotICAgIGRlZiBzbmFwKHNlbGYpOgotICAgICAg
ICByZXMgPSBGRENhcHR1cmVCaW5hcnkuc25hcChzZWxmKQotICAgICAgICBlbmMgPSBnZXRhdHRy
KHNlbGYudG1wZmlsZSwgImVuY29kaW5nIiwgTm9uZSkKLSAgICAgICAgaWYgZW5jIGFuZCBpc2lu
c3RhbmNlKHJlcywgYnl0ZXMpOgotICAgICAgICAgICAgcmVzID0gc2l4LnRleHRfdHlwZShyZXMs
IGVuYywgInJlcGxhY2UiKQotICAgICAgICByZXR1cm4gcmVzCi0KLQotY2xhc3MgU3lzQ2FwdHVy
ZToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmQsIHRtcGZpbGU9Tm9uZSk6Ci0gICAgICAgIG5h
bWUgPSBwYXRjaHN5c2RpY3RbZmRdCi0gICAgICAgIHNlbGYuX29sZCA9IGdldGF0dHIoc3lzLCBu
YW1lKQotICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0gICAgICAgIGlmIHRtcGZpbGUgaXMgTm9u
ZToKLSAgICAgICAgICAgIGlmIG5hbWUgPT0gInN0ZGluIjoKLSAgICAgICAgICAgICAgICB0bXBm
aWxlID0gRG9udFJlYWRGcm9tSW5wdXQoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICB0bXBmaWxlID0gQ2FwdHVyZUlPKCkKLSAgICAgICAgc2VsZi50bXBmaWxlID0gdG1wZmls
ZQotCi0gICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICBzZXRhdHRyKHN5cywgc2VsZi5uYW1l
LCBzZWxmLnRtcGZpbGUpCi0KLSAgICBkZWYgc25hcChzZWxmKToKLSAgICAgICAgcmVzID0gc2Vs
Zi50bXBmaWxlLmdldHZhbHVlKCkKLSAgICAgICAgc2VsZi50bXBmaWxlLnNlZWsoMCkKLSAgICAg
ICAgc2VsZi50bXBmaWxlLnRydW5jYXRlKCkKLSAgICAgICAgcmV0dXJuIHJlcwotCi0gICAgZGVm
IGRvbmUoc2VsZik6Ci0gICAgICAgIHNldGF0dHIoc3lzLCBzZWxmLm5hbWUsIHNlbGYuX29sZCkK
LSAgICAgICAgZGVsIHNlbGYuX29sZAotICAgICAgICBzZWxmLnRtcGZpbGUuY2xvc2UoKQotCi0g
ICAgZGVmIHN1c3BlbmQoc2VsZik6Ci0gICAgICAgIHNldGF0dHIoc3lzLCBzZWxmLm5hbWUsIHNl
bGYuX29sZCkKLQotICAgIGRlZiByZXN1bWUoc2VsZik6Ci0gICAgICAgIHNldGF0dHIoc3lzLCBz
ZWxmLm5hbWUsIHNlbGYudG1wZmlsZSkKLQotICAgIGRlZiB3cml0ZW9yZyhzZWxmLCBkYXRhKToK
LSAgICAgICAgc2VsZi5fb2xkLndyaXRlKGRhdGEpCi0gICAgICAgIHNlbGYuX29sZC5mbHVzaCgp
Ci0KLQotY2xhc3MgU3lzQ2FwdHVyZUJpbmFyeShTeXNDYXB0dXJlKToKLSAgICBkZWYgc25hcChz
ZWxmKToKLSAgICAgICAgcmVzID0gc2VsZi50bXBmaWxlLmJ1ZmZlci5nZXR2YWx1ZSgpCi0gICAg
ICAgIHNlbGYudG1wZmlsZS5zZWVrKDApCi0gICAgICAgIHNlbGYudG1wZmlsZS50cnVuY2F0ZSgp
Ci0gICAgICAgIHJldHVybiByZXMKLQotCi1jbGFzcyBEb250UmVhZEZyb21JbnB1dDoKLSAgICAi
IiJUZW1wb3Jhcnkgc3R1YiBjbGFzcy4gIElkZWFsbHkgd2hlbiBzdGRpbiBpcyBhY2Nlc3NlZCwg
dGhlCi0gICAgY2FwdHVyaW5nIHNob3VsZCBiZSB0dXJuZWQgb2ZmLCB3aXRoIHBvc3NpYmx5IGFs
bCBkYXRhIGNhcHR1cmVkCi0gICAgc28gZmFyIHNlbnQgdG8gdGhlIHNjcmVlbi4gIFRoaXMgc2hv
dWxkIGJlIGNvbmZpZ3VyYWJsZSwgdGhvdWdoLAotICAgIGJlY2F1c2UgaW4gYXV0b21hdGVkIHRl
c3QgcnVucyBpdCBpcyBiZXR0ZXIgdG8gY3Jhc2ggdGhhbgotICAgIGhhbmcgaW5kZWZpbml0ZWx5
LgotICAgICIiIgotCi0gICAgZW5jb2RpbmcgPSBOb25lCi0KLSAgICBkZWYgcmVhZChzZWxmLCAq
YXJncyk6Ci0gICAgICAgIHJhaXNlIElPRXJyb3IoInJlYWRpbmcgZnJvbSBzdGRpbiB3aGlsZSBv
dXRwdXQgaXMgY2FwdHVyZWQiKQotICAgIHJlYWRsaW5lID0gcmVhZAotICAgIHJlYWRsaW5lcyA9
IHJlYWQKLSAgICBfX2l0ZXJfXyA9IHJlYWQKLQotICAgIGRlZiBmaWxlbm8oc2VsZik6Ci0gICAg
ICAgIHJhaXNlIFVuc3VwcG9ydGVkT3BlcmF0aW9uKCJyZWRpcmVjdGVkIHN0ZGluIGlzIHBzZXVk
b2ZpbGUsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhhcyBubyBmaWxl
bm8oKSIpCi0KLSAgICBkZWYgaXNhdHR5KHNlbGYpOgotICAgICAgICByZXR1cm4gRmFsc2UKLQot
ICAgIGRlZiBjbG9zZShzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAgQHByb3BlcnR5Ci0gICAg
ZGVmIGJ1ZmZlcihzZWxmKToKLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6
Ci0gICAgICAgICAgICByZXR1cm4gc2VsZgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFp
c2UgQXR0cmlidXRlRXJyb3IoJ3JlZGlyZWN0ZWQgc3RkaW4gaGFzIG5vIGF0dHJpYnV0ZSBidWZm
ZXInKQotCi0KLWRlZiBfY29sb3JhbWFfd29ya2Fyb3VuZCgpOgotICAgICIiIgotICAgIEVuc3Vy
ZSBjb2xvcmFtYSBpcyBpbXBvcnRlZCBzbyB0aGF0IGl0IGF0dGFjaGVzIHRvIHRoZSBjb3JyZWN0
IHN0ZGlvCi0gICAgaGFuZGxlcyBvbiBXaW5kb3dzLgotCi0gICAgY29sb3JhbWEgdXNlcyB0aGUg
dGVybWluYWwgb24gaW1wb3J0IHRpbWUuIFNvIGlmIHNvbWV0aGluZyBkb2VzIHRoZQotICAgIGZp
cnN0IGltcG9ydCBvZiBjb2xvcmFtYSB3aGlsZSBJL08gY2FwdHVyZSBpcyBhY3RpdmUsIGNvbG9y
YW1hIHdpbGwKLSAgICBmYWlsIGluIHZhcmlvdXMgd2F5cy4KLSAgICAiIiIKLQotICAgIGlmIG5v
dCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luMzInKToKLSAgICAgICAgcmV0dXJuCi0gICAg
dHJ5OgotICAgICAgICBpbXBvcnQgY29sb3JhbWEgICMgbm9xYQotICAgIGV4Y2VwdCBJbXBvcnRF
cnJvcjoKLSAgICAgICAgcGFzcwotCi0KLWRlZiBfcmVhZGxpbmVfd29ya2Fyb3VuZCgpOgotICAg
ICIiIgotICAgIEVuc3VyZSByZWFkbGluZSBpcyBpbXBvcnRlZCBzbyB0aGF0IGl0IGF0dGFjaGVz
IHRvIHRoZSBjb3JyZWN0IHN0ZGlvCi0gICAgaGFuZGxlcyBvbiBXaW5kb3dzLgotCi0gICAgUGRi
IHVzZXMgcmVhZGxpbmUgc3VwcG9ydCB3aGVyZSBhdmFpbGFibGUtLXdoZW4gbm90IHJ1bm5pbmcg
ZnJvbSB0aGUgUHl0aG9uCi0gICAgcHJvbXB0LCB0aGUgcmVhZGxpbmUgbW9kdWxlIGlzIG5vdCBp
bXBvcnRlZCB1bnRpbCBydW5uaW5nIHRoZSBwZGIgUkVQTC4gIElmCi0gICAgcnVubmluZyBweXRl
c3Qgd2l0aCB0aGUgLS1wZGIgb3B0aW9uIHRoaXMgbWVhbnMgdGhlIHJlYWRsaW5lIG1vZHVsZSBp
cyBub3QKLSAgICBpbXBvcnRlZCB1bnRpbCBhZnRlciBJL08gY2FwdHVyZSBoYXMgYmVlbiBzdGFy
dGVkLgotCi0gICAgVGhpcyBpcyBhIHByb2JsZW0gZm9yIHB5cmVhZGxpbmUsIHdoaWNoIGlzIG9m
dGVuIHVzZWQgdG8gaW1wbGVtZW50IHJlYWRsaW5lCi0gICAgc3VwcG9ydCBvbiBXaW5kb3dzLCBh
cyBpdCBkb2VzIG5vdCBhdHRhY2ggdG8gdGhlIGNvcnJlY3QgaGFuZGxlcyBmb3Igc3Rkb3V0Ci0g
ICAgYW5kL29yIHN0ZGluIGlmIHRoZXkgaGF2ZSBiZWVuIHJlZGlyZWN0ZWQgYnkgdGhlIEZEQ2Fw
dHVyZSBtZWNoYW5pc20uICBUaGlzCi0gICAgd29ya2Fyb3VuZCBlbnN1cmVzIHRoYXQgcmVhZGxp
bmUgaXMgaW1wb3J0ZWQgYmVmb3JlIEkvTyBjYXB0dXJlIGlzIHNldHVwIHNvCi0gICAgdGhhdCBp
dCBjYW4gYXR0YWNoIHRvIHRoZSBhY3R1YWwgc3RkaW4vb3V0IGZvciB0aGUgY29uc29sZS4KLQot
ICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xMjgxCi0g
ICAgIiIiCi0KLSAgICBpZiBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbjMyJyk6Ci0g
ICAgICAgIHJldHVybgotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IHJlYWRsaW5lICAjIG5vcWEK
LSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHBhc3MKLQotCi1kZWYgX3B5MzZfd2lu
ZG93c2NvbnNvbGVpb193b3JrYXJvdW5kKHN0cmVhbSk6Ci0gICAgIiIiCi0gICAgUHl0aG9uIDMu
NiBpbXBsZW1lbnRlZCB1bmljb2RlIGNvbnNvbGUgaGFuZGxpbmcgZm9yIFdpbmRvd3MuIFRoaXMg
d29ya3MKLSAgICBieSByZWFkaW5nL3dyaXRpbmcgdG8gdGhlIHJhdyBjb25zb2xlIGhhbmRsZSB1
c2luZwotICAgIGBge1JlYWQsV3JpdGV9Q29uc29sZVdgYC4KLQotICAgIFRoZSBwcm9ibGVtIGlz
IHRoYXQgd2UgYXJlIGdvaW5nIHRvIGBgZHVwMmBgIG92ZXIgdGhlIHN0ZGlvIGZpbGUKLSAgICBk
ZXNjcmlwdG9ycyB3aGVuIGRvaW5nIGBgRkRDYXB0dXJlYGAgYW5kIHRoaXMgd2lsbCBgYENsb3Nl
SGFuZGxlYGAgdGhlCi0gICAgaGFuZGxlcyB1c2VkIGJ5IFB5dGhvbiB0byB3cml0ZSB0byB0aGUg
Y29uc29sZS4gVGhvdWdoIHRoZXJlIGlzIHN0aWxsIHNvbWUKLSAgICB3ZWlyZG5lc3MgYW5kIHRo
ZSBjb25zb2xlIGhhbmRsZSBzZWVtcyB0byBvbmx5IGJlIGNsb3NlZCByYW5kb21seSBhbmQgbm90
Ci0gICAgb24gdGhlIGZpcnN0IGNhbGwgdG8gYGBDbG9zZUhhbmRsZWBgLCBvciBtYXliZSBpdCBn
ZXRzIHJlb3BlbmVkIHdpdGggdGhlCi0gICAgc2FtZSBoYW5kbGUgdmFsdWUgd2hlbiB3ZSBzdXNw
ZW5kIGNhcHR1cmluZy4KLQotICAgIFRoZSB3b3JrYXJvdW5kIGluIHRoaXMgY2FzZSB3aWxsIHJl
b3BlbiBzdGRpbyB3aXRoIGEgZGlmZmVyZW50IGZkIHdoaWNoCi0gICAgYWxzbyBtZWFucyBhIGRp
ZmZlcmVudCBoYW5kbGUgYnkgcmVwbGljYXRpbmcgdGhlIGxvZ2ljIGluCi0gICAgIlB5X2xpZmVj
eWNsZS5jOmluaXRzdGRpby9jcmVhdGVfc3RkaW8iLgotCi0gICAgOnBhcmFtIHN0cmVhbTogaW4g
cHJhY3RpY2UgYGBzeXMuc3Rkb3V0YGAgb3IgYGBzeXMuc3RkZXJyYGAsIGJ1dCBnaXZlbgotICAg
ICAgICBoZXJlIGFzIHBhcmFtZXRlciBmb3IgdW5pdHRlc3RpbmcgcHVycG9zZXMuCi0KLSAgICBT
ZWUgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHkvaXNzdWVzLzEwMwotICAgICIiIgot
ICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luMzInKSBvciBzeXMudmVyc2lv
bl9pbmZvWzoyXSA8ICgzLCA2KToKLSAgICAgICAgcmV0dXJuCi0KLSAgICAjIGJhaWwgb3V0IGlm
IGBgc3RyZWFtYGAgZG9lc24ndCBzZWVtIGxpa2UgYSBwcm9wZXIgYGBpb2BgIHN0cmVhbSAoIzI2
NjYpCi0gICAgaWYgbm90IGhhc2F0dHIoc3RyZWFtLCAnYnVmZmVyJyk6Ci0gICAgICAgIHJldHVy
bgotCi0gICAgYnVmZmVyZWQgPSBoYXNhdHRyKHN0cmVhbS5idWZmZXIsICdyYXcnKQotICAgIHJh
d19zdGRvdXQgPSBzdHJlYW0uYnVmZmVyLnJhdyBpZiBidWZmZXJlZCBlbHNlIHN0cmVhbS5idWZm
ZXIKLQotICAgIGlmIG5vdCBpc2luc3RhbmNlKHJhd19zdGRvdXQsIGlvLl9XaW5kb3dzQ29uc29s
ZUlPKToKLSAgICAgICAgcmV0dXJuCi0KLSAgICBkZWYgX3Jlb3Blbl9zdGRpbyhmLCBtb2RlKToK
LSAgICAgICAgaWYgbm90IGJ1ZmZlcmVkIGFuZCBtb2RlWzBdID09ICd3JzoKLSAgICAgICAgICAg
IGJ1ZmZlcmluZyA9IDAKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGJ1ZmZlcmluZyA9IC0x
Ci0KLSAgICAgICAgcmV0dXJuIGlvLlRleHRJT1dyYXBwZXIoCi0gICAgICAgICAgICBvcGVuKG9z
LmR1cChmLmZpbGVubygpKSwgbW9kZSwgYnVmZmVyaW5nKSwKLSAgICAgICAgICAgIGYuZW5jb2Rp
bmcsCi0gICAgICAgICAgICBmLmVycm9ycywKLSAgICAgICAgICAgIGYubmV3bGluZXMsCi0gICAg
ICAgICAgICBmLmxpbmVfYnVmZmVyaW5nKQotCi0gICAgc3lzLl9fc3RkaW5fXyA9IHN5cy5zdGRp
biA9IF9yZW9wZW5fc3RkaW8oc3lzLnN0ZGluLCAncmInKQotICAgIHN5cy5fX3N0ZG91dF9fID0g
c3lzLnN0ZG91dCA9IF9yZW9wZW5fc3RkaW8oc3lzLnN0ZG91dCwgJ3diJykKLSAgICBzeXMuX19z
dGRlcnJfXyA9IHN5cy5zdGRlcnIgPSBfcmVvcGVuX3N0ZGlvKHN5cy5zdGRlcnIsICd3YicpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbXBhdC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvY29tcGF0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTYwZmJlYzM5
NzU1NTc0N2ZjMTRhM2FhZTIzODY4NjY4NzhjMTgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY29tcGF0LnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMzIyICswLDAgQEAKLSIiIgotcHl0aG9uIHZlcnNpb24gY29tcGF0aWJp
bGl0eSBjb2RlCi0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGNvZGVjcwotaW1wb3J0IGZ1bmN0b29s
cwotaW1wb3J0IGluc3BlY3QKLWltcG9ydCByZQotaW1wb3J0IHN5cwotCi1pbXBvcnQgcHkKLQot
aW1wb3J0IF9weXRlc3QKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgVEVTVF9PVVRDT01F
Ci0KLXRyeToKLSAgICBpbXBvcnQgZW51bQotZXhjZXB0IEltcG9ydEVycm9yOiAgIyBwcmFnbWE6
IG5vIGNvdmVyCi0gICAgIyBPbmx5IGF2YWlsYWJsZSBpbiBQeXRob24gMy40KyBvciBhcyBhIGJh
Y2twb3J0Ci0gICAgZW51bSA9IE5vbmUKLQotCi1fUFkzID0gc3lzLnZlcnNpb25faW5mbyA+ICgz
LCAwKQotX1BZMiA9IG5vdCBfUFkzCi0KLQotaWYgX1BZMzoKLSAgICBmcm9tIGluc3BlY3QgaW1w
b3J0IHNpZ25hdHVyZSwgUGFyYW1ldGVyIGFzIFBhcmFtZXRlcgotZWxzZToKLSAgICBmcm9tIGZ1
bmNzaWdzIGltcG9ydCBzaWduYXR1cmUsIFBhcmFtZXRlciBhcyBQYXJhbWV0ZXIKLQotCi1Ob25l
VHlwZSA9IHR5cGUoTm9uZSkKLU5PVFNFVCA9IG9iamVjdCgpCi0KLVBZMzUgPSBzeXMudmVyc2lv
bl9pbmZvWzoyXSA+PSAoMywgNSkKLVBZMzYgPSBzeXMudmVyc2lvbl9pbmZvWzoyXSA+PSAoMywg
NikKLU1PRFVMRV9OT1RfRk9VTkRfRVJST1IgPSAnTW9kdWxlTm90Rm91bmRFcnJvcicgaWYgUFkz
NiBlbHNlICdJbXBvcnRFcnJvcicKLQotCi1kZWYgX2Zvcm1hdF9hcmdzKGZ1bmMpOgotICAgIHJl
dHVybiBzdHIoc2lnbmF0dXJlKGZ1bmMpKQotCi0KLWlzZnVuY3Rpb24gPSBpbnNwZWN0LmlzZnVu
Y3Rpb24KLWlzY2xhc3MgPSBpbnNwZWN0LmlzY2xhc3MKLSMgdXNlZCB0byB3b3JrIGFyb3VuZCBh
IHB5dGhvbjIgZXhjZXB0aW9uIGluZm8gbGVhawotZXhjX2NsZWFyID0gZ2V0YXR0cihzeXMsICdl
eGNfY2xlYXInLCBsYW1iZGE6IE5vbmUpCi0jIFRoZSB0eXBlIG9mIHJlLmNvbXBpbGUgb2JqZWN0
cyBpcyBub3QgZXhwb3NlZCBpbiBQeXRob24uCi1SRUdFWF9UWVBFID0gdHlwZShyZS5jb21waWxl
KCcnKSkKLQotCi1kZWYgaXNfZ2VuZXJhdG9yKGZ1bmMpOgotICAgIGdlbmZ1bmMgPSBpbnNwZWN0
LmlzZ2VuZXJhdG9yZnVuY3Rpb24oZnVuYykKLSAgICByZXR1cm4gZ2VuZnVuYyBhbmQgbm90IGlz
Y29yb3V0aW5lZnVuY3Rpb24oZnVuYykKLQotCi1kZWYgaXNjb3JvdXRpbmVmdW5jdGlvbihmdW5j
KToKLSAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBmdW5jIGlzIGEgZGVjb3JhdGVkIGNvcm91dGluZSBm
dW5jdGlvbi4KLQotICAgIE5vdGU6IGNvcGllZCBhbmQgbW9kaWZpZWQgZnJvbSBQeXRob24gMy41
J3MgYnVpbHRpbiBjb3Vyb3V0aW5lcy5weSB0byBhdm9pZCBpbXBvcnQgYXN5bmNpbyBkaXJlY3Rs
eSwKLSAgICB3aGljaCBpbiB0dXJucyBhbHNvIGluaXRpYWxpemVzIHRoZSAibG9nZ2luZyIgbW9k
dWxlIGFzIHNpZGUtZWZmZWN0IChzZWUgaXNzdWUgIzgpLgotICAgICIiIgotICAgIHJldHVybiAo
Z2V0YXR0cihmdW5jLCAnX2lzX2Nvcm91dGluZScsIEZhbHNlKSBvcgotICAgICAgICAgICAgKGhh
c2F0dHIoaW5zcGVjdCwgJ2lzY29yb3V0aW5lZnVuY3Rpb24nKSBhbmQgaW5zcGVjdC5pc2Nvcm91
dGluZWZ1bmN0aW9uKGZ1bmMpKSkKLQotCi1kZWYgZ2V0bG9jYXRpb24oZnVuY3Rpb24sIGN1cmRp
cik6Ci0gICAgZm4gPSBweS5wYXRoLmxvY2FsKGluc3BlY3QuZ2V0ZmlsZShmdW5jdGlvbikpCi0g
ICAgbGluZW5vID0gcHkuYnVpbHRpbi5fZ2V0Y29kZShmdW5jdGlvbikuY29fZmlyc3RsaW5lbm8K
LSAgICBpZiBmbi5yZWx0byhjdXJkaXIpOgotICAgICAgICBmbiA9IGZuLnJlbHRvKGN1cmRpcikK
LSAgICByZXR1cm4gIiVzOiVkIiAlIChmbiwgbGluZW5vICsgMSkKLQotCi1kZWYgbnVtX21vY2tf
cGF0Y2hfYXJncyhmdW5jdGlvbik6Ci0gICAgIiIiIHJldHVybiBudW1iZXIgb2YgYXJndW1lbnRz
IHVzZWQgdXAgYnkgbW9jayBhcmd1bWVudHMgKGlmIGFueSkgIiIiCi0gICAgcGF0Y2hpbmdzID0g
Z2V0YXR0cihmdW5jdGlvbiwgInBhdGNoaW5ncyIsIE5vbmUpCi0gICAgaWYgbm90IHBhdGNoaW5n
czoKLSAgICAgICAgcmV0dXJuIDAKLSAgICBtb2NrID0gc3lzLm1vZHVsZXMuZ2V0KCJtb2NrIiwg
c3lzLm1vZHVsZXMuZ2V0KCJ1bml0dGVzdC5tb2NrIiwgTm9uZSkpCi0gICAgaWYgbW9jayBpcyBu
b3QgTm9uZToKLSAgICAgICAgcmV0dXJuIGxlbihbcCBmb3IgcCBpbiBwYXRjaGluZ3MKLSAgICAg
ICAgICAgICAgICAgICAgaWYgbm90IHAuYXR0cmlidXRlX25hbWUgYW5kIHAubmV3IGlzIG1vY2su
REVGQVVMVF0pCi0gICAgcmV0dXJuIGxlbihwYXRjaGluZ3MpCi0KLQotZGVmIGdldGZ1bmNhcmdu
YW1lcyhmdW5jdGlvbiwgaXNfbWV0aG9kPUZhbHNlLCBjbHM9Tm9uZSk6Ci0gICAgIiIiUmV0dXJu
cyB0aGUgbmFtZXMgb2YgYSBmdW5jdGlvbidzIG1hbmRhdG9yeSBhcmd1bWVudHMuCi0KLSAgICBU
aGlzIHNob3VsZCByZXR1cm4gdGhlIG5hbWVzIG9mIGFsbCBmdW5jdGlvbiBhcmd1bWVudHMgdGhh
dDoKLSAgICAgICAgKiBBcmVuJ3QgYm91bmQgdG8gYW4gaW5zdGFuY2Ugb3IgdHlwZSBhcyBpbiBp
bnN0YW5jZSBvciBjbGFzcyBtZXRob2RzLgotICAgICAgICAqIERvbid0IGhhdmUgZGVmYXVsdCB2
YWx1ZXMuCi0gICAgICAgICogQXJlbid0IGJvdW5kIHdpdGggZnVuY3Rvb2xzLnBhcnRpYWwuCi0g
ICAgICAgICogQXJlbid0IHJlcGxhY2VkIHdpdGggbW9ja3MuCi0KLSAgICBUaGUgaXNfbWV0aG9k
IGFuZCBjbHMgYXJndW1lbnRzIGluZGljYXRlIHRoYXQgdGhlIGZ1bmN0aW9uIHNob3VsZAotICAg
IGJlIHRyZWF0ZWQgYXMgYSBib3VuZCBtZXRob2QgZXZlbiB0aG91Z2ggaXQncyBub3QgdW5sZXNz
LCBvbmx5IGluCi0gICAgdGhlIGNhc2Ugb2YgY2xzLCB0aGUgZnVuY3Rpb24gaXMgYSBzdGF0aWMg
bWV0aG9kLgotCi0gICAgQFJvbm55UGZhbm5zY2htaWR0OiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBi
ZSByZWZhY3RvcmVkIHdoZW4gd2UKLSAgICByZXZpc2l0IGZpeHR1cmVzLiBUaGUgZml4dHVyZSBt
ZWNoYW5pc20gc2hvdWxkIGFzayB0aGUgbm9kZSBmb3IKLSAgICB0aGUgZml4dHVyZSBuYW1lcywg
YW5kIG5vdCB0cnkgdG8gb2J0YWluIGRpcmVjdGx5IGZyb20gdGhlCi0gICAgZnVuY3Rpb24gb2Jq
ZWN0IHdlbGwgYWZ0ZXIgY29sbGVjdGlvbiBoYXMgb2NjdXJyZWQuCi0KLSAgICAiIiIKLSAgICAj
IFRoZSBwYXJhbWV0ZXJzIGF0dHJpYnV0ZSBvZiBhIFNpZ25hdHVyZSBvYmplY3QgY29udGFpbnMg
YW4KLSAgICAjIG9yZGVyZWQgbWFwcGluZyBvZiBwYXJhbWV0ZXIgbmFtZXMgdG8gUGFyYW1ldGVy
IGluc3RhbmNlcy4gIFRoaXMKLSAgICAjIGNyZWF0ZXMgYSB0dXBsZSBvZiB0aGUgbmFtZXMgb2Yg
dGhlIHBhcmFtZXRlcnMgdGhhdCBkb24ndCBoYXZlCi0gICAgIyBkZWZhdWx0cy4KLSAgICBhcmdf
bmFtZXMgPSB0dXBsZShwLm5hbWUgZm9yIHAgaW4gc2lnbmF0dXJlKGZ1bmN0aW9uKS5wYXJhbWV0
ZXJzLnZhbHVlcygpCi0gICAgICAgICAgICAgICAgICAgICAgaWYgKHAua2luZCBpcyBQYXJhbWV0
ZXIuUE9TSVRJT05BTF9PUl9LRVlXT1JEIG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHAu
a2luZCBpcyBQYXJhbWV0ZXIuS0VZV09SRF9PTkxZKSBhbmQKLSAgICAgICAgICAgICAgICAgICAg
ICBwLmRlZmF1bHQgaXMgUGFyYW1ldGVyLmVtcHR5KQotICAgICMgSWYgdGhpcyBmdW5jdGlvbiBz
aG91bGQgYmUgdHJlYXRlZCBhcyBhIGJvdW5kIG1ldGhvZCBldmVuIHRob3VnaAotICAgICMgaXQn
cyBwYXNzZWQgYXMgYW4gdW5ib3VuZCBtZXRob2Qgb3IgZnVuY3Rpb24sIHJlbW92ZSB0aGUgZmly
c3QKLSAgICAjIHBhcmFtZXRlciBuYW1lLgotICAgIGlmIChpc19tZXRob2Qgb3IKLSAgICAgICAg
KGNscyBhbmQgbm90IGlzaW5zdGFuY2UoY2xzLl9fZGljdF9fLmdldChmdW5jdGlvbi5fX25hbWVf
XywgTm9uZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY21ldGhvZCkp
KToKLSAgICAgICAgYXJnX25hbWVzID0gYXJnX25hbWVzWzE6XQotICAgICMgUmVtb3ZlIGFueSBu
YW1lcyB0aGF0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBtb2Nrcy4KLSAgICBpZiBoYXNhdHRyKGZ1
bmN0aW9uLCAiX193cmFwcGVkX18iKToKLSAgICAgICAgYXJnX25hbWVzID0gYXJnX25hbWVzW251
bV9tb2NrX3BhdGNoX2FyZ3MoZnVuY3Rpb24pOl0KLSAgICByZXR1cm4gYXJnX25hbWVzCi0KLQot
aWYgX1BZMzoKLSAgICBTVFJJTkdfVFlQRVMgPSBieXRlcywgc3RyCi0gICAgVU5JQ09ERV9UWVBF
UyA9IHN0ciwKLQotICAgIGlmIFBZMzU6Ci0gICAgICAgIGRlZiBfYnl0ZXNfdG9fYXNjaWkodmFs
KToKLSAgICAgICAgICAgIHJldHVybiB2YWwuZGVjb2RlKCdhc2NpaScsICdiYWNrc2xhc2hyZXBs
YWNlJykKLSAgICBlbHNlOgotICAgICAgICBkZWYgX2J5dGVzX3RvX2FzY2lpKHZhbCk6Ci0gICAg
ICAgICAgICBpZiB2YWw6Ci0gICAgICAgICAgICAgICAgIyBzb3VyY2U6IGh0dHA6Ly9nb28uZ2wv
YkdzbndDCi0gICAgICAgICAgICAgICAgZW5jb2RlZF9ieXRlcywgXyA9IGNvZGVjcy5lc2NhcGVf
ZW5jb2RlKHZhbCkKLSAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2RlZF9ieXRlcy5kZWNvZGUo
J2FzY2lpJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBlbXB0eSBieXRl
cyBjcmFzaGVzIGNvZGVjcy5lc2NhcGVfZW5jb2RlICgjMTA4NykKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gJycKLQotICAgIGRlZiBhc2NpaV9lc2NhcGVkKHZhbCk6Ci0gICAgICAgICIiIklmIHZh
bCBpcyBwdXJlIGFzY2lpLCByZXR1cm5zIGl0IGFzIGEgc3RyKCkuICBPdGhlcndpc2UsIGVzY2Fw
ZXMKLSAgICAgICAgYnl0ZXMgb2JqZWN0cyBpbnRvIGEgc2VxdWVuY2Ugb2YgZXNjYXBlZCBieXRl
czoKLQotICAgICAgICBiJ1x4YzNceGI0XHhjNVx4ZDYnIC0+IHUnXFx4YzNcXHhiNFxceGM1XFx4
ZDYnCi0KLSAgICAgICAgYW5kIGVzY2FwZXMgdW5pY29kZSBvYmplY3RzIGludG8gYSBzZXF1ZW5j
ZSBvZiBlc2NhcGVkIHVuaWNvZGUKLSAgICAgICAgaWRzLCBlLmcuOgotCi0gICAgICAgICc0XFxu
VlxcVTAwMDQzZWZhXFx4MGVNWFdCXFx4MWVcXHUzMDI4XFx1MTVmZFxceGNkXFxVMDAwN2Q5NDQn
Ci0KLSAgICAgICAgbm90ZToKLSAgICAgICAgICAgdGhlIG9idmlvdXMgInYuZGVjb2RlKCd1bmlj
b2RlLWVzY2FwZScpIiB3aWxsIHJldHVybgotICAgICAgICAgICB2YWxpZCB1dGYtOCB1bmljb2Rl
IGlmIGl0IGZpbmRzIHRoZW0gaW4gYnl0ZXMsIGJ1dCB3ZQotICAgICAgICAgICB3YW50IHRvIHJl
dHVybiBlc2NhcGVkIGJ5dGVzIGZvciBhbnkgYnl0ZSwgZXZlbiBpZiB0aGV5IG1hdGNoCi0gICAg
ICAgICAgIGEgdXRmLTggc3RyaW5nLgotCi0gICAgICAgICIiIgotICAgICAgICBpZiBpc2luc3Rh
bmNlKHZhbCwgYnl0ZXMpOgotICAgICAgICAgICAgcmV0dXJuIF9ieXRlc190b19hc2NpaSh2YWwp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gdmFsLmVuY29kZSgndW5pY29kZV9l
c2NhcGUnKS5kZWNvZGUoJ2FzY2lpJykKLWVsc2U6Ci0gICAgU1RSSU5HX1RZUEVTID0gYnl0ZXMs
IHN0ciwgdW5pY29kZQotICAgIFVOSUNPREVfVFlQRVMgPSB1bmljb2RlLAotCi0gICAgZGVmIGFz
Y2lpX2VzY2FwZWQodmFsKToKLSAgICAgICAgIiIiSW4gcHkyIGJ5dGVzIGFuZCBzdHIgYXJlIHRo
ZSBzYW1lIHR5cGUsIHNvIHJldHVybiBpZiBpdCdzIGEgYnl0ZXMKLSAgICAgICAgb2JqZWN0LCBy
ZXR1cm4gaXQgdW5jaGFuZ2VkIGlmIGl0IGlzIGEgZnVsbCBhc2NpaSBzdHJpbmcsCi0gICAgICAg
IG90aGVyd2lzZSBlc2NhcGUgaXQgaW50byBpdHMgYmluYXJ5IGZvcm0uCi0KLSAgICAgICAgSWYg
aXQncyBhIHVuaWNvZGUgc3RyaW5nLCBjaGFuZ2UgdGhlIHVuaWNvZGUgY2hhcmFjdGVycyBpbnRv
Ci0gICAgICAgIHVuaWNvZGUgZXNjYXBlcy4KLQotICAgICAgICAiIiIKLSAgICAgICAgaWYgaXNp
bnN0YW5jZSh2YWwsIGJ5dGVzKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdmFsLmVuY29kZSgnYXNjaWknKQotICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNv
ZGVFcnJvcjoKLSAgICAgICAgICAgICAgICByZXR1cm4gdmFsLmVuY29kZSgnc3RyaW5nLWVzY2Fw
ZScpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gdmFsLmVuY29kZSgndW5pY29k
ZS1lc2NhcGUnKQotCi0KLWRlZiBnZXRfcmVhbF9mdW5jKG9iaik6Ci0gICAgIiIiIGdldHMgdGhl
IHJlYWwgZnVuY3Rpb24gb2JqZWN0IG9mIHRoZSAocG9zc2libHkpIHdyYXBwZWQgb2JqZWN0IGJ5
Ci0gICAgZnVuY3Rvb2xzLndyYXBzIG9yIGZ1bmN0b29scy5wYXJ0aWFsLgotICAgICIiIgotICAg
IHN0YXJ0X29iaiA9IG9iagotICAgIGZvciBpIGluIHJhbmdlKDEwMCk6Ci0gICAgICAgIG5ld19v
YmogPSBnZXRhdHRyKG9iaiwgJ19fd3JhcHBlZF9fJywgTm9uZSkKLSAgICAgICAgaWYgbmV3X29i
aiBpcyBOb25lOgotICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgb2JqID0gbmV3X29iagotICAg
IGVsc2U6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAoImNvdWxkIG5v
dCBmaW5kIHJlYWwgZnVuY3Rpb24gb2Yge3N0YXJ0fSIKLSAgICAgICAgICAgICAiXG5zdG9wcGVk
IGF0IHtjdXJyZW50fSIpLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBzdGFydD1weS5pby5zYWZl
cmVwcihzdGFydF9vYmopLAotICAgICAgICAgICAgICAgIGN1cnJlbnQ9cHkuaW8uc2FmZXJlcHIo
b2JqKSkpCi0gICAgaWYgaXNpbnN0YW5jZShvYmosIGZ1bmN0b29scy5wYXJ0aWFsKToKLSAgICAg
ICAgb2JqID0gb2JqLmZ1bmMKLSAgICByZXR1cm4gb2JqCi0KLQotZGVmIGdldGZzbGluZW5vKG9i
aik6Ci0gICAgIyB4eHggbGV0IGRlY29yYXRvcnMgZXRjIHNwZWNpZnkgYSBzYW5lIG9yZGVyaW5n
Ci0gICAgb2JqID0gZ2V0X3JlYWxfZnVuYyhvYmopCi0gICAgaWYgaGFzYXR0cihvYmosICdwbGFj
ZV9hcycpOgotICAgICAgICBvYmogPSBvYmoucGxhY2VfYXMKLSAgICBmc2xpbmVubyA9IF9weXRl
c3QuX2NvZGUuZ2V0ZnNsaW5lbm8ob2JqKQotICAgIGFzc2VydCBpc2luc3RhbmNlKGZzbGluZW5v
WzFdLCBpbnQpLCBvYmoKLSAgICByZXR1cm4gZnNsaW5lbm8KLQotCi1kZWYgZ2V0aW1mdW5jKGZ1
bmMpOgotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIGZ1bmMuX19mdW5jX18KLSAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIHJldHVybiBmdW5jCi0KLQotZGVmIHNhZmVfZ2V0YXR0
cihvYmplY3QsIG5hbWUsIGRlZmF1bHQpOgotICAgICIiIiBMaWtlIGdldGF0dHIgYnV0IHJldHVy
biBkZWZhdWx0IHVwb24gYW55IEV4Y2VwdGlvbiBvciBhbnkgT3V0Y29tZUV4Y2VwdGlvbi4KLQot
ICAgIEF0dHJpYnV0ZSBhY2Nlc3MgY2FuIHBvdGVudGlhbGx5IGZhaWwgZm9yICdldmlsJyBQeXRo
b24gb2JqZWN0cy4KLSAgICBTZWUgaXNzdWUgIzIxNC4KLSAgICBJdCBjYXRjaGVzIE91dGNvbWVF
eGNlcHRpb24gYmVjYXVzZSBvZiAjMjQ5MCAoaXNzdWUgIzU4MCksIG5ldyBvdXRjb21lcyBhcmUg
ZGVyaXZlZCBmcm9tIEJhc2VFeGNlcHRpb24KLSAgICBpbnN0ZWFkIG9mIEV4Y2VwdGlvbiAoZm9y
IG1vcmUgZGV0YWlscyBjaGVjayAjMjcwNykKLSAgICAiIiIKLSAgICB0cnk6Ci0gICAgICAgIHJl
dHVybiBnZXRhdHRyKG9iamVjdCwgbmFtZSwgZGVmYXVsdCkKLSAgICBleGNlcHQgVEVTVF9PVVRD
T01FOgotICAgICAgICByZXR1cm4gZGVmYXVsdAotCi0KLWRlZiBfaXNfdW5pdHRlc3RfdW5leHBl
Y3RlZF9zdWNjZXNzX2FfZmFpbHVyZSgpOgotICAgICIiIlJldHVybiBpZiB0aGUgdGVzdCBzdWl0
ZSBzaG91bGQgZmFpbCBpZiBhIEBleHBlY3RlZEZhaWx1cmUgdW5pdHRlc3QgdGVzdCBQQVNTRVMu
Ci0KLSAgICBGcm9tIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS91bml0dGVzdC5o
dG1sP2hpZ2hsaWdodD11bml0dGVzdCN1bml0dGVzdC5UZXN0UmVzdWx0Lndhc1N1Y2Nlc3NmdWw6
Ci0gICAgICAgIENoYW5nZWQgaW4gdmVyc2lvbiAzLjQ6IFJldHVybnMgRmFsc2UgaWYgdGhlcmUg
d2VyZSBhbnkKLSAgICAgICAgdW5leHBlY3RlZFN1Y2Nlc3NlcyBmcm9tIHRlc3RzIG1hcmtlZCB3
aXRoIHRoZSBleHBlY3RlZEZhaWx1cmUoKSBkZWNvcmF0b3IuCi0gICAgIiIiCi0gICAgcmV0dXJu
IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDQpCi0KLQotaWYgX1BZMzoKLSAgICBkZWYgc2FmZV9z
dHIodik6Ci0gICAgICAgICIiInJldHVybnMgdiBhcyBzdHJpbmciIiIKLSAgICAgICAgcmV0dXJu
IHN0cih2KQotZWxzZToKLSAgICBkZWYgc2FmZV9zdHIodik6Ci0gICAgICAgICIiInJldHVybnMg
diBhcyBzdHJpbmcsIGNvbnZlcnRpbmcgdG8gYXNjaWkgaWYgbmVjZXNzYXJ5IiIiCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHJldHVybiBzdHIodikKLSAgICAgICAgZXhjZXB0IFVuaWNvZGVF
cnJvcjoKLSAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHYsIHVuaWNvZGUpOgotICAgICAg
ICAgICAgICAgIHYgPSB1bmljb2RlKHYpCi0gICAgICAgICAgICBlcnJvcnMgPSAncmVwbGFjZScK
LSAgICAgICAgICAgIHJldHVybiB2LmVuY29kZSgndXRmLTgnLCBlcnJvcnMpCi0KLQotQ09MTEVD
VF9GQUtFTU9EVUxFX0FUVFJJQlVURVMgPSAoCi0gICAgJ0NvbGxlY3RvcicsCi0gICAgJ01vZHVs
ZScsCi0gICAgJ0dlbmVyYXRvcicsCi0gICAgJ0Z1bmN0aW9uJywKLSAgICAnSW5zdGFuY2UnLAot
ICAgICdTZXNzaW9uJywKLSAgICAnSXRlbScsCi0gICAgJ0NsYXNzJywKLSAgICAnRmlsZScsCi0g
ICAgJ19maWxsZnVuY2FyZ3MnLAotKQotCi0KLWRlZiBfc2V0dXBfY29sbGVjdF9mYWtlbW9kdWxl
KCk6Ci0gICAgZnJvbSB0eXBlcyBpbXBvcnQgTW9kdWxlVHlwZQotICAgIGltcG9ydCBweXRlc3QK
LSAgICBweXRlc3QuY29sbGVjdCA9IE1vZHVsZVR5cGUoJ3B5dGVzdC5jb2xsZWN0JykKLSAgICBw
eXRlc3QuY29sbGVjdC5fX2FsbF9fID0gW10gICMgdXNlZCBmb3Igc2V0bnMKLSAgICBmb3IgYXR0
ciBpbiBDT0xMRUNUX0ZBS0VNT0RVTEVfQVRUUklCVVRFUzoKLSAgICAgICAgc2V0YXR0cihweXRl
c3QuY29sbGVjdCwgYXR0ciwgZ2V0YXR0cihweXRlc3QsIGF0dHIpKQotCi0KLWlmIF9QWTI6Ci0g
ICAgIyBXaXRob3V0IHRoaXMgdGhlIHRlc3RfZHVwZmlsZV9vbl90ZXh0aW8gd2lsbCBmYWlsLCBv
dGhlcndpc2UgQ2FwdHVyZUlPIGNvdWxkIGRpcmVjdGx5IGluaGVyaXQgZnJvbSBTdHJpbmdJTy4K
LSAgICBmcm9tIHB5LmlvIGltcG9ydCBUZXh0SU8KLQotICAgIGNsYXNzIENhcHR1cmVJTyhUZXh0
SU8pOgotCi0gICAgICAgIEBwcm9wZXJ0eQotICAgICAgICBkZWYgZW5jb2Rpbmcoc2VsZik6Ci0g
ICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLCAnX2VuY29kaW5nJywgJ1VURi04JykKLQot
ZWxzZToKLSAgICBpbXBvcnQgaW8KLQotICAgIGNsYXNzIENhcHR1cmVJTyhpby5UZXh0SU9XcmFw
cGVyKToKLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICAgICAgc3VwZXIoQ2Fw
dHVyZUlPLCBzZWxmKS5fX2luaXRfXygKLSAgICAgICAgICAgICAgICBpby5CeXRlc0lPKCksCi0g
ICAgICAgICAgICAgICAgZW5jb2Rpbmc9J1VURi04JywgbmV3bGluZT0nJywgd3JpdGVfdGhyb3Vn
aD1UcnVlLAotICAgICAgICAgICAgKQotCi0gICAgICAgIGRlZiBnZXR2YWx1ZShzZWxmKToKLSAg
ICAgICAgICAgIHJldHVybiBzZWxmLmJ1ZmZlci5nZXR2YWx1ZSgpLmRlY29kZSgnVVRGLTgnKQot
Ci0KLWNsYXNzIEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIob2JqZWN0KToKLSAgICAiIiIgaGVscGVy
IGNsYXNzIHNvIHRoYXQgTWV0YWZ1bmMsIEZ1bmN0aW9uIGFuZCBGaXh0dXJlUmVxdWVzdAotICAg
IGRvbid0IG5lZWQgdG8gZWFjaCBkZWZpbmUgdGhlICJmdW5jYXJnbmFtZXMiIGNvbXBhdGliaWxp
dHkgYXR0cmlidXRlLgotICAgICIiIgotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBmdW5jYXJnbmFt
ZXMoc2VsZik6Ci0gICAgICAgICIiIiBhbGlhcyBhdHRyaWJ1dGUgZm9yIGBgZml4dHVyZW5hbWVz
YGAgZm9yIHByZS0yLjMgY29tcGF0aWJpbGl0eSIiIgotICAgICAgICByZXR1cm4gc2VsZi5maXh0
dXJlbmFtZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY29uZmlnLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9jb25maWcucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQ5OWM4MDc5ZDQxNTk4NmMxOGIxZjNmZjY0ZDIwNzU0MmU1ZTQzMWMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jb25m
aWcucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAwICswLDAgQEAKLSIiIiBjb21tYW5kIGxpbmUg
b3B0aW9ucywgaW5pLWZpbGUgYW5kIGNvbmZ0ZXN0LnB5IHByb2Nlc3NpbmcuICIiIgotZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgotaW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQgc2hsZXgKLWltcG9ydCB0cmFjZWJhY2sKLWltcG9y
dCB0eXBlcwotaW1wb3J0IHdhcm5pbmdzCi0KLWltcG9ydCBzaXgKLWltcG9ydCBweQotIyBET04n
dCBpbXBvcnQgcHl0ZXN0IGhlcmUgYmVjYXVzZSBpdCBjYXVzZXMgaW1wb3J0IGN5Y2xlIHRyb3Vi
bGVzCi1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKLWltcG9ydCBfcHl0ZXN0Ll9jb2RlCi1pbXBvcnQg
X3B5dGVzdC5ob29rc3BlYyAgIyB0aGUgZXh0ZW5zaW9uIHBvaW50IGRlZmluaXRpb25zCi1pbXBv
cnQgX3B5dGVzdC5hc3NlcnRpb24KLWZyb20gcGx1Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBI
b29raW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIKLWZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0
IHNhZmVfc3RyCi0KLWhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoInB5dGVzdCIpCi1ob29rc3Bl
YyA9IEhvb2tzcGVjTWFya2VyKCJweXRlc3QiKQotCi0jIHB5dGVzdCBzdGFydHVwCi0jCi0KLQot
Y2xhc3MgQ29uZnRlc3RJbXBvcnRGYWlsdXJlKEV4Y2VwdGlvbik6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBhdGgsIGV4Y2luZm8pOgotICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZiwg
cGF0aCwgZXhjaW5mbykKLSAgICAgICAgc2VsZi5wYXRoID0gcGF0aAotICAgICAgICBzZWxmLmV4
Y2luZm8gPSBleGNpbmZvCi0KLSAgICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICAgICAgZXR5cGUs
IGV2YWx1ZSwgZXRiID0gc2VsZi5leGNpbmZvCi0gICAgICAgIGZvcm1hdHRlZCA9IHRyYWNlYmFj
ay5mb3JtYXRfdGIoZXRiKQotICAgICAgICAjIFRoZSBsZXZlbCBvZiB0aGUgdHJhY2ViYWNrcyB3
ZSB3YW50IHRvIHByaW50IGlzIGhhbmQgY3JhZnRlZCA6KAotICAgICAgICByZXR1cm4gcmVwcihl
dmFsdWUpICsgJ1xuJyArICcnLmpvaW4oZm9ybWF0dGVkWzI6XSkKLQotCi1kZWYgbWFpbihhcmdz
PU5vbmUsIHBsdWdpbnM9Tm9uZSk6Ci0gICAgIiIiIHJldHVybiBleGl0IGNvZGUsIGFmdGVyIHBl
cmZvcm1pbmcgYW4gaW4tcHJvY2VzcyB0ZXN0IHJ1bi4KLQotICAgIDphcmcgYXJnczogbGlzdCBv
ZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgotCi0gICAgOmFyZyBwbHVnaW5zOiBsaXN0IG9mIHBs
dWdpbiBvYmplY3RzIHRvIGJlIGF1dG8tcmVnaXN0ZXJlZCBkdXJpbmcKLSAgICAgICAgICAgICAg
ICAgIGluaXRpYWxpemF0aW9uLgotICAgICIiIgotICAgIHRyeToKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgY29uZmlnID0gX3ByZXBhcmVjb25maWcoYXJncywgcGx1Z2lucykKLSAgICAgICAg
ZXhjZXB0IENvbmZ0ZXN0SW1wb3J0RmFpbHVyZSBhcyBlOgotICAgICAgICAgICAgdHcgPSBweS5p
by5UZXJtaW5hbFdyaXRlcihzeXMuc3RkZXJyKQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gdHJh
Y2ViYWNrLmZvcm1hdF9leGNlcHRpb24oKmUuZXhjaW5mbyk6Ci0gICAgICAgICAgICAgICAgdHcu
bGluZShsaW5lLnJzdHJpcCgpLCByZWQ9VHJ1ZSkKLSAgICAgICAgICAgIHR3LmxpbmUoIkVSUk9S
OiBjb3VsZCBub3QgbG9hZCAlc1xuIiAlIChlLnBhdGgpLCByZWQ9VHJ1ZSkKLSAgICAgICAgICAg
IHJldHVybiA0Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGNvbmZpZy5ob29rLnB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnPWNvbmZpZykK
LSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY29uZmlnLl9lbnN1cmVfdW5j
b25maWd1cmUoKQotICAgIGV4Y2VwdCBVc2FnZUVycm9yIGFzIGU6Ci0gICAgICAgIGZvciBtc2cg
aW4gZS5hcmdzOgotICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRVJST1I6ICVzXG4iICUg
KG1zZywpKQotICAgICAgICByZXR1cm4gNAotCi0KLWNsYXNzIGNtZGxpbmU6ICAjIGNvbXBhdGli
aWxpdHkgbmFtZXNwYWNlCi0gICAgbWFpbiA9IHN0YXRpY21ldGhvZChtYWluKQotCi0KLWNsYXNz
IFVzYWdlRXJyb3IoRXhjZXB0aW9uKToKLSAgICAiIiIgZXJyb3IgaW4gcHl0ZXN0IHVzYWdlIG9y
IGludm9jYXRpb24iIiIKLQotCi1jbGFzcyBQcmludEhlbHAoRXhjZXB0aW9uKToKLSAgICAiIiJS
YWlzZWQgd2hlbiBweXRlc3Qgc2hvdWxkIHByaW50IGl0J3MgaGVscCB0byBza2lwIHRoZSByZXN0
IG9mIHRoZQotICAgIGFyZ3VtZW50IHBhcnNpbmcgYW5kIHZhbGlkYXRpb24uIiIiCi0gICAgcGFz
cwotCi0KLWRlZiBmaWxlbmFtZV9hcmcocGF0aCwgb3B0bmFtZSk6Ci0gICAgIiIiIEFyZ3BhcnNl
IHR5cGUgdmFsaWRhdG9yIGZvciBmaWxlbmFtZSBhcmd1bWVudHMuCi0KLSAgICA6cGF0aDogcGF0
aCBvZiBmaWxlbmFtZQotICAgIDpvcHRuYW1lOiBuYW1lIG9mIHRoZSBvcHRpb24KLSAgICAiIiIK
LSAgICBpZiBvcy5wYXRoLmlzZGlyKHBhdGgpOgotICAgICAgICByYWlzZSBVc2FnZUVycm9yKCJ7
MH0gbXVzdCBiZSBhIGZpbGVuYW1lLCBnaXZlbjogezF9Ii5mb3JtYXQob3B0bmFtZSwgcGF0aCkp
Ci0gICAgcmV0dXJuIHBhdGgKLQotCi1kZWYgZGlyZWN0b3J5X2FyZyhwYXRoLCBvcHRuYW1lKToK
LSAgICAiIiJBcmdwYXJzZSB0eXBlIHZhbGlkYXRvciBmb3IgZGlyZWN0b3J5IGFyZ3VtZW50cy4K
LQotICAgIDpwYXRoOiBwYXRoIG9mIGRpcmVjdG9yeQotICAgIDpvcHRuYW1lOiBuYW1lIG9mIHRo
ZSBvcHRpb24KLSAgICAiIiIKLSAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihwYXRoKToKLSAgICAg
ICAgcmFpc2UgVXNhZ2VFcnJvcigiezB9IG11c3QgYmUgYSBkaXJlY3RvcnksIGdpdmVuOiB7MX0i
LmZvcm1hdChvcHRuYW1lLCBwYXRoKSkKLSAgICByZXR1cm4gcGF0aAotCi0KLWRlZmF1bHRfcGx1
Z2lucyA9ICgKLSAgICAibWFyayBtYWluIHRlcm1pbmFsIHJ1bm5lciBweXRob24gZml4dHVyZXMg
ZGVidWdnaW5nIHVuaXR0ZXN0IGNhcHR1cmUgc2tpcHBpbmcgIgotICAgICJ0bXBkaXIgbW9ua2V5
cGF0Y2ggcmVjd2FybiBwYXN0ZWJpbiBoZWxwY29uZmlnIG5vc2UgYXNzZXJ0aW9uICIKLSAgICAi
anVuaXR4bWwgcmVzdWx0bG9nIGRvY3Rlc3QgY2FjaGVwcm92aWRlciBmcmVlemVfc3VwcG9ydCAi
Ci0gICAgInNldHVwb25seSBzZXR1cHBsYW4gd2FybmluZ3MgbG9nZ2luZyIpLnNwbGl0KCkKLQot
Ci1idWlsdGluX3BsdWdpbnMgPSBzZXQoZGVmYXVsdF9wbHVnaW5zKQotYnVpbHRpbl9wbHVnaW5z
LmFkZCgicHl0ZXN0ZXIiKQotCi0KLWRlZiBnZXRfY29uZmlnKCk6Ci0gICAgIyBzdWJzZXF1ZW50
IGNhbGxzIHRvIG1haW4gd2lsbCBjcmVhdGUgYSBmcmVzaCBpbnN0YW5jZQotICAgIHBsdWdpbm1h
bmFnZXIgPSBQeXRlc3RQbHVnaW5NYW5hZ2VyKCkKLSAgICBjb25maWcgPSBDb25maWcocGx1Z2lu
bWFuYWdlcikKLSAgICBmb3Igc3BlYyBpbiBkZWZhdWx0X3BsdWdpbnM6Ci0gICAgICAgIHBsdWdp
bm1hbmFnZXIuaW1wb3J0X3BsdWdpbihzcGVjKQotICAgIHJldHVybiBjb25maWcKLQotCi1kZWYg
Z2V0X3BsdWdpbl9tYW5hZ2VyKCk6Ci0gICAgIiIiCi0gICAgT2J0YWluIGEgbmV3IGluc3RhbmNl
IG9mIHRoZQotICAgIDpweTpjbGFzczpgX3B5dGVzdC5jb25maWcuUHl0ZXN0UGx1Z2luTWFuYWdl
cmAsIHdpdGggZGVmYXVsdCBwbHVnaW5zCi0gICAgYWxyZWFkeSBsb2FkZWQuCi0KLSAgICBUaGlz
IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGJ5IGludGVncmF0aW9uIHdpdGggb3RoZXIgdG9vbHMsIGxp
a2UgaG9va2luZwotICAgIGludG8gcHl0ZXN0IHRvIHJ1biB0ZXN0cyBpbnRvIGFuIElERS4KLSAg
ICAiIiIKLSAgICByZXR1cm4gZ2V0X2NvbmZpZygpLnBsdWdpbm1hbmFnZXIKLQotCi1kZWYgX3By
ZXBhcmVjb25maWcoYXJncz1Ob25lLCBwbHVnaW5zPU5vbmUpOgotICAgIHdhcm5pbmcgPSBOb25l
Ci0gICAgaWYgYXJncyBpcyBOb25lOgotICAgICAgICBhcmdzID0gc3lzLmFyZ3ZbMTpdCi0gICAg
ZWxpZiBpc2luc3RhbmNlKGFyZ3MsIHB5LnBhdGgubG9jYWwpOgotICAgICAgICBhcmdzID0gW3N0
cihhcmdzKV0KLSAgICBlbGlmIG5vdCBpc2luc3RhbmNlKGFyZ3MsICh0dXBsZSwgbGlzdCkpOgot
ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhcmdzLCBzdHIpOgotICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigibm90IGEgc3RyaW5nIG9yIGFyZ3VtZW50IGxpc3Q6ICVyIiAlIChhcmdzLCkp
Ci0gICAgICAgIGFyZ3MgPSBzaGxleC5zcGxpdChhcmdzLCBwb3NpeD1zeXMucGxhdGZvcm0gIT0g
IndpbjMyIikKLSAgICAgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBkZXByZWNhdGVkCi0gICAgICAg
IHdhcm5pbmcgPSBkZXByZWNhdGVkLk1BSU5fU1RSX0FSR1MKLSAgICBjb25maWcgPSBnZXRfY29u
ZmlnKCkKLSAgICBwbHVnaW5tYW5hZ2VyID0gY29uZmlnLnBsdWdpbm1hbmFnZXIKLSAgICB0cnk6
Ci0gICAgICAgIGlmIHBsdWdpbnM6Ci0gICAgICAgICAgICBmb3IgcGx1Z2luIGluIHBsdWdpbnM6
Ci0gICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShwbHVnaW4sIHNpeC5zdHJpbmdfdHlwZXMp
OgotICAgICAgICAgICAgICAgICAgICBwbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX3BsdWdpbmFyZyhw
bHVnaW4pCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcGx1Z2lu
bWFuYWdlci5yZWdpc3RlcihwbHVnaW4pCi0gICAgICAgIGlmIHdhcm5pbmc6Ci0gICAgICAgICAg
ICBjb25maWcud2FybignQzEnLCB3YXJuaW5nKQotICAgICAgICByZXR1cm4gcGx1Z2lubWFuYWdl
ci5ob29rLnB5dGVzdF9jbWRsaW5lX3BhcnNlKAotICAgICAgICAgICAgcGx1Z2lubWFuYWdlcj1w
bHVnaW5tYW5hZ2VyLCBhcmdzPWFyZ3MpCi0gICAgZXhjZXB0IEJhc2VFeGNlcHRpb246Ci0gICAg
ICAgIGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKCkKLSAgICAgICAgcmFpc2UKLQotCi1jbGFz
cyBQeXRlc3RQbHVnaW5NYW5hZ2VyKFBsdWdpbk1hbmFnZXIpOgotICAgICIiIgotICAgIE92ZXJ3
cml0ZXMgOnB5OmNsYXNzOmBwbHVnZ3kuUGx1Z2luTWFuYWdlciA8cGx1Z2d5LlBsdWdpbk1hbmFn
ZXI+YCB0byBhZGQgcHl0ZXN0LXNwZWNpZmljCi0gICAgZnVuY3Rpb25hbGl0eToKLQotICAgICog
bG9hZGluZyBwbHVnaW5zIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYGBQWVRFU1RfUExVR0lOYGAg
ZW52IHZhcmlhYmxlIGFuZAotICAgICAgYGBweXRlc3RfcGx1Z2luc2BgIGdsb2JhbCB2YXJpYWJs
ZXMgZm91bmQgaW4gcGx1Z2lucyBiZWluZyBsb2FkZWQ7Ci0gICAgKiBgYGNvbmZ0ZXN0LnB5YGAg
bG9hZGluZyBkdXJpbmcgc3RhcnQtdXA7Ci0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
Zik6Ci0gICAgICAgIHN1cGVyKFB5dGVzdFBsdWdpbk1hbmFnZXIsIHNlbGYpLl9faW5pdF9fKCJw
eXRlc3QiLCBpbXBscHJlZml4PSJweXRlc3RfIikKLSAgICAgICAgc2VsZi5fY29uZnRlc3RfcGx1
Z2lucyA9IHNldCgpCi0KLSAgICAgICAgIyBzdGF0ZSByZWxhdGVkIHRvIGxvY2FsIGNvbmZ0ZXN0
IHBsdWdpbnMKLSAgICAgICAgc2VsZi5fcGF0aDJjb25mbW9kcyA9IHt9Ci0gICAgICAgIHNlbGYu
X2NvbmZ0ZXN0cGF0aDJtb2QgPSB7fQotICAgICAgICBzZWxmLl9jb25mY3V0ZGlyID0gTm9uZQot
ICAgICAgICBzZWxmLl9ub2NvbmZ0ZXN0ID0gRmFsc2UKLSAgICAgICAgc2VsZi5fZHVwbGljYXRl
cGF0aHMgPSBzZXQoKQotCi0gICAgICAgIHNlbGYuYWRkX2hvb2tzcGVjcyhfcHl0ZXN0Lmhvb2tz
cGVjKQotICAgICAgICBzZWxmLnJlZ2lzdGVyKHNlbGYpCi0gICAgICAgIGlmIG9zLmVudmlyb24u
Z2V0KCdQWVRFU1RfREVCVUcnKToKLSAgICAgICAgICAgIGVyciA9IHN5cy5zdGRlcnIKLSAgICAg
ICAgICAgIGVuY29kaW5nID0gZ2V0YXR0cihlcnIsICdlbmNvZGluZycsICd1dGY4JykKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBlcnIgPSBweS5pby5kdXBmaWxlKGVyciwgZW5j
b2Rpbmc9ZW5jb2RpbmcpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAg
ICAgICAgIHBhc3MKLSAgICAgICAgICAgIHNlbGYudHJhY2Uucm9vdC5zZXR3cml0ZXIoZXJyLndy
aXRlKQotICAgICAgICAgICAgc2VsZi5lbmFibGVfdHJhY2luZygpCi0KLSAgICAgICAgIyBDb25m
aWcuX2NvbnNpZGVyX2ltcG9ydGhvb2sgd2lsbCBzZXQgYSByZWFsIG9iamVjdCBpZiByZXF1aXJl
ZC4KLSAgICAgICAgc2VsZi5yZXdyaXRlX2hvb2sgPSBfcHl0ZXN0LmFzc2VydGlvbi5EdW1teVJl
d3JpdGVIb29rKCkKLQotICAgIGRlZiBhZGRob29rcyhzZWxmLCBtb2R1bGVfb3JfY2xhc3MpOgot
ICAgICAgICAiIiIKLSAgICAgICAgLi4gZGVwcmVjYXRlZDo6IDIuOAotCi0gICAgICAgIFVzZSA6
cHk6bWV0aDpgcGx1Z2d5LlBsdWdpbk1hbmFnZXIuYWRkX2hvb2tzcGVjcyA8UGx1Z2luTWFuYWdl
ci5hZGRfaG9va3NwZWNzPmAKLSAgICAgICAgaW5zdGVhZC4KLSAgICAgICAgIiIiCi0gICAgICAg
IHdhcm5pbmcgPSBkaWN0KGNvZGU9IkkyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgZnNsb2Nh
dGlvbj1fcHl0ZXN0Ll9jb2RlLmdldGZzbGluZW5vKHN5cy5fZ2V0ZnJhbWUoMSkpLAotICAgICAg
ICAgICAgICAgICAgICAgICBub2RlaWQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZT0idXNlIHBsdWdpbm1hbmFnZXIuYWRkX2hvb2tzcGVjcyBpbnN0ZWFkIG9mICIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVwcmVjYXRlZCBhZGRob29rcygpIG1ldGhvZC4i
KQotICAgICAgICBzZWxmLl93YXJuKHdhcm5pbmcpCi0gICAgICAgIHJldHVybiBzZWxmLmFkZF9o
b29rc3BlY3MobW9kdWxlX29yX2NsYXNzKQotCi0gICAgZGVmIHBhcnNlX2hvb2tpbXBsX29wdHMo
c2VsZiwgcGx1Z2luLCBuYW1lKToKLSAgICAgICAgIyBweXRlc3QgaG9va3MgYXJlIGFsd2F5cyBw
cmVmaXhlZCB3aXRoIHB5dGVzdF8KLSAgICAgICAgIyBzbyB3ZSBhdm9pZCBhY2Nlc3NpbmcgcG9z
c2libHkgbm9uLXJlYWRhYmxlIGF0dHJpYnV0ZXMKLSAgICAgICAgIyAoc2VlIGlzc3VlICMxMDcz
KQotICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCJweXRlc3RfIik6Ci0gICAgICAgICAg
ICByZXR1cm4KLSAgICAgICAgIyBpZ25vcmUgc29tZSBoaXN0b3JpYyBzcGVjaWFsIG5hbWVzIHdo
aWNoIGNhbiBub3QgYmUgaG9va3MgYW55d2F5Ci0gICAgICAgIGlmIG5hbWUgPT0gInB5dGVzdF9w
bHVnaW5zIiBvciBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF9mdW5jYXJnX18iKToKLSAgICAgICAg
ICAgIHJldHVybgotCi0gICAgICAgIG1ldGhvZCA9IGdldGF0dHIocGx1Z2luLCBuYW1lKQotICAg
ICAgICBvcHRzID0gc3VwZXIoUHl0ZXN0UGx1Z2luTWFuYWdlciwgc2VsZikucGFyc2VfaG9va2lt
cGxfb3B0cyhwbHVnaW4sIG5hbWUpCi0gICAgICAgIGlmIG9wdHMgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBmb3IgbmFtZSBpbiAoInRyeWZpcnN0IiwgInRyeWxhc3QiLCAib3B0aW9uYWxob29r
IiwgImhvb2t3cmFwcGVyIik6Ci0gICAgICAgICAgICAgICAgb3B0cy5zZXRkZWZhdWx0KG5hbWUs
IGhhc2F0dHIobWV0aG9kLCBuYW1lKSkKLSAgICAgICAgcmV0dXJuIG9wdHMKLQotICAgIGRlZiBw
YXJzZV9ob29rc3BlY19vcHRzKHNlbGYsIG1vZHVsZV9vcl9jbGFzcywgbmFtZSk6Ci0gICAgICAg
IG9wdHMgPSBzdXBlcihQeXRlc3RQbHVnaW5NYW5hZ2VyLCBzZWxmKS5wYXJzZV9ob29rc3BlY19v
cHRzKAotICAgICAgICAgICAgbW9kdWxlX29yX2NsYXNzLCBuYW1lKQotICAgICAgICBpZiBvcHRz
IGlzIE5vbmU6Ci0gICAgICAgICAgICBtZXRob2QgPSBnZXRhdHRyKG1vZHVsZV9vcl9jbGFzcywg
bmFtZSkKLSAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgicHl0ZXN0XyIpOgotICAgICAg
ICAgICAgICAgIG9wdHMgPSB7ImZpcnN0cmVzdWx0IjogaGFzYXR0cihtZXRob2QsICJmaXJzdHJl
c3VsdCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgImhpc3RvcmljIjogaGFzYXR0cihtZXRo
b2QsICJoaXN0b3JpYyIpfQotICAgICAgICByZXR1cm4gb3B0cwotCi0gICAgZGVmIHJlZ2lzdGVy
KHNlbGYsIHBsdWdpbiwgbmFtZT1Ob25lKToKLSAgICAgICAgaWYgbmFtZSA9PSAncHl0ZXN0X2Nh
dGNobG9nJzoKLSAgICAgICAgICAgIHNlbGYuX3dhcm4oJ3B5dGVzdC1jYXRjaGxvZyBwbHVnaW4g
aGFzIGJlZW4gbWVyZ2VkIGludG8gdGhlIGNvcmUsICcKLSAgICAgICAgICAgICAgICAgICAgICAg
J3BsZWFzZSByZW1vdmUgaXQgZnJvbSB5b3VyIHJlcXVpcmVtZW50cy4nKQotICAgICAgICAgICAg
cmV0dXJuCi0gICAgICAgIHJldCA9IHN1cGVyKFB5dGVzdFBsdWdpbk1hbmFnZXIsIHNlbGYpLnJl
Z2lzdGVyKHBsdWdpbiwgbmFtZSkKLSAgICAgICAgaWYgcmV0OgotICAgICAgICAgICAgc2VsZi5o
b29rLnB5dGVzdF9wbHVnaW5fcmVnaXN0ZXJlZC5jYWxsX2hpc3RvcmljKAotICAgICAgICAgICAg
ICAgIGt3YXJncz1kaWN0KHBsdWdpbj1wbHVnaW4sIG1hbmFnZXI9c2VsZikpCi0KLSAgICAgICAg
ICAgIGlmIGlzaW5zdGFuY2UocGx1Z2luLCB0eXBlcy5Nb2R1bGVUeXBlKToKLSAgICAgICAgICAg
ICAgICBzZWxmLmNvbnNpZGVyX21vZHVsZShwbHVnaW4pCi0gICAgICAgIHJldHVybiByZXQKLQot
ICAgIGRlZiBnZXRwbHVnaW4oc2VsZiwgbmFtZSk6Ci0gICAgICAgICMgc3VwcG9ydCBkZXByZWNh
dGVkIG5hbWluZyBiZWNhdXNlIHBsdWdpbnMgKHhkaXN0IGUuZy4pIHVzZSBpdAotICAgICAgICBy
ZXR1cm4gc2VsZi5nZXRfcGx1Z2luKG5hbWUpCi0KLSAgICBkZWYgaGFzcGx1Z2luKHNlbGYsIG5h
bWUpOgotICAgICAgICAiIiJSZXR1cm4gVHJ1ZSBpZiB0aGUgcGx1Z2luIHdpdGggdGhlIGdpdmVu
IG5hbWUgaXMgcmVnaXN0ZXJlZC4iIiIKLSAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5nZXRfcGx1
Z2luKG5hbWUpKQotCi0gICAgZGVmIHB5dGVzdF9jb25maWd1cmUoc2VsZiwgY29uZmlnKToKLSAg
ICAgICAgIyBYWFggbm93IHRoYXQgdGhlIHBsdWdpbm1hbmFnZXIgZXhwb3NlcyBob29raW1wbCh0
cnlmaXJzdC4uLikKLSAgICAgICAgIyB3ZSBzaG91bGQgcmVtb3ZlIHRyeWZpcnN0L3RyeWxhc3Qg
YXMgbWFya2VycwotICAgICAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgibWFya2VycyIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cnlmaXJzdDogbWFyayBhIGhvb2sgaW1w
bGVtZW50YXRpb24gZnVuY3Rpb24gc3VjaCB0aGF0IHRoZSAiCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJwbHVnaW4gbWFjaGluZXJ5IHdpbGwgdHJ5IHRvIGNhbGwgaXQgZmlyc3Qv
YXMgZWFybHkgYXMgcG9zc2libGUuIikKLSAgICAgICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUo
Im1hcmtlcnMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJ5bGFzdDogbWFy
ayBhIGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24gc3VjaCB0aGF0IHRoZSAiCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJwbHVnaW4gbWFjaGluZXJ5IHdpbGwgdHJ5IHRvIGNh
bGwgaXQgbGFzdC9hcyBsYXRlIGFzIHBvc3NpYmxlLiIpCi0KLSAgICBkZWYgX3dhcm4oc2VsZiwg
bWVzc2FnZSk6Ci0gICAgICAgIGt3YXJncyA9IG1lc3NhZ2UgaWYgaXNpbnN0YW5jZShtZXNzYWdl
LCBkaWN0KSBlbHNlIHsKLSAgICAgICAgICAgICdjb2RlJzogJ0kxJywKLSAgICAgICAgICAgICdt
ZXNzYWdlJzogbWVzc2FnZSwKLSAgICAgICAgICAgICdmc2xvY2F0aW9uJzogTm9uZSwKLSAgICAg
ICAgICAgICdub2RlaWQnOiBOb25lLAotICAgICAgICB9Ci0gICAgICAgIHNlbGYuaG9vay5weXRl
c3RfbG9nd2FybmluZy5jYWxsX2hpc3RvcmljKGt3YXJncz1rd2FyZ3MpCi0KLSAgICAjCi0gICAg
IyBpbnRlcm5hbCBBUEkgZm9yIGxvY2FsIGNvbmZ0ZXN0IHBsdWdpbiBoYW5kbGluZwotICAgICMK
LSAgICBkZWYgX3NldF9pbml0aWFsX2NvbmZ0ZXN0cyhzZWxmLCBuYW1lc3BhY2UpOgotICAgICAg
ICAiIiIgbG9hZCBpbml0aWFsIGNvbmZ0ZXN0IGZpbGVzIGdpdmVuIGEgcHJlcGFyc2VkICJuYW1l
c3BhY2UiLgotICAgICAgICAgICAgQXMgY29uZnRlc3QgZmlsZXMgbWF5IGFkZCB0aGVpciBvd24g
Y29tbWFuZCBsaW5lIG9wdGlvbnMKLSAgICAgICAgICAgIHdoaWNoIGhhdmUgYXJndW1lbnRzICgn
LS1teS1vcHQgc29tZXBhdGgnKSB3ZSBtaWdodCBnZXQgc29tZQotICAgICAgICAgICAgZmFsc2Ug
cG9zaXRpdmVzLiAgQWxsIGJ1aWx0aW4gYW5kIDNyZCBwYXJ0eSBwbHVnaW5zIHdpbGwgaGF2ZQot
ICAgICAgICAgICAgYmVlbiBsb2FkZWQsIGhvd2V2ZXIsIHNvIGNvbW1vbiBvcHRpb25zIHdpbGwg
bm90IGNvbmZ1c2Ugb3VyIGxvZ2ljCi0gICAgICAgICAgICBoZXJlLgotICAgICAgICAiIiIKLSAg
ICAgICAgY3VycmVudCA9IHB5LnBhdGgubG9jYWwoKQotICAgICAgICBzZWxmLl9jb25mY3V0ZGly
ID0gY3VycmVudC5qb2luKG5hbWVzcGFjZS5jb25mY3V0ZGlyLCBhYnM9VHJ1ZSkgXAotICAgICAg
ICAgICAgaWYgbmFtZXNwYWNlLmNvbmZjdXRkaXIgZWxzZSBOb25lCi0gICAgICAgIHNlbGYuX25v
Y29uZnRlc3QgPSBuYW1lc3BhY2Uubm9jb25mdGVzdAotICAgICAgICB0ZXN0cGF0aHMgPSBuYW1l
c3BhY2UuZmlsZV9vcl9kaXIKLSAgICAgICAgZm91bmRhbmNob3IgPSBGYWxzZQotICAgICAgICBm
b3IgcGF0aCBpbiB0ZXN0cGF0aHM6Ci0gICAgICAgICAgICBwYXRoID0gc3RyKHBhdGgpCi0gICAg
ICAgICAgICAjIHJlbW92ZSBub2RlLWlkIHN5bnRheAotICAgICAgICAgICAgaSA9IHBhdGguZmlu
ZCgiOjoiKQotICAgICAgICAgICAgaWYgaSAhPSAtMToKLSAgICAgICAgICAgICAgICBwYXRoID0g
cGF0aFs6aV0KLSAgICAgICAgICAgIGFuY2hvciA9IGN1cnJlbnQuam9pbihwYXRoLCBhYnM9MSkK
LSAgICAgICAgICAgIGlmIGV4aXN0cyhhbmNob3IpOiAgIyB3ZSBmb3VuZCBzb21lIGZpbGUgb2Jq
ZWN0Ci0gICAgICAgICAgICAgICAgc2VsZi5fdHJ5X2xvYWRfY29uZnRlc3QoYW5jaG9yKQotICAg
ICAgICAgICAgICAgIGZvdW5kYW5jaG9yID0gVHJ1ZQotICAgICAgICBpZiBub3QgZm91bmRhbmNo
b3I6Ci0gICAgICAgICAgICBzZWxmLl90cnlfbG9hZF9jb25mdGVzdChjdXJyZW50KQotCi0gICAg
ZGVmIF90cnlfbG9hZF9jb25mdGVzdChzZWxmLCBhbmNob3IpOgotICAgICAgICBzZWxmLl9nZXRj
b25mdGVzdG1vZHVsZXMoYW5jaG9yKQotICAgICAgICAjIGxldCdzIGFsc28gY29uc2lkZXIgdGVz
dCogc3ViZGlycwotICAgICAgICBpZiBhbmNob3IuY2hlY2soZGlyPTEpOgotICAgICAgICAgICAg
Zm9yIHggaW4gYW5jaG9yLmxpc3RkaXIoInRlc3QqIik6Ci0gICAgICAgICAgICAgICAgaWYgeC5j
aGVjayhkaXI9MSk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2dldGNvbmZ0ZXN0bW9kdWxl
cyh4KQotCi0gICAgZGVmIF9nZXRjb25mdGVzdG1vZHVsZXMoc2VsZiwgcGF0aCk6Ci0gICAgICAg
IGlmIHNlbGYuX25vY29uZnRlc3Q6Ci0gICAgICAgICAgICByZXR1cm4gW10KLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGgyY29uZm1vZHNbcGF0aF0KLSAgICAgICAg
ZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgaWYgcGF0aC5pc2ZpbGUoKToKLSAgICAgICAg
ICAgICAgICBjbGlzdCA9IHNlbGYuX2dldGNvbmZ0ZXN0bW9kdWxlcyhwYXRoLmRpcnBhdGgoKSkK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBYWFggdGhlc2UgZGF5cyB3ZSBt
YXkgcmF0aGVyIHdhbnQgdG8gdXNlIGNvbmZpZy5yb290ZGlyCi0gICAgICAgICAgICAgICAgIyBh
bmQgYWxsb3cgdXNlcnMgdG8gb3B0IGludG8gbG9va2luZyBpbnRvIHRoZSByb290ZGlyIHBhcmVu
dAotICAgICAgICAgICAgICAgICMgZGlyZWN0b3JpZXMgaW5zdGVhZCBvZiByZXF1aXJpbmcgdG8g
c3BlY2lmeSBjb25mY3V0ZGlyCi0gICAgICAgICAgICAgICAgY2xpc3QgPSBbXQotICAgICAgICAg
ICAgICAgIGZvciBwYXJlbnQgaW4gcGF0aC5wYXJ0cygpOgotICAgICAgICAgICAgICAgICAgICBp
ZiBzZWxmLl9jb25mY3V0ZGlyIGFuZCBzZWxmLl9jb25mY3V0ZGlyLnJlbHRvKHBhcmVudCk6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICBjb25m
dGVzdHBhdGggPSBwYXJlbnQuam9pbigiY29uZnRlc3QucHkiKQotICAgICAgICAgICAgICAgICAg
ICBpZiBjb25mdGVzdHBhdGguaXNmaWxlKCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBtb2Qg
PSBzZWxmLl9pbXBvcnRjb25mdGVzdChjb25mdGVzdHBhdGgpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjbGlzdC5hcHBlbmQobW9kKQotCi0gICAgICAgICAgICBzZWxmLl9wYXRoMmNvbmZtb2Rz
W3BhdGhdID0gY2xpc3QKLSAgICAgICAgICAgIHJldHVybiBjbGlzdAotCi0gICAgZGVmIF9yZ2V0
X3dpdGhfY29uZm1vZChzZWxmLCBuYW1lLCBwYXRoKToKLSAgICAgICAgbW9kdWxlcyA9IHNlbGYu
X2dldGNvbmZ0ZXN0bW9kdWxlcyhwYXRoKQotICAgICAgICBmb3IgbW9kIGluIHJldmVyc2VkKG1v
ZHVsZXMpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJldHVybiBtb2QsIGdl
dGF0dHIobW9kLCBuYW1lKQotICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIHJhaXNlIEtleUVycm9yKG5hbWUpCi0KLSAg
ICBkZWYgX2ltcG9ydGNvbmZ0ZXN0KHNlbGYsIGNvbmZ0ZXN0cGF0aCk6Ci0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHJldHVybiBzZWxmLl9jb25mdGVzdHBhdGgybW9kW2NvbmZ0ZXN0cGF0aF0K
LSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgcGtncGF0aCA9IGNvbmZ0ZXN0
cGF0aC5weXBrZ3BhdGgoKQotICAgICAgICAgICAgaWYgcGtncGF0aCBpcyBOb25lOgotICAgICAg
ICAgICAgICAgIF9lbnN1cmVfcmVtb3ZlZF9zeXNtb2R1bGUoY29uZnRlc3RwYXRoLnB1cmViYXNl
bmFtZSkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBtb2QgPSBjb25mdGVzdHBh
dGgucHlpbXBvcnQoKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAg
ICAgICByYWlzZSBDb25mdGVzdEltcG9ydEZhaWx1cmUoY29uZnRlc3RwYXRoLCBzeXMuZXhjX2lu
Zm8oKSkKLQotICAgICAgICAgICAgc2VsZi5fY29uZnRlc3RfcGx1Z2lucy5hZGQobW9kKQotICAg
ICAgICAgICAgc2VsZi5fY29uZnRlc3RwYXRoMm1vZFtjb25mdGVzdHBhdGhdID0gbW9kCi0gICAg
ICAgICAgICBkaXJwYXRoID0gY29uZnRlc3RwYXRoLmRpcnBhdGgoKQotICAgICAgICAgICAgaWYg
ZGlycGF0aCBpbiBzZWxmLl9wYXRoMmNvbmZtb2RzOgotICAgICAgICAgICAgICAgIGZvciBwYXRo
LCBtb2RzIGluIHNlbGYuX3BhdGgyY29uZm1vZHMuaXRlbXMoKToKLSAgICAgICAgICAgICAgICAg
ICAgaWYgcGF0aCBhbmQgcGF0aC5yZWx0byhkaXJwYXRoKSBvciBwYXRoID09IGRpcnBhdGg6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbW9kIG5vdCBpbiBtb2RzCi0gICAgICAgICAg
ICAgICAgICAgICAgICBtb2RzLmFwcGVuZChtb2QpCi0gICAgICAgICAgICBzZWxmLnRyYWNlKCJs
b2FkZWQgY29uZnRlc3Rtb2R1bGUgJXIiICUgKG1vZCkpCi0gICAgICAgICAgICBzZWxmLmNvbnNp
ZGVyX2NvbmZ0ZXN0KG1vZCkKLSAgICAgICAgICAgIHJldHVybiBtb2QKLQotICAgICMKLSAgICAj
IEFQSSBmb3IgYm9vdHN0cmFwcGluZyBwbHVnaW4gbG9hZGluZwotICAgICMKLSAgICAjCi0KLSAg
ICBkZWYgY29uc2lkZXJfcHJlcGFyc2Uoc2VsZiwgYXJncyk6Ci0gICAgICAgIGZvciBvcHQxLCBv
cHQyIGluIHppcChhcmdzLCBhcmdzWzE6XSk6Ci0gICAgICAgICAgICBpZiBvcHQxID09ICItcCI6
Ci0gICAgICAgICAgICAgICAgc2VsZi5jb25zaWRlcl9wbHVnaW5hcmcob3B0MikKLQotICAgIGRl
ZiBjb25zaWRlcl9wbHVnaW5hcmcoc2VsZiwgYXJnKToKLSAgICAgICAgaWYgYXJnLnN0YXJ0c3dp
dGgoIm5vOiIpOgotICAgICAgICAgICAgbmFtZSA9IGFyZ1szOl0KLSAgICAgICAgICAgIHNlbGYu
c2V0X2Jsb2NrZWQobmFtZSkKLSAgICAgICAgICAgIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoInB5
dGVzdF8iKToKLSAgICAgICAgICAgICAgICBzZWxmLnNldF9ibG9ja2VkKCJweXRlc3RfIiArIG5h
bWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmltcG9ydF9wbHVnaW4oYXJnKQot
Ci0gICAgZGVmIGNvbnNpZGVyX2NvbmZ0ZXN0KHNlbGYsIGNvbmZ0ZXN0bW9kdWxlKToKLSAgICAg
ICAgc2VsZi5yZWdpc3Rlcihjb25mdGVzdG1vZHVsZSwgbmFtZT1jb25mdGVzdG1vZHVsZS5fX2Zp
bGVfXykKLQotICAgIGRlZiBjb25zaWRlcl9lbnYoc2VsZik6Ci0gICAgICAgIHNlbGYuX2ltcG9y
dF9wbHVnaW5fc3BlY3Mob3MuZW52aXJvbi5nZXQoIlBZVEVTVF9QTFVHSU5TIikpCi0KLSAgICBk
ZWYgY29uc2lkZXJfbW9kdWxlKHNlbGYsIG1vZCk6Ci0gICAgICAgIHNlbGYuX2ltcG9ydF9wbHVn
aW5fc3BlY3MoZ2V0YXR0cihtb2QsICdweXRlc3RfcGx1Z2lucycsIFtdKSkKLQotICAgIGRlZiBf
aW1wb3J0X3BsdWdpbl9zcGVjcyhzZWxmLCBzcGVjKToKLSAgICAgICAgcGx1Z2lucyA9IF9nZXRf
cGx1Z2luX3NwZWNzX2FzX2xpc3Qoc3BlYykKLSAgICAgICAgZm9yIGltcG9ydF9zcGVjIGluIHBs
dWdpbnM6Ci0gICAgICAgICAgICBzZWxmLmltcG9ydF9wbHVnaW4oaW1wb3J0X3NwZWMpCi0KLSAg
ICBkZWYgaW1wb3J0X3BsdWdpbihzZWxmLCBtb2RuYW1lKToKLSAgICAgICAgIyBtb3N0IG9mdGVu
IG1vZG5hbWUgcmVmZXJzIHRvIGJ1aWx0aW4gbW9kdWxlcywgZS5nLiAicHl0ZXN0ZXIiLAotICAg
ICAgICAjICJ0ZXJtaW5hbCIgb3IgImNhcHR1cmUiLiAgVGhvc2UgcGx1Z2lucyBhcmUgcmVnaXN0
ZXJlZCB1bmRlciB0aGVpcgotICAgICAgICAjIGJhc2VuYW1lIGZvciBoaXN0b3JpYyBwdXJwb3Nl
cyBidXQgbXVzdCBiZSBpbXBvcnRlZCB3aXRoIHRoZQotICAgICAgICAjIF9weXRlc3QgcHJlZml4
LgotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtb2RuYW1lLCAoc2l4LnRleHRfdHlwZSwgc3Ry
KSksICJtb2R1bGUgbmFtZSBhcyB0ZXh0IHJlcXVpcmVkLCBnb3QgJXIiICUgbW9kbmFtZQotICAg
ICAgICBtb2RuYW1lID0gc3RyKG1vZG5hbWUpCi0gICAgICAgIGlmIHNlbGYuaXNfYmxvY2tlZCht
b2RuYW1lKSBvciBzZWxmLmdldF9wbHVnaW4obW9kbmFtZSkgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgaWYgbW9kbmFtZSBpbiBidWlsdGluX3BsdWdpbnM6Ci0gICAg
ICAgICAgICBpbXBvcnRzcGVjID0gIl9weXRlc3QuIiArIG1vZG5hbWUKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIGltcG9ydHNwZWMgPSBtb2RuYW1lCi0gICAgICAgIHNlbGYucmV3cml0ZV9o
b29rLm1hcmtfcmV3cml0ZShpbXBvcnRzcGVjKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBf
X2ltcG9ydF9fKGltcG9ydHNwZWMpCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyBlOgot
ICAgICAgICAgICAgbmV3X2V4Y190eXBlID0gSW1wb3J0RXJyb3IKLSAgICAgICAgICAgIG5ld19l
eGNfbWVzc2FnZSA9ICdFcnJvciBpbXBvcnRpbmcgcGx1Z2luICIlcyI6ICVzJyAlIChtb2RuYW1l
LCBzYWZlX3N0cihlLmFyZ3NbMF0pKQotICAgICAgICAgICAgbmV3X2V4YyA9IG5ld19leGNfdHlw
ZShuZXdfZXhjX21lc3NhZ2UpCi0KLSAgICAgICAgICAgIHNpeC5yZXJhaXNlKG5ld19leGNfdHlw
ZSwgbmV3X2V4Yywgc3lzLmV4Y19pbmZvKClbMl0pCi0KLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biBhcyBlOgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgaWYgbm90IGhh
c2F0dHIocHl0ZXN0LCAnc2tpcCcpIG9yIG5vdCBpc2luc3RhbmNlKGUsIHB5dGVzdC5za2lwLkV4
Y2VwdGlvbik6Ci0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgIHNlbGYuX3dhcm4o
InNraXBwZWQgcGx1Z2luICVyOiAlcyIgJSAoKG1vZG5hbWUsIGUubXNnKSkpCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBtb2QgPSBzeXMubW9kdWxlc1tpbXBvcnRzcGVjXQotICAgICAgICAg
ICAgc2VsZi5yZWdpc3Rlcihtb2QsIG1vZG5hbWUpCi0KLQotZGVmIF9nZXRfcGx1Z2luX3NwZWNz
X2FzX2xpc3Qoc3BlY3MpOgotICAgICIiIgotICAgIFBhcnNlcyBhIGxpc3Qgb2YgInBsdWdpbiBz
cGVjcyIgYW5kIHJldHVybnMgYSBsaXN0IG9mIHBsdWdpbiBuYW1lcy4KLQotICAgIFBsdWdpbiBz
cGVjcyBjYW4gYmUgZ2l2ZW4gYXMgYSBsaXN0IG9mIHN0cmluZ3Mgc2VwYXJhdGVkIGJ5ICIsIiBv
ciBhbHJlYWR5IGFzIGEgbGlzdC90dXBsZSBpbgotICAgIHdoaWNoIGNhc2UgaXQgaXMgcmV0dXJu
ZWQgYXMgYSBsaXN0LiBTcGVjcyBjYW4gYWxzbyBiZSBgTm9uZWAgaW4gd2hpY2ggY2FzZSBhbgot
ICAgIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQuCi0gICAgIiIiCi0gICAgaWYgc3BlY3MgaXMgbm90
IE5vbmU6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2Uoc3BlY3MsIHN0cik6Ci0gICAgICAgICAgICBz
cGVjcyA9IHNwZWNzLnNwbGl0KCcsJykgaWYgc3BlY3MgZWxzZSBbXQotICAgICAgICBpZiBub3Qg
aXNpbnN0YW5jZShzcGVjcywgKGxpc3QsIHR1cGxlKSk6Ci0gICAgICAgICAgICByYWlzZSBVc2Fn
ZUVycm9yKCJQbHVnaW4gc3BlY3MgbXVzdCBiZSBhICcsJy1zZXBhcmF0ZWQgc3RyaW5nIG9yIGEg
IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGlzdC90dXBsZSBvZiBzdHJpbmdzIGZv
ciBwbHVnaW4gbmFtZXMuIEdpdmVuOiAlciIgJSBzcGVjcykKLSAgICAgICAgcmV0dXJuIGxpc3Qo
c3BlY3MpCi0gICAgcmV0dXJuIFtdCi0KLQotY2xhc3MgUGFyc2VyOgotICAgICIiIiBQYXJzZXIg
Zm9yIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgYW5kIGluaS1maWxlIHZhbHVlcy4KLQotICAgIDpp
dmFyIGV4dHJhX2luZm86IGRpY3Qgb2YgZ2VuZXJpYyBwYXJhbSAtPiB2YWx1ZSB0byBkaXNwbGF5
IGluIGNhc2UKLSAgICAgICAgdGhlcmUncyBhbiBlcnJvciBwcm9jZXNzaW5nIHRoZSBjb21tYW5k
IGxpbmUgYXJndW1lbnRzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHVzYWdl
PU5vbmUsIHByb2Nlc3NvcHQ9Tm9uZSk6Ci0gICAgICAgIHNlbGYuX2Fub255bW91cyA9IE9wdGlv
bkdyb3VwKCJjdXN0b20gb3B0aW9ucyIsIHBhcnNlcj1zZWxmKQotICAgICAgICBzZWxmLl9ncm91
cHMgPSBbXQotICAgICAgICBzZWxmLl9wcm9jZXNzb3B0ID0gcHJvY2Vzc29wdAotICAgICAgICBz
ZWxmLl91c2FnZSA9IHVzYWdlCi0gICAgICAgIHNlbGYuX2luaWRpY3QgPSB7fQotICAgICAgICBz
ZWxmLl9pbmluYW1lcyA9IFtdCi0gICAgICAgIHNlbGYuZXh0cmFfaW5mbyA9IHt9Ci0KLSAgICBk
ZWYgcHJvY2Vzc29wdGlvbihzZWxmLCBvcHRpb24pOgotICAgICAgICBpZiBzZWxmLl9wcm9jZXNz
b3B0OgotICAgICAgICAgICAgaWYgb3B0aW9uLmRlc3Q6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
cHJvY2Vzc29wdChvcHRpb24pCi0KLSAgICBkZWYgZ2V0Z3JvdXAoc2VsZiwgbmFtZSwgZGVzY3Jp
cHRpb249IiIsIGFmdGVyPU5vbmUpOgotICAgICAgICAiIiIgZ2V0IChvciBjcmVhdGUpIGEgbmFt
ZWQgb3B0aW9uIEdyb3VwLgotCi0gICAgICAgIDpuYW1lOiBuYW1lIG9mIHRoZSBvcHRpb24gZ3Jv
dXAuCi0gICAgICAgIDpkZXNjcmlwdGlvbjogbG9uZyBkZXNjcmlwdGlvbiBmb3IgLS1oZWxwIG91
dHB1dC4KLSAgICAgICAgOmFmdGVyOiBuYW1lIG9mIG90aGVyIGdyb3VwLCB1c2VkIGZvciBvcmRl
cmluZyAtLWhlbHAgb3V0cHV0LgotCi0gICAgICAgIFRoZSByZXR1cm5lZCBncm91cCBvYmplY3Qg
aGFzIGFuIGBgYWRkb3B0aW9uYGAgbWV0aG9kIHdpdGggdGhlIHNhbWUKLSAgICAgICAgc2lnbmF0
dXJlIGFzIDpweTpmdW5jOmBwYXJzZXIuYWRkb3B0aW9uCi0gICAgICAgIDxfcHl0ZXN0LmNvbmZp
Zy5QYXJzZXIuYWRkb3B0aW9uPmAgYnV0IHdpbGwgYmUgc2hvd24gaW4gdGhlCi0gICAgICAgIHJl
c3BlY3RpdmUgZ3JvdXAgaW4gdGhlIG91dHB1dCBvZiBgYHB5dGVzdC4gLS1oZWxwYGAuCi0gICAg
ICAgICIiIgotICAgICAgICBmb3IgZ3JvdXAgaW4gc2VsZi5fZ3JvdXBzOgotICAgICAgICAgICAg
aWYgZ3JvdXAubmFtZSA9PSBuYW1lOgotICAgICAgICAgICAgICAgIHJldHVybiBncm91cAotICAg
ICAgICBncm91cCA9IE9wdGlvbkdyb3VwKG5hbWUsIGRlc2NyaXB0aW9uLCBwYXJzZXI9c2VsZikK
LSAgICAgICAgaSA9IDAKLSAgICAgICAgZm9yIGksIGdycCBpbiBlbnVtZXJhdGUoc2VsZi5fZ3Jv
dXBzKToKLSAgICAgICAgICAgIGlmIGdycC5uYW1lID09IGFmdGVyOgotICAgICAgICAgICAgICAg
IGJyZWFrCi0gICAgICAgIHNlbGYuX2dyb3Vwcy5pbnNlcnQoaSArIDEsIGdyb3VwKQotICAgICAg
ICByZXR1cm4gZ3JvdXAKLQotICAgIGRlZiBhZGRvcHRpb24oc2VsZiwgKm9wdHMsICoqYXR0cnMp
OgotICAgICAgICAiIiIgcmVnaXN0ZXIgYSBjb21tYW5kIGxpbmUgb3B0aW9uLgotCi0gICAgICAg
IDpvcHRzOiBvcHRpb24gbmFtZXMsIGNhbiBiZSBzaG9ydCBvciBsb25nIG9wdGlvbnMuCi0gICAg
ICAgIDphdHRyczogc2FtZSBhdHRyaWJ1dGVzIHdoaWNoIHRoZSBgYGFkZF9vcHRpb24oKWBgIGZ1
bmN0aW9uIG9mIHRoZQotICAgICAgICAgICBgYXJncGFyc2UgbGlicmFyeQotICAgICAgICAgICA8
aHR0cDovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvYXJncGFyc2UuaHRtbD5gXwotICAgICAg
ICAgICBhY2NlcHRzLgotCi0gICAgICAgIEFmdGVyIGNvbW1hbmQgbGluZSBwYXJzaW5nIG9wdGlv
bnMgYXJlIGF2YWlsYWJsZSBvbiB0aGUgcHl0ZXN0IGNvbmZpZwotICAgICAgICBvYmplY3Qgdmlh
IGBgY29uZmlnLm9wdGlvbi5OQU1FYGAgd2hlcmUgYGBOQU1FYGAgaXMgdXN1YWxseSBzZXQKLSAg
ICAgICAgYnkgcGFzc2luZyBhIGBgZGVzdGBgIGF0dHJpYnV0ZSwgZm9yIGV4YW1wbGUKLSAgICAg
ICAgYGBhZGRvcHRpb24oIi0tbG9uZyIsIGRlc3Q9Ik5BTUUiLCAuLi4pYGAuCi0gICAgICAgICIi
IgotICAgICAgICBzZWxmLl9hbm9ueW1vdXMuYWRkb3B0aW9uKCpvcHRzLCAqKmF0dHJzKQotCi0g
ICAgZGVmIHBhcnNlKHNlbGYsIGFyZ3MsIG5hbWVzcGFjZT1Ob25lKToKLSAgICAgICAgZnJvbSBf
cHl0ZXN0Ll9hcmdjb21wbGV0ZSBpbXBvcnQgdHJ5X2FyZ2NvbXBsZXRlCi0gICAgICAgIHNlbGYu
b3B0cGFyc2VyID0gc2VsZi5fZ2V0cGFyc2VyKCkKLSAgICAgICAgdHJ5X2FyZ2NvbXBsZXRlKHNl
bGYub3B0cGFyc2VyKQotICAgICAgICByZXR1cm4gc2VsZi5vcHRwYXJzZXIucGFyc2VfYXJncyhb
c3RyKHgpIGZvciB4IGluIGFyZ3NdLCBuYW1lc3BhY2U9bmFtZXNwYWNlKQotCi0gICAgZGVmIF9n
ZXRwYXJzZXIoc2VsZik6Ci0gICAgICAgIGZyb20gX3B5dGVzdC5fYXJnY29tcGxldGUgaW1wb3J0
IGZpbGVzY29tcGxldGVyCi0gICAgICAgIG9wdHBhcnNlciA9IE15T3B0aW9uUGFyc2VyKHNlbGYs
IHNlbGYuZXh0cmFfaW5mbykKLSAgICAgICAgZ3JvdXBzID0gc2VsZi5fZ3JvdXBzICsgW3NlbGYu
X2Fub255bW91c10KLSAgICAgICAgZm9yIGdyb3VwIGluIGdyb3VwczoKLSAgICAgICAgICAgIGlm
IGdyb3VwLm9wdGlvbnM6Ci0gICAgICAgICAgICAgICAgZGVzYyA9IGdyb3VwLmRlc2NyaXB0aW9u
IG9yIGdyb3VwLm5hbWUKLSAgICAgICAgICAgICAgICBhcmdncm91cCA9IG9wdHBhcnNlci5hZGRf
YXJndW1lbnRfZ3JvdXAoZGVzYykKLSAgICAgICAgICAgICAgICBmb3Igb3B0aW9uIGluIGdyb3Vw
Lm9wdGlvbnM6Ci0gICAgICAgICAgICAgICAgICAgIG4gPSBvcHRpb24ubmFtZXMoKQotICAgICAg
ICAgICAgICAgICAgICBhID0gb3B0aW9uLmF0dHJzKCkKLSAgICAgICAgICAgICAgICAgICAgYXJn
Z3JvdXAuYWRkX2FyZ3VtZW50KCpuLCAqKmEpCi0gICAgICAgICMgYmFzaCBsaWtlIGF1dG9jb21w
bGV0aW9uIGZvciBkaXJzIChhcHBlbmRpbmcgJy8nKQotICAgICAgICBvcHRwYXJzZXIuYWRkX2Fy
Z3VtZW50KEZJTEVfT1JfRElSLCBuYXJncz0nKicpLmNvbXBsZXRlciA9IGZpbGVzY29tcGxldGVy
Ci0gICAgICAgIHJldHVybiBvcHRwYXJzZXIKLQotICAgIGRlZiBwYXJzZV9zZXRvcHRpb24oc2Vs
ZiwgYXJncywgb3B0aW9uLCBuYW1lc3BhY2U9Tm9uZSk6Ci0gICAgICAgIHBhcnNlZG9wdGlvbiA9
IHNlbGYucGFyc2UoYXJncywgbmFtZXNwYWNlPW5hbWVzcGFjZSkKLSAgICAgICAgZm9yIG5hbWUs
IHZhbHVlIGluIHBhcnNlZG9wdGlvbi5fX2RpY3RfXy5pdGVtcygpOgotICAgICAgICAgICAgc2V0
YXR0cihvcHRpb24sIG5hbWUsIHZhbHVlKQotICAgICAgICByZXR1cm4gZ2V0YXR0cihwYXJzZWRv
cHRpb24sIEZJTEVfT1JfRElSKQotCi0gICAgZGVmIHBhcnNlX2tub3duX2FyZ3Moc2VsZiwgYXJn
cywgbmFtZXNwYWNlPU5vbmUpOgotICAgICAgICAiIiJwYXJzZXMgYW5kIHJldHVybnMgYSBuYW1l
c3BhY2Ugb2JqZWN0IHdpdGgga25vd24gYXJndW1lbnRzIGF0IHRoaXMKLSAgICAgICAgcG9pbnQu
Ci0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5wYXJzZV9rbm93bl9hbmRfdW5rbm93
bl9hcmdzKGFyZ3MsIG5hbWVzcGFjZT1uYW1lc3BhY2UpWzBdCi0KLSAgICBkZWYgcGFyc2Vfa25v
d25fYW5kX3Vua25vd25fYXJncyhzZWxmLCBhcmdzLCBuYW1lc3BhY2U9Tm9uZSk6Ci0gICAgICAg
ICIiInBhcnNlcyBhbmQgcmV0dXJucyBhIG5hbWVzcGFjZSBvYmplY3Qgd2l0aCBrbm93biBhcmd1
bWVudHMsIGFuZAotICAgICAgICB0aGUgcmVtYWluaW5nIGFyZ3VtZW50cyB1bmtub3duIGF0IHRo
aXMgcG9pbnQuCi0gICAgICAgICIiIgotICAgICAgICBvcHRwYXJzZXIgPSBzZWxmLl9nZXRwYXJz
ZXIoKQotICAgICAgICBhcmdzID0gW3N0cih4KSBmb3IgeCBpbiBhcmdzXQotICAgICAgICByZXR1
cm4gb3B0cGFyc2VyLnBhcnNlX2tub3duX2FyZ3MoYXJncywgbmFtZXNwYWNlPW5hbWVzcGFjZSkK
LQotICAgIGRlZiBhZGRpbmkoc2VsZiwgbmFtZSwgaGVscCwgdHlwZT1Ob25lLCBkZWZhdWx0PU5v
bmUpOgotICAgICAgICAiIiIgcmVnaXN0ZXIgYW4gaW5pLWZpbGUgb3B0aW9uLgotCi0gICAgICAg
IDpuYW1lOiBuYW1lIG9mIHRoZSBpbmktdmFyaWFibGUKLSAgICAgICAgOnR5cGU6IHR5cGUgb2Yg
dGhlIHZhcmlhYmxlLCBjYW4gYmUgYGBwYXRobGlzdGBgLCBgYGFyZ3NgYCwgYGBsaW5lbGlzdGBg
Ci0gICAgICAgICAgICAgICBvciBgYGJvb2xgYC4KLSAgICAgICAgOmRlZmF1bHQ6IGRlZmF1bHQg
dmFsdWUgaWYgbm8gaW5pLWZpbGUgb3B0aW9uIGV4aXN0cyBidXQgaXMgcXVlcmllZC4KLQotICAg
ICAgICBUaGUgdmFsdWUgb2YgaW5pLXZhcmlhYmxlcyBjYW4gYmUgcmV0cmlldmVkIHZpYSBhIGNh
bGwgdG8KLSAgICAgICAgOnB5OmZ1bmM6YGNvbmZpZy5nZXRpbmkobmFtZSkgPF9weXRlc3QuY29u
ZmlnLkNvbmZpZy5nZXRpbmk+YC4KLSAgICAgICAgIiIiCi0gICAgICAgIGFzc2VydCB0eXBlIGlu
IChOb25lLCAicGF0aGxpc3QiLCAiYXJncyIsICJsaW5lbGlzdCIsICJib29sIikKLSAgICAgICAg
c2VsZi5faW5pZGljdFtuYW1lXSA9IChoZWxwLCB0eXBlLCBkZWZhdWx0KQotICAgICAgICBzZWxm
Ll9pbmluYW1lcy5hcHBlbmQobmFtZSkKLQotCi1jbGFzcyBBcmd1bWVudEVycm9yKEV4Y2VwdGlv
bik6Ci0gICAgIiIiCi0gICAgUmFpc2VkIGlmIGFuIEFyZ3VtZW50IGluc3RhbmNlIGlzIGNyZWF0
ZWQgd2l0aCBpbnZhbGlkIG9yCi0gICAgaW5jb25zaXN0ZW50IGFyZ3VtZW50cy4KLSAgICAiIiIK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2csIG9wdGlvbik6Ci0gICAgICAgIHNlbGYubXNn
ID0gbXNnCi0gICAgICAgIHNlbGYub3B0aW9uX2lkID0gc3RyKG9wdGlvbikKLQotICAgIGRlZiBf
X3N0cl9fKHNlbGYpOgotICAgICAgICBpZiBzZWxmLm9wdGlvbl9pZDoKLSAgICAgICAgICAgIHJl
dHVybiAib3B0aW9uICVzOiAlcyIgJSAoc2VsZi5vcHRpb25faWQsIHNlbGYubXNnKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYubXNnCi0KLQotY2xhc3MgQXJndW1lbnQ6
Ci0gICAgIiIiY2xhc3MgdGhhdCBtaW1pY3MgdGhlIG5lY2Vzc2FyeSBiZWhhdmlvdXIgb2Ygb3B0
cGFyc2UuT3B0aW9uCi0KLSAgICBpdHMgY3VycmVudGx5IGEgbGVhc3QgZWZmb3J0IGltcGxlbWVu
dGF0aW9uCi0gICAgYW5kIGlnbm9yaW5nIGNob2ljZXMgYW5kIGludGVnZXIgcHJlZml4ZXMKLSAg
ICBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvb3B0cGFyc2UuaHRtbCNvcHRwYXJz
ZS1zdGFuZGFyZC1vcHRpb24tdHlwZXMKLSAgICAiIiIKLSAgICBfdHlwX21hcCA9IHsKLSAgICAg
ICAgJ2ludCc6IGludCwKLSAgICAgICAgJ3N0cmluZyc6IHN0ciwKLSAgICAgICAgJ2Zsb2F0Jzog
ZmxvYXQsCi0gICAgICAgICdjb21wbGV4JzogY29tcGxleCwKLSAgICB9Ci0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgKm5hbWVzLCAqKmF0dHJzKToKLSAgICAgICAgIiIic3RvcmUgcGFybXMgaW4g
cHJpdmF0ZSB2YXJzIGZvciB1c2UgaW4gYWRkX2FyZ3VtZW50IiIiCi0gICAgICAgIHNlbGYuX2F0
dHJzID0gYXR0cnMKLSAgICAgICAgc2VsZi5fc2hvcnRfb3B0cyA9IFtdCi0gICAgICAgIHNlbGYu
X2xvbmdfb3B0cyA9IFtdCi0gICAgICAgIHNlbGYuZGVzdCA9IGF0dHJzLmdldCgnZGVzdCcpCi0g
ICAgICAgIGlmICclZGVmYXVsdCcgaW4gKGF0dHJzLmdldCgnaGVscCcpIG9yICcnKToKLSAgICAg
ICAgICAgIHdhcm5pbmdzLndhcm4oCi0gICAgICAgICAgICAgICAgJ3B5dGVzdCBub3cgdXNlcyBh
cmdwYXJzZS4gIiVkZWZhdWx0IiBzaG91bGQgYmUnCi0gICAgICAgICAgICAgICAgJyBjaGFuZ2Vk
IHRvICIlKGRlZmF1bHQpcyIgJywKLSAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcs
Ci0gICAgICAgICAgICAgICAgc3RhY2tsZXZlbD0zKQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICB0eXAgPSBhdHRyc1sndHlwZSddCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAg
ICAgIHBhc3MKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgICMgdGhpcyBtaWdodCByYWlzZSBh
IGtleWVycm9yIGFzIHdlbGwsIGRvbid0IHdhbnQgdG8gY2F0Y2ggdGhhdAotICAgICAgICAgICAg
aWYgaXNpbnN0YW5jZSh0eXAsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAgICAgICAgIGlm
IHR5cCA9PSAnY2hvaWNlJzoKLSAgICAgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigKLSAg
ICAgICAgICAgICAgICAgICAgICAgICd0eXBlIGFyZ3VtZW50IHRvIGFkZG9wdGlvbigpIGlzIGEg
c3RyaW5nICVyLicKLSAgICAgICAgICAgICAgICAgICAgICAgICcgRm9yIHBhcnNlYXJnIHRoaXMg
aXMgb3B0aW9uYWwgYW5kIHdoZW4gc3VwcGxpZWQnCi0gICAgICAgICAgICAgICAgICAgICAgICAn
IHNob3VsZCBiZSBhIHR5cGUuJwotICAgICAgICAgICAgICAgICAgICAgICAgJyAob3B0aW9uczog
JXMpJyAlICh0eXAsIG5hbWVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9u
V2FybmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9MykKLSAgICAgICAg
ICAgICAgICAgICAgIyBhcmdwYXJzZSBleHBlY3RzIGEgdHlwZSBoZXJlIHRha2UgaXQgZnJvbQot
ICAgICAgICAgICAgICAgICAgICAjIHRoZSB0eXBlIG9mIHRoZSBmaXJzdCBlbGVtZW50Ci0gICAg
ICAgICAgICAgICAgICAgIGF0dHJzWyd0eXBlJ10gPSB0eXBlKGF0dHJzWydjaG9pY2VzJ11bMF0p
Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgd2FybmluZ3Mud2Fy
bigKLSAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlIGFyZ3VtZW50IHRvIGFkZG9wdGlvbigp
IGlzIGEgc3RyaW5nICVyLicKLSAgICAgICAgICAgICAgICAgICAgICAgICcgRm9yIHBhcnNlYXJn
IHRoaXMgc2hvdWxkIGJlIGEgdHlwZS4nCi0gICAgICAgICAgICAgICAgICAgICAgICAnIChvcHRp
b25zOiAlcyknICUgKHR5cCwgbmFtZXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgRGVwcmVj
YXRpb25XYXJuaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tsZXZlbD0zKQotICAg
ICAgICAgICAgICAgICAgICBhdHRyc1sndHlwZSddID0gQXJndW1lbnQuX3R5cF9tYXBbdHlwXQot
ICAgICAgICAgICAgICAgICMgdXNlZCBpbiB0ZXN0X3BhcnNlb3B0IC0+IHRlc3RfcGFyc2VfZGVm
YXVsdGdldHRlcgotICAgICAgICAgICAgICAgIHNlbGYudHlwZSA9IGF0dHJzWyd0eXBlJ10KLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi50eXBlID0gdHlwCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgICMgYXR0cmlidXRlIGV4aXN0ZW5jZSBpcyB0ZXN0ZWQgaW4gQ29u
ZmlnLl9wcm9jZXNzb3B0Ci0gICAgICAgICAgICBzZWxmLmRlZmF1bHQgPSBhdHRyc1snZGVmYXVs
dCddCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAg
c2VsZi5fc2V0X29wdF9zdHJpbmdzKG5hbWVzKQotICAgICAgICBpZiBub3Qgc2VsZi5kZXN0Ogot
ICAgICAgICAgICAgaWYgc2VsZi5fbG9uZ19vcHRzOgotICAgICAgICAgICAgICAgIHNlbGYuZGVz
dCA9IHNlbGYuX2xvbmdfb3B0c1swXVsyOl0ucmVwbGFjZSgnLScsICdfJykKLSAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLmRl
c3QgPSBzZWxmLl9zaG9ydF9vcHRzWzBdWzE6XQotICAgICAgICAgICAgICAgIGV4Y2VwdCBJbmRl
eEVycm9yOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBBcmd1bWVudEVycm9yKAotICAgICAg
ICAgICAgICAgICAgICAgICAgJ25lZWQgYSBsb25nIG9yIHNob3J0IG9wdGlvbicsIHNlbGYpCi0K
LSAgICBkZWYgbmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9zaG9ydF9vcHRzICsg
c2VsZi5fbG9uZ19vcHRzCi0KLSAgICBkZWYgYXR0cnMoc2VsZik6Ci0gICAgICAgICMgdXBkYXRl
IGFueSBhdHRyaWJ1dGVzIHNldCBieSBwcm9jZXNzb3B0Ci0gICAgICAgIGF0dHJzID0gJ2RlZmF1
bHQgZGVzdCBoZWxwJy5zcGxpdCgpCi0gICAgICAgIGlmIHNlbGYuZGVzdDoKLSAgICAgICAgICAg
IGF0dHJzLmFwcGVuZChzZWxmLmRlc3QpCi0gICAgICAgIGZvciBhdHRyIGluIGF0dHJzOgotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX2F0dHJzW2F0dHJdID0gZ2V0YXR0
cihzZWxmLCBhdHRyKQotICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAg
ICAgICAgICAgIHBhc3MKLSAgICAgICAgaWYgc2VsZi5fYXR0cnMuZ2V0KCdoZWxwJyk6Ci0gICAg
ICAgICAgICBhID0gc2VsZi5fYXR0cnNbJ2hlbHAnXQotICAgICAgICAgICAgYSA9IGEucmVwbGFj
ZSgnJWRlZmF1bHQnLCAnJShkZWZhdWx0KXMnKQotICAgICAgICAgICAgIyBhID0gYS5yZXBsYWNl
KCclcHJvZycsICclKHByb2cpcycpCi0gICAgICAgICAgICBzZWxmLl9hdHRyc1snaGVscCddID0g
YQotICAgICAgICByZXR1cm4gc2VsZi5fYXR0cnMKLQotICAgIGRlZiBfc2V0X29wdF9zdHJpbmdz
KHNlbGYsIG9wdHMpOgotICAgICAgICAiIiJkaXJlY3RseSBmcm9tIG9wdHBhcnNlCi0KLSAgICAg
ICAgbWlnaHQgbm90IGJlIG5lY2Vzc2FyeSBhcyB0aGlzIGlzIHBhc3NlZCB0byBhcmdwYXJzZSBs
YXRlciBvbiIiIgotICAgICAgICBmb3Igb3B0IGluIG9wdHM6Ci0gICAgICAgICAgICBpZiBsZW4o
b3B0KSA8IDI6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJvcigKLSAgICAgICAg
ICAgICAgICAgICAgImludmFsaWQgb3B0aW9uIHN0cmluZyAlcjogIgotICAgICAgICAgICAgICAg
ICAgICAibXVzdCBiZSBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBsb25nIiAlIG9wdCwgc2VsZikK
LSAgICAgICAgICAgIGVsaWYgbGVuKG9wdCkgPT0gMjoKLSAgICAgICAgICAgICAgICBpZiBub3Qg
KG9wdFswXSA9PSAiLSIgYW5kIG9wdFsxXSAhPSAiLSIpOgotICAgICAgICAgICAgICAgICAgICBy
YWlzZSBBcmd1bWVudEVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgImludmFsaWQgc2hv
cnQgb3B0aW9uIHN0cmluZyAlcjogIgotICAgICAgICAgICAgICAgICAgICAgICAgIm11c3QgYmUg
b2YgdGhlIGZvcm0gLXgsICh4IGFueSBub24tZGFzaCBjaGFyKSIgJSBvcHQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmKQotICAgICAgICAgICAgICAgIHNlbGYuX3Nob3J0X29wdHMuYXBw
ZW5kKG9wdCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgbm90IChvcHRb
MDoyXSA9PSAiLS0iIGFuZCBvcHRbMl0gIT0gIi0iKToKLSAgICAgICAgICAgICAgICAgICAgcmFp
c2UgQXJndW1lbnRFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIGxvbmcg
b3B0aW9uIHN0cmluZyAlcjogIgotICAgICAgICAgICAgICAgICAgICAgICAgIm11c3Qgc3RhcnQg
d2l0aCAtLSwgZm9sbG93ZWQgYnkgbm9uLWRhc2giICUgb3B0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZikKLSAgICAgICAgICAgICAgICBzZWxmLl9sb25nX29wdHMuYXBwZW5kKG9wdCkK
LQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgYXJncyA9IFtdCi0gICAgICAgIGlm
IHNlbGYuX3Nob3J0X29wdHM6Ci0gICAgICAgICAgICBhcmdzICs9IFsnX3Nob3J0X29wdHM6ICcg
KyByZXByKHNlbGYuX3Nob3J0X29wdHMpXQotICAgICAgICBpZiBzZWxmLl9sb25nX29wdHM6Ci0g
ICAgICAgICAgICBhcmdzICs9IFsnX2xvbmdfb3B0czogJyArIHJlcHIoc2VsZi5fbG9uZ19vcHRz
KV0KLSAgICAgICAgYXJncyArPSBbJ2Rlc3Q6ICcgKyByZXByKHNlbGYuZGVzdCldCi0gICAgICAg
IGlmIGhhc2F0dHIoc2VsZiwgJ3R5cGUnKToKLSAgICAgICAgICAgIGFyZ3MgKz0gWyd0eXBlOiAn
ICsgcmVwcihzZWxmLnR5cGUpXQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdkZWZhdWx0Jyk6
Ci0gICAgICAgICAgICBhcmdzICs9IFsnZGVmYXVsdDogJyArIHJlcHIoc2VsZi5kZWZhdWx0KV0K
LSAgICAgICAgcmV0dXJuICdBcmd1bWVudCh7MH0pJy5mb3JtYXQoJywgJy5qb2luKGFyZ3MpKQot
Ci0KLWNsYXNzIE9wdGlvbkdyb3VwOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBkZXNj
cmlwdGlvbj0iIiwgcGFyc2VyPU5vbmUpOgotICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0gICAg
ICAgIHNlbGYuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbgotICAgICAgICBzZWxmLm9wdGlvbnMg
PSBbXQotICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlcgotCi0gICAgZGVmIGFkZG9wdGlvbihz
ZWxmLCAqb3B0bmFtZXMsICoqYXR0cnMpOgotICAgICAgICAiIiIgYWRkIGFuIG9wdGlvbiB0byB0
aGlzIGdyb3VwLgotCi0gICAgICAgIGlmIGEgc2hvcnRlbmVkIHZlcnNpb24gb2YgYSBsb25nIG9w
dGlvbiBpcyBzcGVjaWZpZWQgaXQgd2lsbAotICAgICAgICBiZSBzdXBwcmVzc2VkIGluIHRoZSBo
ZWxwLiBhZGRvcHRpb24oJy0tdHdvd29yZHMnLCAnLS10d28td29yZHMnKQotICAgICAgICByZXN1
bHRzIGluIGhlbHAgc2hvd2luZyAnLS10d28td29yZHMnIG9ubHksIGJ1dCAtLXR3b3dvcmRzIGdl
dHMKLSAgICAgICAgYWNjZXB0ZWQgKiphbmQqKiB0aGUgYXV0b21hdGljIGRlc3RpbmF0aW9uIGlz
IGluIGFyZ3MudHdvd29yZHMKLSAgICAgICAgIiIiCi0gICAgICAgIGNvbmZsaWN0ID0gc2V0KG9w
dG5hbWVzKS5pbnRlcnNlY3Rpb24oCi0gICAgICAgICAgICBuYW1lIGZvciBvcHQgaW4gc2VsZi5v
cHRpb25zIGZvciBuYW1lIGluIG9wdC5uYW1lcygpKQotICAgICAgICBpZiBjb25mbGljdDoKLSAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm9wdGlvbiBuYW1lcyAlcyBhbHJlYWR5IGFkZGVk
IiAlIGNvbmZsaWN0KQotICAgICAgICBvcHRpb24gPSBBcmd1bWVudCgqb3B0bmFtZXMsICoqYXR0
cnMpCi0gICAgICAgIHNlbGYuX2FkZG9wdGlvbl9pbnN0YW5jZShvcHRpb24sIHNob3J0dXBwZXI9
RmFsc2UpCi0KLSAgICBkZWYgX2FkZG9wdGlvbihzZWxmLCAqb3B0bmFtZXMsICoqYXR0cnMpOgot
ICAgICAgICBvcHRpb24gPSBBcmd1bWVudCgqb3B0bmFtZXMsICoqYXR0cnMpCi0gICAgICAgIHNl
bGYuX2FkZG9wdGlvbl9pbnN0YW5jZShvcHRpb24sIHNob3J0dXBwZXI9VHJ1ZSkKLQotICAgIGRl
ZiBfYWRkb3B0aW9uX2luc3RhbmNlKHNlbGYsIG9wdGlvbiwgc2hvcnR1cHBlcj1GYWxzZSk6Ci0g
ICAgICAgIGlmIG5vdCBzaG9ydHVwcGVyOgotICAgICAgICAgICAgZm9yIG9wdCBpbiBvcHRpb24u
X3Nob3J0X29wdHM6Ci0gICAgICAgICAgICAgICAgaWYgb3B0WzBdID09ICctJyBhbmQgb3B0WzFd
LmlzbG93ZXIoKToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibG93ZXJj
YXNlIHNob3J0b3B0aW9ucyByZXNlcnZlZCIpCi0gICAgICAgIGlmIHNlbGYucGFyc2VyOgotICAg
ICAgICAgICAgc2VsZi5wYXJzZXIucHJvY2Vzc29wdGlvbihvcHRpb24pCi0gICAgICAgIHNlbGYu
b3B0aW9ucy5hcHBlbmQob3B0aW9uKQotCi0KLWNsYXNzIE15T3B0aW9uUGFyc2VyKGFyZ3BhcnNl
LkFyZ3VtZW50UGFyc2VyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBleHRyYV9p
bmZvPU5vbmUpOgotICAgICAgICBpZiBub3QgZXh0cmFfaW5mbzoKLSAgICAgICAgICAgIGV4dHJh
X2luZm8gPSB7fQotICAgICAgICBzZWxmLl9wYXJzZXIgPSBwYXJzZXIKLSAgICAgICAgYXJncGFy
c2UuQXJndW1lbnRQYXJzZXIuX19pbml0X18oc2VsZiwgdXNhZ2U9cGFyc2VyLl91c2FnZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX2hlbHA9RmFsc2UsIGZv
cm1hdHRlcl9jbGFzcz1Ecm9wU2hvcnRlckxvbmdIZWxwRm9ybWF0dGVyKQotICAgICAgICAjIGV4
dHJhX2luZm8gaXMgYSBkaWN0IG9mIChwYXJhbSAtPiB2YWx1ZSkgdG8gZGlzcGxheSBpZiB0aGVy
ZSdzCi0gICAgICAgICMgYW4gdXNhZ2UgZXJyb3IgdG8gcHJvdmlkZSBtb3JlIGNvbnRleHR1YWwg
aW5mb3JtYXRpb24gdG8gdGhlIHVzZXIKLSAgICAgICAgc2VsZi5leHRyYV9pbmZvID0gZXh0cmFf
aW5mbwotCi0gICAgZGVmIHBhcnNlX2FyZ3Moc2VsZiwgYXJncz1Ob25lLCBuYW1lc3BhY2U9Tm9u
ZSk6Ci0gICAgICAgICIiImFsbG93IHNwbGl0dGluZyBvZiBwb3NpdGlvbmFsIGFyZ3VtZW50cyIi
IgotICAgICAgICBhcmdzLCBhcmd2ID0gc2VsZi5wYXJzZV9rbm93bl9hcmdzKGFyZ3MsIG5hbWVz
cGFjZSkKLSAgICAgICAgaWYgYXJndjoKLSAgICAgICAgICAgIGZvciBhcmcgaW4gYXJndjoKLSAg
ICAgICAgICAgICAgICBpZiBhcmcgYW5kIGFyZ1swXSA9PSAnLSc6Ci0gICAgICAgICAgICAgICAg
ICAgIGxpbmVzID0gWyd1bnJlY29nbml6ZWQgYXJndW1lbnRzOiAlcycgJSAoJyAnLmpvaW4oYXJn
dikpXQotICAgICAgICAgICAgICAgICAgICBmb3IgaywgdiBpbiBzb3J0ZWQoc2VsZi5leHRyYV9p
bmZvLml0ZW1zKCkpOgotICAgICAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCcgICVz
OiAlcycgJSAoaywgdikpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyb3IoJ1xuJy5qb2lu
KGxpbmVzKSkKLSAgICAgICAgICAgIGdldGF0dHIoYXJncywgRklMRV9PUl9ESVIpLmV4dGVuZChh
cmd2KQotICAgICAgICByZXR1cm4gYXJncwotCi0KLWNsYXNzIERyb3BTaG9ydGVyTG9uZ0hlbHBG
b3JtYXR0ZXIoYXJncGFyc2UuSGVscEZvcm1hdHRlcik6Ci0gICAgIiIic2hvcnRlbiBoZWxwIGZv
ciBsb25nIG9wdGlvbnMgdGhhdCBkaWZmZXIgb25seSBpbiBleHRyYSBoeXBoZW5zCi0KLSAgICAt
IGNvbGxhcHNlICoqbG9uZyoqIG9wdGlvbnMgdGhhdCBhcmUgdGhlIHNhbWUgZXhjZXB0IGZvciBl
eHRyYSBoeXBoZW5zCi0gICAgLSBzcGVjaWFsIGFjdGlvbiBhdHRyaWJ1dGUgbWFwX2xvbmdfb3B0
aW9uIGFsbG93cyBzdXJwcmVzc2luZyBhZGRpdGlvbmFsCi0gICAgICBsb25nIG9wdGlvbnMKLSAg
ICAtIHNob3J0Y3V0IGlmIHRoZXJlIGFyZSBvbmx5IHR3byBvcHRpb25zIGFuZCBvbmUgb2YgdGhl
bSBpcyBhIHNob3J0IG9uZQotICAgIC0gY2FjaGUgcmVzdWx0IG9uIGFjdGlvbiBvYmplY3QgYXMg
dGhpcyBpcyBjYWxsZWQgYXQgbGVhc3QgMiB0aW1lcwotICAgICIiIgotCi0gICAgZGVmIF9mb3Jt
YXRfYWN0aW9uX2ludm9jYXRpb24oc2VsZiwgYWN0aW9uKToKLSAgICAgICAgb3Jnc3RyID0gYXJn
cGFyc2UuSGVscEZvcm1hdHRlci5fZm9ybWF0X2FjdGlvbl9pbnZvY2F0aW9uKHNlbGYsIGFjdGlv
bikKLSAgICAgICAgaWYgb3Jnc3RyIGFuZCBvcmdzdHJbMF0gIT0gJy0nOiAgIyBvbmx5IG9wdGlv
bmFsIGFyZ3VtZW50cwotICAgICAgICAgICAgcmV0dXJuIG9yZ3N0cgotICAgICAgICByZXMgPSBn
ZXRhdHRyKGFjdGlvbiwgJ19mb3JtYXR0ZWRfYWN0aW9uX2ludm9jYXRpb24nLCBOb25lKQotICAg
ICAgICBpZiByZXM6Ci0gICAgICAgICAgICByZXR1cm4gcmVzCi0gICAgICAgIG9wdGlvbnMgPSBv
cmdzdHIuc3BsaXQoJywgJykKLSAgICAgICAgaWYgbGVuKG9wdGlvbnMpID09IDIgYW5kIChsZW4o
b3B0aW9uc1swXSkgPT0gMiBvciBsZW4ob3B0aW9uc1sxXSkgPT0gMik6Ci0gICAgICAgICAgICAj
IGEgc2hvcnRjdXQgZm9yICctaCwgLS1oZWxwJyBvciAnLS1hYmMnLCAnLWEnCi0gICAgICAgICAg
ICBhY3Rpb24uX2Zvcm1hdHRlZF9hY3Rpb25faW52b2NhdGlvbiA9IG9yZ3N0cgotICAgICAgICAg
ICAgcmV0dXJuIG9yZ3N0cgotICAgICAgICByZXR1cm5fbGlzdCA9IFtdCi0gICAgICAgIG9wdGlv
bl9tYXAgPSBnZXRhdHRyKGFjdGlvbiwgJ21hcF9sb25nX29wdGlvbicsIHt9KQotICAgICAgICBp
ZiBvcHRpb25fbWFwIGlzIE5vbmU6Ci0gICAgICAgICAgICBvcHRpb25fbWFwID0ge30KLSAgICAg
ICAgc2hvcnRfbG9uZyA9IHt9Ci0gICAgICAgIGZvciBvcHRpb24gaW4gb3B0aW9uczoKLSAgICAg
ICAgICAgIGlmIGxlbihvcHRpb24pID09IDIgb3Igb3B0aW9uWzJdID09ICcgJzoKLSAgICAgICAg
ICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgbm90IG9wdGlvbi5zdGFydHN3aXRoKCct
LScpOgotICAgICAgICAgICAgICAgIHJhaXNlIEFyZ3VtZW50RXJyb3IoJ2xvbmcgb3B0aW9uYWwg
YXJndW1lbnQgd2l0aG91dCAiLS0iOiBbJXNdJwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJSAob3B0aW9uKSwgc2VsZikKLSAgICAgICAgICAgIHh4b3B0aW9uID0gb3B0aW9u
WzI6XQotICAgICAgICAgICAgaWYgeHhvcHRpb24uc3BsaXQoKVswXSBub3QgaW4gb3B0aW9uX21h
cDoKLSAgICAgICAgICAgICAgICBzaG9ydGVuZWQgPSB4eG9wdGlvbi5yZXBsYWNlKCctJywgJycp
Ci0gICAgICAgICAgICAgICAgaWYgc2hvcnRlbmVkIG5vdCBpbiBzaG9ydF9sb25nIG9yIFwKLSAg
ICAgICAgICAgICAgICAgICBsZW4oc2hvcnRfbG9uZ1tzaG9ydGVuZWRdKSA8IGxlbih4eG9wdGlv
bik6Ci0gICAgICAgICAgICAgICAgICAgIHNob3J0X2xvbmdbc2hvcnRlbmVkXSA9IHh4b3B0aW9u
Ci0gICAgICAgICMgbm93IHNob3J0X2xvbmcgaGFzIGJlZW4gZmlsbGVkIG91dCB0byB0aGUgbG9u
Z2VzdCB3aXRoIGRhc2hlcwotICAgICAgICAjICoqYW5kKiogd2Uga2VlcCB0aGUgcmlnaHQgb3B0
aW9uIG9yZGVyaW5nIGZyb20gYWRkX2FyZ3VtZW50Ci0gICAgICAgIGZvciBvcHRpb24gaW4gb3B0
aW9uczoKLSAgICAgICAgICAgIGlmIGxlbihvcHRpb24pID09IDIgb3Igb3B0aW9uWzJdID09ICcg
JzoKLSAgICAgICAgICAgICAgICByZXR1cm5fbGlzdC5hcHBlbmQob3B0aW9uKQotICAgICAgICAg
ICAgaWYgb3B0aW9uWzI6XSA9PSBzaG9ydF9sb25nLmdldChvcHRpb24ucmVwbGFjZSgnLScsICcn
KSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuX2xpc3QuYXBwZW5kKG9wdGlvbi5yZXBsYWNlKCcg
JywgJz0nLCAxKSkKLSAgICAgICAgYWN0aW9uLl9mb3JtYXR0ZWRfYWN0aW9uX2ludm9jYXRpb24g
PSAnLCAnLmpvaW4ocmV0dXJuX2xpc3QpCi0gICAgICAgIHJldHVybiBhY3Rpb24uX2Zvcm1hdHRl
ZF9hY3Rpb25faW52b2NhdGlvbgotCi0KLWRlZiBfZW5zdXJlX3JlbW92ZWRfc3lzbW9kdWxlKG1v
ZG5hbWUpOgotICAgIHRyeToKLSAgICAgICAgZGVsIHN5cy5tb2R1bGVzW21vZG5hbWVdCi0gICAg
ZXhjZXB0IEtleUVycm9yOgotICAgICAgICBwYXNzCi0KLQotY2xhc3MgQ21kT3B0aW9ucyhvYmpl
Y3QpOgotICAgICIiIiBob2xkcyBjbWRsaW5lIG9wdGlvbnMgYXMgYXR0cmlidXRlcy4iIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZXM9KCkpOgotICAgICAgICBzZWxmLl9fZGljdF9f
LnVwZGF0ZSh2YWx1ZXMpCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVy
biAiPENtZE9wdGlvbnMgJXI+IiAlIChzZWxmLl9fZGljdF9fLCkKLQotICAgIGRlZiBjb3B5KHNl
bGYpOgotICAgICAgICByZXR1cm4gQ21kT3B0aW9ucyhzZWxmLl9fZGljdF9fKQotCi0KLWNsYXNz
IE5vdHNldDoKLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPE5PVFNF
VD4iCi0KLQotbm90c2V0ID0gTm90c2V0KCkKLUZJTEVfT1JfRElSID0gJ2ZpbGVfb3JfZGlyJwot
Ci0KLWRlZiBfaXRlcl9yZXdyaXRhYmxlX21vZHVsZXMocGFja2FnZV9maWxlcyk6Ci0gICAgZm9y
IGZuIGluIHBhY2thZ2VfZmlsZXM6Ci0gICAgICAgIGlzX3NpbXBsZV9tb2R1bGUgPSAnLycgbm90
IGluIGZuIGFuZCBmbi5lbmRzd2l0aCgnLnB5JykKLSAgICAgICAgaXNfcGFja2FnZSA9IGZuLmNv
dW50KCcvJykgPT0gMSBhbmQgZm4uZW5kc3dpdGgoJ19faW5pdF9fLnB5JykKLSAgICAgICAgaWYg
aXNfc2ltcGxlX21vZHVsZToKLSAgICAgICAgICAgIG1vZHVsZV9uYW1lLCBfID0gb3MucGF0aC5z
cGxpdGV4dChmbikKLSAgICAgICAgICAgIHlpZWxkIG1vZHVsZV9uYW1lCi0gICAgICAgIGVsaWYg
aXNfcGFja2FnZToKLSAgICAgICAgICAgIHBhY2thZ2VfbmFtZSA9IG9zLnBhdGguZGlybmFtZShm
bikKLSAgICAgICAgICAgIHlpZWxkIHBhY2thZ2VfbmFtZQotCi0KLWNsYXNzIENvbmZpZyhvYmpl
Y3QpOgotICAgICIiIiBhY2Nlc3MgdG8gY29uZmlndXJhdGlvbiB2YWx1ZXMsIHBsdWdpbm1hbmFn
ZXIgYW5kIHBsdWdpbiBob29rcy4gICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsdWdp
bm1hbmFnZXIpOgotICAgICAgICAjOiBhY2Nlc3MgdG8gY29tbWFuZCBsaW5lIG9wdGlvbiBhcyBh
dHRyaWJ1dGVzLgotICAgICAgICAjOiAoZGVwcmVjYXRlZCksIHVzZSA6cHk6ZnVuYzpgZ2V0b3B0
aW9uKCkgPF9weXRlc3QuY29uZmlnLkNvbmZpZy5nZXRvcHRpb24+YCBpbnN0ZWFkCi0gICAgICAg
IHNlbGYub3B0aW9uID0gQ21kT3B0aW9ucygpCi0gICAgICAgIF9hID0gRklMRV9PUl9ESVIKLSAg
ICAgICAgc2VsZi5fcGFyc2VyID0gUGFyc2VyKAotICAgICAgICAgICAgdXNhZ2U9IiUlKHByb2cp
cyBbb3B0aW9uc10gWyVzXSBbJXNdIFsuLi5dIiAlIChfYSwgX2EpLAotICAgICAgICAgICAgcHJv
Y2Vzc29wdD1zZWxmLl9wcm9jZXNzb3B0LAotICAgICAgICApCi0gICAgICAgICM6IGEgcGx1Z2lu
bWFuYWdlciBpbnN0YW5jZQotICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIgPSBwbHVnaW5tYW5h
Z2VyCi0gICAgICAgIHNlbGYudHJhY2UgPSBzZWxmLnBsdWdpbm1hbmFnZXIudHJhY2Uucm9vdC5n
ZXQoImNvbmZpZyIpCi0gICAgICAgIHNlbGYuaG9vayA9IHNlbGYucGx1Z2lubWFuYWdlci5ob29r
Ci0gICAgICAgIHNlbGYuX2luaWNhY2hlID0ge30KLSAgICAgICAgc2VsZi5fb3ZlcnJpZGVfaW5p
ID0gKCkKLSAgICAgICAgc2VsZi5fb3B0MmRlc3QgPSB7fQotICAgICAgICBzZWxmLl9jbGVhbnVw
ID0gW10KLSAgICAgICAgc2VsZi5fd2FybiA9IHNlbGYucGx1Z2lubWFuYWdlci5fd2FybgotICAg
ICAgICBzZWxmLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoc2VsZiwgInB5dGVzdGNvbmZpZyIpCi0g
ICAgICAgIHNlbGYuX2NvbmZpZ3VyZWQgPSBGYWxzZQotCi0gICAgICAgIGRlZiBkb19zZXRucyhk
aWMpOgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgc2V0bnMocHl0ZXN0
LCBkaWMpCi0KLSAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9uYW1lc3BhY2UuY2FsbF9oaXN0b3Jp
Yyhkb19zZXRucywge30pCi0gICAgICAgIHNlbGYuaG9vay5weXRlc3RfYWRkb3B0aW9uLmNhbGxf
aGlzdG9yaWMoa3dhcmdzPWRpY3QocGFyc2VyPXNlbGYuX3BhcnNlcikpCi0KLSAgICBkZWYgYWRk
X2NsZWFudXAoc2VsZiwgZnVuYyk6Ci0gICAgICAgICIiIiBBZGQgYSBmdW5jdGlvbiB0byBiZSBj
YWxsZWQgd2hlbiB0aGUgY29uZmlnIG9iamVjdCBnZXRzIG91dCBvZgotICAgICAgICB1c2UgKHVz
dWFsbHkgY29uaW5jaWRpbmcgd2l0aCBweXRlc3RfdW5jb25maWd1cmUpLiIiIgotICAgICAgICBz
ZWxmLl9jbGVhbnVwLmFwcGVuZChmdW5jKQotCi0gICAgZGVmIF9kb19jb25maWd1cmUoc2VsZik6
Ci0gICAgICAgIGFzc2VydCBub3Qgc2VsZi5fY29uZmlndXJlZAotICAgICAgICBzZWxmLl9jb25m
aWd1cmVkID0gVHJ1ZQotICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2NvbmZpZ3VyZS5jYWxsX2hp
c3RvcmljKGt3YXJncz1kaWN0KGNvbmZpZz1zZWxmKSkKLQotICAgIGRlZiBfZW5zdXJlX3VuY29u
ZmlndXJlKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9jb25maWd1cmVkOgotICAgICAgICAgICAg
c2VsZi5fY29uZmlndXJlZCA9IEZhbHNlCi0gICAgICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X3Vu
Y29uZmlndXJlKGNvbmZpZz1zZWxmKQotICAgICAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9jb25m
aWd1cmUuX2NhbGxfaGlzdG9yeSA9IFtdCi0gICAgICAgIHdoaWxlIHNlbGYuX2NsZWFudXA6Ci0g
ICAgICAgICAgICBmaW4gPSBzZWxmLl9jbGVhbnVwLnBvcCgpCi0gICAgICAgICAgICBmaW4oKQot
Ci0gICAgZGVmIHdhcm4oc2VsZiwgY29kZSwgbWVzc2FnZSwgZnNsb2NhdGlvbj1Ob25lLCBub2Rl
aWQ9Tm9uZSk6Ci0gICAgICAgICIiIiBnZW5lcmF0ZSBhIHdhcm5pbmcgZm9yIHRoaXMgdGVzdCBz
ZXNzaW9uLiAiIiIKLSAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9sb2d3YXJuaW5nLmNhbGxfaGlz
dG9yaWMoa3dhcmdzPWRpY3QoCi0gICAgICAgICAgICBjb2RlPWNvZGUsIG1lc3NhZ2U9bWVzc2Fn
ZSwKLSAgICAgICAgICAgIGZzbG9jYXRpb249ZnNsb2NhdGlvbiwgbm9kZWlkPW5vZGVpZCkpCi0K
LSAgICBkZWYgZ2V0X3Rlcm1pbmFsX3dyaXRlcihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
cGx1Z2lubWFuYWdlci5nZXRfcGx1Z2luKCJ0ZXJtaW5hbHJlcG9ydGVyIikuX3R3Ci0KLSAgICBk
ZWYgcHl0ZXN0X2NtZGxpbmVfcGFyc2Uoc2VsZiwgcGx1Z2lubWFuYWdlciwgYXJncyk6Ci0gICAg
ICAgICMgUkVGMSBhc3NlcnQgc2VsZiA9PSBwbHVnaW5tYW5hZ2VyLmNvbmZpZywgKHNlbGYsIHBs
dWdpbm1hbmFnZXIuY29uZmlnKQotICAgICAgICBzZWxmLnBhcnNlKGFyZ3MpCi0gICAgICAgIHJl
dHVybiBzZWxmCi0KLSAgICBkZWYgbm90aWZ5X2V4Y2VwdGlvbihzZWxmLCBleGNpbmZvLCBvcHRp
b249Tm9uZSk6Ci0gICAgICAgIGlmIG9wdGlvbiBhbmQgb3B0aW9uLmZ1bGx0cmFjZToKLSAgICAg
ICAgICAgIHN0eWxlID0gImxvbmciCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzdHlsZSA9
ICJuYXRpdmUiCi0gICAgICAgIGV4Y3JlcHIgPSBleGNpbmZvLmdldHJlcHIoZnVuY2FyZ3M9VHJ1
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bG9jYWxzPWdldGF0dHIo
b3B0aW9uLCAnc2hvd2xvY2FscycsIEZhbHNlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHlsZT1zdHlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
Ci0gICAgICAgIHJlcyA9IHNlbGYuaG9vay5weXRlc3RfaW50ZXJuYWxlcnJvcihleGNyZXByPWV4
Y3JlcHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNp
bmZvPWV4Y2luZm8pCi0gICAgICAgIGlmIG5vdCBhbnkocmVzKToKLSAgICAgICAgICAgIGZvciBs
aW5lIGluIHN0cihleGNyZXByKS5zcGxpdCgiXG4iKToKLSAgICAgICAgICAgICAgICBzeXMuc3Rk
ZXJyLndyaXRlKCJJTlRFUk5BTEVSUk9SPiAlc1xuIiAlIGxpbmUpCi0gICAgICAgICAgICAgICAg
c3lzLnN0ZGVyci5mbHVzaCgpCi0KLSAgICBkZWYgY3dkX3JlbGF0aXZlX25vZGVpZChzZWxmLCBu
b2RlaWQpOgotICAgICAgICAjIG5vZGVpZCdzIGFyZSByZWxhdGl2ZSB0byB0aGUgcm9vdHBhdGgs
IGNvbXB1dGUgcmVsYXRpdmUgdG8gY3dkCi0gICAgICAgIGlmIHNlbGYuaW52b2NhdGlvbl9kaXIg
IT0gc2VsZi5yb290ZGlyOgotICAgICAgICAgICAgZnVsbHBhdGggPSBzZWxmLnJvb3RkaXIuam9p
bihub2RlaWQpCi0gICAgICAgICAgICBub2RlaWQgPSBzZWxmLmludm9jYXRpb25fZGlyLmJlc3Ry
ZWxwYXRoKGZ1bGxwYXRoKQotICAgICAgICByZXR1cm4gbm9kZWlkCi0KLSAgICBAY2xhc3NtZXRo
b2QKLSAgICBkZWYgZnJvbWRpY3RhcmdzKGNscywgb3B0aW9uX2RpY3QsIGFyZ3MpOgotICAgICAg
ICAiIiIgY29uc3RydWN0b3IgdXNlYWJsZSBmb3Igc3VicHJvY2Vzc2VzLiAiIiIKLSAgICAgICAg
Y29uZmlnID0gZ2V0X2NvbmZpZygpCi0gICAgICAgIGNvbmZpZy5vcHRpb24uX19kaWN0X18udXBk
YXRlKG9wdGlvbl9kaWN0KQotICAgICAgICBjb25maWcucGFyc2UoYXJncywgYWRkb3B0cz1GYWxz
ZSkKLSAgICAgICAgZm9yIHggaW4gY29uZmlnLm9wdGlvbi5wbHVnaW5zOgotICAgICAgICAgICAg
Y29uZmlnLnBsdWdpbm1hbmFnZXIuY29uc2lkZXJfcGx1Z2luYXJnKHgpCi0gICAgICAgIHJldHVy
biBjb25maWcKLQotICAgIGRlZiBfcHJvY2Vzc29wdChzZWxmLCBvcHQpOgotICAgICAgICBmb3Ig
bmFtZSBpbiBvcHQuX3Nob3J0X29wdHMgKyBvcHQuX2xvbmdfb3B0czoKLSAgICAgICAgICAgIHNl
bGYuX29wdDJkZXN0W25hbWVdID0gb3B0LmRlc3QKLQotICAgICAgICBpZiBoYXNhdHRyKG9wdCwg
J2RlZmF1bHQnKSBhbmQgb3B0LmRlc3Q6Ci0gICAgICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxm
Lm9wdGlvbiwgb3B0LmRlc3QpOgotICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZi5vcHRpb24s
IG9wdC5kZXN0LCBvcHQuZGVmYXVsdCkKLQotICAgIEBob29raW1wbCh0cnlsYXN0PVRydWUpCi0g
ICAgZGVmIHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzKHNlbGYsIGVhcmx5X2NvbmZpZyk6
Ci0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5fc2V0X2luaXRpYWxfY29uZnRlc3RzKGVhcmx5
X2NvbmZpZy5rbm93bl9hcmdzX25hbWVzcGFjZSkKLQotICAgIGRlZiBfaW5pdGluaShzZWxmLCBh
cmdzKToKLSAgICAgICAgbnMsIHVua25vd25fYXJncyA9IHNlbGYuX3BhcnNlci5wYXJzZV9rbm93
bl9hbmRfdW5rbm93bl9hcmdzKGFyZ3MsIG5hbWVzcGFjZT1zZWxmLm9wdGlvbi5jb3B5KCkpCi0g
ICAgICAgIHIgPSBkZXRlcm1pbmVfc2V0dXAobnMuaW5pZmlsZW5hbWUsIG5zLmZpbGVfb3JfZGly
ICsgdW5rbm93bl9hcmdzLCB3YXJuZnVuYz1zZWxmLndhcm4pCi0gICAgICAgIHNlbGYucm9vdGRp
ciwgc2VsZi5pbmlmaWxlLCBzZWxmLmluaWNmZyA9IHIKLSAgICAgICAgc2VsZi5fcGFyc2VyLmV4
dHJhX2luZm9bJ3Jvb3RkaXInXSA9IHNlbGYucm9vdGRpcgotICAgICAgICBzZWxmLl9wYXJzZXIu
ZXh0cmFfaW5mb1snaW5pZmlsZSddID0gc2VsZi5pbmlmaWxlCi0gICAgICAgIHNlbGYuaW52b2Nh
dGlvbl9kaXIgPSBweS5wYXRoLmxvY2FsKCkKLSAgICAgICAgc2VsZi5fcGFyc2VyLmFkZGluaSgn
YWRkb3B0cycsICdleHRyYSBjb21tYW5kIGxpbmUgb3B0aW9ucycsICdhcmdzJykKLSAgICAgICAg
c2VsZi5fcGFyc2VyLmFkZGluaSgnbWludmVyc2lvbicsICdtaW5pbWFsbHkgcmVxdWlyZWQgcHl0
ZXN0IHZlcnNpb24nKQotICAgICAgICBzZWxmLl9vdmVycmlkZV9pbmkgPSBucy5vdmVycmlkZV9p
bmkgb3IgKCkKLQotICAgIGRlZiBfY29uc2lkZXJfaW1wb3J0aG9vayhzZWxmLCBhcmdzKToKLSAg
ICAgICAgIiIiSW5zdGFsbCB0aGUgUEVQIDMwMiBpbXBvcnQgaG9vayBpZiB1c2luZyBhc3NlcnRp
b24gcmV3cml0aW5nLgotCi0gICAgICAgIE5lZWRzIHRvIHBhcnNlIHRoZSAtLWFzc2VydD08bW9k
ZT4gb3B0aW9uIGZyb20gdGhlIGNvbW1hbmRsaW5lCi0gICAgICAgIGFuZCBmaW5kIGFsbCB0aGUg
aW5zdGFsbGVkIHBsdWdpbnMgdG8gbWFyayB0aGVtIGZvciByZXdyaXRpbmcKLSAgICAgICAgYnkg
dGhlIGltcG9ydGhvb2suCi0gICAgICAgICIiIgotICAgICAgICBucywgdW5rbm93bl9hcmdzID0g
c2VsZi5fcGFyc2VyLnBhcnNlX2tub3duX2FuZF91bmtub3duX2FyZ3MoYXJncykKLSAgICAgICAg
bW9kZSA9IG5zLmFzc2VydG1vZGUKLSAgICAgICAgaWYgbW9kZSA9PSAncmV3cml0ZSc6Ci0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaG9vayA9IF9weXRlc3QuYXNzZXJ0aW9uLmlu
c3RhbGxfaW1wb3J0aG9vayhzZWxmKQotICAgICAgICAgICAgZXhjZXB0IFN5c3RlbUVycm9yOgot
ICAgICAgICAgICAgICAgIG1vZGUgPSAncGxhaW4nCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgIHNlbGYuX21hcmtfcGx1Z2luc19mb3JfcmV3cml0ZShob29rKQotICAgICAgICBz
ZWxmLl93YXJuX2Fib3V0X21pc3NpbmdfYXNzZXJ0aW9uKG1vZGUpCi0KLSAgICBkZWYgX21hcmtf
cGx1Z2luc19mb3JfcmV3cml0ZShzZWxmLCBob29rKToKLSAgICAgICAgIiIiCi0gICAgICAgIEdp
dmVuIGFuIGltcG9ydGhvb2ssIG1hcmsgZm9yIHJld3JpdGUgYW55IHRvcC1sZXZlbAotICAgICAg
ICBtb2R1bGVzIG9yIHBhY2thZ2VzIGluIHRoZSBkaXN0cmlidXRpb24gcGFja2FnZSBmb3IKLSAg
ICAgICAgYWxsIHB5dGVzdCBwbHVnaW5zLgotICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHBr
Z19yZXNvdXJjZXMKLSAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLnJld3JpdGVfaG9vayA9IGhv
b2sKLQotICAgICAgICAjICdSRUNPUkQnIGF2YWlsYWJsZSBmb3IgcGx1Z2lucyBpbnN0YWxsZWQg
bm9ybWFsbHkgKHBpcCBpbnN0YWxsKQotICAgICAgICAjICdTT1VSQ0VTLnR4dCcgYXZhaWxhYmxl
IGZvciBwbHVnaW5zIGluc3RhbGxlZCBpbiBkZXYgbW9kZSAocGlwIGluc3RhbGwgLWUpCi0gICAg
ICAgICMgZm9yIGluc3RhbGxlZCBwbHVnaW5zICdTT1VSQ0VTLnR4dCcgcmV0dXJucyBhbiBlbXB0
eSBsaXN0LCBhbmQgdmljZS12ZXJzYQotICAgICAgICAjIHNvIGl0IHNob3VsZG4ndCBiZSBhbiBp
c3N1ZQotICAgICAgICBtZXRhZGF0YV9maWxlcyA9ICdSRUNPUkQnLCAnU09VUkNFUy50eHQnCi0K
LSAgICAgICAgcGFja2FnZV9maWxlcyA9ICgKLSAgICAgICAgICAgIGVudHJ5LnNwbGl0KCcsJylb
MF0KLSAgICAgICAgICAgIGZvciBlbnRyeXBvaW50IGluIHBrZ19yZXNvdXJjZXMuaXRlcl9lbnRy
eV9wb2ludHMoJ3B5dGVzdDExJykKLSAgICAgICAgICAgIGZvciBtZXRhZGF0YSBpbiBtZXRhZGF0
YV9maWxlcwotICAgICAgICAgICAgZm9yIGVudHJ5IGluIGVudHJ5cG9pbnQuZGlzdC5fZ2V0X21l
dGFkYXRhKG1ldGFkYXRhKQotICAgICAgICApCi0KLSAgICAgICAgZm9yIG5hbWUgaW4gX2l0ZXJf
cmV3cml0YWJsZV9tb2R1bGVzKHBhY2thZ2VfZmlsZXMpOgotICAgICAgICAgICAgaG9vay5tYXJr
X3Jld3JpdGUobmFtZSkKLQotICAgIGRlZiBfd2Fybl9hYm91dF9taXNzaW5nX2Fzc2VydGlvbihz
ZWxmLCBtb2RlKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCi0gICAg
ICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGlmIG1vZGUgPT0gJ3BsYWluJzoKLSAgICAgICAgICAgICAgICBzeXMu
c3RkZXJyLndyaXRlKCJXQVJOSU5HOiBBU1NFUlRJT05TIEFSRSBOT1QgRVhFQ1VURUQiCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFuZCBGQUlMSU5HIFRFU1RTIFdJTEwgUEFT
Uy4gIEFyZSB5b3UiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHVzaW5nIHB5
dGhvbiAtTz8iKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzeXMuc3RkZXJy
LndyaXRlKCJXQVJOSU5HOiBhc3NlcnRpb25zIG5vdCBpbiB0ZXN0IG1vZHVsZXMgb3IiCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHBsdWdpbnMgd2lsbCBiZSBpZ25vcmVkIgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBiZWNhdXNlIGFzc2VydCBzdGF0ZW1l
bnRzIGFyZSBub3QgZXhlY3V0ZWQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImJ5IHRoZSB1bmRlcmx5aW5nIFB5dGhvbiBpbnRlcnByZXRlciAiCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiKGFyZSB5b3UgdXNpbmcgcHl0aG9uIC1PPylcbiIpCi0KLSAgICBk
ZWYgX3ByZXBhcnNlKHNlbGYsIGFyZ3MsIGFkZG9wdHM9VHJ1ZSk6Ci0gICAgICAgIGlmIGFkZG9w
dHM6Ci0gICAgICAgICAgICBhcmdzWzpdID0gc2hsZXguc3BsaXQob3MuZW52aXJvbi5nZXQoJ1BZ
VEVTVF9BRERPUFRTJywgJycpKSArIGFyZ3MKLSAgICAgICAgc2VsZi5faW5pdGluaShhcmdzKQot
ICAgICAgICBpZiBhZGRvcHRzOgotICAgICAgICAgICAgYXJnc1s6XSA9IHNlbGYuZ2V0aW5pKCJh
ZGRvcHRzIikgKyBhcmdzCi0gICAgICAgIHNlbGYuX2NoZWNrdmVyc2lvbigpCi0gICAgICAgIHNl
bGYuX2NvbnNpZGVyX2ltcG9ydGhvb2soYXJncykKLSAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2Vy
LmNvbnNpZGVyX3ByZXBhcnNlKGFyZ3MpCi0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5sb2Fk
X3NldHVwdG9vbHNfZW50cnlwb2ludHMoJ3B5dGVzdDExJykKLSAgICAgICAgc2VsZi5wbHVnaW5t
YW5hZ2VyLmNvbnNpZGVyX2VudigpCi0gICAgICAgIHNlbGYua25vd25fYXJnc19uYW1lc3BhY2Ug
PSBucyA9IHNlbGYuX3BhcnNlci5wYXJzZV9rbm93bl9hcmdzKGFyZ3MsIG5hbWVzcGFjZT1zZWxm
Lm9wdGlvbi5jb3B5KCkpCi0gICAgICAgIGlmIHNlbGYua25vd25fYXJnc19uYW1lc3BhY2UuY29u
ZmN1dGRpciBpcyBOb25lIGFuZCBzZWxmLmluaWZpbGU6Ci0gICAgICAgICAgICBjb25mY3V0ZGly
ID0gcHkucGF0aC5sb2NhbChzZWxmLmluaWZpbGUpLmRpcm5hbWUKLSAgICAgICAgICAgIHNlbGYu
a25vd25fYXJnc19uYW1lc3BhY2UuY29uZmN1dGRpciA9IGNvbmZjdXRkaXIKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzKGVh
cmx5X2NvbmZpZz1zZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3M9YXJncywgcGFyc2VyPXNlbGYuX3BhcnNlcikKLSAgICAgICAgZXhj
ZXB0IENvbmZ0ZXN0SW1wb3J0RmFpbHVyZToKLSAgICAgICAgICAgIGUgPSBzeXMuZXhjX2luZm8o
KVsxXQotICAgICAgICAgICAgaWYgbnMuaGVscCBvciBucy52ZXJzaW9uOgotICAgICAgICAgICAg
ICAgICMgd2UgZG9uJ3Qgd2FudCB0byBwcmV2ZW50IC0taGVscC8tLXZlcnNpb24gdG8gd29yawot
ICAgICAgICAgICAgICAgICMgc28ganVzdCBsZXQgaXMgcGFzcyBhbmQgcHJpbnQgYSB3YXJuaW5n
IGF0IHRoZSBlbmQKLSAgICAgICAgICAgICAgICBzZWxmLl93YXJuKCJjb3VsZCBub3QgbG9hZCBp
bml0aWFsIGNvbmZ0ZXN0cyAoJXMpXG4iICUgZS5wYXRoKQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICByYWlzZQotCi0gICAgZGVmIF9jaGVja3ZlcnNpb24oc2VsZik6Ci0gICAg
ICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgbWludmVyID0gc2VsZi5pbmljZmcuZ2V0KCdtaW52
ZXJzaW9uJywgTm9uZSkKLSAgICAgICAgaWYgbWludmVyOgotICAgICAgICAgICAgdmVyID0gbWlu
dmVyLnNwbGl0KCIuIikKLSAgICAgICAgICAgIG15dmVyID0gcHl0ZXN0Ll9fdmVyc2lvbl9fLnNw
bGl0KCIuIikKLSAgICAgICAgICAgIGlmIG15dmVyIDwgdmVyOgotICAgICAgICAgICAgICAgIHJh
aXNlIHB5dGVzdC5Vc2FnZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAiJXM6JWQ6IHJlcXVp
cmVzIHB5dGVzdC0lcywgYWN0dWFsIHB5dGVzdC0lcyciICUgKAotICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5pbmljZmcuY29uZmlnLnBhdGgsIHNlbGYuaW5pY2ZnLmxpbmVvZignbWludmVy
c2lvbicpLAotICAgICAgICAgICAgICAgICAgICAgICAgbWludmVyLCBweXRlc3QuX192ZXJzaW9u
X18pKQotCi0gICAgZGVmIHBhcnNlKHNlbGYsIGFyZ3MsIGFkZG9wdHM9VHJ1ZSk6Ci0gICAgICAg
ICMgcGFyc2UgZ2l2ZW4gY21kbGluZSBhcmd1bWVudHMgaW50byB0aGlzIGNvbmZpZyBvYmplY3Qu
Ci0gICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihzZWxmLCAnYXJncycpLCAoCi0gICAgICAgICAg
ICAiY2FuIG9ubHkgcGFyc2UgY21kbGluZSBhcmdzIGF0IG1vc3Qgb25jZSBwZXIgQ29uZmlnIG9i
amVjdCIpCi0gICAgICAgIHNlbGYuX29yaWdhcmdzID0gYXJncwotICAgICAgICBzZWxmLmhvb2su
cHl0ZXN0X2FkZGhvb2tzLmNhbGxfaGlzdG9yaWMoCi0gICAgICAgICAgICBrd2FyZ3M9ZGljdChw
bHVnaW5tYW5hZ2VyPXNlbGYucGx1Z2lubWFuYWdlcikpCi0gICAgICAgIHNlbGYuX3ByZXBhcnNl
KGFyZ3MsIGFkZG9wdHM9YWRkb3B0cykKLSAgICAgICAgIyBYWFggZGVwcmVjYXRlZCBob29rOgot
ICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2NtZGxpbmVfcHJlcGFyc2UoY29uZmlnPXNlbGYsIGFy
Z3M9YXJncykKLSAgICAgICAgc2VsZi5fcGFyc2VyLmFmdGVyX3ByZXBhcnNlID0gVHJ1ZQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBhcmdzID0gc2VsZi5fcGFyc2VyLnBhcnNlX3NldG9wdGlv
bihhcmdzLCBzZWxmLm9wdGlvbiwgbmFtZXNwYWNlPXNlbGYub3B0aW9uKQotICAgICAgICAgICAg
aWYgbm90IGFyZ3M6Ci0gICAgICAgICAgICAgICAgY3dkID0gb3MuZ2V0Y3dkKCkKLSAgICAgICAg
ICAgICAgICBpZiBjd2QgPT0gc2VsZi5yb290ZGlyOgotICAgICAgICAgICAgICAgICAgICBhcmdz
ID0gc2VsZi5nZXRpbmkoJ3Rlc3RwYXRocycpCi0gICAgICAgICAgICAgICAgaWYgbm90IGFyZ3M6
Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBbY3dkXQotICAgICAgICAgICAgc2VsZi5hcmdz
ID0gYXJncwotICAgICAgICBleGNlcHQgUHJpbnRIZWxwOgotICAgICAgICAgICAgcGFzcwotCi0g
ICAgZGVmIGFkZGluaXZhbHVlX2xpbmUoc2VsZiwgbmFtZSwgbGluZSk6Ci0gICAgICAgICIiIiBh
ZGQgYSBsaW5lIHRvIGFuIGluaS1maWxlIG9wdGlvbi4gVGhlIG9wdGlvbiBtdXN0IGhhdmUgYmVl
bgotICAgICAgICBkZWNsYXJlZCBidXQgbWlnaHQgbm90IHlldCBiZSBzZXQgaW4gd2hpY2ggY2Fz
ZSB0aGUgbGluZSBiZWNvbWVzIHRoZQotICAgICAgICB0aGUgZmlyc3QgbGluZSBpbiBpdHMgdmFs
dWUuICIiIgotICAgICAgICB4ID0gc2VsZi5nZXRpbmkobmFtZSkKLSAgICAgICAgYXNzZXJ0IGlz
aW5zdGFuY2UoeCwgbGlzdCkKLSAgICAgICAgeC5hcHBlbmQobGluZSkgICMgbW9kaWZpZXMgdGhl
IGNhY2hlZCBsaXN0IGlubGluZQotCi0gICAgZGVmIGdldGluaShzZWxmLCBuYW1lKToKLSAgICAg
ICAgIiIiIHJldHVybiBjb25maWd1cmF0aW9uIHZhbHVlIGZyb20gYW4gOnJlZjpgaW5pIGZpbGUg
PGluaWZpbGVzPmAuIElmIHRoZQotICAgICAgICBzcGVjaWZpZWQgbmFtZSBoYXNuJ3QgYmVlbiBy
ZWdpc3RlcmVkIHRocm91Z2ggYSBwcmlvcgotICAgICAgICA6cHk6ZnVuYzpgcGFyc2VyLmFkZGlu
aSA8X3B5dGVzdC5jb25maWcuUGFyc2VyLmFkZGluaT5gCi0gICAgICAgIGNhbGwgKHVzdWFsbHkg
ZnJvbSBhIHBsdWdpbiksIGEgVmFsdWVFcnJvciBpcyByYWlzZWQuICIiIgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5faW5pY2FjaGVbbmFtZV0KLSAgICAgICAgZXhjZXB0
IEtleUVycm9yOgotICAgICAgICAgICAgc2VsZi5faW5pY2FjaGVbbmFtZV0gPSB2YWwgPSBzZWxm
Ll9nZXRpbmkobmFtZSkKLSAgICAgICAgICAgIHJldHVybiB2YWwKLQotICAgIGRlZiBfZ2V0aW5p
KHNlbGYsIG5hbWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbiwgdHlw
ZSwgZGVmYXVsdCA9IHNlbGYuX3BhcnNlci5faW5pZGljdFtuYW1lXQotICAgICAgICBleGNlcHQg
S2V5RXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1bmtub3duIGNvbmZpZ3Vy
YXRpb24gdmFsdWU6ICVyIiAlIChuYW1lLCkpCi0gICAgICAgIHZhbHVlID0gc2VsZi5fZ2V0X292
ZXJyaWRlX2luaV92YWx1ZShuYW1lKQotICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgotICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHZhbHVlID0gc2VsZi5pbmljZmdbbmFtZV0KLSAg
ICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICBpZiBkZWZhdWx0IGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAotICAgICAgICAg
ICAgICAgIGlmIHR5cGUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcnCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFtdCi0gICAgICAgIGlmIHR5cGUgPT0gInBhdGhsaXN0IjoK
LSAgICAgICAgICAgIGRwID0gcHkucGF0aC5sb2NhbChzZWxmLmluaWNmZy5jb25maWcucGF0aCku
ZGlycGF0aCgpCi0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgZm9yIHJlbHBh
dGggaW4gc2hsZXguc3BsaXQodmFsdWUpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQo
ZHAuam9pbihyZWxwYXRoLCBhYnM9VHJ1ZSkpCi0gICAgICAgICAgICByZXR1cm4gdmFsdWVzCi0g
ICAgICAgIGVsaWYgdHlwZSA9PSAiYXJncyI6Ci0gICAgICAgICAgICByZXR1cm4gc2hsZXguc3Bs
aXQodmFsdWUpCi0gICAgICAgIGVsaWYgdHlwZSA9PSAibGluZWxpc3QiOgotICAgICAgICAgICAg
cmV0dXJuIFt0IGZvciB0IGluIG1hcChsYW1iZGEgeDogeC5zdHJpcCgpLCB2YWx1ZS5zcGxpdCgi
XG4iKSkgaWYgdF0KLSAgICAgICAgZWxpZiB0eXBlID09ICJib29sIjoKLSAgICAgICAgICAgIHJl
dHVybiBib29sKF9zdHJ0b2Jvb2wodmFsdWUuc3RyaXAoKSkpCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBhc3NlcnQgdHlwZSBpcyBOb25lCi0gICAgICAgICAgICByZXR1cm4gdmFsdWUKLQot
ICAgIGRlZiBfZ2V0Y29uZnRlc3RfcGF0aGxpc3Qoc2VsZiwgbmFtZSwgcGF0aCk6Ci0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIG1vZCwgcmVscm9vdHMgPSBzZWxmLnBsdWdpbm1hbmFnZXIuX3Jn
ZXRfd2l0aF9jb25mbW9kKG5hbWUsIHBhdGgpCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAg
ICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIG1vZHBhdGggPSBweS5wYXRoLmxvY2FsKG1v
ZC5fX2ZpbGVfXykuZGlycGF0aCgpCi0gICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgIGZvciBy
ZWxyb290IGluIHJlbHJvb3RzOgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocmVscm9v
dCwgcHkucGF0aC5sb2NhbCk6Ci0gICAgICAgICAgICAgICAgcmVscm9vdCA9IHJlbHJvb3QucmVw
bGFjZSgiLyIsIHB5LnBhdGgubG9jYWwuc2VwKQotICAgICAgICAgICAgICAgIHJlbHJvb3QgPSBt
b2RwYXRoLmpvaW4ocmVscm9vdCwgYWJzPVRydWUpCi0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KHJlbHJvb3QpCi0gICAgICAgIHJldHVybiB2YWx1ZXMKLQotICAgIGRlZiBfZ2V0X292ZXJyaWRl
X2luaV92YWx1ZShzZWxmLCBuYW1lKToKLSAgICAgICAgdmFsdWUgPSBOb25lCi0gICAgICAgICMg
b3ZlcnJpZGVfaW5pIGlzIGEgbGlzdCBvZiBsaXN0LCB0byBzdXBwb3J0IGJvdGggLW8gZm9vMT1i
YXIxIGZvbzI9YmFyMiBhbmQKLSAgICAgICAgIyBhbmQgLW8gZm9vMT1iYXIxIC1vIGZvbzI9YmFy
MiBvcHRpb25zCi0gICAgICAgICMgYWx3YXlzIHVzZSB0aGUgbGFzdCBpdGVtIGlmIG11bHRpcGxl
IHZhbHVlIHNldCBmb3Igc2FtZSBpbmktbmFtZSwKLSAgICAgICAgIyBlLmcuIC1vIGZvbz1iYXIx
IC1vIGZvbz1iYXIyIHdpbGwgc2V0IGZvbyB0byBiYXIyCi0gICAgICAgIGZvciBpbmlfY29uZmln
X2xpc3QgaW4gc2VsZi5fb3ZlcnJpZGVfaW5pOgotICAgICAgICAgICAgZm9yIGluaV9jb25maWcg
aW4gaW5pX2NvbmZpZ19saXN0OgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICAgICAgKGtleSwgdXNlcl9pbmlfdmFsdWUpID0gaW5pX2NvbmZpZy5zcGxpdCgiPSIsIDEpCi0g
ICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIHJh
aXNlIFVzYWdlRXJyb3IoIi1vLy0tb3ZlcnJpZGUtaW5pIGV4cGVjdHMgb3B0aW9uPXZhbHVlIHN0
eWxlLiIpCi0gICAgICAgICAgICAgICAgaWYga2V5ID09IG5hbWU6Ci0gICAgICAgICAgICAgICAg
ICAgIHZhbHVlID0gdXNlcl9pbmlfdmFsdWUKLSAgICAgICAgcmV0dXJuIHZhbHVlCi0KLSAgICBk
ZWYgZ2V0b3B0aW9uKHNlbGYsIG5hbWUsIGRlZmF1bHQ9bm90c2V0LCBza2lwPUZhbHNlKToKLSAg
ICAgICAgIiIiIHJldHVybiBjb21tYW5kIGxpbmUgb3B0aW9uIHZhbHVlLgotCi0gICAgICAgIDph
cmcgbmFtZTogbmFtZSBvZiB0aGUgb3B0aW9uLiAgWW91IG1heSBhbHNvIHNwZWNpZnkKLSAgICAg
ICAgICAgIHRoZSBsaXRlcmFsIGBgLS1PUFRgYCBvcHRpb24gaW5zdGVhZCBvZiB0aGUgImRlc3Qi
IG9wdGlvbiBuYW1lLgotICAgICAgICA6YXJnIGRlZmF1bHQ6IGRlZmF1bHQgdmFsdWUgaWYgbm8g
b3B0aW9uIG9mIHRoYXQgbmFtZSBleGlzdHMuCi0gICAgICAgIDphcmcgc2tpcDogaWYgVHJ1ZSBy
YWlzZSBweXRlc3Quc2tpcCBpZiBvcHRpb24gZG9lcyBub3QgZXhpc3RzCi0gICAgICAgICAgICBv
ciBoYXMgYSBOb25lIHZhbHVlLgotICAgICAgICAiIiIKLSAgICAgICAgbmFtZSA9IHNlbGYuX29w
dDJkZXN0LmdldChuYW1lLCBuYW1lKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB2YWwgPSBn
ZXRhdHRyKHNlbGYub3B0aW9uLCBuYW1lKQotICAgICAgICAgICAgaWYgdmFsIGlzIE5vbmUgYW5k
IHNraXA6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKLSAgICAg
ICAgICAgIHJldHVybiB2YWwKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAg
ICAgICAgaWYgZGVmYXVsdCBpcyBub3Qgbm90c2V0OgotICAgICAgICAgICAgICAgIHJldHVybiBk
ZWZhdWx0Ci0gICAgICAgICAgICBpZiBza2lwOgotICAgICAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKLSAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgibm8gJXIgb3B0aW9uIGZvdW5kIiAlIChu
YW1lLCkpCi0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJubyBvcHRpb24gbmFtZWQgJXIi
ICUgKG5hbWUsKSkKLQotICAgIGRlZiBnZXR2YWx1ZShzZWxmLCBuYW1lLCBwYXRoPU5vbmUpOgot
ICAgICAgICAiIiIgKGRlcHJlY2F0ZWQsIHVzZSBnZXRvcHRpb24oKSkgIiIiCi0gICAgICAgIHJl
dHVybiBzZWxmLmdldG9wdGlvbihuYW1lKQotCi0gICAgZGVmIGdldHZhbHVlb3Jza2lwKHNlbGYs
IG5hbWUsIHBhdGg9Tm9uZSk6Ci0gICAgICAgICIiIiAoZGVwcmVjYXRlZCwgdXNlIGdldG9wdGlv
bihza2lwPVRydWUpKSAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0b3B0aW9uKG5hbWUsIHNr
aXA9VHJ1ZSkKLQotCi1kZWYgZXhpc3RzKHBhdGgsIGlnbm9yZT1FbnZpcm9ubWVudEVycm9yKToK
LSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBwYXRoLmNoZWNrKCkKLSAgICBleGNlcHQgaWdub3Jl
OgotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1kZWYgZ2V0Y2ZnKGFyZ3MsIHdhcm5mdW5jPU5v
bmUpOgotICAgICIiIgotICAgIFNlYXJjaCB0aGUgbGlzdCBvZiBhcmd1bWVudHMgZm9yIGEgdmFs
aWQgaW5pLWZpbGUgZm9yIHB5dGVzdCwKLSAgICBhbmQgcmV0dXJuIGEgdHVwbGUgb2YgKHJvb3Rk
aXIsIGluaWZpbGUsIGNmZy1kaWN0KS4KLQotICAgIG5vdGU6IHdhcm5mdW5jIGlzIGFuIG9wdGlv
bmFsIGZ1bmN0aW9uIHVzZWQgdG8gd2FybgotICAgICAgICBhYm91dCBpbmktZmlsZXMgdGhhdCB1
c2UgZGVwcmVjYXRlZCBmZWF0dXJlcy4KLSAgICAgICAgVGhpcyBwYXJhbWV0ZXIgc2hvdWxkIGJl
IHJlbW92ZWQgd2hlbiBweXRlc3QKLSAgICAgICAgYWRvcHRzIHN0YW5kYXJkIGRlcHJlY2F0aW9u
IHdhcm5pbmdzICgjMTgwNCkuCi0gICAgIiIiCi0gICAgZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQg
aW1wb3J0IFNFVFVQX0NGR19QWVRFU1QKLSAgICBpbmliYXNlbmFtZXMgPSBbInB5dGVzdC5pbmki
LCAidG94LmluaSIsICJzZXR1cC5jZmciXQotICAgIGFyZ3MgPSBbeCBmb3IgeCBpbiBhcmdzIGlm
IG5vdCBzdHIoeCkuc3RhcnRzd2l0aCgiLSIpXQotICAgIGlmIG5vdCBhcmdzOgotICAgICAgICBh
cmdzID0gW3B5LnBhdGgubG9jYWwoKV0KLSAgICBmb3IgYXJnIGluIGFyZ3M6Ci0gICAgICAgIGFy
ZyA9IHB5LnBhdGgubG9jYWwoYXJnKQotICAgICAgICBmb3IgYmFzZSBpbiBhcmcucGFydHMocmV2
ZXJzZT1UcnVlKToKLSAgICAgICAgICAgIGZvciBpbmliYXNlbmFtZSBpbiBpbmliYXNlbmFtZXM6
Ci0gICAgICAgICAgICAgICAgcCA9IGJhc2Uuam9pbihpbmliYXNlbmFtZSkKLSAgICAgICAgICAg
ICAgICBpZiBleGlzdHMocCk6Ci0gICAgICAgICAgICAgICAgICAgIGluaWNvbmZpZyA9IHB5Lmlu
aWNvbmZpZy5JbmlDb25maWcocCkKLSAgICAgICAgICAgICAgICAgICAgaWYgJ3B5dGVzdCcgaW4g
aW5pY29uZmlnLnNlY3Rpb25zOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5pYmFzZW5h
bWUgPT0gJ3NldHVwLmNmZycgYW5kIHdhcm5mdW5jOgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdhcm5mdW5jKCdDMScsIFNFVFVQX0NGR19QWVRFU1QpCi0gICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYmFzZSwgcCwgaW5pY29uZmlnWydweXRlc3QnXQotICAgICAgICAgICAgICAg
ICAgICBpZiBpbmliYXNlbmFtZSA9PSAnc2V0dXAuY2ZnJyBhbmQgJ3Rvb2w6cHl0ZXN0JyBpbiBp
bmljb25maWcuc2VjdGlvbnM6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZSwg
cCwgaW5pY29uZmlnWyd0b29sOnB5dGVzdCddCi0gICAgICAgICAgICAgICAgICAgIGVsaWYgaW5p
YmFzZW5hbWUgPT0gInB5dGVzdC5pbmkiOgotICAgICAgICAgICAgICAgICAgICAgICAgIyBhbGxv
d2VkIHRvIGJlIGVtcHR5Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZSwgcCwg
e30KLSAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQotCi0KLWRlZiBnZXRfY29tbW9uX2FuY2Vz
dG9yKHBhdGhzKToKLSAgICBjb21tb25fYW5jZXN0b3IgPSBOb25lCi0gICAgZm9yIHBhdGggaW4g
cGF0aHM6Ci0gICAgICAgIGlmIG5vdCBwYXRoLmV4aXN0cygpOgotICAgICAgICAgICAgY29udGlu
dWUKLSAgICAgICAgaWYgY29tbW9uX2FuY2VzdG9yIGlzIE5vbmU6Ci0gICAgICAgICAgICBjb21t
b25fYW5jZXN0b3IgPSBwYXRoCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBwYXRoLnJl
bHRvKGNvbW1vbl9hbmNlc3Rvcikgb3IgcGF0aCA9PSBjb21tb25fYW5jZXN0b3I6Ci0gICAgICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsaWYgY29tbW9uX2FuY2VzdG9yLnJlbHRv
KHBhdGgpOgotICAgICAgICAgICAgICAgIGNvbW1vbl9hbmNlc3RvciA9IHBhdGgKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2hhcmVkID0gcGF0aC5jb21tb24oY29tbW9uX2Fu
Y2VzdG9yKQotICAgICAgICAgICAgICAgIGlmIHNoYXJlZCBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgICAgICAgICAgY29tbW9uX2FuY2VzdG9yID0gc2hhcmVkCi0gICAgaWYgY29tbW9uX2FuY2Vz
dG9yIGlzIE5vbmU6Ci0gICAgICAgIGNvbW1vbl9hbmNlc3RvciA9IHB5LnBhdGgubG9jYWwoKQot
ICAgIGVsaWYgY29tbW9uX2FuY2VzdG9yLmlzZmlsZSgpOgotICAgICAgICBjb21tb25fYW5jZXN0
b3IgPSBjb21tb25fYW5jZXN0b3IuZGlycGF0aCgpCi0gICAgcmV0dXJuIGNvbW1vbl9hbmNlc3Rv
cgotCi0KLWRlZiBnZXRfZGlyc19mcm9tX2FyZ3MoYXJncyk6Ci0gICAgZGVmIGlzX29wdGlvbih4
KToKLSAgICAgICAgcmV0dXJuIHN0cih4KS5zdGFydHN3aXRoKCctJykKLQotICAgIGRlZiBnZXRf
ZmlsZV9wYXJ0X2Zyb21fbm9kZV9pZCh4KToKLSAgICAgICAgcmV0dXJuIHN0cih4KS5zcGxpdCgn
OjonKVswXQotCi0gICAgZGVmIGdldF9kaXJfZnJvbV9wYXRoKHBhdGgpOgotICAgICAgICBpZiBw
YXRoLmlzZGlyKCk6Ci0gICAgICAgICAgICByZXR1cm4gcGF0aAotICAgICAgICByZXR1cm4gcHku
cGF0aC5sb2NhbChwYXRoLmRpcm5hbWUpCi0KLSAgICAjIFRoZXNlIGxvb2sgbGlrZSBwYXRocyBi
dXQgbWF5IG5vdCBleGlzdAotICAgIHBvc3NpYmxlX3BhdGhzID0gKAotICAgICAgICBweS5wYXRo
LmxvY2FsKGdldF9maWxlX3BhcnRfZnJvbV9ub2RlX2lkKGFyZykpCi0gICAgICAgIGZvciBhcmcg
aW4gYXJncwotICAgICAgICBpZiBub3QgaXNfb3B0aW9uKGFyZykKLSAgICApCi0KLSAgICByZXR1
cm4gWwotICAgICAgICBnZXRfZGlyX2Zyb21fcGF0aChwYXRoKQotICAgICAgICBmb3IgcGF0aCBp
biBwb3NzaWJsZV9wYXRocwotICAgICAgICBpZiBwYXRoLmV4aXN0cygpCi0gICAgXQotCi0KLWRl
ZiBkZXRlcm1pbmVfc2V0dXAoaW5pZmlsZSwgYXJncywgd2FybmZ1bmM9Tm9uZSk6Ci0gICAgZGly
cyA9IGdldF9kaXJzX2Zyb21fYXJncyhhcmdzKQotICAgIGlmIGluaWZpbGU6Ci0gICAgICAgIGlu
aWNvbmZpZyA9IHB5LmluaWNvbmZpZy5JbmlDb25maWcoaW5pZmlsZSkKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgaW5pY2ZnID0gaW5pY29uZmlnWyJweXRlc3QiXQotICAgICAgICBleGNlcHQg
S2V5RXJyb3I6Ci0gICAgICAgICAgICBpbmljZmcgPSBOb25lCi0gICAgICAgIHJvb3RkaXIgPSBn
ZXRfY29tbW9uX2FuY2VzdG9yKGRpcnMpCi0gICAgZWxzZToKLSAgICAgICAgYW5jZXN0b3IgPSBn
ZXRfY29tbW9uX2FuY2VzdG9yKGRpcnMpCi0gICAgICAgIHJvb3RkaXIsIGluaWZpbGUsIGluaWNm
ZyA9IGdldGNmZyhbYW5jZXN0b3JdLCB3YXJuZnVuYz13YXJuZnVuYykKLSAgICAgICAgaWYgcm9v
dGRpciBpcyBOb25lOgotICAgICAgICAgICAgZm9yIHJvb3RkaXIgaW4gYW5jZXN0b3IucGFydHMo
cmV2ZXJzZT1UcnVlKToKLSAgICAgICAgICAgICAgICBpZiByb290ZGlyLmpvaW4oInNldHVwLnB5
IikuZXhpc3RzKCk6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIHJvb3RkaXIsIGluaWZpbGUsIGluaWNmZyA9IGdldGNmZyhkaXJz
LCB3YXJuZnVuYz13YXJuZnVuYykKLSAgICAgICAgICAgICAgICBpZiByb290ZGlyIGlzIE5vbmU6
Ci0gICAgICAgICAgICAgICAgICAgIHJvb3RkaXIgPSBnZXRfY29tbW9uX2FuY2VzdG9yKFtweS5w
YXRoLmxvY2FsKCksIGFuY2VzdG9yXSkKLSAgICAgICAgICAgICAgICAgICAgaXNfZnNfcm9vdCA9
IG9zLnBhdGguc3BsaXRkcml2ZShzdHIocm9vdGRpcikpWzFdID09ICcvJwotICAgICAgICAgICAg
ICAgICAgICBpZiBpc19mc19yb290OgotICAgICAgICAgICAgICAgICAgICAgICAgcm9vdGRpciA9
IGFuY2VzdG9yCi0gICAgcmV0dXJuIHJvb3RkaXIsIGluaWZpbGUsIGluaWNmZyBvciB7fQotCi0K
LWRlZiBzZXRucyhvYmosIGRpYyk6Ci0gICAgaW1wb3J0IHB5dGVzdAotICAgIGZvciBuYW1lLCB2
YWx1ZSBpbiBkaWMuaXRlbXMoKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgZGljdCk6
Ci0gICAgICAgICAgICBtb2QgPSBnZXRhdHRyKG9iaiwgbmFtZSwgTm9uZSkKLSAgICAgICAgICAg
IGlmIG1vZCBpcyBOb25lOgotICAgICAgICAgICAgICAgIG1vZG5hbWUgPSAicHl0ZXN0LiVzIiAl
IG5hbWUKLSAgICAgICAgICAgICAgICBtb2QgPSB0eXBlcy5Nb2R1bGVUeXBlKG1vZG5hbWUpCi0g
ICAgICAgICAgICAgICAgc3lzLm1vZHVsZXNbbW9kbmFtZV0gPSBtb2QKLSAgICAgICAgICAgICAg
ICBtb2QuX19hbGxfXyA9IFtdCi0gICAgICAgICAgICAgICAgc2V0YXR0cihvYmosIG5hbWUsIG1v
ZCkKLSAgICAgICAgICAgIG9iai5fX2FsbF9fLmFwcGVuZChuYW1lKQotICAgICAgICAgICAgc2V0
bnMobW9kLCB2YWx1ZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNldGF0dHIob2JqLCBu
YW1lLCB2YWx1ZSkKLSAgICAgICAgICAgIG9iai5fX2FsbF9fLmFwcGVuZChuYW1lKQotICAgICAg
ICAgICAgIyBpZiBvYmogIT0gcHl0ZXN0OgotICAgICAgICAgICAgIyAgICBweXRlc3QuX19hbGxf
Xy5hcHBlbmQobmFtZSkKLSAgICAgICAgICAgIHNldGF0dHIocHl0ZXN0LCBuYW1lLCB2YWx1ZSkK
LQotCi1kZWYgY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcihjb25maWcsICphcmdzLCAqKmt3YXJncyk6
Ci0gICAgIiIiQ3JlYXRlIGEgVGVybWluYWxXcml0ZXIgaW5zdGFuY2UgY29uZmlndXJlZCBhY2Nv
cmRpbmcgdG8gdGhlIG9wdGlvbnMKLSAgICBpbiB0aGUgY29uZmlnIG9iamVjdC4gRXZlcnkgY29k
ZSB3aGljaCByZXF1aXJlcyBhIFRlcm1pbmFsV3JpdGVyIG9iamVjdAotICAgIGFuZCBoYXMgYWNj
ZXNzIHRvIGEgY29uZmlnIG9iamVjdCBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24uCi0gICAgIiIi
Ci0gICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcigqYXJncywgKiprd2FyZ3MpCi0gICAgaWYg
Y29uZmlnLm9wdGlvbi5jb2xvciA9PSAneWVzJzoKLSAgICAgICAgdHcuaGFzbWFya3VwID0gVHJ1
ZQotICAgIGlmIGNvbmZpZy5vcHRpb24uY29sb3IgPT0gJ25vJzoKLSAgICAgICAgdHcuaGFzbWFy
a3VwID0gRmFsc2UKLSAgICByZXR1cm4gdHcKLQotCi1kZWYgX3N0cnRvYm9vbCh2YWwpOgotICAg
ICIiIkNvbnZlcnQgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdHJ1dGggdG8gdHJ1ZSAoMSkg
b3IgZmFsc2UgKDApLgotCi0gICAgVHJ1ZSB2YWx1ZXMgYXJlICd5JywgJ3llcycsICd0JywgJ3Ry
dWUnLCAnb24nLCBhbmQgJzEnOyBmYWxzZSB2YWx1ZXMKLSAgICBhcmUgJ24nLCAnbm8nLCAnZics
ICdmYWxzZScsICdvZmYnLCBhbmQgJzAnLiAgUmFpc2VzIFZhbHVlRXJyb3IgaWYKLSAgICAndmFs
JyBpcyBhbnl0aGluZyBlbHNlLgotCi0gICAgLi4gbm90ZTo6IGNvcGllZCBmcm9tIGRpc3R1dGls
cy51dGlsCi0gICAgIiIiCi0gICAgdmFsID0gdmFsLmxvd2VyKCkKLSAgICBpZiB2YWwgaW4gKCd5
JywgJ3llcycsICd0JywgJ3RydWUnLCAnb24nLCAnMScpOgotICAgICAgICByZXR1cm4gMQotICAg
IGVsaWYgdmFsIGluICgnbicsICdubycsICdmJywgJ2ZhbHNlJywgJ29mZicsICcwJyk6Ci0gICAg
ICAgIHJldHVybiAwCi0gICAgZWxzZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxp
ZCB0cnV0aCB2YWx1ZSAlciIgJSAodmFsLCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L2RlYnVnZ2luZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZGVidWdnaW5nLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkN2RjYTc4MDk1NmVjMzk3NjJkMDRjYWExN2Y5ZDBm
YjNiZGVmZmMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvZGVidWdnaW5nLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTIz
ICswLDAgQEAKLSIiIiBpbnRlcmFjdGl2ZSBkZWJ1Z2dpbmcgd2l0aCBQREIsIHRoZSBQeXRob24g
RGVidWdnZXIuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHBkYgotaW1wb3J0IHN5cwotCi0KLWRlZiBw
eXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdl
bmVyYWwiKQotICAgIGdyb3VwLl9hZGRvcHRpb24oCi0gICAgICAgICctLXBkYicsIGRlc3Q9InVz
ZXBkYiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgIGhlbHA9InN0YXJ0IHRoZSBpbnRl
cmFjdGl2ZSBQeXRob24gZGVidWdnZXIgb24gZXJyb3JzLiIpCi0gICAgZ3JvdXAuX2FkZG9wdGlv
bigKLSAgICAgICAgJy0tcGRiY2xzJywgZGVzdD0idXNlcGRiX2NscyIsIG1ldGF2YXI9Im1vZHVs
ZW5hbWU6Y2xhc3NuYW1lIiwKLSAgICAgICAgaGVscD0ic3RhcnQgYSBjdXN0b20gaW50ZXJhY3Rp
dmUgUHl0aG9uIGRlYnVnZ2VyIG9uIGVycm9ycy4gIgotICAgICAgICAgICAgICJGb3IgZXhhbXBs
ZTogLS1wZGJjbHM9SVB5dGhvbi50ZXJtaW5hbC5kZWJ1Z2dlcjpUZXJtaW5hbFBkYiIpCi0KLQot
ZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICBpZiBjb25maWcuZ2V0dmFsdWUoInVz
ZXBkYl9jbHMiKToKLSAgICAgICAgbW9kbmFtZSwgY2xhc3NuYW1lID0gY29uZmlnLmdldHZhbHVl
KCJ1c2VwZGJfY2xzIikuc3BsaXQoIjoiKQotICAgICAgICBfX2ltcG9ydF9fKG1vZG5hbWUpCi0g
ICAgICAgIHBkYl9jbHMgPSBnZXRhdHRyKHN5cy5tb2R1bGVzW21vZG5hbWVdLCBjbGFzc25hbWUp
Ci0gICAgZWxzZToKLSAgICAgICAgcGRiX2NscyA9IHBkYi5QZGIKLQotICAgIGlmIGNvbmZpZy5n
ZXR2YWx1ZSgidXNlcGRiIik6Ci0gICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVy
KFBkYkludm9rZSgpLCAncGRiaW52b2tlJykKLQotICAgIG9sZCA9IChwZGIuc2V0X3RyYWNlLCBw
eXRlc3RQREIuX3BsdWdpbm1hbmFnZXIpCi0KLSAgICBkZWYgZmluKCk6Ci0gICAgICAgIHBkYi5z
ZXRfdHJhY2UsIHB5dGVzdFBEQi5fcGx1Z2lubWFuYWdlciA9IG9sZAotICAgICAgICBweXRlc3RQ
REIuX2NvbmZpZyA9IE5vbmUKLSAgICAgICAgcHl0ZXN0UERCLl9wZGJfY2xzID0gcGRiLlBkYgot
Ci0gICAgcGRiLnNldF90cmFjZSA9IHB5dGVzdFBEQi5zZXRfdHJhY2UKLSAgICBweXRlc3RQREIu
X3BsdWdpbm1hbmFnZXIgPSBjb25maWcucGx1Z2lubWFuYWdlcgotICAgIHB5dGVzdFBEQi5fY29u
ZmlnID0gY29uZmlnCi0gICAgcHl0ZXN0UERCLl9wZGJfY2xzID0gcGRiX2NscwotICAgIGNvbmZp
Zy5fY2xlYW51cC5hcHBlbmQoZmluKQotCi0KLWNsYXNzIHB5dGVzdFBEQjoKLSAgICAiIiIgUHNl
dWRvIFBEQiB0aGF0IGRlZmVycyB0byB0aGUgcmVhbCBwZGIuICIiIgotICAgIF9wbHVnaW5tYW5h
Z2VyID0gTm9uZQotICAgIF9jb25maWcgPSBOb25lCi0gICAgX3BkYl9jbHMgPSBwZGIuUGRiCi0K
LSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0X3RyYWNlKGNscyk6Ci0gICAgICAgICIiIiBp
bnZva2UgUERCIHNldF90cmFjZSBkZWJ1Z2dpbmcsIGRyb3BwaW5nIGFueSBJTyBjYXB0dXJpbmcu
ICIiIgotICAgICAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKLSAgICAgICAgZnJhbWUgPSBzeXMu
X2dldGZyYW1lKCkuZl9iYWNrCi0gICAgICAgIGlmIGNscy5fcGx1Z2lubWFuYWdlciBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIGNhcG1hbiA9IGNscy5fcGx1Z2lubWFuYWdlci5nZXRwbHVnaW4o
ImNhcHR1cmVtYW5hZ2VyIikKLSAgICAgICAgICAgIGlmIGNhcG1hbjoKLSAgICAgICAgICAgICAg
ICBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShpbl89VHJ1ZSkKLSAgICAgICAgICAgIHR3
ID0gX3B5dGVzdC5jb25maWcuY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcihjbHMuX2NvbmZpZykKLSAg
ICAgICAgICAgIHR3LmxpbmUoKQotICAgICAgICAgICAgdHcuc2VwKCI+IiwgIlBEQiBzZXRfdHJh
Y2UgKElPLWNhcHR1cmluZyB0dXJuZWQgb2ZmKSIpCi0gICAgICAgICAgICBjbHMuX3BsdWdpbm1h
bmFnZXIuaG9vay5weXRlc3RfZW50ZXJfcGRiKGNvbmZpZz1jbHMuX2NvbmZpZykKLSAgICAgICAg
Y2xzLl9wZGJfY2xzKCkuc2V0X3RyYWNlKGZyYW1lKQotCi0KLWNsYXNzIFBkYkludm9rZToKLSAg
ICBkZWYgcHl0ZXN0X2V4Y2VwdGlvbl9pbnRlcmFjdChzZWxmLCBub2RlLCBjYWxsLCByZXBvcnQp
OgotICAgICAgICBjYXBtYW4gPSBub2RlLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigi
Y2FwdHVyZW1hbmFnZXIiKQotICAgICAgICBpZiBjYXBtYW46Ci0gICAgICAgICAgICBvdXQsIGVy
ciA9IGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGluXz1UcnVlKQotICAgICAgICAgICAg
c3lzLnN0ZG91dC53cml0ZShvdXQpCi0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKGVycikK
LSAgICAgICAgX2VudGVyX3BkYihub2RlLCBjYWxsLmV4Y2luZm8sIHJlcG9ydCkKLQotICAgIGRl
ZiBweXRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCBleGNyZXByLCBleGNpbmZvKToKLSAgICAgICAg
Zm9yIGxpbmUgaW4gc3RyKGV4Y3JlcHIpLnNwbGl0KCJcbiIpOgotICAgICAgICAgICAgc3lzLnN0
ZGVyci53cml0ZSgiSU5URVJOQUxFUlJPUj4gJXNcbiIgJSBsaW5lKQotICAgICAgICAgICAgc3lz
LnN0ZGVyci5mbHVzaCgpCi0gICAgICAgIHRiID0gX3Bvc3Rtb3J0ZW1fdHJhY2ViYWNrKGV4Y2lu
Zm8pCi0gICAgICAgIHBvc3RfbW9ydGVtKHRiKQotCi0KLWRlZiBfZW50ZXJfcGRiKG5vZGUsIGV4
Y2luZm8sIHJlcCk6Ci0gICAgIyBYWFggd2UgcmUtdXNlIHRoZSBUZXJtaW5hbFJlcG9ydGVyJ3Mg
dGVybWluYWx3cml0ZXIKLSAgICAjIGJlY2F1c2UgdGhpcyBzZWVtcyB0byBhdm9pZCBzb21lIGVu
Y29kaW5nIHJlbGF0ZWQgdHJvdWJsZXMKLSAgICAjIGZvciBub3QgY29tcGxldGVseSBjbGVhciBy
ZWFzb25zLgotICAgIHR3ID0gbm9kZS5jb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oInRl
cm1pbmFscmVwb3J0ZXIiKS5fdHcKLSAgICB0dy5saW5lKCkKLSAgICB0dy5zZXAoIj4iLCAidHJh
Y2ViYWNrIikKLSAgICByZXAudG90ZXJtaW5hbCh0dykKLSAgICB0dy5zZXAoIj4iLCAiZW50ZXJp
bmcgUERCIikKLSAgICB0YiA9IF9wb3N0bW9ydGVtX3RyYWNlYmFjayhleGNpbmZvKQotICAgIHBv
c3RfbW9ydGVtKHRiKQotICAgIHJlcC5fcGRic2hvd24gPSBUcnVlCi0gICAgcmV0dXJuIHJlcAot
Ci0KLWRlZiBfcG9zdG1vcnRlbV90cmFjZWJhY2soZXhjaW5mbyk6Ci0gICAgIyBBIGRvY3Rlc3Qu
VW5leHBlY3RlZEV4Y2VwdGlvbiBpcyBub3QgdXNlZnVsIGZvciBwb3N0X21vcnRlbS4KLSAgICAj
IFVzZSB0aGUgdW5kZXJseWluZyBleGNlcHRpb24gaW5zdGVhZDoKLSAgICBmcm9tIGRvY3Rlc3Qg
aW1wb3J0IFVuZXhwZWN0ZWRFeGNlcHRpb24KLSAgICBpZiBpc2luc3RhbmNlKGV4Y2luZm8udmFs
dWUsIFVuZXhwZWN0ZWRFeGNlcHRpb24pOgotICAgICAgICByZXR1cm4gZXhjaW5mby52YWx1ZS5l
eGNfaW5mb1syXQotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiBleGNpbmZvLl9leGNpbmZvWzJd
Ci0KLQotZGVmIF9maW5kX2xhc3Rfbm9uX2hpZGRlbl9mcmFtZShzdGFjayk6Ci0gICAgaSA9IG1h
eCgwLCBsZW4oc3RhY2spIC0gMSkKLSAgICB3aGlsZSBpIGFuZCBzdGFja1tpXVswXS5mX2xvY2Fs
cy5nZXQoIl9fdHJhY2ViYWNraGlkZV9fIiwgRmFsc2UpOgotICAgICAgICBpIC09IDEKLSAgICBy
ZXR1cm4gaQotCi0KLWRlZiBwb3N0X21vcnRlbSh0KToKLSAgICBjbGFzcyBQZGIocHl0ZXN0UERC
Ll9wZGJfY2xzKToKLSAgICAgICAgZGVmIGdldF9zdGFjayhzZWxmLCBmLCB0KToKLSAgICAgICAg
ICAgIHN0YWNrLCBpID0gcGRiLlBkYi5nZXRfc3RhY2soc2VsZiwgZiwgdCkKLSAgICAgICAgICAg
IGlmIGYgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBpID0gX2ZpbmRfbGFzdF9ub25faGlkZGVu
X2ZyYW1lKHN0YWNrKQotICAgICAgICAgICAgcmV0dXJuIHN0YWNrLCBpCi0gICAgcCA9IFBkYigp
Ci0gICAgcC5yZXNldCgpCi0gICAgcC5pbnRlcmFjdGlvbihOb25lLCB0KQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9kZXByZWNhdGVkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9k
ZXByZWNhdGVkLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzBmYmVjYTdiYzll
OTc0MTcwYTllY2VhYzMyNzY3N2Y1NjFmMTIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZGVwcmVjYXRlZC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLSIiIgotVGhpcyBtb2R1bGUgY29udGFpbnMgZGVw
cmVjYXRpb24gbWVzc2FnZXMgYW5kIGJpdHMgb2YgY29kZSB1c2VkIGVsc2V3aGVyZSBpbiB0aGUg
Y29kZWJhc2UKLXRoYXQgaXMgcGxhbm5lZCB0byBiZSByZW1vdmVkIGluIHRoZSBuZXh0IHB5dGVz
dCByZWxlYXNlLgotCi1LZWVwaW5nIGl0IGluIGEgY2VudHJhbCBsb2NhdGlvbiBtYWtlcyBpdCBl
YXN5IHRvIHRyYWNrIHdoYXQgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkCi1iZSByZW1vdmVkIHdo
ZW4gdGhlIHRpbWUgY29tZXMuCi0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotCi1jbGFzcyBSZW1vdmVkSW5QeXRl
c3Q0V2FybmluZyhEZXByZWNhdGlvbldhcm5pbmcpOgotICAgICIiIndhcm5pbmcgY2xhc3MgZm9y
IGZlYXR1cmVzIHJlbW92ZWQgaW4gcHl0ZXN0IDQuMCIiIgotCi0KLU1BSU5fU1RSX0FSR1MgPSAn
cGFzc2luZyBhIHN0cmluZyB0byBweXRlc3QubWFpbigpIGlzIGRlcHJlY2F0ZWQsICcgXAotICAg
ICdwYXNzIGEgbGlzdCBvZiBhcmd1bWVudHMgaW5zdGVhZC4nCi0KLVlJRUxEX1RFU1RTID0gJ3lp
ZWxkIHRlc3RzIGFyZSBkZXByZWNhdGVkLCBhbmQgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4g
cHl0ZXN0IDQuMCcKLQotRlVOQ0FSR19QUkVGSVggPSAoCi0gICAgJ3tuYW1lfTogZGVjbGFyaW5n
IGZpeHR1cmVzIHVzaW5nICJweXRlc3RfZnVuY2FyZ19fIiBwcmVmaXggaXMgZGVwcmVjYXRlZCAn
Ci0gICAgJ2FuZCBzY2hlZHVsZWQgdG8gYmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4wLiAgJwotICAg
ICdQbGVhc2UgcmVtb3ZlIHRoZSBwcmVmaXggYW5kIHVzZSB0aGUgQHB5dGVzdC5maXh0dXJlIGRl
Y29yYXRvciBpbnN0ZWFkLicpCi0KLVNFVFVQX0NGR19QWVRFU1QgPSAnW3B5dGVzdF0gc2VjdGlv
biBpbiBzZXR1cC5jZmcgZmlsZXMgaXMgZGVwcmVjYXRlZCwgdXNlIFt0b29sOnB5dGVzdF0gaW5z
dGVhZC4nCi0KLUdFVEZVTkNBUkdWQUxVRSA9ICJ1c2Ugb2YgZ2V0ZnVuY2FyZ3ZhbHVlIGlzIGRl
cHJlY2F0ZWQsIHVzZSBnZXRmaXh0dXJldmFsdWUiCi0KLVJFU1VMVF9MT0cgPSAoCi0gICAgJy0t
cmVzdWx0LWxvZyBpcyBkZXByZWNhdGVkIGFuZCBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gcHl0
ZXN0IDQuMC5cbicKLSAgICAnU2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC91
c2FnZS5odG1sI2NyZWF0aW5nLXJlc3VsdGxvZy1mb3JtYXQtZmlsZXMgZm9yIG1vcmUgaW5mb3Jt
YXRpb24uJwotKQotCi1NQVJLX0lORk9fQVRUUklCVVRFID0gUmVtb3ZlZEluUHl0ZXN0NFdhcm5p
bmcoCi0gICAgIk1hcmtJbmZvIG9iamVjdHMgYXJlIGRlcHJlY2F0ZWQgYXMgdGhleSBjb250YWlu
IHRoZSBtZXJnZWQgbWFya3MiCi0pCi0KLU1BUktfUEFSQU1FVEVSU0VUX1VOUEFDS0lORyA9IFJl
bW92ZWRJblB5dGVzdDRXYXJuaW5nKAotICAgICJBcHBseWluZyBtYXJrcyBkaXJlY3RseSB0byBw
YXJhbWV0ZXJzIGlzIGRlcHJlY2F0ZWQsIgotICAgICIgcGxlYXNlIHVzZSBweXRlc3QucGFyYW0o
Li4uLCBtYXJrcz0uLi4pIGluc3RlYWQuXG4iCi0gICAgIkZvciBtb3JlIGRldGFpbHMsIHNlZTog
aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3BhcmFtZXRyaXplLmh0bWwiCi0pCi0K
LUNPTExFQ1RPUl9NQUtFSVRFTSA9IFJlbW92ZWRJblB5dGVzdDRXYXJuaW5nKAotICAgICJweWNv
bGxlY3RvciBtYWtlaXRlbSB3YXMgcmVtb3ZlZCAiCi0gICAgImFzIGl0IGlzIGFuIGFjY2lkZW50
aWFsbHkgbGVha2VkIGludGVybmFsIGFwaSIKLSkKLQotTUVUQUZVTkNfQUREX0NBTEwgPSAoCi0g
ICAgIk1ldGFmdW5jLmFkZGNhbGwgaXMgZGVwcmVjYXRlZCBhbmQgc2NoZWR1bGVkIHRvIGJlIHJl
bW92ZWQgaW4gcHl0ZXN0IDQuMC5cbiIKLSAgICAiUGxlYXNlIHVzZSBNZXRhZnVuYy5wYXJhbWV0
cml6ZSBpbnN0ZWFkLiIKLSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZG9jdGVz
dC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZG9jdGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYmJhOTBlNTUxYzUwNWFlZDk5M2E3OTkxOWRkMDM5OTk4NjEwYTZkMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L2RvY3Rlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNjkgKzAsMCBAQAotIiIiIGRp
c2NvdmVyIGFuZCBydW4gZG9jdGVzdHMgaW4gbW9kdWxlcyBhbmQgdGVzdCBmaWxlcy4iIiIKLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KLQotaW1wb3J0IHRyYWNlYmFjawotCi1pbXBvcnQgcHl0ZXN0Ci1mcm9tIF9weXRlc3Qu
X2NvZGUuY29kZSBpbXBvcnQgRXhjZXB0aW9uSW5mbywgUmVwckZpbGVMb2NhdGlvbiwgVGVybWlu
YWxSZXByCi1mcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IEZpeHR1cmVSZXF1ZXN0Ci0KLQot
RE9DVEVTVF9SRVBPUlRfQ0hPSUNFX05PTkUgPSAnbm9uZScKLURPQ1RFU1RfUkVQT1JUX0NIT0lD
RV9DRElGRiA9ICdjZGlmZicKLURPQ1RFU1RfUkVQT1JUX0NIT0lDRV9ORElGRiA9ICduZGlmZicK
LURPQ1RFU1RfUkVQT1JUX0NIT0lDRV9VRElGRiA9ICd1ZGlmZicKLURPQ1RFU1RfUkVQT1JUX0NI
T0lDRV9PTkxZX0ZJUlNUX0ZBSUxVUkUgPSAnb25seV9maXJzdF9mYWlsdXJlJwotCi1ET0NURVNU
X1JFUE9SVF9DSE9JQ0VTID0gKAotICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9OT05FLAotICAg
IERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9DRElGRiwKLSAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0Vf
TkRJRkYsCi0gICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX1VESUZGLAotICAgIERPQ1RFU1RfUkVQ
T1JUX0NIT0lDRV9PTkxZX0ZJUlNUX0ZBSUxVUkUsCi0pCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRp
b24ocGFyc2VyKToKLSAgICBwYXJzZXIuYWRkaW5pKCdkb2N0ZXN0X29wdGlvbmZsYWdzJywgJ29w
dGlvbiBmbGFncyBmb3IgZG9jdGVzdHMnLAotICAgICAgICAgICAgICAgICAgdHlwZT0iYXJncyIs
IGRlZmF1bHQ9WyJFTExJUFNJUyJdKQotICAgIHBhcnNlci5hZGRpbmkoImRvY3Rlc3RfZW5jb2Rp
bmciLCAnZW5jb2RpbmcgdXNlZCBmb3IgZG9jdGVzdCBmaWxlcycsIGRlZmF1bHQ9InV0Zi04IikK
LSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiY29sbGVjdCIpCi0gICAgZ3JvdXAuYWRkb3B0
aW9uKCItLWRvY3Rlc3QtbW9kdWxlcyIsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9InJ1biBk
b2N0ZXN0cyBpbiBhbGwgLnB5IG1vZHVsZXMiLAotICAgICAgICAgICAgICAgICAgICBkZXN0PSJk
b2N0ZXN0bW9kdWxlcyIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCItLWRvY3Rlc3QtcmVwb3J0IiwK
LSAgICAgICAgICAgICAgICAgICAgdHlwZT1zdHIubG93ZXIsIGRlZmF1bHQ9InVkaWZmIiwKLSAg
ICAgICAgICAgICAgICAgICAgaGVscD0iY2hvb3NlIGFub3RoZXIgb3V0cHV0IGZvcm1hdCBmb3Ig
ZGlmZnMgb24gZG9jdGVzdCBmYWlsdXJlIiwKLSAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1E
T0NURVNUX1JFUE9SVF9DSE9JQ0VTLAotICAgICAgICAgICAgICAgICAgICBkZXN0PSJkb2N0ZXN0
cmVwb3J0IikKLSAgICBncm91cC5hZGRvcHRpb24oIi0tZG9jdGVzdC1nbG9iIiwKLSAgICAgICAg
ICAgICAgICAgICAgYWN0aW9uPSJhcHBlbmQiLCBkZWZhdWx0PVtdLCBtZXRhdmFyPSJwYXQiLAot
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJkb2N0ZXN0cyBmaWxlIG1hdGNoaW5nIHBhdHRlcm4s
IGRlZmF1bHQ6IHRlc3QqLnR4dCIsCi0gICAgICAgICAgICAgICAgICAgIGRlc3Q9ImRvY3Rlc3Rn
bG9iIikKLSAgICBncm91cC5hZGRvcHRpb24oIi0tZG9jdGVzdC1pZ25vcmUtaW1wb3J0LWVycm9y
cyIsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFs
c2UsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9Imlnbm9yZSBkb2N0ZXN0IEltcG9ydEVycm9y
cyIsCi0gICAgICAgICAgICAgICAgICAgIGRlc3Q9ImRvY3Rlc3RfaWdub3JlX2ltcG9ydF9lcnJv
cnMiKQotCi0KLWRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6Ci0gICAgY29u
ZmlnID0gcGFyZW50LmNvbmZpZwotICAgIGlmIHBhdGguZXh0ID09ICIucHkiOgotICAgICAgICBp
ZiBjb25maWcub3B0aW9uLmRvY3Rlc3Rtb2R1bGVzIGFuZCBub3QgX2lzX3NldHVwX3B5KGNvbmZp
ZywgcGF0aCwgcGFyZW50KToKLSAgICAgICAgICAgIHJldHVybiBEb2N0ZXN0TW9kdWxlKHBhdGgs
IHBhcmVudCkKLSAgICBlbGlmIF9pc19kb2N0ZXN0KGNvbmZpZywgcGF0aCwgcGFyZW50KToKLSAg
ICAgICAgcmV0dXJuIERvY3Rlc3RUZXh0ZmlsZShwYXRoLCBwYXJlbnQpCi0KLQotZGVmIF9pc19z
ZXR1cF9weShjb25maWcsIHBhdGgsIHBhcmVudCk6Ci0gICAgaWYgcGF0aC5iYXNlbmFtZSAhPSAi
c2V0dXAucHkiOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICBjb250ZW50cyA9IHBhdGgucmVh
ZCgpCi0gICAgcmV0dXJuICdzZXR1cHRvb2xzJyBpbiBjb250ZW50cyBvciAnZGlzdHV0aWxzJyBp
biBjb250ZW50cwotCi0KLWRlZiBfaXNfZG9jdGVzdChjb25maWcsIHBhdGgsIHBhcmVudCk6Ci0g
ICAgaWYgcGF0aC5leHQgaW4gKCcudHh0JywgJy5yc3QnKSBhbmQgcGFyZW50LnNlc3Npb24uaXNp
bml0cGF0aChwYXRoKToKLSAgICAgICAgcmV0dXJuIFRydWUKLSAgICBnbG9icyA9IGNvbmZpZy5n
ZXRvcHRpb24oImRvY3Rlc3RnbG9iIikgb3IgWyd0ZXN0Ki50eHQnXQotICAgIGZvciBnbG9iIGlu
IGdsb2JzOgotICAgICAgICBpZiBwYXRoLmNoZWNrKGZubWF0Y2g9Z2xvYik6Ci0gICAgICAgICAg
ICByZXR1cm4gVHJ1ZQotICAgIHJldHVybiBGYWxzZQotCi0KLWNsYXNzIFJlcHJGYWlsRG9jdGVz
dChUZXJtaW5hbFJlcHIpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcHJsb2NhdGlvbiwg
bGluZXMpOgotICAgICAgICBzZWxmLnJlcHJsb2NhdGlvbiA9IHJlcHJsb2NhdGlvbgotICAgICAg
ICBzZWxmLmxpbmVzID0gbGluZXMKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAg
ICAgICAgZm9yIGxpbmUgaW4gc2VsZi5saW5lczoKLSAgICAgICAgICAgIHR3LmxpbmUobGluZSkK
LSAgICAgICAgc2VsZi5yZXBybG9jYXRpb24udG90ZXJtaW5hbCh0dykKLQotCi1jbGFzcyBEb2N0
ZXN0SXRlbShweXRlc3QuSXRlbSk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhcmVu
dCwgcnVubmVyPU5vbmUsIGR0ZXN0PU5vbmUpOgotICAgICAgICBzdXBlcihEb2N0ZXN0SXRlbSwg
c2VsZikuX19pbml0X18obmFtZSwgcGFyZW50KQotICAgICAgICBzZWxmLnJ1bm5lciA9IHJ1bm5l
cgotICAgICAgICBzZWxmLmR0ZXN0ID0gZHRlc3QKLSAgICAgICAgc2VsZi5vYmogPSBOb25lCi0g
ICAgICAgIHNlbGYuZml4dHVyZV9yZXF1ZXN0ID0gTm9uZQotCi0gICAgZGVmIHNldHVwKHNlbGYp
OgotICAgICAgICBpZiBzZWxmLmR0ZXN0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5m
aXh0dXJlX3JlcXVlc3QgPSBfc2V0dXBfZml4dHVyZXMoc2VsZikKLSAgICAgICAgICAgIGdsb2Jz
ID0gZGljdChnZXRmaXh0dXJlPXNlbGYuZml4dHVyZV9yZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSkK
LSAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLmZpeHR1cmVfcmVxdWVzdC5nZXRm
aXh0dXJldmFsdWUoJ2RvY3Rlc3RfbmFtZXNwYWNlJykuaXRlbXMoKToKLSAgICAgICAgICAgICAg
ICBnbG9ic1tuYW1lXSA9IHZhbHVlCi0gICAgICAgICAgICBzZWxmLmR0ZXN0Lmdsb2JzLnVwZGF0
ZShnbG9icykKLQotICAgIGRlZiBydW50ZXN0KHNlbGYpOgotICAgICAgICBfY2hlY2tfYWxsX3Nr
aXBwZWQoc2VsZi5kdGVzdCkKLSAgICAgICAgc2VsZi5ydW5uZXIucnVuKHNlbGYuZHRlc3QpCi0K
LSAgICBkZWYgcmVwcl9mYWlsdXJlKHNlbGYsIGV4Y2luZm8pOgotICAgICAgICBpbXBvcnQgZG9j
dGVzdAotICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2UoKGRvY3Rlc3QuRG9jVGVzdEZh
aWx1cmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdGVzdC5VbmV4cGVj
dGVkRXhjZXB0aW9uKSk6Ci0gICAgICAgICAgICBkb2N0ZXN0ZmFpbHVyZSA9IGV4Y2luZm8udmFs
dWUKLSAgICAgICAgICAgIGV4YW1wbGUgPSBkb2N0ZXN0ZmFpbHVyZS5leGFtcGxlCi0gICAgICAg
ICAgICB0ZXN0ID0gZG9jdGVzdGZhaWx1cmUudGVzdAotICAgICAgICAgICAgZmlsZW5hbWUgPSB0
ZXN0LmZpbGVuYW1lCi0gICAgICAgICAgICBpZiB0ZXN0LmxpbmVubyBpcyBOb25lOgotICAgICAg
ICAgICAgICAgIGxpbmVubyA9IE5vbmUKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgbGluZW5vID0gdGVzdC5saW5lbm8gKyBleGFtcGxlLmxpbmVubyArIDEKLSAgICAgICAgICAg
IG1lc3NhZ2UgPSBleGNpbmZvLnR5cGUuX19uYW1lX18KLSAgICAgICAgICAgIHJlcHJsb2NhdGlv
biA9IFJlcHJGaWxlTG9jYXRpb24oZmlsZW5hbWUsIGxpbmVubywgbWVzc2FnZSkKLSAgICAgICAg
ICAgIGNoZWNrZXIgPSBfZ2V0X2NoZWNrZXIoKQotICAgICAgICAgICAgcmVwb3J0X2Nob2ljZSA9
IF9nZXRfcmVwb3J0X2Nob2ljZShzZWxmLmNvbmZpZy5nZXRvcHRpb24oImRvY3Rlc3RyZXBvcnQi
KSkKLSAgICAgICAgICAgIGlmIGxpbmVubyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBs
aW5lcyA9IGRvY3Rlc3RmYWlsdXJlLnRlc3QuZG9jc3RyaW5nLnNwbGl0bGluZXMoRmFsc2UpCi0g
ICAgICAgICAgICAgICAgIyBhZGQgbGluZSBudW1iZXJzIHRvIHRoZSBsZWZ0IG9mIHRoZSBlcnJv
ciBtZXNzYWdlCi0gICAgICAgICAgICAgICAgbGluZXMgPSBbIiUwM2QgJXMiICUgKGkgKyB0ZXN0
LmxpbmVubyArIDEsIHgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpLCB4KSBpbiBl
bnVtZXJhdGUobGluZXMpXQotICAgICAgICAgICAgICAgICMgdHJpbSBkb2NzdHJpbmcgZXJyb3Ig
bGluZXMgdG8gMTAKLSAgICAgICAgICAgICAgICBsaW5lcyA9IGxpbmVzW21heChleGFtcGxlLmxp
bmVubyAtIDksIDApOmV4YW1wbGUubGluZW5vICsgMV0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgbGluZXMgPSBbJ0VYQU1QTEUgTE9DQVRJT04gVU5LTk9XTiwgbm90IHNob3dp
bmcgYWxsIHRlc3RzIG9mIHRoYXQgZXhhbXBsZSddCi0gICAgICAgICAgICAgICAgaW5kZW50ID0g
Jz4+PicKLSAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBleGFtcGxlLnNvdXJjZS5zcGxpdGxp
bmVzKCk6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnPz8/ICVzICVzJyAlIChp
bmRlbnQsIGxpbmUpKQotICAgICAgICAgICAgICAgICAgICBpbmRlbnQgPSAnLi4uJwotICAgICAg
ICAgICAgaWYgZXhjaW5mby5lcnJpc2luc3RhbmNlKGRvY3Rlc3QuRG9jVGVzdEZhaWx1cmUpOgot
ICAgICAgICAgICAgICAgIGxpbmVzICs9IGNoZWNrZXIub3V0cHV0X2RpZmZlcmVuY2UoZXhhbXBs
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRv
Y3Rlc3RmYWlsdXJlLmdvdCwgcmVwb3J0X2Nob2ljZSkuc3BsaXQoIlxuIikKLSAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgaW5uZXJfZXhjaW5mbyA9IEV4Y2VwdGlvbkluZm8oZXhj
aW5mby52YWx1ZS5leGNfaW5mbykKLSAgICAgICAgICAgICAgICBsaW5lcyArPSBbIlVORVhQRUNU
RUQgRVhDRVBUSU9OOiAlcyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICByZXByKGlubmVy
X2V4Y2luZm8udmFsdWUpXQotICAgICAgICAgICAgICAgIGxpbmVzICs9IHRyYWNlYmFjay5mb3Jt
YXRfZXhjZXB0aW9uKCpleGNpbmZvLnZhbHVlLmV4Y19pbmZvKQotICAgICAgICAgICAgcmV0dXJu
IFJlcHJGYWlsRG9jdGVzdChyZXBybG9jYXRpb24sIGxpbmVzKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgcmV0dXJuIHN1cGVyKERvY3Rlc3RJdGVtLCBzZWxmKS5yZXByX2ZhaWx1cmUoZXhj
aW5mbykKLQotICAgIGRlZiByZXBvcnRpbmZvKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5m
c3BhdGgsIHNlbGYuZHRlc3QubGluZW5vLCAiW2RvY3Rlc3RdICVzIiAlIHNlbGYubmFtZQotCi0K
LWRlZiBfZ2V0X2ZsYWdfbG9va3VwKCk6Ci0gICAgaW1wb3J0IGRvY3Rlc3QKLSAgICByZXR1cm4g
ZGljdChET05UX0FDQ0VQVF9UUlVFX0ZPUl8xPWRvY3Rlc3QuRE9OVF9BQ0NFUFRfVFJVRV9GT1Jf
MSwKLSAgICAgICAgICAgICAgICBET05UX0FDQ0VQVF9CTEFOS0xJTkU9ZG9jdGVzdC5ET05UX0FD
Q0VQVF9CTEFOS0xJTkUsCi0gICAgICAgICAgICAgICAgTk9STUFMSVpFX1dISVRFU1BBQ0U9ZG9j
dGVzdC5OT1JNQUxJWkVfV0hJVEVTUEFDRSwKLSAgICAgICAgICAgICAgICBFTExJUFNJUz1kb2N0
ZXN0LkVMTElQU0lTLAotICAgICAgICAgICAgICAgIElHTk9SRV9FWENFUFRJT05fREVUQUlMPWRv
Y3Rlc3QuSUdOT1JFX0VYQ0VQVElPTl9ERVRBSUwsCi0gICAgICAgICAgICAgICAgQ09NUEFSSVNP
Tl9GTEFHUz1kb2N0ZXN0LkNPTVBBUklTT05fRkxBR1MsCi0gICAgICAgICAgICAgICAgQUxMT1df
VU5JQ09ERT1fZ2V0X2FsbG93X3VuaWNvZGVfZmxhZygpLAotICAgICAgICAgICAgICAgIEFMTE9X
X0JZVEVTPV9nZXRfYWxsb3dfYnl0ZXNfZmxhZygpLAotICAgICAgICAgICAgICAgICkKLQotCi1k
ZWYgZ2V0X29wdGlvbmZsYWdzKHBhcmVudCk6Ci0gICAgb3B0aW9uZmxhZ3Nfc3RyID0gcGFyZW50
LmNvbmZpZy5nZXRpbmkoImRvY3Rlc3Rfb3B0aW9uZmxhZ3MiKQotICAgIGZsYWdfbG9va3VwX3Rh
YmxlID0gX2dldF9mbGFnX2xvb2t1cCgpCi0gICAgZmxhZ19hY2MgPSAwCi0gICAgZm9yIGZsYWcg
aW4gb3B0aW9uZmxhZ3Nfc3RyOgotICAgICAgICBmbGFnX2FjYyB8PSBmbGFnX2xvb2t1cF90YWJs
ZVtmbGFnXQotICAgIHJldHVybiBmbGFnX2FjYwotCi0KLWNsYXNzIERvY3Rlc3RUZXh0ZmlsZShw
eXRlc3QuTW9kdWxlKToKLSAgICBvYmogPSBOb25lCi0KLSAgICBkZWYgY29sbGVjdChzZWxmKToK
LSAgICAgICAgaW1wb3J0IGRvY3Rlc3QKLQotICAgICAgICAjIGluc3BpcmVkIGJ5IGRvY3Rlc3Qu
dGVzdGZpbGU7IGlkZWFsbHkgd2Ugd291bGQgdXNlIGl0IGRpcmVjdGx5LAotICAgICAgICAjIGJ1
dCBpdCBkb2Vzbid0IHN1cHBvcnQgcGFzc2luZyBhIGN1c3RvbSBjaGVja2VyCi0gICAgICAgIGVu
Y29kaW5nID0gc2VsZi5jb25maWcuZ2V0aW5pKCJkb2N0ZXN0X2VuY29kaW5nIikKLSAgICAgICAg
dGV4dCA9IHNlbGYuZnNwYXRoLnJlYWRfdGV4dChlbmNvZGluZykKLSAgICAgICAgZmlsZW5hbWUg
PSBzdHIoc2VsZi5mc3BhdGgpCi0gICAgICAgIG5hbWUgPSBzZWxmLmZzcGF0aC5iYXNlbmFtZQot
ICAgICAgICBnbG9icyA9IHsnX19uYW1lX18nOiAnX19tYWluX18nfQotCi0gICAgICAgIG9wdGlv
bmZsYWdzID0gZ2V0X29wdGlvbmZsYWdzKHNlbGYpCi0gICAgICAgIHJ1bm5lciA9IGRvY3Rlc3Qu
RGVidWdSdW5uZXIodmVyYm9zZT0wLCBvcHRpb25mbGFncz1vcHRpb25mbGFncywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VyPV9nZXRfY2hlY2tlcigpKQotICAg
ICAgICBfZml4X3Nwb29mX3B5dGhvbjIocnVubmVyLCBlbmNvZGluZykKLQotICAgICAgICBwYXJz
ZXIgPSBkb2N0ZXN0LkRvY1Rlc3RQYXJzZXIoKQotICAgICAgICB0ZXN0ID0gcGFyc2VyLmdldF9k
b2N0ZXN0KHRleHQsIGdsb2JzLCBuYW1lLCBmaWxlbmFtZSwgMCkKLSAgICAgICAgaWYgdGVzdC5l
eGFtcGxlczoKLSAgICAgICAgICAgIHlpZWxkIERvY3Rlc3RJdGVtKHRlc3QubmFtZSwgc2VsZiwg
cnVubmVyLCB0ZXN0KQotCi0KLWRlZiBfY2hlY2tfYWxsX3NraXBwZWQodGVzdCk6Ci0gICAgIiIi
cmFpc2VzIHB5dGVzdC5za2lwKCkgaWYgYWxsIGV4YW1wbGVzIGluIHRoZSBnaXZlbiBEb2NUZXN0
IGhhdmUgdGhlIFNLSVAKLSAgICBvcHRpb24gc2V0LgotICAgICIiIgotICAgIGltcG9ydCBkb2N0
ZXN0Ci0gICAgYWxsX3NraXBwZWQgPSBhbGwoeC5vcHRpb25zLmdldChkb2N0ZXN0LlNLSVAsIEZh
bHNlKSBmb3IgeCBpbiB0ZXN0LmV4YW1wbGVzKQotICAgIGlmIGFsbF9za2lwcGVkOgotICAgICAg
ICBweXRlc3Quc2tpcCgnYWxsIHRlc3RzIHNraXBwZWQgYnkgK1NLSVAgb3B0aW9uJykKLQotCi1j
bGFzcyBEb2N0ZXN0TW9kdWxlKHB5dGVzdC5Nb2R1bGUpOgotICAgIGRlZiBjb2xsZWN0KHNlbGYp
OgotICAgICAgICBpbXBvcnQgZG9jdGVzdAotICAgICAgICBpZiBzZWxmLmZzcGF0aC5iYXNlbmFt
ZSA9PSAiY29uZnRlc3QucHkiOgotICAgICAgICAgICAgbW9kdWxlID0gc2VsZi5jb25maWcucGx1
Z2lubWFuYWdlci5faW1wb3J0Y29uZnRlc3Qoc2VsZi5mc3BhdGgpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbW9kdWxlID0gc2VsZi5mc3BhdGgucHlp
bXBvcnQoKQotICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgICAg
IGlmIHNlbGYuY29uZmlnLmdldHZhbHVlKCdkb2N0ZXN0X2lnbm9yZV9pbXBvcnRfZXJyb3JzJyk6
Ci0gICAgICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCd1bmFibGUgdG8gaW1wb3J0IG1vZHVs
ZSAlcicgJSBzZWxmLmZzcGF0aCkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICByYWlzZQotICAgICAgICAjIHVzZXMgaW50ZXJuYWwgZG9jdGVzdCBtb2R1bGUgcGFy
c2luZyBtZWNoYW5pc20KLSAgICAgICAgZmluZGVyID0gZG9jdGVzdC5Eb2NUZXN0RmluZGVyKCkK
LSAgICAgICAgb3B0aW9uZmxhZ3MgPSBnZXRfb3B0aW9uZmxhZ3Moc2VsZikKLSAgICAgICAgcnVu
bmVyID0gZG9jdGVzdC5EZWJ1Z1J1bm5lcih2ZXJib3NlPTAsIG9wdGlvbmZsYWdzPW9wdGlvbmZs
YWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZXI9X2dldF9j
aGVja2VyKCkpCi0KLSAgICAgICAgZm9yIHRlc3QgaW4gZmluZGVyLmZpbmQobW9kdWxlLCBtb2R1
bGUuX19uYW1lX18pOgotICAgICAgICAgICAgaWYgdGVzdC5leGFtcGxlczogICMgc2tpcCBlbXB0
eSBkb2N0ZXN0cwotICAgICAgICAgICAgICAgIHlpZWxkIERvY3Rlc3RJdGVtKHRlc3QubmFtZSwg
c2VsZiwgcnVubmVyLCB0ZXN0KQotCi0KLWRlZiBfc2V0dXBfZml4dHVyZXMoZG9jdGVzdF9pdGVt
KToKLSAgICAiIiIKLSAgICBVc2VkIGJ5IERvY3Rlc3RUZXh0ZmlsZSBhbmQgRG9jdGVzdEl0ZW0g
dG8gc2V0dXAgZml4dHVyZSBpbmZvcm1hdGlvbi4KLSAgICAiIiIKLSAgICBkZWYgZnVuYygpOgot
ICAgICAgICBwYXNzCi0KLSAgICBkb2N0ZXN0X2l0ZW0uZnVuY2FyZ3MgPSB7fQotICAgIGZtID0g
ZG9jdGVzdF9pdGVtLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyCi0gICAgZG9jdGVzdF9pdGVtLl9m
aXh0dXJlaW5mbyA9IGZtLmdldGZpeHR1cmVpbmZvKG5vZGU9ZG9jdGVzdF9pdGVtLCBmdW5jPWZ1
bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
cz1Ob25lLCBmdW5jYXJncz1GYWxzZSkKLSAgICBmaXh0dXJlX3JlcXVlc3QgPSBGaXh0dXJlUmVx
dWVzdChkb2N0ZXN0X2l0ZW0pCi0gICAgZml4dHVyZV9yZXF1ZXN0Ll9maWxsZml4dHVyZXMoKQot
ICAgIHJldHVybiBmaXh0dXJlX3JlcXVlc3QKLQotCi1kZWYgX2dldF9jaGVja2VyKCk6Ci0gICAg
IiIiCi0gICAgUmV0dXJucyBhIGRvY3Rlc3QuT3V0cHV0Q2hlY2tlciBzdWJjbGFzcyB0aGF0IHRh
a2VzIGluIGFjY291bnQgdGhlCi0gICAgQUxMT1dfVU5JQ09ERSBvcHRpb24gdG8gaWdub3JlIHUn
JyBwcmVmaXhlcyBpbiBzdHJpbmdzIGFuZCBBTExPV19CWVRFUwotICAgIHRvIHN0cmlwIGInJyBw
cmVmaXhlcy4KLSAgICBVc2VmdWwgd2hlbiB0aGUgc2FtZSBkb2N0ZXN0IHNob3VsZCBydW4gaW4g
UHl0aG9uIDIgYW5kIFB5dGhvbiAzLgotCi0gICAgQW4gaW5uZXIgY2xhc3MgaXMgdXNlZCB0byBh
dm9pZCBpbXBvcnRpbmcgImRvY3Rlc3QiIGF0IHRoZSBtb2R1bGUKLSAgICBsZXZlbC4KLSAgICAi
IiIKLSAgICBpZiBoYXNhdHRyKF9nZXRfY2hlY2tlciwgJ0xpdGVyYWxzT3V0cHV0Q2hlY2tlcicp
OgotICAgICAgICByZXR1cm4gX2dldF9jaGVja2VyLkxpdGVyYWxzT3V0cHV0Q2hlY2tlcigpCi0K
LSAgICBpbXBvcnQgZG9jdGVzdAotICAgIGltcG9ydCByZQotCi0gICAgY2xhc3MgTGl0ZXJhbHNP
dXRwdXRDaGVja2VyKGRvY3Rlc3QuT3V0cHV0Q2hlY2tlcik6Ci0gICAgICAgICIiIgotICAgICAg
ICBDb3BpZWQgZnJvbSBkb2N0ZXN0X25vc2VfcGx1Z2luLnB5IGZyb20gdGhlIG5sdGsgcHJvamVj
dDoKLSAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ubHRrL25sdGsKLQotICAgICAgICBG
dXJ0aGVyIGV4dGVuZGVkIHRvIGFsc28gc3VwcG9ydCBieXRlIGxpdGVyYWxzLgotICAgICAgICAi
IiIKLQotICAgICAgICBfdW5pY29kZV9saXRlcmFsX3JlID0gcmUuY29tcGlsZShyIihcV3xeKVt1
VV0oW3JSXT9bXCdcIl0pIiwgcmUuVU5JQ09ERSkKLSAgICAgICAgX2J5dGVzX2xpdGVyYWxfcmUg
PSByZS5jb21waWxlKHIiKFxXfF4pW2JCXShbclJdP1tcJ1wiXSkiLCByZS5VTklDT0RFKQotCi0g
ICAgICAgIGRlZiBjaGVja19vdXRwdXQoc2VsZiwgd2FudCwgZ290LCBvcHRpb25mbGFncyk6Ci0g
ICAgICAgICAgICByZXMgPSBkb2N0ZXN0Lk91dHB1dENoZWNrZXIuY2hlY2tfb3V0cHV0KHNlbGYs
IHdhbnQsIGdvdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3B0aW9uZmxhZ3MpCi0gICAgICAgICAgICBpZiByZXM6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIFRydWUKLQotICAgICAgICAgICAgYWxsb3dfdW5pY29kZSA9IG9wdGlvbmZsYWdz
ICYgX2dldF9hbGxvd191bmljb2RlX2ZsYWcoKQotICAgICAgICAgICAgYWxsb3dfYnl0ZXMgPSBv
cHRpb25mbGFncyAmIF9nZXRfYWxsb3dfYnl0ZXNfZmxhZygpCi0gICAgICAgICAgICBpZiBub3Qg
YWxsb3dfdW5pY29kZSBhbmQgbm90IGFsbG93X2J5dGVzOgotICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQotCi0gICAgICAgICAgICBlbHNlOiAgIyBwcmFnbWE6IG5vIGNvdmVyCi0gICAgICAg
ICAgICAgICAgZGVmIHJlbW92ZV9wcmVmaXhlcyhyZWdleCwgdHh0KToKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlLnN1YihyZWdleCwgcidcMVwyJywgdHh0KQotCi0gICAgICAgICAgICAg
ICAgaWYgYWxsb3dfdW5pY29kZToKLSAgICAgICAgICAgICAgICAgICAgd2FudCA9IHJlbW92ZV9w
cmVmaXhlcyhzZWxmLl91bmljb2RlX2xpdGVyYWxfcmUsIHdhbnQpCi0gICAgICAgICAgICAgICAg
ICAgIGdvdCA9IHJlbW92ZV9wcmVmaXhlcyhzZWxmLl91bmljb2RlX2xpdGVyYWxfcmUsIGdvdCkK
LSAgICAgICAgICAgICAgICBpZiBhbGxvd19ieXRlczoKLSAgICAgICAgICAgICAgICAgICAgd2Fu
dCA9IHJlbW92ZV9wcmVmaXhlcyhzZWxmLl9ieXRlc19saXRlcmFsX3JlLCB3YW50KQotICAgICAg
ICAgICAgICAgICAgICBnb3QgPSByZW1vdmVfcHJlZml4ZXMoc2VsZi5fYnl0ZXNfbGl0ZXJhbF9y
ZSwgZ290KQotICAgICAgICAgICAgICAgIHJlcyA9IGRvY3Rlc3QuT3V0cHV0Q2hlY2tlci5jaGVj
a19vdXRwdXQoc2VsZiwgd2FudCwgZ290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uZmxhZ3MpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHJlcwotCi0gICAgX2dldF9jaGVja2VyLkxpdGVyYWxzT3V0cHV0Q2hlY2tlciA9IExp
dGVyYWxzT3V0cHV0Q2hlY2tlcgotICAgIHJldHVybiBfZ2V0X2NoZWNrZXIuTGl0ZXJhbHNPdXRw
dXRDaGVja2VyKCkKLQotCi1kZWYgX2dldF9hbGxvd191bmljb2RlX2ZsYWcoKToKLSAgICAiIiIK
LSAgICBSZWdpc3RlcnMgYW5kIHJldHVybnMgdGhlIEFMTE9XX1VOSUNPREUgZmxhZy4KLSAgICAi
IiIKLSAgICBpbXBvcnQgZG9jdGVzdAotICAgIHJldHVybiBkb2N0ZXN0LnJlZ2lzdGVyX29wdGlv
bmZsYWcoJ0FMTE9XX1VOSUNPREUnKQotCi0KLWRlZiBfZ2V0X2FsbG93X2J5dGVzX2ZsYWcoKToK
LSAgICAiIiIKLSAgICBSZWdpc3RlcnMgYW5kIHJldHVybnMgdGhlIEFMTE9XX0JZVEVTIGZsYWcu
Ci0gICAgIiIiCi0gICAgaW1wb3J0IGRvY3Rlc3QKLSAgICByZXR1cm4gZG9jdGVzdC5yZWdpc3Rl
cl9vcHRpb25mbGFnKCdBTExPV19CWVRFUycpCi0KLQotZGVmIF9nZXRfcmVwb3J0X2Nob2ljZShr
ZXkpOgotICAgICIiIgotICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYWN0dWFsIGBkb2N0
ZXN0YCBtb2R1bGUgZmxhZyB2YWx1ZSwgd2Ugd2FudCB0byBkbyBpdCBhcyBsYXRlIGFzIHBvc3Np
YmxlIHRvIGF2b2lkCi0gICAgaW1wb3J0aW5nIGBkb2N0ZXN0YCBhbmQgYWxsIGl0cyBkZXBlbmRl
bmNpZXMgd2hlbiBwYXJzaW5nIG9wdGlvbnMsIGFzIGl0IGFkZHMgb3ZlcmhlYWQgYW5kIGJyZWFr
cyB0ZXN0cy4KLSAgICAiIiIKLSAgICBpbXBvcnQgZG9jdGVzdAotCi0gICAgcmV0dXJuIHsKLSAg
ICAgICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX1VESUZGOiBkb2N0ZXN0LlJFUE9SVF9VRElGRiwK
LSAgICAgICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX0NESUZGOiBkb2N0ZXN0LlJFUE9SVF9DRElG
RiwKLSAgICAgICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX05ESUZGOiBkb2N0ZXN0LlJFUE9SVF9O
RElGRiwKLSAgICAgICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX09OTFlfRklSU1RfRkFJTFVSRTog
ZG9jdGVzdC5SRVBPUlRfT05MWV9GSVJTVF9GQUlMVVJFLAotICAgICAgICBET0NURVNUX1JFUE9S
VF9DSE9JQ0VfTk9ORTogMCwKLSAgICB9W2tleV0KLQotCi1kZWYgX2ZpeF9zcG9vZl9weXRob24y
KHJ1bm5lciwgZW5jb2RpbmcpOgotICAgICIiIgotICAgIEluc3RhbGxzIGEgIlNwb29mT3V0IiBp
bnRvIHRoZSBnaXZlbiBEZWJ1Z1J1bm5lciBzbyBpdCBwcm9wZXJseSBkZWFscyB3aXRoIHVuaWNv
ZGUgb3V0cHV0LiBUaGlzCi0gICAgc2hvdWxkIHBhdGNoIG9ubHkgZG9jdGVzdHMgZm9yIHRleHQg
ZmlsZXMgYmVjYXVzZSB0aGV5IGRvbid0IGhhdmUgYSB3YXkgdG8gZGVjbGFyZSB0aGVpcgotICAg
IGVuY29kaW5nLiBEb2N0ZXN0cyBpbiBkb2NzdHJpbmdzIGZyb20gUHl0aG9uIG1vZHVsZXMgZG9u
J3QgaGF2ZSB0aGUgc2FtZSBwcm9ibGVtIGdpdmVuIHRoYXQKLSAgICBQeXRob24gYWxyZWFkeSBk
ZWNvZGVkIHRoZSBzdHJpbmdzLgotCi0gICAgVGhpcyBmaXhlcyB0aGUgcHJvYmxlbSByZWxhdGVk
IGluIGlzc3VlICMyNDM0LgotICAgICIiIgotICAgIGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0
IF9QWTIKLSAgICBpZiBub3QgX1BZMjoKLSAgICAgICAgcmV0dXJuCi0KLSAgICBmcm9tIGRvY3Rl
c3QgaW1wb3J0IF9TcG9vZk91dAotCi0gICAgY2xhc3MgVW5pY29kZVNwb29mKF9TcG9vZk91dCk6
Ci0KLSAgICAgICAgZGVmIGdldHZhbHVlKHNlbGYpOgotICAgICAgICAgICAgcmVzdWx0ID0gX1Nw
b29mT3V0LmdldHZhbHVlKHNlbGYpCi0gICAgICAgICAgICBpZiBlbmNvZGluZzoKLSAgICAgICAg
ICAgICAgICByZXN1bHQgPSByZXN1bHQuZGVjb2RlKGVuY29kaW5nKQotICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdAotCi0gICAgcnVubmVyLl9mYWtlb3V0ID0gVW5pY29kZVNwb29mKCkKLQotCi1A
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nKQotZGVmIGRvY3Rlc3RfbmFtZXNwYWNlKCk6
Ci0gICAgIiIiCi0gICAgSW5qZWN0IG5hbWVzIGludG8gdGhlIGRvY3Rlc3QgbmFtZXNwYWNlLgot
ICAgICIiIgotICAgIHJldHVybiBkaWN0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvZml4dHVyZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZpeHR1cmVzLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDlmZmFkZGJhNzNmZjg0YjIzOWQ0ZjRhYTI5ZTk2ZDA1
NmM1ZDhkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvZml4dHVyZXMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTQ3ICsw
LDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwg
cHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGZ1bmN0b29scwotaW1wb3J0IGluc3BlY3QKLWltcG9y
dCBzeXMKLWltcG9ydCB3YXJuaW5ncwotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERp
Y3QKLQotaW1wb3J0IGF0dHIKLWltcG9ydCBweQotZnJvbSBweS5fY29kZS5jb2RlIGltcG9ydCBG
b3JtYXR0ZWRFeGNpbmZvCi0KLWltcG9ydCBfcHl0ZXN0Ci1mcm9tIF9weXRlc3QgaW1wb3J0IG5v
ZGVzCi1mcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgVGVybWluYWxSZXByCi1mcm9tIF9w
eXRlc3QuY29tcGF0IGltcG9ydCAoCi0gICAgTk9UU0VULCBleGNfY2xlYXIsIF9mb3JtYXRfYXJn
cywKLSAgICBnZXRmc2xpbmVubywgZ2V0X3JlYWxfZnVuYywKLSAgICBpc19nZW5lcmF0b3IsIGlz
Y2xhc3MsIGdldGltZnVuYywKLSAgICBnZXRsb2NhdGlvbiwgZ2V0ZnVuY2FyZ25hbWVzLAotICAg
IHNhZmVfZ2V0YXR0ciwKLSAgICBGdW5jYXJnbmFtZXNDb21wYXRBdHRyLAotKQotZnJvbSBfcHl0
ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBURVNUX09VVENPTUUKLQotCi1kZWYgcHl0ZXN0X3Nl
c3Npb25zdGFydChzZXNzaW9uKToKLSAgICBpbXBvcnQgX3B5dGVzdC5weXRob24KLQotICAgIHNj
b3BlbmFtZTJjbGFzcy51cGRhdGUoewotICAgICAgICAnY2xhc3MnOiBfcHl0ZXN0LnB5dGhvbi5D
bGFzcywKLSAgICAgICAgJ21vZHVsZSc6IF9weXRlc3QucHl0aG9uLk1vZHVsZSwKLSAgICAgICAg
J2Z1bmN0aW9uJzogX3B5dGVzdC5tYWluLkl0ZW0sCi0gICAgICAgICdzZXNzaW9uJzogX3B5dGVz
dC5tYWluLlNlc3Npb24sCi0gICAgfSkKLSAgICBzZXNzaW9uLl9maXh0dXJlbWFuYWdlciA9IEZp
eHR1cmVNYW5hZ2VyKHNlc3Npb24pCi0KLQotc2NvcGVuYW1lMmNsYXNzID0ge30KLQotCi1zY29w
ZTJwcm9wcyA9IGRpY3Qoc2Vzc2lvbj0oKSkKLXNjb3BlMnByb3BzWyJtb2R1bGUiXSA9ICgiZnNw
YXRoIiwgIm1vZHVsZSIpCi1zY29wZTJwcm9wc1siY2xhc3MiXSA9IHNjb3BlMnByb3BzWyJtb2R1
bGUiXSArICgiY2xzIiwpCi1zY29wZTJwcm9wc1siaW5zdGFuY2UiXSA9IHNjb3BlMnByb3BzWyJj
bGFzcyJdICsgKCJpbnN0YW5jZSIsICkKLXNjb3BlMnByb3BzWyJmdW5jdGlvbiJdID0gc2NvcGUy
cHJvcHNbImluc3RhbmNlIl0gKyAoImZ1bmN0aW9uIiwgImtleXdvcmRzIikKLQotCi1kZWYgc2Nv
cGVwcm9wZXJ0eShuYW1lPU5vbmUsIGRvYz1Ob25lKToKLSAgICBkZWYgZGVjb3JhdGVzY29wZShm
dW5jKToKLSAgICAgICAgc2NvcGVuYW1lID0gbmFtZSBvciBmdW5jLl9fbmFtZV9fCi0KLSAgICAg
ICAgZGVmIHByb3ZpZGUoc2VsZik6Ci0gICAgICAgICAgICBpZiBmdW5jLl9fbmFtZV9fIGluIHNj
b3BlMnByb3BzW3NlbGYuc2NvcGVdOgotICAgICAgICAgICAgICAgIHJldHVybiBmdW5jKHNlbGYp
Ci0gICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiJXMgbm90IGF2YWlsYWJsZSBpbiAl
cy1zY29wZWQgY29udGV4dCIgJSAoCi0gICAgICAgICAgICAgICAgc2NvcGVuYW1lLCBzZWxmLnNj
b3BlKSkKLQotICAgICAgICByZXR1cm4gcHJvcGVydHkocHJvdmlkZSwgTm9uZSwgTm9uZSwgZnVu
Yy5fX2RvY19fKQotICAgIHJldHVybiBkZWNvcmF0ZXNjb3BlCi0KLQotZGVmIGdldF9zY29wZV9u
b2RlKG5vZGUsIHNjb3BlKToKLSAgICBjbHMgPSBzY29wZW5hbWUyY2xhc3MuZ2V0KHNjb3BlKQot
ICAgIGlmIGNscyBpcyBOb25lOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1bmtub3duIHNj
b3BlIikKLSAgICByZXR1cm4gbm9kZS5nZXRwYXJlbnQoY2xzKQotCi0KLWRlZiBhZGRfZnVuY2Fy
Z19wc2V1ZG9fZml4dHVyZV9kZWYoY29sbGVjdG9yLCBtZXRhZnVuYywgZml4dHVyZW1hbmFnZXIp
OgotICAgICMgdGhpcyBmdW5jdGlvbiB3aWxsIHRyYW5zZm9ybSBhbGwgY29sbGVjdGVkIGNhbGxz
IHRvIGEgZnVuY3Rpb25zCi0gICAgIyBpZiB0aGV5IHVzZSBkaXJlY3QgZnVuY2FyZ3MgKGkuZS4g
ZGlyZWN0IHBhcmFtZXRyaXphdGlvbikKLSAgICAjIGJlY2F1c2Ugd2Ugd2FudCBsYXRlciB0ZXN0
IGV4ZWN1dGlvbiB0byBiZSBhYmxlIHRvIHJlbHkgb24KLSAgICAjIGFuIGV4aXN0aW5nIEZpeHR1
cmVEZWYgc3RydWN0dXJlIGZvciBhbGwgYXJndW1lbnRzLgotICAgICMgWFhYIHdlIGNhbiBwcm9i
YWJseSBhdm9pZCB0aGlzIGFsZ29yaXRobSAgaWYgd2UgbW9kaWZ5IENhbGxTcGVjMgotICAgICMg
dG8gZGlyZWN0bHkgY2FyZSBmb3IgY3JlYXRpbmcgdGhlIGZpeHR1cmVkZWZzIHdpdGhpbiBpdHMg
bWV0aG9kcy4KLSAgICBpZiBub3QgbWV0YWZ1bmMuX2NhbGxzWzBdLmZ1bmNhcmdzOgotICAgICAg
ICByZXR1cm4gICMgdGhpcyBmdW5jdGlvbiBjYWxsIGRvZXMgbm90IGhhdmUgZGlyZWN0IHBhcmFt
ZXRyaXphdGlvbgotICAgICMgY29sbGVjdCBmdW5jYXJncyBvZiBhbGwgY2FsbHNwZWNzIGludG8g
YSBsaXN0IG9mIHZhbHVlcwotICAgIGFyZzJwYXJhbXMgPSB7fQotICAgIGFyZzJzY29wZSA9IHt9
Ci0gICAgZm9yIGNhbGxzcGVjIGluIG1ldGFmdW5jLl9jYWxsczoKLSAgICAgICAgZm9yIGFyZ25h
bWUsIGFyZ3ZhbHVlIGluIGNhbGxzcGVjLmZ1bmNhcmdzLml0ZW1zKCk6Ci0gICAgICAgICAgICBh
c3NlcnQgYXJnbmFtZSBub3QgaW4gY2FsbHNwZWMucGFyYW1zCi0gICAgICAgICAgICBjYWxsc3Bl
Yy5wYXJhbXNbYXJnbmFtZV0gPSBhcmd2YWx1ZQotICAgICAgICAgICAgYXJnMnBhcmFtc19saXN0
ID0gYXJnMnBhcmFtcy5zZXRkZWZhdWx0KGFyZ25hbWUsIFtdKQotICAgICAgICAgICAgY2FsbHNw
ZWMuaW5kaWNlc1thcmduYW1lXSA9IGxlbihhcmcycGFyYW1zX2xpc3QpCi0gICAgICAgICAgICBh
cmcycGFyYW1zX2xpc3QuYXBwZW5kKGFyZ3ZhbHVlKQotICAgICAgICAgICAgaWYgYXJnbmFtZSBu
b3QgaW4gYXJnMnNjb3BlOgotICAgICAgICAgICAgICAgIHNjb3BlbnVtID0gY2FsbHNwZWMuX2Fy
ZzJzY29wZW51bS5nZXQoYXJnbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNjb3BlbnVtX2Z1bmN0aW9uKQotICAgICAgICAgICAgICAg
IGFyZzJzY29wZVthcmduYW1lXSA9IHNjb3Blc1tzY29wZW51bV0KLSAgICAgICAgY2FsbHNwZWMu
ZnVuY2FyZ3MuY2xlYXIoKQotCi0gICAgIyByZWdpc3RlciBhcnRpZmljaWFsIEZpeHR1cmVEZWYn
cyBzbyB0aGF0IGxhdGVyIGF0IHRlc3QgZXhlY3V0aW9uCi0gICAgIyB0aW1lIHdlIGNhbiByZWx5
IG9uIGEgcHJvcGVyIEZpeHR1cmVEZWYgdG8gZXhpc3QgZm9yIGZpeHR1cmUgc2V0dXAuCi0gICAg
YXJnMmZpeHR1cmVkZWZzID0gbWV0YWZ1bmMuX2FyZzJmaXh0dXJlZGVmcwotICAgIGZvciBhcmdu
YW1lLCB2YWx1ZWxpc3QgaW4gYXJnMnBhcmFtcy5pdGVtcygpOgotICAgICAgICAjIGlmIHdlIGhh
dmUgYSBzY29wZSB0aGF0IGlzIGhpZ2hlciB0aGFuIGZ1bmN0aW9uIHdlIG5lZWQKLSAgICAgICAg
IyB0byBtYWtlIHN1cmUgd2Ugb25seSBldmVyIGNyZWF0ZSBhbiBhY2NvcmRpbmcgZml4dHVyZWRl
ZiBvbgotICAgICAgICAjIGEgcGVyLXNjb3BlIGJhc2lzLiBXZSB0aHVzIHN0b3JlIGFuZCBjYWNo
ZSB0aGUgZml4dHVyZWRlZiBvbiB0aGUKLSAgICAgICAgIyBub2RlIHJlbGF0ZWQgdG8gdGhlIHNj
b3BlLgotICAgICAgICBzY29wZSA9IGFyZzJzY29wZVthcmduYW1lXQotICAgICAgICBub2RlID0g
Tm9uZQotICAgICAgICBpZiBzY29wZSAhPSAiZnVuY3Rpb24iOgotICAgICAgICAgICAgbm9kZSA9
IGdldF9zY29wZV9ub2RlKGNvbGxlY3Rvciwgc2NvcGUpCi0gICAgICAgICAgICBpZiBub2RlIGlz
IE5vbmU6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHNjb3BlID09ICJjbGFzcyIgYW5kIGlzaW5z
dGFuY2UoY29sbGVjdG9yLCBfcHl0ZXN0LnB5dGhvbi5Nb2R1bGUpCi0gICAgICAgICAgICAgICAg
IyB1c2UgbW9kdWxlLWxldmVsIGNvbGxlY3RvciBmb3IgY2xhc3Mtc2NvcGUgKGZvciBub3cpCi0g
ICAgICAgICAgICAgICAgbm9kZSA9IGNvbGxlY3RvcgotICAgICAgICBpZiBub2RlIGFuZCBhcmdu
YW1lIGluIG5vZGUuX25hbWUycHNldWRvZml4dHVyZWRlZjoKLSAgICAgICAgICAgIGFyZzJmaXh0
dXJlZGVmc1thcmduYW1lXSA9IFtub2RlLl9uYW1lMnBzZXVkb2ZpeHR1cmVkZWZbYXJnbmFtZV1d
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmaXh0dXJlZGVmID0gRml4dHVyZURlZihmaXh0
dXJlbWFuYWdlciwgJycsIGFyZ25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnZXRfZGlyZWN0X3BhcmFtX2ZpeHR1cmVfZnVuYywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFyZzJzY29wZVthcmduYW1lXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZhbHVlbGlzdCwgRmFsc2UsIEZhbHNlKQotICAgICAgICAgICAgYXJn
MmZpeHR1cmVkZWZzW2FyZ25hbWVdID0gW2ZpeHR1cmVkZWZdCi0gICAgICAgICAgICBpZiBub2Rl
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIG5vZGUuX25hbWUycHNldWRvZml4dHVyZWRl
ZlthcmduYW1lXSA9IGZpeHR1cmVkZWYKLQotCi1kZWYgZ2V0Zml4dHVyZW1hcmtlcihvYmopOgot
ICAgICIiIiByZXR1cm4gZml4dHVyZW1hcmtlciBvciBOb25lIGlmIGl0IGRvZXNuJ3QgZXhpc3Qg
b3IgcmFpc2VkCi0gICAgZXhjZXB0aW9ucy4iIiIKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBn
ZXRhdHRyKG9iaiwgIl9weXRlc3RmaXh0dXJlZnVuY3Rpb24iLCBOb25lKQotICAgIGV4Y2VwdCBU
RVNUX09VVENPTUU6Ci0gICAgICAgICMgc29tZSBvYmplY3RzIHJhaXNlIGVycm9ycyBsaWtlIHJl
cXVlc3QgKGZyb20gZmxhc2sgaW1wb3J0IHJlcXVlc3QpCi0gICAgICAgICMgd2UgZG9uJ3QgZXhw
ZWN0IHRoZW0gdG8gYmUgZml4dHVyZSBmdW5jdGlvbnMKLSAgICAgICAgcmV0dXJuIE5vbmUKLQot
Ci1kZWYgZ2V0X3BhcmFtZXRyaXplZF9maXh0dXJlX2tleXMoaXRlbSwgc2NvcGVudW0pOgotICAg
ICIiIiByZXR1cm4gbGlzdCBvZiBrZXlzIGZvciBhbGwgcGFyYW1ldHJpemVkIGFyZ3VtZW50cyB3
aGljaCBtYXRjaAotICAgIHRoZSBzcGVjaWZpZWQgc2NvcGUuICIiIgotICAgIGFzc2VydCBzY29w
ZW51bSA8IHNjb3BlbnVtX2Z1bmN0aW9uICAjIGZ1bmN0aW9uCi0gICAgdHJ5OgotICAgICAgICBj
cyA9IGl0ZW0uY2FsbHNwZWMKLSAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIHBh
c3MKLSAgICBlbHNlOgotICAgICAgICAjIGNzLmluZGljZXMuaXRlbXMoKSBpcyByYW5kb20gb3Jk
ZXIgb2YgYXJnbmFtZXMuICBOZWVkIHRvCi0gICAgICAgICMgc29ydCB0aGlzIHNvIHRoYXQgZGlm
ZmVyZW50IGNhbGxzIHRvCi0gICAgICAgICMgZ2V0X3BhcmFtZXRyaXplZF9maXh0dXJlX2tleXMg
d2lsbCBiZSBkZXRlcm1pbmlzdGljLgotICAgICAgICBmb3IgYXJnbmFtZSwgcGFyYW1faW5kZXgg
aW4gc29ydGVkKGNzLmluZGljZXMuaXRlbXMoKSk6Ci0gICAgICAgICAgICBpZiBjcy5fYXJnMnNj
b3BlbnVtW2FyZ25hbWVdICE9IHNjb3BlbnVtOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g
ICAgICAgICAgICBpZiBzY29wZW51bSA9PSAwOiAgICAjIHNlc3Npb24KLSAgICAgICAgICAgICAg
ICBrZXkgPSAoYXJnbmFtZSwgcGFyYW1faW5kZXgpCi0gICAgICAgICAgICBlbGlmIHNjb3BlbnVt
ID09IDE6ICAjIG1vZHVsZQotICAgICAgICAgICAgICAgIGtleSA9IChhcmduYW1lLCBwYXJhbV9p
bmRleCwgaXRlbS5mc3BhdGgpCi0gICAgICAgICAgICBlbGlmIHNjb3BlbnVtID09IDI6ICAjIGNs
YXNzCi0gICAgICAgICAgICAgICAga2V5ID0gKGFyZ25hbWUsIHBhcmFtX2luZGV4LCBpdGVtLmZz
cGF0aCwgaXRlbS5jbHMpCi0gICAgICAgICAgICB5aWVsZCBrZXkKLQotCi0jIGFsZ29yaXRobSBm
b3Igc29ydGluZyBvbiBhIHBlci1wYXJhbWV0cml6ZWQgcmVzb3VyY2Ugc2V0dXAgYmFzaXMKLSMg
aXQgaXMgY2FsbGVkIGZvciBzY29wZW51bT09MCAoc2Vzc2lvbikgZmlyc3QgYW5kIHBlcmZvcm1z
IHNvcnRpbmcKLSMgZG93biB0byB0aGUgbG93ZXIgc2NvcGVzIHN1Y2ggYXMgdG8gbWluaW1pemUg
bnVtYmVyIG9mICJoaWdoIHNjb3BlIgotIyBzZXR1cHMgYW5kIHRlYXJkb3ducwotCi1kZWYgcmVv
cmRlcl9pdGVtcyhpdGVtcyk6Ci0gICAgYXJna2V5c19jYWNoZSA9IHt9Ci0gICAgZm9yIHNjb3Bl
bnVtIGluIHJhbmdlKDAsIHNjb3BlbnVtX2Z1bmN0aW9uKToKLSAgICAgICAgYXJna2V5c19jYWNo
ZVtzY29wZW51bV0gPSBkID0ge30KLSAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6Ci0gICAgICAg
ICAgICBrZXlzID0gT3JkZXJlZERpY3QuZnJvbWtleXMoZ2V0X3BhcmFtZXRyaXplZF9maXh0dXJl
X2tleXMoaXRlbSwgc2NvcGVudW0pKQotICAgICAgICAgICAgaWYga2V5czoKLSAgICAgICAgICAg
ICAgICBkW2l0ZW1dID0ga2V5cwotICAgIHJldHVybiByZW9yZGVyX2l0ZW1zX2F0c2NvcGUoaXRl
bXMsIHNldCgpLCBhcmdrZXlzX2NhY2hlLCAwKQotCi0KLWRlZiByZW9yZGVyX2l0ZW1zX2F0c2Nv
cGUoaXRlbXMsIGlnbm9yZSwgYXJna2V5c19jYWNoZSwgc2NvcGVudW0pOgotICAgIGlmIHNjb3Bl
bnVtID49IHNjb3BlbnVtX2Z1bmN0aW9uIG9yIGxlbihpdGVtcykgPCAzOgotICAgICAgICByZXR1
cm4gaXRlbXMKLSAgICBpdGVtc19kb25lID0gW10KLSAgICB3aGlsZSAxOgotICAgICAgICBpdGVt
c19iZWZvcmUsIGl0ZW1zX3NhbWUsIGl0ZW1zX290aGVyLCBuZXdpZ25vcmUgPSBcCi0gICAgICAg
ICAgICBzbGljZV9pdGVtcyhpdGVtcywgaWdub3JlLCBhcmdrZXlzX2NhY2hlW3Njb3BlbnVtXSkK
LSAgICAgICAgaXRlbXNfYmVmb3JlID0gcmVvcmRlcl9pdGVtc19hdHNjb3BlKAotICAgICAgICAg
ICAgaXRlbXNfYmVmb3JlLCBpZ25vcmUsIGFyZ2tleXNfY2FjaGUsIHNjb3BlbnVtICsgMSkKLSAg
ICAgICAgaWYgaXRlbXNfc2FtZSBpcyBOb25lOgotICAgICAgICAgICAgIyBub3RoaW5nIHRvIHJl
b3JkZXIgaW4gdGhpcyBzY29wZQotICAgICAgICAgICAgYXNzZXJ0IGl0ZW1zX290aGVyIGlzIE5v
bmUKLSAgICAgICAgICAgIHJldHVybiBpdGVtc19kb25lICsgaXRlbXNfYmVmb3JlCi0gICAgICAg
IGl0ZW1zX2RvbmUuZXh0ZW5kKGl0ZW1zX2JlZm9yZSkKLSAgICAgICAgaXRlbXMgPSBpdGVtc19z
YW1lICsgaXRlbXNfb3RoZXIKLSAgICAgICAgaWdub3JlID0gbmV3aWdub3JlCi0KLQotZGVmIHNs
aWNlX2l0ZW1zKGl0ZW1zLCBpZ25vcmUsIHNjb3BlZF9hcmdrZXlzX2NhY2hlKToKLSAgICAjIHdl
IHBpY2sgdGhlIGZpcnN0IGl0ZW0gd2hpY2ggdXNlcyBhIGZpeHR1cmUgaW5zdGFuY2UgaW4gdGhl
Ci0gICAgIyByZXF1ZXN0ZWQgc2NvcGUgYW5kIHdoaWNoIHdlIGhhdmVuJ3Qgc2VlbiB5ZXQuICBX
ZSBzbGljZSB0aGUgaW5wdXQKLSAgICAjIGl0ZW1zIGxpc3QgaW50byBhIGxpc3Qgb2YgaXRlbXNf
bm9tYXRjaCwgaXRlbXNfc2FtZSBhbmQKLSAgICAjIGl0ZW1zX290aGVyCi0gICAgaWYgc2NvcGVk
X2FyZ2tleXNfY2FjaGU6ICAjIGRvIHdlIG5lZWQgdG8gZG8gd29yayBhdCBhbGw/Ci0gICAgICAg
IGl0ID0gaXRlcihpdGVtcykKLSAgICAgICAgIyBmaXJzdCBmaW5kIGEgc2xpY2luZyBrZXkKLSAg
ICAgICAgZm9yIGksIGl0ZW0gaW4gZW51bWVyYXRlKGl0KToKLSAgICAgICAgICAgIGFyZ2tleXMg
PSBzY29wZWRfYXJna2V5c19jYWNoZS5nZXQoaXRlbSkKLSAgICAgICAgICAgIGlmIGFyZ2tleXMg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgbmV3YXJna2V5cyA9IE9yZGVyZWREaWN0LmZy
b21rZXlzKGsgZm9yIGsgaW4gYXJna2V5cyBpZiBrIG5vdCBpbiBpZ25vcmUpCi0gICAgICAgICAg
ICAgICAgaWYgbmV3YXJna2V5czogICMgZm91bmQgYSBzbGljaW5nIGtleQotICAgICAgICAgICAg
ICAgICAgICBzbGljaW5nX2FyZ2tleSwgXyA9IG5ld2FyZ2tleXMucG9waXRlbSgpCi0gICAgICAg
ICAgICAgICAgICAgIGl0ZW1zX2JlZm9yZSA9IGl0ZW1zWzppXQotICAgICAgICAgICAgICAgICAg
ICBpdGVtc19zYW1lID0gW2l0ZW1dCi0gICAgICAgICAgICAgICAgICAgIGl0ZW1zX290aGVyID0g
W10KLSAgICAgICAgICAgICAgICAgICAgIyBub3cgc2xpY2UgdGhlIHJlbWFpbmRlciBvZiB0aGUg
bGlzdAotICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdDoKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFyZ2tleXMgPSBzY29wZWRfYXJna2V5c19jYWNoZS5nZXQoaXRlbSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIGFyZ2tleXMgYW5kIHNsaWNpbmdfYXJna2V5IGluIGFyZ2tl
eXMgYW5kIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpY2luZ19hcmdrZXkg
bm90IGluIGlnbm9yZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc19zYW1lLmFw
cGVuZChpdGVtKQotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpdGVtc19vdGhlci5hcHBlbmQoaXRlbSkKLSAgICAgICAgICAgICAgICAg
ICAgbmV3aWdub3JlID0gaWdub3JlLmNvcHkoKQotICAgICAgICAgICAgICAgICAgICBuZXdpZ25v
cmUuYWRkKHNsaWNpbmdfYXJna2V5KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGl0ZW1z
X2JlZm9yZSwgaXRlbXNfc2FtZSwgaXRlbXNfb3RoZXIsIG5ld2lnbm9yZSkKLSAgICByZXR1cm4g
aXRlbXMsIE5vbmUsIE5vbmUsIE5vbmUKLQotCi1kZWYgZmlsbGZpeHR1cmVzKGZ1bmN0aW9uKToK
LSAgICAiIiIgZmlsbCBtaXNzaW5nIGZ1bmNhcmdzIGZvciBhIHRlc3QgZnVuY3Rpb24uICIiIgot
ICAgIHRyeToKLSAgICAgICAgcmVxdWVzdCA9IGZ1bmN0aW9uLl9yZXF1ZXN0Ci0gICAgZXhjZXB0
IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAjIFhYWCB0aGlzIHNwZWNpYWwgY29kZSBwYXRoIGlz
IG9ubHkgZXhwZWN0ZWQgdG8gZXhlY3V0ZQotICAgICAgICAjIHdpdGggdGhlIG9lanNraXQgcGx1
Z2luLiAgSXQgdXNlcyBjbGFzc2VzIHdpdGggZnVuY2FyZ3MKLSAgICAgICAgIyBhbmQgd2UgdGh1
cyBoYXZlIHRvIHdvcmsgYSBiaXQgdG8gYWxsb3cgdGhpcy4KLSAgICAgICAgZm0gPSBmdW5jdGlv
bi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgotICAgICAgICBmaSA9IGZtLmdldGZpeHR1cmVpbmZv
KGZ1bmN0aW9uLnBhcmVudCwgZnVuY3Rpb24ub2JqLCBOb25lKQotICAgICAgICBmdW5jdGlvbi5f
Zml4dHVyZWluZm8gPSBmaQotICAgICAgICByZXF1ZXN0ID0gZnVuY3Rpb24uX3JlcXVlc3QgPSBG
aXh0dXJlUmVxdWVzdChmdW5jdGlvbikKLSAgICAgICAgcmVxdWVzdC5fZmlsbGZpeHR1cmVzKCkK
LSAgICAgICAgIyBwcnVuZSBvdXQgZnVuY2FyZ3MgZm9yIGpzdGVzdHMKLSAgICAgICAgbmV3ZnVu
Y2FyZ3MgPSB7fQotICAgICAgICBmb3IgbmFtZSBpbiBmaS5hcmduYW1lczoKLSAgICAgICAgICAg
IG5ld2Z1bmNhcmdzW25hbWVdID0gZnVuY3Rpb24uZnVuY2FyZ3NbbmFtZV0KLSAgICAgICAgZnVu
Y3Rpb24uZnVuY2FyZ3MgPSBuZXdmdW5jYXJncwotICAgIGVsc2U6Ci0gICAgICAgIHJlcXVlc3Qu
X2ZpbGxmaXh0dXJlcygpCi0KLQotZGVmIGdldF9kaXJlY3RfcGFyYW1fZml4dHVyZV9mdW5jKHJl
cXVlc3QpOgotICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0KLQotY2xhc3MgRnVuY0ZpeHR1cmVJ
bmZvOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcmduYW1lcywgbmFtZXNfY2xvc3VyZSwgbmFt
ZTJmaXh0dXJlZGVmcyk6Ci0gICAgICAgIHNlbGYuYXJnbmFtZXMgPSBhcmduYW1lcwotICAgICAg
ICBzZWxmLm5hbWVzX2Nsb3N1cmUgPSBuYW1lc19jbG9zdXJlCi0gICAgICAgIHNlbGYubmFtZTJm
aXh0dXJlZGVmcyA9IG5hbWUyZml4dHVyZWRlZnMKLQotCi1jbGFzcyBGaXh0dXJlUmVxdWVzdChG
dW5jYXJnbmFtZXNDb21wYXRBdHRyKToKLSAgICAiIiIgQSByZXF1ZXN0IGZvciBhIGZpeHR1cmUg
ZnJvbSBhIHRlc3Qgb3IgZml4dHVyZSBmdW5jdGlvbi4KLQotICAgIEEgcmVxdWVzdCBvYmplY3Qg
Z2l2ZXMgYWNjZXNzIHRvIHRoZSByZXF1ZXN0aW5nIHRlc3QgY29udGV4dAotICAgIGFuZCBoYXMg
YW4gb3B0aW9uYWwgYGBwYXJhbWBgIGF0dHJpYnV0ZSBpbiBjYXNlCi0gICAgdGhlIGZpeHR1cmUg
aXMgcGFyYW1ldHJpemVkIGluZGlyZWN0bHkuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgcHlmdW5jaXRlbSk6Ci0gICAgICAgIHNlbGYuX3B5ZnVuY2l0ZW0gPSBweWZ1bmNpdGVt
Ci0gICAgICAgICM6IGZpeHR1cmUgZm9yIHdoaWNoIHRoaXMgcmVxdWVzdCBpcyBiZWluZyBwZXJm
b3JtZWQKLSAgICAgICAgc2VsZi5maXh0dXJlbmFtZSA9IE5vbmUKLSAgICAgICAgIzogU2NvcGUg
c3RyaW5nLCBvbmUgb2YgImZ1bmN0aW9uIiwgImNsYXNzIiwgIm1vZHVsZSIsICJzZXNzaW9uIgot
ICAgICAgICBzZWxmLnNjb3BlID0gImZ1bmN0aW9uIgotICAgICAgICBzZWxmLl9maXh0dXJlX3Zh
bHVlcyA9IHt9ICAjIGFyZ25hbWUgLT4gZml4dHVyZSB2YWx1ZQotICAgICAgICBzZWxmLl9maXh0
dXJlX2RlZnMgPSB7fSAgIyBhcmduYW1lIC0+IEZpeHR1cmVEZWYKLSAgICAgICAgZml4dHVyZWlu
Zm8gPSBweWZ1bmNpdGVtLl9maXh0dXJlaW5mbwotICAgICAgICBzZWxmLl9hcmcyZml4dHVyZWRl
ZnMgPSBmaXh0dXJlaW5mby5uYW1lMmZpeHR1cmVkZWZzLmNvcHkoKQotICAgICAgICBzZWxmLl9h
cmcyaW5kZXggPSB7fQotICAgICAgICBzZWxmLl9maXh0dXJlbWFuYWdlciA9IHB5ZnVuY2l0ZW0u
c2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBmaXh0dXJl
bmFtZXMoc2VsZik6Ci0gICAgICAgICMgYmFja3dhcmQgaW5jb21wYXRpYmxlIG5vdGU6IG5vdyBh
IHJlYWRvbmx5IHByb3BlcnR5Ci0gICAgICAgIHJldHVybiBsaXN0KHNlbGYuX3B5ZnVuY2l0ZW0u
X2ZpeHR1cmVpbmZvLm5hbWVzX2Nsb3N1cmUpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbm9k
ZShzZWxmKToKLSAgICAgICAgIiIiIHVuZGVybHlpbmcgY29sbGVjdGlvbiBub2RlIChkZXBlbmRz
IG9uIGN1cnJlbnQgcmVxdWVzdCBzY29wZSkiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2dldHNj
b3BlaXRlbShzZWxmLnNjb3BlKQotCi0gICAgZGVmIF9nZXRuZXh0Zml4dHVyZWRlZihzZWxmLCBh
cmduYW1lKToKLSAgICAgICAgZml4dHVyZWRlZnMgPSBzZWxmLl9hcmcyZml4dHVyZWRlZnMuZ2V0
KGFyZ25hbWUsIE5vbmUpCi0gICAgICAgIGlmIGZpeHR1cmVkZWZzIGlzIE5vbmU6Ci0gICAgICAg
ICAgICAjIHdlIGFycml2ZSBoZXJlIGJlY2F1c2Ugb2YgYSAgYSBkeW5hbWljIGNhbGwgdG8KLSAg
ICAgICAgICAgICMgZ2V0Zml4dHVyZXZhbHVlKGFyZ25hbWUpIHVzYWdlIHdoaWNoIHdhcyBuYXR1
cmFsbHkKLSAgICAgICAgICAgICMgbm90IGtub3duIGF0IHBhcnNpbmcvY29sbGVjdGlvbiB0aW1l
Ci0gICAgICAgICAgICBwYXJlbnRpZCA9IHNlbGYuX3B5ZnVuY2l0ZW0ucGFyZW50Lm5vZGVpZAot
ICAgICAgICAgICAgZml4dHVyZWRlZnMgPSBzZWxmLl9maXh0dXJlbWFuYWdlci5nZXRmaXh0dXJl
ZGVmcyhhcmduYW1lLCBwYXJlbnRpZCkKLSAgICAgICAgICAgIHNlbGYuX2FyZzJmaXh0dXJlZGVm
c1thcmduYW1lXSA9IGZpeHR1cmVkZWZzCi0gICAgICAgICMgZml4dHVyZWRlZnMgbGlzdCBpcyBp
bW11dGFibGUgc28gd2UgbWFpbnRhaW4gYSBkZWNyZWFzaW5nIGluZGV4Ci0gICAgICAgIGluZGV4
ID0gc2VsZi5fYXJnMmluZGV4LmdldChhcmduYW1lLCAwKSAtIDEKLSAgICAgICAgaWYgZml4dHVy
ZWRlZnMgaXMgTm9uZSBvciAoLWluZGV4ID4gbGVuKGZpeHR1cmVkZWZzKSk6Ci0gICAgICAgICAg
ICByYWlzZSBGaXh0dXJlTG9va3VwRXJyb3IoYXJnbmFtZSwgc2VsZikKLSAgICAgICAgc2VsZi5f
YXJnMmluZGV4W2FyZ25hbWVdID0gaW5kZXgKLSAgICAgICAgcmV0dXJuIGZpeHR1cmVkZWZzW2lu
ZGV4XQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGNvbmZpZyhzZWxmKToKLSAgICAgICAgIiIi
IHRoZSBweXRlc3QgY29uZmlnIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXF1ZXN0LiAi
IiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0uY29uZmlnCi0KLSAgICBAc2NvcGVw
cm9wZXJ0eSgpCi0gICAgZGVmIGZ1bmN0aW9uKHNlbGYpOgotICAgICAgICAiIiIgdGVzdCBmdW5j
dGlvbiBvYmplY3QgaWYgdGhlIHJlcXVlc3QgaGFzIGEgcGVyLWZ1bmN0aW9uIHNjb3BlLiAiIiIK
LSAgICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0ub2JqCi0KLSAgICBAc2NvcGVwcm9wZXJ0
eSgiY2xhc3MiKQotICAgIGRlZiBjbHMoc2VsZik6Ci0gICAgICAgICIiIiBjbGFzcyAoY2FuIGJl
IE5vbmUpIHdoZXJlIHRoZSB0ZXN0IGZ1bmN0aW9uIHdhcyBjb2xsZWN0ZWQuICIiIgotICAgICAg
ICBjbHNjb2wgPSBzZWxmLl9weWZ1bmNpdGVtLmdldHBhcmVudChfcHl0ZXN0LnB5dGhvbi5DbGFz
cykKLSAgICAgICAgaWYgY2xzY29sOgotICAgICAgICAgICAgcmV0dXJuIGNsc2NvbC5vYmoKLQot
ICAgIEBwcm9wZXJ0eQotICAgIGRlZiBpbnN0YW5jZShzZWxmKToKLSAgICAgICAgIiIiIGluc3Rh
bmNlIChjYW4gYmUgTm9uZSkgb24gd2hpY2ggdGVzdCBmdW5jdGlvbiB3YXMgY29sbGVjdGVkLiAi
IiIKLSAgICAgICAgIyB1bml0dGVzdCBzdXBwb3J0IGhhY2ssIHNlZSBfcHl0ZXN0LnVuaXR0ZXN0
LlRlc3RDYXNlRnVuY3Rpb24KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYu
X3B5ZnVuY2l0ZW0uX3Rlc3RjYXNlCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAg
ICAgICAgICAgIGZ1bmN0aW9uID0gZ2V0YXR0cihzZWxmLCAiZnVuY3Rpb24iLCBOb25lKQotICAg
ICAgICAgICAgaWYgZnVuY3Rpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHB5LmJ1aWx0aW4uX2dldGltc2VsZihmdW5jdGlvbikKLQotICAgIEBzY29wZXByb3BlcnR5KCkK
LSAgICBkZWYgbW9kdWxlKHNlbGYpOgotICAgICAgICAiIiIgcHl0aG9uIG1vZHVsZSBvYmplY3Qg
d2hlcmUgdGhlIHRlc3QgZnVuY3Rpb24gd2FzIGNvbGxlY3RlZC4gIiIiCi0gICAgICAgIHJldHVy
biBzZWxmLl9weWZ1bmNpdGVtLmdldHBhcmVudChfcHl0ZXN0LnB5dGhvbi5Nb2R1bGUpLm9iagot
Ci0gICAgQHNjb3BlcHJvcGVydHkoKQotICAgIGRlZiBmc3BhdGgoc2VsZik6Ci0gICAgICAgICIi
IiB0aGUgZmlsZSBzeXN0ZW0gcGF0aCBvZiB0aGUgdGVzdCBtb2R1bGUgd2hpY2ggY29sbGVjdGVk
IHRoaXMgdGVzdC4gIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9weWZ1bmNpdGVtLmZzcGF0aAot
Ci0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGtleXdvcmRzKHNlbGYpOgotICAgICAgICAiIiIga2V5
d29yZHMvbWFya2VycyBkaWN0aW9uYXJ5IGZvciB0aGUgdW5kZXJseWluZyBub2RlLiAiIiIKLSAg
ICAgICAgcmV0dXJuIHNlbGYubm9kZS5rZXl3b3JkcwotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVm
IHNlc3Npb24oc2VsZik6Ci0gICAgICAgICIiIiBweXRlc3Qgc2Vzc2lvbiBvYmplY3QuICIiIgot
ICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5jaXRlbS5zZXNzaW9uCi0KLSAgICBkZWYgYWRkZmlu
YWxpemVyKHNlbGYsIGZpbmFsaXplcik6Ci0gICAgICAgICIiIiBhZGQgZmluYWxpemVyL3RlYXJk
b3duIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhZnRlciB0aGUKLSAgICAgICAgbGFzdCB0ZXN0IHdp
dGhpbiB0aGUgcmVxdWVzdGluZyB0ZXN0IGNvbnRleHQgZmluaXNoZWQKLSAgICAgICAgZXhlY3V0
aW9uLiAiIiIKLSAgICAgICAgIyBYWFggdXN1YWxseSB0aGlzIG1ldGhvZCBpcyBzaGFkb3dlZCBi
eSBmaXh0dXJlZGVmIHNwZWNpZmljIG9uZXMKLSAgICAgICAgc2VsZi5fYWRkZmluYWxpemVyKGZp
bmFsaXplciwgc2NvcGU9c2VsZi5zY29wZSkKLQotICAgIGRlZiBfYWRkZmluYWxpemVyKHNlbGYs
IGZpbmFsaXplciwgc2NvcGUpOgotICAgICAgICBjb2xpdGVtID0gc2VsZi5fZ2V0c2NvcGVpdGVt
KHNjb3BlKQotICAgICAgICBzZWxmLl9weWZ1bmNpdGVtLnNlc3Npb24uX3NldHVwc3RhdGUuYWRk
ZmluYWxpemVyKAotICAgICAgICAgICAgZmluYWxpemVyPWZpbmFsaXplciwgY29saXRlbT1jb2xp
dGVtKQotCi0gICAgZGVmIGFwcGx5bWFya2VyKHNlbGYsIG1hcmtlcik6Ci0gICAgICAgICIiIiBB
cHBseSBhIG1hcmtlciB0byBhIHNpbmdsZSB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb24uCi0gICAg
ICAgIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBpZiB5b3UgZG9uJ3Qgd2FudCB0byBoYXZlIGEga2V5
d29yZC9tYXJrZXIKLSAgICAgICAgb24gYWxsIGZ1bmN0aW9uIGludm9jYXRpb25zLgotCi0gICAg
ICAgIDphcmcgbWFya2VyOiBhIDpweTpjbGFzczpgX3B5dGVzdC5tYXJrLk1hcmtEZWNvcmF0b3Jg
IG9iamVjdAotICAgICAgICAgICAgY3JlYXRlZCBieSBhIGNhbGwgdG8gYGBweXRlc3QubWFyay5O
QU1FKC4uLilgYC4KLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYu
bm9kZS5rZXl3b3Jkc1ttYXJrZXIubWFya25hbWVdID0gbWFya2VyCi0gICAgICAgIGV4Y2VwdCBB
dHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobWFya2VyKQotCi0g
ICAgZGVmIHJhaXNlZXJyb3Ioc2VsZiwgbXNnKToKLSAgICAgICAgIiIiIHJhaXNlIGEgRml4dHVy
ZUxvb2t1cEVycm9yIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UuICIiIgotICAgICAgICByYWlzZSBz
ZWxmLl9maXh0dXJlbWFuYWdlci5GaXh0dXJlTG9va3VwRXJyb3IoTm9uZSwgc2VsZiwgbXNnKQot
Ci0gICAgZGVmIF9maWxsZml4dHVyZXMoc2VsZik6Ci0gICAgICAgIGl0ZW0gPSBzZWxmLl9weWZ1
bmNpdGVtCi0gICAgICAgIGZpeHR1cmVuYW1lcyA9IGdldGF0dHIoaXRlbSwgImZpeHR1cmVuYW1l
cyIsIHNlbGYuZml4dHVyZW5hbWVzKQotICAgICAgICBmb3IgYXJnbmFtZSBpbiBmaXh0dXJlbmFt
ZXM6Ci0gICAgICAgICAgICBpZiBhcmduYW1lIG5vdCBpbiBpdGVtLmZ1bmNhcmdzOgotICAgICAg
ICAgICAgICAgIGl0ZW0uZnVuY2FyZ3NbYXJnbmFtZV0gPSBzZWxmLmdldGZpeHR1cmV2YWx1ZShh
cmduYW1lKQotCi0gICAgZGVmIGNhY2hlZF9zZXR1cChzZWxmLCBzZXR1cCwgdGVhcmRvd249Tm9u
ZSwgc2NvcGU9Im1vZHVsZSIsIGV4dHJha2V5PU5vbmUpOgotICAgICAgICAiIiIgKGRlcHJlY2F0
ZWQpIFJldHVybiBhIHRlc3RpbmcgcmVzb3VyY2UgbWFuYWdlZCBieSBgYHNldHVwYGAgJgotICAg
ICAgICBgYHRlYXJkb3duYGAgY2FsbHMuICBgYHNjb3BlYGAgYW5kIGBgZXh0cmFrZXlgYCBkZXRl
cm1pbmUgd2hlbiB0aGUKLSAgICAgICAgYGB0ZWFyZG93bmBgIGZ1bmN0aW9uIHdpbGwgYmUgY2Fs
bGVkIHNvIHRoYXQgc3Vic2VxdWVudCBjYWxscyB0bwotICAgICAgICBgYHNldHVwYGAgd291bGQg
cmVjcmVhdGUgdGhlIHJlc291cmNlLiAgV2l0aCBweXRlc3QtMi4zIHlvdSBvZnRlbgotICAgICAg
ICBkbyBub3QgbmVlZCBgYGNhY2hlZF9zZXR1cCgpYGAgYXMgeW91IGNhbiBkaXJlY3RseSBkZWNs
YXJlIGEgc2NvcGUKLSAgICAgICAgb24gYSBmaXh0dXJlIGZ1bmN0aW9uIGFuZCByZWdpc3RlciBh
IGZpbmFsaXplciB0aHJvdWdoCi0gICAgICAgIGBgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoKWBgLgot
Ci0gICAgICAgIDphcmcgdGVhcmRvd246IGZ1bmN0aW9uIHJlY2VpdmluZyBhIHByZXZpb3VzbHkg
c2V0dXAgcmVzb3VyY2UuCi0gICAgICAgIDphcmcgc2V0dXA6IGEgbm8tYXJndW1lbnQgZnVuY3Rp
b24gY3JlYXRpbmcgYSByZXNvdXJjZS4KLSAgICAgICAgOmFyZyBzY29wZTogYSBzdHJpbmcgdmFs
dWUgb3V0IG9mIGBgZnVuY3Rpb25gYCwgYGBjbGFzc2BgLCBgYG1vZHVsZWBgCi0gICAgICAgICAg
ICBvciBgYHNlc3Npb25gYCBpbmRpY2F0aW5nIHRoZSBjYWNoaW5nIGxpZmVjeWNsZSBvZiB0aGUg
cmVzb3VyY2UuCi0gICAgICAgIDphcmcgZXh0cmFrZXk6IGFkZGVkIHRvIGludGVybmFsIGNhY2hp
bmcga2V5IG9mIChmdW5jYXJnbmFtZSwgc2NvcGUpLgotICAgICAgICAiIiIKLSAgICAgICAgaWYg
bm90IGhhc2F0dHIoc2VsZi5jb25maWcsICdfc2V0dXBjYWNoZScpOgotICAgICAgICAgICAgc2Vs
Zi5jb25maWcuX3NldHVwY2FjaGUgPSB7fSAgIyBYWFggd2Vha3JlZj8KLSAgICAgICAgY2FjaGVr
ZXkgPSAoc2VsZi5maXh0dXJlbmFtZSwgc2VsZi5fZ2V0c2NvcGVpdGVtKHNjb3BlKSwgZXh0cmFr
ZXkpCi0gICAgICAgIGNhY2hlID0gc2VsZi5jb25maWcuX3NldHVwY2FjaGUKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgdmFsID0gY2FjaGVbY2FjaGVrZXldCi0gICAgICAgIGV4Y2VwdCBLZXlF
cnJvcjoKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrX3Njb3BlKHNlbGYuZml4dHVyZW5hbWUsIHNl
bGYuc2NvcGUsIHNjb3BlKQotICAgICAgICAgICAgdmFsID0gc2V0dXAoKQotICAgICAgICAgICAg
Y2FjaGVbY2FjaGVrZXldID0gdmFsCi0gICAgICAgICAgICBpZiB0ZWFyZG93biBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgICAgICBkZWYgZmluYWxpemVyKCk6Ci0gICAgICAgICAgICAgICAgICAg
IGRlbCBjYWNoZVtjYWNoZWtleV0KLSAgICAgICAgICAgICAgICAgICAgdGVhcmRvd24odmFsKQot
ICAgICAgICAgICAgICAgIHNlbGYuX2FkZGZpbmFsaXplcihmaW5hbGl6ZXIsIHNjb3BlPXNjb3Bl
KQotICAgICAgICByZXR1cm4gdmFsCi0KLSAgICBkZWYgZ2V0Zml4dHVyZXZhbHVlKHNlbGYsIGFy
Z25hbWUpOgotICAgICAgICAiIiIgRHluYW1pY2FsbHkgcnVuIGEgbmFtZWQgZml4dHVyZSBmdW5j
dGlvbi4KLQotICAgICAgICBEZWNsYXJpbmcgZml4dHVyZXMgdmlhIGZ1bmN0aW9uIGFyZ3VtZW50
IGlzIHJlY29tbWVuZGVkIHdoZXJlIHBvc3NpYmxlLgotICAgICAgICBCdXQgaWYgeW91IGNhbiBv
bmx5IGRlY2lkZSB3aGV0aGVyIHRvIHVzZSBhbm90aGVyIGZpeHR1cmUgYXQgdGVzdAotICAgICAg
ICBzZXR1cCB0aW1lLCB5b3UgbWF5IHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHJldHJpZXZlIGl0IGlu
c2lkZSBhIGZpeHR1cmUKLSAgICAgICAgb3IgdGVzdCBmdW5jdGlvbiBib2R5LgotICAgICAgICAi
IiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2dldF9hY3RpdmVfZml4dHVyZWRlZihhcmduYW1lKS5j
YWNoZWRfcmVzdWx0WzBdCi0KLSAgICBkZWYgZ2V0ZnVuY2FyZ3ZhbHVlKHNlbGYsIGFyZ25hbWUp
OgotICAgICAgICAiIiIgRGVwcmVjYXRlZCwgdXNlIGdldGZpeHR1cmV2YWx1ZS4gIiIiCi0gICAg
ICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAotICAgICAgICB3YXJuaW5ncy53YXJu
KAotICAgICAgICAgICAgZGVwcmVjYXRlZC5HRVRGVU5DQVJHVkFMVUUsCi0gICAgICAgICAgICBE
ZXByZWNhdGlvbldhcm5pbmcsCi0gICAgICAgICAgICBzdGFja2xldmVsPTIpCi0gICAgICAgIHJl
dHVybiBzZWxmLmdldGZpeHR1cmV2YWx1ZShhcmduYW1lKQotCi0gICAgZGVmIF9nZXRfYWN0aXZl
X2ZpeHR1cmVkZWYoc2VsZiwgYXJnbmFtZSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJl
dHVybiBzZWxmLl9maXh0dXJlX2RlZnNbYXJnbmFtZV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9y
OgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYgPSBzZWxmLl9n
ZXRuZXh0Zml4dHVyZWRlZihhcmduYW1lKQotICAgICAgICAgICAgZXhjZXB0IEZpeHR1cmVMb29r
dXBFcnJvcjoKLSAgICAgICAgICAgICAgICBpZiBhcmduYW1lID09ICJyZXF1ZXN0IjoKLSAgICAg
ICAgICAgICAgICAgICAgY2xhc3MgUHNldWRvRml4dHVyZURlZjoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNhY2hlZF9yZXN1bHQgPSAoc2VsZiwgWzBdLCBOb25lKQotICAgICAgICAgICAgICAg
ICAgICAgICAgc2NvcGUgPSAiZnVuY3Rpb24iCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBQ
c2V1ZG9GaXh0dXJlRGVmCi0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgIyByZW1vdmUg
aW5kZW50IHRvIHByZXZlbnQgdGhlIHB5dGhvbjMgZXhjZXB0aW9uCi0gICAgICAgICMgZnJvbSBs
ZWFraW5nIGludG8gdGhlIGNhbGwKLSAgICAgICAgcmVzdWx0ID0gc2VsZi5fZ2V0Zml4dHVyZXZh
bHVlKGZpeHR1cmVkZWYpCi0gICAgICAgIHNlbGYuX2ZpeHR1cmVfdmFsdWVzW2FyZ25hbWVdID0g
cmVzdWx0Ci0gICAgICAgIHNlbGYuX2ZpeHR1cmVfZGVmc1thcmduYW1lXSA9IGZpeHR1cmVkZWYK
LSAgICAgICAgcmV0dXJuIGZpeHR1cmVkZWYKLQotICAgIGRlZiBfZ2V0X2ZpeHR1cmVzdGFjayhz
ZWxmKToKLSAgICAgICAgY3VycmVudCA9IHNlbGYKLSAgICAgICAgdmFsdWVzID0gW10KLSAgICAg
ICAgd2hpbGUgMToKLSAgICAgICAgICAgIGZpeHR1cmVkZWYgPSBnZXRhdHRyKGN1cnJlbnQsICJf
Zml4dHVyZWRlZiIsIE5vbmUpCi0gICAgICAgICAgICBpZiBmaXh0dXJlZGVmIGlzIE5vbmU6Ci0g
ICAgICAgICAgICAgICAgdmFsdWVzLnJldmVyc2UoKQotICAgICAgICAgICAgICAgIHJldHVybiB2
YWx1ZXMKLSAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoZml4dHVyZWRlZikKLSAgICAgICAgICAg
IGN1cnJlbnQgPSBjdXJyZW50Ll9wYXJlbnRfcmVxdWVzdAotCi0gICAgZGVmIF9nZXRmaXh0dXJl
dmFsdWUoc2VsZiwgZml4dHVyZWRlZik6Ci0gICAgICAgICMgcHJlcGFyZSBhIHN1YnJlcXVlc3Qg
b2JqZWN0IGJlZm9yZSBjYWxsaW5nIGZpeHR1cmUgZnVuY3Rpb24KLSAgICAgICAgIyAobGF0dGVy
IG1hbmFnZWQgYnkgZml4dHVyZWRlZikKLSAgICAgICAgYXJnbmFtZSA9IGZpeHR1cmVkZWYuYXJn
bmFtZQotICAgICAgICBmdW5jaXRlbSA9IHNlbGYuX3B5ZnVuY2l0ZW0KLSAgICAgICAgc2NvcGUg
PSBmaXh0dXJlZGVmLnNjb3BlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHBhcmFtID0gZnVu
Y2l0ZW0uY2FsbHNwZWMuZ2V0cGFyYW0oYXJnbmFtZSkKLSAgICAgICAgZXhjZXB0IChBdHRyaWJ1
dGVFcnJvciwgVmFsdWVFcnJvcik6Ci0gICAgICAgICAgICBwYXJhbSA9IE5PVFNFVAotICAgICAg
ICAgICAgcGFyYW1faW5kZXggPSAwCi0gICAgICAgICAgICBpZiBmaXh0dXJlZGVmLnBhcmFtcyBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBmcmFtZSA9IGluc3BlY3Quc3RhY2soKVszXQot
ICAgICAgICAgICAgICAgIGZyYW1laW5mbyA9IGluc3BlY3QuZ2V0ZnJhbWVpbmZvKGZyYW1lWzBd
KQotICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoID0gZnJhbWVpbmZvLmZpbGVuYW1lCi0gICAg
ICAgICAgICAgICAgc291cmNlX2xpbmVubyA9IGZyYW1laW5mby5saW5lbm8KLSAgICAgICAgICAg
ICAgICBzb3VyY2VfcGF0aCA9IHB5LnBhdGgubG9jYWwoc291cmNlX3BhdGgpCi0gICAgICAgICAg
ICAgICAgaWYgc291cmNlX3BhdGgucmVsdG8oZnVuY2l0ZW0uY29uZmlnLnJvb3RkaXIpOgotICAg
ICAgICAgICAgICAgICAgICBzb3VyY2VfcGF0aCA9IHNvdXJjZV9wYXRoLnJlbHRvKGZ1bmNpdGVt
LmNvbmZpZy5yb290ZGlyKQotICAgICAgICAgICAgICAgIG1zZyA9ICgKLSAgICAgICAgICAgICAg
ICAgICAgIlRoZSByZXF1ZXN0ZWQgZml4dHVyZSBoYXMgbm8gcGFyYW1ldGVyIGRlZmluZWQgZm9y
IHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICJjdXJyZW50IHRlc3QuXG5cblJlcXVlc3RlZCBm
aXh0dXJlICd7MH0nIGRlZmluZWQgaW46XG57MX0iCi0gICAgICAgICAgICAgICAgICAgICJcblxu
UmVxdWVzdGVkIGhlcmU6XG57Mn06ezN9Ii5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAg
ICBmaXh0dXJlZGVmLmFyZ25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBnZXRsb2NhdGlv
bihmaXh0dXJlZGVmLmZ1bmMsIGZ1bmNpdGVtLmNvbmZpZy5yb290ZGlyKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNvdXJjZV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgc291cmNl
X2xpbmVubywKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgICAgICBmYWlsKG1zZykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgICMgaW5kaWNl
cyBtaWdodCBub3QgYmUgc2V0IGlmIG9sZC1zdHlsZSBtZXRhZnVuYy5hZGRjYWxsKCkgd2FzIHVz
ZWQKLSAgICAgICAgICAgIHBhcmFtX2luZGV4ID0gZnVuY2l0ZW0uY2FsbHNwZWMuaW5kaWNlcy5n
ZXQoYXJnbmFtZSwgMCkKLSAgICAgICAgICAgICMgaWYgYSBwYXJhbWV0cml6ZSBpbnZvY2F0aW9u
IHNldCBhIHNjb3BlIGl0IHdpbGwgb3ZlcnJpZGUKLSAgICAgICAgICAgICMgdGhlIHN0YXRpYyBz
Y29wZSBkZWZpbmVkIHdpdGggdGhlIGZpeHR1cmUgZnVuY3Rpb24KLSAgICAgICAgICAgIHBhcmFt
c2NvcGVudW0gPSBmdW5jaXRlbS5jYWxsc3BlYy5fYXJnMnNjb3BlbnVtLmdldChhcmduYW1lKQot
ICAgICAgICAgICAgaWYgcGFyYW1zY29wZW51bSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAg
ICBzY29wZSA9IHNjb3Blc1twYXJhbXNjb3BlbnVtXQotCi0gICAgICAgIHN1YnJlcXVlc3QgPSBT
dWJSZXF1ZXN0KHNlbGYsIHNjb3BlLCBwYXJhbSwgcGFyYW1faW5kZXgsIGZpeHR1cmVkZWYpCi0K
LSAgICAgICAgIyBjaGVjayBpZiBhIGhpZ2hlci1sZXZlbCBzY29wZWQgZml4dHVyZSBhY2Nlc3Nl
cyBhIGxvd2VyIGxldmVsIG9uZQotICAgICAgICBzdWJyZXF1ZXN0Ll9jaGVja19zY29wZShhcmdu
YW1lLCBzZWxmLnNjb3BlLCBzY29wZSkKLQotICAgICAgICAjIGNsZWFyIHN5cy5leGNfaW5mbyBi
ZWZvcmUgaW52b2tpbmcgdGhlIGZpeHR1cmUgKHB5dGhvbiBidWc/KQotICAgICAgICAjIGlmIGl0
cyBub3QgZXhwbGljaXRseSBjbGVhcmVkIGl0IHdpbGwgbGVhayBpbnRvIHRoZSBjYWxsCi0gICAg
ICAgIGV4Y19jbGVhcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgY2FsbCB0aGUgZml4
dHVyZSBmdW5jdGlvbgotICAgICAgICAgICAgdmFsID0gZml4dHVyZWRlZi5leGVjdXRlKHJlcXVl
c3Q9c3VicmVxdWVzdCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICMgaWYgZml4dHVy
ZSBmdW5jdGlvbiBmYWlsZWQgaXQgbWlnaHQgaGF2ZSByZWdpc3RlcmVkIGZpbmFsaXplcnMKLSAg
ICAgICAgICAgIHNlbGYuc2Vzc2lvbi5fc2V0dXBzdGF0ZS5hZGRmaW5hbGl6ZXIoZnVuY3Rvb2xz
LnBhcnRpYWwoZml4dHVyZWRlZi5maW5pc2gsIHJlcXVlc3Q9c3VicmVxdWVzdCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnJlcXVlc3Qubm9k
ZSkKLSAgICAgICAgcmV0dXJuIHZhbAotCi0gICAgZGVmIF9jaGVja19zY29wZShzZWxmLCBhcmdu
YW1lLCBpbnZva2luZ19zY29wZSwgcmVxdWVzdGVkX3Njb3BlKToKLSAgICAgICAgaWYgYXJnbmFt
ZSA9PSAicmVxdWVzdCI6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgc2NvcGVtaXNt
YXRjaChpbnZva2luZ19zY29wZSwgcmVxdWVzdGVkX3Njb3BlKToKLSAgICAgICAgICAgICMgdHJ5
IHRvIHJlcG9ydCBzb21ldGhpbmcgaGVscGZ1bAotICAgICAgICAgICAgbGluZXMgPSBzZWxmLl9m
YWN0b3J5dHJhY2ViYWNrKCkKLSAgICAgICAgICAgIGZhaWwoIlNjb3BlTWlzbWF0Y2g6IFlvdSB0
cmllZCB0byBhY2Nlc3MgdGhlICVyIHNjb3BlZCAiCi0gICAgICAgICAgICAgICAgICJmaXh0dXJl
ICVyIHdpdGggYSAlciBzY29wZWQgcmVxdWVzdCBvYmplY3QsICIKLSAgICAgICAgICAgICAgICAg
Imludm9sdmVkIGZhY3Rvcmllc1xuJXMiICUgKAotICAgICAgICAgICAgICAgICAgICAgKHJlcXVl
c3RlZF9zY29wZSwgYXJnbmFtZSwgaW52b2tpbmdfc2NvcGUsICJcbiIuam9pbihsaW5lcykpKSwK
LSAgICAgICAgICAgICAgICAgcHl0cmFjZT1GYWxzZSkKLQotICAgIGRlZiBfZmFjdG9yeXRyYWNl
YmFjayhzZWxmKToKLSAgICAgICAgbGluZXMgPSBbXQotICAgICAgICBmb3IgZml4dHVyZWRlZiBp
biBzZWxmLl9nZXRfZml4dHVyZXN0YWNrKCk6Ci0gICAgICAgICAgICBmYWN0b3J5ID0gZml4dHVy
ZWRlZi5mdW5jCi0gICAgICAgICAgICBmcywgbGluZW5vID0gZ2V0ZnNsaW5lbm8oZmFjdG9yeSkK
LSAgICAgICAgICAgIHAgPSBzZWxmLl9weWZ1bmNpdGVtLnNlc3Npb24uZnNwYXRoLmJlc3RyZWxw
YXRoKGZzKQotICAgICAgICAgICAgYXJncyA9IF9mb3JtYXRfYXJncyhmYWN0b3J5KQotICAgICAg
ICAgICAgbGluZXMuYXBwZW5kKCIlczolZDogIGRlZiAlcyVzIiAlICgKLSAgICAgICAgICAgICAg
ICBwLCBsaW5lbm8sIGZhY3RvcnkuX19uYW1lX18sIGFyZ3MpKQotICAgICAgICByZXR1cm4gbGlu
ZXMKLQotICAgIGRlZiBfZ2V0c2NvcGVpdGVtKHNlbGYsIHNjb3BlKToKLSAgICAgICAgaWYgc2Nv
cGUgPT0gImZ1bmN0aW9uIjoKLSAgICAgICAgICAgICMgdGhpcyBtaWdodCBhbHNvIGJlIGEgbm9u
LWZ1bmN0aW9uIEl0ZW0gZGVzcGl0ZSBpdHMgYXR0cmlidXRlIG5hbWUKLSAgICAgICAgICAgIHJl
dHVybiBzZWxmLl9weWZ1bmNpdGVtCi0gICAgICAgIG5vZGUgPSBnZXRfc2NvcGVfbm9kZShzZWxm
Ll9weWZ1bmNpdGVtLCBzY29wZSkKLSAgICAgICAgaWYgbm9kZSBpcyBOb25lIGFuZCBzY29wZSA9
PSAiY2xhc3MiOgotICAgICAgICAgICAgIyBmYWxsYmFjayB0byBmdW5jdGlvbiBpdGVtIGl0c2Vs
ZgotICAgICAgICAgICAgbm9kZSA9IHNlbGYuX3B5ZnVuY2l0ZW0KLSAgICAgICAgYXNzZXJ0IG5v
ZGUsICdDb3VsZCBub3Qgb2J0YWluIGEgbm9kZSBmb3Igc2NvcGUgInt9IiBmb3IgZnVuY3Rpb24g
eyFyfScuZm9ybWF0KHNjb3BlLCBzZWxmLl9weWZ1bmNpdGVtKQotICAgICAgICByZXR1cm4gbm9k
ZQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxGaXh0dXJlUmVx
dWVzdCBmb3IgJXI+IiAlIChzZWxmLm5vZGUpCi0KLQotY2xhc3MgU3ViUmVxdWVzdChGaXh0dXJl
UmVxdWVzdCk6Ci0gICAgIiIiIGEgc3ViIHJlcXVlc3QgZm9yIGhhbmRsaW5nIGdldHRpbmcgYSBm
aXh0dXJlIGZyb20gYQotICAgIHRlc3QgZnVuY3Rpb24vZml4dHVyZS4gIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcmVxdWVzdCwgc2NvcGUsIHBhcmFtLCBwYXJhbV9pbmRleCwgZml4dHVy
ZWRlZik6Ci0gICAgICAgIHNlbGYuX3BhcmVudF9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBz
ZWxmLmZpeHR1cmVuYW1lID0gZml4dHVyZWRlZi5hcmduYW1lCi0gICAgICAgIGlmIHBhcmFtIGlz
IG5vdCBOT1RTRVQ6Ci0gICAgICAgICAgICBzZWxmLnBhcmFtID0gcGFyYW0KLSAgICAgICAgc2Vs
Zi5wYXJhbV9pbmRleCA9IHBhcmFtX2luZGV4Ci0gICAgICAgIHNlbGYuc2NvcGUgPSBzY29wZQot
ICAgICAgICBzZWxmLl9maXh0dXJlZGVmID0gZml4dHVyZWRlZgotICAgICAgICBzZWxmLl9weWZ1
bmNpdGVtID0gcmVxdWVzdC5fcHlmdW5jaXRlbQotICAgICAgICBzZWxmLl9maXh0dXJlX3ZhbHVl
cyA9IHJlcXVlc3QuX2ZpeHR1cmVfdmFsdWVzCi0gICAgICAgIHNlbGYuX2ZpeHR1cmVfZGVmcyA9
IHJlcXVlc3QuX2ZpeHR1cmVfZGVmcwotICAgICAgICBzZWxmLl9hcmcyZml4dHVyZWRlZnMgPSBy
ZXF1ZXN0Ll9hcmcyZml4dHVyZWRlZnMKLSAgICAgICAgc2VsZi5fYXJnMmluZGV4ID0gcmVxdWVz
dC5fYXJnMmluZGV4Ci0gICAgICAgIHNlbGYuX2ZpeHR1cmVtYW5hZ2VyID0gcmVxdWVzdC5fZml4
dHVyZW1hbmFnZXIKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8
U3ViUmVxdWVzdCAlciBmb3IgJXI+IiAlIChzZWxmLmZpeHR1cmVuYW1lLCBzZWxmLl9weWZ1bmNp
dGVtKQotCi0gICAgZGVmIGFkZGZpbmFsaXplcihzZWxmLCBmaW5hbGl6ZXIpOgotICAgICAgICBz
ZWxmLl9maXh0dXJlZGVmLmFkZGZpbmFsaXplcihmaW5hbGl6ZXIpCi0KLQotY2xhc3MgU2NvcGVN
aXNtYXRjaEVycm9yKEV4Y2VwdGlvbik6Ci0gICAgIiIiIEEgZml4dHVyZSBmdW5jdGlvbiB0cmll
cyB0byB1c2UgYSBkaWZmZXJlbnQgZml4dHVyZSBmdW5jdGlvbiB3aGljaAotICAgIHdoaWNoIGhh
cyBhIGxvd2VyIHNjb3BlIChlLmcuIGEgU2Vzc2lvbiBvbmUgY2FsbHMgYSBmdW5jdGlvbiBvbmUp
Ci0gICAgIiIiCi0KLQotc2NvcGVzID0gInNlc3Npb24gbW9kdWxlIGNsYXNzIGZ1bmN0aW9uIi5z
cGxpdCgpCi1zY29wZW51bV9mdW5jdGlvbiA9IHNjb3Blcy5pbmRleCgiZnVuY3Rpb24iKQotCi0K
LWRlZiBzY29wZW1pc21hdGNoKGN1cnJlbnRzY29wZSwgbmV3c2NvcGUpOgotICAgIHJldHVybiBz
Y29wZXMuaW5kZXgobmV3c2NvcGUpID4gc2NvcGVzLmluZGV4KGN1cnJlbnRzY29wZSkKLQotCi1k
ZWYgc2NvcGUyaW5kZXgoc2NvcGUsIGRlc2NyLCB3aGVyZT1Ob25lKToKLSAgICAiIiJMb29rIHVw
IHRoZSBpbmRleCBvZiBgYHNjb3BlYGAgYW5kIHJhaXNlIGEgZGVzY3JpcHRpdmUgdmFsdWUgZXJy
b3IKLSAgICBpZiBub3QgZGVmaW5lZC4KLSAgICAiIiIKLSAgICB0cnk6Ci0gICAgICAgIHJldHVy
biBzY29wZXMuaW5kZXgoc2NvcGUpCi0gICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAiezB9IHsxfWhhcyBhbiB1bnN1cHBvcnRlZCBz
Y29wZSB2YWx1ZSAnezJ9JyIuZm9ybWF0KAotICAgICAgICAgICAgICAgIGRlc2NyLCAnZnJvbSB7
MH0gJy5mb3JtYXQod2hlcmUpIGlmIHdoZXJlIGVsc2UgJycsCi0gICAgICAgICAgICAgICAgc2Nv
cGUpCi0gICAgICAgICkKLQotCi1jbGFzcyBGaXh0dXJlTG9va3VwRXJyb3IoTG9va3VwRXJyb3Ip
OgotICAgICIiIiBjb3VsZCBub3QgcmV0dXJuIGEgcmVxdWVzdGVkIEZpeHR1cmUgKG1pc3Npbmcg
b3IgaW52YWxpZCkuICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGFyZ25hbWUsIHJlcXVl
c3QsIG1zZz1Ob25lKToKLSAgICAgICAgc2VsZi5hcmduYW1lID0gYXJnbmFtZQotICAgICAgICBz
ZWxmLnJlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuZml4dHVyZXN0YWNrID0gcmVxdWVz
dC5fZ2V0X2ZpeHR1cmVzdGFjaygpCi0gICAgICAgIHNlbGYubXNnID0gbXNnCi0KLSAgICBkZWYg
Zm9ybWF0cmVwcihzZWxmKToKLSAgICAgICAgdGJsaW5lcyA9IFtdCi0gICAgICAgIGFkZGxpbmUg
PSB0YmxpbmVzLmFwcGVuZAotICAgICAgICBzdGFjayA9IFtzZWxmLnJlcXVlc3QuX3B5ZnVuY2l0
ZW0ub2JqXQotICAgICAgICBzdGFjay5leHRlbmQobWFwKGxhbWJkYSB4OiB4LmZ1bmMsIHNlbGYu
Zml4dHVyZXN0YWNrKSkKLSAgICAgICAgbXNnID0gc2VsZi5tc2cKLSAgICAgICAgaWYgbXNnIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgIyB0aGUgbGFzdCBmaXh0dXJlIHJhaXNlIGFuIGVycm9y
LCBsZXQncyBwcmVzZW50Ci0gICAgICAgICAgICAjIGl0IGF0IHRoZSByZXF1ZXN0aW5nIHNpZGUK
LSAgICAgICAgICAgIHN0YWNrID0gc3RhY2tbOi0xXQotICAgICAgICBmb3IgZnVuY3Rpb24gaW4g
c3RhY2s6Ci0gICAgICAgICAgICBmc3BhdGgsIGxpbmVubyA9IGdldGZzbGluZW5vKGZ1bmN0aW9u
KQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGxpbmVzLCBfID0gaW5zcGVjdC5n
ZXRzb3VyY2VsaW5lcyhnZXRfcmVhbF9mdW5jKGZ1bmN0aW9uKSkKLSAgICAgICAgICAgIGV4Y2Vw
dCAoSU9FcnJvciwgSW5kZXhFcnJvciwgVHlwZUVycm9yKToKLSAgICAgICAgICAgICAgICBlcnJv
cl9tc2cgPSAiZmlsZSAlcywgbGluZSAlczogc291cmNlIGNvZGUgbm90IGF2YWlsYWJsZSIKLSAg
ICAgICAgICAgICAgICBhZGRsaW5lKGVycm9yX21zZyAlIChmc3BhdGgsIGxpbmVubyArIDEpKQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBhZGRsaW5lKCJmaWxlICVzLCBsaW5l
ICVzIiAlIChmc3BhdGgsIGxpbmVubyArIDEpKQotICAgICAgICAgICAgICAgIGZvciBpLCBsaW5l
IGluIGVudW1lcmF0ZShsaW5lcyk6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJz
dHJpcCgpCi0gICAgICAgICAgICAgICAgICAgIGFkZGxpbmUoIiAgIiArIGxpbmUpCi0gICAgICAg
ICAgICAgICAgICAgIGlmIGxpbmUubHN0cmlwKCkuc3RhcnRzd2l0aCgnZGVmJyk6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlmIG1zZyBpcyBOb25lOgotICAgICAg
ICAgICAgZm0gPSBzZWxmLnJlcXVlc3QuX2ZpeHR1cmVtYW5hZ2VyCi0gICAgICAgICAgICBhdmFp
bGFibGUgPSBbXQotICAgICAgICAgICAgcGFyZW50aWQgPSBzZWxmLnJlcXVlc3QuX3B5ZnVuY2l0
ZW0ucGFyZW50Lm5vZGVpZAotICAgICAgICAgICAgZm9yIG5hbWUsIGZpeHR1cmVkZWZzIGluIGZt
Ll9hcmcyZml4dHVyZWRlZnMuaXRlbXMoKToKLSAgICAgICAgICAgICAgICBmYWNsaXN0ID0gbGlz
dChmbS5fbWF0Y2hmYWN0b3JpZXMoZml4dHVyZWRlZnMsIHBhcmVudGlkKSkKLSAgICAgICAgICAg
ICAgICBpZiBmYWNsaXN0IGFuZCBuYW1lIG5vdCBpbiBhdmFpbGFibGU6Ci0gICAgICAgICAgICAg
ICAgICAgIGF2YWlsYWJsZS5hcHBlbmQobmFtZSkKLSAgICAgICAgICAgIG1zZyA9ICJmaXh0dXJl
ICVyIG5vdCBmb3VuZCIgJSAoc2VsZi5hcmduYW1lLCkKLSAgICAgICAgICAgIG1zZyArPSAiXG4g
YXZhaWxhYmxlIGZpeHR1cmVzOiAlcyIgJSAoIiwgIi5qb2luKHNvcnRlZChhdmFpbGFibGUpKSwp
Ci0gICAgICAgICAgICBtc2cgKz0gIlxuIHVzZSAncHl0ZXN0IC0tZml4dHVyZXMgW3Rlc3RwYXRo
XScgZm9yIGhlbHAgb24gdGhlbS4iCi0KLSAgICAgICAgcmV0dXJuIEZpeHR1cmVMb29rdXBFcnJv
clJlcHIoZnNwYXRoLCBsaW5lbm8sIHRibGluZXMsIG1zZywgc2VsZi5hcmduYW1lKQotCi0KLWNs
YXNzIEZpeHR1cmVMb29rdXBFcnJvclJlcHIoVGVybWluYWxSZXByKToKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgZmlsZW5hbWUsIGZpcnN0bGluZW5vLCB0YmxpbmVzLCBlcnJvcnN0cmluZywgYXJn
bmFtZSk6Ci0gICAgICAgIHNlbGYudGJsaW5lcyA9IHRibGluZXMKLSAgICAgICAgc2VsZi5lcnJv
cnN0cmluZyA9IGVycm9yc3RyaW5nCi0gICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQot
ICAgICAgICBzZWxmLmZpcnN0bGluZW5vID0gZmlyc3RsaW5lbm8KLSAgICAgICAgc2VsZi5hcmdu
YW1lID0gYXJnbmFtZQotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgotICAgICAgICAj
IHR3LmxpbmUoIkZpeHR1cmVMb29rdXBFcnJvcjogJXMiICUoc2VsZi5hcmduYW1lKSwgcmVkPVRy
dWUpCi0gICAgICAgIGZvciB0YmxpbmUgaW4gc2VsZi50YmxpbmVzOgotICAgICAgICAgICAgdHcu
bGluZSh0YmxpbmUucnN0cmlwKCkpCi0gICAgICAgIGxpbmVzID0gc2VsZi5lcnJvcnN0cmluZy5z
cGxpdCgiXG4iKQotICAgICAgICBpZiBsaW5lczoKLSAgICAgICAgICAgIHR3LmxpbmUoJ3swfSAg
ICAgICB7MX0nLmZvcm1hdChGb3JtYXR0ZWRFeGNpbmZvLmZhaWxfbWFya2VyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzWzBdLnN0cmlwKCkpLCByZWQ9
VHJ1ZSkKLSAgICAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzWzE6XToKLSAgICAgICAgICAgICAg
ICB0dy5saW5lKCd7MH0gICAgICAgezF9Jy5mb3JtYXQoRm9ybWF0dGVkRXhjaW5mby5mbG93X21h
cmtlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlu
ZS5zdHJpcCgpKSwgcmVkPVRydWUpCi0gICAgICAgIHR3LmxpbmUoKQotICAgICAgICB0dy5saW5l
KCIlczolZCIgJSAoc2VsZi5maWxlbmFtZSwgc2VsZi5maXJzdGxpbmVubyArIDEpKQotCi0KLWRl
ZiBmYWlsX2ZpeHR1cmVmdW5jKGZpeHR1cmVmdW5jLCBtc2cpOgotICAgIGZzLCBsaW5lbm8gPSBn
ZXRmc2xpbmVubyhmaXh0dXJlZnVuYykKLSAgICBsb2NhdGlvbiA9ICIlczolcyIgJSAoZnMsIGxp
bmVubyArIDEpCi0gICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoZml4dHVyZWZ1bmMp
Ci0gICAgZmFpbChtc2cgKyAiOlxuXG4iICsgc3RyKHNvdXJjZS5pbmRlbnQoKSkgKyAiXG4iICsg
bG9jYXRpb24sCi0gICAgICAgICBweXRyYWNlPUZhbHNlKQotCi0KLWRlZiBjYWxsX2ZpeHR1cmVf
ZnVuYyhmaXh0dXJlZnVuYywgcmVxdWVzdCwga3dhcmdzKToKLSAgICB5aWVsZGN0eCA9IGlzX2dl
bmVyYXRvcihmaXh0dXJlZnVuYykKLSAgICBpZiB5aWVsZGN0eDoKLSAgICAgICAgaXQgPSBmaXh0
dXJlZnVuYygqKmt3YXJncykKLSAgICAgICAgcmVzID0gbmV4dChpdCkKLQotICAgICAgICBkZWYg
dGVhcmRvd24oKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBuZXh0KGl0KQot
ICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246Ci0gICAgICAgICAgICAgICAgcGFzcwot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBmYWlsX2ZpeHR1cmVmdW5jKGZpeHR1
cmVmdW5jLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInlpZWxkX2ZpeHR1cmUg
ZnVuY3Rpb24gaGFzIG1vcmUgdGhhbiBvbmUgJ3lpZWxkJyIpCi0KLSAgICAgICAgcmVxdWVzdC5h
ZGRmaW5hbGl6ZXIodGVhcmRvd24pCi0gICAgZWxzZToKLSAgICAgICAgcmVzID0gZml4dHVyZWZ1
bmMoKiprd2FyZ3MpCi0gICAgcmV0dXJuIHJlcwotCi0KLWNsYXNzIEZpeHR1cmVEZWY6Ci0gICAg
IiIiIEEgY29udGFpbmVyIGZvciBhIGZhY3RvcnkgZGVmaW5pdGlvbi4gIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgZml4dHVyZW1hbmFnZXIsIGJhc2VpZCwgYXJnbmFtZSwgZnVuYywgc2Nv
cGUsIHBhcmFtcywKLSAgICAgICAgICAgICAgICAgdW5pdHRlc3Q9RmFsc2UsIGlkcz1Ob25lKToK
LSAgICAgICAgc2VsZi5fZml4dHVyZW1hbmFnZXIgPSBmaXh0dXJlbWFuYWdlcgotICAgICAgICBz
ZWxmLmJhc2VpZCA9IGJhc2VpZCBvciAnJwotICAgICAgICBzZWxmLmhhc19sb2NhdGlvbiA9IGJh
c2VpZCBpcyBub3QgTm9uZQotICAgICAgICBzZWxmLmZ1bmMgPSBmdW5jCi0gICAgICAgIHNlbGYu
YXJnbmFtZSA9IGFyZ25hbWUKLSAgICAgICAgc2VsZi5zY29wZSA9IHNjb3BlCi0gICAgICAgIHNl
bGYuc2NvcGVudW0gPSBzY29wZTJpbmRleCgKLSAgICAgICAgICAgIHNjb3BlIG9yICJmdW5jdGlv
biIsCi0gICAgICAgICAgICBkZXNjcj0nZml4dHVyZSB7MH0nLmZvcm1hdChmdW5jLl9fbmFtZV9f
KSwKLSAgICAgICAgICAgIHdoZXJlPWJhc2VpZAotICAgICAgICApCi0gICAgICAgIHNlbGYucGFy
YW1zID0gcGFyYW1zCi0gICAgICAgIHNlbGYuYXJnbmFtZXMgPSBnZXRmdW5jYXJnbmFtZXMoZnVu
YywgaXNfbWV0aG9kPXVuaXR0ZXN0KQotICAgICAgICBzZWxmLnVuaXR0ZXN0ID0gdW5pdHRlc3QK
LSAgICAgICAgc2VsZi5pZHMgPSBpZHMKLSAgICAgICAgc2VsZi5fZmluYWxpemVycyA9IFtdCi0K
LSAgICBkZWYgYWRkZmluYWxpemVyKHNlbGYsIGZpbmFsaXplcik6Ci0gICAgICAgIHNlbGYuX2Zp
bmFsaXplcnMuYXBwZW5kKGZpbmFsaXplcikKLQotICAgIGRlZiBmaW5pc2goc2VsZiwgcmVxdWVz
dCk6Ci0gICAgICAgIGV4Y2VwdGlvbnMgPSBbXQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3
aGlsZSBzZWxmLl9maW5hbGl6ZXJzOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICAgICAgZnVuYyA9IHNlbGYuX2ZpbmFsaXplcnMucG9wKCkKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYygpCi0gICAgICAgICAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgICAgICAg
ICAgICAgIGV4Y2VwdGlvbnMuYXBwZW5kKHN5cy5leGNfaW5mbygpKQotICAgICAgICAgICAgaWYg
ZXhjZXB0aW9uczoKLSAgICAgICAgICAgICAgICBlID0gZXhjZXB0aW9uc1swXQotICAgICAgICAg
ICAgICAgIGRlbCBleGNlcHRpb25zICAjIGVuc3VyZSB3ZSBkb24ndCBrZWVwIGFsbCBmcmFtZXMg
YWxpdmUgYmVjYXVzZSBvZiB0aGUgdHJhY2ViYWNrCi0gICAgICAgICAgICAgICAgcHkuYnVpbHRp
bi5fcmVyYWlzZSgqZSkKLQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgaG9vayA9IHNl
bGYuX2ZpeHR1cmVtYW5hZ2VyLnNlc3Npb24uZ2V0aG9va3Byb3h5KHJlcXVlc3Qubm9kZS5mc3Bh
dGgpCi0gICAgICAgICAgICBob29rLnB5dGVzdF9maXh0dXJlX3Bvc3RfZmluYWxpemVyKGZpeHR1
cmVkZWY9c2VsZiwgcmVxdWVzdD1yZXF1ZXN0KQotICAgICAgICAgICAgIyBldmVuIGlmIGZpbmFs
aXphdGlvbiBmYWlscywgd2UgaW52YWxpZGF0ZQotICAgICAgICAgICAgIyB0aGUgY2FjaGVkIGZp
eHR1cmUgdmFsdWUgYW5kIHJlbW92ZQotICAgICAgICAgICAgIyBhbGwgZmluYWxpemVycyBiZWNh
dXNlIHRoZXkgbWF5IGJlIGJvdW5kIG1ldGhvZHMgd2hpY2ggd2lsbAotICAgICAgICAgICAgIyBr
ZWVwIGluc3RhbmNlcyBhbGl2ZQotICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiY2FjaGVk
X3Jlc3VsdCIpOgotICAgICAgICAgICAgICAgIGRlbCBzZWxmLmNhY2hlZF9yZXN1bHQKLSAgICAg
ICAgICAgIHNlbGYuX2ZpbmFsaXplcnMgPSBbXQotCi0gICAgZGVmIGV4ZWN1dGUoc2VsZiwgcmVx
dWVzdCk6Ci0gICAgICAgICMgZ2V0IHJlcXVpcmVkIGFyZ3VtZW50cyBhbmQgcmVnaXN0ZXIgb3Vy
IG93biBmaW5pc2goKQotICAgICAgICAjIHdpdGggdGhlaXIgZmluYWxpemF0aW9uCi0gICAgICAg
IGZvciBhcmduYW1lIGluIHNlbGYuYXJnbmFtZXM6Ci0gICAgICAgICAgICBmaXh0dXJlZGVmID0g
cmVxdWVzdC5fZ2V0X2FjdGl2ZV9maXh0dXJlZGVmKGFyZ25hbWUpCi0gICAgICAgICAgICBpZiBh
cmduYW1lICE9ICJyZXF1ZXN0IjoKLSAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLmFkZGZpbmFs
aXplcihmdW5jdG9vbHMucGFydGlhbChzZWxmLmZpbmlzaCwgcmVxdWVzdD1yZXF1ZXN0KSkKLQot
ICAgICAgICBteV9jYWNoZV9rZXkgPSByZXF1ZXN0LnBhcmFtX2luZGV4Ci0gICAgICAgIGNhY2hl
ZF9yZXN1bHQgPSBnZXRhdHRyKHNlbGYsICJjYWNoZWRfcmVzdWx0IiwgTm9uZSkKLSAgICAgICAg
aWYgY2FjaGVkX3Jlc3VsdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlc3VsdCwgY2FjaGVf
a2V5LCBlcnIgPSBjYWNoZWRfcmVzdWx0Ci0gICAgICAgICAgICBpZiBteV9jYWNoZV9rZXkgPT0g
Y2FjaGVfa2V5OgotICAgICAgICAgICAgICAgIGlmIGVyciBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgICAgICAgICAgcHkuYnVpbHRpbi5fcmVyYWlzZSgqZXJyKQotICAgICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQKLSAgICAgICAgICAgICMgd2Ug
aGF2ZSBhIHByZXZpb3VzIGJ1dCBkaWZmZXJlbnRseSBwYXJhbWV0cml6ZWQgZml4dHVyZSBpbnN0
YW5jZQotICAgICAgICAgICAgIyBzbyB3ZSBuZWVkIHRvIHRlYXIgaXQgZG93biBiZWZvcmUgY3Jl
YXRpbmcgYSBuZXcgb25lCi0gICAgICAgICAgICBzZWxmLmZpbmlzaChyZXF1ZXN0KQotICAgICAg
ICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHNlbGYsICJjYWNoZWRfcmVzdWx0IikKLQotICAgICAg
ICBob29rID0gc2VsZi5fZml4dHVyZW1hbmFnZXIuc2Vzc2lvbi5nZXRob29rcHJveHkocmVxdWVz
dC5ub2RlLmZzcGF0aCkKLSAgICAgICAgcmV0dXJuIGhvb2sucHl0ZXN0X2ZpeHR1cmVfc2V0dXAo
Zml4dHVyZWRlZj1zZWxmLCByZXF1ZXN0PXJlcXVlc3QpCi0KLSAgICBkZWYgX19yZXByX18oc2Vs
Zik6Ci0gICAgICAgIHJldHVybiAoIjxGaXh0dXJlRGVmIG5hbWU9JXIgc2NvcGU9JXIgYmFzZWlk
PSVyID4iICUKLSAgICAgICAgICAgICAgICAoc2VsZi5hcmduYW1lLCBzZWxmLnNjb3BlLCBzZWxm
LmJhc2VpZCkpCi0KLQotZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJlcXVl
c3QpOgotICAgICIiIiBFeGVjdXRpb24gb2YgZml4dHVyZSBzZXR1cC4gIiIiCi0gICAga3dhcmdz
ID0ge30KLSAgICBmb3IgYXJnbmFtZSBpbiBmaXh0dXJlZGVmLmFyZ25hbWVzOgotICAgICAgICBm
aXhkZWYgPSByZXF1ZXN0Ll9nZXRfYWN0aXZlX2ZpeHR1cmVkZWYoYXJnbmFtZSkKLSAgICAgICAg
cmVzdWx0LCBhcmdfY2FjaGVfa2V5LCBleGMgPSBmaXhkZWYuY2FjaGVkX3Jlc3VsdAotICAgICAg
ICByZXF1ZXN0Ll9jaGVja19zY29wZShhcmduYW1lLCByZXF1ZXN0LnNjb3BlLCBmaXhkZWYuc2Nv
cGUpCi0gICAgICAgIGt3YXJnc1thcmduYW1lXSA9IHJlc3VsdAotCi0gICAgZml4dHVyZWZ1bmMg
PSBmaXh0dXJlZGVmLmZ1bmMKLSAgICBpZiBmaXh0dXJlZGVmLnVuaXR0ZXN0OgotICAgICAgICBp
ZiByZXF1ZXN0Lmluc3RhbmNlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgIyBiaW5kIHRoZSB1
bmJvdW5kIG1ldGhvZCB0byB0aGUgVGVzdENhc2UgaW5zdGFuY2UKLSAgICAgICAgICAgIGZpeHR1
cmVmdW5jID0gZml4dHVyZWRlZi5mdW5jLl9fZ2V0X18ocmVxdWVzdC5pbnN0YW5jZSkKLSAgICBl
bHNlOgotICAgICAgICAjIHRoZSBmaXh0dXJlIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIGJvdW5kIHRv
IHRoZSBhY3R1YWwKLSAgICAgICAgIyByZXF1ZXN0Lmluc3RhbmNlIHNvIHRoYXQgY29kZSB3b3Jr
aW5nIHdpdGggImZpeHR1cmVkZWYiIGJlaGF2ZXMKLSAgICAgICAgIyBhcyBleHBlY3RlZC4KLSAg
ICAgICAgaWYgcmVxdWVzdC5pbnN0YW5jZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZpeHR1
cmVmdW5jID0gZ2V0aW1mdW5jKGZpeHR1cmVkZWYuZnVuYykKLSAgICAgICAgICAgIGlmIGZpeHR1
cmVmdW5jICE9IGZpeHR1cmVkZWYuZnVuYzoKLSAgICAgICAgICAgICAgICBmaXh0dXJlZnVuYyA9
IGZpeHR1cmVmdW5jLl9fZ2V0X18ocmVxdWVzdC5pbnN0YW5jZSkKLSAgICBteV9jYWNoZV9rZXkg
PSByZXF1ZXN0LnBhcmFtX2luZGV4Ci0gICAgdHJ5OgotICAgICAgICByZXN1bHQgPSBjYWxsX2Zp
eHR1cmVfZnVuYyhmaXh0dXJlZnVuYywgcmVxdWVzdCwga3dhcmdzKQotICAgIGV4Y2VwdCBURVNU
X09VVENPTUU6Ci0gICAgICAgIGZpeHR1cmVkZWYuY2FjaGVkX3Jlc3VsdCA9IChOb25lLCBteV9j
YWNoZV9rZXksIHN5cy5leGNfaW5mbygpKQotICAgICAgICByYWlzZQotICAgIGZpeHR1cmVkZWYu
Y2FjaGVkX3Jlc3VsdCA9IChyZXN1bHQsIG15X2NhY2hlX2tleSwgTm9uZSkKLSAgICByZXR1cm4g
cmVzdWx0Ci0KLQotZGVmIF9lbnN1cmVfaW1tdXRhYmxlX2lkcyhpZHMpOgotICAgIGlmIGlkcyBp
cyBOb25lOgotICAgICAgICByZXR1cm4KLSAgICBpZiBjYWxsYWJsZShpZHMpOgotICAgICAgICBy
ZXR1cm4gaWRzCi0gICAgcmV0dXJuIHR1cGxlKGlkcykKLQotCi1AYXR0ci5zKGZyb3plbj1UcnVl
KQotY2xhc3MgRml4dHVyZUZ1bmN0aW9uTWFya2VyKG9iamVjdCk6Ci0gICAgc2NvcGUgPSBhdHRy
LmliKCkKLSAgICBwYXJhbXMgPSBhdHRyLmliKGNvbnZlcnQ9YXR0ci5jb252ZXJ0ZXJzLm9wdGlv
bmFsKHR1cGxlKSkKLSAgICBhdXRvdXNlID0gYXR0ci5pYihkZWZhdWx0PUZhbHNlKQotICAgIGlk
cyA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lLCBjb252ZXJ0PV9lbnN1cmVfaW1tdXRhYmxlX2lkcykK
LSAgICBuYW1lID0gYXR0ci5pYihkZWZhdWx0PU5vbmUpCi0KLSAgICBkZWYgX19jYWxsX18oc2Vs
ZiwgZnVuY3Rpb24pOgotICAgICAgICBpZiBpc2NsYXNzKGZ1bmN0aW9uKToKLSAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgImNsYXNzIGZpeHR1cmVzIG5vdCBz
dXBwb3J0ZWQgKG1heSBiZSBpbiB0aGUgZnV0dXJlKSIpCi0gICAgICAgIGZ1bmN0aW9uLl9weXRl
c3RmaXh0dXJlZnVuY3Rpb24gPSBzZWxmCi0gICAgICAgIHJldHVybiBmdW5jdGlvbgotCi0KLWRl
ZiBmaXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIHBhcmFtcz1Ob25lLCBhdXRvdXNlPUZhbHNlLCBp
ZHM9Tm9uZSwgbmFtZT1Ob25lKToKLSAgICAiIiIgKHJldHVybiBhKSBkZWNvcmF0b3IgdG8gbWFy
ayBhIGZpeHR1cmUgZmFjdG9yeSBmdW5jdGlvbi4KLQotICAgIFRoaXMgZGVjb3JhdG9yIGNhbiBi
ZSB1c2VkICh3aXRoIG9yIHdpdGhvdXQgcGFyYW1ldGVycykgdG8gZGVmaW5lIGEKLSAgICBmaXh0
dXJlIGZ1bmN0aW9uLiAgVGhlIG5hbWUgb2YgdGhlIGZpeHR1cmUgZnVuY3Rpb24gY2FuIGxhdGVy
IGJlCi0gICAgcmVmZXJlbmNlZCB0byBjYXVzZSBpdHMgaW52b2NhdGlvbiBhaGVhZCBvZiBydW5u
aW5nIHRlc3RzOiB0ZXN0Ci0gICAgbW9kdWxlcyBvciBjbGFzc2VzIGNhbiB1c2UgdGhlIHB5dGVz
dC5tYXJrLnVzZWZpeHR1cmVzKGZpeHR1cmVuYW1lKQotICAgIG1hcmtlci4gIFRlc3QgZnVuY3Rp
b25zIGNhbiBkaXJlY3RseSB1c2UgZml4dHVyZSBuYW1lcyBhcyBpbnB1dAotICAgIGFyZ3VtZW50
cyBpbiB3aGljaCBjYXNlIHRoZSBmaXh0dXJlIGluc3RhbmNlIHJldHVybmVkIGZyb20gdGhlIGZp
eHR1cmUKLSAgICBmdW5jdGlvbiB3aWxsIGJlIGluamVjdGVkLgotCi0gICAgOmFyZyBzY29wZTog
dGhlIHNjb3BlIGZvciB3aGljaCB0aGlzIGZpeHR1cmUgaXMgc2hhcmVkLCBvbmUgb2YKLSAgICAg
ICAgICAgICAgICAiZnVuY3Rpb24iIChkZWZhdWx0KSwgImNsYXNzIiwgIm1vZHVsZSIgb3IgInNl
c3Npb24iLgotCi0gICAgOmFyZyBwYXJhbXM6IGFuIG9wdGlvbmFsIGxpc3Qgb2YgcGFyYW1ldGVy
cyB3aGljaCB3aWxsIGNhdXNlIG11bHRpcGxlCi0gICAgICAgICAgICAgICAgaW52b2NhdGlvbnMg
b2YgdGhlIGZpeHR1cmUgZnVuY3Rpb24gYW5kIGFsbCBvZiB0aGUgdGVzdHMKLSAgICAgICAgICAg
ICAgICB1c2luZyBpdC4KLQotICAgIDphcmcgYXV0b3VzZTogaWYgVHJ1ZSwgdGhlIGZpeHR1cmUg
ZnVuYyBpcyBhY3RpdmF0ZWQgZm9yIGFsbCB0ZXN0cyB0aGF0Ci0gICAgICAgICAgICAgICAgY2Fu
IHNlZSBpdC4gIElmIEZhbHNlICh0aGUgZGVmYXVsdCkgdGhlbiBhbiBleHBsaWNpdAotICAgICAg
ICAgICAgICAgIHJlZmVyZW5jZSBpcyBuZWVkZWQgdG8gYWN0aXZhdGUgdGhlIGZpeHR1cmUuCi0K
LSAgICA6YXJnIGlkczogbGlzdCBvZiBzdHJpbmcgaWRzIGVhY2ggY29ycmVzcG9uZGluZyB0byB0
aGUgcGFyYW1zCi0gICAgICAgICAgICAgICAgc28gdGhhdCB0aGV5IGFyZSBwYXJ0IG9mIHRoZSB0
ZXN0IGlkLiBJZiBubyBpZHMgYXJlIHByb3ZpZGVkCi0gICAgICAgICAgICAgICAgdGhleSB3aWxs
IGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIHBhcmFtcy4KLQotICAgIDphcmcg
bmFtZTogdGhlIG5hbWUgb2YgdGhlIGZpeHR1cmUuIFRoaXMgZGVmYXVsdHMgdG8gdGhlIG5hbWUg
b2YgdGhlCi0gICAgICAgICAgICAgICAgZGVjb3JhdGVkIGZ1bmN0aW9uLiBJZiBhIGZpeHR1cmUg
aXMgdXNlZCBpbiB0aGUgc2FtZSBtb2R1bGUgaW4KLSAgICAgICAgICAgICAgICB3aGljaCBpdCBp
cyBkZWZpbmVkLCB0aGUgZnVuY3Rpb24gbmFtZSBvZiB0aGUgZml4dHVyZSB3aWxsIGJlCi0gICAg
ICAgICAgICAgICAgc2hhZG93ZWQgYnkgdGhlIGZ1bmN0aW9uIGFyZyB0aGF0IHJlcXVlc3RzIHRo
ZSBmaXh0dXJlOyBvbmUgd2F5Ci0gICAgICAgICAgICAgICAgdG8gcmVzb2x2ZSB0aGlzIGlzIHRv
IG5hbWUgdGhlIGRlY29yYXRlZCBmdW5jdGlvbgotICAgICAgICAgICAgICAgIGBgZml4dHVyZV88
Zml4dHVyZW5hbWU+YGAgYW5kIHRoZW4gdXNlCi0gICAgICAgICAgICAgICAgYGBAcHl0ZXN0LmZp
eHR1cmUobmFtZT0nPGZpeHR1cmVuYW1lPicpYGAuCi0KLSAgICBGaXh0dXJlcyBjYW4gb3B0aW9u
YWxseSBwcm92aWRlIHRoZWlyIHZhbHVlcyB0byB0ZXN0IGZ1bmN0aW9ucyB1c2luZyBhIGBgeWll
bGRgYCBzdGF0ZW1lbnQsCi0gICAgaW5zdGVhZCBvZiBgYHJldHVybmBgLiBJbiB0aGlzIGNhc2Us
IHRoZSBjb2RlIGJsb2NrIGFmdGVyIHRoZSBgYHlpZWxkYGAgc3RhdGVtZW50IGlzIGV4ZWN1dGVk
Ci0gICAgYXMgdGVhcmRvd24gY29kZSByZWdhcmRsZXNzIG9mIHRoZSB0ZXN0IG91dGNvbWUuIEEg
Zml4dHVyZSBmdW5jdGlvbiBtdXN0IHlpZWxkIGV4YWN0bHkgb25jZS4KLSAgICAiIiIKLSAgICBp
ZiBjYWxsYWJsZShzY29wZSkgYW5kIHBhcmFtcyBpcyBOb25lIGFuZCBhdXRvdXNlIGlzIEZhbHNl
OgotICAgICAgICAjIGRpcmVjdCBkZWNvcmF0aW9uCi0gICAgICAgIHJldHVybiBGaXh0dXJlRnVu
Y3Rpb25NYXJrZXIoCi0gICAgICAgICAgICAiZnVuY3Rpb24iLCBwYXJhbXMsIGF1dG91c2UsIG5h
bWU9bmFtZSkoc2NvcGUpCi0gICAgaWYgcGFyYW1zIGlzIG5vdCBOb25lIGFuZCBub3QgaXNpbnN0
YW5jZShwYXJhbXMsIChsaXN0LCB0dXBsZSkpOgotICAgICAgICBwYXJhbXMgPSBsaXN0KHBhcmFt
cykKLSAgICByZXR1cm4gRml4dHVyZUZ1bmN0aW9uTWFya2VyKHNjb3BlLCBwYXJhbXMsIGF1dG91
c2UsIGlkcz1pZHMsIG5hbWU9bmFtZSkKLQotCi1kZWYgeWllbGRfZml4dHVyZShzY29wZT0iZnVu
Y3Rpb24iLCBwYXJhbXM9Tm9uZSwgYXV0b3VzZT1GYWxzZSwgaWRzPU5vbmUsIG5hbWU9Tm9uZSk6
Ci0gICAgIiIiIChyZXR1cm4gYSkgZGVjb3JhdG9yIHRvIG1hcmsgYSB5aWVsZC1maXh0dXJlIGZh
Y3RvcnkgZnVuY3Rpb24uCi0KLSAgICAuLiBkZXByZWNhdGVkOjogMy4wCi0gICAgICAgIFVzZSA6
cHk6ZnVuYzpgcHl0ZXN0LmZpeHR1cmVgIGRpcmVjdGx5IGluc3RlYWQuCi0gICAgIiIiCi0gICAg
aWYgY2FsbGFibGUoc2NvcGUpIGFuZCBwYXJhbXMgaXMgTm9uZSBhbmQgbm90IGF1dG91c2U6Ci0g
ICAgICAgICMgZGlyZWN0IGRlY29yYXRpb24KLSAgICAgICAgcmV0dXJuIEZpeHR1cmVGdW5jdGlv
bk1hcmtlcigKLSAgICAgICAgICAgICJmdW5jdGlvbiIsIHBhcmFtcywgYXV0b3VzZSwgaWRzPWlk
cywgbmFtZT1uYW1lKShzY29wZSkKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gRml4dHVyZUZ1
bmN0aW9uTWFya2VyKHNjb3BlLCBwYXJhbXMsIGF1dG91c2UsIGlkcz1pZHMsIG5hbWU9bmFtZSkK
LQotCi1kZWZhdWx0ZnVuY2FyZ3ByZWZpeG1hcmtlciA9IGZpeHR1cmUoKQotCi0KLUBmaXh0dXJl
KHNjb3BlPSJzZXNzaW9uIikKLWRlZiBweXRlc3Rjb25maWcocmVxdWVzdCk6Ci0gICAgIiIiIHRo
ZSBweXRlc3QgY29uZmlnIG9iamVjdCB3aXRoIGFjY2VzcyB0byBjb21tYW5kIGxpbmUgb3B0cy4i
IiIKLSAgICByZXR1cm4gcmVxdWVzdC5jb25maWcKLQotCi1jbGFzcyBGaXh0dXJlTWFuYWdlcjoK
LSAgICAiIiIKLSAgICBweXRlc3QgZml4dHVyZXMgZGVmaW5pdGlvbnMgYW5kIGluZm9ybWF0aW9u
IGlzIHN0b3JlZCBhbmQgbWFuYWdlZAotICAgIGZyb20gdGhpcyBjbGFzcy4KLQotICAgIER1cmlu
ZyBjb2xsZWN0aW9uIGZtLnBhcnNlZmFjdG9yaWVzKCkgaXMgY2FsbGVkIG11bHRpcGxlIHRpbWVz
IHRvIHBhcnNlCi0gICAgZml4dHVyZSBmdW5jdGlvbiBkZWZpbml0aW9ucyBpbnRvIEZpeHR1cmVE
ZWYgb2JqZWN0cyBhbmQgaW50ZXJuYWwKLSAgICBkYXRhIHN0cnVjdHVyZXMuCi0KLSAgICBEdXJp
bmcgY29sbGVjdGlvbiBvZiB0ZXN0IGZ1bmN0aW9ucywgbWV0YWZ1bmMtbWVjaGFuaWNzIGluc3Rh
bnRpYXRlCi0gICAgYSBGdW5jRml4dHVyZUluZm8gb2JqZWN0IHdoaWNoIGlzIGNhY2hlZCBwZXIg
bm9kZS9mdW5jLW5hbWUuCi0gICAgVGhpcyBGdW5jRml4dHVyZUluZm8gb2JqZWN0IGlzIGxhdGVy
IHJldHJpZXZlZCBieSBGdW5jdGlvbiBub2RlcwotICAgIHdoaWNoIHRoZW1zZWx2ZXMgb2ZmZXIg
YSBmaXh0dXJlbmFtZXMgYXR0cmlidXRlLgotCi0gICAgVGhlIEZ1bmNGaXh0dXJlSW5mbyBvYmpl
Y3QgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgZml4dHVyZXMgYW5kIEZpeHR1cmVEZWZzCi0gICAg
cmVsZXZhbnQgZm9yIGEgcGFydGljdWxhciBmdW5jdGlvbi4gIEFuIGluaXRpYWwgbGlzdCBvZiBm
aXh0dXJlcyBpcwotICAgIGFzc2VtYmxlZCBsaWtlIHRoaXM6Ci0KLSAgICAtIGluaS1kZWZpbmVk
IHVzZWZpeHR1cmVzCi0gICAgLSBhdXRvdXNlLW1hcmtlZCBmaXh0dXJlcyBhbG9uZyB0aGUgY29s
bGVjdGlvbiBjaGFpbiB1cCBmcm9tIHRoZSBmdW5jdGlvbgotICAgIC0gdXNlZml4dHVyZXMgbWFy
a2VycyBhdCBtb2R1bGUvY2xhc3MvZnVuY3Rpb24gbGV2ZWwKLSAgICAtIHRlc3QgZnVuY3Rpb24g
ZnVuY2FyZ3MKLQotICAgIFN1YnNlcXVlbnRseSB0aGUgZnVuY2ZpeHR1cmVpbmZvLmZpeHR1cmVu
YW1lcyBhdHRyaWJ1dGUgaXMgY29tcHV0ZWQKLSAgICBhcyB0aGUgY2xvc3VyZSBvZiB0aGUgZml4
dHVyZXMgbmVlZGVkIHRvIHNldHVwIHRoZSBpbml0aWFsIGZpeHR1cmVzLAotICAgIGkuIGUuIGZp
eHR1cmVzIG5lZWRlZCBieSBmaXh0dXJlIGZ1bmN0aW9ucyB0aGVtc2VsdmVzIGFyZSBhcHBlbmRl
ZAotICAgIHRvIHRoZSBmaXh0dXJlbmFtZXMgbGlzdC4KLQotICAgIFVwb24gdGhlIHRlc3Qtc2V0
dXAgcGhhc2VzIGFsbCBmaXh0dXJlbmFtZXMgYXJlIGluc3RhbnRpYXRlZCwgcmV0cmlldmVkCi0g
ICAgYnkgYSBsb29rdXAgb2YgdGhlaXIgRnVuY0ZpeHR1cmVJbmZvLgotICAgICIiIgotCi0gICAg
X2FyZ3ByZWZpeCA9ICJweXRlc3RfZnVuY2FyZ19fIgotICAgIEZpeHR1cmVMb29rdXBFcnJvciA9
IEZpeHR1cmVMb29rdXBFcnJvcgotICAgIEZpeHR1cmVMb29rdXBFcnJvclJlcHIgPSBGaXh0dXJl
TG9va3VwRXJyb3JSZXByCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbik6Ci0gICAg
ICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KLSAgICAgICAgc2VsZi5jb25maWcgPSBzZXNzaW9u
LmNvbmZpZwotICAgICAgICBzZWxmLl9hcmcyZml4dHVyZWRlZnMgPSB7fQotICAgICAgICBzZWxm
Ll9ob2xkZXJvYmpzZWVuID0gc2V0KCkKLSAgICAgICAgc2VsZi5fYXJnMmZpbmlzaCA9IHt9Ci0g
ICAgICAgIHNlbGYuX25vZGVpZF9hbmRfYXV0b3VzZW5hbWVzID0gWygiIiwgc2VsZi5jb25maWcu
Z2V0aW5pKCJ1c2VmaXh0dXJlcyIpKV0KLSAgICAgICAgc2Vzc2lvbi5jb25maWcucGx1Z2lubWFu
YWdlci5yZWdpc3RlcihzZWxmLCAiZnVuY21hbmFnZSIpCi0KLSAgICBkZWYgZ2V0Zml4dHVyZWlu
Zm8oc2VsZiwgbm9kZSwgZnVuYywgY2xzLCBmdW5jYXJncz1UcnVlKToKLSAgICAgICAgaWYgZnVu
Y2FyZ3MgYW5kIG5vdCBoYXNhdHRyKG5vZGUsICJub2Z1bmNhcmdzIik6Ci0gICAgICAgICAgICBh
cmduYW1lcyA9IGdldGZ1bmNhcmduYW1lcyhmdW5jLCBjbHM9Y2xzKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgYXJnbmFtZXMgPSAoKQotICAgICAgICB1c2VmaXh0dXJlcyA9IGdldGF0dHIo
ZnVuYywgInVzZWZpeHR1cmVzIiwgTm9uZSkKLSAgICAgICAgaW5pdGlhbG5hbWVzID0gYXJnbmFt
ZXMKLSAgICAgICAgaWYgdXNlZml4dHVyZXMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBpbml0
aWFsbmFtZXMgPSB1c2VmaXh0dXJlcy5hcmdzICsgaW5pdGlhbG5hbWVzCi0gICAgICAgIGZtID0g
bm9kZS5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgotICAgICAgICBuYW1lc19jbG9zdXJlLCBhcmcy
Zml4dHVyZWRlZnMgPSBmbS5nZXRmaXh0dXJlY2xvc3VyZShpbml0aWFsbmFtZXMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGUpCi0gICAgICAgIHJldHVybiBGdW5jRml4dHVyZUluZm8oYXJnbmFtZXMsIG5hbWVzX2Nsb3N1
cmUsIGFyZzJmaXh0dXJlZGVmcykKLQotICAgIGRlZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQo
c2VsZiwgcGx1Z2luKToKLSAgICAgICAgbm9kZWlkID0gTm9uZQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBwID0gcHkucGF0aC5sb2NhbChwbHVnaW4uX19maWxlX18pCi0gICAgICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICMgY29uc3RydWN0IHRoZSBiYXNlIG5vZGVpZCB3aGljaCBpcyBsYXRlciB1c2VkIHRv
IGNoZWNrCi0gICAgICAgICAgICAjIHdoYXQgZml4dHVyZXMgYXJlIHZpc2libGUgZm9yIHBhcnRp
Y3VsYXIgdGVzdHMgKGFzIGRlbm90ZWQKLSAgICAgICAgICAgICMgYnkgdGhlaXIgdGVzdCBpZCkK
LSAgICAgICAgICAgIGlmIHAuYmFzZW5hbWUuc3RhcnRzd2l0aCgiY29uZnRlc3QucHkiKToKLSAg
ICAgICAgICAgICAgICBub2RlaWQgPSBwLmRpcnBhdGgoKS5yZWx0byhzZWxmLmNvbmZpZy5yb290
ZGlyKQotICAgICAgICAgICAgICAgIGlmIHAuc2VwICE9IG5vZGVzLlNFUDoKLSAgICAgICAgICAg
ICAgICAgICAgbm9kZWlkID0gbm9kZWlkLnJlcGxhY2UocC5zZXAsIG5vZGVzLlNFUCkKLSAgICAg
ICAgc2VsZi5wYXJzZWZhY3RvcmllcyhwbHVnaW4sIG5vZGVpZCkKLQotICAgIGRlZiBfZ2V0YXV0
b3VzZW5hbWVzKHNlbGYsIG5vZGVpZCk6Ci0gICAgICAgICIiIiByZXR1cm4gYSB0dXBsZSBvZiBm
aXh0dXJlIG5hbWVzIHRvIGJlIHVzZWQuICIiIgotICAgICAgICBhdXRvdXNlbmFtZXMgPSBbXQot
ICAgICAgICBmb3IgYmFzZWlkLCBiYXNlbmFtZXMgaW4gc2VsZi5fbm9kZWlkX2FuZF9hdXRvdXNl
bmFtZXM6Ci0gICAgICAgICAgICBpZiBub2RlaWQuc3RhcnRzd2l0aChiYXNlaWQpOgotICAgICAg
ICAgICAgICAgIGlmIGJhc2VpZDoKLSAgICAgICAgICAgICAgICAgICAgaSA9IGxlbihiYXNlaWQp
Ci0gICAgICAgICAgICAgICAgICAgIG5leHRjaGFyID0gbm9kZWlkW2k6aSArIDFdCi0gICAgICAg
ICAgICAgICAgICAgIGlmIG5leHRjaGFyIGFuZCBuZXh0Y2hhciBub3QgaW4gIjovIjoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgYXV0b3VzZW5hbWVz
LmV4dGVuZChiYXNlbmFtZXMpCi0gICAgICAgICMgbWFrZSBzdXJlIGF1dG91c2VuYW1lcyBhcmUg
c29ydGVkIGJ5IHNjb3BlLCBzY29wZW51bSAwIGlzIHNlc3Npb24KLSAgICAgICAgYXV0b3VzZW5h
bWVzLnNvcnQoCi0gICAgICAgICAgICBrZXk9bGFtYmRhIHg6IHNlbGYuX2FyZzJmaXh0dXJlZGVm
c1t4XVstMV0uc2NvcGVudW0pCi0gICAgICAgIHJldHVybiBhdXRvdXNlbmFtZXMKLQotICAgIGRl
ZiBnZXRmaXh0dXJlY2xvc3VyZShzZWxmLCBmaXh0dXJlbmFtZXMsIHBhcmVudG5vZGUpOgotICAg
ICAgICAjIGNvbGxlY3QgdGhlIGNsb3N1cmUgb2YgYWxsIGZpeHR1cmVzICwgc3RhcnRpbmcgd2l0
aCB0aGUgZ2l2ZW4KLSAgICAgICAgIyBmaXh0dXJlbmFtZXMgYXMgdGhlIGluaXRpYWwgc2V0LiAg
QXMgd2UgaGF2ZSB0byB2aXNpdCBhbGwKLSAgICAgICAgIyBmYWN0b3J5IGRlZmluaXRpb25zIGFu
eXdheSwgd2UgYWxzbyByZXR1cm4gYSBhcmcyZml4dHVyZWRlZnMKLSAgICAgICAgIyBtYXBwaW5n
IHNvIHRoYXQgdGhlIGNhbGxlciBjYW4gcmV1c2UgaXQgYW5kIGRvZXMgbm90IGhhdmUKLSAgICAg
ICAgIyB0byByZS1kaXNjb3ZlciBmaXh0dXJlZGVmcyBhZ2FpbiBmb3IgZWFjaCBmaXh0dXJlbmFt
ZQotICAgICAgICAjIChkaXNjb3ZlcmluZyBtYXRjaGluZyBmaXh0dXJlcyBmb3IgYSBnaXZlbiBu
YW1lL25vZGUgaXMgZXhwZW5zaXZlKQotCi0gICAgICAgIHBhcmVudGlkID0gcGFyZW50bm9kZS5u
b2RlaWQKLSAgICAgICAgZml4dHVyZW5hbWVzX2Nsb3N1cmUgPSBzZWxmLl9nZXRhdXRvdXNlbmFt
ZXMocGFyZW50aWQpCi0KLSAgICAgICAgZGVmIG1lcmdlKG90aGVybGlzdCk6Ci0gICAgICAgICAg
ICBmb3IgYXJnIGluIG90aGVybGlzdDoKLSAgICAgICAgICAgICAgICBpZiBhcmcgbm90IGluIGZp
eHR1cmVuYW1lc19jbG9zdXJlOgotICAgICAgICAgICAgICAgICAgICBmaXh0dXJlbmFtZXNfY2xv
c3VyZS5hcHBlbmQoYXJnKQotCi0gICAgICAgIG1lcmdlKGZpeHR1cmVuYW1lcykKLSAgICAgICAg
YXJnMmZpeHR1cmVkZWZzID0ge30KLSAgICAgICAgbGFzdGxlbiA9IC0xCi0gICAgICAgIHdoaWxl
IGxhc3RsZW4gIT0gbGVuKGZpeHR1cmVuYW1lc19jbG9zdXJlKToKLSAgICAgICAgICAgIGxhc3Rs
ZW4gPSBsZW4oZml4dHVyZW5hbWVzX2Nsb3N1cmUpCi0gICAgICAgICAgICBmb3IgYXJnbmFtZSBp
biBmaXh0dXJlbmFtZXNfY2xvc3VyZToKLSAgICAgICAgICAgICAgICBpZiBhcmduYW1lIGluIGFy
ZzJmaXh0dXJlZGVmczoKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
ICAgICBmaXh0dXJlZGVmcyA9IHNlbGYuZ2V0Zml4dHVyZWRlZnMoYXJnbmFtZSwgcGFyZW50aWQp
Ci0gICAgICAgICAgICAgICAgaWYgZml4dHVyZWRlZnM6Ci0gICAgICAgICAgICAgICAgICAgIGFy
ZzJmaXh0dXJlZGVmc1thcmduYW1lXSA9IGZpeHR1cmVkZWZzCi0gICAgICAgICAgICAgICAgICAg
IG1lcmdlKGZpeHR1cmVkZWZzWy0xXS5hcmduYW1lcykKLSAgICAgICAgcmV0dXJuIGZpeHR1cmVu
YW1lc19jbG9zdXJlLCBhcmcyZml4dHVyZWRlZnMKLQotICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVf
dGVzdHMoc2VsZiwgbWV0YWZ1bmMpOgotICAgICAgICBmb3IgYXJnbmFtZSBpbiBtZXRhZnVuYy5m
aXh0dXJlbmFtZXM6Ci0gICAgICAgICAgICBmYWNsaXN0ID0gbWV0YWZ1bmMuX2FyZzJmaXh0dXJl
ZGVmcy5nZXQoYXJnbmFtZSkKLSAgICAgICAgICAgIGlmIGZhY2xpc3Q6Ci0gICAgICAgICAgICAg
ICAgZml4dHVyZWRlZiA9IGZhY2xpc3RbLTFdCi0gICAgICAgICAgICAgICAgaWYgZml4dHVyZWRl
Zi5wYXJhbXMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRyaXplX2Z1
bmMgPSBnZXRhdHRyKG1ldGFmdW5jLmZ1bmN0aW9uLCAncGFyYW1ldHJpemUnLCBOb25lKQotICAg
ICAgICAgICAgICAgICAgICBmdW5jX3BhcmFtcyA9IGdldGF0dHIocGFyYW1ldHJpemVfZnVuYywg
J2FyZ3MnLCBbW05vbmVdXSkKLSAgICAgICAgICAgICAgICAgICAgZnVuY19rd2FyZ3MgPSBnZXRh
dHRyKHBhcmFtZXRyaXplX2Z1bmMsICdrd2FyZ3MnLCB7fSkKLSAgICAgICAgICAgICAgICAgICAg
IyBza2lwIGRpcmVjdGx5IHBhcmFtZXRyaXplZCBhcmd1bWVudHMKLSAgICAgICAgICAgICAgICAg
ICAgaWYgImFyZ25hbWVzIiBpbiBmdW5jX2t3YXJnczoKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFyZ25hbWVzID0gcGFyYW1ldHJpemVfZnVuYy5rd2FyZ3NbImFyZ25hbWVzIl0KLSAgICAgICAg
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyZ25hbWVzID0gZnVu
Y19wYXJhbXNbMF0KLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXJnbmFt
ZXMsICh0dXBsZSwgbGlzdCkpOgotICAgICAgICAgICAgICAgICAgICAgICAgYXJnbmFtZXMgPSBb
eC5zdHJpcCgpIGZvciB4IGluIGFyZ25hbWVzLnNwbGl0KCIsIikgaWYgeC5zdHJpcCgpXQotICAg
ICAgICAgICAgICAgICAgICBpZiBhcmduYW1lIG5vdCBpbiBmdW5jX3BhcmFtcyBhbmQgYXJnbmFt
ZSBub3QgaW4gYXJnbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJh
bWV0cml6ZShhcmduYW1lLCBmaXh0dXJlZGVmLnBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluZGlyZWN0PVRydWUsIHNjb3BlPWZpeHR1cmVkZWYu
c2NvcGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHM9
Zml4dHVyZWRlZi5pZHMpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGNvbnRp
bnVlICAjIHdpbGwgcmFpc2UgRml4dHVyZUxvb2t1cEVycm9yIGF0IHNldHVwIHRpbWUKLQotICAg
IGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhzZWxmLCBpdGVtcyk6Ci0gICAgICAg
ICMgc2VwYXJhdGUgcGFyYW1ldHJpemVkIHNldHVwcwotICAgICAgICBpdGVtc1s6XSA9IHJlb3Jk
ZXJfaXRlbXMoaXRlbXMpCi0KLSAgICBkZWYgcGFyc2VmYWN0b3JpZXMoc2VsZiwgbm9kZV9vcl9v
YmosIG5vZGVpZD1OT1RTRVQsIHVuaXR0ZXN0PUZhbHNlKToKLSAgICAgICAgaWYgbm9kZWlkIGlz
IG5vdCBOT1RTRVQ6Ci0gICAgICAgICAgICBob2xkZXJvYmogPSBub2RlX29yX29iagotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgaG9sZGVyb2JqID0gbm9kZV9vcl9vYmoub2JqCi0gICAgICAg
ICAgICBub2RlaWQgPSBub2RlX29yX29iai5ub2RlaWQKLSAgICAgICAgaWYgaG9sZGVyb2JqIGlu
IHNlbGYuX2hvbGRlcm9ianNlZW46Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5f
aG9sZGVyb2Jqc2Vlbi5hZGQoaG9sZGVyb2JqKQotICAgICAgICBhdXRvdXNlbmFtZXMgPSBbXQot
ICAgICAgICBmb3IgbmFtZSBpbiBkaXIoaG9sZGVyb2JqKToKLSAgICAgICAgICAgICMgVGhlIGF0
dHJpYnV0ZSBjYW4gYmUgYW4gYXJiaXRyYXJ5IGRlc2NyaXB0b3IsIHNvIHRoZSBhdHRyaWJ1dGUK
LSAgICAgICAgICAgICMgYWNjZXNzIGJlbG93IGNhbiByYWlzZS4gc2FmZV9nZXRhdHQoKSBpZ25v
cmVzIHN1Y2ggZXhjZXB0aW9ucy4KLSAgICAgICAgICAgIG9iaiA9IHNhZmVfZ2V0YXR0cihob2xk
ZXJvYmosIG5hbWUsIE5vbmUpCi0gICAgICAgICAgICAjIGZpeHR1cmUgZnVuY3Rpb25zIGhhdmUg
YSBweXRlc3RfZnVuY2FyZ19fIHByZWZpeCAocHJlLTIuMyBzdHlsZSkKLSAgICAgICAgICAgICMg
b3IgYXJlICJAcHl0ZXN0LmZpeHR1cmUiIG1hcmtlZAotICAgICAgICAgICAgbWFya2VyID0gZ2V0
Zml4dHVyZW1hcmtlcihvYmopCi0gICAgICAgICAgICBpZiBtYXJrZXIgaXMgTm9uZToKLSAgICAg
ICAgICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKHNlbGYuX2FyZ3ByZWZpeCk6Ci0gICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgaWYgbm90IGNhbGxhYmxl
KG9iaik6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgbWFy
a2VyID0gZGVmYXVsdGZ1bmNhcmdwcmVmaXhtYXJrZXIKLSAgICAgICAgICAgICAgICBmcm9tIF9w
eXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKLSAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJu
KCdDMScsIGRlcHJlY2F0ZWQuRlVOQ0FSR19QUkVGSVguZm9ybWF0KG5hbWU9bmFtZSksIG5vZGVp
ZD1ub2RlaWQpCi0gICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVbbGVuKHNlbGYuX2FyZ3ByZWZp
eCk6XQotICAgICAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShtYXJrZXIsIEZpeHR1cmVGdW5j
dGlvbk1hcmtlcik6Ci0gICAgICAgICAgICAgICAgIyBtYWdpYyBnbG9iYWxzICB3aXRoIF9fZ2V0
YXR0cl9fIG1pZ2h0IGhhdmUgZ290IHVzIGEgd3JvbmcKLSAgICAgICAgICAgICAgICAjIGZpeHR1
cmUgYXR0cmlidXRlCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgaWYgbWFya2VyLm5hbWU6Ci0gICAgICAgICAgICAgICAgICAgIG5h
bWUgPSBtYXJrZXIubmFtZQotICAgICAgICAgICAgICAgIG1zZyA9ICdmaXh0dXJlcyBjYW5ub3Qg
aGF2ZSAicHl0ZXN0X2Z1bmNhcmdfXyIgcHJlZml4ICcgXAotICAgICAgICAgICAgICAgICAgICAg
ICdhbmQgYmUgZGVjb3JhdGVkIHdpdGggQHB5dGVzdC5maXh0dXJlOlxuJXMnICUgbmFtZQotICAg
ICAgICAgICAgICAgIGFzc2VydCBub3QgbmFtZS5zdGFydHN3aXRoKHNlbGYuX2FyZ3ByZWZpeCks
IG1zZwotCi0gICAgICAgICAgICBmaXh0dXJlX2RlZiA9IEZpeHR1cmVEZWYoc2VsZiwgbm9kZWlk
LCBuYW1lLCBvYmosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Vy
LnNjb3BlLCBtYXJrZXIucGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuaXR0ZXN0PXVuaXR0ZXN0LCBpZHM9bWFya2VyLmlkcykKLQotICAgICAgICAgICAgZmFj
bGlzdCA9IHNlbGYuX2FyZzJmaXh0dXJlZGVmcy5zZXRkZWZhdWx0KG5hbWUsIFtdKQotICAgICAg
ICAgICAgaWYgZml4dHVyZV9kZWYuaGFzX2xvY2F0aW9uOgotICAgICAgICAgICAgICAgIGZhY2xp
c3QuYXBwZW5kKGZpeHR1cmVfZGVmKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAjIGZpeHR1cmVkZWZzIHdpdGggbm8gbG9jYXRpb24gYXJlIGF0IHRoZSBmcm9udAotICAgICAg
ICAgICAgICAgICMgc28gdGhpcyBpbnNlcnRzIHRoZSBjdXJyZW50IGZpeHR1cmVkZWYgYWZ0ZXIg
dGhlCi0gICAgICAgICAgICAgICAgIyBleGlzdGluZyBmaXh0dXJlZGVmcyBmcm9tIGV4dGVybmFs
IHBsdWdpbnMgYnV0Ci0gICAgICAgICAgICAgICAgIyBiZWZvcmUgdGhlIGZpeHR1cmVkZWZzIHBy
b3ZpZGVkIGluIGNvbmZ0ZXN0cy4KLSAgICAgICAgICAgICAgICBpID0gbGVuKFtmIGZvciBmIGlu
IGZhY2xpc3QgaWYgbm90IGYuaGFzX2xvY2F0aW9uXSkKLSAgICAgICAgICAgICAgICBmYWNsaXN0
Lmluc2VydChpLCBmaXh0dXJlX2RlZikKLSAgICAgICAgICAgIGlmIG1hcmtlci5hdXRvdXNlOgot
ICAgICAgICAgICAgICAgIGF1dG91c2VuYW1lcy5hcHBlbmQobmFtZSkKLQotICAgICAgICBpZiBh
dXRvdXNlbmFtZXM6Ci0gICAgICAgICAgICBzZWxmLl9ub2RlaWRfYW5kX2F1dG91c2VuYW1lcy5h
cHBlbmQoKG5vZGVpZCBvciAnJywgYXV0b3VzZW5hbWVzKSkKLQotICAgIGRlZiBnZXRmaXh0dXJl
ZGVmcyhzZWxmLCBhcmduYW1lLCBub2RlaWQpOgotICAgICAgICAiIiIKLSAgICAgICAgR2V0cyBh
IGxpc3Qgb2YgZml4dHVyZXMgd2hpY2ggYXJlIGFwcGxpY2FibGUgdG8gdGhlIGdpdmVuIG5vZGUg
aWQuCi0KLSAgICAgICAgOnBhcmFtIHN0ciBhcmduYW1lOiBuYW1lIG9mIHRoZSBmaXh0dXJlIHRv
IHNlYXJjaCBmb3IKLSAgICAgICAgOnBhcmFtIHN0ciBub2RlaWQ6IGZ1bGwgbm9kZSBpZCBvZiB0
aGUgcmVxdWVzdGluZyB0ZXN0LgotICAgICAgICA6cmV0dXJuOiBsaXN0W0ZpeHR1cmVEZWZdCi0g
ICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmaXh0dXJlZGVmcyA9IHNlbGYu
X2FyZzJmaXh0dXJlZGVmc1thcmduYW1lXQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAg
ICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHR1
cGxlKHNlbGYuX21hdGNoZmFjdG9yaWVzKGZpeHR1cmVkZWZzLCBub2RlaWQpKQotCi0gICAgZGVm
IF9tYXRjaGZhY3RvcmllcyhzZWxmLCBmaXh0dXJlZGVmcywgbm9kZWlkKToKLSAgICAgICAgZm9y
IGZpeHR1cmVkZWYgaW4gZml4dHVyZWRlZnM6Ci0gICAgICAgICAgICBpZiBub2Rlcy5pc2NoaWxk
bm9kZShmaXh0dXJlZGVmLmJhc2VpZCwgbm9kZWlkKToKLSAgICAgICAgICAgICAgICB5aWVsZCBm
aXh0dXJlZGVmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9mcmVlemVfc3VwcG9ydC5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTcxNDdhODgyNTBhMzU1M2M4NWM0NGIxODI4MjNlNTQyYjlmNzRi
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAs
MCBAQAotIiIiCi1Qcm92aWRlcyBhIGZ1bmN0aW9uIHRvIHJlcG9ydCBhbGwgaW50ZXJuYWwgbW9k
dWxlcyBmb3IgdXNpbmcgZnJlZXppbmcgdG9vbHMKLXB5dGVzdAotIiIiCi1mcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLQot
ZGVmIGZyZWV6ZV9pbmNsdWRlcygpOgotICAgICIiIgotICAgIFJldHVybnMgYSBsaXN0IG9mIG1v
ZHVsZSBuYW1lcyB1c2VkIGJ5IHB5LnRlc3QgdGhhdCBzaG91bGQgYmUKLSAgICBpbmNsdWRlZCBi
eSBjeF9mcmVlemUuCi0gICAgIiIiCi0gICAgaW1wb3J0IHB5Ci0gICAgaW1wb3J0IF9weXRlc3QK
LSAgICByZXN1bHQgPSBsaXN0KF9pdGVyX2FsbF9tb2R1bGVzKHB5KSkKLSAgICByZXN1bHQgKz0g
bGlzdChfaXRlcl9hbGxfbW9kdWxlcyhfcHl0ZXN0KSkKLSAgICByZXR1cm4gcmVzdWx0Ci0KLQot
ZGVmIF9pdGVyX2FsbF9tb2R1bGVzKHBhY2thZ2UsIHByZWZpeD0nJyk6Ci0gICAgIiIiCi0gICAg
SXRlcmF0ZXMgb3ZlciB0aGUgbmFtZXMgb2YgYWxsIG1vZHVsZXMgdGhhdCBjYW4gYmUgZm91bmQg
aW4gdGhlIGdpdmVuCi0gICAgcGFja2FnZSwgcmVjdXJzaXZlbHkuCi0gICAgRXhhbXBsZToKLSAg
ICAgICAgX2l0ZXJfYWxsX21vZHVsZXMoX3B5dGVzdCkgLT4KLSAgICAgICAgICAgIFsnX3B5dGVz
dC5hc3NlcnRpb24ubmV3aW50ZXJwcmV0JywKLSAgICAgICAgICAgICAnX3B5dGVzdC5jYXB0dXJl
JywKLSAgICAgICAgICAgICAnX3B5dGVzdC5jb3JlJywKLSAgICAgICAgICAgICAuLi4KLSAgICAg
ICAgICAgIF0KLSAgICAiIiIKLSAgICBpbXBvcnQgb3MKLSAgICBpbXBvcnQgcGtndXRpbAotICAg
IGlmIHR5cGUocGFja2FnZSkgaXMgbm90IHN0cjoKLSAgICAgICAgcGF0aCwgcHJlZml4ID0gcGFj
a2FnZS5fX3BhdGhfX1swXSwgcGFja2FnZS5fX25hbWVfXyArICcuJwotICAgIGVsc2U6Ci0gICAg
ICAgIHBhdGggPSBwYWNrYWdlCi0gICAgZm9yIF8sIG5hbWUsIGlzX3BhY2thZ2UgaW4gcGtndXRp
bC5pdGVyX21vZHVsZXMoW3BhdGhdKToKLSAgICAgICAgaWYgaXNfcGFja2FnZToKLSAgICAgICAg
ICAgIGZvciBtIGluIF9pdGVyX2FsbF9tb2R1bGVzKG9zLnBhdGguam9pbihwYXRoLCBuYW1lKSwg
cHJlZml4PW5hbWUgKyAnLicpOgotICAgICAgICAgICAgICAgIHlpZWxkIHByZWZpeCArIG0KLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHlpZWxkIHByZWZpeCArIG5hbWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvaGVscGNvbmZpZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
aGVscGNvbmZpZy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc0NDYzN2Y4NjYw
ZjI3MmM0ODhhMmFiMGM2OGVlNGU4NTcxOGJiYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hlbHBjb25maWcucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwxODQgKzAsMCBAQAotIiIiIHZlcnNpb24gaW5mbywgaGVscCBtZXNz
YWdlcywgdHJhY2luZyBjb25maWd1cmF0aW9uLiAgIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBweQot
aW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgUHJpbnRIZWxwCi1pbXBv
cnQgb3MKLWltcG9ydCBzeXMKLWZyb20gYXJncGFyc2UgaW1wb3J0IEFjdGlvbgotCi0KLWNsYXNz
IEhlbHBBY3Rpb24oQWN0aW9uKToKLSAgICAiIiJUaGlzIGlzIGFuIGFyZ3BhcnNlIEFjdGlvbiB0
aGF0IHdpbGwgcmFpc2UgYW4gZXhjZXB0aW9uIGluCi0gICAgb3JkZXIgdG8gc2tpcCB0aGUgcmVz
dCBvZiB0aGUgYXJndW1lbnQgcGFyc2luZyB3aGVuIC0taGVscCBpcyBwYXNzZWQuCi0gICAgVGhp
cyBwcmV2ZW50cyBhcmdwYXJzZSBmcm9tIHF1aXR0aW5nIGR1ZSB0byBtaXNzaW5nIHJlcXVpcmVk
IGFyZ3VtZW50cwotICAgIHdoZW4gYW55IGFyZSBkZWZpbmVkLCBmb3IgZXhhbXBsZSBieSBgYHB5
dGVzdF9hZGRvcHRpb25gYC4KLSAgICBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIHdheSB0aGF0IHRo
ZSBidWlsdGluIGFyZ3BhcnNlIC0taGVscCBvcHRpb24gaXMKLSAgICBpbXBsZW1lbnRlZCBieSBy
YWlzaW5nIFN5c3RlbUV4aXQuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwKLSAg
ICAgICAgICAgICAgICAgb3B0aW9uX3N0cmluZ3MsCi0gICAgICAgICAgICAgICAgIGRlc3Q9Tm9u
ZSwKLSAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgaGVs
cD1Ob25lKToKLSAgICAgICAgc3VwZXIoSGVscEFjdGlvbiwgc2VsZikuX19pbml0X18oCi0gICAg
ICAgICAgICBvcHRpb25fc3RyaW5ncz1vcHRpb25fc3RyaW5ncywKLSAgICAgICAgICAgIGRlc3Q9
ZGVzdCwKLSAgICAgICAgICAgIGNvbnN0PVRydWUsCi0gICAgICAgICAgICBkZWZhdWx0PWRlZmF1
bHQsCi0gICAgICAgICAgICBuYXJncz0wLAotICAgICAgICAgICAgaGVscD1oZWxwKQotCi0gICAg
ZGVmIF9fY2FsbF9fKHNlbGYsIHBhcnNlciwgbmFtZXNwYWNlLCB2YWx1ZXMsIG9wdGlvbl9zdHJp
bmc9Tm9uZSk6Ci0gICAgICAgIHNldGF0dHIobmFtZXNwYWNlLCBzZWxmLmRlc3QsIHNlbGYuY29u
c3QpCi0KLSAgICAgICAgIyBXZSBzaG91bGQgb25seSBza2lwIHRoZSByZXN0IG9mIHRoZSBwYXJz
aW5nIGFmdGVyIHByZXBhcnNlIGlzIGRvbmUKLSAgICAgICAgaWYgZ2V0YXR0cihwYXJzZXIuX3Bh
cnNlciwgJ2FmdGVyX3ByZXBhcnNlJywgRmFsc2UpOgotICAgICAgICAgICAgcmFpc2UgUHJpbnRI
ZWxwCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNl
ci5nZXRncm91cCgnZGVidWdjb25maWcnKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS12ZXJzaW9u
JywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0iZGlzcGxh
eSBweXRlc3QgbGliIHZlcnNpb24gYW5kIGltcG9ydCBpbmZvcm1hdGlvbi4iKQotICAgIGdyb3Vw
Ll9hZGRvcHRpb24oIi1oIiwgIi0taGVscCIsIGFjdGlvbj1IZWxwQWN0aW9uLCBkZXN0PSJoZWxw
IiwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9InNob3cgaGVscCBtZXNzYWdlIGFuZCBjb25m
aWd1cmF0aW9uIGluZm8iKQotICAgIGdyb3VwLl9hZGRvcHRpb24oJy1wJywgYWN0aW9uPSJhcHBl
bmQiLCBkZXN0PSJwbHVnaW5zIiwgZGVmYXVsdD1bXSwKLSAgICAgICAgICAgICAgICAgICAgIG1l
dGF2YXI9Im5hbWUiLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0iZWFybHktbG9hZCBnaXZl
biBwbHVnaW4gKG11bHRpLWFsbG93ZWQpLiAiCi0gICAgICAgICAgICAgICAgICAgICAiVG8gYXZv
aWQgbG9hZGluZyBvZiBwbHVnaW5zLCB1c2UgdGhlIGBubzpgIHByZWZpeCwgZS5nLiAiCi0gICAg
ICAgICAgICAgICAgICAgICAiYG5vOmRvY3Rlc3RgLiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCct
LXRyYWNlY29uZmlnJywgJy0tdHJhY2UtY29uZmlnJywKLSAgICAgICAgICAgICAgICAgICAgYWN0
aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgaGVs
cD0idHJhY2UgY29uc2lkZXJhdGlvbnMgb2YgY29uZnRlc3QucHkgZmlsZXMuIiksCi0gICAgZ3Jv
dXAuYWRkb3B0aW9uKCctLWRlYnVnJywKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9y
ZV90cnVlIiwgZGVzdD0iZGVidWciLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJzdG9yZSBpbnRlcm5hbCB0cmFjaW5nIGRlYnVnIGluZm9ybWF0aW9uIGluICdweXRl
c3RkZWJ1Zy5sb2cnLiIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbigKLSAgICAgICAgJy1vJywgJy0t
b3ZlcnJpZGUtaW5pJywgbmFyZ3M9JyonLCBkZXN0PSJvdmVycmlkZV9pbmkiLAotICAgICAgICBh
Y3Rpb249ImFwcGVuZCIsCi0gICAgICAgIGhlbHA9Im92ZXJyaWRlIGNvbmZpZyBvcHRpb24gd2l0
aCBvcHRpb249dmFsdWUgc3R5bGUsIGUuZy4gYC1vIHhmYWlsX3N0cmljdD1UcnVlYC4iKQotCi0K
LUBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLWRlZiBweXRlc3RfY21kbGluZV9w
YXJzZSgpOgotICAgIG91dGNvbWUgPSB5aWVsZAotICAgIGNvbmZpZyA9IG91dGNvbWUuZ2V0X3Jl
c3VsdCgpCi0gICAgaWYgY29uZmlnLm9wdGlvbi5kZWJ1ZzoKLSAgICAgICAgcGF0aCA9IG9zLnBh
dGguYWJzcGF0aCgicHl0ZXN0ZGVidWcubG9nIikKLSAgICAgICAgZGVidWdmaWxlID0gb3Blbihw
YXRoLCAndycpCi0gICAgICAgIGRlYnVnZmlsZS53cml0ZSgidmVyc2lvbnMgcHl0ZXN0LSVzLCBw
eS0lcywgIgotICAgICAgICAgICAgICAgICAgICAgICAgInB5dGhvbi0lc1xuY3dkPSVzXG5hcmdz
PSVzXG5cbiIgJSAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0ZXN0Ll9fdmVyc2lv
bl9fLCBweS5fX3ZlcnNpb25fXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIuam9p
bihtYXAoc3RyLCBzeXMudmVyc2lvbl9pbmZvKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3MuZ2V0Y3dkKCksIGNvbmZpZy5fb3JpZ2FyZ3MpKQotICAgICAgICBjb25maWcudHJhY2Uu
cm9vdC5zZXR3cml0ZXIoZGVidWdmaWxlLndyaXRlKQotICAgICAgICB1bmRvX3RyYWNpbmcgPSBj
b25maWcucGx1Z2lubWFuYWdlci5lbmFibGVfdHJhY2luZygpCi0gICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoIndyaXRpbmcgcHl0ZXN0ZGVidWcgaW5mb3JtYXRpb24gdG8gJXNcbiIgJSBwYXRoKQot
Ci0gICAgICAgIGRlZiB1bnNldF90cmFjaW5nKCk6Ci0gICAgICAgICAgICBkZWJ1Z2ZpbGUuY2xv
c2UoKQotICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgid3JvdGUgcHl0ZXN0ZGVidWcgaW5m
b3JtYXRpb24gdG8gJXNcbiIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z2Zp
bGUubmFtZSkKLSAgICAgICAgICAgIGNvbmZpZy50cmFjZS5yb290LnNldHdyaXRlcihOb25lKQot
ICAgICAgICAgICAgdW5kb190cmFjaW5nKCkKLQotICAgICAgICBjb25maWcuYWRkX2NsZWFudXAo
dW5zZXRfdHJhY2luZykKLQotCi1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgotICAg
IGlmIGNvbmZpZy5vcHRpb24udmVyc2lvbjoKLSAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwocHl0
ZXN0Ll9fZmlsZV9fKQotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJUaGlzIGlzIHB5dGVzdCB2
ZXJzaW9uICVzLCBpbXBvcnRlZCBmcm9tICVzXG4iICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAocHl0ZXN0Ll9fdmVyc2lvbl9fLCBwKSkKLSAgICAgICAgcGx1Z2luaW5mbyA9IGdldHBsdWdp
bnZlcnNpb25pbmZvKGNvbmZpZykKLSAgICAgICAgaWYgcGx1Z2luaW5mbzoKLSAgICAgICAgICAg
IGZvciBsaW5lIGluIHBsdWdpbmluZm86Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0
ZShsaW5lICsgIlxuIikKLSAgICAgICAgcmV0dXJuIDAKLSAgICBlbGlmIGNvbmZpZy5vcHRpb24u
aGVscDoKLSAgICAgICAgY29uZmlnLl9kb19jb25maWd1cmUoKQotICAgICAgICBzaG93aGVscChj
b25maWcpCi0gICAgICAgIGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKCkKLSAgICAgICAgcmV0
dXJuIDAKLQotCi1kZWYgc2hvd2hlbHAoY29uZmlnKToKLSAgICByZXBvcnRlciA9IGNvbmZpZy5w
bHVnaW5tYW5hZ2VyLmdldF9wbHVnaW4oJ3Rlcm1pbmFscmVwb3J0ZXInKQotICAgIHR3ID0gcmVw
b3J0ZXIuX3R3Ci0gICAgdHcud3JpdGUoY29uZmlnLl9wYXJzZXIub3B0cGFyc2VyLmZvcm1hdF9o
ZWxwKCkpCi0gICAgdHcubGluZSgpCi0gICAgdHcubGluZSgpCi0gICAgdHcubGluZSgiW3B5dGVz
dF0gaW5pLW9wdGlvbnMgaW4gdGhlIGZpcnN0ICIKLSAgICAgICAgICAgICJweXRlc3QuaW5pfHRv
eC5pbml8c2V0dXAuY2ZnIGZpbGUgZm91bmQ6IikKLSAgICB0dy5saW5lKCkKLQotICAgIGZvciBu
YW1lIGluIGNvbmZpZy5fcGFyc2VyLl9pbmluYW1lczoKLSAgICAgICAgaGVscCwgdHlwZSwgZGVm
YXVsdCA9IGNvbmZpZy5fcGFyc2VyLl9pbmlkaWN0W25hbWVdCi0gICAgICAgIGlmIHR5cGUgaXMg
Tm9uZToKLSAgICAgICAgICAgIHR5cGUgPSAic3RyaW5nIgotICAgICAgICBzcGVjID0gIiVzICgl
cykiICUgKG5hbWUsIHR5cGUpCi0gICAgICAgIGxpbmUgPSAiICAlLTI0cyAlcyIgJSAoc3BlYywg
aGVscCkKLSAgICAgICAgdHcubGluZShsaW5lWzp0dy5mdWxsd2lkdGhdKQotCi0gICAgdHcubGlu
ZSgpCi0gICAgdHcubGluZSgiZW52aXJvbm1lbnQgdmFyaWFibGVzOiIpCi0gICAgdmFycyA9IFsK
LSAgICAgICAgKCJQWVRFU1RfQURET1BUUyIsICJleHRyYSBjb21tYW5kIGxpbmUgb3B0aW9ucyIp
LAotICAgICAgICAoIlBZVEVTVF9QTFVHSU5TIiwgImNvbW1hLXNlcGFyYXRlZCBwbHVnaW5zIHRv
IGxvYWQgZHVyaW5nIHN0YXJ0dXAiKSwKLSAgICAgICAgKCJQWVRFU1RfREVCVUciLCAic2V0IHRv
IGVuYWJsZSBkZWJ1ZyB0cmFjaW5nIG9mIHB5dGVzdCdzIGludGVybmFscyIpCi0gICAgXQotICAg
IGZvciBuYW1lLCBoZWxwIGluIHZhcnM6Ci0gICAgICAgIHR3LmxpbmUoIiAgJS0yNHMgJXMiICUg
KG5hbWUsIGhlbHApKQotICAgIHR3LmxpbmUoKQotICAgIHR3LmxpbmUoKQotCi0gICAgdHcubGlu
ZSgidG8gc2VlIGF2YWlsYWJsZSBtYXJrZXJzIHR5cGU6IHB5dGVzdCAtLW1hcmtlcnMiKQotICAg
IHR3LmxpbmUoInRvIHNlZSBhdmFpbGFibGUgZml4dHVyZXMgdHlwZTogcHl0ZXN0IC0tZml4dHVy
ZXMiKQotICAgIHR3LmxpbmUoIihzaG93biBhY2NvcmRpbmcgdG8gc3BlY2lmaWVkIGZpbGVfb3Jf
ZGlyIG9yIGN1cnJlbnQgZGlyICIKLSAgICAgICAgICAgICJpZiBub3Qgc3BlY2lmaWVkKSIpCi0K
LSAgICBmb3Igd2FybmluZ3JlcG9ydCBpbiByZXBvcnRlci5zdGF0cy5nZXQoJ3dhcm5pbmdzJywg
W10pOgotICAgICAgICB0dy5saW5lKCJ3YXJuaW5nIDogIiArIHdhcm5pbmdyZXBvcnQubWVzc2Fn
ZSwgcmVkPVRydWUpCi0gICAgcmV0dXJuCi0KLQotY29uZnRlc3Rfb3B0aW9ucyA9IFsKLSAgICAo
J3B5dGVzdF9wbHVnaW5zJywgJ2xpc3Qgb2YgcGx1Z2luIG5hbWVzIHRvIGxvYWQnKSwKLV0KLQot
Ci1kZWYgZ2V0cGx1Z2ludmVyc2lvbmluZm8oY29uZmlnKToKLSAgICBsaW5lcyA9IFtdCi0gICAg
cGx1Z2luaW5mbyA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmxpc3RfcGx1Z2luX2Rpc3RpbmZvKCkK
LSAgICBpZiBwbHVnaW5pbmZvOgotICAgICAgICBsaW5lcy5hcHBlbmQoInNldHVwdG9vbHMgcmVn
aXN0ZXJlZCBwbHVnaW5zOiIpCi0gICAgICAgIGZvciBwbHVnaW4sIGRpc3QgaW4gcGx1Z2luaW5m
bzoKLSAgICAgICAgICAgIGxvYyA9IGdldGF0dHIocGx1Z2luLCAnX19maWxlX18nLCByZXByKHBs
dWdpbikpCi0gICAgICAgICAgICBjb250ZW50ID0gIiVzLSVzIGF0ICVzIiAlIChkaXN0LnByb2pl
Y3RfbmFtZSwgZGlzdC52ZXJzaW9uLCBsb2MpCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAg
IiArIGNvbnRlbnQpCi0gICAgcmV0dXJuIGxpbmVzCi0KLQotZGVmIHB5dGVzdF9yZXBvcnRfaGVh
ZGVyKGNvbmZpZyk6Ci0gICAgbGluZXMgPSBbXQotICAgIGlmIGNvbmZpZy5vcHRpb24uZGVidWcg
b3IgY29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoKLSAgICAgICAgbGluZXMuYXBwZW5kKCJ1c2lu
ZzogcHl0ZXN0LSVzIHB5bGliLSVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAocHl0ZXN0Ll9f
dmVyc2lvbl9fLCBweS5fX3ZlcnNpb25fXykpCi0KLSAgICAgICAgdmVyaW5mbyA9IGdldHBsdWdp
bnZlcnNpb25pbmZvKGNvbmZpZykKLSAgICAgICAgaWYgdmVyaW5mbzoKLSAgICAgICAgICAgIGxp
bmVzLmV4dGVuZCh2ZXJpbmZvKQotCi0gICAgaWYgY29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoK
LSAgICAgICAgbGluZXMuYXBwZW5kKCJhY3RpdmUgcGx1Z2luczoiKQotICAgICAgICBpdGVtcyA9
IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmxpc3RfbmFtZV9wbHVnaW4oKQotICAgICAgICBmb3IgbmFt
ZSwgcGx1Z2luIGluIGl0ZW1zOgotICAgICAgICAgICAgaWYgaGFzYXR0cihwbHVnaW4sICdfX2Zp
bGVfXycpOgotICAgICAgICAgICAgICAgIHIgPSBwbHVnaW4uX19maWxlX18KLSAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgciA9IHJlcHIocGx1Z2luKQotICAgICAgICAgICAgbGlu
ZXMuYXBwZW5kKCIgICAgJS0yMHM6ICVzIiAlIChuYW1lLCByKSkKLSAgICByZXR1cm4gbGluZXMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvaG9va3NwZWMucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L2hvb2tzcGVjLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDBi
Zjk5ZDM3NWFhNmM3NWVlNzQzZmU2OWVjZjc5NzAyMjMyMmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvaG9va3NwZWMu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MjMgKzAsMCBAQAotIiIiIGhvb2sgc3BlY2lmaWNhdGlv
bnMgZm9yIHB5dGVzdCBwbHVnaW5zLCBpbnZva2VkIGZyb20gbWFpbi5weSBhbmQgYnVpbHRpbiBw
bHVnaW5zLiAgIiIiCi0KLWZyb20gcGx1Z2d5IGltcG9ydCBIb29rc3BlY01hcmtlcgotCi1ob29r
c3BlYyA9IEhvb2tzcGVjTWFya2VyKCJweXRlc3QiKQotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMg
SW5pdGlhbGl6YXRpb24gaG9va3MgY2FsbGVkIGZvciBldmVyeSBwbHVnaW4KLSMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi0KLUBob29rc3BlYyhoaXN0b3JpYz1UcnVlKQotZGVmIHB5dGVzdF9hZGRob29r
cyhwbHVnaW5tYW5hZ2VyKToKLSAgICAiIiJjYWxsZWQgYXQgcGx1Z2luIHJlZ2lzdHJhdGlvbiB0
aW1lIHRvIGFsbG93IGFkZGluZyBuZXcgaG9va3MgdmlhIGEgY2FsbCB0bwotICAgIHBsdWdpbm1h
bmFnZXIuYWRkX2hvb2tzcGVjcyhtb2R1bGVfb3JfY2xhc3MsIHByZWZpeCkuIiIiCi0KLQotQGhv
b2tzcGVjKGhpc3RvcmljPVRydWUpCi1kZWYgcHl0ZXN0X25hbWVzcGFjZSgpOgotICAgICIiIgot
ICAgIERFUFJFQ0FURUQ6IHRoaXMgaG9vayBjYXVzZXMgZGlyZWN0IG1vbmtleXBhdGNoaW5nIG9u
IHB5dGVzdCwgaXRzIHVzZSBpcyBzdHJvbmdseSBkaXNjb3VyYWdlZAotICAgIHJldHVybiBkaWN0
IG9mIG5hbWUtPm9iamVjdCB0byBiZSBtYWRlIGdsb2JhbGx5IGF2YWlsYWJsZSBpbgotICAgIHRo
ZSBweXRlc3QgbmFtZXNwYWNlLiAgVGhpcyBob29rIGlzIGNhbGxlZCBhdCBwbHVnaW4gcmVnaXN0
cmF0aW9uCi0gICAgdGltZS4KLSAgICAiIiIKLQotCi1AaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkK
LWRlZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQocGx1Z2luLCBtYW5hZ2VyKToKLSAgICAiIiIg
YSBuZXcgcHl0ZXN0IHBsdWdpbiBnb3QgcmVnaXN0ZXJlZC4gIiIiCi0KLQotQGhvb2tzcGVjKGhp
c3RvcmljPVRydWUpCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgICIiInJlZ2lz
dGVyIGFyZ3BhcnNlLXN0eWxlIG9wdGlvbnMgYW5kIGluaS1zdHlsZSBjb25maWcgdmFsdWVzLAot
ICAgIGNhbGxlZCBvbmNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSB0ZXN0IHJ1bi4KLQotICAgIC4u
IG5vdGU6OgotCi0gICAgICAgIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGltcGxlbWVudGVkIG9u
bHkgaW4gcGx1Z2lucyBvciBgYGNvbmZ0ZXN0LnB5YGAKLSAgICAgICAgZmlsZXMgc2l0dWF0ZWQg
YXQgdGhlIHRlc3RzIHJvb3QgZGlyZWN0b3J5IGR1ZSB0byBob3cgcHl0ZXN0Ci0gICAgICAgIDpy
ZWY6YGRpc2NvdmVycyBwbHVnaW5zIGR1cmluZyBzdGFydHVwIDxwbHVnaW5vcmRlcj5gLgotCi0g
ICAgOmFyZyBwYXJzZXI6IFRvIGFkZCBjb21tYW5kIGxpbmUgb3B0aW9ucywgY2FsbAotICAgICAg
ICA6cHk6ZnVuYzpgcGFyc2VyLmFkZG9wdGlvbiguLi4pIDxfcHl0ZXN0LmNvbmZpZy5QYXJzZXIu
YWRkb3B0aW9uPmAuCi0gICAgICAgIFRvIGFkZCBpbmktZmlsZSB2YWx1ZXMgY2FsbCA6cHk6ZnVu
YzpgcGFyc2VyLmFkZGluaSguLi4pCi0gICAgICAgIDxfcHl0ZXN0LmNvbmZpZy5QYXJzZXIuYWRk
aW5pPmAuCi0KLSAgICBPcHRpb25zIGNhbiBsYXRlciBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZQot
ICAgIDpweTpjbGFzczpgY29uZmlnIDxfcHl0ZXN0LmNvbmZpZy5Db25maWc+YCBvYmplY3QsIHJl
c3BlY3RpdmVseToKLQotICAgIC0gOnB5OmZ1bmM6YGNvbmZpZy5nZXRvcHRpb24obmFtZSkgPF9w
eXRlc3QuY29uZmlnLkNvbmZpZy5nZXRvcHRpb24+YCB0bwotICAgICAgcmV0cmlldmUgdGhlIHZh
bHVlIG9mIGEgY29tbWFuZCBsaW5lIG9wdGlvbi4KLQotICAgIC0gOnB5OmZ1bmM6YGNvbmZpZy5n
ZXRpbmkobmFtZSkgPF9weXRlc3QuY29uZmlnLkNvbmZpZy5nZXRpbmk+YCB0byByZXRyaWV2ZQot
ICAgICAgYSB2YWx1ZSByZWFkIGZyb20gYW4gaW5pLXN0eWxlIGZpbGUuCi0KLSAgICBUaGUgY29u
ZmlnIG9iamVjdCBpcyBwYXNzZWQgYXJvdW5kIG9uIG1hbnkgaW50ZXJuYWwgb2JqZWN0cyB2aWEg
dGhlIGBgLmNvbmZpZ2BgCi0gICAgYXR0cmlidXRlIG9yIGNhbiBiZSByZXRyaWV2ZWQgYXMgdGhl
IGBgcHl0ZXN0Y29uZmlnYGAgZml4dHVyZSBvciBhY2Nlc3NlZAotICAgIHZpYSAoZGVwcmVjYXRl
ZCkgYGBweXRlc3QuY29uZmlnYGAuCi0gICAgIiIiCi0KLQotQGhvb2tzcGVjKGhpc3RvcmljPVRy
dWUpCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgICIiIgotICAgIEFsbG93cyBw
bHVnaW5zIGFuZCBjb25mdGVzdCBmaWxlcyB0byBwZXJmb3JtIGluaXRpYWwgY29uZmlndXJhdGlv
bi4KLQotICAgIFRoaXMgaG9vayBpcyBjYWxsZWQgZm9yIGV2ZXJ5IHBsdWdpbiBhbmQgaW5pdGlh
bCBjb25mdGVzdCBmaWxlCi0gICAgYWZ0ZXIgY29tbWFuZCBsaW5lIG9wdGlvbnMgaGF2ZSBiZWVu
IHBhcnNlZC4KLQotICAgIEFmdGVyIHRoYXQsIHRoZSBob29rIGlzIGNhbGxlZCBmb3Igb3RoZXIg
Y29uZnRlc3QgZmlsZXMgYXMgdGhleSBhcmUKLSAgICBpbXBvcnRlZC4KLQotICAgIDphcmcgY29u
ZmlnOiBweXRlc3QgY29uZmlnIG9iamVjdAotICAgIDp0eXBlIGNvbmZpZzogX3B5dGVzdC5jb25m
aWcuQ29uZmlnCi0gICAgIiIiCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBCb290c3RyYXBwaW5n
IGhvb2tzIGNhbGxlZCBmb3IgcGx1Z2lucyByZWdpc3RlcmVkIGVhcmx5IGVub3VnaDoKLSMgaW50
ZXJuYWwgYW5kIDNyZCBwYXJ0eSBwbHVnaW5zIGFzIHdlbGwgYXMgZGlyZWN0bHkKLSMgZGlzY292
ZXJhYmxlIGNvbmZ0ZXN0LnB5IGxvY2FsIHBsdWdpbnMuCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQot
Ci1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfY21kbGluZV9wYXJzZShw
bHVnaW5tYW5hZ2VyLCBhcmdzKToKLSAgICAiIiJyZXR1cm4gaW5pdGlhbGl6ZWQgY29uZmlnIG9i
amVjdCwgcGFyc2luZyB0aGUgc3BlY2lmaWVkIGFyZ3MuCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBu
b24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotZGVmIHB5dGVz
dF9jbWRsaW5lX3ByZXBhcnNlKGNvbmZpZywgYXJncyk6Ci0gICAgIiIiKGRlcHJlY2F0ZWQpIG1v
ZGlmeSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGJlZm9yZSBvcHRpb24gcGFyc2luZy4gIiIiCi0K
LQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihj
b25maWcpOgotICAgICIiIiBjYWxsZWQgZm9yIHBlcmZvcm1pbmcgdGhlIG1haW4gY29tbWFuZCBs
aW5lIGFjdGlvbi4gVGhlIGRlZmF1bHQKLSAgICBpbXBsZW1lbnRhdGlvbiB3aWxsIGludm9rZSB0
aGUgY29uZmlndXJlIGhvb2tzIGFuZCBydW50ZXN0X21haW5sb29wLgotCi0gICAgU3RvcHMgYXQg
Zmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRl
ZiBweXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0cyhlYXJseV9jb25maWcsIHBhcnNlciwgYXJn
cyk6Ci0gICAgIiIiIGltcGxlbWVudHMgdGhlIGxvYWRpbmcgb2YgaW5pdGlhbCBjb25mdGVzdCBm
aWxlcyBhaGVhZAotICAgIG9mIGNvbW1hbmQgbGluZSBvcHRpb24gcGFyc2luZy4gIiIiCi0KLQot
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0jIGNvbGxlY3Rpb24gaG9va3MKLSMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfY29sbGVjdGlvbihz
ZXNzaW9uKToKLSAgICAiIiIgcGVyZm9ybSB0aGUgY29sbGVjdGlvbiBwcm90b2NvbCBmb3IgdGhl
IGdpdmVuIHNlc3Npb24uCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNl
ZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlm
eWl0ZW1zKHNlc3Npb24sIGNvbmZpZywgaXRlbXMpOgotICAgICIiIiBjYWxsZWQgYWZ0ZXIgY29s
bGVjdGlvbiBoYXMgYmVlbiBwZXJmb3JtZWQsIG1heSBmaWx0ZXIgb3IgcmUtb3JkZXIKLSAgICB0
aGUgaXRlbXMgaW4tcGxhY2UuIiIiCi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0aW9uX2ZpbmlzaChz
ZXNzaW9uKToKLSAgICAiIiIgY2FsbGVkIGFmdGVyIGNvbGxlY3Rpb24gaGFzIGJlZW4gcGVyZm9y
bWVkIGFuZCBtb2RpZmllZC4gIiIiCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1k
ZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgsIGNvbmZpZyk6Ci0gICAgIiIiIHJldHVybiBU
cnVlIHRvIHByZXZlbnQgY29uc2lkZXJpbmcgdGhpcyBwYXRoIGZvciBjb2xsZWN0aW9uLgotICAg
IFRoaXMgaG9vayBpcyBjb25zdWx0ZWQgZm9yIGFsbCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgcHJp
b3IgdG8gY2FsbGluZwotICAgIG1vcmUgc3BlY2lmaWMgaG9va3MuCi0KLSAgICBTdG9wcyBhdCBm
aXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAKLSAgICAiIiIKLQot
Ci1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfY29sbGVjdF9kaXJlY3Rv
cnkocGF0aCwgcGFyZW50KToKLSAgICAiIiIgY2FsbGVkIGJlZm9yZSB0cmF2ZXJzaW5nIGEgZGly
ZWN0b3J5IGZvciBjb2xsZWN0aW9uIGZpbGVzLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5v
bmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3RfY29s
bGVjdF9maWxlKHBhdGgsIHBhcmVudCk6Ci0gICAgIiIiIHJldHVybiBjb2xsZWN0aW9uIE5vZGUg
b3IgTm9uZSBmb3IgdGhlIGdpdmVuIHBhdGguIEFueSBuZXcgbm9kZQotICAgIG5lZWRzIHRvIGhh
dmUgdGhlIHNwZWNpZmllZCBgYHBhcmVudGBgIGFzIGEgcGFyZW50LiIiIgotCi0jIGxvZ2dpbmcg
aG9va3MgZm9yIGNvbGxlY3Rpb24KLQotCi1kZWYgcHl0ZXN0X2NvbGxlY3RzdGFydChjb2xsZWN0
b3IpOgotICAgICIiIiBjb2xsZWN0b3Igc3RhcnRzIGNvbGxlY3RpbmcuICIiIgotCi0KLWRlZiBw
eXRlc3RfaXRlbWNvbGxlY3RlZChpdGVtKToKLSAgICAiIiIgd2UganVzdCBjb2xsZWN0ZWQgYSB0
ZXN0IGl0ZW0uICIiIgotCi0KLWRlZiBweXRlc3RfY29sbGVjdHJlcG9ydChyZXBvcnQpOgotICAg
ICIiIiBjb2xsZWN0b3IgZmluaXNoZWQgY29sbGVjdGluZy4gIiIiCi0KLQotZGVmIHB5dGVzdF9k
ZXNlbGVjdGVkKGl0ZW1zKToKLSAgICAiIiIgY2FsbGVkIGZvciB0ZXN0IGl0ZW1zIGRlc2VsZWN0
ZWQgYnkga2V5d29yZC4gIiIiCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYg
cHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9yKToKLSAgICAiIiIgcGVyZm9ybSBg
YGNvbGxlY3Rvci5jb2xsZWN0KClgYCBhbmQgcmV0dXJuIGEgQ29sbGVjdFJlcG9ydC4KLQotICAg
IFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAi
IiIKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFB5dGhvbiB0ZXN0IGZ1bmN0aW9uIHJlbGF0ZWQg
aG9va3MKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVl
KQotZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFrZW1vZHVsZShwYXRoLCBwYXJlbnQpOgotICAgICIi
IiByZXR1cm4gYSBNb2R1bGUgY29sbGVjdG9yIG9yIE5vbmUgZm9yIHRoZSBnaXZlbiBwYXRoLgot
ICAgIFRoaXMgaG9vayB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBtYXRjaGluZyB0ZXN0IG1vZHVs
ZSBwYXRoLgotICAgIFRoZSBweXRlc3RfY29sbGVjdF9maWxlIGhvb2sgbmVlZHMgdG8gYmUgdXNl
ZCBpZiB5b3Ugd2FudCB0bwotICAgIGNyZWF0ZSB0ZXN0IG1vZHVsZXMgZm9yIGZpbGVzIHRoYXQg
ZG8gbm90IG1hdGNoIGFzIGEgdGVzdCBtb2R1bGUuCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24t
Tm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotQGhvb2tzcGVjKGZp
cnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbShjb2xsZWN0b3Is
IG5hbWUsIG9iaik6Ci0gICAgIiIiIHJldHVybiBjdXN0b20gaXRlbS9jb2xsZWN0b3IgZm9yIGEg
cHl0aG9uIG9iamVjdCBpbiBhIG1vZHVsZSwgb3IgTm9uZS4KLQotICAgIFN0b3BzIGF0IGZpcnN0
IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1AaG9va3Nw
ZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfcHlmdW5jX2NhbGwocHlmdW5jaXRlbSk6
Ci0gICAgIiIiIGNhbGwgdW5kZXJseWluZyB0ZXN0IGZ1bmN0aW9uLgotCi0gICAgU3RvcHMgYXQg
Zmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRl
ZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgotICAgICIiIiBnZW5lcmF0ZSAobXVs
dGlwbGUpIHBhcmFtZXRyaXplZCBjYWxscyB0byBhIHRlc3QgZnVuY3Rpb24uIiIiCi0KLQotQGhv
b2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQo
Y29uZmlnLCB2YWwsIGFyZ25hbWUpOgotICAgICIiIlJldHVybiBhIHVzZXItZnJpZW5kbHkgc3Ry
aW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBgYHZhbGBgIHRoYXQgd2lsbCBiZSB1c2Vk
Ci0gICAgYnkgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplIGNhbGxzLiBSZXR1cm4gTm9uZSBpZiB0
aGUgaG9vayBkb2Vzbid0IGtub3cgYWJvdXQgYGB2YWxgYC4KLSAgICBUaGUgcGFyYW1ldGVyIG5h
bWUgaXMgYXZhaWxhYmxlIGFzIGBgYXJnbmFtZWBgLCBpZiByZXF1aXJlZC4KLQotICAgIFN0b3Bz
IGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQot
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0jIGdlbmVyaWMgcnVudGVzdCByZWxhdGVkIGhvb2tzCi0jIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRl
c3RfcnVudGVzdGxvb3Aoc2Vzc2lvbik6Ci0gICAgIiIiIGNhbGxlZCBmb3IgcGVyZm9ybWluZyB0
aGUgbWFpbiBydW50ZXN0IGxvb3AKLSAgICAoYWZ0ZXIgY29sbGVjdGlvbiBmaW5pc2hlZCkuCi0K
LSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3Vs
dGAgIiIiCi0KLQotZGVmIHB5dGVzdF9pdGVtc3RhcnQoaXRlbSwgbm9kZSk6Ci0gICAgIiIiIChk
ZXByZWNhdGVkLCB1c2UgcHl0ZXN0X3J1bnRlc3RfbG9nc3RhcnQpLiAiIiIKLQotCi1AaG9va3Nw
ZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbChpdGVtLCBu
ZXh0aXRlbSk6Ci0gICAgIiIiIGltcGxlbWVudHMgdGhlIHJ1bnRlc3Rfc2V0dXAvY2FsbC90ZWFy
ZG93biBwcm90b2NvbCBmb3IKLSAgICB0aGUgZ2l2ZW4gdGVzdCBpdGVtLCBpbmNsdWRpbmcgY2Fw
dHVyaW5nIGV4Y2VwdGlvbnMgYW5kIGNhbGxpbmcKLSAgICByZXBvcnRpbmcgaG9va3MuCi0KLSAg
ICA6YXJnIGl0ZW06IHRlc3QgaXRlbSBmb3Igd2hpY2ggdGhlIHJ1bnRlc3QgcHJvdG9jb2wgaXMg
cGVyZm9ybWVkLgotCi0gICAgOmFyZyBuZXh0aXRlbTogdGhlIHNjaGVkdWxlZC10by1iZS1uZXh0
IHRlc3QgaXRlbSAob3IgTm9uZSBpZiB0aGlzCi0gICAgICAgICAgICAgICAgICAgaXMgdGhlIGVu
ZCBteSBmcmllbmQpLiAgVGhpcyBhcmd1bWVudCBpcyBwYXNzZWQgb24gdG8KLSAgICAgICAgICAg
ICAgICAgICA6cHk6ZnVuYzpgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd25gLgotCi0gICAgOnJldHVy
biBib29sZWFuOiBUcnVlIGlmIG5vIGZ1cnRoZXIgaG9vayBpbXBsZW1lbnRhdGlvbnMgc2hvdWxk
IGJlIGludm9rZWQuCi0KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2Vl
IDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfbG9nc3RhcnQo
bm9kZWlkLCBsb2NhdGlvbik6Ci0gICAgIiIiIHNpZ25hbCB0aGUgc3RhcnQgb2YgcnVubmluZyBh
IHNpbmdsZSB0ZXN0IGl0ZW0uICIiIgotCi0KLWRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVt
KToKLSAgICAiIiIgY2FsbGVkIGJlZm9yZSBgYHB5dGVzdF9ydW50ZXN0X2NhbGwoaXRlbSlgYC4g
IiIiCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X2NhbGwoaXRlbSk6Ci0gICAgIiIiIGNhbGxlZCB0
byBleGVjdXRlIHRoZSB0ZXN0IGBgaXRlbWBgLiAiIiIKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3Rf
dGVhcmRvd24oaXRlbSwgbmV4dGl0ZW0pOgotICAgICIiIiBjYWxsZWQgYWZ0ZXIgYGBweXRlc3Rf
cnVudGVzdF9jYWxsYGAuCi0KLSAgICA6YXJnIG5leHRpdGVtOiB0aGUgc2NoZWR1bGVkLXRvLWJl
LW5leHQgdGVzdCBpdGVtIChOb25lIGlmIG5vIGZ1cnRoZXIKLSAgICAgICAgICAgICAgICAgICB0
ZXN0IGl0ZW0gaXMgc2NoZWR1bGVkKS4gIFRoaXMgYXJndW1lbnQgY2FuIGJlIHVzZWQgdG8KLSAg
ICAgICAgICAgICAgICAgICBwZXJmb3JtIGV4YWN0IHRlYXJkb3ducywgaS5lLiBjYWxsaW5nIGp1
c3QgZW5vdWdoIGZpbmFsaXplcnMKLSAgICAgICAgICAgICAgICAgICBzbyB0aGF0IG5leHRpdGVt
IG9ubHkgbmVlZHMgdG8gY2FsbCBzZXR1cC1mdW5jdGlvbnMuCi0gICAgIiIiCi0KLQotQGhvb2tz
cGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVt
LCBjYWxsKToKLSAgICAiIiIgcmV0dXJuIGEgOnB5OmNsYXNzOmBfcHl0ZXN0LnJ1bm5lci5UZXN0
UmVwb3J0YCBvYmplY3QKLSAgICBmb3IgdGhlIGdpdmVuIDpweTpjbGFzczpgcHl0ZXN0Lkl0ZW0g
PF9weXRlc3QubWFpbi5JdGVtPmAgYW5kCi0gICAgOnB5OmNsYXNzOmBfcHl0ZXN0LnJ1bm5lci5D
YWxsSW5mb2AuCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVm
OmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChyZXBv
cnQpOgotICAgICIiIiBwcm9jZXNzIGEgdGVzdCBzZXR1cC9jYWxsL3RlYXJkb3duIHJlcG9ydCBy
ZWxhdGluZyB0bwotICAgIHRoZSByZXNwZWN0aXZlIHBoYXNlIG9mIGV4ZWN1dGluZyBhIHRlc3Qu
ICIiIgotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRml4dHVyZSByZWxhdGVkIGhvb2tzCi0jIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRl
c3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVmLCByZXF1ZXN0KToKLSAgICAiIiIgcGVyZm9ybXMg
Zml4dHVyZSBzZXR1cCBleGVjdXRpb24uCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSBy
ZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotZGVmIHB5dGVzdF9maXh0dXJl
X3Bvc3RfZmluYWxpemVyKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgotICAgICIiIiBjYWxsZWQgYWZ0
ZXIgZml4dHVyZSB0ZWFyZG93biwgYnV0IGJlZm9yZSB0aGUgY2FjaGUgaXMgY2xlYXJlZCBzbwot
ICAgIHRoZSBmaXh0dXJlIHJlc3VsdCBjYWNoZSBgYGZpeHR1cmVkZWYuY2FjaGVkX3Jlc3VsdGBg
IGNhbgotICAgIHN0aWxsIGJlIGFjY2Vzc2VkLiIiIgotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMg
dGVzdCBzZXNzaW9uIHJlbGF0ZWQgaG9va3MKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLWRlZiBw
eXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb24pOgotICAgICIiIiBiZWZvcmUgc2Vzc2lvbi5tYWlu
KCkgaXMgY2FsbGVkLiAiIiIKLQotCi1kZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2Vzc2lvbiwg
ZXhpdHN0YXR1cyk6Ci0gICAgIiIiIHdob2xlIHRlc3QgcnVuIGZpbmlzaGVzLiAiIiIKLQotCi1k
ZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgIiIiIGNhbGxlZCBiZWZvcmUgdGVz
dCBwcm9jZXNzIGlzIGV4aXRlZC4gICIiIgotCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBob29r
cyBmb3IgY3VzdG9taXppbmcgdGhlIGFzc2VydCBtZXRob2RzCi0jIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotZGVmIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUoY29uZmlnLCBvcCwgbGVmdCwgcmlnaHQp
OgotICAgICIiInJldHVybiBleHBsYW5hdGlvbiBmb3IgY29tcGFyaXNvbnMgaW4gZmFpbGluZyBh
c3NlcnQgZXhwcmVzc2lvbnMuCi0KLSAgICBSZXR1cm4gTm9uZSBmb3Igbm8gY3VzdG9tIGV4cGxh
bmF0aW9uLCBvdGhlcndpc2UgcmV0dXJuIGEgbGlzdAotICAgIG9mIHN0cmluZ3MuICBUaGUgc3Ry
aW5ncyB3aWxsIGJlIGpvaW5lZCBieSBuZXdsaW5lcyBidXQgYW55IG5ld2xpbmVzCi0gICAgKmlu
KiBhIHN0cmluZyB3aWxsIGJlIGVzY2FwZWQuICBOb3RlIHRoYXQgYWxsIGJ1dCB0aGUgZmlyc3Qg
bGluZSB3aWxsCi0gICAgYmUgaW5kZW50ZWQgc2xpZ2h0bHksIHRoZSBpbnRlbnRpb24gaXMgZm9y
IHRoZSBmaXJzdCBsaW5lIHRvIGJlIGEgc3VtbWFyeS4KLSAgICAiIiIKLQotIyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0jIGhvb2tzIGZvciBpbmZsdWVuY2luZyByZXBvcnRpbmcgKGludm9rZWQgZnJvbSBf
cHl0ZXN0X3Rlcm1pbmFsKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotZGVmIHB5dGVzdF9yZXBv
cnRfaGVhZGVyKGNvbmZpZywgc3RhcnRkaXIpOgotICAgICIiIiByZXR1cm4gYSBzdHJpbmcgb3Ig
bGlzdCBvZiBzdHJpbmdzIHRvIGJlIGRpc3BsYXllZCBhcyBoZWFkZXIgaW5mbyBmb3IgdGVybWlu
YWwgcmVwb3J0aW5nLgotCi0gICAgOnBhcmFtIGNvbmZpZzogdGhlIHB5dGVzdCBjb25maWcgb2Jq
ZWN0LgotICAgIDpwYXJhbSBzdGFydGRpcjogcHkucGF0aCBvYmplY3Qgd2l0aCB0aGUgc3RhcnRp
bmcgZGlyCi0KLSAgICAuLiBub3RlOjoKLQotICAgICAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBi
ZSBpbXBsZW1lbnRlZCBvbmx5IGluIHBsdWdpbnMgb3IgYGBjb25mdGVzdC5weWBgCi0gICAgICAg
IGZpbGVzIHNpdHVhdGVkIGF0IHRoZSB0ZXN0cyByb290IGRpcmVjdG9yeSBkdWUgdG8gaG93IHB5
dGVzdAotICAgICAgICA6cmVmOmBkaXNjb3ZlcnMgcGx1Z2lucyBkdXJpbmcgc3RhcnR1cCA8cGx1
Z2lub3JkZXI+YC4KLSAgICAiIiIKLQotCi1kZWYgcHl0ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmlu
aXNoKGNvbmZpZywgc3RhcnRkaXIsIGl0ZW1zKToKLSAgICAiIiIKLSAgICAuLiB2ZXJzaW9uYWRk
ZWQ6OiAzLjIKLQotICAgIHJldHVybiBhIHN0cmluZyBvciBsaXN0IG9mIHN0cmluZ3MgdG8gYmUg
ZGlzcGxheWVkIGFmdGVyIGNvbGxlY3Rpb24gaGFzIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseS4KLQot
ICAgIFRoaXMgc3RyaW5ncyB3aWxsIGJlIGRpc3BsYXllZCBhZnRlciB0aGUgc3RhbmRhcmQgImNv
bGxlY3RlZCBYIGl0ZW1zIiBtZXNzYWdlLgotCi0gICAgOnBhcmFtIGNvbmZpZzogdGhlIHB5dGVz
dCBjb25maWcgb2JqZWN0LgotICAgIDpwYXJhbSBzdGFydGRpcjogcHkucGF0aCBvYmplY3Qgd2l0
aCB0aGUgc3RhcnRpbmcgZGlyCi0gICAgOnBhcmFtIGl0ZW1zOiBsaXN0IG9mIHB5dGVzdCBpdGVt
cyB0aGF0IGFyZSBnb2luZyB0byBiZSBleGVjdXRlZDsgdGhpcyBsaXN0IHNob3VsZCBub3QgYmUg
bW9kaWZpZWQuCi0gICAgIiIiCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYg
cHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKHJlcG9ydCk6Ci0gICAgIiIiIHJldHVybiByZXN1bHQt
Y2F0ZWdvcnksIHNob3J0bGV0dGVyIGFuZCB2ZXJib3NlIHdvcmQgZm9yIHJlcG9ydGluZy4KLQot
ICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0
YCAiIiIKLQotCi1kZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlciwg
ZXhpdHN0YXR1cyk6Ci0gICAgIiIiIGFkZCBhZGRpdGlvbmFsIHNlY3Rpb24gaW4gdGVybWluYWwg
c3VtbWFyeSByZXBvcnRpbmcuICAiIiIKLQotCi1AaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKLWRl
ZiBweXRlc3RfbG9nd2FybmluZyhtZXNzYWdlLCBjb2RlLCBub2RlaWQsIGZzbG9jYXRpb24pOgot
ICAgICIiIiBwcm9jZXNzIGEgd2FybmluZyBzcGVjaWZpZWQgYnkgYSBtZXNzYWdlLCBhIGNvZGUg
c3RyaW5nLAotICAgIGEgbm9kZWlkIGFuZCBmc2xvY2F0aW9uIChib3RoIG9mIHdoaWNoIG1heSBi
ZSBOb25lCi0gICAgaWYgdGhlIHdhcm5pbmcgaXMgbm90IHRpZWQgdG8gYSBwYXJ0aWxhciBub2Rl
L2xvY2F0aW9uKS4iIiIKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGRvY3Rlc3QgaG9va3MKLSMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5
dGVzdF9kb2N0ZXN0X3ByZXBhcmVfY29udGVudChjb250ZW50KToKLSAgICAiIiIgcmV0dXJuIHBy
b2Nlc3NlZCBjb250ZW50IGZvciBhIGdpdmVuIGRvY3Rlc3QKLQotICAgIFN0b3BzIGF0IGZpcnN0
IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0jIGVycm9yIGhhbmRsaW5nIGFuZCBpbnRlcm5hbCBkZWJ1Z2dpbmcgaG9va3MK
LSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLWRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihleGNyZXBy
LCBleGNpbmZvKToKLSAgICAiIiIgY2FsbGVkIGZvciBpbnRlcm5hbCBlcnJvcnMuICIiIgotCi0K
LWRlZiBweXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KGV4Y2luZm8pOgotICAgICIiIiBjYWxsZWQg
Zm9yIGtleWJvYXJkIGludGVycnVwdC4gIiIiCi0KLQotZGVmIHB5dGVzdF9leGNlcHRpb25faW50
ZXJhY3Qobm9kZSwgY2FsbCwgcmVwb3J0KToKLSAgICAiIiJjYWxsZWQgd2hlbiBhbiBleGNlcHRp
b24gd2FzIHJhaXNlZCB3aGljaCBjYW4gcG90ZW50aWFsbHkgYmUKLSAgICBpbnRlcmFjdGl2ZWx5
IGhhbmRsZWQuCi0KLSAgICBUaGlzIGhvb2sgaXMgb25seSBjYWxsZWQgaWYgYW4gZXhjZXB0aW9u
IHdhcyByYWlzZWQKLSAgICB0aGF0IGlzIG5vdCBhbiBpbnRlcm5hbCBleGNlcHRpb24gbGlrZSBg
YHNraXAuRXhjZXB0aW9uYGAuCi0gICAgIiIiCi0KLQotZGVmIHB5dGVzdF9lbnRlcl9wZGIoY29u
ZmlnKToKLSAgICAiIiIgY2FsbGVkIHVwb24gcGRiLnNldF90cmFjZSgpLCBjYW4gYmUgdXNlZCBi
eSBwbHVnaW5zIHRvIHRha2Ugc3BlY2lhbAotICAgIGFjdGlvbiBqdXN0IGJlZm9yZSB0aGUgcHl0
aG9uIGRlYnVnZ2VyIGVudGVycyBpbiBpbnRlcmFjdGl2ZSBtb2RlLgotCi0gICAgOmFyZyBjb25m
aWc6IHB5dGVzdCBjb25maWcgb2JqZWN0Ci0gICAgOnR5cGUgY29uZmlnOiBfcHl0ZXN0LmNvbmZp
Zy5Db25maWcKLSAgICAiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvanVuaXR4
bWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2p1bml0eG1sLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3ZmI0MGRjMzU0ODc0ZjAzNjRkZTBjODNhYzlmZjY2MWJjYTc3OWYwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvanVuaXR4bWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NTMgKzAsMCBAQAotIiIi
Ci0gICAgcmVwb3J0IHRlc3QgcmVzdWx0cyBpbiBKVW5pdC1YTUwgZm9ybWF0LAotICAgIGZvciB1
c2Ugd2l0aCBKZW5raW5zIGFuZCBidWlsZCBpbnRlZ3JhdGlvbiBzZXJ2ZXJzLgotCi0KLUJhc2Vk
IG9uIGluaXRpYWwgY29kZSBmcm9tIFJvc3MgTGF3bGV5LgotCi1PdXRwdXQgY29uZm9ybXMgdG8g
aHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS94dW5pdC1wbHVnaW4vYmxvYi9tYXN0ZXIvCi1z
cmMvbWFpbi9yZXNvdXJjZXMvb3JnL2plbmtpbnNjaS9wbHVnaW5zL3h1bml0L3R5cGVzL21vZGVs
L3hzZC9qdW5pdC0xMC54c2QKLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgZnVuY3Rvb2xzCi1pbXBv
cnQgcHkKLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi1pbXBvcnQgdGltZQotaW1w
b3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0IGltcG9ydCBub2RlcwotZnJvbSBfcHl0ZXN0LmNvbmZp
ZyBpbXBvcnQgZmlsZW5hbWVfYXJnCi0KLSMgUHl0aG9uIDIuWCBhbmQgMy5YIGNvbXBhdGliaWxp
dHkKLWlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPCAzOgotICAgIGZyb20gY29kZWNzIGltcG9ydCBv
cGVuCi1lbHNlOgotICAgIHVuaWNociA9IGNocgotICAgIHVuaWNvZGUgPSBzdHIKLSAgICBsb25n
ID0gaW50Ci0KLQotY2xhc3MgSnVuaXQocHkueG1sLk5hbWVzcGFjZSk6Ci0gICAgcGFzcwotCi0K
LSMgV2UgbmVlZCB0byBnZXQgdGhlIHN1YnNldCBvZiB0aGUgaW52YWxpZCB1bmljb2RlIHJhbmdl
cyBhY2NvcmRpbmcgdG8KLSMgWE1MIDEuMCB3aGljaCBhcmUgdmFsaWQgaW4gdGhpcyBweXRob24g
YnVpbGQuICBIZW5jZSB3ZSBjYWxjdWxhdGUKLSMgdGhpcyBkeW5hbWljYWxseSBpbnN0ZWFkIG9m
IGhhcmRjb2RpbmcgaXQuICBUaGUgc3BlYyByYW5nZSBvZiB2YWxpZAotIyBjaGFycyBpczogQ2hh
ciA6Oj0gI3g5IHwgI3hBIHwgI3hEIHwgWyN4MjAtI3hEN0ZGXSB8IFsjeEUwMDAtI3hGRkZEXQot
IyAgICAgICAgICAgICAgICAgICAgfCBbI3gxMDAwMC0jeDEwRkZGRl0KLV9sZWdhbF9jaGFycyA9
ICgweDA5LCAweDBBLCAweDBkKQotX2xlZ2FsX3JhbmdlcyA9ICgKLSAgICAoMHgyMCwgMHg3RSks
ICgweDgwLCAweEQ3RkYpLCAoMHhFMDAwLCAweEZGRkQpLCAoMHgxMDAwMCwgMHgxMEZGRkYpLAot
KQotX2xlZ2FsX3htbF9yZSA9IFsKLSAgICB1bmljb2RlKCIlcy0lcyIpICUgKHVuaWNocihsb3cp
LCB1bmljaHIoaGlnaCkpCi0gICAgZm9yIChsb3csIGhpZ2gpIGluIF9sZWdhbF9yYW5nZXMgaWYg
bG93IDwgc3lzLm1heHVuaWNvZGUKLV0KLV9sZWdhbF94bWxfcmUgPSBbdW5pY2hyKHgpIGZvciB4
IGluIF9sZWdhbF9jaGFyc10gKyBfbGVnYWxfeG1sX3JlCi1pbGxlZ2FsX3htbF9yZSA9IHJlLmNv
bXBpbGUodW5pY29kZSgnW14lc10nKSAlIHVuaWNvZGUoJycpLmpvaW4oX2xlZ2FsX3htbF9yZSkp
Ci1kZWwgX2xlZ2FsX2NoYXJzCi1kZWwgX2xlZ2FsX3JhbmdlcwotZGVsIF9sZWdhbF94bWxfcmUK
LQotX3B5X2V4dF9yZSA9IHJlLmNvbXBpbGUociJcLnB5JCIpCi0KLQotZGVmIGJpbl94bWxfZXNj
YXBlKGFyZyk6Ci0gICAgZGVmIHJlcGwobWF0Y2hvYmopOgotICAgICAgICBpID0gb3JkKG1hdGNo
b2JqLmdyb3VwKCkpCi0gICAgICAgIGlmIGkgPD0gMHhGRjoKLSAgICAgICAgICAgIHJldHVybiB1
bmljb2RlKCcjeCUwMlgnKSAlIGkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiB1
bmljb2RlKCcjeCUwNFgnKSAlIGkKLQotICAgIHJldHVybiBweS54bWwucmF3KGlsbGVnYWxfeG1s
X3JlLnN1YihyZXBsLCBweS54bWwuZXNjYXBlKGFyZykpKQotCi0KLWNsYXNzIF9Ob2RlUmVwb3J0
ZXIob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZWlkLCB4bWwpOgotCi0gICAg
ICAgIHNlbGYuaWQgPSBub2RlaWQKLSAgICAgICAgc2VsZi54bWwgPSB4bWwKLSAgICAgICAgc2Vs
Zi5hZGRfc3RhdHMgPSBzZWxmLnhtbC5hZGRfc3RhdHMKLSAgICAgICAgc2VsZi5kdXJhdGlvbiA9
IDAKLSAgICAgICAgc2VsZi5wcm9wZXJ0aWVzID0gW10KLSAgICAgICAgc2VsZi5ub2RlcyA9IFtd
Ci0gICAgICAgIHNlbGYudGVzdGNhc2UgPSBOb25lCi0gICAgICAgIHNlbGYuYXR0cnMgPSB7fQot
Ci0gICAgZGVmIGFwcGVuZChzZWxmLCBub2RlKToKLSAgICAgICAgc2VsZi54bWwuYWRkX3N0YXRz
KHR5cGUobm9kZSkuX19uYW1lX18pCi0gICAgICAgIHNlbGYubm9kZXMuYXBwZW5kKG5vZGUpCi0K
LSAgICBkZWYgYWRkX3Byb3BlcnR5KHNlbGYsIG5hbWUsIHZhbHVlKToKLSAgICAgICAgc2VsZi5w
cm9wZXJ0aWVzLmFwcGVuZCgoc3RyKG5hbWUpLCBiaW5feG1sX2VzY2FwZSh2YWx1ZSkpKQotCi0g
ICAgZGVmIG1ha2VfcHJvcGVydGllc19ub2RlKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gYSBK
dW5pdCBub2RlIGNvbnRhaW5pbmcgY3VzdG9tIHByb3BlcnRpZXMsIGlmIGFueS4KLSAgICAgICAg
IiIiCi0gICAgICAgIGlmIHNlbGYucHJvcGVydGllczoKLSAgICAgICAgICAgIHJldHVybiBKdW5p
dC5wcm9wZXJ0aWVzKFsKLSAgICAgICAgICAgICAgICBKdW5pdC5wcm9wZXJ0eShuYW1lPW5hbWUs
IHZhbHVlPXZhbHVlKQotICAgICAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLnBy
b3BlcnRpZXMKLSAgICAgICAgICAgIF0pCi0gICAgICAgIHJldHVybiAnJwotCi0gICAgZGVmIHJl
Y29yZF90ZXN0cmVwb3J0KHNlbGYsIHRlc3RyZXBvcnQpOgotICAgICAgICBhc3NlcnQgbm90IHNl
bGYudGVzdGNhc2UKLSAgICAgICAgbmFtZXMgPSBtYW5nbGVfdGVzdF9hZGRyZXNzKHRlc3RyZXBv
cnQubm9kZWlkKQotICAgICAgICBjbGFzc25hbWVzID0gbmFtZXNbOi0xXQotICAgICAgICBpZiBz
ZWxmLnhtbC5wcmVmaXg6Ci0gICAgICAgICAgICBjbGFzc25hbWVzLmluc2VydCgwLCBzZWxmLnht
bC5wcmVmaXgpCi0gICAgICAgIGF0dHJzID0gewotICAgICAgICAgICAgImNsYXNzbmFtZSI6ICIu
Ii5qb2luKGNsYXNzbmFtZXMpLAotICAgICAgICAgICAgIm5hbWUiOiBiaW5feG1sX2VzY2FwZShu
YW1lc1stMV0pLAotICAgICAgICAgICAgImZpbGUiOiB0ZXN0cmVwb3J0LmxvY2F0aW9uWzBdLAot
ICAgICAgICB9Ci0gICAgICAgIGlmIHRlc3RyZXBvcnQubG9jYXRpb25bMV0gaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICBhdHRyc1sibGluZSJdID0gdGVzdHJlcG9ydC5sb2NhdGlvblsxXQotICAg
ICAgICBpZiBoYXNhdHRyKHRlc3RyZXBvcnQsICJ1cmwiKToKLSAgICAgICAgICAgIGF0dHJzWyJ1
cmwiXSA9IHRlc3RyZXBvcnQudXJsCi0gICAgICAgIHNlbGYuYXR0cnMgPSBhdHRycwotCi0gICAg
ZGVmIHRvX3htbChzZWxmKToKLSAgICAgICAgdGVzdGNhc2UgPSBKdW5pdC50ZXN0Y2FzZSh0aW1l
PXNlbGYuZHVyYXRpb24sICoqc2VsZi5hdHRycykKLSAgICAgICAgdGVzdGNhc2UuYXBwZW5kKHNl
bGYubWFrZV9wcm9wZXJ0aWVzX25vZGUoKSkKLSAgICAgICAgZm9yIG5vZGUgaW4gc2VsZi5ub2Rl
czoKLSAgICAgICAgICAgIHRlc3RjYXNlLmFwcGVuZChub2RlKQotICAgICAgICByZXR1cm4gdGVz
dGNhc2UKLQotICAgIGRlZiBfYWRkX3NpbXBsZShzZWxmLCBraW5kLCBtZXNzYWdlLCBkYXRhPU5v
bmUpOgotICAgICAgICBkYXRhID0gYmluX3htbF9lc2NhcGUoZGF0YSkKLSAgICAgICAgbm9kZSA9
IGtpbmQoZGF0YSwgbWVzc2FnZT1tZXNzYWdlKQotICAgICAgICBzZWxmLmFwcGVuZChub2RlKQot
Ci0gICAgZGVmIHdyaXRlX2NhcHR1cmVkX291dHB1dChzZWxmLCByZXBvcnQpOgotICAgICAgICBm
b3IgY2FwbmFtZSBpbiAoJ291dCcsICdlcnInKToKLSAgICAgICAgICAgIGNvbnRlbnQgPSBnZXRh
dHRyKHJlcG9ydCwgJ2NhcHN0ZCcgKyBjYXBuYW1lKQotICAgICAgICAgICAgaWYgY29udGVudDoK
LSAgICAgICAgICAgICAgICB0YWcgPSBnZXRhdHRyKEp1bml0LCAnc3lzdGVtLScgKyBjYXBuYW1l
KQotICAgICAgICAgICAgICAgIHNlbGYuYXBwZW5kKHRhZyhiaW5feG1sX2VzY2FwZShjb250ZW50
KSkpCi0KLSAgICBkZWYgYXBwZW5kX3Bhc3Moc2VsZiwgcmVwb3J0KToKLSAgICAgICAgc2VsZi5h
ZGRfc3RhdHMoJ3Bhc3NlZCcpCi0KLSAgICBkZWYgYXBwZW5kX2ZhaWx1cmUoc2VsZiwgcmVwb3J0
KToKLSAgICAgICAgIyBtc2cgPSBzdHIocmVwb3J0LmxvbmdyZXByLnJlcHJ0cmFjZWJhY2suZXh0
cmFsaW5lKQotICAgICAgICBpZiBoYXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIik6Ci0gICAgICAg
ICAgICBzZWxmLl9hZGRfc2ltcGxlKAotICAgICAgICAgICAgICAgIEp1bml0LnNraXBwZWQsCi0g
ICAgICAgICAgICAgICAgInhmYWlsLW1hcmtlZCB0ZXN0IHBhc3NlcyB1bmV4cGVjdGVkbHkiKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgaGFzYXR0cihyZXBvcnQubG9uZ3JlcHIsICJy
ZXByY3Jhc2giKToKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gcmVwb3J0LmxvbmdyZXByLnJl
cHJjcmFzaC5tZXNzYWdlCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UocmVwb3J0Lmxvbmdy
ZXByLCAodW5pY29kZSwgc3RyKSk6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IHJlcG9ydC5s
b25ncmVwcgotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gc3Ry
KHJlcG9ydC5sb25ncmVwcikKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBiaW5feG1sX2VzY2FwZSht
ZXNzYWdlKQotICAgICAgICAgICAgZmFpbCA9IEp1bml0LmZhaWx1cmUobWVzc2FnZT1tZXNzYWdl
KQotICAgICAgICAgICAgZmFpbC5hcHBlbmQoYmluX3htbF9lc2NhcGUocmVwb3J0LmxvbmdyZXBy
KSkKLSAgICAgICAgICAgIHNlbGYuYXBwZW5kKGZhaWwpCi0KLSAgICBkZWYgYXBwZW5kX2NvbGxl
Y3RfZXJyb3Ioc2VsZiwgcmVwb3J0KToKLSAgICAgICAgIyBtc2cgPSBzdHIocmVwb3J0Lmxvbmdy
ZXByLnJlcHJ0cmFjZWJhY2suZXh0cmFsaW5lKQotICAgICAgICBzZWxmLmFwcGVuZChKdW5pdC5l
cnJvcihiaW5feG1sX2VzY2FwZShyZXBvcnQubG9uZ3JlcHIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlPSJjb2xsZWN0aW9uIGZhaWx1cmUiKSkKLQotICAgIGRlZiBh
cHBlbmRfY29sbGVjdF9za2lwcGVkKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIHNlbGYuX2FkZF9z
aW1wbGUoCi0gICAgICAgICAgICBKdW5pdC5za2lwcGVkLCAiY29sbGVjdGlvbiBza2lwcGVkIiwg
cmVwb3J0LmxvbmdyZXByKQotCi0gICAgZGVmIGFwcGVuZF9lcnJvcihzZWxmLCByZXBvcnQpOgot
ICAgICAgICBpZiBnZXRhdHRyKHJlcG9ydCwgJ3doZW4nLCBOb25lKSA9PSAndGVhcmRvd24nOgot
ICAgICAgICAgICAgbXNnID0gInRlc3QgdGVhcmRvd24gZmFpbHVyZSIKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIG1zZyA9ICJ0ZXN0IHNldHVwIGZhaWx1cmUiCi0gICAgICAgIHNlbGYuX2Fk
ZF9zaW1wbGUoCi0gICAgICAgICAgICBKdW5pdC5lcnJvciwgbXNnLCByZXBvcnQubG9uZ3JlcHIp
Ci0KLSAgICBkZWYgYXBwZW5kX3NraXBwZWQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgaWYgaGFz
YXR0cihyZXBvcnQsICJ3YXN4ZmFpbCIpOgotICAgICAgICAgICAgc2VsZi5fYWRkX3NpbXBsZSgK
LSAgICAgICAgICAgICAgICBKdW5pdC5za2lwcGVkLCAiZXhwZWN0ZWQgdGVzdCBmYWlsdXJlIiwg
cmVwb3J0Lndhc3hmYWlsCi0gICAgICAgICAgICApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBmaWxlbmFtZSwgbGluZW5vLCBza2lwcmVhc29uID0gcmVwb3J0LmxvbmdyZXByCi0gICAgICAg
ICAgICBpZiBza2lwcmVhc29uLnN0YXJ0c3dpdGgoIlNraXBwZWQ6ICIpOgotICAgICAgICAgICAg
ICAgIHNraXByZWFzb24gPSBiaW5feG1sX2VzY2FwZShza2lwcmVhc29uWzk6XSkKLSAgICAgICAg
ICAgIHNlbGYuYXBwZW5kKAotICAgICAgICAgICAgICAgIEp1bml0LnNraXBwZWQoIiVzOiVzOiAl
cyIgJSAoZmlsZW5hbWUsIGxpbmVubywgc2tpcHJlYXNvbiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlPSJweXRlc3Quc2tpcCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlPXNraXByZWFzb24pKQotICAgICAgICBzZWxmLndyaXRlX2NhcHR1cmVkX291
dHB1dChyZXBvcnQpCi0KLSAgICBkZWYgZmluYWxpemUoc2VsZik6Ci0gICAgICAgIGRhdGEgPSBz
ZWxmLnRvX3htbCgpLnVuaWNvZGUoaW5kZW50PTApCi0gICAgICAgIHNlbGYuX19kaWN0X18uY2xl
YXIoKQotICAgICAgICBzZWxmLnRvX3htbCA9IGxhbWJkYTogcHkueG1sLnJhdyhkYXRhKQotCi0K
LUBweXRlc3QuZml4dHVyZQotZGVmIHJlY29yZF94bWxfcHJvcGVydHkocmVxdWVzdCk6Ci0gICAg
IiIiQWRkIGV4dHJhIHhtbCBwcm9wZXJ0aWVzIHRvIHRoZSB0YWcgZm9yIHRoZSBjYWxsaW5nIHRl
c3QuCi0gICAgVGhlIGZpeHR1cmUgaXMgY2FsbGFibGUgd2l0aCBgYChuYW1lLCB2YWx1ZSlgYCwg
d2l0aCB2YWx1ZSBiZWluZyBhdXRvbWF0aWNhbGx5Ci0gICAgeG1sLWVuY29kZWQuCi0gICAgIiIi
Ci0gICAgcmVxdWVzdC5ub2RlLndhcm4oCi0gICAgICAgIGNvZGU9J0MzJywKLSAgICAgICAgbWVz
c2FnZT0ncmVjb3JkX3htbF9wcm9wZXJ0eSBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZScsCi0g
ICAgKQotICAgIHhtbCA9IGdldGF0dHIocmVxdWVzdC5jb25maWcsICJfeG1sIiwgTm9uZSkKLSAg
ICBpZiB4bWwgaXMgbm90IE5vbmU6Ci0gICAgICAgIG5vZGVfcmVwb3J0ZXIgPSB4bWwubm9kZV9y
ZXBvcnRlcihyZXF1ZXN0Lm5vZGUubm9kZWlkKQotICAgICAgICByZXR1cm4gbm9kZV9yZXBvcnRl
ci5hZGRfcHJvcGVydHkKLSAgICBlbHNlOgotICAgICAgICBkZWYgYWRkX3Byb3BlcnR5X25vb3Ao
bmFtZSwgdmFsdWUpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIHJldHVybiBhZGRfcHJv
cGVydHlfbm9vcAotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAg
PSBwYXJzZXIuZ2V0Z3JvdXAoInRlcm1pbmFsIHJlcG9ydGluZyIpCi0gICAgZ3JvdXAuYWRkb3B0
aW9uKAotICAgICAgICAnLS1qdW5pdHhtbCcsICctLWp1bml0LXhtbCcsCi0gICAgICAgIGFjdGlv
bj0ic3RvcmUiLAotICAgICAgICBkZXN0PSJ4bWxwYXRoIiwKLSAgICAgICAgbWV0YXZhcj0icGF0
aCIsCi0gICAgICAgIHR5cGU9ZnVuY3Rvb2xzLnBhcnRpYWwoZmlsZW5hbWVfYXJnLCBvcHRuYW1l
PSItLWp1bml0eG1sIiksCi0gICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgaGVscD0iY3Jl
YXRlIGp1bml0LXhtbCBzdHlsZSByZXBvcnQgZmlsZSBhdCBnaXZlbiBwYXRoLiIpCi0gICAgZ3Jv
dXAuYWRkb3B0aW9uKAotICAgICAgICAnLS1qdW5pdHByZWZpeCcsICctLWp1bml0LXByZWZpeCcs
Ci0gICAgICAgIGFjdGlvbj0ic3RvcmUiLAotICAgICAgICBtZXRhdmFyPSJzdHIiLAotICAgICAg
ICBkZWZhdWx0PU5vbmUsCi0gICAgICAgIGhlbHA9InByZXBlbmQgcHJlZml4IHRvIGNsYXNzbmFt
ZXMgaW4ganVuaXQteG1sIG91dHB1dCIpCi0gICAgcGFyc2VyLmFkZGluaSgianVuaXRfc3VpdGVf
bmFtZSIsICJUZXN0IHN1aXRlIG5hbWUgZm9yIEpVbml0IHJlcG9ydCIsIGRlZmF1bHQ9InB5dGVz
dCIpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICB4bWxwYXRoID0gY29u
ZmlnLm9wdGlvbi54bWxwYXRoCi0gICAgIyBwcmV2ZW50IG9wZW5pbmcgeG1sbG9nIG9uIHNsYXZl
IG5vZGVzICh4ZGlzdCkKLSAgICBpZiB4bWxwYXRoIGFuZCBub3QgaGFzYXR0cihjb25maWcsICdz
bGF2ZWlucHV0Jyk6Ci0gICAgICAgIGNvbmZpZy5feG1sID0gTG9nWE1MKHhtbHBhdGgsIGNvbmZp
Zy5vcHRpb24uanVuaXRwcmVmaXgsIGNvbmZpZy5nZXRpbmkoImp1bml0X3N1aXRlX25hbWUiKSkK
LSAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoY29uZmlnLl94bWwpCi0KLQot
ZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShjb25maWcpOgotICAgIHhtbCA9IGdldGF0dHIoY29uZmln
LCAnX3htbCcsIE5vbmUpCi0gICAgaWYgeG1sOgotICAgICAgICBkZWwgY29uZmlnLl94bWwKLSAg
ICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIudW5yZWdpc3Rlcih4bWwpCi0KLQotZGVmIG1hbmds
ZV90ZXN0X2FkZHJlc3MoYWRkcmVzcyk6Ci0gICAgcGF0aCwgcG9zc2libGVfb3Blbl9icmFja2V0
LCBwYXJhbXMgPSBhZGRyZXNzLnBhcnRpdGlvbignWycpCi0gICAgbmFtZXMgPSBwYXRoLnNwbGl0
KCI6OiIpCi0gICAgdHJ5OgotICAgICAgICBuYW1lcy5yZW1vdmUoJygpJykKLSAgICBleGNlcHQg
VmFsdWVFcnJvcjoKLSAgICAgICAgcGFzcwotICAgICMgY29udmVydCBmaWxlIHBhdGggdG8gZG90
dGVkIHBhdGgKLSAgICBuYW1lc1swXSA9IG5hbWVzWzBdLnJlcGxhY2Uobm9kZXMuU0VQLCAnLicp
Ci0gICAgbmFtZXNbMF0gPSBfcHlfZXh0X3JlLnN1YigiIiwgbmFtZXNbMF0pCi0gICAgIyBwdXQg
YW55IHBhcmFtcyBiYWNrCi0gICAgbmFtZXNbLTFdICs9IHBvc3NpYmxlX29wZW5fYnJhY2tldCAr
IHBhcmFtcwotICAgIHJldHVybiBuYW1lcwotCi0KLWNsYXNzIExvZ1hNTChvYmplY3QpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dmaWxlLCBwcmVmaXgsIHN1aXRlX25hbWU9InB5dGVzdCIp
OgotICAgICAgICBsb2dmaWxlID0gb3MucGF0aC5leHBhbmR1c2VyKG9zLnBhdGguZXhwYW5kdmFy
cyhsb2dmaWxlKSkKLSAgICAgICAgc2VsZi5sb2dmaWxlID0gb3MucGF0aC5ub3JtcGF0aChvcy5w
YXRoLmFic3BhdGgobG9nZmlsZSkpCi0gICAgICAgIHNlbGYucHJlZml4ID0gcHJlZml4Ci0gICAg
ICAgIHNlbGYuc3VpdGVfbmFtZSA9IHN1aXRlX25hbWUKLSAgICAgICAgc2VsZi5zdGF0cyA9IGRp
Y3QuZnJvbWtleXMoWwotICAgICAgICAgICAgJ2Vycm9yJywKLSAgICAgICAgICAgICdwYXNzZWQn
LAotICAgICAgICAgICAgJ2ZhaWx1cmUnLAotICAgICAgICAgICAgJ3NraXBwZWQnLAotICAgICAg
ICBdLCAwKQotICAgICAgICBzZWxmLm5vZGVfcmVwb3J0ZXJzID0ge30gICMgbm9kZWlkIC0+IF9O
b2RlUmVwb3J0ZXIKLSAgICAgICAgc2VsZi5ub2RlX3JlcG9ydGVyc19vcmRlcmVkID0gW10KLSAg
ICAgICAgc2VsZi5nbG9iYWxfcHJvcGVydGllcyA9IFtdCi0gICAgICAgICMgTGlzdCBvZiByZXBv
cnRzIHRoYXQgZmFpbGVkIG9uIGNhbGwgYnV0IHRlYXJkb3duIGlzIHBlbmRpbmcuCi0gICAgICAg
IHNlbGYub3Blbl9yZXBvcnRzID0gW10KLSAgICAgICAgc2VsZi5jbnRfZG91YmxlX2ZhaWxfdGVz
dHMgPSAwCi0KLSAgICBkZWYgZmluYWxpemUoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgbm9kZWlk
ID0gZ2V0YXR0cihyZXBvcnQsICdub2RlaWQnLCByZXBvcnQpCi0gICAgICAgICMgbG9jYWwgaGFj
ayB0byBoYW5kbGUgeGRpc3QgcmVwb3J0IG9yZGVyCi0gICAgICAgIHNsYXZlbm9kZSA9IGdldGF0
dHIocmVwb3J0LCAnbm9kZScsIE5vbmUpCi0gICAgICAgIHJlcG9ydGVyID0gc2VsZi5ub2RlX3Jl
cG9ydGVycy5wb3AoKG5vZGVpZCwgc2xhdmVub2RlKSkKLSAgICAgICAgaWYgcmVwb3J0ZXIgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICByZXBvcnRlci5maW5hbGl6ZSgpCi0KLSAgICBkZWYgbm9k
ZV9yZXBvcnRlcihzZWxmLCByZXBvcnQpOgotICAgICAgICBub2RlaWQgPSBnZXRhdHRyKHJlcG9y
dCwgJ25vZGVpZCcsIHJlcG9ydCkKLSAgICAgICAgIyBsb2NhbCBoYWNrIHRvIGhhbmRsZSB4ZGlz
dCByZXBvcnQgb3JkZXIKLSAgICAgICAgc2xhdmVub2RlID0gZ2V0YXR0cihyZXBvcnQsICdub2Rl
JywgTm9uZSkKLQotICAgICAgICBrZXkgPSBub2RlaWQsIHNsYXZlbm9kZQotCi0gICAgICAgIGlm
IGtleSBpbiBzZWxmLm5vZGVfcmVwb3J0ZXJzOgotICAgICAgICAgICAgIyBUT0RPOiBicmVhc2tz
IGZvciAtLWRpc3Q9ZWFjaAotICAgICAgICAgICAgcmV0dXJuIHNlbGYubm9kZV9yZXBvcnRlcnNb
a2V5XQotCi0gICAgICAgIHJlcG9ydGVyID0gX05vZGVSZXBvcnRlcihub2RlaWQsIHNlbGYpCi0K
LSAgICAgICAgc2VsZi5ub2RlX3JlcG9ydGVyc1trZXldID0gcmVwb3J0ZXIKLSAgICAgICAgc2Vs
Zi5ub2RlX3JlcG9ydGVyc19vcmRlcmVkLmFwcGVuZChyZXBvcnRlcikKLQotICAgICAgICByZXR1
cm4gcmVwb3J0ZXIKLQotICAgIGRlZiBhZGRfc3RhdHMoc2VsZiwga2V5KToKLSAgICAgICAgaWYg
a2V5IGluIHNlbGYuc3RhdHM6Ci0gICAgICAgICAgICBzZWxmLnN0YXRzW2tleV0gKz0gMQotCi0g
ICAgZGVmIF9vcGVudGVzdGNhc2Uoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgcmVwb3J0ZXIgPSBz
ZWxmLm5vZGVfcmVwb3J0ZXIocmVwb3J0KQotICAgICAgICByZXBvcnRlci5yZWNvcmRfdGVzdHJl
cG9ydChyZXBvcnQpCi0gICAgICAgIHJldHVybiByZXBvcnRlcgotCi0gICAgZGVmIHB5dGVzdF9y
dW50ZXN0X2xvZ3JlcG9ydChzZWxmLCByZXBvcnQpOgotICAgICAgICAiIiJoYW5kbGUgYSBzZXR1
cC9jYWxsL3RlYXJkb3duIHJlcG9ydCwgZ2VuZXJhdGluZyB0aGUgYXBwcm9wcmlhdGUKLSAgICAg
ICAgeG1sIHRhZ3MgYXMgbmVjZXNzYXJ5LgotCi0gICAgICAgIG5vdGU6IGR1ZSB0byBwbHVnaW5z
IGxpa2UgeGRpc3QsIHRoaXMgaG9vayBtYXkgYmUgY2FsbGVkIGluIGludGVybGFjZWQKLSAgICAg
ICAgb3JkZXIgd2l0aCByZXBvcnRzIGZyb20gb3RoZXIgbm9kZXMuIGZvciBleGFtcGxlOgotCi0g
ICAgICAgIHVzdWFsIGNhbGwgb3JkZXI6Ci0gICAgICAgICAgICAtPiBzZXR1cCBub2RlMQotICAg
ICAgICAgICAgLT4gY2FsbCBub2RlMQotICAgICAgICAgICAgLT4gdGVhcmRvd24gbm9kZTEKLSAg
ICAgICAgICAgIC0+IHNldHVwIG5vZGUyCi0gICAgICAgICAgICAtPiBjYWxsIG5vZGUyCi0gICAg
ICAgICAgICAtPiB0ZWFyZG93biBub2RlMgotCi0gICAgICAgIHBvc3NpYmxlIGNhbGwgb3JkZXIg
aW4geGRpc3Q6Ci0gICAgICAgICAgICAtPiBzZXR1cCBub2RlMQotICAgICAgICAgICAgLT4gY2Fs
bCBub2RlMQotICAgICAgICAgICAgLT4gc2V0dXAgbm9kZTIKLSAgICAgICAgICAgIC0+IGNhbGwg
bm9kZTIKLSAgICAgICAgICAgIC0+IHRlYXJkb3duIG5vZGUyCi0gICAgICAgICAgICAtPiB0ZWFy
ZG93biBub2RlMQotICAgICAgICAiIiIKLSAgICAgICAgY2xvc2VfcmVwb3J0ID0gTm9uZQotICAg
ICAgICBpZiByZXBvcnQucGFzc2VkOgotICAgICAgICAgICAgaWYgcmVwb3J0LndoZW4gPT0gImNh
bGwiOiAgIyBpZ25vcmUgc2V0dXAvdGVhcmRvd24KLSAgICAgICAgICAgICAgICByZXBvcnRlciA9
IHNlbGYuX29wZW50ZXN0Y2FzZShyZXBvcnQpCi0gICAgICAgICAgICAgICAgcmVwb3J0ZXIuYXBw
ZW5kX3Bhc3MocmVwb3J0KQotICAgICAgICBlbGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgICAg
ICBpZiByZXBvcnQud2hlbiA9PSAidGVhcmRvd24iOgotICAgICAgICAgICAgICAgICMgVGhlIGZv
bGxvd2luZyB2YXJzIGFyZSBuZWVkZWQgd2hlbiB4ZGlzdCBwbHVnaW4gaXMgdXNlZAotICAgICAg
ICAgICAgICAgIHJlcG9ydF93aWQgPSBnZXRhdHRyKHJlcG9ydCwgIndvcmtlcl9pZCIsIE5vbmUp
Ci0gICAgICAgICAgICAgICAgcmVwb3J0X2lpID0gZ2V0YXR0cihyZXBvcnQsICJpdGVtX2luZGV4
IiwgTm9uZSkKLSAgICAgICAgICAgICAgICBjbG9zZV9yZXBvcnQgPSBuZXh0KAotICAgICAgICAg
ICAgICAgICAgICAocmVwIGZvciByZXAgaW4gc2VsZi5vcGVuX3JlcG9ydHMKLSAgICAgICAgICAg
ICAgICAgICAgIGlmIChyZXAubm9kZWlkID09IHJlcG9ydC5ub2RlaWQgYW5kCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgZ2V0YXR0cihyZXAsICJpdGVtX2luZGV4IiwgTm9uZSkgPT0gcmVwb3J0
X2lpIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIocmVwLCAid29ya2VyX2lk
IiwgTm9uZSkgPT0gcmVwb3J0X3dpZAotICAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgICAgICAgICAgICksIE5vbmUpCi0gICAgICAgICAgICAgICAgaWYgY2xvc2VfcmVwb3J0
OgotICAgICAgICAgICAgICAgICAgICAjIFdlIG5lZWQgdG8gb3BlbiBuZXcgdGVzdGNhc2UgaW4g
Y2FzZSB3ZSBoYXZlIGZhaWx1cmUgaW4KLSAgICAgICAgICAgICAgICAgICAgIyBjYWxsIGFuZCBl
cnJvciBpbiB0ZWFyZG93biBpbiBvcmRlciB0byBmb2xsb3cganVuaXQKLSAgICAgICAgICAgICAg
ICAgICAgIyBzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5maW5hbGl6ZShjbG9zZV9y
ZXBvcnQpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuY250X2RvdWJsZV9mYWlsX3Rlc3RzICs9
IDEKLSAgICAgICAgICAgIHJlcG9ydGVyID0gc2VsZi5fb3BlbnRlc3RjYXNlKHJlcG9ydCkKLSAg
ICAgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJjYWxsIjoKLSAgICAgICAgICAgICAgICByZXBv
cnRlci5hcHBlbmRfZmFpbHVyZShyZXBvcnQpCi0gICAgICAgICAgICAgICAgc2VsZi5vcGVuX3Jl
cG9ydHMuYXBwZW5kKHJlcG9ydCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
cmVwb3J0ZXIuYXBwZW5kX2Vycm9yKHJlcG9ydCkKLSAgICAgICAgZWxpZiByZXBvcnQuc2tpcHBl
ZDoKLSAgICAgICAgICAgIHJlcG9ydGVyID0gc2VsZi5fb3BlbnRlc3RjYXNlKHJlcG9ydCkKLSAg
ICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9za2lwcGVkKHJlcG9ydCkKLSAgICAgICAgc2VsZi51
cGRhdGVfdGVzdGNhc2VfZHVyYXRpb24ocmVwb3J0KQotICAgICAgICBpZiByZXBvcnQud2hlbiA9
PSAidGVhcmRvd24iOgotICAgICAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLl9vcGVudGVzdGNhc2Uo
cmVwb3J0KQotICAgICAgICAgICAgcmVwb3J0ZXIud3JpdGVfY2FwdHVyZWRfb3V0cHV0KHJlcG9y
dCkKLSAgICAgICAgICAgIHNlbGYuZmluYWxpemUocmVwb3J0KQotICAgICAgICAgICAgcmVwb3J0
X3dpZCA9IGdldGF0dHIocmVwb3J0LCAid29ya2VyX2lkIiwgTm9uZSkKLSAgICAgICAgICAgIHJl
cG9ydF9paSA9IGdldGF0dHIocmVwb3J0LCAiaXRlbV9pbmRleCIsIE5vbmUpCi0gICAgICAgICAg
ICBjbG9zZV9yZXBvcnQgPSBuZXh0KAotICAgICAgICAgICAgICAgIChyZXAgZm9yIHJlcCBpbiBz
ZWxmLm9wZW5fcmVwb3J0cwotICAgICAgICAgICAgICAgICBpZiAocmVwLm5vZGVpZCA9PSByZXBv
cnQubm9kZWlkIGFuZAotICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cihyZXAsICJpdGVtX2lu
ZGV4IiwgTm9uZSkgPT0gcmVwb3J0X2lpIGFuZAotICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0
cihyZXAsICJ3b3JrZXJfaWQiLCBOb25lKSA9PSByZXBvcnRfd2lkCi0gICAgICAgICAgICAgICAg
ICAgICApCi0gICAgICAgICAgICAgICAgICksIE5vbmUpCi0gICAgICAgICAgICBpZiBjbG9zZV9y
ZXBvcnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5vcGVuX3JlcG9ydHMucmVtb3ZlKGNsb3NlX3Jl
cG9ydCkKLQotICAgIGRlZiB1cGRhdGVfdGVzdGNhc2VfZHVyYXRpb24oc2VsZiwgcmVwb3J0KToK
LSAgICAgICAgIiIiYWNjdW11bGF0ZXMgdG90YWwgZHVyYXRpb24gZm9yIG5vZGVpZCBmcm9tIGdp
dmVuIHJlcG9ydCBhbmQgdXBkYXRlcwotICAgICAgICB0aGUgSnVuaXQudGVzdGNhc2Ugd2l0aCB0
aGUgbmV3IHRvdGFsIGlmIGFscmVhZHkgY3JlYXRlZC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJl
cG9ydGVyID0gc2VsZi5ub2RlX3JlcG9ydGVyKHJlcG9ydCkKLSAgICAgICAgcmVwb3J0ZXIuZHVy
YXRpb24gKz0gZ2V0YXR0cihyZXBvcnQsICdkdXJhdGlvbicsIDAuMCkKLQotICAgIGRlZiBweXRl
c3RfY29sbGVjdHJlcG9ydChzZWxmLCByZXBvcnQpOgotICAgICAgICBpZiBub3QgcmVwb3J0LnBh
c3NlZDoKLSAgICAgICAgICAgIHJlcG9ydGVyID0gc2VsZi5fb3BlbnRlc3RjYXNlKHJlcG9ydCkK
LSAgICAgICAgICAgIGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgcmVwb3J0ZXIu
YXBwZW5kX2NvbGxlY3RfZXJyb3IocmVwb3J0KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICByZXBvcnRlci5hcHBlbmRfY29sbGVjdF9za2lwcGVkKHJlcG9ydCkKLQotICAgIGRl
ZiBweXRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCBleGNyZXByKToKLSAgICAgICAgcmVwb3J0ZXIg
PSBzZWxmLm5vZGVfcmVwb3J0ZXIoJ2ludGVybmFsJykKLSAgICAgICAgcmVwb3J0ZXIuYXR0cnMu
dXBkYXRlKGNsYXNzbmFtZT0icHl0ZXN0IiwgbmFtZT0naW50ZXJuYWwnKQotICAgICAgICByZXBv
cnRlci5fYWRkX3NpbXBsZShKdW5pdC5lcnJvciwgJ2ludGVybmFsIGVycm9yJywgZXhjcmVwcikK
LQotICAgIGRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlbGYpOgotICAgICAgICBzZWxmLnN1aXRl
X3N0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQotCi0gICAgZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNo
KHNlbGYpOgotICAgICAgICBkaXJuYW1lID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0
aChzZWxmLmxvZ2ZpbGUpKQotICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihkaXJuYW1lKToK
LSAgICAgICAgICAgIG9zLm1ha2VkaXJzKGRpcm5hbWUpCi0gICAgICAgIGxvZ2ZpbGUgPSBvcGVu
KHNlbGYubG9nZmlsZSwgJ3cnLCBlbmNvZGluZz0ndXRmLTgnKQotICAgICAgICBzdWl0ZV9zdG9w
X3RpbWUgPSB0aW1lLnRpbWUoKQotICAgICAgICBzdWl0ZV90aW1lX2RlbHRhID0gc3VpdGVfc3Rv
cF90aW1lIC0gc2VsZi5zdWl0ZV9zdGFydF90aW1lCi0KLSAgICAgICAgbnVtdGVzdHMgPSAoc2Vs
Zi5zdGF0c1sncGFzc2VkJ10gKyBzZWxmLnN0YXRzWydmYWlsdXJlJ10gKwotICAgICAgICAgICAg
ICAgICAgICBzZWxmLnN0YXRzWydza2lwcGVkJ10gKyBzZWxmLnN0YXRzWydlcnJvciddIC0KLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5jbnRfZG91YmxlX2ZhaWxfdGVzdHMpCi0gICAgICAgIGxv
Z2ZpbGUud3JpdGUoJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+JykKLQot
ICAgICAgICBsb2dmaWxlLndyaXRlKEp1bml0LnRlc3RzdWl0ZSgKLSAgICAgICAgICAgIHNlbGYu
X2dldF9nbG9iYWxfcHJvcGVydGllc19ub2RlKCksCi0gICAgICAgICAgICBbeC50b194bWwoKSBm
b3IgeCBpbiBzZWxmLm5vZGVfcmVwb3J0ZXJzX29yZGVyZWRdLAotICAgICAgICAgICAgbmFtZT1z
ZWxmLnN1aXRlX25hbWUsCi0gICAgICAgICAgICBlcnJvcnM9c2VsZi5zdGF0c1snZXJyb3InXSwK
LSAgICAgICAgICAgIGZhaWx1cmVzPXNlbGYuc3RhdHNbJ2ZhaWx1cmUnXSwKLSAgICAgICAgICAg
IHNraXBzPXNlbGYuc3RhdHNbJ3NraXBwZWQnXSwKLSAgICAgICAgICAgIHRlc3RzPW51bXRlc3Rz
LAotICAgICAgICAgICAgdGltZT0iJS4zZiIgJSBzdWl0ZV90aW1lX2RlbHRhLCApLnVuaWNvZGUo
aW5kZW50PTApKQotICAgICAgICBsb2dmaWxlLmNsb3NlKCkKLQotICAgIGRlZiBweXRlc3RfdGVy
bWluYWxfc3VtbWFyeShzZWxmLCB0ZXJtaW5hbHJlcG9ydGVyKToKLSAgICAgICAgdGVybWluYWxy
ZXBvcnRlci53cml0ZV9zZXAoIi0iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZ2VuZXJhdGVkIHhtbCBmaWxlOiAlcyIgJSAoc2VsZi5sb2dmaWxlKSkKLQotICAgIGRlZiBh
ZGRfZ2xvYmFsX3Byb3BlcnR5KHNlbGYsIG5hbWUsIHZhbHVlKToKLSAgICAgICAgc2VsZi5nbG9i
YWxfcHJvcGVydGllcy5hcHBlbmQoKHN0cihuYW1lKSwgYmluX3htbF9lc2NhcGUodmFsdWUpKSkK
LQotICAgIGRlZiBfZ2V0X2dsb2JhbF9wcm9wZXJ0aWVzX25vZGUoc2VsZik6Ci0gICAgICAgICIi
IlJldHVybiBhIEp1bml0IG5vZGUgY29udGFpbmluZyBjdXN0b20gcHJvcGVydGllcywgaWYgYW55
LgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5nbG9iYWxfcHJvcGVydGllczoKLSAgICAg
ICAgICAgIHJldHVybiBKdW5pdC5wcm9wZXJ0aWVzKAotICAgICAgICAgICAgICAgIFsKLSAgICAg
ICAgICAgICAgICAgICAgSnVuaXQucHJvcGVydHkobmFtZT1uYW1lLCB2YWx1ZT12YWx1ZSkKLSAg
ICAgICAgICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlbGYuZ2xvYmFsX3Byb3BlcnRp
ZXMKLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICApCi0gICAgICAgIHJldHVybiAnJwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9sb2dnaW5nLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9sb2dnaW5nLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDRkYjI1
YWQ0NDMxZWZiMTc0ZmNhNWY4YWQ0ODFiZDM5OWU0Y2NkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbG9nZ2luZy5weQor
KysgL2Rldi9udWxsCkBAIC0xLDMzNyArMCwwIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBsb2dnaW5n
Ci1mcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNsb3NpbmcsIGNvbnRleHRtYW5hZ2VyCi1pbXBvcnQg
c3lzCi1pbXBvcnQgc2l4Ci0KLWltcG9ydCBweXRlc3QKLWltcG9ydCBweQotCi0KLURFRkFVTFRf
TE9HX0ZPUk1BVCA9ICclKGZpbGVuYW1lKS0yNXMgJShsaW5lbm8pNGQgJShsZXZlbG5hbWUpLThz
ICUobWVzc2FnZSlzJwotREVGQVVMVF9MT0dfREFURV9GT1JNQVQgPSAnJUg6JU06JVMnCi0KLQot
ZGVmIGdldF9vcHRpb25faW5pKGNvbmZpZywgKm5hbWVzKToKLSAgICBmb3IgbmFtZSBpbiBuYW1l
czoKLSAgICAgICAgcmV0ID0gY29uZmlnLmdldG9wdGlvbihuYW1lKSAgIyAnZGVmYXVsdCcgYXJn
IHdvbid0IHdvcmsgYXMgZXhwZWN0ZWQKLSAgICAgICAgaWYgcmV0IGlzIE5vbmU6Ci0gICAgICAg
ICAgICByZXQgPSBjb25maWcuZ2V0aW5pKG5hbWUpCi0gICAgICAgIGlmIHJldDoKLSAgICAgICAg
ICAgIHJldHVybiByZXQKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgICIi
IkFkZCBvcHRpb25zIHRvIGNvbnRyb2wgbG9nIGNhcHR1cmluZy4iIiIKLSAgICBncm91cCA9IHBh
cnNlci5nZXRncm91cCgnbG9nZ2luZycpCi0KLSAgICBkZWYgYWRkX29wdGlvbl9pbmkob3B0aW9u
LCBkZXN0LCBkZWZhdWx0PU5vbmUsIHR5cGU9Tm9uZSwgKiprd2FyZ3MpOgotICAgICAgICBwYXJz
ZXIuYWRkaW5pKGRlc3QsIGRlZmF1bHQ9ZGVmYXVsdCwgdHlwZT10eXBlLAotICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J2RlZmF1bHQgdmFsdWUgZm9yICcgKyBvcHRpb24pCi0gICAgICAgIGdy
b3VwLmFkZG9wdGlvbihvcHRpb24sIGRlc3Q9ZGVzdCwgKiprd2FyZ3MpCi0KLSAgICBhZGRfb3B0
aW9uX2luaSgKLSAgICAgICAgJy0tbm8tcHJpbnQtbG9ncycsCi0gICAgICAgIGRlc3Q9J2xvZ19w
cmludCcsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBjb25zdD1GYWxzZSwgZGVmYXVsdD1UcnVlLAot
ICAgICAgICB0eXBlPSdib29sJywKLSAgICAgICAgaGVscD0nZGlzYWJsZSBwcmludGluZyBjYXVn
aHQgbG9ncyBvbiBmYWlsZWQgdGVzdHMuJykKLSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAg
Jy0tbG9nLWxldmVsJywKLSAgICAgICAgZGVzdD0nbG9nX2xldmVsJywgZGVmYXVsdD1Ob25lLAot
ICAgICAgICBoZWxwPSdsb2dnaW5nIGxldmVsIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlJykK
LSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAgJy0tbG9nLWZvcm1hdCcsCi0gICAgICAgIGRl
c3Q9J2xvZ19mb3JtYXQnLCBkZWZhdWx0PURFRkFVTFRfTE9HX0ZPUk1BVCwKLSAgICAgICAgaGVs
cD0nbG9nIGZvcm1hdCBhcyB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1vZHVsZS4nKQotICAgIGFkZF9v
cHRpb25faW5pKAotICAgICAgICAnLS1sb2ctZGF0ZS1mb3JtYXQnLAotICAgICAgICBkZXN0PSds
b2dfZGF0ZV9mb3JtYXQnLCBkZWZhdWx0PURFRkFVTFRfTE9HX0RBVEVfRk9STUFULAotICAgICAg
ICBoZWxwPSdsb2cgZGF0ZSBmb3JtYXQgYXMgdXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykK
LSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAgJy0tbG9nLWNsaS1sZXZlbCcsCi0gICAgICAg
IGRlc3Q9J2xvZ19jbGlfbGV2ZWwnLCBkZWZhdWx0PU5vbmUsCi0gICAgICAgIGhlbHA9J2NsaSBs
b2dnaW5nIGxldmVsLicpCi0gICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICctLWxvZy1jbGkt
Zm9ybWF0JywKLSAgICAgICAgZGVzdD0nbG9nX2NsaV9mb3JtYXQnLCBkZWZhdWx0PU5vbmUsCi0g
ICAgICAgIGhlbHA9J2xvZyBmb3JtYXQgYXMgdXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykK
LSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAgJy0tbG9nLWNsaS1kYXRlLWZvcm1hdCcsCi0g
ICAgICAgIGRlc3Q9J2xvZ19jbGlfZGF0ZV9mb3JtYXQnLCBkZWZhdWx0PU5vbmUsCi0gICAgICAg
IGhlbHA9J2xvZyBkYXRlIGZvcm1hdCBhcyB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1vZHVsZS4nKQot
ICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1sb2ctZmlsZScsCi0gICAgICAgIGRlc3Q9
J2xvZ19maWxlJywgZGVmYXVsdD1Ob25lLAotICAgICAgICBoZWxwPSdwYXRoIHRvIGEgZmlsZSB3
aGVuIGxvZ2dpbmcgd2lsbCBiZSB3cml0dGVuIHRvLicpCi0gICAgYWRkX29wdGlvbl9pbmkoCi0g
ICAgICAgICctLWxvZy1maWxlLWxldmVsJywKLSAgICAgICAgZGVzdD0nbG9nX2ZpbGVfbGV2ZWwn
LCBkZWZhdWx0PU5vbmUsCi0gICAgICAgIGhlbHA9J2xvZyBmaWxlIGxvZ2dpbmcgbGV2ZWwuJykK
LSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAgJy0tbG9nLWZpbGUtZm9ybWF0JywKLSAgICAg
ICAgZGVzdD0nbG9nX2ZpbGVfZm9ybWF0JywgZGVmYXVsdD1ERUZBVUxUX0xPR19GT1JNQVQsCi0g
ICAgICAgIGhlbHA9J2xvZyBmb3JtYXQgYXMgdXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykK
LSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAgJy0tbG9nLWZpbGUtZGF0ZS1mb3JtYXQnLAot
ICAgICAgICBkZXN0PSdsb2dfZmlsZV9kYXRlX2Zvcm1hdCcsIGRlZmF1bHQ9REVGQVVMVF9MT0df
REFURV9GT1JNQVQsCi0gICAgICAgIGhlbHA9J2xvZyBkYXRlIGZvcm1hdCBhcyB1c2VkIGJ5IHRo
ZSBsb2dnaW5nIG1vZHVsZS4nKQotCi0KLUBjb250ZXh0bWFuYWdlcgotZGVmIGxvZ2dpbmdfdXNp
bmdfaGFuZGxlcihoYW5kbGVyLCBsb2dnZXI9Tm9uZSk6Ci0gICAgIiIiQ29udGV4dCBtYW5hZ2Vy
IHRoYXQgc2FmZWx5IHJlZ2lzdGVycyBhIGdpdmVuIGhhbmRsZXIuIiIiCi0gICAgbG9nZ2VyID0g
bG9nZ2VyIG9yIGxvZ2dpbmcuZ2V0TG9nZ2VyKGxvZ2dlcikKLQotICAgIGlmIGhhbmRsZXIgaW4g
bG9nZ2VyLmhhbmRsZXJzOiAgIyByZWVudHJhbmN5Ci0gICAgICAgICMgQWRkaW5nIHRoZSBzYW1l
IGhhbmRsZXIgdHdpY2Ugd291bGQgY29uZnVzZSBsb2dnaW5nIHN5c3RlbS4KLSAgICAgICAgIyBK
dXN0IGRvbid0IGRvIHRoYXQuCi0gICAgICAgIHlpZWxkCi0gICAgZWxzZToKLSAgICAgICAgbG9n
Z2VyLmFkZEhhbmRsZXIoaGFuZGxlcikKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgeWllbGQK
LSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGxvZ2dlci5yZW1vdmVIYW5kbGVyKGhhbmRs
ZXIpCi0KLQotQGNvbnRleHRtYW5hZ2VyCi1kZWYgY2F0Y2hpbmdfbG9ncyhoYW5kbGVyLCBmb3Jt
YXR0ZXI9Tm9uZSwKLSAgICAgICAgICAgICAgICAgIGxldmVsPWxvZ2dpbmcuTk9UU0VULCBsb2dn
ZXI9Tm9uZSk6Ci0gICAgIiIiQ29udGV4dCBtYW5hZ2VyIHRoYXQgcHJlcGFyZXMgdGhlIHdob2xl
IGxvZ2dpbmcgbWFjaGluZXJ5IHByb3Blcmx5LiIiIgotICAgIGxvZ2dlciA9IGxvZ2dlciBvciBs
b2dnaW5nLmdldExvZ2dlcihsb2dnZXIpCi0KLSAgICBpZiBmb3JtYXR0ZXIgaXMgbm90IE5vbmU6
Ci0gICAgICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKLSAgICBoYW5kbGVyLnNl
dExldmVsKGxldmVsKQotCi0gICAgd2l0aCBsb2dnaW5nX3VzaW5nX2hhbmRsZXIoaGFuZGxlciwg
bG9nZ2VyKToKLSAgICAgICAgb3JpZ19sZXZlbCA9IGxvZ2dlci5sZXZlbAotICAgICAgICBsb2dn
ZXIuc2V0TGV2ZWwobWluKG9yaWdfbGV2ZWwsIGxldmVsKSkKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgeWllbGQgaGFuZGxlcgotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgbG9nZ2Vy
LnNldExldmVsKG9yaWdfbGV2ZWwpCi0KLQotY2xhc3MgTG9nQ2FwdHVyZUhhbmRsZXIobG9nZ2lu
Zy5TdHJlYW1IYW5kbGVyKToKLSAgICAiIiJBIGxvZ2dpbmcgaGFuZGxlciB0aGF0IHN0b3JlcyBs
b2cgcmVjb3JkcyBhbmQgdGhlIGxvZyB0ZXh0LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYp
OgotICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IGxvZyBoYW5kbGVyLiIiIgotICAgICAgICBsb2dn
aW5nLlN0cmVhbUhhbmRsZXIuX19pbml0X18oc2VsZiwgcHkuaW8uVGV4dElPKCkpCi0gICAgICAg
IHNlbGYucmVjb3JkcyA9IFtdCi0KLSAgICBkZWYgZW1pdChzZWxmLCByZWNvcmQpOgotICAgICAg
ICAiIiJLZWVwIHRoZSBsb2cgcmVjb3JkcyBpbiBhIGxpc3QgaW4gYWRkaXRpb24gdG8gdGhlIGxv
ZyB0ZXh0LiIiIgotICAgICAgICBzZWxmLnJlY29yZHMuYXBwZW5kKHJlY29yZCkKLSAgICAgICAg
bG9nZ2luZy5TdHJlYW1IYW5kbGVyLmVtaXQoc2VsZiwgcmVjb3JkKQotCi0KLWNsYXNzIExvZ0Nh
cHR1cmVGaXh0dXJlKG9iamVjdCk6Ci0gICAgIiIiUHJvdmlkZXMgYWNjZXNzIGFuZCBjb250cm9s
IG9mIGxvZyBjYXB0dXJpbmcuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgaXRlbSk6Ci0g
ICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgZnVuY2FyZy4iIiIKLSAgICAgICAgc2VsZi5faXRlbSA9
IGl0ZW0KLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBoYW5kbGVyKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5faXRlbS5jYXRjaF9sb2dfaGFuZGxlcgotCi0gICAgQHByb3BlcnR5Ci0gICAg
ZGVmIHRleHQoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIGxvZyB0ZXh0LiIiIgotICAg
ICAgICByZXR1cm4gc2VsZi5oYW5kbGVyLnN0cmVhbS5nZXR2YWx1ZSgpCi0KLSAgICBAcHJvcGVy
dHkKLSAgICBkZWYgcmVjb3JkcyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJucyB0aGUgbGlzdCBv
ZiBsb2cgcmVjb3Jkcy4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuaGFuZGxlci5yZWNvcmRzCi0K
LSAgICBAcHJvcGVydHkKLSAgICBkZWYgcmVjb3JkX3R1cGxlcyhzZWxmKToKLSAgICAgICAgIiIi
UmV0dXJucyBhIGxpc3Qgb2YgYSBzdHJpcGVkIGRvd24gdmVyc2lvbiBvZiBsb2cgcmVjb3JkcyBp
bnRlbmRlZAotICAgICAgICBmb3IgdXNlIGluIGFzc2VydGlvbiBjb21wYXJpc29uLgotCi0gICAg
ICAgIFRoZSBmb3JtYXQgb2YgdGhlIHR1cGxlIGlzOgotCi0gICAgICAgICAgICAobG9nZ2VyX25h
bWUsIGxvZ19sZXZlbCwgbWVzc2FnZSkKLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBbKHIu
bmFtZSwgci5sZXZlbG5vLCByLmdldE1lc3NhZ2UoKSkgZm9yIHIgaW4gc2VsZi5yZWNvcmRzXQot
Ci0gICAgZGVmIGNsZWFyKHNlbGYpOgotICAgICAgICAiIiJSZXNldCB0aGUgbGlzdCBvZiBsb2cg
cmVjb3Jkcy4iIiIKLSAgICAgICAgc2VsZi5oYW5kbGVyLnJlY29yZHMgPSBbXQotCi0gICAgZGVm
IHNldF9sZXZlbChzZWxmLCBsZXZlbCwgbG9nZ2VyPU5vbmUpOgotICAgICAgICAiIiJTZXRzIHRo
ZSBsZXZlbCBmb3IgY2FwdHVyaW5nIG9mIGxvZ3MuCi0KLSAgICAgICAgQnkgZGVmYXVsdCwgdGhl
IGxldmVsIGlzIHNldCBvbiB0aGUgaGFuZGxlciB1c2VkIHRvIGNhcHR1cmUKLSAgICAgICAgbG9n
cy4gU3BlY2lmeSBhIGxvZ2dlciBuYW1lIHRvIGluc3RlYWQgc2V0IHRoZSBsZXZlbCBvZiBhbnkK
LSAgICAgICAgbG9nZ2VyLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgbG9nZ2VyIGlzIE5vbmU6
Ci0gICAgICAgICAgICBsb2dnZXIgPSBzZWxmLmhhbmRsZXIKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKGxvZ2dlcikKLSAgICAgICAgbG9nZ2Vy
LnNldExldmVsKGxldmVsKQotCi0gICAgQGNvbnRleHRtYW5hZ2VyCi0gICAgZGVmIGF0X2xldmVs
KHNlbGYsIGxldmVsLCBsb2dnZXI9Tm9uZSk6Ci0gICAgICAgICIiIkNvbnRleHQgbWFuYWdlciB0
aGF0IHNldHMgdGhlIGxldmVsIGZvciBjYXB0dXJpbmcgb2YgbG9ncy4KLQotICAgICAgICBCeSBk
ZWZhdWx0LCB0aGUgbGV2ZWwgaXMgc2V0IG9uIHRoZSBoYW5kbGVyIHVzZWQgdG8gY2FwdHVyZQot
ICAgICAgICBsb2dzLiBTcGVjaWZ5IGEgbG9nZ2VyIG5hbWUgdG8gaW5zdGVhZCBzZXQgdGhlIGxl
dmVsIG9mIGFueQotICAgICAgICBsb2dnZXIuCi0gICAgICAgICIiIgotICAgICAgICBpZiBsb2dn
ZXIgaXMgTm9uZToKLSAgICAgICAgICAgIGxvZ2dlciA9IHNlbGYuaGFuZGxlcgotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIobG9nZ2VyKQotCi0g
ICAgICAgIG9yaWdfbGV2ZWwgPSBsb2dnZXIubGV2ZWwKLSAgICAgICAgbG9nZ2VyLnNldExldmVs
KGxldmVsKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB5aWVsZAotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgbG9nZ2VyLnNldExldmVsKG9yaWdfbGV2ZWwpCi0KLQotQHB5dGVzdC5m
aXh0dXJlCi1kZWYgY2FwbG9nKHJlcXVlc3QpOgotICAgICIiIkFjY2VzcyBhbmQgY29udHJvbCBs
b2cgY2FwdHVyaW5nLgotCi0gICAgQ2FwdHVyZWQgbG9ncyBhcmUgYXZhaWxhYmxlIHRocm91Z2gg
dGhlIGZvbGxvd2luZyBtZXRob2RzOjoKLQotICAgICogY2FwbG9nLnRleHQoKSAgICAgICAgICAt
PiBzdHJpbmcgY29udGFpbmluZyBmb3JtYXR0ZWQgbG9nIG91dHB1dAotICAgICogY2FwbG9nLnJl
Y29yZHMoKSAgICAgICAtPiBsaXN0IG9mIGxvZ2dpbmcuTG9nUmVjb3JkIGluc3RhbmNlcwotICAg
ICogY2FwbG9nLnJlY29yZF90dXBsZXMoKSAtPiBsaXN0IG9mIChsb2dnZXJfbmFtZSwgbGV2ZWws
IG1lc3NhZ2UpIHR1cGxlcwotICAgICIiIgotICAgIHJldHVybiBMb2dDYXB0dXJlRml4dHVyZShy
ZXF1ZXN0Lm5vZGUpCi0KLQotZGVmIGdldF9hY3R1YWxfbG9nX2xldmVsKGNvbmZpZywgKnNldHRp
bmdfbmFtZXMpOgotICAgICIiIlJldHVybiB0aGUgYWN0dWFsIGxvZ2dpbmcgbGV2ZWwuIiIiCi0K
LSAgICBmb3Igc2V0dGluZ19uYW1lIGluIHNldHRpbmdfbmFtZXM6Ci0gICAgICAgIGxvZ19sZXZl
bCA9IGNvbmZpZy5nZXRvcHRpb24oc2V0dGluZ19uYW1lKQotICAgICAgICBpZiBsb2dfbGV2ZWwg
aXMgTm9uZToKLSAgICAgICAgICAgIGxvZ19sZXZlbCA9IGNvbmZpZy5nZXRpbmkoc2V0dGluZ19u
YW1lKQotICAgICAgICBpZiBsb2dfbGV2ZWw6Ci0gICAgICAgICAgICBicmVhawotICAgIGVsc2U6
Ci0gICAgICAgIHJldHVybgotCi0gICAgaWYgaXNpbnN0YW5jZShsb2dfbGV2ZWwsIHNpeC5zdHJp
bmdfdHlwZXMpOgotICAgICAgICBsb2dfbGV2ZWwgPSBsb2dfbGV2ZWwudXBwZXIoKQotICAgIHRy
eToKLSAgICAgICAgcmV0dXJuIGludChnZXRhdHRyKGxvZ2dpbmcsIGxvZ19sZXZlbCwgbG9nX2xl
dmVsKSkKLSAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgIyBQeXRob24gbG9nZ2luZyBk
b2VzIG5vdCByZWNvZ25pc2UgdGhpcyBhcyBhIGxvZ2dpbmcgbGV2ZWwKLSAgICAgICAgcmFpc2Ug
cHl0ZXN0LlVzYWdlRXJyb3IoCi0gICAgICAgICAgICAiJ3swfScgaXMgbm90IHJlY29nbml6ZWQg
YXMgYSBsb2dnaW5nIGxldmVsIG5hbWUgZm9yICIKLSAgICAgICAgICAgICInezF9Jy4gUGxlYXNl
IGNvbnNpZGVyIHBhc3NpbmcgdGhlICIKLSAgICAgICAgICAgICJsb2dnaW5nIGxldmVsIG51bSBp
bnN0ZWFkLiIuZm9ybWF0KAotICAgICAgICAgICAgICAgIGxvZ19sZXZlbCwKLSAgICAgICAgICAg
ICAgICBzZXR0aW5nX25hbWUpKQotCi0KLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0g
ICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoTG9nZ2luZ1BsdWdpbihjb25maWcpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2dnaW5nLXBsdWdpbicpCi0KLQot
Y2xhc3MgTG9nZ2luZ1BsdWdpbihvYmplY3QpOgotICAgICIiIkF0dGFjaGVzIHRvIHRoZSBsb2dn
aW5nIG1vZHVsZSBhbmQgY2FwdHVyZXMgbG9nIG1lc3NhZ2VzIGZvciBlYWNoIHRlc3QuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKLSAgICAgICAgIiIiQ3JlYXRl
cyBhIG5ldyBwbHVnaW4gdG8gY2FwdHVyZSBsb2cgbWVzc2FnZXMuCi0KLSAgICAgICAgVGhlIGZv
cm1hdHRlciBjYW4gYmUgc2FmZWx5IHNoYXJlZCBhY3Jvc3MgYWxsIGhhbmRsZXJzIHNvCi0gICAg
ICAgIGNyZWF0ZSBhIHNpbmdsZSBvbmUgZm9yIHRoZSBlbnRpcmUgdGVzdCBzZXNzaW9uIGhlcmUu
Ci0gICAgICAgICIiIgotICAgICAgICBzZWxmLmxvZ19jbGlfbGV2ZWwgPSBnZXRfYWN0dWFsX2xv
Z19sZXZlbCgKLSAgICAgICAgICAgIGNvbmZpZywgJ2xvZ19jbGlfbGV2ZWwnLCAnbG9nX2xldmVs
Jykgb3IgbG9nZ2luZy5XQVJOSU5HCi0KLSAgICAgICAgc2VsZi5wcmludF9sb2dzID0gZ2V0X29w
dGlvbl9pbmkoY29uZmlnLCAnbG9nX3ByaW50JykKLSAgICAgICAgc2VsZi5mb3JtYXR0ZXIgPSBs
b2dnaW5nLkZvcm1hdHRlcigKLSAgICAgICAgICAgIGdldF9vcHRpb25faW5pKGNvbmZpZywgJ2xv
Z19mb3JtYXQnKSwKLSAgICAgICAgICAgIGdldF9vcHRpb25faW5pKGNvbmZpZywgJ2xvZ19kYXRl
X2Zvcm1hdCcpKQotCi0gICAgICAgIGxvZ19jbGlfaGFuZGxlciA9IGxvZ2dpbmcuU3RyZWFtSGFu
ZGxlcihzeXMuc3RkZXJyKQotICAgICAgICBsb2dfY2xpX2Zvcm1hdCA9IGdldF9vcHRpb25faW5p
KAotICAgICAgICAgICAgY29uZmlnLCAnbG9nX2NsaV9mb3JtYXQnLCAnbG9nX2Zvcm1hdCcpCi0g
ICAgICAgIGxvZ19jbGlfZGF0ZV9mb3JtYXQgPSBnZXRfb3B0aW9uX2luaSgKLSAgICAgICAgICAg
IGNvbmZpZywgJ2xvZ19jbGlfZGF0ZV9mb3JtYXQnLCAnbG9nX2RhdGVfZm9ybWF0JykKLSAgICAg
ICAgbG9nX2NsaV9mb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcigKLSAgICAgICAgICAgIGxv
Z19jbGlfZm9ybWF0LAotICAgICAgICAgICAgZGF0ZWZtdD1sb2dfY2xpX2RhdGVfZm9ybWF0KQot
ICAgICAgICBzZWxmLmxvZ19jbGlfaGFuZGxlciA9IGxvZ19jbGlfaGFuZGxlciAgIyBuZWVkZWQg
Zm9yIGEgc2luZ2xlIHVuaXR0ZXN0Ci0gICAgICAgIHNlbGYubGl2ZV9sb2dzID0gY2F0Y2hpbmdf
bG9ncyhsb2dfY2xpX2hhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb3JtYXR0ZXI9bG9nX2NsaV9mb3JtYXR0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXZlbD1zZWxmLmxvZ19jbGlfbGV2ZWwpCi0KLSAgICAgICAgbG9n
X2ZpbGUgPSBnZXRfb3B0aW9uX2luaShjb25maWcsICdsb2dfZmlsZScpCi0gICAgICAgIGlmIGxv
Z19maWxlOgotICAgICAgICAgICAgc2VsZi5sb2dfZmlsZV9sZXZlbCA9IGdldF9hY3R1YWxfbG9n
X2xldmVsKAotICAgICAgICAgICAgICAgIGNvbmZpZywgJ2xvZ19maWxlX2xldmVsJykgb3IgbG9n
Z2luZy5XQVJOSU5HCi0KLSAgICAgICAgICAgIGxvZ19maWxlX2Zvcm1hdCA9IGdldF9vcHRpb25f
aW5pKAotICAgICAgICAgICAgICAgIGNvbmZpZywgJ2xvZ19maWxlX2Zvcm1hdCcsICdsb2dfZm9y
bWF0JykKLSAgICAgICAgICAgIGxvZ19maWxlX2RhdGVfZm9ybWF0ID0gZ2V0X29wdGlvbl9pbmko
Ci0gICAgICAgICAgICAgICAgY29uZmlnLCAnbG9nX2ZpbGVfZGF0ZV9mb3JtYXQnLCAnbG9nX2Rh
dGVfZm9ybWF0JykKLSAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVfaGFuZGxlciA9IGxvZ2dpbmcu
RmlsZUhhbmRsZXIoCi0gICAgICAgICAgICAgICAgbG9nX2ZpbGUsCi0gICAgICAgICAgICAgICAg
IyBFYWNoIHB5dGVzdCBydW50ZXN0cyBzZXNzaW9uIHdpbGwgd3JpdGUgdG8gYSBjbGVhbiBsb2dm
aWxlCi0gICAgICAgICAgICAgICAgbW9kZT0ndycpCi0gICAgICAgICAgICBsb2dfZmlsZV9mb3Jt
YXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcigKLSAgICAgICAgICAgICAgICBsb2dfZmlsZV9mb3Jt
YXQsCi0gICAgICAgICAgICAgICAgZGF0ZWZtdD1sb2dfZmlsZV9kYXRlX2Zvcm1hdCkKLSAgICAg
ICAgICAgIHNlbGYubG9nX2ZpbGVfaGFuZGxlci5zZXRGb3JtYXR0ZXIobG9nX2ZpbGVfZm9ybWF0
dGVyKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5sb2dfZmlsZV9oYW5kbGVyID0g
Tm9uZQotCi0gICAgQGNvbnRleHRtYW5hZ2VyCi0gICAgZGVmIF9ydW50ZXN0X2ZvcihzZWxmLCBp
dGVtLCB3aGVuKToKLSAgICAgICAgIiIiSW1wbGVtZW50cyB0aGUgaW50ZXJuYWxzIG9mIHB5dGVz
dF9ydW50ZXN0X3h4eCgpIGhvb2suIiIiCi0gICAgICAgIHdpdGggY2F0Y2hpbmdfbG9ncyhMb2dD
YXB0dXJlSGFuZGxlcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyPXNl
bGYuZm9ybWF0dGVyKSBhcyBsb2dfaGFuZGxlcjoKLSAgICAgICAgICAgIGl0ZW0uY2F0Y2hfbG9n
X2hhbmRsZXIgPSBsb2dfaGFuZGxlcgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IHlpZWxkICAjIHJ1biB0ZXN0Ci0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAg
IGRlbCBpdGVtLmNhdGNoX2xvZ19oYW5kbGVyCi0KLSAgICAgICAgICAgIGlmIHNlbGYucHJpbnRf
bG9nczoKLSAgICAgICAgICAgICAgICAjIEFkZCBhIGNhcHR1cmVkIGxvZyBzZWN0aW9uIHRvIHRo
ZSByZXBvcnQuCi0gICAgICAgICAgICAgICAgbG9nID0gbG9nX2hhbmRsZXIuc3RyZWFtLmdldHZh
bHVlKCkuc3RyaXAoKQotICAgICAgICAgICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKHdo
ZW4sICdsb2cnLCBsb2cpCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUp
Ci0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKHNlbGYsIGl0ZW0pOgotICAgICAgICB3aXRo
IHNlbGYuX3J1bnRlc3RfZm9yKGl0ZW0sICdzZXR1cCcpOgotICAgICAgICAgICAgeWllbGQKLQot
ICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X3J1
bnRlc3RfY2FsbChzZWxmLCBpdGVtKToKLSAgICAgICAgd2l0aCBzZWxmLl9ydW50ZXN0X2Zvcihp
dGVtLCAnY2FsbCcpOgotICAgICAgICAgICAgeWllbGQKLQotICAgIEBweXRlc3QuaG9va2ltcGwo
aG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oc2VsZiwg
aXRlbSk6Ci0gICAgICAgIHdpdGggc2VsZi5fcnVudGVzdF9mb3IoaXRlbSwgJ3RlYXJkb3duJyk6
Ci0gICAgICAgICAgICB5aWVsZAotCi0gICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1U
cnVlKQotICAgIGRlZiBweXRlc3RfcnVudGVzdGxvb3Aoc2VsZiwgc2Vzc2lvbik6Ci0gICAgICAg
ICIiIlJ1bnMgYWxsIGNvbGxlY3RlZCB0ZXN0IGl0ZW1zLiIiIgotICAgICAgICB3aXRoIHNlbGYu
bGl2ZV9sb2dzOgotICAgICAgICAgICAgaWYgc2VsZi5sb2dfZmlsZV9oYW5kbGVyIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgICAgIHdpdGggY2xvc2luZyhzZWxmLmxvZ19maWxlX2hhbmRsZXIp
OgotICAgICAgICAgICAgICAgICAgICB3aXRoIGNhdGNoaW5nX2xvZ3Moc2VsZi5sb2dfZmlsZV9o
YW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWw9c2Vs
Zi5sb2dfZmlsZV9sZXZlbCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCAgIyBydW4g
YWxsIHRoZSB0ZXN0cwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB5aWVsZCAg
IyBydW4gYWxsIHRoZSB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYWlu
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYWluLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyNTU1NDA5OGRhYzI5OWY2ZDljNzFkMmJmMTkzOWY4YWVhNDMzMTExLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvbWFpbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDgyMSArMCwwIEBACi0iIiIgY29yZSBpbXBs
ZW1lbnRhdGlvbiBvZiB0ZXN0aW5nIHByb2Nlc3M6IGluaXQsIHNlc3Npb24sIHJ1bnRlc3QgbG9v
cC4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBmdW5jdG9vbHMKLWltcG9ydCBvcwotaW1wb3J0IHNp
eAotaW1wb3J0IHN5cwotCi1pbXBvcnQgX3B5dGVzdAotZnJvbSBfcHl0ZXN0IGltcG9ydCBub2Rl
cwotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWltcG9ydCBweQotdHJ5OgotICAgIGZyb20gY29sbGVj
dGlvbnMgaW1wb3J0IE11dGFibGVNYXBwaW5nIGFzIE1hcHBpbmdNaXhpbgotZXhjZXB0IEltcG9y
dEVycm9yOgotICAgIGZyb20gVXNlckRpY3QgaW1wb3J0IERpY3RNaXhpbiBhcyBNYXBwaW5nTWl4
aW4KLQotZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgZGlyZWN0b3J5X2FyZywgVXNhZ2VFcnJv
ciwgaG9va2ltcGwKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZXhpdAotZnJvbSBfcHl0
ZXN0LnJ1bm5lciBpbXBvcnQgY29sbGVjdF9vbmVfbm9kZQotCi10cmFjZWJhY2tjdXRkaXIgPSBw
eS5wYXRoLmxvY2FsKF9weXRlc3QuX19maWxlX18pLmRpcnBhdGgoKQotCi0jIGV4aXRjb2RlcyBm
b3IgdGhlIGNvbW1hbmQgbGluZQotRVhJVF9PSyA9IDAKLUVYSVRfVEVTVFNGQUlMRUQgPSAxCi1F
WElUX0lOVEVSUlVQVEVEID0gMgotRVhJVF9JTlRFUk5BTEVSUk9SID0gMwotRVhJVF9VU0FHRUVS
Uk9SID0gNAotRVhJVF9OT1RFU1RTQ09MTEVDVEVEID0gNQotCi0KLWRlZiBweXRlc3RfYWRkb3B0
aW9uKHBhcnNlcik6Ci0gICAgcGFyc2VyLmFkZGluaSgibm9yZWN1cnNlZGlycyIsICJkaXJlY3Rv
cnkgcGF0dGVybnMgdG8gYXZvaWQgZm9yIHJlY3Vyc2lvbiIsCi0gICAgICAgICAgICAgICAgICB0
eXBlPSJhcmdzIiwgZGVmYXVsdD1bJy4qJywgJ2J1aWxkJywgJ2Rpc3QnLCAnQ1ZTJywgJ19kYXJj
cycsICd7YXJjaH0nLCAnKi5lZ2cnLCAndmVudiddKQotICAgIHBhcnNlci5hZGRpbmkoInRlc3Rw
YXRocyIsICJkaXJlY3RvcmllcyB0byBzZWFyY2ggZm9yIHRlc3RzIHdoZW4gbm8gZmlsZXMgb3Ig
ZGlyZWN0b3JpZXMgYXJlIGdpdmVuIGluIHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImNvbW1hbmQgbGluZS4iLAotICAgICAgICAgICAgICAgICAgdHlwZT0iYXJncyIsIGRl
ZmF1bHQ9W10pCi0gICAgIyBwYXJzZXIuYWRkaW5pKCJkaXJwYXR0ZXJucyIsCi0gICAgIyAgICAi
cGF0dGVybnMgc3BlY2lmeWluZyBwb3NzaWJsZSBsb2NhdGlvbnMgb2YgdGVzdCBmaWxlcyIsCi0g
ICAgIyAgICB0eXBlPSJsaW5lbGlzdCIsIGRlZmF1bHQ9WyIqKi90ZXN0XyoudHh0IiwKLSAgICAj
ICAgICAgICAgICAgIioqL3Rlc3RfKi5weSIsICIqKi8qX3Rlc3QucHkiXQotICAgICMgKQotICAg
IGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJnZW5lcmFsIiwgInJ1bm5pbmcgYW5kIHNlbGVjdGlv
biBvcHRpb25zIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCcteCcsICctLWV4aXRmaXJzdCcsIGFj
dGlvbj0ic3RvcmVfY29uc3QiLAotICAgICAgICAgICAgICAgICAgICAgZGVzdD0ibWF4ZmFpbCIs
IGNvbnN0PTEsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJleGl0IGluc3RhbnRseSBvbiBm
aXJzdCBlcnJvciBvciBmYWlsZWQgdGVzdC4iKSwKLSAgICBncm91cC5fYWRkb3B0aW9uKCctLW1h
eGZhaWwnLCBtZXRhdmFyPSJudW0iLAotICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9y
ZSIsIHR5cGU9aW50LCBkZXN0PSJtYXhmYWlsIiwgZGVmYXVsdD0wLAotICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iZXhpdCBhZnRlciBmaXJzdCBudW0gZmFpbHVyZXMgb3IgZXJyb3JzLiIpCi0g
ICAgZ3JvdXAuX2FkZG9wdGlvbignLS1zdHJpY3QnLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAg
ICAgICAgICAgICAgICAgICAgaGVscD0ibWFya3Mgbm90IHJlZ2lzdGVyZWQgaW4gY29uZmlndXJh
dGlvbiBmaWxlIHJhaXNlIGVycm9ycy4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24oIi1jIiwgbWV0
YXZhcj0iZmlsZSIsIHR5cGU9c3RyLCBkZXN0PSJpbmlmaWxlbmFtZSIsCi0gICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJsb2FkIGNvbmZpZ3VyYXRpb24gZnJvbSBgZmlsZWAgaW5zdGVhZCBvZiB0
cnlpbmcgdG8gbG9jYXRlIG9uZSBvZiB0aGUgaW1wbGljaXQgIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAiY29uZmlndXJhdGlvbiBmaWxlcy4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24oIi0t
Y29udGludWUtb24tY29sbGVjdGlvbi1lcnJvcnMiLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgZGVzdD0iY29udGludWVfb25fY29sbGVj
dGlvbl9lcnJvcnMiLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0iRm9yY2UgdGVzdCBleGVj
dXRpb24gZXZlbiBpZiBjb2xsZWN0aW9uIGVycm9ycyBvY2N1ci4iKQotCi0gICAgZ3JvdXAgPSBw
YXJzZXIuZ2V0Z3JvdXAoImNvbGxlY3QiLCAiY29sbGVjdGlvbiIpCi0gICAgZ3JvdXAuYWRkb3B0
aW9uKCctLWNvbGxlY3Rvbmx5JywgJy0tY29sbGVjdC1vbmx5JywgYWN0aW9uPSJzdG9yZV90cnVl
IiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0ib25seSBjb2xsZWN0IHRlc3RzLCBkb24ndCBl
eGVjdXRlIHRoZW0uIiksCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLXB5YXJncycsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9InRyeSB0byBpbnRlcnByZXQg
YWxsIGFyZ3VtZW50cyBhcyBweXRob24gcGFja2FnZXMuIikKLSAgICBncm91cC5hZGRvcHRpb24o
Ii0taWdub3JlIiwgYWN0aW9uPSJhcHBlbmQiLCBtZXRhdmFyPSJwYXRoIiwKLSAgICAgICAgICAg
ICAgICAgICAgaGVscD0iaWdub3JlIHBhdGggZHVyaW5nIGNvbGxlY3Rpb24gKG11bHRpLWFsbG93
ZWQpLiIpCi0gICAgIyB3aGVuIGNoYW5naW5nIHRoaXMgdG8gLS1jb25mLWN1dC1kaXIsIGNvbmZp
Zy5weSBDb25mdGVzdC5zZXRpbml0aWFsCi0gICAgIyBuZWVkcyB1cGdyYWRpbmcgYXMgd2VsbAot
ICAgIGdyb3VwLmFkZG9wdGlvbignLS1jb25mY3V0ZGlyJywgZGVzdD0iY29uZmN1dGRpciIsIGRl
ZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgbWV0YXZhcj0iZGlyIiwgdHlwZT1mdW5j
dG9vbHMucGFydGlhbChkaXJlY3RvcnlfYXJnLCBvcHRuYW1lPSItLWNvbmZjdXRkaXIiKSwKLSAg
ICAgICAgICAgICAgICAgICAgaGVscD0ib25seSBsb2FkIGNvbmZ0ZXN0LnB5J3MgcmVsYXRpdmUg
dG8gc3BlY2lmaWVkIGRpci4iKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1ub2NvbmZ0ZXN0Jywg
YWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgZGVzdD0ibm9jb25mdGVz
dCIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9IkRvbid0IGxvYWQg
YW55IGNvbmZ0ZXN0LnB5IGZpbGVzLiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLWtlZXBkdXBs
aWNhdGVzJywgJy0ta2VlcC1kdXBsaWNhdGVzJywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAg
ICAgICAgICAgICAgICAgZGVzdD0ia2VlcGR1cGxpY2F0ZXMiLCBkZWZhdWx0PUZhbHNlLAotICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJLZWVwIGR1cGxpY2F0ZSB0ZXN0cy4iKQotICAgIGdyb3Vw
LmFkZG9wdGlvbignLS1jb2xsZWN0LWluLXZpcnR1YWxlbnYnLCBhY3Rpb249J3N0b3JlX3RydWUn
LAotICAgICAgICAgICAgICAgICAgICBkZXN0PSdjb2xsZWN0X2luX3ZpcnR1YWxlbnYnLCBkZWZh
dWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBpZ25vcmUgdGVzdHMg
aW4gYSBsb2NhbCB2aXJ0dWFsZW52IGRpcmVjdG9yeSIpCi0KLSAgICBncm91cCA9IHBhcnNlci5n
ZXRncm91cCgiZGVidWdjb25maWciLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0
IHNlc3Npb24gZGVidWdnaW5nIGFuZCBjb25maWd1cmF0aW9uIikKLSAgICBncm91cC5hZGRvcHRp
b24oJy0tYmFzZXRlbXAnLCBkZXN0PSJiYXNldGVtcCIsIGRlZmF1bHQ9Tm9uZSwgbWV0YXZhcj0i
ZGlyIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0iYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5
IGZvciB0aGlzIHRlc3QgcnVuLiIpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToK
LSAgICBfX2ltcG9ydF9fKCdweXRlc3QnKS5jb25maWcgPSBjb25maWcgICMgY29tcGF0aWJpbHRp
eQotCi0KLWRlZiB3cmFwX3Nlc3Npb24oY29uZmlnLCBkb2l0KToKLSAgICAiIiJTa2VsZXRvbiBj
b21tYW5kIGxpbmUgcHJvZ3JhbSIiIgotICAgIHNlc3Npb24gPSBTZXNzaW9uKGNvbmZpZykKLSAg
ICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElUX09LCi0gICAgaW5pdHN0YXRlID0gMAotICAgIHRy
eToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29uZmlnLl9kb19jb25maWd1cmUoKQotICAg
ICAgICAgICAgaW5pdHN0YXRlID0gMQotICAgICAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nl
c3Npb25zdGFydChzZXNzaW9uPXNlc3Npb24pCi0gICAgICAgICAgICBpbml0c3RhdGUgPSAyCi0g
ICAgICAgICAgICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBkb2l0KGNvbmZpZywgc2Vzc2lvbikgb3Ig
MAotICAgICAgICBleGNlcHQgVXNhZ2VFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAg
IGV4Y2VwdCBGYWlsZWQ6Ci0gICAgICAgICAgICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElUX1RF
U1RTRkFJTEVECi0gICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgICAg
IGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQotICAgICAgICAgICAgaWYg
aW5pdHN0YXRlIDwgMiBhbmQgaXNpbnN0YW5jZShleGNpbmZvLnZhbHVlLCBleGl0LkV4Y2VwdGlv
bik6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnezB9OiB7MX1cbicuZm9ybWF0
KAotICAgICAgICAgICAgICAgICAgICBleGNpbmZvLnR5cGVuYW1lLCBleGNpbmZvLnZhbHVlLm1z
ZykpCi0gICAgICAgICAgICBjb25maWcuaG9vay5weXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KGV4
Y2luZm89ZXhjaW5mbykKLSAgICAgICAgICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9IEVYSVRfSU5U
RVJSVVBURUQKLSAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgICAgICBleGNpbmZvID0g
X3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKLSAgICAgICAgICAgIGNvbmZpZy5ub3RpZnlf
ZXhjZXB0aW9uKGV4Y2luZm8sIGNvbmZpZy5vcHRpb24pCi0gICAgICAgICAgICBzZXNzaW9uLmV4
aXRzdGF0dXMgPSBFWElUX0lOVEVSTkFMRVJST1IKLSAgICAgICAgICAgIGlmIGV4Y2luZm8uZXJy
aXNpbnN0YW5jZShTeXN0ZW1FeGl0KToKLSAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRl
KCJtYWlubG9vcDogY2F1Z2h0IFNwdXJpb3VzIFN5c3RlbUV4aXQhXG4iKQotCi0gICAgZmluYWxs
eToKLSAgICAgICAgZXhjaW5mbyA9IE5vbmUgICMgRXhwbGljaXRseSBicmVhayByZWZlcmVuY2Ug
Y3ljbGUuCi0gICAgICAgIHNlc3Npb24uc3RhcnRkaXIuY2hkaXIoKQotICAgICAgICBpZiBpbml0
c3RhdGUgPj0gMjoKLSAgICAgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9zZXNzaW9uZmluaXNo
KAotICAgICAgICAgICAgICAgIHNlc3Npb249c2Vzc2lvbiwKLSAgICAgICAgICAgICAgICBleGl0
c3RhdHVzPXNlc3Npb24uZXhpdHN0YXR1cykKLSAgICAgICAgY29uZmlnLl9lbnN1cmVfdW5jb25m
aWd1cmUoKQotICAgIHJldHVybiBzZXNzaW9uLmV4aXRzdGF0dXMKLQotCi1kZWYgcHl0ZXN0X2Nt
ZGxpbmVfbWFpbihjb25maWcpOgotICAgIHJldHVybiB3cmFwX3Nlc3Npb24oY29uZmlnLCBfbWFp
bikKLQotCi1kZWYgX21haW4oY29uZmlnLCBzZXNzaW9uKToKLSAgICAiIiIgZGVmYXVsdCBjb21t
YW5kIGxpbmUgcHJvdG9jb2wgZm9yIGluaXRpYWxpemF0aW9uLCBzZXNzaW9uLAotICAgIHJ1bm5p
bmcgdGVzdHMgYW5kIHJlcG9ydGluZy4gIiIiCi0gICAgY29uZmlnLmhvb2sucHl0ZXN0X2NvbGxl
Y3Rpb24oc2Vzc2lvbj1zZXNzaW9uKQotICAgIGNvbmZpZy5ob29rLnB5dGVzdF9ydW50ZXN0bG9v
cChzZXNzaW9uPXNlc3Npb24pCi0KLSAgICBpZiBzZXNzaW9uLnRlc3RzZmFpbGVkOgotICAgICAg
ICByZXR1cm4gRVhJVF9URVNUU0ZBSUxFRAotICAgIGVsaWYgc2Vzc2lvbi50ZXN0c2NvbGxlY3Rl
ZCA9PSAwOgotICAgICAgICByZXR1cm4gRVhJVF9OT1RFU1RTQ09MTEVDVEVECi0KLQotZGVmIHB5
dGVzdF9jb2xsZWN0aW9uKHNlc3Npb24pOgotICAgIHJldHVybiBzZXNzaW9uLnBlcmZvcm1fY29s
bGVjdCgpCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0bG9vcChzZXNzaW9uKToKLSAgICBpZiAoc2Vz
c2lvbi50ZXN0c2ZhaWxlZCBhbmQKLSAgICAgICAgICAgIG5vdCBzZXNzaW9uLmNvbmZpZy5vcHRp
b24uY29udGludWVfb25fY29sbGVjdGlvbl9lcnJvcnMpOgotICAgICAgICByYWlzZSBzZXNzaW9u
LkludGVycnVwdGVkKAotICAgICAgICAgICAgIiVkIGVycm9ycyBkdXJpbmcgY29sbGVjdGlvbiIg
JSBzZXNzaW9uLnRlc3RzZmFpbGVkKQotCi0gICAgaWYgc2Vzc2lvbi5jb25maWcub3B0aW9uLmNv
bGxlY3Rvbmx5OgotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZm9yIGksIGl0ZW0gaW4gZW51
bWVyYXRlKHNlc3Npb24uaXRlbXMpOgotICAgICAgICBuZXh0aXRlbSA9IHNlc3Npb24uaXRlbXNb
aSArIDFdIGlmIGkgKyAxIDwgbGVuKHNlc3Npb24uaXRlbXMpIGVsc2UgTm9uZQotICAgICAgICBp
dGVtLmNvbmZpZy5ob29rLnB5dGVzdF9ydW50ZXN0X3Byb3RvY29sKGl0ZW09aXRlbSwgbmV4dGl0
ZW09bmV4dGl0ZW0pCi0gICAgICAgIGlmIHNlc3Npb24uc2hvdWxkZmFpbDoKLSAgICAgICAgICAg
IHJhaXNlIHNlc3Npb24uRmFpbGVkKHNlc3Npb24uc2hvdWxkZmFpbCkKLSAgICAgICAgaWYgc2Vz
c2lvbi5zaG91bGRzdG9wOgotICAgICAgICAgICAgcmFpc2Ugc2Vzc2lvbi5JbnRlcnJ1cHRlZChz
ZXNzaW9uLnNob3VsZHN0b3ApCi0gICAgcmV0dXJuIFRydWUKLQotCi1kZWYgX2luX3ZlbnYocGF0
aCk6Ci0gICAgIiIiQXR0ZW1wdHMgdG8gZGV0ZWN0IGlmIGBgcGF0aGBgIGlzIHRoZSByb290IG9m
IGEgVmlydHVhbCBFbnZpcm9ubWVudCBieQotICAgIGNoZWNraW5nIGZvciB0aGUgZXhpc3RlbmNl
IG9mIHRoZSBhcHByb3ByaWF0ZSBhY3RpdmF0ZSBzY3JpcHQiIiIKLSAgICBiaW5kaXIgPSBwYXRo
LmpvaW4oJ1NjcmlwdHMnIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKSBlbHNlICdi
aW4nKQotICAgIGlmIG5vdCBiaW5kaXIuZXhpc3RzKCk6Ci0gICAgICAgIHJldHVybiBGYWxzZQot
ICAgIGFjdGl2YXRlcyA9ICgnYWN0aXZhdGUnLCAnYWN0aXZhdGUuY3NoJywgJ2FjdGl2YXRlLmZp
c2gnLAotICAgICAgICAgICAgICAgICAnQWN0aXZhdGUnLCAnQWN0aXZhdGUuYmF0JywgJ0FjdGl2
YXRlLnBzMScpCi0gICAgcmV0dXJuIGFueShbZm5hbWUuYmFzZW5hbWUgaW4gYWN0aXZhdGVzIGZv
ciBmbmFtZSBpbiBiaW5kaXIubGlzdGRpcigpXSkKLQotCi1kZWYgcHl0ZXN0X2lnbm9yZV9jb2xs
ZWN0KHBhdGgsIGNvbmZpZyk6Ci0gICAgaWdub3JlX3BhdGhzID0gY29uZmlnLl9nZXRjb25mdGVz
dF9wYXRobGlzdCgiY29sbGVjdF9pZ25vcmUiLCBwYXRoPXBhdGguZGlycGF0aCgpKQotICAgIGln
bm9yZV9wYXRocyA9IGlnbm9yZV9wYXRocyBvciBbXQotICAgIGV4Y2x1ZGVvcHQgPSBjb25maWcu
Z2V0b3B0aW9uKCJpZ25vcmUiKQotICAgIGlmIGV4Y2x1ZGVvcHQ6Ci0gICAgICAgIGlnbm9yZV9w
YXRocy5leHRlbmQoW3B5LnBhdGgubG9jYWwoeCkgZm9yIHggaW4gZXhjbHVkZW9wdF0pCi0KLSAg
ICBpZiBweS5wYXRoLmxvY2FsKHBhdGgpIGluIGlnbm9yZV9wYXRoczoKLSAgICAgICAgcmV0dXJu
IFRydWUKLQotICAgIGFsbG93X2luX3ZlbnYgPSBjb25maWcuZ2V0b3B0aW9uKCJjb2xsZWN0X2lu
X3ZpcnR1YWxlbnYiKQotICAgIGlmIF9pbl92ZW52KHBhdGgpIGFuZCBub3QgYWxsb3dfaW5fdmVu
djoKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICMgU2tpcCBkdXBsaWNhdGUgcGF0aHMuCi0g
ICAga2VlcGR1cGxpY2F0ZXMgPSBjb25maWcuZ2V0b3B0aW9uKCJrZWVwZHVwbGljYXRlcyIpCi0g
ICAgZHVwbGljYXRlX3BhdGhzID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuX2R1cGxpY2F0ZXBhdGhz
Ci0gICAgaWYgbm90IGtlZXBkdXBsaWNhdGVzOgotICAgICAgICBpZiBwYXRoIGluIGR1cGxpY2F0
ZV9wYXRoczoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBkdXBsaWNhdGVfcGF0aHMuYWRkKHBhdGgpCi0KLSAgICByZXR1cm4gRmFsc2UKLQotCi1j
bGFzcyBGU0hvb2tQcm94eToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnNwYXRoLCBwbSwgcmVt
b3ZlX21vZHMpOgotICAgICAgICBzZWxmLmZzcGF0aCA9IGZzcGF0aAotICAgICAgICBzZWxmLnBt
ID0gcG0KLSAgICAgICAgc2VsZi5yZW1vdmVfbW9kcyA9IHJlbW92ZV9tb2RzCi0KLSAgICBkZWYg
X19nZXRhdHRyX18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIHggPSBzZWxmLnBtLnN1YnNldF9ob29r
X2NhbGxlcihuYW1lLCByZW1vdmVfcGx1Z2lucz1zZWxmLnJlbW92ZV9tb2RzKQotICAgICAgICBz
ZWxmLl9fZGljdF9fW25hbWVdID0geAotICAgICAgICByZXR1cm4geAotCi0KLWNsYXNzIF9Db21w
YXRQcm9wZXJ0eShvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAg
ICAgc2VsZi5uYW1lID0gbmFtZQotCi0gICAgZGVmIF9fZ2V0X18oc2VsZiwgb2JqLCBvd25lcik6
Ci0gICAgICAgIGlmIG9iaiBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYKLQotICAg
ICAgICAjIFRPRE86IHJlZW5hYmxlIGluIHRoZSBmZWF0dXJlcyBicmFuY2gKLSAgICAgICAgIyB3
YXJuaW5ncy53YXJuKAotICAgICAgICAjICAgICAidXNhZ2Ugb2Yge293bmVyIXJ9LntuYW1lfSBp
cyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIHB5dGVzdC57bmFtZX0gaW5zdGVhZCIuZm9ybWF0KAot
ICAgICAgICAjICAgICAgICAgbmFtZT1zZWxmLm5hbWUsIG93bmVyPXR5cGUob3duZXIpLl9fbmFt
ZV9fKSwKLSAgICAgICAgIyAgICAgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZl
bD0yKQotICAgICAgICByZXR1cm4gZ2V0YXR0cihfX2ltcG9ydF9fKCdweXRlc3QnKSwgc2VsZi5u
YW1lKQotCi0KLWNsYXNzIE5vZGVLZXl3b3JkcyhNYXBwaW5nTWl4aW4pOgotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBub2RlKToKLSAgICAgICAgc2VsZi5ub2RlID0gbm9kZQotICAgICAgICBzZWxm
LnBhcmVudCA9IG5vZGUucGFyZW50Ci0gICAgICAgIHNlbGYuX21hcmtlcnMgPSB7bm9kZS5uYW1l
OiBUcnVlfQotCi0gICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6Ci0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHJldHVybiBzZWxmLl9tYXJrZXJzW2tleV0KLSAgICAgICAgZXhjZXB0IEtl
eUVycm9yOgotICAgICAgICAgICAgaWYgc2VsZi5wYXJlbnQgaXMgTm9uZToKLSAgICAgICAgICAg
ICAgICByYWlzZQotICAgICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50LmtleXdvcmRzW2tleV0K
LQotICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKToKLSAgICAgICAgc2VsZi5f
bWFya2Vyc1trZXldID0gdmFsdWUKLQotICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgot
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW5ub3QgZGVsZXRlIGtleSBpbiBrZXl3b3JkcyBk
aWN0IikKLQotICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAgICAgICAgc2VlbiA9IHNldChzZWxm
Ll9tYXJrZXJzKQotICAgICAgICBpZiBzZWxmLnBhcmVudCBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIHNlZW4udXBkYXRlKHNlbGYucGFyZW50LmtleXdvcmRzKQotICAgICAgICByZXR1cm4gaXRl
cihzZWVuKQotCi0gICAgZGVmIF9fbGVuX18oc2VsZik6Ci0gICAgICAgIHJldHVybiBsZW4oc2Vs
Zi5fX2l0ZXJfXygpKQotCi0gICAgZGVmIGtleXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBsaXN0
KHNlbGYpCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPE5vZGVL
ZXl3b3JkcyBmb3Igbm9kZSAlcz4iICUgKHNlbGYubm9kZSwgKQotCi0KLWNsYXNzIE5vZGUob2Jq
ZWN0KToKLSAgICAiIiIgYmFzZSBjbGFzcyBmb3IgQ29sbGVjdG9yIGFuZCBJdGVtIHRoZSB0ZXN0
IGNvbGxlY3Rpb24gdHJlZS4KLSAgICBDb2xsZWN0b3Igc3ViY2xhc3NlcyBoYXZlIGNoaWxkcmVu
LCBJdGVtcyBhcmUgdGVybWluYWwgbm9kZXMuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
bmFtZSwgcGFyZW50PU5vbmUsIGNvbmZpZz1Ob25lLCBzZXNzaW9uPU5vbmUpOgotICAgICAgICAj
OiBhIHVuaXF1ZSBuYW1lIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIHBhcmVudCBub2RlCi0gICAg
ICAgIHNlbGYubmFtZSA9IG5hbWUKLQotICAgICAgICAjOiB0aGUgcGFyZW50IGNvbGxlY3RvciBu
b2RlLgotICAgICAgICBzZWxmLnBhcmVudCA9IHBhcmVudAotCi0gICAgICAgICM6IHRoZSBweXRl
c3QgY29uZmlnIG9iamVjdAotICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZyBvciBwYXJlbnQu
Y29uZmlnCi0KLSAgICAgICAgIzogdGhlIHNlc3Npb24gdGhpcyBub2RlIGlzIHBhcnQgb2YKLSAg
ICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbiBvciBwYXJlbnQuc2Vzc2lvbgotCi0gICAgICAg
ICM6IGZpbGVzeXN0ZW0gcGF0aCB3aGVyZSB0aGlzIG5vZGUgd2FzIGNvbGxlY3RlZCBmcm9tIChj
YW4gYmUgTm9uZSkKLSAgICAgICAgc2VsZi5mc3BhdGggPSBnZXRhdHRyKHBhcmVudCwgJ2ZzcGF0
aCcsIE5vbmUpCi0KLSAgICAgICAgIzoga2V5d29yZHMvbWFya2VycyBjb2xsZWN0ZWQgZnJvbSBh
bGwgc2NvcGVzCi0gICAgICAgIHNlbGYua2V5d29yZHMgPSBOb2RlS2V5d29yZHMoc2VsZikKLQot
ICAgICAgICAjOiBhbGxvdyBhZGRpbmcgb2YgZXh0cmEga2V5d29yZHMgdG8gdXNlIGZvciBtYXRj
aGluZwotICAgICAgICBzZWxmLmV4dHJhX2tleXdvcmRfbWF0Y2hlcyA9IHNldCgpCi0KLSAgICAg
ICAgIyB1c2VkIGZvciBzdG9yaW5nIGFydGlmaWNpYWwgZml4dHVyZWRlZnMgZm9yIGRpcmVjdCBw
YXJhbWV0cml6YXRpb24KLSAgICAgICAgc2VsZi5fbmFtZTJwc2V1ZG9maXh0dXJlZGVmID0ge30K
LQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBpaG9vayhzZWxmKToKLSAgICAgICAgIiIiIGZzcGF0
aCBzZW5zaXRpdmUgaG9vayBwcm94eSB1c2VkIHRvIGNhbGwgcHl0ZXN0IGhvb2tzIiIiCi0gICAg
ICAgIHJldHVybiBzZWxmLnNlc3Npb24uZ2V0aG9va3Byb3h5KHNlbGYuZnNwYXRoKQotCi0gICAg
TW9kdWxlID0gX0NvbXBhdFByb3BlcnR5KCJNb2R1bGUiKQotICAgIENsYXNzID0gX0NvbXBhdFBy
b3BlcnR5KCJDbGFzcyIpCi0gICAgSW5zdGFuY2UgPSBfQ29tcGF0UHJvcGVydHkoIkluc3RhbmNl
IikKLSAgICBGdW5jdGlvbiA9IF9Db21wYXRQcm9wZXJ0eSgiRnVuY3Rpb24iKQotICAgIEZpbGUg
PSBfQ29tcGF0UHJvcGVydHkoIkZpbGUiKQotICAgIEl0ZW0gPSBfQ29tcGF0UHJvcGVydHkoIkl0
ZW0iKQotCi0gICAgZGVmIF9nZXRjdXN0b21jbGFzcyhzZWxmLCBuYW1lKToKLSAgICAgICAgbWF5
YmVfY29tcGF0cHJvcCA9IGdldGF0dHIodHlwZShzZWxmKSwgbmFtZSkKLSAgICAgICAgaWYgaXNp
bnN0YW5jZShtYXliZV9jb21wYXRwcm9wLCBfQ29tcGF0UHJvcGVydHkpOgotICAgICAgICAgICAg
cmV0dXJuIGdldGF0dHIoX19pbXBvcnRfXygncHl0ZXN0JyksIG5hbWUpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBjbHMgPSBnZXRhdHRyKHNlbGYsIG5hbWUpCi0gICAgICAgICAgICAjIFRP
RE86IHJlZW5hYmxlIGluIHRoZSBmZWF0dXJlcyBicmFuY2gKLSAgICAgICAgICAgICMgd2Fybmlu
Z3Mud2FybigidXNlIG9mIG5vZGUuJXMgaXMgZGVwcmVjYXRlZCwgIgotICAgICAgICAgICAgIyAg
ICAidXNlIHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oLi4uKSB0byBjcmVhdGUgY3VzdG9tICIK
LSAgICAgICAgICAgICMgICAgImNvbGxlY3Rpb24gbm9kZXMiICUgbmFtZSwgY2F0ZWdvcnk9RGVw
cmVjYXRpb25XYXJuaW5nKQotICAgICAgICByZXR1cm4gY2xzCi0KLSAgICBkZWYgX19yZXByX18o
c2VsZik6Ci0gICAgICAgIHJldHVybiAiPCVzICVyPiIgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1l
X18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cihzZWxmLCAnbmFtZScsIE5v
bmUpKQotCi0gICAgZGVmIHdhcm4oc2VsZiwgY29kZSwgbWVzc2FnZSk6Ci0gICAgICAgICIiIiBn
ZW5lcmF0ZSBhIHdhcm5pbmcgd2l0aCB0aGUgZ2l2ZW4gY29kZSBhbmQgbWVzc2FnZSBmb3IgdGhp
cwotICAgICAgICBpdGVtLiAiIiIKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29kZSwgc3Ry
KQotICAgICAgICBmc2xvY2F0aW9uID0gZ2V0YXR0cihzZWxmLCAibG9jYXRpb24iLCBOb25lKQot
ICAgICAgICBpZiBmc2xvY2F0aW9uIGlzIE5vbmU6Ci0gICAgICAgICAgICBmc2xvY2F0aW9uID0g
Z2V0YXR0cihzZWxmLCAiZnNwYXRoIiwgTm9uZSkKLSAgICAgICAgc2VsZi5paG9vay5weXRlc3Rf
bG9nd2FybmluZy5jYWxsX2hpc3RvcmljKGt3YXJncz1kaWN0KAotICAgICAgICAgICAgY29kZT1j
b2RlLCBtZXNzYWdlPW1lc3NhZ2UsCi0gICAgICAgICAgICBub2RlaWQ9c2VsZi5ub2RlaWQsIGZz
bG9jYXRpb249ZnNsb2NhdGlvbikpCi0KLSAgICAjIG1ldGhvZHMgZm9yIG9yZGVyaW5nIG5vZGVz
Ci0gICAgQHByb3BlcnR5Ci0gICAgZGVmIG5vZGVpZChzZWxmKToKLSAgICAgICAgIiIiIGEgOjot
c2VwYXJhdGVkIHN0cmluZyBkZW5vdGluZyBpdHMgY29sbGVjdGlvbiB0cmVlIGFkZHJlc3MuICIi
IgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fbm9kZWlkCi0gICAgICAg
IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHNlbGYuX25vZGVpZCA9IHggPSBz
ZWxmLl9tYWtlaWQoKQotICAgICAgICAgICAgcmV0dXJuIHgKLQotICAgIGRlZiBfbWFrZWlkKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQubm9kZWlkICsgIjo6IiArIHNlbGYubmFt
ZQotCi0gICAgZGVmIF9faGFzaF9fKHNlbGYpOgotICAgICAgICByZXR1cm4gaGFzaChzZWxmLm5v
ZGVpZCkKLQotICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHRl
YXJkb3duKHNlbGYpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgbGlzdGNoYWluKHNlbGYpOgot
ICAgICAgICAiIiIgcmV0dXJuIGxpc3Qgb2YgYWxsIHBhcmVudCBjb2xsZWN0b3JzIHVwIHRvIHNl
bGYsCi0gICAgICAgICAgICBzdGFydGluZyBmcm9tIHJvb3Qgb2YgY29sbGVjdGlvbiB0cmVlLiAi
IiIKLSAgICAgICAgY2hhaW4gPSBbXQotICAgICAgICBpdGVtID0gc2VsZgotICAgICAgICB3aGls
ZSBpdGVtIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY2hhaW4uYXBwZW5kKGl0ZW0pCi0gICAg
ICAgICAgICBpdGVtID0gaXRlbS5wYXJlbnQKLSAgICAgICAgY2hhaW4ucmV2ZXJzZSgpCi0gICAg
ICAgIHJldHVybiBjaGFpbgotCi0gICAgZGVmIGFkZF9tYXJrZXIoc2VsZiwgbWFya2VyKToKLSAg
ICAgICAgIiIiIGR5bmFtaWNhbGx5IGFkZCBhIG1hcmtlciBvYmplY3QgdG8gdGhlIG5vZGUuCi0K
LSAgICAgICAgYGBtYXJrZXJgYCBjYW4gYmUgYSBzdHJpbmcgb3IgcHl0ZXN0Lm1hcmsuKiBpbnN0
YW5jZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJr
RGVjb3JhdG9yLCBNQVJLX0dFTgotICAgICAgICBpZiBpc2luc3RhbmNlKG1hcmtlciwgc2l4LnN0
cmluZ190eXBlcyk6Ci0gICAgICAgICAgICBtYXJrZXIgPSBnZXRhdHRyKE1BUktfR0VOLCBtYXJr
ZXIpCi0gICAgICAgIGVsaWYgbm90IGlzaW5zdGFuY2UobWFya2VyLCBNYXJrRGVjb3JhdG9yKToK
LSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImlzIG5vdCBhIHN0cmluZyBvciBweXRlc3Qu
bWFyay4qIE1hcmtlciIpCi0gICAgICAgIHNlbGYua2V5d29yZHNbbWFya2VyLm5hbWVdID0gbWFy
a2VyCi0KLSAgICBkZWYgZ2V0X21hcmtlcihzZWxmLCBuYW1lKToKLSAgICAgICAgIiIiIGdldCBh
IG1hcmtlciBvYmplY3QgZnJvbSB0aGlzIG5vZGUgb3IgTm9uZSBpZgotICAgICAgICB0aGUgbm9k
ZSBkb2Vzbid0IGhhdmUgYSBtYXJrZXIgd2l0aCB0aGF0IG5hbWUuICIiIgotICAgICAgICB2YWwg
PSBzZWxmLmtleXdvcmRzLmdldChuYW1lLCBOb25lKQotICAgICAgICBpZiB2YWwgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICBmcm9tIF9weXRlc3QubWFyayBpbXBvcnQgTWFya0luZm8sIE1hcmtE
ZWNvcmF0b3IKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsLCAoTWFya0RlY29yYXRvciwg
TWFya0luZm8pKToKLSAgICAgICAgICAgICAgICByZXR1cm4gdmFsCi0KLSAgICBkZWYgbGlzdGV4
dHJha2V5d29yZHMoc2VsZik6Ci0gICAgICAgICIiIiBSZXR1cm4gYSBzZXQgb2YgYWxsIGV4dHJh
IGtleXdvcmRzIGluIHNlbGYgYW5kIGFueSBwYXJlbnRzLiIiIgotICAgICAgICBleHRyYV9rZXl3
b3JkcyA9IHNldCgpCi0gICAgICAgIGl0ZW0gPSBzZWxmCi0gICAgICAgIGZvciBpdGVtIGluIHNl
bGYubGlzdGNoYWluKCk6Ci0gICAgICAgICAgICBleHRyYV9rZXl3b3Jkcy51cGRhdGUoaXRlbS5l
eHRyYV9rZXl3b3JkX21hdGNoZXMpCi0gICAgICAgIHJldHVybiBleHRyYV9rZXl3b3JkcwotCi0g
ICAgZGVmIGxpc3RuYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIFt4Lm5hbWUgZm9yIHggaW4g
c2VsZi5saXN0Y2hhaW4oKV0KLQotICAgIGRlZiBhZGRmaW5hbGl6ZXIoc2VsZiwgZmluKToKLSAg
ICAgICAgIiIiIHJlZ2lzdGVyIGEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhpcyBub2Rl
IGlzIGZpbmFsaXplZC4KLQotICAgICAgICBUaGlzIG1ldGhvZCBjYW4gb25seSBiZSBjYWxsZWQg
d2hlbiB0aGlzIG5vZGUgaXMgYWN0aXZlCi0gICAgICAgIGluIGEgc2V0dXAgY2hhaW4sIGZvciBl
eGFtcGxlIGR1cmluZyBzZWxmLnNldHVwKCkuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLnNl
c3Npb24uX3NldHVwc3RhdGUuYWRkZmluYWxpemVyKGZpbiwgc2VsZikKLQotICAgIGRlZiBnZXRw
YXJlbnQoc2VsZiwgY2xzKToKLSAgICAgICAgIiIiIGdldCB0aGUgbmV4dCBwYXJlbnQgbm9kZSAo
aW5jbHVkaW5nIG91cnNlbGYpCi0gICAgICAgIHdoaWNoIGlzIGFuIGluc3RhbmNlIG9mIHRoZSBn
aXZlbiBjbGFzcyIiIgotICAgICAgICBjdXJyZW50ID0gc2VsZgotICAgICAgICB3aGlsZSBjdXJy
ZW50IGFuZCBub3QgaXNpbnN0YW5jZShjdXJyZW50LCBjbHMpOgotICAgICAgICAgICAgY3VycmVu
dCA9IGN1cnJlbnQucGFyZW50Ci0gICAgICAgIHJldHVybiBjdXJyZW50Ci0KLSAgICBkZWYgX3By
dW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgX3Jl
cHJfZmFpbHVyZV9weShzZWxmLCBleGNpbmZvLCBzdHlsZT1Ob25lKToKLSAgICAgICAgZm0gPSBz
ZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyCi0gICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0
YW5jZShmbS5GaXh0dXJlTG9va3VwRXJyb3IpOgotICAgICAgICAgICAgcmV0dXJuIGV4Y2luZm8u
dmFsdWUuZm9ybWF0cmVwcigpCi0gICAgICAgIHRiZmlsdGVyID0gVHJ1ZQotICAgICAgICBpZiBz
ZWxmLmNvbmZpZy5vcHRpb24uZnVsbHRyYWNlOgotICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHRiID0gX3B5dGVzdC5fY29kZS5UcmFjZWJhY2so
W2V4Y2luZm8udHJhY2ViYWNrWy0xXV0pCi0gICAgICAgICAgICBzZWxmLl9wcnVuZXRyYWNlYmFj
ayhleGNpbmZvKQotICAgICAgICAgICAgaWYgbGVuKGV4Y2luZm8udHJhY2ViYWNrKSA9PSAwOgot
ICAgICAgICAgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gdGIKLSAgICAgICAgICAgIHRiZmls
dGVyID0gRmFsc2UgICMgcHJ1bmV0cmFjZWJhY2sgYWxyZWFkeSBkb2VzIGl0Ci0gICAgICAgICAg
ICBpZiBzdHlsZSA9PSAiYXV0byI6Ci0gICAgICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKLSAg
ICAgICAgIyBYWFggc2hvdWxkIGV4Y2luZm8uZ2V0cmVwciByZWNvcmQgYWxsIGRhdGEgYW5kIHRv
dGVybWluYWwoKSBwcm9jZXNzIGl0PwotICAgICAgICBpZiBzdHlsZSBpcyBOb25lOgotICAgICAg
ICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgPT0gInNob3J0IjoKLSAgICAgICAg
ICAgICAgICBzdHlsZSA9ICJzaG9ydCIKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgc3R5bGUgPSAibG9uZyIKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBvcy5nZXRjd2Qo
KQotICAgICAgICAgICAgYWJzcGF0aCA9IEZhbHNlCi0gICAgICAgIGV4Y2VwdCBPU0Vycm9yOgot
ICAgICAgICAgICAgYWJzcGF0aCA9IFRydWUKLQotICAgICAgICByZXR1cm4gZXhjaW5mby5nZXRy
ZXByKGZ1bmNhcmdzPVRydWUsIGFic3BhdGg9YWJzcGF0aCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaG93bG9jYWxzPXNlbGYuY29uZmlnLm9wdGlvbi5zaG93bG9jYWxzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXN0eWxlLCB0YmZpbHRlcj10YmZpbHRl
cikKLQotICAgIHJlcHJfZmFpbHVyZSA9IF9yZXByX2ZhaWx1cmVfcHkKLQotCi1jbGFzcyBDb2xs
ZWN0b3IoTm9kZSk6Ci0gICAgIiIiIENvbGxlY3RvciBpbnN0YW5jZXMgY3JlYXRlIGNoaWxkcmVu
IHRocm91Z2ggY29sbGVjdCgpCi0gICAgICAgIGFuZCB0aHVzIGl0ZXJhdGl2ZWx5IGJ1aWxkIGEg
dHJlZS4KLSAgICAiIiIKLQotICAgIGNsYXNzIENvbGxlY3RFcnJvcihFeGNlcHRpb24pOgotICAg
ICAgICAiIiIgYW4gZXJyb3IgZHVyaW5nIGNvbGxlY3Rpb24sIGNvbnRhaW5zIGEgY3VzdG9tIG1l
c3NhZ2UuICIiIgotCi0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm5z
IGEgbGlzdCBvZiBjaGlsZHJlbiAoaXRlbXMgYW5kIGNvbGxlY3RvcnMpCi0gICAgICAgICAgICBm
b3IgdGhpcyBjb2xsZWN0aW9uIG5vZGUuCi0gICAgICAgICIiIgotICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yKCJhYnN0cmFjdCIpCi0KLSAgICBkZWYgcmVwcl9mYWlsdXJlKHNlbGYs
IGV4Y2luZm8pOgotICAgICAgICAiIiIgcmVwcmVzZW50IGEgY29sbGVjdGlvbiBmYWlsdXJlLiAi
IiIKLSAgICAgICAgaWYgZXhjaW5mby5lcnJpc2luc3RhbmNlKHNlbGYuQ29sbGVjdEVycm9yKToK
LSAgICAgICAgICAgIGV4YyA9IGV4Y2luZm8udmFsdWUKLSAgICAgICAgICAgIHJldHVybiBzdHIo
ZXhjLmFyZ3NbMF0pCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXByX2ZhaWx1cmVfcHkoZXhjaW5m
bywgc3R5bGU9InNob3J0IikKLQotICAgIGRlZiBfcHJ1bmV0cmFjZWJhY2soc2VsZiwgZXhjaW5m
byk6Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2ZzcGF0aCcpOgotICAgICAgICAgICAgdHJh
Y2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKLSAgICAgICAgICAgIG50cmFjZWJhY2sgPSB0cmFj
ZWJhY2suY3V0KHBhdGg9c2VsZi5mc3BhdGgpCi0gICAgICAgICAgICBpZiBudHJhY2ViYWNrID09
IHRyYWNlYmFjazoKLSAgICAgICAgICAgICAgICBudHJhY2ViYWNrID0gbnRyYWNlYmFjay5jdXQo
ZXhjbHVkZXBhdGg9dHJhY2ViYWNrY3V0ZGlyKQotICAgICAgICAgICAgZXhjaW5mby50cmFjZWJh
Y2sgPSBudHJhY2ViYWNrLmZpbHRlcigpCi0KLQotY2xhc3MgRlNDb2xsZWN0b3IoQ29sbGVjdG9y
KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnNwYXRoLCBwYXJlbnQ9Tm9uZSwgY29uZmlnPU5v
bmUsIHNlc3Npb249Tm9uZSk6Ci0gICAgICAgIGZzcGF0aCA9IHB5LnBhdGgubG9jYWwoZnNwYXRo
KSAgIyB4eHggb25seSBmb3IgdGVzdF9yZXN1bHRsb2cucHk/Ci0gICAgICAgIG5hbWUgPSBmc3Bh
dGguYmFzZW5hbWUKLSAgICAgICAgaWYgcGFyZW50IGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
cmVsID0gZnNwYXRoLnJlbHRvKHBhcmVudC5mc3BhdGgpCi0gICAgICAgICAgICBpZiByZWw6Ci0g
ICAgICAgICAgICAgICAgbmFtZSA9IHJlbAotICAgICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFj
ZShvcy5zZXAsIG5vZGVzLlNFUCkKLSAgICAgICAgc3VwZXIoRlNDb2xsZWN0b3IsIHNlbGYpLl9f
aW5pdF9fKG5hbWUsIHBhcmVudCwgY29uZmlnLCBzZXNzaW9uKQotICAgICAgICBzZWxmLmZzcGF0
aCA9IGZzcGF0aAotCi0gICAgZGVmIF9jaGVja19pbml0aWFscGF0aHNfZm9yX3JlbHBhdGgoc2Vs
Zik6Ci0gICAgICAgIGZvciBpbml0aWFscGF0aCBpbiBzZWxmLnNlc3Npb24uX2luaXRpYWxwYXRo
czoKLSAgICAgICAgICAgIGlmIHNlbGYuZnNwYXRoLmNvbW1vbihpbml0aWFscGF0aCkgPT0gaW5p
dGlhbHBhdGg6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZnNwYXRoLnJlbHRvKGluaXRp
YWxwYXRoLmRpcm5hbWUpCi0KLSAgICBkZWYgX21ha2VpZChzZWxmKToKLSAgICAgICAgcmVscGF0
aCA9IHNlbGYuZnNwYXRoLnJlbHRvKHNlbGYuY29uZmlnLnJvb3RkaXIpCi0KLSAgICAgICAgaWYg
bm90IHJlbHBhdGg6Ci0gICAgICAgICAgICByZWxwYXRoID0gc2VsZi5fY2hlY2tfaW5pdGlhbHBh
dGhzX2Zvcl9yZWxwYXRoKCkKLSAgICAgICAgaWYgb3Muc2VwICE9IG5vZGVzLlNFUDoKLSAgICAg
ICAgICAgIHJlbHBhdGggPSByZWxwYXRoLnJlcGxhY2Uob3Muc2VwLCBub2Rlcy5TRVApCi0gICAg
ICAgIHJldHVybiByZWxwYXRoCi0KLQotY2xhc3MgRmlsZShGU0NvbGxlY3Rvcik6Ci0gICAgIiIi
IGJhc2UgY2xhc3MgZm9yIGNvbGxlY3RpbmcgdGVzdHMgZnJvbSBhIGZpbGUuICIiIgotCi0KLWNs
YXNzIEl0ZW0oTm9kZSk6Ci0gICAgIiIiIGEgYmFzaWMgdGVzdCBpbnZvY2F0aW9uIGl0ZW0uIE5v
dGUgdGhhdCBmb3IgYSBzaW5nbGUgZnVuY3Rpb24KLSAgICB0aGVyZSBtaWdodCBiZSBtdWx0aXBs
ZSB0ZXN0IGludm9jYXRpb24gaXRlbXMuCi0gICAgIiIiCi0gICAgbmV4dGl0ZW0gPSBOb25lCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgcGFyZW50PU5vbmUsIGNvbmZpZz1Ob25lLCBz
ZXNzaW9uPU5vbmUpOgotICAgICAgICBzdXBlcihJdGVtLCBzZWxmKS5fX2luaXRfXyhuYW1lLCBw
YXJlbnQsIGNvbmZpZywgc2Vzc2lvbikKLSAgICAgICAgc2VsZi5fcmVwb3J0X3NlY3Rpb25zID0g
W10KLQotICAgIGRlZiBhZGRfcmVwb3J0X3NlY3Rpb24oc2VsZiwgd2hlbiwga2V5LCBjb250ZW50
KToKLSAgICAgICAgIiIiCi0gICAgICAgIEFkZHMgYSBuZXcgcmVwb3J0IHNlY3Rpb24sIHNpbWls
YXIgdG8gd2hhdCdzIGRvbmUgaW50ZXJuYWxseSB0byBhZGQgc3Rkb3V0IGFuZAotICAgICAgICBz
dGRlcnIgY2FwdHVyZWQgb3V0cHV0OjoKLQotICAgICAgICAgICAgaXRlbS5hZGRfcmVwb3J0X3Nl
Y3Rpb24oImNhbGwiLCAic3Rkb3V0IiwgInJlcG9ydCBzZWN0aW9uIGNvbnRlbnRzIikKLQotICAg
ICAgICA6cGFyYW0gc3RyIHdoZW46Ci0gICAgICAgICAgICBPbmUgb2YgdGhlIHBvc3NpYmxlIGNh
cHR1cmUgc3RhdGVzLCBgYCJzZXR1cCJgYCwgYGAiY2FsbCJgYCwgYGAidGVhcmRvd24iYGAuCi0g
ICAgICAgIDpwYXJhbSBzdHIga2V5OgotICAgICAgICAgICAgTmFtZSBvZiB0aGUgc2VjdGlvbiwg
Y2FuIGJlIGN1c3RvbWl6ZWQgYXQgd2lsbC4gUHl0ZXN0IHVzZXMgYGAic3Rkb3V0ImBgIGFuZAot
ICAgICAgICAgICAgYGAic3RkZXJyImBgIGludGVybmFsbHkuCi0KLSAgICAgICAgOnBhcmFtIHN0
ciBjb250ZW50OgotICAgICAgICAgICAgVGhlIGZ1bGwgY29udGVudHMgYXMgYSBzdHJpbmcuCi0g
ICAgICAgICIiIgotICAgICAgICBpZiBjb250ZW50OgotICAgICAgICAgICAgc2VsZi5fcmVwb3J0
X3NlY3Rpb25zLmFwcGVuZCgod2hlbiwga2V5LCBjb250ZW50KSkKLQotICAgIGRlZiByZXBvcnRp
bmZvKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5mc3BhdGgsIE5vbmUsICIiCi0KLSAgICBA
cHJvcGVydHkKLSAgICBkZWYgbG9jYXRpb24oc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIHJldHVybiBzZWxmLl9sb2NhdGlvbgotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6
Ci0gICAgICAgICAgICBsb2NhdGlvbiA9IHNlbGYucmVwb3J0aW5mbygpCi0gICAgICAgICAgICAj
IGJlc3RyZWxwYXRoIGlzIGEgcXVpdGUgc2xvdyBmdW5jdGlvbgotICAgICAgICAgICAgY2FjaGUg
PSBzZWxmLmNvbmZpZy5fX2RpY3RfXy5zZXRkZWZhdWx0KCJfYmVzdHJlbHBhdGhjYWNoZSIsIHt9
KQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGZzcGF0aCA9IGNhY2hlW2xvY2F0
aW9uWzBdXQotICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAgIGZz
cGF0aCA9IHNlbGYuc2Vzc2lvbi5mc3BhdGguYmVzdHJlbHBhdGgobG9jYXRpb25bMF0pCi0gICAg
ICAgICAgICAgICAgY2FjaGVbbG9jYXRpb25bMF1dID0gZnNwYXRoCi0gICAgICAgICAgICBsb2Nh
dGlvbiA9IChmc3BhdGgsIGxvY2F0aW9uWzFdLCBzdHIobG9jYXRpb25bMl0pKQotICAgICAgICAg
ICAgc2VsZi5fbG9jYXRpb24gPSBsb2NhdGlvbgotICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9u
Ci0KLQotY2xhc3MgTm9NYXRjaChFeGNlcHRpb24pOgotICAgICIiIiByYWlzZWQgaWYgbWF0Y2hp
bmcgY2Fubm90IGxvY2F0ZSBhIG1hdGNoaW5nIG5hbWVzLiAiIiIKLQotCi1jbGFzcyBJbnRlcnJ1
cHRlZChLZXlib2FyZEludGVycnVwdCk6Ci0gICAgIiIiIHNpZ25hbHMgYW4gaW50ZXJydXB0ZWQg
dGVzdCBydW4uICIiIgotICAgIF9fbW9kdWxlX18gPSAnYnVpbHRpbnMnICAjIGZvciBweTMKLQot
Ci1jbGFzcyBGYWlsZWQoRXhjZXB0aW9uKToKLSAgICAiIiIgc2lnbmFscyBhbiBzdG9wIGFzIGZh
aWxlZCB0ZXN0IHJ1bi4gIiIiCi0KLQotY2xhc3MgU2Vzc2lvbihGU0NvbGxlY3Rvcik6Ci0gICAg
SW50ZXJydXB0ZWQgPSBJbnRlcnJ1cHRlZAotICAgIEZhaWxlZCA9IEZhaWxlZAotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgIEZTQ29sbGVjdG9yLl9faW5pdF9fKHNl
bGYsIGNvbmZpZy5yb290ZGlyLCBwYXJlbnQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uZmlnPWNvbmZpZywgc2Vzc2lvbj1zZWxmKQotICAgICAgICBzZWxmLnRlc3RzZmFp
bGVkID0gMAotICAgICAgICBzZWxmLnRlc3RzY29sbGVjdGVkID0gMAotICAgICAgICBzZWxmLnNo
b3VsZHN0b3AgPSBGYWxzZQotICAgICAgICBzZWxmLnNob3VsZGZhaWwgPSBGYWxzZQotICAgICAg
ICBzZWxmLnRyYWNlID0gY29uZmlnLnRyYWNlLnJvb3QuZ2V0KCJjb2xsZWN0aW9uIikKLSAgICAg
ICAgc2VsZi5fbm9yZWN1cnNlcGF0dGVybnMgPSBjb25maWcuZ2V0aW5pKCJub3JlY3Vyc2VkaXJz
IikKLSAgICAgICAgc2VsZi5zdGFydGRpciA9IHB5LnBhdGgubG9jYWwoKQotICAgICAgICBzZWxm
LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHNlbGYsIG5hbWU9InNlc3Npb24iKQotCi0g
ICAgZGVmIF9tYWtlaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiAiIgotCi0gICAgQGhvb2tpbXBs
KHRyeWZpcnN0PVRydWUpCi0gICAgZGVmIHB5dGVzdF9jb2xsZWN0c3RhcnQoc2VsZik6Ci0gICAg
ICAgIGlmIHNlbGYuc2hvdWxkZmFpbDoKLSAgICAgICAgICAgIHJhaXNlIHNlbGYuRmFpbGVkKHNl
bGYuc2hvdWxkZmFpbCkKLSAgICAgICAgaWYgc2VsZi5zaG91bGRzdG9wOgotICAgICAgICAgICAg
cmFpc2Ugc2VsZi5JbnRlcnJ1cHRlZChzZWxmLnNob3VsZHN0b3ApCi0KLSAgICBAaG9va2ltcGwo
dHJ5Zmlyc3Q9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHNlbGYsIHJl
cG9ydCk6Ci0gICAgICAgIGlmIHJlcG9ydC5mYWlsZWQgYW5kIG5vdCBoYXNhdHRyKHJlcG9ydCwg
J3dhc3hmYWlsJyk6Ci0gICAgICAgICAgICBzZWxmLnRlc3RzZmFpbGVkICs9IDEKLSAgICAgICAg
ICAgIG1heGZhaWwgPSBzZWxmLmNvbmZpZy5nZXR2YWx1ZSgibWF4ZmFpbCIpCi0gICAgICAgICAg
ICBpZiBtYXhmYWlsIGFuZCBzZWxmLnRlc3RzZmFpbGVkID49IG1heGZhaWw6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5zaG91bGRmYWlsID0gInN0b3BwaW5nIGFmdGVyICVkIGZhaWx1cmVzIiAlICgK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c2ZhaWxlZCkKLSAgICBweXRlc3RfY29sbGVj
dHJlcG9ydCA9IHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydAotCi0gICAgZGVmIGlzaW5pdHBhdGgo
c2VsZiwgcGF0aCk6Ci0gICAgICAgIHJldHVybiBwYXRoIGluIHNlbGYuX2luaXRpYWxwYXRocwot
Ci0gICAgZGVmIGdldGhvb2twcm94eShzZWxmLCBmc3BhdGgpOgotICAgICAgICAjIGNoZWNrIGlm
IHdlIGhhdmUgdGhlIGNvbW1vbiBjYXNlIG9mIHJ1bm5pbmcKLSAgICAgICAgIyBob29rcyB3aXRo
IGFsbCBjb25mdGVzdC5weSBmaWxlc2FsbCBjb25mdGVzdC5weQotICAgICAgICBwbSA9IHNlbGYu
Y29uZmlnLnBsdWdpbm1hbmFnZXIKLSAgICAgICAgbXlfY29uZnRlc3Rtb2R1bGVzID0gcG0uX2dl
dGNvbmZ0ZXN0bW9kdWxlcyhmc3BhdGgpCi0gICAgICAgIHJlbW92ZV9tb2RzID0gcG0uX2NvbmZ0
ZXN0X3BsdWdpbnMuZGlmZmVyZW5jZShteV9jb25mdGVzdG1vZHVsZXMpCi0gICAgICAgIGlmIHJl
bW92ZV9tb2RzOgotICAgICAgICAgICAgIyBvbmUgb3IgbW9yZSBjb25mdGVzdHMgYXJlIG5vdCBp
biB1c2UgYXQgdGhpcyBmc3BhdGgKLSAgICAgICAgICAgIHByb3h5ID0gRlNIb29rUHJveHkoZnNw
YXRoLCBwbSwgcmVtb3ZlX21vZHMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIGFsbCBw
bHVnaXMgYXJlIGFjdGl2ZSBmb3IgdGhpcyBmc3BhdGgKLSAgICAgICAgICAgIHByb3h5ID0gc2Vs
Zi5jb25maWcuaG9vawotICAgICAgICByZXR1cm4gcHJveHkKLQotICAgIGRlZiBwZXJmb3JtX2Nv
bGxlY3Qoc2VsZiwgYXJncz1Ob25lLCBnZW5pdGVtcz1UcnVlKToKLSAgICAgICAgaG9vayA9IHNl
bGYuY29uZmlnLmhvb2sKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaXRlbXMgPSBzZWxmLl9w
ZXJmb3JtX2NvbGxlY3QoYXJncywgZ2VuaXRlbXMpCi0gICAgICAgICAgICBzZWxmLmNvbmZpZy5w
bHVnaW5tYW5hZ2VyLmNoZWNrX3BlbmRpbmcoKQotICAgICAgICAgICAgaG9vay5weXRlc3RfY29s
bGVjdGlvbl9tb2RpZnlpdGVtcyhzZXNzaW9uPXNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz1zZWxmLmNvbmZpZywgaXRlbXM9aXRlbXMp
Ci0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBob29rLnB5dGVzdF9jb2xsZWN0aW9uX2Zp
bmlzaChzZXNzaW9uPXNlbGYpCi0gICAgICAgIHNlbGYudGVzdHNjb2xsZWN0ZWQgPSBsZW4oaXRl
bXMpCi0gICAgICAgIHJldHVybiBpdGVtcwotCi0gICAgZGVmIF9wZXJmb3JtX2NvbGxlY3Qoc2Vs
ZiwgYXJncywgZ2VuaXRlbXMpOgotICAgICAgICBpZiBhcmdzIGlzIE5vbmU6Ci0gICAgICAgICAg
ICBhcmdzID0gc2VsZi5jb25maWcuYXJncwotICAgICAgICBzZWxmLnRyYWNlKCJwZXJmb3JtX2Nv
bGxlY3QiLCBzZWxmLCBhcmdzKQotICAgICAgICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50ICs9IDEK
LSAgICAgICAgc2VsZi5fbm90Zm91bmQgPSBbXQotICAgICAgICBzZWxmLl9pbml0aWFscGF0aHMg
PSBzZXQoKQotICAgICAgICBzZWxmLl9pbml0aWFscGFydHMgPSBbXQotICAgICAgICBzZWxmLml0
ZW1zID0gaXRlbXMgPSBbXQotICAgICAgICBmb3IgYXJnIGluIGFyZ3M6Ci0gICAgICAgICAgICBw
YXJ0cyA9IHNlbGYuX3BhcnNlYXJnKGFyZykKLSAgICAgICAgICAgIHNlbGYuX2luaXRpYWxwYXJ0
cy5hcHBlbmQocGFydHMpCi0gICAgICAgICAgICBzZWxmLl9pbml0aWFscGF0aHMuYWRkKHBhcnRz
WzBdKQotICAgICAgICByZXAgPSBjb2xsZWN0X29uZV9ub2RlKHNlbGYpCi0gICAgICAgIHNlbGYu
aWhvb2sucHl0ZXN0X2NvbGxlY3RyZXBvcnQocmVwb3J0PXJlcCkKLSAgICAgICAgc2VsZi50cmFj
ZS5yb290LmluZGVudCAtPSAxCi0gICAgICAgIGlmIHNlbGYuX25vdGZvdW5kOgotICAgICAgICAg
ICAgZXJyb3JzID0gW10KLSAgICAgICAgICAgIGZvciBhcmcsIGV4YyBpbiBzZWxmLl9ub3Rmb3Vu
ZDoKLSAgICAgICAgICAgICAgICBsaW5lID0gIihubyBuYW1lICVyIGluIGFueSBvZiAlcikiICUg
KGFyZywgZXhjLmFyZ3NbMF0pCi0gICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgibm90IGZv
dW5kOiAlc1xuJXMiICUgKGFyZywgbGluZSkpCi0gICAgICAgICAgICAgICAgIyBYWFg6IHRlc3Qg
dGhpcwotICAgICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigqZXJyb3JzKQotICAgICAgICBpZiBu
b3QgZ2VuaXRlbXM6Ci0gICAgICAgICAgICByZXR1cm4gcmVwLnJlc3VsdAotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgaWYgcmVwLnBhc3NlZDoKLSAgICAgICAgICAgICAgICBmb3Igbm9kZSBp
biByZXAucmVzdWx0OgotICAgICAgICAgICAgICAgICAgICBzZWxmLml0ZW1zLmV4dGVuZChzZWxm
Lmdlbml0ZW1zKG5vZGUpKQotICAgICAgICAgICAgcmV0dXJuIGl0ZW1zCi0KLSAgICBkZWYgY29s
bGVjdChzZWxmKToKLSAgICAgICAgZm9yIHBhcnRzIGluIHNlbGYuX2luaXRpYWxwYXJ0czoKLSAg
ICAgICAgICAgIGFyZyA9ICI6OiIuam9pbihtYXAoc3RyLCBwYXJ0cykpCi0gICAgICAgICAgICBz
ZWxmLnRyYWNlKCJwcm9jZXNzaW5nIGFyZ3VtZW50IiwgYXJnKQotICAgICAgICAgICAgc2VsZi50
cmFjZS5yb290LmluZGVudCArPSAxCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
Zm9yIHggaW4gc2VsZi5fY29sbGVjdChhcmcpOgotICAgICAgICAgICAgICAgICAgICB5aWVsZCB4
Ci0gICAgICAgICAgICBleGNlcHQgTm9NYXRjaDoKLSAgICAgICAgICAgICAgICAjIHdlIGFyZSBp
bnNpZGUgYSBtYWtlX3JlcG9ydCBob29rIHNvCi0gICAgICAgICAgICAgICAgIyB3ZSBjYW5ub3Qg
ZGlyZWN0bHkgcGFzcyB0aHJvdWdoIHRoZSBleGNlcHRpb24KLSAgICAgICAgICAgICAgICBzZWxm
Ll9ub3Rmb3VuZC5hcHBlbmQoKGFyZywgc3lzLmV4Y19pbmZvKClbMV0pKQotCi0gICAgICAgICAg
ICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50IC09IDEKLQotICAgIGRlZiBfY29sbGVjdChzZWxmLCBh
cmcpOgotICAgICAgICBuYW1lcyA9IHNlbGYuX3BhcnNlYXJnKGFyZykKLSAgICAgICAgcGF0aCA9
IG5hbWVzLnBvcCgwKQotICAgICAgICBpZiBwYXRoLmNoZWNrKGRpcj0xKToKLSAgICAgICAgICAg
IGFzc2VydCBub3QgbmFtZXMsICJpbnZhbGlkIGFyZyAlciIgJSAoYXJnLCkKLSAgICAgICAgICAg
IGZvciBwYXRoIGluIHBhdGgudmlzaXQoZmlsPWxhbWJkYSB4OiB4LmNoZWNrKGZpbGU9MSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYz1zZWxmLl9yZWN1cnNlLCBiZj1U
cnVlLCBzb3J0PVRydWUpOgotICAgICAgICAgICAgICAgIGZvciB4IGluIHNlbGYuX2NvbGxlY3Rm
aWxlKHBhdGgpOgotICAgICAgICAgICAgICAgICAgICB5aWVsZCB4Ci0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBhc3NlcnQgcGF0aC5jaGVjayhmaWxlPTEpCi0gICAgICAgICAgICBmb3IgeCBp
biBzZWxmLm1hdGNobm9kZXMoc2VsZi5fY29sbGVjdGZpbGUocGF0aCksIG5hbWVzKToKLSAgICAg
ICAgICAgICAgICB5aWVsZCB4Ci0KLSAgICBkZWYgX2NvbGxlY3RmaWxlKHNlbGYsIHBhdGgpOgot
ICAgICAgICBpaG9vayA9IHNlbGYuZ2V0aG9va3Byb3h5KHBhdGgpCi0gICAgICAgIGlmIG5vdCBz
ZWxmLmlzaW5pdHBhdGgocGF0aCk6Ci0gICAgICAgICAgICBpZiBpaG9vay5weXRlc3RfaWdub3Jl
X2NvbGxlY3QocGF0aD1wYXRoLCBjb25maWc9c2VsZi5jb25maWcpOgotICAgICAgICAgICAgICAg
IHJldHVybiAoKQotICAgICAgICByZXR1cm4gaWhvb2sucHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRo
PXBhdGgsIHBhcmVudD1zZWxmKQotCi0gICAgZGVmIF9yZWN1cnNlKHNlbGYsIHBhdGgpOgotICAg
ICAgICBpaG9vayA9IHNlbGYuZ2V0aG9va3Byb3h5KHBhdGguZGlycGF0aCgpKQotICAgICAgICBp
ZiBpaG9vay5weXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aD1wYXRoLCBjb25maWc9c2VsZi5jb25m
aWcpOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGZvciBwYXQgaW4gc2VsZi5fbm9yZWN1
cnNlcGF0dGVybnM6Ci0gICAgICAgICAgICBpZiBwYXRoLmNoZWNrKGZubWF0Y2g9cGF0KToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWhvb2sgPSBzZWxmLmdldGhvb2tw
cm94eShwYXRoKQotICAgICAgICBpaG9vay5weXRlc3RfY29sbGVjdF9kaXJlY3RvcnkocGF0aD1w
YXRoLCBwYXJlbnQ9c2VsZikKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiBfdHJ5Y29u
dmVydHB5YXJnKHNlbGYsIHgpOgotICAgICAgICAiIiJDb252ZXJ0IGEgZG90dGVkIG1vZHVsZSBu
YW1lIHRvIHBhdGguCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGltcG9ydCBwa2d1dGlsCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGxvYWRlciA9IHBrZ3V0aWwuZmluZF9sb2FkZXIoeCkKLSAg
ICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgcmV0dXJuIHgKLSAgICAgICAg
aWYgbG9hZGVyIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4geAotICAgICAgICAjIFRoaXMg
bWV0aG9kIGlzIHNvbWV0aW1lcyBpbnZva2VkIHdoZW4gQXNzZXJ0aW9uUmV3cml0aW5nSG9vaywg
d2hpY2gKLSAgICAgICAgIyBkb2VzIG5vdCBkZWZpbmUgYSBnZXRfZmlsZW5hbWUgbWV0aG9kLCBp
cyBhbHJlYWR5IGluIHBsYWNlOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwYXRoID0gbG9h
ZGVyLmdldF9maWxlbmFtZSh4KQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAg
ICAgICAgICAjIFJldHJpZXZlIHBhdGggZnJvbSBBc3NlcnRpb25SZXdyaXRpbmdIb29rOgotICAg
ICAgICAgICAgcGF0aCA9IGxvYWRlci5tb2R1bGVzW3hdWzBdLmNvX2ZpbGVuYW1lCi0gICAgICAg
IGlmIGxvYWRlci5pc19wYWNrYWdlKHgpOgotICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguZGly
bmFtZShwYXRoKQotICAgICAgICByZXR1cm4gcGF0aAotCi0gICAgZGVmIF9wYXJzZWFyZyhzZWxm
LCBhcmcpOgotICAgICAgICAiIiIgcmV0dXJuIChmc3BhdGgsIG5hbWVzKSB0dXBsZSBhZnRlciBj
aGVja2luZyB0aGUgZmlsZSBleGlzdHMuICIiIgotICAgICAgICBwYXJ0cyA9IHN0cihhcmcpLnNw
bGl0KCI6OiIpCi0gICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi5weWFyZ3M6Ci0gICAgICAg
ICAgICBwYXJ0c1swXSA9IHNlbGYuX3RyeWNvbnZlcnRweWFyZyhwYXJ0c1swXSkKLSAgICAgICAg
cmVscGF0aCA9IHBhcnRzWzBdLnJlcGxhY2UoIi8iLCBvcy5zZXApCi0gICAgICAgIHBhdGggPSBz
ZWxmLmNvbmZpZy5pbnZvY2F0aW9uX2Rpci5qb2luKHJlbHBhdGgsIGFicz1UcnVlKQotICAgICAg
ICBpZiBub3QgcGF0aC5jaGVjaygpOgotICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9u
LnB5YXJnczoKLSAgICAgICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKAotICAgICAgICAgICAg
ICAgICAgICAiZmlsZSBvciBwYWNrYWdlIG5vdCBmb3VuZDogIiArIGFyZyArCi0gICAgICAgICAg
ICAgICAgICAgICIgKG1pc3NpbmcgX19pbml0X18ucHk/KSIpCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHJhaXNlIFVzYWdlRXJyb3IoImZpbGUgbm90IGZvdW5kOiAiICsgYXJn
KQotICAgICAgICBwYXJ0c1swXSA9IHBhdGgKLSAgICAgICAgcmV0dXJuIHBhcnRzCi0KLSAgICBk
ZWYgbWF0Y2hub2RlcyhzZWxmLCBtYXRjaGluZywgbmFtZXMpOgotICAgICAgICBzZWxmLnRyYWNl
KCJtYXRjaG5vZGVzIiwgbWF0Y2hpbmcsIG5hbWVzKQotICAgICAgICBzZWxmLnRyYWNlLnJvb3Qu
aW5kZW50ICs9IDEKLSAgICAgICAgbm9kZXMgPSBzZWxmLl9tYXRjaG5vZGVzKG1hdGNoaW5nLCBu
YW1lcykKLSAgICAgICAgbnVtID0gbGVuKG5vZGVzKQotICAgICAgICBzZWxmLnRyYWNlKCJtYXRj
aG5vZGVzIGZpbmlzaGVkIC0+ICIsIG51bSwgIm5vZGVzIikKLSAgICAgICAgc2VsZi50cmFjZS5y
b290LmluZGVudCAtPSAxCi0gICAgICAgIGlmIG51bSA9PSAwOgotICAgICAgICAgICAgcmFpc2Ug
Tm9NYXRjaChtYXRjaGluZywgbmFtZXNbOjFdKQotICAgICAgICByZXR1cm4gbm9kZXMKLQotICAg
IGRlZiBfbWF0Y2hub2RlcyhzZWxmLCBtYXRjaGluZywgbmFtZXMpOgotICAgICAgICBpZiBub3Qg
bWF0Y2hpbmcgb3Igbm90IG5hbWVzOgotICAgICAgICAgICAgcmV0dXJuIG1hdGNoaW5nCi0gICAg
ICAgIG5hbWUgPSBuYW1lc1swXQotICAgICAgICBhc3NlcnQgbmFtZQotICAgICAgICBuZXh0bmFt
ZXMgPSBuYW1lc1sxOl0KLSAgICAgICAgcmVzdWx0bm9kZXMgPSBbXQotICAgICAgICBmb3Igbm9k
ZSBpbiBtYXRjaGluZzoKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZSwgSXRlbSk6Ci0g
ICAgICAgICAgICAgICAgaWYgbm90IG5hbWVzOgotICAgICAgICAgICAgICAgICAgICByZXN1bHRu
b2Rlcy5hcHBlbmQobm9kZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2Uobm9kZSwgQ29sbGVjdG9yKQotICAgICAgICAgICAgcmVwID0gY29s
bGVjdF9vbmVfbm9kZShub2RlKQotICAgICAgICAgICAgaWYgcmVwLnBhc3NlZDoKLSAgICAgICAg
ICAgICAgICBoYXNfbWF0Y2hlZCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgZm9yIHggaW4gcmVw
LnJlc3VsdDoKLSAgICAgICAgICAgICAgICAgICAgIyBUT0RPOiByZW1vdmUgcGFyYW1ldHJpemVk
IHdvcmthcm91bmQgb25jZSBjb2xsZWN0aW9uIHN0cnVjdHVyZSBjb250YWlucyBwYXJhbWV0cml6
YXRpb24KLSAgICAgICAgICAgICAgICAgICAgaWYgeC5uYW1lID09IG5hbWUgb3IgeC5uYW1lLnNw
bGl0KCJbIilbMF0gPT0gbmFtZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdG5vZGVz
LmV4dGVuZChzZWxmLm1hdGNobm9kZXMoW3hdLCBuZXh0bmFtZXMpKQotICAgICAgICAgICAgICAg
ICAgICAgICAgaGFzX21hdGNoZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgIyBYWFggYWNjZXB0
IElEcyB0aGF0IGRvbid0IGhhdmUgIigpIiBmb3IgY2xhc3MgaW5zdGFuY2VzCi0gICAgICAgICAg
ICAgICAgaWYgbm90IGhhc19tYXRjaGVkIGFuZCBsZW4ocmVwLnJlc3VsdCkgPT0gMSBhbmQgeC5u
YW1lID09ICIoKSI6Ci0gICAgICAgICAgICAgICAgICAgIG5leHRuYW1lcy5pbnNlcnQoMCwgbmFt
ZSkKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0bm9kZXMuZXh0ZW5kKHNlbGYubWF0Y2hub2Rl
cyhbeF0sIG5leHRuYW1lcykpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMg
cmVwb3J0IGNvbGxlY3Rpb24gZmFpbHVyZXMgaGVyZSB0byBhdm9pZCBmYWlsaW5nIHRvIHJ1biBz
b21lIHRlc3QKLSAgICAgICAgICAgICAgICAjIHNwZWNpZmllZCBpbiB0aGUgY29tbWFuZCBsaW5l
IGJlY2F1c2UgdGhlIG1vZHVsZSBjb3VsZCBub3QgYmUKLSAgICAgICAgICAgICAgICAjIGltcG9y
dGVkICgjMTM0KQotICAgICAgICAgICAgICAgIG5vZGUuaWhvb2sucHl0ZXN0X2NvbGxlY3RyZXBv
cnQocmVwb3J0PXJlcCkKLSAgICAgICAgcmV0dXJuIHJlc3VsdG5vZGVzCi0KLSAgICBkZWYgZ2Vu
aXRlbXMoc2VsZiwgbm9kZSk6Ci0gICAgICAgIHNlbGYudHJhY2UoImdlbml0ZW1zIiwgbm9kZSkK
LSAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlLCBJdGVtKToKLSAgICAgICAgICAgIG5vZGUuaWhv
b2sucHl0ZXN0X2l0ZW1jb2xsZWN0ZWQoaXRlbT1ub2RlKQotICAgICAgICAgICAgeWllbGQgbm9k
ZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uobm9kZSwgQ29s
bGVjdG9yKQotICAgICAgICAgICAgcmVwID0gY29sbGVjdF9vbmVfbm9kZShub2RlKQotICAgICAg
ICAgICAgaWYgcmVwLnBhc3NlZDoKLSAgICAgICAgICAgICAgICBmb3Igc3Vibm9kZSBpbiByZXAu
cmVzdWx0OgotICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBzZWxmLmdlbml0ZW1zKHN1Ym5v
ZGUpOgotICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgeAotICAgICAgICAgICAgbm9kZS5p
aG9vay5weXRlc3RfY29sbGVjdHJlcG9ydChyZXBvcnQ9cmVwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9tYXJrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYXJrLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjFmMDFiMWEyZTM0ZGIzNWNiMjYxYTNmYjQ5MGYx
YzQ2NTdkNGQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvbWFyay5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ5NiArMCww
IEBACi0iIiIgZ2VuZXJpYyBtZWNoYW5pc20gZm9yIG1hcmtpbmcgYW5kIHNlbGVjdGluZyBweXRo
b24gZnVuY3Rpb25zLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGluc3BlY3QKLWltcG9ydCB3YXJu
aW5ncwotaW1wb3J0IGF0dHIKLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IG5hbWVkdHVwbGUKLWZy
b20gb3BlcmF0b3IgaW1wb3J0IGF0dHJnZXR0ZXIKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBtYXAK
LWZyb20gLmRlcHJlY2F0ZWQgaW1wb3J0IE1BUktfUEFSQU1FVEVSU0VUX1VOUEFDS0lORwotZnJv
bSAuY29tcGF0IGltcG9ydCBOT1RTRVQsIGdldGZzbGluZW5vCi0KLQotZGVmIGFsaWFzKG5hbWUs
IHdhcm5pbmc9Tm9uZSk6Ci0gICAgZ2V0dGVyID0gYXR0cmdldHRlcihuYW1lKQotCi0gICAgZGVm
IHdhcm5lZChzZWxmKToKLSAgICAgICAgd2FybmluZ3Mud2Fybih3YXJuaW5nLCBzdGFja2xldmVs
PTIpCi0gICAgICAgIHJldHVybiBnZXR0ZXIoc2VsZikKLQotICAgIHJldHVybiBwcm9wZXJ0eShn
ZXR0ZXIgaWYgd2FybmluZyBpcyBOb25lIGVsc2Ugd2FybmVkLCBkb2M9J2FsaWFzIGZvciAnICsg
bmFtZSkKLQotCi1jbGFzcyBQYXJhbWV0ZXJTZXQobmFtZWR0dXBsZSgnUGFyYW1ldGVyU2V0Jywg
J3ZhbHVlcywgbWFya3MsIGlkJykpOgotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBwYXJhbShj
bHMsICp2YWx1ZXMsICoqa3cpOgotICAgICAgICBtYXJrcyA9IGt3LnBvcCgnbWFya3MnLCAoKSkK
LSAgICAgICAgaWYgaXNpbnN0YW5jZShtYXJrcywgTWFya0RlY29yYXRvcik6Ci0gICAgICAgICAg
ICBtYXJrcyA9IG1hcmtzLAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXNzZXJ0IGlzaW5z
dGFuY2UobWFya3MsICh0dXBsZSwgbGlzdCwgc2V0KSkKLQotICAgICAgICBkZWYgcGFyYW1fZXh0
cmFjdF9pZChpZD1Ob25lKToKLSAgICAgICAgICAgIHJldHVybiBpZAotCi0gICAgICAgIGlkID0g
cGFyYW1fZXh0cmFjdF9pZCgqKmt3KQotICAgICAgICByZXR1cm4gY2xzKHZhbHVlcywgbWFya3Ms
IGlkKQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGV4dHJhY3RfZnJvbShjbHMsIHBhcmFt
ZXRlcnNldCwgbGVnYWN5X2ZvcmNlX3R1cGxlPUZhbHNlKToKLSAgICAgICAgIiIiCi0gICAgICAg
IDpwYXJhbSBwYXJhbWV0ZXJzZXQ6Ci0gICAgICAgICAgICBhIGxlZ2FjeSBzdHlsZSBwYXJhbWV0
ZXJzZXQgdGhhdCBtYXkgb3IgbWF5IG5vdCBiZSBhIHR1cGxlLAotICAgICAgICAgICAgYW5kIG1h
eSBvciBtYXkgbm90IGJlIHdyYXBwZWQgaW50byBhIG1lc3Mgb2YgbWFyayBvYmplY3RzCi0KLSAg
ICAgICAgOnBhcmFtIGxlZ2FjeV9mb3JjZV90dXBsZToKLSAgICAgICAgICAgIGVuZm9yY2UgdHVw
bGUgd3JhcHBpbmcgc28gc2luZ2xlIGFyZ3VtZW50IHR1cGxlIHZhbHVlcwotICAgICAgICAgICAg
ZG9uJ3QgZ2V0IGRlY29tcG9zZWQgYW5kIGJyZWFrIHRlc3RzCi0KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgaWYgaXNpbnN0YW5jZShwYXJhbWV0ZXJzZXQsIGNscyk6Ci0gICAgICAgICAgICByZXR1
cm4gcGFyYW1ldGVyc2V0Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHBhcmFtZXRlcnNldCwg
TWFya0RlY29yYXRvcikgYW5kIGxlZ2FjeV9mb3JjZV90dXBsZToKLSAgICAgICAgICAgIHJldHVy
biBjbHMucGFyYW0ocGFyYW1ldGVyc2V0KQotCi0gICAgICAgIG5ld21hcmtzID0gW10KLSAgICAg
ICAgYXJndmFsID0gcGFyYW1ldGVyc2V0Ci0gICAgICAgIHdoaWxlIGlzaW5zdGFuY2UoYXJndmFs
LCBNYXJrRGVjb3JhdG9yKToKLSAgICAgICAgICAgIG5ld21hcmtzLmFwcGVuZChNYXJrRGVjb3Jh
dG9yKE1hcmsoCi0gICAgICAgICAgICAgICAgYXJndmFsLm1hcmtuYW1lLCBhcmd2YWwuYXJnc1s6
LTFdLCBhcmd2YWwua3dhcmdzKSkpCi0gICAgICAgICAgICBhcmd2YWwgPSBhcmd2YWwuYXJnc1st
MV0KLSAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKGFyZ3ZhbCwgUGFyYW1ldGVyU2V0KQot
ICAgICAgICBpZiBsZWdhY3lfZm9yY2VfdHVwbGU6Ci0gICAgICAgICAgICBhcmd2YWwgPSBhcmd2
YWwsCi0KLSAgICAgICAgaWYgbmV3bWFya3M6Ci0gICAgICAgICAgICB3YXJuaW5ncy53YXJuKE1B
UktfUEFSQU1FVEVSU0VUX1VOUEFDS0lORykKLQotICAgICAgICByZXR1cm4gY2xzKGFyZ3ZhbCwg
bWFya3M9bmV3bWFya3MsIGlkPU5vbmUpCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX2Zv
cl9wYXJhbWV0ZXJpemUoY2xzLCBhcmduYW1lcywgYXJndmFsdWVzLCBmdW5jdGlvbik6Ci0gICAg
ICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ25hbWVzLCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAg
ICAgIGFyZ25hbWVzID0gW3guc3RyaXAoKSBmb3IgeCBpbiBhcmduYW1lcy5zcGxpdCgiLCIpIGlm
IHguc3RyaXAoKV0KLSAgICAgICAgICAgIGZvcmNlX3R1cGxlID0gbGVuKGFyZ25hbWVzKSA9PSAx
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmb3JjZV90dXBsZSA9IEZhbHNlCi0gICAgICAg
IHBhcmFtZXRlcnMgPSBbCi0gICAgICAgICAgICBQYXJhbWV0ZXJTZXQuZXh0cmFjdF9mcm9tKHgs
IGxlZ2FjeV9mb3JjZV90dXBsZT1mb3JjZV90dXBsZSkKLSAgICAgICAgICAgIGZvciB4IGluIGFy
Z3ZhbHVlc10KLSAgICAgICAgZGVsIGFyZ3ZhbHVlcwotCi0gICAgICAgIGlmIG5vdCBwYXJhbWV0
ZXJzOgotICAgICAgICAgICAgZnMsIGxpbmVubyA9IGdldGZzbGluZW5vKGZ1bmN0aW9uKQotICAg
ICAgICAgICAgcmVhc29uID0gImdvdCBlbXB0eSBwYXJhbWV0ZXIgc2V0ICVyLCBmdW5jdGlvbiAl
cyBhdCAlczolZCIgJSAoCi0gICAgICAgICAgICAgICAgYXJnbmFtZXMsIGZ1bmN0aW9uLl9fbmFt
ZV9fLCBmcywgbGluZW5vKQotICAgICAgICAgICAgbWFyayA9IE1BUktfR0VOLnNraXAocmVhc29u
PXJlYXNvbikKLSAgICAgICAgICAgIHBhcmFtZXRlcnMuYXBwZW5kKFBhcmFtZXRlclNldCgKLSAg
ICAgICAgICAgICAgICB2YWx1ZXM9KE5PVFNFVCwpICogbGVuKGFyZ25hbWVzKSwKLSAgICAgICAg
ICAgICAgICBtYXJrcz1bbWFya10sCi0gICAgICAgICAgICAgICAgaWQ9Tm9uZSwKLSAgICAgICAg
ICAgICkpCi0gICAgICAgIHJldHVybiBhcmduYW1lcywgcGFyYW1ldGVycwotCi0KLWNsYXNzIE1h
cmtlckVycm9yKEV4Y2VwdGlvbik6Ci0KLSAgICAiIiJFcnJvciBpbiB1c2Ugb2YgYSBweXRlc3Qg
bWFya2VyL2F0dHJpYnV0ZS4iIiIKLQotCi1kZWYgcGFyYW0oKnZhbHVlcywgKiprdyk6Ci0gICAg
cmV0dXJuIFBhcmFtZXRlclNldC5wYXJhbSgqdmFsdWVzLCAqKmt3KQotCi0KLWRlZiBweXRlc3Rf
YWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwi
KQotICAgIGdyb3VwLl9hZGRvcHRpb24oCi0gICAgICAgICctaycsCi0gICAgICAgIGFjdGlvbj0i
c3RvcmUiLCBkZXN0PSJrZXl3b3JkIiwgZGVmYXVsdD0nJywgbWV0YXZhcj0iRVhQUkVTU0lPTiIs
Ci0gICAgICAgIGhlbHA9Im9ubHkgcnVuIHRlc3RzIHdoaWNoIG1hdGNoIHRoZSBnaXZlbiBzdWJz
dHJpbmcgZXhwcmVzc2lvbi4gIgotICAgICAgICAgICAgICJBbiBleHByZXNzaW9uIGlzIGEgcHl0
aG9uIGV2YWx1YXRhYmxlIGV4cHJlc3Npb24gIgotICAgICAgICAgICAgICJ3aGVyZSBhbGwgbmFt
ZXMgYXJlIHN1YnN0cmluZy1tYXRjaGVkIGFnYWluc3QgdGVzdCBuYW1lcyAiCi0gICAgICAgICAg
ICAgImFuZCB0aGVpciBwYXJlbnQgY2xhc3Nlcy4gRXhhbXBsZTogLWsgJ3Rlc3RfbWV0aG9kIG9y
IHRlc3RfIgotICAgICAgICAgICAgICJvdGhlcicgbWF0Y2hlcyBhbGwgdGVzdCBmdW5jdGlvbnMg
YW5kIGNsYXNzZXMgd2hvc2UgbmFtZSAiCi0gICAgICAgICAgICAgImNvbnRhaW5zICd0ZXN0X21l
dGhvZCcgb3IgJ3Rlc3Rfb3RoZXInLCB3aGlsZSAtayAnbm90IHRlc3RfbWV0aG9kJyAiCi0gICAg
ICAgICAgICAgIm1hdGNoZXMgdGhvc2UgdGhhdCBkb24ndCBjb250YWluICd0ZXN0X21ldGhvZCcg
aW4gdGhlaXIgbmFtZXMuICIKLSAgICAgICAgICAgICAiQWRkaXRpb25hbGx5IGtleXdvcmRzIGFy
ZSBtYXRjaGVkIHRvIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyAiCi0gICAgICAgICAgICAgImNvbnRh
aW5pbmcgZXh0cmEgbmFtZXMgaW4gdGhlaXIgJ2V4dHJhX2tleXdvcmRfbWF0Y2hlcycgc2V0LCAi
Ci0gICAgICAgICAgICAgImFzIHdlbGwgYXMgZnVuY3Rpb25zIHdoaWNoIGhhdmUgbmFtZXMgYXNz
aWduZWQgZGlyZWN0bHkgdG8gdGhlbS4iCi0gICAgKQotCi0gICAgZ3JvdXAuX2FkZG9wdGlvbigK
LSAgICAgICAgIi1tIiwKLSAgICAgICAgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9Im1hcmtleHByIiwg
ZGVmYXVsdD0iIiwgbWV0YXZhcj0iTUFSS0VYUFIiLAotICAgICAgICBoZWxwPSJvbmx5IHJ1biB0
ZXN0cyBtYXRjaGluZyBnaXZlbiBtYXJrIGV4cHJlc3Npb24uICAiCi0gICAgICAgICAgICAgImV4
YW1wbGU6IC1tICdtYXJrMSBhbmQgbm90IG1hcmsyJy4iCi0gICAgKQotCi0gICAgZ3JvdXAuYWRk
b3B0aW9uKAotICAgICAgICAiLS1tYXJrZXJzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAg
ICAgaGVscD0ic2hvdyBtYXJrZXJzIChidWlsdGluLCBwbHVnaW4gYW5kIHBlci1wcm9qZWN0IG9u
ZXMpLiIKLSAgICApCi0KLSAgICBwYXJzZXIuYWRkaW5pKCJtYXJrZXJzIiwgIm1hcmtlcnMgZm9y
IHRlc3QgZnVuY3Rpb25zIiwgJ2xpbmVsaXN0JykKLQotCi1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFp
bihjb25maWcpOgotICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZwotICAgIGlmIGNvbmZpZy5vcHRp
b24ubWFya2VyczoKLSAgICAgICAgY29uZmlnLl9kb19jb25maWd1cmUoKQotICAgICAgICB0dyA9
IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5hbF93cml0ZXIoY29uZmlnKQotICAgICAgICBm
b3IgbGluZSBpbiBjb25maWcuZ2V0aW5pKCJtYXJrZXJzIik6Ci0gICAgICAgICAgICBwYXJ0cyA9
IGxpbmUuc3BsaXQoIjoiLCAxKQotICAgICAgICAgICAgbmFtZSA9IHBhcnRzWzBdCi0gICAgICAg
ICAgICByZXN0ID0gcGFydHNbMV0gaWYgbGVuKHBhcnRzKSA9PSAyIGVsc2UgJycKLSAgICAgICAg
ICAgIHR3LndyaXRlKCJAcHl0ZXN0Lm1hcmsuJXM6IiAlIG5hbWUsIGJvbGQ9VHJ1ZSkKLSAgICAg
ICAgICAgIHR3LmxpbmUocmVzdCkKLSAgICAgICAgICAgIHR3LmxpbmUoKQotICAgICAgICBjb25m
aWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSgpCi0gICAgICAgIHJldHVybiAwCi0KLQotcHl0ZXN0X2Nt
ZGxpbmVfbWFpbi50cnlmaXJzdCA9IFRydWUKLQotCi1kZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9k
aWZ5aXRlbXMoaXRlbXMsIGNvbmZpZyk6Ci0gICAga2V5d29yZGV4cHIgPSBjb25maWcub3B0aW9u
LmtleXdvcmQubHN0cmlwKCkKLSAgICBtYXRjaGV4cHIgPSBjb25maWcub3B0aW9uLm1hcmtleHBy
Ci0gICAgaWYgbm90IGtleXdvcmRleHByIGFuZCBub3QgbWF0Y2hleHByOgotICAgICAgICByZXR1
cm4KLSAgICAjIHB5dGVzdCB1c2VkIHRvIGFsbG93ICItIiBmb3IgbmVnYXRpbmcKLSAgICAjIGJ1
dCB0b2RheSB3ZSBqdXN0IGFsbG93ICItIiBhdCB0aGUgYmVnaW5uaW5nLCB1c2UgIm5vdCIgaW5z
dGVhZAotICAgICMgd2UgcHJvYmFibHkgcmVtb3ZlICItIiBhbHRvZ2V0aGVyIHNvb24KLSAgICBp
ZiBrZXl3b3JkZXhwci5zdGFydHN3aXRoKCItIik6Ci0gICAgICAgIGtleXdvcmRleHByID0gIm5v
dCAiICsga2V5d29yZGV4cHJbMTpdCi0gICAgc2VsZWN0dW50aWwgPSBGYWxzZQotICAgIGlmIGtl
eXdvcmRleHByWy0xOl0gPT0gIjoiOgotICAgICAgICBzZWxlY3R1bnRpbCA9IFRydWUKLSAgICAg
ICAga2V5d29yZGV4cHIgPSBrZXl3b3JkZXhwcls6LTFdCi0KLSAgICByZW1haW5pbmcgPSBbXQot
ICAgIGRlc2VsZWN0ZWQgPSBbXQotICAgIGZvciBjb2xpdGVtIGluIGl0ZW1zOgotICAgICAgICBp
ZiBrZXl3b3JkZXhwciBhbmQgbm90IG1hdGNoa2V5d29yZChjb2xpdGVtLCBrZXl3b3JkZXhwcik6
Ci0gICAgICAgICAgICBkZXNlbGVjdGVkLmFwcGVuZChjb2xpdGVtKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgaWYgc2VsZWN0dW50aWw6Ci0gICAgICAgICAgICAgICAga2V5d29yZGV4cHIg
PSBOb25lCi0gICAgICAgICAgICBpZiBtYXRjaGV4cHI6Ci0gICAgICAgICAgICAgICAgaWYgbm90
IG1hdGNobWFyayhjb2xpdGVtLCBtYXRjaGV4cHIpOgotICAgICAgICAgICAgICAgICAgICBkZXNl
bGVjdGVkLmFwcGVuZChjb2xpdGVtKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAg
ICAgICAgICAgcmVtYWluaW5nLmFwcGVuZChjb2xpdGVtKQotCi0gICAgaWYgZGVzZWxlY3RlZDoK
LSAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X2Rlc2VsZWN0ZWQoaXRlbXM9ZGVzZWxlY3RlZCkK
LSAgICAgICAgaXRlbXNbOl0gPSByZW1haW5pbmcKLQotCi1AYXR0ci5zCi1jbGFzcyBNYXJrTWFw
cGluZyhvYmplY3QpOgotICAgICIiIlByb3ZpZGVzIGEgbG9jYWwgbWFwcGluZyBmb3IgbWFya2Vy
cyB3aGVyZSBpdGVtIGFjY2VzcwotICAgIHJlc29sdmVzIHRvIFRydWUgaWYgdGhlIG1hcmtlciBp
cyBwcmVzZW50LiAiIiIKLQotICAgIG93bl9tYXJrX25hbWVzID0gYXR0ci5pYigpCi0KLSAgICBA
Y2xhc3NtZXRob2QKLSAgICBkZWYgZnJvbV9rZXl3b3JkcyhjbHMsIGtleXdvcmRzKToKLSAgICAg
ICAgbWFya19uYW1lcyA9IHNldCgpCi0gICAgICAgIGZvciBrZXksIHZhbHVlIGluIGtleXdvcmRz
Lml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBNYXJrSW5mbykgb3Ig
aXNpbnN0YW5jZSh2YWx1ZSwgTWFya0RlY29yYXRvcik6Ci0gICAgICAgICAgICAgICAgbWFya19u
YW1lcy5hZGQoa2V5KQotICAgICAgICByZXR1cm4gY2xzKG1hcmtfbmFtZXMpCi0KLSAgICBkZWYg
X19nZXRpdGVtX18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBuYW1lIGluIHNlbGYub3du
X21hcmtfbmFtZXMKLQotCi1jbGFzcyBLZXl3b3JkTWFwcGluZyhvYmplY3QpOgotICAgICIiIlBy
b3ZpZGVzIGEgbG9jYWwgbWFwcGluZyBmb3Iga2V5d29yZHMuCi0gICAgR2l2ZW4gYSBsaXN0IG9m
IG5hbWVzLCBtYXAgYW55IHN1YnN0cmluZyBvZiBvbmUgb2YgdGhlc2UgbmFtZXMgdG8gVHJ1ZS4K
LSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lcyk6Ci0gICAgICAgIHNlbGYu
X25hbWVzID0gbmFtZXMKLQotICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBzdWJuYW1lKToKLSAg
ICAgICAgZm9yIG5hbWUgaW4gc2VsZi5fbmFtZXM6Ci0gICAgICAgICAgICBpZiBzdWJuYW1lIGlu
IG5hbWU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNl
Ci0KLQotZGVmIG1hdGNobWFyayhjb2xpdGVtLCBtYXJrZXhwcik6Ci0gICAgIiIiVHJpZXMgdG8g
bWF0Y2ggb24gYW55IG1hcmtlciBuYW1lcywgYXR0YWNoZWQgdG8gdGhlIGdpdmVuIGNvbGl0ZW0u
IiIiCi0gICAgcmV0dXJuIGV2YWwobWFya2V4cHIsIHt9LCBNYXJrTWFwcGluZy5mcm9tX2tleXdv
cmRzKGNvbGl0ZW0ua2V5d29yZHMpKQotCi0KLWRlZiBtYXRjaGtleXdvcmQoY29saXRlbSwga2V5
d29yZGV4cHIpOgotICAgICIiIlRyaWVzIHRvIG1hdGNoIGdpdmVuIGtleXdvcmQgZXhwcmVzc2lv
biB0byBnaXZlbiBjb2xsZWN0b3IgaXRlbS4KLQotICAgIFdpbGwgbWF0Y2ggb24gdGhlIG5hbWUg
b2YgY29saXRlbSwgaW5jbHVkaW5nIHRoZSBuYW1lcyBvZiBpdHMgcGFyZW50cy4KLSAgICBPbmx5
IG1hdGNoZXMgbmFtZXMgb2YgaXRlbXMgd2hpY2ggYXJlIGVpdGhlciBhIDpjbGFzczpgQ2xhc3Ng
IG9yIGEKLSAgICA6Y2xhc3M6YEZ1bmN0aW9uYC4KLSAgICBBZGRpdGlvbmFsbHksIG1hdGNoZXMg
b24gbmFtZXMgaW4gdGhlICdleHRyYV9rZXl3b3JkX21hdGNoZXMnIHNldCBvZgotICAgIGFueSBp
dGVtLCBhcyB3ZWxsIGFzIG5hbWVzIGRpcmVjdGx5IGFzc2lnbmVkIHRvIHRlc3QgZnVuY3Rpb25z
LgotICAgICIiIgotICAgIG1hcHBlZF9uYW1lcyA9IHNldCgpCi0KLSAgICAjIEFkZCB0aGUgbmFt
ZXMgb2YgdGhlIGN1cnJlbnQgaXRlbSBhbmQgYW55IHBhcmVudCBpdGVtcwotICAgIGltcG9ydCBw
eXRlc3QKLSAgICBmb3IgaXRlbSBpbiBjb2xpdGVtLmxpc3RjaGFpbigpOgotICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShpdGVtLCBweXRlc3QuSW5zdGFuY2UpOgotICAgICAgICAgICAgbWFwcGVk
X25hbWVzLmFkZChpdGVtLm5hbWUpCi0KLSAgICAjIEFkZCB0aGUgbmFtZXMgYWRkZWQgYXMgZXh0
cmEga2V5d29yZHMgdG8gY3VycmVudCBvciBwYXJlbnQgaXRlbXMKLSAgICBmb3IgbmFtZSBpbiBj
b2xpdGVtLmxpc3RleHRyYWtleXdvcmRzKCk6Ci0gICAgICAgIG1hcHBlZF9uYW1lcy5hZGQobmFt
ZSkKLQotICAgICMgQWRkIHRoZSBuYW1lcyBhdHRhY2hlZCB0byB0aGUgY3VycmVudCBmdW5jdGlv
biB0aHJvdWdoIGRpcmVjdCBhc3NpZ25tZW50Ci0gICAgaWYgaGFzYXR0cihjb2xpdGVtLCAnZnVu
Y3Rpb24nKToKLSAgICAgICAgZm9yIG5hbWUgaW4gY29saXRlbS5mdW5jdGlvbi5fX2RpY3RfXzoK
LSAgICAgICAgICAgIG1hcHBlZF9uYW1lcy5hZGQobmFtZSkKLQotICAgIG1hcHBpbmcgPSBLZXl3
b3JkTWFwcGluZyhtYXBwZWRfbmFtZXMpCi0gICAgaWYgIiAiIG5vdCBpbiBrZXl3b3JkZXhwcjoK
LSAgICAgICAgIyBzcGVjaWFsIGNhc2UgdG8gYWxsb3cgZm9yIHNpbXBsZSAiLWsgcGFzcyIgYW5k
ICItayAxLjMiCi0gICAgICAgIHJldHVybiBtYXBwaW5nW2tleXdvcmRleHByXQotICAgIGVsaWYg
a2V5d29yZGV4cHIuc3RhcnRzd2l0aCgibm90ICIpIGFuZCAiICIgbm90IGluIGtleXdvcmRleHBy
WzQ6XToKLSAgICAgICAgcmV0dXJuIG5vdCBtYXBwaW5nW2tleXdvcmRleHByWzQ6XV0KLSAgICBy
ZXR1cm4gZXZhbChrZXl3b3JkZXhwciwge30sIG1hcHBpbmcpCi0KLQotZGVmIHB5dGVzdF9jb25m
aWd1cmUoY29uZmlnKToKLSAgICBjb25maWcuX29sZF9tYXJrX2NvbmZpZyA9IE1BUktfR0VOLl9j
b25maWcKLSAgICBpZiBjb25maWcub3B0aW9uLnN0cmljdDoKLSAgICAgICAgTUFSS19HRU4uX2Nv
bmZpZyA9IGNvbmZpZwotCi0KLWRlZiBweXRlc3RfdW5jb25maWd1cmUoY29uZmlnKToKLSAgICBN
QVJLX0dFTi5fY29uZmlnID0gZ2V0YXR0cihjb25maWcsICdfb2xkX21hcmtfY29uZmlnJywgTm9u
ZSkKLQotCi1jbGFzcyBNYXJrR2VuZXJhdG9yOgotICAgICIiIiBGYWN0b3J5IGZvciA6Y2xhc3M6
YE1hcmtEZWNvcmF0b3JgIG9iamVjdHMgLSBleHBvc2VkIGFzCi0gICAgYSBgYHB5dGVzdC5tYXJr
YGAgc2luZ2xldG9uIGluc3RhbmNlLiAgRXhhbXBsZTo6Ci0KLSAgICAgICAgIGltcG9ydCBweXRl
c3QKLSAgICAgICAgIEBweXRlc3QubWFyay5zbG93dGVzdAotICAgICAgICAgZGVmIHRlc3RfZnVu
Y3Rpb24oKToKLSAgICAgICAgICAgIHBhc3MKLQotICAgIHdpbGwgc2V0IGEgJ3Nsb3d0ZXN0JyA6
Y2xhc3M6YE1hcmtJbmZvYCBvYmplY3QKLSAgICBvbiB0aGUgYGB0ZXN0X2Z1bmN0aW9uYGAgb2Jq
ZWN0LiAiIiIKLSAgICBfY29uZmlnID0gTm9uZQotCi0gICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYs
IG5hbWUpOgotICAgICAgICBpZiBuYW1lWzBdID09ICJfIjoKLSAgICAgICAgICAgIHJhaXNlIEF0
dHJpYnV0ZUVycm9yKCJNYXJrZXIgbmFtZSBtdXN0IE5PVCBzdGFydCB3aXRoIHVuZGVyc2NvcmUi
KQotICAgICAgICBpZiBzZWxmLl9jb25maWcgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxm
Ll9jaGVjayhuYW1lKQotICAgICAgICByZXR1cm4gTWFya0RlY29yYXRvcihNYXJrKG5hbWUsICgp
LCB7fSkpCi0KLSAgICBkZWYgX2NoZWNrKHNlbGYsIG5hbWUpOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBpZiBuYW1lIGluIHNlbGYuX21hcmtlcnM6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHBhc3MKLSAgICAg
ICAgc2VsZi5fbWFya2VycyA9IHZhbHVlcyA9IHNldCgpCi0gICAgICAgIGZvciBsaW5lIGluIHNl
bGYuX2NvbmZpZy5nZXRpbmkoIm1hcmtlcnMiKToKLSAgICAgICAgICAgIG1hcmtlciA9IGxpbmUu
c3BsaXQoIjoiLCAxKVswXQotICAgICAgICAgICAgbWFya2VyID0gbWFya2VyLnJzdHJpcCgpCi0g
ICAgICAgICAgICB4ID0gbWFya2VyLnNwbGl0KCIoIiwgMSlbMF0KLSAgICAgICAgICAgIHZhbHVl
cy5hZGQoeCkKLSAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5fbWFya2VyczoKLSAgICAgICAg
ICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCIlciBub3QgYSByZWdpc3RlcmVkIG1hcmtlciIgJSAo
bmFtZSwpKQotCi0KLWRlZiBpc3Rlc3RmdW5jKGZ1bmMpOgotICAgIHJldHVybiBoYXNhdHRyKGZ1
bmMsICJfX2NhbGxfXyIpIGFuZCBcCi0gICAgICAgIGdldGF0dHIoZnVuYywgIl9fbmFtZV9fIiwg
IjxsYW1iZGE+IikgIT0gIjxsYW1iZGE+IgotCi0KLUBhdHRyLnMoZnJvemVuPVRydWUpCi1jbGFz
cyBNYXJrKG9iamVjdCk6Ci0gICAgbmFtZSA9IGF0dHIuaWIoKQotICAgIGFyZ3MgPSBhdHRyLmli
KCkKLSAgICBrd2FyZ3MgPSBhdHRyLmliKCkKLQotICAgIGRlZiBjb21iaW5lZF93aXRoKHNlbGYs
IG90aGVyKToKLSAgICAgICAgYXNzZXJ0IHNlbGYubmFtZSA9PSBvdGhlci5uYW1lCi0gICAgICAg
IHJldHVybiBNYXJrKAotICAgICAgICAgICAgc2VsZi5uYW1lLCBzZWxmLmFyZ3MgKyBvdGhlci5h
cmdzLAotICAgICAgICAgICAgZGljdChzZWxmLmt3YXJncywgKipvdGhlci5rd2FyZ3MpKQotCi0K
LUBhdHRyLnMKLWNsYXNzIE1hcmtEZWNvcmF0b3Iob2JqZWN0KToKLSAgICAiIiIgQSBkZWNvcmF0
b3IgZm9yIHRlc3QgZnVuY3Rpb25zIGFuZCB0ZXN0IGNsYXNzZXMuICBXaGVuIGFwcGxpZWQKLSAg
ICBpdCB3aWxsIGNyZWF0ZSA6Y2xhc3M6YE1hcmtJbmZvYCBvYmplY3RzIHdoaWNoIG1heSBiZQot
ICAgIDpyZWY6YHJldHJpZXZlZCBieSBob29rcyBhcyBpdGVtIGtleXdvcmRzIDxleGNvbnRyb2xz
a2lwPmAuCi0gICAgTWFya0RlY29yYXRvciBpbnN0YW5jZXMgYXJlIG9mdGVuIGNyZWF0ZWQgbGlr
ZSB0aGlzOjoKLQotICAgICAgICBtYXJrMSA9IHB5dGVzdC5tYXJrLk5BTUUgICAgICAgICAgICAg
ICMgc2ltcGxlIE1hcmtEZWNvcmF0b3IKLSAgICAgICAgbWFyazIgPSBweXRlc3QubWFyay5OQU1F
KG5hbWUxPXZhbHVlKSAjIHBhcmFtZXRyaXplZCBNYXJrRGVjb3JhdG9yCi0KLSAgICBhbmQgY2Fu
IHRoZW4gYmUgYXBwbGllZCBhcyBkZWNvcmF0b3JzIHRvIHRlc3QgZnVuY3Rpb25zOjoKLQotICAg
ICAgICBAbWFyazIKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKLSAgICAgICAgICAgIHBh
c3MKLQotICAgIFdoZW4gYSBNYXJrRGVjb3JhdG9yIGluc3RhbmNlIGlzIGNhbGxlZCBpdCBkb2Vz
IHRoZSBmb2xsb3dpbmc6Ci0gICAgICAxLiBJZiBjYWxsZWQgd2l0aCBhIHNpbmdsZSBjbGFzcyBh
cyBpdHMgb25seSBwb3NpdGlvbmFsIGFyZ3VtZW50IGFuZCBubwotICAgICAgICAgYWRkaXRpb25h
bCBrZXl3b3JkIGFyZ3VtZW50cywgaXQgYXR0YWNoZXMgaXRzZWxmIHRvIHRoZSBjbGFzcyBzbyBp
dAotICAgICAgICAgZ2V0cyBhcHBsaWVkIGF1dG9tYXRpY2FsbHkgdG8gYWxsIHRlc3QgY2FzZXMg
Zm91bmQgaW4gdGhhdCBjbGFzcy4KLSAgICAgIDIuIElmIGNhbGxlZCB3aXRoIGEgc2luZ2xlIGZ1
bmN0aW9uIGFzIGl0cyBvbmx5IHBvc2l0aW9uYWwgYXJndW1lbnQgYW5kCi0gICAgICAgICBubyBh
ZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnRzLCBpdCBhdHRhY2hlcyBhIE1hcmtJbmZvIG9iamVj
dCB0byB0aGUKLSAgICAgICAgIGZ1bmN0aW9uLCBjb250YWluaW5nIGFsbCB0aGUgYXJndW1lbnRz
IGFscmVhZHkgc3RvcmVkIGludGVybmFsbHkgaW4KLSAgICAgICAgIHRoZSBNYXJrRGVjb3JhdG9y
LgotICAgICAgMy4gV2hlbiBjYWxsZWQgaW4gYW55IG90aGVyIGNhc2UsIGl0IHBlcmZvcm1zIGEg
J2Zha2UgY29uc3RydWN0aW9uJyBjYWxsLAotICAgICAgICAgaS5lLiBpdCByZXR1cm5zIGEgbmV3
IE1hcmtEZWNvcmF0b3IgaW5zdGFuY2Ugd2l0aCB0aGUgb3JpZ2luYWwKLSAgICAgICAgIE1hcmtE
ZWNvcmF0b3IncyBjb250ZW50IHVwZGF0ZWQgd2l0aCB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byB0
aGlzCi0gICAgICAgICBjYWxsLgotCi0gICAgTm90ZTogVGhlIHJ1bGVzIGFib3ZlIHByZXZlbnQg
TWFya0RlY29yYXRvciBvYmplY3RzIGZyb20gc3RvcmluZyBvbmx5IGEKLSAgICBzaW5nbGUgZnVu
Y3Rpb24gb3IgY2xhc3MgcmVmZXJlbmNlIGFzIHRoZWlyIHBvc2l0aW9uYWwgYXJndW1lbnQgd2l0
aCBubwotICAgIGFkZGl0aW9uYWwga2V5d29yZCBvciBwb3NpdGlvbmFsIGFyZ3VtZW50cy4KLQot
ICAgICIiIgotCi0gICAgbWFyayA9IGF0dHIuaWIodmFsaWRhdG9yPWF0dHIudmFsaWRhdG9ycy5p
bnN0YW5jZV9vZihNYXJrKSkKLQotICAgIG5hbWUgPSBhbGlhcygnbWFyay5uYW1lJykKLSAgICBh
cmdzID0gYWxpYXMoJ21hcmsuYXJncycpCi0gICAga3dhcmdzID0gYWxpYXMoJ21hcmsua3dhcmdz
JykKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBtYXJrbmFtZShzZWxmKToKLSAgICAgICAgcmV0
dXJuIHNlbGYubmFtZSAgIyBmb3IgYmFja3dhcmQtY29tcGF0ICgyLjQuMSBoYWQgdGhpcyBhdHRy
KQotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHJldHVybiBzZWxmLm1h
cmsgPT0gb3RoZXIubWFyayBpZiBpc2luc3RhbmNlKG90aGVyLCBNYXJrRGVjb3JhdG9yKSBlbHNl
IEZhbHNlCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPE1hcmtE
ZWNvcmF0b3IgJXI+IiAlIChzZWxmLm1hcmssKQotCi0gICAgZGVmIHdpdGhfYXJncyhzZWxmLCAq
YXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiIgcmV0dXJuIGEgTWFya0RlY29yYXRvciB3aXRo
IGV4dHJhIGFyZ3VtZW50cyBhZGRlZAotCi0gICAgICAgIHVubGlrZSBjYWxsIHRoaXMgY2FuIGJl
IHVzZWQgZXZlbiBpZiB0aGUgc29sZSBhcmd1bWVudCBpcyBhIGNhbGxhYmxlL2NsYXNzCi0KLSAg
ICAgICAgOnJldHVybjogTWFya0RlY29yYXRvcgotICAgICAgICAiIiIKLQotICAgICAgICBtYXJr
ID0gTWFyayhzZWxmLm5hbWUsIGFyZ3MsIGt3YXJncykKLSAgICAgICAgcmV0dXJuIHNlbGYuX19j
bGFzc19fKHNlbGYubWFyay5jb21iaW5lZF93aXRoKG1hcmspKQotCi0gICAgZGVmIF9fY2FsbF9f
KHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICIiIiBpZiBwYXNzZWQgYSBzaW5nbGUg
Y2FsbGFibGUgYXJndW1lbnQ6IGRlY29yYXRlIGl0IHdpdGggbWFyayBpbmZvLgotICAgICAgICAg
ICAgb3RoZXJ3aXNlIGFkZCAqYXJncy8qKmt3YXJncyBpbi1wbGFjZSB0byBtYXJrIGluZm9ybWF0
aW9uLiAiIiIKLSAgICAgICAgaWYgYXJncyBhbmQgbm90IGt3YXJnczoKLSAgICAgICAgICAgIGZ1
bmMgPSBhcmdzWzBdCi0gICAgICAgICAgICBpc19jbGFzcyA9IGluc3BlY3QuaXNjbGFzcyhmdW5j
KQotICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID09IDEgYW5kIChpc3Rlc3RmdW5jKGZ1bmMpIG9y
IGlzX2NsYXNzKToKLSAgICAgICAgICAgICAgICBpZiBpc19jbGFzczoKLSAgICAgICAgICAgICAg
ICAgICAgc3RvcmVfbWFyayhmdW5jLCBzZWxmLm1hcmspCi0gICAgICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICAgICAgc3RvcmVfbGVnYWN5X21hcmtpbmZvKGZ1bmMsIHNlbGYubWFy
aykKLSAgICAgICAgICAgICAgICAgICAgc3RvcmVfbWFyayhmdW5jLCBzZWxmLm1hcmspCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGZ1bmMKLSAgICAgICAgcmV0dXJuIHNlbGYud2l0aF9hcmdzKCph
cmdzLCAqKmt3YXJncykKLQotCi1kZWYgZ2V0X3VucGFja2VkX21hcmtzKG9iaik6Ci0gICAgIiIi
Ci0gICAgb2J0YWluIHRoZSB1bnBhY2tlZCBtYXJrcyB0aGF0IGFyZSBzdG9yZWQgb24gYSBvYmpl
Y3QKLSAgICAiIiIKLSAgICBtYXJrX2xpc3QgPSBnZXRhdHRyKG9iaiwgJ3B5dGVzdG1hcmsnLCBb
XSkKLQotICAgIGlmIG5vdCBpc2luc3RhbmNlKG1hcmtfbGlzdCwgbGlzdCk6Ci0gICAgICAgIG1h
cmtfbGlzdCA9IFttYXJrX2xpc3RdCi0gICAgcmV0dXJuIFsKLSAgICAgICAgZ2V0YXR0cihtYXJr
LCAnbWFyaycsIG1hcmspICAjIHVucGFjayBNYXJrRGVjb3JhdG9yCi0gICAgICAgIGZvciBtYXJr
IGluIG1hcmtfbGlzdAotICAgIF0KLQotCi1kZWYgc3RvcmVfbWFyayhvYmosIG1hcmspOgotICAg
ICIiInN0b3JlIGEgTWFyayBvbiBhIG9iamVjdAotICAgIHRoaXMgaXMgdXNlZCB0byBpbXBsZW1l
bnQgdGhlIE1hcmsgZGVjbGFyYXRpb25zL2RlY29yYXRvcnMgY29ycmVjdGx5Ci0gICAgIiIiCi0g
ICAgYXNzZXJ0IGlzaW5zdGFuY2UobWFyaywgTWFyayksIG1hcmsKLSAgICAjIGFsd2F5cyByZWFz
c2lnbiBuYW1lIHRvIGF2b2lkIHVwZGF0aW5nIHB5dGVzdG1hcmsKLSAgICAjIGluIGEgcmVmZXJl
bmNlIHRoYXQgd2FzIG9ubHkgYm9ycm93ZWQKLSAgICBvYmoucHl0ZXN0bWFyayA9IGdldF91bnBh
Y2tlZF9tYXJrcyhvYmopICsgW21hcmtdCi0KLQotZGVmIHN0b3JlX2xlZ2FjeV9tYXJraW5mbyhm
dW5jLCBtYXJrKToKLSAgICAiIiJjcmVhdGUgdGhlIGxlZ2FjeSBNYXJrSW5mbyBvYmplY3RzIGFu
ZCBwdXQgdGhlbSBvbnRvIHRoZSBmdW5jdGlvbgotICAgICIiIgotICAgIGlmIG5vdCBpc2luc3Rh
bmNlKG1hcmssIE1hcmspOgotICAgICAgICByYWlzZSBUeXBlRXJyb3IoImdvdCB7bWFyayFyfSBp
bnN0ZWFkIG9mIGEgTWFyayIuZm9ybWF0KG1hcms9bWFyaykpCi0gICAgaG9sZGVyID0gZ2V0YXR0
cihmdW5jLCBtYXJrLm5hbWUsIE5vbmUpCi0gICAgaWYgaG9sZGVyIGlzIE5vbmU6Ci0gICAgICAg
IGhvbGRlciA9IE1hcmtJbmZvKG1hcmspCi0gICAgICAgIHNldGF0dHIoZnVuYywgbWFyay5uYW1l
LCBob2xkZXIpCi0gICAgZWxzZToKLSAgICAgICAgaG9sZGVyLmFkZF9tYXJrKG1hcmspCi0KLQot
Y2xhc3MgTWFya0luZm8ob2JqZWN0KToKLSAgICAiIiIgTWFya2luZyBvYmplY3QgY3JlYXRlZCBi
eSA6Y2xhc3M6YE1hcmtEZWNvcmF0b3JgIGluc3RhbmNlcy4gIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbWFyayk6Ci0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG1hcmssIE1hcmspLCBy
ZXByKG1hcmspCi0gICAgICAgIHNlbGYuY29tYmluZWQgPSBtYXJrCi0gICAgICAgIHNlbGYuX21h
cmtzID0gW21hcmtdCi0KLSAgICBuYW1lID0gYWxpYXMoJ2NvbWJpbmVkLm5hbWUnKQotICAgIGFy
Z3MgPSBhbGlhcygnY29tYmluZWQuYXJncycpCi0gICAga3dhcmdzID0gYWxpYXMoJ2NvbWJpbmVk
Lmt3YXJncycpCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPE1h
cmtJbmZvIHswIXJ9PiIuZm9ybWF0KHNlbGYuY29tYmluZWQpCi0KLSAgICBkZWYgYWRkX21hcmso
c2VsZiwgbWFyayk6Ci0gICAgICAgICIiIiBhZGQgYSBNYXJrSW5mbyB3aXRoIHRoZSBnaXZlbiBh
cmdzIGFuZCBrd2FyZ3MuICIiIgotICAgICAgICBzZWxmLl9tYXJrcy5hcHBlbmQobWFyaykKLSAg
ICAgICAgc2VsZi5jb21iaW5lZCA9IHNlbGYuY29tYmluZWQuY29tYmluZWRfd2l0aChtYXJrKQot
Ci0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAgICAgICAiIiIgeWllbGQgTWFya0luZm8gb2Jq
ZWN0cyBlYWNoIHJlbGF0aW5nIHRvIGEgbWFya2luZy1jYWxsLiAiIiIKLSAgICAgICAgcmV0dXJu
IG1hcChNYXJrSW5mbywgc2VsZi5fbWFya3MpCi0KLQotTUFSS19HRU4gPSBNYXJrR2VuZXJhdG9y
KCkKLQotCi1kZWYgX21hcmtlZChmdW5jLCBtYXJrKToKLSAgICAiIiIgUmV0dXJucyBUcnVlIGlm
IDpmdW5jOiBpcyBhbHJlYWR5IG1hcmtlZCB3aXRoIDptYXJrOiwgRmFsc2Ugb3RoZXJ3aXNlLgot
ICAgIFRoaXMgY2FuIGhhcHBlbiBpZiBtYXJrZXIgaXMgYXBwbGllZCB0byBjbGFzcyBhbmQgdGhl
IHRlc3QgZmlsZSBpcwotICAgIGludm9rZWQgbW9yZSB0aGFuIG9uY2UuCi0gICAgIiIiCi0gICAg
dHJ5OgotICAgICAgICBmdW5jX21hcmsgPSBnZXRhdHRyKGZ1bmMsIG1hcmsubmFtZSkKLSAgICBl
eGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIHJldHVybiBt
YXJrLmFyZ3MgPT0gZnVuY19tYXJrLmFyZ3MgYW5kIG1hcmsua3dhcmdzID09IGZ1bmNfbWFyay5r
d2FyZ3MKLQotCi1kZWYgdHJhbnNmZXJfbWFya2VycyhmdW5jb2JqLCBjbHMsIG1vZCk6Ci0gICAg
IiIiCi0gICAgdGhpcyBmdW5jdGlvbiB0cmFuc2ZlcnMgY2xhc3MgbGV2ZWwgbWFya2VycyBhbmQg
bW9kdWxlIGxldmVsIG1hcmtlcnMKLSAgICBpbnRvIGZ1bmN0aW9uIGxldmVsIG1hcmtpbmZvIG9i
amVjdHMKLQotICAgIHRoaXMgaXMgdGhlIG1haW4gcmVhc29uIHdoeSBtYXJrcyBhcmUgc28gYnJv
a2VuCi0gICAgdGhlIHJlc29sdXRpb24gd2lsbCBpbnZvbHZlIHBoYXNpbmcgb3V0IGZ1bmN0aW9u
IGxldmVsIE1hcmtJbmZvIG9iamVjdHMKLQotICAgICIiIgotICAgIGZvciBvYmogaW4gKGNscywg
bW9kKToKLSAgICAgICAgZm9yIG1hcmsgaW4gZ2V0X3VucGFja2VkX21hcmtzKG9iaik6Ci0gICAg
ICAgICAgICBpZiBub3QgX21hcmtlZChmdW5jb2JqLCBtYXJrKToKLSAgICAgICAgICAgICAgICBz
dG9yZV9sZWdhY3lfbWFya2luZm8oZnVuY29iaiwgbWFyaykKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvbW9ua2V5cGF0Y2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21vbmtleXBh
dGNoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGFlNTYwZjA3MDJiMTM2MGEz
MDlkOTE0NzMwMjkwM2IxMTc0ZTZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbW9ua2V5cGF0Y2gucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwyNTggKzAsMCBAQAotIiIiIG1vbmtleXBhdGNoaW5nIGFuZCBtb2NraW5nIGZ1
bmN0aW9uYWxpdHkuICAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1pbXBv
cnQgcmUKLWltcG9ydCBzaXgKLWZyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgZml4dHVyZQot
Ci1SRV9JTVBPUlRfRVJST1JfTkFNRSA9IHJlLmNvbXBpbGUoIl5ObyBtb2R1bGUgbmFtZWQgKC4q
KSQiKQotCi0KLUBmaXh0dXJlCi1kZWYgbW9ua2V5cGF0Y2goKToKLSAgICAiIiJUaGUgcmV0dXJu
ZWQgYGBtb25rZXlwYXRjaGBgIGZpeHR1cmUgcHJvdmlkZXMgdGhlc2UKLSAgICBoZWxwZXIgbWV0
aG9kcyB0byBtb2RpZnkgb2JqZWN0cywgZGljdGlvbmFyaWVzIG9yIG9zLmVudmlyb246OgotCi0g
ICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIob2JqLCBuYW1lLCB2YWx1ZSwgcmFpc2luZz1UcnVl
KQotICAgICAgICBtb25rZXlwYXRjaC5kZWxhdHRyKG9iaiwgbmFtZSwgcmFpc2luZz1UcnVlKQot
ICAgICAgICBtb25rZXlwYXRjaC5zZXRpdGVtKG1hcHBpbmcsIG5hbWUsIHZhbHVlKQotICAgICAg
ICBtb25rZXlwYXRjaC5kZWxpdGVtKG9iaiwgbmFtZSwgcmFpc2luZz1UcnVlKQotICAgICAgICBt
b25rZXlwYXRjaC5zZXRlbnYobmFtZSwgdmFsdWUsIHByZXBlbmQ9RmFsc2UpCi0gICAgICAgIG1v
bmtleXBhdGNoLmRlbGVudihuYW1lLCB2YWx1ZSwgcmFpc2luZz1UcnVlKQotICAgICAgICBtb25r
ZXlwYXRjaC5zeXNwYXRoX3ByZXBlbmQocGF0aCkKLSAgICAgICAgbW9ua2V5cGF0Y2guY2hkaXIo
cGF0aCkKLQotICAgIEFsbCBtb2RpZmljYXRpb25zIHdpbGwgYmUgdW5kb25lIGFmdGVyIHRoZSBy
ZXF1ZXN0aW5nCi0gICAgdGVzdCBmdW5jdGlvbiBvciBmaXh0dXJlIGhhcyBmaW5pc2hlZC4gVGhl
IGBgcmFpc2luZ2BgCi0gICAgcGFyYW1ldGVyIGRldGVybWluZXMgaWYgYSBLZXlFcnJvciBvciBB
dHRyaWJ1dGVFcnJvcgotICAgIHdpbGwgYmUgcmFpc2VkIGlmIHRoZSBzZXQvZGVsZXRpb24gb3Bl
cmF0aW9uIGhhcyBubyB0YXJnZXQuCi0gICAgIiIiCi0gICAgbXBhdGNoID0gTW9ua2V5UGF0Y2go
KQotICAgIHlpZWxkIG1wYXRjaAotICAgIG1wYXRjaC51bmRvKCkKLQotCi1kZWYgcmVzb2x2ZShu
YW1lKToKLSAgICAjIHNpbXBsaWZpZWQgZnJvbSB6b3BlLmRvdHRlZG5hbWUKLSAgICBwYXJ0cyA9
IG5hbWUuc3BsaXQoJy4nKQotCi0gICAgdXNlZCA9IHBhcnRzLnBvcCgwKQotICAgIGZvdW5kID0g
X19pbXBvcnRfXyh1c2VkKQotICAgIGZvciBwYXJ0IGluIHBhcnRzOgotICAgICAgICB1c2VkICs9
ICcuJyArIHBhcnQKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZm91bmQgPSBnZXRhdHRyKGZv
dW5kLCBwYXJ0KQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBw
YXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICAjIHdlIHVz
ZSBleHBsaWNpdCB1bi1uZXN0aW5nIG9mIHRoZSBoYW5kbGluZyBibG9jayBpbiBvcmRlcgotICAg
ICAgICAjIHRvIGF2b2lkIG5lc3RlZCBleGNlcHRpb25zIG9uIHB5dGhvbiAzCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIF9faW1wb3J0X18odXNlZCkKLSAgICAgICAgZXhjZXB0IEltcG9ydEVy
cm9yIGFzIGV4OgotICAgICAgICAgICAgIyBzdHIgaXMgdXNlZCBmb3IgcHkyIHZzIHB5MwotICAg
ICAgICAgICAgZXhwZWN0ZWQgPSBzdHIoZXgpLnNwbGl0KClbLTFdCi0gICAgICAgICAgICBpZiBl
eHBlY3RlZCA9PSB1c2VkOgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKAotICAgICAgICAgICAgICAgICAg
ICAnaW1wb3J0IGVycm9yIGluICVzOiAlcycgJSAodXNlZCwgZXgpCi0gICAgICAgICAgICAgICAg
KQotICAgICAgICBmb3VuZCA9IGFubm90YXRlZF9nZXRhdHRyKGZvdW5kLCBwYXJ0LCB1c2VkKQot
ICAgIHJldHVybiBmb3VuZAotCi0KLWRlZiBhbm5vdGF0ZWRfZ2V0YXR0cihvYmosIG5hbWUsIGFu
bik6Ci0gICAgdHJ5OgotICAgICAgICBvYmogPSBnZXRhdHRyKG9iaiwgbmFtZSkKLSAgICBleGNl
cHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKAotICAgICAg
ICAgICAgJyVyIG9iamVjdCBhdCAlcyBoYXMgbm8gYXR0cmlidXRlICVyJyAlICgKLSAgICAgICAg
ICAgICAgICB0eXBlKG9iaikuX19uYW1lX18sIGFubiwgbmFtZQotICAgICAgICAgICAgKQotICAg
ICAgICApCi0gICAgcmV0dXJuIG9iagotCi0KLWRlZiBkZXJpdmVfaW1wb3J0cGF0aChpbXBvcnRf
cGF0aCwgcmFpc2luZyk6Ci0gICAgaWYgbm90IGlzaW5zdGFuY2UoaW1wb3J0X3BhdGgsIHNpeC5z
dHJpbmdfdHlwZXMpIG9yICIuIiBub3QgaW4gaW1wb3J0X3BhdGg6Ci0gICAgICAgIHJhaXNlIFR5
cGVFcnJvcigibXVzdCBiZSBhYnNvbHV0ZSBpbXBvcnQgcGF0aCBzdHJpbmcsIG5vdCAlciIgJQot
ICAgICAgICAgICAgICAgICAgICAgICAgKGltcG9ydF9wYXRoLCkpCi0gICAgbW9kdWxlLCBhdHRy
ID0gaW1wb3J0X3BhdGgucnNwbGl0KCcuJywgMSkKLSAgICB0YXJnZXQgPSByZXNvbHZlKG1vZHVs
ZSkKLSAgICBpZiByYWlzaW5nOgotICAgICAgICBhbm5vdGF0ZWRfZ2V0YXR0cih0YXJnZXQsIGF0
dHIsIGFubj1tb2R1bGUpCi0gICAgcmV0dXJuIGF0dHIsIHRhcmdldAotCi0KLWNsYXNzIE5vdHNl
dDoKLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPG5vdHNldD4iCi0K
LQotbm90c2V0ID0gTm90c2V0KCkKLQotCi1jbGFzcyBNb25rZXlQYXRjaDoKLSAgICAiIiIgT2Jq
ZWN0IHJldHVybmVkIGJ5IHRoZSBgYG1vbmtleXBhdGNoYGAgZml4dHVyZSBrZWVwaW5nIGEgcmVj
b3JkIG9mIHNldGF0dHIvaXRlbS9lbnYvc3lzcGF0aCBjaGFuZ2VzLgotICAgICIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLl9zZXRhdHRyID0gW10KLSAgICAgICAg
c2VsZi5fc2V0aXRlbSA9IFtdCi0gICAgICAgIHNlbGYuX2N3ZCA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5fc2F2ZXN5c3BhdGggPSBOb25lCi0KLSAgICBkZWYgc2V0YXR0cihzZWxmLCB0YXJnZXQsIG5h
bWUsIHZhbHVlPW5vdHNldCwgcmFpc2luZz1UcnVlKToKLSAgICAgICAgIiIiIFNldCBhdHRyaWJ1
dGUgdmFsdWUgb24gdGFyZ2V0LCBtZW1vcml6aW5nIHRoZSBvbGQgdmFsdWUuCi0gICAgICAgIEJ5
IGRlZmF1bHQgcmFpc2UgQXR0cmlidXRlRXJyb3IgaWYgdGhlIGF0dHJpYnV0ZSBkaWQgbm90IGV4
aXN0LgotCi0gICAgICAgIEZvciBjb252ZW5pZW5jZSB5b3UgY2FuIHNwZWNpZnkgYSBzdHJpbmcg
YXMgYGB0YXJnZXRgYCB3aGljaAotICAgICAgICB3aWxsIGJlIGludGVycHJldGVkIGFzIGEgZG90
dGVkIGltcG9ydCBwYXRoLCB3aXRoIHRoZSBsYXN0IHBhcnQKLSAgICAgICAgYmVpbmcgdGhlIGF0
dHJpYnV0ZSBuYW1lLiAgRXhhbXBsZToKLSAgICAgICAgYGBtb25rZXlwYXRjaC5zZXRhdHRyKCJv
cy5nZXRjd2QiLCBsYW1iZGEgeDogIi8iKWBgCi0gICAgICAgIHdvdWxkIHNldCB0aGUgYGBnZXRj
d2RgYCBmdW5jdGlvbiBvZiB0aGUgYGBvc2BgIG1vZHVsZS4KLQotICAgICAgICBUaGUgYGByYWlz
aW5nYGAgdmFsdWUgZGV0ZXJtaW5lcyBpZiB0aGUgc2V0YXR0ciBzaG91bGQgZmFpbAotICAgICAg
ICBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBhbHJlYWR5IHByZXNlbnQgKGRlZmF1bHRzIHRvIFRy
dWUKLSAgICAgICAgd2hpY2ggbWVhbnMgaXQgd2lsbCByYWlzZSkuCi0gICAgICAgICIiIgotICAg
ICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgaW1wb3J0IGluc3BlY3QKLQot
ICAgICAgICBpZiB2YWx1ZSBpcyBub3RzZXQ6Ci0gICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5j
ZSh0YXJnZXQsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVF
cnJvcigidXNlIHNldGF0dHIodGFyZ2V0LCBuYW1lLCB2YWx1ZSkgb3IgIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic2V0YXR0cih0YXJnZXQsIHZhbHVlKSB3aXRoIHRhcmdldCBi
ZWluZyBhIGRvdHRlZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbXBvcnQg
c3RyaW5nIikKLSAgICAgICAgICAgIHZhbHVlID0gbmFtZQotICAgICAgICAgICAgbmFtZSwgdGFy
Z2V0ID0gZGVyaXZlX2ltcG9ydHBhdGgodGFyZ2V0LCByYWlzaW5nKQotCi0gICAgICAgIG9sZHZh
bCA9IGdldGF0dHIodGFyZ2V0LCBuYW1lLCBub3RzZXQpCi0gICAgICAgIGlmIHJhaXNpbmcgYW5k
IG9sZHZhbCBpcyBub3RzZXQ6Ci0gICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiJXIg
aGFzIG5vIGF0dHJpYnV0ZSAlciIgJSAodGFyZ2V0LCBuYW1lKSkKLQotICAgICAgICAjIGF2b2lk
IGNsYXNzIGRlc2NyaXB0b3JzIGxpa2Ugc3RhdGljbWV0aG9kL2NsYXNzbWV0aG9kCi0gICAgICAg
IGlmIGluc3BlY3QuaXNjbGFzcyh0YXJnZXQpOgotICAgICAgICAgICAgb2xkdmFsID0gdGFyZ2V0
Ll9fZGljdF9fLmdldChuYW1lLCBub3RzZXQpCi0gICAgICAgIHNlbGYuX3NldGF0dHIuYXBwZW5k
KCh0YXJnZXQsIG5hbWUsIG9sZHZhbCkpCi0gICAgICAgIHNldGF0dHIodGFyZ2V0LCBuYW1lLCB2
YWx1ZSkKLQotICAgIGRlZiBkZWxhdHRyKHNlbGYsIHRhcmdldCwgbmFtZT1ub3RzZXQsIHJhaXNp
bmc9VHJ1ZSk6Ci0gICAgICAgICIiIiBEZWxldGUgYXR0cmlidXRlIGBgbmFtZWBgIGZyb20gYGB0
YXJnZXRgYCwgYnkgZGVmYXVsdCByYWlzZQotICAgICAgICBBdHRyaWJ1dGVFcnJvciBpdCB0aGUg
YXR0cmlidXRlIGRpZCBub3QgcHJldmlvdXNseSBleGlzdC4KLQotICAgICAgICBJZiBubyBgYG5h
bWVgYCBpcyBzcGVjaWZpZWQgYW5kIGBgdGFyZ2V0YGAgaXMgYSBzdHJpbmcKLSAgICAgICAgaXQg
d2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhIGRvdHRlZCBpbXBvcnQgcGF0aCB3aXRoIHRoZQotICAg
ICAgICBsYXN0IHBhcnQgYmVpbmcgdGhlIGF0dHJpYnV0ZSBuYW1lLgotCi0gICAgICAgIElmIGBg
cmFpc2luZ2BgIGlzIHNldCB0byBGYWxzZSwgbm8gZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIGlm
IHRoZQotICAgICAgICBhdHRyaWJ1dGUgaXMgbWlzc2luZy4KLSAgICAgICAgIiIiCi0gICAgICAg
IF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICBpZiBuYW1lIGlzIG5vdHNldDoKLSAg
ICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHRhcmdldCwgc2l4LnN0cmluZ190eXBlcyk6Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJ1c2UgZGVsYXR0cih0YXJnZXQsIG5hbWUp
IG9yICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGF0dHIodGFyZ2V0KSB3
aXRoIHRhcmdldCBiZWluZyBhIGRvdHRlZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJpbXBvcnQgc3RyaW5nIikKLSAgICAgICAgICAgIG5hbWUsIHRhcmdldCA9IGRlcml2ZV9p
bXBvcnRwYXRoKHRhcmdldCwgcmFpc2luZykKLQotICAgICAgICBpZiBub3QgaGFzYXR0cih0YXJn
ZXQsIG5hbWUpOgotICAgICAgICAgICAgaWYgcmFpc2luZzoKLSAgICAgICAgICAgICAgICByYWlz
ZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5f
c2V0YXR0ci5hcHBlbmQoKHRhcmdldCwgbmFtZSwgZ2V0YXR0cih0YXJnZXQsIG5hbWUsIG5vdHNl
dCkpKQotICAgICAgICAgICAgZGVsYXR0cih0YXJnZXQsIG5hbWUpCi0KLSAgICBkZWYgc2V0aXRl
bShzZWxmLCBkaWMsIG5hbWUsIHZhbHVlKToKLSAgICAgICAgIiIiIFNldCBkaWN0aW9uYXJ5IGVu
dHJ5IGBgbmFtZWBgIHRvIHZhbHVlLiAiIiIKLSAgICAgICAgc2VsZi5fc2V0aXRlbS5hcHBlbmQo
KGRpYywgbmFtZSwgZGljLmdldChuYW1lLCBub3RzZXQpKSkKLSAgICAgICAgZGljW25hbWVdID0g
dmFsdWUKLQotICAgIGRlZiBkZWxpdGVtKHNlbGYsIGRpYywgbmFtZSwgcmFpc2luZz1UcnVlKToK
LSAgICAgICAgIiIiIERlbGV0ZSBgYG5hbWVgYCBmcm9tIGRpY3QuIFJhaXNlIEtleUVycm9yIGlm
IGl0IGRvZXNuJ3QgZXhpc3QuCi0KLSAgICAgICAgSWYgYGByYWlzaW5nYGAgaXMgc2V0IHRvIEZh
bHNlLCBubyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgaWYgdGhlCi0gICAgICAgIGtleSBpcyBt
aXNzaW5nLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgbmFtZSBub3QgaW4gZGljOgotICAgICAg
ICAgICAgaWYgcmFpc2luZzoKLSAgICAgICAgICAgICAgICByYWlzZSBLZXlFcnJvcihuYW1lKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fc2V0aXRlbS5hcHBlbmQoKGRpYywgbmFt
ZSwgZGljLmdldChuYW1lLCBub3RzZXQpKSkKLSAgICAgICAgICAgIGRlbCBkaWNbbmFtZV0KLQot
ICAgIGRlZiBzZXRlbnYoc2VsZiwgbmFtZSwgdmFsdWUsIHByZXBlbmQ9Tm9uZSk6Ci0gICAgICAg
ICIiIiBTZXQgZW52aXJvbm1lbnQgdmFyaWFibGUgYGBuYW1lYGAgdG8gYGB2YWx1ZWBgLiAgSWYg
YGBwcmVwZW5kYGAKLSAgICAgICAgaXMgYSBjaGFyYWN0ZXIsIHJlYWQgdGhlIGN1cnJlbnQgZW52
aXJvbm1lbnQgdmFyaWFibGUgdmFsdWUKLSAgICAgICAgYW5kIHByZXBlbmQgdGhlIGBgdmFsdWVg
YCBhZGpvaW5lZCB3aXRoIHRoZSBgYHByZXBlbmRgYCBjaGFyYWN0ZXIuIiIiCi0gICAgICAgIHZh
bHVlID0gc3RyKHZhbHVlKQotICAgICAgICBpZiBwcmVwZW5kIGFuZCBuYW1lIGluIG9zLmVudmly
b246Ci0gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlICsgcHJlcGVuZCArIG9zLmVudmlyb25bbmFt
ZV0KLSAgICAgICAgc2VsZi5zZXRpdGVtKG9zLmVudmlyb24sIG5hbWUsIHZhbHVlKQotCi0gICAg
ZGVmIGRlbGVudihzZWxmLCBuYW1lLCByYWlzaW5nPVRydWUpOgotICAgICAgICAiIiIgRGVsZXRl
IGBgbmFtZWBgIGZyb20gdGhlIGVudmlyb25tZW50LiBSYWlzZSBLZXlFcnJvciBpdCBkb2VzIG5v
dAotICAgICAgICBleGlzdC4KLQotICAgICAgICBJZiBgYHJhaXNpbmdgYCBpcyBzZXQgdG8gRmFs
c2UsIG5vIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCBpZiB0aGUKLSAgICAgICAgZW52aXJvbm1l
bnQgdmFyaWFibGUgaXMgbWlzc2luZy4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuZGVsaXRl
bShvcy5lbnZpcm9uLCBuYW1lLCByYWlzaW5nPXJhaXNpbmcpCi0KLSAgICBkZWYgc3lzcGF0aF9w
cmVwZW5kKHNlbGYsIHBhdGgpOgotICAgICAgICAiIiIgUHJlcGVuZCBgYHBhdGhgYCB0byBgYHN5
cy5wYXRoYGAgbGlzdCBvZiBpbXBvcnQgbG9jYXRpb25zLiAiIiIKLSAgICAgICAgaWYgc2VsZi5f
c2F2ZXN5c3BhdGggaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3NhdmVzeXNwYXRoID0gc3lz
LnBhdGhbOl0KLSAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHN0cihwYXRoKSkKLQotICAgIGRl
ZiBjaGRpcihzZWxmLCBwYXRoKToKLSAgICAgICAgIiIiIENoYW5nZSB0aGUgY3VycmVudCB3b3Jr
aW5nIGRpcmVjdG9yeSB0byB0aGUgc3BlY2lmaWVkIHBhdGguCi0gICAgICAgIFBhdGggY2FuIGJl
IGEgc3RyaW5nIG9yIGEgcHkucGF0aC5sb2NhbCBvYmplY3QuCi0gICAgICAgICIiIgotICAgICAg
ICBpZiBzZWxmLl9jd2QgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2N3ZCA9IG9zLmdldGN3
ZCgpCi0gICAgICAgIGlmIGhhc2F0dHIocGF0aCwgImNoZGlyIik6Ci0gICAgICAgICAgICBwYXRo
LmNoZGlyKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9zLmNoZGlyKHBhdGgpCi0KLSAg
ICBkZWYgdW5kbyhzZWxmKToKLSAgICAgICAgIiIiIFVuZG8gcHJldmlvdXMgY2hhbmdlcy4gIFRo
aXMgY2FsbCBjb25zdW1lcyB0aGUKLSAgICAgICAgdW5kbyBzdGFjay4gQ2FsbGluZyBpdCBhIHNl
Y29uZCB0aW1lIGhhcyBubyBlZmZlY3QgdW5sZXNzCi0gICAgICAgIHlvdSBkbyBtb3JlIG1vbmtl
eXBhdGNoaW5nIGFmdGVyIHRoZSB1bmRvIGNhbGwuCi0KLSAgICAgICAgVGhlcmUgaXMgZ2VuZXJh
bGx5IG5vIG5lZWQgdG8gY2FsbCBgdW5kbygpYCwgc2luY2UgaXQgaXMKLSAgICAgICAgY2FsbGVk
IGF1dG9tYXRpY2FsbHkgZHVyaW5nIHRlYXItZG93bi4KLQotICAgICAgICBOb3RlIHRoYXQgdGhl
IHNhbWUgYG1vbmtleXBhdGNoYCBmaXh0dXJlIGlzIHVzZWQgYWNyb3NzIGEKLSAgICAgICAgc2lu
Z2xlIHRlc3QgZnVuY3Rpb24gaW52b2NhdGlvbi4gSWYgYG1vbmtleXBhdGNoYCBpcyB1c2VkIGJv
dGggYnkKLSAgICAgICAgdGhlIHRlc3QgZnVuY3Rpb24gaXRzZWxmIGFuZCBvbmUgb2YgdGhlIHRl
c3QgZml4dHVyZXMsCi0gICAgICAgIGNhbGxpbmcgYHVuZG8oKWAgd2lsbCB1bmRvIGFsbCBvZiB0
aGUgY2hhbmdlcyBtYWRlIGluCi0gICAgICAgIGJvdGggZnVuY3Rpb25zLgotICAgICAgICAiIiIK
LSAgICAgICAgZm9yIG9iaiwgbmFtZSwgdmFsdWUgaW4gcmV2ZXJzZWQoc2VsZi5fc2V0YXR0cik6
Ci0gICAgICAgICAgICBpZiB2YWx1ZSBpcyBub3Qgbm90c2V0OgotICAgICAgICAgICAgICAgIHNl
dGF0dHIob2JqLCBuYW1lLCB2YWx1ZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgZGVsYXR0cihvYmosIG5hbWUpCi0gICAgICAgIHNlbGYuX3NldGF0dHJbOl0gPSBbXQotICAg
ICAgICBmb3IgZGljdGlvbmFyeSwgbmFtZSwgdmFsdWUgaW4gcmV2ZXJzZWQoc2VsZi5fc2V0aXRl
bSk6Ci0gICAgICAgICAgICBpZiB2YWx1ZSBpcyBub3RzZXQ6Ci0gICAgICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgICAgICBkZWwgZGljdGlvbmFyeVtuYW1lXQotICAgICAgICAgICAg
ICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgcGFzcyAgIyB3YXMgYWxy
ZWFkeSBkZWxldGVkLCBzbyB3ZSBoYXZlIHRoZSBkZXNpcmVkIHN0YXRlCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlbbmFtZV0gPSB2YWx1ZQotICAgICAgICBz
ZWxmLl9zZXRpdGVtWzpdID0gW10KLSAgICAgICAgaWYgc2VsZi5fc2F2ZXN5c3BhdGggaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBzeXMucGF0aFs6XSA9IHNlbGYuX3NhdmVzeXNwYXRoCi0gICAg
ICAgICAgICBzZWxmLl9zYXZlc3lzcGF0aCA9IE5vbmUKLQotICAgICAgICBpZiBzZWxmLl9jd2Qg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBvcy5jaGRpcihzZWxmLl9jd2QpCi0gICAgICAgICAg
ICBzZWxmLl9jd2QgPSBOb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vZGVz
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub2Rlcy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYWQzYWYyY2U2N2M4OTU4Zjk1MzM1Mjk0NDRlYjJiZjJiMWI3Nzk5OC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L25vZGVzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotU0VQID0gIi8iCi0K
LQotZGVmIF9zcGxpdG5vZGUobm9kZWlkKToKLSAgICAiIiJTcGxpdCBhIG5vZGVpZCBpbnRvIGNv
bnN0aXR1ZW50ICdwYXJ0cycuCi0KLSAgICBOb2RlIElEcyBhcmUgc3RyaW5ncywgYW5kIGNhbiBi
ZSB0aGluZ3MgbGlrZToKLSAgICAgICAgJycKLSAgICAgICAgJ3Rlc3RpbmcvY29kZScKLSAgICAg
ICAgJ3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHknCi0gICAgICAgICd0ZXN0aW5nL2NvZGUv
dGVzdF9leGNpbmZvLnB5OjpUZXN0Rm9ybWF0dGVkRXhjaW5mbzo6KCknCi0KLSAgICBSZXR1cm4g
dmFsdWVzIGFyZSBsaXN0cyBlLmcuCi0gICAgICAgIFtdCi0gICAgICAgIFsndGVzdGluZycsICdj
b2RlJ10KLSAgICAgICAgWyd0ZXN0aW5nJywgJ2NvZGUnLCAndGVzdF9leGNpbmZvLnB5J10KLSAg
ICAgICAgWyd0ZXN0aW5nJywgJ2NvZGUnLCAndGVzdF9leGNpbmZvLnB5JywgJ1Rlc3RGb3JtYXR0
ZWRFeGNpbmZvJywgJygpJ10KLSAgICAiIiIKLSAgICBpZiBub2RlaWQgPT0gJyc6Ci0gICAgICAg
ICMgSWYgdGhlcmUgaXMgbm8gcm9vdCBub2RlIGF0IGFsbCwgcmV0dXJuIGFuIGVtcHR5IGxpc3Qg
c28gdGhlIGNhbGxlcidzIGxvZ2ljIGNhbiByZW1haW4gc2FuZQotICAgICAgICByZXR1cm4gW10K
LSAgICBwYXJ0cyA9IG5vZGVpZC5zcGxpdChTRVApCi0gICAgIyBSZXBsYWNlIHNpbmdsZSBsYXN0
IGVsZW1lbnQgJ3Rlc3RfZm9vLnB5OjpCYXI6OigpJyB3aXRoIG11bHRpcGxlIGVsZW1lbnRzICd0
ZXN0X2Zvby5weScsICdCYXInLCAnKCknCi0gICAgcGFydHNbLTE6XSA9IHBhcnRzWy0xXS5zcGxp
dCgiOjoiKQotICAgIHJldHVybiBwYXJ0cwotCi0KLWRlZiBpc2NoaWxkbm9kZShiYXNlaWQsIG5v
ZGVpZCk6Ci0gICAgIiIiUmV0dXJuIFRydWUgaWYgdGhlIG5vZGVpZCBpcyBhIGNoaWxkIG5vZGUg
b2YgdGhlIGJhc2VpZC4KLQotICAgIEUuZy4gJ2Zvby9iYXI6OkJhejo6KCknIGlzIGEgY2hpbGQg
b2YgJ2ZvbycsICdmb28vYmFyJyBhbmQgJ2Zvby9iYXI6OkJheicsIGJ1dCBub3Qgb2YgJ2Zvby9i
bG9ycCcKLSAgICAiIiIKLSAgICBiYXNlX3BhcnRzID0gX3NwbGl0bm9kZShiYXNlaWQpCi0gICAg
bm9kZV9wYXJ0cyA9IF9zcGxpdG5vZGUobm9kZWlkKQotICAgIGlmIGxlbihub2RlX3BhcnRzKSA8
IGxlbihiYXNlX3BhcnRzKToKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgcmV0dXJuIG5vZGVf
cGFydHNbOmxlbihiYXNlX3BhcnRzKV0gPT0gYmFzZV9wYXJ0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9ub3NlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub3NlLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODE1NDJlYWRmMzc3ZDFkM2FkZGZhYWZlYTVkNjRh
ODgzMjk4YTAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3Qvbm9zZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAg
QEAKLSIiIiBydW4gdGVzdCBzdWl0ZXMgd3JpdHRlbiBmb3Igbm9zZS4gIiIiCi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0K
LWltcG9ydCBzeXMKLQotZnJvbSBfcHl0ZXN0IGltcG9ydCB1bml0dGVzdCwgcnVubmVyLCBweXRo
b24KLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGhvb2tpbXBsCi0KLQotZGVmIGdldF9za2lw
X2V4Y2VwdGlvbnMoKToKLSAgICBza2lwX2NsYXNzZXMgPSBzZXQoKQotICAgIGZvciBtb2R1bGVf
bmFtZSBpbiAoJ3VuaXR0ZXN0JywgJ3VuaXR0ZXN0MicsICdub3NlJyk6Ci0gICAgICAgIG1vZCA9
IHN5cy5tb2R1bGVzLmdldChtb2R1bGVfbmFtZSkKLSAgICAgICAgaWYgaGFzYXR0cihtb2QsICdT
a2lwVGVzdCcpOgotICAgICAgICAgICAgc2tpcF9jbGFzc2VzLmFkZChtb2QuU2tpcFRlc3QpCi0g
ICAgcmV0dXJuIHR1cGxlKHNraXBfY2xhc3NlcykKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfbWFr
ZXJlcG9ydChpdGVtLCBjYWxsKToKLSAgICBpZiBjYWxsLmV4Y2luZm8gYW5kIGNhbGwuZXhjaW5m
by5lcnJpc2luc3RhbmNlKGdldF9za2lwX2V4Y2VwdGlvbnMoKSk6Ci0gICAgICAgICMgbGV0J3Mg
c3Vic3RpdHV0ZSB0aGUgZXhjaW5mbyB3aXRoIGEgcHl0ZXN0LnNraXAgb25lCi0gICAgICAgIGNh
bGwyID0gY2FsbC5fX2NsYXNzX18oCi0gICAgICAgICAgICBsYW1iZGE6IHJ1bm5lci5za2lwKHN0
cihjYWxsLmV4Y2luZm8udmFsdWUpKSwgY2FsbC53aGVuKQotICAgICAgICBjYWxsLmV4Y2luZm8g
PSBjYWxsMi5leGNpbmZvCi0KLQotQGhvb2tpbXBsKHRyeWxhc3Q9VHJ1ZSkKLWRlZiBweXRlc3Rf
cnVudGVzdF9zZXR1cChpdGVtKToKLSAgICBpZiBpc19wb3RlbnRpYWxfbm9zZXRlc3QoaXRlbSk6
Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbS5wYXJlbnQsIHB5dGhvbi5HZW5lcmF0b3IpOgot
ICAgICAgICAgICAgZ2VuID0gaXRlbS5wYXJlbnQKLSAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRy
KGdlbiwgJ19ub3NlZ2Vuc2V0dXAnKToKLSAgICAgICAgICAgICAgICBjYWxsX29wdGlvbmFsKGdl
bi5vYmosICdzZXR1cCcpCi0gICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShnZW4ucGFyZW50
LCBweXRob24uSW5zdGFuY2UpOgotICAgICAgICAgICAgICAgICAgICBjYWxsX29wdGlvbmFsKGdl
bi5wYXJlbnQub2JqLCAnc2V0dXAnKQotICAgICAgICAgICAgICAgIGdlbi5fbm9zZWdlbnNldHVw
ID0gVHJ1ZQotICAgICAgICBpZiBub3QgY2FsbF9vcHRpb25hbChpdGVtLm9iaiwgJ3NldHVwJyk6
Ci0gICAgICAgICAgICAjIGNhbGwgbW9kdWxlIGxldmVsIHNldHVwIGlmIHRoZXJlIGlzIG5vIG9i
amVjdCBsZXZlbCBvbmUKLSAgICAgICAgICAgIGNhbGxfb3B0aW9uYWwoaXRlbS5wYXJlbnQub2Jq
LCAnc2V0dXAnKQotICAgICAgICAjIFhYWCB0aGlzIGltcGxpZXMgd2Ugb25seSBjYWxsIHRlYXJk
b3duIHdoZW4gc2V0dXAgd29ya2VkCi0gICAgICAgIGl0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZS5h
ZGRmaW5hbGl6ZXIoKGxhbWJkYTogdGVhcmRvd25fbm9zZShpdGVtKSksIGl0ZW0pCi0KLQotZGVm
IHRlYXJkb3duX25vc2UoaXRlbSk6Ci0gICAgaWYgaXNfcG90ZW50aWFsX25vc2V0ZXN0KGl0ZW0p
OgotICAgICAgICBpZiBub3QgY2FsbF9vcHRpb25hbChpdGVtLm9iaiwgJ3RlYXJkb3duJyk6Ci0g
ICAgICAgICAgICBjYWxsX29wdGlvbmFsKGl0ZW0ucGFyZW50Lm9iaiwgJ3RlYXJkb3duJykKLSAg
ICAgICAgIyBpZiBoYXNhdHRyKGl0ZW0ucGFyZW50LCAnX25vc2VnZW5zZXR1cCcpOgotICAgICAg
ICAjICAgICNjYWxsX29wdGlvbmFsKGl0ZW0uX25vc2VnZW5zZXR1cCwgJ3RlYXJkb3duJykKLSAg
ICAgICAgIyAgICBkZWwgaXRlbS5wYXJlbnQuX25vc2VnZW5zZXR1cAotCi0KLWRlZiBweXRlc3Rf
bWFrZV9jb2xsZWN0X3JlcG9ydChjb2xsZWN0b3IpOgotICAgIGlmIGlzaW5zdGFuY2UoY29sbGVj
dG9yLCBweXRob24uR2VuZXJhdG9yKToKLSAgICAgICAgY2FsbF9vcHRpb25hbChjb2xsZWN0b3Iu
b2JqLCAnc2V0dXAnKQotCi0KLWRlZiBpc19wb3RlbnRpYWxfbm9zZXRlc3QoaXRlbSk6Ci0gICAg
IyBleHRyYSBjaGVjayBuZWVkZWQgc2luY2Ugd2UgZG8gbm90IGRvIG5vc2Ugc3R5bGUgc2V0dXAv
dGVhcmRvd24KLSAgICAjIG9uIGRpcmVjdCB1bml0dGVzdCBzdHlsZSBjbGFzc2VzCi0gICAgcmV0
dXJuIGlzaW5zdGFuY2UoaXRlbSwgcHl0aG9uLkZ1bmN0aW9uKSBhbmQgXAotICAgICAgICBub3Qg
aXNpbnN0YW5jZShpdGVtLCB1bml0dGVzdC5UZXN0Q2FzZUZ1bmN0aW9uKQotCi0KLWRlZiBjYWxs
X29wdGlvbmFsKG9iaiwgbmFtZSk6Ci0gICAgbWV0aG9kID0gZ2V0YXR0cihvYmosIG5hbWUsIE5v
bmUpCi0gICAgaXNmaXh0dXJlID0gaGFzYXR0cihtZXRob2QsICJfcHl0ZXN0Zml4dHVyZWZ1bmN0
aW9uIikKLSAgICBpZiBtZXRob2QgaXMgbm90IE5vbmUgYW5kIG5vdCBpc2ZpeHR1cmUgYW5kIGNh
bGxhYmxlKG1ldGhvZCk6Ci0gICAgICAgICMgSWYgdGhlcmUncyBhbnkgcHJvYmxlbXMgYWxsb3cg
dGhlIGV4Y2VwdGlvbiB0byByYWlzZSByYXRoZXIgdGhhbgotICAgICAgICAjIHNpbGVudGx5IGln
bm9yaW5nIHRoZW0KLSAgICAgICAgbWV0aG9kKCkKLSAgICAgICAgcmV0dXJuIFRydWUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvb3V0Y29tZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L291dGNvbWVzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjBjMThmYTZj
MWI0ODc4M2EzYTlkM2E2NDVkM2UyNDRkNjczYzE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvb3V0Y29tZXMucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwxNDcgKzAsMCBAQAotIiIiCi1leGNlcHRpb24gY2xhc3NlcyBhbmQg
Y29uc3RhbnRzIGhhbmRsaW5nIHRlc3Qgb3V0Y29tZXMKLWFzIHdlbGwgYXMgZnVuY3Rpb25zIGNy
ZWF0aW5nIHRoZW0KLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQs
IGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHB5Ci1pbXBvcnQgc3lzCi0KLQotY2xh
c3MgT3V0Y29tZUV4Y2VwdGlvbihCYXNlRXhjZXB0aW9uKToKLSAgICAiIiIgT3V0Y29tZUV4Y2Vw
dGlvbiBhbmQgaXRzIHN1YmNsYXNzIGluc3RhbmNlcyBpbmRpY2F0ZSBhbmQKLSAgICAgICAgY29u
dGFpbiBpbmZvIGFib3V0IHRlc3QgYW5kIGNvbGxlY3Rpb24gb3V0Y29tZXMuCi0gICAgIiIiCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZz1Ob25lLCBweXRyYWNlPVRydWUpOgotICAgICAgICBC
YXNlRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYsIG1zZykKLSAgICAgICAgc2VsZi5tc2cgPSBtc2cK
LSAgICAgICAgc2VsZi5weXRyYWNlID0gcHl0cmFjZQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYp
OgotICAgICAgICBpZiBzZWxmLm1zZzoKLSAgICAgICAgICAgIHZhbCA9IHNlbGYubXNnCi0gICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKHZhbCwgYnl0ZXMpOgotICAgICAgICAgICAgICAgIHZhbCA9
IHB5Ll9idWlsdGluLl90b3RleHQodmFsLCBlcnJvcnM9J3JlcGxhY2UnKQotICAgICAgICAgICAg
cmV0dXJuIHZhbAotICAgICAgICByZXR1cm4gIjwlcyBpbnN0YW5jZT4iICUgKHNlbGYuX19jbGFz
c19fLl9fbmFtZV9fLCkKLSAgICBfX3N0cl9fID0gX19yZXByX18KLQotCi1URVNUX09VVENPTUUg
PSAoT3V0Y29tZUV4Y2VwdGlvbiwgRXhjZXB0aW9uKQotCi0KLWNsYXNzIFNraXBwZWQoT3V0Y29t
ZUV4Y2VwdGlvbik6Ci0gICAgIyBYWFggaGFja2lzaDogb24gM2sgd2UgZmFrZSB0byBsaXZlIGlu
IHRoZSBidWlsdGlucwotICAgICMgaW4gb3JkZXIgdG8gaGF2ZSBTa2lwcGVkIGV4Y2VwdGlvbiBw
cmludGluZyBzaG9ydGVyL25pY2VyCi0gICAgX19tb2R1bGVfXyA9ICdidWlsdGlucycKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBtc2c9Tm9uZSwgcHl0cmFjZT1UcnVlLCBhbGxvd19tb2R1bGVf
bGV2ZWw9RmFsc2UpOgotICAgICAgICBPdXRjb21lRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYsIG1z
Zz1tc2csIHB5dHJhY2U9cHl0cmFjZSkKLSAgICAgICAgc2VsZi5hbGxvd19tb2R1bGVfbGV2ZWwg
PSBhbGxvd19tb2R1bGVfbGV2ZWwKLQotCi1jbGFzcyBGYWlsZWQoT3V0Y29tZUV4Y2VwdGlvbik6
Ci0gICAgIiIiIHJhaXNlZCBmcm9tIGFuIGV4cGxpY2l0IGNhbGwgdG8gcHl0ZXN0LmZhaWwoKSAi
IiIKLSAgICBfX21vZHVsZV9fID0gJ2J1aWx0aW5zJwotCi0KLWNsYXNzIEV4aXQoS2V5Ym9hcmRJ
bnRlcnJ1cHQpOgotICAgICIiIiByYWlzZWQgZm9yIGltbWVkaWF0ZSBwcm9ncmFtIGV4aXRzIChu
byB0cmFjZWJhY2tzL3N1bW1hcmllcykiIiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnPSJ1
bmtub3duIHJlYXNvbiIpOgotICAgICAgICBzZWxmLm1zZyA9IG1zZwotICAgICAgICBLZXlib2Fy
ZEludGVycnVwdC5fX2luaXRfXyhzZWxmLCBtc2cpCi0KLSMgZXhwb3NlZCBoZWxwZXIgbWV0aG9k
cwotCi0KLWRlZiBleGl0KG1zZyk6Ci0gICAgIiIiIGV4aXQgdGVzdGluZyBwcm9jZXNzIGFzIGlm
IEtleWJvYXJkSW50ZXJydXB0IHdhcyB0cmlnZ2VyZWQuICIiIgotICAgIF9fdHJhY2ViYWNraGlk
ZV9fID0gVHJ1ZQotICAgIHJhaXNlIEV4aXQobXNnKQotCi0KLWV4aXQuRXhjZXB0aW9uID0gRXhp
dAotCi0KLWRlZiBza2lwKG1zZz0iIiwgKiprd2FyZ3MpOgotICAgICIiIiBza2lwIGFuIGV4ZWN1
dGluZyB0ZXN0IHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UuICBOb3RlOiBpdCdzIHVzdWFsbHkKLSAg
ICBiZXR0ZXIgdG8gdXNlIHRoZSBweXRlc3QubWFyay5za2lwaWYgbWFya2VyIHRvIGRlY2xhcmUg
YSB0ZXN0IHRvIGJlCi0gICAgc2tpcHBlZCB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgbGlrZSBt
aXNtYXRjaGluZyBwbGF0Zm9ybXMgb3IKLSAgICBkZXBlbmRlbmNpZXMuICBTZWUgdGhlIHB5dGVz
dF9za2lwcGluZyBwbHVnaW4gZm9yIGRldGFpbHMuCi0KLSAgICA6a3dhcmcgYm9vbCBhbGxvd19t
b2R1bGVfbGV2ZWw6IGFsbG93cyB0aGlzIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhdAotICAgICAg
ICBtb2R1bGUgbGV2ZWwsIHNraXBwaW5nIHRoZSByZXN0IG9mIHRoZSBtb2R1bGUuIERlZmF1bHQg
dG8gRmFsc2UuCi0gICAgIiIiCi0gICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgYWxs
b3dfbW9kdWxlX2xldmVsID0ga3dhcmdzLnBvcCgnYWxsb3dfbW9kdWxlX2xldmVsJywgRmFsc2Up
Ci0gICAgaWYga3dhcmdzOgotICAgICAgICBrZXlzID0gW2sgZm9yIGsgaW4ga3dhcmdzLmtleXMo
KV0KLSAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd1bmV4cGVjdGVkIGtleXdvcmQgYXJndW1lbnRz
OiB7MH0nLmZvcm1hdChrZXlzKSkKLSAgICByYWlzZSBTa2lwcGVkKG1zZz1tc2csIGFsbG93X21v
ZHVsZV9sZXZlbD1hbGxvd19tb2R1bGVfbGV2ZWwpCi0KLQotc2tpcC5FeGNlcHRpb24gPSBTa2lw
cGVkCi0KLQotZGVmIGZhaWwobXNnPSIiLCBweXRyYWNlPVRydWUpOgotICAgICIiIiBleHBsaWNp
dGx5IGZhaWwgYW4gY3VycmVudGx5LWV4ZWN1dGluZyB0ZXN0IHdpdGggdGhlIGdpdmVuIE1lc3Nh
Z2UuCi0KLSAgICA6YXJnIHB5dHJhY2U6IGlmIGZhbHNlIHRoZSBtc2cgcmVwcmVzZW50cyB0aGUg
ZnVsbCBmYWlsdXJlIGluZm9ybWF0aW9uCi0gICAgICAgICAgICAgICAgICBhbmQgbm8gcHl0aG9u
IHRyYWNlYmFjayB3aWxsIGJlIHJlcG9ydGVkLgotICAgICIiIgotICAgIF9fdHJhY2ViYWNraGlk
ZV9fID0gVHJ1ZQotICAgIHJhaXNlIEZhaWxlZChtc2c9bXNnLCBweXRyYWNlPXB5dHJhY2UpCi0K
LQotZmFpbC5FeGNlcHRpb24gPSBGYWlsZWQKLQotCi1jbGFzcyBYRmFpbGVkKGZhaWwuRXhjZXB0
aW9uKToKLSAgICAiIiIgcmFpc2VkIGZyb20gYW4gZXhwbGljaXQgY2FsbCB0byBweXRlc3QueGZh
aWwoKSAiIiIKLQotCi1kZWYgeGZhaWwocmVhc29uPSIiKToKLSAgICAiIiIgeGZhaWwgYW4gZXhl
Y3V0aW5nIHRlc3Qgb3Igc2V0dXAgZnVuY3Rpb25zIHdpdGggdGhlIGdpdmVuIHJlYXNvbi4iIiIK
LSAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICByYWlzZSBYRmFpbGVkKHJlYXNvbikK
LQotCi14ZmFpbC5FeGNlcHRpb24gPSBYRmFpbGVkCi0KLQotZGVmIGltcG9ydG9yc2tpcChtb2Ru
YW1lLCBtaW52ZXJzaW9uPU5vbmUpOgotICAgICIiIiByZXR1cm4gaW1wb3J0ZWQgbW9kdWxlIGlm
IGl0IGhhcyBhdCBsZWFzdCAibWludmVyc2lvbiIgYXMgaXRzCi0gICAgX192ZXJzaW9uX18gYXR0
cmlidXRlLiAgSWYgbm8gbWludmVyc2lvbiBpcyBzcGVjaWZpZWQgdGhlIGEgc2tpcAotICAgIGlz
IG9ubHkgdHJpZ2dlcmVkIGlmIHRoZSBtb2R1bGUgY2FuIG5vdCBiZSBpbXBvcnRlZC4KLSAgICAi
IiIKLSAgICBpbXBvcnQgd2FybmluZ3MKLSAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAg
ICBjb21waWxlKG1vZG5hbWUsICcnLCAnZXZhbCcpICAjIHRvIGNhdGNoIHN5bnRheGVycm9ycwot
ICAgIHNob3VsZF9za2lwID0gRmFsc2UKLQotICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2Fybmlu
Z3MoKToKLSAgICAgICAgIyBtYWtlIHN1cmUgdG8gaWdub3JlIEltcG9ydFdhcm5pbmdzIHRoYXQg
bWlnaHQgaGFwcGVuIGJlY2F1c2UKLSAgICAgICAgIyBvZiBleGlzdGluZyBkaXJlY3RvcmllcyB3
aXRoIHRoZSBzYW1lIG5hbWUgd2UncmUgdHJ5aW5nIHRvCi0gICAgICAgICMgaW1wb3J0IGJ1dCB3
aXRob3V0IGEgX19pbml0X18ucHkgZmlsZQotICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIo
J2lnbm9yZScpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIF9faW1wb3J0X18obW9kbmFtZSkK
LSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgIyBEbyBub3QgcmFpc2Ug
Y2hhaW5lZCBleGNlcHRpb24gaGVyZSgjMTQ4NSkKLSAgICAgICAgICAgIHNob3VsZF9za2lwID0g
VHJ1ZQotICAgIGlmIHNob3VsZF9za2lwOgotICAgICAgICByYWlzZSBTa2lwcGVkKCJjb3VsZCBu
b3QgaW1wb3J0ICVyIiAlIChtb2RuYW1lLCksIGFsbG93X21vZHVsZV9sZXZlbD1UcnVlKQotICAg
IG1vZCA9IHN5cy5tb2R1bGVzW21vZG5hbWVdCi0gICAgaWYgbWludmVyc2lvbiBpcyBOb25lOgot
ICAgICAgICByZXR1cm4gbW9kCi0gICAgdmVyYXR0ciA9IGdldGF0dHIobW9kLCAnX192ZXJzaW9u
X18nLCBOb25lKQotICAgIGlmIG1pbnZlcnNpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIGZyb20gcGtnX3Jlc291cmNlcyBpbXBvcnQgcGFyc2VfdmVyc2lvbiBhcyBw
dgotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBTa2lwcGVk
KCJ3ZSBoYXZlIGEgcmVxdWlyZWQgdmVyc2lvbiBmb3IgJXIgYnV0IGNhbiBub3QgaW1wb3J0ICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgInBrZ19yZXNvdXJjZXMgdG8gcGFyc2UgdmVyc2lv
biBzdHJpbmdzLiIgJSAobW9kbmFtZSwpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxv
d19tb2R1bGVfbGV2ZWw9VHJ1ZSkKLSAgICAgICAgaWYgdmVyYXR0ciBpcyBOb25lIG9yIHB2KHZl
cmF0dHIpIDwgcHYobWludmVyc2lvbik6Ci0gICAgICAgICAgICByYWlzZSBTa2lwcGVkKCJtb2R1
bGUgJXIgaGFzIF9fdmVyc2lvbl9fICVyLCByZXF1aXJlZCBpczogJXIiICUgKAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb2RuYW1lLCB2ZXJhdHRyLCBtaW52ZXJzaW9uKSwgYWxsb3dfbW9k
dWxlX2xldmVsPVRydWUpCi0gICAgcmV0dXJuIG1vZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9wYXN0ZWJpbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcGFzdGViaW4ucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1ODhiMDIxYjEyNDIyZjU1MDdjOWJkZmE1MTFm
NjFmM2QwMjgxZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9wYXN0ZWJpbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDEw
MCArMCwwIEBACi0iIiIgc3VibWl0IGZhaWx1cmUgb3IgdGVzdCBzZXNzaW9uIGluZm9ybWF0aW9u
IHRvIGEgcGFzdGViaW4gc2VydmljZS4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBweXRlc3QKLWlt
cG9ydCBzaXgKLWltcG9ydCBzeXMKLWltcG9ydCB0ZW1wZmlsZQotCi0KLWRlZiBweXRlc3RfYWRk
b3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInRlcm1pbmFsIHJl
cG9ydGluZyIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLS1wYXN0ZWJpbicsIG1ldGF2YXI9Im1v
ZGUiLAotICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZScsIGRlc3Q9InBhc3RlYmlu
IiwgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2ZhaWxlZCcs
ICdhbGwnXSwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9InNlbmQgZmFpbGVkfGFsbCBpbmZv
IHRvIGJwYXN0ZS5uZXQgcGFzdGViaW4gc2VydmljZS4iKQotCi0KLUBweXRlc3QuaG9va2ltcGwo
dHJ5bGFzdD1UcnVlKQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICBpZiBjb25m
aWcub3B0aW9uLnBhc3RlYmluID09ICJhbGwiOgotICAgICAgICB0ciA9IGNvbmZpZy5wbHVnaW5t
YW5hZ2VyLmdldHBsdWdpbigndGVybWluYWxyZXBvcnRlcicpCi0gICAgICAgICMgaWYgbm8gdGVy
bWluYWwgcmVwb3J0ZXIgcGx1Z2luIGlzIHByZXNlbnQsIG5vdGhpbmcgd2UgY2FuIGRvIGhlcmU7
Ci0gICAgICAgICMgdGhpcyBjYW4gaGFwcGVuIHdoZW4gdGhpcyBmdW5jdGlvbiBleGVjdXRlcyBp
biBhIHNsYXZlIG5vZGUKLSAgICAgICAgIyB3aGVuIHVzaW5nIHB5dGVzdC14ZGlzdCwgZm9yIGV4
YW1wbGUKLSAgICAgICAgaWYgdHIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAjIHBhc3RlYmlu
IGZpbGUgd2lsbCBiZSB1dGYtOCBlbmNvZGVkIGJpbmFyeSBmaWxlCi0gICAgICAgICAgICBjb25m
aWcuX3Bhc3RlYmluZmlsZSA9IHRlbXBmaWxlLlRlbXBvcmFyeUZpbGUoJ3crYicpCi0gICAgICAg
ICAgICBvbGR3cml0ZSA9IHRyLl90dy53cml0ZQotCi0gICAgICAgICAgICBkZWYgdGVlX3dyaXRl
KHMsICoqa3dhcmdzKToKLSAgICAgICAgICAgICAgICBvbGR3cml0ZShzLCAqKmt3YXJncykKLSAg
ICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHMsIHNpeC50ZXh0X3R5cGUpOgotICAgICAgICAg
ICAgICAgICAgICBzID0gcy5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgICAgICAgICBjb25maWcu
X3Bhc3RlYmluZmlsZS53cml0ZShzKQotCi0gICAgICAgICAgICB0ci5fdHcud3JpdGUgPSB0ZWVf
d3JpdGUKLQotCi1kZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgaWYgaGFzYXR0
cihjb25maWcsICdfcGFzdGViaW5maWxlJyk6Ci0gICAgICAgICMgZ2V0IHRlcm1pbmFsIGNvbnRl
bnRzIGFuZCBkZWxldGUgZmlsZQotICAgICAgICBjb25maWcuX3Bhc3RlYmluZmlsZS5zZWVrKDAp
Ci0gICAgICAgIHNlc3Npb25sb2cgPSBjb25maWcuX3Bhc3RlYmluZmlsZS5yZWFkKCkKLSAgICAg
ICAgY29uZmlnLl9wYXN0ZWJpbmZpbGUuY2xvc2UoKQotICAgICAgICBkZWwgY29uZmlnLl9wYXN0
ZWJpbmZpbGUKLSAgICAgICAgIyB1bmRvIG91ciBwYXRjaGluZyBpbiB0aGUgdGVybWluYWwgcmVw
b3J0ZXIKLSAgICAgICAgdHIgPSBjb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oJ3Rlcm1p
bmFscmVwb3J0ZXInKQotICAgICAgICBkZWwgdHIuX3R3Ll9fZGljdF9fWyd3cml0ZSddCi0gICAg
ICAgICMgd3JpdGUgc3VtbWFyeQotICAgICAgICB0ci53cml0ZV9zZXAoIj0iLCAiU2VuZGluZyBp
bmZvcm1hdGlvbiB0byBQYXN0ZSBTZXJ2aWNlIikKLSAgICAgICAgcGFzdGViaW51cmwgPSBjcmVh
dGVfbmV3X3Bhc3RlKHNlc3Npb25sb2cpCi0gICAgICAgIHRyLndyaXRlX2xpbmUoInBhc3RlYmlu
IHNlc3Npb24tbG9nOiAlc1xuIiAlIHBhc3RlYmludXJsKQotCi0KLWRlZiBjcmVhdGVfbmV3X3Bh
c3RlKGNvbnRlbnRzKToKLSAgICAiIiIKLSAgICBDcmVhdGVzIGEgbmV3IHBhc3RlIHVzaW5nIGJw
YXN0ZS5uZXQgc2VydmljZS4KLQotICAgIDpjb250ZW50czogcGFzdGUgY29udGVudHMgYXMgdXRm
LTggZW5jb2RlZCBieXRlcwotICAgIDpyZXR1cm5zOiB1cmwgdG8gdGhlIHBhc3RlZCBjb250ZW50
cwotICAgICIiIgotICAgIGltcG9ydCByZQotICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywg
MCk6Ci0gICAgICAgIGZyb20gdXJsbGliIGltcG9ydCB1cmxvcGVuLCB1cmxlbmNvZGUKLSAgICBl
bHNlOgotICAgICAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVuCi0gICAgICAg
IGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxlbmNvZGUKLQotICAgIHBhcmFtcyA9IHsKLSAg
ICAgICAgJ2NvZGUnOiBjb250ZW50cywKLSAgICAgICAgJ2xleGVyJzogJ3B5dGhvbjMnIGlmIHN5
cy52ZXJzaW9uX2luZm9bMF0gPT0gMyBlbHNlICdweXRob24nLAotICAgICAgICAnZXhwaXJ5Jzog
JzF3ZWVrJywKLSAgICB9Ci0gICAgdXJsID0gJ2h0dHBzOi8vYnBhc3RlLm5ldCcKLSAgICByZXNw
b25zZSA9IHVybG9wZW4odXJsLCBkYXRhPXVybGVuY29kZShwYXJhbXMpLmVuY29kZSgnYXNjaWkn
KSkucmVhZCgpCi0gICAgbSA9IHJlLnNlYXJjaChyJ2hyZWY9Ii9yYXcvKFx3KykiJywgcmVzcG9u
c2UuZGVjb2RlKCd1dGYtOCcpKQotICAgIGlmIG06Ci0gICAgICAgIHJldHVybiAnJXMvc2hvdy8l
cycgJSAodXJsLCBtLmdyb3VwKDEpKQotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiAnYmFkIHJl
c3BvbnNlOiAnICsgcmVzcG9uc2UKLQotCi1kZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVy
bWluYWxyZXBvcnRlcik6Ci0gICAgaW1wb3J0IF9weXRlc3QuY29uZmlnCi0gICAgaWYgdGVybWlu
YWxyZXBvcnRlci5jb25maWcub3B0aW9uLnBhc3RlYmluICE9ICJmYWlsZWQiOgotICAgICAgICBy
ZXR1cm4KLSAgICB0ciA9IHRlcm1pbmFscmVwb3J0ZXIKLSAgICBpZiAnZmFpbGVkJyBpbiB0ci5z
dGF0czoKLSAgICAgICAgdGVybWluYWxyZXBvcnRlci53cml0ZV9zZXAoIj0iLCAiU2VuZGluZyBp
bmZvcm1hdGlvbiB0byBQYXN0ZSBTZXJ2aWNlIikKLSAgICAgICAgZm9yIHJlcCBpbiB0ZXJtaW5h
bHJlcG9ydGVyLnN0YXRzLmdldCgnZmFpbGVkJyk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgbXNnID0gcmVwLmxvbmdyZXByLnJlcHJ0cmFjZWJhY2sucmVwcmVudHJpZXNbLTFd
LnJlcHJmaWxlbG9jCi0gICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAg
ICAgICAgICAgbXNnID0gdHIuX2dldGZhaWx1cmVoZWFkbGluZShyZXApCi0gICAgICAgICAgICB0
dyA9IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5hbF93cml0ZXIodGVybWluYWxyZXBvcnRl
ci5jb25maWcsIHN0cmluZ2lvPVRydWUpCi0gICAgICAgICAgICByZXAudG90ZXJtaW5hbCh0dykK
LSAgICAgICAgICAgIHMgPSB0dy5zdHJpbmdpby5nZXR2YWx1ZSgpCi0gICAgICAgICAgICBhc3Nl
cnQgbGVuKHMpCi0gICAgICAgICAgICBwYXN0ZWJpbnVybCA9IGNyZWF0ZV9uZXdfcGFzdGUocykK
LSAgICAgICAgICAgIHRyLndyaXRlX2xpbmUoIiVzIC0tPiAlcyIgJSAobXNnLCBwYXN0ZWJpbnVy
bCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGVzdGVyLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9weXRlc3Rlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjJkZDU5OTRmMWJiZmI0ZGQ2YjQyOWQ4NmVmNzQ4Y2JkNTc4ZDU3YS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGVz
dGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTE4NyArMCwwIEBACi0iIiIgKGRpc2FibGVkIGJ5
IGRlZmF1bHQpIHN1cHBvcnQgZm9yIHRlc3RpbmcgcHl0ZXN0IGFuZCBweXRlc3QgcGx1Z2lucy4g
IiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCi0KLWltcG9ydCBjb2RlY3MKLWltcG9ydCBnYwotaW1wb3J0IG9zCi1pbXBv
cnQgcGxhdGZvcm0KLWltcG9ydCByZQotaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzaXgKLWlt
cG9ydCBzeXMKLWltcG9ydCB0aW1lCi1pbXBvcnQgdHJhY2ViYWNrCi1mcm9tIGZubWF0Y2ggaW1w
b3J0IGZubWF0Y2gKLQotZnJvbSB3ZWFrcmVmIGltcG9ydCBXZWFrS2V5RGljdGlvbmFyeQotCi1m
cm9tIF9weXRlc3QuY2FwdHVyZSBpbXBvcnQgTXVsdGlDYXB0dXJlLCBTeXNDYXB0dXJlCi1mcm9t
IF9weXRlc3QuX2NvZGUgaW1wb3J0IFNvdXJjZQotaW1wb3J0IHB5Ci1pbXBvcnQgcHl0ZXN0Ci1m
cm9tIF9weXRlc3QubWFpbiBpbXBvcnQgU2Vzc2lvbiwgRVhJVF9PSwotZnJvbSBfcHl0ZXN0LmFz
c2VydGlvbi5yZXdyaXRlIGltcG9ydCBBc3NlcnRpb25SZXdyaXRpbmdIb29rCi0KLQotUFlURVNU
X0ZVTExQQVRIID0gb3MucGF0aC5hYnNwYXRoKHB5dGVzdC5fX2ZpbGVfXy5yc3RyaXAoIm9jIikp
LnJlcGxhY2UoIiRweS5jbGFzcyIsICIucHkiKQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBh
cnNlcik6Ci0gICAgIyBncm91cCA9IHBhcnNlci5nZXRncm91cCgicHl0ZXN0ZXIiLCAicHl0ZXN0
ZXIgKHNlbGYtdGVzdHMpIG9wdGlvbnMiKQotICAgIHBhcnNlci5hZGRvcHRpb24oJy0tbHNvZics
Ci0gICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJsc29mIiwg
ZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCJydW4gRkQgY2hlY2tz
IGlmIGxzb2YgaXMgYXZhaWxhYmxlIikpCi0KLSAgICBwYXJzZXIuYWRkb3B0aW9uKCctLXJ1bnB5
dGVzdCcsIGRlZmF1bHQ9ImlucHJvY2VzcyIsIGRlc3Q9InJ1bnB5dGVzdCIsCi0gICAgICAgICAg
ICAgICAgICAgICBjaG9pY2VzPSgiaW5wcm9jZXNzIiwgInN1YnByb2Nlc3MiLCApLAotICAgICAg
ICAgICAgICAgICAgICAgaGVscD0oInJ1biBweXRlc3Qgc3ViIHJ1bnMgaW4gdGVzdHMgdXNpbmcg
YW4gJ2lucHJvY2VzcycgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yICdzdWJwcm9j
ZXNzJyAocHl0aG9uIC1tIG1haW4pIG1ldGhvZCIpKQotCi0KLWRlZiBweXRlc3RfY29uZmlndXJl
KGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLmdldHZhbHVlKCJsc29mIik6Ci0gICAgICAgIGNoZWNr
ZXIgPSBMc29mRmRMZWFrQ2hlY2tlcigpCi0gICAgICAgIGlmIGNoZWNrZXIubWF0Y2hpbmdfcGxh
dGZvcm0oKToKLSAgICAgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKGNoZWNr
ZXIpCi0KLQotY2xhc3MgTHNvZkZkTGVha0NoZWNrZXIob2JqZWN0KToKLSAgICBkZWYgZ2V0X29w
ZW5fZmlsZXMoc2VsZik6Ci0gICAgICAgIG91dCA9IHNlbGYuX2V4ZWNfbHNvZigpCi0gICAgICAg
IG9wZW5fZmlsZXMgPSBzZWxmLl9wYXJzZV9sc29mX291dHB1dChvdXQpCi0gICAgICAgIHJldHVy
biBvcGVuX2ZpbGVzCi0KLSAgICBkZWYgX2V4ZWNfbHNvZihzZWxmKToKLSAgICAgICAgcGlkID0g
b3MuZ2V0cGlkKCkKLSAgICAgICAgcmV0dXJuIHB5LnByb2Nlc3MuY21kZXhlYygibHNvZiAtRmZu
MCAtcCAlZCIgJSBwaWQpCi0KLSAgICBkZWYgX3BhcnNlX2xzb2Zfb3V0cHV0KHNlbGYsIG91dCk6
Ci0gICAgICAgIGRlZiBpc29wZW4obGluZSk6Ci0gICAgICAgICAgICByZXR1cm4gbGluZS5zdGFy
dHN3aXRoKCdmJykgYW5kICgiZGVsZXRlZCIgbm90IGluIGxpbmUgYW5kCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVtJyBub3QgaW4gbGluZSBhbmQgInR4
dCIgbm90IGluIGxpbmUgYW5kICdjd2QnIG5vdCBpbiBsaW5lKQotCi0gICAgICAgIG9wZW5fZmls
ZXMgPSBbXQotCi0gICAgICAgIGZvciBsaW5lIGluIG91dC5zcGxpdCgiXG4iKToKLSAgICAgICAg
ICAgIGlmIGlzb3BlbihsaW5lKToKLSAgICAgICAgICAgICAgICBmaWVsZHMgPSBsaW5lLnNwbGl0
KCdcMCcpCi0gICAgICAgICAgICAgICAgZmQgPSBmaWVsZHNbMF1bMTpdCi0gICAgICAgICAgICAg
ICAgZmlsZW5hbWUgPSBmaWVsZHNbMV1bMTpdCi0gICAgICAgICAgICAgICAgaWYgZmlsZW5hbWUu
c3RhcnRzd2l0aCgnLycpOgotICAgICAgICAgICAgICAgICAgICBvcGVuX2ZpbGVzLmFwcGVuZCgo
ZmQsIGZpbGVuYW1lKSkKLQotICAgICAgICByZXR1cm4gb3Blbl9maWxlcwotCi0gICAgZGVmIG1h
dGNoaW5nX3BsYXRmb3JtKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBweS5wcm9j
ZXNzLmNtZGV4ZWMoImxzb2YgLXYiKQotICAgICAgICBleGNlcHQgKHB5LnByb2Nlc3MuY21kZXhl
Yy5FcnJvciwgVW5pY29kZURlY29kZUVycm9yKToKLSAgICAgICAgICAgICMgY21kZXhlYyBtYXkg
cmFpc2UgVW5pY29kZURlY29kZUVycm9yIG9uIFdpbmRvd3Mgc3lzdGVtcwotICAgICAgICAgICAg
IyB3aXRoIGxvY2FsZSBvdGhlciB0aGFuIGVuZ2xpc2g6Ci0gICAgICAgICAgICAjIGh0dHBzOi8v
Yml0YnVja2V0Lm9yZy9weXRlc3QtZGV2L3B5L2lzc3Vlcy82NgotICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgQHB5
dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlLCB0cnlmaXJzdD1UcnVlKQotICAgIGRlZiBw
eXRlc3RfcnVudGVzdF9wcm90b2NvbChzZWxmLCBpdGVtKToKLSAgICAgICAgbGluZXMxID0gc2Vs
Zi5nZXRfb3Blbl9maWxlcygpCi0gICAgICAgIHlpZWxkCi0gICAgICAgIGlmIGhhc2F0dHIoc3lz
LCAicHlweV92ZXJzaW9uX2luZm8iKToKLSAgICAgICAgICAgIGdjLmNvbGxlY3QoKQotICAgICAg
ICBsaW5lczIgPSBzZWxmLmdldF9vcGVuX2ZpbGVzKCkKLQotICAgICAgICBuZXdfZmRzID0gc2V0
KFt0WzBdIGZvciB0IGluIGxpbmVzMl0pIC0gc2V0KFt0WzBdIGZvciB0IGluIGxpbmVzMV0pCi0g
ICAgICAgIGxlYWtlZF9maWxlcyA9IFt0IGZvciB0IGluIGxpbmVzMiBpZiB0WzBdIGluIG5ld19m
ZHNdCi0gICAgICAgIGlmIGxlYWtlZF9maWxlczoKLSAgICAgICAgICAgIGVycm9yID0gW10KLSAg
ICAgICAgICAgIGVycm9yLmFwcGVuZCgiKioqKiogJXMgRkQgbGVha2FnZSBkZXRlY3RlZCIgJSBs
ZW4obGVha2VkX2ZpbGVzKSkKLSAgICAgICAgICAgIGVycm9yLmV4dGVuZChbc3RyKGYpIGZvciBm
IGluIGxlYWtlZF9maWxlc10pCi0gICAgICAgICAgICBlcnJvci5hcHBlbmQoIioqKiBCZWZvcmU6
IikKLSAgICAgICAgICAgIGVycm9yLmV4dGVuZChbc3RyKGYpIGZvciBmIGluIGxpbmVzMV0pCi0g
ICAgICAgICAgICBlcnJvci5hcHBlbmQoIioqKiBBZnRlcjoiKQotICAgICAgICAgICAgZXJyb3Iu
ZXh0ZW5kKFtzdHIoZikgZm9yIGYgaW4gbGluZXMyXSkKLSAgICAgICAgICAgIGVycm9yLmFwcGVu
ZChlcnJvclswXSkKLSAgICAgICAgICAgIGVycm9yLmFwcGVuZCgiKioqIGZ1bmN0aW9uICVzOiVz
OiAlcyAiICUgaXRlbS5sb2NhdGlvbikKLSAgICAgICAgICAgIGVycm9yLmFwcGVuZCgiU2VlIGlz
c3VlICMyMzY2IikKLSAgICAgICAgICAgIGl0ZW0ud2FybignJywgIlxuIi5qb2luKGVycm9yKSkK
LQotCi0jIFhYWCBjb3BpZWQgZnJvbSBleGVjbmV0J3MgY29uZnRlc3QucHkgLSBuZWVkcyB0byBi
ZSBtZXJnZWQKLXdpbnB5bWFwID0gewotICAgICdweXRob24yLjcnOiByJ0M6XFB5dGhvbjI3XHB5
dGhvbi5leGUnLAotICAgICdweXRob24zLjQnOiByJ0M6XFB5dGhvbjM0XHB5dGhvbi5leGUnLAot
ICAgICdweXRob24zLjUnOiByJ0M6XFB5dGhvbjM1XHB5dGhvbi5leGUnLAotICAgICdweXRob24z
LjYnOiByJ0M6XFB5dGhvbjM2XHB5dGhvbi5leGUnLAotfQotCi0KLWRlZiBnZXRleGVjdXRhYmxl
KG5hbWUsIGNhY2hlPXt9KToKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBjYWNoZVtuYW1lXQot
ICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgZXhlY3V0YWJsZSA9IHB5LnBhdGgubG9jYWwu
c3lzZmluZChuYW1lKQotICAgICAgICBpZiBleGVjdXRhYmxlOgotICAgICAgICAgICAgaW1wb3J0
IHN1YnByb2Nlc3MKLSAgICAgICAgICAgIHBvcGVuID0gc3VicHJvY2Vzcy5Qb3Blbihbc3RyKGV4
ZWN1dGFibGUpLCAiLS12ZXJzaW9uIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCi0g
ICAgICAgICAgICBvdXQsIGVyciA9IHBvcGVuLmNvbW11bmljYXRlKCkKLSAgICAgICAgICAgIGlm
IG5hbWUgPT0gImp5dGhvbiI6Ci0gICAgICAgICAgICAgICAgaWYgbm90IGVyciBvciAiMi41IiBu
b3QgaW4gZXJyOgotICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gTm9uZQotICAgICAg
ICAgICAgICAgIGlmICIyLjUuMiIgaW4gZXJyOgotICAgICAgICAgICAgICAgICAgICBleGVjdXRh
YmxlID0gTm9uZSAgIyBodHRwOi8vYnVncy5qeXRob24ub3JnL2lzc3VlMTc5MAotICAgICAgICAg
ICAgZWxpZiBwb3Blbi5yZXR1cm5jb2RlICE9IDA6Ci0gICAgICAgICAgICAgICAgIyBIYW5kbGUg
cHllbnYncyAxMjcuCi0gICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IE5vbmUKLSAgICAgICAg
Y2FjaGVbbmFtZV0gPSBleGVjdXRhYmxlCi0gICAgICAgIHJldHVybiBleGVjdXRhYmxlCi0KLQot
QHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bJ3B5dGhvbjIuNycsICdweXRob24zLjQnLCAncHlweScs
ICdweXB5MyddKQotZGVmIGFueXB5dGhvbihyZXF1ZXN0KToKLSAgICBuYW1lID0gcmVxdWVzdC5w
YXJhbQotICAgIGV4ZWN1dGFibGUgPSBnZXRleGVjdXRhYmxlKG5hbWUpCi0gICAgaWYgZXhlY3V0
YWJsZSBpcyBOb25lOgotICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKLSAgICAg
ICAgICAgIGV4ZWN1dGFibGUgPSB3aW5weW1hcC5nZXQobmFtZSwgTm9uZSkKLSAgICAgICAgICAg
IGlmIGV4ZWN1dGFibGU6Ci0gICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IHB5LnBhdGgubG9j
YWwoZXhlY3V0YWJsZSkKLSAgICAgICAgICAgICAgICBpZiBleGVjdXRhYmxlLmNoZWNrKCk6Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxlCi0gICAgICAgIHB5dGVzdC5za2lw
KCJubyBzdWl0YWJsZSAlcyBmb3VuZCIgJSAobmFtZSwpKQotICAgIHJldHVybiBleGVjdXRhYmxl
Ci0KLSMgdXNlZCBhdCBsZWFzdCBieSBweXRlc3QteGRpc3QgcGx1Z2luCi0KLQotQHB5dGVzdC5m
aXh0dXJlCi1kZWYgX3B5dGVzdChyZXF1ZXN0KToKLSAgICAiIiIgUmV0dXJuIGEgaGVscGVyIHdo
aWNoIG9mZmVycyBhIGdldGhvb2tyZWNvcmRlcihob29rKQotICAgIG1ldGhvZCB3aGljaCByZXR1
cm5zIGEgSG9va1JlY29yZGVyIGluc3RhbmNlIHdoaWNoIGhlbHBzCi0gICAgdG8gbWFrZSBhc3Nl
cnRpb25zIGFib3V0IGNhbGxlZCBob29rcy4KLSAgICAiIiIKLSAgICByZXR1cm4gUHl0ZXN0QXJn
KHJlcXVlc3QpCi0KLQotY2xhc3MgUHl0ZXN0QXJnOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZXF1ZXN0KToKLSAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxdWVzdAotCi0gICAgZGVmIGdldGhv
b2tyZWNvcmRlcihzZWxmLCBob29rKToKLSAgICAgICAgaG9va3JlY29yZGVyID0gSG9va1JlY29y
ZGVyKGhvb2suX3BtKQotICAgICAgICBzZWxmLnJlcXVlc3QuYWRkZmluYWxpemVyKGhvb2tyZWNv
cmRlci5maW5pc2hfcmVjb3JkaW5nKQotICAgICAgICByZXR1cm4gaG9va3JlY29yZGVyCi0KLQot
ZGVmIGdldF9wdWJsaWNfbmFtZXModmFsdWVzKToKLSAgICAiIiJPbmx5IHJldHVybiBuYW1lcyBm
cm9tIGl0ZXJhdG9yIHZhbHVlcyB3aXRob3V0IGEgbGVhZGluZyB1bmRlcnNjb3JlLiIiIgotICAg
IHJldHVybiBbeCBmb3IgeCBpbiB2YWx1ZXMgaWYgeFswXSAhPSAiXyJdCi0KLQotY2xhc3MgUGFy
c2VkQ2FsbDoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwga3dhcmdzKToKLSAgICAgICAg
c2VsZi5fX2RpY3RfXy51cGRhdGUoa3dhcmdzKQotICAgICAgICBzZWxmLl9uYW1lID0gbmFtZQot
Ci0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICBkID0gc2VsZi5fX2RpY3RfXy5jb3B5
KCkKLSAgICAgICAgZGVsIGRbJ19uYW1lJ10KLSAgICAgICAgcmV0dXJuICI8UGFyc2VkQ2FsbCAl
cigqKiVyKT4iICUgKHNlbGYuX25hbWUsIGQpCi0KLQotY2xhc3MgSG9va1JlY29yZGVyOgotICAg
ICIiIlJlY29yZCBhbGwgaG9va3MgY2FsbGVkIGluIGEgcGx1Z2luIG1hbmFnZXIuCi0KLSAgICBU
aGlzIHdyYXBzIGFsbCB0aGUgaG9vayBjYWxscyBpbiB0aGUgcGx1Z2luIG1hbmFnZXIsIHJlY29y
ZGluZwotICAgIGVhY2ggY2FsbCBiZWZvcmUgcHJvcGFnYXRpbmcgdGhlIG5vcm1hbCBjYWxscy4K
LQotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsdWdpbm1hbmFnZXIpOgotICAg
ICAgICBzZWxmLl9wbHVnaW5tYW5hZ2VyID0gcGx1Z2lubWFuYWdlcgotICAgICAgICBzZWxmLmNh
bGxzID0gW10KLQotICAgICAgICBkZWYgYmVmb3JlKGhvb2tfbmFtZSwgaG9va19pbXBscywga3dh
cmdzKToKLSAgICAgICAgICAgIHNlbGYuY2FsbHMuYXBwZW5kKFBhcnNlZENhbGwoaG9va19uYW1l
LCBrd2FyZ3MpKQotCi0gICAgICAgIGRlZiBhZnRlcihvdXRjb21lLCBob29rX25hbWUsIGhvb2tf
aW1wbHMsIGt3YXJncyk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgc2VsZi5fdW5kb193
cmFwcGluZyA9IHBsdWdpbm1hbmFnZXIuYWRkX2hvb2tjYWxsX21vbml0b3JpbmcoYmVmb3JlLCBh
ZnRlcikKLQotICAgIGRlZiBmaW5pc2hfcmVjb3JkaW5nKHNlbGYpOgotICAgICAgICBzZWxmLl91
bmRvX3dyYXBwaW5nKCkKLQotICAgIGRlZiBnZXRjYWxscyhzZWxmLCBuYW1lcyk6Ci0gICAgICAg
IGlmIGlzaW5zdGFuY2UobmFtZXMsIHN0cik6Ci0gICAgICAgICAgICBuYW1lcyA9IG5hbWVzLnNw
bGl0KCkKLSAgICAgICAgcmV0dXJuIFtjYWxsIGZvciBjYWxsIGluIHNlbGYuY2FsbHMgaWYgY2Fs
bC5fbmFtZSBpbiBuYW1lc10KLQotICAgIGRlZiBhc3NlcnRfY29udGFpbnMoc2VsZiwgZW50cmll
cyk6Ci0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICBpID0gMAotICAg
ICAgICBlbnRyaWVzID0gbGlzdChlbnRyaWVzKQotICAgICAgICBiYWNrbG9jYWxzID0gc3lzLl9n
ZXRmcmFtZSgxKS5mX2xvY2FscwotICAgICAgICB3aGlsZSBlbnRyaWVzOgotICAgICAgICAgICAg
bmFtZSwgY2hlY2sgPSBlbnRyaWVzLnBvcCgwKQotICAgICAgICAgICAgZm9yIGluZCwgY2FsbCBp
biBlbnVtZXJhdGUoc2VsZi5jYWxsc1tpOl0pOgotICAgICAgICAgICAgICAgIGlmIGNhbGwuX25h
bWUgPT0gbmFtZToKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoIk5BTUVNQVRDSCIsIG5hbWUs
IGNhbGwpCi0gICAgICAgICAgICAgICAgICAgIGlmIGV2YWwoY2hlY2ssIGJhY2tsb2NhbHMsIGNh
bGwuX19kaWN0X18pOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkNIRUNLRVJNQVRD
SCIsIHJlcHIoY2hlY2spLCAiLT4iLCBjYWxsKQotICAgICAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIk5PQ0hFQ0tFUk1BVENIIiwgcmVwcihjaGVj
ayksICItIiwgY2FsbCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg
ICAgICAgICAgICAgIGkgKz0gaW5kICsgMQotICAgICAgICAgICAgICAgICAgICBicmVhawotICAg
ICAgICAgICAgICAgIHByaW50KCJOT05BTUVNQVRDSCIsIG5hbWUsICJ3aXRoIiwgY2FsbCkKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHl0ZXN0LmZhaWwoImNvdWxkIG5vdCBm
aW5kICVyIGNoZWNrICVyIiAlIChuYW1lLCBjaGVjaykpCi0KLSAgICBkZWYgcG9wY2FsbChzZWxm
LCBuYW1lKToKLSAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIGZvciBp
LCBjYWxsIGluIGVudW1lcmF0ZShzZWxmLmNhbGxzKToKLSAgICAgICAgICAgIGlmIGNhbGwuX25h
bWUgPT0gbmFtZToKLSAgICAgICAgICAgICAgICBkZWwgc2VsZi5jYWxsc1tpXQotICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxsCi0gICAgICAgIGxpbmVzID0gWyJjb3VsZCBub3QgZmluZCBjYWxs
ICVyLCBpbjoiICUgKG5hbWUsKV0KLSAgICAgICAgbGluZXMuZXh0ZW5kKFsiICAlcyIgJSBzdHIo
eCkgZm9yIHggaW4gc2VsZi5jYWxsc10pCi0gICAgICAgIHB5dGVzdC5mYWlsKCJcbiIuam9pbihs
aW5lcykpCi0KLSAgICBkZWYgZ2V0Y2FsbChzZWxmLCBuYW1lKToKLSAgICAgICAgdmFsdWVzID0g
c2VsZi5nZXRjYWxscyhuYW1lKQotICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMSwgKG5h
bWUsIHZhbHVlcykKLSAgICAgICAgcmV0dXJuIHZhbHVlc1swXQotCi0gICAgIyBmdW5jdGlvbmFs
aXR5IGZvciB0ZXN0IHJlcG9ydHMKLQotICAgIGRlZiBnZXRyZXBvcnRzKHNlbGYsCi0gICAgICAg
ICAgICAgICAgICAgbmFtZXM9InB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCBweXRlc3RfY29sbGVj
dHJlcG9ydCIpOgotICAgICAgICByZXR1cm4gW3gucmVwb3J0IGZvciB4IGluIHNlbGYuZ2V0Y2Fs
bHMobmFtZXMpXQotCi0gICAgZGVmIG1hdGNocmVwb3J0KHNlbGYsIGluYW1lcGFydD0iIiwKLSAg
ICAgICAgICAgICAgICAgICAgbmFtZXM9InB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCBweXRlc3Rf
Y29sbGVjdHJlcG9ydCIsIHdoZW49Tm9uZSk6Ci0gICAgICAgICIiIiByZXR1cm4gYSB0ZXN0cmVw
b3J0IHdob3NlIGRvdHRlZCBpbXBvcnQgcGF0aCBtYXRjaGVzICIiIgotICAgICAgICB2YWx1ZXMg
PSBbXQotICAgICAgICBmb3IgcmVwIGluIHNlbGYuZ2V0cmVwb3J0cyhuYW1lcz1uYW1lcyk6Ci0g
ICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaWYgbm90IHdoZW4gYW5kIHJlcC53aGVu
ICE9ICJjYWxsIiBhbmQgcmVwLnBhc3NlZDoKLSAgICAgICAgICAgICAgICAgICAgIyBzZXR1cC90
ZWFyZG93biBwYXNzaW5nIHJlcG9ydHMgLSBsZXQncyBpZ25vcmUgdGhvc2UKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAg
ICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBpZiB3aGVuIGFuZCBnZXRhdHRyKHJlcCwg
J3doZW4nLCBOb25lKSAhPSB3aGVuOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg
ICAgICBpZiBub3QgaW5hbWVwYXJ0IG9yIGluYW1lcGFydCBpbiByZXAubm9kZWlkLnNwbGl0KCI6
OiIpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQocmVwKQotICAgICAgICBpZiBub3Qg
dmFsdWVzOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY291bGQgbm90IGZpbmQgdGVz
dCByZXBvcnQgbWF0Y2hpbmcgJXI6ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5v
IHRlc3QgcmVwb3J0cyBhdCBhbGwhIiAlIChpbmFtZXBhcnQsKSkKLSAgICAgICAgaWYgbGVuKHZh
bHVlcykgPiAxOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAg
ICAiZm91bmQgMiBvciBtb3JlIHRlc3RyZXBvcnRzIG1hdGNoaW5nICVyOiAlcyIgJSAoaW5hbWVw
YXJ0LCB2YWx1ZXMpKQotICAgICAgICByZXR1cm4gdmFsdWVzWzBdCi0KLSAgICBkZWYgZ2V0ZmFp
bHVyZXMoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgbmFtZXM9J3B5dGVzdF9ydW50ZXN0X2xv
Z3JlcG9ydCBweXRlc3RfY29sbGVjdHJlcG9ydCcpOgotICAgICAgICByZXR1cm4gW3JlcCBmb3Ig
cmVwIGluIHNlbGYuZ2V0cmVwb3J0cyhuYW1lcykgaWYgcmVwLmZhaWxlZF0KLQotICAgIGRlZiBn
ZXRmYWlsZWRjb2xsZWN0aW9ucyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0ZmFpbHVy
ZXMoJ3B5dGVzdF9jb2xsZWN0cmVwb3J0JykKLQotICAgIGRlZiBsaXN0b3V0Y29tZXMoc2VsZik6
Ci0gICAgICAgIHBhc3NlZCA9IFtdCi0gICAgICAgIHNraXBwZWQgPSBbXQotICAgICAgICBmYWls
ZWQgPSBbXQotICAgICAgICBmb3IgcmVwIGluIHNlbGYuZ2V0cmVwb3J0cygKLSAgICAgICAgICAg
ICAgICAicHl0ZXN0X2NvbGxlY3RyZXBvcnQgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0Iik6Ci0g
ICAgICAgICAgICBpZiByZXAucGFzc2VkOgotICAgICAgICAgICAgICAgIGlmIGdldGF0dHIocmVw
LCAid2hlbiIsIE5vbmUpID09ICJjYWxsIjoKLSAgICAgICAgICAgICAgICAgICAgcGFzc2VkLmFw
cGVuZChyZXApCi0gICAgICAgICAgICBlbGlmIHJlcC5za2lwcGVkOgotICAgICAgICAgICAgICAg
IHNraXBwZWQuYXBwZW5kKHJlcCkKLSAgICAgICAgICAgIGVsaWYgcmVwLmZhaWxlZDoKLSAgICAg
ICAgICAgICAgICBmYWlsZWQuYXBwZW5kKHJlcCkKLSAgICAgICAgcmV0dXJuIHBhc3NlZCwgc2tp
cHBlZCwgZmFpbGVkCi0KLSAgICBkZWYgY291bnRvdXRjb21lcyhzZWxmKToKLSAgICAgICAgcmV0
dXJuIFtsZW4oeCkgZm9yIHggaW4gc2VsZi5saXN0b3V0Y29tZXMoKV0KLQotICAgIGRlZiBhc3Nl
cnRvdXRjb21lKHNlbGYsIHBhc3NlZD0wLCBza2lwcGVkPTAsIGZhaWxlZD0wKToKLSAgICAgICAg
cmVhbHBhc3NlZCwgcmVhbHNraXBwZWQsIHJlYWxmYWlsZWQgPSBzZWxmLmxpc3RvdXRjb21lcygp
Ci0gICAgICAgIGFzc2VydCBwYXNzZWQgPT0gbGVuKHJlYWxwYXNzZWQpCi0gICAgICAgIGFzc2Vy
dCBza2lwcGVkID09IGxlbihyZWFsc2tpcHBlZCkKLSAgICAgICAgYXNzZXJ0IGZhaWxlZCA9PSBs
ZW4ocmVhbGZhaWxlZCkKLQotICAgIGRlZiBjbGVhcihzZWxmKToKLSAgICAgICAgc2VsZi5jYWxs
c1s6XSA9IFtdCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgbGluZWNvbXAocmVxdWVzdCk6Ci0g
ICAgcmV0dXJuIExpbmVDb21wKCkKLQotCi1AcHl0ZXN0LmZpeHR1cmUobmFtZT0nTGluZU1hdGNo
ZXInKQotZGVmIExpbmVNYXRjaGVyX2ZpeHR1cmUocmVxdWVzdCk6Ci0gICAgcmV0dXJuIExpbmVN
YXRjaGVyCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgdGVzdGRpcihyZXF1ZXN0LCB0bXBkaXJf
ZmFjdG9yeSk6Ci0gICAgcmV0dXJuIFRlc3RkaXIocmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpCi0K
LQotcmV4X291dGNvbWUgPSByZS5jb21waWxlKHIiKFxkKykgKFtcdy1dKykiKQotCi0KLWNsYXNz
IFJ1blJlc3VsdDoKLSAgICAiIiJUaGUgcmVzdWx0IG9mIHJ1bm5pbmcgYSBjb21tYW5kLgotCi0g
ICAgQXR0cmlidXRlczoKLQotICAgIDpyZXQ6IFRoZSByZXR1cm4gdmFsdWUuCi0gICAgOm91dGxp
bmVzOiBMaXN0IG9mIGxpbmVzIGNhcHR1cmVkIGZyb20gc3Rkb3V0LgotICAgIDplcnJsaW5lczog
TGlzdCBvZiBsaW5lcyBjYXB0dXJlcyBmcm9tIHN0ZGVyci4KLSAgICA6c3Rkb3V0OiA6cHk6Y2xh
c3M6YExpbmVNYXRjaGVyYCBvZiBzdGRvdXQsIHVzZSBgYHN0ZG91dC5zdHIoKWBgIHRvCi0gICAg
ICAgcmVjb25zdHJ1Y3Qgc3Rkb3V0IG9yIHRoZSBjb21tb25seSB1c2VkCi0gICAgICAgYGBzdGRv
dXQuZm5tYXRjaF9saW5lcygpYGAgbWV0aG9kLgotICAgIDpzdGRlcnJyOiA6cHk6Y2xhc3M6YExp
bmVNYXRjaGVyYCBvZiBzdGRlcnIuCi0gICAgOmR1cmF0aW9uOiBEdXJhdGlvbiBpbiBzZWNvbmRz
LgotCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmV0LCBvdXRsaW5lcywgZXJy
bGluZXMsIGR1cmF0aW9uKToKLSAgICAgICAgc2VsZi5yZXQgPSByZXQKLSAgICAgICAgc2VsZi5v
dXRsaW5lcyA9IG91dGxpbmVzCi0gICAgICAgIHNlbGYuZXJybGluZXMgPSBlcnJsaW5lcwotICAg
ICAgICBzZWxmLnN0ZG91dCA9IExpbmVNYXRjaGVyKG91dGxpbmVzKQotICAgICAgICBzZWxmLnN0
ZGVyciA9IExpbmVNYXRjaGVyKGVycmxpbmVzKQotICAgICAgICBzZWxmLmR1cmF0aW9uID0gZHVy
YXRpb24KLQotICAgIGRlZiBwYXJzZW91dGNvbWVzKHNlbGYpOgotICAgICAgICAiIiIgUmV0dXJu
IGEgZGljdGlvbmFyeSBvZiBvdXRjb21lc3RyaW5nLT5udW0gZnJvbSBwYXJzaW5nCi0gICAgICAg
IHRoZSB0ZXJtaW5hbCBvdXRwdXQgdGhhdCB0aGUgdGVzdCBwcm9jZXNzIHByb2R1Y2VkLiIiIgot
ICAgICAgICBmb3IgbGluZSBpbiByZXZlcnNlZChzZWxmLm91dGxpbmVzKToKLSAgICAgICAgICAg
IGlmICdzZWNvbmRzJyBpbiBsaW5lOgotICAgICAgICAgICAgICAgIG91dGNvbWVzID0gcmV4X291
dGNvbWUuZmluZGFsbChsaW5lKQotICAgICAgICAgICAgICAgIGlmIG91dGNvbWVzOgotICAgICAg
ICAgICAgICAgICAgICBkID0ge30KLSAgICAgICAgICAgICAgICAgICAgZm9yIG51bSwgY2F0IGlu
IG91dGNvbWVzOgotICAgICAgICAgICAgICAgICAgICAgICAgZFtjYXRdID0gaW50KG51bSkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGQKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUHl0
ZXN0IHRlcm1pbmFsIHJlcG9ydCBub3QgZm91bmQiKQotCi0gICAgZGVmIGFzc2VydF9vdXRjb21l
cyhzZWxmLCBwYXNzZWQ9MCwgc2tpcHBlZD0wLCBmYWlsZWQ9MCwgZXJyb3I9MCk6Ci0gICAgICAg
ICIiIiBhc3NlcnQgdGhhdCB0aGUgc3BlY2lmaWVkIG91dGNvbWVzIGFwcGVhciB3aXRoIHRoZSBy
ZXNwZWN0aXZlCi0gICAgICAgIG51bWJlcnMgKDAgbWVhbnMgaXQgZGlkbid0IG9jY3VyKSBpbiB0
aGUgdGV4dCBvdXRwdXQgZnJvbSBhIHRlc3QgcnVuLiIiIgotICAgICAgICBkID0gc2VsZi5wYXJz
ZW91dGNvbWVzKCkKLSAgICAgICAgb2J0YWluZWQgPSB7Ci0gICAgICAgICAgICAncGFzc2VkJzog
ZC5nZXQoJ3Bhc3NlZCcsIDApLAotICAgICAgICAgICAgJ3NraXBwZWQnOiBkLmdldCgnc2tpcHBl
ZCcsIDApLAotICAgICAgICAgICAgJ2ZhaWxlZCc6IGQuZ2V0KCdmYWlsZWQnLCAwKSwKLSAgICAg
ICAgICAgICdlcnJvcic6IGQuZ2V0KCdlcnJvcicsIDApLAotICAgICAgICB9Ci0gICAgICAgIGFz
c2VydCBvYnRhaW5lZCA9PSBkaWN0KHBhc3NlZD1wYXNzZWQsIHNraXBwZWQ9c2tpcHBlZCwgZmFp
bGVkPWZhaWxlZCwgZXJyb3I9ZXJyb3IpCi0KLQotY2xhc3MgVGVzdGRpcjoKLSAgICAiIiJUZW1w
b3JhcnkgdGVzdCBkaXJlY3Rvcnkgd2l0aCB0b29scyB0byB0ZXN0L3J1biBweXRlc3QgaXRzZWxm
LgotCi0gICAgVGhpcyBpcyBiYXNlZCBvbiB0aGUgYGB0bXBkaXJgYCBmaXh0dXJlIGJ1dCBwcm92
aWRlcyBhIG51bWJlciBvZgotICAgIG1ldGhvZHMgd2hpY2ggYWlkIHdpdGggdGVzdGluZyBweXRl
c3QgaXRzZWxmLiAgVW5sZXNzCi0gICAgOnB5Om1ldGg6YGNoZGlyYCBpcyB1c2VkIGFsbCBtZXRo
b2RzIHdpbGwgdXNlIDpweTphdHRyOmB0bXBkaXJgIGFzCi0gICAgY3VycmVudCB3b3JraW5nIGRp
cmVjdG9yeS4KLQotICAgIEF0dHJpYnV0ZXM6Ci0KLSAgICA6dG1wZGlyOiBUaGUgOnB5OmNsYXNz
OmBweS5wYXRoLmxvY2FsYCBpbnN0YW5jZSBvZiB0aGUgdGVtcG9yYXJ5Ci0gICAgICAgZGlyZWN0
b3J5LgotCi0gICAgOnBsdWdpbnM6IEEgbGlzdCBvZiBwbHVnaW5zIHRvIHVzZSB3aXRoIDpweTpt
ZXRoOmBwYXJzZWNvbmZpZ2AgYW5kCi0gICAgICAgOnB5Om1ldGg6YHJ1bnB5dGVzdGAuICBJbml0
aWFsbHkgdGhpcyBpcyBhbiBlbXB0eSBsaXN0IGJ1dAotICAgICAgIHBsdWdpbnMgY2FuIGJlIGFk
ZGVkIHRvIHRoZSBsaXN0LiAgVGhlIHR5cGUgb2YgaXRlbXMgdG8gYWRkIHRvCi0gICAgICAgdGhl
IGxpc3QgZGVwZW5kIG9uIHRoZSBtZXRob2Qgd2hpY2ggdXNlcyB0aGVtIHNvIHJlZmVyIHRvIHRo
ZW0KLSAgICAgICBmb3IgZGV0YWlscy4KLQotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5KToKLSAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVx
dWVzdAotICAgICAgICBzZWxmLl9tb2RfY29sbGVjdGlvbnMgPSBXZWFrS2V5RGljdGlvbmFyeSgp
Ci0gICAgICAgIG5hbWUgPSByZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fCi0gICAgICAgIHNlbGYu
dG1wZGlyID0gdG1wZGlyX2ZhY3RvcnkubWt0ZW1wKG5hbWUsIG51bWJlcmVkPVRydWUpCi0gICAg
ICAgIHNlbGYucGx1Z2lucyA9IFtdCi0gICAgICAgIHNlbGYuX3NhdmVzeXNwYXRoID0gKGxpc3Qo
c3lzLnBhdGgpLCBsaXN0KHN5cy5tZXRhX3BhdGgpKQotICAgICAgICBzZWxmLl9zYXZlbW9kdWxl
a2V5cyA9IHNldChzeXMubW9kdWxlcykKLSAgICAgICAgc2VsZi5jaGRpcigpICAjIGFsd2F5cyBj
aGRpcgotICAgICAgICBzZWxmLnJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYuZmluYWxpemUpCi0g
ICAgICAgIG1ldGhvZCA9IHNlbGYucmVxdWVzdC5jb25maWcuZ2V0b3B0aW9uKCItLXJ1bnB5dGVz
dCIpCi0gICAgICAgIGlmIG1ldGhvZCA9PSAiaW5wcm9jZXNzIjoKLSAgICAgICAgICAgIHNlbGYu
X3J1bnB5dGVzdF9tZXRob2QgPSBzZWxmLnJ1bnB5dGVzdF9pbnByb2Nlc3MKLSAgICAgICAgZWxp
ZiBtZXRob2QgPT0gInN1YnByb2Nlc3MiOgotICAgICAgICAgICAgc2VsZi5fcnVucHl0ZXN0X21l
dGhvZCA9IHNlbGYucnVucHl0ZXN0X3N1YnByb2Nlc3MKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxm
KToKLSAgICAgICAgcmV0dXJuICI8VGVzdGRpciAlcj4iICUgKHNlbGYudG1wZGlyLCkKLQotICAg
IGRlZiBmaW5hbGl6ZShzZWxmKToKLSAgICAgICAgIiIiQ2xlYW4gdXAgZ2xvYmFsIHN0YXRlIGFy
dGlmYWN0cy4KLQotICAgICAgICBTb21lIG1ldGhvZHMgbW9kaWZ5IHRoZSBnbG9iYWwgaW50ZXJw
cmV0ZXIgc3RhdGUgYW5kIHRoaXMKLSAgICAgICAgdHJpZXMgdG8gY2xlYW4gdGhpcyB1cC4gIEl0
IGRvZXMgbm90IHJlbW92ZSB0aGUgdGVtcG9yYXJ5Ci0gICAgICAgIGRpcmVjdG9yeSBob3dldmVy
IHNvIGl0IGNhbiBiZSBsb29rZWQgYXQgYWZ0ZXIgdGhlIHRlc3QgcnVuCi0gICAgICAgIGhhcyBm
aW5pc2hlZC4KLQotICAgICAgICAiIiIKLSAgICAgICAgc3lzLnBhdGhbOl0sIHN5cy5tZXRhX3Bh
dGhbOl0gPSBzZWxmLl9zYXZlc3lzcGF0aAotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfb2xk
ZGlyJyk6Ci0gICAgICAgICAgICBzZWxmLl9vbGRkaXIuY2hkaXIoKQotICAgICAgICBzZWxmLmRl
bGV0ZV9sb2FkZWRfbW9kdWxlcygpCi0KLSAgICBkZWYgZGVsZXRlX2xvYWRlZF9tb2R1bGVzKHNl
bGYpOgotICAgICAgICAiIiJEZWxldGUgbW9kdWxlcyB0aGF0IGhhdmUgYmVlbiBsb2FkZWQgZHVy
aW5nIGEgdGVzdC4KLQotICAgICAgICBUaGlzIGFsbG93cyB0aGUgaW50ZXJwcmV0ZXIgdG8gY2F0
Y2ggbW9kdWxlIGNoYW5nZXMgaW4gY2FzZQotICAgICAgICB0aGUgbW9kdWxlIGlzIHJlLWltcG9y
dGVkLgotICAgICAgICAiIiIKLSAgICAgICAgZm9yIG5hbWUgaW4gc2V0KHN5cy5tb2R1bGVzKS5k
aWZmZXJlbmNlKHNlbGYuX3NhdmVtb2R1bGVrZXlzKToKLSAgICAgICAgICAgICMgc29tZSB6b3Bl
IG1vZHVsZXMgdXNlZCBieSB0d2lzdGVkLXJlbGF0ZWQgdGVzdHMga2VlcHMgaW50ZXJuYWwKLSAg
ICAgICAgICAgICMgc3RhdGUgYW5kIGNhbid0IGJlIGRlbGV0ZWQ7IHdlIGhhZCBzb21lIHRyb3Vi
bGUgaW4gdGhlIHBhc3QKLSAgICAgICAgICAgICMgd2l0aCB6b3BlLmludGVyZmFjZSBmb3IgZXhh
bXBsZQotICAgICAgICAgICAgaWYgbm90IG5hbWUuc3RhcnRzd2l0aCgiem9wZSIpOgotICAgICAg
ICAgICAgICAgIGRlbCBzeXMubW9kdWxlc1tuYW1lXQotCi0gICAgZGVmIG1ha2VfaG9va19yZWNv
cmRlcihzZWxmLCBwbHVnaW5tYW5hZ2VyKToKLSAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IDpweTpj
bGFzczpgSG9va1JlY29yZGVyYCBmb3IgYSBQbHVnaW5NYW5hZ2VyLiIiIgotICAgICAgICBhc3Nl
cnQgbm90IGhhc2F0dHIocGx1Z2lubWFuYWdlciwgInJlcHJlYyIpCi0gICAgICAgIHBsdWdpbm1h
bmFnZXIucmVwcmVjID0gcmVwcmVjID0gSG9va1JlY29yZGVyKHBsdWdpbm1hbmFnZXIpCi0gICAg
ICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIocmVwcmVjLmZpbmlzaF9yZWNvcmRpbmcpCi0g
ICAgICAgIHJldHVybiByZXByZWMKLQotICAgIGRlZiBjaGRpcihzZWxmKToKLSAgICAgICAgIiIi
Q2QgaW50byB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KLQotICAgICAgICBUaGlzIGlzIGRvbmUg
YXV0b21hdGljYWxseSB1cG9uIGluc3RhbnRpYXRpb24uCi0KLSAgICAgICAgIiIiCi0gICAgICAg
IG9sZCA9IHNlbGYudG1wZGlyLmNoZGlyKCkKLSAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwg
J19vbGRkaXInKToKLSAgICAgICAgICAgIHNlbGYuX29sZGRpciA9IG9sZAotCi0gICAgZGVmIF9t
YWtlZmlsZShzZWxmLCBleHQsIGFyZ3MsIGt3YXJncywgZW5jb2Rpbmc9J3V0Zi04Jyk6Ci0gICAg
ICAgIGl0ZW1zID0gbGlzdChrd2FyZ3MuaXRlbXMoKSkKLQotICAgICAgICBkZWYgdG9fdGV4dChz
KToKLSAgICAgICAgICAgIHJldHVybiBzLmRlY29kZShlbmNvZGluZykgaWYgaXNpbnN0YW5jZShz
LCBieXRlcykgZWxzZSBzaXgudGV4dF90eXBlKHMpCi0KLSAgICAgICAgaWYgYXJnczoKLSAgICAg
ICAgICAgIHNvdXJjZSA9IHUiXG4iLmpvaW4odG9fdGV4dCh4KSBmb3IgeCBpbiBhcmdzKQotICAg
ICAgICAgICAgYmFzZW5hbWUgPSBzZWxmLnJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18KLSAgICAg
ICAgICAgIGl0ZW1zLmluc2VydCgwLCAoYmFzZW5hbWUsIHNvdXJjZSkpCi0KLSAgICAgICAgcmV0
ID0gTm9uZQotICAgICAgICBmb3IgYmFzZW5hbWUsIHZhbHVlIGluIGl0ZW1zOgotICAgICAgICAg
ICAgcCA9IHNlbGYudG1wZGlyLmpvaW4oYmFzZW5hbWUpLm5ldyhleHQ9ZXh0KQotICAgICAgICAg
ICAgcC5kaXJwYXRoKCkuZW5zdXJlX2RpcigpCi0gICAgICAgICAgICBzb3VyY2UgPSBTb3VyY2Uo
dmFsdWUpCi0gICAgICAgICAgICBzb3VyY2UgPSB1IlxuIi5qb2luKHRvX3RleHQobGluZSkgZm9y
IGxpbmUgaW4gc291cmNlLmxpbmVzKQotICAgICAgICAgICAgcC53cml0ZShzb3VyY2Uuc3RyaXAo
KS5lbmNvZGUoZW5jb2RpbmcpLCAid2IiKQotICAgICAgICAgICAgaWYgcmV0IGlzIE5vbmU6Ci0g
ICAgICAgICAgICAgICAgcmV0ID0gcAotICAgICAgICByZXR1cm4gcmV0Ci0KLSAgICBkZWYgbWFr
ZWZpbGUoc2VsZiwgZXh0LCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiJDcmVhdGUgYSBu
ZXcgZmlsZSBpbiB0aGUgdGVzdGRpci4KLQotICAgICAgICBleHQ6IFRoZSBleHRlbnNpb24gdGhl
IGZpbGUgc2hvdWxkIHVzZSwgaW5jbHVkaW5nIHRoZSBkb3QuCi0gICAgICAgICAgIEUuZy4gIi5w
eSIuCi0KLSAgICAgICAgYXJnczogQWxsIGFyZ3Mgd2lsbCBiZSB0cmVhdGVkIGFzIHN0cmluZ3Mg
YW5kIGpvaW5lZCB1c2luZwotICAgICAgICAgICBuZXdsaW5lcy4gIFRoZSByZXN1bHQgd2lsbCBi
ZSB3cml0dGVuIGFzIGNvbnRlbnRzIHRvIHRoZQotICAgICAgICAgICBmaWxlLiAgVGhlIG5hbWUg
b2YgdGhlIGZpbGUgd2lsbCBiZSBiYXNlZCBvbiB0aGUgdGVzdAotICAgICAgICAgICBmdW5jdGlv
biByZXF1ZXN0aW5nIHRoaXMgZml4dHVyZS4KLSAgICAgICAgICAgRS5nLiAidGVzdGRpci5tYWtl
ZmlsZSgnLnR4dCcsICdsaW5lMScsICdsaW5lMicpIgotCi0gICAgICAgIGt3YXJnczogRWFjaCBr
ZXl3b3JkIGlzIHRoZSBuYW1lIG9mIGEgZmlsZSwgd2hpbGUgdGhlIHZhbHVlIG9mCi0gICAgICAg
ICAgIGl0IHdpbGwgYmUgd3JpdHRlbiBhcyBjb250ZW50cyBvZiB0aGUgZmlsZS4KLSAgICAgICAg
ICAgRS5nLiAidGVzdGRpci5tYWtlZmlsZSgnLmluaScsIHB5dGVzdD0nW3B5dGVzdF1cbmFkZG9w
dHM9LXJzXG4nKSIKLQotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX21ha2VmaWxl
KGV4dCwgYXJncywga3dhcmdzKQotCi0gICAgZGVmIG1ha2Vjb25mdGVzdChzZWxmLCBzb3VyY2Up
OgotICAgICAgICAiIiJXcml0ZSBhIGNvbnRlc3QucHkgZmlsZSB3aXRoICdzb3VyY2UnIGFzIGNv
bnRlbnRzLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5tYWtlcHlmaWxlKGNvbmZ0ZXN0PXNvdXJj
ZSkKLQotICAgIGRlZiBtYWtlaW5pKHNlbGYsIHNvdXJjZSk6Ci0gICAgICAgICIiIldyaXRlIGEg
dG94LmluaSBmaWxlIHdpdGggJ3NvdXJjZScgYXMgY29udGVudHMuIiIiCi0gICAgICAgIHJldHVy
biBzZWxmLm1ha2VmaWxlKCcuaW5pJywgdG94PXNvdXJjZSkKLQotICAgIGRlZiBnZXRpbmljZmco
c2VsZiwgc291cmNlKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBweXRlc3Qgc2VjdGlvbiBmcm9t
IHRoZSB0b3guaW5pIGNvbmZpZyBmaWxlLiIiIgotICAgICAgICBwID0gc2VsZi5tYWtlaW5pKHNv
dXJjZSkKLSAgICAgICAgcmV0dXJuIHB5LmluaWNvbmZpZy5JbmlDb25maWcocClbJ3B5dGVzdCdd
Ci0KLSAgICBkZWYgbWFrZXB5ZmlsZShzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAi
IiJTaG9ydGN1dCBmb3IgLm1ha2VmaWxlKCkgd2l0aCBhIC5weSBleHRlbnNpb24uIiIiCi0gICAg
ICAgIHJldHVybiBzZWxmLl9tYWtlZmlsZSgnLnB5JywgYXJncywga3dhcmdzKQotCi0gICAgZGVm
IG1ha2V0eHRmaWxlKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICIiIlNob3J0Y3V0
IGZvciAubWFrZWZpbGUoKSB3aXRoIGEgLnR4dCBleHRlbnNpb24uIiIiCi0gICAgICAgIHJldHVy
biBzZWxmLl9tYWtlZmlsZSgnLnR4dCcsIGFyZ3MsIGt3YXJncykKLQotICAgIGRlZiBzeXNwYXRo
aW5zZXJ0KHNlbGYsIHBhdGg9Tm9uZSk6Ci0gICAgICAgICIiIlByZXBlbmQgYSBkaXJlY3Rvcnkg
dG8gc3lzLnBhdGgsIGRlZmF1bHRzIHRvIDpweTphdHRyOmB0bXBkaXJgLgotCi0gICAgICAgIFRo
aXMgaXMgdW5kb25lIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIHRlc3QuCi0gICAgICAgICIiIgot
ICAgICAgICBpZiBwYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBwYXRoID0gc2VsZi50bXBkaXIK
LSAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHN0cihwYXRoKSkKLSAgICAgICAgIyBhIGNhbGwg
dG8gc3lzcGF0aGluc2VydCgpIHVzdWFsbHkgbWVhbnMgdGhhdCB0aGUgY2FsbGVyCi0gICAgICAg
ICMgd2FudHMgdG8gaW1wb3J0IHNvbWUgZHluYW1pY2FsbHkgY3JlYXRlZCBmaWxlcy4KLSAgICAg
ICAgIyB3aXRoIHB5dGhvbjMgd2UgdGh1cyBpbnZhbGlkYXRlIGltcG9ydCBjYWNoZXMuCi0gICAg
ICAgIHNlbGYuX3Bvc3NpYmx5X2ludmFsaWRhdGVfaW1wb3J0X2NhY2hlcygpCi0KLSAgICBkZWYg
X3Bvc3NpYmx5X2ludmFsaWRhdGVfaW1wb3J0X2NhY2hlcyhzZWxmKToKLSAgICAgICAgIyBpbnZh
bGlkYXRlIGNhY2hlcyBpZiB3ZSBjYW4gKHB5MzMgYW5kIGFib3ZlKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBpbXBvcnQgaW1wb3J0bGliCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoK
LSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIGhhc2F0dHIo
aW1wb3J0bGliLCAiaW52YWxpZGF0ZV9jYWNoZXMiKToKLSAgICAgICAgICAgICAgICBpbXBvcnRs
aWIuaW52YWxpZGF0ZV9jYWNoZXMoKQotCi0gICAgZGVmIG1rZGlyKHNlbGYsIG5hbWUpOgotICAg
ICAgICAiIiJDcmVhdGUgYSBuZXcgKHN1YilkaXJlY3RvcnkuIiIiCi0gICAgICAgIHJldHVybiBz
ZWxmLnRtcGRpci5ta2RpcihuYW1lKQotCi0gICAgZGVmIG1rcHlkaXIoc2VsZiwgbmFtZSk6Ci0g
ICAgICAgICIiIkNyZWF0ZSBhIG5ldyBweXRob24gcGFja2FnZS4KLQotICAgICAgICBUaGlzIGNy
ZWF0ZXMgYSAoc3ViKWRpcmVjdG9yeSB3aXRoIGFuIGVtcHR5IGBgX19pbml0X18ucHlgYAotICAg
ICAgICBmaWxlIHNvIHRoYXQgaXMgcmVjb2duaXNlZCBhcyBhIHB5dGhvbiBwYWNrYWdlLgotCi0g
ICAgICAgICIiIgotICAgICAgICBwID0gc2VsZi5ta2RpcihuYW1lKQotICAgICAgICBwLmVuc3Vy
ZSgiX19pbml0X18ucHkiKQotICAgICAgICByZXR1cm4gcAotCi0gICAgU2Vzc2lvbiA9IFNlc3Np
b24KLQotICAgIGRlZiBnZXRub2RlKHNlbGYsIGNvbmZpZywgYXJnKToKLSAgICAgICAgIiIiUmV0
dXJuIHRoZSBjb2xsZWN0aW9uIG5vZGUgb2YgYSBmaWxlLgotCi0gICAgICAgIDpwYXJhbSBjb25m
aWc6IDpweTpjbGFzczpgX3B5dGVzdC5jb25maWcuQ29uZmlnYCBpbnN0YW5jZSwgc2VlCi0gICAg
ICAgICAgIDpweTptZXRoOmBwYXJzZWNvbmZpZ2AgYW5kIDpweTptZXRoOmBwYXJzZWNvbmZpZ3Vy
ZWAgdG8KLSAgICAgICAgICAgY3JlYXRlIHRoZSBjb25maWd1cmF0aW9uLgotCi0gICAgICAgIDpw
YXJhbSBhcmc6IEEgOnB5OmNsYXNzOmBweS5wYXRoLmxvY2FsYCBpbnN0YW5jZSBvZiB0aGUgZmls
ZS4KLQotICAgICAgICAiIiIKLSAgICAgICAgc2Vzc2lvbiA9IFNlc3Npb24oY29uZmlnKQotICAg
ICAgICBhc3NlcnQgJzo6JyBub3QgaW4gc3RyKGFyZykKLSAgICAgICAgcCA9IHB5LnBhdGgubG9j
YWwoYXJnKQotICAgICAgICBjb25maWcuaG9vay5weXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb249
c2Vzc2lvbikKLSAgICAgICAgcmVzID0gc2Vzc2lvbi5wZXJmb3JtX2NvbGxlY3QoW3N0cihwKV0s
IGdlbml0ZW1zPUZhbHNlKVswXQotICAgICAgICBjb25maWcuaG9vay5weXRlc3Rfc2Vzc2lvbmZp
bmlzaChzZXNzaW9uPXNlc3Npb24sIGV4aXRzdGF0dXM9RVhJVF9PSykKLSAgICAgICAgcmV0dXJu
IHJlcwotCi0gICAgZGVmIGdldHBhdGhub2RlKHNlbGYsIHBhdGgpOgotICAgICAgICAiIiJSZXR1
cm4gdGhlIGNvbGxlY3Rpb24gbm9kZSBvZiBhIGZpbGUuCi0KLSAgICAgICAgVGhpcyBpcyBsaWtl
IDpweTptZXRoOmBnZXRub2RlYCBidXQgdXNlcwotICAgICAgICA6cHk6bWV0aDpgcGFyc2Vjb25m
aWd1cmVgIHRvIGNyZWF0ZSB0aGUgKGNvbmZpZ3VyZWQpIHB5dGVzdAotICAgICAgICBDb25maWcg
aW5zdGFuY2UuCi0KLSAgICAgICAgOnBhcmFtIHBhdGg6IEEgOnB5OmNsYXNzOmBweS5wYXRoLmxv
Y2FsYCBpbnN0YW5jZSBvZiB0aGUgZmlsZS4KLQotICAgICAgICAiIiIKLSAgICAgICAgY29uZmln
ID0gc2VsZi5wYXJzZWNvbmZpZ3VyZShwYXRoKQotICAgICAgICBzZXNzaW9uID0gU2Vzc2lvbihj
b25maWcpCi0gICAgICAgIHggPSBzZXNzaW9uLmZzcGF0aC5iZXN0cmVscGF0aChwYXRoKQotICAg
ICAgICBjb25maWcuaG9vay5weXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb249c2Vzc2lvbikKLSAg
ICAgICAgcmVzID0gc2Vzc2lvbi5wZXJmb3JtX2NvbGxlY3QoW3hdLCBnZW5pdGVtcz1GYWxzZSlb
MF0KLSAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Npb25maW5pc2goc2Vzc2lvbj1zZXNz
aW9uLCBleGl0c3RhdHVzPUVYSVRfT0spCi0gICAgICAgIHJldHVybiByZXMKLQotICAgIGRlZiBn
ZW5pdGVtcyhzZWxmLCBjb2xpdGVtcyk6Ci0gICAgICAgICIiIkdlbmVyYXRlIGFsbCB0ZXN0IGl0
ZW1zIGZyb20gYSBjb2xsZWN0aW9uIG5vZGUuCi0KLSAgICAgICAgVGhpcyByZWN1cnNlcyBpbnRv
IHRoZSBjb2xsZWN0aW9uIG5vZGUgYW5kIHJldHVybnMgYSBsaXN0IG9mCi0gICAgICAgIGFsbCB0
aGUgdGVzdCBpdGVtcyBjb250YWluZWQgd2l0aGluLgotCi0gICAgICAgICIiIgotICAgICAgICBz
ZXNzaW9uID0gY29saXRlbXNbMF0uc2Vzc2lvbgotICAgICAgICByZXN1bHQgPSBbXQotICAgICAg
ICBmb3IgY29saXRlbSBpbiBjb2xpdGVtczoKLSAgICAgICAgICAgIHJlc3VsdC5leHRlbmQoc2Vz
c2lvbi5nZW5pdGVtcyhjb2xpdGVtKSkKLSAgICAgICAgcmV0dXJuIHJlc3VsdAotCi0gICAgZGVm
IHJ1bml0ZW0oc2VsZiwgc291cmNlKToKLSAgICAgICAgIiIiUnVuIHRoZSAidGVzdF9mdW5jIiBJ
dGVtLgotCi0gICAgICAgIFRoZSBjYWxsaW5nIHRlc3QgaW5zdGFuY2UgKHRoZSBjbGFzcyB3aGlj
aCBjb250YWlucyB0aGUgdGVzdAotICAgICAgICBtZXRob2QpIG11c3QgcHJvdmlkZSBhIGBgLmdl
dHJ1bm5lcigpYGAgbWV0aG9kIHdoaWNoIHNob3VsZAotICAgICAgICByZXR1cm4gYSBydW5uZXIg
d2hpY2ggY2FuIHJ1biB0aGUgdGVzdCBwcm90b2NvbCBmb3IgYSBzaW5nbGUKLSAgICAgICAgaXRl
bSwgbGlrZSBlLmcuIDpweTpmdW5jOmBfcHl0ZXN0LnJ1bm5lci5ydW50ZXN0cHJvdG9jb2xgLgot
Ci0gICAgICAgICIiIgotICAgICAgICAjIHVzZWQgZnJvbSBydW5uZXIgZnVuY3Rpb25hbCB0ZXN0
cwotICAgICAgICBpdGVtID0gc2VsZi5nZXRpdGVtKHNvdXJjZSkKLSAgICAgICAgIyB0aGUgdGVz
dCBjbGFzcyB3aGVyZSB3ZSBhcmUgY2FsbGVkIGZyb20gd2FudHMgdG8gcHJvdmlkZSB0aGUgcnVu
bmVyCi0gICAgICAgIHRlc3RjbGFzc2luc3RhbmNlID0gc2VsZi5yZXF1ZXN0Lmluc3RhbmNlCi0g
ICAgICAgIHJ1bm5lciA9IHRlc3RjbGFzc2luc3RhbmNlLmdldHJ1bm5lcigpCi0gICAgICAgIHJl
dHVybiBydW5uZXIoaXRlbSkKLQotICAgIGRlZiBpbmxpbmVfcnVuc291cmNlKHNlbGYsIHNvdXJj
ZSwgKmNtZGxpbmVhcmdzKToKLSAgICAgICAgIiIiUnVuIGEgdGVzdCBtb2R1bGUgaW4gcHJvY2Vz
cyB1c2luZyBgYHB5dGVzdC5tYWluKClgYC4KLQotICAgICAgICBUaGlzIHJ1biB3cml0ZXMgInNv
dXJjZSIgaW50byBhIHRlbXBvcmFyeSBmaWxlIGFuZCBydW5zCi0gICAgICAgIGBgcHl0ZXN0Lm1h
aW4oKWBgIG9uIGl0LCByZXR1cm5pbmcgYSA6cHk6Y2xhc3M6YEhvb2tSZWNvcmRlcmAKLSAgICAg
ICAgaW5zdGFuY2UgZm9yIHRoZSByZXN1bHQuCi0KLSAgICAgICAgOnBhcmFtIHNvdXJjZTogVGhl
IHNvdXJjZSBjb2RlIG9mIHRoZSB0ZXN0IG1vZHVsZS4KLQotICAgICAgICA6cGFyYW0gY21kbGlu
ZWFyZ3M6IEFueSBleHRyYSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRvIHVzZS4KLQotICAgICAg
ICA6cmV0dXJuOiA6cHk6Y2xhc3M6YEhvb2tSZWNvcmRlcmAgaW5zdGFuY2Ugb2YgdGhlIHJlc3Vs
dC4KLQotICAgICAgICAiIiIKLSAgICAgICAgcCA9IHNlbGYubWFrZXB5ZmlsZShzb3VyY2UpCi0g
ICAgICAgIHZhbHVlcyA9IGxpc3QoY21kbGluZWFyZ3MpICsgW3BdCi0gICAgICAgIHJldHVybiBz
ZWxmLmlubGluZV9ydW4oKnZhbHVlcykKLQotICAgIGRlZiBpbmxpbmVfZ2VuaXRlbXMoc2VsZiwg
KmFyZ3MpOgotICAgICAgICAiIiJSdW4gYGBweXRlc3QubWFpbihbJy0tY29sbGVjdG9ubHknXSlg
YCBpbi1wcm9jZXNzLgotCi0gICAgICAgIFJldHVybnMgYSB0dXBsZSBvZiB0aGUgY29sbGVjdGVk
IGl0ZW1zIGFuZCBhCi0gICAgICAgIDpweTpjbGFzczpgSG9va1JlY29yZGVyYCBpbnN0YW5jZS4K
LQotICAgICAgICBUaGlzIHJ1bnMgdGhlIDpweTpmdW5jOmBweXRlc3QubWFpbmAgZnVuY3Rpb24g
dG8gcnVuIGFsbCBvZgotICAgICAgICBweXRlc3QgaW5zaWRlIHRoZSB0ZXN0IHByb2Nlc3MgaXRz
ZWxmIGxpa2UKLSAgICAgICAgOnB5Om1ldGg6YGlubGluZV9ydW5gLiAgSG93ZXZlciB0aGUgcmV0
dXJuIHZhbHVlIGlzIGEgdHVwbGUgb2YKLSAgICAgICAgdGhlIGNvbGxlY3Rpb24gaXRlbXMgYW5k
IGEgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGluc3RhbmNlLgotCi0gICAgICAgICIiIgotICAg
ICAgICByZWMgPSBzZWxmLmlubGluZV9ydW4oIi0tY29sbGVjdC1vbmx5IiwgKmFyZ3MpCi0gICAg
ICAgIGl0ZW1zID0gW3guaXRlbSBmb3IgeCBpbiByZWMuZ2V0Y2FsbHMoInB5dGVzdF9pdGVtY29s
bGVjdGVkIildCi0gICAgICAgIHJldHVybiBpdGVtcywgcmVjCi0KLSAgICBkZWYgaW5saW5lX3J1
bihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiJSdW4gYGBweXRlc3QubWFpbigp
YGAgaW4tcHJvY2VzcywgcmV0dXJuaW5nIGEgSG9va1JlY29yZGVyLgotCi0gICAgICAgIFRoaXMg
cnVucyB0aGUgOnB5OmZ1bmM6YHB5dGVzdC5tYWluYCBmdW5jdGlvbiB0byBydW4gYWxsIG9mCi0g
ICAgICAgIHB5dGVzdCBpbnNpZGUgdGhlIHRlc3QgcHJvY2VzcyBpdHNlbGYuICBUaGlzIG1lYW5z
IGl0IGNhbgotICAgICAgICByZXR1cm4gYSA6cHk6Y2xhc3M6YEhvb2tSZWNvcmRlcmAgaW5zdGFu
Y2Ugd2hpY2ggZ2l2ZXMgbW9yZQotICAgICAgICBkZXRhaWxlZCByZXN1bHRzIGZyb20gdGhlbiBy
dW4gdGhlbiBjYW4gYmUgZG9uZSBieSBtYXRjaGluZwotICAgICAgICBzdGRvdXQvc3RkZXJyIGZy
b20gOnB5Om1ldGg6YHJ1bnB5dGVzdGAuCi0KLSAgICAgICAgOnBhcmFtIGFyZ3M6IEFueSBjb21t
YW5kIGxpbmUgYXJndW1lbnRzIHRvIHBhc3MgdG8KLSAgICAgICAgICAgOnB5OmZ1bmM6YHB5dGVz
dC5tYWluYC4KLQotICAgICAgICA6cGFyYW0gcGx1Z2luOiAoa2V5d29yZC1vbmx5KSBFeHRyYSBw
bHVnaW4gaW5zdGFuY2VzIHRoZQotICAgICAgICAgICBgYHB5dGVzdC5tYWluKClgYCBpbnN0YW5j
ZSBzaG91bGQgdXNlLgotCi0gICAgICAgIDpyZXR1cm46IEEgOnB5OmNsYXNzOmBIb29rUmVjb3Jk
ZXJgIGluc3RhbmNlLgotICAgICAgICAiIiIKLSAgICAgICAgIyBXaGVuIHJ1bm5pbmcgcHkudGVz
dCBpbmxpbmUgYW55IHBsdWdpbnMgYWN0aXZlIGluIHRoZSBtYWluCi0gICAgICAgICMgdGVzdCBw
cm9jZXNzIGFyZSBhbHJlYWR5IGltcG9ydGVkLiAgU28gdGhpcyBkaXNhYmxlcyB0aGUKLSAgICAg
ICAgIyB3YXJuaW5nIHdoaWNoIHdpbGwgdHJpZ2dlciB0byBzYXkgdGhleSBjYW4gbm8gbG9uZ2Vy
IGJlCi0gICAgICAgICMgcmV3cml0dGVuLCB3aGljaCBpcyBmaW5lIGFzIHRoZXkgYXJlIGFscmVh
ZHkgcmV3cml0dGVuLgotICAgICAgICBvcmlnX3dhcm4gPSBBc3NlcnRpb25SZXdyaXRpbmdIb29r
Ll93YXJuX2FscmVhZHlfaW1wb3J0ZWQKLQotICAgICAgICBkZWYgcmV2ZXJ0KCk6Ci0gICAgICAg
ICAgICBBc3NlcnRpb25SZXdyaXRpbmdIb29rLl93YXJuX2FscmVhZHlfaW1wb3J0ZWQgPSBvcmln
X3dhcm4KLQotICAgICAgICBzZWxmLnJlcXVlc3QuYWRkZmluYWxpemVyKHJldmVydCkKLSAgICAg
ICAgQXNzZXJ0aW9uUmV3cml0aW5nSG9vay5fd2Fybl9hbHJlYWR5X2ltcG9ydGVkID0gbGFtYmRh
ICphOiBOb25lCi0KLSAgICAgICAgcmVjID0gW10KLQotICAgICAgICBjbGFzcyBDb2xsZWN0Ogot
ICAgICAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoeCwgY29uZmlnKToKLSAgICAgICAgICAg
ICAgICByZWMuYXBwZW5kKHNlbGYubWFrZV9ob29rX3JlY29yZGVyKGNvbmZpZy5wbHVnaW5tYW5h
Z2VyKSkKLQotICAgICAgICBwbHVnaW5zID0ga3dhcmdzLmdldCgicGx1Z2lucyIpIG9yIFtdCi0g
ICAgICAgIHBsdWdpbnMuYXBwZW5kKENvbGxlY3QoKSkKLSAgICAgICAgcmV0ID0gcHl0ZXN0Lm1h
aW4obGlzdChhcmdzKSwgcGx1Z2lucz1wbHVnaW5zKQotICAgICAgICBzZWxmLmRlbGV0ZV9sb2Fk
ZWRfbW9kdWxlcygpCi0gICAgICAgIGlmIGxlbihyZWMpID09IDE6Ci0gICAgICAgICAgICByZXBy
ZWMgPSByZWMucG9wKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGNsYXNzIHJlcHJlYzoK
LSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgIHJlcHJlYy5yZXQgPSByZXQKLQotICAgICAg
ICAjIHR5cGljYWxseSB3ZSByZXJhaXNlIGtleWJvYXJkIGludGVycnVwdHMgZnJvbSB0aGUgY2hp
bGQgcnVuCi0gICAgICAgICMgYmVjYXVzZSBpdCdzIG91ciB1c2VyIHJlcXVlc3RpbmcgaW50ZXJy
dXB0aW9uIG9mIHRoZSB0ZXN0aW5nCi0gICAgICAgIGlmIHJldCA9PSAyIGFuZCBub3Qga3dhcmdz
LmdldCgibm9fcmVyYWlzZV9jdHJsYyIpOgotICAgICAgICAgICAgY2FsbHMgPSByZXByZWMuZ2V0
Y2FsbHMoInB5dGVzdF9rZXlib2FyZF9pbnRlcnJ1cHQiKQotICAgICAgICAgICAgaWYgY2FsbHMg
YW5kIGNhbGxzWy0xXS5leGNpbmZvLnR5cGUgPT0gS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgS2V5Ym9hcmRJbnRlcnJ1cHQoKQotICAgICAgICByZXR1cm4gcmVwcmVj
Ci0KLSAgICBkZWYgcnVucHl0ZXN0X2lucHJvY2VzcyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgot
ICAgICAgICAiIiIgUmV0dXJuIHJlc3VsdCBvZiBydW5uaW5nIHB5dGVzdCBpbi1wcm9jZXNzLCBw
cm92aWRpbmcgYSBzaW1pbGFyCi0gICAgICAgIGludGVyZmFjZSB0byB3aGF0IHNlbGYucnVucHl0
ZXN0KCkgcHJvdmlkZXMuICIiIgotICAgICAgICBpZiBrd2FyZ3MuZ2V0KCJzeXNwYXRoaW5zZXJ0
Iik6Ci0gICAgICAgICAgICBzZWxmLnN5c3BhdGhpbnNlcnQoKQotICAgICAgICBub3cgPSB0aW1l
LnRpbWUoKQotICAgICAgICBjYXB0dXJlID0gTXVsdGlDYXB0dXJlKENhcHR1cmU9U3lzQ2FwdHVy
ZSkKLSAgICAgICAgY2FwdHVyZS5zdGFydF9jYXB0dXJpbmcoKQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmVwcmVjID0gc2VsZi5pbmxpbmVfcnVuKCph
cmdzLCAqKmt3YXJncykKLSAgICAgICAgICAgIGV4Y2VwdCBTeXN0ZW1FeGl0IGFzIGU6Ci0KLSAg
ICAgICAgICAgICAgICBjbGFzcyByZXByZWM6Ci0gICAgICAgICAgICAgICAgICAgIHJldCA9IGUu
YXJnc1swXQotCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAg
IHRyYWNlYmFjay5wcmludF9leGMoKQotCi0gICAgICAgICAgICAgICAgY2xhc3MgcmVwcmVjOgot
ICAgICAgICAgICAgICAgICAgICByZXQgPSAzCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICBvdXQsIGVyciA9IGNhcHR1cmUucmVhZG91dGVycigpCi0gICAgICAgICAgICBjYXB0dXJlLnN0
b3BfY2FwdHVyaW5nKCkKLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUob3V0KQotICAgICAg
ICAgICAgc3lzLnN0ZGVyci53cml0ZShlcnIpCi0KLSAgICAgICAgcmVzID0gUnVuUmVzdWx0KHJl
cHJlYy5yZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICBvdXQuc3BsaXQoIlxuIiksIGVyci5z
cGxpdCgiXG4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUudGltZSgpIC0gbm93KQot
ICAgICAgICByZXMucmVwcmVjID0gcmVwcmVjCi0gICAgICAgIHJldHVybiByZXMKLQotICAgIGRl
ZiBydW5weXRlc3Qoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIiIFJ1biBweXRl
c3QgaW5saW5lIG9yIGluIGEgc3VicHJvY2VzcywgZGVwZW5kaW5nIG9uIHRoZSBjb21tYW5kIGxp
bmUKLSAgICAgICAgb3B0aW9uICItLXJ1bnB5dGVzdCIgYW5kIHJldHVybiBhIDpweTpjbGFzczpg
UnVuUmVzdWx0YC4KLQotICAgICAgICAiIiIKLSAgICAgICAgYXJncyA9IHNlbGYuX2Vuc3VyZV9i
YXNldGVtcChhcmdzKQotICAgICAgICByZXR1cm4gc2VsZi5fcnVucHl0ZXN0X21ldGhvZCgqYXJn
cywgKiprd2FyZ3MpCi0KLSAgICBkZWYgX2Vuc3VyZV9iYXNldGVtcChzZWxmLCBhcmdzKToKLSAg
ICAgICAgYXJncyA9IFtzdHIoeCkgZm9yIHggaW4gYXJnc10KLSAgICAgICAgZm9yIHggaW4gYXJn
czoKLSAgICAgICAgICAgIGlmIHN0cih4KS5zdGFydHN3aXRoKCctLWJhc2V0ZW1wJyk6Ci0gICAg
ICAgICAgICAgICAgIyBwcmludCgiYmFzZWR0ZW1wIGV4aXN0czogJXMiICUoYXJncywpKQotICAg
ICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBhcmdzLmFwcGVu
ZCgiLS1iYXNldGVtcD0lcyIgJSBzZWxmLnRtcGRpci5kaXJwYXRoKCdiYXNldGVtcCcpKQotICAg
ICAgICAgICAgIyBwcmludCgiYWRkZWQgYmFzZXRlbXA6ICVzIiAlKGFyZ3MsKSkKLSAgICAgICAg
cmV0dXJuIGFyZ3MKLQotICAgIGRlZiBwYXJzZWNvbmZpZyhzZWxmLCAqYXJncyk6Ci0gICAgICAg
ICIiIlJldHVybiBhIG5ldyBweXRlc3QgQ29uZmlnIGluc3RhbmNlIGZyb20gZ2l2ZW4gY29tbWFu
ZGxpbmUgYXJncy4KLQotICAgICAgICBUaGlzIGludm9rZXMgdGhlIHB5dGVzdCBib290c3RyYXBw
aW5nIGNvZGUgaW4gX3B5dGVzdC5jb25maWcKLSAgICAgICAgdG8gY3JlYXRlIGEgbmV3IDpweTpj
bGFzczpgX3B5dGVzdC5jb3JlLlBsdWdpbk1hbmFnZXJgIGFuZAotICAgICAgICBjYWxsIHRoZSBw
eXRlc3RfY21kbGluZV9wYXJzZSBob29rIHRvIGNyZWF0ZSBuZXcKLSAgICAgICAgOnB5OmNsYXNz
OmBfcHl0ZXN0LmNvbmZpZy5Db25maWdgIGluc3RhbmNlLgotCi0gICAgICAgIElmIDpweTphdHRy
OmBwbHVnaW5zYCBoYXMgYmVlbiBwb3B1bGF0ZWQgdGhleSBzaG91bGQgYmUgcGx1Z2luCi0gICAg
ICAgIG1vZHVsZXMgd2hpY2ggd2lsbCBiZSByZWdpc3RlcmVkIHdpdGggdGhlIFBsdWdpbk1hbmFn
ZXIuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGFyZ3MgPSBzZWxmLl9lbnN1cmVfYmFzZXRlbXAo
YXJncykKLQotICAgICAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKLSAgICAgICAgY29uZmlnID0g
X3B5dGVzdC5jb25maWcuX3ByZXBhcmVjb25maWcoYXJncywgc2VsZi5wbHVnaW5zKQotICAgICAg
ICAjIHdlIGRvbid0IGtub3cgd2hhdCB0aGUgdGVzdCB3aWxsIGRvIHdpdGggdGhpcyBoYWxmLXNl
dHVwIGNvbmZpZwotICAgICAgICAjIG9iamVjdCBhbmQgdGh1cyB3ZSBtYWtlIHN1cmUgaXQgZ2V0
cyB1bmNvbmZpZ3VyZWQgcHJvcGVybHkgaW4gYW55Ci0gICAgICAgICMgY2FzZSAob3RoZXJ3aXNl
IGNhcHR1cmluZyBjb3VsZCBzdGlsbCBiZSBhY3RpdmUsIGZvciBleGFtcGxlKQotICAgICAgICBz
ZWxmLnJlcXVlc3QuYWRkZmluYWxpemVyKGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKQotICAg
ICAgICByZXR1cm4gY29uZmlnCi0KLSAgICBkZWYgcGFyc2Vjb25maWd1cmUoc2VsZiwgKmFyZ3Mp
OgotICAgICAgICAiIiJSZXR1cm4gYSBuZXcgcHl0ZXN0IGNvbmZpZ3VyZWQgQ29uZmlnIGluc3Rh
bmNlLgotCi0gICAgICAgIFRoaXMgcmV0dXJucyBhIG5ldyA6cHk6Y2xhc3M6YF9weXRlc3QuY29u
ZmlnLkNvbmZpZ2AgaW5zdGFuY2UKLSAgICAgICAgbGlrZSA6cHk6bWV0aDpgcGFyc2Vjb25maWdg
LCBidXQgYWxzbyBjYWxscyB0aGUKLSAgICAgICAgcHl0ZXN0X2NvbmZpZ3VyZSBob29rLgotCi0g
ICAgICAgICIiIgotICAgICAgICBjb25maWcgPSBzZWxmLnBhcnNlY29uZmlnKCphcmdzKQotICAg
ICAgICBjb25maWcuX2RvX2NvbmZpZ3VyZSgpCi0gICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5h
bGl6ZXIoY29uZmlnLl9lbnN1cmVfdW5jb25maWd1cmUpCi0gICAgICAgIHJldHVybiBjb25maWcK
LQotICAgIGRlZiBnZXRpdGVtKHNlbGYsIHNvdXJjZSwgZnVuY25hbWU9InRlc3RfZnVuYyIpOgot
ICAgICAgICAiIiJSZXR1cm4gdGhlIHRlc3QgaXRlbSBmb3IgYSB0ZXN0IGZ1bmN0aW9uLgotCi0g
ICAgICAgIFRoaXMgd3JpdGVzIHRoZSBzb3VyY2UgdG8gYSBweXRob24gZmlsZSBhbmQgcnVucyBw
eXRlc3QncwotICAgICAgICBjb2xsZWN0aW9uIG9uIHRoZSByZXN1bHRpbmcgbW9kdWxlLCByZXR1
cm5pbmcgdGhlIHRlc3QgaXRlbQotICAgICAgICBmb3IgdGhlIHJlcXVlc3RlZCBmdW5jdGlvbiBu
YW1lLgotCi0gICAgICAgIDpwYXJhbSBzb3VyY2U6IFRoZSBtb2R1bGUgc291cmNlLgotCi0gICAg
ICAgIDpwYXJhbSBmdW5jbmFtZTogVGhlIG5hbWUgb2YgdGhlIHRlc3QgZnVuY3Rpb24gZm9yIHdo
aWNoIHRoZQotICAgICAgICAgICBJdGVtIG11c3QgYmUgcmV0dXJuZWQuCi0KLSAgICAgICAgIiIi
Ci0gICAgICAgIGl0ZW1zID0gc2VsZi5nZXRpdGVtcyhzb3VyY2UpCi0gICAgICAgIGZvciBpdGVt
IGluIGl0ZW1zOgotICAgICAgICAgICAgaWYgaXRlbS5uYW1lID09IGZ1bmNuYW1lOgotICAgICAg
ICAgICAgICAgIHJldHVybiBpdGVtCi0gICAgICAgIGFzc2VydCAwLCAiJXIgaXRlbSBub3QgZm91
bmQgaW4gbW9kdWxlOlxuJXNcbml0ZW1zOiAlcyIgJSAoCi0gICAgICAgICAgICAgICAgICBmdW5j
bmFtZSwgc291cmNlLCBpdGVtcykKLQotICAgIGRlZiBnZXRpdGVtcyhzZWxmLCBzb3VyY2UpOgot
ICAgICAgICAiIiJSZXR1cm4gYWxsIHRlc3QgaXRlbXMgY29sbGVjdGVkIGZyb20gdGhlIG1vZHVs
ZS4KLQotICAgICAgICBUaGlzIHdyaXRlcyB0aGUgc291cmNlIHRvIGEgcHl0aG9uIGZpbGUgYW5k
IHJ1bnMgcHl0ZXN0J3MKLSAgICAgICAgY29sbGVjdGlvbiBvbiB0aGUgcmVzdWx0aW5nIG1vZHVs
ZSwgcmV0dXJuaW5nIGFsbCB0ZXN0IGl0ZW1zCi0gICAgICAgIGNvbnRhaW5lZCB3aXRoaW4uCi0K
LSAgICAgICAgIiIiCi0gICAgICAgIG1vZGNvbCA9IHNlbGYuZ2V0bW9kdWxlY29sKHNvdXJjZSkK
LSAgICAgICAgcmV0dXJuIHNlbGYuZ2VuaXRlbXMoW21vZGNvbF0pCi0KLSAgICBkZWYgZ2V0bW9k
dWxlY29sKHNlbGYsIHNvdXJjZSwgY29uZmlnYXJncz0oKSwgd2l0aGluaXQ9RmFsc2UpOgotICAg
ICAgICAiIiJSZXR1cm4gdGhlIG1vZHVsZSBjb2xsZWN0aW9uIG5vZGUgZm9yIGBgc291cmNlYGAu
Ci0KLSAgICAgICAgVGhpcyB3cml0ZXMgYGBzb3VyY2VgYCB0byBhIGZpbGUgdXNpbmcgOnB5Om1l
dGg6YG1ha2VweWZpbGVgCi0gICAgICAgIGFuZCB0aGVuIHJ1bnMgdGhlIHB5dGVzdCBjb2xsZWN0
aW9uIG9uIGl0LCByZXR1cm5pbmcgdGhlCi0gICAgICAgIGNvbGxlY3Rpb24gbm9kZSBmb3IgdGhl
IHRlc3QgbW9kdWxlLgotCi0gICAgICAgIDpwYXJhbSBzb3VyY2U6IFRoZSBzb3VyY2UgY29kZSBv
ZiB0aGUgbW9kdWxlIHRvIGNvbGxlY3QuCi0KLSAgICAgICAgOnBhcmFtIGNvbmZpZ2FyZ3M6IEFu
eSBleHRyYSBhcmd1bWVudHMgdG8gcGFzcyB0bwotICAgICAgICAgICA6cHk6bWV0aDpgcGFyc2Vj
b25maWd1cmVgLgotCi0gICAgICAgIDpwYXJhbSB3aXRoaW5pdDogV2hldGhlciB0byBhbHNvIHdy
aXRlIGEgYGBfX2luaXRfXy5weWBgIGZpbGUKLSAgICAgICAgICAgdG8gdGhlIHRlbXBvcmFyeSBk
aXJlY3RvcnkgdG8gZW5zdXJlIGl0IGlzIGEgcGFja2FnZS4KLQotICAgICAgICAiIiIKLSAgICAg
ICAga3cgPSB7c2VsZi5yZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fOiBTb3VyY2Uoc291cmNlKS5z
dHJpcCgpfQotICAgICAgICBwYXRoID0gc2VsZi5tYWtlcHlmaWxlKCoqa3cpCi0gICAgICAgIGlm
IHdpdGhpbml0OgotICAgICAgICAgICAgc2VsZi5tYWtlcHlmaWxlKF9faW5pdF9fPSIjIikKLSAg
ICAgICAgc2VsZi5jb25maWcgPSBjb25maWcgPSBzZWxmLnBhcnNlY29uZmlndXJlKHBhdGgsICpj
b25maWdhcmdzKQotICAgICAgICBub2RlID0gc2VsZi5nZXRub2RlKGNvbmZpZywgcGF0aCkKLQot
ICAgICAgICByZXR1cm4gbm9kZQotCi0gICAgZGVmIGNvbGxlY3RfYnlfbmFtZShzZWxmLCBtb2Rj
b2wsIG5hbWUpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIGNvbGxlY3Rpb24gbm9kZSBmb3IgbmFt
ZSBmcm9tIHRoZSBtb2R1bGUgY29sbGVjdGlvbi4KLQotICAgICAgICBUaGlzIHdpbGwgc2VhcmNo
IGEgbW9kdWxlIGNvbGxlY3Rpb24gbm9kZSBmb3IgYSBjb2xsZWN0aW9uCi0gICAgICAgIG5vZGUg
bWF0Y2hpbmcgdGhlIGdpdmVuIG5hbWUuCi0KLSAgICAgICAgOnBhcmFtIG1vZGNvbDogQSBtb2R1
bGUgY29sbGVjdGlvbiBub2RlLCBzZWUKLSAgICAgICAgICAgOnB5Om1ldGg6YGdldG1vZHVsZWNv
bGAuCi0KLSAgICAgICAgOnBhcmFtIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBub2RlIHRvIHJldHVy
bi4KLQotICAgICAgICAiIiIKLSAgICAgICAgaWYgbW9kY29sIG5vdCBpbiBzZWxmLl9tb2RfY29s
bGVjdGlvbnM6Ci0gICAgICAgICAgICBzZWxmLl9tb2RfY29sbGVjdGlvbnNbbW9kY29sXSA9IGxp
c3QobW9kY29sLmNvbGxlY3QoKSkKLSAgICAgICAgZm9yIGNvbGl0ZW0gaW4gc2VsZi5fbW9kX2Nv
bGxlY3Rpb25zW21vZGNvbF06Ci0gICAgICAgICAgICBpZiBjb2xpdGVtLm5hbWUgPT0gbmFtZToK
LSAgICAgICAgICAgICAgICByZXR1cm4gY29saXRlbQotCi0gICAgZGVmIHBvcGVuKHNlbGYsIGNt
ZGFyZ3MsIHN0ZG91dCwgc3RkZXJyLCAqKmt3KToKLSAgICAgICAgIiIiSW52b2tlIHN1YnByb2Nl
c3MuUG9wZW4uCi0KLSAgICAgICAgVGhpcyBjYWxscyBzdWJwcm9jZXNzLlBvcGVuIG1ha2luZyBz
dXJlIHRoZSBjdXJyZW50IHdvcmtpbmcKLSAgICAgICAgZGlyZWN0b3J5IGlzIHRoZSBQWVRIT05Q
QVRILgotCi0gICAgICAgIFlvdSBwcm9iYWJseSB3YW50IHRvIHVzZSA6cHk6bWV0aDpgcnVuYCBp
bnN0ZWFkLgotCi0gICAgICAgICIiIgotICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQot
ICAgICAgICBlbnZbJ1BZVEhPTlBBVEgnXSA9IG9zLnBhdGhzZXAuam9pbihmaWx0ZXIoTm9uZSwg
WwotICAgICAgICAgICAgc3RyKG9zLmdldGN3ZCgpKSwgZW52LmdldCgnUFlUSE9OUEFUSCcsICcn
KV0pKQotICAgICAgICBrd1snZW52J10gPSBlbnYKLQotICAgICAgICBwb3BlbiA9IHN1YnByb2Nl
c3MuUG9wZW4oY21kYXJncywgc3RkaW49c3VicHJvY2Vzcy5QSVBFLCBzdGRvdXQ9c3Rkb3V0LCBz
dGRlcnI9c3RkZXJyLCAqKmt3KQotICAgICAgICBwb3Blbi5zdGRpbi5jbG9zZSgpCi0KLSAgICAg
ICAgcmV0dXJuIHBvcGVuCi0KLSAgICBkZWYgcnVuKHNlbGYsICpjbWRhcmdzKToKLSAgICAgICAg
IiIiUnVuIGEgY29tbWFuZCB3aXRoIGFyZ3VtZW50cy4KLQotICAgICAgICBSdW4gYSBwcm9jZXNz
IHVzaW5nIHN1YnByb2Nlc3MuUG9wZW4gc2F2aW5nIHRoZSBzdGRvdXQgYW5kCi0gICAgICAgIHN0
ZGVyci4KLQotICAgICAgICBSZXR1cm5zIGEgOnB5OmNsYXNzOmBSdW5SZXN1bHRgLgotCi0gICAg
ICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuKCpjbWRhcmdzKQotCi0gICAgZGVmIF9y
dW4oc2VsZiwgKmNtZGFyZ3MpOgotICAgICAgICBjbWRhcmdzID0gW3N0cih4KSBmb3IgeCBpbiBj
bWRhcmdzXQotICAgICAgICBwMSA9IHNlbGYudG1wZGlyLmpvaW4oInN0ZG91dCIpCi0gICAgICAg
IHAyID0gc2VsZi50bXBkaXIuam9pbigic3RkZXJyIikKLSAgICAgICAgcHJpbnQoInJ1bm5pbmc6
IiwgJyAnLmpvaW4oY21kYXJncykpCi0gICAgICAgIHByaW50KCIgICAgIGluOiIsIHN0cihweS5w
YXRoLmxvY2FsKCkpKQotICAgICAgICBmMSA9IGNvZGVjcy5vcGVuKHN0cihwMSksICJ3IiwgZW5j
b2Rpbmc9InV0ZjgiKQotICAgICAgICBmMiA9IGNvZGVjcy5vcGVuKHN0cihwMiksICJ3IiwgZW5j
b2Rpbmc9InV0ZjgiKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBub3cgPSB0aW1lLnRpbWUo
KQotICAgICAgICAgICAgcG9wZW4gPSBzZWxmLnBvcGVuKGNtZGFyZ3MsIHN0ZG91dD1mMSwgc3Rk
ZXJyPWYyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2Zkcz0oc3lzLnBs
YXRmb3JtICE9ICJ3aW4zMiIpKQotICAgICAgICAgICAgcmV0ID0gcG9wZW4ud2FpdCgpCi0gICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBmMS5jbG9zZSgpCi0gICAgICAgICAgICBmMi5jbG9z
ZSgpCi0gICAgICAgIGYxID0gY29kZWNzLm9wZW4oc3RyKHAxKSwgInIiLCBlbmNvZGluZz0idXRm
OCIpCi0gICAgICAgIGYyID0gY29kZWNzLm9wZW4oc3RyKHAyKSwgInIiLCBlbmNvZGluZz0idXRm
OCIpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG91dCA9IGYxLnJlYWQoKS5zcGxpdGxpbmVz
KCkKLSAgICAgICAgICAgIGVyciA9IGYyLnJlYWQoKS5zcGxpdGxpbmVzKCkKLSAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgIGYxLmNsb3NlKCkKLSAgICAgICAgICAgIGYyLmNsb3NlKCkKLSAg
ICAgICAgc2VsZi5fZHVtcF9saW5lcyhvdXQsIHN5cy5zdGRvdXQpCi0gICAgICAgIHNlbGYuX2R1
bXBfbGluZXMoZXJyLCBzeXMuc3RkZXJyKQotICAgICAgICByZXR1cm4gUnVuUmVzdWx0KHJldCwg
b3V0LCBlcnIsIHRpbWUudGltZSgpIC0gbm93KQotCi0gICAgZGVmIF9kdW1wX2xpbmVzKHNlbGYs
IGxpbmVzLCBmcCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZvciBsaW5lIGluIGxpbmVz
OgotICAgICAgICAgICAgICAgIHByaW50KGxpbmUsIGZpbGU9ZnApCi0gICAgICAgIGV4Y2VwdCBV
bmljb2RlRW5jb2RlRXJyb3I6Ci0gICAgICAgICAgICBwcmludCgiY291bGRuJ3QgcHJpbnQgdG8g
JXMgYmVjYXVzZSBvZiBlbmNvZGluZyIgJSAoZnAsKSkKLQotICAgIGRlZiBfZ2V0cHl0ZXN0YXJn
cyhzZWxmKToKLSAgICAgICAgIyB3ZSBjYW5ub3QgdXNlICIoc3lzLmV4ZWN1dGFibGUsc2NyaXB0
KSIKLSAgICAgICAgIyBiZWNhdXNlIG9uIHdpbmRvd3MgdGhlIHNjcmlwdCBpcyBlLmcuIGEgcHl0
ZXN0LmV4ZQotICAgICAgICByZXR1cm4gKHN5cy5leGVjdXRhYmxlLCBQWVRFU1RfRlVMTFBBVEgp
ICMgbm9xYQotCi0gICAgZGVmIHJ1bnB5dGhvbihzZWxmLCBzY3JpcHQpOgotICAgICAgICAiIiJS
dW4gYSBweXRob24gc2NyaXB0IHVzaW5nIHN5cy5leGVjdXRhYmxlIGFzIGludGVycHJldGVyLgot
Ci0gICAgICAgIFJldHVybnMgYSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAuCi0gICAgICAgICIiIgot
ICAgICAgICByZXR1cm4gc2VsZi5ydW4oc3lzLmV4ZWN1dGFibGUsIHNjcmlwdCkKLQotICAgIGRl
ZiBydW5weXRob25fYyhzZWxmLCBjb21tYW5kKToKLSAgICAgICAgIiIiUnVuIHB5dGhvbiAtYyAi
Y29tbWFuZCIsIHJldHVybiBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4iIiIKLSAgICAgICAgcmV0
dXJuIHNlbGYucnVuKHN5cy5leGVjdXRhYmxlLCAiLWMiLCBjb21tYW5kKQotCi0gICAgZGVmIHJ1
bnB5dGVzdF9zdWJwcm9jZXNzKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICIiIlJ1
biBweXRlc3QgYXMgYSBzdWJwcm9jZXNzIHdpdGggZ2l2ZW4gYXJndW1lbnRzLgotCi0gICAgICAg
IEFueSBwbHVnaW5zIGFkZGVkIHRvIHRoZSA6cHk6YXR0cjpgcGx1Z2luc2AgbGlzdCB3aWxsIGFk
ZGVkCi0gICAgICAgIHVzaW5nIHRoZSBgYC1wYGAgY29tbWFuZCBsaW5lIG9wdGlvbi4gIEFkZHRp
b25hbGx5Ci0gICAgICAgIGBgLS1iYXNldGVtcGBgIGlzIHVzZWQgcHV0IGFueSB0ZW1wb3Jhcnkg
ZmlsZXMgYW5kIGRpcmVjdG9yaWVzCi0gICAgICAgIGluIGEgbnVtYmVyZWQgZGlyZWN0b3J5IHBy
ZWZpeGVkIHdpdGggInJ1bnB5dGVzdC0iIHNvIHRoZXkgZG8KLSAgICAgICAgbm90IGNvbmZsaWN0
IHdpdGggdGhlIG5vcm1hbCBudW1iZXJkIHB5dGVzdCBsb2NhdGlvbiBmb3IKLSAgICAgICAgdGVt
cG9yYXJ5IGZpbGVzIGFuZCBkaXJlY3Rvcmllcy4KLQotICAgICAgICBSZXR1cm5zIGEgOnB5OmNs
YXNzOmBSdW5SZXN1bHRgLgotCi0gICAgICAgICIiIgotICAgICAgICBwID0gcHkucGF0aC5sb2Nh
bC5tYWtlX251bWJlcmVkX2RpcihwcmVmaXg9InJ1bnB5dGVzdC0iLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZWVwPU5vbmUsIHJvb3RkaXI9c2VsZi50bXBk
aXIpCi0gICAgICAgIGFyZ3MgPSAoJy0tYmFzZXRlbXA9JXMnICUgcCwgKSArIGFyZ3MKLSAgICAg
ICAgIyBmb3IgeCBpbiBhcmdzOgotICAgICAgICAjICAgIGlmICctLWNvbmZjdXRkaXInIGluIHN0
cih4KToKLSAgICAgICAgIyAgICAgICAgYnJlYWsKLSAgICAgICAgIyBlbHNlOgotICAgICAgICAj
ICAgIHBhc3MKLSAgICAgICAgIyAgICBhcmdzID0gKCctLWNvbmZjdXRkaXI9LicsKSArIGFyZ3MK
LSAgICAgICAgcGx1Z2lucyA9IFt4IGZvciB4IGluIHNlbGYucGx1Z2lucyBpZiBpc2luc3RhbmNl
KHgsIHN0cildCi0gICAgICAgIGlmIHBsdWdpbnM6Ci0gICAgICAgICAgICBhcmdzID0gKCctcCcs
IHBsdWdpbnNbMF0pICsgYXJncwotICAgICAgICBhcmdzID0gc2VsZi5fZ2V0cHl0ZXN0YXJncygp
ICsgYXJncwotICAgICAgICByZXR1cm4gc2VsZi5ydW4oKmFyZ3MpCi0KLSAgICBkZWYgc3Bhd25f
cHl0ZXN0KHNlbGYsIHN0cmluZywgZXhwZWN0X3RpbWVvdXQ9MTAuMCk6Ci0gICAgICAgICIiIlJ1
biBweXRlc3QgdXNpbmcgcGV4cGVjdC4KLQotICAgICAgICBUaGlzIG1ha2VzIHN1cmUgdG8gdXNl
IHRoZSByaWdodCBweXRlc3QgYW5kIHNldHMgdXAgdGhlCi0gICAgICAgIHRlbXBvcmFyeSBkaXJl
Y3RvcnkgbG9jYXRpb25zLgotCi0gICAgICAgIFRoZSBwZXhwZWN0IGNoaWxkIGlzIHJldHVybmVk
LgotCi0gICAgICAgICIiIgotICAgICAgICBiYXNldGVtcCA9IHNlbGYudG1wZGlyLm1rZGlyKCJ0
ZW1wLXBleHBlY3QiKQotICAgICAgICBpbnZva2UgPSAiICIuam9pbihtYXAoc3RyLCBzZWxmLl9n
ZXRweXRlc3RhcmdzKCkpKQotICAgICAgICBjbWQgPSAiJXMgLS1iYXNldGVtcD0lcyAlcyIgJSAo
aW52b2tlLCBiYXNldGVtcCwgc3RyaW5nKQotICAgICAgICByZXR1cm4gc2VsZi5zcGF3bihjbWQs
IGV4cGVjdF90aW1lb3V0PWV4cGVjdF90aW1lb3V0KQotCi0gICAgZGVmIHNwYXduKHNlbGYsIGNt
ZCwgZXhwZWN0X3RpbWVvdXQ9MTAuMCk6Ci0gICAgICAgICIiIlJ1biBhIGNvbW1hbmQgdXNpbmcg
cGV4cGVjdC4KLQotICAgICAgICBUaGUgcGV4cGVjdCBjaGlsZCBpcyByZXR1cm5lZC4KLSAgICAg
ICAgIiIiCi0gICAgICAgIHBleHBlY3QgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJwZXhwZWN0Iiwg
IjMuMCIpCi0gICAgICAgIGlmIGhhc2F0dHIoc3lzLCAncHlweV92ZXJzaW9uX2luZm8nKSBhbmQg
JzY0JyBpbiBwbGF0Zm9ybS5tYWNoaW5lKCk6Ci0gICAgICAgICAgICBweXRlc3Quc2tpcCgicHlw
eS02NCBiaXQgbm90IHN1cHBvcnRlZCIpCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3
aXRoKCJmcmVlYnNkIik6Ci0gICAgICAgICAgICBweXRlc3QueGZhaWwoInBleHBlY3QgZG9lcyBu
b3Qgd29yayByZWxpYWJseSBvbiBmcmVlYnNkIikKLSAgICAgICAgbG9nZmlsZSA9IHNlbGYudG1w
ZGlyLmpvaW4oInNwYXduLm91dCIpLm9wZW4oIndiIikKLSAgICAgICAgY2hpbGQgPSBwZXhwZWN0
LnNwYXduKGNtZCwgbG9nZmlsZT1sb2dmaWxlKQotICAgICAgICBzZWxmLnJlcXVlc3QuYWRkZmlu
YWxpemVyKGxvZ2ZpbGUuY2xvc2UpCi0gICAgICAgIGNoaWxkLnRpbWVvdXQgPSBleHBlY3RfdGlt
ZW91dAotICAgICAgICByZXR1cm4gY2hpbGQKLQotCi1kZWYgZ2V0ZGVjb2RlZChvdXQpOgotICAg
IHRyeToKLSAgICAgICAgcmV0dXJuIG91dC5kZWNvZGUoInV0Zi04IikKLSAgICBleGNlcHQgVW5p
Y29kZURlY29kZUVycm9yOgotICAgICAgICByZXR1cm4gIklOVEVSTkFMIG5vdC11dGY4LWRlY29k
ZWFibGUsIHRydW5jYXRlZCBzdHJpbmc6XG4lcyIgJSAoCi0gICAgICAgICAgICBweS5pby5zYWZl
cmVwcihvdXQpLCkKLQotCi1jbGFzcyBMaW5lQ29tcDoKLSAgICBkZWYgX19pbml0X18oc2VsZik6
Ci0gICAgICAgIHNlbGYuc3RyaW5naW8gPSBweS5pby5UZXh0SU8oKQotCi0gICAgZGVmIGFzc2Vy
dF9jb250YWluc19saW5lcyhzZWxmLCBsaW5lczIpOgotICAgICAgICAiIiIgYXNzZXJ0IHRoYXQg
bGluZXMyIGFyZSBjb250YWluZWQgKGxpbmVhcmx5KSBpbiBsaW5lczEuCi0gICAgICAgICAgICBy
ZXR1cm4gYSBsaXN0IG9mIGV4dHJhbGluZXMgZm91bmQuCi0gICAgICAgICIiIgotICAgICAgICBf
X3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgdmFsID0gc2VsZi5zdHJpbmdpby5nZXR2
YWx1ZSgpCi0gICAgICAgIHNlbGYuc3RyaW5naW8udHJ1bmNhdGUoMCkKLSAgICAgICAgc2VsZi5z
dHJpbmdpby5zZWVrKDApCi0gICAgICAgIGxpbmVzMSA9IHZhbC5zcGxpdCgiXG4iKQotICAgICAg
ICByZXR1cm4gTGluZU1hdGNoZXIobGluZXMxKS5mbm1hdGNoX2xpbmVzKGxpbmVzMikKLQotCi1j
bGFzcyBMaW5lTWF0Y2hlcjoKLSAgICAiIiJGbGV4aWJsZSBtYXRjaGluZyBvZiB0ZXh0LgotCi0g
ICAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGNsYXNzIHRvIHRlc3QgbGFyZ2UgdGV4dHMgbGlrZSB0
aGUgb3V0cHV0IG9mCi0gICAgY29tbWFuZHMuCi0KLSAgICBUaGUgY29uc3RydWN0b3IgdGFrZXMg
YSBsaXN0IG9mIGxpbmVzIHdpdGhvdXQgdGhlaXIgdHJhaWxpbmcKLSAgICBuZXdsaW5lcywgaS5l
LiBgYHRleHQuc3BsaXRsaW5lcygpYGAuCi0KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsaW5lcyk6Ci0gICAgICAgIHNlbGYubGluZXMgPSBsaW5lcwotICAgICAgICBzZWxmLl9s
b2dfb3V0cHV0ID0gW10KLQotICAgIGRlZiBzdHIoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0
aGUgZW50aXJlIG9yaWdpbmFsIHRleHQuIiIiCi0gICAgICAgIHJldHVybiAiXG4iLmpvaW4oc2Vs
Zi5saW5lcykKLQotICAgIGRlZiBfZ2V0bGluZXMoc2VsZiwgbGluZXMyKToKLSAgICAgICAgaWYg
aXNpbnN0YW5jZShsaW5lczIsIHN0cik6Ci0gICAgICAgICAgICBsaW5lczIgPSBTb3VyY2UobGlu
ZXMyKQotICAgICAgICBpZiBpc2luc3RhbmNlKGxpbmVzMiwgU291cmNlKToKLSAgICAgICAgICAg
IGxpbmVzMiA9IGxpbmVzMi5zdHJpcCgpLmxpbmVzCi0gICAgICAgIHJldHVybiBsaW5lczIKLQot
ICAgIGRlZiBmbm1hdGNoX2xpbmVzX3JhbmRvbShzZWxmLCBsaW5lczIpOgotICAgICAgICAiIiJD
aGVjayBsaW5lcyBleGlzdCBpbiB0aGUgb3V0cHV0IHVzaW5nIGBgZm5tYXRjaC5mbm1hdGNoYGAs
IGluIGFueSBvcmRlci4KLQotICAgICAgICBUaGUgYXJndW1lbnQgaXMgYSBsaXN0IG9mIGxpbmVz
IHdoaWNoIGhhdmUgdG8gb2NjdXIgaW4gdGhlCi0gICAgICAgIG91dHB1dCwgaW4gYW55IG9yZGVy
LgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fbWF0Y2hfbGluZXNfcmFuZG9tKGxpbmVzMiwg
Zm5tYXRjaCkKLQotICAgIGRlZiByZV9tYXRjaF9saW5lc19yYW5kb20oc2VsZiwgbGluZXMyKToK
LSAgICAgICAgIiIiQ2hlY2sgbGluZXMgZXhpc3QgaW4gdGhlIG91dHB1dCB1c2luZyBgYHJlLm1h
dGNoYGAsIGluIGFueSBvcmRlci4KLQotICAgICAgICBUaGUgYXJndW1lbnQgaXMgYSBsaXN0IG9m
IGxpbmVzIHdoaWNoIGhhdmUgdG8gb2NjdXIgaW4gdGhlCi0gICAgICAgIG91dHB1dCwgaW4gYW55
IG9yZGVyLgotCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9tYXRjaF9saW5lc19yYW5kb20o
bGluZXMyLCBsYW1iZGEgbmFtZSwgcGF0OiByZS5tYXRjaChwYXQsIG5hbWUpKQotCi0gICAgZGVm
IF9tYXRjaF9saW5lc19yYW5kb20oc2VsZiwgbGluZXMyLCBtYXRjaF9mdW5jKToKLSAgICAgICAg
IiIiQ2hlY2sgbGluZXMgZXhpc3QgaW4gdGhlIG91dHB1dC4KLQotICAgICAgICBUaGUgYXJndW1l
bnQgaXMgYSBsaXN0IG9mIGxpbmVzIHdoaWNoIGhhdmUgdG8gb2NjdXIgaW4gdGhlCi0gICAgICAg
IG91dHB1dCwgaW4gYW55IG9yZGVyLiAgRWFjaCBsaW5lIGNhbiBjb250YWluIGdsb2Igd2hpbGRj
YXJkcy4KLQotICAgICAgICAiIiIKLSAgICAgICAgbGluZXMyID0gc2VsZi5fZ2V0bGluZXMobGlu
ZXMyKQotICAgICAgICBmb3IgbGluZSBpbiBsaW5lczI6Ci0gICAgICAgICAgICBmb3IgeCBpbiBz
ZWxmLmxpbmVzOgotICAgICAgICAgICAgICAgIGlmIGxpbmUgPT0geCBvciBtYXRjaF9mdW5jKHgs
IGxpbmUpOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2coIm1hdGNoZWQ6ICIsIHJlcHIo
bGluZSkpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZygibGluZSAlciBub3QgZm91bmQgaW4gb3V0cHV0IiAlIGxp
bmUpCi0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihzZWxmLl9sb2dfdGV4dCkKLQot
ICAgIGRlZiBnZXRfbGluZXNfYWZ0ZXIoc2VsZiwgZm5saW5lKToKLSAgICAgICAgIiIiUmV0dXJu
IGFsbCBsaW5lcyBmb2xsb3dpbmcgdGhlIGdpdmVuIGxpbmUgaW4gdGhlIHRleHQuCi0KLSAgICAg
ICAgVGhlIGdpdmVuIGxpbmUgY2FuIGNvbnRhaW4gZ2xvYiB3aWxkY2FyZHMuCi0gICAgICAgICIi
IgotICAgICAgICBmb3IgaSwgbGluZSBpbiBlbnVtZXJhdGUoc2VsZi5saW5lcyk6Ci0gICAgICAg
ICAgICBpZiBmbmxpbmUgPT0gbGluZSBvciBmbm1hdGNoKGxpbmUsIGZubGluZSk6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHNlbGYubGluZXNbaSArIDE6XQotICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJsaW5lICVyIG5vdCBmb3VuZCBpbiBvdXRwdXQiICUgZm5saW5lKQotCi0gICAgZGVmIF9s
b2coc2VsZiwgKmFyZ3MpOgotICAgICAgICBzZWxmLl9sb2dfb3V0cHV0LmFwcGVuZCgnICcuam9p
bigoc3RyKHgpIGZvciB4IGluIGFyZ3MpKSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBfbG9n
X3RleHQoc2VsZik6Ci0gICAgICAgIHJldHVybiAnXG4nLmpvaW4oc2VsZi5fbG9nX291dHB1dCkK
LQotICAgIGRlZiBmbm1hdGNoX2xpbmVzKHNlbGYsIGxpbmVzMik6Ci0gICAgICAgICIiIlNlYXJj
aCBjYXB0dXJlZCB0ZXh0IGZvciBtYXRjaGluZyBsaW5lcyB1c2luZyBgYGZubWF0Y2guZm5tYXRj
aGBgLgotCi0gICAgICAgIFRoZSBhcmd1bWVudCBpcyBhIGxpc3Qgb2YgbGluZXMgd2hpY2ggaGF2
ZSB0byBtYXRjaCBhbmQgY2FuCi0gICAgICAgIHVzZSBnbG9iIHdpbGRjYXJkcy4gIElmIHRoZXkg
ZG8gbm90IG1hdGNoIGEgcHl0ZXN0LmZhaWwoKSBpcwotICAgICAgICBjYWxsZWQuICBUaGUgbWF0
Y2hlcyBhbmQgbm9uLW1hdGNoZXMgYXJlIGFsc28gcHJpbnRlZCBvbgotICAgICAgICBzdGRvdXQu
Ci0KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX21hdGNoX2xpbmVzKGxpbmVzMiwgZm5tYXRj
aCwgJ2ZubWF0Y2gnKQotCi0gICAgZGVmIHJlX21hdGNoX2xpbmVzKHNlbGYsIGxpbmVzMik6Ci0g
ICAgICAgICIiIlNlYXJjaCBjYXB0dXJlZCB0ZXh0IGZvciBtYXRjaGluZyBsaW5lcyB1c2luZyBg
YHJlLm1hdGNoYGAuCi0KLSAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBsaW5lcyB3
aGljaCBoYXZlIHRvIG1hdGNoIHVzaW5nIGBgcmUubWF0Y2hgYC4KLSAgICAgICAgSWYgdGhleSBk
byBub3QgbWF0Y2ggYSBweXRlc3QuZmFpbCgpIGlzIGNhbGxlZC4KLQotICAgICAgICBUaGUgbWF0
Y2hlcyBhbmQgbm9uLW1hdGNoZXMgYXJlIGFsc28gcHJpbnRlZCBvbgotICAgICAgICBzdGRvdXQu
Ci0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9tYXRjaF9saW5lcyhsaW5lczIsIGxhbWJkYSBu
YW1lLCBwYXQ6IHJlLm1hdGNoKHBhdCwgbmFtZSksICdyZS5tYXRjaCcpCi0KLSAgICBkZWYgX21h
dGNoX2xpbmVzKHNlbGYsIGxpbmVzMiwgbWF0Y2hfZnVuYywgbWF0Y2hfbmlja25hbWUpOgotICAg
ICAgICAiIiJVbmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIG9mIGBgZm5tYXRjaF9saW5lc2BgIGFu
ZCBgYHJlX21hdGNoX2xpbmVzYGAuCi0KLSAgICAgICAgOnBhcmFtIGxpc3Rbc3RyXSBsaW5lczI6
IGxpc3Qgb2Ygc3RyaW5nIHBhdHRlcm5zIHRvIG1hdGNoLiBUaGUgYWN0dWFsIGZvcm1hdCBkZXBl
bmRzIG9uCi0gICAgICAgICAgICBgYG1hdGNoX2Z1bmNgYC4KLSAgICAgICAgOnBhcmFtIG1hdGNo
X2Z1bmM6IGEgY2FsbGFibGUgYGBtYXRjaF9mdW5jKGxpbmUsIHBhdHRlcm4pYGAgd2hlcmUgbGlu
ZSBpcyB0aGUgY2FwdHVyZWQKLSAgICAgICAgICAgIGxpbmUgZnJvbSBzdGRvdXQvc3RkZXJyIGFu
ZCBwYXR0ZXJuIGlzIHRoZSBtYXRjaGluZyBwYXR0ZXJuLgotCi0gICAgICAgIDpwYXJhbSBzdHIg
bWF0Y2hfbmlja25hbWU6IHRoZSBuaWNrbmFtZSBmb3IgdGhlIG1hdGNoIGZ1bmN0aW9uIHRoYXQg
d2lsbCBiZSBsb2dnZWQKLSAgICAgICAgICAgIHRvIHN0ZG91dCB3aGVuIGEgbWF0Y2ggb2NjdXJz
LgotICAgICAgICAiIiIKLSAgICAgICAgbGluZXMyID0gc2VsZi5fZ2V0bGluZXMobGluZXMyKQot
ICAgICAgICBsaW5lczEgPSBzZWxmLmxpbmVzWzpdCi0gICAgICAgIG5leHRsaW5lID0gTm9uZQot
ICAgICAgICBleHRyYWxpbmVzID0gW10KLSAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVl
Ci0gICAgICAgIGZvciBsaW5lIGluIGxpbmVzMjoKLSAgICAgICAgICAgIG5vbWF0Y2hwcmludGVk
ID0gRmFsc2UKLSAgICAgICAgICAgIHdoaWxlIGxpbmVzMToKLSAgICAgICAgICAgICAgICBuZXh0
bGluZSA9IGxpbmVzMS5wb3AoMCkKLSAgICAgICAgICAgICAgICBpZiBsaW5lID09IG5leHRsaW5l
OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2coImV4YWN0IG1hdGNoOiIsIHJlcHIobGlu
ZSkpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgZWxpZiBtYXRj
aF9mdW5jKG5leHRsaW5lLCBsaW5lKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nKCIl
czoiICUgbWF0Y2hfbmlja25hbWUsIHJlcHIobGluZSkpCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX2xvZygiICAgd2l0aDoiLCByZXByKG5leHRsaW5lKSkKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWsKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBpZiBub3Qg
bm9tYXRjaHByaW50ZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2coIm5vbWF0
Y2g6IiwgcmVwcihsaW5lKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vbWF0Y2hwcmludGVk
ID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2coIiAgICBhbmQ6IiwgcmVwcihu
ZXh0bGluZSkpCi0gICAgICAgICAgICAgICAgZXh0cmFsaW5lcy5hcHBlbmQobmV4dGxpbmUpCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZygicmVtYWlucyB1bm1h
dGNoZWQ6ICVyIiAlIChsaW5lLCkpCi0gICAgICAgICAgICAgICAgcHl0ZXN0LmZhaWwoc2VsZi5f
bG9nX3RleHQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbi5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2NTAxNzFhOWU5YzkwOTA5ZGEzY2UyN2JhNTk2MzhhNWZjOWIxNjQ1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0
aG9uLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTE3NSArMCwwIEBACi0iIiIgUHl0aG9uIHRlc3Qg
ZGlzY292ZXJ5LCBzZXR1cCBhbmQgcnVuIG9mIHRlc3QgZnVuY3Rpb25zLiAiIiIKLWZyb20gX19m
dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24K
LQotaW1wb3J0IGZubWF0Y2gKLWltcG9ydCBpbnNwZWN0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgb3MK
LWltcG9ydCBjb2xsZWN0aW9ucwotaW1wb3J0IHdhcm5pbmdzCi1mcm9tIHRleHR3cmFwIGltcG9y
dCBkZWRlbnQKLWZyb20gaXRlcnRvb2xzIGltcG9ydCBjb3VudAotCi0KLWltcG9ydCBweQotaW1w
b3J0IHNpeAotZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1hcmtlckVycm9yCi1mcm9tIF9weXRl
c3QuY29uZmlnIGltcG9ydCBob29raW1wbAotCi1pbXBvcnQgX3B5dGVzdAotaW1wb3J0IHBsdWdn
eQotZnJvbSBfcHl0ZXN0IGltcG9ydCBmaXh0dXJlcwotZnJvbSBfcHl0ZXN0IGltcG9ydCBtYWlu
Ci1mcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKLWZyb20gX3B5dGVzdC5jb21wYXQgaW1w
b3J0ICgKLSAgICBpc2NsYXNzLCBpc2Z1bmN0aW9uLCBpc19nZW5lcmF0b3IsIGFzY2lpX2VzY2Fw
ZWQsCi0gICAgUkVHRVhfVFlQRSwgU1RSSU5HX1RZUEVTLCBOb25lVHlwZSwgTk9UU0VULAotICAg
IGdldF9yZWFsX2Z1bmMsIGdldGZzbGluZW5vLCBzYWZlX2dldGF0dHIsCi0gICAgc2FmZV9zdHIs
IGdldGxvY2F0aW9uLCBlbnVtLAotKQotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWls
Ci1mcm9tIF9weXRlc3QubWFyayBpbXBvcnQgdHJhbnNmZXJfbWFya2VycwotCi1jdXRkaXIxID0g
cHkucGF0aC5sb2NhbChwbHVnZ3kuX19maWxlX18ucnN0cmlwKCJvYyIpKQotY3V0ZGlyMiA9IHB5
LnBhdGgubG9jYWwoX3B5dGVzdC5fX2ZpbGVfXykuZGlycGF0aCgpCi1jdXRkaXIzID0gcHkucGF0
aC5sb2NhbChweS5fX2ZpbGVfXykuZGlycGF0aCgpCi0KLQotZGVmIGZpbHRlcl90cmFjZWJhY2so
ZW50cnkpOgotICAgICIiIlJldHVybiBUcnVlIGlmIGEgVHJhY2ViYWNrRW50cnkgaW5zdGFuY2Ug
c2hvdWxkIGJlIHJlbW92ZWQgZnJvbSB0cmFjZWJhY2tzOgotICAgICogZHluYW1pY2FsbHkgZ2Vu
ZXJhdGVkIGNvZGUgKG5vIGNvZGUgdG8gc2hvdyB1cCBmb3IgaXQpOwotICAgICogaW50ZXJuYWwg
dHJhY2ViYWNrIGZyb20gcHl0ZXN0IG9yIGl0cyBpbnRlcm5hbCBsaWJyYXJpZXMsIHB5IGFuZCBw
bHVnZ3kuCi0gICAgIiIiCi0gICAgIyBlbnRyeS5wYXRoIG1pZ2h0IHNvbWV0aW1lcyByZXR1cm4g
YSBzdHIgb2JqZWN0IHdoZW4gdGhlIGVudHJ5Ci0gICAgIyBwb2ludHMgdG8gZHluYW1pY2FsbHkg
Z2VuZXJhdGVkIGNvZGUKLSAgICAjIHNlZSBodHRwczovL2JpdGJ1Y2tldC5vcmcvcHl0ZXN0LWRl
di9weS9pc3N1ZXMvNzEKLSAgICByYXdfZmlsZW5hbWUgPSBlbnRyeS5mcmFtZS5jb2RlLnJhdy5j
b19maWxlbmFtZQotICAgIGlzX2dlbmVyYXRlZCA9ICc8JyBpbiByYXdfZmlsZW5hbWUgYW5kICc+
JyBpbiByYXdfZmlsZW5hbWUKLSAgICBpZiBpc19nZW5lcmF0ZWQ6Ci0gICAgICAgIHJldHVybiBG
YWxzZQotICAgICMgZW50cnkucGF0aCBtaWdodCBwb2ludCB0byBhbiBpbmV4aXN0aW5nIGZpbGUs
IGluIHdoaWNoIGNhc2UgaXQgd2lsbAotICAgICMgYWxzc28gcmV0dXJuIGEgc3RyIG9iamVjdC4g
c2VlICMxMTMzCi0gICAgcCA9IHB5LnBhdGgubG9jYWwoZW50cnkucGF0aCkKLSAgICByZXR1cm4g
cCAhPSBjdXRkaXIxIGFuZCBub3QgcC5yZWx0byhjdXRkaXIyKSBhbmQgbm90IHAucmVsdG8oY3V0
ZGlyMykKLQotCi1kZWYgcHlvYmpfcHJvcGVydHkobmFtZSk6Ci0gICAgZGVmIGdldChzZWxmKToK
LSAgICAgICAgbm9kZSA9IHNlbGYuZ2V0cGFyZW50KGdldGF0dHIoX19pbXBvcnRfXygncHl0ZXN0
JyksIG5hbWUpKQotICAgICAgICBpZiBub2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmV0
dXJuIG5vZGUub2JqCi0gICAgZG9jID0gInB5dGhvbiAlcyBvYmplY3QgdGhpcyBub2RlIHdhcyBj
b2xsZWN0ZWQgZnJvbSAoY2FuIGJlIE5vbmUpLiIgJSAoCi0gICAgICAgICAgbmFtZS5sb3dlcigp
LCkKLSAgICByZXR1cm4gcHJvcGVydHkoZ2V0LCBOb25lLCBOb25lLCBkb2MpCi0KLQotZGVmIHB5
dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZ2Vu
ZXJhbCIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLWZpeHR1cmVzJywgJy0tZnVuY2FyZ3MnLAot
ICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJzaG93Zml4dHVy
ZXMiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IGF2YWls
YWJsZSBmaXh0dXJlcywgc29ydGVkIGJ5IHBsdWdpbiBhcHBlYXJhbmNlIikKLSAgICBncm91cC5h
ZGRvcHRpb24oCi0gICAgICAgICctLWZpeHR1cmVzLXBlci10ZXN0JywKLSAgICAgICAgYWN0aW9u
PSJzdG9yZV90cnVlIiwKLSAgICAgICAgZGVzdD0ic2hvd19maXh0dXJlc19wZXJfdGVzdCIsCi0g
ICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgIGhlbHA9InNob3cgZml4dHVyZXMgcGVyIHRl
c3QiLAotICAgICkKLSAgICBwYXJzZXIuYWRkaW5pKCJ1c2VmaXh0dXJlcyIsIHR5cGU9ImFyZ3Mi
LCBkZWZhdWx0PVtdLAotICAgICAgICAgICAgICAgICAgaGVscD0ibGlzdCBvZiBkZWZhdWx0IGZp
eHR1cmVzIHRvIGJlIHVzZWQgd2l0aCB0aGlzIHByb2plY3QiKQotICAgIHBhcnNlci5hZGRpbmko
InB5dGhvbl9maWxlcyIsIHR5cGU9ImFyZ3MiLAotICAgICAgICAgICAgICAgICAgZGVmYXVsdD1b
J3Rlc3RfKi5weScsICcqX3Rlc3QucHknXSwKLSAgICAgICAgICAgICAgICAgIGhlbHA9Imdsb2It
c3R5bGUgZmlsZSBwYXR0ZXJucyBmb3IgUHl0aG9uIHRlc3QgbW9kdWxlIGRpc2NvdmVyeSIpCi0g
ICAgcGFyc2VyLmFkZGluaSgicHl0aG9uX2NsYXNzZXMiLCB0eXBlPSJhcmdzIiwgZGVmYXVsdD1b
IlRlc3QiLCBdLAotICAgICAgICAgICAgICAgICAgaGVscD0icHJlZml4ZXMgb3IgZ2xvYiBuYW1l
cyBmb3IgUHl0aG9uIHRlc3QgY2xhc3MgZGlzY292ZXJ5IikKLSAgICBwYXJzZXIuYWRkaW5pKCJw
eXRob25fZnVuY3Rpb25zIiwgdHlwZT0iYXJncyIsIGRlZmF1bHQ9WyJ0ZXN0IiwgXSwKLSAgICAg
ICAgICAgICAgICAgIGhlbHA9InByZWZpeGVzIG9yIGdsb2IgbmFtZXMgZm9yIFB5dGhvbiB0ZXN0
IGZ1bmN0aW9uIGFuZCAiCi0gICAgICAgICAgICAgICAgICAibWV0aG9kIGRpc2NvdmVyeSIpCi0K
LSAgICBncm91cC5hZGRvcHRpb24oIi0taW1wb3J0LW1vZGUiLCBkZWZhdWx0PSJwcmVwZW5kIiwK
LSAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bInByZXBlbmQiLCAiYXBwZW5kIl0sIGRlc3Q9
ImltcG9ydG1vZGUiLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJwcmVwZW5kL2FwcGVuZCB0
byBzeXMucGF0aCB3aGVuIGltcG9ydGluZyB0ZXN0IG1vZHVsZXMsICIKLSAgICAgICAgICAgICAg
ICAgICAgImRlZmF1bHQgaXMgdG8gcHJlcGVuZC4iKQotCi0KLWRlZiBweXRlc3RfY21kbGluZV9t
YWluKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLm9wdGlvbi5zaG93Zml4dHVyZXM6Ci0gICAgICAg
IHNob3dmaXh0dXJlcyhjb25maWcpCi0gICAgICAgIHJldHVybiAwCi0gICAgaWYgY29uZmlnLm9w
dGlvbi5zaG93X2ZpeHR1cmVzX3Blcl90ZXN0OgotICAgICAgICBzaG93X2ZpeHR1cmVzX3Blcl90
ZXN0KGNvbmZpZykKLSAgICAgICAgcmV0dXJuIDAKLQotCi1kZWYgcHl0ZXN0X2dlbmVyYXRlX3Rl
c3RzKG1ldGFmdW5jKToKLSAgICAjIHRob3NlIGFsdGVybmF0aXZlIHNwZWxsaW5ncyBhcmUgY29t
bW9uIC0gcmFpc2UgYSBzcGVjaWZpYyBlcnJvciB0byBhbGVydAotICAgICMgdGhlIHVzZXIKLSAg
ICBhbHRfc3BlbGxpbmdzID0gWydwYXJhbWV0ZXJpemUnLCAncGFyYW1ldHJpc2UnLCAncGFyYW1l
dGVyaXNlJ10KLSAgICBmb3IgYXR0ciBpbiBhbHRfc3BlbGxpbmdzOgotICAgICAgICBpZiBoYXNh
dHRyKG1ldGFmdW5jLmZ1bmN0aW9uLCBhdHRyKToKLSAgICAgICAgICAgIG1zZyA9ICJ7MH0gaGFz
ICd7MX0nLCBzcGVsbGluZyBzaG91bGQgYmUgJ3BhcmFtZXRyaXplJyIKLSAgICAgICAgICAgIHJh
aXNlIE1hcmtlckVycm9yKG1zZy5mb3JtYXQobWV0YWZ1bmMuZnVuY3Rpb24uX19uYW1lX18sIGF0
dHIpKQotICAgIHRyeToKLSAgICAgICAgbWFya2VycyA9IG1ldGFmdW5jLmZ1bmN0aW9uLnBhcmFt
ZXRyaXplCi0gICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICByZXR1cm4KLSAgICBm
b3IgbWFya2VyIGluIG1hcmtlcnM6Ci0gICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCptYXJr
ZXIuYXJncywgKiptYXJrZXIua3dhcmdzKQotCi0KLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZp
Zyk6Ci0gICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJwYXJhbWV0cml6ZShhcmduYW1lcywgYXJndmFsdWVzKTogY2FsbCBh
IHRlc3QgZnVuY3Rpb24gbXVsdGlwbGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0
aW1lcyBwYXNzaW5nIGluIGRpZmZlcmVudCBhcmd1bWVudHMgaW4gdHVybi4gYXJndmFsdWVzIGdl
bmVyYWxseSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5lZWRzIHRvIGJlIGEgbGlz
dCBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVzIG9ubHkgb25lIG5hbWUgIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJvciBhIGxpc3Qgb2YgdHVwbGVzIG9mIHZhbHVlcyBpZiBh
cmduYW1lcyBzcGVjaWZpZXMgbXVsdGlwbGUgbmFtZXMuICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiRXhhbXBsZTogQHBhcmFtZXRyaXplKCdhcmcxJywgWzEsMl0pIHdvdWxkIGxlYWQg
dG8gdHdvIGNhbGxzIG9mIHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlY29y
YXRlZCB0ZXN0IGZ1bmN0aW9uLCBvbmUgd2l0aCBhcmcxPTEgYW5kIGFub3RoZXIgd2l0aCBhcmcx
PTIuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWUgaHR0cDovL3B5dGVzdC5vcmcv
bGF0ZXN0L3BhcmFtZXRyaXplLmh0bWwgZm9yIG1vcmUgaW5mbyBhbmQgIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJleGFtcGxlcy4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
KQotICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAidXNlZml4dHVyZXMoZml4dHVyZW5hbWUxLCBmaXh0dXJlbmFtZTIsIC4u
Lik6IG1hcmsgdGVzdHMgYXMgbmVlZGluZyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImFsbCBvZiB0aGUgc3BlY2lmaWVkIGZpeHR1cmVzLiBzZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0
ZXN0L2ZpeHR1cmUuaHRtbCN1c2VmaXh0dXJlcyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKQotCi0KLUBob29raW1wbCh0cnlsYXN0PVRydWUpCi1kZWYgcHl0ZXN0X3B5ZnVuY19jYWxs
KHB5ZnVuY2l0ZW0pOgotICAgIHRlc3RmdW5jdGlvbiA9IHB5ZnVuY2l0ZW0ub2JqCi0gICAgaWYg
cHlmdW5jaXRlbS5faXN5aWVsZGVkZnVuY3Rpb24oKToKLSAgICAgICAgdGVzdGZ1bmN0aW9uKCpw
eWZ1bmNpdGVtLl9hcmdzKQotICAgIGVsc2U6Ci0gICAgICAgIGZ1bmNhcmdzID0gcHlmdW5jaXRl
bS5mdW5jYXJncwotICAgICAgICB0ZXN0YXJncyA9IHt9Ci0gICAgICAgIGZvciBhcmcgaW4gcHlm
dW5jaXRlbS5fZml4dHVyZWluZm8uYXJnbmFtZXM6Ci0gICAgICAgICAgICB0ZXN0YXJnc1thcmdd
ID0gZnVuY2FyZ3NbYXJnXQotICAgICAgICB0ZXN0ZnVuY3Rpb24oKip0ZXN0YXJncykKLSAgICBy
ZXR1cm4gVHJ1ZQotCi0KLWRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6Ci0g
ICAgZXh0ID0gcGF0aC5leHQKLSAgICBpZiBleHQgPT0gIi5weSI6Ci0gICAgICAgIGlmIG5vdCBw
YXJlbnQuc2Vzc2lvbi5pc2luaXRwYXRoKHBhdGgpOgotICAgICAgICAgICAgZm9yIHBhdCBpbiBw
YXJlbnQuY29uZmlnLmdldGluaSgncHl0aG9uX2ZpbGVzJyk6Ci0gICAgICAgICAgICAgICAgaWYg
cGF0aC5mbm1hdGNoKHBhdCk6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICBpaG9vayA9IHBhcmVudC5z
ZXNzaW9uLmdldGhvb2twcm94eShwYXRoKQotICAgICAgICByZXR1cm4gaWhvb2sucHl0ZXN0X3B5
Y29sbGVjdF9tYWtlbW9kdWxlKHBhdGg9cGF0aCwgcGFyZW50PXBhcmVudCkKLQotCi1kZWYgcHl0
ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlKHBhdGgsIHBhcmVudCk6Ci0gICAgcmV0dXJuIE1vZHVs
ZShwYXRoLCBwYXJlbnQpCi0KLQotQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi1kZWYgcHl0
ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbShjb2xsZWN0b3IsIG5hbWUsIG9iaik6Ci0gICAgb3V0Y29t
ZSA9IHlpZWxkCi0gICAgcmVzID0gb3V0Y29tZS5nZXRfcmVzdWx0KCkKLSAgICBpZiByZXMgaXMg
bm90IE5vbmU6Ci0gICAgICAgIHJldHVybgotICAgICMgbm90aGluZyB3YXMgY29sbGVjdGVkIGVs
c2V3aGVyZSwgbGV0J3MgZG8gaXQgaGVyZQotICAgIGlmIGlzY2xhc3Mob2JqKToKLSAgICAgICAg
aWYgY29sbGVjdG9yLmlzdGVzdGNsYXNzKG9iaiwgbmFtZSk6Ci0gICAgICAgICAgICBDbGFzcyA9
IGNvbGxlY3Rvci5fZ2V0Y3VzdG9tY2xhc3MoIkNsYXNzIikKLSAgICAgICAgICAgIG91dGNvbWUu
Zm9yY2VfcmVzdWx0KENsYXNzKG5hbWUsIHBhcmVudD1jb2xsZWN0b3IpKQotICAgIGVsaWYgY29s
bGVjdG9yLmlzdGVzdGZ1bmN0aW9uKG9iaiwgbmFtZSk6Ci0gICAgICAgICMgbW9jayBzZWVtcyB0
byBzdG9yZSB1bmJvdW5kIG1ldGhvZHMgKGlzc3VlNDczKSwgbm9ybWFsaXplIGl0Ci0gICAgICAg
IG9iaiA9IGdldGF0dHIob2JqLCAiX19mdW5jX18iLCBvYmopCi0gICAgICAgICMgV2UgbmVlZCB0
byB0cnkgYW5kIHVud3JhcCB0aGUgZnVuY3Rpb24gaWYgaXQncyBhIGZ1bmN0b29scy5wYXJ0aWFs
Ci0gICAgICAgICMgb3IgYSBmdW50b29scy53cmFwcGVkLgotICAgICAgICAjIFdlIG11c24ndCBp
ZiBpdCdzIGJlZW4gd3JhcHBlZCB3aXRoIG1vY2sucGF0Y2ggKHB5dGhvbiAyIG9ubHkpCi0gICAg
ICAgIGlmIG5vdCAoaXNmdW5jdGlvbihvYmopIG9yIGlzZnVuY3Rpb24oZ2V0X3JlYWxfZnVuYyhv
YmopKSk6Ci0gICAgICAgICAgICBjb2xsZWN0b3Iud2Fybihjb2RlPSJDMiIsIG1lc3NhZ2U9ImNh
bm5vdCBjb2xsZWN0ICVyIGJlY2F1c2UgaXQgaXMgbm90IGEgZnVuY3Rpb24uIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJSBuYW1lLCApCi0gICAgICAgIGVsaWYgZ2V0YXR0cihvYmosICJf
X3Rlc3RfXyIsIFRydWUpOgotICAgICAgICAgICAgaWYgaXNfZ2VuZXJhdG9yKG9iaik6Ci0gICAg
ICAgICAgICAgICAgcmVzID0gR2VuZXJhdG9yKG5hbWUsIHBhcmVudD1jb2xsZWN0b3IpCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJlcyA9IGxpc3QoY29sbGVjdG9yLl9nZW5m
dW5jdGlvbnMobmFtZSwgb2JqKSkKLSAgICAgICAgICAgIG91dGNvbWUuZm9yY2VfcmVzdWx0KHJl
cykKLQotCi1kZWYgcHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQoY29uZmlnLCB2YWwsIGFyZ25h
bWU9Tm9uZSk6Ci0gICAgcmV0dXJuIE5vbmUKLQotCi1jbGFzcyBQeW9iakNvbnRleHQob2JqZWN0
KToKLSAgICBtb2R1bGUgPSBweW9ial9wcm9wZXJ0eSgiTW9kdWxlIikKLSAgICBjbHMgPSBweW9i
al9wcm9wZXJ0eSgiQ2xhc3MiKQotICAgIGluc3RhbmNlID0gcHlvYmpfcHJvcGVydHkoIkluc3Rh
bmNlIikKLQotCi1jbGFzcyBQeW9iak1peGluKFB5b2JqQ29udGV4dCk6Ci0gICAgZGVmIG9iaigp
OgotICAgICAgICBkZWYgZmdldChzZWxmKToKLSAgICAgICAgICAgIG9iaiA9IGdldGF0dHIoc2Vs
ZiwgJ19vYmonLCBOb25lKQotICAgICAgICAgICAgaWYgb2JqIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fb2JqID0gb2JqID0gc2VsZi5fZ2V0b2JqKCkKLSAgICAgICAgICAgIHJldHVy
biBvYmoKLQotICAgICAgICBkZWYgZnNldChzZWxmLCB2YWx1ZSk6Ci0gICAgICAgICAgICBzZWxm
Ll9vYmogPSB2YWx1ZQotCi0gICAgICAgIHJldHVybiBwcm9wZXJ0eShmZ2V0LCBmc2V0LCBOb25l
LCAidW5kZXJseWluZyBweXRob24gb2JqZWN0IikKLQotICAgIG9iaiA9IG9iaigpCi0KLSAgICBk
ZWYgX2dldG9iaihzZWxmKToKLSAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5wYXJlbnQub2Jq
LCBzZWxmLm5hbWUpCi0KLSAgICBkZWYgZ2V0bW9kcGF0aChzZWxmLCBzdG9wYXRtb2R1bGU9VHJ1
ZSwgaW5jbHVkZW1vZHVsZT1GYWxzZSk6Ci0gICAgICAgICIiIiByZXR1cm4gcHl0aG9uIHBhdGgg
cmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgbW9kdWxlLiAiIiIKLSAgICAgICAgY2hhaW4gPSBz
ZWxmLmxpc3RjaGFpbigpCi0gICAgICAgIGNoYWluLnJldmVyc2UoKQotICAgICAgICBwYXJ0cyA9
IFtdCi0gICAgICAgIGZvciBub2RlIGluIGNoYWluOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5j
ZShub2RlLCBJbnN0YW5jZSk6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
IG5hbWUgPSBub2RlLm5hbWUKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZSwgTW9kdWxl
KToKLSAgICAgICAgICAgICAgICBuYW1lID0gb3MucGF0aC5zcGxpdGV4dChuYW1lKVswXQotICAg
ICAgICAgICAgICAgIGlmIHN0b3BhdG1vZHVsZToKLSAgICAgICAgICAgICAgICAgICAgaWYgaW5j
bHVkZW1vZHVsZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChuYW1lKQot
ICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgcGFydHMuYXBwZW5kKG5hbWUp
Ci0gICAgICAgIHBhcnRzLnJldmVyc2UoKQotICAgICAgICBzID0gIi4iLmpvaW4ocGFydHMpCi0g
ICAgICAgIHJldHVybiBzLnJlcGxhY2UoIi5bIiwgIlsiKQotCi0gICAgZGVmIF9nZXRmc2xpbmVu
byhzZWxmKToKLSAgICAgICAgcmV0dXJuIGdldGZzbGluZW5vKHNlbGYub2JqKQotCi0gICAgZGVm
IHJlcG9ydGluZm8oc2VsZik6Ci0gICAgICAgICMgWFhYIGNhY2hpbmc/Ci0gICAgICAgIG9iaiA9
IHNlbGYub2JqCi0gICAgICAgIGNvbXBhdF9jb19maXJzdGxpbmVubyA9IGdldGF0dHIob2JqLCAn
Y29tcGF0X2NvX2ZpcnN0bGluZW5vJywgTm9uZSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShjb21w
YXRfY29fZmlyc3RsaW5lbm8sIGludCk6Ci0gICAgICAgICAgICAjIG5vc2UgY29tcGF0aWJpbGl0
eQotICAgICAgICAgICAgZnNwYXRoID0gc3lzLm1vZHVsZXNbb2JqLl9fbW9kdWxlX19dLl9fZmls
ZV9fCi0gICAgICAgICAgICBpZiBmc3BhdGguZW5kc3dpdGgoIi5weWMiKToKLSAgICAgICAgICAg
ICAgICBmc3BhdGggPSBmc3BhdGhbOi0xXQotICAgICAgICAgICAgbGluZW5vID0gY29tcGF0X2Nv
X2ZpcnN0bGluZW5vCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmc3BhdGgsIGxpbmVubyA9
IGdldGZzbGluZW5vKG9iaikKLSAgICAgICAgbW9kcGF0aCA9IHNlbGYuZ2V0bW9kcGF0aCgpCi0g
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmVubywgaW50KQotICAgICAgICByZXR1cm4gZnNw
YXRoLCBsaW5lbm8sIG1vZHBhdGgKLQotCi1jbGFzcyBQeUNvbGxlY3RvcihQeW9iak1peGluLCBt
YWluLkNvbGxlY3Rvcik6Ci0KLSAgICBkZWYgZnVuY25hbWVmaWx0ZXIoc2VsZiwgbmFtZSk6Ci0g
ICAgICAgIHJldHVybiBzZWxmLl9tYXRjaGVzX3ByZWZpeF9vcl9nbG9iX29wdGlvbigncHl0aG9u
X2Z1bmN0aW9ucycsIG5hbWUpCi0KLSAgICBkZWYgaXNub3NldGVzdChzZWxmLCBvYmopOgotICAg
ICAgICAiIiIgTG9vayBmb3IgdGhlIF9fdGVzdF9fIGF0dHJpYnV0ZSwgd2hpY2ggaXMgYXBwbGll
ZCBieSB0aGUKLSAgICAgICAgQG5vc2UudG9vbHMuaXN0ZXN0IGRlY29yYXRvcgotICAgICAgICAi
IiIKLSAgICAgICAgIyBXZSBleHBsaWNpdGx5IGNoZWNrIGZvciAiaXMgVHJ1ZSIgaGVyZSB0byBu
b3QgbWlzdGFrZW5seSB0cmVhdAotICAgICAgICAjIGNsYXNzZXMgd2l0aCBhIGN1c3RvbSBfX2dl
dGF0dHJfXyByZXR1cm5pbmcgc29tZXRoaW5nIHRydXRoeSAobGlrZSBhCi0gICAgICAgICMgZnVu
Y3Rpb24pIGFzIHRlc3QgY2xhc3Nlcy4KLSAgICAgICAgcmV0dXJuIHNhZmVfZ2V0YXR0cihvYmos
ICdfX3Rlc3RfXycsIEZhbHNlKSBpcyBUcnVlCi0KLSAgICBkZWYgY2xhc3NuYW1lZmlsdGVyKHNl
bGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gc2VsZi5fbWF0Y2hlc19wcmVmaXhfb3JfZ2xvYl9v
cHRpb24oJ3B5dGhvbl9jbGFzc2VzJywgbmFtZSkKLQotICAgIGRlZiBpc3Rlc3RmdW5jdGlvbihz
ZWxmLCBvYmosIG5hbWUpOgotICAgICAgICBpZiBzZWxmLmZ1bmNuYW1lZmlsdGVyKG5hbWUpIG9y
IHNlbGYuaXNub3NldGVzdChvYmopOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIHN0
YXRpY21ldGhvZCk6Ci0gICAgICAgICAgICAgICAgIyBzdGF0aWMgbWV0aG9kcyBuZWVkIHRvIGJl
IHVud3JhcHBlZAotICAgICAgICAgICAgICAgIG9iaiA9IHNhZmVfZ2V0YXR0cihvYmosICdfX2Z1
bmNfXycsIEZhbHNlKQotICAgICAgICAgICAgICAgIGlmIG9iaiBpcyBGYWxzZToKLSAgICAgICAg
ICAgICAgICAgICAgIyBQeXRob24gMi42IHdyYXBzIGluIGEgZGlmZmVyZW50IHdheSB0aGF0IHdl
IHdvbid0IHRyeSB0byBoYW5kbGUKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gImNhbm5vdCBj
b2xsZWN0IHN0YXRpYyBtZXRob2QgJXIgYmVjYXVzZSAiIFwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIml0IGlzIG5vdCBhIGZ1bmN0aW9uIChhbHdheXMgdGhlIGNhc2UgaW4gUHl0aG9uIDIu
NikiCi0gICAgICAgICAgICAgICAgICAgIHNlbGYud2FybigKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNvZGU9IkMyIiwgbWVzc2FnZT1tc2cgJSBuYW1lKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIHJldHVybiAoCi0gICAgICAgICAgICAgICAgc2FmZV9n
ZXRhdHRyKG9iaiwgIl9fY2FsbF9fIiwgRmFsc2UpIGFuZCBmaXh0dXJlcy5nZXRmaXh0dXJlbWFy
a2VyKG9iaikgaXMgTm9uZQotICAgICAgICAgICAgKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgaXN0ZXN0Y2xhc3Moc2VsZiwgb2JqLCBuYW1lKToK
LSAgICAgICAgcmV0dXJuIHNlbGYuY2xhc3NuYW1lZmlsdGVyKG5hbWUpIG9yIHNlbGYuaXNub3Nl
dGVzdChvYmopCi0KLSAgICBkZWYgX21hdGNoZXNfcHJlZml4X29yX2dsb2Jfb3B0aW9uKHNlbGYs
IG9wdGlvbl9uYW1lLCBuYW1lKToKLSAgICAgICAgIiIiCi0gICAgICAgIGNoZWNrcyBpZiB0aGUg
Z2l2ZW4gbmFtZSBtYXRjaGVzIHRoZSBwcmVmaXggb3IgZ2xvYi1wYXR0ZXJuIGRlZmluZWQKLSAg
ICAgICAgaW4gaW5pIGNvbmZpZ3VyYXRpb24uCi0gICAgICAgICIiIgotICAgICAgICBmb3Igb3B0
aW9uIGluIHNlbGYuY29uZmlnLmdldGluaShvcHRpb25fbmFtZSk6Ci0gICAgICAgICAgICBpZiBu
YW1lLnN0YXJ0c3dpdGgob3B0aW9uKToKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAg
ICAgICAgICAgIyBjaGVjayB0aGF0IG5hbWUgbG9va3MgbGlrZSBhIGdsb2Itc3RyaW5nIGJlZm9y
ZSBjYWxsaW5nIGZubWF0Y2gKLSAgICAgICAgICAgICMgYmVjYXVzZSB0aGlzIGlzIGNhbGxlZCBm
b3IgZXZlcnkgbmFtZSBpbiBlYWNoIGNvbGxlY3RlZCBtb2R1bGUsCi0gICAgICAgICAgICAjIGFu
ZCBmbm1hdGNoIGlzIHNvbWV3aGF0IGV4cGVuc2l2ZSB0byBjYWxsCi0gICAgICAgICAgICBlbGlm
ICgnKicgaW4gb3B0aW9uIG9yICc/JyBpbiBvcHRpb24gb3IgJ1snIGluIG9wdGlvbikgYW5kIFwK
LSAgICAgICAgICAgICAgICAgICAgZm5tYXRjaC5mbm1hdGNoKG5hbWUsIG9wdGlvbik6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYg
Y29sbGVjdChzZWxmKToKLSAgICAgICAgaWYgbm90IGdldGF0dHIoc2VsZi5vYmosICJfX3Rlc3Rf
XyIsIFRydWUpOgotICAgICAgICAgICAgcmV0dXJuIFtdCi0KLSAgICAgICAgIyBOQi4gd2UgYXZv
aWQgcmFuZG9tIGdldGF0dHJzIGFuZCBwZWVrIGluIHRoZSBfX2RpY3RfXyBpbnN0ZWFkCi0gICAg
ICAgICMgKFhYWCBvcmlnaW5hbGx5IGludHJvZHVjZWQgZnJvbSBhIFB5UHkgbmVlZCwgc3RpbGwg
dHJ1ZT8pCi0gICAgICAgIGRpY3RzID0gW2dldGF0dHIoc2VsZi5vYmosICdfX2RpY3RfXycsIHt9
KV0KLSAgICAgICAgZm9yIGJhc2VjbHMgaW4gaW5zcGVjdC5nZXRtcm8oc2VsZi5vYmouX19jbGFz
c19fKToKLSAgICAgICAgICAgIGRpY3RzLmFwcGVuZChiYXNlY2xzLl9fZGljdF9fKQotICAgICAg
ICBzZWVuID0ge30KLSAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgZm9yIGRpYyBpbiBkaWN0
czoKLSAgICAgICAgICAgIGZvciBuYW1lLCBvYmogaW4gbGlzdChkaWMuaXRlbXMoKSk6Ci0gICAg
ICAgICAgICAgICAgaWYgbmFtZSBpbiBzZWVuOgotICAgICAgICAgICAgICAgICAgICBjb250aW51
ZQotICAgICAgICAgICAgICAgIHNlZW5bbmFtZV0gPSBUcnVlCi0gICAgICAgICAgICAgICAgcmVz
ID0gc2VsZi5fbWFrZWl0ZW0obmFtZSwgb2JqKQotICAgICAgICAgICAgICAgIGlmIHJlcyBpcyBO
b25lOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKHJlcywgbGlzdCk6Ci0gICAgICAgICAgICAgICAgICAgIHJlcyA9IFtyZXNd
Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmV4dGVuZChyZXMpCi0gICAgICAgIHZhbHVlcy5zb3J0
KGtleT1sYW1iZGEgaXRlbTogaXRlbS5yZXBvcnRpbmZvKClbOjJdKQotICAgICAgICByZXR1cm4g
dmFsdWVzCi0KLSAgICBkZWYgbWFrZWl0ZW0oc2VsZiwgbmFtZSwgb2JqKToKLSAgICAgICAgd2Fy
bmluZ3Mud2FybihkZXByZWNhdGVkLkNPTExFQ1RPUl9NQUtFSVRFTSwgc3RhY2tsZXZlbD0yKQot
ICAgICAgICBzZWxmLl9tYWtlaXRlbShuYW1lLCBvYmopCi0KLSAgICBkZWYgX21ha2VpdGVtKHNl
bGYsIG5hbWUsIG9iaik6Ci0gICAgICAgICMgYXNzZXJ0IHNlbGYuaWhvb2suZnNwYXRoID09IHNl
bGYuZnNwYXRoLCBzZWxmCi0gICAgICAgIHJldHVybiBzZWxmLmlob29rLnB5dGVzdF9weWNvbGxl
Y3RfbWFrZWl0ZW0oCi0gICAgICAgICAgICBjb2xsZWN0b3I9c2VsZiwgbmFtZT1uYW1lLCBvYmo9
b2JqKQotCi0gICAgZGVmIF9nZW5mdW5jdGlvbnMoc2VsZiwgbmFtZSwgZnVuY29iaik6Ci0gICAg
ICAgIG1vZHVsZSA9IHNlbGYuZ2V0cGFyZW50KE1vZHVsZSkub2JqCi0gICAgICAgIGNsc2NvbCA9
IHNlbGYuZ2V0cGFyZW50KENsYXNzKQotICAgICAgICBjbHMgPSBjbHNjb2wgYW5kIGNsc2NvbC5v
Ymogb3IgTm9uZQotICAgICAgICB0cmFuc2Zlcl9tYXJrZXJzKGZ1bmNvYmosIGNscywgbW9kdWxl
KQotICAgICAgICBmbSA9IHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKLSAgICAgICAgZml4
dHVyZWluZm8gPSBmbS5nZXRmaXh0dXJlaW5mbyhzZWxmLCBmdW5jb2JqLCBjbHMpCi0gICAgICAg
IG1ldGFmdW5jID0gTWV0YWZ1bmMoZnVuY29iaiwgZml4dHVyZWluZm8sIHNlbGYuY29uZmlnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscz1jbHMsIG1vZHVsZT1tb2R1bGUpCi0gICAg
ICAgIG1ldGhvZHMgPSBbXQotICAgICAgICBpZiBoYXNhdHRyKG1vZHVsZSwgInB5dGVzdF9nZW5l
cmF0ZV90ZXN0cyIpOgotICAgICAgICAgICAgbWV0aG9kcy5hcHBlbmQobW9kdWxlLnB5dGVzdF9n
ZW5lcmF0ZV90ZXN0cykKLSAgICAgICAgaWYgaGFzYXR0cihjbHMsICJweXRlc3RfZ2VuZXJhdGVf
dGVzdHMiKToKLSAgICAgICAgICAgIG1ldGhvZHMuYXBwZW5kKGNscygpLnB5dGVzdF9nZW5lcmF0
ZV90ZXN0cykKLSAgICAgICAgaWYgbWV0aG9kczoKLSAgICAgICAgICAgIHNlbGYuaWhvb2sucHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzLmNhbGxfZXh0cmEobWV0aG9kcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGljdChtZXRhZnVuYz1tZXRh
ZnVuYykpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmlob29rLnB5dGVzdF9nZW5l
cmF0ZV90ZXN0cyhtZXRhZnVuYz1tZXRhZnVuYykKLQotICAgICAgICBGdW5jdGlvbiA9IHNlbGYu
X2dldGN1c3RvbWNsYXNzKCJGdW5jdGlvbiIpCi0gICAgICAgIGlmIG5vdCBtZXRhZnVuYy5fY2Fs
bHM6Ci0gICAgICAgICAgICB5aWVsZCBGdW5jdGlvbihuYW1lLCBwYXJlbnQ9c2VsZiwgZml4dHVy
ZWluZm89Zml4dHVyZWluZm8pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIGFkZCBmdW5j
YXJncygpIGFzIGZpeHR1cmVkZWZzIHRvIGZpeHR1cmVpbmZvLmFyZzJmaXh0dXJlZGVmcwotICAg
ICAgICAgICAgZml4dHVyZXMuYWRkX2Z1bmNhcmdfcHNldWRvX2ZpeHR1cmVfZGVmKHNlbGYsIG1l
dGFmdW5jLCBmbSkKLQotICAgICAgICAgICAgZm9yIGNhbGxzcGVjIGluIG1ldGFmdW5jLl9jYWxs
czoKLSAgICAgICAgICAgICAgICBzdWJuYW1lID0gIiVzWyVzXSIgJSAobmFtZSwgY2FsbHNwZWMu
aWQpCi0gICAgICAgICAgICAgICAgeWllbGQgRnVuY3Rpb24obmFtZT1zdWJuYW1lLCBwYXJlbnQ9
c2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsc3BlYz1jYWxsc3BlYywg
Y2FsbG9iaj1mdW5jb2JqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeHR1cmVp
bmZvPWZpeHR1cmVpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRz
PXtjYWxsc3BlYy5pZDogVHJ1ZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Jp
Z2luYWxuYW1lPW5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotCi0KLWNs
YXNzIE1vZHVsZShtYWluLkZpbGUsIFB5Q29sbGVjdG9yKToKLSAgICAiIiIgQ29sbGVjdG9yIGZv
ciB0ZXN0IGNsYXNzZXMgYW5kIGZ1bmN0aW9ucy4gIiIiCi0KLSAgICBkZWYgX2dldG9iaihzZWxm
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ltcG9ydHRlc3Rtb2R1bGUoKQotCi0gICAgZGVmIGNv
bGxlY3Qoc2VsZik6Ci0gICAgICAgIHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIucGFyc2Vm
YWN0b3JpZXMoc2VsZikKLSAgICAgICAgcmV0dXJuIHN1cGVyKE1vZHVsZSwgc2VsZikuY29sbGVj
dCgpCi0KLSAgICBkZWYgX2ltcG9ydHRlc3Rtb2R1bGUoc2VsZik6Ci0gICAgICAgICMgd2UgYXNz
dW1lIHdlIGFyZSBvbmx5IGNhbGxlZCBvbmNlIHBlciBtb2R1bGUKLSAgICAgICAgaW1wb3J0bW9k
ZSA9IHNlbGYuY29uZmlnLmdldG9wdGlvbigiLS1pbXBvcnQtbW9kZSIpCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIG1vZCA9IHNlbGYuZnNwYXRoLnB5aW1wb3J0KGVuc3VyZXN5c3BhdGg9aW1w
b3J0bW9kZSkKLSAgICAgICAgZXhjZXB0IFN5bnRheEVycm9yOgotICAgICAgICAgICAgcmFpc2Ug
c2VsZi5Db2xsZWN0RXJyb3IoCi0gICAgICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5FeGNlcHRp
b25JbmZvKCkuZ2V0cmVwcihzdHlsZT0ic2hvcnQiKSkKLSAgICAgICAgZXhjZXB0IHNlbGYuZnNw
YXRoLkltcG9ydE1pc21hdGNoRXJyb3I6Ci0gICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClb
MV0KLSAgICAgICAgICAgIHJhaXNlIHNlbGYuQ29sbGVjdEVycm9yKAotICAgICAgICAgICAgICAg
ICJpbXBvcnQgZmlsZSBtaXNtYXRjaDpcbiIKLSAgICAgICAgICAgICAgICAiaW1wb3J0ZWQgbW9k
dWxlICVyIGhhcyB0aGlzIF9fZmlsZV9fIGF0dHJpYnV0ZTpcbiIKLSAgICAgICAgICAgICAgICAi
ICAlc1xuIgotICAgICAgICAgICAgICAgICJ3aGljaCBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHRl
c3QgZmlsZSB3ZSB3YW50IHRvIGNvbGxlY3Q6XG4iCi0gICAgICAgICAgICAgICAgIiAgJXNcbiIK
LSAgICAgICAgICAgICAgICAiSElOVDogcmVtb3ZlIF9fcHljYWNoZV9fIC8gLnB5YyBmaWxlcyBh
bmQvb3IgdXNlIGEgIgotICAgICAgICAgICAgICAgICJ1bmlxdWUgYmFzZW5hbWUgZm9yIHlvdXIg
dGVzdCBmaWxlIG1vZHVsZXMiCi0gICAgICAgICAgICAgICAgJSBlLmFyZ3MKLSAgICAgICAgICAg
ICkKLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgZnJvbSBfcHl0ZXN0
Ll9jb2RlLmNvZGUgaW1wb3J0IEV4Y2VwdGlvbkluZm8KLSAgICAgICAgICAgIGV4Y19pbmZvID0g
RXhjZXB0aW9uSW5mbygpCi0gICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24oJ3Zl
cmJvc2UnKSA8IDI6Ci0gICAgICAgICAgICAgICAgZXhjX2luZm8udHJhY2ViYWNrID0gZXhjX2lu
Zm8udHJhY2ViYWNrLmZpbHRlcihmaWx0ZXJfdHJhY2ViYWNrKQotICAgICAgICAgICAgZXhjX3Jl
cHIgPSBleGNfaW5mby5nZXRyZXByKHN0eWxlPSdzaG9ydCcpIGlmIGV4Y19pbmZvLnRyYWNlYmFj
ayBlbHNlIGV4Y19pbmZvLmV4Y29ubHkoKQotICAgICAgICAgICAgZm9ybWF0dGVkX3RiID0gc2Fm
ZV9zdHIoZXhjX3JlcHIpCi0gICAgICAgICAgICByYWlzZSBzZWxmLkNvbGxlY3RFcnJvcigKLSAg
ICAgICAgICAgICAgICAiSW1wb3J0RXJyb3Igd2hpbGUgaW1wb3J0aW5nIHRlc3QgbW9kdWxlICd7
ZnNwYXRofScuXG4iCi0gICAgICAgICAgICAgICAgIkhpbnQ6IG1ha2Ugc3VyZSB5b3VyIHRlc3Qg
bW9kdWxlcy9wYWNrYWdlcyBoYXZlIHZhbGlkIFB5dGhvbiBuYW1lcy5cbiIKLSAgICAgICAgICAg
ICAgICAiVHJhY2ViYWNrOlxuIgotICAgICAgICAgICAgICAgICJ7dHJhY2ViYWNrfSIuZm9ybWF0
KGZzcGF0aD1zZWxmLmZzcGF0aCwgdHJhY2ViYWNrPWZvcm1hdHRlZF90YikKLSAgICAgICAgICAg
ICkKLSAgICAgICAgZXhjZXB0IF9weXRlc3QucnVubmVyLlNraXBwZWQgYXMgZToKLSAgICAgICAg
ICAgIGlmIGUuYWxsb3dfbW9kdWxlX2xldmVsOgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAg
ICAgICAgICByYWlzZSBzZWxmLkNvbGxlY3RFcnJvcigKLSAgICAgICAgICAgICAgICAiVXNpbmcg
cHl0ZXN0LnNraXAgb3V0c2lkZSBvZiBhIHRlc3QgaXMgbm90IGFsbG93ZWQuICIKLSAgICAgICAg
ICAgICAgICAiVG8gZGVjb3JhdGUgYSB0ZXN0IGZ1bmN0aW9uLCB1c2UgdGhlIEBweXRlc3QubWFy
ay5za2lwICIKLSAgICAgICAgICAgICAgICAib3IgQHB5dGVzdC5tYXJrLnNraXBpZiBkZWNvcmF0
b3JzIGluc3RlYWQsIGFuZCB0byBza2lwIGEgIgotICAgICAgICAgICAgICAgICJtb2R1bGUgdXNl
IGBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsue3NraXAsc2tpcGlmfS4iCi0gICAgICAgICAgICAp
Ci0gICAgICAgIHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIuY29uc2lkZXJfbW9kdWxlKG1vZCkK
LSAgICAgICAgcmV0dXJuIG1vZAotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICBzZXR1
cF9tb2R1bGUgPSBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3duKHNlbGYub2JqLCAic2V0VXBNb2R1
bGUiKQotICAgICAgICBpZiBzZXR1cF9tb2R1bGUgaXMgTm9uZToKLSAgICAgICAgICAgIHNldHVw
X21vZHVsZSA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24oc2VsZi5vYmosICJzZXR1cF9tb2R1
bGUiKQotICAgICAgICBpZiBzZXR1cF9tb2R1bGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBz
ZXR1cF9tb2R1bGUoKQotCi0gICAgICAgIHRlYXJkb3duX21vZHVsZSA9IF9nZXRfeHVuaXRfc2V0
dXBfdGVhcmRvd24oc2VsZi5vYmosICd0ZWFyRG93bk1vZHVsZScpCi0gICAgICAgIGlmIHRlYXJk
b3duX21vZHVsZSBpcyBOb25lOgotICAgICAgICAgICAgdGVhcmRvd25fbW9kdWxlID0gX2dldF94
dW5pdF9zZXR1cF90ZWFyZG93bihzZWxmLm9iaiwgJ3RlYXJkb3duX21vZHVsZScpCi0gICAgICAg
IGlmIHRlYXJkb3duX21vZHVsZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuYWRkZmlu
YWxpemVyKHRlYXJkb3duX21vZHVsZSkKLQotCi1kZWYgX2dldF94dW5pdF9zZXR1cF90ZWFyZG93
bihob2xkZXIsIGF0dHJfbmFtZSwgcGFyYW1fb2JqPU5vbmUpOgotICAgICIiIgotICAgIFJldHVy
biBhIGNhbGxhYmxlIHRvIHBlcmZvcm0geHVuaXQtc3R5bGUgc2V0dXAgb3IgdGVhcmRvd24gaWYK
LSAgICB0aGUgZnVuY3Rpb24gZXhpc3RzIGluIHRoZSBgYGhvbGRlcmBgIG9iamVjdC4KLSAgICBU
aGUgYGBwYXJhbV9vYmpgYCBwYXJhbWV0ZXIgaXMgdGhlIHBhcmFtZXRlciB3aGljaCB3aWxsIGJl
IHBhc3NlZCB0byB0aGUgZnVuY3Rpb24KLSAgICB3aGVuIHRoZSBjYWxsYWJsZSBpcyBjYWxsZWQg
d2l0aG91dCBhcmd1bWVudHMsIGRlZmF1bHRzIHRvIHRoZSBgYGhvbGRlcmBgIG9iamVjdC4KLSAg
ICBSZXR1cm4gYGBOb25lYGAgaWYgYSBzdWl0YWJsZSBjYWxsYWJsZSBpcyBub3QgZm91bmQuCi0g
ICAgIiIiCi0gICAgcGFyYW1fb2JqID0gcGFyYW1fb2JqIGlmIHBhcmFtX29iaiBpcyBub3QgTm9u
ZSBlbHNlIGhvbGRlcgotICAgIHJlc3VsdCA9IF9nZXRfeHVuaXRfZnVuYyhob2xkZXIsIGF0dHJf
bmFtZSkKLSAgICBpZiByZXN1bHQgaXMgbm90IE5vbmU6Ci0gICAgICAgIGFyZ19jb3VudCA9IHJl
c3VsdC5fX2NvZGVfXy5jb19hcmdjb3VudAotICAgICAgICBpZiBpbnNwZWN0LmlzbWV0aG9kKHJl
c3VsdCk6Ci0gICAgICAgICAgICBhcmdfY291bnQgLT0gMQotICAgICAgICBpZiBhcmdfY291bnQ6
Ci0gICAgICAgICAgICByZXR1cm4gbGFtYmRhOiByZXN1bHQocGFyYW1fb2JqKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAotCi0KLWRlZiBfZ2V0X3h1bml0X2Z1bmMo
b2JqLCBuYW1lKToKLSAgICAiIiJSZXR1cm4gdGhlIGF0dHJpYnV0ZSBmcm9tIHRoZSBnaXZlbiBv
YmplY3QgdG8gYmUgdXNlZCBhcyBhIHNldHVwL3RlYXJkb3duCi0gICAgeHVuaXQtc3R5bGUgZnVu
Y3Rpb24sIGJ1dCBvbmx5IGlmIG5vdCBtYXJrZWQgYXMgYSBmaXh0dXJlIHRvCi0gICAgYXZvaWQg
Y2FsbGluZyBpdCB0d2ljZS4KLSAgICAiIiIKLSAgICBtZXRoID0gZ2V0YXR0cihvYmosIG5hbWUs
IE5vbmUpCi0gICAgaWYgZml4dHVyZXMuZ2V0Zml4dHVyZW1hcmtlcihtZXRoKSBpcyBOb25lOgot
ICAgICAgICByZXR1cm4gbWV0aAotCi0KLWNsYXNzIENsYXNzKFB5Q29sbGVjdG9yKToKLSAgICAi
IiIgQ29sbGVjdG9yIGZvciB0ZXN0IG1ldGhvZHMuICIiIgotCi0gICAgZGVmIGNvbGxlY3Qoc2Vs
Zik6Ci0gICAgICAgIGlmIG5vdCBzYWZlX2dldGF0dHIoc2VsZi5vYmosICJfX3Rlc3RfXyIsIFRy
dWUpOgotICAgICAgICAgICAgcmV0dXJuIFtdCi0gICAgICAgIGlmIGhhc2luaXQoc2VsZi5vYmop
OgotICAgICAgICAgICAgc2VsZi53YXJuKCJDMSIsICJjYW5ub3QgY29sbGVjdCB0ZXN0IGNsYXNz
ICVyIGJlY2F1c2UgaXQgaGFzIGEgIgotICAgICAgICAgICAgICAgICAgICAgICJfX2luaXRfXyBj
b25zdHJ1Y3RvciIgJSBzZWxmLm9iai5fX25hbWVfXykKLSAgICAgICAgICAgIHJldHVybiBbXQot
ICAgICAgICBlbGlmIGhhc25ldyhzZWxmLm9iaik6Ci0gICAgICAgICAgICBzZWxmLndhcm4oIkMx
IiwgImNhbm5vdCBjb2xsZWN0IHRlc3QgY2xhc3MgJXIgYmVjYXVzZSBpdCBoYXMgYSAiCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIl9fbmV3X18gY29uc3RydWN0b3IiICUgc2VsZi5vYmou
X19uYW1lX18pCi0gICAgICAgICAgICByZXR1cm4gW10KLSAgICAgICAgcmV0dXJuIFtzZWxmLl9n
ZXRjdXN0b21jbGFzcygiSW5zdGFuY2UiKShuYW1lPSIoKSIsIHBhcmVudD1zZWxmKV0KLQotICAg
IGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgc2V0dXBfY2xhc3MgPSBfZ2V0X3h1bml0X2Z1bmMo
c2VsZi5vYmosICdzZXR1cF9jbGFzcycpCi0gICAgICAgIGlmIHNldHVwX2NsYXNzIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgc2V0dXBfY2xhc3MgPSBnZXRhdHRyKHNldHVwX2NsYXNzLCAnaW1f
ZnVuYycsIHNldHVwX2NsYXNzKQotICAgICAgICAgICAgc2V0dXBfY2xhc3MgPSBnZXRhdHRyKHNl
dHVwX2NsYXNzLCAnX19mdW5jX18nLCBzZXR1cF9jbGFzcykKLSAgICAgICAgICAgIHNldHVwX2Ns
YXNzKHNlbGYub2JqKQotCi0gICAgICAgIGZpbl9jbGFzcyA9IGdldGF0dHIoc2VsZi5vYmosICd0
ZWFyZG93bl9jbGFzcycsIE5vbmUpCi0gICAgICAgIGlmIGZpbl9jbGFzcyBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIGZpbl9jbGFzcyA9IGdldGF0dHIoZmluX2NsYXNzLCAnaW1fZnVuYycsIGZp
bl9jbGFzcykKLSAgICAgICAgICAgIGZpbl9jbGFzcyA9IGdldGF0dHIoZmluX2NsYXNzLCAnX19m
dW5jX18nLCBmaW5fY2xhc3MpCi0gICAgICAgICAgICBzZWxmLmFkZGZpbmFsaXplcihsYW1iZGE6
IGZpbl9jbGFzcyhzZWxmLm9iaikpCi0KLQotY2xhc3MgSW5zdGFuY2UoUHlDb2xsZWN0b3IpOgot
ICAgIGRlZiBfZ2V0b2JqKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQub2JqKCkK
LQotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAgICAgICBzZWxmLnNlc3Npb24uX2ZpeHR1cmVt
YW5hZ2VyLnBhcnNlZmFjdG9yaWVzKHNlbGYpCi0gICAgICAgIHJldHVybiBzdXBlcihJbnN0YW5j
ZSwgc2VsZikuY29sbGVjdCgpCi0KLSAgICBkZWYgbmV3aW5zdGFuY2Uoc2VsZik6Ci0gICAgICAg
IHNlbGYub2JqID0gc2VsZi5fZ2V0b2JqKCkKLSAgICAgICAgcmV0dXJuIHNlbGYub2JqCi0KLQot
Y2xhc3MgRnVuY3Rpb25NaXhpbihQeW9iak1peGluKToKLSAgICAiIiIgbWl4aW4gZm9yIHRoZSBj
b2RlIGNvbW1vbiB0byBGdW5jdGlvbiBhbmQgR2VuZXJhdG9yLgotICAgICIiIgotCi0gICAgZGVm
IHNldHVwKHNlbGYpOgotICAgICAgICAiIiIgcGVyZm9ybSBzZXR1cCBmb3IgdGhpcyB0ZXN0IGZ1
bmN0aW9uLiAiIiIKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX3ByZXNlcnZlZHBhcmVudCcp
OgotICAgICAgICAgICAgb2JqID0gc2VsZi5fcHJlc2VydmVkcGFyZW50Ci0gICAgICAgIGVsaWYg
aXNpbnN0YW5jZShzZWxmLnBhcmVudCwgSW5zdGFuY2UpOgotICAgICAgICAgICAgb2JqID0gc2Vs
Zi5wYXJlbnQubmV3aW5zdGFuY2UoKQotICAgICAgICAgICAgc2VsZi5vYmogPSBzZWxmLl9nZXRv
YmooKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb2JqID0gc2VsZi5wYXJlbnQub2JqCi0g
ICAgICAgIGlmIGluc3BlY3QuaXNtZXRob2Qoc2VsZi5vYmopOgotICAgICAgICAgICAgc2V0dXBf
bmFtZSA9ICdzZXR1cF9tZXRob2QnCi0gICAgICAgICAgICB0ZWFyZG93bl9uYW1lID0gJ3RlYXJk
b3duX21ldGhvZCcKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNldHVwX25hbWUgPSAnc2V0
dXBfZnVuY3Rpb24nCi0gICAgICAgICAgICB0ZWFyZG93bl9uYW1lID0gJ3RlYXJkb3duX2Z1bmN0
aW9uJwotICAgICAgICBzZXR1cF9mdW5jX29yX21ldGhvZCA9IF9nZXRfeHVuaXRfc2V0dXBfdGVh
cmRvd24ob2JqLCBzZXR1cF9uYW1lLCBwYXJhbV9vYmo9c2VsZi5vYmopCi0gICAgICAgIGlmIHNl
dHVwX2Z1bmNfb3JfbWV0aG9kIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2V0dXBfZnVuY19v
cl9tZXRob2QoKQotICAgICAgICB0ZWFyZG93bl9mdW5jX29yX21ldGhvZCA9IF9nZXRfeHVuaXRf
c2V0dXBfdGVhcmRvd24ob2JqLCB0ZWFyZG93bl9uYW1lLCBwYXJhbV9vYmo9c2VsZi5vYmopCi0g
ICAgICAgIGlmIHRlYXJkb3duX2Z1bmNfb3JfbWV0aG9kIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgc2VsZi5hZGRmaW5hbGl6ZXIodGVhcmRvd25fZnVuY19vcl9tZXRob2QpCi0KLSAgICBkZWYg
X3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pOgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYs
ICdfb2JqJykgYW5kIG5vdCBzZWxmLmNvbmZpZy5vcHRpb24uZnVsbHRyYWNlOgotICAgICAgICAg
ICAgY29kZSA9IF9weXRlc3QuX2NvZGUuQ29kZShnZXRfcmVhbF9mdW5jKHNlbGYub2JqKSkKLSAg
ICAgICAgICAgIHBhdGgsIGZpcnN0bGluZW5vID0gY29kZS5wYXRoLCBjb2RlLmZpcnN0bGluZW5v
Ci0gICAgICAgICAgICB0cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjawotICAgICAgICAgICAg
bnRyYWNlYmFjayA9IHRyYWNlYmFjay5jdXQocGF0aD1wYXRoLCBmaXJzdGxpbmVubz1maXJzdGxp
bmVubykKLSAgICAgICAgICAgIGlmIG50cmFjZWJhY2sgPT0gdHJhY2ViYWNrOgotICAgICAgICAg
ICAgICAgIG50cmFjZWJhY2sgPSBudHJhY2ViYWNrLmN1dChwYXRoPXBhdGgpCi0gICAgICAgICAg
ICAgICAgaWYgbnRyYWNlYmFjayA9PSB0cmFjZWJhY2s6Ci0gICAgICAgICAgICAgICAgICAgICMg
bnRyYWNlYmFjayA9IG50cmFjZWJhY2suY3V0KGV4Y2x1ZGVwYXRoPWN1dGRpcjIpCi0gICAgICAg
ICAgICAgICAgICAgIG50cmFjZWJhY2sgPSBudHJhY2ViYWNrLmZpbHRlcihmaWx0ZXJfdHJhY2Vi
YWNrKQotICAgICAgICAgICAgICAgICAgICBpZiBub3QgbnRyYWNlYmFjazoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG50cmFjZWJhY2sgPSB0cmFjZWJhY2sKLQotICAgICAgICAgICAgZXhjaW5m
by50cmFjZWJhY2sgPSBudHJhY2ViYWNrLmZpbHRlcigpCi0gICAgICAgICAgICAjIGlzc3VlMzY0
OiBtYXJrIGFsbCBidXQgZmlyc3QgYW5kIGxhc3QgZnJhbWVzIHRvCi0gICAgICAgICAgICAjIG9u
bHkgc2hvdyBhIHNpbmdsZS1saW5lIG1lc3NhZ2UgZm9yIGVhY2ggZnJhbWUKLSAgICAgICAgICAg
IGlmIHNlbGYuY29uZmlnLm9wdGlvbi50YnN0eWxlID09ICJhdXRvIjoKLSAgICAgICAgICAgICAg
ICBpZiBsZW4oZXhjaW5mby50cmFjZWJhY2spID4gMjoKLSAgICAgICAgICAgICAgICAgICAgZm9y
IGVudHJ5IGluIGV4Y2luZm8udHJhY2ViYWNrWzE6LTFdOgotICAgICAgICAgICAgICAgICAgICAg
ICAgZW50cnkuc2V0X3JlcHJfc3R5bGUoJ3Nob3J0JykKLQotICAgIGRlZiBfcmVwcl9mYWlsdXJl
X3B5KHNlbGYsIGV4Y2luZm8sIHN0eWxlPSJsb25nIik6Ci0gICAgICAgIGlmIGV4Y2luZm8uZXJy
aXNpbnN0YW5jZShmYWlsLkV4Y2VwdGlvbik6Ci0gICAgICAgICAgICBpZiBub3QgZXhjaW5mby52
YWx1ZS5weXRyYWNlOgotICAgICAgICAgICAgICAgIHJldHVybiBweS5fYnVpbHRpbi5fdG90ZXh0
KGV4Y2luZm8udmFsdWUpCi0gICAgICAgIHJldHVybiBzdXBlcihGdW5jdGlvbk1peGluLCBzZWxm
KS5fcmVwcl9mYWlsdXJlX3B5KGV4Y2luZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXN0eWxlKQotCi0gICAgZGVmIHJl
cHJfZmFpbHVyZShzZWxmLCBleGNpbmZvLCBvdXRlcnI9Tm9uZSk6Ci0gICAgICAgIGFzc2VydCBv
dXRlcnIgaXMgTm9uZSwgIlhYWCBvdXRlcnIgdXNhZ2UgaXMgZGVwcmVjYXRlZCIKLSAgICAgICAg
c3R5bGUgPSBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZQotICAgICAgICBpZiBzdHlsZSA9PSAi
YXV0byI6Ci0gICAgICAgICAgICBzdHlsZSA9ICJsb25nIgotICAgICAgICByZXR1cm4gc2VsZi5f
cmVwcl9mYWlsdXJlX3B5KGV4Y2luZm8sIHN0eWxlPXN0eWxlKQotCi0KLWNsYXNzIEdlbmVyYXRv
cihGdW5jdGlvbk1peGluLCBQeUNvbGxlY3Rvcik6Ci0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0g
ICAgICAgICMgdGVzdCBnZW5lcmF0b3JzIGFyZSBzZWVuIGFzIGNvbGxlY3RvcnMgYnV0IHRoZXkg
YWxzbwotICAgICAgICAjIGludm9rZSBzZXR1cC90ZWFyZG93biBvbiBwb3B1bGFyIHJlcXVlc3QK
LSAgICAgICAgIyAoaW5kdWNlZCBieSB0aGUgY29tbW9uICJ0ZXN0XyoiIG5hbWluZyBzaGFyZWQg
d2l0aCBub3JtYWwgdGVzdHMpCi0gICAgICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRl
ZAotICAgICAgICBzZWxmLnNlc3Npb24uX3NldHVwc3RhdGUucHJlcGFyZShzZWxmKQotICAgICAg
ICAjIHNlZSBGdW5jdGlvbk1peGluLnNldHVwIGFuZCB0ZXN0X3NldHVwc3RhdGVfaXNfcHJlc2Vy
dmVkXzEzNAotICAgICAgICBzZWxmLl9wcmVzZXJ2ZWRwYXJlbnQgPSBzZWxmLnBhcmVudC5vYmoK
LSAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgc2VlbiA9IHt9Ci0gICAgICAgIGZvciBpLCB4
IGluIGVudW1lcmF0ZShzZWxmLm9iaigpKToKLSAgICAgICAgICAgIG5hbWUsIGNhbGwsIGFyZ3Mg
PSBzZWxmLmdldGNhbGxhcmdzKHgpCi0gICAgICAgICAgICBpZiBub3QgY2FsbGFibGUoY2FsbCk6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCIlciB5aWVsZGVkIG5vbiBjYWxsYWJs
ZSB0ZXN0ICVyIiAlIChzZWxmLm9iaiwgY2FsbCwpKQotICAgICAgICAgICAgaWYgbmFtZSBpcyBO
b25lOgotICAgICAgICAgICAgICAgIG5hbWUgPSAiWyVkXSIgJSBpCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIG5hbWUgPSAiWyclcyddIiAlIG5hbWUKLSAgICAgICAgICAgIGlm
IG5hbWUgaW4gc2VlbjoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIlciBnZW5l
cmF0ZWQgdGVzdHMgd2l0aCBub24tdW5pcXVlIG5hbWUgJXIiICUgKHNlbGYsIG5hbWUpKQotICAg
ICAgICAgICAgc2VlbltuYW1lXSA9IFRydWUKLSAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoc2Vs
Zi5GdW5jdGlvbihuYW1lLCBzZWxmLCBhcmdzPWFyZ3MsIGNhbGxvYmo9Y2FsbCkpCi0gICAgICAg
IHNlbGYud2FybignQzEnLCBkZXByZWNhdGVkLllJRUxEX1RFU1RTKQotICAgICAgICByZXR1cm4g
dmFsdWVzCi0KLSAgICBkZWYgZ2V0Y2FsbGFyZ3Moc2VsZiwgb2JqKToKLSAgICAgICAgaWYgbm90
IGlzaW5zdGFuY2Uob2JqLCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAgICAgIG9iaiA9IChvYmos
KQotICAgICAgICAjIGV4cGxpY2l0IG5hbWluZwotICAgICAgICBpZiBpc2luc3RhbmNlKG9ialsw
XSwgc2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAgICAgICBuYW1lID0gb2JqWzBdCi0gICAgICAg
ICAgICBvYmogPSBvYmpbMTpdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBuYW1lID0gTm9u
ZQotICAgICAgICBjYWxsLCBhcmdzID0gb2JqWzBdLCBvYmpbMTpdCi0gICAgICAgIHJldHVybiBu
YW1lLCBjYWxsLCBhcmdzCi0KLQotZGVmIGhhc2luaXQob2JqKToKLSAgICBpbml0ID0gZ2V0YXR0
cihvYmosICdfX2luaXRfXycsIE5vbmUpCi0gICAgaWYgaW5pdDoKLSAgICAgICAgcmV0dXJuIGlu
aXQgIT0gb2JqZWN0Ll9faW5pdF9fCi0KLQotZGVmIGhhc25ldyhvYmopOgotICAgIG5ldyA9IGdl
dGF0dHIob2JqLCAnX19uZXdfXycsIE5vbmUpCi0gICAgaWYgbmV3OgotICAgICAgICByZXR1cm4g
bmV3ICE9IG9iamVjdC5fX25ld19fCi0KLQotY2xhc3MgQ2FsbFNwZWMyKG9iamVjdCk6Ci0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG1ldGFmdW5jKToKLSAgICAgICAgc2VsZi5tZXRhZnVuYyA9IG1l
dGFmdW5jCi0gICAgICAgIHNlbGYuZnVuY2FyZ3MgPSB7fQotICAgICAgICBzZWxmLl9pZGxpc3Qg
PSBbXQotICAgICAgICBzZWxmLnBhcmFtcyA9IHt9Ci0gICAgICAgIHNlbGYuX2dsb2JhbGlkID0g
Tk9UU0VUCi0gICAgICAgIHNlbGYuX2dsb2JhbGlkX2FyZ3MgPSBzZXQoKQotICAgICAgICBzZWxm
Ll9nbG9iYWxwYXJhbSA9IE5PVFNFVAotICAgICAgICBzZWxmLl9hcmcyc2NvcGVudW0gPSB7fSAg
IyB1c2VkIGZvciBzb3J0aW5nIHBhcmFtZXRyaXplZCByZXNvdXJjZXMKLSAgICAgICAgc2VsZi5t
YXJrcyA9IFtdCi0gICAgICAgIHNlbGYuaW5kaWNlcyA9IHt9Ci0KLSAgICBkZWYgY29weShzZWxm
LCBtZXRhZnVuYyk6Ci0gICAgICAgIGNzID0gQ2FsbFNwZWMyKHNlbGYubWV0YWZ1bmMpCi0gICAg
ICAgIGNzLmZ1bmNhcmdzLnVwZGF0ZShzZWxmLmZ1bmNhcmdzKQotICAgICAgICBjcy5wYXJhbXMu
dXBkYXRlKHNlbGYucGFyYW1zKQotICAgICAgICBjcy5tYXJrcy5leHRlbmQoc2VsZi5tYXJrcykK
LSAgICAgICAgY3MuaW5kaWNlcy51cGRhdGUoc2VsZi5pbmRpY2VzKQotICAgICAgICBjcy5fYXJn
MnNjb3BlbnVtLnVwZGF0ZShzZWxmLl9hcmcyc2NvcGVudW0pCi0gICAgICAgIGNzLl9pZGxpc3Qg
PSBsaXN0KHNlbGYuX2lkbGlzdCkKLSAgICAgICAgY3MuX2dsb2JhbGlkID0gc2VsZi5fZ2xvYmFs
aWQKLSAgICAgICAgY3MuX2dsb2JhbGlkX2FyZ3MgPSBzZWxmLl9nbG9iYWxpZF9hcmdzCi0gICAg
ICAgIGNzLl9nbG9iYWxwYXJhbSA9IHNlbGYuX2dsb2JhbHBhcmFtCi0gICAgICAgIHJldHVybiBj
cwotCi0gICAgZGVmIF9jaGVja2FyZ25vdGNvbnRhaW5lZChzZWxmLCBhcmcpOgotICAgICAgICBp
ZiBhcmcgaW4gc2VsZi5wYXJhbXMgb3IgYXJnIGluIHNlbGYuZnVuY2FyZ3M6Ci0gICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJkdXBsaWNhdGUgJXIiICUgKGFyZywpKQotCi0gICAgZGVmIGdl
dHBhcmFtKHNlbGYsIG5hbWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2Vs
Zi5wYXJhbXNbbmFtZV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgaWYg
c2VsZi5fZ2xvYmFscGFyYW0gaXMgTk9UU0VUOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IobmFtZSkKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9nbG9iYWxwYXJhbQotCi0gICAg
QHByb3BlcnR5Ci0gICAgZGVmIGlkKHNlbGYpOgotICAgICAgICByZXR1cm4gIi0iLmpvaW4obWFw
KHN0ciwgZmlsdGVyKE5vbmUsIHNlbGYuX2lkbGlzdCkpKQotCi0gICAgZGVmIHNldG11bHRpMihz
ZWxmLCB2YWx0eXBlcywgYXJnbmFtZXMsIHZhbHNldCwgaWQsIG1hcmtzLCBzY29wZW51bSwKLSAg
ICAgICAgICAgICAgICAgIHBhcmFtX2luZGV4KToKLSAgICAgICAgZm9yIGFyZywgdmFsIGluIHpp
cChhcmduYW1lcywgdmFsc2V0KToKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrYXJnbm90Y29udGFp
bmVkKGFyZykKLSAgICAgICAgICAgIHZhbHR5cGVfZm9yX2FyZyA9IHZhbHR5cGVzW2FyZ10KLSAg
ICAgICAgICAgIGdldGF0dHIoc2VsZiwgdmFsdHlwZV9mb3JfYXJnKVthcmddID0gdmFsCi0gICAg
ICAgICAgICBzZWxmLmluZGljZXNbYXJnXSA9IHBhcmFtX2luZGV4Ci0gICAgICAgICAgICBzZWxm
Ll9hcmcyc2NvcGVudW1bYXJnXSA9IHNjb3BlbnVtCi0gICAgICAgIHNlbGYuX2lkbGlzdC5hcHBl
bmQoaWQpCi0gICAgICAgIHNlbGYubWFya3MuZXh0ZW5kKG1hcmtzKQotCi0gICAgZGVmIHNldGFs
bChzZWxmLCBmdW5jYXJncywgaWQsIHBhcmFtKToKLSAgICAgICAgZm9yIHggaW4gZnVuY2FyZ3M6
Ci0gICAgICAgICAgICBzZWxmLl9jaGVja2FyZ25vdGNvbnRhaW5lZCh4KQotICAgICAgICBzZWxm
LmZ1bmNhcmdzLnVwZGF0ZShmdW5jYXJncykKLSAgICAgICAgaWYgaWQgaXMgbm90IE5PVFNFVDoK
LSAgICAgICAgICAgIHNlbGYuX2lkbGlzdC5hcHBlbmQoaWQpCi0gICAgICAgIGlmIHBhcmFtIGlz
IG5vdCBOT1RTRVQ6Ci0gICAgICAgICAgICBhc3NlcnQgc2VsZi5fZ2xvYmFscGFyYW0gaXMgTk9U
U0VUCi0gICAgICAgICAgICBzZWxmLl9nbG9iYWxwYXJhbSA9IHBhcmFtCi0gICAgICAgIGZvciBh
cmcgaW4gZnVuY2FyZ3M6Ci0gICAgICAgICAgICBzZWxmLl9hcmcyc2NvcGVudW1bYXJnXSA9IGZp
eHR1cmVzLnNjb3BlbnVtX2Z1bmN0aW9uCi0KLQotY2xhc3MgTWV0YWZ1bmMoZml4dHVyZXMuRnVu
Y2FyZ25hbWVzQ29tcGF0QXR0cik6Ci0gICAgIiIiCi0gICAgTWV0YWZ1bmMgb2JqZWN0cyBhcmUg
cGFzc2VkIHRvIHRoZSBgYHB5dGVzdF9nZW5lcmF0ZV90ZXN0c2BgIGhvb2suCi0gICAgVGhleSBo
ZWxwIHRvIGluc3BlY3QgYSB0ZXN0IGZ1bmN0aW9uIGFuZCB0byBnZW5lcmF0ZSB0ZXN0cyBhY2Nv
cmRpbmcgdG8KLSAgICB0ZXN0IGNvbmZpZ3VyYXRpb24gb3IgdmFsdWVzIHNwZWNpZmllZCBpbiB0
aGUgY2xhc3Mgb3IgbW9kdWxlIHdoZXJlIGEKLSAgICB0ZXN0IGZ1bmN0aW9uIGlzIGRlZmluZWQu
Ci0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb24sIGZpeHR1cmVpbmZv
LCBjb25maWcsIGNscz1Ob25lLCBtb2R1bGU9Tm9uZSk6Ci0gICAgICAgICM6IGFjY2VzcyB0byB0
aGUgOmNsYXNzOmBfcHl0ZXN0LmNvbmZpZy5Db25maWdgIG9iamVjdCBmb3IgdGhlIHRlc3Qgc2Vz
c2lvbgotICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwotCi0gICAgICAgICM6IHRoZSBtb2R1
bGUgb2JqZWN0IHdoZXJlIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGRlZmluZWQgaW4uCi0gICAgICAg
IHNlbGYubW9kdWxlID0gbW9kdWxlCi0KLSAgICAgICAgIzogdW5kZXJseWluZyBweXRob24gdGVz
dCBmdW5jdGlvbgotICAgICAgICBzZWxmLmZ1bmN0aW9uID0gZnVuY3Rpb24KLQotICAgICAgICAj
OiBzZXQgb2YgZml4dHVyZSBuYW1lcyByZXF1aXJlZCBieSB0aGUgdGVzdCBmdW5jdGlvbgotICAg
ICAgICBzZWxmLmZpeHR1cmVuYW1lcyA9IGZpeHR1cmVpbmZvLm5hbWVzX2Nsb3N1cmUKLQotICAg
ICAgICAjOiBjbGFzcyBvYmplY3Qgd2hlcmUgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZGVmaW5lZCBp
biBvciBgYE5vbmVgYC4KLSAgICAgICAgc2VsZi5jbHMgPSBjbHMKLQotICAgICAgICBzZWxmLl9j
YWxscyA9IFtdCi0gICAgICAgIHNlbGYuX2lkcyA9IHNldCgpCi0gICAgICAgIHNlbGYuX2FyZzJm
aXh0dXJlZGVmcyA9IGZpeHR1cmVpbmZvLm5hbWUyZml4dHVyZWRlZnMKLQotICAgIGRlZiBwYXJh
bWV0cml6ZShzZWxmLCBhcmduYW1lcywgYXJndmFsdWVzLCBpbmRpcmVjdD1GYWxzZSwgaWRzPU5v
bmUsCi0gICAgICAgICAgICAgICAgICAgIHNjb3BlPU5vbmUpOgotICAgICAgICAiIiIgQWRkIG5l
dyBpbnZvY2F0aW9ucyB0byB0aGUgdW5kZXJseWluZyB0ZXN0IGZ1bmN0aW9uIHVzaW5nIHRoZSBs
aXN0Ci0gICAgICAgIG9mIGFyZ3ZhbHVlcyBmb3IgdGhlIGdpdmVuIGFyZ25hbWVzLiAgUGFyYW1l
dHJpemF0aW9uIGlzIHBlcmZvcm1lZAotICAgICAgICBkdXJpbmcgdGhlIGNvbGxlY3Rpb24gcGhh
c2UuICBJZiB5b3UgbmVlZCB0byBzZXR1cCBleHBlbnNpdmUgcmVzb3VyY2VzCi0gICAgICAgIHNl
ZSBhYm91dCBzZXR0aW5nIGluZGlyZWN0IHRvIGRvIGl0IHJhdGhlciBhdCB0ZXN0IHNldHVwIHRp
bWUuCi0KLSAgICAgICAgOmFyZyBhcmduYW1lczogYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nIGRl
bm90aW5nIG9uZSBvciBtb3JlIGFyZ3VtZW50Ci0gICAgICAgICAgICAgICAgICAgICAgIG5hbWVz
LCBvciBhIGxpc3QvdHVwbGUgb2YgYXJndW1lbnQgc3RyaW5ncy4KLQotICAgICAgICA6YXJnIGFy
Z3ZhbHVlczogVGhlIGxpc3Qgb2YgYXJndmFsdWVzIGRldGVybWluZXMgaG93IG9mdGVuIGEKLSAg
ICAgICAgICAgIHRlc3QgaXMgaW52b2tlZCB3aXRoIGRpZmZlcmVudCBhcmd1bWVudCB2YWx1ZXMu
ICBJZiBvbmx5IG9uZQotICAgICAgICAgICAgYXJnbmFtZSB3YXMgc3BlY2lmaWVkIGFyZ3ZhbHVl
cyBpcyBhIGxpc3Qgb2YgdmFsdWVzLiAgSWYgTgotICAgICAgICAgICAgYXJnbmFtZXMgd2VyZSBz
cGVjaWZpZWQsIGFyZ3ZhbHVlcyBtdXN0IGJlIGEgbGlzdCBvZiBOLXR1cGxlcywKLSAgICAgICAg
ICAgIHdoZXJlIGVhY2ggdHVwbGUtZWxlbWVudCBzcGVjaWZpZXMgYSB2YWx1ZSBmb3IgaXRzIHJl
c3BlY3RpdmUKLSAgICAgICAgICAgIGFyZ25hbWUuCi0KLSAgICAgICAgOmFyZyBpbmRpcmVjdDog
VGhlIGxpc3Qgb2YgYXJnbmFtZXMgb3IgYm9vbGVhbi4gQSBsaXN0IG9mIGFyZ3VtZW50cycKLSAg
ICAgICAgICAgIG5hbWVzIChzdWJzZXQgb2YgYXJnbmFtZXMpLiBJZiBUcnVlIHRoZSBsaXN0IGNv
bnRhaW5zIGFsbCBuYW1lcyBmcm9tCi0gICAgICAgICAgICB0aGUgYXJnbmFtZXMuIEVhY2ggYXJn
dmFsdWUgY29ycmVzcG9uZGluZyB0byBhbiBhcmduYW1lIGluIHRoaXMgbGlzdCB3aWxsCi0gICAg
ICAgICAgICBiZSBwYXNzZWQgYXMgcmVxdWVzdC5wYXJhbSB0byBpdHMgcmVzcGVjdGl2ZSBhcmdu
YW1lIGZpeHR1cmUKLSAgICAgICAgICAgIGZ1bmN0aW9uIHNvIHRoYXQgaXQgY2FuIHBlcmZvcm0g
bW9yZSBleHBlbnNpdmUgc2V0dXBzIGR1cmluZyB0aGUKLSAgICAgICAgICAgIHNldHVwIHBoYXNl
IG9mIGEgdGVzdCByYXRoZXIgdGhhbiBhdCBjb2xsZWN0aW9uIHRpbWUuCi0KLSAgICAgICAgOmFy
ZyBpZHM6IGxpc3Qgb2Ygc3RyaW5nIGlkcywgb3IgYSBjYWxsYWJsZS4KLSAgICAgICAgICAgIElm
IHN0cmluZ3MsIGVhY2ggaXMgY29ycmVzcG9uZGluZyB0byB0aGUgYXJndmFsdWVzIHNvIHRoYXQg
dGhleSBhcmUKLSAgICAgICAgICAgIHBhcnQgb2YgdGhlIHRlc3QgaWQuIElmIE5vbmUgaXMgZ2l2
ZW4gYXMgaWQgb2Ygc3BlY2lmaWMgdGVzdCwgdGhlCi0gICAgICAgICAgICBhdXRvbWF0aWNhbGx5
IGdlbmVyYXRlZCBpZCBmb3IgdGhhdCBhcmd1bWVudCB3aWxsIGJlIHVzZWQuCi0gICAgICAgICAg
ICBJZiBjYWxsYWJsZSwgaXQgc2hvdWxkIHRha2Ugb25lIGFyZ3VtZW50IChhIHNpbmdsZSBhcmd2
YWx1ZSkgYW5kIHJldHVybgotICAgICAgICAgICAgYSBzdHJpbmcgb3IgcmV0dXJuIE5vbmUuIElm
IE5vbmUsIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBpZCBmb3IgdGhhdAotICAgICAgICAg
ICAgYXJndW1lbnQgd2lsbCBiZSB1c2VkLgotICAgICAgICAgICAgSWYgbm8gaWRzIGFyZSBwcm92
aWRlZCB0aGV5IHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbQotICAgICAgICAg
ICAgdGhlIGFyZ3ZhbHVlcy4KLQotICAgICAgICA6YXJnIHNjb3BlOiBpZiBzcGVjaWZpZWQgaXQg
ZGVub3RlcyB0aGUgc2NvcGUgb2YgdGhlIHBhcmFtZXRlcnMuCi0gICAgICAgICAgICBUaGUgc2Nv
cGUgaXMgdXNlZCBmb3IgZ3JvdXBpbmcgdGVzdHMgYnkgcGFyYW1ldGVyIGluc3RhbmNlcy4KLSAg
ICAgICAgICAgIEl0IHdpbGwgYWxzbyBvdmVycmlkZSBhbnkgZml4dHVyZS1mdW5jdGlvbiBkZWZp
bmVkIHNjb3BlLCBhbGxvd2luZwotICAgICAgICAgICAgdG8gc2V0IGEgZHluYW1pYyBzY29wZSB1
c2luZyB0ZXN0IGNvbnRleHQgb3IgY29uZmlndXJhdGlvbi4KLSAgICAgICAgIiIiCi0gICAgICAg
IGZyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgc2NvcGUyaW5kZXgKLSAgICAgICAgZnJvbSBf
cHl0ZXN0Lm1hcmsgaW1wb3J0IFBhcmFtZXRlclNldAotICAgICAgICBmcm9tIHB5LmlvIGltcG9y
dCBzYWZlcmVwcgotICAgICAgICBhcmduYW1lcywgcGFyYW1ldGVycyA9IFBhcmFtZXRlclNldC5f
Zm9yX3BhcmFtZXRlcml6ZSgKLSAgICAgICAgICAgIGFyZ25hbWVzLCBhcmd2YWx1ZXMsIHNlbGYu
ZnVuY3Rpb24pCi0gICAgICAgIGRlbCBhcmd2YWx1ZXMKLQotICAgICAgICBpZiBzY29wZSBpcyBO
b25lOgotICAgICAgICAgICAgc2NvcGUgPSBfZmluZF9wYXJhbWV0cml6ZWRfc2NvcGUoYXJnbmFt
ZXMsIHNlbGYuX2FyZzJmaXh0dXJlZGVmcywgaW5kaXJlY3QpCi0KLSAgICAgICAgc2NvcGVudW0g
PSBzY29wZTJpbmRleChzY29wZSwgZGVzY3I9J2NhbGwgdG8gezB9Jy5mb3JtYXQoc2VsZi5wYXJh
bWV0cml6ZSkpCi0gICAgICAgIHZhbHR5cGVzID0ge30KLSAgICAgICAgZm9yIGFyZyBpbiBhcmdu
YW1lczoKLSAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gc2VsZi5maXh0dXJlbmFtZXM6Ci0gICAg
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpbmRpcmVjdCwgKHR1cGxlLCBsaXN0KSk6Ci0gICAg
ICAgICAgICAgICAgICAgIG5hbWUgPSAnZml4dHVyZScgaWYgYXJnIGluIGluZGlyZWN0IGVsc2Ug
J2FyZ3VtZW50JwotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIG5h
bWUgPSAnZml4dHVyZScgaWYgaW5kaXJlY3QgZWxzZSAnYXJndW1lbnQnCi0gICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgIiVyIHVzZXMgbm8gJXMg
JXIiICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbiwgbmFtZSwgYXJn
KSkKLQotICAgICAgICBpZiBpbmRpcmVjdCBpcyBUcnVlOgotICAgICAgICAgICAgdmFsdHlwZXMg
PSBkaWN0LmZyb21rZXlzKGFyZ25hbWVzLCAicGFyYW1zIikKLSAgICAgICAgZWxpZiBpbmRpcmVj
dCBpcyBGYWxzZToKLSAgICAgICAgICAgIHZhbHR5cGVzID0gZGljdC5mcm9ta2V5cyhhcmduYW1l
cywgImZ1bmNhcmdzIikKLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKGluZGlyZWN0LCAodHVwbGUs
IGxpc3QpKToKLSAgICAgICAgICAgIHZhbHR5cGVzID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywg
ImZ1bmNhcmdzIikKLSAgICAgICAgICAgIGZvciBhcmcgaW4gaW5kaXJlY3Q6Ci0gICAgICAgICAg
ICAgICAgaWYgYXJnIG5vdCBpbiBhcmduYW1lczoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigiaW5kaXJlY3QgZ2l2ZW4gdG8gJXI6IGZpeHR1cmUgJXIgZG9lc24ndCBleGlz
dCIgJSAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlv
biwgYXJnKSkKLSAgICAgICAgICAgICAgICB2YWx0eXBlc1thcmddID0gInBhcmFtcyIKLSAgICAg
ICAgaWRmbiA9IE5vbmUKLSAgICAgICAgaWYgY2FsbGFibGUoaWRzKToKLSAgICAgICAgICAgIGlk
Zm4gPSBpZHMKLSAgICAgICAgICAgIGlkcyA9IE5vbmUKLSAgICAgICAgaWYgaWRzOgotICAgICAg
ICAgICAgaWYgbGVuKGlkcykgIT0gbGVuKHBhcmFtZXRlcnMpOgotICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJyVkIHRlc3RzIHNwZWNpZmllZCB3aXRoICVkIGlkcycgJSAoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4ocGFyYW1ldGVycyksIGxlbihpZHMpKSkK
LSAgICAgICAgICAgIGZvciBpZF92YWx1ZSBpbiBpZHM6Ci0gICAgICAgICAgICAgICAgaWYgaWRf
dmFsdWUgaXMgbm90IE5vbmUgYW5kIG5vdCBpc2luc3RhbmNlKGlkX3ZhbHVlLCBzaXguc3RyaW5n
X3R5cGVzKToKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gJ2lkcyBtdXN0IGJlIGxpc3Qgb2Yg
c3RyaW5ncywgZm91bmQ6ICVzICh0eXBlOiAlcyknCi0gICAgICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IobXNnICUgKHNhZmVyZXByKGlkX3ZhbHVlKSwgdHlwZShpZF92YWx1ZSkuX19u
YW1lX18pKQotICAgICAgICBpZHMgPSBpZG1ha2VyKGFyZ25hbWVzLCBwYXJhbWV0ZXJzLCBpZGZu
LCBpZHMsIHNlbGYuY29uZmlnKQotICAgICAgICBuZXdjYWxscyA9IFtdCi0gICAgICAgIGZvciBj
YWxsc3BlYyBpbiBzZWxmLl9jYWxscyBvciBbQ2FsbFNwZWMyKHNlbGYpXToKLSAgICAgICAgICAg
IGVsZW1lbnRzID0gemlwKGlkcywgcGFyYW1ldGVycywgY291bnQoKSkKLSAgICAgICAgICAgIGZv
ciBhX2lkLCBwYXJhbSwgcGFyYW1faW5kZXggaW4gZWxlbWVudHM6Ci0gICAgICAgICAgICAgICAg
aWYgbGVuKHBhcmFtLnZhbHVlcykgIT0gbGVuKGFyZ25hbWVzKToKLSAgICAgICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICdJbiAicGFyYW1l
dHJpemUiIHRoZSBudW1iZXIgb2YgdmFsdWVzICh7MH0pIG11c3QgYmUgJwotICAgICAgICAgICAg
ICAgICAgICAgICAgJ2VxdWFsIHRvIHRoZSBudW1iZXIgb2YgbmFtZXMgKHsxfSknLmZvcm1hdCgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbS52YWx1ZXMsIGFyZ25hbWVzKSkKLSAg
ICAgICAgICAgICAgICBuZXdjYWxsc3BlYyA9IGNhbGxzcGVjLmNvcHkoc2VsZikKLSAgICAgICAg
ICAgICAgICBuZXdjYWxsc3BlYy5zZXRtdWx0aTIodmFsdHlwZXMsIGFyZ25hbWVzLCBwYXJhbS52
YWx1ZXMsIGFfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFt
Lm1hcmtzLCBzY29wZW51bSwgcGFyYW1faW5kZXgpCi0gICAgICAgICAgICAgICAgbmV3Y2FsbHMu
YXBwZW5kKG5ld2NhbGxzcGVjKQotICAgICAgICBzZWxmLl9jYWxscyA9IG5ld2NhbGxzCi0KLSAg
ICBkZWYgYWRkY2FsbChzZWxmLCBmdW5jYXJncz1Ob25lLCBpZD1OT1RTRVQsIHBhcmFtPU5PVFNF
VCk6Ci0gICAgICAgICIiIiBBZGQgYSBuZXcgY2FsbCB0byB0aGUgdW5kZXJseWluZyB0ZXN0IGZ1
bmN0aW9uIGR1cmluZyB0aGUgY29sbGVjdGlvbiBwaGFzZSBvZiBhIHRlc3QgcnVuLgotCi0gICAg
ICAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKLQotICAgICAgICAgICAgVXNlIDptZXRoOmBwYXJhbWV0
cml6ZWAgaW5zdGVhZC4KLQotICAgICAgICBOb3RlIHRoYXQgcmVxdWVzdC5hZGRjYWxsKCkgaXMg
Y2FsbGVkIGR1cmluZyB0aGUgdGVzdCBjb2xsZWN0aW9uIHBoYXNlIHByaW9yIGFuZAotICAgICAg
ICBpbmRlcGVuZGVudGx5IHRvIGFjdHVhbCB0ZXN0IGV4ZWN1dGlvbi4gIFlvdSBzaG91bGQgb25s
eSB1c2UgYWRkY2FsbCgpCi0gICAgICAgIGlmIHlvdSBuZWVkIHRvIHNwZWNpZnkgbXVsdGlwbGUg
YXJndW1lbnRzIG9mIGEgdGVzdCBmdW5jdGlvbi4KLQotICAgICAgICA6YXJnIGZ1bmNhcmdzOiBh
cmd1bWVudCBrZXl3b3JkIGRpY3Rpb25hcnkgdXNlZCB3aGVuIGludm9raW5nCi0gICAgICAgICAg
ICB0aGUgdGVzdCBmdW5jdGlvbi4KLQotICAgICAgICA6YXJnIGlkOiB1c2VkIGZvciByZXBvcnRp
bmcgYW5kIGlkZW50aWZpY2F0aW9uIHB1cnBvc2VzLiAgSWYgeW91Ci0gICAgICAgICAgICBkb24n
dCBzdXBwbHkgYW4gYGlkYCBhbiBhdXRvbWF0aWMgdW5pcXVlIGlkIHdpbGwgYmUgZ2VuZXJhdGVk
LgotCi0gICAgICAgIDphcmcgcGFyYW06IGEgcGFyYW1ldGVyIHdoaWNoIHdpbGwgYmUgZXhwb3Nl
ZCB0byBhIGxhdGVyIGZpeHR1cmUgZnVuY3Rpb24KLSAgICAgICAgICAgIGludm9jYXRpb24gdGhy
b3VnaCB0aGUgYGByZXF1ZXN0LnBhcmFtYGAgYXR0cmlidXRlLgotICAgICAgICAiIiIKLSAgICAg
ICAgaWYgc2VsZi5jb25maWc6Ci0gICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJuKCdDMScsIG1l
c3NhZ2U9ZGVwcmVjYXRlZC5NRVRBRlVOQ19BRERfQ0FMTCwgZnNsb2NhdGlvbj1Ob25lKQotICAg
ICAgICBhc3NlcnQgZnVuY2FyZ3MgaXMgTm9uZSBvciBpc2luc3RhbmNlKGZ1bmNhcmdzLCBkaWN0
KQotICAgICAgICBpZiBmdW5jYXJncyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZvciBuYW1l
IGluIGZ1bmNhcmdzOgotICAgICAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYuZml4dHVy
ZW5hbWVzOgotICAgICAgICAgICAgICAgICAgICBmYWlsKCJmdW5jYXJnICVyIG5vdCB1c2VkIGlu
IHRoaXMgZnVuY3Rpb24uIiAlIG5hbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmdW5j
YXJncyA9IHt9Ci0gICAgICAgIGlmIGlkIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCJpZD1Ob25lIG5vdCBhbGxvd2VkIikKLSAgICAgICAgaWYgaWQgaXMgTk9UU0VUOgot
ICAgICAgICAgICAgaWQgPSBsZW4oc2VsZi5fY2FsbHMpCi0gICAgICAgIGlkID0gc3RyKGlkKQot
ICAgICAgICBpZiBpZCBpbiBzZWxmLl9pZHM6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJkdXBsaWNhdGUgaWQgJXIiICUgaWQpCi0gICAgICAgIHNlbGYuX2lkcy5hZGQoaWQpCi0KLSAg
ICAgICAgY3MgPSBDYWxsU3BlYzIoc2VsZikKLSAgICAgICAgY3Muc2V0YWxsKGZ1bmNhcmdzLCBp
ZCwgcGFyYW0pCi0gICAgICAgIHNlbGYuX2NhbGxzLmFwcGVuZChjcykKLQotCi1kZWYgX2ZpbmRf
cGFyYW1ldHJpemVkX3Njb3BlKGFyZ25hbWVzLCBhcmcyZml4dHVyZWRlZnMsIGluZGlyZWN0KToK
LSAgICAiIiJGaW5kIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHNjb3BlIGZvciBhIHBhcmFtZXRyaXpl
ZCBjYWxsIGJhc2VkIG9uIGl0cyBhcmd1bWVudHMuCi0KLSAgICBXaGVuIHRoZXJlJ3MgYXQgbGVh
c3Qgb25lIGRpcmVjdCBhcmd1bWVudCwgYWx3YXlzIHVzZSAiZnVuY3Rpb24iIHNjb3BlLgotCi0g
ICAgV2hlbiBhIHRlc3QgZnVuY3Rpb24gaXMgcGFyYW1ldHJpemVkIGFuZCBhbGwgaXRzIGFyZ3Vt
ZW50cyBhcmUgaW5kaXJlY3QKLSAgICAoZS5nLiBmaXh0dXJlcyksIHJldHVybiB0aGUgbW9zdCBu
YXJyb3cgc2NvcGUgYmFzZWQgb24gdGhlIGZpeHR1cmVzIHVzZWQuCi0KLSAgICBSZWxhdGVkIHRv
IGlzc3VlICMxODMyLCBiYXNlZCBvbiBjb2RlIHBvc3RlZCBieSBAS2luZ2RyZWFkLgotICAgICIi
IgotICAgIGZyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgc2NvcGVzCi0gICAgaW5kaXJlY3Rf
YXNfbGlzdCA9IGlzaW5zdGFuY2UoaW5kaXJlY3QsIChsaXN0LCB0dXBsZSkpCi0gICAgYWxsX2Fy
Z3VtZW50c19hcmVfZml4dHVyZXMgPSBpbmRpcmVjdCBpcyBUcnVlIG9yIFwKLSAgICAgICAgaW5k
aXJlY3RfYXNfbGlzdCBhbmQgbGVuKGluZGlyZWN0KSA9PSBhcmduYW1lcwotICAgIGlmIGFsbF9h
cmd1bWVudHNfYXJlX2ZpeHR1cmVzOgotICAgICAgICBmaXh0dXJlZGVmcyA9IGFyZzJmaXh0dXJl
ZGVmcyBvciB7fQotICAgICAgICB1c2VkX3Njb3BlcyA9IFtmaXh0dXJlZGVmWzBdLnNjb3BlIGZv
ciBuYW1lLCBmaXh0dXJlZGVmIGluIGZpeHR1cmVkZWZzLml0ZW1zKCldCi0gICAgICAgIGlmIHVz
ZWRfc2NvcGVzOgotICAgICAgICAgICAgIyBUYWtlcyB0aGUgbW9zdCBuYXJyb3cgc2NvcGUgZnJv
bSB1c2VkIGZpeHR1cmVzCi0gICAgICAgICAgICBmb3Igc2NvcGUgaW4gcmV2ZXJzZWQoc2NvcGVz
KToKLSAgICAgICAgICAgICAgICBpZiBzY29wZSBpbiB1c2VkX3Njb3BlczoKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHNjb3BlCi0KLSAgICByZXR1cm4gJ2Z1bmN0aW9uJwotCi0KLWRlZiBf
aWR2YWwodmFsLCBhcmduYW1lLCBpZHgsIGlkZm4sIGNvbmZpZz1Ob25lKToKLSAgICBpZiBpZGZu
OgotICAgICAgICBzID0gTm9uZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzID0gaWRmbih2
YWwpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAjIFNlZSBpc3N1ZSBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIxNjkKLSAgICAgICAg
ICAgIGltcG9ydCB3YXJuaW5ncwotICAgICAgICAgICAgbXNnID0gIlJhaXNlZCB3aGlsZSB0cnlp
bmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBhcmFtZXRlciAlcyBhdCBwb3NpdGlvbiAlZC4iICUgKGFy
Z25hbWUsIGlkeCkKLSAgICAgICAgICAgIG1zZyArPSAnXG5VcGRhdGUgeW91ciBjb2RlIGFzIHRo
aXMgd2lsbCByYWlzZSBhbiBlcnJvciBpbiBweXRlc3QtNC4wLicKLSAgICAgICAgICAgIHdhcm5p
bmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcpCi0gICAgICAgIGlmIHM6Ci0gICAgICAg
ICAgICByZXR1cm4gYXNjaWlfZXNjYXBlZChzKQotCi0gICAgaWYgY29uZmlnOgotICAgICAgICBo
b29rX2lkID0gY29uZmlnLmhvb2sucHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQoCi0gICAgICAg
ICAgICBjb25maWc9Y29uZmlnLCB2YWw9dmFsLCBhcmduYW1lPWFyZ25hbWUpCi0gICAgICAgIGlm
IGhvb2tfaWQ6Ci0gICAgICAgICAgICByZXR1cm4gaG9va19pZAotCi0gICAgaWYgaXNpbnN0YW5j
ZSh2YWwsIFNUUklOR19UWVBFUyk6Ci0gICAgICAgIHJldHVybiBhc2NpaV9lc2NhcGVkKHZhbCkK
LSAgICBlbGlmIGlzaW5zdGFuY2UodmFsLCAoZmxvYXQsIGludCwgYm9vbCwgTm9uZVR5cGUpKToK
LSAgICAgICAgcmV0dXJuIHN0cih2YWwpCi0gICAgZWxpZiBpc2luc3RhbmNlKHZhbCwgUkVHRVhf
VFlQRSk6Ci0gICAgICAgIHJldHVybiBhc2NpaV9lc2NhcGVkKHZhbC5wYXR0ZXJuKQotICAgIGVs
aWYgZW51bSBpcyBub3QgTm9uZSBhbmQgaXNpbnN0YW5jZSh2YWwsIGVudW0uRW51bSk6Ci0gICAg
ICAgIHJldHVybiBzdHIodmFsKQotICAgIGVsaWYgaXNjbGFzcyh2YWwpIGFuZCBoYXNhdHRyKHZh
bCwgJ19fbmFtZV9fJyk6Ci0gICAgICAgIHJldHVybiB2YWwuX19uYW1lX18KLSAgICByZXR1cm4g
c3RyKGFyZ25hbWUpICsgc3RyKGlkeCkKLQotCi1kZWYgX2lkdmFsc2V0KGlkeCwgcGFyYW1ldGVy
c2V0LCBhcmduYW1lcywgaWRmbiwgaWRzLCBjb25maWc9Tm9uZSk6Ci0gICAgaWYgcGFyYW1ldGVy
c2V0LmlkIGlzIG5vdCBOb25lOgotICAgICAgICByZXR1cm4gcGFyYW1ldGVyc2V0LmlkCi0gICAg
aWYgaWRzIGlzIE5vbmUgb3IgKGlkeCA+PSBsZW4oaWRzKSBvciBpZHNbaWR4XSBpcyBOb25lKToK
LSAgICAgICAgdGhpc19pZCA9IFtfaWR2YWwodmFsLCBhcmduYW1lLCBpZHgsIGlkZm4sIGNvbmZp
ZykKLSAgICAgICAgICAgICAgICAgICBmb3IgdmFsLCBhcmduYW1lIGluIHppcChwYXJhbWV0ZXJz
ZXQudmFsdWVzLCBhcmduYW1lcyldCi0gICAgICAgIHJldHVybiAiLSIuam9pbih0aGlzX2lkKQot
ICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiBhc2NpaV9lc2NhcGVkKGlkc1tpZHhdKQotCi0KLWRl
ZiBpZG1ha2VyKGFyZ25hbWVzLCBwYXJhbWV0ZXJzZXRzLCBpZGZuPU5vbmUsIGlkcz1Ob25lLCBj
b25maWc9Tm9uZSk6Ci0gICAgaWRzID0gW19pZHZhbHNldCh2YWxpbmRleCwgcGFyYW1ldGVyc2V0
LCBhcmduYW1lcywgaWRmbiwgaWRzLCBjb25maWcpCi0gICAgICAgICAgIGZvciB2YWxpbmRleCwg
cGFyYW1ldGVyc2V0IGluIGVudW1lcmF0ZShwYXJhbWV0ZXJzZXRzKV0KLSAgICBpZiBsZW4oc2V0
KGlkcykpICE9IGxlbihpZHMpOgotICAgICAgICAjIFRoZSBpZHMgYXJlIG5vdCB1bmlxdWUKLSAg
ICAgICAgZHVwbGljYXRlcyA9IFt0ZXN0aWQgZm9yIHRlc3RpZCBpbiBpZHMgaWYgaWRzLmNvdW50
KHRlc3RpZCkgPiAxXQotICAgICAgICBjb3VudGVycyA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0
KGxhbWJkYTogMCkKLSAgICAgICAgZm9yIGluZGV4LCB0ZXN0aWQgaW4gZW51bWVyYXRlKGlkcyk6
Ci0gICAgICAgICAgICBpZiB0ZXN0aWQgaW4gZHVwbGljYXRlczoKLSAgICAgICAgICAgICAgICBp
ZHNbaW5kZXhdID0gdGVzdGlkICsgc3RyKGNvdW50ZXJzW3Rlc3RpZF0pCi0gICAgICAgICAgICAg
ICAgY291bnRlcnNbdGVzdGlkXSArPSAxCi0gICAgcmV0dXJuIGlkcwotCi0KLWRlZiBzaG93X2Zp
eHR1cmVzX3Blcl90ZXN0KGNvbmZpZyk6Ci0gICAgZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IHdy
YXBfc2Vzc2lvbgotICAgIHJldHVybiB3cmFwX3Nlc3Npb24oY29uZmlnLCBfc2hvd19maXh0dXJl
c19wZXJfdGVzdCkKLQotCi1kZWYgX3Nob3dfZml4dHVyZXNfcGVyX3Rlc3QoY29uZmlnLCBzZXNz
aW9uKToKLSAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKLSAgICBzZXNzaW9uLnBlcmZvcm1fY29s
bGVjdCgpCi0gICAgY3VyZGlyID0gcHkucGF0aC5sb2NhbCgpCi0gICAgdHcgPSBfcHl0ZXN0LmNv
bmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZykKLSAgICB2ZXJib3NlID0gY29uZmln
LmdldHZhbHVlKCJ2ZXJib3NlIikKLQotICAgIGRlZiBnZXRfYmVzdF9yZWxwYXRoKGZ1bmMpOgot
ICAgICAgICBsb2MgPSBnZXRsb2NhdGlvbihmdW5jLCBjdXJkaXIpCi0gICAgICAgIHJldHVybiBj
dXJkaXIuYmVzdHJlbHBhdGgobG9jKQotCi0gICAgZGVmIHdyaXRlX2ZpeHR1cmUoZml4dHVyZV9k
ZWYpOgotICAgICAgICBhcmduYW1lID0gZml4dHVyZV9kZWYuYXJnbmFtZQotICAgICAgICBpZiB2
ZXJib3NlIDw9IDAgYW5kIGFyZ25hbWUuc3RhcnRzd2l0aCgiXyIpOgotICAgICAgICAgICAgcmV0
dXJuCi0gICAgICAgIGlmIHZlcmJvc2UgPiAwOgotICAgICAgICAgICAgYmVzdHJlbCA9IGdldF9i
ZXN0X3JlbHBhdGgoZml4dHVyZV9kZWYuZnVuYykKLSAgICAgICAgICAgIGZ1bmNhcmdzcGVjID0g
InswfSAtLSB7MX0iLmZvcm1hdChhcmduYW1lLCBiZXN0cmVsKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgZnVuY2FyZ3NwZWMgPSBhcmduYW1lCi0gICAgICAgIHR3LmxpbmUoZnVuY2FyZ3Nw
ZWMsIGdyZWVuPVRydWUpCi0gICAgICAgIGZpeHR1cmVfZG9jID0gZml4dHVyZV9kZWYuZnVuYy5f
X2RvY19fCi0gICAgICAgIGlmIGZpeHR1cmVfZG9jOgotICAgICAgICAgICAgd3JpdGVfZG9jc3Ry
aW5nKHR3LCBmaXh0dXJlX2RvYykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHR3LmxpbmUo
JyAgICBubyBkb2NzdHJpbmcgYXZhaWxhYmxlJywgcmVkPVRydWUpCi0KLSAgICBkZWYgd3JpdGVf
aXRlbShpdGVtKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW5mbyA9IGl0ZW0uX2ZpeHR1
cmVpbmZvCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgICMgZG9j
dGVzdHMgaXRlbXMgaGF2ZSBubyBfZml4dHVyZWluZm8gYXR0cmlidXRlCi0gICAgICAgICAgICBy
ZXR1cm4KLSAgICAgICAgaWYgbm90IGluZm8ubmFtZTJmaXh0dXJlZGVmczoKLSAgICAgICAgICAg
ICMgdGhpcyB0ZXN0IGl0ZW0gZG9lcyBub3QgdXNlIGFueSBmaXh0dXJlcwotICAgICAgICAgICAg
cmV0dXJuCi0gICAgICAgIHR3LmxpbmUoKQotICAgICAgICB0dy5zZXAoJy0nLCAnZml4dHVyZXMg
dXNlZCBieSB7MH0nLmZvcm1hdChpdGVtLm5hbWUpKQotICAgICAgICB0dy5zZXAoJy0nLCAnKHsw
fSknLmZvcm1hdChnZXRfYmVzdF9yZWxwYXRoKGl0ZW0uZnVuY3Rpb24pKSkKLSAgICAgICAgIyBk
aWN0IGtleSBub3QgdXNlZCBpbiBsb29wIGJ1dCBuZWVkZWQgZm9yIHNvcnRpbmcKLSAgICAgICAg
Zm9yIF8sIGZpeHR1cmVkZWZzIGluIHNvcnRlZChpbmZvLm5hbWUyZml4dHVyZWRlZnMuaXRlbXMo
KSk6Ci0gICAgICAgICAgICBhc3NlcnQgZml4dHVyZWRlZnMgaXMgbm90IE5vbmUKLSAgICAgICAg
ICAgIGlmIG5vdCBmaXh0dXJlZGVmczoKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAg
ICAgICAgIyBsYXN0IGl0ZW0gaXMgZXhwZWN0ZWQgdG8gYmUgdGhlIG9uZSB1c2VkIGJ5IHRoZSB0
ZXN0IGl0ZW0KLSAgICAgICAgICAgIHdyaXRlX2ZpeHR1cmUoZml4dHVyZWRlZnNbLTFdKQotCi0g
ICAgZm9yIHNlc3Npb25faXRlbSBpbiBzZXNzaW9uLml0ZW1zOgotICAgICAgICB3cml0ZV9pdGVt
KHNlc3Npb25faXRlbSkKLQotCi1kZWYgc2hvd2ZpeHR1cmVzKGNvbmZpZyk6Ci0gICAgZnJvbSBf
cHl0ZXN0Lm1haW4gaW1wb3J0IHdyYXBfc2Vzc2lvbgotICAgIHJldHVybiB3cmFwX3Nlc3Npb24o
Y29uZmlnLCBfc2hvd2ZpeHR1cmVzX21haW4pCi0KLQotZGVmIF9zaG93Zml4dHVyZXNfbWFpbihj
b25maWcsIHNlc3Npb24pOgotICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZwotICAgIHNlc3Npb24u
cGVyZm9ybV9jb2xsZWN0KCkKLSAgICBjdXJkaXIgPSBweS5wYXRoLmxvY2FsKCkKLSAgICB0dyA9
IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5hbF93cml0ZXIoY29uZmlnKQotICAgIHZlcmJv
c2UgPSBjb25maWcuZ2V0dmFsdWUoInZlcmJvc2UiKQotCi0gICAgZm0gPSBzZXNzaW9uLl9maXh0
dXJlbWFuYWdlcgotCi0gICAgYXZhaWxhYmxlID0gW10KLSAgICBzZWVuID0gc2V0KCkKLQotICAg
IGZvciBhcmduYW1lLCBmaXh0dXJlZGVmcyBpbiBmbS5fYXJnMmZpeHR1cmVkZWZzLml0ZW1zKCk6
Ci0gICAgICAgIGFzc2VydCBmaXh0dXJlZGVmcyBpcyBub3QgTm9uZQotICAgICAgICBpZiBub3Qg
Zml4dHVyZWRlZnM6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICBmb3IgZml4dHVyZWRl
ZiBpbiBmaXh0dXJlZGVmczoKLSAgICAgICAgICAgIGxvYyA9IGdldGxvY2F0aW9uKGZpeHR1cmVk
ZWYuZnVuYywgY3VyZGlyKQotICAgICAgICAgICAgaWYgKGZpeHR1cmVkZWYuYXJnbmFtZSwgbG9j
KSBpbiBzZWVuOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBzZWVuLmFk
ZCgoZml4dHVyZWRlZi5hcmduYW1lLCBsb2MpKQotICAgICAgICAgICAgYXZhaWxhYmxlLmFwcGVu
ZCgobGVuKGZpeHR1cmVkZWYuYmFzZWlkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZpeHR1cmVkZWYuZnVuYy5fX21vZHVsZV9fLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3VyZGlyLmJlc3RyZWxwYXRoKGxvYyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmaXh0dXJlZGVmLmFyZ25hbWUsIGZpeHR1cmVkZWYpKQotCi0gICAgYXZhaWxhYmxlLnNvcnQo
KQotICAgIGN1cnJlbnRtb2R1bGUgPSBOb25lCi0gICAgZm9yIGJhc2VpZCwgbW9kdWxlLCBiZXN0
cmVsLCBhcmduYW1lLCBmaXh0dXJlZGVmIGluIGF2YWlsYWJsZToKLSAgICAgICAgaWYgY3VycmVu
dG1vZHVsZSAhPSBtb2R1bGU6Ci0gICAgICAgICAgICBpZiBub3QgbW9kdWxlLnN0YXJ0c3dpdGgo
Il9weXRlc3QuIik6Ci0gICAgICAgICAgICAgICAgdHcubGluZSgpCi0gICAgICAgICAgICAgICAg
dHcuc2VwKCItIiwgImZpeHR1cmVzIGRlZmluZWQgZnJvbSAlcyIgJSAobW9kdWxlLCkpCi0gICAg
ICAgICAgICAgICAgY3VycmVudG1vZHVsZSA9IG1vZHVsZQotICAgICAgICBpZiB2ZXJib3NlIDw9
IDAgYW5kIGFyZ25hbWVbMF0gPT0gIl8iOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAg
aWYgdmVyYm9zZSA+IDA6Ci0gICAgICAgICAgICBmdW5jYXJnc3BlYyA9ICIlcyAtLSAlcyIgJSAo
YXJnbmFtZSwgYmVzdHJlbCwpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmdW5jYXJnc3Bl
YyA9IGFyZ25hbWUKLSAgICAgICAgdHcubGluZShmdW5jYXJnc3BlYywgZ3JlZW49VHJ1ZSkKLSAg
ICAgICAgbG9jID0gZ2V0bG9jYXRpb24oZml4dHVyZWRlZi5mdW5jLCBjdXJkaXIpCi0gICAgICAg
IGRvYyA9IGZpeHR1cmVkZWYuZnVuYy5fX2RvY19fIG9yICIiCi0gICAgICAgIGlmIGRvYzoKLSAg
ICAgICAgICAgIHdyaXRlX2RvY3N0cmluZyh0dywgZG9jKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgdHcubGluZSgiICAgICVzOiBubyBkb2NzdHJpbmcgYXZhaWxhYmxlIiAlIChsb2MsKSwK
LSAgICAgICAgICAgICAgICAgICAgcmVkPVRydWUpCi0KLQotZGVmIHdyaXRlX2RvY3N0cmluZyh0
dywgZG9jKToKLSAgICBJTkRFTlQgPSAiICAgICIKLSAgICBkb2MgPSBkb2MucnN0cmlwKCkKLSAg
ICBpZiAiXG4iIGluIGRvYzoKLSAgICAgICAgZmlyc3RsaW5lLCByZXN0ID0gZG9jLnNwbGl0KCJc
biIsIDEpCi0gICAgZWxzZToKLSAgICAgICAgZmlyc3RsaW5lLCByZXN0ID0gZG9jLCAiIgotCi0g
ICAgaWYgZmlyc3RsaW5lLnN0cmlwKCk6Ci0gICAgICAgIHR3LmxpbmUoSU5ERU5UICsgZmlyc3Rs
aW5lLnN0cmlwKCkpCi0KLSAgICBpZiByZXN0OgotICAgICAgICBmb3IgbGluZSBpbiBkZWRlbnQo
cmVzdCkuc3BsaXQoIlxuIik6Ci0gICAgICAgICAgICB0dy53cml0ZShJTkRFTlQgKyBsaW5lICsg
IlxuIikKLQotCi1jbGFzcyBGdW5jdGlvbihGdW5jdGlvbk1peGluLCBtYWluLkl0ZW0sIGZpeHR1
cmVzLkZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgotICAgICIiIiBhIEZ1bmN0aW9uIEl0ZW0gaXMg
cmVzcG9uc2libGUgZm9yIHNldHRpbmcgdXAgYW5kIGV4ZWN1dGluZyBhCi0gICAgUHl0aG9uIHRl
c3QgZnVuY3Rpb24uCi0gICAgIiIiCi0gICAgX2dlbmlkID0gTm9uZQotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIG5hbWUsIHBhcmVudCwgYXJncz1Ob25lLCBjb25maWc9Tm9uZSwKLSAgICAgICAg
ICAgICAgICAgY2FsbHNwZWM9Tm9uZSwgY2FsbG9iaj1OT1RTRVQsIGtleXdvcmRzPU5vbmUsIHNl
c3Npb249Tm9uZSwKLSAgICAgICAgICAgICAgICAgZml4dHVyZWluZm89Tm9uZSwgb3JpZ2luYWxu
YW1lPU5vbmUpOgotICAgICAgICBzdXBlcihGdW5jdGlvbiwgc2VsZikuX19pbml0X18obmFtZSwg
cGFyZW50LCBjb25maWc9Y29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2Vzc2lvbj1zZXNzaW9uKQotICAgICAgICBzZWxmLl9hcmdzID0gYXJncwotICAgICAg
ICBpZiBjYWxsb2JqIGlzIG5vdCBOT1RTRVQ6Ci0gICAgICAgICAgICBzZWxmLm9iaiA9IGNhbGxv
YmoKLQotICAgICAgICBzZWxmLmtleXdvcmRzLnVwZGF0ZShzZWxmLm9iai5fX2RpY3RfXykKLSAg
ICAgICAgaWYgY2FsbHNwZWM6Ci0gICAgICAgICAgICBzZWxmLmNhbGxzcGVjID0gY2FsbHNwZWMK
LSAgICAgICAgICAgICMgdGhpcyBpcyB0b3RhbCBob3N0aWxlIGFuZCBhIG1lc3MKLSAgICAgICAg
ICAgICMga2V5d29yZHMgYXJlIGJyb2tlbiBieSBkZXNpZ24gYnkgbm93Ci0gICAgICAgICAgICAj
IHRoaXMgd2lsbCBiZSByZWRlZW1lZCBsYXRlcgotICAgICAgICAgICAgZm9yIG1hcmsgaW4gY2Fs
bHNwZWMubWFya3M6Ci0gICAgICAgICAgICAgICAgIyBmZWVsIGZyZWUgdG8gY3J5LCB0aGlzIHdh
cyBicm9rZW4gZm9yIHllYXJzIGJlZm9yZQotICAgICAgICAgICAgICAgICMgYW5kIGtleXdvcmRz
IGNhbnQgZml4IGl0IHBlciBkZXNpZ24KLSAgICAgICAgICAgICAgICBzZWxmLmtleXdvcmRzW21h
cmsubmFtZV0gPSBtYXJrCi0gICAgICAgIGlmIGtleXdvcmRzOgotICAgICAgICAgICAgc2VsZi5r
ZXl3b3Jkcy51cGRhdGUoa2V5d29yZHMpCi0KLSAgICAgICAgaWYgZml4dHVyZWluZm8gaXMgTm9u
ZToKLSAgICAgICAgICAgIGZpeHR1cmVpbmZvID0gc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdl
ci5nZXRmaXh0dXJlaW5mbygKLSAgICAgICAgICAgICAgICBzZWxmLnBhcmVudCwgc2VsZi5vYmos
IHNlbGYuY2xzLAotICAgICAgICAgICAgICAgIGZ1bmNhcmdzPW5vdCBzZWxmLl9pc3lpZWxkZWRm
dW5jdGlvbigpKQotICAgICAgICBzZWxmLl9maXh0dXJlaW5mbyA9IGZpeHR1cmVpbmZvCi0gICAg
ICAgIHNlbGYuZml4dHVyZW5hbWVzID0gZml4dHVyZWluZm8ubmFtZXNfY2xvc3VyZQotICAgICAg
ICBzZWxmLl9pbml0cmVxdWVzdCgpCi0KLSAgICAgICAgIzogb3JpZ2luYWwgZnVuY3Rpb24gbmFt
ZSwgd2l0aG91dCBhbnkgZGVjb3JhdGlvbnMgKGZvciBleGFtcGxlCi0gICAgICAgICM6IHBhcmFt
ZXRyaXphdGlvbiBhZGRzIGEgYGAiWy4uLl0iYGAgc3VmZml4IHRvIGZ1bmN0aW9uIG5hbWVzKS4K
LSAgICAgICAgIzoKLSAgICAgICAgIzogLi4gdmVyc2lvbmFkZGVkOjogMy4wCi0gICAgICAgIHNl
bGYub3JpZ2luYWxuYW1lID0gb3JpZ2luYWxuYW1lCi0KLSAgICBkZWYgX2luaXRyZXF1ZXN0KHNl
bGYpOgotICAgICAgICBzZWxmLmZ1bmNhcmdzID0ge30KLSAgICAgICAgaWYgc2VsZi5faXN5aWVs
ZGVkZnVuY3Rpb24oKToKLSAgICAgICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihzZWxmLCAiY2Fs
bHNwZWMiKSwgKAotICAgICAgICAgICAgICAgICJ5aWVsZGVkIGZ1bmN0aW9ucyAoZGVwcmVjYXRl
ZCkgY2Fubm90IGhhdmUgZnVuY2FyZ3MiKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYg
aGFzYXR0cihzZWxmLCAiY2FsbHNwZWMiKToKLSAgICAgICAgICAgICAgICBjYWxsc3BlYyA9IHNl
bGYuY2FsbHNwZWMKLSAgICAgICAgICAgICAgICBhc3NlcnQgbm90IGNhbGxzcGVjLmZ1bmNhcmdz
Ci0gICAgICAgICAgICAgICAgc2VsZi5fZ2VuaWQgPSBjYWxsc3BlYy5pZAotICAgICAgICAgICAg
ICAgIGlmIGhhc2F0dHIoY2FsbHNwZWMsICJwYXJhbSIpOgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLnBhcmFtID0gY2FsbHNwZWMucGFyYW0KLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IGZpeHR1
cmVzLkZpeHR1cmVSZXF1ZXN0KHNlbGYpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZnVuY3Rp
b24oc2VsZik6Ci0gICAgICAgICJ1bmRlcmx5aW5nIHB5dGhvbiAnZnVuY3Rpb24nIG9iamVjdCIK
LSAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5vYmosICdpbV9mdW5jJywgc2VsZi5vYmopCi0K
LSAgICBkZWYgX2dldG9iaihzZWxmKToKLSAgICAgICAgbmFtZSA9IHNlbGYubmFtZQotICAgICAg
ICBpID0gbmFtZS5maW5kKCJbIikgICMgcGFyYW1ldHJpemF0aW9uCi0gICAgICAgIGlmIGkgIT0g
LTE6Ci0gICAgICAgICAgICBuYW1lID0gbmFtZVs6aV0KLSAgICAgICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5wYXJlbnQub2JqLCBuYW1lKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIF9weWZ1bmNp
dGVtKHNlbGYpOgotICAgICAgICAiKGNvbXBhdG9ubHkpIGZvciBjb2RlIGV4cGVjdGluZyBweXRl
c3QtMi4yIHN0eWxlIHJlcXVlc3Qgb2JqZWN0cyIKLSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAg
IGRlZiBfaXN5aWVsZGVkZnVuY3Rpb24oc2VsZik6Ci0gICAgICAgIHJldHVybiBnZXRhdHRyKHNl
bGYsICJfYXJncyIsIE5vbmUpIGlzIG5vdCBOb25lCi0KLSAgICBkZWYgcnVudGVzdChzZWxmKToK
LSAgICAgICAgIiIiIGV4ZWN1dGUgdGhlIHVuZGVybHlpbmcgdGVzdCBmdW5jdGlvbi4gIiIiCi0g
ICAgICAgIHNlbGYuaWhvb2sucHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVuY2l0ZW09c2VsZikKLQot
ICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgc3VwZXIoRnVuY3Rpb24sIHNlbGYpLnNldHVw
KCkKLSAgICAgICAgZml4dHVyZXMuZmlsbGZpeHR1cmVzKHNlbGYpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbl9hcGkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhv
bl9hcGkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxOTYwMjk1YjM4MWJkMGU5
OTIzZjdmYjNkMDFhZTExMTIxNDJmOWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob25fYXBpLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNjE5ICswLDAgQEAKLWltcG9ydCBtYXRoCi1pbXBvcnQgc3lzCi0KLWltcG9y
dCBweQotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHppcAotCi1mcm9tIF9weXRlc3QuY29tcGF0IGlt
cG9ydCBpc2NsYXNzCi1mcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwKLWltcG9ydCBf
cHl0ZXN0Ll9jb2RlCi0KLQotZGVmIF9jbXBfcmFpc2VzX3R5cGVfZXJyb3Ioc2VsZiwgb3RoZXIp
OgotICAgICIiIl9fY21wX18gaW1wbGVtZW50YXRpb24gd2hpY2ggcmFpc2VzIFR5cGVFcnJvci4g
VXNlZAotICAgIGJ5IEFwcHJveCBiYXNlIGNsYXNzZXMgdG8gaW1wbGVtZW50IG9ubHkgPT0gYW5k
ICE9IGFuZCByYWlzZSBhCi0gICAgVHlwZUVycm9yIGZvciBvdGhlciBjb21wYXJpc29ucy4KLQot
ICAgIE5lZWRlZCBpbiBQeXRob24gMiBvbmx5LCBQeXRob24gMyBhbGwgaXQgdGFrZXMgaXMgbm90
IGltcGxlbWVudGluZyB0aGUKLSAgICBvdGhlciBvcGVyYXRvcnMgYXQgYWxsLgotICAgICIiIgot
ICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgIHJhaXNlIFR5cGVFcnJvcignQ29tcGFy
aXNvbiBvcGVyYXRvcnMgb3RoZXIgdGhhbiA9PSBhbmQgIT0gbm90IHN1cHBvcnRlZCBieSBhcHBy
b3ggb2JqZWN0cycpCi0KLQotIyBidWlsdGluIHB5dGVzdC5hcHByb3ggaGVscGVyCi0KLQotY2xh
c3MgQXBwcm94QmFzZShvYmplY3QpOgotICAgICIiIgotICAgIFByb3ZpZGUgc2hhcmVkIHV0aWxp
dGllcyBmb3IgbWFraW5nIGFwcHJveGltYXRlIGNvbXBhcmlzb25zIGJldHdlZW4gbnVtYmVycwot
ICAgIG9yIHNlcXVlbmNlcyBvZiBudW1iZXJzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGV4cGVjdGVkLCByZWw9Tm9uZSwgYWJzPU5vbmUsIG5hbl9vaz1GYWxzZSk6Ci0gICAg
ICAgIHNlbGYuZXhwZWN0ZWQgPSBleHBlY3RlZAotICAgICAgICBzZWxmLmFicyA9IGFicwotICAg
ICAgICBzZWxmLnJlbCA9IHJlbAotICAgICAgICBzZWxmLm5hbl9vayA9IG5hbl9vawotCi0gICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCi0K
LSAgICBkZWYgX19lcV9fKHNlbGYsIGFjdHVhbCk6Ci0gICAgICAgIHJldHVybiBhbGwoCi0gICAg
ICAgICAgICBhID09IHNlbGYuX2FwcHJveF9zY2FsYXIoeCkKLSAgICAgICAgICAgIGZvciBhLCB4
IGluIHNlbGYuX3lpZWxkX2NvbXBhcmlzb25zKGFjdHVhbCkpCi0KLSAgICBfX2hhc2hfXyA9IE5v
bmUKLQotICAgIGRlZiBfX25lX18oc2VsZiwgYWN0dWFsKToKLSAgICAgICAgcmV0dXJuIG5vdCAo
YWN0dWFsID09IHNlbGYpCi0KLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09IDI6Ci0gICAg
ICAgIF9fY21wX18gPSBfY21wX3JhaXNlc190eXBlX2Vycm9yCi0KLSAgICBkZWYgX2FwcHJveF9z
Y2FsYXIoc2VsZiwgeCk6Ci0gICAgICAgIHJldHVybiBBcHByb3hTY2FsYXIoeCwgcmVsPXNlbGYu
cmVsLCBhYnM9c2VsZi5hYnMsIG5hbl9vaz1zZWxmLm5hbl9vaykKLQotICAgIGRlZiBfeWllbGRf
Y29tcGFyaXNvbnMoc2VsZiwgYWN0dWFsKToKLSAgICAgICAgIiIiCi0gICAgICAgIFlpZWxkIGFs
bCB0aGUgcGFpcnMgb2YgbnVtYmVycyB0byBiZSBjb21wYXJlZC4gIFRoaXMgaXMgdXNlZCB0bwot
ICAgICAgICBpbXBsZW1lbnQgdGhlIGBfX2VxX19gIG1ldGhvZC4KLSAgICAgICAgIiIiCi0gICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKLQotCi1jbGFzcyBBcHByb3hOdW1weShBcHBy
b3hCYXNlKToKLSAgICAiIiIKLSAgICBQZXJmb3JtIGFwcHJveGltYXRlIGNvbXBhcmlzb25zIGZv
ciBudW1weSBhcnJheXMuCi0gICAgIiIiCi0KLSAgICAjIFRlbGwgbnVtcHkgdG8gdXNlIG91ciBg
X19lcV9fYCBvcGVyYXRvciBpbnN0ZWFkIG9mIGl0cy4KLSAgICBfX2FycmF5X3ByaW9yaXR5X18g
PSAxMDAKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgIyBJdCBtaWdodCBiZSBu
aWNlIHRvIHJld3JpdGUgdGhpcyBmdW5jdGlvbiB0byBhY2NvdW50IGZvciB0aGUKLSAgICAgICAg
IyBzaGFwZSBvZiB0aGUgYXJyYXkuLi4KLSAgICAgICAgcmV0dXJuICJhcHByb3goezAhcn0pIi5m
b3JtYXQobGlzdCgKLSAgICAgICAgICAgIHNlbGYuX2FwcHJveF9zY2FsYXIoeCkgZm9yIHggaW4g
c2VsZi5leHBlY3RlZCkpCi0KLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09IDI6Ci0gICAg
ICAgIF9fY21wX18gPSBfY21wX3JhaXNlc190eXBlX2Vycm9yCi0KLSAgICBkZWYgX19lcV9fKHNl
bGYsIGFjdHVhbCk6Ci0gICAgICAgIGltcG9ydCBudW1weSBhcyBucAotCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIGFjdHVhbCA9IG5wLmFzYXJyYXkoYWN0dWFsKQotICAgICAgICBleGNlcHQ6
ICAjIG5vcWEKLSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiY2Fubm90IGNvbXBhcmUgJ3sw
fScgdG8gbnVtcHkubmRhcnJheSIuZm9ybWF0KGFjdHVhbCkpCi0KLSAgICAgICAgaWYgYWN0dWFs
LnNoYXBlICE9IHNlbGYuZXhwZWN0ZWQuc2hhcGU6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UK
LQotICAgICAgICByZXR1cm4gQXBwcm94QmFzZS5fX2VxX18oc2VsZiwgYWN0dWFsKQotCi0gICAg
ZGVmIF95aWVsZF9jb21wYXJpc29ucyhzZWxmLCBhY3R1YWwpOgotICAgICAgICBpbXBvcnQgbnVt
cHkgYXMgbnAKLQotICAgICAgICAjIFdlIGNhbiBiZSBzdXJlIHRoYXQgYGFjdHVhbGAgaXMgYSBu
dW1weSBhcnJheSwgYmVjYXVzZSBpdCdzCi0gICAgICAgICMgY2FzdGVkIGluIGBfX2VxX19gIGJl
Zm9yZSBiZWluZyBwYXNzZWQgdG8gYEFwcHJveEJhc2UuX19lcV9fYCwKLSAgICAgICAgIyB3aGlj
aCBpcyB0aGUgb25seSBtZXRob2QgdGhhdCBjYWxscyB0aGlzIG9uZS4KLSAgICAgICAgZm9yIGkg
aW4gbnAubmRpbmRleChzZWxmLmV4cGVjdGVkLnNoYXBlKToKLSAgICAgICAgICAgIHlpZWxkIGFj
dHVhbFtpXSwgc2VsZi5leHBlY3RlZFtpXQotCi0KLWNsYXNzIEFwcHJveE1hcHBpbmcoQXBwcm94
QmFzZSk6Ci0gICAgIiIiCi0gICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBjb21wYXJpc29ucyBmb3Ig
bWFwcGluZ3Mgd2hlcmUgdGhlIHZhbHVlcyBhcmUgbnVtYmVycwotICAgICh0aGUga2V5cyBjYW4g
YmUgYW55dGhpbmcpLgotICAgICIiIgotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAg
ICByZXR1cm4gImFwcHJveCh7MCFyfSkiLmZvcm1hdChkaWN0KAotICAgICAgICAgICAgKGssIHNl
bGYuX2FwcHJveF9zY2FsYXIodikpCi0gICAgICAgICAgICBmb3IgaywgdiBpbiBzZWxmLmV4cGVj
dGVkLml0ZW1zKCkpKQotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBhY3R1YWwpOgotICAgICAgICBp
ZiBzZXQoYWN0dWFsLmtleXMoKSkgIT0gc2V0KHNlbGYuZXhwZWN0ZWQua2V5cygpKToKLSAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIHJldHVybiBBcHByb3hCYXNlLl9fZXFfXyhz
ZWxmLCBhY3R1YWwpCi0KLSAgICBkZWYgX3lpZWxkX2NvbXBhcmlzb25zKHNlbGYsIGFjdHVhbCk6
Ci0gICAgICAgIGZvciBrIGluIHNlbGYuZXhwZWN0ZWQua2V5cygpOgotICAgICAgICAgICAgeWll
bGQgYWN0dWFsW2tdLCBzZWxmLmV4cGVjdGVkW2tdCi0KLQotY2xhc3MgQXBwcm94U2VxdWVuY2Uo
QXBwcm94QmFzZSk6Ci0gICAgIiIiCi0gICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBjb21wYXJpc29u
cyBmb3Igc2VxdWVuY2VzIG9mIG51bWJlcnMuCi0gICAgIiIiCi0KLSAgICAjIFRlbGwgbnVtcHkg
dG8gdXNlIG91ciBgX19lcV9fYCBvcGVyYXRvciBpbnN0ZWFkIG9mIGl0cy4KLSAgICBfX2FycmF5
X3ByaW9yaXR5X18gPSAxMDAKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgc2Vx
X3R5cGUgPSB0eXBlKHNlbGYuZXhwZWN0ZWQpCi0gICAgICAgIGlmIHNlcV90eXBlIG5vdCBpbiAo
dHVwbGUsIGxpc3QsIHNldCk6Ci0gICAgICAgICAgICBzZXFfdHlwZSA9IGxpc3QKLSAgICAgICAg
cmV0dXJuICJhcHByb3goezAhcn0pIi5mb3JtYXQoc2VxX3R5cGUoCi0gICAgICAgICAgICBzZWxm
Ll9hcHByb3hfc2NhbGFyKHgpIGZvciB4IGluIHNlbGYuZXhwZWN0ZWQpKQotCi0gICAgZGVmIF9f
ZXFfXyhzZWxmLCBhY3R1YWwpOgotICAgICAgICBpZiBsZW4oYWN0dWFsKSAhPSBsZW4oc2VsZi5l
eHBlY3RlZCk6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgcmV0dXJuIEFwcHJv
eEJhc2UuX19lcV9fKHNlbGYsIGFjdHVhbCkKLQotICAgIGRlZiBfeWllbGRfY29tcGFyaXNvbnMo
c2VsZiwgYWN0dWFsKToKLSAgICAgICAgcmV0dXJuIHppcChhY3R1YWwsIHNlbGYuZXhwZWN0ZWQp
Ci0KLQotY2xhc3MgQXBwcm94U2NhbGFyKEFwcHJveEJhc2UpOgotICAgICIiIgotICAgIFBlcmZv
cm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgZm9yIHNpbmdsZSBudW1iZXJzIG9ubHkuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1
cm4gYSBzdHJpbmcgY29tbXVuaWNhdGluZyBib3RoIHRoZSBleHBlY3RlZCB2YWx1ZSBhbmQgdGhl
IHRvbGVyYW5jZQotICAgICAgICBmb3IgdGhlIGNvbXBhcmlzb24gYmVpbmcgbWFkZSwgZS5nLiAn
MS4wICstIDFlLTYnLiAgVXNlIHRoZSB1bmljb2RlCi0gICAgICAgIHBsdXMvbWludXMgc3ltYm9s
IGlmIHRoaXMgaXMgcHl0aG9uMyAoaXQncyB0b28gaGFyZCB0byBnZXQgcmlnaHQgZm9yCi0gICAg
ICAgIHB5dGhvbjIpLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmV4
cGVjdGVkLCBjb21wbGV4KToKLSAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZi5leHBlY3RlZCkK
LQotICAgICAgICAjIEluZmluaXRpZXMgYXJlbid0IGNvbXBhcmVkIHVzaW5nIHRvbGVyYW5jZXMs
IHNvIGRvbid0IHNob3cgYQotICAgICAgICAjIHRvbGVyYW5jZS4KLSAgICAgICAgaWYgbWF0aC5p
c2luZihzZWxmLmV4cGVjdGVkKToKLSAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZi5leHBlY3Rl
ZCkKLQotICAgICAgICAjIElmIGEgc2Vuc2libGUgdG9sZXJhbmNlIGNhbid0IGJlIGNhbGN1bGF0
ZWQsIHNlbGYudG9sZXJhbmNlIHdpbGwKLSAgICAgICAgIyByYWlzZSBhIFZhbHVlRXJyb3IuICBJ
biB0aGlzIGNhc2UsIGRpc3BsYXkgJz8/PycuCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHZl
dHRlZF90b2xlcmFuY2UgPSAnezouMWV9Jy5mb3JtYXQoc2VsZi50b2xlcmFuY2UpCi0gICAgICAg
IGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgdmV0dGVkX3RvbGVyYW5jZSA9ICc/Pz8n
Ci0KLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyOgotICAgICAgICAgICAgcmV0
dXJuICd7MH0gKy0gezF9Jy5mb3JtYXQoc2VsZi5leHBlY3RlZCwgdmV0dGVkX3RvbGVyYW5jZSkK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiB1J3swfSBcdTAwYjEgezF9Jy5mb3Jt
YXQoc2VsZi5leHBlY3RlZCwgdmV0dGVkX3RvbGVyYW5jZSkKLQotICAgIGRlZiBfX2VxX18oc2Vs
ZiwgYWN0dWFsKToKLSAgICAgICAgIiIiCi0gICAgICAgIFJldHVybiB0cnVlIGlmIHRoZSBnaXZl
biB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgZXhwZWN0ZWQgdmFsdWUgd2l0aGluCi0gICAgICAgIHRo
ZSBwcmUtc3BlY2lmaWVkIHRvbGVyYW5jZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBTaG9y
dC1jaXJjdWl0IGV4YWN0IGVxdWFsaXR5LgotICAgICAgICBpZiBhY3R1YWwgPT0gc2VsZi5leHBl
Y3RlZDoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAgICAgIyBBbGxvdyB0aGUgdXNl
ciB0byBjb250cm9sIHdoZXRoZXIgTmFOcyBhcmUgY29uc2lkZXJlZCBlcXVhbCB0byBlYWNoCi0g
ICAgICAgICMgb3RoZXIgb3Igbm90LiAgVGhlIGFicygpIGNhbGxzIGFyZSBmb3IgY29tcGF0aWJp
bGl0eSB3aXRoIGNvbXBsZXgKLSAgICAgICAgIyBudW1iZXJzLgotICAgICAgICBpZiBtYXRoLmlz
bmFuKGFicyhzZWxmLmV4cGVjdGVkKSk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5uYW5fb2sg
YW5kIG1hdGguaXNuYW4oYWJzKGFjdHVhbCkpCi0KLSAgICAgICAgIyBJbmZpbml0eSBzaG91bGRu
J3QgYmUgYXBwcm94aW1hdGVseSBlcXVhbCB0byBhbnl0aGluZyBidXQgaXRzZWxmLCBidXQKLSAg
ICAgICAgIyBpZiB0aGVyZSdzIGEgcmVsYXRpdmUgdG9sZXJhbmNlLCBpdCB3aWxsIGJlIGluZmlu
aXRlIGFuZCBpbmZpbml0eQotICAgICAgICAjIHdpbGwgc2VlbSBhcHByb3hpbWF0ZWx5IGVxdWFs
IHRvIGV2ZXJ5dGhpbmcuICBUaGUgZXF1YWwtdG8taXRzZWxmCi0gICAgICAgICMgY2FzZSB3b3Vs
ZCBoYXZlIGJlZW4gc2hvcnQgY2lyY3VpdGVkIGFib3ZlLCBzbyBoZXJlIHdlIGNhbiBqdXN0Ci0g
ICAgICAgICMgcmV0dXJuIGZhbHNlIGlmIHRoZSBleHBlY3RlZCB2YWx1ZSBpcyBpbmZpbml0ZS4g
IFRoZSBhYnMoKSBjYWxsIGlzCi0gICAgICAgICMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBjb21w
bGV4IG51bWJlcnMuCi0gICAgICAgIGlmIG1hdGguaXNpbmYoYWJzKHNlbGYuZXhwZWN0ZWQpKToK
LSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICMgUmV0dXJuIHRydWUgaWYgdGhl
IHR3byBudW1iZXJzIGFyZSB3aXRoaW4gdGhlIHRvbGVyYW5jZS4KLSAgICAgICAgcmV0dXJuIGFi
cyhzZWxmLmV4cGVjdGVkIC0gYWN0dWFsKSA8PSBzZWxmLnRvbGVyYW5jZQotCi0gICAgX19oYXNo
X18gPSBOb25lCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgdG9sZXJhbmNlKHNlbGYpOgotICAg
ICAgICAiIiIKLSAgICAgICAgUmV0dXJuIHRoZSB0b2xlcmFuY2UgZm9yIHRoZSBjb21wYXJpc29u
LiAgVGhpcyBjb3VsZCBiZSBlaXRoZXIgYW4KLSAgICAgICAgYWJzb2x1dGUgdG9sZXJhbmNlIG9y
IGEgcmVsYXRpdmUgdG9sZXJhbmNlLCBkZXBlbmRpbmcgb24gd2hhdCB0aGUgdXNlcgotICAgICAg
ICBzcGVjaWZpZWQgb3Igd2hpY2ggd291bGQgYmUgbGFyZ2VyLgotICAgICAgICAiIiIKLSAgICAg
ICAgZGVmIHNldF9kZWZhdWx0KHgsIGRlZmF1bHQpOgotICAgICAgICAgICAgcmV0dXJuIHggaWYg
eCBpcyBub3QgTm9uZSBlbHNlIGRlZmF1bHQKLQotICAgICAgICAjIEZpZ3VyZSBvdXQgd2hhdCB0
aGUgYWJzb2x1dGUgdG9sZXJhbmNlIHNob3VsZCBiZS4gIGBgc2VsZi5hYnNgYCBpcwotICAgICAg
ICAjIGVpdGhlciBOb25lIG9yIGEgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLgotICAgICAg
ICBhYnNvbHV0ZV90b2xlcmFuY2UgPSBzZXRfZGVmYXVsdChzZWxmLmFicywgMWUtMTIpCi0KLSAg
ICAgICAgaWYgYWJzb2x1dGVfdG9sZXJhbmNlIDwgMDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoImFic29sdXRlIHRvbGVyYW5jZSBjYW4ndCBiZSBuZWdhdGl2ZToge30iLmZvcm1hdChh
YnNvbHV0ZV90b2xlcmFuY2UpKQotICAgICAgICBpZiBtYXRoLmlzbmFuKGFic29sdXRlX3RvbGVy
YW5jZSk6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJhYnNvbHV0ZSB0b2xlcmFuY2Ug
Y2FuJ3QgYmUgTmFOLiIpCi0KLSAgICAgICAgIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW4gYWJz
b2x1dGUgdG9sZXJhbmNlIGJ1dCBub3QgYSByZWxhdGl2ZSBvbmUsCi0gICAgICAgICMganVzdCBy
ZXR1cm4gdGhlIGFic29sdXRlIHRvbGVyYW5jZS4KLSAgICAgICAgaWYgc2VsZi5yZWwgaXMgTm9u
ZToKLSAgICAgICAgICAgIGlmIHNlbGYuYWJzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAg
IHJldHVybiBhYnNvbHV0ZV90b2xlcmFuY2UKLQotICAgICAgICAjIEZpZ3VyZSBvdXQgd2hhdCB0
aGUgcmVsYXRpdmUgdG9sZXJhbmNlIHNob3VsZCBiZS4gIGBgc2VsZi5yZWxgYCBpcwotICAgICAg
ICAjIGVpdGhlciBOb25lIG9yIGEgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLiAgVGhpcyBp
cyBkb25lIGFmdGVyCi0gICAgICAgICMgd2UndmUgbWFkZSBzdXJlIHRoZSB1c2VyIGRpZG4ndCBh
c2sgZm9yIGFuIGFic29sdXRlIHRvbGVyYW5jZSBvbmx5LAotICAgICAgICAjIGJlY2F1c2Ugd2Ug
ZG9uJ3Qgd2FudCB0byByYWlzZSBlcnJvcnMgYWJvdXQgdGhlIHJlbGF0aXZlIHRvbGVyYW5jZSBp
ZgotICAgICAgICAjIHdlIGFyZW4ndCBldmVuIGdvaW5nIHRvIHVzZSBpdC4KLSAgICAgICAgcmVs
YXRpdmVfdG9sZXJhbmNlID0gc2V0X2RlZmF1bHQoc2VsZi5yZWwsIDFlLTYpICogYWJzKHNlbGYu
ZXhwZWN0ZWQpCi0KLSAgICAgICAgaWYgcmVsYXRpdmVfdG9sZXJhbmNlIDwgMDoKLSAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoInJlbGF0aXZlIHRvbGVyYW5jZSBjYW4ndCBiZSBuZWdhdGl2
ZToge30iLmZvcm1hdChhYnNvbHV0ZV90b2xlcmFuY2UpKQotICAgICAgICBpZiBtYXRoLmlzbmFu
KHJlbGF0aXZlX3RvbGVyYW5jZSk6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJyZWxh
dGl2ZSB0b2xlcmFuY2UgY2FuJ3QgYmUgTmFOLiIpCi0KLSAgICAgICAgIyBSZXR1cm4gdGhlIGxh
cmdlciBvZiB0aGUgcmVsYXRpdmUgYW5kIGFic29sdXRlIHRvbGVyYW5jZXMuCi0gICAgICAgIHJl
dHVybiBtYXgocmVsYXRpdmVfdG9sZXJhbmNlLCBhYnNvbHV0ZV90b2xlcmFuY2UpCi0KLQotZGVm
IGFwcHJveChleHBlY3RlZCwgcmVsPU5vbmUsIGFicz1Ob25lLCBuYW5fb2s9RmFsc2UpOgotICAg
ICIiIgotICAgIEFzc2VydCB0aGF0IHR3byBudW1iZXJzIChvciB0d28gc2V0cyBvZiBudW1iZXJz
KSBhcmUgZXF1YWwgdG8gZWFjaCBvdGhlcgotICAgIHdpdGhpbiBzb21lIHRvbGVyYW5jZS4KLQot
ICAgIER1ZSB0byB0aGUgYGludHJpY2FjaWVzIG9mIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWNg
X18sIG51bWJlcnMgdGhhdCB3ZQotICAgIHdvdWxkIGludHVpdGl2ZWx5IGV4cGVjdCB0byBiZSBl
cXVhbCBhcmUgbm90IGFsd2F5cyBzbzo6Ci0KLSAgICAgICAgPj4+IDAuMSArIDAuMiA9PSAwLjMK
LSAgICAgICAgRmFsc2UKLQotICAgIF9fIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvdHV0b3Jp
YWwvZmxvYXRpbmdwb2ludC5odG1sCi0KLSAgICBUaGlzIHByb2JsZW0gaXMgY29tbW9ubHkgZW5j
b3VudGVyZWQgd2hlbiB3cml0aW5nIHRlc3RzLCBlLmcuIHdoZW4gbWFraW5nCi0gICAgc3VyZSB0
aGF0IGZsb2F0aW5nLXBvaW50IHZhbHVlcyBhcmUgd2hhdCB5b3UgZXhwZWN0IHRoZW0gdG8gYmUu
ICBPbmUgd2F5IHRvCi0gICAgZGVhbCB3aXRoIHRoaXMgcHJvYmxlbSBpcyB0byBhc3NlcnQgdGhh
dCB0d28gZmxvYXRpbmctcG9pbnQgbnVtYmVycyBhcmUKLSAgICBlcXVhbCB0byB3aXRoaW4gc29t
ZSBhcHByb3ByaWF0ZSB0b2xlcmFuY2U6OgotCi0gICAgICAgID4+PiBhYnMoKDAuMSArIDAuMikg
LSAwLjMpIDwgMWUtNgotICAgICAgICBUcnVlCi0KLSAgICBIb3dldmVyLCBjb21wYXJpc29ucyBs
aWtlIHRoaXMgYXJlIHRlZGlvdXMgdG8gd3JpdGUgYW5kIGRpZmZpY3VsdCB0bwotICAgIHVuZGVy
c3RhbmQuICBGdXJ0aGVybW9yZSwgYWJzb2x1dGUgY29tcGFyaXNvbnMgbGlrZSB0aGUgb25lIGFi
b3ZlIGFyZQotICAgIHVzdWFsbHkgZGlzY291cmFnZWQgYmVjYXVzZSB0aGVyZSdzIG5vIHRvbGVy
YW5jZSB0aGF0IHdvcmtzIHdlbGwgZm9yIGFsbAotICAgIHNpdHVhdGlvbnMuICBgYDFlLTZgYCBp
cyBnb29kIGZvciBudW1iZXJzIGFyb3VuZCBgYDFgYCwgYnV0IHRvbyBzbWFsbCBmb3IKLSAgICB2
ZXJ5IGJpZyBudW1iZXJzIGFuZCB0b28gYmlnIGZvciB2ZXJ5IHNtYWxsIG9uZXMuICBJdCdzIGJl
dHRlciB0byBleHByZXNzCi0gICAgdGhlIHRvbGVyYW5jZSBhcyBhIGZyYWN0aW9uIG9mIHRoZSBl
eHBlY3RlZCB2YWx1ZSwgYnV0IHJlbGF0aXZlIGNvbXBhcmlzb25zCi0gICAgbGlrZSB0aGF0IGFy
ZSBldmVuIG1vcmUgZGlmZmljdWx0IHRvIHdyaXRlIGNvcnJlY3RseSBhbmQgY29uY2lzZWx5Lgot
Ci0gICAgVGhlIGBgYXBwcm94YGAgY2xhc3MgcGVyZm9ybXMgZmxvYXRpbmctcG9pbnQgY29tcGFy
aXNvbnMgdXNpbmcgYSBzeW50YXgKLSAgICB0aGF0J3MgYXMgaW50dWl0aXZlIGFzIHBvc3NpYmxl
OjoKLQotICAgICAgICA+Pj4gZnJvbSBweXRlc3QgaW1wb3J0IGFwcHJveAotICAgICAgICA+Pj4g
MC4xICsgMC4yID09IGFwcHJveCgwLjMpCi0gICAgICAgIFRydWUKLQotICAgIFRoZSBzYW1lIHN5
bnRheCBhbHNvIHdvcmtzIGZvciBzZXF1ZW5jZXMgb2YgbnVtYmVyczo6Ci0KLSAgICAgICAgPj4+
ICgwLjEgKyAwLjIsIDAuMiArIDAuNCkgPT0gYXBwcm94KCgwLjMsIDAuNikpCi0gICAgICAgIFRy
dWUKLQotICAgIERpY3Rpb25hcnkgKnZhbHVlcyo6OgotCi0gICAgICAgID4+PiB7J2EnOiAwLjEg
KyAwLjIsICdiJzogMC4yICsgMC40fSA9PSBhcHByb3goeydhJzogMC4zLCAnYic6IDAuNn0pCi0g
ICAgICAgIFRydWUKLQotICAgIEFuZCBgYG51bXB5YGAgYXJyYXlzOjoKLQotICAgICAgICA+Pj4g
aW1wb3J0IG51bXB5IGFzIG5wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICMgZG9jdGVzdDogK1NLSVAKLSAgICAgICAgPj4+IG5wLmFycmF5
KFswLjEsIDAuMl0pICsgbnAuYXJyYXkoWzAuMiwgMC40XSkgPT0gYXBwcm94KG5wLmFycmF5KFsw
LjMsIDAuNl0pKSAjIGRvY3Rlc3Q6ICtTS0lQCi0gICAgICAgIFRydWUKLQotICAgIEJ5IGRlZmF1
bHQsIGBgYXBwcm94YGAgY29uc2lkZXJzIG51bWJlcnMgd2l0aGluIGEgcmVsYXRpdmUgdG9sZXJh
bmNlIG9mCi0gICAgYGAxZS02YGAgKGkuZS4gb25lIHBhcnQgaW4gYSBtaWxsaW9uKSBvZiBpdHMg
ZXhwZWN0ZWQgdmFsdWUgdG8gYmUgZXF1YWwuCi0gICAgVGhpcyB0cmVhdG1lbnQgd291bGQgbGVh
ZCB0byBzdXJwcmlzaW5nIHJlc3VsdHMgaWYgdGhlIGV4cGVjdGVkIHZhbHVlIHdhcwotICAgIGBg
MC4wYGAsIGJlY2F1c2Ugbm90aGluZyBidXQgYGAwLjBgYCBpdHNlbGYgaXMgcmVsYXRpdmVseSBj
bG9zZSB0byBgYDAuMGBgLgotICAgIFRvIGhhbmRsZSB0aGlzIGNhc2UgbGVzcyBzdXJwcmlzaW5n
bHksIGBgYXBwcm94YGAgYWxzbyBjb25zaWRlcnMgbnVtYmVycwotICAgIHdpdGhpbiBhbiBhYnNv
bHV0ZSB0b2xlcmFuY2Ugb2YgYGAxZS0xMmBgIG9mIGl0cyBleHBlY3RlZCB2YWx1ZSB0byBiZQot
ICAgIGVxdWFsLiAgSW5maW5pdHkgYW5kIE5hTiBhcmUgc3BlY2lhbCBjYXNlcy4gIEluZmluaXR5
IGlzIG9ubHkgY29uc2lkZXJlZAotICAgIGVxdWFsIHRvIGl0c2VsZiwgcmVnYXJkbGVzcyBvZiB0
aGUgcmVsYXRpdmUgdG9sZXJhbmNlLiAgTmFOIGlzIG5vdAotICAgIGNvbnNpZGVyZWQgZXF1YWwg
dG8gYW55dGhpbmcgYnkgZGVmYXVsdCwgYnV0IHlvdSBjYW4gbWFrZSBpdCBiZSBlcXVhbCB0bwot
ICAgIGl0c2VsZiBieSBzZXR0aW5nIHRoZSBgYG5hbl9va2BgIGFyZ3VtZW50IHRvIFRydWUuICAo
VGhpcyBpcyBtZWFudCB0bwotICAgIGZhY2lsaXRhdGUgY29tcGFyaW5nIGFycmF5cyB0aGF0IHVz
ZSBOYU4gdG8gbWVhbiAibm8gZGF0YSIuKQotCi0gICAgQm90aCB0aGUgcmVsYXRpdmUgYW5kIGFi
c29sdXRlIHRvbGVyYW5jZXMgY2FuIGJlIGNoYW5nZWQgYnkgcGFzc2luZwotICAgIGFyZ3VtZW50
cyB0byB0aGUgYGBhcHByb3hgYCBjb25zdHJ1Y3Rvcjo6Ci0KLSAgICAgICAgPj4+IDEuMDAwMSA9
PSBhcHByb3goMSkKLSAgICAgICAgRmFsc2UKLSAgICAgICAgPj4+IDEuMDAwMSA9PSBhcHByb3go
MSwgcmVsPTFlLTMpCi0gICAgICAgIFRydWUKLSAgICAgICAgPj4+IDEuMDAwMSA9PSBhcHByb3go
MSwgYWJzPTFlLTMpCi0gICAgICAgIFRydWUKLQotICAgIElmIHlvdSBzcGVjaWZ5IGBgYWJzYGAg
YnV0IG5vdCBgYHJlbGBgLCB0aGUgY29tcGFyaXNvbiB3aWxsIG5vdCBjb25zaWRlcgotICAgIHRo
ZSByZWxhdGl2ZSB0b2xlcmFuY2UgYXQgYWxsLiAgSW4gb3RoZXIgd29yZHMsIHR3byBudW1iZXJz
IHRoYXQgYXJlIHdpdGhpbgotICAgIHRoZSBkZWZhdWx0IHJlbGF0aXZlIHRvbGVyYW5jZSBvZiBg
YDFlLTZgYCB3aWxsIHN0aWxsIGJlIGNvbnNpZGVyZWQgdW5lcXVhbAotICAgIGlmIHRoZXkgZXhj
ZWVkIHRoZSBzcGVjaWZpZWQgYWJzb2x1dGUgdG9sZXJhbmNlLiAgSWYgeW91IHNwZWNpZnkgYm90
aAotICAgIGBgYWJzYGAgYW5kIGBgcmVsYGAsIHRoZSBudW1iZXJzIHdpbGwgYmUgY29uc2lkZXJl
ZCBlcXVhbCBpZiBlaXRoZXIKLSAgICB0b2xlcmFuY2UgaXMgbWV0OjoKLQotICAgICAgICA+Pj4g
MSArIDFlLTggPT0gYXBwcm94KDEpCi0gICAgICAgIFRydWUKLSAgICAgICAgPj4+IDEgKyAxZS04
ID09IGFwcHJveCgxLCBhYnM9MWUtMTIpCi0gICAgICAgIEZhbHNlCi0gICAgICAgID4+PiAxICsg
MWUtOCA9PSBhcHByb3goMSwgcmVsPTFlLTYsIGFicz0xZS0xMikKLSAgICAgICAgVHJ1ZQotCi0g
ICAgSWYgeW91J3JlIHRoaW5raW5nIGFib3V0IHVzaW5nIGBgYXBwcm94YGAsIHRoZW4geW91IG1p
Z2h0IHdhbnQgdG8ga25vdyBob3cKLSAgICBpdCBjb21wYXJlcyB0byBvdGhlciBnb29kIHdheXMg
b2YgY29tcGFyaW5nIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuICBBbGwgb2YKLSAgICB0aGVzZSBh
bGdvcml0aG1zIGFyZSBiYXNlZCBvbiByZWxhdGl2ZSBhbmQgYWJzb2x1dGUgdG9sZXJhbmNlcyBh
bmQgc2hvdWxkCi0gICAgYWdyZWUgZm9yIHRoZSBtb3N0IHBhcnQsIGJ1dCB0aGV5IGRvIGhhdmUg
bWVhbmluZ2Z1bCBkaWZmZXJlbmNlczoKLQotICAgIC0gYGBtYXRoLmlzY2xvc2UoYSwgYiwgcmVs
X3RvbD0xZS05LCBhYnNfdG9sPTAuMClgYDogIFRydWUgaWYgdGhlIHJlbGF0aXZlCi0gICAgICB0
b2xlcmFuY2UgaXMgbWV0IHcuci50LiBlaXRoZXIgYGBhYGAgb3IgYGBiYGAgb3IgaWYgdGhlIGFi
c29sdXRlCi0gICAgICB0b2xlcmFuY2UgaXMgbWV0LiAgQmVjYXVzZSB0aGUgcmVsYXRpdmUgdG9s
ZXJhbmNlIGlzIGNhbGN1bGF0ZWQgdy5yLnQuCi0gICAgICBib3RoIGBgYWBgIGFuZCBgYGJgYCwg
dGhpcyB0ZXN0IGlzIHN5bW1ldHJpYyAoaS5lLiAgbmVpdGhlciBgYGFgYCBub3IKLSAgICAgIGBg
YmBgIGlzIGEgInJlZmVyZW5jZSB2YWx1ZSIpLiAgWW91IGhhdmUgdG8gc3BlY2lmeSBhbiBhYnNv
bHV0ZSB0b2xlcmFuY2UKLSAgICAgIGlmIHlvdSB3YW50IHRvIGNvbXBhcmUgdG8gYGAwLjBgYCBi
ZWNhdXNlIHRoZXJlIGlzIG5vIHRvbGVyYW5jZSBieQotICAgICAgZGVmYXVsdC4gIE9ubHkgYXZh
aWxhYmxlIGluIHB5dGhvbj49My41LiAgYE1vcmUgaW5mb3JtYXRpb24uLi5gX18KLQotICAgICAg
X18gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L21hdGguaHRtbCNtYXRoLmlzY2xv
c2UKLQotICAgIC0gYGBudW1weS5pc2Nsb3NlKGEsIGIsIHJ0b2w9MWUtNSwgYXRvbD0xZS04KWBg
OiBUcnVlIGlmIHRoZSBkaWZmZXJlbmNlCi0gICAgICBiZXR3ZWVuIGBgYWBgIGFuZCBgYGJgYCBp
cyBsZXNzIHRoYXQgdGhlIHN1bSBvZiB0aGUgcmVsYXRpdmUgdG9sZXJhbmNlCi0gICAgICB3LnIu
dC4gYGBiYGAgYW5kIHRoZSBhYnNvbHV0ZSB0b2xlcmFuY2UuICBCZWNhdXNlIHRoZSByZWxhdGl2
ZSB0b2xlcmFuY2UKLSAgICAgIGlzIG9ubHkgY2FsY3VsYXRlZCB3LnIudC4gYGBiYGAsIHRoaXMg
dGVzdCBpcyBhc3ltbWV0cmljIGFuZCB5b3UgY2FuCi0gICAgICB0aGluayBvZiBgYGJgYCBhcyB0
aGUgcmVmZXJlbmNlIHZhbHVlLiAgU3VwcG9ydCBmb3IgY29tcGFyaW5nIHNlcXVlbmNlcwotICAg
ICAgaXMgcHJvdmlkZWQgYnkgYGBudW1weS5hbGxjbG9zZWBgLiAgYE1vcmUgaW5mb3JtYXRpb24u
Li5gX18KLQotICAgICAgX18gaHR0cDovL2RvY3Muc2NpcHkub3JnL2RvYy9udW1weS0xLjEwLjAv
cmVmZXJlbmNlL2dlbmVyYXRlZC9udW1weS5pc2Nsb3NlLmh0bWwKLQotICAgIC0gYGB1bml0dGVz
dC5UZXN0Q2FzZS5hc3NlcnRBbG1vc3RFcXVhbChhLCBiKWBgOiBUcnVlIGlmIGBgYWBgIGFuZCBg
YGJgYAotICAgICAgYXJlIHdpdGhpbiBhbiBhYnNvbHV0ZSB0b2xlcmFuY2Ugb2YgYGAxZS03YGAu
ICBObyByZWxhdGl2ZSB0b2xlcmFuY2UgaXMKLSAgICAgIGNvbnNpZGVyZWQgYW5kIHRoZSBhYnNv
bHV0ZSB0b2xlcmFuY2UgY2Fubm90IGJlIGNoYW5nZWQsIHNvIHRoaXMgZnVuY3Rpb24KLSAgICAg
IGlzIG5vdCBhcHByb3ByaWF0ZSBmb3IgdmVyeSBsYXJnZSBvciB2ZXJ5IHNtYWxsIG51bWJlcnMu
ICBBbHNvLCBpdCdzIG9ubHkKLSAgICAgIGF2YWlsYWJsZSBpbiBzdWJjbGFzc2VzIG9mIGBgdW5p
dHRlc3QuVGVzdENhc2VgYCBhbmQgaXQncyB1Z2x5IGJlY2F1c2UgaXQKLSAgICAgIGRvZXNuJ3Qg
Zm9sbG93IFBFUDguICBgTW9yZSBpbmZvcm1hdGlvbi4uLmBfXwotCi0gICAgICBfXyBodHRwczov
L2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvdW5pdHRlc3QuaHRtbCN1bml0dGVzdC5UZXN0Q2Fz
ZS5hc3NlcnRBbG1vc3RFcXVhbAotCi0gICAgLSBgYGEgPT0gcHl0ZXN0LmFwcHJveChiLCByZWw9
MWUtNiwgYWJzPTFlLTEyKWBgOiBUcnVlIGlmIHRoZSByZWxhdGl2ZQotICAgICAgdG9sZXJhbmNl
IGlzIG1ldCB3LnIudC4gYGBiYGAgb3IgaWYgdGhlIGFic29sdXRlIHRvbGVyYW5jZSBpcyBtZXQu
Ci0gICAgICBCZWNhdXNlIHRoZSByZWxhdGl2ZSB0b2xlcmFuY2UgaXMgb25seSBjYWxjdWxhdGVk
IHcuci50LiBgYGJgYCwgdGhpcyB0ZXN0Ci0gICAgICBpcyBhc3ltbWV0cmljIGFuZCB5b3UgY2Fu
IHRoaW5rIG9mIGBgYmBgIGFzIHRoZSByZWZlcmVuY2UgdmFsdWUuICBJbiB0aGUKLSAgICAgIHNw
ZWNpYWwgY2FzZSB0aGF0IHlvdSBleHBsaWNpdGx5IHNwZWNpZnkgYW4gYWJzb2x1dGUgdG9sZXJh
bmNlIGJ1dCBub3QgYQotICAgICAgcmVsYXRpdmUgdG9sZXJhbmNlLCBvbmx5IHRoZSBhYnNvbHV0
ZSB0b2xlcmFuY2UgaXMgY29uc2lkZXJlZC4KLQotICAgIC4uIHdhcm5pbmc6OgotCi0gICAgICAg
Li4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKLQotICAgICAgIEluIG9yZGVyIHRvIGF2b2lkIGluY29u
c2lzdGVudCBiZWhhdmlvciwgYGBUeXBlRXJyb3JgYCBpcwotICAgICAgIHJhaXNlZCBmb3IgYGA+
YGAsIGBgPj1gYCwgYGA8YGAgYW5kIGBgPD1gYCBjb21wYXJpc29ucy4KLSAgICAgICBUaGUgZXhh
bXBsZSBiZWxvdyBpbGx1c3RyYXRlcyB0aGUgcHJvYmxlbTo6Ci0KLSAgICAgICAgICAgYXNzZXJ0
IGFwcHJveCgwLjEpID4gMC4xICsgMWUtMTAgICMgY2FsbHMgYXBwcm94KDAuMSkuX19ndF9fKDAu
MSArIDFlLTEwKQotICAgICAgICAgICBhc3NlcnQgMC4xICsgMWUtMTAgPiBhcHByb3goMC4xKSAg
IyBjYWxscyBhcHByb3goMC4xKS5fX2x0X18oMC4xICsgMWUtMTApCi0KLSAgICAgICBJbiB0aGUg
c2Vjb25kIGV4YW1wbGUgb25lIGV4cGVjdHMgYGBhcHByb3goMC4xKS5fX2xlX18oMC4xICsgMWUt
MTApYGAKLSAgICAgICB0byBiZSBjYWxsZWQuIEJ1dCBpbnN0ZWFkLCBgYGFwcHJveCgwLjEpLl9f
bHRfXygwLjEgKyAxZS0xMClgYCBpcyB1c2VkIHRvCi0gICAgICAgY29tcGFyaXNvbi4gVGhpcyBp
cyBiZWNhdXNlIHRoZSBjYWxsIGhpZXJhcmNoeSBvZiByaWNoIGNvbXBhcmlzb25zCi0gICAgICAg
Zm9sbG93cyBhIGZpeGVkIGJlaGF2aW9yLiBgTW9yZSBpbmZvcm1hdGlvbi4uLmBfXwotCi0gICAg
ICAgX18gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvZGF0YW1vZGVsLmh0bWwj
b2JqZWN0Ll9fZ2VfXwotICAgICIiIgotCi0gICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTWFw
cGluZywgU2VxdWVuY2UKLSAgICBmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBTVFJJTkdfVFlQ
RVMgYXMgU3RyaW5nCi0KLSAgICAjIERlbGVnYXRlIHRoZSBjb21wYXJpc29uIHRvIGEgY2xhc3Mg
dGhhdCBrbm93cyBob3cgdG8gZGVhbCB3aXRoIHRoZSB0eXBlCi0gICAgIyBvZiB0aGUgZXhwZWN0
ZWQgdmFsdWUgKGUuZy4gaW50LCBmbG9hdCwgbGlzdCwgZGljdCwgbnVtcHkuYXJyYXksIGV0Yyku
Ci0gICAgIwotICAgICMgVGhpcyBhcmNoaXRlY3R1cmUgaXMgcmVhbGx5IGRyaXZlbiBieSB0aGUg
bmVlZCB0byBzdXBwb3J0IG51bXB5IGFycmF5cy4KLSAgICAjIFRoZSBvbmx5IHdheSB0byBvdmVy
cmlkZSBgPT1gIGZvciBhcnJheXMgd2l0aG91dCByZXF1aXJpbmcgdGhhdCBhcHByb3ggYmUKLSAg
ICAjIHRoZSBsZWZ0IG9wZXJhbmQgaXMgdG8gaW5oZXJpdCB0aGUgYXBwcm94IG9iamVjdCBmcm9t
IGBudW1weS5uZGFycmF5YC4KLSAgICAjIEJ1dCB0aGF0IGNhbid0IGJlIGEgZ2VuZXJhbCBzb2x1
dGlvbiwgYmVjYXVzZSBpdCByZXF1aXJlcyAoMSkgbnVtcHkgdG8gYmUKLSAgICAjIGluc3RhbGxl
ZCBhbmQgKDIpIHRoZSBleHBlY3RlZCB2YWx1ZSB0byBiZSBhIG51bXB5IGFycmF5LiAgU28gdGhl
IGdlbmVyYWwKLSAgICAjIHNvbHV0aW9uIGlzIHRvIGRlbGVnYXRlIGVhY2ggdHlwZSBvZiBleHBl
Y3RlZCB2YWx1ZSB0byBhIGRpZmZlcmVudCBjbGFzcy4KLSAgICAjCi0gICAgIyBUaGlzIGhhcyB0
aGUgYWR2YW50YWdlIHRoYXQgaXQgbWFkZSBpdCBlYXN5IHRvIHN1cHBvcnQgbWFwcGluZyB0eXBl
cwotICAgICMgKGkuZS4gZGljdCkuICBUaGUgb2xkIGNvZGUgYWNjZXB0ZWQgbWFwcGluZyB0eXBl
cywgYnV0IHdvdWxkIG9ubHkgY29tcGFyZQotICAgICMgdGhlaXIga2V5cywgd2hpY2ggaXMgcHJv
YmFibHkgbm90IHdoYXQgbW9zdCBwZW9wbGUgd291bGQgZXhwZWN0LgotCi0gICAgaWYgX2lzX251
bXB5X2FycmF5KGV4cGVjdGVkKToKLSAgICAgICAgY2xzID0gQXBwcm94TnVtcHkKLSAgICBlbGlm
IGlzaW5zdGFuY2UoZXhwZWN0ZWQsIE1hcHBpbmcpOgotICAgICAgICBjbHMgPSBBcHByb3hNYXBw
aW5nCi0gICAgZWxpZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBTZXF1ZW5jZSkgYW5kIG5vdCBpc2lu
c3RhbmNlKGV4cGVjdGVkLCBTdHJpbmcpOgotICAgICAgICBjbHMgPSBBcHByb3hTZXF1ZW5jZQot
ICAgIGVsc2U6Ci0gICAgICAgIGNscyA9IEFwcHJveFNjYWxhcgotCi0gICAgcmV0dXJuIGNscyhl
eHBlY3RlZCwgcmVsLCBhYnMsIG5hbl9vaykKLQotCi1kZWYgX2lzX251bXB5X2FycmF5KG9iaik6
Ci0gICAgIiIiCi0gICAgUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBhIG51bXB5
IGFycmF5LiAgTWFrZSBhIHNwZWNpYWwgZWZmb3J0IHRvCi0gICAgYXZvaWQgaW1wb3J0aW5nIG51
bXB5IHVubGVzcyBpdCdzIHJlYWxseSBuZWNlc3NhcnkuCi0gICAgIiIiCi0gICAgaW1wb3J0IGlu
c3BlY3QKLQotICAgIGZvciBjbHMgaW4gaW5zcGVjdC5nZXRtcm8odHlwZShvYmopKToKLSAgICAg
ICAgaWYgY2xzLl9fbW9kdWxlX18gPT0gJ251bXB5JzoKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICBpbXBvcnQgbnVtcHkgYXMgbnAKLSAgICAgICAgICAgICAgICByZXR1cm4gaXNp
bnN0YW5jZShvYmosIG5wLm5kYXJyYXkpCi0gICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6
Ci0gICAgICAgICAgICAgICAgcGFzcwotCi0gICAgcmV0dXJuIEZhbHNlCi0KLQotIyBidWlsdGlu
IHB5dGVzdC5yYWlzZXMgaGVscGVyCi0KLWRlZiByYWlzZXMoZXhwZWN0ZWRfZXhjZXB0aW9uLCAq
YXJncywgKiprd2FyZ3MpOgotICAgICIiIgotICAgIEFzc2VydCB0aGF0IGEgY29kZSBibG9jay9m
dW5jdGlvbiBjYWxsIHJhaXNlcyBgYGV4cGVjdGVkX2V4Y2VwdGlvbmBgCi0gICAgYW5kIHJhaXNl
IGEgZmFpbHVyZSBleGNlcHRpb24gb3RoZXJ3aXNlLgotCi0gICAgVGhpcyBoZWxwZXIgcHJvZHVj
ZXMgYSBgYEV4Y2VwdGlvbkluZm8oKWBgIG9iamVjdCAoc2VlIGJlbG93KS4KLQotICAgIFlvdSBt
YXkgdXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBjb250ZXh0IG1hbmFnZXI6OgotCi0gICAgICAgID4+
PiB3aXRoIHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6Ci0gICAgICAgIC4uLiAgICAxLzAKLQot
ICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMi4xMAotCi0gICAgSW4gdGhlIGNvbnRleHQgbWFuYWdl
ciBmb3JtIHlvdSBtYXkgdXNlIHRoZSBrZXl3b3JkIGFyZ3VtZW50Ci0gICAgYGBtZXNzYWdlYGAg
dG8gc3BlY2lmeSBhIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2U6OgotCi0gICAgICAgID4+PiB3aXRo
IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgbWVzc2FnZT0iRXhwZWN0aW5nIFplcm9EaXZpc2lv
bkVycm9yIik6Ci0gICAgICAgIC4uLiAgICBwYXNzCi0gICAgICAgIFRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKLSAgICAgICAgICAuLi4KLSAgICAgICAgRmFpbGVkOiBFeHBlY3Rp
bmcgWmVyb0RpdmlzaW9uRXJyb3IKLQotICAgIC4uIG5vdGU6OgotCi0gICAgICAgV2hlbiB1c2lu
ZyBgYHB5dGVzdC5yYWlzZXNgYCBhcyBhIGNvbnRleHQgbWFuYWdlciwgaXQncyB3b3J0aHdoaWxl
IHRvCi0gICAgICAgbm90ZSB0aGF0IG5vcm1hbCBjb250ZXh0IG1hbmFnZXIgcnVsZXMgYXBwbHkg
YW5kIHRoYXQgdGhlIGV4Y2VwdGlvbgotICAgICAgIHJhaXNlZCAqbXVzdCogYmUgdGhlIGZpbmFs
IGxpbmUgaW4gdGhlIHNjb3BlIG9mIHRoZSBjb250ZXh0IG1hbmFnZXIuCi0gICAgICAgTGluZXMg
b2YgY29kZSBhZnRlciB0aGF0LCB3aXRoaW4gdGhlIHNjb3BlIG9mIHRoZSBjb250ZXh0IG1hbmFn
ZXIgd2lsbAotICAgICAgIG5vdCBiZSBleGVjdXRlZC4gRm9yIGV4YW1wbGU6OgotCi0gICAgICAg
ICAgID4+PiB2YWx1ZSA9IDE1Ci0gICAgICAgICAgID4+PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9y
KSBhcyBleGNfaW5mbzoKLSAgICAgICAgICAgLi4uICAgICBpZiB2YWx1ZSA+IDEwOgotICAgICAg
ICAgICAuLi4gICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJlIDw9IDEwIikK
LSAgICAgICAgICAgLi4uICAgICBhc3NlcnQgZXhjX2luZm8udHlwZSA9PSBWYWx1ZUVycm9yICAj
IHRoaXMgd2lsbCBub3QgZXhlY3V0ZQotCi0gICAgICAgSW5zdGVhZCwgdGhlIGZvbGxvd2luZyBh
cHByb2FjaCBtdXN0IGJlIHRha2VuIChub3RlIHRoZSBkaWZmZXJlbmNlIGluCi0gICAgICAgc2Nv
cGUpOjoKLQotICAgICAgICAgICA+Pj4gd2l0aCByYWlzZXMoVmFsdWVFcnJvcikgYXMgZXhjX2lu
Zm86Ci0gICAgICAgICAgIC4uLiAgICAgaWYgdmFsdWUgPiAxMDoKLSAgICAgICAgICAgLi4uICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigidmFsdWUgbXVzdCBiZSA8PSAxMCIpCi0gICAgICAgICAg
IC4uLgotICAgICAgICAgICA+Pj4gYXNzZXJ0IGV4Y19pbmZvLnR5cGUgPT0gVmFsdWVFcnJvcgot
Ci0KLSAgICBTaW5jZSB2ZXJzaW9uIGBgMy4xYGAgeW91IGNhbiB1c2UgdGhlIGtleXdvcmQgYXJn
dW1lbnQgYGBtYXRjaGBgIHRvIGFzc2VydCB0aGF0IHRoZQotICAgIGV4Y2VwdGlvbiBtYXRjaGVz
IGEgdGV4dCBvciByZWdleDo6Ci0KLSAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZhbHVlRXJyb3Is
IG1hdGNoPSdtdXN0IGJlIDAgb3IgTm9uZScpOgotICAgICAgICAuLi4gICAgIHJhaXNlIFZhbHVl
RXJyb3IoInZhbHVlIG11c3QgYmUgMCBvciBOb25lIikKLQotICAgICAgICA+Pj4gd2l0aCByYWlz
ZXMoVmFsdWVFcnJvciwgbWF0Y2g9cidtdXN0IGJlIFxkKyQnKToKLSAgICAgICAgLi4uICAgICBy
YWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJlIDQyIikKLQotICAgICoqTGVnYWN5IGZvcm1z
KioKLQotICAgIFRoZSBmb3JtcyBiZWxvdyBhcmUgZnVsbHkgc3VwcG9ydGVkIGJ1dCBhcmUgZGlz
Y291cmFnZWQgZm9yIG5ldyBjb2RlIGJlY2F1c2UgdGhlCi0gICAgY29udGV4dCBtYW5hZ2VyIGZv
cm0gaXMgcmVnYXJkZWQgYXMgbW9yZSByZWFkYWJsZSBhbmQgbGVzcyBlcnJvci1wcm9uZS4KLQot
ICAgIEl0IGlzIHBvc3NpYmxlIHRvIHNwZWNpZnkgYSBjYWxsYWJsZSBieSBwYXNzaW5nIGEgdG8t
YmUtY2FsbGVkIGxhbWJkYTo6Ci0KLSAgICAgICAgPj4+IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJv
ciwgbGFtYmRhOiAxLzApCi0gICAgICAgIDxFeGNlcHRpb25JbmZvIC4uLj4KLQotICAgIG9yIHlv
dSBjYW4gc3BlY2lmeSBhbiBhcmJpdHJhcnkgY2FsbGFibGUgd2l0aCBhcmd1bWVudHM6OgotCi0g
ICAgICAgID4+PiBkZWYgZih4KTogcmV0dXJuIDEveAotICAgICAgICAuLi4KLSAgICAgICAgPj4+
IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgZiwgMCkKLSAgICAgICAgPEV4Y2VwdGlvbkluZm8g
Li4uPgotICAgICAgICA+Pj4gcmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLCBmLCB4PTApCi0gICAg
ICAgIDxFeGNlcHRpb25JbmZvIC4uLj4KLQotICAgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gcGFz
cyBhIHN0cmluZyB0byBiZSBldmFsdWF0ZWQgYXQgcnVudGltZTo6Ci0KLSAgICAgICAgPj4+IHJh
aXNlcyhaZXJvRGl2aXNpb25FcnJvciwgImYoMCkiKQotICAgICAgICA8RXhjZXB0aW9uSW5mbyAu
Li4+Ci0KLSAgICBUaGUgc3RyaW5nIHdpbGwgYmUgZXZhbHVhdGVkIHVzaW5nIHRoZSBzYW1lIGBg
bG9jYWxzKClgYCBhbmQgYGBnbG9iYWxzKClgYAotICAgIGF0IHRoZSBtb21lbnQgb2YgdGhlIGBg
cmFpc2VzYGAgY2FsbC4KLQotICAgIC4uIGF1dG9jbGFzczo6IF9weXRlc3QuX2NvZGUuRXhjZXB0
aW9uSW5mbwotICAgICAgICA6bWVtYmVyczoKLQotICAgIC4uIG5vdGU6OgotICAgICAgICBTaW1p
bGFyIHRvIGNhdWdodCBleGNlcHRpb24gb2JqZWN0cyBpbiBQeXRob24sIGV4cGxpY2l0bHkgY2xl
YXJpbmcKLSAgICAgICAgbG9jYWwgcmVmZXJlbmNlcyB0byByZXR1cm5lZCBgYEV4Y2VwdGlvbklu
Zm9gYCBvYmplY3RzIGNhbgotICAgICAgICBoZWxwIHRoZSBQeXRob24gaW50ZXJwcmV0ZXIgc3Bl
ZWQgdXAgaXRzIGdhcmJhZ2UgY29sbGVjdGlvbi4KLQotICAgICAgICBDbGVhcmluZyB0aG9zZSBy
ZWZlcmVuY2VzIGJyZWFrcyBhIHJlZmVyZW5jZSBjeWNsZQotICAgICAgICAoYGBFeGNlcHRpb25J
bmZvYGAgLS0+IGNhdWdodCBleGNlcHRpb24gLS0+IGZyYW1lIHN0YWNrIHJhaXNpbmcKLSAgICAg
ICAgdGhlIGV4Y2VwdGlvbiAtLT4gY3VycmVudCBmcmFtZSBzdGFjayAtLT4gbG9jYWwgdmFyaWFi
bGVzIC0tPgotICAgICAgICBgYEV4Y2VwdGlvbkluZm9gYCkgd2hpY2ggbWFrZXMgUHl0aG9uIGtl
ZXAgYWxsIG9iamVjdHMgcmVmZXJlbmNlZAotICAgICAgICBmcm9tIHRoYXQgY3ljbGUgKGluY2x1
ZGluZyBhbGwgbG9jYWwgdmFyaWFibGVzIGluIHRoZSBjdXJyZW50Ci0gICAgICAgIGZyYW1lKSBh
bGl2ZSB1bnRpbCB0aGUgbmV4dCBjeWNsaWMgZ2FyYmFnZSBjb2xsZWN0aW9uIHJ1bi4gU2VlIHRo
ZQotICAgICAgICBvZmZpY2lhbCBQeXRob24gYGB0cnlgYCBzdGF0ZW1lbnQgZG9jdW1lbnRhdGlv
biBmb3IgbW9yZSBkZXRhaWxlZAotICAgICAgICBpbmZvcm1hdGlvbi4KLQotICAgICIiIgotICAg
IF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgIG1zZyA9ICgiZXhjZXB0aW9ucyBtdXN0IGJl
IG9sZC1zdHlsZSBjbGFzc2VzIG9yIgotICAgICAgICAgICAiIGRlcml2ZWQgZnJvbSBCYXNlRXhj
ZXB0aW9uLCBub3QgJXMiKQotICAgIGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWRfZXhjZXB0aW9uLCB0
dXBsZSk6Ci0gICAgICAgIGZvciBleGMgaW4gZXhwZWN0ZWRfZXhjZXB0aW9uOgotICAgICAgICAg
ICAgaWYgbm90IGlzY2xhc3MoZXhjKToKLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3Io
bXNnICUgdHlwZShleGMpKQotICAgIGVsaWYgbm90IGlzY2xhc3MoZXhwZWN0ZWRfZXhjZXB0aW9u
KToKLSAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZyAlIHR5cGUoZXhwZWN0ZWRfZXhjZXB0aW9u
KSkKLQotICAgIG1lc3NhZ2UgPSAiRElEIE5PVCBSQUlTRSB7MH0iLmZvcm1hdChleHBlY3RlZF9l
eGNlcHRpb24pCi0gICAgbWF0Y2hfZXhwciA9IE5vbmUKLQotICAgIGlmIG5vdCBhcmdzOgotICAg
ICAgICBpZiAibWVzc2FnZSIgaW4ga3dhcmdzOgotICAgICAgICAgICAgbWVzc2FnZSA9IGt3YXJn
cy5wb3AoIm1lc3NhZ2UiKQotICAgICAgICBpZiAibWF0Y2giIGluIGt3YXJnczoKLSAgICAgICAg
ICAgIG1hdGNoX2V4cHIgPSBrd2FyZ3MucG9wKCJtYXRjaCIpCi0gICAgICAgICAgICBtZXNzYWdl
ICs9ICIgbWF0Y2hpbmcgJ3swfSciLmZvcm1hdChtYXRjaF9leHByKQotICAgICAgICByZXR1cm4g
UmFpc2VzQ29udGV4dChleHBlY3RlZF9leGNlcHRpb24sIG1lc3NhZ2UsIG1hdGNoX2V4cHIpCi0g
ICAgZWxpZiBpc2luc3RhbmNlKGFyZ3NbMF0sIHN0cik6Ci0gICAgICAgIGNvZGUsID0gYXJncwot
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2RlLCBzdHIpCi0gICAgICAgIGZyYW1lID0gc3lz
Ll9nZXRmcmFtZSgxKQotICAgICAgICBsb2MgPSBmcmFtZS5mX2xvY2Fscy5jb3B5KCkKLSAgICAg
ICAgbG9jLnVwZGF0ZShrd2FyZ3MpCi0gICAgICAgICMgcHJpbnQgInJhaXNlcyBmcmFtZSBzY29w
ZTogJXIiICUgZnJhbWUuZl9sb2NhbHMKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29kZSA9
IF9weXRlc3QuX2NvZGUuU291cmNlKGNvZGUpLmNvbXBpbGUoKQotICAgICAgICAgICAgcHkuYnVp
bHRpbi5leGVjXyhjb2RlLCBmcmFtZS5mX2dsb2JhbHMsIGxvYykKLSAgICAgICAgICAgICMgWFhY
IGRpZG4nVCBtZWFuIGZfZ2xvYmFscyA9PSBmX2xvY2FscyBzb21ldGhpbmcgc3BlY2lhbD8KLSAg
ICAgICAgICAgICMgICAgIHRoaXMgaXMgZGVzdHJveWVkIGhlcmUgLi4uCi0gICAgICAgIGV4Y2Vw
dCBleHBlY3RlZF9leGNlcHRpb246Ci0gICAgICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5F
eGNlcHRpb25JbmZvKCkKLSAgICBlbHNlOgotICAgICAgICBmdW5jID0gYXJnc1swXQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBmdW5jKCphcmdzWzE6XSwgKiprd2FyZ3MpCi0gICAgICAgIGV4
Y2VwdCBleHBlY3RlZF9leGNlcHRpb246Ci0gICAgICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29k
ZS5FeGNlcHRpb25JbmZvKCkKLSAgICBmYWlsKG1lc3NhZ2UpCi0KLQotcmFpc2VzLkV4Y2VwdGlv
biA9IGZhaWwuRXhjZXB0aW9uCi0KLQotY2xhc3MgUmFpc2VzQ29udGV4dChvYmplY3QpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBleHBlY3RlZF9leGNlcHRpb24sIG1lc3NhZ2UsIG1hdGNoX2V4
cHIpOgotICAgICAgICBzZWxmLmV4cGVjdGVkX2V4Y2VwdGlvbiA9IGV4cGVjdGVkX2V4Y2VwdGlv
bgotICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCi0gICAgICAgIHNlbGYubWF0Y2hfZXhw
ciA9IG1hdGNoX2V4cHIKLSAgICAgICAgc2VsZi5leGNpbmZvID0gTm9uZQotCi0gICAgZGVmIF9f
ZW50ZXJfXyhzZWxmKToKLSAgICAgICAgc2VsZi5leGNpbmZvID0gb2JqZWN0Ll9fbmV3X18oX3B5
dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKQotICAgICAgICByZXR1cm4gc2VsZi5leGNpbmZvCi0K
LSAgICBkZWYgX19leGl0X18oc2VsZiwgKnRwKToKLSAgICAgICAgX190cmFjZWJhY2toaWRlX18g
PSBUcnVlCi0gICAgICAgIGlmIHRwWzBdIGlzIE5vbmU6Ci0gICAgICAgICAgICBmYWlsKHNlbGYu
bWVzc2FnZSkKLSAgICAgICAgc2VsZi5leGNpbmZvLl9faW5pdF9fKHRwKQotICAgICAgICBzdXBw
cmVzc19leGNlcHRpb24gPSBpc3N1YmNsYXNzKHNlbGYuZXhjaW5mby50eXBlLCBzZWxmLmV4cGVj
dGVkX2V4Y2VwdGlvbikKLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyIGFuZCBz
dXBwcmVzc19leGNlcHRpb246Ci0gICAgICAgICAgICBzeXMuZXhjX2NsZWFyKCkKLSAgICAgICAg
aWYgc2VsZi5tYXRjaF9leHByOgotICAgICAgICAgICAgc2VsZi5leGNpbmZvLm1hdGNoKHNlbGYu
bWF0Y2hfZXhwcikKLSAgICAgICAgcmV0dXJuIHN1cHByZXNzX2V4Y2VwdGlvbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZWN3YXJuLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9y
ZWN3YXJuLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmNlYjEwYTdmMzQwNDNm
NDBkYzQzOTYwODkxY2FkYzJmZTQxYTI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVjd2Fybi5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDIzNiArMCwwIEBACi0iIiIgcmVjb3JkaW5nIHdhcm5pbmdzIGR1cmluZyB0ZXN0
IGZ1bmN0aW9uIGV4ZWN1dGlvbi4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBpbnNwZWN0Ci0KLWlt
cG9ydCBfcHl0ZXN0Ll9jb2RlCi1pbXBvcnQgcHkKLWltcG9ydCBzeXMKLWltcG9ydCB3YXJuaW5n
cwotCi1pbXBvcnQgcmUKLQotZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCB5aWVsZF9maXh0
dXJlCi1mcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwKLQotCi1AeWllbGRfZml4dHVy
ZQotZGVmIHJlY3dhcm4oKToKLSAgICAiIiJSZXR1cm4gYSBXYXJuaW5nc1JlY29yZGVyIGluc3Rh
bmNlIHRoYXQgcHJvdmlkZXMgdGhlc2UgbWV0aG9kczoKLQotICAgICogYGBwb3AoY2F0ZWdvcnk9
Tm9uZSlgYDogcmV0dXJuIGxhc3Qgd2FybmluZyBtYXRjaGluZyB0aGUgY2F0ZWdvcnkuCi0gICAg
KiBgYGNsZWFyKClgYDogY2xlYXIgbGlzdCBvZiB3YXJuaW5ncwotCi0gICAgU2VlIGh0dHA6Ly9k
b2NzLnB5dGhvbi5vcmcvbGlicmFyeS93YXJuaW5ncy5odG1sIGZvciBpbmZvcm1hdGlvbgotICAg
IG9uIHdhcm5pbmcgY2F0ZWdvcmllcy4KLSAgICAiIiIKLSAgICB3cmVjID0gV2FybmluZ3NSZWNv
cmRlcigpCi0gICAgd2l0aCB3cmVjOgotICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoJ2Rl
ZmF1bHQnKQotICAgICAgICB5aWVsZCB3cmVjCi0KLQotZGVmIGRlcHJlY2F0ZWRfY2FsbChmdW5j
PU5vbmUsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgIiIiY29udGV4dCBtYW5hZ2VyIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gZW5zdXJlIGEgYmxvY2sgb2YgY29kZSB0cmlnZ2VycyBhCi0gICAgYGBEZXBy
ZWNhdGlvbldhcm5pbmdgYCBvciBgYFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmdgYDo6Ci0KLSAg
ICAgICAgPj4+IGltcG9ydCB3YXJuaW5ncwotICAgICAgICA+Pj4gZGVmIGFwaV9jYWxsX3YyKCk6
Ci0gICAgICAgIC4uLiAgICAgd2FybmluZ3Mud2FybigndXNlIHYzIG9mIHRoaXMgYXBpJywgRGVw
cmVjYXRpb25XYXJuaW5nKQotICAgICAgICAuLi4gICAgIHJldHVybiAyMDAKLQotICAgICAgICA+
Pj4gd2l0aCBkZXByZWNhdGVkX2NhbGwoKToKLSAgICAgICAgLi4uICAgIGFzc2VydCBhcGlfY2Fs
bF92MigpID09IDIwMAotCi0gICAgYGBkZXByZWNhdGVkX2NhbGxgYCBjYW4gYWxzbyBiZSB1c2Vk
IGJ5IHBhc3NpbmcgYSBmdW5jdGlvbiBhbmQgYGAqYXJnc2BgIGFuZCBgYCprd2FyZ3NgYCwKLSAg
ICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgZW5zdXJlIGNhbGxpbmcgYGBmdW5jKCphcmdzLCAqKmt3
YXJncylgYCBwcm9kdWNlcyBvbmUgb2YgdGhlIHdhcm5pbmdzCi0gICAgdHlwZXMgYWJvdmUuCi0g
ICAgIiIiCi0gICAgaWYgbm90IGZ1bmM6Ci0gICAgICAgIHJldHVybiBfRGVwcmVjYXRlZENhbGxD
b250ZXh0KCkKLSAgICBlbHNlOgotICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAg
ICAgICAgd2l0aCBfRGVwcmVjYXRlZENhbGxDb250ZXh0KCk6Ci0gICAgICAgICAgICByZXR1cm4g
ZnVuYygqYXJncywgKiprd2FyZ3MpCi0KLQotY2xhc3MgX0RlcHJlY2F0ZWRDYWxsQ29udGV4dChv
YmplY3QpOgotICAgICIiIkltcGxlbWVudHMgdGhlIGxvZ2ljIHRvIGNhcHR1cmUgZGVwcmVjYXRp
b24gd2FybmluZ3MgYXMgYSBjb250ZXh0IG1hbmFnZXIuIiIiCi0KLSAgICBkZWYgX19lbnRlcl9f
KHNlbGYpOgotICAgICAgICBzZWxmLl9jYXB0dXJlZF9jYXRlZ29yaWVzID0gW10KLSAgICAgICAg
c2VsZi5fb2xkX3dhcm4gPSB3YXJuaW5ncy53YXJuCi0gICAgICAgIHNlbGYuX29sZF93YXJuX2V4
cGxpY2l0ID0gd2FybmluZ3Mud2Fybl9leHBsaWNpdAotICAgICAgICB3YXJuaW5ncy53YXJuX2V4
cGxpY2l0ID0gc2VsZi5fd2Fybl9leHBsaWNpdAotICAgICAgICB3YXJuaW5ncy53YXJuID0gc2Vs
Zi5fd2FybgotCi0gICAgZGVmIF93YXJuX2V4cGxpY2l0KHNlbGYsIG1lc3NhZ2UsIGNhdGVnb3J5
LCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBzZWxmLl9jYXB0dXJlZF9jYXRlZ29yaWVzLmFw
cGVuZChjYXRlZ29yeSkKLQotICAgIGRlZiBfd2FybihzZWxmLCBtZXNzYWdlLCBjYXRlZ29yeT1O
b25lLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBpZiBpc2luc3RhbmNlKG1lc3NhZ2UsIFdh
cm5pbmcpOgotICAgICAgICAgICAgc2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcy5hcHBlbmQobWVz
c2FnZS5fX2NsYXNzX18pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9jYXB0dXJl
ZF9jYXRlZ29yaWVzLmFwcGVuZChjYXRlZ29yeSkKLQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBl
eGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKToKLSAgICAgICAgd2FybmluZ3Mud2Fybl9leHBsaWNp
dCA9IHNlbGYuX29sZF93YXJuX2V4cGxpY2l0Ci0gICAgICAgIHdhcm5pbmdzLndhcm4gPSBzZWxm
Ll9vbGRfd2FybgotCi0gICAgICAgIGlmIGV4Y190eXBlIGlzIE5vbmU6Ci0gICAgICAgICAgICBk
ZXByZWNhdGlvbl9jYXRlZ29yaWVzID0gKERlcHJlY2F0aW9uV2FybmluZywgUGVuZGluZ0RlcHJl
Y2F0aW9uV2FybmluZykKLSAgICAgICAgICAgIGlmIG5vdCBhbnkoaXNzdWJjbGFzcyhjLCBkZXBy
ZWNhdGlvbl9jYXRlZ29yaWVzKSBmb3IgYyBpbiBzZWxmLl9jYXB0dXJlZF9jYXRlZ29yaWVzKToK
LSAgICAgICAgICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgICAgICAg
ICBtc2cgPSAiRGlkIG5vdCBwcm9kdWNlIERlcHJlY2F0aW9uV2FybmluZyBvciBQZW5kaW5nRGVw
cmVjYXRpb25XYXJuaW5nIgotICAgICAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKG1z
ZykKLQotCi1kZWYgd2FybnMoZXhwZWN0ZWRfd2FybmluZywgKmFyZ3MsICoqa3dhcmdzKToKLSAg
ICAiIiJBc3NlcnQgdGhhdCBjb2RlIHJhaXNlcyBhIHBhcnRpY3VsYXIgY2xhc3Mgb2Ygd2Fybmlu
Zy4KLQotICAgIFNwZWNpZmljYWxseSwgdGhlIGlucHV0IEBleHBlY3RlZF93YXJuaW5nIGNhbiBi
ZSBhIHdhcm5pbmcgY2xhc3Mgb3IKLSAgICB0dXBsZSBvZiB3YXJuaW5nIGNsYXNzZXMsIGFuZCB0
aGUgY29kZSBtdXN0IHJldHVybiB0aGF0IHdhcm5pbmcKLSAgICAoaWYgYSBzaW5nbGUgY2xhc3Mp
IG9yIG9uZSBvZiB0aG9zZSB3YXJuaW5ncyAoaWYgYSB0dXBsZSkuCi0KLSAgICBUaGlzIGhlbHBl
ciBwcm9kdWNlcyBhIGxpc3Qgb2YgYGB3YXJuaW5ncy5XYXJuaW5nTWVzc2FnZWBgIG9iamVjdHMs
Ci0gICAgb25lIGZvciBlYWNoIHdhcm5pbmcgcmFpc2VkLgotCi0gICAgVGhpcyBmdW5jdGlvbiBj
YW4gYmUgdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlciwgb3IgYW55IG9mIHRoZSBvdGhlciB3YXlz
Ci0gICAgYGBweXRlc3QucmFpc2VzYGAgY2FuIGJlIHVzZWQ6OgotCi0gICAgICAgID4+PiB3aXRo
IHdhcm5zKFJ1bnRpbWVXYXJuaW5nKToKLSAgICAgICAgLi4uICAgIHdhcm5pbmdzLndhcm4oIm15
IHdhcm5pbmciLCBSdW50aW1lV2FybmluZykKLQotICAgIEluIHRoZSBjb250ZXh0IG1hbmFnZXIg
Zm9ybSB5b3UgbWF5IHVzZSB0aGUga2V5d29yZCBhcmd1bWVudCBgYG1hdGNoYGAgdG8gYXNzZXJ0
Ci0gICAgdGhhdCB0aGUgZXhjZXB0aW9uIG1hdGNoZXMgYSB0ZXh0IG9yIHJlZ2V4OjoKLQotICAg
ICAgICA+Pj4gd2l0aCB3YXJucyhVc2VyV2FybmluZywgbWF0Y2g9J211c3QgYmUgMCBvciBOb25l
Jyk6Ci0gICAgICAgIC4uLiAgICAgd2FybmluZ3Mud2FybigidmFsdWUgbXVzdCBiZSAwIG9yIE5v
bmUiLCBVc2VyV2FybmluZykKLQotICAgICAgICA+Pj4gd2l0aCB3YXJucyhVc2VyV2FybmluZywg
bWF0Y2g9cidtdXN0IGJlIFxkKyQnKToKLSAgICAgICAgLi4uICAgICB3YXJuaW5ncy53YXJuKCJ2
YWx1ZSBtdXN0IGJlIDQyIiwgVXNlcldhcm5pbmcpCi0KLSAgICAgICAgPj4+IHdpdGggd2FybnMo
VXNlcldhcm5pbmcsIG1hdGNoPXInbXVzdCBiZSBcZCskJyk6Ci0gICAgICAgIC4uLiAgICAgd2Fy
bmluZ3Mud2FybigidGhpcyBpcyBub3QgaGVyZSIsIFVzZXJXYXJuaW5nKQotICAgICAgICBUcmFj
ZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6Ci0gICAgICAgICAgLi4uCi0gICAgICAgIEZh
aWxlZDogRElEIE5PVCBXQVJOLiBObyB3YXJuaW5ncyBvZiB0eXBlIC4uLlVzZXJXYXJuaW5nLi4u
IHdhcyBlbWl0dGVkLi4uCi0KLSAgICAiIiIKLSAgICBtYXRjaF9leHByID0gTm9uZQotICAgIGlm
IG5vdCBhcmdzOgotICAgICAgICBpZiAibWF0Y2giIGluIGt3YXJnczoKLSAgICAgICAgICAgIG1h
dGNoX2V4cHIgPSBrd2FyZ3MucG9wKCJtYXRjaCIpCi0gICAgICAgIHJldHVybiBXYXJuaW5nc0No
ZWNrZXIoZXhwZWN0ZWRfd2FybmluZywgbWF0Y2hfZXhwcj1tYXRjaF9leHByKQotICAgIGVsaWYg
aXNpbnN0YW5jZShhcmdzWzBdLCBzdHIpOgotICAgICAgICBjb2RlLCA9IGFyZ3MKLSAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29kZSwgc3RyKQotICAgICAgICBmcmFtZSA9IHN5cy5fZ2V0ZnJh
bWUoMSkKLSAgICAgICAgbG9jID0gZnJhbWUuZl9sb2NhbHMuY29weSgpCi0gICAgICAgIGxvYy51
cGRhdGUoa3dhcmdzKQotCi0gICAgICAgIHdpdGggV2FybmluZ3NDaGVja2VyKGV4cGVjdGVkX3dh
cm5pbmcsIG1hdGNoX2V4cHI9bWF0Y2hfZXhwcik6Ci0gICAgICAgICAgICBjb2RlID0gX3B5dGVz
dC5fY29kZS5Tb3VyY2UoY29kZSkuY29tcGlsZSgpCi0gICAgICAgICAgICBweS5idWlsdGluLmV4
ZWNfKGNvZGUsIGZyYW1lLmZfZ2xvYmFscywgbG9jKQotICAgIGVsc2U6Ci0gICAgICAgIGZ1bmMg
PSBhcmdzWzBdCi0gICAgICAgIHdpdGggV2FybmluZ3NDaGVja2VyKGV4cGVjdGVkX3dhcm5pbmcs
IG1hdGNoX2V4cHI9bWF0Y2hfZXhwcik6Ci0gICAgICAgICAgICByZXR1cm4gZnVuYygqYXJnc1sx
Ol0sICoqa3dhcmdzKQotCi0KLWNsYXNzIFdhcm5pbmdzUmVjb3JkZXIod2FybmluZ3MuY2F0Y2hf
d2FybmluZ3MpOgotICAgICIiIkEgY29udGV4dCBtYW5hZ2VyIHRvIHJlY29yZCByYWlzZWQgd2Fy
bmluZ3MuCi0KLSAgICBBZGFwdGVkIGZyb20gYHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzYC4KLSAg
ICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc3VwZXIoV2FybmluZ3NS
ZWNvcmRlciwgc2VsZikuX19pbml0X18ocmVjb3JkPVRydWUpCi0gICAgICAgIHNlbGYuX2VudGVy
ZWQgPSBGYWxzZQotICAgICAgICBzZWxmLl9saXN0ID0gW10KLQotICAgIEBwcm9wZXJ0eQotICAg
IGRlZiBsaXN0KHNlbGYpOgotICAgICAgICAiIiJUaGUgbGlzdCBvZiByZWNvcmRlZCB3YXJuaW5n
cy4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2xpc3QKLQotICAgIGRlZiBfX2dldGl0ZW1fXyhz
ZWxmLCBpKToKLSAgICAgICAgIiIiR2V0IGEgcmVjb3JkZWQgd2FybmluZyBieSBpbmRleC4iIiIK
LSAgICAgICAgcmV0dXJuIHNlbGYuX2xpc3RbaV0KLQotICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToK
LSAgICAgICAgIiIiSXRlcmF0ZSB0aHJvdWdoIHRoZSByZWNvcmRlZCB3YXJuaW5ncy4iIiIKLSAg
ICAgICAgcmV0dXJuIGl0ZXIoc2VsZi5fbGlzdCkKLQotICAgIGRlZiBfX2xlbl9fKHNlbGYpOgot
ICAgICAgICAiIiJUaGUgbnVtYmVyIG9mIHJlY29yZGVkIHdhcm5pbmdzLiIiIgotICAgICAgICBy
ZXR1cm4gbGVuKHNlbGYuX2xpc3QpCi0KLSAgICBkZWYgcG9wKHNlbGYsIGNscz1XYXJuaW5nKToK
LSAgICAgICAgIiIiUG9wIHRoZSBmaXJzdCByZWNvcmRlZCB3YXJuaW5nLCByYWlzZSBleGNlcHRp
b24gaWYgbm90IGV4aXN0cy4iIiIKLSAgICAgICAgZm9yIGksIHcgaW4gZW51bWVyYXRlKHNlbGYu
X2xpc3QpOgotICAgICAgICAgICAgaWYgaXNzdWJjbGFzcyh3LmNhdGVnb3J5LCBjbHMpOgotICAg
ICAgICAgICAgICAgIHJldHVybiBzZWxmLl9saXN0LnBvcChpKQotICAgICAgICBfX3RyYWNlYmFj
a2hpZGVfXyA9IFRydWUKLSAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIiVyIG5vdCBmb3Vu
ZCBpbiB3YXJuaW5nIGxpc3QiICUgY2xzKQotCi0gICAgZGVmIGNsZWFyKHNlbGYpOgotICAgICAg
ICAiIiJDbGVhciB0aGUgbGlzdCBvZiByZWNvcmRlZCB3YXJuaW5ncy4iIiIKLSAgICAgICAgc2Vs
Zi5fbGlzdFs6XSA9IFtdCi0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBpZiBz
ZWxmLl9lbnRlcmVkOgotICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAg
ICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIkNhbm5vdCBlbnRlciAlciB0d2ljZSIgJSBzZWxm
KQotICAgICAgICBzZWxmLl9saXN0ID0gc3VwZXIoV2FybmluZ3NSZWNvcmRlciwgc2VsZikuX19l
bnRlcl9fKCkKLSAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdhbHdheXMnKQotICAgICAg
ICByZXR1cm4gc2VsZgotCi0gICAgZGVmIF9fZXhpdF9fKHNlbGYsICpleGNfaW5mbyk6Ci0gICAg
ICAgIGlmIG5vdCBzZWxmLl9lbnRlcmVkOgotICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18g
PSBUcnVlCi0gICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIkNhbm5vdCBleGl0ICVyIHdp
dGhvdXQgZW50ZXJpbmcgZmlyc3QiICUgc2VsZikKLSAgICAgICAgc3VwZXIoV2FybmluZ3NSZWNv
cmRlciwgc2VsZikuX19leGl0X18oKmV4Y19pbmZvKQotCi0KLWNsYXNzIFdhcm5pbmdzQ2hlY2tl
cihXYXJuaW5nc1JlY29yZGVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZXhwZWN0ZWRfd2Fy
bmluZz1Ob25lLCBtYXRjaF9leHByPU5vbmUpOgotICAgICAgICBzdXBlcihXYXJuaW5nc0NoZWNr
ZXIsIHNlbGYpLl9faW5pdF9fKCkKLQotICAgICAgICBtc2cgPSAoImV4Y2VwdGlvbnMgbXVzdCBi
ZSBvbGQtc3R5bGUgY2xhc3NlcyBvciAiCi0gICAgICAgICAgICAgICAiZGVyaXZlZCBmcm9tIFdh
cm5pbmcsIG5vdCAlcyIpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWRfd2FybmluZywg
dHVwbGUpOgotICAgICAgICAgICAgZm9yIGV4YyBpbiBleHBlY3RlZF93YXJuaW5nOgotICAgICAg
ICAgICAgICAgIGlmIG5vdCBpbnNwZWN0LmlzY2xhc3MoZXhjKToKLSAgICAgICAgICAgICAgICAg
ICAgcmFpc2UgVHlwZUVycm9yKG1zZyAlIHR5cGUoZXhjKSkKLSAgICAgICAgZWxpZiBpbnNwZWN0
LmlzY2xhc3MoZXhwZWN0ZWRfd2FybmluZyk6Ci0gICAgICAgICAgICBleHBlY3RlZF93YXJuaW5n
ID0gKGV4cGVjdGVkX3dhcm5pbmcsKQotICAgICAgICBlbGlmIGV4cGVjdGVkX3dhcm5pbmcgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnICUgdHlwZShleHBlY3Rl
ZF93YXJuaW5nKSkKLQotICAgICAgICBzZWxmLmV4cGVjdGVkX3dhcm5pbmcgPSBleHBlY3RlZF93
YXJuaW5nCi0gICAgICAgIHNlbGYubWF0Y2hfZXhwciA9IG1hdGNoX2V4cHIKLQotICAgIGRlZiBf
X2V4aXRfXyhzZWxmLCAqZXhjX2luZm8pOgotICAgICAgICBzdXBlcihXYXJuaW5nc0NoZWNrZXIs
IHNlbGYpLl9fZXhpdF9fKCpleGNfaW5mbykKLQotICAgICAgICAjIG9ubHkgY2hlY2sgaWYgd2Un
cmUgbm90IGN1cnJlbnRseSBoYW5kbGluZyBhbiBleGNlcHRpb24KLSAgICAgICAgaWYgYWxsKGEg
aXMgTm9uZSBmb3IgYSBpbiBleGNfaW5mbyk6Ci0gICAgICAgICAgICBpZiBzZWxmLmV4cGVjdGVk
X3dhcm5pbmcgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYgbm90IGFueShpc3N1YmNs
YXNzKHIuY2F0ZWdvcnksIHNlbGYuZXhwZWN0ZWRfd2FybmluZykKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvciByIGluIHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBfX3RyYWNlYmFj
a2hpZGVfXyA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgZmFpbCgiRElEIE5PVCBXQVJOLiBO
byB3YXJuaW5ncyBvZiB0eXBlIHswfSB3YXMgZW1pdHRlZC4gIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICJUaGUgbGlzdCBvZiBlbWl0dGVkIHdhcm5pbmdzIGlzOiB7MX0uIi5mb3JtYXQoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfd2FybmluZywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW2VhY2gubWVzc2FnZSBmb3IgZWFjaCBpbiBzZWxmXSkp
Ci0gICAgICAgICAgICAgICAgZWxpZiBzZWxmLm1hdGNoX2V4cHIgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICAgICAgICAgIGZvciByIGluIHNlbGY6Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiBpc3N1YmNsYXNzKHIuY2F0ZWdvcnksIHNlbGYuZXhwZWN0ZWRfd2FybmluZyk6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgcmUuY29tcGlsZShzZWxmLm1hdGNoX2V4cHIpLnNlYXJj
aChzdHIoci5tZXNzYWdlKSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
Ci0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBmYWls
KCJESUQgTk9UIFdBUk4uIE5vIHdhcm5pbmdzIG9mIHR5cGUgezB9IG1hdGNoaW5nIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiICgnezF9Jykgd2FzIGVtaXR0ZWQuIFRoZSBsaXN0IG9m
IGVtaXR0ZWQgd2FybmluZ3MiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgaXM6IHsy
fS4iLmZvcm1hdChzZWxmLmV4cGVjdGVkX3dhcm5pbmcsIHNlbGYubWF0Y2hfZXhwciwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlYWNoLm1lc3NhZ2Ug
Zm9yIGVhY2ggaW4gc2VsZl0pKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZXN1
bHRsb2cucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Jlc3VsdGxvZy5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOWY5YzJkMWY2NTM2MGYzOGQwZDY0MTIzZDY0NjU3YzA3MjZhMjY2
Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L3Jlc3VsdGxvZy5weQorKysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBA
Ci0iIiIgbG9nIG1hY2hpbmUtcGFyc2VhYmxlIHRlc3Qgc2Vzc2lvbiByZXN1bHQgaW5mb3JtYXRp
b24gaW4gYSBwbGFpbgotdGV4dCBmaWxlLgotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBweQotaW1w
b3J0IG9zCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBh
cnNlci5nZXRncm91cCgidGVybWluYWwgcmVwb3J0aW5nIiwgInJlc3VsdGxvZyBwbHVnaW4gb3B0
aW9ucyIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLXJlc3VsdGxvZycsICctLXJlc3VsdC1sb2cn
LCBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgICAgICAgICAgICAgbWV0YXZhcj0icGF0aCIsIGRl
ZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0iREVQUkVDQVRFRCBwYXRoIGZv
ciBtYWNoaW5lLXJlYWRhYmxlIHJlc3VsdCBsb2cuIikKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3Vy
ZShjb25maWcpOgotICAgIHJlc3VsdGxvZyA9IGNvbmZpZy5vcHRpb24ucmVzdWx0bG9nCi0gICAg
IyBwcmV2ZW50IG9wZW5pbmcgcmVzdWx0bG9nIG9uIHNsYXZlIG5vZGVzICh4ZGlzdCkKLSAgICBp
ZiByZXN1bHRsb2cgYW5kIG5vdCBoYXNhdHRyKGNvbmZpZywgJ3NsYXZlaW5wdXQnKToKLSAgICAg
ICAgZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgocmVzdWx0bG9nKSkK
LSAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIoZGlybmFtZSk6Ci0gICAgICAgICAgICBvcy5t
YWtlZGlycyhkaXJuYW1lKQotICAgICAgICBsb2dmaWxlID0gb3BlbihyZXN1bHRsb2csICd3Jywg
MSkgICMgbGluZSBidWZmZXJlZAotICAgICAgICBjb25maWcuX3Jlc3VsdGxvZyA9IFJlc3VsdExv
Zyhjb25maWcsIGxvZ2ZpbGUpCi0gICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVy
KGNvbmZpZy5fcmVzdWx0bG9nKQotCi0gICAgICAgIGZyb20gX3B5dGVzdC5kZXByZWNhdGVkIGlt
cG9ydCBSRVNVTFRfTE9HCi0gICAgICAgIGNvbmZpZy53YXJuKCdDMScsIFJFU1VMVF9MT0cpCi0K
LQotZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShjb25maWcpOgotICAgIHJlc3VsdGxvZyA9IGdldGF0
dHIoY29uZmlnLCAnX3Jlc3VsdGxvZycsIE5vbmUpCi0gICAgaWYgcmVzdWx0bG9nOgotICAgICAg
ICByZXN1bHRsb2cubG9nZmlsZS5jbG9zZSgpCi0gICAgICAgIGRlbCBjb25maWcuX3Jlc3VsdGxv
ZwotICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci51bnJlZ2lzdGVyKHJlc3VsdGxvZykKLQot
Ci1kZWYgZ2VuZXJpY19wYXRoKGl0ZW0pOgotICAgIGNoYWluID0gaXRlbS5saXN0Y2hhaW4oKQot
ICAgIGdwYXRoID0gW2NoYWluWzBdLm5hbWVdCi0gICAgZnNwYXRoID0gY2hhaW5bMF0uZnNwYXRo
Ci0gICAgZnNwYXJ0ID0gRmFsc2UKLSAgICBmb3Igbm9kZSBpbiBjaGFpblsxOl06Ci0gICAgICAg
IG5ld2ZzcGF0aCA9IG5vZGUuZnNwYXRoCi0gICAgICAgIGlmIG5ld2ZzcGF0aCA9PSBmc3BhdGg6
Ci0gICAgICAgICAgICBpZiBmc3BhcnQ6Ci0gICAgICAgICAgICAgICAgZ3BhdGguYXBwZW5kKCc6
JykKLSAgICAgICAgICAgICAgICBmc3BhcnQgPSBGYWxzZQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICBncGF0aC5hcHBlbmQoJy4nKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgZ3BhdGguYXBwZW5kKCcvJykKLSAgICAgICAgICAgIGZzcGFydCA9IFRydWUKLSAgICAgICAg
bmFtZSA9IG5vZGUubmFtZQotICAgICAgICBpZiBuYW1lWzBdIGluICcoWyc6Ci0gICAgICAgICAg
ICBncGF0aC5wb3AoKQotICAgICAgICBncGF0aC5hcHBlbmQobmFtZSkKLSAgICAgICAgZnNwYXRo
ID0gbmV3ZnNwYXRoCi0gICAgcmV0dXJuICcnLmpvaW4oZ3BhdGgpCi0KLQotY2xhc3MgUmVzdWx0
TG9nKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZywgbG9nZmlsZSk6Ci0g
ICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCi0gICAgICAgIHNlbGYubG9nZmlsZSA9IGxvZ2Zp
bGUgICMgcHJlZmVyYWJseSBsaW5lIGJ1ZmZlcmVkCi0KLSAgICBkZWYgd3JpdGVfbG9nX2VudHJ5
KHNlbGYsIHRlc3RwYXRoLCBsZXR0ZXJjb2RlLCBsb25ncmVwcik6Ci0gICAgICAgIHByaW50KCIl
cyAlcyIgJSAobGV0dGVyY29kZSwgdGVzdHBhdGgpLCBmaWxlPXNlbGYubG9nZmlsZSkKLSAgICAg
ICAgZm9yIGxpbmUgaW4gbG9uZ3JlcHIuc3BsaXRsaW5lcygpOgotICAgICAgICAgICAgcHJpbnQo
IiAlcyIgJSBsaW5lLCBmaWxlPXNlbGYubG9nZmlsZSkKLQotICAgIGRlZiBsb2dfb3V0Y29tZShz
ZWxmLCByZXBvcnQsIGxldHRlcmNvZGUsIGxvbmdyZXByKToKLSAgICAgICAgdGVzdHBhdGggPSBn
ZXRhdHRyKHJlcG9ydCwgJ25vZGVpZCcsIE5vbmUpCi0gICAgICAgIGlmIHRlc3RwYXRoIGlzIE5v
bmU6Ci0gICAgICAgICAgICB0ZXN0cGF0aCA9IHJlcG9ydC5mc3BhdGgKLSAgICAgICAgc2VsZi53
cml0ZV9sb2dfZW50cnkodGVzdHBhdGgsIGxldHRlcmNvZGUsIGxvbmdyZXByKQotCi0gICAgZGVm
IHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxmLCByZXBvcnQpOgotICAgICAgICBpZiByZXBv
cnQud2hlbiAhPSAiY2FsbCIgYW5kIHJlcG9ydC5wYXNzZWQ6Ci0gICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgcmVzID0gc2VsZi5jb25maWcuaG9vay5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMo
cmVwb3J0PXJlcG9ydCkKLSAgICAgICAgY29kZSA9IHJlc1sxXQotICAgICAgICBpZiBjb2RlID09
ICd4JzoKLSAgICAgICAgICAgIGxvbmdyZXByID0gc3RyKHJlcG9ydC5sb25ncmVwcikKLSAgICAg
ICAgZWxpZiBjb2RlID09ICdYJzoKLSAgICAgICAgICAgIGxvbmdyZXByID0gJycKLSAgICAgICAg
ZWxpZiByZXBvcnQucGFzc2VkOgotICAgICAgICAgICAgbG9uZ3JlcHIgPSAiIgotICAgICAgICBl
bGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgICAgICBsb25ncmVwciA9IHN0cihyZXBvcnQubG9u
Z3JlcHIpCi0gICAgICAgIGVsaWYgcmVwb3J0LnNraXBwZWQ6Ci0gICAgICAgICAgICBsb25ncmVw
ciA9IHN0cihyZXBvcnQubG9uZ3JlcHJbMl0pCi0gICAgICAgIHNlbGYubG9nX291dGNvbWUocmVw
b3J0LCBjb2RlLCBsb25ncmVwcikKLQotICAgIGRlZiBweXRlc3RfY29sbGVjdHJlcG9ydChzZWxm
LCByZXBvcnQpOgotICAgICAgICBpZiBub3QgcmVwb3J0LnBhc3NlZDoKLSAgICAgICAgICAgIGlm
IHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgY29kZSA9ICJGIgotICAgICAgICAgICAg
ICAgIGxvbmdyZXByID0gc3RyKHJlcG9ydC5sb25ncmVwcikKLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0IHJlcG9ydC5za2lwcGVkCi0gICAgICAgICAgICAgICAgY29k
ZSA9ICJTIgotICAgICAgICAgICAgICAgIGxvbmdyZXByID0gIiVzOiVkOiAlcyIgJSByZXBvcnQu
bG9uZ3JlcHIKLSAgICAgICAgICAgIHNlbGYubG9nX291dGNvbWUocmVwb3J0LCBjb2RlLCBsb25n
cmVwcikKLQotICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCBleGNyZXByKToKLSAg
ICAgICAgcmVwcmNyYXNoID0gZ2V0YXR0cihleGNyZXByLCAncmVwcmNyYXNoJywgTm9uZSkKLSAg
ICAgICAgcGF0aCA9IGdldGF0dHIocmVwcmNyYXNoLCAicGF0aCIsIE5vbmUpCi0gICAgICAgIGlm
IHBhdGggaXMgTm9uZToKLSAgICAgICAgICAgIHBhdGggPSAiY3dkOiVzIiAlIHB5LnBhdGgubG9j
YWwoKQotICAgICAgICBzZWxmLndyaXRlX2xvZ19lbnRyeShwYXRoLCAnIScsIHN0cihleGNyZXBy
KSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcnVubmVyLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9ydW5uZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwN2Vk
MmEyNDhiMzIyMzllMDU3MzYyMzQwNzE4YjQ1MjE3ZDdjZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ydW5uZXIucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw1MDYgKzAsMCBAQAotIiIiIGJhc2ljIGNvbGxlY3QgYW5kIHJ1
bnRlc3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb25zICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgYmRi
Ci1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLWZyb20gdGltZSBpbXBvcnQgdGltZQotCi1pbXBvcnQg
cHkKLWZyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBUZXJtaW5hbFJlcHIsIEV4Y2VwdGlv
bkluZm8KLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgc2tpcCwgU2tpcHBlZCwgVEVTVF9P
VVRDT01FCi0KLSMKLSMgcHl0ZXN0IHBsdWdpbiBob29rcwotCi0KLWRlZiBweXRlc3RfYWRkb3B0
aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInRlcm1pbmFsIHJlcG9y
dGluZyIsICJyZXBvcnRpbmciLCBhZnRlcj0iZ2VuZXJhbCIpCi0gICAgZ3JvdXAuYWRkb3B0aW9u
KCctLWR1cmF0aW9ucycsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLCB0eXBl
PWludCwgZGVmYXVsdD1Ob25lLCBtZXRhdmFyPSJOIiwKLSAgICAgICAgICAgICAgICAgICAgaGVs
cD0ic2hvdyBOIHNsb3dlc3Qgc2V0dXAvdGVzdCBkdXJhdGlvbnMgKE49MCBmb3IgYWxsKS4iKSwK
LQotCi1kZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlcik6Ci0gICAg
ZHVyYXRpb25zID0gdGVybWluYWxyZXBvcnRlci5jb25maWcub3B0aW9uLmR1cmF0aW9ucwotICAg
IGlmIGR1cmF0aW9ucyBpcyBOb25lOgotICAgICAgICByZXR1cm4KLSAgICB0ciA9IHRlcm1pbmFs
cmVwb3J0ZXIKLSAgICBkbGlzdCA9IFtdCi0gICAgZm9yIHJlcGxpc3QgaW4gdHIuc3RhdHMudmFs
dWVzKCk6Ci0gICAgICAgIGZvciByZXAgaW4gcmVwbGlzdDoKLSAgICAgICAgICAgIGlmIGhhc2F0
dHIocmVwLCAnZHVyYXRpb24nKToKLSAgICAgICAgICAgICAgICBkbGlzdC5hcHBlbmQocmVwKQot
ICAgIGlmIG5vdCBkbGlzdDoKLSAgICAgICAgcmV0dXJuCi0gICAgZGxpc3Quc29ydChrZXk9bGFt
YmRhIHg6IHguZHVyYXRpb24pCi0gICAgZGxpc3QucmV2ZXJzZSgpCi0gICAgaWYgbm90IGR1cmF0
aW9uczoKLSAgICAgICAgdHIud3JpdGVfc2VwKCI9IiwgInNsb3dlc3QgdGVzdCBkdXJhdGlvbnMi
KQotICAgIGVsc2U6Ci0gICAgICAgIHRyLndyaXRlX3NlcCgiPSIsICJzbG93ZXN0ICVzIHRlc3Qg
ZHVyYXRpb25zIiAlIGR1cmF0aW9ucykKLSAgICAgICAgZGxpc3QgPSBkbGlzdFs6ZHVyYXRpb25z
XQotCi0gICAgZm9yIHJlcCBpbiBkbGlzdDoKLSAgICAgICAgbm9kZWlkID0gcmVwLm5vZGVpZC5y
ZXBsYWNlKCI6OigpOjoiLCAiOjoiKQotICAgICAgICB0ci53cml0ZV9saW5lKCIlMDIuMmZzICUt
OHMgJXMiICUKLSAgICAgICAgICAgICAgICAgICAgICAocmVwLmR1cmF0aW9uLCByZXAud2hlbiwg
bm9kZWlkKSkKLQotCi1kZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uKToKLSAgICBzZXNz
aW9uLl9zZXR1cHN0YXRlID0gU2V0dXBTdGF0ZSgpCi0KLQotZGVmIHB5dGVzdF9zZXNzaW9uZmlu
aXNoKHNlc3Npb24pOgotICAgIHNlc3Npb24uX3NldHVwc3RhdGUudGVhcmRvd25fYWxsKCkKLQot
Ci1kZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woaXRlbSwgbmV4dGl0ZW0pOgotICAgIGl0ZW0u
aWhvb2sucHl0ZXN0X3J1bnRlc3RfbG9nc3RhcnQoCi0gICAgICAgIG5vZGVpZD1pdGVtLm5vZGVp
ZCwgbG9jYXRpb249aXRlbS5sb2NhdGlvbiwKLSAgICApCi0gICAgcnVudGVzdHByb3RvY29sKGl0
ZW0sIG5leHRpdGVtPW5leHRpdGVtKQotICAgIHJldHVybiBUcnVlCi0KLQotZGVmIHJ1bnRlc3Rw
cm90b2NvbChpdGVtLCBsb2c9VHJ1ZSwgbmV4dGl0ZW09Tm9uZSk6Ci0gICAgaGFzcmVxdWVzdCA9
IGhhc2F0dHIoaXRlbSwgIl9yZXF1ZXN0IikKLSAgICBpZiBoYXNyZXF1ZXN0IGFuZCBub3QgaXRl
bS5fcmVxdWVzdDoKLSAgICAgICAgaXRlbS5faW5pdHJlcXVlc3QoKQotICAgIHJlcCA9IGNhbGxf
YW5kX3JlcG9ydChpdGVtLCAic2V0dXAiLCBsb2cpCi0gICAgcmVwb3J0cyA9IFtyZXBdCi0gICAg
aWYgcmVwLnBhc3NlZDoKLSAgICAgICAgaWYgaXRlbS5jb25maWcub3B0aW9uLnNldHVwc2hvdzoK
LSAgICAgICAgICAgIHNob3dfdGVzdF9pdGVtKGl0ZW0pCi0gICAgICAgIGlmIG5vdCBpdGVtLmNv
bmZpZy5vcHRpb24uc2V0dXBvbmx5OgotICAgICAgICAgICAgcmVwb3J0cy5hcHBlbmQoY2FsbF9h
bmRfcmVwb3J0KGl0ZW0sICJjYWxsIiwgbG9nKSkKLSAgICByZXBvcnRzLmFwcGVuZChjYWxsX2Fu
ZF9yZXBvcnQoaXRlbSwgInRlYXJkb3duIiwgbG9nLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuZXh0aXRlbT1uZXh0aXRlbSkpCi0gICAgIyBhZnRlciBhbGwgdGVhcmRvd24g
aG9va3MgaGF2ZSBiZWVuIGNhbGxlZAotICAgICMgd2FudCBmdW5jYXJncyBhbmQgcmVxdWVzdCBp
bmZvIHRvIGdvIGF3YXkKLSAgICBpZiBoYXNyZXF1ZXN0OgotICAgICAgICBpdGVtLl9yZXF1ZXN0
ID0gRmFsc2UKLSAgICAgICAgaXRlbS5mdW5jYXJncyA9IE5vbmUKLSAgICByZXR1cm4gcmVwb3J0
cwotCi0KLWRlZiBzaG93X3Rlc3RfaXRlbShpdGVtKToKLSAgICAiIiJTaG93IHRlc3QgZnVuY3Rp
b24sIHBhcmFtZXRlcnMgYW5kIHRoZSBmaXh0dXJlcyBvZiB0aGUgdGVzdCBpdGVtLiIiIgotICAg
IHR3ID0gaXRlbS5jb25maWcuZ2V0X3Rlcm1pbmFsX3dyaXRlcigpCi0gICAgdHcubGluZSgpCi0g
ICAgdHcud3JpdGUoJyAnICogOCkKLSAgICB0dy53cml0ZShpdGVtLl9ub2RlaWQpCi0gICAgdXNl
ZF9maXh0dXJlcyA9IHNvcnRlZChpdGVtLl9maXh0dXJlaW5mby5uYW1lMmZpeHR1cmVkZWZzLmtl
eXMoKSkKLSAgICBpZiB1c2VkX2ZpeHR1cmVzOgotICAgICAgICB0dy53cml0ZSgnIChmaXh0dXJl
cyB1c2VkOiB7MH0pJy5mb3JtYXQoJywgJy5qb2luKHVzZWRfZml4dHVyZXMpKSkKLQotCi1kZWYg
cHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgX3VwZGF0ZV9jdXJyZW50X3Rlc3RfdmFy
KGl0ZW0sICdzZXR1cCcpCi0gICAgaXRlbS5zZXNzaW9uLl9zZXR1cHN0YXRlLnByZXBhcmUoaXRl
bSkKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfY2FsbChpdGVtKToKLSAgICBfdXBkYXRlX2N1cnJl
bnRfdGVzdF92YXIoaXRlbSwgJ2NhbGwnKQotICAgIHRyeToKLSAgICAgICAgaXRlbS5ydW50ZXN0
KCkKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAjIFN0b3JlIHRyYWNlIGluZm8gdG8g
YWxsb3cgcG9zdG1vcnRlbSBkZWJ1Z2dpbmcKLSAgICAgICAgdHlwZSwgdmFsdWUsIHRiID0gc3lz
LmV4Y19pbmZvKCkKLSAgICAgICAgdGIgPSB0Yi50Yl9uZXh0ICAjIFNraXAgKnRoaXMqIGZyYW1l
Ci0gICAgICAgIHN5cy5sYXN0X3R5cGUgPSB0eXBlCi0gICAgICAgIHN5cy5sYXN0X3ZhbHVlID0g
dmFsdWUKLSAgICAgICAgc3lzLmxhc3RfdHJhY2ViYWNrID0gdGIKLSAgICAgICAgZGVsIHRiICAj
IEdldCByaWQgb2YgaXQgaW4gdGhpcyBuYW1lc3BhY2UKLSAgICAgICAgcmFpc2UKLQotCi1kZWYg
cHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRlbSwgbmV4dGl0ZW0pOgotICAgIF91cGRhdGVfY3Vy
cmVudF90ZXN0X3ZhcihpdGVtLCAndGVhcmRvd24nKQotICAgIGl0ZW0uc2Vzc2lvbi5fc2V0dXBz
dGF0ZS50ZWFyZG93bl9leGFjdChpdGVtLCBuZXh0aXRlbSkKLSAgICBfdXBkYXRlX2N1cnJlbnRf
dGVzdF92YXIoaXRlbSwgTm9uZSkKLQotCi1kZWYgX3VwZGF0ZV9jdXJyZW50X3Rlc3RfdmFyKGl0
ZW0sIHdoZW4pOgotICAgICIiIgotICAgIFVwZGF0ZSBQWVRFU1RfQ1VSUkVOVF9URVNUIHRvIHJl
ZmxlY3QgdGhlIGN1cnJlbnQgaXRlbSBhbmQgc3RhZ2UuCi0KLSAgICBJZiBgYHdoZW5gYCBpcyBO
b25lLCBkZWxldGUgUFlURVNUX0NVUlJFTlRfVEVTVCBmcm9tIHRoZSBlbnZpcm9ubWVudC4KLSAg
ICAiIiIKLSAgICB2YXJfbmFtZSA9ICdQWVRFU1RfQ1VSUkVOVF9URVNUJwotICAgIGlmIHdoZW46
Ci0gICAgICAgIHZhbHVlID0gJ3swfSAoezF9KScuZm9ybWF0KGl0ZW0ubm9kZWlkLCB3aGVuKQot
ICAgICAgICAjIGRvbid0IGFsbG93IG51bGwgYnl0ZXMgb24gZW52aXJvbm1lbnQgdmFyaWFibGVz
IChzZWUgIzI2NDQsICMyOTU3KQotICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJ1x4MDAn
LCAnKG51bGwpJykKLSAgICAgICAgb3MuZW52aXJvblt2YXJfbmFtZV0gPSB2YWx1ZQotICAgIGVs
c2U6Ci0gICAgICAgIG9zLmVudmlyb24ucG9wKHZhcl9uYW1lKQotCi0KLWRlZiBweXRlc3RfcmVw
b3J0X3Rlc3RzdGF0dXMocmVwb3J0KToKLSAgICBpZiByZXBvcnQud2hlbiBpbiAoInNldHVwIiwg
InRlYXJkb3duIik6Ci0gICAgICAgIGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgICAgICAjICAg
ICAgY2F0ZWdvcnksIHNob3J0bGV0dGVyLCB2ZXJib3NlLXdvcmQKLSAgICAgICAgICAgIHJldHVy
biAiZXJyb3IiLCAiRSIsICJFUlJPUiIKLSAgICAgICAgZWxpZiByZXBvcnQuc2tpcHBlZDoKLSAg
ICAgICAgICAgIHJldHVybiAic2tpcHBlZCIsICJzIiwgIlNLSVBQRUQiCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICByZXR1cm4gIiIsICIiLCAiIgotCi0KLSMKLSMgSW1wbGVtZW50YXRpb24K
LQotZGVmIGNhbGxfYW5kX3JlcG9ydChpdGVtLCB3aGVuLCBsb2c9VHJ1ZSwgKiprd2RzKToKLSAg
ICBjYWxsID0gY2FsbF9ydW50ZXN0X2hvb2soaXRlbSwgd2hlbiwgKiprd2RzKQotICAgIGhvb2sg
PSBpdGVtLmlob29rCi0gICAgcmVwb3J0ID0gaG9vay5weXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0
KGl0ZW09aXRlbSwgY2FsbD1jYWxsKQotICAgIGlmIGxvZzoKLSAgICAgICAgaG9vay5weXRlc3Rf
cnVudGVzdF9sb2dyZXBvcnQocmVwb3J0PXJlcG9ydCkKLSAgICBpZiBjaGVja19pbnRlcmFjdGl2
ZV9leGNlcHRpb24oY2FsbCwgcmVwb3J0KToKLSAgICAgICAgaG9vay5weXRlc3RfZXhjZXB0aW9u
X2ludGVyYWN0KG5vZGU9aXRlbSwgY2FsbD1jYWxsLCByZXBvcnQ9cmVwb3J0KQotICAgIHJldHVy
biByZXBvcnQKLQotCi1kZWYgY2hlY2tfaW50ZXJhY3RpdmVfZXhjZXB0aW9uKGNhbGwsIHJlcG9y
dCk6Ci0gICAgcmV0dXJuIGNhbGwuZXhjaW5mbyBhbmQgbm90ICgKLSAgICAgICAgaGFzYXR0cihy
ZXBvcnQsICJ3YXN4ZmFpbCIpIG9yCi0gICAgICAgIGNhbGwuZXhjaW5mby5lcnJpc2luc3RhbmNl
KHNraXAuRXhjZXB0aW9uKSBvcgotICAgICAgICBjYWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5jZShi
ZGIuQmRiUXVpdCkpCi0KLQotZGVmIGNhbGxfcnVudGVzdF9ob29rKGl0ZW0sIHdoZW4sICoqa3dk
cyk6Ci0gICAgaG9va25hbWUgPSAicHl0ZXN0X3J1bnRlc3RfIiArIHdoZW4KLSAgICBpaG9vayA9
IGdldGF0dHIoaXRlbS5paG9vaywgaG9va25hbWUpCi0gICAgcmV0dXJuIENhbGxJbmZvKGxhbWJk
YTogaWhvb2soaXRlbT1pdGVtLCAqKmt3ZHMpLCB3aGVuPXdoZW4pCi0KLQotY2xhc3MgQ2FsbElu
Zm86Ci0gICAgIiIiIFJlc3VsdC9FeGNlcHRpb24gaW5mbyBhIGZ1bmN0aW9uIGludm9jYXRpb24u
ICIiIgotICAgICM6IE5vbmUgb3IgRXhjZXB0aW9uSW5mbyBvYmplY3QuCi0gICAgZXhjaW5mbyA9
IE5vbmUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jLCB3aGVuKToKLSAgICAgICAgIzog
Y29udGV4dCBvZiBpbnZvY2F0aW9uOiBvbmUgb2YgInNldHVwIiwgImNhbGwiLAotICAgICAgICAj
OiAidGVhcmRvd24iLCAibWVtb2NvbGxlY3QiCi0gICAgICAgIHNlbGYud2hlbiA9IHdoZW4KLSAg
ICAgICAgc2VsZi5zdGFydCA9IHRpbWUoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxm
LnJlc3VsdCA9IGZ1bmMoKQotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAg
ICAgICAgICBzZWxmLnN0b3AgPSB0aW1lKCkKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4
Y2VwdDogICMgbm9xYQotICAgICAgICAgICAgc2VsZi5leGNpbmZvID0gRXhjZXB0aW9uSW5mbygp
Ci0gICAgICAgIHNlbGYuc3RvcCA9IHRpbWUoKQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgot
ICAgICAgICBpZiBzZWxmLmV4Y2luZm86Ci0gICAgICAgICAgICBzdGF0dXMgPSAiZXhjZXB0aW9u
OiAlcyIgJSBzdHIoc2VsZi5leGNpbmZvLnZhbHVlKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgc3RhdHVzID0gInJlc3VsdDogJXIiICUgKHNlbGYucmVzdWx0LCkKLSAgICAgICAgcmV0dXJu
ICI8Q2FsbEluZm8gd2hlbj0lciAlcz4iICUgKHNlbGYud2hlbiwgc3RhdHVzKQotCi0KLWRlZiBn
ZXRzbGF2ZWluZm9saW5lKG5vZGUpOgotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIG5vZGUuX3Ns
YXZlaW5mb2NhY2hlCi0gICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICBkID0gbm9k
ZS5zbGF2ZWluZm8KLSAgICAgICAgdmVyID0gIiVzLiVzLiVzIiAlIGRbJ3ZlcnNpb25faW5mbydd
WzozXQotICAgICAgICBub2RlLl9zbGF2ZWluZm9jYWNoZSA9IHMgPSAiWyVzXSAlcyAtLSBQeXRo
b24gJXMgJXMiICUgKAotICAgICAgICAgICAgZFsnaWQnXSwgZFsnc3lzcGxhdGZvcm0nXSwgdmVy
LCBkWydleGVjdXRhYmxlJ10pCi0gICAgICAgIHJldHVybiBzCi0KLQotY2xhc3MgQmFzZVJlcG9y
dChvYmplY3QpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3cpOgotICAgICAgICBzZWxm
Ll9fZGljdF9fLnVwZGF0ZShrdykKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIG91dCk6Ci0g
ICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ25vZGUnKToKLSAgICAgICAgICAgIG91dC5saW5lKGdl
dHNsYXZlaW5mb2xpbmUoc2VsZi5ub2RlKSkKLQotICAgICAgICBsb25ncmVwciA9IHNlbGYubG9u
Z3JlcHIKLSAgICAgICAgaWYgbG9uZ3JlcHIgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybgot
Ci0gICAgICAgIGlmIGhhc2F0dHIobG9uZ3JlcHIsICd0b3Rlcm1pbmFsJyk6Ci0gICAgICAgICAg
ICBsb25ncmVwci50b3Rlcm1pbmFsKG91dCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICBvdXQubGluZShsb25ncmVwcikKLSAgICAgICAgICAgIGV4Y2Vw
dCBVbmljb2RlRW5jb2RlRXJyb3I6Ci0gICAgICAgICAgICAgICAgb3V0LmxpbmUoIjx1bnByaW50
YWJsZSBsb25ncmVwcj4iKQotCi0gICAgZGVmIGdldF9zZWN0aW9ucyhzZWxmLCBwcmVmaXgpOgot
ICAgICAgICBmb3IgbmFtZSwgY29udGVudCBpbiBzZWxmLnNlY3Rpb25zOgotICAgICAgICAgICAg
aWYgbmFtZS5zdGFydHN3aXRoKHByZWZpeCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgcHJlZml4
LCBjb250ZW50Ci0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbG9uZ3JlcHJ0ZXh0KHNlbGYpOgot
ICAgICAgICAiIiIKLSAgICAgICAgUmVhZC1vbmx5IHByb3BlcnR5IHRoYXQgcmV0dXJucyB0aGUg
ZnVsbCBzdHJpbmcgcmVwcmVzZW50YXRpb24KLSAgICAgICAgb2YgYGBsb25ncmVwcmBgLgotCi0g
ICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMAotICAgICAgICAiIiIKLSAgICAgICAgdHcgPSBw
eS5pby5UZXJtaW5hbFdyaXRlcihzdHJpbmdpbz1UcnVlKQotICAgICAgICB0dy5oYXNtYXJrdXAg
PSBGYWxzZQotICAgICAgICBzZWxmLnRvdGVybWluYWwodHcpCi0gICAgICAgIGV4YyA9IHR3LnN0
cmluZ2lvLmdldHZhbHVlKCkKLSAgICAgICAgcmV0dXJuIGV4Yy5zdHJpcCgpCi0KLSAgICBAcHJv
cGVydHkKLSAgICBkZWYgY2Fwc3Rkb3V0KHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gY2FwdHVy
ZWQgdGV4dCBmcm9tIHN0ZG91dCwgaWYgY2FwdHVyaW5nIGlzIGVuYWJsZWQKLQotICAgICAgICAu
LiB2ZXJzaW9uYWRkZWQ6OiAzLjAKLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiAnJy5qb2lu
KGNvbnRlbnQgZm9yIChwcmVmaXgsIGNvbnRlbnQpIGluIHNlbGYuZ2V0X3NlY3Rpb25zKCdDYXB0
dXJlZCBzdGRvdXQnKSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBjYXBzdGRlcnIoc2VsZik6
Ci0gICAgICAgICIiIlJldHVybiBjYXB0dXJlZCB0ZXh0IGZyb20gc3RkZXJyLCBpZiBjYXB0dXJp
bmcgaXMgZW5hYmxlZAotCi0gICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMAotICAgICAgICAi
IiIKLSAgICAgICAgcmV0dXJuICcnLmpvaW4oY29udGVudCBmb3IgKHByZWZpeCwgY29udGVudCkg
aW4gc2VsZi5nZXRfc2VjdGlvbnMoJ0NhcHR1cmVkIHN0ZGVycicpKQotCi0gICAgcGFzc2VkID0g
cHJvcGVydHkobGFtYmRhIHg6IHgub3V0Y29tZSA9PSAicGFzc2VkIikKLSAgICBmYWlsZWQgPSBw
cm9wZXJ0eShsYW1iZGEgeDogeC5vdXRjb21lID09ICJmYWlsZWQiKQotICAgIHNraXBwZWQgPSBw
cm9wZXJ0eShsYW1iZGEgeDogeC5vdXRjb21lID09ICJza2lwcGVkIikKLQotICAgIEBwcm9wZXJ0
eQotICAgIGRlZiBmc3BhdGgoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLm5vZGVpZC5zcGxp
dCgiOjoiKVswXQotCi0KLWRlZiBweXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwp
OgotICAgIHdoZW4gPSBjYWxsLndoZW4KLSAgICBkdXJhdGlvbiA9IGNhbGwuc3RvcCAtIGNhbGwu
c3RhcnQKLSAgICBrZXl3b3JkcyA9IGRpY3QoWyh4LCAxKSBmb3IgeCBpbiBpdGVtLmtleXdvcmRz
XSkKLSAgICBleGNpbmZvID0gY2FsbC5leGNpbmZvCi0gICAgc2VjdGlvbnMgPSBbXQotICAgIGlm
IG5vdCBjYWxsLmV4Y2luZm86Ci0gICAgICAgIG91dGNvbWUgPSAicGFzc2VkIgotICAgICAgICBs
b25ncmVwciA9IE5vbmUKLSAgICBlbHNlOgotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShleGNp
bmZvLCBFeGNlcHRpb25JbmZvKToKLSAgICAgICAgICAgIG91dGNvbWUgPSAiZmFpbGVkIgotICAg
ICAgICAgICAgbG9uZ3JlcHIgPSBleGNpbmZvCi0gICAgICAgIGVsaWYgZXhjaW5mby5lcnJpc2lu
c3RhbmNlKHNraXAuRXhjZXB0aW9uKToKLSAgICAgICAgICAgIG91dGNvbWUgPSAic2tpcHBlZCIK
LSAgICAgICAgICAgIHIgPSBleGNpbmZvLl9nZXRyZXByY3Jhc2goKQotICAgICAgICAgICAgbG9u
Z3JlcHIgPSAoc3RyKHIucGF0aCksIHIubGluZW5vLCByLm1lc3NhZ2UpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBvdXRjb21lID0gImZhaWxlZCIKLSAgICAgICAgICAgIGlmIGNhbGwud2hl
biA9PSAiY2FsbCI6Ci0gICAgICAgICAgICAgICAgbG9uZ3JlcHIgPSBpdGVtLnJlcHJfZmFpbHVy
ZShleGNpbmZvKQotICAgICAgICAgICAgZWxzZTogICMgZXhjZXB0aW9uIGluIHNldHVwIG9yIHRl
YXJkb3duCi0gICAgICAgICAgICAgICAgbG9uZ3JlcHIgPSBpdGVtLl9yZXByX2ZhaWx1cmVfcHko
ZXhjaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHlsZT1pdGVtLmNvbmZpZy5vcHRpb24udGJzdHlsZSkKLSAgICBmb3IgcndoZW4sIGtleSwg
Y29udGVudCBpbiBpdGVtLl9yZXBvcnRfc2VjdGlvbnM6Ci0gICAgICAgIHNlY3Rpb25zLmFwcGVu
ZCgoIkNhcHR1cmVkICVzICVzIiAlIChrZXksIHJ3aGVuKSwgY29udGVudCkpCi0gICAgcmV0dXJu
IFRlc3RSZXBvcnQoaXRlbS5ub2RlaWQsIGl0ZW0ubG9jYXRpb24sCi0gICAgICAgICAgICAgICAg
ICAgICAga2V5d29yZHMsIG91dGNvbWUsIGxvbmdyZXByLCB3aGVuLAotICAgICAgICAgICAgICAg
ICAgICAgIHNlY3Rpb25zLCBkdXJhdGlvbikKLQotCi1jbGFzcyBUZXN0UmVwb3J0KEJhc2VSZXBv
cnQpOgotICAgICIiIiBCYXNpYyB0ZXN0IHJlcG9ydCBvYmplY3QgKGFsc28gdXNlZCBmb3Igc2V0
dXAgYW5kIHRlYXJkb3duIGNhbGxzIGlmCi0gICAgdGhleSBmYWlsKS4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBub2RlaWQsIGxvY2F0aW9uLCBrZXl3b3Jkcywgb3V0Y29tZSwK
LSAgICAgICAgICAgICAgICAgbG9uZ3JlcHIsIHdoZW4sIHNlY3Rpb25zPSgpLCBkdXJhdGlvbj0w
LCAqKmV4dHJhKToKLSAgICAgICAgIzogbm9ybWFsaXplZCBjb2xsZWN0aW9uIG5vZGUgaWQKLSAg
ICAgICAgc2VsZi5ub2RlaWQgPSBub2RlaWQKLQotICAgICAgICAjOiBhIChmaWxlc3lzdGVtcGF0
aCwgbGluZW5vLCBkb21haW5pbmZvKSB0dXBsZSBpbmRpY2F0aW5nIHRoZQotICAgICAgICAjOiBh
Y3R1YWwgbG9jYXRpb24gb2YgYSB0ZXN0IGl0ZW0gLSBpdCBtaWdodCBiZSBkaWZmZXJlbnQgZnJv
bSB0aGUKLSAgICAgICAgIzogY29sbGVjdGVkIG9uZSBlLmcuIGlmIGEgbWV0aG9kIGlzIGluaGVy
aXRlZCBmcm9tIGEgZGlmZmVyZW50IG1vZHVsZS4KLSAgICAgICAgc2VsZi5sb2NhdGlvbiA9IGxv
Y2F0aW9uCi0KLSAgICAgICAgIzogYSBuYW1lIC0+IHZhbHVlIGRpY3Rpb25hcnkgY29udGFpbmlu
ZyBhbGwga2V5d29yZHMgYW5kCi0gICAgICAgICM6IG1hcmtlcnMgYXNzb2NpYXRlZCB3aXRoIGEg
dGVzdCBpbnZvY2F0aW9uLgotICAgICAgICBzZWxmLmtleXdvcmRzID0ga2V5d29yZHMKLQotICAg
ICAgICAjOiB0ZXN0IG91dGNvbWUsIGFsd2F5cyBvbmUgb2YgInBhc3NlZCIsICJmYWlsZWQiLCAi
c2tpcHBlZCIuCi0gICAgICAgIHNlbGYub3V0Y29tZSA9IG91dGNvbWUKLQotICAgICAgICAjOiBO
b25lIG9yIGEgZmFpbHVyZSByZXByZXNlbnRhdGlvbi4KLSAgICAgICAgc2VsZi5sb25ncmVwciA9
IGxvbmdyZXByCi0KLSAgICAgICAgIzogb25lIG9mICdzZXR1cCcsICdjYWxsJywgJ3RlYXJkb3du
JyB0byBpbmRpY2F0ZSBydW50ZXN0IHBoYXNlLgotICAgICAgICBzZWxmLndoZW4gPSB3aGVuCi0K
LSAgICAgICAgIzogbGlzdCBvZiBwYWlycyBgYChzdHIsIHN0cilgYCBvZiBleHRyYSBpbmZvcm1h
dGlvbiB3aGljaCBuZWVkcyB0bwotICAgICAgICAjOiBtYXJzaGFsbGFibGUuIFVzZWQgYnkgcHl0
ZXN0IHRvIGFkZCBjYXB0dXJlZCB0ZXh0Ci0gICAgICAgICM6IGZyb20gYGBzdGRvdXRgYCBhbmQg
YGBzdGRlcnJgYCwgYnV0IG1heSBiZSB1c2VkIGJ5IG90aGVyIHBsdWdpbnMKLSAgICAgICAgIzog
dG8gYWRkIGFyYml0cmFyeSBpbmZvcm1hdGlvbiB0byByZXBvcnRzLgotICAgICAgICBzZWxmLnNl
Y3Rpb25zID0gbGlzdChzZWN0aW9ucykKLQotICAgICAgICAjOiB0aW1lIGl0IHRvb2sgdG8gcnVu
IGp1c3QgdGhlIHRlc3QKLSAgICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0aW9uCi0KLSAgICAg
ICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoZXh0cmEpCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6
Ci0gICAgICAgIHJldHVybiAiPFRlc3RSZXBvcnQgJXIgd2hlbj0lciBvdXRjb21lPSVyPiIgJSAo
Ci0gICAgICAgICAgICBzZWxmLm5vZGVpZCwgc2VsZi53aGVuLCBzZWxmLm91dGNvbWUpCi0KLQot
Y2xhc3MgVGVhcmRvd25FcnJvclJlcG9ydChCYXNlUmVwb3J0KToKLSAgICBvdXRjb21lID0gImZh
aWxlZCIKLSAgICB3aGVuID0gInRlYXJkb3duIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
bmdyZXByLCAqKmV4dHJhKToKLSAgICAgICAgc2VsZi5sb25ncmVwciA9IGxvbmdyZXByCi0gICAg
ICAgIHNlbGYuc2VjdGlvbnMgPSBbXQotICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZShleHRy
YSkKLQotCi1kZWYgcHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9yKToKLSAgICBj
YWxsID0gQ2FsbEluZm8oCi0gICAgICAgIGxhbWJkYTogbGlzdChjb2xsZWN0b3IuY29sbGVjdCgp
KSwKLSAgICAgICAgJ2NvbGxlY3QnKQotICAgIGxvbmdyZXByID0gTm9uZQotICAgIGlmIG5vdCBj
YWxsLmV4Y2luZm86Ci0gICAgICAgIG91dGNvbWUgPSAicGFzc2VkIgotICAgIGVsc2U6Ci0gICAg
ICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgbm9zZQotICAgICAgICBza2lwX2V4Y2VwdGlvbnMgPSAo
U2tpcHBlZCwpICsgbm9zZS5nZXRfc2tpcF9leGNlcHRpb25zKCkKLSAgICAgICAgaWYgY2FsbC5l
eGNpbmZvLmVycmlzaW5zdGFuY2Uoc2tpcF9leGNlcHRpb25zKToKLSAgICAgICAgICAgIG91dGNv
bWUgPSAic2tpcHBlZCIKLSAgICAgICAgICAgIHIgPSBjb2xsZWN0b3IuX3JlcHJfZmFpbHVyZV9w
eShjYWxsLmV4Y2luZm8sICJsaW5lIikucmVwcmNyYXNoCi0gICAgICAgICAgICBsb25ncmVwciA9
IChzdHIoci5wYXRoKSwgci5saW5lbm8sIHIubWVzc2FnZSkKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIG91dGNvbWUgPSAiZmFpbGVkIgotICAgICAgICAgICAgZXJyb3JpbmZvID0gY29sbGVj
dG9yLnJlcHJfZmFpbHVyZShjYWxsLmV4Y2luZm8pCi0gICAgICAgICAgICBpZiBub3QgaGFzYXR0
cihlcnJvcmluZm8sICJ0b3Rlcm1pbmFsIik6Ci0gICAgICAgICAgICAgICAgZXJyb3JpbmZvID0g
Q29sbGVjdEVycm9yUmVwcihlcnJvcmluZm8pCi0gICAgICAgICAgICBsb25ncmVwciA9IGVycm9y
aW5mbwotICAgIHJlcCA9IENvbGxlY3RSZXBvcnQoY29sbGVjdG9yLm5vZGVpZCwgb3V0Y29tZSwg
bG9uZ3JlcHIsCi0gICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKGNhbGwsICdyZXN1bHQn
LCBOb25lKSkKLSAgICByZXAuY2FsbCA9IGNhbGwgICMgc2VlIGNvbGxlY3Rfb25lX25vZGUKLSAg
ICByZXR1cm4gcmVwCi0KLQotY2xhc3MgQ29sbGVjdFJlcG9ydChCYXNlUmVwb3J0KToKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbm9kZWlkLCBvdXRjb21lLCBsb25ncmVwciwgcmVzdWx0LAotICAg
ICAgICAgICAgICAgICBzZWN0aW9ucz0oKSwgKipleHRyYSk6Ci0gICAgICAgIHNlbGYubm9kZWlk
ID0gbm9kZWlkCi0gICAgICAgIHNlbGYub3V0Y29tZSA9IG91dGNvbWUKLSAgICAgICAgc2VsZi5s
b25ncmVwciA9IGxvbmdyZXByCi0gICAgICAgIHNlbGYucmVzdWx0ID0gcmVzdWx0IG9yIFtdCi0g
ICAgICAgIHNlbGYuc2VjdGlvbnMgPSBsaXN0KHNlY3Rpb25zKQotICAgICAgICBzZWxmLl9fZGlj
dF9fLnVwZGF0ZShleHRyYSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBsb2NhdGlvbihzZWxm
KToKLSAgICAgICAgcmV0dXJuIChzZWxmLmZzcGF0aCwgTm9uZSwgc2VsZi5mc3BhdGgpCi0KLSAg
ICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPENvbGxlY3RSZXBvcnQgJXIg
bGVucmVzdWx0PSVzIG91dGNvbWU9JXI+IiAlICgKLSAgICAgICAgICAgIHNlbGYubm9kZWlkLCBs
ZW4oc2VsZi5yZXN1bHQpLCBzZWxmLm91dGNvbWUpCi0KLQotY2xhc3MgQ29sbGVjdEVycm9yUmVw
cihUZXJtaW5hbFJlcHIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2cpOgotICAgICAgICBz
ZWxmLmxvbmdyZXByID0gbXNnCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCBvdXQpOgotICAg
ICAgICBvdXQubGluZShzZWxmLmxvbmdyZXByLCByZWQ9VHJ1ZSkKLQotCi1jbGFzcyBTZXR1cFN0
YXRlKG9iamVjdCk6Ci0gICAgIiIiIHNoYXJlZCBzdGF0ZSBmb3Igc2V0dGluZyB1cC90ZWFyaW5n
IGRvd24gdGVzdCBpdGVtcyBvciBjb2xsZWN0b3JzLiAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmKToKLSAgICAgICAgc2VsZi5zdGFjayA9IFtdCi0gICAgICAgIHNlbGYuX2ZpbmFsaXplcnMg
PSB7fQotCi0gICAgZGVmIGFkZGZpbmFsaXplcihzZWxmLCBmaW5hbGl6ZXIsIGNvbGl0ZW0pOgot
ICAgICAgICAiIiIgYXR0YWNoIGEgZmluYWxpemVyIHRvIHRoZSBnaXZlbiBjb2xpdGVtLgotICAg
ICAgICBpZiBjb2xpdGVtIGlzIE5vbmUsIHRoaXMgd2lsbCBhZGQgYSBmaW5hbGl6ZXIgdGhhdAot
ICAgICAgICBpcyBjYWxsZWQgYXQgdGhlIGVuZCBvZiB0ZWFyZG93bl9hbGwoKS4KLSAgICAgICAg
IiIiCi0gICAgICAgIGFzc2VydCBjb2xpdGVtIGFuZCBub3QgaXNpbnN0YW5jZShjb2xpdGVtLCB0
dXBsZSkKLSAgICAgICAgYXNzZXJ0IGNhbGxhYmxlKGZpbmFsaXplcikKLSAgICAgICAgIyBhc3Nl
cnQgY29saXRlbSBpbiBzZWxmLnN0YWNrICAjIHNvbWUgdW5pdCB0ZXN0cyBkb24ndCBzZXR1cCBz
dGFjayA6LwotICAgICAgICBzZWxmLl9maW5hbGl6ZXJzLnNldGRlZmF1bHQoY29saXRlbSwgW10p
LmFwcGVuZChmaW5hbGl6ZXIpCi0KLSAgICBkZWYgX3BvcF9hbmRfdGVhcmRvd24oc2VsZik6Ci0g
ICAgICAgIGNvbGl0ZW0gPSBzZWxmLnN0YWNrLnBvcCgpCi0gICAgICAgIHNlbGYuX3RlYXJkb3du
X3dpdGhfZmluYWxpemF0aW9uKGNvbGl0ZW0pCi0KLSAgICBkZWYgX2NhbGxmaW5hbGl6ZXJzKHNl
bGYsIGNvbGl0ZW0pOgotICAgICAgICBmaW5hbGl6ZXJzID0gc2VsZi5fZmluYWxpemVycy5wb3Ao
Y29saXRlbSwgTm9uZSkKLSAgICAgICAgZXhjID0gTm9uZQotICAgICAgICB3aGlsZSBmaW5hbGl6
ZXJzOgotICAgICAgICAgICAgZmluID0gZmluYWxpemVycy5wb3AoKQotICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgIGZpbigpCi0gICAgICAgICAgICBleGNlcHQgVEVTVF9PVVRDT01F
OgotICAgICAgICAgICAgICAgICMgWFhYIE9ubHkgZmlyc3QgZXhjZXB0aW9uIHdpbGwgYmUgc2Vl
biBieSB1c2VyLAotICAgICAgICAgICAgICAgICMgICAgIGlkZWFsbHkgYWxsIHNob3VsZCBiZSBy
ZXBvcnRlZC4KLSAgICAgICAgICAgICAgICBpZiBleGMgaXMgTm9uZToKLSAgICAgICAgICAgICAg
ICAgICAgZXhjID0gc3lzLmV4Y19pbmZvKCkKLSAgICAgICAgaWYgZXhjOgotICAgICAgICAgICAg
cHkuYnVpbHRpbi5fcmVyYWlzZSgqZXhjKQotCi0gICAgZGVmIF90ZWFyZG93bl93aXRoX2ZpbmFs
aXphdGlvbihzZWxmLCBjb2xpdGVtKToKLSAgICAgICAgc2VsZi5fY2FsbGZpbmFsaXplcnMoY29s
aXRlbSkKLSAgICAgICAgaWYgaGFzYXR0cihjb2xpdGVtLCAidGVhcmRvd24iKToKLSAgICAgICAg
ICAgIGNvbGl0ZW0udGVhcmRvd24oKQotICAgICAgICBmb3IgY29saXRlbSBpbiBzZWxmLl9maW5h
bGl6ZXJzOgotICAgICAgICAgICAgYXNzZXJ0IGNvbGl0ZW0gaXMgTm9uZSBvciBjb2xpdGVtIGlu
IHNlbGYuc3RhY2sgXAotICAgICAgICAgICAgICAgIG9yIGlzaW5zdGFuY2UoY29saXRlbSwgdHVw
bGUpCi0KLSAgICBkZWYgdGVhcmRvd25fYWxsKHNlbGYpOgotICAgICAgICB3aGlsZSBzZWxmLnN0
YWNrOgotICAgICAgICAgICAgc2VsZi5fcG9wX2FuZF90ZWFyZG93bigpCi0gICAgICAgIGZvciBr
ZXkgaW4gbGlzdChzZWxmLl9maW5hbGl6ZXJzKToKLSAgICAgICAgICAgIHNlbGYuX3RlYXJkb3du
X3dpdGhfZmluYWxpemF0aW9uKGtleSkKLSAgICAgICAgYXNzZXJ0IG5vdCBzZWxmLl9maW5hbGl6
ZXJzCi0KLSAgICBkZWYgdGVhcmRvd25fZXhhY3Qoc2VsZiwgaXRlbSwgbmV4dGl0ZW0pOgotICAg
ICAgICBuZWVkZWRfY29sbGVjdG9ycyA9IG5leHRpdGVtIGFuZCBuZXh0aXRlbS5saXN0Y2hhaW4o
KSBvciBbXQotICAgICAgICBzZWxmLl90ZWFyZG93bl90b3dhcmRzKG5lZWRlZF9jb2xsZWN0b3Jz
KQotCi0gICAgZGVmIF90ZWFyZG93bl90b3dhcmRzKHNlbGYsIG5lZWRlZF9jb2xsZWN0b3JzKToK
LSAgICAgICAgd2hpbGUgc2VsZi5zdGFjazoKLSAgICAgICAgICAgIGlmIHNlbGYuc3RhY2sgPT0g
bmVlZGVkX2NvbGxlY3RvcnNbOmxlbihzZWxmLnN0YWNrKV06Ci0gICAgICAgICAgICAgICAgYnJl
YWsKLSAgICAgICAgICAgIHNlbGYuX3BvcF9hbmRfdGVhcmRvd24oKQotCi0gICAgZGVmIHByZXBh
cmUoc2VsZiwgY29saXRlbSk6Ci0gICAgICAgICIiIiBzZXR1cCBvYmplY3RzIGFsb25nIHRoZSBj
b2xsZWN0b3IgY2hhaW4gdG8gdGhlIHRlc3QtbWV0aG9kCi0gICAgICAgICAgICBhbmQgdGVhcmRv
d24gcHJldmlvdXNseSBzZXR1cCBvYmplY3RzLiIiIgotICAgICAgICBuZWVkZWRfY29sbGVjdG9y
cyA9IGNvbGl0ZW0ubGlzdGNoYWluKCkKLSAgICAgICAgc2VsZi5fdGVhcmRvd25fdG93YXJkcyhu
ZWVkZWRfY29sbGVjdG9ycykKLQotICAgICAgICAjIGNoZWNrIGlmIHRoZSBsYXN0IGNvbGxlY3Rp
b24gbm9kZSBoYXMgcmFpc2VkIGFuIGVycm9yCi0gICAgICAgIGZvciBjb2wgaW4gc2VsZi5zdGFj
azoKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoY29sLCAnX3ByZXBhcmVfZXhjJyk6Ci0gICAgICAg
ICAgICAgICAgcHkuYnVpbHRpbi5fcmVyYWlzZSgqY29sLl9wcmVwYXJlX2V4YykKLSAgICAgICAg
Zm9yIGNvbCBpbiBuZWVkZWRfY29sbGVjdG9yc1tsZW4oc2VsZi5zdGFjayk6XToKLSAgICAgICAg
ICAgIHNlbGYuc3RhY2suYXBwZW5kKGNvbCkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICBjb2wuc2V0dXAoKQotICAgICAgICAgICAgZXhjZXB0IFRFU1RfT1VUQ09NRToKLSAgICAg
ICAgICAgICAgICBjb2wuX3ByZXBhcmVfZXhjID0gc3lzLmV4Y19pbmZvKCkKLSAgICAgICAgICAg
ICAgICByYWlzZQotCi0KLWRlZiBjb2xsZWN0X29uZV9ub2RlKGNvbGxlY3Rvcik6Ci0gICAgaWhv
b2sgPSBjb2xsZWN0b3IuaWhvb2sKLSAgICBpaG9vay5weXRlc3RfY29sbGVjdHN0YXJ0KGNvbGxl
Y3Rvcj1jb2xsZWN0b3IpCi0gICAgcmVwID0gaWhvb2sucHl0ZXN0X21ha2VfY29sbGVjdF9yZXBv
cnQoY29sbGVjdG9yPWNvbGxlY3RvcikKLSAgICBjYWxsID0gcmVwLl9fZGljdF9fLnBvcCgiY2Fs
bCIsIE5vbmUpCi0gICAgaWYgY2FsbCBhbmQgY2hlY2tfaW50ZXJhY3RpdmVfZXhjZXB0aW9uKGNh
bGwsIHJlcCk6Ci0gICAgICAgIGlob29rLnB5dGVzdF9leGNlcHRpb25faW50ZXJhY3Qobm9kZT1j
b2xsZWN0b3IsIGNhbGw9Y2FsbCwgcmVwb3J0PXJlcCkKLSAgICByZXR1cm4gcmVwCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVwb25seS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3Qvc2V0dXBvbmx5LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWM3NDU3ZDdl
NTA2YzA3YjdjMTc1ZWI4Yzk0NzBlYjYxYjVmZDdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBvbmx5LnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgcHl0ZXN0Ci1p
bXBvcnQgc3lzCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9
IHBhcnNlci5nZXRncm91cCgiZGVidWdjb25maWciKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1z
ZXR1cG9ubHknLCAnLS1zZXR1cC1vbmx5JywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAg
ICAgICAgICAgICAgaGVscD0ib25seSBzZXR1cCBmaXh0dXJlcywgZG8gbm90IGV4ZWN1dGUgdGVz
dHMuIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tc2V0dXBzaG93JywgJy0tc2V0dXAtc2hvdycs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9InNob3cgc2V0
dXAgb2YgZml4dHVyZXMgd2hpbGUgZXhlY3V0aW5nIHRlc3RzLiIpCi0KLQotQHB5dGVzdC5ob29r
aW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVk
ZWYsIHJlcXVlc3QpOgotICAgIHlpZWxkCi0gICAgY29uZmlnID0gcmVxdWVzdC5jb25maWcKLSAg
ICBpZiBjb25maWcub3B0aW9uLnNldHVwc2hvdzoKLSAgICAgICAgaWYgaGFzYXR0cihyZXF1ZXN0
LCAncGFyYW0nKToKLSAgICAgICAgICAgICMgU2F2ZSB0aGUgZml4dHVyZSBwYXJhbWV0ZXIgc28g
Ll9zaG93X2ZpeHR1cmVfYWN0aW9uKCkgY2FuCi0gICAgICAgICAgICAjIGRpc3BsYXkgaXQgbm93
IGFuZCBkdXJpbmcgdGhlIHRlYXJkb3duIChpbiAuZmluaXNoKCkpLgotICAgICAgICAgICAgaWYg
Zml4dHVyZWRlZi5pZHM6Ci0gICAgICAgICAgICAgICAgaWYgY2FsbGFibGUoZml4dHVyZWRlZi5p
ZHMpOgotICAgICAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLmNhY2hlZF9wYXJhbSA9IGZpeHR1
cmVkZWYuaWRzKHJlcXVlc3QucGFyYW0pCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICAgICAgZml4dHVyZWRlZi5jYWNoZWRfcGFyYW0gPSBmaXh0dXJlZGVmLmlkc1sKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QucGFyYW1faW5kZXhdCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYuY2FjaGVkX3BhcmFtID0gcmVxdWVzdC5w
YXJhbQotICAgICAgICBfc2hvd19maXh0dXJlX2FjdGlvbihmaXh0dXJlZGVmLCAnU0VUVVAnKQot
Ci0KLWRlZiBweXRlc3RfZml4dHVyZV9wb3N0X2ZpbmFsaXplcihmaXh0dXJlZGVmKToKLSAgICBp
ZiBoYXNhdHRyKGZpeHR1cmVkZWYsICJjYWNoZWRfcmVzdWx0Iik6Ci0gICAgICAgIGNvbmZpZyA9
IGZpeHR1cmVkZWYuX2ZpeHR1cmVtYW5hZ2VyLmNvbmZpZwotICAgICAgICBpZiBjb25maWcub3B0
aW9uLnNldHVwc2hvdzoKLSAgICAgICAgICAgIF9zaG93X2ZpeHR1cmVfYWN0aW9uKGZpeHR1cmVk
ZWYsICdURUFSRE9XTicpCi0gICAgICAgICAgICBpZiBoYXNhdHRyKGZpeHR1cmVkZWYsICJjYWNo
ZWRfcGFyYW0iKToKLSAgICAgICAgICAgICAgICBkZWwgZml4dHVyZWRlZi5jYWNoZWRfcGFyYW0K
LQotCi1kZWYgX3Nob3dfZml4dHVyZV9hY3Rpb24oZml4dHVyZWRlZiwgbXNnKToKLSAgICBjb25m
aWcgPSBmaXh0dXJlZGVmLl9maXh0dXJlbWFuYWdlci5jb25maWcKLSAgICBjYXBtYW4gPSBjb25m
aWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oJ2NhcHR1cmVtYW5hZ2VyJykKLSAgICBpZiBjYXBt
YW46Ci0gICAgICAgIG91dCwgZXJyID0gY2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoKQot
Ci0gICAgdHcgPSBjb25maWcuZ2V0X3Rlcm1pbmFsX3dyaXRlcigpCi0gICAgdHcubGluZSgpCi0g
ICAgdHcud3JpdGUoJyAnICogMiAqIGZpeHR1cmVkZWYuc2NvcGVudW0pCi0gICAgdHcud3JpdGUo
J3tzdGVwfSB7c2NvcGV9IHtmaXh0dXJlfScuZm9ybWF0KAotICAgICAgICBzdGVwPW1zZy5sanVz
dCg4KSwgICMgYWxpZ24gdGhlIG91dHB1dCB0byBURUFSRE9XTgotICAgICAgICBzY29wZT1maXh0
dXJlZGVmLnNjb3BlWzBdLnVwcGVyKCksCi0gICAgICAgIGZpeHR1cmU9Zml4dHVyZWRlZi5hcmdu
YW1lKSkKLQotICAgIGlmIG1zZyA9PSAnU0VUVVAnOgotICAgICAgICBkZXBzID0gc29ydGVkKGFy
ZyBmb3IgYXJnIGluIGZpeHR1cmVkZWYuYXJnbmFtZXMgaWYgYXJnICE9ICdyZXF1ZXN0JykKLSAg
ICAgICAgaWYgZGVwczoKLSAgICAgICAgICAgIHR3LndyaXRlKCcgKGZpeHR1cmVzIHVzZWQ6IHsw
fSknLmZvcm1hdCgnLCAnLmpvaW4oZGVwcykpKQotCi0gICAgaWYgaGFzYXR0cihmaXh0dXJlZGVm
LCAnY2FjaGVkX3BhcmFtJyk6Ci0gICAgICAgIHR3LndyaXRlKCdbezB9XScuZm9ybWF0KGZpeHR1
cmVkZWYuY2FjaGVkX3BhcmFtKSkKLQotICAgIGlmIGNhcG1hbjoKLSAgICAgICAgY2FwbWFuLnJl
c3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0gICAgICAgIHN5cy5zdGRvdXQud3JpdGUob3V0KQotICAg
ICAgICBzeXMuc3RkZXJyLndyaXRlKGVycikKLQotCi1AcHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0
PVRydWUpCi1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgotICAgIGlmIGNvbmZpZy5v
cHRpb24uc2V0dXBvbmx5OgotICAgICAgICBjb25maWcub3B0aW9uLnNldHVwc2hvdyA9IFRydWUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBwbGFuLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9zZXR1cHBsYW4ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUx
MWJkNDA2OThiNzcyYjA2YTM3Mjk3Y2ZjMzRlMGE3OGJkMTE2NDkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9zZXR1cHBs
YW4ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1mcm9tIF9fZnV0dXJlX18gaW1w
b3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBw
eXRlc3QKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFy
c2VyLmdldGdyb3VwKCJkZWJ1Z2NvbmZpZyIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLXNldHVw
cGxhbicsICctLXNldHVwLXBsYW4nLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJzaG93IHdoYXQgZml4dHVyZXMgYW5kIHRlc3RzIHdvdWxkIGJlIGV4ZWN1
dGVkIGJ1dCAiCi0gICAgICAgICAgICAgICAgICAgICJkb24ndCBleGVjdXRlIGFueXRoaW5nLiIp
Ci0KLQotQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQotZGVmIHB5dGVzdF9maXh0dXJl
X3NldHVwKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgotICAgICMgV2lsbCByZXR1cm4gYSBkdW1teSBm
aXh0dXJlIGlmIHRoZSBzZXR1cG9ubHkgb3B0aW9uIGlzIHByb3ZpZGVkLgotICAgIGlmIHJlcXVl
c3QuY29uZmlnLm9wdGlvbi5zZXR1cHBsYW46Ci0gICAgICAgIGZpeHR1cmVkZWYuY2FjaGVkX3Jl
c3VsdCA9IChOb25lLCBOb25lLCBOb25lKQotICAgICAgICByZXR1cm4gZml4dHVyZWRlZi5jYWNo
ZWRfcmVzdWx0Ci0KLQotQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQotZGVmIHB5dGVz
dF9jbWRsaW5lX21haW4oY29uZmlnKToKLSAgICBpZiBjb25maWcub3B0aW9uLnNldHVwcGxhbjoK
LSAgICAgICAgY29uZmlnLm9wdGlvbi5zZXR1cG9ubHkgPSBUcnVlCi0gICAgICAgIGNvbmZpZy5v
cHRpb24uc2V0dXBzaG93ID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9z
a2lwcGluZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2tpcHBpbmcucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGExZTViNDM4MDBiNTRmOGM4YTI5MDU0MGIxM2RhM2EwMjgyMGQ3
ZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9za2lwcGluZy5weQorKysgL2Rldi9udWxsCkBAIC0xLDM5NyArMCwwIEBA
Ci0iIiIgc3VwcG9ydCBmb3Igc2tpcC94ZmFpbCBmdW5jdGlvbnMgYW5kIG1hcmtlcnMuICIiIgot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9m
dW5jdGlvbgotCi1pbXBvcnQgb3MKLWltcG9ydCBzaXgKLWltcG9ydCBzeXMKLWltcG9ydCB0cmFj
ZWJhY2sKLQotZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgaG9va2ltcGwKLWZyb20gX3B5dGVz
dC5tYXJrIGltcG9ydCBNYXJrSW5mbywgTWFya0RlY29yYXRvcgotZnJvbSBfcHl0ZXN0Lm91dGNv
bWVzIGltcG9ydCBmYWlsLCBza2lwLCB4ZmFpbCwgVEVTVF9PVVRDT01FCi0KLQotZGVmIHB5dGVz
dF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZ2VuZXJh
bCIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLXJ1bnhmYWlsJywKLSAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0icnVueGZhaWwiLCBkZWZhdWx0PUZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJydW4gdGVzdHMgZXZlbiBpZiB0aGV5IGFyZSBtYXJr
ZWQgeGZhaWwiKQotCi0gICAgcGFyc2VyLmFkZGluaSgieGZhaWxfc3RyaWN0IiwgImRlZmF1bHQg
Zm9yIHRoZSBzdHJpY3QgcGFyYW1ldGVyIG9mIHhmYWlsICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAibWFya2VycyB3aGVuIG5vdCBnaXZlbiBleHBsaWNpdGx5IChkZWZhdWx0
OiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhbHNlKSIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlPSJib29sIikKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3Vy
ZShjb25maWcpOgotICAgIGlmIGNvbmZpZy5vcHRpb24ucnVueGZhaWw6Ci0gICAgICAgICMgeWF5
IGEgaGFjawotICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgIG9sZCA9IHB5dGVzdC54ZmFp
bAotICAgICAgICBjb25maWcuX2NsZWFudXAuYXBwZW5kKGxhbWJkYTogc2V0YXR0cihweXRlc3Qs
ICJ4ZmFpbCIsIG9sZCkpCi0KLSAgICAgICAgZGVmIG5vcCgqYXJncywgKiprd2FyZ3MpOgotICAg
ICAgICAgICAgcGFzcwotCi0gICAgICAgIG5vcC5FeGNlcHRpb24gPSB4ZmFpbC5FeGNlcHRpb24K
LSAgICAgICAgc2V0YXR0cihweXRlc3QsICJ4ZmFpbCIsIG5vcCkKLQotICAgIGNvbmZpZy5hZGRp
bml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2tp
cChyZWFzb249Tm9uZSk6IHNraXAgdGhlIGdpdmVuIHRlc3QgZnVuY3Rpb24gd2l0aCBhbiBvcHRp
b25hbCByZWFzb24uICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhhbXBsZTogc2tp
cChyZWFzb249XCJubyB3YXkgb2YgY3VycmVudGx5IHRlc3RpbmcgdGhpc1wiKSBza2lwcyB0aGUg
IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0LiIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApCi0gICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJza2lwaWYoY29uZGl0aW9uKTogc2tpcCB0aGUgZ2l2
ZW4gdGVzdCBmdW5jdGlvbiBpZiBldmFsKGNvbmRpdGlvbikgIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJyZXN1bHRzIGluIGEgVHJ1ZSB2YWx1ZS4gIEV2YWx1YXRpb24gaGFwcGVucyB3
aXRoaW4gdGhlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kdWxlIGdsb2JhbCBj
b250ZXh0LiBFeGFtcGxlOiBza2lwaWYoJ3N5cy5wbGF0Zm9ybSA9PSBcIndpbjMyXCInKSAiCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNraXBzIHRoZSB0ZXN0IGlmIHdlIGFyZSBvbiB0
aGUgd2luMzIgcGxhdGZvcm0uIHNlZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0
dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9za2lwcGluZy5odG1sIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICkKLSAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgibWFya2VycyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInhmYWlsKGNvbmRpdGlvbiwgcmVhc29uPU5vbmUsIHJ1
bj1UcnVlLCByYWlzZXM9Tm9uZSwgc3RyaWN0PUZhbHNlKTogIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJtYXJrIHRoZSB0ZXN0IGZ1bmN0aW9uIGFzIGFuIGV4cGVjdGVkIGZhaWx1cmUg
aWYgZXZhbChjb25kaXRpb24pICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGFzIGEg
VHJ1ZSB2YWx1ZS4gT3B0aW9uYWxseSBzcGVjaWZ5IGEgcmVhc29uIGZvciBiZXR0ZXIgcmVwb3J0
aW5nICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5kIHJ1bj1GYWxzZSBpZiB5b3Ug
ZG9uJ3QgZXZlbiB3YW50IHRvIGV4ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24uICIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiSWYgb25seSBzcGVjaWZpYyBleGNlcHRpb24ocykgYXJlIGV4
cGVjdGVkLCB5b3UgY2FuIGxpc3QgdGhlbSBpbiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInJhaXNlcywgYW5kIGlmIHRoZSB0ZXN0IGZhaWxzIGluIG90aGVyIHdheXMsIGl0IHdpbGwg
YmUgcmVwb3J0ZWQgYXMgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhIHRydWUgZmFp
bHVyZS4gU2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9za2lwcGluZy5odG1sIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICkKLQotCi1jbGFzcyBNYXJrRXZhbHVhdG9yKG9iamVjdCk6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZW0sIG5hbWUpOgotICAgICAgICBzZWxmLml0ZW0g
PSBpdGVtCi0gICAgICAgIHNlbGYuX21hcmtzID0gTm9uZQotICAgICAgICBzZWxmLl9tYXJrID0g
Tm9uZQotICAgICAgICBzZWxmLl9tYXJrX25hbWUgPSBuYW1lCi0KLSAgICBkZWYgX19ib29sX18o
c2VsZik6Ci0gICAgICAgIHNlbGYuX21hcmtzID0gc2VsZi5fZ2V0X21hcmtzKCkKLSAgICAgICAg
cmV0dXJuIGJvb2woc2VsZi5fbWFya3MpCi0gICAgX19ub256ZXJvX18gPSBfX2Jvb2xfXwotCi0g
ICAgZGVmIHdhc3ZhbGlkKHNlbGYpOgotICAgICAgICByZXR1cm4gbm90IGhhc2F0dHIoc2VsZiwg
J2V4YycpCi0KLSAgICBkZWYgX2dldF9tYXJrcyhzZWxmKToKLQotICAgICAgICBrZXl3b3JkID0g
c2VsZi5pdGVtLmtleXdvcmRzLmdldChzZWxmLl9tYXJrX25hbWUpCi0gICAgICAgIGlmIGlzaW5z
dGFuY2Uoa2V5d29yZCwgTWFya0RlY29yYXRvcik6Ci0gICAgICAgICAgICByZXR1cm4gW2tleXdv
cmQubWFya10KLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKGtleXdvcmQsIE1hcmtJbmZvKToKLSAg
ICAgICAgICAgIHJldHVybiBbeC5jb21iaW5lZCBmb3IgeCBpbiBrZXl3b3JkXQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgcmV0dXJuIFtdCi0KLSAgICBkZWYgaW52YWxpZHJhaXNlKHNlbGYs
IGV4Yyk6Ci0gICAgICAgIHJhaXNlcyA9IHNlbGYuZ2V0KCdyYWlzZXMnKQotICAgICAgICBpZiBu
b3QgcmFpc2VzOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHJldHVybiBub3QgaXNpbnN0
YW5jZShleGMsIHJhaXNlcykKLQotICAgIGRlZiBpc3RydWUoc2VsZik6Ci0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHJldHVybiBzZWxmLl9pc3RydWUoKQotICAgICAgICBleGNlcHQgVEVTVF9P
VVRDT01FOgotICAgICAgICAgICAgc2VsZi5leGMgPSBzeXMuZXhjX2luZm8oKQotICAgICAgICAg
ICAgaWYgaXNpbnN0YW5jZShzZWxmLmV4Y1sxXSwgU3ludGF4RXJyb3IpOgotICAgICAgICAgICAg
ICAgIG1zZyA9IFsiICIgKiAoc2VsZi5leGNbMV0ub2Zmc2V0ICsgNCkgKyAiXiIsIF0KLSAgICAg
ICAgICAgICAgICBtc2cuYXBwZW5kKCJTeW50YXhFcnJvcjogaW52YWxpZCBzeW50YXgiKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBtc2cgPSB0cmFjZWJhY2suZm9ybWF0X2V4
Y2VwdGlvbl9vbmx5KCpzZWxmLmV4Y1s6Ml0pCi0gICAgICAgICAgICBmYWlsKCJFcnJvciBldmFs
dWF0aW5nICVyIGV4cHJlc3Npb25cbiIKLSAgICAgICAgICAgICAgICAgIiAgICAlc1xuIgotICAg
ICAgICAgICAgICAgICAiJXMiCi0gICAgICAgICAgICAgICAgICUgKHNlbGYuX21hcmtfbmFtZSwg
c2VsZi5leHByLCAiXG4iLmpvaW4obXNnKSksCi0gICAgICAgICAgICAgICAgIHB5dHJhY2U9RmFs
c2UpCi0KLSAgICBkZWYgX2dldGdsb2JhbHMoc2VsZik6Ci0gICAgICAgIGQgPSB7J29zJzogb3Ms
ICdzeXMnOiBzeXMsICdjb25maWcnOiBzZWxmLml0ZW0uY29uZmlnfQotICAgICAgICBpZiBoYXNh
dHRyKHNlbGYuaXRlbSwgJ29iaicpOgotICAgICAgICAgICAgZC51cGRhdGUoc2VsZi5pdGVtLm9i
ai5fX2dsb2JhbHNfXykKLSAgICAgICAgcmV0dXJuIGQKLQotICAgIGRlZiBfaXN0cnVlKHNlbGYp
OgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdyZXN1bHQnKToKLSAgICAgICAgICAgIHJldHVy
biBzZWxmLnJlc3VsdAotICAgICAgICBzZWxmLl9tYXJrcyA9IHNlbGYuX2dldF9tYXJrcygpCi0K
LSAgICAgICAgaWYgc2VsZi5fbWFya3M6Ci0gICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNl
Ci0gICAgICAgICAgICBmb3IgbWFyayBpbiBzZWxmLl9tYXJrczoKLSAgICAgICAgICAgICAgICBz
ZWxmLl9tYXJrID0gbWFyawotICAgICAgICAgICAgICAgIGlmICdjb25kaXRpb24nIGluIG1hcmsu
a3dhcmdzOgotICAgICAgICAgICAgICAgICAgICBhcmdzID0gKG1hcmsua3dhcmdzWydjb25kaXRp
b24nXSwpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgYXJncyA9
IG1hcmsuYXJncwotCi0gICAgICAgICAgICAgICAgZm9yIGV4cHIgaW4gYXJnczoKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5leHByID0gZXhwcgotICAgICAgICAgICAgICAgICAgICBpZiBpc2lu
c3RhbmNlKGV4cHIsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAgICAgICAgICAgICAgICAg
ZCA9IHNlbGYuX2dldGdsb2JhbHMoKQotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
Y2FjaGVkX2V2YWwoc2VsZi5pdGVtLmNvbmZpZywgZXhwciwgZCkKLSAgICAgICAgICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICJyZWFzb24iIG5vdCBpbiBtYXJr
Lmt3YXJnczoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBiZXR0ZXIgYmUgY2hl
Y2tlZCBhdCBjb2xsZWN0aW9uIHRpbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cg
PSAieW91IG5lZWQgdG8gc3BlY2lmeSByZWFzb249U1RSSU5HICIgXAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ3aGVuIHVzaW5nIGJvb2xlYW5zIGFzIGNvbmRpdGlvbnMuIgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwobXNnKQotICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gYm9vbChleHByKQotICAgICAgICAgICAgICAgICAgICBpZiByZXN1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IFRydWUKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucmVhc29uID0gbWFyay5rd2FyZ3MuZ2V0KCdyZWFzb24nLCBOb25l
KQotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHByID0gZXhwcgotICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0Ci0KLSAgICAgICAgICAgICAgICBpZiBub3Qg
YXJnczoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlCi0gICAgICAgICAg
ICAgICAgICAgIHNlbGYucmVhc29uID0gbWFyay5rd2FyZ3MuZ2V0KCdyZWFzb24nLCBOb25lKQot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKLSAgICAgICAgcmV0dXJuIEZh
bHNlCi0KLSAgICBkZWYgZ2V0KHNlbGYsIGF0dHIsIGRlZmF1bHQ9Tm9uZSk6Ci0gICAgICAgIGlm
IHNlbGYuX21hcmsgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Ci0gICAgICAg
IHJldHVybiBzZWxmLl9tYXJrLmt3YXJncy5nZXQoYXR0ciwgZGVmYXVsdCkKLQotICAgIGRlZiBn
ZXRleHBsYW5hdGlvbihzZWxmKToKLSAgICAgICAgZXhwbCA9IGdldGF0dHIoc2VsZiwgJ3JlYXNv
bicsIE5vbmUpIG9yIHNlbGYuZ2V0KCdyZWFzb24nLCBOb25lKQotICAgICAgICBpZiBub3QgZXhw
bDoKLSAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdleHByJyk6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJldHVy
biAiY29uZGl0aW9uOiAiICsgc3RyKHNlbGYuZXhwcikKLSAgICAgICAgcmV0dXJuIGV4cGwKLQot
Ci1AaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLWRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVt
KToKLSAgICAjIENoZWNrIGlmIHNraXAgb3Igc2tpcGlmIGFyZSBzcGVjaWZpZWQgYXMgcHl0ZXN0
IG1hcmtzCi0gICAgaXRlbS5fc2tpcHBlZF9ieV9tYXJrID0gRmFsc2UKLSAgICBza2lwaWZfaW5m
byA9IGl0ZW0ua2V5d29yZHMuZ2V0KCdza2lwaWYnKQotICAgIGlmIGlzaW5zdGFuY2Uoc2tpcGlm
X2luZm8sIChNYXJrSW5mbywgTWFya0RlY29yYXRvcikpOgotICAgICAgICBldmFsX3NraXBpZiA9
IE1hcmtFdmFsdWF0b3IoaXRlbSwgJ3NraXBpZicpCi0gICAgICAgIGlmIGV2YWxfc2tpcGlmLmlz
dHJ1ZSgpOgotICAgICAgICAgICAgaXRlbS5fc2tpcHBlZF9ieV9tYXJrID0gVHJ1ZQotICAgICAg
ICAgICAgc2tpcChldmFsX3NraXBpZi5nZXRleHBsYW5hdGlvbigpKQotCi0gICAgc2tpcF9pbmZv
ID0gaXRlbS5rZXl3b3Jkcy5nZXQoJ3NraXAnKQotICAgIGlmIGlzaW5zdGFuY2Uoc2tpcF9pbmZv
LCAoTWFya0luZm8sIE1hcmtEZWNvcmF0b3IpKToKLSAgICAgICAgaXRlbS5fc2tpcHBlZF9ieV9t
YXJrID0gVHJ1ZQotICAgICAgICBpZiAncmVhc29uJyBpbiBza2lwX2luZm8ua3dhcmdzOgotICAg
ICAgICAgICAgc2tpcChza2lwX2luZm8ua3dhcmdzWydyZWFzb24nXSkKLSAgICAgICAgZWxpZiBz
a2lwX2luZm8uYXJnczoKLSAgICAgICAgICAgIHNraXAoc2tpcF9pbmZvLmFyZ3NbMF0pCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBza2lwKCJ1bmNvbmRpdGlvbmFsIHNraXAiKQotCi0gICAg
aXRlbS5fZXZhbHhmYWlsID0gTWFya0V2YWx1YXRvcihpdGVtLCAneGZhaWwnKQotICAgIGNoZWNr
X3hmYWlsX25vX3J1bihpdGVtKQotCi0KLUBob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVm
IHB5dGVzdF9weWZ1bmNfY2FsbChweWZ1bmNpdGVtKToKLSAgICBjaGVja194ZmFpbF9ub19ydW4o
cHlmdW5jaXRlbSkKLSAgICBvdXRjb21lID0geWllbGQKLSAgICBwYXNzZWQgPSBvdXRjb21lLmV4
Y2luZm8gaXMgTm9uZQotICAgIGlmIHBhc3NlZDoKLSAgICAgICAgY2hlY2tfc3RyaWN0X3hmYWls
KHB5ZnVuY2l0ZW0pCi0KLQotZGVmIGNoZWNrX3hmYWlsX25vX3J1bihpdGVtKToKLSAgICAiIiJj
aGVjayB4ZmFpbChydW49RmFsc2UpIiIiCi0gICAgaWYgbm90IGl0ZW0uY29uZmlnLm9wdGlvbi5y
dW54ZmFpbDoKLSAgICAgICAgZXZhbHhmYWlsID0gaXRlbS5fZXZhbHhmYWlsCi0gICAgICAgIGlm
IGV2YWx4ZmFpbC5pc3RydWUoKToKLSAgICAgICAgICAgIGlmIG5vdCBldmFseGZhaWwuZ2V0KCdy
dW4nLCBUcnVlKToKLSAgICAgICAgICAgICAgICB4ZmFpbCgiW05PVFJVTl0gIiArIGV2YWx4ZmFp
bC5nZXRleHBsYW5hdGlvbigpKQotCi0KLWRlZiBjaGVja19zdHJpY3RfeGZhaWwocHlmdW5jaXRl
bSk6Ci0gICAgIiIiY2hlY2sgeGZhaWwoc3RyaWN0PVRydWUpIGZvciB0aGUgZ2l2ZW4gUEFTU0lO
RyB0ZXN0IiIiCi0gICAgZXZhbHhmYWlsID0gcHlmdW5jaXRlbS5fZXZhbHhmYWlsCi0gICAgaWYg
ZXZhbHhmYWlsLmlzdHJ1ZSgpOgotICAgICAgICBzdHJpY3RfZGVmYXVsdCA9IHB5ZnVuY2l0ZW0u
Y29uZmlnLmdldGluaSgneGZhaWxfc3RyaWN0JykKLSAgICAgICAgaXNfc3RyaWN0X3hmYWlsID0g
ZXZhbHhmYWlsLmdldCgnc3RyaWN0Jywgc3RyaWN0X2RlZmF1bHQpCi0gICAgICAgIGlmIGlzX3N0
cmljdF94ZmFpbDoKLSAgICAgICAgICAgIGRlbCBweWZ1bmNpdGVtLl9ldmFseGZhaWwKLSAgICAg
ICAgICAgIGV4cGxhbmF0aW9uID0gZXZhbHhmYWlsLmdldGV4cGxhbmF0aW9uKCkKLSAgICAgICAg
ICAgIGZhaWwoJ1tYUEFTUyhzdHJpY3QpXSAnICsgZXhwbGFuYXRpb24sIHB5dHJhY2U9RmFsc2Up
Ci0KLQotQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3RfbWFr
ZXJlcG9ydChpdGVtLCBjYWxsKToKLSAgICBvdXRjb21lID0geWllbGQKLSAgICByZXAgPSBvdXRj
b21lLmdldF9yZXN1bHQoKQotICAgIGV2YWx4ZmFpbCA9IGdldGF0dHIoaXRlbSwgJ19ldmFseGZh
aWwnLCBOb25lKQotICAgICMgdW5pdHR0ZXN0IHNwZWNpYWwgY2FzZSwgc2VlIHNldHRpbmcgb2Yg
X3VuZXhwZWN0ZWRzdWNjZXNzCi0gICAgaWYgaGFzYXR0cihpdGVtLCAnX3VuZXhwZWN0ZWRzdWNj
ZXNzJykgYW5kIHJlcC53aGVuID09ICJjYWxsIjoKLSAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbXBh
dCBpbXBvcnQgX2lzX3VuaXR0ZXN0X3VuZXhwZWN0ZWRfc3VjY2Vzc19hX2ZhaWx1cmUKLSAgICAg
ICAgaWYgaXRlbS5fdW5leHBlY3RlZHN1Y2Nlc3M6Ci0gICAgICAgICAgICByZXAubG9uZ3JlcHIg
PSAiVW5leHBlY3RlZCBzdWNjZXNzOiB7MH0iLmZvcm1hdChpdGVtLl91bmV4cGVjdGVkc3VjY2Vz
cykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlcC5sb25ncmVwciA9ICJVbmV4cGVjdGVk
IHN1Y2Nlc3MiCi0gICAgICAgIGlmIF9pc191bml0dGVzdF91bmV4cGVjdGVkX3N1Y2Nlc3NfYV9m
YWlsdXJlKCk6Ci0gICAgICAgICAgICByZXAub3V0Y29tZSA9ICJmYWlsZWQiCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICByZXAub3V0Y29tZSA9ICJwYXNzZWQiCi0gICAgICAgICAgICByZXAu
d2FzeGZhaWwgPSByZXAubG9uZ3JlcHIKLSAgICBlbGlmIGl0ZW0uY29uZmlnLm9wdGlvbi5ydW54
ZmFpbDoKLSAgICAgICAgcGFzcyAgICMgZG9uJ3QgaW50ZXJlZmVyZQotICAgIGVsaWYgY2FsbC5l
eGNpbmZvIGFuZCBjYWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5jZSh4ZmFpbC5FeGNlcHRpb24pOgot
ICAgICAgICByZXAud2FzeGZhaWwgPSAicmVhc29uOiAiICsgY2FsbC5leGNpbmZvLnZhbHVlLm1z
ZwotICAgICAgICByZXAub3V0Y29tZSA9ICJza2lwcGVkIgotICAgIGVsaWYgZXZhbHhmYWlsIGFu
ZCBub3QgcmVwLnNraXBwZWQgYW5kIGV2YWx4ZmFpbC53YXN2YWxpZCgpIGFuZCBcCi0gICAgICAg
ICAgICBldmFseGZhaWwuaXN0cnVlKCk6Ci0gICAgICAgIGlmIGNhbGwuZXhjaW5mbzoKLSAgICAg
ICAgICAgIGlmIGV2YWx4ZmFpbC5pbnZhbGlkcmFpc2UoY2FsbC5leGNpbmZvLnZhbHVlKToKLSAg
ICAgICAgICAgICAgICByZXAub3V0Y29tZSA9ICJmYWlsZWQiCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHJlcC5vdXRjb21lID0gInNraXBwZWQiCi0gICAgICAgICAgICAgICAg
cmVwLndhc3hmYWlsID0gZXZhbHhmYWlsLmdldGV4cGxhbmF0aW9uKCkKLSAgICAgICAgZWxpZiBj
YWxsLndoZW4gPT0gImNhbGwiOgotICAgICAgICAgICAgc3RyaWN0X2RlZmF1bHQgPSBpdGVtLmNv
bmZpZy5nZXRpbmkoJ3hmYWlsX3N0cmljdCcpCi0gICAgICAgICAgICBpc19zdHJpY3RfeGZhaWwg
PSBldmFseGZhaWwuZ2V0KCdzdHJpY3QnLCBzdHJpY3RfZGVmYXVsdCkKLSAgICAgICAgICAgIGV4
cGxhbmF0aW9uID0gZXZhbHhmYWlsLmdldGV4cGxhbmF0aW9uKCkKLSAgICAgICAgICAgIGlmIGlz
X3N0cmljdF94ZmFpbDoKLSAgICAgICAgICAgICAgICByZXAub3V0Y29tZSA9ICJmYWlsZWQiCi0g
ICAgICAgICAgICAgICAgcmVwLmxvbmdyZXByID0gIltYUEFTUyhzdHJpY3QpXSB7MH0iLmZvcm1h
dChleHBsYW5hdGlvbikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmVwLm91
dGNvbWUgPSAicGFzc2VkIgotICAgICAgICAgICAgICAgIHJlcC53YXN4ZmFpbCA9IGV4cGxhbmF0
aW9uCi0gICAgZWxpZiBpdGVtLl9za2lwcGVkX2J5X21hcmsgYW5kIHJlcC5za2lwcGVkIGFuZCB0
eXBlKHJlcC5sb25ncmVwcikgaXMgdHVwbGU6Ci0gICAgICAgICMgc2tpcHBlZCBieSBtYXJrLnNr
aXBpZjsgY2hhbmdlIHRoZSBsb2NhdGlvbiBvZiB0aGUgZmFpbHVyZQotICAgICAgICAjIHRvIHBv
aW50IHRvIHRoZSBpdGVtIGRlZmluaXRpb24sIG90aGVyd2lzZSBpdCB3aWxsIGRpc3BsYXkKLSAg
ICAgICAgIyB0aGUgbG9jYXRpb24gb2Ygd2hlcmUgdGhlIHNraXAgZXhjZXB0aW9uIHdhcyByYWlz
ZWQgd2l0aGluIHB5dGVzdAotICAgICAgICBmaWxlbmFtZSwgbGluZSwgcmVhc29uID0gcmVwLmxv
bmdyZXByCi0gICAgICAgIGZpbGVuYW1lLCBsaW5lID0gaXRlbS5sb2NhdGlvbls6Ml0KLSAgICAg
ICAgcmVwLmxvbmdyZXByID0gZmlsZW5hbWUsIGxpbmUsIHJlYXNvbgotCi0jIGNhbGxlZCBieSB0
ZXJtaW5hbHJlcG9ydGVyIHByb2dyZXNzIHJlcG9ydGluZwotCi0KLWRlZiBweXRlc3RfcmVwb3J0
X3Rlc3RzdGF0dXMocmVwb3J0KToKLSAgICBpZiBoYXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIik6
Ci0gICAgICAgIGlmIHJlcG9ydC5za2lwcGVkOgotICAgICAgICAgICAgcmV0dXJuICJ4ZmFpbGVk
IiwgIngiLCAieGZhaWwiCi0gICAgICAgIGVsaWYgcmVwb3J0LnBhc3NlZDoKLSAgICAgICAgICAg
IHJldHVybiAieHBhc3NlZCIsICJYIiwgKCJYUEFTUyIsIHsneWVsbG93JzogVHJ1ZX0pCi0KLSMg
Y2FsbGVkIGJ5IHRoZSB0ZXJtaW5hbHJlcG9ydGVyIGluc3RhbmNlL3BsdWdpbgotCi0KLWRlZiBw
eXRlc3RfdGVybWluYWxfc3VtbWFyeSh0ZXJtaW5hbHJlcG9ydGVyKToKLSAgICB0ciA9IHRlcm1p
bmFscmVwb3J0ZXIKLSAgICBpZiBub3QgdHIucmVwb3J0Y2hhcnM6Ci0gICAgICAgICMgZm9yIG5h
bWUgaW4gInhmYWlsZWQgc2tpcHBlZCBmYWlsZWQgeHBhc3NlZCI6Ci0gICAgICAgICMgICAgaWYg
bm90IHRyLnN0YXRzLmdldChuYW1lLCAwKToKLSAgICAgICAgIyAgICAgICAgdHIud3JpdGVfbGlu
ZSgiSElOVDogdXNlICctcicgb3B0aW9uIHRvIHNlZSBleHRyYSAiCi0gICAgICAgICMgICAgICAg
ICAgICAgICJzdW1tYXJ5IGluZm8gYWJvdXQgdGVzdHMiKQotICAgICAgICAjICAgICAgICBicmVh
awotICAgICAgICByZXR1cm4KLQotICAgIGxpbmVzID0gW10KLSAgICBmb3IgY2hhciBpbiB0ci5y
ZXBvcnRjaGFyczoKLSAgICAgICAgaWYgY2hhciA9PSAieCI6Ci0gICAgICAgICAgICBzaG93X3hm
YWlsZWQodGVybWluYWxyZXBvcnRlciwgbGluZXMpCi0gICAgICAgIGVsaWYgY2hhciA9PSAiWCI6
Ci0gICAgICAgICAgICBzaG93X3hwYXNzZWQodGVybWluYWxyZXBvcnRlciwgbGluZXMpCi0gICAg
ICAgIGVsaWYgY2hhciBpbiAiZkYiOgotICAgICAgICAgICAgc2hvd19zaW1wbGUodGVybWluYWxy
ZXBvcnRlciwgbGluZXMsICdmYWlsZWQnLCAiRkFJTCAlcyIpCi0gICAgICAgIGVsaWYgY2hhciBp
biAic1MiOgotICAgICAgICAgICAgc2hvd19za2lwcGVkKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVz
KQotICAgICAgICBlbGlmIGNoYXIgPT0gIkUiOgotICAgICAgICAgICAgc2hvd19zaW1wbGUodGVy
bWluYWxyZXBvcnRlciwgbGluZXMsICdlcnJvcicsICJFUlJPUiAlcyIpCi0gICAgICAgIGVsaWYg
Y2hhciA9PSAncCc6Ci0gICAgICAgICAgICBzaG93X3NpbXBsZSh0ZXJtaW5hbHJlcG9ydGVyLCBs
aW5lcywgJ3Bhc3NlZCcsICJQQVNTRUQgJXMiKQotCi0gICAgaWYgbGluZXM6Ci0gICAgICAgIHRy
Ll90dy5zZXAoIj0iLCAic2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8iKQotICAgICAgICBmb3IgbGlu
ZSBpbiBsaW5lczoKLSAgICAgICAgICAgIHRyLl90dy5saW5lKGxpbmUpCi0KLQotZGVmIHNob3df
c2ltcGxlKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzLCBzdGF0LCBmb3JtYXQpOgotICAgIGZhaWxl
ZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0KHN0YXQpCi0gICAgaWYgZmFpbGVkOgotICAg
ICAgICBmb3IgcmVwIGluIGZhaWxlZDoKLSAgICAgICAgICAgIHBvcyA9IHRlcm1pbmFscmVwb3J0
ZXIuY29uZmlnLmN3ZF9yZWxhdGl2ZV9ub2RlaWQocmVwLm5vZGVpZCkKLSAgICAgICAgICAgIGxp
bmVzLmFwcGVuZChmb3JtYXQgJSAocG9zLCkpCi0KLQotZGVmIHNob3dfeGZhaWxlZCh0ZXJtaW5h
bHJlcG9ydGVyLCBsaW5lcyk6Ci0gICAgeGZhaWxlZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMu
Z2V0KCJ4ZmFpbGVkIikKLSAgICBpZiB4ZmFpbGVkOgotICAgICAgICBmb3IgcmVwIGluIHhmYWls
ZWQ6Ci0gICAgICAgICAgICBwb3MgPSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5jd2RfcmVsYXRp
dmVfbm9kZWlkKHJlcC5ub2RlaWQpCi0gICAgICAgICAgICByZWFzb24gPSByZXAud2FzeGZhaWwK
LSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiWEZBSUwgJXMiICUgKHBvcywpKQotICAgICAgICAg
ICAgaWYgcmVhc29uOgotICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAiICsgc3RyKHJl
YXNvbikpCi0KLQotZGVmIHNob3dfeHBhc3NlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6Ci0g
ICAgeHBhc3NlZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0KCJ4cGFzc2VkIikKLSAgICBp
ZiB4cGFzc2VkOgotICAgICAgICBmb3IgcmVwIGluIHhwYXNzZWQ6Ci0gICAgICAgICAgICBwb3Mg
PSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5jd2RfcmVsYXRpdmVfbm9kZWlkKHJlcC5ub2RlaWQp
Ci0gICAgICAgICAgICByZWFzb24gPSByZXAud2FzeGZhaWwKLSAgICAgICAgICAgIGxpbmVzLmFw
cGVuZCgiWFBBU1MgJXMgJXMiICUgKHBvcywgcmVhc29uKSkKLQotCi1kZWYgY2FjaGVkX2V2YWwo
Y29uZmlnLCBleHByLCBkKToKLSAgICBpZiBub3QgaGFzYXR0cihjb25maWcsICdfZXZhbGNhY2hl
Jyk6Ci0gICAgICAgIGNvbmZpZy5fZXZhbGNhY2hlID0ge30KLSAgICB0cnk6Ci0gICAgICAgIHJl
dHVybiBjb25maWcuX2V2YWxjYWNoZVtleHByXQotICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAg
ICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKLSAgICAgICAgZXhwcmNvZGUgPSBfcHl0ZXN0Ll9jb2Rl
LmNvbXBpbGUoZXhwciwgbW9kZT0iZXZhbCIpCi0gICAgICAgIGNvbmZpZy5fZXZhbGNhY2hlW2V4
cHJdID0geCA9IGV2YWwoZXhwcmNvZGUsIGQpCi0gICAgICAgIHJldHVybiB4Ci0KLQotZGVmIGZv
bGRlZF9za2lwcyhza2lwcGVkKToKLSAgICBkID0ge30KLSAgICBmb3IgZXZlbnQgaW4gc2tpcHBl
ZDoKLSAgICAgICAga2V5ID0gZXZlbnQubG9uZ3JlcHIKLSAgICAgICAgYXNzZXJ0IGxlbihrZXkp
ID09IDMsIChldmVudCwga2V5KQotICAgICAgICBrZXl3b3JkcyA9IGdldGF0dHIoZXZlbnQsICdr
ZXl3b3JkcycsIHt9KQotICAgICAgICAjIGZvbGRpbmcgcmVwb3J0cyB3aXRoIGdsb2JhbCBweXRl
c3RtYXJrIHZhcmlhYmxlCi0gICAgICAgICMgdGhpcyBpcyB3b3JrYXJvdW5kLCBiZWNhdXNlIGZv
ciBub3cgd2UgY2Fubm90IGlkZW50aWZ5IHRoZSBzY29wZSBvZiBhIHNraXAgbWFya2VyCi0gICAg
ICAgICMgVE9ETzogcmV2aXNpdCBhZnRlciBtYXJrcyBzY29wZSB3b3VsZCBiZSBmaXhlZAotICAg
ICAgICB3aGVuID0gZ2V0YXR0cihldmVudCwgJ3doZW4nLCBOb25lKQotICAgICAgICBpZiB3aGVu
ID09ICdzZXR1cCcgYW5kICdza2lwJyBpbiBrZXl3b3JkcyBhbmQgJ3B5dGVzdG1hcmsnIG5vdCBp
biBrZXl3b3JkczoKLSAgICAgICAgICAgIGtleSA9IChrZXlbMF0sIE5vbmUsIGtleVsyXSwgKQot
ICAgICAgICBkLnNldGRlZmF1bHQoa2V5LCBbXSkuYXBwZW5kKGV2ZW50KQotICAgIHZhbHVlcyA9
IFtdCi0gICAgZm9yIGtleSwgZXZlbnRzIGluIGQuaXRlbXMoKToKLSAgICAgICAgdmFsdWVzLmFw
cGVuZCgobGVuKGV2ZW50cyksKSArIGtleSkKLSAgICByZXR1cm4gdmFsdWVzCi0KLQotZGVmIHNo
b3dfc2tpcHBlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6Ci0gICAgdHIgPSB0ZXJtaW5hbHJl
cG9ydGVyCi0gICAgc2tpcHBlZCA9IHRyLnN0YXRzLmdldCgnc2tpcHBlZCcsIFtdKQotICAgIGlm
IHNraXBwZWQ6Ci0gICAgICAgICMgaWYgbm90IHRyLmhhc29wdCgnc2tpcHBlZCcpOgotICAgICAg
ICAjICAgIHRyLndyaXRlX2xpbmUoCi0gICAgICAgICMgICAgICAgICIlZCBza2lwcGVkIHRlc3Rz
LCBzcGVjaWZ5IC1ycyBmb3IgbW9yZSBpbmZvIiAlCi0gICAgICAgICMgICAgICAgIGxlbihza2lw
cGVkKSkKLSAgICAgICAgIyAgICByZXR1cm4KLSAgICAgICAgZnNraXBzID0gZm9sZGVkX3NraXBz
KHNraXBwZWQpCi0gICAgICAgIGlmIGZza2lwczoKLSAgICAgICAgICAgICMgdHIud3JpdGVfc2Vw
KCJfIiwgInNraXBwZWQgdGVzdCBzdW1tYXJ5IikKLSAgICAgICAgICAgIGZvciBudW0sIGZzcGF0
aCwgbGluZW5vLCByZWFzb24gaW4gZnNraXBzOgotICAgICAgICAgICAgICAgIGlmIHJlYXNvbi5z
dGFydHN3aXRoKCJTa2lwcGVkOiAiKToKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gcmVh
c29uWzk6XQotICAgICAgICAgICAgICAgIGlmIGxpbmVubyBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgICAgICAgICAgbGluZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICAgICAgIlNLSVAg
WyVkXSAlczolZDogJXMiICUKLSAgICAgICAgICAgICAgICAgICAgICAgIChudW0sIGZzcGF0aCwg
bGluZW5vICsgMSwgcmVhc29uKSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICBsaW5lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgICAgICAiU0tJUCBbJWRd
ICVzOiAlcyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgKG51bSwgZnNwYXRoLCByZWFzb24p
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90ZXJtaW5hbC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvdGVybWluYWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFh
YmE1ZTg0NWU1MTkwYWY0NmJkZjQ0YTAzNTJmOWNkNDA3NjliNjEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90ZXJtaW5h
bC5weQorKysgL2Rldi9udWxsCkBAIC0xLDcwMyArMCwwIEBACi0iIiIgdGVybWluYWwgcmVwb3J0
aW5nIG9mIHRoZSBmdWxsIHRlc3RpbmcgcHJvY2Vzcy4KLQotVGhpcyBpcyBhIGdvb2Qgc291cmNl
IGZvciBsb29raW5nIGF0IHRoZSB2YXJpb3VzIHJlcG9ydGluZyBob29rcy4KLSIiIgotZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgotCi1pbXBvcnQgaXRlcnRvb2xzCi1pbXBvcnQgcGxhdGZvcm0KLWltcG9ydCBzeXMKLWltcG9y
dCB0aW1lCi0KLWltcG9ydCBwbHVnZ3kKLWltcG9ydCBweQotaW1wb3J0IHNpeAotCi1pbXBvcnQg
cHl0ZXN0Ci1mcm9tIF9weXRlc3QgaW1wb3J0IG5vZGVzCi1mcm9tIF9weXRlc3QubWFpbiBpbXBv
cnQgRVhJVF9PSywgRVhJVF9URVNUU0ZBSUxFRCwgRVhJVF9JTlRFUlJVUFRFRCwgXAotICAgIEVY
SVRfVVNBR0VFUlJPUiwgRVhJVF9OT1RFU1RTQ09MTEVDVEVECi0KLQotZGVmIHB5dGVzdF9hZGRv
cHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgidGVybWluYWwgcmVw
b3J0aW5nIiwgInJlcG9ydGluZyIsIGFmdGVyPSJnZW5lcmFsIikKLSAgICBncm91cC5fYWRkb3B0
aW9uKCctdicsICctLXZlcmJvc2UnLCBhY3Rpb249ImNvdW50IiwKLSAgICAgICAgICAgICAgICAg
ICAgIGRlc3Q9InZlcmJvc2UiLCBkZWZhdWx0PTAsIGhlbHA9ImluY3JlYXNlIHZlcmJvc2l0eS4i
KSwKLSAgICBncm91cC5fYWRkb3B0aW9uKCctcScsICctLXF1aWV0JywgYWN0aW9uPSJjb3VudCIs
Ci0gICAgICAgICAgICAgICAgICAgICBkZXN0PSJxdWlldCIsIGRlZmF1bHQ9MCwgaGVscD0iZGVj
cmVhc2UgdmVyYm9zaXR5LiIpLAotICAgIGdyb3VwLl9hZGRvcHRpb24oJy1yJywKLSAgICAgICAg
ICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJyZXBvcnRjaGFycyIsIGRlZmF1bHQ9
JycsIG1ldGF2YXI9ImNoYXJzIiwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9InNob3cgZXh0
cmEgdGVzdCBzdW1tYXJ5IGluZm8gYXMgc3BlY2lmaWVkIGJ5IGNoYXJzIChmKWFpbGVkLCAiCi0g
ICAgICAgICAgICAgICAgICAgICAiKEUpZXJyb3IsIChzKXNraXBwZWQsICh4KWZhaWxlZCwgKFgp
cGFzc2VkLCAiCi0gICAgICAgICAgICAgICAgICAgICAiKHApcGFzc2VkLCAoUClwYXNzZWQgd2l0
aCBvdXRwdXQsIChhKWFsbCBleGNlcHQgcFAuICIKLSAgICAgICAgICAgICAgICAgICAgICJXYXJu
aW5ncyBhcmUgZGlzcGxheWVkIGF0IGFsbCB0aW1lcyBleGNlcHQgd2hlbiAiCi0gICAgICAgICAg
ICAgICAgICAgICAiLS1kaXNhYmxlLXdhcm5pbmdzIGlzIHNldCIpCi0gICAgZ3JvdXAuX2FkZG9w
dGlvbignLS1kaXNhYmxlLXdhcm5pbmdzJywgJy0tZGlzYWJsZS1weXRlc3Qtd2FybmluZ3MnLCBk
ZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgZGVzdD0nZGlzYWJsZV93YXJuaW5n
cycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSdkaXNh
YmxlIHdhcm5pbmdzIHN1bW1hcnknKQotICAgIGdyb3VwLl9hZGRvcHRpb24oJy1sJywgJy0tc2hv
d2xvY2FscycsCi0gICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0
PSJzaG93bG9jYWxzIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9
InNob3cgbG9jYWxzIGluIHRyYWNlYmFja3MgKGRpc2FibGVkIGJ5IGRlZmF1bHQpLiIpCi0gICAg
Z3JvdXAuX2FkZG9wdGlvbignLS10YicsIG1ldGF2YXI9InN0eWxlIiwKLSAgICAgICAgICAgICAg
ICAgICAgIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJ0YnN0eWxlIiwgZGVmYXVsdD0nYXV0bycsCi0g
ICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnYXV0bycsICdsb25nJywgJ3Nob3J0JywgJ25v
JywgJ2xpbmUnLCAnbmF0aXZlJ10sCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJ0cmFjZWJh
Y2sgcHJpbnQgbW9kZSAoYXV0by9sb25nL3Nob3J0L2xpbmUvbmF0aXZlL25vKS4iKQotICAgIGdy
b3VwLl9hZGRvcHRpb24oJy0tZnVsbHRyYWNlJywgJy0tZnVsbC10cmFjZScsCi0gICAgICAgICAg
ICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iZG9uJ3QgY3V0IGFueSB0cmFjZWJhY2tzIChkZWZhdWx0IGlzIHRv
IGN1dCkuIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCctLWNvbG9yJywgbWV0YXZhcj0iY29sb3Ii
LAotICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9ImNvbG9yIiwgZGVm
YXVsdD0nYXV0bycsCi0gICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsneWVzJywgJ25vJywg
J2F1dG8nXSwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImNvbG9yIHRlcm1pbmFsIG91dHB1
dCAoeWVzL25vL2F1dG8pLiIpCi0KLSAgICBwYXJzZXIuYWRkaW5pKCJjb25zb2xlX291dHB1dF9z
dHlsZSIsCi0gICAgICAgICAgICAgICAgICBoZWxwPSJjb25zb2xlIG91dHB1dDogY2xhc3NpYyBv
ciB3aXRoIGFkZGl0aW9uYWwgcHJvZ3Jlc3MgaW5mb3JtYXRpb24gKGNsYXNzaWN8cHJvZ3Jlc3Mp
LiIsCi0gICAgICAgICAgICAgICAgICBkZWZhdWx0PSdwcm9ncmVzcycpCi0KLQotZGVmIHB5dGVz
dF9jb25maWd1cmUoY29uZmlnKToKLSAgICBjb25maWcub3B0aW9uLnZlcmJvc2UgLT0gY29uZmln
Lm9wdGlvbi5xdWlldAotICAgIHJlcG9ydGVyID0gVGVybWluYWxSZXBvcnRlcihjb25maWcsIHN5
cy5zdGRvdXQpCi0gICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIocmVwb3J0ZXIsICd0
ZXJtaW5hbHJlcG9ydGVyJykKLSAgICBpZiBjb25maWcub3B0aW9uLmRlYnVnIG9yIGNvbmZpZy5v
cHRpb24udHJhY2Vjb25maWc6Ci0gICAgICAgIGRlZiBteXdyaXRlcih0YWdzLCBhcmdzKToKLSAg
ICAgICAgICAgIG1zZyA9ICIgIi5qb2luKG1hcChzdHIsIGFyZ3MpKQotICAgICAgICAgICAgcmVw
b3J0ZXIud3JpdGVfbGluZSgiW3RyYWNlY29uZmlnXSAiICsgbXNnKQotICAgICAgICBjb25maWcu
dHJhY2Uucm9vdC5zZXRwcm9jZXNzb3IoInB5dGVzdDpjb25maWciLCBteXdyaXRlcikKLQotCi1k
ZWYgZ2V0cmVwb3J0b3B0KGNvbmZpZyk6Ci0gICAgcmVwb3J0b3B0cyA9ICIiCi0gICAgcmVwb3J0
Y2hhcnMgPSBjb25maWcub3B0aW9uLnJlcG9ydGNoYXJzCi0gICAgaWYgbm90IGNvbmZpZy5vcHRp
b24uZGlzYWJsZV93YXJuaW5ncyBhbmQgJ3cnIG5vdCBpbiByZXBvcnRjaGFyczoKLSAgICAgICAg
cmVwb3J0Y2hhcnMgKz0gJ3cnCi0gICAgZWxpZiBjb25maWcub3B0aW9uLmRpc2FibGVfd2Fybmlu
Z3MgYW5kICd3JyBpbiByZXBvcnRjaGFyczoKLSAgICAgICAgcmVwb3J0Y2hhcnMgPSByZXBvcnRj
aGFycy5yZXBsYWNlKCd3JywgJycpCi0gICAgaWYgcmVwb3J0Y2hhcnM6Ci0gICAgICAgIGZvciBj
aGFyIGluIHJlcG9ydGNoYXJzOgotICAgICAgICAgICAgaWYgY2hhciBub3QgaW4gcmVwb3J0b3B0
cyBhbmQgY2hhciAhPSAnYSc6Ci0gICAgICAgICAgICAgICAgcmVwb3J0b3B0cyArPSBjaGFyCi0g
ICAgICAgICAgICBlbGlmIGNoYXIgPT0gJ2EnOgotICAgICAgICAgICAgICAgIHJlcG9ydG9wdHMg
PSAnZkVzeFh3JwotICAgIHJldHVybiByZXBvcnRvcHRzCi0KLQotZGVmIHB5dGVzdF9yZXBvcnRf
dGVzdHN0YXR1cyhyZXBvcnQpOgotICAgIGlmIHJlcG9ydC5wYXNzZWQ6Ci0gICAgICAgIGxldHRl
ciA9ICIuIgotICAgIGVsaWYgcmVwb3J0LnNraXBwZWQ6Ci0gICAgICAgIGxldHRlciA9ICJzIgot
ICAgIGVsaWYgcmVwb3J0LmZhaWxlZDoKLSAgICAgICAgbGV0dGVyID0gIkYiCi0gICAgICAgIGlm
IHJlcG9ydC53aGVuICE9ICJjYWxsIjoKLSAgICAgICAgICAgIGxldHRlciA9ICJmIgotICAgIHJl
dHVybiByZXBvcnQub3V0Y29tZSwgbGV0dGVyLCByZXBvcnQub3V0Y29tZS51cHBlcigpCi0KLQot
Y2xhc3MgV2FybmluZ1JlcG9ydDoKLSAgICAiIiIKLSAgICBTaW1wbGUgc3RydWN0dXJlIHRvIGhv
bGQgd2FybmluZ3MgaW5mb3JtYXRpb24gY2FwdHVyZWQgYnkgYGBweXRlc3RfbG9nd2FybmluZ2Bg
LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvZGUsIG1lc3NhZ2UsIG5vZGVp
ZD1Ob25lLCBmc2xvY2F0aW9uPU5vbmUpOgotICAgICAgICAiIiIKLSAgICAgICAgOnBhcmFtIGNv
ZGU6IHVudXNlZAotICAgICAgICA6cGFyYW0gc3RyIG1lc3NhZ2U6IHVzZXIgZnJpZW5kbHkgbWVz
c2FnZSBhYm91dCB0aGUgd2FybmluZwotICAgICAgICA6cGFyYW0gc3RyfE5vbmUgbm9kZWlkOiBu
b2RlIGlkIHRoYXQgZ2VuZXJhdGVkIHRoZSB3YXJuaW5nIChzZWUgYGBnZXRfbG9jYXRpb25gYCku
Ci0gICAgICAgIDpwYXJhbSB0dXBsZXxweS5wYXRoLmxvY2FsIGZzbG9jYXRpb246Ci0gICAgICAg
ICAgICBmaWxlIHN5c3RlbSBsb2NhdGlvbiBvZiB0aGUgc291cmNlIG9mIHRoZSB3YXJuaW5nIChz
ZWUgYGBnZXRfbG9jYXRpb25gYCkuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmNvZGUgPSBj
b2RlCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKLSAgICAgICAgc2VsZi5ub2RlaWQg
PSBub2RlaWQKLSAgICAgICAgc2VsZi5mc2xvY2F0aW9uID0gZnNsb2NhdGlvbgotCi0gICAgZGVm
IGdldF9sb2NhdGlvbihzZWxmLCBjb25maWcpOgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJu
cyB0aGUgbW9yZSB1c2VyLWZyaWVuZGx5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhdGlvbgot
ICAgICAgICBvZiBhIHdhcm5pbmcsIG9yIE5vbmUuCi0gICAgICAgICIiIgotICAgICAgICBpZiBz
ZWxmLm5vZGVpZDoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLm5vZGVpZAotICAgICAgICBpZiBz
ZWxmLmZzbG9jYXRpb246Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYuZnNsb2NhdGlv
biwgdHVwbGUpIGFuZCBsZW4oc2VsZi5mc2xvY2F0aW9uKSA+PSAyOgotICAgICAgICAgICAgICAg
IGZpbGVuYW1lLCBsaW5lbnVtID0gc2VsZi5mc2xvY2F0aW9uWzoyXQotICAgICAgICAgICAgICAg
IHJlbHBhdGggPSBweS5wYXRoLmxvY2FsKGZpbGVuYW1lKS5yZWx0byhjb25maWcuaW52b2NhdGlv
bl9kaXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuICclczolcycgJSAocmVscGF0aCwgbGluZW51
bSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHN0cihzZWxmLmZz
bG9jYXRpb24pCi0gICAgICAgIHJldHVybiBOb25lCi0KLQotY2xhc3MgVGVybWluYWxSZXBvcnRl
cjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCBmaWxlPU5vbmUpOgotICAgICAgICBp
bXBvcnQgX3B5dGVzdC5jb25maWcKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLSAgICAg
ICAgc2VsZi52ZXJib3NpdHkgPSBzZWxmLmNvbmZpZy5vcHRpb24udmVyYm9zZQotICAgICAgICBz
ZWxmLnNob3doZWFkZXIgPSBzZWxmLnZlcmJvc2l0eSA+PSAwCi0gICAgICAgIHNlbGYuc2hvd2Zz
cGF0aCA9IHNlbGYudmVyYm9zaXR5ID49IDAKLSAgICAgICAgc2VsZi5zaG93bG9uZ3Rlc3RpbmZv
ID0gc2VsZi52ZXJib3NpdHkgPiAwCi0gICAgICAgIHNlbGYuX251bWNvbGxlY3RlZCA9IDAKLSAg
ICAgICAgc2VsZi5fc2Vzc2lvbiA9IE5vbmUKLQotICAgICAgICBzZWxmLnN0YXRzID0ge30KLSAg
ICAgICAgc2VsZi5zdGFydGRpciA9IHB5LnBhdGgubG9jYWwoKQotICAgICAgICBpZiBmaWxlIGlz
IE5vbmU6Ci0gICAgICAgICAgICBmaWxlID0gc3lzLnN0ZG91dAotICAgICAgICBzZWxmLl90dyA9
IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5hbF93cml0ZXIoY29uZmlnLCBmaWxlKQotICAg
ICAgICAjIHNlbGYud3JpdGVyIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBweXRlc3QtMy40Ci0gICAg
ICAgIHNlbGYud3JpdGVyID0gc2VsZi5fdHcKLSAgICAgICAgc2VsZi5fc2NyZWVuX3dpZHRoID0g
c2VsZi5fdHcuZnVsbHdpZHRoCi0gICAgICAgIHNlbGYuY3VycmVudGZzcGF0aCA9IE5vbmUKLSAg
ICAgICAgc2VsZi5yZXBvcnRjaGFycyA9IGdldHJlcG9ydG9wdChjb25maWcpCi0gICAgICAgIHNl
bGYuaGFzbWFya3VwID0gc2VsZi5fdHcuaGFzbWFya3VwCi0gICAgICAgIHNlbGYuaXNhdHR5ID0g
ZmlsZS5pc2F0dHkoKQotICAgICAgICBzZWxmLl9wcm9ncmVzc19pdGVtc19yZXBvcnRlZCA9IDAK
LSAgICAgICAgc2VsZi5fc2hvd19wcm9ncmVzc19pbmZvID0gc2VsZi5jb25maWcuZ2V0aW5pKCdj
b25zb2xlX291dHB1dF9zdHlsZScpID09ICdwcm9ncmVzcycKLQotICAgIGRlZiBoYXNvcHQoc2Vs
ZiwgY2hhcik6Ci0gICAgICAgIGNoYXIgPSB7J3hmYWlsZWQnOiAneCcsICdza2lwcGVkJzogJ3Mn
fS5nZXQoY2hhciwgY2hhcikKLSAgICAgICAgcmV0dXJuIGNoYXIgaW4gc2VsZi5yZXBvcnRjaGFy
cwotCi0gICAgZGVmIHdyaXRlX2ZzcGF0aF9yZXN1bHQoc2VsZiwgbm9kZWlkLCByZXMpOgotICAg
ICAgICBmc3BhdGggPSBzZWxmLmNvbmZpZy5yb290ZGlyLmpvaW4obm9kZWlkLnNwbGl0KCI6OiIp
WzBdKQotICAgICAgICBpZiBmc3BhdGggIT0gc2VsZi5jdXJyZW50ZnNwYXRoOgotICAgICAgICAg
ICAgaWYgc2VsZi5jdXJyZW50ZnNwYXRoIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHNl
bGYuX3dyaXRlX3Byb2dyZXNzX2luZm9ybWF0aW9uX2ZpbGxpbmdfc3BhY2UoKQotICAgICAgICAg
ICAgc2VsZi5jdXJyZW50ZnNwYXRoID0gZnNwYXRoCi0gICAgICAgICAgICBmc3BhdGggPSBzZWxm
LnN0YXJ0ZGlyLmJlc3RyZWxwYXRoKGZzcGF0aCkKLSAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUo
KQotICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUoZnNwYXRoICsgIiAiKQotICAgICAgICBzZWxm
Ll90dy53cml0ZShyZXMpCi0KLSAgICBkZWYgd3JpdGVfZW5zdXJlX3ByZWZpeChzZWxmLCBwcmVm
aXgsIGV4dHJhPSIiLCAqKmt3YXJncyk6Ci0gICAgICAgIGlmIHNlbGYuY3VycmVudGZzcGF0aCAh
PSBwcmVmaXg6Ci0gICAgICAgICAgICBzZWxmLl90dy5saW5lKCkKLSAgICAgICAgICAgIHNlbGYu
Y3VycmVudGZzcGF0aCA9IHByZWZpeAotICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUocHJlZml4
KQotICAgICAgICBpZiBleHRyYToKLSAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKGV4dHJhLCAq
Kmt3YXJncykKLSAgICAgICAgICAgIHNlbGYuY3VycmVudGZzcGF0aCA9IC0yCi0gICAgICAgICAg
ICBzZWxmLl93cml0ZV9wcm9ncmVzc19pbmZvcm1hdGlvbl9maWxsaW5nX3NwYWNlKCkKLQotICAg
IGRlZiBlbnN1cmVfbmV3bGluZShzZWxmKToKLSAgICAgICAgaWYgc2VsZi5jdXJyZW50ZnNwYXRo
OgotICAgICAgICAgICAgc2VsZi5fdHcubGluZSgpCi0gICAgICAgICAgICBzZWxmLmN1cnJlbnRm
c3BhdGggPSBOb25lCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgY29udGVudCwgKiptYXJrdXApOgot
ICAgICAgICBzZWxmLl90dy53cml0ZShjb250ZW50LCAqKm1hcmt1cCkKLQotICAgIGRlZiB3cml0
ZV9saW5lKHNlbGYsIGxpbmUsICoqbWFya3VwKToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo
bGluZSwgc2l4LnRleHRfdHlwZSk6Ci0gICAgICAgICAgICBsaW5lID0gc2l4LnRleHRfdHlwZShs
aW5lLCBlcnJvcnM9InJlcGxhY2UiKQotICAgICAgICBzZWxmLmVuc3VyZV9uZXdsaW5lKCkKLSAg
ICAgICAgc2VsZi5fdHcubGluZShsaW5lLCAqKm1hcmt1cCkKLQotICAgIGRlZiByZXdyaXRlKHNl
bGYsIGxpbmUsICoqbWFya3VwKToKLSAgICAgICAgIiIiCi0gICAgICAgIFJld2luZHMgdGhlIHRl
cm1pbmFsIGN1cnNvciB0byB0aGUgYmVnaW5uaW5nIGFuZCB3cml0ZXMgdGhlIGdpdmVuIGxpbmUu
Ci0KLSAgICAgICAgOmt3YXJnIGVyYXNlOiBpZiBUcnVlLCB3aWxsIGFsc28gYWRkIHNwYWNlcyB1
bnRpbCB0aGUgZnVsbCB0ZXJtaW5hbCB3aWR0aCB0byBlbnN1cmUKLSAgICAgICAgICAgIHByZXZp
b3VzIGxpbmVzIGFyZSBwcm9wZXJseSBlcmFzZWQuCi0KLSAgICAgICAgVGhlIHJlc3Qgb2YgdGhl
IGtleXdvcmQgYXJndW1lbnRzIGFyZSBtYXJrdXAgaW5zdHJ1Y3Rpb25zLgotICAgICAgICAiIiIK
LSAgICAgICAgZXJhc2UgPSBtYXJrdXAucG9wKCdlcmFzZScsIEZhbHNlKQotICAgICAgICBpZiBl
cmFzZToKLSAgICAgICAgICAgIGZpbGxfY291bnQgPSBzZWxmLl90dy5mdWxsd2lkdGggLSBsZW4o
bGluZSkgLSAxCi0gICAgICAgICAgICBmaWxsID0gJyAnICogZmlsbF9jb3VudAotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgZmlsbCA9ICcnCi0gICAgICAgIGxpbmUgPSBzdHIobGluZSkKLSAg
ICAgICAgc2VsZi5fdHcud3JpdGUoIlxyIiArIGxpbmUgKyBmaWxsLCAqKm1hcmt1cCkKLQotICAg
IGRlZiB3cml0ZV9zZXAoc2VsZiwgc2VwLCB0aXRsZT1Ob25lLCAqKm1hcmt1cCk6Ci0gICAgICAg
IHNlbGYuZW5zdXJlX25ld2xpbmUoKQotICAgICAgICBzZWxmLl90dy5zZXAoc2VwLCB0aXRsZSwg
KiptYXJrdXApCi0KLSAgICBkZWYgc2VjdGlvbihzZWxmLCB0aXRsZSwgc2VwPSI9IiwgKiprdyk6
Ci0gICAgICAgIHNlbGYuX3R3LnNlcChzZXAsIHRpdGxlLCAqKmt3KQotCi0gICAgZGVmIGxpbmUo
c2VsZiwgbXNnLCAqKmt3KToKLSAgICAgICAgc2VsZi5fdHcubGluZShtc2csICoqa3cpCi0KLSAg
ICBkZWYgcHl0ZXN0X2ludGVybmFsZXJyb3Ioc2VsZiwgZXhjcmVwcik6Ci0gICAgICAgIGZvciBs
aW5lIGluIHNpeC50ZXh0X3R5cGUoZXhjcmVwcikuc3BsaXQoIlxuIik6Ci0gICAgICAgICAgICBz
ZWxmLndyaXRlX2xpbmUoIklOVEVSTkFMRVJST1I+ICIgKyBsaW5lKQotICAgICAgICByZXR1cm4g
MQotCi0gICAgZGVmIHB5dGVzdF9sb2d3YXJuaW5nKHNlbGYsIGNvZGUsIGZzbG9jYXRpb24sIG1l
c3NhZ2UsIG5vZGVpZCk6Ci0gICAgICAgIHdhcm5pbmdzID0gc2VsZi5zdGF0cy5zZXRkZWZhdWx0
KCJ3YXJuaW5ncyIsIFtdKQotICAgICAgICB3YXJuaW5nID0gV2FybmluZ1JlcG9ydChjb2RlPWNv
ZGUsIGZzbG9jYXRpb249ZnNsb2NhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVzc2FnZT1tZXNzYWdlLCBub2RlaWQ9bm9kZWlkKQotICAgICAgICB3YXJuaW5ncy5hcHBl
bmQod2FybmluZykKLQotICAgIGRlZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQoc2VsZiwgcGx1
Z2luKToKLSAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRyYWNlY29uZmlnOgotICAgICAg
ICAgICAgbXNnID0gIlBMVUdJTiByZWdpc3RlcmVkOiAlcyIgJSAocGx1Z2luLCkKLSAgICAgICAg
ICAgICMgWFhYIHRoaXMgZXZlbnQgbWF5IGhhcHBlbiBkdXJpbmcgc2V0dXAvdGVhcmRvd24gdGlt
ZQotICAgICAgICAgICAgIyAgICAgd2hpY2ggdW5mb3J0dW5hdGVseSBjYXB0dXJlcyBvdXIgb3V0
cHV0IGhlcmUKLSAgICAgICAgICAgICMgICAgIHdoaWNoIGdhcmJsZXMgb3VyIG91dHB1dCBpZiB3
ZSB1c2Ugc2VsZi53cml0ZV9saW5lCi0gICAgICAgICAgICBzZWxmLndyaXRlX2xpbmUobXNnKQot
Ci0gICAgZGVmIHB5dGVzdF9kZXNlbGVjdGVkKHNlbGYsIGl0ZW1zKToKLSAgICAgICAgc2VsZi5z
dGF0cy5zZXRkZWZhdWx0KCdkZXNlbGVjdGVkJywgW10pLmV4dGVuZChpdGVtcykKLQotICAgIGRl
ZiBweXRlc3RfcnVudGVzdF9sb2dzdGFydChzZWxmLCBub2RlaWQsIGxvY2F0aW9uKToKLSAgICAg
ICAgIyBlbnN1cmUgdGhhdCB0aGUgcGF0aCBpcyBwcmludGVkIGJlZm9yZSB0aGUKLSAgICAgICAg
IyAxc3QgdGVzdCBvZiBhIG1vZHVsZSBzdGFydHMgcnVubmluZwotICAgICAgICBpZiBzZWxmLnNo
b3dsb25ndGVzdGluZm86Ci0gICAgICAgICAgICBsaW5lID0gc2VsZi5fbG9jYXRpb25saW5lKG5v
ZGVpZCwgKmxvY2F0aW9uKQotICAgICAgICAgICAgc2VsZi53cml0ZV9lbnN1cmVfcHJlZml4KGxp
bmUsICIiKQotICAgICAgICBlbGlmIHNlbGYuc2hvd2ZzcGF0aDoKLSAgICAgICAgICAgIGZzaWQg
PSBub2RlaWQuc3BsaXQoIjo6IilbMF0KLSAgICAgICAgICAgIHNlbGYud3JpdGVfZnNwYXRoX3Jl
c3VsdChmc2lkLCAiIikKLQotICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQoc2VsZiwg
cmVwb3J0KToKLSAgICAgICAgcmVwID0gcmVwb3J0Ci0gICAgICAgIHJlcyA9IHNlbGYuY29uZmln
Lmhvb2sucHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKHJlcG9ydD1yZXApCi0gICAgICAgIGNhdCwg
bGV0dGVyLCB3b3JkID0gcmVzCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uod29yZCwgdHVwbGUpOgot
ICAgICAgICAgICAgd29yZCwgbWFya3VwID0gd29yZAotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgbWFya3VwID0gTm9uZQotICAgICAgICBzZWxmLnN0YXRzLnNldGRlZmF1bHQoY2F0LCBbXSku
YXBwZW5kKHJlcCkKLSAgICAgICAgc2VsZi5fdGVzdHNfcmFuID0gVHJ1ZQotICAgICAgICBpZiBu
b3QgbGV0dGVyIGFuZCBub3Qgd29yZDoKLSAgICAgICAgICAgICMgcHJvYmFibHkgcGFzc2VkIHNl
dHVwL3RlYXJkb3duCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcnVubmluZ194ZGlzdCA9
IGhhc2F0dHIocmVwLCAnbm9kZScpCi0gICAgICAgIHNlbGYuX3Byb2dyZXNzX2l0ZW1zX3JlcG9y
dGVkICs9IDEKLSAgICAgICAgaWYgc2VsZi52ZXJib3NpdHkgPD0gMDoKLSAgICAgICAgICAgIGlm
IG5vdCBydW5uaW5nX3hkaXN0IGFuZCBzZWxmLnNob3dmc3BhdGg6Ci0gICAgICAgICAgICAgICAg
c2VsZi53cml0ZV9mc3BhdGhfcmVzdWx0KHJlcC5ub2RlaWQsIGxldHRlcikKLSAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUobGV0dGVyKQotICAgICAgICAg
ICAgc2VsZi5fd3JpdGVfcHJvZ3Jlc3NfaWZfcGFzdF9lZGdlKCkKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGlmIG1hcmt1cCBpcyBOb25lOgotICAgICAgICAgICAgICAgIGlmIHJlcC5wYXNz
ZWQ6Ci0gICAgICAgICAgICAgICAgICAgIG1hcmt1cCA9IHsnZ3JlZW4nOiBUcnVlfQotICAgICAg
ICAgICAgICAgIGVsaWYgcmVwLmZhaWxlZDoKLSAgICAgICAgICAgICAgICAgICAgbWFya3VwID0g
eydyZWQnOiBUcnVlfQotICAgICAgICAgICAgICAgIGVsaWYgcmVwLnNraXBwZWQ6Ci0gICAgICAg
ICAgICAgICAgICAgIG1hcmt1cCA9IHsneWVsbG93JzogVHJ1ZX0KLSAgICAgICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICAgICBtYXJrdXAgPSB7fQotICAgICAgICAgICAgbGluZSA9
IHNlbGYuX2xvY2F0aW9ubGluZShyZXAubm9kZWlkLCAqcmVwLmxvY2F0aW9uKQotICAgICAgICAg
ICAgaWYgbm90IHJ1bm5pbmdfeGRpc3Q6Ci0gICAgICAgICAgICAgICAgc2VsZi53cml0ZV9lbnN1
cmVfcHJlZml4KGxpbmUsIHdvcmQsICoqbWFya3VwKQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBzZWxmLmVuc3VyZV9uZXdsaW5lKCkKLSAgICAgICAgICAgICAgICBzZWxmLl90
dy53cml0ZSgiWyVzXSIgJSByZXAubm9kZS5nYXRld2F5LmlkKQotICAgICAgICAgICAgICAgIGlm
IHNlbGYuX3Nob3dfcHJvZ3Jlc3NfaW5mbzoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdHcu
d3JpdGUoc2VsZi5fZ2V0X3Byb2dyZXNzX2luZm9ybWF0aW9uX21lc3NhZ2UoKSArICIgIiwgY3lh
bj1UcnVlKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYu
X3R3LndyaXRlKCcgJykKLSAgICAgICAgICAgICAgICBzZWxmLl90dy53cml0ZSh3b3JkLCAqKm1h
cmt1cCkKLSAgICAgICAgICAgICAgICBzZWxmLl90dy53cml0ZSgiICIgKyBsaW5lKQotICAgICAg
ICAgICAgICAgIHNlbGYuY3VycmVudGZzcGF0aCA9IC0yCi0KLSAgICBkZWYgX3dyaXRlX3Byb2dy
ZXNzX2lmX3Bhc3RfZWRnZShzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuX3Nob3dfcHJvZ3Jl
c3NfaW5mbzoKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBsYXN0X2l0ZW0gPSBzZWxmLl9w
cm9ncmVzc19pdGVtc19yZXBvcnRlZCA9PSBzZWxmLl9zZXNzaW9uLnRlc3RzY29sbGVjdGVkCi0g
ICAgICAgIGlmIGxhc3RfaXRlbToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX3Byb2dyZXNzX2lu
Zm9ybWF0aW9uX2ZpbGxpbmdfc3BhY2UoKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAg
cGFzdF9lZGdlID0gc2VsZi5fdHcuY2hhcnNfb25fY3VycmVudF9saW5lICsgc2VsZi5fUFJPR1JF
U1NfTEVOR1RIICsgMSA+PSBzZWxmLl9zY3JlZW5fd2lkdGgKLSAgICAgICAgaWYgcGFzdF9lZGdl
OgotICAgICAgICAgICAgbXNnID0gc2VsZi5fZ2V0X3Byb2dyZXNzX2luZm9ybWF0aW9uX21lc3Nh
Z2UoKQotICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUobXNnICsgJ1xuJywgY3lhbj1UcnVlKQot
Ci0gICAgX1BST0dSRVNTX0xFTkdUSCA9IGxlbignIFsxMDAlXScpCi0KLSAgICBkZWYgX2dldF9w
cm9ncmVzc19pbmZvcm1hdGlvbl9tZXNzYWdlKHNlbGYpOgotICAgICAgICBjb2xsZWN0ZWQgPSBz
ZWxmLl9zZXNzaW9uLnRlc3RzY29sbGVjdGVkCi0gICAgICAgIGlmIGNvbGxlY3RlZDoKLSAgICAg
ICAgICAgIHByb2dyZXNzID0gc2VsZi5fcHJvZ3Jlc3NfaXRlbXNfcmVwb3J0ZWQgKiAxMDAgLy8g
Y29sbGVjdGVkCi0gICAgICAgICAgICByZXR1cm4gJyBbezozZH0lXScuZm9ybWF0KHByb2dyZXNz
KQotICAgICAgICByZXR1cm4gJyBbMTAwJV0nCi0KLSAgICBkZWYgX3dyaXRlX3Byb2dyZXNzX2lu
Zm9ybWF0aW9uX2ZpbGxpbmdfc3BhY2Uoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9zaG93
X3Byb2dyZXNzX2luZm86Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgbXNnID0gc2VsZi5f
Z2V0X3Byb2dyZXNzX2luZm9ybWF0aW9uX21lc3NhZ2UoKQotICAgICAgICBmaWxsID0gJyAnICog
KHNlbGYuX3R3LmZ1bGx3aWR0aCAtIHNlbGYuX3R3LmNoYXJzX29uX2N1cnJlbnRfbGluZSAtIGxl
bihtc2cpIC0gMSkKLSAgICAgICAgc2VsZi53cml0ZShmaWxsICsgbXNnLCBjeWFuPVRydWUpCi0K
LSAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb24oc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLmlz
YXR0eSBhbmQgc2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2UgPj0gMToKLSAgICAgICAgICAgIHNl
bGYud3JpdGUoImNvbGxlY3RpbmcgLi4uICIsIGJvbGQ9VHJ1ZSkKLQotICAgIGRlZiBweXRlc3Rf
Y29sbGVjdHJlcG9ydChzZWxmLCByZXBvcnQpOgotICAgICAgICBpZiByZXBvcnQuZmFpbGVkOgot
ICAgICAgICAgICAgc2VsZi5zdGF0cy5zZXRkZWZhdWx0KCJlcnJvciIsIFtdKS5hcHBlbmQocmVw
b3J0KQotICAgICAgICBlbGlmIHJlcG9ydC5za2lwcGVkOgotICAgICAgICAgICAgc2VsZi5zdGF0
cy5zZXRkZWZhdWx0KCJza2lwcGVkIiwgW10pLmFwcGVuZChyZXBvcnQpCi0gICAgICAgIGl0ZW1z
ID0gW3ggZm9yIHggaW4gcmVwb3J0LnJlc3VsdCBpZiBpc2luc3RhbmNlKHgsIHB5dGVzdC5JdGVt
KV0KLSAgICAgICAgc2VsZi5fbnVtY29sbGVjdGVkICs9IGxlbihpdGVtcykKLSAgICAgICAgaWYg
c2VsZi5pc2F0dHk6Ci0gICAgICAgICAgICAjIHNlbGYud3JpdGVfZnNwYXRoX3Jlc3VsdChyZXBv
cnQubm9kZWlkLCAnRScpCi0gICAgICAgICAgICBzZWxmLnJlcG9ydF9jb2xsZWN0KCkKLQotICAg
IGRlZiByZXBvcnRfY29sbGVjdChzZWxmLCBmaW5hbD1GYWxzZSk6Ci0gICAgICAgIGlmIHNlbGYu
Y29uZmlnLm9wdGlvbi52ZXJib3NlIDwgMDoKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAg
IGVycm9ycyA9IGxlbihzZWxmLnN0YXRzLmdldCgnZXJyb3InLCBbXSkpCi0gICAgICAgIHNraXBw
ZWQgPSBsZW4oc2VsZi5zdGF0cy5nZXQoJ3NraXBwZWQnLCBbXSkpCi0gICAgICAgIGlmIGZpbmFs
OgotICAgICAgICAgICAgbGluZSA9ICJjb2xsZWN0ZWQgIgotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgbGluZSA9ICJjb2xsZWN0aW5nICIKLSAgICAgICAgbGluZSArPSBzdHIoc2VsZi5fbnVt
Y29sbGVjdGVkKSArICIgaXRlbSIgKyAoJycgaWYgc2VsZi5fbnVtY29sbGVjdGVkID09IDEgZWxz
ZSAncycpCi0gICAgICAgIGlmIGVycm9yczoKLSAgICAgICAgICAgIGxpbmUgKz0gIiAvICVkIGVy
cm9ycyIgJSBlcnJvcnMKLSAgICAgICAgaWYgc2tpcHBlZDoKLSAgICAgICAgICAgIGxpbmUgKz0g
IiAvICVkIHNraXBwZWQiICUgc2tpcHBlZAotICAgICAgICBpZiBzZWxmLmlzYXR0eToKLSAgICAg
ICAgICAgIHNlbGYucmV3cml0ZShsaW5lLCBib2xkPVRydWUsIGVyYXNlPVRydWUpCi0gICAgICAg
ICAgICBpZiBmaW5hbDoKLSAgICAgICAgICAgICAgICBzZWxmLndyaXRlKCdcbicpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBzZWxmLndyaXRlX2xpbmUobGluZSkKLQotICAgIGRlZiBweXRl
c3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhzZWxmKToKLSAgICAgICAgc2VsZi5yZXBvcnRfY29s
bGVjdChUcnVlKQotCi0gICAgQHB5dGVzdC5ob29raW1wbCh0cnlsYXN0PVRydWUpCi0gICAgZGVm
IHB5dGVzdF9zZXNzaW9uc3RhcnQoc2VsZiwgc2Vzc2lvbik6Ci0gICAgICAgIHNlbGYuX3Nlc3Np
b24gPSBzZXNzaW9uCi0gICAgICAgIHNlbGYuX3Nlc3Npb25zdGFydHRpbWUgPSB0aW1lLnRpbWUo
KQotICAgICAgICBpZiBub3Qgc2VsZi5zaG93aGVhZGVyOgotICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgInRlc3Qgc2Vzc2lvbiBzdGFydHMiLCBib2xkPVRy
dWUpCi0gICAgICAgIHZlcmluZm8gPSBwbGF0Zm9ybS5weXRob25fdmVyc2lvbigpCi0gICAgICAg
IG1zZyA9ICJwbGF0Zm9ybSAlcyAtLSBQeXRob24gJXMiICUgKHN5cy5wbGF0Zm9ybSwgdmVyaW5m
bykKLSAgICAgICAgaWYgaGFzYXR0cihzeXMsICdweXB5X3ZlcnNpb25faW5mbycpOgotICAgICAg
ICAgICAgdmVyaW5mbyA9ICIuIi5qb2luKG1hcChzdHIsIHN5cy5weXB5X3ZlcnNpb25faW5mb1s6
M10pKQotICAgICAgICAgICAgbXNnICs9ICJbcHlweS0lcy0lc10iICUgKHZlcmluZm8sIHN5cy5w
eXB5X3ZlcnNpb25faW5mb1szXSkKLSAgICAgICAgbXNnICs9ICIsIHB5dGVzdC0lcywgcHktJXMs
IHBsdWdneS0lcyIgJSAoCi0gICAgICAgICAgICAgICBweXRlc3QuX192ZXJzaW9uX18sIHB5Ll9f
dmVyc2lvbl9fLCBwbHVnZ3kuX192ZXJzaW9uX18pCi0gICAgICAgIGlmIHNlbGYudmVyYm9zaXR5
ID4gMCBvciBzZWxmLmNvbmZpZy5vcHRpb24uZGVidWcgb3IgXAotICAgICAgICAgICBnZXRhdHRy
KHNlbGYuY29uZmlnLm9wdGlvbiwgJ3Bhc3RlYmluJywgTm9uZSk6Ci0gICAgICAgICAgICBtc2cg
Kz0gIiAtLSAiICsgc3RyKHN5cy5leGVjdXRhYmxlKQotICAgICAgICBzZWxmLndyaXRlX2xpbmUo
bXNnKQotICAgICAgICBsaW5lcyA9IHNlbGYuY29uZmlnLmhvb2sucHl0ZXN0X3JlcG9ydF9oZWFk
ZXIoCi0gICAgICAgICAgICBjb25maWc9c2VsZi5jb25maWcsIHN0YXJ0ZGlyPXNlbGYuc3RhcnRk
aXIpCi0gICAgICAgIHNlbGYuX3dyaXRlX3JlcG9ydF9saW5lc19mcm9tX2hvb2tzKGxpbmVzKQot
Ci0gICAgZGVmIF93cml0ZV9yZXBvcnRfbGluZXNfZnJvbV9ob29rcyhzZWxmLCBsaW5lcyk6Ci0g
ICAgICAgIGxpbmVzLnJldmVyc2UoKQotICAgICAgICBmb3IgbGluZSBpbiBmbGF0dGVuKGxpbmVz
KToKLSAgICAgICAgICAgIHNlbGYud3JpdGVfbGluZShsaW5lKQotCi0gICAgZGVmIHB5dGVzdF9y
ZXBvcnRfaGVhZGVyKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgIGluaWZpbGUgPSAiIgotICAgICAg
ICBpZiBjb25maWcuaW5pZmlsZToKLSAgICAgICAgICAgIGluaWZpbGUgPSAiICIgKyBjb25maWcu
cm9vdGRpci5iZXN0cmVscGF0aChjb25maWcuaW5pZmlsZSkKLSAgICAgICAgbGluZXMgPSBbInJv
b3RkaXI6ICVzLCBpbmlmaWxlOiVzIiAlIChjb25maWcucm9vdGRpciwgaW5pZmlsZSldCi0KLSAg
ICAgICAgcGx1Z2luaW5mbyA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmxpc3RfcGx1Z2luX2Rpc3Rp
bmZvKCkKLSAgICAgICAgaWYgcGx1Z2luaW5mbzoKLQotICAgICAgICAgICAgbGluZXMuYXBwZW5k
KAotICAgICAgICAgICAgICAgICJwbHVnaW5zOiAlcyIgJSAiLCAiLmpvaW4oX3BsdWdpbl9uYW1l
dmVyc2lvbnMocGx1Z2luaW5mbykpKQotICAgICAgICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBw
eXRlc3RfY29sbGVjdGlvbl9maW5pc2goc2VsZiwgc2Vzc2lvbik6Ci0gICAgICAgIGlmIHNlbGYu
Y29uZmlnLm9wdGlvbi5jb2xsZWN0b25seToKLSAgICAgICAgICAgIHNlbGYuX3ByaW50Y29sbGVj
dGVkaXRlbXMoc2Vzc2lvbi5pdGVtcykKLSAgICAgICAgICAgIGlmIHNlbGYuc3RhdHMuZ2V0KCdm
YWlsZWQnKToKLSAgICAgICAgICAgICAgICBzZWxmLl90dy5zZXAoIiEiLCAiY29sbGVjdGlvbiBm
YWlsdXJlcyIpCi0gICAgICAgICAgICAgICAgZm9yIHJlcCBpbiBzZWxmLnN0YXRzLmdldCgnZmFp
bGVkJyk6Ci0gICAgICAgICAgICAgICAgICAgIHJlcC50b3Rlcm1pbmFsKHNlbGYuX3R3KQotICAg
ICAgICAgICAgICAgIHJldHVybiAxCi0gICAgICAgICAgICByZXR1cm4gMAotICAgICAgICBsaW5l
cyA9IHNlbGYuY29uZmlnLmhvb2sucHl0ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNoKAotICAg
ICAgICAgICAgY29uZmlnPXNlbGYuY29uZmlnLCBzdGFydGRpcj1zZWxmLnN0YXJ0ZGlyLCBpdGVt
cz1zZXNzaW9uLml0ZW1zKQotICAgICAgICBzZWxmLl93cml0ZV9yZXBvcnRfbGluZXNfZnJvbV9o
b29rcyhsaW5lcykKLQotICAgIGRlZiBfcHJpbnRjb2xsZWN0ZWRpdGVtcyhzZWxmLCBpdGVtcyk6
Ci0gICAgICAgICMgdG8gcHJpbnQgb3V0IGl0ZW1zIGFuZCB0aGVpciBwYXJlbnQgY29sbGVjdG9y
cwotICAgICAgICAjIHdlIHRha2UgY2FyZSB0byBsZWF2ZSBvdXQgSW5zdGFuY2VzIGFrYSAoKQot
ICAgICAgICAjIGJlY2F1c2UgbGF0ZXIgdmVyc2lvbnMgYXJlIGdvaW5nIHRvIGdldCByaWQgb2Yg
dGhlbSBhbnl3YXkKLSAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2UgPCAwOgot
ICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2UgPCAtMToKLSAgICAgICAg
ICAgICAgICBjb3VudHMgPSB7fQotICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgot
ICAgICAgICAgICAgICAgICAgICBuYW1lID0gaXRlbS5ub2RlaWQuc3BsaXQoJzo6JywgMSlbMF0K
LSAgICAgICAgICAgICAgICAgICAgY291bnRzW25hbWVdID0gY291bnRzLmdldChuYW1lLCAwKSAr
IDEKLSAgICAgICAgICAgICAgICBmb3IgbmFtZSwgY291bnQgaW4gc29ydGVkKGNvdW50cy5pdGVt
cygpKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZSgiJXM6ICVkIiAlIChuYW1l
LCBjb3VudCkpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGZvciBpdGVtIGlu
IGl0ZW1zOgotICAgICAgICAgICAgICAgICAgICBub2RlaWQgPSBpdGVtLm5vZGVpZAotICAgICAg
ICAgICAgICAgICAgICBub2RlaWQgPSBub2RlaWQucmVwbGFjZSgiOjooKTo6IiwgIjo6IikKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZShub2RlaWQpCi0gICAgICAgICAgICByZXR1
cm4KLSAgICAgICAgc3RhY2sgPSBbXQotICAgICAgICBpbmRlbnQgPSAiIgotICAgICAgICBmb3Ig
aXRlbSBpbiBpdGVtczoKLSAgICAgICAgICAgIG5lZWRlZF9jb2xsZWN0b3JzID0gaXRlbS5saXN0
Y2hhaW4oKVsxOl0gICMgc3RyaXAgcm9vdCBub2RlCi0gICAgICAgICAgICB3aGlsZSBzdGFjazoK
LSAgICAgICAgICAgICAgICBpZiBzdGFjayA9PSBuZWVkZWRfY29sbGVjdG9yc1s6bGVuKHN0YWNr
KV06Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgc3RhY2sucG9w
KCkKLSAgICAgICAgICAgIGZvciBjb2wgaW4gbmVlZGVkX2NvbGxlY3RvcnNbbGVuKHN0YWNrKTpd
OgotICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVuZChjb2wpCi0gICAgICAgICAgICAgICAgIyBp
ZiBjb2wubmFtZSA9PSAiKCkiOgotICAgICAgICAgICAgICAgICMgICAgY29udGludWUKLSAgICAg
ICAgICAgICAgICBpbmRlbnQgPSAobGVuKHN0YWNrKSAtIDEpICogIiAgIgotICAgICAgICAgICAg
ICAgIHNlbGYuX3R3LmxpbmUoIiVzJXMiICUgKGluZGVudCwgY29sKSkKLQotICAgIEBweXRlc3Qu
aG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2go
c2VsZiwgZXhpdHN0YXR1cyk6Ci0gICAgICAgIG91dGNvbWUgPSB5aWVsZAotICAgICAgICBvdXRj
b21lLmdldF9yZXN1bHQoKQotICAgICAgICBzZWxmLl90dy5saW5lKCIiKQotICAgICAgICBzdW1t
YXJ5X2V4aXRfY29kZXMgPSAoCi0gICAgICAgICAgICBFWElUX09LLCBFWElUX1RFU1RTRkFJTEVE
LCBFWElUX0lOVEVSUlVQVEVELCBFWElUX1VTQUdFRVJST1IsCi0gICAgICAgICAgICBFWElUX05P
VEVTVFNDT0xMRUNURUQpCi0gICAgICAgIGlmIGV4aXRzdGF0dXMgaW4gc3VtbWFyeV9leGl0X2Nv
ZGVzOgotICAgICAgICAgICAgc2VsZi5jb25maWcuaG9vay5weXRlc3RfdGVybWluYWxfc3VtbWFy
eSh0ZXJtaW5hbHJlcG9ydGVyPXNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4aXRzdGF0dXM9ZXhpdHN0YXR1cykKLSAgICAgICAgICAg
IHNlbGYuc3VtbWFyeV9lcnJvcnMoKQotICAgICAgICAgICAgc2VsZi5zdW1tYXJ5X2ZhaWx1cmVz
KCkKLSAgICAgICAgICAgIHNlbGYuc3VtbWFyeV93YXJuaW5ncygpCi0gICAgICAgICAgICBzZWxm
LnN1bW1hcnlfcGFzc2VzKCkKLSAgICAgICAgaWYgZXhpdHN0YXR1cyA9PSBFWElUX0lOVEVSUlVQ
VEVEOgotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2tleWJvYXJkaW50ZXJydXB0KCkKLSAgICAg
ICAgICAgIGRlbCBzZWxmLl9rZXlib2FyZGludGVycnVwdF9tZW1vCi0gICAgICAgIHNlbGYuc3Vt
bWFyeV9kZXNlbGVjdGVkKCkKLSAgICAgICAgc2VsZi5zdW1tYXJ5X3N0YXRzKCkKLQotICAgIGRl
ZiBweXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KHNlbGYsIGV4Y2luZm8pOgotICAgICAgICBzZWxm
Ll9rZXlib2FyZGludGVycnVwdF9tZW1vID0gZXhjaW5mby5nZXRyZXByKGZ1bmNhcmdzPVRydWUp
Ci0KLSAgICBkZWYgcHl0ZXN0X3VuY29uZmlndXJlKHNlbGYpOgotICAgICAgICBpZiBoYXNhdHRy
KHNlbGYsICdfa2V5Ym9hcmRpbnRlcnJ1cHRfbWVtbycpOgotICAgICAgICAgICAgc2VsZi5fcmVw
b3J0X2tleWJvYXJkaW50ZXJydXB0KCkKLQotICAgIGRlZiBfcmVwb3J0X2tleWJvYXJkaW50ZXJy
dXB0KHNlbGYpOgotICAgICAgICBleGNyZXByID0gc2VsZi5fa2V5Ym9hcmRpbnRlcnJ1cHRfbWVt
bwotICAgICAgICBtc2cgPSBleGNyZXByLnJlcHJjcmFzaC5tZXNzYWdlCi0gICAgICAgIHNlbGYu
d3JpdGVfc2VwKCIhIiwgbXNnKQotICAgICAgICBpZiAiS2V5Ym9hcmRJbnRlcnJ1cHQiIGluIG1z
ZzoKLSAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi5mdWxsdHJhY2U6Ci0gICAgICAg
ICAgICAgICAgZXhjcmVwci50b3Rlcm1pbmFsKHNlbGYuX3R3KQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5lKCJ0byBzaG93IGEgZnVsbCB0cmFjZWJhY2sg
b24gS2V5Ym9hcmRJbnRlcnJ1cHQgdXNlIC0tZnVsbHRyYWNlIiwgeWVsbG93PVRydWUpCi0gICAg
ICAgICAgICAgICAgZXhjcmVwci5yZXByY3Jhc2gudG90ZXJtaW5hbChzZWxmLl90dykKLQotICAg
IGRlZiBfbG9jYXRpb25saW5lKHNlbGYsIG5vZGVpZCwgZnNwYXRoLCBsaW5lbm8sIGRvbWFpbik6
Ci0gICAgICAgIGRlZiBta3JlbChub2RlaWQpOgotICAgICAgICAgICAgbGluZSA9IHNlbGYuY29u
ZmlnLmN3ZF9yZWxhdGl2ZV9ub2RlaWQobm9kZWlkKQotICAgICAgICAgICAgaWYgZG9tYWluIGFu
ZCBsaW5lLmVuZHN3aXRoKGRvbWFpbik6Ci0gICAgICAgICAgICAgICAgbGluZSA9IGxpbmVbOi1s
ZW4oZG9tYWluKV0KLSAgICAgICAgICAgICAgICB2YWx1ZXMgPSBkb21haW4uc3BsaXQoIlsiKQot
ICAgICAgICAgICAgICAgIHZhbHVlc1swXSA9IHZhbHVlc1swXS5yZXBsYWNlKCcuJywgJzo6Jykg
ICMgZG9uJ3QgcmVwbGFjZSAnLicgaW4gcGFyYW1zCi0gICAgICAgICAgICAgICAgbGluZSArPSAi
WyIuam9pbih2YWx1ZXMpCi0gICAgICAgICAgICByZXR1cm4gbGluZQotICAgICAgICAjIGNvbGxl
Y3RfZnNwYXRoIGNvbWVzIGZyb20gdGVzdGlkIHdoaWNoIGhhcyBhICIvIi1ub3JtYWxpemVkIHBh
dGgKLQotICAgICAgICBpZiBmc3BhdGg6Ci0gICAgICAgICAgICByZXMgPSBta3JlbChub2RlaWQp
LnJlcGxhY2UoIjo6KCkiLCAiIikgICMgcGFyZW5zLW5vcm1hbGl6YXRpb24KLSAgICAgICAgICAg
IGlmIG5vZGVpZC5zcGxpdCgiOjoiKVswXSAhPSBmc3BhdGgucmVwbGFjZSgiXFwiLCBub2Rlcy5T
RVApOgotICAgICAgICAgICAgICAgIHJlcyArPSAiIDwtICIgKyBzZWxmLnN0YXJ0ZGlyLmJlc3Ry
ZWxwYXRoKGZzcGF0aCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlcyA9ICJbbG9jYXRp
b25dIgotICAgICAgICByZXR1cm4gcmVzICsgIiAiCi0KLSAgICBkZWYgX2dldGZhaWx1cmVoZWFk
bGluZShzZWxmLCByZXApOgotICAgICAgICBpZiBoYXNhdHRyKHJlcCwgJ2xvY2F0aW9uJyk6Ci0g
ICAgICAgICAgICBmc3BhdGgsIGxpbmVubywgZG9tYWluID0gcmVwLmxvY2F0aW9uCi0gICAgICAg
ICAgICByZXR1cm4gZG9tYWluCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gInRl
c3Qgc2Vzc2lvbiIgICMgWFhYPwotCi0gICAgZGVmIF9nZXRjcmFzaGxpbmUoc2VsZiwgcmVwKToK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHN0cihyZXAubG9uZ3JlcHIucmVwcmNy
YXNoKQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIHN0cihyZXAubG9uZ3JlcHIpWzo1MF0KLSAgICAgICAgICAg
IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgICAgICByZXR1cm4gIiIKLQotICAg
ICMKLSAgICAjIHN1bW1hcmllcyBmb3Igc2Vzc2lvbmZpbmlzaAotICAgICMKLSAgICBkZWYgZ2V0
cmVwb3J0cyhzZWxmLCBuYW1lKToKLSAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgZm9yIHgg
aW4gc2VsZi5zdGF0cy5nZXQobmFtZSwgW10pOgotICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIo
eCwgJ19wZGJzaG93bicpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoeCkKLSAgICAg
ICAgcmV0dXJuIHZhbHVlcwotCi0gICAgZGVmIHN1bW1hcnlfd2FybmluZ3Moc2VsZik6Ci0gICAg
ICAgIGlmIHNlbGYuaGFzb3B0KCJ3Iik6Ci0gICAgICAgICAgICBhbGxfd2FybmluZ3MgPSBzZWxm
LnN0YXRzLmdldCgid2FybmluZ3MiKQotICAgICAgICAgICAgaWYgbm90IGFsbF93YXJuaW5nczoK
LSAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAgICAgZ3JvdXBlZCA9IGl0ZXJ0b29s
cy5ncm91cGJ5KGFsbF93YXJuaW5ncywga2V5PWxhbWJkYSB3cjogd3IuZ2V0X2xvY2F0aW9uKHNl
bGYuY29uZmlnKSkKLQotICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAid2FybmluZ3Mg
c3VtbWFyeSIsIHllbGxvdz1UcnVlLCBib2xkPUZhbHNlKQotICAgICAgICAgICAgZm9yIGxvY2F0
aW9uLCB3YXJuaW5nX3JlY29yZHMgaW4gZ3JvdXBlZDoKLSAgICAgICAgICAgICAgICBzZWxmLl90
dy5saW5lKHN0cihsb2NhdGlvbikgb3IgJzx1bmRldGVybWluZWQgbG9jYXRpb24+JykKLSAgICAg
ICAgICAgICAgICBmb3IgdyBpbiB3YXJuaW5nX3JlY29yZHM6Ci0gICAgICAgICAgICAgICAgICAg
IGxpbmVzID0gdy5tZXNzYWdlLnNwbGl0bGluZXMoKQotICAgICAgICAgICAgICAgICAgICBpbmRl
bnRlZCA9ICdcbicuam9pbignICAnICsgeCBmb3IgeCBpbiBsaW5lcykKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fdHcubGluZShpbmRlbnRlZCkKLSAgICAgICAgICAgICAgICBzZWxmLl90dy5s
aW5lKCkKLSAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoJy0tIERvY3M6IGh0dHA6Ly9kb2MucHl0
ZXN0Lm9yZy9lbi9sYXRlc3Qvd2FybmluZ3MuaHRtbCcpCi0KLSAgICBkZWYgc3VtbWFyeV9wYXNz
ZXMoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi50YnN0eWxlICE9ICJubyI6
Ci0gICAgICAgICAgICBpZiBzZWxmLmhhc29wdCgiUCIpOgotICAgICAgICAgICAgICAgIHJlcG9y
dHMgPSBzZWxmLmdldHJlcG9ydHMoJ3Bhc3NlZCcpCi0gICAgICAgICAgICAgICAgaWYgbm90IHJl
cG9ydHM6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgICAgIHNlbGYu
d3JpdGVfc2VwKCI9IiwgIlBBU1NFUyIpCi0gICAgICAgICAgICAgICAgZm9yIHJlcCBpbiByZXBv
cnRzOgotICAgICAgICAgICAgICAgICAgICBtc2cgPSBzZWxmLl9nZXRmYWlsdXJlaGVhZGxpbmUo
cmVwKQotICAgICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiXyIsIG1zZykKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fb3V0cmVwX3N1bW1hcnkocmVwKQotCi0gICAgZGVmIHByaW50
X3RlYXJkb3duX3NlY3Rpb25zKHNlbGYsIHJlcCk6Ci0gICAgICAgIGZvciBzZWNuYW1lLCBjb250
ZW50IGluIHJlcC5zZWN0aW9uczoKLSAgICAgICAgICAgIGlmICd0ZWFyZG93bicgaW4gc2VjbmFt
ZToKLSAgICAgICAgICAgICAgICBzZWxmLl90dy5zZXAoJy0nLCBzZWNuYW1lKQotICAgICAgICAg
ICAgICAgIGlmIGNvbnRlbnRbLTE6XSA9PSAiXG4iOgotICAgICAgICAgICAgICAgICAgICBjb250
ZW50ID0gY29udGVudFs6LTFdCi0gICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZShjb250ZW50
KQotCi0gICAgZGVmIHN1bW1hcnlfZmFpbHVyZXMoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuY29u
ZmlnLm9wdGlvbi50YnN0eWxlICE9ICJubyI6Ci0gICAgICAgICAgICByZXBvcnRzID0gc2VsZi5n
ZXRyZXBvcnRzKCdmYWlsZWQnKQotICAgICAgICAgICAgaWYgbm90IHJlcG9ydHM6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICJGQUlMVVJF
UyIpCi0gICAgICAgICAgICBmb3IgcmVwIGluIHJlcG9ydHM6Ci0gICAgICAgICAgICAgICAgaWYg
c2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgPT0gImxpbmUiOgotICAgICAgICAgICAgICAgICAg
ICBsaW5lID0gc2VsZi5fZ2V0Y3Jhc2hsaW5lKHJlcCkKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi53cml0ZV9saW5lKGxpbmUpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAgICAgbXNnID0gc2VsZi5fZ2V0ZmFpbHVyZWhlYWRsaW5lKHJlcCkKLSAgICAgICAgICAgICAg
ICAgICAgbWFya3VwID0geydyZWQnOiBUcnVlLCAnYm9sZCc6IFRydWV9Ci0gICAgICAgICAgICAg
ICAgICAgIHNlbGYud3JpdGVfc2VwKCJfIiwgbXNnLCAqKm1hcmt1cCkKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fb3V0cmVwX3N1bW1hcnkocmVwKQotICAgICAgICAgICAgICAgICAgICBmb3Ig
cmVwb3J0IGluIHNlbGYuZ2V0cmVwb3J0cygnJyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiByZXBvcnQubm9kZWlkID09IHJlcC5ub2RlaWQgYW5kIHJlcG9ydC53aGVuID09ICd0ZWFyZG93
bic6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmludF90ZWFyZG93bl9zZWN0
aW9ucyhyZXBvcnQpCi0KLSAgICBkZWYgc3VtbWFyeV9lcnJvcnMoc2VsZik6Ci0gICAgICAgIGlm
IHNlbGYuY29uZmlnLm9wdGlvbi50YnN0eWxlICE9ICJubyI6Ci0gICAgICAgICAgICByZXBvcnRz
ID0gc2VsZi5nZXRyZXBvcnRzKCdlcnJvcicpCi0gICAgICAgICAgICBpZiBub3QgcmVwb3J0czoK
LSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9Iiwg
IkVSUk9SUyIpCi0gICAgICAgICAgICBmb3IgcmVwIGluIHNlbGYuc3RhdHNbJ2Vycm9yJ106Ci0g
ICAgICAgICAgICAgICAgbXNnID0gc2VsZi5fZ2V0ZmFpbHVyZWhlYWRsaW5lKHJlcCkKLSAgICAg
ICAgICAgICAgICBpZiBub3QgaGFzYXR0cihyZXAsICd3aGVuJyk6Ci0gICAgICAgICAgICAgICAg
ICAgICMgY29sbGVjdAotICAgICAgICAgICAgICAgICAgICBtc2cgPSAiRVJST1IgY29sbGVjdGlu
ZyAiICsgbXNnCi0gICAgICAgICAgICAgICAgZWxpZiByZXAud2hlbiA9PSAic2V0dXAiOgotICAg
ICAgICAgICAgICAgICAgICBtc2cgPSAiRVJST1IgYXQgc2V0dXAgb2YgIiArIG1zZwotICAgICAg
ICAgICAgICAgIGVsaWYgcmVwLndoZW4gPT0gInRlYXJkb3duIjoKLSAgICAgICAgICAgICAgICAg
ICAgbXNnID0gIkVSUk9SIGF0IHRlYXJkb3duIG9mICIgKyBtc2cKLSAgICAgICAgICAgICAgICBz
ZWxmLndyaXRlX3NlcCgiXyIsIG1zZykKLSAgICAgICAgICAgICAgICBzZWxmLl9vdXRyZXBfc3Vt
bWFyeShyZXApCi0KLSAgICBkZWYgX291dHJlcF9zdW1tYXJ5KHNlbGYsIHJlcCk6Ci0gICAgICAg
IHJlcC50b3Rlcm1pbmFsKHNlbGYuX3R3KQotICAgICAgICBmb3Igc2VjbmFtZSwgY29udGVudCBp
biByZXAuc2VjdGlvbnM6Ci0gICAgICAgICAgICBzZWxmLl90dy5zZXAoIi0iLCBzZWNuYW1lKQot
ICAgICAgICAgICAgaWYgY29udGVudFstMTpdID09ICJcbiI6Ci0gICAgICAgICAgICAgICAgY29u
dGVudCA9IGNvbnRlbnRbOi0xXQotICAgICAgICAgICAgc2VsZi5fdHcubGluZShjb250ZW50KQot
Ci0gICAgZGVmIHN1bW1hcnlfc3RhdHMoc2VsZik6Ci0gICAgICAgIHNlc3Npb25fZHVyYXRpb24g
PSB0aW1lLnRpbWUoKSAtIHNlbGYuX3Nlc3Npb25zdGFydHRpbWUKLSAgICAgICAgKGxpbmUsIGNv
bG9yKSA9IGJ1aWxkX3N1bW1hcnlfc3RhdHNfbGluZShzZWxmLnN0YXRzKQotICAgICAgICBtc2cg
PSAiJXMgaW4gJS4yZiBzZWNvbmRzIiAlIChsaW5lLCBzZXNzaW9uX2R1cmF0aW9uKQotICAgICAg
ICBtYXJrdXAgPSB7Y29sb3I6IFRydWUsICdib2xkJzogVHJ1ZX0KLQotICAgICAgICBpZiBzZWxm
LnZlcmJvc2l0eSA+PSAwOgotICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCBtc2csICoq
bWFya3VwKQotICAgICAgICBpZiBzZWxmLnZlcmJvc2l0eSA9PSAtMToKLSAgICAgICAgICAgIHNl
bGYud3JpdGVfbGluZShtc2csICoqbWFya3VwKQotCi0gICAgZGVmIHN1bW1hcnlfZGVzZWxlY3Rl
ZChzZWxmKToKLSAgICAgICAgaWYgJ2Rlc2VsZWN0ZWQnIGluIHNlbGYuc3RhdHM6Ci0gICAgICAg
ICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICIlZCB0ZXN0cyBkZXNlbGVjdGVkIiAlICgKLSAgICAg
ICAgICAgICAgICBsZW4oc2VsZi5zdGF0c1snZGVzZWxlY3RlZCddKSksIGJvbGQ9VHJ1ZSkKLQot
Ci1kZWYgcmVwcl9weXRob252ZXJzaW9uKHY9Tm9uZSk6Ci0gICAgaWYgdiBpcyBOb25lOgotICAg
ICAgICB2ID0gc3lzLnZlcnNpb25faW5mbwotICAgIHRyeToKLSAgICAgICAgcmV0dXJuICIlcy4l
cy4lcy0lcy0lcyIgJSB2Ci0gICAgZXhjZXB0IChUeXBlRXJyb3IsIFZhbHVlRXJyb3IpOgotICAg
ICAgICByZXR1cm4gc3RyKHYpCi0KLQotZGVmIGZsYXR0ZW4odmFsdWVzKToKLSAgICBmb3IgeCBp
biB2YWx1ZXM6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgKGxpc3QsIHR1cGxlKSk6Ci0gICAg
ICAgICAgICBmb3IgeSBpbiBmbGF0dGVuKHgpOgotICAgICAgICAgICAgICAgIHlpZWxkIHkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHlpZWxkIHgKLQotCi1kZWYgYnVpbGRfc3VtbWFyeV9z
dGF0c19saW5lKHN0YXRzKToKLSAgICBrZXlzID0gKCJmYWlsZWQgcGFzc2VkIHNraXBwZWQgZGVz
ZWxlY3RlZCAiCi0gICAgICAgICAgICAieGZhaWxlZCB4cGFzc2VkIHdhcm5pbmdzIGVycm9yIiku
c3BsaXQoKQotICAgIHVua25vd25fa2V5X3NlZW4gPSBGYWxzZQotICAgIGZvciBrZXkgaW4gc3Rh
dHMua2V5cygpOgotICAgICAgICBpZiBrZXkgbm90IGluIGtleXM6Ci0gICAgICAgICAgICBpZiBr
ZXk6ICAjIHNldHVwL3RlYXJkb3duIHJlcG9ydHMgaGF2ZSBhbiBlbXB0eSBrZXksIGlnbm9yZSB0
aGVtCi0gICAgICAgICAgICAgICAga2V5cy5hcHBlbmQoa2V5KQotICAgICAgICAgICAgICAgIHVu
a25vd25fa2V5X3NlZW4gPSBUcnVlCi0gICAgcGFydHMgPSBbXQotICAgIGZvciBrZXkgaW4ga2V5
czoKLSAgICAgICAgdmFsID0gc3RhdHMuZ2V0KGtleSwgTm9uZSkKLSAgICAgICAgaWYgdmFsOgot
ICAgICAgICAgICAgcGFydHMuYXBwZW5kKCIlZCAlcyIgJSAobGVuKHZhbCksIGtleSkpCi0KLSAg
ICBpZiBwYXJ0czoKLSAgICAgICAgbGluZSA9ICIsICIuam9pbihwYXJ0cykKLSAgICBlbHNlOgot
ICAgICAgICBsaW5lID0gIm5vIHRlc3RzIHJhbiIKLQotICAgIGlmICdmYWlsZWQnIGluIHN0YXRz
IG9yICdlcnJvcicgaW4gc3RhdHM6Ci0gICAgICAgIGNvbG9yID0gJ3JlZCcKLSAgICBlbGlmICd3
YXJuaW5ncycgaW4gc3RhdHMgb3IgdW5rbm93bl9rZXlfc2VlbjoKLSAgICAgICAgY29sb3IgPSAn
eWVsbG93JwotICAgIGVsaWYgJ3Bhc3NlZCcgaW4gc3RhdHM6Ci0gICAgICAgIGNvbG9yID0gJ2dy
ZWVuJwotICAgIGVsc2U6Ci0gICAgICAgIGNvbG9yID0gJ3llbGxvdycKLQotICAgIHJldHVybiAo
bGluZSwgY29sb3IpCi0KLQotZGVmIF9wbHVnaW5fbmFtZXZlcnNpb25zKHBsdWdpbmluZm8pOgot
ICAgIHZhbHVlcyA9IFtdCi0gICAgZm9yIHBsdWdpbiwgZGlzdCBpbiBwbHVnaW5pbmZvOgotICAg
ICAgICAjIGdldHMgdXMgbmFtZSBhbmQgdmVyc2lvbiEKLSAgICAgICAgbmFtZSA9ICd7ZGlzdC5w
cm9qZWN0X25hbWV9LXtkaXN0LnZlcnNpb259Jy5mb3JtYXQoZGlzdD1kaXN0KQotICAgICAgICAj
IHF1ZXN0aW9uYWJsZSBjb252ZW5pZW5jZSwgYnV0IGl0IGtlZXBzIHRoaW5ncyBzaG9ydAotICAg
ICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdC0iKToKLSAgICAgICAgICAgIG5hbWUgPSBu
YW1lWzc6XQotICAgICAgICAjIHdlIGRlY2lkZWQgdG8gcHJpbnQgcHl0aG9uIHBhY2thZ2UgbmFt
ZXMKLSAgICAgICAgIyB0aGV5IGNhbiBoYXZlIG1vcmUgdGhhbiBvbmUgcGx1Z2luCi0gICAgICAg
IGlmIG5hbWUgbm90IGluIHZhbHVlczoKLSAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQobmFtZSkK
LSAgICByZXR1cm4gdmFsdWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3RtcGRp
ci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdG1wZGlyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkYTFiMDMyMjM3YWZiZjQ2OGNjMGUzNDlkMmIyNjJiOTI4M2U5NzgzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvdG1wZGlyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTI2ICswLDAgQEAKLSIiIiBzdXBw
b3J0IGZvciBwcm92aWRpbmcgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHRvIHRlc3QgZnVuY3Rpb25z
LiAgIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCByZQotCi1pbXBvcnQgcHl0ZXN0Ci1pbXBvcnQgcHkK
LWZyb20gX3B5dGVzdC5tb25rZXlwYXRjaCBpbXBvcnQgTW9ua2V5UGF0Y2gKLQotCi1jbGFzcyBU
ZW1wZGlyRmFjdG9yeToKLSAgICAiIiJGYWN0b3J5IGZvciB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMg
dW5kZXIgdGhlIGNvbW1vbiBiYXNlIHRlbXAgZGlyZWN0b3J5LgotCi0gICAgVGhlIGJhc2UgZGly
ZWN0b3J5IGNhbiBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSBgYC0tYmFzZXRlbXBgYCBvcHRpb24u
Ci0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKLSAgICAgICAgc2Vs
Zi5jb25maWcgPSBjb25maWcKLSAgICAgICAgc2VsZi50cmFjZSA9IGNvbmZpZy50cmFjZS5nZXQo
InRtcGRpciIpCi0KLSAgICBkZWYgZW5zdXJldGVtcChzZWxmLCBzdHJpbmcsIGRpcj0xKToKLSAg
ICAgICAgIiIiIChkZXByZWNhdGVkKSByZXR1cm4gdGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoIHdp
dGgKLSAgICAgICAgICAgIHRoZSBnaXZlbiBzdHJpbmcgYXMgdGhlIHRyYWlsaW5nIHBhcnQuICBJ
dCBpcyB1c3VhbGx5Ci0gICAgICAgICAgICBiZXR0ZXIgdG8gdXNlIHRoZSAndG1wZGlyJyBmdW5j
dGlvbiBhcmd1bWVudCB3aGljaAotICAgICAgICAgICAgcHJvdmlkZXMgYW4gZW1wdHkgdW5pcXVl
LXBlci10ZXN0LWludm9jYXRpb24gZGlyZWN0b3J5Ci0gICAgICAgICAgICBhbmQgaXMgZ3VhcmFu
dGVlZCB0byBiZSBlbXB0eS4KLSAgICAgICAgIiIiCi0gICAgICAgICMgcHkubG9nLl9hcGl3YXJu
KCI+MS4xIiwgInVzZSB0bXBkaXIgZnVuY3Rpb24gYXJndW1lbnQiKQotICAgICAgICByZXR1cm4g
c2VsZi5nZXRiYXNldGVtcCgpLmVuc3VyZShzdHJpbmcsIGRpcj1kaXIpCi0KLSAgICBkZWYgbWt0
ZW1wKHNlbGYsIGJhc2VuYW1lLCBudW1iZXJlZD1UcnVlKToKLSAgICAgICAgIiIiQ3JlYXRlIGEg
c3ViZGlyZWN0b3J5IG9mIHRoZSBiYXNlIHRlbXBvcmFyeSBkaXJlY3RvcnkgYW5kIHJldHVybiBp
dC4KLSAgICAgICAgSWYgYGBudW1iZXJlZGBgLCBlbnN1cmUgdGhlIGRpcmVjdG9yeSBpcyB1bmlx
dWUgYnkgYWRkaW5nIGEgbnVtYmVyCi0gICAgICAgIHByZWZpeCBncmVhdGVyIHRoYW4gYW55IGV4
aXN0aW5nIG9uZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGJhc2V0ZW1wID0gc2VsZi5nZXRiYXNl
dGVtcCgpCi0gICAgICAgIGlmIG5vdCBudW1iZXJlZDoKLSAgICAgICAgICAgIHAgPSBiYXNldGVt
cC5ta2RpcihiYXNlbmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHAgPSBweS5wYXRo
LmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKHByZWZpeD1iYXNlbmFtZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXA9MCwgcm9vdGRpcj1iYXNldGVt
cCwgbG9ja190aW1lb3V0PU5vbmUpCi0gICAgICAgIHNlbGYudHJhY2UoIm1rdGVtcCIsIHApCi0g
ICAgICAgIHJldHVybiBwCi0KLSAgICBkZWYgZ2V0YmFzZXRlbXAoc2VsZik6Ci0gICAgICAgICIi
IiByZXR1cm4gYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LiAiIiIKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX2Jhc2V0ZW1wCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVF
cnJvcjoKLSAgICAgICAgICAgIGJhc2V0ZW1wID0gc2VsZi5jb25maWcub3B0aW9uLmJhc2V0ZW1w
Ci0gICAgICAgICAgICBpZiBiYXNldGVtcDoKLSAgICAgICAgICAgICAgICBiYXNldGVtcCA9IHB5
LnBhdGgubG9jYWwoYmFzZXRlbXApCi0gICAgICAgICAgICAgICAgaWYgYmFzZXRlbXAuY2hlY2so
KToKLSAgICAgICAgICAgICAgICAgICAgYmFzZXRlbXAucmVtb3ZlKCkKLSAgICAgICAgICAgICAg
ICBiYXNldGVtcC5ta2RpcigpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHRl
bXByb290ID0gcHkucGF0aC5sb2NhbC5nZXRfdGVtcHJvb3QoKQotICAgICAgICAgICAgICAgIHVz
ZXIgPSBnZXRfdXNlcigpCi0gICAgICAgICAgICAgICAgaWYgdXNlcjoKLSAgICAgICAgICAgICAg
ICAgICAgIyB1c2UgYSBzdWItZGlyZWN0b3J5IGluIHRoZSB0ZW1wcm9vdCB0byBzcGVlZC11cAot
ICAgICAgICAgICAgICAgICAgICAjIG1ha2VfbnVtYmVyZWRfZGlyKCkgY2FsbAotICAgICAgICAg
ICAgICAgICAgICByb290ZGlyID0gdGVtcHJvb3Quam9pbigncHl0ZXN0LW9mLSVzJyAlIHVzZXIp
Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcm9vdGRpciA9IHRl
bXByb290Ci0gICAgICAgICAgICAgICAgcm9vdGRpci5lbnN1cmUoZGlyPTEpCi0gICAgICAgICAg
ICAgICAgYmFzZXRlbXAgPSBweS5wYXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKHByZWZpeD0n
cHl0ZXN0LScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJvb3RkaXI9cm9vdGRpcikKLSAgICAgICAgICAgIHNlbGYuX2Jhc2V0ZW1w
ID0gdCA9IGJhc2V0ZW1wLnJlYWxwYXRoKCkKLSAgICAgICAgICAgIHNlbGYudHJhY2UoIm5ldyBi
YXNldGVtcCIsIHQpCi0gICAgICAgICAgICByZXR1cm4gdAotCi0gICAgZGVmIGZpbmlzaChzZWxm
KToKLSAgICAgICAgc2VsZi50cmFjZSgiZmluaXNoIikKLQotCi1kZWYgZ2V0X3VzZXIoKToKLSAg
ICAiIiJSZXR1cm4gdGhlIGN1cnJlbnQgdXNlciBuYW1lLCBvciBOb25lIGlmIGdldHVzZXIoKSBk
b2VzIG5vdCB3b3JrCi0gICAgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgKHNlZSAjMTAxMCku
Ci0gICAgIiIiCi0gICAgaW1wb3J0IGdldHBhc3MKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBn
ZXRwYXNzLmdldHVzZXIoKQotICAgIGV4Y2VwdCAoSW1wb3J0RXJyb3IsIEtleUVycm9yKToKLSAg
ICAgICAgcmV0dXJuIE5vbmUKLQotCi0jIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKLVRlbXBkaXJI
YW5kbGVyID0gVGVtcGRpckZhY3RvcnkKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcp
OgotICAgICIiIkNyZWF0ZSBhIFRlbXBkaXJGYWN0b3J5IGFuZCBhdHRhY2ggaXQgdG8gdGhlIGNv
bmZpZyBvYmplY3QuCi0KLSAgICBUaGlzIGlzIHRvIGNvbXBseSB3aXRoIGV4aXN0aW5nIHBsdWdp
bnMgd2hpY2ggZXhwZWN0IHRoZSBoYW5kbGVyIHRvIGJlCi0gICAgYXZhaWxhYmxlIGF0IHB5dGVz
dF9jb25maWd1cmUgdGltZSwgYnV0IGlkZWFsbHkgc2hvdWxkIGJlIG1vdmVkIGVudGlyZWx5Ci0g
ICAgdG8gdGhlIHRtcGRpcl9mYWN0b3J5IHNlc3Npb24gZml4dHVyZS4KLSAgICAiIiIKLSAgICBt
cCA9IE1vbmtleVBhdGNoKCkKLSAgICB0ID0gVGVtcGRpckZhY3RvcnkoY29uZmlnKQotICAgIGNv
bmZpZy5fY2xlYW51cC5leHRlbmQoW21wLnVuZG8sIHQuZmluaXNoXSkKLSAgICBtcC5zZXRhdHRy
KGNvbmZpZywgJ190bXBkaXJoYW5kbGVyJywgdCwgcmFpc2luZz1GYWxzZSkKLSAgICBtcC5zZXRh
dHRyKHB5dGVzdCwgJ2Vuc3VyZXRlbXAnLCB0LmVuc3VyZXRlbXAsIHJhaXNpbmc9RmFsc2UpCi0K
LQotQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKLWRlZiB0bXBkaXJfZmFjdG9yeShy
ZXF1ZXN0KToKLSAgICAiIiJSZXR1cm4gYSBUZW1wZGlyRmFjdG9yeSBpbnN0YW5jZSBmb3IgdGhl
IHRlc3Qgc2Vzc2lvbi4KLSAgICAiIiIKLSAgICByZXR1cm4gcmVxdWVzdC5jb25maWcuX3RtcGRp
cmhhbmRsZXIKLQotCi1AcHl0ZXN0LmZpeHR1cmUKLWRlZiB0bXBkaXIocmVxdWVzdCwgdG1wZGly
X2ZhY3RvcnkpOgotICAgICIiIlJldHVybiBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aCBvYmpl
Y3QKLSAgICB3aGljaCBpcyB1bmlxdWUgdG8gZWFjaCB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb24s
Ci0gICAgY3JlYXRlZCBhcyBhIHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGJhc2UgdGVtcG9yYXJ5Ci0g
ICAgZGlyZWN0b3J5LiAgVGhlIHJldHVybmVkIG9iamVjdCBpcyBhIGBweS5wYXRoLmxvY2FsYF8K
LSAgICBwYXRoIG9iamVjdC4KLSAgICAiIiIKLSAgICBuYW1lID0gcmVxdWVzdC5ub2RlLm5hbWUK
LSAgICBuYW1lID0gcmUuc3ViKHIiW1xXXSIsICJfIiwgbmFtZSkKLSAgICBNQVhWQUwgPSAzMAot
ICAgIGlmIGxlbihuYW1lKSA+IE1BWFZBTDoKLSAgICAgICAgbmFtZSA9IG5hbWVbOk1BWFZBTF0K
LSAgICB4ID0gdG1wZGlyX2ZhY3RvcnkubWt0ZW1wKG5hbWUsIG51bWJlcmVkPVRydWUpCi0gICAg
cmV0dXJuIHgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdW5pdHRlc3QucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L3VuaXR0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzZGRiMzk0OTVlMzk3MDM0NGI0YTZkOGY5MmE4NjgwODdiNWZlZjI5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
dW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMzcgKzAsMCBAQAotIiIiIGRpc2NvdmVy
eSBhbmQgcnVubmluZyBvZiBzdGQtbGlicmFyeSAidW5pdHRlc3QiIHN0eWxlIHRlc3RzLiAiIiIK
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KLQotaW1wb3J0IHN5cwotaW1wb3J0IHRyYWNlYmFjawotCi0jIGZvciB0cmFuc2Zl
cnJpbmcgbWFya2VycwotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWZyb20gX3B5dGVzdC5jb25maWcg
aW1wb3J0IGhvb2tpbXBsCi1mcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwsIHNraXAs
IHhmYWlsCi1mcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCB0cmFuc2Zlcl9tYXJrZXJzLCBDbGFz
cywgTW9kdWxlLCBGdW5jdGlvbgotCi0KLWRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKGNv
bGxlY3RvciwgbmFtZSwgb2JqKToKLSAgICAjIGhhcyB1bml0dGVzdCBiZWVuIGltcG9ydGVkIGFu
ZCBpcyBvYmogYSBzdWJjbGFzcyBvZiBpdHMgVGVzdENhc2U/Ci0gICAgdHJ5OgotICAgICAgICBp
ZiBub3QgaXNzdWJjbGFzcyhvYmosIHN5cy5tb2R1bGVzWyJ1bml0dGVzdCJdLlRlc3RDYXNlKToK
LSAgICAgICAgICAgIHJldHVybgotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIHJldHVy
bgotICAgICMgeWVzLCBzbyBsZXQncyBjb2xsZWN0IGl0Ci0gICAgcmV0dXJuIFVuaXRUZXN0Q2Fz
ZShuYW1lLCBwYXJlbnQ9Y29sbGVjdG9yKQotCi0KLWNsYXNzIFVuaXRUZXN0Q2FzZShDbGFzcyk6
Ci0gICAgIyBtYXJrZXIgZm9yIGZpeHR1cmVtYW5nZXIuZ2V0Zml4dHVyZWluZm8oKQotICAgICMg
dG8gZGVjbGFyZSB0aGF0IG91ciBjaGlsZHJlbiBkbyBub3Qgc3VwcG9ydCBmdW5jYXJncwotICAg
IG5vZnVuY2FyZ3MgPSBUcnVlCi0KLSAgICBkZWYgc2V0dXAoc2VsZik6Ci0gICAgICAgIGNscyA9
IHNlbGYub2JqCi0gICAgICAgIGlmIGdldGF0dHIoY2xzLCAnX191bml0dGVzdF9za2lwX18nLCBG
YWxzZSk6Ci0gICAgICAgICAgICByZXR1cm4gICMgc2tpcHBlZAotICAgICAgICBzZXR1cCA9IGdl
dGF0dHIoY2xzLCAnc2V0VXBDbGFzcycsIE5vbmUpCi0gICAgICAgIGlmIHNldHVwIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgc2V0dXAoKQotICAgICAgICB0ZWFyZG93biA9IGdldGF0dHIoY2xz
LCAndGVhckRvd25DbGFzcycsIE5vbmUpCi0gICAgICAgIGlmIHRlYXJkb3duIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgc2VsZi5hZGRmaW5hbGl6ZXIodGVhcmRvd24pCi0gICAgICAgIHN1cGVy
KFVuaXRUZXN0Q2FzZSwgc2VsZikuc2V0dXAoKQotCi0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0g
ICAgICAgIGZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RMb2FkZXIKLSAgICAgICAgY2xzID0gc2Vs
Zi5vYmoKLSAgICAgICAgaWYgbm90IGdldGF0dHIoY2xzLCAiX190ZXN0X18iLCBUcnVlKToKLSAg
ICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyLnBh
cnNlZmFjdG9yaWVzKHNlbGYsIHVuaXR0ZXN0PVRydWUpCi0gICAgICAgIGxvYWRlciA9IFRlc3RM
b2FkZXIoKQotICAgICAgICBtb2R1bGUgPSBzZWxmLmdldHBhcmVudChNb2R1bGUpLm9iagotICAg
ICAgICBmb3VuZHNvbWV0aGluZyA9IEZhbHNlCi0gICAgICAgIGZvciBuYW1lIGluIGxvYWRlci5n
ZXRUZXN0Q2FzZU5hbWVzKHNlbGYub2JqKToKLSAgICAgICAgICAgIHggPSBnZXRhdHRyKHNlbGYu
b2JqLCBuYW1lKQotICAgICAgICAgICAgaWYgbm90IGdldGF0dHIoeCwgJ19fdGVzdF9fJywgVHJ1
ZSk6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGZ1bmNvYmogPSBnZXRh
dHRyKHgsICdpbV9mdW5jJywgeCkKLSAgICAgICAgICAgIHRyYW5zZmVyX21hcmtlcnMoZnVuY29i
aiwgY2xzLCBtb2R1bGUpCi0gICAgICAgICAgICB5aWVsZCBUZXN0Q2FzZUZ1bmN0aW9uKG5hbWUs
IHBhcmVudD1zZWxmKQotICAgICAgICAgICAgZm91bmRzb21ldGhpbmcgPSBUcnVlCi0KLSAgICAg
ICAgaWYgbm90IGZvdW5kc29tZXRoaW5nOgotICAgICAgICAgICAgcnVudGVzdCA9IGdldGF0dHIo
c2VsZi5vYmosICdydW5UZXN0JywgTm9uZSkKLSAgICAgICAgICAgIGlmIHJ1bnRlc3QgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgdXQgPSBzeXMubW9kdWxlcy5nZXQoInR3aXN0ZWQudHJp
YWwudW5pdHRlc3QiLCBOb25lKQotICAgICAgICAgICAgICAgIGlmIHV0IGlzIE5vbmUgb3IgcnVu
dGVzdCAhPSB1dC5UZXN0Q2FzZS5ydW5UZXN0OgotICAgICAgICAgICAgICAgICAgICB5aWVsZCBU
ZXN0Q2FzZUZ1bmN0aW9uKCdydW5UZXN0JywgcGFyZW50PXNlbGYpCi0KLQotY2xhc3MgVGVzdENh
c2VGdW5jdGlvbihGdW5jdGlvbik6Ci0gICAgX2V4Y2luZm8gPSBOb25lCi0KLSAgICBkZWYgc2V0
dXAoc2VsZik6Ci0gICAgICAgIHNlbGYuX3Rlc3RjYXNlID0gc2VsZi5wYXJlbnQub2JqKHNlbGYu
bmFtZSkKLSAgICAgICAgc2VsZi5fZml4X3VuaXR0ZXN0X3NraXBfZGVjb3JhdG9yKCkKLSAgICAg
ICAgc2VsZi5fb2JqID0gZ2V0YXR0cihzZWxmLl90ZXN0Y2FzZSwgc2VsZi5uYW1lKQotICAgICAg
ICBpZiBoYXNhdHRyKHNlbGYuX3Rlc3RjYXNlLCAnc2V0dXBfbWV0aG9kJyk6Ci0gICAgICAgICAg
ICBzZWxmLl90ZXN0Y2FzZS5zZXR1cF9tZXRob2Qoc2VsZi5fb2JqKQotICAgICAgICBpZiBoYXNh
dHRyKHNlbGYsICJfcmVxdWVzdCIpOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5fZmlsbGZp
eHR1cmVzKCkKLQotICAgIGRlZiBfZml4X3VuaXR0ZXN0X3NraXBfZGVjb3JhdG9yKHNlbGYpOgot
ICAgICAgICAiIiIKLSAgICAgICAgVGhlIEB1bml0dGVzdC5za2lwIGRlY29yYXRvciBjYWxscyBm
dW5jdG9vbHMud3JhcHMoc2VsZi5fdGVzdGNhc2UpCi0gICAgICAgIFRoZSBjYWxsIHRvIGZ1bmN0
b29scy53cmFwcygpIGZhaWxzIHVubGVzcyBzZWxmLl90ZXN0Y2FzZQotICAgICAgICBoYXMgYSBf
X25hbWVfXyBhdHRyaWJ1dGUuIFRoaXMgaXMgdXN1YWxseSBhdXRvbWF0aWNhbGx5IHN1cHBsaWVk
Ci0gICAgICAgIGlmIHRoZSB0ZXN0IGlzIGEgZnVuY3Rpb24gb3IgbWV0aG9kLCBidXQgd2UgbmVl
ZCB0byBhZGQgbWFudWFsbHkKLSAgICAgICAgaGVyZS4KLQotICAgICAgICBTZWUgaXNzdWUgIzEx
NjkKLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMjoKLSAg
ICAgICAgICAgIHNldGF0dHIoc2VsZi5fdGVzdGNhc2UsICJfX25hbWVfXyIsIHNlbGYubmFtZSkK
LQotICAgIGRlZiB0ZWFyZG93bihzZWxmKToKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLl90ZXN0
Y2FzZSwgJ3RlYXJkb3duX21ldGhvZCcpOgotICAgICAgICAgICAgc2VsZi5fdGVzdGNhc2UudGVh
cmRvd25fbWV0aG9kKHNlbGYuX29iaikKLSAgICAgICAgIyBBbGxvdyBnYXJiYWdlIGNvbGxlY3Rp
b24gb24gVGVzdENhc2UgaW5zdGFuY2UgYXR0cmlidXRlcy4KLSAgICAgICAgc2VsZi5fdGVzdGNh
c2UgPSBOb25lCi0gICAgICAgIHNlbGYuX29iaiA9IE5vbmUKLQotICAgIGRlZiBzdGFydFRlc3Qo
c2VsZiwgdGVzdGNhc2UpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgX2FkZGV4Y2luZm8oc2Vs
ZiwgcmF3ZXhjaW5mbyk6Ci0gICAgICAgICMgdW53cmFwIHBvdGVudGlhbCBleGNlcHRpb24gaW5m
byAoc2VlIHR3aXN0ZWQgdHJpYWwgc3VwcG9ydCBiZWxvdykKLSAgICAgICAgcmF3ZXhjaW5mbyA9
IGdldGF0dHIocmF3ZXhjaW5mbywgJ19yYXdleGNpbmZvJywgcmF3ZXhjaW5mbykKLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbyhy
YXdleGNpbmZvKQotICAgICAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gdHJhY2Vi
YWNrLmZvcm1hdF9leGNlcHRpb24oKnJhd2V4Y2luZm8pCi0gICAgICAgICAgICAgICAgICAgIHZh
bHVlcy5pbnNlcnQoMCwgIk5PVEU6IEluY29tcGF0aWJsZSBFeGNlcHRpb24gUmVwcmVzZW50YXRp
b24sICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlzcGxheWluZyBuYXRp
dmVseTpcblxuIikKLSAgICAgICAgICAgICAgICAgICAgZmFpbCgiIi5qb2luKHZhbHVlcyksIHB5
dHJhY2U9RmFsc2UpCi0gICAgICAgICAgICAgICAgZXhjZXB0IChmYWlsLkV4Y2VwdGlvbiwgS2V5
Ym9hcmRJbnRlcnJ1cHQpOgotICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAg
ICAgIGV4Y2VwdDogICMgbm9xYQotICAgICAgICAgICAgICAgICAgICBmYWlsKCJFUlJPUjogVW5r
bm93biBJbmNvbXBhdGlibGUgRXhjZXB0aW9uICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVwcmVzZW50YXRpb246XG4lciIgJSAocmF3ZXhjaW5mbywpLCBweXRyYWNlPUZhbHNlKQotICAg
ICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgICAgIHJhaXNl
Ci0gICAgICAgICAgICBleGNlcHQgZmFpbC5FeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgZXhj
aW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCi0gICAgICAgIHNlbGYuX19kaWN0
X18uc2V0ZGVmYXVsdCgnX2V4Y2luZm8nLCBbXSkuYXBwZW5kKGV4Y2luZm8pCi0KLSAgICBkZWYg
YWRkRXJyb3Ioc2VsZiwgdGVzdGNhc2UsIHJhd2V4Y2luZm8pOgotICAgICAgICBzZWxmLl9hZGRl
eGNpbmZvKHJhd2V4Y2luZm8pCi0KLSAgICBkZWYgYWRkRmFpbHVyZShzZWxmLCB0ZXN0Y2FzZSwg
cmF3ZXhjaW5mbyk6Ci0gICAgICAgIHNlbGYuX2FkZGV4Y2luZm8ocmF3ZXhjaW5mbykKLQotICAg
IGRlZiBhZGRTa2lwKHNlbGYsIHRlc3RjYXNlLCByZWFzb24pOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBza2lwKHJlYXNvbikKLSAgICAgICAgZXhjZXB0IHNraXAuRXhjZXB0aW9uOgotICAg
ICAgICAgICAgc2VsZi5fc2tpcHBlZF9ieV9tYXJrID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5f
YWRkZXhjaW5mbyhzeXMuZXhjX2luZm8oKSkKLQotICAgIGRlZiBhZGRFeHBlY3RlZEZhaWx1cmUo
c2VsZiwgdGVzdGNhc2UsIHJhd2V4Y2luZm8sIHJlYXNvbj0iIik6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHhmYWlsKHN0cihyZWFzb24pKQotICAgICAgICBleGNlcHQgeGZhaWwuRXhjZXB0
aW9uOgotICAgICAgICAgICAgc2VsZi5fYWRkZXhjaW5mbyhzeXMuZXhjX2luZm8oKSkKLQotICAg
IGRlZiBhZGRVbmV4cGVjdGVkU3VjY2VzcyhzZWxmLCB0ZXN0Y2FzZSwgcmVhc29uPSIiKToKLSAg
ICAgICAgc2VsZi5fdW5leHBlY3RlZHN1Y2Nlc3MgPSByZWFzb24KLQotICAgIGRlZiBhZGRTdWNj
ZXNzKHNlbGYsIHRlc3RjYXNlKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHN0b3BUZXN0KHNl
bGYsIHRlc3RjYXNlKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIF9oYW5kbGVfc2tpcChzZWxm
KToKLSAgICAgICAgIyBpbXBsZW1lbnRzIHRoZSBza2lwcGluZyBtYWNoaW5lcnkgKHNlZSAjMjEz
NykKLSAgICAgICAgIyBhbmFsb2cgdG8gcHl0aG9ucyBMaWIvdW5pdHRlc3QvY2FzZS5weTpydW4K
LSAgICAgICAgdGVzdE1ldGhvZCA9IGdldGF0dHIoc2VsZi5fdGVzdGNhc2UsIHNlbGYuX3Rlc3Rj
YXNlLl90ZXN0TWV0aG9kTmFtZSkKLSAgICAgICAgaWYgKGdldGF0dHIoc2VsZi5fdGVzdGNhc2Uu
X19jbGFzc19fLCAiX191bml0dGVzdF9za2lwX18iLCBGYWxzZSkgb3IKLSAgICAgICAgICAgICAg
ICBnZXRhdHRyKHRlc3RNZXRob2QsICJfX3VuaXR0ZXN0X3NraXBfXyIsIEZhbHNlKSk6Ci0gICAg
ICAgICAgICAjIElmIHRoZSBjbGFzcyBvciBtZXRob2Qgd2FzIHNraXBwZWQuCi0gICAgICAgICAg
ICBza2lwX3doeSA9IChnZXRhdHRyKHNlbGYuX3Rlc3RjYXNlLl9fY2xhc3NfXywgJ19fdW5pdHRl
c3Rfc2tpcF93aHlfXycsICcnKSBvcgotICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cih0
ZXN0TWV0aG9kLCAnX191bml0dGVzdF9za2lwX3doeV9fJywgJycpKQotICAgICAgICAgICAgdHJ5
OiAgIyBQWTMsIHVuaXR0ZXN0MiBvbiBQWTIKLSAgICAgICAgICAgICAgICBzZWxmLl90ZXN0Y2Fz
ZS5fYWRkU2tpcChzZWxmLCBzZWxmLl90ZXN0Y2FzZSwgc2tpcF93aHkpCi0gICAgICAgICAgICBl
eGNlcHQgVHlwZUVycm9yOiAgIyBQWTIKLSAgICAgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9p
bmZvWzBdICE9IDI6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICAgICAg
c2VsZi5fdGVzdGNhc2UuX2FkZFNraXAoc2VsZiwgc2tpcF93aHkpCi0gICAgICAgICAgICByZXR1
cm4gVHJ1ZQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBydW50ZXN0KHNlbGYpOgot
ICAgICAgICBpZiBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldF9wbHVnaW4oInBkYmludm9r
ZSIpIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl90ZXN0Y2FzZShyZXN1bHQ9c2VsZikKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICMgZGlzYWJsZXMgdGVhckRvd24gYW5kIGNsZWFudXBz
IGZvciBwb3N0IG1vcnRlbSBkZWJ1Z2dpbmcgKHNlZSAjMTg5MCkKLSAgICAgICAgICAgIGlmIHNl
bGYuX2hhbmRsZV9za2lwKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBz
ZWxmLl90ZXN0Y2FzZS5kZWJ1ZygpCi0KLSAgICBkZWYgX3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4
Y2luZm8pOgotICAgICAgICBGdW5jdGlvbi5fcHJ1bmV0cmFjZWJhY2soc2VsZiwgZXhjaW5mbykK
LSAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2suZmlsdGVyKAotICAgICAgICAg
ICAgbGFtYmRhIHg6IG5vdCB4LmZyYW1lLmZfZ2xvYmFscy5nZXQoJ19fdW5pdHRlc3QnKSkKLSAg
ICAgICAgaWYgdHJhY2ViYWNrOgotICAgICAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSB0cmFj
ZWJhY2sKLQotCi1AaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLWRlZiBweXRlc3RfcnVudGVzdF9t
YWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgotICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgVGVzdENhc2VG
dW5jdGlvbik6Ci0gICAgICAgIGlmIGl0ZW0uX2V4Y2luZm86Ci0gICAgICAgICAgICBjYWxsLmV4
Y2luZm8gPSBpdGVtLl9leGNpbmZvLnBvcCgwKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIGRlbCBjYWxsLnJlc3VsdAotICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9y
OgotICAgICAgICAgICAgICAgIHBhc3MKLQotIyB0d2lzdGVkIHRyaWFsIHN1cHBvcnQKLQotCi1A
aG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLWRlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbChp
dGVtKToKLSAgICBpZiBpc2luc3RhbmNlKGl0ZW0sIFRlc3RDYXNlRnVuY3Rpb24pIGFuZCBcCi0g
ICAgICAgJ3R3aXN0ZWQudHJpYWwudW5pdHRlc3QnIGluIHN5cy5tb2R1bGVzOgotICAgICAgICB1
dCA9IHN5cy5tb2R1bGVzWyd0d2lzdGVkLnB5dGhvbi5mYWlsdXJlJ10KLSAgICAgICAgRmFpbHVy
ZV9faW5pdF9fID0gdXQuRmFpbHVyZS5fX2luaXRfXwotICAgICAgICBjaGVja190ZXN0Y2FzZV9p
bXBsZW1lbnRzX3RyaWFsX3JlcG9ydGVyKCkKLQotICAgICAgICBkZWYgZXhjc3RvcmUoc2VsZiwg
ZXhjX3ZhbHVlPU5vbmUsIGV4Y190eXBlPU5vbmUsIGV4Y190Yj1Ob25lLAotICAgICAgICAgICAg
ICAgICAgICAgY2FwdHVyZVZhcnM9Tm9uZSk6Ci0gICAgICAgICAgICBpZiBleGNfdmFsdWUgaXMg
Tm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLl9yYXdleGNpbmZvID0gc3lzLmV4Y19pbmZvKCkK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgZXhjX3R5cGUgaXMgTm9uZToK
LSAgICAgICAgICAgICAgICAgICAgZXhjX3R5cGUgPSB0eXBlKGV4Y192YWx1ZSkKLSAgICAgICAg
ICAgICAgICBzZWxmLl9yYXdleGNpbmZvID0gKGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190YikK
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBGYWlsdXJlX19pbml0X18oc2VsZiwg
ZXhjX3ZhbHVlLCBleGNfdHlwZSwgZXhjX3RiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYXB0dXJlVmFycz1jYXB0dXJlVmFycykKLSAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJy
b3I6Ci0gICAgICAgICAgICAgICAgRmFpbHVyZV9faW5pdF9fKHNlbGYsIGV4Y192YWx1ZSwgZXhj
X3R5cGUsIGV4Y190YikKLQotICAgICAgICB1dC5GYWlsdXJlLl9faW5pdF9fID0gZXhjc3RvcmUK
LSAgICAgICAgeWllbGQKLSAgICAgICAgdXQuRmFpbHVyZS5fX2luaXRfXyA9IEZhaWx1cmVfX2lu
aXRfXwotICAgIGVsc2U6Ci0gICAgICAgIHlpZWxkCi0KLQotZGVmIGNoZWNrX3Rlc3RjYXNlX2lt
cGxlbWVudHNfdHJpYWxfcmVwb3J0ZXIoZG9uZT1bXSk6Ci0gICAgaWYgZG9uZToKLSAgICAgICAg
cmV0dXJuCi0gICAgZnJvbSB6b3BlLmludGVyZmFjZSBpbXBvcnQgY2xhc3NJbXBsZW1lbnRzCi0g
ICAgZnJvbSB0d2lzdGVkLnRyaWFsLml0cmlhbCBpbXBvcnQgSVJlcG9ydGVyCi0gICAgY2xhc3NJ
bXBsZW1lbnRzKFRlc3RDYXNlRnVuY3Rpb24sIElSZXBvcnRlcikKLSAgICBkb25lLmFwcGVuZCgx
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg4MGVmYzBjOTEwZmQwNzYyZWY2MDEzZjQ4ZWZkMzM0NjNmNDM5OGUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19hcmdj
b21wbGV0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FjaGVwcm92aWRlci5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvY2FwdHVyZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY29tcGF0LnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Rl
YnVnZ2luZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZGVwcmVjYXRlZC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvZG9jdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZml4dHVyZXMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9oZWxwY29uZmlnLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ob29rc3BlYy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvanVuaXR4bWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2xvZ2dp
bmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21haW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L21hcmsucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21vbmtleXBhdGNoLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9ub2Rlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvbm9zZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3Qvb3V0Y29tZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Bhc3RlYmlu
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRlc3Rlci5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvcHl0aG9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob25fYXBpLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9yZWN3YXJuLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZXN1bHRsb2cu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3J1bm5lci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
c2V0dXBvbmx5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9zZXR1cHBsYW4ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L3NraXBwaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90ZXJtaW5hbC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdG1wZGlyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC91
bml0dGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvd2FybmluZ3MucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3Qvd2FybmluZ3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3dh
cm5pbmdzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzJiMTkxNGZiNjkxNjRi
MzgwZjFmNTI5NGY1NzQ5ZWQzZTQ5MjlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvd2FybmluZ3MucHkKKysrIC9kZXYv
bnVsbApAQCAtMSw5NiArMCwwIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCB3YXJuaW5ncwotZnJvbSBj
b250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcgotCi1pbXBvcnQgcHl0ZXN0Ci0KLWZyb20g
X3B5dGVzdCBpbXBvcnQgY29tcGF0Ci0KLQotZGVmIF9zZXRvcHRpb24od21vZCwgYXJnKToKLSAg
ICAiIiIKLSAgICBDb3B5IG9mIHRoZSB3YXJuaW5nLl9zZXRvcHRpb24gZnVuY3Rpb24gYnV0IGRv
ZXMgbm90IGVzY2FwZSBhcmd1bWVudHMuCi0gICAgIiIiCi0gICAgcGFydHMgPSBhcmcuc3BsaXQo
JzonKQotICAgIGlmIGxlbihwYXJ0cykgPiA1OgotICAgICAgICByYWlzZSB3bW9kLl9PcHRpb25F
cnJvcigidG9vIG1hbnkgZmllbGRzIChtYXggNSk6ICVyIiAlIChhcmcsKSkKLSAgICB3aGlsZSBs
ZW4ocGFydHMpIDwgNToKLSAgICAgICAgcGFydHMuYXBwZW5kKCcnKQotICAgIGFjdGlvbiwgbWVz
c2FnZSwgY2F0ZWdvcnksIG1vZHVsZSwgbGluZW5vID0gW3Muc3RyaXAoKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBzIGluIHBhcnRzXQotICAg
IGFjdGlvbiA9IHdtb2QuX2dldGFjdGlvbihhY3Rpb24pCi0gICAgY2F0ZWdvcnkgPSB3bW9kLl9n
ZXRjYXRlZ29yeShjYXRlZ29yeSkKLSAgICBpZiBsaW5lbm86Ci0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGxpbmVubyA9IGludChsaW5lbm8pCi0gICAgICAgICAgICBpZiBsaW5lbm8gPCAwOgot
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKLSAgICAgICAgZXhjZXB0IChWYWx1ZUVy
cm9yLCBPdmVyZmxvd0Vycm9yKToKLSAgICAgICAgICAgIHJhaXNlIHdtb2QuX09wdGlvbkVycm9y
KCJpbnZhbGlkIGxpbmVubyAlciIgJSAobGluZW5vLCkpCi0gICAgZWxzZToKLSAgICAgICAgbGlu
ZW5vID0gMAotICAgIHdtb2QuZmlsdGVyd2FybmluZ3MoYWN0aW9uLCBtZXNzYWdlLCBjYXRlZ29y
eSwgbW9kdWxlLCBsaW5lbm8pCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAg
ICBncm91cCA9IHBhcnNlci5nZXRncm91cCgicHl0ZXN0LXdhcm5pbmdzIikKLSAgICBncm91cC5h
ZGRvcHRpb24oCi0gICAgICAgICctVycsICctLXB5dGhvbndhcm5pbmdzJywgYWN0aW9uPSdhcHBl
bmQnLAotICAgICAgICBoZWxwPSJzZXQgd2hpY2ggd2FybmluZ3MgdG8gcmVwb3J0LCBzZWUgLVcg
b3B0aW9uIG9mIHB5dGhvbiBpdHNlbGYuIikKLSAgICBwYXJzZXIuYWRkaW5pKCJmaWx0ZXJ3YXJu
aW5ncyIsIHR5cGU9ImxpbmVsaXN0IiwKLSAgICAgICAgICAgICAgICAgIGhlbHA9IkVhY2ggbGlu
ZSBzcGVjaWZpZXMgYSBwYXR0ZXJuIGZvciAiCi0gICAgICAgICAgICAgICAgICAid2FybmluZ3Mu
ZmlsdGVyd2FybmluZ3MuICIKLSAgICAgICAgICAgICAgICAgICJQcm9jZXNzZWQgYWZ0ZXIgLVcg
YW5kIC0tcHl0aG9ud2FybmluZ3MuIikKLQotCi1AY29udGV4dG1hbmFnZXIKLWRlZiBjYXRjaF93
YXJuaW5nc19mb3JfaXRlbShpdGVtKToKLSAgICAiIiIKLSAgICBjYXRjaGVzIHRoZSB3YXJuaW5n
cyBnZW5lcmF0ZWQgZHVyaW5nIHNldHVwL2NhbGwvdGVhcmRvd24gZXhlY3V0aW9uCi0gICAgb2Yg
dGhlIGdpdmVuIGl0ZW0gYW5kIGFmdGVyIGl0IGlzIGRvbmUgcG9zdHMgdGhlbSBhcyB3YXJuaW5n
cyB0byB0aGlzCi0gICAgaXRlbS4KLSAgICAiIiIKLSAgICBhcmdzID0gaXRlbS5jb25maWcuZ2V0
b3B0aW9uKCdweXRob253YXJuaW5ncycpIG9yIFtdCi0gICAgaW5pZmlsdGVycyA9IGl0ZW0uY29u
ZmlnLmdldGluaSgiZmlsdGVyd2FybmluZ3MiKQotICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2Fy
bmluZ3MocmVjb3JkPVRydWUpIGFzIGxvZzoKLSAgICAgICAgZm9yIGFyZyBpbiBhcmdzOgotICAg
ICAgICAgICAgd2FybmluZ3MuX3NldG9wdGlvbihhcmcpCi0KLSAgICAgICAgZm9yIGFyZyBpbiBp
bmlmaWx0ZXJzOgotICAgICAgICAgICAgX3NldG9wdGlvbih3YXJuaW5ncywgYXJnKQotCi0gICAg
ICAgIG1hcmsgPSBpdGVtLmdldF9tYXJrZXIoJ2ZpbHRlcndhcm5pbmdzJykKLSAgICAgICAgaWYg
bWFyazoKLSAgICAgICAgICAgIGZvciBhcmcgaW4gbWFyay5hcmdzOgotICAgICAgICAgICAgICAg
IHdhcm5pbmdzLl9zZXRvcHRpb24oYXJnKQotCi0gICAgICAgIHlpZWxkCi0KLSAgICAgICAgZm9y
IHdhcm5pbmcgaW4gbG9nOgotICAgICAgICAgICAgd2Fybl9tc2cgPSB3YXJuaW5nLm1lc3NhZ2UK
LSAgICAgICAgICAgIHVuaWNvZGVfd2FybmluZyA9IEZhbHNlCi0KLSAgICAgICAgICAgIGlmIGNv
bXBhdC5fUFkyIGFuZCBhbnkoaXNpbnN0YW5jZShtLCBjb21wYXQuVU5JQ09ERV9UWVBFUykgZm9y
IG0gaW4gd2Fybl9tc2cuYXJncyk6Ci0gICAgICAgICAgICAgICAgbmV3X2FyZ3MgPSBbXQotICAg
ICAgICAgICAgICAgIGZvciBtIGluIHdhcm5fbXNnLmFyZ3M6Ci0gICAgICAgICAgICAgICAgICAg
IG5ld19hcmdzLmFwcGVuZChjb21wYXQuYXNjaWlfZXNjYXBlZChtKSBpZiBpc2luc3RhbmNlKG0s
IGNvbXBhdC5VTklDT0RFX1RZUEVTKSBlbHNlIG0pCi0gICAgICAgICAgICAgICAgdW5pY29kZV93
YXJuaW5nID0gbGlzdCh3YXJuX21zZy5hcmdzKSAhPSBuZXdfYXJncwotICAgICAgICAgICAgICAg
IHdhcm5fbXNnLmFyZ3MgPSBuZXdfYXJncwotCi0gICAgICAgICAgICBtc2cgPSB3YXJuaW5ncy5m
b3JtYXR3YXJuaW5nKAotICAgICAgICAgICAgICAgIHdhcm5fbXNnLCB3YXJuaW5nLmNhdGVnb3J5
LAotICAgICAgICAgICAgICAgIHdhcm5pbmcuZmlsZW5hbWUsIHdhcm5pbmcubGluZW5vLCB3YXJu
aW5nLmxpbmUpCi0gICAgICAgICAgICBpdGVtLndhcm4oInVudXNlZCIsIG1zZykKLQotICAgICAg
ICAgICAgaWYgdW5pY29kZV93YXJuaW5nOgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4o
Ci0gICAgICAgICAgICAgICAgICAgICJXYXJuaW5nIGlzIHVzaW5nIHVuaWNvZGUgbm9uIGNvbnZl
cnRpYmxlIHRvIGFzY2lpLCAiCi0gICAgICAgICAgICAgICAgICAgICJjb252ZXJ0aW5nIHRvIGEg
c2FmZSByZXByZXNlbnRhdGlvbjpcbiAgJXMiICUgbXNnLAotICAgICAgICAgICAgICAgICAgICBV
bmljb2RlV2FybmluZykKLQotCi1AcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi1k
ZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woaXRlbSk6Ci0gICAgd2l0aCBjYXRjaF93YXJuaW5n
c19mb3JfaXRlbShpdGVtKToKLSAgICAgICAgeWllbGQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2FwcHZleW9yLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2FwcHZleW9yLnltbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjgwOGZhNmQ5MWE5ZjdlMDdjZDViZmI0ZDg2YjRlODYyOWMyMzlhNy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9hcHB2ZXlvci55bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi1lbnZpcm9ubWVu
dDoKLSAgQ09WRVJBTExTX1JFUE9fVE9LRU46Ci0gICAgc2VjdXJlOiAyTko1Q3Q1NWNISjlXRWcz
eGJTcUN1djByZGd6emI2cG56T0lHNU9rTWJUbmR3M3dPQnJYbnRXRm9RclhpTUZpCi0gICAgIyB0
aGlzIGlzIHB5dGVzdCdzIHRva2VuIGluIGNvdmVyYWxscy5pbywgZW5jcnlwdGVkCi0gICAgIyB1
c2luZyBweXRlc3Rib3QgYWNjb3VudCBhcyBkZXRhaWxlZCBoZXJlOgotICAgICMgaHR0cHM6Ly93
d3cuYXBwdmV5b3IuY29tL2RvY3MvYnVpbGQtY29uZmlndXJhdGlvbiNzZWN1cmUtdmFyaWFibGVz
Ci0KLSAgbWF0cml4OgotICAjIGNvdmVyYWxscyBpcyBub3QgaW4gdGhlIGRlZmF1bHQgZW52IGxp
c3QKLSAgLSBUT1hFTlY6ICJjb3ZlcmFsbHMiCi0gICMgbm90ZTogcGxlYXNlIHVzZSAidG94IC0t
bGlzdGVudnMiIHRvIHBvcHVsYXRlIHRoZSBidWlsZCBtYXRyaXggYmVsb3cKLSAgLSBUT1hFTlY6
ICJsaW50aW5nIgotICAtIFRPWEVOVjogInB5MjciCi0gIC0gVE9YRU5WOiAicHkzNCIKLSAgLSBU
T1hFTlY6ICJweTM1IgotICAtIFRPWEVOVjogInB5MzYiCi0gIC0gVE9YRU5WOiAicHlweSIKLSAg
LSBUT1hFTlY6ICJweTI3LXBleHBlY3QiCi0gIC0gVE9YRU5WOiAicHkyNy14ZGlzdCIKLSAgLSBU
T1hFTlY6ICJweTI3LXRyaWFsIgotICAtIFRPWEVOVjogInB5MjctbnVtcHkiCi0gIC0gVE9YRU5W
OiAicHkyNy1wbHVnZ3ltYXN0ZXIiCi0gIC0gVE9YRU5WOiAicHkzNi1wZXhwZWN0IgotICAtIFRP
WEVOVjogInB5MzYteGRpc3QiCi0gIC0gVE9YRU5WOiAicHkzNi10cmlhbCIKLSAgLSBUT1hFTlY6
ICJweTM2LW51bXB5IgotICAtIFRPWEVOVjogInB5MzYtcGx1Z2d5bWFzdGVyIgotICAtIFRPWEVO
VjogInB5Mjctbm9ieXRlIgotICAtIFRPWEVOVjogImRvY3Rlc3RpbmciCi0gIC0gVE9YRU5WOiAi
cHkzNS1mcmVlemUiCi0gIC0gVE9YRU5WOiAiZG9jcyIKLQotaW5zdGFsbDoKLSAgLSBlY2hvIElu
c3RhbGxlZCBQeXRob25zCi0gIC0gZGlyIGM6XFB5dGhvbioKLQotICAtIGlmICIlVE9YRU5WJSIg
PT0gInB5cHkiIGNhbGwgc2NyaXB0c1xpbnN0YWxsLXB5cHkuYmF0Ci0KLSAgLSBDOlxQeXRob24z
NlxweXRob24gLW0gcGlwIGluc3RhbGwgLS11cGdyYWRlIC0tcHJlIHRveAotCi1idWlsZDogZmFs
c2UgICMgTm90IGEgQyMgcHJvamVjdCwgYnVpbGQgc3R1ZmYgYXQgdGhlIHRlc3Qgc3RlcCBpbnN0
ZWFkLgotCi10ZXN0X3NjcmlwdDoKLSAgLSBjYWxsIHNjcmlwdHNcY2FsbC10b3guYmF0Ci0KLWNh
Y2hlOgotICAtICclTE9DQUxBUFBEQVRBJVxwaXBcY2FjaGUnCi0gIC0gJyVVU0VSUFJPRklMRSVc
LmNhY2hlXHByZS1jb21taXQnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9henVyZS1waXBlbGlu
ZXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvYXp1cmUtcGlwZWxpbmVzLnltbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTg0
NjEwZmQxODU3NThiN2JjNDhlMGIyNTRmMmE4MzRiYjAyMDI0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvYXp1cmUtcGlwZWxpbmVzLnltbApAQCAtMCwwICsxLDEwNyBAQAordHJpZ2dl
cjoKKy0gbWFzdGVyCistIGZlYXR1cmVzCisKK3ZhcmlhYmxlczoKKyAgUFlURVNUX0FERE9QVFM6
ICItLWp1bml0eG1sPWJ1aWxkL3Rlc3QtcmVzdWx0cy8kKHRveC5lbnYpLnhtbCAtdnYiCisgIHB5
dGhvbi5uZWVkc192YzogRmFsc2UKKyAgQ09WRVJBR0VfRklMRTogIiQoQnVpbGQuUmVwb3NpdG9y
eS5Mb2NhbFBhdGgpLy5jb3ZlcmFnZSIKKyAgQ09WRVJBR0VfUFJPQ0VTU19TVEFSVDogIiQoQnVp
bGQuUmVwb3NpdG9yeS5Mb2NhbFBhdGgpLy5jb3ZlcmFnZXJjIgorICBQWVRFU1RfQ09WRVJBR0U6
ICcwJworCitqb2JzOgorCistIGpvYjogJ1Rlc3QnCisgIHBvb2w6CisgICAgdm1JbWFnZTogInZz
MjAxNy13aW4yMDE2IgorICBzdHJhdGVneToKKyAgICBtYXRyaXg6CisgICAgICBweTI3OgorICAg
ICAgICBweXRob24udmVyc2lvbjogJzIuNycKKyAgICAgICAgdG94LmVudjogJ3B5MjcnCisgICAg
ICBweTI3LW5vYnl0ZS1sc29mLW51bXB5OgorICAgICAgICBweXRob24udmVyc2lvbjogJzIuNycK
KyAgICAgICAgdG94LmVudjogJ3B5MjctbHNvZi1ub2J5dGUtbnVtcHknCisgICAgICAgICMgQ292
ZXJhZ2UgZm9yOgorICAgICAgICAjIC0gdGVzdF9zdXBwb3J0c19icmVha3BvaW50X21vZHVsZV9n
bG9iYWwKKyAgICAgICAgIyAtIHRlc3RfdGVybWluYWxfcmVwb3J0ZXJfd3JpdGVyX2F0dHIgKHdp
dGhvdXQgeGRpc3QpCisgICAgICAgICMgLSAiaWYgd3JpdGUiIGJyYW5jaCBpbiBfcHl0ZXN0LmFz
c2VydGlvbi5yZXdyaXRlCisgICAgICAgICMgLSBudW1weQorICAgICAgICAjIC0gcHl0ZXN0ZXIn
cyBMc29mRmRMZWFrQ2hlY2tlciAoYmVpbmcgc2tpcHBlZCkKKyAgICAgICAgUFlURVNUX0NPVkVS
QUdFOiAnMScKKyAgICAgIHB5MjctdHdpc3RlZDoKKyAgICAgICAgcHl0aG9uLnZlcnNpb246ICcy
LjcnCisgICAgICAgIHRveC5lbnY6ICdweTI3LXR3aXN0ZWQnCisgICAgICAgIHB5dGhvbi5uZWVk
c192YzogVHJ1ZQorICAgICAgcHkyNy1wbHVnZ3ltYXN0ZXIteGRpc3Q6CisgICAgICAgIHB5dGhv
bi52ZXJzaW9uOiAnMi43JworICAgICAgICB0b3guZW52OiAncHkyNy1wbHVnZ3ltYXN0ZXIteGRp
c3QnCisgICAgICAgICMgQ292ZXJhZ2UgZm9yOgorICAgICAgICAjIC0gZXhjZXB0LUlPRXJyb3Ig
aW4gX2F0dGVtcHRfdG9fY2xvc2VfY2FwdHVyZV9maWxlIGZvciBweTIuCisgICAgICAgICMgICBB
bHNvIHNlZW4gd2l0aCBweTI3LW5vYnl0ZSAodXNpbmcgeGRpc3QpLCBhbmQgcHkyNy14ZGlzdC4K
KyAgICAgICAgIyAgIEJ1dCBubyBleGNlcHRpb24gd2l0aCBweTI3LXBleHBlY3QscHkyNy10d2lz
dGVkLHB5MjctbnVtcHkuCisgICAgICAgIFBZVEVTVF9DT1ZFUkFHRTogJzEnCisgICAgICAjIC0t
IHB5cHkyIGFuZCBweXB5MyBhcmUgZGlzYWJsZWQgZm9yIG5vdzogIzUyNzkgLS0KKyAgICAgICMg
cHlweToKKyAgICAgICMgICBweXRob24udmVyc2lvbjogJ3B5cHkyJworICAgICAgIyAgIHRveC5l
bnY6ICdweXB5JworICAgICAgIyBweXB5MzoKKyAgICAgICMgICBweXRob24udmVyc2lvbjogJ3B5
cHkzJworICAgICAgIyAgIHRveC5lbnY6ICdweXB5MycKKyAgICAgIHB5MzUteGRpc3Q6CisgICAg
ICAgIHB5dGhvbi52ZXJzaW9uOiAnMy41JworICAgICAgICB0b3guZW52OiAncHkzNS14ZGlzdCcK
KyAgICAgICAgIyBDb3ZlcmFnZSBmb3I6CisgICAgICAgICMgLSB0ZXN0X3N1cHBvcnRzX2JyZWFr
cG9pbnRfbW9kdWxlX2dsb2JhbAorICAgICAgICBQWVRFU1RfQ09WRVJBR0U6ICcxJworICAgICAg
cHkzNi14ZGlzdDoKKyAgICAgICAgcHl0aG9uLnZlcnNpb246ICczLjYnCisgICAgICAgIHRveC5l
bnY6ICdweTM2LXhkaXN0JworICAgICAgcHkzNzoKKyAgICAgICAgcHl0aG9uLnZlcnNpb246ICcz
LjcnCisgICAgICAgIHRveC5lbnY6ICdweTM3JworICAgICAgICAjIENvdmVyYWdlIGZvcjoKKyAg
ICAgICAgIyAtIF9weTM2X3dpbmRvd3Njb25zb2xlaW9fd29ya2Fyb3VuZCAod2l0aCBweTM2KykK
KyAgICAgICAgIyAtIHRlc3RfcmVxdWVzdF9nYXJiYWdlIChubyB4ZGlzdCkKKyAgICAgICAgUFlU
RVNUX0NPVkVSQUdFOiAnMScKKyAgICAgIHB5MzctbGludGluZy9kb2NzL2RvY3Rlc3Rpbmc6Cisg
ICAgICAgIHB5dGhvbi52ZXJzaW9uOiAnMy43JworICAgICAgICB0b3guZW52OiAnbGludGluZyxk
b2NzLGRvY3Rlc3RpbmcnCisgICAgICBweTM3LXR3aXN0ZWQvbnVtcHk6CisgICAgICAgIHB5dGhv
bi52ZXJzaW9uOiAnMy43JworICAgICAgICB0b3guZW52OiAncHkzNy10d2lzdGVkLHB5MzctbnVt
cHknCisgICAgICBweTM3LXBsdWdneW1hc3Rlci14ZGlzdDoKKyAgICAgICAgcHl0aG9uLnZlcnNp
b246ICczLjcnCisgICAgICAgIHRveC5lbnY6ICdweTM3LXBsdWdneW1hc3Rlci14ZGlzdCcKKyAg
ICBtYXhQYXJhbGxlbDogMTAKKworICBzdGVwczoKKyAgLSB0YXNrOiBVc2VQeXRob25WZXJzaW9u
QDAKKyAgICBpbnB1dHM6CisgICAgICB2ZXJzaW9uU3BlYzogJyQocHl0aG9uLnZlcnNpb24pJwor
ICAgICAgYXJjaGl0ZWN0dXJlOiAneDY0JworCisgIC0gc2NyaXB0OiBjaG9jbyBpbnN0YWxsIHZj
cHl0aG9uMjcKKyAgICBjb25kaXRpb246IGVxKHZhcmlhYmxlc1sncHl0aG9uLm5lZWRzX3ZjJ10s
IFRydWUpCisgICAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIFZDIGZvciBweTI3JworCisgIC0gc2Ny
aXB0OiBweXRob24gLW0gcGlwIGluc3RhbGwgdG94CisgICAgZGlzcGxheU5hbWU6ICdJbnN0YWxs
IHRveCcKKworICAtIHNjcmlwdDogfAorICAgICAgY2FsbCBzY3JpcHRzL3NldHVwLWNvdmVyYWdl
LXZhcnMuYmF0IHx8IGdvdG8gOmVvZgorICAgICAgcHl0aG9uIC1tIHRveCAtZSAkKHRveC5lbnYp
CisgICAgZGlzcGxheU5hbWU6ICdSdW4gdGVzdHMnCisKKyAgLSB0YXNrOiBQdWJsaXNoVGVzdFJl
c3VsdHNAMgorICAgIGlucHV0czoKKyAgICAgIHRlc3RSZXN1bHRzRmlsZXM6ICdidWlsZC90ZXN0
LXJlc3VsdHMvJCh0b3guZW52KS54bWwnCisgICAgICB0ZXN0UnVuVGl0bGU6ICckKHRveC5lbnYp
JworICAgIGNvbmRpdGlvbjogc3VjY2VlZGVkT3JGYWlsZWQoKQorCisgIC0gc2NyaXB0OiBjYWxs
IHNjcmlwdHNcdXBsb2FkLWNvdmVyYWdlLmJhdAorICAgIGRpc3BsYXlOYW1lOiAnUmVwb3J0IGFu
ZCB1cGxvYWQgY292ZXJhZ2UnCisgICAgY29uZGl0aW9uOiBlcSh2YXJpYWJsZXNbJ1BZVEVTVF9D
T1ZFUkFHRSddLCAnMScpCisgICAgZW52OgorICAgICAgQ09ERUNPVl9UT0tFTjogJChDT0RFQ09W
X1RPS0VOKQorICAgICAgUFlURVNUX0NPREVDT1ZfTkFNRTogJCh0b3guZW52KQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvYmVuY2gvYmVuY2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9iZW5jaC5w
eQppbmRleCA0ZTcyNDQ0ZTdkN2EyN2NmNGE4MTc0YWJkOTE2NGE1ZjMyZWJmM2VhLi40NjhlZjUy
MTk1N2YwODg0ZDgwNmI1MWQ3MmFhYWY3YTZkMjRlMDk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9iZW5jaC9iZW5jaC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9iZW5jaC5weQpAQCAtMSwz
ICsxLDQgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBpbXBvcnQgc3lzCiAKIGlmIF9fbmFt
ZV9fID09ICJfX21haW5fXyI6CkBAIC01LDcgKzYsNyBAQCBpZiBfX25hbWVfXyA9PSAiX19tYWlu
X18iOgogICAgIGltcG9ydCBweXRlc3QgICMgTk9RQQogICAgIGltcG9ydCBwc3RhdHMKIAotICAg
IHNjcmlwdCA9IHN5cy5hcmd2WzE6XSBpZiBsZW4oc3lzLmFyZ3YpID4gMSBlbHNlICJlbXB0eS5w
eSIKKyAgICBzY3JpcHQgPSBzeXMuYXJndlsxOl0gaWYgbGVuKHN5cy5hcmd2KSA+IDEgZWxzZSBb
ImVtcHR5LnB5Il0KICAgICBzdGF0cyA9IGNQcm9maWxlLnJ1bigicHl0ZXN0LmNtZGxpbmUubWFp
biglcikiICUgc2NyaXB0LCAicHJvZiIpCiAgICAgcCA9IHBzdGF0cy5TdGF0cygicHJvZiIpCiAg
ICAgcC5zdHJpcF9kaXJzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2JlbmNoX2Fy
Z2NvbXBsZXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvYmVuY2hfYXJnY29tcGxldGUucHkKaW5k
ZXggNDk1ZTJjNGVkM2IxMzA2MWZlZDhjNDE3Zjk4Y2UxNWUyNGQ5ZjRhZC4uMjk3NjM3YmFkMGQ2
NzRjMGE4Mjg5YzEwMjY3YjI4NWVjOWE1YjY3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVu
Y2gvYmVuY2hfYXJnY29tcGxldGUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvYmVuY2hfYXJn
Y29tcGxldGUucHkKQEAgLTEsMTAgKzEsOCBAQAotCi0KKyMgLSotIGNvZGluZzogdXRmLTggLSot
CiAjIDEwMDAwIGl0ZXJhdGlvbnMsIGp1c3QgZm9yIHJlbGF0aXZlIGNvbXBhcmlzb24KICMgICAg
ICAgICAgICAgICAgICAgICAgMi43LjUgICAgIDMuMy4yCiAjIEZpbGVzQ29tcGxldGVyICAgICAg
IDc1LjExMDkgICA2OS4yMTE2CiAjIEZhc3RGaWxlc0NvbXBsZXRlciAgICAwLjczODMgICAgMS4w
NzYwCi0KIGltcG9ydCB0aW1laXQKIAogaW1wb3J0cyA9IFsKQEAgLTE5LDQgKzE3LDQgQEAgcnVu
ID0gJ2ZjKCIvZCIpJwogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIHByaW50KHRp
bWVpdC50aW1laXQocnVuLCBzZXR1cD1zZXR1cCAlIGltcG9ydHNbMF0sIG51bWJlcj1jb3VudCkp
Ci0gICAgcHJpbnQoKHRpbWVpdC50aW1laXQocnVuLCBzZXR1cD1zZXR1cCAlIGltcG9ydHNbMV0s
IG51bWJlcj1jb3VudCkpKQorICAgIHByaW50KHRpbWVpdC50aW1laXQocnVuLCBzZXR1cD1zZXR1
cCAlIGltcG9ydHNbMV0sIG51bWJlcj1jb3VudCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9i
ZW5jaC9lbXB0eS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2VtcHR5LnB5CmluZGV4IGI5MDMxOTkz
NmIzZTBiMjUwMzVkNDQxNjdkYTI4MjAxYmFmOTMwNTEuLmJmZGE4ODIzNWRlYzU5NzkyMDc2YTEw
MTZjZjY4YjUzYTcxMTEwMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2VtcHR5LnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2VtcHR5LnB5CkBAIC0xLDQgKzEsMyBAQAotaW1wb3J0
IHB5Ci0KKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBmb3IgaSBpbiByYW5nZSgxMDAwKToKLSAg
ICBweS5idWlsdGluLmV4ZWNfKCJkZWYgdGVzdF9mdW5jXyVkKCk6IHBhc3MiICUgaSkKKyAgICBl
eGVjKCJkZWYgdGVzdF9mdW5jXyVkKCk6IHBhc3MiICUgaSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2JlbmNoL21hbnlwYXJhbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL21hbnlwYXJhbS5weQpp
bmRleCBhMjViMDk4ZGU4NjhlMTU5ZTQ0M2EyNDE5YzVmYzdhMTQ1Zjc3ZGNlLi5jNDdlMjVmNTE4
Mjc5NDMyYmRkMGRhNjJiNDQxMGVjMTliMTM4MzFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9i
ZW5jaC9tYW55cGFyYW0ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvbWFueXBhcmFtLnB5CkBA
IC0xLDQgKzEsNCBAQAotCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IHB5dGVzdAog
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL3NraXAucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9i
ZW5jaC9za2lwLnB5CmluZGV4IGIxMDVlNzlmODJlYmY5ZjY1Yjg2NGE5NGIxNGY0ODRkY2MyYzYz
NmMuLjI5ZTAzZTU0ZmM2NjNhY2IzYzI1MTc1Y2EyN2M4OWE2ZTA3ZDZmODAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2JlbmNoL3NraXAucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvc2tpcC5w
eQpAQCAtMSw2ICsxLDcgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBmcm9tIHNpeC5tb3Zl
cyBpbXBvcnQgcmFuZ2UKLWltcG9ydCBweXRlc3QKIAoraW1wb3J0IHB5dGVzdAogCiBTS0lQID0g
VHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvUkVBRE1FLnJzdCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2NoYW5nZWxvZy9SRUFETUUucnN0CmluZGV4IGUzNGJkNGRhMjY3Y2ZmOTA2YzZh
MzJkMTlkY2ExNzQ0ZjM5YzRjMTguLmU0NzE0MDliMDIzYzkxMDM2ZGUyNWQwNDkyNTAxMjdhYTYw
ZGU5NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy9SRUFETUUucnN0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2NoYW5nZWxvZy9SRUFETUUucnN0CkBAIC0xNCw3ICsxNCw4IEBAIEVhY2gg
ZmlsZSBzaG91bGQgYmUgbmFtZWQgbGlrZSBgYDxJU1NVRT4uPFRZUEU+LnJzdGBgLCB3aGVyZQog
KiBgYGZlYXR1cmVgYDogbmV3IHVzZXIgZmFjaW5nIGZlYXR1cmVzLCBsaWtlIG5ldyBjb21tYW5k
LWxpbmUgb3B0aW9ucyBhbmQgbmV3IGJlaGF2aW9yLgogKiBgYGJ1Z2ZpeGBgOiBmaXhlcyBhIHJl
cG9ydGVkIGJ1Zy4KICogYGBkb2NgYDogZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudCwgbGlrZSBy
ZXdvcmRpbmcgYW4gZW50aXJlIHNlc3Npb24gb3IgYWRkaW5nIG1pc3NpbmcgZG9jcy4KLSogYGBy
ZW1vdmFsYGA6IGZlYXR1cmUgZGVwcmVjYXRpb24gb3IgcmVtb3ZhbC4KKyogYGBkZXByZWNhdGlv
bmBgOiBmZWF0dXJlIGRlcHJlY2F0aW9uLgorKiBgYHJlbW92YWxgYDogZmVhdHVyZSByZW1vdmFs
LgogKiBgYHZlbmRvcmBgOiBjaGFuZ2VzIGluIHBhY2thZ2VzIHZlbmRvcmVkIGluIHB5dGVzdC4K
ICogYGB0cml2aWFsYGA6IGZpeGluZyBhIHNtYWxsIHR5cG8gb3IgaW50ZXJuYWwgY2hhbmdlIHRo
YXQgbWlnaHQgYmUgbm90ZXdvcnRoeS4KIApAQCAtMjYsNyArMjcsNyBAQCBjaGFuZ2Vsb2cgdXNp
bmcgdGhhdCBpbnN0ZWFkLgogCiBJZiB5b3UgYXJlIG5vdCBzdXJlIHdoYXQgaXNzdWUgdHlwZSB0
byB1c2UsIGRvbid0IGhlc2l0YXRlIHRvIGFzayBpbiB5b3VyIFBSLgogCi1Ob3RlIHRoYXQgdGhl
IGBgdG93bmNyaWVyYGAgdG9vbCB3aWxsIGF1dG9tYXRpY2FsbHkKLXJlZmxvdyB5b3VyIHRleHQs
IHNvIGl0IHdpbGwgd29yayBiZXN0IGlmIHlvdSBzdGljayB0byBhIHNpbmdsZSBwYXJhZ3JhcGgs
IGJ1dCBtdWx0aXBsZSBzZW50ZW5jZXMgYW5kIGxpbmtzIGFyZSBPSwotYW5kIGVuY291cmFnZWQu
IFlvdSBjYW4gaW5zdGFsbCBgYHRvd25jcmllcmBgIGFuZCB0aGVuIHJ1biBgYHRvd25jcmllciAt
LWRyYWZ0YGAKK2BgdG93bmNyaWVyYGAgcHJlc2VydmVzIG11bHRpcGxlIHBhcmFncmFwaHMgYW5k
IGZvcm1hdHRpbmcgKGNvZGUgYmxvY2tzLCBsaXN0cywgYW5kIHNvIG9uKSwgYnV0IGZvciBlbnRy
aWVzCitvdGhlciB0aGFuIGBgZmVhdHVyZXNgYCBpdCBpcyB1c3VhbGx5IGJldHRlciB0byBzdGlj
ayB0byBhIHNpbmdsZSBwYXJhZ3JhcGggdG8ga2VlcCBpdCBjb25jaXNlLiBZb3UgY2FuIGluc3Rh
bGwKK2BgdG93bmNyaWVyYGAgYW5kIHRoZW4gcnVuIGBgdG93bmNyaWVyIC0tZHJhZnRgYAogaWYg
eW91IHdhbnQgdG8gZ2V0IGEgcHJldmlldyBvZiBob3cgeW91ciBjaGFuZ2Ugd2lsbCBsb29rIGlu
IHRoZSBmaW5hbCByZWxlYXNlIG5vdGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdl
bG9nL190ZW1wbGF0ZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvX3RlbXBsYXRlLnJzdApp
bmRleCBhODk4YWJjMTVhZjE3MTIzZTdhNDdmYTRkODk2NjE1Y2E1YmMwYTVhLi41ZGU0YWU5N2Vh
OGRjN2VjZTU5MmU2Yzc4NTFhYmYzOWFmMzE4NTIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9j
aGFuZ2Vsb2cvX3RlbXBsYXRlLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvX3RlbXBs
YXRlLnJzdApAQCAtMTQsNyArMTQsNyBAQAogeyUgaWYgZGVmaW5pdGlvbnNbY2F0ZWdvcnldWydz
aG93Y29udGVudCddICV9CiB7JSBmb3IgdGV4dCwgdmFsdWVzIGluIHNlY3Rpb25zW3NlY3Rpb25d
W2NhdGVnb3J5XXxkaWN0c29ydChieT0ndmFsdWUnKSAlfQogeyUgc2V0IGlzc3VlX2pvaW5lciA9
IGpvaW5lcignLCAnKSAlfQotLSB7eyB0ZXh0IH19eyUgaWYgY2F0ZWdvcnkgIT0gJ3ZlbmRvcicg
JX0gKHslIGZvciB2YWx1ZSBpbiB2YWx1ZXN8c29ydCAlfXt7IGlzc3VlX2pvaW5lcigpIH19YHt7
IHZhbHVlIH19IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzL3t7
IHZhbHVlWzE6XSB9fT5gX3slIGVuZGZvciAlfSl7JSBlbmRpZiAlfQorLSB7JSBmb3IgdmFsdWUg
aW4gdmFsdWVzfHNvcnQgJX17eyBpc3N1ZV9qb2luZXIoKSB9fWB7eyB2YWx1ZSB9fSA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy97eyB2YWx1ZVsxOl0gfX0+YF97
JSBlbmRmb3IgJX06IHt7IHRleHQgfX0KIAogCiB7JSBlbmRmb3IgJX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2NvZGVjb3YueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY29kZWNvdi55bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTBhMzA4NTg4ZTIwMTI3Y2M3YWQwYWI1ODM1NmI2YjY3NzM5MWJlMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2NvZGVjb3YueW1sCkBAIC0wLDAgKzEsNyBAQAorY292ZXJhZ2U6
CisgIHN0YXR1czoKKyAgICBwcm9qZWN0OiB0cnVlCisgICAgcGF0Y2g6IHRydWUKKyAgICBjaGFu
Z2VzOiB0cnVlCisKK2NvbW1lbnQ6IG9mZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L01ha2VmaWxlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL01ha2VmaWxlCmluZGV4IGZhOGU4MjY2YTI5
ZTcxZjQ5ZDcwZTc5Y2FmZWUwZGE0NGU1Zjc4ZWEuLjM0MWE1Y2I4NTI0MzFkYWUwYmUwN2VkMzQ2
ZmJjMjA5NDM0YWRmODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9NYWtlZmlsZQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vTWFrZWZpbGUKQEAgLTEzLDYgKzEzLDkgQEAgUEFQRVJP
UFRfbGV0dGVyID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1sZXR0ZXIKIEFMTFNQSElOWE9QVFMgICA9
IC1kICQoQlVJTERESVIpL2RvY3RyZWVzICQoUEFQRVJPUFRfJChQQVBFUikpICQoU1BISU5YT1BU
UykgLgogCiBSRUdFTkRPQ19BUkdTIDo9IFwKKwktLW5vcm1hbGl6ZSAiL1sgXHRdK1xuL1xuLyIg
XAorCS0tbm9ybWFsaXplICJ+XCQkUkVHRU5ET0NfVE1QRElSfi9ob21lL3N3ZWV0L3Byb2plY3R+
IiBcCisJLS1ub3JtYWxpemUgIn4vcGF0aC90by9leGFtcGxlfi9ob21lL3N3ZWV0L3Byb2plY3R+
IiBcCiAJLS1ub3JtYWxpemUgIi9pbiBcZCsuXGQrIHNlY29uZHMvaW4gMC4xMiBzZWNvbmRzLyIg
XAogCS0tbm9ybWFsaXplICJAL3RtcC9weXRlc3Qtb2YtLiovcHl0ZXN0LVxkK0BQWVRFU1RfVE1Q
RElSQCIgXAogCS0tbm9ybWFsaXplICJAcHl0ZXN0LShcZCspXFwuW14gLF0rQHB5dGVzdC1cMS54
LnlAIiBcCkBAIC0zOCw4ICs0MSw5IEBAIGhlbHA6CiBjbGVhbjoKIAktcm0gLXJmICQoQlVJTERE
SVIpLyoKIAorcmVnZW46IFJFR0VORE9DX0ZJTEVTOj0qLnJzdCAqLyoucnN0CiByZWdlbjoKLQlQ
WVRIT05ET05UV1JJVEVCWVRFQ09ERT0xIFBZVEVTVF9BRERPUFQ9LXBubzpoeXBvdGhlc2lzIENP
TFVNTlM9NzYgcmVnZW5kb2MgLS11cGRhdGUgKi5yc3QgKi8qLnJzdCAke1JFR0VORE9DX0FSR1N9
CisJUFlUSE9ORE9OVFdSSVRFQllURUNPREU9MSBQWVRFU1RfQURET1BUUz0iLXBubzpoeXBvdGhl
c2lzIC1XaWdub3JlOjpweXRlc3QuUHl0ZXN0VW5rbm93bk1hcmtXYXJuaW5nIiBDT0xVTU5TPTc2
IHJlZ2VuZG9jIC0tdXBkYXRlICR7UkVHRU5ET0NfRklMRVN9ICR7UkVHRU5ET0NfQVJHU30KIAog
aHRtbDoKIAkkKFNQSElOWEJVSUxEKSAtYiBodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJ
UikvaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2tfdGhl
bWVfc3VwcG9ydC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrX3RoZW1lX3N1
cHBvcnQucHkKaW5kZXggMGRjZjUzYjc1NDJiNzA5M2UyYmQ4OTYxNWU1MzIwMjM2MDU0MTdlYi4u
YzVkY2RiZTI3MzcwYmQzNzUxZTU0MzZiYmM5ZTZiMDJmOWY4NGYxYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2tfdGhlbWVfc3VwcG9ydC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFza190aGVtZV9zdXBwb3J0LnB5CkBAIC0xLDE5ICsx
LDE4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIyBmbGFza3kgZXh0ZW5zaW9ucy4gIGZs
YXNreSBweWdtZW50cyBzdHlsZSBiYXNlZCBvbiB0YW5nbyBzdHlsZQogZnJvbSBweWdtZW50cy5z
dHlsZSBpbXBvcnQgU3R5bGUKLWZyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0ICgKLSAgICBLZXl3
b3JkLAotICAgIE5hbWUsCi0gICAgQ29tbWVudCwKLSAgICBTdHJpbmcsCi0gICAgRXJyb3IsCi0g
ICAgTnVtYmVyLAotICAgIE9wZXJhdG9yLAotICAgIEdlbmVyaWMsCi0gICAgV2hpdGVzcGFjZSwK
LSAgICBQdW5jdHVhdGlvbiwKLSAgICBPdGhlciwKLSAgICBMaXRlcmFsLAotKQorZnJvbSBweWdt
ZW50cy50b2tlbiBpbXBvcnQgQ29tbWVudAorZnJvbSBweWdtZW50cy50b2tlbiBpbXBvcnQgRXJy
b3IKK2Zyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0IEdlbmVyaWMKK2Zyb20gcHlnbWVudHMudG9r
ZW4gaW1wb3J0IEtleXdvcmQKK2Zyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0IExpdGVyYWwKK2Zy
b20gcHlnbWVudHMudG9rZW4gaW1wb3J0IE5hbWUKK2Zyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0
IE51bWJlcgorZnJvbSBweWdtZW50cy50b2tlbiBpbXBvcnQgT3BlcmF0b3IKK2Zyb20gcHlnbWVu
dHMudG9rZW4gaW1wb3J0IE90aGVyCitmcm9tIHB5Z21lbnRzLnRva2VuIGltcG9ydCBQdW5jdHVh
dGlvbgorZnJvbSBweWdtZW50cy50b2tlbiBpbXBvcnQgU3RyaW5nCitmcm9tIHB5Z21lbnRzLnRv
a2VuIGltcG9ydCBXaGl0ZXNwYWNlCiAKIAogY2xhc3MgRmxhc2t5U3R5bGUoU3R5bGUpOgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL2luZGV4LnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9pbmRleC5yc3QKaW5kZXggMTA3ZmNkMmFkMzNmN2VjY2NjY2Y2
YWIxOGU1ZDNmNDgzNzQ5YjMyZi4uNzRhZDAyODU1MDlmZTUzNjA2OTU2ODA5OGI5NjgzZjVlMzcw
OGYxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL2luZGV4LnJzdAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvaW5kZXgucnN0CkBAIC02LDYgKzYsNDcg
QEAgUmVsZWFzZSBhbm5vdW5jZW1lbnRzCiAgICA6bWF4ZGVwdGg6IDIKIAogCisgICByZWxlYXNl
LTQuNi4xMQorICAgcmVsZWFzZS00LjYuMTAKKyAgIHJlbGVhc2UtNC42LjkKKyAgIHJlbGVhc2Ut
NC42LjgKKyAgIHJlbGVhc2UtNC42LjcKKyAgIHJlbGVhc2UtNC42LjYKKyAgIHJlbGVhc2UtNC42
LjUKKyAgIHJlbGVhc2UtNC42LjQKKyAgIHJlbGVhc2UtNC42LjMKKyAgIHJlbGVhc2UtNC42LjIK
KyAgIHJlbGVhc2UtNC42LjEKKyAgIHJlbGVhc2UtNC42LjAKKyAgIHJlbGVhc2UtNC41LjAKKyAg
IHJlbGVhc2UtNC40LjIKKyAgIHJlbGVhc2UtNC40LjEKKyAgIHJlbGVhc2UtNC40LjAKKyAgIHJl
bGVhc2UtNC4zLjEKKyAgIHJlbGVhc2UtNC4zLjAKKyAgIHJlbGVhc2UtNC4yLjEKKyAgIHJlbGVh
c2UtNC4yLjAKKyAgIHJlbGVhc2UtNC4xLjEKKyAgIHJlbGVhc2UtNC4xLjAKKyAgIHJlbGVhc2Ut
NC4wLjIKKyAgIHJlbGVhc2UtNC4wLjEKKyAgIHJlbGVhc2UtNC4wLjAKKyAgIHJlbGVhc2UtMy4x
MC4xCisgICByZWxlYXNlLTMuMTAuMAorICAgcmVsZWFzZS0zLjkuMworICAgcmVsZWFzZS0zLjku
MgorICAgcmVsZWFzZS0zLjkuMQorICAgcmVsZWFzZS0zLjkuMAorICAgcmVsZWFzZS0zLjguMgor
ICAgcmVsZWFzZS0zLjguMQorICAgcmVsZWFzZS0zLjguMAorICAgcmVsZWFzZS0zLjcuNAorICAg
cmVsZWFzZS0zLjcuMworICAgcmVsZWFzZS0zLjcuMgorICAgcmVsZWFzZS0zLjcuMQorICAgcmVs
ZWFzZS0zLjcuMAorICAgcmVsZWFzZS0zLjYuNAorICAgcmVsZWFzZS0zLjYuMwogICAgcmVsZWFz
ZS0zLjYuMgogICAgcmVsZWFzZS0zLjYuMQogICAgcmVsZWFzZS0zLjYuMApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjAucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjAucnN0CmluZGV4IDI1ZjYyNTRjNTI5OWI4
ZmJiNzc4MGJmODcxYmRiMmJmYzljODhhYmMuLjFiMDE2ODg0MTQ2ZjQxNTNkZDM1NzliZDg5YjY5
M2U1ZWI2ZDdkNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTIuNC4wLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0y
LjQuMC5yc3QKQEAgLTIzLDcgKzIzLDcgQEAgYSBmdWxsIGxpc3Qgb2YgZGV0YWlscy4gIEEgZmV3
IGZlYXR1cmUgaGlnaGxpZ2h0czoKICAgY2FsbGVkIGlmIHRoZSBjb3JyZXNwb25kaW5nIHNldHVw
IG1ldGhvZCBzdWNjZWVkZWQuCiAKIC0gaW50ZWdyYXRlIHRhYi1jb21wbGV0aW9uIG9uIGNvbW1h
bmQgbGluZSBvcHRpb25zIGlmIHlvdQotICBoYXZlIGBhcmdjb21wbGV0ZSA8aHR0cDovL3B5cGku
cHl0aG9uLm9yZy9weXBpL2FyZ2NvbXBsZXRlPmBfCisgIGhhdmUgYGFyZ2NvbXBsZXRlIDxodHRw
czovL3B5cGkub3JnL3Byb2plY3QvYXJnY29tcGxldGUvPmBfCiAgIGNvbmZpZ3VyZWQuCiAKIC0g
YWxsb3cgYm9vbGVhbiBleHByZXNzaW9uIGRpcmVjdGx5IHdpdGggc2tpcGlmL3hmYWlsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjkuMC5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjkuMC5yc3QKaW5kZXggOGQ4Mjk5
OTZkODNjZGYzYmY5ZDUyYTY0OTY4NjI4MTljMzk5NDBmZS4uYzA3OWZkZjZiZmQ2MmQ4ZDYyMDM0
MDA1YWEzNzkwZTMzYWMyNzhhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi45LjAucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTIuOS4wLnJzdApAQCAtMTI0LDcgKzEyNCw3IEBAIFRoZSBweS50ZXN0IERldmVsb3Bt
ZW50IFRlYW0KICAgVGhhbmtzIGBAYmllcm5gXyBmb3IgdGhlIFBSLgogCiAqIEZpeCBgdHJhY2Vi
YWNrIHN0eWxlIGRvY3NgXyB0byBkZXNjcmliZSBhbGwgb2YgdGhlIGF2YWlsYWJsZSBvcHRpb25z
Ci0gIChhdXRvL2xvbmcvc2hvcnQvbGluZS9uYXRpdmUvbm8pLCB3aXRoIGBhdXRvYCBiZWluZyB0
aGUgZGVmYXVsdCBzaW5jZSB2Mi42LgorICAoYXV0by9sb25nL3Nob3J0L2xpbmUvbmF0aXZlL25v
KSwgd2l0aCBgYGF1dG9gYCBiZWluZyB0aGUgZGVmYXVsdCBzaW5jZSB2Mi42LgogICBUaGFua3Mg
YEBoYWNrZWJyb3RgXyBmb3IgdGhlIFBSLgogCiAqIEZpeCAoYCMxNDIyYF8pOiBqdW5pdCByZWNv
cmRfeG1sX3Byb3BlcnR5IGRvZXNuJ3QgYWxsb3cgbXVsdGlwbGUgcmVjb3JkcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xMC4wLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMTAuMC5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUz
ZGYyNzAyMTk2N2VkMzk3YTMzOWMzNzZhNjdmZTk5OGNkMGY4NwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMTAuMC5yc3QKQEAgLTAsMCAr
MSw0MyBAQAorcHl0ZXN0LTMuMTAuMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKK1RoZSBweXRlc3QgdGVhbSBpcyBwcm91ZCB0byBhbm5vdW5jZSB0aGUgMy4xMC4w
IHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGgg
bW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBk
aWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250
YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFy
ZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0
cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21w
bGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2UgdmlzaXQ6CisKKyAgICBodHRwczovL2RvY3MucHl0
ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBp
IHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBj
b250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW5kZXJzIEhvdm3D
tmxsZXIKKyogQW5kcmV1IFZhbGxib25hIFBsYXphcworKiBBbmtpdCBHb2VsCisqIEFudGhvbnkg
U290dGlsZQorKiBCZXJuYXJkbyBHb21lcworKiBCcmlhbm5hIExhdWdoZXIKKyogQnJ1bm8gT2xp
dmVpcmEKKyogRGFuaWVsIEhhaGxlcgorKiBEYXZpZCBTem90dGVuCisqIE1pY2sgS29jaAorKiBO
aWNsYXMgT2xvZnNzb24KKyogUGFsYXNoIENoYXR0ZXJqZWUKKyogUm9ubnkgUGZhbm5zY2htaWR0
CisqIFN2ZW4tSGVuZHJpayBIYWFzZQorKiBWaWxsZSBTa3l0dMOkCisqIFdpbGxpYW0gSmFtaXIg
U2lsdmEKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIFB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjEwLjEucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xMC4xLnJzdApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NTZiMjRhZTE1YmNmNzBjZGI2MzhkOWQ0OGY0MGRmNGUwZTgzZDI3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xMC4xLnJzdApA
QCAtMCwwICsxLDI0IEBACitweXRlc3QtMy4xMC4xCis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworcHl0ZXN0IDMuMTAuMSBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRv
IFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBs
YWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAor
CitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9jcy5weXRlc3Qu
b3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJp
YnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFudGhvbnkgU290dGlsZQor
KiBCb3JpcyBGZWxkCisqIEJydW5vIE9saXZlaXJhCisqIERhbmllbCBIYWhsZXIKKyogRmFiaWVu
IFpBUklGSUFOCisqIEpvbiBEdWZyZXNuZQorKiBSb25ueSBQZmFubnNjaG1pZHQKKworCitIYXBw
eSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMy5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdiYjA1YTNkNzJi
ODJmYjE4ZTU2MTA5YzVlYjBiMDBkNGVhZGM2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuNi4zLnJzdApAQCAtMCwwICsxLDI3IEBACitw
eXRlc3QtMy42LjMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitw
eXRlc3QgMy42LjMgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEg
YnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6
OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9n
IGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxv
Zy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2Us
IGFtb25nIHRoZW06CisKKyogQWRhbUVyOAorKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xp
dmVpcmEKKyogSmVhbi1QYXVsIENhbGRlcm9uZQorKiBKb24gRHVmcmVzbmUKKyogTWFyY2VsbyBE
dWFydGUgVHJldmlzYW5pCisqIE9uZMWZZWogU8O6a3VwCisqIFJvbm55IFBmYW5uc2NobWlkdAor
KiBULkUuQSBkZSBTb3V6YQorKiBWaWN0b3IgTWFyeWFtYQorCisKK0hhcHB5IHRlc3RpbmcsCitU
aGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTMuNi40LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTMuNi40LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDZjZmY1MDMwNTUzMjBhNmE5MWFiMzJh
OTgxMTVkMjQ2NDMxODMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMy42LjQucnN0CkBAIC0wLDAgKzEsMjQgQEAKK3B5dGVzdC0zLjYuNAor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCAzLjYuNCBo
YXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVh
c2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGlu
c3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxl
IGF0IGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1Ro
YW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToK
KworKiBBbnRob255IFNvdHRpbGUKKyogQmVybmhhcmQgTS4gV2llZGVtYW5uCisqIEJydW5vIE9s
aXZlaXJhCisqIERyZXcKKyogRSBIZXJzaGV5CisqIEh1Z28gTWFydGlucworKiBWbGFkIFNoY2hl
cmJpbmEKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMC5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMC5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTIyYjIyNTE3ZTljNDlkMDVmMjkxNTI0ZDkxMWQ2ZWE3NzQzZjg1MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuNy4wLnJzdApAQCAt
MCwwICsxLDQxIEBACitweXRlc3QtMy43LjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDMu
Ny4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdp
dGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFu
eSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBj
b250YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJz
IGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAg
aHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbAorCitGb3IgY29t
cGxldGUgZG9jdW1lbnRhdGlvbiwgcGxlYXNlIHZpc2l0OgorCisgICAgaHR0cDovL2RvY3MucHl0
ZXN0Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6CisKKyAg
ICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQg
dG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFsYW4KKyogQWxhbiBCcmFtbWVyCisq
IEFtbWFyIE5hamphcgorKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogSmVm
ZnJleSBSYWNrYXVja2FzCisqIEthbGUgS3VuZGVydAorKiBSb25ueSBQZmFubnNjaG1pZHQKKyog
U2VyaGlpIE1vemdob3Z5aQorKiBUYWRlayBUZWxlxbx5xYRza2kKKyogV2lsIENvb2xleQorKiBh
YnJhbW1lcgorKiBhdmlybHJtYQorKiB0dXJ0dXJpY2EKKworCitIYXBweSB0ZXN0aW5nLAorVGhl
IFB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjcuMS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0zLjcuMS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFjMzUxMjNkYmZhNjVkMGJjNDIyOTJlZjMx
YmM2NmQ2MjNmNDQwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTMuNy4xLnJzdApAQCAtMCwwICsxLDIxIEBACitweXRlc3QtMy43LjEKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgMy43LjEgaGFz
IGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNl
LCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0
YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBh
dCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFu
a3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisK
KyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5vIE9saXZlaXJhCisqIEthbGUgS3VuZGVydAorKiBS
b25ueSBQZmFubnNjaG1pZHQKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9w
bWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0zLjcuMi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMi5y
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGY3ZTA3NDRkNTBkZTg4Yjc0MjgzZGQ4MTdjMGM0MTY5NjY4MzJiMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMu
Ny4yLnJzdApAQCAtMCwwICsxLDI1IEBACitweXRlc3QtMy43LjIKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgMy43LjIgaGFzIGp1c3QgYmVlbiByZWxl
YXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3At
aW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBw
eXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5
dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBj
b250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW50aG9ueSBTb3R0
aWxlCisqIEJydW5vIE9saXZlaXJhCisqIERhbmllbCBIYWhsZXIKKyogSm9zaCBIb2xsYW5kCisq
IFJvbm55IFBmYW5uc2NobWlkdAorKiBTYW5rdCBQZXRlcnNidWcKKyogV2VzIFRob21hcworKiB0
dXJ0dXJpY2EKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFt
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMy5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMy5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDU0ZDRmZGZlZTczOTg0MzcwNDhkYWQwMTM2ZGJkNTEzZWM0MDY2NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuNy4zLnJzdApA
QCAtMCwwICsxLDMyIEBACitweXRlc3QtMy43LjMKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCitweXRlc3QgMy43LjMgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQ
eVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFj
ZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKwor
VGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcv
ZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRl
ZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW5kcmV3IENoYW1waW9uCisqIEFu
dGhvbnkgU290dGlsZQorKiBCcnVubyBPbGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisqIEdhbmRh
bGYgU2F4ZQorKiBKZW5uaWZlciBSaW5rZXIKKyogTmF0YW4gTGFvCisqIE9uZMWZZWogU8O6a3Vw
CisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBTYW5rdCBQZXRlcnNidWcKKyogVHlsZXIgUmljaGFy
ZAorKiBWaWN0b3IgTWFyeWFtYQorKiBWbGFkIFNoY2hlcmJpbmEKKyogdHVydHVyaWNhCisqIHdp
bSBnbGVubgorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuNy40LnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuNy40LnJzdApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wYWI4OTM4ZjRmNjk5ZGE0OWE5NGFlNDU4NmI5NWU0ZmY1M2Q1NzBkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy43LjQucnN0CkBA
IC0wLDAgKzEsMjIgQEAKK3B5dGVzdC0zLjcuNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisKK3B5dGVzdCAzLjcuNCBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5
UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNl
bWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitU
aGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9jcy5weXRlc3Qub3Jn
L2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0
ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFudGhvbnkgU290dGlsZQorKiBC
cnVubyBPbGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisqIEppcmkgS3VuY2FyCisqIFN0ZXZlIFBp
ZXJjeQorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuOC4wLnJzdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuOC4wLnJzdApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZmMzNDRlYTIzZTg4MmZkNGRkMzdiZWUyODQyOWM3Mjc3MTExM2YyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy44LjAucnN0CkBAIC0w
LDAgKzEsMzggQEAKK3B5dGVzdC0zLjguMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKK1RoZSBweXRlc3QgdGVhbSBpcyBwcm91ZCB0byBhbm5vdW5jZSB0aGUgMy44
LjAgcmVsZWFzZSEKKworcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0
aCBtb3JlIHRoYW4gYSAyMDAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55
IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KKworVGhpcyByZWxlYXNlIGNv
bnRhaW5zIGEgbnVtYmVyIG9mIGJ1Z3MgZml4ZXMgYW5kIGltcHJvdmVtZW50cywgc28gdXNlcnMg
YXJlIGVuY291cmFnZWQKK3RvIHRha2UgYSBsb29rIGF0IHRoZSBDSEFOR0VMT0c6CisKKyAgICBo
dHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwKKworRm9yIGNv
bXBsZXRlIGRvY3VtZW50YXRpb24sIHBsZWFzZSB2aXNpdDoKKworICAgIGh0dHBzOi8vZG9jcy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC8KKworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5
cGkgdmlhOgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hv
IGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNv
dHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogQ3JhenlNZXJseW4KKyogRGFuaWVsIEhhaGxlcgor
KiBGYWJpbyBaYWRyb3pueQorKiBKZWZmcmV5IFJhY2thdWNrYXMKKyogUm9ubnkgUGZhbm5zY2ht
aWR0CisqIFZpcmdpbCBEdXByYXMKKyogZGhpcmVuc3IKKyogaG9lZmxpbmcKKyogd2ltIGdsZW5u
CisKKworSGFwcHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy44LjEucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy44LjEucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNl
MDVlNThjYjNmMDU1MzA0OTdiM2IzNDVhYjk4ODRjNzc5ZmI1ZjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjguMS5yc3QKQEAgLTAsMCAr
MSwyNSBAQAorcHl0ZXN0LTMuOC4xCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworcHl0ZXN0IDMuOC4xIGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKwor
VGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBU
byB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisKK1RoZSBmdWxs
IGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0
ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0
aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW5raXQgR29lbAorKiBBbnRob255IFNvdHRp
bGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorKiBNYXhpbWlsaWFuIEFsYmVy
dAorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogV2lsbGlhbSBKYW1pciBTaWx2YQorKiB3aW0gZ2xl
bm4KKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjguMi5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjguMi5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTI0YzMzYWE0MGVhOTNlZWNiYTY2ODdhMjJiNjgzMTVhY2IwZmRkOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuOC4yLnJzdApAQCAtMCww
ICsxLDI4IEBACitweXRlc3QtMy44LjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitweXRlc3QgMy44LjIgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgor
CitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQu
IFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1
bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRv
IHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbmtpdCBHb2VsCisqIEFudGhvbnkgU290
dGlsZQorKiBCcnVubyBPbGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisqIERlbmlzIE90a2lkYWNo
CisqIEhhcnJ5IFBlcmNpdmFsCisqIEplZmZyZXkgUmFja2F1Y2thcworKiBKb3NlIENhcmxvcyBN
ZW5lemVzCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBaYWMtSEQKKyogaXdhbmIKKworCitIYXBw
eSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMC5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRjZmJlOTAzN2Rm
OTcwYzZmODhhYzcyMmMyY2ZjNjEzMTk2OWMzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuOS4wLnJzdApAQCAtMCwwICsxLDQzIEBACitw
eXRlc3QtMy45LjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitU
aGUgcHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDMuOS4wIHJlbGVhc2UhCisK
K3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEg
MjAwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50
ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250YWlucyBhIG51bWJl
ciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2Vk
Cit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0cHM6Ly9kb2NzLnB5
dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVu
dGF0aW9uLCBwbGVhc2UgdmlzaXQ6CisKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3QvCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAg
IHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0
byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW5kcmVhIENpbWF0b3JpYnVzCisqIEFu
a2l0IEdvZWwKKyogQW50aG9ueSBTb3R0aWxlCisqIEJlbiBFeWFsCisqIEJydW5vIE9saXZlaXJh
CisqIERhbmllbCBIYWhsZXIKKyogSmVmZnJleSBSYWNrYXVja2FzCisqIEpvc2UgQ2FybG9zIE1l
bmV6ZXMKKyogS3lsZSBBbHRlbmRvcmYKKyogTmlrbGFzIEpRCisqIFBhbGFzaCBDaGF0dGVyamVl
CisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBUaG9tYXMgSGVzcworKiBUaG9tYXMgSGlzY2gKKyog
VG9tZXIgS2VyZW4KKyogVmljdG9yIE1hcnlhbWEKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIFB5
dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0zLjkuMS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0zLjkuMS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA1MGU0NjUzMDU3MjM0MGFhMmZiODQwODQyYmJl
NjgxYjI4MDI3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTMuOS4xLnJzdApAQCAtMCwwICsxLDIwIEBACitweXRlc3QtMy45LjEKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgMy45LjEgaGFzIGp1
c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBi
ZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxs
IC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBo
dHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5r
cyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKwor
KiBCcnVubyBPbGl2ZWlyYQorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogVGhvbWFzIEhpc2NoCisK
KworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy45LjIucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy45LjIucnN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0NDA4
MzFjYjkzMjQxMDM4MzM3ZTY0ZDA4YzRmMzJhYWUyNjJhNmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMi5yc3QKQEAgLTAsMCArMSwy
MyBAQAorcHl0ZXN0LTMuOS4yCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworcHl0ZXN0IDMuOS4yIGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhp
cyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1
cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisKK1RoZSBmdWxsIGNo
YW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0
L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlz
IHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW5raXQgR29lbAorKiBBbnRob255IFNvdHRpbGUK
KyogQnJ1bm8gT2xpdmVpcmEKKyogUm9ubnkgUGZhbm5zY2htaWR0CisqIFZpbmNlbnQgQmFyYmFy
ZXNpCisqIHlrYW50b3IKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVu
dCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0z
LjkuMy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMy5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGQ4NGI0Y2FiY2I3ZjE5MDdhYTNhNTc2YTM3MzQ2NGVmNmFhZDY0NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuOS4z
LnJzdApAQCAtMCwwICsxLDI0IEBACitweXRlc3QtMy45LjMKKz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgMy45LjMgaGFzIGp1c3QgYmVlbiByZWxlYXNl
ZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4g
cmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRl
c3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0
ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNv
bnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbmRyZWFzIFByb2Zv
dXMKKyogQW5raXQgR29lbAorKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyog
RGFuaWVsIEhhaGxlcgorKiBKb24gRHVmcmVzbmUKKyogUm9ubnkgUGZhbm5zY2htaWR0CisKKwor
SGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4wLjAucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4wLjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1YWQ2OWI1
ZmQ2NTM5NTcwMTg0YzU2Mzg2MjRhMzU3NWMxYTAzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjAuMC5yc3QKQEAgLTAsMCArMSwzMCBA
QAorcHl0ZXN0LTQuMC4wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KworVGhlIHB5dGVzdCB0ZWFtIGlzIHByb3VkIHRvIGFubm91bmNlIHRoZSA0LjAuMCByZWxlYXNl
IQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhh
biBhIDIwMDAgdGVzdHMKK2FnYWluc3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50
IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgorCitUaGlzIHJlbGVhc2UgY29udGFpbnMgYSBu
dW1iZXIgb2YgYnVncyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzLCBzbyB1c2VycyBhcmUgZW5jb3Vy
YWdlZAordG8gdGFrZSBhIGxvb2sgYXQgdGhlIENIQU5HRUxPRzoKKworICAgIGh0dHBzOi8vZG9j
cy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbAorCitGb3IgY29tcGxldGUgZG9j
dW1lbnRhdGlvbiwgcGxlYXNlIHZpc2l0OgorCisgICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcv
ZW4vbGF0ZXN0LworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6CisK
KyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0
ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEJydW5vIE9saXZlaXJhCisqIERh
bmllbCBIYWhsZXIKKyogUm9ubnkgUGZhbm5zY2htaWR0CisKKworSGFwcHkgdGVzdGluZywKK1Ro
ZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtNC4wLjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtNC4wLjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxYjIyMmMwM2I1MGZjNDQwODVmM2ZkMThk
ZDY0NTM0YzMzY2JiZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS00LjAuMS5yc3QKQEAgLTAsMCArMSwyMyBAQAorcHl0ZXN0LTQuMC4xCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDQuMC4xIGhh
cyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFz
ZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5z
dGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUg
YXQgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitU
aGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06
CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5vIE9saXZlaXJhCisqIERhbmllbCBIYWhsZXIK
KyogTWljaGFlbCBELiBIb3lsZQorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogU2xhbQorCisKK0hh
cHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuMC4yLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuMC4yLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjZlNGJlNzE4
M2ZlODg0N2JhYWQ4ZjJkZWM4MGE3OWY4YWFlMjQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4wLjIucnN0CkBAIC0wLDAgKzEsMjQgQEAK
K3B5dGVzdC00LjAuMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK
K3B5dGVzdCA0LjAuMiBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMg
YSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFk
ZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vs
b2cgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFu
Z2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxl
YXNlLCBhbW9uZyB0aGVtOgorCisqIEFudGhvbnkgU290dGlsZQorKiBCcnVubyBPbGl2ZWlyYQor
KiBEYW5pZWwgSGFobGVyCisqIFBlZHJvIEFsZ2FydmlvCisqIFJvbm55IFBmYW5uc2NobWlkdAor
KiBUb21lciBLZXJlbgorKiBZYXNoIFRvZGkKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVz
dCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS00LjEuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS00LjEuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdhMDc2ZjYxYzkxMWJhZmE0ZjYwNjlmODlkYjgzZDQ5
MjE5M2UzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTQuMS4wLnJzdApAQCAtMCwwICsxLDQ0IEBACitweXRlc3QtNC4xLjAKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0gaXMgcHJv
dWQgdG8gYW5ub3VuY2UgdGhlIDQuMS4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQ
eXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdhaW5zdCBp
dHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9y
bXMuCisKK1RoaXMgcmVsZWFzZSBjb250YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBp
bXByb3ZlbWVudHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0
aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2No
YW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2UgdmlzaXQ6
CisKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0FzIHVzdWFsLCB5
b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVz
dAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25n
IHRoZW06CisKKyogQWRhbSBKb2huc29uCisqIEFseSBTaXZqaQorKiBBbmRyZXkgUGFyYW1vbm92
CisqIEFudGhvbnkgU290dGlsZQorKiBCcnVubyBPbGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisq
IERhdmlkIFZvCisqIEh5dW5jaGVsIEtpbQorKiBKZWZmcmV5IFJhY2thdWNrYXMKKyogS2FuZ3Vy
b3MKKyogTmljaG9sYXMgRGV2ZW5pc2gKKyogUGVkcm8gQWxnYXJ2aW8KKyogUmFuZHkgQmFybG93
CisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBUb21lciBLZXJlbgorKiBmZXVpbGxlbW9ydGUKKyog
d2ltIGdsZW5uCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVh
bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4xLjEu
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4xLjEucnN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgwNjQ0ZmM4NGVmNWNkOWQ3NTIwNGU1Mjg0MDcyYWMyZGFiMzQ1YTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjEuMS5yc3QK
QEAgLTAsMCArMSwyNyBAQAorcHl0ZXN0LTQuMS4xCis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworcHl0ZXN0IDQuMS4xIGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8g
UHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxh
Y2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisK
K1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly9kb2NzLnB5dGVzdC5v
cmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmli
dXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisq
IEFudG9uIExvZGRlcgorKiBCcnVubyBPbGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisqIERhdmlk
IFZvCisqIE9zY2FyIEJlbmphbWluCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBWaWN0b3IgTWFy
eWFtYQorKiBZb2F2IENhc3BpCisqIGRtaXRyeS5keWdhbG8KKworCitIYXBweSB0ZXN0aW5nLAor
VGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS00LjIuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS00LjIuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMyNjJjMWUwMWJkMjBmZjg3OGFmYjQ5
MjFiNDhmODcxNWMwNmVmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTQuMi4wLnJzdApAQCAtMCwwICsxLDM3IEBACitweXRlc3QtNC4yLjAK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRl
YW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDQuMi4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBh
IG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cwor
YWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFu
ZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250YWlucyBhIG51bWJlciBvZiBidWdzIGZp
eGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEg
bG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVh
c2UgdmlzaXQ6CisKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0Fz
IHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxs
IC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVh
c2UsIGFtb25nIHRoZW06CisKKyogQWRhbSBVaGxpcgorKiBBbnRob255IFNvdHRpbGUKKyogQnJ1
bm8gT2xpdmVpcmEKKyogQ2hyaXN0b3BoZXIgRGlnbmFtCisqIERhbmllbCBIYWhsZXIKKyogSm9z
ZXBoIEh1bmtlbGVyCisqIEtyaXN0b2ZmZXIgTm9yZHN0cm9lbQorKiBSb25ueSBQZmFubnNjaG1p
ZHQKKyogVGhvbWFzIEhpc2NoCisqIHdpbSBnbGVubgorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUg
UHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTQuMi4xLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTQuMi4xLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWVjMDIyZGYwYmU5ZWZhOGRlNjgwMDRmNzFh
NTA5NDg4MTY1ZGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtNC4yLjEucnN0CkBAIC0wLDAgKzEsMzAgQEAKK3B5dGVzdC00LjIuMQorPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCA0LjIuMSBoYXMg
anVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2Us
IGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3Rh
bGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0
IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhh
bmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgor
CisqIEFudGhvbnkgU290dGlsZQorKiBBcmVsIENvcmRlcm8KKyogQnJ1bm8gT2xpdmVpcmEKKyog
RGFuaWVsIEhhaGxlcgorKiBIb2xnZXIgS29ocgorKiBLZXZpbiBKLiBGb2xleQorKiBOaWNrIE11
cnBoeQorKiBQYXdlxYIgU3RyYWRvbXNraQorKiBSYXBoYWVsIFBpZXJ6aW5hCisqIFJvbm55IFBm
YW5uc2NobWlkdAorKiBTYW0gQnJpZ2h0bWFuCisqIFRob21hcyBIaXNjaAorKiBaYWMgSGF0Zmll
bGQtRG9kZHMKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFt
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjMuMC5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjMuMC5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTkzOTM4MTQ4NDYzZWNjMTliZGQyMTAxYzQ1NTEzYWY0ZDE1Yzc0YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuMy4wLnJzdApA
QCAtMCwwICsxLDM2IEBACitweXRlc3QtNC4zLjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhl
IDQuMy4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29s
IHdpdGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24g
bWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFz
ZSBjb250YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVz
ZXJzIGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisg
ICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0Zv
ciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2UgdmlzaXQ6CisKKyAgICBodHRwczovL2Rv
Y3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJv
bSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxs
IHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW5kcmFz
IE1pdHpraQorKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogQ2hyaXN0aWFu
IEZldHplcgorKiBEYW5pZWwgSGFobGVyCisqIEdyeWdvcmlpIEllcm1vbGVua28KKyogUi4gQWxl
eCBNYXRldmlzaAorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogY2NsYXVzcworCisKK0hhcHB5IHRl
c3RpbmcsCitUaGUgUHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuMy4xLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTQuMy4xLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWQxNGZmZmVkOWQ4OTUz
OWI3MmUzM2JkODJjNTU2Zjk5ZjVlMmViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4zLjEucnN0CkBAIC0wLDAgKzEsMjkgQEAKK3B5dGVz
dC00LjMuMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVz
dCA0LjMuMSBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWct
Zml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisK
KyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMg
YXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cu
aHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBh
bW9uZyB0aGVtOgorCisqIEFuZHJhcyBNaXR6a2kKKyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5v
IE9saXZlaXJhCisqIERhbmllbCBIYWhsZXIKKyogRGFuaWxvIEhvcnRhCisqIEdyeWdvcmlpIEll
cm1vbGVua28KKyogSmVmZiBIYWxlCisqIEt5bGUgQWx0ZW5kb3JmCisqIFN0ZXBoYW4gSG95ZXIK
KyogWmFjIEhhdGZpZWxkLURvZGRzCisqIFphYy1IRAorKiBzb25nYm93ZW4KKworCitIYXBweSB0
ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM1YmNiYzdkMzVhMzNi
MGU3NTYyM2M0ZWJjMjhjZjgyMjEyMjhkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNC4wLnJzdApAQCAtMCwwICsxLDM5IEBACitweXRl
c3QtNC40LjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUg
cHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDQuNC4wIHJlbGVhc2UhCisKK3B5
dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMjAw
MCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJw
cmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250YWlucyBhIG51bWJlciBv
ZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCit0
byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0cHM6Ly9kb2NzLnB5dGVz
dC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0
aW9uLCBwbGVhc2UgdmlzaXQ6CisKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRl
c3QvCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBp
cCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0
aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEFwYURvY3Rv
cgorKiBCZXJuaGFyZCBNLiBXaWVkZW1hbm4KKyogQnJpYW4gU2tpbm4KKyogQnJ1bm8gT2xpdmVp
cmEKKyogRGFuaWVsIEhhaGxlcgorKiBHYXJ5IFR5bGVyCisqIEplb25nIFl1bldvbgorKiBNaXJv
IEhyb27EjW9rCisqIFRha2FmdW1pIEFyYWtha2kKKyogaGVucnlraXJvbmRlCisqIHNtaGVpZHJp
Y2gKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIFB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMS5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMS5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTJjMGVlNzc5OGI2ZTIxYjMzM2U5NmYzYjdjNDU2NTdiOTdjNDUwNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNC4xLnJzdApAQCAtMCww
ICsxLDIwIEBACitweXRlc3QtNC40LjEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitweXRlc3QgNC40LjEgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgor
CitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQu
IFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1
bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRv
IHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8g
T2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0
IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTQuNC4yLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTQuNC4yLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmUyZGFjNTZiM2E5NTJmNmM0ZDk4MDVlYmEzNmJmNTJh
MWZlZWVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtNC40LjIucnN0CkBAIC0wLDAgKzEsMzMgQEAKK3B5dGVzdC00LjQuMgorPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCA0LjQuMiBoYXMganVzdCBi
ZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5n
IGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11
cGdyYWRlIHB5dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHBz
Oi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRv
IGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFs
bGFuIExld2lzCisqIEFudGhvbnkgU290dGlsZQorKiBCcnVubyBPbGl2ZWlyYQorKiBEYW1pYW5T
a3J6eXBjemFrCisqIERhbmllbCBIYWhsZXIKKyogRG9uIEtpcmtieQorKiBEb3VnbGFzIFRob3IK
KyogSHVnbworKiBJbHlhIEtvbnN0YW50aW5vdgorKiBKb24gRHVmcmVzbmUKKyogTWF0dCBDb29w
ZXIKKyogTmlrb2xheSBLb25kcmF0eWV2CisqIE9uZMWZZWogU8O6a3VwCisqIFBldGVyIFNjaHV0
dAorKiBSb21haW4gQ2hvc3NhcnQKKyogU2l0YWt0aWYKKworCitIYXBweSB0ZXN0aW5nLAorVGhl
IHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS00LjUuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS00LjUuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg0NTc5YWM0MTlhN2NiOGRmZDgyZjMyNGQx
MTA1OWQ4ZTM2NmNhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTQuNS4wLnJzdApAQCAtMCwwICsxLDM1IEBACitweXRlc3QtNC41LjAKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0g
aXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDQuNS4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1h
dHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdh
aW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBw
bGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVz
IGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9v
ayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0
ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2Ug
dmlzaXQ6CisKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0FzIHVz
dWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1V
IHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2Us
IGFtb25nIHRoZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5vIE9saXZlaXJhCisqIERh
bmllbCBIYWhsZXIKKyogRmxvcmlzIEJydXlub29naGUKKyogUHVsa2l0IEdveWFsCisqIFNhbXVl
bCBTZWFybGVzLUJyeWFudAorKiBaYWMgSGF0ZmllbGQtRG9kZHMKKyogWmFjLUhECisKKworSGFw
cHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjAucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3M2Y1ZDY2ZWI3
NGFlZTU5MmJkNjI4M2FjOWU0OTIyODc3ZjY2ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMC5yc3QKQEAgLTAsMCArMSw0MyBAQAor
cHl0ZXN0LTQuNi4wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
VGhlIHB5dGVzdCB0ZWFtIGlzIHByb3VkIHRvIGFubm91bmNlIHRoZSA0LjYuMCByZWxlYXNlIQor
CitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBh
IDIwMDAgdGVzdHMKK2FnYWluc3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGlu
dGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgorCitUaGlzIHJlbGVhc2UgY29udGFpbnMgYSBudW1i
ZXIgb2YgYnVncyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzLCBzbyB1c2VycyBhcmUgZW5jb3VyYWdl
ZAordG8gdGFrZSBhIGxvb2sgYXQgdGhlIENIQU5HRUxPRzoKKworICAgIGh0dHBzOi8vZG9jcy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbAorCitGb3IgY29tcGxldGUgZG9jdW1l
bnRhdGlvbiwgcGxlYXNlIHZpc2l0OgorCisgICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0LworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6CisKKyAg
ICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQg
dG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFraW9taSBLYW1ha3VyYQorKiBBbnRo
b255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorKiBEYXZpZCBS
w7Z0aGxpc2JlcmdlcgorKiBFdmFuIEtlcG5lcgorKiBKZWZmcmV5IFJhY2thdWNrYXMKKyogTXlD
b21wdXRlcgorKiBOaWtpdGEgS3Jva29zaAorKiBSYXVsIFRhbWJyZQorKiBUaG9tYXMgSGlzY2gK
KyogVGltIEhvZmZtYW5uCisqIFRvbWVyIEtlcmVuCisqIFZpY3RvciBNYXJ5YW1hCisqIGRhbmll
bHgxMjMKKyogb2xlZy15ZWdvcm92CisKKworSGFwcHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2
ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtNC42LjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42
LjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc4ZDAxNzU0NGQyMGRmMWUzMzJmYzUwMWYxMDhmM2NhZGIzNjMy
MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS00LjYuMS5yc3QKQEAgLTAsMCArMSwxOSBAQAorcHl0ZXN0LTQuNi4xCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDQuNi4xIGhhcyBqdXN0IGJlZW4g
cmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBk
cm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3Jh
ZGUgcHl0ZXN0CisKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly9k
b2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxs
IHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW50aG9u
eSBTb3R0aWxlCisqIEJydW5vIE9saXZlaXJhCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRl
c3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtNC42LjEwLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTQuNi4xMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc5MzhiODc1MWEyNzg4OTcwY2UwYWNkYzk5ZDhj
MGVhZTg1MTJkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTQuNi4xMC5yc3QKQEAgLTAsMCArMSwyMCBAQAorcHl0ZXN0LTQuNi4xMAorPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCA0LjYuMTAgaGFz
IGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNl
LCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0
YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBh
dCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1Ro
YW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToK
KworKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogRmVybmFuZG8gTWV6CisK
KworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjExLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi4xMS5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc2
NTg0YmRmNTIzNTU1NzgwMjc0MDYwZDMzM2NkMjg0MTJjMjdiYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi4xMS5yc3QKQEAgLTAsMCAr
MSwyMCBAQAorcHl0ZXN0LTQuNi4xMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKK3B5dGVzdCA0LjYuMTEgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgor
CitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQu
IFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1
bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRv
IHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8g
T2xpdmVpcmEKKyogU3ZpYXRvc2xhdiBTeWRvcmVua28KKworCitIYXBweSB0ZXN0aW5nLAorVGhl
IHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS00LjYuMi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS00LjYuMi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUyNjU3OWI5ZTc3OTBjZDMxMTY0NjE3MWYw
M2Y1YWExYjMxYmFmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTQuNi4yLnJzdApAQCAtMCwwICsxLDE4IEBACitweXRlc3QtNC42LjIKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgNC42LjIgaGFz
IGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNl
LCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0
YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBh
dCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1Ro
YW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToK
KworKiBBbnRob255IFNvdHRpbGUKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZl
bG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS00LjYuMy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYu
My5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGJmYjM1NWExNWFkOWRjZTUyOTBmNmQ3NmNmMTE5M2Y0ZDBjODA4
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTQuNi4zLnJzdApAQCAtMCwwICsxLDIxIEBACitweXRlc3QtNC42LjMKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgNC42LjMgaGFzIGp1c3QgYmVlbiBy
ZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRy
b3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFk
ZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2Rv
Y3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwg
d2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255
IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorKiBEaXJrIFRob21h
cworCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi40LnJzdCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi40LnJzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YjM1ZWQ0ZjBkNGMwMjZkYWVkNzM4ZGU5MGVlOTk0MGZjNjI5OGFjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjQucnN0CkBAIC0wLDAg
KzEsMjIgQEAKK3B5dGVzdC00LjYuNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKK3B5dGVzdCA0LjYuNCBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisK
K1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4g
VG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVs
bCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xh
dGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8g
dGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFudGhvbnkgU290dGlsZQorKiBCcnVubyBP
bGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisqIFRob21hcyBHcmFpbmdlcgorKiBaYWMgSGF0Zmll
bGQtRG9kZHMKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFt
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuNS5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuNS5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjk5OGQ0ZTRjNWYwYTE0NWJlMzhkMjM5OTJjNjc4Yzc3ZTZlZjk3OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi41LnJzdApA
QCAtMCwwICsxLDIxIEBACitweXRlc3QtNC42LjUKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCitweXRlc3QgNC42LjUgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQ
eVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFj
ZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKwor
VGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9y
Zy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1
dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUKKyog
QnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorKiBUaG9tYXMgR3JhaW5nZXIKKworCitI
YXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuNi5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuNi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ3YTMxNjk1
YjJhZGZlOTQ4N2Y2ZjVhMzg1MDc4OTcwMWJiNDA2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi42LnJzdApAQCAtMCwwICsxLDIwIEBA
CitweXRlc3QtNC42LjYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CitweXRlc3QgNC42LjYgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlz
IGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3Jh
ZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdl
bG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hh
bmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVs
ZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEK
KyogTWljaGFlbCBHb2VyegorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3Bt
ZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTQuNi43LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi43LnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wZTZjZjZhOTUwYTA4NDgyNGJiNTA0NzBjY2FhMDIxNDFiOWZmOWViCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42
LjcucnN0CkBAIC0wLDAgKzEsMTkgQEAKK3B5dGVzdC00LjYuNworPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCA0LjYuNyBoYXMganVzdCBiZWVuIHJlbGVh
c2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1p
biByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5
dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9jcy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8g
Y29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEJydW5vIE9saXZl
aXJhCisqIERhbmllbCBIYWhsZXIKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZl
bG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS00LjYuOC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYu
OC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2MwNGU1ZGJlOWI3MWNiMmQwMGYwNjMxODU2YmFiZWVmNDc2OTVi
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTQuNi44LnJzdApAQCAtMCwwICsxLDIwIEBACitweXRlc3QtNC42LjgKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgNC42LjggaGFzIGp1c3QgYmVlbiBy
ZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRy
b3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFk
ZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2Rv
Y3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwg
d2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255
IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogUnlhbiBNYXN0CisKKworSGFwcHkgdGVzdGlu
ZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjkucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtNC42LjkucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlMDQ3OGM1MmQ5MmY4YWE4M2I2
ZGJlOGMzMDBkZTBkMTliOGIxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuOS5yc3QKQEAgLTAsMCArMSwyMSBAQAorcHl0ZXN0LTQu
Ni45Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDQu
Ni45IGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXgg
cmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBw
aXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFp
bGFibGUgYXQgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1s
LgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25n
IHRoZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5vIE9saXZlaXJhCisqIEZlbGl4IFlh
bgorKiBIdWdvCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVh
bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3czYy1pbXBvcnQubG9nCmluZGV4IDQ2NGM4
YmNkNGRjNjczNGIxNTdlZjFkMzgzMGYwOTM5YWVlNWM1ZDQuLjY5NmM3YTgyNWU3MmMzZDZkYmNk
ZTIxOGY0ZDZhZDA2ZTIzMGE2YzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvdzNj
LWltcG9ydC5sb2cKQEAgLTY3LDYgKzY3LDggQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjEuMS5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjEuMi5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0zLjEuMy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0z
LjEwLjAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xMC4xLnJz
dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi4wLnJzdAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi4xLnJzdAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi4yLnJzdApAQCAtODQsNCArODYsNDMgQEAgTGlzdCBv
ZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMC5yc3QK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMS5yc3QKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0zLjYuNC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0zLjcuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMS5y
c3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMi5yc3QKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMy5yc3QKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuNC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0zLjguMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0zLjguMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjgu
Mi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMC5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMS5yc3QKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjkuMy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS00LjAuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00
LjAuMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjAuMi5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjEuMC5yc3QKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjEuMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS00LjIuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS00LjIuMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS00LjMuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjMuMS5y
c3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMC5yc3QKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMS5yc3QKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS00LjUuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS00LjYuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYu
MS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMTAucnN0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjExLnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi4yLnJzdAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTQuNi4zLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTQuNi40LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTQuNi41LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi42LnJz
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi43LnJzdAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi44LnJzdAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi45LnJzdAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9zcHJpbnQyMDE2LnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fzc2Vy
dC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYXNzZXJ0LnJzdAppbmRleCBlMGU5YjkzMDU4NzVl
ZjgxMmQ4OTYyYjA2ZDI5OGQ1MDI4YmI0NDNiLi4xZTA2ZDk3NTdiMzBiMTQ4ZDVhZjk5NjYyOTY0
NTBmYjEyMjhlZjZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYXNzZXJ0LnJzdAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYXNzZXJ0LnJzdApAQCAtMTIsMjIgKzEyLDI4IEBAIEFz
c2VydGluZyB3aXRoIHRoZSBgYGFzc2VydGBgIHN0YXRlbWVudAogCiBgYHB5dGVzdGBgIGFsbG93
cyB5b3UgdG8gdXNlIHRoZSBzdGFuZGFyZCBweXRob24gYGBhc3NlcnRgYCBmb3IgdmVyaWZ5aW5n
CiBleHBlY3RhdGlvbnMgYW5kIHZhbHVlcyBpbiBQeXRob24gdGVzdHMuICBGb3IgZXhhbXBsZSwg
eW91IGNhbiB3cml0ZSB0aGUKLWZvbGxvd2luZzo6Citmb2xsb3dpbmc6CisKKy4uIGNvZGUtYmxv
Y2s6OiBweXRob24KIAogICAgICMgY29udGVudCBvZiB0ZXN0X2Fzc2VydDEucHkKICAgICBkZWYg
ZigpOgogICAgICAgICByZXR1cm4gMwogCisKICAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgogICAg
ICAgICBhc3NlcnQgZigpID09IDQKIAogdG8gYXNzZXJ0IHRoYXQgeW91ciBmdW5jdGlvbiByZXR1
cm5zIGEgY2VydGFpbiB2YWx1ZS4gSWYgdGhpcyBhc3NlcnRpb24gZmFpbHMKLXlvdSB3aWxsIHNl
ZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiBjYWxsOjoKK3lvdSB3aWxsIHNlZSB0
aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiBjYWxsOgorCisuLiBjb2RlLWJsb2NrOjog
cHl0ZXN0CiAKICAgICAkIHB5dGVzdCB0ZXN0X2Fzc2VydDEucHkKICAgICA9PT09PT09PT09PT09
PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54Lnks
IHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBp
bmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55
LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5w
eXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVk
IDEgaXRlbQogCiAgICAgdGVzdF9hc3NlcnQxLnB5IEYgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC00MCw3ICs0Niw3IEBAIHlvdSB3
aWxsIHNlZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiBjYWxsOjoKICAgICBFICAg
ICAgIGFzc2VydCAzID09IDQKICAgICBFICAgICAgICArICB3aGVyZSAzID0gZigpCiAKLSAgICB0
ZXN0X2Fzc2VydDEucHk6NTogQXNzZXJ0aW9uRXJyb3IKKyAgICB0ZXN0X2Fzc2VydDEucHk6Njog
QXNzZXJ0aW9uRXJyb3IKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEgZmFpbGVkIGlu
IDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKIGBgcHl0ZXN0YGAgaGFz
IHN1cHBvcnQgZm9yIHNob3dpbmcgdGhlIHZhbHVlcyBvZiB0aGUgbW9zdCBjb21tb24gc3ViZXhw
cmVzc2lvbnMKQEAgLTQ5LDcgKzU1LDkgQEAgb3BlcmF0b3JzLiAoU2VlIDpyZWY6YHRicmVwb3J0
ZGVtb2ApLiAgVGhpcyBhbGxvd3MgeW91IHRvIHVzZSB0aGUKIGlkaW9tYXRpYyBweXRob24gY29u
c3RydWN0cyB3aXRob3V0IGJvaWxlcnBsYXRlIGNvZGUgd2hpbGUgbm90IGxvc2luZwogaW50cm9z
cGVjdGlvbiBpbmZvcm1hdGlvbi4KIAotSG93ZXZlciwgaWYgeW91IHNwZWNpZnkgYSBtZXNzYWdl
IHdpdGggdGhlIGFzc2VydGlvbiBsaWtlIHRoaXM6OgorSG93ZXZlciwgaWYgeW91IHNwZWNpZnkg
YSBtZXNzYWdlIHdpdGggdGhlIGFzc2VydGlvbiBsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6
OiBweXRob24KIAogICAgIGFzc2VydCBhICUgMiA9PSAwLCAidmFsdWUgd2FzIG9kZCwgc2hvdWxk
IGJlIGV2ZW4iCiAKQEAgLTY0LDUwICs3Miw3MSBAQCBBc3NlcnRpb25zIGFib3V0IGV4cGVjdGVk
IGV4Y2VwdGlvbnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CiBJbiBvcmRlciB0byB3cml0ZSBhc3NlcnRpb25zIGFib3V0IHJhaXNlZCBleGNlcHRpb25zLCB5
b3UgY2FuIHVzZQotYGBweXRlc3QucmFpc2VzYGAgYXMgYSBjb250ZXh0IG1hbmFnZXIgbGlrZSB0
aGlzOjoKK2BgcHl0ZXN0LnJhaXNlc2BgIGFzIGEgY29udGV4dCBtYW5hZ2VyIGxpa2UgdGhpczoK
KworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgaW1wb3J0IHB5dGVzdAogCisKICAgICBk
ZWYgdGVzdF96ZXJvX2RpdmlzaW9uKCk6CiAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhaZXJv
RGl2aXNpb25FcnJvcik6CiAgICAgICAgICAgICAxIC8gMAogCi1hbmQgaWYgeW91IG5lZWQgdG8g
aGF2ZSBhY2Nlc3MgdG8gdGhlIGFjdHVhbCBleGNlcHRpb24gaW5mbyB5b3UgbWF5IHVzZTo6Cith
bmQgaWYgeW91IG5lZWQgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhlIGFjdHVhbCBleGNlcHRpb24gaW5m
byB5b3UgbWF5IHVzZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgZGVmIHRlc3Rf
cmVjdXJzaW9uX2RlcHRoKCk6CiAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJy
b3IpIGFzIGV4Y2luZm86CisKICAgICAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICAgICAg
ZigpCisKICAgICAgICAgICAgIGYoKQotICAgICAgICBhc3NlcnQgJ21heGltdW0gcmVjdXJzaW9u
JyBpbiBzdHIoZXhjaW5mby52YWx1ZSkKKyAgICAgICAgYXNzZXJ0ICJtYXhpbXVtIHJlY3Vyc2lv
biIgaW4gc3RyKGV4Y2luZm8udmFsdWUpCiAKIGBgZXhjaW5mb2BgIGlzIGEgYGBFeGNlcHRpb25J
bmZvYGAgaW5zdGFuY2UsIHdoaWNoIGlzIGEgd3JhcHBlciBhcm91bmQKIHRoZSBhY3R1YWwgZXhj
ZXB0aW9uIHJhaXNlZC4gIFRoZSBtYWluIGF0dHJpYnV0ZXMgb2YgaW50ZXJlc3QgYXJlCiBgYC50
eXBlYGAsIGBgLnZhbHVlYGAgYW5kIGBgLnRyYWNlYmFja2BgLgogCi0uLiB2ZXJzaW9uY2hhbmdl
ZDo6IDMuMAorWW91IGNhbiBwYXNzIGEgYGBtYXRjaGBgIGtleXdvcmQgcGFyYW1ldGVyIHRvIHRo
ZSBjb250ZXh0LW1hbmFnZXIgdG8gdGVzdAordGhhdCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRj
aGVzIG9uIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gZXhjZXB0aW9uCisoc2ltaWxh
ciB0byB0aGUgYGBUZXN0Q2FzZS5hc3NlcnRSYWlzZXNSZWdleHBgYCBtZXRob2QgZnJvbSBgYHVu
aXR0ZXN0YGApOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgcHl0ZXN0
CiAKLUluIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9ybSB5b3UgbWF5IHVzZSB0aGUga2V5d29yZCBh
cmd1bWVudAotYGBtZXNzYWdlYGAgdG8gc3BlY2lmeSBhIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2U6
OgogCi0gICAgID4+PiB3aXRoIHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgbWVzc2FnZT0iRXhw
ZWN0aW5nIFplcm9EaXZpc2lvbkVycm9yIik6Ci0gICAgIC4uLiAgICAgcGFzcwotICAgICAuLi4g
RmFpbGVkOiBFeHBlY3RpbmcgWmVyb0RpdmlzaW9uRXJyb3IKKyAgICBkZWYgbXlmdW5jKCk6Cisg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4Y2VwdGlvbiAxMjMgcmFpc2VkIikKIAotSWYgeW91
IHdhbnQgdG8gd3JpdGUgdGVzdCBjb2RlIHRoYXQgd29ya3Mgb24gUHl0aG9uIDIuNCBhcyB3ZWxs
LAoteW91IG1heSBhbHNvIHVzZSB0d28gb3RoZXIgd2F5cyB0byB0ZXN0IGZvciBhbiBleHBlY3Rl
ZCBleGNlcHRpb246OgorCisgICAgZGVmIHRlc3RfbWF0Y2goKToKKyAgICAgICAgd2l0aCBweXRl
c3QucmFpc2VzKFZhbHVlRXJyb3IsIG1hdGNoPXIiLiogMTIzIC4qIik6CisgICAgICAgICAgICBt
eWZ1bmMoKQorCitUaGUgcmVnZXhwIHBhcmFtZXRlciBvZiB0aGUgYGBtYXRjaGBgIG1ldGhvZCBp
cyBtYXRjaGVkIHdpdGggdGhlIGBgcmUuc2VhcmNoYGAKK2Z1bmN0aW9uLCBzbyBpbiB0aGUgYWJv
dmUgZXhhbXBsZSBgYG1hdGNoPScxMjMnYGAgd291bGQgaGF2ZSB3b3JrZWQgYXMKK3dlbGwuCisK
K1RoZXJlJ3MgYW4gYWx0ZXJuYXRlIGZvcm0gb2YgdGhlIGBgcHl0ZXN0LnJhaXNlc2BgIGZ1bmN0
aW9uIHdoZXJlIHlvdSBwYXNzCithIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBleGVjdXRlZCB3aXRo
IHRoZSBnaXZlbiBgYCphcmdzYGAgYW5kIGBgKiprd2FyZ3NgYCBhbmQKK2Fzc2VydCB0aGF0IHRo
ZSBnaXZlbiBleGNlcHRpb24gaXMgcmFpc2VkOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAK
ICAgICBweXRlc3QucmFpc2VzKEV4cGVjdGVkRXhjZXB0aW9uLCBmdW5jLCAqYXJncywgKiprd2Fy
Z3MpCi0gICAgcHl0ZXN0LnJhaXNlcyhFeHBlY3RlZEV4Y2VwdGlvbiwgImZ1bmMoKmFyZ3MsICoq
a3dhcmdzKSIpCiAKLWJvdGggb2Ygd2hpY2ggZXhlY3V0ZSB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9u
IHdpdGggYXJncyBhbmQga3dhcmdzIGFuZAotYXNzZXJ0cyB0aGF0IHRoZSBnaXZlbiBgYEV4cGVj
dGVkRXhjZXB0aW9uYGAgaXMgcmFpc2VkLiAgVGhlIHJlcG9ydGVyIHdpbGwKLXByb3ZpZGUgeW91
IHdpdGggaGVscGZ1bCBvdXRwdXQgaW4gY2FzZSBvZiBmYWlsdXJlcyBzdWNoIGFzICpubworVGhl
IHJlcG9ydGVyIHdpbGwgcHJvdmlkZSB5b3Ugd2l0aCBoZWxwZnVsIG91dHB1dCBpbiBjYXNlIG9m
IGZhaWx1cmVzIHN1Y2ggYXMgKm5vCiBleGNlcHRpb24qIG9yICp3cm9uZyBleGNlcHRpb24qLgog
CiBOb3RlIHRoYXQgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byBzcGVjaWZ5IGEgInJhaXNlcyIgYXJn
dW1lbnQgdG8KIGBgcHl0ZXN0Lm1hcmsueGZhaWxgYCwgd2hpY2ggY2hlY2tzIHRoYXQgdGhlIHRl
c3QgaXMgZmFpbGluZyBpbiBhIG1vcmUKLXNwZWNpZmljIHdheSB0aGFuIGp1c3QgaGF2aW5nIGFu
eSBleGNlcHRpb24gcmFpc2VkOjoKK3NwZWNpZmljIHdheSB0aGFuIGp1c3QgaGF2aW5nIGFueSBl
eGNlcHRpb24gcmFpc2VkOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBAcHl0ZXN0
Lm1hcmsueGZhaWwocmFpc2VzPUluZGV4RXJyb3IpCiAgICAgZGVmIHRlc3RfZigpOgpAQCAtMTE5
LDMwICsxNDgsMTMgQEAgZXhjZXB0aW9ucyB5b3VyIG93biBjb2RlIGlzIGRlbGliZXJhdGVseSBy
YWlzaW5nLCB3aGVyZWFzIHVzaW5nCiBsaWtlIGRvY3VtZW50aW5nIHVuZml4ZWQgYnVncyAod2hl
cmUgdGhlIHRlc3QgZGVzY3JpYmVzIHdoYXQgInNob3VsZCIgaGFwcGVuKQogb3IgYnVncyBpbiBk
ZXBlbmRlbmNpZXMuCiAKLUFsc28sIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9ybSBhY2NlcHRzIGEg
YGBtYXRjaGBgIGtleXdvcmQgcGFyYW1ldGVyIHRvIHRlc3QKLXRoYXQgYSByZWd1bGFyIGV4cHJl
c3Npb24gbWF0Y2hlcyBvbiB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGV4Y2VwdGlv
bgotKGxpa2UgdGhlIGBgVGVzdENhc2UuYXNzZXJ0UmFpc2VzUmVnZXhwYGAgbWV0aG9kIGZyb20g
YGB1bml0dGVzdGBgKTo6Ci0KLSAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICBkZWYgbXlmdW5jKCk6
Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4Y2VwdGlvbiAxMjMgcmFpc2VkIikKLQotICAg
IGRlZiB0ZXN0X21hdGNoKCk6Ci0gICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9y
LCBtYXRjaD1yJy4qIDEyMyAuKicpOgotICAgICAgICAgICAgbXlmdW5jKCkKLQotVGhlIHJlZ2V4
cCBwYXJhbWV0ZXIgb2YgdGhlIGBgbWF0Y2hgYCBtZXRob2QgaXMgbWF0Y2hlZCB3aXRoIHRoZSBg
YHJlLnNlYXJjaGBgCi1mdW5jdGlvbi4gU28gaW4gdGhlIGFib3ZlIGV4YW1wbGUgYGBtYXRjaD0n
MTIzJ2BgIHdvdWxkIGhhdmUgd29ya2VkIGFzCi13ZWxsLgotCiAKIC4uIF9gYXNzZXJ0d2FybnNg
OgogCiBBc3NlcnRpb25zIGFib3V0IGV4cGVjdGVkIHdhcm5pbmdzCiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAyLjgKKwogCiBZ
b3UgY2FuIGNoZWNrIHRoYXQgY29kZSByYWlzZXMgYSBwYXJ0aWN1bGFyIHdhcm5pbmcgdXNpbmcK
IDpyZWY6YHB5dGVzdC53YXJucyA8d2FybnM+YC4KQEAgLTE1MywyNCArMTY1LDMwIEBAIFlvdSBj
YW4gY2hlY2sgdGhhdCBjb2RlIHJhaXNlcyBhIHBhcnRpY3VsYXIgd2FybmluZyB1c2luZwogTWFr
aW5nIHVzZSBvZiBjb250ZXh0LXNlbnNpdGl2ZSBjb21wYXJpc29ucwogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAy
LjAKKwogCiBgYHB5dGVzdGBgIGhhcyByaWNoIHN1cHBvcnQgZm9yIHByb3ZpZGluZyBjb250ZXh0
LXNlbnNpdGl2ZSBpbmZvcm1hdGlvbgotd2hlbiBpdCBlbmNvdW50ZXJzIGNvbXBhcmlzb25zLiAg
Rm9yIGV4YW1wbGU6Ogord2hlbiBpdCBlbmNvdW50ZXJzIGNvbXBhcmlzb25zLiAgRm9yIGV4YW1w
bGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVudCBvZiB0ZXN0X2Fz
c2VydDIucHkKIAorCiAgICAgZGVmIHRlc3Rfc2V0X2NvbXBhcmlzb24oKToKICAgICAgICAgc2V0
MSA9IHNldCgiMTMwOCIpCiAgICAgICAgIHNldDIgPSBzZXQoIjgwMzUiKQogICAgICAgICBhc3Nl
cnQgc2V0MSA9PSBzZXQyCiAKLWlmIHlvdSBydW4gdGhpcyBtb2R1bGU6OgoraWYgeW91IHJ1biB0
aGlzIG1vZHVsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgdGVz
dF9hc3NlcnQyLnB5CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lv
biBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4
IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0g
ICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51
eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQor
ICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAxIGl0ZW0KIAogICAgIHRlc3RfYXNzZXJ0
Mi5weSBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsxMDAlXQpAQCAtMTg5LDcgKzIwNyw3IEBAIGlmIHlvdSBydW4gdGhpcyBtb2R1bGU6OgogICAg
IEUgICAgICAgICAnNScKICAgICBFICAgICAgICAgVXNlIC12IHRvIGdldCB0aGUgZnVsbCBkaWZm
CiAKLSAgICB0ZXN0X2Fzc2VydDIucHk6NTogQXNzZXJ0aW9uRXJyb3IKKyAgICB0ZXN0X2Fzc2Vy
dDIucHk6NjogQXNzZXJ0aW9uRXJyb3IKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEg
ZmFpbGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKIFNwZWNp
YWwgY29tcGFyaXNvbnMgYXJlIGRvbmUgZm9yIGEgbnVtYmVyIG9mIGNhc2VzOgpAQCAtMjAwLDgg
KzIxOCw4IEBAIFNwZWNpYWwgY29tcGFyaXNvbnMgYXJlIGRvbmUgZm9yIGEgbnVtYmVyIG9mIGNh
c2VzOgogCiBTZWUgdGhlIDpyZWY6YHJlcG9ydGluZyBkZW1vIDx0YnJlcG9ydGRlbW8+YCBmb3Ig
bWFueSBtb3JlIGV4YW1wbGVzLgogCi1EZWZpbmluZyB5b3VyIG93biBhc3NlcnRpb24gY29tcGFy
aXNvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRGVm
aW5pbmcgeW91ciBvd24gZXhwbGFuYXRpb24gZm9yIGZhaWxlZCBhc3NlcnRpb25zCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogSXQgaXMgcG9z
c2libGUgdG8gYWRkIHlvdXIgb3duIGRldGFpbGVkIGV4cGxhbmF0aW9ucyBieSBpbXBsZW1lbnRp
bmcKIHRoZSBgYHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmVgYCBob29rLgpAQCAtMjEwLDE2ICsy
MjgsMjEgQEAgdGhlIGBgcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZWBgIGhvb2suCiAgICA6bm9p
bmRleDoKIAogQXMgYW4gZXhhbXBsZSBjb25zaWRlciBhZGRpbmcgdGhlIGZvbGxvd2luZyBob29r
IGluIGEgOnJlZjpgY29uZnRlc3QucHkgPGNvbmZ0ZXN0LnB5PmAKLWZpbGUgd2hpY2ggcHJvdmlk
ZXMgYW4gYWx0ZXJuYXRpdmUgZXhwbGFuYXRpb24gZm9yIGBgRm9vYGAgb2JqZWN0czo6CitmaWxl
IHdoaWNoIHByb3ZpZGVzIGFuIGFsdGVybmF0aXZlIGV4cGxhbmF0aW9uIGZvciBgYEZvb2BgIG9i
amVjdHM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIyBjb250ZW50IG9mIGNvbmZ0
ZXN0LnB5CiAgICBmcm9tIHRlc3RfZm9vY29tcGFyZSBpbXBvcnQgRm9vCisKKwogICAgZGVmIHB5
dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUob3AsIGxlZnQsIHJpZ2h0KToKICAgICAgICBpZiBpc2lu
c3RhbmNlKGxlZnQsIEZvbykgYW5kIGlzaW5zdGFuY2UocmlnaHQsIEZvbykgYW5kIG9wID09ICI9
PSI6Ci0gICAgICAgICAgIHJldHVybiBbJ0NvbXBhcmluZyBGb28gaW5zdGFuY2VzOicsCi0gICAg
ICAgICAgICAgICAgICAgJyAgIHZhbHM6ICVzICE9ICVzJyAlIChsZWZ0LnZhbCwgcmlnaHQudmFs
KV0KKyAgICAgICAgICAgcmV0dXJuIFsiQ29tcGFyaW5nIEZvbyBpbnN0YW5jZXM6IiwgIiAgIHZh
bHM6ICVzICE9ICVzIiAlIChsZWZ0LnZhbCwgcmlnaHQudmFsKV0KIAotbm93LCBnaXZlbiB0aGlz
IHRlc3QgbW9kdWxlOjoKK25vdywgZ2l2ZW4gdGhpcyB0ZXN0IG1vZHVsZToKKworLi4gY29kZS1i
bG9jazo6IHB5dGhvbgogCiAgICAjIGNvbnRlbnQgb2YgdGVzdF9mb29jb21wYXJlLnB5CiAgICBj
bGFzcyBGb28ob2JqZWN0KToKQEAgLTIyOSwxMyArMjUyLDE2IEBAIG5vdywgZ2l2ZW4gdGhpcyB0
ZXN0IG1vZHVsZTo6CiAgICAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CiAgICAgICAgICAg
IHJldHVybiBzZWxmLnZhbCA9PSBvdGhlci52YWwKIAorCiAgICBkZWYgdGVzdF9jb21wYXJlKCk6
CiAgICAgICAgZjEgPSBGb28oMSkKICAgICAgICBmMiA9IEZvbygyKQogICAgICAgIGFzc2VydCBm
MSA9PSBmMgogCiB5b3UgY2FuIHJ1biB0aGUgdGVzdCBtb2R1bGUgYW5kIGdldCB0aGUgY3VzdG9t
IG91dHB1dCBkZWZpbmVkIGluCi10aGUgY29uZnRlc3QgZmlsZTo6Cit0aGUgY29uZnRlc3QgZmls
ZToKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAkIHB5dGVzdCAtcSB0ZXN0X2Zvb2Nv
bXBhcmUucHkKICAgIEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtMjQ5LDUxICsyNzUsNzMgQEAgdGhl
IGNvbmZ0ZXN0IGZpbGU6OgogICAgRSAgICAgICBhc3NlcnQgQ29tcGFyaW5nIEZvbyBpbnN0YW5j
ZXM6CiAgICBFICAgICAgICAgICAgdmFsczogMSAhPSAyCiAKLSAgIHRlc3RfZm9vY29tcGFyZS5w
eToxMTogQXNzZXJ0aW9uRXJyb3IKKyAgIHRlc3RfZm9vY29tcGFyZS5weToxMjogQXNzZXJ0aW9u
RXJyb3IKICAgIDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcwogCiAuLiBfYXNzZXJ0LWRldGFpbHM6
CiAuLiBfYGFzc2VydCBpbnRyb3NwZWN0aW9uYDoKIAotQWR2YW5jZWQgYXNzZXJ0aW9uIGludHJv
c3BlY3Rpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0Fzc2VydGlvbiBp
bnRyb3NwZWN0aW9uIGRldGFpbHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwog
Ci0uLiB2ZXJzaW9uYWRkZWQ6OiAyLjEKIAogCiBSZXBvcnRpbmcgZGV0YWlscyBhYm91dCBhIGZh
aWxpbmcgYXNzZXJ0aW9uIGlzIGFjaGlldmVkIGJ5IHJld3JpdGluZyBhc3NlcnQKIHN0YXRlbWVu
dHMgYmVmb3JlIHRoZXkgYXJlIHJ1bi4gIFJld3JpdHRlbiBhc3NlcnQgc3RhdGVtZW50cyBwdXQg
aW50cm9zcGVjdGlvbgogaW5mb3JtYXRpb24gaW50byB0aGUgYXNzZXJ0aW9uIGZhaWx1cmUgbWVz
c2FnZS4gIGBgcHl0ZXN0YGAgb25seSByZXdyaXRlcyB0ZXN0Ci1tb2R1bGVzIGRpcmVjdGx5IGRp
c2NvdmVyZWQgYnkgaXRzIHRlc3QgY29sbGVjdGlvbiBwcm9jZXNzLCBzbyBhc3NlcnRzIGluCi1z
dXBwb3J0aW5nIG1vZHVsZXMgd2hpY2ggYXJlIG5vdCB0aGVtc2VsdmVzIHRlc3QgbW9kdWxlcyB3
aWxsIG5vdCBiZSByZXdyaXR0ZW4uCittb2R1bGVzIGRpcmVjdGx5IGRpc2NvdmVyZWQgYnkgaXRz
IHRlc3QgY29sbGVjdGlvbiBwcm9jZXNzLCBzbyAqKmFzc2VydHMgaW4KK3N1cHBvcnRpbmcgbW9k
dWxlcyB3aGljaCBhcmUgbm90IHRoZW1zZWx2ZXMgdGVzdCBtb2R1bGVzIHdpbGwgbm90IGJlIHJl
d3JpdHRlbioqLgogCi0uLiBub3RlOjoKK1lvdSBjYW4gbWFudWFsbHkgZW5hYmxlIGFzc2VydGlv
biByZXdyaXRpbmcgZm9yIGFuIGltcG9ydGVkIG1vZHVsZSBieSBjYWxsaW5nCitgcmVnaXN0ZXJf
YXNzZXJ0X3Jld3JpdGUgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5n
X3BsdWdpbnMuaHRtbCNhc3NlcnRpb24tcmV3cml0aW5nPmBfCitiZWZvcmUgeW91IGltcG9ydCBp
dCAoYSBnb29kIHBsYWNlIHRvIGRvIHRoYXQgaXMgaW4geW91ciByb290IGBgY29uZnRlc3QucHlg
YCkuCiAKLSAgIGBgcHl0ZXN0YGAgcmV3cml0ZXMgdGVzdCBtb2R1bGVzIG9uIGltcG9ydCBieSB1
c2luZyBhbiBpbXBvcnQKLSAgIGhvb2sgdG8gd3JpdGUgbmV3IGBgcHljYGAgZmlsZXMuIE1vc3Qg
b2YgdGhlIHRpbWUgdGhpcyB3b3JrcyB0cmFuc3BhcmVudGx5LgotICAgSG93ZXZlciwgaWYgeW91
IGFyZSBtZXNzaW5nIHdpdGggaW1wb3J0IHlvdXJzZWxmLCB0aGUgaW1wb3J0IGhvb2sgbWF5Ci0g
ICBpbnRlcmZlcmUuCitGb3IgZnVydGhlciBpbmZvcm1hdGlvbiwgQmVuamFtaW4gUGV0ZXJzb24g
d3JvdGUgdXAgYEJlaGluZCB0aGUgc2NlbmVzIG9mIHB5dGVzdCdzIG5ldyBhc3NlcnRpb24gcmV3
cml0aW5nIDxodHRwOi8vcHliaXRlcy5ibG9nc3BvdC5jb20vMjAxMS8wNy9iZWhpbmQtc2NlbmVz
LW9mLXB5dGVzdHMtbmV3LWFzc2VydGlvbi5odG1sPmBfLgogCi0gICBJZiB0aGlzIGlzIHRoZSBj
YXNlIHlvdSBoYXZlIHR3byBvcHRpb25zOgorQXNzZXJ0aW9uIHJld3JpdGluZyBjYWNoZXMgZmls
ZXMgb24gZGlzaworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCi0g
ICAqIERpc2FibGUgcmV3cml0aW5nIGZvciBhIHNwZWNpZmljIG1vZHVsZSBieSBhZGRpbmcgdGhl
IHN0cmluZwotICAgICBgYFBZVEVTVF9ET05UX1JFV1JJVEVgYCB0byBpdHMgZG9jc3RyaW5nLgor
YGBweXRlc3RgYCB3aWxsIHdyaXRlIGJhY2sgdGhlIHJld3JpdHRlbiBtb2R1bGVzIHRvIGRpc2sg
Zm9yIGNhY2hpbmcuIFlvdSBjYW4gZGlzYWJsZQordGhpcyBiZWhhdmlvciAoZm9yIGV4YW1wbGUg
dG8gYXZvaWQgbGVhdmluZyBzdGFsZSBgYC5weWNgYCBmaWxlcyBhcm91bmQgaW4gcHJvamVjdHMg
dGhhdAorbW92ZSBmaWxlcyBhcm91bmQgYSBsb3QpIGJ5IGFkZGluZyB0aGlzIHRvIHRoZSB0b3Ag
b2YgeW91ciBgYGNvbmZ0ZXN0LnB5YGAgZmlsZToKIAotICAgKiBEaXNhYmxlIHJld3JpdGluZyBm
b3IgYWxsIG1vZHVsZXMgYnkgdXNpbmcgYGAtLWFzc2VydD1wbGFpbmBgLgorLi4gY29kZS1ibG9j
azo6IHB5dGhvbgogCi0gICBBZGRpdGlvbmFsbHksIHJld3JpdGluZyB3aWxsIGZhaWwgc2lsZW50
bHkgaWYgaXQgY2Fubm90IHdyaXRlIG5ldyBgYC5weWNgYCBmaWxlcywKLSAgIGkuZS4gaW4gYSBy
ZWFkLW9ubHkgZmlsZXN5c3RlbSBvciBhIHppcGZpbGUuCisgICBpbXBvcnQgc3lzCisKKyAgIHN5
cy5kb250X3dyaXRlX2J5dGVjb2RlID0gVHJ1ZQorCitOb3RlIHRoYXQgeW91IHN0aWxsIGdldCB0
aGUgYmVuZWZpdHMgb2YgYXNzZXJ0aW9uIGludHJvc3BlY3Rpb24sIHRoZSBvbmx5IGNoYW5nZSBp
cyB0aGF0Cit0aGUgYGAucHljYGAgZmlsZXMgd29uJ3QgYmUgY2FjaGVkIG9uIGRpc2suCisKK0Fk
ZGl0aW9uYWxseSwgcmV3cml0aW5nIHdpbGwgc2lsZW50bHkgc2tpcCBjYWNoaW5nIGlmIGl0IGNh
bm5vdCB3cml0ZSBuZXcgYGAucHljYGAgZmlsZXMsCitpLmUuIGluIGEgcmVhZC1vbmx5IGZpbGVz
eXN0ZW0gb3IgYSB6aXBmaWxlLgorCisKK0Rpc2FibGluZyBhc3NlcnQgcmV3cml0aW5nCit+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitgYHB5dGVzdGBgIHJld3JpdGVzIHRlc3QgbW9kdWxl
cyBvbiBpbXBvcnQgYnkgdXNpbmcgYW4gaW1wb3J0Citob29rIHRvIHdyaXRlIG5ldyBgYHB5Y2Bg
IGZpbGVzLiBNb3N0IG9mIHRoZSB0aW1lIHRoaXMgd29ya3MgdHJhbnNwYXJlbnRseS4KK0hvd2V2
ZXIsIGlmIHlvdSBhcmUgd29ya2luZyB3aXRoIHRoZSBpbXBvcnQgbWFjaGluZXJ5IHlvdXJzZWxm
LCB0aGUgaW1wb3J0IGhvb2sgbWF5CitpbnRlcmZlcmUuCisKK0lmIHRoaXMgaXMgdGhlIGNhc2Ug
eW91IGhhdmUgdHdvIG9wdGlvbnM6CisKKyogRGlzYWJsZSByZXdyaXRpbmcgZm9yIGEgc3BlY2lm
aWMgbW9kdWxlIGJ5IGFkZGluZyB0aGUgc3RyaW5nCisgIGBgUFlURVNUX0RPTlRfUkVXUklURWBg
IHRvIGl0cyBkb2NzdHJpbmcuCisKKyogRGlzYWJsZSByZXdyaXRpbmcgZm9yIGFsbCBtb2R1bGVz
IGJ5IHVzaW5nIGBgLS1hc3NlcnQ9cGxhaW5gYC4KIAogCi1Gb3IgZnVydGhlciBpbmZvcm1hdGlv
biwgQmVuamFtaW4gUGV0ZXJzb24gd3JvdGUgdXAgYEJlaGluZCB0aGUgc2NlbmVzIG9mIHB5dGVz
dCdzIG5ldyBhc3NlcnRpb24gcmV3cml0aW5nIDxodHRwOi8vcHliaXRlcy5ibG9nc3BvdC5jb20v
MjAxMS8wNy9iZWhpbmQtc2NlbmVzLW9mLXB5dGVzdHMtbmV3LWFzc2VydGlvbi5odG1sPmBfLgog
Ci0uLiB2ZXJzaW9uYWRkZWQ6OiAyLjEKICAgIEFkZCBhc3NlcnQgcmV3cml0aW5nIGFzIGFuIGFs
dGVybmF0ZSBpbnRyb3NwZWN0aW9uIHRlY2huaXF1ZS4KIAotLi4gdmVyc2lvbmNoYW5nZWQ6OiAy
LjEKKwogICAgSW50cm9kdWNlIHRoZSBgYC0tYXNzZXJ0YGAgb3B0aW9uLiBEZXByZWNhdGUgYGAt
LW5vLWFzc2VydGBgIGFuZAogICAgYGAtLW5vbWFnaWNgYC4KIAotLi4gdmVyc2lvbmNoYW5nZWQ6
OiAzLjAKKwogICAgUmVtb3ZlcyB0aGUgYGAtLW5vLWFzc2VydGBgIGFuZCBgYC0tbm9tYWdpY2Bg
IG9wdGlvbnMuCiAgICBSZW1vdmVzIHRoZSBgYC0tYXNzZXJ0PXJlaW50ZXJwYGAgb3B0aW9uLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2JhY2t3YXJkcy1jb21wYXRpYmlsaXR5LnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS5yc3QKaW5kZXgg
NTU1MDZlN2MzMzhlZDY1NjA1ZjhiM2NjNGY1NmEzZTllOTBlZmRjYi4uNTZhZmQ5OGFmYTc2ZDU2
YTZlYTdiYTZmYTA4NDZkYThlN2Y1ZDkyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2JhY2t3YXJkcy1jb21wYXRpYmlsaXR5LnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFj
a3dhcmRzLWNvbXBhdGliaWxpdHkucnN0CkBAIC03LDE0ICs3LDE2IEBAIEtlZXBpbmcgYmFja3dh
cmRzIGNvbXBhdGliaWxpdHkgaGFzIGEgdmVyeSBoaWdoIHByaW9yaXR5IGluIHRoZSBweXRlc3Qg
cHJvamVjdC4KIAogV2l0aCB0aGUgcHl0ZXN0IDMuMCByZWxlYXNlIHdlIGludHJvZHVjZWQgYSBj
bGVhciBjb21tdW5pY2F0aW9uIHNjaGVtZSBmb3Igd2hlbiB3ZSB3aWxsIGFjdHVhbGx5IHJlbW92
ZSB0aGUgb2xkIGJ1c3RlZCBqb2ludCBhbmQgcG9saXRlbHkgYXNrIHlvdSB0byB1c2UgdGhlIG5l
dyBob3RuZXNzIGluc3RlYWQsIHdoaWxlIGdpdmluZyB5b3UgZW5vdWdoIHRpbWUgdG8gYWRqdXN0
IHlvdXIgdGVzdHMgb3IgcmFpc2UgY29uY2VybnMgaWYgdGhlcmUgYXJlIHZhbGlkIHJlYXNvbnMg
dG8ga2VlcCBkZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXJvdW5kLgogCi1UbyBjb21tdW5pY2F0
ZSBjaGFuZ2VzIHdlIGFyZSBhbHJlYWR5IGlzc3VpbmcgZGVwcmVjYXRpb24gd2FybmluZ3MsIGJ1
dCB0aGV5IGFyZSBub3QgZGlzcGxheWVkIGJ5IGRlZmF1bHQuIEluIHB5dGVzdCAzLjAgd2UgY2hh
bmdlZCB0aGUgZGVmYXVsdCBzZXR0aW5nIHNvIHRoYXQgcHl0ZXN0IGRlcHJlY2F0aW9uIHdhcm5p
bmdzIGFyZSBkaXNwbGF5ZWQgaWYgbm90IGV4cGxpY2l0bHkgc2lsZW5jZWQgKHdpdGggYGAtLWRp
c2FibGUtcHl0ZXN0LXdhcm5pbmdzYGApLgorVG8gY29tbXVuaWNhdGUgY2hhbmdlcyB3ZSBpc3N1
ZSBkZXByZWNhdGlvbiB3YXJuaW5ncyB1c2luZyBhIGN1c3RvbSB3YXJuaW5nIGhpZXJhcmNoeSAo
c2VlIDpyZWY6YGludGVybmFsLXdhcm5pbmdzYCkuIFRoZXNlIHdhcm5pbmdzIG1heSBiZSBzdXBw
cmVzc2VkIHVzaW5nIHRoZSBzdGFuZGFyZCBtZWFuczogYGAtV2BgIGNvbW1hbmQtbGluZSBmbGFn
IG9yIGBgZmlsdGVyd2FybmluZ3NgYCBpbmkgb3B0aW9ucyAoc2VlIDpyZWY6YHdhcm5pbmdzYCks
IGJ1dCB3ZSBzdWdnZXN0IHRvIHVzZSB0aGVzZSBzcGFyaW5nbHkgYW5kIHRlbXBvcmFyaWx5LCBh
bmQgaGVlZCB0aGUgd2FybmluZ3Mgd2hlbiBwb3NzaWJsZS4KIAotV2Ugd2lsbCBvbmx5IHJlbW92
ZSBkZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgaW4gbWFqb3IgcmVsZWFzZXMgKGUuZy4gaWYgd2Ug
ZGVwcmVjYXRlIHNvbWV0aGluZyBpbiAzLjAgd2Ugd2lsbCByZW1vdmUgaXQgaW4gNC4wKSwgYW5k
IGtlZXAgaXQgYXJvdW5kIGZvciBhdCBsZWFzdCB0d28gbWlub3IgcmVsZWFzZXMgKGUuZy4gaWYg
d2UgZGVwcmVjYXRlIHNvbWV0aGluZyBpbiAzLjkgYW5kIDQuMCBpcyB0aGUgbmV4dCByZWxlYXNl
LCB3ZSB3aWxsIG5vdCByZW1vdmUgaXQgaW4gNC4wIGJ1dCBpbiA1LjApLgorV2Ugd2lsbCBvbmx5
IHN0YXJ0IHRoZSByZW1vdmFsIG9mIGRlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eSBpbiBtYWpvciBy
ZWxlYXNlcyAoZS5nLiBpZiB3ZSBkZXByZWNhdGUgc29tZXRoaW5nIGluIDMuMCB3ZSB3aWxsIHN0
YXJ0IHRvIHJlbW92ZSBpdCBpbiA0LjApLCBhbmQga2VlcCBpdCBhcm91bmQgZm9yIGF0IGxlYXN0
IHR3byBtaW5vciByZWxlYXNlcyAoZS5nLiBpZiB3ZSBkZXByZWNhdGUgc29tZXRoaW5nIGluIDMu
OSBhbmQgNC4wIGlzIHRoZSBuZXh0IHJlbGVhc2UsIHdlIHN0YXJ0IHRvIHJlbW92ZSBpdCBpbiA1
LjAsIG5vdCBpbiA0LjApLgorCitXaGVuIHRoZSBkZXByZWNhdGlvbiBleHBpcmVzIChlLmcuIDQu
MCBpcyByZWxlYXNlZCksIHdlIHdvbid0IHJlbW92ZSB0aGUgZGVwcmVjYXRlZCBmdW5jdGlvbmFs
aXR5IGltbWVkaWF0ZWx5LCBidXQgd2lsbCB1c2UgdGhlIHN0YW5kYXJkIHdhcm5pbmcgZmlsdGVy
cyB0byB0dXJuIHRoZW0gaW50byAqKmVycm9ycyoqIGJ5IGRlZmF1bHQuIFRoaXMgYXBwcm9hY2gg
bWFrZXMgaXQgZXhwbGljaXQgdGhhdCByZW1vdmFsIGlzIGltbWluZW50LCBhbmQgc3RpbGwgZ2l2
ZXMgeW91IHRpbWUgdG8gdHVybiB0aGUgZGVwcmVjYXRlZCBmZWF0dXJlIGludG8gYSB3YXJuaW5n
IGluc3RlYWQgb2YgYW4gZXJyb3Igc28gaXQgY2FuIGJlIGRlYWx0IHdpdGggaW4geW91ciBvd24g
dGltZS4gSW4gdGhlIG5leHQgbWlub3IgcmVsZWFzZSAoZS5nLiA0LjEpLCB0aGUgZmVhdHVyZSB3
aWxsIGJlIGVmZmVjdGl2ZWx5IHJlbW92ZWQuCiAKIAogRGVwcmVjYXRpb24gUm9hZG1hcAogLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi1XZSB0cmFjayBkZXByZWNhdGlvbiBhbmQgcmVtb3ZhbCBvZiBm
ZWF0dXJlcyB1c2luZyBtaWxlc3RvbmVzIGFuZCB0aGUgYGRlcHJlY2F0aW9uIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzP3E9bGFiZWwlM0ElMjJ0eXBlJTNBK2Rl
cHJlY2F0aW9uJTIyPmBfIGFuZCBgcmVtb3ZhbCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2xhYmVscy90eXBlJTNBJTIwcmVtb3ZhbD5gXyBsYWJlbHMgb24gR2l0SHViLgor
RmVhdHVyZXMgY3VycmVudGx5IGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQgaW4gcHJldmlvdXMgcmVs
ZWFzZXMgY2FuIGJlIGZvdW5kIGluIDpyZWY6YGRlcHJlY2F0aW9uc2AuCiAKLUZvbGxvd2luZyBv
dXIgZGVwcmVjYXRpb24gcG9saWN5LCBhZnRlciBzdGFydGluZyBpc3N1aW5nIGRlcHJlY2F0aW9u
IHdhcm5pbmdzIHdlIGtlZXAgZmVhdHVyZXMgZm9yICphdCBsZWFzdCogdHdvIG1pbm9yIHZlcnNp
b25zIGJlZm9yZSBjb25zaWRlcmluZyByZW1vdmFsLgorV2UgdHJhY2sgZnV0dXJlIGRlcHJlY2F0
aW9uIGFuZCByZW1vdmFsIG9mIGZlYXR1cmVzIHVzaW5nIG1pbGVzdG9uZXMgYW5kIHRoZSBgZGVw
cmVjYXRpb24gPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXM/cT1s
YWJlbCUzQSUyMnR5cGUlM0ErZGVwcmVjYXRpb24lMjI+YF8gYW5kIGByZW1vdmFsIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvbGFiZWxzL3R5cGUlM0ElMjByZW1vdmFsPmBf
IGxhYmVscyBvbiBHaXRIdWIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFzaC1j
b21wbGV0aW9uLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9iYXNoLWNvbXBsZXRpb24ucnN0Cmlu
ZGV4IDA4ZDk3ODIwOTBjYTBhMWM5Mjg5ZjQ2YTE0NDVhYWQ0N2FlMWY5YTYuLmVhYTA3ODgxNDE0
ZGRhZjhjNmYwYTRlYTIxYTgzMjU3YmZlMWEyZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9iYXNoLWNvbXBsZXRpb24ucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9iYXNoLWNv
bXBsZXRpb24ucnN0CkBAIC04LDE4ICs4LDI2IEBAIFdoZW4gdXNpbmcgYmFzaCBhcyB5b3VyIHNo
ZWxsLCBgYHB5dGVzdGBgIGNhbiB1c2UgYXJnY29tcGxldGUKIChodHRwczovL2FyZ2NvbXBsZXRl
LnJlYWR0aGVkb2NzLmlvLykgZm9yIGF1dG8tY29tcGxldGlvbi4KIEZvciB0aGlzIGBgYXJnY29t
cGxldGVgYCBuZWVkcyB0byBiZSBpbnN0YWxsZWQgKiphbmQqKiBlbmFibGVkLgogCi1JbnN0YWxs
IGFyZ2NvbXBsZXRlIHVzaW5nOjoKK0luc3RhbGwgYXJnY29tcGxldGUgdXNpbmc6CiAKLSAgICAg
ICAgc3VkbyBwaXAgaW5zdGFsbCAnYXJnY29tcGxldGU+PTAuNS43JworLi4gY29kZS1ibG9jazo6
IGJhc2gKIAotRm9yIGdsb2JhbCBhY3RpdmF0aW9uIG9mIGFsbCBhcmdjb21wbGV0ZSBlbmFibGVk
IHB5dGhvbiBhcHBsaWNhdGlvbnMgcnVuOjoKKyAgICBzdWRvIHBpcCBpbnN0YWxsICdhcmdjb21w
bGV0ZT49MC41LjcnCisKK0ZvciBnbG9iYWwgYWN0aXZhdGlvbiBvZiBhbGwgYXJnY29tcGxldGUg
ZW5hYmxlZCBweXRob24gYXBwbGljYXRpb25zIHJ1bjoKKworLi4gY29kZS1ibG9jazo6IGJhc2gK
IAogICAgIHN1ZG8gYWN0aXZhdGUtZ2xvYmFsLXB5dGhvbi1hcmdjb21wbGV0ZQogCi1Gb3IgcGVy
bWFuZW50IChidXQgbm90IGdsb2JhbCkgYGBweXRlc3RgYCBhY3RpdmF0aW9uLCB1c2U6OgorRm9y
IHBlcm1hbmVudCAoYnV0IG5vdCBnbG9iYWwpIGBgcHl0ZXN0YGAgYWN0aXZhdGlvbiwgdXNlOgor
CisuLiBjb2RlLWJsb2NrOjogYmFzaAorCisgICAgcmVnaXN0ZXItcHl0aG9uLWFyZ2NvbXBsZXRl
IHB5dGVzdCA+PiB+Ly5iYXNocmMKIAotICAgICAgICByZWdpc3Rlci1weXRob24tYXJnY29tcGxl
dGUgcHl0ZXN0ID4+IH4vLmJhc2hyYworRm9yIG9uZS10aW1lIGFjdGl2YXRpb24gb2YgYXJnY29t
cGxldGUgZm9yIGBgcHl0ZXN0YGAgb25seSwgdXNlOgogCi1Gb3Igb25lLXRpbWUgYWN0aXZhdGlv
biBvZiBhcmdjb21wbGV0ZSBmb3IgYGBweXRlc3RgYCBvbmx5LCB1c2U6OgorLi4gY29kZS1ibG9j
azo6IGJhc2gKIAotICAgICAgICBldmFsICIkKHJlZ2lzdGVyLXB5dGhvbi1hcmdjb21wbGV0ZSBw
eXRlc3QpIgorICAgIGV2YWwgIiQocmVnaXN0ZXItcHl0aG9uLWFyZ2NvbXBsZXRlIHB5dGVzdCki
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYnVpbHRpbi5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYnVpbHRpbi5yc3QKaW5kZXggYzJkMjM0NjliYzg0N2MwOTdjMDA3YWEyZWRmMTYx
MTk4OGMzMWQxNi4uYTRjMjA2OTVjM2JjZmM3ZWQ5ODYxOTk3YzFmOGIzYzk1Yzg5YWZlZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2J1aWx0aW4ucnN0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9idWlsdGluLnJzdApAQCAtMTIsNyArMTIsOSBAQCBGb3IgaW5mb3JtYXRpb24gb24g
cGx1Z2luIGhvb2tzIGFuZCBvYmplY3RzLCBzZWUgOnJlZjpgcGx1Z2luc2AuCiAKIEZvciBpbmZv
cm1hdGlvbiBvbiB0aGUgYGBweXRlc3QubWFya2BgIG1lY2hhbmlzbSwgc2VlIDpyZWY6YG1hcmtg
LgogCi1Gb3IgaW5mb3JtYXRpb24gYWJvdXQgZml4dHVyZXMsIHNlZSA6cmVmOmBmaXh0dXJlc2Au
IFRvIHNlZSBhIGNvbXBsZXRlIGxpc3Qgb2YgYXZhaWxhYmxlIGZpeHR1cmVzIChhZGQgYGAtdmBg
IHRvIGFsc28gc2VlIGZpeHR1cmVzIHdpdGggbGVhZGluZyBgYF9gYCksIHR5cGUgOjoKK0ZvciBp
bmZvcm1hdGlvbiBhYm91dCBmaXh0dXJlcywgc2VlIDpyZWY6YGZpeHR1cmVzYC4gVG8gc2VlIGEg
Y29tcGxldGUgbGlzdCBvZiBhdmFpbGFibGUgZml4dHVyZXMgKGFkZCBgYC12YGAgdG8gYWxzbyBz
ZWUgZml4dHVyZXMgd2l0aCBsZWFkaW5nIGBgX2BgKSwgdHlwZSA6CisKKy4uIGNvZGUtYmxvY2s6
OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xIC0tZml4dHVyZXMKICAgICBjYWNoZQpAQCAtMjUs
MzYgKzI3LDQ3IEBAIEZvciBpbmZvcm1hdGlvbiBhYm91dCBmaXh0dXJlcywgc2VlIDpyZWY6YGZp
eHR1cmVzYC4gVG8gc2VlIGEgY29tcGxldGUgbGlzdCBvZiBhCiAgICAgICAgIG5hbWUgb2YgeW91
ciBwbHVnaW4gb3IgYXBwbGljYXRpb24gdG8gYXZvaWQgY2xhc2hlcyB3aXRoIG90aGVyIGNhY2hl
IHVzZXJzLgogCiAgICAgICAgIFZhbHVlcyBjYW4gYmUgYW55IG9iamVjdCBoYW5kbGVkIGJ5IHRo
ZSBqc29uIHN0ZGxpYiBtb2R1bGUuCisKICAgICBjYXBzeXMKLSAgICAgICAgRW5hYmxlIGNhcHR1
cmluZyBvZiB3cml0ZXMgdG8gYGBzeXMuc3Rkb3V0YGAgYW5kIGBgc3lzLnN0ZGVycmBgIGFuZCBt
YWtlCi0gICAgICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2Fwc3lzLnJlYWRv
dXRlcnIoKWBgIG1ldGhvZCBjYWxscwotICAgICAgICB3aGljaCByZXR1cm4gYSBgYChvdXQsIGVy
cilgYCBuYW1lZHR1cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgCi0g
ICAgICAgIG9iamVjdHMuCisgICAgICAgIEVuYWJsZSB0ZXh0IGNhcHR1cmluZyBvZiB3cml0ZXMg
dG8gYGBzeXMuc3Rkb3V0YGAgYW5kIGBgc3lzLnN0ZGVycmBgLgorCisgICAgICAgIFRoZSBjYXB0
dXJlZCBvdXRwdXQgaXMgbWFkZSBhdmFpbGFibGUgdmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBg
IG1ldGhvZAorICAgICAgICBjYWxscywgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgbmFt
ZWR0dXBsZS4KKyAgICAgICAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgIG9i
amVjdHMuCisKICAgICBjYXBzeXNiaW5hcnkKLSAgICAgICAgRW5hYmxlIGNhcHR1cmluZyBvZiB3
cml0ZXMgdG8gYGBzeXMuc3Rkb3V0YGAgYW5kIGBgc3lzLnN0ZGVycmBgIGFuZCBtYWtlCi0gICAg
ICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBg
IG1ldGhvZCBjYWxscwotICAgICAgICB3aGljaCByZXR1cm4gYSBgYChvdXQsIGVycilgYCB0dXBs
ZS4gIGBgb3V0YGAgYW5kIGBgZXJyYGAgd2lsbCBiZSBgYGJ5dGVzYGAKLSAgICAgICAgb2JqZWN0
cy4KKyAgICAgICAgRW5hYmxlIGJ5dGVzIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gYGBzeXMuc3Rk
b3V0YGAgYW5kIGBgc3lzLnN0ZGVycmBgLgorCisgICAgICAgIFRoZSBjYXB0dXJlZCBvdXRwdXQg
aXMgbWFkZSBhdmFpbGFibGUgdmlhIGBgY2Fwc3lzYmluYXJ5LnJlYWRvdXRlcnIoKWBgCisgICAg
ICAgIG1ldGhvZCBjYWxscywgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgbmFtZWR0dXBs
ZS4KKyAgICAgICAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgYnl0ZXNgYCBvYmplY3Rz
LgorCiAgICAgY2FwZmQKLSAgICAgICAgRW5hYmxlIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gZmls
ZSBkZXNjcmlwdG9ycyBgYDFgYCBhbmQgYGAyYGAgYW5kIG1ha2UKLSAgICAgICAgY2FwdHVyZWQg
b3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBmZC5yZWFkb3V0ZXJyKClgYCBtZXRob2QgY2FsbHMK
LSAgICAgICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFu
ZCBgYGVycmBgIHdpbGwgYmUgYGB0ZXh0YGAKLSAgICAgICAgb2JqZWN0cy4KKyAgICAgICAgRW5h
YmxlIHRleHQgY2FwdHVyaW5nIG9mIHdyaXRlcyB0byBmaWxlIGRlc2NyaXB0b3JzIGBgMWBgIGFu
ZCBgYDJgYC4KKworICAgICAgICBUaGUgY2FwdHVyZWQgb3V0cHV0IGlzIG1hZGUgYXZhaWxhYmxl
IHZpYSBgYGNhcGZkLnJlYWRvdXRlcnIoKWBgIG1ldGhvZAorICAgICAgICBjYWxscywgd2hpY2gg
cmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgbmFtZWR0dXBsZS4KKyAgICAgICAgYGBvdXRgYCBhbmQg
YGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgIG9iamVjdHMuCisKICAgICBjYXBmZGJpbmFyeQotICAg
ICAgICBFbmFibGUgY2FwdHVyaW5nIG9mIHdyaXRlIHRvIGZpbGUgZGVzY3JpcHRvcnMgMSBhbmQg
MiBhbmQgbWFrZQotICAgICAgICBjYXB0dXJlZCBvdXRwdXQgYXZhaWxhYmxlIHZpYSBgYGNhcGZk
YmluYXJ5LnJlYWRvdXRlcnJgYCBtZXRob2QgY2FsbHMKLSAgICAgICAgd2hpY2ggcmV0dXJuIGEg
YGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUKLSAgICAg
ICAgYGBieXRlc2BgIG9iamVjdHMuCi0gICAgZG9jdGVzdF9uYW1lc3BhY2UKKyAgICAgICAgRW5h
YmxlIGJ5dGVzIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gZmlsZSBkZXNjcmlwdG9ycyBgYDFgYCBh
bmQgYGAyYGAuCisKKyAgICAgICAgVGhlIGNhcHR1cmVkIG91dHB1dCBpcyBtYWRlIGF2YWlsYWJs
ZSB2aWEgYGBjYXBmZC5yZWFkb3V0ZXJyKClgYCBtZXRob2QKKyAgICAgICAgY2FsbHMsIHdoaWNo
IHJldHVybiBhIGBgKG91dCwgZXJyKWBgIG5hbWVkdHVwbGUuCisgICAgICAgIGBgb3V0YGAgYW5k
IGBgZXJyYGAgd2lsbCBiZSBgYGJ5dGVgYCBvYmplY3RzLgorCisgICAgZG9jdGVzdF9uYW1lc3Bh
Y2UgW3Nlc3Npb24gc2NvcGVdCiAgICAgICAgIEZpeHR1cmUgdGhhdCByZXR1cm5zIGEgOnB5OmNs
YXNzOmBkaWN0YCB0aGF0IHdpbGwgYmUgaW5qZWN0ZWQgaW50byB0aGUgbmFtZXNwYWNlIG9mIGRv
Y3Rlc3RzLgotICAgIHB5dGVzdGNvbmZpZworCisgICAgcHl0ZXN0Y29uZmlnIFtzZXNzaW9uIHNj
b3BlXQogICAgICAgICBTZXNzaW9uLXNjb3BlZCBmaXh0dXJlIHRoYXQgcmV0dXJucyB0aGUgOmNs
YXNzOmBfcHl0ZXN0LmNvbmZpZy5Db25maWdgIG9iamVjdC4KIAogICAgICAgICBFeGFtcGxlOjoK
IAogICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHB5dGVzdGNvbmZpZyk6Ci0gICAgICAgICAgICAg
ICAgaWYgcHl0ZXN0Y29uZmlnLmdldG9wdGlvbigidmVyYm9zZSIpOgorICAgICAgICAgICAgICAg
IGlmIHB5dGVzdGNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2UiKSA+IDA6CiAgICAgICAgICAgICAg
ICAgICAgIC4uLgorCiAgICAgcmVjb3JkX3Byb3BlcnR5CiAgICAgICAgIEFkZCBhbiBleHRyYSBw
cm9wZXJ0aWVzIHRoZSBjYWxsaW5nIHRlc3QuCiAgICAgICAgIFVzZXIgcHJvcGVydGllcyBiZWNv
bWUgcGFydCBvZiB0aGUgdGVzdCByZXBvcnQgYW5kIGFyZSBhdmFpbGFibGUgdG8gdGhlCkBAIC02
NiwyMSArNzksMzYgQEAgRm9yIGluZm9ybWF0aW9uIGFib3V0IGZpeHR1cmVzLCBzZWUgOnJlZjpg
Zml4dHVyZXNgLiBUbyBzZWUgYSBjb21wbGV0ZSBsaXN0IG9mIGEKIAogICAgICAgICAgICAgZGVm
IHRlc3RfZnVuY3Rpb24ocmVjb3JkX3Byb3BlcnR5KToKICAgICAgICAgICAgICAgICByZWNvcmRf
cHJvcGVydHkoImV4YW1wbGVfa2V5IiwgMSkKLSAgICByZWNvcmRfeG1sX3Byb3BlcnR5Ci0gICAg
ICAgIChEZXByZWNhdGVkKSB1c2UgcmVjb3JkX3Byb3BlcnR5LgorCiAgICAgcmVjb3JkX3htbF9h
dHRyaWJ1dGUKICAgICAgICAgQWRkIGV4dHJhIHhtbCBhdHRyaWJ1dGVzIHRvIHRoZSB0YWcgZm9y
IHRoZSBjYWxsaW5nIHRlc3QuCiAgICAgICAgIFRoZSBmaXh0dXJlIGlzIGNhbGxhYmxlIHdpdGgg
YGAobmFtZSwgdmFsdWUpYGAsIHdpdGggdmFsdWUgYmVpbmcKICAgICAgICAgYXV0b21hdGljYWxs
eSB4bWwtZW5jb2RlZAorCisgICAgcmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eSBbc2Vzc2lvbiBz
Y29wZV0KKyAgICAgICAgUmVjb3JkcyBhIG5ldyBgYDxwcm9wZXJ0eT5gYCB0YWcgYXMgY2hpbGQg
b2YgdGhlIHJvb3QgYGA8dGVzdHN1aXRlPmBgLiBUaGlzIGlzIHN1aXRhYmxlIHRvCisgICAgICAg
IHdyaXRpbmcgZ2xvYmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGUgZW50aXJlIHRlc3Qgc3Vp
dGUsIGFuZCBpcyBjb21wYXRpYmxlIHdpdGggYGB4dW5pdDJgYCBKVW5pdCBmYW1pbHkuCisKKyAg
ICAgICAgVGhpcyBpcyBhIGBgc2Vzc2lvbmBgLXNjb3BlZCBmaXh0dXJlIHdoaWNoIGlzIGNhbGxl
ZCB3aXRoIGBgKG5hbWUsIHZhbHVlKWBgLiBFeGFtcGxlOgorCisgICAgICAgIC4uIGNvZGUtYmxv
Y2s6OiBweXRob24KKworICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHJlY29yZF90ZXN0c3VpdGVf
cHJvcGVydHkpOgorICAgICAgICAgICAgICAgIHJlY29yZF90ZXN0c3VpdGVfcHJvcGVydHkoIkFS
Q0giLCAiUFBDIikKKyAgICAgICAgICAgICAgICByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KCJT
VE9SQUdFX1RZUEUiLCAiQ0VQSCIpCisKKyAgICAgICAgYGBuYW1lYGAgbXVzdCBiZSBhIHN0cmlu
ZywgYGB2YWx1ZWBgIHdpbGwgYmUgY29udmVydGVkIHRvIGEgc3RyaW5nIGFuZCBwcm9wZXJseSB4
bWwtZXNjYXBlZC4KKwogICAgIGNhcGxvZwogICAgICAgICBBY2Nlc3MgYW5kIGNvbnRyb2wgbG9n
IGNhcHR1cmluZy4KIAotICAgICAgICBDYXB0dXJlZCBsb2dzIGFyZSBhdmFpbGFibGUgdGhyb3Vn
aCB0aGUgZm9sbG93aW5nIG1ldGhvZHM6OgorICAgICAgICBDYXB0dXJlZCBsb2dzIGFyZSBhdmFp
bGFibGUgdGhyb3VnaCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMvbWV0aG9kczo6CiAKICAgICAg
ICAgKiBjYXBsb2cudGV4dCAgICAgICAgICAgIC0+IHN0cmluZyBjb250YWluaW5nIGZvcm1hdHRl
ZCBsb2cgb3V0cHV0CiAgICAgICAgICogY2FwbG9nLnJlY29yZHMgICAgICAgICAtPiBsaXN0IG9m
IGxvZ2dpbmcuTG9nUmVjb3JkIGluc3RhbmNlcwogICAgICAgICAqIGNhcGxvZy5yZWNvcmRfdHVw
bGVzICAgLT4gbGlzdCBvZiAobG9nZ2VyX25hbWUsIGxldmVsLCBtZXNzYWdlKSB0dXBsZXMKICAg
ICAgICAgKiBjYXBsb2cuY2xlYXIoKSAgICAgICAgIC0+IGNsZWFyIGNhcHR1cmVkIHJlY29yZHMg
YW5kIGZvcm1hdHRlZCBsb2cgb3V0cHV0IHN0cmluZworCiAgICAgbW9ua2V5cGF0Y2gKICAgICAg
ICAgVGhlIHJldHVybmVkIGBgbW9ua2V5cGF0Y2hgYCBmaXh0dXJlIHByb3ZpZGVzIHRoZXNlCiAg
ICAgICAgIGhlbHBlciBtZXRob2RzIHRvIG1vZGlmeSBvYmplY3RzLCBkaWN0aW9uYXJpZXMgb3Ig
b3MuZW52aXJvbjo6CkBAIC05MCw3ICsxMTgsNyBAQCBGb3IgaW5mb3JtYXRpb24gYWJvdXQgZml4
dHVyZXMsIHNlZSA6cmVmOmBmaXh0dXJlc2AuIFRvIHNlZSBhIGNvbXBsZXRlIGxpc3Qgb2YgYQog
ICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0aXRlbShtYXBwaW5nLCBuYW1lLCB2YWx1ZSkKICAg
ICAgICAgICAgIG1vbmtleXBhdGNoLmRlbGl0ZW0ob2JqLCBuYW1lLCByYWlzaW5nPVRydWUpCiAg
ICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYobmFtZSwgdmFsdWUsIHByZXBlbmQ9RmFsc2Up
Ci0gICAgICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYobmFtZSwgdmFsdWUsIHJhaXNpbmc9VHJ1
ZSkKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLmRlbGVudihuYW1lLCByYWlzaW5nPVRydWUpCiAg
ICAgICAgICAgICBtb25rZXlwYXRjaC5zeXNwYXRoX3ByZXBlbmQocGF0aCkKICAgICAgICAgICAg
IG1vbmtleXBhdGNoLmNoZGlyKHBhdGgpCiAKQEAgLTk4LDEzICsxMjYsMTkgQEAgRm9yIGluZm9y
bWF0aW9uIGFib3V0IGZpeHR1cmVzLCBzZWUgOnJlZjpgZml4dHVyZXNgLiBUbyBzZWUgYSBjb21w
bGV0ZSBsaXN0IG9mIGEKICAgICAgICAgdGVzdCBmdW5jdGlvbiBvciBmaXh0dXJlIGhhcyBmaW5p
c2hlZC4gVGhlIGBgcmFpc2luZ2BgCiAgICAgICAgIHBhcmFtZXRlciBkZXRlcm1pbmVzIGlmIGEg
S2V5RXJyb3Igb3IgQXR0cmlidXRlRXJyb3IKICAgICAgICAgd2lsbCBiZSByYWlzZWQgaWYgdGhl
IHNldC9kZWxldGlvbiBvcGVyYXRpb24gaGFzIG5vIHRhcmdldC4KKwogICAgIHJlY3dhcm4KICAg
ICAgICAgUmV0dXJuIGEgOmNsYXNzOmBXYXJuaW5nc1JlY29yZGVyYCBpbnN0YW5jZSB0aGF0IHJl
Y29yZHMgYWxsIHdhcm5pbmdzIGVtaXR0ZWQgYnkgdGVzdCBmdW5jdGlvbnMuCiAKICAgICAgICAg
U2VlIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS93YXJuaW5ncy5odG1sIGZvciBpbmZv
cm1hdGlvbgogICAgICAgICBvbiB3YXJuaW5nIGNhdGVnb3JpZXMuCi0gICAgdG1wZGlyX2ZhY3Rv
cnkKLSAgICAgICAgUmV0dXJuIGEgVGVtcGRpckZhY3RvcnkgaW5zdGFuY2UgZm9yIHRoZSB0ZXN0
IHNlc3Npb24uCisKKyAgICB0bXBkaXJfZmFjdG9yeSBbc2Vzc2lvbiBzY29wZV0KKyAgICAgICAg
UmV0dXJuIGEgOmNsYXNzOmBfcHl0ZXN0LnRtcGRpci5UZW1wZGlyRmFjdG9yeWAgaW5zdGFuY2Ug
Zm9yIHRoZSB0ZXN0IHNlc3Npb24uCisKKyAgICB0bXBfcGF0aF9mYWN0b3J5IFtzZXNzaW9uIHNj
b3BlXQorICAgICAgICBSZXR1cm4gYSA6Y2xhc3M6YF9weXRlc3QudG1wZGlyLlRlbXBQYXRoRmFj
dG9yeWAgaW5zdGFuY2UgZm9yIHRoZSB0ZXN0IHNlc3Npb24uCisKICAgICB0bXBkaXIKICAgICAg
ICAgUmV0dXJuIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoIG9iamVjdAogICAgICAgICB3aGlj
aCBpcyB1bmlxdWUgdG8gZWFjaCB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb24sCkBAIC0xMTQsNiAr
MTQ4LDE4IEBAIEZvciBpbmZvcm1hdGlvbiBhYm91dCBmaXh0dXJlcywgc2VlIDpyZWY6YGZpeHR1
cmVzYC4gVG8gc2VlIGEgY29tcGxldGUgbGlzdCBvZiBhCiAKICAgICAgICAgLi4gX2BweS5wYXRo
LmxvY2FsYDogaHR0cHM6Ly9weS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvcGF0aC5odG1sCiAK
KyAgICB0bXBfcGF0aAorICAgICAgICBSZXR1cm4gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHBhdGgg
b2JqZWN0CisgICAgICAgIHdoaWNoIGlzIHVuaXF1ZSB0byBlYWNoIHRlc3QgZnVuY3Rpb24gaW52
b2NhdGlvbiwKKyAgICAgICAgY3JlYXRlZCBhcyBhIHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGJhc2Ug
dGVtcG9yYXJ5CisgICAgICAgIGRpcmVjdG9yeS4gIFRoZSByZXR1cm5lZCBvYmplY3QgaXMgYSA6
Y2xhc3M6YHBhdGhsaWIuUGF0aGAKKyAgICAgICAgb2JqZWN0LgorCisgICAgICAgIC4uIG5vdGU6
OgorCisgICAgICAgICAgICBpbiBweXRob24gPCAzLjYgdGhpcyBpcyBhIHBhdGhsaWIyLlBhdGgK
KworCiAgICAgbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcwogCiBZb3UgY2FuIGFsc28gaW50
ZXJhY3RpdmVseSBhc2sgZm9yIGhlbHAsIGUuZy4gYnkgdHlwaW5nIG9uIHRoZSBQeXRob24gaW50
ZXJhY3RpdmUgcHJvbXB0IHNvbWV0aGluZyBsaWtlOjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9jYWNoZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2FjaGUucnN0CmluZGV4IDM3
YmNmNzA3MGQ0MmJhZjk4ZDA4ZGE0ZGMyYjVhMGFkMGM0YTkyNzMuLjI3YTg0NDkxMDhjOTJjNDE0
OGUwY2QzMTk4MjE5YzhhMDM1ZDVjMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9j
YWNoZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NhY2hlLnJzdApAQCAtNSw3ICs1LDcg
QEAKIENhY2hlOiB3b3JraW5nIHdpdGggY3Jvc3MtdGVzdHJ1biBzdGF0ZQogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLS4uIHZlcnNpb25hZGRlZDo6IDIuOAorCiAK
IFVzYWdlCiAtLS0tLS0tLS0KQEAgLTQzLDcgKzQzLDkgQEAgRmlyc3QsIGxldCdzIGNyZWF0ZSA1
MCB0ZXN0IGludm9jYXRpb24gb2Ygd2hpY2ggb25seSAyIGZhaWw6OgogICAgICAgICBpZiBpIGlu
ICgxNywgMjUpOgogICAgICAgICAgICBweXRlc3QuZmFpbCgiYmFkIGx1Y2siKQogCi1JZiB5b3Ug
cnVuIHRoaXMgZm9yIHRoZSBmaXJzdCB0aW1lIHlvdSB3aWxsIHNlZSB0d28gZmFpbHVyZXM6Ogor
SWYgeW91IHJ1biB0aGlzIGZvciB0aGUgZmlyc3QgdGltZSB5b3Ugd2lsbCBzZWUgdHdvIGZhaWx1
cmVzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcQogICAgIC4u
Li4uLi4uLi4uLi4uLi4uRi4uLi4uLi5GLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uICAgICAgICAg
ICAgICAgICAgIFsxMDAlXQpAQCAtNzIsMTMgKzc0LDE2IEBAIElmIHlvdSBydW4gdGhpcyBmb3Ig
dGhlIGZpcnN0IHRpbWUgeW91IHdpbGwgc2VlIHR3byBmYWlsdXJlczo6CiAgICAgdGVzdF81MC5w
eTo2OiBGYWlsZWQKICAgICAyIGZhaWxlZCwgNDggcGFzc2VkIGluIDAuMTIgc2Vjb25kcwogCi1J
ZiB5b3UgdGhlbiBydW4gaXQgd2l0aCBgYC0tbGZgYDo6CitJZiB5b3UgdGhlbiBydW4gaXQgd2l0
aCBgYC0tbGZgYDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLS1s
ZgogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24g
My54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6
ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Ci0gICAgY29sbGVjdGVkIDUwIGl0ZW1zIC8gNDgg
ZGVzZWxlY3RlZAorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQu
eC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklY
Ly5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVj
dGVkIDUwIGl0ZW1zIC8gNDggZGVzZWxlY3RlZCAvIDIgc2VsZWN0ZWQKICAgICBydW4tbGFzdC1m
YWlsdXJlOiByZXJ1biBwcmV2aW91cyAyIGZhaWx1cmVzCiAKICAgICB0ZXN0XzUwLnB5IEZGICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAw
JV0KQEAgLTExMywxMiArMTE4LDE1IEBAIG5vdCBiZWVuIHJ1biAoImRlc2VsZWN0ZWQiKS4KIAog
Tm93LCBpZiB5b3UgcnVuIHdpdGggdGhlIGBgLS1mZmBgIG9wdGlvbiwgYWxsIHRlc3RzIHdpbGwg
YmUgcnVuIGJ1dCB0aGUgZmlyc3QKIHByZXZpb3VzIGZhaWx1cmVzIHdpbGwgYmUgZXhlY3V0ZWQg
Zmlyc3QgKGFzIGNhbiBiZSBzZWVuIGZyb20gdGhlIHNlcmllcwotb2YgYGBGRmBgIGFuZCBkb3Rz
KTo6CitvZiBgYEZGYGAgYW5kIGRvdHMpOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAg
ICAkIHB5dGVzdCAtLWZmCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vz
c2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxp
bnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55
Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBs
aW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngu
eQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRp
cjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCA1MCBpdGVtcwogICAgIHJ1bi1sYXN0
LWZhaWx1cmU6IHJlcnVuIHByZXZpb3VzIDIgZmFpbHVyZXMgZmlyc3QKIApAQCAtMTYwLDEwICsx
NjgsMTIgQEAgQmVoYXZpb3Igd2hlbiBubyB0ZXN0cyBmYWlsZWQgaW4gdGhlIGxhc3QgcnVuCiAK
IFdoZW4gbm8gdGVzdHMgZmFpbGVkIGluIHRoZSBsYXN0IHJ1biwgb3Igd2hlbiBubyBjYWNoZWQg
YGBsYXN0ZmFpbGVkYGAgZGF0YSB3YXMKIGZvdW5kLCBgYHB5dGVzdGBgIGNhbiBiZSBjb25maWd1
cmVkIGVpdGhlciB0byBydW4gYWxsIG9mIHRoZSB0ZXN0cyBvciBubyB0ZXN0cywKLXVzaW5nIHRo
ZSBgYC0tbGFzdC1mYWlsZWQtbm8tZmFpbHVyZXNgYCBvcHRpb24sIHdoaWNoIHRha2VzIG9uZSBv
ZiB0aGUgZm9sbG93aW5nIHZhbHVlczo6Cit1c2luZyB0aGUgYGAtLWxhc3QtZmFpbGVkLW5vLWZh
aWx1cmVzYGAgb3B0aW9uLCB3aGljaCB0YWtlcyBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6
CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKLSAgICBweXRlc3QgLS1sYXN0LWZhaWxlZC1uby1m
YWlsdXJlcyBhbGwgICAgIyBydW4gYWxsIHRlc3RzIChkZWZhdWx0IGJlaGF2aW9yKQotICAgIHB5
dGVzdCAtLWxhc3QtZmFpbGVkLW5vLWZhaWx1cmVzIG5vbmUgICAjIHJ1biBubyB0ZXN0cyBhbmQg
ZXhpdAorICAgIHB5dGVzdCAtLWxhc3QtZmFpbGVkIC0tbGFzdC1mYWlsZWQtbm8tZmFpbHVyZXMg
YWxsICAgICMgcnVuIGFsbCB0ZXN0cyAoZGVmYXVsdCBiZWhhdmlvcikKKyAgICBweXRlc3QgLS1s
YXN0LWZhaWxlZCAtLWxhc3QtZmFpbGVkLW5vLWZhaWx1cmVzIG5vbmUgICAjIHJ1biBubyB0ZXN0
cyBhbmQgZXhpdAogCiBUaGUgbmV3IGNvbmZpZy5jYWNoZSBvYmplY3QKIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNzksMTEgKzE4OSwxNCBAQCBhY3Jvc3MgcHl0ZXN0IGlu
dm9jYXRpb25zOjoKICAgICBpbXBvcnQgcHl0ZXN0CiAgICAgaW1wb3J0IHRpbWUKIAorICAgIGRl
ZiBleHBlbnNpdmVfY29tcHV0YXRpb24oKToKKyAgICAgICAgcHJpbnQoInJ1bm5pbmcgZXhwZW5z
aXZlIGNvbXB1dGF0aW9uLi4uIikKKwogICAgIEBweXRlc3QuZml4dHVyZQogICAgIGRlZiBteWRh
dGEocmVxdWVzdCk6CiAgICAgICAgIHZhbCA9IHJlcXVlc3QuY29uZmlnLmNhY2hlLmdldCgiZXhh
bXBsZS92YWx1ZSIsIE5vbmUpCiAgICAgICAgIGlmIHZhbCBpcyBOb25lOgotICAgICAgICAgICAg
dGltZS5zbGVlcCg5KjAuNikgIyBleHBlbnNpdmUgY29tcHV0YXRpb24gOikKKyAgICAgICAgICAg
IGV4cGVuc2l2ZV9jb21wdXRhdGlvbigpCiAgICAgICAgICAgICB2YWwgPSA0MgogICAgICAgICAg
ICAgcmVxdWVzdC5jb25maWcuY2FjaGUuc2V0KCJleGFtcGxlL3ZhbHVlIiwgdmFsKQogICAgICAg
ICByZXR1cm4gdmFsCkBAIC0xOTEsOCArMjA0LDkgQEAgYWNyb3NzIHB5dGVzdCBpbnZvY2F0aW9u
czo6CiAgICAgZGVmIHRlc3RfZnVuY3Rpb24obXlkYXRhKToKICAgICAgICAgYXNzZXJ0IG15ZGF0
YSA9PSAyMwogCi1JZiB5b3UgcnVuIHRoaXMgY29tbWFuZCBvbmNlLCBpdCB3aWxsIHRha2UgYSB3
aGlsZSBiZWNhdXNlCi1vZiB0aGUgc2xlZXA6OgorSWYgeW91IHJ1biB0aGlzIGNvbW1hbmQgZm9y
IHRoZSBmaXJzdCB0aW1lLCB5b3UgY2FuIHNlZSB0aGUgcHJpbnQgc3RhdGVtZW50OgorCisuLiBj
b2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcQogICAgIEYgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsx
MDAlXQpAQCAtMjA1LDExICsyMTksMTUgQEAgb2YgdGhlIHNsZWVwOjoKICAgICA+ICAgICAgIGFz
c2VydCBteWRhdGEgPT0gMjMKICAgICBFICAgICAgIGFzc2VydCA0MiA9PSAyMwogCi0gICAgdGVz
dF9jYWNoaW5nLnB5OjE0OiBBc3NlcnRpb25FcnJvcgorICAgIHRlc3RfY2FjaGluZy5weToxNzog
QXNzZXJ0aW9uRXJyb3IKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBz
dGRvdXQgc2V0dXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgcnVubmluZyBleHBl
bnNpdmUgY29tcHV0YXRpb24uLi4KICAgICAxIGZhaWxlZCBpbiAwLjEyIHNlY29uZHMKIAogSWYg
eW91IHJ1biBpdCBhIHNlY29uZCB0aW1lIHRoZSB2YWx1ZSB3aWxsIGJlIHJldHJpZXZlZCBmcm9t
Ci10aGUgY2FjaGUgYW5kIHRoaXMgd2lsbCBiZSBxdWljazo6Cit0aGUgY2FjaGUgYW5kIG5vdGhp
bmcgd2lsbCBiZSBwcmludGVkOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5
dGVzdCAtcQogICAgIEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtMjIyLDQxICsyNDAsNzYgQEAgdGhl
IGNhY2hlIGFuZCB0aGlzIHdpbGwgYmUgcXVpY2s6OgogICAgID4gICAgICAgYXNzZXJ0IG15ZGF0
YSA9PSAyMwogICAgIEUgICAgICAgYXNzZXJ0IDQyID09IDIzCiAKLSAgICB0ZXN0X2NhY2hpbmcu
cHk6MTQ6IEFzc2VydGlvbkVycm9yCisgICAgdGVzdF9jYWNoaW5nLnB5OjE3OiBBc3NlcnRpb25F
cnJvcgogICAgIDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcwogCiBTZWUgdGhlIDpyZWY6YGNhY2hl
LWFwaWAgZm9yIG1vcmUgZGV0YWlscy4KIAogCiBJbnNwZWN0aW5nIENhY2hlIGNvbnRlbnQKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CiBZb3UgY2FuIGFsd2F5cyBwZWVrIGF0IHRoZSBjb250ZW50IG9mIHRoZSBjYWNoZSB1c2luZyB0
aGUKLWBgLS1jYWNoZS1zaG93YGAgY29tbWFuZCBsaW5lIG9wdGlvbjo6CitgYC0tY2FjaGUtc2hv
d2BgIGNvbW1hbmQgbGluZSBvcHRpb246CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAg
ICQgcHl0ZXN0IC0tY2FjaGUtc2hvdwogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0
ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Ci0gICAgY2Fj
aGVkaXI6ICRSRUdFTkRPQ19UTVBESVIvLnB5dGVzdF9jYWNoZQotICAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gY2FjaGUgdmFsdWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwg
cHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0
ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgorICAgIGNhY2hlZGlyOiAk
UFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tIGNhY2hlIHZhbHVlcyBmb3IgJyonIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg
IGNhY2hlL2xhc3RmYWlsZWQgY29udGFpbnM6Ci0gICAgICB7J3Rlc3RfY2FjaGluZy5weTo6dGVz
dF9mdW5jdGlvbic6IFRydWV9CisgICAgICB7J3Rlc3RfNTAucHk6OnRlc3RfbnVtWzE3XSc6IFRy
dWUsCisgICAgICAgJ3Rlc3RfNTAucHk6OnRlc3RfbnVtWzI1XSc6IFRydWUsCisgICAgICAgJ3Rl
c3RfYXNzZXJ0MS5weTo6dGVzdF9mdW5jdGlvbic6IFRydWUsCisgICAgICAgJ3Rlc3RfYXNzZXJ0
Mi5weTo6dGVzdF9zZXRfY29tcGFyaXNvbic6IFRydWUsCisgICAgICAgJ3Rlc3RfY2FjaGluZy5w
eTo6dGVzdF9mdW5jdGlvbic6IFRydWUsCisgICAgICAgJ3Rlc3RfZm9vY29tcGFyZS5weTo6dGVz
dF9jb21wYXJlJzogVHJ1ZX0KICAgICBjYWNoZS9ub2RlaWRzIGNvbnRhaW5zOgogICAgICAgWyd0
ZXN0X2NhY2hpbmcucHk6OnRlc3RfZnVuY3Rpb24nXQorICAgIGNhY2hlL3N0ZXB3aXNlIGNvbnRh
aW5zOgorICAgICAgW10KKyAgICBleGFtcGxlL3ZhbHVlIGNvbnRhaW5zOgorICAgICAgNDIKKwor
ICAgID09PT09PT09PT09PT09PT09PT09PT09IG5vIHRlc3RzIHJhbiBpbiAwLjEyIHNlY29uZHMg
PT09PT09PT09PT09PT09PT09PT09PT0KKworYGAtLWNhY2hlLXNob3dgYCB0YWtlcyBhbiBvcHRp
b25hbCBhcmd1bWVudCB0byBzcGVjaWZ5IGEgZ2xvYiBwYXR0ZXJuIGZvcgorZmlsdGVyaW5nOgor
CisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CisKKyAgICAkIHB5dGVzdCAtLWNhY2hlLXNob3cgZXhh
bXBsZS8qCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFy
dHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5
dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2Fj
aGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5E
T0NfVE1QRElSCisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAg
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBjYWNoZSB2YWx1ZXMgZm9yICdleGFtcGxlLyonIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgZXhhbXBsZS92YWx1ZSBjb250YWluczoKICAgICAg
IDQyCiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBz
ZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CiAKIENsZWFyaW5nIENhY2hlIGNvbnRlbnQK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAogWW91IGNhbiBpbnN0cnVjdCBweXRlc3QgdG8gY2xlYXIgYWxsIGNhY2hlIGZpbGVzIGFuZCB2
YWx1ZXMKLWJ5IGFkZGluZyB0aGUgYGAtLWNhY2hlLWNsZWFyYGAgb3B0aW9uIGxpa2UgdGhpczo6
CitieSBhZGRpbmcgdGhlIGBgLS1jYWNoZS1jbGVhcmBgIG9wdGlvbiBsaWtlIHRoaXM6CisKKy4u
IGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLS1jYWNoZS1jbGVhcgogCiBUaGlzIGlz
IHJlY29tbWVuZGVkIGZvciBpbnZvY2F0aW9ucyBmcm9tIENvbnRpbnVvdXMgSW50ZWdyYXRpb24K
IHNlcnZlcnMgd2hlcmUgaXNvbGF0aW9uIGFuZCBjb3JyZWN0bmVzcyBpcyBtb3JlIGltcG9ydGFu
dAogdGhhbiBzcGVlZC4KKworCitTdGVwd2lzZQorLS0tLS0tLS0KKworQXMgYW4gYWx0ZXJuYXRp
dmUgdG8gYGAtLWxmIC14YGAsIGVzcGVjaWFsbHkgZm9yIGNhc2VzIHdoZXJlIHlvdSBleHBlY3Qg
YSBsYXJnZSBwYXJ0IG9mIHRoZSB0ZXN0IHN1aXRlIHdpbGwgZmFpbCwgYGAtLXN3YGAsIGBgLS1z
dGVwd2lzZWBgIGFsbG93cyB5b3UgdG8gZml4IHRoZW0gb25lIGF0IGEgdGltZS4gVGhlIHRlc3Qg
c3VpdGUgd2lsbCBydW4gdW50aWwgdGhlIGZpcnN0IGZhaWx1cmUgYW5kIHRoZW4gc3RvcC4gQXQg
dGhlIG5leHQgaW52b2NhdGlvbiwgdGVzdHMgd2lsbCBjb250aW51ZSBmcm9tIHRoZSBsYXN0IGZh
aWxpbmcgdGVzdCBhbmQgdGhlbiBydW4gdW50aWwgdGhlIG5leHQgZmFpbGluZyB0ZXN0LiBZb3Ug
bWF5IHVzZSB0aGUgYGAtLXN0ZXB3aXNlLXNraXBgYCBvcHRpb24gdG8gaWdub3JlIG9uZSBmYWls
aW5nIHRlc3QgYW5kIHN0b3AgdGhlIHRlc3QgZXhlY3V0aW9uIG9uIHRoZSBzZWNvbmQgZmFpbGlu
ZyB0ZXN0IGluc3RlYWQuIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBnZXQgc3R1Y2sgb24gYSBmYWls
aW5nIHRlc3QgYW5kIGp1c3Qgd2FudCB0byBpZ25vcmUgaXQgdW50aWwgbGF0ZXIuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2FwdHVyZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
Y2FwdHVyZS5yc3QKaW5kZXggYWI4NmZiNTVmM2Q4ODIzNDBlMjA4ZmY3OTIxZjMwZmE0ZjQ0N2I5
Yi4uOTA0MDNkMjNhYjcxMGFiZGY4OGE0Y2ViYTU5YjZiNTg4MWEyOTJhMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2NhcHR1cmUucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9j
YXB0dXJlLnJzdApAQCAtMzUsNyArMzUsOSBAQCBUaGVyZSBhcmUgdHdvIHdheXMgaW4gd2hpY2gg
YGBweXRlc3RgYCBjYW4gcGVyZm9ybSBjYXB0dXJpbmc6CiAKIC4uIF9gZGlzYWJsZSBjYXB0dXJp
bmdgOgogCi1Zb3UgY2FuIGluZmx1ZW5jZSBvdXRwdXQgY2FwdHVyaW5nIG1lY2hhbmlzbXMgZnJv
bSB0aGUgY29tbWFuZCBsaW5lOjoKK1lvdSBjYW4gaW5mbHVlbmNlIG91dHB1dCBjYXB0dXJpbmcg
bWVjaGFuaXNtcyBmcm9tIHRoZSBjb21tYW5kIGxpbmU6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNo
CiAKICAgICBweXRlc3QgLXMgICAgICAgICAgICAjIGRpc2FibGUgYWxsIGNhcHR1cmluZwogICAg
IHB5dGVzdCAtLWNhcHR1cmU9c3lzICMgcmVwbGFjZSBzeXMuc3Rkb3V0L3N0ZGVyciB3aXRoIGlu
LW1lbSBmaWxlcwpAQCAtNTIsNyArNTQsNyBAQCBpcyB0aGF0IHlvdSBjYW4gdXNlIHByaW50IHN0
YXRlbWVudHMgZm9yIGRlYnVnZ2luZzo6CiAgICAgIyBjb250ZW50IG9mIHRlc3RfbW9kdWxlLnB5
CiAKICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgotICAgICAgICBwcmludCAoInNl
dHRpbmcgdXAgJXMiICUgZnVuY3Rpb24pCisgICAgICAgIHByaW50KCJzZXR0aW5nIHVwICVzIiAl
IGZ1bmN0aW9uKQogCiAgICAgZGVmIHRlc3RfZnVuYzEoKToKICAgICAgICAgYXNzZXJ0IFRydWUK
QEAgLTYxLDEyICs2MywxNSBAQCBpcyB0aGF0IHlvdSBjYW4gdXNlIHByaW50IHN0YXRlbWVudHMg
Zm9yIGRlYnVnZ2luZzo6CiAgICAgICAgIGFzc2VydCBGYWxzZQogCiBhbmQgcnVubmluZyB0aGlz
IG1vZHVsZSB3aWxsIHNob3cgeW91IHByZWNpc2VseSB0aGUgb3V0cHV0Ci1vZiB0aGUgZmFpbGlu
ZyBmdW5jdGlvbiBhbmQgaGlkZSB0aGUgb3RoZXIgb25lOjoKK29mIHRoZSBmYWlsaW5nIGZ1bmN0
aW9uIGFuZCBoaWRlIHRoZSBvdGhlciBvbmU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAog
ICAgICQgcHl0ZXN0CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lv
biBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4
IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0g
ICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51
eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQor
ICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAyIGl0ZW1zCiAKICAgICB0ZXN0X21vZHVs
ZS5weSAuRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbMTAwJV0KQEAgLTExNiwxMSArMTIxLDExIEBAIHNhbWUgaW50ZXJmYWNlIGJ1dCBhbGxvd3Mg
dG8gYWxzbyBjYXB0dXJlIG91dHB1dCBmcm9tCiBsaWJyYXJpZXMgb3Igc3VicHJvY2Vzc2VzIHRo
YXQgZGlyZWN0bHkgd3JpdGUgdG8gb3BlcmF0aW5nCiBzeXN0ZW0gbGV2ZWwgb3V0cHV0IHN0cmVh
bXMgKEZEMSBhbmQgRkQyKS4KIAotLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogVGhlIHJldHVy
biB2YWx1ZSBmcm9tIGBgcmVhZG91dGVycmBgIGNoYW5nZWQgdG8gYSBgYG5hbWVkdHVwbGVgYCB3
aXRoIHR3byBhdHRyaWJ1dGVzLCBgYG91dGBgIGFuZCBgYGVycmBgLgogCi0uLiB2ZXJzaW9uYWRk
ZWQ6OiAzLjMKKwogCiBJZiB0aGUgY29kZSB1bmRlciB0ZXN0IHdyaXRlcyBub24tdGV4dHVhbCBk
YXRhLCB5b3UgY2FuIGNhcHR1cmUgdGhpcyB1c2luZwogdGhlIGBgY2Fwc3lzYmluYXJ5YGAgZml4
dHVyZSB3aGljaCBpbnN0ZWFkIHJldHVybnMgYGBieXRlc2BgIGZyb20KQEAgLTEyOCw3ICsxMzMs
NyBAQCB0aGUgYGByZWFkb3V0ZXJyYGAgbWV0aG9kLiAgVGhlIGBgY2FwZnN5c2JpbmFyeWBgIGZp
eHR1cmUgaXMgY3VycmVudGx5IG9ubHkKIGF2YWlsYWJsZSBpbiBweXRob24gMy4KIAogCi0uLiB2
ZXJzaW9uYWRkZWQ6OiAzLjMKKwogCiBJZiB0aGUgY29kZSB1bmRlciB0ZXN0IHdyaXRlcyBub24t
dGV4dHVhbCBkYXRhLCB5b3UgY2FuIGNhcHR1cmUgdGhpcyB1c2luZwogdGhlIGBgY2FwZmRiaW5h
cnlgYCBmaXh0dXJlIHdoaWNoIGluc3RlYWQgcmV0dXJucyBgYGJ5dGVzYGAgZnJvbQpAQCAtMTM2
LDcgKzE0MSw3IEBAIHRoZSBgYHJlYWRvdXRlcnJgYCBtZXRob2QuICBUaGUgYGBjYXBmZGJpbmFy
eWBgIGZpeHR1cmUgb3BlcmF0ZXMgb24gdGhlCiBmaWxlZGVzY3JpcHRvciBsZXZlbC4KIAogCi0u
LiB2ZXJzaW9uYWRkZWQ6OiAzLjAKKwogCiBUbyB0ZW1wb3JhcmlseSBkaXNhYmxlIGNhcHR1cmUg
d2l0aGluIGEgdGVzdCwgYm90aCBgYGNhcHN5c2BgCiBhbmQgYGBjYXBmZGBgIGhhdmUgYSBgYGRp
c2FibGVkKClgYCBtZXRob2QgdGhhdCBjYW4gYmUgdXNlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2NoYW5nZWxvZy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2hhbmdlbG9nLnJz
dAppbmRleCBhNTliM2M3ZTI1MGVlYWExMTFlMmJmM2ZlZGYwYTQ0OWZmYjM4YjNmLi5mOWEyMTlh
OTJhZTMyYTEwYTFlNWJiMGE2NmFmNjRlMjJkZjkyODFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vY2hhbmdlbG9nLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2hhbmdlbG9n
LnJzdApAQCAtMSw3ICsxLDQgQEAKIAogLi4gX2NoYW5nZWxvZzoKIAotQ2hhbmdlbG9nIGhpc3Rv
cnkKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCiAuLiBpbmNsdWRlOjogLi4v
Li4vQ0hBTkdFTE9HLnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbmYucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vY29uZi5weQppbmRleCBlYmZmNmZmM2JmYTQ4Yzg4NDBkMjEx
NjQyMmM3ZmRmYjI5NTY0YjUzLi4zOWJhNWU0Zjg1NDUyMTI2OTJhODM1ODE3NjUyYmJkZTZkNTQ3
NzhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29uZi5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vY29uZi5weQpAQCAtMTAsMTcgKzEwLDE1IEBACiAjCiAjIEFsbCBjb25maWd1
cmF0aW9uIHZhbHVlcyBoYXZlIGEgZGVmYXVsdDsgdmFsdWVzIHRoYXQgYXJlIGNvbW1lbnRlZCBv
dXQKICMgc2VydmUgdG8gc2hvdyB0aGUgZGVmYXVsdC4KLQogIyBUaGUgdmVyc2lvbiBpbmZvIGZv
ciB0aGUgcHJvamVjdCB5b3UncmUgZG9jdW1lbnRpbmcsIGFjdHMgYXMgcmVwbGFjZW1lbnQgZm9y
CiAjIHx2ZXJzaW9ufCBhbmQgfHJlbGVhc2V8LCBhbHNvIHVzZWQgaW4gdmFyaW91cyBvdGhlciBw
bGFjZXMgdGhyb3VnaG91dCB0aGUKICMgYnVpbHQgZG9jdW1lbnRzLgogIwogIyBUaGUgZnVsbCB2
ZXJzaW9uLCBpbmNsdWRpbmcgYWxwaGEvYmV0YS9yYyB0YWdzLgogIyBUaGUgc2hvcnQgWC5ZIHZl
cnNpb24uCi0KK2ltcG9ydCBkYXRldGltZQogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCi1pbXBvcnQg
ZGF0ZXRpbWUKIAogZnJvbSBfcHl0ZXN0IGltcG9ydCBfX3ZlcnNpb25fXyBhcyB2ZXJzaW9uCiAK
QEAgLTQyLDExICs0MCwxMyBAQCB0b2RvX2luY2x1ZGVfdG9kb3MgPSAxCiAjIEFkZCBhbnkgU3Bo
aW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVyZSwgYXMgc3RyaW5ncy4gVGhleSBjYW4gYmUg
ZXh0ZW5zaW9ucwogIyBjb21pbmcgd2l0aCBTcGhpbnggKG5hbWVkICdzcGhpbnguZXh0LionKSBv
ciB5b3VyIGN1c3RvbSBvbmVzLgogZXh0ZW5zaW9ucyA9IFsKKyAgICAicHlnbWVudHNfcHl0ZXN0
IiwKICAgICAic3BoaW54LmV4dC5hdXRvZG9jIiwKLSAgICAic3BoaW54LmV4dC50b2RvIiwKICAg
ICAic3BoaW54LmV4dC5hdXRvc3VtbWFyeSIsCiAgICAgInNwaGlueC5leHQuaW50ZXJzcGhpbngi
LAorICAgICJzcGhpbnguZXh0LnRvZG8iLAogICAgICJzcGhpbnguZXh0LnZpZXdjb2RlIiwKKyAg
ICAic3BoaW54X3JlbW92ZWRfaW4iLAogICAgICJzcGhpbnhjb250cmliX3RyaW8iLAogXQogCkBA
IC02NSw3ICs2NSw3IEBAIG1hc3Rlcl9kb2MgPSAiY29udGVudHMiCiAjIEdlbmVyYWwgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHByb2plY3QuCiBwcm9qZWN0ID0gdSJweXRlc3QiCiB5ZWFyID0gZGF0
ZXRpbWUuZGF0ZXRpbWUudXRjbm93KCkueWVhcgotY29weXJpZ2h0ID0gdSIyMDE14oCTe30gLCBo
b2xnZXIga3Jla2VsIGFuZCBweXRlc3QtZGV2IHRlYW0iLmZvcm1hdCh5ZWFyKQorY29weXJpZ2h0
ID0gdSIyMDE14oCTMjAyMCwgaG9sZ2VyIGtyZWtlbCBhbmQgcHl0ZXN0LWRldiB0ZWFtIgogCiAK
ICMgVGhlIGxhbmd1YWdlIGZvciBjb250ZW50IGF1dG9nZW5lcmF0ZWQgYnkgU3BoaW54LiBSZWZl
ciB0byBkb2N1bWVudGF0aW9uCkBAIC0yNzUsNyArMjc1LDcgQEAgbWFuX3BhZ2VzID0gWygidXNh
Z2UiLCAicHl0ZXN0IiwgdSJweXRlc3QgdXNhZ2UiLCBbdSJob2xnZXIga3Jla2VsIGF0IG1lcmxp
bnV4IGUKIGVwdWJfdGl0bGUgPSB1InB5dGVzdCIKIGVwdWJfYXV0aG9yID0gdSJob2xnZXIga3Jl
a2VsIGF0IG1lcmxpbnV4IGV1IgogZXB1Yl9wdWJsaXNoZXIgPSB1ImhvbGdlciBrcmVrZWwgYXQg
bWVybGludXggZXUiCi1lcHViX2NvcHlyaWdodCA9IHUiMjAxMywgaG9sZ2VyIGtyZWtlbCBldCBh
bGlpIgorZXB1Yl9jb3B5cmlnaHQgPSB1IjIwMTMtMjAyMCwgaG9sZ2VyIGtyZWtlbCBldCBhbGlp
IgogCiAjIFRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dC4gSXQgZGVmYXVsdHMgdG8gdGhlIGxhbmd1
YWdlIG9wdGlvbgogIyBvciBlbiBpZiB0aGUgbGFuZ3VhZ2UgaXMgbm90IHNldC4KQEAgLTMyOSwx
MyArMzI5LDEzIEBAIHRleGluZm9fZG9jdW1lbnRzID0gWwogCiAKICMgRXhhbXBsZSBjb25maWd1
cmF0aW9uIGZvciBpbnRlcnNwaGlueDogcmVmZXIgdG8gdGhlIFB5dGhvbiBzdGFuZGFyZCBsaWJy
YXJ5LgotaW50ZXJzcGhpbnhfbWFwcGluZyA9IHsicHl0aG9uIjogKCJodHRwOi8vZG9jcy5weXRo
b24ub3JnLzMiLCBOb25lKX0KK2ludGVyc3BoaW54X21hcHBpbmcgPSB7InB5dGhvbiI6ICgiaHR0
cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMyIsIE5vbmUpfQogCiAKIGRlZiBzZXR1cChhcHApOgogICAg
ICMgZnJvbSBzcGhpbnguZXh0LmF1dG9kb2MgaW1wb3J0IGN1dF9saW5lcwogICAgICMgYXBwLmNv
bm5lY3QoJ2F1dG9kb2MtcHJvY2Vzcy1kb2NzdHJpbmcnLCBjdXRfbGluZXMoNCwgd2hhdD1bJ21v
ZHVsZSddKSkKLSAgICBhcHAuYWRkX2Rlc2NyaXB0aW9uX3VuaXQoCisgICAgYXBwLmFkZF9vYmpl
Y3RfdHlwZSgKICAgICAgICAgImNvbmZ2YWwiLAogICAgICAgICAiY29uZnZhbCIsCiAgICAgICAg
IG9iam5hbWU9ImNvbmZpZ3VyYXRpb24gdmFsdWUiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbmZ0ZXN0LnB5CmluZGV4
IDFhNjJlMWI1ZGY1MzUwM2U4ZTMzZTVlMTA1OTVjM2I1MWI1Yzg2MTMuLmI1MWFhZTViNjg1YThk
ZmE3YTE3NTZhN2NkNzVhN2QxMTcwNGQ5MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9jb25mdGVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29uZnRlc3QucHkKQEAgLTEg
KzEsMiBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGNvbGxlY3RfaWdub3JlID0gWyJjb25m
LnB5Il0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb250ZW50cy5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vY29udGVudHMucnN0CmluZGV4IDlmMWQ4ZDg1YWMyNWE2YTc4OGJiMTA2
Mjg0MjI5ZGE0YzExZmY5MGIuLjFlYzUwMmMxZjJiOGM1YWU3N2QzNmQ4OGI2NDQ0YzlkZWI2ODdj
ZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb250ZW50cy5yc3QKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2NvbnRlbnRzLnJzdApAQCAtMzMsMTIgKzMzLDE1IEBAIEZ1bGwgcHl0
ZXN0IGRvY3VtZW50YXRpb24KICAgIHJlZmVyZW5jZQogCiAgICBnb29kcHJhY3RpY2VzCisgICBm
bGFreQogICAgcHl0aG9ucGF0aAogICAgY3VzdG9taXplCiAgICBleGFtcGxlL2luZGV4CiAgICBi
YXNoLWNvbXBsZXRpb24KIAogICAgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkKKyAgIGRlcHJlY2F0
aW9ucworICAgcHkyNy1weTM0LWRlcHJlY2F0aW9uCiAgICBoaXN0b3JpY2FsLW5vdGVzCiAgICBs
aWNlbnNlCiAgICBjb250cmlidXRpbmcKQEAgLTQ3LDYgKzUwLDcgQEAgRnVsbCBweXRlc3QgZG9j
dW1lbnRhdGlvbgogICAgcHJvamVjdHMKICAgIGZhcQogICAgY29udGFjdAorICAgdGlkZWxpZnQK
IAogLi4gb25seTo6IGh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2N1c3Rv
bWl6ZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY3VzdG9taXplLnJzdAppbmRleCBjMWEzNDk4
YzdiNjdkNDhlY2M5YmNjZDQyMWI1ZTM4ZTM4OGNhZTcyLi43NzIxN2U5ZDJlM2VjNzgzMjU0ZjYy
NzczOWY5YmI2Y2E2NzRhNjZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY3VzdG9t
aXplLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY3VzdG9taXplLnJzdApAQCAtNSw3ICs1
LDkgQEAgQ29tbWFuZCBsaW5lIG9wdGlvbnMgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXR0aW5n
cwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAogWW91IGNhbiBnZXQgaGVscCBvbiBjb21tYW5kIGxpbmUgb3B0aW9ucyBh
bmQgdmFsdWVzIGluIElOSS1zdHlsZQotY29uZmlndXJhdGlvbnMgZmlsZXMgYnkgdXNpbmcgdGhl
IGdlbmVyYWwgaGVscCBvcHRpb246OgorY29uZmlndXJhdGlvbnMgZmlsZXMgYnkgdXNpbmcgdGhl
IGdlbmVyYWwgaGVscCBvcHRpb246CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRl
c3QgLWggICAjIHByaW50cyBvcHRpb25zIF9hbmRfIGNvbmZpZyBmaWxlIHNldHRpbmdzCiAKQEAg
LTE4LDcgKzIwLDcgQEAgd2hpY2ggd2VyZSByZWdpc3RlcmVkIGJ5IGluc3RhbGxlZCBwbHVnaW5z
LgogSW5pdGlhbGl6YXRpb246IGRldGVybWluaW5nIHJvb3RkaXIgYW5kIGluaWZpbGUKIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIHZlcnNpb25h
ZGRlZDo6IDIuNworCiAKIHB5dGVzdCBkZXRlcm1pbmVzIGEgYGByb290ZGlyYGAgZm9yIGVhY2gg
dGVzdCBydW4gd2hpY2ggZGVwZW5kcyBvbgogdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgKHNw
ZWNpZmllZCB0ZXN0IGZpbGVzLCBwYXRocykgYW5kIG9uCkBAIC0zMiw3ICszNCw3IEBAIEhlcmUn
cyBhIHN1bW1hcnkgd2hhdCBgYHB5dGVzdGBgIHVzZXMgYGByb290ZGlyYGAgZm9yOgogICBjbGFz
cyBuYW1lLCBmdW5jdGlvbiBuYW1lIGFuZCBwYXJhbWV0cml6YXRpb24gKGlmIGFueSkuCiAKICog
SXMgdXNlZCBieSBwbHVnaW5zIGFzIGEgc3RhYmxlIGxvY2F0aW9uIHRvIHN0b3JlIHByb2plY3Qv
dGVzdCBydW4gc3BlY2lmaWMgaW5mb3JtYXRpb247Ci0gIGZvciBleGFtcGxlLCB0aGUgaW50ZXJu
YWwgOnJlZjpgY2FjaGUgPGNhY2hlPmAgcGx1Z2luIGNyZWF0ZXMgYSBgYC5jYWNoZWBgIHN1YmRp
cmVjdG9yeQorICBmb3IgZXhhbXBsZSwgdGhlIGludGVybmFsIDpyZWY6YGNhY2hlIDxjYWNoZT5g
IHBsdWdpbiBjcmVhdGVzIGEgYGAucHl0ZXN0X2NhY2hlYGAgc3ViZGlyZWN0b3J5CiAgIGluIGBg
cm9vdGRpcmBgIHRvIHN0b3JlIGl0cyBjcm9zcy10ZXN0IHJ1biBzdGF0ZS4KIAogSW1wb3J0YW50
IHRvIGVtcGhhc2l6ZSB0aGF0IGBgcm9vdGRpcmBgIGlzICoqTk9UKiogdXNlZCB0byBtb2RpZnkg
YGBzeXMucGF0aGBgL2BgUFlUSE9OUEFUSGBgIG9yCkBAIC04OCwxNiArOTAsMjAgQEAgVGhlIGBg
Y29uZmlnYGAgb2JqZWN0IHdpbGwgc3Vic2VxdWVudGx5IGNhcnJ5IHRoZXNlIGF0dHJpYnV0ZXM6
CiAKIC0gYGBjb25maWcuaW5pZmlsZWBgOiB0aGUgZGV0ZXJtaW5lZCBpbmktZmlsZSwgbWF5IGJl
IGBgTm9uZWBgLgogCi1UaGUgcm9vdGRpciBpcyB1c2VkIGEgcmVmZXJlbmNlIGRpcmVjdG9yeSBm
b3IgY29uc3RydWN0aW5nIHRlc3QKK1RoZSByb290ZGlyIGlzIHVzZWQgYXMgYSByZWZlcmVuY2Ug
ZGlyZWN0b3J5IGZvciBjb25zdHJ1Y3RpbmcgdGVzdAogYWRkcmVzc2VzICgibm9kZWlkcyIpIGFu
ZCBjYW4gYmUgdXNlZCBhbHNvIGJ5IHBsdWdpbnMgZm9yIHN0b3JpbmcKIHBlci10ZXN0cnVuIGlu
Zm9ybWF0aW9uLgogCi1FeGFtcGxlOjoKK0V4YW1wbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNo
CiAKICAgICBweXRlc3QgcGF0aC90by90ZXN0ZGlyIHBhdGgvb3RoZXIvCiAKIHdpbGwgZGV0ZXJt
aW5lIHRoZSBjb21tb24gYW5jZXN0b3IgYXMgYGBwYXRoYGAgYW5kIHRoZW4KLWNoZWNrIGZvciBp
bmktZmlsZXMgYXMgZm9sbG93czo6CitjaGVjayBmb3IgaW5pLWZpbGVzIGFzIGZvbGxvd3M6CisK
Ky4uIGNvZGUtYmxvY2s6OiB0ZXh0CiAKICAgICAjIGZpcnN0IGxvb2sgZm9yIHB5dGVzdC5pbmkg
ZmlsZXMKICAgICBwYXRoL3B5dGVzdC5pbmkKQEAgLTEyNywyNSArMTMzLDMzIEBAIHByb2dyZXNz
IG91dHB1dCwgeW91IGNhbiB3cml0ZSBpdCBpbnRvIGEgY29uZmlndXJhdGlvbiBmaWxlOgogCiAu
LiBjb2RlLWJsb2NrOjogaW5pCiAKLSAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQotICAgICMg
KG9yIHRveC5pbmkgb3Igc2V0dXAuY2ZnKQorICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pIG9y
IHRveC5pbmkKKyAgICAjIHNldHVwLmNmZyBmaWxlcyBzaG91bGQgdXNlIFt0b29sOnB5dGVzdF0g
c2VjdGlvbiBpbnN0ZWFkCiAgICAgW3B5dGVzdF0KICAgICBhZGRvcHRzID0gLXJhIC1xCiAKIEFs
dGVybmF0aXZlbHksIHlvdSBjYW4gc2V0IGEgYGBQWVRFU1RfQURET1BUU2BgIGVudmlyb25tZW50
IHZhcmlhYmxlIHRvIGFkZCBjb21tYW5kCi1saW5lIG9wdGlvbnMgd2hpbGUgdGhlIGVudmlyb25t
ZW50IGlzIGluIHVzZTo6CitsaW5lIG9wdGlvbnMgd2hpbGUgdGhlIGVudmlyb25tZW50IGlzIGlu
IHVzZToKKworLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgIGV4cG9ydCBQWVRFU1RfQURET1BU
Uz0iLXYiCiAKLUhlcmUncyBob3cgdGhlIGNvbW1hbmQtbGluZSBpcyBidWlsdCBpbiB0aGUgcHJl
c2VuY2Ugb2YgYGBhZGRvcHRzYGAgb3IgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlOjoKK0hlcmUn
cyBob3cgdGhlIGNvbW1hbmQtbGluZSBpcyBidWlsdCBpbiB0aGUgcHJlc2VuY2Ugb2YgYGBhZGRv
cHRzYGAgb3IgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlOgorCisuLiBjb2RlLWJsb2NrOjogdGV4
dAogCi0gICAgPHB5dGVzdC5pbmk6YWRkb3B0cz4gJFBZVEVTVF9BRERPVFBTIDxleHRyYSBjb21t
YW5kLWxpbmUgYXJndW1lbnRzPgorICAgIDxweXRlc3QuaW5pOmFkZG9wdHM+ICRQWVRFU1RfQURE
T1BUUyA8ZXh0cmEgY29tbWFuZC1saW5lIGFyZ3VtZW50cz4KIAotU28gaWYgdGhlIHVzZXIgZXhl
Y3V0ZXMgaW4gdGhlIGNvbW1hbmQtbGluZTo6CitTbyBpZiB0aGUgdXNlciBleGVjdXRlcyBpbiB0
aGUgY29tbWFuZC1saW5lOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC1t
IHNsb3cKIAotVGhlIGFjdHVhbCBjb21tYW5kIGxpbmUgZXhlY3V0ZWQgaXM6OgorVGhlIGFjdHVh
bCBjb21tYW5kIGxpbmUgZXhlY3V0ZWQgaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAg
ICBweXRlc3QgLXJhIC1xIC12IC1tIHNsb3cKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2RlcHJlY2F0aW9ucy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZGVwcmVjYXRpb25zLnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNTA1YzBhOTRhYzlkOTJmY2JjMmJmNjllZDQ1YWI2OWU5YjQxYjBkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2RlcHJlY2F0aW9ucy5yc3QKQEAg
LTAsMCArMSw1MzUgQEAKKy4uIF9kZXByZWNhdGlvbnM6CisKK0RlcHJlY2F0aW9ucyBhbmQgUmVt
b3ZhbHMKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhpcyBwYWdlIGxpc3RzIGFsbCBw
eXRlc3QgZmVhdHVyZXMgdGhhdCBhcmUgY3VycmVudGx5IGRlcHJlY2F0ZWQgb3IgaGF2ZSBiZWVu
IHJlbW92ZWQgaW4gcGFzdCBtYWpvciByZWxlYXNlcy4KK1RoZSBvYmplY3RpdmUgaXMgdG8gZ2l2
ZSB1c2VycyBhIGNsZWFyIHJhdGlvbmFsZSB3aHkgYSBjZXJ0YWluIGZlYXR1cmUgaGFzIGJlZW4g
cmVtb3ZlZCwgYW5kIHdoYXQgYWx0ZXJuYXRpdmVzCitzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLgor
CisuLiBjb250ZW50czo6CisgICAgOmRlcHRoOiAzCisgICAgOmxvY2FsOgorCisKK0RlcHJlY2F0
ZWQgRmVhdHVyZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworQmVsb3cgaXMgYSBjb21wbGV0ZSBs
aXN0IG9mIGFsbCBweXRlc3QgZmVhdHVyZXMgd2hpY2ggYXJlIGNvbnNpZGVyZWQgZGVwcmVjYXRl
ZC4gVXNpbmcgdGhvc2UgZmVhdHVyZXMgd2lsbCBpc3N1ZQorOmNsYXNzOmBfcHl0ZXN0Lndhcm5p
bmdfdHlwZXMuUHl0ZXN0V2FybmluZ2Agb3Igc3ViY2xhc3Nlcywgd2hpY2ggY2FuIGJlIGZpbHRl
cmVkIHVzaW5nCis6cmVmOmBzdGFuZGFyZCB3YXJuaW5nIGZpbHRlcnMgPHdhcm5pbmdzPmAuCisK
Ky4uIF9gcmFpc2VzIG1lc3NhZ2UgZGVwcmVjYXRlZGA6CisKK2BgIm1lc3NhZ2UiYGAgcGFyYW1l
dGVyIG9mIGBgcHl0ZXN0LnJhaXNlc2BgCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fgorCisuLiBkZXByZWNhdGVkOjogNC4xCisKK0l0IGlzIGEgY29tbW9uIG1p
c3Rha2UgdG8gdGhpbmsgdGhpcyBwYXJhbWV0ZXIgd2lsbCBtYXRjaCB0aGUgZXhjZXB0aW9uIG1l
c3NhZ2UsIHdoaWxlIGluIGZhY3QKK2l0IG9ubHkgc2VydmVzIHRvIHByb3ZpZGUgYSBjdXN0b20g
bWVzc2FnZSBpbiBjYXNlIHRoZSBgYHB5dGVzdC5yYWlzZXNgYCBjaGVjayBmYWlscy4gVG8gcHJl
dmVudAordXNlcnMgZnJvbSBtYWtpbmcgdGhpcyBtaXN0YWtlLCBhbmQgYmVjYXVzZSBpdCBpcyBi
ZWxpZXZlZCB0byBiZSBsaXR0bGUgdXNlZCwgcHl0ZXN0IGlzCitkZXByZWNhdGluZyBpdCB3aXRo
b3V0IHByb3ZpZGluZyBhbiBhbHRlcm5hdGl2ZSBmb3IgdGhlIG1vbWVudC4KKworSWYgeW91IGhh
dmUgYSB2YWxpZCB1c2UgY2FzZSBmb3IgdGhpcyBwYXJhbWV0ZXIsIGNvbnNpZGVyIHRoYXQgdG8g
b2J0YWluIHRoZSBzYW1lIHJlc3VsdHMKK3lvdSBjYW4ganVzdCBjYWxsIGBgcHl0ZXN0LmZhaWxg
YCBtYW51YWxseSBhdCB0aGUgZW5kIG9mIHRoZSBgYHdpdGhgYCBzdGF0ZW1lbnQuCisKK0ZvciBl
eGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoVGltZW91dEVycm9yLCBtZXNzYWdlPSJDbGllbnQgZ290IHVuZXhwZWN0ZWQgbWVzc2FnZSIp
OgorICAgICAgICB3YWl0X2Zvcih3ZWJzb2NrZXQucmVjdigpLCAwLjUpCisKKworQmVjb21lczoK
KworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVv
dXRFcnJvcik6CisgICAgICAgIHdhaXRfZm9yKHdlYnNvY2tldC5yZWN2KCksIDAuNSkKKyAgICAg
ICAgcHl0ZXN0LmZhaWwoIkNsaWVudCBnb3QgdW5leHBlY3RlZCBtZXNzYWdlIikKKworCitJZiB5
b3Ugc3RpbGwgaGF2ZSBjb25jZXJucyBhYm91dCB0aGlzIGRlcHJlY2F0aW9uIGFuZCBmdXR1cmUg
cmVtb3ZhbCwgcGxlYXNlIGNvbW1lbnQgb24KK2Bpc3N1ZSAjMzk3NCA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTc0PmBfXy4KKworCitgYHB5dGVzdC5jb25m
aWdgYCBnbG9iYWwKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiBkZXByZWNhdGVkOjog
NC4xCisKK1RoZSBgYHB5dGVzdC5jb25maWdgYCBnbG9iYWwgb2JqZWN0IGlzIGRlcHJlY2F0ZWQu
ICBJbnN0ZWFkIHVzZQorYGByZXF1ZXN0LmNvbmZpZ2BgICh2aWEgdGhlIGBgcmVxdWVzdGBgIGZp
eHR1cmUpIG9yIGlmIHlvdSBhcmUgYSBwbHVnaW4gYXV0aG9yCit1c2UgdGhlIGBgcHl0ZXN0X2Nv
bmZpZ3VyZShjb25maWcpYGAgaG9vay4gTm90ZSB0aGF0IG1hbnkgaG9va3MgY2FuIGFsc28gYWNj
ZXNzCit0aGUgYGBjb25maWdgYCBvYmplY3QgaW5kaXJlY3RseSwgdGhyb3VnaCBgYHNlc3Npb24u
Y29uZmlnYGAgb3IgYGBpdGVtLmNvbmZpZ2BgIGZvciBleGFtcGxlLgorCisuLiBfcmFpc2VzLXdh
cm5zLWV4ZWM6CisKK2BgcmFpc2VzYGAgLyBgYHdhcm5zYGAgd2l0aCBhIHN0cmluZyBhcyB0aGUg
c2Vjb25kIGFyZ3VtZW50Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiBkZXByZWNhdGVkOjogNC4xCisKK1VzZSB0aGUgY29u
dGV4dCBtYW5hZ2VyIGZvcm0gb2YgdGhlc2UgaW5zdGVhZC4gIFdoZW4gbmVjZXNzYXJ5LCBpbnZv
a2UgYGBleGVjYGAKK2RpcmVjdGx5LgorCitFeGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0
aG9uCisKKyAgICBweXRlc3QucmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLCAiMSAvIDAiKQorICAg
IHB5dGVzdC5yYWlzZXMoU3ludGF4RXJyb3IsICJhICQgYiIpCisKKyAgICBweXRlc3Qud2FybnMo
RGVwcmVjYXRpb25XYXJuaW5nLCAibXlfZnVuY3Rpb24oKSIpCisgICAgcHl0ZXN0Lndhcm5zKFN5
bnRheFdhcm5pbmcsICJhc3NlcnQoMSwgMikiKQorCitCZWNvbWVzOgorCisuLiBjb2RlLWJsb2Nr
OjogcHl0aG9uCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgor
ICAgICAgICAxIC8gMAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJvcik6CisgICAg
ICAgIGV4ZWMoImEgJCBiIikgICMgZXhlYyBpcyByZXF1aXJlZCBmb3IgaW52YWxpZCBzeW50YXgK
KworICAgIHdpdGggcHl0ZXN0Lndhcm5zKERlcHJlY2F0aW9uV2FybmluZyk6CisgICAgICAgIG15
X2Z1bmN0aW9uKCkKKyAgICB3aXRoIHB5dGVzdC53YXJucyhTeW50YXhXYXJuaW5nKToKKyAgICAg
ICAgZXhlYygiYXNzZXJ0KDEsIDIpIikgICMgZXhlYyBpcyB1c2VkIHRvIGF2b2lkIGEgdG9wLWxl
dmVsIHdhcm5pbmcKKworCisKKworCisKK1Jlc3VsdCBsb2cgKGBgLS1yZXN1bHQtbG9nYGApCit+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisKKworVGhlIGBgLS1yZXN1bHRsb2dgYCBj
b21tYW5kIGxpbmUgb3B0aW9uIGhhcyBiZWVuIGRlcHJlY2F0ZWQ6IGl0IGlzIGxpdHRsZSB1c2Vk
CithbmQgdGhlcmUgYXJlIG1vcmUgbW9kZXJuIGFuZCBiZXR0ZXIgYWx0ZXJuYXRpdmVzLCBmb3Ig
ZXhhbXBsZSBgcHl0ZXN0LXRhcCA8aHR0cHM6Ly90YXBweS5yZWFkdGhlZG9jcy5pby9lbi9sYXRl
c3QvPmBfLgorCitUaGlzIGZlYXR1cmUgd2lsbCBiZSBlZmZlY3RpdmVseSByZW1vdmVkIGluIHB5
dGVzdCA0LjAgYXMgdGhlIHRlYW0gaW50ZW5kcyB0byBpbmNsdWRlIGEgYmV0dGVyIGFsdGVybmF0
aXZlIGluIHRoZSBjb3JlLgorCitJZiB5b3UgaGF2ZSBhbnkgY29uY2VybnMsIHBsZWFzZSBkb24n
dCBoZXNpdGF0ZSB0byBgb3BlbiBhbiBpc3N1ZSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcz5gX18uCisKK1JlbW92ZWQgRmVhdHVyZXMKKy0tLS0tLS0tLS0tLS0t
LS0KKworQXMgc3RhdGVkIGluIG91ciA6cmVmOmBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eWAgcG9s
aWN5LCBkZXByZWNhdGVkIGZlYXR1cmVzIGFyZSByZW1vdmVkIG9ubHkgaW4gbWFqb3IgcmVsZWFz
ZXMgYWZ0ZXIKK2FuIGFwcHJvcHJpYXRlIHBlcmlvZCBvZiBkZXByZWNhdGlvbiBoYXMgcGFzc2Vk
LgorCitVc2luZyBgYENsYXNzYGAgaW4gY3VzdG9tIENvbGxlY3RvcnMKK35+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitVc2lu
ZyBvYmplY3RzIG5hbWVkIGBgIkNsYXNzImBgIGFzIGEgd2F5IHRvIGN1c3RvbWl6ZSB0aGUgdHlw
ZSBvZiBub2RlcyB0aGF0IGFyZSBjb2xsZWN0ZWQgaW4gYGBDb2xsZWN0b3JgYAorc3ViY2xhc3Nl
cyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2VycyBpbnN0ZWFkIHNob3VsZCB1c2UgYGBweXRlc3Rf
cHljb2xsZWN0X21ha2VpdGVtYGAgdG8gY3VzdG9taXplIG5vZGUgdHlwZXMgZHVyaW5nCitjb2xs
ZWN0aW9uLgorCitUaGlzIGlzc3VlIHNob3VsZCBhZmZlY3Qgb25seSBhZHZhbmNlZCBwbHVnaW5z
IHdobyBjcmVhdGUgbmV3IGNvbGxlY3Rpb24gdHlwZXMsIHNvIGlmIHlvdSBzZWUgdGhpcyB3YXJu
aW5nCittZXNzYWdlIHBsZWFzZSBjb250YWN0IHRoZSBhdXRob3JzIHNvIHRoZXkgY2FuIGNoYW5n
ZSB0aGUgY29kZS4KKworCittYXJrcyBpbiBgYHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAKK35+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6
IDQuMAorCitBcHBseWluZyBtYXJrcyB0byB2YWx1ZXMgb2YgYSBgYHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplYGAgY2FsbCBpcyBub3cgZGVwcmVjYXRlZC4gRm9yIGV4YW1wbGU6CisKKy4uIGNvZGUt
YmxvY2s6OiBweXRob24KKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAg
ImEsIGIiLAorICAgICAgICBbCisgICAgICAgICAgICAoMywgOSksCisgICAgICAgICAgICBweXRl
c3QubWFyay54ZmFpbChyZWFzb249ImZsYWt5IikoNiwgMzYpLAorICAgICAgICAgICAgKDEwLCAx
MDApLAorICAgICAgICAgICAgKDIwLCAyMDApLAorICAgICAgICAgICAgKDQwLCA0MDApLAorICAg
ICAgICAgICAgKDUwLCA1MDApLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9mb28o
YSwgYik6CisgICAgICAgIC4uLgorCitUaGlzIGNvZGUgYXBwbGllcyB0aGUgYGBweXRlc3QubWFy
ay54ZmFpbChyZWFzb249ImZsYWt5IilgYCBtYXJrIHRvIHRoZSBgYCg2LCAzNilgYCB2YWx1ZSBv
ZiB0aGUgYWJvdmUgcGFyYW1ldHJpemF0aW9uCitjYWxsLgorCitUaGlzIHdhcyBjb25zaWRlcmVk
IGhhcmQgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCwgYW5kIGFsc28gaXRzIGltcGxlbWVudGF0aW9u
IHByZXNlbnRlZCBwcm9ibGVtcyB0byB0aGUgY29kZSBwcmV2ZW50aW5nCitmdXJ0aGVyIGludGVy
bmFsIGltcHJvdmVtZW50cyBpbiB0aGUgbWFya3MgYXJjaGl0ZWN0dXJlLgorCitUbyB1cGRhdGUg
dGhlIGNvZGUsIHVzZSBgYHB5dGVzdC5wYXJhbWBgOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9u
CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJhLCBiIiwKKyAgICAg
ICAgWworICAgICAgICAgICAgKDMsIDkpLAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDYsIDM2
LCBtYXJrcz1weXRlc3QubWFyay54ZmFpbChyZWFzb249ImZsYWt5IikpLAorICAgICAgICAgICAg
KDEwLCAxMDApLAorICAgICAgICAgICAgKDIwLCAyMDApLAorICAgICAgICAgICAgKDQwLCA0MDAp
LAorICAgICAgICAgICAgKDUwLCA1MDApLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVz
dF9mb28oYSwgYik6CisgICAgICAgIC4uLgorCisKK2BgcHl0ZXN0X2Z1bmNhcmdfX2BgIHByZWZp
eAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKy4uIHZlcnNpb25yZW1vdmVkOjogNC4w
CisKK0luIHZlcnkgZWFybHkgcHl0ZXN0IHZlcnNpb25zIGZpeHR1cmVzIGNvdWxkIGJlIGRlZmlu
ZWQgdXNpbmcgdGhlIGBgcHl0ZXN0X2Z1bmNhcmdfX2BgIHByZWZpeDoKKworLi4gY29kZS1ibG9j
azo6IHB5dGhvbgorCisgICAgZGVmIHB5dGVzdF9mdW5jYXJnX19kYXRhKCk6CisgICAgICAgIHJl
dHVybiBTb21lRGF0YSgpCisKK1N3aXRjaCBvdmVyIHRvIHRoZSBgYEBweXRlc3QuZml4dHVyZWBg
IGRlY29yYXRvcjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgQHB5dGVzdC5maXh0
dXJlCisgICAgZGVmIGRhdGEoKToKKyAgICAgICAgcmV0dXJuIFNvbWVEYXRhKCkKKworCisKK1tw
eXRlc3RdIHNlY3Rpb24gaW4gc2V0dXAuY2ZnIGZpbGVzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitgYFtweXRlc3RdYGAg
c2VjdGlvbnMgaW4gYGBzZXR1cC5jZmdgYCBmaWxlcyBzaG91bGQgbm93IGJlIG5hbWVkIGBgW3Rv
b2w6cHl0ZXN0XWBgCit0byBhdm9pZCBjb25mbGljdHMgd2l0aCBvdGhlciBkaXN0dXRpbHMgY29t
bWFuZHMuCisKKworTWV0YWZ1bmMuYWRkY2FsbAorfn5+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJz
aW9ucmVtb3ZlZDo6IDQuMAorCis6bWV0aDpgX3B5dGVzdC5weXRob24uTWV0YWZ1bmMuYWRkY2Fs
bGAgd2FzIGEgcHJlY3Vyc29yIHRvIHRoZSBjdXJyZW50IHBhcmFtZXRyaXplZCBtZWNoYW5pc20u
IFVzZXJzIHNob3VsZCB1c2UKKzptZXRoOmBfcHl0ZXN0LnB5dGhvbi5NZXRhZnVuYy5wYXJhbWV0
cml6ZWAgaW5zdGVhZC4KKworRXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisg
ICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgIG1ldGFmdW5j
LmFkZGNhbGwoeyJpIjogMX0sIGlkPSIxIikKKyAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbCh7Imki
OiAyfSwgaWQ9IjIiKQorCitCZWNvbWVzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAg
ICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgbWV0YWZ1bmMu
cGFyYW1ldHJpemUoImkiLCBbMSwgMl0sIGlkcz1bIjEiLCAiMiJdKQorCisKK2BgY2FjaGVkX3Nl
dHVwYGAKK35+fn5+fn5+fn5+fn5+fn4KKworLi4gdmVyc2lvbnJlbW92ZWQ6OiA0LjAKKworYGBy
ZXF1ZXN0LmNhY2hlZF9zZXR1cGBgIHdhcyB0aGUgcHJlY3Vyc29yIG9mIHRoZSBzZXR1cC90ZWFy
ZG93biBtZWNoYW5pc20gYXZhaWxhYmxlIHRvIGZpeHR1cmVzLgorCitFeGFtcGxlOgorCisuLiBj
b2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgZGJfc2Vz
c2lvbigpOgorICAgICAgICByZXR1cm4gcmVxdWVzdC5jYWNoZWRfc2V0dXAoCisgICAgICAgICAg
ICBzZXR1cD1TZXNzaW9uLmNyZWF0ZSwgdGVhcmRvd249bGFtYmRhIHNlc3Npb246IHNlc3Npb24u
Y2xvc2UoKSwgc2NvcGU9Im1vZHVsZSIKKyAgICAgICAgKQorCitUaGlzIHNob3VsZCBiZSB1cGRh
dGVkIHRvIG1ha2UgdXNlIG9mIHN0YW5kYXJkIGZpeHR1cmUgbWVjaGFuaXNtczoKKworLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQor
ICAgIGRlZiBkYl9zZXNzaW9uKCk6CisgICAgICAgIHNlc3Npb24gPSBTZXNzaW9uLmNyZWF0ZSgp
CisgICAgICAgIHlpZWxkIHNlc3Npb24KKyAgICAgICAgc2Vzc2lvbi5jbG9zZSgpCisKKworWW91
IGNhbiBjb25zdWx0IGBmdW5jYXJnIGNvbXBhcmlzb24gc2VjdGlvbiBpbiB0aGUgZG9jcyA8aHR0
cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2Z1bmNhcmdfY29tcGFyZS5odG1sPmBfIGZv
cgorbW9yZSBpbmZvcm1hdGlvbi4KKworCitweXRlc3RfcGx1Z2lucyBpbiBub24tdG9wLWxldmVs
IGNvbmZ0ZXN0IGZpbGVzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+CisKKy4uIHZlcnNpb25yZW1vdmVkOjogNC4wCisKK0RlZmluaW5nIGBgcHl0ZXN0X3Bs
dWdpbnNgYCBpcyBub3cgZGVwcmVjYXRlZCBpbiBub24tdG9wLWxldmVsIGNvbmZ0ZXN0LnB5Citm
aWxlcyBiZWNhdXNlIHRoZXkgd2lsbCBhY3RpdmF0ZSByZWZlcmVuY2VkIHBsdWdpbnMgKmdsb2Jh
bGx5Kiwgd2hpY2ggaXMgc3VycHJpc2luZyBiZWNhdXNlIGZvciBhbGwgb3RoZXIgcHl0ZXN0Citm
ZWF0dXJlcyBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMgYXJlIG9ubHkgKmFjdGl2ZSogZm9yIHRlc3Rz
IGF0IG9yIGJlbG93IGl0LgorCisKK2BgQ29uZmlnLndhcm5gYCBhbmQgYGBOb2RlLndhcm5gYAor
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKy4uIHZlcnNpb25yZW1vdmVkOjog
NC4wCisKK1Rob3NlIG1ldGhvZHMgd2VyZSBwYXJ0IG9mIHRoZSBpbnRlcm5hbCBweXRlc3Qgd2Fy
bmluZ3Mgc3lzdGVtLCBidXQgc2luY2UgYGAzLjhgYCBweXRlc3QgaXMgdXNpbmcgdGhlIGJ1aWx0
aW4gd2FybmluZworc3lzdGVtIGZvciBpdHMgb3duIHdhcm5pbmdzLCBzbyB0aG9zZSB0d28gZnVu
Y3Rpb25zIGFyZSBub3cgZGVwcmVjYXRlZC4KKworYGBDb25maWcud2FybmBgIHNob3VsZCBiZSBy
ZXBsYWNlZCBieSBjYWxscyB0byB0aGUgc3RhbmRhcmQgYGB3YXJuaW5ncy53YXJuYGAsIGV4YW1w
bGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGNvbmZpZy53YXJuKCJDMSIsICJz
b21lIHdhcm5pbmciKQorCitCZWNvbWVzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAg
ICB3YXJuaW5ncy53YXJuKHB5dGVzdC5QeXRlc3RXYXJuaW5nKCJzb21lIHdhcm5pbmciKSkKKwor
YGBOb2RlLndhcm5gYCBub3cgc3VwcG9ydHMgdHdvIHNpZ25hdHVyZXM6CisKKyogYGBub2RlLndh
cm4oUHl0ZXN0V2FybmluZygic29tZSBtZXNzYWdlIikpYGA6IGlzIG5vdyB0aGUgKipyZWNvbW1l
bmRlZCoqIHdheSB0byBjYWxsIHRoaXMgZnVuY3Rpb24uCisgIFRoZSB3YXJuaW5nIGluc3RhbmNl
IG11c3QgYmUgYSBQeXRlc3RXYXJuaW5nIG9yIHN1YmNsYXNzLgorCisqIGBgbm9kZS53YXJuKCJD
SSIsICJzb21lIG1lc3NhZ2UiKWBgOiB0aGlzIGNvZGUvbWVzc2FnZSBmb3JtIGhhcyBiZWVuICoq
cmVtb3ZlZCoqIGFuZCBzaG91bGQgYmUgY29udmVydGVkIHRvIHRoZSB3YXJuaW5nIGluc3RhbmNl
IGZvcm0gYWJvdmUuCisKK3JlY29yZF94bWxfcHJvcGVydHkKK35+fn5+fn5+fn5+fn5+fn5+fn4K
KworLi4gdmVyc2lvbnJlbW92ZWQ6OiA0LjAKKworVGhlIGBgcmVjb3JkX3htbF9wcm9wZXJ0eWBg
IGZpeHR1cmUgaXMgbm93IGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhlIG1vcmUgZ2VuZXJpYyBg
YHJlY29yZF9wcm9wZXJ0eWBgLCB3aGljaAorY2FuIGJlIHVzZWQgYnkgb3RoZXIgY29uc3VtZXJz
IChmb3IgZXhhbXBsZSBgYHB5dGVzdC1odG1sYGApIHRvIG9idGFpbiBjdXN0b20gaW5mb3JtYXRp
b24gYWJvdXQgdGhlIHRlc3QgcnVuLgorCitUaGlzIGlzIGp1c3QgYSBtYXR0ZXIgb2YgcmVuYW1p
bmcgdGhlIGZpeHR1cmUgYXMgdGhlIEFQSSBpcyB0aGUgc2FtZToKKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgorCisgICAgZGVmIHRlc3RfZm9vKHJlY29yZF94bWxfcHJvcGVydHkpOgorICAgICAg
ICAuLi4KKworQ2hhbmdlIHRvOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBkZWYg
dGVzdF9mb28ocmVjb3JkX3Byb3BlcnR5KToKKyAgICAgICAgLi4uCisKKworUGFzc2luZyBjb21t
YW5kLWxpbmUgc3RyaW5nIHRvIGBgcHl0ZXN0Lm1haW4oKWBgCit+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworLi4gdmVyc2lvbnJlbW92ZWQ6OiA0LjAK
KworUGFzc2luZyBhIGNvbW1hbmQtbGluZSBzdHJpbmcgdG8gYGBweXRlc3QubWFpbigpYGAgaXMg
ZGVwcmVjYXRlZDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgcHl0ZXN0Lm1haW4o
Ii12IC1zIikKKworUGFzcyBhIGxpc3QgaW5zdGVhZDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhv
bgorCisgICAgcHl0ZXN0Lm1haW4oWyItdiIsICItcyJdKQorCisKK0J5IHBhc3NpbmcgYSBzdHJp
bmcsIHVzZXJzIGV4cGVjdCB0aGF0IHB5dGVzdCB3aWxsIGludGVycHJldCB0aGF0IGNvbW1hbmQt
bGluZSB1c2luZyB0aGUgc2hlbGwgcnVsZXMgdGhleSBhcmUgd29ya2luZworb24gKGZvciBleGFt
cGxlIGBgYmFzaGBgIG9yIGBgUG93ZXJzaGVsbGBgKSwgYnV0IHRoaXMgaXMgdmVyeSBoYXJkL2lt
cG9zc2libGUgdG8gZG8gaW4gYSBwb3J0YWJsZSB3YXkuCisKKworQ2FsbGluZyBmaXh0dXJlcyBk
aXJlY3RseQorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6
IDQuMAorCitDYWxsaW5nIGEgZml4dHVyZSBmdW5jdGlvbiBkaXJlY3RseSwgYXMgb3Bwb3NlZCB0
byByZXF1ZXN0IHRoZW0gaW4gYSB0ZXN0IGZ1bmN0aW9uLCBpcyBkZXByZWNhdGVkLgorCitGb3Ig
ZXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgQHB5dGVzdC5maXh0dXJl
CisgICAgZGVmIGNlbGwoKToKKyAgICAgICAgcmV0dXJuIC4uLgorCisKKyAgICBAcHl0ZXN0LmZp
eHR1cmUKKyAgICBkZWYgZnVsbF9jZWxsKCk6CisgICAgICAgIGNlbGwgPSBjZWxsKCkKKyAgICAg
ICAgY2VsbC5tYWtlX2Z1bGwoKQorICAgICAgICByZXR1cm4gY2VsbAorCitUaGlzIGlzIGEgZ3Jl
YXQgc291cmNlIG9mIGNvbmZ1c2lvbiB0byBuZXcgdXNlcnMsIHdoaWNoIHdpbGwgb2Z0ZW4gY2Fs
bCB0aGUgZml4dHVyZSBmdW5jdGlvbnMgYW5kIHJlcXVlc3QgdGhlbSBmcm9tIHRlc3QgZnVuY3Rp
b25zIGludGVyY2hhbmdlYWJseSwgd2hpY2ggYnJlYWtzIHRoZSBmaXh0dXJlIHJlc29sdXRpb24g
bW9kZWwuCisKK0luIHRob3NlIGNhc2VzIGp1c3QgcmVxdWVzdCB0aGUgZnVuY3Rpb24gZGlyZWN0
bHkgaW4gdGhlIGRlcGVuZGVudCBmaXh0dXJlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisK
KyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgY2VsbCgpOgorICAgICAgICByZXR1cm4gLi4u
CisKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBmdWxsX2NlbGwoY2VsbCk6CisgICAg
ICAgIGNlbGwubWFrZV9mdWxsKCkKKyAgICAgICAgcmV0dXJuIGNlbGwKKworQWx0ZXJuYXRpdmVs
eSBpZiB0aGUgZml4dHVyZSBmdW5jdGlvbiBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaW5zaWRl
IGEgdGVzdCAobWFraW5nIGl0IGhhcmQgdG8gYXBwbHkgdGhlIGFib3ZlIHBhdHRlcm4pIG9yCitp
ZiB5b3Ugd291bGQgbGlrZSB0byBtYWtlIG1pbmltYWwgY2hhbmdlcyB0byB0aGUgY29kZSwgeW91
IGNhbiBjcmVhdGUgYSBmaXh0dXJlIHdoaWNoIGNhbGxzIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiB0
b2dldGhlcgord2l0aCB0aGUgYGBuYW1lYGAgcGFyYW1ldGVyOgorCisuLiBjb2RlLWJsb2NrOjog
cHl0aG9uCisKKyAgICBkZWYgY2VsbCgpOgorICAgICAgICByZXR1cm4gLi4uCisKKworICAgIEBw
eXRlc3QuZml4dHVyZShuYW1lPSJjZWxsIikKKyAgICBkZWYgY2VsbF9maXh0dXJlKCk6CisgICAg
ICAgIHJldHVybiBjZWxsKCkKKworCitgYHlpZWxkYGAgdGVzdHMKK35+fn5+fn5+fn5+fn5+fgor
CisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitweXRlc3Qgc3VwcG9ydGVkIGBgeWllbGRgYC1z
dHlsZSB0ZXN0cywgd2hlcmUgYSB0ZXN0IGZ1bmN0aW9uIGFjdHVhbGx5IGBgeWllbGRgYCBmdW5j
dGlvbnMgYW5kIHZhbHVlcwordGhhdCBhcmUgdGhlbiB0dXJuZWQgaW50byBwcm9wZXIgdGVzdCBt
ZXRob2RzLiBFeGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBkZWYgY2hl
Y2soeCwgeSk6CisgICAgICAgIGFzc2VydCB4ICoqIHggPT0geQorCisKKyAgICBkZWYgdGVzdF9z
cXVhcmVkKCk6CisgICAgICAgIHlpZWxkIGNoZWNrLCAyLCA0CisgICAgICAgIHlpZWxkIGNoZWNr
LCAzLCA5CisKK1RoaXMgd291bGQgcmVzdWx0IGludG8gdHdvIGFjdHVhbCB0ZXN0IGZ1bmN0aW9u
cyBiZWluZyBnZW5lcmF0ZWQuCisKK1RoaXMgZm9ybSBvZiB0ZXN0IGZ1bmN0aW9uIGRvZXNuJ3Qg
c3VwcG9ydCBmaXh0dXJlcyBwcm9wZXJseSwgYW5kIHVzZXJzIHNob3VsZCBzd2l0Y2ggdG8gYGBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZWBgOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIngsIHkiLCBbKDIsIDQpLCAoMywgOSldKQorICAg
IGRlZiB0ZXN0X3NxdWFyZWQoeCwgeSk6CisgICAgICAgIGFzc2VydCB4ICoqIHggPT0geQorCitJ
bnRlcm5hbCBjbGFzc2VzIGFjY2Vzc2VkIHRocm91Z2ggYGBOb2RlYGAKK35+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAor
CitBY2Nlc3Mgb2YgYGBNb2R1bGVgYCwgYGBGdW5jdGlvbmBgLCBgYENsYXNzYGAsIGBgSW5zdGFu
Y2VgYCwgYGBGaWxlYGAgYW5kIGBgSXRlbWBgIHRocm91Z2ggYGBOb2RlYGAgaW5zdGFuY2VzIG5v
dyBpc3N1ZQordGhpcyB3YXJuaW5nOjoKKworICAgIHVzYWdlIG9mIEZ1bmN0aW9uLk1vZHVsZSBp
cyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIHB5dGVzdC5Nb2R1bGUgaW5zdGVhZAorCitVc2VycyBz
aG91bGQganVzdCBgYGltcG9ydCBweXRlc3RgYCBhbmQgYWNjZXNzIHRob3NlIG9iamVjdHMgdXNp
bmcgdGhlIGBgcHl0ZXN0YGAgbW9kdWxlLgorCitUaGlzIGhhcyBiZWVuIGRvY3VtZW50ZWQgYXMg
ZGVwcmVjYXRlZCBmb3IgeWVhcnMsIGJ1dCBvbmx5IG5vdyB3ZSBhcmUgYWN0dWFsbHkgZW1pdHRp
bmcgZGVwcmVjYXRpb24gd2FybmluZ3MuCisKK2BgTm9kZS5nZXRfbWFya2VyYGAKK35+fn5+fn5+
fn5+fn5+fn5+fn4KKworLi4gdmVyc2lvbnJlbW92ZWQ6OiA0LjAKKworQXMgcGFydCBvZiBhIGxh
cmdlIDpyZWY6YG1hcmtlci1yZXZhbXBgLCA6bWV0aDpgX3B5dGVzdC5ub2Rlcy5Ob2RlLmdldF9t
YXJrZXJgIGlzIGRlcHJlY2F0ZWQuIFNlZQorOnJlZjpgdGhlIGRvY3VtZW50YXRpb24gPHVwZGF0
ZSBtYXJrZXIgY29kZT5gIG9uIHRpcHMgb24gaG93IHRvIHVwZGF0ZSB5b3VyIGNvZGUuCisKKwor
YGBzb21lZnVuY3Rpb24ubWFya25hbWVgYAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisu
LiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitBcyBwYXJ0IG9mIGEgbGFyZ2UgOnJlZjpgbWFya2Vy
LXJldmFtcGAgd2UgYWxyZWFkeSBkZXByZWNhdGVkIHVzaW5nIGBgTWFya0luZm9gYAordGhlIG9u
bHkgY29ycmVjdCB3YXkgdG8gZ2V0IG1hcmtlcnMgb2YgYW4gZWxlbWVudCBpcyB2aWEgYGBub2Rl
Lml0ZXJfbWFya2VycyhuYW1lKWBgLgorCisKK2BgcHl0ZXN0X25hbWVzcGFjZWBgCit+fn5+fn5+
fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitUaGlzIGhvb2sgaXMg
ZGVwcmVjYXRlZCBiZWNhdXNlIGl0IGdyZWF0bHkgY29tcGxpY2F0ZXMgdGhlIHB5dGVzdCBpbnRl
cm5hbHMgcmVnYXJkaW5nIGNvbmZpZ3VyYXRpb24gYW5kIGluaXRpYWxpemF0aW9uLCBtYWtpbmcg
c29tZQorYnVnIGZpeGVzIGFuZCByZWZhY3RvcmluZ3MgaW1wb3NzaWJsZS4KKworRXhhbXBsZSBv
ZiB1c2FnZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgY2xhc3MgTXlTeW1ib2w6
CisgICAgICAgIC4uLgorCisKKyAgICBkZWYgcHl0ZXN0X25hbWVzcGFjZSgpOgorICAgICAgICBy
ZXR1cm4geyJteV9zeW1ib2wiOiBNeVN5bWJvbCgpfQorCisKK1BsdWdpbiBhdXRob3JzIHJlbHlp
bmcgb24gdGhpcyBob29rIHNob3VsZCBpbnN0ZWFkIHJlcXVpcmUgdGhhdCB1c2VycyBub3cgaW1w
b3J0IHRoZSBwbHVnaW4gbW9kdWxlcyBkaXJlY3RseSAod2l0aCBhbiBhcHByb3ByaWF0ZSBwdWJs
aWMgQVBJKS4KKworQXMgYSBzdG9wZ2FwIG1lYXN1cmUsIHBsdWdpbiBhdXRob3JzIG1heSBzdGls
bCBpbmplY3QgdGhlaXIgbmFtZXMgaW50byBweXRlc3QncyBuYW1lc3BhY2UsIHVzdWFsbHkgZHVy
aW5nIGBgcHl0ZXN0X2NvbmZpZ3VyZWBgOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAg
ICBpbXBvcnQgcHl0ZXN0CisKKworICAgIGRlZiBweXRlc3RfY29uZmlndXJlKCk6CisgICAgICAg
IHB5dGVzdC5teV9zeW1ib2wgPSBNeVN5bWJvbCgpCisKKworCisKK1JlaW50ZXJwcmV0YXRpb24g
bW9kZSAoYGAtLWFzc2VydD1yZWludGVycGBgKQorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+CisKKy4uIHZlcnNpb25yZW1vdmVkOjogMy4wCisKK1JlaW50ZXJw
cmV0YXRpb24gbW9kZSBoYXMgbm93IGJlZW4gcmVtb3ZlZCBhbmQgb25seSBwbGFpbiBhbmQgcmV3
cml0ZQorbW9kZSBhcmUgYXZhaWxhYmxlLCBjb25zZXF1ZW50bHkgdGhlIGBgLS1hc3NlcnQ9cmVp
bnRlcnBgYCBvcHRpb24gaXMKK25vIGxvbmdlciBhdmFpbGFibGUuICBUaGlzIGFsc28gbWVhbnMg
ZmlsZXMgaW1wb3J0ZWQgZnJvbSBwbHVnaW5zIG9yCitgYGNvbmZ0ZXN0LnB5YGAgd2lsbCBub3Qg
YmVuZWZpdCBmcm9tIGltcHJvdmVkIGFzc2VydGlvbnMgYnkKK2RlZmF1bHQsIHlvdSBzaG91bGQg
dXNlIGBgcHl0ZXN0LnJlZ2lzdGVyX2Fzc2VydF9yZXdyaXRlKClgYCB0bworZXhwbGljaXRseSB0
dXJuIG9uIGFzc2VydGlvbiByZXdyaXRpbmcgZm9yIHRob3NlIGZpbGVzLgorCitSZW1vdmVkIGNv
bW1hbmQtbGluZSBvcHRpb25zCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKy4uIHZl
cnNpb25yZW1vdmVkOjogMy4wCisKK1RoZSBmb2xsb3dpbmcgZGVwcmVjYXRlZCBjb21tYW5kbGlu
ZSBvcHRpb25zIHdlcmUgcmVtb3ZlZDoKKworKiBgYC0tZ2Vuc2NyaXB0YGA6IG5vIGxvbmdlciBz
dXBwb3J0ZWQ7CisqIGBgLS1uby1hc3NlcnRgYDogdXNlIGBgLS1hc3NlcnQ9cGxhaW5gYCBpbnN0
ZWFkOworKiBgYC0tbm9tYWdpY2BgOiB1c2UgYGAtLWFzc2VydD1wbGFpbmBgIGluc3RlYWQ7Cisq
IGBgLS1yZXBvcnRgYDogdXNlIGBgLXJgYCBpbnN0ZWFkOworCitweS50ZXN0LVgqIGVudHJ5IHBv
aW50cworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworLi4gdmVyc2lvbnJlbW92ZWQ6OiAzLjAK
KworUmVtb3ZlZCBhbGwgYGBweS50ZXN0LVgqYGAgZW50cnkgcG9pbnRzLiBUaGUgdmVyc2lvbmVk
LCBzdWZmaXhlZCBlbnRyeSBwb2ludHMKK3dlcmUgbmV2ZXIgZG9jdW1lbnRlZCBhbmQgYSBsZWZ0
b3ZlciBmcm9tIGEgcHJlLXZpcnR1YWxlbnYgZXJhLiBUaGVzZSBlbnRyeQorcG9pbnRzIGFsc28g
Y3JlYXRlZCBicm9rZW4gZW50cnkgcG9pbnRzIGluIHdoZWVscywgc28gcmVtb3ZpbmcgdGhlbSBh
bHNvCityZW1vdmVzIGEgc291cmNlIG9mIGNvbmZ1c2lvbiBmb3IgdXNlcnMuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZGV2ZWxvcG1lbnRfZ3VpZGUucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2RldmVsb3BtZW50X2d1aWRlLnJzdAppbmRleCA2OWU4NjY5NDNlNTc1ODEwMzQxMDRk
YWEyZmE3NzAzMDNmNmM5ZmQ0Li42NDk0MTkzMTZkMTg2ZWU3NjA5YjA4MWRjZTk0Nzc1ZTIyM2Iz
NDU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZGV2ZWxvcG1lbnRfZ3VpZGUucnN0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kZXZlbG9wbWVudF9ndWlkZS5yc3QKQEAgLTM5LDYg
KzM5LDExIEBAIGF2b2lkIGNyZWF0aW5nIGxhYmVscyBqdXN0IGZvciB0aGUgc2FrZSBvZiBjcmVh
dGluZyB0aGVtLgogCiBFYWNoIGxhYmVsIHNob3VsZCBpbmNsdWRlIGEgZGVzY3JpcHRpb24gaW4g
dGhlIEdpdEh1YidzIGludGVyZmFjZSBzdGF0aW5nIGl0cyBwdXJwb3NlLgogCitMYWJlbHMgYXJl
IG1hbmFnZWQgdXNpbmcgYGxhYmVscyA8aHR0cHM6Ly9naXRodWIuY29tL2hhY2tlYnJvdC9sYWJl
bHM+YF8uIEFsbCB0aGUgbGFiZWxzIGluIHRoZSByZXBvc2l0b3J5CithcmUga2VwdCBpbiBgYC5n
aXRodWIvbGFiZWxzLnRvbWxgYCwgc28gYW55IGNoYW5nZXMgc2hvdWxkIGJlIHZpYSBQUnMgdG8g
dGhhdCBmaWxlLgorQWZ0ZXIgYSBQUiBpcyBhY2NlcHRlZCBhbmQgbWVyZ2VkLCBvbmUgb2YgdGhl
IG1haW50YWluZXJzIG11c3QgbWFudWFsbHkgc3luY2hyb25pemUgdGhlIGxhYmVscyBmaWxlIHdp
dGggdGhlCitHaXRIdWIgcmVwb3NpdG9yeS4KKwogVGVtcG9yYXJ5IGxhYmVscwogfn5+fn5+fn5+
fn5+fn5+fgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZG9jdGVzdC5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZG9jdGVzdC5yc3QKaW5kZXggOTQ4OGVlODI2NTcyOTJmMTM3ZmRl
M2Q0MjIxYWZiMGY2NGQzOWExYS4uMmNiNzBhZjcyNTg4NjlkNWNhMDcxNzA5NThiZThiMzk1NDNl
ZGM3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2RvY3Rlc3QucnN0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9kb2N0ZXN0LnJzdApAQCAtNCw1MSArNCw0NyBAQCBEb2N0ZXN0IGlu
dGVncmF0aW9uIGZvciBtb2R1bGVzIGFuZCB0ZXN0IGZpbGVzCiAKIEJ5IGRlZmF1bHQgYWxsIGZp
bGVzIG1hdGNoaW5nIHRoZSBgYHRlc3QqLnR4dGBgIHBhdHRlcm4gd2lsbAogYmUgcnVuIHRocm91
Z2ggdGhlIHB5dGhvbiBzdGFuZGFyZCBgYGRvY3Rlc3RgYCBtb2R1bGUuICBZb3UKLWNhbiBjaGFu
Z2UgdGhlIHBhdHRlcm4gYnkgaXNzdWluZzo6CitjYW4gY2hhbmdlIHRoZSBwYXR0ZXJuIGJ5IGlz
c3Vpbmc6CiAKLSAgICBweXRlc3QgLS1kb2N0ZXN0LWdsb2I9JyoucnN0JwotCi1vbiB0aGUgY29t
bWFuZCBsaW5lLiBTaW5jZSB2ZXJzaW9uIGBgMi45YGAsIGBgLS1kb2N0ZXN0LWdsb2JgYAotY2Fu
IGJlIGdpdmVuIG11bHRpcGxlIHRpbWVzIGluIHRoZSBjb21tYW5kLWxpbmUuCisuLiBjb2RlLWJs
b2NrOjogYmFzaAogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKKyAgICBweXRlc3QgLS1kb2N0ZXN0
LWdsb2I9JyoucnN0JwogCi0gICAgWW91IGNhbiBzcGVjaWZ5IHRoZSBlbmNvZGluZyB0aGF0IHdp
bGwgYmUgdXNlZCBmb3IgdGhvc2UgZG9jdGVzdCBmaWxlcwotICAgIHVzaW5nIHRoZSBgYGRvY3Rl
c3RfZW5jb2RpbmdgYCBpbmkgb3B0aW9uOgorb24gdGhlIGNvbW1hbmQgbGluZS4gYGAtLWRvY3Rl
c3QtZ2xvYmBgIGNhbiBiZSBnaXZlbiBtdWx0aXBsZSB0aW1lcyBpbiB0aGUgY29tbWFuZC1saW5l
LgogCi0gICAgLi4gY29kZS1ibG9jazo6IGluaQorSWYgeW91IHRoZW4gaGF2ZSBhIHRleHQgZmls
ZSBsaWtlIHRoaXM6CiAKLSAgICAgICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkKLSAgICAgICAg
W3B5dGVzdF0KLSAgICAgICAgZG9jdGVzdF9lbmNvZGluZyA9IGxhdGluMQorLi4gY29kZS1ibG9j
azo6IHRleHQKIAotICAgIFRoZSBkZWZhdWx0IGVuY29kaW5nIGlzIFVURi04LgorICAgICMgY29u
dGVudCBvZiB0ZXN0X2V4YW1wbGUudHh0CiAKLVlvdSBjYW4gYWxzbyB0cmlnZ2VyIHJ1bm5pbmcg
b2YgZG9jdGVzdHMKLWZyb20gZG9jc3RyaW5ncyBpbiBhbGwgcHl0aG9uIG1vZHVsZXMgKGluY2x1
ZGluZyByZWd1bGFyCi1weXRob24gdGVzdCBtb2R1bGVzKTo6CisgICAgaGVsbG8gdGhpcyBpcyBh
IGRvY3Rlc3QKKyAgICA+Pj4geCA9IDMKKyAgICA+Pj4geAorICAgIDMKIAotICAgIHB5dGVzdCAt
LWRvY3Rlc3QtbW9kdWxlcwordGhlbiB5b3UgY2FuIGp1c3QgaW52b2tlIGBgcHl0ZXN0YGAgZGly
ZWN0bHk6CiAKLVlvdSBjYW4gbWFrZSB0aGVzZSBjaGFuZ2VzIHBlcm1hbmVudCBpbiB5b3VyIHBy
b2plY3QgYnkKLXB1dHRpbmcgdGhlbSBpbnRvIGEgcHl0ZXN0LmluaSBmaWxlIGxpa2UgdGhpczoK
Ky4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAotLi4gY29kZS1ibG9jazo6IGluaQorICAgICQgcHl0
ZXN0CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhv
biAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVk
aXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0Nf
VE1QRElSCisgICAgY29sbGVjdGVkIDEgaXRlbQogCi0gICAgIyBjb250ZW50IG9mIHB5dGVzdC5p
bmkKLSAgICBbcHl0ZXN0XQotICAgIGFkZG9wdHMgPSAtLWRvY3Rlc3QtbW9kdWxlcworICAgIHRl
c3RfZXhhbXBsZS50eHQgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsxMDAlXQogCi1JZiB5b3UgdGhlbiBoYXZlIGEgdGV4dCBmaWxlIGxpa2UgdGhp
czo6CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAxIHBhc3NlZCBpbiAwLjEyIHNlY29u
ZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQogCi0gICAgIyBjb250ZW50IG9mIGV4YW1wbGUu
cnN0CitCeSBkZWZhdWx0LCBweXRlc3Qgd2lsbCBjb2xsZWN0IGBgdGVzdCoudHh0YGAgZmlsZXMg
bG9va2luZyBmb3IgZG9jdGVzdCBkaXJlY3RpdmVzLCBidXQgeW91CitjYW4gcGFzcyBhZGRpdGlv
bmFsIGdsb2JzIHVzaW5nIHRoZSBgYC0tZG9jdGVzdC1nbG9iYGAgb3B0aW9uIChtdWx0aS1hbGxv
d2VkKS4KIAotICAgIGhlbGxvIHRoaXMgaXMgYSBkb2N0ZXN0Ci0gICAgPj4+IHggPSAzCi0gICAg
Pj4+IHgKLSAgICAzCitJbiBhZGRpdGlvbiB0byB0ZXh0IGZpbGVzLCB5b3UgY2FuIGFsc28gZXhl
Y3V0ZSBkb2N0ZXN0cyBkaXJlY3RseSBmcm9tIGRvY3N0cmluZ3Mgb2YgeW91ciBjbGFzc2VzCith
bmQgZnVuY3Rpb25zLCBpbmNsdWRpbmcgZnJvbSB0ZXN0IG1vZHVsZXM6CiAKLWFuZCBhbm90aGVy
IGxpa2UgdGhpczo6CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICAjIGNvbnRlbnQgb2Yg
bXltb2R1bGUucHkKICAgICBkZWYgc29tZXRoaW5nKCk6CkBAIC01OCwzMSArNTQsNjAgQEAgYW5k
IGFub3RoZXIgbGlrZSB0aGlzOjoKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiA0MgogCi10
aGVuIHlvdSBjYW4ganVzdCBpbnZva2UgYGBweXRlc3RgYCB3aXRob3V0IGNvbW1hbmQgbGluZSBv
cHRpb25zOjoKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKLSAgICAkIHB5dGVzdAorICAgICQgcHl0
ZXN0IC0tZG9jdGVzdC1tb2R1bGVzCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRl
c3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRm
b3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5
LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZTogcHl0ZXN0Lmlu
aQotICAgIGNvbGxlY3RlZCAxIGl0ZW0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54
LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAk
UFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJ
UgorICAgIGNvbGxlY3RlZCAyIGl0ZW1zCiAKLSAgICBteW1vZHVsZS5weSAuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICBt
eW1vZHVsZS5weSAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbIDUwJV0KKyAgICB0ZXN0X2V4YW1wbGUudHh0IC4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KIAotICAgID09PT09PT09
PT09PT09PT09PT09PT09PT0gMSBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDIgcGFzc2VkIGluIDAu
MTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKLUl0IGlzIHBvc3NpYmxlIHRv
IHVzZSBmaXh0dXJlcyB1c2luZyB0aGUgYGBnZXRmaXh0dXJlYGAgaGVscGVyOjoKK1lvdSBjYW4g
bWFrZSB0aGVzZSBjaGFuZ2VzIHBlcm1hbmVudCBpbiB5b3VyIHByb2plY3QgYnkKK3B1dHRpbmcg
dGhlbSBpbnRvIGEgcHl0ZXN0LmluaSBmaWxlIGxpa2UgdGhpczoKIAotICAgICMgY29udGVudCBv
ZiBleGFtcGxlLnJzdAotICAgID4+PiB0bXAgPSBnZXRmaXh0dXJlKCd0bXBkaXInKQotICAgID4+
PiAuLi4KLSAgICA+Pj4KKy4uIGNvZGUtYmxvY2s6OiBpbmkKIAotQWxzbywgOnJlZjpgdXNlZml4
dHVyZXNgIGFuZCA6cmVmOmBhdXRvdXNlYCBmaXh0dXJlcyBhcmUgc3VwcG9ydGVkCi13aGVuIGV4
ZWN1dGluZyB0ZXh0IGRvY3Rlc3QgZmlsZXMuCisgICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkK
KyAgICBbcHl0ZXN0XQorICAgIGFkZG9wdHMgPSAtLWRvY3Rlc3QtbW9kdWxlcworCisuLiBub3Rl
OjoKKworICAgIFRoZSBidWlsdGluIHB5dGVzdCBkb2N0ZXN0IHN1cHBvcnRzIG9ubHkgYGBkb2N0
ZXN0YGAgYmxvY2tzLCBidXQgaWYgeW91IGFyZSBsb29raW5nCisgICAgZm9yIG1vcmUgYWR2YW5j
ZWQgY2hlY2tpbmcgb3ZlciAqYWxsKiB5b3VyIGRvY3VtZW50YXRpb24sCisgICAgaW5jbHVkaW5n
IGRvY3Rlc3RzLCBgYC4uIGNvZGVibG9jazo6IHB5dGhvbmBgIFNwaGlueCBkaXJlY3RpdmUgc3Vw
cG9ydCwKKyAgICBhbmQgYW55IG90aGVyIGV4YW1wbGVzIHlvdXIgZG9jdW1lbnRhdGlvbiBtYXkg
aW5jbHVkZSwgeW91IG1heSB3aXNoIHRvCisgICAgY29uc2lkZXIgYFN5YmlsIDxodHRwczovL3N5
YmlsLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9pbmRleC5odG1sPmBfXy4KKyAgICBJdCBwcm92
aWRlcyBweXRlc3QgaW50ZWdyYXRpb24gb3V0IG9mIHRoZSBib3guCisKKworRW5jb2RpbmcKKy0t
LS0tLS0tCisKK1RoZSBkZWZhdWx0IGVuY29kaW5nIGlzICoqVVRGLTgqKiwgYnV0IHlvdSBjYW4g
c3BlY2lmeSB0aGUgZW5jb2RpbmcKK3RoYXQgd2lsbCBiZSB1c2VkIGZvciB0aG9zZSBkb2N0ZXN0
IGZpbGVzIHVzaW5nIHRoZQorYGBkb2N0ZXN0X2VuY29kaW5nYGAgaW5pIG9wdGlvbjoKKworLi4g
Y29kZS1ibG9jazo6IGluaQorCisgICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkKKyAgICBbcHl0
ZXN0XQorICAgIGRvY3Rlc3RfZW5jb2RpbmcgPSBsYXRpbjEKKworVXNpbmcgJ2RvY3Rlc3QnIG9w
dGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVRoZSBzdGFuZGFyZCBgYGRvY3Rlc3Rg
YCBtb2R1bGUgcHJvdmlkZXMgc29tZSBzZXR0aW5nIGZsYWdzIHRvIGNvbmZpZ3VyZSB0aGUKLXN0
cmljdG5lc3Mgb2YgZG9jdGVzdCB0ZXN0cy4gSW4gcHl0ZXN0LCB5b3UgY2FuIGVuYWJsZSB0aG9z
ZSBmbGFncyB1c2luZyB0aGUKLWNvbmZpZ3VyYXRpb24gZmlsZS4gVG8gbWFrZSBweXRlc3QgaWdu
b3JlIHRyYWlsaW5nIHdoaXRlc3BhY2VzIGFuZCBpZ25vcmUKK1RoZSBzdGFuZGFyZCBgYGRvY3Rl
c3RgYCBtb2R1bGUgcHJvdmlkZXMgc29tZSBgb3B0aW9ucyA8aHR0cHM6Ly9kb2NzLnB5dGhvbi5v
cmcvMy9saWJyYXJ5L2RvY3Rlc3QuaHRtbCNvcHRpb24tZmxhZ3M+YF9fCit0byBjb25maWd1cmUg
dGhlIHN0cmljdG5lc3Mgb2YgZG9jdGVzdCB0ZXN0cy4gSW4gcHl0ZXN0LCB5b3UgY2FuIGVuYWJs
ZSB0aG9zZSBmbGFncyB1c2luZyB0aGUKK2NvbmZpZ3VyYXRpb24gZmlsZS4KKworRm9yIGV4YW1w
bGUsIHRvIG1ha2UgcHl0ZXN0IGlnbm9yZSB0cmFpbGluZyB3aGl0ZXNwYWNlcyBhbmQgaWdub3Jl
CiBsZW5ndGh5IGV4Y2VwdGlvbiBzdGFjayB0cmFjZXMgeW91IGNhbiBqdXN0IHdyaXRlOgogCiAu
LiBjb2RlLWJsb2NrOjogaW5pCkBAIC05OSwzNCArMTI0LDY3IEBAIFB5dGhvbiAzIHVuY2hhbmdl
ZDoKICogYGBBTExPV19CWVRFU2BgOiB3aGVuIGVuYWJsZWQsIHRoZSBgYGJgYCBwcmVmaXggaXMg
c3RyaXBwZWQgZnJvbSBieXRlIHN0cmluZ3MKICAgaW4gZXhwZWN0ZWQgZG9jdGVzdCBvdXRwdXQu
CiAKLUFzIHdpdGggYW55IG90aGVyIG9wdGlvbiBmbGFnLCB0aGVzZSBmbGFncyBjYW4gYmUgZW5h
YmxlZCBpbiBgYHB5dGVzdC5pbmlgYCB1c2luZwotdGhlIGBgZG9jdGVzdF9vcHRpb25mbGFnc2Bg
IGluaSBvcHRpb246Ci0KLS4uIGNvZGUtYmxvY2s6OiBpbmkKLQotICAgIFtweXRlc3RdCi0gICAg
ZG9jdGVzdF9vcHRpb25mbGFncyA9IEFMTE9XX1VOSUNPREUgQUxMT1dfQllURVMKLQorQWx0ZXJu
YXRpdmVseSwgb3B0aW9ucyBjYW4gYmUgZW5hYmxlZCBieSBhbiBpbmxpbmUgY29tbWVudCBpbiB0
aGUgZG9jIHRlc3QKK2l0c2VsZjoKIAotQWx0ZXJuYXRpdmVseSwgaXQgY2FuIGJlIGVuYWJsZWQg
YnkgYW4gaW5saW5lIGNvbW1lbnQgaW4gdGhlIGRvYyB0ZXN0Ci1pdHNlbGY6OgorLi4gY29kZS1i
bG9jazo6IHJzdAogCiAgICAgIyBjb250ZW50IG9mIGV4YW1wbGUucnN0CiAgICAgPj4+IGdldF91
bmljb2RlX2dyZWV0aW5nKCkgICMgZG9jdGVzdDogK0FMTE9XX1VOSUNPREUKICAgICAnSGVsbG8n
CiAKLUJ5IGRlZmF1bHQsIHB5dGVzdCB3b3VsZCByZXBvcnQgb25seSB0aGUgZmlyc3QgZmFpbHVy
ZSBmb3IgYSBnaXZlbiBkb2N0ZXN0LiAgSWYKLXlvdSB3YW50IHRvIGNvbnRpbnVlIHRoZSB0ZXN0
IGV2ZW4gd2hlbiB5b3UgaGF2ZSBmYWlsdXJlcywgZG86OgorQnkgZGVmYXVsdCwgcHl0ZXN0IHdv
dWxkIHJlcG9ydCBvbmx5IHRoZSBmaXJzdCBmYWlsdXJlIGZvciBhIGdpdmVuIGRvY3Rlc3QuIElm
Cit5b3Ugd2FudCB0byBjb250aW51ZSB0aGUgdGVzdCBldmVuIHdoZW4geW91IGhhdmUgZmFpbHVy
ZXMsIGRvOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC0tZG9jdGVzdC1t
b2R1bGVzIC0tZG9jdGVzdC1jb250aW51ZS1vbi1mYWlsdXJlCiAKIAotLi4gX2Bkb2N0ZXN0X25h
bWVzcGFjZWA6CitPdXRwdXQgZm9ybWF0CistLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gY2hhbmdl
IHRoZSBkaWZmIG91dHB1dCBmb3JtYXQgb24gZmFpbHVyZSBmb3IgeW91ciBkb2N0ZXN0cworYnkg
dXNpbmcgb25lIG9mIHN0YW5kYXJkIGRvY3Rlc3QgbW9kdWxlcyBmb3JtYXQgaW4gb3B0aW9ucwor
KHNlZSA6ZGF0YTpgcHl0aG9uOmRvY3Rlc3QuUkVQT1JUX1VESUZGYCwgOmRhdGE6YHB5dGhvbjpk
b2N0ZXN0LlJFUE9SVF9DRElGRmAsCis6ZGF0YTpgcHl0aG9uOmRvY3Rlc3QuUkVQT1JUX05ESUZG
YCwgOmRhdGE6YHB5dGhvbjpkb2N0ZXN0LlJFUE9SVF9PTkxZX0ZJUlNUX0ZBSUxVUkVgKToKKwor
Li4gY29kZS1ibG9jazo6IGJhc2gKKworICAgIHB5dGVzdCAtLWRvY3Rlc3QtbW9kdWxlcyAtLWRv
Y3Rlc3QtcmVwb3J0IG5vbmUKKyAgICBweXRlc3QgLS1kb2N0ZXN0LW1vZHVsZXMgLS1kb2N0ZXN0
LXJlcG9ydCB1ZGlmZgorICAgIHB5dGVzdCAtLWRvY3Rlc3QtbW9kdWxlcyAtLWRvY3Rlc3QtcmVw
b3J0IGNkaWZmCisgICAgcHl0ZXN0IC0tZG9jdGVzdC1tb2R1bGVzIC0tZG9jdGVzdC1yZXBvcnQg
bmRpZmYKKyAgICBweXRlc3QgLS1kb2N0ZXN0LW1vZHVsZXMgLS1kb2N0ZXN0LXJlcG9ydCBvbmx5
X2ZpcnN0X2ZhaWx1cmUKKworCitweXRlc3Qtc3BlY2lmaWMgZmVhdHVyZXMKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCitTb21lIGZlYXR1cmVzIGFyZSBwcm92aWRlZCB0byBtYWtlIHdyaXRp
bmcgZG9jdGVzdHMgZWFzaWVyIG9yIHdpdGggYmV0dGVyIGludGVncmF0aW9uIHdpdGgKK3lvdXIg
ZXhpc3RpbmcgdGVzdCBzdWl0ZS4gS2VlcCBpbiBtaW5kIGhvd2V2ZXIgdGhhdCBieSB1c2luZyB0
aG9zZSBmZWF0dXJlcyB5b3Ugd2lsbCBtYWtlCit5b3VyIGRvY3Rlc3RzIGluY29tcGF0aWJsZSB3
aXRoIHRoZSBzdGFuZGFyZCBgYGRvY3Rlc3RzYGAgbW9kdWxlLgogCi1UaGUgJ2RvY3Rlc3RfbmFt
ZXNwYWNlJyBmaXh0dXJlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitVc2luZyBm
aXh0dXJlcworXl5eXl5eXl5eXl5eXl4KIAotLi4gdmVyc2lvbmFkZGVkOjogMy4wCitJdCBpcyBw
b3NzaWJsZSB0byB1c2UgZml4dHVyZXMgdXNpbmcgdGhlIGBgZ2V0Zml4dHVyZWBgIGhlbHBlcjoK
KworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgICMgY29udGVudCBvZiBleGFtcGxlLnJzdAor
ICAgID4+PiB0bXAgPSBnZXRmaXh0dXJlKCd0bXBkaXInKQorICAgID4+PiAuLi4KKyAgICA+Pj4K
KworQWxzbywgOnJlZjpgdXNlZml4dHVyZXNgIGFuZCA6cmVmOmBhdXRvdXNlYCBmaXh0dXJlcyBh
cmUgc3VwcG9ydGVkCit3aGVuIGV4ZWN1dGluZyB0ZXh0IGRvY3Rlc3QgZmlsZXMuCisKKworLi4g
X2Bkb2N0ZXN0X25hbWVzcGFjZWA6CisKKydkb2N0ZXN0X25hbWVzcGFjZScgZml4dHVyZQorXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAKIFRoZSBgYGRvY3Rlc3RfbmFtZXNwYWNlYGAgZml4
dHVyZSBjYW4gYmUgdXNlZCB0byBpbmplY3QgaXRlbXMgaW50byB0aGUKIG5hbWVzcGFjZSBpbiB3
aGljaCB5b3VyIGRvY3Rlc3RzIHJ1bi4gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoaW4K
QEAgLTE1MiwxOSArMjEwLDE4IEBAIHdoaWNoIGNhbiB0aGVuIGJlIHVzZWQgaW4geW91ciBkb2N0
ZXN0cyBkaXJlY3RseTo6CiAgICAgICAgICIiIgogICAgICAgICBwYXNzCiAKK05vdGUgdGhhdCBs
aWtlIHRoZSBub3JtYWwgYGBjb25mdGVzdC5weWBgLCB0aGUgZml4dHVyZXMgYXJlIGRpc2NvdmVy
ZWQgaW4gdGhlIGRpcmVjdG9yeSB0cmVlIGNvbmZ0ZXN0IGlzIGluLgorTWVhbmluZyB0aGF0IGlm
IHlvdSBwdXQgeW91ciBkb2N0ZXN0IHdpdGggeW91ciBzb3VyY2UgY29kZSwgdGhlIHJlbGV2YW50
IGNvbmZ0ZXN0LnB5IG5lZWRzIHRvIGJlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSB0cmVlLgorRml4
dHVyZXMgd2lsbCBub3QgYmUgZGlzY292ZXJlZCBpbiBhIHNpYmxpbmcgZGlyZWN0b3J5IHRyZWUh
CiAKLU91dHB1dCBmb3JtYXQKLS0tLS0tLS0tLS0tLS0KK1NraXBwaW5nIHRlc3RzIGR5bmFtaWNh
bGx5CiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjAK
Ky4uIHZlcnNpb25hZGRlZDo6IDQuNAogCi1Zb3UgY2FuIGNoYW5nZSB0aGUgZGlmZiBvdXRwdXQg
Zm9ybWF0IG9uIGZhaWx1cmUgZm9yIHlvdXIgZG9jdGVzdHMKLWJ5IHVzaW5nIG9uZSBvZiBzdGFu
ZGFyZCBkb2N0ZXN0IG1vZHVsZXMgZm9ybWF0IGluIG9wdGlvbnMKLShzZWUgOmRhdGE6YHB5dGhv
bjpkb2N0ZXN0LlJFUE9SVF9VRElGRmAsIDpkYXRhOmBweXRob246ZG9jdGVzdC5SRVBPUlRfQ0RJ
RkZgLAotOmRhdGE6YHB5dGhvbjpkb2N0ZXN0LlJFUE9SVF9ORElGRmAsIDpkYXRhOmBweXRob246
ZG9jdGVzdC5SRVBPUlRfT05MWV9GSVJTVF9GQUlMVVJFYCk6OgorWW91IGNhbiB1c2UgYGBweXRl
c3Quc2tpcGBgIHRvIGR5bmFtaWNhbGx5IHNraXAgZG9jdGVzdHMuIEZvciBleGFtcGxlOjoKIAot
ICAgIHB5dGVzdCAtLWRvY3Rlc3QtbW9kdWxlcyAtLWRvY3Rlc3QtcmVwb3J0IG5vbmUKLSAgICBw
eXRlc3QgLS1kb2N0ZXN0LW1vZHVsZXMgLS1kb2N0ZXN0LXJlcG9ydCB1ZGlmZgotICAgIHB5dGVz
dCAtLWRvY3Rlc3QtbW9kdWxlcyAtLWRvY3Rlc3QtcmVwb3J0IGNkaWZmCi0gICAgcHl0ZXN0IC0t
ZG9jdGVzdC1tb2R1bGVzIC0tZG9jdGVzdC1yZXBvcnQgbmRpZmYKLSAgICBweXRlc3QgLS1kb2N0
ZXN0LW1vZHVsZXMgLS1kb2N0ZXN0LXJlcG9ydCBvbmx5X2ZpcnN0X2ZhaWx1cmUKKyAgICA+Pj4g
aW1wb3J0IHN5cywgcHl0ZXN0CisgICAgPj4+IGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3
aW4nKToKKyAgICAuLi4gICAgIHB5dGVzdC5za2lwKCd0aGlzIGRvY3Rlc3QgZG9lcyBub3Qgd29y
ayBvbiBXaW5kb3dzJykKKyAgICAuLi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL2Fzc2VydGlvbi9mYWlsdXJlX2RlbW8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9hc3NlcnRpb24vZmFpbHVyZV9kZW1vLnB5CmluZGV4IGRjMjdmNWRmYmMxMmQ5MDZhMTJh
NGJlMTliMzhjNmNjY2ZiNmFlNjMuLmJhOTEwZWY2YTg4YzAxM2U4ODhiMDhiMjIwOGEzYmQxYzgx
Yzk1MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9m
YWlsdXJlX2RlbW8ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9u
L2ZhaWx1cmVfZGVtby5weQpAQCAtMSw2ICsxLDcgQEAKLWZyb20gcHl0ZXN0IGltcG9ydCByYWlz
ZXMKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBpbXBvcnQgX3B5dGVzdC5fY29kZQotaW1wb3J0
IHB5CitpbXBvcnQgcHl0ZXN0Citmcm9tIHB5dGVzdCBpbXBvcnQgcmFpc2VzCiAKIAogZGVmIG90
aGVyZnVuYyhhLCBiKToKQEAgLTE1LDE5ICsxNiwxMyBAQCBkZWYgb3RoZXJmdW5jX211bHRpKGEs
IGIpOgogICAgIGFzc2VydCBhID09IGIKIAogCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBh
cmFtMSwgcGFyYW0yIiwgWygzLCA2KV0pCiBkZWYgdGVzdF9nZW5lcmF0aXZlKHBhcmFtMSwgcGFy
YW0yKToKICAgICBhc3NlcnQgcGFyYW0xICogMiA8IHBhcmFtMgogCiAKLWRlZiBweXRlc3RfZ2Vu
ZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgotICAgIGlmICJwYXJhbTEiIGluIG1ldGFmdW5jLmZpeHR1
cmVuYW1lczoKLSAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChmdW5jYXJncz1kaWN0KHBhcmFtMT0z
LCBwYXJhbTI9NikpCi0KLQogY2xhc3MgVGVzdEZhaWxpbmcob2JqZWN0KToKLQogICAgIGRlZiB0
ZXN0X3NpbXBsZShzZWxmKToKLQogICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAgcmV0dXJu
IDQyCiAKQEAgLTQwLDcgKzM1LDYgQEAgY2xhc3MgVGVzdEZhaWxpbmcob2JqZWN0KToKICAgICAg
ICAgb3RoZXJmdW5jX211bHRpKDQyLCA2ICogOSkKIAogICAgIGRlZiB0ZXN0X25vdChzZWxmKToK
LQogICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAgcmV0dXJuIDQyCiAKQEAgLTQ4LDcgKzQy
LDYgQEAgY2xhc3MgVGVzdEZhaWxpbmcob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0U3BlY2lhbGlz
ZWRFeHBsYW5hdGlvbnMob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2VxX3RleHQoc2VsZik6CiAg
ICAgICAgIGFzc2VydCAic3BhbSIgPT0gImVnZ3MiCiAKQEAgLTEwNCw5ICs5NywzMiBAQCBjbGFz
cyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMob2JqZWN0KToKICAgICAgICAgdGV4dCA9ICJo
ZWFkICIgKiA1MCArICJmIiAqIDcwICsgInRhaWwgIiAqIDIwCiAgICAgICAgIGFzc2VydCAiZiIg
KiA3MCBub3QgaW4gdGV4dAogCisgICAgZGVmIHRlc3RfZXFfZGF0YWNsYXNzKHNlbGYpOgorICAg
ICAgICBmcm9tIGRhdGFjbGFzc2VzIGltcG9ydCBkYXRhY2xhc3MKKworICAgICAgICBAZGF0YWNs
YXNzCisgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAgICAgYTogaW50CisgICAg
ICAgICAgICBiOiBzdHIKKworICAgICAgICBsZWZ0ID0gRm9vKDEsICJiIikKKyAgICAgICAgcmln
aHQgPSBGb28oMSwgImMiKQorICAgICAgICBhc3NlcnQgbGVmdCA9PSByaWdodAorCisgICAgZGVm
IHRlc3RfZXFfYXR0cnMoc2VsZik6CisgICAgICAgIGltcG9ydCBhdHRyCisKKyAgICAgICAgQGF0
dHIucworICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIGEgPSBhdHRyLmli
KCkKKyAgICAgICAgICAgIGIgPSBhdHRyLmliKCkKKworICAgICAgICBsZWZ0ID0gRm9vKDEsICJi
IikKKyAgICAgICAgcmlnaHQgPSBGb28oMSwgImMiKQorICAgICAgICBhc3NlcnQgbGVmdCA9PSBy
aWdodAogCi1kZWYgdGVzdF9hdHRyaWJ1dGUoKToKIAorZGVmIHRlc3RfYXR0cmlidXRlKCk6CiAg
ICAgY2xhc3MgRm9vKG9iamVjdCk6CiAgICAgICAgIGIgPSAxCiAKQEAgLTExNSw3ICsxMzEsNiBA
QCBkZWYgdGVzdF9hdHRyaWJ1dGUoKToKIAogCiBkZWYgdGVzdF9hdHRyaWJ1dGVfaW5zdGFuY2Uo
KToKLQogICAgIGNsYXNzIEZvbyhvYmplY3QpOgogICAgICAgICBiID0gMQogCkBAIC0xMjMsOSAr
MTM4LDcgQEAgZGVmIHRlc3RfYXR0cmlidXRlX2luc3RhbmNlKCk6CiAKIAogZGVmIHRlc3RfYXR0
cmlidXRlX2ZhaWx1cmUoKToKLQogICAgIGNsYXNzIEZvbyhvYmplY3QpOgotCiAgICAgICAgIGRl
ZiBfZ2V0X2Ioc2VsZik6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkZhaWxlZCB0byBn
ZXQgYXR0cmliIikKIApAQCAtMTM2LDcgKzE0OSw2IEBAIGRlZiB0ZXN0X2F0dHJpYnV0ZV9mYWls
dXJlKCk6CiAKIAogZGVmIHRlc3RfYXR0cmlidXRlX211bHRpcGxlKCk6Ci0KICAgICBjbGFzcyBG
b28ob2JqZWN0KToKICAgICAgICAgYiA9IDEKIApAQCAtMTUxLDEzICsxNjMsMTIgQEAgZGVmIGds
b2JmKHgpOgogCiAKIGNsYXNzIFRlc3RSYWlzZXMob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X3Jh
aXNlcyhzZWxmKToKLSAgICAgICAgcyA9ICJxd2UiICAjIE5PUUEKLSAgICAgICAgcmFpc2VzKFR5
cGVFcnJvciwgImludChzKSIpCisgICAgICAgIHMgPSAicXdlIgorICAgICAgICByYWlzZXMoVHlw
ZUVycm9yLCBpbnQsIHMpCiAKICAgICBkZWYgdGVzdF9yYWlzZXNfZG9lc250KHNlbGYpOgotICAg
ICAgICByYWlzZXMoSU9FcnJvciwgImludCgnMycpIikKKyAgICAgICAgcmFpc2VzKElPRXJyb3Is
IGludCwgIjMiKQogCiAgICAgZGVmIHRlc3RfcmFpc2Uoc2VsZik6CiAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoImRlbW8gZXJyb3IiKQpAQCAtMTg3LDE1ICsxOTgsMTMgQEAgZGVmIHRlc3RfZHlu
YW1pY19jb21waWxlX3Nob3dzX25pY2VseSgpOgogICAgIG5hbWUgPSAiYWJjLTEyMyIKICAgICBt
b2R1bGUgPSBpbXAubmV3X21vZHVsZShuYW1lKQogICAgIGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLmNv
bXBpbGUoc3JjLCBuYW1lLCAiZXhlYyIpCi0gICAgcHkuYnVpbHRpbi5leGVjXyhjb2RlLCBtb2R1
bGUuX19kaWN0X18pCisgICAgZXhlYyhjb2RlLCBtb2R1bGUuX19kaWN0X18pCiAgICAgc3lzLm1v
ZHVsZXNbbmFtZV0gPSBtb2R1bGUKICAgICBtb2R1bGUuZm9vKCkKIAogCiBjbGFzcyBUZXN0TW9y
ZUVycm9ycyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfY29tcGxleF9lcnJvcihzZWxmKToKLQog
ICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAgcmV0dXJuIDQ0CiAKQEAgLTIxOCw3ICsyMjcs
NiBAQCBjbGFzcyBUZXN0TW9yZUVycm9ycyhvYmplY3QpOgogICAgICAgICBhc3NlcnQgcy5zdGFy
dHN3aXRoKGcpCiAKICAgICBkZWYgdGVzdF9zdGFydHN3aXRoX25lc3RlZChzZWxmKToKLQogICAg
ICAgICBkZWYgZigpOgogICAgICAgICAgICAgcmV0dXJuICIxMjMiCiAKQEAgLTI0Niw5ICsyNTQs
NyBAQCBjbGFzcyBUZXN0TW9yZUVycm9ycyhvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RDdXN0b21B
c3NlcnRNc2cob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X3NpbmdsZV9saW5lKHNlbGYpOgotCiAg
ICAgICAgIGNsYXNzIEEob2JqZWN0KToKICAgICAgICAgICAgIGEgPSAxCiAKQEAgLTI1NiwxNyAr
MjYyLDE1IEBAIGNsYXNzIFRlc3RDdXN0b21Bc3NlcnRNc2cob2JqZWN0KToKICAgICAgICAgYXNz
ZXJ0IEEuYSA9PSBiLCAiQS5hIGFwcGVhcnMgbm90IHRvIGJlIGIiCiAKICAgICBkZWYgdGVzdF9t
dWx0aWxpbmUoc2VsZik6Ci0KICAgICAgICAgY2xhc3MgQShvYmplY3QpOgogICAgICAgICAgICAg
YSA9IDEKIAogICAgICAgICBiID0gMgogICAgICAgICBhc3NlcnQgKAogICAgICAgICAgICAgQS5h
ID09IGIKLSAgICAgICAgKSwgIkEuYSBhcHBlYXJzIG5vdCB0byBiZSBiXG4iICJvciBkb2VzIG5v
dCBhcHBlYXIgdG8gYmUgYlxub25lIG9mIHRob3NlIgorICAgICAgICApLCAiQS5hIGFwcGVhcnMg
bm90IHRvIGJlIGJcbm9yIGRvZXMgbm90IGFwcGVhciB0byBiZSBiXG5vbmUgb2YgdGhvc2UiCiAK
ICAgICBkZWYgdGVzdF9jdXN0b21fcmVwcihzZWxmKToKLQogICAgICAgICBjbGFzcyBKU09OKG9i
amVjdCk6CiAgICAgICAgICAgICBhID0gMQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL2NvbmZ0ZXN0LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9kdWxl
X2NvbmZpZy9jb25mdGVzdC5weQppbmRleCA0ODU5YmVhNzhlNjhmODJkOTUzNDgyZjFlYjk1Njhm
MjEwODE0ZmQ5Li44ZTA0YWMyYWM0NjljNmY1MGQ2NWVkN2EwZThiMGU1MzlkZGViZGM4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rt
b2R1bGVfY29uZmlnL2NvbmZ0ZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2Fzc2VydGlvbi9nbG9iYWxfdGVzdG1vZHVsZV9jb25maWcvY29uZnRlc3QucHkKQEAgLTEsNiAr
MSw4IEBACi1pbXBvcnQgcHl0ZXN0CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IHB5
CiAKK2ltcG9ydCBweXRlc3QKKwogbXlkaXIgPSBweS5wYXRoLmxvY2FsKF9fZmlsZV9fKS5kaXJw
YXRoKCkKIAogCkBAIC0xMCw0ICsxMiw0IEBAIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVt
KToKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBtb2QgPSBpdGVtLmdldHBhcmVudChweXRl
c3QuTW9kdWxlKS5vYmoKICAgICAgICAgaWYgaGFzYXR0cihtb2QsICJoZWxsbyIpOgotICAgICAg
ICAgICAgcHJpbnQoIm1vZC5oZWxsbyAlciIgJSAobW9kLmhlbGxvLCkpCisgICAgICAgICAgICBw
cmludCgibW9kLmhlbGxvIHshcn0iLmZvcm1hdChtb2QuaGVsbG8pKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZp
Zy90ZXN0X2hlbGxvX3dvcmxkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0
aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZpZy90ZXN0X2hlbGxvX3dvcmxkLnB5CmluZGV4IDgy
OGU2YjlmZDdkN2JlM2MyNzIwYzliMWRlNWViZTM2ZGYxNzM3M2EuLmJmY2NjOTRmNzEyZGIyN2Zk
MWFiMjJmMDdiMmIwZTkzODc1NDI0MDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL2Fzc2VydGlvbi9nbG9iYWxfdGVzdG1vZHVsZV9jb25maWcvdGVzdF9oZWxsb193b3Js
ZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rl
c3Rtb2R1bGVfY29uZmlnL3Rlc3RfaGVsbG9fd29ybGQucHkKQEAgLTEsNSArMSw2IEBACi0KKyMg
LSotIGNvZGluZzogdXRmLTggLSotCiBoZWxsbyA9ICJ3b3JsZCIKIAorCiBkZWYgdGVzdF9mdW5j
KCk6CiAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNz
ZXJ0aW9uL3Rlc3RfZmFpbHVyZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3Nl
cnRpb24vdGVzdF9mYWlsdXJlcy5weQppbmRleCAxMTUwZWMxMmY2NmQ4ZTM1YzNjNzY2N2NhMWMy
NGIyM2Y2YzM2MWMzLi42MGI1ZTIxMzExODE5OTUwNTFiMjVmZTE1MzU1ZjgzOGQ1NjRlZjViIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9mYWls
dXJlcy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9m
YWlsdXJlcy5weQpAQCAtMSw4ICsxLDggQEAKLQorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGlt
cG9ydCBweQogCiBmYWlsdXJlX2RlbW8gPSBweS5wYXRoLmxvY2FsKF9fZmlsZV9fKS5kaXJwYXRo
KCJmYWlsdXJlX2RlbW8ucHkiKQotcHl0ZXN0X3BsdWdpbnMgPSAicHl0ZXN0ZXIiLAorcHl0ZXN0
X3BsdWdpbnMgPSAoInB5dGVzdGVyIiwpCiAKIAogZGVmIHRlc3RfZmFpbHVyZV9kZW1vX2ZhaWxz
X3Byb3Blcmx5KHRlc3RkaXIpOgpAQCAtMTAsNSArMTAsNSBAQCBkZWYgdGVzdF9mYWlsdXJlX2Rl
bW9fZmFpbHNfcHJvcGVybHkodGVzdGRpcik6CiAgICAgZmFpbHVyZV9kZW1vLmNvcHkodGFyZ2V0
KQogICAgIGZhaWx1cmVfZGVtby5jb3B5KHRlc3RkaXIudG1wZGlyLmpvaW4oZmFpbHVyZV9kZW1v
LmJhc2VuYW1lKSkKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0YXJnZXQsIHN5c3Bh
dGhpbnNlcnQ9VHJ1ZSkKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqNDIgZmFp
bGVkKiJdKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIio0NCBmYWlsZWQqIl0p
CiAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3Rlc3Rfc2V0dXBfZmxvd19leGFtcGxlLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3Rlc3Rfc2V0dXBfZmxvd19leGFtcGxlLnB5
CmluZGV4IGMwMDcxMWRjMjM4MWJhYTA3NWZjODBjOWVmNTVhYTM4NjkxMjlmMDIuLmY0OWQ2ZDhl
ZDMxODgwYzdmYzgyMmE1ZTJmYjU4ZTA5OTYzNjBiY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi90ZXN0X3NldHVwX2Zsb3dfZXhhbXBsZS5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9zZXR1cF9mbG93X2V4
YW1wbGUucHkKQEAgLTEsOSArMSw5IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogZGVmIHNl
dHVwX21vZHVsZShtb2R1bGUpOgogICAgIG1vZHVsZS5UZXN0U3RhdGVGdWxsVGhpbmcuY2xhc3Nj
b3VudCA9IDAKIAogCiBjbGFzcyBUZXN0U3RhdGVGdWxsVGhpbmcob2JqZWN0KToKLQogICAgIGRl
ZiBzZXR1cF9jbGFzcyhjbHMpOgogICAgICAgICBjbHMuY2xhc3Njb3VudCArPSAxCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2F0dGljLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL2F0dGljLnJzdAppbmRleCBkNmZlY2YzNDBiNjIxZTY1OTQ5MTFiOGM3
NWUxNWJkZDkyYTBjMTEwLi45YmYzNzAzY2UxYTNiMjhiODhlN2FjMzlmYjI4NGFiOTIyNTVjMWRl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hdHRpYy5yc3QKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXR0aWMucnN0CkBAIC0yNCwxMCArMjQsMTAgQEAg
ZXhhbXBsZTogc3BlY2lmeWluZyBhbmQgc2VsZWN0aW5nIGFjY2VwdGFuY2UgdGVzdHMKICAgICAg
ICAgICAgICAgICBweXRlc3Quc2tpcCgic3BlY2lmeSAtQSB0byBydW4gYWNjZXB0YW5jZSB0ZXN0
cyIpCiAgICAgICAgICAgICBzZWxmLnRtcGRpciA9IHJlcXVlc3QuY29uZmlnLm1rdGVtcChyZXF1
ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fLCBudW1iZXJlZD1UcnVlKQogCi0gICAgICAgIGRlZiBydW4o
c2VsZiwgY21kKToKKyAgICAgICAgZGVmIHJ1bihzZWxmLCAqY21kKToKICAgICAgICAgICAgICIi
IiBjYWxsZWQgYnkgdGVzdCBjb2RlIHRvIGV4ZWN1dGUgYW4gYWNjZXB0YW5jZSB0ZXN0LiAiIiIK
ICAgICAgICAgICAgIHNlbGYudG1wZGlyLmNoZGlyKCkKLSAgICAgICAgICAgIHJldHVybiBweS5w
cm9jZXNzLmNtZGV4ZWMoY21kKQorICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tf
b3V0cHV0KGNtZCkuZGVjb2RlKCkKIAogCiBhbmQgdGhlIGFjdHVhbCB0ZXN0IGZ1bmN0aW9uIGV4
YW1wbGU6CkBAIC0zNiw3ICszNiw3IEBAIGFuZCB0aGUgYWN0dWFsIHRlc3QgZnVuY3Rpb24gZXhh
bXBsZToKIAogICAgIGRlZiB0ZXN0X3NvbWVfYWNjZXB0YW5jZV9hc3BlY3QoYWNjZXB0KToKICAg
ICAgICAgYWNjZXB0LnRtcGRpci5ta2Rpcigic29tZXN1YiIpCi0gICAgICAgIHJlc3VsdCA9IGFj
Y2VwdC5ydW4oImxzIC1sYSIpCisgICAgICAgIHJlc3VsdCA9IGFjY2VwdC5ydW4oImxzIiwgIi1s
YSIpCiAgICAgICAgIGFzc2VydCAic29tZXN1YiIgaW4gcmVzdWx0CiAKIElmIHlvdSBydW4gdGhp
cyB0ZXN0IHdpdGhvdXQgc3BlY2lmeWluZyBhIGNvbW1hbmQgbGluZSBvcHRpb24KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvY29uZnRlc3QucHkKaW5kZXggZjkwNTczOGM0ZjZjN2FlNWVmNmQ4OWIx
OWZlYjE4MzVkNzQ5ZTAwNS4uMWY1YTk2MWFkYTAzZmE2OTQ3NzJiZWZjNzkwYjJhYzdjODQ0MWI3
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29uZnRlc3QucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29uZnRlc3QucHkKQEAgLTEgKzEsMiBAQAor
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGNvbGxlY3RfaWdub3JlID0gWyJub25weXRob24iXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvY29uZnRl
c3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9jb25mdGVzdC5w
eQppbmRleCA0NjZjNjJjMDZhYjg4MDNlMWM0Yjc0ODNjNzg3NDBlNjMxMDYxZGZhLi5iOTBjNzc0
NzMzYmI5OWNjODQxYzY1Y2VmODczZTliNzdjYmM5NGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9jb25mdGVzdC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9jb25mdGVzdC5weQpAQCAtMSw0ICsxLDQgQEAK
LQorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGltcG9ydCBweXRlc3QKIAogCkBAIC0xMCw3ICsx
MCw2IEBAIGRlZiBzZXR1cChyZXF1ZXN0KToKIAogCiBjbGFzcyBDb3N0bHlTZXR1cChvYmplY3Qp
OgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICBpbXBvcnQgdGltZQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS9fX2lu
aXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzkyZDYwMDU0ODllYmVlNjJj
ZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIx
L19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotIwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS90ZXN0X3F1aWNrLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS90ZXN0X3F1aWNr
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTc2NTc4NjdlMDIxZGJlOGM2NDI2
N2U1ZWI0Nzc4NDJkNjczYzNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdGVz
dF9xdWljay5weQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1kZWYgdGVzdF9xdWlj
ayhzZXR1cCk6Ci0gICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvY29zdGx5c2V0dXAvc3ViMS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDEzN2Y2NmExOGJhNzIwOTA0ODI4NDllZmY0OGNkNzJjMzRjNzc4M2UuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2Nvc3RseXNldHVwL3N1YjEvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9jb3N0bHlzZXR1cC9zdWIxL3Rlc3RfcXVpY2sucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL19faW5pdF9fLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3OTJkNjAwNTQ4OWViZWU2MmNkZTAyMDY2ZjE5YzU1MjFlNjIw
NDUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvX19pbml0X18ucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSArMCwwIEBACi0jCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL3Rlc3RfdHdvLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi90ZXN0X3R3by5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNmVkNmVlNGQ4OThmZjZlZmE3NmU2YTFkNDkwYzRjZDFiMGU4YzA0Mi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL3Rlc3RfdHdvLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsNiArMCwwIEBACi1kZWYgdGVzdF9zb21ldGhpbmcoc2V0dXApOgotICAgIGFzc2VydCBz
ZXR1cC50aW1lY29zdGx5ID09IDEKLQotZGVmIHRlc3Rfc29tZXRoaW5nX21vcmUoc2V0dXApOgot
ICAgIGFzc2VydCBzZXR1cC50aW1lY29zdGx5ID09IDEKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhNjQyMGVjODNkODc3OGJiNTBiYmVhMGE3MGY1
MmVmYjk5ZjcyNmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL3Rlc3RfdHdvLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYS9fX2luaXRfXy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9hL19faW5pdF9f
LnB5CmluZGV4IDc5MmQ2MDA1NDg5ZWJlZTYyY2RlMDIwNjZmMTljNTUyMWU2MjA0NTEuLmVjNTFj
NWEyYjlkZDYyMzA3M2ZhNzUyMDY1YTViNWE2MTU3ODBjN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9hL19faW5pdF9fLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9hL19faW5pdF9fLnB5CkBA
IC0xICsxLDIgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAjCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYS90ZXN0X3F1aWNrLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2EvdGVzdF9xdWljay5w
eQppbmRleCAzOGRkYTI2NjBkMjQ2ZjFlMWRhNjdjNDU2NTI0NWVkMTBhODk3NmI3Li40ZjdiOWYx
YWM3ZDVkYzM0NDFjMzU2MGVkNzA2NzIwMDZhZTczMzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYS90ZXN0X3F1aWNrLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9hL3Rlc3RfcXVpY2sucHkK
QEAgLTEsMiArMSwzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogZGVmIHRlc3RfcXVpY2so
c2V0dXApOgogICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2Nvc3RseXNldHVwL3N1Yl9iL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvY29zdGx5c2V0dXAvc3ViX2IvX19pbml0X18ucHkKaW5kZXggNzkyZDYwMDU0ODllYmVlNjJj
ZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MS4uZWM1MWM1YTJiOWRkNjIzMDczZmE3NTIwNjVhNWI1YTYx
NTc4MGM3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0
dXAvc3ViX2IvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29z
dGx5c2V0dXAvc3ViX2IvX19pbml0X18ucHkKQEAgLTEgKzEsMiBAQAorIyAtKi0gY29kaW5nOiB1
dGYtOCAtKi0KICMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3Rs
eXNldHVwL3N1Yl9iL3Rlc3RfdHdvLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29z
dGx5c2V0dXAvc3ViX2IvdGVzdF90d28ucHkKaW5kZXggYjE2NTNhYWFiODhhNTE3YTY2NzJiNjI1
MzhkNzY0OTQzY2Q0YzY4My4uNGUwOGJjMmI2OWVhYTlkMDg4ZGE4YzJhMTE0NDUwMTBiZWYyMmUz
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3Vi
X2IvdGVzdF90d28ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0
dXAvc3ViX2IvdGVzdF90d28ucHkKQEAgLTEsMyArMSw0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQogZGVmIHRlc3Rfc29tZXRoaW5nKHNldHVwKToKICAgICBhc3NlcnQgc2V0dXAudGltZWNv
c3RseSA9PSAxCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL21hcmtl
cnMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbWFya2Vycy5yc3QKaW5kZXggYmYz
NTJiYzgxMjk4YWQ0NGFmYjU0NzFlMTQ2ODY3YjlkNzdmMDVhMC4uYjhkOGJlZjBjYjE4OTY5NjQ4
YzY1ZjQ5ZjgxYjM0NDhlNzFjZDM4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvbWFya2Vycy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbWFya2Vy
cy5yc3QKQEAgLTQsNTAgKzQsNjYgQEAKIFdvcmtpbmcgd2l0aCBjdXN0b20gbWFya2VycwogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi1IZXJlIGFy
ZSBzb21lIGV4YW1wbGUgdXNpbmcgdGhlIDpyZWY6YG1hcmtgIG1lY2hhbmlzbS4KK0hlcmUgYXJl
IHNvbWUgZXhhbXBsZXMgdXNpbmcgdGhlIDpyZWY6YG1hcmtgIG1lY2hhbmlzbS4KKworLi4gX2Bt
YXJrIHJ1bmA6CiAKIE1hcmtpbmcgdGVzdCBmdW5jdGlvbnMgYW5kIHNlbGVjdGluZyB0aGVtIGZv
ciBhIHJ1bgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1Zb3UgY2FuICJtYXJrIiBhIHRlc3QgZnVuY3Rpb24gd2l0aCBjdXN0b20gbWV0YWRh
dGEgbGlrZSB0aGlzOjoKK1lvdSBjYW4gIm1hcmsiIGEgdGVzdCBmdW5jdGlvbiB3aXRoIGN1c3Rv
bSBtZXRhZGF0YSBsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMg
Y29udGVudCBvZiB0ZXN0X3NlcnZlci5weQogCiAgICAgaW1wb3J0IHB5dGVzdAorCisKICAgICBA
cHl0ZXN0Lm1hcmsud2VidGVzdAogICAgIGRlZiB0ZXN0X3NlbmRfaHR0cCgpOgotICAgICAgICBw
YXNzICMgcGVyZm9ybSBzb21lIHdlYnRlc3QgdGVzdCBmb3IgeW91ciBhcHAKKyAgICAgICAgcGFz
cyAgIyBwZXJmb3JtIHNvbWUgd2VidGVzdCB0ZXN0IGZvciB5b3VyIGFwcAorCisKICAgICBkZWYg
dGVzdF9zb21ldGhpbmdfcXVpY2soKToKICAgICAgICAgcGFzcworCisKICAgICBkZWYgdGVzdF9h
bm90aGVyKCk6CiAgICAgICAgIHBhc3MKKworCiAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6
CiAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKICAgICAgICAgICAgIHBhc3MKIAotLi4g
dmVyc2lvbmFkZGVkOjogMi4yCiAKLVlvdSBjYW4gdGhlbiByZXN0cmljdCBhIHRlc3QgcnVuIHRv
IG9ubHkgcnVuIHRlc3RzIG1hcmtlZCB3aXRoIGBgd2VidGVzdGBgOjoKKworWW91IGNhbiB0aGVu
IHJlc3RyaWN0IGEgdGVzdCBydW4gdG8gb25seSBydW4gdGVzdHMgbWFya2VkIHdpdGggYGB3ZWJ0
ZXN0YGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC12IC1tIHdl
YnRlc3QKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0
cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0
aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhP
Tl9QUkVGSVgvYmluL3B5dGhvbjMuNQotICAgIGNhY2hlZGlyOiAucHl0ZXN0X2NhY2hlCi0gICAg
cm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKLSAgICBjb2xsZWN0aW5nIC4uLiBj
b2xsZWN0ZWQgNCBpdGVtcyAvIDMgZGVzZWxlY3RlZAorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5
dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRI
T05fUFJFRklYL2Jpbi9weXRob24KKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVz
dF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKKyAgICBjb2xsZWN0aW5nIC4u
LiBjb2xsZWN0ZWQgNCBpdGVtcyAvIDMgZGVzZWxlY3RlZCAvIDEgc2VsZWN0ZWQKIAogICAgIHRl
c3Rfc2VydmVyLnB5Ojp0ZXN0X3NlbmRfaHR0cCBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsxMDAlXQogCiAgICAgPT09PT09PT09PT09PT09PT09IDEgcGFzc2VkLCAzIGRl
c2VsZWN0ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PQogCi1PciB0aGUgaW52
ZXJzZSwgcnVubmluZyBhbGwgdGVzdHMgZXhjZXB0IHRoZSB3ZWJ0ZXN0IG9uZXM6OgorT3IgdGhl
IGludmVyc2UsIHJ1bm5pbmcgYWxsIHRlc3RzIGV4Y2VwdCB0aGUgd2VidGVzdCBvbmVzOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtdiAtbSAibm90IHdlYnRlc3Qi
CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAz
LngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJF
RklYL2Jpbi9weXRob24zLjUKLSAgICBjYWNoZWRpcjogLnB5dGVzdF9jYWNoZQotICAgIHJvb3Rk
aXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Ci0gICAgY29sbGVjdGluZyAuLi4gY29sbGVj
dGVkIDQgaXRlbXMgLyAxIGRlc2VsZWN0ZWQKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24g
My54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BS
RUZJWC9iaW4vcHl0aG9uCisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2Fj
aGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVjdGluZyAuLi4gY29s
bGVjdGVkIDQgaXRlbXMgLyAxIGRlc2VsZWN0ZWQgLyAzIHNlbGVjdGVkCiAKICAgICB0ZXN0X3Nl
cnZlci5weTo6dGVzdF9zb21ldGhpbmdfcXVpY2sgUEFTU0VEICAgICAgICAgICAgICAgICAgICAg
ICAgICBbIDMzJV0KICAgICB0ZXN0X3NlcnZlci5weTo6dGVzdF9hbm90aGVyIFBBU1NFRCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIDY2JV0KQEAgLTYwLDQ1ICs3Niw1MSBAQCBT
ZWxlY3RpbmcgdGVzdHMgYmFzZWQgb24gdGhlaXIgbm9kZSBJRAogCiBZb3UgY2FuIHByb3ZpZGUg
b25lIG9yIG1vcmUgOnJlZjpgbm9kZSBJRHMgPG5vZGUtaWQ+YCBhcyBwb3NpdGlvbmFsCiBhcmd1
bWVudHMgdG8gc2VsZWN0IG9ubHkgc3BlY2lmaWVkIHRlc3RzLiBUaGlzIG1ha2VzIGl0IGVhc3kg
dG8gc2VsZWN0Ci10ZXN0cyBiYXNlZCBvbiB0aGVpciBtb2R1bGUsIGNsYXNzLCBtZXRob2QsIG9y
IGZ1bmN0aW9uIG5hbWU6OgordGVzdHMgYmFzZWQgb24gdGhlaXIgbW9kdWxlLCBjbGFzcywgbWV0
aG9kLCBvciBmdW5jdGlvbiBuYW1lOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAk
IHB5dGVzdCAtdiB0ZXN0X3NlcnZlci5weTo6VGVzdENsYXNzOjp0ZXN0X21ldGhvZAogICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5
dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4v
cHl0aG9uMy41Ci0gICAgY2FjaGVkaXI6IC5weXRlc3RfY2FjaGUKLSAgICByb290ZGlyOiAkUkVH
RU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngu
eSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklY
L2Jpbi9weXRob24KKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQor
ICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0
ZWQgMSBpdGVtCiAKICAgICB0ZXN0X3NlcnZlci5weTo6VGVzdENsYXNzOjp0ZXN0X21ldGhvZCBQ
QVNTRUQgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KIAogICAgID09PT09PT09PT09PT09
PT09PT09PT09PT0gMSBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09
PT09PT0KIAotWW91IGNhbiBhbHNvIHNlbGVjdCBvbiB0aGUgY2xhc3M6OgorWW91IGNhbiBhbHNv
IHNlbGVjdCBvbiB0aGUgY2xhc3M6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQg
cHl0ZXN0IC12IHRlc3Rfc2VydmVyLnB5OjpUZXN0Q2xhc3MKICAgICA9PT09PT09PT09PT09PT09
PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5
LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbjMuNQotICAg
IGNhY2hlZGlyOiAucHl0ZXN0X2NhY2hlCi0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00Lngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uCisg
ICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAk
UkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGluZyAuLi4gY29sbGVjdGVkIDEgaXRlbQogCiAg
ICAgdGVzdF9zZXJ2ZXIucHk6OlRlc3RDbGFzczo6dGVzdF9tZXRob2QgUEFTU0VEICAgICAgICAg
ICAgICAgICAgICAgICAgWzEwMCVdCiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEg
cGFzc2VkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKLU9yIHNl
bGVjdCBtdWx0aXBsZSBub2Rlczo6CitPciBzZWxlY3QgbXVsdGlwbGUgbm9kZXM6CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRlc3QKIAotICAkIHB5dGVzdCAtdiB0ZXN0X3NlcnZlci5weTo6VGVzdENs
YXNzIHRlc3Rfc2VydmVyLnB5Ojp0ZXN0X3NlbmRfaHR0cAotICA9PT09PT09PT09PT09PT09PT09
PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0gIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngu
eSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24zLjUKLSAgY2FjaGVk
aXI6IC5weXRlc3RfY2FjaGUKLSAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToK
LSAgY29sbGVjdGluZyAuLi4gY29sbGVjdGVkIDIgaXRlbXMKKyAgICAkIHB5dGVzdCAtdiB0ZXN0
X3NlcnZlci5weTo6VGVzdENsYXNzIHRlc3Rfc2VydmVyLnB5Ojp0ZXN0X3NlbmRfaHR0cAorICAg
ID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54Lnks
IHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9i
aW4vcHl0aG9uCisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAg
ICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVjdGluZyAuLi4gY29sbGVjdGVk
IDIgaXRlbXMKIAotICB0ZXN0X3NlcnZlci5weTo6VGVzdENsYXNzOjp0ZXN0X21ldGhvZCBQQVNT
RUQgICAgICAgICAgICAgICAgICAgICAgICBbIDUwJV0KLSAgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rf
c2VuZF9odHRwIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisg
ICAgdGVzdF9zZXJ2ZXIucHk6OlRlc3RDbGFzczo6dGVzdF9tZXRob2QgUEFTU0VEICAgICAgICAg
ICAgICAgICAgICAgICAgWyA1MCVdCisgICAgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc2VuZF9odHRw
IFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCiAKLSAgPT09PT09
PT09PT09PT09PT09PT09PT09PSAyIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09
PT09PT09PT09PT09PQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gMiBwYXNzZWQgaW4g
MC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLi4gX25vZGUtaWQ6CiAK
QEAgLTEyNCwyNyArMTQ2LDMxIEBAIFVzaW5nIGBgLWsgZXhwcmBgIHRvIHNlbGVjdCB0ZXN0cyBi
YXNlZCBvbiB0aGVpciBuYW1lCiBZb3UgY2FuIHVzZSB0aGUgYGAta2BgIGNvbW1hbmQgbGluZSBv
cHRpb24gdG8gc3BlY2lmeSBhbiBleHByZXNzaW9uCiB3aGljaCBpbXBsZW1lbnRzIGEgc3Vic3Ry
aW5nIG1hdGNoIG9uIHRoZSB0ZXN0IG5hbWVzIGluc3RlYWQgb2YgdGhlCiBleGFjdCBtYXRjaCBv
biBtYXJrZXJzIHRoYXQgYGAtbWBgIHByb3ZpZGVzLiAgVGhpcyBtYWtlcyBpdCBlYXN5IHRvCi1z
ZWxlY3QgdGVzdHMgYmFzZWQgb24gdGhlaXIgbmFtZXM6Ogorc2VsZWN0IHRlc3RzIGJhc2VkIG9u
IHRoZWlyIG5hbWVzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAt
diAtayBodHRwICAjIHJ1bm5pbmcgd2l0aCB0aGUgYWJvdmUgZGVmaW5lZCBleGFtcGxlIG1vZHVs
ZQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24g
My54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BS
RUZJWC9iaW4vcHl0aG9uMy41Ci0gICAgY2FjaGVkaXI6IC5weXRlc3RfY2FjaGUKLSAgICByb290
ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgotICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxl
Y3RlZCA0IGl0ZW1zIC8gMyBkZXNlbGVjdGVkCisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9u
IDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9Q
UkVGSVgvYmluL3B5dGhvbgorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2Nh
Y2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgorICAgIGNvbGxlY3RpbmcgLi4uIGNv
bGxlY3RlZCA0IGl0ZW1zIC8gMyBkZXNlbGVjdGVkIC8gMSBzZWxlY3RlZAogCiAgICAgdGVzdF9z
ZXJ2ZXIucHk6OnRlc3Rfc2VuZF9odHRwIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWzEwMCVdCiAKICAgICA9PT09PT09PT09PT09PT09PT0gMSBwYXNzZWQsIDMgZGVzZWxl
Y3RlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09CiAKLUFuZCB5b3UgY2FuIGFs
c28gcnVuIGFsbCB0ZXN0cyBleGNlcHQgdGhlIG9uZXMgdGhhdCBtYXRjaCB0aGUga2V5d29yZDo6
CitBbmQgeW91IGNhbiBhbHNvIHJ1biBhbGwgdGVzdHMgZXhjZXB0IHRoZSBvbmVzIHRoYXQgbWF0
Y2ggdGhlIGtleXdvcmQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0
IC1rICJub3Qgc2VuZF9odHRwIiAtdgogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0
ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41Ci0gICAgY2FjaGVkaXI6IC5w
eXRlc3RfY2FjaGUKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgotICAg
IGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA0IGl0ZW1zIC8gMSBkZXNlbGVjdGVkCisgICAgcGxh
dGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVn
Z3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbgorICAgIGNhY2hlZGlyOiAkUFlU
SE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgor
ICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA0IGl0ZW1zIC8gMSBkZXNlbGVjdGVkIC8gMyBz
ZWxlY3RlZAogCiAgICAgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc29tZXRoaW5nX3F1aWNrIFBBU1NF
RCAgICAgICAgICAgICAgICAgICAgICAgICAgWyAzMyVdCiAgICAgdGVzdF9zZXJ2ZXIucHk6OnRl
c3RfYW5vdGhlciBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyA2NiVd
CkBAIC0xNTIsMTQgKzE3OCwxNiBAQCBBbmQgeW91IGNhbiBhbHNvIHJ1biBhbGwgdGVzdHMgZXhj
ZXB0IHRoZSBvbmVzIHRoYXQgbWF0Y2ggdGhlIGtleXdvcmQ6OgogCiAgICAgPT09PT09PT09PT09
PT09PT09IDMgcGFzc2VkLCAxIGRlc2VsZWN0ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09
PT09PT09PQogCi1PciB0byBzZWxlY3QgImh0dHAiIGFuZCAicXVpY2siIHRlc3RzOjoKK09yIHRv
IHNlbGVjdCAiaHR0cCIgYW5kICJxdWljayIgdGVzdHM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRl
c3QKIAogICAgICQgcHl0ZXN0IC1rICJodHRwIG9yIHF1aWNrIiAtdgogICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41
Ci0gICAgY2FjaGVkaXI6IC5weXRlc3RfY2FjaGUKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1Q
RElSLCBpbmlmaWxlOgotICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA0IGl0ZW1zIC8gMiBk
ZXNlbGVjdGVkCisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54
LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbgor
ICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUgorICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA0IGl0ZW1zIC8g
MiBkZXNlbGVjdGVkIC8gMiBzZWxlY3RlZAogCiAgICAgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc2Vu
ZF9odHRwIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyA1MCVdCiAgICAg
dGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc29tZXRoaW5nX3F1aWNrIFBBU1NFRCAgICAgICAgICAgICAg
ICAgICAgICAgICAgWzEwMCVdCkBAIC0xODQsMzEgKzIxMiwzNyBAQCBPciB0byBzZWxlY3QgImh0
dHAiIGFuZCAicXVpY2siIHRlc3RzOjoKIFJlZ2lzdGVyaW5nIG1hcmtlcnMKIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLi4gdmVyc2lvbmFkZGVkOjogMi4yCisKIAog
Li4gaW5pLXN5bnRheCBmb3IgY3VzdG9tIG1hcmtlcnM6CiAKLVJlZ2lzdGVyaW5nIG1hcmtlcnMg
Zm9yIHlvdXIgdGVzdCBzdWl0ZSBpcyBzaW1wbGU6OgorUmVnaXN0ZXJpbmcgbWFya2VycyBmb3Ig
eW91ciB0ZXN0IHN1aXRlIGlzIHNpbXBsZToKKworLi4gY29kZS1ibG9jazo6IGluaQogCiAgICAg
IyBjb250ZW50IG9mIHB5dGVzdC5pbmkKICAgICBbcHl0ZXN0XQogICAgIG1hcmtlcnMgPQogICAg
ICAgICB3ZWJ0ZXN0OiBtYXJrIGEgdGVzdCBhcyBhIHdlYnRlc3QuCiAKLVlvdSBjYW4gYXNrIHdo
aWNoIG1hcmtlcnMgZXhpc3QgZm9yIHlvdXIgdGVzdCBzdWl0ZSAtIHRoZSBsaXN0IGluY2x1ZGVz
IG91ciBqdXN0IGRlZmluZWQgYGB3ZWJ0ZXN0YGAgbWFya2Vyczo6CitZb3UgY2FuIGFzayB3aGlj
aCBtYXJrZXJzIGV4aXN0IGZvciB5b3VyIHRlc3Qgc3VpdGUgLSB0aGUgbGlzdCBpbmNsdWRlcyBv
dXIganVzdCBkZWZpbmVkIGBgd2VidGVzdGBgIG1hcmtlcnM6CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRlc3QKIAogICAgICQgcHl0ZXN0IC0tbWFya2VycwogICAgIEBweXRlc3QubWFyay53ZWJ0ZXN0
OiBtYXJrIGEgdGVzdCBhcyBhIHdlYnRlc3QuCiAKKyAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2Fy
bmluZ3Mod2FybmluZyk6IGFkZCBhIHdhcm5pbmcgZmlsdGVyIHRvIHRoZSBnaXZlbiB0ZXN0LiBz
ZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwjcHl0ZXN0
LW1hcmstZmlsdGVyd2FybmluZ3MKKwogICAgIEBweXRlc3QubWFyay5za2lwKHJlYXNvbj1Ob25l
KTogc2tpcCB0aGUgZ2l2ZW4gdGVzdCBmdW5jdGlvbiB3aXRoIGFuIG9wdGlvbmFsIHJlYXNvbi4g
RXhhbXBsZTogc2tpcChyZWFzb249Im5vIHdheSBvZiBjdXJyZW50bHkgdGVzdGluZyB0aGlzIikg
c2tpcHMgdGhlIHRlc3QuCiAKLSAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKGNvbmRpdGlvbik6IHNr
aXAgdGhlIGdpdmVuIHRlc3QgZnVuY3Rpb24gaWYgZXZhbChjb25kaXRpb24pIHJlc3VsdHMgaW4g
YSBUcnVlIHZhbHVlLiAgRXZhbHVhdGlvbiBoYXBwZW5zIHdpdGhpbiB0aGUgbW9kdWxlIGdsb2Jh
bCBjb250ZXh0LiBFeGFtcGxlOiBza2lwaWYoJ3N5cy5wbGF0Zm9ybSA9PSAid2luMzIiJykgc2tp
cHMgdGhlIHRlc3QgaWYgd2UgYXJlIG9uIHRoZSB3aW4zMiBwbGF0Zm9ybS4gc2VlIGh0dHA6Ly9w
eXRlc3Qub3JnL2xhdGVzdC9za2lwcGluZy5odG1sCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihj
b25kaXRpb24pOiBza2lwIHRoZSBnaXZlbiB0ZXN0IGZ1bmN0aW9uIGlmIGV2YWwoY29uZGl0aW9u
KSByZXN1bHRzIGluIGEgVHJ1ZSB2YWx1ZS4gIEV2YWx1YXRpb24gaGFwcGVucyB3aXRoaW4gdGhl
IG1vZHVsZSBnbG9iYWwgY29udGV4dC4gRXhhbXBsZTogc2tpcGlmKCdzeXMucGxhdGZvcm0gPT0g
IndpbjMyIicpIHNraXBzIHRoZSB0ZXN0IGlmIHdlIGFyZSBvbiB0aGUgd2luMzIgcGxhdGZvcm0u
IHNlZSBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvc2tpcHBpbmcuaHRtbAogCi0g
ICAgQHB5dGVzdC5tYXJrLnhmYWlsKGNvbmRpdGlvbiwgcmVhc29uPU5vbmUsIHJ1bj1UcnVlLCBy
YWlzZXM9Tm9uZSwgc3RyaWN0PUZhbHNlKTogbWFyayB0aGUgdGVzdCBmdW5jdGlvbiBhcyBhbiBl
eHBlY3RlZCBmYWlsdXJlIGlmIGV2YWwoY29uZGl0aW9uKSBoYXMgYSBUcnVlIHZhbHVlLiBPcHRp
b25hbGx5IHNwZWNpZnkgYSByZWFzb24gZm9yIGJldHRlciByZXBvcnRpbmcgYW5kIHJ1bj1GYWxz
ZSBpZiB5b3UgZG9uJ3QgZXZlbiB3YW50IHRvIGV4ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24uIElm
IG9ubHkgc3BlY2lmaWMgZXhjZXB0aW9uKHMpIGFyZSBleHBlY3RlZCwgeW91IGNhbiBsaXN0IHRo
ZW0gaW4gcmFpc2VzLCBhbmQgaWYgdGhlIHRlc3QgZmFpbHMgaW4gb3RoZXIgd2F5cywgaXQgd2ls
bCBiZSByZXBvcnRlZCBhcyBhIHRydWUgZmFpbHVyZS4gU2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xh
dGVzdC9za2lwcGluZy5odG1sCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKGNvbmRpdGlvbiwgcmVh
c29uPU5vbmUsIHJ1bj1UcnVlLCByYWlzZXM9Tm9uZSwgc3RyaWN0PUZhbHNlKTogbWFyayB0aGUg
dGVzdCBmdW5jdGlvbiBhcyBhbiBleHBlY3RlZCBmYWlsdXJlIGlmIGV2YWwoY29uZGl0aW9uKSBo
YXMgYSBUcnVlIHZhbHVlLiBPcHRpb25hbGx5IHNwZWNpZnkgYSByZWFzb24gZm9yIGJldHRlciBy
ZXBvcnRpbmcgYW5kIHJ1bj1GYWxzZSBpZiB5b3UgZG9uJ3QgZXZlbiB3YW50IHRvIGV4ZWN1dGUg
dGhlIHRlc3QgZnVuY3Rpb24uIElmIG9ubHkgc3BlY2lmaWMgZXhjZXB0aW9uKHMpIGFyZSBleHBl
Y3RlZCwgeW91IGNhbiBsaXN0IHRoZW0gaW4gcmFpc2VzLCBhbmQgaWYgdGhlIHRlc3QgZmFpbHMg
aW4gb3RoZXIgd2F5cywgaXQgd2lsbCBiZSByZXBvcnRlZCBhcyBhIHRydWUgZmFpbHVyZS4gU2Vl
IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9za2lwcGluZy5odG1sCiAKLSAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoYXJnbmFtZXMsIGFyZ3ZhbHVlcyk6IGNhbGwgYSB0ZXN0
IGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIHBhc3NpbmcgaW4gZGlmZmVyZW50IGFyZ3VtZW50cyBp
biB0dXJuLiBhcmd2YWx1ZXMgZ2VuZXJhbGx5IG5lZWRzIHRvIGJlIGEgbGlzdCBvZiB2YWx1ZXMg
aWYgYXJnbmFtZXMgc3BlY2lmaWVzIG9ubHkgb25lIG5hbWUgb3IgYSBsaXN0IG9mIHR1cGxlcyBv
ZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVzIG11bHRpcGxlIG5hbWVzLiBFeGFtcGxlOiBA
cGFyYW1ldHJpemUoJ2FyZzEnLCBbMSwyXSkgd291bGQgbGVhZCB0byB0d28gY2FsbHMgb2YgdGhl
IGRlY29yYXRlZCB0ZXN0IGZ1bmN0aW9uLCBvbmUgd2l0aCBhcmcxPTEgYW5kIGFub3RoZXIgd2l0
aCBhcmcxPTIuc2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIGZv
ciBtb3JlIGluZm8gYW5kIGV4YW1wbGVzLgorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZShh
cmduYW1lcywgYXJndmFsdWVzKTogY2FsbCBhIHRlc3QgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMg
cGFzc2luZyBpbiBkaWZmZXJlbnQgYXJndW1lbnRzIGluIHR1cm4uIGFyZ3ZhbHVlcyBnZW5lcmFs
bHkgbmVlZHMgdG8gYmUgYSBsaXN0IG9mIHZhbHVlcyBpZiBhcmduYW1lcyBzcGVjaWZpZXMgb25s
eSBvbmUgbmFtZSBvciBhIGxpc3Qgb2YgdHVwbGVzIG9mIHZhbHVlcyBpZiBhcmduYW1lcyBzcGVj
aWZpZXMgbXVsdGlwbGUgbmFtZXMuIEV4YW1wbGU6IEBwYXJhbWV0cml6ZSgnYXJnMScsIFsxLDJd
KSB3b3VsZCBsZWFkIHRvIHR3byBjYWxscyBvZiB0aGUgZGVjb3JhdGVkIHRlc3QgZnVuY3Rpb24s
IG9uZSB3aXRoIGFyZzE9MSBhbmQgYW5vdGhlciB3aXRoIGFyZzE9Mi5zZWUgaHR0cHM6Ly9kb2Nz
LnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3BhcmFtZXRyaXplLmh0bWwgZm9yIG1vcmUgaW5mbyBhbmQg
ZXhhbXBsZXMuCiAKLSAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoZml4dHVyZW5hbWUxLCBm
aXh0dXJlbmFtZTIsIC4uLik6IG1hcmsgdGVzdHMgYXMgbmVlZGluZyBhbGwgb2YgdGhlIHNwZWNp
ZmllZCBmaXh0dXJlcy4gc2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9maXh0dXJlLmh0bWwj
dXNlZml4dHVyZXMKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoZml4dHVyZW5hbWUxLCBm
aXh0dXJlbmFtZTIsIC4uLik6IG1hcmsgdGVzdHMgYXMgbmVlZGluZyBhbGwgb2YgdGhlIHNwZWNp
ZmllZCBmaXh0dXJlcy4gc2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9maXh0
dXJlLmh0bWwjdXNlZml4dHVyZXMKIAogICAgIEBweXRlc3QubWFyay50cnlmaXJzdDogbWFyayBh
IGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24gc3VjaCB0aGF0IHRoZSBwbHVnaW4gbWFjaGlu
ZXJ5IHdpbGwgdHJ5IHRvIGNhbGwgaXQgZmlyc3QvYXMgZWFybHkgYXMgcG9zc2libGUuCiAKQEAg
LTIyNyw3ICsyNjEsNyBAQCBGb3IgYW4gZXhhbXBsZSBvbiBob3cgdG8gYWRkIGFuZCB3b3JrIHdp
dGggbWFya2VycyBmcm9tIGEgcGx1Z2luLCBzZWUKICAgICAqIEFza2luZyBmb3IgZXhpc3Rpbmcg
bWFya2VycyB2aWEgYGBweXRlc3QgLS1tYXJrZXJzYGAgZ2l2ZXMgZ29vZCBvdXRwdXQKIAogICAg
ICogVHlwb3MgaW4gZnVuY3Rpb24gbWFya2VycyBhcmUgdHJlYXRlZCBhcyBhbiBlcnJvciBpZiB5
b3UgdXNlCi0gICAgICB0aGUgYGAtLXN0cmljdGBgIG9wdGlvbi4KKyAgICAgIHRoZSBgYC0tc3Ry
aWN0LW1hcmtlcnNgYCBvcHRpb24uCiAKIC4uIF9gc2NvcGVkLW1hcmtpbmdgOgogCkBAIC0yMzUs
MTQgKzI2OSwxOSBAQCBNYXJraW5nIHdob2xlIGNsYXNzZXMgb3IgbW9kdWxlcwogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBZb3UgbWF5IHVz
ZSBgYHB5dGVzdC5tYXJrYGAgZGVjb3JhdG9ycyB3aXRoIGNsYXNzZXMgdG8gYXBwbHkgbWFya2Vy
cyB0byBhbGwgb2YKLWl0cyB0ZXN0IG1ldGhvZHM6OgoraXRzIHRlc3QgbWV0aG9kczoKKworLi4g
Y29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyBjb250ZW50IG9mIHRlc3RfbWFya19jbGFzc2xl
dmVsLnB5CiAgICAgaW1wb3J0IHB5dGVzdAorCisKICAgICBAcHl0ZXN0Lm1hcmsud2VidGVzdAog
ICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgogICAgICAgICBkZWYgdGVzdF9zdGFydHVwKHNl
bGYpOgogICAgICAgICAgICAgcGFzcworCiAgICAgICAgIGRlZiB0ZXN0X3N0YXJ0dXBfYW5kX21v
cmUoc2VsZik6CiAgICAgICAgICAgICBwYXNzCiAKQEAgLTI1MCwxNyArMjg5LDIzIEBAIFRoaXMg
aXMgZXF1aXZhbGVudCB0byBkaXJlY3RseSBhcHBseWluZyB0aGUgZGVjb3JhdG9yIHRvIHRoZQog
dHdvIHRlc3QgZnVuY3Rpb25zLgogCiBUbyByZW1haW4gYmFja3dhcmQtY29tcGF0aWJsZSB3aXRo
IFB5dGhvbiAyLjQgeW91IGNhbiBhbHNvIHNldCBhCi1gYHB5dGVzdG1hcmtgYCBhdHRyaWJ1dGUg
b24gYSBUZXN0Q2xhc3MgbGlrZSB0aGlzOjoKK2BgcHl0ZXN0bWFya2BgIGF0dHJpYnV0ZSBvbiBh
IFRlc3RDbGFzcyBsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIGlt
cG9ydCBweXRlc3QKIAorCiAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CiAgICAgICAgIHB5
dGVzdG1hcmsgPSBweXRlc3QubWFyay53ZWJ0ZXN0CiAKLW9yIGlmIHlvdSBuZWVkIHRvIHVzZSBt
dWx0aXBsZSBtYXJrZXJzIHlvdSBjYW4gdXNlIGEgbGlzdDo6CitvciBpZiB5b3UgbmVlZCB0byB1
c2UgbXVsdGlwbGUgbWFya2VycyB5b3UgY2FuIHVzZSBhIGxpc3Q6CisKKy4uIGNvZGUtYmxvY2s6
OiBweXRob24KIAogICAgIGltcG9ydCBweXRlc3QKIAorCiAgICAgY2xhc3MgVGVzdENsYXNzKG9i
amVjdCk6CiAgICAgICAgIHB5dGVzdG1hcmsgPSBbcHl0ZXN0Lm1hcmsud2VidGVzdCwgcHl0ZXN0
Lm1hcmsuc2xvd3Rlc3RdCiAKQEAgLTI2OSw4ICszMTQsMTIgQEAgWW91IGNhbiBhbHNvIHNldCBh
IG1vZHVsZSBsZXZlbCBtYXJrZXI6OgogICAgIGltcG9ydCBweXRlc3QKICAgICBweXRlc3RtYXJr
ID0gcHl0ZXN0Lm1hcmsud2VidGVzdAogCi1pbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgYXBwbGll
ZCB0byBhbGwgZnVuY3Rpb25zIGFuZAotbWV0aG9kcyBkZWZpbmVkIGluIHRoZSBtb2R1bGUuCitv
ciBtdWx0aXBsZSBtYXJrZXJzOjoKKworICAgIHB5dGVzdG1hcmsgPSBbcHl0ZXN0Lm1hcmsud2Vi
dGVzdCwgcHl0ZXN0Lm1hcmsuc2xvd3Rlc3RdCisKK2luIHdoaWNoIGNhc2UgbWFya2VycyB3aWxs
IGJlIGFwcGxpZWQgKGluIGxlZnQtdG8tcmlnaHQgb3JkZXIpIHRvCithbGwgZnVuY3Rpb25zIGFu
ZCBtZXRob2RzIGRlZmluZWQgaW4gdGhlIG1vZHVsZS4KIAogLi4gX2BtYXJraW5nIGluZGl2aWR1
YWwgdGVzdHMgd2hlbiB1c2luZyBwYXJhbWV0cml6ZWA6CiAKQEAgLTI3OSwzMiArMzI4LDI0IEBA
IE1hcmtpbmcgaW5kaXZpZHVhbCB0ZXN0cyB3aGVuIHVzaW5nIHBhcmFtZXRyaXplCiAKIFdoZW4g
dXNpbmcgcGFyYW1ldHJpemUsIGFwcGx5aW5nIGEgbWFyayB3aWxsIG1ha2UgaXQgYXBwbHkKIHRv
IGVhY2ggaW5kaXZpZHVhbCB0ZXN0LiBIb3dldmVyIGl0IGlzIGFsc28gcG9zc2libGUgdG8KLWFw
cGx5IGEgbWFya2VyIHRvIGFuIGluZGl2aWR1YWwgdGVzdCBpbnN0YW5jZTo6CithcHBseSBhIG1h
cmtlciB0byBhbiBpbmRpdmlkdWFsIHRlc3QgaW5zdGFuY2U6CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRob24KIAogICAgIGltcG9ydCBweXRlc3QKIAorCiAgICAgQHB5dGVzdC5tYXJrLmZvbwotICAg
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoIm4iLCAiZXhwZWN0ZWQiKSwgWwotICAgICAgICAo
MSwgMiksCi0gICAgICAgIHB5dGVzdC5tYXJrLmJhcigoMSwgMykpLAotICAgICAgICAoMiwgMyks
Ci0gICAgXSkKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgibiIsICJl
eHBlY3RlZCIpLCBbKDEsIDIpLCBweXRlc3QucGFyYW0oKDEsIDMpLCBtYXJrcz1weXRlc3QubWFy
ay5iYXIpLCAoMiwgMyldCisgICAgKQogICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3Rl
ZCk6Ci0gICAgICAgICBhc3NlcnQgbiArIDEgPT0gZXhwZWN0ZWQKKyAgICAgICAgYXNzZXJ0IG4g
KyAxID09IGV4cGVjdGVkCiAKIEluIHRoaXMgZXhhbXBsZSB0aGUgbWFyayAiZm9vIiB3aWxsIGFw
cGx5IHRvIGVhY2ggb2YgdGhlIHRocmVlCiB0ZXN0cywgd2hlcmVhcyB0aGUgImJhciIgbWFyayBp
cyBvbmx5IGFwcGxpZWQgdG8gdGhlIHNlY29uZCB0ZXN0LgogU2tpcCBhbmQgeGZhaWwgbWFya3Mg
Y2FuIGFsc28gYmUgYXBwbGllZCBpbiB0aGlzIHdheSwgc2VlIDpyZWY6YHNraXAveGZhaWwgd2l0
aCBwYXJhbWV0cml6ZWAuCiAKLS4uIG5vdGU6OgotCi0gICAgSWYgdGhlIGRhdGEgeW91IGFyZSBw
YXJhbWV0cml6aW5nIGhhcHBlbiB0byBiZSBzaW5nbGUgY2FsbGFibGVzLCB5b3UgbmVlZCB0byBi
ZSBjYXJlZnVsCi0gICAgd2hlbiBtYXJraW5nIHRoZXNlIGl0ZW1zLiBgcHl0ZXN0Lm1hcmsueGZh
aWwobXlfZnVuYylgIHdvbid0IHdvcmsgYmVjYXVzZSBpdCdzIGFsc28gdGhlCi0gICAgc2lnbmF0
dXJlIG9mIGEgZnVuY3Rpb24gYmVpbmcgZGVjb3JhdGVkLiBUbyByZXNvbHZlIHRoaXMgYW1iaWd1
aXR5LCB5b3UgbmVlZCB0byBwYXNzIGEKLSAgICByZWFzb24gYXJndW1lbnQ6Ci0gICAgYHB5dGVz
dC5tYXJrLnhmYWlsKGZ1bmNfYmFyLCByZWFzb249Iklzc3VlIzciKWAuCi0KLQogLi4gX2BhZGRp
bmcgYSBjdXN0b20gbWFya2VyIGZyb20gYSBwbHVnaW5gOgogCiBDdXN0b20gbWFya2VyIGFuZCBj
b21tYW5kIGxpbmUgb3B0aW9uIHRvIGNvbnRyb2wgdGVzdCBydW5zCkBAIC0zMTUsNzQgKzM1Niw5
OSBAQCBDdXN0b20gbWFya2VyIGFuZCBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGNvbnRyb2wgdGVz
dCBydW5zCiBQbHVnaW5zIGNhbiBwcm92aWRlIGN1c3RvbSBtYXJrZXJzIGFuZCBpbXBsZW1lbnQg
c3BlY2lmaWMgYmVoYXZpb3VyCiBiYXNlZCBvbiBpdC4gVGhpcyBpcyBhIHNlbGYtY29udGFpbmVk
IGV4YW1wbGUgd2hpY2ggYWRkcyBhIGNvbW1hbmQKIGxpbmUgb3B0aW9uIGFuZCBhIHBhcmFtZXRy
aXplZCB0ZXN0IGZ1bmN0aW9uIG1hcmtlciB0byBydW4gdGVzdHMKLXNwZWNpZmllcyB2aWEgbmFt
ZWQgZW52aXJvbm1lbnRzOjoKK3NwZWNpZmllcyB2aWEgbmFtZWQgZW52aXJvbm1lbnRzOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKIAog
ICAgIGltcG9ydCBweXRlc3QKKworCiAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToK
LSAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLUUiLCBhY3Rpb249InN0b3JlIiwgbWV0YXZhcj0i
TkFNRSIsCi0gICAgICAgICAgICBoZWxwPSJvbmx5IHJ1biB0ZXN0cyBtYXRjaGluZyB0aGUgZW52
aXJvbm1lbnQgTkFNRS4iKQorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKAorICAgICAgICAgICAg
Ii1FIiwKKyAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgbWV0YXZhcj0i
TkFNRSIsCisgICAgICAgICAgICBoZWxwPSJvbmx5IHJ1biB0ZXN0cyBtYXRjaGluZyB0aGUgZW52
aXJvbm1lbnQgTkFNRS4iLAorICAgICAgICApCisKIAogICAgIGRlZiBweXRlc3RfY29uZmlndXJl
KGNvbmZpZyk6CiAgICAgICAgICMgcmVnaXN0ZXIgYW4gYWRkaXRpb25hbCBtYXJrZXIKLSAgICAg
ICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAgICAgICAgICAgImVudihu
YW1lKTogbWFyayB0ZXN0IHRvIHJ1biBvbmx5IG9uIG5hbWVkIGVudmlyb25tZW50IikKKyAgICAg
ICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoCisgICAgICAgICAgICAibWFya2VycyIsICJlbnYo
bmFtZSk6IG1hcmsgdGVzdCB0byBydW4gb25seSBvbiBuYW1lZCBlbnZpcm9ubWVudCIKKyAgICAg
ICAgKQorCiAKICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgICAgIGVu
dm5hbWVzID0gW21hcmsuYXJnc1swXSBmb3IgbWFyayBpbiBpdGVtLml0ZXJfbWFya2VycyhuYW1l
PSdlbnYnKV0KKyAgICAgICAgZW52bmFtZXMgPSBbbWFyay5hcmdzWzBdIGZvciBtYXJrIGluIGl0
ZW0uaXRlcl9tYXJrZXJzKG5hbWU9ImVudiIpXQogICAgICAgICBpZiBlbnZuYW1lczoKICAgICAg
ICAgICAgIGlmIGl0ZW0uY29uZmlnLmdldG9wdGlvbigiLUUiKSBub3QgaW4gZW52bmFtZXM6CiAg
ICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoInRlc3QgcmVxdWlyZXMgZW52IGluICVyIiAlIGVu
dm5hbWVzKQogCi1BIHRlc3QgZmlsZSB1c2luZyB0aGlzIGxvY2FsIHBsdWdpbjo6CitBIHRlc3Qg
ZmlsZSB1c2luZyB0aGlzIGxvY2FsIHBsdWdpbjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgog
CiAgICAgIyBjb250ZW50IG9mIHRlc3Rfc29tZWVudi5weQogCiAgICAgaW1wb3J0IHB5dGVzdAor
CisKICAgICBAcHl0ZXN0Lm1hcmsuZW52KCJzdGFnZTEiKQogICAgIGRlZiB0ZXN0X2Jhc2ljX2Ri
X29wZXJhdGlvbigpOgogICAgICAgICBwYXNzCiAKIGFuZCBhbiBleGFtcGxlIGludm9jYXRpb25z
IHNwZWNpZnlpbmcgYSBkaWZmZXJlbnQgZW52aXJvbm1lbnQgdGhhbiB3aGF0Ci10aGUgdGVzdCBu
ZWVkczo6Cit0aGUgdGVzdCBuZWVkczoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAg
JCBweXRlc3QgLUUgc3RhZ2UyCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qg
c2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3Jt
IGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAu
eC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0w
LngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9v
dGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAxIGl0ZW0KIAogICAgIHRlc3Rf
c29tZWVudi5weSBzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsxMDAlXQogCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09IDEgc2tpcHBlZCBp
biAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQogCi1hbmQgaGVyZSBpcyBv
bmUgdGhhdCBzcGVjaWZpZXMgZXhhY3RseSB0aGUgZW52aXJvbm1lbnQgbmVlZGVkOjoKK2FuZCBo
ZXJlIGlzIG9uZSB0aGF0IHNwZWNpZmllcyBleGFjdGx5IHRoZSBlbnZpcm9ubWVudCBuZWVkZWQ6
CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1FIHN0YWdlMQogICAg
ID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54Lnks
IHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdF
TkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55
LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZ
VEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIK
ICAgICBjb2xsZWN0ZWQgMSBpdGVtCiAKICAgICB0ZXN0X3NvbWVlbnYucHkgLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KIAogICAgID09
PT09PT09PT09PT09PT09PT09PT09PT0gMSBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09
PT09PT09PT09PT09PT09PT0KIAotVGhlIGBgLS1tYXJrZXJzYGAgb3B0aW9uIGFsd2F5cyBnaXZl
cyB5b3UgYSBsaXN0IG9mIGF2YWlsYWJsZSBtYXJrZXJzOjoKK1RoZSBgYC0tbWFya2Vyc2BgIG9w
dGlvbiBhbHdheXMgZ2l2ZXMgeW91IGEgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VyczoKKworLi4g
Y29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLS1tYXJrZXJzCiAgICAgQHB5dGVz
dC5tYXJrLmVudihuYW1lKTogbWFyayB0ZXN0IHRvIHJ1biBvbmx5IG9uIG5hbWVkIGVudmlyb25t
ZW50CiAKKyAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3Mod2FybmluZyk6IGFkZCBhIHdh
cm5pbmcgZmlsdGVyIHRvIHRoZSBnaXZlbiB0ZXN0LiBzZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5v
cmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwjcHl0ZXN0LW1hcmstZmlsdGVyd2FybmluZ3MKKwog
ICAgIEBweXRlc3QubWFyay5za2lwKHJlYXNvbj1Ob25lKTogc2tpcCB0aGUgZ2l2ZW4gdGVzdCBm
dW5jdGlvbiB3aXRoIGFuIG9wdGlvbmFsIHJlYXNvbi4gRXhhbXBsZTogc2tpcChyZWFzb249Im5v
IHdheSBvZiBjdXJyZW50bHkgdGVzdGluZyB0aGlzIikgc2tpcHMgdGhlIHRlc3QuCiAKLSAgICBA
cHl0ZXN0Lm1hcmsuc2tpcGlmKGNvbmRpdGlvbik6IHNraXAgdGhlIGdpdmVuIHRlc3QgZnVuY3Rp
b24gaWYgZXZhbChjb25kaXRpb24pIHJlc3VsdHMgaW4gYSBUcnVlIHZhbHVlLiAgRXZhbHVhdGlv
biBoYXBwZW5zIHdpdGhpbiB0aGUgbW9kdWxlIGdsb2JhbCBjb250ZXh0LiBFeGFtcGxlOiBza2lw
aWYoJ3N5cy5wbGF0Zm9ybSA9PSAid2luMzIiJykgc2tpcHMgdGhlIHRlc3QgaWYgd2UgYXJlIG9u
IHRoZSB3aW4zMiBwbGF0Zm9ybS4gc2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9za2lwcGlu
Zy5odG1sCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihjb25kaXRpb24pOiBza2lwIHRoZSBnaXZl
biB0ZXN0IGZ1bmN0aW9uIGlmIGV2YWwoY29uZGl0aW9uKSByZXN1bHRzIGluIGEgVHJ1ZSB2YWx1
ZS4gIEV2YWx1YXRpb24gaGFwcGVucyB3aXRoaW4gdGhlIG1vZHVsZSBnbG9iYWwgY29udGV4dC4g
RXhhbXBsZTogc2tpcGlmKCdzeXMucGxhdGZvcm0gPT0gIndpbjMyIicpIHNraXBzIHRoZSB0ZXN0
IGlmIHdlIGFyZSBvbiB0aGUgd2luMzIgcGxhdGZvcm0uIHNlZSBodHRwczovL2RvY3MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3Qvc2tpcHBpbmcuaHRtbAogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKGNv
bmRpdGlvbiwgcmVhc29uPU5vbmUsIHJ1bj1UcnVlLCByYWlzZXM9Tm9uZSwgc3RyaWN0PUZhbHNl
KTogbWFyayB0aGUgdGVzdCBmdW5jdGlvbiBhcyBhbiBleHBlY3RlZCBmYWlsdXJlIGlmIGV2YWwo
Y29uZGl0aW9uKSBoYXMgYSBUcnVlIHZhbHVlLiBPcHRpb25hbGx5IHNwZWNpZnkgYSByZWFzb24g
Zm9yIGJldHRlciByZXBvcnRpbmcgYW5kIHJ1bj1GYWxzZSBpZiB5b3UgZG9uJ3QgZXZlbiB3YW50
IHRvIGV4ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24uIElmIG9ubHkgc3BlY2lmaWMgZXhjZXB0aW9u
KHMpIGFyZSBleHBlY3RlZCwgeW91IGNhbiBsaXN0IHRoZW0gaW4gcmFpc2VzLCBhbmQgaWYgdGhl
IHRlc3QgZmFpbHMgaW4gb3RoZXIgd2F5cywgaXQgd2lsbCBiZSByZXBvcnRlZCBhcyBhIHRydWUg
ZmFpbHVyZS4gU2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9za2lwcGluZy5odG1sCisgICAg
QHB5dGVzdC5tYXJrLnhmYWlsKGNvbmRpdGlvbiwgcmVhc29uPU5vbmUsIHJ1bj1UcnVlLCByYWlz
ZXM9Tm9uZSwgc3RyaWN0PUZhbHNlKTogbWFyayB0aGUgdGVzdCBmdW5jdGlvbiBhcyBhbiBleHBl
Y3RlZCBmYWlsdXJlIGlmIGV2YWwoY29uZGl0aW9uKSBoYXMgYSBUcnVlIHZhbHVlLiBPcHRpb25h
bGx5IHNwZWNpZnkgYSByZWFzb24gZm9yIGJldHRlciByZXBvcnRpbmcgYW5kIHJ1bj1GYWxzZSBp
ZiB5b3UgZG9uJ3QgZXZlbiB3YW50IHRvIGV4ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24uIElmIG9u
bHkgc3BlY2lmaWMgZXhjZXB0aW9uKHMpIGFyZSBleHBlY3RlZCwgeW91IGNhbiBsaXN0IHRoZW0g
aW4gcmFpc2VzLCBhbmQgaWYgdGhlIHRlc3QgZmFpbHMgaW4gb3RoZXIgd2F5cywgaXQgd2lsbCBi
ZSByZXBvcnRlZCBhcyBhIHRydWUgZmFpbHVyZS4gU2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3Jn
L2VuL2xhdGVzdC9za2lwcGluZy5odG1sCiAKLSAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
YXJnbmFtZXMsIGFyZ3ZhbHVlcyk6IGNhbGwgYSB0ZXN0IGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVz
IHBhc3NpbmcgaW4gZGlmZmVyZW50IGFyZ3VtZW50cyBpbiB0dXJuLiBhcmd2YWx1ZXMgZ2VuZXJh
bGx5IG5lZWRzIHRvIGJlIGEgbGlzdCBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVzIG9u
bHkgb25lIG5hbWUgb3IgYSBsaXN0IG9mIHR1cGxlcyBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3Bl
Y2lmaWVzIG11bHRpcGxlIG5hbWVzLiBFeGFtcGxlOiBAcGFyYW1ldHJpemUoJ2FyZzEnLCBbMSwy
XSkgd291bGQgbGVhZCB0byB0d28gY2FsbHMgb2YgdGhlIGRlY29yYXRlZCB0ZXN0IGZ1bmN0aW9u
LCBvbmUgd2l0aCBhcmcxPTEgYW5kIGFub3RoZXIgd2l0aCBhcmcxPTIuc2VlIGh0dHA6Ly9weXRl
c3Qub3JnL2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIGZvciBtb3JlIGluZm8gYW5kIGV4YW1wbGVz
LgorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZShhcmduYW1lcywgYXJndmFsdWVzKTogY2Fs
bCBhIHRlc3QgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMgcGFzc2luZyBpbiBkaWZmZXJlbnQgYXJn
dW1lbnRzIGluIHR1cm4uIGFyZ3ZhbHVlcyBnZW5lcmFsbHkgbmVlZHMgdG8gYmUgYSBsaXN0IG9m
IHZhbHVlcyBpZiBhcmduYW1lcyBzcGVjaWZpZXMgb25seSBvbmUgbmFtZSBvciBhIGxpc3Qgb2Yg
dHVwbGVzIG9mIHZhbHVlcyBpZiBhcmduYW1lcyBzcGVjaWZpZXMgbXVsdGlwbGUgbmFtZXMuIEV4
YW1wbGU6IEBwYXJhbWV0cml6ZSgnYXJnMScsIFsxLDJdKSB3b3VsZCBsZWFkIHRvIHR3byBjYWxs
cyBvZiB0aGUgZGVjb3JhdGVkIHRlc3QgZnVuY3Rpb24sIG9uZSB3aXRoIGFyZzE9MSBhbmQgYW5v
dGhlciB3aXRoIGFyZzE9Mi5zZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3Bh
cmFtZXRyaXplLmh0bWwgZm9yIG1vcmUgaW5mbyBhbmQgZXhhbXBsZXMuCiAKLSAgICBAcHl0ZXN0
Lm1hcmsudXNlZml4dHVyZXMoZml4dHVyZW5hbWUxLCBmaXh0dXJlbmFtZTIsIC4uLik6IG1hcmsg
dGVzdHMgYXMgbmVlZGluZyBhbGwgb2YgdGhlIHNwZWNpZmllZCBmaXh0dXJlcy4gc2VlIGh0dHA6
Ly9weXRlc3Qub3JnL2xhdGVzdC9maXh0dXJlLmh0bWwjdXNlZml4dHVyZXMKKyAgICBAcHl0ZXN0
Lm1hcmsudXNlZml4dHVyZXMoZml4dHVyZW5hbWUxLCBmaXh0dXJlbmFtZTIsIC4uLik6IG1hcmsg
dGVzdHMgYXMgbmVlZGluZyBhbGwgb2YgdGhlIHNwZWNpZmllZCBmaXh0dXJlcy4gc2VlIGh0dHBz
Oi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9maXh0dXJlLmh0bWwjdXNlZml4dHVyZXMKIAog
ICAgIEBweXRlc3QubWFyay50cnlmaXJzdDogbWFyayBhIGhvb2sgaW1wbGVtZW50YXRpb24gZnVu
Y3Rpb24gc3VjaCB0aGF0IHRoZSBwbHVnaW4gbWFjaGluZXJ5IHdpbGwgdHJ5IHRvIGNhbGwgaXQg
Zmlyc3QvYXMgZWFybHkgYXMgcG9zc2libGUuCiAKQEAgLTM5NiwzMSArNDYyLDQwIEBAIFBhc3Np
bmcgYSBjYWxsYWJsZSB0byBjdXN0b20gbWFya2VycwogCiAuLiByZWdlbmRvYzp3aXBlCiAKLUJl
bG93IGlzIHRoZSBjb25maWcgZmlsZSB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgbmV4dCBleGFt
cGxlczo6CitCZWxvdyBpcyB0aGUgY29uZmlnIGZpbGUgdGhhdCB3aWxsIGJlIHVzZWQgaW4gdGhl
IG5leHQgZXhhbXBsZXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVu
dCBvZiBjb25mdGVzdC5weQogICAgIGltcG9ydCBzeXMKIAorCiAgICAgZGVmIHB5dGVzdF9ydW50
ZXN0X3NldHVwKGl0ZW0pOgotICAgICAgICBmb3IgbWFya2VyIGluIGl0ZW0uaXRlcl9tYXJrZXJz
KG5hbWU9J215X21hcmtlcicpOgorICAgICAgICBmb3IgbWFya2VyIGluIGl0ZW0uaXRlcl9tYXJr
ZXJzKG5hbWU9Im15X21hcmtlciIpOgogICAgICAgICAgICAgcHJpbnQobWFya2VyKQogICAgICAg
ICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCiAKIEEgY3VzdG9tIG1hcmtlciBjYW4gaGF2ZSBpdHMg
YXJndW1lbnQgc2V0LCBpLmUuIGBgYXJnc2BgIGFuZCBgYGt3YXJnc2BgIHByb3BlcnRpZXMsIGRl
ZmluZWQgYnkgZWl0aGVyIGludm9raW5nIGl0IGFzIGEgY2FsbGFibGUgb3IgdXNpbmcgYGBweXRl
c3QubWFyay5NQVJLRVJfTkFNRS53aXRoX2FyZ3NgYC4gVGhlc2UgdHdvIG1ldGhvZHMgYWNoaWV2
ZSB0aGUgc2FtZSBlZmZlY3QgbW9zdCBvZiB0aGUgdGltZS4KIAotSG93ZXZlciwgaWYgdGhlcmUg
aXMgYSBjYWxsYWJsZSBhcyB0aGUgc2luZ2xlIHBvc2l0aW9uYWwgYXJndW1lbnQgd2l0aCBubyBr
ZXl3b3JkIGFyZ3VtZW50cywgdXNpbmcgdGhlIGBgcHl0ZXN0Lm1hcmsuTUFSS0VSX05BTUUoYylg
YCB3aWxsIG5vdCBwYXNzIGBgY2BgIGFzIGEgcG9zaXRpb25hbCBhcmd1bWVudCBidXQgZGVjb3Jh
dGUgYGBjYGAgd2l0aCB0aGUgY3VzdG9tIG1hcmtlciAoc2VlIDpyZWY6YE1hcmtEZWNvcmF0b3Ig
PG1hcms+YCkuIEZvcnR1bmF0ZWx5LCBgYHB5dGVzdC5tYXJrLk1BUktFUl9OQU1FLndpdGhfYXJn
c2BgIGNvbWVzIHRvIHRoZSByZXNjdWU6OgorSG93ZXZlciwgaWYgdGhlcmUgaXMgYSBjYWxsYWJs
ZSBhcyB0aGUgc2luZ2xlIHBvc2l0aW9uYWwgYXJndW1lbnQgd2l0aCBubyBrZXl3b3JkIGFyZ3Vt
ZW50cywgdXNpbmcgdGhlIGBgcHl0ZXN0Lm1hcmsuTUFSS0VSX05BTUUoYylgYCB3aWxsIG5vdCBw
YXNzIGBgY2BgIGFzIGEgcG9zaXRpb25hbCBhcmd1bWVudCBidXQgZGVjb3JhdGUgYGBjYGAgd2l0
aCB0aGUgY3VzdG9tIG1hcmtlciAoc2VlIDpyZWY6YE1hcmtEZWNvcmF0b3IgPG1hcms+YCkuIEZv
cnR1bmF0ZWx5LCBgYHB5dGVzdC5tYXJrLk1BUktFUl9OQU1FLndpdGhfYXJnc2BgIGNvbWVzIHRv
IHRoZSByZXNjdWU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVudCBv
ZiB0ZXN0X2N1c3RvbV9tYXJrZXIucHkKICAgICBpbXBvcnQgcHl0ZXN0CiAKKwogICAgIGRlZiBo
ZWxsb193b3JsZCgqYXJncywgKiprd2FyZ3MpOgotICAgICAgICByZXR1cm4gJ0hlbGxvIFdvcmxk
JworICAgICAgICByZXR1cm4gIkhlbGxvIFdvcmxkIgorCiAKICAgICBAcHl0ZXN0Lm1hcmsubXlf
bWFya2VyLndpdGhfYXJncyhoZWxsb193b3JsZCkKICAgICBkZWYgdGVzdF93aXRoX2FyZ3MoKToK
ICAgICAgICAgcGFzcwogCi1UaGUgb3V0cHV0IGlzIGFzIGZvbGxvd3M6OgorVGhlIG91dHB1dCBp
cyBhcyBmb2xsb3dzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAt
cSAtcwogICAgIE1hcmsobmFtZT0nbXlfbWFya2VyJywgYXJncz0oPGZ1bmN0aW9uIGhlbGxvX3dv
cmxkIGF0IDB4ZGVhZGJlZWY+LCksIGt3YXJncz17fSkKQEAgLTQzOCwxMiArNTEzLDE2IEBAIFJl
YWRpbmcgbWFya2VycyB3aGljaCB3ZXJlIHNldCBmcm9tIG11bHRpcGxlIHBsYWNlcwogLi4gcmVn
ZW5kb2M6d2lwZQogCiBJZiB5b3UgYXJlIGhlYXZpbHkgdXNpbmcgbWFya2VycyBpbiB5b3VyIHRl
c3Qgc3VpdGUgeW91IG1heSBlbmNvdW50ZXIgdGhlIGNhc2Ugd2hlcmUgYSBtYXJrZXIgaXMgYXBw
bGllZCBzZXZlcmFsIHRpbWVzIHRvIGEgdGVzdCBmdW5jdGlvbi4gIEZyb20gcGx1Z2luCi1jb2Rl
IHlvdSBjYW4gcmVhZCBvdmVyIGFsbCBzdWNoIHNldHRpbmdzLiAgRXhhbXBsZTo6Citjb2RlIHlv
dSBjYW4gcmVhZCBvdmVyIGFsbCBzdWNoIHNldHRpbmdzLiAgRXhhbXBsZToKKworLi4gY29kZS1i
bG9jazo6IHB5dGhvbgogCiAgICAgIyBjb250ZW50IG9mIHRlc3RfbWFya190aHJlZV90aW1lcy5w
eQogICAgIGltcG9ydCBweXRlc3QKKwogICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5nbG9i
KCJtb2R1bGUiLCB4PTEpCiAKKwogICAgIEBweXRlc3QubWFyay5nbG9iKCJjbGFzcyIsIHg9MikK
ICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKICAgICAgICAgQHB5dGVzdC5tYXJrLmdsb2Io
ImZ1bmN0aW9uIiwgeD0zKQpAQCAtNDUxLDE3ICs1MzAsMjIgQEAgY29kZSB5b3UgY2FuIHJlYWQg
b3ZlciBhbGwgc3VjaCBzZXR0aW5ncy4gIEV4YW1wbGU6OgogICAgICAgICAgICAgcGFzcwogCiBI
ZXJlIHdlIGhhdmUgdGhlIG1hcmtlciAiZ2xvYiIgYXBwbGllZCB0aHJlZSB0aW1lcyB0byB0aGUg
c2FtZQotdGVzdCBmdW5jdGlvbi4gIEZyb20gYSBjb25mdGVzdCBmaWxlIHdlIGNhbiByZWFkIGl0
IGxpa2UgdGhpczo6Cit0ZXN0IGZ1bmN0aW9uLiAgRnJvbSBhIGNvbmZ0ZXN0IGZpbGUgd2UgY2Fu
IHJlYWQgaXQgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICAjIGNv
bnRlbnQgb2YgY29uZnRlc3QucHkKICAgICBpbXBvcnQgc3lzCiAKKwogICAgIGRlZiBweXRlc3Rf
cnVudGVzdF9zZXR1cChpdGVtKToKLSAgICAgICAgZm9yIG1hcmsgaW4gaXRlbS5pdGVyX21hcmtl
cnMobmFtZT0nZ2xvYicpOgotICAgICAgICAgICAgcHJpbnQgKCJnbG9iIGFyZ3M9JXMga3dhcmdz
PSVzIiAlKG1hcmsuYXJncywgbWFyay5rd2FyZ3MpKQorICAgICAgICBmb3IgbWFyayBpbiBpdGVt
Lml0ZXJfbWFya2VycyhuYW1lPSJnbG9iIik6CisgICAgICAgICAgICBwcmludCgiZ2xvYiBhcmdz
PSVzIGt3YXJncz0lcyIgJSAobWFyay5hcmdzLCBtYXJrLmt3YXJncykpCiAgICAgICAgICAgICBz
eXMuc3Rkb3V0LmZsdXNoKCkKIAotTGV0J3MgcnVuIHRoaXMgd2l0aG91dCBjYXB0dXJpbmcgb3V0
cHV0IGFuZCBzZWUgd2hhdCB3ZSBnZXQ6OgorTGV0J3MgcnVuIHRoaXMgd2l0aG91dCBjYXB0dXJp
bmcgb3V0cHV0IGFuZCBzZWUgd2hhdCB3ZSBnZXQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QK
IAogICAgICQgcHl0ZXN0IC1xIC1zCiAgICAgZ2xvYiBhcmdzPSgnZnVuY3Rpb24nLCkga3dhcmdz
PXsneCc6IDN9CkBAIC00NzksNyArNTYzLDkgQEAgQ29uc2lkZXIgeW91IGhhdmUgYSB0ZXN0IHN1
aXRlIHdoaWNoIG1hcmtzIHRlc3RzIGZvciBwYXJ0aWN1bGFyIHBsYXRmb3JtcywKIG5hbWVseSBg
YHB5dGVzdC5tYXJrLmRhcndpbmBgLCBgYHB5dGVzdC5tYXJrLndpbjMyYGAgZXRjLiBhbmQgeW91
CiBhbHNvIGhhdmUgdGVzdHMgdGhhdCBydW4gb24gYWxsIHBsYXRmb3JtcyBhbmQgaGF2ZSBubyBz
cGVjaWZpYwogbWFya2VyLiAgSWYgeW91IG5vdyB3YW50IHRvIGhhdmUgYSB3YXkgdG8gb25seSBy
dW4gdGhlIHRlc3RzCi1mb3IgeW91ciBwYXJ0aWN1bGFyIHBsYXRmb3JtLCB5b3UgY291bGQgdXNl
IHRoZSBmb2xsb3dpbmcgcGx1Z2luOjoKK2ZvciB5b3VyIHBhcnRpY3VsYXIgcGxhdGZvcm0sIHlv
dSBjb3VsZCB1c2UgdGhlIGZvbGxvd2luZyBwbHVnaW46CisKKy4uIGNvZGUtYmxvY2s6OiBweXRo
b24KIAogICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQogICAgICMKQEAgLTQ4OCw2ICs1NzQs
NyBAQCBmb3IgeW91ciBwYXJ0aWN1bGFyIHBsYXRmb3JtLCB5b3UgY291bGQgdXNlIHRoZSBmb2xs
b3dpbmcgcGx1Z2luOjoKIAogICAgIEFMTCA9IHNldCgiZGFyd2luIGxpbnV4IHdpbjMyIi5zcGxp
dCgpKQogCisKICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6CiAgICAgICAgIHN1
cHBvcnRlZF9wbGF0Zm9ybXMgPSBBTEwuaW50ZXJzZWN0aW9uKG1hcmsubmFtZSBmb3IgbWFyayBp
biBpdGVtLml0ZXJfbWFya2VycygpKQogICAgICAgICBwbGF0ID0gc3lzLnBsYXRmb3JtCkBAIC00
OTUsNDggKzU4Miw2MCBAQCBmb3IgeW91ciBwYXJ0aWN1bGFyIHBsYXRmb3JtLCB5b3UgY291bGQg
dXNlIHRoZSBmb2xsb3dpbmcgcGx1Z2luOjoKICAgICAgICAgICAgIHB5dGVzdC5za2lwKCJjYW5u
b3QgcnVuIG9uIHBsYXRmb3JtICVzIiAlIChwbGF0KSkKIAogdGhlbiB0ZXN0cyB3aWxsIGJlIHNr
aXBwZWQgaWYgdGhleSB3ZXJlIHNwZWNpZmllZCBmb3IgYSBkaWZmZXJlbnQgcGxhdGZvcm0uCi1M
ZXQncyBkbyBhIGxpdHRsZSB0ZXN0IGZpbGUgdG8gc2hvdyBob3cgdGhpcyBsb29rcyBsaWtlOjoK
K0xldCdzIGRvIGEgbGl0dGxlIHRlc3QgZmlsZSB0byBzaG93IGhvdyB0aGlzIGxvb2tzIGxpa2U6
CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVudCBvZiB0ZXN0X3BsYXQu
cHkKIAogICAgIGltcG9ydCBweXRlc3QKIAorCiAgICAgQHB5dGVzdC5tYXJrLmRhcndpbgogICAg
IGRlZiB0ZXN0X2lmX2FwcGxlX2lzX2V2aWwoKToKICAgICAgICAgcGFzcwogCisKICAgICBAcHl0
ZXN0Lm1hcmsubGludXgKICAgICBkZWYgdGVzdF9pZl9saW51eF93b3JrcygpOgogICAgICAgICBw
YXNzCiAKKwogICAgIEBweXRlc3QubWFyay53aW4zMgogICAgIGRlZiB0ZXN0X2lmX3dpbjMyX2Ny
YXNoZXMoKToKICAgICAgICAgcGFzcwogCisKICAgICBkZWYgdGVzdF9ydW5zX2V2ZXJ5d2hlcmUo
KToKICAgICAgICAgcGFzcwogCi10aGVuIHlvdSB3aWxsIHNlZSB0d28gdGVzdHMgc2tpcHBlZCBh
bmQgdHdvIGV4ZWN1dGVkIHRlc3RzIGFzIGV4cGVjdGVkOjoKK3RoZW4geW91IHdpbGwgc2VlIHR3
byB0ZXN0cyBza2lwcGVkIGFuZCB0d28gZXhlY3V0ZWQgdGVzdHMgYXMgZXhwZWN0ZWQ6CisKKy4u
IGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1ycyAjIHRoaXMgb3B0aW9uIHJl
cG9ydHMgc2tpcCByZWFzb25zCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qg
c2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3Jt
IGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAu
eC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0w
LngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9v
dGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCA0IGl0ZW1zCiAKICAgICB0ZXN0
X3BsYXQucHkgcy5zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbMTAwJV0KLSAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IHNob3J0IHRlc3Qg
c3VtbWFyeSBpbmZvID09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgU0tJUCBbMl0gJFJF
R0VORE9DX1RNUERJUi9jb25mdGVzdC5weToxMjogY2Fubm90IHJ1biBvbiBwbGF0Zm9ybSBsaW51
eAogCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1bW1hcnkgaW5m
byA9PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIFNLSVBQRUQgWzJdICRSRUdFTkRPQ19U
TVBESVIvY29uZnRlc3QucHk6MTM6IGNhbm5vdCBydW4gb24gcGxhdGZvcm0gbGludXgKICAgICA9
PT09PT09PT09PT09PT09PT09IDIgcGFzc2VkLCAyIHNraXBwZWQgaW4gMC4xMiBzZWNvbmRzID09
PT09PT09PT09PT09PT09PT09CiAKLU5vdGUgdGhhdCBpZiB5b3Ugc3BlY2lmeSBhIHBsYXRmb3Jt
IHZpYSB0aGUgbWFya2VyLWNvbW1hbmQgbGluZSBvcHRpb24gbGlrZSB0aGlzOjoKK05vdGUgdGhh
dCBpZiB5b3Ugc3BlY2lmeSBhIHBsYXRmb3JtIHZpYSB0aGUgbWFya2VyLWNvbW1hbmQgbGluZSBv
cHRpb24gbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVz
dCAtbSBsaW51eAogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24g
c3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAt
LSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAg
IHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Ci0gICAgY29sbGVjdGVkIDQgaXRl
bXMgLyAzIGRlc2VsZWN0ZWQKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5
dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9O
X1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgorICAg
IGNvbGxlY3RlZCA0IGl0ZW1zIC8gMyBkZXNlbGVjdGVkIC8gMSBzZWxlY3RlZAogCiAgICAgdGVz
dF9wbGF0LnB5IC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWzEwMCVdCiAKQEAgLTU1MiwyOCArNjUxLDM4IEBAIEF1dG9tYXRpY2FsbHkgYWRk
aW5nIG1hcmtlcnMgYmFzZWQgb24gdGVzdCBuYW1lcwogSWYgeW91IGEgdGVzdCBzdWl0ZSB3aGVy
ZSB0ZXN0IGZ1bmN0aW9uIG5hbWVzIGluZGljYXRlIGEgY2VydGFpbgogdHlwZSBvZiB0ZXN0LCB5
b3UgY2FuIGltcGxlbWVudCBhIGhvb2sgdGhhdCBhdXRvbWF0aWNhbGx5IGRlZmluZXMKIG1hcmtl
cnMgc28gdGhhdCB5b3UgY2FuIHVzZSB0aGUgYGAtbWBgIG9wdGlvbiB3aXRoIGl0LiBMZXQncyBs
b29rCi1hdCB0aGlzIHRlc3QgbW9kdWxlOjoKK2F0IHRoaXMgdGVzdCBtb2R1bGU6CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVudCBvZiB0ZXN0X21vZHVsZS5weQogCisK
ICAgICBkZWYgdGVzdF9pbnRlcmZhY2Vfc2ltcGxlKCk6CiAgICAgICAgIGFzc2VydCAwCiAKKwog
ICAgIGRlZiB0ZXN0X2ludGVyZmFjZV9jb21wbGV4KCk6CiAgICAgICAgIGFzc2VydCAwCiAKKwog
ICAgIGRlZiB0ZXN0X2V2ZW50X3NpbXBsZSgpOgogICAgICAgICBhc3NlcnQgMAogCisKICAgICBk
ZWYgdGVzdF9zb21ldGhpbmdfZWxzZSgpOgogICAgICAgICBhc3NlcnQgMAogCiBXZSB3YW50IHRv
IGR5bmFtaWNhbGx5IGRlZmluZSB0d28gbWFya2VycyBhbmQgY2FuIGRvIGl0IGluIGEKLWBgY29u
ZnRlc3QucHlgYCBwbHVnaW46OgorYGBjb25mdGVzdC5weWBgIHBsdWdpbjoKKworLi4gY29kZS1i
bG9jazo6IHB5dGhvbgogCiAgICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CiAKICAgICBpbXBv
cnQgcHl0ZXN0CisKKwogICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhpdGVt
cyk6CiAgICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgogICAgICAgICAgICAgaWYgImludGVyZmFj
ZSIgaW4gaXRlbS5ub2RlaWQ6CkBAIC01ODEsNDggKzY5MCw1NCBAQCBXZSB3YW50IHRvIGR5bmFt
aWNhbGx5IGRlZmluZSB0d28gbWFya2VycyBhbmQgY2FuIGRvIGl0IGluIGEKICAgICAgICAgICAg
IGVsaWYgImV2ZW50IiBpbiBpdGVtLm5vZGVpZDoKICAgICAgICAgICAgICAgICBpdGVtLmFkZF9t
YXJrZXIocHl0ZXN0Lm1hcmsuZXZlbnQpCiAKLVdlIGNhbiBub3cgdXNlIHRoZSBgYC1tIG9wdGlv
bmBgIHRvIHNlbGVjdCBvbmUgc2V0OjoKLQotICAkIHB5dGVzdCAtbSBpbnRlcmZhY2UgLS10Yj1z
aG9ydAotICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAz
LngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gIHJvb3RkaXI6ICRS
RUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Ci0gIGNvbGxlY3RlZCA0IGl0ZW1zIC8gMiBkZXNlbGVj
dGVkCi0KLSAgdGVzdF9tb2R1bGUucHkgRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCi0KLSAgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICBf
X19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2ludGVyZmFjZV9zaW1wbGUgX19fX19fX19f
X19fX19fX19fX19fX19fX19fCi0gIHRlc3RfbW9kdWxlLnB5OjM6IGluIHRlc3RfaW50ZXJmYWNl
X3NpbXBsZQotICAgICAgYXNzZXJ0IDAKLSAgRSAgIGFzc2VydCAwCi0gIF9fX19fX19fX19fX19f
X19fX19fX19fX19fIHRlc3RfaW50ZXJmYWNlX2NvbXBsZXggX19fX19fX19fX19fX19fX19fX19f
X19fX18KLSAgdGVzdF9tb2R1bGUucHk6NjogaW4gdGVzdF9pbnRlcmZhY2VfY29tcGxleAotICAg
ICAgYXNzZXJ0IDAKLSAgRSAgIGFzc2VydCAwCi0gID09PT09PT09PT09PT09PT09PSAyIGZhaWxl
ZCwgMiBkZXNlbGVjdGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT0KLQotb3Ig
dG8gc2VsZWN0IGJvdGggImV2ZW50IiBhbmQgImludGVyZmFjZSIgdGVzdHM6OgotCi0gICQgcHl0
ZXN0IC1tICJpbnRlcmZhY2Ugb3IgZXZlbnQiIC0tdGI9c2hvcnQKLSAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHkt
MS54LnksIHBsdWdneS0wLngueQotICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxl
OgotICBjb2xsZWN0ZWQgNCBpdGVtcyAvIDEgZGVzZWxlY3RlZAotCi0gIHRlc3RfbW9kdWxlLnB5
IEZGRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsx
MDAlXQotCi0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgX19fX19fX19fX19fX19fX19fX19fX19f
X18gdGVzdF9pbnRlcmZhY2Vfc2ltcGxlIF9fX19fX19fX19fX19fX19fX19fX19fX19fXwotICB0
ZXN0X21vZHVsZS5weTozOiBpbiB0ZXN0X2ludGVyZmFjZV9zaW1wbGUKLSAgICAgIGFzc2VydCAw
Ci0gIEUgICBhc3NlcnQgMAotICBfX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2ludGVy
ZmFjZV9jb21wbGV4IF9fX19fX19fX19fX19fX19fX19fX19fX19fCi0gIHRlc3RfbW9kdWxlLnB5
OjY6IGluIHRlc3RfaW50ZXJmYWNlX2NvbXBsZXgKLSAgICAgIGFzc2VydCAwCi0gIEUgICBhc3Nl
cnQgMAotICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZXZlbnRfc2ltcGxlIF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCi0gIHRlc3RfbW9kdWxlLnB5Ojk6IGluIHRlc3Rf
ZXZlbnRfc2ltcGxlCi0gICAgICBhc3NlcnQgMAotICBFICAgYXNzZXJ0IDAKLSAgPT09PT09PT09
PT09PT09PT09IDMgZmFpbGVkLCAxIGRlc2VsZWN0ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09
PT09PT09PT09PQorV2UgY2FuIG5vdyB1c2UgdGhlIGBgLW0gb3B0aW9uYGAgdG8gc2VsZWN0IG9u
ZSBzZXQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKKworICAgICQgcHl0ZXN0IC1tIGludGVy
ZmFjZSAtLXRiPXNob3J0CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vz
c2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxp
bnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55
CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGly
OiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVjdGVkIDQgaXRlbXMgLyAyIGRlc2VsZWN0ZWQg
LyAyIHNlbGVjdGVkCisKKyAgICB0ZXN0X21vZHVsZS5weSBGRiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKworICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2ludGVyZmFjZV9z
aW1wbGUgX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgdGVzdF9tb2R1bGUucHk6NDog
aW4gdGVzdF9pbnRlcmZhY2Vfc2ltcGxlCisgICAgICAgIGFzc2VydCAwCisgICAgRSAgIGFzc2Vy
dCAwCisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9pbnRlcmZhY2VfY29tcGxl
eCBfX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIHRlc3RfbW9kdWxlLnB5Ojg6IGluIHRl
c3RfaW50ZXJmYWNlX2NvbXBsZXgKKyAgICAgICAgYXNzZXJ0IDAKKyAgICBFICAgYXNzZXJ0IDAK
KyAgICA9PT09PT09PT09PT09PT09PT0gMiBmYWlsZWQsIDIgZGVzZWxlY3RlZCBpbiAwLjEyIHNl
Y29uZHMgPT09PT09PT09PT09PT09PT09CisKK29yIHRvIHNlbGVjdCBib3RoICJldmVudCIgYW5k
ICJpbnRlcmZhY2UiIHRlc3RzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CisKKyAgICAkIHB5
dGVzdCAtbSAiaW50ZXJmYWNlIG9yIGV2ZW50IiAtLXRiPXNob3J0CisgICAgPT09PT09PT09PT09
PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55
LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5w
eXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVjdGVk
IDQgaXRlbXMgLyAxIGRlc2VsZWN0ZWQgLyAzIHNlbGVjdGVkCisKKyAgICB0ZXN0X21vZHVsZS5w
eSBGRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
MTAwJV0KKworICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19f
X19fX19fXyB0ZXN0X2ludGVyZmFjZV9zaW1wbGUgX19fX19fX19fX19fX19fX19fX19fX19fX19f
CisgICAgdGVzdF9tb2R1bGUucHk6NDogaW4gdGVzdF9pbnRlcmZhY2Vfc2ltcGxlCisgICAgICAg
IGFzc2VydCAwCisgICAgRSAgIGFzc2VydCAwCisgICAgX19fX19fX19fX19fX19fX19fX19fX19f
X18gdGVzdF9pbnRlcmZhY2VfY29tcGxleCBfX19fX19fX19fX19fX19fX19fX19fX19fXworICAg
IHRlc3RfbW9kdWxlLnB5Ojg6IGluIHRlc3RfaW50ZXJmYWNlX2NvbXBsZXgKKyAgICAgICAgYXNz
ZXJ0IDAKKyAgICBFICAgYXNzZXJ0IDAKKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
IHRlc3RfZXZlbnRfc2ltcGxlIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgdGVz
dF9tb2R1bGUucHk6MTI6IGluIHRlc3RfZXZlbnRfc2ltcGxlCisgICAgICAgIGFzc2VydCAwCisg
ICAgRSAgIGFzc2VydCAwCisgICAgPT09PT09PT09PT09PT09PT09IDMgZmFpbGVkLCAxIGRlc2Vs
ZWN0ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbXVsdGlweXRob24ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9tdWx0aXB5dGhvbi5weQppbmRleCA5NzA4MDBjN2U2MTRjNjhjZmZmNzA4Zjdj
ZmE1NGVmNGI2OTcwMTI2Li5kYzcyMmFhYzkxZDA2MTkzNmExNjRhZjJhNmViNDRhZDVmZDBhMTA2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9tdWx0aXB5dGhvbi5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9tdWx0aXB5dGhvbi5weQpAQCAtMSwxMCAr
MSwxMyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIgogbW9kdWxlIGNvbnRhaW5pbmcg
YSBwYXJhbWV0cml6ZWQgdGVzdHMgdGVzdGluZyBjcm9zcy1weXRob24KIHNlcmlhbGl6YXRpb24g
dmlhIHRoZSBwaWNrbGUgbW9kdWxlLgogIiIiCi1pbXBvcnQgcHkKK2ltcG9ydCBkaXN0dXRpbHMu
c3Bhd24KK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgdGV4dHdyYXAKKwogaW1wb3J0IHB5dGVz
dAotaW1wb3J0IF9weXRlc3QuX2NvZGUKIAogcHl0aG9ubGlzdCA9IFsicHl0aG9uMi43IiwgInB5
dGhvbjMuNCIsICJweXRob24zLjUiXQogCkBAIC0yMSw0NiArMjQsNDcgQEAgZGVmIHB5dGhvbjIo
cmVxdWVzdCwgcHl0aG9uMSk6CiAKIAogY2xhc3MgUHl0aG9uKG9iamVjdCk6Ci0KICAgICBkZWYg
X19pbml0X18oc2VsZiwgdmVyc2lvbiwgcGlja2xlZmlsZSk6Ci0gICAgICAgIHNlbGYucHl0aG9u
cGF0aCA9IHB5LnBhdGgubG9jYWwuc3lzZmluZCh2ZXJzaW9uKQorICAgICAgICBzZWxmLnB5dGhv
bnBhdGggPSBkaXN0dXRpbHMuc3Bhd24uZmluZF9leGVjdXRhYmxlKHZlcnNpb24pCiAgICAgICAg
IGlmIG5vdCBzZWxmLnB5dGhvbnBhdGg6Ci0gICAgICAgICAgICBweXRlc3Quc2tpcCgiJXIgbm90
IGZvdW5kIiAlICh2ZXJzaW9uLCkpCisgICAgICAgICAgICBweXRlc3Quc2tpcCgieyFyfSBub3Qg
Zm91bmQiLmZvcm1hdCh2ZXJzaW9uKSkKICAgICAgICAgc2VsZi5waWNrbGVmaWxlID0gcGlja2xl
ZmlsZQogCiAgICAgZGVmIGR1bXBzKHNlbGYsIG9iaik6CiAgICAgICAgIGR1bXBmaWxlID0gc2Vs
Zi5waWNrbGVmaWxlLmRpcnBhdGgoImR1bXAucHkiKQogICAgICAgICBkdW1wZmlsZS53cml0ZSgK
LSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgot
ICAgICAgICAgICAgaW1wb3J0IHBpY2tsZQotICAgICAgICAgICAgZiA9IG9wZW4oJXIsICd3Yicp
Ci0gICAgICAgICAgICBzID0gcGlja2xlLmR1bXAoJXIsIGYsIHByb3RvY29sPTIpCi0gICAgICAg
ICAgICBmLmNsb3NlKCkKLSAgICAgICAgIiIiCi0gICAgICAgICAgICAgICAgJSAoc3RyKHNlbGYu
cGlja2xlZmlsZSksIG9iaikKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAg
ICAgICAgICByIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IHBpY2tsZQorICAgICAgICAgICAg
ICAgIGYgPSBvcGVuKHshcn0sICd3YicpCisgICAgICAgICAgICAgICAgcyA9IHBpY2tsZS5kdW1w
KHshcn0sIGYsIHByb3RvY29sPTIpCisgICAgICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAg
ICAgICAgICAgIiIiLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYucGlja2xl
ZmlsZSksIG9iagorICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICkKICAgICAgICAgKQot
ICAgICAgICBweS5wcm9jZXNzLmNtZGV4ZWMoIiVzICVzIiAlIChzZWxmLnB5dGhvbnBhdGgsIGR1
bXBmaWxlKSkKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKChzZWxmLnB5dGhvbnBhdGgs
IHN0cihkdW1wZmlsZSkpKQogCiAgICAgZGVmIGxvYWRfYW5kX2lzX3RydWUoc2VsZiwgZXhwcmVz
c2lvbik6CiAgICAgICAgIGxvYWRmaWxlID0gc2VsZi5waWNrbGVmaWxlLmRpcnBhdGgoImxvYWQu
cHkiKQogICAgICAgICBsb2FkZmlsZS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUu
U291cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHBpY2tsZQot
ICAgICAgICAgICAgZiA9IG9wZW4oJXIsICdyYicpCi0gICAgICAgICAgICBvYmogPSBwaWNrbGUu
bG9hZChmKQotICAgICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgICAgICByZXMgPSBldmFsKCVy
KQotICAgICAgICAgICAgaWYgbm90IHJlczoKLSAgICAgICAgICAgICAgICByYWlzZSBTeXN0ZW1F
eGl0KDEpCi0gICAgICAgICIiIgotICAgICAgICAgICAgICAgICUgKHN0cihzZWxmLnBpY2tsZWZp
bGUpLCBleHByZXNzaW9uKQorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAg
ICAgICAgIHIiIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcGlja2xlCisgICAgICAgICAgICAg
ICAgZiA9IG9wZW4oeyFyfSwgJ3JiJykKKyAgICAgICAgICAgICAgICBvYmogPSBwaWNrbGUubG9h
ZChmKQorICAgICAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICAgICAgICAgIHJlcyA9IGV2
YWwoeyFyfSkKKyAgICAgICAgICAgICAgICBpZiBub3QgcmVzOgorICAgICAgICAgICAgICAgICAg
ICByYWlzZSBTeXN0ZW1FeGl0KDEpCisgICAgICAgICAgICAgICAgIiIiLmZvcm1hdCgKKyAgICAg
ICAgICAgICAgICAgICAgc3RyKHNlbGYucGlja2xlZmlsZSksIGV4cHJlc3Npb24KKyAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgICApCiAgICAgICAgICkKICAgICAgICAgcHJpbnQobG9hZGZp
bGUpCi0gICAgICAgIHB5LnByb2Nlc3MuY21kZXhlYygiJXMgJXMiICUgKHNlbGYucHl0aG9ucGF0
aCwgbG9hZGZpbGUpKQorICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoKHNlbGYucHl0aG9u
cGF0aCwgc3RyKGxvYWRmaWxlKSkpCiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJvYmoi
LCBbNDIsIHt9LCB7MTogM31dKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvbm9ucHl0aG9uLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi5y
c3QKaW5kZXggNGY1YWRmNjNmZDc2MWY5NDg1OWM4NzNhZWFmOTEzZmI0MjJlMDk2ZS4uMDkxMDA3
MWMxNGE2NWEwNGFjYjQ1ZDA4M2ZiOTk1YjA5MjExOGY2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9ub25weXRob24ucnN0CkBAIC0yMywxMiArMjMsMTUgQEAgWW91IGNhbiBjcmVhdGUg
YSBzaW1wbGUgZXhhbXBsZSBmaWxlOgogICAgIDpsaXRlcmFsOgogCiBhbmQgaWYgeW91IGluc3Rh
bGxlZCBgUHlZQU1MYF8gb3IgYSBjb21wYXRpYmxlIFlBTUwtcGFyc2VyIHlvdSBjYW4KLW5vdyBl
eGVjdXRlIHRoZSB0ZXN0IHNwZWNpZmljYXRpb246Ogorbm93IGV4ZWN1dGUgdGhlIHRlc3Qgc3Bl
Y2lmaWNhdGlvbjoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgbm9ucHl0aG9uICQg
cHl0ZXN0IHRlc3Rfc2ltcGxlLnltbAogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0
ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIvbm9ucHl0aG9uLCBpbmlmaWxl
OgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0x
LngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3Rf
Y2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSL25vbnB5dGhvbgogICAgIGNvbGxl
Y3RlZCAyIGl0ZW1zCiAKICAgICB0ZXN0X3NpbXBsZS55bWwgRi4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KQEAgLTU1LDEzICs1OCwxNSBA
QCB5b3VyIG93biBkb21haW4gc3BlY2lmaWMgdGVzdGluZyBsYW5ndWFnZSB0aGlzIHdheS4KICAg
ICB3aWxsIGJlIHJlcG9ydGVkIGFzIGEgKHJlZCkgc3RyaW5nLgogCiBgYHJlcG9ydGluZm8oKWBg
IGlzIHVzZWQgZm9yIHJlcHJlc2VudGluZyB0aGUgdGVzdCBsb2NhdGlvbiBhbmQgaXMgYWxzbwot
Y29uc3VsdGVkIHdoZW4gcmVwb3J0aW5nIGluIGBgdmVyYm9zZWBgIG1vZGU6OgorY29uc3VsdGVk
IHdoZW4gcmVwb3J0aW5nIGluIGBgdmVyYm9zZWBgIG1vZGU6CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRlc3QKIAogICAgIG5vbnB5dGhvbiAkIHB5dGVzdCAtdgogICAgID09PT09PT09PT09PT09PT09
PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHkt
MS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41Ci0gICAg
Y2FjaGVkaXI6IC5weXRlc3RfY2FjaGUKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSL25v
bnB5dGhvbiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5
dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4v
cHl0aG9uCisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICBy
b290ZGlyOiAkUkVHRU5ET0NfVE1QRElSL25vbnB5dGhvbgogICAgIGNvbGxlY3RpbmcgLi4uIGNv
bGxlY3RlZCAyIGl0ZW1zCiAKICAgICB0ZXN0X3NpbXBsZS55bWw6OmhlbGxvIEZBSUxFRCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIDUwJV0KQEAgLTc3LDE1ICs4Miwx
OSBAQCBjb25zdWx0ZWQgd2hlbiByZXBvcnRpbmcgaW4gYGB2ZXJib3NlYGAgbW9kZTo6CiAuLiBy
ZWdlbmRvYzp3aXBlCiAKIFdoaWxlIGRldmVsb3BpbmcgeW91ciBjdXN0b20gdGVzdCBjb2xsZWN0
aW9uIGFuZCBleGVjdXRpb24gaXQncyBhbHNvCi1pbnRlcmVzdGluZyB0byBqdXN0IGxvb2sgYXQg
dGhlIGNvbGxlY3Rpb24gdHJlZTo6CitpbnRlcmVzdGluZyB0byBqdXN0IGxvb2sgYXQgdGhlIGNv
bGxlY3Rpb24gdHJlZToKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgbm9ucHl0aG9u
ICQgcHl0ZXN0IC0tY29sbGVjdC1vbmx5CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09
IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBs
YXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1
Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUi9ub25weXRob24sIGluaWZp
bGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5
LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVz
dF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIvbm9ucHl0aG9uCiAgICAgY29s
bGVjdGVkIDIgaXRlbXMKLSAgICA8WWFtbEZpbGUgJ3Rlc3Rfc2ltcGxlLnltbCc+Ci0gICAgICA8
WWFtbEl0ZW0gJ2hlbGxvJz4KLSAgICAgIDxZYW1sSXRlbSAnb2snPgorICAgIDxQYWNrYWdlICRS
RUdFTkRPQ19UTVBESVIvbm9ucHl0aG9uPgorICAgICAgPFlhbWxGaWxlIHRlc3Rfc2ltcGxlLnlt
bD4KKyAgICAgICAgPFlhbWxJdGVtIGhlbGxvPgorICAgICAgICA8WWFtbEl0ZW0gb2s+CiAKICAg
ICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09
PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9ub25weXRob24vY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9u
b25weXRob24vY29uZnRlc3QucHkKaW5kZXggODQyOWRkMTE0YjE4NTFiMDlmZGEyZjNiYTM3YjZi
MjBhNjRjZjYxYS4uMzA2YWEyNTAzNzk1ODZlMjk2NzUxMzA0YzI1ZTNiODU2ZWYyOGIwNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL2NvbmZ0ZXN0LnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi9jb25mdGVzdC5weQpA
QCAtMSw1ICsxLDUgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAjIGNvbnRlbnQgb2YgY29u
ZnRlc3QucHkKLQogaW1wb3J0IHB5dGVzdAogCiAKQEAgLTksNyArOSw2IEBAIGRlZiBweXRlc3Rf
Y29sbGVjdF9maWxlKHBhcmVudCwgcGF0aCk6CiAKIAogY2xhc3MgWWFtbEZpbGUocHl0ZXN0LkZp
bGUpOgotCiAgICAgZGVmIGNvbGxlY3Qoc2VsZik6CiAgICAgICAgIGltcG9ydCB5YW1sICAjIHdl
IG5lZWQgYSB5YW1sIHBhcnNlciwgZS5nLiBQeVlBTUwKIApAQCAtMTksNyArMTgsNiBAQCBjbGFz
cyBZYW1sRmlsZShweXRlc3QuRmlsZSk6CiAKIAogY2xhc3MgWWFtbEl0ZW0ocHl0ZXN0Lkl0ZW0p
OgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhcmVudCwgc3BlYyk6CiAgICAgICAg
IHN1cGVyKFlhbWxJdGVtLCBzZWxmKS5fX2luaXRfXyhuYW1lLCBwYXJlbnQpCiAgICAgICAgIHNl
bGYuc3BlYyA9IHNwZWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3Bh
cmFtZXRyaXplLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3BhcmFtZXRyaXplLnJz
dAppbmRleCA4ODI3MDBmZWMxMWVmNjNlOTNhMTNkYTcxNjYxM2VjMjg1YmNjNDhmLi4yYWI1ZTNh
YjEwYzZiY2ExMmEyOWRkNGRmYTQ2OGEyZjlkODRiODA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9wYXJhbWV0cml6ZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2V4YW1wbGUvcGFyYW1ldHJpemUucnN0CkBAIC00MiwxNCArNDIsMTggQEAgTm93IHdlIGFkZCBh
IHRlc3QgY29uZmlndXJhdGlvbiBsaWtlIHRoaXM6OgogICAgICAgICAgICAgICAgIGVuZCA9IDIK
ICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJwYXJhbTEiLCByYW5nZShlbmQpKQog
Ci1UaGlzIG1lYW5zIHRoYXQgd2Ugb25seSBydW4gMiB0ZXN0cyBpZiB3ZSBkbyBub3QgcGFzcyBg
YC0tYWxsYGA6OgorVGhpcyBtZWFucyB0aGF0IHdlIG9ubHkgcnVuIDIgdGVzdHMgaWYgd2UgZG8g
bm90IHBhc3MgYGAtLWFsbGBgOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5
dGVzdCAtcSB0ZXN0X2NvbXB1dGUucHkKICAgICAuLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KICAgICAyIHBh
c3NlZCBpbiAwLjEyIHNlY29uZHMKIAogV2UgcnVuIG9ubHkgdHdvIGNvbXB1dGF0aW9ucywgc28g
d2Ugc2VlIHR3byBkb3RzLgotbGV0J3MgcnVuIHRoZSBmdWxsIG1vbnR5OjoKK2xldCdzIHJ1biB0
aGUgZnVsbCBtb250eToKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3Qg
LXEgLS1hbGwKICAgICAuLi4uRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KQEAgLTEzNCwyMyArMTM4LDI1IEBAIHVz
ZWQgYXMgdGhlIHRlc3QgSURzLiBUaGVzZSBhcmUgc3VjY2luY3QsIGJ1dCBjYW4gYmUgYSBwYWlu
IHRvIG1haW50YWluLgogSW4gYGB0ZXN0X3RpbWVkaXN0YW5jZV92MmBgLCB3ZSBzcGVjaWZpZWQg
YGBpZHNgYCBhcyBhIGZ1bmN0aW9uIHRoYXQgY2FuIGdlbmVyYXRlIGEKIHN0cmluZyByZXByZXNl
bnRhdGlvbiB0byBtYWtlIHBhcnQgb2YgdGhlIHRlc3QgSUQuIFNvIG91ciBgYGRhdGV0aW1lYGAg
dmFsdWVzIHVzZSB0aGUKIGxhYmVsIGdlbmVyYXRlZCBieSBgYGlkZm5gYCwgYnV0IGJlY2F1c2Ug
d2UgZGlkbid0IGdlbmVyYXRlIGEgbGFiZWwgZm9yIGBgdGltZWRlbHRhYGAKLW9iamVjdHMsIHRo
ZXkgYXJlIHN0aWxsIHVzaW5nIHRoZSBkZWZhdWx0IHB5dGVzdCByZXByZXNlbnRhdGlvbjo6Citv
YmplY3RzLCB0aGV5IGFyZSBzdGlsbCB1c2luZyB0aGUgZGVmYXVsdCBweXRlc3QgcmVwcmVzZW50
YXRpb246CiAKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IHRlc3RfdGlt
ZS5weSAtLWNvbGxlY3Qtb25seQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0
IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0w
LngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZv
cm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3kt
MC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJv
b3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQgOCBpdGVtcwotICAgIDxNb2R1
bGUgJ3Rlc3RfdGltZS5weSc+Ci0gICAgICA8RnVuY3Rpb24gJ3Rlc3RfdGltZWRpc3RhbmNlX3Yw
W2EwLWIwLWV4cGVjdGVkMF0nPgotICAgICAgPEZ1bmN0aW9uICd0ZXN0X3RpbWVkaXN0YW5jZV92
MFthMS1iMS1leHBlY3RlZDFdJz4KLSAgICAgIDxGdW5jdGlvbiAndGVzdF90aW1lZGlzdGFuY2Vf
djFbZm9yd2FyZF0nPgotICAgICAgPEZ1bmN0aW9uICd0ZXN0X3RpbWVkaXN0YW5jZV92MVtiYWNr
d2FyZF0nPgotICAgICAgPEZ1bmN0aW9uICd0ZXN0X3RpbWVkaXN0YW5jZV92MlsyMDAxMTIxMi0y
MDAxMTIxMS1leHBlY3RlZDBdJz4KLSAgICAgIDxGdW5jdGlvbiAndGVzdF90aW1lZGlzdGFuY2Vf
djJbMjAwMTEyMTEtMjAwMTEyMTItZXhwZWN0ZWQxXSc+Ci0gICAgICA8RnVuY3Rpb24gJ3Rlc3Rf
dGltZWRpc3RhbmNlX3YzW2ZvcndhcmRdJz4KLSAgICAgIDxGdW5jdGlvbiAndGVzdF90aW1lZGlz
dGFuY2VfdjNbYmFja3dhcmRdJz4KKyAgICA8TW9kdWxlIHRlc3RfdGltZS5weT4KKyAgICAgIDxG
dW5jdGlvbiB0ZXN0X3RpbWVkaXN0YW5jZV92MFthMC1iMC1leHBlY3RlZDBdPgorICAgICAgPEZ1
bmN0aW9uIHRlc3RfdGltZWRpc3RhbmNlX3YwW2ExLWIxLWV4cGVjdGVkMV0+CisgICAgICA8RnVu
Y3Rpb24gdGVzdF90aW1lZGlzdGFuY2VfdjFbZm9yd2FyZF0+CisgICAgICA8RnVuY3Rpb24gdGVz
dF90aW1lZGlzdGFuY2VfdjFbYmFja3dhcmRdPgorICAgICAgPEZ1bmN0aW9uIHRlc3RfdGltZWRp
c3RhbmNlX3YyWzIwMDExMjEyLTIwMDExMjExLWV4cGVjdGVkMF0+CisgICAgICA8RnVuY3Rpb24g
dGVzdF90aW1lZGlzdGFuY2VfdjJbMjAwMTEyMTEtMjAwMTEyMTItZXhwZWN0ZWQxXT4KKyAgICAg
IDxGdW5jdGlvbiB0ZXN0X3RpbWVkaXN0YW5jZV92M1tmb3J3YXJkXT4KKyAgICAgIDxGdW5jdGlv
biB0ZXN0X3RpbWVkaXN0YW5jZV92M1tiYWNrd2FyZF0+CiAKICAgICA9PT09PT09PT09PT09PT09
PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09
PT09CiAKQEAgLTE5MSwzMyArMTk3LDM3IEBAIG9ubHkgaGF2ZSB0byB3b3JrIGEgYml0IHRvIGNv
bnN0cnVjdCB0aGUgY29ycmVjdCBhcmd1bWVudHMgZm9yIHB5dGVzdCdzCiAgICAgICAgIGRlZiB0
ZXN0X2RlbW8yKHNlbGYsIGF0dHJpYnV0ZSk6CiAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShhdHRyaWJ1dGUsIHN0cikKIAotdGhpcyBpcyBhIGZ1bGx5IHNlbGYtY29udGFpbmVkIGV4YW1w
bGUgd2hpY2ggeW91IGNhbiBydW4gd2l0aDo6Cit0aGlzIGlzIGEgZnVsbHkgc2VsZi1jb250YWlu
ZWQgZXhhbXBsZSB3aGljaCB5b3UgY2FuIHJ1biB3aXRoOgorCisuLiBjb2RlLWJsb2NrOjogcHl0
ZXN0CiAKICAgICAkIHB5dGVzdCB0ZXN0X3NjZW5hcmlvcy5weQogICAgID09PT09PT09PT09PT09
PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwg
cHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGlu
aWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54Lnks
IHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5
dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQg
NCBpdGVtcwogCiAgICAgdGVzdF9zY2VuYXJpb3MucHkgLi4uLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCiAKICAgICA9PT09PT09PT09PT09PT09
PT09PT09PT09IDQgcGFzc2VkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09
PT09CiAKLUlmIHlvdSBqdXN0IGNvbGxlY3QgdGVzdHMgeW91J2xsIGFsc28gbmljZWx5IHNlZSAn
YWR2YW5jZWQnIGFuZCAnYmFzaWMnIGFzIHZhcmlhbnRzIGZvciB0aGUgdGVzdCBmdW5jdGlvbjo6
CitJZiB5b3UganVzdCBjb2xsZWN0IHRlc3RzIHlvdSdsbCBhbHNvIG5pY2VseSBzZWUgJ2FkdmFu
Y2VkJyBhbmQgJ2Jhc2ljJyBhcyB2YXJpYW50cyBmb3IgdGhlIHRlc3QgZnVuY3Rpb246CiAKKy4u
IGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC0tY29sbGVjdC1vbmx5IHRlc3Rf
c2NlbmFyaW9zLnB5CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lv
biBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4
IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0g
ICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51
eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQor
ICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCA0IGl0ZW1zCi0gICAgPE1vZHVsZSAndGVz
dF9zY2VuYXJpb3MucHknPgotICAgICAgPENsYXNzICdUZXN0U2FtcGxlV2l0aFNjZW5hcmlvcyc+
Ci0gICAgICAgIDxJbnN0YW5jZSAnKCknPgotICAgICAgICAgIDxGdW5jdGlvbiAndGVzdF9kZW1v
MVtiYXNpY10nPgotICAgICAgICAgIDxGdW5jdGlvbiAndGVzdF9kZW1vMltiYXNpY10nPgotICAg
ICAgICAgIDxGdW5jdGlvbiAndGVzdF9kZW1vMVthZHZhbmNlZF0nPgotICAgICAgICAgIDxGdW5j
dGlvbiAndGVzdF9kZW1vMlthZHZhbmNlZF0nPgorICAgIDxNb2R1bGUgdGVzdF9zY2VuYXJpb3Mu
cHk+CisgICAgICA8Q2xhc3MgVGVzdFNhbXBsZVdpdGhTY2VuYXJpb3M+CisgICAgICAgICAgPEZ1
bmN0aW9uIHRlc3RfZGVtbzFbYmFzaWNdPgorICAgICAgICAgIDxGdW5jdGlvbiB0ZXN0X2RlbW8y
W2Jhc2ljXT4KKyAgICAgICAgICA8RnVuY3Rpb24gdGVzdF9kZW1vMVthZHZhbmNlZF0+CisgICAg
ICAgICAgPEZ1bmN0aW9uIHRlc3RfZGVtbzJbYWR2YW5jZWRdPgogCiAgICAgPT09PT09PT09PT09
PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09
PT09PT09PQogCkBAIC0yNjksMjAgKzI3OSwyNSBAQCBjcmVhdGVzIGEgZGF0YWJhc2Ugb2JqZWN0
IGZvciB0aGUgYWN0dWFsIHRlc3QgaW52b2NhdGlvbnM6OgogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCBpbnRlcm5hbCB0ZXN0IGNvbmZpZyIpCiAK
LUxldCdzIGZpcnN0IHNlZSBob3cgaXQgbG9va3MgbGlrZSBhdCBjb2xsZWN0aW9uIHRpbWU6Ogor
TGV0J3MgZmlyc3Qgc2VlIGhvdyBpdCBsb29rcyBsaWtlIGF0IGNvbGxlY3Rpb24gdGltZToKKwor
Li4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgdGVzdF9iYWNrZW5kcy5weSAt
LWNvbGxlY3Qtb25seQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Np
b24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51
eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQot
ICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGlu
dXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkK
KyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6
ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQgMiBpdGVtcwotICAgIDxNb2R1bGUgJ3Rl
c3RfYmFja2VuZHMucHknPgotICAgICAgPEZ1bmN0aW9uICd0ZXN0X2RiX2luaXRpYWxpemVkW2Qx
XSc+Ci0gICAgICA8RnVuY3Rpb24gJ3Rlc3RfZGJfaW5pdGlhbGl6ZWRbZDJdJz4KKyAgICA8TW9k
dWxlIHRlc3RfYmFja2VuZHMucHk+CisgICAgICA8RnVuY3Rpb24gdGVzdF9kYl9pbml0aWFsaXpl
ZFtkMV0+CisgICAgICA8RnVuY3Rpb24gdGVzdF9kYl9pbml0aWFsaXplZFtkMl0+CiAKICAgICA9
PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09
PT09PT09PT09PT09PT09PT09CiAKLUFuZCB0aGVuIHdoZW4gd2UgcnVuIHRoZSB0ZXN0OjoKK0Fu
ZCB0aGVuIHdoZW4gd2UgcnVuIHRoZSB0ZXN0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAK
ICAgICAkIHB5dGVzdCAtcSB0ZXN0X2JhY2tlbmRzLnB5CiAgICAgLkYgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVd
CkBAIC0zMzAsMTUgKzM0NSwxOCBAQCB3aWxsIGJlIHBhc3NlZCB0byByZXNwZWN0aXZlIGZpeHR1
cmUgZnVuY3Rpb246OgogICAgICAgICBhc3NlcnQgeCA9PSAnYWFhJwogICAgICAgICBhc3NlcnQg
eSA9PSAnYicKIAotVGhlIHJlc3VsdCBvZiB0aGlzIHRlc3Qgd2lsbCBiZSBzdWNjZXNzZnVsOjoK
K1RoZSByZXN1bHQgb2YgdGhpcyB0ZXN0IHdpbGwgYmUgc3VjY2Vzc2Z1bDoKKworLi4gY29kZS1i
bG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgdGVzdF9pbmRpcmVjdF9saXN0LnB5IC0tY29s
bGVjdC1vbmx5CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBz
dGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0t
IFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAg
cm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAt
LSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAg
IGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJF
R0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAxIGl0ZW0KLSAgICA8TW9kdWxlICd0ZXN0X2lu
ZGlyZWN0X2xpc3QucHknPgotICAgICAgPEZ1bmN0aW9uICd0ZXN0X2luZGlyZWN0W2EtYl0nPgor
ICAgIDxNb2R1bGUgdGVzdF9pbmRpcmVjdF9saXN0LnB5PgorICAgICAgPEZ1bmN0aW9uIHRlc3Rf
aW5kaXJlY3RbYS1iXT4KIAogICAgID09PT09PT09PT09PT09PT09PT09PT09IG5vIHRlc3RzIHJh
biBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT0KIApAQCAtMzc1LDEwICsz
OTMsMTMgQEAgcGFyYW1ldHJpemVyYF8gYnV0IGluIGEgbG90IGxlc3MgY29kZTo6CiAgICAgICAg
ICAgICBhc3NlcnQgYSA9PSBiCiAKICAgICAgICAgZGVmIHRlc3RfemVyb2RpdmlzaW9uKHNlbGYs
IGEsIGIpOgotICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgImEv
YiIpCisgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgor
ICAgICAgICAgICAgICAgIGEgLyBiCiAKIE91ciB0ZXN0IGdlbmVyYXRvciBsb29rcyB1cCBhIGNs
YXNzLWxldmVsIGRlZmluaXRpb24gd2hpY2ggc3BlY2lmaWVzIHdoaWNoCi1hcmd1bWVudCBzZXRz
IHRvIHVzZSBmb3IgZWFjaCB0ZXN0IGZ1bmN0aW9uLiAgTGV0J3MgcnVuIGl0OjoKK2FyZ3VtZW50
IHNldHMgdG8gdXNlIGZvciBlYWNoIHRlc3QgZnVuY3Rpb24uICBMZXQncyBydW4gaXQ6CisKKy4u
IGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xCiAgICAgRi4uICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WzEwMCVdCkBAIC00MDgsMTEgKzQyOSwxNiBAQCBpcyB0byBiZSBydW4gd2l0aCBkaWZmZXJlbnQg
c2V0cyBvZiBhcmd1bWVudHMgZm9yIGl0cyB0aHJlZSBhcmd1bWVudHM6CiAKIC4uIGxpdGVyYWxp
bmNsdWRlOjogbXVsdGlweXRob24ucHkKIAotUnVubmluZyBpdCByZXN1bHRzIGluIHNvbWUgc2tp
cHMgaWYgd2UgZG9uJ3QgaGF2ZSBhbGwgdGhlIHB5dGhvbiBpbnRlcnByZXRlcnMgaW5zdGFsbGVk
IGFuZCBvdGhlcndpc2UgcnVucyBhbGwgY29tYmluYXRpb25zICg1IGludGVycHJldGVycyB0aW1l
cyA1IGludGVycHJldGVycyB0aW1lcyAzIG9iamVjdHMgdG8gc2VyaWFsaXplL2Rlc2VyaWFsaXpl
KTo6CitSdW5uaW5nIGl0IHJlc3VsdHMgaW4gc29tZSBza2lwcyBpZiB3ZSBkb24ndCBoYXZlIGFs
bCB0aGUgcHl0aG9uIGludGVycHJldGVycyBpbnN0YWxsZWQgYW5kIG90aGVyd2lzZSBydW5zIGFs
bCBjb21iaW5hdGlvbnMgKDUgaW50ZXJwcmV0ZXJzIHRpbWVzIDUgaW50ZXJwcmV0ZXJzIHRpbWVz
IDMgb2JqZWN0cyB0byBzZXJpYWxpemUvZGVzZXJpYWxpemUpOgorCisuLiBjb2RlLWJsb2NrOjog
cHl0ZXN0CiAKICAgIC4gJCBweXRlc3QgLXJzIC1xIG11bHRpcHl0aG9uLnB5Ci0gICAuLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbMTAwJV0KLSAgIDI3IHBhc3NlZCBpbiAwLjEyIHNlY29uZHMKKyAgIC4uLnNzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3NzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsxMDAlXQorICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1bW1hcnkg
aW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgU0tJUFBFRCBbMTJdICRSRUdFTkRP
Q19UTVBESVIvQ1dEL211bHRpcHl0aG9uLnB5OjMxOiAncHl0aG9uMy40JyBub3QgZm91bmQKKyAg
IFNLSVBQRUQgWzEyXSAkUkVHRU5ET0NfVE1QRElSL0NXRC9tdWx0aXB5dGhvbi5weTozMTogJ3B5
dGhvbjMuNScgbm90IGZvdW5kCisgICAzIHBhc3NlZCwgMjQgc2tpcHBlZCBpbiAwLjEyIHNlY29u
ZHMKIAogSW5kaXJlY3QgcGFyYW1ldHJpemF0aW9uIG9mIG9wdGlvbmFsIGltcGxlbWVudGF0aW9u
cy9pbXBvcnRzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDU1LDE4ICs0ODEsMjEgQEAgQW5kIGZpbmFsbHkg
YSBsaXR0bGUgdGVzdCBtb2R1bGU6OgogICAgICAgICBhc3NlcnQgcm91bmQoYmFzZW1vZC5mdW5j
MSgpLCAzKSA9PSByb3VuZChvcHRtb2QuZnVuYzEoKSwgMykKIAogCi1JZiB5b3UgcnVuIHRoaXMg
d2l0aCByZXBvcnRpbmcgZm9yIHNraXBzIGVuYWJsZWQ6OgorSWYgeW91IHJ1biB0aGlzIHdpdGgg
cmVwb3J0aW5nIGZvciBza2lwcyBlbmFibGVkOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAK
ICAgICAkIHB5dGVzdCAtcnMgdGVzdF9tb2R1bGUucHkKICAgICA9PT09PT09PT09PT09PT09PT09
PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEu
eC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxl
OgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0x
LngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3Rf
Y2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVkIDIgaXRl
bXMKIAogICAgIHRlc3RfbW9kdWxlLnB5IC5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQotICAgID09PT09PT09PT09PT09PT09PT09PT09
PT0gc2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8gPT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAg
ICBTS0lQIFsxXSAkUkVHRU5ET0NfVE1QRElSL2NvbmZ0ZXN0LnB5OjExOiBjb3VsZCBub3QgaW1w
b3J0ICdvcHQyJwogCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1
bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIFNLSVBQRUQgWzFdICRS
RUdFTkRPQ19UTVBESVIvY29uZnRlc3QucHk6MTE6IGNvdWxkIG5vdCBpbXBvcnQgJ29wdDInOiBO
byBtb2R1bGUgbmFtZWQgJ29wdDInCiAgICAgPT09PT09PT09PT09PT09PT09PSAxIHBhc3NlZCwg
MSBza2lwcGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PQogCiBZb3UnbGwg
c2VlIHRoYXQgd2UgZG9uJ3QgaGF2ZSBhbiBgYG9wdDJgYCBtb2R1bGUgYW5kIHRodXMgdGhlIHNl
Y29uZCB0ZXN0IHJ1bgpAQCAtNDg3LDIxICs1MTYsMjUgQEAgU2V0IG1hcmtzIG9yIHRlc3QgSUQg
Zm9yIGluZGl2aWR1YWwgcGFyYW1ldHJpemVkIHRlc3QKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFVzZSBgYHB5
dGVzdC5wYXJhbWBgIHRvIGFwcGx5IG1hcmtzIG9yIHNldCB0ZXN0IElEIHRvIGluZGl2aWR1YWwg
cGFyYW1ldHJpemVkIHRlc3QuCi1Gb3IgZXhhbXBsZTo6CitGb3IgZXhhbXBsZToKKworLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyBjb250ZW50IG9mIHRlc3RfcHl0ZXN0X3BhcmFtX2V4
YW1wbGUucHkKICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCd0ZXN0X2lucHV0LGV4cGVjdGVkJywgWwotICAgICAgICAoJzMrNScsIDgpLAotICAgICAgICBw
eXRlc3QucGFyYW0oJzErNycsIDgsCi0gICAgICAgICAgICAgICAgICAgICBtYXJrcz1weXRlc3Qu
bWFyay5iYXNpYyksCi0gICAgICAgIHB5dGVzdC5wYXJhbSgnMis0JywgNiwKLSAgICAgICAgICAg
ICAgICAgICAgIG1hcmtzPXB5dGVzdC5tYXJrLmJhc2ljLAotICAgICAgICAgICAgICAgICAgICAg
aWQ9J2Jhc2ljXzIrNCcpLAotICAgICAgICBweXRlc3QucGFyYW0oJzYqOScsIDQyLAotICAgICAg
ICAgICAgICAgICAgICAgbWFya3M9W3B5dGVzdC5tYXJrLmJhc2ljLCBweXRlc3QubWFyay54ZmFp
bF0sCi0gICAgICAgICAgICAgICAgICAgICBpZD0nYmFzaWNfNio5JyksCi0gICAgXSkKKworCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAidGVzdF9pbnB1dCxleHBlY3Rl
ZCIsCisgICAgICAgIFsKKyAgICAgICAgICAgICgiMys1IiwgOCksCisgICAgICAgICAgICBweXRl
c3QucGFyYW0oIjErNyIsIDgsIG1hcmtzPXB5dGVzdC5tYXJrLmJhc2ljKSwKKyAgICAgICAgICAg
IHB5dGVzdC5wYXJhbSgiMis0IiwgNiwgbWFya3M9cHl0ZXN0Lm1hcmsuYmFzaWMsIGlkPSJiYXNp
Y18yKzQiKSwKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgKKyAgICAgICAgICAgICAgICAiNio5
IiwgNDIsIG1hcmtzPVtweXRlc3QubWFyay5iYXNpYywgcHl0ZXN0Lm1hcmsueGZhaWxdLCBpZD0i
YmFzaWNfNio5IgorICAgICAgICAgICAgKSwKKyAgICAgICAgXSwKKyAgICApCiAgICAgZGVmIHRl
c3RfZXZhbCh0ZXN0X2lucHV0LCBleHBlY3RlZCk6CiAgICAgICAgIGFzc2VydCBldmFsKHRlc3Rf
aW5wdXQpID09IGV4cGVjdGVkCiAKQEAgLTUxMCwyMSArNTQzLDIyIEBAIHdlIG1hcmsgdGhlIHJl
c3QgdGhyZWUgcGFyYW1ldHJpemVkIHRlc3RzIHdpdGggdGhlIGN1c3RvbSBtYXJrZXIgYGBiYXNp
Y2BgLAogYW5kIGZvciB0aGUgZm91cnRoIHRlc3Qgd2UgYWxzbyB1c2UgdGhlIGJ1aWx0LWluIG1h
cmsgYGB4ZmFpbGBgIHRvIGluZGljYXRlIHRoaXMKIHRlc3QgaXMgZXhwZWN0ZWQgdG8gZmFpbC4g
Rm9yIGV4cGxpY2l0bmVzcywgd2Ugc2V0IHRlc3QgaWRzIGZvciBzb21lIHRlc3RzLgogCi1UaGVu
IHJ1biBgYHB5dGVzdGBgIHdpdGggdmVyYm9zZSBtb2RlIGFuZCB3aXRoIG9ubHkgdGhlIGBgYmFz
aWNgYCBtYXJrZXI6OgorVGhlbiBydW4gYGBweXRlc3RgYCB3aXRoIHZlcmJvc2UgbW9kZSBhbmQg
d2l0aCBvbmx5IHRoZSBgYGJhc2ljYGAgbWFya2VyOgogCi0gICAgcHl0ZXN0IC12IC1tIGJhc2lj
Ci0gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBz
ZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHkt
MS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZp
bGU6Ci0gICAgY29sbGVjdGVkIDQgaXRlbXMKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKKworICAg
ICQgcHl0ZXN0IC12IC1tIGJhc2ljCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRl
c3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRm
b3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5
LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24KKyAgICBjYWNoZWRpcjogJFBZVEhP
Tl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKKyAg
ICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgMTcgaXRlbXMgLyAxNCBkZXNlbGVjdGVkIC8gMyBz
ZWxlY3RlZAogCi0gICAgdGVzdF9weXRlc3RfcGFyYW1fZXhhbXBsZS5weTo6dGVzdF9ldmFsWzEr
Ny04XSBQQVNTRUQKLSAgICB0ZXN0X3B5dGVzdF9wYXJhbV9leGFtcGxlLnB5Ojp0ZXN0X2V2YWxb
YmFzaWNfMis0XSBQQVNTRUQKLSAgICB0ZXN0X3B5dGVzdF9wYXJhbV9leGFtcGxlLnB5Ojp0ZXN0
X2V2YWxbYmFzaWNfNio5XSB4ZmFpbAotICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgWEZBSUwgdGVzdF9weXRlc3RfcGFyYW1fZXhh
bXBsZS5weTo6dGVzdF9ldmFsW2Jhc2ljXzYqOV0KKyAgICB0ZXN0X3B5dGVzdF9wYXJhbV9leGFt
cGxlLnB5Ojp0ZXN0X2V2YWxbMSs3LThdIFBBU1NFRCAgICAgICAgICAgICAgICBbIDMzJV0KKyAg
ICB0ZXN0X3B5dGVzdF9wYXJhbV9leGFtcGxlLnB5Ojp0ZXN0X2V2YWxbYmFzaWNfMis0XSBQQVNT
RUQgICAgICAgICAgICBbIDY2JV0KKyAgICB0ZXN0X3B5dGVzdF9wYXJhbV9leGFtcGxlLnB5Ojp0
ZXN0X2V2YWxbYmFzaWNfNio5XSBYRkFJTCAgICAgICAgICAgICBbMTAwJV0KIAotICAgID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAxIHRlc3RzIGRlc2VsZWN0
ZWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgPT09
PT09PT09PT09IDIgcGFzc2VkLCAxNCBkZXNlbGVjdGVkLCAxIHhmYWlsZWQgaW4gMC4xMiBzZWNv
bmRzID09PT09PT09PT09PQogCiBBcyB0aGUgcmVzdWx0OgogCkBAIC01MzQsMyArNTY4LDUwIEBA
IEFzIHRoZSByZXN1bHQ6CiAtIFRoZSB0ZXN0IGBgdGVzdF9ldmFsWzErNy04XWBgIHBhc3NlZCwg
YnV0IHRoZSBuYW1lIGlzIGF1dG9nZW5lcmF0ZWQgYW5kIGNvbmZ1c2luZy4KIC0gVGhlIHRlc3Qg
YGB0ZXN0X2V2YWxbYmFzaWNfMis0XWBgIHBhc3NlZC4KIC0gVGhlIHRlc3QgYGB0ZXN0X2V2YWxb
YmFzaWNfNio5XWBgIHdhcyBleHBlY3RlZCB0byBmYWlsIGFuZCBkaWQgZmFpbC4KKworLi4gX2Bw
YXJhbWV0cml6aW5nX2NvbmRpdGlvbmFsX3JhaXNpbmdgOgorCitQYXJhbWV0cml6aW5nIGNvbmRp
dGlvbmFsIHJhaXNpbmcKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1VzZSA6ZnVuYzpgcHl0ZXN0LnJhaXNlc2Ag
d2l0aCB0aGUKKzpyZWY6YHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplIHJlZmAgZGVjb3JhdG9yIHRv
IHdyaXRlIHBhcmFtZXRyaXplZCB0ZXN0cworaW4gd2hpY2ggc29tZSB0ZXN0cyByYWlzZSBleGNl
cHRpb25zIGFuZCBvdGhlcnMgZG8gbm90LgorCitJdCBpcyBoZWxwZnVsIHRvIGRlZmluZSBhIG5v
LW9wIGNvbnRleHQgbWFuYWdlciBgYGRvZXNfbm90X3JhaXNlYGAgdG8gc2VydmUKK2FzIGEgY29t
cGxlbWVudCB0byBgYHJhaXNlc2BgLiBGb3IgZXhhbXBsZTo6CisKKyAgICBmcm9tIGNvbnRleHRs
aWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgQGNvbnRl
eHRtYW5hZ2VyCisgICAgZGVmIGRvZXNfbm90X3JhaXNlKCk6CisgICAgICAgIHlpZWxkCisKKwor
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZXhhbXBsZV9pbnB1dCxleHBlY3RhdGlvbics
IFsKKyAgICAgICAgKDMsIGRvZXNfbm90X3JhaXNlKCkpLAorICAgICAgICAoMiwgZG9lc19ub3Rf
cmFpc2UoKSksCisgICAgICAgICgxLCBkb2VzX25vdF9yYWlzZSgpKSwKKyAgICAgICAgKDAsIHB5
dGVzdC5yYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpKSwKKyAgICBdKQorICAgIGRlZiB0ZXN0X2Rp
dmlzaW9uKGV4YW1wbGVfaW5wdXQsIGV4cGVjdGF0aW9uKToKKyAgICAgICAgIiIiVGVzdCBob3cg
bXVjaCBJIGtub3cgZGl2aXNpb24uIiIiCisgICAgICAgIHdpdGggZXhwZWN0YXRpb246CisgICAg
ICAgICAgICBhc3NlcnQgKDYgLyBleGFtcGxlX2lucHV0KSBpcyBub3QgTm9uZQorCitJbiB0aGUg
ZXhhbXBsZSBhYm92ZSwgdGhlIGZpcnN0IHRocmVlIHRlc3QgY2FzZXMgc2hvdWxkIHJ1biB1bmV4
Y2VwdGlvbmFsbHksCit3aGlsZSB0aGUgZm91cnRoIHNob3VsZCByYWlzZSBgYFplcm9EaXZpc2lv
bkVycm9yYGAuCisKK0lmIHlvdSdyZSBvbmx5IHN1cHBvcnRpbmcgUHl0aG9uIDMuNyssIHlvdSBj
YW4gc2ltcGx5IHVzZSBgYG51bGxjb250ZXh0YGAKK3RvIGRlZmluZSBgYGRvZXNfbm90X3JhaXNl
YGA6OgorCisgICAgZnJvbSBjb250ZXh0bGliIGltcG9ydCBudWxsY29udGV4dCBhcyBkb2VzX25v
dF9yYWlzZQorCitPciwgaWYgeW91J3JlIHN1cHBvcnRpbmcgUHl0aG9uIDMuMysgeW91IGNhbiB1
c2U6OgorCisgICAgZnJvbSBjb250ZXh0bGliIGltcG9ydCBFeGl0U3RhY2sgYXMgZG9lc19ub3Rf
cmFpc2UKKworT3IsIGlmIGRlc2lyZWQsIHlvdSBjYW4gYGBwaXAgaW5zdGFsbCBjb250ZXh0bGli
MmBgIGFuZCB1c2U6OgorCisgICAgZnJvbSBjb250ZXh0bGliMiBpbXBvcnQgRXhpdFN0YWNrIGFz
IGRvZXNfbm90X3JhaXNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9w
eTJweTMvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvY29u
ZnRlc3QucHkKaW5kZXggNWQ5YTA3ZTNlMzJhY2I0YmZiNDA2ZDMwMWRmNGFlNTM3YzRlZDcyYy4u
YTZiOWFmN2E4NjBlNWEzNDJiNjBjMzIyNDExYjc1MmJiZDU2YjgzMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL2NvbmZ0ZXN0LnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My9jb25mdGVzdC5weQpAQCAtMSwxMSArMSwxMiBAQAor
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGltcG9ydCBzeXMKKwogaW1wb3J0IHB5dGVzdAogCiBw
eTMgPSBzeXMudmVyc2lvbl9pbmZvWzBdID49IDMKIAogCiBjbGFzcyBEdW1teUNvbGxlY3Rvcihw
eXRlc3QuY29sbGVjdC5GaWxlKToKLQogICAgIGRlZiBjb2xsZWN0KHNlbGYpOgogICAgICAgICBy
ZXR1cm4gW10KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkz
L3Rlc3RfcHkyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHky
LnB5CmluZGV4IDY2NGFjZjE3OGEwMDBkNjZmZWI5OWQxZmI5NmMyYjIzNzQ2M2ViMjguLjFmNjY1
MDg2ZTYwYWQwNDAyMjFjODZhMzdjODQ3NzY5YTFiYzQyNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90ZXN0X3B5Mi5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9weTJweTMvdGVzdF9weTIucHkKQEAgLTEsNiArMSw1IEBACi0KIGRlZiB0
ZXN0X2V4Y2VwdGlvbl9zeW50YXgoKToKICAgICB0cnk6Ci0gICAgICAgIDAvMAorICAgICAgICAw
IC8gMAogICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvciwgZToKLSAgICAgICAgcGFzcworICAg
ICAgICBhc3NlcnQgZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHky
cHkzL3Rlc3RfcHkzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3Rf
cHkzLnB5CmluZGV4IGJhZjBmZmJkODIyMDZlMzI0MjYzZDg5YjNjN2E2OWNlNWEwYjU3YWQuLjMw
MTUxZjkxNGE4NzRhZmNlODAxYjc2MjcyNTc5YzU2ODhkMTlkNmUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90ZXN0X3B5My5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9weTJweTMvdGVzdF9weTMucHkKQEAgLTEsNSArMSw2IEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQogZGVmIHRlc3RfZXhjZXB0aW9uX3N5bnRheCgpOgogICAgIHRy
eToKICAgICAgICAgMCAvIDAKICAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3IgYXMgZToKLSAg
ICAgICAgcGFzcworICAgICAgICBhc3NlcnQgZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL3B5dGhvbmNvbGxlY3Rpb24ucHkKaW5kZXggMzYwMzM2MWMzZGNmOGFiMTc4NzViNmFhMjYy
ZWM4NDgyNGI1YmEzNi4uYmJjM2ZlODY4ZWEyOGNlYzQzNTQ2NTdjM2FjMmIzZDdlOTdkZjkyOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weXRob25jb2xsZWN0aW9uLnB5CkBA
IC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICMgcnVuIHRoaXMgd2l0aCAk
IHB5dGVzdCAtLWNvbGxlY3Qtb25seSB0ZXN0X2NvbGxlY3Rvbmx5LnB5CiAjCiAKQEAgLTcsNyAr
OCw2IEBAIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CiAKIAogY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6
Ci0KICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6CiAgICAgICAgIHBhc3MKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weXRob25jb2xsZWN0aW9uLnJzdAppbmRleCA4ZTlkM2Fl
NjJhN2RjZmZkNjU2ZmEwNzQ4Nzg3NjRkOGVkNThjZmU3Li4wMmMxMmY2YmM5ZjA5MWJmNGMzOGM5
OWQ2NWJjY2ViMGI5YjI3ZTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9weXRob25jb2xsZWN0aW9uLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9w
eXRob25jb2xsZWN0aW9uLnJzdApAQCAtNiw3ICs2LDkgQEAgSWdub3JlIHBhdGhzIGR1cmluZyB0
ZXN0IGNvbGxlY3Rpb24KIAogWW91IGNhbiBlYXNpbHkgaWdub3JlIGNlcnRhaW4gdGVzdCBkaXJl
Y3RvcmllcyBhbmQgbW9kdWxlcyBkdXJpbmcgY29sbGVjdGlvbgogYnkgcGFzc2luZyB0aGUgYGAt
LWlnbm9yZT1wYXRoYGAgb3B0aW9uIG9uIHRoZSBjbGkuIGBgcHl0ZXN0YGAgYWxsb3dzIG11bHRp
cGxlCi1gYC0taWdub3JlYGAgb3B0aW9ucy4gRXhhbXBsZTo6CitgYC0taWdub3JlYGAgb3B0aW9u
cy4gRXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6IHRleHQKIAogICAgIHRlc3RzLwogICAgIHwt
LSBleGFtcGxlCkBAIC0yNCwyMCArMjYsMjUgQEAgYnkgcGFzc2luZyB0aGUgYGAtLWlnbm9yZT1w
YXRoYGAgb3B0aW9uIG9uIHRoZSBjbGkuIGBgcHl0ZXN0YGAgYWxsb3dzIG11bHRpcGxlCiAgICAg
ICAgICAgICAnLS0gdGVzdF93b3JsZF8wMy5weQogCiBOb3cgaWYgeW91IGludm9rZSBgYHB5dGVz
dGBgIHdpdGggYGAtLWlnbm9yZT10ZXN0cy9mb29iYXIvdGVzdF9mb29iYXJfMDMucHkgLS1pZ25v
cmU9dGVzdHMvaGVsbG8vYGAsCi15b3Ugd2lsbCBzZWUgdGhhdCBgYHB5dGVzdGBgIG9ubHkgY29s
bGVjdHMgdGVzdC1tb2R1bGVzLCB3aGljaCBkbyBub3QgbWF0Y2ggdGhlIHBhdHRlcm5zIHNwZWNp
ZmllZDo6Cit5b3Ugd2lsbCBzZWUgdGhhdCBgYHB5dGVzdGBgIG9ubHkgY29sbGVjdHMgdGVzdC1t
b2R1bGVzLCB3aGljaCBkbyBub3QgbWF0Y2ggdGhlIHBhdHRlcm5zIHNwZWNpZmllZDoKKworLi4g
Y29kZS1ibG9jazo6IHB5dGVzdAogCi0gICAgPT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMg
PT09PT09PT09PQotICAgIHBsYXRmb3JtIGRhcndpbiAtLSBQeXRob24gMi43LjEwLCBweXRlc3Qt
Mi44LjIsIHB5LTEuNC4zMCwgcGx1Z2d5LTAuMy4xCisgICAgPT09PT09PT09PT09PT09PT09PT09
PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
ICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngu
eSwgcGx1Z2d5LTAueC55CiAgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToK
ICAgICBjb2xsZWN0ZWQgNSBpdGVtcwogCi0gICAgdGVzdHMvZXhhbXBsZS90ZXN0X2V4YW1wbGVf
MDEucHkgLgotICAgIHRlc3RzL2V4YW1wbGUvdGVzdF9leGFtcGxlXzAyLnB5IC4KLSAgICB0ZXN0
cy9leGFtcGxlL3Rlc3RfZXhhbXBsZV8wMy5weSAuCi0gICAgdGVzdHMvZm9vYmFyL3Rlc3RfZm9v
YmFyXzAxLnB5IC4KLSAgICB0ZXN0cy9mb29iYXIvdGVzdF9mb29iYXJfMDIucHkgLgorICAgIHRl
c3RzL2V4YW1wbGUvdGVzdF9leGFtcGxlXzAxLnB5IC4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsgMjAlXQorICAgIHRlc3RzL2V4YW1wbGUvdGVzdF9leGFtcGxlXzAyLnB5IC4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgNDAlXQorICAgIHRlc3RzL2V4YW1w
bGUvdGVzdF9leGFtcGxlXzAzLnB5IC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsgNjAlXQorICAgIHRlc3RzL2Zvb2Jhci90ZXN0X2Zvb2Jhcl8wMS5weSAuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsgODAlXQorICAgIHRlc3RzL2Zvb2Jhci90ZXN0X2Zv
b2Jhcl8wMi5weSAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQor
CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSA1IHBhc3NlZCBpbiAwLjAyIHNlY29uZHMg
PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0gICAgPT09PT09PSA1IHBhc3NlZCBpbiAwLjAy
IHNlY29uZHMgPT09PT09PQorVGhlIGBgLS1pZ25vcmUtZ2xvYmBgIG9wdGlvbiBhbGxvd3MgdG8g
aWdub3JlIHRlc3QgZmlsZSBwYXRocyBiYXNlZCBvbiBVbml4IHNoZWxsLXN0eWxlIHdpbGRjYXJk
cy4KK0lmIHlvdSB3YW50IHRvIGV4Y2x1ZGUgdGVzdC1tb2R1bGVzIHRoYXQgZW5kIHdpdGggYGBf
MDEucHlgYCwgZXhlY3V0ZSBgYHB5dGVzdGBgIHdpdGggYGAtLWlnbm9yZS1nbG9iPScqXzAxLnB5
J2BgLgogCiBEZXNlbGVjdCB0ZXN0cyBkdXJpbmcgdGVzdCBjb2xsZWN0aW9uCiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC01Miw3ICs1OSw5IEBAIEtlZXBpbmcgZHVw
bGljYXRlIHBhdGhzIHNwZWNpZmllZCBmcm9tIGNvbW1hbmQgbGluZQogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBEZWZhdWx0IGJlaGF2aW9y
IG9mIGBgcHl0ZXN0YGAgaXMgdG8gaWdub3JlIGR1cGxpY2F0ZSBwYXRocyBzcGVjaWZpZWQgZnJv
bSB0aGUgY29tbWFuZCBsaW5lLgotRXhhbXBsZTo6CitFeGFtcGxlOgorCisuLiBjb2RlLWJsb2Nr
OjogcHl0ZXN0CiAKICAgICBweXRlc3QgcGF0aF9hIHBhdGhfYQogCkBAIC02Myw3ICs3Miw5IEBA
IEV4YW1wbGU6OgogSnVzdCBjb2xsZWN0IHRlc3RzIG9uY2UuCiAKIFRvIGNvbGxlY3QgZHVwbGlj
YXRlIHRlc3RzLCB1c2UgdGhlIGBgLS1rZWVwLWR1cGxpY2F0ZXNgYCBvcHRpb24gb24gdGhlIGNs
aS4KLUV4YW1wbGU6OgorRXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAg
cHl0ZXN0IC0ta2VlcC1kdXBsaWNhdGVzIHBhdGhfYSBwYXRoX2EKIApAQCAtNzMsNyArODQsOSBA
QCBFeGFtcGxlOjoKIAogQXMgdGhlIGNvbGxlY3RvciBqdXN0IHdvcmtzIG9uIGRpcmVjdG9yaWVz
LCBpZiB5b3Ugc3BlY2lmeSB0d2ljZSBhIHNpbmdsZSB0ZXN0IGZpbGUsIGBgcHl0ZXN0YGAgd2ls
bAogc3RpbGwgY29sbGVjdCBpdCB0d2ljZSwgbm8gbWF0dGVyIGlmIHRoZSBgYC0ta2VlcC1kdXBs
aWNhdGVzYGAgaXMgbm90IHNwZWNpZmllZC4KLUV4YW1wbGU6OgorRXhhbXBsZToKKworLi4gY29k
ZS1ibG9jazo6IHB5dGVzdAogCiAgICAgcHl0ZXN0IHRlc3RfYS5weSB0ZXN0X2EucHkKIApAQCAt
ODUsNyArOTgsOSBAQCBFeGFtcGxlOjoKIENoYW5naW5nIGRpcmVjdG9yeSByZWN1cnNpb24KIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVlv
dSBjYW4gc2V0IHRoZSA6Y29uZnZhbDpgbm9yZWN1cnNlZGlyc2Agb3B0aW9uIGluIGFuIGluaS1m
aWxlLCBmb3IgZXhhbXBsZSB5b3VyIGBgcHl0ZXN0LmluaWBgIGluIHRoZSBwcm9qZWN0IHJvb3Qg
ZGlyZWN0b3J5OjoKK1lvdSBjYW4gc2V0IHRoZSA6Y29uZnZhbDpgbm9yZWN1cnNlZGlyc2Agb3B0
aW9uIGluIGFuIGluaS1maWxlLCBmb3IgZXhhbXBsZSB5b3VyIGBgcHl0ZXN0LmluaWBgIGluIHRo
ZSBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5OgorCisuLiBjb2RlLWJsb2NrOjogaW5pCiAKICAgICAj
IGNvbnRlbnQgb2YgcHl0ZXN0LmluaQogICAgIFtweXRlc3RdCkBAIC0xMDAsMTkgKzExNSwyMyBA
QCBDaGFuZ2luZyBuYW1pbmcgY29udmVudGlvbnMKIAogWW91IGNhbiBjb25maWd1cmUgZGlmZmVy
ZW50IG5hbWluZyBjb252ZW50aW9ucyBieSBzZXR0aW5nCiB0aGUgOmNvbmZ2YWw6YHB5dGhvbl9m
aWxlc2AsIDpjb25mdmFsOmBweXRob25fY2xhc3Nlc2AgYW5kCi06Y29uZnZhbDpgcHl0aG9uX2Z1
bmN0aW9uc2AgY29uZmlndXJhdGlvbiBvcHRpb25zLiAgRXhhbXBsZTo6Cis6Y29uZnZhbDpgcHl0
aG9uX2Z1bmN0aW9uc2AgY29uZmlndXJhdGlvbiBvcHRpb25zLgorSGVyZSBpcyBhbiBleGFtcGxl
OgorCisuLiBjb2RlLWJsb2NrOjogaW5pCiAKICAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQor
ICAgICMgRXhhbXBsZSAxOiBoYXZlIHB5dGVzdCBsb29rIGZvciAiY2hlY2siIGluc3RlYWQgb2Yg
InRlc3QiCiAgICAgIyBjYW4gYWxzbyBiZSBkZWZpbmVkIGluIHRveC5pbmkgb3Igc2V0dXAuY2Zn
IGZpbGUsIGFsdGhvdWdoIHRoZSBzZWN0aW9uCiAgICAgIyBuYW1lIGluIHNldHVwLmNmZyBmaWxl
cyBzaG91bGQgYmUgInRvb2w6cHl0ZXN0IgogICAgIFtweXRlc3RdCi0gICAgcHl0aG9uX2ZpbGVz
PWNoZWNrXyoucHkKLSAgICBweXRob25fY2xhc3Nlcz1DaGVjawotICAgIHB5dGhvbl9mdW5jdGlv
bnM9Kl9jaGVjaworICAgIHB5dGhvbl9maWxlcyA9IGNoZWNrXyoucHkKKyAgICBweXRob25fY2xh
c3NlcyA9IENoZWNrCisgICAgcHl0aG9uX2Z1bmN0aW9ucyA9ICpfY2hlY2sKIAogVGhpcyB3b3Vs
ZCBtYWtlIGBgcHl0ZXN0YGAgbG9vayBmb3IgdGVzdHMgaW4gZmlsZXMgdGhhdCBtYXRjaCB0aGUg
YGBjaGVja18qCiAucHlgYCBnbG9iLXBhdHRlcm4sIGBgQ2hlY2tgYCBwcmVmaXhlcyBpbiBjbGFz
c2VzLCBhbmQgZnVuY3Rpb25zIGFuZCBtZXRob2RzCi10aGF0IG1hdGNoIGBgKl9jaGVja2BgLiAg
Rm9yIGV4YW1wbGUsIGlmIHdlIGhhdmU6OgordGhhdCBtYXRjaCBgYCpfY2hlY2tgYC4gRm9yIGV4
YW1wbGUsIGlmIHdlIGhhdmU6OgogCiAgICAgIyBjb250ZW50IG9mIGNoZWNrX215YXBwLnB5CiAg
ICAgY2xhc3MgQ2hlY2tNeUFwcChvYmplY3QpOgpAQCAtMTIxLDI2ICsxNDAsMzggQEAgdGhhdCBt
YXRjaCBgYCpfY2hlY2tgYC4gIEZvciBleGFtcGxlLCBpZiB3ZSBoYXZlOjoKICAgICAgICAgZGVm
IGNvbXBsZXhfY2hlY2soc2VsZik6CiAgICAgICAgICAgICBwYXNzCiAKLXRoZW4gdGhlIHRlc3Qg
Y29sbGVjdGlvbiBsb29rcyBsaWtlIHRoaXM6OgorVGhlIHRlc3QgY29sbGVjdGlvbiB3b3VsZCBs
b29rIGxpa2UgdGhpczoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3Qg
LS1jb2xsZWN0LW9ubHkKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNz
aW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGlu
dXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkK
KyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54
LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2Nh
Y2hlCiAgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZTogcHl0ZXN0LmluaQog
ICAgIGNvbGxlY3RlZCAyIGl0ZW1zCi0gICAgPE1vZHVsZSAnY2hlY2tfbXlhcHAucHknPgotICAg
ICAgPENsYXNzICdDaGVja015QXBwJz4KLSAgICAgICAgPEluc3RhbmNlICcoKSc+Ci0gICAgICAg
ICAgPEZ1bmN0aW9uICdzaW1wbGVfY2hlY2snPgotICAgICAgICAgIDxGdW5jdGlvbiAnY29tcGxl
eF9jaGVjayc+CisgICAgPE1vZHVsZSBjaGVja19teWFwcC5weT4KKyAgICAgIDxDbGFzcyBDaGVj
a015QXBwPgorICAgICAgICAgIDxGdW5jdGlvbiBzaW1wbGVfY2hlY2s+CisgICAgICAgICAgPEZ1
bmN0aW9uIGNvbXBsZXhfY2hlY2s+CiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0
ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CiAKK1lvdSBj
YW4gY2hlY2sgZm9yIG11bHRpcGxlIGdsb2IgcGF0dGVybnMgYnkgYWRkaW5nIGEgc3BhY2UgYmV0
d2VlbiB0aGUgcGF0dGVybnM6CisKKy4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICMgRXhhbXBs
ZSAyOiBoYXZlIHB5dGVzdCBsb29rIGZvciBmaWxlcyB3aXRoICJ0ZXN0IiBhbmQgImV4YW1wbGUi
CisgICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmksIHRveC5pbmksIG9yIHNldHVwLmNmZyBmaWxl
IChyZXBsYWNlICJweXRlc3QiCisgICAgIyB3aXRoICJ0b29sOnB5dGVzdCIgZm9yIHNldHVwLmNm
ZykKKyAgICBbcHl0ZXN0XQorICAgIHB5dGhvbl9maWxlcyA9IHRlc3RfKi5weSBleGFtcGxlXyou
cHkKKwogLi4gbm90ZTo6CiAKICAgIHRoZSBgYHB5dGhvbl9mdW5jdGlvbnNgYCBhbmQgYGBweXRo
b25fY2xhc3Nlc2BgIG9wdGlvbnMgaGFzIG5vIGVmZmVjdAogICAgZm9yIGBgdW5pdHRlc3QuVGVz
dENhc2VgYCB0ZXN0IGRpc2NvdmVyeSBiZWNhdXNlIHB5dGVzdCBkZWxlZ2F0ZXMKLSAgIGRldGVj
dGlvbiBvZiB0ZXN0IGNhc2UgbWV0aG9kcyB0byB1bml0dGVzdCBjb2RlLgorICAgZGlzY292ZXJ5
IG9mIHRlc3QgY2FzZSBtZXRob2RzIHRvIHVuaXR0ZXN0IGNvZGUuCiAKIEludGVycHJldGluZyBj
bWRsaW5lIGFyZ3VtZW50cyBhcyBQeXRob24gcGFja2FnZXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNDgsMTMgKzE3OSwxNyBAQCBJ
bnRlcnByZXRpbmcgY21kbGluZSBhcmd1bWVudHMgYXMgUHl0aG9uIHBhY2thZ2VzCiBZb3UgY2Fu
IHVzZSB0aGUgYGAtLXB5YXJnc2BgIG9wdGlvbiB0byBtYWtlIGBgcHl0ZXN0YGAgdHJ5CiBpbnRl
cnByZXRpbmcgYXJndW1lbnRzIGFzIHB5dGhvbiBwYWNrYWdlIG5hbWVzLCBkZXJpdmluZwogdGhl
aXIgZmlsZSBzeXN0ZW0gcGF0aCBhbmQgdGhlbiBydW5uaW5nIHRoZSB0ZXN0LiBGb3IKLWV4YW1w
bGUgaWYgeW91IGhhdmUgdW5pdHRlc3QyIGluc3RhbGxlZCB5b3UgY2FuIHR5cGU6OgorZXhhbXBs
ZSBpZiB5b3UgaGF2ZSB1bml0dGVzdDIgaW5zdGFsbGVkIHlvdSBjYW4gdHlwZToKKworLi4gY29k
ZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVzdCAtLXB5YXJncyB1bml0dGVzdDIudGVzdC50ZXN0
X3NraXBwaW5nIC1xCiAKIHdoaWNoIHdvdWxkIHJ1biB0aGUgcmVzcGVjdGl2ZSB0ZXN0IG1vZHVs
ZS4gIExpa2Ugd2l0aAogb3RoZXIgb3B0aW9ucywgdGhyb3VnaCBhbiBpbmktZmlsZSBhbmQgdGhl
IDpjb25mdmFsOmBhZGRvcHRzYCBvcHRpb24geW91Ci1jYW4gbWFrZSB0aGlzIGNoYW5nZSBtb3Jl
IHBlcm1hbmVudGx5OjoKK2NhbiBtYWtlIHRoaXMgY2hhbmdlIG1vcmUgcGVybWFuZW50bHk6CisK
Ky4uIGNvZGUtYmxvY2s6OiBpbmkKIAogICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pCiAgICAg
W3B5dGVzdF0KQEAgLTE2NywxOSArMjAyLDIxIEBAIHRyZWF0IGl0IGFzIGEgZmlsZXN5c3RlbSBw
YXRoLgogRmluZGluZyBvdXQgd2hhdCBpcyBjb2xsZWN0ZWQKIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVlvdSBjYW4gYWx3YXlzIHBlZWsgYXQgdGhl
IGNvbGxlY3Rpb24gdHJlZSB3aXRob3V0IHJ1bm5pbmcgdGVzdHMgbGlrZSB0aGlzOjoKK1lvdSBj
YW4gYWx3YXlzIHBlZWsgYXQgdGhlIGNvbGxlY3Rpb24gdHJlZSB3aXRob3V0IHJ1bm5pbmcgdGVz
dHMgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAuICQgcHl0ZXN0
IC0tY29sbGVjdC1vbmx5IHB5dGhvbmNvbGxlY3Rpb24ucHkKICAgICA9PT09PT09PT09PT09PT09
PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5
LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54Lnks
IHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlU
SE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCiAgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZTogcHl0ZXN0LmluaQogICAgIGNvbGxlY3RlZCAzIGl0ZW1zCi0gICAgPE1vZHVsZSAn
Q1dEL3B5dGhvbmNvbGxlY3Rpb24ucHknPgotICAgICAgPEZ1bmN0aW9uICd0ZXN0X2Z1bmN0aW9u
Jz4KLSAgICAgIDxDbGFzcyAnVGVzdENsYXNzJz4KLSAgICAgICAgPEluc3RhbmNlICcoKSc+Ci0g
ICAgICAgICAgPEZ1bmN0aW9uICd0ZXN0X21ldGhvZCc+Ci0gICAgICAgICAgPEZ1bmN0aW9uICd0
ZXN0X2Fub3RoZXJtZXRob2QnPgorICAgIDxNb2R1bGUgQ1dEL3B5dGhvbmNvbGxlY3Rpb24ucHk+
CisgICAgICA8RnVuY3Rpb24gdGVzdF9mdW5jdGlvbj4KKyAgICAgIDxDbGFzcyBUZXN0Q2xhc3M+
CisgICAgICAgICAgPEZ1bmN0aW9uIHRlc3RfbWV0aG9kPgorICAgICAgICAgIDxGdW5jdGlvbiB0
ZXN0X2Fub3RoZXJtZXRob2Q+CiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0
cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CiAKQEAgLTE5MCw3
ICsyMjcsOSBAQCBDdXN0b21pemluZyB0ZXN0IGNvbGxlY3Rpb24KIAogLi4gcmVnZW5kb2M6d2lw
ZQogCi1Zb3UgY2FuIGVhc2lseSBpbnN0cnVjdCBgYHB5dGVzdGBgIHRvIGRpc2NvdmVyIHRlc3Rz
IGZyb20gZXZlcnkgUHl0aG9uIGZpbGU6OgorWW91IGNhbiBlYXNpbHkgaW5zdHJ1Y3QgYGBweXRl
c3RgYCB0byBkaXNjb3ZlciB0ZXN0cyBmcm9tIGV2ZXJ5IFB5dGhvbiBmaWxlOgorCisuLiBjb2Rl
LWJsb2NrOjogaW5pCiAKICAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQogICAgIFtweXRlc3Rd
CkBAIC0yMjMsNyArMjYyLDkgQEAgYW5kIGEgYGBzZXR1cC5weWBgIGR1bW15IGZpbGUgbGlrZSB0
aGlzOjoKICAgICAwLzAgICMgd2lsbCByYWlzZSBleGNlcHRpb24gaWYgaW1wb3J0ZWQKIAogSWYg
eW91IHJ1biB3aXRoIGEgUHl0aG9uIDIgaW50ZXJwcmV0ZXIgdGhlbiB5b3Ugd2lsbCBmaW5kIHRo
ZSBvbmUgdGVzdCBhbmQgd2lsbAotbGVhdmUgb3V0IHRoZSBgYHNldHVwLnB5YGAgZmlsZTo6Cits
ZWF2ZSBvdXQgdGhlIGBgc2V0dXAucHlgYCBmaWxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0
CiAKICAgICAjJCBweXRlc3QgLS1jb2xsZWN0LW9ubHkKICAgICA9PT09PT0gdGVzdCBzZXNzaW9u
IHN0YXJ0cyA9PT09PT0KQEAgLTIzNiwxMiArMjc3LDI5IEBAIGxlYXZlIG91dCB0aGUgYGBzZXR1
cC5weWBgIGZpbGU6OgogICAgID09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4wNCBzZWNvbmRzID09
PT09PQogCiBJZiB5b3UgcnVuIHdpdGggYSBQeXRob24gMyBpbnRlcnByZXRlciBib3RoIHRoZSBv
bmUgdGVzdCBhbmQgdGhlIGBgc2V0dXAucHlgYAotZmlsZSB3aWxsIGJlIGxlZnQgb3V0OjoKK2Zp
bGUgd2lsbCBiZSBsZWZ0IG91dDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBw
eXRlc3QgLS1jb2xsZWN0LW9ubHkKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVz
dCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZv
cm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3kt
MC54LnkKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwg
cHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0
ZXN0X2NhY2hlCiAgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZTogcHl0ZXN0
LmluaQogICAgIGNvbGxlY3RlZCAwIGl0ZW1zCiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09
PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CisK
K0l0J3MgYWxzbyBwb3NzaWJsZSB0byBpZ25vcmUgZmlsZXMgYmFzZWQgb24gVW5peCBzaGVsbC1z
dHlsZSB3aWxkY2FyZHMgYnkgYWRkaW5nCitwYXR0ZXJucyB0byBgYGNvbGxlY3RfaWdub3JlX2ds
b2JgYC4KKworVGhlIGZvbGxvd2luZyBleGFtcGxlIGBgY29uZnRlc3QucHlgYCBpZ25vcmVzIHRo
ZSBmaWxlIGBgc2V0dXAucHlgYCBhbmQgaW4KK2FkZGl0aW9uIGFsbCBmaWxlcyB0aGF0IGVuZCB3
aXRoIGBgKl9weTIucHlgYCB3aGVuIGV4ZWN1dGVkIHdpdGggYSBQeXRob24gMworaW50ZXJwcmV0
ZXI6OgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CisgICAgaW1wb3J0IHN5cworCisg
ICAgY29sbGVjdF9pZ25vcmUgPSBbInNldHVwLnB5Il0KKyAgICBpZiBzeXMudmVyc2lvbl9pbmZv
WzBdID4gMjoKKyAgICAgICAgY29sbGVjdF9pZ25vcmVfZ2xvYiA9IFsiKl9weTIucHkiXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcmVwb3J0aW5nZGVtby5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9yZXBvcnRpbmdkZW1vLnJzdAppbmRleCA0NjkxYjEy
OGJiODNmOGIzNGY3MzU0ZDIyZjQ0YjBiN2E2NTIwZGQ4Li5kMDBjOTgzNjI2NWM0ODg0MGJiZDVi
NjlkMjczYjVhY2ZjYTk5OWY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9yZXBvcnRpbmdkZW1vLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9yZXBv
cnRpbmdkZW1vLnJzdApAQCAtMSwzOCArMSwzNyBAQAotCiAuLiBfYHRicmVwb3J0ZGVtb2A6CiAK
IERlbW8gb2YgUHl0aG9uIGZhaWx1cmUgcmVwb3J0cyB3aXRoIHB5dGVzdAotPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitIZXJlIGlzIGEgbmljZSBydW4gb2Ygc2V2ZXJh
bCBmYWlsdXJlcyBhbmQgaG93IGBgcHl0ZXN0YGAgcHJlc2VudHMgdGhpbmdzOgogCi1IZXJlIGlz
IGEgbmljZSBydW4gb2Ygc2V2ZXJhbCB0ZW5zIG9mIGZhaWx1cmVzCi1hbmQgaG93IGBgcHl0ZXN0
YGAgcHJlc2VudHMgdGhpbmdzICh1bmZvcnR1bmF0ZWx5Ci1ub3Qgc2hvd2luZyB0aGUgbmljZSBj
b2xvcnMgaGVyZSBpbiB0aGUgSFRNTCB0aGF0IHlvdQotZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdl
IGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgIGFz
c2VydGlvbiAkIHB5dGVzdCBmYWlsdXJlX2RlbW8ucHkKICAgICA9PT09PT09PT09PT09PT09PT09
PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEu
eC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSL2Fzc2VydGlv
biwgaW5pZmlsZToKLSAgICBjb2xsZWN0ZWQgNDIgaXRlbXMKKyAgICBwbGF0Zm9ybSBsaW51eCAt
LSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAg
IGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJF
R0VORE9DX1RNUERJUi9hc3NlcnRpb24KKyAgICBjb2xsZWN0ZWQgNDQgaXRlbXMKIAotICAgIGZh
aWx1cmVfZGVtby5weSBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYg
ICAgICAgICAgIFsxMDAlXQorICAgIGZhaWx1cmVfZGVtby5weSBGRkZGRkZGRkZGRkZGRkZGRkZG
RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiAgICAgICAgIFsxMDAlXQogCiAgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9nZW5lcmF0
aXZlWzBdIF9fX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICBfX19fX19fX19fX19fX19f
X19fX19fX19fX18gdGVzdF9nZW5lcmF0aXZlWzMtNl0gX19fX19fX19fX19fX19fX19fX19fX19f
X19fCiAKICAgICBwYXJhbTEgPSAzLCBwYXJhbTIgPSA2CiAKKyAgICAgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJwYXJhbTEsIHBhcmFtMiIsIFsoMywgNildKQogICAgICAgICBkZWYgdGVz
dF9nZW5lcmF0aXZlKHBhcmFtMSwgcGFyYW0yKToKICAgICA+ICAgICAgIGFzc2VydCBwYXJhbTEg
KiAyIDwgcGFyYW0yCiAgICAgRSAgICAgICBhc3NlcnQgKDMgKiAyKSA8IDYKIAotICAgIGZhaWx1
cmVfZGVtby5weToxOTogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6MjE6IEFz
c2VydGlvbkVycm9yCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fXyBUZXN0RmFpbGluZy50
ZXN0X3NpbXBsZSBfX19fX19fX19fX19fX19fX19fX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWls
dXJlX2RlbW8uVGVzdEZhaWxpbmcgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CiAKICAgICAgICAgZGVm
IHRlc3Rfc2ltcGxlKHNlbGYpOgotCiAgICAgICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAg
ICAgIHJldHVybiA0MgogCkBAIC00NCw3ICs0Myw3IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3
ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgRSAgICAgICAgKyAgd2hlcmUgNDIgPSA8ZnVu
Y3Rpb24gVGVzdEZhaWxpbmcudGVzdF9zaW1wbGUuPGxvY2Fscz4uZiBhdCAweGRlYWRiZWVmPigp
CiAgICAgRSAgICAgICAgKyAgYW5kICAgNDMgPSA8ZnVuY3Rpb24gVGVzdEZhaWxpbmcudGVzdF9z
aW1wbGUuPGxvY2Fscz4uZyBhdCAweGRlYWRiZWVmPigpCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6
Mzc6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjMyOiBBc3NlcnRpb25FcnJv
cgogICAgIF9fX19fX19fX19fX19fX19fX19fIFRlc3RGYWlsaW5nLnRlc3Rfc2ltcGxlX211bHRp
bGluZSBfX19fX19fX19fX19fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRl
c3RGYWlsaW5nIG9iamVjdCBhdCAweGRlYWRiZWVmPgpAQCAtNTIsNyArNTEsNyBAQCBnZXQgb24g
dGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgICAgICBkZWYgdGVz
dF9zaW1wbGVfbXVsdGlsaW5lKHNlbGYpOgogICAgID4gICAgICAgb3RoZXJmdW5jX211bHRpKDQy
LCA2ICogOSkKIAotICAgIGZhaWx1cmVfZGVtby5weTo0MDoKKyAgICBmYWlsdXJlX2RlbW8ucHk6
MzU6CiAgICAgXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfCiAKICAgICBhID0gNDIsIGIgPSA1NApAQCAtNjEs
MTMgKzYwLDEyIEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0
KTo6CiAgICAgPiAgICAgICBhc3NlcnQgYSA9PSBiCiAgICAgRSAgICAgICBhc3NlcnQgNDIgPT0g
NTQKIAotICAgIGZhaWx1cmVfZGVtby5weToxNTogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJl
X2RlbW8ucHk6MTY6IEFzc2VydGlvbkVycm9yCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19f
X19fIFRlc3RGYWlsaW5nLnRlc3Rfbm90IF9fX19fX19fX19fX19fX19fX19fX19fX19fXwogCiAg
ICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdEZhaWxpbmcgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+
CiAKICAgICAgICAgZGVmIHRlc3Rfbm90KHNlbGYpOgotCiAgICAgICAgICAgICBkZWYgZigpOgog
ICAgICAgICAgICAgICAgIHJldHVybiA0MgogCkBAIC03NSw3ICs3Myw3IEBAIGdldCBvbiB0aGUg
dGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgRSAgICAgICBhc3NlcnQg
bm90IDQyCiAgICAgRSAgICAgICAgKyAgd2hlcmUgNDIgPSA8ZnVuY3Rpb24gVGVzdEZhaWxpbmcu
dGVzdF9ub3QuPGxvY2Fscz4uZiBhdCAweGRlYWRiZWVmPigpCiAKLSAgICBmYWlsdXJlX2RlbW8u
cHk6NDc6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjQxOiBBc3NlcnRpb25F
cnJvcgogICAgIF9fX19fX19fX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50
ZXN0X2VxX3RleHQgX19fX19fX19fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1v
LlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTg2
LDcgKzg0LDcgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQp
OjoKICAgICBFICAgICAgICAgLSBzcGFtCiAgICAgRSAgICAgICAgICsgZWdncwogCi0gICAgZmFp
bHVyZV9kZW1vLnB5OjUzOiBBc3NlcnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVtby5weTo0Njog
QXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0
aW9ucy50ZXN0X2VxX3NpbWlsYXJfdGV4dCBfX19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZh
aWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJl
ZWY+CkBAIC05OSw3ICs5Nyw3IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2lu
ZyBvbiB0aGF0KTo6CiAgICAgRSAgICAgICAgICsgZm9vIDIgYmFyCiAgICAgRSAgICAgICAgID8g
ICAgIF4KIAotICAgIGZhaWx1cmVfZGVtby5weTo1NjogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWls
dXJlX2RlbW8ucHk6NDk6IEFzc2VydGlvbkVycm9yCiAgICAgX19fX19fX19fX19fIFRlc3RTcGVj
aWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX211bHRpbGluZV90ZXh0IF9fX19fX19fX19fXwog
CiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9i
amVjdCBhdCAweGRlYWRiZWVmPgpAQCAtMTEyLDcgKzExMCw3IEBAIGdldCBvbiB0aGUgdGVybWlu
YWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgRSAgICAgICAgICsgZWdncwogICAg
IEUgICAgICAgICAgIGJhcgogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjU5OiBBc3NlcnRpb25FcnJv
cgorICAgIGZhaWx1cmVfZGVtby5weTo1MjogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19f
X19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9lcV9sb25nX3RleHQgX19fX19f
X19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBs
YW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CkBAIC0xMjksNyArMTI3LDcgQEAgZ2V0IG9u
IHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAgICAg
KyAxMTExMTExMTExYjIyMjIyMjIyMgogICAgIEUgICAgICAgICA/ICAgICAgICAgICBeCiAKLSAg
ICBmYWlsdXJlX2RlbW8ucHk6NjQ6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5
OjU3OiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5h
dGlvbnMudGVzdF9lcV9sb25nX3RleHRfbXVsdGlsaW5lIF9fX19fX19fX18KIAogICAgIHNlbGYg
PSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhk
ZWFkYmVlZj4KQEAgLTE0OSw3ICsxNDcsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJl
IHdvcmtpbmcgb24gdGhhdCk6OgogICAgIEUKICAgICBFICAgICAgICAgLi4uRnVsbCBvdXRwdXQg
dHJ1bmNhdGVkICg3IGxpbmVzIGhpZGRlbiksIHVzZSAnLXZ2JyB0byBzaG93CiAKLSAgICBmYWls
dXJlX2RlbW8ucHk6Njk6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjYyOiBB
c3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxh
bmF0aW9ucy50ZXN0X2VxX2xpc3QgX19fX19fX19fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFp
bHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVl
Zj4KQEAgLTE2MCw3ICsxNTgsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtp
bmcgb24gdGhhdCk6OgogICAgIEUgICAgICAgICBBdCBpbmRleCAyIGRpZmY6IDIgIT0gMwogICAg
IEUgICAgICAgICBVc2UgLXYgdG8gZ2V0IHRoZSBmdWxsIGRpZmYKIAotICAgIGZhaWx1cmVfZGVt
by5weTo3MjogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6NjU6IEFzc2VydGlv
bkVycm9yCiAgICAgX19fX19fX19fX19fX18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zLnRl
c3RfZXFfbGlzdF9sb25nIF9fX19fX19fX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2Rl
bW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgpAQCAt
MTczLDcgKzE3MSw3IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0
aGF0KTo6CiAgICAgRSAgICAgICAgIEF0IGluZGV4IDEwMCBkaWZmOiAxICE9IDIKICAgICBFICAg
ICAgICAgVXNlIC12IHRvIGdldCB0aGUgZnVsbCBkaWZmCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6
Nzc6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjcwOiBBc3NlcnRpb25FcnJv
cgogICAgIF9fX19fX19fX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0
X2VxX2RpY3QgX19fX19fX19fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRl
c3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTE4NCwx
NCArMTgyLDE0IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0
KTo6CiAgICAgRSAgICAgICAgIE9taXR0aW5nIDEgaWRlbnRpY2FsIGl0ZW1zLCB1c2UgLXZ2IHRv
IHNob3cKICAgICBFICAgICAgICAgRGlmZmVyaW5nIGl0ZW1zOgogICAgIEUgICAgICAgICB7J2In
OiAxfSAhPSB7J2InOiAyfQotICAgIEUgICAgICAgICBMZWZ0IGNvbnRhaW5zIG1vcmUgaXRlbXM6
CisgICAgRSAgICAgICAgIExlZnQgY29udGFpbnMgMSBtb3JlIGl0ZW06CiAgICAgRSAgICAgICAg
IHsnYyc6IDB9Ci0gICAgRSAgICAgICAgIFJpZ2h0IGNvbnRhaW5zIG1vcmUgaXRlbXM6CisgICAg
RSAgICAgICAgIFJpZ2h0IGNvbnRhaW5zIDEgbW9yZSBpdGVtOgogICAgIEUgICAgICAgICB7J2Qn
OiAwfS4uLgogICAgIEUKICAgICBFICAgICAgICAgLi4uRnVsbCBvdXRwdXQgdHJ1bmNhdGVkICgy
IGxpbmVzIGhpZGRlbiksIHVzZSAnLXZ2JyB0byBzaG93CiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6
ODA6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjczOiBBc3NlcnRpb25FcnJv
cgogICAgIF9fX19fX19fX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0
X2VxX3NldCBfX19fX19fX19fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRl
c3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTIwOSw3
ICsyMDcsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6
OgogICAgIEUKICAgICBFICAgICAgICAgLi4uRnVsbCBvdXRwdXQgdHJ1bmNhdGVkICgyIGxpbmVz
IGhpZGRlbiksIHVzZSAnLXZ2JyB0byBzaG93CiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6ODM6IEFz
c2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5Ojc2OiBBc3NlcnRpb25FcnJvcgogICAg
IF9fX19fX19fX19fX18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zLnRlc3RfZXFfbG9uZ2Vy
X2xpc3QgX19fX19fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVj
aWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTIxNywxMCArMjE1
LDEwIEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAg
ICAgICAgIGRlZiB0ZXN0X2VxX2xvbmdlcl9saXN0KHNlbGYpOgogICAgID4gICAgICAgYXNzZXJ0
IFsxLCAyXSA9PSBbMSwgMiwgM10KICAgICBFICAgICAgIGFzc2VydCBbMSwgMl0gPT0gWzEsIDIs
IDNdCi0gICAgRSAgICAgICAgIFJpZ2h0IGNvbnRhaW5zIG1vcmUgaXRlbXMsIGZpcnN0IGV4dHJh
IGl0ZW06IDMKKyAgICBFICAgICAgICAgUmlnaHQgY29udGFpbnMgb25lIG1vcmUgaXRlbTogMwog
ICAgIEUgICAgICAgICBVc2UgLXYgdG8gZ2V0IHRoZSBmdWxsIGRpZmYKIAotICAgIGZhaWx1cmVf
ZGVtby5weTo4NjogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6Nzk6IEFzc2Vy
dGlvbkVycm9yCiAgICAgX19fX19fX19fX19fX19fX18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRp
b25zLnRlc3RfaW5fbGlzdCBfX19fX19fX19fX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJl
X2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgpA
QCAtMjI5LDcgKzIyNyw3IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBv
biB0aGF0KTo6CiAgICAgPiAgICAgICBhc3NlcnQgMSBpbiBbMCwgMiwgMywgNCwgNV0KICAgICBF
ICAgICAgIGFzc2VydCAxIGluIFswLCAyLCAzLCA0LCA1XQogCi0gICAgZmFpbHVyZV9kZW1vLnB5
Ojg5OiBBc3NlcnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVtby5weTo4MjogQXNzZXJ0aW9uRXJy
b3IKICAgICBfX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X25vdF9p
bl90ZXh0X211bHRpbGluZSBfX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5U
ZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CkBAIC0yNDgs
NyArMjQ2LDcgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQp
OjoKICAgICBFCiAgICAgRSAgICAgICAgIC4uLkZ1bGwgb3V0cHV0IHRydW5jYXRlZCAoMiBsaW5l
cyBoaWRkZW4pLCB1c2UgJy12dicgdG8gc2hvdwogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjkzOiBB
c3NlcnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVtby5weTo4NjogQXNzZXJ0aW9uRXJyb3IKICAg
ICBfX19fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9ub3RfaW5fdGV4
dF9zaW5nbGUgX19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3Bl
Y2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CkBAIC0yNjEsNyArMjU5
LDcgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAg
ICBFICAgICAgICAgICBzaW5nbGUgZm9vIGxpbmUKICAgICBFICAgICAgICAgPyAgICAgICAgKysr
CiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6OTc6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9k
ZW1vLnB5OjkwOiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRF
eHBsYW5hdGlvbnMudGVzdF9ub3RfaW5fdGV4dF9zaW5nbGVfbG9uZyBfX19fX19fX18KIAogICAg
IHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3Qg
YXQgMHhkZWFkYmVlZj4KQEAgLTI3NCw3ICsyNzIsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0g
d2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgIEUgICAgICAgICAgIGhlYWQgaGVhZCBmb28g
dGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRh
aWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsCiAgICAgRSAgICAgICAg
ID8gICAgICAgICAgICsrKwogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjEwMTogQXNzZXJ0aW9uRXJy
b3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6OTQ6IEFzc2VydGlvbkVycm9yCiAgICAgX19fX19fIFRl
c3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X25vdF9pbl90ZXh0X3NpbmdsZV9sb25nX3Rl
cm0gX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhw
bGFuYXRpb25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgpAQCAtMjg3LDExICsyODUsNTIgQEAgZ2V0
IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAg
ICAgICBoZWFkIGhlYWQgZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm
ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZnRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWls
IHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0
YWlsIHRhaWwgdGFpbAogICAgIEUgICAgICAgICA/ICAgICAgICAgICArKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAK
LSAgICBmYWlsdXJlX2RlbW8ucHk6MTA1OiBBc3NlcnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVt
by5weTo5ODogQXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX19fX19fX19fXyBUZXN0U3BlY2lhbGlz
ZWRFeHBsYW5hdGlvbnMudGVzdF9lcV9kYXRhY2xhc3MgX19fX19fX19fX19fX19fCisKKyAgICBz
ZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+CisKKyAgICAgICAgZGVmIHRlc3RfZXFfZGF0YWNsYXNzKHNlbGYpOgorICAg
ICAgICAgICAgZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZGF0YWNsYXNzCisKKyAgICAgICAgICAg
IEBkYXRhY2xhc3MKKyAgICAgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAgICAg
ICAgIGE6IGludAorICAgICAgICAgICAgICAgIGI6IHN0cgorCisgICAgICAgICAgICBsZWZ0ID0g
Rm9vKDEsICJiIikKKyAgICAgICAgICAgIHJpZ2h0ID0gRm9vKDEsICJjIikKKyAgICA+ICAgICAg
IGFzc2VydCBsZWZ0ID09IHJpZ2h0CisgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0
IFRlc3RTcGVjaWFsaXMuLi5vbyhhPTEsIGI9J2InKSA9PSBUZXN0U3BlY2lhbGlzZS4uLm9vKGE9
MSwgYj0nYycpCisgICAgRSAgICAgICAgIE9taXR0aW5nIDEgaWRlbnRpY2FsIGl0ZW1zLCB1c2Ug
LXZ2IHRvIHNob3cKKyAgICBFICAgICAgICAgRGlmZmVyaW5nIGF0dHJpYnV0ZXM6CisgICAgRSAg
ICAgICAgIGI6ICdiJyAhPSAnYycKKworICAgIGZhaWx1cmVfZGVtby5weToxMTA6IEFzc2VydGlv
bkVycm9yCisgICAgX19fX19fX19fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMu
dGVzdF9lcV9hdHRycyBfX19fX19fX19fX19fX19fXworCisgICAgc2VsZiA9IDxmYWlsdXJlX2Rl
bW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgorCisg
ICAgICAgIGRlZiB0ZXN0X2VxX2F0dHJzKHNlbGYpOgorICAgICAgICAgICAgaW1wb3J0IGF0dHIK
KworICAgICAgICAgICAgQGF0dHIucworICAgICAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6Cisg
ICAgICAgICAgICAgICAgYSA9IGF0dHIuaWIoKQorICAgICAgICAgICAgICAgIGIgPSBhdHRyLmli
KCkKKworICAgICAgICAgICAgbGVmdCA9IEZvbygxLCAiYiIpCisgICAgICAgICAgICByaWdodCA9
IEZvbygxLCAiYyIpCisgICAgPiAgICAgICBhc3NlcnQgbGVmdCA9PSByaWdodAorICAgIEUgICAg
ICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCBGb28oYT0xLCBiPSdiJykgPT0gRm9vKGE9MSwgYj0n
YycpCisgICAgRSAgICAgICAgIE9taXR0aW5nIDEgaWRlbnRpY2FsIGl0ZW1zLCB1c2UgLXZ2IHRv
IHNob3cKKyAgICBFICAgICAgICAgRGlmZmVyaW5nIGF0dHJpYnV0ZXM6CisgICAgRSAgICAgICAg
IGI6ICdiJyAhPSAnYycKKworICAgIGZhaWx1cmVfZGVtby5weToxMjI6IEFzc2VydGlvbkVycm9y
CiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfYXR0cmlidXRlIF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwogCiAgICAgICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZSgp
OgotCiAgICAgICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKICAgICAgICAgICAgICAgICBiID0g
MQogCkBAIC0zMDAsMTEgKzMzOSwxMCBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdv
cmtpbmcgb24gdGhhdCk6OgogICAgIEUgICAgICAgYXNzZXJ0IDEgPT0gMgogICAgIEUgICAgICAg
ICsgIHdoZXJlIDEgPSA8ZmFpbHVyZV9kZW1vLnRlc3RfYXR0cmlidXRlLjxsb2NhbHM+LkZvbyBv
YmplY3QgYXQgMHhkZWFkYmVlZj4uYgogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjExNDogQXNzZXJ0
aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTMwOiBBc3NlcnRpb25FcnJvcgogICAgIF9f
X19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9hdHRyaWJ1dGVfaW5zdGFuY2UgX19fX19fX19f
X19fX19fX19fX19fX19fX18KIAogICAgICAgICBkZWYgdGVzdF9hdHRyaWJ1dGVfaW5zdGFuY2Uo
KToKLQogICAgICAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgYiA9
IDEKIApAQCAtMzEzLDEzICszNTEsMTEgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3
b3JraW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAgICArICB3aGVyZSAxID0gPGZhaWx1cmVfZGVt
by50ZXN0X2F0dHJpYnV0ZV9pbnN0YW5jZS48bG9jYWxzPi5Gb28gb2JqZWN0IGF0IDB4ZGVhZGJl
ZWY+LmIKICAgICBFICAgICAgICArICAgIHdoZXJlIDxmYWlsdXJlX2RlbW8udGVzdF9hdHRyaWJ1
dGVfaW5zdGFuY2UuPGxvY2Fscz4uRm9vIG9iamVjdCBhdCAweGRlYWRiZWVmPiA9IDxjbGFzcyAn
ZmFpbHVyZV9kZW1vLnRlc3RfYXR0cmlidXRlX2luc3RhbmNlLjxsb2NhbHM+LkZvbyc+KCkKIAot
ICAgIGZhaWx1cmVfZGVtby5weToxMjI6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1v
LnB5OjEzNzogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fXyB0
ZXN0X2F0dHJpYnV0ZV9mYWlsdXJlIF9fX19fX19fX19fX19fX19fX19fX19fX19fCiAKICAgICAg
ICAgZGVmIHRlc3RfYXR0cmlidXRlX2ZhaWx1cmUoKToKLQogICAgICAgICAgICAgY2xhc3MgRm9v
KG9iamVjdCk6Ci0KICAgICAgICAgICAgICAgICBkZWYgX2dldF9iKHNlbGYpOgogICAgICAgICAg
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkZhaWxlZCB0byBnZXQgYXR0cmliIikKIApAQCAt
MzI4LDcgKzM2NCw3IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0
aGF0KTo6CiAgICAgICAgICAgICBpID0gRm9vKCkKICAgICA+ICAgICAgIGFzc2VydCBpLmIgPT0g
MgogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjEzNToKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTQ4Ogog
ICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8udGVzdF9h
dHRyaWJ1dGVfZmFpbHVyZS48bG9jYWxzPi5Gb28gb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CkBAIC0z
MzcsMTEgKzM3MywxMCBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24g
dGhhdCk6OgogICAgID4gICAgICAgcmFpc2UgRXhjZXB0aW9uKCJGYWlsZWQgdG8gZ2V0IGF0dHJp
YiIpCiAgICAgRSAgICAgICBFeGNlcHRpb246IEZhaWxlZCB0byBnZXQgYXR0cmliCiAKLSAgICBm
YWlsdXJlX2RlbW8ucHk6MTMwOiBFeGNlcHRpb24KKyAgICBmYWlsdXJlX2RlbW8ucHk6MTQzOiBF
eGNlcHRpb24KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfYXR0cmlidXRlX211
bHRpcGxlIF9fX19fX19fX19fX19fX19fX19fX19fX19fCiAKICAgICAgICAgZGVmIHRlc3RfYXR0
cmlidXRlX211bHRpcGxlKCk6Ci0KICAgICAgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgogICAg
ICAgICAgICAgICAgIGIgPSAxCiAKQEAgLTM1NSwzMSArMzkwLDI2IEBAIGdldCBvbiB0aGUgdGVy
bWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgRSAgICAgICAgKyAgYW5kICAg
MiA9IDxmYWlsdXJlX2RlbW8udGVzdF9hdHRyaWJ1dGVfbXVsdGlwbGUuPGxvY2Fscz4uQmFyIG9i
amVjdCBhdCAweGRlYWRiZWVmPi5iCiAgICAgRSAgICAgICAgKyAgICB3aGVyZSA8ZmFpbHVyZV9k
ZW1vLnRlc3RfYXR0cmlidXRlX211bHRpcGxlLjxsb2NhbHM+LkJhciBvYmplY3QgYXQgMHhkZWFk
YmVlZj4gPSA8Y2xhc3MgJ2ZhaWx1cmVfZGVtby50ZXN0X2F0dHJpYnV0ZV9tdWx0aXBsZS48bG9j
YWxzPi5CYXInPigpCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MTQ2OiBBc3NlcnRpb25FcnJvcgor
ICAgIGZhaWx1cmVfZGVtby5weToxNTg6IEFzc2VydGlvbkVycm9yCiAgICAgX19fX19fX19fX19f
X19fX19fX19fX19fX18gVGVzdFJhaXNlcy50ZXN0X3JhaXNlcyBfX19fX19fX19fX19fX19fX19f
X19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFJhaXNlcyBvYmplY3QgYXQg
MHhkZWFkYmVlZj4KIAogICAgICAgICBkZWYgdGVzdF9yYWlzZXMoc2VsZik6Ci0gICAgICAgICAg
ICBzID0gInF3ZSIgICMgTk9RQQotICAgID4gICAgICAgcmFpc2VzKFR5cGVFcnJvciwgImludChz
KSIpCi0KLSAgICBmYWlsdXJlX2RlbW8ucHk6MTU3OgotICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXwot
Ci0gICAgPiAgIGludChzKQotICAgIEUgICBWYWx1ZUVycm9yOiBpbnZhbGlkIGxpdGVyYWwgZm9y
IGludCgpIHdpdGggYmFzZSAxMDogJ3F3ZScKKyAgICAgICAgICAgIHMgPSAicXdlIgorICAgID4g
ICAgICAgcmFpc2VzKFR5cGVFcnJvciwgaW50LCBzKQorICAgIEUgICAgICAgVmFsdWVFcnJvcjog
aW52YWxpZCBsaXRlcmFsIGZvciBpbnQoKSB3aXRoIGJhc2UgMTA6ICdxd2UnCiAKLSAgICA8MC1j
b2RlZ2VuICRQWVRIT05fUFJFRklYL2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdlcy9fcHl0ZXN0
L3B5dGhvbl9hcGkucHk6NjM0PjoxOiBWYWx1ZUVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjE2
ODogVmFsdWVFcnJvcgogICAgIF9fX19fX19fX19fX19fX19fX19fX18gVGVzdFJhaXNlcy50ZXN0
X3JhaXNlc19kb2VzbnQgX19fX19fX19fX19fX19fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFp
bHVyZV9kZW1vLlRlc3RSYWlzZXMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CiAKICAgICAgICAgZGVm
IHRlc3RfcmFpc2VzX2RvZXNudChzZWxmKToKLSAgICA+ICAgICAgIHJhaXNlcyhJT0Vycm9yLCAi
aW50KCczJykiKQorICAgID4gICAgICAgcmFpc2VzKElPRXJyb3IsIGludCwgIjMiKQogICAgIEUg
ICAgICAgRmFpbGVkOiBESUQgTk9UIFJBSVNFIDxjbGFzcyAnT1NFcnJvcic+CiAKLSAgICBmYWls
dXJlX2RlbW8ucHk6MTYwOiBGYWlsZWQKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTcxOiBGYWlsZWQK
ICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fXyBUZXN0UmFpc2VzLnRlc3RfcmFpc2UgX19f
X19fX19fX19fX19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0
UmFpc2VzIG9iamVjdCBhdCAweGRlYWRiZWVmPgpAQCAtMzg4LDcgKzQxOCw3IEBAIGdldCBvbiB0
aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgPiAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCJkZW1vIGVycm9yIikKICAgICBFICAgICAgIFZhbHVlRXJyb3I6IGRlbW8g
ZXJyb3IKIAotICAgIGZhaWx1cmVfZGVtby5weToxNjM6IFZhbHVlRXJyb3IKKyAgICBmYWlsdXJl
X2RlbW8ucHk6MTc0OiBWYWx1ZUVycm9yCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fIFRl
c3RSYWlzZXMudGVzdF90dXBsZWVycm9yIF9fX19fX19fX19fX19fX19fX19fX19fXwogCiAgICAg
c2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFJhaXNlcyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAg
LTM5Nyw3ICs0MjcsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24g
dGhhdCk6OgogICAgID4gICAgICAgYSwgYiA9IFsxXSAgIyBOT1FBCiAgICAgRSAgICAgICBWYWx1
ZUVycm9yOiBub3QgZW5vdWdoIHZhbHVlcyB0byB1bnBhY2sgKGV4cGVjdGVkIDIsIGdvdCAxKQog
Ci0gICAgZmFpbHVyZV9kZW1vLnB5OjE2NjogVmFsdWVFcnJvcgorICAgIGZhaWx1cmVfZGVtby5w
eToxNzc6IFZhbHVlRXJyb3IKICAgICBfX19fX18gVGVzdFJhaXNlcy50ZXN0X3JlaW50ZXJwcmV0
X2ZhaWxzX3dpdGhfcHJpbnRfZm9yX3RoZV9mdW5fb2ZfaXQgX19fX19fCiAKICAgICBzZWxmID0g
PGZhaWx1cmVfZGVtby5UZXN0UmFpc2VzIG9iamVjdCBhdCAweGRlYWRiZWVmPgpAQCAtNDA2LDkg
KzQzNiw5IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6
CiAgICAgICAgICAgICBpdGVtcyA9IFsxLCAyLCAzXQogICAgICAgICAgICAgcHJpbnQoIml0ZW1z
IGlzICVyIiAlIGl0ZW1zKQogICAgID4gICAgICAgYSwgYiA9IGl0ZW1zLnBvcCgpCi0gICAgRSAg
ICAgICBUeXBlRXJyb3I6ICdpbnQnIG9iamVjdCBpcyBub3QgaXRlcmFibGUKKyAgICBFICAgICAg
IFR5cGVFcnJvcjogY2Fubm90IHVucGFjayBub24taXRlcmFibGUgaW50IG9iamVjdAogCi0gICAg
ZmFpbHVyZV9kZW1vLnB5OjE3MTogVHlwZUVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjE4Mjog
VHlwZUVycm9yCiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhcHR1cmVkIHN0ZG91
dCBjYWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIGl0ZW1zIGlzIFsxLCAyLCAz
XQogICAgIF9fX19fX19fX19fX19fX19fX19fX19fXyBUZXN0UmFpc2VzLnRlc3Rfc29tZV9lcnJv
ciBfX19fX19fX19fX19fX19fX19fX19fX18KQEAgLTQxOSw3ICs0NDksNyBAQCBnZXQgb24gdGhl
IHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgID4gICAgICAgaWYgbmFt
ZW5vdGV4aTogICMgTk9RQQogICAgIEUgICAgICAgTmFtZUVycm9yOiBuYW1lICduYW1lbm90ZXhp
JyBpcyBub3QgZGVmaW5lZAogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjE3NDogTmFtZUVycm9yCisg
ICAgZmFpbHVyZV9kZW1vLnB5OjE4NTogTmFtZUVycm9yCiAgICAgX19fX19fX19fX19fX19fX19f
X18gdGVzdF9keW5hbWljX2NvbXBpbGVfc2hvd3NfbmljZWx5IF9fX19fX19fX19fX19fX19fX19f
XwogCiAgICAgICAgIGRlZiB0ZXN0X2R5bmFtaWNfY29tcGlsZV9zaG93c19uaWNlbHkoKToKQEAg
LTQzMCwyNCArNDYwLDIzIEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBv
biB0aGF0KTo6CiAgICAgICAgICAgICBuYW1lID0gImFiYy0xMjMiCiAgICAgICAgICAgICBtb2R1
bGUgPSBpbXAubmV3X21vZHVsZShuYW1lKQogICAgICAgICAgICAgY29kZSA9IF9weXRlc3QuX2Nv
ZGUuY29tcGlsZShzcmMsIG5hbWUsICJleGVjIikKLSAgICAgICAgICAgIHB5LmJ1aWx0aW4uZXhl
Y18oY29kZSwgbW9kdWxlLl9fZGljdF9fKQorICAgICAgICAgICAgZXhlYyhjb2RlLCBtb2R1bGUu
X19kaWN0X18pCiAgICAgICAgICAgICBzeXMubW9kdWxlc1tuYW1lXSA9IG1vZHVsZQogICAgID4g
ICAgICAgbW9kdWxlLmZvbygpCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MTkyOgorICAgIGZhaWx1
cmVfZGVtby5weToyMDM6CiAgICAgXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfCiAKICAgICAgICAgZGVmIGZv
bygpOgogICAgID4gICAgYXNzZXJ0IDEgPT0gMAogICAgIEUgICAgQXNzZXJ0aW9uRXJyb3IKIAot
ICAgIDwyLWNvZGVnZW4gJ2FiYy0xMjMnICRSRUdFTkRPQ19UTVBESVIvYXNzZXJ0aW9uL2ZhaWx1
cmVfZGVtby5weToxODk+OjI6IEFzc2VydGlvbkVycm9yCisgICAgPDAtY29kZWdlbiAnYWJjLTEy
MycgJFJFR0VORE9DX1RNUERJUi9hc3NlcnRpb24vZmFpbHVyZV9kZW1vLnB5OjIwMD46MjogQXNz
ZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0
X2NvbXBsZXhfZXJyb3IgX19fX19fX19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1
cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KIAogICAgICAgICBk
ZWYgdGVzdF9jb21wbGV4X2Vycm9yKHNlbGYpOgotCiAgICAgICAgICAgICBkZWYgZigpOgogICAg
ICAgICAgICAgICAgIHJldHVybiA0NAogCkBAIC00NTYsOSArNDg1LDkgQEAgZ2V0IG9uIHRoZSB0
ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKIAogICAgID4gICAgICAgc29tZWZ1
bmMoZigpLCBnKCkpCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MjA1OgorICAgIGZhaWx1cmVfZGVt
by5weToyMTQ6CiAgICAgXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfCi0gICAgZmFpbHVyZV9kZW1vLnB5OjEx
OiBpbiBzb21lZnVuYworICAgIGZhaWx1cmVfZGVtby5weToxMjogaW4gc29tZWZ1bmMKICAgICAg
ICAgb3RoZXJmdW5jKHgsIHkpCiAgICAgXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfCiAKQEAgLTQ2OCw3ICs0
OTcsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6Ogog
ICAgID4gICAgICAgYXNzZXJ0IGEgPT0gYgogICAgIEUgICAgICAgYXNzZXJ0IDQ0ID09IDQzCiAK
LSAgICBmYWlsdXJlX2RlbW8ucHk6NzogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8u
cHk6ODogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fX19fX19fX19fIFRlc3RNb3JlRXJy
b3JzLnRlc3RfejFfdW5wYWNrX2Vycm9yIF9fX19fX19fX19fX19fX19fX19fCiAKICAgICBzZWxm
ID0gPGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAg
LTQ3OCw3ICs1MDcsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24g
dGhhdCk6OgogICAgID4gICAgICAgYSwgYiA9IGl0ZW1zCiAgICAgRSAgICAgICBWYWx1ZUVycm9y
OiBub3QgZW5vdWdoIHZhbHVlcyB0byB1bnBhY2sgKGV4cGVjdGVkIDIsIGdvdCAwKQogCi0gICAg
ZmFpbHVyZV9kZW1vLnB5OjIwOTogVmFsdWVFcnJvcgorICAgIGZhaWx1cmVfZGVtby5weToyMTg6
IFZhbHVlRXJyb3IKICAgICBfX19fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0
X3oyX3R5cGVfZXJyb3IgX19fX19fX19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1
cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTQ4Niw5ICs1
MTUsOSBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6Ogog
ICAgICAgICBkZWYgdGVzdF96Ml90eXBlX2Vycm9yKHNlbGYpOgogICAgICAgICAgICAgaXRlbXMg
PSAzCiAgICAgPiAgICAgICBhLCBiID0gaXRlbXMKLSAgICBFICAgICAgIFR5cGVFcnJvcjogJ2lu
dCcgb2JqZWN0IGlzIG5vdCBpdGVyYWJsZQorICAgIEUgICAgICAgVHlwZUVycm9yOiBjYW5ub3Qg
dW5wYWNrIG5vbi1pdGVyYWJsZSBpbnQgb2JqZWN0CiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MjEz
OiBUeXBlRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6MjIyOiBUeXBlRXJyb3IKICAgICBfX19f
X19fX19fX19fX19fX19fX19fIFRlc3RNb3JlRXJyb3JzLnRlc3Rfc3RhcnRzd2l0aCBfX19fX19f
X19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9y
cyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTUwMSwxMyArNTMwLDEyIEBAIGdldCBvbiB0aGUg
dGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgRSAgICAgICAgKyAgd2hl
cmUgRmFsc2UgPSA8YnVpbHQtaW4gbWV0aG9kIHN0YXJ0c3dpdGggb2Ygc3RyIG9iamVjdCBhdCAw
eGRlYWRiZWVmPignNDU2JykKICAgICBFICAgICAgICArICAgIHdoZXJlIDxidWlsdC1pbiBtZXRo
b2Qgc3RhcnRzd2l0aCBvZiBzdHIgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+ID0gJzEyMycuc3RhcnRz
d2l0aAogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjIxODogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWls
dXJlX2RlbW8ucHk6MjI3OiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fXyBU
ZXN0TW9yZUVycm9ycy50ZXN0X3N0YXJ0c3dpdGhfbmVzdGVkIF9fX19fX19fX19fX19fX19fX18K
IAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3JlRXJyb3JzIG9iamVjdCBhdCAweGRl
YWRiZWVmPgogCiAgICAgICAgIGRlZiB0ZXN0X3N0YXJ0c3dpdGhfbmVzdGVkKHNlbGYpOgotCiAg
ICAgICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAgICAgIHJldHVybiAiMTIzIgogCkBAIC01
MjEsNyArNTQ5LDcgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRo
YXQpOjoKICAgICBFICAgICAgICArICAgICAgd2hlcmUgJzEyMycgPSA8ZnVuY3Rpb24gVGVzdE1v
cmVFcnJvcnMudGVzdF9zdGFydHN3aXRoX25lc3RlZC48bG9jYWxzPi5mIGF0IDB4ZGVhZGJlZWY+
KCkKICAgICBFICAgICAgICArICAgIGFuZCAgICc0NTYnID0gPGZ1bmN0aW9uIFRlc3RNb3JlRXJy
b3JzLnRlc3Rfc3RhcnRzd2l0aF9uZXN0ZWQuPGxvY2Fscz4uZyBhdCAweGRlYWRiZWVmPigpCiAK
LSAgICBmYWlsdXJlX2RlbW8ucHk6MjI4OiBBc3NlcnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVt
by5weToyMzY6IEFzc2VydGlvbkVycm9yCiAgICAgX19fX19fX19fX19fX19fX19fX19fIFRlc3RN
b3JlRXJyb3JzLnRlc3RfZ2xvYmFsX2Z1bmMgX19fX19fX19fX19fX19fX19fX19fXwogCiAgICAg
c2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdE1vcmVFcnJvcnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+
CkBAIC01MzIsNyArNTYwLDcgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5n
IG9uIHRoYXQpOjoKICAgICBFICAgICAgICArICB3aGVyZSBGYWxzZSA9IGlzaW5zdGFuY2UoNDMs
IGZsb2F0KQogICAgIEUgICAgICAgICsgICAgd2hlcmUgNDMgPSBnbG9iZig0MikKIAotICAgIGZh
aWx1cmVfZGVtby5weToyMzE6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjIz
OTogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVy
cm9ycy50ZXN0X2luc3RhbmNlIF9fX19fX19fX19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0g
PGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTU0
Myw3ICs1NzEsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhh
dCk6OgogICAgIEUgICAgICAgYXNzZXJ0IDQyICE9IDQyCiAgICAgRSAgICAgICAgKyAgd2hlcmUg
NDIgPSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3JlRXJyb3JzIG9iamVjdCBhdCAweGRlYWRiZWVmPi54
CiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MjM1OiBBc3NlcnRpb25FcnJvcgorICAgIGZhaWx1cmVf
ZGVtby5weToyNDM6IEFzc2VydGlvbkVycm9yCiAgICAgX19fX19fX19fX19fX19fX19fX19fX18g
VGVzdE1vcmVFcnJvcnMudGVzdF9jb21wYXJlIF9fX19fX19fX19fX19fX19fX19fX19fXwogCiAg
ICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdE1vcmVFcnJvcnMgb2JqZWN0IGF0IDB4ZGVhZGJl
ZWY+CkBAIC01NTMsNyArNTgxLDcgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3Jr
aW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAgIGFzc2VydCAxMSA8IDUKICAgICBFICAgICAgICAr
ICB3aGVyZSAxMSA9IGdsb2JmKDEwKQogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjIzODogQXNzZXJ0
aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6MjQ2OiBBc3NlcnRpb25FcnJvcgogICAgIF9f
X19fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X3RyeV9maW5hbGx5IF9fX19f
X19fX19fX19fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3JlRXJy
b3JzIG9iamVjdCBhdCAweGRlYWRiZWVmPgpAQCAtNTY0LDEzICs1OTIsMTIgQEAgZ2V0IG9uIHRo
ZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAgICA+ICAgICAgICAgICBh
c3NlcnQgeCA9PSAwCiAgICAgRSAgICAgICAgICAgYXNzZXJ0IDEgPT0gMAogCi0gICAgZmFpbHVy
ZV9kZW1vLnB5OjI0MzogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6MjUxOiBB
c3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fX18gVGVzdEN1c3RvbUFzc2VydE1z
Zy50ZXN0X3NpbmdsZV9saW5lIF9fX19fX19fX19fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFp
bHVyZV9kZW1vLlRlc3RDdXN0b21Bc3NlcnRNc2cgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CiAKICAg
ICAgICAgZGVmIHRlc3Rfc2luZ2xlX2xpbmUoc2VsZik6Ci0KICAgICAgICAgICAgIGNsYXNzIEEo
b2JqZWN0KToKICAgICAgICAgICAgICAgICBhID0gMQogCkBAIC01ODAsMzMgKzYwNywzMSBAQCBn
ZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgIEUgICAg
ICAgYXNzZXJ0IDEgPT0gMgogICAgIEUgICAgICAgICsgIHdoZXJlIDEgPSA8Y2xhc3MgJ2ZhaWx1
cmVfZGVtby5UZXN0Q3VzdG9tQXNzZXJ0TXNnLnRlc3Rfc2luZ2xlX2xpbmUuPGxvY2Fscz4uQSc+
LmEKIAotICAgIGZhaWx1cmVfZGVtby5weToyNTY6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVy
ZV9kZW1vLnB5OjI2MjogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fX19fX19fX19fXyBU
ZXN0Q3VzdG9tQXNzZXJ0TXNnLnRlc3RfbXVsdGlsaW5lIF9fX19fX19fX19fX19fX19fX19fCiAK
ICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0Q3VzdG9tQXNzZXJ0TXNnIG9iamVjdCBhdCAw
eGRlYWRiZWVmPgogCiAgICAgICAgIGRlZiB0ZXN0X211bHRpbGluZShzZWxmKToKLQogICAgICAg
ICAgICAgY2xhc3MgQShvYmplY3QpOgogICAgICAgICAgICAgICAgIGEgPSAxCiAKICAgICAgICAg
ICAgIGIgPSAyCiAgICAgPiAgICAgICBhc3NlcnQgKAogICAgICAgICAgICAgICAgIEEuYSA9PSBi
Ci0gICAgICAgICAgICApLCAiQS5hIGFwcGVhcnMgbm90IHRvIGJlIGJcbiIgIm9yIGRvZXMgbm90
IGFwcGVhciB0byBiZSBiXG5vbmUgb2YgdGhvc2UiCisgICAgICAgICAgICApLCAiQS5hIGFwcGVh
cnMgbm90IHRvIGJlIGJcbm9yIGRvZXMgbm90IGFwcGVhciB0byBiZSBiXG5vbmUgb2YgdGhvc2Ui
CiAgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogQS5hIGFwcGVhcnMgbm90IHRvIGJlIGIKICAg
ICBFICAgICAgICAgb3IgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGIKICAgICBFICAgICAgICAgb25l
IG9mIHRob3NlCiAgICAgRSAgICAgICBhc3NlcnQgMSA9PSAyCiAgICAgRSAgICAgICAgKyAgd2hl
cmUgMSA9IDxjbGFzcyAnZmFpbHVyZV9kZW1vLlRlc3RDdXN0b21Bc3NlcnRNc2cudGVzdF9tdWx0
aWxpbmUuPGxvY2Fscz4uQSc+LmEKIAotICAgIGZhaWx1cmVfZGVtby5weToyNjQ6IEFzc2VydGlv
bkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjI2OTogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19f
X19fX19fX19fX19fX19fIFRlc3RDdXN0b21Bc3NlcnRNc2cudGVzdF9jdXN0b21fcmVwciBfX19f
X19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0Q3VzdG9tQXNz
ZXJ0TXNnIG9iamVjdCBhdCAweGRlYWRiZWVmPgogCiAgICAgICAgIGRlZiB0ZXN0X2N1c3RvbV9y
ZXByKHNlbGYpOgotCiAgICAgICAgICAgICBjbGFzcyBKU09OKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgYSA9IDEKIApAQCAtNjIzLDExICs2NDgsNSBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0g
d2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgIEUgICAgICAgYXNzZXJ0IDEgPT0gMgogICAg
IEUgICAgICAgICsgIHdoZXJlIDEgPSBUaGlzIGlzIEpTT05cbntcbiAgJ2Zvbyc6ICdiYXInXG59
LmEKIAotICAgIGZhaWx1cmVfZGVtby5weToyNzg6IEFzc2VydGlvbkVycm9yCi0gICAgPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gd2FybmluZ3Mgc3VtbWFyeSA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotICAgIDx1bmRldGVybWluZWQgbG9jYXRpb24+Ci0gICAgICBNZXRhZnVu
Yy5hZGRjYWxsIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5
dGVzdCA0LjAuCi0gICAgICBQbGVhc2UgdXNlIE1ldGFmdW5jLnBhcmFtZXRyaXplIGluc3RlYWQu
Ci0KLSAgICAtLSBEb2NzOiBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdz
Lmh0bWwKLSAgICA9PT09PT09PT09PT09PT09PT0gNDIgZmFpbGVkLCAxIHdhcm5pbmdzIGluIDAu
MTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09CisgICAgZmFpbHVyZV9kZW1vLnB5OjI4Mjog
QXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT0gNDQgZmFpbGVkIGlu
IDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zaW1wbGUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvc2ltcGxlLnJzdAppbmRleCAxODA2MzdhZTk5NGJmMTEwZDExOWY0NTBmMjIxODE5NDRh
OWVmYjUwLi4xZGVlOTgxYmU3NzhjNzZiZTM3NDUyNzBjY2U0ODJhZGRkZDU5NTRmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zaW1wbGUucnN0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL3NpbXBsZS5yc3QKQEAgLTQzLDcgKzQzLDkgQEAgcHJvdmlkZSB0
aGUgYGBjbWRvcHRgYCB0aHJvdWdoIGEgOnJlZjpgZml4dHVyZSBmdW5jdGlvbiA8Zml4dHVyZSBm
dW5jdGlvbj5gOgogICAgIGRlZiBjbWRvcHQocmVxdWVzdCk6CiAgICAgICAgIHJldHVybiByZXF1
ZXN0LmNvbmZpZy5nZXRvcHRpb24oIi0tY21kb3B0IikKIAotTGV0J3MgcnVuIHRoaXMgd2l0aG91
dCBzdXBwbHlpbmcgb3VyIG5ldyBvcHRpb246OgorTGV0J3MgcnVuIHRoaXMgd2l0aG91dCBzdXBw
bHlpbmcgb3VyIG5ldyBvcHRpb246CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQg
cHl0ZXN0IC1xIHRlc3Rfc2FtcGxlLnB5CiAgICAgRiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC02NSw3
ICs2Nyw5IEBAIExldCdzIHJ1biB0aGlzIHdpdGhvdXQgc3VwcGx5aW5nIG91ciBuZXcgb3B0aW9u
OjoKICAgICBmaXJzdAogICAgIDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcwogCi1BbmQgbm93IHdp
dGggc3VwcGx5aW5nIGEgY29tbWFuZCBsaW5lIG9wdGlvbjo6CitBbmQgbm93IHdpdGggc3VwcGx5
aW5nIGEgY29tbWFuZCBsaW5lIG9wdGlvbjoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAg
ICAgJCBweXRlc3QgLXEgLS1jbWRvcHQ9dHlwZTIKICAgICBGICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KQEAg
LTEwMyw3ICsxMDcsNyBAQCB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBiZWZvcmUgdGhleSBn
ZXQgcHJvY2Vzc2VkOgogCiAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKLSAgICAjIGNvbnRlbnQg
b2YgY29uZnRlc3QucHkKKyAgICAjIHNldHVwdG9vbHMgcGx1Z2luCiAgICAgaW1wb3J0IHN5cwog
CiAKQEAgLTExNywxMiArMTIxLDE1IEBAIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGJlZm9y
ZSB0aGV5IGdldCBwcm9jZXNzZWQ6CiBJZiB5b3UgaGF2ZSB0aGUgYHhkaXN0IHBsdWdpbiA8aHR0
cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGVzdC14ZGlzdC8+YF8gaW5zdGFsbGVkCiB5b3Ugd2ls
bCBub3cgYWx3YXlzIHBlcmZvcm0gdGVzdCBydW5zIHVzaW5nIGEgbnVtYmVyCiBvZiBzdWJwcm9j
ZXNzZXMgY2xvc2UgdG8geW91ciBDUFUuIFJ1bm5pbmcgaW4gYW4gZW1wdHkKLWRpcmVjdG9yeSB3
aXRoIHRoZSBhYm92ZSBjb25mdGVzdC5weTo6CitkaXJlY3Rvcnkgd2l0aCB0aGUgYWJvdmUgY29u
ZnRlc3QucHk6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0CiAgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwg
cHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VO
RE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54Lnks
IHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlU
SE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgog
ICAgIGNvbGxlY3RlZCAwIGl0ZW1zCiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0
ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xNzUs
MjYgKzE4MiwzMiBAQCBXZSBjYW4gbm93IHdyaXRlIGEgdGVzdCBtb2R1bGUgbGlrZSB0aGlzOgog
ICAgIGRlZiB0ZXN0X2Z1bmNfc2xvdygpOgogICAgICAgICBwYXNzCiAKLWFuZCB3aGVuIHJ1bm5p
bmcgaXQgd2lsbCBzZWUgYSBza2lwcGVkICJzbG93IiB0ZXN0OjoKK2FuZCB3aGVuIHJ1bm5pbmcg
aXQgd2lsbCBzZWUgYSBza2lwcGVkICJzbG93IiB0ZXN0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0
ZXN0CiAKICAgICAkIHB5dGVzdCAtcnMgICAgIyAiLXJzIiBtZWFucyByZXBvcnQgZGV0YWlscyBv
biB0aGUgbGl0dGxlICdzJwogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNl
c3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBs
aW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngu
eQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0g
bGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54
LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3Rk
aXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQgMiBpdGVtcwogCiAgICAgdGVzdF9t
b2R1bGUucHkgLnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWzEwMCVdCi0gICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1
bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIFNLSVAgWzFdIHRlc3Rf
bW9kdWxlLnB5Ojg6IG5lZWQgLS1ydW5zbG93IG9wdGlvbiB0byBydW4KIAorICAgID09PT09PT09
PT09PT09PT09PT09PT09PT0gc2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8gPT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICBTS0lQUEVEIFsxXSB0ZXN0X21vZHVsZS5weTo4OiBuZWVkIC0tcnVu
c2xvdyBvcHRpb24gdG8gcnVuCiAgICAgPT09PT09PT09PT09PT09PT09PSAxIHBhc3NlZCwgMSBz
a2lwcGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PQogCi1PciBydW4gaXQg
aW5jbHVkaW5nIHRoZSBgYHNsb3dgYCBtYXJrZWQgdGVzdDo6CitPciBydW4gaXQgaW5jbHVkaW5n
IHRoZSBgYHNsb3dgYCBtYXJrZWQgdGVzdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAg
ICAgJCBweXRlc3QgLS1ydW5zbG93CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRl
c3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRm
b3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5
LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAg
cm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAyIGl0ZW1zCiAKICAgICB0
ZXN0X21vZHVsZS5weSAuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbMTAwJV0KQEAgLTIzMCw3ICsyNDMsOSBAQCBFeGFtcGxlOgogVGhlIGBgX190
cmFjZWJhY2toaWRlX19gYCBzZXR0aW5nIGluZmx1ZW5jZXMgYGBweXRlc3RgYCBzaG93aW5nCiBv
ZiB0cmFjZWJhY2tzOiB0aGUgYGBjaGVja2NvbmZpZ2BgIGZ1bmN0aW9uIHdpbGwgbm90IGJlIHNo
b3duCiB1bmxlc3MgdGhlIGBgLS1mdWxsLXRyYWNlYGAgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBz
cGVjaWZpZWQuCi1MZXQncyBydW4gb3VyIGxpdHRsZSBmdW5jdGlvbjo6CitMZXQncyBydW4gb3Vy
IGxpdHRsZSBmdW5jdGlvbjoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRl
c3QgLXEgdGVzdF9jaGVja2NvbmZpZy5weQogICAgIEYgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtMzI3
LDEzICszNDIsMTYgQEAgSXQncyBlYXN5IHRvIHByZXNlbnQgZXh0cmEgaW5mb3JtYXRpb24gaW4g
YSBgYHB5dGVzdGBgIHJ1bjoKICAgICBkZWYgcHl0ZXN0X3JlcG9ydF9oZWFkZXIoY29uZmlnKToK
ICAgICAgICAgcmV0dXJuICJwcm9qZWN0IGRlcHM6IG15bGliLTEuMSIKIAotd2hpY2ggd2lsbCBh
ZGQgdGhlIHN0cmluZyB0byB0aGUgdGVzdCBoZWFkZXIgYWNjb3JkaW5nbHk6Ogord2hpY2ggd2ls
bCBhZGQgdGhlIHN0cmluZyB0byB0aGUgdGVzdCBoZWFkZXIgYWNjb3JkaW5nbHk6CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0CiAgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0x
LngueSwgcGx1Z2d5LTAueC55CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBw
eXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhP
Tl9QUkVGSVgvLnB5dGVzdF9jYWNoZQogICAgIHByb2plY3QgZGVwczogbXlsaWItMS4xCi0gICAg
cm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICByb290ZGlyOiAkUkVHRU5E
T0NfVE1QRElSCiAgICAgY29sbGVjdGVkIDAgaXRlbXMKIAogICAgID09PT09PT09PT09PT09PT09
PT09PT09IG5vIHRlc3RzIHJhbiBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09
PT0KQEAgLTM1MywyNSArMzcxLDMwIEBAIGRpc3BsYXkgbW9yZSBpbmZvcm1hdGlvbiBpZiBhcHBs
aWNhYmxlOgogICAgICAgICBpZiBjb25maWcuZ2V0b3B0aW9uKCJ2ZXJib3NlIikgPiAwOgogICAg
ICAgICAgICAgcmV0dXJuIFsiaW5mbzE6IGRpZCB5b3Uga25vdyB0aGF0IC4uLiIsICJkaWQgeW91
PyJdCiAKLXdoaWNoIHdpbGwgYWRkIGluZm8gb25seSB3aGVuIHJ1biB3aXRoICItLXYiOjoKK3do
aWNoIHdpbGwgYWRkIGluZm8gb25seSB3aGVuIHJ1biB3aXRoICItLXYiOgorCisuLiBjb2RlLWJs
b2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtdgogICAgID09PT09PT09PT09PT09PT09PT09
PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54
LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41Ci0gICAgY2Fj
aGVkaXI6IC5weXRlc3RfY2FjaGUKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54Lnks
IHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9i
aW4vcHl0aG9uCisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKICAg
ICBpbmZvMTogZGlkIHlvdSBrbm93IHRoYXQgLi4uCiAgICAgZGlkIHlvdT8KLSAgICByb290ZGly
OiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBE
SVIKICAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgMCBpdGVtcwogCiAgICAgPT09PT09PT09
PT09PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09
PT09PT09PT09PQogCi1hbmQgbm90aGluZyB3aGVuIHJ1biBwbGFpbmx5OjoKK2FuZCBub3RoaW5n
IHdoZW4gcnVuIHBsYWlubHk6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0
ZXN0CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhv
biAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRp
cjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRo
b24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hl
ZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9D
X1RNUERJUgogICAgIGNvbGxlY3RlZCAwIGl0ZW1zCiAKICAgICA9PT09PT09PT09PT09PT09PT09
PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09
CkBAIC00MDMsMTggKzQyNiwyMSBAQCBvdXQgd2hpY2ggdGVzdHMgYXJlIHRoZSBzbG93ZXN0LiBM
ZXQncyBtYWtlIGFuIGFydGlmaWNpYWwgdGVzdCBzdWl0ZToKICAgICBkZWYgdGVzdF9mdW5jc2xv
dzIoKToKICAgICAgICAgdGltZS5zbGVlcCgwLjMpCiAKLU5vdyB3ZSBjYW4gcHJvZmlsZSB3aGlj
aCB0ZXN0IGZ1bmN0aW9ucyBleGVjdXRlIHRoZSBzbG93ZXN0OjoKK05vdyB3ZSBjYW4gcHJvZmls
ZSB3aGljaCB0ZXN0IGZ1bmN0aW9ucyBleGVjdXRlIHRoZSBzbG93ZXN0OgorCisuLiBjb2RlLWJs
b2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtLWR1cmF0aW9ucz0zCiAgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMu
eC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJ
UiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00
LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJ
WC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxl
Y3RlZCAzIGl0ZW1zCiAKICAgICB0ZXN0X3NvbWVfYXJlX3Nsb3cucHkgLi4uICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KIAogICAgID09PT09PT09PT09
PT09PT09PT09PT09PT0gc2xvd2VzdCAzIHRlc3QgZHVyYXRpb25zID09PT09PT09PT09PT09PT09
PT09PT09PT0KLSAgICAwLjMwcyBjYWxsICAgICB0ZXN0X3NvbWVfYXJlX3Nsb3cucHk6OnRlc3Rf
ZnVuY3Nsb3cyCisgICAgMC4zMXMgY2FsbCAgICAgdGVzdF9zb21lX2FyZV9zbG93LnB5Ojp0ZXN0
X2Z1bmNzbG93MgogICAgIDAuMjBzIGNhbGwgICAgIHRlc3Rfc29tZV9hcmVfc2xvdy5weTo6dGVz
dF9mdW5jc2xvdzEKICAgICAwLjEwcyBjYWxsICAgICB0ZXN0X3NvbWVfYXJlX3Nsb3cucHk6OnRl
c3RfZnVuY2Zhc3QKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDMgcGFzc2VkIGluIDAu
MTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC00NzUsMTIgKzUwMSwxNSBA
QCB0ZXN0cyBpbiBhIGNsYXNzLiAgSGVyZSBpcyBhIHRlc3QgbW9kdWxlIGV4YW1wbGU6CiAgICAg
ZGVmIHRlc3Rfbm9ybWFsKCk6CiAgICAgICAgIHBhc3MKIAotSWYgd2UgcnVuIHRoaXM6OgorSWYg
d2UgcnVuIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1y
eAogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24g
My54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6
ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9u
IDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRp
cjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19U
TVBESVIKICAgICBjb2xsZWN0ZWQgNCBpdGVtcwogCiAgICAgdGVzdF9zdGVwLnB5IC5GeC4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBA
IC00OTYsNyArNTI1LDcgQEAgSWYgd2UgcnVuIHRoaXM6OgogCiAgICAgdGVzdF9zdGVwLnB5OjEx
OiBBc3NlcnRpb25FcnJvcgogICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gc2hvcnQgdGVz
dCBzdW1tYXJ5IGluZm8gPT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBYRkFJTCB0ZXN0
X3N0ZXAucHk6OlRlc3RVc2VySGFuZGxpbmc6OigpOjp0ZXN0X2RlbGV0aW9uCisgICAgWEZBSUwg
dGVzdF9zdGVwLnB5OjpUZXN0VXNlckhhbmRsaW5nOjp0ZXN0X2RlbGV0aW9uCiAgICAgICByZWFz
b246IHByZXZpb3VzIHRlc3QgZmFpbGVkICh0ZXN0X21vZGlmaWNhdGlvbikKICAgICA9PT09PT09
PT09PT09PSAxIGZhaWxlZCwgMiBwYXNzZWQsIDEgeGZhaWxlZCBpbiAwLjEyIHNlY29uZHMgPT09
PT09PT09PT09PT09CiAKQEAgLTU1NiwxMiArNTg1LDE1IEBAIHRoZSBgYGRiYGAgZml4dHVyZToK
ICAgICBkZWYgdGVzdF9yb290KGRiKTogICMgbm8gZGIgaGVyZSwgd2lsbCBlcnJvciBvdXQKICAg
ICAgICAgcGFzcwogCi1XZSBjYW4gcnVuIHRoaXM6OgorV2UgY2FuIHJ1biB0aGlzOgorCisuLiBj
b2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdAogICAgID09PT09PT09PT09PT09PT09
PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHkt
MS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZp
bGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5
LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVz
dF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQgNyBp
dGVtcwogCiAgICAgdGVzdF9zdGVwLnB5IC5GeC4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWyA1NyVdCkBAIC01NzQsNyArNjA2LDcgQEAgV2UgY2Fu
IHJ1biB0aGlzOjoKICAgICBmaWxlICRSRUdFTkRPQ19UTVBESVIvYi90ZXN0X2Vycm9yLnB5LCBs
aW5lIDEKICAgICAgIGRlZiB0ZXN0X3Jvb3QoZGIpOiAgIyBubyBkYiBoZXJlLCB3aWxsIGVycm9y
IG91dAogICAgIEUgICAgICAgZml4dHVyZSAnZGInIG5vdCBmb3VuZAotICAgID4gICAgICAgYXZh
aWxhYmxlIGZpeHR1cmVzOiBjYWNoZSwgY2FwZmQsIGNhcGZkYmluYXJ5LCBjYXBsb2csIGNhcHN5
cywgY2Fwc3lzYmluYXJ5LCBkb2N0ZXN0X25hbWVzcGFjZSwgbW9ua2V5cGF0Y2gsIHB5dGVzdGNv
bmZpZywgcmVjb3JkX3Byb3BlcnR5LCByZWNvcmRfeG1sX2F0dHJpYnV0ZSwgcmVjb3JkX3htbF9w
cm9wZXJ0eSwgcmVjd2FybiwgdG1wZGlyLCB0bXBkaXJfZmFjdG9yeQorICAgID4gICAgICAgYXZh
aWxhYmxlIGZpeHR1cmVzOiBjYWNoZSwgY2FwZmQsIGNhcGZkYmluYXJ5LCBjYXBsb2csIGNhcHN5
cywgY2Fwc3lzYmluYXJ5LCBkb2N0ZXN0X25hbWVzcGFjZSwgbW9ua2V5cGF0Y2gsIHB5dGVzdGNv
bmZpZywgcmVjb3JkX3Byb3BlcnR5LCByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5LCByZWNvcmRf
eG1sX2F0dHJpYnV0ZSwgcmVjd2FybiwgdG1wX3BhdGgsIHRtcF9wYXRoX2ZhY3RvcnksIHRtcGRp
ciwgdG1wZGlyX2ZhY3RvcnkKICAgICA+ICAgICAgIHVzZSAncHl0ZXN0IC0tZml4dHVyZXMgW3Rl
c3RwYXRoXScgZm9yIGhlbHAgb24gdGhlbS4KIAogICAgICRSRUdFTkRPQ19UTVBESVIvYi90ZXN0
X2Vycm9yLnB5OjEKQEAgLTY2NywxMiArNjk5LDE1IEBAIGlmIHlvdSB0aGVuIGhhdmUgZmFpbGlu
ZyB0ZXN0czoKICAgICBkZWYgdGVzdF9mYWlsMigpOgogICAgICAgICBhc3NlcnQgMAogCi1hbmQg
cnVuIHRoZW06OgorYW5kIHJ1biB0aGVtOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAg
ICAkIHB5dGVzdCB0ZXN0X21vZHVsZS5weQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09
PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBw
bGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBs
dWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAg
cGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBw
bHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQor
ICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQgMiBpdGVtcwogCiAg
ICAgdGVzdF9tb2R1bGUucHkgRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWzEwMCVdCkBAIC02OTYsNyArNzMxLDkgQEAgYW5kIHJ1biB0aGVtOjoK
ICAgICB0ZXN0X21vZHVsZS5weTo2OiBBc3NlcnRpb25FcnJvcgogICAgID09PT09PT09PT09PT09
PT09PT09PT09PT0gMiBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09
PT09PT0KIAoteW91IHdpbGwgaGF2ZSBhICJmYWlsdXJlcyIgZmlsZSB3aGljaCBjb250YWlucyB0
aGUgZmFpbGluZyB0ZXN0IGlkczo6Cit5b3Ugd2lsbCBoYXZlIGEgImZhaWx1cmVzIiBmaWxlIHdo
aWNoIGNvbnRhaW5zIHRoZSBmYWlsaW5nIHRlc3QgaWRzOgorCisuLiBjb2RlLWJsb2NrOjogYmFz
aAogCiAgICAgJCBjYXQgZmFpbHVyZXMKICAgICB0ZXN0X21vZHVsZS5weTo6dGVzdF9mYWlsMSAo
UFlURVNUX1RNUERJUi90ZXN0X2ZhaWwxMCkKQEAgLTc2NiwxMiArODAzLDE1IEBAIGlmIHlvdSB0
aGVuIGhhdmUgZmFpbGluZyB0ZXN0czoKICAgICBkZWYgdGVzdF9mYWlsMigpOgogICAgICAgICBh
c3NlcnQgMAogCi1hbmQgcnVuIGl0OjoKK2FuZCBydW4gaXQ6CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRlc3QKIAogICAgICQgcHl0ZXN0IC1zIHRlc3RfbW9kdWxlLnB5CiAgICAgPT09PT09PT09PT09
PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55
LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00Lngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8u
cHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3Rl
ZCAzIGl0ZW1zCiAKICAgICB0ZXN0X21vZHVsZS5weSBFc2V0dGluZyB1cCBhIHRlc3QgZmFpbGVk
ISB0ZXN0X21vZHVsZS5weTo6dGVzdF9zZXR1cF9mYWlscwpAQCAtODE0LDcgKzg1NCw3IEBAIGlu
Zm9ybWF0aW9uLgogYGBQWVRFU1RfQ1VSUkVOVF9URVNUYGAgZW52aXJvbm1lbnQgdmFyaWFibGUK
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIHZlcnNp
b25hZGRlZDo6IDMuMgorCiAKIFNvbWV0aW1lcyBhIHRlc3Qgc2Vzc2lvbiBtaWdodCBnZXQgc3R1
Y2sgYW5kIHRoZXJlIG1pZ2h0IGJlIG5vIGVhc3kgd2F5IHRvIGZpZ3VyZSBvdXQKIHdoaWNoIHRl
c3QgZ290IHN0dWNrLCBmb3IgZXhhbXBsZSBpZiBweXRlc3Qgd2FzIHJ1biBpbiBxdWlldCBtb2Rl
IChgYC1xYGApIG9yIHlvdSBkb24ndCBoYXZlIGFjY2VzcyB0byB0aGUgY29uc29sZQpAQCAtODUy
LDYgKzg5Miw4IEBAIEluIHRoYXQgb3JkZXIuCiAgICAgY2FuIGJlIGNoYW5nZWQgYmV0d2VlbiBy
ZWxlYXNlcyAoZXZlbiBidWcgZml4ZXMpIHNvIGl0IHNob3VsZG4ndCBiZSByZWxpZWQgb24gZm9y
IHNjcmlwdGluZwogICAgIG9yIGF1dG9tYXRpb24uCiAKKy4uIF9mcmVlemluZy1weXRlc3Q6CisK
IEZyZWV6aW5nIHB5dGVzdAogLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTg5NSw2ICs5MzcsOCBAQCBs
aWtlIGBgcHl0ZXN0LXRpbWVvdXRgYCB0aGV5IG11c3QgYmUgaW1wb3J0ZWQgZXhwbGljaXRseSBh
bmQgcGFzc2VkIG9uIHRvIHB5dGVzdAogCiAKIFRoaXMgYWxsb3dzIHlvdSB0byBleGVjdXRlIHRl
c3RzIHVzaW5nIHRoZSBmcm96ZW4KLWFwcGxpY2F0aW9uIHdpdGggc3RhbmRhcmQgYGBweXRlc3Rg
YCBjb21tYW5kLWxpbmUgb3B0aW9uczo6CithcHBsaWNhdGlvbiB3aXRoIHN0YW5kYXJkIGBgcHl0
ZXN0YGAgY29tbWFuZC1saW5lIG9wdGlvbnM6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAg
ICAuL2FwcF9tYWluIC0tcHl0ZXN0IC0tdmVyYm9zZSAtLXRiPWxvbmcgLS1qdW5pdHhtbD1yZXN1
bHRzLnhtbCB0ZXN0LXN1aXRlLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvc3BlY2lhbC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zcGVjaWFsLnJzdApp
bmRleCAxZmMzMmY2YzgxNzNhNWFjMGYxMjdmOWMxNTllOTMzZWEwZjRjNWNhLi44MDBjYjhlOTAx
MDU4Zjg3YjhkZTA5MDdjMDNjZWMzOGVhMTcxM2QxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9zcGVjaWFsLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9zcGVjaWFsLnJzdApAQCAtMTMsNyArMTMsNyBAQCBjYWxscyBpdDo6CiAKICAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iLCBhdXRvdXNlPVRydWUpCiAgICAgZGVmIGNhbGxhdHRy
X2FoZWFkX29mX2FsbHRlc3RzKHJlcXVlc3QpOgotICAgICAgICBwcmludCAoImNhbGxhdHRyX2Fo
ZWFkX29mX2FsbHRlc3RzIGNhbGxlZCIpCisgICAgICAgIHByaW50KCJjYWxsYXR0cl9haGVhZF9v
Zl9hbGx0ZXN0cyBjYWxsZWQiKQogICAgICAgICBzZWVuID0gc2V0KFtOb25lXSkKICAgICAgICAg
c2Vzc2lvbiA9IHJlcXVlc3Qubm9kZQogICAgICAgICBmb3IgaXRlbSBpbiBzZXNzaW9uLml0ZW1z
OgpAQCAtMzEsMjAgKzMxLDIwIEBAIHdpbGwgYmUgY2FsbGVkIGFoZWFkIG9mIHJ1bm5pbmcgYW55
IHRlc3RzOjoKICAgICBjbGFzcyBUZXN0SGVsbG8ob2JqZWN0KToKICAgICAgICAgQGNsYXNzbWV0
aG9kCiAgICAgICAgIGRlZiBjYWxsbWUoY2xzKToKLSAgICAgICAgICAgIHByaW50ICgiY2FsbG1l
IGNhbGxlZCEiKQorICAgICAgICAgICAgcHJpbnQoImNhbGxtZSBjYWxsZWQhIikKIAogICAgICAg
ICBkZWYgdGVzdF9tZXRob2QxKHNlbGYpOgotICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0X21ldGhv
ZDEgY2FsbGVkIikKKyAgICAgICAgICAgIHByaW50KCJ0ZXN0X21ldGhvZDEgY2FsbGVkIikKIAog
ICAgICAgICBkZWYgdGVzdF9tZXRob2QyKHNlbGYpOgotICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0
X21ldGhvZDEgY2FsbGVkIikKKyAgICAgICAgICAgIHByaW50KCJ0ZXN0X21ldGhvZDEgY2FsbGVk
IikKIAogICAgIGNsYXNzIFRlc3RPdGhlcihvYmplY3QpOgogICAgICAgICBAY2xhc3NtZXRob2QK
ICAgICAgICAgZGVmIGNhbGxtZShjbHMpOgotICAgICAgICAgICAgcHJpbnQgKCJjYWxsbWUgb3Ro
ZXIgY2FsbGVkIikKKyAgICAgICAgICAgIHByaW50KCJjYWxsbWUgb3RoZXIgY2FsbGVkIikKICAg
ICAgICAgZGVmIHRlc3Rfb3RoZXIoc2VsZik6Ci0gICAgICAgICAgICBwcmludCAoInRlc3Qgb3Ro
ZXIiKQorICAgICAgICAgICAgcHJpbnQoInRlc3Qgb3RoZXIiKQogCiAgICAgIyB3b3JrcyB3aXRo
IHVuaXR0ZXN0IGFzIHdlbGwgLi4uCiAgICAgaW1wb3J0IHVuaXR0ZXN0CkBAIC01MiwxMiArNTIs
MTQgQEAgd2lsbCBiZSBjYWxsZWQgYWhlYWQgb2YgcnVubmluZyBhbnkgdGVzdHM6OgogICAgIGNs
YXNzIFNvbWVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgQGNsYXNzbWV0aG9kCiAg
ICAgICAgIGRlZiBjYWxsbWUoc2VsZik6Ci0gICAgICAgICAgICBwcmludCAoIlNvbWVUZXN0IGNh
bGxtZSBjYWxsZWQiKQorICAgICAgICAgICAgcHJpbnQoIlNvbWVUZXN0IGNhbGxtZSBjYWxsZWQi
KQogCiAgICAgICAgIGRlZiB0ZXN0X3VuaXQxKHNlbGYpOgotICAgICAgICAgICAgcHJpbnQgKCJ0
ZXN0X3VuaXQxIG1ldGhvZCBjYWxsZWQiKQorICAgICAgICAgICAgcHJpbnQoInRlc3RfdW5pdDEg
bWV0aG9kIGNhbGxlZCIpCiAKLUlmIHlvdSBydW4gdGhpcyB3aXRob3V0IG91dHB1dCBjYXB0dXJp
bmc6OgorSWYgeW91IHJ1biB0aGlzIHdpdGhvdXQgb3V0cHV0IGNhcHR1cmluZzoKKworLi4gY29k
ZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXEgLXMgdGVzdF9tb2R1bGUucHkKICAg
ICBjYWxsYXR0cl9haGVhZF9vZl9hbGx0ZXN0cyBjYWxsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL3hmYWlsX2RlbW8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS94ZmFpbF9kZW1vLnB5CmluZGV4IDAxZTZkYTFhZDJlZDIwYjYzMzUwOGM2NjhkZjU4MDUy
NTFkZTBmNjAuLjg4Mzg0YTE1NjJhNGQyNjczMjBhNDgxOTVlOWI3OWY0YzczODdmMzYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3hmYWlsX2RlbW8ucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUveGZhaWxfZGVtby5weQpAQCAtMSwzICsxLDQgQEAKKyMg
LSotIGNvZGluZzogdXRmLTggLSotCiBpbXBvcnQgcHl0ZXN0CiAKIHhmYWlsID0gcHl0ZXN0Lm1h
cmsueGZhaWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9maXh0dXJlLnJzdCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9maXh0dXJlLnJzdAppbmRleCBkNGQzODY3OTJlMDg4N2QwYzBkY2Mw
YjFkMjI2MjliNWNhMjQyOGJlLi5lZDljMTFiMmVhNzkwMDcxNGM4MTdkN2UyZGVhNDQ3ZTYwZWMz
OGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZml4dHVyZS5yc3QKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2ZpeHR1cmUucnN0CkBAIC03LDcgKzcsNyBAQCBweXRlc3QgZml4dHVy
ZXM6IGV4cGxpY2l0LCBtb2R1bGFyLCBzY2FsYWJsZQogCiAuLiBjdXJyZW50bW9kdWxlOjogX3B5
dGVzdC5weXRob24KIAotLi4gdmVyc2lvbmFkZGVkOjogMi4wLzIuMy8yLjQKKwogCiAuLiBfYHhV
bml0YDogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9YVW5pdAogLi4gX2BwdXJwb3NlIG9m
IHRlc3QgZml4dHVyZXNgOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1Rlc3RfZml4dHVy
ZSNTb2Z0d2FyZQpAQCAtNTUsMjMgKzU1LDI2IEBAIHVzaW5nIGl0OjoKICAgICBpbXBvcnQgcHl0
ZXN0CiAKICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICBkZWYgc210cCgpOgorICAgIGRlZiBzbXRw
X2Nvbm5lY3Rpb24oKToKICAgICAgICAgaW1wb3J0IHNtdHBsaWIKICAgICAgICAgcmV0dXJuIHNt
dHBsaWIuU01UUCgic210cC5nbWFpbC5jb20iLCA1ODcsIHRpbWVvdXQ9NSkKIAotICAgIGRlZiB0
ZXN0X2VobG8oc210cCk6Ci0gICAgICAgIHJlc3BvbnNlLCBtc2cgPSBzbXRwLmVobG8oKQorICAg
IGRlZiB0ZXN0X2VobG8oc210cF9jb25uZWN0aW9uKToKKyAgICAgICAgcmVzcG9uc2UsIG1zZyA9
IHNtdHBfY29ubmVjdGlvbi5laGxvKCkKICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAog
ICAgICAgICBhc3NlcnQgMCAjIGZvciBkZW1vIHB1cnBvc2VzCiAKLUhlcmUsIHRoZSBgYHRlc3Rf
ZWhsb2BgIG5lZWRzIHRoZSBgYHNtdHBgYCBmaXh0dXJlIHZhbHVlLiAgcHl0ZXN0CitIZXJlLCB0
aGUgYGB0ZXN0X2VobG9gYCBuZWVkcyB0aGUgYGBzbXRwX2Nvbm5lY3Rpb25gYCBmaXh0dXJlIHZh
bHVlLiAgcHl0ZXN0CiB3aWxsIGRpc2NvdmVyIGFuZCBjYWxsIHRoZSA6cHk6ZnVuYzpgQHB5dGVz
dC5maXh0dXJlIDxfcHl0ZXN0LnB5dGhvbi5maXh0dXJlPmAKLW1hcmtlZCBgYHNtdHBgYCBmaXh0
dXJlIGZ1bmN0aW9uLiAgUnVubmluZyB0aGUgdGVzdCBsb29rcyBsaWtlIHRoaXM6OgorbWFya2Vk
IGBgc210cF9jb25uZWN0aW9uYGAgZml4dHVyZSBmdW5jdGlvbi4gIFJ1bm5pbmcgdGhlIHRlc3Qg
bG9va3MgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVz
dCB0ZXN0X3NtdHBzaW1wbGUucHkKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVz
dCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZv
cm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3kt
MC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRm
b3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5
LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICBy
b290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVkIDEgaXRlbQogCiAgICAgdGVz
dF9zbXRwc2ltcGxlLnB5IEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWzEwMCVdCkBAIC03OSwxMCArODIsMTAgQEAgbWFya2VkIGBgc210cGBgIGZpeHR1
cmUgZnVuY3Rpb24uICBSdW5uaW5nIHRoZSB0ZXN0IGxvb2tzIGxpa2UgdGhpczo6CiAgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRl
c3RfZWhsbyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIAotICAgIHNtdHAgPSA8
c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIHNtdHBfY29ubmVjdGlvbiA9
IDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CiAKLSAgICAgICAgZGVmIHRlc3Rf
ZWhsbyhzbXRwKToKLSAgICAgICAgICAgIHJlc3BvbnNlLCBtc2cgPSBzbXRwLmVobG8oKQorICAg
ICAgICBkZWYgdGVzdF9laGxvKHNtdHBfY29ubmVjdGlvbik6CisgICAgICAgICAgICByZXNwb25z
ZSwgbXNnID0gc210cF9jb25uZWN0aW9uLmVobG8oKQogICAgICAgICAgICAgYXNzZXJ0IHJlc3Bv
bnNlID09IDI1MAogICAgID4gICAgICAgYXNzZXJ0IDAgIyBmb3IgZGVtbyBwdXJwb3NlcwogICAg
IEUgICAgICAgYXNzZXJ0IDAKQEAgLTkxLDE4ICs5NCwxOCBAQCBtYXJrZWQgYGBzbXRwYGAgZml4
dHVyZSBmdW5jdGlvbi4gIFJ1bm5pbmcgdGhlIHRlc3QgbG9va3MgbGlrZSB0aGlzOjoKICAgICA9
PT09PT09PT09PT09PT09PT09PT09PT09IDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09
PT09PT09PT09PT09PT09PT09CiAKIEluIHRoZSBmYWlsdXJlIHRyYWNlYmFjayB3ZSBzZWUgdGhh
dCB0aGUgdGVzdCBmdW5jdGlvbiB3YXMgY2FsbGVkIHdpdGggYQotYGBzbXRwYGAgYXJndW1lbnQs
IHRoZSBgYHNtdHBsaWIuU01UUCgpYGAgaW5zdGFuY2UgY3JlYXRlZCBieSB0aGUgZml4dHVyZQor
YGBzbXRwX2Nvbm5lY3Rpb25gYCBhcmd1bWVudCwgdGhlIGBgc210cGxpYi5TTVRQKClgYCBpbnN0
YW5jZSBjcmVhdGVkIGJ5IHRoZSBmaXh0dXJlCiBmdW5jdGlvbi4gIFRoZSB0ZXN0IGZ1bmN0aW9u
IGZhaWxzIG9uIG91ciBkZWxpYmVyYXRlIGBgYXNzZXJ0IDBgYC4gIEhlcmUgaXMKIHRoZSBleGFj
dCBwcm90b2NvbCB1c2VkIGJ5IGBgcHl0ZXN0YGAgdG8gY2FsbCB0aGUgdGVzdCBmdW5jdGlvbiB0
aGlzIHdheToKIAogMS4gcHl0ZXN0IDpyZWY6YGZpbmRzIDx0ZXN0IGRpc2NvdmVyeT5gIHRoZSBg
YHRlc3RfZWhsb2BgIGJlY2F1c2UKICAgIG9mIHRoZSBgYHRlc3RfYGAgcHJlZml4LiAgVGhlIHRl
c3QgZnVuY3Rpb24gbmVlZHMgYSBmdW5jdGlvbiBhcmd1bWVudAotICAgbmFtZWQgYGBzbXRwYGAu
ICBBIG1hdGNoaW5nIGZpeHR1cmUgZnVuY3Rpb24gaXMgZGlzY292ZXJlZCBieQotICAgbG9va2lu
ZyBmb3IgYSBmaXh0dXJlLW1hcmtlZCBmdW5jdGlvbiBuYW1lZCBgYHNtdHBgYC4KKyAgIG5hbWVk
IGBgc210cF9jb25uZWN0aW9uYGAuICBBIG1hdGNoaW5nIGZpeHR1cmUgZnVuY3Rpb24gaXMgZGlz
Y292ZXJlZCBieQorICAgbG9va2luZyBmb3IgYSBmaXh0dXJlLW1hcmtlZCBmdW5jdGlvbiBuYW1l
ZCBgYHNtdHBfY29ubmVjdGlvbmBgLgogCi0yLiBgYHNtdHAoKWBgIGlzIGNhbGxlZCB0byBjcmVh
dGUgYW4gaW5zdGFuY2UuCisyLiBgYHNtdHBfY29ubmVjdGlvbigpYGAgaXMgY2FsbGVkIHRvIGNy
ZWF0ZSBhbiBpbnN0YW5jZS4KIAotMy4gYGB0ZXN0X2VobG8oPFNNVFAgaW5zdGFuY2U+KWBgIGlz
IGNhbGxlZCBhbmQgZmFpbHMgaW4gdGhlIGxhc3QKKzMuIGBgdGVzdF9laGxvKDxzbXRwX2Nvbm5l
Y3Rpb24gaW5zdGFuY2U+KWBgIGlzIGNhbGxlZCBhbmQgZmFpbHMgaW4gdGhlIGxhc3QKICAgIGxp
bmUgb2YgdGhlIHRlc3QgZnVuY3Rpb24uCiAKIE5vdGUgdGhhdCBpZiB5b3UgbWlzc3BlbGwgYSBm
dW5jdGlvbiBhcmd1bWVudCBvciB3YW50CkBAIC0xMTEsNyArMTE0LDkgQEAgd2l0aCBhIGxpc3Qg
b2YgYXZhaWxhYmxlIGZ1bmN0aW9uIGFyZ3VtZW50cy4KIAogLi4gbm90ZTo6CiAKLSAgICBZb3Ug
Y2FuIGFsd2F5cyBpc3N1ZSA6OgorICAgIFlvdSBjYW4gYWx3YXlzIGlzc3VlOgorCisgICAgLi4g
Y29kZS1ibG9jazo6IGJhc2gKIAogICAgICAgICBweXRlc3QgLS1maXh0dXJlcyB0ZXN0X3NpbXBs
ZWZhY3RvcnkucHkKIApAQCAtMTUzLDggKzE1OCw4IEBAIFRoaXMgbWFrZXMgdXNlIG9mIHRoZSBh
dXRvbWF0aWMgY2FjaGluZyBtZWNoYW5pc21zIG9mIHB5dGVzdC4KIAogQW5vdGhlciBnb29kIGFw
cHJvYWNoIGlzIGJ5IGFkZGluZyB0aGUgZGF0YSBmaWxlcyBpbiB0aGUgYGB0ZXN0c2BgIGZvbGRl
ci4KIFRoZXJlIGFyZSBhbHNvIGNvbW11bml0eSBwbHVnaW5zIGF2YWlsYWJsZSB0byBoZWxwIG1h
bmFnaW5nIHRoaXMgYXNwZWN0IG9mCi10ZXN0aW5nLCBlLmcuIGBweXRlc3QtZGF0YWRpciA8aHR0
cHM6Ly9naXRodWIuY29tL2dhYnJpZWxjbnIvcHl0ZXN0LWRhdGFkaXI+YF9fCi1hbmQgYHB5dGVz
dC1kYXRhZmlsZXMgPGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LWRhdGFmaWxl
cz5gX18uCit0ZXN0aW5nLCBlLmcuIGBweXRlc3QtZGF0YWRpciA8aHR0cHM6Ly9weXBpLm9yZy9w
cm9qZWN0L3B5dGVzdC1kYXRhZGlyLz5gX18KK2FuZCBgcHl0ZXN0LWRhdGFmaWxlcyA8aHR0cHM6
Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGVzdC1kYXRhZmlsZXMvPmBfXy4KIAogLi4gX3NtdHBzaGFy
ZWQ6CiAKQEAgLTE2NywxMCArMTcyLDExIEBAIEZpeHR1cmVzIHJlcXVpcmluZyBuZXR3b3JrIGFj
Y2VzcyBkZXBlbmQgb24gY29ubmVjdGl2aXR5IGFuZCBhcmUKIHVzdWFsbHkgdGltZS1leHBlbnNp
dmUgdG8gY3JlYXRlLiAgRXh0ZW5kaW5nIHRoZSBwcmV2aW91cyBleGFtcGxlLCB3ZQogY2FuIGFk
ZCBhIGBgc2NvcGU9Im1vZHVsZSJgYCBwYXJhbWV0ZXIgdG8gdGhlCiA6cHk6ZnVuYzpgQHB5dGVz
dC5maXh0dXJlIDxfcHl0ZXN0LnB5dGhvbi5maXh0dXJlPmAgaW52b2NhdGlvbgotdG8gY2F1c2Ug
dGhlIGRlY29yYXRlZCBgYHNtdHBgYCBmaXh0dXJlIGZ1bmN0aW9uIHRvIG9ubHkgYmUgaW52b2tl
ZCBvbmNlCi1wZXIgdGVzdCAqbW9kdWxlKiAodGhlIGRlZmF1bHQgaXMgdG8gaW52b2tlIG9uY2Ug
cGVyIHRlc3QgKmZ1bmN0aW9uKikuCit0byBjYXVzZSB0aGUgZGVjb3JhdGVkIGBgc210cF9jb25u
ZWN0aW9uYGAgZml4dHVyZSBmdW5jdGlvbiB0byBvbmx5IGJlIGludm9rZWQKK29uY2UgcGVyIHRl
c3QgKm1vZHVsZSogKHRoZSBkZWZhdWx0IGlzIHRvIGludm9rZSBvbmNlIHBlciB0ZXN0ICpmdW5j
dGlvbiopLgogTXVsdGlwbGUgdGVzdCBmdW5jdGlvbnMgaW4gYSB0ZXN0IG1vZHVsZSB3aWxsIHRo
dXMKLWVhY2ggcmVjZWl2ZSB0aGUgc2FtZSBgYHNtdHBgYCBmaXh0dXJlIGluc3RhbmNlLCB0aHVz
IHNhdmluZyB0aW1lLgorZWFjaCByZWNlaXZlIHRoZSBzYW1lIGBgc210cF9jb25uZWN0aW9uYGAg
Zml4dHVyZSBpbnN0YW5jZSwgdGh1cyBzYXZpbmcgdGltZS4KK1Bvc3NpYmxlIHZhbHVlcyBmb3Ig
YGBzY29wZWBgIGFyZTogYGBmdW5jdGlvbmBgLCBgYGNsYXNzYGAsIGBgbW9kdWxlYGAsIGBgcGFj
a2FnZWBgIG9yIGBgc2Vzc2lvbmBgLgogCiBUaGUgbmV4dCBleGFtcGxlIHB1dHMgdGhlIGZpeHR1
cmUgZnVuY3Rpb24gaW50byBhIHNlcGFyYXRlIGBgY29uZnRlc3QucHlgYCBmaWxlCiBzbyB0aGF0
IHRlc3RzIGZyb20gbXVsdGlwbGUgdGVzdCBtb2R1bGVzIGluIHRoZSBkaXJlY3RvcnkgY2FuCkBA
IC0xODEsMzMgKzE4NywzNyBAQCBhY2Nlc3MgdGhlIGZpeHR1cmUgZnVuY3Rpb246OgogICAgIGlt
cG9ydCBzbXRwbGliCiAKICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCi0gICAg
ZGVmIHNtdHAoKToKKyAgICBkZWYgc210cF9jb25uZWN0aW9uKCk6CiAgICAgICAgIHJldHVybiBz
bXRwbGliLlNNVFAoInNtdHAuZ21haWwuY29tIiwgNTg3LCB0aW1lb3V0PTUpCiAKLVRoZSBuYW1l
IG9mIHRoZSBmaXh0dXJlIGFnYWluIGlzIGBgc210cGBgIGFuZCB5b3UgY2FuIGFjY2VzcyBpdHMg
cmVzdWx0IGJ5Ci1saXN0aW5nIHRoZSBuYW1lIGBgc210cGBgIGFzIGFuIGlucHV0IHBhcmFtZXRl
ciBpbiBhbnkgdGVzdCBvciBmaXh0dXJlCi1mdW5jdGlvbiAoaW4gb3IgYmVsb3cgdGhlIGRpcmVj
dG9yeSB3aGVyZSBgYGNvbmZ0ZXN0LnB5YGAgaXMgbG9jYXRlZCk6OgorVGhlIG5hbWUgb2YgdGhl
IGZpeHR1cmUgYWdhaW4gaXMgYGBzbXRwX2Nvbm5lY3Rpb25gYCBhbmQgeW91IGNhbiBhY2Nlc3Mg
aXRzCityZXN1bHQgYnkgbGlzdGluZyB0aGUgbmFtZSBgYHNtdHBfY29ubmVjdGlvbmBgIGFzIGFu
IGlucHV0IHBhcmFtZXRlciBpbiBhbnkKK3Rlc3Qgb3IgZml4dHVyZSBmdW5jdGlvbiAoaW4gb3Ig
YmVsb3cgdGhlIGRpcmVjdG9yeSB3aGVyZSBgYGNvbmZ0ZXN0LnB5YGAgaXMKK2xvY2F0ZWQpOjoK
IAogICAgICMgY29udGVudCBvZiB0ZXN0X21vZHVsZS5weQogCi0gICAgZGVmIHRlc3RfZWhsbyhz
bXRwKToKLSAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHAuZWhsbygpCisgICAgZGVmIHRlc3Rf
ZWhsbyhzbXRwX2Nvbm5lY3Rpb24pOgorICAgICAgICByZXNwb25zZSwgbXNnID0gc210cF9jb25u
ZWN0aW9uLmVobG8oKQogICAgICAgICBhc3NlcnQgcmVzcG9uc2UgPT0gMjUwCiAgICAgICAgIGFz
c2VydCBiInNtdHAuZ21haWwuY29tIiBpbiBtc2cKICAgICAgICAgYXNzZXJ0IDAgICMgZm9yIGRl
bW8gcHVycG9zZXMKIAotICAgIGRlZiB0ZXN0X25vb3Aoc210cCk6Ci0gICAgICAgIHJlc3BvbnNl
LCBtc2cgPSBzbXRwLm5vb3AoKQorICAgIGRlZiB0ZXN0X25vb3Aoc210cF9jb25uZWN0aW9uKToK
KyAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHBfY29ubmVjdGlvbi5ub29wKCkKICAgICAgICAg
YXNzZXJ0IHJlc3BvbnNlID09IDI1MAogICAgICAgICBhc3NlcnQgMCAgIyBmb3IgZGVtbyBwdXJw
b3NlcwogCiBXZSBkZWxpYmVyYXRlbHkgaW5zZXJ0IGZhaWxpbmcgYGBhc3NlcnQgMGBgIHN0YXRl
bWVudHMgaW4gb3JkZXIgdG8KLWluc3BlY3Qgd2hhdCBpcyBnb2luZyBvbiBhbmQgY2FuIG5vdyBy
dW4gdGhlIHRlc3RzOjoKK2luc3BlY3Qgd2hhdCBpcyBnb2luZyBvbiBhbmQgY2FuIG5vdyBydW4g
dGhlIHRlc3RzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCB0ZXN0
X21vZHVsZS5weQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24g
c3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAt
LSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAg
IHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXgg
LS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAg
ICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRS
RUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQgMiBpdGVtcwogCiAgICAgdGVzdF9tb2R1bGUu
cHkgRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WzEwMCVdCkBAIC0yMTUsMTAgKzIyNSwxMCBAQCBpbnNwZWN0IHdoYXQgaXMgZ29pbmcgb24gYW5k
IGNhbiBub3cgcnVuIHRoZSB0ZXN0czo6CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgIF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZWhsbyBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KIAotICAgIHNtdHAgPSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAw
eGRlYWRiZWVmPgorICAgIHNtdHBfY29ubmVjdGlvbiA9IDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+CiAKLSAgICAgICAgZGVmIHRlc3RfZWhsbyhzbXRwKToKLSAgICAgICAgICAg
IHJlc3BvbnNlLCBtc2cgPSBzbXRwLmVobG8oKQorICAgICAgICBkZWYgdGVzdF9laGxvKHNtdHBf
Y29ubmVjdGlvbik6CisgICAgICAgICAgICByZXNwb25zZSwgbXNnID0gc210cF9jb25uZWN0aW9u
LmVobG8oKQogICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAogICAgICAgICAgICAg
YXNzZXJ0IGIic210cC5nbWFpbC5jb20iIGluIG1zZwogICAgID4gICAgICAgYXNzZXJ0IDAgICMg
Zm9yIGRlbW8gcHVycG9zZXMKQEAgLTIyNywxMCArMjM3LDEwIEBAIGluc3BlY3Qgd2hhdCBpcyBn
b2luZyBvbiBhbmQgY2FuIG5vdyBydW4gdGhlIHRlc3RzOjoKICAgICB0ZXN0X21vZHVsZS5weTo2
OiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRl
c3Rfbm9vcCBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIAotICAgIHNtdHAgPSA8
c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIHNtdHBfY29ubmVjdGlvbiA9
IDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CiAKLSAgICAgICAgZGVmIHRlc3Rf
bm9vcChzbXRwKToKLSAgICAgICAgICAgIHJlc3BvbnNlLCBtc2cgPSBzbXRwLm5vb3AoKQorICAg
ICAgICBkZWYgdGVzdF9ub29wKHNtdHBfY29ubmVjdGlvbik6CisgICAgICAgICAgICByZXNwb25z
ZSwgbXNnID0gc210cF9jb25uZWN0aW9uLm5vb3AoKQogICAgICAgICAgICAgYXNzZXJ0IHJlc3Bv
bnNlID09IDI1MAogICAgID4gICAgICAgYXNzZXJ0IDAgICMgZm9yIGRlbW8gcHVycG9zZXMKICAg
ICBFICAgICAgIGFzc2VydCAwCkBAIC0yMzksMjkgKzI0OSw1MCBAQCBpbnNwZWN0IHdoYXQgaXMg
Z29pbmcgb24gYW5kIGNhbiBub3cgcnVuIHRoZSB0ZXN0czo6CiAgICAgPT09PT09PT09PT09PT09
PT09PT09PT09PSAyIGZhaWxlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09
PT09PQogCiBZb3Ugc2VlIHRoZSB0d28gYGBhc3NlcnQgMGBgIGZhaWxpbmcgYW5kIG1vcmUgaW1w
b3J0YW50bHkgeW91IGNhbiBhbHNvIHNlZQotdGhhdCB0aGUgc2FtZSAobW9kdWxlLXNjb3BlZCkg
YGBzbXRwYGAgb2JqZWN0IHdhcyBwYXNzZWQgaW50byB0aGUgdHdvCi10ZXN0IGZ1bmN0aW9ucyBi
ZWNhdXNlIHB5dGVzdCBzaG93cyB0aGUgaW5jb21pbmcgYXJndW1lbnQgdmFsdWVzIGluIHRoZQot
dHJhY2ViYWNrLiAgQXMgYSByZXN1bHQsIHRoZSB0d28gdGVzdCBmdW5jdGlvbnMgdXNpbmcgYGBz
bXRwYGAgcnVuIGFzCi1xdWljayBhcyBhIHNpbmdsZSBvbmUgYmVjYXVzZSB0aGV5IHJldXNlIHRo
ZSBzYW1lIGluc3RhbmNlLgordGhhdCB0aGUgc2FtZSAobW9kdWxlLXNjb3BlZCkgYGBzbXRwX2Nv
bm5lY3Rpb25gYCBvYmplY3Qgd2FzIHBhc3NlZCBpbnRvIHRoZQordHdvIHRlc3QgZnVuY3Rpb25z
IGJlY2F1c2UgcHl0ZXN0IHNob3dzIHRoZSBpbmNvbWluZyBhcmd1bWVudCB2YWx1ZXMgaW4gdGhl
Cit0cmFjZWJhY2suICBBcyBhIHJlc3VsdCwgdGhlIHR3byB0ZXN0IGZ1bmN0aW9ucyB1c2luZyBg
YHNtdHBfY29ubmVjdGlvbmBgIHJ1bgorYXMgcXVpY2sgYXMgYSBzaW5nbGUgb25lIGJlY2F1c2Ug
dGhleSByZXVzZSB0aGUgc2FtZSBpbnN0YW5jZS4KIAotSWYgeW91IGRlY2lkZSB0aGF0IHlvdSBy
YXRoZXIgd2FudCB0byBoYXZlIGEgc2Vzc2lvbi1zY29wZWQgYGBzbXRwYGAKK0lmIHlvdSBkZWNp
ZGUgdGhhdCB5b3UgcmF0aGVyIHdhbnQgdG8gaGF2ZSBhIHNlc3Npb24tc2NvcGVkIGBgc210cF9j
b25uZWN0aW9uYGAKIGluc3RhbmNlLCB5b3UgY2FuIHNpbXBseSBkZWNsYXJlIGl0OgogCiAuLiBj
b2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24i
KQotICAgIGRlZiBzbXRwKCk6CisgICAgZGVmIHNtdHBfY29ubmVjdGlvbigpOgogICAgICAgICAj
IHRoZSByZXR1cm5lZCBmaXh0dXJlIHZhbHVlIHdpbGwgYmUgc2hhcmVkIGZvcgogICAgICAgICAj
IGFsbCB0ZXN0cyBuZWVkaW5nIGl0CiAgICAgICAgIC4uLgogCiBGaW5hbGx5LCB0aGUgYGBjbGFz
c2BgIHNjb3BlIHdpbGwgaW52b2tlIHRoZSBmaXh0dXJlIG9uY2UgcGVyIHRlc3QgKmNsYXNzKi4K
IAorLi4gbm90ZTo6CisKKyAgICBQeXRlc3Qgd2lsbCBvbmx5IGNhY2hlIG9uZSBpbnN0YW5jZSBv
ZiBhIGZpeHR1cmUgYXQgYSB0aW1lLgorICAgIFRoaXMgbWVhbnMgdGhhdCB3aGVuIHVzaW5nIGEg
cGFyYW1ldHJpemVkIGZpeHR1cmUsIHB5dGVzdCBtYXkgaW52b2tlIGEgZml4dHVyZSBtb3JlIHRo
YW4gb25jZSBpbiB0aGUgZ2l2ZW4gc2NvcGUuCisKKworYGBwYWNrYWdlYGAgc2NvcGUgKGV4cGVy
aW1lbnRhbCkKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKKworCitJbiBweXRl
c3QgMy43IHRoZSBgYHBhY2thZ2VgYCBzY29wZSBoYXMgYmVlbiBpbnRyb2R1Y2VkLiBQYWNrYWdl
LXNjb3BlZCBmaXh0dXJlcworYXJlIGZpbmFsaXplZCB3aGVuIHRoZSBsYXN0IHRlc3Qgb2YgYSAq
cGFja2FnZSogZmluaXNoZXMuCisKKy4uIHdhcm5pbmc6OgorICAgIFRoaXMgZnVuY3Rpb25hbGl0
eSBpcyBjb25zaWRlcmVkICoqZXhwZXJpbWVudGFsKiogYW5kIG1heSBiZSByZW1vdmVkIGluIGZ1
dHVyZQorICAgIHZlcnNpb25zIGlmIGhpZGRlbiBjb3JuZXItY2FzZXMgb3Igc2VyaW91cyBwcm9i
bGVtcyB3aXRoIHRoaXMgZnVuY3Rpb25hbGl0eQorICAgIGFyZSBkaXNjb3ZlcmVkIGFmdGVyIGl0
IGdldHMgbW9yZSB1c2FnZSBpbiB0aGUgd2lsZC4KKworICAgIFVzZSB0aGlzIG5ldyBmZWF0dXJl
IHNwYXJpbmdseSBhbmQgcGxlYXNlIG1ha2Ugc3VyZSB0byByZXBvcnQgYW55IGlzc3VlcyB5b3Ug
ZmluZC4KKwogCiBIaWdoZXItc2NvcGVkIGZpeHR1cmVzIGFyZSBpbnN0YW50aWF0ZWQgZmlyc3QK
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0uLiB2ZXJz
aW9uYWRkZWQ6OiAzLjUKKwogCiBXaXRoaW4gYSBmdW5jdGlvbiByZXF1ZXN0IGZvciBmZWF0dXJl
cywgZml4dHVyZSBvZiBoaWdoZXItc2NvcGVzIChzdWNoIGFzIGBgc2Vzc2lvbmBgKSBhcmUgaW5z
dGFudGlhdGVkIGZpcnN0IHRoYW4KIGxvd2VyLXNjb3BlZCBmaXh0dXJlcyAoc3VjaCBhcyBgYGZ1
bmN0aW9uYGAgb3IgYGBjbGFzc2BgKS4gVGhlIHJlbGF0aXZlIG9yZGVyIG9mIGZpeHR1cmVzIG9m
IHNhbWUgc2NvcGUgZm9sbG93cwpAQCAtMzIzLDI0ICszNTQsMjYgQEAgdGhlIGNvZGUgYWZ0ZXIg
dGhlICp5aWVsZCogc3RhdGVtZW50IHNlcnZlcyBhcyB0aGUgdGVhcmRvd24gY29kZToKIAogCiAg
ICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQotICAgIGRlZiBzbXRwKCk6Ci0gICAg
ICAgIHNtdHAgPSBzbXRwbGliLlNNVFAoInNtdHAuZ21haWwuY29tIiwgNTg3LCB0aW1lb3V0PTUp
Ci0gICAgICAgIHlpZWxkIHNtdHAgICMgcHJvdmlkZSB0aGUgZml4dHVyZSB2YWx1ZQorICAgIGRl
ZiBzbXRwX2Nvbm5lY3Rpb24oKToKKyAgICAgICAgc210cF9jb25uZWN0aW9uID0gc210cGxpYi5T
TVRQKCJzbXRwLmdtYWlsLmNvbSIsIDU4NywgdGltZW91dD01KQorICAgICAgICB5aWVsZCBzbXRw
X2Nvbm5lY3Rpb24gICMgcHJvdmlkZSB0aGUgZml4dHVyZSB2YWx1ZQogICAgICAgICBwcmludCgi
dGVhcmRvd24gc210cCIpCi0gICAgICAgIHNtdHAuY2xvc2UoKQorICAgICAgICBzbXRwX2Nvbm5l
Y3Rpb24uY2xvc2UoKQogCiBUaGUgYGBwcmludGBgIGFuZCBgYHNtdHAuY2xvc2UoKWBgIHN0YXRl
bWVudHMgd2lsbCBleGVjdXRlIHdoZW4gdGhlIGxhc3QgdGVzdCBpbgogdGhlIG1vZHVsZSBoYXMg
ZmluaXNoZWQgZXhlY3V0aW9uLCByZWdhcmRsZXNzIG9mIHRoZSBleGNlcHRpb24gc3RhdHVzIG9m
IHRoZQogdGVzdHMuCiAKLUxldCdzIGV4ZWN1dGUgaXQ6OgorTGV0J3MgZXhlY3V0ZSBpdDoKKwor
Li4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXMgLXEgLS10Yj1ubwogICAg
IEZGdGVhcmRvd24gc210cAogCiAgICAgMiBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzCiAKLVdlIHNl
ZSB0aGF0IHRoZSBgYHNtdHBgYCBpbnN0YW5jZSBpcyBmaW5hbGl6ZWQgYWZ0ZXIgdGhlIHR3bwor
V2Ugc2VlIHRoYXQgdGhlIGBgc210cF9jb25uZWN0aW9uYGAgaW5zdGFuY2UgaXMgZmluYWxpemVk
IGFmdGVyIHRoZSB0d28KIHRlc3RzIGZpbmlzaGVkIGV4ZWN1dGlvbi4gIE5vdGUgdGhhdCBpZiB3
ZSBkZWNvcmF0ZWQgb3VyIGZpeHR1cmUKIGZ1bmN0aW9uIHdpdGggYGBzY29wZT0nZnVuY3Rpb24n
YGAgdGhlbiBmaXh0dXJlIHNldHVwIGFuZCBjbGVhbnVwIHdvdWxkCiBvY2N1ciBhcm91bmQgZWFj
aCBzaW5nbGUgdGVzdC4gIEluIGVpdGhlciBjYXNlIHRoZSB0ZXN0CkBAIC0zNTgsMTMgKzM5MSwx
MyBAQCBOb3RlIHRoYXQgd2UgY2FuIGFsc28gc2VhbWxlc3NseSB1c2UgdGhlIGBgeWllbGRgYCBz
eW50YXggd2l0aCBgYHdpdGhgYCBzdGF0ZW1lbgogCiAKICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9Im1vZHVsZSIpCi0gICAgZGVmIHNtdHAoKToKLSAgICAgICAgd2l0aCBzbXRwbGliLlNNVFAo
InNtdHAuZ21haWwuY29tIiwgNTg3LCB0aW1lb3V0PTUpIGFzIHNtdHA6Ci0gICAgICAgICAgICB5
aWVsZCBzbXRwICAjIHByb3ZpZGUgdGhlIGZpeHR1cmUgdmFsdWUKKyAgICBkZWYgc210cF9jb25u
ZWN0aW9uKCk6CisgICAgICAgIHdpdGggc210cGxpYi5TTVRQKCJzbXRwLmdtYWlsLmNvbSIsIDU4
NywgdGltZW91dD01KSBhcyBzbXRwX2Nvbm5lY3Rpb246CisgICAgICAgICAgICB5aWVsZCBzbXRw
X2Nvbm5lY3Rpb24gICMgcHJvdmlkZSB0aGUgZml4dHVyZSB2YWx1ZQogCiAKLVRoZSBgYHNtdHBg
YCBjb25uZWN0aW9uIHdpbGwgYmUgY2xvc2VkIGFmdGVyIHRoZSB0ZXN0IGZpbmlzaGVkIGV4ZWN1
dGlvbgotYmVjYXVzZSB0aGUgYGBzbXRwYGAgb2JqZWN0IGF1dG9tYXRpY2FsbHkgY2xvc2VzIHdo
ZW4KK1RoZSBgYHNtdHBfY29ubmVjdGlvbmBgIGNvbm5lY3Rpb24gd2lsbCBiZSBjbG9zZWQgYWZ0
ZXIgdGhlIHRlc3QgZmluaXNoZWQKK2V4ZWN1dGlvbiBiZWNhdXNlIHRoZSBgYHNtdHBfY29ubmVj
dGlvbmBgIG9iamVjdCBhdXRvbWF0aWNhbGx5IGNsb3NlcyB3aGVuCiB0aGUgYGB3aXRoYGAgc3Rh
dGVtZW50IGVuZHMuCiAKIE5vdGUgdGhhdCBpZiBhbiBleGNlcHRpb24gaGFwcGVucyBkdXJpbmcg
dGhlICpzZXR1cCogY29kZSAoYmVmb3JlIHRoZSBgYHlpZWxkYGAga2V5d29yZCksIHRoZQpAQCAt
Mzc0LDcgKzQwNyw3IEBAIEFuIGFsdGVybmF0aXZlIG9wdGlvbiBmb3IgZXhlY3V0aW5nICp0ZWFy
ZG93biogY29kZSBpcyB0bwogbWFrZSB1c2Ugb2YgdGhlIGBgYWRkZmluYWxpemVyYGAgbWV0aG9k
IG9mIHRoZSBgcmVxdWVzdC1jb250ZXh0YF8gb2JqZWN0IHRvIHJlZ2lzdGVyCiBmaW5hbGl6YXRp
b24gZnVuY3Rpb25zLgogCi1IZXJlJ3MgdGhlIGBgc210cGBgIGZpeHR1cmUgY2hhbmdlZCB0byB1
c2UgYGBhZGRmaW5hbGl6ZXJgYCBmb3IgY2xlYW51cDoKK0hlcmUncyB0aGUgYGBzbXRwX2Nvbm5l
Y3Rpb25gYCBmaXh0dXJlIGNoYW5nZWQgdG8gdXNlIGBgYWRkZmluYWxpemVyYGAgZm9yIGNsZWFu
dXA6CiAKIC4uIGNvZGUtYmxvY2s6OiBweXRob24KIApAQCAtMzg0LDE1ICs0MTcsMTUgQEAgSGVy
ZSdzIHRoZSBgYHNtdHBgYCBmaXh0dXJlIGNoYW5nZWQgdG8gdXNlIGBgYWRkZmluYWxpemVyYGAg
Zm9yIGNsZWFudXA6CiAKIAogICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKLSAg
ICBkZWYgc210cChyZXF1ZXN0KToKLSAgICAgICAgc210cCA9IHNtdHBsaWIuU01UUCgic210cC5n
bWFpbC5jb20iLCA1ODcsIHRpbWVvdXQ9NSkKKyAgICBkZWYgc210cF9jb25uZWN0aW9uKHJlcXVl
c3QpOgorICAgICAgICBzbXRwX2Nvbm5lY3Rpb24gPSBzbXRwbGliLlNNVFAoInNtdHAuZ21haWwu
Y29tIiwgNTg3LCB0aW1lb3V0PTUpCiAKICAgICAgICAgZGVmIGZpbigpOgotICAgICAgICAgICAg
cHJpbnQoInRlYXJkb3duIHNtdHAiKQotICAgICAgICAgICAgc210cC5jbG9zZSgpCisgICAgICAg
ICAgICBwcmludCgidGVhcmRvd24gc210cF9jb25uZWN0aW9uIikKKyAgICAgICAgICAgIHNtdHBf
Y29ubmVjdGlvbi5jbG9zZSgpCiAKICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQot
ICAgICAgICByZXR1cm4gc210cCAgIyBwcm92aWRlIHRoZSBmaXh0dXJlIHZhbHVlCisgICAgICAg
IHJldHVybiBzbXRwX2Nvbm5lY3Rpb24gICMgcHJvdmlkZSB0aGUgZml4dHVyZSB2YWx1ZQogCiAK
IEJvdGggYGB5aWVsZGBgIGFuZCBgYGFkZGZpbmFsaXplcmBgIG1ldGhvZHMgd29yayBzaW1pbGFy
bHkgYnkgY2FsbGluZyB0aGVpciBjb2RlIGFmdGVyIHRoZSB0ZXN0CkBAIC00MjUsNyArNDU4LDcg
QEAgRml4dHVyZXMgY2FuIGludHJvc3BlY3QgdGhlIHJlcXVlc3RpbmcgdGVzdCBjb250ZXh0CiAK
IEZpeHR1cmUgZnVuY3Rpb25zIGNhbiBhY2NlcHQgdGhlIDpweTpjbGFzczpgcmVxdWVzdCA8Rml4
dHVyZVJlcXVlc3Q+YCBvYmplY3QKIHRvIGludHJvc3BlY3QgdGhlICJyZXF1ZXN0aW5nIiB0ZXN0
IGZ1bmN0aW9uLCBjbGFzcyBvciBtb2R1bGUgY29udGV4dC4KLUZ1cnRoZXIgZXh0ZW5kaW5nIHRo
ZSBwcmV2aW91cyBgYHNtdHBgYCBmaXh0dXJlIGV4YW1wbGUsIGxldCdzCitGdXJ0aGVyIGV4dGVu
ZGluZyB0aGUgcHJldmlvdXMgYGBzbXRwX2Nvbm5lY3Rpb25gYCBmaXh0dXJlIGV4YW1wbGUsIGxl
dCdzCiByZWFkIGFuIG9wdGlvbmFsIHNlcnZlciBVUkwgZnJvbSB0aGUgdGVzdCBtb2R1bGUgd2hp
Y2ggdXNlcyBvdXIgZml4dHVyZTo6CiAKICAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKQEAg
LTQzMywxNiArNDY2LDE4IEBAIHJlYWQgYW4gb3B0aW9uYWwgc2VydmVyIFVSTCBmcm9tIHRoZSB0
ZXN0IG1vZHVsZSB3aGljaCB1c2VzIG91ciBmaXh0dXJlOjoKICAgICBpbXBvcnQgc210cGxpYgog
CiAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQotICAgIGRlZiBzbXRwKHJlcXVl
c3QpOgorICAgIGRlZiBzbXRwX2Nvbm5lY3Rpb24ocmVxdWVzdCk6CiAgICAgICAgIHNlcnZlciA9
IGdldGF0dHIocmVxdWVzdC5tb2R1bGUsICJzbXRwc2VydmVyIiwgInNtdHAuZ21haWwuY29tIikK
LSAgICAgICAgc210cCA9IHNtdHBsaWIuU01UUChzZXJ2ZXIsIDU4NywgdGltZW91dD01KQotICAg
ICAgICB5aWVsZCBzbXRwCi0gICAgICAgIHByaW50ICgiZmluYWxpemluZyAlcyAoJXMpIiAlIChz
bXRwLCBzZXJ2ZXIpKQotICAgICAgICBzbXRwLmNsb3NlKCkKKyAgICAgICAgc210cF9jb25uZWN0
aW9uID0gc210cGxpYi5TTVRQKHNlcnZlciwgNTg3LCB0aW1lb3V0PTUpCisgICAgICAgIHlpZWxk
IHNtdHBfY29ubmVjdGlvbgorICAgICAgICBwcmludCgiZmluYWxpemluZyAlcyAoJXMpIiAlIChz
bXRwX2Nvbm5lY3Rpb24sIHNlcnZlcikpCisgICAgICAgIHNtdHBfY29ubmVjdGlvbi5jbG9zZSgp
CiAKIFdlIHVzZSB0aGUgYGByZXF1ZXN0Lm1vZHVsZWBgIGF0dHJpYnV0ZSB0byBvcHRpb25hbGx5
IG9idGFpbiBhbgogYGBzbXRwc2VydmVyYGAgYXR0cmlidXRlIGZyb20gdGhlIHRlc3QgbW9kdWxl
LiAgSWYgd2UganVzdCBleGVjdXRlCi1hZ2Fpbiwgbm90aGluZyBtdWNoIGhhcyBjaGFuZ2VkOjoK
K2FnYWluLCBub3RoaW5nIG11Y2ggaGFzIGNoYW5nZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRl
c3QKIAogICAgICQgcHl0ZXN0IC1zIC1xIC0tdGI9bm8KICAgICBGRmZpbmFsaXppbmcgPHNtdHBs
aWIuU01UUCBvYmplY3QgYXQgMHhkZWFkYmVlZj4gKHNtdHAuZ21haWwuY29tKQpAQCAtNDU2LDIz
ICs0OTEsMjUgQEAgc2VydmVyIFVSTCBpbiBpdHMgbW9kdWxlIG5hbWVzcGFjZTo6CiAKICAgICBz
bXRwc2VydmVyID0gIm1haWwucHl0aG9uLm9yZyIgICMgd2lsbCBiZSByZWFkIGJ5IHNtdHAgZml4
dHVyZQogCi0gICAgZGVmIHRlc3Rfc2hvd2hlbG8oc210cCk6Ci0gICAgICAgIGFzc2VydCAwLCBz
bXRwLmhlbG8oKQorICAgIGRlZiB0ZXN0X3Nob3doZWxvKHNtdHBfY29ubmVjdGlvbik6CisgICAg
ICAgIGFzc2VydCAwLCBzbXRwX2Nvbm5lY3Rpb24uaGVsbygpCisKK1J1bm5pbmcgaXQ6CiAKLVJ1
bm5pbmcgaXQ6OgorLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXFxIC0t
dGI9c2hvcnQgdGVzdF9hbm90aGVyc210cC5weQogICAgIEYgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQogICAg
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX18g
dGVzdF9zaG93aGVsbyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAgICAgdGVzdF9h
bm90aGVyc210cC5weTo1OiBpbiB0ZXN0X3Nob3doZWxvCi0gICAgICAgIGFzc2VydCAwLCBzbXRw
LmhlbG8oKQorICAgICAgICBhc3NlcnQgMCwgc210cF9jb25uZWN0aW9uLmhlbG8oKQogICAgIEUg
ICBBc3NlcnRpb25FcnJvcjogKDI1MCwgYidtYWlsLnB5dGhvbi5vcmcnKQogICAgIEUgICBhc3Nl
cnQgMAogICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3Rkb3V0IHRlYXJk
b3duIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBmaW5hbGl6aW5nIDxzbXRwbGliLlNN
VFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+IChtYWlsLnB5dGhvbi5vcmcpCiAKLXZvaWxhISBUaGUg
YGBzbXRwYGAgZml4dHVyZSBmdW5jdGlvbiBwaWNrZWQgdXAgb3VyIG1haWwgc2VydmVyIG5hbWUK
K3ZvaWxhISBUaGUgYGBzbXRwX2Nvbm5lY3Rpb25gYCBmaXh0dXJlIGZ1bmN0aW9uIHBpY2tlZCB1
cCBvdXIgbWFpbCBzZXJ2ZXIgbmFtZQogZnJvbSB0aGUgbW9kdWxlIG5hbWVzcGFjZS4KIAogLi4g
X2BmaXh0dXJlLWZhY3RvcnlgOgpAQCAtNTM1LDEzICs1NzIsMTMgQEAgUGFyYW1ldHJpemluZyBm
aXh0dXJlcwogCiBGaXh0dXJlIGZ1bmN0aW9ucyBjYW4gYmUgcGFyYW1ldHJpemVkIGluIHdoaWNo
IGNhc2UgdGhleSB3aWxsIGJlIGNhbGxlZAogbXVsdGlwbGUgdGltZXMsIGVhY2ggdGltZSBleGVj
dXRpbmcgdGhlIHNldCBvZiBkZXBlbmRlbnQgdGVzdHMsIGkuIGUuIHRoZQotdGVzdHMgdGhhdCBk
ZXBlbmQgb24gdGhpcyBmaXh0dXJlLiAgVGVzdCBmdW5jdGlvbnMgZG8gdXN1YWxseSBub3QgbmVl
ZAordGVzdHMgdGhhdCBkZXBlbmQgb24gdGhpcyBmaXh0dXJlLiAgVGVzdCBmdW5jdGlvbnMgdXN1
YWxseSBkbyBub3QgbmVlZAogdG8gYmUgYXdhcmUgb2YgdGhlaXIgcmUtcnVubmluZy4gIEZpeHR1
cmUgcGFyYW1ldHJpemF0aW9uIGhlbHBzIHRvCiB3cml0ZSBleGhhdXN0aXZlIGZ1bmN0aW9uYWwg
dGVzdHMgZm9yIGNvbXBvbmVudHMgd2hpY2ggdGhlbXNlbHZlcyBjYW4gYmUKIGNvbmZpZ3VyZWQg
aW4gbXVsdGlwbGUgd2F5cy4KIAogRXh0ZW5kaW5nIHRoZSBwcmV2aW91cyBleGFtcGxlLCB3ZSBj
YW4gZmxhZyB0aGUgZml4dHVyZSB0byBjcmVhdGUgdHdvCi1gYHNtdHBgYCBmaXh0dXJlIGluc3Rh
bmNlcyB3aGljaCB3aWxsIGNhdXNlIGFsbCB0ZXN0cyB1c2luZyB0aGUgZml4dHVyZQorYGBzbXRw
X2Nvbm5lY3Rpb25gYCBmaXh0dXJlIGluc3RhbmNlcyB3aGljaCB3aWxsIGNhdXNlIGFsbCB0ZXN0
cyB1c2luZyB0aGUgZml4dHVyZQogdG8gcnVuIHR3aWNlLiAgVGhlIGZpeHR1cmUgZnVuY3Rpb24g
Z2V0cyBhY2Nlc3MgdG8gZWFjaCBwYXJhbWV0ZXIKIHRocm91Z2ggdGhlIHNwZWNpYWwgOnB5OmNs
YXNzOmByZXF1ZXN0IDxGaXh0dXJlUmVxdWVzdD5gIG9iamVjdDo6CiAKQEAgLTU1MSwyNyArNTg4
LDI5IEBAIHRocm91Z2ggdGhlIHNwZWNpYWwgOnB5OmNsYXNzOmByZXF1ZXN0IDxGaXh0dXJlUmVx
dWVzdD5gIG9iamVjdDo6CiAKICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsCiAg
ICAgICAgICAgICAgICAgICAgIHBhcmFtcz1bInNtdHAuZ21haWwuY29tIiwgIm1haWwucHl0aG9u
Lm9yZyJdKQotICAgIGRlZiBzbXRwKHJlcXVlc3QpOgotICAgICAgICBzbXRwID0gc210cGxpYi5T
TVRQKHJlcXVlc3QucGFyYW0sIDU4NywgdGltZW91dD01KQotICAgICAgICB5aWVsZCBzbXRwCi0g
ICAgICAgIHByaW50ICgiZmluYWxpemluZyAlcyIgJSBzbXRwKQotICAgICAgICBzbXRwLmNsb3Nl
KCkKKyAgICBkZWYgc210cF9jb25uZWN0aW9uKHJlcXVlc3QpOgorICAgICAgICBzbXRwX2Nvbm5l
Y3Rpb24gPSBzbXRwbGliLlNNVFAocmVxdWVzdC5wYXJhbSwgNTg3LCB0aW1lb3V0PTUpCisgICAg
ICAgIHlpZWxkIHNtdHBfY29ubmVjdGlvbgorICAgICAgICBwcmludCgiZmluYWxpemluZyAlcyIg
JSBzbXRwX2Nvbm5lY3Rpb24pCisgICAgICAgIHNtdHBfY29ubmVjdGlvbi5jbG9zZSgpCiAKIFRo
ZSBtYWluIGNoYW5nZSBpcyB0aGUgZGVjbGFyYXRpb24gb2YgYGBwYXJhbXNgYCB3aXRoCiA6cHk6
ZnVuYzpgQHB5dGVzdC5maXh0dXJlIDxfcHl0ZXN0LnB5dGhvbi5maXh0dXJlPmAsIGEgbGlzdCBv
ZiB2YWx1ZXMKIGZvciBlYWNoIG9mIHdoaWNoIHRoZSBmaXh0dXJlIGZ1bmN0aW9uIHdpbGwgZXhl
Y3V0ZSBhbmQgY2FuIGFjY2VzcwogYSB2YWx1ZSB2aWEgYGByZXF1ZXN0LnBhcmFtYGAuICBObyB0
ZXN0IGZ1bmN0aW9uIGNvZGUgbmVlZHMgdG8gY2hhbmdlLgotU28gbGV0J3MganVzdCBkbyBhbm90
aGVyIHJ1bjo6CitTbyBsZXQncyBqdXN0IGRvIGFub3RoZXIgcnVuOgorCisuLiBjb2RlLWJsb2Nr
OjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcSB0ZXN0X21vZHVsZS5weQogICAgIEZGRkYgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsxMDAlXQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJF
UyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICBfX19fX19fX19fX19fX19f
X19fX19fX18gdGVzdF9laGxvW3NtdHAuZ21haWwuY29tXSBfX19fX19fX19fX19fX19fX19fX19f
X19fCiAKLSAgICBzbXRwID0gPHNtdHBsaWIuU01UUCBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAg
ICBzbXRwX2Nvbm5lY3Rpb24gPSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgog
Ci0gICAgICAgIGRlZiB0ZXN0X2VobG8oc210cCk6Ci0gICAgICAgICAgICByZXNwb25zZSwgbXNn
ID0gc210cC5laGxvKCkKKyAgICAgICAgZGVmIHRlc3RfZWhsbyhzbXRwX2Nvbm5lY3Rpb24pOgor
ICAgICAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHBfY29ubmVjdGlvbi5laGxvKCkKICAgICAg
ICAgICAgIGFzc2VydCByZXNwb25zZSA9PSAyNTAKICAgICAgICAgICAgIGFzc2VydCBiInNtdHAu
Z21haWwuY29tIiBpbiBtc2cKICAgICA+ICAgICAgIGFzc2VydCAwICAjIGZvciBkZW1vIHB1cnBv
c2VzCkBAIC01ODAsMTAgKzYxOSwxMCBAQCBTbyBsZXQncyBqdXN0IGRvIGFub3RoZXIgcnVuOjoK
ICAgICB0ZXN0X21vZHVsZS5weTo2OiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19f
X19fX19fX19fXyB0ZXN0X25vb3Bbc210cC5nbWFpbC5jb21dIF9fX19fX19fX19fX19fX19fX19f
X19fX18KIAotICAgIHNtdHAgPSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgor
ICAgIHNtdHBfY29ubmVjdGlvbiA9IDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+
CiAKLSAgICAgICAgZGVmIHRlc3Rfbm9vcChzbXRwKToKLSAgICAgICAgICAgIHJlc3BvbnNlLCBt
c2cgPSBzbXRwLm5vb3AoKQorICAgICAgICBkZWYgdGVzdF9ub29wKHNtdHBfY29ubmVjdGlvbik6
CisgICAgICAgICAgICByZXNwb25zZSwgbXNnID0gc210cF9jb25uZWN0aW9uLm5vb3AoKQogICAg
ICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAogICAgID4gICAgICAgYXNzZXJ0IDAgICMg
Zm9yIGRlbW8gcHVycG9zZXMKICAgICBFICAgICAgIGFzc2VydCAwCkBAIC01OTEsMjMgKzYzMCwy
MyBAQCBTbyBsZXQncyBqdXN0IGRvIGFub3RoZXIgcnVuOjoKICAgICB0ZXN0X21vZHVsZS5weTox
MTogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9laGxv
W21haWwucHl0aG9uLm9yZ10gX19fX19fX19fX19fX19fX19fX19fX19fCiAKLSAgICBzbXRwID0g
PHNtdHBsaWIuU01UUCBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICBzbXRwX2Nvbm5lY3Rpb24g
PSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgogCi0gICAgICAgIGRlZiB0ZXN0
X2VobG8oc210cCk6Ci0gICAgICAgICAgICByZXNwb25zZSwgbXNnID0gc210cC5laGxvKCkKKyAg
ICAgICAgZGVmIHRlc3RfZWhsbyhzbXRwX2Nvbm5lY3Rpb24pOgorICAgICAgICAgICAgcmVzcG9u
c2UsIG1zZyA9IHNtdHBfY29ubmVjdGlvbi5laGxvKCkKICAgICAgICAgICAgIGFzc2VydCByZXNw
b25zZSA9PSAyNTAKICAgICA+ICAgICAgIGFzc2VydCBiInNtdHAuZ21haWwuY29tIiBpbiBtc2cK
LSAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBhc3NlcnQgYidzbXRwLmdtYWlsLmNvbScgaW4g
YidtYWlsLnB5dGhvbi5vcmdcblBJUEVMSU5JTkdcblNJWkUgNTEyMDAwMDBcbkVUUk5cblNUQVJU
VExTXG5BVVRIIERJR0VTVC1NRDUgTlRMTSBDUkFNLU1ENVxuRU5IQU5DRURTVEFUVVNDT0RFU1xu
OEJJVE1JTUVcbkRTTlxuU01UUFVURjgnCisgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNz
ZXJ0IGInc210cC5nbWFpbC5jb20nIGluIGInbWFpbC5weXRob24ub3JnXG5QSVBFTElOSU5HXG5T
SVpFIDUxMjAwMDAwXG5FVFJOXG5TVEFSVFRMU1xuQVVUSCBESUdFU1QtTUQ1IE5UTE0gQ1JBTS1N
RDVcbkVOSEFOQ0VEU1RBVFVTQ09ERVNcbjhCSVRNSU1FXG5EU05cblNNVFBVVEY4XG5DSFVOS0lO
RycKIAogICAgIHRlc3RfbW9kdWxlLnB5OjU6IEFzc2VydGlvbkVycm9yCiAgICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3Rkb3V0IHNldHVwIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogICAgIGZpbmFsaXppbmcgPHNtdHBsaWIuU01UUCBvYmplY3QgYXQgMHhkZWFk
YmVlZj4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9ub29wW21haWwucHl0aG9u
Lm9yZ10gX19fX19fX19fX19fX19fX19fX19fX19fCiAKLSAgICBzbXRwID0gPHNtdHBsaWIuU01U
UCBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICBzbXRwX2Nvbm5lY3Rpb24gPSA8c210cGxpYi5T
TVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgogCi0gICAgICAgIGRlZiB0ZXN0X25vb3Aoc210cCk6
Ci0gICAgICAgICAgICByZXNwb25zZSwgbXNnID0gc210cC5ub29wKCkKKyAgICAgICAgZGVmIHRl
c3Rfbm9vcChzbXRwX2Nvbm5lY3Rpb24pOgorICAgICAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNt
dHBfY29ubmVjdGlvbi5ub29wKCkKICAgICAgICAgICAgIGFzc2VydCByZXNwb25zZSA9PSAyNTAK
ICAgICA+ICAgICAgIGFzc2VydCAwICAjIGZvciBkZW1vIHB1cnBvc2VzCiAgICAgRSAgICAgICBh
c3NlcnQgMApAQCAtNjE4LDcgKzY1Nyw3IEBAIFNvIGxldCdzIGp1c3QgZG8gYW5vdGhlciBydW46
OgogICAgIDQgZmFpbGVkIGluIDAuMTIgc2Vjb25kcwogCiBXZSBzZWUgdGhhdCBvdXIgdHdvIHRl
c3QgZnVuY3Rpb25zIGVhY2ggcmFuIHR3aWNlLCBhZ2FpbnN0IHRoZSBkaWZmZXJlbnQKLWBgc210
cGBgIGluc3RhbmNlcy4gIE5vdGUgYWxzbywgdGhhdCB3aXRoIHRoZSBgYG1haWwucHl0aG9uLm9y
Z2BgCitgYHNtdHBfY29ubmVjdGlvbmBgIGluc3RhbmNlcy4gIE5vdGUgYWxzbywgdGhhdCB3aXRo
IHRoZSBgYG1haWwucHl0aG9uLm9yZ2BgCiBjb25uZWN0aW9uIHRoZSBzZWNvbmQgdGVzdCBmYWls
cyBpbiBgYHRlc3RfZWhsb2BgIGJlY2F1c2UgYQogZGlmZmVyZW50IHNlcnZlciBzdHJpbmcgaXMg
ZXhwZWN0ZWQgdGhhbiB3aGF0IGFycml2ZWQuCiAKQEAgLTY2MywyNiArNzAyLDI5IEBAIGEgZnVu
Y3Rpb24gd2hpY2ggd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgZml4dHVyZSB2YWx1ZSBhbmQgdGhl
bgogaGFzIHRvIHJldHVybiBhIHN0cmluZyB0byB1c2UuICBJbiB0aGUgbGF0dGVyIGNhc2UgaWYg
dGhlIGZ1bmN0aW9uCiByZXR1cm4gYGBOb25lYGAgdGhlbiBweXRlc3QncyBhdXRvLWdlbmVyYXRl
ZCBJRCB3aWxsIGJlIHVzZWQuCiAKLVJ1bm5pbmcgdGhlIGFib3ZlIHRlc3RzIHJlc3VsdHMgaW4g
dGhlIGZvbGxvd2luZyB0ZXN0IElEcyBiZWluZyB1c2VkOjoKK1J1bm5pbmcgdGhlIGFib3ZlIHRl
c3RzIHJlc3VsdHMgaW4gdGhlIGZvbGxvd2luZyB0ZXN0IElEcyBiZWluZyB1c2VkOgorCisuLiBj
b2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICQgcHl0ZXN0IC0tY29sbGVjdC1vbmx5CiAgICA9PT09
PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0gICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVz
dC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgcm9vdGRpcjogJFJFR0VORE9DX1RN
UERJUiwgaW5pZmlsZToKKyAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0
LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVG
SVgvLnB5dGVzdF9jYWNoZQorICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgY29sbGVj
dGVkIDEwIGl0ZW1zCi0gICA8TW9kdWxlICd0ZXN0X2Fub3RoZXJzbXRwLnB5Jz4KLSAgICAgPEZ1
bmN0aW9uICd0ZXN0X3Nob3doZWxvW3NtdHAuZ21haWwuY29tXSc+Ci0gICAgIDxGdW5jdGlvbiAn
dGVzdF9zaG93aGVsb1ttYWlsLnB5dGhvbi5vcmddJz4KLSAgIDxNb2R1bGUgJ3Rlc3RfaWRzLnB5
Jz4KLSAgICAgPEZ1bmN0aW9uICd0ZXN0X2Fbc3BhbV0nPgotICAgICA8RnVuY3Rpb24gJ3Rlc3Rf
YVtoYW1dJz4KLSAgICAgPEZ1bmN0aW9uICd0ZXN0X2JbZWdnc10nPgotICAgICA8RnVuY3Rpb24g
J3Rlc3RfYlsxXSc+Ci0gICA8TW9kdWxlICd0ZXN0X21vZHVsZS5weSc+Ci0gICAgIDxGdW5jdGlv
biAndGVzdF9laGxvW3NtdHAuZ21haWwuY29tXSc+Ci0gICAgIDxGdW5jdGlvbiAndGVzdF9ub29w
W3NtdHAuZ21haWwuY29tXSc+Ci0gICAgIDxGdW5jdGlvbiAndGVzdF9laGxvW21haWwucHl0aG9u
Lm9yZ10nPgotICAgICA8RnVuY3Rpb24gJ3Rlc3Rfbm9vcFttYWlsLnB5dGhvbi5vcmddJz4KKyAg
IDxNb2R1bGUgdGVzdF9hbm90aGVyc210cC5weT4KKyAgICAgPEZ1bmN0aW9uIHRlc3Rfc2hvd2hl
bG9bc210cC5nbWFpbC5jb21dPgorICAgICA8RnVuY3Rpb24gdGVzdF9zaG93aGVsb1ttYWlsLnB5
dGhvbi5vcmddPgorICAgPE1vZHVsZSB0ZXN0X2lkcy5weT4KKyAgICAgPEZ1bmN0aW9uIHRlc3Rf
YVtzcGFtXT4KKyAgICAgPEZ1bmN0aW9uIHRlc3RfYVtoYW1dPgorICAgICA8RnVuY3Rpb24gdGVz
dF9iW2VnZ3NdPgorICAgICA8RnVuY3Rpb24gdGVzdF9iWzFdPgorICAgPE1vZHVsZSB0ZXN0X21v
ZHVsZS5weT4KKyAgICAgPEZ1bmN0aW9uIHRlc3RfZWhsb1tzbXRwLmdtYWlsLmNvbV0+CisgICAg
IDxGdW5jdGlvbiB0ZXN0X25vb3Bbc210cC5nbWFpbC5jb21dPgorICAgICA8RnVuY3Rpb24gdGVz
dF9laGxvW21haWwucHl0aG9uLm9yZ10+CisgICAgIDxGdW5jdGlvbiB0ZXN0X25vb3BbbWFpbC5w
eXRob24ub3JnXT4KIAogICAgPT09PT09PT09PT09PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGlu
IDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PQogCkBAIC03MDUsMTMgKzc0Nywx
NSBAQCBFeGFtcGxlOjoKICAgICBkZWYgdGVzdF9kYXRhKGRhdGFfc2V0KToKICAgICAgICAgcGFz
cwogCi1SdW5uaW5nIHRoaXMgdGVzdCB3aWxsICpza2lwKiB0aGUgaW52b2NhdGlvbiBvZiBgYGRh
dGFfc2V0YGAgd2l0aCB2YWx1ZSBgYDJgYDo6CitSdW5uaW5nIHRoaXMgdGVzdCB3aWxsICpza2lw
KiB0aGUgaW52b2NhdGlvbiBvZiBgYGRhdGFfc2V0YGAgd2l0aCB2YWx1ZSBgYDJgYDoKKworLi4g
Y29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgdGVzdF9maXh0dXJlX21hcmtzLnB5
IC12CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhv
biAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05f
UFJFRklYL2Jpbi9weXRob24zLjUKLSAgICBjYWNoZWRpcjogLnB5dGVzdF9jYWNoZQotICAgIHJv
b3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0g
UHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZ
VEhPTl9QUkVGSVgvYmluL3B5dGhvbgorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0
ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3Rpbmcg
Li4uIGNvbGxlY3RlZCAzIGl0ZW1zCiAKICAgICB0ZXN0X2ZpeHR1cmVfbWFya3MucHk6OnRlc3Rf
ZGF0YVswXSBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICAgICBbIDMzJV0KQEAgLTczMCw0
NiArNzc0LDQ4IEBAIGNhbiB1c2Ugb3RoZXIgZml4dHVyZXMgdGhlbXNlbHZlcy4gIFRoaXMgY29u
dHJpYnV0ZXMgdG8gYSBtb2R1bGFyIGRlc2lnbgogb2YgeW91ciBmaXh0dXJlcyBhbmQgYWxsb3dz
IHJlLXVzZSBvZiBmcmFtZXdvcmstc3BlY2lmaWMgZml4dHVyZXMgYWNyb3NzCiBtYW55IHByb2pl
Y3RzLiAgQXMgYSBzaW1wbGUgZXhhbXBsZSwgd2UgY2FuIGV4dGVuZCB0aGUgcHJldmlvdXMgZXhh
bXBsZQogYW5kIGluc3RhbnRpYXRlIGFuIG9iamVjdCBgYGFwcGBgIHdoZXJlIHdlIHN0aWNrIHRo
ZSBhbHJlYWR5IGRlZmluZWQKLWBgc210cGBgIHJlc291cmNlIGludG8gaXQ6OgorYGBzbXRwX2Nv
bm5lY3Rpb25gYCByZXNvdXJjZSBpbnRvIGl0OjoKIAogICAgICMgY29udGVudCBvZiB0ZXN0X2Fw
cHNldHVwLnB5CiAKICAgICBpbXBvcnQgcHl0ZXN0CiAKICAgICBjbGFzcyBBcHAob2JqZWN0KToK
LSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNtdHApOgotICAgICAgICAgICAgc2VsZi5zbXRw
ID0gc210cAorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgc210cF9jb25uZWN0aW9uKToKKyAg
ICAgICAgICAgIHNlbGYuc210cF9jb25uZWN0aW9uID0gc210cF9jb25uZWN0aW9uCiAKICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCi0gICAgZGVmIGFwcChzbXRwKToKLSAgICAg
ICAgcmV0dXJuIEFwcChzbXRwKQorICAgIGRlZiBhcHAoc210cF9jb25uZWN0aW9uKToKKyAgICAg
ICAgcmV0dXJuIEFwcChzbXRwX2Nvbm5lY3Rpb24pCiAKLSAgICBkZWYgdGVzdF9zbXRwX2V4aXN0
cyhhcHApOgotICAgICAgICBhc3NlcnQgYXBwLnNtdHAKKyAgICBkZWYgdGVzdF9zbXRwX2Nvbm5l
Y3Rpb25fZXhpc3RzKGFwcCk6CisgICAgICAgIGFzc2VydCBhcHAuc210cF9jb25uZWN0aW9uCiAK
IEhlcmUgd2UgZGVjbGFyZSBhbiBgYGFwcGBgIGZpeHR1cmUgd2hpY2ggcmVjZWl2ZXMgdGhlIHBy
ZXZpb3VzbHkgZGVmaW5lZAotYGBzbXRwYGAgZml4dHVyZSBhbmQgaW5zdGFudGlhdGVzIGFuIGBg
QXBwYGAgb2JqZWN0IHdpdGggaXQuICBMZXQncyBydW4gaXQ6OgorYGBzbXRwX2Nvbm5lY3Rpb25g
YCBmaXh0dXJlIGFuZCBpbnN0YW50aWF0ZXMgYW4gYGBBcHBgYCBvYmplY3Qgd2l0aCBpdC4gIExl
dCdzIHJ1biBpdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXYg
dGVzdF9hcHBzZXR1cC5weQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNl
c3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBs
aW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngu
eSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41Ci0gICAgY2FjaGVkaXI6IC5weXRlc3Rf
Y2FjaGUKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRm
b3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5
LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24KKyAgICBjYWNoZWRpcjogJFBZVEhP
Tl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAg
ICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgMiBpdGVtcwogCi0gICAgdGVzdF9hcHBzZXR1cC5w
eTo6dGVzdF9zbXRwX2V4aXN0c1tzbXRwLmdtYWlsLmNvbV0gUEFTU0VEICAgICAgICAgICAgWyA1
MCVdCi0gICAgdGVzdF9hcHBzZXR1cC5weTo6dGVzdF9zbXRwX2V4aXN0c1ttYWlsLnB5dGhvbi5v
cmddIFBBU1NFRCAgICAgICAgICAgWzEwMCVdCisgICAgdGVzdF9hcHBzZXR1cC5weTo6dGVzdF9z
bXRwX2Nvbm5lY3Rpb25fZXhpc3RzW3NtdHAuZ21haWwuY29tXSBQQVNTRUQgWyA1MCVdCisgICAg
dGVzdF9hcHBzZXR1cC5weTo6dGVzdF9zbXRwX2Nvbm5lY3Rpb25fZXhpc3RzW21haWwucHl0aG9u
Lm9yZ10gUEFTU0VEIFsxMDAlXQogCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAyIHBh
c3NlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQogCi1EdWUgdG8g
dGhlIHBhcmFtZXRyaXphdGlvbiBvZiBgYHNtdHBgYCB0aGUgdGVzdCB3aWxsIHJ1biB0d2ljZSB3
aXRoIHR3bworRHVlIHRvIHRoZSBwYXJhbWV0cml6YXRpb24gb2YgYGBzbXRwX2Nvbm5lY3Rpb25g
YCwgdGhlIHRlc3Qgd2lsbCBydW4gdHdpY2Ugd2l0aCB0d28KIGRpZmZlcmVudCBgYEFwcGBgIGlu
c3RhbmNlcyBhbmQgcmVzcGVjdGl2ZSBzbXRwIHNlcnZlcnMuICBUaGVyZSBpcyBubwotbmVlZCBm
b3IgdGhlIGBgYXBwYGAgZml4dHVyZSB0byBiZSBhd2FyZSBvZiB0aGUgYGBzbXRwYGAgcGFyYW1l
dHJpemF0aW9uCi1hcyBweXRlc3Qgd2lsbCBmdWxseSBhbmFseXNlIHRoZSBmaXh0dXJlIGRlcGVu
ZGVuY3kgZ3JhcGguCituZWVkIGZvciB0aGUgYGBhcHBgYCBmaXh0dXJlIHRvIGJlIGF3YXJlIG9m
IHRoZSBgYHNtdHBfY29ubmVjdGlvbmBgCitwYXJhbWV0cml6YXRpb24gYmVjYXVzZSBweXRlc3Qg
d2lsbCBmdWxseSBhbmFseXNlIHRoZSBmaXh0dXJlIGRlcGVuZGVuY3kgZ3JhcGguCiAKLU5vdGUs
IHRoYXQgdGhlIGBgYXBwYGAgZml4dHVyZSBoYXMgYSBzY29wZSBvZiBgYG1vZHVsZWBgIGFuZCB1
c2VzIGEKLW1vZHVsZS1zY29wZWQgYGBzbXRwYGAgZml4dHVyZS4gIFRoZSBleGFtcGxlIHdvdWxk
IHN0aWxsIHdvcmsgaWYgYGBzbXRwYGAKLXdhcyBjYWNoZWQgb24gYSBgYHNlc3Npb25gYCBzY29w
ZTogaXQgaXMgZmluZSBmb3IgZml4dHVyZXMgdG8gdXNlCitOb3RlIHRoYXQgdGhlIGBgYXBwYGAg
Zml4dHVyZSBoYXMgYSBzY29wZSBvZiBgYG1vZHVsZWBgIGFuZCB1c2VzIGEKK21vZHVsZS1zY29w
ZWQgYGBzbXRwX2Nvbm5lY3Rpb25gYCBmaXh0dXJlLiAgVGhlIGV4YW1wbGUgd291bGQgc3RpbGwg
d29yayBpZgorYGBzbXRwX2Nvbm5lY3Rpb25gYCB3YXMgY2FjaGVkIG9uIGEgYGBzZXNzaW9uYGAg
c2NvcGU6IGl0IGlzIGZpbmUgZm9yIGZpeHR1cmVzIHRvIHVzZQogImJyb2FkZXIiIHNjb3BlZCBm
aXh0dXJlcyBidXQgbm90IHRoZSBvdGhlciB3YXkgcm91bmQ6CiBBIHNlc3Npb24tc2NvcGVkIGZp
eHR1cmUgY291bGQgbm90IHVzZSBhIG1vZHVsZS1zY29wZWQgb25lIGluIGEKIG1lYW5pbmdmdWwg
d2F5LgpAQCAtNzg4LDcgKzgzNCw3IEBAIGZpcnN0IGV4ZWN1dGUgd2l0aCBvbmUgaW5zdGFuY2Ug
YW5kIHRoZW4gZmluYWxpemVycyBhcmUgY2FsbGVkCiBiZWZvcmUgdGhlIG5leHQgZml4dHVyZSBp
bnN0YW5jZSBpcyBjcmVhdGVkLiAgQW1vbmcgb3RoZXIgdGhpbmdzLAogdGhpcyBlYXNlcyB0ZXN0
aW5nIG9mIGFwcGxpY2F0aW9ucyB3aGljaCBjcmVhdGUgYW5kIHVzZSBnbG9iYWwgc3RhdGUuCiAK
LVRoZSBmb2xsb3dpbmcgZXhhbXBsZSB1c2VzIHR3byBwYXJhbWV0cml6ZWQgZml4dHVyZSwgb25l
IG9mIHdoaWNoIGlzCitUaGUgZm9sbG93aW5nIGV4YW1wbGUgdXNlcyB0d28gcGFyYW1ldHJpemVk
IGZpeHR1cmVzLCBvbmUgb2Ygd2hpY2ggaXMKIHNjb3BlZCBvbiBhIHBlci1tb2R1bGUgYmFzaXMs
IGFuZCBhbGwgdGhlIGZ1bmN0aW9ucyBwZXJmb3JtIGBgcHJpbnRgYCBjYWxscwogdG8gc2hvdyB0
aGUgc2V0dXAvdGVhcmRvd24gZmxvdzo6CiAKQEAgLTc5OCwzMiArODQ0LDM0IEBAIHRvIHNob3cg
dGhlIHNldHVwL3RlYXJkb3duIGZsb3c6OgogICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9k
dWxlIiwgcGFyYW1zPVsibW9kMSIsICJtb2QyIl0pCiAgICAgZGVmIG1vZGFyZyhyZXF1ZXN0KToK
ICAgICAgICAgcGFyYW0gPSByZXF1ZXN0LnBhcmFtCi0gICAgICAgIHByaW50ICgiICBTRVRVUCBt
b2RhcmcgJXMiICUgcGFyYW0pCisgICAgICAgIHByaW50KCIgIFNFVFVQIG1vZGFyZyAlcyIgJSBw
YXJhbSkKICAgICAgICAgeWllbGQgcGFyYW0KLSAgICAgICAgcHJpbnQgKCIgIFRFQVJET1dOIG1v
ZGFyZyAlcyIgJSBwYXJhbSkKKyAgICAgICAgcHJpbnQoIiAgVEVBUkRPV04gbW9kYXJnICVzIiAl
IHBhcmFtKQogCiAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIHBhcmFtcz1b
MSwyXSkKICAgICBkZWYgb3RoZXJhcmcocmVxdWVzdCk6CiAgICAgICAgIHBhcmFtID0gcmVxdWVz
dC5wYXJhbQotICAgICAgICBwcmludCAoIiAgU0VUVVAgb3RoZXJhcmcgJXMiICUgcGFyYW0pCisg
ICAgICAgIHByaW50KCIgIFNFVFVQIG90aGVyYXJnICVzIiAlIHBhcmFtKQogICAgICAgICB5aWVs
ZCBwYXJhbQotICAgICAgICBwcmludCAoIiAgVEVBUkRPV04gb3RoZXJhcmcgJXMiICUgcGFyYW0p
CisgICAgICAgIHByaW50KCIgIFRFQVJET1dOIG90aGVyYXJnICVzIiAlIHBhcmFtKQogCiAgICAg
ZGVmIHRlc3RfMChvdGhlcmFyZyk6Ci0gICAgICAgIHByaW50ICgiICBSVU4gdGVzdDAgd2l0aCBv
dGhlcmFyZyAlcyIgJSBvdGhlcmFyZykKKyAgICAgICAgcHJpbnQoIiAgUlVOIHRlc3QwIHdpdGgg
b3RoZXJhcmcgJXMiICUgb3RoZXJhcmcpCiAgICAgZGVmIHRlc3RfMShtb2RhcmcpOgotICAgICAg
ICBwcmludCAoIiAgUlVOIHRlc3QxIHdpdGggbW9kYXJnICVzIiAlIG1vZGFyZykKKyAgICAgICAg
cHJpbnQoIiAgUlVOIHRlc3QxIHdpdGggbW9kYXJnICVzIiAlIG1vZGFyZykKICAgICBkZWYgdGVz
dF8yKG90aGVyYXJnLCBtb2RhcmcpOgotICAgICAgICBwcmludCAoIiAgUlVOIHRlc3QyIHdpdGgg
b3RoZXJhcmcgJXMgYW5kIG1vZGFyZyAlcyIgJSAob3RoZXJhcmcsIG1vZGFyZykpCisgICAgICAg
IHByaW50KCIgIFJVTiB0ZXN0MiB3aXRoIG90aGVyYXJnICVzIGFuZCBtb2RhcmcgJXMiICUgKG90
aGVyYXJnLCBtb2RhcmcpKQorCiAKK0xldCdzIHJ1biB0aGUgdGVzdHMgaW4gdmVyYm9zZSBtb2Rl
IGFuZCB3aXRoIGxvb2tpbmcgYXQgdGhlIHByaW50LW91dHB1dDoKIAotTGV0J3MgcnVuIHRoZSB0
ZXN0cyBpbiB2ZXJib3NlIG1vZGUgYW5kIHdpdGggbG9va2luZyBhdCB0aGUgcHJpbnQtb3V0cHV0
OjoKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC12IC1zIHRlc3RfbW9k
dWxlLnB5CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFy
dHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5
dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRI
T05fUFJFRklYL2Jpbi9weXRob24zLjUKLSAgICBjYWNoZWRpcjogLnB5dGVzdF9jYWNoZQotICAg
IHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXgg
LS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0g
JFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbgorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8u
cHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3Rp
bmcgLi4uIGNvbGxlY3RlZCA4IGl0ZW1zCiAKICAgICB0ZXN0X21vZHVsZS5weTo6dGVzdF8wWzFd
ICAgU0VUVVAgb3RoZXJhcmcgMQpAQCAtOTE5LDcgKzk2Nyw5IEBAIGFuZCBkZWNsYXJlIGl0cyB1
c2UgaW4gYSB0ZXN0IG1vZHVsZSB2aWEgYSBgYHVzZWZpeHR1cmVzYGAgbWFya2VyOjoKIER1ZSB0
byB0aGUgYGB1c2VmaXh0dXJlc2BgIG1hcmtlciwgdGhlIGBgY2xlYW5kaXJgYCBmaXh0dXJlCiB3
aWxsIGJlIHJlcXVpcmVkIGZvciB0aGUgZXhlY3V0aW9uIG9mIGVhY2ggdGVzdCBtZXRob2QsIGp1
c3QgYXMgaWYKIHlvdSBzcGVjaWZpZWQgYSAiY2xlYW5kaXIiIGZ1bmN0aW9uIGFyZ3VtZW50IHRv
IGVhY2ggb2YgdGhlbS4gIExldCdzIHJ1biBpdAotdG8gdmVyaWZ5IG91ciBmaXh0dXJlIGlzIGFj
dGl2YXRlZCBhbmQgdGhlIHRlc3RzIHBhc3M6OgordG8gdmVyaWZ5IG91ciBmaXh0dXJlIGlzIGFj
dGl2YXRlZCBhbmQgdGhlIHRlc3RzIHBhc3M6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAog
ICAgICQgcHl0ZXN0IC1xCiAgICAgLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC05NDMsNyArOTkzLDcg
QEAgYSBnZW5lcmljIGZlYXR1cmUgb2YgdGhlIG1hcmsgbWVjaGFuaXNtOgogTm90ZSB0aGF0IHRo
ZSBhc3NpZ25lZCB2YXJpYWJsZSAqbXVzdCogYmUgY2FsbGVkIGBgcHl0ZXN0bWFya2BgLCBhc3Np
Z25pbmcgZS5nLgogYGBmb29tYXJrYGAgd2lsbCBub3QgYWN0aXZhdGUgdGhlIGZpeHR1cmVzLgog
Ci1MYXN0bHkgeW91IGNhbiBwdXQgZml4dHVyZXMgcmVxdWlyZWQgYnkgYWxsIHRlc3RzIGluIHlv
dXIgcHJvamVjdAorSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBwdXQgZml4dHVyZXMgcmVxdWlyZWQg
YnkgYWxsIHRlc3RzIGluIHlvdXIgcHJvamVjdAogaW50byBhbiBpbmktZmlsZToKIAogLi4gY29k
ZS1ibG9jazo6IGluaQpAQCAtOTUzLDYgKzEwMDMsMjIgQEAgaW50byBhbiBpbmktZmlsZToKICAg
ICB1c2VmaXh0dXJlcyA9IGNsZWFuZGlyCiAKIAorLi4gd2FybmluZzo6CisKKyAgICBOb3RlIHRo
aXMgbWFyayBoYXMgbm8gZWZmZWN0IGluICoqZml4dHVyZSBmdW5jdGlvbnMqKi4gRm9yIGV4YW1w
bGUsCisgICAgdGhpcyAqKndpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQqKjoKKworICAgIC4uIGNv
ZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoIm15
X290aGVyX2ZpeHR1cmUiKQorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIG15
X2ZpeHR1cmVfdGhhdF9zYWRseV93b250X3VzZV9teV9vdGhlcl9maXh0dXJlKCk6CisgICAgICAg
ICAgICAuLi4KKworICAgIEN1cnJlbnRseSB0aGlzIHdpbGwgbm90IGdlbmVyYXRlIGFueSBlcnJv
ciBvciB3YXJuaW5nLCBidXQgdGhpcyBpcyBpbnRlbmRlZAorICAgIHRvIGJlIGhhbmRsZWQgYnkg
YCMzNjY0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM2NjQ+
YF8uCisKKwogLi4gX2BhdXRvdXNlYDoKIC4uIF9gYXV0b3VzZSBmaXh0dXJlc2A6CiAKQEAgLTEw
MDIsNyArMTA2OCw5IEBAIHdoaWNoIGltcGxpZXMgdGhhdCBhbGwgdGVzdCBtZXRob2RzIGluIHRo
ZSBjbGFzcyB3aWxsIHVzZSB0aGlzIGZpeHR1cmUKIHdpdGhvdXQgYSBuZWVkIHRvIHN0YXRlIGl0
IGluIHRoZSB0ZXN0IGZ1bmN0aW9uIHNpZ25hdHVyZSBvciB3aXRoIGEKIGNsYXNzLWxldmVsIGBg
dXNlZml4dHVyZXNgYCBkZWNvcmF0b3IuCiAKLUlmIHdlIHJ1biBpdCwgd2UgZ2V0IHR3byBwYXNz
aW5nIHRlc3RzOjoKK0lmIHdlIHJ1biBpdCwgd2UgZ2V0IHR3byBwYXNzaW5nIHRlc3RzOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcQogICAgIC4uICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsxMDAlXQpAQCAtMTExMSw2ICsxMTc5LDggQEAgR2l2ZW4gdGhlIHRlc3RzIGZpbGUgc3RydWN0
dXJlIGlzOgogCiAgICAgICAgIGNvbmZ0ZXN0LnB5CiAgICAgICAgICAgICAjIGNvbnRlbnQgb2Yg
dGVzdHMvY29uZnRlc3QucHkKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKwogICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlCiAgICAgICAgICAgICBkZWYgdXNlcm5hbWUoKToKICAgICAgICAg
ICAgICAgICByZXR1cm4gJ3VzZXJuYW1lJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2ZsYWt5LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9mbGFreS5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUz
NDAzMTZlYTA3MjhjNWZhNjk4N2IzMjg2MmExZTUxMTlmZmU3OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9mbGFreS5yc3QKQEAgLTAsMCArMSwxMjUgQEAKKworRmxha3kg
dGVzdHMKKy0tLS0tLS0tLS0tCisKK0EgImZsYWt5IiB0ZXN0IGlzIG9uZSB0aGF0IGV4aGliaXRz
IGludGVybWl0dGVudCBvciBzcG9yYWRpYyBmYWlsdXJlLCB0aGF0IHNlZW1zIHRvIGhhdmUgbm9u
LWRldGVybWluaXN0aWMgYmVoYXZpb3VyLiBTb21ldGltZXMgaXQgcGFzc2VzLCBzb21ldGltZXMg
aXQgZmFpbHMsIGFuZCBpdCdzIG5vdCBjbGVhciB3aHkuIFRoaXMgcGFnZSBkaXNjdXNzZXMgcHl0
ZXN0IGZlYXR1cmVzIHRoYXQgY2FuIGhlbHAgYW5kIG90aGVyIGdlbmVyYWwgc3RyYXRlZ2llcyBm
b3IgaWRlbnRpZnlpbmcsIGZpeGluZyBvciBtaXRpZ2F0aW5nIHRoZW0uCisKK1doeSBmbGFreSB0
ZXN0cyBhcmUgYSBwcm9ibGVtCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitGbGFr
eSB0ZXN0cyBhcmUgcGFydGljdWxhcmx5IHRyb3VibGVzb21lIHdoZW4gYSBjb250aW51b3VzIGlu
dGVncmF0aW9uIChDSSkgc2VydmVyIGlzIGJlaW5nIHVzZWQsIHNvIHRoYXQgYWxsIHRlc3RzIG11
c3QgcGFzcyBiZWZvcmUgYSBuZXcgY29kZSBjaGFuZ2UgY2FuIGJlIG1lcmdlZC4gSWYgdGhlIHRl
c3QgcmVzdWx0IGlzIG5vdCBhIHJlbGlhYmxlIHNpZ25hbCAtLSB0aGF0IGEgdGVzdCBmYWlsdXJl
IG1lYW5zIHRoZSBjb2RlIGNoYW5nZSBicm9rZSB0aGUgdGVzdCAtLSBkZXZlbG9wZXJzIGNhbiBi
ZWNvbWUgbWlzdHJ1c3RmdWwgb2YgdGhlIHRlc3QgcmVzdWx0cywgd2hpY2ggY2FuIGxlYWQgdG8g
b3Zlcmxvb2tpbmcgZ2VudWluZSBmYWlsdXJlcy4gSXQgaXMgYWxzbyBhIHNvdXJjZSBvZiB3YXN0
ZWQgdGltZSBhcyBkZXZlbG9wZXJzIG11c3QgcmUtcnVuIHRlc3Qgc3VpdGVzIGFuZCBpbnZlc3Rp
Z2F0ZSBzcHVyaW91cyBmYWlsdXJlcy4KKworCitQb3RlbnRpYWwgcm9vdCBjYXVzZXMKK15eXl5e
Xl5eXl5eXl5eXl5eXl5eXgorCitTeXN0ZW0gc3RhdGUKK35+fn5+fn5+fn5+fgorCitCcm9hZGx5
IHNwZWFraW5nLCBhIGZsYWt5IHRlc3QgaW5kaWNhdGVzIHRoYXQgdGhlIHRlc3QgcmVsaWVzIG9u
IHNvbWUgc3lzdGVtIHN0YXRlIHRoYXQgaXMgbm90IGJlaW5nIGFwcHJvcHJpYXRlbHkgY29udHJv
bGxlZCAtIHRoZSB0ZXN0IGVudmlyb25tZW50IGlzIG5vdCBzdWZmaWNpZW50bHkgaXNvbGF0ZWQu
IEhpZ2hlciBsZXZlbCB0ZXN0cyBhcmUgbW9yZSBsaWtlbHkgdG8gYmUgZmxha3kgYXMgdGhleSBy
ZWx5IG9uIG1vcmUgc3RhdGUuCisKK0ZsYWt5IHRlc3RzIHNvbWV0aW1lcyBhcHBlYXIgd2hlbiBh
IHRlc3Qgc3VpdGUgaXMgcnVuIGluIHBhcmFsbGVsIChzdWNoIGFzIHVzZSBvZiBweXRlc3QteGRp
c3QpLiBUaGlzIGNhbiBpbmRpY2F0ZSBhIHRlc3QgaXMgcmVsaWFudCBvbiB0ZXN0IG9yZGVyaW5n
LgorCistICBQZXJoYXBzIGEgZGlmZmVyZW50IHRlc3QgaXMgZmFpbGluZyB0byBjbGVhbiB1cCBh
ZnRlciBpdHNlbGYgYW5kIGxlYXZpbmcgYmVoaW5kIGRhdGEgd2hpY2ggY2F1c2VzIHRoZSBmbGFr
eSB0ZXN0IHRvIGZhaWwuCistIFRoZSBmbGFreSB0ZXN0IGlzIHJlbGlhbnQgb24gZGF0YSBmcm9t
IGEgcHJldmlvdXMgdGVzdCB0aGF0IGRvZXNuJ3QgY2xlYW4gdXAgYWZ0ZXIgaXRzZWxmLCBhbmQg
aW4gcGFyYWxsZWwgcnVucyB0aGF0IHByZXZpb3VzIHRlc3QgaXMgbm90IGFsd2F5cyBwcmVzZW50
CistIFRlc3RzIHRoYXQgbW9kaWZ5IGdsb2JhbCBzdGF0ZSB0eXBpY2FsbHkgY2Fubm90IGJlIHJ1
biBpbiBwYXJhbGxlbC4KKworCitPdmVybHkgc3RyaWN0IGFzc2VydGlvbgorfn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn4KKworT3Zlcmx5IHN0cmljdCBhc3NlcnRpb25zIGNhbiBjYXVzZSBwcm9ibGVt
cyB3aXRoIGZsb2F0aW5nIHBvaW50IGNvbXBhcmlzb24gYXMgd2VsbCBhcyB0aW1pbmcgaXNzdWVz
LiBgcHl0ZXN0LmFwcHJveCA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3JlZmVy
ZW5jZS5odG1sI3B5dGVzdC1hcHByb3g+YF8gaXMgdXNlZnVsIGhlcmUuCisKKworUHl0ZXN0IGZl
YXR1cmVzCiteXl5eXl5eXl5eXl5eXl4KKworWGZhaWwgc3RyaWN0Cit+fn5+fn5+fn5+fn4KKwor
OnJlZjpgcHl0ZXN0Lm1hcmsueGZhaWwgcmVmYCB3aXRoIGBgc3RyaWN0PUZhbHNlYGAgY2FuIGJl
IHVzZWQgdG8gbWFyayBhIHRlc3Qgc28gdGhhdCBpdHMgZmFpbHVyZSBkb2VzIG5vdCBjYXVzZSB0
aGUgd2hvbGUgYnVpbGQgdG8gYnJlYWsuIFRoaXMgY291bGQgYmUgY29uc2lkZXJlZCBsaWtlIGEg
bWFudWFsIHF1YXJhbnRpbmUsIGFuZCBpcyByYXRoZXIgZGFuZ2Vyb3VzIHRvIHVzZSBwZXJtYW5l
bnRseS4KKworCitQWVRFU1RfQ1VSUkVOVF9URVNUCit+fn5+fn5+fn5+fn5+fn5+fn5+CisKKzpy
ZWY6YHB5dGVzdCBjdXJyZW50IHRlc3QgZW52YCBtYXkgYmUgdXNlZnVsIGZvciBmaWd1cmluZyBv
dXQgIndoaWNoIHRlc3QgZ290IHN0dWNrIi4KKworCitQbHVnaW5zCit+fn5+fn5+CisKK1JlcnVu
bmluZyBhbnkgZmFpbGVkIHRlc3RzIGNhbiBtaXRpZ2F0ZSB0aGUgbmVnYXRpdmUgZWZmZWN0cyBv
ZiBmbGFreSB0ZXN0cyBieSBnaXZpbmcgdGhlbSBhZGRpdGlvbmFsIGNoYW5jZXMgdG8gcGFzcywg
c28gdGhhdCB0aGUgb3ZlcmFsbCBidWlsZCBkb2VzIG5vdCBmYWlsLiBTZXZlcmFsIHB5dGVzdCBw
bHVnaW5zIHN1cHBvcnQgdGhpczoKKworKiBgZmxha3kgPGh0dHBzOi8vZ2l0aHViLmNvbS9ib3gv
Zmxha3k+YF8KKyogYHB5dGVzdC1mbGFrZWZpbmRlciA8aHR0cHM6Ly9naXRodWIuY29tL2Ryb3Bi
b3gvcHl0ZXN0LWZsYWtlZmluZGVyPmBfIC0gYGJsb2cgcG9zdCA8aHR0cHM6Ly9ibG9ncy5kcm9w
Ym94LmNvbS90ZWNoLzIwMTYvMDMvb3Blbi1zb3VyY2luZy1weXRlc3QtdG9vbHMvPmBfCisqIGBw
eXRlc3QtcmVydW5mYWlsdXJlcyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
LXJlcnVuZmFpbHVyZXM+YF8KKyogYHB5dGVzdC1yZXBsYXkgPGh0dHBzOi8vZ2l0aHViLmNvbS9F
U1NTL3B5dGVzdC1yZXBsYXk+YF86IFRoaXMgcGx1Z2luIGhlbHBzIHRvIHJlcHJvZHVjZSBsb2Nh
bGx5IGNyYXNoZXMgb3IgZmxha3kgdGVzdHMgb2JzZXJ2ZWQgZHVyaW5nIENJIHJ1bnMuCisKK1Bs
dWdpbnMgdG8gZGVsaWJlcmF0ZWx5IHJhbmRvbWl6ZSB0ZXN0cyBjYW4gaGVscCBleHBvc2UgdGVz
dHMgd2l0aCBzdGF0ZSBwcm9ibGVtczoKKworKiBgcHl0ZXN0LXJhbmRvbS1vcmRlciA8aHR0cHM6
Ly9naXRodWIuY29tL2piYXNrby9weXRlc3QtcmFuZG9tLW9yZGVyPmBfCisqIGBweXRlc3QtcmFu
ZG9tbHkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC1yYW5kb21seT5gXwor
CisKK090aGVyIGdlbmVyYWwgc3RyYXRlZ2llcworXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisK
K1NwbGl0IHVwIHRlc3Qgc3VpdGVzCit+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitJdCBjYW4gYmUg
Y29tbW9uIHRvIHNwbGl0IGEgc2luZ2xlIHRlc3Qgc3VpdGUgaW50byB0d28sIHN1Y2ggYXMgdW5p
dCB2cyBpbnRlZ3JhdGlvbiwgYW5kIG9ubHkgdXNlIHRoZSB1bml0IHRlc3Qgc3VpdGUgYXMgYSBD
SSBnYXRlLiBUaGlzIGFsc28gaGVscHMga2VlcCBidWlsZCB0aW1lcyBtYW5hZ2VhYmxlIGFzIGhp
Z2ggbGV2ZWwgdGVzdHMgdGVuZCB0byBiZSBzbG93ZXIuIEhvd2V2ZXIsIGl0IG1lYW5zIGl0IGRv
ZXMgYmVjb21lIHBvc3NpYmxlIGZvciBjb2RlIHRoYXQgYnJlYWtzIHRoZSBidWlsZCB0byBiZSBt
ZXJnZWQsIHNvIGV4dHJhIHZpZ2lsYW5jZSBpcyBuZWVkZWQgZm9yIG1vbml0b3JpbmcgdGhlIGlu
dGVncmF0aW9uIHRlc3QgcmVzdWx0cy4KKworCitWaWRlby9zY3JlZW5zaG90IG9uIGZhaWx1cmUK
K35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitGb3IgVUkgdGVzdHMgdGhlc2UgYXJlIGlt
cG9ydGFudCBmb3IgdW5kZXJzdGFuZGluZyB3aGF0IHRoZSBzdGF0ZSBvZiB0aGUgVUkgd2FzIHdo
ZW4gdGhlIHRlc3QgZmFpbGVkLiBweXRlc3Qtc3BsaW50ZXIgY2FuIGJlIHVzZWQgd2l0aCBwbHVn
aW5zIGxpa2UgcHl0ZXN0LWJkZCBhbmQgY2FuIGBzYXZlIGEgc2NyZWVuc2hvdCBvbiB0ZXN0IGZh
aWx1cmUgPGh0dHBzOi8vcHl0ZXN0LXNwbGludGVyLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8j
YXV0b21hdGljLXNjcmVlbnNob3RzLW9uLXRlc3QtZmFpbHVyZT5gXywgd2hpY2ggY2FuIGhlbHAg
dG8gaXNvbGF0ZSB0aGUgY2F1c2UuCisKKworRGVsZXRlIG9yIHJld3JpdGUgdGhlIHRlc3QKK35+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0lmIHRoZSBmdW5jdGlvbmFsaXR5IGlzIGNvdmVy
ZWQgYnkgb3RoZXIgdGVzdHMsIHBlcmhhcHMgdGhlIHRlc3QgY2FuIGJlIHJlbW92ZWQuIElmIG5v
dCwgcGVyaGFwcyBpdCBjYW4gYmUgcmV3cml0dGVuIGF0IGEgbG93ZXIgbGV2ZWwgd2hpY2ggd2ls
bCByZW1vdmUgdGhlIGZsYWtpbmVzcyBvciBtYWtlIGl0cyBzb3VyY2UgbW9yZSBhcHBhcmVudC4K
KworCitRdWFyYW50aW5lCit+fn5+fn5+fn5+CisKK01hcmsgTGFwaWVycmUgZGlzY3Vzc2VzIHRo
ZSBgUHJvcyBhbmQgQ29ucyBvZiBRdWFyYW50aW5lZCBUZXN0cyA8aHR0cHM6Ly9kZXYudG8vbWxh
cGllcnJlL3Byb3MtYW5kLWNvbnMtb2YtcXVhcmFudGluZWQtdGVzdHMtMmVtaj5gXyBpbiBhIHBv
c3QgZnJvbSAyMDE4LgorCisKKworQ0kgdG9vbHMgdGhhdCByZXJ1biBvbiBmYWlsdXJlCit+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworQXp1cmUgUGlwZWxpbmVzICh0aGUgQXp1cmUg
Y2xvdWQgQ0kvQ0QgdG9vbCwgZm9ybWVybHkgVmlzdWFsIFN0dWRpbyBUZWFtIFNlcnZpY2VzIG9y
IFZTVFMpIGhhcyBhIGZlYXR1cmUgdG8gYGlkZW50aWZ5IGZsYWt5IHRlc3RzIDxodHRwczovL2Rv
Y3MubWljcm9zb2Z0LmNvbS9lbi11cy9henVyZS9kZXZvcHMvcmVsZWFzZS1ub3Rlcy8yMDE3L2Rl
Yy0xMS12c3RzI2lkZW50aWZ5LWZsYWt5LXRlc3RzPmBfIGFuZCByZXJ1biBmYWlsZWQgdGVzdHMu
CisKKworCitSZXNlYXJjaAorXl5eXl5eXl4KKworVGhpcyBpcyBhIGxpbWl0ZWQgbGlzdCwgcGxl
YXNlIHN1Ym1pdCBhbiBpc3N1ZSBvciBwdWxsIHJlcXVlc3QgdG8gZXhwYW5kIGl0IQorCisqIEdh
bywgWmViYW8sIFlhbGFuIExpYW5nLCBNeXJhIEIuIENvaGVuLCBBdGlmIE0uIE1lbW9uLCBhbmQg
WmhlbiBXYW5nLiAiTWFraW5nIHN5c3RlbSB1c2VyIGludGVyYWN0aXZlIHRlc3RzIHJlcGVhdGFi
bGU6IFdoZW4gYW5kIHdoYXQgc2hvdWxkIHdlIGNvbnRyb2w/LiIgSW4gKlNvZnR3YXJlIEVuZ2lu
ZWVyaW5nIChJQ1NFKSwgMjAxNSBJRUVFL0FDTSAzN3RoIElFRUUgSW50ZXJuYXRpb25hbCBDb25m
ZXJlbmNlIG9uKiwgdm9sLiAxLCBwcC4gNTUtNjUuIElFRUUsIDIwMTUuICBgUERGIDxodHRwOi8v
d3d3LmNzLnVtZC5lZHUvfmF0aWYvcHVicy9nYW8taWNzZTE1LnBkZj5gX18KKyogUGFsb21iYSwg
RmFiaW8sIGFuZCBBbmR5IFphaWRtYW4uICJEb2VzIHJlZmFjdG9yaW5nIG9mIHRlc3Qgc21lbGxz
IGluZHVjZSBmaXhpbmcgZmxha3kgdGVzdHM/LiIgSW4gKlNvZnR3YXJlIE1haW50ZW5hbmNlIGFu
ZCBFdm9sdXRpb24gKElDU01FKSwgMjAxNyBJRUVFIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBv
biosIHBwLiAxLTEyLiBJRUVFLCAyMDE3LiBgUERGIGluIEdvb2dsZSBEcml2ZSA8aHR0cHM6Ly9k
cml2ZS5nb29nbGUuY29tL2ZpbGUvZC8xMEhkY0NRaXVRVmdXM3lZVUpELVRTVHExTmJZRXBybDAv
dmlldz5gX18KKyogIEJlbGwsIEpvbmF0aGFuLCBPd29sYWJpIExlZ3Vuc2VuLCBNaWNoYWVsIEhp
bHRvbiwgTGFteWFhIEVsb3Vzc2ksIFRpZmFueSBZdW5nLCBhbmQgRGFya28gTWFyaW5vdi4gIkRl
Rmxha2VyOiBBdXRvbWF0aWNhbGx5IGRldGVjdGluZyBmbGFreSB0ZXN0cy4iIEluICpQcm9jZWVk
aW5ncyBvZiB0aGUgMjAxOCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb24gU29mdHdhcmUgRW5n
aW5lZXJpbmcqLiAyMDE4LiBgUERGIDxodHRwczovL3d3dy5qb25iZWxsLm5ldC9pY3NlMTgtZGVm
bGFrZXIucGRmPmBfXworCisKK1Jlc291cmNlcworXl5eXl5eXl5eCisKKyogYEVyYWRpY2F0aW5n
IE5vbi1EZXRlcm1pbmlzbSBpbiBUZXN0cyA8aHR0cHM6Ly9tYXJ0aW5mb3dsZXIuY29tL2FydGlj
bGVzL25vbkRldGVybWluaXNtLmh0bWw+YF8gYnkgTWFydGluIEZvd2xlciwgMjAxMQorKiBgTm8g
bW9yZSBmbGFreSB0ZXN0cyBvbiB0aGUgR28gdGVhbSA8aHR0cHM6Ly93d3cudGhvdWdodHdvcmtz
LmNvbS9pbnNpZ2h0cy9ibG9nL25vLW1vcmUtZmxha3ktdGVzdHMtZ28tdGVhbT5gXyBieSBQYXZh
biBTdWRhcnNoYW4sIDIwMTIKKyogYFRoZSBCdWlsZCBUaGF0IENyaWVkIEJyb2tlbjogQnVpbGRp
bmcgVHJ1c3QgaW4geW91ciBDb250aW51b3VzIEludGVncmF0aW9uIFRlc3RzIDxodHRwczovL3d3
dy55b3V0dWJlLmNvbS9lbWJlZC9Wb3RKcVY0bjhpZz5gXyB0YWxrICh2aWRlbykgYnkgYEFuZ2ll
IEpvbmVzIDxodHRwOi8vYW5naWVqb25lcy50ZWNoLz5gXyBhdCBTZWxlbml1bUNvbmYgQXVzdGlu
IDIwMTcKKyogYFRlc3QgYW5kIENvZGUgUG9kY2FzdDogRmxha3kgVGVzdHMgYW5kIEhvdyB0byBE
ZWFsIHdpdGggVGhlbSA8aHR0cHM6Ly90ZXN0YW5kY29kZS5jb20vNTA+YF8gYnkgQnJpYW4gT2tr
ZW4gYW5kIEFudGhvbnkgU2hhdywgMjAxOAorKiBNaWNyb3NvZnQ6CisKKyAgKiBgSG93IHdlIGFw
cHJvYWNoIHRlc3RpbmcgVlNUUyB0byBlbmFibGUgY29udGludW91cyBkZWxpdmVyeSA8aHR0cHM6
Ly9ibG9ncy5tc2RuLm1pY3Jvc29mdC5jb20vYmhhcnJ5LzIwMTcvMDYvMjgvdGVzdGluZy1pbi1h
LWNsb3VkLWRlbGl2ZXJ5LWNhZGVuY2UvPmBfIGJ5IEJyaWFuIEhhcnJ5IE1TLCAyMDE3CisgICog
YEVsaW1pbmF0aW5nIEZsYWt5IFRlc3RzIDxodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11
cy9henVyZS9kZXZvcHMvbGVhcm4vZGV2b3BzLWF0LW1pY3Jvc29mdC9lbGltaW5hdGluZy1mbGFr
eS10ZXN0cz5gXyBibG9nIGFuZCB0YWxrICh2aWRlbykgYnkgTXVuaWwgU2hhaCwgMjAxNworCisq
IEdvb2dsZToKKworICAqIGBGbGFreSBUZXN0cyBhdCBHb29nbGUgYW5kIEhvdyBXZSBNaXRpZ2F0
ZSBUaGVtIDxodHRwczovL3Rlc3RpbmcuZ29vZ2xlYmxvZy5jb20vMjAxNi8wNS9mbGFreS10ZXN0
cy1hdC1nb29nbGUtYW5kLWhvdy13ZS5odG1sPmBfIGJ5IEpvaG4gTWljY28sIDIwMTYKKyAgKiBg
V2hlcmUgZG8gR29vZ2xlJ3MgZmxha3kgdGVzdHMgY29tZSBmcm9tPyA8aHR0cHM6Ly9kb2NzLmdv
b2dsZS5jb20vZG9jdW1lbnQvZC8xbVowLUtjOTdESV9GM3RmX0dCV19OQl9hcWthLVAxalZPc0Zm
dWZ4cVVVTS9lZGl0I2hlYWRpbmc9aC5lYzByNGZ5cHNsZWg+YF8gIGJ5IEplZmYgTGlzdGZpZWxk
LCAyMDE3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVuY2FyZ19jb21wYXJlLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9mdW5jYXJnX2NvbXBhcmUucnN0CmluZGV4IGMyOWJhMWYz
YzM1NzU3ZjU3YWE0Y2QwYTIzNGZmOWIxZGQ2ODM5NTcuLjRmYTliNzlhZTdhYzA5YjNlNzZiMWM3
ZGUyMjg0M2YwOGI3YmNjYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9mdW5jYXJn
X2NvbXBhcmUucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9mdW5jYXJnX2NvbXBhcmUucnN0
CkBAIC03LDcgKzcsNyBAQCBweXRlc3QtMi4zOiByZWFzb25pbmcgZm9yIGZpeHR1cmUvZnVuY2Fy
ZyBldm9sdXRpb24KIAogKipUYXJnZXQgYXVkaWVuY2UqKjogUmVhZGluZyB0aGlzIGRvY3VtZW50
IHJlcXVpcmVzIGJhc2ljIGtub3dsZWRnZSBvZgogcHl0aG9uIHRlc3RpbmcsIHhVbml0IHNldHVw
IG1ldGhvZHMgYW5kIHRoZSAocHJldmlvdXMpIGJhc2ljIHB5dGVzdAotZnVuY2FyZyBtZWNoYW5p
c20sIHNlZSBodHRwOi8vcHl0ZXN0Lm9yZy8yLjIuNC9mdW5jYXJncy5odG1sCitmdW5jYXJnIG1l
Y2hhbmlzbSwgc2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9oaXN0b3JpY2Fs
LW5vdGVzLmh0bWwjZnVuY2FyZ3MtYW5kLXB5dGVzdC1mdW5jYXJnLgogSWYgeW91IGFyZSBuZXcg
dG8gcHl0ZXN0LCB0aGVuIHlvdSBjYW4gc2ltcGx5IGlnbm9yZSB0aGlzCiBzZWN0aW9uIGFuZCBy
ZWFkIHRoZSBvdGhlciBzZWN0aW9ucy4KIApAQCAtMjYsOSArMjYsOSBAQCBhIHBlci1zZXNzaW9u
IERhdGFiYXNlIG9iamVjdDo6CiAgICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CiAgICAgY2xh
c3MgRGF0YWJhc2Uob2JqZWN0KToKICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAg
ICAgICAgcHJpbnQgKCJkYXRhYmFzZSBpbnN0YW5jZSBjcmVhdGVkIikKKyAgICAgICAgICAgIHBy
aW50KCJkYXRhYmFzZSBpbnN0YW5jZSBjcmVhdGVkIikKICAgICAgICAgZGVmIGRlc3Ryb3koc2Vs
Zik6Ci0gICAgICAgICAgICBwcmludCAoImRhdGFiYXNlIGluc3RhbmNlIGRlc3Ryb3llZCIpCisg
ICAgICAgICAgICBwcmludCgiZGF0YWJhc2UgaW5zdGFuY2UgZGVzdHJveWVkIikKIAogICAgIGRl
ZiBweXRlc3RfZnVuY2FyZ19fZGIocmVxdWVzdCk6CiAgICAgICAgIHJldHVybiByZXF1ZXN0LmNh
Y2hlZF9zZXR1cChzZXR1cD1EYXRhQmFzZSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9nZXR0aW5nLXN0YXJ0ZWQucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dldHRpbmctc3RhcnRl
ZC5yc3QKaW5kZXggZjJkYmVjNWU5MzI4ZGFkNjRlYjU5NTgwNWE1YTM0Yzg3NWMwMmVlMi4uODgy
Mzg1YjI5NjA2ZjA1MjJkODk5NWZjNzM4YWZhNTRiOTA0NDUzMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2dldHRpbmctc3RhcnRlZC5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2dldHRpbmctc3RhcnRlZC5yc3QKQEAgLTEsMTUgKzEsMTIgQEAKIEluc3RhbGxhdGlvbiBhbmQg
R2V0dGluZyBTdGFydGVkCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0q
KlB5dGhvbnMqKjogUHl0aG9uIDIuNywgMy40LCAzLjUsIDMuNiwgSnl0aG9uLCBQeVB5LTIuMwor
KipQeXRob25zKio6IFB5dGhvbiAyLjcsIDMuNCwgMy41LCAzLjYsIDMuNywgSnl0aG9uLCBQeVB5
LTIuMwogCiAqKlBsYXRmb3JtcyoqOiBVbml4L1Bvc2l4IGFuZCBXaW5kb3dzCiAKICoqUHlQSSBw
YWNrYWdlIG5hbWUqKjogYHB5dGVzdCA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGVzdC8+
YF8KIAotKipEZXBlbmRlbmNpZXMqKjogYHB5IDxodHRwczovL3B5cGkub3JnL3Byb2plY3QvcHkv
PmBfLAotYGNvbG9yYW1hIChXaW5kb3dzKSA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2NvbG9y
YW1hLz5gXywKLQogKipEb2N1bWVudGF0aW9uIGFzIFBERioqOiBgZG93bmxvYWQgbGF0ZXN0IDxo
dHRwczovL21lZGlhLnJlYWR0aGVkb2NzLm9yZy9wZGYvcHl0ZXN0L2xhdGVzdC9weXRlc3QucGRm
PmBfCiAKIGBgcHl0ZXN0YGAgaXMgYSBmcmFtZXdvcmsgdGhhdCBtYWtlcyBidWlsZGluZyBzaW1w
bGUgYW5kIHNjYWxhYmxlIHRlc3RzIGVhc3kuIFRlc3RzIGFyZSBleHByZXNzaXZlIGFuZCByZWFk
YWJsZeKAlG5vIGJvaWxlcnBsYXRlIGNvZGUgcmVxdWlyZWQuIEdldCBzdGFydGVkIGluIG1pbnV0
ZXMgd2l0aCBhIHNtYWxsIHVuaXQgdGVzdCBvciBjb21wbGV4IGZ1bmN0aW9uYWwgdGVzdCBmb3Ig
eW91ciBhcHBsaWNhdGlvbiBvciBsaWJyYXJ5LgpAQCAtMjAsMTQgKzE3LDE4IEBAIEluc3RhbGxh
dGlvbiBhbmQgR2V0dGluZyBTdGFydGVkCiBJbnN0YWxsIGBgcHl0ZXN0YGAKIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotMS4gUnVuIHRoZSBmb2xsb3dpbmcgY29t
bWFuZCBpbiB5b3VyIGNvbW1hbmQgbGluZTo6CisxLiBSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5k
IGluIHlvdXIgY29tbWFuZCBsaW5lOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcGlw
IGluc3RhbGwgLVUgcHl0ZXN0CiAKLTIuIENoZWNrIHRoYXQgeW91IGluc3RhbGxlZCB0aGUgY29y
cmVjdCB2ZXJzaW9uOjoKKzIuIENoZWNrIHRoYXQgeW91IGluc3RhbGxlZCB0aGUgY29ycmVjdCB2
ZXJzaW9uOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgJCBweXRlc3QgLS12ZXJzaW9u
Ci0gICAgVGhpcyBpcyBweXRlc3QgdmVyc2lvbiAzLngueSwgaW1wb3J0ZWQgZnJvbSAkUFlUSE9O
X1BSRUZJWC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvcHl0ZXN0LnB5CisgICAgVGhpcyBp
cyBweXRlc3QgdmVyc2lvbiA0LngueSwgaW1wb3J0ZWQgZnJvbSAkUFlUSE9OX1BSRUZJWC9saWIv
cHl0aG9uMy43L3NpdGUtcGFja2FnZXMvcHl0ZXN0LnB5CiAKIC4uIF9gc2ltcGxldGVzdGA6CiAK
QEAgLTQzLDEyICs0NCwxNSBAQCBDcmVhdGUgYSBzaW1wbGUgdGVzdCBmdW5jdGlvbiB3aXRoIGp1
c3QgZm91ciBsaW5lcyBvZiBjb2RlOjoKICAgICBkZWYgdGVzdF9hbnN3ZXIoKToKICAgICAgICAg
YXNzZXJ0IGZ1bmMoMykgPT0gNQogCi1UaGF04oCZcyBpdC4gWW91IGNhbiBub3cgZXhlY3V0ZSB0
aGUgdGVzdCBmdW5jdGlvbjo6CitUaGF04oCZcyBpdC4gWW91IGNhbiBub3cgZXhlY3V0ZSB0aGUg
dGVzdCBmdW5jdGlvbjoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QK
ICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMu
eC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAk
UkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAz
LngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6
ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1Q
RElSCiAgICAgY29sbGVjdGVkIDEgaXRlbQogCiAgICAgdGVzdF9zYW1wbGUucHkgRiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC03
OSw3ICs4Myw3IEBAIFJ1biBtdWx0aXBsZSB0ZXN0cwogQXNzZXJ0IHRoYXQgYSBjZXJ0YWluIGV4
Y2VwdGlvbiBpcyByYWlzZWQKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVVzZSB0aGUgYGByYWlzZXNgYCBoZWxwZXIgdG8g
YXNzZXJ0IHRoYXQgc29tZSBjb2RlIHJhaXNlcyBhbiBleGNlcHRpb246OgorVXNlIHRoZSA6cmVm
OmByYWlzZXMgPGFzc2VydHJhaXNlcz5gIGhlbHBlciB0byBhc3NlcnQgdGhhdCBzb21lIGNvZGUg
cmFpc2VzIGFuIGV4Y2VwdGlvbjo6CiAKICAgICAjIGNvbnRlbnQgb2YgdGVzdF9zeXNleGl0LnB5
CiAgICAgaW1wb3J0IHB5dGVzdApAQCAtOTAsNyArOTQsOSBAQCBVc2UgdGhlIGBgcmFpc2VzYGAg
aGVscGVyIHRvIGFzc2VydCB0aGF0IHNvbWUgY29kZSByYWlzZXMgYW4gZXhjZXB0aW9uOjoKICAg
ICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpOgogICAgICAgICAgICAgZigpCiAK
LUV4ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24gd2l0aCDigJxxdWlldOKAnSByZXBvcnRpbmcgbW9k
ZTo6CitFeGVjdXRlIHRoZSB0ZXN0IGZ1bmN0aW9uIHdpdGgg4oCccXVpZXTigJ0gcmVwb3J0aW5n
IG1vZGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xIHRlc3Rf
c3lzZXhpdC5weQogICAgIC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtMTExLDcgKzExNyw5IEBAIE9u
Y2UgeW91IGRldmVsb3AgbXVsdGlwbGUgdGVzdHMsIHlvdSBtYXkgd2FudCB0byBncm91cCB0aGVt
IGludG8gYSBjbGFzcy4gcHl0ZXN0CiAgICAgICAgICAgICB4ID0gImhlbGxvIgogICAgICAgICAg
ICAgYXNzZXJ0IGhhc2F0dHIoeCwgJ2NoZWNrJykKIAotYGBweXRlc3RgYCBkaXNjb3ZlcnMgYWxs
IHRlc3RzIGZvbGxvd2luZyBpdHMgOnJlZjpgQ29udmVudGlvbnMgZm9yIFB5dGhvbiB0ZXN0IGRp
c2NvdmVyeSA8dGVzdCBkaXNjb3Zlcnk+YCwgc28gaXQgZmluZHMgYm90aCBgYHRlc3RfYGAgcHJl
Zml4ZWQgZnVuY3Rpb25zLiBUaGVyZSBpcyBubyBuZWVkIHRvIHN1YmNsYXNzIGFueXRoaW5nLiBX
ZSBjYW4gc2ltcGx5IHJ1biB0aGUgbW9kdWxlIGJ5IHBhc3NpbmcgaXRzIGZpbGVuYW1lOjoKK2Bg
cHl0ZXN0YGAgZGlzY292ZXJzIGFsbCB0ZXN0cyBmb2xsb3dpbmcgaXRzIDpyZWY6YENvbnZlbnRp
b25zIGZvciBQeXRob24gdGVzdCBkaXNjb3ZlcnkgPHRlc3QgZGlzY292ZXJ5PmAsIHNvIGl0IGZp
bmRzIGJvdGggYGB0ZXN0X2BgIHByZWZpeGVkIGZ1bmN0aW9ucy4gVGhlcmUgaXMgbm8gbmVlZCB0
byBzdWJjbGFzcyBhbnl0aGluZy4gV2UgY2FuIHNpbXBseSBydW4gdGhlIG1vZHVsZSBieSBwYXNz
aW5nIGl0cyBmaWxlbmFtZToKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRl
c3QgLXEgdGVzdF9jbGFzcy5weQogICAgIC5GICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtMTM4LDEwICsx
NDYsMTIgQEAgUmVxdWVzdCBhIHVuaXF1ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBmdW5jdGlv
bmFsIHRlc3RzCiAKICAgICAjIGNvbnRlbnQgb2YgdGVzdF90bXBkaXIucHkKICAgICBkZWYgdGVz
dF9uZWVkc2ZpbGVzKHRtcGRpcik6Ci0gICAgICAgIHByaW50ICh0bXBkaXIpCisgICAgICAgIHBy
aW50KHRtcGRpcikKICAgICAgICAgYXNzZXJ0IDAKIAotTGlzdCB0aGUgbmFtZSBgYHRtcGRpcmBg
IGluIHRoZSB0ZXN0IGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgYGBweXRlc3RgYCB3aWxsIGxvb2t1
cCBhbmQgY2FsbCBhIGZpeHR1cmUgZmFjdG9yeSB0byBjcmVhdGUgdGhlIHJlc291cmNlIGJlZm9y
ZSBwZXJmb3JtaW5nIHRoZSB0ZXN0IGZ1bmN0aW9uIGNhbGwuIEJlZm9yZSB0aGUgdGVzdCBydW5z
LCBgYHB5dGVzdGBgIGNyZWF0ZXMgYSB1bmlxdWUtcGVyLXRlc3QtaW52b2NhdGlvbiB0ZW1wb3Jh
cnkgZGlyZWN0b3J5OjoKK0xpc3QgdGhlIG5hbWUgYGB0bXBkaXJgYCBpbiB0aGUgdGVzdCBmdW5j
dGlvbiBzaWduYXR1cmUgYW5kIGBgcHl0ZXN0YGAgd2lsbCBsb29rdXAgYW5kIGNhbGwgYSBmaXh0
dXJlIGZhY3RvcnkgdG8gY3JlYXRlIHRoZSByZXNvdXJjZSBiZWZvcmUgcGVyZm9ybWluZyB0aGUg
dGVzdCBmdW5jdGlvbiBjYWxsLiBCZWZvcmUgdGhlIHRlc3QgcnVucywgYGBweXRlc3RgYCBjcmVh
dGVzIGEgdW5pcXVlLXBlci10ZXN0LWludm9jYXRpb24gdGVtcG9yYXJ5IGRpcmVjdG9yeToKKwor
Li4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXEgdGVzdF90bXBkaXIucHkK
ICAgICBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbMTAwJV0KQEAgLTE1MSw3ICsxNjEsNyBAQCBMaXN0IHRoZSBuYW1l
IGBgdG1wZGlyYGAgaW4gdGhlIHRlc3QgZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCBgYHB5dGVzdGBg
IHdpbGwgbG9vawogICAgIHRtcGRpciA9IGxvY2FsKCdQWVRFU1RfVE1QRElSL3Rlc3RfbmVlZHNm
aWxlczAnKQogCiAgICAgICAgIGRlZiB0ZXN0X25lZWRzZmlsZXModG1wZGlyKToKLSAgICAgICAg
ICAgIHByaW50ICh0bXBkaXIpCisgICAgICAgICAgICBwcmludCh0bXBkaXIpCiAgICAgPiAgICAg
ICBhc3NlcnQgMAogICAgIEUgICAgICAgYXNzZXJ0IDAKIApAQCAtMTYyLDcgKzE3Miw5IEBAIExp
c3QgdGhlIG5hbWUgYGB0bXBkaXJgYCBpbiB0aGUgdGVzdCBmdW5jdGlvbiBzaWduYXR1cmUgYW5k
IGBgcHl0ZXN0YGAgd2lsbCBsb29rCiAKIE1vcmUgaW5mbyBvbiB0bXBkaXIgaGFuZGxpbmcgaXMg
YXZhaWxhYmxlIGF0IDpyZWY6YFRlbXBvcmFyeSBkaXJlY3RvcmllcyBhbmQgZmlsZXMgPHRtcGRp
ciBoYW5kbGluZz5gLgogCi1GaW5kIG91dCB3aGF0IGtpbmQgb2YgYnVpbHRpbiA6cmVmOmBweXRl
c3QgZml4dHVyZXMgPGZpeHR1cmVzPmAgZXhpc3Qgd2l0aCB0aGUgY29tbWFuZDo6CitGaW5kIG91
dCB3aGF0IGtpbmQgb2YgYnVpbHRpbiA6cmVmOmBweXRlc3QgZml4dHVyZXMgPGZpeHR1cmVzPmAg
ZXhpc3Qgd2l0aCB0aGUgY29tbWFuZDoKKworLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5
dGVzdCAtLWZpeHR1cmVzICAgIyBzaG93cyBidWlsdGluIGFuZCBjdXN0b20gZml4dHVyZXMKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dvb2RwcmFjdGljZXMucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2dvb2RwcmFjdGljZXMucnN0CmluZGV4IDJiYmQ5ZDBhZTU4NDE5NzczMWY1
Y2U2NjFhMmE3ZDZjNjdhMmY1YTkuLmYwOGJkNWM0MDc4ZmIwZDQxYjBhZmE4NGY2NjVjNmUyMDM0
Nzc3MmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9nb29kcHJhY3RpY2VzLnJzdAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZ29vZHByYWN0aWNlcy5yc3QKQEAgLTQsNiArNCwyOCBA
QAogR29vZCBJbnRlZ3JhdGlvbiBQcmFjdGljZXMKID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KIAorSW5zdGFsbCBwYWNrYWdlIHdpdGggcGlwCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0ZvciBkZXZl
bG9wbWVudCwgd2UgcmVjb21tZW5kIHlvdSB1c2UgdmVudl8gZm9yIHZpcnR1YWwgZW52aXJvbm1l
bnRzCisob3IgdmlydHVhbGVudl8gZm9yIFB5dGhvbiAyLjcpIGFuZAorcGlwXyBmb3IgaW5zdGFs
bGluZyB5b3VyIGFwcGxpY2F0aW9uIGFuZCBhbnkgZGVwZW5kZW5jaWVzLAorYXMgd2VsbCBhcyB0
aGUgYGBweXRlc3RgYCBwYWNrYWdlIGl0c2VsZi4KK1RoaXMgZW5zdXJlcyB5b3VyIGNvZGUgYW5k
IGRlcGVuZGVuY2llcyBhcmUgaXNvbGF0ZWQgZnJvbSB5b3VyIHN5c3RlbSBQeXRob24gaW5zdGFs
bGF0aW9uLgorCitOZXh0LCBwbGFjZSBhIGBgc2V0dXAucHlgYCBmaWxlIGluIHRoZSByb290IG9m
IHlvdXIgcGFja2FnZSB3aXRoIHRoZSBmb2xsb3dpbmcgbWluaW11bSBjb250ZW50OjoKKworICAg
IGZyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAsIGZpbmRfcGFja2FnZXMKKworICAgIHNldHVw
KG5hbWU9IlBBQ0tBR0VOQU1FIiwgcGFja2FnZXM9ZmluZF9wYWNrYWdlcygpKQorCitXaGVyZSBg
YFBBQ0tBR0VOQU1FYGAgaXMgdGhlIG5hbWUgb2YgeW91ciBwYWNrYWdlLiBZb3UgY2FuIHRoZW4g
aW5zdGFsbCB5b3VyIHBhY2thZ2UgaW4gImVkaXRhYmxlIiBtb2RlIGJ5IHJ1bm5pbmcgZnJvbSB0
aGUgc2FtZSBkaXJlY3Rvcnk6OgorCisgICAgIHBpcCBpbnN0YWxsIC1lIC4KKword2hpY2ggbGV0
cyB5b3UgY2hhbmdlIHlvdXIgc291cmNlIGNvZGUgKGJvdGggdGVzdHMgYW5kIGFwcGxpY2F0aW9u
KSBhbmQgcmVydW4gdGVzdHMgYXQgd2lsbC4KK1RoaXMgaXMgc2ltaWxhciB0byBydW5uaW5nIGBg
cHl0aG9uIHNldHVwLnB5IGRldmVsb3BgYCBvciBgYGNvbmRhIGRldmVsb3BgYCBpbiB0aGF0IGl0
IGluc3RhbGxzCit5b3VyIHBhY2thZ2UgdXNpbmcgYSBzeW1saW5rIHRvIHlvdXIgZGV2ZWxvcG1l
bnQgY29kZS4KIAogLi4gX2B0ZXN0IGRpc2NvdmVyeWA6CiAuLiBfYFB5dGhvbiB0ZXN0IGRpc2Nv
dmVyeWA6CkBAIC0yMCw4ICs0Miw4IEBAIENvbnZlbnRpb25zIGZvciBQeXRob24gdGVzdCBkaXNj
b3ZlcnkKICogSW4gdGhvc2UgZGlyZWN0b3JpZXMsIHNlYXJjaCBmb3IgYGB0ZXN0XyoucHlgYCBv
ciBgYCpfdGVzdC5weWBgIGZpbGVzLCBpbXBvcnRlZCBieSB0aGVpciBgdGVzdCBwYWNrYWdlIG5h
bWVgXy4KICogRnJvbSB0aG9zZSBmaWxlcywgY29sbGVjdCB0ZXN0IGl0ZW1zOgogCi0gICogYGB0
ZXN0X2BgIHByZWZpeGVkIHRlc3QgZnVuY3Rpb25zIG9yIG1ldGhvZHMgb3V0c2lkZSBvZiBjbGFz
cwotICAqIGBgdGVzdF9gYCBwcmVmaXhlZCB0ZXN0IGZ1bmN0aW9ucyBvciBtZXRob2RzIGluc2lk
ZSBgYFRlc3RgYCBwcmVmaXhlZCB0ZXN0IGNsYXNzZXMgKHdpdGhvdXQgYW4gYGBfX2luaXRfX2Bg
IG1ldGhvZCkKKyAgKiBgYHRlc3RgYCBwcmVmaXhlZCB0ZXN0IGZ1bmN0aW9ucyBvciBtZXRob2Rz
IG91dHNpZGUgb2YgY2xhc3MKKyAgKiBgYHRlc3RgYCBwcmVmaXhlZCB0ZXN0IGZ1bmN0aW9ucyBv
ciBtZXRob2RzIGluc2lkZSBgYFRlc3RgYCBwcmVmaXhlZCB0ZXN0IGNsYXNzZXMgKHdpdGhvdXQg
YW4gYGBfX2luaXRfX2BgIG1ldGhvZCkKIAogRm9yIGV4YW1wbGVzIG9mIGhvdyB0byBjdXN0b21p
emUgeW91ciB0ZXN0IGRpc2NvdmVyeSA6ZG9jOmBleGFtcGxlL3B5dGhvbmNvbGxlY3Rpb25gLgog
CkBAIC01MSw4ICs3MywxOCBAQCB0byBrZWVwIHRlc3RzIHNlcGFyYXRlIGZyb20gYWN0dWFsIGFw
cGxpY2F0aW9uIGNvZGUgKG9mdGVuIGEgZ29vZCBpZGVhKTo6CiAgICAgICAgIHRlc3Rfdmlldy5w
eQogICAgICAgICAuLi4KIAotVGhpcyB3YXkgeW91ciB0ZXN0cyBjYW4gcnVuIGVhc2lseSBhZ2Fp
bnN0IGFuIGluc3RhbGxlZCB2ZXJzaW9uCi1vZiBgYG15cGtnYGAuCitUaGlzIGhhcyB0aGUgZm9s
bG93aW5nIGJlbmVmaXRzOgorCisqIFlvdXIgdGVzdHMgY2FuIHJ1biBhZ2FpbnN0IGFuIGluc3Rh
bGxlZCB2ZXJzaW9uIGFmdGVyIGV4ZWN1dGluZyBgYHBpcCBpbnN0YWxsIC5gYC4KKyogWW91ciB0
ZXN0cyBjYW4gcnVuIGFnYWluc3QgdGhlIGxvY2FsIGNvcHkgd2l0aCBhbiBlZGl0YWJsZSBpbnN0
YWxsIGFmdGVyIGV4ZWN1dGluZyBgYHBpcCBpbnN0YWxsIC0tZWRpdGFibGUgLmBgLgorKiBJZiB5
b3UgZG9uJ3QgaGF2ZSBhIGBgc2V0dXAucHlgYCBmaWxlIGFuZCBhcmUgcmVseWluZyBvbiB0aGUg
ZmFjdCB0aGF0IFB5dGhvbiBieSBkZWZhdWx0IHB1dHMgdGhlIGN1cnJlbnQKKyAgZGlyZWN0b3J5
IGluIGBgc3lzLnBhdGhgYCB0byBpbXBvcnQgeW91ciBwYWNrYWdlLCB5b3UgY2FuIGV4ZWN1dGUg
YGBweXRob24gLW0gcHl0ZXN0YGAgdG8gZXhlY3V0ZSB0aGUgdGVzdHMgYWdhaW5zdCB0aGUKKyAg
bG9jYWwgY29weSBkaXJlY3RseSwgd2l0aG91dCB1c2luZyBgYHBpcGBgLgorCisuLiBub3RlOjoK
KworICAgIFNlZSA6cmVmOmBweXRob25wYXRoYCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0
aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGNhbGxpbmcgYGBweXRlc3RgYCBhbmQKKyAgICBgYHB5dGhv
biAtbSBweXRlc3RgYC4KIAogTm90ZSB0aGF0IHVzaW5nIHRoaXMgc2NoZW1lIHlvdXIgdGVzdCBm
aWxlcyBtdXN0IGhhdmUgKip1bmlxdWUgbmFtZXMqKiwgYmVjYXVzZQogYGBweXRlc3RgYCB3aWxs
IGltcG9ydCB0aGVtIGFzICp0b3AtbGV2ZWwqIG1vZHVsZXMgc2luY2UgdGhlcmUgYXJlIG5vIHBh
Y2thZ2VzCkBAIC0xNzcsMTkgKzIwOSw2IEBAIE5vdGUgdGhhdCB0aGlzIGxheW91dCBhbHNvIHdv
cmtzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGBgc3JjYGAgbGF5b3V0IG1lbnRpb25lCiB0b3gK
IC0tLS0tLQogCi1Gb3IgZGV2ZWxvcG1lbnQsIHdlIHJlY29tbWVuZCB0byB1c2UgdmlydHVhbGVu
dl8gZW52aXJvbm1lbnRzIGFuZCBwaXBfCi1mb3IgaW5zdGFsbGluZyB5b3VyIGFwcGxpY2F0aW9u
IGFuZCBhbnkgZGVwZW5kZW5jaWVzCi1hcyB3ZWxsIGFzIHRoZSBgYHB5dGVzdGBgIHBhY2thZ2Ug
aXRzZWxmLiBUaGlzIGVuc3VyZXMgeW91ciBjb2RlIGFuZAotZGVwZW5kZW5jaWVzIGFyZSBpc29s
YXRlZCBmcm9tIHRoZSBzeXN0ZW0gUHl0aG9uIGluc3RhbGxhdGlvbi4KLQotWW91IGNhbiB0aGVu
IGluc3RhbGwgeW91ciBwYWNrYWdlIGluICJlZGl0YWJsZSIgbW9kZTo6Ci0KLSAgICAgcGlwIGlu
c3RhbGwgLWUgLgotCi13aGljaCBsZXRzIHlvdSBjaGFuZ2UgeW91ciBzb3VyY2UgY29kZSAoYm90
aCB0ZXN0cyBhbmQgYXBwbGljYXRpb24pIGFuZCByZXJ1biB0ZXN0cyBhdCB3aWxsLgotVGhpcyBp
cyBzaW1pbGFyIHRvIHJ1bm5pbmcgYHB5dGhvbiBzZXR1cC5weSBkZXZlbG9wYCBvciBgY29uZGEg
ZGV2ZWxvcGAgaW4gdGhhdCBpdCBpbnN0YWxscwoteW91ciBwYWNrYWdlIHVzaW5nIGEgc3ltbGlu
ayB0byB5b3VyIGRldmVsb3BtZW50IGNvZGUuCi0KIE9uY2UgeW91IGFyZSBkb25lIHdpdGggeW91
ciB3b3JrIGFuZCB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHlvdXIgYWN0dWFsCiBwYWNrYWdlIHBh
c3NlcyBhbGwgdGVzdHMgeW91IG1heSB3YW50IHRvIGxvb2sgaW50byBgdG94YF8sIHRoZQogdmly
dHVhbGVudiB0ZXN0IGF1dG9tYXRpb24gdG9vbCBhbmQgaXRzIGBweXRlc3Qgc3VwcG9ydApAQCAt
MjgyLDcgKzMwMSw3IEBAIHlvdXIgb3duIHNldHVwdG9vbHMgVGVzdCBjb21tYW5kIGZvciBpbnZv
a2luZyBweXRlc3QuCiAgICAgc2V0dXAoCiAgICAgICAgICMgLi4uLAogICAgICAgICB0ZXN0c19y
ZXF1aXJlPVsicHl0ZXN0Il0sCi0gICAgICAgIGNtZGNsYXNzPXsidGVzdCI6IFB5VGVzdH0sCisg
ICAgICAgIGNtZGNsYXNzPXsicHl0ZXN0IjogUHlUZXN0fSwKICAgICApCiAKIE5vdyBpZiB5b3Ug
cnVuOjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9oaXN0b3JpY2FsLW5vdGVzLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9oaXN0b3JpY2FsLW5vdGVzLnJzdAppbmRleCAwMjhjZWZm
OWIxNzQ4NjFiY2Q5NTBlYTllN2E4NzM0NTM4ZTMzMmE5Li5jODQwMzcyOGYyZjg5ZDE3ZjhkODM3
OWU0Yjk2Yjc1ZGJiODY3NDU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaGlzdG9y
aWNhbC1ub3Rlcy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2hpc3RvcmljYWwtbm90ZXMu
cnN0CkBAIC00LDEwICs0LDEyMSBAQCBIaXN0b3JpY2FsIE5vdGVzCiBUaGlzIHBhZ2UgbGlzdHMg
ZmVhdHVyZXMgb3IgYmVoYXZpb3IgZnJvbSBwcmV2aW91cyB2ZXJzaW9ucyBvZiBweXRlc3Qgd2hp
Y2ggaGF2ZSBjaGFuZ2VkIG92ZXIgdGhlIHllYXJzLiBUaGV5IGFyZQoga2VwdCBoZXJlIGFzIGEg
aGlzdG9yaWNhbCBub3RlIHNvIHVzZXJzIGxvb2tpbmcgYXQgb2xkIGNvZGUgY2FuIGZpbmQgZG9j
dW1lbnRhdGlvbiByZWxhdGVkIHRvIHRoZW0uCiAKKworLi4gX21hcmtlci1yZXZhbXA6CisKK01h
cmtlciByZXZhbXAgYW5kIGl0ZXJhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky4uIHZlcnNpb25jaGFuZ2VkOjogMy42CisKK3B5dGVzdCdzIG1hcmtlciBpbXBsZW1lbnRhdGlv
biB0cmFkaXRpb25hbGx5IHdvcmtlZCBieSBzaW1wbHkgdXBkYXRpbmcgdGhlIGBgX19kaWN0X19g
YCBhdHRyaWJ1dGUgb2YgZnVuY3Rpb25zIHRvIGN1bXVsYXRpdmVseSBhZGQgbWFya2Vycy4gQXMg
YSByZXN1bHQsIG1hcmtlcnMgd291bGQgdW5pbnRlbnRpb25hbGx5IGJlIHBhc3NlZCBhbG9uZyBj
bGFzcyBoaWVyYXJjaGllcyBpbiBzdXJwcmlzaW5nIHdheXMuIEZ1cnRoZXIsIHRoZSBBUEkgZm9y
IHJldHJpZXZpbmcgdGhlbSB3YXMgaW5jb25zaXN0ZW50LCBhcyBtYXJrZXJzIGZyb20gcGFyYW1l
dGVyaXphdGlvbiB3b3VsZCBiZSBzdG9yZWQgZGlmZmVyZW50bHkgdGhhbiBtYXJrZXJzIGFwcGxp
ZWQgdXNpbmcgdGhlIGBgQHB5dGVzdC5tYXJrYGAgZGVjb3JhdG9yIGFuZCBtYXJrZXJzIGFkZGVk
IHZpYSBgYG5vZGUuYWRkX21hcmtlcmBgLgorCitUaGlzIHN0YXRlIG9mIHRoaW5ncyBtYWRlIGl0
IHRlY2huaWNhbGx5IG5leHQgdG8gaW1wb3NzaWJsZSB0byB1c2UgZGF0YSBmcm9tIG1hcmtlcnMg
Y29ycmVjdGx5IHdpdGhvdXQgaGF2aW5nIGEgZGVlcCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbnRl
cm5hbHMsIGxlYWRpbmcgdG8gc3VidGxlIGFuZCBoYXJkIHRvIHVuZGVyc3RhbmQgYnVncyBpbiBt
b3JlIGFkdmFuY2VkIHVzYWdlcy4KKworRGVwZW5kaW5nIG9uIGhvdyBhIG1hcmtlciBnb3QgZGVj
bGFyZWQvY2hhbmdlZCBvbmUgd291bGQgZ2V0IGVpdGhlciBhIGBgTWFya2VySW5mb2BgIHdoaWNo
IG1pZ2h0IGNvbnRhaW4gbWFya2VycyBmcm9tIHNpYmxpbmcgY2xhc3NlcywKK2BgTWFya0RlY29y
YXRvcnNgYCB3aGVuIG1hcmtzIGNhbWUgZnJvbSBwYXJhbWV0ZXJpemF0aW9uIG9yIGZyb20gYSBg
YG5vZGUuYWRkX21hcmtlcmBgIGNhbGwsIGRpc2NhcmRpbmcgcHJpb3IgbWFya3MuIEFsc28gYGBN
YXJrZXJJbmZvYGAgYWN0cyBsaWtlIGEgc2luZ2xlIG1hcmssIHdoZW4gaXQgaW4gZmFjdCByZXBy
ZXNlbnRzIGEgbWVyZ2VkIHZpZXcgb24gbXVsdGlwbGUgbWFya3Mgd2l0aCB0aGUgc2FtZSBuYW1l
LgorCitPbiB0b3Agb2YgdGhhdCBtYXJrZXJzIHdlcmUgbm90IGFjY2Vzc2libGUgaW4gdGhlIHNh
bWUgd2F5IGZvciBtb2R1bGVzLCBjbGFzc2VzLCBhbmQgZnVuY3Rpb25zL21ldGhvZHMuCitJbiBm
YWN0LCBtYXJrZXJzIHdlcmUgb25seSBhY2Nlc3NpYmxlIGluIGZ1bmN0aW9ucywgZXZlbiBpZiB0
aGV5IHdlcmUgZGVjbGFyZWQgb24gY2xhc3Nlcy9tb2R1bGVzLgorCitBIG5ldyBBUEkgdG8gYWNj
ZXNzIG1hcmtlcnMgaGFzIGJlZW4gaW50cm9kdWNlZCBpbiBweXRlc3QgMy42IGluIG9yZGVyIHRv
IHNvbHZlIHRoZSBwcm9ibGVtcyB3aXRoCit0aGUgaW5pdGlhbCBkZXNpZ24sIHByb3ZpZGluZyB0
aGUgOmZ1bmM6YF9weXRlc3Qubm9kZXMuTm9kZS5pdGVyX21hcmtlcnNgIG1ldGhvZCB0byBpdGVy
YXRlIG92ZXIKK21hcmtlcnMgaW4gYSBjb25zaXN0ZW50IG1hbm5lciBhbmQgcmV3b3JraW5nIHRo
ZSBpbnRlcm5hbHMsIHdoaWNoIHNvbHZlZCBhIGdyZWF0IGRlYWwgb2YgcHJvYmxlbXMKK3dpdGgg
dGhlIGluaXRpYWwgZGVzaWduLgorCisKKy4uIF91cGRhdGUgbWFya2VyIGNvZGU6CisKK1VwZGF0
aW5nIGNvZGUKK35+fn5+fn5+fn5+fn4KKworVGhlIG9sZCBgYE5vZGUuZ2V0X21hcmtlcihuYW1l
KWBgIGZ1bmN0aW9uIGlzIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBiZWNhdXNlIGl0IHJldHVybnMg
YW4gaW50ZXJuYWwgYGBNYXJrZXJJbmZvYGAgb2JqZWN0Cit3aGljaCBjb250YWlucyB0aGUgbWVy
Z2VkIG5hbWUsIGBgKmFyZ3NgYCBhbmQgYGAqKmt3YXJnc2BgIG9mIGFsbCB0aGUgbWFya2VycyB3
aGljaCBhcHBseSB0byB0aGF0IG5vZGUuCisKK0luIGdlbmVyYWwgdGhlcmUgYXJlIHR3byBzY2Vu
YXJpb3Mgb24gaG93IG1hcmtlcnMgc2hvdWxkIGJlIGhhbmRsZWQ6CisKKzEuIE1hcmtzIG92ZXJ3
cml0ZSBlYWNoIG90aGVyLiBPcmRlciBtYXR0ZXJzIGJ1dCB5b3Ugb25seSB3YW50IHRvIHRoaW5r
IG9mIHlvdXIgbWFyayBhcyBhIHNpbmdsZSBpdGVtLiBFLmcuCitgYGxvZ19sZXZlbCgnaW5mbycp
YGAgYXQgYSBtb2R1bGUgbGV2ZWwgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IGBgbG9nX2xldmVsKCdk
ZWJ1ZycpYGAgZm9yIGEgc3BlY2lmaWMgdGVzdC4KKworICAgIEluIHRoaXMgY2FzZSwgdXNlIGBg
Tm9kZS5nZXRfY2xvc2VzdF9tYXJrZXIobmFtZSlgYDoKKworICAgIC4uIGNvZGUtYmxvY2s6OiBw
eXRob24KKworICAgICAgICAjIHJlcGxhY2UgdGhpczoKKyAgICAgICAgbWFya2VyID0gaXRlbS5n
ZXRfbWFya2VyKCJsb2dfbGV2ZWwiKQorICAgICAgICBpZiBtYXJrZXI6CisgICAgICAgICAgICBs
ZXZlbCA9IG1hcmtlci5hcmdzWzBdCisKKyAgICAgICAgIyBieSB0aGlzOgorICAgICAgICBtYXJr
ZXIgPSBpdGVtLmdldF9jbG9zZXN0X21hcmtlcigibG9nX2xldmVsIikKKyAgICAgICAgaWYgbWFy
a2VyOgorICAgICAgICAgICAgbGV2ZWwgPSBtYXJrZXIuYXJnc1swXQorCisyLiBNYXJrcyBjb21w
b3NlIGluIGFuIGFkZGl0aXZlIG1hbm5lci4gRS5nLiBgYHNraXBpZihjb25kaXRpb24pYGAgbWFy
a3MgbWVhbiB5b3UganVzdCB3YW50IHRvIGV2YWx1YXRlIGFsbCBvZiB0aGVtLAorb3JkZXIgZG9l
c24ndCBldmVuIG1hdHRlci4gWW91IHByb2JhYmx5IHdhbnQgdG8gdGhpbmsgb2YgeW91ciBtYXJr
cyBhcyBhIHNldCBoZXJlLgorCisgICBJbiB0aGlzIGNhc2UgaXRlcmF0ZSBvdmVyIGVhY2ggbWFy
ayBhbmQgaGFuZGxlIHRoZWlyIGBgKmFyZ3NgYCBhbmQgYGAqKmt3YXJnc2BgIGluZGl2aWR1YWxs
eS4KKworICAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgICAgICMgcmVwbGFjZSB0aGlz
CisgICAgICAgIHNraXBpZiA9IGl0ZW0uZ2V0X21hcmtlcigic2tpcGlmIikKKyAgICAgICAgaWYg
c2tpcGlmOgorICAgICAgICAgICAgZm9yIGNvbmRpdGlvbiBpbiBza2lwaWYuYXJnczoKKyAgICAg
ICAgICAgICAgICAjIGV2YWwgY29uZGl0aW9uCisgICAgICAgICAgICAgICAgLi4uCisKKyAgICAg
ICAgIyBieSB0aGlzOgorICAgICAgICBmb3Igc2tpcGlmIGluIGl0ZW0uaXRlcl9tYXJrZXJzKCJz
a2lwaWYiKToKKyAgICAgICAgICAgIGNvbmRpdGlvbiA9IHNraXBpZi5hcmdzWzBdCisgICAgICAg
ICAgICAjIGV2YWwgY29uZGl0aW9uCisKKworSWYgeW91IGFyZSB1bnN1cmUgb3IgaGF2ZSBhbnkg
cXVlc3Rpb25zLCBwbGVhc2UgY29uc2lkZXIgb3BlbmluZworYGFuIGlzc3VlIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzPmBfLgorCitSZWxhdGVkIGlzc3Vlcwor
fn5+fn5+fn5+fn5+fn4KKworSGVyZSBpcyBhIG5vbi1leGhhdXN0aXZlIGxpc3Qgb2YgaXNzdWVz
IGZpeGVkIGJ5IHRoZSBuZXcgaW1wbGVtZW50YXRpb246CisKKyogTWFya3MgZG9uJ3QgcGljayB1
cCBuZXN0ZWQgY2xhc3NlcyAoYCMxOTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMTk5PmBfKS4KKworKiBNYXJrZXJzIHN0YWluIG9uIGFsbCByZWxhdGVkIGNs
YXNzZXMgKGAjNTY4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzU2OD5gXykuCisKKyogQ29tYmluaW5nIG1hcmtzIC0gYXJncyBhbmQga3dhcmdzIGNhbGN1bGF0
aW9uIChgIzI4OTcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
Mjg5Nz5gXykuCisKKyogYGByZXF1ZXN0Lm5vZGUuZ2V0X21hcmtlcignbmFtZScpYGAgcmV0dXJu
cyBgYE5vbmVgYCBmb3IgbWFya2VycyBhcHBsaWVkIGluIGNsYXNzZXMgKGAjOTAyIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzkwMj5gXykuCisKKyogTWFya3Mg
YXBwbGllZCBpbiBwYXJhbWV0cml6ZSBhcmUgc3RvcmVkIGFzIG1hcmtkZWNvcmF0b3IgKGAjMjQw
MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNDAwPmBfKS4K
KworKiBGaXggbWFya2VyIGludGVyYWN0aW9uIGluIGEgYmFja3dhcmQgaW5jb21wYXRpYmxlIHdh
eSAoYCMxNjcwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE2
NzA+YF8pLgorCisqIFJlZmFjdG9yIG1hcmtzIHRvIGdldCByaWQgb2YgdGhlIGN1cnJlbnQgIm1h
cmtzIHRyYW5zZmVyIiBtZWNoYW5pc20gKGAjMjM2MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMzYzPmBfKS4KKworKiBJbnRyb2R1Y2UgRnVuY3Rpb25EZWZp
bml0aW9uIG5vZGUsIHVzZSBpdCBpbiBnZW5lcmF0ZV90ZXN0cyAoYCMyNTIyIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI1MjI+YF8pLgorCisqIFJlbW92ZSBu
YW1lZCBtYXJrZXIgYXR0cmlidXRlcyBhbmQgY29sbGVjdCBtYXJrZXJzIGluIGl0ZW1zIChgIzg5
MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy84OTE+YF8pLgor
CisqIHNraXBpZiBtYXJrIGZyb20gcGFyYW1ldHJpemUgaGlkZXMgbW9kdWxlIGxldmVsIHNraXBp
ZiBtYXJrIChgIzE1NDAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMTU0MD5gXykuCisKKyogc2tpcGlmICsgcGFyYW1ldHJpemUgbm90IHNraXBwaW5nIHRlc3Rz
IChgIzEyOTYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTI5
Nj5gXykuCisKKyogTWFya2VyIHRyYW5zZmVyIGluY29tcGF0aWJsZSB3aXRoIGluaGVyaXRhbmNl
IChgIzUzNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MzU+
YF8pLgorCitNb3JlIGRldGFpbHMgY2FuIGJlIGZvdW5kIGluIHRoZSBgb3JpZ2luYWwgUFIgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzMzMTc+YF8uCisKKy4uIG5v
dGU6OgorCisgICAgaW4gYSBmdXR1cmUgbWFqb3IgcmVsYXNlIG9mIHB5dGVzdCB3ZSB3aWxsIGlu
dHJvZHVjZSBjbGFzcyBiYXNlZCBtYXJrZXJzLAorICAgIGF0IHdoaWNoIHBvaW50IG1hcmtlcnMg
d2lsbCBubyBsb25nZXIgYmUgbGltaXRlZCB0byBpbnN0YW5jZXMgb2YgOnB5OmNsYXNzOmBNYXJr
YC4KKworCiBjYWNoZSBwbHVnaW4gaW50ZWdyYXRlZCBpbnRvIHRoZSBjb3JlCiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIHZlcnNpb25hZGRlZDo6IDIuOAorCiAK
IFRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSA6cmVmOmBjb3JlIGNhY2hlIDxjYWNoZT5gIHBsdWdp
biB3YXMgcHJldmlvdXNseSBkaXN0cmlidXRlZAogYXMgYSB0aGlyZCBwYXJ0eSBwbHVnaW4gbmFt
ZWQgYGBweXRlc3QtY2FjaGVgYC4gIFRoZSBjb3JlIHBsdWdpbgpAQCAtMTgsNyArMTI5LDcgQEAg
Y2FuIG9ubHkgc3RvcmUvcmVjZWl2ZSBkYXRhIGJldHdlZW4gdGVzdCBydW5zIHRoYXQgaXMganNv
bi1zZXJpYWxpemFibGUuCiBmdW5jYXJncyBhbmQgYGBweXRlc3RfZnVuY2FyZ19fYGAKIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0uLiB2ZXJzaW9uY2hhbmdlZDo6IDIuMwor
CiAKIEluIHZlcnNpb25zIHByaW9yIHRvIDIuMyB0aGVyZSB3YXMgbm8gYGBAcHl0ZXN0LmZpeHR1
cmVgYCBtYXJrZXIKIGFuZCB5b3UgaGFkIHRvIHVzZSBhIG1hZ2ljIGBgcHl0ZXN0X2Z1bmNhcmdf
X05BTUVgYCBwcmVmaXgKQEAgLTMwLDcgKzE0MSw3IEBAIGZ1bmN0aW9ucy4KIGBgQHB5dGVzdC55
aWVsZF9maXh0dXJlYGAgZGVjb3JhdG9yCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi0uLiB2ZXJzaW9uY2hhbmdlZDo6IDIuMTAKKwogCiBQcmlvciB0byB2ZXJzaW9uIDIu
MTAsIGluIG9yZGVyIHRvIHVzZSBhIGBgeWllbGRgYCBzdGF0ZW1lbnQgdG8gZXhlY3V0ZSB0ZWFy
ZG93biBjb2RlIG9uZQogaGFkIHRvIG1hcmsgYSBmaXh0dXJlIHVzaW5nIHRoZSBgYHlpZWxkX2Zp
eHR1cmVgYCBtYXJrZXIuIEZyb20gMi4xMCBvbndhcmQsIG5vcm1hbApAQCAtNDEsNyArMTUyLDcg
QEAgYW5kIGNvbnNpZGVyZWQgZGVwcmVjYXRlZC4KIGBgW3B5dGVzdF1gYCBoZWFkZXIgaW4gYGBz
ZXR1cC5jZmdgYAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIHZl
cnNpb25jaGFuZ2VkOjogMy4wCisKIAogUHJpb3IgdG8gMy4wLCB0aGUgc3VwcG9ydGVkIHNlY3Rp
b24gbmFtZSB3YXMgYGBbcHl0ZXN0XWBgLiBEdWUgdG8gaG93CiB0aGlzIG1heSBjb2xsaWRlIHdp
dGggc29tZSBkaXN0dXRpbHMgY29tbWFuZHMsIHRoZSByZWNvbW1lbmRlZApAQCAtNTQsMTcgKzE2
NSwxOSBAQCBuYW1lIGlzIGBgW3B5dGVzdF1gYC4KIEFwcGx5aW5nIG1hcmtzIHRvIGBgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplYGAgcGFyYW1ldGVycwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIHZlcnNpb25jaGFuZ2VkOjog
My4xCisKIAogUHJpb3IgdG8gdmVyc2lvbiAzLjEgdGhlIHN1cHBvcnRlZCBtZWNoYW5pc20gZm9y
IG1hcmtpbmcgdmFsdWVzCi11c2VkIHRoZSBzeW50YXg6OgordXNlZCB0aGUgc3ludGF4OgorCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJ0ZXN0X2lucHV0LGV4cGVjdGVkIiwgWwotICAgICAgICAoIjMrNSIs
IDgpLAotICAgICAgICAoIjIrNCIsIDYpLAotICAgICAgICBweXRlc3QubWFyay54ZmFpbCgoIjYq
OSIsIDQyKSwpLAotICAgIF0pCisKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAg
ICAgICAgInRlc3RfaW5wdXQsZXhwZWN0ZWQiLCBbKCIzKzUiLCA4KSwgKCIyKzQiLCA2KSwgcHl0
ZXN0Lm1hcmsueGZhaWwoKCI2KjkiLCA0MikpXQorICAgICkKICAgICBkZWYgdGVzdF9ldmFsKHRl
c3RfaW5wdXQsIGV4cGVjdGVkKToKICAgICAgICAgYXNzZXJ0IGV2YWwodGVzdF9pbnB1dCkgPT0g
ZXhwZWN0ZWQKIApAQCAtNzgsNyArMTkxLDcgQEAgVGhlIG9sZCBzeW50YXggaXMgcGxhbm5lZCB0
byBiZSByZW1vdmVkIGluIHB5dGVzdC00LjAuCiBgYEBweXRlc3QubWFyay5wYXJhbWV0cml6ZWBg
IGFyZ3VtZW50IG5hbWVzIGFzIGEgdHVwbGUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0uLiB2ZXJzaW9uY2hhbmdlZDo6IDIuNAorCiAK
IEluIHZlcnNpb25zIHByaW9yIHRvIDIuNCBvbmUgbmVlZGVkIHRvIHNwZWNpZnkgdGhlIGFyZ3Vt
ZW50CiBuYW1lcyBhcyBhIHR1cGxlLiAgVGhpcyByZW1haW5zIHZhbGlkIGJ1dCB0aGUgc2ltcGxl
ciBgYCJuYW1lMSxuYW1lMiwuLi4iYGAKQEAgLTg5LDcgKzIwMiw3IEBAIGl0J3MgZWFzaWVyIHRv
IHdyaXRlIGFuZCBwcm9kdWNlcyBsZXNzIGxpbmUgbm9pc2UuCiBzZXR1cDogaXMgbm93IGFuICJh
dXRvdXNlIGZpeHR1cmUiCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4u
IHZlcnNpb25jaGFuZ2VkOjogMi4zCisKIAogRHVyaW5nIGRldmVsb3BtZW50IHByaW9yIHRvIHRo
ZSBweXRlc3QtMi4zIHJlbGVhc2UgdGhlIG5hbWUKIGBgcHl0ZXN0LnNldHVwYGAgd2FzIHVzZWQg
YnV0IGJlZm9yZSB0aGUgcmVsZWFzZSBpdCB3YXMgcmVuYW1lZApAQCAtMTAyLDEyICsyMTUsMTYg
QEAgbmFtZWx5IDpyZWY6YGF1dG91c2UgZml4dHVyZXNgCiBDb25kaXRpb25zIGFzIHN0cmluZ3Mg
aW5zdGVhZCBvZiBib29sZWFucwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotLi4gdmVyc2lvbmNoYW5nZWQ6OiAyLjQKKwogCiBQcmlvciB0byBweXRlc3QtMi40
IHRoZSBvbmx5IHdheSB0byBzcGVjaWZ5IHNraXBpZi94ZmFpbCBjb25kaXRpb25zIHdhcwotdG8g
dXNlIHN0cmluZ3M6OgordG8gdXNlIHN0cmluZ3M6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24K
IAogICAgIGltcG9ydCBzeXMKKworCiAgICAgQHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnZlcnNp
b25faW5mbyA+PSAoMywzKSIpCiAgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKICAgICAgICAgLi4u
CkBAIC0xMzksMTcgKzI1NiwyMCBAQCBkaWN0aW9uYXJ5IHdoaWNoIGlzIGNvbnN0cnVjdGVkIGFz
IGZvbGxvd3M6CiAgIGV4cHJlc3Npb24gaXMgYXBwbGllZC4KIAogVGhlIHB5dGVzdCBgYGNvbmZp
Z2BgIG9iamVjdCBhbGxvd3MgeW91IHRvIHNraXAgYmFzZWQgb24gYSB0ZXN0Ci1jb25maWd1cmF0
aW9uIHZhbHVlIHdoaWNoIHlvdSBtaWdodCBoYXZlIGFkZGVkOjoKK2NvbmZpZ3VyYXRpb24gdmFs
dWUgd2hpY2ggeW91IG1pZ2h0IGhhdmUgYWRkZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24K
IAogICAgIEBweXRlc3QubWFyay5za2lwaWYoIm5vdCBjb25maWcuZ2V0dmFsdWUoJ2RiJykiKQot
ICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKC4uLik6CisgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKICAg
ICAgICAgLi4uCiAKLVRoZSBlcXVpdmFsZW50IHdpdGggImJvb2xlYW4gY29uZGl0aW9ucyIgaXM6
OgorVGhlIGVxdWl2YWxlbnQgd2l0aCAiYm9vbGVhbiBjb25kaXRpb25zIiBpczoKIAotICAgIEBw
eXRlc3QubWFyay5za2lwaWYobm90IHB5dGVzdC5jb25maWcuZ2V0dmFsdWUoImRiIiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICByZWFzb249Ii0tZGIgd2FzIG5vdCBzcGVjaWZpZWQiKQotICAg
IGRlZiB0ZXN0X2Z1bmN0aW9uKC4uLik6CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBA
cHl0ZXN0Lm1hcmsuc2tpcGlmKG5vdCBweXRlc3QuY29uZmlnLmdldHZhbHVlKCJkYiIpLCByZWFz
b249Ii0tZGIgd2FzIG5vdCBzcGVjaWZpZWQiKQorICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CiAg
ICAgICAgIHBhc3MKIAogLi4gbm90ZTo6CkBAIC0xNjIsMTYgKzI4MiwzMCBAQCBUaGUgZXF1aXZh
bGVudCB3aXRoICJib29sZWFuIGNvbmRpdGlvbnMiIGlzOjoKIGBgcHl0ZXN0LnNldF90cmFjZSgp
YGAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLi4gdmVyc2lvbmNoYW5nZWQ6OiAyLjQKIAot
UHJldmlvdXMgdG8gdmVyc2lvbiAyLjQgdG8gc2V0IGEgYnJlYWsgcG9pbnQgaW4gY29kZSBvbmUg
bmVlZGVkIHRvIHVzZSBgYHB5dGVzdC5zZXRfdHJhY2UoKWBgOjoKKworUHJldmlvdXMgdG8gdmVy
c2lvbiAyLjQgdG8gc2V0IGEgYnJlYWsgcG9pbnQgaW4gY29kZSBvbmUgbmVlZGVkIHRvIHVzZSBg
YHB5dGVzdC5zZXRfdHJhY2UoKWBgOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBp
bXBvcnQgcHl0ZXN0CisKKwogICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CiAgICAgICAgIC4uLgot
ICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkgICAgIyBpbnZva2UgUERCIGRlYnVnZ2VyIGFuZCB0
cmFjaW5nCisgICAgICAgIHB5dGVzdC5zZXRfdHJhY2UoKSAgIyBpbnZva2UgUERCIGRlYnVnZ2Vy
IGFuZCB0cmFjaW5nCiAKIAogVGhpcyBpcyBubyBsb25nZXIgbmVlZGVkIGFuZCBvbmUgY2FuIHVz
ZSB0aGUgbmF0aXZlIGBgaW1wb3J0IHBkYjtwZGIuc2V0X3RyYWNlKClgYCBjYWxsIGRpcmVjdGx5
LgogCiBGb3IgbW9yZSBkZXRhaWxzIHNlZSA6cmVmOmBicmVha3BvaW50c2AuCisKKyJjb21wYXQi
IHByb3BlcnRpZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisKK0FjY2VzcyBvZiBgYE1vZHVs
ZWBgLCBgYEZ1bmN0aW9uYGAsIGBgQ2xhc3NgYCwgYGBJbnN0YW5jZWBgLCBgYEZpbGVgYCBhbmQg
YGBJdGVtYGAgdGhyb3VnaCBgYE5vZGVgYCBpbnN0YW5jZXMgaGF2ZSBsb25nCitiZWVuIGRvY3Vt
ZW50ZWQgYXMgZGVwcmVjYXRlZCwgYnV0IHN0YXJ0ZWQgdG8gZW1pdCB3YXJuaW5ncyBmcm9tIHB5
dGVzdCBgYDMuOWBgIGFuZCBvbndhcmQuCisKK1VzZXJzIHNob3VsZCBqdXN0IGBgaW1wb3J0IHB5
dGVzdGBgIGFuZCBhY2Nlc3MgdGhvc2Ugb2JqZWN0cyB1c2luZyB0aGUgYGBweXRlc3RgYCBtb2R1
bGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW5kZXgucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2luZGV4LnJzdAppbmRleCA2YTM4MmU1NzE3M2FlNjc5MTk1NmRmYzkzYWNjNGVh
MmQ2N2M1ZWIyLi5lZGNiYmViODRlNzAxZGM3NTdlMDk4ZmQ4Zjc3YmUwNjAyNGJlNTIzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW5kZXgucnN0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9pbmRleC5yc3QKQEAgLTIyLDEyICsyMiwxNSBAQCBBbiBleGFtcGxlIG9mIGEgc2ltcGxl
IHRlc3Q6CiAgICAgICAgIGFzc2VydCBpbmMoMykgPT0gNQogCiAKLVRvIGV4ZWN1dGUgaXQ6Ogor
VG8gZXhlY3V0ZSBpdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QK
ICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMu
eC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAk
UkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAz
LngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6
ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1Q
RElSCiAgICAgY29sbGVjdGVkIDEgaXRlbQogCiAgICAgdGVzdF9zYW1wbGUucHkgRiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC04
NCw3ICs4Nyw3IEBAIENvbnN1bHQgdGhlIDpyZWY6YENoYW5nZWxvZyA8Y2hhbmdlbG9nPmAgcGFn
ZSBmb3IgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyBvZiBlYWNoCiBMaWNlbnNlCiAtLS0tLS0tCiAK
LUNvcHlyaWdodCBIb2xnZXIgS3Jla2VsIGFuZCBvdGhlcnMsIDIwMDQtMjAxNy4KK0NvcHlyaWdo
dCBIb2xnZXIgS3Jla2VsIGFuZCBvdGhlcnMsIDIwMDQtMjAyMC4KIAogRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBgTUlUYF8gbGljZW5zZSwgcHl0ZXN0IGlzIGZyZWUgYW5kIG9w
ZW4gc291cmNlIHNvZnR3YXJlLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbGlj
ZW5zZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbGljZW5zZS5yc3QKaW5kZXggYjhjMGRjZTFi
ZWE4ZTE3MDU3NTAzY2JhMjA0MTk5OTA1Yjk0OTFmMS4uYzZjMTBiYmYzNThjNGIxYjE2MjQxYjEx
M2M2N2E2ZGJmZjBlMThmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xpY2Vuc2Uu
cnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9saWNlbnNlLnJzdApAQCAtNSwxMSArNSwxMSBA
QCBMaWNlbnNlCiAKIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgYE1JVGBfIGxp
Y2Vuc2UsIHB5dGVzdCBpcyBmcmVlIGFuZCBvcGVuIHNvdXJjZSBzb2Z0d2FyZS4KIAotOjoKKy4u
IGNvZGUtYmxvY2s6OiB0ZXh0CiAKICAgICBUaGUgTUlUIExpY2Vuc2UgKE1JVCkKIAotICAgIENv
cHlyaWdodCAoYykgMjAwNC0yMDE3IEhvbGdlciBLcmVrZWwgYW5kIG90aGVycworICAgIENvcHly
aWdodCAoYykgMjAwNC0yMDIwIEhvbGdlciBLcmVrZWwgYW5kIG90aGVycwogCiAgICAgUGVybWlz
c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0
YWluaW5nIGEgY29weSBvZgogICAgIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vbGlua3MuaW5jIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xpbmtzLmlu
YwppbmRleCA0ZDVhNGIxZWViZjJjODA0OGEyOWNhZTlmZGM0YTkwOTZlYmE3M2MwLi4xYjdjYmQw
NWIwMGExODg3NjM0OTg3MmU0NDI2ODNhNTc0OTI0NzM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vbGlua3MuaW5jCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9saW5rcy5pbmMKQEAg
LTE0LDYgKzE0LDcgQEAKIC4uIF9gZGlzdHJpYnV0ZSBkb2NzYDoKIC4uIF9gZGlzdHJpYnV0ZWA6
IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9kaXN0cmlidXRlLwogLi4gX2BwaXBgOiBodHRwczov
L3B5cGkub3JnL3Byb2plY3QvcGlwLworLi4gX2B2ZW52YDogaHR0cHM6Ly9kb2NzLnB5dGhvbi5v
cmcvMy9saWJyYXJ5L3ZlbnYuaHRtbC8KIC4uIF9gdmlydHVhbGVudmA6IGh0dHBzOi8vcHlwaS5v
cmcvcHJvamVjdC92aXJ0dWFsZW52LwogLi4gX2h1ZHNvbjogaHR0cDovL2h1ZHNvbi1jaS5vcmcv
CiAuLiBfamVua2luczogaHR0cDovL2plbmtpbnMtY2kub3JnLwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2xvZ2dpbmcucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xvZ2dpbmcucnN0
CmluZGV4IDAwODI5YzE1ZWVmNzgwZmQzMjU5ZDhhMzgyYjBjMTYzNWVmY2M1NmYuLmE1MzUwOTE4
NGY2ODE0ZWIyZDMwZTgyN2U4M2YwMzNiMTE3YTBlMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9sb2dnaW5nLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbG9nZ2luZy5yc3QK
QEAgLTMsMTcgKzMsMjEgQEAKIExvZ2dpbmcKIC0tLS0tLS0KIAotLi4gdmVyc2lvbmFkZGVkOjog
My4zCi0uLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorCisKIAogcHl0ZXN0IGNhcHR1cmVzIGxvZyBt
ZXNzYWdlcyBvZiBsZXZlbCBgYFdBUk5JTkdgYCBvciBhYm92ZSBhdXRvbWF0aWNhbGx5IGFuZCBk
aXNwbGF5cyB0aGVtIGluIHRoZWlyIG93biBzZWN0aW9uCiBmb3IgZWFjaCBmYWlsZWQgdGVzdCBp
biB0aGUgc2FtZSBtYW5uZXIgYXMgY2FwdHVyZWQgc3Rkb3V0IGFuZCBzdGRlcnIuCiAKLVJ1bm5p
bmcgd2l0aG91dCBvcHRpb25zOjoKK1J1bm5pbmcgd2l0aG91dCBvcHRpb25zOgorCisuLiBjb2Rl
LWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0CiAKLVNob3dzIGZhaWxlZCB0ZXN0cyBsaWtlIHNv
OjoKK1Nob3dzIGZhaWxlZCB0ZXN0cyBsaWtlIHNvOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0
CiAKICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRsb2cgY2FsbCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgdGVzdF9yZXBvcnRpbmcucHkgICAgMjYgV0FSTklORyAg
dGV4dCBnb2luZyB0byBsb2dnZXIKQEAgLTI3LDEyICszMSwxNiBAQCBCeSBkZWZhdWx0IGVhY2gg
Y2FwdHVyZWQgbG9nIG1lc3NhZ2Ugc2hvd3MgdGhlIG1vZHVsZSwgbGluZSBudW1iZXIsIGxvZyBs
ZXZlbAogYW5kIG1lc3NhZ2UuCiAKIElmIGRlc2lyZWQgdGhlIGxvZyBhbmQgZGF0ZSBmb3JtYXQg
Y2FuIGJlIHNwZWNpZmllZCB0bwotYW55dGhpbmcgdGhhdCB0aGUgbG9nZ2luZyBtb2R1bGUgc3Vw
cG9ydHMgYnkgcGFzc2luZyBzcGVjaWZpYyBmb3JtYXR0aW5nIG9wdGlvbnM6OgorYW55dGhpbmcg
dGhhdCB0aGUgbG9nZ2luZyBtb2R1bGUgc3VwcG9ydHMgYnkgcGFzc2luZyBzcGVjaWZpYyBmb3Jt
YXR0aW5nIG9wdGlvbnM6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLS1s
b2ctZm9ybWF0PSIlKGFzY3RpbWUpcyAlKGxldmVsbmFtZSlzICUobWVzc2FnZSlzIiBcCiAgICAg
ICAgICAgICAtLWxvZy1kYXRlLWZvcm1hdD0iJVktJW0tJWQgJUg6JU06JVMiCiAKLVNob3dzIGZh
aWxlZCB0ZXN0cyBsaWtlIHNvOjoKK1Nob3dzIGZhaWxlZCB0ZXN0cyBsaWtlIHNvOgorCisuLiBj
b2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJl
ZCBzdGRsb2cgY2FsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgMjAxMC0wNC0xMCAxNDo0
ODo0NCBXQVJOSU5HIHRleHQgZ29pbmcgdG8gbG9nZ2VyCkBAIC01MSw3ICs1OSw5IEBAIFRoZXNl
IG9wdGlvbnMgY2FuIGFsc28gYmUgY3VzdG9taXplZCB0aHJvdWdoIGBgcHl0ZXN0LmluaWBgIGZp
bGU6CiAgICAgbG9nX2RhdGVfZm9ybWF0ID0gJVktJW0tJWQgJUg6JU06JVMKIAogRnVydGhlciBp
dCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlIHJlcG9ydGluZyBvZiBjYXB0dXJlZCBjb250ZW50IChz
dGRvdXQsCi1zdGRlcnIgYW5kIGxvZ3MpIG9uIGZhaWxlZCB0ZXN0cyBjb21wbGV0ZWx5IHdpdGg6
Ogorc3RkZXJyIGFuZCBsb2dzKSBvbiBmYWlsZWQgdGVzdHMgY29tcGxldGVseSB3aXRoOgorCisu
LiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC0tc2hvdy1jYXB0dXJlPW5vCiAKQEAg
LTEzMyw3ICsxNDMsNiBAQCB0aGUgcmVjb3JkcyBmb3IgdGhlIGBgc2V0dXBgYCBhbmQgYGBjYWxs
YGAgc3RhZ2VzIGR1cmluZyB0ZWFyZG93biBsaWtlIHNvOgogCiAuLiBjb2RlLWJsb2NrOjogcHl0
aG9uCiAKLQogICAgIEBweXRlc3QuZml4dHVyZQogICAgIGRlZiB3aW5kb3coY2FwbG9nKToKICAg
ICAgICAgd2luZG93ID0gY3JlYXRlX3dpbmRvdygpCkBAIC0xOTgsNiArMjA3LDkgQEAgb3B0aW9u
IG5hbWVzIGFyZToKICogYGBsb2dfZmlsZV9mb3JtYXRgYAogKiBgYGxvZ19maWxlX2RhdGVfZm9y
bWF0YGAKIAorWW91IGNhbiBjYWxsIGBgc2V0X2xvZ19wYXRoKClgYCB0byBjdXN0b21pemUgdGhl
IGxvZ19maWxlIHBhdGggZHluYW1pY2FsbHkuIFRoaXMgZnVuY3Rpb25hbGl0eQoraXMgY29uc2lk
ZXJlZCAqKmV4cGVyaW1lbnRhbCoqLgorCiAuLiBfbG9nX3JlbGVhc2Vfbm90ZXM6CiAKIFJlbGVh
c2Ugbm90ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9tYXJrLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9tYXJrLnJzdAppbmRleCBhYTEyMTBiYjZiNWFmNGYxNGU2NDcxY2YwZjc0
NWY4YzcwOTUxYjU5Li5kZTZhYjc4MjIyY2Q5ODA3YTRjNTcwMTI2M2EwZjRlZWY0MTM5ZmRiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbWFyay5yc3QKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL21hcmsucnN0CkBAIC0xLDkgKzEsNyBAQAotCiAuLiBfbWFyazoKIAogTWFya2luZyB0
ZXN0IGZ1bmN0aW9ucyB3aXRoIGF0dHJpYnV0ZXMKLT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEJ5IHVzaW5nIHRoZSBgYHB5dGVzdC5tYXJrYGAg
aGVscGVyIHlvdSBjYW4gZWFzaWx5IHNldAogbWV0YWRhdGEgb24geW91ciB0ZXN0IGZ1bmN0aW9u
cy4gVGhlcmUgYXJlCkBAIC0xNyw4ICsxNSwxMCBAQCBzb21lIGJ1aWx0aW4gbWFya2VycywgZm9y
IGV4YW1wbGU6CiAgIHRvIHRoZSBzYW1lIHRlc3QgZnVuY3Rpb24uCiAKIEl0J3MgZWFzeSB0byBj
cmVhdGUgY3VzdG9tIG1hcmtlcnMgb3IgdG8gYXBwbHkgbWFya2VycwotdG8gd2hvbGUgdGVzdCBj
bGFzc2VzIG9yIG1vZHVsZXMuIFNlZSA6cmVmOmBtYXJrIGV4YW1wbGVzYCBmb3IgZXhhbXBsZXMK
LXdoaWNoIGFsc28gc2VydmUgYXMgZG9jdW1lbnRhdGlvbi4KK3RvIHdob2xlIHRlc3QgY2xhc3Nl
cyBvciBtb2R1bGVzLiBUaG9zZSBtYXJrZXJzIGNhbiBiZSB1c2VkIGJ5IHBsdWdpbnMsIGFuZCBh
bHNvCithcmUgY29tbW9ubHkgdXNlZCB0byA6cmVmOmBzZWxlY3QgdGVzdHMgPG1hcmsgcnVuPmAg
b24gdGhlIGNvbW1hbmQtbGluZSB3aXRoIHRoZSBgYC1tYGAgb3B0aW9uLgorCitTZWUgOnJlZjpg
bWFyayBleGFtcGxlc2AgZm9yIGV4YW1wbGVzIHdoaWNoIGFsc28gc2VydmUgYXMgZG9jdW1lbnRh
dGlvbi4KIAogLi4gbm90ZTo6CiAKQEAgLTI2LDEzNCArMjYsNTMgQEAgd2hpY2ggYWxzbyBzZXJ2
ZSBhcyBkb2N1bWVudGF0aW9uLgogICAgIDpyZWY6YGZpeHR1cmVzIDxmaXh0dXJlcz5gLgogCiAK
LVJhaXNpbmcgZXJyb3JzIG9uIHVua25vd24gbWFya3M6IC0tc3RyaWN0Ci0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1XaGVuIHRoZSBgYC0tc3RyaWN0YGAgY29t
bWFuZC1saW5lIGZsYWcgaXMgcGFzc2VkLCBhbnkgbWFya3Mgbm90IHJlZ2lzdGVyZWQgaW4gdGhl
IGBgcHl0ZXN0LmluaWBgIGZpbGUgd2lsbCB0cmlnZ2VyIGFuIGVycm9yLgotCi1NYXJrcyBjYW4g
YmUgcmVnaXN0ZXJlZCBsaWtlIHRoaXM6Ci0KLS4uIGNvZGUtYmxvY2s6OiBpbmkKLQotICAgIFtw
eXRlc3RdCi0gICAgbWFya2VycyA9Ci0gICAgICAgIHNsb3cKLSAgICAgICAgc2VyaWFsCitSZWdp
c3RlcmluZyBtYXJrcworLS0tLS0tLS0tLS0tLS0tLS0KIAotVGhpcyBjYW4gYmUgdXNlZCB0byBw
cmV2ZW50IHVzZXJzIG1pc3R5cGluZyBtYXJrIG5hbWVzIGJ5IGFjY2lkZW50LiBUZXN0IHN1aXRl
cyB0aGF0IHdhbnQgdG8gZW5mb3JjZSB0aGlzCi1zaG91bGQgYWRkIGBgLS1zdHJpY3RgYCB0byBg
YGFkZG9wdHNgYDoKK1lvdSBjYW4gcmVnaXN0ZXIgY3VzdG9tIG1hcmtzIGluIHlvdXIgYGBweXRl
c3QuaW5pYGAgZmlsZSBsaWtlIHRoaXM6CiAKIC4uIGNvZGUtYmxvY2s6OiBpbmkKIAogICAgIFtw
eXRlc3RdCi0gICAgYWRkb3B0cyA9IC0tc3RyaWN0CiAgICAgbWFya2VycyA9Ci0gICAgICAgIHNs
b3cKKyAgICAgICAgc2xvdzogbWFya3MgdGVzdHMgYXMgc2xvdyAoZGVzZWxlY3Qgd2l0aCAnLW0g
Im5vdCBzbG93IicpCiAgICAgICAgIHNlcmlhbAogCitOb3RlIHRoYXQgZXZlcnl0aGluZyBhZnRl
ciB0aGUgYGA6YGAgaXMgYW4gb3B0aW9uYWwgZGVzY3JpcHRpb24uCiAKLS4uIGBtYXJrZXItaXRl
cmF0aW9uYAotCi1NYXJrZXIgcmV2YW1wIGFuZCBpdGVyYXRpb24KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjYKLQotcHl0ZXN0J3MgbWFya2VyIGlt
cGxlbWVudGF0aW9uIHRyYWRpdGlvbmFsbHkgd29ya2VkIGJ5IHNpbXBseSB1cGRhdGluZyB0aGUg
YGBfX2RpY3RfX2BgIGF0dHJpYnV0ZSBvZiBmdW5jdGlvbnMgdG8gYWRkIG1hcmtlcnMsIGluIGEg
Y3VtdWxhdGl2ZSBtYW5uZXIuIEFzIGEgcmVzdWx0IG9mIHRoZSB0aGlzLCBtYXJrZXJzIHdvdWxk
IHVuaW50ZW5kZWx5IGJlIHBhc3NlZCBhbG9uZyBjbGFzcyBoaWVyYXJjaGllcyBpbiBzdXJwcmlz
aW5nIHdheXMgcGx1cyB0aGUgQVBJIGZvciByZXRyaXZpbmcgdGhlbSB3YXMgaW5jb25zaXN0ZW50
LCBhcyBtYXJrZXJzIGZyb20gcGFyYW1ldGVyaXphdGlvbiB3b3VsZCBiZSBzdG9yZWQgZGlmZmVy
ZW50bHkgdGhhbiBtYXJrZXJzIGFwcGxpZWQgdXNpbmcgdGhlIGBgQHB5dGVzdC5tYXJrYGAgZGVj
b3JhdG9yIGFuZCBtYXJrZXJzIGFkZGVkIHZpYSBgYG5vZGUuYWRkX21hcmtlcmBgLgotCi1UaGlz
IHN0YXRlIG9mIHRoaW5ncyBtYWRlIGl0IHRlY2huaWNhbGx5IG5leHQgdG8gaW1wb3NzaWJsZSB0
byB1c2UgZGF0YSBmcm9tIG1hcmtlcnMgY29ycmVjdGx5IHdpdGhvdXQgaGF2aW5nIGEgZGVlcCB1
bmRlcnN0YW5kaW5nIG9mIHRoZSBpbnRlcm5hbHMsIGxlYWRpbmcgdG8gc3VidGxlIGFuZCBoYXJk
IHRvIHVuZGVyc3RhbmQgYnVncyBpbiBtb3JlIGFkdmFuY2VkIHVzYWdlcy4KLQotRGVwZW5kaW5n
IG9uIGhvdyBhIG1hcmtlciBnb3QgZGVjbGFyZWQvY2hhbmdlZCBvbmUgd291bGQgZ2V0IGVpdGhl
ciBhIGBgTWFya2VySW5mb2BgIHdoaWNoIG1pZ2h0IGNvbnRhaW4gbWFya2VycyBmcm9tIHNpYmxp
bmcgY2xhc3NlcywKLWBgTWFya0RlY29yYXRvcnNgYCB3aGVuIG1hcmtzIGNhbWUgZnJvbSBwYXJh
bWV0ZXJpemF0aW9uIG9yIGZyb20gYSBgYG5vZGUuYWRkX21hcmtlcmBgIGNhbGwsIGRpc2NhcmRp
bmcgcHJpb3IgbWFya3MuIEFsc28gYGBNYXJrZXJJbmZvYGAgYWN0cyBsaWtlIGEgc2luZ2xlIG1h
cmssIHdoZW4gaXQgaW4gZmFjdCByZXByZXNlbnRzIGEgbWVyZ2VkIHZpZXcgb24gbXVsdGlwbGUg
bWFya3Mgd2l0aCB0aGUgc2FtZSBuYW1lLgotCi1PbiB0b3Agb2YgdGhhdCBtYXJrZXJzIHdoZXJl
IG5vdCBhY2Nlc3NpYmxlIHRoZSBzYW1lIHdheSBmb3IgbW9kdWxlcywgY2xhc3NlcywgYW5kIGZ1
bmN0aW9ucy9tZXRob2RzLAotaW4gZmFjdCwgbWFya2VycyB3aGVyZSBvbmx5IGFjY2Vzc2libGUg
aW4gZnVuY3Rpb25zLCBldmVuIGlmIHRoZXkgd2hlcmUgZGVjbGFyZWQgb24gY2xhc3Nlcy9tb2R1
bGVzLgotCi1BIG5ldyBBUEkgdG8gYWNjZXNzIG1hcmtlcnMgaGFzIGJlZW4gaW50cm9kdWNlZCBp
biBweXRlc3QgMy42IGluIG9yZGVyIHRvIHNvbHZlIHRoZSBwcm9ibGVtcyB3aXRoIHRoZSBpbml0
aWFsIGRlc2lnbiwgcHJvdmlkaW5nIDpmdW5jOmBfcHl0ZXN0Lm5vZGVzLk5vZGUuaXRlcl9tYXJr
ZXJzYCBtZXRob2QgdG8gaXRlcmF0ZSBvdmVyIG1hcmtlcnMgaW4gYSBjb25zaXN0ZW50IG1hbm5l
ciBhbmQgcmV3b3JraW5nIHRoZSBpbnRlcm5hbHMsIHdoaWNoIHNvbHZlZCBncmVhdCBkZWFsIG9m
IHByb2JsZW1zIHdpdGggdGhlIGluaXRpYWwgZGVzaWduLgotCi0KLS4uIF91cGRhdGUgbWFya2Vy
IGNvZGU6Ci0KLVVwZGF0aW5nIGNvZGUKLX5+fn5+fn5+fn5+fn4KLQotVGhlIG9sZCBgYE5vZGUu
Z2V0X21hcmtlcihuYW1lKWBgIGZ1bmN0aW9uIGlzIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBiZWNh
dXNlIGl0IHJldHVybnMgYW4gaW50ZXJuYWwgYGBNYXJrZXJJbmZvYGAgb2JqZWN0Ci13aGljaCBj
b250YWlucyB0aGUgbWVyZ2VkIG5hbWUsIGBgKmFyZ3NgYCBhbmQgYGAqKmt3YXJnc2BgIG9mIGFs
bCB0aGUgbWFya2VycyB3aGljaCBhcHBseSB0byB0aGF0IG5vZGUuCi0KLUluIGdlbmVyYWwgdGhl
cmUgYXJlIHR3byBzY2VuYXJpb3Mgb24gaG93IG1hcmtlcnMgc2hvdWxkIGJlIGhhbmRsZWQ6Ci0K
LTEuIE1hcmtzIG92ZXJ3cml0ZSBlYWNoIG90aGVyLiBPcmRlciBtYXR0ZXJzIGJ1dCB5b3Ugb25s
eSB3YW50IHRvIHRoaW5rIG9mIHlvdXIgbWFyayBhcyBhIHNpbmdsZSBpdGVtLiBFLmcuCi1gYGxv
Z19sZXZlbCgnaW5mbycpYGAgYXQgYSBtb2R1bGUgbGV2ZWwgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5
IGBgbG9nX2xldmVsKCdkZWJ1ZycpYGAgZm9yIGEgc3BlY2lmaWMgdGVzdC4KK0FsdGVybmF0aXZl
bHksIHlvdSBjYW4gcmVnaXN0ZXIgbmV3IG1hcmtlcnMgcHJvZ3JhbWF0aWNhbGx5IGluIGEKKzpy
ZWY6YHB5dGVzdF9jb25maWd1cmUgPGluaXRpYWxpemF0aW9uLWhvb2tzPmAgaG9vazoKIAotICAg
IEluIHRoaXMgY2FzZSByZXBsYWNlIHVzZSBgYE5vZGUuZ2V0X2Nsb3Nlc3RfbWFya2VyKG5hbWUp
YGA6CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKLSAgICAuLiBjb2RlLWJsb2NrOjogcHl0aG9u
CisgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKKyAgICAgICAgY29uZmlnLmFkZGlu
aXZhbHVlX2xpbmUoCisgICAgICAgICAgICAibWFya2VycyIsICJlbnYobmFtZSk6IG1hcmsgdGVz
dCB0byBydW4gb25seSBvbiBuYW1lZCBlbnZpcm9ubWVudCIKKyAgICAgICAgKQogCi0gICAgICAg
ICMgcmVwbGFjZSB0aGlzOgotICAgICAgICBtYXJrZXIgPSBpdGVtLmdldF9tYXJrZXIoImxvZ19s
ZXZlbCIpCi0gICAgICAgIGlmIG1hcmtlcjoKLSAgICAgICAgICAgIGxldmVsID0gbWFya2VyLmFy
Z3NbMF0KIAotICAgICAgICAjIGJ5IHRoaXM6Ci0gICAgICAgIG1hcmtlciA9IGl0ZW0uZ2V0X2Ns
b3Nlc3RfbWFya2VyKCJsb2dfbGV2ZWwiKQotICAgICAgICBpZiBtYXJrZXI6Ci0gICAgICAgICAg
ICBsZXZlbCA9IG1hcmtlci5hcmdzWzBdCitSZWdpc3RlcmVkIG1hcmtzIGFwcGVhciBpbiBweXRl
c3QncyBoZWxwIHRleHQgYW5kIGRvIG5vdCBlbWl0IHdhcm5pbmdzIChzZWUgdGhlIG5leHQgc2Vj
dGlvbikuIEl0CitpcyByZWNvbW1lbmRlZCB0aGF0IHRoaXJkLXBhcnR5IHBsdWdpbnMgYWx3YXlz
IDpyZWY6YHJlZ2lzdGVyIHRoZWlyIG1hcmtlcnMgPHJlZ2lzdGVyaW5nLW1hcmtlcnM+YC4KIAot
Mi4gTWFya3MgY29tcG9zZSBhZGRpdGl2ZS4gRS5nLiBgYHNraXBpZihjb25kaXRpb24pYGAgbWFy
a3MgbWVhbnMgeW91IGp1c3Qgd2FudCB0byBldmFsdWF0ZSBhbGwgb2YgdGhlbSwKLW9yZGVyIGRv
ZXNuJ3QgZXZlbiBtYXR0ZXIuIFlvdSBwcm9iYWJseSB3YW50IHRvIHRoaW5rIG9mIHlvdXIgbWFy
a3MgYXMgYSBzZXQgaGVyZS4KKy4uIF91bmtub3duLW1hcmtzOgogCi0gICBJbiB0aGlzIGNhc2Ug
aXRlcmF0ZSBvdmVyIGVhY2ggbWFyayBhbmQgaGFuZGxlIHRoZWlyIGBgKmFyZ3NgYCBhbmQgYGAq
Kmt3YXJnc2BgIGluZGl2aWR1YWxseS4KK1JhaXNpbmcgZXJyb3JzIG9uIHVua25vd24gbWFya3MK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotICAgLi4gY29kZS1ibG9jazo6IHB5
dGhvbgorVW5yZWdpc3RlcmVkIG1hcmtzIGFwcGxpZWQgd2l0aCB0aGUgYGBAcHl0ZXN0Lm1hcmsu
bmFtZV9vZl90aGVfbWFya2BgIGRlY29yYXRvcgord2lsbCBhbHdheXMgZW1pdCBhIHdhcm5pbmcg
aW4gb3JkZXIgdG8gYXZvaWQgc2lsZW50bHkgZG9pbmcgc29tZXRoaW5nCitzdXJwcmlzaW5nIGR1
ZSB0byBtaXMtdHlwZWQgbmFtZXMuIEFzIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgc2VjdGlv
biwgeW91IGNhbiBkaXNhYmxlCit0aGUgd2FybmluZyBmb3IgY3VzdG9tIG1hcmtzIGJ5IHJlZ2lz
dGVyaW5nIHRoZW0gaW4geW91ciBgYHB5dGVzdC5pbmlgYCBmaWxlIG9yCit1c2luZyBhIGN1c3Rv
bSBgYHB5dGVzdF9jb25maWd1cmVgYCBob29rLgogCi0gICAgICAgICMgcmVwbGFjZSB0aGlzCi0g
ICAgICAgIHNraXBpZiA9IGl0ZW0uZ2V0X21hcmtlcigic2tpcGlmIikKLSAgICAgICAgaWYgc2tp
cGlmOgotICAgICAgICAgICAgZm9yIGNvbmRpdGlvbiBpbiBza2lwaWYuYXJnczoKLSAgICAgICAg
ICAgICAgICAjIGV2YWwgY29uZGl0aW9uCi0gICAgICAgICAgICAgICAgLi4uCitXaGVuIHRoZSBg
YC0tc3RyaWN0LW1hcmtlcnNgYCBjb21tYW5kLWxpbmUgZmxhZyBpcyBwYXNzZWQsIGFueSB1bmtu
b3duIG1hcmtzIGFwcGxpZWQKK3dpdGggdGhlIGBgQHB5dGVzdC5tYXJrLm5hbWVfb2ZfdGhlX21h
cmtgYCBkZWNvcmF0b3Igd2lsbCB0cmlnZ2VyIGFuIGVycm9yLiBZb3UgY2FuCitlbmZvcmNlIHRo
aXMgdmFsaWRhdGlvbiBpbiB5b3VyIHByb2plY3QgYnkgYWRkaW5nIGBgLS1zdHJpY3QtbWFya2Vy
c2BgIHRvIGBgYWRkb3B0c2BgOgogCi0gICAgICAgICMgYnkgdGhpczoKLSAgICAgICAgZm9yIHNr
aXBpZiBpbiBpdGVtLml0ZXJfbWFya2Vycygic2tpcGlmIik6Ci0gICAgICAgICAgICBjb25kaXRp
b24gPSBza2lwaWYuYXJnc1swXQotICAgICAgICAgICAgIyBldmFsIGNvbmRpdGlvbgotCi0KLUlm
IHlvdSBhcmUgdW5zdXJlIG9yIGhhdmUgYW55IHF1ZXN0aW9ucywgcGxlYXNlIGNvbnNpZGVyIG9w
ZW5pbmcKLWBhbiBpc3N1ZSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcz5gXy4KLQotUmVsYXRlZCBpc3N1ZXMKLX5+fn5+fn5+fn5+fn5+Ci0KLUhlcmUgaXMgYSBu
b24tZXhoYXVzdGl2ZSBsaXN0IG9mIGlzc3VlcyBmaXhlZCBieSB0aGUgbmV3IGltcGxlbWVudGF0
aW9uOgotCi0qIE1hcmtzIGRvbid0IHBpY2sgdXAgbmVzdGVkIGNsYXNzZXMgKGAjMTk5IDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE5OT5gXykuCi0KLSogbWFy
a2VycyBzdGFpbnMgb24gYWxsIHJlbGF0ZWQgY2xhc3NlcyAoYCM1NjggPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTY4PmBfKS4KLQotKiBjb21iaW5pbmcgbWFy
a3MgLSBhcmdzIGFuZCBrd2FyZ3MgY2FsY3VsYXRpb24gKGAjMjg5NyA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yODk3PmBfKS4KLQotKiBgYHJlcXVlc3Qubm9k
ZS5nZXRfbWFya2VyKCduYW1lJylgYCByZXR1cm5zIGBgTm9uZWBgIGZvciBtYXJrZXJzIGFwcGxp
ZWQgaW4gY2xhc3NlcyAoYCM5MDIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvOTAyPmBfKS4KLQotKiBtYXJrcyBhcHBsaWVkIGluIHBhcmFtZXRyaXplIGFyZSBz
dG9yZWQgYXMgbWFya2RlY29yYXRvciAoYCMyNDAwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzI0MDA+YF8pLgotCi0qIGZpeCBtYXJrZXIgaW50ZXJhY3Rpb24g
aW4gYSBiYWNrd2FyZCBpbmNvbXBhdGlibGUgd2F5IChgIzE2NzAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTY3MD5gXykuCi0KLSogUmVmYWN0b3IgbWFya3Mg
dG8gZ2V0IHJpZCBvZiB0aGUgY3VycmVudCAibWFya3MgdHJhbnNmZXIiIG1lY2hhbmlzbSAoYCMy
MzYzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIzNjM+YF8p
LgotCi0qIEludHJvZHVjZSBGdW5jdGlvbkRlZmluaXRpb24gbm9kZSwgdXNlIGl0IGluIGdlbmVy
YXRlX3Rlc3RzIChgIzI1MjIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMjUyMj5gXykuCi0KLSogcmVtb3ZlIG5hbWVkIG1hcmtlciBhdHRyaWJ1dGVzIGFuZCBj
b2xsZWN0IG1hcmtlcnMgaW4gaXRlbXMgKGAjODkxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzg5MT5gXykuCi0KLSogc2tpcGlmIG1hcmsgZnJvbSBwYXJhbWV0
cml6ZSBoaWRlcyBtb2R1bGUgbGV2ZWwgc2tpcGlmIG1hcmsgKGAjMTU0MCA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNTQwPmBfKS4KLQotKiBza2lwaWYgKyBw
YXJhbWV0cml6ZSBub3Qgc2tpcHBpbmcgdGVzdHMgKGAjMTI5NiA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMjk2PmBfKS4KLQotKiBtYXJrZXIgdHJhbnNmZXIg
aW5jb21wYXRpYmxlIHdpdGggaW5oZXJpdGFuY2UgKGAjNTM1IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUzNT5gXykuCi0KLU1vcmUgZGV0YWlscyBjYW4gYmUg
Zm91bmQgaW4gdGhlIGBvcmlnaW5hbCBQUiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L3B1bGwvMzMxNz5gXy4KLQotLi4gbm90ZTo6CisuLiBjb2RlLWJsb2NrOjogaW5pCiAK
LSAgICBpbiBhIGZ1dHVyZSBtYWpvciByZWxhc2Ugb2YgcHl0ZXN0IHdlIHdpbGwgaW50cm9kdWNl
IGNsYXNzIGJhc2VkIG1hcmtlcnMsCi0gICAgYXQgd2hpY2ggcG9pbnRzIG1hcmtlcnMgd2lsbCBu
byBsb25nZXIgYmUgbGltaXRlZCB0byBpbnN0YW5jZXMgb2YgOnB5OmNsYXNzOmBNYXJrYAorICAg
IFtweXRlc3RdCisgICAgYWRkb3B0cyA9IC0tc3RyaWN0LW1hcmtlcnMKKyAgICBtYXJrZXJzID0K
KyAgICAgICAgc2xvdzogbWFya3MgdGVzdHMgYXMgc2xvdyAoZGVzZWxlY3Qgd2l0aCAnLW0gIm5v
dCBzbG93IicpCisgICAgICAgIHNlcmlhbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L21vbmtleXBhdGNoLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9tb25rZXlwYXRjaC5yc3QKaW5k
ZXggMWE2OWMzYTQyOWQyOGZjNWZjYmExOGIxMjJhNTdlZTU2NzZjOTRkYy4uYzkzMDRlMGZiNzAw
MDYyYWZhMDZhNGQ3OGE2ZDBhM2U5MTJlNzU1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL21vbmtleXBhdGNoLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbW9ua2V5cGF0Y2gu
cnN0CkBAIC0xNiw3ICsxNiw3IEBAIGFuZCBhIGRpc2N1c3Npb24gb2YgaXRzIG1vdGl2YXRpb24u
CiAKIAogU2ltcGxlIGV4YW1wbGU6IG1vbmtleXBhdGNoaW5nIGZ1bmN0aW9ucwotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIElmIHlvdSB3YW50IHRvIHByZXRlbmQgdGhh
dCBgYG9zLmV4cGFuZHVzZXJgYCByZXR1cm5zIGEgY2VydGFpbgogZGlyZWN0b3J5LCB5b3UgY2Fu
IHVzZSB0aGUgOnB5Om1ldGg6YG1vbmtleXBhdGNoLnNldGF0dHJgIG1ldGhvZCB0bwpAQCAtMzgs
OCArMzgsOCBAQCBIZXJlIG91ciB0ZXN0IGZ1bmN0aW9uIG1vbmtleXBhdGNoZXMgYGBvcy5wYXRo
LmV4cGFuZHVzZXJgYCBhbmQKIHRoZW4gY2FsbHMgaW50byBhIGZ1bmN0aW9uIHRoYXQgY2FsbHMg
aXQuICBBZnRlciB0aGUgdGVzdCBmdW5jdGlvbgogZmluaXNoZXMgdGhlIGBgb3MucGF0aC5leHBh
bmR1c2VyYGAgbW9kaWZpY2F0aW9uIHdpbGwgYmUgdW5kb25lLgogCi1leGFtcGxlOiBwcmV2ZW50
aW5nICJyZXF1ZXN0cyIgZnJvbSByZW1vdGUgb3BlcmF0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitHbG9iYWwgcGF0Y2ggZXhhbXBs
ZTogcHJldmVudGluZyAicmVxdWVzdHMiIGZyb20gcmVtb3RlIG9wZXJhdGlvbnMKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCiBJZiB5b3Ugd2FudCB0byBwcmV2ZW50IHRoZSAicmVxdWVzdHMiIGxpYnJhcnkgZnJvbSBw
ZXJmb3JtaW5nIGh0dHAKIHJlcXVlc3RzIGluIGFsbCB5b3VyIHRlc3RzLCB5b3UgY2FuIGRvOjoK
QEAgLTgxLDYgKzgxLDgwIEBAIHNvIHRoYXQgYW55IGF0dGVtcHRzIHdpdGhpbiB0ZXN0cyB0byBj
cmVhdGUgaHR0cCByZXF1ZXN0cyB3aWxsIGZhaWwuCiAgICAgU2VlIGlzc3VlIGAjMzI5MCA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMjkwPmBfIGZvciBkZXRh
aWxzLgogCiAKK01vbmtleXBhdGNoaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHlvdSBhcmUgd29ya2luZyB3aXRoIGVu
dmlyb25tZW50IHZhcmlhYmxlcyB5b3Ugb2Z0ZW4gbmVlZCB0byBzYWZlbHkgY2hhbmdlIHRoZSB2
YWx1ZXMKK29yIGRlbGV0ZSB0aGVtIGZyb20gdGhlIHN5c3RlbSBmb3IgdGVzdGluZyBwdXJwb3Nl
cy4gYGBNb25rZXlwYXRjaGBgIHByb3ZpZGVzIGEgbWVjaGFuaXNtCit0byBkbyB0aGlzIHVzaW5n
IHRoZSBgYHNldGVudmBgIGFuZCBgYGRlbGVudmBgIG1ldGhvZC4gT3VyIGV4YW1wbGUgY29kZSB0
byB0ZXN0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnRzIG9mIG91
ciBvcmlnaW5hbCBjb2RlIGZpbGUgZS5nLiBjb2RlLnB5CisgICAgaW1wb3J0IG9zCisKKworICAg
IGRlZiBnZXRfb3NfdXNlcl9sb3dlcigpOgorICAgICAgICAiIiJTaW1wbGUgcmV0cmlldmFsIGZ1
bmN0aW9uLgorICAgICAgICBSZXR1cm5zIGxvd2VyY2FzZSBVU0VSIG9yIHJhaXNlcyBFbnZpcm9u
bWVudEVycm9yLiIiIgorICAgICAgICB1c2VybmFtZSA9IG9zLmdldGVudigiVVNFUiIpCisKKyAg
ICAgICAgaWYgdXNlcm5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIEVudmlyb25tZW50
RXJyb3IoIlVTRVIgZW52aXJvbm1lbnQgaXMgbm90IHNldC4iKQorCisgICAgICAgIHJldHVybiB1
c2VybmFtZS5sb3dlcigpCisKK1RoZXJlIGFyZSB0d28gcG90ZW50aWFsIHBhdGhzLiBGaXJzdCwg
dGhlIGBgVVNFUmBgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCB0byBhCit2YWx1ZS4gU2Vj
b25kLCB0aGUgYGBVU0VSYGAgZW52aXJvbm1lbnQgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QuIFVz
aW5nIGBgbW9ua2V5cGF0Y2hgYAorYm90aCBwYXRocyBjYW4gYmUgc2FmZWx5IHRlc3RlZCB3aXRo
b3V0IGltcGFjdGluZyB0aGUgcnVubmluZyBlbnZpcm9ubWVudDoKKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgorCisgICAgIyBjb250ZW50cyBvZiBvdXIgdGVzdCBmaWxlIGUuZy4gdGVzdF9jb2Rl
LnB5CisgICAgaW1wb3J0IHB5dGVzdAorCisKKyAgICBkZWYgdGVzdF91cHBlcl90b19sb3dlciht
b25rZXlwYXRjaCk6CisgICAgICAgICIiIlNldCB0aGUgVVNFUiBlbnYgdmFyIHRvIGFzc2VydCB0
aGUgYmVoYXZpb3IuIiIiCisgICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiVVNFUiIsICJUZXN0
aW5nVXNlciIpCisgICAgICAgIGFzc2VydCBnZXRfb3NfdXNlcl9sb3dlcigpID09ICJ0ZXN0aW5n
dXNlciIKKworCisgICAgZGVmIHRlc3RfcmFpc2VfZXhjZXB0aW9uKG1vbmtleXBhdGNoKToKKyAg
ICAgICAgIiIiUmVtb3ZlIHRoZSBVU0VSIGVudiB2YXIgYW5kIGFzc2VydCBFbnZpcm9ubWVudEVy
cm9yIGlzIHJhaXNlZC4iIiIKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KCJVU0VSIiwgcmFp
c2luZz1GYWxzZSkKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoRW52aXJvbm1lbnRFcnJv
cik6CisgICAgICAgICAgICBfID0gZ2V0X29zX3VzZXJfbG93ZXIoKQorCitUaGlzIGJlaGF2aW9y
IGNhbiBiZSBtb3ZlZCBpbnRvIGBgZml4dHVyZWBgIHN0cnVjdHVyZXMgYW5kIHNoYXJlZCBhY3Jv
c3MgdGVzdHM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9ydCBweXRlc3QK
KworCisgICAgQHB5dGVzdC5maXh0dXJlCisgICAgZGVmIG1vY2tfZW52X3VzZXIobW9ua2V5cGF0
Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlVTRVIiLCAiVGVzdGluZ1VzZXIiKQor
CisKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgbW9ja19lbnZfbWlzc2luZyhtb25rZXlw
YXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLmRlbGVudigiVVNFUiIsIHJhaXNpbmc9RmFsc2Up
CisKKworICAgICMgTm90aWNlIHRoZSB0ZXN0cyByZWZlcmVuY2UgdGhlIGZpeHR1cmVzIGZvciBt
b2NrcworICAgIGRlZiB0ZXN0X3VwcGVyX3RvX2xvd2VyKG1vY2tfZW52X3VzZXIpOgorICAgICAg
ICBhc3NlcnQgZ2V0X29zX3VzZXJfbG93ZXIoKSA9PSAidGVzdGluZ3VzZXIiCisKKworICAgIGRl
ZiB0ZXN0X3JhaXNlX2V4Y2VwdGlvbihtb2NrX2Vudl9taXNzaW5nKToKKyAgICAgICAgd2l0aCBw
eXRlc3QucmFpc2VzKEVudmlyb25tZW50RXJyb3IpOgorICAgICAgICAgICAgXyA9IGdldF9vc191
c2VyX2xvd2VyKCkKKworCisKIC4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0Lm1vbmtleXBhdGNo
CiAKIEFQSSBSZWZlcmVuY2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9ub3NlLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9ub3NlLnJzdAppbmRleCAxZjdiN2I2Mzg0NDhmYjI3MzU4
ZDVhNGYwY2QzMWUxMWRkZDQxMWI2Li43MDFlYTQ0ZWNhMWU5ZDk1YWE5ZDdlNGRhMzIyMWZmZDVl
ZTFiYWIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbm9zZS5yc3QKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL25vc2UucnN0CkBAIC0xMiw3ICsxMiw5IEBAIFJ1bm5pbmcgdGVzdHMg
d3JpdHRlbiBmb3Igbm9zZQogVXNhZ2UKIC0tLS0tLS0tLS0tLS0KIAotQWZ0ZXIgOnJlZjpgaW5z
dGFsbGF0aW9uYCB0eXBlOjoKK0FmdGVyIDpyZWY6YGluc3RhbGxhdGlvbmAgdHlwZToKKworLi4g
Y29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGhvbiBzZXR1cC5weSBkZXZlbG9wICAjIG1ha2Ug
c3VyZSB0ZXN0cyBjYW4gaW1wb3J0IG91ciBwYWNrYWdlCiAgICAgcHl0ZXN0ICAjIGluc3RlYWQg
b2YgJ25vc2V0ZXN0cycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wYXJhbWV0cml6
ZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcGFyYW1ldHJpemUucnN0CmluZGV4IDY5M2NmMTkx
M2JmOGJmMDMwZjMyZGQyOGI5NjQ0ZmQ4ZjlkOTUzMzUuLjBhYmU3ZDcwMTM3MjllYzhjYmI3YTkw
ZTMxNWJjNTgwZjE5YzU3NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wYXJhbWV0
cml6ZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3BhcmFtZXRyaXplLnJzdApAQCAtMjks
MzMgKzI5LDM2IEBAIHB5dGVzdCBlbmFibGVzIHRlc3QgcGFyYW1ldHJpemF0aW9uIGF0IHNldmVy
YWwgbGV2ZWxzOgogCiAuLiByZWdlbmRvYzogd2lwZQogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAyLjIK
LS4uIHZlcnNpb25jaGFuZ2VkOjogMi40CisKKwogICAgIFNldmVyYWwgaW1wcm92ZW1lbnRzLgog
CiBUaGUgYnVpbHRpbiA6cmVmOmBweXRlc3QubWFyay5wYXJhbWV0cml6ZSByZWZgIGRlY29yYXRv
ciBlbmFibGVzCiBwYXJhbWV0cml6YXRpb24gb2YgYXJndW1lbnRzIGZvciBhIHRlc3QgZnVuY3Rp
b24uICBIZXJlIGlzIGEgdHlwaWNhbCBleGFtcGxlCiBvZiBhIHRlc3QgZnVuY3Rpb24gdGhhdCBp
bXBsZW1lbnRzIGNoZWNraW5nIHRoYXQgYSBjZXJ0YWluIGlucHV0IGxlYWRzCi10byBhbiBleHBl
Y3RlZCBvdXRwdXQ6OgordG8gYW4gZXhwZWN0ZWQgb3V0cHV0OgorCisuLiBjb2RlLWJsb2NrOjog
cHl0aG9uCiAKICAgICAjIGNvbnRlbnQgb2YgdGVzdF9leHBlY3RhdGlvbi5weQogICAgIGltcG9y
dCBweXRlc3QKLSAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRlc3RfaW5wdXQsZXhwZWN0
ZWQiLCBbCi0gICAgICAgICgiMys1IiwgOCksCi0gICAgICAgICgiMis0IiwgNiksCi0gICAgICAg
ICgiNio5IiwgNDIpLAotICAgIF0pCisKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
dGVzdF9pbnB1dCxleHBlY3RlZCIsIFsoIjMrNSIsIDgpLCAoIjIrNCIsIDYpLCAoIjYqOSIsIDQy
KV0pCiAgICAgZGVmIHRlc3RfZXZhbCh0ZXN0X2lucHV0LCBleHBlY3RlZCk6CiAgICAgICAgIGFz
c2VydCBldmFsKHRlc3RfaW5wdXQpID09IGV4cGVjdGVkCiAKIEhlcmUsIHRoZSBgYEBwYXJhbWV0
cml6ZWBgIGRlY29yYXRvciBkZWZpbmVzIHRocmVlIGRpZmZlcmVudCBgYCh0ZXN0X2lucHV0LGV4
cGVjdGVkKWBgCiB0dXBsZXMgc28gdGhhdCB0aGUgYGB0ZXN0X2V2YWxgYCBmdW5jdGlvbiB3aWxs
IHJ1biB0aHJlZSB0aW1lcyB1c2luZwotdGhlbSBpbiB0dXJuOjoKK3RoZW0gaW4gdHVybjoKKwor
Li4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QKICAgICA9PT09PT09PT09PT09
PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54Lnks
IHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBp
bmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55
LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5w
eXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVk
IDMgaXRlbXMKIAogICAgIHRlc3RfZXhwZWN0YXRpb24ucHkgLi5GICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtNjUsMTkgKzY4LDMwIEBAIHRo
ZW0gaW4gdHVybjo6CiAKICAgICB0ZXN0X2lucHV0ID0gJzYqOScsIGV4cGVjdGVkID0gNDIKIAot
ICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRlc3RfaW5wdXQsZXhwZWN0ZWQiLCBb
Ci0gICAgICAgICAgICAoIjMrNSIsIDgpLAotICAgICAgICAgICAgKCIyKzQiLCA2KSwKLSAgICAg
ICAgICAgICgiNio5IiwgNDIpLAotICAgICAgICBdKQorICAgICAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoInRlc3RfaW5wdXQsZXhwZWN0ZWQiLCBbKCIzKzUiLCA4KSwgKCIyKzQiLCA2KSwg
KCI2KjkiLCA0MildKQogICAgICAgICBkZWYgdGVzdF9ldmFsKHRlc3RfaW5wdXQsIGV4cGVjdGVk
KToKICAgICA+ICAgICAgIGFzc2VydCBldmFsKHRlc3RfaW5wdXQpID09IGV4cGVjdGVkCiAgICAg
RSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0IDU0ID09IDQyCiAgICAgRSAgICAgICAgKyAg
d2hlcmUgNTQgPSBldmFsKCc2KjknKQogCi0gICAgdGVzdF9leHBlY3RhdGlvbi5weTo4OiBBc3Nl
cnRpb25FcnJvcgorICAgIHRlc3RfZXhwZWN0YXRpb24ucHk6NjogQXNzZXJ0aW9uRXJyb3IKICAg
ICA9PT09PT09PT09PT09PT09PT09PSAxIGZhaWxlZCwgMiBwYXNzZWQgaW4gMC4xMiBzZWNvbmRz
ID09PT09PT09PT09PT09PT09PT09CiAKKy4uIG5vdGU6OgorCisgICAgcHl0ZXN0IGJ5IGRlZmF1
bHQgZXNjYXBlcyBhbnkgbm9uLWFzY2lpIGNoYXJhY3RlcnMgdXNlZCBpbiB1bmljb2RlIHN0cmlu
Z3MKKyAgICBmb3IgdGhlIHBhcmFtZXRyaXphdGlvbiBiZWNhdXNlIGl0IGhhcyBzZXZlcmFsIGRv
d25zaWRlcy4KKyAgICBJZiBob3dldmVyIHlvdSB3b3VsZCBsaWtlIHRvIHVzZSB1bmljb2RlIHN0
cmluZ3MgaW4gcGFyYW1ldHJpemF0aW9uIGFuZCBzZWUgdGhlbSBpbiB0aGUgdGVybWluYWwgYXMg
aXMgKG5vbi1lc2NhcGVkKSwgdXNlIHRoaXMgb3B0aW9uIGluIHlvdXIgYGBweXRlc3QuaW5pYGA6
CisKKyAgICAuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAg
ZGlzYWJsZV90ZXN0X2lkX2VzY2FwaW5nX2FuZF9mb3JmZWl0X2FsbF9yaWdodHNfdG9fY29tbXVu
aXR5X3N1cHBvcnQgPSBUcnVlCisKKyAgICBLZWVwIGluIG1pbmQgaG93ZXZlciB0aGF0IHRoaXMg
bWlnaHQgY2F1c2UgdW53YW50ZWQgc2lkZSBlZmZlY3RzIGFuZAorICAgIGV2ZW4gYnVncyBkZXBl
bmRpbmcgb24gdGhlIE9TIHVzZWQgYW5kIHBsdWdpbnMgY3VycmVudGx5IGluc3RhbGxlZCwgc28g
dXNlIGl0IGF0IHlvdXIgb3duIHJpc2suCisKKwogQXMgZGVzaWduZWQgaW4gdGhpcyBleGFtcGxl
LCBvbmx5IG9uZSBwYWlyIG9mIGlucHV0L291dHB1dCB2YWx1ZXMgZmFpbHMKIHRoZSBzaW1wbGUg
dGVzdCBmdW5jdGlvbi4gIEFuZCBhcyB1c3VhbCB3aXRoIHRlc3QgZnVuY3Rpb24gYXJndW1lbnRz
LAogeW91IGNhbiBzZWUgdGhlIGBgaW5wdXRgYCBhbmQgYGBvdXRwdXRgYCB2YWx1ZXMgaW4gdGhl
IHRyYWNlYmFjay4KQEAgLTg2LDI1ICsxMDAsMzAgQEAgTm90ZSB0aGF0IHlvdSBjb3VsZCBhbHNv
IHVzZSB0aGUgcGFyYW1ldHJpemUgbWFya2VyIG9uIGEgY2xhc3Mgb3IgYSBtb2R1bGUKIChzZWUg
OnJlZjpgbWFya2ApIHdoaWNoIHdvdWxkIGludm9rZSBzZXZlcmFsIGZ1bmN0aW9ucyB3aXRoIHRo
ZSBhcmd1bWVudCBzZXRzLgogCiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIG1hcmsgaW5kaXZpZHVh
bCB0ZXN0IGluc3RhbmNlcyB3aXRoaW4gcGFyYW1ldHJpemUsCi1mb3IgZXhhbXBsZSB3aXRoIHRo
ZSBidWlsdGluIGBgbWFyay54ZmFpbGBgOjoKK2ZvciBleGFtcGxlIHdpdGggdGhlIGJ1aWx0aW4g
YGBtYXJrLnhmYWlsYGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVu
dCBvZiB0ZXN0X2V4cGVjdGF0aW9uLnB5CiAgICAgaW1wb3J0IHB5dGVzdAotICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgidGVzdF9pbnB1dCxleHBlY3RlZCIsIFsKLSAgICAgICAgKCIzKzUi
LCA4KSwKLSAgICAgICAgKCIyKzQiLCA2KSwKLSAgICAgICAgcHl0ZXN0LnBhcmFtKCI2KjkiLCA0
MiwKLSAgICAgICAgICAgICAgICAgICAgIG1hcmtzPXB5dGVzdC5tYXJrLnhmYWlsKSwKLSAgICBd
KQorCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJ0ZXN0X2lucHV0
LGV4cGVjdGVkIiwKKyAgICAgICAgWygiMys1IiwgOCksICgiMis0IiwgNiksIHB5dGVzdC5wYXJh
bSgiNio5IiwgNDIsIG1hcmtzPXB5dGVzdC5tYXJrLnhmYWlsKV0sCisgICAgKQogICAgIGRlZiB0
ZXN0X2V2YWwodGVzdF9pbnB1dCwgZXhwZWN0ZWQpOgogICAgICAgICBhc3NlcnQgZXZhbCh0ZXN0
X2lucHV0KSA9PSBleHBlY3RlZAogCi1MZXQncyBydW4gdGhpczo6CitMZXQncyBydW4gdGhpczoK
KworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QKICAgICA9PT09PT09PT09
PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54
LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElS
LCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQu
eC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklY
Ly5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVj
dGVkIDMgaXRlbXMKIAogICAgIHRlc3RfZXhwZWN0YXRpb24ucHkgLi54ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtMTE0LDEwICsxMzMsMTgg
QEAgTGV0J3MgcnVuIHRoaXM6OgogVGhlIG9uZSBwYXJhbWV0ZXIgc2V0IHdoaWNoIGNhdXNlZCBh
IGZhaWx1cmUgcHJldmlvdXNseSBub3cKIHNob3dzIHVwIGFzIGFuICJ4ZmFpbGVkIChleHBlY3Rl
ZCB0byBmYWlsKSIgdGVzdC4KIAorSW4gY2FzZSB0aGUgdmFsdWVzIHByb3ZpZGVkIHRvIGBgcGFy
YW1ldHJpemVgYCByZXN1bHQgaW4gYW4gZW1wdHkgbGlzdCAtIGZvcgorZXhhbXBsZSwgaWYgdGhl
eSdyZSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgYnkgc29tZSBmdW5jdGlvbiAtIHRoZSBiZWhhdmlv
dXIgb2YKK3B5dGVzdCBpcyBkZWZpbmVkIGJ5IHRoZSA6Y29uZnZhbDpgZW1wdHlfcGFyYW1ldGVy
X3NldF9tYXJrYCBvcHRpb24uCisKIFRvIGdldCBhbGwgY29tYmluYXRpb25zIG9mIG11bHRpcGxl
IHBhcmFtZXRyaXplZCBhcmd1bWVudHMgeW91IGNhbiBzdGFjawotYGBwYXJhbWV0cml6ZWBgIGRl
Y29yYXRvcnM6OgorYGBwYXJhbWV0cml6ZWBgIGRlY29yYXRvcnM6CisKKy4uIGNvZGUtYmxvY2s6
OiBweXRob24KIAogICAgIGltcG9ydCBweXRlc3QKKworCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJ4IiwgWzAsIDFdKQogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgieSIsIFsy
LCAzXSkKICAgICBkZWYgdGVzdF9mb28oeCwgeSk6CkBAIC0xNDEsMzQgKzE2OCw0OCBAQCBwYXJh
bWV0cml6YXRpb24uCiAKIEZvciBleGFtcGxlLCBsZXQncyBzYXkgd2Ugd2FudCB0byBydW4gYSB0
ZXN0IHRha2luZyBzdHJpbmcgaW5wdXRzIHdoaWNoCiB3ZSB3YW50IHRvIHNldCB2aWEgYSBuZXcg
YGBweXRlc3RgYCBjb21tYW5kIGxpbmUgb3B0aW9uLiAgTGV0J3MgZmlyc3Qgd3JpdGUKLWEgc2lt
cGxlIHRlc3QgYWNjZXB0aW5nIGEgYGBzdHJpbmdpbnB1dGBgIGZpeHR1cmUgZnVuY3Rpb24gYXJn
dW1lbnQ6OgorYSBzaW1wbGUgdGVzdCBhY2NlcHRpbmcgYSBgYHN0cmluZ2lucHV0YGAgZml4dHVy
ZSBmdW5jdGlvbiBhcmd1bWVudDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyBj
b250ZW50IG9mIHRlc3Rfc3RyaW5ncy5weQogCisKICAgICBkZWYgdGVzdF92YWxpZF9zdHJpbmco
c3RyaW5naW5wdXQpOgogICAgICAgICBhc3NlcnQgc3RyaW5naW5wdXQuaXNhbHBoYSgpCiAKIE5v
dyB3ZSBhZGQgYSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSBjb250YWluaW5nIHRoZSBhZGRpdGlvbiBv
ZiBhCi1jb21tYW5kIGxpbmUgb3B0aW9uIGFuZCB0aGUgcGFyYW1ldHJpemF0aW9uIG9mIG91ciB0
ZXN0IGZ1bmN0aW9uOjoKK2NvbW1hbmQgbGluZSBvcHRpb24gYW5kIHRoZSBwYXJhbWV0cml6YXRp
b24gb2Ygb3VyIHRlc3QgZnVuY3Rpb246CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAg
ICMgY29udGVudCBvZiBjb25mdGVzdC5weQogCisKICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihw
YXJzZXIpOgotICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXN0cmluZ2lucHV0IiwgYWN0aW9u
PSJhcHBlbmQiLCBkZWZhdWx0PVtdLAotICAgICAgICAgICAgaGVscD0ibGlzdCBvZiBzdHJpbmdp
bnB1dHMgdG8gcGFzcyB0byB0ZXN0IGZ1bmN0aW9ucyIpCisgICAgICAgIHBhcnNlci5hZGRvcHRp
b24oCisgICAgICAgICAgICAiLS1zdHJpbmdpbnB1dCIsCisgICAgICAgICAgICBhY3Rpb249ImFw
cGVuZCIsCisgICAgICAgICAgICBkZWZhdWx0PVtdLAorICAgICAgICAgICAgaGVscD0ibGlzdCBv
ZiBzdHJpbmdpbnB1dHMgdG8gcGFzcyB0byB0ZXN0IGZ1bmN0aW9ucyIsCisgICAgICAgICkKKwog
CiAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAgICAgIGlmICdz
dHJpbmdpbnB1dCcgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzOgotICAgICAgICAgICAgbWV0YWZ1
bmMucGFyYW1ldHJpemUoInN0cmluZ2lucHV0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1ldGFmdW5jLmNvbmZpZy5nZXRvcHRpb24oJ3N0cmluZ2lucHV0JykpCisgICAgICAg
IGlmICJzdHJpbmdpbnB1dCIgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzOgorICAgICAgICAgICAg
bWV0YWZ1bmMucGFyYW1ldHJpemUoInN0cmluZ2lucHV0IiwgbWV0YWZ1bmMuY29uZmlnLmdldG9w
dGlvbigic3RyaW5naW5wdXQiKSkKIAotSWYgd2Ugbm93IHBhc3MgdHdvIHN0cmluZ2lucHV0IHZh
bHVlcywgb3VyIHRlc3Qgd2lsbCBydW4gdHdpY2U6OgorSWYgd2Ugbm93IHBhc3MgdHdvIHN0cmlu
Z2lucHV0IHZhbHVlcywgb3VyIHRlc3Qgd2lsbCBydW4gdHdpY2U6CisKKy4uIGNvZGUtYmxvY2s6
OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xIC0tc3RyaW5naW5wdXQ9ImhlbGxvIiAtLXN0cmlu
Z2lucHV0PSJ3b3JsZCIgdGVzdF9zdHJpbmdzLnB5CiAgICAgLi4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCiAg
ICAgMiBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzCiAKLUxldCdzIGFsc28gcnVuIHdpdGggYSBzdHJp
bmdpbnB1dCB0aGF0IHdpbGwgbGVhZCB0byBhIGZhaWxpbmcgdGVzdDo6CitMZXQncyBhbHNvIHJ1
biB3aXRoIGEgc3RyaW5naW5wdXQgdGhhdCB3aWxsIGxlYWQgdG8gYSBmYWlsaW5nIHRlc3Q6CisK
Ky4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xIC0tc3RyaW5naW5wdXQ9
IiEiIHRlc3Rfc3RyaW5ncy5weQogICAgIEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtMTgzLDE5ICsy
MjQsMjEgQEAgTGV0J3MgYWxzbyBydW4gd2l0aCBhIHN0cmluZ2lucHV0IHRoYXQgd2lsbCBsZWFk
IHRvIGEgZmFpbGluZyB0ZXN0OjoKICAgICBFICAgICAgICArICB3aGVyZSBGYWxzZSA9IDxidWls
dC1pbiBtZXRob2QgaXNhbHBoYSBvZiBzdHIgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+KCkKICAgICBF
ICAgICAgICArICAgIHdoZXJlIDxidWlsdC1pbiBtZXRob2QgaXNhbHBoYSBvZiBzdHIgb2JqZWN0
IGF0IDB4ZGVhZGJlZWY+ID0gJyEnLmlzYWxwaGEKIAotICAgIHRlc3Rfc3RyaW5ncy5weTozOiBB
c3NlcnRpb25FcnJvcgorICAgIHRlc3Rfc3RyaW5ncy5weTo0OiBBc3NlcnRpb25FcnJvcgogICAg
IDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcwogCiBBcyBleHBlY3RlZCBvdXIgdGVzdCBmdW5jdGlv
biBmYWlscy4KIAogSWYgeW91IGRvbid0IHNwZWNpZnkgYSBzdHJpbmdpbnB1dCBpdCB3aWxsIGJl
IHNraXBwZWQgYmVjYXVzZQogYGBtZXRhZnVuYy5wYXJhbWV0cml6ZSgpYGAgd2lsbCBiZSBjYWxs
ZWQgd2l0aCBhbiBlbXB0eSBwYXJhbWV0ZXIKLWxpc3Q6OgorbGlzdDoKKworLi4gY29kZS1ibG9j
azo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXEgLXJzIHRlc3Rfc3RyaW5ncy5weQogICAgIHMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsxMDAlXQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gc2hvcnQgdGVz
dCBzdW1tYXJ5IGluZm8gPT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBTS0lQIFsxXSB0
ZXN0X3N0cmluZ3MucHk6IGdvdCBlbXB0eSBwYXJhbWV0ZXIgc2V0IFsnc3RyaW5naW5wdXQnXSwg
ZnVuY3Rpb24gdGVzdF92YWxpZF9zdHJpbmcgYXQgJFJFR0VORE9DX1RNUERJUi90ZXN0X3N0cmlu
Z3MucHk6MQorICAgIFNLSVBQRUQgWzFdIHRlc3Rfc3RyaW5ncy5weTogZ290IGVtcHR5IHBhcmFt
ZXRlciBzZXQgWydzdHJpbmdpbnB1dCddLCBmdW5jdGlvbiB0ZXN0X3ZhbGlkX3N0cmluZyBhdCAk
UkVHRU5ET0NfVE1QRElSL3Rlc3Rfc3RyaW5ncy5weToyCiAgICAgMSBza2lwcGVkIGluIDAuMTIg
c2Vjb25kcwogCiBOb3RlIHRoYXQgd2hlbiBjYWxsaW5nIGBgbWV0YWZ1bmMucGFyYW1ldHJpemVg
YCBtdWx0aXBsZSB0aW1lcyB3aXRoIGRpZmZlcmVudCBwYXJhbWV0ZXIgc2V0cywgYWxsIHBhcmFt
ZXRlciBuYW1lcyBhY3Jvc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wbHVnaW5z
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wbHVnaW5zLnJzdAppbmRleCA5ZGRiYTVkMzhjYTY5
Y2EwNzY1MWQwZjMyNjVhZGU4MGNlMGVjOGZlLi5lODA5NjkxOTNhYmQ0ZjM0ZTdiNjI1YjQ5ZmVl
MTI0OTNkMTZkOGU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcGx1Z2lucy5yc3QK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3BsdWdpbnMucnN0CkBAIC0yNyw3ICsyNyw3IEBAIEhl
cmUgaXMgYSBsaXR0bGUgYW5ub3RhdGVkIGxpc3QgZm9yIHNvbWUgcG9wdWxhciBwbHVnaW5zOgog
ICBmb3IgYHR3aXN0ZWQgPGh0dHA6Ly90d2lzdGVkbWF0cml4LmNvbT5gXyBhcHBzLCBzdGFydGlu
ZyBhIHJlYWN0b3IgYW5kCiAgIHByb2Nlc3NpbmcgZGVmZXJyZWRzIGZyb20gdGVzdCBmdW5jdGlv
bnMuCiAKLSogYHB5dGVzdC1jb3YgPGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9weXRlc3QtY292
Lz5gXzoKKyogYHB5dGVzdC1jb3YgPGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9weXRlc3QtY292
Lz5gX186CiAgIGNvdmVyYWdlIHJlcG9ydGluZywgY29tcGF0aWJsZSB3aXRoIGRpc3RyaWJ1dGVk
IHRlc3RpbmcKIAogKiBgcHl0ZXN0LXhkaXN0IDxodHRwczovL3B5cGkub3JnL3Byb2plY3QvcHl0
ZXN0LXhkaXN0Lz5gXzoKQEAgLTU5LDkgKzU5LDkgQEAgVG8gc2VlIGEgY29tcGxldGUgbGlzdCBv
ZiBhbGwgcGx1Z2lucyB3aXRoIHRoZWlyIGxhdGVzdCB0ZXN0aW5nCiBzdGF0dXMgYWdhaW5zdCBk
aWZmZXJlbnQgcHl0ZXN0IGFuZCBQeXRob24gdmVyc2lvbnMsIHBsZWFzZSB2aXNpdAogYHBsdWdp
bmNvbXBhdCA8aHR0cDovL3BsdWdpbmNvbXBhdC5oZXJva3VhcHAuY29tLz5gXy4KIAotWW91IG1h
eSBhbHNvIGRpc2NvdmVyIG1vcmUgcGx1Z2lucyB0aHJvdWdoIGEgYHB5dGVzdC0gcHlwaS5weXRo
b24ub3JnIHNlYXJjaGBfLgorWW91IG1heSBhbHNvIGRpc2NvdmVyIG1vcmUgcGx1Z2lucyB0aHJv
dWdoIGEgYHB5dGVzdC0gcHlwaS5vcmcgc2VhcmNoYF8uCiAKLS4uIF9gcHl0ZXN0LSBweXBpLnB5
dGhvbi5vcmcgc2VhcmNoYDogaHR0cHM6Ly9weXBpLm9yZy9zZWFyY2gvP3E9cHl0ZXN0LQorLi4g
X2BweXRlc3QtIHB5cGkub3JnIHNlYXJjaGA6IGh0dHBzOi8vcHlwaS5vcmcvc2VhcmNoLz9xPXB5
dGVzdC0KIAogCiAuLiBfYGF2YWlsYWJsZSBpbnN0YWxsYWJsZSBwbHVnaW5zYDoKQEAgLTY5LDIz
ICs2OSwyNiBAQCBZb3UgbWF5IGFsc28gZGlzY292ZXIgbW9yZSBwbHVnaW5zIHRocm91Z2ggYSBg
cHl0ZXN0LSBweXBpLnB5dGhvbi5vcmcgc2VhcmNoYF8uCiBSZXF1aXJpbmcvTG9hZGluZyBwbHVn
aW5zIGluIGEgdGVzdCBtb2R1bGUgb3IgY29uZnRlc3QgZmlsZQogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotWW91IGNhbiByZXF1
aXJlIHBsdWdpbnMgaW4gYSB0ZXN0IG1vZHVsZSBvciBhIGNvbmZ0ZXN0IGZpbGUgbGlrZSB0aGlz
OjoKK1lvdSBjYW4gcmVxdWlyZSBwbHVnaW5zIGluIGEgdGVzdCBtb2R1bGUgb3IgYSBjb25mdGVz
dCBmaWxlIGxpa2UgdGhpczoKIAotICAgIHB5dGVzdF9wbHVnaW5zID0gIm15YXBwLnRlc3RzdXBw
b3J0Lm15cGx1Z2luIiwKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIHB5dGVzdF9wbHVn
aW5zID0gKCJteWFwcC50ZXN0c3VwcG9ydC5teXBsdWdpbiIsKQogCiBXaGVuIHRoZSB0ZXN0IG1v
ZHVsZSBvciBjb25mdGVzdCBwbHVnaW4gaXMgbG9hZGVkIHRoZSBzcGVjaWZpZWQgcGx1Z2lucwog
d2lsbCBiZSBsb2FkZWQgYXMgd2VsbC4KIAotICAgIHB5dGVzdF9wbHVnaW5zID0gIm15YXBwLnRl
c3RzdXBwb3J0Lm15cGx1Z2luIgotCi13aGljaCB3aWxsIGltcG9ydCB0aGUgc3BlY2lmaWVkIG1v
ZHVsZSBhcyBhIGBgcHl0ZXN0YGAgcGx1Z2luLgotCiAuLiBub3RlOjoKICAgICBSZXF1aXJpbmcg
cGx1Z2lucyB1c2luZyBhIGBgcHl0ZXN0X3BsdWdpbnNgYCB2YXJpYWJsZSBpbiBub24tcm9vdAog
ICAgIGBgY29uZnRlc3QucHlgYCBmaWxlcyBpcyBkZXByZWNhdGVkLiBTZWUKICAgICA6cmVmOmBm
dWxsIGV4cGxhbmF0aW9uIDxyZXF1aXJpbmcgcGx1Z2lucyBpbiBub24tcm9vdCBjb25mdGVzdHM+
YAogICAgIGluIHRoZSBXcml0aW5nIHBsdWdpbnMgc2VjdGlvbi4KIAorLi4gbm90ZTo6CisgICBU
aGUgbmFtZSBgYHB5dGVzdF9wbHVnaW5zYGAgaXMgcmVzZXJ2ZWQgYW5kIHNob3VsZCBub3QgYmUg
dXNlZCBhcyBhCisgICBuYW1lIGZvciBhIGN1c3RvbSBwbHVnaW4gbW9kdWxlLgorCisKIC4uIF9g
ZmluZHBsdWdpbm5hbWVgOgogCiBGaW5kaW5nIG91dCB3aGljaCBwbHVnaW5zIGFyZSBhY3RpdmUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9wb3NhbHMvcGFyYW1ldHJpemVfd2l0
aF9maXh0dXJlcy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHJvcG9zYWxzL3BhcmFtZXRyaXpl
X3dpdGhfZml4dHVyZXMucnN0CmluZGV4IDkyZTc5OTNmMzkwNmFlMDZmM2NkMjNlNTA5NGVmZDUz
ZGIxMjU1YzguLmI3Mjk1ZjI3YWIyMThiZTQ0YmU1YTU3MDU3OTFkYmYxNTc5ZmQ3YzQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9wb3NhbHMvcGFyYW1ldHJpemVfd2l0aF9maXh0
dXJlcy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Byb3Bvc2Fscy9wYXJhbWV0cml6ZV93
aXRoX2ZpeHR1cmVzLnJzdApAQCAtNzUsNyArNzUsNyBAQCBJc3N1ZXMKIC0tLS0tLQogCiAqIEJ5
IHVzaW5nIGBgcmVxdWVzdC5nZXRmdW5jYXJndmFsdWUoKWBgIHdlIHJlbHkgb24gYWN0dWFsIGZp
eHR1cmUgZnVuY3Rpb24KLSAgZXhlY3V0aW9uIHRvIGtub3cgd2hhdCBmaXh0dXJlcyBhcmUgaW52
b2x2ZWQsIGR1ZSB0byBpdCdzIGR5bmFtaWMgbmF0dXJlCisgIGV4ZWN1dGlvbiB0byBrbm93IHdo
YXQgZml4dHVyZXMgYXJlIGludm9sdmVkLCBkdWUgdG8gaXRzIGR5bmFtaWMgbmF0dXJlCiAqIE1v
cmUgaW1wb3J0YW50bHksIGBgcmVxdWVzdC5nZXRmdW5jYXJndmFsdWUoKWBgIGNhbm5vdCBiZSBj
b21iaW5lZCB3aXRoCiAgIHBhcmFtZXRyaXplZCBmaXh0dXJlcywgc3VjaCBhcyBgYGV4dHJhX2Nv
bnRleHRgYAogKiBUaGlzIGlzIHZlcnkgaW5jb252ZW5pZW50IGlmIHlvdSB3aXNoIHRvIGV4dGVu
ZCBhbiBleGlzdGluZyB0ZXN0IHN1aXRlIGJ5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vcHkyNy1weTM0LWRlcHJlY2F0aW9uLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9weTI3LXB5
MzQtZGVwcmVjYXRpb24ucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYTk3NTM5YzgyN2MzOWE1NTE4M2RiYWM3
ZWE3MTA5YTU4ZTJiN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHky
Ny1weTM0LWRlcHJlY2F0aW9uLnJzdApAQCAtMCwwICsxLDI2IEBACitQeXRob24gMi43IGFuZCAz
LjQgc3VwcG9ydCBwbGFuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1B5dGhv
biAyLjcgRU9MIGlzIGZhc3QgYXBwcm9hY2hpbmcsIHdpdGgKK3Vwc3RyZWFtIHN1cHBvcnQgYGVu
ZGluZyBpbiAyMDIwIDxodHRwczovL2xlZ2FjeS5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMzcz
LyNpZDQ+YF9fLgorUHl0aG9uIDMuNCdzIGxhc3QgcmVsZWFzZSBpcyBzY2hlZHVsZWQgZm9yCitg
TWFyY2ggMjAxOSA8aHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQyOS8jcmVs
ZWFzZS1zY2hlZHVsZT5gX18uIHB5dGVzdCBpcyBvbmUgb2YKK3RoZSBwYXJ0aWNpcGF0aW5nIHBy
b2plY3RzIG9mIHRoZSBodHRwczovL3B5dGhvbjNzdGF0ZW1lbnQub3JnLgorCitUaGUgKipweXRl
c3QgNC42Kiogc2VyaWVzIHdpbGwgYmUgdGhlIGxhc3QgdG8gc3VwcG9ydCBQeXRob24gMi43IGFu
ZCAzLjQsIGFuZCBpcyBzY2hlZHVsZWQKK3RvIGJlIHJlbGVhc2VkIGJ5ICoqbWlkLTIwMTkqKi4g
KipweXRlc3QgNS4wKiogYW5kIG9ud2FyZHMgd2lsbCBzdXBwb3J0IG9ubHkgUHl0aG9uIDMuNSsu
CisKK1RoYW5rcyB0byB0aGUgYHB5dGhvbl9yZXF1aXJlc2BfIGBgc2V0dXB0b29sc2BgIG9wdGlv
biwKK1B5dGhvbiAyLjcgYW5kIFB5dGhvbiAzLjQgdXNlcnMgdXNpbmcgYSBtb2Rlcm4gYGBwaXBg
YCB2ZXJzaW9uCit3aWxsIGluc3RhbGwgdGhlIGxhc3QgcHl0ZXN0IGBgNC42YGAgdmVyc2lvbiBh
dXRvbWF0aWNhbGx5IGV2ZW4gaWYgYGA1LjBgYCBvciBsYXRlcgorYXJlIGF2YWlsYWJsZSBvbiBQ
eVBJLgorCitXaGlsZSBweXRlc3QgYGA1LjBgYCB3aWxsIGJlIHRoZSBuZXcgbWFpbnN0cmVhbSBh
bmQgZGV2ZWxvcG1lbnQgdmVyc2lvbiwgdW50aWwgKipKYW51YXJ5IDIwMjAqKgordGhlIHB5dGVz
dCBjb3JlIHRlYW0gcGxhbnMgdG8gbWFrZSBidWctZml4IHJlbGVhc2VzIG9mIHRoZSBweXRlc3Qg
YGA0LjZgYCBzZXJpZXMgYnkKK2JhY2stcG9ydGluZyBwYXRjaGVzIHRvIHRoZSBgYDQuNi54YGAg
YnJhbmNoIHRoYXQgYWZmZWN0IFB5dGhvbiAyIHVzZXJzLgorCisqKkFmdGVyIDIwMjAqKiwgdGhl
IGNvcmUgdGVhbSB3aWxsIG5vIGxvbmdlciBhY3RpdmVseSBiYWNrcG9ydCBwYXRjaGVzLCBidXQg
dGhlIGBgNC42LnhgYAorYnJhbmNoIHdpbGwgY29udGludWUgdG8gZXhpc3Qgc28gdGhlIGNvbW11
bml0eSBpdHNlbGYgY2FuIGNvbnRyaWJ1dGUgcGF0Y2hlcy4gVGhlIGNvcmUgdGVhbSB3aWxsCiti
ZSBoYXBweSB0byBhY2NlcHQgdGhvc2UgcGF0Y2hlcyBhbmQgbWFrZSBuZXcgYGA0LjZgYCByZWxl
YXNlcyAqKnVudGlsIG1pZC0yMDIwKiouCisKKy4uIF9gcHl0aG9uX3JlcXVpcmVzYDogaHR0cHM6
Ly9wYWNrYWdpbmcucHl0aG9uLm9yZy9ndWlkZXMvZGlzdHJpYnV0aW5nLXBhY2thZ2VzLXVzaW5n
LXNldHVwdG9vbHMvI3B5dGhvbi1yZXF1aXJlcz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9yZWZlcmVuY2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3JlZmVyZW5jZS5yc3QKaW5k
ZXggZmU5ZTg3MDQyZjlhMWY1ZTc4ZDU1ZjY2YmIyMWE1ZmE4ZTY2YThlNi4uY2M1ZmU4ZDhiZjY1
ZWFkNzIwNDJkYWQyMTYxZjk5Y2NjN2Q3MzJhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3JlZmVyZW5jZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3JlZmVyZW5jZS5yc3QK
QEAgLTEsNCArMSwzIEBACi0KIFJlZmVyZW5jZQogPT09PT09PT09CiAKQEAgLTQ5LDcgKzQ4LDcg
QEAgcHl0ZXN0Lm1haW4KIC4uIGF1dG9mdW5jdGlvbjo6IF9weXRlc3QuY29uZmlnLm1haW4KIAog
cHl0ZXN0LnBhcmFtCi1+fn5+fn5+fn5+fn5+Cit+fn5+fn5+fn5+fn4KIAogLi4gYXV0b2Z1bmN0
aW9uOjogcHl0ZXN0LnBhcmFtKCp2YWx1ZXMsIFtpZF0sIFttYXJrc10pCiAKQEAgLTg0LDYgKzgz
LDEyIEBAIHB5dGVzdC53YXJucwogLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0Lndhcm5zKGV4cGVj
dGVkX3dhcm5pbmc6IEV4Y2VwdGlvbiwgW21hdGNoXSkKICAgICA6d2l0aDoKIAorcHl0ZXN0LmZy
ZWV6ZV9pbmNsdWRlcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyoqVHV0b3Jp
YWwqKjogOnJlZjpgZnJlZXppbmctcHl0ZXN0YC4KKworLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0
LmZyZWV6ZV9pbmNsdWRlcwogCiAuLiBfYG1hcmtzIHJlZmA6CiAKQEAgLTExMSw2ICsxMTYsNyBA
QCBBZGQgd2FybmluZyBmaWx0ZXJzIHRvIG1hcmtlZCB0ZXN0IGl0ZW1zLgogICAgICAgICBBICp3
YXJuaW5nIHNwZWNpZmljYXRpb24gc3RyaW5nKiwgd2hpY2ggaXMgY29tcG9zZWQgb2YgY29udGVu
dHMgb2YgdGhlIHR1cGxlIGBgKGFjdGlvbiwgbWVzc2FnZSwgY2F0ZWdvcnksIG1vZHVsZSwgbGlu
ZW5vKWBgCiAgICAgICAgIGFzIHNwZWNpZmllZCBpbiBgVGhlIFdhcm5pbmdzIGZpbHRlciA8aHR0
cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L3dhcm5pbmdzLmh0bWwjd2FybmluZy1maWx0
ZXI+YF8gc2VjdGlvbiBvZgogICAgICAgICB0aGUgUHl0aG9uIGRvY3VtZW50YXRpb24sIHNlcGFy
YXRlZCBieSBgYCI6ImBgLiBPcHRpb25hbCBmaWVsZHMgY2FuIGJlIG9taXR0ZWQuCisgICAgICAg
IE1vZHVsZSBuYW1lcyBwYXNzZWQgZm9yIGZpbHRlcmluZyBhcmUgbm90IHJlZ2V4LWVzY2FwZWQu
CiAKICAgICAgICAgRm9yIGV4YW1wbGU6CiAKQEAgLTE2MSw2ICsxNjcsMjUgQEAgU2tpcCBhIHRl
c3QgZnVuY3Rpb24gaWYgYSBjb25kaXRpb24gaXMgYGBUcnVlYGAuCiAgICAgOmtleXdvcmQgc3Ry
IHJlYXNvbjogUmVhc29uIHdoeSB0aGUgdGVzdCBmdW5jdGlvbiBpcyBiZWluZyBza2lwcGVkLgog
CiAKKy4uIF9gcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMgcmVmYDoKKworcHl0ZXN0Lm1hcmsudXNl
Zml4dHVyZXMKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyoqVHV0b3JpYWwqKjogOnJlZjpg
dXNlZml4dHVyZXNgLgorCitNYXJrIGEgdGVzdCBmdW5jdGlvbiBhcyB1c2luZyB0aGUgZ2l2ZW4g
Zml4dHVyZSBuYW1lcy4KKworLi4gd2FybmluZzo6CisKKyAgICBUaGlzIG1hcmsgaGFzIG5vIGVm
ZmVjdCB3aGVuIGFwcGxpZWQKKyAgICB0byBhICoqZml4dHVyZSoqIGZ1bmN0aW9uLgorCisuLiBw
eTpmdW5jdGlvbjo6IHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCpuYW1lcykKKworICAgIDpwYXJh
bSBhcmdzOiB0aGUgbmFtZXMgb2YgdGhlIGZpeHR1cmUgdG8gdXNlLCBhcyBzdHJpbmdzCisKKwog
Li4gX2BweXRlc3QubWFyay54ZmFpbCByZWZgOgogCiBweXRlc3QubWFyay54ZmFpbApAQCAtMTcz
LDE2ICsxOTgsMTggQEAgTWFya3MgYSB0ZXN0IGZ1bmN0aW9uIGFzICpleHBlY3RlZCB0byBmYWls
Ki4KIC4uIHB5OmZ1bmN0aW9uOjogcHl0ZXN0Lm1hcmsueGZhaWwoY29uZGl0aW9uPU5vbmUsICos
IHJlYXNvbj1Ob25lLCByYWlzZXM9Tm9uZSwgcnVuPVRydWUsIHN0cmljdD1GYWxzZSkKIAogICAg
IDp0eXBlIGNvbmRpdGlvbjogYm9vbCBvciBzdHIKLSAgICA6cGFyYW0gY29uZGl0aW9uOiBgYFRy
dWUvRmFsc2VgYCBpZiB0aGUgY29uZGl0aW9uIHNob3VsZCBiZSBtYXJrZWQgYXMgeGZhaWwgb3Ig
YSA6cmVmOmBjb25kaXRpb24gc3RyaW5nIDxzdHJpbmcgY29uZGl0aW9ucz5gLgorICAgIDpwYXJh
bSBjb25kaXRpb246CisgICAgICAgIENvbmRpdGlvbiBmb3IgbWFya2luZyB0aGUgdGVzdCBmdW5j
dGlvbiBhcyB4ZmFpbCAoYGBUcnVlL0ZhbHNlYGAgb3IgYQorICAgICAgICA6cmVmOmBjb25kaXRp
b24gc3RyaW5nIDxzdHJpbmcgY29uZGl0aW9ucz5gKS4KICAgICA6a2V5d29yZCBzdHIgcmVhc29u
OiBSZWFzb24gd2h5IHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIG1hcmtlZCBhcyB4ZmFpbC4KICAgICA6
a2V5d29yZCBFeGNlcHRpb24gcmFpc2VzOiBFeGNlcHRpb24gc3ViY2xhc3MgZXhwZWN0ZWQgdG8g
YmUgcmFpc2VkIGJ5IHRoZSB0ZXN0IGZ1bmN0aW9uOyBvdGhlciBleGNlcHRpb25zIHdpbGwgZmFp
bCB0aGUgdGVzdC4KICAgICA6a2V5d29yZCBib29sIHJ1bjoKICAgICAgICAgSWYgdGhlIHRlc3Qg
ZnVuY3Rpb24gc2hvdWxkIGFjdHVhbGx5IGJlIGV4ZWN1dGVkLiBJZiBgYEZhbHNlYGAsIHRoZSBm
dW5jdGlvbiB3aWxsIGFsd2F5cyB4ZmFpbCBhbmQgd2lsbAotICAgICAgICBub3QgYmUgZXhlY3V0
ZWQgKHVzZWZ1bCBhIGZ1bmN0aW9uIGlzIHNlZ2ZhdWx0aW5nKS4KKyAgICAgICAgbm90IGJlIGV4
ZWN1dGVkICh1c2VmdWwgaWYgYSBmdW5jdGlvbiBpcyBzZWdmYXVsdGluZykuCiAgICAgOmtleXdv
cmQgYm9vbCBzdHJpY3Q6CiAgICAgICAgICogSWYgYGBGYWxzZWBgICh0aGUgZGVmYXVsdCkgdGhl
IGZ1bmN0aW9uIHdpbGwgYmUgc2hvd24gaW4gdGhlIHRlcm1pbmFsIG91dHB1dCBhcyBgYHhmYWls
ZWRgYCBpZiBpdCBmYWlscwogICAgICAgICAgIGFuZCBhcyBgYHhwYXNzYGAgaWYgaXQgcGFzc2Vz
LiBJbiBib3RoIGNhc2VzIHRoaXMgd2lsbCBub3QgY2F1c2UgdGhlIHRlc3Qgc3VpdGUgdG8gZmFp
bCBhcyBhIHdob2xlLiBUaGlzCi0gICAgICAgICAgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCB0byBt
YXJrICpmbGFreSogdGVzdHMgKHRlc3RzIHRoYXQgcmFuZG9tIGF0IGZhaWwpIHRvIGJlIHRhY2ts
ZWQgbGF0ZXIuCisgICAgICAgICAgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCB0byBtYXJrICpmbGFr
eSogdGVzdHMgKHRlc3RzIHRoYXQgZmFpbCBhdCByYW5kb20pIHRvIGJlIHRhY2tsZWQgbGF0ZXIu
CiAgICAgICAgICogSWYgYGBUcnVlYGAsIHRoZSBmdW5jdGlvbiB3aWxsIGJlIHNob3duIGluIHRo
ZSB0ZXJtaW5hbCBvdXRwdXQgYXMgYGB4ZmFpbGVkYGAgaWYgaXQgZmFpbHMsIGJ1dCBpZiBpdAog
ICAgICAgICAgIHVuZXhwZWN0ZWRseSBwYXNzZXMgdGhlbiBpdCB3aWxsICoqZmFpbCoqIHRoZSB0
ZXN0IHN1aXRlLiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgdG8gbWFyayBmdW5jdGlvbnMK
ICAgICAgICAgICB0aGF0IGFyZSBhbHdheXMgZmFpbGluZyBhbmQgdGhlcmUgc2hvdWxkIGJlIGEg
Y2xlYXIgaW5kaWNhdGlvbiBpZiB0aGV5IHVuZXhwZWN0ZWRseSBzdGFydCB0byBwYXNzIChmb3Ig
ZXhhbXBsZQpAQCAtMzk3LDYgKzQyNCwxNCBAQCByZWNvcmRfcHJvcGVydHkKIAogLi4gYXV0b2Z1
bmN0aW9uOjogX3B5dGVzdC5qdW5pdHhtbC5yZWNvcmRfcHJvcGVydHkoKQogCisKK3JlY29yZF90
ZXN0c3VpdGVfcHJvcGVydHkKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworKipUdXRvcmlh
bCoqOiA6cmVmOmByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5IGV4YW1wbGVgLgorCisuLiBhdXRv
ZnVuY3Rpb246OiBfcHl0ZXN0Lmp1bml0eG1sLnJlY29yZF90ZXN0c3VpdGVfcHJvcGVydHkoKQor
CiBjYXBsb2cKIH5+fn5+fgogCkBAIC00NDEsNyArNDc2LDcgQEAgVG8gdXNlIGl0LCBpbmNsdWRl
IGluIHlvdXIgdG9wLW1vc3QgYGBjb25mdGVzdC5weWBgIGZpbGU6OgogCiAKIC4uIGF1dG9jbGFz
czo6IFRlc3RkaXIoKQotICAgIDptZW1iZXJzOiBydW5weXRlc3QscnVucHl0ZXN0X3N1YnByb2Nl
c3MscnVucHl0ZXN0X2lucHJvY2VzcyxtYWtlY29uZnRlc3QsbWFrZXB5ZmlsZQorICAgIDptZW1i
ZXJzOgogCiAuLiBhdXRvY2xhc3M6OiBSdW5SZXN1bHQoKQogICAgIDptZW1iZXJzOgpAQCAtNDcz
LDYgKzUwOCwzMiBAQCBFYWNoIHJlY29yZGVkIHdhcm5pbmcgaXMgYW4gaW5zdGFuY2Ugb2YgOmNs
YXNzOmB3YXJuaW5ncy5XYXJuaW5nTWVzc2FnZWAuCiAgICAgZGlmZmVyZW50bHk7IHNlZSA6cmVm
OmBlbnN1cmluZ19mdW5jdGlvbl90cmlnZ2Vyc2AuCiAKIAordG1wX3BhdGgKK35+fn5+fn5+CisK
KyoqVHV0b3JpYWwqKjogOmRvYzpgdG1wZGlyYAorCisuLiBjdXJyZW50bW9kdWxlOjogX3B5dGVz
dC50bXBkaXIKKworLi4gYXV0b2Z1bmN0aW9uOjogdG1wX3BhdGgoKQorICAgIDpuby1hdXRvLW9w
dGlvbnM6CisKKwordG1wX3BhdGhfZmFjdG9yeQorfn5+fn5+fn5+fn5+fn5+fgorCisqKlR1dG9y
aWFsKio6IDpyZWY6YHRtcF9wYXRoX2ZhY3RvcnkgZXhhbXBsZWAKKworLi4gX2B0bXBfcGF0aF9m
YWN0b3J5IGZhY3RvcnkgYXBpYDoKKworYGB0bXBfcGF0aF9mYWN0b3J5YGAgaW5zdGFuY2VzIGhh
dmUgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorCisuLiBjdXJyZW50bW9kdWxlOjogX3B5dGVzdC50
bXBkaXIKKworLi4gYXV0b21ldGhvZDo6IFRlbXBQYXRoRmFjdG9yeS5ta3RlbXAKKy4uIGF1dG9t
ZXRob2Q6OiBUZW1wUGF0aEZhY3RvcnkuZ2V0YmFzZXRlbXAKKworCiB0bXBkaXIKIH5+fn5+fgog
CkBAIC01MjAsNiArNTgxLDggQEAgQm9vdHN0cmFwcGluZyBob29rcyBjYWxsZWQgZm9yIHBsdWdp
bnMgcmVnaXN0ZXJlZCBlYXJseSBlbm91Z2ggKGludGVybmFsIGFuZCBzZXQKIC4uIGF1dG9mdW5j
dGlvbjo6IHB5dGVzdF9jbWRsaW5lX3BhcnNlCiAuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfY21k
bGluZV9tYWluCiAKKy4uIF9gaW5pdGlhbGl6YXRpb24taG9va3NgOgorCiBJbml0aWFsaXphdGlv
biBob29rcwogfn5+fn5+fn5+fn5+fn5+fn5+fn4KIApAQCAtNTMyLDYgKzU5NSw4IEBAIEluaXRp
YWxpemF0aW9uIGhvb2tzIGNhbGxlZCBmb3IgcGx1Z2lucyBhbmQgYGBjb25mdGVzdC5weWBgIGZp
bGVzLgogLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3Nlc3Npb25zdGFydAogLi4gYXV0b2Z1bmN0
aW9uOjogcHl0ZXN0X3Nlc3Npb25maW5pc2gKIAorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3Bs
dWdpbl9yZWdpc3RlcmVkCisKIFRlc3QgcnVubmluZyBob29rcwogfn5+fn5+fn5+fn5+fn5+fn5+
CiAKQEAgLTU1NSw2ICs2MjAsOCBAQCBpbnRvIGludGVyYWN0aXZlIGRlYnVnZ2luZyB3aGVuIGEg
dGVzdCBmYWlsdXJlIG9jY3Vycy4KIFRoZSA6cHk6bW9kOmBfcHl0ZXN0LnRlcm1pbmFsYCByZXBv
cnRlZCBzcGVjaWZpY2FsbHkgdXNlcwogdGhlIHJlcG9ydGluZyBob29rIHRvIHByaW50IGluZm9y
bWF0aW9uIGFib3V0IGEgdGVzdCBydW4uCiAKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9weWZ1
bmNfY2FsbAorCiBDb2xsZWN0aW9uIGhvb2tzCiB+fn5+fn5+fn5+fn5+fn5+CiAKQEAgLTU2NCw2
ICs2MzEsNyBAQCBDb2xsZWN0aW9uIGhvb2tzCiAuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfaWdu
b3JlX2NvbGxlY3QKIC4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9jb2xsZWN0X2RpcmVjdG9yeQog
Li4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2NvbGxlY3RfZmlsZQorLi4gYXV0b2Z1bmN0aW9uOjog
cHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlCiAKIEZvciBpbmZsdWVuY2luZyB0aGUgY29sbGVj
dGlvbiBvZiBvYmplY3RzIGluIFB5dGhvbiBtb2R1bGVzCiB5b3UgY2FuIHVzZSB0aGUgZm9sbG93
aW5nIGhvb2s6CkBAIC01NzcsMTIgKzY0NSwxNSBAQCBpdGVtcywgZGVsZXRlIG9yIG90aGVyd2lz
ZSBhbWVuZCB0aGUgdGVzdCBpdGVtczoKIAogLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2NvbGxl
Y3Rpb25fbW9kaWZ5aXRlbXMKIAorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2NvbGxlY3Rpb25f
ZmluaXNoCisKIFJlcG9ydGluZyBob29rcwogfn5+fn5+fn5+fn5+fn5+CiAKIFNlc3Npb24gcmVs
YXRlZCByZXBvcnRpbmcgaG9va3M6CiAKIC4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9jb2xsZWN0
c3RhcnQKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0CiAuLiBh
dXRvZnVuY3Rpb246OiBweXRlc3RfaXRlbWNvbGxlY3RlZAogLi4gYXV0b2Z1bmN0aW9uOjogcHl0
ZXN0X2NvbGxlY3RyZXBvcnQKIC4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9kZXNlbGVjdGVkCkBA
IC01OTIsNiArNjYzLDcgQEAgU2Vzc2lvbiByZWxhdGVkIHJlcG9ydGluZyBob29rczoKIC4uIGF1
dG9mdW5jdGlvbjo6IHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5CiAuLiBhdXRvZnVuY3Rpb246OiBw
eXRlc3RfZml4dHVyZV9zZXR1cAogLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2ZpeHR1cmVfcG9z
dF9maW5hbGl6ZXIKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF93YXJuaW5nX2NhcHR1cmVkCiAK
IEFuZCBoZXJlIGlzIHRoZSBjZW50cmFsIGhvb2sgZm9yIHJlcG9ydGluZyBhYm91dAogdGVzdCBl
eGVjdXRpb246CkBAIC02OTcsMTMgKzc2OSw2IEBAIE1hcmtHZW5lcmF0b3IKICAgICA6bWVtYmVy
czoKIAogCi1NYXJrSW5mbwotfn5+fn5+fn4KLQotLi4gYXV0b2NsYXNzOjogX3B5dGVzdC5tYXJr
Lk1hcmtJbmZvCi0gICAgOm1lbWJlcnM6Ci0KLQogTWFyawogfn5+fgogCkBAIC03NjgsNyArODMz
LDcgQEAgVGVzdFJlcG9ydAogX1Jlc3VsdAogfn5+fn5+fgogCi0uLiBhdXRvY2xhc3M6OiBwbHVn
Z3kuX1Jlc3VsdAorLi4gYXV0b2NsYXNzOjogcGx1Z2d5LmNhbGxlcnMuX1Jlc3VsdAogICAgIDpt
ZW1iZXJzOgogCiBTcGVjaWFsIFZhcmlhYmxlcwpAQCAtNzc3LDYgKzg0MiwzMyBAQCBTcGVjaWFs
IFZhcmlhYmxlcwogcHl0ZXN0IHRyZWF0cyBzb21lIGdsb2JhbCB2YXJpYWJsZXMgaW4gYSBzcGVj
aWFsIG1hbm5lciB3aGVuIGRlZmluZWQgaW4gYSB0ZXN0IG1vZHVsZS4KIAogCitjb2xsZWN0X2ln
bm9yZQorfn5+fn5+fn5+fn5+fn4KKworKipUdXRvcmlhbCoqOiA6cmVmOmBjdXN0b21pemluZy10
ZXN0LWNvbGxlY3Rpb25gCisKK0NhbiBiZSBkZWNsYXJlZCBpbiAqY29uZnRlc3QucHkgZmlsZXMq
IHRvIGV4Y2x1ZGUgdGVzdCBkaXJlY3RvcmllcyBvciBtb2R1bGVzLgorTmVlZHMgdG8gYmUgYGBs
aXN0W3N0cl1gYC4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgIGNvbGxlY3RfaWdub3Jl
ID0gWyJzZXR1cC5weSJdCisKKworY29sbGVjdF9pZ25vcmVfZ2xvYgorfn5+fn5+fn5+fn5+fn5+
fn5+fgorCisqKlR1dG9yaWFsKio6IDpyZWY6YGN1c3RvbWl6aW5nLXRlc3QtY29sbGVjdGlvbmAK
KworQ2FuIGJlIGRlY2xhcmVkIGluICpjb25mdGVzdC5weSBmaWxlcyogdG8gZXhjbHVkZSB0ZXN0
IGRpcmVjdG9yaWVzIG9yIG1vZHVsZXMKK3dpdGggVW5peCBzaGVsbC1zdHlsZSB3aWxkY2FyZHMu
IE5lZWRzIHRvIGJlIGBgbGlzdFtzdHJdYGAgd2hlcmUgYGBzdHJgYCBjYW4KK2NvbnRhaW4gZ2xv
YiBwYXR0ZXJucy4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgIGNvbGxlY3RfaWdub3Jl
X2dsb2IgPSBbIipfaWdub3JlLnB5Il0KKworCiBweXRlc3RfcGx1Z2lucwogfn5+fn5+fn5+fn5+
fn4KIApAQCAtODAwLDcgKzg5Miw3IEBAIHB5dGVzdF9tYXJrCiAqKlR1dG9yaWFsKio6IDpyZWY6
YHNjb3BlZC1tYXJraW5nYAogCiBDYW4gYmUgZGVjbGFyZWQgYXQgdGhlICoqZ2xvYmFsKiogbGV2
ZWwgaW4gKnRlc3QgbW9kdWxlcyogdG8gYXBwbHkgb25lIG9yIG1vcmUgOnJlZjpgbWFya3MgPG1h
cmtzIHJlZj5gIHRvIGFsbAotdGVzdCBmdW5jdGlvbnMgYW5kIG1ldGhvZHMuIENhbiBiZSBlaXRo
ZXIgYSBzaW5nbGUgbWFyayBvciBhIHNlcXVlbmNlIG9mIG1hcmtzLgordGVzdCBmdW5jdGlvbnMg
YW5kIG1ldGhvZHMuIENhbiBiZSBlaXRoZXIgYSBzaW5nbGUgbWFyayBvciBhIGxpc3Qgb2YgbWFy
a3MuCiAKIC4uIGNvZGUtYmxvY2s6OiBweXRob24KIApAQCAtODEzLDcgKzkwNSw3IEBAIHRlc3Qg
ZnVuY3Rpb25zIGFuZCBtZXRob2RzLiBDYW4gYmUgZWl0aGVyIGEgc2luZ2xlIG1hcmsgb3IgYSBz
ZXF1ZW5jZSBvZiBtYXJrcy4KIAogICAgIGltcG9ydCBweXRlc3QKIAotICAgIHB5dGVzdG1hcmsg
PSAocHl0ZXN0Lm1hcmsuaW50ZWdyYXRpb24sIHB5dGVzdC5tYXJrLnNsb3cpCisgICAgcHl0ZXN0
bWFyayA9IFtweXRlc3QubWFyay5pbnRlZ3JhdGlvbiwgcHl0ZXN0Lm1hcmsuc2xvd10KIAogUFlU
RVNUX0RPTlRfUkVXUklURSAobW9kdWxlIGRvY3N0cmluZykKIH5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+CkBAIC04NDcsNiArOTM5LDExIEBAIENvbnRhaW5zIGNvbW1hLXNl
cGFyYXRlZCBsaXN0IG9mIG1vZHVsZXMgdGhhdCBzaG91bGQgYmUgbG9hZGVkIGFzIHBsdWdpbnM6
CiAKICAgICBleHBvcnQgUFlURVNUX1BMVUdJTlM9bXltb2R1bGUucGx1Z2luLHhkaXN0CiAKK1BZ
VEVTVF9ESVNBQkxFX1BMVUdJTl9BVVRPTE9BRAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+CisKK1doZW4gc2V0LCBkaXNhYmxlcyBwbHVnaW4gYXV0by1sb2FkaW5nIHRocm91Z2ggc2V0
dXB0b29scyBlbnRyeXBvaW50cy4gT25seSBleHBsaWNpdGx5IHNwZWNpZmllZCBwbHVnaW5zIHdp
bGwgYmUKK2xvYWRlZC4KIAogUFlURVNUX0NVUlJFTlRfVEVTVAogfn5+fn5+fn5+fn5+fn5+fn5+
fgpAQCAtODY0LDYgKzk2MSwxMiBAQCBIZXJlIGlzIGEgbGlzdCBvZiBidWlsdGluIGNvbmZpZ3Vy
YXRpb24gb3B0aW9ucyB0aGF0IG1heSBiZSB3cml0dGVuIGluIGEgYGBweXRlcwogZmlsZSwgdXN1
YWxseSBsb2NhdGVkIGF0IHRoZSByb290IG9mIHlvdXIgcmVwb3NpdG9yeS4gQWxsIG9wdGlvbnMg
bXVzdCBiZSB1bmRlciBhIGBgW3B5dGVzdF1gYCBzZWN0aW9uCiAoYGBbdG9vbDpweXRlc3RdYGAg
Zm9yIGBgc2V0dXAuY2ZnYGAgZmlsZXMpLgogCisuLiB3YXJuaW5nOjoKKyAgICBVc2FnZSBvZiBg
YHNldHVwLmNmZ2BgIGlzIG5vdCByZWNvbW1lbmRlZCB1bmxlc3MgZm9yIHZlcnkgc2ltcGxlIHVz
ZSBjYXNlcy4gYGAuY2ZnYGAKKyAgICBmaWxlcyB1c2UgYSBkaWZmZXJlbnQgcGFyc2VyIHRoYW4g
YGBweXRlc3QuaW5pYGAgYW5kIGBgdG94LmluaWBgIHdoaWNoIG1pZ2h0IGNhdXNlIGhhcmQgdG8g
dHJhY2sKKyAgICBkb3duIHByb2JsZW1zLgorICAgIFdoZW4gcG9zc2libGUsIGl0IGlzIHJlY29t
bWVuZGVkIHRvIHVzZSB0aGUgbGF0dGVyIGZpbGVzIHRvIGhvbGQgeW91ciBweXRlc3QgY29uZmln
dXJhdGlvbi4KKwogQ29uZmlndXJhdGlvbiBmaWxlIG9wdGlvbnMgbWF5IGJlIG92ZXJ3cml0dGVu
IGluIHRoZSBjb21tYW5kLWxpbmUgYnkgdXNpbmcgYGAtby8tLW92ZXJyaWRlYGAsIHdoaWNoIGNh
biBhbHNvIGJlCiBwYXNzZWQgbXVsdGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMg
YGBuYW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoKIApAQCAtODkwLDcgKzk5Myw3IEBAIHBhc3Nl
ZCBtdWx0aXBsZSB0aW1lcy4gVGhlIGV4cGVjdGVkIGZvcm1hdCBpcyBgYG5hbWU9dmFsdWVgYC4g
Rm9yIGV4YW1wbGU6OgogCiAuLiBjb25mdmFsOjogY2FjaGVfZGlyCiAKLSAgIC4uIHZlcnNpb25h
ZGRlZDo6IDMuMgorCiAKICAgIFNldHMgYSBkaXJlY3Rvcnkgd2hlcmUgc3RvcmVzIGNvbnRlbnQg
b2YgY2FjaGUgcGx1Z2luLiBEZWZhdWx0IGRpcmVjdG9yeSBpcwogICAgYGAucHl0ZXN0X2NhY2hl
YGAgd2hpY2ggaXMgY3JlYXRlZCBpbiA6cmVmOmByb290ZGlyIDxyb290ZGlyPmAuIERpcmVjdG9y
eSBtYXkgYmUKQEAgLTkxMCwxMiArMTAxMywxMyBAQCBwYXNzZWQgbXVsdGlwbGUgdGltZXMuIFRo
ZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoKIAogLi4g
Y29uZnZhbDo6IGNvbnNvbGVfb3V0cHV0X3N0eWxlCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMu
MworCiAKICAgIFNldHMgdGhlIGNvbnNvbGUgb3V0cHV0IHN0eWxlIHdoaWxlIHJ1bm5pbmcgdGVz
dHM6CiAKICAgICogYGBjbGFzc2ljYGA6IGNsYXNzaWMgcHl0ZXN0IG91dHB1dC4KICAgICogYGBw
cm9ncmVzc2BgOiBsaWtlIGNsYXNzaWMgcHl0ZXN0IG91dHB1dCwgYnV0IHdpdGggYSBwcm9ncmVz
cyBpbmRpY2F0b3IuCisgICAqIGBgY291bnRgYDogbGlrZSBwcm9ncmVzcywgYnV0IHNob3dzIHBy
b2dyZXNzIGFzIHRoZSBudW1iZXIgb2YgdGVzdHMgY29tcGxldGVkIGluc3RlYWQgb2YgYSBwZXJj
ZW50LgogCiAgICBUaGUgZGVmYXVsdCBpcyBgYHByb2dyZXNzYGAsIGJ1dCB5b3UgY2FuIGZhbGxi
YWNrIHRvIGBgY2xhc3NpY2BgIGlmIHlvdSBwcmVmZXIgb3IKICAgIHRoZSBuZXcgbW9kZSBpcyBj
YXVzaW5nIHVuZXhwZWN0ZWQgcHJvYmxlbXM6CkBAIC05MjksNyArMTAzMyw3IEBAIHBhc3NlZCBt
dWx0aXBsZSB0aW1lcy4gVGhlIGV4cGVjdGVkIGZvcm1hdCBpcyBgYG5hbWU9dmFsdWVgYC4gRm9y
IGV4YW1wbGU6OgogCiAuLiBjb25mdmFsOjogZG9jdGVzdF9lbmNvZGluZwogCi0gICAuLiB2ZXJz
aW9uYWRkZWQ6OiAzLjEKKwogCiAgICBEZWZhdWx0IGVuY29kaW5nIHRvIHVzZSB0byBkZWNvZGUg
dGV4dCBmaWxlcyB3aXRoIGRvY3N0cmluZ3MuCiAgICA6ZG9jOmBTZWUgaG93IHB5dGVzdCBoYW5k
bGVzIGRvY3Rlc3RzIDxkb2N0ZXN0PmAuCkBAIC05NDMsMTIgKzEwNDcsMTMgQEAgcGFzc2VkIG11
bHRpcGxlIHRpbWVzLiBUaGUgZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12YWx1ZWBgLiBGb3Ig
ZXhhbXBsZTo6CiAKIC4uIGNvbmZ2YWw6OiBlbXB0eV9wYXJhbWV0ZXJfc2V0X21hcmsKIAotICAg
IC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCiAKICAgICBBbGxvd3MgdG8gcGljayB0aGUgYWN0aW9u
IGZvciBlbXB0eSBwYXJhbWV0ZXJzZXRzIGluIHBhcmFtZXRlcml6YXRpb24KIAogICAgICogYGBz
a2lwYGAgc2tpcHMgdGVzdHMgd2l0aCBhbiBlbXB0eSBwYXJhbWV0ZXJzZXQgKGRlZmF1bHQpCiAg
ICAgKiBgYHhmYWlsYGAgbWFya3MgdGVzdHMgd2l0aCBhbiBlbXB0eSBwYXJhbWV0ZXJzZXQgYXMg
eGZhaWwocnVuPUZhbHNlKQorICAgICogYGBmYWlsX2F0X2NvbGxlY3RgYCByYWlzZXMgYW4gZXhj
ZXB0aW9uIGlmIHBhcmFtZXRyaXplIGNvbGxlY3RzIGFuIGVtcHR5IHBhcmFtZXRlciBzZXQKIAog
ICAgIC4uIGNvZGUtYmxvY2s6OiBpbmkKIApAQCAtOTY1LDcgKzEwNzAsNyBAQCBwYXNzZWQgbXVs
dGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZvciBl
eGFtcGxlOjoKIAogLi4gY29uZnZhbDo6IGZpbHRlcndhcm5pbmdzCiAKLSAgIC4uIHZlcnNpb25h
ZGRlZDo6IDMuMQorCiAKICAgIFNldHMgYSBsaXN0IG9mIGZpbHRlcnMgYW5kIGFjdGlvbnMgdGhh
dCBzaG91bGQgYmUgdGFrZW4gZm9yIG1hdGNoZWQKICAgIHdhcm5pbmdzLiBCeSBkZWZhdWx0IGFs
bCB3YXJuaW5ncyBlbWl0dGVkIGR1cmluZyB0aGUgdGVzdCBzZXNzaW9uCkBAIC05ODMsOSArMTA4
OCw2NCBAQCBwYXNzZWQgbXVsdGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBu
YW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoKICAgIGludG8gZXJyb3JzLiBGb3IgbW9yZSBpbmZv
cm1hdGlvbiBwbGVhc2UgcmVmZXIgdG8gOnJlZjpgd2FybmluZ3NgLgogCiAKLS4uIGNvbmZ2YWw6
OiBqdW5pdF9zdWl0ZV9uYW1lCisuLiBjb25mdmFsOjoganVuaXRfZHVyYXRpb25fcmVwb3J0CisK
KyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiA0LjEKKworICAgIENvbmZpZ3VyZXMgaG93IGR1cmF0aW9u
cyBhcmUgcmVjb3JkZWQgaW50byB0aGUgSlVuaXQgWE1MIHJlcG9ydDoKKworICAgICogYGB0b3Rh
bGBgICh0aGUgZGVmYXVsdCk6IGR1cmF0aW9uIHRpbWVzIHJlcG9ydGVkIGluY2x1ZGUgc2V0dXAs
IGNhbGwsIGFuZCB0ZWFyZG93biB0aW1lcy4KKyAgICAqIGBgY2FsbGBgOiBkdXJhdGlvbiB0aW1l
cyByZXBvcnRlZCBpbmNsdWRlIG9ubHkgY2FsbCB0aW1lcywgZXhjbHVkaW5nIHNldHVwIGFuZCB0
ZWFyZG93bi4KKworICAgIC4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAgICBbcHl0ZXN0XQor
ICAgICAgICBqdW5pdF9kdXJhdGlvbl9yZXBvcnQgPSBjYWxsCisKKworLi4gY29uZnZhbDo6IGp1
bml0X2ZhbWlseQorCisgICAgLi4gdmVyc2lvbmFkZGVkOjogNC4yCisKKyAgICBDb25maWd1cmVz
IHRoZSBmb3JtYXQgb2YgdGhlIGdlbmVyYXRlZCBKVW5pdCBYTUwgZmlsZS4gVGhlIHBvc3NpYmxl
IG9wdGlvbnMgYXJlOgorCisgICAgKiBgYHh1bml0MWBgIChvciBgYGxlZ2FjeWBgKTogcHJvZHVj
ZXMgb2xkIHN0eWxlIG91dHB1dCwgY29tcGF0aWJsZSB3aXRoIHRoZSB4dW5pdCAxLjAgZm9ybWF0
LiAqKlRoaXMgaXMgdGhlIGRlZmF1bHQqKi4KKyAgICAqIGBgeHVuaXQyYGA6IHByb2R1Y2VzIGB4
dW5pdCAyLjAgc3R5bGUgb3V0cHV0IDxodHRwczovL2dpdGh1Yi5jb20vamVua2luc2NpL3h1bml0
LXBsdWdpbi9ibG9iL3h1bml0LTIuMy4yL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvamVua2luc2Np
L3BsdWdpbnMveHVuaXQvdHlwZXMvbW9kZWwveHNkL2p1bml0LTEwLnhzZD5gX18sCisgICAgICAg
IHdoaWNoIHNob3VsZCBiZSBtb3JlIGNvbXBhdGlibGUgd2l0aCBsYXRlc3QgSmVua2lucyB2ZXJz
aW9ucy4KKworICAgIC4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAgICBbcHl0ZXN0XQorICAg
ICAgICBqdW5pdF9mYW1pbHkgPSB4dW5pdDIKKworCisuLiBjb25mdmFsOjoganVuaXRfbG9nZ2lu
ZworCisgICAgLi4gdmVyc2lvbmFkZGVkOjogMy41CisKKyAgICBDb25maWd1cmVzIGlmIHN0ZG91
dC9zdGRlcnIgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gdGhlIEpVbml0IFhNTCBmaWxlLiBWYWxpZCB2
YWx1ZXMgYXJlCisgICAgYGBzeXN0ZW0tb3V0YGAsIGBgc3lzdGVtLWVycmBgLCBhbmQgYGBub2Bg
ICh0aGUgZGVmYXVsdCkuCisKKyAgICAuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICAgICAgW3B5
dGVzdF0KKyAgICAgICAganVuaXRfbG9nZ2luZyA9IHN5c3RlbS1vdXQKKwogCi0gICAgLi4gdmVy
c2lvbmFkZGVkOjogMy4xCisuLiBjb25mdmFsOjoganVuaXRfbG9nX3Bhc3NpbmdfdGVzdHMKKwor
ICAgIC4uIHZlcnNpb25hZGRlZDo6IDQuNgorCisgICAgSWYgYGBqdW5pdF9sb2dnaW5nICE9ICJu
byJgYCwgY29uZmlndXJlcyBpZiB0aGUgY2FwdHVyZWQgb3V0cHV0IHNob3VsZCBiZSB3cml0dGVu
CisgICAgdG8gdGhlIEpVbml0IFhNTCBmaWxlIGZvciAqKnBhc3NpbmcqKiB0ZXN0cy4gRGVmYXVs
dCBpcyBgYFRydWVgYC4KKworICAgIC4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAgICBbcHl0
ZXN0XQorICAgICAgICBqdW5pdF9sb2dfcGFzc2luZ190ZXN0cyA9IEZhbHNlCisKKworLi4gY29u
ZnZhbDo6IGp1bml0X3N1aXRlX25hbWUKIAogICAgIFRvIHNldCB0aGUgbmFtZSBvZiB0aGUgcm9v
dCB0ZXN0IHN1aXRlIHhtbCBpdGVtLCB5b3UgY2FuIGNvbmZpZ3VyZSB0aGUgYGBqdW5pdF9zdWl0
ZV9uYW1lYGAgb3B0aW9uIGluIHlvdXIgY29uZmlnIGZpbGU6CiAKQEAgLTk5Nyw3ICsxMTU3LDcg
QEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUgZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12
YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNvbmZ2YWw6OiBsb2dfY2xpX2RhdGVfZm9ybWF0
CiAKLSAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogCiAgICAgU2V0cyBhIDpweTpmdW5jOmB0
aW1lLnN0cmZ0aW1lYC1jb21wYXRpYmxlIHN0cmluZyB0aGF0IHdpbGwgYmUgdXNlZCB3aGVuIGZv
cm1hdHRpbmcgZGF0ZXMgZm9yIGxpdmUgbG9nZ2luZy4KIApAQCAtMTAxMCw3ICsxMTcwLDcgQEAg
cGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUgZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12YWx1
ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNvbmZ2YWw6OiBsb2dfY2xpX2Zvcm1hdAogCi0gICAg
Li4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogICAgIFNldHMgYSA6cHk6bW9kOmBsb2dnaW5nYC1j
b21wYXRpYmxlIHN0cmluZyB1c2VkIHRvIGZvcm1hdCBsaXZlIGxvZ2dpbmcgbWVzc2FnZXMuCiAK
QEAgLTEwMjQsNyArMTE4NCw3IEBAIHBhc3NlZCBtdWx0aXBsZSB0aW1lcy4gVGhlIGV4cGVjdGVk
IGZvcm1hdCBpcyBgYG5hbWU9dmFsdWVgYC4gRm9yIGV4YW1wbGU6OgogCiAuLiBjb25mdmFsOjog
bG9nX2NsaV9sZXZlbAogCi0gICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogICAgIFNldHMg
dGhlIG1pbmltdW0gbG9nIG1lc3NhZ2UgbGV2ZWwgdGhhdCBzaG91bGQgYmUgY2FwdHVyZWQgZm9y
IGxpdmUgbG9nZ2luZy4gVGhlIGludGVnZXIgdmFsdWUgb3IKICAgICB0aGUgbmFtZXMgb2YgdGhl
IGxldmVscyBjYW4gYmUgdXNlZC4KQEAgLTEwMzksNyArMTE5OSw3IEBAIHBhc3NlZCBtdWx0aXBs
ZSB0aW1lcy4gVGhlIGV4cGVjdGVkIGZvcm1hdCBpcyBgYG5hbWU9dmFsdWVgYC4gRm9yIGV4YW1w
bGU6OgogCiAuLiBjb25mdmFsOjogbG9nX2RhdGVfZm9ybWF0CiAKLSAgICAuLiB2ZXJzaW9uYWRk
ZWQ6OiAzLjMKKwogCiAgICAgU2V0cyBhIDpweTpmdW5jOmB0aW1lLnN0cmZ0aW1lYC1jb21wYXRp
YmxlIHN0cmluZyB0aGF0IHdpbGwgYmUgdXNlZCB3aGVuIGZvcm1hdHRpbmcgZGF0ZXMgZm9yIGxv
Z2dpbmcgY2FwdHVyZS4KIApAQCAtMTA1Myw3ICsxMjEzLDcgQEAgcGFzc2VkIG11bHRpcGxlIHRp
bWVzLiBUaGUgZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12YWx1ZWBgLiBGb3IgZXhhbXBsZTo6
CiAKIC4uIGNvbmZ2YWw6OiBsb2dfZmlsZQogCi0gICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisK
IAogICAgIFNldHMgYSBmaWxlIG5hbWUgcmVsYXRpdmUgdG8gdGhlIGBgcHl0ZXN0LmluaWBgIGZp
bGUgd2hlcmUgbG9nIG1lc3NhZ2VzIHNob3VsZCBiZSB3cml0dGVuIHRvLCBpbiBhZGRpdGlvbgog
ICAgIHRvIHRoZSBvdGhlciBsb2dnaW5nIGZhY2lsaXRpZXMgdGhhdCBhcmUgYWN0aXZlLgpAQCAt
MTA2OCw3ICsxMjI4LDcgQEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUgZXhwZWN0ZWQgZm9y
bWF0IGlzIGBgbmFtZT12YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNvbmZ2YWw6OiBsb2df
ZmlsZV9kYXRlX2Zvcm1hdAogCi0gICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogICAgIFNl
dHMgYSA6cHk6ZnVuYzpgdGltZS5zdHJmdGltZWAtY29tcGF0aWJsZSBzdHJpbmcgdGhhdCB3aWxs
IGJlIHVzZWQgd2hlbiBmb3JtYXR0aW5nIGRhdGVzIGZvciB0aGUgbG9nZ2luZyBmaWxlLgogCkBA
IC0xMDgxLDcgKzEyNDEsNyBAQCBwYXNzZWQgbXVsdGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBm
b3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoKIAogLi4gY29uZnZhbDo6IGxv
Z19maWxlX2Zvcm1hdAogCi0gICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogICAgIFNldHMg
YSA6cHk6bW9kOmBsb2dnaW5nYC1jb21wYXRpYmxlIHN0cmluZyB1c2VkIHRvIGZvcm1hdCBsb2dn
aW5nIG1lc3NhZ2VzIHJlZGlyZWN0ZWQgdG8gdGhlIGxvZ2dpbmcgZmlsZS4KIApAQCAtMTA5NCw3
ICsxMjU0LDcgQEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUgZXhwZWN0ZWQgZm9ybWF0IGlz
IGBgbmFtZT12YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNvbmZ2YWw6OiBsb2dfZmlsZV9s
ZXZlbAogCi0gICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogICAgIFNldHMgdGhlIG1pbmlt
dW0gbG9nIG1lc3NhZ2UgbGV2ZWwgdGhhdCBzaG91bGQgYmUgY2FwdHVyZWQgZm9yIHRoZSBsb2dn
aW5nIGZpbGUuIFRoZSBpbnRlZ2VyIHZhbHVlIG9yCiAgICAgdGhlIG5hbWVzIG9mIHRoZSBsZXZl
bHMgY2FuIGJlIHVzZWQuCkBAIC0xMTA5LDcgKzEyNjksNyBAQCBwYXNzZWQgbXVsdGlwbGUgdGlt
ZXMuIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoK
IAogLi4gY29uZnZhbDo6IGxvZ19mb3JtYXQKIAotICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwor
CiAKICAgICBTZXRzIGEgOnB5Om1vZDpgbG9nZ2luZ2AtY29tcGF0aWJsZSBzdHJpbmcgdXNlZCB0
byBmb3JtYXQgY2FwdHVyZWQgbG9nZ2luZyBtZXNzYWdlcy4KIApAQCAtMTEyMyw3ICsxMjgzLDcg
QEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUgZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12
YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNvbmZ2YWw6OiBsb2dfbGV2ZWwKIAotICAgIC4u
IHZlcnNpb25hZGRlZDo6IDMuMworCiAKICAgICBTZXRzIHRoZSBtaW5pbXVtIGxvZyBtZXNzYWdl
IGxldmVsIHRoYXQgc2hvdWxkIGJlIGNhcHR1cmVkIGZvciBsb2dnaW5nIGNhcHR1cmUuIFRoZSBp
bnRlZ2VyIHZhbHVlIG9yCiAgICAgdGhlIG5hbWVzIG9mIHRoZSBsZXZlbHMgY2FuIGJlIHVzZWQu
CkBAIC0xMTM4LDcgKzEyOTgsNyBAQCBwYXNzZWQgbXVsdGlwbGUgdGltZXMuIFRoZSBleHBlY3Rl
ZCBmb3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoKIAogLi4gY29uZnZhbDo6
IGxvZ19wcmludAogCi0gICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogICAgIElmIHNldCB0
byBgYEZhbHNlYGAsIHdpbGwgZGlzYWJsZSBkaXNwbGF5aW5nIGNhcHR1cmVkIGxvZ2dpbmcgbWVz
c2FnZXMgZm9yIGZhaWxlZCB0ZXN0cy4KIApAQCAtMTE1MiwxMiArMTMxMiwxNyBAQCBwYXNzZWQg
bXVsdGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZv
ciBleGFtcGxlOjoKIAogLi4gY29uZnZhbDo6IG1hcmtlcnMKIAotICAgIExpc3Qgb2YgbWFya2Vy
cyB0aGF0IGFyZSBhbGxvd2VkIGluIHRlc3QgZnVuY3Rpb25zLCBlbmZvcmNlZCB3aGVuIGBgLS1z
dHJpY3RgYCBjb21tYW5kLWxpbmUgYXJndW1lbnQgaXMgdXNlZC4KLSAgICBZb3UgY2FuIHVzZSBh
IG1hcmtlciBuYW1lIHBlciBsaW5lLCBpbmRlbnRlZCBmcm9tIHRoZSBvcHRpb24gbmFtZS4KKyAg
ICBXaGVuIHRoZSBgYC0tc3RyaWN0LW1hcmtlcnNgYCBvciBgYC0tc3RyaWN0YGAgY29tbWFuZC1s
aW5lIGFyZ3VtZW50cyBhcmUgdXNlZCwKKyAgICBvbmx5IGtub3duIG1hcmtlcnMgLSBkZWZpbmVk
IGluIGNvZGUgYnkgY29yZSBweXRlc3Qgb3Igc29tZSBwbHVnaW4gLSBhcmUgYWxsb3dlZC4KKwor
ICAgIFlvdSBjYW4gbGlzdCBhZGRpdGlvbmFsIG1hcmtlcnMgaW4gdGhpcyBzZXR0aW5nIHRvIGFk
ZCB0aGVtIHRvIHRoZSB3aGl0ZWxpc3QsCisgICAgaW4gd2hpY2ggY2FzZSB5b3UgcHJvYmFibHkg
d2FudCB0byBhZGQgYGAtLXN0cmljdC1tYXJrZXJzYGAgdG8gYGBhZGRvcHRzYGAKKyAgICB0byBh
dm9pZCBmdXR1cmUgcmVncmVzc2lvbnM6CiAKICAgICAuLiBjb2RlLWJsb2NrOjogaW5pCiAKICAg
ICAgICAgW3B5dGVzdF0KKyAgICAgICAgYWRkb3B0cyA9IC0tc3RyaWN0LW1hcmtlcnMKICAgICAg
ICAgbWFya2VycyA9CiAgICAgICAgICAgICBzbG93CiAgICAgICAgICAgICBzZXJpYWwKQEAgLTEy
MTAsNyArMTM3NSw4IEBAIHBhc3NlZCBtdWx0aXBsZSB0aW1lcy4gVGhlIGV4cGVjdGVkIGZvcm1h
dCBpcyBgYG5hbWU9dmFsdWVgYC4gRm9yIGV4YW1wbGU6OgogLi4gY29uZnZhbDo6IHB5dGhvbl9j
bGFzc2VzCiAKICAgIE9uZSBvciBtb3JlIG5hbWUgcHJlZml4ZXMgb3IgZ2xvYi1zdHlsZSBwYXR0
ZXJucyBkZXRlcm1pbmluZyB3aGljaCBjbGFzc2VzCi0gICBhcmUgY29uc2lkZXJlZCBmb3IgdGVz
dCBjb2xsZWN0aW9uLiBCeSBkZWZhdWx0LCBweXRlc3Qgd2lsbCBjb25zaWRlciBhbnkKKyAgIGFy
ZSBjb25zaWRlcmVkIGZvciB0ZXN0IGNvbGxlY3Rpb24uIFNlYXJjaCBmb3IgbXVsdGlwbGUgZ2xv
YiBwYXR0ZXJucyBieQorICAgYWRkaW5nIGEgc3BhY2UgYmV0d2VlbiBwYXR0ZXJucy4gQnkgZGVm
YXVsdCwgcHl0ZXN0IHdpbGwgY29uc2lkZXIgYW55CiAgICBjbGFzcyBwcmVmaXhlZCB3aXRoIGBg
VGVzdGBgIGFzIGEgdGVzdCBjb2xsZWN0aW9uLiAgSGVyZSBpcyBhbiBleGFtcGxlIG9mIGhvdwog
ICAgdG8gY29sbGVjdCB0ZXN0cyBmcm9tIGNsYXNzZXMgdGhhdCBlbmQgaW4gYGBTdWl0ZWBgOgog
CkBAIC0xMjI3LDE1ICsxMzkzLDMzIEBAIHBhc3NlZCBtdWx0aXBsZSB0aW1lcy4gVGhlIGV4cGVj
dGVkIGZvcm1hdCBpcyBgYG5hbWU9dmFsdWVgYC4gRm9yIGV4YW1wbGU6OgogLi4gY29uZnZhbDo6
IHB5dGhvbl9maWxlcwogCiAgICBPbmUgb3IgbW9yZSBHbG9iLXN0eWxlIGZpbGUgcGF0dGVybnMg
ZGV0ZXJtaW5pbmcgd2hpY2ggcHl0aG9uIGZpbGVzCi0gICBhcmUgY29uc2lkZXJlZCBhcyB0ZXN0
IG1vZHVsZXMuIEJ5IGRlZmF1bHQsIHB5dGVzdCB3aWxsIGNvbnNpZGVyCi0gICBhbnkgZmlsZSBt
YXRjaGluZyB3aXRoIGBgdGVzdF8qLnB5YGAgYW5kIGBgKl90ZXN0LnB5YGAgZ2xvYnMgYXMgYSB0
ZXN0Ci0gICBtb2R1bGUuCisgICBhcmUgY29uc2lkZXJlZCBhcyB0ZXN0IG1vZHVsZXMuIFNlYXJj
aCBmb3IgbXVsdGlwbGUgZ2xvYiBwYXR0ZXJucyBieQorICAgYWRkaW5nIGEgc3BhY2UgYmV0d2Vl
biBwYXR0ZXJuczoKKworICAgLi4gY29kZS1ibG9jazo6IGluaQorCisgICAgICAgIFtweXRlc3Rd
CisgICAgICAgIHB5dGhvbl9maWxlcyA9IHRlc3RfKi5weSBjaGVja18qLnB5IGV4YW1wbGVfKi5w
eQorCisgICBPciBvbmUgcGVyIGxpbmU6CisKKyAgIC4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAg
ICAgICBbcHl0ZXN0XQorICAgICAgICBweXRob25fZmlsZXMgPQorICAgICAgICAgICAgdGVzdF8q
LnB5CisgICAgICAgICAgICBjaGVja18qLnB5CisgICAgICAgICAgICBleGFtcGxlXyoucHkKKwor
ICAgQnkgZGVmYXVsdCwgZmlsZXMgbWF0Y2hpbmcgYGB0ZXN0XyoucHlgYCBhbmQgYGAqX3Rlc3Qu
cHlgYCB3aWxsIGJlIGNvbnNpZGVyZWQKKyAgIHRlc3QgbW9kdWxlcy4KIAogCiAuLiBjb25mdmFs
OjogcHl0aG9uX2Z1bmN0aW9ucwogCiAgICBPbmUgb3IgbW9yZSBuYW1lIHByZWZpeGVzIG9yIGds
b2ItcGF0dGVybnMgZGV0ZXJtaW5pbmcgd2hpY2ggdGVzdCBmdW5jdGlvbnMKLSAgIGFuZCBtZXRo
b2RzIGFyZSBjb25zaWRlcmVkIHRlc3RzLiBCeSBkZWZhdWx0LCBweXRlc3Qgd2lsbCBjb25zaWRl
ciBhbnkKKyAgIGFuZCBtZXRob2RzIGFyZSBjb25zaWRlcmVkIHRlc3RzLiBTZWFyY2ggZm9yIG11
bHRpcGxlIGdsb2IgcGF0dGVybnMgYnkKKyAgIGFkZGluZyBhIHNwYWNlIGJldHdlZW4gcGF0dGVy
bnMuIEJ5IGRlZmF1bHQsIHB5dGVzdCB3aWxsIGNvbnNpZGVyIGFueQogICAgZnVuY3Rpb24gcHJl
Zml4ZWQgd2l0aCBgYHRlc3RgYCBhcyBhIHRlc3QuICBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgaG93
CiAgICB0byBjb2xsZWN0IHRlc3QgZnVuY3Rpb25zIGFuZCBtZXRob2RzIHRoYXQgZW5kIGluIGBg
X3Rlc3RgYDoKIApAQCAtMTI1Myw3ICsxNDM3LDcgQEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBU
aGUgZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4u
IGNvbmZ2YWw6OiB0ZXN0cGF0aHMKIAotICAgLi4gdmVyc2lvbmFkZGVkOjogMi44CisKIAogICAg
U2V0cyBsaXN0IG9mIGRpcmVjdG9yaWVzIHRoYXQgc2hvdWxkIGJlIHNlYXJjaGVkIGZvciB0ZXN0
cyB3aGVuCiAgICBubyBzcGVjaWZpYyBkaXJlY3RvcmllcywgZmlsZXMgb3IgdGVzdCBpZHMgYXJl
IGdpdmVuIGluIHRoZSBjb21tYW5kIGxpbmUgd2hlbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVxdWlyZW1lbnRz
LnR4dAppbmRleCBlM2NjNDdlZDVhNTBkOGRiZWU1NDVjMzg5NDFjYzc1N2JiYjA0MjkzLi5iZTIy
YjdkYjg3MmRjYWQ5YWQwZGI2OWJhMjczOWFkN2YwN2FhMGNhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vcmVxdWlyZW1lbnRzLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVx
dWlyZW1lbnRzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSMgcGlubmluZyBzcGhpbnggdG8gMS40Liog
ZHVlIHRvIHNlYXJjaCBpc3N1ZXMgd2l0aCBydGQ6Ci0jIGh0dHBzOi8vZ2l0aHViLmNvbS9ydGZk
L3JlYWR0aGVkb2NzLXNwaGlueC1leHQvaXNzdWVzLzI1Ci1zcGhpbnggPT0xLjQuKgorcHlnbWVu
dHMtcHl0ZXN0Pj0xLjEuMAorc3BoaW54Pj0xLjguMiw8Mi4xCiBzcGhpbnhjb250cmliLXRyaW8K
K3NwaGlueC1yZW1vdmVkLWluPj0wLjIuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3NraXBwaW5nLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9za2lwcGluZy5yc3QKaW5kZXggYmZh
NmYzZTc1YTYyOTU0NDk2ZjUyZWE5YzVkNjVjMDY5ZGUwZWVkZi4uOGQwYzQ5OWIzMjhmZWY2MzY4
NGQzMjliNTJiMDI2OTBiMGFlMjI5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Nr
aXBwaW5nLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vc2tpcHBpbmcucnN0CkBAIC0yMiw3
ICsyMiw5IEBAIGl0J3MgYW4gKip4cGFzcyoqIGFuZCB3aWxsIGJlIHJlcG9ydGVkIGluIHRoZSB0
ZXN0IHN1bW1hcnkuCiBgYHB5dGVzdGBgIGNvdW50cyBhbmQgbGlzdHMgKnNraXAqIGFuZCAqeGZh
aWwqIHRlc3RzIHNlcGFyYXRlbHkuIERldGFpbGVkCiBpbmZvcm1hdGlvbiBhYm91dCBza2lwcGVk
L3hmYWlsZWQgdGVzdHMgaXMgbm90IHNob3duIGJ5IGRlZmF1bHQgdG8gYXZvaWQKIGNsdXR0ZXJp
bmcgdGhlIG91dHB1dC4gIFlvdSBjYW4gdXNlIHRoZSBgYC1yYGAgb3B0aW9uIHRvIHNlZSBkZXRh
aWxzCi1jb3JyZXNwb25kaW5nIHRvIHRoZSAic2hvcnQiIGxldHRlcnMgc2hvd24gaW4gdGhlIHRl
c3QgcHJvZ3Jlc3M6OgorY29ycmVzcG9uZGluZyB0byB0aGUgInNob3J0IiBsZXR0ZXJzIHNob3du
IGluIHRoZSB0ZXN0IHByb2dyZXNzOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0
ZXN0IC1yeFhzICAjIHNob3cgZXh0cmEgaW5mbyBvbiB4ZmFpbGVkLCB4cGFzc2VkLCBhbmQgc2tp
cHBlZCB0ZXN0cwogCkBAIC0zNyw3ICszOSw3IEBAIE1vcmUgZGV0YWlscyBvbiB0aGUgYGAtcmBg
IG9wdGlvbiBjYW4gYmUgZm91bmQgYnkgcnVubmluZyBgYHB5dGVzdCAtaGBgLgogU2tpcHBpbmcg
dGVzdCBmdW5jdGlvbnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIHZlcnNpb25hZGRl
ZDo6IDIuOQorCiAKIFRoZSBzaW1wbGVzdCB3YXkgdG8gc2tpcCBhIHRlc3QgZnVuY3Rpb24gaXMg
dG8gbWFyayBpdCB3aXRoIHRoZSBgYHNraXBgYCBkZWNvcmF0b3IKIHdoaWNoIG1heSBiZSBwYXNz
ZWQgYW4gb3B0aW9uYWwgYGByZWFzb25gYDoKQEAgLTU4LDU0ICs2MCw2OCBAQCBieSBjYWxsaW5n
IHRoZSBgYHB5dGVzdC5za2lwKHJlYXNvbilgYCBmdW5jdGlvbjoKICAgICAgICAgaWYgbm90IHZh
bGlkX2NvbmZpZygpOgogICAgICAgICAgICAgcHl0ZXN0LnNraXAoInVuc3VwcG9ydGVkIGNvbmZp
Z3VyYXRpb24iKQogCitUaGUgaW1wZXJhdGl2ZSBtZXRob2QgaXMgdXNlZnVsIHdoZW4gaXQgaXMg
bm90IHBvc3NpYmxlIHRvIGV2YWx1YXRlIHRoZSBza2lwIGNvbmRpdGlvbgorZHVyaW5nIGltcG9y
dCB0aW1lLgorCiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHNraXAgdGhlIHdob2xlIG1vZHVsZSB1
c2luZwogYGBweXRlc3Quc2tpcChyZWFzb24sIGFsbG93X21vZHVsZV9sZXZlbD1UcnVlKWBgIGF0
IHRoZSBtb2R1bGUgbGV2ZWw6CiAKIC4uIGNvZGUtYmxvY2s6OiBweXRob24KIAorICAgIGltcG9y
dCBzeXMKICAgICBpbXBvcnQgcHl0ZXN0CiAKLSAgICBpZiBub3QgcHl0ZXN0LmNvbmZpZy5nZXRv
cHRpb24oIi0tY3VzdG9tLWZsYWciKToKLSAgICAgICAgcHl0ZXN0LnNraXAoIi0tY3VzdG9tLWZs
YWcgaXMgbWlzc2luZywgc2tpcHBpbmcgdGVzdHMiLCBhbGxvd19tb2R1bGVfbGV2ZWw9VHJ1ZSkK
KyAgICBpZiBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoIndpbiIpOgorICAgICAgICBweXRl
c3Quc2tpcCgic2tpcHBpbmcgd2luZG93cy1vbmx5IHRlc3RzIiwgYWxsb3dfbW9kdWxlX2xldmVs
PVRydWUpCiAKLVRoZSBpbXBlcmF0aXZlIG1ldGhvZCBpcyB1c2VmdWwgd2hlbiBpdCBpcyBub3Qg
cG9zc2libGUgdG8gZXZhbHVhdGUgdGhlIHNraXAgY29uZGl0aW9uCi1kdXJpbmcgaW1wb3J0IHRp
bWUuCiAKICoqUmVmZXJlbmNlKio6IDpyZWY6YHB5dGVzdC5tYXJrLnNraXAgcmVmYAogCiBgYHNr
aXBpZmBgCiB+fn5+fn5+fn5+CiAKLS4uIHZlcnNpb25hZGRlZDo6IDIuMAorCiAKIElmIHlvdSB3
aXNoIHRvIHNraXAgc29tZXRoaW5nIGNvbmRpdGlvbmFsbHkgdGhlbiB5b3UgY2FuIHVzZSBgYHNr
aXBpZmBgIGluc3RlYWQuCiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgbWFya2luZyBhIHRlc3QgZnVu
Y3Rpb24gdG8gYmUgc2tpcHBlZAotd2hlbiBydW4gb24gYSBQeXRob24zLjYgaW50ZXJwcmV0ZXI6
Ogord2hlbiBydW4gb24gYW4gaW50ZXJwcmV0ZXIgZWFybGllciB0aGFuIFB5dGhvbjMuNjoKKwor
Li4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgaW1wb3J0IHN5cwotICAgIEBweXRlc3QubWFy
ay5za2lwaWYoc3lzLnZlcnNpb25faW5mbyA8ICgzLDYpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVhc29uPSJyZXF1aXJlcyBweXRob24zLjYiKQorCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tp
cGlmKHN5cy52ZXJzaW9uX2luZm8gPCAoMywgNiksIHJlYXNvbj0icmVxdWlyZXMgcHl0aG9uMy42
IG9yIGhpZ2hlciIpCiAgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKICAgICAgICAgLi4uCiAKIElm
IHRoZSBjb25kaXRpb24gZXZhbHVhdGVzIHRvIGBgVHJ1ZWBgIGR1cmluZyBjb2xsZWN0aW9uLCB0
aGUgdGVzdCBmdW5jdGlvbiB3aWxsIGJlIHNraXBwZWQsCiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVh
c29uIGFwcGVhcmluZyBpbiB0aGUgc3VtbWFyeSB3aGVuIHVzaW5nIGBgLXJzYGAuCiAKLVlvdSBj
YW4gc2hhcmUgYGBza2lwaWZgYCBtYXJrZXJzIGJldHdlZW4gbW9kdWxlcy4gIENvbnNpZGVyIHRo
aXMgdGVzdCBtb2R1bGU6OgorWW91IGNhbiBzaGFyZSBgYHNraXBpZmBgIG1hcmtlcnMgYmV0d2Vl
biBtb2R1bGVzLiAgQ29uc2lkZXIgdGhpcyB0ZXN0IG1vZHVsZToKKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgogCiAgICAgIyBjb250ZW50IG9mIHRlc3RfbXltb2R1bGUucHkKICAgICBpbXBvcnQg
bXltb2R1bGUKLSAgICBtaW52ZXJzaW9uID0gcHl0ZXN0Lm1hcmsuc2tpcGlmKG15bW9kdWxlLl9f
dmVyc2lvbmluZm9fXyA8ICgxLDEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVhc29uPSJhdCBsZWFzdCBteW1vZHVsZS0xLjEgcmVxdWlyZWQiKQorCisgICAgbWludmVy
c2lvbiA9IHB5dGVzdC5tYXJrLnNraXBpZigKKyAgICAgICAgbXltb2R1bGUuX192ZXJzaW9uaW5m
b19fIDwgKDEsIDEpLCByZWFzb249ImF0IGxlYXN0IG15bW9kdWxlLTEuMSByZXF1aXJlZCIKKyAg
ICApCisKKwogICAgIEBtaW52ZXJzaW9uCiAgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKICAgICAg
ICAgLi4uCiAKLVlvdSBjYW4gaW1wb3J0IHRoZSBtYXJrZXIgYW5kIHJldXNlIGl0IGluIGFub3Ro
ZXIgdGVzdCBtb2R1bGU6OgorWW91IGNhbiBpbXBvcnQgdGhlIG1hcmtlciBhbmQgcmV1c2UgaXQg
aW4gYW5vdGhlciB0ZXN0IG1vZHVsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAg
IyB0ZXN0X215b3RoZXJtb2R1bGUucHkKICAgICBmcm9tIHRlc3RfbXltb2R1bGUgaW1wb3J0IG1p
bnZlcnNpb24KIAorCiAgICAgQG1pbnZlcnNpb24KICAgICBkZWYgdGVzdF9hbm90aGVyZnVuY3Rp
b24oKToKICAgICAgICAgLi4uCkBAIC0xMjQsMjQgKzE0MCwxOCBAQCBzbyB0aGV5IGFyZSBzdXBw
b3J0ZWQgbWFpbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHJlYXNvbnMuCiBTa2lwIGFs
bCB0ZXN0IGZ1bmN0aW9ucyBvZiBhIGNsYXNzIG9yIG1vZHVsZQogfn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAotWW91IGNhbiB1c2UgdGhlIGBgc2tpcGlmYGAg
bWFya2VyIChhcyBhbnkgb3RoZXIgbWFya2VyKSBvbiBjbGFzc2VzOjoKK1lvdSBjYW4gdXNlIHRo
ZSBgYHNraXBpZmBgIG1hcmtlciAoYXMgYW55IG90aGVyIG1hcmtlcikgb24gY2xhc3NlczoKIAot
ICAgIEBweXRlc3QubWFyay5za2lwaWYoc3lzLnBsYXRmb3JtID09ICd3aW4zMicsCi0gICAgICAg
ICAgICAgICAgICAgICAgICByZWFzb249ImRvZXMgbm90IHJ1biBvbiB3aW5kb3dzIikKLSAgICBj
bGFzcyBUZXN0UG9zaXhDYWxscyhvYmplY3QpOgorLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCisg
ICAgQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwgcmVhc29uPSJk
b2VzIG5vdCBydW4gb24gd2luZG93cyIpCisgICAgY2xhc3MgVGVzdFBvc2l4Q2FsbHMob2JqZWN0
KToKICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oc2VsZik6CiAgICAgICAgICAgICAid2lsbCBu
b3QgYmUgc2V0dXAgb3IgcnVuIHVuZGVyICd3aW4zMicgcGxhdGZvcm0iCiAKIElmIHRoZSBjb25k
aXRpb24gaXMgYGBUcnVlYGAsIHRoaXMgbWFya2VyIHdpbGwgcHJvZHVjZSBhIHNraXAgcmVzdWx0
IGZvcgogZWFjaCBvZiB0aGUgdGVzdCBtZXRob2RzIG9mIHRoYXQgY2xhc3MuCiAKLS4uIHdhcm5p
bmc6OgotCi0gICBUaGUgdXNlIG9mIGBgc2tpcGlmYGAgb24gY2xhc3NlcyB0aGF0IHVzZSBpbmhl
cml0YW5jZSBpcyBzdHJvbmdseQotICAgZGlzY291cmFnZWQuIGBBIEtub3duIGJ1ZyA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81Njg+YF8KLSAgIGluIHB5dGVz
dCdzIG1hcmtlcnMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IgaW4gc3VwZXIgY2xhc3Nl
cy4KLQogSWYgeW91IHdhbnQgdG8gc2tpcCBhbGwgdGVzdCBmdW5jdGlvbnMgb2YgYSBtb2R1bGUs
IHlvdSBtYXkgdXNlCiB0aGUgYGBweXRlc3RtYXJrYGAgbmFtZSBvbiB0aGUgZ2xvYmFsIGxldmVs
OgogCkBAIC0xOTgsNyArMjA4LDcgQEAgSGVyZSdzIGEgcXVpY2sgZ3VpZGUgb24gaG93IHRvIHNr
aXAgdGVzdHMgaW4gYSBtb2R1bGUgaW4gZGlmZmVyZW50IHNpdHVhdGlvbnM6CiAKICAgLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgogCi0gICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5za2lw
aWYoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsICJ0ZXN0cyBmb3IgbGludXggb25seSIpCisgICAg
ICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5za2lwaWYoc3lzLnBsYXRmb3JtID09ICJ3aW4z
MiIsIHJlYXNvbj0idGVzdHMgZm9yIGxpbnV4IG9ubHkiKQogCiAzLiBTa2lwIGFsbCB0ZXN0cyBp
biBhIG1vZHVsZSBpZiBzb21lIGltcG9ydCBpcyBtaXNzaW5nOgogCkBAIC0yNDQsNyArMjU0LDcg
QEAgaW50ZXJuYWxseSBieSByYWlzaW5nIGEga25vd24gZXhjZXB0aW9uLgogYGBzdHJpY3RgYCBw
YXJhbWV0ZXIKIH5+fn5+fn5+fn5+fn5+fn5+fn5+CiAKLS4uIHZlcnNpb25hZGRlZDo6IDIuOQor
CiAKIEJvdGggYGBYRkFJTGBgIGFuZCBgYFhQQVNTYGAgZG9uJ3QgZmFpbCB0aGUgdGVzdCBzdWl0
ZSwgdW5sZXNzIHRoZSBgYHN0cmljdGBgIGtleXdvcmQtb25seQogcGFyYW1ldGVyIGlzIHBhc3Nl
ZCBhcyBgYFRydWVgYDoKQEAgLTI3MSwxMCArMjgxLDExIEBAIFlvdSBjYW4gY2hhbmdlIHRoZSBk
ZWZhdWx0IHZhbHVlIG9mIHRoZSBgYHN0cmljdGBgIHBhcmFtZXRlciB1c2luZyB0aGUKIH5+fn5+
fn5+fn5+fn5+fn5+fn5+CiAKIEFzIHdpdGggc2tpcGlmXyB5b3UgY2FuIGFsc28gbWFyayB5b3Vy
IGV4cGVjdGF0aW9uIG9mIGEgZmFpbHVyZQotb24gYSBwYXJ0aWN1bGFyIHBsYXRmb3JtOjoKK29u
IGEgcGFydGljdWxhciBwbGF0Zm9ybToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCi0gICAg
QHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsNiksCi0gICAgICAgICAg
ICAgICAgICAgICAgIHJlYXNvbj0icHl0aG9uMy42IGFwaSBjaGFuZ2VzIikKKyAgICBAcHl0ZXN0
Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNiksIHJlYXNvbj0icHl0aG9uMy42
IGFwaSBjaGFuZ2VzIikKICAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgogICAgICAgICAuLi4KIApA
QCAtMjgzLDcgKzI5NCw3IEBAIG9uIGEgcGFydGljdWxhciBwbGF0Zm9ybTo6CiB+fn5+fn5+fn5+
fn5+fn5+fn5+fgogCiBJZiB5b3Ugd2FudCB0byBiZSBtb3JlIHNwZWNpZmljIGFzIHRvIHdoeSB0
aGUgdGVzdCBpcyBmYWlsaW5nLCB5b3UgY2FuIHNwZWNpZnkKLWEgc2luZ2xlIGV4Y2VwdGlvbiwg
b3IgYSBsaXN0IG9mIGV4Y2VwdGlvbnMsIGluIHRoZSBgYHJhaXNlc2BgIGFyZ3VtZW50LgorYSBz
aW5nbGUgZXhjZXB0aW9uLCBvciBhIHR1cGxlIG9mIGV4Y2VwdGlvbnMsIGluIHRoZSBgYHJhaXNl
c2BgIGFyZ3VtZW50LgogCiAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKQEAgLTMxMyw3ICszMjQs
OSBAQCBpbnZlc3RpZ2F0ZWQgbGF0ZXIuCiBJZ25vcmluZyB4ZmFpbAogfn5+fn5+fn5+fn5+fn4K
IAotQnkgc3BlY2lmeWluZyBvbiB0aGUgY29tbWFuZGxpbmU6OgorQnkgc3BlY2lmeWluZyBvbiB0
aGUgY29tbWFuZGxpbmU6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLS1y
dW54ZmFpbAogCkBAIC0zMjcsMTUgKzM0MCwxOSBAQCBIZXJlIGlzIGEgc2ltcGxlIHRlc3QgZmls
ZSB3aXRoIHRoZSBzZXZlcmFsIHVzYWdlczoKIAogLi4gbGl0ZXJhbGluY2x1ZGU6OiBleGFtcGxl
L3hmYWlsX2RlbW8ucHkKIAotUnVubmluZyBpdCB3aXRoIHRoZSByZXBvcnQtb24teGZhaWwgb3B0
aW9uIGdpdmVzIHRoaXMgb3V0cHV0OjoKK1J1bm5pbmcgaXQgd2l0aCB0aGUgcmVwb3J0LW9uLXhm
YWlsIG9wdGlvbiBnaXZlcyB0aGlzIG91dHB1dDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAog
CiAgICAgZXhhbXBsZSAkIHB5dGVzdCAtcnggeGZhaWxfZGVtby5weQogICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIv
ZXhhbXBsZSwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5
dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9O
X1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUi9leGFt
cGxlCiAgICAgY29sbGVjdGVkIDcgaXRlbXMKIAogICAgIHhmYWlsX2RlbW8ucHkgeHh4eHh4eCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorCiAg
ICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyA9PT09
PT09PT09PT09PT09PT09PT09PT09PQogICAgIFhGQUlMIHhmYWlsX2RlbW8ucHk6OnRlc3RfaGVs
bG8KICAgICBYRkFJTCB4ZmFpbF9kZW1vLnB5Ojp0ZXN0X2hlbGxvMgpAQCAtMzQ5LDcgKzM2Niw2
IEBAIFJ1bm5pbmcgaXQgd2l0aCB0aGUgcmVwb3J0LW9uLXhmYWlsIG9wdGlvbiBnaXZlcyB0aGlz
IG91dHB1dDo6CiAgICAgWEZBSUwgeGZhaWxfZGVtby5weTo6dGVzdF9oZWxsbzYKICAgICAgIHJl
YXNvbjogcmVhc29uCiAgICAgWEZBSUwgeGZhaWxfZGVtby5weTo6dGVzdF9oZWxsbzcKLQogICAg
ID09PT09PT09PT09PT09PT09PT09PT09PSA3IHhmYWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09
PT09PT09PT09PT09PT09PT09PT0KIAogLi4gX2Bza2lwL3hmYWlsIHdpdGggcGFyYW1ldHJpemVg
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RhbGtzLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90YWxrcy5yc3QKaW5kZXggNzk1MzRlYTZlOWE2Zjc5NWZlMzdmNzBjODQ4ODdkMWFi
NjUwYjBlOS4uYmUwYzZmYjlmZDQ0ZTljMzk4N2YzNWRmMjdkMzkyNWNmYWY5Y2E4NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RhbGtzLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vdGFsa3MucnN0CkBAIC0xNCwxMiArMTQsMjAgQEAgVGFsa3MgYW5kIFR1dG9yaWFscwogQm9v
a3MKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCistIGBw
eXRlc3QgUXVpY2sgU3RhcnQgR3VpZGUsIGJ5IEJydW5vIE9saXZlaXJhICgyMDE4KQorICA8aHR0
cHM6Ly93d3cucGFja3RwdWIuY29tL3dlYi1kZXZlbG9wbWVudC9weXRlc3QtcXVpY2stc3RhcnQt
Z3VpZGU+YF8uCisKIC0gYFB5dGhvbiBUZXN0aW5nIHdpdGggcHl0ZXN0LCBieSBCcmlhbiBPa2tl
biAoMjAxNykKICAgPGh0dHBzOi8vcHJhZ3Byb2cuY29tL2Jvb2svYm9weXRlc3QvcHl0aG9uLXRl
c3Rpbmctd2l0aC1weXRlc3Q+YF8uCiAKIFRhbGtzIGFuZCBibG9nIHBvc3RpbmdzCiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorLSBweXRlc3Q6IHJlY29t
bWVuZGF0aW9ucywgYmFzaWMgcGFja2FnZXMgZm9yIHRlc3RpbmcgaW4gUHl0aG9uIGFuZCBEamFu
Z28sIEFuZHJldSBWYWxsYm9uYSwgUHljb25FUyAyMDE3IChgc2xpZGVzIGluIGVuZ2xpc2ggPGh0
dHA6Ly90YWxrcy5hcHNsLmlvL3Rlc3RpbmctcHljb25lcy0yMDE3Lz5gXywgYHZpZGVvIGluIHNw
YW5pc2ggPGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9SzIwR2VSLWxYRGs+YF8pCisK
Ky0gYHB5dGVzdCBhZHZhbmNlZCwgQW5kcmV3IFN2ZXRsb3YgKFJ1c3NpYW4sIFB5Q29uIFJ1c3Np
YSwgMjAxNikKKyAgPGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9N0tnaWhkS1RXWTQ+
YF8uCisKIC0gYFB5dGhvbmljIHRlc3RpbmcsIElnb3IgU3Rhcmlrb3YgKFJ1c3NpYW4sIFB5TnNr
LCBOb3ZlbWJlciAyMDE2KQogICA8aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1fOTJu
ZmRkNW5LOD5gXy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvYXR0aWMu
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvYXR0aWMucnN0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwNjk0NDY2MWNiNWNlNzE1MGFkOWRmZmU3ZTUzOWRkZjE4ZDhhMDgwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90ZXN0L2F0dGljLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBACi09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotQVRUSUMgZG9j
dW1lbnRhdGlvbgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLQotWFhYIFJFVklFVyBhbmQgcmVtb3ZlIHRoZSBiZWxvdyAgWFhYCi0KLUN1c3RvbWl6aW5n
IHRoZSB0ZXN0aW5nIHByb2Nlc3MKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQot
d3JpdGluZyBjb25mdGVzdC5weSBmaWxlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLQotWW91IG1heSBwdXQgY29uZnRlc3QucHkgZmlsZXMgY29udGFpbmluZyBwcm9qZWN0
LXNwZWNpZmljCi1jb25maWd1cmF0aW9uIGluIHlvdXIgcHJvamVjdCdzIHJvb3QgZGlyZWN0b3J5
LCBpdCdzIHVzdWFsbHkKLWJlc3QgdG8gcHV0IGl0IGp1c3QgaW50byB0aGUgc2FtZSBkaXJlY3Rv
cnkgbGV2ZWwgYXMgeW91cgotdG9wbW9zdCBgYF9faW5pdF9fLnB5YGAuICBJbiBmYWN0LCBgYHB5
dGVzdGBgIHBlcmZvcm1zCi1hbiAidXB3YXJkcyIgc2VhcmNoIHN0YXJ0aW5nIGZyb20gdGhlIGRp
cmVjdG9yeSB0aGF0IHlvdSBzcGVjaWZ5Ci10byBiZSB0ZXN0ZWQgYW5kIHdpbGwgbG9va3VwIGNv
bmZpZ3VyYXRpb24gdmFsdWVzIHJpZ2h0LXRvLWxlZnQuCi1Zb3UgbWF5IGhhdmUgb3B0aW9ucyB0
aGF0IHJlc2lkZSBlLmcuIGluIHlvdXIgaG9tZSBkaXJlY3RvcnkKLWJ1dCBub3RlIHRoYXQgcHJv
amVjdCBzcGVjaWZpYyBzZXR0aW5ncyB3aWxsIGJlIGNvbnNpZGVyZWQKLWZpcnN0LiAgVGhlcmUg
aXMgYSBmbGFnIHRoYXQgaGVscHMgeW91IGRlYnVnZ2luZyB5b3VyCi1jb25mdGVzdC5weSBjb25m
aWd1cmF0aW9uczo6Ci0KLSAgICBweXRlc3QgLS10cmFjZS1jb25maWcKLQotCi1jdXN0b21pemlu
ZyB0aGUgY29sbGVjdGluZyBhbmQgcnVubmluZyBwcm9jZXNzCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyBpbnRyb2R1Y2UgZGlmZmVyZW50IHRl
c3QgaXRlbXMgeW91IGNhbiBjcmVhdGUKLW9uZSBvciBtb3JlIGBgY29uZnRlc3QucHlgYCBmaWxl
cyBpbiB5b3VyIHByb2plY3QuCi1XaGVuIHRoZSBjb2xsZWN0aW9uIHByb2Nlc3MgdHJhdmVyc2Vz
IGRpcmVjdG9yaWVzCi1hbmQgbW9kdWxlcyB0aGUgZGVmYXVsdCBjb2xsZWN0b3JzIHdpbGwgcHJv
ZHVjZQotY3VzdG9tIENvbGxlY3RvcnMgYW5kIEl0ZW1zIGlmIHRoZXkgYXJlIGZvdW5kCi1pbiBh
IGxvY2FsIGBgY29uZnRlc3QucHlgYCBmaWxlLgotCi0KLUN1c3RvbWl6aW5nIHRoZSBjb2xsZWN0
aW9uIHByb2Nlc3MgaW4gYSBtb2R1bGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotSWYgeW91IGhhdmUgYSBtb2R1bGUgd2hlcmUgeW91IHdhbnQgdG8g
dGFrZSByZXNwb25zaWJpbGl0eSBmb3IKLWNvbGxlY3RpbmcgeW91ciBvd24gdGVzdCBJdGVtcyBh
bmQgcG9zc2libHkgZXZlbiBmb3IgZXhlY3V0aW5nCi1hIHRlc3QgdGhlbiB5b3UgY2FuIHByb3Zp
ZGUgYGdlbmVyYXRpdmUgdGVzdHNgXyB0aGF0IHlpZWxkCi1jYWxsYWJsZXMgYW5kIHBvc3NpYmx5
IGFyZ3VtZW50cyBhcyBhIHR1cGxlLiAgIFRoaXMgaXMgZXNwZWNpYWxseQotdXNlZnVsIGZvciBj
YWxsaW5nIGFwcGxpY2F0aW9uIHRlc3QgbWFjaGluZXJ5IHdpdGggZGlmZmVyZW50Ci1wYXJhbWV0
ZXIgc2V0cyBidXQgY291bnRpbmcgZWFjaCBvZiB0aGUgY2FsbHMgYXMgYSBzZXBhcmF0ZQotdGVz
dHMuCi0KLS4uIF9gZ2VuZXJhdGl2ZSB0ZXN0c2A6IGZlYXR1cmVzLmh0bWwjZ2VuZXJhdGl2ZS10
ZXN0cwotCi1UaGUgb3RoZXIgZXh0ZW5zaW9uIHBvc3NpYmlsaXR5IGlzIGFib3V0Ci1zcGVjaWZ5
aW5nIGEgY3VzdG9tIHRlc3QgYGBJdGVtYGAgY2xhc3Mgd2hpY2gKLWlzIHJlc3BvbnNpYmxlIGZv
ciBzZXR0aW5nIHVwIGFuZCBleGVjdXRpbmcgYW4gdW5kZXJseWluZwotdGVzdC4gIE9yIHlvdSBj
YW4gZXh0ZW5kIHRoZSBjb2xsZWN0aW9uIHByb2Nlc3MgZm9yIGEgd2hvbGUKLWRpcmVjdG9yeSB0
cmVlIGJ5IHB1dHRpbmcgSXRlbXMgaW4gYSBgYGNvbmZ0ZXN0LnB5YGAgY29uZmlndXJhdGlvbiBm
aWxlLgotVGhlIGNvbGxlY3Rpb24gcHJvY2VzcyBkeW5hbWljYWxseSBjb25zdWx0cyB0aGUgKmNo
YWluIG9mIGNvbmZ0ZXN0LnB5KgotbW9kdWxlcyB0byBkZXRlcm1pbmUgY29sbGVjdG9ycyBhbmQg
aXRlbXMgYXQgYGBEaXJlY3RvcnlgYCwgYGBNb2R1bGVgYCwKLWBgQ2xhc3NgYCwgYGBGdW5jdGlv
bmBgIG9yIGBgR2VuZXJhdG9yYGAgbGV2ZWwgcmVzcGVjdGl2ZWx5LgotCi1DdXN0b21pemluZyBl
eGVjdXRpb24gb2YgSXRlbXMgYW5kIEZ1bmN0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tIGBgcHl0ZXN0LkZ1bmN0aW9uYGAgdGVz
dCBpdGVtcyBjb250cm9sIGV4ZWN1dGlvbgotICBvZiBhIHRlc3QgZnVuY3Rpb24gdGhyb3VnaCBp
dHMgYGBmdW5jdGlvbi5ydW50ZXN0KClgYCBtZXRob2QuCi0gIFRoaXMgbWV0aG9kIGlzIHJlc3Bv
bnNpYmxlIGZvciBwZXJmb3JtaW5nIHNldHVwIGFuZCB0ZWFyZG93bgotICAoIlRlc3QgRml4dHVy
ZXMiKSBmb3IgYSB0ZXN0IEZ1bmN0aW9uLgotCi0tIGBgRnVuY3Rpb24uZXhlY3V0ZSh0YXJnZXQs
ICphcmdzKWBgIG1ldGhvZHMgYXJlIGludm9rZWQgYnkKLSAgdGhlIGRlZmF1bHQgYGBGdW5jdGlv
bi5ydW4oKWBgIHRvIGFjdHVhbGx5IGV4ZWN1dGUgYSBweXRob24KLSAgZnVuY3Rpb24gd2l0aCB0
aGUgZ2l2ZW4gKHVzdWFsbHkgZW1wdHkgc2V0IG9mKSBhcmd1bWVudHMuCi0KLS4uIF9gcHktZGV2
IG1haWxpbmcgbGlzdGA6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L21haWxtYW4vbGlzdGluZm8vcHkt
ZGV2Ci0KLQotLi4gX2B0ZXN0IGdlbmVyYXRvcnNgOiBmdW5jYXJncy5odG1sI3Rlc3QtZ2VuZXJh
dG9ycwotCi0uLiBfYGdlbmVyYXRpdmUgdGVzdHNgOgotCi1nZW5lcmF0aXZlIHRlc3RzOiB5aWVs
ZGluZyBwYXJhbWV0cml6ZWQgdGVzdHMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLQotRGVwcmVjYXRlZCBzaW5jZSAxLjAgaW4gZmF2b3VyIG9m
IGB0ZXN0IGdlbmVyYXRvcnNgXy4KLQotKkdlbmVyYXRpdmUgdGVzdHMqIGFyZSB0ZXN0IG1ldGhv
ZHMgdGhhdCBhcmUgKmdlbmVyYXRvciBmdW5jdGlvbnMqIHdoaWNoCi1gYHlpZWxkYGAgY2FsbGFi
bGVzIGFuZCB0aGVpciBhcmd1bWVudHMuICBUaGlzIGlzIHVzZWZ1bCBmb3IgcnVubmluZyBhCi10
ZXN0IGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIGFnYWluc3QgZGlmZmVyZW50IHBhcmFtZXRlcnMu
ICBFeGFtcGxlOjoKLQotICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmUoKToKLSAgICAgICAgZm9yIHgg
aW4gKDQyLDE3LDQ5KToKLSAgICAgICAgICAgIHlpZWxkIGNoZWNrLCB4Ci0KLSAgICBkZWYgY2hl
Y2soYXJnKToKLSAgICAgICAgYXNzZXJ0IGFyZyAlIDcgPT0gMCAgICMgc2Vjb25kIGdlbmVyYXRl
ZCB0ZXN0cyBmYWlscyEKLQotTm90ZSB0aGF0IGBgdGVzdF9nZW5lcmF0aXZlKClgYCB3aWxsIGNh
dXNlIHRocmVlIHRlc3RzCi10byBnZXQgcnVuLCBub3RhYmx5IGBgY2hlY2soNDIpYGAsIGBgY2hl
Y2soMTcpYGAgYW5kIGBgY2hlY2soNDkpYGAKLW9mIHdoaWNoIHRoZSBtaWRkbGUgb25lIHdpbGwg
b2J2aW91c2x5IGZhaWwuCi0KLVRvIG1ha2UgaXQgZWFzaWVyIHRvIGRpc3Rpbmd1aXNoIHRoZSBn
ZW5lcmF0ZWQgdGVzdHMgaXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBhbiBleHBsaWNpdCBuYW1l
IGZvciB0aGVtLCBsaWtlIGZvciBleGFtcGxlOjoKLQotICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmUo
KToKLSAgICAgICAgZm9yIHggaW4gKDQyLDE3LDQ5KToKLSAgICAgICAgICAgIHlpZWxkICJjYXNl
ICVkIiAlIHgsIGNoZWNrLCB4Ci0KLQotZGlzYWJsaW5nIGEgdGVzdCBjbGFzcwotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotCi1JZiB5b3Ugd2FudCB0byBkaXNhYmxlIGEgY29tcGxldGUgdGVzdCBj
bGFzcyB5b3UKLWNhbiBzZXQgdGhlIGNsYXNzLWxldmVsIGF0dHJpYnV0ZSBgYGRpc2FibGVkYGAu
Ci1Gb3IgZXhhbXBsZSwgaW4gb3JkZXIgdG8gYXZvaWQgcnVubmluZyBzb21lIHRlc3RzIG9uIFdp
bjMyOjoKLQotICAgIGNsYXNzIFRlc3RQb3NpeE9ubHkob2JqZWN0KToKLSAgICAgICAgZGlzYWJs
ZWQgPSBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJwotCi0gICAgICAgIGRlZiB0ZXN0X3h4eChzZWxm
KToKLSAgICAgICAgICAgIC4uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
Y29uZmlnLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9jb25maWcuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2JhNWE0NmY5ODJlYWEyYTc3OGNmODY1YjA1MDNkMzBj
OGFhYjhkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9jb25maWcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4
ICswLDAgQEAKLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJy
ZWZyZXNoIiBjb250ZW50PSIgMSA7IFVSTD1jdXN0b21pemUuaHRtbCIgLz4KLSAgICA8L2hlYWQ+
Ci0KLSAgICA8Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLXZhciBnYUpz
SG9zdCA9ICgoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wpID8gImh0dHBz
Oi8vc3NsLiIgOiAiaHR0cDovL3d3dy4iKTsKLWRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCIlM0Nz
Y3JpcHQgc3JjPSciICsgZ2FKc0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMnIHR5
cGU9J3RleHQvamF2YXNjcmlwdCclM0UlM0Mvc2NyaXB0JTNFIikpOwotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci10cnkgewotdmFyIHBhZ2VUcmFja2VyID0gX2dh
dC5fZ2V0VHJhY2tlcigiVUEtNzU5NzI3NC0zIik7Ci1wYWdlVHJhY2tlci5fdHJhY2tQYWdldmll
dygpOwotfSBjYXRjaChlcnIpIHt9PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0gICAgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUz
Mjg1NTBhODVjYjEwNTIxYWMyMTZiMjU5MWYyNjg5ZTQ2NGU5MTguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZGlz
dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPGh0bWw+Ci0gICAgPGhlYWQ+
Ci0gICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IiAxIDsgVVJMPXBs
dWdpbi94ZGlzdC5odG1sIiAvPgotICAgIDwvaGVhZD4KLQotICAgIDxib2R5PgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotdmFyIGdhSnNIb3N0ID0gKCgiaHR0cHM6IiA9PSBkb2N1
bWVudC5sb2NhdGlvbi5wcm90b2NvbCkgPyAiaHR0cHM6Ly9zc2wuIiA6ICJodHRwOi8vd3d3LiIp
OwotZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoIiUzQ3NjcmlwdCBzcmM9JyIgKyBnYUpzSG9zdCAr
ICJnb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcycgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyUzRSUz
Qy9zY3JpcHQlM0UiKSk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLXRyeSB7Ci12YXIgcGFnZVRyYWNrZXIgPSBfZ2F0Ll9nZXRUcmFja2VyKCJVQS03NTk3Mjc0
LTMiKTsKLXBhZ2VUcmFja2VyLl90cmFja1BhZ2V2aWV3KCk7Ci19IGNhdGNoKGVycikge308L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLSAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi90ZXN0L2V4dGVuZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZXh0ZW5kLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiYTVhNDZmOTgyZWFhMmE3NzhjZjg2
NWIwNTAzZDMwYzhhYWI4ZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZXh0ZW5kLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxOCArMCwwIEBACi08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgaHR0
cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iIDEgOyBVUkw9Y3VzdG9taXplLmh0bWwiIC8+Ci0g
ICAgPC9oZWFkPgotCi0gICAgPGJvZHk+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
Ci12YXIgZ2FKc0hvc3QgPSAoKCJodHRwczoiID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29s
KSA/ICJodHRwczovL3NzbC4iIDogImh0dHA6Ly93d3cuIik7Ci1kb2N1bWVudC53cml0ZSh1bmVz
Y2FwZSgiJTNDc2NyaXB0IHNyYz0nIiArIGdhSnNIb3N0ICsgImdvb2dsZS1hbmFseXRpY3MuY29t
L2dhLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnJTNFJTNDL3NjcmlwdCUzRSIpKTsKLTwvc2Ny
aXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotdHJ5IHsKLXZhciBwYWdlVHJh
Y2tlciA9IF9nYXQuX2dldFRyYWNrZXIoIlVBLTc1OTcyNzQtMyIpOwotcGFnZVRyYWNrZXIuX3Ry
YWNrUGFnZXZpZXcoKTsKLX0gY2F0Y2goZXJyKSB7fTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgotICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvaW5kZXgucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvaW5kZXgucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxYTNiNWE1NGRhMDhjNjcyYzNhZjk3MmU0N2JmN2Q0NmU4ODYxYjVkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L2luZGV4LnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotcHl0ZXN0IGRvY3VtZW50YXRpb24gaW5k
ZXgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLWZlYXR1cmVz
Xzogb3ZlcnZpZXcgYW5kIGRpc2N1c3Npb24gb2YgZmVhdHVyZXMuCi0KLXF1aWNrc3RhcnRfOiBn
ZXR0aW5nIHN0YXJ0ZWQgd2l0aCB3cml0aW5nIGEgc2ltcGxlIHRlc3QuCi0KLWB0YWxrcywgdHV0
b3JpYWxzLCBleGFtcGxlc2BfOiB0dXRvcmlhbCBleGFtcGxlcywgc2xpZGVzCi0KLWZ1bmNhcmdz
XzogcG93ZXJmdWwgcGFyYW1ldHJpemVkIHRlc3QgZnVuY3Rpb24gc2V0dXAKLQotYHBsdWdpbnNg
XzogbGlzdCBvZiBhdmFpbGFibGUgcGx1Z2lucyB3aXRoIHVzYWdlIGV4YW1wbGVzIGFuZCBmZWF0
dXJlIGRldGFpbHMuCi0KLWN1c3RvbWl6ZV86IGNvbmZpZ3VyYXRpb24sIGN1c3RvbWl6YXRpb24s
IGV4dGVuc2lvbnMKLQotY2hhbmdlbG9nXzogaGlzdG9yeSBvZiBjaGFuZ2VzIGNvdmVyaW5nIGxh
c3QgcmVsZWFzZXMKLQotKipDb250aW51b3VzIEludGVncmF0aW9uIG9mIHB5dGVzdCdzIG93biB0
ZXN0cyBhbmQgcGx1Z2lucyB3aXRoIEh1ZHNvbioqOgotCi0gICAgYGh0dHA6Ly9odWRzb24udGVz
dHJ1bi5vcmcvdmlldy9weXRlc3RgXwotCi0uLiBfYGh0dHA6Ly9odWRzb24udGVzdHJ1bi5vcmcv
dmlldy9weXRlc3RgOiBodHRwOi8vaHVkc29uLnRlc3RydW4ub3JnL3ZpZXcvcHl0ZXN0LwotCi0K
LS4uIF9jaGFuZ2Vsb2c6IC4uL2NoYW5nZWxvZy5odG1sCi0uLiBfYHBsdWdpbnNgOiBwbHVnaW4v
aW5kZXguaHRtbAotLi4gX2B0YWxrcywgdHV0b3JpYWxzLCBleGFtcGxlc2A6IHRhbGtzLmh0bWwK
LS4uIF9xdWlja3N0YXJ0OiBxdWlja3N0YXJ0Lmh0bWwKLS4uIF9mZWF0dXJlczogZmVhdHVyZXMu
aHRtbAotLi4gX2Z1bmNhcmdzOiBmdW5jYXJncy5odG1sCi0uLiBfY3VzdG9taXplOiBjdXN0b21p
emUuaHRtbAotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L21pc3Npb24u
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvbWlzc2lvbi5yc3QKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDUxYzI1MmRjMGQ4NmE0YzQxNzUzZDY1NjE5ODMyMWFhOGQ5ZTMyNGQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvbWlzc2lvbi5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBA
Ci0KLU1pc3Npb24KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1gYHB5
dGVzdGBgIHN0cml2ZXMgdG8gbWFrZSB0ZXN0aW5nIGEgZnVuIGFuZCBuby1ib2lsZXJwbGF0ZSBl
ZmZvcnQuCi0KLVRoZSB0b29sIGlzIGRpc3RyaWJ1dGVkIGFzIGEgYHB5dGVzdGAgcGFja2FnZS4g
IEl0cyBwcm9qZWN0IGluZGVwZW5kZW50Ci1gYHB5dGVzdGBgIGNvbW1hbmQgbGluZSB0b29sIGhl
bHBzIHlvdSB0bzoKLQotKiByYXBpZGx5IGNvbGxlY3QgYW5kIHJ1biB0ZXN0cwotKiBydW4gdW5p
dC0gb3IgZG9jdGVzdHMsIGZ1bmN0aW9uYWwgb3IgaW50ZWdyYXRpb24gdGVzdHMKLSogZGlzdHJp
YnV0ZSB0ZXN0cyB0byBtdWx0aXBsZSBlbnZpcm9ubWVudHMKLSogdXNlIGxvY2FsIG9yIGdsb2Jh
bCBwbHVnaW5zIGZvciBjdXN0b20gdGVzdCB0eXBlcyBhbmQgc2V0dXAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3YucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3Rlc3QvcGx1Z2luL2Nvdi5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0MWM3
ZWY5NDc5MzRlYTU2YWFmNTAyMjhkMzEyOTc1NzRiNWE1N2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2lu
L2Nvdi5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwyMzAgKzAsMCBAQAotCi1wcm9kdWNlIGNvZGUg
Y292ZXJhZ2UgcmVwb3J0cyB1c2luZyB0aGUgJ2NvdmVyYWdlJyBwYWNrYWdlLCBpbmNsdWRpbmcg
c3VwcG9ydCBmb3IgZGlzdHJpYnV0ZWQgdGVzdGluZy4KLT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4uIGNvbnRlbnRzOjoKLSAgOmxvY2FsOgotCi1U
aGlzIHBsdWdpbiBwcm9kdWNlcyBjb3ZlcmFnZSByZXBvcnRzLiAgSXQgc3VwcG9ydHMgY2VudHJh
bGlzZWQgdGVzdGluZyBhbmQgZGlzdHJpYnV0ZWQgdGVzdGluZyBpbgotYm90aCBsb2FkIGFuZCBl
YWNoIG1vZGVzLiAgSXQgYWxzbyBzdXBwb3J0cyBjb3ZlcmFnZSBvZiBzdWJwcm9jZXNzZXMuCi0K
LUFsbCBmZWF0dXJlcyBvZmZlcmVkIGJ5IHRoZSBjb3ZlcmFnZSBwYWNrYWdlIHNob3VsZCBiZSBh
dmFpbGFibGUsIGVpdGhlciB0aHJvdWdoIHB5dGVzdC1jb3Ygb3IKLXRocm91Z2ggY292ZXJhZ2Un
cyBjb25maWcgZmlsZS4KLQotCi1JbnN0YWxsYXRpb24KLS0tLS0tLS0tLS0tLQotCi1UaGUgYHB5
dGVzdC1jb3ZgXyBwYWNrYWdlIG1heSBiZSBpbnN0YWxsZWQgd2l0aCBwaXAgb3IgZWFzeV9pbnN0
YWxsOjoKLQotICAgIHBpcCBpbnN0YWxsIHB5dGVzdC1jb3YKLSAgICBlYXN5X2luc3RhbGwgcHl0
ZXN0LWNvdgotCi0uLiBfYHB5dGVzdC1jb3ZgOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkv
cHl0ZXN0LWNvdi8KLQotCi1Vbmluc3RhbGxhdGlvbgotLS0tLS0tLS0tLS0tLS0KLQotVW5pbnN0
YWxsaW5nIHBhY2thZ2VzIGlzIHN1cHBvcnRlZCBieSBwaXA6OgotCi0gICAgcGlwIHVuaW5zdGFs
bCBweXRlc3QtY292Ci0KLUhvd2V2ZXIgZWFzeV9pbnN0YWxsIGRvZXMgbm90IHByb3ZpZGUgYW4g
dW5pbnN0YWxsIGZhY2lsaXR5LgotCi0uLiBJTVBPUlRBTlQ6OgotCi0gICAgRW5zdXJlIHRoYXQg
eW91IG1hbnVhbGx5IGRlbGV0ZSB0aGUgaW5pdF9jb3ZtYWluLnB0aCBmaWxlIGluIHlvdXIKLSAg
ICBzaXRlLXBhY2thZ2VzIGRpcmVjdG9yeS4KLQotICAgIFRoaXMgZmlsZSBzdGFydHMgY292ZXJh
Z2UgY29sbGVjdGlvbiBvZiBzdWJwcm9jZXNzZXMgaWYgYXBwcm9wcmlhdGUgZHVyaW5nCi0gICAg
c2l0ZSBpbml0aWFsaXphdGlvbiBhdCBweXRob24gc3RhcnR1cC4KLQotCi1Vc2FnZQotLS0tLS0K
LQotQ2VudHJhbGlzZWQgVGVzdGluZwotfn5+fn5+fn5+fn5+fn5+fn5+fgotCi1DZW50cmFsaXNl
ZCB0ZXN0aW5nIHdpbGwgcmVwb3J0IG9uIHRoZSBjb21iaW5lZCBjb3ZlcmFnZSBvZiB0aGUgbWFp
biBwcm9jZXNzIGFuZCBhbGwgb2YgaXQncwotc3VicHJvY2Vzc2VzLgotCi1SdW5uaW5nIGNlbnRy
YWxpc2VkIHRlc3Rpbmc6OgotCi0gICAgcHl0ZXN0IC0tY292IG15cHJvaiB0ZXN0cy8KLQotU2hv
d3MgYSB0ZXJtaW5hbCByZXBvcnQ6OgotCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gY292ZXJh
Z2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFsLTAgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMgICBNaXNzICBDb3ZlcgotICAg
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBteXByb2ovX19p
bml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlwcm9qL215cHJvaiAgICAgICAg
ICAyNTcgICAgIDEzICAgIDk0JQotICAgIG15cHJvai9mZWF0dXJlNDI4NiAgICAgIDk0ICAgICAg
NyAgICA5MiUKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g
ICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAgIDk0JQotCi0KLURpc3RyaWJ1
dGVkIFRlc3Rpbmc6IExvYWQKLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQotRGlzdHJpYnV0
ZWQgdGVzdGluZyB3aXRoIGRpc3QgbW9kZSBzZXQgdG8gbG9hZCB3aWxsIHJlcG9ydCBvbiB0aGUg
Y29tYmluZWQgY292ZXJhZ2Ugb2YgYWxsIHNsYXZlcy4KLVRoZSBzbGF2ZXMgbWF5IGJlIHNwcmVh
ZCBvdXQgb3ZlciBhbnkgbnVtYmVyIG9mIGhvc3RzIGFuZCBlYWNoIHNsYXZlIG1heSBiZSBsb2Nh
dGVkIGFueXdoZXJlIG9uIHRoZQotZmlsZSBzeXN0ZW0uICBFYWNoIHNsYXZlIHdpbGwgaGF2ZSBp
dCdzIHN1YnByb2Nlc3NlcyBtZWFzdXJlZC4KLQotUnVubmluZyBkaXN0cmlidXRlZCB0ZXN0aW5n
IHdpdGggZGlzdCBtb2RlIHNldCB0byBsb2FkOjoKLQotICAgIHB5dGVzdCAtLWNvdiBteXByb2og
LW4gMiB0ZXN0cy8KLQotU2hvd3MgYSB0ZXJtaW5hbCByZXBvcnQ6OgotCi0gICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0gY292ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFs
LTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMg
ICBNaXNzICBDb3ZlcgotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSAgICBteXByb2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlw
cm9qL215cHJvaiAgICAgICAgICAyNTcgICAgIDEzICAgIDk0JQotICAgIG15cHJvai9mZWF0dXJl
NDI4NiAgICAgIDk0ICAgICAgNyAgICA5MiUKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAg
IDk0JQotCi0KLUFnYWluIGJ1dCBzcHJlYWQgb3ZlciBkaWZmZXJlbnQgaG9zdHMgYW5kIGRpZmZl
cmVudCBkaXJlY3Rvcmllczo6Ci0KLSAgICBweXRlc3QgLS1jb3YgbXlwcm9qIC0tZGlzdCBsb2Fk
Ci0gICAgICAgICAgICAtLXR4IHNzaD1tZW1lZG91Z2hAaG9zdDEvL2NoZGlyPXRlc3RlbnYxCi0g
ICAgICAgICAgICAtLXR4IHNzaD1tZW1lZG91Z2hAaG9zdDIvL2NoZGlyPS90bXAvdGVzdGVudjIv
L3B5dGhvbj0vdG1wL2VudjEvYmluL3B5dGhvbgotICAgICAgICAgICAgLS1yc3luY2RpciBteXBy
b2ogLS1yc3luY2RpciB0ZXN0cyAtLXJzeW5jIGV4YW1wbGVzCi0gICAgICAgICAgICB0ZXN0cy8K
LQotU2hvd3MgYSB0ZXJtaW5hbCByZXBvcnQ6OgotCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0g
Y292ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFsLTAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMgICBNaXNzICBDb3Zl
cgotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBteXBy
b2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlwcm9qL215cHJvaiAg
ICAgICAgICAyNTcgICAgIDEzICAgIDk0JQotICAgIG15cHJvai9mZWF0dXJlNDI4NiAgICAgIDk0
ICAgICAgNyAgICA5MiUKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAgIDk0JQotCi0KLURp
c3RyaWJ1dGVkIFRlc3Rpbmc6IEVhY2gKLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQotRGlz
dHJpYnV0ZWQgdGVzdGluZyB3aXRoIGRpc3QgbW9kZSBzZXQgdG8gZWFjaCB3aWxsIHJlcG9ydCBv
biB0aGUgY29tYmluZWQgY292ZXJhZ2Ugb2YgYWxsIHNsYXZlcy4KLVNpbmNlIGVhY2ggc2xhdmUg
aXMgcnVubmluZyBhbGwgdGVzdHMgdGhpcyBhbGxvd3MgZ2VuZXJhdGluZyBhIGNvbWJpbmVkIGNv
dmVyYWdlIHJlcG9ydCBmb3IgbXVsdGlwbGUKLWVudmlyb25tZW50cy4KLQotUnVubmluZyBkaXN0
cmlidXRlZCB0ZXN0aW5nIHdpdGggZGlzdCBtb2RlIHNldCB0byBlYWNoOjoKLQotICAgIHB5dGVz
dCAtLWNvdiBteXByb2ogLS1kaXN0IGVhY2gKLSAgICAgICAgICAgIC0tdHggcG9wZW4vL2NoZGly
PS90bXAvdGVzdGVudjMvL3B5dGhvbj0vdXNyL2xvY2FsL3B5dGhvbjI3L2Jpbi9weXRob24KLSAg
ICAgICAgICAgIC0tdHggc3NoPW1lbWVkb3VnaEBob3N0Mi8vY2hkaXI9L3RtcC90ZXN0ZW52NC8v
cHl0aG9uPS90bXAvZW52Mi9iaW4vcHl0aG9uCi0gICAgICAgICAgICAtLXJzeW5jZGlyIG15cHJv
aiAtLXJzeW5jZGlyIHRlc3RzIC0tcnN5bmMgZXhhbXBsZXMKLSAgICAgICAgICAgIHRlc3RzLwot
Ci1TaG93cyBhIHRlcm1pbmFsIHJlcG9ydDo6Ci0KLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtIGxpbnV4
MiwgcHl0aG9uIDIuNi41LWZpbmFsLTAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBs
YXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNy4wLWZpbmFsLTAKLSAgICBOYW1lICAgICAgICAgICAg
ICAgICBTdG10cyAgIE1pc3MgIENvdmVyCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotICAgIG15cHJvai9fX2luaXRfXyAgICAgICAgICAyICAgICAgMCAgIDEw
MCUKLSAgICBteXByb2ovbXlwcm9qICAgICAgICAgIDI1NyAgICAgMTMgICAgOTQlCi0gICAgbXlw
cm9qL2ZlYXR1cmU0Mjg2ICAgICAgOTQgICAgICA3ICAgIDkyJQotICAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBUT1RBTCAgICAgICAgICAgICAgICAgIDM1
MyAgICAgMjAgICAgOTQlCi0KLQotUmVwb3J0aW5nCi0tLS0tLS0tLS0KLQotSXQgaXMgcG9zc2li
bGUgdG8gZ2VuZXJhdGUgYW55IGNvbWJpbmF0aW9uIG9mIHRoZSByZXBvcnRzIGZvciBhIHNpbmds
ZSB0ZXN0IHJ1bi4KLQotVGhlIGF2YWlsYWJsZSByZXBvcnRzIGFyZSB0ZXJtaW5hbCAod2l0aCBv
ciB3aXRob3V0IG1pc3NpbmcgbGluZSBudW1iZXJzIHNob3duKSwgSFRNTCwgWE1MIGFuZAotYW5u
b3RhdGVkIHNvdXJjZSBjb2RlLgotCi1UaGUgdGVybWluYWwgcmVwb3J0IHdpdGhvdXQgbGluZSBu
dW1iZXJzIChkZWZhdWx0KTo6Ci0KLSAgICBweXRlc3QgLS1jb3YtcmVwb3J0IHRlcm0gLS1jb3Yg
bXlwcm9qIHRlc3RzLwotCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gY292ZXJhZ2U6IHBsYXRm
b3JtIGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFsLTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g
ICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMgICBNaXNzICBDb3ZlcgotICAgIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBteXByb2ovX19pbml0X18gICAg
ICAgICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlwcm9qL215cHJvaiAgICAgICAgICAyNTcgICAg
IDEzICAgIDk0JQotICAgIG15cHJvai9mZWF0dXJlNDI4NiAgICAgIDk0ICAgICAgNyAgICA5MiUK
LSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgVE9UQUwg
ICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAgIDk0JQotCi0KLVRoZSB0ZXJtaW5hbCByZXBv
cnQgd2l0aCBsaW5lIG51bWJlcnM6OgotCi0gICAgcHl0ZXN0IC0tY292LXJlcG9ydCB0ZXJtLW1p
c3NpbmcgLS1jb3YgbXlwcm9qIHRlc3RzLwotCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gY292
ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFsLTAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMgICBNaXNzICBDb3ZlciAg
IE1pc3NpbmcKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotICAgIG15cHJvai9fX2luaXRfXyAgICAgICAgICAyICAgICAgMCAgIDEwMCUKLSAg
ICBteXByb2ovbXlwcm9qICAgICAgICAgIDI1NyAgICAgMTMgICAgOTQlICAgMjQtMjYsIDk5LCAx
NDksIDIzMy0yMzYsIDI5Ny0yOTgsIDM2OS0zNzAKLSAgICBteXByb2ovZmVhdHVyZTQyODYgICAg
ICA5NCAgICAgIDcgICAgOTIlICAgMTgzLTE4OCwgMTk3Ci0gICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBUT1RBTCAgICAgICAgICAgICAg
ICAgIDM1MyAgICAgMjAgICAgOTQlCi0KLQotVGhlIHJlbWFpbmluZyB0aHJlZSByZXBvcnRzIG91
dHB1dCB0byBmaWxlcyB3aXRob3V0IHNob3dpbmcgYW55dGhpbmcgb24gdGhlIHRlcm1pbmFsICh1
c2VmdWwgZm9yCi13aGVuIHRoZSBvdXRwdXQgaXMgZ29pbmcgdG8gYSBjb250aW51b3VzIGludGVn
cmF0aW9uIHNlcnZlcik6OgotCi0gICAgcHl0ZXN0IC0tY292LXJlcG9ydCBodG1sIC0tY292LXJl
cG9ydCB4bWwgLS1jb3YtcmVwb3J0IGFubm90YXRlIC0tY292IG15cHJvaiB0ZXN0cy8KLQotCi1D
b3ZlcmFnZSBEYXRhIEZpbGUKLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgZGF0YSBmaWxlIGlz
IGVyYXNlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRlc3RpbmcgdG8gZW5zdXJlIGNsZWFuIGRhdGEg
Zm9yIGVhY2ggdGVzdCBydW4uCi0KLVRoZSBkYXRhIGZpbGUgaXMgbGVmdCBhdCB0aGUgZW5kIG9m
IHRlc3Rpbmcgc28gdGhhdCBpdCBpcyBwb3NzaWJsZSB0byB1c2Ugbm9ybWFsIGNvdmVyYWdlIHRv
b2xzIHRvCi1leGFtaW5lIGl0LgotCi0KLUxpbWl0YXRpb25zCi0tLS0tLS0tLS0tLQotCi1Gb3Ig
ZGlzdHJpYnV0ZWQgdGVzdGluZyB0aGUgc2xhdmVzIG11c3QgaGF2ZSB0aGUgcHl0ZXN0LWNvdiBw
YWNrYWdlIGluc3RhbGxlZC4gIFRoaXMgaXMgbmVlZGVkIHNpbmNlCi10aGUgcGx1Z2luIG11c3Qg
YmUgcmVnaXN0ZXJlZCB0aHJvdWdoIHNldHVwdG9vbHMgLyBkaXN0cmlidXRlIGZvciBweXRlc3Qg
dG8gc3RhcnQgdGhlIHBsdWdpbiBvbiB0aGUKLXNsYXZlLgotCi1Gb3Igc3VicHJvY2VzcyBtZWFz
dXJlbWVudCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbXVzdCBtYWtlIGl0IGZyb20gdGhlIG1haW4g
cHJvY2VzcyB0byB0aGUKLXN1YnByb2Nlc3MuICBUaGUgcHl0aG9uIHVzZWQgYnkgdGhlIHN1YnBy
b2Nlc3MgbXVzdCBoYXZlIHB5dGVzdC1jb3YgaW5zdGFsbGVkLiAgVGhlIHN1YnByb2Nlc3MgbXVz
dAotZG8gbm9ybWFsIHNpdGUgaW5pdGlhbGl6YXRpb24gc28gdGhhdCB0aGUgZW52aXJvbm1lbnQg
dmFyaWFibGVzIGNhbiBiZSBkZXRlY3RlZCBhbmQgY292ZXJhZ2UKLXN0YXJ0ZWQuCi0KLQotQWNr
bm93bGVkZ21lbnRzCi0tLS0tLS0tLS0tLS0tLS0tCi0KLUhvbGdlciBLcmVrZWwgZm9yIHB5dGVz
dCB3aXRoIGl0cyBkaXN0cmlidXRlZCB0ZXN0aW5nIHN1cHBvcnQuCi0KLU5lZCBCYXRjaGVsZGVy
IGZvciBjb3ZlcmFnZSBhbmQgaXRzIGFiaWxpdHkgdG8gY29tYmluZSB0aGUgY292ZXJhZ2UgcmVz
dWx0cyBvZiBwYXJhbGxlbCBydW5zLgotCi1XaGlsc3QgdGhpcyBwbHVnaW4gaGFzIGJlZW4gYnVp
bHQgZnJlc2ggZnJvbSB0aGUgZ3JvdW5kIHVwIHRvIHN1cHBvcnQgZGlzdHJpYnV0ZWQgdGVzdGlu
ZyBpdCBoYXMKLWJlZW4gaW5mbHVlbmNlZCBieSB0aGUgd29yayBkb25lIG9uIHB5dGVzdC1jb3Zl
cmFnZSAoUm9zcyBMYXdsZXksIEphbWVzIE1pbGxzLCBIb2xnZXIgS3Jla2VsKSBhbmQKLW5vc2Ut
Y292ZXIgKEphc29uIFBlbGxlcmluKSB3aGljaCBhcmUgb3RoZXIgY292ZXJhZ2UgcGx1Z2lucyBm
b3IgcHl0ZXN0IGFuZCBub3NlIHJlc3BlY3RpdmVseS4KLQotTm8gZG91YnQgb3RoZXJzIGhhdmUg
Y29udHJpYnV0ZWQgdG8gdGhlc2UgdG9vbHMgYXMgd2VsbC4KLQotY29tbWFuZCBsaW5lIG9wdGlv
bnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotYGAtLWNvdj1wYXRoYGAKLSAgICBtZWFzdXJl
IGNvdmVyYWdlIGZvciBmaWxlc3lzdGVtIHBhdGggKG11bHRpLWFsbG93ZWQpCi1gYC0tY292LXJl
cG9ydD10eXBlYGAKLSAgICB0eXBlIG9mIHJlcG9ydCB0byBnZW5lcmF0ZTogdGVybSwgdGVybS1t
aXNzaW5nLCBhbm5vdGF0ZSwgaHRtbCwgeG1sIChtdWx0aS1hbGxvd2VkKQotYGAtLWNvdi1jb25m
aWc9cGF0aGBgCi0gICAgY29uZmlnIGZpbGUgZm9yIGNvdmVyYWdlLCBkZWZhdWx0OiAuY292ZXJh
Z2VyYwotCi0uLiBpbmNsdWRlOjogbGlua3MudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC9wbHVnaW4vY292ZXJhZ2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
cGx1Z2luL2NvdmVyYWdlLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzExMzlk
MDA4YmEwMjBhN2Y3YjY5NmEyM2M4NDJjM2Y1MzNkZGM1Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4v
Y292ZXJhZ2UucnN0CisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotCi1Xcml0ZSBhbmQg
cmVwb3J0IGNvdmVyYWdlIGRhdGEgd2l0aCB0aGUgJ2NvdmVyYWdlJyBwYWNrYWdlLgotPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQot
Ci0uLiBjb250ZW50czo6Ci0gIDpsb2NhbDoKLQotTm90ZTogT3JpZ2luYWwgY29kZSBieSBSb3Nz
IExhd2xleS4gCi0KLUluc3RhbGwKLS0tLS0tLS0tLS0tLS0tCi0KLVVzZSBwaXAgdG8gKHVuKWlu
c3RhbGw6OgotCi0gICAgcGlwIGluc3RhbGwgcHl0ZXN0LWNvdmVyYWdlIAotICAgIHBpcCB1bmlu
c3RhbGwgcHl0ZXN0LWNvdmVyYWdlIAotCi1vciBhbHRlcm5hdGl2ZWx5IHVzZSBlYXN5X2luc3Rh
bGwgdG8gaW5zdGFsbDo6Ci0KLSAgICBlYXN5X2luc3RhbGwgcHl0ZXN0LWNvdmVyYWdlIAotCi0K
LVVzYWdlIAotLS0tLS0tLS0tLS0tLQotCi1UbyBnZXQgZnVsbCB0ZXN0IGNvdmVyYWdlIHJlcG9y
dHMgZm9yIGEgcGFydGljdWxhciBwYWNrYWdlIHR5cGU6OgotCi0gICAgcHl0ZXN0IC0tY292ZXIt
cmVwb3J0PXJlcG9ydAotCi1jb21tYW5kIGxpbmUgb3B0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLQotCi1gYC0tY292ZXI9Q09WRVJQQUNLQUdFU2BgCi0gICAgKG11bHRpIGFsbG93ZWQpIG9u
bHkgaW5jbHVkZSBpbmZvIGZyb20gc3BlY2lmaWVkIHBhY2thZ2UuCi1gYC0tY292ZXItcmVwb3J0
PVJFUE9SVF9UWVBFYGAKLSAgICBodG1sOiBEaXJlY3RvcnkgZm9yIGh0bWwgb3V0cHV0LgotICAg
ICAgICAgICAgICAgICAgICByZXBvcnQ6IE91dHB1dCBhIHRleHQgcmVwb3J0LgotICAgICAgICAg
ICAgICAgICAgICBhbm5vdGF0ZTogQW5ub3RhdGUgeW91ciBzb3VyY2UgY29kZSBmb3Igd2hpY2gg
bGluZXMgd2VyZSBleGVjdXRlZCBhbmQgd2hpY2ggd2VyZSBub3QuCi0gICAgICAgICAgICAgICAg
ICAgIHhtbDogT3V0cHV0IGFuIHhtbCByZXBvcnQgY29tcGF0aWJsZSB3aXRoIHRoZSBjb2JlcnR1
cmEgcGx1Z2luIGZvciBodWRzb24uCi1gYC0tY292ZXItZGlyZWN0b3J5PURJUkVDVE9SWWBgCi0g
ICAgRGlyZWN0b3J5IGZvciB0aGUgcmVwb3J0cyAoaHRtbCAvIGFubm90YXRlIHJlc3VsdHMpIGRl
ZmF1bHRzIHRvIC4vY292ZXJhZ2UKLWBgLS1jb3Zlci14bWwtZmlsZT1YTUxfRklMRWBgCi0gICAg
RmlsZSBmb3IgdGhlIHhtbCByZXBvcnQgZGVmYXVsdHMgdG8gLi9jb3ZlcmFnZS54bWwKLWBgLS1j
b3Zlci1zaG93LW1pc3NpbmdgYAotICAgIFNob3cgbWlzc2luZyBmaWxlcwotYGAtLWNvdmVyLWln
bm9yZS1lcnJvcnM9SUdOT1JFX0VSUk9SU2BgCi0gICAgSWdub3JlIGVycm9ycyBvZiBmaW5kaW5n
IHNvdXJjZSBmaWxlcyBmb3IgY29kZS4KLQotLi4gaW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2RqYW5nby5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vZGphbmdvLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDYxNDk3YjM4NWVkZTU4NDlmYzRiZTI2YzM5ZTY1OGVjNzFiMTM5ZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vdGVzdC9wbHVnaW4vZGphbmdvLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAot
cHl0ZXN0X2RqYW5nbyBwbHVnaW4gKEVYVEVSTkFMKQotPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0KLXB5dGVzdF9kamFuZ28gaXMgYSBwbHVnaW4gZm9yIGBgcHl0
ZXN0YGAgdGhhdCBwcm92aWRlcyBhIHNldCBvZiB1c2VmdWwgdG9vbHMgZm9yIHRlc3RpbmcgRGph
bmdvIGFwcGxpY2F0aW9ucywgY2hlY2tvdXQgQmVuIEZpcnNobWFuJ3MgYHB5dGVzdF9kamFuZ28g
Z2l0aHViIHBhZ2VgXy4KLQotLi4gX2BweXRlc3RfZGphbmdvIGdpdGh1YiBwYWdlYDogaHR0cDov
L2dpdGh1Yi5jb20vYmZpcnNoL3B5dGVzdF9kamFuZ28vdHJlZS9tYXN0ZXIKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2ZpZ2xlYWYucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2ZpZ2xlYWYucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwYzE2MDNhZGU5ZmMzZGYxN2I4MjIxODJkOGYzNTc5YjJiNmM4Nzg3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L3BsdWdpbi9maWdsZWFmLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAK
LQotcmVwb3J0IHRlc3QgY292ZXJhZ2UgdXNpbmcgdGhlICdmaWdsZWFmJyBwYWNrYWdlLgotPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4uIGNv
bnRlbnRzOjoKLSAgOmxvY2FsOgotCi1JbnN0YWxsCi0tLS0tLS0tLS0tLS0tLS0KLQotVG8gaW5z
dGFsbCB0aGUgcGx1Z2luIGlzc3VlOjoKLQotICAgIGVhc3lfaW5zdGFsbCBweXRlc3QtZmlnbGVh
ZiAgIyBvcgotICAgIHBpcCBpbnN0YWxsIHB5dGVzdC1maWdsZWFmICAgCi0KLWFuZCBpZiB5b3Ug
YXJlIHVzaW5nIHBpcCB5b3UgY2FuIGFsc28gdW5pbnN0YWxsOjoKLQotICAgIHBpcCB1bmluc3Rh
bGwgcHl0ZXN0LWZpZ2xlYWYKLQotCi1Vc2FnZQotLS0tLS0tLS0tLS0tLS0tCi0KLUFmdGVyIGlu
c3RhbGxhdGlvbiB5b3UgY2FuIHNpbXBseSB0eXBlOjoKLQotICAgIHB5dGVzdCAtLWZpZ2xlYWYg
Wy4uLl0KLQotdG8gZW5hYmxlIGZpZ2xlYWYgY292ZXJhZ2UgaW4geW91ciB0ZXN0IHJ1bi4gIEEg
ZGVmYXVsdCAiLmZpZ2xlYWYiIGRhdGEgZmlsZQotYW5kICJodG1sIiBkaXJlY3Rvcnkgd2lsbCBi
ZSBjcmVhdGVkLiAgWW91IGNhbiB1c2UgY29tbWFuZCBsaW5lIG9wdGlvbnMKLXRvIGNvbnRyb2wg
d2hlcmUgZGF0YSBhbmQgaHRtbCBmaWxlcyBhcmUgY3JlYXRlZC4KLQotY29tbWFuZCBsaW5lIG9w
dGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotYGAtLWZpZ2xlYWZgYAotICAgIHRyYWNl
IHB5dGhvbiBjb3ZlcmFnZSB3aXRoIGZpZ2xlYWYgYW5kIHdyaXRlIEhUTUwgZm9yIGZpbGVzIGJl
bG93IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyCi1gYC0tZmlnLWRhdGE9ZGlyYGAKLSAgICBzZXQg
dHJhY2luZyBmaWxlLCBkZWZhdWx0OiAiLmZpZ2xlYWYiLgotYGAtLWZpZy1odG1sPWRpcmBgCi0g
ICAgc2V0IGh0bWwgcmVwb3J0aW5nIGRpciwgZGVmYXVsdCAiaHRtbCIuCi0KLS4uIGluY2x1ZGU6
OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9o
ZWxwY29uZmlnLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9oZWxwY29uZmln
LnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzI2Yjc1YzQ1NTJlMTQyYWE5ZGZh
NTViYWYxNjY3MDQ2ZDcxMTM2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaGVscGNvbmZpZy5yc3QK
KysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0KLXByb3ZpZGUgdmVyc2lvbiBpbmZvLCBj
b25mdGVzdC9lbnZpcm9ubWVudCBjb25maWcgbmFtZXMuCi09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4uIGNvbnRlbnRzOjoKLSAg
OmxvY2FsOgotCi0KLQotY29tbWFuZCBsaW5lIG9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0KLQotYGAtLXZlcnNpb25gYAotICAgIGRpc3BsYXkgcHkgbGliIHZlcnNpb24gYW5kIGltcG9y
dCBpbmZvcm1hdGlvbi4KLWBgLXAgbmFtZWBgCi0gICAgZWFybHktbG9hZCBnaXZlbiBwbHVnaW4g
KG11bHRpLWFsbG93ZWQpLgotYGAtLXRyYWNlLWNvbmZpZ2BgCi0gICAgdHJhY2UgY29uc2lkZXJh
dGlvbnMgb2YgY29uZnRlc3QucHkgZmlsZXMuCi1gYC0tZGVidWdgYAotICAgIGdlbmVyYXRlIGFu
ZCBzaG93IGludGVybmFsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbi4KLWBgLS1oZWxwLWNvbmZpZ2Bg
Ci0gICAgc2hvdyBhdmFpbGFibGUgY29uZnRlc3QucHkgYW5kIEVOVi12YXJpYWJsZSBuYW1lcy4K
LQotU3RhcnQgaW1wcm92aW5nIHRoaXMgcGx1Z2luIGluIDMwIHNlY29uZHMKLT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLQotMS4gRG93bmxvYWQgYHB5dGVzdF9o
ZWxwY29uZmlnLnB5YF8gcGx1Z2luIHNvdXJjZSBjb2RlCi0yLiBwdXQgaXQgc29tZXdoZXJlIGFz
IGBgcHl0ZXN0X2hlbHBjb25maWcucHlgYCBpbnRvIHlvdXIgaW1wb3J0IHBhdGgKLTMuIGEgc3Vi
c2VxdWVudCBgYHB5dGVzdGBgIHJ1biB3aWxsIHVzZSB5b3VyIGxvY2FsIHZlcnNpb24KLQotQ2hl
Y2tvdXQgY3VzdG9taXplXywgb3RoZXIgcGx1Z2luc18gb3IgYGdldCBpbiBjb250YWN0YF8uCi0K
LS4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L3BsdWdpbi9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaW5k
ZXgucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTNhNGRjZTY4MWM4ZjZiYmVj
MWY3MTc1OWUxMmJlOTU5MDE2ZTJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9pbmRleC5yc3QKKysr
IC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0KLWFkdmFuY2VkIHB5dGhvbiB0ZXN0aW5nCi09
PT09PT09PT09PT09PT09PT09PT09PQotCi1za2lwcGluZ18gYWR2YW5jZWQgc2tpcHBpbmcgZm9y
IHB5dGhvbiB0ZXN0IGZ1bmN0aW9ucywgY2xhc3NlcyBvciBtb2R1bGVzLgotCi1tYXJrXyBnZW5l
cmljIG1lY2hhbmlzbSBmb3IgbWFya2luZyBweXRob24gZnVuY3Rpb25zLgotCi1wZGJfIGludGVy
YWN0aXZlIGRlYnVnZ2luZyB3aXRoIHRoZSBQeXRob24gRGVidWdnZXIuCi0KLWZpZ2xlYWZfIChl
eHRlcm5hbCkgcmVwb3J0IHRlc3QgY292ZXJhZ2UgdXNpbmcgdGhlICdmaWdsZWFmJyBwYWNrYWdl
LgotCi1tb25rZXlwYXRjaF8gc2FmZWx5IHBhdGNoIG9iamVjdCBhdHRyaWJ1dGVzLCBkaWN0cyBh
bmQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgotCi1jb3ZlcmFnZV8gKGV4dGVybmFsKSBXcml0ZSBh
bmQgcmVwb3J0IGNvdmVyYWdlIGRhdGEgd2l0aCB0aGUgJ2NvdmVyYWdlJyBwYWNrYWdlLgotCi1j
b3ZfIChleHRlcm5hbCkgcHJvZHVjZSBjb2RlIGNvdmVyYWdlIHJlcG9ydHMgdXNpbmcgdGhlICdj
b3ZlcmFnZScgcGFja2FnZSwgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIGRpc3RyaWJ1dGVkIHRlc3Rp
bmcuCi0KLWNhcHR1cmVfIGNvbmZpZ3VyYWJsZSBwZXItdGVzdCBzdGRvdXQvc3RkZXJyIGNhcHR1
cmluZyBtZWNoYW5pc21zLgotCi1jYXB0dXJlbG9nXyAoZXh0ZXJuYWwpIGNhcHR1cmUgb3V0cHV0
IG9mIGxvZ2dpbmcgbW9kdWxlLgotCi1yZWN3YXJuXyBoZWxwZXJzIGZvciBhc3NlcnRpbmcgZGVw
cmVjYXRpb24gYW5kIG90aGVyIHdhcm5pbmdzLgotCi10bXBkaXJfIHByb3ZpZGUgdGVtcG9yYXJ5
IGRpcmVjdG9yaWVzIHRvIHRlc3QgZnVuY3Rpb25zLgotCi0KLWRpc3RyaWJ1dGVkIHRlc3Rpbmcs
IENJIGFuZCBkZXBsb3ltZW50Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotCi14ZGlzdF8gKGV4dGVybmFsKSBsb29wIG9uIGZhaWxpbmcgdGVzdHMsIGRpc3RyaWJ1dGUg
dGVzdCBydW5zIHRvIENQVXMgYW5kIGhvc3RzLgotCi1wYXN0ZWJpbl8gc3VibWl0IGZhaWx1cmUg
b3IgdGVzdCBzZXNzaW9uIGluZm9ybWF0aW9uIHRvIGEgcGFzdGViaW4gc2VydmljZS4KLQotanVu
aXR4bWxfIGxvZ2dpbmcgb2YgdGVzdCByZXN1bHRzIGluIEpVbml0LVhNTCBmb3JtYXQsIGZvciB1
c2Ugd2l0aCBIdWRzb24KLQotcmVzdWx0bG9nXyBub24teG1sIG1hY2hpbmUtcmVhZGFibGUgbG9n
Z2luZyBvZiB0ZXN0IHJlc3VsdHMuCi0KLWdlbnNjcmlwdF8gZ2VuZXJhdGUgc3RhbmRhbG9uZSB0
ZXN0IHNjcmlwdCB0byBiZSBkaXN0cmlidXRlZCBhbG9uZyB3aXRoIGFuIGFwcGxpY2F0aW9uLgot
Ci0KLXRlc3RpbmcgZG9tYWlucyBhbmQgY29udmVudGlvbnMgY29kZWNoZWNrZXJzCi09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1vZWpza2l0XyAoZXh0ZXJu
YWwpIHJ1biBqYXZhc2NyaXB0IHRlc3RzIGluIHJlYWwgbGlmZSBicm93c2VycwotCi1kamFuZ29f
IChleHRlcm5hbCkgZm9yIHRlc3RpbmcgZGphbmdvIGFwcGxpY2F0aW9ucwotCi11bml0dGVzdF8g
YXV0b21hdGljYWxseSBkaXNjb3ZlciBhbmQgcnVuIHRyYWRpdGlvbmFsICJ1bml0dGVzdC5weSIg
c3R5bGUgdGVzdHMuCi0KLW5vc2VfIG5vc2UtY29tcGF0aWJpbGl0eSBwbHVnaW46IGFsbG93IHRv
IHJ1biBub3NlIHRlc3Qgc3VpdGVzIG5hdGl2ZWx5LgotCi1kb2N0ZXN0XyBjb2xsZWN0IGFuZCBl
eGVjdXRlIGRvY3Rlc3RzIGZyb20gbW9kdWxlcyBhbmQgdGVzdCBmaWxlcy4KLQotcmVzdGRvY18g
cGVyZm9ybSBSZVNUIHN5bnRheCwgbG9jYWwgYW5kIHJlbW90ZSByZWZlcmVuY2UgdGVzdHMgb24g
LnJzdC8udHh0IGZpbGVzLgotCi0KLWludGVybmFsLCBkZWJ1Z2dpbmcsIGhlbHAgZnVuY3Rpb25h
bGl0eQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLWhlbHBjb25m
aWdfIHByb3ZpZGUgdmVyc2lvbiBpbmZvLCBjb25mdGVzdC9lbnZpcm9ubWVudCBjb25maWcgbmFt
ZXMuCi0KLXRlcm1pbmFsXyBJbXBsZW1lbnRzIHRlcm1pbmFsIHJlcG9ydGluZyBvZiB0aGUgZnVs
bCB0ZXN0aW5nIHByb2Nlc3MuCi0KLWhvb2tsb2dfIGxvZyBpbnZvY2F0aW9ucyBvZiBleHRlbnNp
b24gaG9va3MgdG8gYSBmaWxlLgotCi0KLS4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9saW5rcy5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vdGVzdC9wbHVnaW4vbGlua3MucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2ZGVjMmI0ODQ4YTY5ZTVlYjgwNTY4NTg5Y2MzZjk5ZTJkZGQyZTM0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L3BsdWdpbi9saW5rcy5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0uLiBf
YGhlbHBjb25maWdgOiBoZWxwY29uZmlnLmh0bWwKLS4uIF9gcHl0ZXN0X3JlY3dhcm4ucHlgOiBo
dHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9w
eXRlc3RfcmVjd2Fybi5weQotLi4gX2B1bml0dGVzdGA6IHVuaXR0ZXN0Lmh0bWwKLS4uIF9gcHl0
ZXN0X21vbmtleXBhdGNoLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsv
cmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X21vbmtleXBhdGNoLnB5Ci0uLiBfYHBhc3RlYmlu
YDogcGFzdGViaW4uaHRtbAotLi4gX2Bza2lwcGluZ2A6IHNraXBwaW5nLmh0bWwKLS4uIF9gcGx1
Z2luc2A6IGluZGV4Lmh0bWwKLS4uIF9gbWFya2A6IG1hcmsuaHRtbAotLi4gX2B0bXBkaXJgOiB0
bXBkaXIuaHRtbAotLi4gX2BweXRlc3RfZG9jdGVzdC5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3Jn
L2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9kb2N0ZXN0LnB5Ci0u
LiBfYGNhcHR1cmVgOiBjYXB0dXJlLmh0bWwKLS4uIF9gcHl0ZXN0X25vc2UucHlgOiBodHRwOi8v
Yml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3Rf
bm9zZS5weQotLi4gX2BweXRlc3RfcmVzdGRvYy5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hw
azQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9yZXN0ZG9jLnB5Ci0uLiBf
YHJlc3Rkb2NgOiByZXN0ZG9jLmh0bWwKLS4uIF9geGRpc3RgOiB4ZGlzdC5odG1sCi0uLiBfYHB5
dGVzdF9wYXN0ZWJpbi5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jh
dy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9wYXN0ZWJpbi5weQotLi4gX2BweXRlc3RfdG1wZGly
LnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19w
bHVnaW4vcHl0ZXN0X3RtcGRpci5weQotLi4gX2B0ZXJtaW5hbGA6IHRlcm1pbmFsLmh0bWwKLS4u
IF9gcHl0ZXN0X2hvb2tsb2cucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVu
ay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfaG9va2xvZy5weQotLi4gX2BjYXB0dXJlbG9n
YDogY2FwdHVyZWxvZy5odG1sCi0uLiBfYGp1bml0eG1sYDoganVuaXR4bWwuaHRtbAotLi4gX2Bw
eXRlc3Rfc2tpcHBpbmcucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9y
YXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3Rfc2tpcHBpbmcucHkKLS4uIF9gY2hlY2tvdXQgdGhl
IHB5dGVzdCBkZXZlbG9wbWVudCB2ZXJzaW9uYDogLi4vLi4vaW5zdGFsbC5odG1sI2NoZWNrb3V0
Ci0uLiBfYHB5dGVzdF9oZWxwY29uZmlnLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIv
cHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X2hlbHBjb25maWcucHkKLS4uIF9g
b2Vqc2tpdGA6IG9lanNraXQuaHRtbAotLi4gX2Bkb2N0ZXN0YDogZG9jdGVzdC5odG1sCi0uLiBf
YHB5dGVzdF9tYXJrLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3
LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X21hcmsucHkKLS4uIF9gZ2V0IGluIGNvbnRhY3RgOiAu
Li8uLi9jb250YWN0Lmh0bWwKLS4uIF9gcHl0ZXN0X2NhcHR1cmUucHlgOiBodHRwOi8vYml0YnVj
a2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfY2FwdHVy
ZS5weQotLi4gX2BmaWdsZWFmYDogZmlnbGVhZi5odG1sCi0uLiBfYGN1c3RvbWl6ZWA6IC4uL2N1
c3RvbWl6ZS5odG1sCi0uLiBfYGhvb2tsb2dgOiBob29rbG9nLmh0bWwKLS4uIF9gcHl0ZXN0X3Rl
cm1pbmFsLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40
L3B5L19wbHVnaW4vcHl0ZXN0X3Rlcm1pbmFsLnB5Ci0uLiBfYHJlY3dhcm5gOiByZWN3YXJuLmh0
bWwKLS4uIF9gcHl0ZXN0X3BkYi5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRy
dW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9wZGIucHkKLS4uIF9gbW9ua2V5cGF0Y2hg
OiBtb25rZXlwYXRjaC5odG1sCi0uLiBfYGNvdmVyYWdlYDogY292ZXJhZ2UuaHRtbAotLi4gX2By
ZXN1bHRsb2dgOiByZXN1bHRsb2cuaHRtbAotLi4gX2Bjb3ZgOiBjb3YuaHRtbAotLi4gX2BweXRl
c3RfanVuaXR4bWwucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcv
MS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfanVuaXR4bWwucHkKLS4uIF9gZGphbmdvYDogZGphbmdv
Lmh0bWwKLS4uIF9gcHl0ZXN0X3VuaXR0ZXN0LnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBr
NDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3VuaXR0ZXN0LnB5Ci0uLiBf
YG5vc2VgOiBub3NlLmh0bWwKLS4uIF9gcHl0ZXN0X3Jlc3VsdGxvZy5weWA6IGh0dHA6Ly9iaXRi
dWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9yZXN1
bHRsb2cucHkKLS4uIF9gcGRiYDogcGRiLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi90ZXN0L3BsdWdpbi9ub3NlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdp
bi9ub3NlLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVlYWU1ZmY2OTdmMDVh
MjI2NTFmOTZmMGE5YmUwY2UyMTA0ZTU5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbm9zZS5yc3QK
KysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0KLW5vc2UtY29tcGF0aWJpbGl0eSBwbHVn
aW46IGFsbG93IHRvIHJ1biBub3NlIHRlc3Qgc3VpdGVzIG5hdGl2ZWx5LgotPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0K
LQotLi4gY29udGVudHM6OgotICA6bG9jYWw6Ci0KLVRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIHBs
dWdpbiBmb3IgYWxsb3dpbmcgdG8gcnVuIHRlc3RzIHdyaXR0ZW4KLWluICdub3NldGVzdHMnIHN0
eWxlIHdpdGggYGBweXRlc3RgYC4KLQotVXNhZ2UKLS0tLS0tLS0tLS0tLS0KLQotdHlwZTo6Ci0K
LSAgICBweXRlc3QgICMgaW5zdGVhZCBvZiAnbm9zZXRlc3RzJwotCi1hbmQgeW91IHNob3VsZCBi
ZSBhYmxlIHRvIHJ1biBub3NlIHN0eWxlIHRlc3RzIGFuZCBhdCB0aGUgc2FtZQotdGltZSBjYW4g
bWFrZSBmdWxsIHVzZSBvZiBweXRlc3QncyBjYXBhYmlsaXRpZXMuCi0KLVN1cHBvcnRlZCBub3Nl
IElkaW9tcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0qIHNldHVwIGFuZCB0ZWFyZG93biBh
dCBtb2R1bGUvY2xhc3MvbWV0aG9kIGxldmVsCi0qIFNraXBUZXN0IGV4Y2VwdGlvbnMgYW5kIG1h
cmtlcnMKLSogc2V0dXAvdGVhcmRvd24gZGVjb3JhdG9ycwotKiB5aWVsZC1iYXNlZCB0ZXN0cyBh
bmQgdGhlaXIgc2V0dXAKLSogZ2VuZXJhbCB1c2FnZSBvZiBub3NlIHV0aWxpdGllcwotCi1VbnN1
cHBvcnRlZCBpZGlvbXMgLyBpc3N1ZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLQotLSBub3NlLXN0eWxlIGRvY3Rlc3RzIGFyZSBub3QgY29sbGVjdGVkIGFuZCBleGVjdXRl
ZCBjb3JyZWN0bHksCi0gIGFsc28gZml4dHVyZXMgZG9uJ3Qgd29yay4KLQotLSBubyBub3NlLWNv
bmZpZ3VyYXRpb24gaXMgcmVjb2duaXplZAotCi1JZiB5b3UgZmluZCBvdGhlciBpc3N1ZXMgb3Ig
aGF2ZSBzdWdnZXN0aW9ucyBwbGVhc2UgcnVuOjoKLQotICAgIHB5dGVzdCAtLXBhc3RlYmluPWFs
bAotCi1hbmQgc2VuZCB0aGUgcmVzdWx0aW5nIFVSTCB0byBhIGBgcHl0ZXN0YGAgY29udGFjdCBj
aGFubmVsLAotYXQgYmVzdCB0byB0aGUgbWFpbGluZyBsaXN0LgotCi1TdGFydCBpbXByb3Zpbmcg
dGhpcyBwbHVnaW4gaW4gMzAgc2Vjb25kcwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLQotCi0xLiBEb3dubG9hZCBgcHl0ZXN0X25vc2UucHlgXyBwbHVnaW4gc291
cmNlIGNvZGUKLTIuIHB1dCBpdCBzb21ld2hlcmUgYXMgYGBweXRlc3Rfbm9zZS5weWBgIGludG8g
eW91ciBpbXBvcnQgcGF0aAotMy4gYSBzdWJzZXF1ZW50IGBgcHl0ZXN0YGAgcnVuIHdpbGwgdXNl
IHlvdXIgbG9jYWwgdmVyc2lvbgotCi1DaGVja291dCBjdXN0b21pemVfLCBvdGhlciBwbHVnaW5z
XyBvciBgZ2V0IGluIGNvbnRhY3RgXy4KLQotLi4gaW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL29lanNraXQucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL29lanNraXQucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0OTk1YWExN2M3MmQ1Y2UwYjc5MTU0YTYyYzk3ZjBhMjEwZDIzYWRlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi90ZXN0L3BsdWdpbi9vZWpza2l0LnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAg
QEAKLXB5dGVzdF9vZWpza2l0IHBsdWdpbiAoRVhURVJOQUwpCi09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLQotVGhlIGBvZWpza2l0YF8gb2ZmZXJzIGEgYGBweXRl
c3RgYCBwbHVnaW4gZm9yIHJ1bm5pbmcgSmF2YXNjcmlwdCB0ZXN0cyBpbiBsaXZlIGJyb3dzZXJz
LiAgIFJ1bm5pbmcgaW5zaWRlIHRoZSBicm93c2VycyBjb21lcyB3aXRoIHNvbWUgc3BlZWQgY29z
dCwgb24gdGhlIG90aGVyIGhhbmQgaXQgbWVhbnMgZm9yIGV4YW1wbGUgdGhlIGNvZGUgaXMgdGVz
dGVkIGFnYWluc3QgdGhlIHJlYWwtd29yZCBET00gaW1wbGVtZW50YXRpb25zLgotVGhlIGFwcHJv
YWNoIGVuYWJsZXMgdG8gd3JpdGUgaW50ZWdyYXRpb24gdGVzdHMgc3VjaCB0aGF0IHRoZSBKYXZh
U2NyaXB0IGNvZGUgaXMgdGVzdGVkIGFnYWluc3Qgc2VydmVyLXNpZGUgUHl0aG9uIGNvZGUgbW9j
a2VkIGFzIG5lY2Vzc2FyeS4gQW55IHNlcnZlci1zaWRlIGZyYW1ld29yayB0aGF0IGNhbiBhbHJl
YWR5IGJlIGV4cG9zZWQgdGhyb3VnaCBXU0dJIChvciBmb3Igd2hpY2ggYSBzdWJzZXQgb2YgV1NH
SSBjYW4gYmUgd3JpdHRlbiB0byBhY2NvbW1vZGF0ZSB0aGUganNraXQgb3duIG5lZWRzKSBjYW4g
cGxheSBhbG9uZy4KLQotRm9yIG1vcmUgaW5mbyBhbmQgZG93bmxvYWQgcGxlYXNlIHZpc2l0IHRo
ZSBgb2Vqc2tpdCBQeVBJYF8gcGFnZS4KLQotLi4gX2BvZWpza2l0YDoKLS4uIF9gb2Vqc2tpdCBQ
eVBJYDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL29lanNraXQKLQotLi4gc291cmNlIGxp
bmsgJ2h0dHA6Ly9iaXRidWNrZXQub3JnL3BlZHJvbmlzL2pzLWluZnJhc3RydWN0dXJlL3NyYy90
aXAvcHl0ZXN0X2pzdGVzdHMucHknLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rl
c3QvcGx1Z2luL3Rlcm1pbmFsLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi90
ZXJtaW5hbC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwN2Q0ZjcyMTgzYTlh
Mjc2NzYzMzZjZDk4NGU2Zjc1ZWZhMzBhNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3Rlcm1pbmFs
LnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLQotSW1wbGVtZW50cyB0ZXJtaW5h
bCByZXBvcnRpbmcgb2YgdGhlIGZ1bGwgdGVzdGluZyBwcm9jZXNzLgotPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4uIGNvbnRl
bnRzOjoKLSAgOmxvY2FsOgotCi1UaGlzIGlzIGEgZ29vZCBzb3VyY2UgZm9yIGxvb2tpbmcgYXQg
dGhlIHZhcmlvdXMgcmVwb3J0aW5nIGhvb2tzLgotCi1jb21tYW5kIGxpbmUgb3B0aW9ucwotLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQotCi1gYC12LCAtLXZlcmJvc2VgYAotICAgIGluY3JlYXNlIHZl
cmJvc2l0eS4KLWBgLXIgY2hhcnNgYAotICAgIHNob3cgZXh0cmEgdGVzdCBzdW1tYXJ5IGluZm8g
YXMgc3BlY2lmaWVkIGJ5IGNoYXJzIChmKWFpbGVkLCAocylza2lwcGVkLCAoeClmYWlsZWQsIChY
KXBhc3NlZC4KLWBgLWwsIC0tc2hvd2xvY2Fsc2BgCi0gICAgc2hvdyBsb2NhbHMgaW4gdHJhY2Vi
YWNrcyAoZGlzYWJsZWQgYnkgZGVmYXVsdCkuCi1gYC0tdGI9c3R5bGVgYAotICAgIHRyYWNlYmFj
ayBwcmludCBtb2RlIChsb25nL3Nob3J0L2xpbmUvbm8pLgotYGAtLWZ1bGwtdHJhY2VgYAotICAg
IGRvbid0IGN1dCBhbnkgdHJhY2ViYWNrcyAoZGVmYXVsdCBpcyB0byBjdXQpLgotYGAtLWZpeHR1
cmVzYGAKLSAgICBzaG93IGF2YWlsYWJsZSBmdW5jdGlvbiBhcmd1bWVudHMsIHNvcnRlZCBieSBw
bHVnaW4KLQotU3RhcnQgaW1wcm92aW5nIHRoaXMgcGx1Z2luIGluIDMwIHNlY29uZHMKLT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLQotMS4gRG93bmxvYWQgYHB5
dGVzdF90ZXJtaW5hbC5weWBfIHBsdWdpbiBzb3VyY2UgY29kZQotMi4gcHV0IGl0IHNvbWV3aGVy
ZSBhcyBgYHB5dGVzdF90ZXJtaW5hbC5weWBgIGludG8geW91ciBpbXBvcnQgcGF0aAotMy4gYSBz
dWJzZXF1ZW50IGBgcHl0ZXN0YGAgcnVuIHdpbGwgdXNlIHlvdXIgbG9jYWwgdmVyc2lvbgotCi1D
aGVja291dCBjdXN0b21pemVfLCBvdGhlciBwbHVnaW5zXyBvciBgZ2V0IGluIGNvbnRhY3RgXy4K
LQotLi4gaW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3Rlc3QvcGx1Z2luL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1
Z2luL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTA2NzE3
ZDRkM2Y2MmNjOTdiMTUzMTUxNTFiMDdmODRkZDE4ZGQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3YucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3Rlc3QvcGx1Z2luL2NvdmVyYWdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdp
bi9kamFuZ28ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2ZpZ2xlYWYucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2hlbHBjb25maWcucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2luZGV4LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L3BsdWdpbi9saW5rcy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbm9z
ZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vb2Vqc2tpdC5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdGVybWluYWwucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Rlc3QvcGx1Z2luL3hkaXN0LnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3Rlc3QvcGx1Z2luL3hkaXN0LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi94
ZGlzdC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwNmQyNDBhZWUxM2M3ZGQz
MTljOTMzMTNjZjNlOGVmNGUyNjUyMTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3hkaXN0LnJzdAor
KysgL2Rldi9udWxsCkBAIC0xLDE3MiArMCwwIEBACi0KLWxvb3Agb24gZmFpbGluZyB0ZXN0cywg
ZGlzdHJpYnV0ZSB0ZXN0IHJ1bnMgdG8gQ1BVcyBhbmQgaG9zdHMuCi09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4uIGNv
bnRlbnRzOjoKLSAgOmxvY2FsOgotCi1UaGUgYHB5dGVzdC14ZGlzdGBfIHBsdWdpbiBleHRlbmRz
IGBgcHl0ZXN0YGAgd2l0aCBzb21lIHVuaXF1ZQotdGVzdCBleGVjdXRpb24gbW9kZXM6Ci0KLSog
TG9vcG9uZmFpbDogcnVuIHlvdXIgdGVzdHMgcmVwZWF0ZWRseSBpbiBhIHN1YnByb2Nlc3MuICBB
ZnRlciBlYWNoIHJ1bgotICBgYHB5dGVzdGBgIHdhaXRzIHVudGlsIGEgZmlsZSBpbiB5b3VyIHBy
b2plY3QgY2hhbmdlcyBhbmQgdGhlbiByZS1ydW5zIHRoZQotICBwcmV2aW91c2x5IGZhaWxpbmcg
dGVzdHMuICBUaGlzIGlzIHJlcGVhdGVkIHVudGlsIGFsbCB0ZXN0cyBwYXNzIGFmdGVyIHdoaWNo
Ci0gIGFnYWluIGEgZnVsbCBydW4gaXMgcGVyZm9ybWVkLgotCi0qIExvYWQtYmFsYW5jaW5nOiBp
ZiB5b3UgaGF2ZSBtdWx0aXBsZSBDUFVzIG9yIGhvc3RzIHlvdSBjYW4gdXNlCi0gIHRob3NlIGZv
ciBhIGNvbWJpbmVkIHRlc3QgcnVuLiAgVGhpcyBhbGxvd3MgdG8gc3BlZWQgdXAKLSAgZGV2ZWxv
cG1lbnQgb3IgdG8gdXNlIHNwZWNpYWwgcmVzb3VyY2VzIG9mIHJlbW90ZSBtYWNoaW5lcy4KLQot
KiBNdWx0aS1QbGF0Zm9ybSBjb3ZlcmFnZTogeW91IGNhbiBzcGVjaWZ5IGRpZmZlcmVudCBQeXRo
b24gaW50ZXJwcmV0ZXJzCi0gIG9yIGRpZmZlcmVudCBwbGF0Zm9ybXMgYW5kIHJ1biB0ZXN0cyBp
biBwYXJhbGxlbCBvbiBhbGwgb2YgdGhlbS4KLQotQmVmb3JlIHJ1bm5pbmcgdGVzdHMgcmVtb3Rl
bHksIGBgcHl0ZXN0YGAgZWZmaWNpZW50bHkgc3luY2hyb25pemVzIHlvdXIKLXByb2dyYW0gc291
cmNlIGNvZGUgdG8gdGhlIHJlbW90ZSBwbGFjZS4gIEFsbCB0ZXN0IHJlc3VsdHMKLWFyZSByZXBv
cnRlZCBiYWNrIGFuZCBkaXNwbGF5ZWQgdG8geW91ciBsb2NhbCB0ZXN0IHNlc3Npb24uCi1Zb3Ug
bWF5IHNwZWNpZnkgZGlmZmVyZW50IFB5dGhvbiB2ZXJzaW9ucyBhbmQgaW50ZXJwcmV0ZXJzLgot
Ci0uLiBfYHB5dGVzdC14ZGlzdGA6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weXRlc3Qt
eGRpc3QKLQotVXNhZ2UgZXhhbXBsZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1TcGVlZCB1
cCB0ZXN0IHJ1bnMgYnkgc2VuZGluZyB0ZXN0cyB0byBtdWx0aXBsZSBDUFVzCi0rKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotCi1UbyBz
ZW5kIHRlc3RzIHRvIG11bHRpcGxlIENQVXMsIHR5cGU6OgotCi0gICAgcHl0ZXN0IC1uIE5VTQot
Ci1Fc3BlY2lhbGx5IGZvciBsb25nZXIgcnVubmluZyB0ZXN0cyBvciB0ZXN0cyByZXF1aXJpbmcK
LWEgbG90IG9mIElPIHRoaXMgY2FuIGxlYWQgdG8gY29uc2lkZXJhYmxlIHNwZWVkIHVwcy4KLQot
Ci1SdW5uaW5nIHRlc3RzIGluIGEgUHl0aG9uIHN1YnByb2Nlc3MKLSsrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0KLVRvIGluc3RhbnRp
YXRlIGEgcHl0aG9uMi40IHN1YiBwcm9jZXNzIGFuZCBzZW5kIHRlc3RzIHRvIGl0LCB5b3UgbWF5
IHR5cGU6OgotCi0gICAgcHl0ZXN0IC1kIC0tdHggcG9wZW4vL3B5dGhvbj1weXRob24yLjQKLQot
VGhpcyB3aWxsIHN0YXJ0IGEgc3VicHJvY2VzcyB3aGljaCBpcyBydW4gd2l0aCB0aGUgInB5dGhv
bjIuNCIKLVB5dGhvbiBpbnRlcnByZXRlciwgZm91bmQgaW4geW91ciBzeXN0ZW0gYmluYXJ5IGxv
b2t1cCBwYXRoLgotCi1JZiB5b3UgcHJlZml4IHRoZSAtLXR4IG9wdGlvbiB2YWx1ZSBsaWtlIHRo
aXM6OgotCi0gICAgLS10eCAzKnBvcGVuLy9weXRob249cHl0aG9uMi40Ci0KLXRoZW4gdGhyZWUg
c3VicHJvY2Vzc2VzIHdvdWxkIGJlIGNyZWF0ZWQgYW5kIHRlc3RzCi13aWxsIGJlIGxvYWQtYmFs
YW5jZWQgYWNyb3NzIHRoZXNlIHRocmVlIHByb2Nlc3Nlcy4KLQotCi1TZW5kaW5nIHRlc3RzIHRv
IHJlbW90ZSBTU0ggYWNjb3VudHMKLSsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrCi0KLVN1cHBvc2UgeW91IGhhdmUgYSBwYWNrYWdlIGBg
bXlwa2dgYCB3aGljaCBjb250YWlucyBzb21lCi10ZXN0cyB0aGF0IHlvdSBjYW4gc3VjY2Vzc2Z1
bGx5IHJ1biBsb2NhbGx5LiBBbmQgeW91Ci1oYXZlIGEgc3NoLXJlYWNoYWJsZSBtYWNoaW5lIGBg
bXlob3N0YGAuICBUaGVuCi15b3UgY2FuIGFkLWhvYyBkaXN0cmlidXRlIHlvdXIgdGVzdHMgYnkg
dHlwaW5nOjoKLQotICAgIHB5dGVzdCAtZCAtLXR4IHNzaD1teWhvc3Rwb3BlbiAtLXJzeW5jZGly
IG15cGtnIG15cGtnCi0KLVRoaXMgd2lsbCBzeW5jaHJvbml6ZSB5b3VyIGBgbXlwa2dgYCBwYWNr
YWdlIGRpcmVjdG9yeQotdG8gYSByZW1vdGUgc3NoIGFjY291bnQgYW5kIHRoZW4gbG9jYWxseSBj
b2xsZWN0IHRlc3RzCi1hbmQgc2VuZCB0aGVtIHRvIHJlbW90ZSBwbGFjZXMgZm9yIGV4ZWN1dGlv
bi4KLQotWW91IGNhbiBzcGVjaWZ5IG11bHRpcGxlIGBgLS1yc3luY2RpcmBgIGRpcmVjdG9yaWVz
Ci10byBiZSBzZW50IHRvIHRoZSByZW1vdGUgc2lkZS4KLQotKipOT1RFOioqIEZvciBgYHB5dGVz
dGBgIHRvIGNvbGxlY3QgYW5kIHNlbmQgdGVzdHMgY29ycmVjdGx5Ci15b3Ugbm90IG9ubHkgbmVl
ZCB0byBtYWtlIHN1cmUgYWxsIGNvZGUgYW5kIHRlc3RzCi1kaXJlY3RvcmllcyBhcmUgcnN5bmNl
ZCwgYnV0IHRoYXQgYW55IHRlc3QgKHN1YikgZGlyZWN0b3J5Ci1hbHNvIGhhcyBhbiBgYF9faW5p
dF9fLnB5YGAgZmlsZSBiZWNhdXNlIGludGVybmFsbHkKLWBgcHl0ZXN0YGAgcmVmZXJlbmNlcyB0
ZXN0cyB1c2luZyB0aGVpciBmdWxseSBxdWFsaWZpZWQgcHl0aG9uCi1tb2R1bGUgcGF0aC4gICoq
WW91IHdpbGwgb3RoZXJ3aXNlIGdldCBzdHJhbmdlIGVycm9ycyoqCi1kdXJpbmcgc2V0dXAgb2Yg
dGhlIHJlbW90ZSBzaWRlLgotCi1TZW5kaW5nIHRlc3RzIHRvIHJlbW90ZSBTb2NrZXQgU2VydmVy
cwotKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKLQotRG93bmxvYWQgdGhlIHNpbmdsZS1tb2R1bGUgYHNvY2tldHNlcnZlci5weWBfIFB5
dGhvbiBwcm9ncmFtCi1hbmQgcnVuIGl0IGxpa2UgdGhpczo6Ci0KLSAgICBweXRob24gc29ja2V0
c2VydmVyLnB5Ci0KLUl0IHdpbGwgdGVsbCB5b3UgdGhhdCBpdCBzdGFydHMgbGlzdGVuaW5nIG9u
IHRoZSBkZWZhdWx0Ci1wb3J0LiAgWW91IGNhbiBub3cgb24geW91ciBob21lIG1hY2hpbmUgc3Bl
Y2lmeSB0aGlzCi1uZXcgc29ja2V0IGhvc3Qgd2l0aCBzb21ldGhpbmcgbGlrZSB0aGlzOjoKLQot
ICAgIHB5dGVzdCAtZCAtLXR4IHNvY2tldD0xOTIuMTY4LjEuMTAyOjg4ODggLS1yc3luY2RpciBt
eXBrZyBteXBrZwotCi0KLS4uIF9gYXRvbmNlYDoKLQotUnVubmluZyB0ZXN0cyBvbiBtYW55IHBs
YXRmb3JtcyBhdCBvbmNlCi0rKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwotCi1UaGUgYmFzaWMgY29tbWFuZCB0byBydW4gdGVzdHMgb24g
bXVsdGlwbGUgcGxhdGZvcm1zIGlzOjoKLQotICAgIHB5dGVzdCAtLWRpc3Q9ZWFjaCAtLXR4PXNw
ZWMxIC0tdHg9c3BlYzIKLQotSWYgeW91IHNwZWNpZnkgYSB3aW5kb3dzIGhvc3QsIGFuIE9TWCBo
b3N0IGFuZCBhIExpbnV4Ci1lbnZpcm9ubWVudCB0aGlzIGNvbW1hbmQgd2lsbCBzZW5kIGVhY2gg
dGVzdHMgdG8gYWxsCi1wbGF0Zm9ybXMgLSBhbmQgcmVwb3J0IGJhY2sgZmFpbHVyZXMgZnJvbSBh
bGwgcGxhdGZvcm1zCi1hdCBvbmNlLiAgIFRoZSBzcGVjaWZpY2F0aW9ucyBzdHJpbmdzIHVzZSB0
aGUgYHhzcGVjIHN5bnRheGBfLgotCi0uLiBfYHhzcGVjIHN5bnRheGA6IGh0dHA6Ly9jb2Rlc3Bl
YWsubmV0L2V4ZWNuZXQvdHJ1bmsvYmFzaWNzLmh0bWwjeHNwZWMKLQotLi4gX2Bzb2NrZXRzZXJ2
ZXIucHlgOiBodHRwOi8vY29kZXNwZWFrLm5ldC9zdm4vcHkvZGlzdC9weS9leGVjbmV0L3Njcmlw
dC9zb2NrZXRzZXJ2ZXIucHkKLQotLi4gX2BleGVjbmV0YDogaHR0cDovL2NvZGVzcGVhay5uZXQv
ZXhlY25ldAotCi1TcGVjaWZ5aW5nIHRlc3QgZXhlYyBlbnZpcm9ubWVudHMgaW4gYSBjb25mdGVz
dC5weQotKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysKLQotSW5zdGVhZCBvZiBzcGVjaWZ5aW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLCB5
b3UgY2FuCi1wdXQgb3B0aW9ucyB2YWx1ZXMgaW4gYSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSBsaWtl
IHRoaXM6OgotCi0gICAgb3B0aW9uX3R4ID0gWydzc2g9bXlob3N0Ly9weXRob249cHl0aG9uMi43
JywgJ3BvcGVuLy9weXRob249cHl0aG9uMi43J10KLSAgICBvcHRpb25fZGlzdCA9IFRydWUKLQot
QW55IGNvbW1hbmRsaW5lIGBgLS10eGBgIHNwZWNpZmljYXRpb25zICB3aWxsIGFkZCB0byB0aGUg
bGlzdCBvZgotYXZhaWxhYmxlIGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMuCi0KLVNwZWNpZnlpbmcg
InJzeW5jIiBkaXJzIGluIGEgY29uZnRlc3QucHkKLSsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0KLUluIHlvdXIgYGBteXBrZy9jb25m
dGVzdC5weWBgIHlvdSBtYXkgc3BlY2lmeSBkaXJlY3RvcmllcyB0byBzeW5jaHJvbmlzZQotb3Ig
dG8gZXhjbHVkZTo6Ci0KLSAgICByc3luY2RpcnMgPSBbJy4nLCAnLi4vcGx1Z2lucyddCi0gICAg
cnN5bmNpZ25vcmUgPSBbJ19jYWNoZSddCi0KLVRoZXNlIGRpcmVjdG9yeSBzcGVjaWZpY2F0aW9u
cyBhcmUgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeQotd2hlcmUgdGhlIGBgY29uZnRlc3QucHlg
YCBpcyBmb3VuZC4KLQotY29tbWFuZCBsaW5lIG9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0KLQotYGAtZiwgLS1sb29wb25mYWlsYGAKLSAgICBydW4gdGVzdHMgaW4gc3VicHJvY2Vzcywg
d2FpdCBmb3IgbW9kaWZpZWQgZmlsZXMgYW5kIHJlLXJ1biBmYWlsaW5nIHRlc3Qgc2V0IHVudGls
IGFsbCBwYXNzLgotYGAtbiBudW1wcm9jZXNzZXNgYAotICAgIHNob3J0Y3V0IGZvciAnLS1kaXN0
PWxvYWQgLS10eD1OVU0qcG9wZW4nCi1gYC0tYm94ZWRgYAotICAgIGJveCBlYWNoIHRlc3QgcnVu
IGluIGEgc2VwYXJhdGUgcHJvY2VzcyAodW5peCkKLWBgLS1kaXN0PWRpc3Rtb2RlYGAKLSAgICBz
ZXQgbW9kZSBmb3IgZGlzdHJpYnV0aW5nIHRlc3RzIHRvIGV4ZWMgZW52aXJvbm1lbnRzLgotCi0g
ICAgZWFjaDogc2VuZCBlYWNoIHRlc3QgdG8gZWFjaCBhdmFpbGFibGUgZW52aXJvbm1lbnQuCi0K
LSAgICBsb2FkOiBzZW5kIGVhY2ggdGVzdCB0byBvbmUgYXZhaWxhYmxlIGVudmlyb25tZW50IHNv
IGl0IGlzIHJ1biBvbmx5IG9uY2UuCi0KLSAgICAoZGVmYXVsdCkgbm86IHJ1biB0ZXN0cyBpbnBy
b2Nlc3MsIGRvbid0IGRpc3RyaWJ1dGUuCi1gYC0tdHg9eHNwZWNgYAotICAgIGFkZCBhIHRlc3Qg
ZXhlY3V0aW9uIGVudmlyb25tZW50LiBzb21lIGV4YW1wbGVzOiAtLXR4IHBvcGVuLy9weXRob249
cHl0aG9uMi43IC0tdHggc29ja2V0PTE5Mi4xNjguMS4xMDI6ODg4OCAtLXR4IHNzaD11c2VyQGNv
ZGVzcGVhay5uZXQvL2NoZGlyPXRlc3RjYWNoZQotYGAtZGBgCi0gICAgbG9hZC1iYWxhbmNlIHRl
c3RzLiAgc2hvcnRjdXQgZm9yICctLWRpc3Q9bG9hZCcKLWBgLS1yc3luY2Rpcj1kaXIxYGAKLSAg
ICBhZGQgZGlyZWN0b3J5IGZvciByc3luY2luZyB0byByZW1vdGUgdHggbm9kZXMuCi0KLS4uIGlu
Y2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Rl
c3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Rlc3QuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggN2QwMGY3MThhNjc3MjRjZjBhZjkwNTQ4NGMxOGNjNmI1ZWIyNTAz
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdGVzdC90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBA
Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIg
Y29udGVudD0iIDEgOyBVUkw9aW5kZXguaHRtbCIgLz4KLSAgICA8L2hlYWQ+Ci0KLSAgICA8Ym9k
eT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLXZhciBnYUpzSG9zdCA9ICgoImh0
dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wpID8gImh0dHBzOi8vc3NsLiIgOiAi
aHR0cDovL3d3dy4iKTsKLWRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCIlM0NzY3JpcHQgc3JjPSci
ICsgZ2FKc0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMnIHR5cGU9J3RleHQvamF2
YXNjcmlwdCclM0UlM0Mvc2NyaXB0JTNFIikpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+Ci10cnkgewotdmFyIHBhZ2VUcmFja2VyID0gX2dhdC5fZ2V0VHJhY2tl
cigiVUEtNzU5NzI3NC0zIik7Ci1wYWdlVHJhY2tlci5fdHJhY2tQYWdldmlldygpOwotfSBjYXRj
aChlcnIpIHt9PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0gICAgCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWI5
M2Y1ZjdjZmEwZTI3MGI2Y2Q1NTJiN2ExNjlhNzM3Yjk5MmY2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3Rlc3QvYXR0aWMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvY29u
ZmlnLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vdGVzdC9leHRlbmQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2luZGV4
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L21pc3Npb24ucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvdGVzdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGlk
ZWxpZnQucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RpZGVsaWZ0LnJzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MjhiZjIyMTkwNWQ0OGMxZjkwNmRjNzlmZmEwOTdjMjBkNTQ0ZTEyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RpZGVsaWZ0LnJzdApAQCAtMCwwICsxLDQgQEAKKworCisK
Ky4uIGluY2x1ZGU6OiAuLi8uLi9USURFTElGVC5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90bXBkaXIucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RtcGRpci5yc3QKaW5kZXgg
NDIxYjRjODk4YzVhZTE5MjYwNzIwNzM3ZTU2M2I0ZDlkNzBhNTBkOS4uMzMwMDExYmIzNDgyN2Zj
ZDk2OWU0NzdiMjU0MjY4ODkwODBkYTEwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3RtcGRpci5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RtcGRpci5yc3QKQEAgLTUsNiAr
NSw4MyBAQAogVGVtcG9yYXJ5IGRpcmVjdG9yaWVzIGFuZCBmaWxlcwogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKK1RoZSBgYHRtcF9wYXRoYGAgZml4
dHVyZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworCisKK1lvdSBjYW4gdXNlIHRoZSBg
YHRtcF9wYXRoYGAgZml4dHVyZSB3aGljaCB3aWxsCitwcm92aWRlIGEgdGVtcG9yYXJ5IGRpcmVj
dG9yeSB1bmlxdWUgdG8gdGhlIHRlc3QgaW52b2NhdGlvbiwKK2NyZWF0ZWQgaW4gdGhlIGBiYXNl
IHRlbXBvcmFyeSBkaXJlY3RvcnlgXy4KKworYGB0bXBfcGF0aGBgIGlzIGEgYGBwYXRobGliL3Bh
dGhsaWIyLlBhdGhgYCBvYmplY3QuIEhlcmUgaXMgYW4gZXhhbXBsZSB0ZXN0IHVzYWdlOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF90bXBfcGF0aC5w
eQorICAgIGltcG9ydCBvcworCisgICAgQ09OVEVOVCA9IHUiY29udGVudCIKKworCisgICAgZGVm
IHRlc3RfY3JlYXRlX2ZpbGUodG1wX3BhdGgpOgorICAgICAgICBkID0gdG1wX3BhdGggLyAic3Vi
IgorICAgICAgICBkLm1rZGlyKCkKKyAgICAgICAgcCA9IGQgLyAiaGVsbG8udHh0IgorICAgICAg
ICBwLndyaXRlX3RleHQoQ09OVEVOVCkKKyAgICAgICAgYXNzZXJ0IHAucmVhZF90ZXh0KCkgPT0g
Q09OVEVOVAorICAgICAgICBhc3NlcnQgbGVuKGxpc3QodG1wX3BhdGguaXRlcmRpcigpKSkgPT0g
MQorICAgICAgICBhc3NlcnQgMAorCitSdW5uaW5nIHRoaXMgd291bGQgcmVzdWx0IGluIGEgcGFz
c2VkIHRlc3QgZXhjZXB0IGZvciB0aGUgbGFzdAorYGBhc3NlcnQgMGBgIGxpbmUgd2hpY2ggd2Ug
dXNlIHRvIGxvb2sgYXQgdmFsdWVzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CisKKyAgICAk
IHB5dGVzdCB0ZXN0X3RtcF9wYXRoLnB5CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09
IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBs
YXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1
Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAg
ICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVjdGVkIDEgaXRlbQorCisgICAg
dGVzdF90bXBfcGF0aC5weSBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWzEwMCVdCisKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9jcmVhdGVfZmlsZSBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fXworCisgICAgdG1wX3BhdGggPSBQb3NpeFBhdGgoJ1BZVEVTVF9UTVBESVIv
dGVzdF9jcmVhdGVfZmlsZTAnKQorCisgICAgICAgIGRlZiB0ZXN0X2NyZWF0ZV9maWxlKHRtcF9w
YXRoKToKKyAgICAgICAgICAgIGQgPSB0bXBfcGF0aCAvICJzdWIiCisgICAgICAgICAgICBkLm1r
ZGlyKCkKKyAgICAgICAgICAgIHAgPSBkIC8gImhlbGxvLnR4dCIKKyAgICAgICAgICAgIHAud3Jp
dGVfdGV4dChDT05URU5UKQorICAgICAgICAgICAgYXNzZXJ0IHAucmVhZF90ZXh0KCkgPT0gQ09O
VEVOVAorICAgICAgICAgICAgYXNzZXJ0IGxlbihsaXN0KHRtcF9wYXRoLml0ZXJkaXIoKSkpID09
IDEKKyAgICA+ICAgICAgIGFzc2VydCAwCisgICAgRSAgICAgICBhc3NlcnQgMAorCisgICAgdGVz
dF90bXBfcGF0aC5weToxMzogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09
PT09PT09IDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09
CisKKy4uIF9gdG1wX3BhdGhfZmFjdG9yeSBleGFtcGxlYDoKKworVGhlIGBgdG1wX3BhdGhfZmFj
dG9yeWBgIGZpeHR1cmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworCisK
K1RoZSBgYHRtcF9wYXRoX2ZhY3RvcnlgYCBpcyBhIHNlc3Npb24tc2NvcGVkIGZpeHR1cmUgd2hp
Y2ggY2FuIGJlIHVzZWQKK3RvIGNyZWF0ZSBhcmJpdHJhcnkgdGVtcG9yYXJ5IGRpcmVjdG9yaWVz
IGZyb20gYW55IG90aGVyIGZpeHR1cmUgb3IgdGVzdC4KKworSXQgaXMgaW50ZW5kZWQgdG8gcmVw
bGFjZSBgYHRtcGRpcl9mYWN0b3J5YGAsIGFuZCByZXR1cm5zIDpjbGFzczpgcGF0aGxpYi5QYXRo
YCBpbnN0YW5jZXMuCisKK1NlZSA6cmVmOmB0bXBfcGF0aF9mYWN0b3J5IEFQSSA8dG1wX3BhdGhf
ZmFjdG9yeSBmYWN0b3J5IGFwaT5gIGZvciBkZXRhaWxzLgorCisKIFRoZSAndG1wZGlyJyBmaXh0
dXJlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0yNSwxMiArMTAyLDE1IEBAIGFuZCBtb3Jl
LiAgSGVyZSBpcyBhbiBleGFtcGxlIHRlc3QgdXNhZ2U6OgogICAgICAgICBhc3NlcnQgMAogCiBS
dW5uaW5nIHRoaXMgd291bGQgcmVzdWx0IGluIGEgcGFzc2VkIHRlc3QgZXhjZXB0IGZvciB0aGUg
bGFzdAotYGBhc3NlcnQgMGBgIGxpbmUgd2hpY2ggd2UgdXNlIHRvIGxvb2sgYXQgdmFsdWVzOjoK
K2BgYXNzZXJ0IDBgYCBsaW5lIHdoaWNoIHdlIHVzZSB0byBsb29rIGF0IHZhbHVlczoKKworLi4g
Y29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgdGVzdF90bXBkaXIucHkKICAgICA9
PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBw
eXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5E
T0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwg
cHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRI
T05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAg
ICAgY29sbGVjdGVkIDEgaXRlbQogCiAgICAgdGVzdF90bXBkaXIucHkgRiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC01Niw3ICsx
MzYsNyBAQCBSdW5uaW5nIHRoaXMgd291bGQgcmVzdWx0IGluIGEgcGFzc2VkIHRlc3QgZXhjZXB0
IGZvciB0aGUgbGFzdAogVGhlICd0bXBkaXJfZmFjdG9yeScgZml4dHVyZQogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAyLjgKKwogCiBUaGUgYGB0bXBk
aXJfZmFjdG9yeWBgIGlzIGEgc2Vzc2lvbi1zY29wZWQgZml4dHVyZSB3aGljaCBjYW4gYmUgdXNl
ZAogdG8gY3JlYXRlIGFyYml0cmFyeSB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgZnJvbSBhbnkgb3Ro
ZXIgZml4dHVyZSBvciB0ZXN0LgpAQCAtOTgsNyArMTc4LDkgQEAgdGhlIHN5c3RlbSB0ZW1wb3Jh
cnkgZGlyZWN0b3J5LiAgVGhlIGJhc2UgbmFtZSB3aWxsIGJlIGBgcHl0ZXN0LU5VTWBgIHdoZXJl
CiBgYE5VTWBgIHdpbGwgYmUgaW5jcmVtZW50ZWQgd2l0aCBlYWNoIHRlc3QgcnVuLiAgTW9yZW92
ZXIsIGVudHJpZXMgb2xkZXIKIHRoYW4gMyB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgd2lsbCBiZSBy
ZW1vdmVkLgogCi1Zb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHRlbXBvcmFyeSBkaXJlY3Rv
cnkgc2V0dGluZyBsaWtlIHRoaXM6OgorWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB0ZW1w
b3JhcnkgZGlyZWN0b3J5IHNldHRpbmcgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogYmFz
aAogCiAgICAgcHl0ZXN0IC0tYmFzZXRlbXA9bXlkaXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3VuaXR0ZXN0LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi91bml0dGVzdC5yc3QK
aW5kZXggNTMxOTJiMzQ2OWQzZmNlMGEzYWNkOGQ2YjAyMzgyOTE3NjFhODIzMC4uMDU2MzJhZWY0
YjI1Y2E1ZWJmYjI5Y2YyMGNjNmQzMmVkZGYwM2JmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3VuaXR0ZXN0LnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdW5pdHRlc3QucnN0
CkBAIC0yMiwxNiArMjIsMTUgQEAgQWxtb3N0IGFsbCBgYHVuaXR0ZXN0YGAgZmVhdHVyZXMgYXJl
IHN1cHBvcnRlZDoKIAogKiBgYEB1bml0dGVzdC5za2lwYGAgc3R5bGUgZGVjb3JhdG9yczsKICog
YGBzZXRVcC90ZWFyRG93bmBgOwotKiBgYHNldFVwQ2xhc3MvdGVhckRvd25DbGFzcygpYGA7Cisq
IGBgc2V0VXBDbGFzcy90ZWFyRG93bkNsYXNzYGA7CisqIGBgc2V0VXBNb2R1bGUvdGVhckRvd25N
b2R1bGVgYDsKIAogLi4gX2Bsb2FkX3Rlc3RzIHByb3RvY29sYDogaHR0cHM6Ly9kb2NzLnB5dGhv
bi5vcmcvMy9saWJyYXJ5L3VuaXR0ZXN0Lmh0bWwjbG9hZC10ZXN0cy1wcm90b2NvbAotLi4gX2Bz
ZXRVcE1vZHVsZS90ZWFyRG93bk1vZHVsZWA6IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGli
cmFyeS91bml0dGVzdC5odG1sI3NldHVwbW9kdWxlLWFuZC10ZWFyZG93bm1vZHVsZQogLi4gX2Bz
dWJ0ZXN0c2A6IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS91bml0dGVzdC5odG1s
I2Rpc3Rpbmd1aXNoaW5nLXRlc3QtaXRlcmF0aW9ucy11c2luZy1zdWJ0ZXN0cwogCiBVcCB0byB0
aGlzIHBvaW50IHB5dGVzdCBkb2VzIG5vdCBoYXZlIHN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcg
ZmVhdHVyZXM6CiAKICogYGxvYWRfdGVzdHMgcHJvdG9jb2xgXzsKLSogYHNldFVwTW9kdWxlL3Rl
YXJEb3duTW9kdWxlYF87CiAqIGBzdWJ0ZXN0c2BfOwogCiBCZW5lZml0cyBvdXQgb2YgdGhlIGJv
eApAQCAtMTIzLDEyICsxMjIsMTUgQEAgZml4dHVyZSBkZWZpbml0aW9uOjoKIFRoZSBgYEBweXRl
c3QubWFyay51c2VmaXh0dXJlcygiZGJfY2xhc3MiKWBgIGNsYXNzLWRlY29yYXRvciBtYWtlcyBz
dXJlIHRoYXQKIHRoZSBweXRlc3QgZml4dHVyZSBmdW5jdGlvbiBgYGRiX2NsYXNzYGAgaXMgY2Fs
bGVkIG9uY2UgcGVyIGNsYXNzLgogRHVlIHRvIHRoZSBkZWxpYmVyYXRlbHkgZmFpbGluZyBhc3Nl
cnQgc3RhdGVtZW50cywgd2UgY2FuIHRha2UgYSBsb29rIGF0Ci10aGUgYGBzZWxmLmRiYGAgdmFs
dWVzIGluIHRoZSB0cmFjZWJhY2s6OgordGhlIGBgc2VsZi5kYmBgIHZhbHVlcyBpbiB0aGUgdHJh
Y2ViYWNrOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCB0ZXN0X3Vu
aXR0ZXN0X2RiLnB5CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lv
biBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4
IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0g
ICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51
eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQor
ICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAyIGl0ZW1zCiAKICAgICB0ZXN0X3VuaXR0
ZXN0X2RiLnB5IEZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbMTAwJV0KQEAgLTIwMCw3ICsyMDIsOSBAQCB1c2VkIGZvciBhbGwgbWV0aG9kcyBvZiB0aGUg
Y2xhc3Mgd2hlcmUgaXQgaXMgZGVmaW5lZC4gIFRoaXMgaXMgYQogc2hvcnRjdXQgZm9yIHVzaW5n
IGEgYGBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoImluaXRkaXIiKWBgIG1hcmtlcgogb24gdGhl
IGNsYXNzIGxpa2UgaW4gdGhlIHByZXZpb3VzIGV4YW1wbGUuCiAKLVJ1bm5pbmcgdGhpcyB0ZXN0
IG1vZHVsZSAuLi46OgorUnVubmluZyB0aGlzIHRlc3QgbW9kdWxlIC4uLjoKKworLi4gY29kZS1i
bG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXEgdGVzdF91bml0dGVzdF9jbGVhbmRpci5w
eQogICAgIC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsxMDAlXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3VzYWdlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi91c2FnZS5yc3QKaW5kZXggMjViZTU0Mzk1
YWY3YjM5OWU4MDk5ZWQzZjI3NmNmOTM4OTcyODMxMC4uYWNmNzM2ZjIxMWUxMjFhNTJiZGE3YWJk
ZmJiMzIzYTg1ODNjMTNkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3VzYWdlLnJz
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdXNhZ2UucnN0CkBAIC0xMCw5ICsxMCwxMSBAQCBV
c2FnZSBhbmQgSW52b2NhdGlvbnMKIENhbGxpbmcgcHl0ZXN0IHRocm91Z2ggYGBweXRob24gLW0g
cHl0ZXN0YGAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLS4uIHZlcnNpb25hZGRlZDo6IDIuMAogCi1Zb3UgY2FuIGludm9rZSB0ZXN0aW5n
IHRocm91Z2ggdGhlIFB5dGhvbiBpbnRlcnByZXRlciBmcm9tIHRoZSBjb21tYW5kIGxpbmU6Ogor
CitZb3UgY2FuIGludm9rZSB0ZXN0aW5nIHRocm91Z2ggdGhlIFB5dGhvbiBpbnRlcnByZXRlciBm
cm9tIHRoZSBjb21tYW5kIGxpbmU6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CiAKICAgICBweXRo
b24gLW0gcHl0ZXN0IFsuLi5dCiAKQEAgLTM0LDcgKzM2LDcgQEAgUnVubmluZyBgYHB5dGVzdGBg
IGNhbiByZXN1bHQgaW4gc2l4IGRpZmZlcmVudCBleGl0IGNvZGVzOgogR2V0dGluZyBoZWxwIG9u
IHZlcnNpb24sIG9wdGlvbiBuYW1lcywgZW52aXJvbm1lbnQgdmFyaWFibGVzCiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi06
OgorLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVzdCAtLXZlcnNpb24gICAjIHNob3dz
IHdoZXJlIHB5dGVzdCB3YXMgaW1wb3J0ZWQgZnJvbQogICAgIHB5dGVzdCAtLWZpeHR1cmVzICAj
IHNob3cgYXZhaWxhYmxlIGJ1aWx0aW4gZnVuY3Rpb24gYXJndW1lbnRzCkBAIC00Niw3ICs0OCw5
IEBAIEdldHRpbmcgaGVscCBvbiB2ZXJzaW9uLCBvcHRpb24gbmFtZXMsIGVudmlyb25tZW50IHZh
cmlhYmxlcwogU3RvcHBpbmcgYWZ0ZXIgdGhlIGZpcnN0IChvciBOKSBmYWlsdXJlcwogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVRvIHN0b3Ag
dGhlIHRlc3RpbmcgcHJvY2VzcyBhZnRlciB0aGUgZmlyc3QgKE4pIGZhaWx1cmVzOjoKK1RvIHN0
b3AgdGhlIHRlc3RpbmcgcHJvY2VzcyBhZnRlciB0aGUgZmlyc3QgKE4pIGZhaWx1cmVzOgorCisu
LiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC14ICAgICAgICAgICAgIyBzdG9wIGFm
dGVyIGZpcnN0IGZhaWx1cmUKICAgICBweXRlc3QgLS1tYXhmYWlsPTIgICAgIyBzdG9wIGFmdGVy
IHR3byBmYWlsdXJlcwpAQCAtNjAsMTkgKzY0LDE5IEBAIFB5dGVzdCBzdXBwb3J0cyBzZXZlcmFs
IHdheXMgdG8gcnVuIGFuZCBzZWxlY3QgdGVzdHMgZnJvbSB0aGUgY29tbWFuZC1saW5lLgogCiAq
KlJ1biB0ZXN0cyBpbiBhIG1vZHVsZSoqCiAKLTo6CisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAg
ICAgcHl0ZXN0IHRlc3RfbW9kLnB5CiAKICoqUnVuIHRlc3RzIGluIGEgZGlyZWN0b3J5KioKIAot
OjoKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgdGVzdGluZy8KIAogKipSdW4g
dGVzdHMgYnkga2V5d29yZCBleHByZXNzaW9ucyoqCiAKLTo6CisuLiBjb2RlLWJsb2NrOjogYmFz
aAogCiAgICAgcHl0ZXN0IC1rICJNeUNsYXNzIGFuZCBub3QgbWV0aG9kIgogCkBAIC04NywxOCAr
OTEsMjIgQEAgVGhlIGV4YW1wbGUgYWJvdmUgd2lsbCBydW4gYGBUZXN0TXlDbGFzcy50ZXN0X3Nv
bWV0aGluZ2BgICBidXQgbm90IGBgVGVzdE15Q2xhc3MKIEVhY2ggY29sbGVjdGVkIHRlc3QgaXMg
YXNzaWduZWQgYSB1bmlxdWUgYGBub2RlaWRgYCB3aGljaCBjb25zaXN0IG9mIHRoZSBtb2R1bGUg
ZmlsZW5hbWUgZm9sbG93ZWQKIGJ5IHNwZWNpZmllcnMgbGlrZSBjbGFzcyBuYW1lcywgZnVuY3Rp
b24gbmFtZXMgYW5kIHBhcmFtZXRlcnMgZnJvbSBwYXJhbWV0cml6YXRpb24sIHNlcGFyYXRlZCBi
eSBgYDo6YGAgY2hhcmFjdGVycy4KIAotVG8gcnVuIGEgc3BlY2lmaWMgdGVzdCB3aXRoaW4gYSBt
b2R1bGU6OgorVG8gcnVuIGEgc3BlY2lmaWMgdGVzdCB3aXRoaW4gYSBtb2R1bGU6CisKKy4uIGNv
ZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgdGVzdF9tb2QucHk6OnRlc3RfZnVuYwogCiAK
LUFub3RoZXIgZXhhbXBsZSBzcGVjaWZ5aW5nIGEgdGVzdCBtZXRob2QgaW4gdGhlIGNvbW1hbmQg
bGluZTo6CitBbm90aGVyIGV4YW1wbGUgc3BlY2lmeWluZyBhIHRlc3QgbWV0aG9kIGluIHRoZSBj
b21tYW5kIGxpbmU6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgdGVzdF9t
b2QucHk6OlRlc3RDbGFzczo6dGVzdF9tZXRob2QKIAogKipSdW4gdGVzdHMgYnkgbWFya2VyIGV4
cHJlc3Npb25zKioKIAotOjoKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLW0g
c2xvdwogCkBAIC0xMDgsNyArMTE2LDcgQEAgRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIDpyZWY6
YG1hcmtzIDxtYXJrPmAuCiAKICoqUnVuIHRlc3RzIGZyb20gcGFja2FnZXMqKgogCi06OgorLi4g
Y29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVzdCAtLXB5YXJncyBwa2cudGVzdGluZwogCkBA
IC0xMTgsNyArMTI2LDkgQEAgVGhpcyB3aWxsIGltcG9ydCBgYHBrZy50ZXN0aW5nYGAgYW5kIHVz
ZSBpdHMgZmlsZXN5c3RlbSBsb2NhdGlvbiB0byBmaW5kIGFuZCBydW4KIE1vZGlmeWluZyBQeXRo
b24gdHJhY2ViYWNrIHByaW50aW5nCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKLUV4YW1wbGVzIGZvciBtb2RpZnlpbmcgdHJhY2ViYWNrIHByaW50aW5n
OjoKK0V4YW1wbGVzIGZvciBtb2RpZnlpbmcgdHJhY2ViYWNrIHByaW50aW5nOgorCisuLiBjb2Rl
LWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC0tc2hvd2xvY2FscyAjIHNob3cgbG9jYWwgdmFy
aWFibGVzIGluIHRyYWNlYmFja3MKICAgICBweXRlc3QgLWwgICAgICAgICAgICMgc2hvdyBsb2Nh
bCB2YXJpYWJsZXMgKHNob3J0Y3V0KQpAQCAtMTQwLDYgKzE1MCwxODAgQEAgd2lsbCBiZSBzaG93
biAoYmVjYXVzZSBLZXlib2FyZEludGVycnVwdCBpcyBjYXVnaHQgYnkgcHl0ZXN0KS4gQnkgdXNp
bmcgdGhpcwogb3B0aW9uIHlvdSBtYWtlIHN1cmUgYSB0cmFjZSBpcyBzaG93bi4KIAogCisuLiBf
YHB5dGVzdC5kZXRhaWxlZF9mYWlsZWRfdGVzdHNfdXNhZ2VgOgorCitEZXRhaWxlZCBzdW1tYXJ5
IHJlcG9ydAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisKK1RoZSBgYC1yYGAgZmxhZyBj
YW4gYmUgdXNlZCB0byBkaXNwbGF5IGEgInNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvIiBhdCB0aGUg
ZW5kIG9mIHRoZSB0ZXN0IHNlc3Npb24sCittYWtpbmcgaXQgZWFzeSBpbiBsYXJnZSB0ZXN0IHN1
aXRlcyB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGFsbCBmYWlsdXJlcywgc2tpcHMsIHhmYWls
cywgZXRjLgorCitFeGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNv
bnRlbnQgb2YgdGVzdF9leGFtcGxlLnB5CisgICAgaW1wb3J0IHB5dGVzdAorCisKKyAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICBkZWYgZXJyb3JfZml4dHVyZSgpOgorICAgICAgICBhc3NlcnQgMAor
CisKKyAgICBkZWYgdGVzdF9vaygpOgorICAgICAgICBwcmludCgib2siKQorCisKKyAgICBkZWYg
dGVzdF9mYWlsKCk6CisgICAgICAgIGFzc2VydCAwCisKKworICAgIGRlZiB0ZXN0X2Vycm9yKGVy
cm9yX2ZpeHR1cmUpOgorICAgICAgICBwYXNzCisKKworICAgIGRlZiB0ZXN0X3NraXAoKToKKyAg
ICAgICAgcHl0ZXN0LnNraXAoInNraXBwaW5nIHRoaXMgdGVzdCIpCisKKworICAgIGRlZiB0ZXN0
X3hmYWlsKCk6CisgICAgICAgIHB5dGVzdC54ZmFpbCgieGZhaWxpbmcgdGhpcyB0ZXN0IikKKwor
CisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0iYWx3YXlzIHhmYWlsIikKKyAgICBkZWYg
dGVzdF94cGFzcygpOgorICAgICAgICBwYXNzCisKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAor
CisgICAgJCBweXRlc3QgLXJhCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qg
c2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3Jt
IGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAu
eC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290
ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVjdGVkIDYgaXRlbXMKKworICAgIHRlc3Rf
ZXhhbXBsZS5weSAuRkVzeFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsxMDAlXQorCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBF
UlJPUlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIF9fX19fX19fX19f
X19fX19fX19fX19fIEVSUk9SIGF0IHNldHVwIG9mIHRlc3RfZXJyb3IgX19fX19fX19fX19fX19f
X19fX19fX18KKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGVycm9yX2Zp
eHR1cmUoKToKKyAgICA+ICAgICAgIGFzc2VydCAwCisgICAgRSAgICAgICBhc3NlcnQgMAorCisg
ICAgdGVzdF9leGFtcGxlLnB5OjY6IEFzc2VydGlvbkVycm9yCisgICAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZmFpbCBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKworICAgICAgICBkZWYgdGVzdF9mYWlsKCk6
CisgICAgPiAgICAgICBhc3NlcnQgMAorICAgIEUgICAgICAgYXNzZXJ0IDAKKworICAgIHRlc3Rf
ZXhhbXBsZS5weToxNDogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09
PT09IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvID09PT09PT09PT09PT09PT09PT09PT09PT09Cisg
ICAgU0tJUFBFRCBbMV0gJFJFR0VORE9DX1RNUERJUi90ZXN0X2V4YW1wbGUucHk6MjM6IHNraXBw
aW5nIHRoaXMgdGVzdAorICAgIFhGQUlMIHRlc3RfZXhhbXBsZS5weTo6dGVzdF94ZmFpbAorICAg
ICAgcmVhc29uOiB4ZmFpbGluZyB0aGlzIHRlc3QKKyAgICBYUEFTUyB0ZXN0X2V4YW1wbGUucHk6
OnRlc3RfeHBhc3MgYWx3YXlzIHhmYWlsCisgICAgRVJST1IgdGVzdF9leGFtcGxlLnB5Ojp0ZXN0
X2Vycm9yIC0gYXNzZXJ0IDAKKyAgICBGQUlMRUQgdGVzdF9leGFtcGxlLnB5Ojp0ZXN0X2ZhaWwg
LSBhc3NlcnQgMAorICAgID0gMSBmYWlsZWQsIDEgcGFzc2VkLCAxIHNraXBwZWQsIDEgeGZhaWxl
ZCwgMSB4cGFzc2VkLCAxIGVycm9yIGluIDAuMTIgc2Vjb25kcyA9CisKK1RoZSBgYC1yYGAgb3B0
aW9ucyBhY2NlcHRzIGEgbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWZ0ZXIgaXQsIHdpdGggYGBhYGAg
dXNlZAorYWJvdmUgbWVhbmluZyAiYWxsIGV4Y2VwdCBwYXNzZXMiLgorCitIZXJlIGlzIHRoZSBm
dWxsIGxpc3Qgb2YgYXZhaWxhYmxlIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUgdXNlZDoKKworIC0g
YGBmYGAgLSBmYWlsZWQKKyAtIGBgRWBgIC0gZXJyb3IKKyAtIGBgc2BgIC0gc2tpcHBlZAorIC0g
YGB4YGAgLSB4ZmFpbGVkCisgLSBgYFhgYCAtIHhwYXNzZWQKKyAtIGBgcGBgIC0gcGFzc2VkCisg
LSBgYFBgYCAtIHBhc3NlZCB3aXRoIG91dHB1dAorIC0gYGBhYGAgLSBhbGwgZXhjZXB0IGBgcFBg
YAorIC0gYGBBYGAgLSBhbGwKKworTW9yZSB0aGFuIG9uZSBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQs
IHNvIGZvciBleGFtcGxlIHRvIG9ubHkgc2VlIGZhaWxlZCBhbmQgc2tpcHBlZCB0ZXN0cywgeW91
IGNhbiBleGVjdXRlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CisKKyAgICAkIHB5dGVzdCAt
cmZzCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhv
biAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVk
aXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0Nf
VE1QRElSCisgICAgY29sbGVjdGVkIDYgaXRlbXMKKworICAgIHRlc3RfZXhhbXBsZS5weSAuRkVz
eFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQor
CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFUlJPUlMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fIEVS
Uk9SIGF0IHNldHVwIG9mIHRlc3RfZXJyb3IgX19fX19fX19fX19fX19fX19fX19fX18KKworICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGVycm9yX2ZpeHR1cmUoKToKKyAgICA+
ICAgICAgIGFzc2VydCAwCisgICAgRSAgICAgICBhc3NlcnQgMAorCisgICAgdGVzdF9leGFtcGxl
LnB5OjY6IEFzc2VydGlvbkVycm9yCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZmFpbCBfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KKworICAgICAgICBkZWYgdGVzdF9mYWlsKCk6CisgICAgPiAgICAgICBh
c3NlcnQgMAorICAgIEUgICAgICAgYXNzZXJ0IDAKKworICAgIHRlc3RfZXhhbXBsZS5weToxNDog
QXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IHNob3J0IHRlc3Qg
c3VtbWFyeSBpbmZvID09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgRkFJTEVEIHRlc3Rf
ZXhhbXBsZS5weTo6dGVzdF9mYWlsIC0gYXNzZXJ0IDAKKyAgICBTS0lQUEVEIFsxXSAkUkVHRU5E
T0NfVE1QRElSL3Rlc3RfZXhhbXBsZS5weToyMzogc2tpcHBpbmcgdGhpcyB0ZXN0CisgICAgPSAx
IGZhaWxlZCwgMSBwYXNzZWQsIDEgc2tpcHBlZCwgMSB4ZmFpbGVkLCAxIHhwYXNzZWQsIDEgZXJy
b3IgaW4gMC4xMiBzZWNvbmRzID0KKworVXNpbmcgYGBwYGAgbGlzdHMgdGhlIHBhc3NpbmcgdGVz
dHMsIHdoaWxzdCBgYFBgYCBhZGRzIGFuIGV4dHJhIHNlY3Rpb24gIlBBU1NFUyIgd2l0aCB0aG9z
ZSB0ZXN0cyB0aGF0IHBhc3NlZCBidXQgaGFkCitjYXB0dXJlZCBvdXRwdXQ6CisKKy4uIGNvZGUt
YmxvY2s6OiBweXRlc3QKKworICAgICQgcHl0ZXN0IC1ycFAKKyAgICA9PT09PT09PT09PT09PT09
PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5
LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVz
dF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKKyAgICBjb2xsZWN0ZWQgNiBp
dGVtcworCisgICAgdGVzdF9leGFtcGxlLnB5IC5GRXN4WCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisKKyAgICA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09IEVSUk9SUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisgICAgX19fX19fX19fX19fX19fX19fX19fX18gRVJST1IgYXQgc2V0dXAgb2YgdGVzdF9lcnJv
ciBfX19fX19fX19fX19fX19fX19fX19fXworCisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICBkZWYgZXJyb3JfZml4dHVyZSgpOgorICAgID4gICAgICAgYXNzZXJ0IDAKKyAgICBFICAg
ICAgIGFzc2VydCAwCisKKyAgICB0ZXN0X2V4YW1wbGUucHk6NjogQXNzZXJ0aW9uRXJyb3IKKyAg
ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18gdGVzdF9mYWlsIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworCisgICAgICAg
IGRlZiB0ZXN0X2ZhaWwoKToKKyAgICA+ICAgICAgIGFzc2VydCAwCisgICAgRSAgICAgICBhc3Nl
cnQgMAorCisgICAgdGVzdF9leGFtcGxlLnB5OjE0OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUEFTU0VTID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVz
dF9vayBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIENhcHR1cmVkIHN0ZG91dCBjYWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorICAgIG9rCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9ydCB0ZXN0
IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIFBBU1NFRCB0ZXN0
X2V4YW1wbGUucHk6OnRlc3Rfb2sKKyAgICA9IDEgZmFpbGVkLCAxIHBhc3NlZCwgMSBza2lwcGVk
LCAxIHhmYWlsZWQsIDEgeHBhc3NlZCwgMSBlcnJvciBpbiAwLjEyIHNlY29uZHMgPQorCiAuLiBf
cGRiLW9wdGlvbjoKIAogRHJvcHBpbmcgdG8gUERCXyAoUHl0aG9uIERlYnVnZ2VyKSBvbiBmYWls
dXJlcwpAQCAtMTQ4LDEzICszMzIsMTcgQEAgRHJvcHBpbmcgdG8gUERCXyAoUHl0aG9uIERlYnVn
Z2VyKSBvbiBmYWlsdXJlcwogLi4gX1BEQjogaHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5
L3BkYi5odG1sCiAKIFB5dGhvbiBjb21lcyB3aXRoIGEgYnVpbHRpbiBQeXRob24gZGVidWdnZXIg
Y2FsbGVkIFBEQl8uICBgYHB5dGVzdGBgCi1hbGxvd3Mgb25lIHRvIGRyb3AgaW50byB0aGUgUERC
XyBwcm9tcHQgdmlhIGEgY29tbWFuZCBsaW5lIG9wdGlvbjo6CithbGxvd3Mgb25lIHRvIGRyb3Ag
aW50byB0aGUgUERCXyBwcm9tcHQgdmlhIGEgY29tbWFuZCBsaW5lIG9wdGlvbjoKKworLi4gY29k
ZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVzdCAtLXBkYgogCiBUaGlzIHdpbGwgaW52b2tlIHRo
ZSBQeXRob24gZGVidWdnZXIgb24gZXZlcnkgZmFpbHVyZSAob3IgS2V5Ym9hcmRJbnRlcnJ1cHQp
LgogT2Z0ZW4geW91IG1pZ2h0IG9ubHkgd2FudCB0byBkbyB0aGlzIGZvciB0aGUgZmlyc3QgZmFp
bGluZyB0ZXN0IHRvIHVuZGVyc3RhbmQKLWEgY2VydGFpbiBmYWlsdXJlIHNpdHVhdGlvbjo6Cith
IGNlcnRhaW4gZmFpbHVyZSBzaXR1YXRpb246CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAg
ICBweXRlc3QgLXggLS1wZGIgICAjIGRyb3AgdG8gUERCIG9uIGZpcnN0IGZhaWx1cmUsIHRoZW4g
ZW5kIHRlc3Qgc2Vzc2lvbgogICAgIHB5dGVzdCAtLXBkYiAtLW1heGZhaWw9MyAgIyBkcm9wIHRv
IFBEQiBmb3IgZmlyc3QgdGhyZWUgZmFpbHVyZXMKQEAgLTE3MSw2ICszNTksMjAgQEAgZm9yIGV4
YW1wbGU6OgogICAgID4+PiBzeXMubGFzdF92YWx1ZQogICAgIEFzc2VydGlvbkVycm9yKCdhc3Nl
cnQgcmVzdWx0ID09ICJvayInLCkKIAorLi4gX3RyYWNlLW9wdGlvbjoKKworRHJvcHBpbmcgdG8g
UERCXyAoUHl0aG9uIERlYnVnZ2VyKSBhdCB0aGUgc3RhcnQgb2YgYSB0ZXN0CistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworYGBw
eXRlc3RgYCBhbGxvd3Mgb25lIHRvIGRyb3AgaW50byB0aGUgUERCXyBwcm9tcHQgaW1tZWRpYXRl
bHkgYXQgdGhlIHN0YXJ0IG9mIGVhY2ggdGVzdCB2aWEgYSBjb21tYW5kIGxpbmUgb3B0aW9uOgor
CisuLiBjb2RlLWJsb2NrOjogYmFzaAorCisgICAgcHl0ZXN0IC0tdHJhY2UKKworVGhpcyB3aWxs
IGludm9rZSB0aGUgUHl0aG9uIGRlYnVnZ2VyIGF0IHRoZSBzdGFydCBvZiBldmVyeSB0ZXN0Lgor
CiAuLiBfYnJlYWtwb2ludHM6CiAKIFNldHRpbmcgYnJlYWtwb2ludHMKQEAgLTE4NCwxMCArMzg2
LDggQEAgaW4geW91ciBjb2RlIGFuZCBweXRlc3QgYXV0b21hdGljYWxseSBkaXNhYmxlcyBpdHMg
b3V0cHV0IGNhcHR1cmUgZm9yIHRoYXQgdGVzdDoKICogT3V0cHV0IGNhcHR1cmUgaW4gb3RoZXIg
dGVzdHMgaXMgbm90IGFmZmVjdGVkLgogKiBBbnkgcHJpb3IgdGVzdCBvdXRwdXQgdGhhdCBoYXMg
YWxyZWFkeSBiZWVuIGNhcHR1cmVkIGFuZCB3aWxsIGJlIHByb2Nlc3NlZCBhcwogICBzdWNoLgot
KiBBbnkgbGF0ZXIgb3V0cHV0IHByb2R1Y2VkIHdpdGhpbiB0aGUgc2FtZSB0ZXN0IHdpbGwgbm90
IGJlIGNhcHR1cmVkIGFuZCB3aWxsCi0gIGluc3RlYWQgZ2V0IHNlbnQgZGlyZWN0bHkgdG8gYGBz
eXMuc3Rkb3V0YGAuIE5vdGUgdGhhdCB0aGlzIGhvbGRzIHRydWUgZXZlbgotICBmb3IgdGVzdCBv
dXRwdXQgb2NjdXJyaW5nIGFmdGVyIHlvdSBleGl0IHRoZSBpbnRlcmFjdGl2ZSBQREJfIHRyYWNp
bmcgc2Vzc2lvbgotICBhbmQgY29udGludWUgd2l0aCB0aGUgcmVndWxhciB0ZXN0IHJ1bi4KKyog
T3V0cHV0IGNhcHR1cmUgZ2V0cyByZXN1bWVkIHdoZW4gZW5kaW5nIHRoZSBkZWJ1Z2dlciBzZXNz
aW9uICh2aWEgdGhlCisgIGBgY29udGludWVgYCBjb21tYW5kKS4KIAogCiAuLiBfYGJyZWFrcG9p
bnQtYnVpbHRpbmA6CkBAIC0yMDAsOCArNDAwLDggQEAgUHl0ZXN0IHN1cHBvcnRzIHRoZSB1c2Ug
b2YgYGBicmVha3BvaW50KClgYCB3aXRoIHRoZSBmb2xsb3dpbmcgYmVoYXZpb3VyczoKIAogIC0g
V2hlbiBgYGJyZWFrcG9pbnQoKWBgIGlzIGNhbGxlZCBhbmQgYGBQWVRIT05CUkVBS1BPSU5UYGAg
aXMgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlLCBweXRlc3Qgd2lsbCB1c2UgdGhlIGN1c3RvbSBp
bnRlcm5hbCBQREIgdHJhY2UgVUkgaW5zdGVhZCBvZiB0aGUgc3lzdGVtIGRlZmF1bHQgYGBQZGJg
YC4KICAtIFdoZW4gdGVzdHMgYXJlIGNvbXBsZXRlLCB0aGUgc3lzdGVtIHdpbGwgZGVmYXVsdCBi
YWNrIHRvIHRoZSBzeXN0ZW0gYGBQZGJgYCB0cmFjZSBVSS4KLSAtIElmIGBgLS1wZGJgYCBpcyBj
YWxsZWQgb24gZXhlY3V0aW9uIG9mIHB5dGVzdCwgdGhlIGN1c3RvbSBpbnRlcm5hbCBQZGIgdHJh
Y2UgVUkgaXMgdXNlZCBvbiBgYGJvdGhicmVha3BvaW50KClgYCBhbmQgZmFpbGVkIHRlc3RzL3Vu
aGFuZGxlZCBleGNlcHRpb25zLgotIC0gSWYgYGAtLXBkYmNsc2BgIGlzIHVzZWQsIHRoZSBjdXN0
b20gY2xhc3MgZGVidWdnZXIgd2lsbCBiZSBleGVjdXRlZCB3aGVuIGEgdGVzdCBmYWlscyAoYXMg
ZXhwZWN0ZWQgd2l0aGluIGV4aXN0aW5nIGJlaGF2aW91ciksIGJ1dCBhbHNvIHdoZW4gYGBicmVh
a3BvaW50KClgYCBpcyBjYWxsZWQgZnJvbSB3aXRoaW4gYSB0ZXN0LCB0aGUgY3VzdG9tIGNsYXNz
IGRlYnVnZ2VyIHdpbGwgYmUgaW5zdGFudGlhdGVkLgorIC0gV2l0aCBgYC0tcGRiYGAgcGFzc2Vk
IHRvIHB5dGVzdCwgdGhlIGN1c3RvbSBpbnRlcm5hbCBQZGIgdHJhY2UgVUkgaXMgdXNlZCB3aXRo
IGJvdGggYGBicmVha3BvaW50KClgYCBhbmQgZmFpbGVkIHRlc3RzL3VuaGFuZGxlZCBleGNlcHRp
b25zLgorIC0gYGAtLXBkYmNsc2BgIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBjdXN0b20gZGVi
dWdnZXIgY2xhc3MuCiAKIC4uIF9kdXJhdGlvbnM6CiAKQEAgLTIxMCwyMiArNDEwLDI3IEBAIFBy
b2ZpbGluZyB0ZXN0IGV4ZWN1dGlvbiBkdXJhdGlvbgogCiAuLiB2ZXJzaW9uYWRkZWQ6IDIuMgog
Ci1UbyBnZXQgYSBsaXN0IG9mIHRoZSBzbG93ZXN0IDEwIHRlc3QgZHVyYXRpb25zOjoKK1RvIGdl
dCBhIGxpc3Qgb2YgdGhlIHNsb3dlc3QgMTAgdGVzdCBkdXJhdGlvbnM6CisKKy4uIGNvZGUtYmxv
Y2s6OiBiYXNoCiAKICAgICBweXRlc3QgLS1kdXJhdGlvbnM9MTAKIAorQnkgZGVmYXVsdCwgcHl0
ZXN0IHdpbGwgbm90IHNob3cgdGVzdCBkdXJhdGlvbnMgdGhhdCBhcmUgdG9vIHNtYWxsICg8MC4w
MXMpIHVubGVzcyBgYC12dmBgIGlzIHBhc3NlZCBvbiB0aGUgY29tbWFuZC1saW5lLgogCiBDcmVh
dGluZyBKVW5pdFhNTCBmb3JtYXQgZmlsZXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVG8gY3JlYXRlIHJlc3VsdCBmaWxlcyB3aGljaCBj
YW4gYmUgcmVhZCBieSBKZW5raW5zXyBvciBvdGhlciBDb250aW51b3VzCi1pbnRlZ3JhdGlvbiBz
ZXJ2ZXJzLCB1c2UgdGhpcyBpbnZvY2F0aW9uOjoKK2ludGVncmF0aW9uIHNlcnZlcnMsIHVzZSB0
aGlzIGludm9jYXRpb246CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLS1q
dW5pdHhtbD1wYXRoCiAKIHRvIGNyZWF0ZSBhbiBYTUwgZmlsZSBhdCBgYHBhdGhgYC4KIAotLi4g
dmVyc2lvbmFkZGVkOjogMy4xCisKIAogVG8gc2V0IHRoZSBuYW1lIG9mIHRoZSByb290IHRlc3Qg
c3VpdGUgeG1sIGl0ZW0sIHlvdSBjYW4gY29uZmlndXJlIHRoZSBgYGp1bml0X3N1aXRlX25hbWVg
YCBvcHRpb24gaW4geW91ciBjb25maWcgZmlsZToKIApAQCAtMjM0LDE4ICs0MzksMjUgQEAgVG8g
c2V0IHRoZSBuYW1lIG9mIHRoZSByb290IHRlc3Qgc3VpdGUgeG1sIGl0ZW0sIHlvdSBjYW4gY29u
ZmlndXJlIHRoZSBgYGp1bml0X3MKICAgICBbcHl0ZXN0XQogICAgIGp1bml0X3N1aXRlX25hbWUg
PSBteV9zdWl0ZQogCisuLiB2ZXJzaW9uYWRkZWQ6OiA0LjAKKworSlVuaXQgWE1MIHNwZWNpZmlj
YXRpb24gc2VlbXMgdG8gaW5kaWNhdGUgdGhhdCBgYCJ0aW1lImBgIGF0dHJpYnV0ZQorc2hvdWxk
IHJlcG9ydCB0b3RhbCB0ZXN0IGV4ZWN1dGlvbiB0aW1lcywgaW5jbHVkaW5nIHNldHVwIGFuZCB0
ZWFyZG93bgorKGAxIDxodHRwOi8vd2luZHlyb2FkLmNvbS5hdS9kbC9PcGVuJTIwU291cmNlL0pV
bml0LnhzZD5gXywgYDIKKzxodHRwczovL3d3dy5pYm0uY29tL3N1cHBvcnQva25vd2xlZGdlY2Vu
dGVyL2VuL1NTUTJSMl8xNC4xLjAvY29tLmlibS5yc2FyLmFuYWx5c2lzLmNvZGVyZXZpZXcuY29i
b2wuZG9jL3RvcGljcy9jYWNfdXNlcmVzdWx0c19qdW5pdC5odG1sPmBfKS4KK0l0IGlzIHRoZSBk
ZWZhdWx0IHB5dGVzdCBiZWhhdmlvci4gVG8gcmVwb3J0IGp1c3QgY2FsbCBkdXJhdGlvbnMKK2lu
c3RlYWQsIGNvbmZpZ3VyZSB0aGUgYGBqdW5pdF9kdXJhdGlvbl9yZXBvcnRgYCBvcHRpb24gbGlr
ZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICBbcHl0ZXN0XQorICAgIGp1bml0
X2R1cmF0aW9uX3JlcG9ydCA9IGNhbGwKKwogLi4gX3JlY29yZF9wcm9wZXJ0eSBleGFtcGxlOgog
CiByZWNvcmRfcHJvcGVydHkKIF5eXl5eXl5eXl5eXl5eXgogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAy
LjgKLS4uIHZlcnNpb25jaGFuZ2VkOjogMy41Ci0KLSAgIEZpeHR1cmUgcmVuYW1lZCBmcm9tIGBg
cmVjb3JkX3htbF9wcm9wZXJ0eWBgIHRvIGBgcmVjb3JkX3Byb3BlcnR5YGAgYXMgdXNlcgotICAg
cHJvcGVydGllcyBhcmUgbm93IGF2YWlsYWJsZSB0byBhbGwgcmVwb3J0ZXJzLgotICAgYGByZWNv
cmRfeG1sX3Byb3BlcnR5YGAgaXMgbm93IGRlcHJlY2F0ZWQuCi0KIElmIHlvdSB3YW50IHRvIGxv
ZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBhIHRlc3QsIHlvdSBjYW4gdXNlIHRoZQogYGBy
ZWNvcmRfcHJvcGVydHlgYCBmaXh0dXJlOgogCkBAIC0zMDMsMTUgKzUxNSwxMyBAQCBXaWxsIHJl
c3VsdCBpbjoKIAogLi4gd2FybmluZzo6CiAKLSAgICBgYHJlY29yZF9wcm9wZXJ0eWBgIGlzIGFu
IGV4cGVyaW1lbnRhbCBmZWF0dXJlIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuCi0KLSAg
ICBBbHNvIHBsZWFzZSBub3RlIHRoYXQgdXNpbmcgdGhpcyBmZWF0dXJlIHdpbGwgYnJlYWsgYW55
IHNjaGVtYSB2ZXJpZmljYXRpb24uCisgICAgUGxlYXNlIG5vdGUgdGhhdCB1c2luZyB0aGlzIGZl
YXR1cmUgd2lsbCBicmVhayBzY2hlbWEgdmVyaWZpY2F0aW9ucyBmb3IgdGhlIGxhdGVzdCBKVW5p
dFhNTCBzY2hlbWEuCiAgICAgVGhpcyBtaWdodCBiZSBhIHByb2JsZW0gd2hlbiB1c2VkIHdpdGgg
c29tZSBDSSBzZXJ2ZXJzLgogCiByZWNvcmRfeG1sX2F0dHJpYnV0ZQogXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl4KIAotLi4gdmVyc2lvbmFkZGVkOjogMy40CisKIAogVG8gYWRkIGFu
IGFkZGl0aW9uYWwgeG1sIGF0dHJpYnV0ZSB0byBhIHRlc3RjYXNlIGVsZW1lbnQsIHlvdSBjYW4g
dXNlCiBgYHJlY29yZF94bWxfYXR0cmlidXRlYGAgZml4dHVyZS4gVGhpcyBjYW4gYWxzbyBiZSB1
c2VkIHRvIG92ZXJyaWRlIGV4aXN0aW5nIHZhbHVlczoKQEAgLTM2OCw0MyArNTc4LDQ1IEBAIElu
c3RlYWQsIHRoaXMgd2lsbCBhZGQgYW4gYXR0cmlidXRlIGBgYXNzZXJ0aW9ucz0iUkVRLTEyMzQi
YGAgaW5zaWRlIHRoZSBnZW5lcmF0CiAgICAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPgogICAg
ICAgICA8L3hzOmVsZW1lbnQ+CiAKLUxvZ1hNTDogYWRkX2dsb2JhbF9wcm9wZXJ0eQotXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKy4uIHdhcm5pbmc6OgogCi0uLiB2ZXJzaW9uYWRk
ZWQ6OiAzLjAKKyAgICBQbGVhc2Ugbm90ZSB0aGF0IHVzaW5nIHRoaXMgZmVhdHVyZSB3aWxsIGJy
ZWFrIHNjaGVtYSB2ZXJpZmljYXRpb25zIGZvciB0aGUgbGF0ZXN0IEpVbml0WE1MIHNjaGVtYS4K
KyAgICBUaGlzIG1pZ2h0IGJlIGEgcHJvYmxlbSB3aGVuIHVzZWQgd2l0aCBzb21lIENJIHNlcnZl
cnMuCiAKLUlmIHlvdSB3YW50IHRvIGFkZCBhIHByb3BlcnRpZXMgbm9kZSBpbiB0aGUgdGVzdHN1
aXRlIGxldmVsLCB3aGljaCBtYXkgY29udGFpbnMgcHJvcGVydGllcyB0aGF0IGFyZSByZWxldmFu
dAotdG8gYWxsIHRlc3RjYXNlcyB5b3UgY2FuIHVzZSBgYExvZ1hNTC5hZGRfZ2xvYmFsX3Byb3Bl
cnRpZXNgYAorLi4gX3JlY29yZF90ZXN0c3VpdGVfcHJvcGVydHkgZXhhbXBsZToKIAotLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgorcmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eQorXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXgogCi0gICAgaW1wb3J0IHB5dGVzdAorLi4gdmVyc2lvbmFkZGVkOjogNC41
CiAKK0lmIHlvdSB3YW50IHRvIGFkZCBhIHByb3BlcnRpZXMgbm9kZSBhdCB0aGUgdGVzdC1zdWl0
ZSBsZXZlbCwgd2hpY2ggbWF5IGNvbnRhaW5zIHByb3BlcnRpZXMKK3RoYXQgYXJlIHJlbGV2YW50
IHRvIGFsbCB0ZXN0cywgeW91IGNhbiB1c2UgdGhlIGBgcmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0
eWBgIHNlc3Npb24tc2NvcGVkIGZpeHR1cmU6CiAKLSAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9
InNlc3Npb24iKQotICAgIGRlZiBsb2dfZ2xvYmFsX2Vudl9mYWN0cyhmKToKK1RoZSBgYHJlY29y
ZF90ZXN0c3VpdGVfcHJvcGVydHlgYCBzZXNzaW9uLXNjb3BlZCBmaXh0dXJlIGNhbiBiZSB1c2Vk
IHRvIGFkZCBwcm9wZXJ0aWVzIHJlbGV2YW50Cit0byBhbGwgdGVzdHMuCiAKLSAgICAgICAgaWYg
cHl0ZXN0LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmhhc3BsdWdpbigianVuaXR4bWwiKToKLSAgICAg
ICAgICAgIG15X2p1bml0ID0gZ2V0YXR0cihweXRlc3QuY29uZmlnLCAiX3htbCIsIE5vbmUpCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKLSAgICAgICAgbXlfanVuaXQuYWRkX2dsb2JhbF9wcm9w
ZXJ0eSgiQVJDSCIsICJQUEMiKQotICAgICAgICBteV9qdW5pdC5hZGRfZ2xvYmFsX3Byb3BlcnR5
KCJTVE9SQUdFX1RZUEUiLCAiQ0VQSCIpCisgICAgaW1wb3J0IHB5dGVzdAogCiAKLSAgICBAcHl0
ZXN0Lm1hcmsudXNlZml4dHVyZXMobG9nX2dsb2JhbF9lbnZfZmFjdHMuX19uYW1lX18pCi0gICAg
ZGVmIHN0YXJ0X2FuZF9wcmVwYXJlX2VudigpOgotICAgICAgICBwYXNzCisgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSJzZXNzaW9uIiwgYXV0b3VzZT1UcnVlKQorICAgIGRlZiBsb2dfZ2xvYmFs
X2Vudl9mYWN0cyhyZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KToKKyAgICAgICAgcmVjb3JkX3Rl
c3RzdWl0ZV9wcm9wZXJ0eSgiQVJDSCIsICJQUEMiKQorICAgICAgICByZWNvcmRfdGVzdHN1aXRl
X3Byb3BlcnR5KCJTVE9SQUdFX1RZUEUiLCAiQ0VQSCIpCiAKIAogICAgIGNsYXNzIFRlc3RNZShv
YmplY3QpOgogICAgICAgICBkZWYgdGVzdF9mb28oc2VsZik6CiAgICAgICAgICAgICBhc3NlcnQg
VHJ1ZQogCi1UaGlzIHdpbGwgYWRkIGEgcHJvcGVydHkgbm9kZSBiZWxvdyB0aGUgdGVzdHN1aXRl
IG5vZGUgdG8gdGhlIGdlbmVyYXRlZCB4bWw6CitUaGUgZml4dHVyZSBpcyBhIGNhbGxhYmxlIHdo
aWNoIHJlY2VpdmVzIGBgbmFtZWBgIGFuZCBgYHZhbHVlYGAgb2YgYSBgYDxwcm9wZXJ0eT5gYCB0
YWcKK2FkZGVkIGF0IHRoZSB0ZXN0LXN1aXRlIGxldmVsIG9mIHRoZSBnZW5lcmF0ZWQgeG1sOgog
CiAuLiBjb2RlLWJsb2NrOjogeG1sCiAKLSAgICA8dGVzdHN1aXRlIGVycm9ycz0iMCIgZmFpbHVy
ZXM9IjAiIG5hbWU9InB5dGVzdCIgc2tpcHM9IjAiIHRlc3RzPSIxIiB0aW1lPSIwLjAwNiI+Cisg
ICAgPHRlc3RzdWl0ZSBlcnJvcnM9IjAiIGZhaWx1cmVzPSIwIiBuYW1lPSJweXRlc3QiIHNraXBw
ZWQ9IjAiIHRlc3RzPSIxIiB0aW1lPSIwLjAwNiI+CiAgICAgICA8cHJvcGVydGllcz4KICAgICAg
ICAgPHByb3BlcnR5IG5hbWU9IkFSQ0giIHZhbHVlPSJQUEMiLz4KICAgICAgICAgPHByb3BlcnR5
IG5hbWU9IlNUT1JBR0VfVFlQRSIgdmFsdWU9IkNFUEgiLz4KQEAgLTQxMiwyNyArNjI0LDI1IEBA
IFRoaXMgd2lsbCBhZGQgYSBwcm9wZXJ0eSBub2RlIGJlbG93IHRoZSB0ZXN0c3VpdGUgbm9kZSB0
byB0aGUgZ2VuZXJhdGVkIHhtbDoKICAgICAgIDx0ZXN0Y2FzZSBjbGFzc25hbWU9InRlc3RfbWUu
VGVzdE1lIiBmaWxlPSJ0ZXN0X21lLnB5IiBsaW5lPSIxNiIgbmFtZT0idGVzdF9mb28iIHRpbWU9
IjAuMDAwMjQzNjYzNzg3ODQyIi8+CiAgICAgPC90ZXN0c3VpdGU+CiAKLS4uIHdhcm5pbmc6Ogor
YGBuYW1lYGAgbXVzdCBiZSBhIHN0cmluZywgYGB2YWx1ZWBgIHdpbGwgYmUgY29udmVydGVkIHRv
IGEgc3RyaW5nIGFuZCBwcm9wZXJseSB4bWwtZXNjYXBlZC4KKworVGhlIGdlbmVyYXRlZCBYTUwg
aXMgY29tcGF0aWJsZSB3aXRoIHRoZSBsYXRlc3QgYGB4dW5pdGBgIHN0YW5kYXJkLCBjb250cmFy
eSB0byBgcmVjb3JkX3Byb3BlcnR5YF8KK2FuZCBgcmVjb3JkX3htbF9hdHRyaWJ1dGVgXy4KIAot
ICAgIFRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUsIGFuZCBpdHMgaW50ZXJmYWNlIG1p
Z2h0IGJlIHJlcGxhY2VkCi0gICAgYnkgc29tZXRoaW5nIG1vcmUgcG93ZXJmdWwgYW5kIGdlbmVy
YWwgaW4gZnV0dXJlIHZlcnNpb25zLiBUaGUKLSAgICBmdW5jdGlvbmFsaXR5IHBlci1zZSB3aWxs
IGJlIGtlcHQuCiAKIENyZWF0aW5nIHJlc3VsdGxvZyBmb3JtYXQgZmlsZXMKIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLi4gZGVwcmVjYXRl
ZDo6IDMuMAogCi0gICAgVGhpcyBvcHRpb24gaXMgcmFyZWx5IHVzZWQgYW5kIGlzIHNjaGVkdWxl
ZCBmb3IgcmVtb3ZhbCBpbiA0LjAuCiAKLSAgICBBbiBhbHRlcm5hdGl2ZSBmb3IgdXNlcnMgd2hp
Y2ggc3RpbGwgbmVlZCBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgaXMgdG8gdXNlIHRoZQotICAgIGBw
eXRlc3QtdGFwIDxodHRwczovL3B5cGkub3JnL3Byb2plY3QvcHl0ZXN0LXRhcC8+YF8gcGx1Z2lu
IHdoaWNoIHByb3ZpZGVzCi0gICAgYSBzdHJlYW0gb2YgdGVzdCBkYXRhLgorICAgIFRoaXMgb3B0
aW9uIGlzIHJhcmVseSB1c2VkIGFuZCBpcyBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gNS4wLgor
CisgICAgU2VlIGB0aGUgZGVwcmVjYXRpb24gZG9jcyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcv
ZW4vbGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sI3Jlc3VsdC1sb2ctcmVzdWx0LWxvZz5gX18KKyAg
ICBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAotICAgIElmIHlvdSBoYXZlIGFueSBjb25jZXJucywg
cGxlYXNlIGRvbid0IGhlc2l0YXRlIHRvCi0gICAgYG9wZW4gYW4gaXNzdWUgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXM+YF8uCitUbyBjcmVhdGUgcGxhaW4tdGV4
dCBtYWNoaW5lLXJlYWRhYmxlIHJlc3VsdCBmaWxlcyB5b3UgY2FuIGlzc3VlOgogCi1UbyBjcmVh
dGUgcGxhaW4tdGV4dCBtYWNoaW5lLXJlYWRhYmxlIHJlc3VsdCBmaWxlcyB5b3UgY2FuIGlzc3Vl
OjoKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLS1yZXN1bHRsb2c9cGF0aAog
CkBAIC00NDUsNyArNjU1LDkgQEAgYnkgdGhlIGBQeVB5LXRlc3RgXyB3ZWIgcGFnZSB0byBzaG93
IHRlc3QgcmVzdWx0cyBvdmVyIHNldmVyYWwgcmV2aXNpb25zLgogU2VuZGluZyB0ZXN0IHJlcG9y
dCB0byBvbmxpbmUgcGFzdGViaW4gc2VydmljZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotKipDcmVhdGluZyBhIFVSTCBmb3IgZWFjaCB0
ZXN0IGZhaWx1cmUqKjo6CisqKkNyZWF0aW5nIGEgVVJMIGZvciBlYWNoIHRlc3QgZmFpbHVyZSoq
OgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC0tcGFzdGViaW49ZmFpbGVk
CiAKQEAgLTQ1MywxMiArNjY1LDMwIEBAIFRoaXMgd2lsbCBzdWJtaXQgdGVzdCBydW4gaW5mb3Jt
YXRpb24gdG8gYSByZW1vdGUgUGFzdGUgc2VydmljZSBhbmQKIHByb3ZpZGUgYSBVUkwgZm9yIGVh
Y2ggZmFpbHVyZS4gIFlvdSBtYXkgc2VsZWN0IHRlc3RzIGFzIHVzdWFsIG9yIGFkZAogZm9yIGV4
YW1wbGUgYGAteGBgIGlmIHlvdSBvbmx5IHdhbnQgdG8gc2VuZCBvbmUgcGFydGljdWxhciBmYWls
dXJlLgogCi0qKkNyZWF0aW5nIGEgVVJMIGZvciBhIHdob2xlIHRlc3Qgc2Vzc2lvbiBsb2cqKjo6
CisqKkNyZWF0aW5nIGEgVVJMIGZvciBhIHdob2xlIHRlc3Qgc2Vzc2lvbiBsb2cqKjoKKworLi4g
Y29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVzdCAtLXBhc3RlYmluPWFsbAogCiBDdXJyZW50
bHkgb25seSBwYXN0aW5nIHRvIHRoZSBodHRwOi8vYnBhc3RlLm5ldCBzZXJ2aWNlIGlzIGltcGxl
bWVudGVkLgogCitFYXJseSBsb2FkaW5nIHBsdWdpbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CitZb3UgY2FuIGVhcmx5LWxvYWQgcGx1Z2lucyAoaW50ZXJuYWwgYW5kIGV4dGVybmFsKSBleHBs
aWNpdGx5IGluIHRoZSBjb21tYW5kLWxpbmUgd2l0aCB0aGUgYGAtcGBgIG9wdGlvbjo6CisKKyAg
ICBweXRlc3QgLXAgbXlwbHVnaW5tb2R1bGUKKworVGhlIG9wdGlvbiByZWNlaXZlcyBhIGBgbmFt
ZWBgIHBhcmFtZXRlciwgd2hpY2ggY2FuIGJlOgorCisqIEEgZnVsbCBtb2R1bGUgZG90dGVkIG5h
bWUsIGZvciBleGFtcGxlIGBgbXlwcm9qZWN0LnBsdWdpbnNgYC4gVGhpcyBkb3R0ZWQgbmFtZSBt
dXN0IGJlIGltcG9ydGFibGUuCisqIFRoZSBlbnRyeS1wb2ludCBuYW1lIG9mIGEgcGx1Z2luLiBU
aGlzIGlzIHRoZSBuYW1lIHBhc3NlZCB0byBgYHNldHVwdG9vbHNgYCB3aGVuIHRoZSBwbHVnaW4g
aXMKKyAgcmVnaXN0ZXJlZC4gRm9yIGV4YW1wbGUgdG8gZWFybHktbG9hZCB0aGUgYHB5dGVzdC1j
b3YgPGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9weXRlc3QtY292Lz5gX18gcGx1Z2luIHlvdSBj
YW4gdXNlOjoKKworICAgIHB5dGVzdCAtcCBweXRlc3RfY292CisKKwogRGlzYWJsaW5nIHBsdWdp
bnMKIC0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTQ2Niw3ICs2OTYsOSBAQCBUbyBkaXNhYmxlIGxv
YWRpbmcgc3BlY2lmaWMgcGx1Z2lucyBhdCBpbnZvY2F0aW9uIHRpbWUsIHVzZSB0aGUgYGAtcGBg
IG9wdGlvbgogdG9nZXRoZXIgd2l0aCB0aGUgcHJlZml4IGBgbm86YGAuCiAKIEV4YW1wbGU6IHRv
IGRpc2FibGUgbG9hZGluZyB0aGUgcGx1Z2luIGBgZG9jdGVzdGBgLCB3aGljaCBpcyByZXNwb25z
aWJsZSBmb3IKLWV4ZWN1dGluZyBkb2N0ZXN0IHRlc3RzIGZyb20gdGV4dCBmaWxlcywgaW52b2tl
IHB5dGVzdCBsaWtlIHRoaXM6OgorZXhlY3V0aW5nIGRvY3Rlc3QgdGVzdHMgZnJvbSB0ZXh0IGZp
bGVzLCBpbnZva2UgcHl0ZXN0IGxpa2UgdGhpczoKKworLi4gY29kZS1ibG9jazo6IGJhc2gKIAog
ICAgIHB5dGVzdCAtcCBubzpkb2N0ZXN0CiAKQEAgLTQ3NSw3ICs3MDcsNyBAQCBleGVjdXRpbmcg
ZG9jdGVzdCB0ZXN0cyBmcm9tIHRleHQgZmlsZXMsIGludm9rZSBweXRlc3QgbGlrZSB0aGlzOjoK
IENhbGxpbmcgcHl0ZXN0IGZyb20gUHl0aG9uIGNvZGUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLi4gdmVyc2lvbmFkZGVkOjogMi4wCisK
IAogWW91IGNhbiBpbnZva2UgYGBweXRlc3RgYCBmcm9tIFB5dGhvbiBjb2RlIGRpcmVjdGx5OjoK
IApAQCAtNDk4LDExICs3MzAsMzAgQEAgWW91IGNhbiBzcGVjaWZ5IGFkZGl0aW9uYWwgcGx1Z2lu
cyB0byBgYHB5dGVzdC5tYWluYGA6OgogICAgIHB5dGVzdC5tYWluKFsiLXFxIl0sIHBsdWdpbnM9
W015UGx1Z2luKCldKQogCiBSdW5uaW5nIGl0IHdpbGwgc2hvdyB0aGF0IGBgTXlQbHVnaW5gYCB3
YXMgYWRkZWQgYW5kIGl0cwotaG9vayB3YXMgaW52b2tlZDo6Citob29rIHdhcyBpbnZva2VkOgor
CisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGhvbiBteWludm9rZS5weQotICAg
IC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsxMDAlXSoqKiB0ZXN0IHJ1biByZXBvcnRpbmcgZmluaXNoaW5nCisgICAg
LkZFc3hYLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWzEwMCVdKioqIHRlc3QgcnVuIHJlcG9ydGluZyBmaW5pc2hpbmcKKworICAg
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRVJST1JTID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fXyBFUlJPUiBh
dCBzZXR1cCBvZiB0ZXN0X2Vycm9yIF9fX19fX19fX19fX19fX19fX19fX19fCisKKyAgICAgICAg
QHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBlcnJvcl9maXh0dXJlKCk6CisgICAgPiAgICAg
ICBhc3NlcnQgMAorICAgIEUgICAgICAgYXNzZXJ0IDAKKworICAgIHRlc3RfZXhhbXBsZS5weTo2
OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBG
QUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2ZhaWwgX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCisKKyAgICAgICAgZGVmIHRlc3RfZmFpbCgpOgorICAgID4gICAgICAgYXNzZXJ0
IDAKKyAgICBFICAgICAgIGFzc2VydCAwCiAKKyAgICB0ZXN0X2V4YW1wbGUucHk6MTQ6IEFzc2Vy
dGlvbkVycm9yCiAKIC4uIG5vdGU6OgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdzNjLWltcG9ydC5sb2cKaW5kZXgg
ZTdmMWY1N2E0ODdmM2QyZDc5OGNmMGQ0ZWZiM2Y3ODQxNjZlYWZlOS4uZjc3M2FlMzhkYjRhYjk4
MWM2OTllNGFmMTBlNzM2N2Y4NjAzMzBmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93M2MtaW1wb3J0LmxvZwpA
QCAtMjksMTEgKzI5LDEzIEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Nv
bnRlbnRzLnJzdAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb250cmlidXRpbmcucnN0CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2N1c3RvbWl6ZS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZGVwcmVjYXRp
b25zLnJzdAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kZXZlbG9wbWVudF9ndWlkZS5yc3QKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZG9jdGVzdC5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhpc3Rpbmd0
ZXN0c3VpdGUucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ZhcS5yc3QKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZml4dHVyZS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZmxha3kucnN0CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Z1bmNhcmdfY29tcGFyZS5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVu
Y2FyZ3MucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dldHRpbmctc3RhcnRlZC5yc3QKQEAgLTUw
LDYgKzUyLDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcGFyYW1ldHJp
emUucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3BsdWdpbnMucnN0CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Byb2plY3RzLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9weTI3LXB5MzQtZGVwcmVjYXRp
b24ucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3B5dGVzdC5pbmkKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vcHl0aG9ucGF0aC5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVjd2Fybi5yc3QKQEAgLTU3
LDYgKzYwLDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVxdWlyZW1l
bnRzLnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9za2lwcGluZy5yc3QKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGFsa3MucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RpZGVsaWZ0LnJzdAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90bXBkaXIucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3VuaXR0ZXN0LnJz
dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi91c2FnZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi93YXJuaW5ncy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vd2FybmluZ3MucnN0Cmlu
ZGV4IGRmOTNhMDJiNTQwYWQwZWFiMWQ3MzFjYTc4MjQzNWRiNTMwNDkzODIuLjhmOGQ2ZjNlMWM2
MzNkNmRhMDczMzIzOTI1OTg2YjgwMGUzMzZmZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi93YXJuaW5ncy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3dhcm5pbmdzLnJzdApA
QCAtMyw0MyArMyw1MCBAQAogV2FybmluZ3MgQ2FwdHVyZQogPT09PT09PT09PT09PT09PQogCi0u
LiB2ZXJzaW9uYWRkZWQ6OiAzLjEKKwogCiBTdGFydGluZyBmcm9tIHZlcnNpb24gYGAzLjFgYCwg
cHl0ZXN0IG5vdyBhdXRvbWF0aWNhbGx5IGNhdGNoZXMgd2FybmluZ3MgZHVyaW5nIHRlc3QgZXhl
Y3V0aW9uCi1hbmQgZGlzcGxheXMgdGhlbSBhdCB0aGUgZW5kIG9mIHRoZSBzZXNzaW9uOjoKK2Fu
ZCBkaXNwbGF5cyB0aGVtIGF0IHRoZSBlbmQgb2YgdGhlIHNlc3Npb246CisKKy4uIGNvZGUtYmxv
Y2s6OiBweXRob24KIAogICAgICMgY29udGVudCBvZiB0ZXN0X3Nob3dfd2FybmluZ3MucHkKICAg
ICBpbXBvcnQgd2FybmluZ3MKIAorCiAgICAgZGVmIGFwaV92MSgpOgogICAgICAgICB3YXJuaW5n
cy53YXJuKFVzZXJXYXJuaW5nKCJhcGkgdjEsIHNob3VsZCB1c2UgZnVuY3Rpb25zIGZyb20gdjIi
KSkKICAgICAgICAgcmV0dXJuIDEKIAorCiAgICAgZGVmIHRlc3Rfb25lKCk6CiAgICAgICAgIGFz
c2VydCBhcGlfdjEoKSA9PSAxCiAKLVJ1bm5pbmcgcHl0ZXN0IG5vdyBwcm9kdWNlcyB0aGlzIG91
dHB1dDo6CitSdW5uaW5nIHB5dGVzdCBub3cgcHJvZHVjZXMgdGhpcyBvdXRwdXQ6CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IHRlc3Rfc2hvd193YXJuaW5ncy5weQog
ICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54
LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRS
RUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMu
eC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjog
JFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBE
SVIKICAgICBjb2xsZWN0ZWQgMSBpdGVtCiAKICAgICB0ZXN0X3Nob3dfd2FybmluZ3MucHkgLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KIAogICAg
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09IHdhcm5pbmdzIHN1bW1hcnkgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KICAgICB0ZXN0X3Nob3dfd2FybmluZ3MucHk6OnRlc3Rfb25l
Ci0gICAgICAkUkVHRU5ET0NfVE1QRElSL3Rlc3Rfc2hvd193YXJuaW5ncy5weTo0OiBVc2VyV2Fy
bmluZzogYXBpIHYxLCBzaG91bGQgdXNlIGZ1bmN0aW9ucyBmcm9tIHYyCisgICAgICAkUkVHRU5E
T0NfVE1QRElSL3Rlc3Rfc2hvd193YXJuaW5ncy5weTo1OiBVc2VyV2FybmluZzogYXBpIHYxLCBz
aG91bGQgdXNlIGZ1bmN0aW9ucyBmcm9tIHYyCiAgICAgICAgIHdhcm5pbmdzLndhcm4oVXNlcldh
cm5pbmcoImFwaSB2MSwgc2hvdWxkIHVzZSBmdW5jdGlvbnMgZnJvbSB2MiIpKQogCi0gICAgLS0g
RG9jczogaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93YXJuaW5ncy5odG1sCisgICAg
LS0gRG9jczogaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwK
ICAgICA9PT09PT09PT09PT09PT09PT09IDEgcGFzc2VkLCAxIHdhcm5pbmdzIGluIDAuMTIgc2Vj
b25kcyA9PT09PT09PT09PT09PT09PT09CiAKLVB5dGVzdCBieSBkZWZhdWx0IGNhdGNoZXMgYWxs
IHdhcm5pbmdzIGV4Y2VwdCBmb3IgYGBEZXByZWNhdGlvbldhcm5pbmdgYCBhbmQgYGBQZW5kaW5n
RGVwcmVjYXRpb25XYXJuaW5nYGAuCi0KIFRoZSBgYC1XYGAgZmxhZyBjYW4gYmUgcGFzc2VkIHRv
IGNvbnRyb2wgd2hpY2ggd2FybmluZ3Mgd2lsbCBiZSBkaXNwbGF5ZWQgb3IgZXZlbiB0dXJuCi10
aGVtIGludG8gZXJyb3JzOjoKK3RoZW0gaW50byBlcnJvcnM6CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRlc3QKIAogICAgICQgcHl0ZXN0IC1xIHRlc3Rfc2hvd193YXJuaW5ncy5weSAtVyBlcnJvcjo6
VXNlcldhcm5pbmcKICAgICBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KQEAgLTQ5LDE0ICs1NiwxNCBAQCB0
aGVtIGludG8gZXJyb3JzOjoKICAgICAgICAgZGVmIHRlc3Rfb25lKCk6CiAgICAgPiAgICAgICBh
c3NlcnQgYXBpX3YxKCkgPT0gMQogCi0gICAgdGVzdF9zaG93X3dhcm5pbmdzLnB5Ojg6CisgICAg
dGVzdF9zaG93X3dhcm5pbmdzLnB5OjEwOgogICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXwogCiAgICAg
ICAgIGRlZiBhcGlfdjEoKToKICAgICA+ICAgICAgIHdhcm5pbmdzLndhcm4oVXNlcldhcm5pbmco
ImFwaSB2MSwgc2hvdWxkIHVzZSBmdW5jdGlvbnMgZnJvbSB2MiIpKQogICAgIEUgICAgICAgVXNl
cldhcm5pbmc6IGFwaSB2MSwgc2hvdWxkIHVzZSBmdW5jdGlvbnMgZnJvbSB2MgogCi0gICAgdGVz
dF9zaG93X3dhcm5pbmdzLnB5OjQ6IFVzZXJXYXJuaW5nCisgICAgdGVzdF9zaG93X3dhcm5pbmdz
LnB5OjU6IFVzZXJXYXJuaW5nCiAgICAgMSBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzCiAKIFRoZSBz
YW1lIG9wdGlvbiBjYW4gYmUgc2V0IGluIHRoZSBgYHB5dGVzdC5pbmlgYCBmaWxlIHVzaW5nIHRo
ZSBgYGZpbHRlcndhcm5pbmdzYGAgaW5pIG9wdGlvbi4KQEAgLTc4LDEzICs4NSwxMiBAQCBCb3Ro
IGBgLVdgYCBjb21tYW5kLWxpbmUgb3B0aW9uIGFuZCBgYGZpbHRlcndhcm5pbmdzYGAgaW5pIG9w
dGlvbiBhcmUgYmFzZWQgb24gUAogYC1XIG9wdGlvbmBfIGFuZCBgd2FybmluZ3Muc2ltcGxlZmls
dGVyYF8sIHNvIHBsZWFzZSByZWZlciB0byB0aG9zZSBzZWN0aW9ucyBpbiB0aGUgUHl0aG9uCiBk
b2N1bWVudGF0aW9uIGZvciBvdGhlciBleGFtcGxlcyBhbmQgYWR2YW5jZWQgdXNhZ2UuCiAKLQog
Li4gX2BmaWx0ZXJ3YXJuaW5nc2A6CiAKIGBgQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzYGAK
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLi4gdmVyc2lvbmFkZGVkOjogMy4y
CisKIAogWW91IGNhbiB1c2UgdGhlIGBgQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzYGAgdG8g
YWRkIHdhcm5pbmcgZmlsdGVycyB0byBzcGVjaWZpYyB0ZXN0IGl0ZW1zLAogYWxsb3dpbmcgeW91
IHRvIGhhdmUgZmluZXIgY29udHJvbCBvZiB3aGljaCB3YXJuaW5ncyBzaG91bGQgYmUgY2FwdHVy
ZWQgYXQgdGVzdCwgY2xhc3Mgb3IKQEAgLTExNywyNCArMTIzLDYgQEAgZGVjb3JhdG9yIG9yIHRv
IGFsbCB0ZXN0cyBpbiBhIG1vZHVsZSBieSBzZXR0aW5nIHRoZSBgYHB5dGVzdG1hcmtgYCB2YXJp
YWJsZToKICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImVycm9y
IikKIAogCi0uLiBub3RlOjoKLQotICAgIEV4Y2VwdCBmb3IgdGhlc2UgZmVhdHVyZXMsIHB5dGVz
dCBkb2VzIG5vdCBjaGFuZ2UgdGhlIHB5dGhvbiB3YXJuaW5nIGZpbHRlcjsgaXQgb25seSBjYXB0
dXJlcwotICAgIGFuZCBkaXNwbGF5cyB0aGUgd2FybmluZ3Mgd2hpY2ggYXJlIGlzc3VlZCB3aXRo
IHJlc3BlY3QgdG8gdGhlIGN1cnJlbnRseSBjb25maWd1cmVkIGZpbHRlciwKLSAgICBpbmNsdWRp
bmcgY2hhbmdlcyB0byB0aGUgZmlsdGVyIG1hZGUgYnkgdGVzdCBmdW5jdGlvbnMgb3IgYnkgdGhl
IHN5c3RlbSB1bmRlciB0ZXN0LgotCi0uLiBub3RlOjoKLQotICAgIGBgRGVwcmVjYXRpb25XYXJu
aW5nYGAgYW5kIGBgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZ2BgIGFyZSBoaWRkZW4gYnkgdGhl
IHN0YW5kYXJkIGxpYnJhcnkKLSAgICBieSBkZWZhdWx0IHNvIHlvdSBoYXZlIHRvIGV4cGxpY2l0
bHkgY29uZmlndXJlIHRoZW0gdG8gYmUgZGlzcGxheWVkIGluIHlvdXIgYGBweXRlc3QuaW5pYGA6
Ci0KLSAgICAuLiBjb2RlLWJsb2NrOjogaW5pCi0KLSAgICAgICAgW3B5dGVzdF0KLSAgICAgICAg
ZmlsdGVyd2FybmluZ3MgPQotICAgICAgICAgICAgb25jZTo6RGVwcmVjYXRpb25XYXJuaW5nCi0g
ICAgICAgICAgICBvbmNlOjpQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nCi0KIAogKkNyZWRpdHMg
Z28gdG8gRmxvcmlhbiBTY2h1bHplIGZvciB0aGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGlu
IHRoZSogYHB5dGVzdC13YXJuaW5nc2BfCiAqcGx1Z2luLioKQEAgLTE0MywxOCArMTMxLDExMCBA
QCBkZWNvcmF0b3Igb3IgdG8gYWxsIHRlc3RzIGluIGEgbW9kdWxlIGJ5IHNldHRpbmcgdGhlIGBg
cHl0ZXN0bWFya2BgIHZhcmlhYmxlOgogLi4gX3dhcm5pbmdzLnNpbXBsZWZpbHRlcjogaHR0cHM6
Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L3dhcm5pbmdzLmh0bWwjd2FybmluZ3Muc2ltcGxl
ZmlsdGVyCiAuLiBfYHB5dGVzdC13YXJuaW5nc2A6IGh0dHBzOi8vZ2l0aHViLmNvbS9mc2NodWx6
ZS9weXRlc3Qtd2FybmluZ3MKIAorRGlzYWJsaW5nIHdhcm5pbmdzIHN1bW1hcnkKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKK0FsdGhvdWdoIG5vdCByZWNvbW1lbmRlZCwgeW91IGNhbiB1
c2UgdGhlIGBgLS1kaXNhYmxlLXdhcm5pbmdzYGAgY29tbWFuZC1saW5lIG9wdGlvbiB0byBzdXBw
cmVzcyB0aGUKK3dhcm5pbmcgc3VtbWFyeSBlbnRpcmVseSBmcm9tIHRoZSB0ZXN0IHJ1biBvdXRw
dXQuCiAKLURpc2FibGluZyB3YXJuaW5nIGNhcHR1cmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK0Rpc2FibGluZyB3YXJuaW5nIGNhcHR1cmUgZW50aXJlbHkKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAotVGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBi
dXQgY2FuIGJlIGRpc2FibGVkIGVudGlyZWx5IGluIHlvdXIgYGBweXRlc3QuaW5pYGAgZmlsZSB3
aXRoOgorVGhpcyBwbHVnaW4gaXMgZW5hYmxlZCBieSBkZWZhdWx0IGJ1dCBjYW4gYmUgZGlzYWJs
ZWQgZW50aXJlbHkgaW4geW91ciBgYHB5dGVzdC5pbmlgYCBmaWxlIHdpdGg6CiAKICAgICAuLiBj
b2RlLWJsb2NrOjogaW5pCiAKICAgICAgICAgW3B5dGVzdF0KICAgICAgICAgYWRkb3B0cyA9IC1w
IG5vOndhcm5pbmdzCiAKLU9yIHBhc3NpbmcgYGAtcCBubzp3YXJuaW5nc2BgIGluIHRoZSBjb21t
YW5kLWxpbmUuCitPciBwYXNzaW5nIGBgLXAgbm86d2FybmluZ3NgYCBpbiB0aGUgY29tbWFuZC1s
aW5lLiBUaGlzIG1pZ2h0IGJlIHVzZWZ1bCBpZiB5b3VyIHRlc3Qgc3VpdGVzIGhhbmRsZXMgd2Fy
bmluZ3MKK3VzaW5nIGFuIGV4dGVybmFsIHN5c3RlbS4KKworCisuLiBfYGRlcHJlY2F0aW9uLXdh
cm5pbmdzYDoKKworRGVwcmVjYXRpb25XYXJuaW5nIGFuZCBQZW5kaW5nRGVwcmVjYXRpb25XYXJu
aW5nCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
CisKKworQnkgZGVmYXVsdCBweXRlc3Qgd2lsbCBkaXNwbGF5IGBgRGVwcmVjYXRpb25XYXJuaW5n
YGAgYW5kIGBgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZ2BgIHdhcm5pbmdzIGZyb20KK3VzZXIg
Y29kZSBhbmQgdGhpcmQtcGFydHkgbGlicmFyaWVzLCBhcyByZWNvbW1lbmRlZCBieSBgUEVQLTA1
NjUgPGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTA1NjU+YF8uCitUaGlzIGhl
bHBzIHVzZXJzIGtlZXAgdGhlaXIgY29kZSBtb2Rlcm4gYW5kIGF2b2lkIGJyZWFrYWdlcyB3aGVu
IGRlcHJlY2F0ZWQgd2FybmluZ3MgYXJlIGVmZmVjdGl2ZWx5IHJlbW92ZWQuCisKK1NvbWV0aW1l
cyBpdCBpcyB1c2VmdWwgdG8gaGlkZSBzb21lIHNwZWNpZmljIGRlcHJlY2F0aW9uIHdhcm5pbmdz
IHRoYXQgaGFwcGVuIGluIGNvZGUgdGhhdCB5b3UgaGF2ZSBubyBjb250cm9sIG92ZXIKKyhzdWNo
IGFzIHRoaXJkLXBhcnR5IGxpYnJhcmllcyksIGluIHdoaWNoIGNhc2UgeW91IG1pZ2h0IHVzZSB0
aGUgd2FybmluZyBmaWx0ZXJzIG9wdGlvbnMgKGluaSBvciBtYXJrcykgdG8gaWdub3JlCit0aG9z
ZSB3YXJuaW5ncy4KKworRm9yIGV4YW1wbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAg
IFtweXRlc3RdCisgICAgZmlsdGVyd2FybmluZ3MgPQorICAgICAgICBpZ25vcmU6LipVLiptb2Rl
IGlzIGRlcHJlY2F0ZWQ6RGVwcmVjYXRpb25XYXJuaW5nCisKKworVGhpcyB3aWxsIGlnbm9yZSBh
bGwgd2FybmluZ3Mgb2YgdHlwZSBgYERlcHJlY2F0aW9uV2FybmluZ2BgIHdoZXJlIHRoZSBzdGFy
dCBvZiB0aGUgbWVzc2FnZSBtYXRjaGVzCit0aGUgcmVndWxhciBleHByZXNzaW9uIGBgIi4qVS4q
bW9kZSBpcyBkZXByZWNhdGVkImBgLgorCisuLiBub3RlOjoKKyAgICBJZiB3YXJuaW5ncyBhcmUg
Y29uZmlndXJlZCBhdCB0aGUgaW50ZXJwcmV0ZXIgbGV2ZWwsIHVzaW5nCisgICAgdGhlIGBQWVRI
T05XQVJOSU5HUyA8aHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy91c2luZy9jbWRsaW5lLmh0bWwj
ZW52dmFyLVBZVEhPTldBUk5JTkdTPmBfIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHRoZQorICAg
IGBgLVdgYCBjb21tYW5kLWxpbmUgb3B0aW9uLCBweXRlc3Qgd2lsbCBub3QgY29uZmlndXJlIGFu
eSBmaWx0ZXJzIGJ5IGRlZmF1bHQuCisKKyAgICBBbHNvIHB5dGVzdCBkb2Vzbid0IGZvbGxvdyBg
YFBFUC0wNTA2YGAgc3VnZ2VzdGlvbiBvZiByZXNldHRpbmcgYWxsIHdhcm5pbmcgZmlsdGVycyBi
ZWNhdXNlCisgICAgaXQgbWlnaHQgYnJlYWsgdGVzdCBzdWl0ZXMgdGhhdCBjb25maWd1cmUgd2Fy
bmluZyBmaWx0ZXJzIHRoZW1zZWx2ZXMKKyAgICBieSBjYWxsaW5nIGBgd2FybmluZ3Muc2ltcGxl
ZmlsdGVyYGAgKHNlZSBpc3N1ZSBgIzI0MzAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvMjQzMD5gXworICAgIGZvciBhbiBleGFtcGxlIG9mIHRoYXQpLgorCisK
Ky4uIF9gZW5zdXJpbmcgYSBmdW5jdGlvbiB0cmlnZ2VycyBhIGRlcHJlY2F0aW9uIHdhcm5pbmdg
OgorCisuLiBfZW5zdXJpbmdfZnVuY3Rpb25fdHJpZ2dlcnM6CisKK0Vuc3VyaW5nIGNvZGUgdHJp
Z2dlcnMgYSBkZXByZWNhdGlvbiB3YXJuaW5nCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIGFsc28gY2FsbCBhIGdsb2JhbCBoZWxwZXIgZm9y
IGNoZWNraW5nCit0aGF0IGEgY2VydGFpbiBmdW5jdGlvbiBjYWxsIHRyaWdnZXJzIGEgYGBEZXBy
ZWNhdGlvbldhcm5pbmdgYCBvcgorYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGA6CisKKy4u
IGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9ydCBweXRlc3QKKworCisgICAgZGVmIHRl
c3RfZ2xvYmFsKCk6CisgICAgICAgIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwobXlmdW5jdGlvbiwg
MTcpCisKK0J5IGRlZmF1bHQsIGBgRGVwcmVjYXRpb25XYXJuaW5nYGAgYW5kIGBgUGVuZGluZ0Rl
cHJlY2F0aW9uV2FybmluZ2BgIHdpbGwgbm90IGJlCitjYXVnaHQgd2hlbiB1c2luZyBgYHB5dGVz
dC53YXJuc2BgIG9yIGBgcmVjd2FybmBgIGJlY2F1c2UgZGVmYXVsdCBQeXRob24gd2FybmluZ3Mg
ZmlsdGVycyBoaWRlCit0aGVtLiBJZiB5b3Ugd2lzaCB0byByZWNvcmQgdGhlbSBpbiB5b3VyIG93
biBjb2RlLCB1c2UgdGhlCitjb21tYW5kIGBgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdhbHdheXMn
KWBgOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgd2FybmluZ3MKKyAg
ICBpbXBvcnQgcHl0ZXN0CisKKworICAgIGRlZiB0ZXN0X2RlcHJlY2F0aW9uKHJlY3dhcm4pOgor
ICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImFsd2F5cyIpCisgICAgICAgIHdhcm5pbmdz
Lndhcm4oImRlcHJlY2F0ZWQiLCBEZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAgIGFzc2VydCBs
ZW4ocmVjd2FybikgPT0gMQorICAgICAgICBhc3NlcnQgcmVjd2Fybi5wb3AoRGVwcmVjYXRpb25X
YXJuaW5nKQorCitZb3UgY2FuIGFsc28gdXNlIGl0IGFzIGEgY29udGV4dG1hbmFnZXI6CisKKy4u
IGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGRlZiB0ZXN0X2dsb2JhbCgpOgorICAgICAgICB3
aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgICAgIG15b2JqZWN0LmRlcHJl
Y2F0ZWRfbWV0aG9kKCkKKworCiAKIC4uIF9gYXNzZXJ0aW5nIHdhcm5pbmdzYDoKIApAQCAtMTY1
LDE2ICsyNDUsMTkgQEAgT3IgcGFzc2luZyBgYC1wIG5vOndhcm5pbmdzYGAgaW4gdGhlIGNvbW1h
bmQtbGluZS4KIC4uIF93YXJuczoKIAogQXNzZXJ0aW5nIHdhcm5pbmdzIHdpdGggdGhlIHdhcm5z
IGZ1bmN0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIAotLi4gdmVy
c2lvbmFkZGVkOjogMi44CiAKIFlvdSBjYW4gY2hlY2sgdGhhdCBjb2RlIHJhaXNlcyBhIHBhcnRp
Y3VsYXIgd2FybmluZyB1c2luZyBgYHB5dGVzdC53YXJuc2BgLAotd2hpY2ggd29ya3MgaW4gYSBz
aW1pbGFyIG1hbm5lciB0byA6cmVmOmByYWlzZXMgPGFzc2VydHJhaXNlcz5gOjoKK3doaWNoIHdv
cmtzIGluIGEgc2ltaWxhciBtYW5uZXIgdG8gOnJlZjpgcmFpc2VzIDxhc3NlcnRyYWlzZXM+YDoK
KworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgaW1wb3J0IHdhcm5pbmdzCiAgICAgaW1w
b3J0IHB5dGVzdAogCisKICAgICBkZWYgdGVzdF93YXJuaW5nKCk6CiAgICAgICAgIHdpdGggcHl0
ZXN0Lndhcm5zKFVzZXJXYXJuaW5nKToKICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIm15IHdh
cm5pbmciLCBVc2VyV2FybmluZykKQEAgLTIwMSw3ICsyODQsOSBAQCBZb3UgY2FuIGFsc28gY2Fs
bCBgYHB5dGVzdC53YXJuc2BgIG9uIGEgZnVuY3Rpb24gb3IgY29kZSBzdHJpbmc6OgogCiBUaGUg
ZnVuY3Rpb24gYWxzbyByZXR1cm5zIGEgbGlzdCBvZiBhbGwgcmFpc2VkIHdhcm5pbmdzIChhcwog
YGB3YXJuaW5ncy5XYXJuaW5nTWVzc2FnZWBgIG9iamVjdHMpLCB3aGljaCB5b3UgY2FuIHF1ZXJ5
IGZvcgotYWRkaXRpb25hbCBpbmZvcm1hdGlvbjo6CithZGRpdGlvbmFsIGluZm9ybWF0aW9uOgor
CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICB3aXRoIHB5dGVzdC53YXJucyhSdW50aW1l
V2FybmluZykgYXMgcmVjb3JkOgogICAgICAgICB3YXJuaW5ncy53YXJuKCJhbm90aGVyIHdhcm5p
bmciLCBSdW50aW1lV2FybmluZykKQEAgLTIyMywxMyArMzA4LDE1IEBAIEFsdGVybmF0aXZlbHks
IHlvdSBjYW4gZXhhbWluZSByYWlzZWQgd2FybmluZ3MgaW4gZGV0YWlsIHVzaW5nIHRoZQogLi4g
X3JlY3dhcm46CiAKIFJlY29yZGluZyB3YXJuaW5ncwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CistLS0tLS0tLS0tLS0tLS0tLS0KIAogWW91IGNhbiByZWNvcmQgcmFpc2VkIHdhcm5pbmdzIGVp
dGhlciB1c2luZyBgYHB5dGVzdC53YXJuc2BgIG9yIHdpdGgKIHRoZSBgYHJlY3dhcm5gYCBmaXh0
dXJlLgogCiBUbyByZWNvcmQgd2l0aCBgYHB5dGVzdC53YXJuc2BgIHdpdGhvdXQgYXNzZXJ0aW5n
IGFueXRoaW5nIGFib3V0IHRoZSB3YXJuaW5ncywKLXBhc3MgYGBOb25lYGAgYXMgdGhlIGV4cGVj
dGVkIHdhcm5pbmcgdHlwZTo6CitwYXNzIGBgTm9uZWBgIGFzIHRoZSBleHBlY3RlZCB3YXJuaW5n
IHR5cGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIHdpdGggcHl0ZXN0Lndhcm5z
KE5vbmUpIGFzIHJlY29yZDoKICAgICAgICAgd2FybmluZ3Mud2FybigidXNlciIsIFVzZXJXYXJu
aW5nKQpAQCAtMjM5LDEwICszMjYsMTMgQEAgcGFzcyBgYE5vbmVgYCBhcyB0aGUgZXhwZWN0ZWQg
d2FybmluZyB0eXBlOjoKICAgICBhc3NlcnQgc3RyKHJlY29yZFswXS5tZXNzYWdlKSA9PSAidXNl
ciIKICAgICBhc3NlcnQgc3RyKHJlY29yZFsxXS5tZXNzYWdlKSA9PSAicnVudGltZSIKIAotVGhl
IGBgcmVjd2FybmBgIGZpeHR1cmUgd2lsbCByZWNvcmQgd2FybmluZ3MgZm9yIHRoZSB3aG9sZSBm
dW5jdGlvbjo6CitUaGUgYGByZWN3YXJuYGAgZml4dHVyZSB3aWxsIHJlY29yZCB3YXJuaW5ncyBm
b3IgdGhlIHdob2xlIGZ1bmN0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBp
bXBvcnQgd2FybmluZ3MKIAorCiAgICAgZGVmIHRlc3RfaGVsbG8ocmVjd2Fybik6CiAgICAgICAg
IHdhcm5pbmdzLndhcm4oImhlbGxvIiwgVXNlcldhcm5pbmcpCiAgICAgICAgIGFzc2VydCBsZW4o
cmVjd2FybikgPT0gMQpAQCAtMjYxLDM4ICszNTEsODQgQEAgd2FybmluZ3MsIG9yIGluZGV4IGlu
dG8gaXQgdG8gZ2V0IGEgcGFydGljdWxhciByZWNvcmRlZCB3YXJuaW5nLgogCiBGdWxsIEFQSTog
OmNsYXNzOmBXYXJuaW5nc1JlY29yZGVyYC4KIAotLi4gX2BlbnN1cmluZyBhIGZ1bmN0aW9uIHRy
aWdnZXJzIGEgZGVwcmVjYXRpb24gd2FybmluZ2A6CisuLiBfY3VzdG9tX2ZhaWx1cmVfbWVzc2Fn
ZXM6CiAKLS4uIF9lbnN1cmluZ19mdW5jdGlvbl90cmlnZ2VyczoKK0N1c3RvbSBmYWlsdXJlIG1l
c3NhZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1FbnN1cmluZyBhIGZ1bmN0aW9uIHRy
aWdnZXJzIGEgZGVwcmVjYXRpb24gd2FybmluZwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUmVjb3JkaW5nIHdhcm5pbmdzIHByb3ZpZGVz
IGFuIG9wcG9ydHVuaXR5IHRvIHByb2R1Y2UgY3VzdG9tIHRlc3QKK2ZhaWx1cmUgbWVzc2FnZXMg
Zm9yIHdoZW4gbm8gd2FybmluZ3MgYXJlIGlzc3VlZCBvciBvdGhlciBjb25kaXRpb25zCithcmUg
bWV0LgogCi1Zb3UgY2FuIGFsc28gY2FsbCBhIGdsb2JhbCBoZWxwZXIgZm9yIGNoZWNraW5nCi10
aGF0IGEgY2VydGFpbiBmdW5jdGlvbiBjYWxsIHRyaWdnZXJzIGEgYGBEZXByZWNhdGlvbldhcm5p
bmdgYCBvcgotYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGA6OgorLi4gY29kZS1ibG9jazo6
IHB5dGhvbgogCi0gICAgaW1wb3J0IHB5dGVzdAorICAgIGRlZiB0ZXN0KCk6CisgICAgICAgIHdp
dGggcHl0ZXN0Lndhcm5zKFdhcm5pbmcpIGFzIHJlY29yZDoKKyAgICAgICAgICAgIGYoKQorICAg
ICAgICAgICAgaWYgbm90IHJlY29yZDoKKyAgICAgICAgICAgICAgICBweXRlc3QuZmFpbCgiRXhw
ZWN0ZWQgYSB3YXJuaW5nISIpCiAKLSAgICBkZWYgdGVzdF9nbG9iYWwoKToKLSAgICAgICAgcHl0
ZXN0LmRlcHJlY2F0ZWRfY2FsbChteWZ1bmN0aW9uLCAxNykKK0lmIG5vIHdhcm5pbmdzIGFyZSBp
c3N1ZWQgd2hlbiBjYWxsaW5nIGBgZmBgLCB0aGVuIGBgbm90IHJlY29yZGBgIHdpbGwKK2V2YWx1
YXRlIHRvIGBgVHJ1ZWBgLiAgWW91IGNhbiB0aGVuIGNhbGwgYGBweXRlc3QuZmFpbGBgIHdpdGgg
YQorY3VzdG9tIGVycm9yIG1lc3NhZ2UuCiAKLUJ5IGRlZmF1bHQsIGBgRGVwcmVjYXRpb25XYXJu
aW5nYGAgYW5kIGBgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZ2BgIHdpbGwgbm90IGJlCi1jYXVn
aHQgd2hlbiB1c2luZyBgYHB5dGVzdC53YXJuc2BgIG9yIGBgcmVjd2FybmBgIGJlY2F1c2UgZGVm
YXVsdCBQeXRob24gd2FybmluZ3MgZmlsdGVycyBoaWRlCi10aGVtLiBJZiB5b3Ugd2lzaCB0byBy
ZWNvcmQgdGhlbSBpbiB5b3VyIG93biBjb2RlLCB1c2UgdGhlCi1jb21tYW5kIGBgd2FybmluZ3Mu
c2ltcGxlZmlsdGVyKCdhbHdheXMnKWBgOjoKKy4uIF9pbnRlcm5hbC13YXJuaW5nczoKIAotICAg
IGltcG9ydCB3YXJuaW5ncwotICAgIGltcG9ydCBweXRlc3QKK0ludGVybmFsIHB5dGVzdCB3YXJu
aW5ncworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgICBkZWYgdGVzdF9kZXByZWNhdGlv
bihyZWN3YXJuKToKLSAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdhbHdheXMnKQotICAg
ICAgICB3YXJuaW5ncy53YXJuKCJkZXByZWNhdGVkIiwgRGVwcmVjYXRpb25XYXJuaW5nKQotICAg
ICAgICBhc3NlcnQgbGVuKHJlY3dhcm4pID09IDEKLSAgICAgICAgYXNzZXJ0IHJlY3dhcm4ucG9w
KERlcHJlY2F0aW9uV2FybmluZykKIAotWW91IGNhbiBhbHNvIHVzZSBpdCBhcyBhIGNvbnRleHRt
YW5hZ2VyOjoKIAotICAgIGRlZiB0ZXN0X2dsb2JhbCgpOgotICAgICAgICB3aXRoIHB5dGVzdC5k
ZXByZWNhdGVkX2NhbGwoKToKLSAgICAgICAgICAgIG15b2JqZWN0LmRlcHJlY2F0ZWRfbWV0aG9k
KCkKK3B5dGVzdCBtYXkgZ2VuZXJhdGUgaXRzIG93biB3YXJuaW5ncyBpbiBzb21lIHNpdHVhdGlv
bnMsIHN1Y2ggYXMgaW1wcm9wZXIgdXNhZ2Ugb3IgZGVwcmVjYXRlZCBmZWF0dXJlcy4KKworRm9y
IGV4YW1wbGUsIHB5dGVzdCB3aWxsIGVtaXQgYSB3YXJuaW5nIGlmIGl0IGVuY291bnRlcnMgYSBj
bGFzcyB0aGF0IG1hdGNoZXMgOmNvbmZ2YWw6YHB5dGhvbl9jbGFzc2VzYCBidXQgYWxzbworZGVm
aW5lcyBhbiBgYF9faW5pdF9fYGAgY29uc3RydWN0b3IsIGFzIHRoaXMgcHJldmVudHMgdGhlIGNs
YXNzIGZyb20gYmVpbmcgaW5zdGFudGlhdGVkOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisK
KyAgICAjIGNvbnRlbnQgb2YgdGVzdF9weXRlc3Rfd2FybmluZ3MucHkKKyAgICBjbGFzcyBUZXN0
OgorICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICBwYXNzCisKKyAgICAg
ICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgICAgICAgICAgYXNzZXJ0IDEgPT0gMQorCisuLiBj
b2RlLWJsb2NrOjogcHl0ZXN0CisKKyAgICAkIHB5dGVzdCB0ZXN0X3B5dGVzdF93YXJuaW5ncy5w
eSAtcQorCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gd2FybmluZ3Mgc3VtbWFy
eSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHRlc3RfcHl0ZXN0X3dhcm5pbmdz
LnB5OjEKKyAgICAgICRSRUdFTkRPQ19UTVBESVIvdGVzdF9weXRlc3Rfd2FybmluZ3MucHk6MTog
UHl0ZXN0Q29sbGVjdGlvbldhcm5pbmc6IGNhbm5vdCBjb2xsZWN0IHRlc3QgY2xhc3MgJ1Rlc3Qn
IGJlY2F1c2UgaXQgaGFzIGEgX19pbml0X18gY29uc3RydWN0b3IgKGZyb206IHRlc3RfcHl0ZXN0
X3dhcm5pbmdzLnB5KQorICAgICAgICBjbGFzcyBUZXN0OgorCisgICAgLS0gRG9jczogaHR0cHM6
Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwKKyAgICAxIHdhcm5pbmdz
IGluIDAuMTIgc2Vjb25kcworCitUaGVzZSB3YXJuaW5ncyBtaWdodCBiZSBmaWx0ZXJlZCB1c2lu
ZyB0aGUgc2FtZSBidWlsdGluIG1lY2hhbmlzbXMgdXNlZCB0byBmaWx0ZXIgb3RoZXIgdHlwZXMg
b2Ygd2FybmluZ3MuCisKK1BsZWFzZSByZWFkIG91ciA6cmVmOmBiYWNrd2FyZHMtY29tcGF0aWJp
bGl0eWAgdG8gbGVhcm4gaG93IHdlIHByb2NlZWQgYWJvdXQgZGVwcmVjYXRpbmcgYW5kIGV2ZW50
dWFsbHkgcmVtb3ZpbmcKK2ZlYXR1cmVzLgorCitUaGUgZm9sbG93aW5nIHdhcm5pbmcgdHlwZXMg
YXJlcyB1c2VkIGJ5IHB5dGVzdCBhbmQgYXJlIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEk6CisKKy4u
IGF1dG9jbGFzczo6IHB5dGVzdC5QeXRlc3RXYXJuaW5nCisKKy4uIGF1dG9jbGFzczo6IHB5dGVz
dC5QeXRlc3RBc3NlcnRSZXdyaXRlV2FybmluZworCisuLiBhdXRvY2xhc3M6OiBweXRlc3QuUHl0
ZXN0Q2FjaGVXYXJuaW5nCisKKy4uIGF1dG9jbGFzczo6IHB5dGVzdC5QeXRlc3RDb2xsZWN0aW9u
V2FybmluZworCisuLiBhdXRvY2xhc3M6OiBweXRlc3QuUHl0ZXN0Q29uZmlnV2FybmluZworCisu
LiBhdXRvY2xhc3M6OiBweXRlc3QuUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nCisKKy4uIGF1dG9j
bGFzczo6IHB5dGVzdC5QeXRlc3RFeHBlcmltZW50YWxBcGlXYXJuaW5nCisKKy4uIGF1dG9jbGFz
czo6IHB5dGVzdC5QeXRlc3RVbmhhbmRsZWRDb3JvdXRpbmVXYXJuaW5nCisKKy4uIGF1dG9jbGFz
czo6IHB5dGVzdC5QeXRlc3RVbmtub3duTWFya1dhcm5pbmcKKworLi4gYXV0b2NsYXNzOjogcHl0
ZXN0LlJlbW92ZWRJblB5dGVzdDRXYXJuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vd3JpdGluZ19wbHVnaW5zLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93cml0aW5nX3BsdWdp
bnMucnN0CmluZGV4IDk1YjgxMGJjYjM2ZjQ4NWNjOGRhNzg3NzQ5NTc2YzdkYTk5MTMwM2EuLjA0
ZGM2OGI2NDJkZTJmZTEwMDNlNzBjYjg3YTgyNDg3YzVmZGE0ODQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi93cml0aW5nX3BsdWdpbnMucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi93cml0aW5nX3BsdWdpbnMucnN0CkBAIC03Myw3ICs3Myw3IEBAIHN1YiBkaXJlY3RvcnkgYnV0
IG5vdCBmb3Igb3RoZXIgZGlyZWN0b3JpZXM6OgogICAgIGEvY29uZnRlc3QucHk6CiAgICAgICAg
IGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKICAgICAgICAgICAgICMgY2FsbGVkIGZv
ciBydW5uaW5nIGVhY2ggdGVzdCBpbiAnYScgZGlyZWN0b3J5Ci0gICAgICAgICAgICBwcmludCAo
InNldHRpbmcgdXAiLCBpdGVtKQorICAgICAgICAgICAgcHJpbnQoInNldHRpbmcgdXAiLCBpdGVt
KQogCiAgICAgYS90ZXN0X3N1Yi5weToKICAgICAgICAgZGVmIHRlc3Rfc3ViKCk6CkBAIC0yMjMs
NyArMjIzLDYgQEAgaW1wb3J0IGBgaGVscGVyLnB5YGAgbm9ybWFsbHkuICBUaGUgY29udGVudHMg
b2YKICAgIHB5dGVzdC5yZWdpc3Rlcl9hc3NlcnRfcmV3cml0ZSgicHl0ZXN0X2Zvby5oZWxwZXIi
KQogCiAKLQogUmVxdWlyaW5nL0xvYWRpbmcgcGx1Z2lucyBpbiBhIHRlc3QgbW9kdWxlIG9yIGNv
bmZ0ZXN0IGZpbGUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKQEAgLTI4Niw2ICsyODUsMjYgQEAgdGhlIHBsdWdpbiBtYW5hZ2Vy
IGxpa2UgdGhpczoKIElmIHlvdSB3YW50IHRvIGxvb2sgYXQgdGhlIG5hbWVzIG9mIGV4aXN0aW5n
IHBsdWdpbnMsIHVzZQogdGhlIGBgLS10cmFjZS1jb25maWdgYCBvcHRpb24uCiAKKworLi4gX3Jl
Z2lzdGVyaW5nLW1hcmtlcnM6CisKK1JlZ2lzdGVyaW5nIGN1c3RvbSBtYXJrZXJzCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3VyIHBsdWdpbiB1c2VzIGFueSBtYXJrZXJzLCB5
b3Ugc2hvdWxkIHJlZ2lzdGVyIHRoZW0gc28gdGhhdCB0aGV5IGFwcGVhciBpbgorcHl0ZXN0J3Mg
aGVscCB0ZXh0IGFuZCBkbyBub3QgOnJlZjpgY2F1c2Ugc3B1cmlvdXMgd2FybmluZ3MgPHVua25v
d24tbWFya3M+YC4KK0ZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHBsdWdpbiB3b3VsZCByZWdp
c3RlciBgYGNvb2xfbWFya2VyYGAgYW5kCitgYG1hcmtfd2l0aGBgIGZvciBhbGwgdXNlcnM6CisK
Ky4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZp
Zyk6CisgICAgICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwgImNvb2xfbWFy
a2VyOiB0aGlzIG9uZSBpcyBmb3IgY29vbCB0ZXN0cy4iKQorICAgICAgICBjb25maWcuYWRkaW5p
dmFsdWVfbGluZSgKKyAgICAgICAgICAgICJtYXJrZXJzIiwgIm1hcmtfd2l0aChhcmcsIGFyZzIp
OiB0aGlzIG1hcmtlciB0YWtlcyBhcmd1bWVudHMuIgorICAgICAgICApCisKKwogVGVzdGluZyBw
bHVnaW5zCiAtLS0tLS0tLS0tLS0tLS0KIApAQCAtMzg2LDExICs0MDUsNTQgQEAgcmV0dXJuIGEg
cmVzdWx0IG9iamVjdCwgd2l0aCB3aGljaCB3ZSBjYW4gYXNzZXJ0IHRoZSB0ZXN0cycgb3V0Y29t
ZXMuCiAgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTQpCiAKIAorYWRkaXRp
b25hbGx5IGl0IGlzIHBvc3NpYmxlIHRvIGNvcHkgZXhhbXBsZXMgZm9yIGFuIGV4YW1wbGUgZm9s
ZGVyIGJlZm9yZSBydW5uaW5nIHB5dGVzdCBvbiBpdAorCisuLiBjb2RlLWJsb2NrOjogaW5pCisK
KyAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkKKyAgW3B5dGVzdF0KKyAgcHl0ZXN0ZXJfZXhhbXBs
ZV9kaXIgPSAuCisKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9m
IHRlc3RfZXhhbXBsZS5weQorCisKKyAgICBkZWYgdGVzdF9wbHVnaW4odGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCJ0ZXN0X2V4YW1wbGUucHkiKQorICAgICAgICB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLWsiLCAidGVzdF9leGFtcGxlIikKKworCisgICAgZGVmIHRlc3RfZXhh
bXBsZSgpOgorICAgICAgICBwYXNzCisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKKworICAgICQg
cHl0ZXN0CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFy
dHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5
dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2Fj
aGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5E
T0NfVE1QRElSLCBpbmlmaWxlOiBweXRlc3QuaW5pCisgICAgY29sbGVjdGVkIDIgaXRlbXMKKwor
ICAgIHRlc3RfZXhhbXBsZS5weSAuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsxMDAlXQorCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0gd2FybmluZ3Mgc3VtbWFyeSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHRl
c3RfZXhhbXBsZS5weTo6dGVzdF9wbHVnaW4KKyAgICAgICRSRUdFTkRPQ19UTVBESVIvdGVzdF9l
eGFtcGxlLnB5OjQ6IFB5dGVzdEV4cGVyaW1lbnRhbEFwaVdhcm5pbmc6IHRlc3RkaXIuY29weV9l
eGFtcGxlIGlzIGFuIGV4cGVyaW1lbnRhbCBhcGkgdGhhdCBtYXkgY2hhbmdlIG92ZXIgdGltZQor
ICAgICAgICB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgidGVzdF9leGFtcGxlLnB5IikKKworICAgIC0t
IERvY3M6IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC93YXJuaW5ncy5odG1sCisg
ICAgPT09PT09PT09PT09PT09PT09PSAyIHBhc3NlZCwgMSB3YXJuaW5ncyBpbiAwLjEyIHNlY29u
ZHMgPT09PT09PT09PT09PT09PT09PQorCiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUg
cmVzdWx0IG9iamVjdCB0aGF0IGBgcnVucHl0ZXN0KClgYCByZXR1cm5zLCBhbmQKIHRoZSBtZXRo
b2RzIHRoYXQgaXQgcHJvdmlkZXMgcGxlYXNlIGNoZWNrIG91dCB0aGUgOnB5OmNsYXNzOmBSdW5S
ZXN1bHQKIDxfcHl0ZXN0LnB5dGVzdGVyLlJ1blJlc3VsdD5gIGRvY3VtZW50YXRpb24uCiAKIAor
CisKIC4uIF9gd3JpdGluZ2hvb2tzYDoKIAogV3JpdGluZyBob29rIGZ1bmN0aW9ucwpAQCAtNDUz
LDcgKzUxNSw3IEBAIGhvb2t3cmFwcGVyOiBleGVjdXRpbmcgYXJvdW5kIG90aGVyIGhvb2tzCiAK
IC4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0LmNvcmUKIAotLi4gdmVyc2lvbmFkZGVkOjogMi43
CisKIAogcHl0ZXN0IHBsdWdpbnMgY2FuIGltcGxlbWVudCBob29rIHdyYXBwZXJzIHdoaWNoIHdy
YXAgdGhlIGV4ZWN1dGlvbgogb2Ygb3RoZXIgaG9vayBpbXBsZW1lbnRhdGlvbnMuICBBIGhvb2sg
d3JhcHBlciBpcyBhIGdlbmVyYXRvciBmdW5jdGlvbgpAQCAtNDY2LDEwICs1MjgsMTMgQEAgYSA6
cHk6Y2xhc3M6YFJlc3VsdCA8cGx1Z2d5Ll9SZXN1bHQ+YCBpbnN0YW5jZSB3aGljaCBlbmNhcHN1
bGF0ZXMgYSByZXN1bHQgb3IKIGV4Y2VwdGlvbiBpbmZvLiAgVGhlIHlpZWxkIHBvaW50IGl0c2Vs
ZiB3aWxsIHRodXMgdHlwaWNhbGx5IG5vdCByYWlzZQogZXhjZXB0aW9ucyAodW5sZXNzIHRoZXJl
IGFyZSBidWdzKS4KIAotSGVyZSBpcyBhbiBleGFtcGxlIGRlZmluaXRpb24gb2YgYSBob29rIHdy
YXBwZXI6OgorSGVyZSBpcyBhbiBleGFtcGxlIGRlZmluaXRpb24gb2YgYSBob29rIHdyYXBwZXI6
CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIGltcG9ydCBweXRlc3QKIAorCiAgICAg
QHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQogICAgIGRlZiBweXRlc3RfcHlmdW5j
X2NhbGwocHlmdW5jaXRlbSk6CiAgICAgICAgIGRvX3NvbWV0aGluZ19iZWZvcmVfbmV4dF9ob29r
X2V4ZWN1dGVzKCkKQEAgLTU3NCwxMCArNjM5LDEzIEBAIGlmIHlvdSBkZXBlbmQgb24gYSBwbHVn
aW4gdGhhdCBpcyBub3QgaW5zdGFsbGVkLCB2YWxpZGF0aW9uIHdpbGwgZmFpbCBhbmQKIHRoZSBl
cnJvciBtZXNzYWdlIHdpbGwgbm90IG1ha2UgbXVjaCBzZW5zZSB0byB5b3VyIHVzZXJzLgogCiBP
bmUgYXBwcm9hY2ggaXMgdG8gZGVmZXIgdGhlIGhvb2sgaW1wbGVtZW50YXRpb24gdG8gYSBuZXcg
cGx1Z2luIGluc3RlYWQgb2YKLWRlY2xhcmluZyB0aGUgaG9vayBmdW5jdGlvbnMgZGlyZWN0bHkg
aW4geW91ciBwbHVnaW4gbW9kdWxlLCBmb3IgZXhhbXBsZTo6CitkZWNsYXJpbmcgdGhlIGhvb2sg
ZnVuY3Rpb25zIGRpcmVjdGx5IGluIHlvdXIgcGx1Z2luIG1vZHVsZSwgZm9yIGV4YW1wbGU6CisK
Ky4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVudHMgb2YgbXlwbHVnaW4ucHkK
IAorCiAgICAgY2xhc3MgRGVmZXJQbHVnaW4ob2JqZWN0KToKICAgICAgICAgIiIiU2ltcGxlIHBs
dWdpbiB0byBkZWZlciBweXRlc3QteGRpc3QgaG9vayBmdW5jdGlvbnMuIiIiCiAKQEAgLTU4NSw4
ICs2NTMsOSBAQCBkZWNsYXJpbmcgdGhlIGhvb2sgZnVuY3Rpb25zIGRpcmVjdGx5IGluIHlvdXIg
cGx1Z2luIG1vZHVsZSwgZm9yIGV4YW1wbGU6OgogICAgICAgICAgICAgIiIic3RhbmRhcmQgeGRp
c3QgaG9vayBmdW5jdGlvbi4KICAgICAgICAgICAgICIiIgogCisKICAgICBkZWYgcHl0ZXN0X2Nv
bmZpZ3VyZShjb25maWcpOgotICAgICAgICBpZiBjb25maWcucGx1Z2lubWFuYWdlci5oYXNwbHVn
aW4oJ3hkaXN0Jyk6CisgICAgICAgIGlmIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmhhc3BsdWdpbigi
eGRpc3QiKToKICAgICAgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKERlZmVy
UGx1Z2luKCkpCiAKIFRoaXMgaGFzIHRoZSBhZGRlZCBiZW5lZml0IG9mIGFsbG93aW5nIHlvdSB0
byBjb25kaXRpb25hbGx5IGluc3RhbGwgaG9va3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi94dW5pdF9zZXR1cC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4veHVuaXRfc2V0dXAucnN0
CmluZGV4IDdhNmMwOTlmNTU5MDllMGI2NDMxNmI3YWEyMmRkZWIyY2ViODc5MTQuLjQ2Njg3MzMw
MjU1N2JkMjk0OGVkMmNhNGE3NTgzZTFlMDM0ZTM3ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi94dW5pdF9zZXR1cC5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3h1bml0X3Nl
dHVwLnJzdApAQCAtOTMsNyArOTMsMTUgQEAgUmVtYXJrczoKIAogKiBJdCBpcyBwb3NzaWJsZSBm
b3Igc2V0dXAvdGVhcmRvd24gcGFpcnMgdG8gYmUgaW52b2tlZCBtdWx0aXBsZSB0aW1lcwogICBw
ZXIgdGVzdGluZyBwcm9jZXNzLgorCiAqIHRlYXJkb3duIGZ1bmN0aW9ucyBhcmUgbm90IGNhbGxl
ZCBpZiB0aGUgY29ycmVzcG9uZGluZyBzZXR1cCBmdW5jdGlvbiBleGlzdGVkCiAgIGFuZCBmYWls
ZWQvd2FzIHNraXBwZWQuCiAKKyogUHJpb3IgdG8gcHl0ZXN0LTQuMiwgeHVuaXQtc3R5bGUgZnVu
Y3Rpb25zIGRpZCBub3Qgb2JleSB0aGUgc2NvcGUgcnVsZXMgb2YgZml4dHVyZXMsIHNvCisgIGl0
IHdhcyBwb3NzaWJsZSwgZm9yIGV4YW1wbGUsIGZvciBhIGBgc2V0dXBfbWV0aG9kYGAgdG8gYmUg
Y2FsbGVkIGJlZm9yZSBhCisgIHNlc3Npb24tc2NvcGVkIGF1dG91c2UgZml4dHVyZS4KKworICBO
b3cgdGhlIHh1bml0LXN0eWxlIGZ1bmN0aW9ucyBhcmUgaW50ZWdyYXRlZCB3aXRoIHRoZSBmaXh0
dXJlIG1lY2hhbmlzbSBhbmQgb2JleSB0aGUgcHJvcGVyCisgIHNjb3BlIHJ1bGVzIG9mIGZpeHR1
cmVzIGludm9sdmVkIGluIHRoZSBjYWxsLgorCiAuLiBfYHVuaXR0ZXN0LnB5IG1vZHVsZWA6IGh0
dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS91bml0dGVzdC5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4veWllbGRmaXh0dXJlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi95
aWVsZGZpeHR1cmUucnN0CmluZGV4IDZmZDFlZGFjMmY1ZTAwNDJlZWUxODYzZWFiZDM5MzU0MGZj
ODYzMjMuLjQ3NTkwZjlkYjk2ZjY1NGExM2RmYjQ2YTI1NDFmMmUxNzBlNDU0YmYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi95aWVsZGZpeHR1cmUucnN0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi95aWVsZGZpeHR1cmUucnN0CkBAIC01LDkgKzUsOSBAQAogInlpZWxkX2ZpeHR1cmUi
IGZ1bmN0aW9ucwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIGRlcHJlY2F0ZWQ6OiAzLjAKIAotLi4gdmVyc2lvbmFk
ZGVkOjogMi40CisKKwogCiAuLiBpbXBvcnRhbnQ6OgogICAgIFNpbmNlIHB5dGVzdC0zLjAsIGZp
eHR1cmVzIHVzaW5nIHRoZSBub3JtYWwgYGBmaXh0dXJlYGAgZGVjb3JhdG9yIGNhbiB1c2UgYSBg
YHlpZWxkYGAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL2dldF9pc3N1ZXMucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9leHRyYS9nZXRfaXNzdWVzLnB5CmluZGV4IGMwMjY5NzJiMTQ1ZGEwNTQ2MmMx
YmE2NzhhNmNlYTU2ZTQwMWI4ZDYuLjU5OGExYWY0MDlmMzJhNDI4ZDlhODMxNzczYTllZTZjYTU1
ZmQ1ZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL2dldF9pc3N1ZXMucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZXh0cmEvZ2V0X2lzc3Vlcy5weQpAQCAtMSw0ICsxLDYgQEAKKyMgLSotIGNv
ZGluZzogdXRmLTggLSotCiBpbXBvcnQganNvbgorCiBpbXBvcnQgcHkKIGltcG9ydCByZXF1ZXN0
cwogCkBAIC02NCw5ICs2Niw5IEBAIGRlZiByZXBvcnQoaXNzdWVzKToKICAgICAgICAgcHJpbnQo
dGl0bGUpCiAgICAgICAgICMgcHJpbnQoKQogICAgICAgICAjIGxpbmVzID0gYm9keS5zcGxpdCgi
XG4iKQotICAgICAgICAjIHByaW50ICgiXG4iLmpvaW4obGluZXNbOjNdKSkKKyAgICAgICAgIyBw
cmludCgiXG4iLmpvaW4obGluZXNbOjNdKSkKICAgICAgICAgIyBpZiBsZW4obGluZXMpID4gMyBv
ciBsZW4oYm9keSkgPiAyNDA6Ci0gICAgICAgICMgICAgcHJpbnQgKCIuLi4iKQorICAgICAgICAj
ICAgIHByaW50KCIuLi4iKQogICAgIHByaW50KCJcblxuRm91bmQgJXMgb3BlbiBpc3N1ZXMiICUg
bGVuKGlzc3VlcykpCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvc2V0dXAtcHku
dGVzdC9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL3NldHVwLXB5LnRlc3Qvc2V0dXAucHkK
aW5kZXggZDA1NjBjZTFmNWY0NDM3ZTU3NGFlYmM1MmRkZjhiOGEzN2I4NjA1ZC4uY2ZlMThjMjhm
NTIxMTI3ZjgyNjdjMzlhMDA5ZjI0ZjRjODJjMTcwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZXh0cmEvc2V0dXAtcHkudGVzdC9zZXR1cC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9zZXR1
cC1weS50ZXN0L3NldHVwLnB5CkBAIC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KIGltcG9ydCBzeXMKIGZyb20gZGlzdHV0aWxzLmNvcmUgaW1wb3J0IHNldHVwCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3B5cHJvamVjdC50b21sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvcHlwcm9qZWN0
LnRvbWwKaW5kZXggNjVlNmJmNTliZjFjMjk1NTIzMDEzOGQ5MDgwMTQ5MDQ5ZjJjZmYyMC4uMmE0
Y2Q2NWMxMThlMDZlOTc3ZTlhZGZkZmIwMDdkYzA1NzgzNWNiYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvcHlwcm9qZWN0LnRvbWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvcHlwcm9qZWN0LnRvbWwKQEAg
LTEsMjAgKzEsMjggQEAKIFtidWlsZC1zeXN0ZW1dCiByZXF1aXJlcyA9IFsKLSAgInNldHVwdG9v
bHMiLAorICAjIHN5bmMgd2l0aCBzZXR1cC5weSB1bnRpbCB3ZSBkaXNjYXJkIG5vbi1wZXAtNTE3
LzUxOAorICAic2V0dXB0b29scz49NDAuMCIsCiAgICJzZXR1cHRvb2xzLXNjbSIsCiAgICJ3aGVl
bCIsCiBdCitidWlsZC1iYWNrZW5kID0gInNldHVwdG9vbHMuYnVpbGRfbWV0YSIKIAogW3Rvb2wu
dG93bmNyaWVyXQogcGFja2FnZSA9ICJweXRlc3QiCiBwYWNrYWdlX2RpciA9ICJzcmMiCiBmaWxl
bmFtZSA9ICJDSEFOR0VMT0cucnN0IgogZGlyZWN0b3J5ID0gImNoYW5nZWxvZy8iCit0aXRsZV9m
b3JtYXQgPSAicHl0ZXN0IHt2ZXJzaW9ufSAoe3Byb2plY3RfZGF0ZX0pIgogdGVtcGxhdGUgPSAi
Y2hhbmdlbG9nL190ZW1wbGF0ZS5yc3QiCiAKICAgW1t0b29sLnRvd25jcmllci50eXBlXV0KICAg
ZGlyZWN0b3J5ID0gInJlbW92YWwiCi0gIG5hbWUgPSAiRGVwcmVjYXRpb25zIGFuZCBSZW1vdmFs
cyIKKyAgbmFtZSA9ICJSZW1vdmFscyIKKyAgc2hvd2NvbnRlbnQgPSB0cnVlCisKKyAgW1t0b29s
LnRvd25jcmllci50eXBlXV0KKyAgZGlyZWN0b3J5ID0gImRlcHJlY2F0aW9uIgorICBuYW1lID0g
IkRlcHJlY2F0aW9ucyIKICAgc2hvd2NvbnRlbnQgPSB0cnVlCiAKICAgW1t0b29sLnRvd25jcmll
ci50eXBlXV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvYXBwZW5kX2NvZGVjb3Zf
dG9rZW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2FwcGVuZF9jb2RlY292X3Rva2VuLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIzYTgyMDc1ZmExOTg1ZTljZDI5ZmMzMzU4YTFmMzBkMjVjMWQxMzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2FwcGVuZF9jb2RlY292X3Rva2VuLnB5
CkBAIC0wLDAgKzEsMzUgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisiIiIKK0FwcGVuZHMg
dGhlIGNvZGVjb3YgdG9rZW4gdG8gdGhlICdjb2RlY292LnltbCcgZmlsZSBhdCB0aGUgcm9vdCBv
ZiB0aGUgcmVwb3NpdG9yeS4KK1RoaXMgaXMgZG9uZSBieSBDSSBkdXJpbmcgUFJzIGFuZCBidWls
ZHMgb24gdGhlIHB5dGVzdC1kZXYgcmVwb3NpdG9yeSBzbyB3ZSBjYW4gdXBsb2FkIGNvdmVyYWdl
LCBhdCBsZWFzdAordW50aWwgY29kZWNvdiBncm93cyBzb21lIG5hdGl2ZSBpbnRlZ3JhdGlvbiBs
aWtlIGl0IGhhcyB3aXRoIFRyYXZpcyBhbmQgQXBwVmV5b3IuCitTZWUgZGlzY3Vzc2lvbiBpbiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC82NDQxIGZvciBtb3JlIGlu
Zm9ybWF0aW9uLgorIiIiCitpbXBvcnQgb3MucGF0aAorZnJvbSB0ZXh0d3JhcCBpbXBvcnQgZGVk
ZW50CisKKworZGVmIG1haW4oKToKKyAgICB0aGlzX2RpciA9IG9zLnBhdGguZGlybmFtZShfX2Zp
bGVfXykKKyAgICBjb3ZfZmlsZSA9IG9zLnBhdGguam9pbih0aGlzX2RpciwgIi4uIiwgImNvZGVj
b3YueW1sIikKKworICAgIGFzc2VydCBvcy5wYXRoLmlzZmlsZShjb3ZfZmlsZSksICJ7Y292X2Zp
bGV9IGRvZXMgbm90IGV4aXN0Ii5mb3JtYXQoCisgICAgICAgIGNvdl9maWxlPWNvdl9maWxlCisg
ICAgKQorCisgICAgd2l0aCBvcGVuKGNvdl9maWxlLCAiYSIpIGFzIGY6CisgICAgICAgICMgdG9r
ZW4gZnJvbTogaHR0cHM6Ly9jb2RlY292LmlvL2doL3B5dGVzdC1kZXYvcHl0ZXN0L3NldHRpbmdz
CisgICAgICAgICMgdXNlIHNhbWUgVVJMIHRvIHJlZ2VuZXJhdGUgaXQgaWYgbmVlZGVkCisgICAg
ICAgIHRleHQgPSBkZWRlbnQoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGNvZGVjb3Y6
CisgICAgICAgICAgICAgIHRva2VuOiAiMWVjYTNiMWYtMzFhMi00ZmI4LWE4YzMtMTM4YjQ0MWI1
MGE3IgorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBmLndyaXRlKHRleHQpCisKKyAg
ICBwcmludCgiVG9rZW4gdXBkYXRlZDoiLCBjb3ZfZmlsZSkKKworCitpZiBfX25hbWVfXyA9PSAi
X19tYWluX18iOgorICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9j
YWxsLXRveC5iYXQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2NhbGwtdG94LmJhdApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODZmYjI1YzFkZjFkMTAxYTE5NDhkOWNiYzk2ZTk2OWI1MjRj
YmJhNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zY3JpcHRzL2NhbGwtdG94LmJhdAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBA
QAotUkVNIHNraXAgImNvdmVyYWxscyIgcnVuIGluIFBScyBvciBmb3JrcwotaWYgIiVUT1hFTlYl
IiA9PSAiY292ZXJhbGxzIiAoCi0gICAgaWYgbm90IGRlZmluZWQgQ09WRVJBTExTX1JFUE9fVE9L
RU4gKAotICAgICAgICBlY2hvIHNraXBwaW5nIGNvdmVyYWxscyBydW4gYmVjYXVzZSBDT1ZFUkFM
TFNfUkVQT19UT0tFTiBpcyBub3QgZGVmaW5lZAotICAgICAgICBleGl0IC9iIDAKLSAgICApCi0p
Ci1DOlxQeXRob24zNlxweXRob24gLW0gdG94CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3Jp
cHRzL2luc3RhbGwtcHlweS5iYXQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2luc3RhbGwtcHlweS5i
YXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwMTJlYTQ2YWNhNDVmZjMyMDdmM2Nl
Zjg5YmE0Y2IyZDZkYzE3ZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9pbnN0YWxsLXB5cHkuYmF0CisrKyAvZGV2L251
bGwKQEAgLTEsNiArMCwwIEBACi1SRU0gaW5zdGFsbCBweXB5IHVzaW5nIGNob2NvCi1SRU0gcmVk
aXJlY3QgdG8gYSBmaWxlIGJlY2F1c2UgY2hvY28gaW5zdGFsbCBweXRob24ucHlweSBpcyB0b28g
bm9pc3kuIElmIHRoZSBjb21tYW5kIGZhaWxzLCB3cml0ZSBvdXRwdXQgdG8gY29uc29sZQotY2hv
Y28gaW5zdGFsbCBweXRob24ucHlweSA+IHB5cHktaW5zdC5sb2cgMj4mMSB8fCAodHlwZSBweXB5
LWluc3QubG9nICYgZXhpdCAvYiAxKQotc2V0IFBBVEg9QzpcdG9vbHNccHlweVxweXB5OyVQQVRI
JSAjIHNvIHRveCBjYW4gZmluZCBweXB5Ci1lY2hvIFB5UHkgaW5zdGFsbGVkCi1weXB5IC0tdmVy
c2lvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9wdWJsaXNoX2doX3JlbGVhc2Vf
bm90ZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3B1Ymxpc2hfZ2hfcmVsZWFzZV9ub3Rlcy5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZmY5NDZiNThhM2I0YzdmNzIwYzNjYTk3NTVkNjY3NWJjZTQ2NDYwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9wdWJsaXNoX2doX3JlbGVhc2Vf
bm90ZXMucHkKQEAgLTAsMCArMSw5NiBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgor
U2NyaXB0IHVzZWQgdG8gcHVibGlzaCBHaXRIdWIgcmVsZWFzZSBub3RlcyBleHRyYWN0ZWQgZnJv
bSBDSEFOR0VMT0cucnN0LgorCitUaGlzIHNjcmlwdCBpcyBtZWFudCB0byBiZSBleGVjdXRlZCBh
ZnRlciBhIHN1Y2Nlc3NmdWwgZGVwbG95bWVudCBpbiBUcmF2aXMuCisKK1VzZXMgdGhlIGZvbGxv
d2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CisKKyogR0lUX1RBRzogdGhlIG5hbWUgb2YgdGhl
IHRhZyBvZiB0aGUgY3VycmVudCBjb21taXQuCisqIEdIX1JFTEVBU0VfTk9URVNfVE9LRU46IGEg
cGVyc29uYWwgYWNjZXNzIHRva2VuIHdpdGggJ3JlcG8nIHBlcm1pc3Npb25zLiBJdCBzaG91bGQg
YmUgZW5jcnlwdGVkIHVzaW5nOgorCisgICAgJHRyYXZpcyBlbmNyeXB0IEdIX1JFTEVBU0VfTk9U
RVNfVE9LRU49PHRva2VuPiAtciBweXRlc3QtZGV2L3B5dGVzdAorCisgIEFuZCB0aGUgY29udGVu
dHMgcGFzdGVkIGluIHRoZSBgYGRlcGxveS5lbnYuc2VjdXJlYGAgc2VjdGlvbiBpbiB0aGUgYGB0
cmF2aXMueW1sYGAgZmlsZS4KKworVGhlIHNjcmlwdCBhbHNvIHJlcXVpcmVzIGBgcGFuZG9jYGAg
dG8gYmUgcHJldmlvdXNseSBpbnN0YWxsZWQgaW4gdGhlIHN5c3RlbS4KKworUmVxdWlyZXMgUHl0
aG9uMy42Ky4KKyIiIgoraW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzeXMKK2Zyb20gcGF0
aGxpYiBpbXBvcnQgUGF0aAorCitpbXBvcnQgZ2l0aHViMworaW1wb3J0IHB5cGFuZG9jCisKKwor
ZGVmIHB1Ymxpc2hfZ2l0aHViX3JlbGVhc2Uoc2x1ZywgdG9rZW4sIHRhZ19uYW1lLCBib2R5KToK
KyAgICBnaXRodWIgPSBnaXRodWIzLmxvZ2luKHRva2VuPXRva2VuKQorICAgIG93bmVyLCByZXBv
ID0gc2x1Zy5zcGxpdCgiLyIpCisgICAgcmVwbyA9IGdpdGh1Yi5yZXBvc2l0b3J5KG93bmVyLCBy
ZXBvKQorICAgIHJldHVybiByZXBvLmNyZWF0ZV9yZWxlYXNlKHRhZ19uYW1lPXRhZ19uYW1lLCBi
b2R5PWJvZHkpCisKKworZGVmIHBhcnNlX2NoYW5nZWxvZyh0YWdfbmFtZSk6CisgICAgcCA9IFBh
dGgoX19maWxlX18pLnBhcmVudC5wYXJlbnQgLyAiQ0hBTkdFTE9HLnJzdCIKKyAgICBjaGFuZ2Vs
b2dfbGluZXMgPSBwLnJlYWRfdGV4dChlbmNvZGluZz0iVVRGLTgiKS5zcGxpdGxpbmVzKCkKKwor
ICAgIHRpdGxlX3JlZ2V4ID0gcmUuY29tcGlsZShyInB5dGVzdCAoXGRcLlxkK1wuXGQrKSBcKFxk
ezR9LVxkezJ9LVxkezJ9XCkiKQorICAgIGNvbnN1bWluZ192ZXJzaW9uID0gRmFsc2UKKyAgICB2
ZXJzaW9uX2xpbmVzID0gW10KKyAgICBmb3IgbGluZSBpbiBjaGFuZ2Vsb2dfbGluZXM6CisgICAg
ICAgIG0gPSB0aXRsZV9yZWdleC5tYXRjaChsaW5lKQorICAgICAgICBpZiBtOgorICAgICAgICAg
ICAgIyBmb3VuZCB0aGUgdmVyc2lvbiB3ZSB3YW50OiBzdGFydCB0byBjb25zdW1lIGxpbmVzIHVu
dGlsIHdlIGZpbmQgdGhlIG5leHQgdmVyc2lvbiB0aXRsZQorICAgICAgICAgICAgaWYgbS5ncm91
cCgxKSA9PSB0YWdfbmFtZToKKyAgICAgICAgICAgICAgICBjb25zdW1pbmdfdmVyc2lvbiA9IFRy
dWUKKyAgICAgICAgICAgICMgZm91bmQgYSBuZXcgdmVyc2lvbiB0aXRsZSB3aGlsZSBwYXJzaW5n
IHRoZSB2ZXJzaW9uIHdlIHdhbnQ6IGJyZWFrIG91dAorICAgICAgICAgICAgZWxpZiBjb25zdW1p
bmdfdmVyc2lvbjoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBpZiBjb25zdW1pbmdf
dmVyc2lvbjoKKyAgICAgICAgICAgIHZlcnNpb25fbGluZXMuYXBwZW5kKGxpbmUpCisKKyAgICBy
ZXR1cm4gIlxuIi5qb2luKHZlcnNpb25fbGluZXMpCisKKworZGVmIGNvbnZlcnRfcnN0X3RvX21k
KHRleHQpOgorICAgIHJldHVybiBweXBhbmRvYy5jb252ZXJ0X3RleHQodGV4dCwgIm1kIiwgZm9y
bWF0PSJyc3QiKQorCisKK2RlZiBtYWluKGFyZ3YpOgorICAgIGlmIGxlbihhcmd2KSA+IDE6Cisg
ICAgICAgIHRhZ19uYW1lID0gYXJndlsxXQorICAgIGVsc2U6CisgICAgICAgIHRhZ19uYW1lID0g
b3MuZW52aXJvbi5nZXQoIlRSQVZJU19UQUciKQorICAgICAgICBpZiBub3QgdGFnX25hbWU6Cisg
ICAgICAgICAgICBwcmludCgidGFnX25hbWUgbm90IGdpdmVuIGFuZCAkVFJBVklTX1RBRyBub3Qg
c2V0IiwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgcmV0dXJuIDEKKworICAgIHRva2Vu
ID0gb3MuZW52aXJvbi5nZXQoIkdIX1JFTEVBU0VfTk9URVNfVE9LRU4iKQorICAgIGlmIG5vdCB0
b2tlbjoKKyAgICAgICAgcHJpbnQoIkdIX1JFTEVBU0VfTk9URVNfVE9LRU4gbm90IHNldCIsIGZp
bGU9c3lzLnN0ZGVycikKKyAgICAgICAgcmV0dXJuIDEKKworICAgIHNsdWcgPSBvcy5lbnZpcm9u
LmdldCgiVFJBVklTX1JFUE9fU0xVRyIpCisgICAgaWYgbm90IHNsdWc6CisgICAgICAgIHByaW50
KCJUUkFWSVNfUkVQT19TTFVHIG5vdCBzZXQiLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJl
dHVybiAxCisKKyAgICByc3RfYm9keSA9IHBhcnNlX2NoYW5nZWxvZyh0YWdfbmFtZSkKKyAgICBt
ZF9ib2R5ID0gY29udmVydF9yc3RfdG9fbWQocnN0X2JvZHkpCisgICAgaWYgbm90IHB1Ymxpc2hf
Z2l0aHViX3JlbGVhc2Uoc2x1ZywgdG9rZW4sIHRhZ19uYW1lLCBtZF9ib2R5KToKKyAgICAgICAg
cHJpbnQoIkNvdWxkIG5vdCBwdWJsaXNoIHJlbGVhc2Ugbm90ZXM6IiwgZmlsZT1zeXMuc3RkZXJy
KQorICAgICAgICBwcmludChtZF9ib2R5LCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJldHVy
biA1CisKKyAgICBwcmludCgpCisgICAgcHJpbnQoZiJSZWxlYXNlIG5vdGVzIGZvciB7dGFnX25h
bWV9IHB1Ymxpc2hlZCBzdWNjZXNzZnVsbHk6IikKKyAgICBwcmludChmImh0dHBzOi8vZ2l0aHVi
LmNvbS97c2x1Z30vcmVsZWFzZXMvdGFnL3t0YWdfbmFtZX0iKQorICAgIHByaW50KCkKKyAgICBy
ZXR1cm4gMAorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgc3lzLmV4aXQobWFp
bihzeXMuYXJndikpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3JlbGVhc2UubWlu
b3IucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxlYXNlLm1pbm9yLnJzdApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45YTQ4OGVkYmM1MmVjYjA5YmQ2ZDUxODI4NDlkZTg2OWI1MGI1ZGJlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxlYXNlLm1pbm9yLnJzdApAQCAtMCwwICsxLDI3
IEBACitweXRlc3Qte3ZlcnNpb259Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworVGhlIHB5dGVzdCB0ZWFtIGlzIHByb3VkIHRvIGFubm91bmNlIHRoZSB7dmVyc2lv
bn0gcmVsZWFzZSEKKworcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0
aCBtb3JlIHRoYW4gYSAyMDAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55
IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KKworVGhpcyByZWxlYXNlIGNv
bnRhaW5zIGEgbnVtYmVyIG9mIGJ1Z3MgZml4ZXMgYW5kIGltcHJvdmVtZW50cywgc28gdXNlcnMg
YXJlIGVuY291cmFnZWQKK3RvIHRha2UgYSBsb29rIGF0IHRoZSBDSEFOR0VMT0c6CisKKyAgICBo
dHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwKKworRm9yIGNv
bXBsZXRlIGRvY3VtZW50YXRpb24sIHBsZWFzZSB2aXNpdDoKKworICAgIGh0dHBzOi8vZG9jcy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC8KKworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5
cGkgdmlhOgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hv
IGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKwore2NvbnRyaWJ1dG9y
c30KKworSGFwcHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxlYXNlLnBhdGNoLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NjcmlwdHMvcmVsZWFzZS5wYXRjaC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFhZDJkYmQ3NzVhOWViNDc3
M2Y4M2FhYWYxMDQ3ZTJkYjkyYTJjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Nj
cmlwdHMvcmVsZWFzZS5wYXRjaC5yc3QKQEAgLTAsMCArMSwxNyBAQAorcHl0ZXN0LXt2ZXJzaW9u
fQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCB7dmVy
c2lvbn0gaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZp
eCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisg
IHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2
YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0
bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1v
bmcgdGhlbToKKwore2NvbnRyaWJ1dG9yc30KKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3Qg
RGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxlYXNl
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxlYXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyMTc4ZmNm
Njc0MWZjYTY3MzBkOWZhODdhYThlY2VhYWJiYjU1NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zY3JpcHRzL3JlbGVhc2UucHkKQEAgLTAsMCArMSwxMTYgQEAKKyMgLSotIGNvZGlu
ZzogdXRmLTggLSotCisiIiIKK0ludm9rZSBkZXZlbG9wbWVudCB0YXNrcy4KKyIiIgoraW1wb3J0
IGFyZ3BhcnNlCitmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgKK2Zyb20gc3VicHJvY2VzcyBpbXBv
cnQgY2FsbAorZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBjaGVja19jYWxsCitmcm9tIHN1YnByb2Nl
c3MgaW1wb3J0IGNoZWNrX291dHB1dAorCitmcm9tIGNvbG9yYW1hIGltcG9ydCBGb3JlCitmcm9t
IGNvbG9yYW1hIGltcG9ydCBpbml0CisKKworZGVmIGFubm91bmNlKHZlcnNpb24pOgorICAgICIi
IkdlbmVyYXRlcyBhIG5ldyByZWxlYXNlIGFubm91bmNlbWVudCBlbnRyeSBpbiB0aGUgZG9jcy4i
IiIKKyAgICAjIEdldCBvdXIgbGlzdCBvZiBhdXRob3JzCisgICAgc3Rkb3V0ID0gY2hlY2tfb3V0
cHV0KFsiZ2l0IiwgImRlc2NyaWJlIiwgIi0tYWJicmV2PTAiLCAiLS10YWdzIl0pCisgICAgc3Rk
b3V0ID0gc3Rkb3V0LmRlY29kZSgidXRmLTgiKQorICAgIGxhc3RfdmVyc2lvbiA9IHN0ZG91dC5z
dHJpcCgpCisKKyAgICBzdGRvdXQgPSBjaGVja19vdXRwdXQoCisgICAgICAgIFsiZ2l0IiwgImxv
ZyIsICJ7fS4uSEVBRCIuZm9ybWF0KGxhc3RfdmVyc2lvbiksICItLWZvcm1hdD0lYU4iXQorICAg
ICkKKyAgICBzdGRvdXQgPSBzdGRvdXQuZGVjb2RlKCJ1dGYtOCIpCisKKyAgICBjb250cmlidXRv
cnMgPSBzZXQoc3Rkb3V0LnNwbGl0bGluZXMoKSkKKworICAgIHRlbXBsYXRlX25hbWUgPSAoCisg
ICAgICAgICJyZWxlYXNlLm1pbm9yLnJzdCIgaWYgdmVyc2lvbi5lbmRzd2l0aCgiLjAiKSBlbHNl
ICJyZWxlYXNlLnBhdGNoLnJzdCIKKyAgICApCisgICAgdGVtcGxhdGVfdGV4dCA9ICgKKyAgICAg
ICAgUGF0aChfX2ZpbGVfXykucGFyZW50LmpvaW5wYXRoKHRlbXBsYXRlX25hbWUpLnJlYWRfdGV4
dChlbmNvZGluZz0iVVRGLTgiKQorICAgICkKKworICAgIGNvbnRyaWJ1dG9yc190ZXh0ID0gKAor
ICAgICAgICAiXG4iLmpvaW4oIioge30iLmZvcm1hdChuYW1lKSBmb3IgbmFtZSBpbiBzb3J0ZWQo
Y29udHJpYnV0b3JzKSkgKyAiXG4iCisgICAgKQorICAgIHRleHQgPSB0ZW1wbGF0ZV90ZXh0LmZv
cm1hdCh2ZXJzaW9uPXZlcnNpb24sIGNvbnRyaWJ1dG9ycz1jb250cmlidXRvcnNfdGV4dCkKKwor
ICAgIHRhcmdldCA9IFBhdGgoX19maWxlX18pLnBhcmVudC5qb2lucGF0aCgKKyAgICAgICAgIi4u
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLXt9LnJzdCIuZm9ybWF0KHZlcnNpb24pCisgICAgKQor
ICAgIHRhcmdldC53cml0ZV90ZXh0KHRleHQsIGVuY29kaW5nPSJVVEYtOCIpCisgICAgcHJpbnQo
ZiJ7Rm9yZS5DWUFOfVtnZW5lcmF0ZS5hbm5vdW5jZV0ge0ZvcmUuUkVTRVR9R2VuZXJhdGVkIHt0
YXJnZXQubmFtZX0iKQorCisgICAgIyBVcGRhdGUgaW5kZXggd2l0aCB0aGUgbmV3IHJlbGVhc2Ug
ZW50cnkKKyAgICBpbmRleF9wYXRoID0gUGF0aChfX2ZpbGVfXykucGFyZW50LmpvaW5wYXRoKCIu
Li9kb2MvZW4vYW5ub3VuY2UvaW5kZXgucnN0IikKKyAgICBsaW5lcyA9IGluZGV4X3BhdGgucmVh
ZF90ZXh0KGVuY29kaW5nPSJVVEYtOCIpLnNwbGl0bGluZXMoKQorICAgIGluZGVudCA9ICIgICAi
CisgICAgZm9yIGluZGV4LCBsaW5lIGluIGVudW1lcmF0ZShsaW5lcyk6CisgICAgICAgIGlmIGxp
bmUuc3RhcnRzd2l0aCgie31yZWxlYXNlLSIuZm9ybWF0KGluZGVudCkpOgorICAgICAgICAgICAg
bmV3X2xpbmUgPSBpbmRlbnQgKyB0YXJnZXQuc3RlbQorICAgICAgICAgICAgaWYgbGluZSAhPSBu
ZXdfbGluZToKKyAgICAgICAgICAgICAgICBsaW5lcy5pbnNlcnQoaW5kZXgsIG5ld19saW5lKQor
ICAgICAgICAgICAgICAgIGluZGV4X3BhdGgud3JpdGVfdGV4dCgiXG4iLmpvaW4obGluZXMpICsg
IlxuIiwgZW5jb2Rpbmc9IlVURi04IikKKyAgICAgICAgICAgICAgICBwcmludCgKKyAgICAgICAg
ICAgICAgICAgICAgZiJ7Rm9yZS5DWUFOfVtnZW5lcmF0ZS5hbm5vdW5jZV0ge0ZvcmUuUkVTRVR9
VXBkYXRlZCB7aW5kZXhfcGF0aC5uYW1lfSIKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50KAorICAgICAgICAgICAgICAgICAgICBmIntG
b3JlLkNZQU59W2dlbmVyYXRlLmFubm91bmNlXSB7Rm9yZS5SRVNFVH1Ta2lwIHtpbmRleF9wYXRo
Lm5hbWV9IChhbHJlYWR5IGNvbnRhaW5zIHJlbGVhc2UpIgorICAgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgIGJyZWFrCisKKyAgICBjaGVja19jYWxsKFsiZ2l0IiwgImFkZCIsIHN0cih0YXJn
ZXQpXSkKKworCitkZWYgcmVnZW4oKToKKyAgICAiIiJDYWxsIHJlZ2VuZG9jIHRvb2wgdG8gdXBk
YXRlIGV4YW1wbGVzIGFuZCBweXRlc3Qgb3V0cHV0IGluIHRoZSBkb2NzLiIiIgorICAgIHByaW50
KGYie0ZvcmUuQ1lBTn1bZ2VuZXJhdGUucmVnZW5dIHtGb3JlLlJFU0VUfVVwZGF0aW5nIGRvY3Mi
KQorICAgIGNoZWNrX2NhbGwoWyJ0b3giLCAiLWUiLCAicmVnZW4iXSkKKworCitkZWYgZml4X2Zv
cm1hdHRpbmcoKToKKyAgICAiIiJSdW5zIHByZS1jb21taXQgaW4gYWxsIGZpbGVzIHRvIGVuc3Vy
ZSB0aGV5IGFyZSBmb3JtYXR0ZWQgY29ycmVjdGx5IiIiCisgICAgcHJpbnQoCisgICAgICAgIGYi
e0ZvcmUuQ1lBTn1bZ2VuZXJhdGUuZml4IGxpbnRpbmddIHtGb3JlLlJFU0VUfUZpeGluZyBmb3Jt
YXR0aW5nIHVzaW5nIHByZS1jb21taXQiCisgICAgKQorICAgIGNhbGwoWyJwcmUtY29tbWl0Iiwg
InJ1biIsICItLWFsbC1maWxlcyJdKQorCisKK2RlZiBwcmVfcmVsZWFzZSh2ZXJzaW9uKToKKyAg
ICAiIiJHZW5lcmF0ZXMgbmV3IGRvY3MsIHJlbGVhc2UgYW5ub3VuY2VtZW50cyBhbmQgY3JlYXRl
cyBhIGxvY2FsIHRhZy4iIiIKKyAgICBhbm5vdW5jZSh2ZXJzaW9uKQorICAgIHJlZ2VuKCkKKyAg
ICBjaGFuZ2Vsb2codmVyc2lvbiwgd3JpdGVfb3V0PVRydWUpCisgICAgZml4X2Zvcm1hdHRpbmco
KQorCisgICAgbXNnID0gIlByZXBhcmluZyByZWxlYXNlIHZlcnNpb24ge30iLmZvcm1hdCh2ZXJz
aW9uKQorICAgIGNoZWNrX2NhbGwoWyJnaXQiLCAiY29tbWl0IiwgIi1hIiwgIi1tIiwgbXNnXSkK
KworICAgIHByaW50KCkKKyAgICBwcmludChmIntGb3JlLkNZQU59W2dlbmVyYXRlLnByZV9yZWxl
YXNlXSB7Rm9yZS5HUkVFTn1BbGwgZG9uZSEiKQorICAgIHByaW50KCkKKyAgICBwcmludChmIlBs
ZWFzZSBwdXNoIHlvdXIgYnJhbmNoIGFuZCBvcGVuIGEgUFIuIikKKworCitkZWYgY2hhbmdlbG9n
KHZlcnNpb24sIHdyaXRlX291dD1GYWxzZSk6CisgICAgaWYgd3JpdGVfb3V0OgorICAgICAgICBh
ZGRvcHRzID0gW10KKyAgICBlbHNlOgorICAgICAgICBhZGRvcHRzID0gWyItLWRyYWZ0Il0KKyAg
ICBjaGVja19jYWxsKFsidG93bmNyaWVyIiwgIi0teWVzIiwgIi0tdmVyc2lvbiIsIHZlcnNpb25d
ICsgYWRkb3B0cykKKworCitkZWYgbWFpbigpOgorICAgIGluaXQoYXV0b3Jlc2V0PVRydWUpCisg
ICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoInZlcnNpb24iLCBoZWxwPSJSZWxlYXNlIHZlcnNpb24iKQorICAgIG9wdGlvbnMgPSBw
YXJzZXIucGFyc2VfYXJncygpCisgICAgcHJlX3JlbGVhc2Uob3B0aW9ucy52ZXJzaW9uKQorCisK
K2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgbWFpbigpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zY3JpcHRzL3JlcG9ydC1jb3ZlcmFnZS5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMv
cmVwb3J0LWNvdmVyYWdlLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiY2YyMGNhOTI5ZmRlNzZhMDVhODZjYjk2
NGM1ZjgxNzAyM2UzODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3Jl
cG9ydC1jb3ZlcmFnZS5zaApAQCAtMCwwICsxLDE4IEBACisjIS91c3IvYmluL2VudiBiYXNoCisK
K3NldCAtZQorc2V0IC14CisKK2lmIFsgLXogIiRUT1hFTlYiIF07IHRoZW4KKyAgcHl0aG9uIC1t
IHBpcCBpbnN0YWxsIGNvdmVyYWdlCitlbHNlCisgICMgQWRkIGxhc3QgVE9YRU5WIHRvICRQQVRI
LgorICBQQVRIPSIkUFdELy50b3gvJHtUT1hFTlYjIyosfS9iaW46JFBBVEgiCitmaQorCitweXRo
b24gLW0gY292ZXJhZ2UgY29tYmluZQorcHl0aG9uIC1tIGNvdmVyYWdlIHhtbAorcHl0aG9uIC1t
IGNvdmVyYWdlIHJlcG9ydCAtbQorIyBTZXQgLS1jb25uZWN0LXRpbWVvdXQgdG8gd29yayBhcm91
bmQgaHR0cHM6Ly9naXRodWIuY29tL2N1cmwvY3VybC9pc3N1ZXMvNDQ2MQorY3VybCAtUyAtTCAt
LWNvbm5lY3QtdGltZW91dCA1IC0tcmV0cnkgNiAtcyBodHRwczovL2NvZGVjb3YuaW8vYmFzaCAt
byBjb2RlY292LXVwbG9hZC5zaAorYmFzaCBjb2RlY292LXVwbG9hZC5zaCAtWiAtWCBmaXggLWYg
Y292ZXJhZ2UueG1sICIkQCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcmV0cnku
Y21kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZXRyeS5jbWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMzODM2NTA4
NTc2Yjg2OWVjMGZiODdhY2ZlZmFmMzY2NWE5NTMyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NjcmlwdHMvcmV0cnkuY21kCkBAIC0wLDAgKzEsMjEgQEAKK0BlY2hvIG9mZgorcmVt
IFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2FwcHZleW9yL2NpL2Jsb2IvbWFzdGVyL3Njcmlw
dHMvYXBwdmV5b3ItcmV0cnkuY21kCityZW0gaW5pdGlhdGUgdGhlIHJldHJ5IG51bWJlcgorc2V0
IHJldHJ5TnVtYmVyPTAKK3NldCBtYXhSZXRyaWVzPTMKKworOlJVTgorJSoKK3NldCBMYXN0RXJy
b3JMZXZlbD0lRVJST1JMRVZFTCUKK0lGICVMYXN0RXJyb3JMZXZlbCUgPT0gMCBHT1RPIDpFT0YK
K3NldCAvYSByZXRyeU51bWJlcj0lcmV0cnlOdW1iZXIlKzEKK0lGICVyZVRyeU51bWJlciUgPT0g
JW1heFJldHJpZXMlIChHT1RPIDpGQUlMRUQpCisKKzpSRVRSWQorc2V0IC9hIHJldHJ5TnVtYmVy
RGlzcD0lcmV0cnlOdW1iZXIlKzEKK0BlY2hvIENvbW1hbmQgIiUqIiBmYWlsZWQgd2l0aCBleGl0
IGNvZGUgJUxhc3RFcnJvckxldmVsJS4gUmV0cnlpbmcgJXJldHJ5TnVtYmVyRGlzcCUgb2YgJW1h
eFJldHJpZXMlCitHT1RPIDpSVU4KKworOiBGQUlMRUQKK0BlY2hvIFNvcnJ5LCB3ZSB0cmllZCBy
dW5uaW5nIGNvbW1hbmQgZm9yICVtYXhSZXRyaWVzJSB0aW1lcyBhbmQgYWxsIGF0dGVtcHRzIHdl
cmUgdW5zdWNjZXNzZnVsIQorRVhJVCAvQiAlTGFzdEVycm9yTGV2ZWwlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zY3JpcHRzL3NldHVwLWNvdmVyYWdlLXZhcnMuYmF0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c2NyaXB0cy9zZXR1cC1jb3ZlcmFnZS12YXJzLmJhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Mjc5MjRiMTgzN2M4
MWFkNzhjY2QxMjQyOThiZTVlY2Y5OTFiMjA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc2NyaXB0cy9zZXR1cC1jb3ZlcmFnZS12YXJzLmJhdApAQCAtMCwwICsxLDcgQEAKK2lmICIl
UFlURVNUX0NPVkVSQUdFJSIgPT0gIjEiICgNCisgIHNldCAiX1BZVEVTVF9UT1hfQ09WRVJBR0Vf
UlVOPWNvdmVyYWdlIHJ1biAtbSINCisgIHNldCAiX1BZVEVTVF9UT1hfRVhUUkFfREVQPWNvdmVy
YWdlLWVuYWJsZS1zdWJwcm9jZXNzIg0KKyAgZWNobyBDb3ZlcmFnZSB2YXJzIGNvbmZpZ3VyZWQs
IFBZVEVTVF9DT1ZFUkFHRT0lUFlURVNUX0NPVkVSQUdFJQ0KKykgZWxzZSAoDQorICBlY2hvIFNr
aXBwaW5nIGNvdmVyYWdlIHZhcnMgc2V0dXAsIFBZVEVTVF9DT1ZFUkFHRT0lUFlURVNUX0NPVkVS
QUdFJQ0KKykNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3VwbG9hZC1jb3ZlcmFn
ZS5iYXQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3VwbG9hZC1jb3ZlcmFnZS5iYXQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWMyMTFkYzU1ODg3MDY5Y2VlZTRiYjc3NzE1MWE5NzlhNDc5MWU1YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvdXBsb2FkLWNvdmVyYWdlLmJhdApAQCAtMCwwICsx
LDE2IEBACitSRU0gc2NyaXB0IGNhbGxlZCBieSBBenVyZSB0byBjb21iaW5lIGFuZCB1cGxvYWQg
Y292ZXJhZ2UgaW5mb3JtYXRpb24gdG8gY29kZWNvdg0KK2lmICIlUFlURVNUX0NPVkVSQUdFJSIg
PT0gIjEiICgNCisgICAgZWNobyBQcmVwYXJlIHRvIHVwbG9hZCBjb3ZlcmFnZSBpbmZvcm1hdGlv
bg0KKyAgICBpZiBkZWZpbmVkIENPREVDT1ZfVE9LRU4gKA0KKyAgICAgICAgZWNobyBDT0RFQ09W
X1RPS0VOIGRlZmluZWQNCisgICAgKSBlbHNlICgNCisgICAgICAgIGVjaG8gQ09ERUNPVl9UT0tF
TiBOT1QgZGVmaW5lZA0KKyAgICApDQorICAgIHB5dGhvbiAtbSBwaXAgaW5zdGFsbCBjb2RlY292
DQorICAgIHB5dGhvbiAtbSBjb3ZlcmFnZSBjb21iaW5lDQorICAgIHB5dGhvbiAtbSBjb3ZlcmFn
ZSB4bWwNCisgICAgcHl0aG9uIC1tIGNvdmVyYWdlIHJlcG9ydCAtbQ0KKyAgICBzY3JpcHRzXHJl
dHJ5IHB5dGhvbiAtbSBjb2RlY292IC0tcmVxdWlyZWQgLVggZ2NvdiBweWNvdiBzZWFyY2ggLWYg
Y292ZXJhZ2UueG1sIC0tbmFtZSAlUFlURVNUX0NPREVDT1ZfTkFNRSUNCispIGVsc2UgKA0KKyAg
ICBlY2hvIFNraXBwaW5nIGNvdmVyYWdlIHVwbG9hZCwgUFlURVNUX0NPVkVSQUdFPSVQWVRFU1Rf
Q09WRVJBR0UlDQorKQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3czYy1pbXBvcnQubG9nCmluZGV4IDYxMTQ2M2Vj
ZGU0NTRhYzQ0YWY3MDg5NjE5YjUzOWNiNzZkY2VhOTguLmE3MDI2MjY2MTIxMzUxNTU0NTU3NmU4
YTczZWUxOWRlYTgzMWY4MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvdzNjLWlt
cG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy93M2MtaW1wb3J0LmxvZwpAQCAtMTQs
NSArMTQsMTIgQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBO
b25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0
cy9jYWxsLXRveC5iYXQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2luc3RhbGwtcHlweS5iYXQKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zY3JpcHRzL2FwcGVuZF9jb2RlY292X3Rva2VuLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c2NyaXB0cy9wdWJsaXNoX2doX3JlbGVhc2Vfbm90ZXMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRz
L3JlbGVhc2UubWlub3IucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxlYXNlLnBhdGNoLnJz
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcmVsZWFzZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMv
cmVwb3J0LWNvdmVyYWdlLnNoCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZXRyeS5jbWQKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zY3JpcHRzL3NldHVwLWNvdmVyYWdlLXZhcnMuYmF0CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2Ny
aXB0cy91cGxvYWQtY292ZXJhZ2UuYmF0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zZXR1cC5j
ZmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zZXR1cC5jZmcKaW5kZXggODE2NTM5ZTJlYzZmYjhkNzllMDgwNDll
NTRiNTk2NTEwMDI4YWFkOS4uMzY4ZGYxZTFhYzA3N2FkYmIyZDc2OTliNmU5NmM4NjYwM2YzMDU1
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2V0dXAuY2ZnCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Nl
dHVwLmNmZwpAQCAtMSwzICsxLDU4IEBACitbbWV0YWRhdGFdCisKK25hbWUgPSBweXRlc3QKK2Rl
c2NyaXB0aW9uID0gcHl0ZXN0OiBzaW1wbGUgcG93ZXJmdWwgdGVzdGluZyB3aXRoIFB5dGhvbgor
bG9uZ19kZXNjcmlwdGlvbiA9IGZpbGU6IFJFQURNRS5yc3QKK3VybCA9IGh0dHBzOi8vZG9jcy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC8KK3Byb2plY3RfdXJscyA9CisgICAgU291cmNlPWh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdAorICAgIFRyYWNrZXI9aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3VlcworCithdXRob3IgPSBIb2xnZXIgS3Jla2VsLCBC
cnVubyBPbGl2ZWlyYSwgUm9ubnkgUGZhbm5zY2htaWR0LCBGbG9yaXMgQnJ1eW5vb2doZSwgQnJp
YW5uYSBMYXVnaGVyLCBGbG9yaWFuIEJydWhpbiBhbmQgb3RoZXJzCisKK2xpY2Vuc2UgPSBNSVQg
bGljZW5zZQorbGljZW5zZV9maWxlID0gTElDRU5TRQora2V5d29yZHMgPSB0ZXN0LCB1bml0dGVz
dAorY2xhc3NpZmllcnMgPQorICAgIERldmVsb3BtZW50IFN0YXR1cyA6OiA2IC0gTWF0dXJlCisg
ICAgSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycworICAgIExpY2Vuc2UgOjogT1NJIEFw
cHJvdmVkIDo6IE1JVCBMaWNlbnNlCisgICAgT3BlcmF0aW5nIFN5c3RlbSA6OiBQT1NJWAorICAg
IE9wZXJhdGluZyBTeXN0ZW0gOjogTWljcm9zb2Z0IDo6IFdpbmRvd3MKKyAgICBPcGVyYXRpbmcg
U3lzdGVtIDo6IE1hY09TIDo6IE1hY09TIFgKKyAgICBUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9w
bWVudCA6OiBUZXN0aW5nCisgICAgVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGli
cmFyaWVzCisgICAgVG9waWMgOjogVXRpbGl0aWVzCisgICAgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2Ug
OjogUHl0aG9uIDo6IDIKKyAgICBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43
CisgICAgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMKKyAgICBQcm9ncmFtbWlu
ZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy40CisgICAgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjog
UHl0aG9uIDo6IDMuNQorICAgIFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjYK
KyAgICBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy43CisgICAgUHJvZ3JhbW1p
bmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuOAorICAgIFByb2dyYW1taW5nIExhbmd1YWdlIDo6
IFB5dGhvbiA6OiAzLjkKK3BsYXRmb3JtcyA9IHVuaXgsIGxpbnV4LCBvc3gsIGN5Z3dpbiwgd2lu
MzIKKworW29wdGlvbnNdCit6aXBfc2FmZSA9IG5vCitwYWNrYWdlcyA9CisgICAgX3B5dGVzdAor
ICAgIF9weXRlc3QuX2NvZGUKKyAgICBfcHl0ZXN0Ll9pbworICAgIF9weXRlc3QuYXNzZXJ0aW9u
CisgICAgX3B5dGVzdC5jb25maWcKKyAgICBfcHl0ZXN0Lm1hcmsKKworcHlfbW9kdWxlcyA9IHB5
dGVzdAorcHl0aG9uX3JlcXVpcmVzID0gPj0yLjcsICE9My4wLiosICE9My4xLiosICE9My4yLios
ICE9My4zLioKKworCitbb3B0aW9ucy5lbnRyeV9wb2ludHNdCitjb25zb2xlX3NjcmlwdHMgPQor
CXB5dGVzdD1weXRlc3Q6bWFpbgorCXB5LnRlc3Q9cHl0ZXN0Om1haW4KKwogW2J1aWxkX3NwaGlu
eF0KIHNvdXJjZS1kaXIgPSBkb2MvZW4vCiBidWlsZC1kaXIgPSBkb2MvYnVpbGQKQEAgLTEzLDgg
KzY4LDYgQEAgdW5pdmVyc2FsID0gMQogaWdub3JlID0KICAgX3B5dGVzdC9fdmVyc2lvbi5weQog
Ci1bbWV0YWRhdGFdCi1saWNlbnNlX2ZpbGUgPSBMSUNFTlNFCiAKIFtkZXZwaTp1cGxvYWRdCiBm
b3JtYXRzID0gc2Rpc3QudGd6LGJkaXN0X3doZWVsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
ZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLnB5CmluZGV4IDNkNjBkNmJlY2Y4NDczYzBiZDk1
M2IwN2U4ODg5YTk1YjBlYjQzZTAuLjEwNTNiY2U0YTVhMDRiN2E0ZDFiZDYyZWYzZDk1ZWI4Njhi
Zjg0MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NldHVwLnB5CkBAIC0xLDEyMiArMSw0MyBAQAotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1pbXBv
cnQgc2V0dXB0b29scwotaW1wb3J0IHBrZ19yZXNvdXJjZXMKKyMgLSotIGNvZGluZzogdXRmLTgg
LSotCiBmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwCiAKLWNsYXNzaWZpZXJzID0gWwotICAg
ICJEZXZlbG9wbWVudCBTdGF0dXMgOjogNiAtIE1hdHVyZSIsCi0gICAgIkludGVuZGVkIEF1ZGll
bmNlIDo6IERldmVsb3BlcnMiLAotICAgICJMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQg
TGljZW5zZSIsCi0gICAgIk9wZXJhdGluZyBTeXN0ZW0gOjogUE9TSVgiLAotICAgICJPcGVyYXRp
bmcgU3lzdGVtIDo6IE1pY3Jvc29mdCA6OiBXaW5kb3dzIiwKLSAgICAiT3BlcmF0aW5nIFN5c3Rl
bSA6OiBNYWNPUyA6OiBNYWNPUyBYIiwKLSAgICAiVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1l
bnQgOjogVGVzdGluZyIsCi0gICAgIlRvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExp
YnJhcmllcyIsCi0gICAgIlRvcGljIDo6IFV0aWxpdGllcyIsCi1dICsgWwotICAgICgiUHJvZ3Jh
bW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6ICVzIiAlIHgpCi0gICAgZm9yIHggaW4gIjIgMi43
IDMgMy40IDMuNSAzLjYgMy43Ii5zcGxpdCgpCisjIFRPRE86IGlmIHB5IGdldHMgdXBncmFkZSB0
byA+PTEuNiwKKyMgICAgICAgcmVtb3ZlIF93aWR0aF9vZl9jdXJyZW50X2xpbmUgaW4gdGVybWlu
YWwucHkKK0lOU1RBTExfUkVRVUlSRVMgPSBbCisgICAgInB5Pj0xLjUuMCIsCisgICAgInNpeD49
MS4xMC4wIiwKKyAgICAicGFja2FnaW5nIiwKKyAgICAiYXR0cnM+PTE3LjQuMCIsCisgICAgJ21v
cmUtaXRlcnRvb2xzPj00LjAuMCw8Ni4wLjA7cHl0aG9uX3ZlcnNpb248PSIyLjciJywKKyAgICAn
bW9yZS1pdGVydG9vbHM+PTQuMC4wO3B5dGhvbl92ZXJzaW9uPiIyLjciJywKKyAgICAiYXRvbWlj
d3JpdGVzPj0xLjAiLAorICAgICdmdW5jc2lncz49MS4wO3B5dGhvbl92ZXJzaW9uPCIzLjAiJywK
KyAgICAncGF0aGxpYjI+PTIuMi4wO3B5dGhvbl92ZXJzaW9uPCIzLjYiJywKKyAgICAnY29sb3Jh
bWE8PTAuNC4xO3N5c19wbGF0Zm9ybT09IndpbjMyIiBhbmQgcHl0aG9uX3ZlcnNpb249PSIzLjQi
JywKKyAgICAnY29sb3JhbWE7c3lzX3BsYXRmb3JtPT0id2luMzIiIGFuZCBweXRob25fdmVyc2lv
biE9IjMuNCInLAorICAgICJwbHVnZ3k+PTAuMTIsPDEuMCIsCisgICAgJ2ltcG9ydGxpYi1tZXRh
ZGF0YT49MC4xMjtweXRob25fdmVyc2lvbjwiMy44IicsCisgICAgIndjd2lkdGgiLAogXQogCi13
aXRoIG9wZW4oIlJFQURNRS5yc3QiKSBhcyBmZDoKLSAgICBsb25nX2Rlc2NyaXB0aW9uID0gZmQu
cmVhZCgpCi0KLQotZGVmIGdldF9lbnZpcm9ubWVudF9tYXJrZXJfc3VwcG9ydF9sZXZlbCgpOgot
ICAgICIiIgotICAgIFRlc3RzIGhvdyB3ZWxsIHNldHVwdG9vbHMgc3VwcG9ydHMgUEVQLTQyNiBl
bnZpcm9ubWVudCBtYXJrZXIuCi0KLSAgICBUaGUgZmlyc3Qga25vd24gcmVsZWFzZSB0byBzdXBw
b3J0IGl0IGlzIDAuNyAoYW5kIHRoZSBlYXJsaWVzdCBvbiBQeVBJIHNlZW1zIHRvIGJlIDAuNy4y
Ci0gICAgc28gd2UncmUgdXNpbmcgdGhhdCksIHNlZTogaHR0cHM6Ly9zZXR1cHRvb2xzLnJlYWR0
aGVkb2NzLmlvL2VuL2xhdGVzdC9oaXN0b3J5Lmh0bWwjaWQzNTAKLQotICAgIFRoZSBzdXBwb3J0
IGlzIGxhdGVyIGVuaGFuY2VkIHRvIGFsbG93IGRpcmVjdCBjb25kaXRpb25hbCBpbmNsdXNpb25z
IGluc2lkZSBpbnN0YWxsX3JlcXVpcmVzLAotICAgIHdoaWNoIGlzIG5vdyByZWNvbW1lbmRlZCBi
eSBzZXR1cHRvb2xzLiBJdCBmaXJzdCBhcHBlYXJlZCBpbiAzNi4yLjAsIHdlbnQgYnJva2VuIHdp
dGggMzYuMi4xLCBhbmQKLSAgICBhZ2FpbiB3b3JrZWQgc2luY2UgMzYuMi4yLCBzbyB3ZSdyZSB1
c2luZyB0aGF0LiBTZWU6Ci0gICAgaHR0cHM6Ly9zZXR1cHRvb2xzLnJlYWR0aGVkb2NzLmlvL2Vu
L2xhdGVzdC9oaXN0b3J5Lmh0bWwjdjM2LTItMgotICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXBh
L3NldHVwdG9vbHMvaXNzdWVzLzEwOTkKLQotICAgIFJlZmVyZW5jZXM6Ci0KLSAgICAqIGh0dHBz
Oi8vd2hlZWwucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2luZGV4Lmh0bWwjZGVmaW5pbmctY29u
ZGl0aW9uYWwtZGVwZW5kZW5jaWVzCi0gICAgKiBodHRwczovL3d3dy5weXRob24ub3JnL2Rldi9w
ZXBzL3BlcC0wNDI2LyNlbnZpcm9ubWVudC1tYXJrZXJzCi0gICAgKiBodHRwczovL3NldHVwdG9v
bHMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3NldHVwdG9vbHMuaHRtbCNkZWNsYXJpbmctcGxh
dGZvcm0tc3BlY2lmaWMtZGVwZW5kZW5jaWVzCi0gICAgIiIiCi0gICAgdHJ5OgotICAgICAgICB2
ZXJzaW9uID0gcGtnX3Jlc291cmNlcy5wYXJzZV92ZXJzaW9uKHNldHVwdG9vbHMuX192ZXJzaW9u
X18pCi0gICAgICAgIGlmIHZlcnNpb24gPj0gcGtnX3Jlc291cmNlcy5wYXJzZV92ZXJzaW9uKCIz
Ni4yLjIiKToKLSAgICAgICAgICAgIHJldHVybiAyCi0gICAgICAgIGlmIHZlcnNpb24gPj0gcGtn
X3Jlc291cmNlcy5wYXJzZV92ZXJzaW9uKCIwLjcuMiIpOgotICAgICAgICAgICAgcmV0dXJuIDEK
LSAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4YzoKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgi
Q291bGQgbm90IHRlc3Qgc2V0dXB0b29sJ3MgdmVyc2lvbjogJXNcbiIgJSBleGMpCi0KLSAgICAj
IGFzIG9mIHRlc3Rpbmcgb24gMjAxOC0wNS0yNiBmZWRvcmEgd2FzIG9uIHZlcnNpb24gMzcqIGFu
ZCBkZWJpYW4gd2FzIG9uIHZlcnNpb24gMzMrCi0gICAgIyB3ZSBzaG91bGQgY29uc2lkZXIgZXJy
b3Jpbmcgb24gdGhvc2UKLSAgICByZXR1cm4gMAotCiAKIGRlZiBtYWluKCk6Ci0gICAgZXh0cmFz
X3JlcXVpcmUgPSB7fQotICAgIGluc3RhbGxfcmVxdWlyZXMgPSBbCi0gICAgICAgICJweT49MS41
LjAiLAotICAgICAgICAic2l4Pj0xLjEwLjAiLAotICAgICAgICAic2V0dXB0b29scyIsCi0gICAg
ICAgICJhdHRycz49MTcuNC4wIiwKLSAgICAgICAgIm1vcmUtaXRlcnRvb2xzPj00LjAuMCIsCi0g
ICAgICAgICJhdG9taWN3cml0ZXM+PTEuMCIsCi0gICAgXQotICAgICMgaWYgX1BZVEVTVF9TRVRV
UF9TS0lQX1BMVUdHWV9ERVAgaXMgc2V0LCBza2lwIGluc3RhbGxpbmcgcGx1Z2d5OwotICAgICMg
dXNlZCBieSB0b3guaW5pIHRvIHRlc3Qgd2l0aCBwbHVnZ3kgbWFzdGVyCi0gICAgaWYgIl9QWVRF
U1RfU0VUVVBfU0tJUF9QTFVHR1lfREVQIiBub3QgaW4gb3MuZW52aXJvbjoKLSAgICAgICAgaW5z
dGFsbF9yZXF1aXJlcy5hcHBlbmQoInBsdWdneT49MC41LDwwLjciKQotICAgIGVudmlyb25tZW50
X21hcmtlcl9zdXBwb3J0X2xldmVsID0gZ2V0X2Vudmlyb25tZW50X21hcmtlcl9zdXBwb3J0X2xl
dmVsKCkKLSAgICBpZiBlbnZpcm9ubWVudF9tYXJrZXJfc3VwcG9ydF9sZXZlbCA+PSAyOgotICAg
ICAgICBpbnN0YWxsX3JlcXVpcmVzLmFwcGVuZCgnZnVuY3NpZ3M7cHl0aG9uX3ZlcnNpb248IjMu
MCInKQotICAgICAgICBpbnN0YWxsX3JlcXVpcmVzLmFwcGVuZCgnY29sb3JhbWE7c3lzX3BsYXRm
b3JtPT0id2luMzIiJykKLSAgICBlbGlmIGVudmlyb25tZW50X21hcmtlcl9zdXBwb3J0X2xldmVs
ID09IDE6Ci0gICAgICAgIGV4dHJhc19yZXF1aXJlWyc6cHl0aG9uX3ZlcnNpb248IjMuMCInXSA9
IFsiZnVuY3NpZ3MiXQotICAgICAgICBleHRyYXNfcmVxdWlyZVsnOnN5c19wbGF0Zm9ybT09Indp
bjMyIiddID0gWyJjb2xvcmFtYSJdCi0gICAgZWxzZToKLSAgICAgICAgaWYgc3lzLnBsYXRmb3Jt
ID09ICJ3aW4zMiI6Ci0gICAgICAgICAgICBpbnN0YWxsX3JlcXVpcmVzLmFwcGVuZCgiY29sb3Jh
bWEiKQotICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICAgICAgICAg
aW5zdGFsbF9yZXF1aXJlcy5hcHBlbmQoImZ1bmNzaWdzIikKLQogICAgIHNldHVwKAotICAgICAg
ICBuYW1lPSJweXRlc3QiLAotICAgICAgICBkZXNjcmlwdGlvbj0icHl0ZXN0OiBzaW1wbGUgcG93
ZXJmdWwgdGVzdGluZyB3aXRoIFB5dGhvbiIsCi0gICAgICAgIGxvbmdfZGVzY3JpcHRpb249bG9u
Z19kZXNjcmlwdGlvbiwKICAgICAgICAgdXNlX3NjbV92ZXJzaW9uPXsid3JpdGVfdG8iOiAic3Jj
L19weXRlc3QvX3ZlcnNpb24ucHkifSwKLSAgICAgICAgdXJsPSJodHRwOi8vcHl0ZXN0Lm9yZyIs
Ci0gICAgICAgIHByb2plY3RfdXJscz17Ci0gICAgICAgICAgICAiU291cmNlIjogImh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdCIsCi0gICAgICAgICAgICAiVHJhY2tlciI6ICJo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzIiwKLSAgICAgICAgfSwK
LSAgICAgICAgbGljZW5zZT0iTUlUIGxpY2Vuc2UiLAotICAgICAgICBwbGF0Zm9ybXM9WyJ1bml4
IiwgImxpbnV4IiwgIm9zeCIsICJjeWd3aW4iLCAid2luMzIiXSwKLSAgICAgICAgYXV0aG9yPSgK
LSAgICAgICAgICAgICJIb2xnZXIgS3Jla2VsLCBCcnVubyBPbGl2ZWlyYSwgUm9ubnkgUGZhbm5z
Y2htaWR0LCAiCi0gICAgICAgICAgICAiRmxvcmlzIEJydXlub29naGUsIEJyaWFubmEgTGF1Z2hl
ciwgRmxvcmlhbiBCcnVoaW4gYW5kIG90aGVycyIKLSAgICAgICAgKSwKLSAgICAgICAgZW50cnlf
cG9pbnRzPXsiY29uc29sZV9zY3JpcHRzIjogWyJweXRlc3Q9cHl0ZXN0Om1haW4iLCAicHkudGVz
dD1weXRlc3Q6bWFpbiJdfSwKLSAgICAgICAgY2xhc3NpZmllcnM9Y2xhc3NpZmllcnMsCi0gICAg
ICAgIGtleXdvcmRzPSJ0ZXN0IHVuaXR0ZXN0IiwKLSAgICAgICAgIyB0aGUgZm9sbG93aW5nIHNo
b3VsZCBiZSBlbmFibGVkIGZvciByZWxlYXNlCi0gICAgICAgIHNldHVwX3JlcXVpcmVzPVsic2V0
dXB0b29scy1zY20iXSwKKyAgICAgICAgc2V0dXBfcmVxdWlyZXM9WyJzZXR1cHRvb2xzLXNjbSIs
ICJzZXR1cHRvb2xzPj00MC4wIl0sCiAgICAgICAgIHBhY2thZ2VfZGlyPXsiIjogInNyYyJ9LAot
ICAgICAgICBweXRob25fcmVxdWlyZXM9Ij49Mi43LCAhPTMuMC4qLCAhPTMuMS4qLCAhPTMuMi4q
LCAhPTMuMy4qIiwKLSAgICAgICAgaW5zdGFsbF9yZXF1aXJlcz1pbnN0YWxsX3JlcXVpcmVzLAot
ICAgICAgICBleHRyYXNfcmVxdWlyZT1leHRyYXNfcmVxdWlyZSwKLSAgICAgICAgcGFja2FnZXM9
WwotICAgICAgICAgICAgIl9weXRlc3QiLAotICAgICAgICAgICAgIl9weXRlc3QuYXNzZXJ0aW9u
IiwKLSAgICAgICAgICAgICJfcHl0ZXN0Ll9jb2RlIiwKLSAgICAgICAgICAgICJfcHl0ZXN0Lm1h
cmsiLAotICAgICAgICAgICAgIl9weXRlc3QuY29uZmlnIiwKLSAgICAgICAgXSwKLSAgICAgICAg
cHlfbW9kdWxlcz1bInB5dGVzdCJdLAotICAgICAgICB6aXBfc2FmZT1GYWxzZSwKKyAgICAgICAg
IyBmbXQ6IG9mZgorICAgICAgICBleHRyYXNfcmVxdWlyZT17CisgICAgICAgICAgICAidGVzdGlu
ZyI6IFsKKyAgICAgICAgICAgICAgICAiYXJnY29tcGxldGUiLAorICAgICAgICAgICAgICAgICJo
eXBvdGhlc2lzPj0zLjU2IiwKKyAgICAgICAgICAgICAgICAibm9zZSIsCisgICAgICAgICAgICAg
ICAgInJlcXVlc3RzIiwKKyAgICAgICAgICAgICAgICAibW9jaztweXRob25fdmVyc2lvbj09JzIu
NyciLAorICAgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICAgICAgIyBmbXQ6IG9uCisgICAg
ICAgIGluc3RhbGxfcmVxdWlyZXM9SU5TVEFMTF9SRVFVSVJFUywKICAgICApCiAKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9fX2luaXRfXy5weQppbmRleCA0NmM3ODI3ZWQ1ZWM2MmI0NjEzYmYzMWQ4MzMx
ZjczMWEyNGQzNGE5Li4xN2NjMjBiNjE1YWMwZjAyM2U0YWNhNTQwYTc1NTc3MzEzMzg4Mjc0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fX2luaXRfXy5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvX3B5dGVzdC9fX2luaXRfXy5weQpAQCAtMSwzICsxLDQgQEAKKyMgLSotIGNv
ZGluZzogdXRmLTggLSotCiBfX2FsbF9fID0gWyJfX3ZlcnNpb25fXyJdCiAKIHRyeToKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19hcmdjb21wbGV0ZS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L19hcmdjb21wbGV0ZS5weQppbmRleCA4ZjQ4MGQ3MWQ3OWZhOTMxZjE2
NDQyN2E1OGQ5ODRhZDhkNDE1MTI1Li5jNmNmMWQ4ZmRkZDFhMGYxMTg0YWZlNzlmZGFmMWE4OWM5
NWM3YjI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fYXJnY29tcGxldGUu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2FyZ2NvbXBsZXRlLnB5CkBAIC0xLDQg
KzEsNCBAQAotCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiYWxsb3cgYmFzaC1jb21wbGV0
aW9uIGZvciBhcmdwYXJzZSB3aXRoIGFyZ2NvbXBsZXRlIGlmIGluc3RhbGxlZAogbmVlZHMgYXJn
Y29tcGxldGU+PTAuNS42IGZvciBweXRob24gMy4yLzMuMyAob2xkZXIgdmVyc2lvbnMgZmFpbAog
dG8gZmluZCB0aGUgbWFnaWMgc3RyaW5nLCBzbyBfQVJHQ09NUExFVEUgZW52LiB2YXIgaXMgbmV2
ZXIgc2V0LCBhbmQKQEAgLTU0LDkgKzU0LDEyIEBAIElmIHRoaW5ncyBkbyBub3Qgd29yayByaWdo
dCBhd2F5OgogICB3aGljaCBzaG91bGQgdGhyb3cgYSBLZXlFcnJvcjogJ0NPTVBMSU5FJyAod2hp
Y2ggaXMgcHJvcGVybHkgc2V0IGJ5IHRoZQogICBnbG9iYWwgYXJnY29tcGxldGUgc2NyaXB0KS4K
ICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBw
cmludF9mdW5jdGlvbgotaW1wb3J0IHN5cworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IG9zCitpbXBvcnQgc3lzCiBmcm9tIGds
b2IgaW1wb3J0IGdsb2IKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9f
Y29kZS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL19faW5pdF9f
LnB5CmluZGV4IDgxNWMxM2I0MmMyNWJkMzE0OTg4ZGJhYTdmZjlmNGUzZDFkMmU1YzIuLjEzOTRi
MmIxMGU2OWZjZWMwYzRlMGM3OWY4NjllZmFiZGJkN2QyMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L19jb2RlL19faW5pdF9fLnB5CkBAIC0xLDEwICsxLDE1IEBACisjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQogIiIiIHB5dGhvbiBpbnNwZWN0aW9uL2NvZGUgZ2VuZXJhdGlvbiBBUEkgIiIi
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9m
dW5jdGlvbgorCiBmcm9tIC5jb2RlIGltcG9ydCBDb2RlICAjIG5vcWEKIGZyb20gLmNvZGUgaW1w
b3J0IEV4Y2VwdGlvbkluZm8gICMgbm9xYQorZnJvbSAuY29kZSBpbXBvcnQgZmlsdGVyX3RyYWNl
YmFjayAgIyBub3FhCiBmcm9tIC5jb2RlIGltcG9ydCBGcmFtZSAgIyBub3FhCi1mcm9tIC5jb2Rl
IGltcG9ydCBUcmFjZWJhY2sgICMgbm9xYQogZnJvbSAuY29kZSBpbXBvcnQgZ2V0cmF3Y29kZSAg
IyBub3FhCi1mcm9tIC5zb3VyY2UgaW1wb3J0IFNvdXJjZSAgIyBub3FhCitmcm9tIC5jb2RlIGlt
cG9ydCBUcmFjZWJhY2sgICMgbm9xYQogZnJvbSAuc291cmNlIGltcG9ydCBjb21waWxlXyBhcyBj
b21waWxlICAjIG5vcWEKIGZyb20gLnNvdXJjZSBpbXBvcnQgZ2V0ZnNsaW5lbm8gICMgbm9xYQor
ZnJvbSAuc291cmNlIGltcG9ydCBTb3VyY2UgICMgbm9xYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvX2NvZGUvX3B5MnRyYWNlYmFjay5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L19jb2RlL19weTJ0cmFjZWJhY2sucHkKaW5kZXggMmRkMTAwYzMzYmRkYWVkOGYwZTIz
MTIyMjBjMWI4OWFkMWI5N2M2Ni4uZmFhY2MwMjE2NmUxNjU4NDJmNTZiMTUyNDRiYWQwYjhmOTNk
YzdiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2NvZGUvX3B5MnRyYWNl
YmFjay5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS9fcHkydHJhY2ViYWNr
LnB5CkBAIC0xLDkgKzEsMTUgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAjIGNvcGllZCBm
cm9tIHB5dGhvbi0yLjcuMydzIHRyYWNlYmFjay5weQogIyBDSEFOR0VTOgogIyAtIHNvbWVfc3Ry
IGlzIHJlcGxhY2VkLCB0cnlpbmcgdG8gY3JlYXRlIHVuaWNvZGUgc3RyaW5ncwogIwotZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24K
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworCiBpbXBvcnQgdHlwZXMK
KwogZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQogCiAKQEAgLTUxLDE3ICs1NywxNyBAQCBkZWYg
Zm9ybWF0X2V4Y2VwdGlvbl9vbmx5KGV0eXBlLCB2YWx1ZSk6CiAgICAgICAgIHBhc3MKICAgICBl
bHNlOgogICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lIG9yICI8c3RyaW5nPiIKLSAgICAgICAg
bGluZXMuYXBwZW5kKCcgIEZpbGUgIiVzIiwgbGluZSAlZFxuJyAlIChmaWxlbmFtZSwgbGluZW5v
KSkKKyAgICAgICAgbGluZXMuYXBwZW5kKCcgIEZpbGUgInt9IiwgbGluZSB7fVxuJy5mb3JtYXQo
ZmlsZW5hbWUsIGxpbmVubykpCiAgICAgICAgIGlmIGJhZGxpbmUgaXMgbm90IE5vbmU6CiAgICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKGJhZGxpbmUsIGJ5dGVzKTogICMgcHl0aG9uIDIgb25seQog
ICAgICAgICAgICAgICAgIGJhZGxpbmUgPSBiYWRsaW5lLmRlY29kZSgidXRmLTgiLCAicmVwbGFj
ZSIpCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQodSIgICAgJXNcbiIgJSBiYWRsaW5lLnN0cmlw
KCkpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICB7fVxuIi5mb3JtYXQoYmFkbGluZS5z
dHJpcCgpKSkKICAgICAgICAgICAgIGlmIG9mZnNldCBpcyBub3QgTm9uZToKICAgICAgICAgICAg
ICAgICBjYXJldHNwYWNlID0gYmFkbGluZS5yc3RyaXAoIlxuIilbOm9mZnNldF0ubHN0cmlwKCkK
ICAgICAgICAgICAgICAgICAjIG5vbi1zcGFjZSB3aGl0ZXNwYWNlIChsaWtlcyB0YWJzKSBtdXN0
IGJlIGtlcHQgZm9yIGFsaWdubWVudAogICAgICAgICAgICAgICAgIGNhcmV0c3BhY2UgPSAoKGMu
aXNzcGFjZSgpIGFuZCBjIG9yICIgIikgZm9yIGMgaW4gY2FyZXRzcGFjZSkKICAgICAgICAgICAg
ICAgICAjIG9ubHkgdGhyZWUgc3BhY2VzIHRvIGFjY291bnQgZm9yIG9mZnNldDEgPT0gcG9zIDAK
LSAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICVzXlxuIiAlICIiLmpvaW4oY2FyZXRz
cGFjZSkpCisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICB7fV5cbiIuZm9ybWF0KCIi
LmpvaW4oY2FyZXRzcGFjZSkpKQogICAgICAgICB2YWx1ZSA9IG1zZwogCiAgICAgbGluZXMuYXBw
ZW5kKF9mb3JtYXRfZmluYWxfZXhjX2xpbmUoc3R5cGUsIHZhbHVlKSkKQEAgLTcyLDkgKzc4LDkg
QEAgZGVmIF9mb3JtYXRfZmluYWxfZXhjX2xpbmUoZXR5cGUsIHZhbHVlKToKICAgICAiIiJSZXR1
cm4gYSBsaXN0IG9mIGEgc2luZ2xlIGxpbmUgLS0gbm9ybWFsIGNhc2UgZm9yIGZvcm1hdF9leGNl
cHRpb25fb25seSIiIgogICAgIHZhbHVlc3RyID0gX3NvbWVfc3RyKHZhbHVlKQogICAgIGlmIHZh
bHVlIGlzIE5vbmUgb3Igbm90IHZhbHVlc3RyOgotICAgICAgICBsaW5lID0gIiVzXG4iICUgZXR5
cGUKKyAgICAgICAgbGluZSA9ICJ7fVxuIi5mb3JtYXQoZXR5cGUpCiAgICAgZWxzZToKLSAgICAg
ICAgbGluZSA9ICIlczogJXNcbiIgJSAoZXR5cGUsIHZhbHVlc3RyKQorICAgICAgICBsaW5lID0g
Int9OiB7fVxuIi5mb3JtYXQoZXR5cGUsIHZhbHVlc3RyKQogICAgIHJldHVybiBsaW5lCiAKIApA
QCAtODMsNyArODksNyBAQCBkZWYgX3NvbWVfc3RyKHZhbHVlKToKICAgICAgICAgcmV0dXJuIHRl
eHRfdHlwZSh2YWx1ZSkKICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICByZXR1cm4gc3RyKHZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIGJ5dGVzKHZhbHVl
KS5kZWNvZGUoIlVURi04IiwgInJlcGxhY2UiKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgog
ICAgICAgICAgICAgcGFzcwotICAgIHJldHVybiAiPHVucHJpbnRhYmxlICVzIG9iamVjdD4iICUg
dHlwZSh2YWx1ZSkuX19uYW1lX18KKyAgICByZXR1cm4gIjx1bnByaW50YWJsZSB7fSBvYmplY3Q+
Ii5mb3JtYXQodHlwZSh2YWx1ZSkuX19uYW1lX18pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9fY29kZS9jb2RlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2NvZGUv
Y29kZS5weQppbmRleCBjYjc4OGMxN2YwNGJhZTcyZTNiY2E1MjE0NTlhZmMwNjZmYjQyYmUyLi4x
NzVkNmZkYTAxZDQwYzcwMGU0MDJhNmUyOTJjZDk0OWQ4MDBhZWI3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS9jb2RlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L19jb2RlL2NvZGUucHkKQEAgLTEsMTcgKzEsMjggQEAKLWZyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKyMgLSotIGNv
ZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBw
cmludF9mdW5jdGlvbgorCiBpbXBvcnQgaW5zcGVjdAoraW1wb3J0IHJlCiBpbXBvcnQgc3lzCiBp
bXBvcnQgdHJhY2ViYWNrCi1mcm9tIGluc3BlY3QgaW1wb3J0IENPX1ZBUkFSR1MsIENPX1ZBUktF
WVdPUkRTCitmcm9tIGluc3BlY3QgaW1wb3J0IENPX1ZBUkFSR1MKK2Zyb20gaW5zcGVjdCBpbXBv
cnQgQ09fVkFSS0VZV09SRFMKK2Zyb20gd2Vha3JlZiBpbXBvcnQgcmVmCiAKIGltcG9ydCBhdHRy
Ci1pbXBvcnQgcmUKLWZyb20gd2Vha3JlZiBpbXBvcnQgcmVmCi1mcm9tIF9weXRlc3QuY29tcGF0
IGltcG9ydCBfUFkyLCBfUFkzLCBQWTM1LCBzYWZlX3N0cgotZnJvbSBzaXggaW1wb3J0IHRleHRf
dHlwZQoraW1wb3J0IHBsdWdneQogaW1wb3J0IHB5Citmcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBl
CiAKLWJ1aWx0aW5fcmVwciA9IHJlcHIKK2ltcG9ydCBfcHl0ZXN0Citmcm9tIF9weXRlc3QuX2lv
LnNhZmVyZXByIGltcG9ydCBzYWZlZm9ybWF0Citmcm9tIF9weXRlc3QuX2lvLnNhZmVyZXByIGlt
cG9ydCBzYWZlcmVwcgorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgX1BZMgorZnJvbSBfcHl0
ZXN0LmNvbXBhdCBpbXBvcnQgX1BZMworZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgUFkzNQor
ZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgc2FmZV9zdHIKIAogaWYgX1BZMzoKICAgICBmcm9t
IHRyYWNlYmFjayBpbXBvcnQgZm9ybWF0X2V4Y2VwdGlvbl9vbmx5CkBAIC0xMjcsMTIgKzEzOCwx
MiBAQCBjbGFzcyBGcmFtZShvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgZl9sb2NhbHMg
PSBzZWxmLmZfbG9jYWxzLmNvcHkoKQogICAgICAgICBmX2xvY2Fscy51cGRhdGUodmFycykKLSAg
ICAgICAgcHkuYnVpbHRpbi5leGVjXyhjb2RlLCBzZWxmLmZfZ2xvYmFscywgZl9sb2NhbHMpCisg
ICAgICAgIGV4ZWMoY29kZSwgc2VsZi5mX2dsb2JhbHMsIGZfbG9jYWxzKQogCiAgICAgZGVmIHJl
cHIoc2VsZiwgb2JqZWN0KToKICAgICAgICAgIiIiIHJldHVybiBhICdzYWZlJyAobm9uLXJlY3Vy
c2l2ZSwgb25lLWxpbmUpIHN0cmluZyByZXByIGZvciAnb2JqZWN0JwogICAgICAgICAiIiIKLSAg
ICAgICAgcmV0dXJuIHB5LmlvLnNhZmVyZXByKG9iamVjdCkKKyAgICAgICAgcmV0dXJuIHNhZmVy
ZXByKG9iamVjdCkKIAogICAgIGRlZiBpc190cnVlKHNlbGYsIG9iamVjdCk6CiAgICAgICAgIHJl
dHVybiBvYmplY3QKQEAgLTIzMCwyNSArMjQxLDIwIEBAIGNsYXNzIFRyYWNlYmFja0VudHJ5KG9i
amVjdCk6CiAKICAgICBkZWYgaXNoaWRkZW4oc2VsZik6CiAgICAgICAgICIiIiByZXR1cm4gVHJ1
ZSBpZiB0aGUgY3VycmVudCBmcmFtZSBoYXMgYSB2YXIgX190cmFjZWJhY2toaWRlX18KLSAgICAg
ICAgICAgIHJlc29sdmluZyB0byBUcnVlCisgICAgICAgICAgICByZXNvbHZpbmcgdG8gVHJ1ZS4K
IAogICAgICAgICAgICAgSWYgX190cmFjZWJhY2toaWRlX18gaXMgYSBjYWxsYWJsZSwgaXQgZ2V0
cyBjYWxsZWQgd2l0aCB0aGUKICAgICAgICAgICAgIEV4Y2VwdGlvbkluZm8gaW5zdGFuY2UgYW5k
IGNhbiBkZWNpZGUgd2hldGhlciB0byBoaWRlIHRoZSB0cmFjZWJhY2suCiAKICAgICAgICAgICAg
IG1vc3RseSBmb3IgaW50ZXJuYWwgdXNlCiAgICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICB0YmggPSBzZWxmLmZyYW1lLmZfbG9jYWxzWyJfX3RyYWNlYmFja2hpZGVfXyJdCi0g
ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICB0YmggPSBzZWxmLmZyYW1lLmZfZ2xvYmFsc1siX190cmFjZWJhY2toaWRlX18iXQotICAgICAg
ICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0g
ICAgICAgIGlmIGNhbGxhYmxlKHRiaCk6CisgICAgICAgIGYgPSBzZWxmLmZyYW1lCisgICAgICAg
IHRiaCA9IGYuZl9sb2NhbHMuZ2V0KAorICAgICAgICAgICAgIl9fdHJhY2ViYWNraGlkZV9fIiwg
Zi5mX2dsb2JhbHMuZ2V0KCJfX3RyYWNlYmFja2hpZGVfXyIsIEZhbHNlKQorICAgICAgICApCisg
ICAgICAgIGlmIHRiaCBhbmQgY2FsbGFibGUodGJoKToKICAgICAgICAgICAgIHJldHVybiB0Ymgo
Tm9uZSBpZiBzZWxmLl9leGNpbmZvIGlzIE5vbmUgZWxzZSBzZWxmLl9leGNpbmZvKCkpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gdGJoCisgICAgICAgIHJldHVybiB0YmgKIAog
ICAgIGRlZiBfX3N0cl9fKHNlbGYpOgogICAgICAgICB0cnk6CkBAIC0yNzQsNiArMjgwLDcgQEAg
Y2xhc3MgVHJhY2ViYWNrKGxpc3QpOgogICAgICIiIiBUcmFjZWJhY2sgb2JqZWN0cyBlbmNhcHN1
bGF0ZSBhbmQgb2ZmZXIgaGlnaGVyIGxldmVsCiAgICAgICAgIGFjY2VzcyB0byBUcmFjZWJhY2sg
ZW50cmllcy4KICAgICAiIiIKKwogICAgIEVudHJ5ID0gVHJhY2ViYWNrRW50cnkKIAogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCB0YiwgZXhjaW5mbz1Ob25lKToKQEAgLTM3OCwzNyArMzg1LDg1IEBA
IGNvX2VxdWFsID0gY29tcGlsZSgKICkKIAogCitAYXR0ci5zKHJlcHI9RmFsc2UpCiBjbGFzcyBF
eGNlcHRpb25JbmZvKG9iamVjdCk6CiAgICAgIiIiIHdyYXBzIHN5cy5leGNfaW5mbygpIG9iamVj
dHMgYW5kIG9mZmVycwogICAgICAgICBoZWxwIGZvciBuYXZpZ2F0aW5nIHRoZSB0cmFjZWJhY2su
CiAgICAgIiIiCi0gICAgX3N0cmlwdGV4dCA9ICIiCi0gICAgX2Fzc2VydF9zdGFydF9yZXByID0g
IkFzc2VydGlvbkVycm9yKHUnYXNzZXJ0ICIgaWYgX1BZMiBlbHNlICJBc3NlcnRpb25FcnJvcign
YXNzZXJ0ICIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0dXA9Tm9uZSwgZXhwcmluZm89Tm9u
ZSk6Ci0gICAgICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCisgICAgX2Fzc2VydF9zdGFydF9yZXBy
ID0gKAorICAgICAgICAiQXNzZXJ0aW9uRXJyb3IodSdhc3NlcnQgIiBpZiBfUFkyIGVsc2UgIkFz
c2VydGlvbkVycm9yKCdhc3NlcnQgIgorICAgICkKKworICAgIF9leGNpbmZvID0gYXR0ci5pYigp
CisgICAgX3N0cmlwdGV4dCA9IGF0dHIuaWIoZGVmYXVsdD0iIikKKyAgICBfdHJhY2ViYWNrID0g
YXR0ci5pYihkZWZhdWx0PU5vbmUpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZnJvbV9j
dXJyZW50KGNscywgZXhwcmluZm89Tm9uZSk6CisgICAgICAgICIiInJldHVybnMgYW4gRXhjZXB0
aW9uSW5mbyBtYXRjaGluZyB0aGUgY3VycmVudCB0cmFjZWJhY2sKKworICAgICAgICAuLiB3YXJu
aW5nOjoKKworICAgICAgICAgICAgRXhwZXJpbWVudGFsIEFQSQorCisKKyAgICAgICAgOnBhcmFt
IGV4cHJpbmZvOiBhIHRleHQgc3RyaW5nIGhlbHBpbmcgdG8gZGV0ZXJtaW5lIGlmIHdlIHNob3Vs
ZAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwIGBgQXNzZXJ0aW9uRXJyb3JgYCBmcm9t
IHRoZSBvdXRwdXQsIGRlZmF1bHRzCisgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIGV4
Y2VwdGlvbiBtZXNzYWdlL2BgX19zdHJfXygpYGAKKyAgICAgICAgIiIiCisgICAgICAgIHR1cCA9
IHN5cy5leGNfaW5mbygpCisgICAgICAgIGFzc2VydCB0dXBbMF0gaXMgbm90IE5vbmUsICJubyBj
dXJyZW50IGV4Y2VwdGlvbiIKKyAgICAgICAgX3N0cmlwdGV4dCA9ICIiCisgICAgICAgIGlmIGV4
cHJpbmZvIGlzIE5vbmUgYW5kIGlzaW5zdGFuY2UodHVwWzFdLCBBc3NlcnRpb25FcnJvcik6Cisg
ICAgICAgICAgICBleHByaW5mbyA9IGdldGF0dHIodHVwWzFdLCAibXNnIiwgTm9uZSkKKyAgICAg
ICAgICAgIGlmIGV4cHJpbmZvIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgZXhwcmluZm8gPSBz
YWZlcmVwcih0dXBbMV0pCisgICAgICAgICAgICBpZiBleHByaW5mbyBhbmQgZXhwcmluZm8uc3Rh
cnRzd2l0aChjbHMuX2Fzc2VydF9zdGFydF9yZXByKToKKyAgICAgICAgICAgICAgICBfc3RyaXB0
ZXh0ID0gIkFzc2VydGlvbkVycm9yOiAiCisKKyAgICAgICAgcmV0dXJuIGNscyh0dXAsIF9zdHJp
cHRleHQpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZm9yX2xhdGVyKGNscyk6CisgICAg
ICAgICIiInJldHVybiBhbiB1bmZpbGxlZCBFeGNlcHRpb25JbmZvCisgICAgICAgICIiIgorICAg
ICAgICByZXR1cm4gY2xzKE5vbmUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdHlwZShzZWxm
KToKKyAgICAgICAgIiIidGhlIGV4Y2VwdGlvbiBjbGFzcyIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5fZXhjaW5mb1swXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHZhbHVlKHNlbGYpOgorICAg
ICAgICAiIiJ0aGUgZXhjZXB0aW9uIHZhbHVlIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9leGNp
bmZvWzFdCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdGIoc2VsZik6CisgICAgICAgICIiInRo
ZSBleGNlcHRpb24gcmF3IHRyYWNlYmFjayIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZXhjaW5m
b1syXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHR5cGVuYW1lKHNlbGYpOgorICAgICAgICAi
IiJ0aGUgdHlwZSBuYW1lIG9mIHRoZSBleGNlcHRpb24iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
dHlwZS5fX25hbWVfXworCisgICAgQHByb3BlcnR5CisgICAgZGVmIHRyYWNlYmFjayhzZWxmKToK
KyAgICAgICAgIiIidGhlIHRyYWNlYmFjayIiIgorICAgICAgICBpZiBzZWxmLl90cmFjZWJhY2sg
aXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3RyYWNlYmFjayA9IFRyYWNlYmFjayhzZWxmLnRi
LCBleGNpbmZvPXJlZihzZWxmKSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3RyYWNlYmFjawogCi0g
ICAgICAgIGlmIHR1cCBpcyBOb25lOgotICAgICAgICAgICAgdHVwID0gc3lzLmV4Y19pbmZvKCkK
LSAgICAgICAgICAgIGlmIGV4cHJpbmZvIGlzIE5vbmUgYW5kIGlzaW5zdGFuY2UodHVwWzFdLCBB
c3NlcnRpb25FcnJvcik6Ci0gICAgICAgICAgICAgICAgZXhwcmluZm8gPSBnZXRhdHRyKHR1cFsx
XSwgIm1zZyIsIE5vbmUpCi0gICAgICAgICAgICAgICAgaWYgZXhwcmluZm8gaXMgTm9uZToKLSAg
ICAgICAgICAgICAgICAgICAgZXhwcmluZm8gPSBweS5pby5zYWZlcmVwcih0dXBbMV0pCi0gICAg
ICAgICAgICAgICAgaWYgZXhwcmluZm8gYW5kIGV4cHJpbmZvLnN0YXJ0c3dpdGgoc2VsZi5fYXNz
ZXJ0X3N0YXJ0X3JlcHIpOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zdHJpcHRleHQgPSAi
QXNzZXJ0aW9uRXJyb3I6ICIKLSAgICAgICAgc2VsZi5fZXhjaW5mbyA9IHR1cAotICAgICAgICAj
OiB0aGUgZXhjZXB0aW9uIGNsYXNzCi0gICAgICAgIHNlbGYudHlwZSA9IHR1cFswXQotICAgICAg
ICAjOiB0aGUgZXhjZXB0aW9uIGluc3RhbmNlCi0gICAgICAgIHNlbGYudmFsdWUgPSB0dXBbMV0K
LSAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiByYXcgdHJhY2ViYWNrCi0gICAgICAgIHNlbGYudGIg
PSB0dXBbMl0KLSAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiB0eXBlIG5hbWUKLSAgICAgICAgc2Vs
Zi50eXBlbmFtZSA9IHNlbGYudHlwZS5fX25hbWVfXwotICAgICAgICAjOiB0aGUgZXhjZXB0aW9u
IHRyYWNlYmFjayAoX3B5dGVzdC5fY29kZS5UcmFjZWJhY2sgaW5zdGFuY2UpCi0gICAgICAgIHNl
bGYudHJhY2ViYWNrID0gX3B5dGVzdC5fY29kZS5UcmFjZWJhY2soc2VsZi50YiwgZXhjaW5mbz1y
ZWYoc2VsZikpCisgICAgQHRyYWNlYmFjay5zZXR0ZXIKKyAgICBkZWYgdHJhY2ViYWNrKHNlbGYs
IHZhbHVlKToKKyAgICAgICAgc2VsZi5fdHJhY2ViYWNrID0gdmFsdWUKIAogICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fZXhjaW5mbyBpcyBOb25lOgorICAgICAgICAg
ICAgcmV0dXJuICI8RXhjZXB0aW9uSW5mbyBmb3IgcmFpc2VzIGNvbnRleHRtYW5hZ2VyPiIKICAg
ICAgICAgcmV0dXJuICI8RXhjZXB0aW9uSW5mbyAlcyB0Ymxlbj0lZD4iICUgKHNlbGYudHlwZW5h
bWUsIGxlbihzZWxmLnRyYWNlYmFjaykpCiAKICAgICBkZWYgZXhjb25seShzZWxmLCB0cnlzaG9y
dD1GYWxzZSk6CkBAIC00MjQsNyArNDc5LDcgQEAgY2xhc3MgRXhjZXB0aW9uSW5mbyhvYmplY3Qp
OgogICAgICAgICB0ZXh0ID0gdGV4dC5yc3RyaXAoKQogICAgICAgICBpZiB0cnlzaG9ydDoKICAg
ICAgICAgICAgIGlmIHRleHQuc3RhcnRzd2l0aChzZWxmLl9zdHJpcHRleHQpOgotICAgICAgICAg
ICAgICAgIHRleHQgPSB0ZXh0W2xlbihzZWxmLl9zdHJpcHRleHQpOl0KKyAgICAgICAgICAgICAg
ICB0ZXh0ID0gdGV4dFtsZW4oc2VsZi5fc3RyaXB0ZXh0KSA6XQogICAgICAgICByZXR1cm4gdGV4
dAogCiAgICAgZGVmIGVycmlzaW5zdGFuY2Uoc2VsZiwgZXhjKToKQEAgLTQ0NCwxMyArNDk5LDM2
IEBAIGNsYXNzIEV4Y2VwdGlvbkluZm8ob2JqZWN0KToKICAgICAgICAgYWJzcGF0aD1GYWxzZSwK
ICAgICAgICAgdGJmaWx0ZXI9VHJ1ZSwKICAgICAgICAgZnVuY2FyZ3M9RmFsc2UsCisgICAgICAg
IHRydW5jYXRlX2xvY2Fscz1UcnVlLAorICAgICAgICBjaGFpbj1UcnVlLAogICAgICk6Ci0gICAg
ICAgICIiIiByZXR1cm4gc3RyKClhYmxlIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgZXhjZXB0aW9u
IGluZm8uCi0gICAgICAgICAgICBzaG93bG9jYWxzOiBzaG93IGxvY2FscyBwZXIgdHJhY2ViYWNr
IGVudHJ5Ci0gICAgICAgICAgICBzdHlsZTogbG9uZ3xzaG9ydHxub3xuYXRpdmUgdHJhY2ViYWNr
IHN0eWxlCi0gICAgICAgICAgICB0YmZpbHRlcjogaGlkZSBlbnRyaWVzICh3aGVyZSBfX3RyYWNl
YmFja2hpZGVfXyBpcyB0cnVlKQorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIHN0cigpYWJs
ZSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGV4Y2VwdGlvbiBpbmZvLgorCisgICAgICAgIDpwYXJh
bSBib29sIHNob3dsb2NhbHM6CisgICAgICAgICAgICBTaG93IGxvY2FscyBwZXIgdHJhY2ViYWNr
IGVudHJ5LgorICAgICAgICAgICAgSWdub3JlZCBpZiBgYHN0eWxlPT0ibmF0aXZlImBgLgorCisg
ICAgICAgIDpwYXJhbSBzdHIgc3R5bGU6IGxvbmd8c2hvcnR8bm98bmF0aXZlIHRyYWNlYmFjayBz
dHlsZQorCisgICAgICAgIDpwYXJhbSBib29sIGFic3BhdGg6CisgICAgICAgICAgICBJZiBwYXRo
cyBzaG91bGQgYmUgY2hhbmdlZCB0byBhYnNvbHV0ZSBvciBsZWZ0IHVuY2hhbmdlZC4KKworICAg
ICAgICA6cGFyYW0gYm9vbCB0YmZpbHRlcjoKKyAgICAgICAgICAgIEhpZGUgZW50cmllcyB0aGF0
IGNvbnRhaW4gYSBsb2NhbCB2YXJpYWJsZSBgYF9fdHJhY2ViYWNraGlkZV9fPT1UcnVlYGAuCisg
ICAgICAgICAgICBJZ25vcmVkIGlmIGBgc3R5bGU9PSJuYXRpdmUiYGAuCisKKyAgICAgICAgOnBh
cmFtIGJvb2wgZnVuY2FyZ3M6CisgICAgICAgICAgICBTaG93IGZpeHR1cmVzICgiZnVuY2FyZ3Mi
IGZvciBsZWdhY3kgcHVycG9zZXMpIHBlciB0cmFjZWJhY2sgZW50cnkuCisKKyAgICAgICAgOnBh
cmFtIGJvb2wgdHJ1bmNhdGVfbG9jYWxzOgorICAgICAgICAgICAgV2l0aCBgYHNob3dsb2NhbHM9
PVRydWVgYCwgbWFrZSBzdXJlIGxvY2FscyBjYW4gYmUgc2FmZWx5IHJlcHJlc2VudGVkIGFzIHN0
cmluZ3MuCisKKyAgICAgICAgOnBhcmFtIGJvb2wgY2hhaW46IGlmIGNoYWluZWQgZXhjZXB0aW9u
cyBpbiBQeXRob24gMyBzaG91bGQgYmUgc2hvd24uCiAKLSAgICAgICAgICAgIGluIGNhc2Ugb2Yg
c3R5bGU9PW5hdGl2ZSwgdGJmaWx0ZXIgYW5kIHNob3dsb2NhbHMgaXMgaWdub3JlZC4KKyAgICAg
ICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjkKKworICAgICAgICAgICAgQWRkZWQgdGhlIGBgY2hh
aW5gYCBwYXJhbWV0ZXIuCiAgICAgICAgICIiIgogICAgICAgICBpZiBzdHlsZSA9PSAibmF0aXZl
IjoKICAgICAgICAgICAgIHJldHVybiBSZXByRXhjZXB0aW9uSW5mbygKQEAgLTQ2OCwxMCArNTQ2
LDE0IEBAIGNsYXNzIEV4Y2VwdGlvbkluZm8ob2JqZWN0KToKICAgICAgICAgICAgIGFic3BhdGg9
YWJzcGF0aCwKICAgICAgICAgICAgIHRiZmlsdGVyPXRiZmlsdGVyLAogICAgICAgICAgICAgZnVu
Y2FyZ3M9ZnVuY2FyZ3MsCisgICAgICAgICAgICB0cnVuY2F0ZV9sb2NhbHM9dHJ1bmNhdGVfbG9j
YWxzLAorICAgICAgICAgICAgY2hhaW49Y2hhaW4sCiAgICAgICAgICkKICAgICAgICAgcmV0dXJu
IGZtdC5yZXByX2V4Y2luZm8oc2VsZikKIAogICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAg
ICBpZiBzZWxmLl9leGNpbmZvIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gcmVwcihzZWxm
KQogICAgICAgICBlbnRyeSA9IHNlbGYudHJhY2ViYWNrWy0xXQogICAgICAgICBsb2MgPSBSZXBy
RmlsZUxvY2F0aW9uKGVudHJ5LnBhdGgsIGVudHJ5LmxpbmVubyArIDEsIHNlbGYuZXhjb25seSgp
KQogICAgICAgICByZXR1cm4gc3RyKGxvYykKQEAgLTQ4MywyMCArNTY1LDI3IEBAIGNsYXNzIEV4
Y2VwdGlvbkluZm8ob2JqZWN0KToKIAogICAgIGRlZiBtYXRjaChzZWxmLCByZWdleHApOgogICAg
ICAgICAiIiIKLSAgICAgICAgTWF0Y2ggdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAncmVnZXhwJyBv
biB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mCi0gICAgICAgIHRoZSBleGNlcHRpb24uIElm
IGl0IG1hdGNoZXMgdGhlbiBUcnVlIGlzIHJldHVybmVkIChzbyB0aGF0IGl0IGlzCi0gICAgICAg
IHBvc3NpYmxlIHRvIHdyaXRlICdhc3NlcnQgZXhjaW5mby5tYXRjaCgpJykuIElmIGl0IGRvZXNu
J3QgbWF0Y2ggYW4KLSAgICAgICAgQXNzZXJ0aW9uRXJyb3IgaXMgcmFpc2VkLgorICAgICAgICBD
aGVjayB3aGV0aGVyIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gJ3JlZ2V4cCcgaXMgZm91bmQgaW4g
dGhlIHN0cmluZworICAgICAgICByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXhjZXB0aW9uIHVzaW5n
IGBgcmUuc2VhcmNoYGAuIElmIGl0IG1hdGNoZXMKKyAgICAgICAgdGhlbiBUcnVlIGlzIHJldHVy
bmVkIChzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIHdyaXRlCisgICAgICAgIGBgYXNzZXJ0IGV4
Y2luZm8ubWF0Y2goKWBgKS4gSWYgaXQgZG9lc24ndCBtYXRjaCBhbiBBc3NlcnRpb25FcnJvciBp
cworICAgICAgICByYWlzZWQuCiAgICAgICAgICIiIgogICAgICAgICBfX3RyYWNlYmFja2hpZGVf
XyA9IFRydWUKLSAgICAgICAgaWYgbm90IHJlLnNlYXJjaChyZWdleHAsIHN0cihzZWxmLnZhbHVl
KSk6Ci0gICAgICAgICAgICBhc3NlcnQgMCwgIlBhdHRlcm4gJ3shc30nIG5vdCBmb3VuZCBpbiAn
eyFzfSciLmZvcm1hdChyZWdleHAsIHNlbGYudmFsdWUpCisgICAgICAgIHZhbHVlID0gKAorICAg
ICAgICAgICAgdGV4dF90eXBlKHNlbGYudmFsdWUpIGlmIGlzaW5zdGFuY2UocmVnZXhwLCB0ZXh0
X3R5cGUpIGVsc2Ugc3RyKHNlbGYudmFsdWUpCisgICAgICAgICkKKyAgICAgICAgaWYgbm90IHJl
LnNlYXJjaChyZWdleHAsIHZhbHVlKToKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9y
KAorICAgICAgICAgICAgICAgIHUiUGF0dGVybiB7IXJ9IG5vdCBmb3VuZCBpbiB7IXJ9Ii5mb3Jt
YXQocmVnZXhwLCB2YWx1ZSkKKyAgICAgICAgICAgICkKICAgICAgICAgcmV0dXJuIFRydWUKIAog
CiBAYXR0ci5zCiBjbGFzcyBGb3JtYXR0ZWRFeGNpbmZvKG9iamVjdCk6CiAgICAgIiIiIHByZXNl
bnRpbmcgaW5mb3JtYXRpb24gYWJvdXQgZmFpbGluZyBGdW5jdGlvbnMgYW5kIEdlbmVyYXRvcnMu
ICIiIgorCiAgICAgIyBmb3IgdHJhY2ViYWNrIGVudHJpZXMKICAgICBmbG93X21hcmtlciA9ICI+
IgogICAgIGZhaWxfbWFya2VyID0gIkUiCkBAIC01MDYsNiArNTk1LDggQEAgY2xhc3MgRm9ybWF0
dGVkRXhjaW5mbyhvYmplY3QpOgogICAgIGFic3BhdGggPSBhdHRyLmliKGRlZmF1bHQ9VHJ1ZSkK
ICAgICB0YmZpbHRlciA9IGF0dHIuaWIoZGVmYXVsdD1UcnVlKQogICAgIGZ1bmNhcmdzID0gYXR0
ci5pYihkZWZhdWx0PUZhbHNlKQorICAgIHRydW5jYXRlX2xvY2FscyA9IGF0dHIuaWIoZGVmYXVs
dD1UcnVlKQorICAgIGNoYWluID0gYXR0ci5pYihkZWZhdWx0PVRydWUpCiAgICAgYXN0Y2FjaGUg
PSBhdHRyLmliKGRlZmF1bHQ9YXR0ci5GYWN0b3J5KGRpY3QpLCBpbml0PUZhbHNlLCByZXByPUZh
bHNlKQogCiAgICAgZGVmIF9nZXRpbmRlbnQoc2VsZiwgc291cmNlKToKQEAgLTUyOSwxNCArNjIw
LDExIEBAIGNsYXNzIEZvcm1hdHRlZEV4Y2luZm8ob2JqZWN0KToKICAgICAgICAgICAgIHNvdXJj
ZSA9IHNvdXJjZS5kZWluZGVudCgpCiAgICAgICAgIHJldHVybiBzb3VyY2UKIAotICAgIGRlZiBf
c2FmZXJlcHIoc2VsZiwgb2JqKToKLSAgICAgICAgcmV0dXJuIHB5LmlvLnNhZmVyZXByKG9iaikK
LQogICAgIGRlZiByZXByX2FyZ3Moc2VsZiwgZW50cnkpOgogICAgICAgICBpZiBzZWxmLmZ1bmNh
cmdzOgogICAgICAgICAgICAgYXJncyA9IFtdCiAgICAgICAgICAgICBmb3IgYXJnbmFtZSwgYXJn
dmFsdWUgaW4gZW50cnkuZnJhbWUuZ2V0YXJncyh2YXI9VHJ1ZSk6Ci0gICAgICAgICAgICAgICAg
YXJncy5hcHBlbmQoKGFyZ25hbWUsIHNlbGYuX3NhZmVyZXByKGFyZ3ZhbHVlKSkpCisgICAgICAg
ICAgICAgICAgYXJncy5hcHBlbmQoKGFyZ25hbWUsIHNhZmVyZXByKGFyZ3ZhbHVlKSkpCiAgICAg
ICAgICAgICByZXR1cm4gUmVwckZ1bmNBcmdzKGFyZ3MpCiAKICAgICBkZWYgZ2V0X3NvdXJjZShz
ZWxmLCBzb3VyY2UsIGxpbmVfaW5kZXg9LTEsIGV4Y2luZm89Tm9uZSwgc2hvcnQ9RmFsc2UpOgpA
QCAtNTU2LDcgKzY0NCw3IEBAIGNsYXNzIEZvcm1hdHRlZEV4Y2luZm8ob2JqZWN0KToKICAgICAg
ICAgICAgIGZvciBsaW5lIGluIHNvdXJjZS5saW5lc1s6bGluZV9pbmRleF06CiAgICAgICAgICAg
ICAgICAgbGluZXMuYXBwZW5kKHNwYWNlX3ByZWZpeCArIGxpbmUpCiAgICAgICAgICAgICBsaW5l
cy5hcHBlbmQoc2VsZi5mbG93X21hcmtlciArICIgICAiICsgc291cmNlLmxpbmVzW2xpbmVfaW5k
ZXhdKQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gc291cmNlLmxpbmVzW2xpbmVfaW5kZXggKyAx
Ol06CisgICAgICAgICAgICBmb3IgbGluZSBpbiBzb3VyY2UubGluZXNbbGluZV9pbmRleCArIDEg
Ol06CiAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKHNwYWNlX3ByZWZpeCArIGxpbmUpCiAg
ICAgICAgIGlmIGV4Y2luZm8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpbmRlbnQgPSA0IGlm
IHNob3J0IGVsc2Ugc2VsZi5fZ2V0aW5kZW50KHNvdXJjZSkKQEAgLTU4OCw3ICs2NzYsMTAgQEAg
Y2xhc3MgRm9ybWF0dGVkRXhjaW5mbyhvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAjIFRo
aXMgZm9ybWF0dGluZyBjb3VsZCBhbGwgYmUgaGFuZGxlZCBieSB0aGUKICAgICAgICAgICAgICAg
ICAgICAgIyBfcmVwcigpIGZ1bmN0aW9uLCB3aGljaCBpcyBvbmx5IHJlcHJsaWIuUmVwciBpbgog
ICAgICAgICAgICAgICAgICAgICAjIGRpc2d1aXNlLCBzbyBpcyB2ZXJ5IGNvbmZpZ3VyYWJsZS4K
LSAgICAgICAgICAgICAgICAgICAgc3RyX3JlcHIgPSBzZWxmLl9zYWZlcmVwcih2YWx1ZSkKKyAg
ICAgICAgICAgICAgICAgICAgaWYgc2VsZi50cnVuY2F0ZV9sb2NhbHM6CisgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJfcmVwciA9IHNhZmVyZXByKHZhbHVlKQorICAgICAgICAgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc3RyX3JlcHIgPSBzYWZlZm9ybWF0KHZh
bHVlKQogICAgICAgICAgICAgICAgICAgICAjIGlmIGxlbihzdHJfcmVwcikgPCA3MCBvciBub3Qg
aXNpbnN0YW5jZSh2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAobGlzdCwgdHVwbGUsIGRpY3QpKToKICAgICAgICAgICAgICAgICAgICAgbGlu
ZXMuYXBwZW5kKCIlLTEwcyA9ICVzIiAlIChuYW1lLCBzdHJfcmVwcikpCkBAIC02OTEsNyArNzgy
LDcgQEAgY2xhc3MgRm9ybWF0dGVkRXhjaW5mbyhvYmplY3QpOgogICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgaWYgcmVjdXJzaW9uaW5kZXggaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAg
ZXh0cmFsaW5lID0gIiEhISBSZWN1cnNpb24gZGV0ZWN0ZWQgKHNhbWUgbG9jYWxzICYgcG9zaXRp
b24pIgotICAgICAgICAgICAgICAgIHRyYWNlYmFjayA9IHRyYWNlYmFja1s6cmVjdXJzaW9uaW5k
ZXggKyAxXQorICAgICAgICAgICAgICAgIHRyYWNlYmFjayA9IHRyYWNlYmFja1s6IHJlY3Vyc2lv
bmluZGV4ICsgMV0KICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZXh0cmFsaW5l
ID0gTm9uZQogCkBAIC03MDcsNyArNzk4LDkgQEAgY2xhc3MgRm9ybWF0dGVkRXhjaW5mbyhvYmpl
Y3QpOgogICAgICAgICAgICAgcmVwcl9jaGFpbiA9IFtdCiAgICAgICAgICAgICBlID0gZXhjaW5m
by52YWx1ZQogICAgICAgICAgICAgZGVzY3IgPSBOb25lCi0gICAgICAgICAgICB3aGlsZSBlIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgc2VlbiA9IHNldCgpCisgICAgICAgICAgICB3aGlsZSBl
IGlzIG5vdCBOb25lIGFuZCBpZChlKSBub3QgaW4gc2VlbjoKKyAgICAgICAgICAgICAgICBzZWVu
LmFkZChpZChlKSkKICAgICAgICAgICAgICAgICBpZiBleGNpbmZvOgogICAgICAgICAgICAgICAg
ICAgICByZXBydHJhY2ViYWNrID0gc2VsZi5yZXByX3RyYWNlYmFjayhleGNpbmZvKQogICAgICAg
ICAgICAgICAgICAgICByZXByY3Jhc2ggPSBleGNpbmZvLl9nZXRyZXByY3Jhc2goKQpAQCAtNzIw
LDE3ICs4MTMsMjUgQEAgY2xhc3MgRm9ybWF0dGVkRXhjaW5mbyhvYmplY3QpOgogICAgICAgICAg
ICAgICAgICAgICByZXByY3Jhc2ggPSBOb25lCiAKICAgICAgICAgICAgICAgICByZXByX2NoYWlu
ICs9IFsocmVwcnRyYWNlYmFjaywgcmVwcmNyYXNoLCBkZXNjcildCi0gICAgICAgICAgICAgICAg
aWYgZS5fX2NhdXNlX18gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgZS5fX2NhdXNl
X18gaXMgbm90IE5vbmUgYW5kIHNlbGYuY2hhaW46CiAgICAgICAgICAgICAgICAgICAgIGUgPSBl
Ll9fY2F1c2VfXwotICAgICAgICAgICAgICAgICAgICBleGNpbmZvID0gRXhjZXB0aW9uSW5mbygK
LSAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlKGUpLCBlLCBlLl9fdHJhY2ViYWNrX18pCi0g
ICAgICAgICAgICAgICAgICAgICkgaWYgZS5fX3RyYWNlYmFja19fIGVsc2UgTm9uZQorICAgICAg
ICAgICAgICAgICAgICBleGNpbmZvID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0
aW9uSW5mbygodHlwZShlKSwgZSwgZS5fX3RyYWNlYmFja19fKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIGUuX190cmFjZWJhY2tfXworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBO
b25lCisgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgZGVzY3IgPSAi
VGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5n
IGV4Y2VwdGlvbjoiCi0gICAgICAgICAgICAgICAgZWxpZiAoZS5fX2NvbnRleHRfXyBpcyBub3Qg
Tm9uZSBhbmQgbm90IGUuX19zdXBwcmVzc19jb250ZXh0X18pOgorICAgICAgICAgICAgICAgIGVs
aWYgKAorICAgICAgICAgICAgICAgICAgICBlLl9fY29udGV4dF9fIGlzIG5vdCBOb25lCisgICAg
ICAgICAgICAgICAgICAgIGFuZCBub3QgZS5fX3N1cHByZXNzX2NvbnRleHRfXworICAgICAgICAg
ICAgICAgICAgICBhbmQgc2VsZi5jaGFpbgorICAgICAgICAgICAgICAgICk6CiAgICAgICAgICAg
ICAgICAgICAgIGUgPSBlLl9fY29udGV4dF9fCi0gICAgICAgICAgICAgICAgICAgIGV4Y2luZm8g
PSBFeGNlcHRpb25JbmZvKAotICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUoZSksIGUsIGUu
X190cmFjZWJhY2tfXykKLSAgICAgICAgICAgICAgICAgICAgKSBpZiBlLl9fdHJhY2ViYWNrX18g
ZWxzZSBOb25lCisgICAgICAgICAgICAgICAgICAgIGV4Y2luZm8gPSAoCisgICAgICAgICAgICAg
ICAgICAgICAgICBFeGNlcHRpb25JbmZvKCh0eXBlKGUpLCBlLCBlLl9fdHJhY2ViYWNrX18pKQor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgZS5fX3RyYWNlYmFja19fCisgICAgICAgICAgICAg
ICAgICAgICAgICBlbHNlIE5vbmUKKyAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg
ICAgICAgICBkZXNjciA9ICJEdXJpbmcgaGFuZGxpbmcgb2YgdGhlIGFib3ZlIGV4Y2VwdGlvbiwg
YW5vdGhlciBleGNlcHRpb24gb2NjdXJyZWQ6IgogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAg
ICAgICAgICAgICAgICAgIGUgPSBOb25lCkBAIC03MzksNyArODQwLDYgQEAgY2xhc3MgRm9ybWF0
dGVkRXhjaW5mbyhvYmplY3QpOgogCiAKIGNsYXNzIFRlcm1pbmFsUmVwcihvYmplY3QpOgotCiAg
ICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgIHMgPSBzZWxmLl9fdW5pY29kZV9fKCkKICAg
ICAgICAgaWYgX1BZMjoKQEAgLTc1OSw3ICs4NTksNiBAQCBjbGFzcyBUZXJtaW5hbFJlcHIob2Jq
ZWN0KToKIAogCiBjbGFzcyBFeGNlcHRpb25SZXByKFRlcm1pbmFsUmVwcik6Ci0KICAgICBkZWYg
X19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYuc2VjdGlvbnMgPSBbXQogCkBAIC03NzMsNyAr
ODcyLDYgQEAgY2xhc3MgRXhjZXB0aW9uUmVwcihUZXJtaW5hbFJlcHIpOgogCiAKIGNsYXNzIEV4
Y2VwdGlvbkNoYWluUmVwcihFeGNlcHRpb25SZXByKToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBjaGFpbik6CiAgICAgICAgIHN1cGVyKEV4Y2VwdGlvbkNoYWluUmVwciwgc2VsZikuX19pbml0
X18oKQogICAgICAgICBzZWxmLmNoYWluID0gY2hhaW4KQEAgLTc5Miw3ICs4OTAsNiBAQCBjbGFz
cyBFeGNlcHRpb25DaGFpblJlcHIoRXhjZXB0aW9uUmVwcik6CiAKIAogY2xhc3MgUmVwckV4Y2Vw
dGlvbkluZm8oRXhjZXB0aW9uUmVwcik6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgcmVwcnRy
YWNlYmFjaywgcmVwcmNyYXNoKToKICAgICAgICAgc3VwZXIoUmVwckV4Y2VwdGlvbkluZm8sIHNl
bGYpLl9faW5pdF9fKCkKICAgICAgICAgc2VsZi5yZXBydHJhY2ViYWNrID0gcmVwcnRyYWNlYmFj
awpAQCAtODMxLDcgKzkyOCw2IEBAIGNsYXNzIFJlcHJUcmFjZWJhY2soVGVybWluYWxSZXByKToK
IAogCiBjbGFzcyBSZXByVHJhY2ViYWNrTmF0aXZlKFJlcHJUcmFjZWJhY2spOgotCiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHRibGluZXMpOgogICAgICAgICBzZWxmLnN0eWxlID0gIm5hdGl2ZSIK
ICAgICAgICAgc2VsZi5yZXByZW50cmllcyA9IFtSZXByRW50cnlOYXRpdmUodGJsaW5lcyldCkBA
IC04NDksOCArOTQ1LDYgQEAgY2xhc3MgUmVwckVudHJ5TmF0aXZlKFRlcm1pbmFsUmVwcik6CiAK
IAogY2xhc3MgUmVwckVudHJ5KFRlcm1pbmFsUmVwcik6Ci0gICAgbG9jYWxzc2VwID0gIl8gIgot
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxpbmVzLCByZXByZnVuY2FyZ3MsIHJlcHJsb2NhbHMs
IGZpbGVsb2NyZXByLCBzdHlsZSk6CiAgICAgICAgIHNlbGYubGluZXMgPSBsaW5lcwogICAgICAg
ICBzZWxmLnJlcHJmdW5jYXJncyA9IHJlcHJmdW5jYXJncwpAQCAtODcyLDcgKzk2Niw2IEBAIGNs
YXNzIFJlcHJFbnRyeShUZXJtaW5hbFJlcHIpOgogICAgICAgICAgICAgcmVkID0gbGluZS5zdGFy
dHN3aXRoKCJFICAgIikKICAgICAgICAgICAgIHR3LmxpbmUobGluZSwgYm9sZD1UcnVlLCByZWQ9
cmVkKQogICAgICAgICBpZiBzZWxmLnJlcHJsb2NhbHM6Ci0gICAgICAgICAgICAjIHR3LnNlcChz
ZWxmLmxvY2Fsc3NlcCwgIkxvY2FscyIpCiAgICAgICAgICAgICB0dy5saW5lKCIiKQogICAgICAg
ICAgICAgc2VsZi5yZXBybG9jYWxzLnRvdGVybWluYWwodHcpCiAgICAgICAgIGlmIHNlbGYucmVw
cmZpbGVsb2M6CkBAIC04ODUsNyArOTc4LDYgQEAgY2xhc3MgUmVwckVudHJ5KFRlcm1pbmFsUmVw
cik6CiAKIAogY2xhc3MgUmVwckZpbGVMb2NhdGlvbihUZXJtaW5hbFJlcHIpOgotCiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHBhdGgsIGxpbmVubywgbWVzc2FnZSk6CiAgICAgICAgIHNlbGYucGF0
aCA9IHN0cihwYXRoKQogICAgICAgICBzZWxmLmxpbmVubyA9IGxpbmVubwpAQCAtOTAzLDcgKzk5
NSw2IEBAIGNsYXNzIFJlcHJGaWxlTG9jYXRpb24oVGVybWluYWxSZXByKToKIAogCiBjbGFzcyBS
ZXByTG9jYWxzKFRlcm1pbmFsUmVwcik6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgbGluZXMp
OgogICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMKIApAQCAtOTEzLDcgKzEwMDQsNiBAQCBjbGFz
cyBSZXByTG9jYWxzKFRlcm1pbmFsUmVwcik6CiAKIAogY2xhc3MgUmVwckZ1bmNBcmdzKFRlcm1p
bmFsUmVwcik6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgYXJncyk6CiAgICAgICAgIHNlbGYu
YXJncyA9IGFyZ3MKIApAQCAtOTY4LDMgKzEwNTgsMzYgQEAgZWxzZToKICAgICAgICAgICAgIHJl
dHVybiAibWF4aW11bSByZWN1cnNpb24gZGVwdGggZXhjZWVkZWQiIGluIHN0cihleGNpbmZvLnZh
bHVlKQogICAgICAgICBleGNlcHQgVW5pY29kZUVycm9yOgogICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKKworIyByZWxhdGl2ZSBwYXRocyB0aGF0IHdlIHVzZSB0byBmaWx0ZXIgdHJhY2ViYWNr
IGVudHJpZXMgZnJvbSBhcHBlYXJpbmcgdG8gdGhlIHVzZXI7CisjIHNlZSBmaWx0ZXJfdHJhY2Vi
YWNrCisjIG5vdGU6IGlmIHdlIG5lZWQgdG8gYWRkIG1vcmUgcGF0aHMgdGhhbiB3aGF0IHdlIGhh
dmUgbm93IHdlIHNob3VsZCBwcm9iYWJseSB1c2UgYSBsaXN0CisjIGZvciBiZXR0ZXIgbWFpbnRl
bmFuY2UKKworX1BMVUdHWV9ESVIgPSBweS5wYXRoLmxvY2FsKHBsdWdneS5fX2ZpbGVfXy5yc3Ry
aXAoIm9jIikpCisjIHBsdWdneSBpcyBlaXRoZXIgYSBwYWNrYWdlIG9yIGEgc2luZ2xlIG1vZHVs
ZSBkZXBlbmRpbmcgb24gdGhlIHZlcnNpb24KK2lmIF9QTFVHR1lfRElSLmJhc2VuYW1lID09ICJf
X2luaXRfXy5weSI6CisgICAgX1BMVUdHWV9ESVIgPSBfUExVR0dZX0RJUi5kaXJwYXRoKCkKK19Q
WVRFU1RfRElSID0gcHkucGF0aC5sb2NhbChfcHl0ZXN0Ll9fZmlsZV9fKS5kaXJwYXRoKCkKK19Q
WV9ESVIgPSBweS5wYXRoLmxvY2FsKHB5Ll9fZmlsZV9fKS5kaXJwYXRoKCkKKworCitkZWYgZmls
dGVyX3RyYWNlYmFjayhlbnRyeSk6CisgICAgIiIiUmV0dXJuIFRydWUgaWYgYSBUcmFjZWJhY2tF
bnRyeSBpbnN0YW5jZSBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIHRyYWNlYmFja3M6CisgICAgKiBk
eW5hbWljYWxseSBnZW5lcmF0ZWQgY29kZSAobm8gY29kZSB0byBzaG93IHVwIGZvciBpdCk7Cisg
ICAgKiBpbnRlcm5hbCB0cmFjZWJhY2sgZnJvbSBweXRlc3Qgb3IgaXRzIGludGVybmFsIGxpYnJh
cmllcywgcHkgYW5kIHBsdWdneS4KKyAgICAiIiIKKyAgICAjIGVudHJ5LnBhdGggbWlnaHQgc29t
ZXRpbWVzIHJldHVybiBhIHN0ciBvYmplY3Qgd2hlbiB0aGUgZW50cnkKKyAgICAjIHBvaW50cyB0
byBkeW5hbWljYWxseSBnZW5lcmF0ZWQgY29kZQorICAgICMgc2VlIGh0dHBzOi8vYml0YnVja2V0
Lm9yZy9weXRlc3QtZGV2L3B5L2lzc3Vlcy83MQorICAgIHJhd19maWxlbmFtZSA9IGVudHJ5LmZy
YW1lLmNvZGUucmF3LmNvX2ZpbGVuYW1lCisgICAgaXNfZ2VuZXJhdGVkID0gIjwiIGluIHJhd19m
aWxlbmFtZSBhbmQgIj4iIGluIHJhd19maWxlbmFtZQorICAgIGlmIGlzX2dlbmVyYXRlZDoKKyAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgIyBlbnRyeS5wYXRoIG1pZ2h0IHBvaW50IHRvIGEgbm9u
LWV4aXN0aW5nIGZpbGUsIGluIHdoaWNoIGNhc2UgaXQgd2lsbAorICAgICMgYWxzbyByZXR1cm4g
YSBzdHIgb2JqZWN0LiBzZWUgIzExMzMKKyAgICBwID0gcHkucGF0aC5sb2NhbChlbnRyeS5wYXRo
KQorICAgIHJldHVybiAoCisgICAgICAgIG5vdCBwLnJlbHRvKF9QTFVHR1lfRElSKSBhbmQgbm90
IHAucmVsdG8oX1BZVEVTVF9ESVIpIGFuZCBub3QgcC5yZWx0byhfUFlfRElSKQorICAgICkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL3NvdXJjZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL3NvdXJjZS5weQppbmRleCA2Yjk4MmE0Y2FjNDdhZDY2
OTBjNjAzZTMzYWExMDlkMjQ2NTEyZGRkLi5iMzVlOTdiOWNlYzIzNTYyODM4YTFiMjQ5ZjNmZjc0
NWVlMmQ4NjIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS9zb3Vy
Y2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2NvZGUvc291cmNlLnB5CkBAIC0x
LDI4ICsxLDMyIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIGdlbmVyYXRvcnMsIHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0q
LQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24K
IAogaW1wb3J0IGFzdAotZnJvbSBhc3QgaW1wb3J0IFB5Q0ZfT05MWV9BU1QgYXMgX0FTVF9GTEFH
Ci1mcm9tIGJpc2VjdCBpbXBvcnQgYmlzZWN0X3JpZ2h0CitpbXBvcnQgaW5zcGVjdAogaW1wb3J0
IGxpbmVjYWNoZQogaW1wb3J0IHN5cwotaW1wb3J0IHNpeAotaW1wb3J0IGluc3BlY3QKK2ltcG9y
dCB0ZXh0d3JhcAogaW1wb3J0IHRva2VuaXplCi1pbXBvcnQgcHkKK2ltcG9ydCB3YXJuaW5ncwor
ZnJvbSBhc3QgaW1wb3J0IFB5Q0ZfT05MWV9BU1QgYXMgX0FTVF9GTEFHCitmcm9tIGJpc2VjdCBp
bXBvcnQgYmlzZWN0X3JpZ2h0CiAKLWNweV9jb21waWxlID0gY29tcGlsZQoraW1wb3J0IHB5Citp
bXBvcnQgc2l4CiAKIAogY2xhc3MgU291cmNlKG9iamVjdCk6CiAgICAgIiIiIGFuIGltbXV0YWJs
ZSBvYmplY3QgaG9sZGluZyBhIHNvdXJjZSBjb2RlIGZyYWdtZW50LAogICAgICAgICBwb3NzaWJs
eSBkZWluZGVudGluZyBpdC4KICAgICAiIiIKKwogICAgIF9jb21waWxlY291bnRlciA9IDAKIAog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqcGFydHMsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5s
aW5lcyA9IGxpbmVzID0gW10KICAgICAgICAgZGUgPSBrd2FyZ3MuZ2V0KCJkZWluZGVudCIsIFRy
dWUpCi0gICAgICAgIHJzdHJpcCA9IGt3YXJncy5nZXQoInJzdHJpcCIsIFRydWUpCiAgICAgICAg
IGZvciBwYXJ0IGluIHBhcnRzOgogICAgICAgICAgICAgaWYgbm90IHBhcnQ6CiAgICAgICAgICAg
ICAgICAgcGFydGxpbmVzID0gW10KQEAgLTMyLDExICszNiw2IEBAIGNsYXNzIFNvdXJjZShvYmpl
Y3QpOgogICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IFt4LnJzdHJpcCgiXG4iKSBmb3IgeCBp
biBwYXJ0XQogICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBhcnQsIHNpeC5zdHJpbmdfdHlw
ZXMpOgogICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IHBhcnQuc3BsaXQoIlxuIikKLSAgICAg
ICAgICAgICAgICBpZiByc3RyaXA6Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlIHBhcnRsaW5l
czoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBhcnRsaW5lc1stMV0uc3RyaXAoKToKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICAgICAg
cGFydGxpbmVzLnBvcCgpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHBhcnRs
aW5lcyA9IGdldHNvdXJjZShwYXJ0LCBkZWluZGVudD1kZSkubGluZXMKICAgICAgICAgICAgIGlm
IGRlOgpAQCAtNjAsNyArNTksNyBAQCBjbGFzcyBTb3VyY2Uob2JqZWN0KToKICAgICAgICAgICAg
IGlmIGtleS5zdGVwIG5vdCBpbiAoTm9uZSwgMSk6CiAgICAgICAgICAgICAgICAgcmFpc2UgSW5k
ZXhFcnJvcigiY2Fubm90IHNsaWNlIGEgU291cmNlIHdpdGggYSBzdGVwIikKICAgICAgICAgICAg
IG5ld3NvdXJjZSA9IFNvdXJjZSgpCi0gICAgICAgICAgICBuZXdzb3VyY2UubGluZXMgPSBzZWxm
LmxpbmVzW2tleS5zdGFydDprZXkuc3RvcF0KKyAgICAgICAgICAgIG5ld3NvdXJjZS5saW5lcyA9
IHNlbGYubGluZXNba2V5LnN0YXJ0IDoga2V5LnN0b3BdCiAgICAgICAgICAgICByZXR1cm4gbmV3
c291cmNlCiAKICAgICBkZWYgX19sZW5fXyhzZWxmKToKQEAgLTExNCwzNSArMTEzLDIzIEBAIGNs
YXNzIFNvdXJjZShvYmplY3QpOgogICAgICAgICBhc3QsIHN0YXJ0LCBlbmQgPSBnZXRzdGF0ZW1l
bnRyYW5nZV9hc3QobGluZW5vLCBzZWxmKQogICAgICAgICByZXR1cm4gc3RhcnQsIGVuZAogCi0g
ICAgZGVmIGRlaW5kZW50KHNlbGYsIG9mZnNldD1Ob25lKToKLSAgICAgICAgIiIiIHJldHVybiBh
IG5ldyBzb3VyY2Ugb2JqZWN0IGRlaW5kZW50ZWQgYnkgb2Zmc2V0LgotICAgICAgICAgICAgSWYg
b2Zmc2V0IGlzIE5vbmUgdGhlbiBndWVzcyBhbiBpbmRlbnRhdGlvbiBvZmZzZXQgZnJvbQotICAg
ICAgICAgICAgdGhlIGZpcnN0IG5vbi1ibGFuayBsaW5lLiAgU3Vic2VxdWVudCBsaW5lcyB3aGlj
aCBoYXZlIGEKLSAgICAgICAgICAgIGxvd2VyIGluZGVudGF0aW9uIG9mZnNldCB3aWxsIGJlIGNv
cGllZCB2ZXJiYXRpbSBhcwotICAgICAgICAgICAgdGhleSBhcmUgYXNzdW1lZCB0byBiZSBwYXJ0
IG9mIG11bHRpbGluZXMuCi0gICAgICAgICIiIgotICAgICAgICAjIFhYWCBtYXliZSB1c2UgdGhl
IHRva2VuaXplciB0byBwcm9wZXJseSBoYW5kbGUgbXVsdGlsaW5lCi0gICAgICAgICMgICAgIHN0
cmluZ3MgZXRjLnBwPworICAgIGRlZiBkZWluZGVudChzZWxmKToKKyAgICAgICAgIiIicmV0dXJu
IGEgbmV3IHNvdXJjZSBvYmplY3QgZGVpbmRlbnRlZC4iIiIKICAgICAgICAgbmV3c291cmNlID0g
U291cmNlKCkKLSAgICAgICAgbmV3c291cmNlLmxpbmVzWzpdID0gZGVpbmRlbnQoc2VsZi5saW5l
cywgb2Zmc2V0KQorICAgICAgICBuZXdzb3VyY2UubGluZXNbOl0gPSBkZWluZGVudChzZWxmLmxp
bmVzKQogICAgICAgICByZXR1cm4gbmV3c291cmNlCiAKICAgICBkZWYgaXNwYXJzZWFibGUoc2Vs
ZiwgZGVpbmRlbnQ9VHJ1ZSk6CiAgICAgICAgICIiIiByZXR1cm4gVHJ1ZSBpZiBzb3VyY2UgaXMg
cGFyc2VhYmxlLCBoZXVyaXN0aWNhbGx5CiAgICAgICAgICAgICBkZWluZGVudGluZyBpdCBieSBk
ZWZhdWx0LgogICAgICAgICAiIiIKLSAgICAgICAgZnJvbSBwYXJzZXIgaW1wb3J0IHN1aXRlIGFz
IHN5bnRheF9jaGVja2VyCi0KICAgICAgICAgaWYgZGVpbmRlbnQ6CiAgICAgICAgICAgICBzb3Vy
Y2UgPSBzdHIoc2VsZi5kZWluZGVudCgpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc291
cmNlID0gc3RyKHNlbGYpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgICMgY29tcGlsZShzb3Vy
Y2UrJ1xuJywgIngiLCAiZXhlYyIpCi0gICAgICAgICAgICBzeW50YXhfY2hlY2tlcihzb3VyY2Ug
KyAiXG4iKQotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICBy
YWlzZQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgYXN0LnBhcnNlKHNv
dXJjZSkKKyAgICAgICAgZXhjZXB0IChTeW50YXhFcnJvciwgVmFsdWVFcnJvciwgVHlwZUVycm9y
KToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBlbHNlOgogICAgICAgICAgICAg
cmV0dXJuIFRydWUKQEAgLTE1MSwxMiArMTM4LDcgQEAgY2xhc3MgU291cmNlKG9iamVjdCk6CiAg
ICAgICAgIHJldHVybiAiXG4iLmpvaW4oc2VsZi5saW5lcykKIAogICAgIGRlZiBjb21waWxlKAot
ICAgICAgICBzZWxmLAotICAgICAgICBmaWxlbmFtZT1Ob25lLAotICAgICAgICBtb2RlPSJleGVj
IiwKLSAgICAgICAgZmxhZz1nZW5lcmF0b3JzLmNvbXBpbGVyX2ZsYWcsCi0gICAgICAgIGRvbnRf
aW5oZXJpdD0wLAotICAgICAgICBfZ2VuZnJhbWU9Tm9uZSwKKyAgICAgICAgc2VsZiwgZmlsZW5h
bWU9Tm9uZSwgbW9kZT0iZXhlYyIsIGZsYWc9MCwgZG9udF9pbmhlcml0PTAsIF9nZW5mcmFtZT1O
b25lCiAgICAgKToKICAgICAgICAgIiIiIHJldHVybiBjb21waWxlZCBjb2RlIG9iamVjdC4gaWYg
ZmlsZW5hbWUgaXMgTm9uZQogICAgICAgICAgICAgaW52ZW50IGFuIGFydGlmaWNpYWwgZmlsZW5h
bWUgd2hpY2ggZGlzcGxheXMKQEAgLTE3NCwxMSArMTU2LDExIEBAIGNsYXNzIFNvdXJjZShvYmpl
Y3QpOgogICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gYmFzZSArICIlciAlczolZD4iICUgKGZp
bGVuYW1lLCBmbiwgbGluZW5vKQogICAgICAgICBzb3VyY2UgPSAiXG4iLmpvaW4oc2VsZi5saW5l
cykgKyAiXG4iCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvID0gY3B5X2NvbXBpbGUoc291
cmNlLCBmaWxlbmFtZSwgbW9kZSwgZmxhZykKKyAgICAgICAgICAgIGNvID0gY29tcGlsZShzb3Vy
Y2UsIGZpbGVuYW1lLCBtb2RlLCBmbGFnKQogICAgICAgICBleGNlcHQgU3ludGF4RXJyb3I6CiAg
ICAgICAgICAgICBleCA9IHN5cy5leGNfaW5mbygpWzFdCiAgICAgICAgICAgICAjIHJlLXJlcHJl
c2VudCBzeW50YXggZXJyb3JzIGZyb20gcGFyc2luZyBweXRob24gc3RyaW5ncwotICAgICAgICAg
ICAgbXNnbGluZXMgPSBzZWxmLmxpbmVzWzpleC5saW5lbm9dCisgICAgICAgICAgICBtc2dsaW5l
cyA9IHNlbGYubGluZXNbOiBleC5saW5lbm9dCiAgICAgICAgICAgICBpZiBleC5vZmZzZXQ6CiAg
ICAgICAgICAgICAgICAgbXNnbGluZXMuYXBwZW5kKCIgIiAqIGV4Lm9mZnNldCArICJeIikKICAg
ICAgICAgICAgIG1zZ2xpbmVzLmFwcGVuZCgiKGNvZGUgd2FzIGNvbXBpbGVkIHByb2JhYmx5IGZy
b20gaGVyZTogJXMpIiAlIGZpbGVuYW1lKQpAQCAtMjAwLDkgKzE4Miw3IEBAIGNsYXNzIFNvdXJj
ZShvYmplY3QpOgogIwogCiAKLWRlZiBjb21waWxlXygKLSAgICBzb3VyY2UsIGZpbGVuYW1lPU5v
bmUsIG1vZGU9ImV4ZWMiLCBmbGFncz1nZW5lcmF0b3JzLmNvbXBpbGVyX2ZsYWcsIGRvbnRfaW5o
ZXJpdD0wCi0pOgorZGVmIGNvbXBpbGVfKHNvdXJjZSwgZmlsZW5hbWU9Tm9uZSwgbW9kZT0iZXhl
YyIsIGZsYWdzPTAsIGRvbnRfaW5oZXJpdD0wKToKICAgICAiIiIgY29tcGlsZSB0aGUgZ2l2ZW4g
c291cmNlIHRvIGEgcmF3IGNvZGUgb2JqZWN0LAogICAgICAgICBhbmQgbWFpbnRhaW4gYW4gaW50
ZXJuYWwgY2FjaGUgd2hpY2ggYWxsb3dzIGxhdGVyCiAgICAgICAgIHJldHJpZXZhbCBvZiB0aGUg
c291cmNlIGNvZGUgZm9yIHRoZSBjb2RlIG9iamVjdApAQCAtMjEwLDcgKzE5MCw3IEBAIGRlZiBj
b21waWxlXygKICAgICAiIiIKICAgICBpZiBpc2luc3RhbmNlKHNvdXJjZSwgYXN0LkFTVCk6CiAg
ICAgICAgICMgWFhYIHNob3VsZCBTb3VyY2Ugc3VwcG9ydCBoYXZpbmcgQVNUPwotICAgICAgICBy
ZXR1cm4gY3B5X2NvbXBpbGUoc291cmNlLCBmaWxlbmFtZSwgbW9kZSwgZmxhZ3MsIGRvbnRfaW5o
ZXJpdCkKKyAgICAgICAgcmV0dXJuIGNvbXBpbGUoc291cmNlLCBmaWxlbmFtZSwgbW9kZSwgZmxh
Z3MsIGRvbnRfaW5oZXJpdCkKICAgICBfZ2VuZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpICAjIHRo
ZSBjYWxsZXIKICAgICBzID0gU291cmNlKHNvdXJjZSkKICAgICBjbyA9IHMuY29tcGlsZShmaWxl
bmFtZSwgbW9kZSwgZmxhZ3MsIF9nZW5mcmFtZT1fZ2VuZnJhbWUpCkBAIC0yMTksNyArMTk5LDkg
QEAgZGVmIGNvbXBpbGVfKAogCiBkZWYgZ2V0ZnNsaW5lbm8ob2JqKToKICAgICAiIiIgUmV0dXJu
IHNvdXJjZSBsb2NhdGlvbiAocGF0aCwgbGluZW5vKSBmb3IgdGhlIGdpdmVuIG9iamVjdC4KLSAg
ICBJZiB0aGUgc291cmNlIGNhbm5vdCBiZSBkZXRlcm1pbmVkIHJldHVybiAoIiIsIC0xKQorICAg
IElmIHRoZSBzb3VyY2UgY2Fubm90IGJlIGRldGVybWluZWQgcmV0dXJuICgiIiwgLTEpLgorCisg
ICAgVGhlIGxpbmUgbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgIiIiCiAgICAgZnJvbSAuY29kZSBp
bXBvcnQgQ29kZQogCkBAIC0yNTMsOSArMjM1LDcgQEAgZGVmIGdldGZzbGluZW5vKG9iaik6CiBk
ZWYgZmluZHNvdXJjZShvYmopOgogICAgIHRyeToKICAgICAgICAgc291cmNlbGluZXMsIGxpbmVu
byA9IGluc3BlY3QuZmluZHNvdXJjZShvYmopCi0gICAgZXhjZXB0IHB5LmJ1aWx0aW4uX3N5c2V4
OgotICAgICAgICByYWlzZQotICAgIGV4Y2VwdDogICMgbm9xYQorICAgIGV4Y2VwdCBFeGNlcHRp
b246CiAgICAgICAgIHJldHVybiBOb25lLCAtMQogICAgIHNvdXJjZSA9IFNvdXJjZSgpCiAgICAg
c291cmNlLmxpbmVzID0gW2xpbmUucnN0cmlwKCkgZm9yIGxpbmUgaW4gc291cmNlbGluZXNdCkBA
IC0yNzQsNDcgKzI1NCw4IEBAIGRlZiBnZXRzb3VyY2Uob2JqLCAqKmt3YXJncyk6CiAgICAgcmV0
dXJuIFNvdXJjZShzdHJzcmMsICoqa3dhcmdzKQogCiAKLWRlZiBkZWluZGVudChsaW5lcywgb2Zm
c2V0PU5vbmUpOgotICAgIGlmIG9mZnNldCBpcyBOb25lOgotICAgICAgICBmb3IgbGluZSBpbiBs
aW5lczoKLSAgICAgICAgICAgIGxpbmUgPSBsaW5lLmV4cGFuZHRhYnMoKQotICAgICAgICAgICAg
cyA9IGxpbmUubHN0cmlwKCkKLSAgICAgICAgICAgIGlmIHM6Ci0gICAgICAgICAgICAgICAgb2Zm
c2V0ID0gbGVuKGxpbmUpIC0gbGVuKHMpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIG9mZnNldCA9IDAKLSAgICBpZiBvZmZzZXQgPT0gMDoKLSAgICAg
ICAgcmV0dXJuIGxpc3QobGluZXMpCi0gICAgbmV3bGluZXMgPSBbXQotCi0gICAgZGVmIHJlYWRs
aW5lX2dlbmVyYXRvcihsaW5lcyk6Ci0gICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAgICAg
ICAgICAgeWllbGQgbGluZSArICJcbiIKLQotICAgIGl0ID0gcmVhZGxpbmVfZ2VuZXJhdG9yKGxp
bmVzKQotCi0gICAgdHJ5OgotICAgICAgICBmb3IgXywgXywgKHNsaW5lLCBfKSwgKGVsaW5lLCBf
KSwgXyBpbiB0b2tlbml6ZS5nZW5lcmF0ZV90b2tlbnMoCi0gICAgICAgICAgICBsYW1iZGE6IG5l
eHQoaXQpCi0gICAgICAgICk6Ci0gICAgICAgICAgICBpZiBzbGluZSA+IGxlbihsaW5lcyk6Ci0g
ICAgICAgICAgICAgICAgYnJlYWsgICMgRW5kIG9mIGlucHV0IHJlYWNoZWQKLSAgICAgICAgICAg
IGlmIHNsaW5lID4gbGVuKG5ld2xpbmVzKToKLSAgICAgICAgICAgICAgICBsaW5lID0gbGluZXNb
c2xpbmUgLSAxXS5leHBhbmR0YWJzKCkKLSAgICAgICAgICAgICAgICBpZiBsaW5lLmxzdHJpcCgp
IGFuZCBsaW5lWzpvZmZzZXRdLmlzc3BhY2UoKToKLSAgICAgICAgICAgICAgICAgICAgbGluZSA9
IGxpbmVbb2Zmc2V0Ol0gICMgRGVpbmRlbnQKLSAgICAgICAgICAgICAgICBuZXdsaW5lcy5hcHBl
bmQobGluZSkKLQotICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2xpbmUsIGVsaW5lKToKLSAg
ICAgICAgICAgICAgICAjIERvbid0IGRlaW5kZW50IGNvbnRpbnVpbmcgbGluZXMgb2YKLSAgICAg
ICAgICAgICAgICAjIG11bHRpbGluZSB0b2tlbnMgKGkuZS4gbXVsdGlsaW5lIHN0cmluZ3MpCi0g
ICAgICAgICAgICAgICAgbmV3bGluZXMuYXBwZW5kKGxpbmVzW2ldKQotICAgIGV4Y2VwdCAoSW5k
ZW50YXRpb25FcnJvciwgdG9rZW5pemUuVG9rZW5FcnJvcik6Ci0gICAgICAgIHBhc3MKLSAgICAj
IEFkZCBhbnkgbGluZXMgd2UgZGlkbid0IHNlZS4gRS5nLiBpZiBhbiBleGNlcHRpb24gd2FzIHJh
aXNlZC4KLSAgICBuZXdsaW5lcy5leHRlbmQobGluZXNbbGVuKG5ld2xpbmVzKTpdKQotICAgIHJl
dHVybiBuZXdsaW5lcworZGVmIGRlaW5kZW50KGxpbmVzKToKKyAgICByZXR1cm4gdGV4dHdyYXAu
ZGVkZW50KCJcbiIuam9pbihsaW5lcykpLnNwbGl0bGluZXMoKQogCiAKIGRlZiBnZXRfc3RhdGVt
ZW50X3N0YXJ0ZW5kMihsaW5lbm8sIG5vZGUpOgpAQCAtMzQ0LDcgKzI4NSwxMSBAQCBkZWYgZ2V0
X3N0YXRlbWVudF9zdGFydGVuZDIobGluZW5vLCBub2RlKToKIGRlZiBnZXRzdGF0ZW1lbnRyYW5n
ZV9hc3QobGluZW5vLCBzb3VyY2UsIGFzc2VydGlvbj1GYWxzZSwgYXN0bm9kZT1Ob25lKToKICAg
ICBpZiBhc3Rub2RlIGlzIE5vbmU6CiAgICAgICAgIGNvbnRlbnQgPSBzdHIoc291cmNlKQotICAg
ICAgICBhc3Rub2RlID0gY29tcGlsZShjb250ZW50LCAic291cmNlIiwgImV4ZWMiLCAxMDI0KSAg
IyAxMDI0IGZvciBBU1QKKyAgICAgICAgIyBTZWUgIzQyNjA6CisgICAgICAgICMgZG9uJ3QgcHJv
ZHVjZSBkdXBsaWNhdGUgd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgc291cmNlIHRvIGZpbmQgYXN0
CisgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKKyAgICAgICAgICAgIHdh
cm5pbmdzLnNpbXBsZWZpbHRlcigiaWdub3JlIikKKyAgICAgICAgICAgIGFzdG5vZGUgPSBjb21w
aWxlKGNvbnRlbnQsICJzb3VyY2UiLCAiZXhlYyIsIF9BU1RfRkxBRykKIAogICAgIHN0YXJ0LCBl
bmQgPSBnZXRfc3RhdGVtZW50X3N0YXJ0ZW5kMihsaW5lbm8sIGFzdG5vZGUpCiAgICAgIyB3ZSBu
ZWVkIHRvIGNvcnJlY3QgdGhlIGVuZDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L19pby9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby9fX2luaXRf
Xy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2lvL19faW5pdF9f
LnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8g
c2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby9zYWZlcmVwci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby9zYWZlcmVwci5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
YjQxMmRjY2FkOWQxOThlMjY3MmZjMTVjNjc1ZTEwNmE0MGVkZmEwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2lvL3NhZmVyZXByLnB5CkBAIC0wLDAgKzEsODMg
QEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgcHByaW50CisKK2Zyb20gc2l4Lm1v
dmVzIGltcG9ydCByZXBybGliCisKKworZGVmIF9jYWxsX2FuZF9mb3JtYXRfZXhjZXB0aW9uKGNh
bGwsIHgsICphcmdzKToKKyAgICB0cnk6CisgICAgICAgICMgVHJ5IHRoZSB2YW5pbGxhIHJlcHIg
YW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXN1bHQgaXMgYSBzdHJpbmcKKyAgICAgICAgcmV0dXJu
IGNhbGwoeCwgKmFyZ3MpCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGM6CisgICAgICAgIGV4
Y19uYW1lID0gdHlwZShleGMpLl9fbmFtZV9fCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGV4
Y19pbmZvID0gc3RyKGV4YykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAg
IGV4Y19pbmZvID0gInVua25vd24iCisgICAgICAgIHJldHVybiAnPFslcygiJXMiKSByYWlzZWQg
aW4gcmVwcigpXSAlcyBvYmplY3QgYXQgMHgleD4nICUgKAorICAgICAgICAgICAgZXhjX25hbWUs
CisgICAgICAgICAgICBleGNfaW5mbywKKyAgICAgICAgICAgIHguX19jbGFzc19fLl9fbmFtZV9f
LAorICAgICAgICAgICAgaWQoeCksCisgICAgICAgICkKKworCitjbGFzcyBTYWZlUmVwcihyZXBy
bGliLlJlcHIpOgorICAgICIiInN1YmNsYXNzIG9mIHJlcHIuUmVwciB0aGF0IGxpbWl0cyB0aGUg
cmVzdWx0aW5nIHNpemUgb2YgcmVwcigpCisgICAgYW5kIGluY2x1ZGVzIGluZm9ybWF0aW9uIG9u
IGV4Y2VwdGlvbnMgcmFpc2VkIGR1cmluZyB0aGUgY2FsbC4KKyAgICAiIiIKKworICAgIGRlZiBy
ZXByKHNlbGYsIHgpOgorICAgICAgICByZXR1cm4gc2VsZi5fY2FsbGhlbHBlcihyZXBybGliLlJl
cHIucmVwciwgc2VsZiwgeCkKKworICAgIGRlZiByZXByX3VuaWNvZGUoc2VsZiwgeCwgbGV2ZWwp
OgorICAgICAgICAjIFN0cmljdGx5IHNwZWFraW5nIHdyb25nIG9uIG5hcnJvdyBidWlsZHMKKyAg
ICAgICAgZGVmIHJlcHIodSk6CisgICAgICAgICAgICBpZiAiJyIgbm90IGluIHU6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHUiJyVzJyIgJSB1CisgICAgICAgICAgICBlbGlmICciJyBub3QgaW4g
dToKKyAgICAgICAgICAgICAgICByZXR1cm4gdSciJXMiJyAlIHUKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgcmV0dXJuIHUiJyVzJyIgJSB1LnJlcGxhY2UoIiciLCByIlwnIikK
KworICAgICAgICBzID0gcmVwcih4Wzogc2VsZi5tYXhzdHJpbmddKQorICAgICAgICBpZiBsZW4o
cykgPiBzZWxmLm1heHN0cmluZzoKKyAgICAgICAgICAgIGkgPSBtYXgoMCwgKHNlbGYubWF4c3Ry
aW5nIC0gMykgLy8gMikKKyAgICAgICAgICAgIGogPSBtYXgoMCwgc2VsZi5tYXhzdHJpbmcgLSAz
IC0gaSkKKyAgICAgICAgICAgIHMgPSByZXByKHhbOmldICsgeFtsZW4oeCkgLSBqIDpdKQorICAg
ICAgICAgICAgcyA9IHNbOmldICsgIi4uLiIgKyBzW2xlbihzKSAtIGogOl0KKyAgICAgICAgcmV0
dXJuIHMKKworICAgIGRlZiByZXByX2luc3RhbmNlKHNlbGYsIHgsIGxldmVsKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2NhbGxoZWxwZXIocmVwciwgeCkKKworICAgIGRlZiBfY2FsbGhlbHBlcihz
ZWxmLCBjYWxsLCB4LCAqYXJncyk6CisgICAgICAgIHMgPSBfY2FsbF9hbmRfZm9ybWF0X2V4Y2Vw
dGlvbihjYWxsLCB4LCAqYXJncykKKyAgICAgICAgaWYgbGVuKHMpID4gc2VsZi5tYXhzaXplOgor
ICAgICAgICAgICAgaSA9IG1heCgwLCAoc2VsZi5tYXhzaXplIC0gMykgLy8gMikKKyAgICAgICAg
ICAgIGogPSBtYXgoMCwgc2VsZi5tYXhzaXplIC0gMyAtIGkpCisgICAgICAgICAgICBzID0gc1s6
aV0gKyAiLi4uIiArIHNbbGVuKHMpIC0gaiA6XQorICAgICAgICByZXR1cm4gcworCisKK2RlZiBz
YWZlZm9ybWF0KG9iaik6CisgICAgIiIicmV0dXJuIGEgcHJldHR5IHByaW50ZWQgc3RyaW5nIGZv
ciB0aGUgZ2l2ZW4gb2JqZWN0LgorICAgIEZhaWxpbmcgX19yZXByX18gZnVuY3Rpb25zIG9mIHVz
ZXIgaW5zdGFuY2VzIHdpbGwgYmUgcmVwcmVzZW50ZWQKKyAgICB3aXRoIGEgc2hvcnQgZXhjZXB0
aW9uIGluZm8uCisgICAgIiIiCisgICAgcmV0dXJuIF9jYWxsX2FuZF9mb3JtYXRfZXhjZXB0aW9u
KHBwcmludC5wZm9ybWF0LCBvYmopCisKKworZGVmIHNhZmVyZXByKG9iaiwgbWF4c2l6ZT0yNDAp
OgorICAgICIiInJldHVybiBhIHNpemUtbGltaXRlZCBzYWZlIHJlcHItc3RyaW5nIGZvciB0aGUg
Z2l2ZW4gb2JqZWN0LgorICAgIEZhaWxpbmcgX19yZXByX18gZnVuY3Rpb25zIG9mIHVzZXIgaW5z
dGFuY2VzIHdpbGwgYmUgcmVwcmVzZW50ZWQKKyAgICB3aXRoIGEgc2hvcnQgZXhjZXB0aW9uIGlu
Zm8gYW5kICdzYWZlcmVwcicgZ2VuZXJhbGx5IHRha2VzCisgICAgY2FyZSB0byBuZXZlciByYWlz
ZSBleGNlcHRpb25zIGl0c2VsZi4gIFRoaXMgZnVuY3Rpb24gaXMgYSB3cmFwcGVyCisgICAgYXJv
dW5kIHRoZSBSZXByL3JlcHJsaWIgZnVuY3Rpb25hbGl0eSBvZiB0aGUgc3RhbmRhcmQgMi42IGxp
Yi4KKyAgICAiIiIKKyAgICAjIHJldmlldyBleGNlcHRpb24gaGFuZGxpbmcKKyAgICBzcmVwciA9
IFNhZmVSZXByKCkKKyAgICBzcmVwci5tYXhzdHJpbmcgPSBtYXhzaXplCisgICAgc3JlcHIubWF4
c2l6ZSA9IG1heHNpemUKKyAgICBzcmVwci5tYXhvdGhlciA9IDE2MAorICAgIHJldHVybiBzcmVw
ci5yZXByKG9iaikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby93M2MtaW1wb3J0LmxvZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44N2QxYTE1ZmE5NDM0NTZhMGU4MjA3YjNiMGEwY2ZjNDA2YmE5YTM1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2lvL3czYy1pbXBvcnQubG9n
CkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
KworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
K1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby9f
X2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby9zYWZlcmVwci5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5CmluZGV4IDJjOWE4
ODkwYzlhZmY4NTllYTc5ZWFhZjBmY2JiYjI0NTYwYTM4NDcuLjZiNmFiYjg2M2EzZmYxYmIyN2Q0
YTQzZDViMTA5ZjVmYjhhN2I3NTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0
L2Fzc2VydGlvbi9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3Nl
cnRpb24vX19pbml0X18ucHkKQEAgLTEsMTMgKzEsMTggQEAKKyMgLSotIGNvZGluZzogdXRmLTgg
LSotCiAiIiIKIHN1cHBvcnQgZm9yIHByZXNlbnRpbmcgZGV0YWlsZWQgaW5mb3JtYXRpb24gaW4g
ZmFpbGluZyBhc3NlcnRpb25zLgogIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgc3lzCisKIGltcG9ydCBz
aXgKIAotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgdXRpbAogZnJvbSBfcHl0ZXN0LmFz
c2VydGlvbiBpbXBvcnQgcmV3cml0ZQogZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgdHJ1
bmNhdGUKK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHV0aWwKIAogCiBkZWYgcHl0ZXN0
X2FkZG9wdGlvbihwYXJzZXIpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
YXNzZXJ0aW9uL3Jld3JpdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24v
cmV3cml0ZS5weQppbmRleCBlY2VlZDYxMWZmYjFkMGYxODYzOGM5Mzk3OWE1NmEzOTg0ZTMyN2Nl
Li4xYzYxNjFiMjEyZGEzYmI1MTRlODhhNDI4MTZmZjNkNDIwZjZmZmM5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24vcmV3cml0ZS5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24vcmV3cml0ZS5weQpAQCAtMSwyMiArMSwzMyBAQAor
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIlJld3JpdGUgYXNzZXJ0aW9uIEFTVCB0byBwcm9k
dWNlIG5pY2UgZXJyb3IgbWVzc2FnZXMiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBhc3QKIGltcG9ydCBl
cnJubwotaW1wb3J0IGl0ZXJ0b29scwogaW1wb3J0IGltcAoraW1wb3J0IGl0ZXJ0b29scwogaW1w
b3J0IG1hcnNoYWwKIGltcG9ydCBvcwogaW1wb3J0IHJlCi1pbXBvcnQgc2l4CitpbXBvcnQgc3Ry
aW5nCiBpbXBvcnQgc3RydWN0CiBpbXBvcnQgc3lzCiBpbXBvcnQgdHlwZXMKIAogaW1wb3J0IGF0
b21pY3dyaXRlcwogaW1wb3J0IHB5CitpbXBvcnQgc2l4CiAKK2Zyb20gX3B5dGVzdC5faW8uc2Fm
ZXJlcHIgaW1wb3J0IHNhZmVyZXByCiBmcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB1dGls
Ci0KK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24udXRpbCBpbXBvcnQgKCAgIyBub3FhOiBGNDAxCisg
ICAgZm9ybWF0X2V4cGxhbmF0aW9uIGFzIF9mb3JtYXRfZXhwbGFuYXRpb24sCispCitmcm9tIF9w
eXRlc3QuY29tcGF0IGltcG9ydCBzcGVjX2Zyb21fZmlsZV9sb2NhdGlvbgorZnJvbSBfcHl0ZXN0
LnBhdGhsaWIgaW1wb3J0IGZubWF0Y2hfZXgKK2Zyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBQ
dXJlUGF0aAogCiAjIHB5dGVzdCBjYWNoZXMgcmV3cml0dGVuIHB5Y3MgaW4gX19weWNhY2hlX18u
CiBpZiBoYXNhdHRyKGltcCwgImdldF90YWciKToKQEAgLTUwLDE4ICs2MSwzNSBAQCBjbGFzcyBB
c3NlcnRpb25SZXdyaXRpbmdIb29rKG9iamVjdCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwg
Y29uZmlnKToKICAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLSAgICAgICAgc2VsZi5mbnBh
dHMgPSBjb25maWcuZ2V0aW5pKCJweXRob25fZmlsZXMiKQorICAgICAgICB0cnk6CisgICAgICAg
ICAgICBzZWxmLmZucGF0cyA9IGNvbmZpZy5nZXRpbmkoInB5dGhvbl9maWxlcyIpCisgICAgICAg
IGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgc2VsZi5mbnBhdHMgPSBbInRlc3RfKi5w
eSIsICIqX3Rlc3QucHkiXQogICAgICAgICBzZWxmLnNlc3Npb24gPSBOb25lCiAgICAgICAgIHNl
bGYubW9kdWxlcyA9IHt9CiAgICAgICAgIHNlbGYuX3Jld3JpdHRlbl9uYW1lcyA9IHNldCgpCi0g
ICAgICAgIHNlbGYuX3JlZ2lzdGVyX3dpdGhfcGtnX3Jlc291cmNlcygpCiAgICAgICAgIHNlbGYu
X211c3RfcmV3cml0ZSA9IHNldCgpCisgICAgICAgICMgZmxhZyB0byBndWFyZCBhZ2FpbnN0IHRy
eWluZyB0byByZXdyaXRlIGEgcHljIGZpbGUgd2hpbGUgd2UgYXJlIGFscmVhZHkgd3JpdGluZyBh
bm90aGVyIHB5YyBmaWxlLAorICAgICAgICAjIHdoaWNoIG1pZ2h0IHJlc3VsdCBpbiBpbmZpbml0
ZSByZWN1cnNpb24gKCMzNTA2KQorICAgICAgICBzZWxmLl93cml0aW5nX3B5YyA9IEZhbHNlCisg
ICAgICAgIHNlbGYuX2Jhc2VuYW1lc190b19jaGVja19yZXdyaXRlID0geyJjb25mdGVzdCJ9Cisg
ICAgICAgIHNlbGYuX21hcmtlZF9mb3JfcmV3cml0ZV9jYWNoZSA9IHt9CisgICAgICAgIHNlbGYu
X3Nlc3Npb25fcGF0aHNfY2hlY2tlZCA9IEZhbHNlCiAKICAgICBkZWYgc2V0X3Nlc3Npb24oc2Vs
Ziwgc2Vzc2lvbik6CiAgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKyAgICAgICAgc2Vs
Zi5fc2Vzc2lvbl9wYXRoc19jaGVja2VkID0gRmFsc2UKKworICAgIGRlZiBfaW1wX2ZpbmRfbW9k
dWxlKHNlbGYsIG5hbWUsIHBhdGg9Tm9uZSk6CisgICAgICAgICIiIkluZGlyZWN0aW9uIHNvIHdl
IGNhbiBtb2NrIGNhbGxzIHRvIGZpbmRfbW9kdWxlIG9yaWdpbmF0ZWQgZnJvbSB0aGUgaG9vayBk
dXJpbmcgdGVzdGluZyIiIgorICAgICAgICByZXR1cm4gaW1wLmZpbmRfbW9kdWxlKG5hbWUsIHBh
dGgpCiAKICAgICBkZWYgZmluZF9tb2R1bGUoc2VsZiwgbmFtZSwgcGF0aD1Ob25lKToKKyAgICAg
ICAgaWYgc2VsZi5fd3JpdGluZ19weWM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAg
ICBzdGF0ZSA9IHNlbGYuY29uZmlnLl9hc3NlcnRzdGF0ZQorICAgICAgICBpZiBzZWxmLl9lYXJs
eV9yZXdyaXRlX2JhaWxvdXQobmFtZSwgc3RhdGUpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUK
ICAgICAgICAgc3RhdGUudHJhY2UoImZpbmRfbW9kdWxlIGNhbGxlZCBmb3I6ICVzIiAlIG5hbWUp
CiAgICAgICAgIG5hbWVzID0gbmFtZS5yc3BsaXQoIi4iLCAxKQogICAgICAgICBsYXN0bmFtZSA9
IG5hbWVzWy0xXQpAQCAtNzQsNyArMTAyLDcgQEAgY2xhc3MgQXNzZXJ0aW9uUmV3cml0aW5nSG9v
ayhvYmplY3QpOgogICAgICAgICAgICAgICAgIHB0aCA9IHBhdGhbMF0KICAgICAgICAgaWYgcHRo
IGlzIE5vbmU6CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZmQsIGZuLCBkZXNj
ID0gaW1wLmZpbmRfbW9kdWxlKGxhc3RuYW1lLCBwYXRoKQorICAgICAgICAgICAgICAgIGZkLCBm
biwgZGVzYyA9IHNlbGYuX2ltcF9maW5kX21vZHVsZShsYXN0bmFtZSwgcGF0aCkKICAgICAgICAg
ICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQogICAg
ICAgICAgICAgaWYgZmQgaXMgbm90IE5vbmU6CkBAIC0xNDMsMTIgKzE3MSw1NCBAQCBjbGFzcyBB
c3NlcnRpb25SZXdyaXRpbmdIb29rKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIyBQcm9iYWJs
eSBhIFN5bnRheEVycm9yIGluIHRoZSB0ZXN0LgogICAgICAgICAgICAgICAgIHJldHVybiBOb25l
CiAgICAgICAgICAgICBpZiB3cml0ZToKLSAgICAgICAgICAgICAgICBfd3JpdGVfcHljKHN0YXRl
LCBjbywgc291cmNlX3N0YXQsIHB5YykKKyAgICAgICAgICAgICAgICBzZWxmLl93cml0aW5nX3B5
YyA9IFRydWUKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIF93cml0
ZV9weWMoc3RhdGUsIGNvLCBzb3VyY2Vfc3RhdCwgcHljKQorICAgICAgICAgICAgICAgIGZpbmFs
bHk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRpbmdfcHljID0gRmFsc2UKICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJmb3VuZCBjYWNoZWQgcmV3cml0dGVu
IHB5YyBmb3IgJXIiICUgKGZuLCkpCiAgICAgICAgIHNlbGYubW9kdWxlc1tuYW1lXSA9IGNvLCBw
eWMKICAgICAgICAgcmV0dXJuIHNlbGYKIAorICAgIGRlZiBfZWFybHlfcmV3cml0ZV9iYWlsb3V0
KHNlbGYsIG5hbWUsIHN0YXRlKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgaXMgYSBmYXN0
IHdheSB0byBnZXQgb3V0IG9mIHJld3JpdGluZyBtb2R1bGVzLiBQcm9maWxpbmcgaGFzCisgICAg
ICAgIHNob3duIHRoYXQgdGhlIGNhbGwgdG8gaW1wLmZpbmRfbW9kdWxlIChpbnNpZGUgb2YgdGhl
IGZpbmRfbW9kdWxlCisgICAgICAgIGZyb20gdGhpcyBjbGFzcykgaXMgYSBtYWpvciBzbG93ZG93
biwgc28sIHRoaXMgbWV0aG9kIHRyaWVzIHRvCisgICAgICAgIGZpbHRlciB3aGF0IHdlJ3JlIHN1
cmUgd29uJ3QgYmUgcmV3cml0dGVuIGJlZm9yZSBnZXR0aW5nIHRvIGl0LgorICAgICAgICAiIiIK
KyAgICAgICAgaWYgc2VsZi5zZXNzaW9uIGlzIG5vdCBOb25lIGFuZCBub3Qgc2VsZi5fc2Vzc2lv
bl9wYXRoc19jaGVja2VkOgorICAgICAgICAgICAgc2VsZi5fc2Vzc2lvbl9wYXRoc19jaGVja2Vk
ID0gVHJ1ZQorICAgICAgICAgICAgZm9yIHBhdGggaW4gc2VsZi5zZXNzaW9uLl9pbml0aWFscGF0
aHM6CisgICAgICAgICAgICAgICAgIyBNYWtlIHNvbWV0aGluZyBhcyBjOi9wcm9qZWN0cy9teV9w
cm9qZWN0L3BhdGgucHkgLT4KKyAgICAgICAgICAgICAgICAjICAgICBbJ2M6JywgJ3Byb2plY3Rz
JywgJ215X3Byb2plY3QnLCAncGF0aC5weSddCisgICAgICAgICAgICAgICAgcGFydHMgPSBzdHIo
cGF0aCkuc3BsaXQob3MucGF0aC5zZXApCisgICAgICAgICAgICAgICAgIyBhZGQgJ3BhdGgnIHRv
IGJhc2VuYW1lcyB0byBiZSBjaGVja2VkLgorICAgICAgICAgICAgICAgIHNlbGYuX2Jhc2VuYW1l
c190b19jaGVja19yZXdyaXRlLmFkZChvcy5wYXRoLnNwbGl0ZXh0KHBhcnRzWy0xXSlbMF0pCisK
KyAgICAgICAgIyBOb3RlOiBjb25mdGVzdCBhbHJlYWR5IGJ5IGRlZmF1bHQgaW4gX2Jhc2VuYW1l
c190b19jaGVja19yZXdyaXRlLgorICAgICAgICBwYXJ0cyA9IG5hbWUuc3BsaXQoIi4iKQorICAg
ICAgICBpZiBwYXJ0c1stMV0gaW4gc2VsZi5fYmFzZW5hbWVzX3RvX2NoZWNrX3Jld3JpdGU6Cisg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAjIEZvciBtYXRjaGluZyB0aGUgbmFt
ZSBpdCBtdXN0IGJlIGFzIGlmIGl0IHdhcyBhIGZpbGVuYW1lLgorICAgICAgICBwYXRoID0gUHVy
ZVBhdGgob3MucGF0aC5zZXAuam9pbihwYXJ0cykgKyAiLnB5IikKKworICAgICAgICBmb3IgcGF0
IGluIHNlbGYuZm5wYXRzOgorICAgICAgICAgICAgIyBpZiB0aGUgcGF0dGVybiBjb250YWlucyBz
dWJkaXJlY3RvcmllcyAoInRlc3RzLyoqLnB5IiBmb3IgZXhhbXBsZSkgd2UgY2FuJ3QgYmFpbCBv
dXQgYmFzZWQKKyAgICAgICAgICAgICMgb24gdGhlIG5hbWUgYWxvbmUgYmVjYXVzZSB3ZSBuZWVk
IHRvIG1hdGNoIGFnYWluc3QgdGhlIGZ1bGwgcGF0aAorICAgICAgICAgICAgaWYgb3MucGF0aC5k
aXJuYW1lKHBhdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBp
ZiBmbm1hdGNoX2V4KHBhdCwgcGF0aCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICAgICAgaWYgc2VsZi5faXNfbWFya2VkX2Zvcl9yZXdyaXRlKG5hbWUsIHN0YXRlKToKKyAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHN0YXRlLnRyYWNlKCJlYXJseSBza2lw
IG9mIHJld3JpdGluZyBtb2R1bGU6ICVzIiAlIChuYW1lLCkpCisgICAgICAgIHJldHVybiBUcnVl
CisKICAgICBkZWYgX3Nob3VsZF9yZXdyaXRlKHNlbGYsIG5hbWUsIGZuX3B5cGF0aCwgc3RhdGUp
OgogICAgICAgICAjIGFsd2F5cyByZXdyaXRlIGNvbmZ0ZXN0IGZpbGVzCiAgICAgICAgIGZuID0g
c3RyKGZuX3B5cGF0aCkKQEAgLTE2OCwxMiArMjM4LDIwIEBAIGNsYXNzIEFzc2VydGlvblJld3Jp
dGluZ0hvb2sob2JqZWN0KToKICAgICAgICAgICAgICAgICBzdGF0ZS50cmFjZSgibWF0Y2hlZCB0
ZXN0IGZpbGUgJXIiICUgKGZuLCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKIAotICAg
ICAgICBmb3IgbWFya2VkIGluIHNlbGYuX211c3RfcmV3cml0ZToKLSAgICAgICAgICAgIGlmIG5h
bWUgPT0gbWFya2VkIG9yIG5hbWUuc3RhcnRzd2l0aChtYXJrZWQgKyAiLiIpOgotICAgICAgICAg
ICAgICAgIHN0YXRlLnRyYWNlKCJtYXRjaGVkIG1hcmtlZCBmaWxlICVyIChmcm9tICVyKSIgJSAo
bmFtZSwgbWFya2VkKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1
cm4gc2VsZi5faXNfbWFya2VkX2Zvcl9yZXdyaXRlKG5hbWUsIHN0YXRlKQogCi0gICAgICAgIHJl
dHVybiBGYWxzZQorICAgIGRlZiBfaXNfbWFya2VkX2Zvcl9yZXdyaXRlKHNlbGYsIG5hbWUsIHN0
YXRlKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX21hcmtlZF9mb3Jf
cmV3cml0ZV9jYWNoZVtuYW1lXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAg
ICBmb3IgbWFya2VkIGluIHNlbGYuX211c3RfcmV3cml0ZToKKyAgICAgICAgICAgICAgICBpZiBu
YW1lID09IG1hcmtlZCBvciBuYW1lLnN0YXJ0c3dpdGgobWFya2VkICsgIi4iKToKKyAgICAgICAg
ICAgICAgICAgICAgc3RhdGUudHJhY2UoIm1hdGNoZWQgbWFya2VkIGZpbGUgJXIgKGZyb20gJXIp
IiAlIChuYW1lLCBtYXJrZWQpKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9tYXJrZWRfZm9y
X3Jld3JpdGVfY2FjaGVbbmFtZV0gPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlCisKKyAgICAgICAgICAgIHNlbGYuX21hcmtlZF9mb3JfcmV3cml0ZV9jYWNoZVtuYW1lXSA9
IEZhbHNlCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgIGRlZiBtYXJrX3Jld3JpdGUo
c2VsZiwgKm5hbWVzKToKICAgICAgICAgIiIiTWFyayBpbXBvcnQgbmFtZXMgYXMgbmVlZGluZyB0
byBiZSByZXdyaXR0ZW4uCkBAIC0xOTAsMzAgKzI2OCw0MCBAQCBjbGFzcyBBc3NlcnRpb25SZXdy
aXRpbmdIb29rKG9iamVjdCk6CiAgICAgICAgICAgICApOgogICAgICAgICAgICAgICAgIHNlbGYu
X3dhcm5fYWxyZWFkeV9pbXBvcnRlZChuYW1lKQogICAgICAgICBzZWxmLl9tdXN0X3Jld3JpdGUu
dXBkYXRlKG5hbWVzKQorICAgICAgICBzZWxmLl9tYXJrZWRfZm9yX3Jld3JpdGVfY2FjaGUuY2xl
YXIoKQogCiAgICAgZGVmIF93YXJuX2FscmVhZHlfaW1wb3J0ZWQoc2VsZiwgbmFtZSk6Ci0gICAg
ICAgIHNlbGYuY29uZmlnLndhcm4oCi0gICAgICAgICAgICAiUDEiLCAiTW9kdWxlIGFscmVhZHkg
aW1wb3J0ZWQgc28gY2Fubm90IGJlIHJld3JpdHRlbjogJXMiICUgbmFtZQorICAgICAgICBmcm9t
IF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBvcnQgUHl0ZXN0QXNzZXJ0UmV3cml0ZVdhcm5pbmcK
KyAgICAgICAgZnJvbSBfcHl0ZXN0Lndhcm5pbmdzIGltcG9ydCBfaXNzdWVfd2FybmluZ19jYXB0
dXJlZAorCisgICAgICAgIF9pc3N1ZV93YXJuaW5nX2NhcHR1cmVkKAorICAgICAgICAgICAgUHl0
ZXN0QXNzZXJ0UmV3cml0ZVdhcm5pbmcoCisgICAgICAgICAgICAgICAgIk1vZHVsZSBhbHJlYWR5
IGltcG9ydGVkIHNvIGNhbm5vdCBiZSByZXdyaXR0ZW46ICVzIiAlIG5hbWUKKyAgICAgICAgICAg
ICksCisgICAgICAgICAgICBzZWxmLmNvbmZpZy5ob29rLAorICAgICAgICAgICAgc3RhY2tsZXZl
bD01LAogICAgICAgICApCiAKICAgICBkZWYgbG9hZF9tb2R1bGUoc2VsZiwgbmFtZSk6Ci0gICAg
ICAgICMgSWYgdGhlcmUgaXMgYW4gZXhpc3RpbmcgbW9kdWxlIG9iamVjdCBuYW1lZCAnZnVsbG5h
bWUnIGluCi0gICAgICAgICMgc3lzLm1vZHVsZXMsIHRoZSBsb2FkZXIgbXVzdCB1c2UgdGhhdCBl
eGlzdGluZyBtb2R1bGUuIChPdGhlcndpc2UsCi0gICAgICAgICMgdGhlIHJlbG9hZCgpIGJ1aWx0
aW4gd2lsbCBub3Qgd29yayBjb3JyZWN0bHkuKQotICAgICAgICBpZiBuYW1lIGluIHN5cy5tb2R1
bGVzOgotICAgICAgICAgICAgcmV0dXJuIHN5cy5tb2R1bGVzW25hbWVdCi0KICAgICAgICAgY28s
IHB5YyA9IHNlbGYubW9kdWxlcy5wb3AobmFtZSkKLSAgICAgICAgIyBJIHdpc2ggSSBjb3VsZCBq
dXN0IGNhbGwgaW1wLmxvYWRfY29tcGlsZWQgaGVyZSwgYnV0IF9fZmlsZV9fIGhhcyB0bwotICAg
ICAgICAjIGJlIHNldCBwcm9wZXJseS4gSW4gUHl0aG9uIDMuMissIHRoaXMgYWxsIHdvdWxkIGJl
IGhhbmRsZWQgY29ycmVjdGx5Ci0gICAgICAgICMgYnkgbG9hZF9jb21waWxlZC4KLSAgICAgICAg
bW9kID0gc3lzLm1vZHVsZXNbbmFtZV0gPSBpbXAubmV3X21vZHVsZShuYW1lKQorICAgICAgICBp
ZiBuYW1lIGluIHN5cy5tb2R1bGVzOgorICAgICAgICAgICAgIyBJZiB0aGVyZSBpcyBhbiBleGlz
dGluZyBtb2R1bGUgb2JqZWN0IG5hbWVkICdmdWxsbmFtZScgaW4KKyAgICAgICAgICAgICMgc3lz
Lm1vZHVsZXMsIHRoZSBsb2FkZXIgbXVzdCB1c2UgdGhhdCBleGlzdGluZyBtb2R1bGUuIChPdGhl
cndpc2UsCisgICAgICAgICAgICAjIHRoZSByZWxvYWQoKSBidWlsdGluIHdpbGwgbm90IHdvcmsg
Y29ycmVjdGx5LikKKyAgICAgICAgICAgIG1vZCA9IHN5cy5tb2R1bGVzW25hbWVdCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAjIEkgd2lzaCBJIGNvdWxkIGp1c3QgY2FsbCBpbXAubG9hZF9j
b21waWxlZCBoZXJlLCBidXQgX19maWxlX18gaGFzIHRvCisgICAgICAgICAgICAjIGJlIHNldCBw
cm9wZXJseS4gSW4gUHl0aG9uIDMuMissIHRoaXMgYWxsIHdvdWxkIGJlIGhhbmRsZWQgY29ycmVj
dGx5CisgICAgICAgICAgICAjIGJ5IGxvYWRfY29tcGlsZWQuCisgICAgICAgICAgICBtb2QgPSBz
eXMubW9kdWxlc1tuYW1lXSA9IGltcC5uZXdfbW9kdWxlKG5hbWUpCiAgICAgICAgIHRyeToKICAg
ICAgICAgICAgIG1vZC5fX2ZpbGVfXyA9IGNvLmNvX2ZpbGVuYW1lCiAgICAgICAgICAgICAjIE5v
cm1hbGx5LCB0aGlzIGF0dHJpYnV0ZSBpcyAzLjIrLgogICAgICAgICAgICAgbW9kLl9fY2FjaGVk
X18gPSBweWMKICAgICAgICAgICAgIG1vZC5fX2xvYWRlcl9fID0gc2VsZgotICAgICAgICAgICAg
cHkuYnVpbHRpbi5leGVjXyhjbywgbW9kLl9fZGljdF9fKQorICAgICAgICAgICAgIyBOb3JtYWxs
eSwgdGhpcyBhdHRyaWJ1dGUgaXMgMy40KworICAgICAgICAgICAgbW9kLl9fc3BlY19fID0gc3Bl
Y19mcm9tX2ZpbGVfbG9jYXRpb24obmFtZSwgY28uY29fZmlsZW5hbWUsIGxvYWRlcj1zZWxmKQor
ICAgICAgICAgICAgZXhlYyhjbywgbW9kLl9fZGljdF9fKQogICAgICAgICBleGNlcHQ6ICAjIG5v
cWEKICAgICAgICAgICAgIGlmIG5hbWUgaW4gc3lzLm1vZHVsZXM6CiAgICAgICAgICAgICAgICAg
ZGVsIHN5cy5tb2R1bGVzW25hbWVdCkBAIC0yMjIsNyArMzEwLDcgQEAgY2xhc3MgQXNzZXJ0aW9u
UmV3cml0aW5nSG9vayhvYmplY3QpOgogCiAgICAgZGVmIGlzX3BhY2thZ2Uoc2VsZiwgbmFtZSk6
CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIGZkLCBmbiwgZGVzYyA9IGltcC5maW5kX21vZHVs
ZShuYW1lKQorICAgICAgICAgICAgZmQsIGZuLCBkZXNjID0gc2VsZi5faW1wX2ZpbmRfbW9kdWxl
KG5hbWUpCiAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICAgICAgICAgIHJldHVybiBG
YWxzZQogICAgICAgICBpZiBmZCBpcyBub3QgTm9uZToKQEAgLTIzMCwyNCArMzE4LDYgQEAgY2xh
c3MgQXNzZXJ0aW9uUmV3cml0aW5nSG9vayhvYmplY3QpOgogICAgICAgICB0cCA9IGRlc2NbMl0K
ICAgICAgICAgcmV0dXJuIHRwID09IGltcC5QS0dfRElSRUNUT1JZCiAKLSAgICBAY2xhc3NtZXRo
b2QKLSAgICBkZWYgX3JlZ2lzdGVyX3dpdGhfcGtnX3Jlc291cmNlcyhjbHMpOgotICAgICAgICAi
IiIKLSAgICAgICAgRW5zdXJlIHBhY2thZ2UgcmVzb3VyY2VzIGNhbiBiZSBsb2FkZWQgZnJvbSB0
aGlzIGxvYWRlci4gTWF5IGJlIGNhbGxlZAotICAgICAgICBtdWx0aXBsZSB0aW1lcywgYXMgdGhl
IG9wZXJhdGlvbiBpcyBpZGVtcG90ZW50LgotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgaW1wb3J0IHBrZ19yZXNvdXJjZXMKLQotICAgICAgICAgICAgIyBhY2Nlc3MgYW4g
YXR0cmlidXRlIGluIGNhc2UgYSBkZWZlcnJlZCBpbXBvcnRlciBpcyBwcmVzZW50Ci0gICAgICAg
ICAgICBwa2dfcmVzb3VyY2VzLl9fbmFtZV9fCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoK
LSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgU2luY2UgcHl0ZXN0IHRlc3RzIGFyZSBh
bHdheXMgbG9jYXRlZCBpbiB0aGUgZmlsZSBzeXN0ZW0sIHRoZQotICAgICAgICAjICBEZWZhdWx0
UHJvdmlkZXIgaXMgYXBwcm9wcmlhdGUuCi0gICAgICAgIHBrZ19yZXNvdXJjZXMucmVnaXN0ZXJf
bG9hZGVyX3R5cGUoY2xzLCBwa2dfcmVzb3VyY2VzLkRlZmF1bHRQcm92aWRlcikKLQogICAgIGRl
ZiBnZXRfZGF0YShzZWxmLCBwYXRobmFtZSk6CiAgICAgICAgICIiIk9wdGlvbmFsIFBFUDMwMiBn
ZXRfZGF0YSBBUEkuCiAgICAgICAgICIiIgpAQCAtMjY0LDkgKzMzNCwxMSBAQCBkZWYgX3dyaXRl
X3B5YyhzdGF0ZSwgY28sIHNvdXJjZV9zdGF0LCBweWMpOgogICAgIHRyeToKICAgICAgICAgd2l0
aCBhdG9taWN3cml0ZXMuYXRvbWljX3dyaXRlKHB5YywgbW9kZT0id2IiLCBvdmVyd3JpdGU9VHJ1
ZSkgYXMgZnA6CiAgICAgICAgICAgICBmcC53cml0ZShpbXAuZ2V0X21hZ2ljKCkpCi0gICAgICAg
ICAgICBtdGltZSA9IGludChzb3VyY2Vfc3RhdC5tdGltZSkKKyAgICAgICAgICAgICMgYXMgb2Yg
bm93LCBieXRlY29kZSBoZWFkZXIgZXhwZWN0cyAzMi1iaXQgbnVtYmVycyBmb3Igc2l6ZSBhbmQg
bXRpbWUgKCM0OTAzKQorICAgICAgICAgICAgbXRpbWUgPSBpbnQoc291cmNlX3N0YXQubXRpbWUp
ICYgMHhGRkZGRkZGRgogICAgICAgICAgICAgc2l6ZSA9IHNvdXJjZV9zdGF0LnNpemUgJiAweEZG
RkZGRkZGCi0gICAgICAgICAgICBmcC53cml0ZShzdHJ1Y3QucGFjaygiPGxsIiwgbXRpbWUsIHNp
emUpKQorICAgICAgICAgICAgIyAiPExMIiBzdGFuZHMgZm9yIDIgdW5zaWduZWQgbG9uZ3MsIGxp
dHRsZS1lbmRpbmcKKyAgICAgICAgICAgIGZwLndyaXRlKHN0cnVjdC5wYWNrKCI8TEwiLCBtdGlt
ZSwgc2l6ZSkpCiAgICAgICAgICAgICBmcC53cml0ZShtYXJzaGFsLmR1bXBzKGNvKSkKICAgICBl
eGNlcHQgRW52aXJvbm1lbnRFcnJvciBhcyBlOgogICAgICAgICBzdGF0ZS50cmFjZSgiZXJyb3Ig
d3JpdGluZyBweWMgZmlsZSBhdCAlczogZXJybm89JXMiICUgKHB5YywgZS5lcnJubykpCkBAIC0z
MDksNyArMzgxLDcgQEAgZGVmIF9yZXdyaXRlX3Rlc3QoY29uZmlnLCBmbik6CiAgICAgICAgIGlm
ICgKICAgICAgICAgICAgIG5vdCBzb3VyY2Uuc3RhcnRzd2l0aChCT01fVVRGOCkKICAgICAgICAg
ICAgIGFuZCBjb29raWVfcmUubWF0Y2goc291cmNlWzA6ZW5kMV0pIGlzIE5vbmUKLSAgICAgICAg
ICAgIGFuZCBjb29raWVfcmUubWF0Y2goc291cmNlW2VuZDEgKyAxOmVuZDJdKSBpcyBOb25lCisg
ICAgICAgICAgICBhbmQgY29va2llX3JlLm1hdGNoKHNvdXJjZVtlbmQxICsgMSA6IGVuZDJdKSBp
cyBOb25lCiAgICAgICAgICk6CiAgICAgICAgICAgICBpZiBoYXNhdHRyKHN0YXRlLCAiX2luZGVj
b2RlIik6CiAgICAgICAgICAgICAgICAgIyBlbmNvZGluZ3MgaW1wb3J0ZWQgdXMgYWdhaW4sIHNv
IGRvbid0IHJld3JpdGUuCkBAIC0zMjQsNyArMzk2LDcgQEAgZGVmIF9yZXdyaXRlX3Rlc3QoY29u
ZmlnLCBmbik6CiAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgIGRlbCBzdGF0
ZS5faW5kZWNvZGUKICAgICB0cnk6Ci0gICAgICAgIHRyZWUgPSBhc3QucGFyc2Uoc291cmNlKQor
ICAgICAgICB0cmVlID0gYXN0LnBhcnNlKHNvdXJjZSwgZmlsZW5hbWU9Zm4uc3RycGF0aCkKICAg
ICBleGNlcHQgU3ludGF4RXJyb3I6CiAgICAgICAgICMgTGV0IHRoaXMgcG9wIHVwIGFnYWluIGlu
IHRoZSByZWFsIGltcG9ydC4KICAgICAgICAgc3RhdGUudHJhY2UoImZhaWxlZCB0byBwYXJzZTog
JXIiICUgKGZuLCkpCkBAIC0zNjEsNyArNDMzLDcgQEAgZGVmIF9yZWFkX3B5Yyhzb3VyY2UsIHB5
YywgdHJhY2U9bGFtYmRhIHg6IE5vbmUpOgogICAgICAgICBpZiAoCiAgICAgICAgICAgICBsZW4o
ZGF0YSkgIT0gMTIKICAgICAgICAgICAgIG9yIGRhdGFbOjRdICE9IGltcC5nZXRfbWFnaWMoKQot
ICAgICAgICAgICAgb3Igc3RydWN0LnVucGFjaygiPGxsIiwgZGF0YVs0Ol0pICE9IChtdGltZSwg
c2l6ZSkKKyAgICAgICAgICAgIG9yIHN0cnVjdC51bnBhY2soIjxMTCIsIGRhdGFbNDpdKSAhPSAo
bXRpbWUgJiAweEZGRkZGRkZGLCBzaXplICYgMHhGRkZGRkZGRikKICAgICAgICAgKToKICAgICAg
ICAgICAgIHRyYWNlKCJfcmVhZF9weWMoJXMpOiBpbnZhbGlkIG9yIG91dCBvZiBkYXRlIHB5YyIg
JSBzb3VyY2UpCiAgICAgICAgICAgICByZXR1cm4gTm9uZQpAQCAtMzkyLDE1ICs0NjQsMTUgQEAg
ZGVmIF9zYWZlcmVwcihvYmopOgogICAgIEpTT04gcmVwcnMuCiAKICAgICAiIiIKLSAgICByZXBy
ID0gcHkuaW8uc2FmZXJlcHIob2JqKQotICAgIGlmIGlzaW5zdGFuY2UocmVwciwgc2l4LnRleHRf
dHlwZSk6Ci0gICAgICAgIHQgPSBzaXgudGV4dF90eXBlCi0gICAgZWxzZToKLSAgICAgICAgdCA9
IHNpeC5iaW5hcnlfdHlwZQotICAgIHJldHVybiByZXByLnJlcGxhY2UodCgiXG4iKSwgdCgiXFxu
IikpCi0KLQotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbi51dGlsIGltcG9ydCBmb3JtYXRfZXhwbGFu
YXRpb24gYXMgX2Zvcm1hdF9leHBsYW5hdGlvbiAgIyBub3FhCisgICAgciA9IHNhZmVyZXByKG9i
aikKKyAgICAjIG9ubHkgb2NjdXJzIGluIHB5dGhvbjIueCwgcmVwciBtdXN0IHJldHVybiB0ZXh0
IGluIHB5dGhvbjMrCisgICAgaWYgaXNpbnN0YW5jZShyLCBieXRlcyk6CisgICAgICAgICMgUmVw
cmVzZW50IHVucHJpbnRhYmxlIGJ5dGVzIGFzIGBceCMjYAorICAgICAgICByID0gdSIiLmpvaW4o
CisgICAgICAgICAgICB1IlxceHs6eH0iLmZvcm1hdChvcmQoYykpIGlmIGMgbm90IGluIHN0cmlu
Zy5wcmludGFibGUgZWxzZSBjLmRlY29kZSgpCisgICAgICAgICAgICBmb3IgYyBpbiByCisgICAg
ICAgICkKKyAgICByZXR1cm4gci5yZXBsYWNlKHUiXG4iLCB1IlxcbiIpCiAKIAogZGVmIF9mb3Jt
YXRfYXNzZXJ0bXNnKG9iaik6CkBAIC00MDgsNDAgKzQ4MCw0MyBAQCBkZWYgX2Zvcm1hdF9hc3Nl
cnRtc2cob2JqKToKIAogICAgIEZvciBzdHJpbmdzIHRoaXMgc2ltcGx5IHJlcGxhY2VzIG5ld2xp
bmVzIHdpdGggJ1xuficgc28gdGhhdAogICAgIHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCkgd2ls
bCBwcmVzZXJ2ZSB0aGVtIGluc3RlYWQgb2YgZXNjYXBpbmcKLSAgICBuZXdsaW5lcy4gIEZvciBv
dGhlciBvYmplY3RzIHB5LmlvLnNhZmVyZXByKCkgaXMgdXNlZCBmaXJzdC4KKyAgICBuZXdsaW5l
cy4gIEZvciBvdGhlciBvYmplY3RzIHNhZmVyZXByKCkgaXMgdXNlZCBmaXJzdC4KIAogICAgICIi
IgogICAgICMgcmVwcmxpYiBhcHBlYXJzIHRvIGhhdmUgYSBidWcgd2hpY2ggbWVhbnMgdGhhdCBp
ZiBhIHN0cmluZwogICAgICMgY29udGFpbnMgYSBuZXdsaW5lIGl0IGdldHMgZXNjYXBlZCwgaG93
ZXZlciBpZiBhbiBvYmplY3QgaGFzIGEKICAgICAjIC5fX3JlcHJfXygpIHdoaWNoIGNvbnRhaW5z
IG5ld2xpbmVzIGl0IGRvZXMgbm90IGdldCBlc2NhcGVkLgogICAgICMgSG93ZXZlciBpbiBlaXRo
ZXIgY2FzZSB3ZSB3YW50IHRvIHByZXNlcnZlIHRoZSBuZXdsaW5lLgotICAgIGlmIGlzaW5zdGFu
Y2Uob2JqLCBzaXgudGV4dF90eXBlKSBvciBpc2luc3RhbmNlKG9iaiwgc2l4LmJpbmFyeV90eXBl
KToKLSAgICAgICAgcyA9IG9iagotICAgICAgICBpc19yZXByID0gRmFsc2UKLSAgICBlbHNlOgot
ICAgICAgICBzID0gcHkuaW8uc2FmZXJlcHIob2JqKQotICAgICAgICBpc19yZXByID0gVHJ1ZQot
ICAgIGlmIGlzaW5zdGFuY2Uocywgc2l4LnRleHRfdHlwZSk6Ci0gICAgICAgIHQgPSBzaXgudGV4
dF90eXBlCi0gICAgZWxzZToKLSAgICAgICAgdCA9IHNpeC5iaW5hcnlfdHlwZQotICAgIHMgPSBz
LnJlcGxhY2UodCgiXG4iKSwgdCgiXG5+IikpLnJlcGxhY2UodCgiJSIpLCB0KCIlJSIpKQotICAg
IGlmIGlzX3JlcHI6Ci0gICAgICAgIHMgPSBzLnJlcGxhY2UodCgiXFxuIiksIHQoIlxufiIpKQot
ICAgIHJldHVybiBzCisgICAgcmVwbGFjZXMgPSBbKHUiXG4iLCB1IlxufiIpLCAodSIlIiwgdSIl
JSIpXQorICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwgc2l4LnN0cmluZ190eXBlcyk6CisgICAg
ICAgIG9iaiA9IHNhZmVyZXByKG9iaikKKyAgICAgICAgcmVwbGFjZXMuYXBwZW5kKCh1IlxcbiIs
IHUiXG5+IikpCisKKyAgICBpZiBpc2luc3RhbmNlKG9iaiwgYnl0ZXMpOgorICAgICAgICByZXBs
YWNlcyA9IFsocjEuZW5jb2RlKCksIHIyLmVuY29kZSgpKSBmb3IgcjEsIHIyIGluIHJlcGxhY2Vz
XQorCisgICAgZm9yIHIxLCByMiBpbiByZXBsYWNlczoKKyAgICAgICAgb2JqID0gb2JqLnJlcGxh
Y2UocjEsIHIyKQorCisgICAgcmV0dXJuIG9iagogCiAKIGRlZiBfc2hvdWxkX3JlcHJfZ2xvYmFs
X25hbWUob2JqKToKLSAgICByZXR1cm4gbm90IGhhc2F0dHIob2JqLCAiX19uYW1lX18iKSBhbmQg
bm90IGNhbGxhYmxlKG9iaikKKyAgICBpZiBjYWxsYWJsZShvYmopOgorICAgICAgICByZXR1cm4g
RmFsc2UKKworICAgIHRyeToKKyAgICAgICAgcmV0dXJuIG5vdCBoYXNhdHRyKG9iaiwgIl9fbmFt
ZV9fIikKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICByZXR1cm4gVHJ1ZQogCiAKIGRl
ZiBfZm9ybWF0X2Jvb2xvcChleHBsYW5hdGlvbnMsIGlzX29yKToKICAgICBleHBsYW5hdGlvbiA9
ICIoIiArIChpc19vciBhbmQgIiBvciAiIG9yICIgYW5kICIpLmpvaW4oZXhwbGFuYXRpb25zKSAr
ICIpIgogICAgIGlmIGlzaW5zdGFuY2UoZXhwbGFuYXRpb24sIHNpeC50ZXh0X3R5cGUpOgotICAg
ICAgICB0ID0gc2l4LnRleHRfdHlwZQorICAgICAgICByZXR1cm4gZXhwbGFuYXRpb24ucmVwbGFj
ZSh1IiUiLCB1IiUlIikKICAgICBlbHNlOgotICAgICAgICB0ID0gc2l4LmJpbmFyeV90eXBlCi0g
ICAgcmV0dXJuIGV4cGxhbmF0aW9uLnJlcGxhY2UodCgiJSIpLCB0KCIlJSIpKQorICAgICAgICBy
ZXR1cm4gZXhwbGFuYXRpb24ucmVwbGFjZShiIiUiLCBiIiUlIikKIAogCiBkZWYgX2NhbGxfcmVw
cmNvbXBhcmUob3BzLCByZXN1bHRzLCBleHBscywgZWFjaF9vYmopOgpAQCAtNTgwLDcgKzY1NSw3
IEBAIGNsYXNzIEFzc2VydGlvblJld3JpdGVyKGFzdC5Ob2RlVmlzaXRvcik6CiAgICAgICAgICMg
SW5zZXJ0IHNvbWUgc3BlY2lhbCBpbXBvcnRzIGF0IHRoZSB0b3Agb2YgdGhlIG1vZHVsZSBidXQg
YWZ0ZXIgYW55CiAgICAgICAgICMgZG9jc3RyaW5ncyBhbmQgX19mdXR1cmVfXyBpbXBvcnRzLgog
ICAgICAgICBhbGlhc2VzID0gWwotICAgICAgICAgICAgYXN0LmFsaWFzKHB5LmJ1aWx0aW4uYnVp
bHRpbnMuX19uYW1lX18sICJAcHlfYnVpbHRpbnMiKSwKKyAgICAgICAgICAgIGFzdC5hbGlhcyhz
aXgubW92ZXMuYnVpbHRpbnMuX19uYW1lX18sICJAcHlfYnVpbHRpbnMiKSwKICAgICAgICAgICAg
IGFzdC5hbGlhcygiX3B5dGVzdC5hc3NlcnRpb24ucmV3cml0ZSIsICJAcHl0ZXN0X2FyIiksCiAg
ICAgICAgIF0KICAgICAgICAgZG9jID0gZ2V0YXR0cihtb2QsICJkb2NzdHJpbmciLCBOb25lKQpA
QCAtNjMxLDEwICs3MDYsOSBAQCBjbGFzcyBBc3NlcnRpb25SZXdyaXRlcihhc3QuTm9kZVZpc2l0
b3IpOgogICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKG5vZGUsIG5hbWUsIG5ldykKICAgICAg
ICAgICAgICAgICBlbGlmICgKICAgICAgICAgICAgICAgICAgICAgaXNpbnN0YW5jZShmaWVsZCwg
YXN0LkFTVCkKLSAgICAgICAgICAgICAgICAgICAgYW5kCiAgICAgICAgICAgICAgICAgICAgICMg
RG9uJ3QgcmVjdXJzZSBpbnRvIGV4cHJlc3Npb25zIGFzIHRoZXkgY2FuJ3QgY29udGFpbgogICAg
ICAgICAgICAgICAgICAgICAjIGFzc2VydHMuCi0gICAgICAgICAgICAgICAgICAgIG5vdCBpc2lu
c3RhbmNlKGZpZWxkLCBhc3QuZXhwcikKKyAgICAgICAgICAgICAgICAgICAgYW5kIG5vdCBpc2lu
c3RhbmNlKGZpZWxkLCBhc3QuZXhwcikKICAgICAgICAgICAgICAgICApOgogICAgICAgICAgICAg
ICAgICAgICBub2Rlcy5hcHBlbmQoZmllbGQpCiAKQEAgLTY1NiwxMyArNzMwLDEzIEBAIGNsYXNz
IEFzc2VydGlvblJld3JpdGVyKGFzdC5Ob2RlVmlzaXRvcik6CiAgICAgICAgIHJldHVybiBhc3Qu
TmFtZShuYW1lLCBhc3QuTG9hZCgpKQogCiAgICAgZGVmIGRpc3BsYXkoc2VsZiwgZXhwcik6Ci0g
ICAgICAgICIiIkNhbGwgcHkuaW8uc2FmZXJlcHIgb24gdGhlIGV4cHJlc3Npb24uIiIiCi0gICAg
ICAgIHJldHVybiBzZWxmLmhlbHBlcigic2FmZXJlcHIiLCBleHByKQorICAgICAgICAiIiJDYWxs
IHNhZmVyZXByIG9uIHRoZSBleHByZXNzaW9uLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5oZWxw
ZXIoIl9zYWZlcmVwciIsIGV4cHIpCiAKICAgICBkZWYgaGVscGVyKHNlbGYsIG5hbWUsICphcmdz
KToKICAgICAgICAgIiIiQ2FsbCBhIGhlbHBlciBpbiB0aGlzIG1vZHVsZS4iIiIKICAgICAgICAg
cHlfbmFtZSA9IGFzdC5OYW1lKCJAcHl0ZXN0X2FyIiwgYXN0LkxvYWQoKSkKLSAgICAgICAgYXR0
ciA9IGFzdC5BdHRyaWJ1dGUocHlfbmFtZSwgIl8iICsgbmFtZSwgYXN0LkxvYWQoKSkKKyAgICAg
ICAgYXR0ciA9IGFzdC5BdHRyaWJ1dGUocHlfbmFtZSwgbmFtZSwgYXN0LkxvYWQoKSkKICAgICAg
ICAgcmV0dXJuIGFzdF9DYWxsKGF0dHIsIGxpc3QoYXJncyksIFtdKQogCiAgICAgZGVmIGJ1aWx0
aW4oc2VsZiwgbmFtZSk6CkBAIC03MzEsMTMgKzgwNSwxOSBAQCBjbGFzcyBBc3NlcnRpb25SZXdy
aXRlcihhc3QuTm9kZVZpc2l0b3IpOgogICAgICAgICB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZS4K
IAogICAgICAgICAiIiIKLSAgICAgICAgaWYgaXNpbnN0YW5jZShhc3NlcnRfLnRlc3QsIGFzdC5U
dXBsZSkgYW5kIHNlbGYuY29uZmlnIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZnNsb2NhdGlv
biA9IChzZWxmLm1vZHVsZV9wYXRoLCBhc3NlcnRfLmxpbmVubykKLSAgICAgICAgICAgIHNlbGYu
Y29uZmlnLndhcm4oCi0gICAgICAgICAgICAgICAgIlIxIiwKLSAgICAgICAgICAgICAgICAiYXNz
ZXJ0aW9uIGlzIGFsd2F5cyB0cnVlLCBwZXJoYXBzICIgInJlbW92ZSBwYXJlbnRoZXNlcz8iLAot
ICAgICAgICAgICAgICAgIGZzbG9jYXRpb249ZnNsb2NhdGlvbiwKKyAgICAgICAgaWYgaXNpbnN0
YW5jZShhc3NlcnRfLnRlc3QsIGFzdC5UdXBsZSkgYW5kIGxlbihhc3NlcnRfLnRlc3QuZWx0cykg
Pj0gMToKKyAgICAgICAgICAgIGZyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRl
c3RBc3NlcnRSZXdyaXRlV2FybmluZworICAgICAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisKKyAg
ICAgICAgICAgIHdhcm5pbmdzLndhcm5fZXhwbGljaXQoCisgICAgICAgICAgICAgICAgUHl0ZXN0
QXNzZXJ0UmV3cml0ZVdhcm5pbmcoCisgICAgICAgICAgICAgICAgICAgICJhc3NlcnRpb24gaXMg
YWx3YXlzIHRydWUsIHBlcmhhcHMgcmVtb3ZlIHBhcmVudGhlc2VzPyIKKyAgICAgICAgICAgICAg
ICApLAorICAgICAgICAgICAgICAgIGNhdGVnb3J5PU5vbmUsCisgICAgICAgICAgICAgICAgZmls
ZW5hbWU9c3RyKHNlbGYubW9kdWxlX3BhdGgpLAorICAgICAgICAgICAgICAgIGxpbmVubz1hc3Nl
cnRfLmxpbmVubywKICAgICAgICAgICAgICkKKwogICAgICAgICBzZWxmLnN0YXRlbWVudHMgPSBb
XQogICAgICAgICBzZWxmLnZhcmlhYmxlcyA9IFtdCiAgICAgICAgIHNlbGYudmFyaWFibGVfY291
bnRlciA9IGl0ZXJ0b29scy5jb3VudCgpCkBAIC03NDYsMTkgKzgyNiwyNiBAQCBjbGFzcyBBc3Nl
cnRpb25SZXdyaXRlcihhc3QuTm9kZVZpc2l0b3IpOgogICAgICAgICBzZWxmLnB1c2hfZm9ybWF0
X2NvbnRleHQoKQogICAgICAgICAjIFJld3JpdGUgYXNzZXJ0IGludG8gYSBidW5jaCBvZiBzdGF0
ZW1lbnRzLgogICAgICAgICB0b3BfY29uZGl0aW9uLCBleHBsYW5hdGlvbiA9IHNlbGYudmlzaXQo
YXNzZXJ0Xy50ZXN0KQorICAgICAgICAjIElmIGluIGEgdGVzdCBtb2R1bGUsIGNoZWNrIGlmIGRp
cmVjdGx5IGFzc2VydGluZyBOb25lLCBpbiBvcmRlciB0byB3YXJuIFtJc3N1ZSAjMzE5MV0KKyAg
ICAgICAgaWYgc2VsZi5tb2R1bGVfcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYu
c3RhdGVtZW50cy5hcHBlbmQoCisgICAgICAgICAgICAgICAgc2VsZi53YXJuX2Fib3V0X25vbmVf
YXN0KAorICAgICAgICAgICAgICAgICAgICB0b3BfY29uZGl0aW9uLCBtb2R1bGVfcGF0aD1zZWxm
Lm1vZHVsZV9wYXRoLCBsaW5lbm89YXNzZXJ0Xy5saW5lbm8KKyAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICApCiAgICAgICAgICMgQ3JlYXRlIGZhaWx1cmUgbWVzc2FnZS4KICAgICAgICAg
Ym9keSA9IHNlbGYub25fZmFpbHVyZQogICAgICAgICBuZWdhdGlvbiA9IGFzdC5VbmFyeU9wKGFz
dC5Ob3QoKSwgdG9wX2NvbmRpdGlvbikKICAgICAgICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChh
c3QuSWYobmVnYXRpb24sIGJvZHksIFtdKSkKICAgICAgICAgaWYgYXNzZXJ0Xy5tc2c6Ci0gICAg
ICAgICAgICBhc3NlcnRtc2cgPSBzZWxmLmhlbHBlcigiZm9ybWF0X2Fzc2VydG1zZyIsIGFzc2Vy
dF8ubXNnKQorICAgICAgICAgICAgYXNzZXJ0bXNnID0gc2VsZi5oZWxwZXIoIl9mb3JtYXRfYXNz
ZXJ0bXNnIiwgYXNzZXJ0Xy5tc2cpCiAgICAgICAgICAgICBleHBsYW5hdGlvbiA9ICJcbj5hc3Nl
cnQgIiArIGV4cGxhbmF0aW9uCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnRtc2cg
PSBhc3QuU3RyKCIiKQogICAgICAgICAgICAgZXhwbGFuYXRpb24gPSAiYXNzZXJ0ICIgKyBleHBs
YW5hdGlvbgogICAgICAgICB0ZW1wbGF0ZSA9IGFzdC5CaW5PcChhc3NlcnRtc2csIGFzdC5BZGQo
KSwgYXN0LlN0cihleHBsYW5hdGlvbikpCiAgICAgICAgIG1zZyA9IHNlbGYucG9wX2Zvcm1hdF9j
b250ZXh0KHRlbXBsYXRlKQotICAgICAgICBmbXQgPSBzZWxmLmhlbHBlcigiZm9ybWF0X2V4cGxh
bmF0aW9uIiwgbXNnKQorICAgICAgICBmbXQgPSBzZWxmLmhlbHBlcigiX2Zvcm1hdF9leHBsYW5h
dGlvbiIsIG1zZykKICAgICAgICAgZXJyX25hbWUgPSBhc3QuTmFtZSgiQXNzZXJ0aW9uRXJyb3Ii
LCBhc3QuTG9hZCgpKQogICAgICAgICBleGMgPSBhc3RfQ2FsbChlcnJfbmFtZSwgW2ZtdF0sIFtd
KQogICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6CkBAIC03NzYsMTIgKzg2Mywz
OSBAQCBjbGFzcyBBc3NlcnRpb25SZXdyaXRlcihhc3QuTm9kZVZpc2l0b3IpOgogICAgICAgICAg
ICAgc2V0X2xvY2F0aW9uKHN0bXQsIGFzc2VydF8ubGluZW5vLCBhc3NlcnRfLmNvbF9vZmZzZXQp
CiAgICAgICAgIHJldHVybiBzZWxmLnN0YXRlbWVudHMKIAorICAgIGRlZiB3YXJuX2Fib3V0X25v
bmVfYXN0KHNlbGYsIG5vZGUsIG1vZHVsZV9wYXRoLCBsaW5lbm8pOgorICAgICAgICAiIiIKKyAg
ICAgICAgUmV0dXJucyBhbiBBU1QgaXNzdWluZyBhIHdhcm5pbmcgaWYgdGhlIHZhbHVlIG9mIG5v
ZGUgaXMgYE5vbmVgLgorICAgICAgICBUaGlzIGlzIHVzZWQgdG8gd2FybiB0aGUgdXNlciB3aGVu
IGFzc2VydGluZyBhIGZ1bmN0aW9uIHRoYXQgYXNzZXJ0cworICAgICAgICBpbnRlcm5hbGx5IGFs
cmVhZHkuCisgICAgICAgIFNlZSBpc3N1ZSAjMzE5MSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAg
ICAiIiIKKworICAgICAgICAjIFVzaW5nIHBhcnNlIGJlY2F1c2UgaXQgaXMgZGlmZmVyZW50IGJl
dHdlZW4gcHkyIGFuZCBweTMuCisgICAgICAgIEFTVF9OT05FID0gYXN0LnBhcnNlKCJOb25lIiku
Ym9keVswXS52YWx1ZQorICAgICAgICB2YWxfaXNfbm9uZSA9IGFzdC5Db21wYXJlKG5vZGUsIFth
c3QuSXMoKV0sIFtBU1RfTk9ORV0pCisgICAgICAgIHNlbmRfd2FybmluZyA9IGFzdC5wYXJzZSgK
KyAgICAgICAgICAgICIiIgorZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVz
dEFzc2VydFJld3JpdGVXYXJuaW5nCitmcm9tIHdhcm5pbmdzIGltcG9ydCB3YXJuX2V4cGxpY2l0
Cit3YXJuX2V4cGxpY2l0KAorICAgIFB5dGVzdEFzc2VydFJld3JpdGVXYXJuaW5nKCdhc3NlcnRp
bmcgdGhlIHZhbHVlIE5vbmUsIHBsZWFzZSB1c2UgImFzc2VydCBpcyBOb25lIicpLAorICAgIGNh
dGVnb3J5PU5vbmUsCisgICAgZmlsZW5hbWU9e2ZpbGVuYW1lIXJ9LAorICAgIGxpbmVubz17bGlu
ZW5vfSwKKykKKyAgICAgICAgICAgICIiIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgZmlsZW5h
bWU9bW9kdWxlX3BhdGguc3RycGF0aCwgbGluZW5vPWxpbmVubworICAgICAgICAgICAgKQorICAg
ICAgICApLmJvZHkKKyAgICAgICAgcmV0dXJuIGFzdC5JZih2YWxfaXNfbm9uZSwgc2VuZF93YXJu
aW5nLCBbXSkKKwogICAgIGRlZiB2aXNpdF9OYW1lKHNlbGYsIG5hbWUpOgogICAgICAgICAjIERp
c3BsYXkgdGhlIHJlcHIgb2YgdGhlIG5hbWUgaWYgaXQncyBhIGxvY2FsIHZhcmlhYmxlIG9yCiAg
ICAgICAgICMgX3Nob3VsZF9yZXByX2dsb2JhbF9uYW1lKCkgdGhpbmtzIGl0J3MgYWNjZXB0YWJs
ZS4KICAgICAgICAgbG9jcyA9IGFzdF9DYWxsKHNlbGYuYnVpbHRpbigibG9jYWxzIiksIFtdLCBb
XSkKICAgICAgICAgaW5sb2NzID0gYXN0LkNvbXBhcmUoYXN0LlN0cihuYW1lLmlkKSwgW2FzdC5J
bigpXSwgW2xvY3NdKQotICAgICAgICBkb3JlcHIgPSBzZWxmLmhlbHBlcigic2hvdWxkX3JlcHJf
Z2xvYmFsX25hbWUiLCBuYW1lKQorICAgICAgICBkb3JlcHIgPSBzZWxmLmhlbHBlcigiX3Nob3Vs
ZF9yZXByX2dsb2JhbF9uYW1lIiwgbmFtZSkKICAgICAgICAgdGVzdCA9IGFzdC5Cb29sT3AoYXN0
Lk9yKCksIFtpbmxvY3MsIGRvcmVwcl0pCiAgICAgICAgIGV4cHIgPSBhc3QuSWZFeHAodGVzdCwg
c2VsZi5kaXNwbGF5KG5hbWUpLCBhc3QuU3RyKG5hbWUuaWQpKQogICAgICAgICByZXR1cm4gbmFt
ZSwgc2VsZi5leHBsYW5hdGlvbl9wYXJhbShleHByKQpAQCAtODE3LDcgKzkzMSw3IEBAIGNsYXNz
IEFzc2VydGlvblJld3JpdGVyKGFzdC5Ob2RlVmlzaXRvcik6CiAgICAgICAgICAgICAgICAgc2Vs
Zi5zdGF0ZW1lbnRzID0gYm9keSA9IGlubmVyCiAgICAgICAgIHNlbGYuc3RhdGVtZW50cyA9IHNh
dmUKICAgICAgICAgc2VsZi5vbl9mYWlsdXJlID0gZmFpbF9zYXZlCi0gICAgICAgIGV4cGxfdGVt
cGxhdGUgPSBzZWxmLmhlbHBlcigiZm9ybWF0X2Jvb2xvcCIsIGV4cGxfbGlzdCwgYXN0Lk51bShp
c19vcikpCisgICAgICAgIGV4cGxfdGVtcGxhdGUgPSBzZWxmLmhlbHBlcigiX2Zvcm1hdF9ib29s
b3AiLCBleHBsX2xpc3QsIGFzdC5OdW0oaXNfb3IpKQogICAgICAgICBleHBsID0gc2VsZi5wb3Bf
Zm9ybWF0X2NvbnRleHQoZXhwbF90ZW1wbGF0ZSkKICAgICAgICAgcmV0dXJuIGFzdC5OYW1lKHJl
c192YXIsIGFzdC5Mb2FkKCkpLCBzZWxmLmV4cGxhbmF0aW9uX3BhcmFtKGV4cGwpCiAKQEAgLTg2
NSw3ICs5NzksOCBAQCBjbGFzcyBBc3NlcnRpb25SZXdyaXRlcihhc3QuTm9kZVZpc2l0b3IpOgog
ICAgIGRlZiB2aXNpdF9TdGFycmVkKHNlbGYsIHN0YXJyZWQpOgogICAgICAgICAjIEZyb20gUHl0
aG9uIDMuNSwgYSBTdGFycmVkIG5vZGUgY2FuIGFwcGVhciBpbiBhIGZ1bmN0aW9uIGNhbGwKICAg
ICAgICAgcmVzLCBleHBsID0gc2VsZi52aXNpdChzdGFycmVkLnZhbHVlKQotICAgICAgICByZXR1
cm4gc3RhcnJlZCwgIioiICsgZXhwbAorICAgICAgICBuZXdfc3RhcnJlZCA9IGFzdC5TdGFycmVk
KHJlcywgc3RhcnJlZC5jdHgpCisgICAgICAgIHJldHVybiBuZXdfc3RhcnJlZCwgIioiICsgZXhw
bAogCiAgICAgZGVmIHZpc2l0X0NhbGxfbGVnYWN5KHNlbGYsIGNhbGwpOgogICAgICAgICAiIiIK
QEAgLTk0MSw3ICsxMDU2LDcgQEAgY2xhc3MgQXNzZXJ0aW9uUmV3cml0ZXIoYXN0Lk5vZGVWaXNp
dG9yKToKICAgICAgICAgICAgIGxlZnRfcmVzLCBsZWZ0X2V4cGwgPSBuZXh0X3JlcywgbmV4dF9l
eHBsCiAgICAgICAgICMgVXNlIHB5dGVzdC5hc3NlcnRpb24udXRpbC5fcmVwcmNvbXBhcmUgaWYg
dGhhdCdzIGF2YWlsYWJsZS4KICAgICAgICAgZXhwbF9jYWxsID0gc2VsZi5oZWxwZXIoCi0gICAg
ICAgICAgICAiY2FsbF9yZXByY29tcGFyZSIsCisgICAgICAgICAgICAiX2NhbGxfcmVwcmNvbXBh
cmUiLAogICAgICAgICAgICAgYXN0LlR1cGxlKHN5bXMsIGFzdC5Mb2FkKCkpLAogICAgICAgICAg
ICAgYXN0LlR1cGxlKGxvYWRfbmFtZXMsIGFzdC5Mb2FkKCkpLAogICAgICAgICAgICAgYXN0LlR1
cGxlKGV4cGxzLCBhc3QuTG9hZCgpKSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2Vy
dGlvbi90cnVuY2F0ZS5weQppbmRleCA3OWFkZWNhNmE5YWIxZTM5MDZmMjEyOTE3OGQ0YmM5NzI4
MWI0YmNmLi41MjU4OTZlYTlhZGQyMTRkZDRhNDI0Yzc3YTZhMmJiMDY1ZDcyMDE3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24vdHJ1bmNhdGUucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9uL3RydW5jYXRlLnB5CkBAIC0xLDE1ICsx
LDE4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiCiBVdGlsaXRpZXMgZm9yIHRydW5j
YXRpbmcgYXNzZXJ0aW9uIG91dHB1dC4KIAogQ3VycmVudCBkZWZhdWx0IGJlaGF2aW91ciBpcyB0
byB0cnVuY2F0ZSBhc3NlcnRpb24gZXhwbGFuYXRpb25zIGF0CiB+OCB0ZXJtaW5hbCBsaW5lcywg
dW5sZXNzIHJ1bm5pbmcgaW4gIi12diIgbW9kZSBvciBydW5uaW5nIG9uIENJLgogIiIiCi1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv
bgorCiBpbXBvcnQgb3MKIAogaW1wb3J0IHNpeAogCi0KIERFRkFVTFRfTUFYX0xJTkVTID0gOAog
REVGQVVMVF9NQVhfQ0hBUlMgPSA4ICogODAKIFVTQUdFX01TRyA9ICJ1c2UgJy12dicgdG8gc2hv
dyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi91dGlsLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9uL3V0aWwucHkKaW5kZXggYmNiODAw
YTRhMDdkYTMzMjZjNTJhOGU4NzYwYTNkNTBlNzdiMjQ4NC4uYzM4MmYxYzYwOTFmNDcyMDlkNzRj
ZWFhMzQyNzBhYTcyZTFhOWI3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
YXNzZXJ0aW9uL3V0aWwucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9u
L3V0aWwucHkKQEAgLTEsMTMgKzEsMTggQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiJV
dGlsaXRpZXMgZm9yIGFzc2VydGlvbiBkZWJ1Z2dpbmciIiIKLWZyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlz
aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBwcHJp
bnQKIAotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWltcG9ydCBweQogaW1wb3J0IHNpeAotZnJvbSAu
LmNvbXBhdCBpbXBvcnQgU2VxdWVuY2UKIAotdSA9IHNpeC50ZXh0X3R5cGUKK2ltcG9ydCBfcHl0
ZXN0Ll9jb2RlCitmcm9tIC4uY29tcGF0IGltcG9ydCBTZXF1ZW5jZQorZnJvbSBfcHl0ZXN0IGlt
cG9ydCBvdXRjb21lcworZnJvbSBfcHl0ZXN0Ll9pby5zYWZlcmVwciBpbXBvcnQgc2FmZXJlcHIK
K2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IEFUVFJTX0VRX0ZJRUxECiAKICMgVGhlIF9yZXBy
Y29tcGFyZSBhdHRyaWJ1dGUgb24gdGhlIHV0aWwgbW9kdWxlIGlzIHVzZWQgYnkgdGhlIG5ldyBh
c3NlcnRpb24KICMgaW50ZXJwcmV0YXRpb24gY29kZSBhbmQgYXNzZXJ0aW9uIHJld3JpdGVyIHRv
IGRldGVjdCB0aGlzIHBsdWdpbiB3YXMKQEAgLTE5LDkgKzI0LDkgQEAgX3JlcHJjb21wYXJlID0g
Tm9uZQogIyB0aGUgcmUtZW5jb2RpbmcgaXMgbmVlZGVkIGZvciBweXRob24yIHJlcHIKICMgd2l0
aCBub24tYXNjaWkgY2hhcmFjdGVycyAoc2VlIGlzc3VlIDg3NyBhbmQgMTM3OSkKIGRlZiBlY3Uo
cyk6Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gdShzLCAidXRmLTgiLCAicmVwbGFjZSIpCi0g
ICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICBpZiBpc2luc3RhbmNlKHMsIGJ5dGVzKToKKyAgICAg
ICAgcmV0dXJuIHMuZGVjb2RlKCJVVEYtOCIsICJyZXBsYWNlIikKKyAgICBlbHNlOgogICAgICAg
ICByZXR1cm4gcwogCiAKQEAgLTM4LDcgKzQzLDcgQEAgZGVmIGZvcm1hdF9leHBsYW5hdGlvbihl
eHBsYW5hdGlvbik6CiAgICAgZXhwbGFuYXRpb24gPSBlY3UoZXhwbGFuYXRpb24pCiAgICAgbGlu
ZXMgPSBfc3BsaXRfZXhwbGFuYXRpb24oZXhwbGFuYXRpb24pCiAgICAgcmVzdWx0ID0gX2Zvcm1h
dF9saW5lcyhsaW5lcykKLSAgICByZXR1cm4gdSgiXG4iKS5qb2luKHJlc3VsdCkKKyAgICByZXR1
cm4gdSJcbiIuam9pbihyZXN1bHQpCiAKIAogZGVmIF9zcGxpdF9leHBsYW5hdGlvbihleHBsYW5h
dGlvbik6CkBAIC00OCw3ICs1Myw3IEBAIGRlZiBfc3BsaXRfZXhwbGFuYXRpb24oZXhwbGFuYXRp
b24pOgogICAgIEFueSBvdGhlciBuZXdsaW5lcyB3aWxsIGJlIGVzY2FwZWQgYW5kIGFwcGVhciBp
biB0aGUgbGluZSBhcyB0aGUKICAgICBsaXRlcmFsICdcbicgY2hhcmFjdGVycy4KICAgICAiIiIK
LSAgICByYXdfbGluZXMgPSAoZXhwbGFuYXRpb24gb3IgdSgiIikpLnNwbGl0KCJcbiIpCisgICAg
cmF3X2xpbmVzID0gKGV4cGxhbmF0aW9uIG9yIHUiIikuc3BsaXQoIlxuIikKICAgICBsaW5lcyA9
IFtyYXdfbGluZXNbMF1dCiAgICAgZm9yIHZhbHVlcyBpbiByYXdfbGluZXNbMTpdOgogICAgICAg
ICBpZiB2YWx1ZXMgYW5kIHZhbHVlc1swXSBpbiBbInsiLCAifSIsICJ+IiwgIj4iXToKQEAgLTcz
LDEzICs3OCwxMyBAQCBkZWYgX2Zvcm1hdF9saW5lcyhsaW5lcyk6CiAgICAgZm9yIGxpbmUgaW4g
bGluZXNbMTpdOgogICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoInsiKToKICAgICAgICAgICAg
IGlmIHN0YWNrY250Wy0xXToKLSAgICAgICAgICAgICAgICBzID0gdSgiYW5kICAgIikKKyAgICAg
ICAgICAgICAgICBzID0gdSJhbmQgICAiCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIHMgPSB1KCJ3aGVyZSAiKQorICAgICAgICAgICAgICAgIHMgPSB1IndoZXJlICIKICAgICAg
ICAgICAgIHN0YWNrLmFwcGVuZChsZW4ocmVzdWx0KSkKICAgICAgICAgICAgIHN0YWNrY250Wy0x
XSArPSAxCiAgICAgICAgICAgICBzdGFja2NudC5hcHBlbmQoMCkKLSAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQodSgiICsiKSArIHUoIiAgIikgKiAobGVuKHN0YWNrKSAtIDEpICsgcyArIGxpbmVb
MTpdKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh1IiArIiArIHUiICAiICogKGxlbihzdGFj
aykgLSAxKSArIHMgKyBsaW5lWzE6XSkKICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIn0i
KToKICAgICAgICAgICAgIHN0YWNrLnBvcCgpCiAgICAgICAgICAgICBzdGFja2NudC5wb3AoKQpA
QCAtODgsNyArOTMsNyBAQCBkZWYgX2Zvcm1hdF9saW5lcyhsaW5lcyk6CiAgICAgICAgICAgICBh
c3NlcnQgbGluZVswXSBpbiBbIn4iLCAiPiJdCiAgICAgICAgICAgICBzdGFja1stMV0gKz0gMQog
ICAgICAgICAgICAgaW5kZW50ID0gbGVuKHN0YWNrKSBpZiBsaW5lLnN0YXJ0c3dpdGgoIn4iKSBl
bHNlIGxlbihzdGFjaykgLSAxCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHUoIiAgIikgKiBp
bmRlbnQgKyBsaW5lWzE6XSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodSIgICIgKiBpbmRl
bnQgKyBsaW5lWzE6XSkKICAgICBhc3NlcnQgbGVuKHN0YWNrKSA9PSAxCiAgICAgcmV0dXJuIHJl
c3VsdAogCkBAIC0xMDAsMzIgKzEwNSw0NSBAQCBleGNlcHQgTmFtZUVycm9yOgogICAgIGJhc2Vz
dHJpbmcgPSBzdHIKIAogCi1kZWYgYXNzZXJ0cmVwcl9jb21wYXJlKGNvbmZpZywgb3AsIGxlZnQs
IHJpZ2h0KToKLSAgICAiIiJSZXR1cm4gc3BlY2lhbGlzZWQgZXhwbGFuYXRpb25zIGZvciBzb21l
IG9wZXJhdG9ycy9vcGVyYW5kcyIiIgotICAgIHdpZHRoID0gODAgLSAxNSAtIGxlbihvcCkgLSAy
ICAjIDE1IGNoYXJzIGluZGVudGF0aW9uLCAxIHNwYWNlIGFyb3VuZCBvcAotICAgIGxlZnRfcmVw
ciA9IHB5LmlvLnNhZmVyZXByKGxlZnQsIG1heHNpemU9aW50KHdpZHRoIC8vIDIpKQotICAgIHJp
Z2h0X3JlcHIgPSBweS5pby5zYWZlcmVwcihyaWdodCwgbWF4c2l6ZT13aWR0aCAtIGxlbihsZWZ0
X3JlcHIpKQorZGVmIGlzc2VxdWVuY2UoeCk6CisgICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgU2Vx
dWVuY2UpIGFuZCBub3QgaXNpbnN0YW5jZSh4LCBiYXNlc3RyaW5nKQorCisKK2RlZiBpc3RleHQo
eCk6CisgICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgYmFzZXN0cmluZykKKworCitkZWYgaXNkaWN0
KHgpOgorICAgIHJldHVybiBpc2luc3RhbmNlKHgsIGRpY3QpCisKIAotICAgIHN1bW1hcnkgPSB1
KCIlcyAlcyAlcyIpICUgKGVjdShsZWZ0X3JlcHIpLCBvcCwgZWN1KHJpZ2h0X3JlcHIpKQorZGVm
IGlzc2V0KHgpOgorICAgIHJldHVybiBpc2luc3RhbmNlKHgsIChzZXQsIGZyb3plbnNldCkpCiAK
LSAgICBkZWYgaXNzZXF1ZW5jZSh4KToKLSAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgU2Vx
dWVuY2UpIGFuZCBub3QgaXNpbnN0YW5jZSh4LCBiYXNlc3RyaW5nKQogCi0gICAgZGVmIGlzdGV4
dCh4KToKLSAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgYmFzZXN0cmluZykKK2RlZiBpc2Rh
dGFjbHMob2JqKToKKyAgICByZXR1cm4gZ2V0YXR0cihvYmosICJfX2RhdGFjbGFzc19maWVsZHNf
XyIsIE5vbmUpIGlzIG5vdCBOb25lCiAKLSAgICBkZWYgaXNkaWN0KHgpOgotICAgICAgICByZXR1
cm4gaXNpbnN0YW5jZSh4LCBkaWN0KQogCi0gICAgZGVmIGlzc2V0KHgpOgotICAgICAgICByZXR1
cm4gaXNpbnN0YW5jZSh4LCAoc2V0LCBmcm96ZW5zZXQpKQorZGVmIGlzYXR0cnMob2JqKToKKyAg
ICByZXR1cm4gZ2V0YXR0cihvYmosICJfX2F0dHJzX2F0dHJzX18iLCBOb25lKSBpcyBub3QgTm9u
ZQogCi0gICAgZGVmIGlzaXRlcmFibGUob2JqKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
aXRlcihvYmopCi0gICAgICAgICAgICByZXR1cm4gbm90IGlzdGV4dChvYmopCi0gICAgICAgIGV4
Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKKworZGVmIGlzaXRlcmFi
bGUob2JqKToKKyAgICB0cnk6CisgICAgICAgIGl0ZXIob2JqKQorICAgICAgICByZXR1cm4gbm90
IGlzdGV4dChvYmopCisgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgcmV0dXJuIEZhbHNl
CisKKworZGVmIGFzc2VydHJlcHJfY29tcGFyZShjb25maWcsIG9wLCBsZWZ0LCByaWdodCk6Cisg
ICAgIiIiUmV0dXJuIHNwZWNpYWxpc2VkIGV4cGxhbmF0aW9ucyBmb3Igc29tZSBvcGVyYXRvcnMv
b3BlcmFuZHMiIiIKKyAgICB3aWR0aCA9IDgwIC0gMTUgLSBsZW4ob3ApIC0gMiAgIyAxNSBjaGFy
cyBpbmRlbnRhdGlvbiwgMSBzcGFjZSBhcm91bmQgb3AKKyAgICBsZWZ0X3JlcHIgPSBzYWZlcmVw
cihsZWZ0LCBtYXhzaXplPWludCh3aWR0aCAvLyAyKSkKKyAgICByaWdodF9yZXByID0gc2FmZXJl
cHIocmlnaHQsIG1heHNpemU9d2lkdGggLSBsZW4obGVmdF9yZXByKSkKKworICAgIHN1bW1hcnkg
PSB1IiVzICVzICVzIiAlIChlY3UobGVmdF9yZXByKSwgb3AsIGVjdShyaWdodF9yZXByKSkKIAog
ICAgIHZlcmJvc2UgPSBjb25maWcuZ2V0b3B0aW9uKCJ2ZXJib3NlIikKICAgICBleHBsYW5hdGlv
biA9IE5vbmUKQEAgLTE0MCw2ICsxNTgsMTEgQEAgZGVmIGFzc2VydHJlcHJfY29tcGFyZShjb25m
aWcsIG9wLCBsZWZ0LCByaWdodCk6CiAgICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0g
X2NvbXBhcmVfZXFfc2V0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQogICAgICAgICAgICAgICAgIGVs
aWYgaXNkaWN0KGxlZnQpIGFuZCBpc2RpY3QocmlnaHQpOgogICAgICAgICAgICAgICAgICAgICBl
eHBsYW5hdGlvbiA9IF9jb21wYXJlX2VxX2RpY3QobGVmdCwgcmlnaHQsIHZlcmJvc2UpCisgICAg
ICAgICAgICAgICAgZWxpZiB0eXBlKGxlZnQpID09IHR5cGUocmlnaHQpIGFuZCAoaXNkYXRhY2xz
KGxlZnQpIG9yIGlzYXR0cnMobGVmdCkpOgorICAgICAgICAgICAgICAgICAgICB0eXBlX2ZuID0g
KGlzZGF0YWNscywgaXNhdHRycykKKyAgICAgICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBf
Y29tcGFyZV9lcV9jbHMobGVmdCwgcmlnaHQsIHZlcmJvc2UsIHR5cGVfZm4pCisgICAgICAgICAg
ICAgICAgZWxpZiB2ZXJib3NlID4gMDoKKyAgICAgICAgICAgICAgICAgICAgZXhwbGFuYXRpb24g
PSBfY29tcGFyZV9lcV92ZXJib3NlKGxlZnQsIHJpZ2h0KQogICAgICAgICAgICAgICAgIGlmIGlz
aXRlcmFibGUobGVmdCkgYW5kIGlzaXRlcmFibGUocmlnaHQpOgogICAgICAgICAgICAgICAgICAg
ICBleHBsID0gX2NvbXBhcmVfZXFfaXRlcmFibGUobGVmdCwgcmlnaHQsIHZlcmJvc2UpCiAgICAg
ICAgICAgICAgICAgICAgIGlmIGV4cGxhbmF0aW9uIGlzIG5vdCBOb25lOgpAQCAtMTQ5LDEzICsx
NzIsMTMgQEAgZGVmIGFzc2VydHJlcHJfY29tcGFyZShjb25maWcsIG9wLCBsZWZ0LCByaWdodCk6
CiAgICAgICAgIGVsaWYgb3AgPT0gIm5vdCBpbiI6CiAgICAgICAgICAgICBpZiBpc3RleHQobGVm
dCkgYW5kIGlzdGV4dChyaWdodCk6CiAgICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBfbm90
aW5fdGV4dChsZWZ0LCByaWdodCwgdmVyYm9zZSkKKyAgICBleGNlcHQgb3V0Y29tZXMuRXhpdDoK
KyAgICAgICAgcmFpc2UKICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICBleHBsYW5hdGlv
biA9IFsKLSAgICAgICAgICAgIHUoCi0gICAgICAgICAgICAgICAgIihweXRlc3RfYXNzZXJ0aW9u
IHBsdWdpbjogcmVwcmVzZW50YXRpb24gb2YgZGV0YWlscyBmYWlsZWQuICAiCi0gICAgICAgICAg
ICAgICAgIlByb2JhYmx5IGFuIG9iamVjdCBoYXMgYSBmYXVsdHkgX19yZXByX18uKSIKLSAgICAg
ICAgICAgICksCi0gICAgICAgICAgICB1KF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpKSwK
KyAgICAgICAgICAgIHUiKHB5dGVzdF9hc3NlcnRpb24gcGx1Z2luOiByZXByZXNlbnRhdGlvbiBv
ZiBkZXRhaWxzIGZhaWxlZC4gICIKKyAgICAgICAgICAgIHUiUHJvYmFibHkgYW4gb2JqZWN0IGhh
cyBhIGZhdWx0eSBfX3JlcHJfXy4pIiwKKyAgICAgICAgICAgIHNpeC50ZXh0X3R5cGUoX3B5dGVz
dC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpKSwKICAgICAgICAgXQogCiAgICAg
aWYgbm90IGV4cGxhbmF0aW9uOgpAQCAtMTY0LDggKzE4Nyw4IEBAIGRlZiBhc3NlcnRyZXByX2Nv
bXBhcmUoY29uZmlnLCBvcCwgbGVmdCwgcmlnaHQpOgogICAgIHJldHVybiBbc3VtbWFyeV0gKyBl
eHBsYW5hdGlvbgogCiAKLWRlZiBfZGlmZl90ZXh0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNl
KToKLSAgICAiIiJSZXR1cm4gdGhlIGV4cGxhbmF0aW9uIGZvciB0aGUgZGlmZiBiZXR3ZWVuIHRl
eHQgb3IgYnl0ZXMKK2RlZiBfZGlmZl90ZXh0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPTApOgorICAg
ICIiIlJldHVybiB0aGUgZXhwbGFuYXRpb24gZm9yIHRoZSBkaWZmIGJldHdlZW4gdGV4dCBvciBi
eXRlcy4KIAogICAgIFVubGVzcyAtLXZlcmJvc2UgaXMgdXNlZCB0aGlzIHdpbGwgc2tpcCBsZWFk
aW5nIGFuZCB0cmFpbGluZwogICAgIGNoYXJhY3RlcnMgd2hpY2ggYXJlIGlkZW50aWNhbCB0byBr
ZWVwIHRoZSBkaWZmIG1pbmltYWwuCkBAIC0xODcsMTEgKzIxMCwxMSBAQCBkZWYgX2RpZmZfdGV4
dChsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxzZSk6CiAgICAgICAgIHIgPSByLnJlcGxhY2UociJc
ciIsICJcciIpCiAgICAgICAgIHJldHVybiByCiAKLSAgICBpZiBpc2luc3RhbmNlKGxlZnQsIHNp
eC5iaW5hcnlfdHlwZSk6CisgICAgaWYgaXNpbnN0YW5jZShsZWZ0LCBieXRlcyk6CiAgICAgICAg
IGxlZnQgPSBlc2NhcGVfZm9yX3JlYWRhYmxlX2RpZmYobGVmdCkKLSAgICBpZiBpc2luc3RhbmNl
KHJpZ2h0LCBzaXguYmluYXJ5X3R5cGUpOgorICAgIGlmIGlzaW5zdGFuY2UocmlnaHQsIGJ5dGVz
KToKICAgICAgICAgcmlnaHQgPSBlc2NhcGVfZm9yX3JlYWRhYmxlX2RpZmYocmlnaHQpCi0gICAg
aWYgbm90IHZlcmJvc2U6CisgICAgaWYgdmVyYm9zZSA8IDE6CiAgICAgICAgIGkgPSAwICAjIGp1
c3QgaW4gY2FzZSBsZWZ0IG9yIHJpZ2h0IGhhcyB6ZXJvIGxlbmd0aAogICAgICAgICBmb3IgaSBp
biByYW5nZShtaW4obGVuKGxlZnQpLCBsZW4ocmlnaHQpKSk6CiAgICAgICAgICAgICBpZiBsZWZ0
W2ldICE9IHJpZ2h0W2ldOgpAQCAtMTk5LDggKzIyMiw3IEBAIGRlZiBfZGlmZl90ZXh0KGxlZnQs
IHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKICAgICAgICAgaWYgaSA+IDQyOgogICAgICAgICAgICAg
aSAtPSAxMCAgIyBQcm92aWRlIHNvbWUgY29udGV4dAogICAgICAgICAgICAgZXhwbGFuYXRpb24g
PSBbCi0gICAgICAgICAgICAgICAgdSgiU2tpcHBpbmcgJXMgaWRlbnRpY2FsIGxlYWRpbmcgIiAi
Y2hhcmFjdGVycyBpbiBkaWZmLCB1c2UgLXYgdG8gc2hvdyIpCi0gICAgICAgICAgICAgICAgJSBp
CisgICAgICAgICAgICAgICAgdSJTa2lwcGluZyAlcyBpZGVudGljYWwgbGVhZGluZyBjaGFyYWN0
ZXJzIGluIGRpZmYsIHVzZSAtdiB0byBzaG93IiAlIGkKICAgICAgICAgICAgIF0KICAgICAgICAg
ICAgIGxlZnQgPSBsZWZ0W2k6XQogICAgICAgICAgICAgcmlnaHQgPSByaWdodFtpOl0KQEAgLTIx
MSwxMSArMjMzLDggQEAgZGVmIF9kaWZmX3RleHQobGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2Up
OgogICAgICAgICAgICAgaWYgaSA+IDQyOgogICAgICAgICAgICAgICAgIGkgLT0gMTAgICMgUHJv
dmlkZSBzb21lIGNvbnRleHQKICAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiArPSBbCi0gICAg
ICAgICAgICAgICAgICAgIHUoCi0gICAgICAgICAgICAgICAgICAgICAgICAiU2tpcHBpbmcgJXMg
aWRlbnRpY2FsIHRyYWlsaW5nICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJjaGFyYWN0ZXJz
IGluIGRpZmYsIHVzZSAtdiB0byBzaG93IgotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAg
ICAgICAgICAgICAgICUgaQorICAgICAgICAgICAgICAgICAgICB1IlNraXBwaW5nIHt9IGlkZW50
aWNhbCB0cmFpbGluZyAiCisgICAgICAgICAgICAgICAgICAgIHUiY2hhcmFjdGVycyBpbiBkaWZm
LCB1c2UgLXYgdG8gc2hvdyIuZm9ybWF0KGkpCiAgICAgICAgICAgICAgICAgXQogICAgICAgICAg
ICAgICAgIGxlZnQgPSBsZWZ0WzotaV0KICAgICAgICAgICAgICAgICByaWdodCA9IHJpZ2h0Wzot
aV0KQEAgLTIzMSwxMDggKzI1MCwxNzIgQEAgZGVmIF9kaWZmX3RleHQobGVmdCwgcmlnaHQsIHZl
cmJvc2U9RmFsc2UpOgogICAgIHJldHVybiBleHBsYW5hdGlvbgogCiAKLWRlZiBfY29tcGFyZV9l
cV9pdGVyYWJsZShsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxzZSk6CitkZWYgX2NvbXBhcmVfZXFf
dmVyYm9zZShsZWZ0LCByaWdodCk6CisgICAga2VlcGVuZHMgPSBUcnVlCisgICAgbGVmdF9saW5l
cyA9IHJlcHIobGVmdCkuc3BsaXRsaW5lcyhrZWVwZW5kcykKKyAgICByaWdodF9saW5lcyA9IHJl
cHIocmlnaHQpLnNwbGl0bGluZXMoa2VlcGVuZHMpCisKKyAgICBleHBsYW5hdGlvbiA9IFtdCisg
ICAgZXhwbGFuYXRpb24gKz0gW3UiLSIgKyBsaW5lIGZvciBsaW5lIGluIGxlZnRfbGluZXNdCisg
ICAgZXhwbGFuYXRpb24gKz0gW3UiKyIgKyBsaW5lIGZvciBsaW5lIGluIHJpZ2h0X2xpbmVzXQor
CisgICAgcmV0dXJuIGV4cGxhbmF0aW9uCisKKworZGVmIF9jb21wYXJlX2VxX2l0ZXJhYmxlKGxl
ZnQsIHJpZ2h0LCB2ZXJib3NlPTApOgogICAgIGlmIG5vdCB2ZXJib3NlOgotICAgICAgICByZXR1
cm4gW3UoIlVzZSAtdiB0byBnZXQgdGhlIGZ1bGwgZGlmZiIpXQorICAgICAgICByZXR1cm4gW3Ui
VXNlIC12IHRvIGdldCB0aGUgZnVsbCBkaWZmIl0KICAgICAjIGR5bmFtaWMgaW1wb3J0IHRvIHNw
ZWVkdXAgcHl0ZXN0CiAgICAgaW1wb3J0IGRpZmZsaWIKIAogICAgIHRyeToKICAgICAgICAgbGVm
dF9mb3JtYXR0aW5nID0gcHByaW50LnBmb3JtYXQobGVmdCkuc3BsaXRsaW5lcygpCiAgICAgICAg
IHJpZ2h0X2Zvcm1hdHRpbmcgPSBwcHJpbnQucGZvcm1hdChyaWdodCkuc3BsaXRsaW5lcygpCi0g
ICAgICAgIGV4cGxhbmF0aW9uID0gW3UoIkZ1bGwgZGlmZjoiKV0KKyAgICAgICAgZXhwbGFuYXRp
b24gPSBbdSJGdWxsIGRpZmY6Il0KICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAjIGhh
Y2s6IFByZXR0eVByaW50ZXIucGZvcm1hdCgpIGluIHB5dGhvbiAyIGZhaWxzIHdoZW4gZm9ybWF0
dGluZyBpdGVtcyB0aGF0IGNhbid0IGJlIHNvcnRlZCgpLCBpZSwgY2FsbGluZwogICAgICAgICAj
IHNvcnRlZCgpIG9uIGEgbGlzdCB3b3VsZCByYWlzZS4gU2VlIGlzc3VlICM3MTguCiAgICAgICAg
ICMgQXMgYSB3b3JrYXJvdW5kLCB0aGUgZnVsbCBkaWZmIGlzIGdlbmVyYXRlZCBieSB1c2luZyB0
aGUgcmVwcigpIHN0cmluZyBvZiBlYWNoIGl0ZW0gb2YgZWFjaCBjb250YWluZXIuCiAgICAgICAg
IGxlZnRfZm9ybWF0dGluZyA9IHNvcnRlZChyZXByKHgpIGZvciB4IGluIGxlZnQpCiAgICAgICAg
IHJpZ2h0X2Zvcm1hdHRpbmcgPSBzb3J0ZWQocmVwcih4KSBmb3IgeCBpbiByaWdodCkKLSAgICAg
ICAgZXhwbGFuYXRpb24gPSBbdSgiRnVsbCBkaWZmIChmYWxsYmFjayB0byBjYWxsaW5nIHJlcHIg
b24gZWFjaCBpdGVtKToiKV0KKyAgICAgICAgZXhwbGFuYXRpb24gPSBbdSJGdWxsIGRpZmYgKGZh
bGxiYWNrIHRvIGNhbGxpbmcgcmVwciBvbiBlYWNoIGl0ZW0pOiJdCiAgICAgZXhwbGFuYXRpb24u
ZXh0ZW5kKAogICAgICAgICBsaW5lLnN0cmlwKCkgZm9yIGxpbmUgaW4gZGlmZmxpYi5uZGlmZihs
ZWZ0X2Zvcm1hdHRpbmcsIHJpZ2h0X2Zvcm1hdHRpbmcpCiAgICAgKQogICAgIHJldHVybiBleHBs
YW5hdGlvbgogCiAKLWRlZiBfY29tcGFyZV9lcV9zZXF1ZW5jZShsZWZ0LCByaWdodCwgdmVyYm9z
ZT1GYWxzZSk6CitkZWYgX2NvbXBhcmVfZXFfc2VxdWVuY2UobGVmdCwgcmlnaHQsIHZlcmJvc2U9
MCk6CiAgICAgZXhwbGFuYXRpb24gPSBbXQotICAgIGZvciBpIGluIHJhbmdlKG1pbihsZW4obGVm
dCksIGxlbihyaWdodCkpKToKKyAgICBsZW5fbGVmdCA9IGxlbihsZWZ0KQorICAgIGxlbl9yaWdo
dCA9IGxlbihyaWdodCkKKyAgICBmb3IgaSBpbiByYW5nZShtaW4obGVuX2xlZnQsIGxlbl9yaWdo
dCkpOgogICAgICAgICBpZiBsZWZ0W2ldICE9IHJpZ2h0W2ldOgotICAgICAgICAgICAgZXhwbGFu
YXRpb24gKz0gW3UoIkF0IGluZGV4ICVzIGRpZmY6ICVyICE9ICVyIikgJSAoaSwgbGVmdFtpXSwg
cmlnaHRbaV0pXQorICAgICAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UiQXQgaW5kZXggJXMgZGlm
ZjogJXIgIT0gJXIiICUgKGksIGxlZnRbaV0sIHJpZ2h0W2ldKV0KICAgICAgICAgICAgIGJyZWFr
Ci0gICAgaWYgbGVuKGxlZnQpID4gbGVuKHJpZ2h0KToKLSAgICAgICAgZXhwbGFuYXRpb24gKz0g
WwotICAgICAgICAgICAgdSgiTGVmdCBjb250YWlucyBtb3JlIGl0ZW1zLCBmaXJzdCBleHRyYSBp
dGVtOiAlcyIpCi0gICAgICAgICAgICAlIHB5LmlvLnNhZmVyZXByKGxlZnRbbGVuKHJpZ2h0KV0p
Ci0gICAgICAgIF0KLSAgICBlbGlmIGxlbihsZWZ0KSA8IGxlbihyaWdodCk6Ci0gICAgICAgIGV4
cGxhbmF0aW9uICs9IFsKLSAgICAgICAgICAgIHUoIlJpZ2h0IGNvbnRhaW5zIG1vcmUgaXRlbXMs
IGZpcnN0IGV4dHJhIGl0ZW06ICVzIikKLSAgICAgICAgICAgICUgcHkuaW8uc2FmZXJlcHIocmln
aHRbbGVuKGxlZnQpXSkKLSAgICAgICAgXQorICAgIGxlbl9kaWZmID0gbGVuX2xlZnQgLSBsZW5f
cmlnaHQKKworICAgIGlmIGxlbl9kaWZmOgorICAgICAgICBpZiBsZW5fZGlmZiA+IDA6CisgICAg
ICAgICAgICBkaXJfd2l0aF9tb3JlID0gIkxlZnQiCisgICAgICAgICAgICBleHRyYSA9IHNhZmVy
ZXByKGxlZnRbbGVuX3JpZ2h0XSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxlbl9kaWZm
ID0gMCAtIGxlbl9kaWZmCisgICAgICAgICAgICBkaXJfd2l0aF9tb3JlID0gIlJpZ2h0IgorICAg
ICAgICAgICAgZXh0cmEgPSBzYWZlcmVwcihyaWdodFtsZW5fbGVmdF0pCisKKyAgICAgICAgaWYg
bGVuX2RpZmYgPT0gMToKKyAgICAgICAgICAgIGV4cGxhbmF0aW9uICs9IFt1IiVzIGNvbnRhaW5z
IG9uZSBtb3JlIGl0ZW06ICVzIiAlIChkaXJfd2l0aF9tb3JlLCBleHRyYSldCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBleHBsYW5hdGlvbiArPSBbCisgICAgICAgICAgICAgICAgdSIlcyBj
b250YWlucyAlZCBtb3JlIGl0ZW1zLCBmaXJzdCBleHRyYSBpdGVtOiAlcyIKKyAgICAgICAgICAg
ICAgICAlIChkaXJfd2l0aF9tb3JlLCBsZW5fZGlmZiwgZXh0cmEpCisgICAgICAgICAgICBdCiAg
ICAgcmV0dXJuIGV4cGxhbmF0aW9uCiAKIAotZGVmIF9jb21wYXJlX2VxX3NldChsZWZ0LCByaWdo
dCwgdmVyYm9zZT1GYWxzZSk6CitkZWYgX2NvbXBhcmVfZXFfc2V0KGxlZnQsIHJpZ2h0LCB2ZXJi
b3NlPTApOgogICAgIGV4cGxhbmF0aW9uID0gW10KICAgICBkaWZmX2xlZnQgPSBsZWZ0IC0gcmln
aHQKICAgICBkaWZmX3JpZ2h0ID0gcmlnaHQgLSBsZWZ0CiAgICAgaWYgZGlmZl9sZWZ0OgotICAg
ICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSgiRXh0cmEgaXRlbXMgaW4gdGhlIGxlZnQgc2V0OiIp
KQorICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSJFeHRyYSBpdGVtcyBpbiB0aGUgbGVmdCBz
ZXQ6IikKICAgICAgICAgZm9yIGl0ZW0gaW4gZGlmZl9sZWZ0OgotICAgICAgICAgICAgZXhwbGFu
YXRpb24uYXBwZW5kKHB5LmlvLnNhZmVyZXByKGl0ZW0pKQorICAgICAgICAgICAgZXhwbGFuYXRp
b24uYXBwZW5kKHNhZmVyZXByKGl0ZW0pKQogICAgIGlmIGRpZmZfcmlnaHQ6Ci0gICAgICAgIGV4
cGxhbmF0aW9uLmFwcGVuZCh1KCJFeHRyYSBpdGVtcyBpbiB0aGUgcmlnaHQgc2V0OiIpKQorICAg
ICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSJFeHRyYSBpdGVtcyBpbiB0aGUgcmlnaHQgc2V0OiIp
CiAgICAgICAgIGZvciBpdGVtIGluIGRpZmZfcmlnaHQ6Ci0gICAgICAgICAgICBleHBsYW5hdGlv
bi5hcHBlbmQocHkuaW8uc2FmZXJlcHIoaXRlbSkpCisgICAgICAgICAgICBleHBsYW5hdGlvbi5h
cHBlbmQoc2FmZXJlcHIoaXRlbSkpCiAgICAgcmV0dXJuIGV4cGxhbmF0aW9uCiAKIAotZGVmIF9j
b21wYXJlX2VxX2RpY3QobGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgorZGVmIF9jb21wYXJl
X2VxX2RpY3QobGVmdCwgcmlnaHQsIHZlcmJvc2U9MCk6CiAgICAgZXhwbGFuYXRpb24gPSBbXQot
ICAgIGNvbW1vbiA9IHNldChsZWZ0KS5pbnRlcnNlY3Rpb24oc2V0KHJpZ2h0KSkKKyAgICBzZXRf
bGVmdCA9IHNldChsZWZ0KQorICAgIHNldF9yaWdodCA9IHNldChyaWdodCkKKyAgICBjb21tb24g
PSBzZXRfbGVmdC5pbnRlcnNlY3Rpb24oc2V0X3JpZ2h0KQogICAgIHNhbWUgPSB7azogbGVmdFtr
XSBmb3IgayBpbiBjb21tb24gaWYgbGVmdFtrXSA9PSByaWdodFtrXX0KICAgICBpZiBzYW1lIGFu
ZCB2ZXJib3NlIDwgMjoKLSAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UoIk9taXR0aW5nICVzIGlk
ZW50aWNhbCBpdGVtcywgdXNlIC12diB0byBzaG93IikgJSBsZW4oc2FtZSldCisgICAgICAgIGV4
cGxhbmF0aW9uICs9IFt1Ik9taXR0aW5nICVzIGlkZW50aWNhbCBpdGVtcywgdXNlIC12diB0byBz
aG93IiAlIGxlbihzYW1lKV0KICAgICBlbGlmIHNhbWU6Ci0gICAgICAgIGV4cGxhbmF0aW9uICs9
IFt1KCJDb21tb24gaXRlbXM6IildCisgICAgICAgIGV4cGxhbmF0aW9uICs9IFt1IkNvbW1vbiBp
dGVtczoiXQogICAgICAgICBleHBsYW5hdGlvbiArPSBwcHJpbnQucGZvcm1hdChzYW1lKS5zcGxp
dGxpbmVzKCkKICAgICBkaWZmID0ge2sgZm9yIGsgaW4gY29tbW9uIGlmIGxlZnRba10gIT0gcmln
aHRba119CiAgICAgaWYgZGlmZjoKLSAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UoIkRpZmZlcmlu
ZyBpdGVtczoiKV0KKyAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UiRGlmZmVyaW5nIGl0ZW1zOiJd
CiAgICAgICAgIGZvciBrIGluIGRpZmY6Ci0gICAgICAgICAgICBleHBsYW5hdGlvbiArPSBbCi0g
ICAgICAgICAgICAgICAgcHkuaW8uc2FmZXJlcHIoe2s6IGxlZnRba119KSArICIgIT0gIiArIHB5
LmlvLnNhZmVyZXByKHtrOiByaWdodFtrXX0pCi0gICAgICAgICAgICBdCi0gICAgZXh0cmFfbGVm
dCA9IHNldChsZWZ0KSAtIHNldChyaWdodCkKLSAgICBpZiBleHRyYV9sZWZ0OgotICAgICAgICBl
eHBsYW5hdGlvbi5hcHBlbmQodSgiTGVmdCBjb250YWlucyBtb3JlIGl0ZW1zOiIpKQorICAgICAg
ICAgICAgZXhwbGFuYXRpb24gKz0gW3NhZmVyZXByKHtrOiBsZWZ0W2tdfSkgKyAiICE9ICIgKyBz
YWZlcmVwcih7azogcmlnaHRba119KV0KKyAgICBleHRyYV9sZWZ0ID0gc2V0X2xlZnQgLSBzZXRf
cmlnaHQKKyAgICBsZW5fZXh0cmFfbGVmdCA9IGxlbihleHRyYV9sZWZ0KQorICAgIGlmIGxlbl9l
eHRyYV9sZWZ0OgorICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQoCisgICAgICAgICAgICB1Ikxl
ZnQgY29udGFpbnMgJWQgbW9yZSBpdGVtJXM6IgorICAgICAgICAgICAgJSAobGVuX2V4dHJhX2xl
ZnQsICIiIGlmIGxlbl9leHRyYV9sZWZ0ID09IDEgZWxzZSAicyIpCisgICAgICAgICkKICAgICAg
ICAgZXhwbGFuYXRpb24uZXh0ZW5kKAogICAgICAgICAgICAgcHByaW50LnBmb3JtYXQoe2s6IGxl
ZnRba10gZm9yIGsgaW4gZXh0cmFfbGVmdH0pLnNwbGl0bGluZXMoKQogICAgICAgICApCi0gICAg
ZXh0cmFfcmlnaHQgPSBzZXQocmlnaHQpIC0gc2V0KGxlZnQpCi0gICAgaWYgZXh0cmFfcmlnaHQ6
Ci0gICAgICAgIGV4cGxhbmF0aW9uLmFwcGVuZCh1KCJSaWdodCBjb250YWlucyBtb3JlIGl0ZW1z
OiIpKQorICAgIGV4dHJhX3JpZ2h0ID0gc2V0X3JpZ2h0IC0gc2V0X2xlZnQKKyAgICBsZW5fZXh0
cmFfcmlnaHQgPSBsZW4oZXh0cmFfcmlnaHQpCisgICAgaWYgbGVuX2V4dHJhX3JpZ2h0OgorICAg
ICAgICBleHBsYW5hdGlvbi5hcHBlbmQoCisgICAgICAgICAgICB1IlJpZ2h0IGNvbnRhaW5zICVk
IG1vcmUgaXRlbSVzOiIKKyAgICAgICAgICAgICUgKGxlbl9leHRyYV9yaWdodCwgIiIgaWYgbGVu
X2V4dHJhX3JpZ2h0ID09IDEgZWxzZSAicyIpCisgICAgICAgICkKICAgICAgICAgZXhwbGFuYXRp
b24uZXh0ZW5kKAogICAgICAgICAgICAgcHByaW50LnBmb3JtYXQoe2s6IHJpZ2h0W2tdIGZvciBr
IGluIGV4dHJhX3JpZ2h0fSkuc3BsaXRsaW5lcygpCiAgICAgICAgICkKICAgICByZXR1cm4gZXhw
bGFuYXRpb24KIAogCi1kZWYgX25vdGluX3RleHQodGVybSwgdGV4dCwgdmVyYm9zZT1GYWxzZSk6
CitkZWYgX2NvbXBhcmVfZXFfY2xzKGxlZnQsIHJpZ2h0LCB2ZXJib3NlLCB0eXBlX2Zucyk6Cisg
ICAgaXNkYXRhY2xzLCBpc2F0dHJzID0gdHlwZV9mbnMKKyAgICBpZiBpc2RhdGFjbHMobGVmdCk6
CisgICAgICAgIGFsbF9maWVsZHMgPSBsZWZ0Ll9fZGF0YWNsYXNzX2ZpZWxkc19fCisgICAgICAg
IGZpZWxkc190b19jaGVjayA9IFtmaWVsZCBmb3IgZmllbGQsIGluZm8gaW4gYWxsX2ZpZWxkcy5p
dGVtcygpIGlmIGluZm8uY29tcGFyZV0KKyAgICBlbGlmIGlzYXR0cnMobGVmdCk6CisgICAgICAg
IGFsbF9maWVsZHMgPSBsZWZ0Ll9fYXR0cnNfYXR0cnNfXworICAgICAgICBmaWVsZHNfdG9fY2hl
Y2sgPSBbCisgICAgICAgICAgICBmaWVsZC5uYW1lIGZvciBmaWVsZCBpbiBhbGxfZmllbGRzIGlm
IGdldGF0dHIoZmllbGQsIEFUVFJTX0VRX0ZJRUxEKQorICAgICAgICBdCisKKyAgICBzYW1lID0g
W10KKyAgICBkaWZmID0gW10KKyAgICBmb3IgZmllbGQgaW4gZmllbGRzX3RvX2NoZWNrOgorICAg
ICAgICBpZiBnZXRhdHRyKGxlZnQsIGZpZWxkKSA9PSBnZXRhdHRyKHJpZ2h0LCBmaWVsZCk6Cisg
ICAgICAgICAgICBzYW1lLmFwcGVuZChmaWVsZCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGRpZmYuYXBwZW5kKGZpZWxkKQorCisgICAgZXhwbGFuYXRpb24gPSBbXQorICAgIGlmIHNhbWUg
YW5kIHZlcmJvc2UgPCAyOgorICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSJPbWl0dGluZyAl
cyBpZGVudGljYWwgaXRlbXMsIHVzZSAtdnYgdG8gc2hvdyIgJSBsZW4oc2FtZSkpCisgICAgZWxp
ZiBzYW1lOgorICAgICAgICBleHBsYW5hdGlvbiArPSBbdSJNYXRjaGluZyBhdHRyaWJ1dGVzOiJd
CisgICAgICAgIGV4cGxhbmF0aW9uICs9IHBwcmludC5wZm9ybWF0KHNhbWUpLnNwbGl0bGluZXMo
KQorICAgIGlmIGRpZmY6CisgICAgICAgIGV4cGxhbmF0aW9uICs9IFt1IkRpZmZlcmluZyBhdHRy
aWJ1dGVzOiJdCisgICAgICAgIGZvciBmaWVsZCBpbiBkaWZmOgorICAgICAgICAgICAgZXhwbGFu
YXRpb24gKz0gWworICAgICAgICAgICAgICAgICh1IiVzOiAlciAhPSAlciIpICUgKGZpZWxkLCBn
ZXRhdHRyKGxlZnQsIGZpZWxkKSwgZ2V0YXR0cihyaWdodCwgZmllbGQpKQorICAgICAgICAgICAg
XQorICAgIHJldHVybiBleHBsYW5hdGlvbgorCisKK2RlZiBfbm90aW5fdGV4dCh0ZXJtLCB0ZXh0
LCB2ZXJib3NlPTApOgogICAgIGluZGV4ID0gdGV4dC5maW5kKHRlcm0pCiAgICAgaGVhZCA9IHRl
eHRbOmluZGV4XQotICAgIHRhaWwgPSB0ZXh0W2luZGV4ICsgbGVuKHRlcm0pOl0KKyAgICB0YWls
ID0gdGV4dFtpbmRleCArIGxlbih0ZXJtKSA6XQogICAgIGNvcnJlY3RfdGV4dCA9IGhlYWQgKyB0
YWlsCiAgICAgZGlmZiA9IF9kaWZmX3RleHQoY29ycmVjdF90ZXh0LCB0ZXh0LCB2ZXJib3NlKQot
ICAgIG5ld2RpZmYgPSBbdSgiJXMgaXMgY29udGFpbmVkIGhlcmU6IikgJSBweS5pby5zYWZlcmVw
cih0ZXJtLCBtYXhzaXplPTQyKV0KKyAgICBuZXdkaWZmID0gW3UiJXMgaXMgY29udGFpbmVkIGhl
cmU6IiAlIHNhZmVyZXByKHRlcm0sIG1heHNpemU9NDIpXQogICAgIGZvciBsaW5lIGluIGRpZmY6
Ci0gICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCh1KCJTa2lwcGluZyIpKToKKyAgICAgICAgaWYg
bGluZS5zdGFydHN3aXRoKHUiU2tpcHBpbmciKToKICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgIGlmIGxpbmUuc3RhcnRzd2l0aCh1KCItICIpKToKKyAgICAgICAgaWYgbGluZS5zdGFydHN3
aXRoKHUiLSAiKToKICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGlmIGxpbmUuc3RhcnRz
d2l0aCh1KCIrICIpKToKLSAgICAgICAgICAgIG5ld2RpZmYuYXBwZW5kKHUoIiAgIikgKyBsaW5l
WzI6XSkKKyAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKHUiKyAiKToKKyAgICAgICAgICAgIG5l
d2RpZmYuYXBwZW5kKHUiICAiICsgbGluZVsyOl0pCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBuZXdkaWZmLmFwcGVuZChsaW5lKQogICAgIHJldHVybiBuZXdkaWZmCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3QvY2FjaGVwcm92aWRlci5weQppbmRleCBlYjBmY2MwNmY5YmQyODBlMWVlY2E5ZTFj
ZmU0ZjNiZmFmMzE4MWFhLi5mNWM1NTQ1NDg0OThjOWFiYzlmMGQ1OGU3NDkyOTM4NzkxODMwZmNj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkKQEAgLTEsNDMgKzEs
NzMgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIKIG1lcmdlZCBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgY2FjaGUgcHJvdmlkZXIKIAogdGhlIG5hbWUgY2FjaGUgd2FzIG5vdCBjaG9zZW4g
dG8gZW5zdXJlIHBsdWdneSBhdXRvbWF0aWNhbGx5CiBpZ25vcmVzIHRoZSBleHRlcm5hbCBweXRl
c3QtY2FjaGUKICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgcHJpbnRfZnVuY3Rpb24KIAoraW1wb3J0IGpzb24KK2ltcG9ydCBvcwogZnJvbSBjb2xs
ZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKIAoraW1wb3J0IGF0dHIKIGltcG9ydCBweQogaW1w
b3J0IHNpeAogCiBpbXBvcnQgcHl0ZXN0Ci1pbXBvcnQganNvbgotaW1wb3J0IG9zCi1mcm9tIG9z
LnBhdGggaW1wb3J0IHNlcCBhcyBfc2VwLCBhbHRzZXAgYXMgX2FsdHNlcAorZnJvbSAuY29tcGF0
IGltcG9ydCBfUFkyIGFzIFBZMgorZnJvbSAucGF0aGxpYiBpbXBvcnQgUGF0aAorZnJvbSAucGF0
aGxpYiBpbXBvcnQgcmVzb2x2ZV9mcm9tX3N0cgorZnJvbSAucGF0aGxpYiBpbXBvcnQgcm1fcmYK
KworUkVBRE1FX0NPTlRFTlQgPSB1IiIiXAorIyBweXRlc3QgY2FjaGUgZGlyZWN0b3J5ICMKKwor
VGhpcyBkaXJlY3RvcnkgY29udGFpbnMgZGF0YSBmcm9tIHRoZSBweXRlc3QncyBjYWNoZSBwbHVn
aW4sCit3aGljaCBwcm92aWRlcyB0aGUgYC0tbGZgIGFuZCBgLS1mZmAgb3B0aW9ucywgYXMgd2Vs
bCBhcyB0aGUgYGNhY2hlYCBmaXh0dXJlLgorCisqKkRvIG5vdCoqIGNvbW1pdCB0aGlzIHRvIHZl
cnNpb24gY29udHJvbC4KKworU2VlIFt0aGUgZG9jc10oaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcv
ZW4vbGF0ZXN0L2NhY2hlLmh0bWwpIGZvciBtb3JlIGluZm9ybWF0aW9uLgorIiIiCisKK0NBQ0hF
RElSX1RBR19DT05URU5UID0gYiIiIlwKK1NpZ25hdHVyZTogOGE0NzdmNTk3ZDI4ZDE3Mjc4OWYw
Njg4NjgwNmJjNTUKKyMgVGhpcyBmaWxlIGlzIGEgY2FjaGUgZGlyZWN0b3J5IHRhZyBjcmVhdGVk
IGJ5IHB5dGVzdC4KKyMgRm9yIGluZm9ybWF0aW9uIGFib3V0IGNhY2hlIGRpcmVjdG9yeSB0YWdz
LCBzZWU6CisjCWh0dHA6Ly93d3cuYmZvcmQuaW5mby9jYWNoZWRpci9zcGVjLmh0bWwKKyIiIgog
CiAKK0BhdHRyLnMKIGNsYXNzIENhY2hlKG9iamVjdCk6CisgICAgX2NhY2hlZGlyID0gYXR0ci5p
YihyZXByPUZhbHNlKQorICAgIF9jb25maWcgPSBhdHRyLmliKHJlcHI9RmFsc2UpCiAKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcK
LSAgICAgICAgc2VsZi5fY2FjaGVkaXIgPSBDYWNoZS5jYWNoZV9kaXJfZnJvbV9jb25maWcoY29u
ZmlnKQotICAgICAgICBzZWxmLnRyYWNlID0gY29uZmlnLnRyYWNlLnJvb3QuZ2V0KCJjYWNoZSIp
Ci0gICAgICAgIGlmIGNvbmZpZy5nZXRvcHRpb24oImNhY2hlY2xlYXIiKToKLSAgICAgICAgICAg
IHNlbGYudHJhY2UoImNsZWFyaW5nIGNhY2hlZGlyIikKLSAgICAgICAgICAgIGlmIHNlbGYuX2Nh
Y2hlZGlyLmNoZWNrKCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY2FjaGVkaXIucmVtb3ZlKCkK
LSAgICAgICAgICAgIHNlbGYuX2NhY2hlZGlyLm1rZGlyKCkKKyAgICBAY2xhc3NtZXRob2QKKyAg
ICBkZWYgZm9yX2NvbmZpZyhjbHMsIGNvbmZpZyk6CisgICAgICAgIGNhY2hlZGlyID0gY2xzLmNh
Y2hlX2Rpcl9mcm9tX2NvbmZpZyhjb25maWcpCisgICAgICAgIGlmIGNvbmZpZy5nZXRvcHRpb24o
ImNhY2hlY2xlYXIiKSBhbmQgY2FjaGVkaXIuZXhpc3RzKCk6CisgICAgICAgICAgICBybV9yZihj
YWNoZWRpcikKKyAgICAgICAgICAgIGNhY2hlZGlyLm1rZGlyKCkKKyAgICAgICAgcmV0dXJuIGNs
cyhjYWNoZWRpciwgY29uZmlnKQogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBjYWNoZV9k
aXJfZnJvbV9jb25maWcoY29uZmlnKToKLSAgICAgICAgY2FjaGVfZGlyID0gY29uZmlnLmdldGlu
aSgiY2FjaGVfZGlyIikKLSAgICAgICAgY2FjaGVfZGlyID0gb3MucGF0aC5leHBhbmR1c2VyKGNh
Y2hlX2RpcikKLSAgICAgICAgY2FjaGVfZGlyID0gb3MucGF0aC5leHBhbmR2YXJzKGNhY2hlX2Rp
cikKLSAgICAgICAgaWYgb3MucGF0aC5pc2FicyhjYWNoZV9kaXIpOgotICAgICAgICAgICAgcmV0
dXJuIHB5LnBhdGgubG9jYWwoY2FjaGVfZGlyKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
cmV0dXJuIGNvbmZpZy5yb290ZGlyLmpvaW4oY2FjaGVfZGlyKQorICAgICAgICByZXR1cm4gcmVz
b2x2ZV9mcm9tX3N0cihjb25maWcuZ2V0aW5pKCJjYWNoZV9kaXIiKSwgY29uZmlnLnJvb3RkaXIp
CisKKyAgICBkZWYgd2FybihzZWxmLCBmbXQsICoqYXJncyk6CisgICAgICAgIGZyb20gX3B5dGVz
dC53YXJuaW5ncyBpbXBvcnQgX2lzc3VlX3dhcm5pbmdfY2FwdHVyZWQKKyAgICAgICAgZnJvbSBf
cHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVzdENhY2hlV2FybmluZworCisgICAgICAg
IF9pc3N1ZV93YXJuaW5nX2NhcHR1cmVkKAorICAgICAgICAgICAgUHl0ZXN0Q2FjaGVXYXJuaW5n
KGZtdC5mb3JtYXQoKiphcmdzKSBpZiBhcmdzIGVsc2UgZm10KSwKKyAgICAgICAgICAgIHNlbGYu
X2NvbmZpZy5ob29rLAorICAgICAgICAgICAgc3RhY2tsZXZlbD0zLAorICAgICAgICApCiAKICAg
ICBkZWYgbWFrZWRpcihzZWxmLCBuYW1lKToKICAgICAgICAgIiIiIHJldHVybiBhIGRpcmVjdG9y
eSBwYXRoIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgSWYgdGhlCkBAIC00OSwxMiArNzks
MTUgQEAgY2xhc3MgQ2FjaGUob2JqZWN0KToKICAgICAgICAgICAgICBNYWtlIHN1cmUgdGhlIG5h
bWUgY29udGFpbnMgeW91ciBwbHVnaW4gb3IgYXBwbGljYXRpb24KICAgICAgICAgICAgICBpZGVu
dGlmaWVycyB0byBwcmV2ZW50IGNsYXNoZXMgd2l0aCBvdGhlciBjYWNoZSB1c2Vycy4KICAgICAg
ICAgIiIiCi0gICAgICAgIGlmIF9zZXAgaW4gbmFtZSBvciBfYWx0c2VwIGlzIG5vdCBOb25lIGFu
ZCBfYWx0c2VwIGluIG5hbWU6CisgICAgICAgIG5hbWUgPSBQYXRoKG5hbWUpCisgICAgICAgIGlm
IGxlbihuYW1lLnBhcnRzKSA+IDE6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJuYW1l
IGlzIG5vdCBhbGxvd2VkIHRvIGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIikKLSAgICAgICAgcmV0
dXJuIHNlbGYuX2NhY2hlZGlyLmVuc3VyZV9kaXIoImQiLCBuYW1lKQorICAgICAgICByZXMgPSBz
ZWxmLl9jYWNoZWRpci5qb2lucGF0aCgiZCIsIG5hbWUpCisgICAgICAgIHJlcy5ta2RpcihleGlz
dF9vaz1UcnVlLCBwYXJlbnRzPVRydWUpCisgICAgICAgIHJldHVybiBweS5wYXRoLmxvY2FsKHJl
cykKIAogICAgIGRlZiBfZ2V0dmFsdWVwYXRoKHNlbGYsIGtleSk6Ci0gICAgICAgIHJldHVybiBz
ZWxmLl9jYWNoZWRpci5qb2luKCJ2IiwgKmtleS5zcGxpdCgiLyIpKQorICAgICAgICByZXR1cm4g
c2VsZi5fY2FjaGVkaXIuam9pbnBhdGgoInYiLCBQYXRoKGtleSkpCiAKICAgICBkZWYgZ2V0KHNl
bGYsIGtleSwgZGVmYXVsdCk6CiAgICAgICAgICIiIiByZXR1cm4gY2FjaGVkIHZhbHVlIGZvciB0
aGUgZ2l2ZW4ga2V5LiAgSWYgbm8gdmFsdWUKQEAgLTY4LDEzICsxMDEsMTEgQEAgY2xhc3MgQ2Fj
aGUob2JqZWN0KToKIAogICAgICAgICAiIiIKICAgICAgICAgcGF0aCA9IHNlbGYuX2dldHZhbHVl
cGF0aChrZXkpCi0gICAgICAgIGlmIHBhdGguY2hlY2soKToKLSAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICB3aXRoIHBhdGgub3BlbigiciIpIGFzIGY6Ci0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiBqc29uLmxvYWQoZikKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgot
ICAgICAgICAgICAgICAgIHNlbGYudHJhY2UoImNhY2hlLWludmFsaWQgYXQgJXMiICUgKHBhdGgs
KSkKLSAgICAgICAgcmV0dXJuIGRlZmF1bHQKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0
aCBwYXRoLm9wZW4oInIiKSBhcyBmOgorICAgICAgICAgICAgICAgIHJldHVybiBqc29uLmxvYWQo
ZikKKyAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBJT0Vycm9yLCBPU0Vycm9yKToKKyAgICAg
ICAgICAgIHJldHVybiBkZWZhdWx0CiAKICAgICBkZWYgc2V0KHNlbGYsIGtleSwgdmFsdWUpOgog
ICAgICAgICAiIiIgc2F2ZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGtleS4KQEAgLTg3LDIzICsxMTgs
MzYgQEAgY2xhc3MgQ2FjaGUob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIHBhdGggPSBz
ZWxmLl9nZXR2YWx1ZXBhdGgoa2V5KQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwYXRoLmRp
cnBhdGgoKS5lbnN1cmVfZGlyKCkKLSAgICAgICAgZXhjZXB0IChweS5lcnJvci5FRVhJU1QsIHB5
LmVycm9yLkVBQ0NFUyk6Ci0gICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJuKAotICAgICAgICAg
ICAgICAgIGNvZGU9Ikk5IiwgbWVzc2FnZT0iY291bGQgbm90IGNyZWF0ZSBjYWNoZSBwYXRoICVz
IiAlIChwYXRoLCkKLSAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlmIHBhdGgucGFyZW50Lmlz
X2RpcigpOgorICAgICAgICAgICAgICAgIGNhY2hlX2Rpcl9leGlzdHNfYWxyZWFkeSA9IFRydWUK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY2FjaGVfZGlyX2V4aXN0c19hbHJl
YWR5ID0gc2VsZi5fY2FjaGVkaXIuZXhpc3RzKCkKKyAgICAgICAgICAgICAgICBwYXRoLnBhcmVu
dC5ta2RpcihleGlzdF9vaz1UcnVlLCBwYXJlbnRzPVRydWUpCisgICAgICAgIGV4Y2VwdCAoSU9F
cnJvciwgT1NFcnJvcik6CisgICAgICAgICAgICBzZWxmLndhcm4oImNvdWxkIG5vdCBjcmVhdGUg
Y2FjaGUgcGF0aCB7cGF0aH0iLCBwYXRoPXBhdGgpCiAgICAgICAgICAgICByZXR1cm4KKyAgICAg
ICAgaWYgbm90IGNhY2hlX2Rpcl9leGlzdHNfYWxyZWFkeToKKyAgICAgICAgICAgIHNlbGYuX2Vu
c3VyZV9zdXBwb3J0aW5nX2ZpbGVzKCkKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgZiA9IHBh
dGgub3BlbigidyIpCi0gICAgICAgIGV4Y2VwdCBweS5lcnJvci5FTk9URElSOgotICAgICAgICAg
ICAgc2VsZi5jb25maWcud2FybigKLSAgICAgICAgICAgICAgICBjb2RlPSJJOSIsIG1lc3NhZ2U9
ImNhY2hlIGNvdWxkIG5vdCB3cml0ZSBwYXRoICVzIiAlIChwYXRoLCkKLSAgICAgICAgICAgICkK
KyAgICAgICAgICAgIGYgPSBwYXRoLm9wZW4oIndiIiBpZiBQWTIgZWxzZSAidyIpCisgICAgICAg
IGV4Y2VwdCAoSU9FcnJvciwgT1NFcnJvcik6CisgICAgICAgICAgICBzZWxmLndhcm4oImNhY2hl
IGNvdWxkIG5vdCB3cml0ZSBwYXRoIHtwYXRofSIsIHBhdGg9cGF0aCkKICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgIHdpdGggZjoKLSAgICAgICAgICAgICAgICBzZWxmLnRyYWNlKCJjYWNoZS13
cml0ZSAlczogJXIiICUgKGtleSwgdmFsdWUpKQogICAgICAgICAgICAgICAgIGpzb24uZHVtcCh2
YWx1ZSwgZiwgaW5kZW50PTIsIHNvcnRfa2V5cz1UcnVlKQogCisgICAgZGVmIF9lbnN1cmVfc3Vw
cG9ydGluZ19maWxlcyhzZWxmKToKKyAgICAgICAgIiIiQ3JlYXRlIHN1cHBvcnRpbmcgZmlsZXMg
aW4gdGhlIGNhY2hlIGRpciB0aGF0IGFyZSBub3QgcmVhbGx5IHBhcnQgb2YgdGhlIGNhY2hlLiIi
IgorICAgICAgICByZWFkbWVfcGF0aCA9IHNlbGYuX2NhY2hlZGlyIC8gIlJFQURNRS5tZCIKKyAg
ICAgICAgcmVhZG1lX3BhdGgud3JpdGVfdGV4dChSRUFETUVfQ09OVEVOVCkKKworICAgICAgICBn
aXRpZ25vcmVfcGF0aCA9IHNlbGYuX2NhY2hlZGlyLmpvaW5wYXRoKCIuZ2l0aWdub3JlIikKKyAg
ICAgICAgbXNnID0gdSIjIENyZWF0ZWQgYnkgcHl0ZXN0IGF1dG9tYXRpY2FsbHkuXG4qIgorICAg
ICAgICBnaXRpZ25vcmVfcGF0aC53cml0ZV90ZXh0KG1zZywgZW5jb2Rpbmc9IlVURi04IikKKwor
ICAgICAgICBjYWNoZWRpcl90YWdfcGF0aCA9IHNlbGYuX2NhY2hlZGlyLmpvaW5wYXRoKCJDQUNI
RURJUi5UQUciKQorICAgICAgICBjYWNoZWRpcl90YWdfcGF0aC53cml0ZV9ieXRlcyhDQUNIRURJ
Ul9UQUdfQ09OVEVOVCkKKwogCiBjbGFzcyBMRlBsdWdpbihvYmplY3QpOgogICAgICIiIiBQbHVn
aW4gd2hpY2ggaW1wbGVtZW50cyB0aGUgLS1sZiAocnVuIGxhc3QtZmFpbGluZykgb3B0aW9uICIi
IgpAQCAtMTE0LDIxICsxNTgsMzcgQEAgY2xhc3MgTEZQbHVnaW4ob2JqZWN0KToKICAgICAgICAg
c2VsZi5hY3RpdmUgPSBhbnkoY29uZmlnLmdldG9wdGlvbihrZXkpIGZvciBrZXkgaW4gYWN0aXZl
X2tleXMpCiAgICAgICAgIHNlbGYubGFzdGZhaWxlZCA9IGNvbmZpZy5jYWNoZS5nZXQoImNhY2hl
L2xhc3RmYWlsZWQiLCB7fSkKICAgICAgICAgc2VsZi5fcHJldmlvdXNseV9mYWlsZWRfY291bnQg
PSBOb25lCi0gICAgICAgIHNlbGYuX25vX2ZhaWx1cmVzX2JlaGF2aW9yID0gc2VsZi5jb25maWcu
Z2V0b3B0aW9uKCJsYXN0X2ZhaWxlZF9ub19mYWlsdXJlcyIpCisgICAgICAgIHNlbGYuX3JlcG9y
dF9zdGF0dXMgPSBOb25lCisgICAgICAgIHNlbGYuX3NraXBwZWRfZmlsZXMgPSAwICAjIGNvdW50
IHNraXBwZWQgZmlsZXMgZHVyaW5nIGNvbGxlY3Rpb24gZHVlIHRvIC0tbGYKKworICAgIGRlZiBs
YXN0X2ZhaWxlZF9wYXRocyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyBhIHNldCB3aXRoIGFs
bCBQYXRocygpcyBvZiB0aGUgcHJldmlvdXNseSBmYWlsZWQgbm9kZWlkcyAoY2FjaGVkKS4KKyAg
ICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9sYXN0X2Zh
aWxlZF9wYXRocworICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBy
b290cGF0aCA9IFBhdGgoc2VsZi5jb25maWcucm9vdGRpcikKKyAgICAgICAgICAgIHJlc3VsdCA9
IHtyb290cGF0aCAvIG5vZGVpZC5zcGxpdCgiOjoiKVswXSBmb3Igbm9kZWlkIGluIHNlbGYubGFz
dGZhaWxlZH0KKyAgICAgICAgICAgIHJlc3VsdCA9IHt4IGZvciB4IGluIHJlc3VsdCBpZiB4LmV4
aXN0cygpfQorICAgICAgICAgICAgc2VsZi5fbGFzdF9mYWlsZWRfcGF0aHMgPSByZXN1bHQKKyAg
ICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBweXRlc3RfaWdub3JlX2NvbGxlY3Qo
c2VsZiwgcGF0aCk6CisgICAgICAgICIiIgorICAgICAgICBJZ25vcmUgdGhpcyBmaWxlIHBhdGgg
aWYgd2UgYXJlIGluIC0tbGYgbW9kZSBhbmQgaXQgaXMgbm90IGluIHRoZSBsaXN0IG9mCisgICAg
ICAgIHByZXZpb3VzbHkgZmFpbGVkIGZpbGVzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2Vs
Zi5hY3RpdmUgYW5kIHNlbGYuY29uZmlnLmdldG9wdGlvbigibGYiKSBhbmQgcGF0aC5pc2ZpbGUo
KToKKyAgICAgICAgICAgIGxhc3RfZmFpbGVkX3BhdGhzID0gc2VsZi5sYXN0X2ZhaWxlZF9wYXRo
cygpCisgICAgICAgICAgICBpZiBsYXN0X2ZhaWxlZF9wYXRoczoKKyAgICAgICAgICAgICAgICBz
a2lwX2l0ID0gUGF0aChwYXRoKSBub3QgaW4gc2VsZi5sYXN0X2ZhaWxlZF9wYXRocygpCisgICAg
ICAgICAgICAgICAgaWYgc2tpcF9pdDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2tpcHBl
ZF9maWxlcyArPSAxCisgICAgICAgICAgICAgICAgcmV0dXJuIHNraXBfaXQKIAogICAgIGRlZiBw
eXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5pc2goc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuYWN0
aXZlOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuX3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50Ogot
ICAgICAgICAgICAgICAgIG1vZGUgPSAicnVuIHt9IChubyByZWNvcmRlZCBmYWlsdXJlcykiLmZv
cm1hdCgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbm9fZmFpbHVyZXNfYmVoYXZpb3IKLSAg
ICAgICAgICAgICAgICApCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG5vdW4g
PSAiZmFpbHVyZSIgaWYgc2VsZi5fcHJldmlvdXNseV9mYWlsZWRfY291bnQgPT0gMSBlbHNlICJm
YWlsdXJlcyIKLSAgICAgICAgICAgICAgICBzdWZmaXggPSAiIGZpcnN0IiBpZiBzZWxmLmNvbmZp
Zy5nZXRvcHRpb24oImZhaWxlZGZpcnN0IikgZWxzZSAiIgotICAgICAgICAgICAgICAgIG1vZGUg
PSAicmVydW4gcHJldmlvdXMge2NvdW50fSB7bm91bn17c3VmZml4fSIuZm9ybWF0KAotICAgICAg
ICAgICAgICAgICAgICBjb3VudD1zZWxmLl9wcmV2aW91c2x5X2ZhaWxlZF9jb3VudCwgc3VmZml4
PXN1ZmZpeCwgbm91bj1ub3VuCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgcmV0dXJu
ICJydW4tbGFzdC1mYWlsdXJlOiAlcyIgJSBtb2RlCisgICAgICAgIGlmIHNlbGYuYWN0aXZlIGFu
ZCBzZWxmLmNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2UiKSA+PSAwOgorICAgICAgICAgICAgcmV0
dXJuICJydW4tbGFzdC1mYWlsdXJlOiAlcyIgJSBzZWxmLl9yZXBvcnRfc3RhdHVzCiAKICAgICBk
ZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHNlbGYsIHJlcG9ydCk6CiAgICAgICAgIGlmIChy
ZXBvcnQud2hlbiA9PSAiY2FsbCIgYW5kIHJlcG9ydC5wYXNzZWQpIG9yIHJlcG9ydC5za2lwcGVk
OgpAQCAtMTQ2LDI4ICsyMDYsNTEgQEAgY2xhc3MgTEZQbHVnaW4ob2JqZWN0KToKICAgICAgICAg
ICAgIHNlbGYubGFzdGZhaWxlZFtyZXBvcnQubm9kZWlkXSA9IFRydWUKIAogICAgIGRlZiBweXRl
c3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhzZWxmLCBzZXNzaW9uLCBjb25maWcsIGl0ZW1zKToK
LSAgICAgICAgaWYgc2VsZi5hY3RpdmU6Ci0gICAgICAgICAgICBpZiBzZWxmLmxhc3RmYWlsZWQ6
Ci0gICAgICAgICAgICAgICAgcHJldmlvdXNseV9mYWlsZWQgPSBbXQotICAgICAgICAgICAgICAg
IHByZXZpb3VzbHlfcGFzc2VkID0gW10KLSAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVt
czoKLSAgICAgICAgICAgICAgICAgICAgaWYgaXRlbS5ub2RlaWQgaW4gc2VsZi5sYXN0ZmFpbGVk
OgotICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNseV9mYWlsZWQuYXBwZW5kKGl0ZW0p
Ci0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmV2
aW91c2x5X3Bhc3NlZC5hcHBlbmQoaXRlbSkKLSAgICAgICAgICAgICAgICBzZWxmLl9wcmV2aW91
c2x5X2ZhaWxlZF9jb3VudCA9IGxlbihwcmV2aW91c2x5X2ZhaWxlZCkKLSAgICAgICAgICAgICAg
ICBpZiBub3QgcHJldmlvdXNseV9mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgICAgICMgcnVubmlu
ZyBhIHN1YnNldCBvZiBhbGwgdGVzdHMgd2l0aCByZWNvcmRlZCBmYWlsdXJlcyBvdXRzaWRlCi0g
ICAgICAgICAgICAgICAgICAgICMgb2YgdGhlIHNldCBvZiB0ZXN0cyBjdXJyZW50bHkgZXhlY3V0
aW5nCi0gICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBub3Qgc2VsZi5hY3Rp
dmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiBzZWxmLmxhc3RmYWlsZWQ6Cisg
ICAgICAgICAgICBwcmV2aW91c2x5X2ZhaWxlZCA9IFtdCisgICAgICAgICAgICBwcmV2aW91c2x5
X3Bhc3NlZCA9IFtdCisgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKKyAgICAgICAgICAg
ICAgICBpZiBpdGVtLm5vZGVpZCBpbiBzZWxmLmxhc3RmYWlsZWQ6CisgICAgICAgICAgICAgICAg
ICAgIHByZXZpb3VzbHlfZmFpbGVkLmFwcGVuZChpdGVtKQorICAgICAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzbHlfcGFzc2VkLmFwcGVuZChpdGVtKQorICAg
ICAgICAgICAgc2VsZi5fcHJldmlvdXNseV9mYWlsZWRfY291bnQgPSBsZW4ocHJldmlvdXNseV9m
YWlsZWQpCisKKyAgICAgICAgICAgIGlmIG5vdCBwcmV2aW91c2x5X2ZhaWxlZDoKKyAgICAgICAg
ICAgICAgICAjIFJ1bm5pbmcgYSBzdWJzZXQgb2YgYWxsIHRlc3RzIHdpdGggcmVjb3JkZWQgZmFp
bHVyZXMKKyAgICAgICAgICAgICAgICAjIG9ubHkgb3V0c2lkZSBvZiBpdC4KKyAgICAgICAgICAg
ICAgICBzZWxmLl9yZXBvcnRfc3RhdHVzID0gIiVkIGtub3duIGZhaWx1cmVzIG5vdCBpbiBzZWxl
Y3RlZCB0ZXN0cyIgJSAoCisgICAgICAgICAgICAgICAgICAgIGxlbihzZWxmLmxhc3RmYWlsZWQp
LAorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAg
aWYgc2VsZi5jb25maWcuZ2V0b3B0aW9uKCJsZiIpOgogICAgICAgICAgICAgICAgICAgICBpdGVt
c1s6XSA9IHByZXZpb3VzbHlfZmFpbGVkCiAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5ob29r
LnB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zPXByZXZpb3VzbHlfcGFzc2VkKQotICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZWxzZTogICMgLS1mYWlsZWRmaXJzdAogICAgICAg
ICAgICAgICAgICAgICBpdGVtc1s6XSA9IHByZXZpb3VzbHlfZmFpbGVkICsgcHJldmlvdXNseV9w
YXNzZWQKLSAgICAgICAgICAgIGVsaWYgc2VsZi5fbm9fZmFpbHVyZXNfYmVoYXZpb3IgPT0gIm5v
bmUiOgorCisgICAgICAgICAgICAgICAgbm91biA9ICJmYWlsdXJlIiBpZiBzZWxmLl9wcmV2aW91
c2x5X2ZhaWxlZF9jb3VudCA9PSAxIGVsc2UgImZhaWx1cmVzIgorICAgICAgICAgICAgICAgIHN1
ZmZpeCA9ICIgZmlyc3QiIGlmIHNlbGYuY29uZmlnLmdldG9wdGlvbigiZmFpbGVkZmlyc3QiKSBl
bHNlICIiCisgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X3N0YXR1cyA9ICJyZXJ1biBwcmV2
aW91cyB7Y291bnR9IHtub3VufXtzdWZmaXh9Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAg
IGNvdW50PXNlbGYuX3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50LCBzdWZmaXg9c3VmZml4LCBub3Vu
PW5vdW4KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgIGlmIHNlbGYuX3NraXBwZWRf
ZmlsZXMgPiAwOgorICAgICAgICAgICAgICAgIGZpbGVzX25vdW4gPSAiZmlsZSIgaWYgc2VsZi5f
c2tpcHBlZF9maWxlcyA9PSAxIGVsc2UgImZpbGVzIgorICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cG9ydF9zdGF0dXMgKz0gIiAoc2tpcHBlZCB7ZmlsZXN9IHtmaWxlc19ub3VufSkiLmZvcm1hdCgK
KyAgICAgICAgICAgICAgICAgICAgZmlsZXM9c2VsZi5fc2tpcHBlZF9maWxlcywgZmlsZXNfbm91
bj1maWxlc19ub3VuCisgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgc2VsZi5fcmVwb3J0X3N0YXR1cyA9ICJubyBwcmV2aW91c2x5IGZhaWxlZCB0ZXN0cywgIgor
ICAgICAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0b3B0aW9uKCJsYXN0X2ZhaWxlZF9ub19mYWls
dXJlcyIpID09ICJub25lIjoKKyAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfc3RhdHVzICs9
ICJkZXNlbGVjdGluZyBhbGwgaXRlbXMuIgogICAgICAgICAgICAgICAgIGNvbmZpZy5ob29rLnB5
dGVzdF9kZXNlbGVjdGVkKGl0ZW1zPWl0ZW1zKQogICAgICAgICAgICAgICAgIGl0ZW1zWzpdID0g
W10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X3N0YXR1
cyArPSAibm90IGRlc2VsZWN0aW5nIGl0ZW1zLiIKIAogICAgIGRlZiBweXRlc3Rfc2Vzc2lvbmZp
bmlzaChzZWxmLCBzZXNzaW9uKToKICAgICAgICAgY29uZmlnID0gc2VsZi5jb25maWcKQEAgLTE5
OSw5ICsyODIsNyBAQCBjbGFzcyBORlBsdWdpbihvYmplY3QpOgogCiAgICAgICAgICAgICBpdGVt
c1s6XSA9IHNlbGYuX2dldF9pbmNyZWFzaW5nX29yZGVyKAogICAgICAgICAgICAgICAgIHNpeC5p
dGVydmFsdWVzKG5ld19pdGVtcykKLSAgICAgICAgICAgICkgKyBzZWxmLl9nZXRfaW5jcmVhc2lu
Z19vcmRlcigKLSAgICAgICAgICAgICAgICBzaXguaXRlcnZhbHVlcyhvdGhlcl9pdGVtcykKLSAg
ICAgICAgICAgICkKKyAgICAgICAgICAgICkgKyBzZWxmLl9nZXRfaW5jcmVhc2luZ19vcmRlcihz
aXguaXRlcnZhbHVlcyhvdGhlcl9pdGVtcykpCiAgICAgICAgIHNlbGYuY2FjaGVkX25vZGVpZHMg
PSBbeC5ub2RlaWQgZm9yIHggaW4gaXRlbXMgaWYgaXNpbnN0YW5jZSh4LCBweXRlc3QuSXRlbSld
CiAKICAgICBkZWYgX2dldF9pbmNyZWFzaW5nX29yZGVyKHNlbGYsIGl0ZW1zKToKQEAgLTI0NCw5
ICszMjUsMTMgQEAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKICAgICApCiAgICAgZ3Jv
dXAuYWRkb3B0aW9uKAogICAgICAgICAiLS1jYWNoZS1zaG93IiwKLSAgICAgICAgYWN0aW9uPSJz
dG9yZV90cnVlIiwKKyAgICAgICAgYWN0aW9uPSJhcHBlbmQiLAorICAgICAgICBuYXJncz0iPyIs
CiAgICAgICAgIGRlc3Q9ImNhY2hlc2hvdyIsCi0gICAgICAgIGhlbHA9InNob3cgY2FjaGUgY29u
dGVudHMsIGRvbid0IHBlcmZvcm0gY29sbGVjdGlvbiBvciB0ZXN0cyIsCisgICAgICAgIGhlbHA9
KAorICAgICAgICAgICAgInNob3cgY2FjaGUgY29udGVudHMsIGRvbid0IHBlcmZvcm0gY29sbGVj
dGlvbiBvciB0ZXN0cy4gIgorICAgICAgICAgICAgIk9wdGlvbmFsIGFyZ3VtZW50OiBnbG9iIChk
ZWZhdWx0OiAnKicpLiIKKyAgICAgICAgKSwKICAgICApCiAgICAgZ3JvdXAuYWRkb3B0aW9uKAog
ICAgICAgICAiLS1jYWNoZS1jbGVhciIsCkBAIC0yNTQsNyArMzM5LDEwIEBAIGRlZiBweXRlc3Rf
YWRkb3B0aW9uKHBhcnNlcik6CiAgICAgICAgIGRlc3Q9ImNhY2hlY2xlYXIiLAogICAgICAgICBo
ZWxwPSJyZW1vdmUgYWxsIGNhY2hlIGNvbnRlbnRzIGF0IHN0YXJ0IG9mIHRlc3QgcnVuLiIsCiAg
ICAgKQotICAgIHBhcnNlci5hZGRpbmkoImNhY2hlX2RpciIsIGRlZmF1bHQ9Ii5weXRlc3RfY2Fj
aGUiLCBoZWxwPSJjYWNoZSBkaXJlY3RvcnkgcGF0aC4iKQorICAgIGNhY2hlX2Rpcl9kZWZhdWx0
ID0gIi5weXRlc3RfY2FjaGUiCisgICAgaWYgIlRPWF9FTlZfRElSIiBpbiBvcy5lbnZpcm9uOgor
ICAgICAgICBjYWNoZV9kaXJfZGVmYXVsdCA9IG9zLnBhdGguam9pbihvcy5lbnZpcm9uWyJUT1hf
RU5WX0RJUiJdLCBjYWNoZV9kaXJfZGVmYXVsdCkKKyAgICBwYXJzZXIuYWRkaW5pKCJjYWNoZV9k
aXIiLCBkZWZhdWx0PWNhY2hlX2Rpcl9kZWZhdWx0LCBoZWxwPSJjYWNoZSBkaXJlY3RvcnkgcGF0
aC4iKQogICAgIGdyb3VwLmFkZG9wdGlvbigKICAgICAgICAgIi0tbGZuZiIsCiAgICAgICAgICIt
LWxhc3QtZmFpbGVkLW5vLWZhaWx1cmVzIiwKQEAgLTI2Miw4ICszNTAsNyBAQCBkZWYgcHl0ZXN0
X2FkZG9wdGlvbihwYXJzZXIpOgogICAgICAgICBkZXN0PSJsYXN0X2ZhaWxlZF9ub19mYWlsdXJl
cyIsCiAgICAgICAgIGNob2ljZXM9KCJhbGwiLCAibm9uZSIpLAogICAgICAgICBkZWZhdWx0PSJh
bGwiLAotICAgICAgICBoZWxwPSJjaGFuZ2UgdGhlIGJlaGF2aW9yIHdoZW4gbm8gdGVzdCBmYWls
ZWQgaW4gdGhlIGxhc3QgcnVuIG9yIG5vICIKLSAgICAgICAgImluZm9ybWF0aW9uIGFib3V0IHRo
ZSBsYXN0IGZhaWx1cmVzIHdhcyBmb3VuZCBpbiB0aGUgY2FjaGUiLAorICAgICAgICBoZWxwPSJ3
aGljaCB0ZXN0cyB0byBydW4gd2l0aCBubyBwcmV2aW91c2x5IChrbm93bikgZmFpbHVyZXMuIiwK
ICAgICApCiAKIApAQCAtMjc2LDcgKzM2Myw3IEBAIGRlZiBweXRlc3RfY21kbGluZV9tYWluKGNv
bmZpZyk6CiAKIEBweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKIGRlZiBweXRlc3RfY29u
ZmlndXJlKGNvbmZpZyk6Ci0gICAgY29uZmlnLmNhY2hlID0gQ2FjaGUoY29uZmlnKQorICAgIGNv
bmZpZy5jYWNoZSA9IENhY2hlLmZvcl9jb25maWcoY29uZmlnKQogICAgIGNvbmZpZy5wbHVnaW5t
YW5hZ2VyLnJlZ2lzdGVyKExGUGx1Z2luKGNvbmZpZyksICJsZnBsdWdpbiIpCiAgICAgY29uZmln
LnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoTkZQbHVnaW4oY29uZmlnKSwgIm5mcGx1Z2luIikKIApA
QCAtMjk4LDQyICszODUsNTQgQEAgZGVmIGNhY2hlKHJlcXVlc3QpOgogCiAKIGRlZiBweXRlc3Rf
cmVwb3J0X2hlYWRlcihjb25maWcpOgotICAgIGlmIGNvbmZpZy5vcHRpb24udmVyYm9zZToKLSAg
ICAgICAgcmVscGF0aCA9IHB5LnBhdGgubG9jYWwoKS5iZXN0cmVscGF0aChjb25maWcuY2FjaGUu
X2NhY2hlZGlyKQotICAgICAgICByZXR1cm4gImNhY2hlZGlyOiAlcyIgJSByZWxwYXRoCisgICAg
IiIiRGlzcGxheSBjYWNoZWRpciB3aXRoIC0tY2FjaGUtc2hvdyBhbmQgaWYgbm9uLWRlZmF1bHQu
IiIiCisgICAgaWYgY29uZmlnLm9wdGlvbi52ZXJib3NlID4gMCBvciBjb25maWcuZ2V0aW5pKCJj
YWNoZV9kaXIiKSAhPSAiLnB5dGVzdF9jYWNoZSI6CisgICAgICAgIGNhY2hlZGlyID0gY29uZmln
LmNhY2hlLl9jYWNoZWRpcgorICAgICAgICAjIFRPRE86IGV2YWx1YXRlIGdlbmVyYXRpbmcgdXB3
YXJkIHJlbGF0aXZlIHBhdGhzCisgICAgICAgICMgc3RhcnRpbmcgd2l0aCAuLiwgLi4vLi4gaWYg
c2Vuc2libGUKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBkaXNwbGF5cGF0aCA9IGNhY2hl
ZGlyLnJlbGF0aXZlX3RvKGNvbmZpZy5yb290ZGlyKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJv
cjoKKyAgICAgICAgICAgIGRpc3BsYXlwYXRoID0gY2FjaGVkaXIKKyAgICAgICAgcmV0dXJuICJj
YWNoZWRpcjoge30iLmZvcm1hdChkaXNwbGF5cGF0aCkKIAogCiBkZWYgY2FjaGVzaG93KGNvbmZp
Zywgc2Vzc2lvbik6Ci0gICAgZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAorICAgIGZyb20gcHBy
aW50IGltcG9ydCBwZm9ybWF0CiAKICAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKCkKICAg
ICB0dy5saW5lKCJjYWNoZWRpcjogIiArIHN0cihjb25maWcuY2FjaGUuX2NhY2hlZGlyKSkKLSAg
ICBpZiBub3QgY29uZmlnLmNhY2hlLl9jYWNoZWRpci5jaGVjaygpOgorICAgIGlmIG5vdCBjb25m
aWcuY2FjaGUuX2NhY2hlZGlyLmlzX2RpcigpOgogICAgICAgICB0dy5saW5lKCJjYWNoZSBpcyBl
bXB0eSIpCiAgICAgICAgIHJldHVybiAwCisKKyAgICBnbG9iID0gY29uZmlnLm9wdGlvbi5jYWNo
ZXNob3dbMF0KKyAgICBpZiBnbG9iIGlzIE5vbmU6CisgICAgICAgIGdsb2IgPSAiKiIKKwogICAg
IGR1bW15ID0gb2JqZWN0KCkKICAgICBiYXNlZGlyID0gY29uZmlnLmNhY2hlLl9jYWNoZWRpcgot
ICAgIHZkaXIgPSBiYXNlZGlyLmpvaW4oInYiKQotICAgIHR3LnNlcCgiLSIsICJjYWNoZSB2YWx1
ZXMiKQotICAgIGZvciB2YWxwYXRoIGluIHNvcnRlZCh2ZGlyLnZpc2l0KGxhbWJkYSB4OiB4Lmlz
ZmlsZSgpKSk6Ci0gICAgICAgIGtleSA9IHZhbHBhdGgucmVsdG8odmRpcikucmVwbGFjZSh2YWxw
YXRoLnNlcCwgIi8iKQorICAgIHZkaXIgPSBiYXNlZGlyIC8gInYiCisgICAgdHcuc2VwKCItIiwg
ImNhY2hlIHZhbHVlcyBmb3IgJXIiICUgZ2xvYikKKyAgICBmb3IgdmFscGF0aCBpbiBzb3J0ZWQo
eCBmb3IgeCBpbiB2ZGlyLnJnbG9iKGdsb2IpIGlmIHguaXNfZmlsZSgpKToKKyAgICAgICAga2V5
ID0gdmFscGF0aC5yZWxhdGl2ZV90byh2ZGlyKQogICAgICAgICB2YWwgPSBjb25maWcuY2FjaGUu
Z2V0KGtleSwgZHVtbXkpCiAgICAgICAgIGlmIHZhbCBpcyBkdW1teToKLSAgICAgICAgICAgIHR3
LmxpbmUoIiVzIGNvbnRhaW5zIHVucmVhZGFibGUgY29udGVudCwgIiAid2lsbCBiZSBpZ25vcmVk
IiAlIGtleSkKKyAgICAgICAgICAgIHR3LmxpbmUoIiVzIGNvbnRhaW5zIHVucmVhZGFibGUgY29u
dGVudCwgd2lsbCBiZSBpZ25vcmVkIiAlIGtleSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAg
IHR3LmxpbmUoIiVzIGNvbnRhaW5zOiIgJSBrZXkpCi0gICAgICAgICAgICBzdHJlYW0gPSBweS5p
by5UZXh0SU8oKQotICAgICAgICAgICAgcHByaW50KHZhbCwgc3RyZWFtPXN0cmVhbSkKLSAgICAg
ICAgICAgIGZvciBsaW5lIGluIHN0cmVhbS5nZXR2YWx1ZSgpLnNwbGl0bGluZXMoKToKKyAgICAg
ICAgICAgIGZvciBsaW5lIGluIHBmb3JtYXQodmFsKS5zcGxpdGxpbmVzKCk6CiAgICAgICAgICAg
ICAgICAgdHcubGluZSgiICAiICsgbGluZSkKIAotICAgIGRkaXIgPSBiYXNlZGlyLmpvaW4oImQi
KQotICAgIGlmIGRkaXIuaXNkaXIoKSBhbmQgZGRpci5saXN0ZGlyKCk6Ci0gICAgICAgIHR3LnNl
cCgiLSIsICJjYWNoZSBkaXJlY3RvcmllcyIpCi0gICAgICAgIGZvciBwIGluIHNvcnRlZChiYXNl
ZGlyLmpvaW4oImQiKS52aXNpdCgpKToKKyAgICBkZGlyID0gYmFzZWRpciAvICJkIgorICAgIGlm
IGRkaXIuaXNfZGlyKCk6CisgICAgICAgIGNvbnRlbnRzID0gc29ydGVkKGRkaXIucmdsb2IoZ2xv
YikpCisgICAgICAgIHR3LnNlcCgiLSIsICJjYWNoZSBkaXJlY3RvcmllcyBmb3IgJXIiICUgZ2xv
YikKKyAgICAgICAgZm9yIHAgaW4gY29udGVudHM6CiAgICAgICAgICAgICAjIGlmIHAuY2hlY2so
ZGlyPTEpOgogICAgICAgICAgICAgIyAgICBwcmludCgiJXMvIiAlIHAucmVsdG8oYmFzZWRpcikp
Ci0gICAgICAgICAgICBpZiBwLmlzZmlsZSgpOgotICAgICAgICAgICAgICAgIGtleSA9IHAucmVs
dG8oYmFzZWRpcikKLSAgICAgICAgICAgICAgICB0dy5saW5lKCIlcyBpcyBhIGZpbGUgb2YgbGVu
Z3RoICVkIiAlIChrZXksIHAuc2l6ZSgpKSkKKyAgICAgICAgICAgIGlmIHAuaXNfZmlsZSgpOgor
ICAgICAgICAgICAgICAgIGtleSA9IHAucmVsYXRpdmVfdG8oYmFzZWRpcikKKyAgICAgICAgICAg
ICAgICB0dy5saW5lKCJ7fSBpcyBhIGZpbGUgb2YgbGVuZ3RoIHs6ZH0iLmZvcm1hdChrZXksIHAu
c3RhdCgpLnN0X3NpemUpKQogICAgIHJldHVybiAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9jYXB0dXJlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY2FwdHVyZS5w
eQppbmRleCA3YTU3YWRiNzUyYTcyNjcxMjAzMTBkYWEyODc1MTRhYzkyOTY5NmQ4Li42OGMxNzc3
MmYzOWRmYzA4NjM1NWFjMTM3NDMxMmY3MzY1OThhMGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9jYXB0dXJlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Nh
cHR1cmUucHkKQEAgLTEsMjIgKzEsMjYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIK
IHBlci10ZXN0IHN0ZG91dC9zdGRlcnIgY2FwdHVyaW5nIG1lY2hhbmlzbS4KIAogIiIiCi1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv
bgogCiBpbXBvcnQgY29sbGVjdGlvbnMKIGltcG9ydCBjb250ZXh0bGliCi1pbXBvcnQgc3lzCi1p
bXBvcnQgb3MKIGltcG9ydCBpbworaW1wb3J0IG9zCitpbXBvcnQgc3lzCiBmcm9tIGlvIGltcG9y
dCBVbnN1cHBvcnRlZE9wZXJhdGlvbgogZnJvbSB0ZW1wZmlsZSBpbXBvcnQgVGVtcG9yYXJ5Rmls
ZQogCiBpbXBvcnQgc2l4CisKIGltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1w
b3J0IF9QWTMKIGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IENhcHR1cmVJTwogCi0KIHBhdGNo
c3lzZGljdCA9IHswOiAic3RkaW4iLCAxOiAic3Rkb3V0IiwgMjogInN0ZGVyciJ9CiAKIApAQCAt
NTMsMTggKzU3LDEyIEBAIGRlZiBweXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0cyhlYXJseV9j
b25maWcsIHBhcnNlciwgYXJncyk6CiAgICAgIyBtYWtlIHN1cmUgdGhhdCBjYXB0dXJlbWFuYWdl
ciBpcyBwcm9wZXJseSByZXNldCBhdCBmaW5hbCBzaHV0ZG93bgogICAgIGVhcmx5X2NvbmZpZy5h
ZGRfY2xlYW51cChjYXBtYW4uc3RvcF9nbG9iYWxfY2FwdHVyaW5nKQogCi0gICAgIyBtYWtlIHN1
cmUgbG9nZ2luZyBkb2VzIG5vdCByYWlzZSBleGNlcHRpb25zIGF0IHRoZSBlbmQKLSAgICBkZWYg
c2lsZW5jZV9sb2dnaW5nX2F0X3NodXRkb3duKCk6Ci0gICAgICAgIGlmICJsb2dnaW5nIiBpbiBz
eXMubW9kdWxlczoKLSAgICAgICAgICAgIHN5cy5tb2R1bGVzWyJsb2dnaW5nIl0ucmFpc2VFeGNl
cHRpb25zID0gRmFsc2UKLQotICAgIGVhcmx5X2NvbmZpZy5hZGRfY2xlYW51cChzaWxlbmNlX2xv
Z2dpbmdfYXRfc2h1dGRvd24pCi0KICAgICAjIGZpbmFsbHkgdHJpZ2dlciBjb25mdGVzdCBsb2Fk
aW5nIGJ1dCB3aGlsZSBjYXB0dXJpbmcgKGlzc3VlOTMpCiAgICAgY2FwbWFuLnN0YXJ0X2dsb2Jh
bF9jYXB0dXJpbmcoKQogICAgIG91dGNvbWUgPSB5aWVsZAotICAgIG91dCwgZXJyID0gY2FwbWFu
LnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoKQorICAgIGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0
dXJlKCkKICAgICBpZiBvdXRjb21lLmV4Y2luZm8gaXMgbm90IE5vbmU6CisgICAgICAgIG91dCwg
ZXJyID0gY2FwbWFuLnJlYWRfZ2xvYmFsX2NhcHR1cmUoKQogICAgICAgICBzeXMuc3Rkb3V0Lndy
aXRlKG91dCkKICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShlcnIpCiAKQEAgLTg1LDYgKzgzLDE0
IEBAIGNsYXNzIENhcHR1cmVNYW5hZ2VyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IG1ldGhvZCk6CiAgICAgICAgIHNlbGYuX21ldGhvZCA9IG1ldGhvZAogICAgICAgICBzZWxmLl9n
bG9iYWxfY2FwdHVyaW5nID0gTm9uZQorICAgICAgICBzZWxmLl9jdXJyZW50X2l0ZW0gPSBOb25l
CisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPENhcHR1cmVNYW5h
Z2VyIF9tZXRob2Q9JXIgX2dsb2JhbF9jYXB0dXJpbmc9JXIgX2N1cnJlbnRfaXRlbT0lcj4iICUg
KAorICAgICAgICAgICAgc2VsZi5fbWV0aG9kLAorICAgICAgICAgICAgc2VsZi5fZ2xvYmFsX2Nh
cHR1cmluZywKKyAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfaXRlbSwKKyAgICAgICAgKQogCiAg
ICAgZGVmIF9nZXRjYXB0dXJlKHNlbGYsIG1ldGhvZCk6CiAgICAgICAgIGlmIG1ldGhvZCA9PSAi
ZmQiOgpAQCAtOTMsOCArOTksMjIgQEAgY2xhc3MgQ2FwdHVyZU1hbmFnZXIob2JqZWN0KToKICAg
ICAgICAgICAgIHJldHVybiBNdWx0aUNhcHR1cmUob3V0PVRydWUsIGVycj1UcnVlLCBDYXB0dXJl
PVN5c0NhcHR1cmUpCiAgICAgICAgIGVsaWYgbWV0aG9kID09ICJubyI6CiAgICAgICAgICAgICBy
ZXR1cm4gTXVsdGlDYXB0dXJlKG91dD1GYWxzZSwgZXJyPUZhbHNlLCBpbl89RmFsc2UpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1bmtub3duIGNhcHR1cmlu
ZyBtZXRob2Q6ICVyIiAlIG1ldGhvZCkKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93
biBjYXB0dXJpbmcgbWV0aG9kOiAlciIgJSBtZXRob2QpICAjIHByYWdtYTogbm8gY292ZXIKKwor
ICAgIGRlZiBpc19jYXB0dXJpbmcoc2VsZik6CisgICAgICAgIGlmIHNlbGYuaXNfZ2xvYmFsbHlf
Y2FwdHVyaW5nKCk6CisgICAgICAgICAgICByZXR1cm4gImdsb2JhbCIKKyAgICAgICAgY2FwdHVy
ZV9maXh0dXJlID0gZ2V0YXR0cihzZWxmLl9jdXJyZW50X2l0ZW0sICJfY2FwdHVyZV9maXh0dXJl
IiwgTm9uZSkKKyAgICAgICAgaWYgY2FwdHVyZV9maXh0dXJlIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgICAgICAiZml4dHVyZSAlcyIgJSBzZWxmLl9jdXJy
ZW50X2l0ZW0uX2NhcHR1cmVfZml4dHVyZS5yZXF1ZXN0LmZpeHR1cmVuYW1lCisgICAgICAgICAg
ICApCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIyBHbG9iYWwgY2FwdHVyaW5nIGNvbnRy
b2wKKworICAgIGRlZiBpc19nbG9iYWxseV9jYXB0dXJpbmcoc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLl9tZXRob2QgIT0gIm5vIgogCiAgICAgZGVmIHN0YXJ0X2dsb2JhbF9jYXB0dXJpbmco
c2VsZik6CiAgICAgICAgIGFzc2VydCBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nIGlzIE5vbmUKQEAg
LTEwOCwxOCArMTI4LDI5IEBAIGNsYXNzIENhcHR1cmVNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAg
ICAgICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nID0gTm9uZQogCiAgICAgZGVmIHJlc3VtZV9nbG9i
YWxfY2FwdHVyZShzZWxmKToKLSAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5yZXN1bWVf
Y2FwdHVyaW5nKCkKKyAgICAgICAgIyBEdXJpbmcgdGVhcmRvd24gb2YgdGhlIHB5dGhvbiBwcm9j
ZXNzLCBhbmQgb24gcmFyZSBvY2Nhc2lvbnMsIGNhcHR1cmUKKyAgICAgICAgIyBhdHRyaWJ1dGVz
IGNhbiBiZSBgTm9uZWAgd2hpbGUgdHJ5aW5nIHRvIHJlc3VtZSBnbG9iYWwgY2FwdHVyZS4KKyAg
ICAgICAgaWYgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZyBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcucmVzdW1lX2NhcHR1cmluZygpCiAKLSAgICBkZWYgc3Vz
cGVuZF9nbG9iYWxfY2FwdHVyZShzZWxmLCBpdGVtPU5vbmUsIGluXz1GYWxzZSk6Ci0gICAgICAg
IGlmIGl0ZW0gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmRlYWN0aXZhdGVfZml4dHVy
ZShpdGVtKQorICAgIGRlZiBzdXNwZW5kX2dsb2JhbF9jYXB0dXJlKHNlbGYsIGluXz1GYWxzZSk6
CiAgICAgICAgIGNhcCA9IGdldGF0dHIoc2VsZiwgIl9nbG9iYWxfY2FwdHVyaW5nIiwgTm9uZSkK
ICAgICAgICAgaWYgY2FwIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIG91dGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICAgICAgY2FwLnN1c3BlbmRfY2FwdHVyaW5nKGluXz1pbl8pCi0gICAgICAgICAg
ICByZXR1cm4gb3V0ZXJyCisgICAgICAgICAgICBjYXAuc3VzcGVuZF9jYXB0dXJpbmcoaW5fPWlu
XykKKworICAgIGRlZiBzdXNwZW5kKHNlbGYsIGluXz1GYWxzZSk6CisgICAgICAgICMgTmVlZCB0
byB1bmRvIGxvY2FsIGNhcHN5cy1ldC1hbCBpZiBpdCBleGlzdHMgYmVmb3JlIGRpc2FibGluZyBn
bG9iYWwgY2FwdHVyZS4KKyAgICAgICAgc2VsZi5zdXNwZW5kX2ZpeHR1cmUoc2VsZi5fY3VycmVu
dF9pdGVtKQorICAgICAgICBzZWxmLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaW5fKQorCisgICAg
ZGVmIHJlc3VtZShzZWxmKToKKyAgICAgICAgc2VsZi5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUoKQor
ICAgICAgICBzZWxmLnJlc3VtZV9maXh0dXJlKHNlbGYuX2N1cnJlbnRfaXRlbSkKKworICAgIGRl
ZiByZWFkX2dsb2JhbF9jYXB0dXJlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZ2xvYmFs
X2NhcHR1cmluZy5yZWFkb3V0ZXJyKCkKKworICAgICMgRml4dHVyZSBDb250cm9sIChpdCdzIGp1
c3QgZm9yd2FyZGluZywgdGhpbmsgYWJvdXQgcmVtb3ZpbmcgdGhpcyBsYXRlcikKIAogICAgIGRl
ZiBhY3RpdmF0ZV9maXh0dXJlKHNlbGYsIGl0ZW0pOgogICAgICAgICAiIiJJZiB0aGUgY3VycmVu
dCBpdGVtIGlzIHVzaW5nIGBgY2Fwc3lzYGAgb3IgYGBjYXBmZGBgLCBhY3RpdmF0ZSB0aGVtIHNv
IHRoZXkgdGFrZSBwcmVjZWRlbmNlIG92ZXIKQEAgLTEzNSwxMiArMTY2LDUwIEBAIGNsYXNzIENh
cHR1cmVNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIGlmIGZpeHR1cmUgaXMgbm90IE5vbmU6CiAg
ICAgICAgICAgICBmaXh0dXJlLmNsb3NlKCkKIAorICAgIGRlZiBzdXNwZW5kX2ZpeHR1cmUoc2Vs
ZiwgaXRlbSk6CisgICAgICAgIGZpeHR1cmUgPSBnZXRhdHRyKGl0ZW0sICJfY2FwdHVyZV9maXh0
dXJlIiwgTm9uZSkKKyAgICAgICAgaWYgZml4dHVyZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IGZpeHR1cmUuX3N1c3BlbmQoKQorCisgICAgZGVmIHJlc3VtZV9maXh0dXJlKHNlbGYsIGl0ZW0p
OgorICAgICAgICBmaXh0dXJlID0gZ2V0YXR0cihpdGVtLCAiX2NhcHR1cmVfZml4dHVyZSIsIE5v
bmUpCisgICAgICAgIGlmIGZpeHR1cmUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmaXh0dXJl
Ll9yZXN1bWUoKQorCisgICAgIyBIZWxwZXIgY29udGV4dCBtYW5hZ2VycworCisgICAgQGNvbnRl
eHRsaWIuY29udGV4dG1hbmFnZXIKKyAgICBkZWYgZ2xvYmFsX2FuZF9maXh0dXJlX2Rpc2FibGVk
KHNlbGYpOgorICAgICAgICAiIiJDb250ZXh0IG1hbmFnZXIgdG8gdGVtcG9yYXJpbHkgZGlzYWJs
ZSBnbG9iYWwgYW5kIGN1cnJlbnQgZml4dHVyZSBjYXB0dXJpbmcuIiIiCisgICAgICAgIHNlbGYu
c3VzcGVuZCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgIGZpbmFs
bHk6CisgICAgICAgICAgICBzZWxmLnJlc3VtZSgpCisKKyAgICBAY29udGV4dGxpYi5jb250ZXh0
bWFuYWdlcgorICAgIGRlZiBpdGVtX2NhcHR1cmUoc2VsZiwgd2hlbiwgaXRlbSk6CisgICAgICAg
IHNlbGYucmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKKyAgICAgICAgc2VsZi5hY3RpdmF0ZV9maXh0
dXJlKGl0ZW0pCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgIGZpbmFs
bHk6CisgICAgICAgICAgICBzZWxmLmRlYWN0aXZhdGVfZml4dHVyZShpdGVtKQorICAgICAgICAg
ICAgc2VsZi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGluXz1GYWxzZSkKKworICAgICAgICBvdXQs
IGVyciA9IHNlbGYucmVhZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgIGl0ZW0uYWRkX3JlcG9y
dF9zZWN0aW9uKHdoZW4sICJzdGRvdXQiLCBvdXQpCisgICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9z
ZWN0aW9uKHdoZW4sICJzdGRlcnIiLCBlcnIpCisKKyAgICAjIEhvb2tzCisKICAgICBAcHl0ZXN0
Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCiAgICAgZGVmIHB5dGVzdF9tYWtlX2NvbGxlY3Rf
cmVwb3J0KHNlbGYsIGNvbGxlY3Rvcik6CiAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29sbGVjdG9y
LCBweXRlc3QuRmlsZSk6CiAgICAgICAgICAgICBzZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgp
CiAgICAgICAgICAgICBvdXRjb21lID0geWllbGQKLSAgICAgICAgICAgIG91dCwgZXJyID0gc2Vs
Zi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKKyAgICAgICAgICAgIHNlbGYuc3VzcGVuZF9nbG9i
YWxfY2FwdHVyZSgpCisgICAgICAgICAgICBvdXQsIGVyciA9IHNlbGYucmVhZF9nbG9iYWxfY2Fw
dHVyZSgpCiAgICAgICAgICAgICByZXAgPSBvdXRjb21lLmdldF9yZXN1bHQoKQogICAgICAgICAg
ICAgaWYgb3V0OgogICAgICAgICAgICAgICAgIHJlcC5zZWN0aW9ucy5hcHBlbmQoKCJDYXB0dXJl
ZCBzdGRvdXQiLCBvdXQpKQpAQCAtMTUwLDI5ICsyMTksMjUgQEAgY2xhc3MgQ2FwdHVyZU1hbmFn
ZXIob2JqZWN0KToKICAgICAgICAgICAgIHlpZWxkCiAKICAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhv
b2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKHNlbGYsIGl0ZW0p
OgotICAgICAgICBzZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0gICAgICAgICMgbm8gbmVl
ZCB0byBhY3RpdmF0ZSBhIGNhcHR1cmUgZml4dHVyZSBiZWNhdXNlIHRoZXkgYWN0aXZhdGUgdGhl
bXNlbHZlcyBkdXJpbmcgY3JlYXRpb247IHRoaXMKLSAgICAgICAgIyBvbmx5IG1ha2VzIHNlbnNl
IHdoZW4gYSBmaXh0dXJlIHVzZXMgYSBjYXB0dXJlIGZpeHR1cmUsIG90aGVyd2lzZSB0aGUgY2Fw
dHVyZSBmaXh0dXJlIHdpbGwKLSAgICAgICAgIyBiZSBhY3RpdmF0ZWQgZHVyaW5nIHB5dGVzdF9y
dW50ZXN0X2NhbGwKKyAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woc2VsZiwgaXRlbSk6
CisgICAgICAgIHNlbGYuX2N1cnJlbnRfaXRlbSA9IGl0ZW0KICAgICAgICAgeWllbGQKLSAgICAg
ICAgc2VsZi5zdXNwZW5kX2NhcHR1cmVfaXRlbShpdGVtLCAic2V0dXAiKQorICAgICAgICBzZWxm
Ll9jdXJyZW50X2l0ZW0gPSBOb25lCisKKyAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVy
PVRydWUpCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKHNlbGYsIGl0ZW0pOgorICAgICAg
ICB3aXRoIHNlbGYuaXRlbV9jYXB0dXJlKCJzZXR1cCIsIGl0ZW0pOgorICAgICAgICAgICAgeWll
bGQKIAogICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKICAgICBkZWYgcHl0
ZXN0X3J1bnRlc3RfY2FsbChzZWxmLCBpdGVtKToKLSAgICAgICAgc2VsZi5yZXN1bWVfZ2xvYmFs
X2NhcHR1cmUoKQotICAgICAgICAjIGl0IGlzIGltcG9ydGFudCB0byBhY3RpdmF0ZSB0aGlzIGZp
eHR1cmUgZHVyaW5nIHRoZSBjYWxsIHBoYXNlIHNvIGl0IG92ZXJ3cml0ZXMgdGhlICJnbG9iYWwi
Ci0gICAgICAgICMgY2FwdHVyZQotICAgICAgICBzZWxmLmFjdGl2YXRlX2ZpeHR1cmUoaXRlbSkK
LSAgICAgICAgeWllbGQKLSAgICAgICAgc2VsZi5zdXNwZW5kX2NhcHR1cmVfaXRlbShpdGVtLCAi
Y2FsbCIpCisgICAgICAgIHdpdGggc2VsZi5pdGVtX2NhcHR1cmUoImNhbGwiLCBpdGVtKToKKyAg
ICAgICAgICAgIHlpZWxkCiAKICAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUp
CiAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKHNlbGYsIGl0ZW0pOgotICAgICAgICBz
ZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0gICAgICAgIHNlbGYuYWN0aXZhdGVfZml4dHVy
ZShpdGVtKQotICAgICAgICB5aWVsZAotICAgICAgICBzZWxmLnN1c3BlbmRfY2FwdHVyZV9pdGVt
KGl0ZW0sICJ0ZWFyZG93biIpCisgICAgICAgIHdpdGggc2VsZi5pdGVtX2NhcHR1cmUoInRlYXJk
b3duIiwgaXRlbSk6CisgICAgICAgICAgICB5aWVsZAogCiAgICAgQHB5dGVzdC5ob29raW1wbCh0
cnlmaXJzdD1UcnVlKQogICAgIGRlZiBweXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KHNlbGYsIGV4
Y2luZm8pOgpAQCAtMTgyLDExICsyNDcsNiBAQCBjbGFzcyBDYXB0dXJlTWFuYWdlcihvYmplY3Qp
OgogICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCBleGNpbmZvKToKICAgICAgICAg
c2VsZi5zdG9wX2dsb2JhbF9jYXB0dXJpbmcoKQogCi0gICAgZGVmIHN1c3BlbmRfY2FwdHVyZV9p
dGVtKHNlbGYsIGl0ZW0sIHdoZW4sIGluXz1GYWxzZSk6Ci0gICAgICAgIG91dCwgZXJyID0gc2Vs
Zi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGl0ZW0sIGluXz1pbl8pCi0gICAgICAgIGl0ZW0uYWRk
X3JlcG9ydF9zZWN0aW9uKHdoZW4sICJzdGRvdXQiLCBvdXQpCi0gICAgICAgIGl0ZW0uYWRkX3Jl
cG9ydF9zZWN0aW9uKHdoZW4sICJzdGRlcnIiLCBlcnIpCi0KIAogY2FwdHVyZV9maXh0dXJlcyA9
IHsiY2FwZmQiLCAiY2FwZmRiaW5hcnkiLCAiY2Fwc3lzIiwgImNhcHN5c2JpbmFyeSJ9CiAKQEAg
LTIwMywxMCArMjYzLDExIEBAIGRlZiBfZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShy
ZXF1ZXN0LCBuYW1lKToKIAogQHB5dGVzdC5maXh0dXJlCiBkZWYgY2Fwc3lzKHJlcXVlc3QpOgot
ICAgICIiIkVuYWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIGBgc3lzLnN0ZG91dGBgIGFuZCBg
YHN5cy5zdGRlcnJgYCBhbmQgbWFrZQotICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlh
IGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBgIG1ldGhvZCBjYWxscwotICAgIHdoaWNoIHJldHVybiBh
IGBgKG91dCwgZXJyKWBgIG5hbWVkdHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUg
YGB0ZXh0YGAKLSAgICBvYmplY3RzLgorICAgICIiIkVuYWJsZSB0ZXh0IGNhcHR1cmluZyBvZiB3
cml0ZXMgdG8gYGBzeXMuc3Rkb3V0YGAgYW5kIGBgc3lzLnN0ZGVycmBgLgorCisgICAgVGhlIGNh
cHR1cmVkIG91dHB1dCBpcyBtYWRlIGF2YWlsYWJsZSB2aWEgYGBjYXBzeXMucmVhZG91dGVycigp
YGAgbWV0aG9kCisgICAgY2FsbHMsIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIG5hbWVk
dHVwbGUuCisgICAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgIG9iamVjdHMu
CiAgICAgIiIiCiAgICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwg
ImNhcHN5cyIpCiAgICAgd2l0aCBfaW5zdGFsbF9jYXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1
ZXN0LCBTeXNDYXB0dXJlKSBhcyBmaXh0dXJlOgpAQCAtMjE1LDI2ICsyNzYsMjggQEAgZGVmIGNh
cHN5cyhyZXF1ZXN0KToKIAogQHB5dGVzdC5maXh0dXJlCiBkZWYgY2Fwc3lzYmluYXJ5KHJlcXVl
c3QpOgotICAgICIiIkVuYWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIGBgc3lzLnN0ZG91dGBg
IGFuZCBgYHN5cy5zdGRlcnJgYCBhbmQgbWFrZQotICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFi
bGUgdmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBgIG1ldGhvZCBjYWxscwotICAgIHdoaWNoIHJl
dHVybiBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJl
IGBgYnl0ZXNgYAotICAgIG9iamVjdHMuCisgICAgIiIiRW5hYmxlIGJ5dGVzIGNhcHR1cmluZyBv
ZiB3cml0ZXMgdG8gYGBzeXMuc3Rkb3V0YGAgYW5kIGBgc3lzLnN0ZGVycmBgLgorCisgICAgVGhl
IGNhcHR1cmVkIG91dHB1dCBpcyBtYWRlIGF2YWlsYWJsZSB2aWEgYGBjYXBzeXNiaW5hcnkucmVh
ZG91dGVycigpYGAKKyAgICBtZXRob2QgY2FsbHMsIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJy
KWBgIG5hbWVkdHVwbGUuCisgICAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgYnl0ZXNg
YCBvYmplY3RzLgogICAgICIiIgogICAgIF9lbnN1cmVfb25seV9vbmVfY2FwdHVyZV9maXh0dXJl
KHJlcXVlc3QsICJjYXBzeXNiaW5hcnkiKQogICAgICMgQ3VycmVudGx5LCB0aGUgaW1wbGVtZW50
YXRpb24gdXNlcyB0aGUgcHl0aG9uMyBzcGVjaWZpYyBgLmJ1ZmZlcmAKICAgICAjIHByb3BlcnR5
IG9mIENhcHR1cmVJTy4KICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKToKLSAgICAgICAg
cmFpc2UgcmVxdWVzdC5yYWlzZWVycm9yKCJjYXBzeXNiaW5hcnkgaXMgb25seSBzdXBwb3J0ZWQg
b24gcHl0aG9uIDMiKQorICAgICAgICByYWlzZSByZXF1ZXN0LnJhaXNlZXJyb3IoImNhcHN5c2Jp
bmFyeSBpcyBvbmx5IHN1cHBvcnRlZCBvbiBQeXRob24gMyIpCiAgICAgd2l0aCBfaW5zdGFsbF9j
YXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBTeXNDYXB0dXJlQmluYXJ5KSBhcyBmaXh0
dXJlOgogICAgICAgICB5aWVsZCBmaXh0dXJlCiAKIAogQHB5dGVzdC5maXh0dXJlCiBkZWYgY2Fw
ZmQocmVxdWVzdCk6Ci0gICAgIiIiRW5hYmxlIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gZmlsZSBk
ZXNjcmlwdG9ycyBgYDFgYCBhbmQgYGAyYGAgYW5kIG1ha2UKLSAgICBjYXB0dXJlZCBvdXRwdXQg
YXZhaWxhYmxlIHZpYSBgYGNhcGZkLnJlYWRvdXRlcnIoKWBgIG1ldGhvZCBjYWxscwotICAgIHdo
aWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3
aWxsIGJlIGBgdGV4dGBgCi0gICAgb2JqZWN0cy4KKyAgICAiIiJFbmFibGUgdGV4dCBjYXB0dXJp
bmcgb2Ygd3JpdGVzIHRvIGZpbGUgZGVzY3JpcHRvcnMgYGAxYGAgYW5kIGBgMmBgLgorCisgICAg
VGhlIGNhcHR1cmVkIG91dHB1dCBpcyBtYWRlIGF2YWlsYWJsZSB2aWEgYGBjYXBmZC5yZWFkb3V0
ZXJyKClgYCBtZXRob2QKKyAgICBjYWxscywgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAg
bmFtZWR0dXBsZS4KKyAgICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUgYGB0ZXh0YGAgb2Jq
ZWN0cy4KICAgICAiIiIKICAgICBfZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1
ZXN0LCAiY2FwZmQiKQogICAgIGlmIG5vdCBoYXNhdHRyKG9zLCAiZHVwIik6CkBAIC0yNDcsMTAg
KzMxMCwxMSBAQCBkZWYgY2FwZmQocmVxdWVzdCk6CiAKIEBweXRlc3QuZml4dHVyZQogZGVmIGNh
cGZkYmluYXJ5KHJlcXVlc3QpOgotICAgICIiIkVuYWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGUgdG8g
ZmlsZSBkZXNjcmlwdG9ycyAxIGFuZCAyIGFuZCBtYWtlCi0gICAgY2FwdHVyZWQgb3V0cHV0IGF2
YWlsYWJsZSB2aWEgYGBjYXBmZGJpbmFyeS5yZWFkb3V0ZXJyYGAgbWV0aG9kIGNhbGxzCi0gICAg
d2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBg
IHdpbGwgYmUKLSAgICBgYGJ5dGVzYGAgb2JqZWN0cy4KKyAgICAiIiJFbmFibGUgYnl0ZXMgY2Fw
dHVyaW5nIG9mIHdyaXRlcyB0byBmaWxlIGRlc2NyaXB0b3JzIGBgMWBgIGFuZCBgYDJgYC4KKwor
ICAgIFRoZSBjYXB0dXJlZCBvdXRwdXQgaXMgbWFkZSBhdmFpbGFibGUgdmlhIGBgY2FwZmQucmVh
ZG91dGVycigpYGAgbWV0aG9kCisgICAgY2FsbHMsIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJy
KWBgIG5hbWVkdHVwbGUuCisgICAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgYnl0ZWBg
IG9iamVjdHMuCiAgICAgIiIiCiAgICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUo
cmVxdWVzdCwgImNhcGZkYmluYXJ5IikKICAgICBpZiBub3QgaGFzYXR0cihvcywgImR1cCIpOgpA
QCAtMjcyLDkgKzMzNiw5IEBAIGRlZiBfaW5zdGFsbF9jYXB0dXJlX2ZpeHR1cmVfb25faXRlbShy
ZXF1ZXN0LCBjYXB0dXJlX2NsYXNzKToKICAgICAiIiIKICAgICByZXF1ZXN0Lm5vZGUuX2NhcHR1
cmVfZml4dHVyZSA9IGZpeHR1cmUgPSBDYXB0dXJlRml4dHVyZShjYXB0dXJlX2NsYXNzLCByZXF1
ZXN0KQogICAgIGNhcG1hbmFnZXIgPSByZXF1ZXN0LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBs
dWdpbigiY2FwdHVyZW1hbmFnZXIiKQotICAgICMgbmVlZCB0byBhY3RpdmUgdGhpcyBmaXh0dXJl
IHJpZ2h0IGF3YXkgaW4gY2FzZSBpdCBpcyBiZWluZyB1c2VkIGJ5IGFub3RoZXIgZml4dHVyZSAo
c2V0dXAgcGhhc2UpCi0gICAgIyBpZiB0aGlzIGZpeHR1cmUgaXMgYmVpbmcgdXNlZCBvbmx5IGJ5
IGEgdGVzdCBmdW5jdGlvbiAoY2FsbCBwaGFzZSksIHRoZW4gd2Ugd291bGRuJ3QgbmVlZCB0aGlz
Ci0gICAgIyBhY3RpdmF0aW9uLCBidXQgaXQgZG9lc24ndCBodXJ0CisgICAgIyBOZWVkIHRvIGFj
dGl2ZSB0aGlzIGZpeHR1cmUgcmlnaHQgYXdheSBpbiBjYXNlIGl0IGlzIGJlaW5nIHVzZWQgYnkg
YW5vdGhlciBmaXh0dXJlIChzZXR1cCBwaGFzZSkuCisgICAgIyBJZiB0aGlzIGZpeHR1cmUgaXMg
YmVpbmcgdXNlZCBvbmx5IGJ5IGEgdGVzdCBmdW5jdGlvbiAoY2FsbCBwaGFzZSksIHRoZW4gd2Ug
d291bGRuJ3QgbmVlZCB0aGlzCisgICAgIyBhY3RpdmF0aW9uLCBidXQgaXQgZG9lc24ndCBodXJ0
LgogICAgIGNhcG1hbmFnZXIuYWN0aXZhdGVfZml4dHVyZShyZXF1ZXN0Lm5vZGUpCiAgICAgeWll
bGQgZml4dHVyZQogICAgIGZpeHR1cmUuY2xvc2UoKQpAQCAtMjkwLDQwICszNTQsNTUgQEAgY2xh
c3MgQ2FwdHVyZUZpeHR1cmUob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgY2FwdHVy
ZWNsYXNzLCByZXF1ZXN0KToKICAgICAgICAgc2VsZi5jYXB0dXJlY2xhc3MgPSBjYXB0dXJlY2xh
c3MKICAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxdWVzdAorICAgICAgICBzZWxmLl9jYXB0dXJl
ID0gTm9uZQorICAgICAgICBzZWxmLl9jYXB0dXJlZF9vdXQgPSBzZWxmLmNhcHR1cmVjbGFzcy5F
TVBUWV9CVUZGRVIKKyAgICAgICAgc2VsZi5fY2FwdHVyZWRfZXJyID0gc2VsZi5jYXB0dXJlY2xh
c3MuRU1QVFlfQlVGRkVSCiAKICAgICBkZWYgX3N0YXJ0KHNlbGYpOgotICAgICAgICBzZWxmLl9j
YXB0dXJlID0gTXVsdGlDYXB0dXJlKAotICAgICAgICAgICAgb3V0PVRydWUsIGVycj1UcnVlLCBp
bl89RmFsc2UsIENhcHR1cmU9c2VsZi5jYXB0dXJlY2xhc3MKLSAgICAgICAgKQotICAgICAgICBz
ZWxmLl9jYXB0dXJlLnN0YXJ0X2NhcHR1cmluZygpCisgICAgICAgIGlmIHNlbGYuX2NhcHR1cmUg
aXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2NhcHR1cmUgPSBNdWx0aUNhcHR1cmUoCisgICAg
ICAgICAgICAgICAgb3V0PVRydWUsIGVycj1UcnVlLCBpbl89RmFsc2UsIENhcHR1cmU9c2VsZi5j
YXB0dXJlY2xhc3MKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHNlbGYuX2NhcHR1cmUuc3Rh
cnRfY2FwdHVyaW5nKCkKIAogICAgIGRlZiBjbG9zZShzZWxmKToKLSAgICAgICAgY2FwID0gc2Vs
Zi5fX2RpY3RfXy5wb3AoIl9jYXB0dXJlIiwgTm9uZSkKLSAgICAgICAgaWYgY2FwIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgc2VsZi5fb3V0ZXJyID0gY2FwLnBvcF9vdXRlcnJfdG9fb3JpZygp
Ci0gICAgICAgICAgICBjYXAuc3RvcF9jYXB0dXJpbmcoKQorICAgICAgICBpZiBzZWxmLl9jYXB0
dXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgb3V0LCBlcnIgPSBzZWxmLl9jYXB0dXJlLnBv
cF9vdXRlcnJfdG9fb3JpZygpCisgICAgICAgICAgICBzZWxmLl9jYXB0dXJlZF9vdXQgKz0gb3V0
CisgICAgICAgICAgICBzZWxmLl9jYXB0dXJlZF9lcnIgKz0gZXJyCisgICAgICAgICAgICBzZWxm
Ll9jYXB0dXJlLnN0b3BfY2FwdHVyaW5nKCkKKyAgICAgICAgICAgIHNlbGYuX2NhcHR1cmUgPSBO
b25lCiAKICAgICBkZWYgcmVhZG91dGVycihzZWxmKToKICAgICAgICAgIiIiUmVhZCBhbmQgcmV0
dXJuIHRoZSBjYXB0dXJlZCBvdXRwdXQgc28gZmFyLCByZXNldHRpbmcgdGhlIGludGVybmFsIGJ1
ZmZlci4KIAotICAgICAgICA6cmV0dXJuOiBjYXB0dXJlZCBjb250ZW50IGFzIGEgbmFtZWR0dXBs
ZSB3aXRoICBgYG91dGBgIGFuZCBgYGVycmBgIHN0cmluZyBhdHRyaWJ1dGVzCisgICAgICAgIDpy
ZXR1cm46IGNhcHR1cmVkIGNvbnRlbnQgYXMgYSBuYW1lZHR1cGxlIHdpdGggYGBvdXRgYCBhbmQg
YGBlcnJgYCBzdHJpbmcgYXR0cmlidXRlcwogICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX2NhcHR1cmUucmVhZG91dGVycigpCi0gICAgICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9vdXRlcnIKKyAgICAg
ICAgY2FwdHVyZWRfb3V0LCBjYXB0dXJlZF9lcnIgPSBzZWxmLl9jYXB0dXJlZF9vdXQsIHNlbGYu
X2NhcHR1cmVkX2VycgorICAgICAgICBpZiBzZWxmLl9jYXB0dXJlIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgb3V0LCBlcnIgPSBzZWxmLl9jYXB0dXJlLnJlYWRvdXRlcnIoKQorICAgICAgICAg
ICAgY2FwdHVyZWRfb3V0ICs9IG91dAorICAgICAgICAgICAgY2FwdHVyZWRfZXJyICs9IGVycgor
ICAgICAgICBzZWxmLl9jYXB0dXJlZF9vdXQgPSBzZWxmLmNhcHR1cmVjbGFzcy5FTVBUWV9CVUZG
RVIKKyAgICAgICAgc2VsZi5fY2FwdHVyZWRfZXJyID0gc2VsZi5jYXB0dXJlY2xhc3MuRU1QVFlf
QlVGRkVSCisgICAgICAgIHJldHVybiBDYXB0dXJlUmVzdWx0KGNhcHR1cmVkX291dCwgY2FwdHVy
ZWRfZXJyKQorCisgICAgZGVmIF9zdXNwZW5kKHNlbGYpOgorICAgICAgICAiIiJTdXNwZW5kcyB0
aGlzIGZpeHR1cmUncyBvd24gY2FwdHVyaW5nIHRlbXBvcmFyaWx5LiIiIgorICAgICAgICBpZiBz
ZWxmLl9jYXB0dXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5fY2FwdHVyZS5zdXNw
ZW5kX2NhcHR1cmluZygpCisKKyAgICBkZWYgX3Jlc3VtZShzZWxmKToKKyAgICAgICAgIiIiUmVz
dW1lcyB0aGlzIGZpeHR1cmUncyBvd24gY2FwdHVyaW5nIHRlbXBvcmFyaWx5LiIiIgorICAgICAg
ICBpZiBzZWxmLl9jYXB0dXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5fY2FwdHVy
ZS5yZXN1bWVfY2FwdHVyaW5nKCkKIAogICAgIEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCiAg
ICAgZGVmIGRpc2FibGVkKHNlbGYpOgogICAgICAgICAiIiJUZW1wb3JhcmlseSBkaXNhYmxlcyBj
YXB0dXJlIHdoaWxlIGluc2lkZSB0aGUgJ3dpdGgnIGJsb2NrLiIiIgotICAgICAgICBzZWxmLl9j
YXB0dXJlLnN1c3BlbmRfY2FwdHVyaW5nKCkKICAgICAgICAgY2FwbWFuYWdlciA9IHNlbGYucmVx
dWVzdC5jb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oImNhcHR1cmVtYW5hZ2VyIikKLSAg
ICAgICAgY2FwbWFuYWdlci5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGl0ZW09Tm9uZSwgaW5fPUZh
bHNlKQotICAgICAgICB0cnk6CisgICAgICAgIHdpdGggY2FwbWFuYWdlci5nbG9iYWxfYW5kX2Zp
eHR1cmVfZGlzYWJsZWQoKToKICAgICAgICAgICAgIHlpZWxkCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBjYXBtYW5hZ2VyLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0gICAgICAgICAg
ICBzZWxmLl9jYXB0dXJlLnJlc3VtZV9jYXB0dXJpbmcoKQogCiAKIGRlZiBzYWZlX3RleHRfZHVw
ZmlsZShmLCBtb2RlLCBkZWZhdWx0X2VuY29kaW5nPSJVVEY4Iik6CkBAIC0zNTUsNiArNDM0LDEw
IEBAIGNsYXNzIEVuY29kZWRGaWxlKG9iamVjdCk6CiAgICAgZGVmIHdyaXRlKHNlbGYsIG9iaik6
CiAgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBzaXgudGV4dF90eXBlKToKICAgICAgICAgICAg
IG9iaiA9IG9iai5lbmNvZGUoc2VsZi5lbmNvZGluZywgInJlcGxhY2UiKQorICAgICAgICBlbGlm
IF9QWTM6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgIndy
aXRlKCkgYXJndW1lbnQgbXVzdCBiZSBzdHIsIG5vdCB7fSIuZm9ybWF0KHR5cGUob2JqKS5fX25h
bWVfXykKKyAgICAgICAgICAgICkKICAgICAgICAgc2VsZi5idWZmZXIud3JpdGUob2JqKQogCiAg
ICAgZGVmIHdyaXRlbGluZXMoc2VsZiwgbGluZWxpc3QpOgpAQCAtMzY2LDYgKzQ0OSwxMCBAQCBj
bGFzcyBFbmNvZGVkRmlsZShvYmplY3QpOgogICAgICAgICAiIiJFbnN1cmUgdGhhdCBmaWxlLm5h
bWUgaXMgYSBzdHJpbmcuIiIiCiAgICAgICAgIHJldHVybiByZXByKHNlbGYuYnVmZmVyKQogCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIG1vZGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmJ1
ZmZlci5tb2RlLnJlcGxhY2UoImIiLCAiIikKKwogICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBu
YW1lKToKICAgICAgICAgcmV0dXJuIGdldGF0dHIob2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2Vs
ZiwgImJ1ZmZlciIpLCBuYW1lKQogCkBAIC0zNzUsNiArNDYyLDcgQEAgQ2FwdHVyZVJlc3VsdCA9
IGNvbGxlY3Rpb25zLm5hbWVkdHVwbGUoIkNhcHR1cmVSZXN1bHQiLCBbIm91dCIsICJlcnIiXSkK
IAogY2xhc3MgTXVsdGlDYXB0dXJlKG9iamVjdCk6CiAgICAgb3V0ID0gZXJyID0gaW5fID0gTm9u
ZQorICAgIF9zdGF0ZSA9IE5vbmUKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvdXQ9VHJ1ZSwg
ZXJyPVRydWUsIGluXz1UcnVlLCBDYXB0dXJlPU5vbmUpOgogICAgICAgICBpZiBpbl86CkBAIC0z
ODQsNyArNDcyLDE3IEBAIGNsYXNzIE11bHRpQ2FwdHVyZShvYmplY3QpOgogICAgICAgICBpZiBl
cnI6CiAgICAgICAgICAgICBzZWxmLmVyciA9IENhcHR1cmUoMikKIAorICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8TXVsdGlDYXB0dXJlIG91dD0lciBlcnI9JXIgaW5f
PSVyIF9zdGF0ZT0lciBfaW5fc3VzcGVuZGVkPSVyPiIgJSAoCisgICAgICAgICAgICBzZWxmLm91
dCwKKyAgICAgICAgICAgIHNlbGYuZXJyLAorICAgICAgICAgICAgc2VsZi5pbl8sCisgICAgICAg
ICAgICBzZWxmLl9zdGF0ZSwKKyAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgIl9pbl9zdXNwZW5k
ZWQiLCAiPFVOU0VUPiIpLAorICAgICAgICApCisKICAgICBkZWYgc3RhcnRfY2FwdHVyaW5nKHNl
bGYpOgorICAgICAgICBzZWxmLl9zdGF0ZSA9ICJzdGFydGVkIgogICAgICAgICBpZiBzZWxmLmlu
XzoKICAgICAgICAgICAgIHNlbGYuaW5fLnN0YXJ0KCkKICAgICAgICAgaWYgc2VsZi5vdXQ6CkBA
IC00MDIsNiArNTAwLDcgQEAgY2xhc3MgTXVsdGlDYXB0dXJlKG9iamVjdCk6CiAgICAgICAgIHJl
dHVybiBvdXQsIGVycgogCiAgICAgZGVmIHN1c3BlbmRfY2FwdHVyaW5nKHNlbGYsIGluXz1GYWxz
ZSk6CisgICAgICAgIHNlbGYuX3N0YXRlID0gInN1c3BlbmRlZCIKICAgICAgICAgaWYgc2VsZi5v
dXQ6CiAgICAgICAgICAgICBzZWxmLm91dC5zdXNwZW5kKCkKICAgICAgICAgaWYgc2VsZi5lcnI6
CkBAIC00MTEsNiArNTEwLDcgQEAgY2xhc3MgTXVsdGlDYXB0dXJlKG9iamVjdCk6CiAgICAgICAg
ICAgICBzZWxmLl9pbl9zdXNwZW5kZWQgPSBUcnVlCiAKICAgICBkZWYgcmVzdW1lX2NhcHR1cmlu
ZyhzZWxmKToKKyAgICAgICAgc2VsZi5fc3RhdGUgPSAicmVzdW1lZCIKICAgICAgICAgaWYgc2Vs
Zi5vdXQ6CiAgICAgICAgICAgICBzZWxmLm91dC5yZXN1bWUoKQogICAgICAgICBpZiBzZWxmLmVy
cjoKQEAgLTQyMSw5ICs1MjEsOSBAQCBjbGFzcyBNdWx0aUNhcHR1cmUob2JqZWN0KToKIAogICAg
IGRlZiBzdG9wX2NhcHR1cmluZyhzZWxmKToKICAgICAgICAgIiIiIHN0b3AgY2FwdHVyaW5nIGFu
ZCByZXNldCBjYXB0dXJpbmcgc3RyZWFtcyAiIiIKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAi
X3Jlc2V0Iik6CisgICAgICAgIGlmIHNlbGYuX3N0YXRlID09ICJzdG9wcGVkIjoKICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoIndhcyBhbHJlYWR5IHN0b3BwZWQiKQotICAgICAgICBzZWxm
Ll9yZXNldCA9IFRydWUKKyAgICAgICAgc2VsZi5fc3RhdGUgPSAic3RvcHBlZCIKICAgICAgICAg
aWYgc2VsZi5vdXQ6CiAgICAgICAgICAgICBzZWxmLm91dC5kb25lKCkKICAgICAgICAgaWYgc2Vs
Zi5lcnI6CkBAIC00NDAsNiArNTQwLDcgQEAgY2xhc3MgTXVsdGlDYXB0dXJlKG9iamVjdCk6CiAK
IAogY2xhc3MgTm9DYXB0dXJlKG9iamVjdCk6CisgICAgRU1QVFlfQlVGRkVSID0gTm9uZQogICAg
IF9faW5pdF9fID0gc3RhcnQgPSBkb25lID0gc3VzcGVuZCA9IHJlc3VtZSA9IGxhbWJkYSAqYXJn
czogTm9uZQogCiAKQEAgLTQ0OSw2ICs1NTAsOSBAQCBjbGFzcyBGRENhcHR1cmVCaW5hcnkob2Jq
ZWN0KToKICAgICBzbmFwKCkgcHJvZHVjZXMgYGJ5dGVzYAogICAgICIiIgogCisgICAgRU1QVFlf
QlVGRkVSID0gYiIiCisgICAgX3N0YXRlID0gTm9uZQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHRhcmdldGZkLCB0bXBmaWxlPU5vbmUpOgogICAgICAgICBzZWxmLnRhcmdldGZkID0gdGFyZ2V0
ZmQKICAgICAgICAgdHJ5OgpAQCAtNDc0LDcgKzU3OCwxMSBAQCBjbGFzcyBGRENhcHR1cmVCaW5h
cnkob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYudG1wZmlsZV9mZCA9IHRtcGZpbGUuZmlsZW5v
KCkKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8RkRDYXB0dXJl
ICVzIG9sZGZkPSVzPiIgJSAoc2VsZi50YXJnZXRmZCwgc2VsZi50YXJnZXRmZF9zYXZlKQorICAg
ICAgICByZXR1cm4gIjxGRENhcHR1cmUgJXMgb2xkZmQ9JXMgX3N0YXRlPSVyPiIgJSAoCisgICAg
ICAgICAgICBzZWxmLnRhcmdldGZkLAorICAgICAgICAgICAgZ2V0YXR0cihzZWxmLCAidGFyZ2V0
ZmRfc2F2ZSIsIE5vbmUpLAorICAgICAgICAgICAgc2VsZi5fc3RhdGUsCisgICAgICAgICkKIAog
ICAgIGRlZiBzdGFydChzZWxmKToKICAgICAgICAgIiIiIFN0YXJ0IGNhcHR1cmluZyBvbiB0YXJn
ZXRmZCB1c2luZyBtZW1vcml6ZWQgdG1wZmlsZS4gIiIiCkBAIC00ODQsNiArNTkyLDcgQEAgY2xh
c3MgRkRDYXB0dXJlQmluYXJ5KG9iamVjdCk6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJzYXZlZCBmaWxlZGVzY3JpcHRvciBub3QgdmFsaWQgYW55bW9yZSIpCiAgICAgICAgIG9zLmR1
cDIoc2VsZi50bXBmaWxlX2ZkLCBzZWxmLnRhcmdldGZkKQogICAgICAgICBzZWxmLnN5c2NhcHR1
cmUuc3RhcnQoKQorICAgICAgICBzZWxmLl9zdGF0ZSA9ICJzdGFydGVkIgogCiAgICAgZGVmIHNu
YXAoc2VsZik6CiAgICAgICAgIHNlbGYudG1wZmlsZS5zZWVrKDApCkBAIC01MDAsMTQgKzYwOSwx
NyBAQCBjbGFzcyBGRENhcHR1cmVCaW5hcnkob2JqZWN0KToKICAgICAgICAgb3MuY2xvc2UodGFy
Z2V0ZmRfc2F2ZSkKICAgICAgICAgc2VsZi5zeXNjYXB0dXJlLmRvbmUoKQogICAgICAgICBfYXR0
ZW1wdF90b19jbG9zZV9jYXB0dXJlX2ZpbGUoc2VsZi50bXBmaWxlKQorICAgICAgICBzZWxmLl9z
dGF0ZSA9ICJkb25lIgogCiAgICAgZGVmIHN1c3BlbmQoc2VsZik6CiAgICAgICAgIHNlbGYuc3lz
Y2FwdHVyZS5zdXNwZW5kKCkKICAgICAgICAgb3MuZHVwMihzZWxmLnRhcmdldGZkX3NhdmUsIHNl
bGYudGFyZ2V0ZmQpCisgICAgICAgIHNlbGYuX3N0YXRlID0gInN1c3BlbmRlZCIKIAogICAgIGRl
ZiByZXN1bWUoc2VsZik6CiAgICAgICAgIHNlbGYuc3lzY2FwdHVyZS5yZXN1bWUoKQogICAgICAg
ICBvcy5kdXAyKHNlbGYudG1wZmlsZV9mZCwgc2VsZi50YXJnZXRmZCkKKyAgICAgICAgc2VsZi5f
c3RhdGUgPSAicmVzdW1lZCIKIAogICAgIGRlZiB3cml0ZW9yZyhzZWxmLCBkYXRhKToKICAgICAg
ICAgIiIiIHdyaXRlIHRvIG9yaWdpbmFsIGZpbGUgZGVzY3JpcHRvci4gIiIiCkBAIC01MjIsOCAr
NjM0LDEwIEBAIGNsYXNzIEZEQ2FwdHVyZShGRENhcHR1cmVCaW5hcnkpOgogICAgIHNuYXAoKSBw
cm9kdWNlcyB0ZXh0CiAgICAgIiIiCiAKKyAgICBFTVBUWV9CVUZGRVIgPSBzdHIoKQorCiAgICAg
ZGVmIHNuYXAoc2VsZik6Ci0gICAgICAgIHJlcyA9IEZEQ2FwdHVyZUJpbmFyeS5zbmFwKHNlbGYp
CisgICAgICAgIHJlcyA9IHN1cGVyKEZEQ2FwdHVyZSwgc2VsZikuc25hcCgpCiAgICAgICAgIGVu
YyA9IGdldGF0dHIoc2VsZi50bXBmaWxlLCAiZW5jb2RpbmciLCBOb25lKQogICAgICAgICBpZiBl
bmMgYW5kIGlzaW5zdGFuY2UocmVzLCBieXRlcyk6CiAgICAgICAgICAgICByZXMgPSBzaXgudGV4
dF90eXBlKHJlcywgZW5jLCAicmVwbGFjZSIpCkBAIC01MzIsNiArNjQ2LDkgQEAgY2xhc3MgRkRD
YXB0dXJlKEZEQ2FwdHVyZUJpbmFyeSk6CiAKIGNsYXNzIFN5c0NhcHR1cmUob2JqZWN0KToKIAor
ICAgIEVNUFRZX0JVRkZFUiA9IHN0cigpCisgICAgX3N0YXRlID0gTm9uZQorCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGZkLCB0bXBmaWxlPU5vbmUpOgogICAgICAgICBuYW1lID0gcGF0Y2hzeXNk
aWN0W2ZkXQogICAgICAgICBzZWxmLl9vbGQgPSBnZXRhdHRyKHN5cywgbmFtZSkKQEAgLTU0Myw4
ICs2NjAsMTcgQEAgY2xhc3MgU3lzQ2FwdHVyZShvYmplY3QpOgogICAgICAgICAgICAgICAgIHRt
cGZpbGUgPSBDYXB0dXJlSU8oKQogICAgICAgICBzZWxmLnRtcGZpbGUgPSB0bXBmaWxlCiAKKyAg
ICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPFN5c0NhcHR1cmUgJXMgX29s
ZD0lciwgdG1wZmlsZT0lciBfc3RhdGU9JXI+IiAlICgKKyAgICAgICAgICAgIHNlbGYubmFtZSwK
KyAgICAgICAgICAgIHNlbGYuX29sZCwKKyAgICAgICAgICAgIHNlbGYudG1wZmlsZSwKKyAgICAg
ICAgICAgIHNlbGYuX3N0YXRlLAorICAgICAgICApCisKICAgICBkZWYgc3RhcnQoc2VsZik6CiAg
ICAgICAgIHNldGF0dHIoc3lzLCBzZWxmLm5hbWUsIHNlbGYudG1wZmlsZSkKKyAgICAgICAgc2Vs
Zi5fc3RhdGUgPSAic3RhcnRlZCIKIAogICAgIGRlZiBzbmFwKHNlbGYpOgogICAgICAgICByZXMg
PSBzZWxmLnRtcGZpbGUuZ2V0dmFsdWUoKQpAQCAtNTU2LDEyICs2ODIsMTUgQEAgY2xhc3MgU3lz
Q2FwdHVyZShvYmplY3QpOgogICAgICAgICBzZXRhdHRyKHN5cywgc2VsZi5uYW1lLCBzZWxmLl9v
bGQpCiAgICAgICAgIGRlbCBzZWxmLl9vbGQKICAgICAgICAgX2F0dGVtcHRfdG9fY2xvc2VfY2Fw
dHVyZV9maWxlKHNlbGYudG1wZmlsZSkKKyAgICAgICAgc2VsZi5fc3RhdGUgPSAiZG9uZSIKIAog
ICAgIGRlZiBzdXNwZW5kKHNlbGYpOgogICAgICAgICBzZXRhdHRyKHN5cywgc2VsZi5uYW1lLCBz
ZWxmLl9vbGQpCisgICAgICAgIHNlbGYuX3N0YXRlID0gInN1c3BlbmRlZCIKIAogICAgIGRlZiBy
ZXN1bWUoc2VsZik6CiAgICAgICAgIHNldGF0dHIoc3lzLCBzZWxmLm5hbWUsIHNlbGYudG1wZmls
ZSkKKyAgICAgICAgc2VsZi5fc3RhdGUgPSAicmVzdW1lZCIKIAogICAgIGRlZiB3cml0ZW9yZyhz
ZWxmLCBkYXRhKToKICAgICAgICAgc2VsZi5fb2xkLndyaXRlKGRhdGEpCkBAIC01NjksNiArNjk4
LDcgQEAgY2xhc3MgU3lzQ2FwdHVyZShvYmplY3QpOgogCiAKIGNsYXNzIFN5c0NhcHR1cmVCaW5h
cnkoU3lzQ2FwdHVyZSk6CisgICAgRU1QVFlfQlVGRkVSID0gYiIiCiAKICAgICBkZWYgc25hcChz
ZWxmKToKICAgICAgICAgcmVzID0gc2VsZi50bXBmaWxlLmJ1ZmZlci5nZXR2YWx1ZSgpCkBAIC01
OTgsNyArNzI4LDcgQEAgY2xhc3MgRG9udFJlYWRGcm9tSW5wdXQoc2l4Lkl0ZXJhdG9yKToKICAg
ICAgICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBmaWxlbm8oc2VsZik6Ci0gICAgICAgIHJhaXNl
IFVuc3VwcG9ydGVkT3BlcmF0aW9uKCJyZWRpcmVjdGVkIHN0ZGluIGlzIHBzZXVkb2ZpbGUsICIg
ImhhcyBubyBmaWxlbm8oKSIpCisgICAgICAgIHJhaXNlIFVuc3VwcG9ydGVkT3BlcmF0aW9uKCJy
ZWRpcmVjdGVkIHN0ZGluIGlzIHBzZXVkb2ZpbGUsIGhhcyBubyBmaWxlbm8oKSIpCiAKICAgICBk
ZWYgaXNhdHR5KHNlbGYpOgogICAgICAgICByZXR1cm4gRmFsc2UKQEAgLTYyMywxMyArNzUzLDEx
IEBAIGRlZiBfY29sb3JhbWFfd29ya2Fyb3VuZCgpOgogICAgIGZpcnN0IGltcG9ydCBvZiBjb2xv
cmFtYSB3aGlsZSBJL08gY2FwdHVyZSBpcyBhY3RpdmUsIGNvbG9yYW1hIHdpbGwKICAgICBmYWls
IGluIHZhcmlvdXMgd2F5cy4KICAgICAiIiIKLQotICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3Rh
cnRzd2l0aCgid2luMzIiKToKLSAgICAgICAgcmV0dXJuCi0gICAgdHJ5OgotICAgICAgICBpbXBv
cnQgY29sb3JhbWEgICMgbm9xYQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcGFz
cworICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4zMiIpOgorICAgICAgICB0cnk6
CisgICAgICAgICAgICBpbXBvcnQgY29sb3JhbWEgICMgbm9xYTogRjQwMQorICAgICAgICBleGNl
cHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICBwYXNzCiAKIAogZGVmIF9yZWFkbGluZV93b3Jr
YXJvdW5kKCk6CkBAIC02NTAsMTMgKzc3OCwxMSBAQCBkZWYgX3JlYWRsaW5lX3dvcmthcm91bmQo
KToKIAogICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8x
MjgxCiAgICAgIiIiCi0KLSAgICBpZiBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoIndpbjMy
Iik6Ci0gICAgICAgIHJldHVybgotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IHJlYWRsaW5lICAj
IG5vcWEKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHBhc3MKKyAgICBpZiBzeXMu
cGxhdGZvcm0uc3RhcnRzd2l0aCgid2luMzIiKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
aW1wb3J0IHJlYWRsaW5lICAjIG5vcWE6IEY0MDEKKyAgICAgICAgZXhjZXB0IEltcG9ydEVycm9y
OgorICAgICAgICAgICAgcGFzcwogCiAKIGRlZiBfcHkzNl93aW5kb3dzY29uc29sZWlvX3dvcmth
cm91bmQoc3RyZWFtKToKQEAgLTcwOCw5ICs4MzQsOSBAQCBkZWYgX3B5MzZfd2luZG93c2NvbnNv
bGVpb193b3JrYXJvdW5kKHN0cmVhbSk6CiAgICAgICAgICAgICBmLmxpbmVfYnVmZmVyaW5nLAog
ICAgICAgICApCiAKLSAgICBzeXMuX19zdGRpbl9fID0gc3lzLnN0ZGluID0gX3Jlb3Blbl9zdGRp
byhzeXMuc3RkaW4sICJyYiIpCi0gICAgc3lzLl9fc3Rkb3V0X18gPSBzeXMuc3Rkb3V0ID0gX3Jl
b3Blbl9zdGRpbyhzeXMuc3Rkb3V0LCAid2IiKQotICAgIHN5cy5fX3N0ZGVycl9fID0gc3lzLnN0
ZGVyciA9IF9yZW9wZW5fc3RkaW8oc3lzLnN0ZGVyciwgIndiIikKKyAgICBzeXMuc3RkaW4gPSBf
cmVvcGVuX3N0ZGlvKHN5cy5zdGRpbiwgInJiIikKKyAgICBzeXMuc3Rkb3V0ID0gX3Jlb3Blbl9z
dGRpbyhzeXMuc3Rkb3V0LCAid2IiKQorICAgIHN5cy5zdGRlcnIgPSBfcmVvcGVuX3N0ZGlvKHN5
cy5zdGRlcnIsICJ3YiIpCiAKIAogZGVmIF9hdHRlbXB0X3RvX2Nsb3NlX2NhcHR1cmVfZmlsZShm
KToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbXBhdC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbXBhdC5weQppbmRleCA3YWJkM2Q1M2ZmOTEyMmJhNzk2ZTNm
N2EwYmFmZGFiNjM2MDkwMzgyLi5kMGFkZDUzMDI2ODIwNGIwN2M3MGNjMDZhYTkyNzVkZWI0OTk3
ZjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb21wYXQucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29tcGF0LnB5CkBAIC0xLDIwICsxLDI3IEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiCiBweXRob24gdmVyc2lvbiBjb21wYXRpYmlsaXR5IGNv
ZGUKICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9u
LCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
cHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IGNvZGVjcwogaW1wb3J0IGZ1bmN0b29scwogaW1wb3J0
IGluc3BlY3QKIGltcG9ydCByZQogaW1wb3J0IHN5cworZnJvbSBjb250ZXh0bGliIGltcG9ydCBj
b250ZXh0bWFuYWdlcgogCitpbXBvcnQgYXR0cgogaW1wb3J0IHB5CitpbXBvcnQgc2l4Citmcm9t
IHNpeCBpbXBvcnQgdGV4dF90eXBlCiAKIGltcG9ydCBfcHl0ZXN0Citmcm9tIF9weXRlc3QuX2lv
LnNhZmVyZXByIGltcG9ydCBzYWZlcmVwcgorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBm
YWlsCiBmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IFRFU1RfT1VUQ09NRQotZnJvbSBzaXgg
aW1wb3J0IHRleHRfdHlwZQotaW1wb3J0IHNpeAogCiB0cnk6CiAgICAgaW1wb3J0IGVudW0KQEAg
LTIyLDcgKzI5LDYgQEAgZXhjZXB0IEltcG9ydEVycm9yOiAgIyBwcmFnbWE6IG5vIGNvdmVyCiAg
ICAgIyBPbmx5IGF2YWlsYWJsZSBpbiBQeXRob24gMy40KyBvciBhcyBhIGJhY2twb3J0CiAgICAg
ZW51bSA9IE5vbmUKIAotCiBfUFkzID0gc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKQogX1BZMiA9
IG5vdCBfUFkzCiAKQEAgLTMyLDIxICszOCwzNCBAQCBpZiBfUFkzOgogZWxzZToKICAgICBmcm9t
IGZ1bmNzaWdzIGltcG9ydCBzaWduYXR1cmUsIFBhcmFtZXRlciBhcyBQYXJhbWV0ZXIKIAotCi1O
b25lVHlwZSA9IHR5cGUoTm9uZSkKIE5PVFNFVCA9IG9iamVjdCgpCiAKIFBZMzUgPSBzeXMudmVy
c2lvbl9pbmZvWzoyXSA+PSAoMywgNSkKIFBZMzYgPSBzeXMudmVyc2lvbl9pbmZvWzoyXSA+PSAo
MywgNikKIE1PRFVMRV9OT1RfRk9VTkRfRVJST1IgPSAiTW9kdWxlTm90Rm91bmRFcnJvciIgaWYg
UFkzNiBlbHNlICJJbXBvcnRFcnJvciIKIAorCiBpZiBfUFkzOgotICAgIGZyb20gY29sbGVjdGlv
bnMuYWJjIGltcG9ydCBNdXRhYmxlTWFwcGluZyBhcyBNYXBwaW5nTWl4aW4gICMgbm9xYQotICAg
IGZyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBNYXBwaW5nLCBTZXF1ZW5jZSAgIyBub3FhCisg
ICAgZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IE11dGFibGVNYXBwaW5nIGFzIE1hcHBpbmdN
aXhpbgorICAgIGZyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBJdGVyYWJsZSwgTWFwcGluZywg
U2VxdWVuY2UsIFNpemVkCiBlbHNlOgogICAgICMgdGhvc2UgcmFpc2UgRGVwcmVjYXRpb25XYXJu
aW5ncyBpbiBQeXRob24gPj0zLjcKICAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNdXRhYmxl
TWFwcGluZyBhcyBNYXBwaW5nTWl4aW4gICMgbm9xYQotICAgIGZyb20gY29sbGVjdGlvbnMgaW1w
b3J0IE1hcHBpbmcsIFNlcXVlbmNlICAjIG5vcWEKKyAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9y
dCBJdGVyYWJsZSwgTWFwcGluZywgU2VxdWVuY2UsIFNpemVkICAjIG5vcWEKKworCitpZiBzeXMu
dmVyc2lvbl9pbmZvID49ICgzLCA0KToKKyAgICBmcm9tIGltcG9ydGxpYi51dGlsIGltcG9ydCBz
cGVjX2Zyb21fZmlsZV9sb2NhdGlvbgorZWxzZToKKworICAgIGRlZiBzcGVjX2Zyb21fZmlsZV9s
b2NhdGlvbigqXywgKipfXyk6CisgICAgICAgIHJldHVybiBOb25lCisKKworaWYgc3lzLnZlcnNp
b25faW5mbyA+PSAoMywgOCk6CisgICAgZnJvbSBpbXBvcnRsaWIgaW1wb3J0IG1ldGFkYXRhIGFz
IGltcG9ydGxpYl9tZXRhZGF0YSAgIyBub3FhCitlbHNlOgorICAgIGltcG9ydCBpbXBvcnRsaWJf
bWV0YWRhdGEgICMgbm9xYQogCiAKIGRlZiBfZm9ybWF0X2FyZ3MoZnVuYyk6CkBAIC03MiwxNiAr
OTEsMTMgQEAgZGVmIGlzY29yb3V0aW5lZnVuY3Rpb24oZnVuYyk6CiAgICAgTm90ZTogY29waWVk
IGFuZCBtb2RpZmllZCBmcm9tIFB5dGhvbiAzLjUncyBidWlsdGluIGNvdXJvdXRpbmVzLnB5IHRv
IGF2b2lkIGltcG9ydCBhc3luY2lvIGRpcmVjdGx5LAogICAgIHdoaWNoIGluIHR1cm5zIGFsc28g
aW5pdGlhbGl6ZXMgdGhlICJsb2dnaW5nIiBtb2R1bGUgYXMgc2lkZS1lZmZlY3QgKHNlZSBpc3N1
ZSAjOCkuCiAgICAgIiIiCi0gICAgcmV0dXJuICgKLSAgICAgICAgZ2V0YXR0cihmdW5jLCAiX2lz
X2Nvcm91dGluZSIsIEZhbHNlKQotICAgICAgICBvciAoCi0gICAgICAgICAgICBoYXNhdHRyKGlu
c3BlY3QsICJpc2Nvcm91dGluZWZ1bmN0aW9uIikKLSAgICAgICAgICAgIGFuZCBpbnNwZWN0Lmlz
Y29yb3V0aW5lZnVuY3Rpb24oZnVuYykKLSAgICAgICAgKQorICAgIHJldHVybiBnZXRhdHRyKGZ1
bmMsICJfaXNfY29yb3V0aW5lIiwgRmFsc2UpIG9yICgKKyAgICAgICAgaGFzYXR0cihpbnNwZWN0
LCAiaXNjb3JvdXRpbmVmdW5jdGlvbiIpIGFuZCBpbnNwZWN0LmlzY29yb3V0aW5lZnVuY3Rpb24o
ZnVuYykKICAgICApCiAKIAogZGVmIGdldGxvY2F0aW9uKGZ1bmN0aW9uLCBjdXJkaXIpOgorICAg
IGZ1bmN0aW9uID0gZ2V0X3JlYWxfZnVuYyhmdW5jdGlvbikKICAgICBmbiA9IHB5LnBhdGgubG9j
YWwoaW5zcGVjdC5nZXRmaWxlKGZ1bmN0aW9uKSkKICAgICBsaW5lbm8gPSBmdW5jdGlvbi5fX2Nv
ZGVfXy5jb19maXJzdGxpbmVubwogICAgIGlmIGZuLnJlbHRvKGN1cmRpcik6CkBAIC0xMjYsOSAr
MTQyLDE3IEBAIGRlZiBnZXRmdW5jYXJnbmFtZXMoZnVuY3Rpb24sIGlzX21ldGhvZD1GYWxzZSwg
Y2xzPU5vbmUpOgogICAgICMgb3JkZXJlZCBtYXBwaW5nIG9mIHBhcmFtZXRlciBuYW1lcyB0byBQ
YXJhbWV0ZXIgaW5zdGFuY2VzLiAgVGhpcwogICAgICMgY3JlYXRlcyBhIHR1cGxlIG9mIHRoZSBu
YW1lcyBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IGRvbid0IGhhdmUKICAgICAjIGRlZmF1bHRzLgor
ICAgIHRyeToKKyAgICAgICAgcGFyYW1ldGVycyA9IHNpZ25hdHVyZShmdW5jdGlvbikucGFyYW1l
dGVycworICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yKSBhcyBlOgorICAgICAgICBm
YWlsKAorICAgICAgICAgICAgIkNvdWxkIG5vdCBkZXRlcm1pbmUgYXJndW1lbnRzIG9mIHshcn06
IHt9Ii5mb3JtYXQoZnVuY3Rpb24sIGUpLAorICAgICAgICAgICAgcHl0cmFjZT1GYWxzZSwKKyAg
ICAgICAgKQorCiAgICAgYXJnX25hbWVzID0gdHVwbGUoCiAgICAgICAgIHAubmFtZQotICAgICAg
ICBmb3IgcCBpbiBzaWduYXR1cmUoZnVuY3Rpb24pLnBhcmFtZXRlcnMudmFsdWVzKCkKKyAgICAg
ICAgZm9yIHAgaW4gcGFyYW1ldGVycy52YWx1ZXMoKQogICAgICAgICBpZiAoCiAgICAgICAgICAg
ICBwLmtpbmQgaXMgUGFyYW1ldGVyLlBPU0lUSU9OQUxfT1JfS0VZV09SRAogICAgICAgICAgICAg
b3IgcC5raW5kIGlzIFBhcmFtZXRlci5LRVlXT1JEX09OTFkKQEAgLTEzOCwyMCArMTYyLDIzIEBA
IGRlZiBnZXRmdW5jYXJnbmFtZXMoZnVuY3Rpb24sIGlzX21ldGhvZD1GYWxzZSwgY2xzPU5vbmUp
OgogICAgICMgSWYgdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgdHJlYXRlZCBhcyBhIGJvdW5kIG1l
dGhvZCBldmVuIHRob3VnaAogICAgICMgaXQncyBwYXNzZWQgYXMgYW4gdW5ib3VuZCBtZXRob2Qg
b3IgZnVuY3Rpb24sIHJlbW92ZSB0aGUgZmlyc3QKICAgICAjIHBhcmFtZXRlciBuYW1lLgotICAg
IGlmICgKLSAgICAgICAgaXNfbWV0aG9kCi0gICAgICAgIG9yICgKLSAgICAgICAgICAgIGNscwot
ICAgICAgICAgICAgYW5kIG5vdCBpc2luc3RhbmNlKGNscy5fX2RpY3RfXy5nZXQoZnVuY3Rpb24u
X19uYW1lX18sIE5vbmUpLCBzdGF0aWNtZXRob2QpCi0gICAgICAgICkKKyAgICBpZiBpc19tZXRo
b2Qgb3IgKAorICAgICAgICBjbHMgYW5kIG5vdCBpc2luc3RhbmNlKGNscy5fX2RpY3RfXy5nZXQo
ZnVuY3Rpb24uX19uYW1lX18sIE5vbmUpLCBzdGF0aWNtZXRob2QpCiAgICAgKToKICAgICAgICAg
YXJnX25hbWVzID0gYXJnX25hbWVzWzE6XQogICAgICMgUmVtb3ZlIGFueSBuYW1lcyB0aGF0IHdp
bGwgYmUgcmVwbGFjZWQgd2l0aCBtb2Nrcy4KICAgICBpZiBoYXNhdHRyKGZ1bmN0aW9uLCAiX193
cmFwcGVkX18iKToKLSAgICAgICAgYXJnX25hbWVzID0gYXJnX25hbWVzW251bV9tb2NrX3BhdGNo
X2FyZ3MoZnVuY3Rpb24pOl0KKyAgICAgICAgYXJnX25hbWVzID0gYXJnX25hbWVzW251bV9tb2Nr
X3BhdGNoX2FyZ3MoZnVuY3Rpb24pIDpdCiAgICAgcmV0dXJuIGFyZ19uYW1lcwogCiAKK0Bjb250
ZXh0bWFuYWdlcgorZGVmIGR1bW15X2NvbnRleHRfbWFuYWdlcigpOgorICAgICIiIkNvbnRleHQg
bWFuYWdlciB0aGF0IGRvZXMgbm90aGluZywgdXNlZnVsIGluIHNpdHVhdGlvbnMgd2hlcmUgeW91
IG1pZ2h0IG5lZWQgYW4gYWN0dWFsIGNvbnRleHQgbWFuYWdlciBvciBub3QKKyAgICBkZXBlbmRp
bmcgb24gc29tZSBjb25kaXRpb24uIFVzaW5nIHRoaXMgYWxsb3cgdG8ga2VlcCB0aGUgc2FtZSBj
b2RlIiIiCisgICAgeWllbGQKKworCiBkZWYgZ2V0X2RlZmF1bHRfYXJnX25hbWVzKGZ1bmN0aW9u
KToKICAgICAjIE5vdGU6IHRoaXMgY29kZSBpbnRlbnRpb25hbGx5IG1pcnJvcnMgdGhlIGNvZGUg
YXQgdGhlIGJlZ2lubmluZyBvZiBnZXRmdW5jYXJnbmFtZXMsCiAgICAgIyB0byBnZXQgdGhlIGFy
Z3VtZW50cyB3aGljaCB3ZXJlIGV4Y2x1ZGVkIGZyb20gaXRzIHJlc3VsdCBiZWNhdXNlIHRoZXkg
aGFkIGRlZmF1bHQgdmFsdWVzCkBAIC0xNjMsNiArMTkwLDE4IEBAIGRlZiBnZXRfZGVmYXVsdF9h
cmdfbmFtZXMoZnVuY3Rpb24pOgogICAgICkKIAogCitfbm9uX3ByaW50YWJsZV9hc2NpaV90cmFu
c2xhdGVfdGFibGUgPSB7CisgICAgaTogdSJcXHh7OjAyeH0iLmZvcm1hdChpKSBmb3IgaSBpbiBy
YW5nZSgxMjgpIGlmIGkgbm90IGluIHJhbmdlKDMyLCAxMjcpCit9Citfbm9uX3ByaW50YWJsZV9h
c2NpaV90cmFuc2xhdGVfdGFibGUudXBkYXRlKAorICAgIHtvcmQoIlx0Iik6IHUiXFx0Iiwgb3Jk
KCJcciIpOiB1IlxcciIsIG9yZCgiXG4iKTogdSJcXG4ifQorKQorCisKK2RlZiBfdHJhbnNsYXRl
X25vbl9wcmludGFibGUocyk6CisgICAgcmV0dXJuIHMudHJhbnNsYXRlKF9ub25fcHJpbnRhYmxl
X2FzY2lpX3RyYW5zbGF0ZV90YWJsZSkKKworCiBpZiBfUFkzOgogICAgIFNUUklOR19UWVBFUyA9
IGJ5dGVzLCBzdHIKICAgICBVTklDT0RFX1RZUEVTID0gc2l4LnRleHRfdHlwZQpAQCAtMjAyLDkg
KzI0MSwxMCBAQCBpZiBfUFkzOgogCiAgICAgICAgICIiIgogICAgICAgICBpZiBpc2luc3RhbmNl
KHZhbCwgYnl0ZXMpOgotICAgICAgICAgICAgcmV0dXJuIF9ieXRlc190b19hc2NpaSh2YWwpCisg
ICAgICAgICAgICByZXQgPSBfYnl0ZXNfdG9fYXNjaWkodmFsKQogICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoInVuaWNvZGVfZXNjYXBlIikuZGVjb2RlKCJhc2Np
aSIpCisgICAgICAgICAgICByZXQgPSB2YWwuZW5jb2RlKCJ1bmljb2RlX2VzY2FwZSIpLmRlY29k
ZSgiYXNjaWkiKQorICAgICAgICByZXR1cm4gX3RyYW5zbGF0ZV9ub25fcHJpbnRhYmxlKHJldCkK
IAogCiBlbHNlOgpAQCAtMjIyLDExICsyNjIsMjQgQEAgZWxzZToKICAgICAgICAgIiIiCiAgICAg
ICAgIGlmIGlzaW5zdGFuY2UodmFsLCBieXRlcyk6CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoImFzY2lpIikKKyAgICAgICAgICAgICAgICByZXQg
PSB2YWwuZGVjb2RlKCJhc2NpaSIpCiAgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVy
cm9yOgotICAgICAgICAgICAgICAgIHJldHVybiB2YWwuZW5jb2RlKCJzdHJpbmctZXNjYXBlIikK
KyAgICAgICAgICAgICAgICByZXQgPSB2YWwuZW5jb2RlKCJzdHJpbmctZXNjYXBlIikuZGVjb2Rl
KCJhc2NpaSIpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gdmFsLmVuY29kZSgi
dW5pY29kZS1lc2NhcGUiKQorICAgICAgICAgICAgcmV0ID0gdmFsLmVuY29kZSgidW5pY29kZS1l
c2NhcGUiKS5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgcmV0dXJuIF90cmFuc2xhdGVfbm9uX3By
aW50YWJsZShyZXQpCisKKworY2xhc3MgX1B5dGVzdFdyYXBwZXIob2JqZWN0KToKKyAgICAiIiJE
dW1teSB3cmFwcGVyIGFyb3VuZCBhIGZ1bmN0aW9uIG9iamVjdCBmb3IgaW50ZXJuYWwgdXNlIG9u
bHkuCisKKyAgICBVc2VkIHRvIGNvcnJlY3RseSB1bndyYXAgdGhlIHVuZGVybHlpbmcgZnVuY3Rp
b24gb2JqZWN0CisgICAgd2hlbiB3ZSBhcmUgY3JlYXRpbmcgZml4dHVyZXMsIGJlY2F1c2Ugd2Ug
d3JhcCB0aGUgZnVuY3Rpb24gb2JqZWN0IG91cnNlbHZlcyB3aXRoIGEgZGVjb3JhdG9yCisgICAg
dG8gaXNzdWUgd2FybmluZ3Mgd2hlbiB0aGUgZml4dHVyZSBmdW5jdGlvbiBpcyBjYWxsZWQgZGly
ZWN0bHkuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb2JqKToKKyAgICAgICAg
c2VsZi5vYmogPSBvYmoKIAogCiBkZWYgZ2V0X3JlYWxfZnVuYyhvYmopOgpAQCAtMjM1LDE0ICsy
ODgsMjEgQEAgZGVmIGdldF9yZWFsX2Z1bmMob2JqKToKICAgICAiIiIKICAgICBzdGFydF9vYmog
PSBvYmoKICAgICBmb3IgaSBpbiByYW5nZSgxMDApOgorICAgICAgICAjIF9fcHl0ZXN0X3dyYXBw
ZWRfXyBpcyBzZXQgYnkgQHB5dGVzdC5maXh0dXJlIHdoZW4gd3JhcHBpbmcgdGhlIGZpeHR1cmUg
ZnVuY3Rpb24KKyAgICAgICAgIyB0byB0cmlnZ2VyIGEgd2FybmluZyBpZiBpdCBnZXRzIGNhbGxl
ZCBkaXJlY3RseSBpbnN0ZWFkIG9mIGJ5IHB5dGVzdDogd2UgZG9uJ3QKKyAgICAgICAgIyB3YW50
IHRvIHVud3JhcCBmdXJ0aGVyIHRoYW4gdGhpcyBvdGhlcndpc2Ugd2UgbG9zZSB1c2VmdWwgd3Jh
cHBpbmdzIGxpa2UgQG1vY2sucGF0Y2ggKCMzNzc0KQorICAgICAgICBuZXdfb2JqID0gZ2V0YXR0
cihvYmosICJfX3B5dGVzdF93cmFwcGVkX18iLCBOb25lKQorICAgICAgICBpZiBpc2luc3RhbmNl
KG5ld19vYmosIF9QeXRlc3RXcmFwcGVyKToKKyAgICAgICAgICAgIG9iaiA9IG5ld19vYmoub2Jq
CisgICAgICAgICAgICBicmVhawogICAgICAgICBuZXdfb2JqID0gZ2V0YXR0cihvYmosICJfX3dy
YXBwZWRfXyIsIE5vbmUpCiAgICAgICAgIGlmIG5ld19vYmogaXMgTm9uZToKICAgICAgICAgICAg
IGJyZWFrCiAgICAgICAgIG9iaiA9IG5ld19vYmoKICAgICBlbHNlOgogICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKAotICAgICAgICAgICAgKCJjb3VsZCBub3QgZmluZCByZWFsIGZ1bmN0aW9uIG9m
IHtzdGFydH0iICJcbnN0b3BwZWQgYXQge2N1cnJlbnR9IikuZm9ybWF0KAotICAgICAgICAgICAg
ICAgIHN0YXJ0PXB5LmlvLnNhZmVyZXByKHN0YXJ0X29iaiksIGN1cnJlbnQ9cHkuaW8uc2FmZXJl
cHIob2JqKQorICAgICAgICAgICAgKCJjb3VsZCBub3QgZmluZCByZWFsIGZ1bmN0aW9uIG9mIHtz
dGFydH1cbnN0b3BwZWQgYXQge2N1cnJlbnR9IikuZm9ybWF0KAorICAgICAgICAgICAgICAgIHN0
YXJ0PXNhZmVyZXByKHN0YXJ0X29iaiksIGN1cnJlbnQ9c2FmZXJlcHIob2JqKQogICAgICAgICAg
ICAgKQogICAgICAgICApCiAgICAgaWYgaXNpbnN0YW5jZShvYmosIGZ1bmN0b29scy5wYXJ0aWFs
KToKQEAgLTI1MCw2ICszMTAsMjEgQEAgZGVmIGdldF9yZWFsX2Z1bmMob2JqKToKICAgICByZXR1
cm4gb2JqCiAKIAorZGVmIGdldF9yZWFsX21ldGhvZChvYmosIGhvbGRlcik6CisgICAgIiIiCisg
ICAgQXR0ZW1wdHMgdG8gb2J0YWluIHRoZSByZWFsIGZ1bmN0aW9uIG9iamVjdCB0aGF0IG1pZ2h0
IGJlIHdyYXBwaW5nIGBgb2JqYGAsIHdoaWxlIGF0IHRoZSBzYW1lIHRpbWUKKyAgICByZXR1cm5p
bmcgYSBib3VuZCBtZXRob2QgdG8gYGBob2xkZXJgYCBpZiB0aGUgb3JpZ2luYWwgb2JqZWN0IHdh
cyBhIGJvdW5kIG1ldGhvZC4KKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGlzX21ldGhvZCA9
IGhhc2F0dHIob2JqLCAiX19mdW5jX18iKQorICAgICAgICBvYmogPSBnZXRfcmVhbF9mdW5jKG9i
aikKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICByZXR1cm4gb2JqCisgICAgaWYgaXNf
bWV0aG9kIGFuZCBoYXNhdHRyKG9iaiwgIl9fZ2V0X18iKSBhbmQgY2FsbGFibGUob2JqLl9fZ2V0
X18pOgorICAgICAgICBvYmogPSBvYmouX19nZXRfXyhob2xkZXIpCisgICAgcmV0dXJuIG9iagor
CisKIGRlZiBnZXRmc2xpbmVubyhvYmopOgogICAgICMgeHh4IGxldCBkZWNvcmF0b3JzIGV0YyBz
cGVjaWZ5IGEgc2FuZSBvcmRlcmluZwogICAgIG9iaiA9IGdldF9yZWFsX2Z1bmMob2JqKQpAQCAt
MjgxLDYgKzM1NiwxNCBAQCBkZWYgc2FmZV9nZXRhdHRyKG9iamVjdCwgbmFtZSwgZGVmYXVsdCk6
CiAgICAgICAgIHJldHVybiBkZWZhdWx0CiAKIAorZGVmIHNhZmVfaXNjbGFzcyhvYmopOgorICAg
ICIiIklnbm9yZSBhbnkgZXhjZXB0aW9uIHZpYSBpc2luc3RhbmNlIG9uIFB5dGhvbiAzLiIiIgor
ICAgIHRyeToKKyAgICAgICAgcmV0dXJuIGlzY2xhc3Mob2JqKQorICAgIGV4Y2VwdCBFeGNlcHRp
b246CisgICAgICAgIHJldHVybiBGYWxzZQorCisKIGRlZiBfaXNfdW5pdHRlc3RfdW5leHBlY3Rl
ZF9zdWNjZXNzX2FfZmFpbHVyZSgpOgogICAgICIiIlJldHVybiBpZiB0aGUgdGVzdCBzdWl0ZSBz
aG91bGQgZmFpbCBpZiBhbiBAZXhwZWN0ZWRGYWlsdXJlIHVuaXR0ZXN0IHRlc3QgUEFTU0VTLgog
CkBAIC0zMDEsNyArMzg0LDcgQEAgaWYgX1BZMzoKIGVsc2U6CiAKICAgICBkZWYgc2FmZV9zdHIo
dik6Ci0gICAgICAgICIiInJldHVybnMgdiBhcyBzdHJpbmcsIGNvbnZlcnRpbmcgdG8gYXNjaWkg
aWYgbmVjZXNzYXJ5IiIiCisgICAgICAgICIiInJldHVybnMgdiBhcyBzdHJpbmcsIGNvbnZlcnRp
bmcgdG8gdXRmLTggaWYgbmVjZXNzYXJ5IiIiCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJl
dHVybiBzdHIodikKICAgICAgICAgZXhjZXB0IFVuaWNvZGVFcnJvcjoKQEAgLTMxNCw3ICszOTcs
NiBAQCBlbHNlOgogQ09MTEVDVF9GQUtFTU9EVUxFX0FUVFJJQlVURVMgPSAoCiAgICAgIkNvbGxl
Y3RvciIsCiAgICAgIk1vZHVsZSIsCi0gICAgIkdlbmVyYXRvciIsCiAgICAgIkZ1bmN0aW9uIiwK
ICAgICAiSW5zdGFuY2UiLAogICAgICJTZXNzaW9uIiwKQEAgLTMzMSw4ICs0MTMsOCBAQCBkZWYg
X3NldHVwX2NvbGxlY3RfZmFrZW1vZHVsZSgpOgogCiAgICAgcHl0ZXN0LmNvbGxlY3QgPSBNb2R1
bGVUeXBlKCJweXRlc3QuY29sbGVjdCIpCiAgICAgcHl0ZXN0LmNvbGxlY3QuX19hbGxfXyA9IFtd
ICAjIHVzZWQgZm9yIHNldG5zCi0gICAgZm9yIGF0dHIgaW4gQ09MTEVDVF9GQUtFTU9EVUxFX0FU
VFJJQlVURVM6Ci0gICAgICAgIHNldGF0dHIocHl0ZXN0LmNvbGxlY3QsIGF0dHIsIGdldGF0dHIo
cHl0ZXN0LCBhdHRyKSkKKyAgICBmb3IgYXR0cmlidXRlIGluIENPTExFQ1RfRkFLRU1PRFVMRV9B
VFRSSUJVVEVTOgorICAgICAgICBzZXRhdHRyKHB5dGVzdC5jb2xsZWN0LCBhdHRyaWJ1dGUsIGdl
dGF0dHIocHl0ZXN0LCBhdHRyaWJ1dGUpKQogCiAKIGlmIF9QWTI6CkBAIC0zNDAsNyArNDIyLDYg
QEAgaWYgX1BZMjoKICAgICBmcm9tIHB5LmlvIGltcG9ydCBUZXh0SU8KIAogICAgIGNsYXNzIENh
cHR1cmVJTyhUZXh0SU8pOgotCiAgICAgICAgIEBwcm9wZXJ0eQogICAgICAgICBkZWYgZW5jb2Rp
bmcoc2VsZik6CiAgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLCAiX2VuY29kaW5nIiwg
IlVURi04IikKQEAgLTM1MCw3ICs0MzEsNiBAQCBlbHNlOgogICAgIGltcG9ydCBpbwogCiAgICAg
Y2xhc3MgQ2FwdHVyZUlPKGlvLlRleHRJT1dyYXBwZXIpOgotCiAgICAgICAgIGRlZiBfX2luaXRf
XyhzZWxmKToKICAgICAgICAgICAgIHN1cGVyKENhcHR1cmVJTywgc2VsZikuX19pbml0X18oCiAg
ICAgICAgICAgICAgICAgaW8uQnl0ZXNJTygpLCBlbmNvZGluZz0iVVRGLTgiLCBuZXdsaW5lPSIi
LCB3cml0ZV90aHJvdWdoPVRydWUKQEAgLTM2OSwzICs0NDksMjIgQEAgY2xhc3MgRnVuY2FyZ25h
bWVzQ29tcGF0QXR0cihvYmplY3QpOgogICAgIGRlZiBmdW5jYXJnbmFtZXMoc2VsZik6CiAgICAg
ICAgICIiIiBhbGlhcyBhdHRyaWJ1dGUgZm9yIGBgZml4dHVyZW5hbWVzYGAgZm9yIHByZS0yLjMg
Y29tcGF0aWJpbGl0eSIiIgogICAgICAgICByZXR1cm4gc2VsZi5maXh0dXJlbmFtZXMKKworCitp
ZiBzaXguUFkyOgorCisgICAgZGVmIGxydV9jYWNoZSgqXywgKipfXyk6CisgICAgICAgIGRlZiBk
ZWMoZm4pOgorICAgICAgICAgICAgcmV0dXJuIGZuCisKKyAgICAgICAgcmV0dXJuIGRlYworCisK
K2Vsc2U6CisgICAgZnJvbSBmdW5jdG9vbHMgaW1wb3J0IGxydV9jYWNoZSAgIyBub3FhOiBGNDAx
CisKKworaWYgZ2V0YXR0cihhdHRyLCAiX192ZXJzaW9uX2luZm9fXyIsICgpKSA+PSAoMTksIDIp
OgorICAgIEFUVFJTX0VRX0ZJRUxEID0gImVxIgorZWxzZToKKyAgICBBVFRSU19FUV9GSUVMRCA9
ICJjbXAiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcvX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcvX19pbml0X18ucHkKaW5kZXgg
MTEzNDhiODBkMGYwOTgzZTdkM2EyMGJhYTUzMGFkZDViZjlkZDk4Mi4uMDczN2ZmOWQ1MWM0ZDk4
MTQ3ZWQ4ZTY5ZmIwNGYxMWFiMmVhOWI1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3QvY29uZmlnL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Nv
bmZpZy9fX2luaXRfXy5weQpAQCAtMSw0NyArMSw1NCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KICIiIiBjb21tYW5kIGxpbmUgb3B0aW9ucywgaW5pLWZpbGUgYW5kIGNvbmZ0ZXN0LnB5IHBy
b2Nlc3NpbmcuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgY29weQoraW1w
b3J0IGluc3BlY3QKK2ltcG9ydCBvcwogaW1wb3J0IHNobGV4Ci1pbXBvcnQgdHJhY2ViYWNrCitp
bXBvcnQgc3lzCiBpbXBvcnQgdHlwZXMKIGltcG9ydCB3YXJuaW5ncwotaW1wb3J0IGNvcHkKLWlt
cG9ydCBzaXgKLWltcG9ydCBweQogCi0jIERPTid0IGltcG9ydCBweXRlc3QgaGVyZSBiZWNhdXNl
IGl0IGNhdXNlcyBpbXBvcnQgY3ljbGUgdHJvdWJsZXMKLWltcG9ydCBzeXMKLWltcG9ydCBvcwot
ZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBTa2lwcGVkCitpbXBvcnQgYXR0cgoraW1wb3J0
IHB5CitpbXBvcnQgc2l4Citmcm9tIHBhY2thZ2luZy52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCitm
cm9tIHBsdWdneSBpbXBvcnQgSG9va2ltcGxNYXJrZXIKK2Zyb20gcGx1Z2d5IGltcG9ydCBIb29r
c3BlY01hcmtlcgorZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1hbmFnZXIKIAogaW1wb3J0IF9w
eXRlc3QuX2NvZGUKLWltcG9ydCBfcHl0ZXN0Lmhvb2tzcGVjICAjIHRoZSBleHRlbnNpb24gcG9p
bnQgZGVmaW5pdGlvbnMKIGltcG9ydCBfcHl0ZXN0LmFzc2VydGlvbgotZnJvbSBwbHVnZ3kgaW1w
b3J0IFBsdWdpbk1hbmFnZXIsIEhvb2tpbXBsTWFya2VyLCBIb29rc3BlY01hcmtlcgoraW1wb3J0
IF9weXRlc3QuaG9va3NwZWMgICMgdGhlIGV4dGVuc2lvbiBwb2ludCBkZWZpbml0aW9ucworZnJv
bSAuZXhjZXB0aW9ucyBpbXBvcnQgUHJpbnRIZWxwCitmcm9tIC5leGNlcHRpb25zIGltcG9ydCBV
c2FnZUVycm9yCitmcm9tIC5maW5kcGF0aHMgaW1wb3J0IGRldGVybWluZV9zZXR1cAorZnJvbSAu
ZmluZHBhdGhzIGltcG9ydCBleGlzdHMKK2Zyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAor
ZnJvbSBfcHl0ZXN0Ll9jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvCitmcm9tIF9weXRlc3QuX2Nv
ZGUgaW1wb3J0IGZpbHRlcl90cmFjZWJhY2sKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGlt
cG9ydGxpYl9tZXRhZGF0YQorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgbHJ1X2NhY2hlCiBm
cm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBzYWZlX3N0cgotZnJvbSAuZXhjZXB0aW9ucyBpbXBv
cnQgVXNhZ2VFcnJvciwgUHJpbnRIZWxwCi1mcm9tIC5maW5kcGF0aHMgaW1wb3J0IGRldGVybWlu
ZV9zZXR1cCwgZXhpc3RzCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwKK2Zyb20g
X3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgU2tpcHBlZAorZnJvbSBfcHl0ZXN0LnBhdGhsaWIgaW1w
b3J0IFBhdGgKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3RDb25maWdX
YXJuaW5nCiAKIGhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoInB5dGVzdCIpCiBob29rc3BlYyA9
IEhvb2tzcGVjTWFya2VyKCJweXRlc3QiKQogCi0jIHB5dGVzdCBzdGFydHVwCi0jCi0KIAogY2xh
c3MgQ29uZnRlc3RJbXBvcnRGYWlsdXJlKEV4Y2VwdGlvbik6Ci0KICAgICBkZWYgX19pbml0X18o
c2VsZiwgcGF0aCwgZXhjaW5mbyk6CiAgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBw
YXRoLCBleGNpbmZvKQogICAgICAgICBzZWxmLnBhdGggPSBwYXRoCiAgICAgICAgIHNlbGYuZXhj
aW5mbyA9IGV4Y2luZm8KIAotICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAgICBldHlwZSwg
ZXZhbHVlLCBldGIgPSBzZWxmLmV4Y2luZm8KLSAgICAgICAgZm9ybWF0dGVkID0gdHJhY2ViYWNr
LmZvcm1hdF90YihldGIpCi0gICAgICAgICMgVGhlIGxldmVsIG9mIHRoZSB0cmFjZWJhY2tzIHdl
IHdhbnQgdG8gcHJpbnQgaXMgaGFuZCBjcmFmdGVkIDooCi0gICAgICAgIHJldHVybiByZXByKGV2
YWx1ZSkgKyAiXG4iICsgIiIuam9pbihmb3JtYXR0ZWRbMjpdKQotCiAKIGRlZiBtYWluKGFyZ3M9
Tm9uZSwgcGx1Z2lucz1Ob25lKToKICAgICAiIiIgcmV0dXJuIGV4aXQgY29kZSwgYWZ0ZXIgcGVy
Zm9ybWluZyBhbiBpbi1wcm9jZXNzIHRlc3QgcnVuLgpAQCAtNTEsMTQgKzU4LDI2IEBAIGRlZiBt
YWluKGFyZ3M9Tm9uZSwgcGx1Z2lucz1Ob25lKToKICAgICA6YXJnIHBsdWdpbnM6IGxpc3Qgb2Yg
cGx1Z2luIG9iamVjdHMgdG8gYmUgYXV0by1yZWdpc3RlcmVkIGR1cmluZwogICAgICAgICAgICAg
ICAgICAgaW5pdGlhbGl6YXRpb24uCiAgICAgIiIiCisgICAgZnJvbSBfcHl0ZXN0Lm1haW4gaW1w
b3J0IEVYSVRfVVNBR0VFUlJPUgorCiAgICAgdHJ5OgogICAgICAgICB0cnk6CiAgICAgICAgICAg
ICBjb25maWcgPSBfcHJlcGFyZWNvbmZpZyhhcmdzLCBwbHVnaW5zKQogICAgICAgICBleGNlcHQg
Q29uZnRlc3RJbXBvcnRGYWlsdXJlIGFzIGU6CisgICAgICAgICAgICBleGNfaW5mbyA9IEV4Y2Vw
dGlvbkluZm8oZS5leGNpbmZvKQogICAgICAgICAgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRl
cihzeXMuc3RkZXJyKQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gdHJhY2ViYWNrLmZvcm1hdF9l
eGNlcHRpb24oKmUuZXhjaW5mbyk6CisgICAgICAgICAgICB0dy5saW5lKAorICAgICAgICAgICAg
ICAgICJJbXBvcnRFcnJvciB3aGlsZSBsb2FkaW5nIGNvbmZ0ZXN0ICd7ZS5wYXRofScuIi5mb3Jt
YXQoZT1lKSwgcmVkPVRydWUKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGV4Y19pbmZvLnRy
YWNlYmFjayA9IGV4Y19pbmZvLnRyYWNlYmFjay5maWx0ZXIoZmlsdGVyX3RyYWNlYmFjaykKKyAg
ICAgICAgICAgIGV4Y19yZXByID0gKAorICAgICAgICAgICAgICAgIGV4Y19pbmZvLmdldHJlcHIo
c3R5bGU9InNob3J0IiwgY2hhaW49RmFsc2UpCisgICAgICAgICAgICAgICAgaWYgZXhjX2luZm8u
dHJhY2ViYWNrCisgICAgICAgICAgICAgICAgZWxzZSBleGNfaW5mby5leGNvbmx5KCkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIGZvcm1hdHRlZF90YiA9IHNhZmVfc3RyKGV4Y19yZXByKQor
ICAgICAgICAgICAgZm9yIGxpbmUgaW4gZm9ybWF0dGVkX3RiLnNwbGl0bGluZXMoKToKICAgICAg
ICAgICAgICAgICB0dy5saW5lKGxpbmUucnN0cmlwKCksIHJlZD1UcnVlKQotICAgICAgICAgICAg
dHcubGluZSgiRVJST1I6IGNvdWxkIG5vdCBsb2FkICVzXG4iICUgKGUucGF0aCwpLCByZWQ9VHJ1
ZSkKICAgICAgICAgICAgIHJldHVybiA0CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB0cnk6
CkBAIC02OSwxMCArODgsMTAgQEAgZGVmIG1haW4oYXJncz1Ob25lLCBwbHVnaW5zPU5vbmUpOgog
ICAgICAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKHN5cy5zdGRlcnIpCiAgICAgICAgIGZv
ciBtc2cgaW4gZS5hcmdzOgogICAgICAgICAgICAgdHcubGluZSgiRVJST1I6IHt9XG4iLmZvcm1h
dChtc2cpLCByZWQ9VHJ1ZSkKLSAgICAgICAgcmV0dXJuIDQKKyAgICAgICAgcmV0dXJuIEVYSVRf
VVNBR0VFUlJPUgogCiAKLWNsYXNzIGNtZGxpbmUob2JqZWN0KTogICMgTk9RQSBjb21wYXRpYmls
aXR5IG5hbWVzcGFjZQorY2xhc3MgY21kbGluZShvYmplY3QpOiAgIyBjb21wYXRpYmlsaXR5IG5h
bWVzcGFjZQogICAgIG1haW4gPSBzdGF0aWNtZXRob2QobWFpbikKIAogCkBAIC05OCwxMyArMTE3
LDE4IEBAIGRlZiBkaXJlY3RvcnlfYXJnKHBhdGgsIG9wdG5hbWUpOgogICAgIHJldHVybiBwYXRo
CiAKIAotZGVmYXVsdF9wbHVnaW5zID0gKAorIyBQbHVnaW5zIHRoYXQgY2Fubm90IGJlIGRpc2Fi
bGVkIHZpYSAiLXAgbm86WCIgY3VycmVudGx5LgorZXNzZW50aWFsX3BsdWdpbnMgPSAoCiAgICAg
Im1hcmsiLAogICAgICJtYWluIiwKLSAgICAidGVybWluYWwiLAogICAgICJydW5uZXIiLAotICAg
ICJweXRob24iLAogICAgICJmaXh0dXJlcyIsCisgICAgImhlbHBjb25maWciLCAgIyBQcm92aWRl
cyAtcC4KKykKKworZGVmYXVsdF9wbHVnaW5zID0gZXNzZW50aWFsX3BsdWdpbnMgKyAoCisgICAg
InB5dGhvbiIsCisgICAgInRlcm1pbmFsIiwKICAgICAiZGVidWdnaW5nIiwKICAgICAidW5pdHRl
c3QiLAogICAgICJjYXB0dXJlIiwKQEAgLTExMyw3ICsxMzcsNiBAQCBkZWZhdWx0X3BsdWdpbnMg
PSAoCiAgICAgIm1vbmtleXBhdGNoIiwKICAgICAicmVjd2FybiIsCiAgICAgInBhc3RlYmluIiwK
LSAgICAiaGVscGNvbmZpZyIsCiAgICAgIm5vc2UiLAogICAgICJhc3NlcnRpb24iLAogICAgICJq
dW5pdHhtbCIsCkBAIC0xMjMsMTkgKzE0NiwzMCBAQCBkZWZhdWx0X3BsdWdpbnMgPSAoCiAgICAg
ImZyZWV6ZV9zdXBwb3J0IiwKICAgICAic2V0dXBvbmx5IiwKICAgICAic2V0dXBwbGFuIiwKKyAg
ICAic3RlcHdpc2UiLAogICAgICJ3YXJuaW5ncyIsCiAgICAgImxvZ2dpbmciLAorICAgICJyZXBv
cnRzIiwKICkKIAotCiBidWlsdGluX3BsdWdpbnMgPSBzZXQoZGVmYXVsdF9wbHVnaW5zKQogYnVp
bHRpbl9wbHVnaW5zLmFkZCgicHl0ZXN0ZXIiKQogCiAKLWRlZiBnZXRfY29uZmlnKCk6CitkZWYg
Z2V0X2NvbmZpZyhhcmdzPU5vbmUsIHBsdWdpbnM9Tm9uZSk6CiAgICAgIyBzdWJzZXF1ZW50IGNh
bGxzIHRvIG1haW4gd2lsbCBjcmVhdGUgYSBmcmVzaCBpbnN0YW5jZQogICAgIHBsdWdpbm1hbmFn
ZXIgPSBQeXRlc3RQbHVnaW5NYW5hZ2VyKCkKLSAgICBjb25maWcgPSBDb25maWcocGx1Z2lubWFu
YWdlcikKKyAgICBjb25maWcgPSBDb25maWcoCisgICAgICAgIHBsdWdpbm1hbmFnZXIsCisgICAg
ICAgIGludm9jYXRpb25fcGFyYW1zPUNvbmZpZy5JbnZvY2F0aW9uUGFyYW1zKAorICAgICAgICAg
ICAgYXJncz1hcmdzLCBwbHVnaW5zPXBsdWdpbnMsIGRpcj1QYXRoKCkucmVzb2x2ZSgpCisgICAg
ICAgICksCisgICAgKQorCisgICAgaWYgYXJncyBpcyBub3QgTm9uZToKKyAgICAgICAgIyBIYW5k
bGUgYW55ICItcCBubzpwbHVnaW4iIGFyZ3MuCisgICAgICAgIHBsdWdpbm1hbmFnZXIuY29uc2lk
ZXJfcHJlcGFyc2UoYXJncykKKwogICAgIGZvciBzcGVjIGluIGRlZmF1bHRfcGx1Z2luczoKICAg
ICAgICAgcGx1Z2lubWFuYWdlci5pbXBvcnRfcGx1Z2luKHNwZWMpCiAgICAgcmV0dXJuIGNvbmZp
ZwpAQCAtMTYwLDEzICsxOTQsMTAgQEAgZGVmIF9wcmVwYXJlY29uZmlnKGFyZ3M9Tm9uZSwgcGx1
Z2lucz1Ob25lKToKICAgICBlbGlmIGlzaW5zdGFuY2UoYXJncywgcHkucGF0aC5sb2NhbCk6CiAg
ICAgICAgIGFyZ3MgPSBbc3RyKGFyZ3MpXQogICAgIGVsaWYgbm90IGlzaW5zdGFuY2UoYXJncywg
KHR1cGxlLCBsaXN0KSk6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3MsIHN0cik6Ci0g
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJub3QgYSBzdHJpbmcgb3IgYXJndW1lbnQgbGlz
dDogJXIiICUgKGFyZ3MsKSkKLSAgICAgICAgYXJncyA9IHNobGV4LnNwbGl0KGFyZ3MsIHBvc2l4
PXN5cy5wbGF0Zm9ybSAhPSAid2luMzIiKQotICAgICAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGRl
cHJlY2F0ZWQKKyAgICAgICAgbXNnID0gImBhcmdzYCBwYXJhbWV0ZXIgZXhwZWN0ZWQgdG8gYmUg
YSBsaXN0IG9yIHR1cGxlIG9mIHN0cmluZ3MsIGdvdDogeyFyfSAodHlwZToge30pIgorICAgICAg
ICByYWlzZSBUeXBlRXJyb3IobXNnLmZvcm1hdChhcmdzLCB0eXBlKGFyZ3MpKSkKIAotICAgICAg
ICB3YXJuaW5nID0gZGVwcmVjYXRlZC5NQUlOX1NUUl9BUkdTCi0gICAgY29uZmlnID0gZ2V0X2Nv
bmZpZygpCisgICAgY29uZmlnID0gZ2V0X2NvbmZpZyhhcmdzLCBwbHVnaW5zKQogICAgIHBsdWdp
bm1hbmFnZXIgPSBjb25maWcucGx1Z2lubWFuYWdlcgogICAgIHRyeToKICAgICAgICAgaWYgcGx1
Z2luczoKQEAgLTE3Niw3ICsyMDcsOSBAQCBkZWYgX3ByZXBhcmVjb25maWcoYXJncz1Ob25lLCBw
bHVnaW5zPU5vbmUpOgogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAg
IHBsdWdpbm1hbmFnZXIucmVnaXN0ZXIocGx1Z2luKQogICAgICAgICBpZiB3YXJuaW5nOgotICAg
ICAgICAgICAgY29uZmlnLndhcm4oIkMxIiwgd2FybmluZykKKyAgICAgICAgICAgIGZyb20gX3B5
dGVzdC53YXJuaW5ncyBpbXBvcnQgX2lzc3VlX3dhcm5pbmdfY2FwdHVyZWQKKworICAgICAgICAg
ICAgX2lzc3VlX3dhcm5pbmdfY2FwdHVyZWQod2FybmluZywgaG9vaz1jb25maWcuaG9vaywgc3Rh
Y2tsZXZlbD00KQogICAgICAgICByZXR1cm4gcGx1Z2lubWFuYWdlci5ob29rLnB5dGVzdF9jbWRs
aW5lX3BhcnNlKAogICAgICAgICAgICAgcGx1Z2lubWFuYWdlcj1wbHVnaW5tYW5hZ2VyLCBhcmdz
PWFyZ3MKICAgICAgICAgKQpAQCAtMjAwLDcgKzIzMyw3IEBAIGNsYXNzIFB5dGVzdFBsdWdpbk1h
bmFnZXIoUGx1Z2luTWFuYWdlcik6CiAgICAgICAgIHNlbGYuX2NvbmZ0ZXN0X3BsdWdpbnMgPSBz
ZXQoKQogCiAgICAgICAgICMgc3RhdGUgcmVsYXRlZCB0byBsb2NhbCBjb25mdGVzdCBwbHVnaW5z
Ci0gICAgICAgIHNlbGYuX3BhdGgyY29uZm1vZHMgPSB7fQorICAgICAgICBzZWxmLl9kaXJwYXRo
MmNvbmZtb2RzID0ge30KICAgICAgICAgc2VsZi5fY29uZnRlc3RwYXRoMm1vZCA9IHt9CiAgICAg
ICAgIHNlbGYuX2NvbmZjdXRkaXIgPSBOb25lCiAgICAgICAgIHNlbGYuX25vY29uZnRlc3QgPSBG
YWxzZQpAQCAtMjMwLDE0ICsyNjMsNyBAQCBjbGFzcyBQeXRlc3RQbHVnaW5NYW5hZ2VyKFBsdWdp
bk1hbmFnZXIpOgogICAgICAgICBVc2UgOnB5Om1ldGg6YHBsdWdneS5QbHVnaW5NYW5hZ2VyLmFk
ZF9ob29rc3BlY3MgPFBsdWdpbk1hbmFnZXIuYWRkX2hvb2tzcGVjcz5gCiAgICAgICAgIGluc3Rl
YWQuCiAgICAgICAgICIiIgotICAgICAgICB3YXJuaW5nID0gZGljdCgKLSAgICAgICAgICAgIGNv
ZGU9IkkyIiwKLSAgICAgICAgICAgIGZzbG9jYXRpb249X3B5dGVzdC5fY29kZS5nZXRmc2xpbmVu
byhzeXMuX2dldGZyYW1lKDEpKSwKLSAgICAgICAgICAgIG5vZGVpZD1Ob25lLAotICAgICAgICAg
ICAgbWVzc2FnZT0idXNlIHBsdWdpbm1hbmFnZXIuYWRkX2hvb2tzcGVjcyBpbnN0ZWFkIG9mICIK
LSAgICAgICAgICAgICJkZXByZWNhdGVkIGFkZGhvb2tzKCkgbWV0aG9kLiIsCi0gICAgICAgICkK
LSAgICAgICAgc2VsZi5fd2Fybih3YXJuaW5nKQorICAgICAgICB3YXJuaW5ncy53YXJuKGRlcHJl
Y2F0ZWQuUExVR0lOX01BTkFHRVJfQURESE9PS1MsIHN0YWNrbGV2ZWw9MikKICAgICAgICAgcmV0
dXJuIHNlbGYuYWRkX2hvb2tzcGVjcyhtb2R1bGVfb3JfY2xhc3MpCiAKICAgICBkZWYgcGFyc2Vf
aG9va2ltcGxfb3B0cyhzZWxmLCBwbHVnaW4sIG5hbWUpOgpAQCAtMjQ2LDIwICsyNzIsMjcgQEAg
Y2xhc3MgUHl0ZXN0UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2VyKToKICAgICAgICAgIyAoc2Vl
IGlzc3VlICMxMDczKQogICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCJweXRlc3RfIik6
CiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgIyBpZ25vcmUgc29tZSBoaXN0b3JpYyBzcGVj
aWFsIG5hbWVzIHdoaWNoIGNhbiBub3QgYmUgaG9va3MgYW55d2F5Ci0gICAgICAgIGlmIG5hbWUg
PT0gInB5dGVzdF9wbHVnaW5zIiBvciBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF9mdW5jYXJnX18i
KToKKyAgICAgICAgIyBpZ25vcmUgbmFtZXMgd2hpY2ggY2FuIG5vdCBiZSBob29rcworICAgICAg
ICBpZiBuYW1lID09ICJweXRlc3RfcGx1Z2lucyI6CiAgICAgICAgICAgICByZXR1cm4KIAogICAg
ICAgICBtZXRob2QgPSBnZXRhdHRyKHBsdWdpbiwgbmFtZSkKICAgICAgICAgb3B0cyA9IHN1cGVy
KFB5dGVzdFBsdWdpbk1hbmFnZXIsIHNlbGYpLnBhcnNlX2hvb2tpbXBsX29wdHMocGx1Z2luLCBu
YW1lKQogCisgICAgICAgICMgY29uc2lkZXIgb25seSBhY3R1YWwgZnVuY3Rpb25zIGZvciBob29r
cyAoIzM3NzUpCisgICAgICAgIGlmIG5vdCBpbnNwZWN0Lmlzcm91dGluZShtZXRob2QpOgorICAg
ICAgICAgICAgcmV0dXJuCisKICAgICAgICAgIyBjb2xsZWN0IHVubWFya2VkIGhvb2tzIGFzIGxv
bmcgYXMgdGhleSBoYXZlIHRoZSBgcHl0ZXN0XycgcHJlZml4CiAgICAgICAgIGlmIG9wdHMgaXMg
Tm9uZSBhbmQgbmFtZS5zdGFydHN3aXRoKCJweXRlc3RfIik6CiAgICAgICAgICAgICBvcHRzID0g
e30KLQogICAgICAgICBpZiBvcHRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyBUT0RPOiBE
ZXByZWNhdGlvbldhcm5pbmcsIHBlb3BsZSBzaG91bGQgdXNlIGhvb2tpbXBsCisgICAgICAgICAg
ICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDU2MgorICAg
ICAgICAgICAga25vd25fbWFya3MgPSB7bS5uYW1lIGZvciBtIGluIGdldGF0dHIobWV0aG9kLCAi
cHl0ZXN0bWFyayIsIFtdKX0KKwogICAgICAgICAgICAgZm9yIG5hbWUgaW4gKCJ0cnlmaXJzdCIs
ICJ0cnlsYXN0IiwgIm9wdGlvbmFsaG9vayIsICJob29rd3JhcHBlciIpOgotICAgICAgICAgICAg
ICAgIG9wdHMuc2V0ZGVmYXVsdChuYW1lLCBoYXNhdHRyKG1ldGhvZCwgbmFtZSkpCisgICAgICAg
ICAgICAgICAgb3B0cy5zZXRkZWZhdWx0KG5hbWUsIGhhc2F0dHIobWV0aG9kLCBuYW1lKSBvciBu
YW1lIGluIGtub3duX21hcmtzKQogICAgICAgICByZXR1cm4gb3B0cwogCiAgICAgZGVmIHBhcnNl
X2hvb2tzcGVjX29wdHMoc2VsZiwgbW9kdWxlX29yX2NsYXNzLCBuYW1lKToKQEAgLTI2OCwxOSAr
MzAxLDI3IEBAIGNsYXNzIFB5dGVzdFBsdWdpbk1hbmFnZXIoUGx1Z2luTWFuYWdlcik6CiAgICAg
ICAgICkKICAgICAgICAgaWYgb3B0cyBpcyBOb25lOgogICAgICAgICAgICAgbWV0aG9kID0gZ2V0
YXR0cihtb2R1bGVfb3JfY2xhc3MsIG5hbWUpCisKICAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRz
d2l0aCgicHl0ZXN0XyIpOgorICAgICAgICAgICAgICAgICMgdG9kbzogZGVwcmVjYXRlIGhvb2tz
cGVjIGhhY2tzCisgICAgICAgICAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzQ1NjIKKyAgICAgICAgICAgICAgICBrbm93bl9tYXJrcyA9IHttLm5h
bWUgZm9yIG0gaW4gZ2V0YXR0cihtZXRob2QsICJweXRlc3RtYXJrIiwgW10pfQogICAgICAgICAg
ICAgICAgIG9wdHMgPSB7Ci0gICAgICAgICAgICAgICAgICAgICJmaXJzdHJlc3VsdCI6IGhhc2F0
dHIobWV0aG9kLCAiZmlyc3RyZXN1bHQiKSwKLSAgICAgICAgICAgICAgICAgICAgImhpc3Rvcmlj
IjogaGFzYXR0cihtZXRob2QsICJoaXN0b3JpYyIpLAorICAgICAgICAgICAgICAgICAgICAiZmly
c3RyZXN1bHQiOiBoYXNhdHRyKG1ldGhvZCwgImZpcnN0cmVzdWx0IikKKyAgICAgICAgICAgICAg
ICAgICAgb3IgImZpcnN0cmVzdWx0IiBpbiBrbm93bl9tYXJrcywKKyAgICAgICAgICAgICAgICAg
ICAgImhpc3RvcmljIjogaGFzYXR0cihtZXRob2QsICJoaXN0b3JpYyIpCisgICAgICAgICAgICAg
ICAgICAgIG9yICJoaXN0b3JpYyIgaW4ga25vd25fbWFya3MsCiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gb3B0cwogCiAgICAgZGVmIHJlZ2lzdGVyKHNlbGYsIHBsdWdpbiwgbmFt
ZT1Ob25lKToKICAgICAgICAgaWYgbmFtZSBpbiBbInB5dGVzdF9jYXRjaGxvZyIsICJweXRlc3Rf
Y2FwdHVyZWxvZyJdOgotICAgICAgICAgICAgc2VsZi5fd2FybigKLSAgICAgICAgICAgICAgICAi
e30gcGx1Z2luIGhhcyBiZWVuIG1lcmdlZCBpbnRvIHRoZSBjb3JlLCAiCi0gICAgICAgICAgICAg
ICAgInBsZWFzZSByZW1vdmUgaXQgZnJvbSB5b3VyIHJlcXVpcmVtZW50cy4iLmZvcm1hdCgKLSAg
ICAgICAgICAgICAgICAgICAgbmFtZS5yZXBsYWNlKCJfIiwgIi0iKQorICAgICAgICAgICAgd2Fy
bmluZ3Mud2FybigKKyAgICAgICAgICAgICAgICBQeXRlc3RDb25maWdXYXJuaW5nKAorICAgICAg
ICAgICAgICAgICAgICAie30gcGx1Z2luIGhhcyBiZWVuIG1lcmdlZCBpbnRvIHRoZSBjb3JlLCAi
CisgICAgICAgICAgICAgICAgICAgICJwbGVhc2UgcmVtb3ZlIGl0IGZyb20geW91ciByZXF1aXJl
bWVudHMuIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLnJlcGxhY2UoIl8i
LCAiLSIpCisgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgICApCiAgICAgICAgICAgICByZXR1cm4KQEAgLTMxNywxMiArMzU4LDYgQEAgY2xhc3MgUHl0
ZXN0UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2VyKToKICAgICAgICAgKQogICAgICAgICBzZWxm
Ll9jb25maWd1cmVkID0gVHJ1ZQogCi0gICAgZGVmIF93YXJuKHNlbGYsIG1lc3NhZ2UpOgotICAg
ICAgICBrd2FyZ3MgPSBtZXNzYWdlIGlmIGlzaW5zdGFuY2UobWVzc2FnZSwgZGljdCkgZWxzZSB7
Ci0gICAgICAgICAgICAiY29kZSI6ICJJMSIsICJtZXNzYWdlIjogbWVzc2FnZSwgImZzbG9jYXRp
b24iOiBOb25lLCAibm9kZWlkIjogTm9uZQotICAgICAgICB9Ci0gICAgICAgIHNlbGYuaG9vay5w
eXRlc3RfbG9nd2FybmluZy5jYWxsX2hpc3RvcmljKGt3YXJncz1rd2FyZ3MpCi0KICAgICAjCiAg
ICAgIyBpbnRlcm5hbCBBUEkgZm9yIGxvY2FsIGNvbmZ0ZXN0IHBsdWdpbiBoYW5kbGluZwogICAg
ICMKQEAgLTMzNSwxMCArMzcwLDEzIEBAIGNsYXNzIFB5dGVzdFBsdWdpbk1hbmFnZXIoUGx1Z2lu
TWFuYWdlcik6CiAgICAgICAgICAgICBoZXJlLgogICAgICAgICAiIiIKICAgICAgICAgY3VycmVu
dCA9IHB5LnBhdGgubG9jYWwoKQotICAgICAgICBzZWxmLl9jb25mY3V0ZGlyID0gY3VycmVudC5q
b2luKAotICAgICAgICAgICAgbmFtZXNwYWNlLmNvbmZjdXRkaXIsIGFicz1UcnVlCi0gICAgICAg
ICkgaWYgbmFtZXNwYWNlLmNvbmZjdXRkaXIgZWxzZSBOb25lCisgICAgICAgIHNlbGYuX2NvbmZj
dXRkaXIgPSAoCisgICAgICAgICAgICBjdXJyZW50LmpvaW4obmFtZXNwYWNlLmNvbmZjdXRkaXIs
IGFicz1UcnVlKQorICAgICAgICAgICAgaWYgbmFtZXNwYWNlLmNvbmZjdXRkaXIKKyAgICAgICAg
ICAgIGVsc2UgTm9uZQorICAgICAgICApCiAgICAgICAgIHNlbGYuX25vY29uZnRlc3QgPSBuYW1l
c3BhY2Uubm9jb25mdGVzdAorICAgICAgICBzZWxmLl91c2luZ19weWFyZ3MgPSBuYW1lc3BhY2Uu
cHlhcmdzCiAgICAgICAgIHRlc3RwYXRocyA9IG5hbWVzcGFjZS5maWxlX29yX2RpcgogICAgICAg
ICBmb3VuZGFuY2hvciA9IEZhbHNlCiAgICAgICAgIGZvciBwYXRoIGluIHRlc3RwYXRoczoKQEAg
LTM2MiwyOSArNDAwLDM4IEBAIGNsYXNzIFB5dGVzdFBsdWdpbk1hbmFnZXIoUGx1Z2luTWFuYWdl
cik6CiAgICAgICAgICAgICAgICAgaWYgeC5jaGVjayhkaXI9MSk6CiAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2dldGNvbmZ0ZXN0bW9kdWxlcyh4KQogCisgICAgQGxydV9jYWNoZShtYXhzaXpl
PTEyOCkKICAgICBkZWYgX2dldGNvbmZ0ZXN0bW9kdWxlcyhzZWxmLCBwYXRoKToKICAgICAgICAg
aWYgc2VsZi5fbm9jb25mdGVzdDoKICAgICAgICAgICAgIHJldHVybiBbXQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcGF0aDJjb25mbW9kc1twYXRoXQotICAgICAgICBl
eGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBpZiBwYXRoLmlzZmlsZSgpOgotICAgICAgICAg
ICAgICAgIGNsaXN0ID0gc2VsZi5fZ2V0Y29uZnRlc3Rtb2R1bGVzKHBhdGguZGlycGF0aCgpKQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIFhYWCB0aGVzZSBkYXlzIHdlIG1h
eSByYXRoZXIgd2FudCB0byB1c2UgY29uZmlnLnJvb3RkaXIKLSAgICAgICAgICAgICAgICAjIGFu
ZCBhbGxvdyB1c2VycyB0byBvcHQgaW50byBsb29raW5nIGludG8gdGhlIHJvb3RkaXIgcGFyZW50
Ci0gICAgICAgICAgICAgICAgIyBkaXJlY3RvcmllcyBpbnN0ZWFkIG9mIHJlcXVpcmluZyB0byBz
cGVjaWZ5IGNvbmZjdXRkaXIKLSAgICAgICAgICAgICAgICBjbGlzdCA9IFtdCi0gICAgICAgICAg
ICAgICAgZm9yIHBhcmVudCBpbiBwYXRoLnBhcnRzKCk6Ci0gICAgICAgICAgICAgICAgICAgIGlm
IHNlbGYuX2NvbmZjdXRkaXIgYW5kIHNlbGYuX2NvbmZjdXRkaXIucmVsdG8ocGFyZW50KToKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgICAgIGNvbmZ0
ZXN0cGF0aCA9IHBhcmVudC5qb2luKCJjb25mdGVzdC5weSIpCi0gICAgICAgICAgICAgICAgICAg
IGlmIGNvbmZ0ZXN0cGF0aC5pc2ZpbGUoKToKLSAgICAgICAgICAgICAgICAgICAgICAgIG1vZCA9
IHNlbGYuX2ltcG9ydGNvbmZ0ZXN0KGNvbmZ0ZXN0cGF0aCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNsaXN0LmFwcGVuZChtb2QpCi0KLSAgICAgICAgICAgIHNlbGYuX3BhdGgyY29uZm1vZHNb
cGF0aF0gPSBjbGlzdAotICAgICAgICAgICAgcmV0dXJuIGNsaXN0CisKKyAgICAgICAgaWYgcGF0
aC5pc2ZpbGUoKToKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhdGguZGlycGF0aCgpCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXRoCisKKyAgICAgICAgaWYgc2l4
LlBZMjogICMgcHkyIGlzIG5vdCB1c2luZyBscnVfY2FjaGUuCisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2RpcnBhdGgyY29uZm1vZHNbZGlyZWN0b3J5XQor
ICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAg
ICAgICAjIFhYWCB0aGVzZSBkYXlzIHdlIG1heSByYXRoZXIgd2FudCB0byB1c2UgY29uZmlnLnJv
b3RkaXIKKyAgICAgICAgIyBhbmQgYWxsb3cgdXNlcnMgdG8gb3B0IGludG8gbG9va2luZyBpbnRv
IHRoZSByb290ZGlyIHBhcmVudAorICAgICAgICAjIGRpcmVjdG9yaWVzIGluc3RlYWQgb2YgcmVx
dWlyaW5nIHRvIHNwZWNpZnkgY29uZmN1dGRpcgorICAgICAgICBjbGlzdCA9IFtdCisgICAgICAg
IGZvciBwYXJlbnQgaW4gZGlyZWN0b3J5LnJlYWxwYXRoKCkucGFydHMoKToKKyAgICAgICAgICAg
IGlmIHNlbGYuX2NvbmZjdXRkaXIgYW5kIHNlbGYuX2NvbmZjdXRkaXIucmVsdG8ocGFyZW50KToK
KyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgY29uZnRlc3RwYXRoID0gcGFy
ZW50LmpvaW4oImNvbmZ0ZXN0LnB5IikKKyAgICAgICAgICAgIGlmIGNvbmZ0ZXN0cGF0aC5pc2Zp
bGUoKToKKyAgICAgICAgICAgICAgICAjIFVzZSByZWFscGF0aCB0byBhdm9pZCBsb2FkaW5nIHRo
ZSBzYW1lIGNvbmZ0ZXN0IHR3aWNlCisgICAgICAgICAgICAgICAgIyB3aXRoIGJ1aWxkIHN5c3Rl
bXMgdGhhdCBjcmVhdGUgYnVpbGQgZGlyZWN0b3JpZXMgY29udGFpbmluZworICAgICAgICAgICAg
ICAgICMgc3ltbGlua3MgdG8gYWN0dWFsIGZpbGVzLgorICAgICAgICAgICAgICAgIG1vZCA9IHNl
bGYuX2ltcG9ydGNvbmZ0ZXN0KGNvbmZ0ZXN0cGF0aC5yZWFscGF0aCgpKQorICAgICAgICAgICAg
ICAgIGNsaXN0LmFwcGVuZChtb2QpCisgICAgICAgIHNlbGYuX2RpcnBhdGgyY29uZm1vZHNbZGly
ZWN0b3J5XSA9IGNsaXN0CisgICAgICAgIHJldHVybiBjbGlzdAogCiAgICAgZGVmIF9yZ2V0X3dp
dGhfY29uZm1vZChzZWxmLCBuYW1lLCBwYXRoKToKICAgICAgICAgbW9kdWxlcyA9IHNlbGYuX2dl
dGNvbmZ0ZXN0bW9kdWxlcyhwYXRoKQpAQCAtNDA0LDE4ICs0NTEsMjkgQEAgY2xhc3MgUHl0ZXN0
UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2VyKToKICAgICAgICAgICAgICAgICBfZW5zdXJlX3Jl
bW92ZWRfc3lzbW9kdWxlKGNvbmZ0ZXN0cGF0aC5wdXJlYmFzZW5hbWUpCiAgICAgICAgICAgICB0
cnk6CiAgICAgICAgICAgICAgICAgbW9kID0gY29uZnRlc3RwYXRoLnB5aW1wb3J0KCkKLSAgICAg
ICAgICAgICAgICBpZiBoYXNhdHRyKG1vZCwgInB5dGVzdF9wbHVnaW5zIikgYW5kIHNlbGYuX2Nv
bmZpZ3VyZWQ6Ci0gICAgICAgICAgICAgICAgICAgIGZyb20gX3B5dGVzdC5kZXByZWNhdGVkIGlt
cG9ydCBQWVRFU1RfUExVR0lOU19GUk9NX05PTl9UT1BfTEVWRUxfQ09ORlRFU1QKKyAgICAgICAg
ICAgICAgICBpZiAoCisgICAgICAgICAgICAgICAgICAgIGhhc2F0dHIobW9kLCAicHl0ZXN0X3Bs
dWdpbnMiKQorICAgICAgICAgICAgICAgICAgICBhbmQgc2VsZi5fY29uZmlndXJlZAorICAgICAg
ICAgICAgICAgICAgICBhbmQgbm90IHNlbGYuX3VzaW5nX3B5YXJncworICAgICAgICAgICAgICAg
ICk6CisgICAgICAgICAgICAgICAgICAgIGZyb20gX3B5dGVzdC5kZXByZWNhdGVkIGltcG9ydCAo
CisgICAgICAgICAgICAgICAgICAgICAgICBQWVRFU1RfUExVR0lOU19GUk9NX05PTl9UT1BfTEVW
RUxfQ09ORlRFU1QsCisgICAgICAgICAgICAgICAgICAgICkKIAotICAgICAgICAgICAgICAgICAg
ICB3YXJuaW5ncy53YXJuKFBZVEVTVF9QTFVHSU5TX0ZST01fTk9OX1RPUF9MRVZFTF9DT05GVEVT
VCkKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgKKyAgICAgICAgICAgICAgICAgICAgICAgIFBZ
VEVTVF9QTFVHSU5TX0ZST01fTk9OX1RPUF9MRVZFTF9DT05GVEVTVC5mb3JtYXQoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uZnRlc3RwYXRoLCBzZWxmLl9jb25mY3V0ZGlyCisgICAg
ICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgcHl0cmFjZT1G
YWxzZSwKKyAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKICAgICAgICAgICAgICAgICByYWlzZSBDb25mdGVzdEltcG9ydEZhaWx1cmUoY29uZnRlc3Rw
YXRoLCBzeXMuZXhjX2luZm8oKSkKIAogICAgICAgICAgICAgc2VsZi5fY29uZnRlc3RfcGx1Z2lu
cy5hZGQobW9kKQogICAgICAgICAgICAgc2VsZi5fY29uZnRlc3RwYXRoMm1vZFtjb25mdGVzdHBh
dGhdID0gbW9kCiAgICAgICAgICAgICBkaXJwYXRoID0gY29uZnRlc3RwYXRoLmRpcnBhdGgoKQot
ICAgICAgICAgICAgaWYgZGlycGF0aCBpbiBzZWxmLl9wYXRoMmNvbmZtb2RzOgotICAgICAgICAg
ICAgICAgIGZvciBwYXRoLCBtb2RzIGluIHNlbGYuX3BhdGgyY29uZm1vZHMuaXRlbXMoKToKKyAg
ICAgICAgICAgIGlmIGRpcnBhdGggaW4gc2VsZi5fZGlycGF0aDJjb25mbW9kczoKKyAgICAgICAg
ICAgICAgICBmb3IgcGF0aCwgbW9kcyBpbiBzZWxmLl9kaXJwYXRoMmNvbmZtb2RzLml0ZW1zKCk6
CiAgICAgICAgICAgICAgICAgICAgIGlmIHBhdGggYW5kIHBhdGgucmVsdG8oZGlycGF0aCkgb3Ig
cGF0aCA9PSBkaXJwYXRoOgogICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG1vZCBub3Qg
aW4gbW9kcwogICAgICAgICAgICAgICAgICAgICAgICAgbW9kcy5hcHBlbmQobW9kKQpAQCAtNDI5
LDE4ICs0ODcsNDggQEAgY2xhc3MgUHl0ZXN0UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2VyKToK
ICAgICAjCiAKICAgICBkZWYgY29uc2lkZXJfcHJlcGFyc2Uoc2VsZiwgYXJncyk6Ci0gICAgICAg
IGZvciBvcHQxLCBvcHQyIGluIHppcChhcmdzLCBhcmdzWzE6XSk6Ci0gICAgICAgICAgICBpZiBv
cHQxID09ICItcCI6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb25zaWRlcl9wbHVnaW5hcmcob3B0
MikKKyAgICAgICAgaSA9IDAKKyAgICAgICAgbiA9IGxlbihhcmdzKQorICAgICAgICB3aGlsZSBp
IDwgbjoKKyAgICAgICAgICAgIG9wdCA9IGFyZ3NbaV0KKyAgICAgICAgICAgIGkgKz0gMQorICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShvcHQsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAg
ICAgICAgIGlmIG9wdCA9PSAiLXAiOgorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJnID0gYXJnc1tpXQorICAgICAgICAgICAgICAgICAgICBleGNl
cHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAg
ICAgICAgICAgICBpICs9IDEKKyAgICAgICAgICAgICAgICBlbGlmIG9wdC5zdGFydHN3aXRoKCIt
cCIpOgorICAgICAgICAgICAgICAgICAgICBwYXJnID0gb3B0WzI6XQorICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgc2Vs
Zi5jb25zaWRlcl9wbHVnaW5hcmcocGFyZykKIAogICAgIGRlZiBjb25zaWRlcl9wbHVnaW5hcmco
c2VsZiwgYXJnKToKICAgICAgICAgaWYgYXJnLnN0YXJ0c3dpdGgoIm5vOiIpOgogICAgICAgICAg
ICAgbmFtZSA9IGFyZ1szOl0KKyAgICAgICAgICAgIGlmIG5hbWUgaW4gZXNzZW50aWFsX3BsdWdp
bnM6CisgICAgICAgICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigicGx1Z2luICVzIGNhbm5vdCBi
ZSBkaXNhYmxlZCIgJSBuYW1lKQorCisgICAgICAgICAgICAjIFBSICM0MzA0IDogcmVtb3ZlIHN0
ZXB3aXNlIGlmIGNhY2hlcHJvdmlkZXIgaXMgYmxvY2tlZAorICAgICAgICAgICAgaWYgbmFtZSA9
PSAiY2FjaGVwcm92aWRlciI6CisgICAgICAgICAgICAgICAgc2VsZi5zZXRfYmxvY2tlZCgic3Rl
cHdpc2UiKQorICAgICAgICAgICAgICAgIHNlbGYuc2V0X2Jsb2NrZWQoInB5dGVzdF9zdGVwd2lz
ZSIpCisKICAgICAgICAgICAgIHNlbGYuc2V0X2Jsb2NrZWQobmFtZSkKICAgICAgICAgICAgIGlm
IG5vdCBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF8iKToKICAgICAgICAgICAgICAgICBzZWxmLnNl
dF9ibG9ja2VkKCJweXRlc3RfIiArIG5hbWUpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz
ZWxmLmltcG9ydF9wbHVnaW4oYXJnKQorICAgICAgICAgICAgbmFtZSA9IGFyZworICAgICAgICAg
ICAgIyBVbmJsb2NrIHRoZSBwbHVnaW4uICBOb25lIGluZGljYXRlcyB0aGF0IGl0IGhhcyBiZWVu
IGJsb2NrZWQuCisgICAgICAgICAgICAjIFRoZXJlIGlzIG5vIGludGVyZmFjZSB3aXRoIHBsdWdn
eSBmb3IgdGhpcy4KKyAgICAgICAgICAgIGlmIHNlbGYuX25hbWUycGx1Z2luLmdldChuYW1lLCAt
MSkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBkZWwgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0K
KyAgICAgICAgICAgIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF8iKToKKyAgICAgICAg
ICAgICAgICBpZiBzZWxmLl9uYW1lMnBsdWdpbi5nZXQoInB5dGVzdF8iICsgbmFtZSwgLTEpIGlz
IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGRlbCBzZWxmLl9uYW1lMnBsdWdpblsicHl0ZXN0
XyIgKyBuYW1lXQorICAgICAgICAgICAgc2VsZi5pbXBvcnRfcGx1Z2luKGFyZywgY29uc2lkZXJf
ZW50cnlfcG9pbnRzPVRydWUpCiAKICAgICBkZWYgY29uc2lkZXJfY29uZnRlc3Qoc2VsZiwgY29u
ZnRlc3Rtb2R1bGUpOgogICAgICAgICBzZWxmLnJlZ2lzdGVyKGNvbmZ0ZXN0bW9kdWxlLCBuYW1l
PWNvbmZ0ZXN0bW9kdWxlLl9fZmlsZV9fKQpAQCAtNDU2LDM1ICs1NDQsNTAgQEAgY2xhc3MgUHl0
ZXN0UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2VyKToKICAgICAgICAgZm9yIGltcG9ydF9zcGVj
IGluIHBsdWdpbnM6CiAgICAgICAgICAgICBzZWxmLmltcG9ydF9wbHVnaW4oaW1wb3J0X3NwZWMp
CiAKLSAgICBkZWYgaW1wb3J0X3BsdWdpbihzZWxmLCBtb2RuYW1lKToKKyAgICBkZWYgaW1wb3J0
X3BsdWdpbihzZWxmLCBtb2RuYW1lLCBjb25zaWRlcl9lbnRyeV9wb2ludHM9RmFsc2UpOgorICAg
ICAgICAiIiIKKyAgICAgICAgSW1wb3J0cyBhIHBsdWdpbiB3aXRoIGBgbW9kbmFtZWBgLiBJZiBg
YGNvbnNpZGVyX2VudHJ5X3BvaW50c2BgIGlzIFRydWUsIGVudHJ5IHBvaW50CisgICAgICAgIG5h
bWVzIGFyZSBhbHNvIGNvbnNpZGVyZWQgdG8gZmluZCBhIHBsdWdpbi4KKyAgICAgICAgIiIiCiAg
ICAgICAgICMgbW9zdCBvZnRlbiBtb2RuYW1lIHJlZmVycyB0byBidWlsdGluIG1vZHVsZXMsIGUu
Zy4gInB5dGVzdGVyIiwKICAgICAgICAgIyAidGVybWluYWwiIG9yICJjYXB0dXJlIi4gIFRob3Nl
IHBsdWdpbnMgYXJlIHJlZ2lzdGVyZWQgdW5kZXIgdGhlaXIKICAgICAgICAgIyBiYXNlbmFtZSBm
b3IgaGlzdG9yaWMgcHVycG9zZXMgYnV0IG11c3QgYmUgaW1wb3J0ZWQgd2l0aCB0aGUKICAgICAg
ICAgIyBfcHl0ZXN0IHByZWZpeC4KLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobW9kbmFtZSwg
KHNpeC50ZXh0X3R5cGUsIHN0cikpLCAoCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG1vZG5h
bWUsIHNpeC5zdHJpbmdfdHlwZXMpLCAoCiAgICAgICAgICAgICAibW9kdWxlIG5hbWUgYXMgdGV4
dCByZXF1aXJlZCwgZ290ICVyIiAlIG1vZG5hbWUKICAgICAgICAgKQogICAgICAgICBtb2RuYW1l
ID0gc3RyKG1vZG5hbWUpCiAgICAgICAgIGlmIHNlbGYuaXNfYmxvY2tlZChtb2RuYW1lKSBvciBz
ZWxmLmdldF9wbHVnaW4obW9kbmFtZSkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgaWYgbW9kbmFtZSBpbiBidWlsdGluX3BsdWdpbnM6Ci0gICAgICAgICAgICBpbXBv
cnRzcGVjID0gIl9weXRlc3QuIiArIG1vZG5hbWUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGltcG9ydHNwZWMgPSBtb2RuYW1lCisKKyAgICAgICAgaW1wb3J0c3BlYyA9ICJfcHl0ZXN0LiIg
KyBtb2RuYW1lIGlmIG1vZG5hbWUgaW4gYnVpbHRpbl9wbHVnaW5zIGVsc2UgbW9kbmFtZQogICAg
ICAgICBzZWxmLnJld3JpdGVfaG9vay5tYXJrX3Jld3JpdGUoaW1wb3J0c3BlYykKKworICAgICAg
ICBpZiBjb25zaWRlcl9lbnRyeV9wb2ludHM6CisgICAgICAgICAgICBsb2FkZWQgPSBzZWxmLmxv
YWRfc2V0dXB0b29sc19lbnRyeXBvaW50cygicHl0ZXN0MTEiLCBuYW1lPW1vZG5hbWUpCisgICAg
ICAgICAgICBpZiBsb2FkZWQ6CisgICAgICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgdHJ5
OgogICAgICAgICAgICAgX19pbXBvcnRfXyhpbXBvcnRzcGVjKQogICAgICAgICBleGNlcHQgSW1w
b3J0RXJyb3IgYXMgZToKLSAgICAgICAgICAgIG5ld19leGNfdHlwZSA9IEltcG9ydEVycm9yCiAg
ICAgICAgICAgICBuZXdfZXhjX21lc3NhZ2UgPSAnRXJyb3IgaW1wb3J0aW5nIHBsdWdpbiAiJXMi
OiAlcycgJSAoCi0gICAgICAgICAgICAgICAgbW9kbmFtZSwgc2FmZV9zdHIoZS5hcmdzWzBdKQor
ICAgICAgICAgICAgICAgIG1vZG5hbWUsCisgICAgICAgICAgICAgICAgc2FmZV9zdHIoZS5hcmdz
WzBdKSwKICAgICAgICAgICAgICkKLSAgICAgICAgICAgIG5ld19leGMgPSBuZXdfZXhjX3R5cGUo
bmV3X2V4Y19tZXNzYWdlKQorICAgICAgICAgICAgbmV3X2V4YyA9IEltcG9ydEVycm9yKG5ld19l
eGNfbWVzc2FnZSkKKyAgICAgICAgICAgIHRiID0gc3lzLmV4Y19pbmZvKClbMl0KIAotICAgICAg
ICAgICAgc2l4LnJlcmFpc2UobmV3X2V4Y190eXBlLCBuZXdfZXhjLCBzeXMuZXhjX2luZm8oKVsy
XSkKKyAgICAgICAgICAgIHNpeC5yZXJhaXNlKEltcG9ydEVycm9yLCBuZXdfZXhjLCB0YikKIAog
ICAgICAgICBleGNlcHQgU2tpcHBlZCBhcyBlOgotICAgICAgICAgICAgc2VsZi5fd2Fybigic2tp
cHBlZCBwbHVnaW4gJXI6ICVzIiAlICgobW9kbmFtZSwgZS5tc2cpKSkKKyAgICAgICAgICAgIGZy
b20gX3B5dGVzdC53YXJuaW5ncyBpbXBvcnQgX2lzc3VlX3dhcm5pbmdfY2FwdHVyZWQKKworICAg
ICAgICAgICAgX2lzc3VlX3dhcm5pbmdfY2FwdHVyZWQoCisgICAgICAgICAgICAgICAgUHl0ZXN0
Q29uZmlnV2FybmluZygic2tpcHBlZCBwbHVnaW4gJXI6ICVzIiAlIChtb2RuYW1lLCBlLm1zZykp
LAorICAgICAgICAgICAgICAgIHNlbGYuaG9vaywKKyAgICAgICAgICAgICAgICBzdGFja2xldmVs
PTEsCisgICAgICAgICAgICApCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBtb2QgPSBzeXMu
bW9kdWxlc1tpbXBvcnRzcGVjXQogICAgICAgICAgICAgc2VsZi5yZWdpc3Rlcihtb2QsIG1vZG5h
bWUpCkBAIC00OTgsOCArNjAxLDggQEAgZGVmIF9nZXRfcGx1Z2luX3NwZWNzX2FzX2xpc3Qoc3Bl
Y3MpOgogICAgIHdoaWNoIGNhc2UgaXQgaXMgcmV0dXJuZWQgYXMgYSBsaXN0LiBTcGVjcyBjYW4g
YWxzbyBiZSBgTm9uZWAgaW4gd2hpY2ggY2FzZSBhbgogICAgIGVtcHR5IGxpc3QgaXMgcmV0dXJu
ZWQuCiAgICAgIiIiCi0gICAgaWYgc3BlY3MgaXMgbm90IE5vbmU6Ci0gICAgICAgIGlmIGlzaW5z
dGFuY2Uoc3BlY3MsIHN0cik6CisgICAgaWYgc3BlY3MgaXMgbm90IE5vbmUgYW5kIG5vdCBpc2lu
c3RhbmNlKHNwZWNzLCB0eXBlcy5Nb2R1bGVUeXBlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShz
cGVjcywgc2l4LnN0cmluZ190eXBlcyk6CiAgICAgICAgICAgICBzcGVjcyA9IHNwZWNzLnNwbGl0
KCIsIikgaWYgc3BlY3MgZWxzZSBbXQogICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzcGVjcywg
KGxpc3QsIHR1cGxlKSk6CiAgICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKApAQCAtNTE4LDcg
KzYyMSw2IEBAIGRlZiBfZW5zdXJlX3JlbW92ZWRfc3lzbW9kdWxlKG1vZG5hbWUpOgogCiAKIGNs
YXNzIE5vdHNldChvYmplY3QpOgotCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICBy
ZXR1cm4gIjxOT1RTRVQ+IgogCkBAIC01MjcsMjUgKzYyOSwxMTYgQEAgbm90c2V0ID0gTm90c2V0
KCkKIAogCiBkZWYgX2l0ZXJfcmV3cml0YWJsZV9tb2R1bGVzKHBhY2thZ2VfZmlsZXMpOgorICAg
ICIiIgorICAgIEdpdmVuIGFuIGl0ZXJhYmxlIG9mIGZpbGUgbmFtZXMgaW4gYSBzb3VyY2UgZGlz
dHJpYnV0aW9uLCByZXR1cm4gdGhlICJuYW1lcyIgdGhhdCBzaG91bGQKKyAgICBiZSBtYXJrZWQg
Zm9yIGFzc2VydGlvbiByZXdyaXRlIChmb3IgZXhhbXBsZSB0aGUgcGFja2FnZSAicHl0ZXN0X21v
Y2svX19pbml0X18ucHkiIHNob3VsZAorICAgIGJlIGFkZGVkIGFzICJweXRlc3RfbW9jayIgaW4g
dGhlIGFzc2VydGlvbiByZXdyaXRlIG1lY2hhbmlzbS4KKworICAgIFRoaXMgZnVuY3Rpb24gaGFz
IHRvIGRlYWwgd2l0aCBkaXN0LWluZm8gYmFzZWQgZGlzdHJpYnV0aW9ucyBhbmQgZWdnIGJhc2Vk
IGRpc3RyaWJ1dGlvbnMKKyAgICAod2hpY2ggYXJlIHN0aWxsIHZlcnkgbXVjaCBpbiB1c2UgZm9y
ICJlZGl0YWJsZSIgaW5zdGFsbHMpLgorCisgICAgSGVyZSBhcmUgdGhlIGZpbGUgbmFtZXMgYXMg
c2VlbiBpbiBhIGRpc3QtaW5mbyBiYXNlZCBkaXN0cmlidXRpb246CisKKyAgICAgICAgcHl0ZXN0
X21vY2svX19pbml0X18ucHkKKyAgICAgICAgcHl0ZXN0X21vY2svX3ZlcnNpb24ucHkKKyAgICAg
ICAgcHl0ZXN0X21vY2svcGx1Z2luLnB5CisgICAgICAgIHB5dGVzdF9tb2NrLmVnZy1pbmZvL1BL
Ry1JTkZPCisKKyAgICBIZXJlIGFyZSB0aGUgZmlsZSBuYW1lcyBhcyBzZWVuIGluIGFuIGVnZyBi
YXNlZCBkaXN0cmlidXRpb246CisKKyAgICAgICAgc3JjL3B5dGVzdF9tb2NrL19faW5pdF9fLnB5
CisgICAgICAgIHNyYy9weXRlc3RfbW9jay9fdmVyc2lvbi5weQorICAgICAgICBzcmMvcHl0ZXN0
X21vY2svcGx1Z2luLnB5CisgICAgICAgIHNyYy9weXRlc3RfbW9jay5lZ2ctaW5mby9QS0ctSU5G
TworICAgICAgICBMSUNFTlNFCisgICAgICAgIHNldHVwLnB5CisKKyAgICBXZSBoYXZlIHRvIHRh
a2UgaW4gYWNjb3VudCB0aG9zZSB0d28gZGlzdHJpYnV0aW9uIGZsYXZvcnMgaW4gb3JkZXIgdG8g
ZGV0ZXJtaW5lIHdoaWNoCisgICAgbmFtZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZm9yIGFzc2Vy
dGlvbiByZXdyaXRpbmcuCisKKyAgICBNb3JlIGluZm9ybWF0aW9uOgorICAgICAgICBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QtbW9jay9pc3N1ZXMvMTY3CisgICAgIiIiCisg
ICAgcGFja2FnZV9maWxlcyA9IGxpc3QocGFja2FnZV9maWxlcykKKyAgICBzZWVuX3NvbWUgPSBG
YWxzZQogICAgIGZvciBmbiBpbiBwYWNrYWdlX2ZpbGVzOgogICAgICAgICBpc19zaW1wbGVfbW9k
dWxlID0gIi8iIG5vdCBpbiBmbiBhbmQgZm4uZW5kc3dpdGgoIi5weSIpCiAgICAgICAgIGlzX3Bh
Y2thZ2UgPSBmbi5jb3VudCgiLyIpID09IDEgYW5kIGZuLmVuZHN3aXRoKCJfX2luaXRfXy5weSIp
CiAgICAgICAgIGlmIGlzX3NpbXBsZV9tb2R1bGU6CiAgICAgICAgICAgICBtb2R1bGVfbmFtZSwg
XyA9IG9zLnBhdGguc3BsaXRleHQoZm4pCi0gICAgICAgICAgICB5aWVsZCBtb2R1bGVfbmFtZQor
ICAgICAgICAgICAgIyB3ZSBpZ25vcmUgInNldHVwLnB5IiBhdCB0aGUgcm9vdCBvZiB0aGUgZGlz
dHJpYnV0aW9uCisgICAgICAgICAgICBpZiBtb2R1bGVfbmFtZSAhPSAic2V0dXAiOgorICAgICAg
ICAgICAgICAgIHNlZW5fc29tZSA9IFRydWUKKyAgICAgICAgICAgICAgICB5aWVsZCBtb2R1bGVf
bmFtZQogICAgICAgICBlbGlmIGlzX3BhY2thZ2U6CiAgICAgICAgICAgICBwYWNrYWdlX25hbWUg
PSBvcy5wYXRoLmRpcm5hbWUoZm4pCisgICAgICAgICAgICBzZWVuX3NvbWUgPSBUcnVlCiAgICAg
ICAgICAgICB5aWVsZCBwYWNrYWdlX25hbWUKIAorICAgIGlmIG5vdCBzZWVuX3NvbWU6CisgICAg
ICAgICMgYXQgdGhpcyBwb2ludCB3ZSBkaWQgbm90IGZpbmQgYW55IHBhY2thZ2VzIG9yIG1vZHVs
ZXMgc3VpdGFibGUgZm9yIGFzc2VydGlvbgorICAgICAgICAjIHJld3JpdGluZywgc28gd2UgdHJ5
IGFnYWluIGJ5IHN0cmlwcGluZyB0aGUgZmlyc3QgcGF0aCBjb21wb25lbnQgKHRvIGFjY291bnQg
Zm9yCisgICAgICAgICMgInNyYyIgYmFzZWQgc291cmNlIHRyZWVzIGZvciBleGFtcGxlKQorICAg
ICAgICAjIHRoaXMgYXBwcm9hY2ggbGV0cyB1cyBoYXZlIHRoZSBjb21tb24gY2FzZSBjb250aW51
ZSB0byBiZSBmYXN0LCBhcyBlZ2ctZGlzdHJpYnV0aW9ucworICAgICAgICAjIGFyZSByYXJlcgor
ICAgICAgICBuZXdfcGFja2FnZV9maWxlcyA9IFtdCisgICAgICAgIGZvciBmbiBpbiBwYWNrYWdl
X2ZpbGVzOgorICAgICAgICAgICAgcGFydHMgPSBmbi5zcGxpdCgiLyIpCisgICAgICAgICAgICBu
ZXdfZm4gPSAiLyIuam9pbihwYXJ0c1sxOl0pCisgICAgICAgICAgICBpZiBuZXdfZm46CisgICAg
ICAgICAgICAgICAgbmV3X3BhY2thZ2VfZmlsZXMuYXBwZW5kKG5ld19mbikKKyAgICAgICAgaWYg
bmV3X3BhY2thZ2VfZmlsZXM6CisgICAgICAgICAgICBmb3IgX21vZHVsZSBpbiBfaXRlcl9yZXdy
aXRhYmxlX21vZHVsZXMobmV3X3BhY2thZ2VfZmlsZXMpOgorICAgICAgICAgICAgICAgIHlpZWxk
IF9tb2R1bGUKKwogCiBjbGFzcyBDb25maWcob2JqZWN0KToKLSAgICAiIiIgYWNjZXNzIHRvIGNv
bmZpZ3VyYXRpb24gdmFsdWVzLCBwbHVnaW5tYW5hZ2VyIGFuZCBwbHVnaW4gaG9va3MuICAiIiIK
KyAgICAiIiIKKyAgICBBY2Nlc3MgdG8gY29uZmlndXJhdGlvbiB2YWx1ZXMsIHBsdWdpbm1hbmFn
ZXIgYW5kIHBsdWdpbiBob29rcy4KKworICAgIDppdmFyIFB5dGVzdFBsdWdpbk1hbmFnZXIgcGx1
Z2lubWFuYWdlcjogdGhlIHBsdWdpbiBtYW5hZ2VyIGhhbmRsZXMgcGx1Z2luIHJlZ2lzdHJhdGlv
biBhbmQgaG9vayBpbnZvY2F0aW9uLgorCisgICAgOml2YXIgYXJncGFyc2UuTmFtZXNwYWNlIG9w
dGlvbjogYWNjZXNzIHRvIGNvbW1hbmQgbGluZSBvcHRpb24gYXMgYXR0cmlidXRlcy4KKworICAg
IDppdmFyIEludm9jYXRpb25QYXJhbXMgaW52b2NhdGlvbl9wYXJhbXM6CisKKyAgICAgICAgT2Jq
ZWN0IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMgcmVnYXJkaW5nIHRoZSBgYHB5dGVzdC5tYWlu
YGAKKyAgICAgICAgaW52b2NhdGlvbi4KKyAgICAgICAgQ29udGFpbnMgdGhlIGZvbGxvd2luaWcg
cmVhZC1vbmx5IGF0dHJpYnV0ZXM6CisgICAgICAgICogYGBhcmdzYGA6IGxpc3Qgb2YgY29tbWFu
ZC1saW5lIGFyZ3VtZW50cyBhcyBwYXNzZWQgdG8gYGBweXRlc3QubWFpbigpYGAuCisgICAgICAg
ICogYGBwbHVnaW5zYGA6IGxpc3Qgb2YgZXh0cmEgcGx1Z2lucywgbWlnaHQgYmUgTm9uZQorICAg
ICAgICAqIGBgZGlyYGA6IGRpcmVjdG9yeSB3aGVyZSBgYHB5dGVzdC5tYWluKClgYCB3YXMgaW52
b2tlZCBmcm9tLgorICAgICIiIgorCisgICAgQGF0dHIucyhmcm96ZW49VHJ1ZSkKKyAgICBjbGFz
cyBJbnZvY2F0aW9uUGFyYW1zKG9iamVjdCk6CisgICAgICAgICIiIkhvbGRzIHBhcmFtZXRlcnMg
cGFzc2VkIGR1cmluZyBgYHB5dGVzdC5tYWluKClgYAorCisgICAgICAgIC4uIG5vdGU6OgorCisg
ICAgICAgICAgICBDdXJyZW50bHkgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFBZVEVTVF9BRERP
UFRTIGlzIGFsc28gaGFuZGxlZCBieQorICAgICAgICAgICAgcHl0ZXN0IGltcGxpY2l0bHksIG5v
dCBiZWluZyBwYXJ0IG9mIHRoZSBpbnZvY2F0aW9uLgorCisgICAgICAgICAgICBQbHVnaW5zIGFj
Y2Vzc2luZyBgYEludm9jYXRpb25QYXJhbXNgYCBtdXN0IGJlIGF3YXJlIG9mIHRoYXQuCisgICAg
ICAgICIiIgorCisgICAgICAgIGFyZ3MgPSBhdHRyLmliKCkKKyAgICAgICAgcGx1Z2lucyA9IGF0
dHIuaWIoKQorICAgICAgICBkaXIgPSBhdHRyLmliKCkKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwbHVnaW5tYW5hZ2VyLCBpbnZvY2F0aW9uX3BhcmFtcz1Ob25lLCAqYXJncyk6CisgICAgICAg
IGZyb20gLmFyZ3BhcnNpbmcgaW1wb3J0IFBhcnNlciwgRklMRV9PUl9ESVIKKworICAgICAgICBp
ZiBpbnZvY2F0aW9uX3BhcmFtcyBpcyBOb25lOgorICAgICAgICAgICAgaW52b2NhdGlvbl9wYXJh
bXMgPSBzZWxmLkludm9jYXRpb25QYXJhbXMoCisgICAgICAgICAgICAgICAgYXJncz0oKSwgcGx1
Z2lucz1Ob25lLCBkaXI9UGF0aCgpLnJlc29sdmUoKQorICAgICAgICAgICAgKQogCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIHBsdWdpbm1hbmFnZXIpOgogICAgICAgICAjOiBhY2Nlc3MgdG8gY29t
bWFuZCBsaW5lIG9wdGlvbiBhcyBhdHRyaWJ1dGVzLgogICAgICAgICAjOiAoZGVwcmVjYXRlZCks
IHVzZSA6cHk6ZnVuYzpgZ2V0b3B0aW9uKCkgPF9weXRlc3QuY29uZmlnLkNvbmZpZy5nZXRvcHRp
b24+YCBpbnN0ZWFkCiAgICAgICAgIHNlbGYub3B0aW9uID0gYXJncGFyc2UuTmFtZXNwYWNlKCkK
LSAgICAgICAgZnJvbSAuYXJncGFyc2luZyBpbXBvcnQgUGFyc2VyLCBGSUxFX09SX0RJUgorCisg
ICAgICAgIHNlbGYuaW52b2NhdGlvbl9wYXJhbXMgPSBpbnZvY2F0aW9uX3BhcmFtcwogCiAgICAg
ICAgIF9hID0gRklMRV9PUl9ESVIKICAgICAgICAgc2VsZi5fcGFyc2VyID0gUGFyc2VyKApAQCAt
NTYwLDE4ICs3NTMsMTUgQEAgY2xhc3MgQ29uZmlnKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX292
ZXJyaWRlX2luaSA9ICgpCiAgICAgICAgIHNlbGYuX29wdDJkZXN0ID0ge30KICAgICAgICAgc2Vs
Zi5fY2xlYW51cCA9IFtdCi0gICAgICAgIHNlbGYuX3dhcm4gPSBzZWxmLnBsdWdpbm1hbmFnZXIu
X3dhcm4KICAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHNlbGYsICJweXRlc3Rj
b25maWciKQogICAgICAgICBzZWxmLl9jb25maWd1cmVkID0gRmFsc2UKLQotICAgICAgICBkZWYg
ZG9fc2V0bnMoZGljKToKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAg
c2V0bnMocHl0ZXN0LCBkaWMpCi0KLSAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9uYW1lc3BhY2Uu
Y2FsbF9oaXN0b3JpYyhkb19zZXRucywge30pCiAgICAgICAgIHNlbGYuaG9vay5weXRlc3RfYWRk
b3B0aW9uLmNhbGxfaGlzdG9yaWMoa3dhcmdzPWRpY3QocGFyc2VyPXNlbGYuX3BhcnNlcikpCiAK
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgaW52b2NhdGlvbl9kaXIoc2VsZik6CisgICAgICAgICIi
IkJhY2t3YXJkIGNvbXBhdGliaWxpdHkiIiIKKyAgICAgICAgcmV0dXJuIHB5LnBhdGgubG9jYWwo
c3RyKHNlbGYuaW52b2NhdGlvbl9wYXJhbXMuZGlyKSkKKwogICAgIGRlZiBhZGRfY2xlYW51cChz
ZWxmLCBmdW5jKToKICAgICAgICAgIiIiIEFkZCBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVu
IHRoZSBjb25maWcgb2JqZWN0IGdldHMgb3V0IG9mCiAgICAgICAgIHVzZSAodXN1YWxseSBjb25p
bmNpZGluZyB3aXRoIHB5dGVzdF91bmNvbmZpZ3VyZSkuIiIiCkBAIC01OTEsMjQgKzc4MSwzNSBA
QCBjbGFzcyBDb25maWcob2JqZWN0KToKICAgICAgICAgICAgIGZpbiA9IHNlbGYuX2NsZWFudXAu
cG9wKCkKICAgICAgICAgICAgIGZpbigpCiAKLSAgICBkZWYgd2FybihzZWxmLCBjb2RlLCBtZXNz
YWdlLCBmc2xvY2F0aW9uPU5vbmUsIG5vZGVpZD1Ob25lKToKLSAgICAgICAgIiIiIGdlbmVyYXRl
IGEgd2FybmluZyBmb3IgdGhpcyB0ZXN0IHNlc3Npb24uICIiIgotICAgICAgICBzZWxmLmhvb2su
cHl0ZXN0X2xvZ3dhcm5pbmcuY2FsbF9oaXN0b3JpYygKLSAgICAgICAgICAgIGt3YXJncz1kaWN0
KAotICAgICAgICAgICAgICAgIGNvZGU9Y29kZSwgbWVzc2FnZT1tZXNzYWdlLCBmc2xvY2F0aW9u
PWZzbG9jYXRpb24sIG5vZGVpZD1ub2RlaWQKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotCiAg
ICAgZGVmIGdldF90ZXJtaW5hbF93cml0ZXIoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnBs
dWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigidGVybWluYWxyZXBvcnRlciIpLl90dwogCiAgICAgZGVm
IHB5dGVzdF9jbWRsaW5lX3BhcnNlKHNlbGYsIHBsdWdpbm1hbmFnZXIsIGFyZ3MpOgotICAgICAg
ICAjIFJFRjEgYXNzZXJ0IHNlbGYgPT0gcGx1Z2lubWFuYWdlci5jb25maWcsIChzZWxmLCBwbHVn
aW5tYW5hZ2VyLmNvbmZpZykKLSAgICAgICAgc2VsZi5wYXJzZShhcmdzKQorICAgICAgICB0cnk6
CisgICAgICAgICAgICBzZWxmLnBhcnNlKGFyZ3MpCisgICAgICAgIGV4Y2VwdCBVc2FnZUVycm9y
OgorCisgICAgICAgICAgICAjIEhhbmRsZSAtLXZlcnNpb24gYW5kIC0taGVscCBoZXJlIGluIGEg
bWluaW1hbCBmYXNoaW9uLgorICAgICAgICAgICAgIyBUaGlzIGdldHMgZG9uZSB2aWEgaGVscGNv
bmZpZyBub3JtYWxseSwgYnV0IGl0cworICAgICAgICAgICAgIyBweXRlc3RfY21kbGluZV9tYWlu
IGlzIG5vdCBjYWxsZWQgaW4gY2FzZSBvZiBlcnJvcnMuCisgICAgICAgICAgICBpZiBnZXRhdHRy
KHNlbGYub3B0aW9uLCAidmVyc2lvbiIsIEZhbHNlKSBvciAiLS12ZXJzaW9uIiBpbiBhcmdzOgor
ICAgICAgICAgICAgICAgIGZyb20gX3B5dGVzdC5oZWxwY29uZmlnIGltcG9ydCBzaG93dmVyc2lv
bgorCisgICAgICAgICAgICAgICAgc2hvd3ZlcnNpb24oc2VsZikKKyAgICAgICAgICAgIGVsaWYg
KAorICAgICAgICAgICAgICAgIGdldGF0dHIoc2VsZi5vcHRpb24sICJoZWxwIiwgRmFsc2UpIG9y
ICItLWhlbHAiIGluIGFyZ3Mgb3IgIi1oIiBpbiBhcmdzCisgICAgICAgICAgICApOgorICAgICAg
ICAgICAgICAgIHNlbGYuX3BhcnNlci5fZ2V0cGFyc2VyKCkucHJpbnRfaGVscCgpCisgICAgICAg
ICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgIlxuTk9URTog
ZGlzcGxheWluZyBvbmx5IG1pbmltYWwgaGVscCBkdWUgdG8gVXNhZ2VFcnJvci5cblxuIgorICAg
ICAgICAgICAgICAgICkKKworICAgICAgICAgICAgcmFpc2UKKwogICAgICAgICByZXR1cm4gc2Vs
ZgogCiAgICAgZGVmIG5vdGlmeV9leGNlcHRpb24oc2VsZiwgZXhjaW5mbywgb3B0aW9uPU5vbmUp
OgotICAgICAgICBpZiBvcHRpb24gYW5kIG9wdGlvbi5mdWxsdHJhY2U6CisgICAgICAgIGlmIG9w
dGlvbiBhbmQgZ2V0YXR0cihvcHRpb24sICJmdWxsdHJhY2UiLCBGYWxzZSk6CiAgICAgICAgICAg
ICBzdHlsZSA9ICJsb25nIgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc3R5bGUgPSAibmF0
aXZlIgpAQCAtNjMxLDcgKzgzMiw3IEBAIGNsYXNzIENvbmZpZyhvYmplY3QpOgogICAgIEBjbGFz
c21ldGhvZAogICAgIGRlZiBmcm9tZGljdGFyZ3MoY2xzLCBvcHRpb25fZGljdCwgYXJncyk6CiAg
ICAgICAgICIiIiBjb25zdHJ1Y3RvciB1c2VhYmxlIGZvciBzdWJwcm9jZXNzZXMuICIiIgotICAg
ICAgICBjb25maWcgPSBnZXRfY29uZmlnKCkKKyAgICAgICAgY29uZmlnID0gZ2V0X2NvbmZpZyhh
cmdzKQogICAgICAgICBjb25maWcub3B0aW9uLl9fZGljdF9fLnVwZGF0ZShvcHRpb25fZGljdCkK
ICAgICAgICAgY29uZmlnLnBhcnNlKGFyZ3MsIGFkZG9wdHM9RmFsc2UpCiAgICAgICAgIGZvciB4
IGluIGNvbmZpZy5vcHRpb24ucGx1Z2luczoKQEAgLTY1NywxMyArODU4LDEyIEBAIGNsYXNzIENv
bmZpZyhvYmplY3QpOgogICAgICAgICByID0gZGV0ZXJtaW5lX3NldHVwKAogICAgICAgICAgICAg
bnMuaW5pZmlsZW5hbWUsCiAgICAgICAgICAgICBucy5maWxlX29yX2RpciArIHVua25vd25fYXJn
cywKLSAgICAgICAgICAgIHdhcm5mdW5jPXNlbGYud2FybiwKICAgICAgICAgICAgIHJvb3RkaXJf
Y21kX2FyZz1ucy5yb290ZGlyIG9yIE5vbmUsCisgICAgICAgICAgICBjb25maWc9c2VsZiwKICAg
ICAgICAgKQogICAgICAgICBzZWxmLnJvb3RkaXIsIHNlbGYuaW5pZmlsZSwgc2VsZi5pbmljZmcg
PSByCiAgICAgICAgIHNlbGYuX3BhcnNlci5leHRyYV9pbmZvWyJyb290ZGlyIl0gPSBzZWxmLnJv
b3RkaXIKICAgICAgICAgc2VsZi5fcGFyc2VyLmV4dHJhX2luZm9bImluaWZpbGUiXSA9IHNlbGYu
aW5pZmlsZQotICAgICAgICBzZWxmLmludm9jYXRpb25fZGlyID0gcHkucGF0aC5sb2NhbCgpCiAg
ICAgICAgIHNlbGYuX3BhcnNlci5hZGRpbmkoImFkZG9wdHMiLCAiZXh0cmEgY29tbWFuZCBsaW5l
IG9wdGlvbnMiLCAiYXJncyIpCiAgICAgICAgIHNlbGYuX3BhcnNlci5hZGRpbmkoIm1pbnZlcnNp
b24iLCAibWluaW1hbGx5IHJlcXVpcmVkIHB5dGVzdCB2ZXJzaW9uIikKICAgICAgICAgc2VsZi5f
b3ZlcnJpZGVfaW5pID0gbnMub3ZlcnJpZGVfaW5pIG9yICgpCkBAIC02NzYsNyArODc2LDcgQEAg
Y2xhc3MgQ29uZmlnKG9iamVjdCk6CiAgICAgICAgIGJ5IHRoZSBpbXBvcnRob29rLgogICAgICAg
ICAiIiIKICAgICAgICAgbnMsIHVua25vd25fYXJncyA9IHNlbGYuX3BhcnNlci5wYXJzZV9rbm93
bl9hbmRfdW5rbm93bl9hcmdzKGFyZ3MpCi0gICAgICAgIG1vZGUgPSBucy5hc3NlcnRtb2RlCisg
ICAgICAgIG1vZGUgPSBnZXRhdHRyKG5zLCAiYXNzZXJ0bW9kZSIsICJwbGFpbiIpCiAgICAgICAg
IGlmIG1vZGUgPT0gInJld3JpdGUiOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAg
IGhvb2sgPSBfcHl0ZXN0LmFzc2VydGlvbi5pbnN0YWxsX2ltcG9ydGhvb2soc2VsZikKQEAgLTY5
MiwzNiArODkyLDU1IEBAIGNsYXNzIENvbmZpZyhvYmplY3QpOgogICAgICAgICBtb2R1bGVzIG9y
IHBhY2thZ2VzIGluIHRoZSBkaXN0cmlidXRpb24gcGFja2FnZSBmb3IKICAgICAgICAgYWxsIHB5
dGVzdCBwbHVnaW5zLgogICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHBrZ19yZXNvdXJjZXMK
LQogICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIucmV3cml0ZV9ob29rID0gaG9vawogCi0gICAg
ICAgICMgJ1JFQ09SRCcgYXZhaWxhYmxlIGZvciBwbHVnaW5zIGluc3RhbGxlZCBub3JtYWxseSAo
cGlwIGluc3RhbGwpCi0gICAgICAgICMgJ1NPVVJDRVMudHh0JyBhdmFpbGFibGUgZm9yIHBsdWdp
bnMgaW5zdGFsbGVkIGluIGRldiBtb2RlIChwaXAgaW5zdGFsbCAtZSkKLSAgICAgICAgIyBmb3Ig
aW5zdGFsbGVkIHBsdWdpbnMgJ1NPVVJDRVMudHh0JyByZXR1cm5zIGFuIGVtcHR5IGxpc3QsIGFu
ZCB2aWNlLXZlcnNhCi0gICAgICAgICMgc28gaXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlCi0gICAg
ICAgIG1ldGFkYXRhX2ZpbGVzID0gIlJFQ09SRCIsICJTT1VSQ0VTLnR4dCIKKyAgICAgICAgaWYg
b3MuZW52aXJvbi5nZXQoIlBZVEVTVF9ESVNBQkxFX1BMVUdJTl9BVVRPTE9BRCIpOgorICAgICAg
ICAgICAgIyBXZSBkb24ndCBhdXRvbG9hZCBmcm9tIHNldHVwdG9vbHMgZW50cnkgcG9pbnRzLCBu
byBuZWVkIHRvIGNvbnRpbnVlLgorICAgICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgcGFja2Fn
ZV9maWxlcyA9ICgKLSAgICAgICAgICAgIGVudHJ5LnNwbGl0KCIsIilbMF0KLSAgICAgICAgICAg
IGZvciBlbnRyeXBvaW50IGluIHBrZ19yZXNvdXJjZXMuaXRlcl9lbnRyeV9wb2ludHMoInB5dGVz
dDExIikKLSAgICAgICAgICAgIGZvciBtZXRhZGF0YSBpbiBtZXRhZGF0YV9maWxlcwotICAgICAg
ICAgICAgZm9yIGVudHJ5IGluIGVudHJ5cG9pbnQuZGlzdC5fZ2V0X21ldGFkYXRhKG1ldGFkYXRh
KQorICAgICAgICAgICAgc3RyKGZpbGUpCisgICAgICAgICAgICBmb3IgZGlzdCBpbiBpbXBvcnRs
aWJfbWV0YWRhdGEuZGlzdHJpYnV0aW9ucygpCisgICAgICAgICAgICBpZiBhbnkoZXAuZ3JvdXAg
PT0gInB5dGVzdDExIiBmb3IgZXAgaW4gZGlzdC5lbnRyeV9wb2ludHMpCisgICAgICAgICAgICBm
b3IgZmlsZSBpbiBkaXN0LmZpbGVzIG9yIFtdCiAgICAgICAgICkKIAogICAgICAgICBmb3IgbmFt
ZSBpbiBfaXRlcl9yZXdyaXRhYmxlX21vZHVsZXMocGFja2FnZV9maWxlcyk6CiAgICAgICAgICAg
ICBob29rLm1hcmtfcmV3cml0ZShuYW1lKQogCisgICAgZGVmIF92YWxpZGF0ZV9hcmdzKHNlbGYs
IGFyZ3MsIHZpYSk6CisgICAgICAgICIiIlZhbGlkYXRlIGtub3duIGFyZ3MuIiIiCisgICAgICAg
IHNlbGYuX3BhcnNlci5fY29uZmlnX3NvdXJjZV9oaW50ID0gdmlhCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHNlbGYuX3BhcnNlci5wYXJzZV9rbm93bl9hbmRfdW5rbm93bl9hcmdzKAorICAg
ICAgICAgICAgICAgIGFyZ3MsIG5hbWVzcGFjZT1jb3B5LmNvcHkoc2VsZi5vcHRpb24pCisgICAg
ICAgICAgICApCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBkZWwgc2VsZi5fcGFyc2Vy
Ll9jb25maWdfc291cmNlX2hpbnQKKworICAgICAgICByZXR1cm4gYXJncworCiAgICAgZGVmIF9w
cmVwYXJzZShzZWxmLCBhcmdzLCBhZGRvcHRzPVRydWUpOgogICAgICAgICBpZiBhZGRvcHRzOgot
ICAgICAgICAgICAgYXJnc1s6XSA9IHNobGV4LnNwbGl0KG9zLmVudmlyb24uZ2V0KCJQWVRFU1Rf
QURET1BUUyIsICIiKSkgKyBhcmdzCisgICAgICAgICAgICBlbnZfYWRkb3B0cyA9IG9zLmVudmly
b24uZ2V0KCJQWVRFU1RfQURET1BUUyIsICIiKQorICAgICAgICAgICAgaWYgbGVuKGVudl9hZGRv
cHRzKToKKyAgICAgICAgICAgICAgICBhcmdzWzpdID0gKAorICAgICAgICAgICAgICAgICAgICBz
ZWxmLl92YWxpZGF0ZV9hcmdzKHNobGV4LnNwbGl0KGVudl9hZGRvcHRzKSwgInZpYSBQWVRFU1Rf
QURET1BUUyIpCisgICAgICAgICAgICAgICAgICAgICsgYXJncworICAgICAgICAgICAgICAgICkK
ICAgICAgICAgc2VsZi5faW5pdGluaShhcmdzKQogICAgICAgICBpZiBhZGRvcHRzOgotICAgICAg
ICAgICAgYXJnc1s6XSA9IHNlbGYuZ2V0aW5pKCJhZGRvcHRzIikgKyBhcmdzCisgICAgICAgICAg
ICBhcmdzWzpdID0gKAorICAgICAgICAgICAgICAgIHNlbGYuX3ZhbGlkYXRlX2FyZ3Moc2VsZi5n
ZXRpbmkoImFkZG9wdHMiKSwgInZpYSBhZGRvcHRzIGNvbmZpZyIpICsgYXJncworICAgICAgICAg
ICAgKQorCiAgICAgICAgIHNlbGYuX2NoZWNrdmVyc2lvbigpCiAgICAgICAgIHNlbGYuX2NvbnNp
ZGVyX2ltcG9ydGhvb2soYXJncykKICAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLmNvbnNpZGVy
X3ByZXBhcnNlKGFyZ3MpCi0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5sb2FkX3NldHVwdG9v
bHNfZW50cnlwb2ludHMoInB5dGVzdDExIikKKyAgICAgICAgaWYgbm90IG9zLmVudmlyb24uZ2V0
KCJQWVRFU1RfRElTQUJMRV9QTFVHSU5fQVVUT0xPQUQiKToKKyAgICAgICAgICAgICMgRG9uJ3Qg
YXV0b2xvYWQgZnJvbSBzZXR1cHRvb2xzIGVudHJ5IHBvaW50LiBPbmx5IGV4cGxpY2l0bHkgc3Bl
Y2lmaWVkCisgICAgICAgICAgICAjIHBsdWdpbnMgYXJlIGdvaW5nIHRvIGJlIGxvYWRlZC4KKyAg
ICAgICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5sb2FkX3NldHVwdG9vbHNfZW50cnlwb2ludHMo
InB5dGVzdDExIikKICAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX2VudigpCiAg
ICAgICAgIHNlbGYua25vd25fYXJnc19uYW1lc3BhY2UgPSBucyA9IHNlbGYuX3BhcnNlci5wYXJz
ZV9rbm93bl9hcmdzKAogICAgICAgICAgICAgYXJncywgbmFtZXNwYWNlPWNvcHkuY29weShzZWxm
Lm9wdGlvbikKQEAgLTczOCw3ICs5NTcsMTUgQEAgY2xhc3MgQ29uZmlnKG9iamVjdCk6CiAgICAg
ICAgICAgICBpZiBucy5oZWxwIG9yIG5zLnZlcnNpb246CiAgICAgICAgICAgICAgICAgIyB3ZSBk
b24ndCB3YW50IHRvIHByZXZlbnQgLS1oZWxwLy0tdmVyc2lvbiB0byB3b3JrCiAgICAgICAgICAg
ICAgICAgIyBzbyBqdXN0IGxldCBpcyBwYXNzIGFuZCBwcmludCBhIHdhcm5pbmcgYXQgdGhlIGVu
ZAotICAgICAgICAgICAgICAgIHNlbGYuX3dhcm4oImNvdWxkIG5vdCBsb2FkIGluaXRpYWwgY29u
ZnRlc3RzICglcylcbiIgJSBlLnBhdGgpCisgICAgICAgICAgICAgICAgZnJvbSBfcHl0ZXN0Lndh
cm5pbmdzIGltcG9ydCBfaXNzdWVfd2FybmluZ19jYXB0dXJlZAorCisgICAgICAgICAgICAgICAg
X2lzc3VlX3dhcm5pbmdfY2FwdHVyZWQoCisgICAgICAgICAgICAgICAgICAgIFB5dGVzdENvbmZp
Z1dhcm5pbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAiY291bGQgbm90IGxvYWQgaW5pdGlh
bCBjb25mdGVzdHM6IHt9Ii5mb3JtYXQoZS5wYXRoKQorICAgICAgICAgICAgICAgICAgICApLAor
ICAgICAgICAgICAgICAgICAgICBzZWxmLmhvb2ssCisgICAgICAgICAgICAgICAgICAgIHN0YWNr
bGV2ZWw9MiwKKyAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgICAgIHJhaXNlCiAKQEAgLTc0Nyw5ICs5NzQsNyBAQCBjbGFzcyBDb25maWcob2JqZWN0KToK
IAogICAgICAgICBtaW52ZXIgPSBzZWxmLmluaWNmZy5nZXQoIm1pbnZlcnNpb24iLCBOb25lKQog
ICAgICAgICBpZiBtaW52ZXI6Ci0gICAgICAgICAgICB2ZXIgPSBtaW52ZXIuc3BsaXQoIi4iKQot
ICAgICAgICAgICAgbXl2ZXIgPSBweXRlc3QuX192ZXJzaW9uX18uc3BsaXQoIi4iKQotICAgICAg
ICAgICAgaWYgbXl2ZXIgPCB2ZXI6CisgICAgICAgICAgICBpZiBWZXJzaW9uKG1pbnZlcikgPiBW
ZXJzaW9uKHB5dGVzdC5fX3ZlcnNpb25fXyk6CiAgICAgICAgICAgICAgICAgcmFpc2UgcHl0ZXN0
LlVzYWdlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICIlczolZDogcmVxdWlyZXMgcHl0ZXN0
LSVzLCBhY3R1YWwgcHl0ZXN0LSVzJyIKICAgICAgICAgICAgICAgICAgICAgJSAoCkBAIC03Nzgs
MTEgKzEwMDMsMTAgQEAgY2xhc3MgQ29uZmlnKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgYXJn
cywgc2VsZi5vcHRpb24sIG5hbWVzcGFjZT1zZWxmLm9wdGlvbgogICAgICAgICAgICAgKQogICAg
ICAgICAgICAgaWYgbm90IGFyZ3M6Ci0gICAgICAgICAgICAgICAgY3dkID0gb3MuZ2V0Y3dkKCkK
LSAgICAgICAgICAgICAgICBpZiBjd2QgPT0gc2VsZi5yb290ZGlyOgorICAgICAgICAgICAgICAg
IGlmIHNlbGYuaW52b2NhdGlvbl9kaXIgPT0gc2VsZi5yb290ZGlyOgogICAgICAgICAgICAgICAg
ICAgICBhcmdzID0gc2VsZi5nZXRpbmkoInRlc3RwYXRocyIpCiAgICAgICAgICAgICAgICAgaWYg
bm90IGFyZ3M6Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBbY3dkXQorICAgICAgICAgICAg
ICAgICAgICBhcmdzID0gW3N0cihzZWxmLmludm9jYXRpb25fZGlyKV0KICAgICAgICAgICAgIHNl
bGYuYXJncyA9IGFyZ3MKICAgICAgICAgZXhjZXB0IFByaW50SGVscDoKICAgICAgICAgICAgIHBh
c3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbmZpZy9hcmdwYXJzaW5n
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL2FyZ3BhcnNpbmcucHkKaW5kZXgg
NzgxZDhlOGM0ZWU1YzgxNDI5NmJjMzc5NjRkYjM0ZTAyYjdlYjI2NS4uMzdmYjc3MmRiOTk3ZWM4
ODIxZWNlNjNmOTA0ZjkzODFjZjNjZjAzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3QvY29uZmlnL2FyZ3BhcnNpbmcucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
Y29uZmlnL2FyZ3BhcnNpbmcucHkKQEAgLTEsNiArMSwxMSBAQAotaW1wb3J0IHNpeAotaW1wb3J0
IHdhcm5pbmdzCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IGFyZ3BhcnNlCitpbXBv
cnQgd2FybmluZ3MKKworaW1wb3J0IHB5CitpbXBvcnQgc2l4CisKK2Zyb20gX3B5dGVzdC5jb25m
aWcuZXhjZXB0aW9ucyBpbXBvcnQgVXNhZ2VFcnJvcgogCiBGSUxFX09SX0RJUiA9ICJmaWxlX29y
X2RpciIKIApAQCAtMTIsNiArMTcsOCBAQCBjbGFzcyBQYXJzZXIob2JqZWN0KToKICAgICAgICAg
dGhlcmUncyBhbiBlcnJvciBwcm9jZXNzaW5nIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgog
ICAgICIiIgogCisgICAgcHJvZyA9IE5vbmUKKwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1c2Fn
ZT1Ob25lLCBwcm9jZXNzb3B0PU5vbmUpOgogICAgICAgICBzZWxmLl9hbm9ueW1vdXMgPSBPcHRp
b25Hcm91cCgiY3VzdG9tIG9wdGlvbnMiLCBwYXJzZXI9c2VsZikKICAgICAgICAgc2VsZi5fZ3Jv
dXBzID0gW10KQEAgLTcwLDEyICs3NywxMyBAQCBjbGFzcyBQYXJzZXIob2JqZWN0KToKIAogICAg
ICAgICBzZWxmLm9wdHBhcnNlciA9IHNlbGYuX2dldHBhcnNlcigpCiAgICAgICAgIHRyeV9hcmdj
b21wbGV0ZShzZWxmLm9wdHBhcnNlcikKLSAgICAgICAgcmV0dXJuIHNlbGYub3B0cGFyc2VyLnBh
cnNlX2FyZ3MoW3N0cih4KSBmb3IgeCBpbiBhcmdzXSwgbmFtZXNwYWNlPW5hbWVzcGFjZSkKKyAg
ICAgICAgYXJncyA9IFtzdHIoeCkgaWYgaXNpbnN0YW5jZSh4LCBweS5wYXRoLmxvY2FsKSBlbHNl
IHggZm9yIHggaW4gYXJnc10KKyAgICAgICAgcmV0dXJuIHNlbGYub3B0cGFyc2VyLnBhcnNlX2Fy
Z3MoYXJncywgbmFtZXNwYWNlPW5hbWVzcGFjZSkKIAogICAgIGRlZiBfZ2V0cGFyc2VyKHNlbGYp
OgogICAgICAgICBmcm9tIF9weXRlc3QuX2FyZ2NvbXBsZXRlIGltcG9ydCBmaWxlc2NvbXBsZXRl
cgogCi0gICAgICAgIG9wdHBhcnNlciA9IE15T3B0aW9uUGFyc2VyKHNlbGYsIHNlbGYuZXh0cmFf
aW5mbykKKyAgICAgICAgb3B0cGFyc2VyID0gTXlPcHRpb25QYXJzZXIoc2VsZiwgc2VsZi5leHRy
YV9pbmZvLCBwcm9nPXNlbGYucHJvZykKICAgICAgICAgZ3JvdXBzID0gc2VsZi5fZ3JvdXBzICsg
W3NlbGYuX2Fub255bW91c10KICAgICAgICAgZm9yIGdyb3VwIGluIGdyb3VwczoKICAgICAgICAg
ICAgIGlmIGdyb3VwLm9wdGlvbnM6CkBAIC0xMDYsNyArMTE0LDcgQEAgY2xhc3MgUGFyc2VyKG9i
amVjdCk6CiAgICAgICAgIHRoZSByZW1haW5pbmcgYXJndW1lbnRzIHVua25vd24gYXQgdGhpcyBw
b2ludC4KICAgICAgICAgIiIiCiAgICAgICAgIG9wdHBhcnNlciA9IHNlbGYuX2dldHBhcnNlcigp
Ci0gICAgICAgIGFyZ3MgPSBbc3RyKHgpIGZvciB4IGluIGFyZ3NdCisgICAgICAgIGFyZ3MgPSBb
c3RyKHgpIGlmIGlzaW5zdGFuY2UoeCwgcHkucGF0aC5sb2NhbCkgZWxzZSB4IGZvciB4IGluIGFy
Z3NdCiAgICAgICAgIHJldHVybiBvcHRwYXJzZXIucGFyc2Vfa25vd25fYXJncyhhcmdzLCBuYW1l
c3BhY2U9bmFtZXNwYWNlKQogCiAgICAgZGVmIGFkZGluaShzZWxmLCBuYW1lLCBoZWxwLCB0eXBl
PU5vbmUsIGRlZmF1bHQ9Tm9uZSk6CkBAIC0xNDUsMTAgKzE1MywxMSBAQCBjbGFzcyBBcmd1bWVu
dEVycm9yKEV4Y2VwdGlvbik6CiBjbGFzcyBBcmd1bWVudChvYmplY3QpOgogICAgICIiImNsYXNz
IHRoYXQgbWltaWNzIHRoZSBuZWNlc3NhcnkgYmVoYXZpb3VyIG9mIG9wdHBhcnNlLk9wdGlvbgog
Ci0gICAgaXRzIGN1cnJlbnRseSBhIGxlYXN0IGVmZm9ydCBpbXBsZW1lbnRhdGlvbgorICAgIGl0
J3MgY3VycmVudGx5IGEgbGVhc3QgZWZmb3J0IGltcGxlbWVudGF0aW9uCiAgICAgYW5kIGlnbm9y
aW5nIGNob2ljZXMgYW5kIGludGVnZXIgcHJlZml4ZXMKICAgICBodHRwczovL2RvY3MucHl0aG9u
Lm9yZy8zL2xpYnJhcnkvb3B0cGFyc2UuaHRtbCNvcHRwYXJzZS1zdGFuZGFyZC1vcHRpb24tdHlw
ZXMKICAgICAiIiIKKwogICAgIF90eXBfbWFwID0geyJpbnQiOiBpbnQsICJzdHJpbmciOiBzdHIs
ICJmbG9hdCI6IGZsb2F0LCAiY29tcGxleCI6IGNvbXBsZXh9CiAKICAgICBkZWYgX19pbml0X18o
c2VsZiwgKm5hbWVzLCAqKmF0dHJzKToKQEAgLTE3MywyMyArMTgyLDIzIEBAIGNsYXNzIEFyZ3Vt
ZW50KG9iamVjdCk6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHR5cCwgc2l4LnN0cmluZ190
eXBlcyk6CiAgICAgICAgICAgICAgICAgaWYgdHlwID09ICJjaG9pY2UiOgogICAgICAgICAgICAg
ICAgICAgICB3YXJuaW5ncy53YXJuKAotICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUgYXJn
dW1lbnQgdG8gYWRkb3B0aW9uKCkgaXMgYSBzdHJpbmcgJXIuIgotICAgICAgICAgICAgICAgICAg
ICAgICAgIiBGb3IgcGFyc2VhcmcgdGhpcyBpcyBvcHRpb25hbCBhbmQgd2hlbiBzdXBwbGllZCIK
LSAgICAgICAgICAgICAgICAgICAgICAgICIgc2hvdWxkIGJlIGEgdHlwZS4iCisgICAgICAgICAg
ICAgICAgICAgICAgICAiYHR5cGVgIGFyZ3VtZW50IHRvIGFkZG9wdGlvbigpIGlzIHRoZSBzdHJp
bmcgJXIuIgorICAgICAgICAgICAgICAgICAgICAgICAgIiBGb3IgY2hvaWNlcyB0aGlzIGlzIG9w
dGlvbmFsIGFuZCBjYW4gYmUgb21pdHRlZCwgIgorICAgICAgICAgICAgICAgICAgICAgICAgIiBi
dXQgd2hlbiBzdXBwbGllZCBzaG91bGQgYmUgYSB0eXBlIChmb3IgZXhhbXBsZSBgc3RyYCBvciBg
aW50YCkuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAob3B0aW9uczogJXMpIiAlICh0eXAs
IG5hbWVzKSwKICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9MywKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YWNrbGV2ZWw9NCwKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg
ICAgICAjIGFyZ3BhcnNlIGV4cGVjdHMgYSB0eXBlIGhlcmUgdGFrZSBpdCBmcm9tCiAgICAgICAg
ICAgICAgICAgICAgICMgdGhlIHR5cGUgb2YgdGhlIGZpcnN0IGVsZW1lbnQKICAgICAgICAgICAg
ICAgICAgICAgYXR0cnNbInR5cGUiXSA9IHR5cGUoYXR0cnNbImNob2ljZXMiXVswXSkKICAgICAg
ICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAotICAg
ICAgICAgICAgICAgICAgICAgICAgInR5cGUgYXJndW1lbnQgdG8gYWRkb3B0aW9uKCkgaXMgYSBz
dHJpbmcgJXIuIgotICAgICAgICAgICAgICAgICAgICAgICAgIiBGb3IgcGFyc2VhcmcgdGhpcyBz
aG91bGQgYmUgYSB0eXBlLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICJgdHlwZWAgYXJndW1l
bnQgdG8gYWRkb3B0aW9uKCkgaXMgdGhlIHN0cmluZyAlciwgIgorICAgICAgICAgICAgICAgICAg
ICAgICAgIiBidXQgd2hlbiBzdXBwbGllZCBzaG91bGQgYmUgYSB0eXBlIChmb3IgZXhhbXBsZSBg
c3RyYCBvciBgaW50YCkuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAob3B0aW9uczogJXMp
IiAlICh0eXAsIG5hbWVzKSwKICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2Fy
bmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9MywKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YWNrbGV2ZWw9NCwKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg
ICAgICAgICAgICAgICBhdHRyc1sidHlwZSJdID0gQXJndW1lbnQuX3R5cF9tYXBbdHlwXQogICAg
ICAgICAgICAgICAgICMgdXNlZCBpbiB0ZXN0X3BhcnNlb3B0IC0+IHRlc3RfcGFyc2VfZGVmYXVs
dGdldHRlcgpAQCAtMjc0LDcgKzI4Myw2IEBAIGNsYXNzIEFyZ3VtZW50KG9iamVjdCk6CiAKIAog
Y2xhc3MgT3B0aW9uR3JvdXAob2JqZWN0KToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1l
LCBkZXNjcmlwdGlvbj0iIiwgcGFyc2VyPU5vbmUpOgogICAgICAgICBzZWxmLm5hbWUgPSBuYW1l
CiAgICAgICAgIHNlbGYuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbgpAQCAtMzEyLDEzICszMjAs
MTMgQEAgY2xhc3MgT3B0aW9uR3JvdXAob2JqZWN0KToKIAogCiBjbGFzcyBNeU9wdGlvblBhcnNl
cihhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcik6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGFy
c2VyLCBleHRyYV9pbmZvPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIGV4
dHJhX2luZm89Tm9uZSwgcHJvZz1Ob25lKToKICAgICAgICAgaWYgbm90IGV4dHJhX2luZm86CiAg
ICAgICAgICAgICBleHRyYV9pbmZvID0ge30KICAgICAgICAgc2VsZi5fcGFyc2VyID0gcGFyc2Vy
CiAgICAgICAgIGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyLl9faW5pdF9fKAogICAgICAgICAgICAg
c2VsZiwKKyAgICAgICAgICAgIHByb2c9cHJvZywKICAgICAgICAgICAgIHVzYWdlPXBhcnNlci5f
dXNhZ2UsCiAgICAgICAgICAgICBhZGRfaGVscD1GYWxzZSwKICAgICAgICAgICAgIGZvcm1hdHRl
cl9jbGFzcz1Ecm9wU2hvcnRlckxvbmdIZWxwRm9ybWF0dGVyLApAQCAtMzI3LDYgKzMzNSwxNSBA
QCBjbGFzcyBNeU9wdGlvblBhcnNlcihhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcik6CiAgICAgICAg
ICMgYW4gdXNhZ2UgZXJyb3IgdG8gcHJvdmlkZSBtb3JlIGNvbnRleHR1YWwgaW5mb3JtYXRpb24g
dG8gdGhlIHVzZXIKICAgICAgICAgc2VsZi5leHRyYV9pbmZvID0gZXh0cmFfaW5mbwogCisgICAg
ZGVmIGVycm9yKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICAiIiJUcmFuc2Zvcm0gYXJncGFyc2Ug
ZXJyb3IgbWVzc2FnZSBpbnRvIFVzYWdlRXJyb3IuIiIiCisgICAgICAgIG1zZyA9ICIlczogZXJy
b3I6ICVzIiAlIChzZWxmLnByb2csIG1lc3NhZ2UpCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxm
Ll9wYXJzZXIsICJfY29uZmlnX3NvdXJjZV9oaW50Iik6CisgICAgICAgICAgICBtc2cgPSAiJXMg
KCVzKSIgJSAobXNnLCBzZWxmLl9wYXJzZXIuX2NvbmZpZ19zb3VyY2VfaGludCkKKworICAgICAg
ICByYWlzZSBVc2FnZUVycm9yKHNlbGYuZm9ybWF0X3VzYWdlKCkgKyBtc2cpCisKICAgICBkZWYg
cGFyc2VfYXJncyhzZWxmLCBhcmdzPU5vbmUsIG5hbWVzcGFjZT1Ob25lKToKICAgICAgICAgIiIi
YWxsb3cgc3BsaXR0aW5nIG9mIHBvc2l0aW9uYWwgYXJndW1lbnRzIiIiCiAgICAgICAgIGFyZ3Ms
IGFyZ3YgPSBzZWxmLnBhcnNlX2tub3duX2FyZ3MoYXJncywgbmFtZXNwYWNlKQpAQCAtMzc4LDkg
KzM5NSw4IEBAIGNsYXNzIERyb3BTaG9ydGVyTG9uZ0hlbHBGb3JtYXR0ZXIoYXJncGFyc2UuSGVs
cEZvcm1hdHRlcik6CiAgICAgICAgICAgICB4eG9wdGlvbiA9IG9wdGlvblsyOl0KICAgICAgICAg
ICAgIGlmIHh4b3B0aW9uLnNwbGl0KClbMF0gbm90IGluIG9wdGlvbl9tYXA6CiAgICAgICAgICAg
ICAgICAgc2hvcnRlbmVkID0geHhvcHRpb24ucmVwbGFjZSgiLSIsICIiKQotICAgICAgICAgICAg
ICAgIGlmICgKLSAgICAgICAgICAgICAgICAgICAgc2hvcnRlbmVkIG5vdCBpbiBzaG9ydF9sb25n
Ci0gICAgICAgICAgICAgICAgICAgIG9yIGxlbihzaG9ydF9sb25nW3Nob3J0ZW5lZF0pIDwgbGVu
KHh4b3B0aW9uKQorICAgICAgICAgICAgICAgIGlmIHNob3J0ZW5lZCBub3QgaW4gc2hvcnRfbG9u
ZyBvciBsZW4oc2hvcnRfbG9uZ1tzaG9ydGVuZWRdKSA8IGxlbigKKyAgICAgICAgICAgICAgICAg
ICAgeHhvcHRpb24KICAgICAgICAgICAgICAgICApOgogICAgICAgICAgICAgICAgICAgICBzaG9y
dF9sb25nW3Nob3J0ZW5lZF0gPSB4eG9wdGlvbgogICAgICAgICAjIG5vdyBzaG9ydF9sb25nIGhh
cyBiZWVuIGZpbGxlZCBvdXQgdG8gdGhlIGxvbmdlc3Qgd2l0aCBkYXNoZXMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbmZpZy9leGNlcHRpb25zLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvY29uZmlnL2V4Y2VwdGlvbnMucHkKaW5kZXggNjRiYWU4MzRkMWNlNDAw
MGViMGMyMDliNzhlOTMzNTRhNTUwNWZiMC4uYmY1OGZkZTVkYmY4MzdkOGUyMWViM2I0MjRlY2Ez
YWFkZDA2Y2MyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL2V4
Y2VwdGlvbnMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL2V4Y2VwdGlv
bnMucHkKQEAgLTEsMyArMSw0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogY2xhc3MgVXNh
Z2VFcnJvcihFeGNlcHRpb24pOgogICAgICIiIiBlcnJvciBpbiBweXRlc3QgdXNhZ2Ugb3IgaW52
b2NhdGlvbiIiIgogCkBAIC01LDQgKzYsNSBAQCBjbGFzcyBVc2FnZUVycm9yKEV4Y2VwdGlvbik6
CiBjbGFzcyBQcmludEhlbHAoRXhjZXB0aW9uKToKICAgICAiIiJSYWlzZWQgd2hlbiBweXRlc3Qg
c2hvdWxkIHByaW50IGl0J3MgaGVscCB0byBza2lwIHRoZSByZXN0IG9mIHRoZQogICAgIGFyZ3Vt
ZW50IHBhcnNpbmcgYW5kIHZhbGlkYXRpb24uIiIiCisKICAgICBwYXNzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcvZmluZHBhdGhzLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3QvY29uZmlnL2ZpbmRwYXRocy5weQppbmRleCBmZGU3YmRkYjkzOWJiNWFlYjYz
NDRlNDU4ZDY1ZjJhMTc3MDU3NzdkLi5lNjc3OWIyODliY2ZhMDU1OTFmMTIxNGY2YzA5YTFhYWUy
NjEyZDcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcvZmluZHBh
dGhzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbmZpZy9maW5kcGF0aHMucHkK
QEAgLTEsNiArMSwxMCBAQAotaW1wb3J0IHB5CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1w
b3J0IG9zCisKK2ltcG9ydCBweQorCiBmcm9tIC5leGNlcHRpb25zIGltcG9ydCBVc2FnZUVycm9y
Citmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwKIAogCiBkZWYgZXhpc3RzKHBhdGgs
IGlnbm9yZT1FbnZpcm9ubWVudEVycm9yKToKQEAgLTEwLDE1ICsxNCwxMiBAQCBkZWYgZXhpc3Rz
KHBhdGgsIGlnbm9yZT1FbnZpcm9ubWVudEVycm9yKToKICAgICAgICAgcmV0dXJuIEZhbHNlCiAK
IAotZGVmIGdldGNmZyhhcmdzLCB3YXJuZnVuYz1Ob25lKToKK2RlZiBnZXRjZmcoYXJncywgY29u
ZmlnPU5vbmUpOgogICAgICIiIgogICAgIFNlYXJjaCB0aGUgbGlzdCBvZiBhcmd1bWVudHMgZm9y
IGEgdmFsaWQgaW5pLWZpbGUgZm9yIHB5dGVzdCwKICAgICBhbmQgcmV0dXJuIGEgdHVwbGUgb2Yg
KHJvb3RkaXIsIGluaWZpbGUsIGNmZy1kaWN0KS4KIAotICAgIG5vdGU6IHdhcm5mdW5jIGlzIGFu
IG9wdGlvbmFsIGZ1bmN0aW9uIHVzZWQgdG8gd2FybgotICAgICAgICBhYm91dCBpbmktZmlsZXMg
dGhhdCB1c2UgZGVwcmVjYXRlZCBmZWF0dXJlcy4KLSAgICAgICAgVGhpcyBwYXJhbWV0ZXIgc2hv
dWxkIGJlIHJlbW92ZWQgd2hlbiBweXRlc3QKLSAgICAgICAgYWRvcHRzIHN0YW5kYXJkIGRlcHJl
Y2F0aW9uIHdhcm5pbmdzICgjMTgwNCkuCisgICAgbm90ZTogY29uZmlnIGlzIG9wdGlvbmFsIGFu
ZCB1c2VkIG9ubHkgdG8gaXNzdWUgd2FybmluZ3MgZXhwbGljaXRseSAoIzI4OTEpLgogICAgICIi
IgogICAgIGZyb20gX3B5dGVzdC5kZXByZWNhdGVkIGltcG9ydCBDRkdfUFlURVNUX1NFQ1RJT04K
IApAQCAtMzIsMTggKzMzLDI0IEBAIGRlZiBnZXRjZmcoYXJncywgd2FybmZ1bmM9Tm9uZSk6CiAg
ICAgICAgICAgICBmb3IgaW5pYmFzZW5hbWUgaW4gaW5pYmFzZW5hbWVzOgogICAgICAgICAgICAg
ICAgIHAgPSBiYXNlLmpvaW4oaW5pYmFzZW5hbWUpCiAgICAgICAgICAgICAgICAgaWYgZXhpc3Rz
KHApOgotICAgICAgICAgICAgICAgICAgICBpbmljb25maWcgPSBweS5pbmljb25maWcuSW5pQ29u
ZmlnKHApCi0gICAgICAgICAgICAgICAgICAgIGlmICJweXRlc3QiIGluIGluaWNvbmZpZy5zZWN0
aW9uczoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluaWJhc2VuYW1lID09ICJzZXR1cC5j
ZmciIGFuZCB3YXJuZnVuYzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuZnVuYygK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkMxIiwgQ0ZHX1BZVEVTVF9TRUNUSU9O
LmZvcm1hdChmaWxlbmFtZT1pbmliYXNlbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICApCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZSwgcCwgaW5pY29uZmlnWyJw
eXRlc3QiXQorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAg
ICBpbmljb25maWcgPSBweS5pbmljb25maWcuSW5pQ29uZmlnKHApCisgICAgICAgICAgICAgICAg
ICAgIGV4Y2VwdCBweS5pbmljb25maWcuUGFyc2VFcnJvciBhcyBleGM6CisgICAgICAgICAgICAg
ICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKHN0cihleGMpKQorCiAgICAgICAgICAgICAgICAg
ICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgIGluaWJhc2VuYW1lID09ICJzZXR1cC5j
ZmciCiAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgInRvb2w6cHl0ZXN0IiBpbiBpbmljb25m
aWcuc2VjdGlvbnMKICAgICAgICAgICAgICAgICAgICAgKToKICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBiYXNlLCBwLCBpbmljb25maWdbInRvb2w6cHl0ZXN0Il0KKyAgICAgICAgICAg
ICAgICAgICAgZWxpZiAicHl0ZXN0IiBpbiBpbmljb25maWcuc2VjdGlvbnM6CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiBpbmliYXNlbmFtZSA9PSAic2V0dXAuY2ZnIiBhbmQgY29uZmlnIGlz
IG5vdCBOb25lOgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ0ZHX1BZVEVTVF9TRUNUSU9OLmZvcm1hdChmaWxlbmFt
ZT1pbmliYXNlbmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dHJhY2U9
RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJhc2UsIHAsIGluaWNvbmZpZ1sicHl0ZXN0Il0KICAgICAgICAgICAgICAg
ICAgICAgZWxpZiBpbmliYXNlbmFtZSA9PSAicHl0ZXN0LmluaSI6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAjIGFsbG93ZWQgdG8gYmUgZW1wdHkKICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBiYXNlLCBwLCB7fQpAQCAtNzQsNyArODEsNiBAQCBkZWYgZ2V0X2NvbW1vbl9hbmNlc3Rv
cihwYXRocyk6CiAKIAogZGVmIGdldF9kaXJzX2Zyb21fYXJncyhhcmdzKToKLQogICAgIGRlZiBp
c19vcHRpb24oeCk6CiAgICAgICAgIHJldHVybiBzdHIoeCkuc3RhcnRzd2l0aCgiLSIpCiAKQEAg
LTk2LDQ1ICsxMDIsNTIgQEAgZGVmIGdldF9kaXJzX2Zyb21fYXJncyhhcmdzKToKICAgICByZXR1
cm4gW2dldF9kaXJfZnJvbV9wYXRoKHBhdGgpIGZvciBwYXRoIGluIHBvc3NpYmxlX3BhdGhzIGlm
IHBhdGguZXhpc3RzKCldCiAKIAotZGVmIGRldGVybWluZV9zZXR1cChpbmlmaWxlLCBhcmdzLCB3
YXJuZnVuYz1Ob25lLCByb290ZGlyX2NtZF9hcmc9Tm9uZSk6CitkZWYgZGV0ZXJtaW5lX3NldHVw
KGluaWZpbGUsIGFyZ3MsIHJvb3RkaXJfY21kX2FyZz1Ob25lLCBjb25maWc9Tm9uZSk6CiAgICAg
ZGlycyA9IGdldF9kaXJzX2Zyb21fYXJncyhhcmdzKQogICAgIGlmIGluaWZpbGU6CiAgICAgICAg
IGluaWNvbmZpZyA9IHB5LmluaWNvbmZpZy5JbmlDb25maWcoaW5pZmlsZSkKICAgICAgICAgaXNf
Y2ZnX2ZpbGUgPSBzdHIoaW5pZmlsZSkuZW5kc3dpdGgoIi5jZmciKQotICAgICAgICAjIFRPRE86
IFtweXRlc3RdIHNlY3Rpb24gaW4gKi5jZmcgZmlsZXMgaXMgZGVwcmljYXRlZC4gTmVlZCByZWZh
Y3RvcmluZy4KICAgICAgICAgc2VjdGlvbnMgPSBbInRvb2w6cHl0ZXN0IiwgInB5dGVzdCJdIGlm
IGlzX2NmZ19maWxlIGVsc2UgWyJweXRlc3QiXQogICAgICAgICBmb3Igc2VjdGlvbiBpbiBzZWN0
aW9uczoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBpbmljZmcgPSBpbmljb25m
aWdbc2VjdGlvbl0KLSAgICAgICAgICAgICAgICBpZiBpc19jZmdfZmlsZSBhbmQgc2VjdGlvbiA9
PSAicHl0ZXN0IiBhbmQgd2FybmZ1bmM6CisgICAgICAgICAgICAgICAgaWYgaXNfY2ZnX2ZpbGUg
YW5kIHNlY3Rpb24gPT0gInB5dGVzdCIgYW5kIGNvbmZpZyBpcyBub3QgTm9uZToKICAgICAgICAg
ICAgICAgICAgICAgZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IENGR19QWVRFU1RfU0VD
VElPTgogCi0gICAgICAgICAgICAgICAgICAgIHdhcm5mdW5jKCJDMSIsIENGR19QWVRFU1RfU0VD
VElPTi5mb3JtYXQoZmlsZW5hbWU9c3RyKGluaWZpbGUpKSkKKyAgICAgICAgICAgICAgICAgICAg
ZmFpbCgKKyAgICAgICAgICAgICAgICAgICAgICAgIENGR19QWVRFU1RfU0VDVElPTi5mb3JtYXQo
ZmlsZW5hbWU9c3RyKGluaWZpbGUpKSwgcHl0cmFjZT1GYWxzZQorICAgICAgICAgICAgICAgICAg
ICApCiAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoK
ICAgICAgICAgICAgICAgICBpbmljZmcgPSBOb25lCi0gICAgICAgIHJvb3RkaXIgPSBnZXRfY29t
bW9uX2FuY2VzdG9yKGRpcnMpCisgICAgICAgIGlmIHJvb3RkaXJfY21kX2FyZyBpcyBOb25lOgor
ICAgICAgICAgICAgcm9vdGRpciA9IGdldF9jb21tb25fYW5jZXN0b3IoZGlycykKICAgICBlbHNl
OgogICAgICAgICBhbmNlc3RvciA9IGdldF9jb21tb25fYW5jZXN0b3IoZGlycykKLSAgICAgICAg
cm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0gZ2V0Y2ZnKFthbmNlc3Rvcl0sIHdhcm5mdW5jPXdh
cm5mdW5jKQotICAgICAgICBpZiByb290ZGlyIGlzIE5vbmU6Ci0gICAgICAgICAgICBmb3Igcm9v
dGRpciBpbiBhbmNlc3Rvci5wYXJ0cyhyZXZlcnNlPVRydWUpOgotICAgICAgICAgICAgICAgIGlm
IHJvb3RkaXIuam9pbigic2V0dXAucHkiKS5leGlzdHMoKToKKyAgICAgICAgcm9vdGRpciwgaW5p
ZmlsZSwgaW5pY2ZnID0gZ2V0Y2ZnKFthbmNlc3Rvcl0sIGNvbmZpZz1jb25maWcpCisgICAgICAg
IGlmIHJvb3RkaXIgaXMgTm9uZSBhbmQgcm9vdGRpcl9jbWRfYXJnIGlzIE5vbmU6CisgICAgICAg
ICAgICBmb3IgcG9zc2libGVfcm9vdGRpciBpbiBhbmNlc3Rvci5wYXJ0cyhyZXZlcnNlPVRydWUp
OgorICAgICAgICAgICAgICAgIGlmIHBvc3NpYmxlX3Jvb3RkaXIuam9pbigic2V0dXAucHkiKS5l
eGlzdHMoKToKKyAgICAgICAgICAgICAgICAgICAgcm9vdGRpciA9IHBvc3NpYmxlX3Jvb3RkaXIK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0gZ2V0Y2ZnKGRpcnMsIHdhcm5mdW5jPXdh
cm5mdW5jKQorICAgICAgICAgICAgICAgIGlmIGRpcnMgIT0gW2FuY2VzdG9yXToKKyAgICAgICAg
ICAgICAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0gZ2V0Y2ZnKGRpcnMsIGNvbmZp
Zz1jb25maWcpCiAgICAgICAgICAgICAgICAgaWYgcm9vdGRpciBpcyBOb25lOgotICAgICAgICAg
ICAgICAgICAgICByb290ZGlyID0gZ2V0X2NvbW1vbl9hbmNlc3RvcihbcHkucGF0aC5sb2NhbCgp
LCBhbmNlc3Rvcl0pCisgICAgICAgICAgICAgICAgICAgIGlmIGNvbmZpZyBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgICAgICAgICAgICAgIGN3ZCA9IGNvbmZpZy5pbnZvY2F0aW9uX2RpcgorICAg
ICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgY3dkID0gcHku
cGF0aC5sb2NhbCgpCisgICAgICAgICAgICAgICAgICAgIHJvb3RkaXIgPSBnZXRfY29tbW9uX2Fu
Y2VzdG9yKFtjd2QsIGFuY2VzdG9yXSkKICAgICAgICAgICAgICAgICAgICAgaXNfZnNfcm9vdCA9
IG9zLnBhdGguc3BsaXRkcml2ZShzdHIocm9vdGRpcikpWzFdID09ICIvIgogICAgICAgICAgICAg
ICAgICAgICBpZiBpc19mc19yb290OgogICAgICAgICAgICAgICAgICAgICAgICAgcm9vdGRpciA9
IGFuY2VzdG9yCiAgICAgaWYgcm9vdGRpcl9jbWRfYXJnOgotICAgICAgICByb290ZGlyX2Fic19w
YXRoID0gcHkucGF0aC5sb2NhbChvcy5wYXRoLmV4cGFuZHZhcnMocm9vdGRpcl9jbWRfYXJnKSkK
LSAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIoc3RyKHJvb3RkaXJfYWJzX3BhdGgpKToKKyAg
ICAgICAgcm9vdGRpciA9IHB5LnBhdGgubG9jYWwob3MucGF0aC5leHBhbmR2YXJzKHJvb3RkaXJf
Y21kX2FyZykpCisgICAgICAgIGlmIG5vdCByb290ZGlyLmlzZGlyKCk6CiAgICAgICAgICAgICBy
YWlzZSBVc2FnZUVycm9yKAogICAgICAgICAgICAgICAgICJEaXJlY3RvcnkgJ3t9JyBub3QgZm91
bmQuIENoZWNrIHlvdXIgJy0tcm9vdGRpcicgb3B0aW9uLiIuZm9ybWF0KAotICAgICAgICAgICAg
ICAgICAgICByb290ZGlyX2Fic19wYXRoCisgICAgICAgICAgICAgICAgICAgIHJvb3RkaXIKICAg
ICAgICAgICAgICAgICApCiAgICAgICAgICAgICApCi0gICAgICAgIHJvb3RkaXIgPSByb290ZGly
X2Fic19wYXRoCiAgICAgcmV0dXJuIHJvb3RkaXIsIGluaWZpbGUsIGluaWNmZyBvciB7fQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvZGVidWdnaW5nLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvZGVidWdnaW5nLnB5CmluZGV4IDJlMjUzYWFhMmFmMzBhZDFiNDE1ZmRl
ZWQ0ZjcwMjJjNzZkY2YwNTcuLjk5ZDM1YTVhYjc3ZTE4MGU5OTMzYWY3NWQzOWQ0ZjU0ZjZjZWVk
Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2RlYnVnZ2luZy5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9kZWJ1Z2dpbmcucHkKQEAgLTEsMTYgKzEsMjggQEAK
KyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIgaW50ZXJhY3RpdmUgZGVidWdnaW5nIHdpdGgg
UERCLCB0aGUgUHl0aG9uIERlYnVnZ2VyLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBhcmdwYXJzZQog
aW1wb3J0IHBkYgogaW1wb3J0IHN5cwotaW1wb3J0IG9zCiBmcm9tIGRvY3Rlc3QgaW1wb3J0IFVu
ZXhwZWN0ZWRFeGNlcHRpb24KIAotdHJ5OgotICAgIGZyb20gYnVpbHRpbnMgaW1wb3J0IGJyZWFr
cG9pbnQgICMgbm9xYQorZnJvbSBfcHl0ZXN0IGltcG9ydCBvdXRjb21lcworZnJvbSBfcHl0ZXN0
LmNvbmZpZyBpbXBvcnQgaG9va2ltcGwKK2Zyb20gX3B5dGVzdC5jb25maWcuZXhjZXB0aW9ucyBp
bXBvcnQgVXNhZ2VFcnJvcgorCiAKLSAgICBTVVBQT1JUU19CUkVBS1BPSU5UX0JVSUxUSU4gPSBU
cnVlCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgU1VQUE9SVFNfQlJFQUtQT0lOVF9CVUlMVElO
ID0gRmFsc2UKK2RlZiBfdmFsaWRhdGVfdXNlcGRiX2Nscyh2YWx1ZSk6CisgICAgIiIiVmFsaWRh
dGUgc3ludGF4IG9mIC0tcGRiY2xzIG9wdGlvbi4iIiIKKyAgICB0cnk6CisgICAgICAgIG1vZG5h
bWUsIGNsYXNzbmFtZSA9IHZhbHVlLnNwbGl0KCI6IikKKyAgICBleGNlcHQgVmFsdWVFcnJvcjoK
KyAgICAgICAgcmFpc2UgYXJncGFyc2UuQXJndW1lbnRUeXBlRXJyb3IoCisgICAgICAgICAgICAi
eyFyfSBpcyBub3QgaW4gdGhlIGZvcm1hdCAnbW9kbmFtZTpjbGFzc25hbWUnIi5mb3JtYXQodmFs
dWUpCisgICAgICAgICkKKyAgICByZXR1cm4gKG1vZG5hbWUsIGNsYXNzbmFtZSkKIAogCiBkZWYg
cHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgpAQCAtMjUsODUgKzM3LDI1NyBAQCBkZWYgcHl0ZXN0
X2FkZG9wdGlvbihwYXJzZXIpOgogICAgICAgICAiLS1wZGJjbHMiLAogICAgICAgICBkZXN0PSJ1
c2VwZGJfY2xzIiwKICAgICAgICAgbWV0YXZhcj0ibW9kdWxlbmFtZTpjbGFzc25hbWUiLAorICAg
ICAgICB0eXBlPV92YWxpZGF0ZV91c2VwZGJfY2xzLAogICAgICAgICBoZWxwPSJzdGFydCBhIGN1
c3RvbSBpbnRlcmFjdGl2ZSBQeXRob24gZGVidWdnZXIgb24gZXJyb3JzLiAiCiAgICAgICAgICJG
b3IgZXhhbXBsZTogLS1wZGJjbHM9SVB5dGhvbi50ZXJtaW5hbC5kZWJ1Z2dlcjpUZXJtaW5hbFBk
YiIsCiAgICAgKQorICAgIGdyb3VwLl9hZGRvcHRpb24oCisgICAgICAgICItLXRyYWNlIiwKKyAg
ICAgICAgZGVzdD0idHJhY2UiLAorICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAg
ICBoZWxwPSJJbW1lZGlhdGVseSBicmVhayB3aGVuIHJ1bm5pbmcgZWFjaCB0ZXN0LiIsCisgICAg
KQogCiAKIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLmdldHZh
bHVlKCJ1c2VwZGJfY2xzIik6Ci0gICAgICAgIG1vZG5hbWUsIGNsYXNzbmFtZSA9IGNvbmZpZy5n
ZXR2YWx1ZSgidXNlcGRiX2NscyIpLnNwbGl0KCI6IikKLSAgICAgICAgX19pbXBvcnRfXyhtb2Ru
YW1lKQotICAgICAgICBwZGJfY2xzID0gZ2V0YXR0cihzeXMubW9kdWxlc1ttb2RuYW1lXSwgY2xh
c3NuYW1lKQotICAgIGVsc2U6Ci0gICAgICAgIHBkYl9jbHMgPSBwZGIuUGRiCi0KKyAgICBpZiBj
b25maWcuZ2V0dmFsdWUoInRyYWNlIik6CisgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJl
Z2lzdGVyKFBkYlRyYWNlKCksICJwZGJ0cmFjZSIpCiAgICAgaWYgY29uZmlnLmdldHZhbHVlKCJ1
c2VwZGIiKToKICAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoUGRiSW52b2tl
KCksICJwZGJpbnZva2UiKQogCi0gICAgIyBVc2UgY3VzdG9tIFBkYiBjbGFzcyBzZXRfdHJhY2Ug
aW5zdGVhZCBvZiBkZWZhdWx0IFBkYiBvbiBicmVha3BvaW50KCkgY2FsbAotICAgIGlmIFNVUFBP
UlRTX0JSRUFLUE9JTlRfQlVJTFRJTjoKLSAgICAgICAgX2Vudmlyb25fcHl0aG9uYnJlYWtwb2lu
dCA9IG9zLmVudmlyb24uZ2V0KCJQWVRIT05CUkVBS1BPSU5UIiwgIiIpCi0gICAgICAgIGlmIF9l
bnZpcm9uX3B5dGhvbmJyZWFrcG9pbnQgPT0gIiI6Ci0gICAgICAgICAgICBzeXMuYnJlYWtwb2lu
dGhvb2sgPSBweXRlc3RQREIuc2V0X3RyYWNlCi0KLSAgICBvbGQgPSAocGRiLnNldF90cmFjZSwg
cHl0ZXN0UERCLl9wbHVnaW5tYW5hZ2VyKQotCi0gICAgZGVmIGZpbigpOgotICAgICAgICBwZGIu
c2V0X3RyYWNlLCBweXRlc3RQREIuX3BsdWdpbm1hbmFnZXIgPSBvbGQKLSAgICAgICAgcHl0ZXN0
UERCLl9jb25maWcgPSBOb25lCi0gICAgICAgIHB5dGVzdFBEQi5fcGRiX2NscyA9IHBkYi5QZGIK
LSAgICAgICAgaWYgU1VQUE9SVFNfQlJFQUtQT0lOVF9CVUlMVElOOgotICAgICAgICAgICAgc3lz
LmJyZWFrcG9pbnRob29rID0gc3lzLl9fYnJlYWtwb2ludGhvb2tfXwotCisgICAgcHl0ZXN0UERC
Ll9zYXZlZC5hcHBlbmQoCisgICAgICAgIChwZGIuc2V0X3RyYWNlLCBweXRlc3RQREIuX3BsdWdp
bm1hbmFnZXIsIHB5dGVzdFBEQi5fY29uZmlnKQorICAgICkKICAgICBwZGIuc2V0X3RyYWNlID0g
cHl0ZXN0UERCLnNldF90cmFjZQogICAgIHB5dGVzdFBEQi5fcGx1Z2lubWFuYWdlciA9IGNvbmZp
Zy5wbHVnaW5tYW5hZ2VyCiAgICAgcHl0ZXN0UERCLl9jb25maWcgPSBjb25maWcKLSAgICBweXRl
c3RQREIuX3BkYl9jbHMgPSBwZGJfY2xzCisKKyAgICAjIE5PVEU6IG5vdCB1c2luZyBweXRlc3Rf
dW5jb25maWd1cmUsIHNpbmNlIGl0IG1pZ2h0IGdldCBjYWxsZWQgYWx0aG91Z2gKKyAgICAjICAg
ICAgIHB5dGVzdF9jb25maWd1cmUgd2FzIG5vdCAoaWYgYW5vdGhlciBwbHVnaW4gcmFpc2VzIFVz
YWdlRXJyb3IpLgorICAgIGRlZiBmaW4oKToKKyAgICAgICAgKAorICAgICAgICAgICAgcGRiLnNl
dF90cmFjZSwKKyAgICAgICAgICAgIHB5dGVzdFBEQi5fcGx1Z2lubWFuYWdlciwKKyAgICAgICAg
ICAgIHB5dGVzdFBEQi5fY29uZmlnLAorICAgICAgICApID0gcHl0ZXN0UERCLl9zYXZlZC5wb3Ao
KQorCiAgICAgY29uZmlnLl9jbGVhbnVwLmFwcGVuZChmaW4pCiAKIAogY2xhc3MgcHl0ZXN0UERC
KG9iamVjdCk6CiAgICAgIiIiIFBzZXVkbyBQREIgdGhhdCBkZWZlcnMgdG8gdGhlIHJlYWwgcGRi
LiAiIiIKKwogICAgIF9wbHVnaW5tYW5hZ2VyID0gTm9uZQogICAgIF9jb25maWcgPSBOb25lCi0g
ICAgX3BkYl9jbHMgPSBwZGIuUGRiCisgICAgX3NhdmVkID0gW10KKyAgICBfcmVjdXJzaXZlX2Rl
YnVnID0gMAorICAgIF93cmFwcGVkX3BkYl9jbHMgPSBOb25lCiAKICAgICBAY2xhc3NtZXRob2QK
LSAgICBkZWYgc2V0X3RyYWNlKGNscyk6Ci0gICAgICAgICIiIiBpbnZva2UgUERCIHNldF90cmFj
ZSBkZWJ1Z2dpbmcsIGRyb3BwaW5nIGFueSBJTyBjYXB0dXJpbmcuICIiIgorICAgIGRlZiBfaXNf
Y2FwdHVyaW5nKGNscywgY2FwbWFuKToKKyAgICAgICAgaWYgY2FwbWFuOgorICAgICAgICAgICAg
cmV0dXJuIGNhcG1hbi5pc19jYXB0dXJpbmcoKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAg
IEBjbGFzc21ldGhvZAorICAgIGRlZiBfaW1wb3J0X3BkYl9jbHMoY2xzLCBjYXBtYW4pOgorICAg
ICAgICBpZiBub3QgY2xzLl9jb25maWc6CisgICAgICAgICAgICAjIEhhcHBlbnMgd2hlbiB1c2lu
ZyBweXRlc3Quc2V0X3RyYWNlIG91dHNpZGUgb2YgYSB0ZXN0LgorICAgICAgICAgICAgcmV0dXJu
IHBkYi5QZGIKKworICAgICAgICB1c2VwZGJfY2xzID0gY2xzLl9jb25maWcuZ2V0dmFsdWUoInVz
ZXBkYl9jbHMiKQorCisgICAgICAgIGlmIGNscy5fd3JhcHBlZF9wZGJfY2xzIGFuZCBjbHMuX3dy
YXBwZWRfcGRiX2Nsc1swXSA9PSB1c2VwZGJfY2xzOgorICAgICAgICAgICAgcmV0dXJuIGNscy5f
d3JhcHBlZF9wZGJfY2xzWzFdCisKKyAgICAgICAgaWYgdXNlcGRiX2NsczoKKyAgICAgICAgICAg
IG1vZG5hbWUsIGNsYXNzbmFtZSA9IHVzZXBkYl9jbHMKKworICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIF9faW1wb3J0X18obW9kbmFtZSkKKyAgICAgICAgICAgICAgICBtb2QgPSBz
eXMubW9kdWxlc1ttb2RuYW1lXQorCisgICAgICAgICAgICAgICAgIyBIYW5kbGUgLS1wZGJjbHM9
cGRiOnBkYi5QZGIgKHVzZWZ1bCBlLmcuIHdpdGggcGRicHApLgorICAgICAgICAgICAgICAgIHBh
cnRzID0gY2xhc3NuYW1lLnNwbGl0KCIuIikKKyAgICAgICAgICAgICAgICBwZGJfY2xzID0gZ2V0
YXR0cihtb2QsIHBhcnRzWzBdKQorICAgICAgICAgICAgICAgIGZvciBwYXJ0IGluIHBhcnRzWzE6
XToKKyAgICAgICAgICAgICAgICAgICAgcGRiX2NscyA9IGdldGF0dHIocGRiX2NscywgcGFydCkK
KyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjOgorICAgICAgICAgICAgICAgIHZh
bHVlID0gIjoiLmpvaW4oKG1vZG5hbWUsIGNsYXNzbmFtZSkpCisgICAgICAgICAgICAgICAgcmFp
c2UgVXNhZ2VFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIi0tcGRiY2xzOiBjb3VsZCBub3Qg
aW1wb3J0IHshcn06IHt9Ii5mb3JtYXQodmFsdWUsIGV4YykKKyAgICAgICAgICAgICAgICApCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBwZGJfY2xzID0gcGRiLlBkYgorCisgICAgICAgIHdy
YXBwZWRfY2xzID0gY2xzLl9nZXRfcGRiX3dyYXBwZXJfY2xhc3MocGRiX2NscywgY2FwbWFuKQor
ICAgICAgICBjbHMuX3dyYXBwZWRfcGRiX2NscyA9ICh1c2VwZGJfY2xzLCB3cmFwcGVkX2NscykK
KyAgICAgICAgcmV0dXJuIHdyYXBwZWRfY2xzCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYg
X2dldF9wZGJfd3JhcHBlcl9jbGFzcyhjbHMsIHBkYl9jbHMsIGNhcG1hbik6CisgICAgICAgIGlt
cG9ydCBfcHl0ZXN0LmNvbmZpZworCisgICAgICAgIGNsYXNzIFB5dGVzdFBkYldyYXBwZXIocGRi
X2Nscywgb2JqZWN0KToKKyAgICAgICAgICAgIF9weXRlc3RfY2FwbWFuID0gY2FwbWFuCisgICAg
ICAgICAgICBfY29udGludWVkID0gRmFsc2UKKworICAgICAgICAgICAgZGVmIGRvX2RlYnVnKHNl
bGYsIGFyZyk6CisgICAgICAgICAgICAgICAgY2xzLl9yZWN1cnNpdmVfZGVidWcgKz0gMQorICAg
ICAgICAgICAgICAgIHJldCA9IHN1cGVyKFB5dGVzdFBkYldyYXBwZXIsIHNlbGYpLmRvX2RlYnVn
KGFyZykKKyAgICAgICAgICAgICAgICBjbHMuX3JlY3Vyc2l2ZV9kZWJ1ZyAtPSAxCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHJldAorCisgICAgICAgICAgICBkZWYgZG9fY29udGludWUoc2VsZiwg
YXJnKToKKyAgICAgICAgICAgICAgICByZXQgPSBzdXBlcihQeXRlc3RQZGJXcmFwcGVyLCBzZWxm
KS5kb19jb250aW51ZShhcmcpCisgICAgICAgICAgICAgICAgaWYgY2xzLl9yZWN1cnNpdmVfZGVi
dWcgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgdHcgPSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVf
dGVybWluYWxfd3JpdGVyKGNscy5fY29uZmlnKQorICAgICAgICAgICAgICAgICAgICB0dy5saW5l
KCkKKworICAgICAgICAgICAgICAgICAgICBjYXBtYW4gPSBzZWxmLl9weXRlc3RfY2FwbWFuCisg
ICAgICAgICAgICAgICAgICAgIGNhcHR1cmluZyA9IHB5dGVzdFBEQi5faXNfY2FwdHVyaW5nKGNh
cG1hbikKKyAgICAgICAgICAgICAgICAgICAgaWYgY2FwdHVyaW5nOgorICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgY2FwdHVyaW5nID09ICJnbG9iYWwiOgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHR3LnNlcCgiPiIsICJQREIgY29udGludWUgKElPLWNhcHR1cmluZyByZXN1bWVkKSIp
CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHR3LnNlcCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj4iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiUERCIGNvbnRpbnVlIChJTy1jYXB0dXJpbmcgcmVz
dW1lZCBmb3IgJXMpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGNhcHR1cmlu
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAg
ICBjYXBtYW4ucmVzdW1lKCkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHR3LnNlcCgiPiIsICJQREIgY29udGludWUiKQorICAgICAgICAgICAgICAg
IGNscy5fcGx1Z2lubWFuYWdlci5ob29rLnB5dGVzdF9sZWF2ZV9wZGIoY29uZmlnPWNscy5fY29u
ZmlnLCBwZGI9c2VsZikKKyAgICAgICAgICAgICAgICBzZWxmLl9jb250aW51ZWQgPSBUcnVlCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJldAorCisgICAgICAgICAgICBkb19jID0gZG9fY29udCA9
IGRvX2NvbnRpbnVlCisKKyAgICAgICAgICAgIGRlZiBkb19xdWl0KHNlbGYsIGFyZyk6CisgICAg
ICAgICAgICAgICAgIiIiUmFpc2UgRXhpdCBvdXRjb21lIHdoZW4gcXVpdCBjb21tYW5kIGlzIHVz
ZWQgaW4gcGRiLgorCisgICAgICAgICAgICAgICAgVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2sgLSBp
dCB3b3VsZCBiZSBiZXR0ZXIgaWYgQmRiUXVpdAorICAgICAgICAgICAgICAgIGNvdWxkIGJlIGhh
bmRsZWQsIGJ1dCB0aGlzIHdvdWxkIHJlcXVpcmUgdG8gd3JhcCB0aGUKKyAgICAgICAgICAgICAg
ICB3aG9sZSBweXRlc3QgcnVuLCBhbmQgYWRqdXN0IHRoZSByZXBvcnQgZXRjLgorICAgICAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgICAgIHJldCA9IHN1cGVyKFB5dGVzdFBkYldyYXBwZXIs
IHNlbGYpLmRvX3F1aXQoYXJnKQorCisgICAgICAgICAgICAgICAgaWYgY2xzLl9yZWN1cnNpdmVf
ZGVidWcgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgb3V0Y29tZXMuZXhpdCgiUXVpdHRpbmcg
ZGVidWdnZXIiKQorCisgICAgICAgICAgICAgICAgcmV0dXJuIHJldAorCisgICAgICAgICAgICBk
b19xID0gZG9fcXVpdAorICAgICAgICAgICAgZG9fZXhpdCA9IGRvX3F1aXQKKworICAgICAgICAg
ICAgZGVmIHNldHVwKHNlbGYsIGYsIHRiKToKKyAgICAgICAgICAgICAgICAiIiJTdXNwZW5kIG9u
IHNldHVwKCkuCisKKyAgICAgICAgICAgICAgICBOZWVkZWQgYWZ0ZXIgZG9fY29udGludWUgcmVz
dW1lZCwgYW5kIGVudGVyaW5nIGFub3RoZXIKKyAgICAgICAgICAgICAgICBicmVha3BvaW50IGFn
YWluLgorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgIHJldCA9IHN1cGVyKFB5
dGVzdFBkYldyYXBwZXIsIHNlbGYpLnNldHVwKGYsIHRiKQorICAgICAgICAgICAgICAgIGlmIG5v
dCByZXQgYW5kIHNlbGYuX2NvbnRpbnVlZDoKKyAgICAgICAgICAgICAgICAgICAgIyBwZGIuc2V0
dXAoKSByZXR1cm5zIFRydWUgaWYgdGhlIGNvbW1hbmQgd2FudHMgdG8gZXhpdAorICAgICAgICAg
ICAgICAgICAgICAjIGZyb20gdGhlIGludGVyYWN0aW9uOiBkbyBub3Qgc3VzcGVuZCBjYXB0dXJp
bmcgdGhlbi4KKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fcHl0ZXN0X2NhcG1hbjoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3B5dGVzdF9jYXBtYW4uc3VzcGVuZF9nbG9iYWxf
Y2FwdHVyZShpbl89VHJ1ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0CisKKyAgICAgICAg
ICAgIGRlZiBnZXRfc3RhY2soc2VsZiwgZiwgdCk6CisgICAgICAgICAgICAgICAgc3RhY2ssIGkg
PSBzdXBlcihQeXRlc3RQZGJXcmFwcGVyLCBzZWxmKS5nZXRfc3RhY2soZiwgdCkKKyAgICAgICAg
ICAgICAgICBpZiBmIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgICMgRmluZCBsYXN0IG5v
bi1oaWRkZW4gZnJhbWUuCisgICAgICAgICAgICAgICAgICAgIGkgPSBtYXgoMCwgbGVuKHN0YWNr
KSAtIDEpCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIGkgYW5kIHN0YWNrW2ldWzBdLmZfbG9j
YWxzLmdldCgiX190cmFjZWJhY2toaWRlX18iLCBGYWxzZSk6CisgICAgICAgICAgICAgICAgICAg
ICAgICBpIC09IDEKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhY2ssIGkKKworICAgICAgICBy
ZXR1cm4gUHl0ZXN0UGRiV3JhcHBlcgorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9pbml0
X3BkYihjbHMsIG1ldGhvZCwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiIEluaXRpYWxp
emUgUERCIGRlYnVnZ2luZywgZHJvcHBpbmcgYW55IElPIGNhcHR1cmluZy4gIiIiCiAgICAgICAg
IGltcG9ydCBfcHl0ZXN0LmNvbmZpZwogCi0gICAgICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgp
LmZfYmFjawogICAgICAgICBpZiBjbHMuX3BsdWdpbm1hbmFnZXIgaXMgbm90IE5vbmU6CiAgICAg
ICAgICAgICBjYXBtYW4gPSBjbHMuX3BsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCJjYXB0dXJlbWFu
YWdlciIpCi0gICAgICAgICAgICBpZiBjYXBtYW46Ci0gICAgICAgICAgICAgICAgY2FwbWFuLnN1
c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaW5fPVRydWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBjYXBtYW4gPSBOb25lCisgICAgICAgIGlmIGNhcG1hbjoKKyAgICAgICAgICAgIGNhcG1hbi5z
dXNwZW5kKGluXz1UcnVlKQorCisgICAgICAgIGlmIGNscy5fY29uZmlnOgogICAgICAgICAgICAg
dHcgPSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNscy5fY29uZmlnKQog
ICAgICAgICAgICAgdHcubGluZSgpCi0gICAgICAgICAgICB0dy5zZXAoIj4iLCAiUERCIHNldF90
cmFjZSAoSU8tY2FwdHVyaW5nIHR1cm5lZCBvZmYpIikKLSAgICAgICAgICAgIGNscy5fcGx1Z2lu
bWFuYWdlci5ob29rLnB5dGVzdF9lbnRlcl9wZGIoY29uZmlnPWNscy5fY29uZmlnKQotICAgICAg
ICBjbHMuX3BkYl9jbHMoKS5zZXRfdHJhY2UoZnJhbWUpCiAKKyAgICAgICAgICAgIGlmIGNscy5f
cmVjdXJzaXZlX2RlYnVnID09IDA6CisgICAgICAgICAgICAgICAgIyBIYW5kbGUgaGVhZGVyIHNp
bWlsYXIgdG8gcGRiLnNldF90cmFjZSBpbiBweTM3Ky4KKyAgICAgICAgICAgICAgICBoZWFkZXIg
PSBrd2FyZ3MucG9wKCJoZWFkZXIiLCBOb25lKQorICAgICAgICAgICAgICAgIGlmIGhlYWRlciBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgdHcuc2VwKCI+IiwgaGVhZGVyKQorICAg
ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNhcHR1cmluZyA9IGNscy5f
aXNfY2FwdHVyaW5nKGNhcG1hbikKKyAgICAgICAgICAgICAgICAgICAgaWYgY2FwdHVyaW5nID09
ICJnbG9iYWwiOgorICAgICAgICAgICAgICAgICAgICAgICAgdHcuc2VwKCI+IiwgIlBEQiAlcyAo
SU8tY2FwdHVyaW5nIHR1cm5lZCBvZmYpIiAlIChtZXRob2QsKSkKKyAgICAgICAgICAgICAgICAg
ICAgZWxpZiBjYXB0dXJpbmc6CisgICAgICAgICAgICAgICAgICAgICAgICB0dy5zZXAoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIj4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJQREIgJXMgKElPLWNhcHR1cmluZyB0dXJuZWQgb2ZmIGZvciAlcykiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJSAobWV0aG9kLCBjYXB0dXJpbmcpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAg
ICAgdHcuc2VwKCI+IiwgIlBEQiAlcyIgJSAobWV0aG9kLCkpCisKKyAgICAgICAgX3BkYiA9IGNs
cy5faW1wb3J0X3BkYl9jbHMoY2FwbWFuKSgqKmt3YXJncykKKworICAgICAgICBpZiBjbHMuX3Bs
dWdpbm1hbmFnZXI6CisgICAgICAgICAgICBjbHMuX3BsdWdpbm1hbmFnZXIuaG9vay5weXRlc3Rf
ZW50ZXJfcGRiKGNvbmZpZz1jbHMuX2NvbmZpZywgcGRiPV9wZGIpCisgICAgICAgIHJldHVybiBf
cGRiCiAKLWNsYXNzIFBkYkludm9rZShvYmplY3QpOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRl
ZiBzZXRfdHJhY2UoY2xzLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiJJbnZva2UgZGVi
dWdnaW5nIHZpYSBgYFBkYi5zZXRfdHJhY2VgYCwgZHJvcHBpbmcgYW55IElPIGNhcHR1cmluZy4i
IiIKKyAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKCkuZl9iYWNrCisgICAgICAgIF9wZGIg
PSBjbHMuX2luaXRfcGRiKCJzZXRfdHJhY2UiLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIF9w
ZGIuc2V0X3RyYWNlKGZyYW1lKQogCisKK2NsYXNzIFBkYkludm9rZShvYmplY3QpOgogICAgIGRl
ZiBweXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0KHNlbGYsIG5vZGUsIGNhbGwsIHJlcG9ydCk6CiAg
ICAgICAgIGNhcG1hbiA9IG5vZGUuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCJjYXB0
dXJlbWFuYWdlciIpCiAgICAgICAgIGlmIGNhcG1hbjoKLSAgICAgICAgICAgIG91dCwgZXJyID0g
Y2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaW5fPVRydWUpCisgICAgICAgICAgICBjYXBt
YW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShpbl89VHJ1ZSkKKyAgICAgICAgICAgIG91dCwgZXJy
ID0gY2FwbWFuLnJlYWRfZ2xvYmFsX2NhcHR1cmUoKQogICAgICAgICAgICAgc3lzLnN0ZG91dC53
cml0ZShvdXQpCiAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKGVycikKICAgICAgICAgX2Vu
dGVyX3BkYihub2RlLCBjYWxsLmV4Y2luZm8sIHJlcG9ydCkKIAogICAgIGRlZiBweXRlc3RfaW50
ZXJuYWxlcnJvcihzZWxmLCBleGNyZXByLCBleGNpbmZvKToKLSAgICAgICAgZm9yIGxpbmUgaW4g
c3RyKGV4Y3JlcHIpLnNwbGl0KCJcbiIpOgotICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgi
SU5URVJOQUxFUlJPUj4gJXNcbiIgJSBsaW5lKQotICAgICAgICAgICAgc3lzLnN0ZGVyci5mbHVz
aCgpCiAgICAgICAgIHRiID0gX3Bvc3Rtb3J0ZW1fdHJhY2ViYWNrKGV4Y2luZm8pCiAgICAgICAg
IHBvc3RfbW9ydGVtKHRiKQogCiAKK2NsYXNzIFBkYlRyYWNlKG9iamVjdCk6CisgICAgQGhvb2tp
bXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIHB5dGVzdF9weWZ1bmNfY2FsbChzZWxmLCBw
eWZ1bmNpdGVtKToKKyAgICAgICAgX3Rlc3RfcHl0ZXN0X2Z1bmN0aW9uKHB5ZnVuY2l0ZW0pCisg
ICAgICAgIHlpZWxkCisKKworZGVmIF90ZXN0X3B5dGVzdF9mdW5jdGlvbihweWZ1bmNpdGVtKToK
KyAgICBfcGRiID0gcHl0ZXN0UERCLl9pbml0X3BkYigicnVuY2FsbCIpCisgICAgdGVzdGZ1bmN0
aW9uID0gcHlmdW5jaXRlbS5vYmoKKyAgICBweWZ1bmNpdGVtLm9iaiA9IF9wZGIucnVuY2FsbAor
ICAgIGlmICJmdW5jIiBpbiBweWZ1bmNpdGVtLl9maXh0dXJlaW5mby5hcmduYW1lczogICMgcHJh
Z21hOiBubyBicmFuY2gKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiLS10cmFjZSBjYW4ndCBi
ZSB1c2VkIHdpdGggYSBmaXh0dXJlIG5hbWVkIGZ1bmMhIikKKyAgICBweWZ1bmNpdGVtLmZ1bmNh
cmdzWyJmdW5jIl0gPSB0ZXN0ZnVuY3Rpb24KKyAgICBuZXdfbGlzdCA9IGxpc3QocHlmdW5jaXRl
bS5fZml4dHVyZWluZm8uYXJnbmFtZXMpCisgICAgbmV3X2xpc3QuYXBwZW5kKCJmdW5jIikKKyAg
ICBweWZ1bmNpdGVtLl9maXh0dXJlaW5mby5hcmduYW1lcyA9IHR1cGxlKG5ld19saXN0KQorCisK
IGRlZiBfZW50ZXJfcGRiKG5vZGUsIGV4Y2luZm8sIHJlcCk6CiAgICAgIyBYWFggd2UgcmUtdXNl
IHRoZSBUZXJtaW5hbFJlcG9ydGVyJ3MgdGVybWluYWx3cml0ZXIKICAgICAjIGJlY2F1c2UgdGhp
cyBzZWVtcyB0byBhdm9pZCBzb21lIGVuY29kaW5nIHJlbGF0ZWQgdHJvdWJsZXMKQEAgLTExNCw3
ICsyOTgsOSBAQCBkZWYgX2VudGVyX3BkYihub2RlLCBleGNpbmZvLCByZXApOgogICAgIHNob3dj
YXB0dXJlID0gbm9kZS5jb25maWcub3B0aW9uLnNob3djYXB0dXJlCiAKICAgICBmb3Igc2VjdGlv
bm5hbWUsIGNvbnRlbnQgaW4gKAotICAgICAgICAoInN0ZG91dCIsIHJlcC5jYXBzdGRvdXQpLCAo
InN0ZGVyciIsIHJlcC5jYXBzdGRlcnIpLCAoImxvZyIsIHJlcC5jYXBsb2cpCisgICAgICAgICgi
c3Rkb3V0IiwgcmVwLmNhcHN0ZG91dCksCisgICAgICAgICgic3RkZXJyIiwgcmVwLmNhcHN0ZGVy
ciksCisgICAgICAgICgibG9nIiwgcmVwLmNhcGxvZyksCiAgICAgKToKICAgICAgICAgaWYgc2hv
d2NhcHR1cmUgaW4gKHNlY3Rpb25uYW1lLCAiYWxsIikgYW5kIGNvbnRlbnQ6CiAgICAgICAgICAg
ICB0dy5zZXAoIj4iLCAiY2FwdHVyZWQgIiArIHNlY3Rpb25uYW1lKQpAQCAtMTI2LDggKzMxMiw4
IEBAIGRlZiBfZW50ZXJfcGRiKG5vZGUsIGV4Y2luZm8sIHJlcCk6CiAgICAgcmVwLnRvdGVybWlu
YWwodHcpCiAgICAgdHcuc2VwKCI+IiwgImVudGVyaW5nIFBEQiIpCiAgICAgdGIgPSBfcG9zdG1v
cnRlbV90cmFjZWJhY2soZXhjaW5mbykKLSAgICBwb3N0X21vcnRlbSh0YikKICAgICByZXAuX3Bk
YnNob3duID0gVHJ1ZQorICAgIHBvc3RfbW9ydGVtKHRiKQogICAgIHJldHVybiByZXAKIAogCkBA
IC0xNDAsMjMgKzMyNiw5IEBAIGRlZiBfcG9zdG1vcnRlbV90cmFjZWJhY2soZXhjaW5mbyk6CiAg
ICAgICAgIHJldHVybiBleGNpbmZvLl9leGNpbmZvWzJdCiAKIAotZGVmIF9maW5kX2xhc3Rfbm9u
X2hpZGRlbl9mcmFtZShzdGFjayk6Ci0gICAgaSA9IG1heCgwLCBsZW4oc3RhY2spIC0gMSkKLSAg
ICB3aGlsZSBpIGFuZCBzdGFja1tpXVswXS5mX2xvY2Fscy5nZXQoIl9fdHJhY2ViYWNraGlkZV9f
IiwgRmFsc2UpOgotICAgICAgICBpIC09IDEKLSAgICByZXR1cm4gaQotCi0KIGRlZiBwb3N0X21v
cnRlbSh0KToKLQotICAgIGNsYXNzIFBkYihweXRlc3RQREIuX3BkYl9jbHMpOgotCi0gICAgICAg
IGRlZiBnZXRfc3RhY2soc2VsZiwgZiwgdCk6Ci0gICAgICAgICAgICBzdGFjaywgaSA9IHBkYi5Q
ZGIuZ2V0X3N0YWNrKHNlbGYsIGYsIHQpCi0gICAgICAgICAgICBpZiBmIGlzIE5vbmU6Ci0gICAg
ICAgICAgICAgICAgaSA9IF9maW5kX2xhc3Rfbm9uX2hpZGRlbl9mcmFtZShzdGFjaykKLSAgICAg
ICAgICAgIHJldHVybiBzdGFjaywgaQotCi0gICAgcCA9IFBkYigpCisgICAgcCA9IHB5dGVzdFBE
Qi5faW5pdF9wZGIoInBvc3RfbW9ydGVtIikKICAgICBwLnJlc2V0KCkKICAgICBwLmludGVyYWN0
aW9uKE5vbmUsIHQpCisgICAgaWYgcC5xdWl0dGluZzoKKyAgICAgICAgb3V0Y29tZXMuZXhpdCgi
UXVpdHRpbmcgZGVidWdnZXIiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
ZGVwcmVjYXRlZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkKaW5k
ZXggN2ViZGNmOTk5NzIyMmMyMGQzYmQwN2Y3MDY5MmY4OGRlNWVkMTQ0YS4uMTIzOTRhY2EzZjUy
MmYzMzcwOTNlYWQ0N2MyM2QwZjk3MDZhM2YyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3QvZGVwcmVjYXRlZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9kZXBy
ZWNhdGVkLnB5CkBAIC0xLDY1ICsxLDk2IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIi
CiBUaGlzIG1vZHVsZSBjb250YWlucyBkZXByZWNhdGlvbiBtZXNzYWdlcyBhbmQgYml0cyBvZiBj
b2RlIHVzZWQgZWxzZXdoZXJlIGluIHRoZSBjb2RlYmFzZQogdGhhdCBpcyBwbGFubmVkIHRvIGJl
IHJlbW92ZWQgaW4gdGhlIG5leHQgcHl0ZXN0IHJlbGVhc2UuCiAKIEtlZXBpbmcgaXQgaW4gYSBj
ZW50cmFsIGxvY2F0aW9uIG1ha2VzIGl0IGVhc3kgdG8gdHJhY2sgd2hhdCBpcyBkZXByZWNhdGVk
IGFuZCBzaG91bGQKIGJlIHJlbW92ZWQgd2hlbiB0aGUgdGltZSBjb21lcy4KKworQWxsIGNvbnN0
YW50cyBkZWZpbmVkIGluIHRoaXMgbW9kdWxlIHNob3VsZCBiZSBlaXRoZXIgUHl0ZXN0V2Fybmlu
ZyBpbnN0YW5jZXMgb3IgVW5mb3JtYXR0ZWRXYXJuaW5nCitpbiBjYXNlIG9mIHdhcm5pbmdzIHdo
aWNoIG5lZWQgdG8gZm9ybWF0IHRoZWlyIG1lc3NhZ2VzLgogIiIiCi1mcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBk
aXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCitmcm9tIF9w
eXRlc3Qud2FybmluZ190eXBlcyBpbXBvcnQgUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nCitmcm9t
IF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBvcnQgUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcKK2Zy
b20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBVbmZvcm1hdHRlZFdhcm5pbmcKIAotY2xh
c3MgUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoRGVwcmVjYXRpb25XYXJuaW5nKToKLSAgICAiIiJ3
YXJuaW5nIGNsYXNzIGZvciBmZWF0dXJlcyByZW1vdmVkIGluIHB5dGVzdCA0LjAiIiIKK1lJRUxE
X1RFU1RTID0gInlpZWxkIHRlc3RzIHdlcmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4wIC0ge25hbWV9
IHdpbGwgYmUgaWdub3JlZCIKIAogCi1NQUlOX1NUUl9BUkdTID0gInBhc3NpbmcgYSBzdHJpbmcg
dG8gcHl0ZXN0Lm1haW4oKSBpcyBkZXByZWNhdGVkLCAiICJwYXNzIGEgbGlzdCBvZiBhcmd1bWVu
dHMgaW5zdGVhZC4iCitGSVhUVVJFX0ZVTkNUSU9OX0NBTEwgPSAoCisgICAgJ0ZpeHR1cmUgIntu
YW1lfSIgY2FsbGVkIGRpcmVjdGx5LiBGaXh0dXJlcyBhcmUgbm90IG1lYW50IHRvIGJlIGNhbGxl
ZCBkaXJlY3RseSxcbicKKyAgICAiYnV0IGFyZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgd2hlbiB0
ZXN0IGZ1bmN0aW9ucyByZXF1ZXN0IHRoZW0gYXMgcGFyYW1ldGVycy5cbiIKKyAgICAiU2VlIGh0
dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9maXh0dXJlLmh0bWwgZm9yIG1vcmUgaW5m
b3JtYXRpb24gYWJvdXQgZml4dHVyZXMsIGFuZFxuIgorICAgICJodHRwczovL2RvY3MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0bWwjY2FsbGluZy1maXh0dXJlcy1kaXJlY3Rs
eSBhYm91dCBob3cgdG8gdXBkYXRlIHlvdXIgY29kZS4iCispCiAKLVlJRUxEX1RFU1RTID0gInlp
ZWxkIHRlc3RzIGFyZSBkZXByZWNhdGVkLCBhbmQgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4g
cHl0ZXN0IDQuMCIKK0ZJWFRVUkVfTkFNRURfUkVRVUVTVCA9IFB5dGVzdERlcHJlY2F0aW9uV2Fy
bmluZygKKyAgICAiJ3JlcXVlc3QnIGlzIGEgcmVzZXJ2ZWQgbmFtZSBmb3IgZml4dHVyZXMgYW5k
IHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4gZnV0dXJlIHZlcnNpb25zIgorKQogCi1GVU5DQVJHX1BS
RUZJWCA9ICgKLSAgICAne25hbWV9OiBkZWNsYXJpbmcgZml4dHVyZXMgdXNpbmcgInB5dGVzdF9m
dW5jYXJnX18iIHByZWZpeCBpcyBkZXByZWNhdGVkICcKLSAgICAiYW5kIHNjaGVkdWxlZCB0byBi
ZSByZW1vdmVkIGluIHB5dGVzdCA0LjAuICAiCi0gICAgIlBsZWFzZSByZW1vdmUgdGhlIHByZWZp
eCBhbmQgdXNlIHRoZSBAcHl0ZXN0LmZpeHR1cmUgZGVjb3JhdG9yIGluc3RlYWQuIgorQ0ZHX1BZ
VEVTVF9TRUNUSU9OID0gIltweXRlc3RdIHNlY3Rpb24gaW4ge2ZpbGVuYW1lfSBmaWxlcyBpcyBu
byBsb25nZXIgc3VwcG9ydGVkLCBjaGFuZ2UgdG8gW3Rvb2w6cHl0ZXN0XSBpbnN0ZWFkLiIKKwor
R0VURlVOQ0FSR1ZBTFVFID0gUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoCisgICAgImdldGZ1bmNh
cmd2YWx1ZSBpcyBkZXByZWNhdGVkLCB1c2UgZ2V0Zml4dHVyZXZhbHVlIgogKQogCi1DRkdfUFlU
RVNUX1NFQ1RJT04gPSAiW3B5dGVzdF0gc2VjdGlvbiBpbiB7ZmlsZW5hbWV9IGZpbGVzIGlzIGRl
cHJlY2F0ZWQsIHVzZSBbdG9vbDpweXRlc3RdIGluc3RlYWQuIgorUkFJU0VTX01FU1NBR0VfUEFS
QU1FVEVSID0gUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nKAorICAgICJUaGUgJ21lc3NhZ2UnIHBh
cmFtZXRlciBpcyBkZXByZWNhdGVkLlxuIgorICAgICIoZGlkIHlvdSBtZWFuIHRvIHVzZSBgbWF0
Y2g9J3NvbWUgcmVnZXgnYCB0byBjaGVjayB0aGUgZXhjZXB0aW9uIG1lc3NhZ2U/KVxuIgorICAg
ICJQbGVhc2Ugc2VlOlxuIgorICAgICIgIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuLzQuNi1t
YWludGVuYW5jZS9kZXByZWNhdGlvbnMuaHRtbCNtZXNzYWdlLXBhcmFtZXRlci1vZi1weXRlc3Qt
cmFpc2VzIgorKQogCi1HRVRGVU5DQVJHVkFMVUUgPSAidXNlIG9mIGdldGZ1bmNhcmd2YWx1ZSBp
cyBkZXByZWNhdGVkLCB1c2UgZ2V0Zml4dHVyZXZhbHVlIgorUkVTVUxUX0xPRyA9IFB5dGVzdERl
cHJlY2F0aW9uV2FybmluZygKKyAgICAiLS1yZXN1bHQtbG9nIGlzIGRlcHJlY2F0ZWQgYW5kIHNj
aGVkdWxlZCBmb3IgcmVtb3ZhbCBpbiBweXRlc3QgNS4wLlxuIgorICAgICJTZWUgaHR0cHM6Ly9k
b2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sI3Jlc3VsdC1sb2ctcmVz
dWx0LWxvZyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCispCiAKLVJFU1VMVF9MT0cgPSAoCi0gICAg
Ii0tcmVzdWx0LWxvZyBpcyBkZXByZWNhdGVkIGFuZCBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4g
cHl0ZXN0IDQuMC5cbiIKLSAgICAiU2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVz
dC91c2FnZS5odG1sI2NyZWF0aW5nLXJlc3VsdGxvZy1mb3JtYXQtZmlsZXMgZm9yIG1vcmUgaW5m
b3JtYXRpb24uIgorUkFJU0VTX0VYRUMgPSBQeXRlc3REZXByZWNhdGlvbldhcm5pbmcoCisgICAg
InJhaXNlcyguLi4sICdjb2RlKGFzX2Ffc3RyaW5nKScpIGlzIGRlcHJlY2F0ZWQsIHVzZSB0aGUg
Y29udGV4dCBtYW5hZ2VyIGZvcm0gb3IgdXNlIGBleGVjKClgIGRpcmVjdGx5XG5cbiIKKyAgICAi
U2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNy
YWlzZXMtd2FybnMtZXhlYyIKKykKK1dBUk5TX0VYRUMgPSBQeXRlc3REZXByZWNhdGlvbldhcm5p
bmcoCisgICAgIndhcm5zKC4uLiwgJ2NvZGUoYXNfYV9zdHJpbmcpJykgaXMgZGVwcmVjYXRlZCwg
dXNlIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9ybSBvciB1c2UgYGV4ZWMoKWAgZGlyZWN0bHkuXG5c
biIKKyAgICAiU2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlv
bnMuaHRtbCNyYWlzZXMtd2FybnMtZXhlYyIKICkKIAotTUFSS19JTkZPX0FUVFJJQlVURSA9IFJl
bW92ZWRJblB5dGVzdDRXYXJuaW5nKAotICAgICJNYXJrSW5mbyBvYmplY3RzIGFyZSBkZXByZWNh
dGVkIGFzIHRoZXkgY29udGFpbiBtZXJnZWQgbWFya3Mgd2hpY2ggYXJlIGhhcmQgdG8gZGVhbCB3
aXRoIGNvcnJlY3RseS5cbiIKLSAgICAiUGxlYXNlIHVzZSBub2RlLmdldF9jbG9zZXN0X21hcmtl
cihuYW1lKSBvciBub2RlLml0ZXJfbWFya2VycyhuYW1lKS5cbiIKLSAgICAiRG9jczogaHR0cHM6
Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L21hcmsuaHRtbCN1cGRhdGluZy1jb2RlIgorUFlU
RVNUX1BMVUdJTlNfRlJPTV9OT05fVE9QX0xFVkVMX0NPTkZURVNUID0gKAorICAgICJEZWZpbmlu
ZyAncHl0ZXN0X3BsdWdpbnMnIGluIGEgbm9uLXRvcC1sZXZlbCBjb25mdGVzdCBpcyBubyBsb25n
ZXIgc3VwcG9ydGVkICIKKyAgICAiYmVjYXVzZSBpdCBhZmZlY3RzIHRoZSBlbnRpcmUgZGlyZWN0
b3J5IHRyZWUgaW4gYSBub24tZXhwbGljaXQgd2F5LlxuIgorICAgICIgIHt9XG4iCisgICAgIlBs
ZWFzZSBtb3ZlIGl0IHRvIGEgdG9wIGxldmVsIGNvbmZ0ZXN0IGZpbGUgYXQgdGhlIHJvb3RkaXI6
XG4iCisgICAgIiAge31cbiIKKyAgICAiRm9yIG1vcmUgaW5mb3JtYXRpb24sIHZpc2l0OlxuIgor
ICAgICIgIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRt
bCNweXRlc3QtcGx1Z2lucy1pbi1ub24tdG9wLWxldmVsLWNvbmZ0ZXN0LWZpbGVzIgogKQogCi1N
QVJLX1BBUkFNRVRFUlNFVF9VTlBBQ0tJTkcgPSBSZW1vdmVkSW5QeXRlc3Q0V2FybmluZygKLSAg
ICAiQXBwbHlpbmcgbWFya3MgZGlyZWN0bHkgdG8gcGFyYW1ldGVycyBpcyBkZXByZWNhdGVkLCIK
LSAgICAiIHBsZWFzZSB1c2UgcHl0ZXN0LnBhcmFtKC4uLiwgbWFya3M9Li4uKSBpbnN0ZWFkLlxu
IgotICAgICJGb3IgbW9yZSBkZXRhaWxzLCBzZWU6IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2Vu
L2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIgorUFlURVNUX0NPTkZJR19HTE9CQUwgPSBQeXRlc3RE
ZXByZWNhdGlvbldhcm5pbmcoCisgICAgInRoZSBgcHl0ZXN0LmNvbmZpZ2AgZ2xvYmFsIGlzIGRl
cHJlY2F0ZWQuICBQbGVhc2UgdXNlIGByZXF1ZXN0LmNvbmZpZ2AgIgorICAgICJvciBgcHl0ZXN0
X2NvbmZpZ3VyZWAgKGlmIHlvdSdyZSBhIHB5dGVzdCBwbHVnaW4pIGluc3RlYWQuIgogKQogCi1S
RUNPUkRfWE1MX1BST1BFUlRZID0gKAotICAgICdGaXh0dXJlIHJlbmFtZWQgZnJvbSAicmVjb3Jk
X3htbF9wcm9wZXJ0eSIgdG8gInJlY29yZF9wcm9wZXJ0eSIgYXMgdXNlciAnCi0gICAgInByb3Bl
cnRpZXMgYXJlIG5vdyBhdmFpbGFibGUgdG8gYWxsIHJlcG9ydGVycy5cbiIKLSAgICAnInJlY29y
ZF94bWxfcHJvcGVydHkiIGlzIG5vdyBkZXByZWNhdGVkLicKK1BZVEVTVF9FTlNVUkVURU1QID0g
UmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoCisgICAgInB5dGVzdC90bXBkaXJfZmFjdG9yeS5lbnN1
cmV0ZW1wIGlzIGRlcHJlY2F0ZWQsIFxuIgorICAgICJwbGVhc2UgdXNlIHRoZSB0bXBfcGF0aCBm
aXh0dXJlIG9yIHRtcF9wYXRoX2ZhY3RvcnkubWt0ZW1wIgogKQogCi1DT0xMRUNUT1JfTUFLRUlU
RU0gPSBSZW1vdmVkSW5QeXRlc3Q0V2FybmluZygKLSAgICAicHljb2xsZWN0b3IgbWFrZWl0ZW0g
d2FzIHJlbW92ZWQgIiAiYXMgaXQgaXMgYW4gYWNjaWRlbnRpYWxseSBsZWFrZWQgaW50ZXJuYWwg
YXBpIgorUFlURVNUX0xPR1dBUk5JTkcgPSBQeXRlc3REZXByZWNhdGlvbldhcm5pbmcoCisgICAg
InB5dGVzdF9sb2d3YXJuaW5nIGlzIGRlcHJlY2F0ZWQsIG5vIGxvbmdlciBiZWluZyBjYWxsZWQs
IGFuZCB3aWxsIGJlIHJlbW92ZWQgc29vblxuIgorICAgICJwbGVhc2UgdXNlIHB5dGVzdF93YXJu
aW5nX2NhcHR1cmVkIGluc3RlYWQiCiApCiAKLU1FVEFGVU5DX0FERF9DQUxMID0gKAotICAgICJN
ZXRhZnVuYy5hZGRjYWxsIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVk
IGluIHB5dGVzdCA0LjAuXG4iCi0gICAgIlBsZWFzZSB1c2UgTWV0YWZ1bmMucGFyYW1ldHJpemUg
aW5zdGVhZC4iCitQWVRFU1RfV0FSTlNfVU5LTk9XTl9LV0FSR1MgPSBVbmZvcm1hdHRlZFdhcm5p
bmcoCisgICAgUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nLAorICAgICJweXRlc3Qud2FybnMoKSBn
b3QgdW5leHBlY3RlZCBrZXl3b3JkIGFyZ3VtZW50czoge2FyZ3Mhcn0uXG4iCisgICAgIlRoaXMg
d2lsbCBiZSBhbiBlcnJvciBpbiBmdXR1cmUgdmVyc2lvbnMuIiwKICkKIAotUFlURVNUX1BMVUdJ
TlNfRlJPTV9OT05fVE9QX0xFVkVMX0NPTkZURVNUID0gUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmco
Ci0gICAgIkRlZmluaW5nIHB5dGVzdF9wbHVnaW5zIGluIGEgbm9uLXRvcC1sZXZlbCBjb25mdGVz
dCBpcyBkZXByZWNhdGVkLCAiCi0gICAgImJlY2F1c2UgaXQgYWZmZWN0cyB0aGUgZW50aXJlIGRp
cmVjdG9yeSB0cmVlIGluIGEgbm9uLWV4cGxpY2l0IHdheS5cbiIKLSAgICAiUGxlYXNlIG1vdmUg
aXQgdG8gdGhlIHRvcCBsZXZlbCBjb25mdGVzdCBmaWxlIGluc3RlYWQuIgorUFlURVNUX1BBUkFN
X1VOS05PV05fS1dBUkdTID0gVW5mb3JtYXR0ZWRXYXJuaW5nKAorICAgIFB5dGVzdERlcHJlY2F0
aW9uV2FybmluZywKKyAgICAicHl0ZXN0LnBhcmFtKCkgZ290IHVuZXhwZWN0ZWQga2V5d29yZCBh
cmd1bWVudHM6IHthcmdzIXJ9LlxuIgorICAgICJUaGlzIHdpbGwgYmUgYW4gZXJyb3IgaW4gZnV0
dXJlIHZlcnNpb25zLiIsCiApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9k
b2N0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvZG9jdGVzdC5weQppbmRleCBiMGEz
YWQwOGRmYzRmZDkyNTg2YzY5NmQ1N2M3NDViNWExZmVmNTkwLi42NTlkMjRhZWViY2VlOTMzMzYz
NWVkN2MwNmYzM2ZjZDI5OWJjYjBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVz
dC9kb2N0ZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2RvY3Rlc3QucHkKQEAg
LTEsMTQgKzEsMjQgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIgZGlzY292ZXIgYW5k
IHJ1biBkb2N0ZXN0cyBpbiBtb2R1bGVzIGFuZCB0ZXN0IGZpbGVzLiIiIgotZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAotaW1w
b3J0IHRyYWNlYmFjawotaW1wb3J0IHN5cworaW1wb3J0IGluc3BlY3QKIGltcG9ydCBwbGF0Zm9y
bQoraW1wb3J0IHN5cworaW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHdhcm5pbmdzCitmcm9tIGNv
bnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCiAKIGltcG9ydCBweXRlc3QKLWZyb20gX3B5
dGVzdC5fY29kZS5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvLCBSZXByRmlsZUxvY2F0aW9uLCBU
ZXJtaW5hbFJlcHIKK2Zyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZv
Citmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgUmVwckZpbGVMb2NhdGlvbgorZnJvbSBf
cHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFRlcm1pbmFsUmVwcgorZnJvbSBfcHl0ZXN0LmNvbXBh
dCBpbXBvcnQgc2FmZV9nZXRhdHRyCiBmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IEZpeHR1
cmVSZXF1ZXN0Ci0KK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgU2tpcHBlZAorZnJvbSBf
cHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVzdFdhcm5pbmcKIAogRE9DVEVTVF9SRVBP
UlRfQ0hPSUNFX05PTkUgPSAibm9uZSIKIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9DRElGRiA9ICJj
ZGlmZiIKQEAgLTEwNSw3ICsxMTUsNiBAQCBkZWYgX2lzX2RvY3Rlc3QoY29uZmlnLCBwYXRoLCBw
YXJlbnQpOgogCiAKIGNsYXNzIFJlcHJGYWlsRG9jdGVzdChUZXJtaW5hbFJlcHIpOgotCiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHJlcHJsb2NhdGlvbl9saW5lcyk6CiAgICAgICAgICMgTGlzdCBv
ZiAocmVwcmxvY2F0aW9uLCBsaW5lcykgdHVwbGVzCiAgICAgICAgIHNlbGYucmVwcmxvY2F0aW9u
X2xpbmVzID0gcmVwcmxvY2F0aW9uX2xpbmVzCkBAIC0xMTgsNyArMTI3LDYgQEAgY2xhc3MgUmVw
ckZhaWxEb2N0ZXN0KFRlcm1pbmFsUmVwcik6CiAKIAogY2xhc3MgTXVsdGlwbGVEb2N0ZXN0RmFp
bHVyZXMoRXhjZXB0aW9uKToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmYWlsdXJlcyk6CiAg
ICAgICAgIHN1cGVyKE11bHRpcGxlRG9jdGVzdEZhaWx1cmVzLCBzZWxmKS5fX2luaXRfXygpCiAg
ICAgICAgIHNlbGYuZmFpbHVyZXMgPSBmYWlsdXJlcwpAQCAtMTQ5LDYgKzE1Nyw4IEBAIGRlZiBf
aW5pdF9ydW5uZXJfY2xhc3MoKToKICAgICAgICAgICAgICAgICByYWlzZSBmYWlsdXJlCiAKICAg
ICAgICAgZGVmIHJlcG9ydF91bmV4cGVjdGVkX2V4Y2VwdGlvbihzZWxmLCBvdXQsIHRlc3QsIGV4
YW1wbGUsIGV4Y19pbmZvKToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXhjX2luZm9bMV0s
IFNraXBwZWQpOgorICAgICAgICAgICAgICAgIHJhaXNlIGV4Y19pbmZvWzFdCiAgICAgICAgICAg
ICBmYWlsdXJlID0gZG9jdGVzdC5VbmV4cGVjdGVkRXhjZXB0aW9uKHRlc3QsIGV4YW1wbGUsIGV4
Y19pbmZvKQogICAgICAgICAgICAgaWYgc2VsZi5jb250aW51ZV9vbl9mYWlsdXJlOgogICAgICAg
ICAgICAgICAgIG91dC5hcHBlbmQoZmFpbHVyZSkKQEAgLTE3Miw3ICsxODIsNiBAQCBkZWYgX2dl
dF9ydW5uZXIoY2hlY2tlcj1Ob25lLCB2ZXJib3NlPU5vbmUsIG9wdGlvbmZsYWdzPTAsIGNvbnRp
bnVlX29uX2ZhaWx1cmU9VAogCiAKIGNsYXNzIERvY3Rlc3RJdGVtKHB5dGVzdC5JdGVtKToKLQog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwYXJlbnQsIHJ1bm5lcj1Ob25lLCBkdGVzdD1O
b25lKToKICAgICAgICAgc3VwZXIoRG9jdGVzdEl0ZW0sIHNlbGYpLl9faW5pdF9fKG5hbWUsIHBh
cmVudCkKICAgICAgICAgc2VsZi5ydW5uZXIgPSBydW5uZXIKQEAgLTIwNiw3ICsyMTUsOCBAQCBj
bGFzcyBEb2N0ZXN0SXRlbShweXRlc3QuSXRlbSk6CiAgICAgICAgICAgICByZXR1cm4KICAgICAg
ICAgY2FwbWFuID0gc2VsZi5jb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oImNhcHR1cmVt
YW5hZ2VyIikKICAgICAgICAgaWYgY2FwbWFuOgotICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXBt
YW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShpbl89VHJ1ZSkKKyAgICAgICAgICAgIGNhcG1hbi5z
dXNwZW5kX2dsb2JhbF9jYXB0dXJlKGluXz1UcnVlKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBj
YXBtYW4ucmVhZF9nbG9iYWxfY2FwdHVyZSgpCiAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRl
KG91dCkKICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoZXJyKQogCkBAIC0yNDMsNyArMjUz
LDcgQEAgY2xhc3MgRG9jdGVzdEl0ZW0ocHl0ZXN0Lkl0ZW0pOgogICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yIChpLCB4KSBpbiBlbnVtZXJhdGUobGluZXMpCiAgICAgICAgICAgICAgICAgICAg
IF0KICAgICAgICAgICAgICAgICAgICAgIyB0cmltIGRvY3N0cmluZyBlcnJvciBsaW5lcyB0byAx
MAotICAgICAgICAgICAgICAgICAgICBsaW5lcyA9IGxpbmVzW21heChleGFtcGxlLmxpbmVubyAt
IDksIDApOmV4YW1wbGUubGluZW5vICsgMV0KKyAgICAgICAgICAgICAgICAgICAgbGluZXMgPSBs
aW5lc1ttYXgoZXhhbXBsZS5saW5lbm8gLSA5LCAwKSA6IGV4YW1wbGUubGluZW5vICsgMV0KICAg
ICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBsaW5lcyA9IFsKICAgICAg
ICAgICAgICAgICAgICAgICAgICJFWEFNUExFIExPQ0FUSU9OIFVOS05PV04sIG5vdCBzaG93aW5n
IGFsbCB0ZXN0cyBvZiB0aGF0IGV4YW1wbGUiCkBAIC0yNTUsOSArMjY1LDcgQEAgY2xhc3MgRG9j
dGVzdEl0ZW0ocHl0ZXN0Lkl0ZW0pOgogICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZmFp
bHVyZSwgZG9jdGVzdC5Eb2NUZXN0RmFpbHVyZSk6CiAgICAgICAgICAgICAgICAgICAgIGxpbmVz
ICs9IGNoZWNrZXIub3V0cHV0X2RpZmZlcmVuY2UoCiAgICAgICAgICAgICAgICAgICAgICAgICBl
eGFtcGxlLCBmYWlsdXJlLmdvdCwgcmVwb3J0X2Nob2ljZQotICAgICAgICAgICAgICAgICAgICAp
LnNwbGl0KAotICAgICAgICAgICAgICAgICAgICAgICAgIlxuIgotICAgICAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICAgICAgICkuc3BsaXQoIlxuIikKICAgICAgICAgICAgICAgICBl
bHNlOgogICAgICAgICAgICAgICAgICAgICBpbm5lcl9leGNpbmZvID0gRXhjZXB0aW9uSW5mbyhm
YWlsdXJlLmV4Y19pbmZvKQogICAgICAgICAgICAgICAgICAgICBsaW5lcyArPSBbIlVORVhQRUNU
RUQgRVhDRVBUSU9OOiAlcyIgJSByZXByKGlubmVyX2V4Y2luZm8udmFsdWUpXQpAQCAtMzQ2LDEx
ICszNTQsNjkgQEAgZGVmIF9jaGVja19hbGxfc2tpcHBlZCh0ZXN0KToKICAgICAgICAgcHl0ZXN0
LnNraXAoImFsbCB0ZXN0cyBza2lwcGVkIGJ5ICtTS0lQIG9wdGlvbiIpCiAKIAotY2xhc3MgRG9j
dGVzdE1vZHVsZShweXRlc3QuTW9kdWxlKToKK2RlZiBfaXNfbW9ja2VkKG9iaik6CisgICAgIiIi
CisgICAgcmV0dXJucyBpZiBhIG9iamVjdCBpcyBwb3NzaWJseSBhIG1vY2sgb2JqZWN0IGJ5IGNo
ZWNraW5nIHRoZSBleGlzdGVuY2Ugb2YgYSBoaWdobHkgaW1wcm9iYWJsZSBhdHRyaWJ1dGUKKyAg
ICAiIiIKKyAgICByZXR1cm4gKAorICAgICAgICBzYWZlX2dldGF0dHIob2JqLCAicHl0ZXN0X21v
Y2tfZXhhbXBsZV9hdHRyaWJ1dGVfdGhhdF9zaG91bGRudF9leGlzdCIsIE5vbmUpCisgICAgICAg
IGlzIG5vdCBOb25lCisgICAgKQorCiAKK0Bjb250ZXh0bWFuYWdlcgorZGVmIF9wYXRjaF91bndy
YXBfbW9ja19hd2FyZSgpOgorICAgICIiIgorICAgIGNvbnRleHRtYW5hZ2VyIHdoaWNoIHJlcGxh
Y2VzIGBgaW5zcGVjdC51bndyYXBgYCB3aXRoIGEgdmVyc2lvbgorICAgIHRoYXQncyBhd2FyZSBv
ZiBtb2NrIG9iamVjdHMgYW5kIGRvZXNuJ3QgcmVjdXJzZSBvbiB0aGVtCisgICAgIiIiCisgICAg
cmVhbF91bndyYXAgPSBnZXRhdHRyKGluc3BlY3QsICJ1bndyYXAiLCBOb25lKQorICAgIGlmIHJl
YWxfdW53cmFwIGlzIE5vbmU6CisgICAgICAgIHlpZWxkCisgICAgZWxzZToKKworICAgICAgICBk
ZWYgX21vY2tfYXdhcmVfdW53cmFwKG9iaiwgc3RvcD1Ob25lKToKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBpZiBzdG9wIGlzIE5vbmUgb3Igc3RvcCBpcyBfaXNfbW9ja2VkOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVhbF91bndyYXAob2JqLCBzdG9wPV9pc19tb2Nr
ZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWxfdW53cmFwKG9iaiwgc3RvcD1sYW1iZGEg
b2JqOiBfaXNfbW9ja2VkKG9iaikgb3Igc3RvcChvYmopKQorICAgICAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAg
ICAgICAgICAgICJHb3QgJXIgd2hlbiB1bndyYXBwaW5nICVyLiAgVGhpcyBpcyB1c3VhbGx5IGNh
dXNlZCAiCisgICAgICAgICAgICAgICAgICAgICJieSBhIHZpb2xhdGlvbiBvZiBQeXRob24ncyBv
YmplY3QgcHJvdG9jb2w7IHNlZSBlLmcuICIKKyAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTA4MCIgJSAoZSwgb2JqKSwKKyAg
ICAgICAgICAgICAgICAgICAgUHl0ZXN0V2FybmluZywKKyAgICAgICAgICAgICAgICApCisgICAg
ICAgICAgICAgICAgcmFpc2UKKworICAgICAgICBpbnNwZWN0LnVud3JhcCA9IF9tb2NrX2F3YXJl
X3Vud3JhcAorICAgICAgICB0cnk6CisgICAgICAgICAgICB5aWVsZAorICAgICAgICBmaW5hbGx5
OgorICAgICAgICAgICAgaW5zcGVjdC51bndyYXAgPSByZWFsX3Vud3JhcAorCisKK2NsYXNzIERv
Y3Rlc3RNb2R1bGUocHl0ZXN0Lk1vZHVsZSk6CiAgICAgZGVmIGNvbGxlY3Qoc2VsZik6CiAgICAg
ICAgIGltcG9ydCBkb2N0ZXN0CiAKKyAgICAgICAgY2xhc3MgTW9ja0F3YXJlRG9jVGVzdEZpbmRl
cihkb2N0ZXN0LkRvY1Rlc3RGaW5kZXIpOgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBh
IGhhY2tpc2ggZG9jdGVzdCBmaW5kZXIgdGhhdCBvdmVycmlkZXMgc3RkbGliIGludGVybmFscyB0
byBmaXggYSBzdGRsaWIgYnVnCisKKyAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzQ1NgorICAgICAgICAgICAgaHR0cHM6Ly9idWdzLnB5dGhv
bi5vcmcvaXNzdWUyNTUzMgorICAgICAgICAgICAgIiIiCisKKyAgICAgICAgICAgIGRlZiBfZmlu
ZChzZWxmLCB0ZXN0cywgb2JqLCBuYW1lLCBtb2R1bGUsIHNvdXJjZV9saW5lcywgZ2xvYnMsIHNl
ZW4pOgorICAgICAgICAgICAgICAgIGlmIF9pc19tb2NrZWQob2JqKToKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgd2l0aCBfcGF0Y2hfdW53cmFwX21vY2tfYXdh
cmUoKToKKworICAgICAgICAgICAgICAgICAgICBkb2N0ZXN0LkRvY1Rlc3RGaW5kZXIuX2ZpbmQo
CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLCB0ZXN0cywgb2JqLCBuYW1lLCBtb2R1bGUs
IHNvdXJjZV9saW5lcywgZ2xvYnMsIHNlZW4KKyAgICAgICAgICAgICAgICAgICAgKQorCiAgICAg
ICAgIGlmIHNlbGYuZnNwYXRoLmJhc2VuYW1lID09ICJjb25mdGVzdC5weSI6CiAgICAgICAgICAg
ICBtb2R1bGUgPSBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLl9pbXBvcnRjb25mdGVzdChzZWxm
LmZzcGF0aCkKICAgICAgICAgZWxzZToKQEAgLTM2Miw3ICs0MjgsNyBAQCBjbGFzcyBEb2N0ZXN0
TW9kdWxlKHB5dGVzdC5Nb2R1bGUpOgogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICAgICAgICAgIHJhaXNlCiAgICAgICAgICMgdXNlcyBpbnRlcm5hbCBkb2N0ZXN0IG1vZHVsZSBw
YXJzaW5nIG1lY2hhbmlzbQotICAgICAgICBmaW5kZXIgPSBkb2N0ZXN0LkRvY1Rlc3RGaW5kZXIo
KQorICAgICAgICBmaW5kZXIgPSBNb2NrQXdhcmVEb2NUZXN0RmluZGVyKCkKICAgICAgICAgb3B0
aW9uZmxhZ3MgPSBnZXRfb3B0aW9uZmxhZ3Moc2VsZikKICAgICAgICAgcnVubmVyID0gX2dldF9y
dW5uZXIoCiAgICAgICAgICAgICB2ZXJib3NlPTAsCkBAIC00ODAsOSArNTQ2LDcgQEAgZGVmIF9n
ZXRfcmVwb3J0X2Nob2ljZShrZXkpOgogICAgICAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfTkRJ
RkY6IGRvY3Rlc3QuUkVQT1JUX05ESUZGLAogICAgICAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0Vf
T05MWV9GSVJTVF9GQUlMVVJFOiBkb2N0ZXN0LlJFUE9SVF9PTkxZX0ZJUlNUX0ZBSUxVUkUsCiAg
ICAgICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9OT05FOiAwLAotICAgIH1bCi0gICAgICAgIGtl
eQotICAgIF0KKyAgICB9W2tleV0KIAogCiBkZWYgX2ZpeF9zcG9vZl9weXRob24yKHJ1bm5lciwg
ZW5jb2RpbmcpOgpAQCAtNTAyLDcgKzU2Niw2IEBAIGRlZiBfZml4X3Nwb29mX3B5dGhvbjIocnVu
bmVyLCBlbmNvZGluZyk6CiAgICAgZnJvbSBkb2N0ZXN0IGltcG9ydCBfU3Bvb2ZPdXQKIAogICAg
IGNsYXNzIFVuaWNvZGVTcG9vZihfU3Bvb2ZPdXQpOgotCiAgICAgICAgIGRlZiBnZXR2YWx1ZShz
ZWxmKToKICAgICAgICAgICAgIHJlc3VsdCA9IF9TcG9vZk91dC5nZXR2YWx1ZShzZWxmKQogICAg
ICAgICAgICAgaWYgZW5jb2RpbmcgYW5kIGlzaW5zdGFuY2UocmVzdWx0LCBieXRlcyk6CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9maXh0dXJlcy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L2ZpeHR1cmVzLnB5CmluZGV4IDQ5NWU2YjliMzMyYTlkZWU3MjMyYTA1YzZh
NTgyZWNkMTE1ZDcwODYuLjI4MGE0ODYwOGI2ODNhMmNmOTVmNmZkNjJhOThmZjU4NzM3Mzc4MmUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2ZpeHR1cmVzLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2ZpeHR1cmVzLnB5CkBAIC0xLDM2ICsxLDQzIEBACi1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IGZ1bmN0b29scwogaW1wb3J0IGlu
c3BlY3QKK2ltcG9ydCBpdGVydG9vbHMKIGltcG9ydCBzeXMKIGltcG9ydCB3YXJuaW5ncwotZnJv
bSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QsIGRlcXVlLCBkZWZhdWx0ZGljdAotZnJv
bSBtb3JlX2l0ZXJ0b29scyBpbXBvcnQgZmxhdHRlbgorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQg
ZGVmYXVsdGRpY3QKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCitmcm9tIGNvbGxlY3Rp
b25zIGltcG9ydCBPcmRlcmVkRGljdAogCiBpbXBvcnQgYXR0cgogaW1wb3J0IHB5Ci1mcm9tIHB5
Ll9jb2RlLmNvZGUgaW1wb3J0IEZvcm1hdHRlZEV4Y2luZm8KK2ltcG9ydCBzaXgKIAogaW1wb3J0
IF9weXRlc3QKIGZyb20gX3B5dGVzdCBpbXBvcnQgbm9kZXMKK2Zyb20gX3B5dGVzdC5fY29kZS5j
b2RlIGltcG9ydCBGb3JtYXR0ZWRFeGNpbmZvCiBmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBv
cnQgVGVybWluYWxSZXByCi1mcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCAoCi0gICAgTk9UU0VU
LAotICAgIGV4Y19jbGVhciwKLSAgICBfZm9ybWF0X2FyZ3MsCi0gICAgZ2V0ZnNsaW5lbm8sCi0g
ICAgZ2V0X3JlYWxfZnVuYywKLSAgICBpc19nZW5lcmF0b3IsCi0gICAgaXNjbGFzcywKLSAgICBn
ZXRpbWZ1bmMsCi0gICAgZ2V0bG9jYXRpb24sCi0gICAgZ2V0ZnVuY2FyZ25hbWVzLAotICAgIHNh
ZmVfZ2V0YXR0ciwKLSAgICBGdW5jYXJnbmFtZXNDb21wYXRBdHRyLAotKQotZnJvbSBfcHl0ZXN0
Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBURVNUX09VVENPTUUKLQotRklYVFVSRV9NU0cgPSAnZml4
dHVyZXMgY2Fubm90IGhhdmUgInB5dGVzdF9mdW5jYXJnX18iIHByZWZpeCBhbmQgYmUgZGVjb3Jh
dGVkIHdpdGggQHB5dGVzdC5maXh0dXJlOlxue30nCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9y
dCBfZm9ybWF0X2FyZ3MKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9QeXRlc3RXcmFwcGVy
Citmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBleGNfY2xlYXIKK2Zyb20gX3B5dGVzdC5jb21w
YXQgaW1wb3J0IEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1w
b3J0IGdldF9yZWFsX2Z1bmMKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGdldF9yZWFsX21l
dGhvZAorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgZ2V0ZnNsaW5lbm8KK2Zyb20gX3B5dGVz
dC5jb21wYXQgaW1wb3J0IGdldGZ1bmNhcmduYW1lcworZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBv
cnQgZ2V0aW1mdW5jCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBnZXRsb2NhdGlvbgorZnJv
bSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgaXNfZ2VuZXJhdG9yCitmcm9tIF9weXRlc3QuY29tcGF0
IGltcG9ydCBpc2NsYXNzCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBOT1RTRVQKK2Zyb20g
X3B5dGVzdC5jb21wYXQgaW1wb3J0IHNhZmVfZ2V0YXR0cgorZnJvbSBfcHl0ZXN0LmRlcHJlY2F0
ZWQgaW1wb3J0IEZJWFRVUkVfRlVOQ1RJT05fQ0FMTAorZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQg
aW1wb3J0IEZJWFRVUkVfTkFNRURfUkVRVUVTVAorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9y
dCBmYWlsCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IFRFU1RfT1VUQ09NRQogCiAKIEBh
dHRyLnMoZnJvemVuPVRydWUpCkBAIC00NSw2ICs1Miw3IEBAIGRlZiBweXRlc3Rfc2Vzc2lvbnN0
YXJ0KHNlc3Npb24pOgogCiAgICAgc2NvcGVuYW1lMmNsYXNzLnVwZGF0ZSgKICAgICAgICAgewor
ICAgICAgICAgICAgInBhY2thZ2UiOiBfcHl0ZXN0LnB5dGhvbi5QYWNrYWdlLAogICAgICAgICAg
ICAgImNsYXNzIjogX3B5dGVzdC5weXRob24uQ2xhc3MsCiAgICAgICAgICAgICAibW9kdWxlIjog
X3B5dGVzdC5weXRob24uTW9kdWxlLAogICAgICAgICAgICAgImZ1bmN0aW9uIjogX3B5dGVzdC5u
b2Rlcy5JdGVtLApAQCAtNTgsNiArNjYsNyBAQCBzY29wZW5hbWUyY2xhc3MgPSB7fQogCiAKIHNj
b3BlMnByb3BzID0gZGljdChzZXNzaW9uPSgpKQorc2NvcGUycHJvcHNbInBhY2thZ2UiXSA9ICgi
ZnNwYXRoIiwpCiBzY29wZTJwcm9wc1sibW9kdWxlIl0gPSAoImZzcGF0aCIsICJtb2R1bGUiKQog
c2NvcGUycHJvcHNbImNsYXNzIl0gPSBzY29wZTJwcm9wc1sibW9kdWxlIl0gKyAoImNscyIsKQog
c2NvcGUycHJvcHNbImluc3RhbmNlIl0gPSBzY29wZTJwcm9wc1siY2xhc3MiXSArICgiaW5zdGFu
Y2UiLCkKQEAgLTY1LDcgKzc0LDYgQEAgc2NvcGUycHJvcHNbImZ1bmN0aW9uIl0gPSBzY29wZTJw
cm9wc1siaW5zdGFuY2UiXSArICgiZnVuY3Rpb24iLCAia2V5d29yZHMiKQogCiAKIGRlZiBzY29w
ZXByb3BlcnR5KG5hbWU9Tm9uZSwgZG9jPU5vbmUpOgotCiAgICAgZGVmIGRlY29yYXRlc2NvcGUo
ZnVuYyk6CiAgICAgICAgIHNjb3BlbmFtZSA9IG5hbWUgb3IgZnVuYy5fX25hbWVfXwogCkBAIC04
MSw2ICs4OSwyMSBAQCBkZWYgc2NvcGVwcm9wZXJ0eShuYW1lPU5vbmUsIGRvYz1Ob25lKToKICAg
ICByZXR1cm4gZGVjb3JhdGVzY29wZQogCiAKK2RlZiBnZXRfc2NvcGVfcGFja2FnZShub2RlLCBm
aXh0dXJlZGVmKToKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBjbHMgPSBweXRlc3QuUGFja2Fn
ZQorICAgIGN1cnJlbnQgPSBub2RlCisgICAgZml4dHVyZV9wYWNrYWdlX25hbWUgPSAiJXMvJXMi
ICUgKGZpeHR1cmVkZWYuYmFzZWlkLCAiX19pbml0X18ucHkiKQorICAgIHdoaWxlIGN1cnJlbnQg
YW5kICgKKyAgICAgICAgdHlwZShjdXJyZW50KSBpcyBub3QgY2xzIG9yIGZpeHR1cmVfcGFja2Fn
ZV9uYW1lICE9IGN1cnJlbnQubm9kZWlkCisgICAgKToKKyAgICAgICAgY3VycmVudCA9IGN1cnJl
bnQucGFyZW50CisgICAgaWYgY3VycmVudCBpcyBOb25lOgorICAgICAgICByZXR1cm4gbm9kZS5z
ZXNzaW9uCisgICAgcmV0dXJuIGN1cnJlbnQKKworCiBkZWYgZ2V0X3Njb3BlX25vZGUobm9kZSwg
c2NvcGUpOgogICAgIGNscyA9IHNjb3BlbmFtZTJjbGFzcy5nZXQoc2NvcGUpCiAgICAgaWYgY2xz
IGlzIE5vbmU6CkBAIC0xNzQsOSArMTk3LDExIEBAIGRlZiBnZXRfcGFyYW1ldHJpemVkX2ZpeHR1
cmVfa2V5cyhpdGVtLCBzY29wZW51bSk6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAg
ICAgICAgIGlmIHNjb3BlbnVtID09IDA6ICAjIHNlc3Npb24KICAgICAgICAgICAgICAgICBrZXkg
PSAoYXJnbmFtZSwgcGFyYW1faW5kZXgpCi0gICAgICAgICAgICBlbGlmIHNjb3BlbnVtID09IDE6
ICAjIG1vZHVsZQorICAgICAgICAgICAgZWxpZiBzY29wZW51bSA9PSAxOiAgIyBwYWNrYWdlCisg
ICAgICAgICAgICAgICAga2V5ID0gKGFyZ25hbWUsIHBhcmFtX2luZGV4LCBpdGVtLmZzcGF0aC5k
aXJwYXRoKCkpCisgICAgICAgICAgICBlbGlmIHNjb3BlbnVtID09IDI6ICAjIG1vZHVsZQogICAg
ICAgICAgICAgICAgIGtleSA9IChhcmduYW1lLCBwYXJhbV9pbmRleCwgaXRlbS5mc3BhdGgpCi0g
ICAgICAgICAgICBlbGlmIHNjb3BlbnVtID09IDI6ICAjIGNsYXNzCisgICAgICAgICAgICBlbGlm
IHNjb3BlbnVtID09IDM6ICAjIGNsYXNzCiAgICAgICAgICAgICAgICAga2V5ID0gKGFyZ25hbWUs
IHBhcmFtX2luZGV4LCBpdGVtLmZzcGF0aCwgaXRlbS5jbHMpCiAgICAgICAgICAgICB5aWVsZCBr
ZXkKIApAQCAtMjc1LDEyICszMDAsNDMgQEAgZGVmIGdldF9kaXJlY3RfcGFyYW1fZml4dHVyZV9m
dW5jKHJlcXVlc3QpOgogICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCiAKIAorQGF0dHIucyhzbG90
cz1UcnVlKQogY2xhc3MgRnVuY0ZpeHR1cmVJbmZvKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgYXJnbmFtZXMsIG5hbWVzX2Nsb3N1cmUsIG5hbWUyZml4dHVyZWRlZnMpOgotICAg
ICAgICBzZWxmLmFyZ25hbWVzID0gYXJnbmFtZXMKLSAgICAgICAgc2VsZi5uYW1lc19jbG9zdXJl
ID0gbmFtZXNfY2xvc3VyZQotICAgICAgICBzZWxmLm5hbWUyZml4dHVyZWRlZnMgPSBuYW1lMmZp
eHR1cmVkZWZzCisgICAgIyBvcmlnaW5hbCBmdW5jdGlvbiBhcmd1bWVudCBuYW1lcworICAgIGFy
Z25hbWVzID0gYXR0ci5pYih0eXBlPXR1cGxlKQorICAgICMgYXJnbmFtZXMgdGhhdCBmdW5jdGlv
biBpbW1lZGlhdGVseSByZXF1aXJlcy4gVGhlc2UgaW5jbHVkZSBhcmduYW1lcyArCisgICAgIyBm
aXh0dXJlIG5hbWVzIHNwZWNpZmllZCB2aWEgdXNlZml4dHVyZXMgYW5kIHZpYSBhdXRvdXNlPVRy
dWUgaW4gZml4dHVyZQorICAgICMgZGVmaW5pdGlvbnMuCisgICAgaW5pdGlhbG5hbWVzID0gYXR0
ci5pYih0eXBlPXR1cGxlKQorICAgIG5hbWVzX2Nsb3N1cmUgPSBhdHRyLmliKCkgICMgTGlzdFtz
dHJdCisgICAgbmFtZTJmaXh0dXJlZGVmcyA9IGF0dHIuaWIoKSAgIyBMaXN0W3N0ciwgTGlzdFtG
aXh0dXJlRGVmXV0KKworICAgIGRlZiBwcnVuZV9kZXBlbmRlbmN5X3RyZWUoc2VsZik6CisgICAg
ICAgICIiIlJlY29tcHV0ZSBuYW1lc19jbG9zdXJlIGZyb20gaW5pdGlhbG5hbWVzIGFuZCBuYW1l
MmZpeHR1cmVkZWZzCisKKyAgICAgICAgQ2FuIG9ubHkgcmVkdWNlIG5hbWVzX2Nsb3N1cmUsIHdo
aWNoIG1lYW5zIHRoYXQgdGhlIG5ldyBjbG9zdXJlIHdpbGwKKyAgICAgICAgYWx3YXlzIGJlIGEg
c3Vic2V0IG9mIHRoZSBvbGQgb25lLiBUaGUgb3JkZXIgaXMgcHJlc2VydmVkLgorCisgICAgICAg
IFRoaXMgbWV0aG9kIGlzIG5lZWRlZCBiZWNhdXNlIGRpcmVjdCBwYXJhbWV0cml6YXRpb24gbWF5
IHNoYWRvdyBzb21lCisgICAgICAgIG9mIHRoZSBmaXh0dXJlcyB0aGF0IHdlcmUgaW5jbHVkZWQg
aW4gdGhlIG9yaWdpbmFsbHkgYnVpbHQgZGVwZW5kZW5jeQorICAgICAgICB0cmVlLiBJbiB0aGlz
IHdheSB0aGUgZGVwZW5kZW5jeSB0cmVlIGNhbiBnZXQgcHJ1bmVkLCBhbmQgdGhlIGNsb3N1cmUK
KyAgICAgICAgb2YgYXJnbmFtZXMgbWF5IGdldCByZWR1Y2VkLgorICAgICAgICAiIiIKKyAgICAg
ICAgY2xvc3VyZSA9IHNldCgpCisgICAgICAgIHdvcmtpbmdfc2V0ID0gc2V0KHNlbGYuaW5pdGlh
bG5hbWVzKQorICAgICAgICB3aGlsZSB3b3JraW5nX3NldDoKKyAgICAgICAgICAgIGFyZ25hbWUg
PSB3b3JraW5nX3NldC5wb3AoKQorICAgICAgICAgICAgIyBhcmduYW1lIG1heSBiZSBzbXRoIG5v
dCBpbmNsdWRlZCBpbiB0aGUgb3JpZ2luYWwgbmFtZXNfY2xvc3VyZSwKKyAgICAgICAgICAgICMg
aW4gd2hpY2ggY2FzZSB3ZSBpZ25vcmUgaXQuIFRoaXMgY3VycmVudGx5IGhhcHBlbnMgd2l0aCBw
c2V1ZG8KKyAgICAgICAgICAgICMgRml4dHVyZURlZnMgd2hpY2ggd3JhcCAnZ2V0X2RpcmVjdF9w
YXJhbV9maXh0dXJlX2Z1bmMocmVxdWVzdCknLgorICAgICAgICAgICAgIyBTbyB0aGV5IGludHJv
ZHVjZSB0aGUgbmV3IGRlcGVuZGVuY3kgJ3JlcXVlc3QnIHdoaWNoIG1pZ2h0IGhhdmUKKyAgICAg
ICAgICAgICMgYmVlbiBtaXNzaW5nIGluIHRoZSBvcmlnaW5hbCB0cmVlIChjbG9zdXJlKS4KKyAg
ICAgICAgICAgIGlmIGFyZ25hbWUgbm90IGluIGNsb3N1cmUgYW5kIGFyZ25hbWUgaW4gc2VsZi5u
YW1lc19jbG9zdXJlOgorICAgICAgICAgICAgICAgIGNsb3N1cmUuYWRkKGFyZ25hbWUpCisgICAg
ICAgICAgICAgICAgaWYgYXJnbmFtZSBpbiBzZWxmLm5hbWUyZml4dHVyZWRlZnM6CisgICAgICAg
ICAgICAgICAgICAgIHdvcmtpbmdfc2V0LnVwZGF0ZShzZWxmLm5hbWUyZml4dHVyZWRlZnNbYXJn
bmFtZV1bLTFdLmFyZ25hbWVzKQorCisgICAgICAgIHNlbGYubmFtZXNfY2xvc3VyZVs6XSA9IHNv
cnRlZChjbG9zdXJlLCBrZXk9c2VsZi5uYW1lc19jbG9zdXJlLmluZGV4KQogCiAKIGNsYXNzIEZp
eHR1cmVSZXF1ZXN0KEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgpAQCAtMzA1LDggKzM2MSwxMCBA
QCBjbGFzcyBGaXh0dXJlUmVxdWVzdChGdW5jYXJnbmFtZXNDb21wYXRBdHRyKToKIAogICAgIEBw
cm9wZXJ0eQogICAgIGRlZiBmaXh0dXJlbmFtZXMoc2VsZik6Ci0gICAgICAgICMgYmFja3dhcmQg
aW5jb21wYXRpYmxlIG5vdGU6IG5vdyBhIHJlYWRvbmx5IHByb3BlcnR5Ci0gICAgICAgIHJldHVy
biBsaXN0KHNlbGYuX3B5ZnVuY2l0ZW0uX2ZpeHR1cmVpbmZvLm5hbWVzX2Nsb3N1cmUpCisgICAg
ICAgICIiIm5hbWVzIG9mIGFsbCBhY3RpdmUgZml4dHVyZXMgaW4gdGhpcyByZXF1ZXN0IiIiCisg
ICAgICAgIHJlc3VsdCA9IGxpc3Qoc2VsZi5fcHlmdW5jaXRlbS5fZml4dHVyZWluZm8ubmFtZXNf
Y2xvc3VyZSkKKyAgICAgICAgcmVzdWx0LmV4dGVuZChzZXQoc2VsZi5fZml4dHVyZV9kZWZzKS5k
aWZmZXJlbmNlKHJlc3VsdCkpCisgICAgICAgIHJldHVybiByZXN1bHQKIAogICAgIEBwcm9wZXJ0
eQogICAgIGRlZiBub2RlKHNlbGYpOgpAQCAtNDEwLDQwICs0NjgsNiBAQCBjbGFzcyBGaXh0dXJl
UmVxdWVzdChGdW5jYXJnbmFtZXNDb21wYXRBdHRyKToKICAgICAgICAgICAgIGlmIGFyZ25hbWUg
bm90IGluIGl0ZW0uZnVuY2FyZ3M6CiAgICAgICAgICAgICAgICAgaXRlbS5mdW5jYXJnc1thcmdu
YW1lXSA9IHNlbGYuZ2V0Zml4dHVyZXZhbHVlKGFyZ25hbWUpCiAKLSAgICBkZWYgY2FjaGVkX3Nl
dHVwKHNlbGYsIHNldHVwLCB0ZWFyZG93bj1Ob25lLCBzY29wZT0ibW9kdWxlIiwgZXh0cmFrZXk9
Tm9uZSk6Ci0gICAgICAgICIiIiAoZGVwcmVjYXRlZCkgUmV0dXJuIGEgdGVzdGluZyByZXNvdXJj
ZSBtYW5hZ2VkIGJ5IGBgc2V0dXBgYCAmCi0gICAgICAgIGBgdGVhcmRvd25gYCBjYWxscy4gIGBg
c2NvcGVgYCBhbmQgYGBleHRyYWtleWBgIGRldGVybWluZSB3aGVuIHRoZQotICAgICAgICBgYHRl
YXJkb3duYGAgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgc28gdGhhdCBzdWJzZXF1ZW50IGNhbGxz
IHRvCi0gICAgICAgIGBgc2V0dXBgYCB3b3VsZCByZWNyZWF0ZSB0aGUgcmVzb3VyY2UuICBXaXRo
IHB5dGVzdC0yLjMgeW91IG9mdGVuCi0gICAgICAgIGRvIG5vdCBuZWVkIGBgY2FjaGVkX3NldHVw
KClgYCBhcyB5b3UgY2FuIGRpcmVjdGx5IGRlY2xhcmUgYSBzY29wZQotICAgICAgICBvbiBhIGZp
eHR1cmUgZnVuY3Rpb24gYW5kIHJlZ2lzdGVyIGEgZmluYWxpemVyIHRocm91Z2gKLSAgICAgICAg
YGByZXF1ZXN0LmFkZGZpbmFsaXplcigpYGAuCi0KLSAgICAgICAgOmFyZyB0ZWFyZG93bjogZnVu
Y3Rpb24gcmVjZWl2aW5nIGEgcHJldmlvdXNseSBzZXR1cCByZXNvdXJjZS4KLSAgICAgICAgOmFy
ZyBzZXR1cDogYSBuby1hcmd1bWVudCBmdW5jdGlvbiBjcmVhdGluZyBhIHJlc291cmNlLgotICAg
ICAgICA6YXJnIHNjb3BlOiBhIHN0cmluZyB2YWx1ZSBvdXQgb2YgYGBmdW5jdGlvbmBgLCBgYGNs
YXNzYGAsIGBgbW9kdWxlYGAKLSAgICAgICAgICAgIG9yIGBgc2Vzc2lvbmBgIGluZGljYXRpbmcg
dGhlIGNhY2hpbmcgbGlmZWN5Y2xlIG9mIHRoZSByZXNvdXJjZS4KLSAgICAgICAgOmFyZyBleHRy
YWtleTogYWRkZWQgdG8gaW50ZXJuYWwgY2FjaGluZyBrZXkgb2YgKGZ1bmNhcmduYW1lLCBzY29w
ZSkuCi0gICAgICAgICIiIgotICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLmNvbmZpZywgIl9z
ZXR1cGNhY2hlIik6Ci0gICAgICAgICAgICBzZWxmLmNvbmZpZy5fc2V0dXBjYWNoZSA9IHt9ICAj
IFhYWCB3ZWFrcmVmPwotICAgICAgICBjYWNoZWtleSA9IChzZWxmLmZpeHR1cmVuYW1lLCBzZWxm
Ll9nZXRzY29wZWl0ZW0oc2NvcGUpLCBleHRyYWtleSkKLSAgICAgICAgY2FjaGUgPSBzZWxmLmNv
bmZpZy5fc2V0dXBjYWNoZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB2YWwgPSBjYWNoZVtj
YWNoZWtleV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgc2VsZi5fY2hl
Y2tfc2NvcGUoc2VsZi5maXh0dXJlbmFtZSwgc2VsZi5zY29wZSwgc2NvcGUpCi0gICAgICAgICAg
ICB2YWwgPSBzZXR1cCgpCi0gICAgICAgICAgICBjYWNoZVtjYWNoZWtleV0gPSB2YWwKLSAgICAg
ICAgICAgIGlmIHRlYXJkb3duIGlzIG5vdCBOb25lOgotCi0gICAgICAgICAgICAgICAgZGVmIGZp
bmFsaXplcigpOgotICAgICAgICAgICAgICAgICAgICBkZWwgY2FjaGVbY2FjaGVrZXldCi0gICAg
ICAgICAgICAgICAgICAgIHRlYXJkb3duKHZhbCkKLQotICAgICAgICAgICAgICAgIHNlbGYuX2Fk
ZGZpbmFsaXplcihmaW5hbGl6ZXIsIHNjb3BlPXNjb3BlKQotICAgICAgICByZXR1cm4gdmFsCi0K
ICAgICBkZWYgZ2V0Zml4dHVyZXZhbHVlKHNlbGYsIGFyZ25hbWUpOgogICAgICAgICAiIiIgRHlu
YW1pY2FsbHkgcnVuIGEgbmFtZWQgZml4dHVyZSBmdW5jdGlvbi4KIApAQCAtNDU4LDcgKzQ4Miw3
IEBAIGNsYXNzIEZpeHR1cmVSZXF1ZXN0KEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgogICAgICAg
ICAiIiIgRGVwcmVjYXRlZCwgdXNlIGdldGZpeHR1cmV2YWx1ZS4gIiIiCiAgICAgICAgIGZyb20g
X3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAogCi0gICAgICAgIHdhcm5pbmdzLndhcm4oZGVwcmVj
YXRlZC5HRVRGVU5DQVJHVkFMVUUsIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQor
ICAgICAgICB3YXJuaW5ncy53YXJuKGRlcHJlY2F0ZWQuR0VURlVOQ0FSR1ZBTFVFLCBzdGFja2xl
dmVsPTIpCiAgICAgICAgIHJldHVybiBzZWxmLmdldGZpeHR1cmV2YWx1ZShhcmduYW1lKQogCiAg
ICAgZGVmIF9nZXRfYWN0aXZlX2ZpeHR1cmVkZWYoc2VsZiwgYXJnbmFtZSk6CkBAIC01MDgsNyAr
NTMyLDIwIEBAIGNsYXNzIEZpeHR1cmVSZXF1ZXN0KEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgog
ICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBWYWx1ZUVycm9yKToKICAgICAgICAgICAg
IHBhcmFtID0gTk9UU0VUCiAgICAgICAgICAgICBwYXJhbV9pbmRleCA9IDAKLSAgICAgICAgICAg
IGlmIGZpeHR1cmVkZWYucGFyYW1zIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaGFzX3BhcmFt
cyA9IGZpeHR1cmVkZWYucGFyYW1zIGlzIG5vdCBOb25lCisgICAgICAgICAgICBmaXh0dXJlc19u
b3Rfc3VwcG9ydGVkID0gZ2V0YXR0cihmdW5jaXRlbSwgIm5vZnVuY2FyZ3MiLCBGYWxzZSkKKyAg
ICAgICAgICAgIGlmIGhhc19wYXJhbXMgYW5kIGZpeHR1cmVzX25vdF9zdXBwb3J0ZWQ6CisgICAg
ICAgICAgICAgICAgbXNnID0gKAorICAgICAgICAgICAgICAgICAgICAie25hbWV9IGRvZXMgbm90
IHN1cHBvcnQgZml4dHVyZXMsIG1heWJlIHVuaXR0ZXN0LlRlc3RDYXNlIHN1YmNsYXNzP1xuIgor
ICAgICAgICAgICAgICAgICAgICAiTm9kZSBpZDoge25vZGVpZH1cbiIKKyAgICAgICAgICAgICAg
ICAgICAgIkZ1bmN0aW9uIHR5cGU6IHt0eXBlbmFtZX0iCisgICAgICAgICAgICAgICAgKS5mb3Jt
YXQoCisgICAgICAgICAgICAgICAgICAgIG5hbWU9ZnVuY2l0ZW0ubmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgbm9kZWlkPWZ1bmNpdGVtLm5vZGVpZCwKKyAgICAgICAgICAgICAgICAgICAgdHlw
ZW5hbWU9dHlwZShmdW5jaXRlbSkuX19uYW1lX18sCisgICAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgICAgIGZhaWwobXNnLCBweXRyYWNlPUZhbHNlKQorICAgICAgICAgICAgaWYgaGFzX3Bh
cmFtczoKICAgICAgICAgICAgICAgICBmcmFtZSA9IGluc3BlY3Quc3RhY2soKVszXQogICAgICAg
ICAgICAgICAgIGZyYW1laW5mbyA9IGluc3BlY3QuZ2V0ZnJhbWVpbmZvKGZyYW1lWzBdKQogICAg
ICAgICAgICAgICAgIHNvdXJjZV9wYXRoID0gZnJhbWVpbmZvLmZpbGVuYW1lCkBAIC01MTcsMTkg
KzU1NCwyMCBAQCBjbGFzcyBGaXh0dXJlUmVxdWVzdChGdW5jYXJnbmFtZXNDb21wYXRBdHRyKToK
ICAgICAgICAgICAgICAgICBpZiBzb3VyY2VfcGF0aC5yZWx0byhmdW5jaXRlbS5jb25maWcucm9v
dGRpcik6CiAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoID0gc291cmNlX3BhdGgucmVs
dG8oZnVuY2l0ZW0uY29uZmlnLnJvb3RkaXIpCiAgICAgICAgICAgICAgICAgbXNnID0gKAotICAg
ICAgICAgICAgICAgICAgICAiVGhlIHJlcXVlc3RlZCBmaXh0dXJlIGhhcyBubyBwYXJhbWV0ZXIg
ZGVmaW5lZCBmb3IgdGhlICIKLSAgICAgICAgICAgICAgICAgICAgImN1cnJlbnQgdGVzdC5cblxu
UmVxdWVzdGVkIGZpeHR1cmUgJ3t9JyBkZWZpbmVkIGluOlxue30iCisgICAgICAgICAgICAgICAg
ICAgICJUaGUgcmVxdWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFtZXRlciBkZWZpbmVkIGZvciB0
ZXN0OlxuIgorICAgICAgICAgICAgICAgICAgICAiICAgIHt9XG5cbiIKKyAgICAgICAgICAgICAg
ICAgICAgIlJlcXVlc3RlZCBmaXh0dXJlICd7fScgZGVmaW5lZCBpbjpcbnt9IgogICAgICAgICAg
ICAgICAgICAgICAiXG5cblJlcXVlc3RlZCBoZXJlOlxue306e30iLmZvcm1hdCgKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmNpdGVtLm5vZGVpZCwKICAgICAgICAgICAgICAgICAgICAgICAg
IGZpeHR1cmVkZWYuYXJnbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGdldGxvY2F0aW9u
KGZpeHR1cmVkZWYuZnVuYywgZnVuY2l0ZW0uY29uZmlnLnJvb3RkaXIpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgc291cmNlX3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vf
bGluZW5vLAogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgICAgIGZhaWwobXNnKQorICAgICAgICAgICAgICAgIGZhaWwobXNnLCBweXRyYWNlPUZh
bHNlKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBpbmRpY2VzIG1pZ2h0IG5vdCBiZSBz
ZXQgaWYgb2xkLXN0eWxlIG1ldGFmdW5jLmFkZGNhbGwoKSB3YXMgdXNlZAotICAgICAgICAgICAg
cGFyYW1faW5kZXggPSBmdW5jaXRlbS5jYWxsc3BlYy5pbmRpY2VzLmdldChhcmduYW1lLCAwKQor
ICAgICAgICAgICAgcGFyYW1faW5kZXggPSBmdW5jaXRlbS5jYWxsc3BlYy5pbmRpY2VzW2FyZ25h
bWVdCiAgICAgICAgICAgICAjIGlmIGEgcGFyYW1ldHJpemUgaW52b2NhdGlvbiBzZXQgYSBzY29w
ZSBpdCB3aWxsIG92ZXJyaWRlCiAgICAgICAgICAgICAjIHRoZSBzdGF0aWMgc2NvcGUgZGVmaW5l
ZCB3aXRoIHRoZSBmaXh0dXJlIGZ1bmN0aW9uCiAgICAgICAgICAgICBwYXJhbXNjb3BlbnVtID0g
ZnVuY2l0ZW0uY2FsbHNwZWMuX2FyZzJzY29wZW51bS5nZXQoYXJnbmFtZSkKQEAgLTU0MiwxNyAr
NTgwLDE5IEBAIGNsYXNzIEZpeHR1cmVSZXF1ZXN0KEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgog
ICAgICAgICBzdWJyZXF1ZXN0Ll9jaGVja19zY29wZShhcmduYW1lLCBzZWxmLnNjb3BlLCBzY29w
ZSkKIAogICAgICAgICAjIGNsZWFyIHN5cy5leGNfaW5mbyBiZWZvcmUgaW52b2tpbmcgdGhlIGZp
eHR1cmUgKHB5dGhvbiBidWc/KQotICAgICAgICAjIGlmIGl0cyBub3QgZXhwbGljaXRseSBjbGVh
cmVkIGl0IHdpbGwgbGVhayBpbnRvIHRoZSBjYWxsCisgICAgICAgICMgaWYgaXQncyBub3QgZXhw
bGljaXRseSBjbGVhcmVkIGl0IHdpbGwgbGVhayBpbnRvIHRoZSBjYWxsCiAgICAgICAgIGV4Y19j
bGVhcigpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgICMgY2FsbCB0aGUgZml4dHVyZSBmdW5j
dGlvbgogICAgICAgICAgICAgZml4dHVyZWRlZi5leGVjdXRlKHJlcXVlc3Q9c3VicmVxdWVzdCkK
ICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICMgaWYgZml4dHVyZSBmdW5jdGlvbiBmYWls
ZWQgaXQgbWlnaHQgaGF2ZSByZWdpc3RlcmVkIGZpbmFsaXplcnMKLSAgICAgICAgICAgIHNlbGYu
c2Vzc2lvbi5fc2V0dXBzdGF0ZS5hZGRmaW5hbGl6ZXIoCi0gICAgICAgICAgICAgICAgZnVuY3Rv
b2xzLnBhcnRpYWwoZml4dHVyZWRlZi5maW5pc2gsIHJlcXVlc3Q9c3VicmVxdWVzdCksCi0gICAg
ICAgICAgICAgICAgc3VicmVxdWVzdC5ub2RlLAotICAgICAgICAgICAgKQorICAgICAgICAgICAg
c2VsZi5fc2NoZWR1bGVfZmluYWxpemVycyhmaXh0dXJlZGVmLCBzdWJyZXF1ZXN0KQorCisgICAg
ZGVmIF9zY2hlZHVsZV9maW5hbGl6ZXJzKHNlbGYsIGZpeHR1cmVkZWYsIHN1YnJlcXVlc3QpOgor
ICAgICAgICAjIGlmIGZpeHR1cmUgZnVuY3Rpb24gZmFpbGVkIGl0IG1pZ2h0IGhhdmUgcmVnaXN0
ZXJlZCBmaW5hbGl6ZXJzCisgICAgICAgIHNlbGYuc2Vzc2lvbi5fc2V0dXBzdGF0ZS5hZGRmaW5h
bGl6ZXIoCisgICAgICAgICAgICBmdW5jdG9vbHMucGFydGlhbChmaXh0dXJlZGVmLmZpbmlzaCwg
cmVxdWVzdD1zdWJyZXF1ZXN0KSwgc3VicmVxdWVzdC5ub2RlCisgICAgICAgICkKIAogICAgIGRl
ZiBfY2hlY2tfc2NvcGUoc2VsZiwgYXJnbmFtZSwgaW52b2tpbmdfc2NvcGUsIHJlcXVlc3RlZF9z
Y29wZSk6CiAgICAgICAgIGlmIGFyZ25hbWUgPT0gInJlcXVlc3QiOgpAQCAtNTc1LDE0ICs2MTUs
MTcgQEAgY2xhc3MgRml4dHVyZVJlcXVlc3QoRnVuY2FyZ25hbWVzQ29tcGF0QXR0cik6CiAgICAg
ICAgICAgICBmcywgbGluZW5vID0gZ2V0ZnNsaW5lbm8oZmFjdG9yeSkKICAgICAgICAgICAgIHAg
PSBzZWxmLl9weWZ1bmNpdGVtLnNlc3Npb24uZnNwYXRoLmJlc3RyZWxwYXRoKGZzKQogICAgICAg
ICAgICAgYXJncyA9IF9mb3JtYXRfYXJncyhmYWN0b3J5KQotICAgICAgICAgICAgbGluZXMuYXBw
ZW5kKCIlczolZDogIGRlZiAlcyVzIiAlIChwLCBsaW5lbm8sIGZhY3RvcnkuX19uYW1lX18sIGFy
Z3MpKQorICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIlczolZDogIGRlZiAlcyVzIiAlIChwLCBs
aW5lbm8gKyAxLCBmYWN0b3J5Ll9fbmFtZV9fLCBhcmdzKSkKICAgICAgICAgcmV0dXJuIGxpbmVz
CiAKICAgICBkZWYgX2dldHNjb3BlaXRlbShzZWxmLCBzY29wZSk6CiAgICAgICAgIGlmIHNjb3Bl
ID09ICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAjIHRoaXMgbWlnaHQgYWxzbyBiZSBhIG5vbi1m
dW5jdGlvbiBJdGVtIGRlc3BpdGUgaXRzIGF0dHJpYnV0ZSBuYW1lCiAgICAgICAgICAgICByZXR1
cm4gc2VsZi5fcHlmdW5jaXRlbQotICAgICAgICBub2RlID0gZ2V0X3Njb3BlX25vZGUoc2VsZi5f
cHlmdW5jaXRlbSwgc2NvcGUpCisgICAgICAgIGlmIHNjb3BlID09ICJwYWNrYWdlIjoKKyAgICAg
ICAgICAgIG5vZGUgPSBnZXRfc2NvcGVfcGFja2FnZShzZWxmLl9weWZ1bmNpdGVtLCBzZWxmLl9m
aXh0dXJlZGVmKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbm9kZSA9IGdldF9zY29wZV9u
b2RlKHNlbGYuX3B5ZnVuY2l0ZW0sIHNjb3BlKQogICAgICAgICBpZiBub2RlIGlzIE5vbmUgYW5k
IHNjb3BlID09ICJjbGFzcyI6CiAgICAgICAgICAgICAjIGZhbGxiYWNrIHRvIGZ1bmN0aW9uIGl0
ZW0gaXRzZWxmCiAgICAgICAgICAgICBub2RlID0gc2VsZi5fcHlmdW5jaXRlbQpAQCAtNjE5LDE0
ICs2NjIsMTggQEAgY2xhc3MgU3ViUmVxdWVzdChGaXh0dXJlUmVxdWVzdCk6CiAgICAgZGVmIGFk
ZGZpbmFsaXplcihzZWxmLCBmaW5hbGl6ZXIpOgogICAgICAgICBzZWxmLl9maXh0dXJlZGVmLmFk
ZGZpbmFsaXplcihmaW5hbGl6ZXIpCiAKLQotY2xhc3MgU2NvcGVNaXNtYXRjaEVycm9yKEV4Y2Vw
dGlvbik6Ci0gICAgIiIiIEEgZml4dHVyZSBmdW5jdGlvbiB0cmllcyB0byB1c2UgYSBkaWZmZXJl
bnQgZml4dHVyZSBmdW5jdGlvbiB3aGljaAotICAgIHdoaWNoIGhhcyBhIGxvd2VyIHNjb3BlIChl
LmcuIGEgU2Vzc2lvbiBvbmUgY2FsbHMgYSBmdW5jdGlvbiBvbmUpCi0gICAgIiIiCisgICAgZGVm
IF9zY2hlZHVsZV9maW5hbGl6ZXJzKHNlbGYsIGZpeHR1cmVkZWYsIHN1YnJlcXVlc3QpOgorICAg
ICAgICAjIGlmIHRoZSBleGVjdXRpbmcgZml4dHVyZWRlZiB3YXMgbm90IGV4cGxpY2l0bHkgcmVx
dWVzdGVkIGluIHRoZSBhcmd1bWVudCBsaXN0ICh2aWEKKyAgICAgICAgIyBnZXRmaXh0dXJldmFs
dWUgaW5zaWRlIHRoZSBmaXh0dXJlIGNhbGwpIHRoZW4gZW5zdXJlIHRoaXMgZml4dHVyZSBkZWYg
d2lsbCBiZSBmaW5pc2hlZAorICAgICAgICAjIGZpcnN0CisgICAgICAgIGlmIGZpeHR1cmVkZWYu
YXJnbmFtZSBub3QgaW4gc2VsZi5mdW5jYXJnbmFtZXM6CisgICAgICAgICAgICBmaXh0dXJlZGVm
LmFkZGZpbmFsaXplcigKKyAgICAgICAgICAgICAgICBmdW5jdG9vbHMucGFydGlhbChzZWxmLl9m
aXh0dXJlZGVmLmZpbmlzaCwgcmVxdWVzdD1zZWxmKQorICAgICAgICAgICAgKQorICAgICAgICBz
dXBlcihTdWJSZXF1ZXN0LCBzZWxmKS5fc2NoZWR1bGVfZmluYWxpemVycyhmaXh0dXJlZGVmLCBz
dWJyZXF1ZXN0KQogCiAKLXNjb3BlcyA9ICJzZXNzaW9uIG1vZHVsZSBjbGFzcyBmdW5jdGlvbiIu
c3BsaXQoKQorc2NvcGVzID0gInNlc3Npb24gcGFja2FnZSBtb2R1bGUgY2xhc3MgZnVuY3Rpb24i
LnNwbGl0KCkKIHNjb3BlbnVtX2Z1bmN0aW9uID0gc2NvcGVzLmluZGV4KCJmdW5jdGlvbiIpCiAK
IApAQCAtNjQxLDEwICs2ODgsMTEgQEAgZGVmIHNjb3BlMmluZGV4KHNjb3BlLCBkZXNjciwgd2hl
cmU9Tm9uZSk6CiAgICAgdHJ5OgogICAgICAgICByZXR1cm4gc2NvcGVzLmluZGV4KHNjb3BlKQog
ICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAg
ICAgICAgInt9IHt9aGFzIGFuIHVuc3VwcG9ydGVkIHNjb3BlIHZhbHVlICd7fSciLmZvcm1hdCgK
KyAgICAgICAgZmFpbCgKKyAgICAgICAgICAgICJ7fSB7fWdvdCBhbiB1bmV4cGVjdGVkIHNjb3Bl
IHZhbHVlICd7fSciLmZvcm1hdCgKICAgICAgICAgICAgICAgICBkZXNjciwgImZyb20ge30gIi5m
b3JtYXQod2hlcmUpIGlmIHdoZXJlIGVsc2UgIiIsIHNjb3BlCi0gICAgICAgICAgICApCisgICAg
ICAgICAgICApLAorICAgICAgICAgICAgcHl0cmFjZT1GYWxzZSwKICAgICAgICAgKQogCiAKQEAg
LTY4NCwyMSArNzMyLDI1IEBAIGNsYXNzIEZpeHR1cmVMb29rdXBFcnJvcihMb29rdXBFcnJvcik6
CiAKICAgICAgICAgaWYgbXNnIGlzIE5vbmU6CiAgICAgICAgICAgICBmbSA9IHNlbGYucmVxdWVz
dC5fZml4dHVyZW1hbmFnZXIKLSAgICAgICAgICAgIGF2YWlsYWJsZSA9IFtdCisgICAgICAgICAg
ICBhdmFpbGFibGUgPSBzZXQoKQogICAgICAgICAgICAgcGFyZW50aWQgPSBzZWxmLnJlcXVlc3Qu
X3B5ZnVuY2l0ZW0ucGFyZW50Lm5vZGVpZAogICAgICAgICAgICAgZm9yIG5hbWUsIGZpeHR1cmVk
ZWZzIGluIGZtLl9hcmcyZml4dHVyZWRlZnMuaXRlbXMoKToKICAgICAgICAgICAgICAgICBmYWNs
aXN0ID0gbGlzdChmbS5fbWF0Y2hmYWN0b3JpZXMoZml4dHVyZWRlZnMsIHBhcmVudGlkKSkKLSAg
ICAgICAgICAgICAgICBpZiBmYWNsaXN0IGFuZCBuYW1lIG5vdCBpbiBhdmFpbGFibGU6Ci0gICAg
ICAgICAgICAgICAgICAgIGF2YWlsYWJsZS5hcHBlbmQobmFtZSkKLSAgICAgICAgICAgIG1zZyA9
ICJmaXh0dXJlICVyIG5vdCBmb3VuZCIgJSAoc2VsZi5hcmduYW1lLCkKLSAgICAgICAgICAgIG1z
ZyArPSAiXG4gYXZhaWxhYmxlIGZpeHR1cmVzOiAlcyIgJSAoIiwgIi5qb2luKHNvcnRlZChhdmFp
bGFibGUpKSwpCisgICAgICAgICAgICAgICAgaWYgZmFjbGlzdDoKKyAgICAgICAgICAgICAgICAg
ICAgYXZhaWxhYmxlLmFkZChuYW1lKQorICAgICAgICAgICAgaWYgc2VsZi5hcmduYW1lIGluIGF2
YWlsYWJsZToKKyAgICAgICAgICAgICAgICBtc2cgPSAiIHJlY3Vyc2l2ZSBkZXBlbmRlbmN5IGlu
dm9sdmluZyBmaXh0dXJlICd7fScgZGV0ZWN0ZWQiLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi5hcmduYW1lCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICBtc2cgPSAiZml4dHVyZSAne30nIG5vdCBmb3VuZCIuZm9ybWF0KHNlbGYu
YXJnbmFtZSkKKyAgICAgICAgICAgIG1zZyArPSAiXG4gYXZhaWxhYmxlIGZpeHR1cmVzOiB7fSIu
Zm9ybWF0KCIsICIuam9pbihzb3J0ZWQoYXZhaWxhYmxlKSkpCiAgICAgICAgICAgICBtc2cgKz0g
IlxuIHVzZSAncHl0ZXN0IC0tZml4dHVyZXMgW3Rlc3RwYXRoXScgZm9yIGhlbHAgb24gdGhlbS4i
CiAKICAgICAgICAgcmV0dXJuIEZpeHR1cmVMb29rdXBFcnJvclJlcHIoZnNwYXRoLCBsaW5lbm8s
IHRibGluZXMsIG1zZywgc2VsZi5hcmduYW1lKQogCiAKIGNsYXNzIEZpeHR1cmVMb29rdXBFcnJv
clJlcHIoVGVybWluYWxSZXByKToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwg
Zmlyc3RsaW5lbm8sIHRibGluZXMsIGVycm9yc3RyaW5nLCBhcmduYW1lKToKICAgICAgICAgc2Vs
Zi50YmxpbmVzID0gdGJsaW5lcwogICAgICAgICBzZWxmLmVycm9yc3RyaW5nID0gZXJyb3JzdHJp
bmcKQEAgLTczNywyMyArNzg5LDI2IEBAIGRlZiBjYWxsX2ZpeHR1cmVfZnVuYyhmaXh0dXJlZnVu
YywgcmVxdWVzdCwga3dhcmdzKToKICAgICBpZiB5aWVsZGN0eDoKICAgICAgICAgaXQgPSBmaXh0
dXJlZnVuYygqKmt3YXJncykKICAgICAgICAgcmVzID0gbmV4dChpdCkKLQotICAgICAgICBkZWYg
dGVhcmRvd24oKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBuZXh0KGl0KQot
ICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246Ci0gICAgICAgICAgICAgICAgcGFzcwot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBmYWlsX2ZpeHR1cmVmdW5jKAotICAg
ICAgICAgICAgICAgICAgICBmaXh0dXJlZnVuYywgInlpZWxkX2ZpeHR1cmUgZnVuY3Rpb24gaGFz
IG1vcmUgdGhhbiBvbmUgJ3lpZWxkJyIKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgcmVx
dWVzdC5hZGRmaW5hbGl6ZXIodGVhcmRvd24pCisgICAgICAgIGZpbmFsaXplciA9IGZ1bmN0b29s
cy5wYXJ0aWFsKF90ZWFyZG93bl95aWVsZF9maXh0dXJlLCBmaXh0dXJlZnVuYywgaXQpCisgICAg
ICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGZpbmFsaXplcikKICAgICBlbHNlOgogICAgICAgICBy
ZXMgPSBmaXh0dXJlZnVuYygqKmt3YXJncykKICAgICByZXR1cm4gcmVzCiAKIAorZGVmIF90ZWFy
ZG93bl95aWVsZF9maXh0dXJlKGZpeHR1cmVmdW5jLCBpdCk6CisgICAgIiIiRXhlY3V0ZXMgdGhl
IHRlYXJkb3duIG9mIGEgZml4dHVyZSBmdW5jdGlvbiBieSBhZHZhbmNpbmcgdGhlIGl0ZXJhdG9y
IGFmdGVyIHRoZQorICAgIHlpZWxkIGFuZCBlbnN1cmUgdGhlIGl0ZXJhdGlvbiBlbmRzIChpZiBu
b3QgaXQgbWVhbnMgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB5aWVsZCBpbiB0aGUgZnVuY3Rpb24p
IiIiCisgICAgdHJ5OgorICAgICAgICBuZXh0KGl0KQorICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9u
OgorICAgICAgICBwYXNzCisgICAgZWxzZToKKyAgICAgICAgZmFpbF9maXh0dXJlZnVuYygKKyAg
ICAgICAgICAgIGZpeHR1cmVmdW5jLCAieWllbGRfZml4dHVyZSBmdW5jdGlvbiBoYXMgbW9yZSB0
aGFuIG9uZSAneWllbGQnIgorICAgICAgICApCisKKwogY2xhc3MgRml4dHVyZURlZihvYmplY3Qp
OgogICAgICIiIiBBIGNvbnRhaW5lciBmb3IgYSBmYWN0b3J5IGRlZmluaXRpb24uICIiIgogCkBA
IC03NzUsNyArODMwLDkgQEAgY2xhc3MgRml4dHVyZURlZihvYmplY3QpOgogICAgICAgICBzZWxm
LmFyZ25hbWUgPSBhcmduYW1lCiAgICAgICAgIHNlbGYuc2NvcGUgPSBzY29wZQogICAgICAgICBz
ZWxmLnNjb3BlbnVtID0gc2NvcGUyaW5kZXgoCi0gICAgICAgICAgICBzY29wZSBvciAiZnVuY3Rp
b24iLCBkZXNjcj0iZml4dHVyZSB7fSIuZm9ybWF0KGZ1bmMuX19uYW1lX18pLCB3aGVyZT1iYXNl
aWQKKyAgICAgICAgICAgIHNjb3BlIG9yICJmdW5jdGlvbiIsCisgICAgICAgICAgICBkZXNjcj0i
Rml4dHVyZSAne30nIi5mb3JtYXQoZnVuYy5fX25hbWVfXyksCisgICAgICAgICAgICB3aGVyZT1i
YXNlaWQsCiAgICAgICAgICkKICAgICAgICAgc2VsZi5wYXJhbXMgPSBwYXJhbXMKICAgICAgICAg
c2VsZi5hcmduYW1lcyA9IGdldGZ1bmNhcmduYW1lcyhmdW5jLCBpc19tZXRob2Q9dW5pdHRlc3Qp
CkBAIC03OTcsOSArODU0LDkgQEAgY2xhc3MgRml4dHVyZURlZihvYmplY3QpOgogICAgICAgICAg
ICAgICAgICAgICBleGNlcHRpb25zLmFwcGVuZChzeXMuZXhjX2luZm8oKSkKICAgICAgICAgICAg
IGlmIGV4Y2VwdGlvbnM6CiAgICAgICAgICAgICAgICAgZSA9IGV4Y2VwdGlvbnNbMF0KLSAgICAg
ICAgICAgICAgICBkZWwgZXhjZXB0aW9ucyAgIyBlbnN1cmUgd2UgZG9uJ3Qga2VlcCBhbGwgZnJh
bWVzIGFsaXZlIGJlY2F1c2Ugb2YgdGhlIHRyYWNlYmFjawotICAgICAgICAgICAgICAgIHB5LmJ1
aWx0aW4uX3JlcmFpc2UoKmUpCi0KKyAgICAgICAgICAgICAgICAjIEVuc3VyZSB0byBub3Qga2Vl
cCBmcmFtZSByZWZlcmVuY2VzIHRocm91Z2ggdHJhY2ViYWNrLgorICAgICAgICAgICAgICAgIGRl
bCBleGNlcHRpb25zCisgICAgICAgICAgICAgICAgc2l4LnJlcmFpc2UoKmUpCiAgICAgICAgIGZp
bmFsbHk6CiAgICAgICAgICAgICBob29rID0gc2VsZi5fZml4dHVyZW1hbmFnZXIuc2Vzc2lvbi5n
ZXRob29rcHJveHkocmVxdWVzdC5ub2RlLmZzcGF0aCkKICAgICAgICAgICAgIGhvb2sucHl0ZXN0
X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4dHVyZWRlZj1zZWxmLCByZXF1ZXN0PXJlcXVlc3Qp
CkBAIC04MjUsNyArODgyLDcgQEAgY2xhc3MgRml4dHVyZURlZihvYmplY3QpOgogICAgICAgICAg
ICAgcmVzdWx0LCBjYWNoZV9rZXksIGVyciA9IGNhY2hlZF9yZXN1bHQKICAgICAgICAgICAgIGlm
IG15X2NhY2hlX2tleSA9PSBjYWNoZV9rZXk6CiAgICAgICAgICAgICAgICAgaWYgZXJyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgICAgICAgICBweS5idWlsdGluLl9yZXJhaXNlKCplcnIpCisg
ICAgICAgICAgICAgICAgICAgIHNpeC5yZXJhaXNlKCplcnIpCiAgICAgICAgICAgICAgICAgZWxz
ZToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAogICAgICAgICAgICAgIyB3ZSBo
YXZlIGEgcHJldmlvdXMgYnV0IGRpZmZlcmVudGx5IHBhcmFtZXRyaXplZCBmaXh0dXJlIGluc3Rh
bmNlCkBAIC04MzcsMjEgKzg5NCwxNyBAQCBjbGFzcyBGaXh0dXJlRGVmKG9iamVjdCk6CiAgICAg
ICAgIHJldHVybiBob29rLnB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWY9c2VsZiwgcmVx
dWVzdD1yZXF1ZXN0KQogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4g
KAotICAgICAgICAgICAgIjxGaXh0dXJlRGVmIG5hbWU9JXIgc2NvcGU9JXIgYmFzZWlkPSVyID4i
Ci0gICAgICAgICAgICAlIChzZWxmLmFyZ25hbWUsIHNlbGYuc2NvcGUsIHNlbGYuYmFzZWlkKQor
ICAgICAgICByZXR1cm4gIjxGaXh0dXJlRGVmIGFyZ25hbWU9JXIgc2NvcGU9JXIgYmFzZWlkPSVy
PiIgJSAoCisgICAgICAgICAgICBzZWxmLmFyZ25hbWUsCisgICAgICAgICAgICBzZWxmLnNjb3Bl
LAorICAgICAgICAgICAgc2VsZi5iYXNlaWQsCiAgICAgICAgICkKIAogCi1kZWYgcHl0ZXN0X2Zp
eHR1cmVfc2V0dXAoZml4dHVyZWRlZiwgcmVxdWVzdCk6Ci0gICAgIiIiIEV4ZWN1dGlvbiBvZiBm
aXh0dXJlIHNldHVwLiAiIiIKLSAgICBrd2FyZ3MgPSB7fQotICAgIGZvciBhcmduYW1lIGluIGZp
eHR1cmVkZWYuYXJnbmFtZXM6Ci0gICAgICAgIGZpeGRlZiA9IHJlcXVlc3QuX2dldF9hY3RpdmVf
Zml4dHVyZWRlZihhcmduYW1lKQotICAgICAgICByZXN1bHQsIGFyZ19jYWNoZV9rZXksIGV4YyA9
IGZpeGRlZi5jYWNoZWRfcmVzdWx0Ci0gICAgICAgIHJlcXVlc3QuX2NoZWNrX3Njb3BlKGFyZ25h
bWUsIHJlcXVlc3Quc2NvcGUsIGZpeGRlZi5zY29wZSkKLSAgICAgICAga3dhcmdzW2FyZ25hbWVd
ID0gcmVzdWx0Ci0KK2RlZiByZXNvbHZlX2ZpeHR1cmVfZnVuY3Rpb24oZml4dHVyZWRlZiwgcmVx
dWVzdCk6CisgICAgIiIiR2V0cyB0aGUgYWN0dWFsIGNhbGxhYmxlIHRoYXQgY2FuIGJlIGNhbGxl
ZCB0byBvYnRhaW4gdGhlIGZpeHR1cmUgdmFsdWUsIGRlYWxpbmcgd2l0aCB1bml0dGVzdC1zcGVj
aWZpYworICAgIGluc3RhbmNlcyBhbmQgYm91bmQgbWV0aG9kcy4KKyAgICAiIiIKICAgICBmaXh0
dXJlZnVuYyA9IGZpeHR1cmVkZWYuZnVuYwogICAgIGlmIGZpeHR1cmVkZWYudW5pdHRlc3Q6CiAg
ICAgICAgIGlmIHJlcXVlc3QuaW5zdGFuY2UgaXMgbm90IE5vbmU6CkBAIC04NjUsNiArOTE4LDE5
IEBAIGRlZiBweXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVmLCByZXF1ZXN0KToKICAgICAg
ICAgICAgIGZpeHR1cmVmdW5jID0gZ2V0aW1mdW5jKGZpeHR1cmVkZWYuZnVuYykKICAgICAgICAg
ICAgIGlmIGZpeHR1cmVmdW5jICE9IGZpeHR1cmVkZWYuZnVuYzoKICAgICAgICAgICAgICAgICBm
aXh0dXJlZnVuYyA9IGZpeHR1cmVmdW5jLl9fZ2V0X18ocmVxdWVzdC5pbnN0YW5jZSkKKyAgICBy
ZXR1cm4gZml4dHVyZWZ1bmMKKworCitkZWYgcHl0ZXN0X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRl
ZiwgcmVxdWVzdCk6CisgICAgIiIiIEV4ZWN1dGlvbiBvZiBmaXh0dXJlIHNldHVwLiAiIiIKKyAg
ICBrd2FyZ3MgPSB7fQorICAgIGZvciBhcmduYW1lIGluIGZpeHR1cmVkZWYuYXJnbmFtZXM6Cisg
ICAgICAgIGZpeGRlZiA9IHJlcXVlc3QuX2dldF9hY3RpdmVfZml4dHVyZWRlZihhcmduYW1lKQor
ICAgICAgICByZXN1bHQsIGFyZ19jYWNoZV9rZXksIGV4YyA9IGZpeGRlZi5jYWNoZWRfcmVzdWx0
CisgICAgICAgIHJlcXVlc3QuX2NoZWNrX3Njb3BlKGFyZ25hbWUsIHJlcXVlc3Quc2NvcGUsIGZp
eGRlZi5zY29wZSkKKyAgICAgICAga3dhcmdzW2FyZ25hbWVdID0gcmVzdWx0CisKKyAgICBmaXh0
dXJlZnVuYyA9IHJlc29sdmVfZml4dHVyZV9mdW5jdGlvbihmaXh0dXJlZGVmLCByZXF1ZXN0KQog
ICAgIG15X2NhY2hlX2tleSA9IHJlcXVlc3QucGFyYW1faW5kZXgKICAgICB0cnk6CiAgICAgICAg
IHJlc3VsdCA9IGNhbGxfZml4dHVyZV9mdW5jKGZpeHR1cmVmdW5jLCByZXF1ZXN0LCBrd2FyZ3Mp
CkBAIC04ODMsNiArOTQ5LDI1IEBAIGRlZiBfZW5zdXJlX2ltbXV0YWJsZV9pZHMoaWRzKToKICAg
ICByZXR1cm4gdHVwbGUoaWRzKQogCiAKK2RlZiB3cmFwX2Z1bmN0aW9uX3RvX2Vycm9yX291dF9p
Zl9jYWxsZWRfZGlyZWN0bHkoZnVuY3Rpb24sIGZpeHR1cmVfbWFya2VyKToKKyAgICAiIiJXcmFw
IHRoZSBnaXZlbiBmaXh0dXJlIGZ1bmN0aW9uIHNvIHdlIGNhbiByYWlzZSBhbiBlcnJvciBhYm91
dCBpdCBiZWluZyBjYWxsZWQgZGlyZWN0bHksCisgICAgaW5zdGVhZCBvZiB1c2VkIGFzIGFuIGFy
Z3VtZW50IGluIGEgdGVzdCBmdW5jdGlvbi4KKyAgICAiIiIKKyAgICBtZXNzYWdlID0gRklYVFVS
RV9GVU5DVElPTl9DQUxMLmZvcm1hdCgKKyAgICAgICAgbmFtZT1maXh0dXJlX21hcmtlci5uYW1l
IG9yIGZ1bmN0aW9uLl9fbmFtZV9fCisgICAgKQorCisgICAgQHNpeC53cmFwcyhmdW5jdGlvbikK
KyAgICBkZWYgcmVzdWx0KCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIGZhaWwobWVzc2FnZSwg
cHl0cmFjZT1GYWxzZSkKKworICAgICMga2VlcCByZWZlcmVuY2UgdG8gdGhlIG9yaWdpbmFsIGZ1
bmN0aW9uIGluIG91ciBvd24gY3VzdG9tIGF0dHJpYnV0ZSBzbyB3ZSBkb24ndCB1bndyYXAKKyAg
ICAjIGZ1cnRoZXIgdGhhbiB0aGlzIHBvaW50IGFuZCBsb3NlIHVzZWZ1bCB3cmFwcGluZ3MgbGlr
ZSBAbW9jay5wYXRjaCAoIzM3NzQpCisgICAgcmVzdWx0Ll9fcHl0ZXN0X3dyYXBwZWRfXyA9IF9Q
eXRlc3RXcmFwcGVyKGZ1bmN0aW9uKQorCisgICAgcmV0dXJuIHJlc3VsdAorCisKIEBhdHRyLnMo
ZnJvemVuPVRydWUpCiBjbGFzcyBGaXh0dXJlRnVuY3Rpb25NYXJrZXIob2JqZWN0KToKICAgICBz
Y29wZSA9IGF0dHIuaWIoKQpAQCAtODkzLDEzICs5NzgsMTggQEAgY2xhc3MgRml4dHVyZUZ1bmN0
aW9uTWFya2VyKG9iamVjdCk6CiAKICAgICBkZWYgX19jYWxsX18oc2VsZiwgZnVuY3Rpb24pOgog
ICAgICAgICBpZiBpc2NsYXNzKGZ1bmN0aW9uKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoImNsYXNzIGZpeHR1cmVzIG5vdCBzdXBwb3J0ZWQgKG1heSBiZSBpbiB0aGUgZnV0dXJlKSIp
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjbGFzcyBmaXh0dXJlcyBub3Qgc3VwcG9y
dGVkIChtYXliZSBpbiB0aGUgZnV0dXJlKSIpCiAKICAgICAgICAgaWYgZ2V0YXR0cihmdW5jdGlv
biwgIl9weXRlc3RmaXh0dXJlZnVuY3Rpb24iLCBGYWxzZSk6CiAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKAogICAgICAgICAgICAgICAgICJmaXh0dXJlIGlzIGJlaW5nIGFwcGxpZWQgbW9y
ZSB0aGFuIG9uY2UgdG8gdGhlIHNhbWUgZnVuY3Rpb24iCiAgICAgICAgICAgICApCiAKKyAgICAg
ICAgZnVuY3Rpb24gPSB3cmFwX2Z1bmN0aW9uX3RvX2Vycm9yX291dF9pZl9jYWxsZWRfZGlyZWN0
bHkoZnVuY3Rpb24sIHNlbGYpCisKKyAgICAgICAgbmFtZSA9IHNlbGYubmFtZSBvciBmdW5jdGlv
bi5fX25hbWVfXworICAgICAgICBpZiBuYW1lID09ICJyZXF1ZXN0IjoKKyAgICAgICAgICAgIHdh
cm5pbmdzLndhcm4oRklYVFVSRV9OQU1FRF9SRVFVRVNUKQogICAgICAgICBmdW5jdGlvbi5fcHl0
ZXN0Zml4dHVyZWZ1bmN0aW9uID0gc2VsZgogICAgICAgICByZXR1cm4gZnVuY3Rpb24KIApAQCAt
OTA3LDIwICs5OTcsMzIgQEAgY2xhc3MgRml4dHVyZUZ1bmN0aW9uTWFya2VyKG9iamVjdCk6CiBk
ZWYgZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBwYXJhbXM9Tm9uZSwgYXV0b3VzZT1GYWxzZSwg
aWRzPU5vbmUsIG5hbWU9Tm9uZSk6CiAgICAgIiIiRGVjb3JhdG9yIHRvIG1hcmsgYSBmaXh0dXJl
IGZhY3RvcnkgZnVuY3Rpb24uCiAKLSAgICBUaGlzIGRlY29yYXRvciBjYW4gYmUgdXNlZCAod2l0
aCBvciB3aXRob3V0IHBhcmFtZXRlcnMpIHRvIGRlZmluZSBhCi0gICAgZml4dHVyZSBmdW5jdGlv
bi4gIFRoZSBuYW1lIG9mIHRoZSBmaXh0dXJlIGZ1bmN0aW9uIGNhbiBsYXRlciBiZQotICAgIHJl
ZmVyZW5jZWQgdG8gY2F1c2UgaXRzIGludm9jYXRpb24gYWhlYWQgb2YgcnVubmluZyB0ZXN0czog
dGVzdAotICAgIG1vZHVsZXMgb3IgY2xhc3NlcyBjYW4gdXNlIHRoZSBweXRlc3QubWFyay51c2Vm
aXh0dXJlcyhmaXh0dXJlbmFtZSkKLSAgICBtYXJrZXIuICBUZXN0IGZ1bmN0aW9ucyBjYW4gZGly
ZWN0bHkgdXNlIGZpeHR1cmUgbmFtZXMgYXMgaW5wdXQKKyAgICBUaGlzIGRlY29yYXRvciBjYW4g
YmUgdXNlZCwgd2l0aCBvciB3aXRob3V0IHBhcmFtZXRlcnMsIHRvIGRlZmluZSBhCisgICAgZml4
dHVyZSBmdW5jdGlvbi4KKworICAgIFRoZSBuYW1lIG9mIHRoZSBmaXh0dXJlIGZ1bmN0aW9uIGNh
biBsYXRlciBiZSByZWZlcmVuY2VkIHRvIGNhdXNlIGl0cworICAgIGludm9jYXRpb24gYWhlYWQg
b2YgcnVubmluZyB0ZXN0czogdGVzdAorICAgIG1vZHVsZXMgb3IgY2xhc3NlcyBjYW4gdXNlIHRo
ZSBgYHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKGZpeHR1cmVuYW1lKWBgCisgICAgbWFya2VyLgor
CisgICAgVGVzdCBmdW5jdGlvbnMgY2FuIGRpcmVjdGx5IHVzZSBmaXh0dXJlIG5hbWVzIGFzIGlu
cHV0CiAgICAgYXJndW1lbnRzIGluIHdoaWNoIGNhc2UgdGhlIGZpeHR1cmUgaW5zdGFuY2UgcmV0
dXJuZWQgZnJvbSB0aGUgZml4dHVyZQogICAgIGZ1bmN0aW9uIHdpbGwgYmUgaW5qZWN0ZWQuCiAK
KyAgICBGaXh0dXJlcyBjYW4gcHJvdmlkZSB0aGVpciB2YWx1ZXMgdG8gdGVzdCBmdW5jdGlvbnMg
dXNpbmcgYGByZXR1cm5gYCBvciBgYHlpZWxkYGAKKyAgICBzdGF0ZW1lbnRzLiBXaGVuIHVzaW5n
IGBgeWllbGRgYCB0aGUgY29kZSBibG9jayBhZnRlciB0aGUgYGB5aWVsZGBgIHN0YXRlbWVudCBp
cyBleGVjdXRlZAorICAgIGFzIHRlYXJkb3duIGNvZGUgcmVnYXJkbGVzcyBvZiB0aGUgdGVzdCBv
dXRjb21lLCBhbmQgbXVzdCB5aWVsZCBleGFjdGx5IG9uY2UuCisKICAgICA6YXJnIHNjb3BlOiB0
aGUgc2NvcGUgZm9yIHdoaWNoIHRoaXMgZml4dHVyZSBpcyBzaGFyZWQsIG9uZSBvZgotICAgICAg
ICAgICAgICAgICJmdW5jdGlvbiIgKGRlZmF1bHQpLCAiY2xhc3MiLCAibW9kdWxlIiBvciAic2Vz
c2lvbiIuCisgICAgICAgICAgICAgICAgYGAiZnVuY3Rpb24iYGAgKGRlZmF1bHQpLCBgYCJjbGFz
cyJgYCwgYGAibW9kdWxlImBgLAorICAgICAgICAgICAgICAgIGBgInBhY2thZ2UiYGAgb3IgYGAi
c2Vzc2lvbiJgYC4KKworICAgICAgICAgICAgICAgIGBgInBhY2thZ2UiYGAgaXMgY29uc2lkZXJl
ZCAqKmV4cGVyaW1lbnRhbCoqIGF0IHRoaXMgdGltZS4KIAogICAgIDphcmcgcGFyYW1zOiBhbiBv
cHRpb25hbCBsaXN0IG9mIHBhcmFtZXRlcnMgd2hpY2ggd2lsbCBjYXVzZSBtdWx0aXBsZQogICAg
ICAgICAgICAgICAgIGludm9jYXRpb25zIG9mIHRoZSBmaXh0dXJlIGZ1bmN0aW9uIGFuZCBhbGwg
b2YgdGhlIHRlc3RzCiAgICAgICAgICAgICAgICAgdXNpbmcgaXQuCisgICAgICAgICAgICAgICAg
VGhlIGN1cnJlbnQgcGFyYW1ldGVyIGlzIGF2YWlsYWJsZSBpbiBgYHJlcXVlc3QucGFyYW1gYC4K
IAogICAgIDphcmcgYXV0b3VzZTogaWYgVHJ1ZSwgdGhlIGZpeHR1cmUgZnVuYyBpcyBhY3RpdmF0
ZWQgZm9yIGFsbCB0ZXN0cyB0aGF0CiAgICAgICAgICAgICAgICAgY2FuIHNlZSBpdC4gIElmIEZh
bHNlICh0aGUgZGVmYXVsdCkgdGhlbiBhbiBleHBsaWNpdApAQCAtOTM3LDEwICsxMDM5LDYgQEAg
ZGVmIGZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgcGFyYW1zPU5vbmUsIGF1dG91c2U9RmFsc2Us
IGlkcz1Ob25lLCBuYW1lPU5vbmUpOgogICAgICAgICAgICAgICAgIHRvIHJlc29sdmUgdGhpcyBp
cyB0byBuYW1lIHRoZSBkZWNvcmF0ZWQgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBgYGZpeHR1
cmVfPGZpeHR1cmVuYW1lPmBgIGFuZCB0aGVuIHVzZQogICAgICAgICAgICAgICAgIGBgQHB5dGVz
dC5maXh0dXJlKG5hbWU9JzxmaXh0dXJlbmFtZT4nKWBgLgotCi0gICAgRml4dHVyZXMgY2FuIG9w
dGlvbmFsbHkgcHJvdmlkZSB0aGVpciB2YWx1ZXMgdG8gdGVzdCBmdW5jdGlvbnMgdXNpbmcgYSBg
YHlpZWxkYGAgc3RhdGVtZW50LAotICAgIGluc3RlYWQgb2YgYGByZXR1cm5gYC4gSW4gdGhpcyBj
YXNlLCB0aGUgY29kZSBibG9jayBhZnRlciB0aGUgYGB5aWVsZGBgIHN0YXRlbWVudCBpcyBleGVj
dXRlZAotICAgIGFzIHRlYXJkb3duIGNvZGUgcmVnYXJkbGVzcyBvZiB0aGUgdGVzdCBvdXRjb21l
LiBBIGZpeHR1cmUgZnVuY3Rpb24gbXVzdCB5aWVsZCBleGFjdGx5IG9uY2UuCiAgICAgIiIiCiAg
ICAgaWYgY2FsbGFibGUoc2NvcGUpIGFuZCBwYXJhbXMgaXMgTm9uZSBhbmQgYXV0b3VzZSBpcyBG
YWxzZToKICAgICAgICAgIyBkaXJlY3QgZGVjb3JhdGlvbgpAQCAtOTU2LDEzICsxMDU0LDcgQEAg
ZGVmIHlpZWxkX2ZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgcGFyYW1zPU5vbmUsIGF1dG91c2U9
RmFsc2UsIGlkcz1Ob25lLCBuYW1lPU4KICAgICAuLiBkZXByZWNhdGVkOjogMy4wCiAgICAgICAg
IFVzZSA6cHk6ZnVuYzpgcHl0ZXN0LmZpeHR1cmVgIGRpcmVjdGx5IGluc3RlYWQuCiAgICAgIiIi
Ci0gICAgaWYgY2FsbGFibGUoc2NvcGUpIGFuZCBwYXJhbXMgaXMgTm9uZSBhbmQgbm90IGF1dG91
c2U6Ci0gICAgICAgICMgZGlyZWN0IGRlY29yYXRpb24KLSAgICAgICAgcmV0dXJuIEZpeHR1cmVG
dW5jdGlvbk1hcmtlcigiZnVuY3Rpb24iLCBwYXJhbXMsIGF1dG91c2UsIGlkcz1pZHMsIG5hbWU9
bmFtZSkoCi0gICAgICAgICAgICBzY29wZQotICAgICAgICApCi0gICAgZWxzZToKLSAgICAgICAg
cmV0dXJuIEZpeHR1cmVGdW5jdGlvbk1hcmtlcihzY29wZSwgcGFyYW1zLCBhdXRvdXNlLCBpZHM9
aWRzLCBuYW1lPW5hbWUpCisgICAgcmV0dXJuIGZpeHR1cmUoc2NvcGU9c2NvcGUsIHBhcmFtcz1w
YXJhbXMsIGF1dG91c2U9YXV0b3VzZSwgaWRzPWlkcywgbmFtZT1uYW1lKQogCiAKIGRlZmF1bHRm
dW5jYXJncHJlZml4bWFya2VyID0gZml4dHVyZSgpCkBAIC05NzUsMTMgKzEwNjcsMjIgQEAgZGVm
IHB5dGVzdGNvbmZpZyhyZXF1ZXN0KToKICAgICBFeGFtcGxlOjoKIAogICAgICAgICBkZWYgdGVz
dF9mb28ocHl0ZXN0Y29uZmlnKToKLSAgICAgICAgICAgIGlmIHB5dGVzdGNvbmZpZy5nZXRvcHRp
b24oInZlcmJvc2UiKToKKyAgICAgICAgICAgIGlmIHB5dGVzdGNvbmZpZy5nZXRvcHRpb24oInZl
cmJvc2UiKSA+IDA6CiAgICAgICAgICAgICAgICAgLi4uCiAKICAgICAiIiIKICAgICByZXR1cm4g
cmVxdWVzdC5jb25maWcKIAogCitkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgIHBh
cnNlci5hZGRpbmkoCisgICAgICAgICJ1c2VmaXh0dXJlcyIsCisgICAgICAgIHR5cGU9ImFyZ3Mi
LAorICAgICAgICBkZWZhdWx0PVtdLAorICAgICAgICBoZWxwPSJsaXN0IG9mIGRlZmF1bHQgZml4
dHVyZXMgdG8gYmUgdXNlZCB3aXRoIHRoaXMgcHJvamVjdCIsCisgICAgKQorCisKIGNsYXNzIEZp
eHR1cmVNYW5hZ2VyKG9iamVjdCk6CiAgICAgIiIiCiAgICAgcHl0ZXN0IGZpeHR1cmVzIGRlZmlu
aXRpb25zIGFuZCBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgYW5kIG1hbmFnZWQKQEAgLTEwMTQsNyAr
MTExNSw2IEBAIGNsYXNzIEZpeHR1cmVNYW5hZ2VyKG9iamVjdCk6CiAgICAgYnkgYSBsb29rdXAg
b2YgdGhlaXIgRnVuY0ZpeHR1cmVJbmZvLgogICAgICIiIgogCi0gICAgX2FyZ3ByZWZpeCA9ICJw
eXRlc3RfZnVuY2FyZ19fIgogICAgIEZpeHR1cmVMb29rdXBFcnJvciA9IEZpeHR1cmVMb29rdXBF
cnJvcgogICAgIEZpeHR1cmVMb29rdXBFcnJvclJlcHIgPSBGaXh0dXJlTG9va3VwRXJyb3JSZXBy
CiAKQEAgLTEwMjcsMjQgKzExMjcsNDcgQEAgY2xhc3MgRml4dHVyZU1hbmFnZXIob2JqZWN0KToK
ICAgICAgICAgc2VsZi5fbm9kZWlkX2FuZF9hdXRvdXNlbmFtZXMgPSBbKCIiLCBzZWxmLmNvbmZp
Zy5nZXRpbmkoInVzZWZpeHR1cmVzIikpXQogICAgICAgICBzZXNzaW9uLmNvbmZpZy5wbHVnaW5t
YW5hZ2VyLnJlZ2lzdGVyKHNlbGYsICJmdW5jbWFuYWdlIikKIAorICAgIGRlZiBfZ2V0X2RpcmVj
dF9wYXJhbWV0cml6ZV9hcmdzKHNlbGYsIG5vZGUpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u
IHJldHVybnMgYWxsIHRoZSBkaXJlY3QgcGFyYW1ldHJpemF0aW9uCisgICAgICAgIGFyZ3VtZW50
cyBvZiBhIG5vZGUsIHNvIHdlIGRvbid0IG1pc3Rha2UgdGhlbSBmb3IgZml4dHVyZXMKKworICAg
ICAgICBDaGVjayBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUw
MzYKKworICAgICAgICBUaGlzIHRoaW5ncyBhcmUgZG9uZSBsYXRlciBhcyB3ZWxsIHdoZW4gZGVh
bGluZyB3aXRoIHBhcmFtZXRyaXphdGlvbgorICAgICAgICBzbyB0aGlzIGNvdWxkIGJlIGltcHJv
dmVkCisgICAgICAgICIiIgorICAgICAgICBmcm9tIF9weXRlc3QubWFyayBpbXBvcnQgUGFyYW1l
dGVyU2V0CisKKyAgICAgICAgcGFyYW1ldHJpemVfYXJnbmFtZXMgPSBbXQorICAgICAgICBmb3Ig
bWFya2VyIGluIG5vZGUuaXRlcl9tYXJrZXJzKG5hbWU9InBhcmFtZXRyaXplIik6CisgICAgICAg
ICAgICBpZiBub3QgbWFya2VyLmt3YXJncy5nZXQoImluZGlyZWN0IiwgRmFsc2UpOgorICAgICAg
ICAgICAgICAgIHBfYXJnbmFtZXMsIF8gPSBQYXJhbWV0ZXJTZXQuX3BhcnNlX3BhcmFtZXRyaXpl
X2FyZ3MoCisgICAgICAgICAgICAgICAgICAgICptYXJrZXIuYXJncywgKiptYXJrZXIua3dhcmdz
CisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHBhcmFtZXRyaXplX2FyZ25hbWVz
LmV4dGVuZChwX2FyZ25hbWVzKQorCisgICAgICAgIHJldHVybiBwYXJhbWV0cml6ZV9hcmduYW1l
cworCiAgICAgZGVmIGdldGZpeHR1cmVpbmZvKHNlbGYsIG5vZGUsIGZ1bmMsIGNscywgZnVuY2Fy
Z3M9VHJ1ZSk6CiAgICAgICAgIGlmIGZ1bmNhcmdzIGFuZCBub3QgZ2V0YXR0cihub2RlLCAibm9m
dW5jYXJncyIsIEZhbHNlKToKICAgICAgICAgICAgIGFyZ25hbWVzID0gZ2V0ZnVuY2FyZ25hbWVz
KGZ1bmMsIGNscz1jbHMpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhcmduYW1lcyA9ICgp
Ci0gICAgICAgIHVzZWZpeHR1cmVzID0gZmxhdHRlbigKKworICAgICAgICB1c2VmaXh0dXJlcyA9
IGl0ZXJ0b29scy5jaGFpbi5mcm9tX2l0ZXJhYmxlKAogICAgICAgICAgICAgbWFyay5hcmdzIGZv
ciBtYXJrIGluIG5vZGUuaXRlcl9tYXJrZXJzKG5hbWU9InVzZWZpeHR1cmVzIikKICAgICAgICAg
KQotICAgICAgICBpbml0aWFsbmFtZXMgPSBhcmduYW1lcwotICAgICAgICBpbml0aWFsbmFtZXMg
PSB0dXBsZSh1c2VmaXh0dXJlcykgKyBpbml0aWFsbmFtZXMKKyAgICAgICAgaW5pdGlhbG5hbWVz
ID0gdHVwbGUodXNlZml4dHVyZXMpICsgYXJnbmFtZXMKICAgICAgICAgZm0gPSBub2RlLnNlc3Np
b24uX2ZpeHR1cmVtYW5hZ2VyCi0gICAgICAgIG5hbWVzX2Nsb3N1cmUsIGFyZzJmaXh0dXJlZGVm
cyA9IGZtLmdldGZpeHR1cmVjbG9zdXJlKGluaXRpYWxuYW1lcywgbm9kZSkKLSAgICAgICAgcmV0
dXJuIEZ1bmNGaXh0dXJlSW5mbyhhcmduYW1lcywgbmFtZXNfY2xvc3VyZSwgYXJnMmZpeHR1cmVk
ZWZzKQorICAgICAgICBpbml0aWFsbmFtZXMsIG5hbWVzX2Nsb3N1cmUsIGFyZzJmaXh0dXJlZGVm
cyA9IGZtLmdldGZpeHR1cmVjbG9zdXJlKAorICAgICAgICAgICAgaW5pdGlhbG5hbWVzLCBub2Rl
LCBpZ25vcmVfYXJncz1zZWxmLl9nZXRfZGlyZWN0X3BhcmFtZXRyaXplX2FyZ3Mobm9kZSkKKyAg
ICAgICAgKQorICAgICAgICByZXR1cm4gRnVuY0ZpeHR1cmVJbmZvKGFyZ25hbWVzLCBpbml0aWFs
bmFtZXMsIG5hbWVzX2Nsb3N1cmUsIGFyZzJmaXh0dXJlZGVmcykKIAogICAgIGRlZiBweXRlc3Rf
cGx1Z2luX3JlZ2lzdGVyZWQoc2VsZiwgcGx1Z2luKToKICAgICAgICAgbm9kZWlkID0gTm9uZQog
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwID0gcHkucGF0aC5sb2NhbChwbHVnaW4uX19maWxl
X18pCisgICAgICAgICAgICBwID0gcHkucGF0aC5sb2NhbChwbHVnaW4uX19maWxlX18pLnJlYWxw
YXRoKCkKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICAgICAgcGFzcwog
ICAgICAgICBlbHNlOgpAQCAtMTA1NSw2ICsxMTc4LDcgQEAgY2xhc3MgRml4dHVyZU1hbmFnZXIo
b2JqZWN0KToKICAgICAgICAgICAgICAgICBub2RlaWQgPSBwLmRpcnBhdGgoKS5yZWx0byhzZWxm
LmNvbmZpZy5yb290ZGlyKQogICAgICAgICAgICAgICAgIGlmIHAuc2VwICE9IG5vZGVzLlNFUDoK
ICAgICAgICAgICAgICAgICAgICAgbm9kZWlkID0gbm9kZWlkLnJlcGxhY2UocC5zZXAsIG5vZGVz
LlNFUCkKKwogICAgICAgICBzZWxmLnBhcnNlZmFjdG9yaWVzKHBsdWdpbiwgbm9kZWlkKQogCiAg
ICAgZGVmIF9nZXRhdXRvdXNlbmFtZXMoc2VsZiwgbm9kZWlkKToKQEAgLTEwNjQsMTMgKzExODgs
MTMgQEAgY2xhc3MgRml4dHVyZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIGlmIG5vZGVp
ZC5zdGFydHN3aXRoKGJhc2VpZCk6CiAgICAgICAgICAgICAgICAgaWYgYmFzZWlkOgogICAgICAg
ICAgICAgICAgICAgICBpID0gbGVuKGJhc2VpZCkKLSAgICAgICAgICAgICAgICAgICAgbmV4dGNo
YXIgPSBub2RlaWRbaTppICsgMV0KKyAgICAgICAgICAgICAgICAgICAgbmV4dGNoYXIgPSBub2Rl
aWRbaSA6IGkgKyAxXQogICAgICAgICAgICAgICAgICAgICBpZiBuZXh0Y2hhciBhbmQgbmV4dGNo
YXIgbm90IGluICI6LyI6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAg
ICAgICAgICAgIGF1dG91c2VuYW1lcy5leHRlbmQoYmFzZW5hbWVzKQogICAgICAgICByZXR1cm4g
YXV0b3VzZW5hbWVzCiAKLSAgICBkZWYgZ2V0Zml4dHVyZWNsb3N1cmUoc2VsZiwgZml4dHVyZW5h
bWVzLCBwYXJlbnRub2RlKToKKyAgICBkZWYgZ2V0Zml4dHVyZWNsb3N1cmUoc2VsZiwgZml4dHVy
ZW5hbWVzLCBwYXJlbnRub2RlLCBpZ25vcmVfYXJncz0oKSk6CiAgICAgICAgICMgY29sbGVjdCB0
aGUgY2xvc3VyZSBvZiBhbGwgZml4dHVyZXMgLCBzdGFydGluZyB3aXRoIHRoZSBnaXZlbgogICAg
ICAgICAjIGZpeHR1cmVuYW1lcyBhcyB0aGUgaW5pdGlhbCBzZXQuICBBcyB3ZSBoYXZlIHRvIHZp
c2l0IGFsbAogICAgICAgICAjIGZhY3RvcnkgZGVmaW5pdGlvbnMgYW55d2F5LCB3ZSBhbHNvIHJl
dHVybiBhbiBhcmcyZml4dHVyZWRlZnMKQEAgLTEwODcsMTEgKzEyMTEsMTkgQEAgY2xhc3MgRml4
dHVyZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgZml4dHVyZW5hbWVzX2Ns
b3N1cmUuYXBwZW5kKGFyZykKIAogICAgICAgICBtZXJnZShmaXh0dXJlbmFtZXMpCisKKyAgICAg
ICAgIyBhdCB0aGlzIHBvaW50LCBmaXh0dXJlbmFtZXNfY2xvc3VyZSBjb250YWlucyB3aGF0IHdl
IGNhbGwgImluaXRpYWxuYW1lcyIsCisgICAgICAgICMgd2hpY2ggaXMgYSBzZXQgb2YgZml4dHVy
ZW5hbWVzIHRoZSBmdW5jdGlvbiBpbW1lZGlhdGVseSByZXF1ZXN0cy4gV2UKKyAgICAgICAgIyBu
ZWVkIHRvIHJldHVybiBpdCBhcyB3ZWxsLCBzbyBzYXZlIHRoaXMuCisgICAgICAgIGluaXRpYWxu
YW1lcyA9IHR1cGxlKGZpeHR1cmVuYW1lc19jbG9zdXJlKQorCiAgICAgICAgIGFyZzJmaXh0dXJl
ZGVmcyA9IHt9CiAgICAgICAgIGxhc3RsZW4gPSAtMQogICAgICAgICB3aGlsZSBsYXN0bGVuICE9
IGxlbihmaXh0dXJlbmFtZXNfY2xvc3VyZSk6CiAgICAgICAgICAgICBsYXN0bGVuID0gbGVuKGZp
eHR1cmVuYW1lc19jbG9zdXJlKQogICAgICAgICAgICAgZm9yIGFyZ25hbWUgaW4gZml4dHVyZW5h
bWVzX2Nsb3N1cmU6CisgICAgICAgICAgICAgICAgaWYgYXJnbmFtZSBpbiBpZ25vcmVfYXJnczoK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICBpZiBhcmduYW1l
IGluIGFyZzJmaXh0dXJlZGVmczoKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAg
ICAgICAgICAgICBmaXh0dXJlZGVmcyA9IHNlbGYuZ2V0Zml4dHVyZWRlZnMoYXJnbmFtZSwgcGFy
ZW50aWQpCkBAIC0xMTA4LDcgKzEyNDAsNyBAQCBjbGFzcyBGaXh0dXJlTWFuYWdlcihvYmplY3Qp
OgogICAgICAgICAgICAgICAgIHJldHVybiBmaXh0dXJlZGVmc1stMV0uc2NvcGVudW0KIAogICAg
ICAgICBmaXh0dXJlbmFtZXNfY2xvc3VyZS5zb3J0KGtleT1zb3J0X2J5X3Njb3BlKQotICAgICAg
ICByZXR1cm4gZml4dHVyZW5hbWVzX2Nsb3N1cmUsIGFyZzJmaXh0dXJlZGVmcworICAgICAgICBy
ZXR1cm4gaW5pdGlhbG5hbWVzLCBmaXh0dXJlbmFtZXNfY2xvc3VyZSwgYXJnMmZpeHR1cmVkZWZz
CiAKICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKHNlbGYsIG1ldGFmdW5jKToKICAgICAg
ICAgZm9yIGFyZ25hbWUgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzOgpAQCAtMTExNiwxOSArMTI0
OCwyMCBAQCBjbGFzcyBGaXh0dXJlTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgaWYgZmFj
bGlzdDoKICAgICAgICAgICAgICAgICBmaXh0dXJlZGVmID0gZmFjbGlzdFstMV0KICAgICAgICAg
ICAgICAgICBpZiBmaXh0dXJlZGVmLnBhcmFtcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAg
ICAgICAgcGFyYW1ldHJpemVfZnVuYyA9IGdldGF0dHIobWV0YWZ1bmMuZnVuY3Rpb24sICJwYXJh
bWV0cml6ZSIsIE5vbmUpCi0gICAgICAgICAgICAgICAgICAgIGlmIHBhcmFtZXRyaXplX2Z1bmMg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0cml6ZV9mdW5jID0g
cGFyYW1ldHJpemVfZnVuYy5jb21iaW5lZAotICAgICAgICAgICAgICAgICAgICBmdW5jX3BhcmFt
cyA9IGdldGF0dHIocGFyYW1ldHJpemVfZnVuYywgImFyZ3MiLCBbW05vbmVdXSkKLSAgICAgICAg
ICAgICAgICAgICAgZnVuY19rd2FyZ3MgPSBnZXRhdHRyKHBhcmFtZXRyaXplX2Z1bmMsICJrd2Fy
Z3MiLCB7fSkKLSAgICAgICAgICAgICAgICAgICAgIyBza2lwIGRpcmVjdGx5IHBhcmFtZXRyaXpl
ZCBhcmd1bWVudHMKLSAgICAgICAgICAgICAgICAgICAgaWYgImFyZ25hbWVzIiBpbiBmdW5jX2t3
YXJnczoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyZ25hbWVzID0gcGFyYW1ldHJpemVfZnVu
Yy5rd2FyZ3NbImFyZ25hbWVzIl0KKyAgICAgICAgICAgICAgICAgICAgbWFya2VycyA9IGxpc3Qo
bWV0YWZ1bmMuZGVmaW5pdGlvbi5pdGVyX21hcmtlcnMoInBhcmFtZXRyaXplIikpCisgICAgICAg
ICAgICAgICAgICAgIGZvciBwYXJhbWV0cml6ZV9tYXJrIGluIG1hcmtlcnM6CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAiYXJnbmFtZXMiIGluIHBhcmFtZXRyaXplX21hcmsua3dhcmdzOgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ25hbWVzID0gcGFyYW1ldHJpemVfbWFyay5r
d2FyZ3NbImFyZ25hbWVzIl0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXJnbmFtZXMgPSBwYXJhbWV0cml6ZV9tYXJrLmFyZ3NbMF0K
KworICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXJnbmFtZXMsICh0
dXBsZSwgbGlzdCkpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ25hbWVzID0gWwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LnN0cmlwKCkgZm9yIHggaW4gYXJnbmFt
ZXMuc3BsaXQoIiwiKSBpZiB4LnN0cmlwKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBd
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBhcmduYW1lIGluIGFyZ25hbWVzOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBhcmduYW1lcyA9IGZ1bmNfcGFyYW1zWzBdCi0gICAgICAg
ICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ25hbWVzLCAodHVwbGUsIGxpc3QpKToK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFyZ25hbWVzID0gW3guc3RyaXAoKSBmb3IgeCBpbiBh
cmduYW1lcy5zcGxpdCgiLCIpIGlmIHguc3RyaXAoKV0KLSAgICAgICAgICAgICAgICAgICAgaWYg
YXJnbmFtZSBub3QgaW4gZnVuY19wYXJhbXMgYW5kIGFyZ25hbWUgbm90IGluIGFyZ25hbWVzOgog
ICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJnbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aXh0dXJlZGVmLnBhcmFtcywKQEAgLTExNTEsMzUgKzEyODQsMzAgQEAgY2xhc3MgRml4dHVyZU1h
bmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIG5vZGVpZCA9IG5vZGVfb3Jfb2JqLm5vZGVpZAog
ICAgICAgICBpZiBob2xkZXJvYmogaW4gc2VsZi5faG9sZGVyb2Jqc2VlbjoKICAgICAgICAgICAg
IHJldHVybgorCiAgICAgICAgIHNlbGYuX2hvbGRlcm9ianNlZW4uYWRkKGhvbGRlcm9iaikKICAg
ICAgICAgYXV0b3VzZW5hbWVzID0gW10KICAgICAgICAgZm9yIG5hbWUgaW4gZGlyKGhvbGRlcm9i
aik6CiAgICAgICAgICAgICAjIFRoZSBhdHRyaWJ1dGUgY2FuIGJlIGFuIGFyYml0cmFyeSBkZXNj
cmlwdG9yLCBzbyB0aGUgYXR0cmlidXRlCiAgICAgICAgICAgICAjIGFjY2VzcyBiZWxvdyBjYW4g
cmFpc2UuIHNhZmVfZ2V0YXR0KCkgaWdub3JlcyBzdWNoIGV4Y2VwdGlvbnMuCiAgICAgICAgICAg
ICBvYmogPSBzYWZlX2dldGF0dHIoaG9sZGVyb2JqLCBuYW1lLCBOb25lKQotICAgICAgICAgICAg
IyBmaXh0dXJlIGZ1bmN0aW9ucyBoYXZlIGEgcHl0ZXN0X2Z1bmNhcmdfXyBwcmVmaXggKHByZS0y
LjMgc3R5bGUpCi0gICAgICAgICAgICAjIG9yIGFyZSAiQHB5dGVzdC5maXh0dXJlIiBtYXJrZWQK
ICAgICAgICAgICAgIG1hcmtlciA9IGdldGZpeHR1cmVtYXJrZXIob2JqKQotICAgICAgICAgICAg
aWYgbWFya2VyIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYgbm90IG5hbWUuc3RhcnRzd2l0
aChzZWxmLl9hcmdwcmVmaXgpOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAg
ICAgICAgICAgIGlmIG5vdCBjYWxsYWJsZShvYmopOgotICAgICAgICAgICAgICAgICAgICBjb250
aW51ZQotICAgICAgICAgICAgICAgIG1hcmtlciA9IGRlZmF1bHRmdW5jYXJncHJlZml4bWFya2Vy
Ci0gICAgICAgICAgICAgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBkZXByZWNhdGVkCi0KLSAgICAg
ICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJuKAotICAgICAgICAgICAgICAgICAgICAiQzEiLCBk
ZXByZWNhdGVkLkZVTkNBUkdfUFJFRklYLmZvcm1hdChuYW1lPW5hbWUpLCBub2RlaWQ9bm9kZWlk
Ci0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lW2xlbihzZWxm
Ll9hcmdwcmVmaXgpOl0KLSAgICAgICAgICAgIGVsaWYgbm90IGlzaW5zdGFuY2UobWFya2VyLCBG
aXh0dXJlRnVuY3Rpb25NYXJrZXIpOgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobWFy
a2VyLCBGaXh0dXJlRnVuY3Rpb25NYXJrZXIpOgogICAgICAgICAgICAgICAgICMgbWFnaWMgZ2xv
YmFscyAgd2l0aCBfX2dldGF0dHJfXyBtaWdodCBoYXZlIGdvdCB1cyBhIHdyb25nCiAgICAgICAg
ICAgICAgICAgIyBmaXh0dXJlIGF0dHJpYnV0ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCisK
KyAgICAgICAgICAgIGlmIG1hcmtlci5uYW1lOgorICAgICAgICAgICAgICAgIG5hbWUgPSBtYXJr
ZXIubmFtZQorCisgICAgICAgICAgICAjIGR1cmluZyBmaXh0dXJlIGRlZmluaXRpb24gd2Ugd3Jh
cCB0aGUgb3JpZ2luYWwgZml4dHVyZSBmdW5jdGlvbgorICAgICAgICAgICAgIyB0byBpc3N1ZSBh
IHdhcm5pbmcgaWYgY2FsbGVkIGRpcmVjdGx5LCBzbyBoZXJlIHdlIHVud3JhcCBpdCBpbiBvcmRl
ciB0byBub3QgZW1pdCB0aGUgd2FybmluZworICAgICAgICAgICAgIyB3aGVuIHB5dGVzdCBpdHNl
bGYgY2FsbHMgdGhlIGZpeHR1cmUgZnVuY3Rpb24KKyAgICAgICAgICAgIGlmIHNpeC5QWTIgYW5k
IHVuaXR0ZXN0OgorICAgICAgICAgICAgICAgICMgaGFjayBvbiBQeXRob24gMiBiZWNhdXNlIG9m
IHRoZSB1bmJvdW5kIG1ldGhvZHMKKyAgICAgICAgICAgICAgICBvYmogPSBnZXRfcmVhbF9mdW5j
KG9iaikKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgbWFya2VyLm5hbWU6
Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSBtYXJrZXIubmFtZQotICAgICAgICAgICAgICAg
IGFzc2VydCBub3QgbmFtZS5zdGFydHN3aXRoKHNlbGYuX2FyZ3ByZWZpeCksIEZJWFRVUkVfTVNH
LmZvcm1hdChuYW1lKQorICAgICAgICAgICAgICAgIG9iaiA9IGdldF9yZWFsX21ldGhvZChvYmos
IGhvbGRlcm9iaikKIAogICAgICAgICAgICAgZml4dHVyZV9kZWYgPSBGaXh0dXJlRGVmKAogICAg
ICAgICAgICAgICAgIHNlbGYsCkBAIC0xMjIwLDggKzEzNDgsNyBAQCBjbGFzcyBGaXh0dXJlTWFu
YWdlcihvYmplY3QpOgogICAgICAgICAgICAgZml4dHVyZWRlZnMgPSBzZWxmLl9hcmcyZml4dHVy
ZWRlZnNbYXJnbmFtZV0KICAgICAgICAgZXhjZXB0IEtleUVycm9yOgogICAgICAgICAgICAgcmV0
dXJuIE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiB0dXBsZShzZWxmLl9t
YXRjaGZhY3RvcmllcyhmaXh0dXJlZGVmcywgbm9kZWlkKSkKKyAgICAgICAgcmV0dXJuIHR1cGxl
KHNlbGYuX21hdGNoZmFjdG9yaWVzKGZpeHR1cmVkZWZzLCBub2RlaWQpKQogCiAgICAgZGVmIF9t
YXRjaGZhY3RvcmllcyhzZWxmLCBmaXh0dXJlZGVmcywgbm9kZWlkKToKICAgICAgICAgZm9yIGZp
eHR1cmVkZWYgaW4gZml4dHVyZWRlZnM6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC9mcmVlemVfc3VwcG9ydC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2ZyZWV6ZV9z
dXBwb3J0LnB5CmluZGV4IDAwMmUwNzczMDFmOTNhNTUxOGEwOGYzNzhlMzVhMmQwZDk5YjBiZDYu
LmFlZWVjMmE1NmI0ZDM1ODIwODM3ZGQyOTY0MDBmNDRmYjk4ZTI0ZDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5CkBAIC0xLDggKzEsMTEgQEAKKyMgLSotIGNv
ZGluZzogdXRmLTggLSotCiAiIiIKIFByb3ZpZGVzIGEgZnVuY3Rpb24gdG8gcmVwb3J0IGFsbCBp
bnRlcm5hbCBtb2R1bGVzIGZvciB1c2luZyBmcmVlemluZyB0b29scwogcHl0ZXN0CiAiIiIKLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0
aW9uCiAKIAogZGVmIGZyZWV6ZV9pbmNsdWRlcygpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3QvaGVscGNvbmZpZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2hlbHBj
b25maWcucHkKaW5kZXggNTUxNGZlYzQwNGRhYWMzNjVhZjcxNzhjOWU5NDAwNmE3NTYyZGI0Zi4u
NTY4MTE2MDE2MDhlMzUyNzY2YTRjYTRiNjViNWNkYmNmODk4N2E0ZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3Qvc3JjL19weXRlc3QvaGVscGNvbmZpZy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC9oZWxwY29uZmlnLnB5CkBAIC0xLDEzICsxLDE4IEBACisjIC0qLSBjb2Rpbmc6IHV0
Zi04IC0qLQogIiIiIHZlcnNpb24gaW5mbywgaGVscCBtZXNzYWdlcywgdHJhY2luZyBjb25maWd1
cmF0aW9uLiAgIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBwcmludF9mdW5jdGlvbgogCi1pbXBvcnQgcHkKLWltcG9ydCBweXRlc3QKLWZyb20gX3B5
dGVzdC5jb25maWcgaW1wb3J0IFByaW50SGVscAogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBmcm9t
IGFyZ3BhcnNlIGltcG9ydCBBY3Rpb24KIAoraW1wb3J0IHB5CisKK2ltcG9ydCBweXRlc3QKK2Zy
b20gX3B5dGVzdC5jb25maWcgaW1wb3J0IFByaW50SGVscAorCiAKIGNsYXNzIEhlbHBBY3Rpb24o
QWN0aW9uKToKICAgICAiIiJUaGlzIGlzIGFuIGFyZ3BhcnNlIEFjdGlvbiB0aGF0IHdpbGwgcmFp
c2UgYW4gZXhjZXB0aW9uIGluCkBAIC01Niw3ICs2MSw3IEBAIGRlZiBweXRlc3RfYWRkb3B0aW9u
KHBhcnNlcik6CiAgICAgICAgIGRlc3Q9InBsdWdpbnMiLAogICAgICAgICBkZWZhdWx0PVtdLAog
ICAgICAgICBtZXRhdmFyPSJuYW1lIiwKLSAgICAgICAgaGVscD0iZWFybHktbG9hZCBnaXZlbiBw
bHVnaW4gKG11bHRpLWFsbG93ZWQpLiAiCisgICAgICAgIGhlbHA9ImVhcmx5LWxvYWQgZ2l2ZW4g
cGx1Z2luIG1vZHVsZSBuYW1lIG9yIGVudHJ5IHBvaW50IChtdWx0aS1hbGxvd2VkKS4gIgogICAg
ICAgICAiVG8gYXZvaWQgbG9hZGluZyBvZiBwbHVnaW5zLCB1c2UgdGhlIGBubzpgIHByZWZpeCwg
ZS5nLiAiCiAgICAgICAgICJgbm86ZG9jdGVzdGAuIiwKICAgICApCkBAIC0xMTQsMTYgKzExOSwy
MCBAQCBkZWYgcHl0ZXN0X2NtZGxpbmVfcGFyc2UoKToKICAgICAgICAgY29uZmlnLmFkZF9jbGVh
bnVwKHVuc2V0X3RyYWNpbmcpCiAKIAorZGVmIHNob3d2ZXJzaW9uKGNvbmZpZyk6CisgICAgcCA9
IHB5LnBhdGgubG9jYWwocHl0ZXN0Ll9fZmlsZV9fKQorICAgIHN5cy5zdGRlcnIud3JpdGUoCisg
ICAgICAgICJUaGlzIGlzIHB5dGVzdCB2ZXJzaW9uICVzLCBpbXBvcnRlZCBmcm9tICVzXG4iICUg
KHB5dGVzdC5fX3ZlcnNpb25fXywgcCkKKyAgICApCisgICAgcGx1Z2luaW5mbyA9IGdldHBsdWdp
bnZlcnNpb25pbmZvKGNvbmZpZykKKyAgICBpZiBwbHVnaW5pbmZvOgorICAgICAgICBmb3IgbGlu
ZSBpbiBwbHVnaW5pbmZvOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShsaW5lICsgIlxu
IikKKworCiBkZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgogICAgIGlmIGNvbmZpZy5v
cHRpb24udmVyc2lvbjoKLSAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwocHl0ZXN0Ll9fZmlsZV9f
KQotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAotICAgICAgICAgICAgIlRoaXMgaXMgcHl0ZXN0
IHZlcnNpb24gJXMsIGltcG9ydGVkIGZyb20gJXNcbiIgJSAocHl0ZXN0Ll9fdmVyc2lvbl9fLCBw
KQotICAgICAgICApCi0gICAgICAgIHBsdWdpbmluZm8gPSBnZXRwbHVnaW52ZXJzaW9uaW5mbyhj
b25maWcpCi0gICAgICAgIGlmIHBsdWdpbmluZm86Ci0gICAgICAgICAgICBmb3IgbGluZSBpbiBw
bHVnaW5pbmZvOgotICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUobGluZSArICJcbiIp
CisgICAgICAgIHNob3d2ZXJzaW9uKGNvbmZpZykKICAgICAgICAgcmV0dXJuIDAKICAgICBlbGlm
IGNvbmZpZy5vcHRpb24uaGVscDoKICAgICAgICAgY29uZmlnLl9kb19jb25maWd1cmUoKQpAQCAt
MTMzLDI5ICsxNDIsNTUgQEAgZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKIAogCiBk
ZWYgc2hvd2hlbHAoY29uZmlnKToKKyAgICBpbXBvcnQgdGV4dHdyYXAKKwogICAgIHJlcG9ydGVy
ID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigidGVybWluYWxyZXBvcnRlciIpCiAg
ICAgdHcgPSByZXBvcnRlci5fdHcKICAgICB0dy53cml0ZShjb25maWcuX3BhcnNlci5vcHRwYXJz
ZXIuZm9ybWF0X2hlbHAoKSkKICAgICB0dy5saW5lKCkKLSAgICB0dy5saW5lKCkKICAgICB0dy5s
aW5lKAotICAgICAgICAiW3B5dGVzdF0gaW5pLW9wdGlvbnMgaW4gdGhlIGZpcnN0ICIgInB5dGVz
dC5pbml8dG94LmluaXxzZXR1cC5jZmcgZmlsZSBmb3VuZDoiCisgICAgICAgICJbcHl0ZXN0XSBp
bmktb3B0aW9ucyBpbiB0aGUgZmlyc3QgcHl0ZXN0LmluaXx0b3guaW5pfHNldHVwLmNmZyBmaWxl
IGZvdW5kOiIKICAgICApCiAgICAgdHcubGluZSgpCiAKKyAgICBjb2x1bW5zID0gdHcuZnVsbHdp
ZHRoICAjIGNvc3RseSBjYWxsCisgICAgaW5kZW50X2xlbiA9IDI0ICAjIGJhc2VkIG9uIGFyZ3Bh
cnNlJ3MgbWF4X2hlbHBfcG9zaXRpb249MjQKKyAgICBpbmRlbnQgPSAiICIgKiBpbmRlbnRfbGVu
CiAgICAgZm9yIG5hbWUgaW4gY29uZmlnLl9wYXJzZXIuX2luaW5hbWVzOgogICAgICAgICBoZWxw
LCB0eXBlLCBkZWZhdWx0ID0gY29uZmlnLl9wYXJzZXIuX2luaWRpY3RbbmFtZV0KICAgICAgICAg
aWYgdHlwZSBpcyBOb25lOgogICAgICAgICAgICAgdHlwZSA9ICJzdHJpbmciCi0gICAgICAgIHNw
ZWMgPSAiJXMgKCVzKSIgJSAobmFtZSwgdHlwZSkKLSAgICAgICAgbGluZSA9ICIgICUtMjRzICVz
IiAlIChzcGVjLCBoZWxwKQotICAgICAgICB0dy5saW5lKGxpbmVbOnR3LmZ1bGx3aWR0aF0pCisg
ICAgICAgIHNwZWMgPSAiJXMgKCVzKToiICUgKG5hbWUsIHR5cGUpCisgICAgICAgIHR3LndyaXRl
KCIgICVzIiAlIHNwZWMpCisgICAgICAgIHNwZWNfbGVuID0gbGVuKHNwZWMpCisgICAgICAgIGlm
IHNwZWNfbGVuID4gKGluZGVudF9sZW4gLSAzKToKKyAgICAgICAgICAgICMgRGlzcGxheSBoZWxw
IHN0YXJ0aW5nIGF0IGEgbmV3IGxpbmUuCisgICAgICAgICAgICB0dy5saW5lKCkKKyAgICAgICAg
ICAgIGhlbHBsaW5lcyA9IHRleHR3cmFwLndyYXAoCisgICAgICAgICAgICAgICAgaGVscCwKKyAg
ICAgICAgICAgICAgICBjb2x1bW5zLAorICAgICAgICAgICAgICAgIGluaXRpYWxfaW5kZW50PWlu
ZGVudCwKKyAgICAgICAgICAgICAgICBzdWJzZXF1ZW50X2luZGVudD1pbmRlbnQsCisgICAgICAg
ICAgICAgICAgYnJlYWtfb25faHlwaGVucz1GYWxzZSwKKyAgICAgICAgICAgICkKKworICAgICAg
ICAgICAgZm9yIGxpbmUgaW4gaGVscGxpbmVzOgorICAgICAgICAgICAgICAgIHR3LmxpbmUobGlu
ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgRGlzcGxheSBoZWxwIHN0YXJ0aW5nIGFm
dGVyIHRoZSBzcGVjLCBmb2xsb3dpbmcgbGluZXMgaW5kZW50ZWQuCisgICAgICAgICAgICB0dy53
cml0ZSgiICIgKiAoaW5kZW50X2xlbiAtIHNwZWNfbGVuIC0gMikpCisgICAgICAgICAgICB3cmFw
cGVkID0gdGV4dHdyYXAud3JhcChoZWxwLCBjb2x1bW5zIC0gaW5kZW50X2xlbiwgYnJlYWtfb25f
aHlwaGVucz1GYWxzZSkKKworICAgICAgICAgICAgdHcubGluZSh3cmFwcGVkWzBdKQorICAgICAg
ICAgICAgZm9yIGxpbmUgaW4gd3JhcHBlZFsxOl06CisgICAgICAgICAgICAgICAgdHcubGluZShp
bmRlbnQgKyBsaW5lKQogCiAgICAgdHcubGluZSgpCiAgICAgdHcubGluZSgiZW52aXJvbm1lbnQg
dmFyaWFibGVzOiIpCiAgICAgdmFycyA9IFsKICAgICAgICAgKCJQWVRFU1RfQURET1BUUyIsICJl
eHRyYSBjb21tYW5kIGxpbmUgb3B0aW9ucyIpLAogICAgICAgICAoIlBZVEVTVF9QTFVHSU5TIiwg
ImNvbW1hLXNlcGFyYXRlZCBwbHVnaW5zIHRvIGxvYWQgZHVyaW5nIHN0YXJ0dXAiKSwKKyAgICAg
ICAgKCJQWVRFU1RfRElTQUJMRV9QTFVHSU5fQVVUT0xPQUQiLCAic2V0IHRvIGRpc2FibGUgcGx1
Z2luIGF1dG8tbG9hZGluZyIpLAogICAgICAgICAoIlBZVEVTVF9ERUJVRyIsICJzZXQgdG8gZW5h
YmxlIGRlYnVnIHRyYWNpbmcgb2YgcHl0ZXN0J3MgaW50ZXJuYWxzIiksCiAgICAgXQogICAgIGZv
ciBuYW1lLCBoZWxwIGluIHZhcnM6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVz
dC9ob29rc3BlYy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2hvb2tzcGVjLnB5CmluZGV4
IGZlYzQzYTQwMDk5MWIwYTFkMjlkMmZlNmYzMDJkMDJjMGMzMThlMmUuLjdhYjYxNTRiMTc2NmI5
Nzc0ZGNmZTRmMTFmZDkzMmMxNzgxNzMzMzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L2hvb2tzcGVjLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2hvb2tzcGVj
LnB5CkBAIC0xLDcgKzEsOSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIiBob29rIHNw
ZWNpZmljYXRpb25zIGZvciBweXRlc3QgcGx1Z2lucywgaW52b2tlZCBmcm9tIG1haW4ucHkgYW5k
IGJ1aWx0aW4gcGx1Z2lucy4gICIiIgotCiBmcm9tIHBsdWdneSBpbXBvcnQgSG9va3NwZWNNYXJr
ZXIKIAorZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IFBZVEVTVF9MT0dXQVJOSU5HCisK
IGhvb2tzcGVjID0gSG9va3NwZWNNYXJrZXIoInB5dGVzdCIpCiAKICMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQpAQCAtMjIsMjAgKzI0LDYgQEAgZGVmIHB5dGVzdF9hZGRob29rcyhwbHVnaW5tYW5hZ2VyKToK
ICAgICAiIiIKIAogCi1AaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKLWRlZiBweXRlc3RfbmFtZXNw
YWNlKCk6Ci0gICAgIiIiCi0gICAgKCoqRGVwcmVjYXRlZCoqKSB0aGlzIGhvb2sgY2F1c2VzIGRp
cmVjdCBtb25rZXlwYXRjaGluZyBvbiBweXRlc3QsIGl0cyB1c2UgaXMgc3Ryb25nbHkgZGlzY291
cmFnZWQKLSAgICByZXR1cm4gZGljdCBvZiBuYW1lLT5vYmplY3QgdG8gYmUgbWFkZSBnbG9iYWxs
eSBhdmFpbGFibGUgaW4KLSAgICB0aGUgcHl0ZXN0IG5hbWVzcGFjZS4KLQotICAgIFRoaXMgaG9v
ayBpcyBjYWxsZWQgYXQgcGx1Z2luIHJlZ2lzdHJhdGlvbiB0aW1lLgotCi0gICAgLi4gbm90ZTo6
Ci0gICAgICAgIFRoaXMgaG9vayBpcyBpbmNvbXBhdGlibGUgd2l0aCBgYGhvb2t3cmFwcGVyPVRy
dWVgYC4KLSAgICAiIiIKLQotCiBAaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKIGRlZiBweXRlc3Rf
cGx1Z2luX3JlZ2lzdGVyZWQocGx1Z2luLCBtYW5hZ2VyKToKICAgICAiIiIgYSBuZXcgcHl0ZXN0
IHBsdWdpbiBnb3QgcmVnaXN0ZXJlZC4KQEAgLTExMiw3ICsxMDAsOCBAQCBkZWYgcHl0ZXN0X2Nt
ZGxpbmVfcGFyc2UocGx1Z2lubWFuYWdlciwgYXJncyk6CiAgICAgU3RvcHMgYXQgZmlyc3Qgbm9u
LU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgCiAKICAgICAuLiBub3RlOjoKLSAg
ICAgICAgVGhpcyBob29rIHdpbGwgbm90IGJlIGNhbGxlZCBmb3IgYGBjb25mdGVzdC5weWBgIGZp
bGVzLCBvbmx5IGZvciBzZXR1cHRvb2xzIHBsdWdpbnMuCisgICAgICAgIFRoaXMgaG9vayB3aWxs
IG9ubHkgYmUgY2FsbGVkIGZvciBwbHVnaW4gY2xhc3NlcyBwYXNzZWQgdG8gdGhlIGBgcGx1Z2lu
c2BgIGFyZyB3aGVuIHVzaW5nIGBweXRlc3QubWFpbmBfIHRvCisgICAgICAgIHBlcmZvcm0gYW4g
aW4tcHJvY2VzcyB0ZXN0IHJ1bi4KIAogICAgIDpwYXJhbSBfcHl0ZXN0LmNvbmZpZy5QeXRlc3RQ
bHVnaW5NYW5hZ2VyIHBsdWdpbm1hbmFnZXI6IHB5dGVzdCBwbHVnaW4gbWFuYWdlcgogICAgIDpw
YXJhbSBsaXN0W3N0cl0gYXJnczogbGlzdCBvZiBhcmd1bWVudHMgcGFzc2VkIG9uIHRoZSBjb21t
YW5kIGxpbmUKQEAgLTIwMCw3ICsxODksNyBAQCBkZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBh
dGgsIGNvbmZpZyk6CiAKICAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6
cmVmOmBmaXJzdHJlc3VsdGAKIAotICAgIDpwYXJhbSBzdHIgcGF0aDogdGhlIHBhdGggdG8gYW5h
bHl6ZQorICAgIDpwYXJhbSBwYXRoOiBhIDpweTpjbGFzczpgcHkucGF0aC5sb2NhbGAgLSB0aGUg
cGF0aCB0byBhbmFseXplCiAgICAgOnBhcmFtIF9weXRlc3QuY29uZmlnLkNvbmZpZyBjb25maWc6
IHB5dGVzdCBjb25maWcgb2JqZWN0CiAgICAgIiIiCiAKQEAgLTIxMSw3ICsyMDAsNyBAQCBkZWYg
cHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHBhdGgsIHBhcmVudCk6CiAKICAgICBTdG9wcyBhdCBm
aXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAKIAotICAgIDpwYXJh
bSBzdHIgcGF0aDogdGhlIHBhdGggdG8gYW5hbHl6ZQorICAgIDpwYXJhbSBwYXRoOiBhIDpweTpj
bGFzczpgcHkucGF0aC5sb2NhbGAgLSB0aGUgcGF0aCB0byBhbmFseXplCiAgICAgIiIiCiAKIApA
QCAtMjE5LDcgKzIwOCw3IEBAIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6
CiAgICAgIiIiIHJldHVybiBjb2xsZWN0aW9uIE5vZGUgb3IgTm9uZSBmb3IgdGhlIGdpdmVuIHBh
dGguIEFueSBuZXcgbm9kZQogICAgIG5lZWRzIHRvIGhhdmUgdGhlIHNwZWNpZmllZCBgYHBhcmVu
dGBgIGFzIGEgcGFyZW50LgogCi0gICAgOnBhcmFtIHN0ciBwYXRoOiB0aGUgcGF0aCB0byBjb2xs
ZWN0CisgICAgOnBhcmFtIHBhdGg6IGEgOnB5OmNsYXNzOmBweS5wYXRoLmxvY2FsYCAtIHRoZSBw
YXRoIHRvIGNvbGxlY3QKICAgICAiIiIKIAogCkBAIC0yMzksNyArMjI4LDcgQEAgZGVmIHB5dGVz
dF9jb2xsZWN0cmVwb3J0KHJlcG9ydCk6CiAKIAogZGVmIHB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1z
KToKLSAgICAiIiIgY2FsbGVkIGZvciB0ZXN0IGl0ZW1zIGRlc2VsZWN0ZWQgYnkga2V5d29yZC4g
IiIiCisgICAgIiIiIGNhbGxlZCBmb3IgdGVzdCBpdGVtcyBkZXNlbGVjdGVkLCBlLmcuIGJ5IGtl
eXdvcmQuICIiIgogCiAKIEBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQpAQCAtMjYxLDcgKzI1
MCwxMCBAQCBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlKHBhdGgsIHBhcmVudCk6CiAg
ICAgVGhlIHB5dGVzdF9jb2xsZWN0X2ZpbGUgaG9vayBuZWVkcyB0byBiZSB1c2VkIGlmIHlvdSB3
YW50IHRvCiAgICAgY3JlYXRlIHRlc3QgbW9kdWxlcyBmb3IgZmlsZXMgdGhhdCBkbyBub3QgbWF0
Y2ggYXMgYSB0ZXN0IG1vZHVsZS4KIAotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3Vs
dCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKKyAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9u
ZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAKKworICAgIDpwYXJhbSBwYXRoOiBhIDpw
eTpjbGFzczpgcHkucGF0aC5sb2NhbGAgLSB0aGUgcGF0aCBvZiBtb2R1bGUgdG8gY29sbGVjdAor
ICAgICIiIgogCiAKIEBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQpAQCAtMzg4LDYgKzM4MCw0
MSBAQCBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHJlcG9ydCk6CiAgICAgdGhlIHJlc3Bl
Y3RpdmUgcGhhc2Ugb2YgZXhlY3V0aW5nIGEgdGVzdC4gIiIiCiAKIAorQGhvb2tzcGVjKGZpcnN0
cmVzdWx0PVRydWUpCitkZWYgcHl0ZXN0X3JlcG9ydF90b19zZXJpYWxpemFibGUoY29uZmlnLCBy
ZXBvcnQpOgorICAgICIiIgorICAgIC4uIHdhcm5pbmc6OgorICAgICAgICBUaGlzIGhvb2sgaXMg
ZXhwZXJpbWVudGFsIGFuZCBzdWJqZWN0IHRvIGNoYW5nZSBiZXR3ZWVuIHB5dGVzdCByZWxlYXNl
cywgZXZlbgorICAgICAgICBidWcgZml4ZXMuCisKKyAgICAgICAgVGhlIGludGVudCBpcyBmb3Ig
dGhpcyB0byBiZSB1c2VkIGJ5IHBsdWdpbnMgbWFpbnRhaW5lZCBieSB0aGUgY29yZS1kZXZzLCBz
dWNoCisgICAgICAgIGFzIGBgcHl0ZXN0LXhkaXN0YGAsIGBgcHl0ZXN0LXN1YnRlc3RzYGAsIGFu
ZCBhcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgaW50ZXJuYWwKKyAgICAgICAgJ3Jlc3VsdGxvZycg
cGx1Z2luLgorCisgICAgICAgIEluIHRoZSBmdXR1cmUgaXQgbWlnaHQgYmVjb21lIHBhcnQgb2Yg
dGhlIHB1YmxpYyBob29rIEFQSS4KKworICAgIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIHJlcG9ydCBv
YmplY3QgaW50byBhIGRhdGEgc3RydWN0dXJlIHN1aXRhYmxlIGZvciBzZW5kaW5nCisgICAgb3Zl
ciB0aGUgd2lyZSwgZS5nLiBjb252ZXJ0ZWQgdG8gSlNPTi4KKyAgICAiIiIKKworCitAaG9va3Nw
ZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfcmVwb3J0X2Zyb21fc2VyaWFsaXphYmxl
KGNvbmZpZywgZGF0YSk6CisgICAgIiIiCisgICAgLi4gd2FybmluZzo6CisgICAgICAgIFRoaXMg
aG9vayBpcyBleHBlcmltZW50YWwgYW5kIHN1YmplY3QgdG8gY2hhbmdlIGJldHdlZW4gcHl0ZXN0
IHJlbGVhc2VzLCBldmVuCisgICAgICAgIGJ1ZyBmaXhlcy4KKworICAgICAgICBUaGUgaW50ZW50
IGlzIGZvciB0aGlzIHRvIGJlIHVzZWQgYnkgcGx1Z2lucyBtYWludGFpbmVkIGJ5IHRoZSBjb3Jl
LWRldnMsIHN1Y2gKKyAgICAgICAgYXMgYGBweXRlc3QteGRpc3RgYCwgYGBweXRlc3Qtc3VidGVz
dHNgYCwgYW5kIGFzIGEgcmVwbGFjZW1lbnQgZm9yIHRoZSBpbnRlcm5hbAorICAgICAgICAncmVz
dWx0bG9nJyBwbHVnaW4uCisKKyAgICAgICAgSW4gdGhlIGZ1dHVyZSBpdCBtaWdodCBiZWNvbWUg
cGFydCBvZiB0aGUgcHVibGljIGhvb2sgQVBJLgorCisgICAgUmVzdG9yZXMgYSByZXBvcnQgb2Jq
ZWN0IHByZXZpb3VzbHkgc2VyaWFsaXplZCB3aXRoIHB5dGVzdF9yZXBvcnRfdG9fc2VyaWFsaXph
YmxlKCkuCisgICAgIiIiCisKKwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIEZpeHR1cmUgcmVsYXRl
ZCBob29rcwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00OTMsMjYgKzUyMCwzOSBAQCBkZWYgcHl0
ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNoKGNvbmZpZywgc3RhcnRkaXIsIGl0ZW1zKToKIAog
CiBAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0
dXMocmVwb3J0KToKK2RlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0LCBjb25maWcp
OgogICAgICIiIiByZXR1cm4gcmVzdWx0LWNhdGVnb3J5LCBzaG9ydGxldHRlciBhbmQgdmVyYm9z
ZSB3b3JkIGZvciByZXBvcnRpbmcuCiAKKyAgICA6cGFyYW0gX3B5dGVzdC5jb25maWcuQ29uZmln
IGNvbmZpZzogcHl0ZXN0IGNvbmZpZyBvYmplY3QKKwogICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1O
b25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKIAogCi1kZWYgcHl0ZXN0X3Rl
cm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlciwgZXhpdHN0YXR1cyk6CitkZWYgcHl0ZXN0
X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlciwgZXhpdHN0YXR1cywgY29uZmlnKToK
ICAgICAiIiJBZGQgYSBzZWN0aW9uIHRvIHRlcm1pbmFsIHN1bW1hcnkgcmVwb3J0aW5nLgogCiAg
ICAgOnBhcmFtIF9weXRlc3QudGVybWluYWwuVGVybWluYWxSZXBvcnRlciB0ZXJtaW5hbHJlcG9y
dGVyOiB0aGUgaW50ZXJuYWwgdGVybWluYWwgcmVwb3J0ZXIgb2JqZWN0CiAgICAgOnBhcmFtIGlu
dCBleGl0c3RhdHVzOiB0aGUgZXhpdCBzdGF0dXMgdGhhdCB3aWxsIGJlIHJlcG9ydGVkIGJhY2sg
dG8gdGhlIE9TCisgICAgOnBhcmFtIF9weXRlc3QuY29uZmlnLkNvbmZpZyBjb25maWc6IHB5dGVz
dCBjb25maWcgb2JqZWN0CiAKLSAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjUKKyAgICAuLiB2ZXJz
aW9uYWRkZWQ6OiA0LjIKICAgICAgICAgVGhlIGBgY29uZmlnYGAgcGFyYW1ldGVyLgogICAgICIi
IgogCiAKLUBob29rc3BlYyhoaXN0b3JpYz1UcnVlKQorQGhvb2tzcGVjKGhpc3RvcmljPVRydWUs
IHdhcm5fb25faW1wbD1QWVRFU1RfTE9HV0FSTklORykKIGRlZiBweXRlc3RfbG9nd2FybmluZyht
ZXNzYWdlLCBjb2RlLCBub2RlaWQsIGZzbG9jYXRpb24pOgotICAgICIiIiBwcm9jZXNzIGEgd2Fy
bmluZyBzcGVjaWZpZWQgYnkgYSBtZXNzYWdlLCBhIGNvZGUgc3RyaW5nLAorICAgICIiIgorICAg
IC4uIGRlcHJlY2F0ZWQ6OiAzLjgKKworICAgICAgICBUaGlzIGhvb2sgaXMgd2lsbCBzdG9wIHdv
cmtpbmcgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKworICAgICAgICBweXRlc3Qgbm8gbG9uZ2VyIHRy
aWdnZXJzIHRoaXMgaG9vaywgYnV0IHRoZQorICAgICAgICB0ZXJtaW5hbCB3cml0ZXIgc3RpbGwg
aW1wbGVtZW50cyBpdCB0byBkaXNwbGF5IHdhcm5pbmdzIGlzc3VlZCBieQorICAgICAgICA6bWV0
aDpgX3B5dGVzdC5jb25maWcuQ29uZmlnLndhcm5gIGFuZCA6bWV0aDpgX3B5dGVzdC5ub2Rlcy5O
b2RlLndhcm5gLiBDYWxsaW5nIHRob3NlIGZ1bmN0aW9ucyB3aWxsIGJlCisgICAgICAgIGFuIGVy
cm9yIGluIGZ1dHVyZSByZWxlYXNlcy4KKworICAgIHByb2Nlc3MgYSB3YXJuaW5nIHNwZWNpZmll
ZCBieSBhIG1lc3NhZ2UsIGEgY29kZSBzdHJpbmcsCiAgICAgYSBub2RlaWQgYW5kIGZzbG9jYXRp
b24gKGJvdGggb2Ygd2hpY2ggbWF5IGJlIE5vbmUKICAgICBpZiB0aGUgd2FybmluZyBpcyBub3Qg
dGllZCB0byBhIHBhcnRpY3VsYXIgbm9kZS9sb2NhdGlvbikuCiAKQEAgLTUyMSw2ICs1NjEsMzAg
QEAgZGVmIHB5dGVzdF9sb2d3YXJuaW5nKG1lc3NhZ2UsIGNvZGUsIG5vZGVpZCwgZnNsb2NhdGlv
bik6CiAgICAgIiIiCiAKIAorQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCitkZWYgcHl0ZXN0X3dh
cm5pbmdfY2FwdHVyZWQod2FybmluZ19tZXNzYWdlLCB3aGVuLCBpdGVtKToKKyAgICAiIiIKKyAg
ICBQcm9jZXNzIGEgd2FybmluZyBjYXB0dXJlZCBieSB0aGUgaW50ZXJuYWwgcHl0ZXN0IHdhcm5p
bmdzIHBsdWdpbi4KKworICAgIDpwYXJhbSB3YXJuaW5ncy5XYXJuaW5nTWVzc2FnZSB3YXJuaW5n
X21lc3NhZ2U6CisgICAgICAgIFRoZSBjYXB0dXJlZCB3YXJuaW5nLiBUaGlzIGlzIHRoZSBzYW1l
IG9iamVjdCBwcm9kdWNlZCBieSA6cHk6ZnVuYzpgd2FybmluZ3MuY2F0Y2hfd2FybmluZ3NgLCBh
bmQgY29udGFpbnMKKyAgICAgICAgdGhlIHNhbWUgYXR0cmlidXRlcyBhcyB0aGUgcGFyYW1ldGVy
cyBvZiA6cHk6ZnVuYzpgd2FybmluZ3Muc2hvd3dhcm5pbmdgLgorCisgICAgOnBhcmFtIHN0ciB3
aGVuOgorICAgICAgICBJbmRpY2F0ZXMgd2hlbiB0aGUgd2FybmluZyB3YXMgY2FwdHVyZWQuIFBv
c3NpYmxlIHZhbHVlczoKKworICAgICAgICAqIGBgImNvbmZpZyJgYDogZHVyaW5nIHB5dGVzdCBj
b25maWd1cmF0aW9uL2luaXRpYWxpemF0aW9uIHN0YWdlLgorICAgICAgICAqIGBgImNvbGxlY3Qi
YGA6IGR1cmluZyB0ZXN0IGNvbGxlY3Rpb24uCisgICAgICAgICogYGAicnVudGVzdCJgYDogZHVy
aW5nIHRlc3QgZXhlY3V0aW9uLgorCisgICAgOnBhcmFtIHB5dGVzdC5JdGVtfE5vbmUgaXRlbToK
KyAgICAgICAgKipERVBSRUNBVEVEKio6IFRoaXMgcGFyYW1ldGVyIGlzIGluY29tcGF0aWJsZSB3
aXRoIGBgcHl0ZXN0LXhkaXN0YGAsIGFuZCB3aWxsIGFsd2F5cyByZWNlaXZlIGBgTm9uZWBgCisg
ICAgICAgIGluIGEgZnV0dXJlIHJlbGVhc2UuCisKKyAgICAgICAgVGhlIGl0ZW0gYmVpbmcgZXhl
Y3V0ZWQgaWYgYGB3aGVuYGAgaXMgYGAicnVudGVzdCJgYCwgb3RoZXJ3aXNlIGBgTm9uZWBgLgor
ICAgICIiIgorCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBkb2N0ZXN0IGhvb2tzCiAjIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KQEAgLTU1NSw5ICs2MTksMjEgQEAgZGVmIHB5dGVzdF9leGNlcHRpb25faW50
ZXJhY3Qobm9kZSwgY2FsbCwgcmVwb3J0KToKICAgICAiIiIKIAogCi1kZWYgcHl0ZXN0X2VudGVy
X3BkYihjb25maWcpOgorZGVmIHB5dGVzdF9lbnRlcl9wZGIoY29uZmlnLCBwZGIpOgogICAgICIi
IiBjYWxsZWQgdXBvbiBwZGIuc2V0X3RyYWNlKCksIGNhbiBiZSB1c2VkIGJ5IHBsdWdpbnMgdG8g
dGFrZSBzcGVjaWFsCiAgICAgYWN0aW9uIGp1c3QgYmVmb3JlIHRoZSBweXRob24gZGVidWdnZXIg
ZW50ZXJzIGluIGludGVyYWN0aXZlIG1vZGUuCiAKICAgICA6cGFyYW0gX3B5dGVzdC5jb25maWcu
Q29uZmlnIGNvbmZpZzogcHl0ZXN0IGNvbmZpZyBvYmplY3QKKyAgICA6cGFyYW0gcGRiLlBkYiBw
ZGI6IFBkYiBpbnN0YW5jZQorICAgICIiIgorCisKK2RlZiBweXRlc3RfbGVhdmVfcGRiKGNvbmZp
ZywgcGRiKToKKyAgICAiIiIgY2FsbGVkIHdoZW4gbGVhdmluZyBwZGIgKGUuZy4gd2l0aCBjb250
aW51ZSBhZnRlciBwZGIuc2V0X3RyYWNlKCkpLgorCisgICAgQ2FuIGJlIHVzZWQgYnkgcGx1Z2lu
cyB0byB0YWtlIHNwZWNpYWwgYWN0aW9uIGp1c3QgYWZ0ZXIgdGhlIHB5dGhvbgorICAgIGRlYnVn
Z2VyIGxlYXZlcyBpbnRlcmFjdGl2ZSBtb2RlLgorCisgICAgOnBhcmFtIF9weXRlc3QuY29uZmln
LkNvbmZpZyBjb25maWc6IHB5dGVzdCBjb25maWcgb2JqZWN0CisgICAgOnBhcmFtIHBkYi5QZGIg
cGRiOiBQZGIgaW5zdGFuY2UKICAgICAiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L2p1bml0eG1sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvanVuaXR4bWwucHkK
aW5kZXggMjlkYTI3ZGU3Y2NmNjBjZmRlZDljYTc1NTAwYjk1YzE0NjBlN2JjNS4uODUzZGNiNzc0
NDkyZmZjMzY0ZDA0NDBhZjJjY2FiMDVlOGRhNzAzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3QvanVuaXR4bWwucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvanVu
aXR4bWwucHkKQEAgLTEsMyArMSw0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiCiAg
ICAgcmVwb3J0IHRlc3QgcmVzdWx0cyBpbiBKVW5pdC1YTUwgZm9ybWF0LAogICAgIGZvciB1c2Ug
d2l0aCBKZW5raW5zIGFuZCBidWlsZCBpbnRlZ3JhdGlvbiBzZXJ2ZXJzLgpAQCAtOCwxNCArOSwy
MSBAQCBCYXNlZCBvbiBpbml0aWFsIGNvZGUgZnJvbSBSb3NzIExhd2xleS4KIE91dHB1dCBjb25m
b3JtcyB0byBodHRwczovL2dpdGh1Yi5jb20vamVua2luc2NpL3h1bml0LXBsdWdpbi9ibG9iL21h
c3Rlci8KIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvamVua2luc2NpL3BsdWdpbnMveHVuaXQvdHlw
ZXMvbW9kZWwveHNkL2p1bml0LTEwLnhzZAogIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgZnVuY3Rvb2xz
Ci1pbXBvcnQgcHkKIGltcG9ydCBvcworaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgcmUKIGltcG9y
dCBzeXMKIGltcG9ydCB0aW1lCitmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQorCitpbXBv
cnQgcHkKK2ltcG9ydCBzaXgKKwogaW1wb3J0IHB5dGVzdAogZnJvbSBfcHl0ZXN0IGltcG9ydCBu
b2RlcwogZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgZmlsZW5hbWVfYXJnCkBAIC0yMywxMCAr
MzEsNiBAQCBmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBmaWxlbmFtZV9hcmcKICMgUHl0aG9u
IDIuWCBhbmQgMy5YIGNvbXBhdGliaWxpdHkKIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPCAzOgog
ICAgIGZyb20gY29kZWNzIGltcG9ydCBvcGVuCi1lbHNlOgotICAgIHVuaWNociA9IGNocgotICAg
IHVuaWNvZGUgPSBzdHIKLSAgICBsb25nID0gaW50CiAKIAogY2xhc3MgSnVuaXQocHkueG1sLk5h
bWVzcGFjZSk6CkBAIC0zOCwxNSArNDIsMTUgQEAgY2xhc3MgSnVuaXQocHkueG1sLk5hbWVzcGFj
ZSk6CiAjIHRoaXMgZHluYW1pY2FsbHkgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGl0LiAgVGhlIHNw
ZWMgcmFuZ2Ugb2YgdmFsaWQKICMgY2hhcnMgaXM6IENoYXIgOjo9ICN4OSB8ICN4QSB8ICN4RCB8
IFsjeDIwLSN4RDdGRl0gfCBbI3hFMDAwLSN4RkZGRF0KICMgICAgICAgICAgICAgICAgICAgIHwg
WyN4MTAwMDAtI3gxMEZGRkZdCi1fbGVnYWxfY2hhcnMgPSAoMHgwOSwgMHgwQSwgMHgwZCkKK19s
ZWdhbF9jaGFycyA9ICgweDA5LCAweDBBLCAweDBEKQogX2xlZ2FsX3JhbmdlcyA9ICgoMHgyMCwg
MHg3RSksICgweDgwLCAweEQ3RkYpLCAoMHhFMDAwLCAweEZGRkQpLCAoMHgxMDAwMCwgMHgxMEZG
RkYpKQogX2xlZ2FsX3htbF9yZSA9IFsKLSAgICB1bmljb2RlKCIlcy0lcyIpICUgKHVuaWNocihs
b3cpLCB1bmljaHIoaGlnaCkpCisgICAgdSIlcy0lcyIgJSAoc2l4LnVuaWNocihsb3cpLCBzaXgu
dW5pY2hyKGhpZ2gpKQogICAgIGZvciAobG93LCBoaWdoKSBpbiBfbGVnYWxfcmFuZ2VzCiAgICAg
aWYgbG93IDwgc3lzLm1heHVuaWNvZGUKIF0KLV9sZWdhbF94bWxfcmUgPSBbdW5pY2hyKHgpIGZv
ciB4IGluIF9sZWdhbF9jaGFyc10gKyBfbGVnYWxfeG1sX3JlCi1pbGxlZ2FsX3htbF9yZSA9IHJl
LmNvbXBpbGUodW5pY29kZSgiW14lc10iKSAlIHVuaWNvZGUoIiIpLmpvaW4oX2xlZ2FsX3htbF9y
ZSkpCitfbGVnYWxfeG1sX3JlID0gW3NpeC51bmljaHIoeCkgZm9yIHggaW4gX2xlZ2FsX2NoYXJz
XSArIF9sZWdhbF94bWxfcmUKK2lsbGVnYWxfeG1sX3JlID0gcmUuY29tcGlsZSh1IlteJXNdIiAl
IHUiIi5qb2luKF9sZWdhbF94bWxfcmUpKQogZGVsIF9sZWdhbF9jaGFycwogZGVsIF9sZWdhbF9y
YW5nZXMKIGRlbCBfbGVnYWxfeG1sX3JlCkBAIC01NSwyNCArNTksNDQgQEAgX3B5X2V4dF9yZSA9
IHJlLmNvbXBpbGUociJcLnB5JCIpCiAKIAogZGVmIGJpbl94bWxfZXNjYXBlKGFyZyk6Ci0KICAg
ICBkZWYgcmVwbChtYXRjaG9iaik6CiAgICAgICAgIGkgPSBvcmQobWF0Y2hvYmouZ3JvdXAoKSkK
ICAgICAgICAgaWYgaSA8PSAweEZGOgotICAgICAgICAgICAgcmV0dXJuIHVuaWNvZGUoIiN4JTAy
WCIpICUgaQorICAgICAgICAgICAgcmV0dXJuIHUiI3glMDJYIiAlIGkKICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHJldHVybiB1bmljb2RlKCIjeCUwNFgiKSAlIGkKKyAgICAgICAgICAgIHJl
dHVybiB1IiN4JTA0WCIgJSBpCiAKICAgICByZXR1cm4gcHkueG1sLnJhdyhpbGxlZ2FsX3htbF9y
ZS5zdWIocmVwbCwgcHkueG1sLmVzY2FwZShhcmcpKSkKIAogCi1jbGFzcyBfTm9kZVJlcG9ydGVy
KG9iamVjdCk6CitkZWYgbWVyZ2VfZmFtaWx5KGxlZnQsIHJpZ2h0KToKKyAgICByZXN1bHQgPSB7
fQorICAgIGZvciBrbCwgdmwgaW4gbGVmdC5pdGVtcygpOgorICAgICAgICBmb3Iga3IsIHZyIGlu
IHJpZ2h0Lml0ZW1zKCk6CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2bCwgbGlzdCk6
CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKHR5cGUodmwpKQorICAgICAgICAgICAg
cmVzdWx0W2tsXSA9IHZsICsgdnIKKyAgICBsZWZ0LnVwZGF0ZShyZXN1bHQpCiAKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgbm9kZWlkLCB4bWwpOgogCitmYW1pbGllcyA9IHt9CitmYW1pbGllc1si
X2Jhc2UiXSA9IHsidGVzdGNhc2UiOiBbImNsYXNzbmFtZSIsICJuYW1lIl19CitmYW1pbGllc1si
X2Jhc2VfbGVnYWN5Il0gPSB7InRlc3RjYXNlIjogWyJmaWxlIiwgImxpbmUiLCAidXJsIl19CisK
KyMgeFVuaXQgMS54IGluaGVyaXRzIGxlZ2FjeSBhdHRyaWJ1dGVzCitmYW1pbGllc1sieHVuaXQx
Il0gPSBmYW1pbGllc1siX2Jhc2UiXS5jb3B5KCkKK21lcmdlX2ZhbWlseShmYW1pbGllc1sieHVu
aXQxIl0sIGZhbWlsaWVzWyJfYmFzZV9sZWdhY3kiXSkKKworIyB4VW5pdCAyLnggdXNlcyBzdHJp
Y3QgYmFzZSBhdHRyaWJ1dGVzCitmYW1pbGllc1sieHVuaXQyIl0gPSBmYW1pbGllc1siX2Jhc2Ui
XQorCisKK2NsYXNzIF9Ob2RlUmVwb3J0ZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2Vs
Ziwgbm9kZWlkLCB4bWwpOgogICAgICAgICBzZWxmLmlkID0gbm9kZWlkCiAgICAgICAgIHNlbGYu
eG1sID0geG1sCiAgICAgICAgIHNlbGYuYWRkX3N0YXRzID0gc2VsZi54bWwuYWRkX3N0YXRzCisg
ICAgICAgIHNlbGYuZmFtaWx5ID0gc2VsZi54bWwuZmFtaWx5CiAgICAgICAgIHNlbGYuZHVyYXRp
b24gPSAwCiAgICAgICAgIHNlbGYucHJvcGVydGllcyA9IFtdCiAgICAgICAgIHNlbGYubm9kZXMg
PSBbXQpAQCAtMTIwLDggKzE0NCwyMCBAQCBjbGFzcyBfTm9kZVJlcG9ydGVyKG9iamVjdCk6CiAg
ICAgICAgIHNlbGYuYXR0cnMgPSBhdHRycwogICAgICAgICBzZWxmLmF0dHJzLnVwZGF0ZShleGlz
dGluZ19hdHRycykgICMgcmVzdG9yZSBhbnkgdXNlci1kZWZpbmVkIGF0dHJpYnV0ZXMKIAorICAg
ICAgICAjIFByZXNlcnZlIGxlZ2FjeSB0ZXN0Y2FzZSBiZWhhdmlvcgorICAgICAgICBpZiBzZWxm
LmZhbWlseSA9PSAieHVuaXQxIjoKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgRmls
dGVyIG91dCBhdHRyaWJ1dGVzIG5vdCBwZXJtaXR0ZWQgYnkgdGhpcyB0ZXN0IGZhbWlseS4KKyAg
ICAgICAgIyBJbmNsdWRpbmcgY3VzdG9tIGF0dHJpYnV0ZXMgYmVjYXVzZSB0aGV5IGFyZSBub3Qg
dmFsaWQgaGVyZS4KKyAgICAgICAgdGVtcF9hdHRycyA9IHt9CisgICAgICAgIGZvciBrZXkgaW4g
c2VsZi5hdHRycy5rZXlzKCk6CisgICAgICAgICAgICBpZiBrZXkgaW4gZmFtaWxpZXNbc2VsZi5m
YW1pbHldWyJ0ZXN0Y2FzZSJdOgorICAgICAgICAgICAgICAgIHRlbXBfYXR0cnNba2V5XSA9IHNl
bGYuYXR0cnNba2V5XQorICAgICAgICBzZWxmLmF0dHJzID0gdGVtcF9hdHRycworCiAgICAgZGVm
IHRvX3htbChzZWxmKToKLSAgICAgICAgdGVzdGNhc2UgPSBKdW5pdC50ZXN0Y2FzZSh0aW1lPXNl
bGYuZHVyYXRpb24sICoqc2VsZi5hdHRycykKKyAgICAgICAgdGVzdGNhc2UgPSBKdW5pdC50ZXN0
Y2FzZSh0aW1lPSIlLjNmIiAlIHNlbGYuZHVyYXRpb24sICoqc2VsZi5hdHRycykKICAgICAgICAg
dGVzdGNhc2UuYXBwZW5kKHNlbGYubWFrZV9wcm9wZXJ0aWVzX25vZGUoKSkKICAgICAgICAgZm9y
IG5vZGUgaW4gc2VsZi5ub2RlczoKICAgICAgICAgICAgIHRlc3RjYXNlLmFwcGVuZChub2RlKQpA
QCAtMTMzLDYgKzE2OSw5IEBAIGNsYXNzIF9Ob2RlUmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAg
c2VsZi5hcHBlbmQobm9kZSkKIAogICAgIGRlZiB3cml0ZV9jYXB0dXJlZF9vdXRwdXQoc2VsZiwg
cmVwb3J0KToKKyAgICAgICAgaWYgbm90IHNlbGYueG1sLmxvZ19wYXNzaW5nX3Rlc3RzIGFuZCBy
ZXBvcnQucGFzc2VkOgorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgY29udGVudF9vdXQg
PSByZXBvcnQuY2Fwc3Rkb3V0CiAgICAgICAgIGNvbnRlbnRfbG9nID0gcmVwb3J0LmNhcGxvZwog
ICAgICAgICBjb250ZW50X2VyciA9IHJlcG9ydC5jYXBzdGRlcnIKQEAgLTE5Miw3ICsyMzEsNyBA
QCBjbGFzcyBfTm9kZVJlcG9ydGVyKG9iamVjdCk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBpZiBoYXNhdHRyKHJlcG9ydC5sb25ncmVwciwgInJlcHJjcmFzaCIpOgogICAgICAgICAgICAg
ICAgIG1lc3NhZ2UgPSByZXBvcnQubG9uZ3JlcHIucmVwcmNyYXNoLm1lc3NhZ2UKLSAgICAgICAg
ICAgIGVsaWYgaXNpbnN0YW5jZShyZXBvcnQubG9uZ3JlcHIsICh1bmljb2RlLCBzdHIpKToKKyAg
ICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShyZXBvcnQubG9uZ3JlcHIsIHNpeC5zdHJpbmdfdHlw
ZXMpOgogICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSByZXBvcnQubG9uZ3JlcHIKICAgICAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IHN0cihyZXBvcnQubG9uZ3JlcHIp
CkBAIC0yMTEsNyArMjUwLDcgQEAgY2xhc3MgX05vZGVSZXBvcnRlcihvYmplY3QpOgogICAgICAg
ICBzZWxmLl9hZGRfc2ltcGxlKEp1bml0LnNraXBwZWQsICJjb2xsZWN0aW9uIHNraXBwZWQiLCBy
ZXBvcnQubG9uZ3JlcHIpCiAKICAgICBkZWYgYXBwZW5kX2Vycm9yKHNlbGYsIHJlcG9ydCk6Ci0g
ICAgICAgIGlmIGdldGF0dHIocmVwb3J0LCAid2hlbiIsIE5vbmUpID09ICJ0ZWFyZG93biI6Cisg
ICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJ0ZWFyZG93biI6CiAgICAgICAgICAgICBtc2cgPSAi
dGVzdCB0ZWFyZG93biBmYWlsdXJlIgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbXNnID0g
InRlc3Qgc2V0dXAgZmFpbHVyZSIKQEAgLTIxOSwxNiArMjU4LDI1IEBAIGNsYXNzIF9Ob2RlUmVw
b3J0ZXIob2JqZWN0KToKIAogICAgIGRlZiBhcHBlbmRfc2tpcHBlZChzZWxmLCByZXBvcnQpOgog
ICAgICAgICBpZiBoYXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIik6Ci0gICAgICAgICAgICBzZWxm
Ll9hZGRfc2ltcGxlKEp1bml0LnNraXBwZWQsICJleHBlY3RlZCB0ZXN0IGZhaWx1cmUiLCByZXBv
cnQud2FzeGZhaWwpCisgICAgICAgICAgICB4ZmFpbHJlYXNvbiA9IHJlcG9ydC53YXN4ZmFpbAor
ICAgICAgICAgICAgaWYgeGZhaWxyZWFzb24uc3RhcnRzd2l0aCgicmVhc29uOiAiKToKKyAgICAg
ICAgICAgICAgICB4ZmFpbHJlYXNvbiA9IHhmYWlscmVhc29uWzg6XQorICAgICAgICAgICAgc2Vs
Zi5hcHBlbmQoCisgICAgICAgICAgICAgICAgSnVuaXQuc2tpcHBlZCgKKyAgICAgICAgICAgICAg
ICAgICAgIiIsIHR5cGU9InB5dGVzdC54ZmFpbCIsIG1lc3NhZ2U9YmluX3htbF9lc2NhcGUoeGZh
aWxyZWFzb24pCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQogICAgICAgICBlbHNl
OgogICAgICAgICAgICAgZmlsZW5hbWUsIGxpbmVubywgc2tpcHJlYXNvbiA9IHJlcG9ydC5sb25n
cmVwcgogICAgICAgICAgICAgaWYgc2tpcHJlYXNvbi5zdGFydHN3aXRoKCJTa2lwcGVkOiAiKToK
LSAgICAgICAgICAgICAgICBza2lwcmVhc29uID0gYmluX3htbF9lc2NhcGUoc2tpcHJlYXNvbls5
Ol0pCisgICAgICAgICAgICAgICAgc2tpcHJlYXNvbiA9IHNraXByZWFzb25bOTpdCisgICAgICAg
ICAgICBkZXRhaWxzID0gIiVzOiVzOiAlcyIgJSAoZmlsZW5hbWUsIGxpbmVubywgc2tpcHJlYXNv
bikKKwogICAgICAgICAgICAgc2VsZi5hcHBlbmQoCiAgICAgICAgICAgICAgICAgSnVuaXQuc2tp
cHBlZCgKLSAgICAgICAgICAgICAgICAgICAgIiVzOiVzOiAlcyIgJSAoZmlsZW5hbWUsIGxpbmVu
bywgc2tpcHJlYXNvbiksCisgICAgICAgICAgICAgICAgICAgIGJpbl94bWxfZXNjYXBlKGRldGFp
bHMpLAogICAgICAgICAgICAgICAgICAgICB0eXBlPSJweXRlc3Quc2tpcCIsCi0gICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2U9c2tpcHJlYXNvbiwKKyAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZT1iaW5feG1sX2VzY2FwZShza2lwcmVhc29uKSwKICAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgICApCiAgICAgICAgICAgICBzZWxmLndyaXRlX2NhcHR1cmVkX291dHB1dChyZXBvcnQpCkBA
IC0yMzksNiArMjg3LDIxIEBAIGNsYXNzIF9Ob2RlUmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAg
c2VsZi50b194bWwgPSBsYW1iZGE6IHB5LnhtbC5yYXcoZGF0YSkKIAogCitkZWYgX3dhcm5faW5j
b21wYXRpYmlsaXR5X3dpdGhfeHVuaXQyKHJlcXVlc3QsIGZpeHR1cmVfbmFtZSk6CisgICAgIiIi
RW1pdHMgYSBQeXRlc3RXYXJuaW5nIGFib3V0IHRoZSBnaXZlbiBmaXh0dXJlIGJlaW5nIGluY29t
cGF0aWJsZSB3aXRoIG5ld2VyIHh1bml0IHJldmlzaW9ucyIiIgorICAgIGZyb20gX3B5dGVzdC53
YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3RXYXJuaW5nCisKKyAgICB4bWwgPSBnZXRhdHRyKHJl
cXVlc3QuY29uZmlnLCAiX3htbCIsIE5vbmUpCisgICAgaWYgeG1sIGlzIG5vdCBOb25lIGFuZCB4
bWwuZmFtaWx5IG5vdCBpbiAoInh1bml0MSIsICJsZWdhY3kiKToKKyAgICAgICAgcmVxdWVzdC5u
b2RlLndhcm4oCisgICAgICAgICAgICBQeXRlc3RXYXJuaW5nKAorICAgICAgICAgICAgICAgICJ7
Zml4dHVyZV9uYW1lfSBpcyBpbmNvbXBhdGlibGUgd2l0aCBqdW5pdF9mYW1pbHkgJ3tmYW1pbHl9
JyAodXNlICdsZWdhY3knIG9yICd4dW5pdDEnKSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAg
ICBmaXh0dXJlX25hbWU9Zml4dHVyZV9uYW1lLCBmYW1pbHk9eG1sLmZhbWlseQorICAgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorCisKIEBweXRlc3QuZml4dHVyZQog
ZGVmIHJlY29yZF9wcm9wZXJ0eShyZXF1ZXN0KToKICAgICAiIiJBZGQgYW4gZXh0cmEgcHJvcGVy
dGllcyB0aGUgY2FsbGluZyB0ZXN0LgpAQCAtMjUyLDYgKzMxNSw3IEBAIGRlZiByZWNvcmRfcHJv
cGVydHkocmVxdWVzdCk6CiAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKHJlY29yZF9wcm9wZXJ0
eSk6CiAgICAgICAgICAgICByZWNvcmRfcHJvcGVydHkoImV4YW1wbGVfa2V5IiwgMSkKICAgICAi
IiIKKyAgICBfd2Fybl9pbmNvbXBhdGliaWxpdHlfd2l0aF94dW5pdDIocmVxdWVzdCwgInJlY29y
ZF9wcm9wZXJ0eSIpCiAKICAgICBkZWYgYXBwZW5kX3Byb3BlcnR5KG5hbWUsIHZhbHVlKToKICAg
ICAgICAgcmVxdWVzdC5ub2RlLnVzZXJfcHJvcGVydGllcy5hcHBlbmQoKG5hbWUsIHZhbHVlKSkK
QEAgLTI1OSwzNiArMzIzLDcxIEBAIGRlZiByZWNvcmRfcHJvcGVydHkocmVxdWVzdCk6CiAgICAg
cmV0dXJuIGFwcGVuZF9wcm9wZXJ0eQogCiAKLUBweXRlc3QuZml4dHVyZQotZGVmIHJlY29yZF94
bWxfcHJvcGVydHkocmVjb3JkX3Byb3BlcnR5KToKLSAgICAiIiIoRGVwcmVjYXRlZCkgdXNlIHJl
Y29yZF9wcm9wZXJ0eS4iIiIKLSAgICBpbXBvcnQgd2FybmluZ3MKLSAgICBmcm9tIF9weXRlc3Qg
aW1wb3J0IGRlcHJlY2F0ZWQKLQotICAgIHdhcm5pbmdzLndhcm4oZGVwcmVjYXRlZC5SRUNPUkRf
WE1MX1BST1BFUlRZLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKLQotICAgIHJl
dHVybiByZWNvcmRfcHJvcGVydHkKLQotCiBAcHl0ZXN0LmZpeHR1cmUKIGRlZiByZWNvcmRfeG1s
X2F0dHJpYnV0ZShyZXF1ZXN0KToKICAgICAiIiJBZGQgZXh0cmEgeG1sIGF0dHJpYnV0ZXMgdG8g
dGhlIHRhZyBmb3IgdGhlIGNhbGxpbmcgdGVzdC4KICAgICBUaGUgZml4dHVyZSBpcyBjYWxsYWJs
ZSB3aXRoIGBgKG5hbWUsIHZhbHVlKWBgLCB3aXRoIHZhbHVlIGJlaW5nCiAgICAgYXV0b21hdGlj
YWxseSB4bWwtZW5jb2RlZAogICAgICIiIgorICAgIGZyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVz
IGltcG9ydCBQeXRlc3RFeHBlcmltZW50YWxBcGlXYXJuaW5nCisKICAgICByZXF1ZXN0Lm5vZGUu
d2FybigKLSAgICAgICAgY29kZT0iQzMiLCBtZXNzYWdlPSJyZWNvcmRfeG1sX2F0dHJpYnV0ZSBp
cyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSIKKyAgICAgICAgUHl0ZXN0RXhwZXJpbWVudGFsQXBp
V2FybmluZygicmVjb3JkX3htbF9hdHRyaWJ1dGUgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUi
KQogICAgICkKKworICAgIF93YXJuX2luY29tcGF0aWJpbGl0eV93aXRoX3h1bml0MihyZXF1ZXN0
LCAicmVjb3JkX3htbF9hdHRyaWJ1dGUiKQorCisgICAgIyBEZWNsYXJlIG5vb3AKKyAgICBkZWYg
YWRkX2F0dHJfbm9vcChuYW1lLCB2YWx1ZSk6CisgICAgICAgIHBhc3MKKworICAgIGF0dHJfZnVu
YyA9IGFkZF9hdHRyX25vb3AKKwogICAgIHhtbCA9IGdldGF0dHIocmVxdWVzdC5jb25maWcsICJf
eG1sIiwgTm9uZSkKICAgICBpZiB4bWwgaXMgbm90IE5vbmU6CiAgICAgICAgIG5vZGVfcmVwb3J0
ZXIgPSB4bWwubm9kZV9yZXBvcnRlcihyZXF1ZXN0Lm5vZGUubm9kZWlkKQotICAgICAgICByZXR1
cm4gbm9kZV9yZXBvcnRlci5hZGRfYXR0cmlidXRlCi0gICAgZWxzZToKKyAgICAgICAgYXR0cl9m
dW5jID0gbm9kZV9yZXBvcnRlci5hZGRfYXR0cmlidXRlCisKKyAgICByZXR1cm4gYXR0cl9mdW5j
CisKKworZGVmIF9jaGVja19yZWNvcmRfcGFyYW1fdHlwZShwYXJhbSwgdik6CisgICAgIiIiVXNl
ZCBieSByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5IHRvIGNoZWNrIHRoYXQgdGhlIGdpdmVuIHBh
cmFtZXRlciBuYW1lIGlzIG9mIHRoZSBwcm9wZXIKKyAgICB0eXBlIiIiCisgICAgX190cmFjZWJh
Y2toaWRlX18gPSBUcnVlCisgICAgaWYgbm90IGlzaW5zdGFuY2Uodiwgc2l4LnN0cmluZ190eXBl
cyk6CisgICAgICAgIG1zZyA9ICJ7cGFyYW19IHBhcmFtZXRlciBuZWVkcyB0byBiZSBhIHN0cmlu
ZywgYnV0IHtnfSBnaXZlbiIKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZy5mb3JtYXQocGFy
YW09cGFyYW0sIGc9dHlwZSh2KS5fX25hbWVfXykpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSJzZXNzaW9uIikKK2RlZiByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KHJlcXVlc3QpOgorICAg
ICIiIgorICAgIFJlY29yZHMgYSBuZXcgYGA8cHJvcGVydHk+YGAgdGFnIGFzIGNoaWxkIG9mIHRo
ZSByb290IGBgPHRlc3RzdWl0ZT5gYC4gVGhpcyBpcyBzdWl0YWJsZSB0bworICAgIHdyaXRpbmcg
Z2xvYmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGUgZW50aXJlIHRlc3Qgc3VpdGUsIGFuZCBp
cyBjb21wYXRpYmxlIHdpdGggYGB4dW5pdDJgYCBKVW5pdCBmYW1pbHkuCisKKyAgICBUaGlzIGlz
IGEgYGBzZXNzaW9uYGAtc2NvcGVkIGZpeHR1cmUgd2hpY2ggaXMgY2FsbGVkIHdpdGggYGAobmFt
ZSwgdmFsdWUpYGAuIEV4YW1wbGU6CisKKyAgICAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKLSAg
ICAgICAgZGVmIGFkZF9hdHRyX25vb3AobmFtZSwgdmFsdWUpOgotICAgICAgICAgICAgcGFzcwor
ICAgICAgICBkZWYgdGVzdF9mb28ocmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eSk6CisgICAgICAg
ICAgICByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KCJBUkNIIiwgIlBQQyIpCisgICAgICAgICAg
ICByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KCJTVE9SQUdFX1RZUEUiLCAiQ0VQSCIpCiAKLSAg
ICAgICAgcmV0dXJuIGFkZF9hdHRyX25vb3AKKyAgICBgYG5hbWVgYCBtdXN0IGJlIGEgc3RyaW5n
LCBgYHZhbHVlYGAgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcgYW5kIHByb3Blcmx5IHht
bC1lc2NhcGVkLgorICAgICIiIgorCisgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisKKyAg
ICBkZWYgcmVjb3JkX2Z1bmMobmFtZSwgdmFsdWUpOgorICAgICAgICAiIiJub29wIGZ1bmN0aW9u
IGluIGNhc2UgLS1qdW5pdHhtbCB3YXMgbm90IHBhc3NlZCBpbiB0aGUgY29tbWFuZC1saW5lIiIi
CisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBfY2hlY2tfcmVjb3Jk
X3BhcmFtX3R5cGUoIm5hbWUiLCBuYW1lKQorCisgICAgeG1sID0gZ2V0YXR0cihyZXF1ZXN0LmNv
bmZpZywgIl94bWwiLCBOb25lKQorICAgIGlmIHhtbCBpcyBub3QgTm9uZToKKyAgICAgICAgcmVj
b3JkX2Z1bmMgPSB4bWwuYWRkX2dsb2JhbF9wcm9wZXJ0eSAgIyBub3FhCisgICAgcmV0dXJuIHJl
Y29yZF9mdW5jCiAKIAogZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKQEAgLTMyMCw2ICs0
MTksMjIgQEAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKICAgICAgICAgIm9uZSBvZiBu
b3xzeXN0ZW0tb3V0fHN5c3RlbS1lcnIiLAogICAgICAgICBkZWZhdWx0PSJubyIsCiAgICAgKSAg
IyBjaG9pY2VzPVsnbm8nLCAnc3Rkb3V0JywgJ3N0ZGVyciddKQorICAgIHBhcnNlci5hZGRpbmko
CisgICAgICAgICJqdW5pdF9sb2dfcGFzc2luZ190ZXN0cyIsCisgICAgICAgICJDYXB0dXJlIGxv
ZyBpbmZvcm1hdGlvbiBmb3IgcGFzc2luZyB0ZXN0cyB0byBKVW5pdCByZXBvcnQ6ICIsCisgICAg
ICAgIHR5cGU9ImJvb2wiLAorICAgICAgICBkZWZhdWx0PVRydWUsCisgICAgKQorICAgIHBhcnNl
ci5hZGRpbmkoCisgICAgICAgICJqdW5pdF9kdXJhdGlvbl9yZXBvcnQiLAorICAgICAgICAiRHVy
YXRpb24gdGltZSB0byByZXBvcnQ6IG9uZSBvZiB0b3RhbHxjYWxsIiwKKyAgICAgICAgZGVmYXVs
dD0idG90YWwiLAorICAgICkgICMgY2hvaWNlcz1bJ3RvdGFsJywgJ2NhbGwnXSkKKyAgICBwYXJz
ZXIuYWRkaW5pKAorICAgICAgICAianVuaXRfZmFtaWx5IiwKKyAgICAgICAgIkVtaXQgWE1MIGZv
ciBzY2hlbWE6IG9uZSBvZiBsZWdhY3l8eHVuaXQxfHh1bml0MiIsCisgICAgICAgIGRlZmF1bHQ9
Inh1bml0MSIsCisgICAgKQogCiAKIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CkBAIC0z
MzEsNiArNDQ2LDkgQEAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICAgICAgICAg
IGNvbmZpZy5vcHRpb24uanVuaXRwcmVmaXgsCiAgICAgICAgICAgICBjb25maWcuZ2V0aW5pKCJq
dW5pdF9zdWl0ZV9uYW1lIiksCiAgICAgICAgICAgICBjb25maWcuZ2V0aW5pKCJqdW5pdF9sb2dn
aW5nIiksCisgICAgICAgICAgICBjb25maWcuZ2V0aW5pKCJqdW5pdF9kdXJhdGlvbl9yZXBvcnQi
KSwKKyAgICAgICAgICAgIGNvbmZpZy5nZXRpbmkoImp1bml0X2ZhbWlseSIpLAorICAgICAgICAg
ICAgY29uZmlnLmdldGluaSgianVuaXRfbG9nX3Bhc3NpbmdfdGVzdHMiKSwKICAgICAgICAgKQog
ICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3Rlcihjb25maWcuX3htbCkKIApAQCAt
MzU4LDIxICs0NzYsMzcgQEAgZGVmIG1hbmdsZV90ZXN0X2FkZHJlc3MoYWRkcmVzcyk6CiAKIAog
Y2xhc3MgTG9nWE1MKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZmlsZSwg
cHJlZml4LCBzdWl0ZV9uYW1lPSJweXRlc3QiLCBsb2dnaW5nPSJubyIpOgorICAgIGRlZiBfX2lu
aXRfXygKKyAgICAgICAgc2VsZiwKKyAgICAgICAgbG9nZmlsZSwKKyAgICAgICAgcHJlZml4LAor
ICAgICAgICBzdWl0ZV9uYW1lPSJweXRlc3QiLAorICAgICAgICBsb2dnaW5nPSJubyIsCisgICAg
ICAgIHJlcG9ydF9kdXJhdGlvbj0idG90YWwiLAorICAgICAgICBmYW1pbHk9Inh1bml0MSIsCisg
ICAgICAgIGxvZ19wYXNzaW5nX3Rlc3RzPVRydWUsCisgICAgKToKICAgICAgICAgbG9nZmlsZSA9
IG9zLnBhdGguZXhwYW5kdXNlcihvcy5wYXRoLmV4cGFuZHZhcnMobG9nZmlsZSkpCiAgICAgICAg
IHNlbGYubG9nZmlsZSA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5hYnNwYXRoKGxvZ2ZpbGUp
KQogICAgICAgICBzZWxmLnByZWZpeCA9IHByZWZpeAogICAgICAgICBzZWxmLnN1aXRlX25hbWUg
PSBzdWl0ZV9uYW1lCiAgICAgICAgIHNlbGYubG9nZ2luZyA9IGxvZ2dpbmcKKyAgICAgICAgc2Vs
Zi5sb2dfcGFzc2luZ190ZXN0cyA9IGxvZ19wYXNzaW5nX3Rlc3RzCisgICAgICAgIHNlbGYucmVw
b3J0X2R1cmF0aW9uID0gcmVwb3J0X2R1cmF0aW9uCisgICAgICAgIHNlbGYuZmFtaWx5ID0gZmFt
aWx5CiAgICAgICAgIHNlbGYuc3RhdHMgPSBkaWN0LmZyb21rZXlzKFsiZXJyb3IiLCAicGFzc2Vk
IiwgImZhaWx1cmUiLCAic2tpcHBlZCJdLCAwKQogICAgICAgICBzZWxmLm5vZGVfcmVwb3J0ZXJz
ID0ge30gICMgbm9kZWlkIC0+IF9Ob2RlUmVwb3J0ZXIKICAgICAgICAgc2VsZi5ub2RlX3JlcG9y
dGVyc19vcmRlcmVkID0gW10KICAgICAgICAgc2VsZi5nbG9iYWxfcHJvcGVydGllcyA9IFtdCisK
ICAgICAgICAgIyBMaXN0IG9mIHJlcG9ydHMgdGhhdCBmYWlsZWQgb24gY2FsbCBidXQgdGVhcmRv
d24gaXMgcGVuZGluZy4KICAgICAgICAgc2VsZi5vcGVuX3JlcG9ydHMgPSBbXQogICAgICAgICBz
ZWxmLmNudF9kb3VibGVfZmFpbF90ZXN0cyA9IDAKIAorICAgICAgICAjIFJlcGxhY2VzIGNvbnZl
bmllbmNlIGZhbWlseSB3aXRoIHJlYWwgZmFtaWx5CisgICAgICAgIGlmIHNlbGYuZmFtaWx5ID09
ICJsZWdhY3kiOgorICAgICAgICAgICAgc2VsZi5mYW1pbHkgPSAieHVuaXQxIgorCiAgICAgZGVm
IGZpbmFsaXplKHNlbGYsIHJlcG9ydCk6CiAgICAgICAgIG5vZGVpZCA9IGdldGF0dHIocmVwb3J0
LCAibm9kZWlkIiwgcmVwb3J0KQogICAgICAgICAjIGxvY2FsIGhhY2sgdG8gaGFuZGxlIHhkaXN0
IHJlcG9ydCBvcmRlcgpAQCAtNDYzLDYgKzU5Nyw4IEBAIGNsYXNzIExvZ1hNTChvYmplY3QpOgog
ICAgICAgICAgICAgaWYgcmVwb3J0LndoZW4gPT0gImNhbGwiOgogICAgICAgICAgICAgICAgIHJl
cG9ydGVyLmFwcGVuZF9mYWlsdXJlKHJlcG9ydCkKICAgICAgICAgICAgICAgICBzZWxmLm9wZW5f
cmVwb3J0cy5hcHBlbmQocmVwb3J0KQorICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmxvZ19w
YXNzaW5nX3Rlc3RzOgorICAgICAgICAgICAgICAgICAgICByZXBvcnRlci53cml0ZV9jYXB0dXJl
ZF9vdXRwdXQocmVwb3J0KQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByZXBv
cnRlci5hcHBlbmRfZXJyb3IocmVwb3J0KQogICAgICAgICBlbGlmIHJlcG9ydC5za2lwcGVkOgpA
QCAtNDk4LDggKzYzNCw5IEBAIGNsYXNzIExvZ1hNTChvYmplY3QpOgogICAgICAgICAiIiJhY2N1
bXVsYXRlcyB0b3RhbCBkdXJhdGlvbiBmb3Igbm9kZWlkIGZyb20gZ2l2ZW4gcmVwb3J0IGFuZCB1
cGRhdGVzCiAgICAgICAgIHRoZSBKdW5pdC50ZXN0Y2FzZSB3aXRoIHRoZSBuZXcgdG90YWwgaWYg
YWxyZWFkeSBjcmVhdGVkLgogICAgICAgICAiIiIKLSAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLm5v
ZGVfcmVwb3J0ZXIocmVwb3J0KQotICAgICAgICByZXBvcnRlci5kdXJhdGlvbiArPSBnZXRhdHRy
KHJlcG9ydCwgImR1cmF0aW9uIiwgMC4wKQorICAgICAgICBpZiBzZWxmLnJlcG9ydF9kdXJhdGlv
biA9PSAidG90YWwiIG9yIHJlcG9ydC53aGVuID09IHNlbGYucmVwb3J0X2R1cmF0aW9uOgorICAg
ICAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLm5vZGVfcmVwb3J0ZXIocmVwb3J0KQorICAgICAgICAg
ICAgcmVwb3J0ZXIuZHVyYXRpb24gKz0gZ2V0YXR0cihyZXBvcnQsICJkdXJhdGlvbiIsIDAuMCkK
IAogICAgIGRlZiBweXRlc3RfY29sbGVjdHJlcG9ydChzZWxmLCByZXBvcnQpOgogICAgICAgICBp
ZiBub3QgcmVwb3J0LnBhc3NlZDoKQEAgLTUzNCwyNyArNjcxLDI4IEBAIGNsYXNzIExvZ1hNTChv
YmplY3QpOgogICAgICAgICApCiAgICAgICAgIGxvZ2ZpbGUud3JpdGUoJzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+JykKIAotICAgICAgICBsb2dmaWxlLndyaXRlKAotICAg
ICAgICAgICAgSnVuaXQudGVzdHN1aXRlKAotICAgICAgICAgICAgICAgIHNlbGYuX2dldF9nbG9i
YWxfcHJvcGVydGllc19ub2RlKCksCi0gICAgICAgICAgICAgICAgW3gudG9feG1sKCkgZm9yIHgg
aW4gc2VsZi5ub2RlX3JlcG9ydGVyc19vcmRlcmVkXSwKLSAgICAgICAgICAgICAgICBuYW1lPXNl
bGYuc3VpdGVfbmFtZSwKLSAgICAgICAgICAgICAgICBlcnJvcnM9c2VsZi5zdGF0c1siZXJyb3Ii
XSwKLSAgICAgICAgICAgICAgICBmYWlsdXJlcz1zZWxmLnN0YXRzWyJmYWlsdXJlIl0sCi0gICAg
ICAgICAgICAgICAgc2tpcHM9c2VsZi5zdGF0c1sic2tpcHBlZCJdLAotICAgICAgICAgICAgICAg
IHRlc3RzPW51bXRlc3RzLAotICAgICAgICAgICAgICAgIHRpbWU9IiUuM2YiICUgc3VpdGVfdGlt
ZV9kZWx0YSwKLSAgICAgICAgICAgICkudW5pY29kZSgKLSAgICAgICAgICAgICAgICBpbmRlbnQ9
MAotICAgICAgICAgICAgKQorICAgICAgICBzdWl0ZV9ub2RlID0gSnVuaXQudGVzdHN1aXRlKAor
ICAgICAgICAgICAgc2VsZi5fZ2V0X2dsb2JhbF9wcm9wZXJ0aWVzX25vZGUoKSwKKyAgICAgICAg
ICAgIFt4LnRvX3htbCgpIGZvciB4IGluIHNlbGYubm9kZV9yZXBvcnRlcnNfb3JkZXJlZF0sCisg
ICAgICAgICAgICBuYW1lPXNlbGYuc3VpdGVfbmFtZSwKKyAgICAgICAgICAgIGVycm9ycz1zZWxm
LnN0YXRzWyJlcnJvciJdLAorICAgICAgICAgICAgZmFpbHVyZXM9c2VsZi5zdGF0c1siZmFpbHVy
ZSJdLAorICAgICAgICAgICAgc2tpcHBlZD1zZWxmLnN0YXRzWyJza2lwcGVkIl0sCisgICAgICAg
ICAgICB0ZXN0cz1udW10ZXN0cywKKyAgICAgICAgICAgIHRpbWU9IiUuM2YiICUgc3VpdGVfdGlt
ZV9kZWx0YSwKKyAgICAgICAgICAgIHRpbWVzdGFtcD1kYXRldGltZS5mcm9tdGltZXN0YW1wKHNl
bGYuc3VpdGVfc3RhcnRfdGltZSkuaXNvZm9ybWF0KCksCisgICAgICAgICAgICBob3N0bmFtZT1w
bGF0Zm9ybS5ub2RlKCksCiAgICAgICAgICkKKyAgICAgICAgbG9nZmlsZS53cml0ZShKdW5pdC50
ZXN0c3VpdGVzKFtzdWl0ZV9ub2RlXSkudW5pY29kZShpbmRlbnQ9MCkpCiAgICAgICAgIGxvZ2Zp
bGUuY2xvc2UoKQogCiAgICAgZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHNlbGYsIHRlcm1p
bmFscmVwb3J0ZXIpOgogICAgICAgICB0ZXJtaW5hbHJlcG9ydGVyLndyaXRlX3NlcCgiLSIsICJn
ZW5lcmF0ZWQgeG1sIGZpbGU6ICVzIiAlIChzZWxmLmxvZ2ZpbGUpKQogCiAgICAgZGVmIGFkZF9n
bG9iYWxfcHJvcGVydHkoc2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICBzZWxmLmdsb2JhbF9w
cm9wZXJ0aWVzLmFwcGVuZCgoc3RyKG5hbWUpLCBiaW5feG1sX2VzY2FwZSh2YWx1ZSkpKQorICAg
ICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgX2NoZWNrX3JlY29yZF9wYXJh
bV90eXBlKCJuYW1lIiwgbmFtZSkKKyAgICAgICAgc2VsZi5nbG9iYWxfcHJvcGVydGllcy5hcHBl
bmQoKG5hbWUsIGJpbl94bWxfZXNjYXBlKHZhbHVlKSkpCiAKICAgICBkZWYgX2dldF9nbG9iYWxf
cHJvcGVydGllc19ub2RlKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm4gYSBKdW5pdCBub2RlIGNv
bnRhaW5pbmcgY3VzdG9tIHByb3BlcnRpZXMsIGlmIGFueS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L2xvZ2dpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9sb2dn
aW5nLnB5CmluZGV4IDAwYmI5YWViNTRhNzA0ZGI4NTgwZDJlNzAzOTY2YWJjMmVkYzM3YjQuLjI0
MDA3MzdlZTRlMTE5ZTZiNzM1MGI3MTVjMjQzMWUwMDdmMzQxM2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L2xvZ2dpbmcucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvbG9nZ2luZy5weQpAQCAtMSwxOCArMSwyOCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0K
ICIiIiBBY2Nlc3MgYW5kIGNvbnRyb2wgbG9nIGNhcHR1cmluZy4gIiIiCi1mcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBv
cnQgbG9nZ2luZwotZnJvbSBjb250ZXh0bGliIGltcG9ydCBjbG9zaW5nLCBjb250ZXh0bWFuYWdl
cgogaW1wb3J0IHJlCi1pbXBvcnQgc2l4Citmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRt
YW5hZ2VyCiAKLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGNyZWF0ZV90ZXJtaW5hbF93cml0
ZXIKLWltcG9ydCBweXRlc3QKIGltcG9ydCBweQoraW1wb3J0IHNpeAogCitpbXBvcnQgcHl0ZXN0
Citmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBkdW1teV9jb250ZXh0X21hbmFnZXIKK2Zyb20g
X3B5dGVzdC5jb25maWcgaW1wb3J0IGNyZWF0ZV90ZXJtaW5hbF93cml0ZXIKK2Zyb20gX3B5dGVz
dC5wYXRobGliIGltcG9ydCBQYXRoCiAKLURFRkFVTFRfTE9HX0ZPUk1BVCA9ICIlKGZpbGVuYW1l
KS0yNXMgJShsaW5lbm8pNGQgJShsZXZlbG5hbWUpLThzICUobWVzc2FnZSlzIgorREVGQVVMVF9M
T0dfRk9STUFUID0gIiUobGV2ZWxuYW1lKS04cyAlKG5hbWUpczolKGZpbGVuYW1lKXM6JShsaW5l
bm8pZCAlKG1lc3NhZ2UpcyIKIERFRkFVTFRfTE9HX0RBVEVfRk9STUFUID0gIiVIOiVNOiVTIgor
X0FOU0lfRVNDQVBFX1NFUSA9IHJlLmNvbXBpbGUociJceDFiXFtbXGQ7XSttIikKKworCitkZWYg
X3JlbW92ZV9hbnNpX2VzY2FwZV9zZXF1ZW5jZXModGV4dCk6CisgICAgcmV0dXJuIF9BTlNJX0VT
Q0FQRV9TRVEuc3ViKCIiLCB0ZXh0KQogCiAKIGNsYXNzIENvbG9yZWRMZXZlbEZvcm1hdHRlcihs
b2dnaW5nLkZvcm1hdHRlcik6CkBAIC02Nyw2ICs3NywzNiBAQCBjbGFzcyBDb2xvcmVkTGV2ZWxG
b3JtYXR0ZXIobG9nZ2luZy5Gb3JtYXR0ZXIpOgogICAgICAgICByZXR1cm4gc3VwZXIoQ29sb3Jl
ZExldmVsRm9ybWF0dGVyLCBzZWxmKS5mb3JtYXQocmVjb3JkKQogCiAKK2lmIG5vdCBzaXguUFky
OgorICAgICMgRm9ybWF0dGVyIGNsYXNzZXMgZG9uJ3Qgc3VwcG9ydCBmb3JtYXQgc3R5bGVzIGlu
IFBZMgorCisgICAgY2xhc3MgUGVyY2VudFN0eWxlTXVsdGlsaW5lKGxvZ2dpbmcuUGVyY2VudFN0
eWxlKToKKyAgICAgICAgIiIiQSBsb2dnaW5nIHN0eWxlIHdpdGggc3BlY2lhbCBzdXBwb3J0IGZv
ciBtdWx0aWxpbmUgbWVzc2FnZXMuCisKKyAgICAgICAgSWYgdGhlIG1lc3NhZ2Ugb2YgYSByZWNv
cmQgY29uc2lzdHMgb2YgbXVsdGlwbGUgbGluZXMsIHRoaXMgc3R5bGUKKyAgICAgICAgZm9ybWF0
cyB0aGUgbWVzc2FnZSBhcyBpZiBlYWNoIGxpbmUgd2VyZSBsb2dnZWQgc2VwYXJhdGVseS4KKyAg
ICAgICAgIiIiCisKKyAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICBkZWYgX3VwZGF0ZV9t
ZXNzYWdlKHJlY29yZF9kaWN0LCBtZXNzYWdlKToKKyAgICAgICAgICAgIHRtcCA9IHJlY29yZF9k
aWN0LmNvcHkoKQorICAgICAgICAgICAgdG1wWyJtZXNzYWdlIl0gPSBtZXNzYWdlCisgICAgICAg
ICAgICByZXR1cm4gdG1wCisKKyAgICAgICAgZGVmIGZvcm1hdChzZWxmLCByZWNvcmQpOgorICAg
ICAgICAgICAgaWYgIlxuIiBpbiByZWNvcmQubWVzc2FnZToKKyAgICAgICAgICAgICAgICBsaW5l
cyA9IHJlY29yZC5tZXNzYWdlLnNwbGl0bGluZXMoKQorICAgICAgICAgICAgICAgIGZvcm1hdHRl
ZCA9IHNlbGYuX2ZtdCAlIHNlbGYuX3VwZGF0ZV9tZXNzYWdlKHJlY29yZC5fX2RpY3RfXywgbGlu
ZXNbMF0pCisgICAgICAgICAgICAgICAgIyBUT0RPIG9wdGltaXplIHRoaXMgYnkgaW50cm9kdWNp
bmcgYW4gb3B0aW9uIHRoYXQgdGVsbHMgdGhlCisgICAgICAgICAgICAgICAgIyBsb2dnaW5nIGZy
YW1ld29yayB0aGF0IHRoZSBpbmRlbnRhdGlvbiBkb2Vzbid0CisgICAgICAgICAgICAgICAgIyBj
aGFuZ2UuIFRoaXMgYWxsb3dzIHRvIGNvbXB1dGUgdGhlIGluZGVudGF0aW9uIG9ubHkgb25jZS4K
KyAgICAgICAgICAgICAgICBpbmRlbnRhdGlvbiA9IF9yZW1vdmVfYW5zaV9lc2NhcGVfc2VxdWVu
Y2VzKGZvcm1hdHRlZCkuZmluZChsaW5lc1swXSkKKyAgICAgICAgICAgICAgICBsaW5lc1swXSA9
IGZvcm1hdHRlZAorICAgICAgICAgICAgICAgIHJldHVybiAoIlxuIiArICIgIiAqIGluZGVudGF0
aW9uKS5qb2luKGxpbmVzKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1
cm4gc2VsZi5fZm10ICUgcmVjb3JkLl9fZGljdF9fCisKKwogZGVmIGdldF9vcHRpb25faW5pKGNv
bmZpZywgKm5hbWVzKToKICAgICBmb3IgbmFtZSBpbiBuYW1lczoKICAgICAgICAgcmV0ID0gY29u
ZmlnLmdldG9wdGlvbihuYW1lKSAgIyAnZGVmYXVsdCcgYXJnIHdvbid0IHdvcmsgYXMgZXhwZWN0
ZWQKQEAgLTIxMiw3ICsyNTIsOCBAQCBjbGFzcyBMb2dDYXB0dXJlRml4dHVyZShvYmplY3QpOgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpdGVtKToKICAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyBm
dW5jYXJnLiIiIgogICAgICAgICBzZWxmLl9pdGVtID0gaXRlbQotICAgICAgICBzZWxmLl9pbml0
aWFsX2xvZ19sZXZlbHMgPSB7fSAgIyB0eXBlOiBEaWN0W3N0ciwgaW50XSAjIGRpY3Qgb2YgbG9n
IG5hbWUgLT4gbG9nIGxldmVsCisgICAgICAgICMgZGljdCBvZiBsb2cgbmFtZSAtPiBsb2cgbGV2
ZWwKKyAgICAgICAgc2VsZi5faW5pdGlhbF9sb2dfbGV2ZWxzID0ge30gICMgRGljdFtzdHIsIGlu
dF0KIAogICAgIGRlZiBfZmluYWxpemUoc2VsZik6CiAgICAgICAgICIiIkZpbmFsaXplcyB0aGUg
Zml4dHVyZS4KQEAgLTI1MSw4ICsyOTIsOCBAQCBjbGFzcyBMb2dDYXB0dXJlRml4dHVyZShvYmpl
Y3QpOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHRleHQoc2VsZik6Ci0gICAgICAgICIiIlJl
dHVybnMgdGhlIGxvZyB0ZXh0LiIiIgotICAgICAgICByZXR1cm4gc2VsZi5oYW5kbGVyLnN0cmVh
bS5nZXR2YWx1ZSgpCisgICAgICAgICIiIlJldHVybnMgdGhlIGZvcm1hdHRlZCBsb2cgdGV4dC4i
IiIKKyAgICAgICAgcmV0dXJuIF9yZW1vdmVfYW5zaV9lc2NhcGVfc2VxdWVuY2VzKHNlbGYuaGFu
ZGxlci5zdHJlYW0uZ2V0dmFsdWUoKSkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiByZWNvcmRz
KHNlbGYpOgpAQCAtMjYxLDcgKzMwMiw3IEBAIGNsYXNzIExvZ0NhcHR1cmVGaXh0dXJlKG9iamVj
dCk6CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgcmVjb3JkX3R1cGxlcyhzZWxmKToKLSAgICAg
ICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgYSBzdHJpcGVkIGRvd24gdmVyc2lvbiBvZiBsb2cgcmVj
b3JkcyBpbnRlbmRlZAorICAgICAgICAiIiJSZXR1cm5zIGEgbGlzdCBvZiBhIHN0cmlwcGVkIGRv
d24gdmVyc2lvbiBvZiBsb2cgcmVjb3JkcyBpbnRlbmRlZAogICAgICAgICBmb3IgdXNlIGluIGFz
c2VydGlvbiBjb21wYXJpc29uLgogCiAgICAgICAgIFRoZSBmb3JtYXQgb2YgdGhlIHR1cGxlIGlz
OgpAQCAtMjcwLDYgKzMxMSwyMiBAQCBjbGFzcyBMb2dDYXB0dXJlRml4dHVyZShvYmplY3QpOgog
ICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIFsoci5uYW1lLCByLmxldmVsbm8sIHIuZ2V0TWVz
c2FnZSgpKSBmb3IgciBpbiBzZWxmLnJlY29yZHNdCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg
bWVzc2FnZXMoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgYSBsaXN0IG9mIGZvcm1hdC1pbnRl
cnBvbGF0ZWQgbG9nIG1lc3NhZ2VzLgorCisgICAgICAgIFVubGlrZSAncmVjb3JkcycsIHdoaWNo
IGNvbnRhaW5zIHRoZSBmb3JtYXQgc3RyaW5nIGFuZCBwYXJhbWV0ZXJzIGZvciBpbnRlcnBvbGF0
aW9uLCBsb2cgbWVzc2FnZXMgaW4gdGhpcyBsaXN0CisgICAgICAgIGFyZSBhbGwgaW50ZXJwb2xh
dGVkLgorICAgICAgICBVbmxpa2UgJ3RleHQnLCB3aGljaCBjb250YWlucyB0aGUgb3V0cHV0IGZy
b20gdGhlIGhhbmRsZXIsIGxvZyBtZXNzYWdlcyBpbiB0aGlzIGxpc3QgYXJlIHVuYWRvcm5lZCB3
aXRoCisgICAgICAgIGxldmVscywgdGltZXN0YW1wcywgZXRjLCBtYWtpbmcgZXhhY3QgY29tcGFy
aXNvbnMgbW9yZSByZWxpYWJsZS4KKworICAgICAgICBOb3RlIHRoYXQgdHJhY2ViYWNrIG9yIHN0
YWNrIGluZm8gKGZyb20gOmZ1bmM6YGxvZ2dpbmcuZXhjZXB0aW9uYCBvciB0aGUgYGV4Y19pbmZv
YCBvciBgc3RhY2tfaW5mb2AgYXJndW1lbnRzCisgICAgICAgIHRvIHRoZSBsb2dnaW5nIGZ1bmN0
aW9ucykgaXMgbm90IGluY2x1ZGVkLCBhcyB0aGlzIGlzIGFkZGVkIGJ5IHRoZSBmb3JtYXR0ZXIg
aW4gdGhlIGhhbmRsZXIuCisKKyAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy43CisgICAgICAg
ICIiIgorICAgICAgICByZXR1cm4gW3IuZ2V0TWVzc2FnZSgpIGZvciByIGluIHNlbGYucmVjb3Jk
c10KKwogICAgIGRlZiBjbGVhcihzZWxmKToKICAgICAgICAgIiIiUmVzZXQgdGhlIGxpc3Qgb2Yg
bG9nIHJlY29yZHMgYW5kIHRoZSBjYXB0dXJlZCBsb2cgdGV4dC4iIiIKICAgICAgICAgc2VsZi5o
YW5kbGVyLnJlc2V0KCkKQEAgLTMxMiw3ICszNjksNyBAQCBjbGFzcyBMb2dDYXB0dXJlRml4dHVy
ZShvYmplY3QpOgogZGVmIGNhcGxvZyhyZXF1ZXN0KToKICAgICAiIiJBY2Nlc3MgYW5kIGNvbnRy
b2wgbG9nIGNhcHR1cmluZy4KIAotICAgIENhcHR1cmVkIGxvZ3MgYXJlIGF2YWlsYWJsZSB0aHJv
dWdoIHRoZSBmb2xsb3dpbmcgbWV0aG9kczo6CisgICAgQ2FwdHVyZWQgbG9ncyBhcmUgYXZhaWxh
YmxlIHRocm91Z2ggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzL21ldGhvZHM6OgogCiAgICAgKiBj
YXBsb2cudGV4dCAgICAgICAgICAgIC0+IHN0cmluZyBjb250YWluaW5nIGZvcm1hdHRlZCBsb2cg
b3V0cHV0CiAgICAgKiBjYXBsb2cucmVjb3JkcyAgICAgICAgIC0+IGxpc3Qgb2YgbG9nZ2luZy5M
b2dSZWNvcmQgaW5zdGFuY2VzCkBAIC0zNDksMTUgKzQwNiwxMiBAQCBkZWYgZ2V0X2FjdHVhbF9s
b2dfbGV2ZWwoY29uZmlnLCAqc2V0dGluZ19uYW1lcyk6CiAgICAgICAgICkKIAogCisjIHJ1biBh
ZnRlciB0ZXJtaW5hbHJlcG9ydGVyL2NhcHR1cmVtYW5hZ2VyIGFyZSBjb25maWd1cmVkCitAcHl0
ZXN0Lmhvb2tpbXBsKHRyeWxhc3Q9VHJ1ZSkKIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6
CiAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoTG9nZ2luZ1BsdWdpbihjb25maWcp
LCAibG9nZ2luZy1wbHVnaW4iKQogCiAKLUBjb250ZXh0bWFuYWdlcgotZGVmIF9kdW1teV9jb250
ZXh0X21hbmFnZXIoKToKLSAgICB5aWVsZAotCi0KIGNsYXNzIExvZ2dpbmdQbHVnaW4ob2JqZWN0
KToKICAgICAiIiJBdHRhY2hlcyB0byB0aGUgbG9nZ2luZyBtb2R1bGUgYW5kIGNhcHR1cmVzIGxv
ZyBtZXNzYWdlcyBmb3IgZWFjaCB0ZXN0LgogICAgICIiIgpAQCAtMzcwLDUxICs0MjQsMTMxIEBA
IGNsYXNzIExvZ2dpbmdQbHVnaW4ob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIHNlbGYu
X2NvbmZpZyA9IGNvbmZpZwogCi0gICAgICAgICMgZW5hYmxlIHZlcmJvc2Ugb3V0cHV0IGF1dG9t
YXRpY2FsbHkgaWYgbGl2ZSBsb2dnaW5nIGlzIGVuYWJsZWQKLSAgICAgICAgaWYgc2VsZi5fbG9n
X2NsaV9lbmFibGVkKCkgYW5kIG5vdCBjb25maWcuZ2V0b3B0aW9uKCJ2ZXJib3NlIik6Ci0gICAg
ICAgICAgICAjIHNhbml0eSBjaGVjazogdGVybWluYWwgcmVwb3J0ZXIgc2hvdWxkIG5vdCBoYXZl
IGJlZW4gbG9hZGVkIGF0IHRoaXMgcG9pbnQKLSAgICAgICAgICAgIGFzc2VydCBzZWxmLl9jb25m
aWcucGx1Z2lubWFuYWdlci5nZXRfcGx1Z2luKCJ0ZXJtaW5hbHJlcG9ydGVyIikgaXMgTm9uZQot
ICAgICAgICAgICAgY29uZmlnLm9wdGlvbi52ZXJib3NlID0gMQotCiAgICAgICAgIHNlbGYucHJp
bnRfbG9ncyA9IGdldF9vcHRpb25faW5pKGNvbmZpZywgImxvZ19wcmludCIpCi0gICAgICAgIHNl
bGYuZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoCisgICAgICAgIHNlbGYuZm9ybWF0dGVy
ID0gc2VsZi5fY3JlYXRlX2Zvcm1hdHRlcigKICAgICAgICAgICAgIGdldF9vcHRpb25faW5pKGNv
bmZpZywgImxvZ19mb3JtYXQiKSwKICAgICAgICAgICAgIGdldF9vcHRpb25faW5pKGNvbmZpZywg
ImxvZ19kYXRlX2Zvcm1hdCIpLAogICAgICAgICApCiAgICAgICAgIHNlbGYubG9nX2xldmVsID0g
Z2V0X2FjdHVhbF9sb2dfbGV2ZWwoY29uZmlnLCAibG9nX2xldmVsIikKIAorICAgICAgICBzZWxm
LmxvZ19maWxlX2xldmVsID0gZ2V0X2FjdHVhbF9sb2dfbGV2ZWwoY29uZmlnLCAibG9nX2ZpbGVf
bGV2ZWwiKQorICAgICAgICBzZWxmLmxvZ19maWxlX2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKGNv
bmZpZywgImxvZ19maWxlX2Zvcm1hdCIsICJsb2dfZm9ybWF0IikKKyAgICAgICAgc2VsZi5sb2df
ZmlsZV9kYXRlX2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKAorICAgICAgICAgICAgY29uZmlnLCAi
bG9nX2ZpbGVfZGF0ZV9mb3JtYXQiLCAibG9nX2RhdGVfZm9ybWF0IgorICAgICAgICApCisgICAg
ICAgIHNlbGYubG9nX2ZpbGVfZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoCisgICAgICAg
ICAgICBzZWxmLmxvZ19maWxlX2Zvcm1hdCwgZGF0ZWZtdD1zZWxmLmxvZ19maWxlX2RhdGVfZm9y
bWF0CisgICAgICAgICkKKwogICAgICAgICBsb2dfZmlsZSA9IGdldF9vcHRpb25faW5pKGNvbmZp
ZywgImxvZ19maWxlIikKICAgICAgICAgaWYgbG9nX2ZpbGU6Ci0gICAgICAgICAgICBzZWxmLmxv
Z19maWxlX2xldmVsID0gZ2V0X2FjdHVhbF9sb2dfbGV2ZWwoY29uZmlnLCAibG9nX2ZpbGVfbGV2
ZWwiKQotCi0gICAgICAgICAgICBsb2dfZmlsZV9mb3JtYXQgPSBnZXRfb3B0aW9uX2luaShjb25m
aWcsICJsb2dfZmlsZV9mb3JtYXQiLCAibG9nX2Zvcm1hdCIpCi0gICAgICAgICAgICBsb2dfZmls
ZV9kYXRlX2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKAotICAgICAgICAgICAgICAgIGNvbmZpZywg
ImxvZ19maWxlX2RhdGVfZm9ybWF0IiwgImxvZ19kYXRlX2Zvcm1hdCIKKyAgICAgICAgICAgIHNl
bGYubG9nX2ZpbGVfaGFuZGxlciA9IGxvZ2dpbmcuRmlsZUhhbmRsZXIoCisgICAgICAgICAgICAg
ICAgbG9nX2ZpbGUsIG1vZGU9InciLCBlbmNvZGluZz0iVVRGLTgiCiAgICAgICAgICAgICApCi0g
ICAgICAgICAgICAjIEVhY2ggcHl0ZXN0IHJ1bnRlc3RzIHNlc3Npb24gd2lsbCB3cml0ZSB0byBh
IGNsZWFuIGxvZ2ZpbGUKLSAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVfaGFuZGxlciA9IGxvZ2dp
bmcuRmlsZUhhbmRsZXIobG9nX2ZpbGUsIG1vZGU9InciKQotICAgICAgICAgICAgbG9nX2ZpbGVf
Zm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoCi0gICAgICAgICAgICAgICAgbG9nX2ZpbGVf
Zm9ybWF0LCBkYXRlZm10PWxvZ19maWxlX2RhdGVfZm9ybWF0Ci0gICAgICAgICAgICApCi0gICAg
ICAgICAgICBzZWxmLmxvZ19maWxlX2hhbmRsZXIuc2V0Rm9ybWF0dGVyKGxvZ19maWxlX2Zvcm1h
dHRlcikKKyAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVfaGFuZGxlci5zZXRGb3JtYXR0ZXIoc2Vs
Zi5sb2dfZmlsZV9mb3JtYXR0ZXIpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmxv
Z19maWxlX2hhbmRsZXIgPSBOb25lCiAKLSAgICAgICAgIyBpbml0aWFsaXplZCBkdXJpbmcgcHl0
ZXN0X3J1bnRlc3Rsb29wCiAgICAgICAgIHNlbGYubG9nX2NsaV9oYW5kbGVyID0gTm9uZQogCisg
ICAgICAgIHNlbGYubGl2ZV9sb2dzX2NvbnRleHQgPSBsYW1iZGE6IGR1bW15X2NvbnRleHRfbWFu
YWdlcigpCisgICAgICAgICMgTm90ZSB0aGF0IHRoZSBsYW1iZGEgZm9yIHRoZSBsaXZlX2xvZ3Nf
Y29udGV4dCBpcyBuZWVkZWQgYmVjYXVzZQorICAgICAgICAjIGxpdmVfbG9nc19jb250ZXh0IGNh
biBvdGhlcndpc2Ugbm90IGJlIGVudGVyZWQgbXVsdGlwbGUgdGltZXMgZHVlCisgICAgICAgICMg
dG8gbGltaXRhdGlvbnMgb2YgY29udGV4dGxpYi5jb250ZXh0bWFuYWdlci4KKworICAgICAgICBp
ZiBzZWxmLl9sb2dfY2xpX2VuYWJsZWQoKToKKyAgICAgICAgICAgIHNlbGYuX3NldHVwX2NsaV9s
b2dnaW5nKCkKKworICAgIGRlZiBfY3JlYXRlX2Zvcm1hdHRlcihzZWxmLCBsb2dfZm9ybWF0LCBs
b2dfZGF0ZV9mb3JtYXQpOgorICAgICAgICAjIGNvbG9yIG9wdGlvbiBkb2Vzbid0IGV4aXN0IGlm
IHRlcm1pbmFsIHBsdWdpbiBpcyBkaXNhYmxlZAorICAgICAgICBjb2xvciA9IGdldGF0dHIoc2Vs
Zi5fY29uZmlnLm9wdGlvbiwgImNvbG9yIiwgIm5vIikKKyAgICAgICAgaWYgY29sb3IgIT0gIm5v
IiBhbmQgQ29sb3JlZExldmVsRm9ybWF0dGVyLkxFVkVMTkFNRV9GTVRfUkVHRVguc2VhcmNoKAor
ICAgICAgICAgICAgbG9nX2Zvcm1hdAorICAgICAgICApOgorICAgICAgICAgICAgZm9ybWF0dGVy
ID0gQ29sb3JlZExldmVsRm9ybWF0dGVyKAorICAgICAgICAgICAgICAgIGNyZWF0ZV90ZXJtaW5h
bF93cml0ZXIoc2VsZi5fY29uZmlnKSwgbG9nX2Zvcm1hdCwgbG9nX2RhdGVfZm9ybWF0CisgICAg
ICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmb3JtYXR0ZXIgPSBsb2dnaW5n
LkZvcm1hdHRlcihsb2dfZm9ybWF0LCBsb2dfZGF0ZV9mb3JtYXQpCisKKyAgICAgICAgaWYgbm90
IHNpeC5QWTI6CisgICAgICAgICAgICBmb3JtYXR0ZXIuX3N0eWxlID0gUGVyY2VudFN0eWxlTXVs
dGlsaW5lKGZvcm1hdHRlci5fc3R5bGUuX2ZtdCkKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlcgor
CisgICAgZGVmIF9zZXR1cF9jbGlfbG9nZ2luZyhzZWxmKToKKyAgICAgICAgY29uZmlnID0gc2Vs
Zi5fY29uZmlnCisgICAgICAgIHRlcm1pbmFsX3JlcG9ydGVyID0gY29uZmlnLnBsdWdpbm1hbmFn
ZXIuZ2V0X3BsdWdpbigidGVybWluYWxyZXBvcnRlciIpCisgICAgICAgIGlmIHRlcm1pbmFsX3Jl
cG9ydGVyIGlzIE5vbmU6CisgICAgICAgICAgICAjIHRlcm1pbmFsIHJlcG9ydGVyIGlzIGRpc2Fi
bGVkIGUuZy4gYnkgcHl0ZXN0LXhkaXN0LgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAg
Y2FwdHVyZV9tYW5hZ2VyID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigiY2FwdHVy
ZW1hbmFnZXIiKQorICAgICAgICAjIGlmIGNhcHR1cmVtYW5hZ2VyIHBsdWdpbiBpcyBkaXNhYmxl
ZCwgbGl2ZSBsb2dnaW5nIHN0aWxsIHdvcmtzLgorICAgICAgICBsb2dfY2xpX2hhbmRsZXIgPSBf
TGl2ZUxvZ2dpbmdTdHJlYW1IYW5kbGVyKHRlcm1pbmFsX3JlcG9ydGVyLCBjYXB0dXJlX21hbmFn
ZXIpCisKKyAgICAgICAgbG9nX2NsaV9mb3JtYXR0ZXIgPSBzZWxmLl9jcmVhdGVfZm9ybWF0dGVy
KAorICAgICAgICAgICAgZ2V0X29wdGlvbl9pbmkoY29uZmlnLCAibG9nX2NsaV9mb3JtYXQiLCAi
bG9nX2Zvcm1hdCIpLAorICAgICAgICAgICAgZ2V0X29wdGlvbl9pbmkoY29uZmlnLCAibG9nX2Ns
aV9kYXRlX2Zvcm1hdCIsICJsb2dfZGF0ZV9mb3JtYXQiKSwKKyAgICAgICAgKQorCisgICAgICAg
IGxvZ19jbGlfbGV2ZWwgPSBnZXRfYWN0dWFsX2xvZ19sZXZlbChjb25maWcsICJsb2dfY2xpX2xl
dmVsIiwgImxvZ19sZXZlbCIpCisgICAgICAgIHNlbGYubG9nX2NsaV9oYW5kbGVyID0gbG9nX2Ns
aV9oYW5kbGVyCisgICAgICAgIHNlbGYubGl2ZV9sb2dzX2NvbnRleHQgPSBsYW1iZGE6IGNhdGNo
aW5nX2xvZ3MoCisgICAgICAgICAgICBsb2dfY2xpX2hhbmRsZXIsIGZvcm1hdHRlcj1sb2dfY2xp
X2Zvcm1hdHRlciwgbGV2ZWw9bG9nX2NsaV9sZXZlbAorICAgICAgICApCisKKyAgICBkZWYgc2V0
X2xvZ19wYXRoKHNlbGYsIGZuYW1lKToKKyAgICAgICAgIiIiUHVibGljIG1ldGhvZCwgd2hpY2gg
Y2FuIHNldCBmaWxlbmFtZSBwYXJhbWV0ZXIgZm9yCisgICAgICAgIExvZ2dpbmcuRmlsZUhhbmRs
ZXIoKS4gQWxzbyBjcmVhdGVzIHBhcmVudCBkaXJlY3RvcnkgaWYKKyAgICAgICAgaXQgZG9lcyBu
b3QgZXhpc3QuCisKKyAgICAgICAgLi4gd2FybmluZzo6CisgICAgICAgICAgICBQbGVhc2UgY29u
c2lkZXJlZCBhcyBhbiBleHBlcmltZW50YWwgQVBJLgorICAgICAgICAiIiIKKyAgICAgICAgZm5h
bWUgPSBQYXRoKGZuYW1lKQorCisgICAgICAgIGlmIG5vdCBmbmFtZS5pc19hYnNvbHV0ZSgpOgor
ICAgICAgICAgICAgZm5hbWUgPSBQYXRoKHNlbGYuX2NvbmZpZy5yb290ZGlyLCBmbmFtZSkKKwor
ICAgICAgICBpZiBub3QgZm5hbWUucGFyZW50LmV4aXN0cygpOgorICAgICAgICAgICAgZm5hbWUu
cGFyZW50Lm1rZGlyKGV4aXN0X29rPVRydWUsIHBhcmVudHM9VHJ1ZSkKKworICAgICAgICBzZWxm
LmxvZ19maWxlX2hhbmRsZXIgPSBsb2dnaW5nLkZpbGVIYW5kbGVyKAorICAgICAgICAgICAgc3Ry
KGZuYW1lKSwgbW9kZT0idyIsIGVuY29kaW5nPSJVVEYtOCIKKyAgICAgICAgKQorICAgICAgICBz
ZWxmLmxvZ19maWxlX2hhbmRsZXIuc2V0Rm9ybWF0dGVyKHNlbGYubG9nX2ZpbGVfZm9ybWF0dGVy
KQorCiAgICAgZGVmIF9sb2dfY2xpX2VuYWJsZWQoc2VsZik6CiAgICAgICAgICIiIlJldHVybiBU
cnVlIGlmIGxvZ19jbGkgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZW5hYmxlZCwgZWl0aGVyIGV4cGxp
Y2l0bHkKICAgICAgICAgb3IgYmVjYXVzZSAtLWxvZy1jbGktbGV2ZWwgd2FzIGdpdmVuIGluIHRo
ZSBjb21tYW5kLWxpbmUuCiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5fY29uZmln
LmdldG9wdGlvbigKICAgICAgICAgICAgICItLWxvZy1jbGktbGV2ZWwiCi0gICAgICAgICkgaXMg
bm90IE5vbmUgb3Igc2VsZi5fY29uZmlnLmdldGluaSgKLSAgICAgICAgICAgICJsb2dfY2xpIgot
ICAgICAgICApCisgICAgICAgICkgaXMgbm90IE5vbmUgb3Igc2VsZi5fY29uZmlnLmdldGluaSgi
bG9nX2NsaSIpCisKKyAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUsIHRyeWZp
cnN0PVRydWUpCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uKHNlbGYpOgorICAgICAgICB3aXRo
IHNlbGYubGl2ZV9sb2dzX2NvbnRleHQoKToKKyAgICAgICAgICAgIGlmIHNlbGYubG9nX2NsaV9o
YW5kbGVyOgorICAgICAgICAgICAgICAgIHNlbGYubG9nX2NsaV9oYW5kbGVyLnNldF93aGVuKCJj
b2xsZWN0aW9uIikKKworICAgICAgICAgICAgaWYgc2VsZi5sb2dfZmlsZV9oYW5kbGVyIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgICAgIHdpdGggY2F0Y2hpbmdfbG9ncyhzZWxmLmxvZ19maWxl
X2hhbmRsZXIsIGxldmVsPXNlbGYubG9nX2ZpbGVfbGV2ZWwpOgorICAgICAgICAgICAgICAgICAg
ICB5aWVsZAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB5aWVsZAogCiAgICAg
QGNvbnRleHRtYW5hZ2VyCiAgICAgZGVmIF9ydW50ZXN0X2ZvcihzZWxmLCBpdGVtLCB3aGVuKToK
KyAgICAgICAgd2l0aCBzZWxmLl9ydW50ZXN0X2Zvcl9tYWluKGl0ZW0sIHdoZW4pOgorICAgICAg
ICAgICAgaWYgc2VsZi5sb2dfZmlsZV9oYW5kbGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
ICAgIHdpdGggY2F0Y2hpbmdfbG9ncyhzZWxmLmxvZ19maWxlX2hhbmRsZXIsIGxldmVsPXNlbGYu
bG9nX2ZpbGVfbGV2ZWwpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICB5aWVsZAorCisgICAgQGNvbnRleHRtYW5hZ2VyCisgICAg
ZGVmIF9ydW50ZXN0X2Zvcl9tYWluKHNlbGYsIGl0ZW0sIHdoZW4pOgogICAgICAgICAiIiJJbXBs
ZW1lbnRzIHRoZSBpbnRlcm5hbHMgb2YgcHl0ZXN0X3J1bnRlc3RfeHh4KCkgaG9vay4iIiIKICAg
ICAgICAgd2l0aCBjYXRjaGluZ19sb2dzKAogICAgICAgICAgICAgTG9nQ2FwdHVyZUhhbmRsZXIo
KSwgZm9ybWF0dGVyPXNlbGYuZm9ybWF0dGVyLCBsZXZlbD1zZWxmLmxvZ19sZXZlbApAQCAtNDMz
LDggKzU2Nyw4IEBAIGNsYXNzIExvZ2dpbmdQbHVnaW4ob2JqZWN0KToKICAgICAgICAgICAgIHRy
eToKICAgICAgICAgICAgICAgICB5aWVsZCAgIyBydW4gdGVzdAogICAgICAgICAgICAgZmluYWxs
eToKLSAgICAgICAgICAgICAgICBkZWwgaXRlbS5jYXRjaF9sb2dfaGFuZGxlcgogICAgICAgICAg
ICAgICAgIGlmIHdoZW4gPT0gInRlYXJkb3duIjoKKyAgICAgICAgICAgICAgICAgICAgZGVsIGl0
ZW0uY2F0Y2hfbG9nX2hhbmRsZXIKICAgICAgICAgICAgICAgICAgICAgZGVsIGl0ZW0uY2F0Y2hf
bG9nX2hhbmRsZXJzCiAKICAgICAgICAgICAgIGlmIHNlbGYucHJpbnRfbG9nczoKQEAgLTQ3MCw1
OCArNjA0LDU3IEBAIGNsYXNzIExvZ2dpbmdQbHVnaW4ob2JqZWN0KToKICAgICAgICAgICAgIHlp
ZWxkCiAKICAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5
dGVzdF9ydW50ZXN0bG9vcChzZWxmLCBzZXNzaW9uKToKLSAgICAgICAgIiIiUnVucyBhbGwgY29s
bGVjdGVkIHRlc3QgaXRlbXMuIiIiCi0gICAgICAgIHNlbGYuX3NldHVwX2NsaV9sb2dnaW5nKCkK
LSAgICAgICAgd2l0aCBzZWxmLmxpdmVfbG9nc19jb250ZXh0OgorICAgIGRlZiBweXRlc3RfcnVu
dGVzdF9sb2dyZXBvcnQoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5fcnVudGVzdF9mb3IoTm9u
ZSwgImxvZ3JlcG9ydCIpOgorICAgICAgICAgICAgeWllbGQKKworICAgIEBweXRlc3QuaG9va2lt
cGwoaG9va3dyYXBwZXI9VHJ1ZSwgdHJ5Zmlyc3Q9VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X3Nlc3Np
b25maW5pc2goc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5saXZlX2xvZ3NfY29udGV4dCgpOgor
ICAgICAgICAgICAgaWYgc2VsZi5sb2dfY2xpX2hhbmRsZXI6CisgICAgICAgICAgICAgICAgc2Vs
Zi5sb2dfY2xpX2hhbmRsZXIuc2V0X3doZW4oInNlc3Npb25maW5pc2giKQogICAgICAgICAgICAg
aWYgc2VsZi5sb2dfZmlsZV9oYW5kbGVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHdp
dGggY2xvc2luZyhzZWxmLmxvZ19maWxlX2hhbmRsZXIpOgorICAgICAgICAgICAgICAgIHRyeToK
ICAgICAgICAgICAgICAgICAgICAgd2l0aCBjYXRjaGluZ19sb2dzKAogICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5sb2dfZmlsZV9oYW5kbGVyLCBsZXZlbD1zZWxmLmxvZ19maWxlX2xldmVs
CiAgICAgICAgICAgICAgICAgICAgICk6Ci0gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCAg
IyBydW4gYWxsIHRoZSB0ZXN0cworICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQKKyAgICAg
ICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICAgICAjIENsb3NlIHRoZSBGaWxl
SGFuZGxlciBleHBsaWNpdGx5LgorICAgICAgICAgICAgICAgICAgICAjIChsb2dnaW5nLnNodXRk
b3duIG1pZ2h0IGhhdmUgbG9zdCB0aGUgd2Vha3JlZj8hKQorICAgICAgICAgICAgICAgICAgICBz
ZWxmLmxvZ19maWxlX2hhbmRsZXIuY2xvc2UoKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICB5aWVsZCAgIyBydW4gYWxsIHRoZSB0ZXN0cworICAgICAgICAgICAgICAgIHlpZWxk
CiAKLSAgICBkZWYgX3NldHVwX2NsaV9sb2dnaW5nKHNlbGYpOgotICAgICAgICAiIiJTZXRzIHVw
IHRoZSBoYW5kbGVyIGFuZCBsb2dnZXIgZm9yIHRoZSBMaXZlIExvZ3MgZmVhdHVyZSwgaWYgZW5h
YmxlZC4KKyAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUsIHRyeWZpcnN0PVRy
dWUpCisgICAgZGVmIHB5dGVzdF9zZXNzaW9uc3RhcnQoc2VsZik6CisgICAgICAgIHdpdGggc2Vs
Zi5saXZlX2xvZ3NfY29udGV4dCgpOgorICAgICAgICAgICAgaWYgc2VsZi5sb2dfY2xpX2hhbmRs
ZXI6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dfY2xpX2hhbmRsZXIuc2V0X3doZW4oInNlc3Np
b25zdGFydCIpCisgICAgICAgICAgICBpZiBzZWxmLmxvZ19maWxlX2hhbmRsZXIgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICAgICAgd2l0aCBjYXRjaGluZ19sb2dzKHNlbGYubG9nX2ZpbGVfaGFu
ZGxlciwgbGV2ZWw9c2VsZi5sb2dfZmlsZV9sZXZlbCk6CisgICAgICAgICAgICAgICAgICAgIHlp
ZWxkCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHlpZWxkCiAKLSAgICAgICAg
VGhpcyBtdXN0IGJlIGRvbmUgcmlnaHQgYmVmb3JlIHN0YXJ0aW5nIHRoZSBsb29wIHNvIHdlIGNh
biBhY2Nlc3MgdGhlIHRlcm1pbmFsIHJlcG9ydGVyIHBsdWdpbi4KLSAgICAgICAgIiIiCi0gICAg
ICAgIHRlcm1pbmFsX3JlcG9ydGVyID0gc2VsZi5fY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3Bs
dWdpbigidGVybWluYWxyZXBvcnRlciIpCi0gICAgICAgIGlmIHNlbGYuX2xvZ19jbGlfZW5hYmxl
ZCgpIGFuZCB0ZXJtaW5hbF9yZXBvcnRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGNhcHR1
cmVfbWFuYWdlciA9IHNlbGYuX2NvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldF9wbHVnaW4oImNhcHR1
cmVtYW5hZ2VyIikKLSAgICAgICAgICAgIGxvZ19jbGlfaGFuZGxlciA9IF9MaXZlTG9nZ2luZ1N0
cmVhbUhhbmRsZXIoCi0gICAgICAgICAgICAgICAgdGVybWluYWxfcmVwb3J0ZXIsIGNhcHR1cmVf
bWFuYWdlcgotICAgICAgICAgICAgKQotICAgICAgICAgICAgbG9nX2NsaV9mb3JtYXQgPSBnZXRf
b3B0aW9uX2luaSgKLSAgICAgICAgICAgICAgICBzZWxmLl9jb25maWcsICJsb2dfY2xpX2Zvcm1h
dCIsICJsb2dfZm9ybWF0IgotICAgICAgICAgICAgKQotICAgICAgICAgICAgbG9nX2NsaV9kYXRl
X2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKAotICAgICAgICAgICAgICAgIHNlbGYuX2NvbmZpZywg
ImxvZ19jbGlfZGF0ZV9mb3JtYXQiLCAibG9nX2RhdGVfZm9ybWF0IgotICAgICAgICAgICAgKQot
ICAgICAgICAgICAgaWYgKAotICAgICAgICAgICAgICAgIHNlbGYuX2NvbmZpZy5vcHRpb24uY29s
b3IgIT0gIm5vIgotICAgICAgICAgICAgICAgIGFuZCBDb2xvcmVkTGV2ZWxGb3JtYXR0ZXIuTEVW
RUxOQU1FX0ZNVF9SRUdFWC5zZWFyY2gobG9nX2NsaV9mb3JtYXQpCi0gICAgICAgICAgICApOgot
ICAgICAgICAgICAgICAgIGxvZ19jbGlfZm9ybWF0dGVyID0gQ29sb3JlZExldmVsRm9ybWF0dGVy
KAotICAgICAgICAgICAgICAgICAgICBjcmVhdGVfdGVybWluYWxfd3JpdGVyKHNlbGYuX2NvbmZp
ZyksCi0gICAgICAgICAgICAgICAgICAgIGxvZ19jbGlfZm9ybWF0LAotICAgICAgICAgICAgICAg
ICAgICBkYXRlZm10PWxvZ19jbGlfZGF0ZV9mb3JtYXQsCi0gICAgICAgICAgICAgICAgKQorICAg
IEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X3J1bnRl
c3Rsb29wKHNlbGYsIHNlc3Npb24pOgorICAgICAgICAiIiJSdW5zIGFsbCBjb2xsZWN0ZWQgdGVz
dCBpdGVtcy4iIiIKKworICAgICAgICBpZiBzZXNzaW9uLmNvbmZpZy5vcHRpb24uY29sbGVjdG9u
bHk6CisgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaWYg
c2VsZi5fbG9nX2NsaV9lbmFibGVkKCkgYW5kIHNlbGYuX2NvbmZpZy5nZXRvcHRpb24oInZlcmJv
c2UiKSA8IDE6CisgICAgICAgICAgICAjIHNldHRpbmcgdmVyYm9zZSBmbGFnIGlzIG5lZWRlZCB0
byBhdm9pZCBtZXNzeSB0ZXN0IHByb2dyZXNzIG91dHB1dAorICAgICAgICAgICAgc2VsZi5fY29u
ZmlnLm9wdGlvbi52ZXJib3NlID0gMQorCisgICAgICAgIHdpdGggc2VsZi5saXZlX2xvZ3NfY29u
dGV4dCgpOgorICAgICAgICAgICAgaWYgc2VsZi5sb2dfZmlsZV9oYW5kbGVyIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgIHdpdGggY2F0Y2hpbmdfbG9ncyhzZWxmLmxvZ19maWxlX2hhbmRs
ZXIsIGxldmVsPXNlbGYubG9nX2ZpbGVfbGV2ZWwpOgorICAgICAgICAgICAgICAgICAgICB5aWVs
ZCAgIyBydW4gYWxsIHRoZSB0ZXN0cwogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICBsb2dfY2xpX2Zvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKAotICAgICAgICAgICAgICAg
ICAgICBsb2dfY2xpX2Zvcm1hdCwgZGF0ZWZtdD1sb2dfY2xpX2RhdGVfZm9ybWF0Ci0gICAgICAg
ICAgICAgICAgKQotICAgICAgICAgICAgbG9nX2NsaV9sZXZlbCA9IGdldF9hY3R1YWxfbG9nX2xl
dmVsKAotICAgICAgICAgICAgICAgIHNlbGYuX2NvbmZpZywgImxvZ19jbGlfbGV2ZWwiLCAibG9n
X2xldmVsIgotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5sb2dfY2xpX2hhbmRsZXIg
PSBsb2dfY2xpX2hhbmRsZXIKLSAgICAgICAgICAgIHNlbGYubGl2ZV9sb2dzX2NvbnRleHQgPSBj
YXRjaGluZ19sb2dzKAotICAgICAgICAgICAgICAgIGxvZ19jbGlfaGFuZGxlciwgZm9ybWF0dGVy
PWxvZ19jbGlfZm9ybWF0dGVyLCBsZXZlbD1sb2dfY2xpX2xldmVsCi0gICAgICAgICAgICApCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmxpdmVfbG9nc19jb250ZXh0ID0gX2R1bW15
X2NvbnRleHRfbWFuYWdlcigpCisgICAgICAgICAgICAgICAgeWllbGQgICMgcnVuIGFsbCB0aGUg
dGVzdHMKIAogCiBjbGFzcyBfTGl2ZUxvZ2dpbmdTdHJlYW1IYW5kbGVyKGxvZ2dpbmcuU3RyZWFt
SGFuZGxlcik6CkBAIC01NTYsOSArNjg5LDEyIEBAIGNsYXNzIF9MaXZlTG9nZ2luZ1N0cmVhbUhh
bmRsZXIobG9nZ2luZy5TdHJlYW1IYW5kbGVyKToKICAgICAgICAgICAgIHNlbGYuX3Rlc3Rfb3V0
Y29tZV93cml0dGVuID0gRmFsc2UKIAogICAgIGRlZiBlbWl0KHNlbGYsIHJlY29yZCk6Ci0gICAg
ICAgIGlmIHNlbGYuY2FwdHVyZV9tYW5hZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2Vs
Zi5jYXB0dXJlX21hbmFnZXIuc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCi0gICAgICAgIHRyeToK
KyAgICAgICAgY3R4X21hbmFnZXIgPSAoCisgICAgICAgICAgICBzZWxmLmNhcHR1cmVfbWFuYWdl
ci5nbG9iYWxfYW5kX2ZpeHR1cmVfZGlzYWJsZWQoKQorICAgICAgICAgICAgaWYgc2VsZi5jYXB0
dXJlX21hbmFnZXIKKyAgICAgICAgICAgIGVsc2UgZHVtbXlfY29udGV4dF9tYW5hZ2VyKCkKKyAg
ICAgICAgKQorICAgICAgICB3aXRoIGN0eF9tYW5hZ2VyOgogICAgICAgICAgICAgaWYgbm90IHNl
bGYuX2ZpcnN0X3JlY29yZF9lbWl0dGVkOgogICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtLndy
aXRlKCJcbiIpCiAgICAgICAgICAgICAgICAgc2VsZi5fZmlyc3RfcmVjb3JkX2VtaXR0ZWQgPSBU
cnVlCkBAIC01NzAsNiArNzA2LDMgQEAgY2xhc3MgX0xpdmVMb2dnaW5nU3RyZWFtSGFuZGxlcihs
b2dnaW5nLlN0cmVhbUhhbmRsZXIpOgogICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtLnNlY3Rp
b24oImxpdmUgbG9nICIgKyBzZWxmLl93aGVuLCBzZXA9Ii0iLCBib2xkPVRydWUpCiAgICAgICAg
ICAgICAgICAgc2VsZi5fc2VjdGlvbl9uYW1lX3Nob3duID0gVHJ1ZQogICAgICAgICAgICAgbG9n
Z2luZy5TdHJlYW1IYW5kbGVyLmVtaXQoc2VsZiwgcmVjb3JkKQotICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgaWYgc2VsZi5jYXB0dXJlX21hbmFnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5jYXB0dXJlX21hbmFnZXIucmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21haW4ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9tYWluLnB5CmluZGV4IDIzNTYyMzU4ZDdjM2EwMzQxMjAwMGU0YmRjYTA4MzJi
ZmI3MGU5NDcuLmE5ZDMxMGNiNjJkOWYyNTM3ODRmMTkzMmE5MjdhOTk5NmJmZTQ2NjggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21haW4ucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3QvbWFpbi5weQpAQCAtMSwyMyArMSwzMCBAQAorIyAtKi0gY29kaW5nOiB1dGYt
OCAtKi0KICIiIiBjb3JlIGltcGxlbWVudGF0aW9uIG9mIHRlc3RpbmcgcHJvY2VzczogaW5pdCwg
c2Vzc2lvbiwgcnVudGVzdCBsb29wLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBjb250ZXh0bGliCitp
bXBvcnQgZm5tYXRjaAogaW1wb3J0IGZ1bmN0b29scwogaW1wb3J0IG9zCiBpbXBvcnQgcGtndXRp
bAotaW1wb3J0IHNpeAogaW1wb3J0IHN5cworaW1wb3J0IHdhcm5pbmdzCiAKLWltcG9ydCBfcHl0
ZXN0Ci1mcm9tIF9weXRlc3QgaW1wb3J0IG5vZGVzCi1pbXBvcnQgX3B5dGVzdC5fY29kZQoraW1w
b3J0IGF0dHIKIGltcG9ydCBweQoraW1wb3J0IHNpeAogCi1mcm9tIF9weXRlc3QuY29uZmlnIGlt
cG9ydCBkaXJlY3RvcnlfYXJnLCBVc2FnZUVycm9yLCBob29raW1wbAoraW1wb3J0IF9weXRlc3Qu
X2NvZGUKK2Zyb20gX3B5dGVzdCBpbXBvcnQgbm9kZXMKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1w
b3J0IGRpcmVjdG9yeV9hcmcKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGhvb2tpbXBsCitm
cm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBVc2FnZUVycm9yCitmcm9tIF9weXRlc3QuZGVwcmVj
YXRlZCBpbXBvcnQgUFlURVNUX0NPTkZJR19HTE9CQUwKIGZyb20gX3B5dGVzdC5vdXRjb21lcyBp
bXBvcnQgZXhpdAogZnJvbSBfcHl0ZXN0LnJ1bm5lciBpbXBvcnQgY29sbGVjdF9vbmVfbm9kZQog
Ci0KICMgZXhpdGNvZGVzIGZvciB0aGUgY29tbWFuZCBsaW5lCiBFWElUX09LID0gMAogRVhJVF9U
RVNUU0ZBSUxFRCA9IDEKQEAgLTQxLDExICs0OCw2IEBAIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBh
cnNlcik6CiAgICAgICAgIHR5cGU9ImFyZ3MiLAogICAgICAgICBkZWZhdWx0PVtdLAogICAgICkK
LSAgICAjIHBhcnNlci5hZGRpbmkoImRpcnBhdHRlcm5zIiwKLSAgICAjICAgICJwYXR0ZXJucyBz
cGVjaWZ5aW5nIHBvc3NpYmxlIGxvY2F0aW9ucyBvZiB0ZXN0IGZpbGVzIiwKLSAgICAjICAgIHR5
cGU9ImxpbmVsaXN0IiwgZGVmYXVsdD1bIioqL3Rlc3RfKi50eHQiLAotICAgICMgICAgICAgICAg
ICAiKiovdGVzdF8qLnB5IiwgIioqLypfdGVzdC5weSJdCi0gICAgIyApCiAgICAgZ3JvdXAgPSBw
YXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiLCAicnVubmluZyBhbmQgc2VsZWN0aW9uIG9wdGlvbnMi
KQogICAgIGdyb3VwLl9hZGRvcHRpb24oCiAgICAgICAgICIteCIsCkBAIC02NSw5ICs2NywxMCBA
QCBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgogICAgICAgICBoZWxwPSJleGl0IGFmdGVy
IGZpcnN0IG51bSBmYWlsdXJlcyBvciBlcnJvcnMuIiwKICAgICApCiAgICAgZ3JvdXAuX2FkZG9w
dGlvbigKKyAgICAgICAgIi0tc3RyaWN0LW1hcmtlcnMiLAogICAgICAgICAiLS1zdHJpY3QiLAog
ICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICBoZWxwPSJtYXJrcyBub3QgcmVn
aXN0ZXJlZCBpbiBjb25maWd1cmF0aW9uIGZpbGUgcmFpc2UgZXJyb3JzLiIsCisgICAgICAgIGhl
bHA9Im1hcmtlcnMgbm90IHJlZ2lzdGVyZWQgaW4gdGhlIGBtYXJrZXJzYCBzZWN0aW9uIG9mIHRo
ZSBjb25maWd1cmF0aW9uIGZpbGUgcmFpc2UgZXJyb3JzLiIsCiAgICAgKQogICAgIGdyb3VwLl9h
ZGRvcHRpb24oCiAgICAgICAgICItYyIsCkBAIC0xMTEsNiArMTE0LDEyIEBAIGRlZiBweXRlc3Rf
YWRkb3B0aW9uKHBhcnNlcik6CiAgICAgICAgIG1ldGF2YXI9InBhdGgiLAogICAgICAgICBoZWxw
PSJpZ25vcmUgcGF0aCBkdXJpbmcgY29sbGVjdGlvbiAobXVsdGktYWxsb3dlZCkuIiwKICAgICAp
CisgICAgZ3JvdXAuYWRkb3B0aW9uKAorICAgICAgICAiLS1pZ25vcmUtZ2xvYiIsCisgICAgICAg
IGFjdGlvbj0iYXBwZW5kIiwKKyAgICAgICAgbWV0YXZhcj0icGF0aCIsCisgICAgICAgIGhlbHA9
Imlnbm9yZSBwYXRoIHBhdHRlcm4gZHVyaW5nIGNvbGxlY3Rpb24gKG11bHRpLWFsbG93ZWQpLiIs
CisgICAgKQogICAgIGdyb3VwLmFkZG9wdGlvbigKICAgICAgICAgIi0tZGVzZWxlY3QiLAogICAg
ICAgICBhY3Rpb249ImFwcGVuZCIsCkBAIC0xNTYsMTIgKzE2NSwzMSBAQCBkZWYgcHl0ZXN0X2Fk
ZG9wdGlvbihwYXJzZXIpOgogICAgICAgICBkZXN0PSJiYXNldGVtcCIsCiAgICAgICAgIGRlZmF1
bHQ9Tm9uZSwKICAgICAgICAgbWV0YXZhcj0iZGlyIiwKLSAgICAgICAgaGVscD0iYmFzZSB0ZW1w
b3JhcnkgZGlyZWN0b3J5IGZvciB0aGlzIHRlc3QgcnVuLiIsCisgICAgICAgIGhlbHA9KAorICAg
ICAgICAgICAgImJhc2UgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgdGhpcyB0ZXN0IHJ1bi4iCisg
ICAgICAgICAgICAiKHdhcm5pbmc6IHRoaXMgZGlyZWN0b3J5IGlzIHJlbW92ZWQgaWYgaXQgZXhp
c3RzKSIKKyAgICAgICAgKSwKICAgICApCiAKIAorY2xhc3MgX0NvbmZpZ0RlcHJlY2F0ZWQob2Jq
ZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKKyAgICAgICAgc2VsZi5fX2Rp
Y3RfX1siX2NvbmZpZyJdID0gY29uZmlnCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgYXR0
cik6CisgICAgICAgIHdhcm5pbmdzLndhcm4oUFlURVNUX0NPTkZJR19HTE9CQUwsIHN0YWNrbGV2
ZWw9MikKKyAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5fY29uZmlnLCBhdHRyKQorCisgICAg
ZGVmIF9fc2V0YXR0cl9fKHNlbGYsIGF0dHIsIHZhbCk6CisgICAgICAgIHdhcm5pbmdzLndhcm4o
UFlURVNUX0NPTkZJR19HTE9CQUwsIHN0YWNrbGV2ZWw9MikKKyAgICAgICAgcmV0dXJuIHNldGF0
dHIoc2VsZi5fY29uZmlnLCBhdHRyLCB2YWwpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6Cisg
ICAgICAgIHJldHVybiAie30oeyFyfSkiLmZvcm1hdCh0eXBlKHNlbGYpLl9fbmFtZV9fLCBzZWxm
Ll9jb25maWcpCisKKwogZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICBfX2ltcG9y
dF9fKCJweXRlc3QiKS5jb25maWcgPSBjb25maWcgICMgY29tcGF0aWJpbGl0eQorICAgIF9faW1w
b3J0X18oInB5dGVzdCIpLmNvbmZpZyA9IF9Db25maWdEZXByZWNhdGVkKGNvbmZpZykgICMgY29t
cGF0aWJpbGl0eQogCiAKIGRlZiB3cmFwX3Nlc3Npb24oY29uZmlnLCBkb2l0KToKQEAgLTE3Nywy
MSArMjA1LDI4IEBAIGRlZiB3cmFwX3Nlc3Npb24oY29uZmlnLCBkb2l0KToKICAgICAgICAgICAg
IGluaXRzdGF0ZSA9IDIKICAgICAgICAgICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9IGRvaXQoY29u
ZmlnLCBzZXNzaW9uKSBvciAwCiAgICAgICAgIGV4Y2VwdCBVc2FnZUVycm9yOgorICAgICAgICAg
ICAgc2Vzc2lvbi5leGl0c3RhdHVzID0gRVhJVF9VU0FHRUVSUk9SCiAgICAgICAgICAgICByYWlz
ZQogICAgICAgICBleGNlcHQgRmFpbGVkOgogICAgICAgICAgICAgc2Vzc2lvbi5leGl0c3RhdHVz
ID0gRVhJVF9URVNUU0ZBSUxFRAotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0g
ICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKLSAgICAg
ICAgICAgIGlmIGluaXRzdGF0ZSA8IDIgYW5kIGlzaW5zdGFuY2UoZXhjaW5mby52YWx1ZSwgZXhp
dC5FeGNlcHRpb24pOgotICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoInt9OiB7fVxu
Ii5mb3JtYXQoZXhjaW5mby50eXBlbmFtZSwgZXhjaW5mby52YWx1ZS5tc2cpKQorICAgICAgICBl
eGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBleGl0LkV4Y2VwdGlvbik6CisgICAgICAgICAgICBl
eGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCisgICAg
ICAgICAgICBleGl0c3RhdHVzID0gRVhJVF9JTlRFUlJVUFRFRAorICAgICAgICAgICAgaWYgaXNp
bnN0YW5jZShleGNpbmZvLnZhbHVlLCBleGl0LkV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAg
aWYgZXhjaW5mby52YWx1ZS5yZXR1cm5jb2RlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAg
ICAgICBleGl0c3RhdHVzID0gZXhjaW5mby52YWx1ZS5yZXR1cm5jb2RlCisgICAgICAgICAgICAg
ICAgaWYgaW5pdHN0YXRlIDwgMjoKKyAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0
ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICJ7fToge31cbiIuZm9ybWF0KGV4Y2luZm8udHlw
ZW5hbWUsIGV4Y2luZm8udmFsdWUubXNnKQorICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgICBjb25maWcuaG9vay5weXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KGV4Y2luZm89ZXhjaW5m
bykKLSAgICAgICAgICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9IEVYSVRfSU5URVJSVVBURUQKKyAg
ICAgICAgICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9IGV4aXRzdGF0dXMKICAgICAgICAgZXhjZXB0
OiAgIyBub3FhCi0gICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25J
bmZvKCkKKyAgICAgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8u
ZnJvbV9jdXJyZW50KCkKICAgICAgICAgICAgIGNvbmZpZy5ub3RpZnlfZXhjZXB0aW9uKGV4Y2lu
Zm8sIGNvbmZpZy5vcHRpb24pCiAgICAgICAgICAgICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElU
X0lOVEVSTkFMRVJST1IKICAgICAgICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShTeXN0
ZW1FeGl0KToKLSAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJtYWlubG9vcDogY2F1
Z2h0IFNwdXJpb3VzIFN5c3RlbUV4aXQhXG4iKQorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoIm1haW5sb29wOiBjYXVnaHQgdW5leHBlY3RlZCBTeXN0ZW1FeGl0IVxuIikKIAogICAg
IGZpbmFsbHk6CiAgICAgICAgIGV4Y2luZm8gPSBOb25lICAjIEV4cGxpY2l0bHkgYnJlYWsgcmVm
ZXJlbmNlIGN5Y2xlLgpAQCAtMjY4LDE4ICszMDMsMjMgQEAgZGVmIHB5dGVzdF9pZ25vcmVfY29s
bGVjdChwYXRoLCBjb25maWcpOgogICAgIGlmIHB5LnBhdGgubG9jYWwocGF0aCkgaW4gaWdub3Jl
X3BhdGhzOgogICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgYWxsb3dfaW5fdmVudiA9IGNvbmZp
Zy5nZXRvcHRpb24oImNvbGxlY3RfaW5fdmlydHVhbGVudiIpCi0gICAgaWYgX2luX3ZlbnYocGF0
aCkgYW5kIG5vdCBhbGxvd19pbl92ZW52OgorICAgIGlnbm9yZV9nbG9icyA9IGNvbmZpZy5fZ2V0
Y29uZnRlc3RfcGF0aGxpc3QoCisgICAgICAgICJjb2xsZWN0X2lnbm9yZV9nbG9iIiwgcGF0aD1w
YXRoLmRpcnBhdGgoKQorICAgICkKKyAgICBpZ25vcmVfZ2xvYnMgPSBpZ25vcmVfZ2xvYnMgb3Ig
W10KKyAgICBleGNsdWRlZ2xvYm9wdCA9IGNvbmZpZy5nZXRvcHRpb24oImlnbm9yZV9nbG9iIikK
KyAgICBpZiBleGNsdWRlZ2xvYm9wdDoKKyAgICAgICAgaWdub3JlX2dsb2JzLmV4dGVuZChbcHku
cGF0aC5sb2NhbCh4KSBmb3IgeCBpbiBleGNsdWRlZ2xvYm9wdF0pCisKKyAgICBpZiBhbnkoCisg
ICAgICAgIGZubWF0Y2guZm5tYXRjaChzaXgudGV4dF90eXBlKHBhdGgpLCBzaXgudGV4dF90eXBl
KGdsb2IpKQorICAgICAgICBmb3IgZ2xvYiBpbiBpZ25vcmVfZ2xvYnMKKyAgICApOgogICAgICAg
ICByZXR1cm4gVHJ1ZQogCi0gICAgIyBTa2lwIGR1cGxpY2F0ZSBwYXRocy4KLSAgICBrZWVwZHVw
bGljYXRlcyA9IGNvbmZpZy5nZXRvcHRpb24oImtlZXBkdXBsaWNhdGVzIikKLSAgICBkdXBsaWNh
dGVfcGF0aHMgPSBjb25maWcucGx1Z2lubWFuYWdlci5fZHVwbGljYXRlcGF0aHMKLSAgICBpZiBu
b3Qga2VlcGR1cGxpY2F0ZXM6Ci0gICAgICAgIGlmIHBhdGggaW4gZHVwbGljYXRlX3BhdGhzOgot
ICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGR1cGxp
Y2F0ZV9wYXRocy5hZGQocGF0aCkKKyAgICBhbGxvd19pbl92ZW52ID0gY29uZmlnLmdldG9wdGlv
bigiY29sbGVjdF9pbl92aXJ0dWFsZW52IikKKyAgICBpZiBub3QgYWxsb3dfaW5fdmVudiBhbmQg
X2luX3ZlbnYocGF0aCk6CisgICAgICAgIHJldHVybiBUcnVlCiAKICAgICByZXR1cm4gRmFsc2UK
IApAQCAtMzQzLDcgKzM4Myw2IEBAIGRlZiBfcGF0Y2hlZF9maW5kX21vZHVsZSgpOgogCiAKIGNs
YXNzIEZTSG9va1Byb3h5KG9iamVjdCk6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgZnNwYXRo
LCBwbSwgcmVtb3ZlX21vZHMpOgogICAgICAgICBzZWxmLmZzcGF0aCA9IGZzcGF0aAogICAgICAg
ICBzZWxmLnBtID0gcG0KQEAgLTM2MSw2ICs0MDAsNyBAQCBjbGFzcyBOb01hdGNoKEV4Y2VwdGlv
bik6CiAKIGNsYXNzIEludGVycnVwdGVkKEtleWJvYXJkSW50ZXJydXB0KToKICAgICAiIiIgc2ln
bmFscyBhbiBpbnRlcnJ1cHRlZCB0ZXN0IHJ1bi4gIiIiCisKICAgICBfX21vZHVsZV9fID0gImJ1
aWx0aW5zIiAgIyBmb3IgcHkzCiAKIApAQCAtMzY4LDYgKzQwOCwxNiBAQCBjbGFzcyBGYWlsZWQo
RXhjZXB0aW9uKToKICAgICAiIiIgc2lnbmFscyBhIHN0b3AgYXMgZmFpbGVkIHRlc3QgcnVuLiAi
IiIKIAogCitAYXR0ci5zCitjbGFzcyBfYmVzdHJlbHBhdGhfY2FjaGUoZGljdCk6CisgICAgcGF0
aCA9IGF0dHIuaWIoKQorCisgICAgZGVmIF9fbWlzc2luZ19fKHNlbGYsIHBhdGgpOgorICAgICAg
ICByID0gc2VsZi5wYXRoLmJlc3RyZWxwYXRoKHBhdGgpCisgICAgICAgIHNlbGZbcGF0aF0gPSBy
CisgICAgICAgIHJldHVybiByCisKKwogY2xhc3MgU2Vzc2lvbihub2Rlcy5GU0NvbGxlY3Rvcik6
CiAgICAgSW50ZXJydXB0ZWQgPSBJbnRlcnJ1cHRlZAogICAgIEZhaWxlZCA9IEZhaWxlZApAQCAt
MzgyLDEwICs0MzIsMjkgQEAgY2xhc3MgU2Vzc2lvbihub2Rlcy5GU0NvbGxlY3Rvcik6CiAgICAg
ICAgIHNlbGYuc2hvdWxkZmFpbCA9IEZhbHNlCiAgICAgICAgIHNlbGYudHJhY2UgPSBjb25maWcu
dHJhY2Uucm9vdC5nZXQoImNvbGxlY3Rpb24iKQogICAgICAgICBzZWxmLl9ub3JlY3Vyc2VwYXR0
ZXJucyA9IGNvbmZpZy5nZXRpbmkoIm5vcmVjdXJzZWRpcnMiKQotICAgICAgICBzZWxmLnN0YXJ0
ZGlyID0gcHkucGF0aC5sb2NhbCgpCisgICAgICAgIHNlbGYuc3RhcnRkaXIgPSBjb25maWcuaW52
b2NhdGlvbl9kaXIKKyAgICAgICAgc2VsZi5faW5pdGlhbHBhdGhzID0gZnJvemVuc2V0KCkKKyAg
ICAgICAgIyBLZWVwIHRyYWNrIG9mIGFueSBjb2xsZWN0ZWQgbm9kZXMgaW4gaGVyZSwgc28gd2Ug
ZG9uJ3QgZHVwbGljYXRlIGZpeHR1cmVzCisgICAgICAgIHNlbGYuX25vZGVfY2FjaGUgPSB7fQor
ICAgICAgICBzZWxmLl9iZXN0cmVscGF0aGNhY2hlID0gX2Jlc3RyZWxwYXRoX2NhY2hlKGNvbmZp
Zy5yb290ZGlyKQorICAgICAgICAjIERpcm5hbWVzIG9mIHBrZ3Mgd2l0aCBkdW5kZXItaW5pdCBm
aWxlcy4KKyAgICAgICAgc2VsZi5fcGtnX3Jvb3RzID0ge30KIAogICAgICAgICBzZWxmLmNvbmZp
Zy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHNlbGYsIG5hbWU9InNlc3Npb24iKQogCisgICAgZGVm
IF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjwlcyAlcyBleGl0c3RhdHVzPSVyIHRl
c3RzZmFpbGVkPSVkIHRlc3RzY29sbGVjdGVkPSVkPiIgJSAoCisgICAgICAgICAgICBzZWxmLl9f
Y2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgIHNlbGYubmFtZSwKKyAgICAgICAgICAgIGdl
dGF0dHIoc2VsZiwgImV4aXRzdGF0dXMiLCAiPFVOU0VUPiIpLAorICAgICAgICAgICAgc2VsZi50
ZXN0c2ZhaWxlZCwKKyAgICAgICAgICAgIHNlbGYudGVzdHNjb2xsZWN0ZWQsCisgICAgICAgICkK
KworICAgIGRlZiBfbm9kZV9sb2NhdGlvbl90b19yZWxwYXRoKHNlbGYsIG5vZGVfcGF0aCk6Cisg
ICAgICAgICMgYmVzdHJlbHBhdGggaXMgYSBxdWl0ZSBzbG93IGZ1bmN0aW9uCisgICAgICAgIHJl
dHVybiBzZWxmLl9iZXN0cmVscGF0aGNhY2hlW25vZGVfcGF0aF0KKwogICAgIEBob29raW1wbCh0
cnlmaXJzdD1UcnVlKQogICAgIGRlZiBweXRlc3RfY29sbGVjdHN0YXJ0KHNlbGYpOgogICAgICAg
ICBpZiBzZWxmLnNob3VsZGZhaWw6CkBAIC00MzksMTMgKzUwOCwxNCBAQCBjbGFzcyBTZXNzaW9u
KG5vZGVzLkZTQ29sbGVjdG9yKToKICAgICAgICAgc2VsZi50cmFjZSgicGVyZm9ybV9jb2xsZWN0
Iiwgc2VsZiwgYXJncykKICAgICAgICAgc2VsZi50cmFjZS5yb290LmluZGVudCArPSAxCiAgICAg
ICAgIHNlbGYuX25vdGZvdW5kID0gW10KLSAgICAgICAgc2VsZi5faW5pdGlhbHBhdGhzID0gc2V0
KCkKKyAgICAgICAgaW5pdGlhbHBhdGhzID0gW10KICAgICAgICAgc2VsZi5faW5pdGlhbHBhcnRz
ID0gW10KICAgICAgICAgc2VsZi5pdGVtcyA9IGl0ZW1zID0gW10KICAgICAgICAgZm9yIGFyZyBp
biBhcmdzOgogICAgICAgICAgICAgcGFydHMgPSBzZWxmLl9wYXJzZWFyZyhhcmcpCiAgICAgICAg
ICAgICBzZWxmLl9pbml0aWFscGFydHMuYXBwZW5kKHBhcnRzKQotICAgICAgICAgICAgc2VsZi5f
aW5pdGlhbHBhdGhzLmFkZChwYXJ0c1swXSkKKyAgICAgICAgICAgIGluaXRpYWxwYXRocy5hcHBl
bmQocGFydHNbMF0pCisgICAgICAgIHNlbGYuX2luaXRpYWxwYXRocyA9IGZyb3plbnNldChpbml0
aWFscGF0aHMpCiAgICAgICAgIHJlcCA9IGNvbGxlY3Rfb25lX25vZGUoc2VsZikKICAgICAgICAg
c2VsZi5paG9vay5weXRlc3RfY29sbGVjdHJlcG9ydChyZXBvcnQ9cmVwKQogICAgICAgICBzZWxm
LnRyYWNlLnJvb3QuaW5kZW50IC09IDEKQEAgLTQ2NSw4ICs1MzUsOCBAQCBjbGFzcyBTZXNzaW9u
KG5vZGVzLkZTQ29sbGVjdG9yKToKICAgICAgICAgICAgIHJldHVybiBpdGVtcwogCiAgICAgZGVm
IGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgIGZvciBwYXJ0cyBpbiBzZWxmLl9pbml0aWFscGFydHM6
Ci0gICAgICAgICAgICBhcmcgPSAiOjoiLmpvaW4obWFwKHN0ciwgcGFydHMpKQorICAgICAgICBm
b3IgaW5pdGlhbHBhcnQgaW4gc2VsZi5faW5pdGlhbHBhcnRzOgorICAgICAgICAgICAgYXJnID0g
Ijo6Ii5qb2luKG1hcChzdHIsIGluaXRpYWxwYXJ0KSkKICAgICAgICAgICAgIHNlbGYudHJhY2Uo
InByb2Nlc3NpbmcgYXJndW1lbnQiLCBhcmcpCiAgICAgICAgICAgICBzZWxmLnRyYWNlLnJvb3Qu
aW5kZW50ICs9IDEKICAgICAgICAgICAgIHRyeToKQEAgLTQ4MCw0MyArNTUwLDEzOCBAQCBjbGFz
cyBTZXNzaW9uKG5vZGVzLkZTQ29sbGVjdG9yKToKICAgICAgICAgICAgIHNlbGYudHJhY2Uucm9v
dC5pbmRlbnQgLT0gMQogCiAgICAgZGVmIF9jb2xsZWN0KHNlbGYsIGFyZyk6CisgICAgICAgIGZy
b20gX3B5dGVzdC5weXRob24gaW1wb3J0IFBhY2thZ2UKKwogICAgICAgICBuYW1lcyA9IHNlbGYu
X3BhcnNlYXJnKGFyZykKLSAgICAgICAgcGF0aCA9IG5hbWVzLnBvcCgwKQotICAgICAgICBpZiBw
YXRoLmNoZWNrKGRpcj0xKToKKyAgICAgICAgYXJncGF0aCA9IG5hbWVzLnBvcCgwKQorCisgICAg
ICAgICMgU3RhcnQgd2l0aCBhIFNlc3Npb24gcm9vdCwgYW5kIGRlbHZlIHRvIGFyZ3BhdGggaXRl
bSAoZGlyIG9yIGZpbGUpCisgICAgICAgICMgYW5kIHN0YWNrIGFsbCBQYWNrYWdlcyBmb3VuZCBv
biB0aGUgd2F5LgorICAgICAgICAjIE5vIHBvaW50IGluIGZpbmRpbmcgcGFja2FnZXMgd2hlbiBj
b2xsZWN0aW5nIGRvY3Rlc3RzCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbmZpZy5nZXRvcHRpb24o
ImRvY3Rlc3Rtb2R1bGVzIiwgRmFsc2UpOgorICAgICAgICAgICAgcG0gPSBzZWxmLmNvbmZpZy5w
bHVnaW5tYW5hZ2VyCisgICAgICAgICAgICBmb3IgcGFyZW50IGluIHJldmVyc2VkKGFyZ3BhdGgu
cGFydHMoKSk6CisgICAgICAgICAgICAgICAgaWYgcG0uX2NvbmZjdXRkaXIgYW5kIHBtLl9jb25m
Y3V0ZGlyLnJlbHRvKHBhcmVudCk6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAg
ICAgICAgICAgICBpZiBwYXJlbnQuaXNkaXIoKToKKyAgICAgICAgICAgICAgICAgICAgcGtnaW5p
dCA9IHBhcmVudC5qb2luKCJfX2luaXRfXy5weSIpCisgICAgICAgICAgICAgICAgICAgIGlmIHBr
Z2luaXQuaXNmaWxlKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBwa2dpbml0IG5vdCBp
biBzZWxmLl9ub2RlX2NhY2hlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbCA9IHNl
bGYuX2NvbGxlY3RmaWxlKHBrZ2luaXQsIGhhbmRsZV9kdXBlcz1GYWxzZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiBjb2w6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UoY29sWzBdLCBQYWNrYWdlKToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3BrZ19yb290c1twYXJlbnRdID0gY29sWzBdCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgYWx3YXlzIHN0b3JlIGEgbGlzdCBpbiB0aGUgY2FjaGUs
IG1hdGNobm9kZXMgZXhwZWN0cyBpdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9ub2RlX2NhY2hlW2NvbFswXS5mc3BhdGhdID0gW2NvbFswXV0KKworICAgICAgICAjIElm
IGl0J3MgYSBkaXJlY3RvcnkgYXJndW1lbnQsIHJlY3Vyc2UgYW5kIGxvb2sgZm9yIGFueSBTdWJw
YWNrYWdlcy4KKyAgICAgICAgIyBMZXQgdGhlIFBhY2thZ2UgY29sbGVjdG9yIGRlYWwgd2l0aCBz
dWJub2RlcywgZG9uJ3QgY29sbGVjdCBoZXJlLgorICAgICAgICBpZiBhcmdwYXRoLmNoZWNrKGRp
cj0xKToKICAgICAgICAgICAgIGFzc2VydCBub3QgbmFtZXMsICJpbnZhbGlkIGFyZyAlciIgJSAo
YXJnLCkKLSAgICAgICAgICAgIGZvciBwYXRoIGluIHBhdGgudmlzaXQoCi0gICAgICAgICAgICAg
ICAgZmlsPWxhbWJkYSB4OiB4LmNoZWNrKGZpbGU9MSksIHJlYz1zZWxmLl9yZWN1cnNlLCBiZj1U
cnVlLCBzb3J0PVRydWUKKworICAgICAgICAgICAgc2Vlbl9kaXJzID0gc2V0KCkKKyAgICAgICAg
ICAgIGZvciBwYXRoIGluIGFyZ3BhdGgudmlzaXQoCisgICAgICAgICAgICAgICAgZmlsPXNlbGYu
X3Zpc2l0X2ZpbHRlciwgcmVjPXNlbGYuX3JlY3Vyc2UsIGJmPVRydWUsIHNvcnQ9VHJ1ZQogICAg
ICAgICAgICAgKToKKyAgICAgICAgICAgICAgICBkaXJwYXRoID0gcGF0aC5kaXJwYXRoKCkKKyAg
ICAgICAgICAgICAgICBpZiBkaXJwYXRoIG5vdCBpbiBzZWVuX2RpcnM6CisgICAgICAgICAgICAg
ICAgICAgICMgQ29sbGVjdCBwYWNrYWdlcyBmaXJzdC4KKyAgICAgICAgICAgICAgICAgICAgc2Vl
bl9kaXJzLmFkZChkaXJwYXRoKQorICAgICAgICAgICAgICAgICAgICBwa2dpbml0ID0gZGlycGF0
aC5qb2luKCJfX2luaXRfXy5weSIpCisgICAgICAgICAgICAgICAgICAgIGlmIHBrZ2luaXQuZXhp
c3RzKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBzZWxmLl9jb2xsZWN0Zmls
ZShwa2dpbml0KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB4CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCBQYWNrYWdlKToKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGtnX3Jvb3RzW2RpcnBhdGhdID0geAorICAg
ICAgICAgICAgICAgIGlmIGRpcnBhdGggaW4gc2VsZi5fcGtnX3Jvb3RzOgorICAgICAgICAgICAg
ICAgICAgICAjIERvIG5vdCBjb2xsZWN0IHBhY2thZ2VzIGhlcmUuCisgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCisKICAgICAgICAgICAgICAgICBmb3IgeCBpbiBzZWxmLl9jb2xsZWN0Zmls
ZShwYXRoKToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgeAorICAgICAgICAgICAgICAgICAg
ICBrZXkgPSAodHlwZSh4KSwgeC5mc3BhdGgpCisgICAgICAgICAgICAgICAgICAgIGlmIGtleSBp
biBzZWxmLl9ub2RlX2NhY2hlOgorICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5f
bm9kZV9jYWNoZVtrZXldCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9ub2RlX2NhY2hlW2tleV0gPSB4CisgICAgICAgICAgICAgICAgICAg
ICAgICB5aWVsZCB4CiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBhc3NlcnQgcGF0aC5jaGVj
ayhmaWxlPTEpCi0gICAgICAgICAgICBmb3IgeCBpbiBzZWxmLm1hdGNobm9kZXMoc2VsZi5fY29s
bGVjdGZpbGUocGF0aCksIG5hbWVzKToKLSAgICAgICAgICAgICAgICB5aWVsZCB4CisgICAgICAg
ICAgICBhc3NlcnQgYXJncGF0aC5jaGVjayhmaWxlPTEpCiAKLSAgICBkZWYgX2NvbGxlY3RmaWxl
KHNlbGYsIHBhdGgpOgorICAgICAgICAgICAgaWYgYXJncGF0aCBpbiBzZWxmLl9ub2RlX2NhY2hl
OgorICAgICAgICAgICAgICAgIGNvbCA9IHNlbGYuX25vZGVfY2FjaGVbYXJncGF0aF0KKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY29sbGVjdF9yb290ID0gc2VsZi5fcGtnX3Jv
b3RzLmdldChhcmdwYXRoLmRpcm5hbWUsIHNlbGYpCisgICAgICAgICAgICAgICAgY29sID0gY29s
bGVjdF9yb290Ll9jb2xsZWN0ZmlsZShhcmdwYXRoLCBoYW5kbGVfZHVwZXM9RmFsc2UpCisgICAg
ICAgICAgICAgICAgaWYgY29sOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9ub2RlX2NhY2hl
W2FyZ3BhdGhdID0gY29sCisgICAgICAgICAgICBtID0gc2VsZi5tYXRjaG5vZGVzKGNvbCwgbmFt
ZXMpCisgICAgICAgICAgICAjIElmIF9faW5pdF9fLnB5IHdhcyB0aGUgb25seSBmaWxlIHJlcXVl
c3RlZCwgdGhlbiB0aGUgbWF0Y2hlZCBub2RlIHdpbGwgYmUKKyAgICAgICAgICAgICMgdGhlIGNv
cnJlc3BvbmRpbmcgUGFja2FnZSwgYW5kIHRoZSBmaXJzdCB5aWVsZGVkIGl0ZW0gd2lsbCBiZSB0
aGUgX19pbml0X18KKyAgICAgICAgICAgICMgTW9kdWxlIGl0c2VsZiwgc28ganVzdCB1c2UgdGhh
dC4gSWYgdGhpcyBzcGVjaWFsIGNhc2UgaXNuJ3QgdGFrZW4sIHRoZW4gYWxsCisgICAgICAgICAg
ICAjIHRoZSBmaWxlcyBpbiB0aGUgcGFja2FnZSB3aWxsIGJlIHlpZWxkZWQuCisgICAgICAgICAg
ICBpZiBhcmdwYXRoLmJhc2VuYW1lID09ICJfX2luaXRfXy5weSI6CisgICAgICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBuZXh0KG1bMF0uY29sbGVjdCgpKQorICAg
ICAgICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgICAgICAgICAj
IFRoZSBwYWNrYWdlIGNvbGxlY3RzIG5vdGhpbmcgd2l0aCBvbmx5IGFuIF9faW5pdF9fLnB5Cisg
ICAgICAgICAgICAgICAgICAgICMgZmlsZSBpbiBpdCwgd2hpY2ggZ2V0cyBpZ25vcmVkIGJ5IHRo
ZSBkZWZhdWx0CisgICAgICAgICAgICAgICAgICAgICMgInB5dGhvbl9maWxlcyIgb3B0aW9uLgor
ICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
ICAgICBmb3IgeSBpbiBtOgorICAgICAgICAgICAgICAgIHlpZWxkIHkKKworICAgIGRlZiBfY29s
bGVjdGZpbGUoc2VsZiwgcGF0aCwgaGFuZGxlX2R1cGVzPVRydWUpOgorICAgICAgICBhc3NlcnQg
cGF0aC5pc2ZpbGUoKSwgIiVyIGlzIG5vdCBhIGZpbGUgKGlzZGlyPSVyLCBleGlzdHM9JXIsIGlz
bGluaz0lcikiICUgKAorICAgICAgICAgICAgcGF0aCwKKyAgICAgICAgICAgIHBhdGguaXNkaXIo
KSwKKyAgICAgICAgICAgIHBhdGguZXhpc3RzKCksCisgICAgICAgICAgICBwYXRoLmlzbGluaygp
LAorICAgICAgICApCiAgICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJveHkocGF0aCkKICAg
ICAgICAgaWYgbm90IHNlbGYuaXNpbml0cGF0aChwYXRoKToKICAgICAgICAgICAgIGlmIGlob29r
LnB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoPXBhdGgsIGNvbmZpZz1zZWxmLmNvbmZpZyk6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuICgpCisKKyAgICAgICAgaWYgaGFuZGxlX2R1cGVzOgorICAg
ICAgICAgICAga2VlcGR1cGxpY2F0ZXMgPSBzZWxmLmNvbmZpZy5nZXRvcHRpb24oImtlZXBkdXBs
aWNhdGVzIikKKyAgICAgICAgICAgIGlmIG5vdCBrZWVwZHVwbGljYXRlczoKKyAgICAgICAgICAg
ICAgICBkdXBsaWNhdGVfcGF0aHMgPSBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLl9kdXBsaWNh
dGVwYXRocworICAgICAgICAgICAgICAgIGlmIHBhdGggaW4gZHVwbGljYXRlX3BhdGhzOgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gKCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICBkdXBsaWNhdGVfcGF0aHMuYWRkKHBhdGgpCisKICAgICAgICAgcmV0dXJu
IGlob29rLnB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aD1wYXRoLCBwYXJlbnQ9c2VsZikKIAotICAg
IGRlZiBfcmVjdXJzZShzZWxmLCBwYXRoKToKLSAgICAgICAgaWhvb2sgPSBzZWxmLmdldGhvb2tw
cm94eShwYXRoLmRpcnBhdGgoKSkKLSAgICAgICAgaWYgaWhvb2sucHl0ZXN0X2lnbm9yZV9jb2xs
ZWN0KHBhdGg9cGF0aCwgY29uZmlnPXNlbGYuY29uZmlnKToKLSAgICAgICAgICAgIHJldHVybgor
ICAgIGRlZiBfcmVjdXJzZShzZWxmLCBkaXJwYXRoKToKKyAgICAgICAgaWYgZGlycGF0aC5iYXNl
bmFtZSA9PSAiX19weWNhY2hlX18iOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg
IGlob29rID0gc2VsZi5nZXRob29rcHJveHkoZGlycGF0aC5kaXJwYXRoKCkpCisgICAgICAgIGlm
IGlob29rLnB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoPWRpcnBhdGgsIGNvbmZpZz1zZWxmLmNv
bmZpZyk6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZm9yIHBhdCBpbiBzZWxm
Ll9ub3JlY3Vyc2VwYXR0ZXJuczoKLSAgICAgICAgICAgIGlmIHBhdGguY2hlY2soZm5tYXRjaD1w
YXQpOgorICAgICAgICAgICAgaWYgZGlycGF0aC5jaGVjayhmbm1hdGNoPXBhdCk6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJveHko
cGF0aCkKLSAgICAgICAgaWhvb2sucHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHBhdGg9cGF0aCwg
cGFyZW50PXNlbGYpCisgICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJveHkoZGlycGF0aCkK
KyAgICAgICAgaWhvb2sucHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHBhdGg9ZGlycGF0aCwgcGFy
ZW50PXNlbGYpCiAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICBkZWYgX3RyeWNvbnZlcnRweWFy
ZyhzZWxmLCB4KToKLSAgICAgICAgIiIiQ29udmVydCBhIGRvdHRlZCBtb2R1bGUgbmFtZSB0byBw
YXRoLgorICAgIGlmIHNpeC5QWTI6CisKKyAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICBk
ZWYgX3Zpc2l0X2ZpbHRlcihmKToKKyAgICAgICAgICAgIHJldHVybiBmLmNoZWNrKGZpbGU9MSkg
YW5kIG5vdCBmLnN0cnBhdGguZW5kc3dpdGgoIioucHljIikKIAotICAgICAgICAiIiIKKyAgICBl
bHNlOgorCisgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgZGVmIF92aXNpdF9maWx0ZXIo
Zik6CisgICAgICAgICAgICByZXR1cm4gZi5jaGVjayhmaWxlPTEpCiAKKyAgICBkZWYgX3RyeWNv
bnZlcnRweWFyZyhzZWxmLCB4KToKKyAgICAgICAgIiIiQ29udmVydCBhIGRvdHRlZCBtb2R1bGUg
bmFtZSB0byBwYXRoLiIiIgogICAgICAgICB0cnk6CiAgICAgICAgICAgICB3aXRoIF9wYXRjaGVk
X2ZpbmRfbW9kdWxlKCk6CiAgICAgICAgICAgICAgICAgbG9hZGVyID0gcGtndXRpbC5maW5kX2xv
YWRlcih4KQpAQCAtNTQ4LDkgKzcxMyw4IEBAIGNsYXNzIFNlc3Npb24obm9kZXMuRlNDb2xsZWN0
b3IpOgogICAgICAgICAgICAgICAgIHJhaXNlIFVzYWdlRXJyb3IoCiAgICAgICAgICAgICAgICAg
ICAgICJmaWxlIG9yIHBhY2thZ2Ugbm90IGZvdW5kOiAiICsgYXJnICsgIiAobWlzc2luZyBfX2lu
aXRfXy5weT8pIgogICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiZmlsZSBub3QgZm91bmQ6ICIgKyBhcmcpCi0gICAg
ICAgIHBhcnRzWzBdID0gcGF0aAorICAgICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiZmlsZSBu
b3QgZm91bmQ6ICIgKyBhcmcpCisgICAgICAgIHBhcnRzWzBdID0gcGF0aC5yZWFscGF0aCgpCiAg
ICAgICAgIHJldHVybiBwYXJ0cwogCiAgICAgZGVmIG1hdGNobm9kZXMoc2VsZiwgbWF0Y2hpbmcs
IG5hbWVzKToKQEAgLTU3Nyw3ICs3NDEsMTIgQEAgY2xhc3MgU2Vzc2lvbihub2Rlcy5GU0NvbGxl
Y3Rvcik6CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdG5vZGVzLmFwcGVuZChub2RlKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShub2Rl
LCBub2Rlcy5Db2xsZWN0b3IpCi0gICAgICAgICAgICByZXAgPSBjb2xsZWN0X29uZV9ub2RlKG5v
ZGUpCisgICAgICAgICAgICBrZXkgPSAodHlwZShub2RlKSwgbm9kZS5ub2RlaWQpCisgICAgICAg
ICAgICBpZiBrZXkgaW4gc2VsZi5fbm9kZV9jYWNoZToKKyAgICAgICAgICAgICAgICByZXAgPSBz
ZWxmLl9ub2RlX2NhY2hlW2tleV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
cmVwID0gY29sbGVjdF9vbmVfbm9kZShub2RlKQorICAgICAgICAgICAgICAgIHNlbGYuX25vZGVf
Y2FjaGVba2V5XSA9IHJlcAogICAgICAgICAgICAgaWYgcmVwLnBhc3NlZDoKICAgICAgICAgICAg
ICAgICBoYXNfbWF0Y2hlZCA9IEZhbHNlCiAgICAgICAgICAgICAgICAgZm9yIHggaW4gcmVwLnJl
c3VsdDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21hcmsvX19pbml0X18u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL19faW5pdF9fLnB5CmluZGV4IGUzOTE4
Y2E2YTRmYjdmY2NlNTc2ZGMzY2ZlM2VlYmZiNGNkMmIwNWUuLjZiYzIyZmUyN2RhOTZjMzhhMzQ3
ZjNiNDk1MDVjNWU2YjU1ZTg2ZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0
L21hcmsvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbWFyay9fX2lu
aXRfXy5weQpAQCAtMSwzMiArMSwyMSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIiBn
ZW5lcmljIG1lY2hhbmlzbSBmb3IgbWFya2luZyBhbmQgc2VsZWN0aW5nIHB5dGhvbiBmdW5jdGlv
bnMuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9u
LCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
cHJpbnRfZnVuY3Rpb24KKworZnJvbSAubGVnYWN5IGltcG9ydCBtYXRjaGtleXdvcmQKK2Zyb20g
LmxlZ2FjeSBpbXBvcnQgbWF0Y2htYXJrCitmcm9tIC5zdHJ1Y3R1cmVzIGltcG9ydCBFTVBUWV9Q
QVJBTUVURVJTRVRfT1BUSU9OCitmcm9tIC5zdHJ1Y3R1cmVzIGltcG9ydCBnZXRfZW1wdHlfcGFy
YW1ldGVyc2V0X21hcmsKK2Zyb20gLnN0cnVjdHVyZXMgaW1wb3J0IE1hcmsKK2Zyb20gLnN0cnVj
dHVyZXMgaW1wb3J0IE1BUktfR0VOCitmcm9tIC5zdHJ1Y3R1cmVzIGltcG9ydCBNYXJrRGVjb3Jh
dG9yCitmcm9tIC5zdHJ1Y3R1cmVzIGltcG9ydCBNYXJrR2VuZXJhdG9yCitmcm9tIC5zdHJ1Y3R1
cmVzIGltcG9ydCBQYXJhbWV0ZXJTZXQKIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IFVzYWdl
RXJyb3IKLWZyb20gLnN0cnVjdHVyZXMgaW1wb3J0ICgKLSAgICBQYXJhbWV0ZXJTZXQsCi0gICAg
RU1QVFlfUEFSQU1FVEVSU0VUX09QVElPTiwKLSAgICBNQVJLX0dFTiwKLSAgICBNYXJrLAotICAg
IE1hcmtJbmZvLAotICAgIE1hcmtEZWNvcmF0b3IsCi0gICAgTWFya0dlbmVyYXRvciwKLSAgICB0
cmFuc2Zlcl9tYXJrZXJzLAotICAgIGdldF9lbXB0eV9wYXJhbWV0ZXJzZXRfbWFyaywKLSkKLWZy
b20gLmxlZ2FjeSBpbXBvcnQgbWF0Y2hrZXl3b3JkLCBtYXRjaG1hcmsKLQotX19hbGxfXyA9IFsK
LSAgICAiTWFyayIsCi0gICAgIk1hcmtJbmZvIiwKLSAgICAiTWFya0RlY29yYXRvciIsCi0gICAg
Ik1hcmtHZW5lcmF0b3IiLAotICAgICJ0cmFuc2Zlcl9tYXJrZXJzIiwKLSAgICAiZ2V0X2VtcHR5
X3BhcmFtZXRlcnNldF9tYXJrIiwKLV0KLQotCi1jbGFzcyBNYXJrZXJFcnJvcihFeGNlcHRpb24p
OgotCi0gICAgIiIiRXJyb3IgaW4gdXNlIG9mIGEgcHl0ZXN0IG1hcmtlci9hdHRyaWJ1dGUuIiIi
CisKK19fYWxsX18gPSBbIk1hcmsiLCAiTWFya0RlY29yYXRvciIsICJNYXJrR2VuZXJhdG9yIiwg
ImdldF9lbXB0eV9wYXJhbWV0ZXJzZXRfbWFyayJdCiAKIAogZGVmIHBhcmFtKCp2YWx1ZXMsICoq
a3cpOgpAQCAtNjQsNiArNTMsNyBAQCBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgogICAg
ICAgICAib3RoZXInIG1hdGNoZXMgYWxsIHRlc3QgZnVuY3Rpb25zIGFuZCBjbGFzc2VzIHdob3Nl
IG5hbWUgIgogICAgICAgICAiY29udGFpbnMgJ3Rlc3RfbWV0aG9kJyBvciAndGVzdF9vdGhlcics
IHdoaWxlIC1rICdub3QgdGVzdF9tZXRob2QnICIKICAgICAgICAgIm1hdGNoZXMgdGhvc2UgdGhh
dCBkb24ndCBjb250YWluICd0ZXN0X21ldGhvZCcgaW4gdGhlaXIgbmFtZXMuICIKKyAgICAgICAg
Ii1rICdub3QgdGVzdF9tZXRob2QgYW5kIG5vdCB0ZXN0X290aGVyJyB3aWxsIGVsaW1pbmF0ZSB0
aGUgbWF0Y2hlcy4gIgogICAgICAgICAiQWRkaXRpb25hbGx5IGtleXdvcmRzIGFyZSBtYXRjaGVk
IHRvIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyAiCiAgICAgICAgICJjb250YWluaW5nIGV4dHJhIG5h
bWVzIGluIHRoZWlyICdleHRyYV9rZXl3b3JkX21hdGNoZXMnIHNldCwgIgogICAgICAgICAiYXMg
d2VsbCBhcyBmdW5jdGlvbnMgd2hpY2ggaGF2ZSBuYW1lcyBhc3NpZ25lZCBkaXJlY3RseSB0byB0
aGVtLiIsCkBAIC0xMTEsNiArMTAxLDkgQEAgcHl0ZXN0X2NtZGxpbmVfbWFpbi50cnlmaXJzdCA9
IFRydWUKIAogZGVmIGRlc2VsZWN0X2J5X2tleXdvcmQoaXRlbXMsIGNvbmZpZyk6CiAgICAga2V5
d29yZGV4cHIgPSBjb25maWcub3B0aW9uLmtleXdvcmQubHN0cmlwKCkKKyAgICBpZiBub3Qga2V5
d29yZGV4cHI6CisgICAgICAgIHJldHVybgorCiAgICAgaWYga2V5d29yZGV4cHIuc3RhcnRzd2l0
aCgiLSIpOgogICAgICAgICBrZXl3b3JkZXhwciA9ICJub3QgIiArIGtleXdvcmRleHByWzE6XQog
ICAgIHNlbGVjdHVudGlsID0gRmFsc2UKQEAgLTE1OCwxNCArMTUxLDEzIEBAIGRlZiBweXRlc3Rf
Y29sbGVjdGlvbl9tb2RpZnlpdGVtcyhpdGVtcywgY29uZmlnKToKIAogZGVmIHB5dGVzdF9jb25m
aWd1cmUoY29uZmlnKToKICAgICBjb25maWcuX29sZF9tYXJrX2NvbmZpZyA9IE1BUktfR0VOLl9j
b25maWcKLSAgICBpZiBjb25maWcub3B0aW9uLnN0cmljdDoKLSAgICAgICAgTUFSS19HRU4uX2Nv
bmZpZyA9IGNvbmZpZworICAgIE1BUktfR0VOLl9jb25maWcgPSBjb25maWcKIAogICAgIGVtcHR5
X3BhcmFtZXRlcnNldCA9IGNvbmZpZy5nZXRpbmkoRU1QVFlfUEFSQU1FVEVSU0VUX09QVElPTikK
IAotICAgIGlmIGVtcHR5X3BhcmFtZXRlcnNldCBub3QgaW4gKCJza2lwIiwgInhmYWlsIiwgTm9u
ZSwgIiIpOgorICAgIGlmIGVtcHR5X3BhcmFtZXRlcnNldCBub3QgaW4gKCJza2lwIiwgInhmYWls
IiwgImZhaWxfYXRfY29sbGVjdCIsIE5vbmUsICIiKToKICAgICAgICAgcmFpc2UgVXNhZ2VFcnJv
cigKLSAgICAgICAgICAgICJ7IXN9IG11c3QgYmUgb25lIG9mIHNraXAgYW5kIHhmYWlsLCIKKyAg
ICAgICAgICAgICJ7IXN9IG11c3QgYmUgb25lIG9mIHNraXAsIHhmYWlsIG9yIGZhaWxfYXRfY29s
bGVjdCIKICAgICAgICAgICAgICIgYnV0IGl0IGlzIHshcn0iLmZvcm1hdChFTVBUWV9QQVJBTUVU
RVJTRVRfT1BUSU9OLCBlbXB0eV9wYXJhbWV0ZXJzZXQpCiAgICAgICAgICkKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbWFyay9ldmFsdWF0ZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L21hcmsvZXZhbHVhdGUucHkKaW5kZXggYTNkMTFlZTBmODFhMjQ4NzljZTFl
NzA3MmRjYmNhZThlY2ZhNDI3OS4uNTA2NTQ2ZTI1M2EzYjlmY2QyODhmZWJmZTgxYWM3M2FkNTRl
YzUxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbWFyay9ldmFsdWF0ZS5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL2V2YWx1YXRlLnB5CkBAIC0xLDEw
ICsxLDEzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IG9zCi1pbXBvcnQgc2l4
Ci1pbXBvcnQgc3lzCiBpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCBzeXMKIGltcG9ydCB0cmFjZWJh
Y2sKIAotZnJvbSAuLm91dGNvbWVzIGltcG9ydCBmYWlsLCBURVNUX09VVENPTUUKK2ltcG9ydCBz
aXgKKworZnJvbSAuLm91dGNvbWVzIGltcG9ydCBmYWlsCitmcm9tIC4ub3V0Y29tZXMgaW1wb3J0
IFRFU1RfT1VUQ09NRQogCiAKIGRlZiBjYWNoZWRfZXZhbChjb25maWcsIGV4cHIsIGQpOgpAQCAt
MjEsNyArMjQsNiBAQCBkZWYgY2FjaGVkX2V2YWwoY29uZmlnLCBleHByLCBkKToKIAogCiBjbGFz
cyBNYXJrRXZhbHVhdG9yKG9iamVjdCk6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgaXRlbSwg
bmFtZSk6CiAgICAgICAgIHNlbGYuaXRlbSA9IGl0ZW0KICAgICAgICAgc2VsZi5fbWFya3MgPSBO
b25lCkBAIC05MSw3ICs5MywxMCBAQCBjbGFzcyBNYXJrRXZhbHVhdG9yKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAicmVhc29u
IiBub3QgaW4gbWFyay5rd2FyZ3M6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFgg
YmV0dGVyIGJlIGNoZWNrZWQgYXQgY29sbGVjdGlvbiB0aW1lCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbXNnID0gInlvdSBuZWVkIHRvIHNwZWNpZnkgcmVhc29uPVNUUklORyAiICJ3aGVu
IHVzaW5nIGJvb2xlYW5zIGFzIGNvbmRpdGlvbnMuIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1zZyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInlvdSBuZWVkIHRv
IHNwZWNpZnkgcmVhc29uPVNUUklORyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ3aGVuIHVzaW5nIGJvb2xlYW5zIGFzIGNvbmRpdGlvbnMuIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKG1zZykKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGJvb2woZXhwcikKICAgICAgICAgICAgICAgICAg
ICAgaWYgcmVzdWx0OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbWFyay9s
ZWdhY3kucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL2xlZ2FjeS5weQppbmRleCBh
YjAxNmEwMzU1YjczMzY2MDU1Y2I3MjJhY2MzZWU1NTdkNDIxNTQ3Li5jNTY0ODJmMTRkMGQ5ZGU3
MWYyOWU2N2Q5NDM5YWU2OGFhODkxOTVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC9tYXJrL2xlZ2FjeS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL2xl
Z2FjeS5weQpAQCAtMSwxMCArMSwxMiBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIgog
dGhpcyBpcyBhIHBsYWNlIHdoZXJlIHdlIHB1dCBkYXRhc3RydWN0dXJlcyB1c2VkIGJ5IGxlZ2Fj
eSBhcGlzCiB3ZSBob3BlIG90IHJlbW92ZQogIiIiCi1pbXBvcnQgYXR0cgogaW1wb3J0IGtleXdv
cmQKIAoraW1wb3J0IGF0dHIKKwogZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgVXNhZ2VFcnJv
cgogCiAKQEAgLTQ0LDEzICs0NiwxNCBAQCBjbGFzcyBLZXl3b3JkTWFwcGluZyhvYmplY3QpOgog
ICAgICAgICAgICAgICAgIG1hcHBlZF9uYW1lcy5hZGQoaXRlbS5uYW1lKQogCiAgICAgICAgICMg
QWRkIHRoZSBuYW1lcyBhZGRlZCBhcyBleHRyYSBrZXl3b3JkcyB0byBjdXJyZW50IG9yIHBhcmVu
dCBpdGVtcwotICAgICAgICBmb3IgbmFtZSBpbiBpdGVtLmxpc3RleHRyYWtleXdvcmRzKCk6Ci0g
ICAgICAgICAgICBtYXBwZWRfbmFtZXMuYWRkKG5hbWUpCisgICAgICAgIG1hcHBlZF9uYW1lcy51
cGRhdGUoaXRlbS5saXN0ZXh0cmFrZXl3b3JkcygpKQogCiAgICAgICAgICMgQWRkIHRoZSBuYW1l
cyBhdHRhY2hlZCB0byB0aGUgY3VycmVudCBmdW5jdGlvbiB0aHJvdWdoIGRpcmVjdCBhc3NpZ25t
ZW50CiAgICAgICAgIGlmIGhhc2F0dHIoaXRlbSwgImZ1bmN0aW9uIik6Ci0gICAgICAgICAgICBm
b3IgbmFtZSBpbiBpdGVtLmZ1bmN0aW9uLl9fZGljdF9fOgotICAgICAgICAgICAgICAgIG1hcHBl
ZF9uYW1lcy5hZGQobmFtZSkKKyAgICAgICAgICAgIG1hcHBlZF9uYW1lcy51cGRhdGUoaXRlbS5m
dW5jdGlvbi5fX2RpY3RfXykKKworICAgICAgICAjIGFkZCB0aGUgbWFya2VycyB0byB0aGUga2V5
d29yZHMgYXMgd2Ugbm8gbG9uZ2VyIGhhbmRsZSB0aGVtIGNvcnJlY3RseQorICAgICAgICBtYXBw
ZWRfbmFtZXMudXBkYXRlKG1hcmsubmFtZSBmb3IgbWFyayBpbiBpdGVtLml0ZXJfbWFya2Vycygp
KQogCiAgICAgICAgIHJldHVybiBjbHMobWFwcGVkX25hbWVzKQogCkBAIC02Niw3ICs2OSwxMCBA
QCBweXRob25fa2V5d29yZHNfYWxsb3dlZF9saXN0ID0gWyJvciIsICJhbmQiLCAibm90Il0KIAog
ZGVmIG1hdGNobWFyayhjb2xpdGVtLCBtYXJrZXhwcik6CiAgICAgIiIiVHJpZXMgdG8gbWF0Y2gg
b24gYW55IG1hcmtlciBuYW1lcywgYXR0YWNoZWQgdG8gdGhlIGdpdmVuIGNvbGl0ZW0uIiIiCi0g
ICAgcmV0dXJuIGV2YWwobWFya2V4cHIsIHt9LCBNYXJrTWFwcGluZy5mcm9tX2l0ZW0oY29saXRl
bSkpCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gZXZhbChtYXJrZXhwciwge30sIE1hcmtNYXBw
aW5nLmZyb21faXRlbShjb2xpdGVtKSkKKyAgICBleGNlcHQgU3ludGF4RXJyb3IgYXMgZToKKyAg
ICAgICAgcmFpc2UgU3ludGF4RXJyb3Ioc3RyKGUpICsgIlxuTWFya2VyIGV4cHJlc3Npb24gbXVz
dCBiZSB2YWxpZCBQeXRob24hIikKIAogCiBkZWYgbWF0Y2hrZXl3b3JkKGNvbGl0ZW0sIGtleXdv
cmRleHByKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21hcmsvc3RydWN0
dXJlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21hcmsvc3RydWN0dXJlcy5weQppbmRl
eCAxYTJiZDczZGU1Njg4ZGI4NDU1OTY1OTUyYzRhZWRkOGI2YmUyZmQ0Li4wY2NkODE0MWRkOWI5
YzQyZjE0MTk2ZDhiYTBiNjBiYjk1Y2MyNzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC9tYXJrL3N0cnVjdHVyZXMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
bWFyay9zdHJ1Y3R1cmVzLnB5CkBAIC0xLDE0ICsxLDIwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQogaW1wb3J0IGluc3BlY3QKIGltcG9ydCB3YXJuaW5ncwogZnJvbSBjb2xsZWN0aW9ucyBp
bXBvcnQgbmFtZWR0dXBsZQogZnJvbSBvcGVyYXRvciBpbXBvcnQgYXR0cmdldHRlcgogCiBpbXBv
cnQgYXR0cgoraW1wb3J0IHNpeAogCi1mcm9tIC4uZGVwcmVjYXRlZCBpbXBvcnQgTUFSS19QQVJB
TUVURVJTRVRfVU5QQUNLSU5HLCBNQVJLX0lORk9fQVRUUklCVVRFCi1mcm9tIC4uY29tcGF0IGlt
cG9ydCBOT1RTRVQsIGdldGZzbGluZW5vLCBNYXBwaW5nTWl4aW4KLWZyb20gc2l4Lm1vdmVzIGlt
cG9ydCBtYXAsIHJlZHVjZQotCitmcm9tIC4uY29tcGF0IGltcG9ydCBhc2NpaV9lc2NhcGVkCitm
cm9tIC4uY29tcGF0IGltcG9ydCBBVFRSU19FUV9GSUVMRAorZnJvbSAuLmNvbXBhdCBpbXBvcnQg
Z2V0ZnNsaW5lbm8KK2Zyb20gLi5jb21wYXQgaW1wb3J0IE1hcHBpbmdNaXhpbgorZnJvbSAuLmNv
bXBhdCBpbXBvcnQgTk9UU0VUCitmcm9tIF9weXRlc3QuZGVwcmVjYXRlZCBpbXBvcnQgUFlURVNU
X1BBUkFNX1VOS05PV05fS1dBUkdTCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwK
K2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3RVbmtub3duTWFya1dhcm5p
bmcKIAogRU1QVFlfUEFSQU1FVEVSU0VUX09QVElPTiA9ICJlbXB0eV9wYXJhbWV0ZXJfc2V0X21h
cmsiCiAKQEAgLTI0LDkwICszMCwxMjQgQEAgZGVmIGFsaWFzKG5hbWUsIHdhcm5pbmc9Tm9uZSk6
CiAKIAogZGVmIGlzdGVzdGZ1bmMoZnVuYyk6Ci0gICAgcmV0dXJuIGhhc2F0dHIoZnVuYywgIl9f
Y2FsbF9fIikgYW5kIGdldGF0dHIoCi0gICAgICAgIGZ1bmMsICJfX25hbWVfXyIsICI8bGFtYmRh
PiIKLSAgICApICE9ICI8bGFtYmRhPiIKKyAgICByZXR1cm4gKAorICAgICAgICBoYXNhdHRyKGZ1
bmMsICJfX2NhbGxfXyIpCisgICAgICAgIGFuZCBnZXRhdHRyKGZ1bmMsICJfX25hbWVfXyIsICI8
bGFtYmRhPiIpICE9ICI8bGFtYmRhPiIKKyAgICApCiAKIAogZGVmIGdldF9lbXB0eV9wYXJhbWV0
ZXJzZXRfbWFyayhjb25maWcsIGFyZ25hbWVzLCBmdW5jKToKKyAgICBmcm9tIC4ubm9kZXMgaW1w
b3J0IENvbGxlY3RvcgorCiAgICAgcmVxdWVzdGVkX21hcmsgPSBjb25maWcuZ2V0aW5pKEVNUFRZ
X1BBUkFNRVRFUlNFVF9PUFRJT04pCiAgICAgaWYgcmVxdWVzdGVkX21hcmsgaW4gKCIiLCBOb25l
LCAic2tpcCIpOgogICAgICAgICBtYXJrID0gTUFSS19HRU4uc2tpcAogICAgIGVsaWYgcmVxdWVz
dGVkX21hcmsgPT0gInhmYWlsIjoKICAgICAgICAgbWFyayA9IE1BUktfR0VOLnhmYWlsKHJ1bj1G
YWxzZSkKKyAgICBlbGlmIHJlcXVlc3RlZF9tYXJrID09ICJmYWlsX2F0X2NvbGxlY3QiOgorICAg
ICAgICBmX25hbWUgPSBmdW5jLl9fbmFtZV9fCisgICAgICAgIF8sIGxpbmVubyA9IGdldGZzbGlu
ZW5vKGZ1bmMpCisgICAgICAgIHJhaXNlIENvbGxlY3Rvci5Db2xsZWN0RXJyb3IoCisgICAgICAg
ICAgICAiRW1wdHkgcGFyYW1ldGVyIHNldCBpbiAnJXMnIGF0IGxpbmUgJWQiICUgKGZfbmFtZSwg
bGluZW5vICsgMSkKKyAgICAgICAgKQogICAgIGVsc2U6CiAgICAgICAgIHJhaXNlIExvb2t1cEVy
cm9yKHJlcXVlc3RlZF9tYXJrKQogICAgIGZzLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhmdW5jKQog
ICAgIHJlYXNvbiA9ICJnb3QgZW1wdHkgcGFyYW1ldGVyIHNldCAlciwgZnVuY3Rpb24gJXMgYXQg
JXM6JWQiICUgKAotICAgICAgICBhcmduYW1lcywgZnVuYy5fX25hbWVfXywgZnMsIGxpbmVubwor
ICAgICAgICBhcmduYW1lcywKKyAgICAgICAgZnVuYy5fX25hbWVfXywKKyAgICAgICAgZnMsCisg
ICAgICAgIGxpbmVubywKICAgICApCiAgICAgcmV0dXJuIG1hcmsocmVhc29uPXJlYXNvbikKIAog
CiBjbGFzcyBQYXJhbWV0ZXJTZXQobmFtZWR0dXBsZSgiUGFyYW1ldGVyU2V0IiwgInZhbHVlcywg
bWFya3MsIGlkIikpOgotCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHBhcmFtKGNscywgKnZh
bHVlcywgKiprdyk6Ci0gICAgICAgIG1hcmtzID0ga3cucG9wKCJtYXJrcyIsICgpKQorICAgIGRl
ZiBwYXJhbShjbHMsICp2YWx1ZXMsICoqa3dhcmdzKToKKyAgICAgICAgbWFya3MgPSBrd2FyZ3Mu
cG9wKCJtYXJrcyIsICgpKQogICAgICAgICBpZiBpc2luc3RhbmNlKG1hcmtzLCBNYXJrRGVjb3Jh
dG9yKToKLSAgICAgICAgICAgIG1hcmtzID0gbWFya3MsCisgICAgICAgICAgICBtYXJrcyA9ICht
YXJrcywpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtYXJr
cywgKHR1cGxlLCBsaXN0LCBzZXQpKQogCi0gICAgICAgIGRlZiBwYXJhbV9leHRyYWN0X2lkKGlk
PU5vbmUpOgotICAgICAgICAgICAgcmV0dXJuIGlkCisgICAgICAgIGlkXyA9IGt3YXJncy5wb3Ao
ImlkIiwgTm9uZSkKKyAgICAgICAgaWYgaWRfIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYg
bm90IGlzaW5zdGFuY2UoaWRfLCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgICAgICBy
YWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCBpZCB0byBiZSBh
IHN0cmluZywgZ290IHt9OiB7IXJ9Ii5mb3JtYXQodHlwZShpZF8pLCBpZF8pCisgICAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgaWRfID0gYXNjaWlfZXNjYXBlZChpZF8pCiAKLSAgICAgICAg
aWRfID0gcGFyYW1fZXh0cmFjdF9pZCgqKmt3KQorICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAg
ICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgICAgIFBZVEVTVF9QQVJBTV9VTktOT1dO
X0tXQVJHUy5mb3JtYXQoYXJncz1zb3J0ZWQoa3dhcmdzKSksIHN0YWNrbGV2ZWw9MworICAgICAg
ICAgICAgKQogICAgICAgICByZXR1cm4gY2xzKHZhbHVlcywgbWFya3MsIGlkXykKIAogICAgIEBj
bGFzc21ldGhvZAotICAgIGRlZiBleHRyYWN0X2Zyb20oY2xzLCBwYXJhbWV0ZXJzZXQsIGxlZ2Fj
eV9mb3JjZV90dXBsZT1GYWxzZSk6CisgICAgZGVmIGV4dHJhY3RfZnJvbShjbHMsIHBhcmFtZXRl
cnNldCwgZm9yY2VfdHVwbGU9RmFsc2UpOgogICAgICAgICAiIiIKICAgICAgICAgOnBhcmFtIHBh
cmFtZXRlcnNldDoKICAgICAgICAgICAgIGEgbGVnYWN5IHN0eWxlIHBhcmFtZXRlcnNldCB0aGF0
IG1heSBvciBtYXkgbm90IGJlIGEgdHVwbGUsCiAgICAgICAgICAgICBhbmQgbWF5IG9yIG1heSBu
b3QgYmUgd3JhcHBlZCBpbnRvIGEgbWVzcyBvZiBtYXJrIG9iamVjdHMKIAotICAgICAgICA6cGFy
YW0gbGVnYWN5X2ZvcmNlX3R1cGxlOgorICAgICAgICA6cGFyYW0gZm9yY2VfdHVwbGU6CiAgICAg
ICAgICAgICBlbmZvcmNlIHR1cGxlIHdyYXBwaW5nIHNvIHNpbmdsZSBhcmd1bWVudCB0dXBsZSB2
YWx1ZXMKICAgICAgICAgICAgIGRvbid0IGdldCBkZWNvbXBvc2VkIGFuZCBicmVhayB0ZXN0cwot
CiAgICAgICAgICIiIgogCiAgICAgICAgIGlmIGlzaW5zdGFuY2UocGFyYW1ldGVyc2V0LCBjbHMp
OgogICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnNldAotICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZShwYXJhbWV0ZXJzZXQsIE1hcmtEZWNvcmF0b3IpIGFuZCBsZWdhY3lfZm9yY2VfdHVwbGU6
CisgICAgICAgIGlmIGZvcmNlX3R1cGxlOgogICAgICAgICAgICAgcmV0dXJuIGNscy5wYXJhbShw
YXJhbWV0ZXJzZXQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gY2xzKHBhcmFt
ZXRlcnNldCwgbWFya3M9W10sIGlkPU5vbmUpCiAKLSAgICAgICAgbmV3bWFya3MgPSBbXQotICAg
ICAgICBhcmd2YWwgPSBwYXJhbWV0ZXJzZXQKLSAgICAgICAgd2hpbGUgaXNpbnN0YW5jZShhcmd2
YWwsIE1hcmtEZWNvcmF0b3IpOgotICAgICAgICAgICAgbmV3bWFya3MuYXBwZW5kKAotICAgICAg
ICAgICAgICAgIE1hcmtEZWNvcmF0b3IoTWFyayhhcmd2YWwubWFya25hbWUsIGFyZ3ZhbC5hcmdz
WzotMV0sIGFyZ3ZhbC5rd2FyZ3MpKQotICAgICAgICAgICAgKQotICAgICAgICAgICAgYXJndmFs
ID0gYXJndmFsLmFyZ3NbLTFdCi0gICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShhcmd2YWws
IFBhcmFtZXRlclNldCkKLSAgICAgICAgaWYgbGVnYWN5X2ZvcmNlX3R1cGxlOgotICAgICAgICAg
ICAgYXJndmFsID0gYXJndmFsLAotCi0gICAgICAgIGlmIG5ld21hcmtzOgotICAgICAgICAgICAg
d2FybmluZ3Mud2FybihNQVJLX1BBUkFNRVRFUlNFVF9VTlBBQ0tJTkcpCi0KLSAgICAgICAgcmV0
dXJuIGNscyhhcmd2YWwsIG1hcmtzPW5ld21hcmtzLCBpZD1Ob25lKQotCi0gICAgQGNsYXNzbWV0
aG9kCi0gICAgZGVmIF9mb3JfcGFyYW1ldHJpemUoY2xzLCBhcmduYW1lcywgYXJndmFsdWVzLCBm
dW5jLCBjb25maWcpOgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgX3BhcnNlX3BhcmFtZXRy
aXplX2FyZ3MoYXJnbmFtZXMsIGFyZ3ZhbHVlcywgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAg
aWYgbm90IGlzaW5zdGFuY2UoYXJnbmFtZXMsICh0dXBsZSwgbGlzdCkpOgogICAgICAgICAgICAg
YXJnbmFtZXMgPSBbeC5zdHJpcCgpIGZvciB4IGluIGFyZ25hbWVzLnNwbGl0KCIsIikgaWYgeC5z
dHJpcCgpXQogICAgICAgICAgICAgZm9yY2VfdHVwbGUgPSBsZW4oYXJnbmFtZXMpID09IDEKICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIGZvcmNlX3R1cGxlID0gRmFsc2UKLSAgICAgICAgcGFy
YW1ldGVycyA9IFsKLSAgICAgICAgICAgIFBhcmFtZXRlclNldC5leHRyYWN0X2Zyb20oeCwgbGVn
YWN5X2ZvcmNlX3R1cGxlPWZvcmNlX3R1cGxlKQotICAgICAgICAgICAgZm9yIHggaW4gYXJndmFs
dWVzCisgICAgICAgIHJldHVybiBhcmduYW1lcywgZm9yY2VfdHVwbGUKKworICAgIEBzdGF0aWNt
ZXRob2QKKyAgICBkZWYgX3BhcnNlX3BhcmFtZXRyaXplX3BhcmFtZXRlcnMoYXJndmFsdWVzLCBm
b3JjZV90dXBsZSk6CisgICAgICAgIHJldHVybiBbCisgICAgICAgICAgICBQYXJhbWV0ZXJTZXQu
ZXh0cmFjdF9mcm9tKHgsIGZvcmNlX3R1cGxlPWZvcmNlX3R1cGxlKSBmb3IgeCBpbiBhcmd2YWx1
ZXMKICAgICAgICAgXQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9mb3JfcGFyYW1ldHJp
emUoY2xzLCBhcmduYW1lcywgYXJndmFsdWVzLCBmdW5jLCBjb25maWcsIGZ1bmN0aW9uX2RlZmlu
aXRpb24pOgorICAgICAgICBhcmduYW1lcywgZm9yY2VfdHVwbGUgPSBjbHMuX3BhcnNlX3BhcmFt
ZXRyaXplX2FyZ3MoYXJnbmFtZXMsIGFyZ3ZhbHVlcykKKyAgICAgICAgcGFyYW1ldGVycyA9IGNs
cy5fcGFyc2VfcGFyYW1ldHJpemVfcGFyYW1ldGVycyhhcmd2YWx1ZXMsIGZvcmNlX3R1cGxlKQog
ICAgICAgICBkZWwgYXJndmFsdWVzCiAKLSAgICAgICAgaWYgbm90IHBhcmFtZXRlcnM6CisgICAg
ICAgIGlmIHBhcmFtZXRlcnM6CisgICAgICAgICAgICAjIGNoZWNrIGFsbCBwYXJhbWV0ZXIgc2V0
cyBoYXZlIHRoZSBjb3JyZWN0IG51bWJlciBvZiB2YWx1ZXMKKyAgICAgICAgICAgIGZvciBwYXJh
bSBpbiBwYXJhbWV0ZXJzOgorICAgICAgICAgICAgICAgIGlmIGxlbihwYXJhbS52YWx1ZXMpICE9
IGxlbihhcmduYW1lcyk6CisgICAgICAgICAgICAgICAgICAgIG1zZyA9ICgKKyAgICAgICAgICAg
ICAgICAgICAgICAgICd7bm9kZWlkfTogaW4gInBhcmFtZXRyaXplIiB0aGUgbnVtYmVyIG9mIG5h
bWVzICh7bmFtZXNfbGVufSk6XG4nCisgICAgICAgICAgICAgICAgICAgICAgICAiICB7bmFtZXN9
XG4iCisgICAgICAgICAgICAgICAgICAgICAgICAibXVzdCBiZSBlcXVhbCB0byB0aGUgbnVtYmVy
IG9mIHZhbHVlcyAoe3ZhbHVlc19sZW59KTpcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICIg
IHt2YWx1ZXN9IgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgIGZh
aWwoCisgICAgICAgICAgICAgICAgICAgICAgICBtc2cuZm9ybWF0KAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGVpZD1mdW5jdGlvbl9kZWZpbml0aW9uLm5vZGVpZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9cGFyYW0udmFsdWVzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5hbWVzPWFyZ25hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5hbWVzX2xlbj1sZW4oYXJnbmFtZXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
bHVlc19sZW49bGVuKHBhcmFtLnZhbHVlcyksCisgICAgICAgICAgICAgICAgICAgICAgICApLAor
ICAgICAgICAgICAgICAgICAgICAgICAgcHl0cmFjZT1GYWxzZSwKKyAgICAgICAgICAgICAgICAg
ICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBlbXB0eSBwYXJhbWV0ZXIgc2V0IChs
aWtlbHkgY29tcHV0ZWQgYXQgcnVudGltZSk6IGNyZWF0ZSBhIHNpbmdsZQorICAgICAgICAgICAg
IyBwYXJhbWV0ZXIgc2V0IHdpdGggTk9UU0VUIHZhbHVlcywgd2l0aCB0aGUgImVtcHR5IHBhcmFt
ZXRlciBzZXQiIG1hcmsgYXBwbGllZCB0byBpdAogICAgICAgICAgICAgbWFyayA9IGdldF9lbXB0
eV9wYXJhbWV0ZXJzZXRfbWFyayhjb25maWcsIGFyZ25hbWVzLCBmdW5jKQogICAgICAgICAgICAg
cGFyYW1ldGVycy5hcHBlbmQoCiAgICAgICAgICAgICAgICAgUGFyYW1ldGVyU2V0KHZhbHVlcz0o
Tk9UU0VULCkgKiBsZW4oYXJnbmFtZXMpLCBtYXJrcz1bbWFya10sIGlkPU5vbmUpCkBAIC0xMjAs
OSArMTYwLDkgQEAgY2xhc3MgTWFyayhvYmplY3QpOgogICAgICM6IG5hbWUgb2YgdGhlIG1hcmsK
ICAgICBuYW1lID0gYXR0ci5pYih0eXBlPXN0cikKICAgICAjOiBwb3NpdGlvbmFsIGFyZ3VtZW50
cyBvZiB0aGUgbWFyayBkZWNvcmF0b3IKLSAgICBhcmdzID0gYXR0ci5pYih0eXBlPSJMaXN0W29i
amVjdF0iKQorICAgIGFyZ3MgPSBhdHRyLmliKCkgICMgTGlzdFtvYmplY3RdCiAgICAgIzoga2V5
d29yZCBhcmd1bWVudHMgb2YgdGhlIG1hcmsgZGVjb3JhdG9yCi0gICAga3dhcmdzID0gYXR0ci5p
Yih0eXBlPSJEaWN0W3N0ciwgb2JqZWN0XSIpCisgICAga3dhcmdzID0gYXR0ci5pYigpICAjIERp
Y3Rbc3RyLCBvYmplY3RdCiAKICAgICBkZWYgY29tYmluZWRfd2l0aChzZWxmLCBvdGhlcik6CiAg
ICAgICAgICIiIgpAQCAtMTMwLDcgKzE3MCw3IEBAIGNsYXNzIE1hcmsob2JqZWN0KToKICAgICAg
ICAgOnR5cGUgb3RoZXI6IE1hcmsKICAgICAgICAgOnJ0eXBlOiBNYXJrCiAKLSAgICAgICAgY29t
YmluZXMgYnkgYXBwZW5kaW5nIGFhcmdzIGFuZCBtZXJnaW5nIHRoZSBtYXBwaW5ncworICAgICAg
ICBjb21iaW5lcyBieSBhcHBlbmRpbmcgYXJncyBhbmQgbWVyZ2luZyB0aGUgbWFwcGluZ3MKICAg
ICAgICAgIiIiCiAgICAgICAgIGFzc2VydCBzZWxmLm5hbWUgPT0gb3RoZXIubmFtZQogICAgICAg
ICByZXR1cm4gTWFyaygKQEAgLTIwNywxMSArMjQ3LDcgQEAgY2xhc3MgTWFya0RlY29yYXRvcihv
YmplY3QpOgogICAgICAgICAgICAgZnVuYyA9IGFyZ3NbMF0KICAgICAgICAgICAgIGlzX2NsYXNz
ID0gaW5zcGVjdC5pc2NsYXNzKGZ1bmMpCiAgICAgICAgICAgICBpZiBsZW4oYXJncykgPT0gMSBh
bmQgKGlzdGVzdGZ1bmMoZnVuYykgb3IgaXNfY2xhc3MpOgotICAgICAgICAgICAgICAgIGlmIGlz
X2NsYXNzOgotICAgICAgICAgICAgICAgICAgICBzdG9yZV9tYXJrKGZ1bmMsIHNlbGYubWFyaykK
LSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzdG9yZV9sZWdhY3lf
bWFya2luZm8oZnVuYywgc2VsZi5tYXJrKQotICAgICAgICAgICAgICAgICAgICBzdG9yZV9tYXJr
KGZ1bmMsIHNlbGYubWFyaykKKyAgICAgICAgICAgICAgICBzdG9yZV9tYXJrKGZ1bmMsIHNlbGYu
bWFyaykKICAgICAgICAgICAgICAgICByZXR1cm4gZnVuYwogICAgICAgICByZXR1cm4gc2VsZi53
aXRoX2FyZ3MoKmFyZ3MsICoqa3dhcmdzKQogCkBAIC0yMjEsMTAgKzI1NywyNSBAQCBkZWYgZ2V0
X3VucGFja2VkX21hcmtzKG9iaik6CiAgICAgb2J0YWluIHRoZSB1bnBhY2tlZCBtYXJrcyB0aGF0
IGFyZSBzdG9yZWQgb24gYW4gb2JqZWN0CiAgICAgIiIiCiAgICAgbWFya19saXN0ID0gZ2V0YXR0
cihvYmosICJweXRlc3RtYXJrIiwgW10pCi0KICAgICBpZiBub3QgaXNpbnN0YW5jZShtYXJrX2xp
c3QsIGxpc3QpOgogICAgICAgICBtYXJrX2xpc3QgPSBbbWFya19saXN0XQotICAgIHJldHVybiBb
Z2V0YXR0cihtYXJrLCAibWFyayIsIG1hcmspIGZvciBtYXJrIGluIG1hcmtfbGlzdF0gICMgdW5w
YWNrIE1hcmtEZWNvcmF0b3IKKyAgICByZXR1cm4gbm9ybWFsaXplX21hcmtfbGlzdChtYXJrX2xp
c3QpCisKKworZGVmIG5vcm1hbGl6ZV9tYXJrX2xpc3QobWFya19saXN0KToKKyAgICAiIiIKKyAg
ICBub3JtYWxpemVzIG1hcmtlciBkZWNvcmF0aW5nIGhlbHBlcnMgdG8gbWFyayBvYmplY3RzCisK
KyAgICA6dHlwZSBtYXJrX2xpc3Q6IExpc3RbVW5pb25bTWFyaywgTWFya2RlY29yYXRvcl1dCisg
ICAgOnJ0eXBlOiBMaXN0W01hcmtdCisgICAgIiIiCisgICAgZXh0cmFjdGVkID0gWworICAgICAg
ICBnZXRhdHRyKG1hcmssICJtYXJrIiwgbWFyaykgZm9yIG1hcmsgaW4gbWFya19saXN0CisgICAg
XSAgIyB1bnBhY2sgTWFya0RlY29yYXRvcgorICAgIGZvciBtYXJrIGluIGV4dHJhY3RlZDoKKyAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2UobWFyaywgTWFyayk6CisgICAgICAgICAgICByYWlzZSBU
eXBlRXJyb3IoImdvdCB7IXJ9IGluc3RlYWQgb2YgTWFyayIuZm9ybWF0KG1hcmspKQorICAgIHJl
dHVybiBbeCBmb3IgeCBpbiBleHRyYWN0ZWQgaWYgaXNpbnN0YW5jZSh4LCBNYXJrKV0KIAogCiBk
ZWYgc3RvcmVfbWFyayhvYmosIG1hcmspOgpAQCAtMjM3LDkwICsyODgsNiBAQCBkZWYgc3RvcmVf
bWFyayhvYmosIG1hcmspOgogICAgIG9iai5weXRlc3RtYXJrID0gZ2V0X3VucGFja2VkX21hcmtz
KG9iaikgKyBbbWFya10KIAogCi1kZWYgc3RvcmVfbGVnYWN5X21hcmtpbmZvKGZ1bmMsIG1hcmsp
OgotICAgICIiImNyZWF0ZSB0aGUgbGVnYWN5IE1hcmtJbmZvIG9iamVjdHMgYW5kIHB1dCB0aGVt
IG9udG8gdGhlIGZ1bmN0aW9uCi0gICAgIiIiCi0gICAgaWYgbm90IGlzaW5zdGFuY2UobWFyaywg
TWFyayk6Ci0gICAgICAgIHJhaXNlIFR5cGVFcnJvcigiZ290IHttYXJrIXJ9IGluc3RlYWQgb2Yg
YSBNYXJrIi5mb3JtYXQobWFyaz1tYXJrKSkKLSAgICBob2xkZXIgPSBnZXRhdHRyKGZ1bmMsIG1h
cmsubmFtZSwgTm9uZSkKLSAgICBpZiBob2xkZXIgaXMgTm9uZToKLSAgICAgICAgaG9sZGVyID0g
TWFya0luZm8uZm9yX21hcmsobWFyaykKLSAgICAgICAgc2V0YXR0cihmdW5jLCBtYXJrLm5hbWUs
IGhvbGRlcikKLSAgICBlbHNlOgotICAgICAgICBob2xkZXIuYWRkX21hcmsobWFyaykKLQotCi1k
ZWYgdHJhbnNmZXJfbWFya2VycyhmdW5jb2JqLCBjbHMsIG1vZCk6Ci0gICAgIiIiCi0gICAgdGhp
cyBmdW5jdGlvbiB0cmFuc2ZlcnMgY2xhc3MgbGV2ZWwgbWFya2VycyBhbmQgbW9kdWxlIGxldmVs
IG1hcmtlcnMKLSAgICBpbnRvIGZ1bmN0aW9uIGxldmVsIG1hcmtpbmZvIG9iamVjdHMKLQotICAg
IHRoaXMgaXMgdGhlIG1haW4gcmVhc29uIHdoeSBtYXJrcyBhcmUgc28gYnJva2VuCi0gICAgdGhl
IHJlc29sdXRpb24gd2lsbCBpbnZvbHZlIHBoYXNpbmcgb3V0IGZ1bmN0aW9uIGxldmVsIE1hcmtJ
bmZvIG9iamVjdHMKLQotICAgICIiIgotICAgIGZvciBvYmogaW4gKGNscywgbW9kKToKLSAgICAg
ICAgZm9yIG1hcmsgaW4gZ2V0X3VucGFja2VkX21hcmtzKG9iaik6Ci0gICAgICAgICAgICBpZiBu
b3QgX21hcmtlZChmdW5jb2JqLCBtYXJrKToKLSAgICAgICAgICAgICAgICBzdG9yZV9sZWdhY3lf
bWFya2luZm8oZnVuY29iaiwgbWFyaykKLQotCi1kZWYgX21hcmtlZChmdW5jLCBtYXJrKToKLSAg
ICAiIiIgUmV0dXJucyBUcnVlIGlmIDpmdW5jOiBpcyBhbHJlYWR5IG1hcmtlZCB3aXRoIDptYXJr
OiwgRmFsc2Ugb3RoZXJ3aXNlLgotICAgIFRoaXMgY2FuIGhhcHBlbiBpZiBtYXJrZXIgaXMgYXBw
bGllZCB0byBjbGFzcyBhbmQgdGhlIHRlc3QgZmlsZSBpcwotICAgIGludm9rZWQgbW9yZSB0aGFu
IG9uY2UuCi0gICAgIiIiCi0gICAgdHJ5OgotICAgICAgICBmdW5jX21hcmsgPSBnZXRhdHRyKGZ1
bmMsIGdldGF0dHIobWFyaywgImNvbWJpbmVkIiwgbWFyaykubmFtZSkKLSAgICBleGNlcHQgQXR0
cmlidXRlRXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIHJldHVybiBhbnkobWFyayA9
PSBpbmZvLmNvbWJpbmVkIGZvciBpbmZvIGluIGZ1bmNfbWFyaykKLQotCi1AYXR0ci5zCi1jbGFz
cyBNYXJrSW5mbyhvYmplY3QpOgotICAgICIiIiBNYXJraW5nIG9iamVjdCBjcmVhdGVkIGJ5IDpj
bGFzczpgTWFya0RlY29yYXRvcmAgaW5zdGFuY2VzLiAiIiIKLQotICAgIF9tYXJrcyA9IGF0dHIu
aWIoY29udmVydD1saXN0KQotCi0gICAgQF9tYXJrcy52YWxpZGF0b3IKLSAgICBkZWYgdmFsaWRh
dGVfbWFya3Moc2VsZiwgYXR0cmlidXRlLCB2YWx1ZSk6Ci0gICAgICAgIGZvciBpdGVtIGluIHZh
bHVlOgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwgTWFyayk6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgIk1hcmtJbmZv
IGV4cGVjdHMgTWFyayBpbnN0YW5jZXMsIGdvdCB7IXJ9ICh7IXJ9KSIuZm9ybWF0KAotICAgICAg
ICAgICAgICAgICAgICAgICAgaXRlbSwgdHlwZShpdGVtKQotICAgICAgICAgICAgICAgICAgICAp
Ci0gICAgICAgICAgICAgICAgKQotCi0gICAgY29tYmluZWQgPSBhdHRyLmliKAotICAgICAgICBy
ZXByPUZhbHNlLAotICAgICAgICBkZWZhdWx0PWF0dHIuRmFjdG9yeSgKLSAgICAgICAgICAgIGxh
bWJkYSBzZWxmOiByZWR1Y2UoTWFyay5jb21iaW5lZF93aXRoLCBzZWxmLl9tYXJrcyksIHRha2Vz
X3NlbGY9VHJ1ZQotICAgICAgICApLAotICAgICkKLQotICAgIG5hbWUgPSBhbGlhcygiY29tYmlu
ZWQubmFtZSIsIHdhcm5pbmc9TUFSS19JTkZPX0FUVFJJQlVURSkKLSAgICBhcmdzID0gYWxpYXMo
ImNvbWJpbmVkLmFyZ3MiLCB3YXJuaW5nPU1BUktfSU5GT19BVFRSSUJVVEUpCi0gICAga3dhcmdz
ID0gYWxpYXMoImNvbWJpbmVkLmt3YXJncyIsIHdhcm5pbmc9TUFSS19JTkZPX0FUVFJJQlVURSkK
LQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmb3JfbWFyayhjbHMsIG1hcmspOgotICAgICAg
ICByZXR1cm4gY2xzKFttYXJrXSkKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAg
cmV0dXJuICI8TWFya0luZm8geyFyfT4iLmZvcm1hdChzZWxmLmNvbWJpbmVkKQotCi0gICAgZGVm
IGFkZF9tYXJrKHNlbGYsIG1hcmspOgotICAgICAgICAiIiIgYWRkIGEgTWFya0luZm8gd2l0aCB0
aGUgZ2l2ZW4gYXJncyBhbmQga3dhcmdzLiAiIiIKLSAgICAgICAgc2VsZi5fbWFya3MuYXBwZW5k
KG1hcmspCi0gICAgICAgIHNlbGYuY29tYmluZWQgPSBzZWxmLmNvbWJpbmVkLmNvbWJpbmVkX3dp
dGgobWFyaykKLQotICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAgICAgICAgIiIiIHlpZWxkIE1h
cmtJbmZvIG9iamVjdHMgZWFjaCByZWxhdGluZyB0byBhIG1hcmtpbmctY2FsbC4gIiIiCi0gICAg
ICAgIHJldHVybiBtYXAoTWFya0luZm8uZm9yX21hcmssIHNlbGYuX21hcmtzKQotCi0KIGNsYXNz
IE1hcmtHZW5lcmF0b3Iob2JqZWN0KToKICAgICAiIiIgRmFjdG9yeSBmb3IgOmNsYXNzOmBNYXJr
RGVjb3JhdG9yYCBvYmplY3RzIC0gZXhwb3NlZCBhcwogICAgIGEgYGBweXRlc3QubWFya2BgIHNp
bmdsZXRvbiBpbnN0YW5jZS4gIEV4YW1wbGU6OgpAQCAtMzMyLDM2ICsyOTksNDkgQEAgY2xhc3Mg
TWFya0dlbmVyYXRvcihvYmplY3QpOgogCiAgICAgd2lsbCBzZXQgYSAnc2xvd3Rlc3QnIDpjbGFz
czpgTWFya0luZm9gIG9iamVjdAogICAgIG9uIHRoZSBgYHRlc3RfZnVuY3Rpb25gYCBvYmplY3Qu
ICIiIgorCiAgICAgX2NvbmZpZyA9IE5vbmUKKyAgICBfbWFya2VycyA9IHNldCgpCiAKICAgICBk
ZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CiAgICAgICAgIGlmIG5hbWVbMF0gPT0gIl8iOgog
ICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIk1hcmtlciBuYW1lIG11c3QgTk9UIHN0
YXJ0IHdpdGggdW5kZXJzY29yZSIpCisKICAgICAgICAgaWYgc2VsZi5fY29uZmlnIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgc2VsZi5fY2hlY2sobmFtZSkKLSAgICAgICAgcmV0dXJuIE1hcmtE
ZWNvcmF0b3IoTWFyayhuYW1lLCAoKSwge30pKQorICAgICAgICAgICAgIyBXZSBzdG9yZSBhIHNl
dCBvZiBtYXJrZXJzIGFzIGEgcGVyZm9ybWFuY2Ugb3B0aW1pc2F0aW9uIC0gaWYgYSBtYXJrCisg
ICAgICAgICAgICAjIG5hbWUgaXMgaW4gdGhlIHNldCB3ZSBkZWZpbml0ZWx5IGtub3cgaXQsIGJ1
dCBhIG1hcmsgbWF5IGJlIGtub3duIGFuZAorICAgICAgICAgICAgIyBub3QgaW4gdGhlIHNldC4g
IFdlIHRoZXJlZm9yZSBzdGFydCBieSB1cGRhdGluZyB0aGUgc2V0IQorICAgICAgICAgICAgaWYg
bmFtZSBub3QgaW4gc2VsZi5fbWFya2VyczoKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBz
ZWxmLl9jb25maWcuZ2V0aW5pKCJtYXJrZXJzIik6CisgICAgICAgICAgICAgICAgICAgICMgZXhh
bXBsZSBsaW5lczogInNraXBpZihjb25kaXRpb24pOiBza2lwIHRoZSBnaXZlbiB0ZXN0IGlmLi4u
IgorICAgICAgICAgICAgICAgICAgICAjIG9yICJoeXBvdGhlc2lzOiB0ZXN0cyB3aGljaCB1c2Ug
SHlwb3RoZXNpcyIsIHNvIHRvIGdldCB0aGUKKyAgICAgICAgICAgICAgICAgICAgIyBtYXJrZXIg
bmFtZSB3ZSBzcGxpdCBvbiBib3RoIGA6YCBhbmQgYChgLgorICAgICAgICAgICAgICAgICAgICBt
YXJrZXIgPSBsaW5lLnNwbGl0KCI6IilbMF0uc3BsaXQoIigiKVswXS5zdHJpcCgpCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX21hcmtlcnMuYWRkKG1hcmtlcikKKworICAgICAgICAgICAgIyBJ
ZiB0aGUgbmFtZSBpcyBub3QgaW4gdGhlIHNldCBvZiBrbm93biBtYXJrcyBhZnRlciB1cGRhdGlu
ZywKKyAgICAgICAgICAgICMgdGhlbiBpdCByZWFsbHkgaXMgdGltZSB0byBpc3N1ZSBhIHdhcm5p
bmcgb3IgYW4gZXJyb3IuCisgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBzZWxmLl9tYXJrZXJz
OgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX2NvbmZpZy5vcHRpb24uc3RyaWN0X21hcmtlcnM6
CisgICAgICAgICAgICAgICAgICAgIGZhaWwoCisgICAgICAgICAgICAgICAgICAgICAgICAieyFy
fSBub3QgZm91bmQgaW4gYG1hcmtlcnNgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIi5mb3JtYXQobmFt
ZSksCisgICAgICAgICAgICAgICAgICAgICAgICBweXRyYWNlPUZhbHNlLAorICAgICAgICAgICAg
ICAgICAgICApCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgd2Fy
bmluZ3Mud2FybigKKyAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIHB5dGVzdC5tYXJr
LiVzIC0gaXMgdGhpcyBhIHR5cG8/ICBZb3UgY2FuIHJlZ2lzdGVyICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICJjdXN0b20gbWFya3MgdG8gYXZvaWQgdGhpcyB3YXJuaW5nIC0gZm9yIGRldGFp
bHMsIHNlZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9kb2NzLnB5dGVzdC5v
cmcvZW4vbGF0ZXN0L21hcmsuaHRtbCIgJSBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
UHl0ZXN0VW5rbm93bk1hcmtXYXJuaW5nLAorICAgICAgICAgICAgICAgICAgICApCiAKLSAgICBk
ZWYgX2NoZWNrKHNlbGYsIG5hbWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpZiBuYW1l
IGluIHNlbGYuX21hcmtlcnM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgc2VsZi5fbWFya2Vy
cyA9IHZhbHVlcyA9IHNldCgpCi0gICAgICAgIGZvciBsaW5lIGluIHNlbGYuX2NvbmZpZy5nZXRp
bmkoIm1hcmtlcnMiKToKLSAgICAgICAgICAgIG1hcmtlciA9IGxpbmUuc3BsaXQoIjoiLCAxKVsw
XQotICAgICAgICAgICAgbWFya2VyID0gbWFya2VyLnJzdHJpcCgpCi0gICAgICAgICAgICB4ID0g
bWFya2VyLnNwbGl0KCIoIiwgMSlbMF0KLSAgICAgICAgICAgIHZhbHVlcy5hZGQoeCkKLSAgICAg
ICAgaWYgbmFtZSBub3QgaW4gc2VsZi5fbWFya2VyczoKLSAgICAgICAgICAgIHJhaXNlIEF0dHJp
YnV0ZUVycm9yKCIlciBub3QgYSByZWdpc3RlcmVkIG1hcmtlciIgJSAobmFtZSwpKQorICAgICAg
ICByZXR1cm4gTWFya0RlY29yYXRvcihNYXJrKG5hbWUsICgpLCB7fSkpCiAKIAogTUFSS19HRU4g
PSBNYXJrR2VuZXJhdG9yKCkKIAogCiBjbGFzcyBOb2RlS2V5d29yZHMoTWFwcGluZ01peGluKToK
LQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlKToKICAgICAgICAgc2VsZi5ub2RlID0gbm9k
ZQogICAgICAgICBzZWxmLnBhcmVudCA9IG5vZGUucGFyZW50CkBAIC0zOTgsMTYgKzM3OCwxOCBA
QCBjbGFzcyBOb2RlS2V5d29yZHMoTWFwcGluZ01peGluKToKICAgICAgICAgcmV0dXJuICI8Tm9k
ZUtleXdvcmRzIGZvciBub2RlICVzPiIgJSAoc2VsZi5ub2RlLCkKIAogCi1AYXR0ci5zKGNtcD1G
YWxzZSwgaGFzaD1GYWxzZSkKKyMgbXlweSBjYW5ub3QgZmluZCB0aGlzIG92ZXJsb2FkLCByZW1v
dmUgd2hlbiBvbiBhdHRycz49MTkuMgorQGF0dHIucyhoYXNoPUZhbHNlLCAqKntBVFRSU19FUV9G
SUVMRDogRmFsc2V9KSAgIyB0eXBlOiBpZ25vcmUKIGNsYXNzIE5vZGVNYXJrZXJzKG9iamVjdCk6
CiAgICAgIiIiCi0gICAgaW50ZXJuYWwgc3RydWN1dHJlIGZvciBzdG9yaW5nIG1hcmtzIGJlbG9u
Z29uZyB0byBhIG5vZGUKKyAgICBpbnRlcm5hbCBzdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgbWFya3Mg
YmVsb25naW5nIHRvIGEgbm9kZQogCiAgICAgLi53YXJuaW5nOjoKIAogICAgICAgICB1bnN0YWJs
ZSBhcGkKIAogICAgICIiIgorCiAgICAgb3duX21hcmtlcnMgPSBhdHRyLmliKGRlZmF1bHQ9YXR0
ci5GYWN0b3J5KGxpc3QpKQogCiAgICAgZGVmIHVwZGF0ZShzZWxmLCBhZGRfbWFya2Vycyk6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tb25rZXlwYXRjaC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L21vbmtleXBhdGNoLnB5CmluZGV4IDE2MDgwYjVkNWNiMjQ3MDQ1
ZmVmNGZlMzc0ZGE5ODRmMWQ3Y2E1MDQuLmU4NjcxYjBjNzAyNGZjZWY0OGIzY2Q5Y2U1NThkYzZk
NjM5Y2Y2NGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21vbmtleXBhdGNo
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21vbmtleXBhdGNoLnB5CkBAIC0xLDE1
ICsxLDIyIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiIG1vbmtleXBhdGNoaW5nIGFu
ZCBtb2NraW5nIGZ1bmN0aW9uYWxpdHkuICAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBvcwotaW1wb3J0
IHN5cwogaW1wb3J0IHJlCitpbXBvcnQgc3lzCitpbXBvcnQgd2FybmluZ3MKIGZyb20gY29udGV4
dGxpYiBpbXBvcnQgY29udGV4dG1hbmFnZXIKIAogaW1wb3J0IHNpeAorCitpbXBvcnQgcHl0ZXN0
CiBmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IGZpeHR1cmUKK2Zyb20gX3B5dGVzdC5wYXRo
bGliIGltcG9ydCBQYXRoCiAKLVJFX0lNUE9SVF9FUlJPUl9OQU1FID0gcmUuY29tcGlsZSgiXk5v
IG1vZHVsZSBuYW1lZCAoLiopJCIpCitSRV9JTVBPUlRfRVJST1JfTkFNRSA9IHJlLmNvbXBpbGUo
ciJeTm8gbW9kdWxlIG5hbWVkICguKikkIikKIAogCiBAZml4dHVyZQpAQCAtMjIsNyArMjksNyBA
QCBkZWYgbW9ua2V5cGF0Y2goKToKICAgICAgICAgbW9ua2V5cGF0Y2guc2V0aXRlbShtYXBwaW5n
LCBuYW1lLCB2YWx1ZSkKICAgICAgICAgbW9ua2V5cGF0Y2guZGVsaXRlbShvYmosIG5hbWUsIHJh
aXNpbmc9VHJ1ZSkKICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KG5hbWUsIHZhbHVlLCBwcmVw
ZW5kPUZhbHNlKQotICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYobmFtZSwgdmFsdWUsIHJhaXNp
bmc9VHJ1ZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KG5hbWUsIHJhaXNpbmc9VHJ1ZSkK
ICAgICAgICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9wcmVwZW5kKHBhdGgpCiAgICAgICAgIG1vbmtl
eXBhdGNoLmNoZGlyKHBhdGgpCiAKQEAgLTg2LDcgKzkzLDYgQEAgZGVmIGRlcml2ZV9pbXBvcnRw
YXRoKGltcG9ydF9wYXRoLCByYWlzaW5nKToKIAogCiBjbGFzcyBOb3RzZXQob2JqZWN0KToKLQog
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAgICAgcmV0dXJuICI8bm90c2V0PiIKIApAQCAt
MTc2LDYgKzE4Miw4IEBAIGNsYXNzIE1vbmtleVBhdGNoKG9iamVjdCk6CiAgICAgICAgIGF0dHJp
YnV0ZSBpcyBtaXNzaW5nLgogICAgICAgICAiIiIKICAgICAgICAgX190cmFjZWJhY2toaWRlX18g
PSBUcnVlCisgICAgICAgIGltcG9ydCBpbnNwZWN0CisKICAgICAgICAgaWYgbmFtZSBpcyBub3Rz
ZXQ6CiAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh0YXJnZXQsIHNpeC5zdHJpbmdfdHlw
ZXMpOgogICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKQEAgLTE4OSw3ICsxOTcsMTEg
QEAgY2xhc3MgTW9ua2V5UGF0Y2gob2JqZWN0KToKICAgICAgICAgICAgIGlmIHJhaXNpbmc6CiAg
ICAgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHNlbGYuX3NldGF0dHIuYXBwZW5kKCh0YXJnZXQsIG5hbWUsIGdldGF0dHIo
dGFyZ2V0LCBuYW1lLCBub3RzZXQpKSkKKyAgICAgICAgICAgIG9sZHZhbCA9IGdldGF0dHIodGFy
Z2V0LCBuYW1lLCBub3RzZXQpCisgICAgICAgICAgICAjIEF2b2lkIGNsYXNzIGRlc2NyaXB0b3Jz
IGxpa2Ugc3RhdGljbWV0aG9kL2NsYXNzbWV0aG9kLgorICAgICAgICAgICAgaWYgaW5zcGVjdC5p
c2NsYXNzKHRhcmdldCk6CisgICAgICAgICAgICAgICAgb2xkdmFsID0gdGFyZ2V0Ll9fZGljdF9f
LmdldChuYW1lLCBub3RzZXQpCisgICAgICAgICAgICBzZWxmLl9zZXRhdHRyLmFwcGVuZCgodGFy
Z2V0LCBuYW1lLCBvbGR2YWwpKQogICAgICAgICAgICAgZGVsYXR0cih0YXJnZXQsIG5hbWUpCiAK
ICAgICBkZWYgc2V0aXRlbShzZWxmLCBkaWMsIG5hbWUsIHZhbHVlKToKQEAgLTIxMCwzMCArMjIy
LDY4IEBAIGNsYXNzIE1vbmtleVBhdGNoKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9zZXRp
dGVtLmFwcGVuZCgoZGljLCBuYW1lLCBkaWMuZ2V0KG5hbWUsIG5vdHNldCkpKQogICAgICAgICAg
ICAgZGVsIGRpY1tuYW1lXQogCisgICAgZGVmIF93YXJuX2lmX2Vudl9uYW1lX2lzX25vdF9zdHIo
c2VsZiwgbmFtZSk6CisgICAgICAgICIiIk9uIFB5dGhvbiAyLCB3YXJuIGlmIHRoZSBnaXZlbiBl
bnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGlzIG5vdCBhIG5hdGl2ZSBzdHIgKCM0MDU2KSIiIgor
ICAgICAgICBpZiBzaXguUFkyIGFuZCBub3QgaXNpbnN0YW5jZShuYW1lLCBzdHIpOgorICAgICAg
ICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICAgICBweXRlc3QuUHl0ZXN0V2Fybmlu
ZygKKyAgICAgICAgICAgICAgICAgICAgIkVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgeyFyfSBz
aG91bGQgYmUgc3RyIi5mb3JtYXQobmFtZSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICApCisKICAgICBkZWYgc2V0ZW52KHNlbGYsIG5hbWUsIHZhbHVlLCBwcmVwZW5kPU5vbmUpOgog
ICAgICAgICAiIiIgU2V0IGVudmlyb25tZW50IHZhcmlhYmxlIGBgbmFtZWBgIHRvIGBgdmFsdWVg
YC4gIElmIGBgcHJlcGVuZGBgCiAgICAgICAgIGlzIGEgY2hhcmFjdGVyLCByZWFkIHRoZSBjdXJy
ZW50IGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlCiAgICAgICAgIGFuZCBwcmVwZW5kIHRoZSBg
YHZhbHVlYGAgYWRqb2luZWQgd2l0aCB0aGUgYGBwcmVwZW5kYGAgY2hhcmFjdGVyLiIiIgotICAg
ICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUs
IHN0cik6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgICAgIHB5dGVz
dC5QeXRlc3RXYXJuaW5nKAorICAgICAgICAgICAgICAgICAgICAiVmFsdWUgb2YgZW52aXJvbm1l
bnQgdmFyaWFibGUge25hbWV9IHR5cGUgc2hvdWxkIGJlIHN0ciwgYnV0IGdvdCAiCisgICAgICAg
ICAgICAgICAgICAgICJ7dmFsdWUhcn0gKHR5cGU6IHt0eXBlfSk7IGNvbnZlcnRlZCB0byBzdHIg
aW1wbGljaXRseSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1uYW1lLCB2
YWx1ZT12YWx1ZSwgdHlwZT10eXBlKHZhbHVlKS5fX25hbWVfXworICAgICAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICBzdGFja2xldmVsPTIsCisg
ICAgICAgICAgICApCisgICAgICAgICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkKICAgICAgICAgaWYg
cHJlcGVuZCBhbmQgbmFtZSBpbiBvcy5lbnZpcm9uOgogICAgICAgICAgICAgdmFsdWUgPSB2YWx1
ZSArIHByZXBlbmQgKyBvcy5lbnZpcm9uW25hbWVdCisgICAgICAgIHNlbGYuX3dhcm5faWZfZW52
X25hbWVfaXNfbm90X3N0cihuYW1lKQogICAgICAgICBzZWxmLnNldGl0ZW0ob3MuZW52aXJvbiwg
bmFtZSwgdmFsdWUpCiAKICAgICBkZWYgZGVsZW52KHNlbGYsIG5hbWUsIHJhaXNpbmc9VHJ1ZSk6
Ci0gICAgICAgICIiIiBEZWxldGUgYGBuYW1lYGAgZnJvbSB0aGUgZW52aXJvbm1lbnQuIFJhaXNl
IEtleUVycm9yIGl0IGRvZXMgbm90Ci0gICAgICAgIGV4aXN0LgorICAgICAgICAiIiIgRGVsZXRl
IGBgbmFtZWBgIGZyb20gdGhlIGVudmlyb25tZW50LiBSYWlzZSBLZXlFcnJvciBpZiBpdCBkb2Vz
CisgICAgICAgIG5vdCBleGlzdC4KIAogICAgICAgICBJZiBgYHJhaXNpbmdgYCBpcyBzZXQgdG8g
RmFsc2UsIG5vIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCBpZiB0aGUKICAgICAgICAgZW52aXJv
bm1lbnQgdmFyaWFibGUgaXMgbWlzc2luZy4KICAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX3dh
cm5faWZfZW52X25hbWVfaXNfbm90X3N0cihuYW1lKQogICAgICAgICBzZWxmLmRlbGl0ZW0ob3Mu
ZW52aXJvbiwgbmFtZSwgcmFpc2luZz1yYWlzaW5nKQogCiAgICAgZGVmIHN5c3BhdGhfcHJlcGVu
ZChzZWxmLCBwYXRoKToKICAgICAgICAgIiIiIFByZXBlbmQgYGBwYXRoYGAgdG8gYGBzeXMucGF0
aGBgIGxpc3Qgb2YgaW1wb3J0IGxvY2F0aW9ucy4gIiIiCisgICAgICAgIGZyb20gcGtnX3Jlc291
cmNlcyBpbXBvcnQgZml4dXBfbmFtZXNwYWNlX3BhY2thZ2VzCisKICAgICAgICAgaWYgc2VsZi5f
c2F2ZXN5c3BhdGggaXMgTm9uZToKICAgICAgICAgICAgIHNlbGYuX3NhdmVzeXNwYXRoID0gc3lz
LnBhdGhbOl0KICAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHN0cihwYXRoKSkKIAorICAgICAg
ICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9weXBhL3NldHVwdG9vbHMvYmxvYi9kOGI5MDFiYy9kb2Nz
L3BrZ19yZXNvdXJjZXMudHh0I0wxNjItTDE3MQorICAgICAgICBmaXh1cF9uYW1lc3BhY2VfcGFj
a2FnZXMoc3RyKHBhdGgpKQorCisgICAgICAgICMgQSBjYWxsIHRvIHN5c3BhdGhpbnNlcnQoKSB1
c3VhbGx5IG1lYW5zIHRoYXQgdGhlIGNhbGxlciB3YW50cyB0bworICAgICAgICAjIGltcG9ydCBz
b21lIGR5bmFtaWNhbGx5IGNyZWF0ZWQgZmlsZXMsIHRodXMgd2l0aCBweXRob24zIHdlCisgICAg
ICAgICMgaW52YWxpZGF0ZSBpdHMgaW1wb3J0IGNhY2hlcy4KKyAgICAgICAgIyBUaGlzIGlzIGVz
cGVjaWFsbHkgaW1wb3J0YW50IHdoZW4gYW55IG5hbWVzcGFjZSBwYWNrYWdlIGlzIGluIHVzZWQs
CisgICAgICAgICMgc2luY2UgdGhlbiB0aGUgbXRpbWUgYmFzZWQgRmlsZUZpbmRlciBjYWNoZSAo
dGhhdCBnZXRzIGNyZWF0ZWQgaW4KKyAgICAgICAgIyB0aGlzIGNhc2UgYWxyZWFkeSkgZ2V0cyBu
b3QgaW52YWxpZGF0ZWQgd2hlbiB3cml0aW5nIHRoZSBuZXcgZmlsZXMKKyAgICAgICAgIyBxdWlj
a2x5IGFmdGVyd2FyZHMuCisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDMpOgor
ICAgICAgICAgICAgZnJvbSBpbXBvcnRsaWIgaW1wb3J0IGludmFsaWRhdGVfY2FjaGVzCisKKyAg
ICAgICAgICAgIGludmFsaWRhdGVfY2FjaGVzKCkKKwogICAgIGRlZiBjaGRpcihzZWxmLCBwYXRo
KToKICAgICAgICAgIiIiIENoYW5nZSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB0byB0
aGUgc3BlY2lmaWVkIHBhdGguCiAgICAgICAgIFBhdGggY2FuIGJlIGEgc3RyaW5nIG9yIGEgcHku
cGF0aC5sb2NhbCBvYmplY3QuCkBAIC0yNDIsNiArMjkyLDkgQEAgY2xhc3MgTW9ua2V5UGF0Y2go
b2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX2N3ZCA9IG9zLmdldGN3ZCgpCiAgICAgICAgIGlm
IGhhc2F0dHIocGF0aCwgImNoZGlyIik6CiAgICAgICAgICAgICBwYXRoLmNoZGlyKCkKKyAgICAg
ICAgZWxpZiBpc2luc3RhbmNlKHBhdGgsIFBhdGgpOgorICAgICAgICAgICAgIyBtb2Rlcm4gcHl0
aG9uIHVzZXMgdGhlIGZzcGF0aCBwcm90b2NvbCBoZXJlIExFR0FDWQorICAgICAgICAgICAgb3Mu
Y2hkaXIoc3RyKHBhdGgpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgb3MuY2hkaXIocGF0
aCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvbm9kZXMucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvX3B5dGVzdC9ub2Rlcy5weQppbmRleCBlZjc0YzUzZWJhNGUxY2NhNjQ1ZWM2
ZjZmYjk2ZDczYTliYTI4NTJmLi4yMDZlOWFlMTYzZTM4YjdkYmJhMTE2OTNiYWI3OTY4ZDAwZTVk
MTljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9ub2Rlcy5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9ub2Rlcy5weQpAQCAtMSwxNCArMSwxOCBAQAotZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBvcworaW1wb3J0IHdhcm5pbmdzCiAK
LWltcG9ydCBzaXgKIGltcG9ydCBweQotaW1wb3J0IGF0dHIKK2ltcG9ydCBzaXgKIAotaW1wb3J0
IF9weXRlc3QKIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0KLWZyb20gX3B5dGVzdC5tYXJrLnN0cnVj
dHVyZXMgaW1wb3J0IE5vZGVLZXl3b3JkcywgTWFya0luZm8KK2Zyb20gX3B5dGVzdC5jb21wYXQg
aW1wb3J0IGdldGZzbGluZW5vCitmcm9tIF9weXRlc3QubWFyay5zdHJ1Y3R1cmVzIGltcG9ydCBO
b2RlS2V5d29yZHMKK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbAogCiBTRVAgPSAi
LyIKIApAQCAtMjIsNyArMjYsNyBAQCBkZWYgX3NwbGl0bm9kZShub2RlaWQpOgogICAgICAgICAn
JwogICAgICAgICAndGVzdGluZy9jb2RlJwogICAgICAgICAndGVzdGluZy9jb2RlL3Rlc3RfZXhj
aW5mby5weScKLSAgICAgICAgJ3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHk6OlRlc3RGb3Jt
YXR0ZWRFeGNpbmZvOjooKScKKyAgICAgICAgJ3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHk6
OlRlc3RGb3JtYXR0ZWRFeGNpbmZvJwogCiAgICAgUmV0dXJuIHZhbHVlcyBhcmUgbGlzdHMgZS5n
LgogICAgICAgICBbXQpAQCAtMzQsNyArMzgsNyBAQCBkZWYgX3NwbGl0bm9kZShub2RlaWQpOgog
ICAgICAgICAjIElmIHRoZXJlIGlzIG5vIHJvb3Qgbm9kZSBhdCBhbGwsIHJldHVybiBhbiBlbXB0
eSBsaXN0IHNvIHRoZSBjYWxsZXIncyBsb2dpYyBjYW4gcmVtYWluIHNhbmUKICAgICAgICAgcmV0
dXJuIFtdCiAgICAgcGFydHMgPSBub2RlaWQuc3BsaXQoU0VQKQotICAgICMgUmVwbGFjZSBzaW5n
bGUgbGFzdCBlbGVtZW50ICd0ZXN0X2Zvby5weTo6QmFyOjooKScgd2l0aCBtdWx0aXBsZSBlbGVt
ZW50cyAndGVzdF9mb28ucHknLCAnQmFyJywgJygpJworICAgICMgUmVwbGFjZSBzaW5nbGUgbGFz
dCBlbGVtZW50ICd0ZXN0X2Zvby5weTo6QmFyJyB3aXRoIG11bHRpcGxlIGVsZW1lbnRzICd0ZXN0
X2Zvby5weScsICdCYXInCiAgICAgcGFydHNbLTE6XSA9IHBhcnRzWy0xXS5zcGxpdCgiOjoiKQog
ICAgIHJldHVybiBwYXJ0cwogCkBAIC00MiwyOSArNDYsMTMgQEAgZGVmIF9zcGxpdG5vZGUobm9k
ZWlkKToKIGRlZiBpc2NoaWxkbm9kZShiYXNlaWQsIG5vZGVpZCk6CiAgICAgIiIiUmV0dXJuIFRy
dWUgaWYgdGhlIG5vZGVpZCBpcyBhIGNoaWxkIG5vZGUgb2YgdGhlIGJhc2VpZC4KIAotICAgIEUu
Zy4gJ2Zvby9iYXI6OkJhejo6KCknIGlzIGEgY2hpbGQgb2YgJ2ZvbycsICdmb28vYmFyJyBhbmQg
J2Zvby9iYXI6OkJheicsIGJ1dCBub3Qgb2YgJ2Zvby9ibG9ycCcKKyAgICBFLmcuICdmb28vYmFy
OjpCYXonIGlzIGEgY2hpbGQgb2YgJ2ZvbycsICdmb28vYmFyJyBhbmQgJ2Zvby9iYXI6OkJheics
IGJ1dCBub3Qgb2YgJ2Zvby9ibG9ycCcKICAgICAiIiIKICAgICBiYXNlX3BhcnRzID0gX3NwbGl0
bm9kZShiYXNlaWQpCiAgICAgbm9kZV9wYXJ0cyA9IF9zcGxpdG5vZGUobm9kZWlkKQogICAgIGlm
IGxlbihub2RlX3BhcnRzKSA8IGxlbihiYXNlX3BhcnRzKToKICAgICAgICAgcmV0dXJuIEZhbHNl
Ci0gICAgcmV0dXJuIG5vZGVfcGFydHNbOmxlbihiYXNlX3BhcnRzKV0gPT0gYmFzZV9wYXJ0cwot
Ci0KLUBhdHRyLnMKLWNsYXNzIF9Db21wYXRQcm9wZXJ0eShvYmplY3QpOgotICAgIG5hbWUgPSBh
dHRyLmliKCkKLQotICAgIGRlZiBfX2dldF9fKHNlbGYsIG9iaiwgb3duZXIpOgotICAgICAgICBp
ZiBvYmogaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBzZWxmCi0KLSAgICAgICAgIyBUT0RP
OiByZWVuYWJsZSBpbiB0aGUgZmVhdHVyZXMgYnJhbmNoCi0gICAgICAgICMgd2FybmluZ3Mud2Fy
bigKLSAgICAgICAgIyAgICAgInVzYWdlIG9mIHtvd25lciFyfS57bmFtZX0gaXMgZGVwcmVjYXRl
ZCwgcGxlYXNlIHVzZSBweXRlc3Que25hbWV9IGluc3RlYWQiLmZvcm1hdCgKLSAgICAgICAgIyAg
ICAgICAgIG5hbWU9c2VsZi5uYW1lLCBvd25lcj10eXBlKG93bmVyKS5fX25hbWVfXyksCi0gICAg
ICAgICMgICAgIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKLSAgICAg
ICAgcmV0dXJuIGdldGF0dHIoX19pbXBvcnRfXygicHl0ZXN0IiksIHNlbGYubmFtZSkKKyAgICBy
ZXR1cm4gbm9kZV9wYXJ0c1s6IGxlbihiYXNlX3BhcnRzKV0gPT0gYmFzZV9wYXJ0cwogCiAKIGNs
YXNzIE5vZGUob2JqZWN0KToKQEAgLTEwMiw0OSArOTAsNTEgQEAgY2xhc3MgTm9kZShvYmplY3Qp
OgogICAgICAgICBzZWxmLl9uYW1lMnBzZXVkb2ZpeHR1cmVkZWYgPSB7fQogCiAgICAgICAgIGlm
IG5vZGVpZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFzc2VydCAiOjooKSIgbm90IGluIG5v
ZGVpZAogICAgICAgICAgICAgc2VsZi5fbm9kZWlkID0gbm9kZWlkCiAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBhc3NlcnQgcGFyZW50IGlzIG5vdCBOb25lCi0gICAgICAgICAgICBzZWxmLl9u
b2RlaWQgPSBzZWxmLnBhcmVudC5ub2RlaWQgKyAiOjoiICsgc2VsZi5uYW1lCisgICAgICAgICAg
ICBzZWxmLl9ub2RlaWQgPSBzZWxmLnBhcmVudC5ub2RlaWQKKyAgICAgICAgICAgIGlmIHNlbGYu
bmFtZSAhPSAiKCkiOgorICAgICAgICAgICAgICAgIHNlbGYuX25vZGVpZCArPSAiOjoiICsgc2Vs
Zi5uYW1lCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaWhvb2soc2VsZik6CiAgICAgICAgICIi
IiBmc3BhdGggc2Vuc2l0aXZlIGhvb2sgcHJveHkgdXNlZCB0byBjYWxsIHB5dGVzdCBob29rcyIi
IgogICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLmdldGhvb2twcm94eShzZWxmLmZzcGF0aCkK
IAotICAgIE1vZHVsZSA9IF9Db21wYXRQcm9wZXJ0eSgiTW9kdWxlIikKLSAgICBDbGFzcyA9IF9D
b21wYXRQcm9wZXJ0eSgiQ2xhc3MiKQotICAgIEluc3RhbmNlID0gX0NvbXBhdFByb3BlcnR5KCJJ
bnN0YW5jZSIpCi0gICAgRnVuY3Rpb24gPSBfQ29tcGF0UHJvcGVydHkoIkZ1bmN0aW9uIikKLSAg
ICBGaWxlID0gX0NvbXBhdFByb3BlcnR5KCJGaWxlIikKLSAgICBJdGVtID0gX0NvbXBhdFByb3Bl
cnR5KCJJdGVtIikKLQotICAgIGRlZiBfZ2V0Y3VzdG9tY2xhc3Moc2VsZiwgbmFtZSk6Ci0gICAg
ICAgIG1heWJlX2NvbXBhdHByb3AgPSBnZXRhdHRyKHR5cGUoc2VsZiksIG5hbWUpCi0gICAgICAg
IGlmIGlzaW5zdGFuY2UobWF5YmVfY29tcGF0cHJvcCwgX0NvbXBhdFByb3BlcnR5KToKLSAgICAg
ICAgICAgIHJldHVybiBnZXRhdHRyKF9faW1wb3J0X18oInB5dGVzdCIpLCBuYW1lKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgY2xzID0gZ2V0YXR0cihzZWxmLCBuYW1lKQotICAgICAgICAg
ICAgIyBUT0RPOiByZWVuYWJsZSBpbiB0aGUgZmVhdHVyZXMgYnJhbmNoCi0gICAgICAgICAgICAj
IHdhcm5pbmdzLndhcm4oInVzZSBvZiBub2RlLiVzIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAg
ICAgICMgICAgInVzZSBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKC4uLikgdG8gY3JlYXRlIGN1
c3RvbSAiCi0gICAgICAgICAgICAjICAgICJjb2xsZWN0aW9uIG5vZGVzIiAlIG5hbWUsIGNhdGVn
b3J5PURlcHJlY2F0aW9uV2FybmluZykKLSAgICAgICAgcmV0dXJuIGNscwotCiAgICAgZGVmIF9f
cmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjwlcyAlcj4iICUgKHNlbGYuX19jbGFzc19f
Ll9fbmFtZV9fLCBnZXRhdHRyKHNlbGYsICJuYW1lIiwgTm9uZSkpCi0KLSAgICBkZWYgd2Fybihz
ZWxmLCBjb2RlLCBtZXNzYWdlKToKLSAgICAgICAgIiIiIGdlbmVyYXRlIGEgd2FybmluZyB3aXRo
IHRoZSBnaXZlbiBjb2RlIGFuZCBtZXNzYWdlIGZvciB0aGlzCi0gICAgICAgIGl0ZW0uICIiIgot
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2RlLCBzdHIpCi0gICAgICAgIGZzbG9jYXRpb24g
PSBnZXRhdHRyKHNlbGYsICJsb2NhdGlvbiIsIE5vbmUpCi0gICAgICAgIGlmIGZzbG9jYXRpb24g
aXMgTm9uZToKLSAgICAgICAgICAgIGZzbG9jYXRpb24gPSBnZXRhdHRyKHNlbGYsICJmc3BhdGgi
LCBOb25lKQotICAgICAgICBzZWxmLmlob29rLnB5dGVzdF9sb2d3YXJuaW5nLmNhbGxfaGlzdG9y
aWMoCi0gICAgICAgICAgICBrd2FyZ3M9ZGljdCgKLSAgICAgICAgICAgICAgICBjb2RlPWNvZGUs
IG1lc3NhZ2U9bWVzc2FnZSwgbm9kZWlkPXNlbGYubm9kZWlkLCBmc2xvY2F0aW9uPWZzbG9jYXRp
b24KKyAgICAgICAgcmV0dXJuICI8JXMgJXM+IiAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywg
Z2V0YXR0cihzZWxmLCAibmFtZSIsIE5vbmUpKQorCisgICAgZGVmIHdhcm4oc2VsZiwgd2Fybmlu
Zyk6CisgICAgICAgICIiIklzc3VlIGEgd2FybmluZyBmb3IgdGhpcyBpdGVtLgorCisgICAgICAg
IFdhcm5pbmdzIHdpbGwgYmUgZGlzcGxheWVkIGFmdGVyIHRoZSB0ZXN0IHNlc3Npb24sIHVubGVz
cyBleHBsaWNpdGx5IHN1cHByZXNzZWQKKworICAgICAgICA6cGFyYW0gV2FybmluZyB3YXJuaW5n
OiB0aGUgd2FybmluZyBpbnN0YW5jZSB0byBpc3N1ZS4gTXVzdCBiZSBhIHN1YmNsYXNzIG9mIFB5
dGVzdFdhcm5pbmcuCisKKyAgICAgICAgOnJhaXNlIFZhbHVlRXJyb3I6IGlmIGBgd2FybmluZ2Bg
IGluc3RhbmNlIGlzIG5vdCBhIHN1YmNsYXNzIG9mIFB5dGVzdFdhcm5pbmcuCisKKyAgICAgICAg
RXhhbXBsZSB1c2FnZToKKworICAgICAgICAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAg
ICAgICAgIG5vZGUud2FybihQeXRlc3RXYXJuaW5nKCJzb21lIG1lc3NhZ2UiKSkKKworICAgICAg
ICAiIiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVzdFdh
cm5pbmcKKworICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh3YXJuaW5nLCBQeXRlc3RXYXJuaW5n
KToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgIndhcm5p
bmcgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQeXRlc3RXYXJuaW5nIG9yIHN1YmNsYXNzLCBnb3Qg
eyFyfSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICB3YXJuaW5nCisgICAgICAgICAgICAg
ICAgKQogICAgICAgICAgICAgKQorICAgICAgICBwYXRoLCBsaW5lbm8gPSBnZXRfZnNsb2NhdGlv
bl9mcm9tX2l0ZW0oc2VsZikKKyAgICAgICAgd2FybmluZ3Mud2Fybl9leHBsaWNpdCgKKyAgICAg
ICAgICAgIHdhcm5pbmcsCisgICAgICAgICAgICBjYXRlZ29yeT1Ob25lLAorICAgICAgICAgICAg
ZmlsZW5hbWU9c3RyKHBhdGgpLAorICAgICAgICAgICAgbGluZW5vPWxpbmVubyArIDEgaWYgbGlu
ZW5vIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAgICAgICAgKQogCiAgICAgIyBtZXRob2RzIGZv
ciBvcmRlcmluZyBub2RlcwpAQCAtMTczLDEwICsxNjMsMTMgQEAgY2xhc3MgTm9kZShvYmplY3Qp
OgogICAgICAgICBjaGFpbi5yZXZlcnNlKCkKICAgICAgICAgcmV0dXJuIGNoYWluCiAKLSAgICBk
ZWYgYWRkX21hcmtlcihzZWxmLCBtYXJrZXIpOgorICAgIGRlZiBhZGRfbWFya2VyKHNlbGYsIG1h
cmtlciwgYXBwZW5kPVRydWUpOgogICAgICAgICAiIiJkeW5hbWljYWxseSBhZGQgYSBtYXJrZXIg
b2JqZWN0IHRvIHRoZSBub2RlLgogCi0gICAgICAgIDp0eXBlIG1hcmtlcjogc3RyIG9yIHB5dGVz
dC5tYXJrLioKKyAgICAgICAgOnR5cGUgbWFya2VyOiBgYHN0cmBgIG9yIGBgcHl0ZXN0Lm1hcmsu
KmBgICBvYmplY3QKKyAgICAgICAgOnBhcmFtIG1hcmtlcjoKKyAgICAgICAgICAgIGBgYXBwZW5k
PVRydWVgYCB3aGV0aGVyIHRvIGFwcGVuZCB0aGUgbWFya2VyLAorICAgICAgICAgICAgaWYgYGBG
YWxzZWBgIGluc2VydCBhdCBwb3NpdGlvbiBgYDBgYC4KICAgICAgICAgIiIiCiAgICAgICAgIGZy
b20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrRGVjb3JhdG9yLCBNQVJLX0dFTgogCkBAIC0xODUs
NyArMTc4LDEwIEBAIGNsYXNzIE5vZGUob2JqZWN0KToKICAgICAgICAgZWxpZiBub3QgaXNpbnN0
YW5jZShtYXJrZXIsIE1hcmtEZWNvcmF0b3IpOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiaXMgbm90IGEgc3RyaW5nIG9yIHB5dGVzdC5tYXJrLiogTWFya2VyIikKICAgICAgICAgc2Vs
Zi5rZXl3b3Jkc1ttYXJrZXIubmFtZV0gPSBtYXJrZXIKLSAgICAgICAgc2VsZi5vd25fbWFya2Vy
cy5hcHBlbmQobWFya2VyLm1hcmspCisgICAgICAgIGlmIGFwcGVuZDoKKyAgICAgICAgICAgIHNl
bGYub3duX21hcmtlcnMuYXBwZW5kKG1hcmtlci5tYXJrKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgc2VsZi5vd25fbWFya2Vycy5pbnNlcnQoMCwgbWFya2VyLm1hcmspCiAKICAgICBkZWYg
aXRlcl9tYXJrZXJzKHNlbGYsIG5hbWU9Tm9uZSk6CiAgICAgICAgICIiIgpAQCAtMjE2LDIwICsy
MTIsNiBAQCBjbGFzcyBOb2RlKG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4g
bmV4dChzZWxmLml0ZXJfbWFya2VycyhuYW1lPW5hbWUpLCBkZWZhdWx0KQogCi0gICAgZGVmIGdl
dF9tYXJrZXIoc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIiBnZXQgYSBtYXJrZXIgb2JqZWN0IGZy
b20gdGhpcyBub2RlIG9yIE5vbmUgaWYKLSAgICAgICAgdGhlIG5vZGUgZG9lc24ndCBoYXZlIGEg
bWFya2VyIHdpdGggdGhhdCBuYW1lLgotCi0gICAgICAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjYKLSAg
ICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZgot
ICAgICAgICAgICAgOm1ldGg6YE5vZGUuZ2V0X2Nsb3Nlc3RfbWFya2VyIDxfcHl0ZXN0Lm5vZGVz
Lk5vZGUuZ2V0X2Nsb3Nlc3RfbWFya2VyPmAgYW5kCi0gICAgICAgICAgICA6bWV0aDpgTm9kZS5p
dGVyX21hcmtlcnMgPF9weXRlc3Qubm9kZXMuTm9kZS5pdGVyX21hcmtlcnM+YCwgc2VlIDpyZWY6
YHVwZGF0ZSBtYXJrZXIgY29kZWAKLSAgICAgICAgICAgIGZvciBtb3JlIGRldGFpbHMuCi0gICAg
ICAgICIiIgotICAgICAgICBtYXJrZXJzID0gbGlzdChzZWxmLml0ZXJfbWFya2VycyhuYW1lPW5h
bWUpKQotICAgICAgICBpZiBtYXJrZXJzOgotICAgICAgICAgICAgcmV0dXJuIE1hcmtJbmZvKG1h
cmtlcnMpCi0KICAgICBkZWYgbGlzdGV4dHJha2V5d29yZHMoc2VsZik6CiAgICAgICAgICIiIiBS
ZXR1cm4gYSBzZXQgb2YgYWxsIGV4dHJhIGtleXdvcmRzIGluIHNlbGYgYW5kIGFueSBwYXJlbnRz
LiIiIgogICAgICAgICBleHRyYV9rZXl3b3JkcyA9IHNldCgpCkBAIC0yNjAsMTEgKzI0MiwxNCBA
QCBjbGFzcyBOb2RlKG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBfcmVwcl9mYWls
dXJlX3B5KHNlbGYsIGV4Y2luZm8sIHN0eWxlPU5vbmUpOgorICAgICAgICBpZiBleGNpbmZvLmVy
cmlzaW5zdGFuY2UoZmFpbC5FeGNlcHRpb24pOgorICAgICAgICAgICAgaWYgbm90IGV4Y2luZm8u
dmFsdWUucHl0cmFjZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2l4LnRleHRfdHlwZShleGNp
bmZvLnZhbHVlKQogICAgICAgICBmbSA9IHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKICAg
ICAgICAgaWYgZXhjaW5mby5lcnJpc2luc3RhbmNlKGZtLkZpeHR1cmVMb29rdXBFcnJvcik6CiAg
ICAgICAgICAgICByZXR1cm4gZXhjaW5mby52YWx1ZS5mb3JtYXRyZXByKCkKICAgICAgICAgdGJm
aWx0ZXIgPSBUcnVlCi0gICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi5mdWxsdHJhY2U6Cisg
ICAgICAgIGlmIHNlbGYuY29uZmlnLmdldG9wdGlvbigiZnVsbHRyYWNlIiwgRmFsc2UpOgogICAg
ICAgICAgICAgc3R5bGUgPSAibG9uZyIKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHRiID0g
X3B5dGVzdC5fY29kZS5UcmFjZWJhY2soW2V4Y2luZm8udHJhY2ViYWNrWy0xXV0pCkBAIC0yNzYs
MTEgKzI2MSwxNiBAQCBjbGFzcyBOb2RlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc3R5bGUg
PSAibG9uZyIKICAgICAgICAgIyBYWFggc2hvdWxkIGV4Y2luZm8uZ2V0cmVwciByZWNvcmQgYWxs
IGRhdGEgYW5kIHRvdGVybWluYWwoKSBwcm9jZXNzIGl0PwogICAgICAgICBpZiBzdHlsZSBpcyBO
b25lOgotICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgPT0gInNob3J0
IjoKKyAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLmdldG9wdGlvbigidGJzdHlsZSIsICJhdXRv
IikgPT0gInNob3J0IjoKICAgICAgICAgICAgICAgICBzdHlsZSA9ICJzaG9ydCIKICAgICAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKIAorICAgICAgICBpZiBz
ZWxmLmNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2UiLCAwKSA+IDE6CisgICAgICAgICAgICB0cnVu
Y2F0ZV9sb2NhbHMgPSBGYWxzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHJ1bmNhdGVf
bG9jYWxzID0gVHJ1ZQorCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG9zLmdldGN3ZCgpCiAg
ICAgICAgICAgICBhYnNwYXRoID0gRmFsc2UKQEAgLTI5MCwxNCArMjgwLDMzIEBAIGNsYXNzIE5v
ZGUob2JqZWN0KToKICAgICAgICAgcmV0dXJuIGV4Y2luZm8uZ2V0cmVwcigKICAgICAgICAgICAg
IGZ1bmNhcmdzPVRydWUsCiAgICAgICAgICAgICBhYnNwYXRoPWFic3BhdGgsCi0gICAgICAgICAg
ICBzaG93bG9jYWxzPXNlbGYuY29uZmlnLm9wdGlvbi5zaG93bG9jYWxzLAorICAgICAgICAgICAg
c2hvd2xvY2Fscz1zZWxmLmNvbmZpZy5nZXRvcHRpb24oInNob3dsb2NhbHMiLCBGYWxzZSksCiAg
ICAgICAgICAgICBzdHlsZT1zdHlsZSwKICAgICAgICAgICAgIHRiZmlsdGVyPXRiZmlsdGVyLAor
ICAgICAgICAgICAgdHJ1bmNhdGVfbG9jYWxzPXRydW5jYXRlX2xvY2FscywKICAgICAgICAgKQog
CiAgICAgcmVwcl9mYWlsdXJlID0gX3JlcHJfZmFpbHVyZV9weQogCiAKK2RlZiBnZXRfZnNsb2Nh
dGlvbl9mcm9tX2l0ZW0oaXRlbSk6CisgICAgIiIiVHJpZXMgdG8gZXh0cmFjdCB0aGUgYWN0dWFs
IGxvY2F0aW9uIGZyb20gYW4gaXRlbSwgZGVwZW5kaW5nIG9uIGF2YWlsYWJsZSBhdHRyaWJ1dGVz
OgorCisgICAgKiAiZnNsb2NhdGlvbiI6IGEgcGFpciAocGF0aCwgbGluZW5vKQorICAgICogIm9i
aiI6IGEgUHl0aG9uIG9iamVjdCB0aGF0IHRoZSBpdGVtIHdyYXBzLgorICAgICogImZzcGF0aCI6
IGp1c3QgYSBwYXRoCisKKyAgICA6cnR5cGU6IGEgdHVwbGUgb2YgKHN0cnxMb2NhbFBhdGgsIGlu
dCkgd2l0aCBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIuCisgICAgIiIiCisgICAgcmVzdWx0ID0g
Z2V0YXR0cihpdGVtLCAibG9jYXRpb24iLCBOb25lKQorICAgIGlmIHJlc3VsdCBpcyBub3QgTm9u
ZToKKyAgICAgICAgcmV0dXJuIHJlc3VsdFs6Ml0KKyAgICBvYmogPSBnZXRhdHRyKGl0ZW0sICJv
YmoiLCBOb25lKQorICAgIGlmIG9iaiBpcyBub3QgTm9uZToKKyAgICAgICAgcmV0dXJuIGdldGZz
bGluZW5vKG9iaikKKyAgICByZXR1cm4gZ2V0YXR0cihpdGVtLCAiZnNwYXRoIiwgInVua25vd24g
bG9jYXRpb24iKSwgLTEKKworCiBjbGFzcyBDb2xsZWN0b3IoTm9kZSk6CiAgICAgIiIiIENvbGxl
Y3RvciBpbnN0YW5jZXMgY3JlYXRlIGNoaWxkcmVuIHRocm91Z2ggY29sbGVjdCgpCiAgICAgICAg
IGFuZCB0aHVzIGl0ZXJhdGl2ZWx5IGJ1aWxkIGEgdHJlZS4KQEAgLTMxNyw3ICszMjYsMTQgQEAg
Y2xhc3MgQ29sbGVjdG9yKE5vZGUpOgogICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2Uo
c2VsZi5Db2xsZWN0RXJyb3IpOgogICAgICAgICAgICAgZXhjID0gZXhjaW5mby52YWx1ZQogICAg
ICAgICAgICAgcmV0dXJuIHN0cihleGMuYXJnc1swXSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jl
cHJfZmFpbHVyZV9weShleGNpbmZvLCBzdHlsZT0ic2hvcnQiKQorCisgICAgICAgICMgUmVzcGVj
dCBleHBsaWNpdCB0YnN0eWxlIG9wdGlvbiwgYnV0IGRlZmF1bHQgdG8gInNob3J0IgorICAgICAg
ICAjIChOb25lLl9yZXByX2ZhaWx1cmVfcHkgZGVmYXVsdHMgdG8gImxvbmciIHdpdGhvdXQgImZ1
bGx0cmFjZSIgb3B0aW9uKS4KKyAgICAgICAgdGJzdHlsZSA9IHNlbGYuY29uZmlnLmdldG9wdGlv
bigidGJzdHlsZSIsICJhdXRvIikKKyAgICAgICAgaWYgdGJzdHlsZSA9PSAiYXV0byI6CisgICAg
ICAgICAgICB0YnN0eWxlID0gInNob3J0IgorCisgICAgICAgIHJldHVybiBzZWxmLl9yZXByX2Zh
aWx1cmVfcHkoZXhjaW5mbywgc3R5bGU9dGJzdHlsZSkKIAogICAgIGRlZiBfcHJ1bmV0cmFjZWJh
Y2soc2VsZiwgZXhjaW5mbyk6CiAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImZzcGF0aCIpOgpA
QCAtMzMxLDExICszNDcsMTAgQEAgY2xhc3MgQ29sbGVjdG9yKE5vZGUpOgogZGVmIF9jaGVja19p
bml0aWFscGF0aHNfZm9yX3JlbHBhdGgoc2Vzc2lvbiwgZnNwYXRoKToKICAgICBmb3IgaW5pdGlh
bF9wYXRoIGluIHNlc3Npb24uX2luaXRpYWxwYXRoczoKICAgICAgICAgaWYgZnNwYXRoLmNvbW1v
bihpbml0aWFsX3BhdGgpID09IGluaXRpYWxfcGF0aDoKLSAgICAgICAgICAgIHJldHVybiBmc3Bh
dGgucmVsdG8oaW5pdGlhbF9wYXRoLmRpcm5hbWUpCisgICAgICAgICAgICByZXR1cm4gZnNwYXRo
LnJlbHRvKGluaXRpYWxfcGF0aCkKIAogCiBjbGFzcyBGU0NvbGxlY3RvcihDb2xsZWN0b3IpOgot
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZzcGF0aCwgcGFyZW50PU5vbmUsIGNvbmZpZz1Ob25l
LCBzZXNzaW9uPU5vbmUsIG5vZGVpZD1Ob25lKToKICAgICAgICAgZnNwYXRoID0gcHkucGF0aC5s
b2NhbChmc3BhdGgpICAjIHh4eCBvbmx5IGZvciB0ZXN0X3Jlc3VsdGxvZy5weT8KICAgICAgICAg
bmFtZSA9IGZzcGF0aC5iYXNlbmFtZQpAQCAtMzUzLDcgKzM2OCw3IEBAIGNsYXNzIEZTQ29sbGVj
dG9yKENvbGxlY3Rvcik6CiAKICAgICAgICAgICAgIGlmIG5vdCBub2RlaWQ6CiAgICAgICAgICAg
ICAgICAgbm9kZWlkID0gX2NoZWNrX2luaXRpYWxwYXRoc19mb3JfcmVscGF0aChzZXNzaW9uLCBm
c3BhdGgpCi0gICAgICAgICAgICBpZiBvcy5zZXAgIT0gU0VQOgorICAgICAgICAgICAgaWYgbm9k
ZWlkIGFuZCBvcy5zZXAgIT0gU0VQOgogICAgICAgICAgICAgICAgIG5vZGVpZCA9IG5vZGVpZC5y
ZXBsYWNlKG9zLnNlcCwgU0VQKQogCiAgICAgICAgIHN1cGVyKEZTQ29sbGVjdG9yLCBzZWxmKS5f
X2luaXRfXygKQEAgLTM2OSw2ICszODQsNyBAQCBjbGFzcyBJdGVtKE5vZGUpOgogICAgICIiIiBh
IGJhc2ljIHRlc3QgaW52b2NhdGlvbiBpdGVtLiBOb3RlIHRoYXQgZm9yIGEgc2luZ2xlIGZ1bmN0
aW9uCiAgICAgdGhlcmUgbWlnaHQgYmUgbXVsdGlwbGUgdGVzdCBpbnZvY2F0aW9uIGl0ZW1zLgog
ICAgICIiIgorCiAgICAgbmV4dGl0ZW0gPSBOb25lCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwg
bmFtZSwgcGFyZW50PU5vbmUsIGNvbmZpZz1Ob25lLCBzZXNzaW9uPU5vbmUsIG5vZGVpZD1Ob25l
KToKQEAgLTQwNywxMyArNDIzLDcgQEAgY2xhc3MgSXRlbShOb2RlKToKICAgICAgICAgICAgIHJl
dHVybiBzZWxmLl9sb2NhdGlvbgogICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CiAgICAg
ICAgICAgICBsb2NhdGlvbiA9IHNlbGYucmVwb3J0aW5mbygpCi0gICAgICAgICAgICAjIGJlc3Ry
ZWxwYXRoIGlzIGEgcXVpdGUgc2xvdyBmdW5jdGlvbgotICAgICAgICAgICAgY2FjaGUgPSBzZWxm
LmNvbmZpZy5fX2RpY3RfXy5zZXRkZWZhdWx0KCJfYmVzdHJlbHBhdGhjYWNoZSIsIHt9KQotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGZzcGF0aCA9IGNhY2hlW2xvY2F0aW9uWzBd
XQotICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAgIGZzcGF0aCA9
IHNlbGYuc2Vzc2lvbi5mc3BhdGguYmVzdHJlbHBhdGgobG9jYXRpb25bMF0pCi0gICAgICAgICAg
ICAgICAgY2FjaGVbbG9jYXRpb25bMF1dID0gZnNwYXRoCisgICAgICAgICAgICBmc3BhdGggPSBz
ZWxmLnNlc3Npb24uX25vZGVfbG9jYXRpb25fdG9fcmVscGF0aChsb2NhdGlvblswXSkKICAgICAg
ICAgICAgIGxvY2F0aW9uID0gKGZzcGF0aCwgbG9jYXRpb25bMV0sIHN0cihsb2NhdGlvblsyXSkp
CiAgICAgICAgICAgICBzZWxmLl9sb2NhdGlvbiA9IGxvY2F0aW9uCiAgICAgICAgICAgICByZXR1
cm4gbG9jYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L25vc2UucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9ub3NlLnB5CmluZGV4IGJiMmU0Mjc3ZDFjODM0ZjI4
ZGY0MTBmNDM4YTA1NmNhODBlYjdkYjYuLmZiYWI5MWRhMjQ5OWI3ODNjNzBlYWMyNDE3MDczMjM5
YmFiYzk1YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L25vc2UucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvbm9zZS5weQpAQCAtMSw5ICsxLDE3IEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiIHJ1biB0ZXN0IHN1aXRlcyB3cml0dGVuIGZvciBub3Nl
LiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwg
cHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy
aW50X2Z1bmN0aW9uCiAKIGltcG9ydCBzeXMKIAotZnJvbSBfcHl0ZXN0IGltcG9ydCB1bml0dGVz
dCwgcnVubmVyLCBweXRob24KK2ltcG9ydCBzaXgKKworaW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0
ZXN0IGltcG9ydCBweXRob24KK2Zyb20gX3B5dGVzdCBpbXBvcnQgcnVubmVyCitmcm9tIF9weXRl
c3QgaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBob29raW1wbAog
CiAKQEAgLTE5LDIwICsyNywxNSBAQCBkZWYgZ2V0X3NraXBfZXhjZXB0aW9ucygpOgogZGVmIHB5
dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbSwgY2FsbCk6CiAgICAgaWYgY2FsbC5leGNpbmZv
IGFuZCBjYWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5jZShnZXRfc2tpcF9leGNlcHRpb25zKCkpOgog
ICAgICAgICAjIGxldCdzIHN1YnN0aXR1dGUgdGhlIGV4Y2luZm8gd2l0aCBhIHB5dGVzdC5za2lw
IG9uZQotICAgICAgICBjYWxsMiA9IGNhbGwuX19jbGFzc19fKGxhbWJkYTogcnVubmVyLnNraXAo
c3RyKGNhbGwuZXhjaW5mby52YWx1ZSkpLCBjYWxsLndoZW4pCisgICAgICAgIGNhbGwyID0gcnVu
bmVyLkNhbGxJbmZvLmZyb21fY2FsbCgKKyAgICAgICAgICAgIGxhbWJkYTogcHl0ZXN0LnNraXAo
c2l4LnRleHRfdHlwZShjYWxsLmV4Y2luZm8udmFsdWUpKSwgY2FsbC53aGVuCisgICAgICAgICkK
ICAgICAgICAgY2FsbC5leGNpbmZvID0gY2FsbDIuZXhjaW5mbwogCiAKIEBob29raW1wbCh0cnls
YXN0PVRydWUpCiBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6CiAgICAgaWYgaXNfcG90
ZW50aWFsX25vc2V0ZXN0KGl0ZW0pOgotICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0ucGFyZW50
LCBweXRob24uR2VuZXJhdG9yKToKLSAgICAgICAgICAgIGdlbiA9IGl0ZW0ucGFyZW50Ci0gICAg
ICAgICAgICBpZiBub3QgaGFzYXR0cihnZW4sICJfbm9zZWdlbnNldHVwIik6Ci0gICAgICAgICAg
ICAgICAgY2FsbF9vcHRpb25hbChnZW4ub2JqLCAic2V0dXAiKQotICAgICAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2UoZ2VuLnBhcmVudCwgcHl0aG9uLkluc3RhbmNlKToKLSAgICAgICAgICAgICAg
ICAgICAgY2FsbF9vcHRpb25hbChnZW4ucGFyZW50Lm9iaiwgInNldHVwIikKLSAgICAgICAgICAg
ICAgICBnZW4uX25vc2VnZW5zZXR1cCA9IFRydWUKICAgICAgICAgaWYgbm90IGNhbGxfb3B0aW9u
YWwoaXRlbS5vYmosICJzZXR1cCIpOgogICAgICAgICAgICAgIyBjYWxsIG1vZHVsZSBsZXZlbCBz
ZXR1cCBpZiB0aGVyZSBpcyBubyBvYmplY3QgbGV2ZWwgb25lCiAgICAgICAgICAgICBjYWxsX29w
dGlvbmFsKGl0ZW0ucGFyZW50Lm9iaiwgInNldHVwIikKQEAgLTQ5LDExICs1Miw2IEBAIGRlZiB0
ZWFyZG93bl9ub3NlKGl0ZW0pOgogICAgICAgICAjICAgIGRlbCBpdGVtLnBhcmVudC5fbm9zZWdl
bnNldHVwCiAKIAotZGVmIHB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0KGNvbGxlY3Rvcik6Ci0g
ICAgaWYgaXNpbnN0YW5jZShjb2xsZWN0b3IsIHB5dGhvbi5HZW5lcmF0b3IpOgotICAgICAgICBj
YWxsX29wdGlvbmFsKGNvbGxlY3Rvci5vYmosICJzZXR1cCIpCi0KLQogZGVmIGlzX3BvdGVudGlh
bF9ub3NldGVzdChpdGVtKToKICAgICAjIGV4dHJhIGNoZWNrIG5lZWRlZCBzaW5jZSB3ZSBkbyBu
b3QgZG8gbm9zZSBzdHlsZSBzZXR1cC90ZWFyZG93bgogICAgICMgb24gZGlyZWN0IHVuaXR0ZXN0
IHN0eWxlIGNsYXNzZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L291dGNv
bWVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvb3V0Y29tZXMucHkKaW5kZXggOGEzNjYy
ZTFiM2U3NDExNzMyNjNkOGQwMjdlOGI4NDJhZWM5OTM5Zi4uNDYyMGY5NTdjN2RhNjZiYmNkZmY1
N2VlOGRhODJlNzAzZjY4NmQ4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
b3V0Y29tZXMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvb3V0Y29tZXMucHkKQEAg
LTEsMTEgKzEsMTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIKIGV4Y2VwdGlvbiBj
bGFzc2VzIGFuZCBjb25zdGFudHMgaGFuZGxpbmcgdGVzdCBvdXRjb21lcwogYXMgd2VsbCBhcyBm
dW5jdGlvbnMgY3JlYXRpbmcgdGhlbQogIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgcHkKK2Zyb20gX19m
dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRp
dmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBz
eXMKIAorZnJvbSBwYWNrYWdpbmcudmVyc2lvbiBpbXBvcnQgVmVyc2lvbgorCiAKIGNsYXNzIE91
dGNvbWVFeGNlcHRpb24oQmFzZUV4Y2VwdGlvbik6CiAgICAgIiIiIE91dGNvbWVFeGNlcHRpb24g
YW5kIGl0cyBzdWJjbGFzcyBpbnN0YW5jZXMgaW5kaWNhdGUgYW5kCkBAIC0yMSw3ICsyNiw3IEBA
IGNsYXNzIE91dGNvbWVFeGNlcHRpb24oQmFzZUV4Y2VwdGlvbik6CiAgICAgICAgIGlmIHNlbGYu
bXNnOgogICAgICAgICAgICAgdmFsID0gc2VsZi5tc2cKICAgICAgICAgICAgIGlmIGlzaW5zdGFu
Y2UodmFsLCBieXRlcyk6Ci0gICAgICAgICAgICAgICAgdmFsID0gcHkuX2J1aWx0aW4uX3RvdGV4
dCh2YWwsIGVycm9ycz0icmVwbGFjZSIpCisgICAgICAgICAgICAgICAgdmFsID0gdmFsLmRlY29k
ZSgiVVRGLTgiLCBlcnJvcnM9InJlcGxhY2UiKQogICAgICAgICAgICAgcmV0dXJuIHZhbAogICAg
ICAgICByZXR1cm4gIjwlcyBpbnN0YW5jZT4iICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCkK
IApAQCAtNDMsNDMgKzQ4LDU5IEBAIGNsYXNzIFNraXBwZWQoT3V0Y29tZUV4Y2VwdGlvbik6CiAK
IGNsYXNzIEZhaWxlZChPdXRjb21lRXhjZXB0aW9uKToKICAgICAiIiIgcmFpc2VkIGZyb20gYW4g
ZXhwbGljaXQgY2FsbCB0byBweXRlc3QuZmFpbCgpICIiIgorCiAgICAgX19tb2R1bGVfXyA9ICJi
dWlsdGlucyIKIAogCi1jbGFzcyBFeGl0KEtleWJvYXJkSW50ZXJydXB0KToKK2NsYXNzIEV4aXQo
RXhjZXB0aW9uKToKICAgICAiIiIgcmFpc2VkIGZvciBpbW1lZGlhdGUgcHJvZ3JhbSBleGl0cyAo
bm8gdHJhY2ViYWNrcy9zdW1tYXJpZXMpIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXNn
PSJ1bmtub3duIHJlYXNvbiIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2c9InVua25vd24g
cmVhc29uIiwgcmV0dXJuY29kZT1Ob25lKToKICAgICAgICAgc2VsZi5tc2cgPSBtc2cKLSAgICAg
ICAgS2V5Ym9hcmRJbnRlcnJ1cHQuX19pbml0X18oc2VsZiwgbXNnKQorICAgICAgICBzZWxmLnJl
dHVybmNvZGUgPSByZXR1cm5jb2RlCisgICAgICAgIHN1cGVyKEV4aXQsIHNlbGYpLl9faW5pdF9f
KG1zZykKIAogCiAjIGV4cG9zZWQgaGVscGVyIG1ldGhvZHMKIAogCi1kZWYgZXhpdChtc2cpOgot
ICAgICIiIiBleGl0IHRlc3RpbmcgcHJvY2VzcyBhcyBpZiBLZXlib2FyZEludGVycnVwdCB3YXMg
dHJpZ2dlcmVkLiAiIiIKK2RlZiBleGl0KG1zZywgcmV0dXJuY29kZT1Ob25lKToKKyAgICAiIiIK
KyAgICBFeGl0IHRlc3RpbmcgcHJvY2Vzcy4KKworICAgIDpwYXJhbSBzdHIgbXNnOiBtZXNzYWdl
IHRvIGRpc3BsYXkgdXBvbiBleGl0LgorICAgIDpwYXJhbSBpbnQgcmV0dXJuY29kZTogcmV0dXJu
IGNvZGUgdG8gYmUgdXNlZCB3aGVuIGV4aXRpbmcgcHl0ZXN0LgorICAgICIiIgogICAgIF9fdHJh
Y2ViYWNraGlkZV9fID0gVHJ1ZQotICAgIHJhaXNlIEV4aXQobXNnKQorICAgIHJhaXNlIEV4aXQo
bXNnLCByZXR1cm5jb2RlKQogCiAKIGV4aXQuRXhjZXB0aW9uID0gRXhpdAogCiAKIGRlZiBza2lw
KG1zZz0iIiwgKiprd2FyZ3MpOgotICAgICIiIiBza2lwIGFuIGV4ZWN1dGluZyB0ZXN0IHdpdGgg
dGhlIGdpdmVuIG1lc3NhZ2UuICBOb3RlOiBpdCdzIHVzdWFsbHkKLSAgICBiZXR0ZXIgdG8gdXNl
IHRoZSBweXRlc3QubWFyay5za2lwaWYgbWFya2VyIHRvIGRlY2xhcmUgYSB0ZXN0IHRvIGJlCi0g
ICAgc2tpcHBlZCB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgbGlrZSBtaXNtYXRjaGluZyBwbGF0
Zm9ybXMgb3IKLSAgICBkZXBlbmRlbmNpZXMuICBTZWUgdGhlIHB5dGVzdF9za2lwcGluZyBwbHVn
aW4gZm9yIGRldGFpbHMuCisgICAgIiIiCisgICAgU2tpcCBhbiBleGVjdXRpbmcgdGVzdCB3aXRo
IHRoZSBnaXZlbiBtZXNzYWdlLgorCisgICAgVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVk
IG9ubHkgZHVyaW5nIHRlc3RpbmcgKHNldHVwLCBjYWxsIG9yIHRlYXJkb3duKSBvcgorICAgIGR1
cmluZyBjb2xsZWN0aW9uIGJ5IHVzaW5nIHRoZSBgYGFsbG93X21vZHVsZV9sZXZlbGBgIGZsYWcu
ICBUaGlzIGZ1bmN0aW9uIGNhbgorICAgIGJlIGNhbGxlZCBpbiBkb2N0ZXN0cyBhcyB3ZWxsLgog
CiAgICAgOmt3YXJnIGJvb2wgYWxsb3dfbW9kdWxlX2xldmVsOiBhbGxvd3MgdGhpcyBmdW5jdGlv
biB0byBiZSBjYWxsZWQgYXQKICAgICAgICAgbW9kdWxlIGxldmVsLCBza2lwcGluZyB0aGUgcmVz
dCBvZiB0aGUgbW9kdWxlLiBEZWZhdWx0IHRvIEZhbHNlLgorCisgICAgLi4gbm90ZTo6CisgICAg
ICAgIEl0IGlzIGJldHRlciB0byB1c2UgdGhlIDpyZWY6YHB5dGVzdC5tYXJrLnNraXBpZiByZWZg
IG1hcmtlciB3aGVuIHBvc3NpYmxlIHRvIGRlY2xhcmUgYSB0ZXN0IHRvIGJlCisgICAgICAgIHNr
aXBwZWQgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zIGxpa2UgbWlzbWF0Y2hpbmcgcGxhdGZvcm1z
IG9yCisgICAgICAgIGRlcGVuZGVuY2llcy4KKyAgICAgICAgU2ltaWxhcmx5LCB1c2UgdGhlIGBg
IyBkb2N0ZXN0OiArU0tJUGBgIGRpcmVjdGl2ZSAoc2VlIGBkb2N0ZXN0LlNLSVAKKyAgICAgICAg
PGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9kb2N0ZXN0Lmh0bWwjZG9jdGVzdC5T
S0lQPmBfKQorICAgICAgICB0byBza2lwIGEgZG9jdGVzdCBzdGF0aWNhbGx5LgogICAgICIiIgog
ICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQogICAgIGFsbG93X21vZHVsZV9sZXZlbCA9IGt3
YXJncy5wb3AoImFsbG93X21vZHVsZV9sZXZlbCIsIEZhbHNlKQogICAgIGlmIGt3YXJnczoKLSAg
ICAgICAga2V5cyA9IFtrIGZvciBrIGluIGt3YXJncy5rZXlzKCldCi0gICAgICAgIHJhaXNlIFR5
cGVFcnJvcigidW5leHBlY3RlZCBrZXl3b3JkIGFyZ3VtZW50czoge30iLmZvcm1hdChrZXlzKSkK
KyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJ1bmV4cGVjdGVkIGtleXdvcmQgYXJndW1lbnRzOiB7
fSIuZm9ybWF0KHNvcnRlZChrd2FyZ3MpKSkKICAgICByYWlzZSBTa2lwcGVkKG1zZz1tc2csIGFs
bG93X21vZHVsZV9sZXZlbD1hbGxvd19tb2R1bGVfbGV2ZWwpCiAKIApAQCAtODcsMTAgKzEwOCwx
MiBAQCBza2lwLkV4Y2VwdGlvbiA9IFNraXBwZWQKIAogCiBkZWYgZmFpbChtc2c9IiIsIHB5dHJh
Y2U9VHJ1ZSk6Ci0gICAgIiIiIGV4cGxpY2l0bHkgZmFpbCBhIGN1cnJlbnRseS1leGVjdXRpbmcg
dGVzdCB3aXRoIHRoZSBnaXZlbiBNZXNzYWdlLgorICAgICIiIgorICAgIEV4cGxpY2l0bHkgZmFp
bCBhbiBleGVjdXRpbmcgdGVzdCB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlLgogCi0gICAgOmFyZyBw
eXRyYWNlOiBpZiBmYWxzZSB0aGUgbXNnIHJlcHJlc2VudHMgdGhlIGZ1bGwgZmFpbHVyZSBpbmZv
cm1hdGlvbgotICAgICAgICAgICAgICAgICAgYW5kIG5vIHB5dGhvbiB0cmFjZWJhY2sgd2lsbCBi
ZSByZXBvcnRlZC4KKyAgICA6cGFyYW0gc3RyIG1zZzogdGhlIG1lc3NhZ2UgdG8gc2hvdyB0aGUg
dXNlciBhcyByZWFzb24gZm9yIHRoZSBmYWlsdXJlLgorICAgIDpwYXJhbSBib29sIHB5dHJhY2U6
IGlmIGZhbHNlIHRoZSBtc2cgcmVwcmVzZW50cyB0aGUgZnVsbCBmYWlsdXJlIGluZm9ybWF0aW9u
IGFuZCBubworICAgICAgICBweXRob24gdHJhY2ViYWNrIHdpbGwgYmUgcmVwb3J0ZWQuCiAgICAg
IiIiCiAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCiAgICAgcmFpc2UgRmFpbGVkKG1zZz1t
c2csIHB5dHJhY2U9cHl0cmFjZSkKQEAgLTEwNCw3ICsxMjcsMTUgQEAgY2xhc3MgWEZhaWxlZChm
YWlsLkV4Y2VwdGlvbik6CiAKIAogZGVmIHhmYWlsKHJlYXNvbj0iIik6Ci0gICAgIiIiIHhmYWls
IGFuIGV4ZWN1dGluZyB0ZXN0IG9yIHNldHVwIGZ1bmN0aW9ucyB3aXRoIHRoZSBnaXZlbiByZWFz
b24uIiIiCisgICAgIiIiCisgICAgSW1wZXJhdGl2ZWx5IHhmYWlsIGFuIGV4ZWN1dGluZyB0ZXN0
IG9yIHNldHVwIGZ1bmN0aW9ucyB3aXRoIHRoZSBnaXZlbiByZWFzb24uCisKKyAgICBUaGlzIGZ1
bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb25seSBkdXJpbmcgdGVzdGluZyAoc2V0dXAsIGNhbGwg
b3IgdGVhcmRvd24pLgorCisgICAgLi4gbm90ZTo6CisgICAgICAgIEl0IGlzIGJldHRlciB0byB1
c2UgdGhlIDpyZWY6YHB5dGVzdC5tYXJrLnhmYWlsIHJlZmAgbWFya2VyIHdoZW4gcG9zc2libGUg
dG8gZGVjbGFyZSBhIHRlc3QgdG8gYmUKKyAgICAgICAgeGZhaWxlZCB1bmRlciBjZXJ0YWluIGNv
bmRpdGlvbnMgbGlrZSBrbm93biBidWdzIG9yIG1pc3NpbmcgZmVhdHVyZXMuCisgICAgIiIiCiAg
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCiAgICAgcmFpc2UgWEZhaWxlZChyZWFzb24pCiAK
QEAgLTExMiwxNiArMTQzLDIxIEBAIGRlZiB4ZmFpbChyZWFzb249IiIpOgogeGZhaWwuRXhjZXB0
aW9uID0gWEZhaWxlZAogCiAKLWRlZiBpbXBvcnRvcnNraXAobW9kbmFtZSwgbWludmVyc2lvbj1O
b25lKToKLSAgICAiIiIgcmV0dXJuIGltcG9ydGVkIG1vZHVsZSBpZiBpdCBoYXMgYXQgbGVhc3Qg
Im1pbnZlcnNpb24iIGFzIGl0cwotICAgIF9fdmVyc2lvbl9fIGF0dHJpYnV0ZS4gIElmIG5vIG1p
bnZlcnNpb24gaXMgc3BlY2lmaWVkIHRoZSBhIHNraXAKLSAgICBpcyBvbmx5IHRyaWdnZXJlZCBp
ZiB0aGUgbW9kdWxlIGNhbiBub3QgYmUgaW1wb3J0ZWQuCitkZWYgaW1wb3J0b3Jza2lwKG1vZG5h
bWUsIG1pbnZlcnNpb249Tm9uZSwgcmVhc29uPU5vbmUpOgorICAgICIiIkltcG9ydHMgYW5kIHJl
dHVybnMgdGhlIHJlcXVlc3RlZCBtb2R1bGUgYGBtb2RuYW1lYGAsIG9yIHNraXAgdGhlIGN1cnJl
bnQgdGVzdAorICAgIGlmIHRoZSBtb2R1bGUgY2Fubm90IGJlIGltcG9ydGVkLgorCisgICAgOnBh
cmFtIHN0ciBtb2RuYW1lOiB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRvIGltcG9ydAorICAgIDpw
YXJhbSBzdHIgbWludmVyc2lvbjogaWYgZ2l2ZW4sIHRoZSBpbXBvcnRlZCBtb2R1bGUgYGBfX3Zl
cnNpb25fX2BgIGF0dHJpYnV0ZSBtdXN0IGJlCisgICAgICAgIGF0IGxlYXN0IHRoaXMgbWluaW1h
bCB2ZXJzaW9uLCBvdGhlcndpc2UgdGhlIHRlc3QgaXMgc3RpbGwgc2tpcHBlZC4KKyAgICA6cGFy
YW0gc3RyIHJlYXNvbjogaWYgZ2l2ZW4sIHRoaXMgcmVhc29uIGlzIHNob3duIGFzIHRoZSBtZXNz
YWdlIHdoZW4gdGhlIG1vZHVsZQorICAgICAgICBjYW5ub3QgYmUgaW1wb3J0ZWQuCiAgICAgIiIi
CiAgICAgaW1wb3J0IHdhcm5pbmdzCiAKICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKICAg
ICBjb21waWxlKG1vZG5hbWUsICIiLCAiZXZhbCIpICAjIHRvIGNhdGNoIHN5bnRheGVycm9ycwot
ICAgIHNob3VsZF9za2lwID0gRmFsc2UKKyAgICBpbXBvcnRfZXhjID0gTm9uZQogCiAgICAgd2l0
aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgogICAgICAgICAjIG1ha2Ugc3VyZSB0byBpZ25v
cmUgSW1wb3J0V2FybmluZ3MgdGhhdCBtaWdodCBoYXBwZW4gYmVjYXVzZQpAQCAtMTMwLDI1ICsx
NjYsMTkgQEAgZGVmIGltcG9ydG9yc2tpcChtb2RuYW1lLCBtaW52ZXJzaW9uPU5vbmUpOgogICAg
ICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImlnbm9yZSIpCiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIF9faW1wb3J0X18obW9kbmFtZSkKLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgor
ICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMgZXhjOgogICAgICAgICAgICAgIyBEbyBub3Qg
cmFpc2UgY2hhaW5lZCBleGNlcHRpb24gaGVyZSgjMTQ4NSkKLSAgICAgICAgICAgIHNob3VsZF9z
a2lwID0gVHJ1ZQotICAgIGlmIHNob3VsZF9za2lwOgotICAgICAgICByYWlzZSBTa2lwcGVkKCJj
b3VsZCBub3QgaW1wb3J0ICVyIiAlIChtb2RuYW1lLCksIGFsbG93X21vZHVsZV9sZXZlbD1UcnVl
KQorICAgICAgICAgICAgaW1wb3J0X2V4YyA9IGV4YworICAgIGlmIGltcG9ydF9leGM6CisgICAg
ICAgIGlmIHJlYXNvbiBpcyBOb25lOgorICAgICAgICAgICAgcmVhc29uID0gImNvdWxkIG5vdCBp
bXBvcnQgJXI6ICVzIiAlIChtb2RuYW1lLCBpbXBvcnRfZXhjKQorICAgICAgICByYWlzZSBTa2lw
cGVkKHJlYXNvbiwgYWxsb3dfbW9kdWxlX2xldmVsPVRydWUpCiAgICAgbW9kID0gc3lzLm1vZHVs
ZXNbbW9kbmFtZV0KICAgICBpZiBtaW52ZXJzaW9uIGlzIE5vbmU6CiAgICAgICAgIHJldHVybiBt
b2QKICAgICB2ZXJhdHRyID0gZ2V0YXR0cihtb2QsICJfX3ZlcnNpb25fXyIsIE5vbmUpCiAgICAg
aWYgbWludmVyc2lvbiBpcyBub3QgTm9uZToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZnJv
bSBwa2dfcmVzb3VyY2VzIGltcG9ydCBwYXJzZV92ZXJzaW9uIGFzIHB2Ci0gICAgICAgIGV4Y2Vw
dCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIFNraXBwZWQoCi0gICAgICAgICAgICAg
ICAgIndlIGhhdmUgYSByZXF1aXJlZCB2ZXJzaW9uIGZvciAlciBidXQgY2FuIG5vdCBpbXBvcnQg
IgotICAgICAgICAgICAgICAgICJwa2dfcmVzb3VyY2VzIHRvIHBhcnNlIHZlcnNpb24gc3RyaW5n
cy4iICUgKG1vZG5hbWUsKSwKLSAgICAgICAgICAgICAgICBhbGxvd19tb2R1bGVfbGV2ZWw9VHJ1
ZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgaWYgdmVyYXR0ciBpcyBOb25lIG9yIHB2KHZlcmF0
dHIpIDwgcHYobWludmVyc2lvbik6CisgICAgICAgIGlmIHZlcmF0dHIgaXMgTm9uZSBvciBWZXJz
aW9uKHZlcmF0dHIpIDwgVmVyc2lvbihtaW52ZXJzaW9uKToKICAgICAgICAgICAgIHJhaXNlIFNr
aXBwZWQoCiAgICAgICAgICAgICAgICAgIm1vZHVsZSAlciBoYXMgX192ZXJzaW9uX18gJXIsIHJl
cXVpcmVkIGlzOiAlciIKICAgICAgICAgICAgICAgICAlIChtb2RuYW1lLCB2ZXJhdHRyLCBtaW52
ZXJzaW9uKSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3Bhc3RlYmluLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcGFzdGViaW4ucHkKaW5kZXggNmFmMjAyZDFmMGE5
M2Y5MjM0M2RiNjVjMDM5ZTA5NWJkMjlkOGU4Ni4uN2EzZTgwMjMxYzI3ZTg1ZWNjMTY5ZGNjNWQ0
ZjEwN2RjZjE0OWQzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcGFzdGVi
aW4ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcGFzdGViaW4ucHkKQEAgLTEsMTEg
KzEsMTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIgc3VibWl0IGZhaWx1cmUgb3Ig
dGVzdCBzZXNzaW9uIGluZm9ybWF0aW9uIHRvIGEgcGFzdGViaW4gc2VydmljZS4gIiIiCi1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv
bgogCi1pbXBvcnQgcHl0ZXN0Ci1pbXBvcnQgc2l4CiBpbXBvcnQgc3lzCiBpbXBvcnQgdGVtcGZp
bGUKIAoraW1wb3J0IHNpeAorCitpbXBvcnQgcHl0ZXN0CisKIAogZGVmIHB5dGVzdF9hZGRvcHRp
b24ocGFyc2VyKToKICAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgidGVybWluYWwgcmVwb3J0
aW5nIikKQEAgLTcyLDExICs3Nyw3IEBAIGRlZiBjcmVhdGVfbmV3X3Bhc3RlKGNvbnRlbnRzKToK
ICAgICAgICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgogICAgICAgICBmcm9t
IHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsZW5jb2RlCiAKLSAgICBwYXJhbXMgPSB7Ci0gICAgICAg
ICJjb2RlIjogY29udGVudHMsCi0gICAgICAgICJsZXhlciI6ICJweXRob24zIiBpZiBzeXMudmVy
c2lvbl9pbmZvWzBdID09IDMgZWxzZSAicHl0aG9uIiwKLSAgICAgICAgImV4cGlyeSI6ICIxd2Vl
ayIsCi0gICAgfQorICAgIHBhcmFtcyA9IHsiY29kZSI6IGNvbnRlbnRzLCAibGV4ZXIiOiAidGV4
dCIsICJleHBpcnkiOiAiMXdlZWsifQogICAgIHVybCA9ICJodHRwczovL2JwYXN0ZS5uZXQiCiAg
ICAgcmVzcG9uc2UgPSB1cmxvcGVuKHVybCwgZGF0YT11cmxlbmNvZGUocGFyYW1zKS5lbmNvZGUo
ImFzY2lpIikpLnJlYWQoKQogICAgIG0gPSByZS5zZWFyY2gocidocmVmPSIvcmF3LyhcdyspIics
IHJlc3BvbnNlLmRlY29kZSgidXRmLTgiKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L3BhdGhsaWIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9wYXRobGliLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQyMDcxZjQzMTA0OTdkMzA5OGUyY2Q1ZTc0NTA5ZTAxMzM2MWM2ZTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9wYXRobGliLnB5CkBAIC0wLDAg
KzEsMzgwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQKKworaW1wb3J0IGF0ZXhpdAoraW1wb3J0IGVycm5vCitpbXBvcnQg
Zm5tYXRjaAoraW1wb3J0IGl0ZXJ0b29scworaW1wb3J0IG9wZXJhdG9yCitpbXBvcnQgb3MKK2lt
cG9ydCBzaHV0aWwKK2ltcG9ydCBzeXMKK2ltcG9ydCB1dWlkCitpbXBvcnQgd2FybmluZ3MKK2Zy
b20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgcmVkdWNl
Citmcm9tIG9zLnBhdGggaW1wb3J0IGV4cGFuZHVzZXIKK2Zyb20gb3MucGF0aCBpbXBvcnQgZXhw
YW5kdmFycworZnJvbSBvcy5wYXRoIGltcG9ydCBpc2FicworZnJvbSBvcy5wYXRoIGltcG9ydCBz
ZXAKK2Zyb20gcG9zaXhwYXRoIGltcG9ydCBzZXAgYXMgcG9zaXhfc2VwCisKK2ltcG9ydCBzaXgK
K2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBtYXAKKworZnJvbSAuY29tcGF0IGltcG9ydCBQWTM2Citm
cm9tIF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBvcnQgUHl0ZXN0V2FybmluZworCitpZiBQWTM2
OgorICAgIGZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aCwgUHVyZVBhdGgKK2Vsc2U6CisgICAgZnJv
bSBwYXRobGliMiBpbXBvcnQgUGF0aCwgUHVyZVBhdGgKKworX19hbGxfXyA9IFsiUGF0aCIsICJQ
dXJlUGF0aCJdCisKKworTE9DS19USU1FT1VUID0gNjAgKiA2MCAqIDMKKworZ2V0X2xvY2tfcGF0
aCA9IG9wZXJhdG9yLm1ldGhvZGNhbGxlcigiam9pbnBhdGgiLCAiLmxvY2siKQorCisKK2RlZiBl
bnN1cmVfcmVzZXRfZGlyKHBhdGgpOgorICAgICIiIgorICAgIGVuc3VyZXMgdGhlIGdpdmVuIHBh
dGggaXMgYW4gZW1wdHkgZGlyZWN0b3J5CisgICAgIiIiCisgICAgaWYgcGF0aC5leGlzdHMoKToK
KyAgICAgICAgcm1fcmYocGF0aCkKKyAgICBwYXRoLm1rZGlyKCkKKworCitkZWYgb25fcm1fcmZf
ZXJyb3IoZnVuYywgcGF0aCwgZXhjLCAqKmt3YXJncyk6CisgICAgIiIiSGFuZGxlcyBrbm93biBy
ZWFkLW9ubHkgZXJyb3JzIGR1cmluZyBybXRyZWUuCisKKyAgICBUaGUgcmV0dXJuZWQgdmFsdWUg
aXMgdXNlZCBvbmx5IGJ5IG91ciBvd24gdGVzdHMuCisgICAgIiIiCisgICAgc3RhcnRfcGF0aCA9
IGt3YXJnc1sic3RhcnRfcGF0aCJdCisgICAgZXhjdHlwZSwgZXhjdmFsdWUgPSBleGNbOjJdCisK
KyAgICAjIGFub3RoZXIgcHJvY2VzcyByZW1vdmVkIHRoZSBmaWxlIGluIHRoZSBtaWRkbGUgb2Yg
dGhlICJybV9yZiIgKHhkaXN0IGZvciBleGFtcGxlKQorICAgICMgbW9yZSBjb250ZXh0OiBodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU5NzQjaXNzdWVjb21tZW50
LTU0Mzc5OTAxOAorICAgIGlmIGlzaW5zdGFuY2UoZXhjdmFsdWUsIE9TRXJyb3IpIGFuZCBleGN2
YWx1ZS5lcnJubyA9PSBlcnJuby5FTk9FTlQ6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
aWYgbm90IGlzaW5zdGFuY2UoZXhjdmFsdWUsIE9TRXJyb3IpIG9yIGV4Y3ZhbHVlLmVycm5vIG5v
dCBpbiAoCisgICAgICAgIGVycm5vLkVBQ0NFUywKKyAgICAgICAgZXJybm8uRVBFUk0sCisgICAg
KToKKyAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgIFB5dGVzdFdhcm5pbmcoCisg
ICAgICAgICAgICAgICAgIihybV9yZikgZXJyb3IgcmVtb3Zpbmcge31cbnt9OiB7fSIuZm9ybWF0
KHBhdGgsIGV4Y3R5cGUsIGV4Y3ZhbHVlKQorICAgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICAgIHJldHVybiBGYWxzZQorCisgICAgaWYgZnVuYyBub3QgaW4gKG9zLnJtZGlyLCBvcy5yZW1v
dmUsIG9zLnVubGluayk6CisgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICBQeXRl
c3RXYXJuaW5nKAorICAgICAgICAgICAgICAgICIocm1fcmYpIHVua25vd24gZnVuY3Rpb24ge30g
d2hlbiByZW1vdmluZyB7fTpcbnt9OiB7fSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBw
YXRoLCBmdW5jLCBleGN0eXBlLCBleGN2YWx1ZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICMgQ2htb2QgKyBy
ZXRyeS4KKyAgICBpbXBvcnQgc3RhdAorCisgICAgZGVmIGNobW9kX3J3KHApOgorICAgICAgICBt
b2RlID0gb3Muc3RhdChwKS5zdF9tb2RlCisgICAgICAgIG9zLmNobW9kKHAsIG1vZGUgfCBzdGF0
LlNfSVJVU1IgfCBzdGF0LlNfSVdVU1IpCisKKyAgICAjIEZvciBmaWxlcywgd2UgbmVlZCB0byBy
ZWN1cnNpdmVseSBnbyB1cHdhcmRzIGluIHRoZSBkaXJlY3RvcmllcyB0bworICAgICMgZW5zdXJl
IHRoZXkgYWxsIGFyZSBhbHNvIHdyaXRhYmxlLgorICAgIHAgPSBQYXRoKHBhdGgpCisgICAgaWYg
cC5pc19maWxlKCk6CisgICAgICAgIGZvciBwYXJlbnQgaW4gcC5wYXJlbnRzOgorICAgICAgICAg
ICAgY2htb2Rfcncoc3RyKHBhcmVudCkpCisgICAgICAgICAgICAjIHN0b3Agd2hlbiB3ZSByZWFj
aCB0aGUgb3JpZ2luYWwgcGF0aCBwYXNzZWQgdG8gcm1fcmYKKyAgICAgICAgICAgIGlmIHBhcmVu
dCA9PSBzdGFydF9wYXRoOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgY2htb2Rfcncoc3Ry
KHBhdGgpKQorCisgICAgZnVuYyhwYXRoKQorICAgIHJldHVybiBUcnVlCisKKworZGVmIHJtX3Jm
KHBhdGgpOgorICAgICIiIlJlbW92ZSB0aGUgcGF0aCBjb250ZW50cyByZWN1cnNpdmVseSwgZXZl
biBpZiBzb21lIGVsZW1lbnRzCisgICAgYXJlIHJlYWQtb25seS4KKyAgICAiIiIKKyAgICBvbmVy
cm9yID0gcGFydGlhbChvbl9ybV9yZl9lcnJvciwgc3RhcnRfcGF0aD1wYXRoKQorICAgIHNodXRp
bC5ybXRyZWUoc3RyKHBhdGgpLCBvbmVycm9yPW9uZXJyb3IpCisKKworZGVmIGZpbmRfcHJlZml4
ZWQocm9vdCwgcHJlZml4KToKKyAgICAiIiJmaW5kcyBhbGwgZWxlbWVudHMgaW4gcm9vdCB0aGF0
IGJlZ2luIHdpdGggdGhlIHByZWZpeCwgY2FzZSBpbnNlbnNpdGl2ZSIiIgorICAgIGxfcHJlZml4
ID0gcHJlZml4Lmxvd2VyKCkKKyAgICBmb3IgeCBpbiByb290Lml0ZXJkaXIoKToKKyAgICAgICAg
aWYgeC5uYW1lLmxvd2VyKCkuc3RhcnRzd2l0aChsX3ByZWZpeCk6CisgICAgICAgICAgICB5aWVs
ZCB4CisKKworZGVmIGV4dHJhY3Rfc3VmZml4ZXMoaXRlciwgcHJlZml4KToKKyAgICAiIiIKKyAg
ICA6cGFyYW0gaXRlcjogaXRlcmF0b3Igb3ZlciBwYXRoIG5hbWVzCisgICAgOnBhcmFtIHByZWZp
eDogZXhwZWN0ZWQgcHJlZml4IG9mIHRoZSBwYXRoIG5hbWVzCisgICAgOnJldHVybnM6IHRoZSBw
YXJ0cyBvZiB0aGUgcGF0aHMgZm9sbG93aW5nIHRoZSBwcmVmaXgKKyAgICAiIiIKKyAgICBwX2xl
biA9IGxlbihwcmVmaXgpCisgICAgZm9yIHAgaW4gaXRlcjoKKyAgICAgICAgeWllbGQgcC5uYW1l
W3BfbGVuOl0KKworCitkZWYgZmluZF9zdWZmaXhlcyhyb290LCBwcmVmaXgpOgorICAgICIiImNv
bWJpbmVzIGZpbmRfcHJlZml4ZXMgYW5kIGV4dHJhY3Rfc3VmZml4ZXMKKyAgICAiIiIKKyAgICBy
ZXR1cm4gZXh0cmFjdF9zdWZmaXhlcyhmaW5kX3ByZWZpeGVkKHJvb3QsIHByZWZpeCksIHByZWZp
eCkKKworCitkZWYgcGFyc2VfbnVtKG1heWJlX251bSk6CisgICAgIiIicGFyc2VzIG51bWJlciBw
YXRoIHN1ZmZpeGVzLCByZXR1cm5zIC0xIG9uIGVycm9yIiIiCisgICAgdHJ5OgorICAgICAgICBy
ZXR1cm4gaW50KG1heWJlX251bSkKKyAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgcmV0
dXJuIC0xCisKKworaWYgc2l4LlBZMjoKKworICAgIGRlZiBfbWF4KGl0ZXJhYmxlLCBkZWZhdWx0
KToKKyAgICAgICAgIiIibmVlZGVkIGR1ZSB0byBweXRob24yLjcgbGFja2luZyB0aGUgZGVmYXVs
dCBhcmd1bWVudCBmb3IgbWF4IiIiCisgICAgICAgIHJldHVybiByZWR1Y2UobWF4LCBpdGVyYWJs
ZSwgZGVmYXVsdCkKKworCitlbHNlOgorICAgIF9tYXggPSBtYXgKKworCitkZWYgX2ZvcmNlX3N5
bWxpbmsocm9vdCwgdGFyZ2V0LCBsaW5rX3RvKToKKyAgICAiIiJoZWxwZXIgdG8gY3JlYXRlIHRo
ZSBjdXJyZW50IHN5bWxpbmsKKworICAgIGl0J3MgZnVsbCBvZiByYWNlIGNvbmRpdGlvbnMgdGhh
dCBhcmUgcmVhc29uYWJseSBvayB0byBpZ25vcmUKKyAgICBmb3IgdGhlIGNvbnRleHQgb2YgYmVz
dCBlZmZvcnQgbGlua2luZyB0byB0aGUgbGF0ZXN0IHRlc3RydW4KKworICAgIHRoZSBwcmVzdW1w
dGlvbiBiZWluZyB0aGF0aW4gY2FzZSBvZiBtdWNoIHBhcmFsbGVsaXNtCisgICAgdGhlIGluYWNj
dXJhY3kgaXMgZ29pbmcgdG8gYmUgYWNjZXB0YWJsZQorICAgICIiIgorICAgIGN1cnJlbnRfc3lt
bGluayA9IHJvb3Quam9pbnBhdGgodGFyZ2V0KQorICAgIHRyeToKKyAgICAgICAgY3VycmVudF9z
eW1saW5rLnVubGluaygpCisgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgIHBhc3MKKyAgICB0
cnk6CisgICAgICAgIGN1cnJlbnRfc3ltbGluay5zeW1saW5rX3RvKGxpbmtfdG8pCisgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcGFzcworCisKK2RlZiBtYWtlX251bWJlcmVkX2Rpcihy
b290LCBwcmVmaXgpOgorICAgICIiImNyZWF0ZSBhIGRpcmVjdG9yeSB3aXRoIGFuIGluY3JlYXNl
ZCBudW1iZXIgYXMgc3VmZml4IGZvciB0aGUgZ2l2ZW4gcHJlZml4IiIiCisgICAgZm9yIGkgaW4g
cmFuZ2UoMTApOgorICAgICAgICAjIHRyeSB1cCB0byAxMCB0aW1lcyB0byBjcmVhdGUgdGhlIGZv
bGRlcgorICAgICAgICBtYXhfZXhpc3RpbmcgPSBfbWF4KG1hcChwYXJzZV9udW0sIGZpbmRfc3Vm
Zml4ZXMocm9vdCwgcHJlZml4KSksIGRlZmF1bHQ9LTEpCisgICAgICAgIG5ld19udW1iZXIgPSBt
YXhfZXhpc3RpbmcgKyAxCisgICAgICAgIG5ld19wYXRoID0gcm9vdC5qb2lucGF0aCgie317fSIu
Zm9ybWF0KHByZWZpeCwgbmV3X251bWJlcikpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG5l
d19wYXRoLm1rZGlyKCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIF9mb3JjZV9zeW1saW5rKHJvb3QsIHByZWZp
eCArICJjdXJyZW50IiwgbmV3X3BhdGgpCisgICAgICAgICAgICByZXR1cm4gbmV3X3BhdGgKKyAg
ICBlbHNlOgorICAgICAgICByYWlzZSBFbnZpcm9ubWVudEVycm9yKAorICAgICAgICAgICAgImNv
dWxkIG5vdCBjcmVhdGUgbnVtYmVyZWQgZGlyIHdpdGggcHJlZml4ICIKKyAgICAgICAgICAgICJ7
cHJlZml4fSBpbiB7cm9vdH0gYWZ0ZXIgMTAgdHJpZXMiLmZvcm1hdChwcmVmaXg9cHJlZml4LCBy
b290PXJvb3QpCisgICAgICAgICkKKworCitkZWYgY3JlYXRlX2NsZWFudXBfbG9jayhwKToKKyAg
ICAiIiJjcmF0ZXMgYSBsb2NrIHRvIHByZXZlbnQgcHJlbWF0dXJlIGZvbGRlciBjbGVhbnVwIiIi
CisgICAgbG9ja19wYXRoID0gZ2V0X2xvY2tfcGF0aChwKQorICAgIHRyeToKKyAgICAgICAgZmQg
PSBvcy5vcGVuKHN0cihsb2NrX3BhdGgpLCBvcy5PX1dST05MWSB8IG9zLk9fQ1JFQVQgfCBvcy5P
X0VYQ0wsIDBvNjQ0KQorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgIGlmIGUuZXJy
bm8gPT0gZXJybm8uRUVYSVNUOgorICAgICAgICAgICAgc2l4LnJhaXNlX2Zyb20oCisgICAgICAg
ICAgICAgICAgRW52aXJvbm1lbnRFcnJvcigiY2Fubm90IGNyZWF0ZSBsb2NrZmlsZSBpbiB7cGF0
aH0iLmZvcm1hdChwYXRoPXApKSwgZQorICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgcmFpc2UKKyAgICBlbHNlOgorICAgICAgICBwaWQgPSBvcy5nZXRwaWQoKQorICAg
ICAgICBzcGlkID0gc3RyKHBpZCkKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3BpZCwgYnl0
ZXMpOgorICAgICAgICAgICAgc3BpZCA9IHNwaWQuZW5jb2RlKCJhc2NpaSIpCisgICAgICAgIG9z
LndyaXRlKGZkLCBzcGlkKQorICAgICAgICBvcy5jbG9zZShmZCkKKyAgICAgICAgaWYgbm90IGxv
Y2tfcGF0aC5pc19maWxlKCk6CisgICAgICAgICAgICByYWlzZSBFbnZpcm9ubWVudEVycm9yKCJs
b2NrIHBhdGggZ290IHJlbmFtZWQgYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvbiIpCisgICAgICAg
IHJldHVybiBsb2NrX3BhdGgKKworCitkZWYgcmVnaXN0ZXJfY2xlYW51cF9sb2NrX3JlbW92YWwo
bG9ja19wYXRoLCByZWdpc3Rlcj1hdGV4aXQucmVnaXN0ZXIpOgorICAgICIiInJlZ2lzdGVycyBh
IGNsZWFudXAgZnVuY3Rpb24gZm9yIHJlbW92aW5nIGEgbG9jaywgYnkgZGVmYXVsdCBvbiBhdGV4
aXQiIiIKKyAgICBwaWQgPSBvcy5nZXRwaWQoKQorCisgICAgZGVmIGNsZWFudXBfb25fZXhpdChs
b2NrX3BhdGg9bG9ja19wYXRoLCBvcmlnaW5hbF9waWQ9cGlkKToKKyAgICAgICAgY3VycmVudF9w
aWQgPSBvcy5nZXRwaWQoKQorICAgICAgICBpZiBjdXJyZW50X3BpZCAhPSBvcmlnaW5hbF9waWQ6
CisgICAgICAgICAgICAjIGZvcmsKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBsb2NrX3BhdGgudW5saW5rKCkKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBJ
T0Vycm9yKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHJldHVybiByZWdpc3RlcihjbGVhbnVw
X29uX2V4aXQpCisKKworZGVmIG1heWJlX2RlbGV0ZV9hX251bWJlcmVkX2RpcihwYXRoKToKKyAg
ICAiIiJyZW1vdmVzIGEgbnVtYmVyZWQgZGlyZWN0b3J5IGlmIGl0cyBsb2NrIGNhbiBiZSBvYnRh
aW5lZCBhbmQgaXQgZG9lcyBub3Qgc2VlbSB0byBiZSBpbiB1c2UiIiIKKyAgICBsb2NrX3BhdGgg
PSBOb25lCisgICAgdHJ5OgorICAgICAgICBsb2NrX3BhdGggPSBjcmVhdGVfY2xlYW51cF9sb2Nr
KHBhdGgpCisgICAgICAgIHBhcmVudCA9IHBhdGgucGFyZW50CisKKyAgICAgICAgZ2FyYmFnZSA9
IHBhcmVudC5qb2lucGF0aCgiZ2FyYmFnZS17fSIuZm9ybWF0KHV1aWQudXVpZDQoKSkpCisgICAg
ICAgIHBhdGgucmVuYW1lKGdhcmJhZ2UpCisgICAgICAgIHJtX3JmKGdhcmJhZ2UpCisgICAgZXhj
ZXB0IChPU0Vycm9yLCBFbnZpcm9ubWVudEVycm9yKToKKyAgICAgICAgIyAga25vd24gcmFjZXM6
CisgICAgICAgICMgICogb3RoZXIgcHJvY2VzcyBkaWQgYSBjbGVhbnVwIGF0IHRoZSBzYW1lIHRp
bWUKKyAgICAgICAgIyAgKiBkZWxldGFibGUgZm9sZGVyIHdhcyBmb3VuZAorICAgICAgICAjICAq
IHByb2Nlc3MgY3dkIChXaW5kb3dzKQorICAgICAgICByZXR1cm4KKyAgICBmaW5hbGx5OgorICAg
ICAgICAjIGlmIHdlIGNyZWF0ZWQgdGhlIGxvY2ssIGVuc3VyZSB3ZSByZW1vdmUgaXQgZXZlbiBp
ZiB3ZSBmYWlsZWQKKyAgICAgICAgIyB0byBwcm9wZXJseSByZW1vdmUgdGhlIG51bWJlcmVkIGRp
cgorICAgICAgICBpZiBsb2NrX3BhdGggaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgbG9ja19wYXRoLnVubGluaygpCisgICAgICAgICAgICBleGNlcHQgKE9T
RXJyb3IsIElPRXJyb3IpOgorICAgICAgICAgICAgICAgIHBhc3MKKworCitkZWYgZW5zdXJlX2Rl
bGV0YWJsZShwYXRoLCBjb25zaWRlcl9sb2NrX2RlYWRfaWZfY3JlYXRlZF9iZWZvcmUpOgorICAg
ICIiImNoZWNrcyBpZiBhIGxvY2sgZXhpc3RzIGFuZCBicmVha3MgaXQgaWYgaXRzIGNvbnNpZGVy
ZWQgZGVhZCIiIgorICAgIGlmIHBhdGguaXNfc3ltbGluaygpOgorICAgICAgICByZXR1cm4gRmFs
c2UKKyAgICBsb2NrID0gZ2V0X2xvY2tfcGF0aChwYXRoKQorICAgIGlmIG5vdCBsb2NrLmV4aXN0
cygpOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIHRyeToKKyAgICAgICAgbG9ja190aW1lID0g
bG9jay5zdGF0KCkuc3RfbXRpbWUKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICByZXR1
cm4gRmFsc2UKKyAgICBlbHNlOgorICAgICAgICBpZiBsb2NrX3RpbWUgPCBjb25zaWRlcl9sb2Nr
X2RlYWRfaWZfY3JlYXRlZF9iZWZvcmU6CisgICAgICAgICAgICBsb2NrLnVubGluaygpCisgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKKworZGVmIHRyeV9jbGVhbnVwKHBhdGgsIGNvbnNpZGVyX2xvY2tfZGVhZF9pZl9jcmVh
dGVkX2JlZm9yZSk6CisgICAgIiIidHJpZXMgdG8gY2xlYW51cCBhIGZvbGRlciBpZiB3ZSBjYW4g
ZW5zdXJlIGl0J3MgZGVsZXRhYmxlIiIiCisgICAgaWYgZW5zdXJlX2RlbGV0YWJsZShwYXRoLCBj
b25zaWRlcl9sb2NrX2RlYWRfaWZfY3JlYXRlZF9iZWZvcmUpOgorICAgICAgICBtYXliZV9kZWxl
dGVfYV9udW1iZXJlZF9kaXIocGF0aCkKKworCitkZWYgY2xlYW51cF9jYW5kaWRhdGVzKHJvb3Qs
IHByZWZpeCwga2VlcCk6CisgICAgIiIibGlzdHMgY2FuZGlkYXRlcyBmb3IgbnVtYmVyZWQgZGly
ZWN0b3JpZXMgdG8gYmUgcmVtb3ZlZCAtIGZvbGxvd3MgcHkucGF0aCIiIgorICAgIG1heF9leGlz
dGluZyA9IF9tYXgobWFwKHBhcnNlX251bSwgZmluZF9zdWZmaXhlcyhyb290LCBwcmVmaXgpKSwg
ZGVmYXVsdD0tMSkKKyAgICBtYXhfZGVsZXRlID0gbWF4X2V4aXN0aW5nIC0ga2VlcAorICAgIHBh
dGhzID0gZmluZF9wcmVmaXhlZChyb290LCBwcmVmaXgpCisgICAgcGF0aHMsIHBhdGhzMiA9IGl0
ZXJ0b29scy50ZWUocGF0aHMpCisgICAgbnVtYmVycyA9IG1hcChwYXJzZV9udW0sIGV4dHJhY3Rf
c3VmZml4ZXMocGF0aHMyLCBwcmVmaXgpKQorICAgIGZvciBwYXRoLCBudW1iZXIgaW4gemlwKHBh
dGhzLCBudW1iZXJzKToKKyAgICAgICAgaWYgbnVtYmVyIDw9IG1heF9kZWxldGU6CisgICAgICAg
ICAgICB5aWVsZCBwYXRoCisKKworZGVmIGNsZWFudXBfbnVtYmVyZWRfZGlyKHJvb3QsIHByZWZp
eCwga2VlcCwgY29uc2lkZXJfbG9ja19kZWFkX2lmX2NyZWF0ZWRfYmVmb3JlKToKKyAgICAiIiJj
bGVhbnVwIGZvciBsb2NrIGRyaXZlbiBudW1iZXJlZCBkaXJlY3RvcmllcyIiIgorICAgIGZvciBw
YXRoIGluIGNsZWFudXBfY2FuZGlkYXRlcyhyb290LCBwcmVmaXgsIGtlZXApOgorICAgICAgICB0
cnlfY2xlYW51cChwYXRoLCBjb25zaWRlcl9sb2NrX2RlYWRfaWZfY3JlYXRlZF9iZWZvcmUpCisg
ICAgZm9yIHBhdGggaW4gcm9vdC5nbG9iKCJnYXJiYWdlLSoiKToKKyAgICAgICAgdHJ5X2NsZWFu
dXAocGF0aCwgY29uc2lkZXJfbG9ja19kZWFkX2lmX2NyZWF0ZWRfYmVmb3JlKQorCisKK2RlZiBt
YWtlX251bWJlcmVkX2Rpcl93aXRoX2NsZWFudXAocm9vdCwgcHJlZml4LCBrZWVwLCBsb2NrX3Rp
bWVvdXQpOgorICAgICIiImNyZWF0ZXMgYSBudW1iZXJlZCBkaXIgd2l0aCBhIGNsZWFudXAgbG9j
ayBhbmQgcmVtb3ZlcyBvbGQgb25lcyIiIgorICAgIGUgPSBOb25lCisgICAgZm9yIGkgaW4gcmFu
Z2UoMTApOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwID0gbWFrZV9udW1iZXJlZF9kaXIo
cm9vdCwgcHJlZml4KQorICAgICAgICAgICAgbG9ja19wYXRoID0gY3JlYXRlX2NsZWFudXBfbG9j
ayhwKQorICAgICAgICAgICAgcmVnaXN0ZXJfY2xlYW51cF9sb2NrX3JlbW92YWwobG9ja19wYXRo
KQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4YzoKKyAgICAgICAgICAgIGUgPSBleGMK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbnNpZGVyX2xvY2tfZGVhZF9pZl9jcmVhdGVk
X2JlZm9yZSA9IHAuc3RhdCgpLnN0X210aW1lIC0gbG9ja190aW1lb3V0CisgICAgICAgICAgICBj
bGVhbnVwX251bWJlcmVkX2RpcigKKyAgICAgICAgICAgICAgICByb290PXJvb3QsCisgICAgICAg
ICAgICAgICAgcHJlZml4PXByZWZpeCwKKyAgICAgICAgICAgICAgICBrZWVwPWtlZXAsCisgICAg
ICAgICAgICAgICAgY29uc2lkZXJfbG9ja19kZWFkX2lmX2NyZWF0ZWRfYmVmb3JlPWNvbnNpZGVy
X2xvY2tfZGVhZF9pZl9jcmVhdGVkX2JlZm9yZSwKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IHJldHVybiBwCisgICAgYXNzZXJ0IGUgaXMgbm90IE5vbmUKKyAgICByYWlzZSBlCisKKworZGVm
IHJlc29sdmVfZnJvbV9zdHIoaW5wdXQsIHJvb3QpOgorICAgIGFzc2VydCBub3QgaXNpbnN0YW5j
ZShpbnB1dCwgUGF0aCksICJ3b3VsZCBicmVhayBvbiBweTIiCisgICAgcm9vdCA9IFBhdGgocm9v
dCkKKyAgICBpbnB1dCA9IGV4cGFuZHVzZXIoaW5wdXQpCisgICAgaW5wdXQgPSBleHBhbmR2YXJz
KGlucHV0KQorICAgIGlmIGlzYWJzKGlucHV0KToKKyAgICAgICAgcmV0dXJuIFBhdGgoaW5wdXQp
CisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIHJvb3Quam9pbnBhdGgoaW5wdXQpCisKKworZGVm
IGZubWF0Y2hfZXgocGF0dGVybiwgcGF0aCk6CisgICAgIiIiRk5NYXRjaGVyIHBvcnQgZnJvbSBw
eS5wYXRoLmNvbW1vbiB3aGljaCB3b3JrcyB3aXRoIFB1cmVQYXRoKCkgaW5zdGFuY2VzLgorCisg
ICAgVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGFsZ29yaXRobSBhbmQgUHVyZVBhdGgubWF0
Y2goKSBpcyB0aGF0IHRoZSBsYXR0ZXIgbWF0Y2hlcyAiKioiIGdsb2IgZXhwcmVzc2lvbnMKKyAg
ICBmb3IgZWFjaCBwYXJ0IG9mIHRoZSBwYXRoLCB3aGlsZSB0aGlzIGFsZ29yaXRobSB1c2VzIHRo
ZSB3aG9sZSBwYXRoIGluc3RlYWQuCisKKyAgICBGb3IgZXhhbXBsZToKKyAgICAgICAgInRlc3Rz
L2Zvby9iYXIvZG9jL3Rlc3RfZm9vLnB5IiBtYXRjaGVzIHBhdHRlcm4gInRlc3RzLyoqL2RvYy90
ZXN0Ki5weSIgd2l0aCB0aGlzIGFsZ29yaXRobSwgYnV0IG5vdCB3aXRoCisgICAgICAgIFB1cmVQ
YXRoLm1hdGNoKCkuCisKKyAgICBUaGlzIGFsZ29yaXRobSB3YXMgcG9ydGVkIHRvIGtlZXAgYmFj
a3dhcmQtY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIHNldHRpbmdzIHdoaWNoIGFzc3VtZSBw
YXRocyBtYXRjaCBhY2NvcmRpbmcKKyAgICB0aGlzIGxvZ2ljLgorCisgICAgUmVmZXJlbmNlczoK
KyAgICAqIGh0dHBzOi8vYnVncy5weXRob24ub3JnL2lzc3VlMjkyNDkKKyAgICAqIGh0dHBzOi8v
YnVncy5weXRob24ub3JnL2lzc3VlMzQ3MzEKKyAgICAiIiIKKyAgICBwYXRoID0gUHVyZVBhdGgo
cGF0aCkKKyAgICBpc3dpbjMyID0gc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoIndpbiIpCisKKyAg
ICBpZiBpc3dpbjMyIGFuZCBzZXAgbm90IGluIHBhdHRlcm4gYW5kIHBvc2l4X3NlcCBpbiBwYXR0
ZXJuOgorICAgICAgICAjIFJ1bm5pbmcgb24gV2luZG93cywgdGhlIHBhdHRlcm4gaGFzIG5vIFdp
bmRvd3MgcGF0aCBzZXBhcmF0b3JzLAorICAgICAgICAjIGFuZCB0aGUgcGF0dGVybiBoYXMgb25l
IG9yIG1vcmUgUG9zaXggcGF0aCBzZXBhcmF0b3JzLiBSZXBsYWNlCisgICAgICAgICMgdGhlIFBv
c2l4IHBhdGggc2VwYXJhdG9ycyB3aXRoIHRoZSBXaW5kb3dzIHBhdGggc2VwYXJhdG9yLgorICAg
ICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKHBvc2l4X3NlcCwgc2VwKQorCisgICAgaWYg
c2VwIG5vdCBpbiBwYXR0ZXJuOgorICAgICAgICBuYW1lID0gcGF0aC5uYW1lCisgICAgZWxzZToK
KyAgICAgICAgbmFtZSA9IHNpeC50ZXh0X3R5cGUocGF0aCkKKyAgICByZXR1cm4gZm5tYXRjaC5m
bm1hdGNoKG5hbWUsIHBhdHRlcm4pCisKKworZGVmIHBhcnRzKHMpOgorICAgIHBhcnRzID0gcy5z
cGxpdChzZXApCisgICAgcmV0dXJuIHtzZXAuam9pbihwYXJ0c1s6IGkgKyAxXSkgb3Igc2VwIGZv
ciBpIGluIHJhbmdlKGxlbihwYXJ0cykpfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3QvcHl0ZXN0ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9weXRlc3Rlci5weQpp
bmRleCBjOWRlZmUwM2E2NjgxZWY0N2I2MTQzNjU4Zjc3ZGUzMjIxMmIzYzQ4Li5mMWQ3MzljOTkx
N2Q5NDlmNzEyNWM0YzVjYWUwY2E2MWVmMTdmMGRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9weXRlc3Rlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9weXRl
c3Rlci5weQpAQCAtMSw1ICsxLDggQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIoZGlz
YWJsZWQgYnkgZGVmYXVsdCkgc3VwcG9ydCBmb3IgdGVzdGluZyBweXRlc3QgYW5kIHB5dGVzdCBw
bHVnaW5zLiIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IGNvZGVjcwogaW1wb3J0IGdjCkBAIC03LDI2ICsx
MCwyOCBAQCBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHJlCiBpbXBvcnQgc3Vi
cHJvY2VzcwotaW1wb3J0IHNpeAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFj
ZWJhY2sKIGZyb20gZm5tYXRjaCBpbXBvcnQgZm5tYXRjaAotCiBmcm9tIHdlYWtyZWYgaW1wb3J0
IFdlYWtLZXlEaWN0aW9uYXJ5CiAKLWZyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBNdWx0aUNh
cHR1cmUsIFN5c0NhcHR1cmUKLWZyb20gX3B5dGVzdC5fY29kZSBpbXBvcnQgU291cmNlCiBpbXBv
cnQgcHkKK2ltcG9ydCBzaXgKKwogaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0Lm1haW4gaW1w
b3J0IFNlc3Npb24sIEVYSVRfT0sKK2Zyb20gX3B5dGVzdC5fY29kZSBpbXBvcnQgU291cmNlCitm
cm9tIF9weXRlc3QuX2lvLnNhZmVyZXByIGltcG9ydCBzYWZlcmVwcgogZnJvbSBfcHl0ZXN0LmFz
c2VydGlvbi5yZXdyaXRlIGltcG9ydCBBc3NlcnRpb25SZXdyaXRpbmdIb29rCi0KLQotUFlURVNU
X0ZVTExQQVRIID0gb3MucGF0aC5hYnNwYXRoKHB5dGVzdC5fX2ZpbGVfXy5yc3RyaXAoIm9jIikp
LnJlcGxhY2UoCi0gICAgIiRweS5jbGFzcyIsICIucHkiCi0pCi0KK2Zyb20gX3B5dGVzdC5jYXB0
dXJlIGltcG9ydCBNdWx0aUNhcHR1cmUKK2Zyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBTeXND
YXB0dXJlCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBzYWZlX3N0cgorZnJvbSBfcHl0ZXN0
LmNvbXBhdCBpbXBvcnQgU2VxdWVuY2UKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX0lO
VEVSUlVQVEVECitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9PSworZnJvbSBfcHl0ZXN0
Lm1haW4gaW1wb3J0IFNlc3Npb24KK2Zyb20gX3B5dGVzdC5tb25rZXlwYXRjaCBpbXBvcnQgTW9u
a2V5UGF0Y2gKK2Zyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBQYXRoCiAKIElHTk9SRV9QQU0g
PSBbICAjIGZpbGVuYW1lcyBhZGRlZCB3aGVuIG9idGFpbmluZyBkZXRhaWxzIGFib3V0IHRoZSBj
dXJyZW50IHVzZXIKICAgICB1Ii92YXIvbGliL3Nzcy9tYy9wYXNzd2QiCkBAIC0zOSw3ICs0NCw3
IEBAIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CiAgICAgICAgIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsCiAgICAgICAgIGRlc3Q9Imxzb2YiLAogICAgICAgICBkZWZhdWx0PUZhbHNlLAotICAg
ICAgICBoZWxwPSgicnVuIEZEIGNoZWNrcyBpZiBsc29mIGlzIGF2YWlsYWJsZSIpLAorICAgICAg
ICBoZWxwPSJydW4gRkQgY2hlY2tzIGlmIGxzb2YgaXMgYXZhaWxhYmxlIiwKICAgICApCiAKICAg
ICBwYXJzZXIuYWRkb3B0aW9uKApAQCAtNTMsNiArNTgsMTAgQEAgZGVmIHB5dGVzdF9hZGRvcHRp
b24ocGFyc2VyKToKICAgICAgICAgKSwKICAgICApCiAKKyAgICBwYXJzZXIuYWRkaW5pKAorICAg
ICAgICAicHl0ZXN0ZXJfZXhhbXBsZV9kaXIiLCBoZWxwPSJkaXJlY3RvcnkgdG8gdGFrZSB0aGUg
cHl0ZXN0ZXIgZXhhbXBsZSBmaWxlcyBmcm9tIgorICAgICkKKwogCiBkZWYgcHl0ZXN0X2NvbmZp
Z3VyZShjb25maWcpOgogICAgIGlmIGNvbmZpZy5nZXR2YWx1ZSgibHNvZiIpOgpAQCAtNjAsOSAr
NjksMjIgQEAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICAgICAgaWYgY2hlY2tl
ci5tYXRjaGluZ19wbGF0Zm9ybSgpOgogICAgICAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIu
cmVnaXN0ZXIoY2hlY2tlcikKIAorICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKAorICAgICAg
ICAibWFya2VycyIsCisgICAgICAgICJweXRlc3Rlcl9leGFtcGxlX3BhdGgoKnBhdGhfc2VnbWVu
dHMpOiBqb2luIHRoZSBnaXZlbiBwYXRoICIKKyAgICAgICAgInNlZ21lbnRzIHRvIGBweXRlc3Rl
cl9leGFtcGxlX2RpcmAgZm9yIHRoaXMgdGVzdC4iLAorICAgICkKIAotY2xhc3MgTHNvZkZkTGVh
a0NoZWNrZXIob2JqZWN0KToKIAorZGVmIHJhaXNlX29uX2t3YXJncyhrd2FyZ3MpOgorICAgIF9f
dHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgIGlmIGt3YXJnczogICMgcHJhZ21hOiBubyBicmFu
Y2gKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAgICAgIlVuZXhwZWN0ZWQga2V5
d29yZCBhcmd1bWVudHM6IHt9Ii5mb3JtYXQoIiwgIi5qb2luKHNvcnRlZChrd2FyZ3MpKSkKKyAg
ICAgICAgKQorCisKK2NsYXNzIExzb2ZGZExlYWtDaGVja2VyKG9iamVjdCk6CiAgICAgZGVmIGdl
dF9vcGVuX2ZpbGVzKHNlbGYpOgogICAgICAgICBvdXQgPSBzZWxmLl9leGVjX2xzb2YoKQogICAg
ICAgICBvcGVuX2ZpbGVzID0gc2VsZi5fcGFyc2VfbHNvZl9vdXRwdXQob3V0KQpAQCAtNzAsMTAg
KzkyLDEzIEBAIGNsYXNzIExzb2ZGZExlYWtDaGVja2VyKG9iamVjdCk6CiAKICAgICBkZWYgX2V4
ZWNfbHNvZihzZWxmKToKICAgICAgICAgcGlkID0gb3MuZ2V0cGlkKCkKLSAgICAgICAgcmV0dXJu
IHB5LnByb2Nlc3MuY21kZXhlYygibHNvZiAtRmZuMCAtcCAlZCIgJSBwaWQpCisgICAgICAgICMg
cHkzOiB1c2Ugc3VicHJvY2Vzcy5ERVZOVUxMIGRpcmVjdGx5LgorICAgICAgICB3aXRoIG9wZW4o
b3MuZGV2bnVsbCwgIndiIikgYXMgZGV2bnVsbDoKKyAgICAgICAgICAgIHJldHVybiBzdWJwcm9j
ZXNzLmNoZWNrX291dHB1dCgKKyAgICAgICAgICAgICAgICAoImxzb2YiLCAiLUZmbjAiLCAiLXAi
LCBzdHIocGlkKSksIHN0ZGVycj1kZXZudWxsCisgICAgICAgICAgICApLmRlY29kZSgpCiAKICAg
ICBkZWYgX3BhcnNlX2xzb2Zfb3V0cHV0KHNlbGYsIG91dCk6Ci0KICAgICAgICAgZGVmIGlzb3Bl
bihsaW5lKToKICAgICAgICAgICAgIHJldHVybiBsaW5lLnN0YXJ0c3dpdGgoImYiKSBhbmQgKAog
ICAgICAgICAgICAgICAgICJkZWxldGVkIiBub3QgaW4gbGluZQpAQCAtOTgsMTEgKzEyMyw4IEBA
IGNsYXNzIExzb2ZGZExlYWtDaGVja2VyKG9iamVjdCk6CiAKICAgICBkZWYgbWF0Y2hpbmdfcGxh
dGZvcm0oc2VsZik6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHB5LnByb2Nlc3MuY21kZXhl
YygibHNvZiAtdiIpCi0gICAgICAgIGV4Y2VwdCAocHkucHJvY2Vzcy5jbWRleGVjLkVycm9yLCBV
bmljb2RlRGVjb2RlRXJyb3IpOgotICAgICAgICAgICAgIyBjbWRleGVjIG1heSByYWlzZSBVbmlj
b2RlRGVjb2RlRXJyb3Igb24gV2luZG93cyBzeXN0ZW1zIHdpdGgKLSAgICAgICAgICAgICMgbG9j
YWxlIG90aGVyIHRoYW4gRW5nbGlzaDoKLSAgICAgICAgICAgICMgaHR0cHM6Ly9iaXRidWNrZXQu
b3JnL3B5dGVzdC1kZXYvcHkvaXNzdWVzLzY2CisgICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNr
X291dHB1dCgoImxzb2YiLCAiLXYiKSkKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBzdWJwcm9j
ZXNzLkNhbGxlZFByb2Nlc3NFcnJvcik6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBUcnVlCkBAIC0xMjgsNTcgKzE1MCw3IEBAIGNs
YXNzIExzb2ZGZExlYWtDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICAgICBlcnJvci5hcHBlbmQo
ZXJyb3JbMF0pCiAgICAgICAgICAgICBlcnJvci5hcHBlbmQoIioqKiBmdW5jdGlvbiAlczolczog
JXMgIiAlIGl0ZW0ubG9jYXRpb24pCiAgICAgICAgICAgICBlcnJvci5hcHBlbmQoIlNlZSBpc3N1
ZSAjMjM2NiIpCi0gICAgICAgICAgICBpdGVtLndhcm4oIiIsICJcbiIuam9pbihlcnJvcikpCi0K
LQotIyBYWFggY29waWVkIGZyb20gZXhlY25ldCdzIGNvbmZ0ZXN0LnB5IC0gbmVlZHMgdG8gYmUg
bWVyZ2VkCi13aW5weW1hcCA9IHsKLSAgICAicHl0aG9uMi43IjogciJDOlxQeXRob24yN1xweXRo
b24uZXhlIiwKLSAgICAicHl0aG9uMy40IjogciJDOlxQeXRob24zNFxweXRob24uZXhlIiwKLSAg
ICAicHl0aG9uMy41IjogciJDOlxQeXRob24zNVxweXRob24uZXhlIiwKLSAgICAicHl0aG9uMy42
IjogciJDOlxQeXRob24zNlxweXRob24uZXhlIiwKLX0KLQotCi1kZWYgZ2V0ZXhlY3V0YWJsZShu
YW1lLCBjYWNoZT17fSk6Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gY2FjaGVbbmFtZV0KLSAg
ICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2FsLnN5
c2ZpbmQobmFtZSkKLSAgICAgICAgaWYgZXhlY3V0YWJsZToKLSAgICAgICAgICAgIGltcG9ydCBz
dWJwcm9jZXNzCi0KLSAgICAgICAgICAgIHBvcGVuID0gc3VicHJvY2Vzcy5Qb3BlbigKLSAgICAg
ICAgICAgICAgICBbc3RyKGV4ZWN1dGFibGUpLCAiLS12ZXJzaW9uIl0sCi0gICAgICAgICAgICAg
ICAgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUsCi0gICAgICAgICAgICAgICAgc3RkZXJyPXN1YnBy
b2Nlc3MuUElQRSwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIG91dCwgZXJyID0gcG9wZW4u
Y29tbXVuaWNhdGUoKQotICAgICAgICAgICAgaWYgbmFtZSA9PSAianl0aG9uIjoKLSAgICAgICAg
ICAgICAgICBpZiBub3QgZXJyIG9yICIyLjUiIG5vdCBpbiBlcnI6Ci0gICAgICAgICAgICAgICAg
ICAgIGV4ZWN1dGFibGUgPSBOb25lCi0gICAgICAgICAgICAgICAgaWYgIjIuNS4yIiBpbiBlcnI6
Ci0gICAgICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBOb25lICAjIGh0dHA6Ly9idWdzLmp5
dGhvbi5vcmcvaXNzdWUxNzkwCi0gICAgICAgICAgICBlbGlmIHBvcGVuLnJldHVybmNvZGUgIT0g
MDoKLSAgICAgICAgICAgICAgICAjIGhhbmRsZSBweWVudidzIDEyNwotICAgICAgICAgICAgICAg
IGV4ZWN1dGFibGUgPSBOb25lCi0gICAgICAgIGNhY2hlW25hbWVdID0gZXhlY3V0YWJsZQotICAg
ICAgICByZXR1cm4gZXhlY3V0YWJsZQotCi0KLUBweXRlc3QuZml4dHVyZShwYXJhbXM9WyJweXRo
b24yLjciLCAicHl0aG9uMy40IiwgInB5cHkiLCAicHlweTMiXSkKLWRlZiBhbnlweXRob24ocmVx
dWVzdCk6Ci0gICAgbmFtZSA9IHJlcXVlc3QucGFyYW0KLSAgICBleGVjdXRhYmxlID0gZ2V0ZXhl
Y3V0YWJsZShuYW1lKQotICAgIGlmIGV4ZWN1dGFibGUgaXMgTm9uZToKLSAgICAgICAgaWYgc3lz
LnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAgICAgICAgICBleGVjdXRhYmxlID0gd2lucHltYXAu
Z2V0KG5hbWUsIE5vbmUpCi0gICAgICAgICAgICBpZiBleGVjdXRhYmxlOgotICAgICAgICAgICAg
ICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2FsKGV4ZWN1dGFibGUpCi0gICAgICAgICAgICAg
ICAgaWYgZXhlY3V0YWJsZS5jaGVjaygpOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhl
Y3V0YWJsZQotICAgICAgICBweXRlc3Quc2tpcCgibm8gc3VpdGFibGUgJXMgZm91bmQiICUgKG5h
bWUsKSkKLSAgICByZXR1cm4gZXhlY3V0YWJsZQorICAgICAgICAgICAgaXRlbS53YXJuKHB5dGVz
dC5QeXRlc3RXYXJuaW5nKCJcbiIuam9pbihlcnJvcikpKQogCiAKICMgdXNlZCBhdCBsZWFzdCBi
eSBweXRlc3QteGRpc3QgcGx1Z2luCkBAIC0xOTUsNyArMTY3LDYgQEAgZGVmIF9weXRlc3QocmVx
dWVzdCk6CiAKIAogY2xhc3MgUHl0ZXN0QXJnKG9iamVjdCk6Ci0KICAgICBkZWYgX19pbml0X18o
c2VsZiwgcmVxdWVzdCk6CiAgICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKIApAQCAtMjEx
LDcgKzE4Miw2IEBAIGRlZiBnZXRfcHVibGljX25hbWVzKHZhbHVlcyk6CiAKIAogY2xhc3MgUGFy
c2VkQ2FsbChvYmplY3QpOgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGt3YXJncyk6
CiAgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGt3YXJncykKICAgICAgICAgc2VsZi5fbmFt
ZSA9IG5hbWUKQEAgLTI3OCw3ICsyNDgsNyBAQCBjbGFzcyBIb29rUmVjb3JkZXIob2JqZWN0KToK
ICAgICAgICAgICAgICAgICBkZWwgc2VsZi5jYWxsc1tpXQogICAgICAgICAgICAgICAgIHJldHVy
biBjYWxsCiAgICAgICAgIGxpbmVzID0gWyJjb3VsZCBub3QgZmluZCBjYWxsICVyLCBpbjoiICUg
KG5hbWUsKV0KLSAgICAgICAgbGluZXMuZXh0ZW5kKFsiICAlcyIgJSBzdHIoeCkgZm9yIHggaW4g
c2VsZi5jYWxsc10pCisgICAgICAgIGxpbmVzLmV4dGVuZChbIiAgJXMiICUgeCBmb3IgeCBpbiBz
ZWxmLmNhbGxzXSkKICAgICAgICAgcHl0ZXN0LmZhaWwoIlxuIi5qb2luKGxpbmVzKSkKIAogICAg
IGRlZiBnZXRjYWxsKHNlbGYsIG5hbWUpOgpAQCAtMzAwLDEzICsyNzAsMTAgQEAgY2xhc3MgSG9v
a1JlY29yZGVyKG9iamVjdCk6CiAgICAgICAgICIiInJldHVybiBhIHRlc3RyZXBvcnQgd2hvc2Ug
ZG90dGVkIGltcG9ydCBwYXRoIG1hdGNoZXMiIiIKICAgICAgICAgdmFsdWVzID0gW10KICAgICAg
ICAgZm9yIHJlcCBpbiBzZWxmLmdldHJlcG9ydHMobmFtZXM9bmFtZXMpOgotICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgIGlmIG5vdCB3aGVuIGFuZCByZXAud2hlbiAhPSAiY2FsbCIg
YW5kIHJlcC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgICAgICMgc2V0dXAvdGVhcmRvd24gcGFz
c2luZyByZXBvcnRzIC0gbGV0J3MgaWdub3JlIHRob3NlCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCi0gICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAg
ICAgcGFzcwotICAgICAgICAgICAgaWYgd2hlbiBhbmQgZ2V0YXR0cihyZXAsICJ3aGVuIiwgTm9u
ZSkgIT0gd2hlbjoKKyAgICAgICAgICAgIGlmIG5vdCB3aGVuIGFuZCByZXAud2hlbiAhPSAiY2Fs
bCIgYW5kIHJlcC5wYXNzZWQ6CisgICAgICAgICAgICAgICAgIyBzZXR1cC90ZWFyZG93biBwYXNz
aW5nIHJlcG9ydHMgLSBsZXQncyBpZ25vcmUgdGhvc2UKKyAgICAgICAgICAgICAgICBjb250aW51
ZQorICAgICAgICAgICAgaWYgd2hlbiBhbmQgcmVwLndoZW4gIT0gd2hlbjoKICAgICAgICAgICAg
ICAgICBjb250aW51ZQogICAgICAgICAgICAgaWYgbm90IGluYW1lcGFydCBvciBpbmFtZXBhcnQg
aW4gcmVwLm5vZGVpZC5zcGxpdCgiOjoiKToKICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KHJlcCkKQEAgLTMzMywxMSArMzAwLDEyIEBAIGNsYXNzIEhvb2tSZWNvcmRlcihvYmplY3QpOgog
ICAgICAgICBmYWlsZWQgPSBbXQogICAgICAgICBmb3IgcmVwIGluIHNlbGYuZ2V0cmVwb3J0cygi
cHl0ZXN0X2NvbGxlY3RyZXBvcnQgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0Iik6CiAgICAgICAg
ICAgICBpZiByZXAucGFzc2VkOgotICAgICAgICAgICAgICAgIGlmIGdldGF0dHIocmVwLCAid2hl
biIsIE5vbmUpID09ICJjYWxsIjoKKyAgICAgICAgICAgICAgICBpZiByZXAud2hlbiA9PSAiY2Fs
bCI6CiAgICAgICAgICAgICAgICAgICAgIHBhc3NlZC5hcHBlbmQocmVwKQogICAgICAgICAgICAg
ZWxpZiByZXAuc2tpcHBlZDoKICAgICAgICAgICAgICAgICBza2lwcGVkLmFwcGVuZChyZXApCi0g
ICAgICAgICAgICBlbGlmIHJlcC5mYWlsZWQ6CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIGFzc2VydCByZXAuZmFpbGVkLCAiVW5leHBlY3RlZCBvdXRjb21lOiB7IXJ9Ii5mb3Jt
YXQocmVwKQogICAgICAgICAgICAgICAgIGZhaWxlZC5hcHBlbmQocmVwKQogICAgICAgICByZXR1
cm4gcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQKIApAQCAtMzY5LDYgKzMzNywyNCBAQCBkZWYgdGVz
dGRpcihyZXF1ZXN0LCB0bXBkaXJfZmFjdG9yeSk6CiAgICAgcmV0dXJuIFRlc3RkaXIocmVxdWVz
dCwgdG1wZGlyX2ZhY3RvcnkpCiAKIAorQHB5dGVzdC5maXh0dXJlCitkZWYgX3N5c19zbmFwc2hv
dCgpOgorICAgIHNuYXBwYXRocyA9IFN5c1BhdGhzU25hcHNob3QoKQorICAgIHNuYXBtb2RzID0g
U3lzTW9kdWxlc1NuYXBzaG90KCkKKyAgICB5aWVsZAorICAgIHNuYXBtb2RzLnJlc3RvcmUoKQor
ICAgIHNuYXBwYXRocy5yZXN0b3JlKCkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBfY29uZmln
X2Zvcl90ZXN0KCk6CisgICAgZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgZ2V0X2NvbmZpZwor
CisgICAgY29uZmlnID0gZ2V0X2NvbmZpZygpCisgICAgeWllbGQgY29uZmlnCisgICAgY29uZmln
Ll9lbnN1cmVfdW5jb25maWd1cmUoKSAgIyBjbGVhbnVwLCBlLmcuIGNhcG1hbiBjbG9zaW5nIHRt
cGZpbGVzLgorCisKIHJleF9vdXRjb21lID0gcmUuY29tcGlsZShyIihcZCspIChbXHctXSspIikK
IAogCkBAIC0zOTYsNiArMzgyLDEyIEBAIGNsYXNzIFJ1blJlc3VsdChvYmplY3QpOgogICAgICAg
ICBzZWxmLnN0ZGVyciA9IExpbmVNYXRjaGVyKGVycmxpbmVzKQogICAgICAgICBzZWxmLmR1cmF0
aW9uID0gZHVyYXRpb24KIAorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJu
ICgKKyAgICAgICAgICAgICI8UnVuUmVzdWx0IHJldD0lciBsZW4oc3Rkb3V0LmxpbmVzKT0lZCBs
ZW4oc3RkZXJyLmxpbmVzKT0lZCBkdXJhdGlvbj0lLjJmcz4iCisgICAgICAgICAgICAlIChzZWxm
LnJldCwgbGVuKHNlbGYuc3Rkb3V0LmxpbmVzKSwgbGVuKHNlbGYuc3RkZXJyLmxpbmVzKSwgc2Vs
Zi5kdXJhdGlvbikKKyAgICAgICAgKQorCiAgICAgZGVmIHBhcnNlb3V0Y29tZXMoc2VsZik6CiAg
ICAgICAgICIiIlJldHVybiBhIGRpY3Rpb25hcnkgb2Ygb3V0Y29tZXN0cmluZy0+bnVtIGZyb20g
cGFyc2luZyB0aGUgdGVybWluYWwKICAgICAgICAgb3V0cHV0IHRoYXQgdGhlIHRlc3QgcHJvY2Vz
cyBwcm9kdWNlZC4KQEAgLTQxMSw3ICs0MDMsOSBAQCBjbGFzcyBSdW5SZXN1bHQob2JqZWN0KToK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGQKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
UHl0ZXN0IHRlcm1pbmFsIHJlcG9ydCBub3QgZm91bmQiKQogCi0gICAgZGVmIGFzc2VydF9vdXRj
b21lcyhzZWxmLCBwYXNzZWQ9MCwgc2tpcHBlZD0wLCBmYWlsZWQ9MCwgZXJyb3I9MCk6CisgICAg
ZGVmIGFzc2VydF9vdXRjb21lcygKKyAgICAgICAgc2VsZiwgcGFzc2VkPTAsIHNraXBwZWQ9MCwg
ZmFpbGVkPTAsIGVycm9yPTAsIHhwYXNzZWQ9MCwgeGZhaWxlZD0wCisgICAgKToKICAgICAgICAg
IiIiQXNzZXJ0IHRoYXQgdGhlIHNwZWNpZmllZCBvdXRjb21lcyBhcHBlYXIgd2l0aCB0aGUgcmVz
cGVjdGl2ZQogICAgICAgICBudW1iZXJzICgwIG1lYW5zIGl0IGRpZG4ndCBvY2N1cikgaW4gdGhl
IHRleHQgb3V0cHV0IGZyb20gYSB0ZXN0IHJ1bi4KIApAQCAtNDIyLDE0ICs0MTYsMjEgQEAgY2xh
c3MgUnVuUmVzdWx0KG9iamVjdCk6CiAgICAgICAgICAgICAic2tpcHBlZCI6IGQuZ2V0KCJza2lw
cGVkIiwgMCksCiAgICAgICAgICAgICAiZmFpbGVkIjogZC5nZXQoImZhaWxlZCIsIDApLAogICAg
ICAgICAgICAgImVycm9yIjogZC5nZXQoImVycm9yIiwgMCksCisgICAgICAgICAgICAieHBhc3Nl
ZCI6IGQuZ2V0KCJ4cGFzc2VkIiwgMCksCisgICAgICAgICAgICAieGZhaWxlZCI6IGQuZ2V0KCJ4
ZmFpbGVkIiwgMCksCiAgICAgICAgIH0KLSAgICAgICAgYXNzZXJ0ICgKLSAgICAgICAgICAgIG9i
dGFpbmVkID09IGRpY3QocGFzc2VkPXBhc3NlZCwgc2tpcHBlZD1za2lwcGVkLCBmYWlsZWQ9ZmFp
bGVkLCBlcnJvcj1lcnJvcikKLSAgICAgICAgKQorICAgICAgICBleHBlY3RlZCA9IHsKKyAgICAg
ICAgICAgICJwYXNzZWQiOiBwYXNzZWQsCisgICAgICAgICAgICAic2tpcHBlZCI6IHNraXBwZWQs
CisgICAgICAgICAgICAiZmFpbGVkIjogZmFpbGVkLAorICAgICAgICAgICAgImVycm9yIjogZXJy
b3IsCisgICAgICAgICAgICAieHBhc3NlZCI6IHhwYXNzZWQsCisgICAgICAgICAgICAieGZhaWxl
ZCI6IHhmYWlsZWQsCisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0IG9idGFpbmVkID09IGV4cGVj
dGVkCiAKIAogY2xhc3MgQ3dkU25hcHNob3Qob2JqZWN0KToKLQogICAgIGRlZiBfX2luaXRfXyhz
ZWxmKToKICAgICAgICAgc2VsZi5fX3NhdmVkID0gb3MuZ2V0Y3dkKCkKIApAQCAtNDM4LDcgKzQz
OSw2IEBAIGNsYXNzIEN3ZFNuYXBzaG90KG9iamVjdCk6CiAKIAogY2xhc3MgU3lzTW9kdWxlc1Nu
YXBzaG90KG9iamVjdCk6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgcHJlc2VydmU9Tm9uZSk6
CiAgICAgICAgIHNlbGYuX19wcmVzZXJ2ZSA9IHByZXNlcnZlCiAgICAgICAgIHNlbGYuX19zYXZl
ZCA9IGRpY3Qoc3lzLm1vZHVsZXMpCkBAIC00NTMsNyArNDUzLDYgQEAgY2xhc3MgU3lzTW9kdWxl
c1NuYXBzaG90KG9iamVjdCk6CiAKIAogY2xhc3MgU3lzUGF0aHNTbmFwc2hvdChvYmplY3QpOgot
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICBzZWxmLl9fc2F2ZWQgPSBsaXN0KHN5
cy5wYXRoKSwgbGlzdChzeXMubWV0YV9wYXRoKQogCkBAIC00NzksMTEgKzQ3OCwxNyBAQCBjbGFz
cyBUZXN0ZGlyKG9iamVjdCk6CiAKICAgICAiIiIKIAorICAgIENMT1NFX1NURElOID0gb2JqZWN0
CisKKyAgICBjbGFzcyBUaW1lb3V0RXhwaXJlZChFeGNlcHRpb24pOgorICAgICAgICBwYXNzCisK
ICAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpOgogICAgICAg
ICBzZWxmLnJlcXVlc3QgPSByZXF1ZXN0CiAgICAgICAgIHNlbGYuX21vZF9jb2xsZWN0aW9ucyA9
IFdlYWtLZXlEaWN0aW9uYXJ5KCkKICAgICAgICAgbmFtZSA9IHJlcXVlc3QuZnVuY3Rpb24uX19u
YW1lX18KICAgICAgICAgc2VsZi50bXBkaXIgPSB0bXBkaXJfZmFjdG9yeS5ta3RlbXAobmFtZSwg
bnVtYmVyZWQ9VHJ1ZSkKKyAgICAgICAgc2VsZi50ZXN0X3RtcHJvb3QgPSB0bXBkaXJfZmFjdG9y
eS5ta3RlbXAoInRtcC0iICsgbmFtZSwgbnVtYmVyZWQ9VHJ1ZSkKICAgICAgICAgc2VsZi5wbHVn
aW5zID0gW10KICAgICAgICAgc2VsZi5fY3dkX3NuYXBzaG90ID0gQ3dkU25hcHNob3QoKQogICAg
ICAgICBzZWxmLl9zeXNfcGF0aF9zbmFwc2hvdCA9IFN5c1BhdGhzU25hcHNob3QoKQpAQCAtNDk2
LDkgKzUwMSwyMyBAQCBjbGFzcyBUZXN0ZGlyKG9iamVjdCk6CiAgICAgICAgIGVsaWYgbWV0aG9k
ID09ICJzdWJwcm9jZXNzIjoKICAgICAgICAgICAgIHNlbGYuX3J1bnB5dGVzdF9tZXRob2QgPSBz
ZWxmLnJ1bnB5dGVzdF9zdWJwcm9jZXNzCiAKKyAgICAgICAgbXAgPSBzZWxmLm1vbmtleXBhdGNo
ID0gTW9ua2V5UGF0Y2goKQorICAgICAgICBtcC5zZXRlbnYoIlBZVEVTVF9ERUJVR19URU1QUk9P
VCIsIHN0cihzZWxmLnRlc3RfdG1wcm9vdCkpCisgICAgICAgICMgRW5zdXJlIG5vIHVuZXhwZWN0
ZWQgY2FjaGluZyB2aWEgdG94LgorICAgICAgICBtcC5kZWxlbnYoIlRPWF9FTlZfRElSIiwgcmFp
c2luZz1GYWxzZSkKKyAgICAgICAgIyBEaXNjYXJkIG91dGVyIHB5dGVzdCBvcHRpb25zLgorICAg
ICAgICBtcC5kZWxlbnYoIlBZVEVTVF9BRERPUFRTIiwgcmFpc2luZz1GYWxzZSkKKworICAgICAg
ICAjIEVudmlyb25tZW50ICh1cGRhdGVzKSBmb3IgaW5uZXIgcnVucy4KKyAgICAgICAgdG1waG9t
ZSA9IHN0cihzZWxmLnRtcGRpcikKKyAgICAgICAgc2VsZi5fZW52X3J1bl91cGRhdGUgPSB7IkhP
TUUiOiB0bXBob21lLCAiVVNFUlBST0ZJTEUiOiB0bXBob21lfQorCiAgICAgZGVmIF9fcmVwcl9f
KHNlbGYpOgogICAgICAgICByZXR1cm4gIjxUZXN0ZGlyICVyPiIgJSAoc2VsZi50bXBkaXIsKQog
CisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzdHIoc2VsZi50bXBkaXIp
CisKICAgICBkZWYgZmluYWxpemUoc2VsZik6CiAgICAgICAgICIiIkNsZWFuIHVwIGdsb2JhbCBz
dGF0ZSBhcnRpZmFjdHMuCiAKQEAgLTUxMCw2ICs1MjksNyBAQCBjbGFzcyBUZXN0ZGlyKG9iamVj
dCk6CiAgICAgICAgIHNlbGYuX3N5c19tb2R1bGVzX3NuYXBzaG90LnJlc3RvcmUoKQogICAgICAg
ICBzZWxmLl9zeXNfcGF0aF9zbmFwc2hvdC5yZXN0b3JlKCkKICAgICAgICAgc2VsZi5fY3dkX3Nu
YXBzaG90LnJlc3RvcmUoKQorICAgICAgICBzZWxmLm1vbmtleXBhdGNoLnVuZG8oKQogCiAgICAg
ZGVmIF9fdGFrZV9zeXNfbW9kdWxlc19zbmFwc2hvdChzZWxmKToKICAgICAgICAgIyBzb21lIHpv
cGUgbW9kdWxlcyB1c2VkIGJ5IHR3aXN0ZWQtcmVsYXRlZCB0ZXN0cyBrZWVwIGludGVybmFsIHN0
YXRlCkBAIC01MjIsNyArNTQyLDYgQEAgY2xhc3MgVGVzdGRpcihvYmplY3QpOgogCiAgICAgZGVm
IG1ha2VfaG9va19yZWNvcmRlcihzZWxmLCBwbHVnaW5tYW5hZ2VyKToKICAgICAgICAgIiIiQ3Jl
YXRlIGEgbmV3IDpweTpjbGFzczpgSG9va1JlY29yZGVyYCBmb3IgYSBQbHVnaW5NYW5hZ2VyLiIi
IgotICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIocGx1Z2lubWFuYWdlciwgInJlcHJlYyIpCiAg
ICAgICAgIHBsdWdpbm1hbmFnZXIucmVwcmVjID0gcmVwcmVjID0gSG9va1JlY29yZGVyKHBsdWdp
bm1hbmFnZXIpCiAgICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIocmVwcmVjLmZpbmlz
aF9yZWNvcmRpbmcpCiAgICAgICAgIHJldHVybiByZXByZWMKQEAgLTU1OCwxOCArNTc3LDIyIEBA
IGNsYXNzIFRlc3RkaXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHJldAogCiAgICAgZGVmIG1h
a2VmaWxlKHNlbGYsIGV4dCwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIiQ3JlYXRlIGEg
bmV3IGZpbGUgaW4gdGhlIHRlc3RkaXIuCi0KLSAgICAgICAgZXh0OiBUaGUgZXh0ZW5zaW9uIHRo
ZSBmaWxlIHNob3VsZCB1c2UsIGluY2x1ZGluZyB0aGUgZG90LCBlLmcuIGAucHlgLgorICAgICAg
ICByIiIiQ3JlYXRlIG5ldyBmaWxlKHMpIGluIHRoZSB0ZXN0ZGlyLgogCi0gICAgICAgIGFyZ3M6
IEFsbCBhcmdzIHdpbGwgYmUgdHJlYXRlZCBhcyBzdHJpbmdzIGFuZCBqb2luZWQgdXNpbmcgbmV3
bGluZXMuCisgICAgICAgIDpwYXJhbSBzdHIgZXh0OiBUaGUgZXh0ZW5zaW9uIHRoZSBmaWxlKHMp
IHNob3VsZCB1c2UsIGluY2x1ZGluZyB0aGUgZG90LCBlLmcuIGAucHlgLgorICAgICAgICA6cGFy
YW0gbGlzdFtzdHJdIGFyZ3M6IEFsbCBhcmdzIHdpbGwgYmUgdHJlYXRlZCBhcyBzdHJpbmdzIGFu
ZCBqb2luZWQgdXNpbmcgbmV3bGluZXMuCiAgICAgICAgICAgIFRoZSByZXN1bHQgd2lsbCBiZSB3
cml0dGVuIGFzIGNvbnRlbnRzIHRvIHRoZSBmaWxlLiAgVGhlIG5hbWUgb2YgdGhlCiAgICAgICAg
ICAgIGZpbGUgd2lsbCBiZSBiYXNlZCBvbiB0aGUgdGVzdCBmdW5jdGlvbiByZXF1ZXN0aW5nIHRo
aXMgZml4dHVyZS4KLSAgICAgICAgICAgRS5nLiAidGVzdGRpci5tYWtlZmlsZSgnLnR4dCcsICds
aW5lMScsICdsaW5lMicpIgotCi0gICAgICAgIGt3YXJnczogRWFjaCBrZXl3b3JkIGlzIHRoZSBu
YW1lIG9mIGEgZmlsZSwgd2hpbGUgdGhlIHZhbHVlIG9mIGl0IHdpbGwKKyAgICAgICAgOnBhcmFt
IGt3YXJnczogRWFjaCBrZXl3b3JkIGlzIHRoZSBuYW1lIG9mIGEgZmlsZSwgd2hpbGUgdGhlIHZh
bHVlIG9mIGl0IHdpbGwKICAgICAgICAgICAgYmUgd3JpdHRlbiBhcyBjb250ZW50cyBvZiB0aGUg
ZmlsZS4KLSAgICAgICAgICAgRS5nLiAidGVzdGRpci5tYWtlZmlsZSgnLmluaScsIHB5dGVzdD0n
W3B5dGVzdF1cbmFkZG9wdHM9LXJzXG4nKSIKKworICAgICAgICBFeGFtcGxlczoKKworICAgICAg
ICAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAgICAgICAgIHRlc3RkaXIubWFrZWZpbGUo
Ii50eHQiLCAibGluZTEiLCAibGluZTIiKQorCisgICAgICAgICAgICB0ZXN0ZGlyLm1ha2VmaWxl
KCIuaW5pIiwgcHl0ZXN0PSJbcHl0ZXN0XVxuYWRkb3B0cz0tcnNcbiIpCiAKICAgICAgICAgIiIi
CiAgICAgICAgIHJldHVybiBzZWxmLl9tYWtlZmlsZShleHQsIGFyZ3MsIGt3YXJncykKQEAgLTYw
MCwyNSArNjIzLDExIEBAIGNsYXNzIFRlc3RkaXIob2JqZWN0KToKIAogICAgICAgICBUaGlzIGlz
IHVuZG9uZSBhdXRvbWF0aWNhbGx5IHdoZW4gdGhpcyBvYmplY3QgZGllcyBhdCB0aGUgZW5kIG9m
IGVhY2gKICAgICAgICAgdGVzdC4KLQogICAgICAgICAiIiIKICAgICAgICAgaWYgcGF0aCBpcyBO
b25lOgogICAgICAgICAgICAgcGF0aCA9IHNlbGYudG1wZGlyCi0gICAgICAgIHN5cy5wYXRoLmlu
c2VydCgwLCBzdHIocGF0aCkpCi0gICAgICAgICMgYSBjYWxsIHRvIHN5c3BhdGhpbnNlcnQoKSB1
c3VhbGx5IG1lYW5zIHRoYXQgdGhlIGNhbGxlciB3YW50cyB0bwotICAgICAgICAjIGltcG9ydCBz
b21lIGR5bmFtaWNhbGx5IGNyZWF0ZWQgZmlsZXMsIHRodXMgd2l0aCBweXRob24zIHdlCi0gICAg
ICAgICMgaW52YWxpZGF0ZSBpdHMgaW1wb3J0IGNhY2hlcwotICAgICAgICBzZWxmLl9wb3NzaWJs
eV9pbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMoKQotCi0gICAgZGVmIF9wb3NzaWJseV9pbnZhbGlk
YXRlX2ltcG9ydF9jYWNoZXMoc2VsZik6Ci0gICAgICAgICMgaW52YWxpZGF0ZSBjYWNoZXMgaWYg
d2UgY2FuIChweTMzIGFuZCBhYm92ZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0
IGltcG9ydGxpYgotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICBwYXNz
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKGltcG9ydGxpYiwgImludmFs
aWRhdGVfY2FjaGVzIik6Ci0gICAgICAgICAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2Fj
aGVzKCkKKworICAgICAgICBzZWxmLm1vbmtleXBhdGNoLnN5c3BhdGhfcHJlcGVuZChzdHIocGF0
aCkpCiAKICAgICBkZWYgbWtkaXIoc2VsZiwgbmFtZSk6CiAgICAgICAgICIiIkNyZWF0ZSBhIG5l
dyAoc3ViKWRpcmVjdG9yeS4iIiIKQEAgLTYzNSw2ICs2NDQsNTAgQEAgY2xhc3MgVGVzdGRpcihv
YmplY3QpOgogICAgICAgICBwLmVuc3VyZSgiX19pbml0X18ucHkiKQogICAgICAgICByZXR1cm4g
cAogCisgICAgZGVmIGNvcHlfZXhhbXBsZShzZWxmLCBuYW1lPU5vbmUpOgorICAgICAgICBpbXBv
cnQgd2FybmluZ3MKKyAgICAgICAgZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFBZ
VEVTVEVSX0NPUFlfRVhBTVBMRQorCisgICAgICAgIHdhcm5pbmdzLndhcm4oUFlURVNURVJfQ09Q
WV9FWEFNUExFLCBzdGFja2xldmVsPTIpCisgICAgICAgIGV4YW1wbGVfZGlyID0gc2VsZi5yZXF1
ZXN0LmNvbmZpZy5nZXRpbmkoInB5dGVzdGVyX2V4YW1wbGVfZGlyIikKKyAgICAgICAgaWYgZXhh
bXBsZV9kaXIgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInB5dGVzdGVy
X2V4YW1wbGVfZGlyIGlzIHVuc2V0LCBjYW4ndCBjb3B5IGV4YW1wbGVzIikKKyAgICAgICAgZXhh
bXBsZV9kaXIgPSBzZWxmLnJlcXVlc3QuY29uZmlnLnJvb3RkaXIuam9pbihleGFtcGxlX2RpcikK
KworICAgICAgICBmb3IgZXh0cmFfZWxlbWVudCBpbiBzZWxmLnJlcXVlc3Qubm9kZS5pdGVyX21h
cmtlcnMoInB5dGVzdGVyX2V4YW1wbGVfcGF0aCIpOgorICAgICAgICAgICAgYXNzZXJ0IGV4dHJh
X2VsZW1lbnQuYXJncworICAgICAgICAgICAgZXhhbXBsZV9kaXIgPSBleGFtcGxlX2Rpci5qb2lu
KCpleHRyYV9lbGVtZW50LmFyZ3MpCisKKyAgICAgICAgaWYgbmFtZSBpcyBOb25lOgorICAgICAg
ICAgICAgZnVuY19uYW1lID0gc2VsZi5yZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fCisgICAgICAg
ICAgICBtYXliZV9kaXIgPSBleGFtcGxlX2RpciAvIGZ1bmNfbmFtZQorICAgICAgICAgICAgbWF5
YmVfZmlsZSA9IGV4YW1wbGVfZGlyIC8gKGZ1bmNfbmFtZSArICIucHkiKQorCisgICAgICAgICAg
ICBpZiBtYXliZV9kaXIuaXNkaXIoKToKKyAgICAgICAgICAgICAgICBleGFtcGxlX3BhdGggPSBt
YXliZV9kaXIKKyAgICAgICAgICAgIGVsaWYgbWF5YmVfZmlsZS5pc2ZpbGUoKToKKyAgICAgICAg
ICAgICAgICBleGFtcGxlX3BhdGggPSBtYXliZV9maWxlCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIHJhaXNlIExvb2t1cEVycm9yKAorICAgICAgICAgICAgICAgICAgICAie30g
Y2FudCBiZSBmb3VuZCBhcyBtb2R1bGUgb3IgcGFja2FnZSBpbiB7fSIuZm9ybWF0KAorICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuY19uYW1lLCBleGFtcGxlX2Rpci5iZXN0cmVscGF0aChzZWxm
LnJlcXVlc3QuY29uZmlnLnJvb3RkaXIpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleGFtcGxlX3BhdGggPSBleGFt
cGxlX2Rpci5qb2luKG5hbWUpCisKKyAgICAgICAgaWYgZXhhbXBsZV9wYXRoLmlzZGlyKCkgYW5k
IG5vdCBleGFtcGxlX3BhdGguam9pbigiX19pbml0X18ucHkiKS5pc2ZpbGUoKToKKyAgICAgICAg
ICAgIGV4YW1wbGVfcGF0aC5jb3B5KHNlbGYudG1wZGlyKQorICAgICAgICAgICAgcmV0dXJuIHNl
bGYudG1wZGlyCisgICAgICAgIGVsaWYgZXhhbXBsZV9wYXRoLmlzZmlsZSgpOgorICAgICAgICAg
ICAgcmVzdWx0ID0gc2VsZi50bXBkaXIuam9pbihleGFtcGxlX3BhdGguYmFzZW5hbWUpCisgICAg
ICAgICAgICBleGFtcGxlX3BhdGguY29weShyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVz
dWx0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBMb29rdXBFcnJvcigKKyAgICAg
ICAgICAgICAgICAnZXhhbXBsZSAie30iIGlzIG5vdCBmb3VuZCBhcyBhIGZpbGUgb3IgZGlyZWN0
b3J5Jy5mb3JtYXQoZXhhbXBsZV9wYXRoKQorICAgICAgICAgICAgKQorCiAgICAgU2Vzc2lvbiA9
IFNlc3Npb24KIAogICAgIGRlZiBnZXRub2RlKHNlbGYsIGNvbmZpZywgYXJnKToKQEAgLTc0Miwx
NCArNzk1LDIzIEBAIGNsYXNzIFRlc3RkaXIob2JqZWN0KToKIAogICAgICAgICA6cGFyYW0gYXJn
czogY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byBwYXNzIHRvIDpweTpmdW5jOmBweXRlc3QubWFp
bmAKIAotICAgICAgICA6cGFyYW0gcGx1Z2luOiAoa2V5d29yZC1vbmx5KSBleHRyYSBwbHVnaW4g
aW5zdGFuY2VzIHRoZQorICAgICAgICA6cGFyYW0gcGx1Z2luczogKGtleXdvcmQtb25seSkgZXh0
cmEgcGx1Z2luIGluc3RhbmNlcyB0aGUKICAgICAgICAgICAgYGBweXRlc3QubWFpbigpYGAgaW5z
dGFuY2Ugc2hvdWxkIHVzZQogCiAgICAgICAgIDpyZXR1cm46IGEgOnB5OmNsYXNzOmBIb29rUmVj
b3JkZXJgIGluc3RhbmNlCi0KICAgICAgICAgIiIiCisgICAgICAgIHBsdWdpbnMgPSBrd2FyZ3Mu
cG9wKCJwbHVnaW5zIiwgW10pCisgICAgICAgIG5vX3JlcmFpc2VfY3RybGMgPSBrd2FyZ3MucG9w
KCJub19yZXJhaXNlX2N0cmxjIiwgTm9uZSkKKyAgICAgICAgcmFpc2Vfb25fa3dhcmdzKGt3YXJn
cykKKwogICAgICAgICBmaW5hbGl6ZXJzID0gW10KICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
IyBEbyBub3QgbG9hZCB1c2VyIGNvbmZpZyAoZHVyaW5nIHJ1bnMgb25seSkuCisgICAgICAgICAg
ICBtcF9ydW4gPSBNb25rZXlQYXRjaCgpCisgICAgICAgICAgICBmb3IgaywgdiBpbiBzZWxmLl9l
bnZfcnVuX3VwZGF0ZS5pdGVtcygpOgorICAgICAgICAgICAgICAgIG1wX3J1bi5zZXRlbnYoaywg
dikKKyAgICAgICAgICAgIGZpbmFsaXplcnMuYXBwZW5kKG1wX3J1bi51bmRvKQorCiAgICAgICAg
ICAgICAjIFdoZW4gcnVubmluZyBweXRlc3QgaW5saW5lIGFueSBwbHVnaW5zIGFjdGl2ZSBpbiB0
aGUgbWFpbiB0ZXN0CiAgICAgICAgICAgICAjIHByb2Nlc3MgYXJlIGFscmVhZHkgaW1wb3J0ZWQu
ICBTbyB0aGlzIGRpc2FibGVzIHRoZSB3YXJuaW5nIHdoaWNoCiAgICAgICAgICAgICAjIHdpbGwg
dHJpZ2dlciB0byBzYXkgdGhleSBjYW4gbm8gbG9uZ2VyIGJlIHJld3JpdHRlbiwgd2hpY2ggaXMK
QEAgLTc3OCwxMSArODQwLDkgQEAgY2xhc3MgVGVzdGRpcihvYmplY3QpOgogICAgICAgICAgICAg
cmVjID0gW10KIAogICAgICAgICAgICAgY2xhc3MgQ29sbGVjdChvYmplY3QpOgotCiAgICAgICAg
ICAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoeCwgY29uZmlnKToKICAgICAgICAgICAgICAg
ICAgICAgcmVjLmFwcGVuZChzZWxmLm1ha2VfaG9va19yZWNvcmRlcihjb25maWcucGx1Z2lubWFu
YWdlcikpCiAKLSAgICAgICAgICAgIHBsdWdpbnMgPSBrd2FyZ3MuZ2V0KCJwbHVnaW5zIikgb3Ig
W10KICAgICAgICAgICAgIHBsdWdpbnMuYXBwZW5kKENvbGxlY3QoKSkKICAgICAgICAgICAgIHJl
dCA9IHB5dGVzdC5tYWluKGxpc3QoYXJncyksIHBsdWdpbnM9cGx1Z2lucykKICAgICAgICAgICAg
IGlmIGxlbihyZWMpID09IDE6CkBAIC03OTYsNyArODU2LDcgQEAgY2xhc3MgVGVzdGRpcihvYmpl
Y3QpOgogCiAgICAgICAgICAgICAjIHR5cGljYWxseSB3ZSByZXJhaXNlIGtleWJvYXJkIGludGVy
cnVwdHMgZnJvbSB0aGUgY2hpbGQgcnVuCiAgICAgICAgICAgICAjIGJlY2F1c2UgaXQncyBvdXIg
dXNlciByZXF1ZXN0aW5nIGludGVycnVwdGlvbiBvZiB0aGUgdGVzdGluZwotICAgICAgICAgICAg
aWYgcmV0ID09IDIgYW5kIG5vdCBrd2FyZ3MuZ2V0KCJub19yZXJhaXNlX2N0cmxjIik6CisgICAg
ICAgICAgICBpZiByZXQgPT0gRVhJVF9JTlRFUlJVUFRFRCBhbmQgbm90IG5vX3JlcmFpc2VfY3Ry
bGM6CiAgICAgICAgICAgICAgICAgY2FsbHMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9rZXli
b2FyZF9pbnRlcnJ1cHQiKQogICAgICAgICAgICAgICAgIGlmIGNhbGxzIGFuZCBjYWxsc1stMV0u
ZXhjaW5mby50eXBlID09IEtleWJvYXJkSW50ZXJydXB0OgogICAgICAgICAgICAgICAgICAgICBy
YWlzZSBLZXlib2FyZEludGVycnVwdCgpCkBAIC04MDgsOSArODY4LDEwIEBAIGNsYXNzIFRlc3Rk
aXIob2JqZWN0KToKICAgICBkZWYgcnVucHl0ZXN0X2lucHJvY2VzcyhzZWxmLCAqYXJncywgKipr
d2FyZ3MpOgogICAgICAgICAiIiJSZXR1cm4gcmVzdWx0IG9mIHJ1bm5pbmcgcHl0ZXN0IGluLXBy
b2Nlc3MsIHByb3ZpZGluZyBhIHNpbWlsYXIKICAgICAgICAgaW50ZXJmYWNlIHRvIHdoYXQgc2Vs
Zi5ydW5weXRlc3QoKSBwcm92aWRlcy4KLQogICAgICAgICAiIiIKLSAgICAgICAgaWYga3dhcmdz
LmdldCgic3lzcGF0aGluc2VydCIpOgorICAgICAgICBzeXNwYXRoaW5zZXJ0ID0ga3dhcmdzLnBv
cCgic3lzcGF0aGluc2VydCIsIEZhbHNlKQorCisgICAgICAgIGlmIHN5c3BhdGhpbnNlcnQ6CiAg
ICAgICAgICAgICBzZWxmLnN5c3BhdGhpbnNlcnQoKQogICAgICAgICBub3cgPSB0aW1lLnRpbWUo
KQogICAgICAgICBjYXB0dXJlID0gTXVsdGlDYXB0dXJlKENhcHR1cmU9U3lzQ2FwdHVyZSkKQEAg
LTg0OCwxNCArOTA5LDEyIEBAIGNsYXNzIFRlc3RkaXIob2JqZWN0KToKICAgICAgICAgcmV0dXJu
IHNlbGYuX3J1bnB5dGVzdF9tZXRob2QoKmFyZ3MsICoqa3dhcmdzKQogCiAgICAgZGVmIF9lbnN1
cmVfYmFzZXRlbXAoc2VsZiwgYXJncyk6Ci0gICAgICAgIGFyZ3MgPSBbc3RyKHgpIGZvciB4IGlu
IGFyZ3NdCisgICAgICAgIGFyZ3MgPSBsaXN0KGFyZ3MpCiAgICAgICAgIGZvciB4IGluIGFyZ3M6
Ci0gICAgICAgICAgICBpZiBzdHIoeCkuc3RhcnRzd2l0aCgiLS1iYXNldGVtcCIpOgotICAgICAg
ICAgICAgICAgICMgcHJpbnQoImJhc2VkdGVtcCBleGlzdHM6ICVzIiAlKGFyZ3MsKSkKKyAgICAg
ICAgICAgIGlmIHNhZmVfc3RyKHgpLnN0YXJ0c3dpdGgoIi0tYmFzZXRlbXAiKToKICAgICAgICAg
ICAgICAgICBicmVhawogICAgICAgICBlbHNlOgogICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0t
YmFzZXRlbXA9JXMiICUgc2VsZi50bXBkaXIuZGlycGF0aCgiYmFzZXRlbXAiKSkKLSAgICAgICAg
ICAgICMgcHJpbnQoImFkZGVkIGJhc2V0ZW1wOiAlcyIgJShhcmdzLCkpCiAgICAgICAgIHJldHVy
biBhcmdzCiAKICAgICBkZWYgcGFyc2Vjb25maWcoc2VsZiwgKmFyZ3MpOgpAQCAtOTEwLDggKzk2
OSwxMCBAQCBjbGFzcyBUZXN0ZGlyKG9iamVjdCk6CiAgICAgICAgIGZvciBpdGVtIGluIGl0ZW1z
OgogICAgICAgICAgICAgaWYgaXRlbS5uYW1lID09IGZ1bmNuYW1lOgogICAgICAgICAgICAgICAg
IHJldHVybiBpdGVtCi0gICAgICAgIGFzc2VydCAwLCAoCi0gICAgICAgICAgICAiJXIgaXRlbSBu
b3QgZm91bmQgaW4gbW9kdWxlOlxuJXNcbml0ZW1zOiAlcyIgJSAoZnVuY25hbWUsIHNvdXJjZSwg
aXRlbXMpCisgICAgICAgIGFzc2VydCAwLCAiJXIgaXRlbSBub3QgZm91bmQgaW4gbW9kdWxlOlxu
JXNcbml0ZW1zOiAlcyIgJSAoCisgICAgICAgICAgICBmdW5jbmFtZSwKKyAgICAgICAgICAgIHNv
dXJjZSwKKyAgICAgICAgICAgIGl0ZW1zLAogICAgICAgICApCiAKICAgICBkZWYgZ2V0aXRlbXMo
c2VsZiwgc291cmNlKToKQEAgLTk0MCwxNCArMTAwMSwxNiBAQCBjbGFzcyBUZXN0ZGlyKG9iamVj
dCk6CiAgICAgICAgICAgICBzYW1lIGRpcmVjdG9yeSB0byBlbnN1cmUgaXQgaXMgYSBwYWNrYWdl
CiAKICAgICAgICAgIiIiCi0gICAgICAgIGt3ID0ge3NlbGYucmVxdWVzdC5mdW5jdGlvbi5fX25h
bWVfXzogU291cmNlKHNvdXJjZSkuc3RyaXAoKX0KLSAgICAgICAgcGF0aCA9IHNlbGYubWFrZXB5
ZmlsZSgqKmt3KQorICAgICAgICBpZiBpc2luc3RhbmNlKHNvdXJjZSwgUGF0aCk6CisgICAgICAg
ICAgICBwYXRoID0gc2VsZi50bXBkaXIuam9pbihzdHIoc291cmNlKSkKKyAgICAgICAgICAgIGFz
c2VydCBub3Qgd2l0aGluaXQsICJub3Qgc3VwcG9ydGVkIGZvciBwYXRocyIKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGt3ID0ge3NlbGYucmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXzogU291
cmNlKHNvdXJjZSkuc3RyaXAoKX0KKyAgICAgICAgICAgIHBhdGggPSBzZWxmLm1ha2VweWZpbGUo
KiprdykKICAgICAgICAgaWYgd2l0aGluaXQ6CiAgICAgICAgICAgICBzZWxmLm1ha2VweWZpbGUo
X19pbml0X189IiMiKQogICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZyA9IHNlbGYucGFyc2Vj
b25maWd1cmUocGF0aCwgKmNvbmZpZ2FyZ3MpCi0gICAgICAgIG5vZGUgPSBzZWxmLmdldG5vZGUo
Y29uZmlnLCBwYXRoKQotCi0gICAgICAgIHJldHVybiBub2RlCisgICAgICAgIHJldHVybiBzZWxm
LmdldG5vZGUoY29uZmlnLCBwYXRoKQogCiAgICAgZGVmIGNvbGxlY3RfYnlfbmFtZShzZWxmLCBt
b2Rjb2wsIG5hbWUpOgogICAgICAgICAiIiJSZXR1cm4gdGhlIGNvbGxlY3Rpb24gbm9kZSBmb3Ig
bmFtZSBmcm9tIHRoZSBtb2R1bGUgY29sbGVjdGlvbi4KQEAgLTk2Niw3ICsxMDI5LDE0IEBAIGNs
YXNzIFRlc3RkaXIob2JqZWN0KToKICAgICAgICAgICAgIGlmIGNvbGl0ZW0ubmFtZSA9PSBuYW1l
OgogICAgICAgICAgICAgICAgIHJldHVybiBjb2xpdGVtCiAKLSAgICBkZWYgcG9wZW4oc2VsZiwg
Y21kYXJncywgc3Rkb3V0LCBzdGRlcnIsICoqa3cpOgorICAgIGRlZiBwb3BlbigKKyAgICAgICAg
c2VsZiwKKyAgICAgICAgY21kYXJncywKKyAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwK
KyAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgc3RkaW49Q0xPU0VfU1RE
SU4sCisgICAgICAgICoqa3cKKyAgICApOgogICAgICAgICAiIiJJbnZva2Ugc3VicHJvY2Vzcy5Q
b3Blbi4KIAogICAgICAgICBUaGlzIGNhbGxzIHN1YnByb2Nlc3MuUG9wZW4gbWFraW5nIHN1cmUg
dGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkKQEAgLTk3Nyw0MSArMTA0NywxMDIgQEAgY2xh
c3MgVGVzdGRpcihvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgZW52ID0gb3MuZW52aXJv
bi5jb3B5KCkKICAgICAgICAgZW52WyJQWVRIT05QQVRIIl0gPSBvcy5wYXRoc2VwLmpvaW4oCi0g
ICAgICAgICAgICBmaWx0ZXIoTm9uZSwgW3N0cihvcy5nZXRjd2QoKSksIGVudi5nZXQoIlBZVEhP
TlBBVEgiLCAiIildKQorICAgICAgICAgICAgZmlsdGVyKE5vbmUsIFtvcy5nZXRjd2QoKSwgZW52
LmdldCgiUFlUSE9OUEFUSCIsICIiKV0pCiAgICAgICAgICkKKyAgICAgICAgZW52LnVwZGF0ZShz
ZWxmLl9lbnZfcnVuX3VwZGF0ZSkKICAgICAgICAga3dbImVudiJdID0gZW52CiAKLSAgICAgICAg
cG9wZW4gPSBzdWJwcm9jZXNzLlBvcGVuKAotICAgICAgICAgICAgY21kYXJncywgc3RkaW49c3Vi
cHJvY2Vzcy5QSVBFLCBzdGRvdXQ9c3Rkb3V0LCBzdGRlcnI9c3RkZXJyLCAqKmt3Ci0gICAgICAg
ICkKLSAgICAgICAgcG9wZW4uc3RkaW4uY2xvc2UoKQorICAgICAgICBpZiBzdGRpbiBpcyBUZXN0
ZGlyLkNMT1NFX1NURElOOgorICAgICAgICAgICAga3dbInN0ZGluIl0gPSBzdWJwcm9jZXNzLlBJ
UEUKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHN0ZGluLCBieXRlcyk6CisgICAgICAgICAgICBr
d1sic3RkaW4iXSA9IHN1YnByb2Nlc3MuUElQRQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
a3dbInN0ZGluIl0gPSBzdGRpbgorCisgICAgICAgIHBvcGVuID0gc3VicHJvY2Vzcy5Qb3Blbihj
bWRhcmdzLCBzdGRvdXQ9c3Rkb3V0LCBzdGRlcnI9c3RkZXJyLCAqKmt3KQorICAgICAgICBpZiBz
dGRpbiBpcyBUZXN0ZGlyLkNMT1NFX1NURElOOgorICAgICAgICAgICAgcG9wZW4uc3RkaW4uY2xv
c2UoKQorICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoc3RkaW4sIGJ5dGVzKToKKyAgICAgICAgICAg
IHBvcGVuLnN0ZGluLndyaXRlKHN0ZGluKQogCiAgICAgICAgIHJldHVybiBwb3BlbgogCi0gICAg
ZGVmIHJ1bihzZWxmLCAqY21kYXJncyk6CisgICAgZGVmIHJ1bihzZWxmLCAqY21kYXJncywgKipr
d2FyZ3MpOgogICAgICAgICAiIiJSdW4gYSBjb21tYW5kIHdpdGggYXJndW1lbnRzLgogCiAgICAg
ICAgIFJ1biBhIHByb2Nlc3MgdXNpbmcgc3VicHJvY2Vzcy5Qb3BlbiBzYXZpbmcgdGhlIHN0ZG91
dCBhbmQgc3RkZXJyLgogCisgICAgICAgIDpwYXJhbSBhcmdzOiB0aGUgc2VxdWVuY2Ugb2YgYXJn
dW1lbnRzIHRvIHBhc3MgdG8gYHN1YnByb2Nlc3MuUG9wZW4oKWAKKyAgICAgICAgOnBhcmFtIHRp
bWVvdXQ6IHRoZSBwZXJpb2QgaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0byB0aW1lb3V0IGFuZCBy
YWlzZQorICAgICAgICAgICAgOnB5OmNsYXNzOmBUZXN0ZGlyLlRpbWVvdXRFeHBpcmVkYAorICAg
ICAgICA6cGFyYW0gc3RkaW46IG9wdGlvbmFsIHN0YW5kYXJkIGlucHV0LiAgQnl0ZXMgYXJlIGJl
aW5nIHNlbmQsIGNsb3NpbmcKKyAgICAgICAgICAgIHRoZSBwaXBlLCBvdGhlcndpc2UgaXQgaXMg
cGFzc2VkIHRocm91Z2ggdG8gYGBwb3BlbmBgLgorICAgICAgICAgICAgRGVmYXVsdHMgdG8gYGBD
TE9TRV9TVERJTmBgLCB3aGljaCB0cmFuc2xhdGVzIHRvIHVzaW5nIGEgcGlwZQorICAgICAgICAg
ICAgKGBgc3VicHJvY2Vzcy5QSVBFYGApIHRoYXQgZ2V0cyBjbG9zZWQuCisKICAgICAgICAgUmV0
dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4KIAogICAgICAgICAiIiIKLSAgICAgICAgcmV0
dXJuIHNlbGYuX3J1bigqY21kYXJncykKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVl
CisKKyAgICAgICAgdGltZW91dCA9IGt3YXJncy5wb3AoInRpbWVvdXQiLCBOb25lKQorICAgICAg
ICBzdGRpbiA9IGt3YXJncy5wb3AoInN0ZGluIiwgVGVzdGRpci5DTE9TRV9TVERJTikKKyAgICAg
ICAgcmFpc2Vfb25fa3dhcmdzKGt3YXJncykKIAotICAgIGRlZiBfcnVuKHNlbGYsICpjbWRhcmdz
KToKLSAgICAgICAgY21kYXJncyA9IFtzdHIoeCkgZm9yIHggaW4gY21kYXJnc10KKyAgICAgICAg
Y21kYXJncyA9IFsKKyAgICAgICAgICAgIHN0cihhcmcpIGlmIGlzaW5zdGFuY2UoYXJnLCBweS5w
YXRoLmxvY2FsKSBlbHNlIGFyZyBmb3IgYXJnIGluIGNtZGFyZ3MKKyAgICAgICAgXQogICAgICAg
ICBwMSA9IHNlbGYudG1wZGlyLmpvaW4oInN0ZG91dCIpCiAgICAgICAgIHAyID0gc2VsZi50bXBk
aXIuam9pbigic3RkZXJyIikKLSAgICAgICAgcHJpbnQoInJ1bm5pbmc6IiwgIiAiLmpvaW4oY21k
YXJncykpCi0gICAgICAgIHByaW50KCIgICAgIGluOiIsIHN0cihweS5wYXRoLmxvY2FsKCkpKQor
ICAgICAgICBwcmludCgicnVubmluZzoiLCAqY21kYXJncykKKyAgICAgICAgcHJpbnQoIiAgICAg
aW46IiwgcHkucGF0aC5sb2NhbCgpKQogICAgICAgICBmMSA9IGNvZGVjcy5vcGVuKHN0cihwMSks
ICJ3IiwgZW5jb2Rpbmc9InV0ZjgiKQogICAgICAgICBmMiA9IGNvZGVjcy5vcGVuKHN0cihwMiks
ICJ3IiwgZW5jb2Rpbmc9InV0ZjgiKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBub3cgPSB0
aW1lLnRpbWUoKQogICAgICAgICAgICAgcG9wZW4gPSBzZWxmLnBvcGVuKAotICAgICAgICAgICAg
ICAgIGNtZGFyZ3MsIHN0ZG91dD1mMSwgc3RkZXJyPWYyLCBjbG9zZV9mZHM9KHN5cy5wbGF0Zm9y
bSAhPSAid2luMzIiKQorICAgICAgICAgICAgICAgIGNtZGFyZ3MsCisgICAgICAgICAgICAgICAg
c3RkaW49c3RkaW4sCisgICAgICAgICAgICAgICAgc3Rkb3V0PWYxLAorICAgICAgICAgICAgICAg
IHN0ZGVycj1mMiwKKyAgICAgICAgICAgICAgICBjbG9zZV9mZHM9KHN5cy5wbGF0Zm9ybSAhPSAi
d2luMzIiKSwKICAgICAgICAgICAgICkKLSAgICAgICAgICAgIHJldCA9IHBvcGVuLndhaXQoKQor
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzdGRpbiwgYnl0ZXMpOgorICAgICAgICAgICAgICAg
IHBvcGVuLnN0ZGluLmNsb3NlKCkKKworICAgICAgICAgICAgZGVmIGhhbmRsZV90aW1lb3V0KCk6
CisgICAgICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisKKyAgICAgICAgICAg
ICAgICB0aW1lb3V0X21lc3NhZ2UgPSAoCisgICAgICAgICAgICAgICAgICAgICJ7c2Vjb25kc30g
c2Vjb25kIHRpbWVvdXQgZXhwaXJlZCBydW5uaW5nOiIKKyAgICAgICAgICAgICAgICAgICAgIiB7
Y29tbWFuZH0iLmZvcm1hdChzZWNvbmRzPXRpbWVvdXQsIGNvbW1hbmQ9Y21kYXJncykKKyAgICAg
ICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgICBwb3Blbi5raWxsKCkKKyAgICAgICAgICAg
ICAgICBwb3Blbi53YWl0KCkKKyAgICAgICAgICAgICAgICByYWlzZSBzZWxmLlRpbWVvdXRFeHBp
cmVkKHRpbWVvdXRfbWVzc2FnZSkKKworICAgICAgICAgICAgaWYgdGltZW91dCBpcyBOb25lOgor
ICAgICAgICAgICAgICAgIHJldCA9IHBvcGVuLndhaXQoKQorICAgICAgICAgICAgZWxpZiBub3Qg
c2l4LlBZMjoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHJldCA9
IHBvcGVuLndhaXQodGltZW91dCkKKyAgICAgICAgICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5U
aW1lb3V0RXhwaXJlZDoKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlX3RpbWVvdXQoKQorICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBlbmQgPSB0aW1lLnRpbWUoKSArIHRpbWVv
dXQKKworICAgICAgICAgICAgICAgIHJlc29sdXRpb24gPSBtaW4oMC4xLCB0aW1lb3V0IC8gMTAp
CisKKyAgICAgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgICAgICByZXQg
PSBwb3Blbi5wb2xsKCkKKyAgICAgICAgICAgICAgICAgICAgaWYgcmV0IGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBpZiB0
aW1lLnRpbWUoKSA+IGVuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV90aW1lb3V0
KCkKKworICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKHJlc29sdXRpb24pCiAgICAgICAg
IGZpbmFsbHk6CiAgICAgICAgICAgICBmMS5jbG9zZSgpCiAgICAgICAgICAgICBmMi5jbG9zZSgp
CkBAIC0xMDM1LDkgKzExNjYsNyBAQCBjbGFzcyBUZXN0ZGlyKG9iamVjdCk6CiAgICAgICAgICAg
ICBwcmludCgiY291bGRuJ3QgcHJpbnQgdG8gJXMgYmVjYXVzZSBvZiBlbmNvZGluZyIgJSAoZnAs
KSkKIAogICAgIGRlZiBfZ2V0cHl0ZXN0YXJncyhzZWxmKToKLSAgICAgICAgIyB3ZSBjYW5ub3Qg
dXNlIGAoc3lzLmV4ZWN1dGFibGUsIHNjcmlwdClgIGJlY2F1c2Ugb24gV2luZG93cyB0aGUKLSAg
ICAgICAgIyBzY3JpcHQgaXMgZS5nLiBgcHl0ZXN0LmV4ZWAKLSAgICAgICAgcmV0dXJuIChzeXMu
ZXhlY3V0YWJsZSwgUFlURVNUX0ZVTExQQVRIKSAgIyBub3FhCisgICAgICAgIHJldHVybiBzeXMu
ZXhlY3V0YWJsZSwgIi1tcHl0ZXN0IgogCiAgICAgZGVmIHJ1bnB5dGhvbihzZWxmLCBzY3JpcHQp
OgogICAgICAgICAiIiJSdW4gYSBweXRob24gc2NyaXB0IHVzaW5nIHN5cy5leGVjdXRhYmxlIGFz
IGludGVycHJldGVyLgpAQCAtMTA1NCwxNSArMTE4MywyMiBAQCBjbGFzcyBUZXN0ZGlyKG9iamVj
dCk6CiAgICAgZGVmIHJ1bnB5dGVzdF9zdWJwcm9jZXNzKHNlbGYsICphcmdzLCAqKmt3YXJncyk6
CiAgICAgICAgICIiIlJ1biBweXRlc3QgYXMgYSBzdWJwcm9jZXNzIHdpdGggZ2l2ZW4gYXJndW1l
bnRzLgogCi0gICAgICAgIEFueSBwbHVnaW5zIGFkZGVkIHRvIHRoZSA6cHk6YXR0cjpgcGx1Z2lu
c2AgbGlzdCB3aWxsIGFkZGVkIHVzaW5nIHRoZQotICAgICAgICBgYC1wYGAgY29tbWFuZCBsaW5l
IG9wdGlvbi4gIEFkZGl0aW9uYWxseSBgYC0tYmFzZXRlbXBgYCBpcyB1c2VkIHB1dAorICAgICAg
ICBBbnkgcGx1Z2lucyBhZGRlZCB0byB0aGUgOnB5OmF0dHI6YHBsdWdpbnNgIGxpc3Qgd2lsbCBi
ZSBhZGRlZCB1c2luZyB0aGUKKyAgICAgICAgYGAtcGBgIGNvbW1hbmQgbGluZSBvcHRpb24uICBB
ZGRpdGlvbmFsbHkgYGAtLWJhc2V0ZW1wYGAgaXMgdXNlZCB0byBwdXQKICAgICAgICAgYW55IHRl
bXBvcmFyeSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgaW4gYSBudW1iZXJlZCBkaXJlY3RvcnkgcHJl
Zml4ZWQKLSAgICAgICAgd2l0aCAicnVucHl0ZXN0LSIgc28gdGhleSBkbyBub3QgY29uZmxpY3Qg
d2l0aCB0aGUgbm9ybWFsIG51bWJlcmVkCi0gICAgICAgIHB5dGVzdCBsb2NhdGlvbiBmb3IgdGVt
cG9yYXJ5IGZpbGVzIGFuZCBkaXJlY3Rvcmllcy4KKyAgICAgICAgd2l0aCAicnVucHl0ZXN0LSIg
dG8gbm90IGNvbmZsaWN0IHdpdGggdGhlIG5vcm1hbCBudW1iZXJlZCBweXRlc3QKKyAgICAgICAg
bG9jYXRpb24gZm9yIHRlbXBvcmFyeSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMuCiAKLSAgICAgICAg
UmV0dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4KKyAgICAgICAgOnBhcmFtIGFyZ3M6IHRo
ZSBzZXF1ZW5jZSBvZiBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgcHl0ZXN0IHN1YnByb2Nlc3MK
KyAgICAgICAgOnBhcmFtIHRpbWVvdXQ6IHRoZSBwZXJpb2QgaW4gc2Vjb25kcyBhZnRlciB3aGlj
aCB0byB0aW1lb3V0IGFuZCByYWlzZQorICAgICAgICAgICAgOnB5OmNsYXNzOmBUZXN0ZGlyLlRp
bWVvdXRFeHBpcmVkYAogCisgICAgICAgIFJldHVybnMgYSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAu
CiAgICAgICAgICIiIgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAg
dGltZW91dCA9IGt3YXJncy5wb3AoInRpbWVvdXQiLCBOb25lKQorICAgICAgICByYWlzZV9vbl9r
d2FyZ3Moa3dhcmdzKQorCiAgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRf
ZGlyKAogICAgICAgICAgICAgcHJlZml4PSJydW5weXRlc3QtIiwga2VlcD1Ob25lLCByb290ZGly
PXNlbGYudG1wZGlyCiAgICAgICAgICkKQEAgLTEwNzEsNyArMTIwNyw3IEBAIGNsYXNzIFRlc3Rk
aXIob2JqZWN0KToKICAgICAgICAgaWYgcGx1Z2luczoKICAgICAgICAgICAgIGFyZ3MgPSAoIi1w
IiwgcGx1Z2luc1swXSkgKyBhcmdzCiAgICAgICAgIGFyZ3MgPSBzZWxmLl9nZXRweXRlc3Rhcmdz
KCkgKyBhcmdzCi0gICAgICAgIHJldHVybiBzZWxmLnJ1bigqYXJncykKKyAgICAgICAgcmV0dXJu
IHNlbGYucnVuKCphcmdzLCB0aW1lb3V0PXRpbWVvdXQpCiAKICAgICBkZWYgc3Bhd25fcHl0ZXN0
KHNlbGYsIHN0cmluZywgZXhwZWN0X3RpbWVvdXQ9MTAuMCk6CiAgICAgICAgICIiIlJ1biBweXRl
c3QgdXNpbmcgcGV4cGVjdC4KQEAgLTEwOTksNyArMTIzNSwxMiBAQCBjbGFzcyBUZXN0ZGlyKG9i
amVjdCk6CiAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJmcmVlYnNkIik6CiAg
ICAgICAgICAgICBweXRlc3QueGZhaWwoInBleHBlY3QgZG9lcyBub3Qgd29yayByZWxpYWJseSBv
biBmcmVlYnNkIikKICAgICAgICAgbG9nZmlsZSA9IHNlbGYudG1wZGlyLmpvaW4oInNwYXduLm91
dCIpLm9wZW4oIndiIikKLSAgICAgICAgY2hpbGQgPSBwZXhwZWN0LnNwYXduKGNtZCwgbG9nZmls
ZT1sb2dmaWxlKQorCisgICAgICAgICMgRG8gbm90IGxvYWQgdXNlciBjb25maWcuCisgICAgICAg
IGVudiA9IG9zLmVudmlyb24uY29weSgpCisgICAgICAgIGVudi51cGRhdGUoc2VsZi5fZW52X3J1
bl91cGRhdGUpCisKKyAgICAgICAgY2hpbGQgPSBwZXhwZWN0LnNwYXduKGNtZCwgbG9nZmlsZT1s
b2dmaWxlLCBlbnY9ZW52KQogICAgICAgICBzZWxmLnJlcXVlc3QuYWRkZmluYWxpemVyKGxvZ2Zp
bGUuY2xvc2UpCiAgICAgICAgIGNoaWxkLnRpbWVvdXQgPSBleHBlY3RfdGltZW91dAogICAgICAg
ICByZXR1cm4gY2hpbGQKQEAgLTExMDksMTMgKzEyNTAsMTAgQEAgZGVmIGdldGRlY29kZWQob3V0
KToKICAgICB0cnk6CiAgICAgICAgIHJldHVybiBvdXQuZGVjb2RlKCJ1dGYtOCIpCiAgICAgZXhj
ZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKLSAgICAgICAgcmV0dXJuICJJTlRFUk5BTCBub3QtdXRm
OC1kZWNvZGVhYmxlLCB0cnVuY2F0ZWQgc3RyaW5nOlxuJXMiICUgKAotICAgICAgICAgICAgcHku
aW8uc2FmZXJlcHIob3V0KSwKLSAgICAgICAgKQorICAgICAgICByZXR1cm4gIklOVEVSTkFMIG5v
dC11dGY4LWRlY29kZWFibGUsIHRydW5jYXRlZCBzdHJpbmc6XG4lcyIgJSAoc2FmZXJlcHIob3V0
KSwpCiAKIAogY2xhc3MgTGluZUNvbXAob2JqZWN0KToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKICAgICAgICAgc2VsZi5zdHJpbmdpbyA9IHB5LmlvLlRleHRJTygpCiAKQEAgLTEyMDIsMTEg
KzEzNDAsMTEgQEAgY2xhc3MgTGluZU1hdGNoZXIob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAg
ICAgIGZvciBpLCBsaW5lIGluIGVudW1lcmF0ZShzZWxmLmxpbmVzKToKICAgICAgICAgICAgIGlm
IGZubGluZSA9PSBsaW5lIG9yIGZubWF0Y2gobGluZSwgZm5saW5lKToKLSAgICAgICAgICAgICAg
ICByZXR1cm4gc2VsZi5saW5lc1tpICsgMTpdCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYu
bGluZXNbaSArIDEgOl0KICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibGluZSAlciBub3QgZm91
bmQgaW4gb3V0cHV0IiAlIGZubGluZSkKIAogICAgIGRlZiBfbG9nKHNlbGYsICphcmdzKToKLSAg
ICAgICAgc2VsZi5fbG9nX291dHB1dC5hcHBlbmQoIiAiLmpvaW4oKHN0cih4KSBmb3IgeCBpbiBh
cmdzKSkpCisgICAgICAgIHNlbGYuX2xvZ19vdXRwdXQuYXBwZW5kKCIgIi5qb2luKHN0cih4KSBm
b3IgeCBpbiBhcmdzKSkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBfbG9nX3RleHQoc2VsZik6
CkBAIC0xMjIwLDYgKzEzNTgsNyBAQCBjbGFzcyBMaW5lTWF0Y2hlcihvYmplY3QpOgogICAgICAg
ICBtYXRjaGVzIGFuZCBub24tbWF0Y2hlcyBhcmUgYWxzbyBwcmludGVkIG9uIHN0ZG91dC4KIAog
ICAgICAgICAiIiIKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCiAgICAgICAgIHNl
bGYuX21hdGNoX2xpbmVzKGxpbmVzMiwgZm5tYXRjaCwgImZubWF0Y2giKQogCiAgICAgZGVmIHJl
X21hdGNoX2xpbmVzKHNlbGYsIGxpbmVzMik6CkBAIC0xMjMxLDYgKzEzNzAsNyBAQCBjbGFzcyBM
aW5lTWF0Y2hlcihvYmplY3QpOgogICAgICAgICBUaGUgbWF0Y2hlcyBhbmQgbm9uLW1hdGNoZXMg
YXJlIGFsc28gcHJpbnRlZCBvbiBzdGRvdXQuCiAKICAgICAgICAgIiIiCisgICAgICAgIF9fdHJh
Y2ViYWNraGlkZV9fID0gVHJ1ZQogICAgICAgICBzZWxmLl9tYXRjaF9saW5lcyhsaW5lczIsIGxh
bWJkYSBuYW1lLCBwYXQ6IHJlLm1hdGNoKHBhdCwgbmFtZSksICJyZS5tYXRjaCIpCiAKICAgICBk
ZWYgX21hdGNoX2xpbmVzKHNlbGYsIGxpbmVzMiwgbWF0Y2hfZnVuYywgbWF0Y2hfbmlja25hbWUp
OgpAQCAtMTI0NSw2ICsxMzg1LDcgQEAgY2xhc3MgTGluZU1hdGNoZXIob2JqZWN0KToKICAgICAg
ICAgICAgIHdpbGwgYmUgbG9nZ2VkIHRvIHN0ZG91dCB3aGVuIGEgbWF0Y2ggb2NjdXJzCiAKICAg
ICAgICAgIiIiCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmVzMiwgU2VxdWVuY2UpCiAg
ICAgICAgIGxpbmVzMiA9IHNlbGYuX2dldGxpbmVzKGxpbmVzMikKICAgICAgICAgbGluZXMxID0g
c2VsZi5saW5lc1s6XQogICAgICAgICBuZXh0bGluZSA9IE5vbmUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L3B5dGhvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3B5
dGhvbi5weQppbmRleCA0ODUxNjE5OWZmZjc5NTcwYzYwNzEzMThmMDZlNzg4MGJmODZiNDY3Li41
ZjFlNjg4NWJlMzM3ZDdkOTU5NDJhODRlN2ViOTM3NTlmYTY4MmNlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvX3B5dGVzdC9weXRob24ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvcHl0aG9uLnB5CkBAIC0xLDgxICsxLDU1IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQog
IiIiIFB5dGhvbiB0ZXN0IGRpc2NvdmVyeSwgc2V0dXAgYW5kIHJ1biBvZiB0ZXN0IGZ1bmN0aW9u
cy4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBw
cmludF9mdW5jdGlvbgogCitpbXBvcnQgY29sbGVjdGlvbnMKIGltcG9ydCBmbm1hdGNoCiBpbXBv
cnQgaW5zcGVjdAotaW1wb3J0IHN5cwogaW1wb3J0IG9zCi1pbXBvcnQgY29sbGVjdGlvbnMKK2lt
cG9ydCBzeXMKIGltcG9ydCB3YXJuaW5ncworZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwK
IGZyb20gdGV4dHdyYXAgaW1wb3J0IGRlZGVudAotZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNvdW50
Ci0KIAogaW1wb3J0IHB5CiBpbXBvcnQgc2l4Ci1mcm9tIF9weXRlc3QubWFyayBpbXBvcnQgTWFy
a2VyRXJyb3IKLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGhvb2tpbXBsCiAKIGltcG9ydCBf
cHl0ZXN0Ci1pbXBvcnQgcGx1Z2d5Citmcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKIGZy
b20gX3B5dGVzdCBpbXBvcnQgZml4dHVyZXMKIGZyb20gX3B5dGVzdCBpbXBvcnQgbm9kZXMKLWZy
b20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAotZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQg
KAotICAgIGlzY2xhc3MsCi0gICAgaXNmdW5jdGlvbiwKLSAgICBpc19nZW5lcmF0b3IsCi0gICAg
YXNjaWlfZXNjYXBlZCwKLSAgICBSRUdFWF9UWVBFLAotICAgIFNUUklOR19UWVBFUywKLSAgICBO
b25lVHlwZSwKLSAgICBOT1RTRVQsCi0gICAgZ2V0X3JlYWxfZnVuYywKLSAgICBnZXRmc2xpbmVu
bywKLSAgICBzYWZlX2dldGF0dHIsCi0gICAgc2FmZV9zdHIsCi0gICAgZ2V0bG9jYXRpb24sCi0g
ICAgZW51bSwKLSAgICBnZXRfZGVmYXVsdF9hcmdfbmFtZXMsCi0pCitmcm9tIF9weXRlc3QuX2Nv
ZGUgaW1wb3J0IGZpbHRlcl90cmFjZWJhY2sKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGFz
Y2lpX2VzY2FwZWQKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGVudW0KK2Zyb20gX3B5dGVz
dC5jb21wYXQgaW1wb3J0IGdldF9kZWZhdWx0X2FyZ19uYW1lcworZnJvbSBfcHl0ZXN0LmNvbXBh
dCBpbXBvcnQgZ2V0X3JlYWxfZnVuYworZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgZ2V0ZnNs
aW5lbm8KK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGdldGltZnVuYworZnJvbSBfcHl0ZXN0
LmNvbXBhdCBpbXBvcnQgZ2V0bG9jYXRpb24KK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGlz
X2dlbmVyYXRvcgorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgaXNjbGFzcworZnJvbSBfcHl0
ZXN0LmNvbXBhdCBpbXBvcnQgaXNmdW5jdGlvbgorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQg
Tk9UU0VUCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBSRUdFWF9UWVBFCitmcm9tIF9weXRl
c3QuY29tcGF0IGltcG9ydCBzYWZlX2dldGF0dHIKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0
IHNhZmVfaXNjbGFzcworZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgc2FmZV9zdHIKK2Zyb20g
X3B5dGVzdC5jb21wYXQgaW1wb3J0IFNUUklOR19UWVBFUworZnJvbSBfcHl0ZXN0LmNvbmZpZyBp
bXBvcnQgaG9va2ltcGwKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBGU0hvb2tQcm94eQorZnJv
bSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1BUktfR0VOCitmcm9tIF9weXRlc3QubWFyay5zdHJ1Y3R1
cmVzIGltcG9ydCBnZXRfdW5wYWNrZWRfbWFya3MKK2Zyb20gX3B5dGVzdC5tYXJrLnN0cnVjdHVy
ZXMgaW1wb3J0IG5vcm1hbGl6ZV9tYXJrX2xpc3QKIGZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBv
cnQgZmFpbAotZnJvbSBfcHl0ZXN0Lm1hcmsuc3RydWN0dXJlcyBpbXBvcnQgdHJhbnNmZXJfbWFy
a2VycywgZ2V0X3VucGFja2VkX21hcmtzCi0KLQotIyByZWxhdGl2ZSBwYXRocyB0aGF0IHdlIHVz
ZSB0byBmaWx0ZXIgdHJhY2ViYWNrIGVudHJpZXMgZnJvbSBhcHBlYXJpbmcgdG8gdGhlIHVzZXI7
Ci0jIHNlZSBmaWx0ZXJfdHJhY2ViYWNrCi0jIG5vdGU6IGlmIHdlIG5lZWQgdG8gYWRkIG1vcmUg
cGF0aHMgdGhhbiB3aGF0IHdlIGhhdmUgbm93IHdlIHNob3VsZCBwcm9iYWJseSB1c2UgYSBsaXN0
Ci0jIGZvciBiZXR0ZXIgbWFpbnRlbmFuY2UKLV9wbHVnZ3lfZGlyID0gcHkucGF0aC5sb2NhbChw
bHVnZ3kuX19maWxlX18ucnN0cmlwKCJvYyIpKQotIyBwbHVnZ3kgaXMgZWl0aGVyIGEgcGFja2Fn
ZSBvciBhIHNpbmdsZSBtb2R1bGUgZGVwZW5kaW5nIG9uIHRoZSB2ZXJzaW9uCi1pZiBfcGx1Z2d5
X2Rpci5iYXNlbmFtZSA9PSAiX19pbml0X18ucHkiOgotICAgIF9wbHVnZ3lfZGlyID0gX3BsdWdn
eV9kaXIuZGlycGF0aCgpCi1fcHl0ZXN0X2RpciA9IHB5LnBhdGgubG9jYWwoX3B5dGVzdC5fX2Zp
bGVfXykuZGlycGF0aCgpCi1fcHlfZGlyID0gcHkucGF0aC5sb2NhbChweS5fX2ZpbGVfXykuZGly
cGF0aCgpCi0KLQotZGVmIGZpbHRlcl90cmFjZWJhY2soZW50cnkpOgotICAgICIiIlJldHVybiBU
cnVlIGlmIGEgVHJhY2ViYWNrRW50cnkgaW5zdGFuY2Ugc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSB0
cmFjZWJhY2tzOgotICAgICogZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvZGUgKG5vIGNvZGUgdG8g
c2hvdyB1cCBmb3IgaXQpOwotICAgICogaW50ZXJuYWwgdHJhY2ViYWNrIGZyb20gcHl0ZXN0IG9y
IGl0cyBpbnRlcm5hbCBsaWJyYXJpZXMsIHB5IGFuZCBwbHVnZ3kuCi0gICAgIiIiCi0gICAgIyBl
bnRyeS5wYXRoIG1pZ2h0IHNvbWV0aW1lcyByZXR1cm4gYSBzdHIgb2JqZWN0IHdoZW4gdGhlIGVu
dHJ5Ci0gICAgIyBwb2ludHMgdG8gZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvZGUKLSAgICAjIHNl
ZSBodHRwczovL2JpdGJ1Y2tldC5vcmcvcHl0ZXN0LWRldi9weS9pc3N1ZXMvNzEKLSAgICByYXdf
ZmlsZW5hbWUgPSBlbnRyeS5mcmFtZS5jb2RlLnJhdy5jb19maWxlbmFtZQotICAgIGlzX2dlbmVy
YXRlZCA9ICI8IiBpbiByYXdfZmlsZW5hbWUgYW5kICI+IiBpbiByYXdfZmlsZW5hbWUKLSAgICBp
ZiBpc19nZW5lcmF0ZWQ6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgICMgZW50cnkucGF0aCBt
aWdodCBwb2ludCB0byBhIG5vbi1leGlzdGluZyBmaWxlLCBpbiB3aGljaCBjYXNlIGl0IHdpbGwK
LSAgICAjIGFsc28gcmV0dXJuIGEgc3RyIG9iamVjdC4gc2VlICMxMTMzCi0gICAgcCA9IHB5LnBh
dGgubG9jYWwoZW50cnkucGF0aCkKLSAgICByZXR1cm4gbm90IHAucmVsdG8oX3BsdWdneV9kaXIp
IGFuZCBub3QgcC5yZWx0byhfcHl0ZXN0X2RpcikgYW5kIG5vdCBwLnJlbHRvKAotICAgICAgICBf
cHlfZGlyCi0gICAgKQorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBza2lwCitmcm9tIF9w
eXRlc3QucGF0aGxpYiBpbXBvcnQgcGFydHMKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGlt
cG9ydCBQeXRlc3RDb2xsZWN0aW9uV2FybmluZworZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMg
aW1wb3J0IFB5dGVzdFVuaGFuZGxlZENvcm91dGluZVdhcm5pbmcKIAogCiBkZWYgcHlvYmpfcHJv
cGVydHkobmFtZSk6Ci0KICAgICBkZWYgZ2V0KHNlbGYpOgogICAgICAgICBub2RlID0gc2VsZi5n
ZXRwYXJlbnQoZ2V0YXR0cihfX2ltcG9ydF9fKCJweXRlc3QiKSwgbmFtZSkpCiAgICAgICAgIGlm
IG5vZGUgaXMgbm90IE5vbmU6CkBAIC0xMDUsMTUgKzc5LDEwIEBAIGRlZiBweXRlc3RfYWRkb3B0
aW9uKHBhcnNlcik6CiAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgIGhlbHA9InNob3cg
Zml4dHVyZXMgcGVyIHRlc3QiLAogICAgICkKLSAgICBwYXJzZXIuYWRkaW5pKAotICAgICAgICAi
dXNlZml4dHVyZXMiLAotICAgICAgICB0eXBlPSJhcmdzIiwKLSAgICAgICAgZGVmYXVsdD1bXSwK
LSAgICAgICAgaGVscD0ibGlzdCBvZiBkZWZhdWx0IGZpeHR1cmVzIHRvIGJlIHVzZWQgd2l0aCB0
aGlzIHByb2plY3QiLAotICAgICkKICAgICBwYXJzZXIuYWRkaW5pKAogICAgICAgICAicHl0aG9u
X2ZpbGVzIiwKICAgICAgICAgdHlwZT0iYXJncyIsCisgICAgICAgICMgTk9URTogZGVmYXVsdCBp
cyBhbHNvIHVzZWQgaW4gQXNzZXJ0aW9uUmV3cml0aW5nSG9vay4KICAgICAgICAgZGVmYXVsdD1b
InRlc3RfKi5weSIsICIqX3Rlc3QucHkiXSwKICAgICAgICAgaGVscD0iZ2xvYi1zdHlsZSBmaWxl
IHBhdHRlcm5zIGZvciBQeXRob24gdGVzdCBtb2R1bGUgZGlzY292ZXJ5IiwKICAgICApCkBAIC0x
MjcsNyArOTYsMTQgQEAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKICAgICAgICAgInB5
dGhvbl9mdW5jdGlvbnMiLAogICAgICAgICB0eXBlPSJhcmdzIiwKICAgICAgICAgZGVmYXVsdD1b
InRlc3QiXSwKLSAgICAgICAgaGVscD0icHJlZml4ZXMgb3IgZ2xvYiBuYW1lcyBmb3IgUHl0aG9u
IHRlc3QgZnVuY3Rpb24gYW5kICIgIm1ldGhvZCBkaXNjb3ZlcnkiLAorICAgICAgICBoZWxwPSJw
cmVmaXhlcyBvciBnbG9iIG5hbWVzIGZvciBQeXRob24gdGVzdCBmdW5jdGlvbiBhbmQgbWV0aG9k
IGRpc2NvdmVyeSIsCisgICAgKQorICAgIHBhcnNlci5hZGRpbmkoCisgICAgICAgICJkaXNhYmxl
X3Rlc3RfaWRfZXNjYXBpbmdfYW5kX2ZvcmZlaXRfYWxsX3JpZ2h0c190b19jb21tdW5pdHlfc3Vw
cG9ydCIsCisgICAgICAgIHR5cGU9ImJvb2wiLAorICAgICAgICBkZWZhdWx0PUZhbHNlLAorICAg
ICAgICBoZWxwPSJkaXNhYmxlIHN0cmluZyBlc2NhcGUgbm9uLWFzY2lpIGNoYXJhY3RlcnMsIG1p
Z2h0IGNhdXNlIHVud2FudGVkICIKKyAgICAgICAgInNpZGUgZWZmZWN0cyh1c2UgYXQgeW91ciBv
d24gcmlzaykiLAogICAgICkKIAogICAgIGdyb3VwLmFkZG9wdGlvbigKQEAgLTE1MywxMCArMTI5
LDEwIEBAIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgogICAgICMgdGhvc2Ug
YWx0ZXJuYXRpdmUgc3BlbGxpbmdzIGFyZSBjb21tb24gLSByYWlzZSBhIHNwZWNpZmljIGVycm9y
IHRvIGFsZXJ0CiAgICAgIyB0aGUgdXNlcgogICAgIGFsdF9zcGVsbGluZ3MgPSBbInBhcmFtZXRl
cml6ZSIsICJwYXJhbWV0cmlzZSIsICJwYXJhbWV0ZXJpc2UiXQotICAgIGZvciBhdHRyIGluIGFs
dF9zcGVsbGluZ3M6Ci0gICAgICAgIGlmIGhhc2F0dHIobWV0YWZ1bmMuZnVuY3Rpb24sIGF0dHIp
OgotICAgICAgICAgICAgbXNnID0gInswfSBoYXMgJ3sxfScsIHNwZWxsaW5nIHNob3VsZCBiZSAn
cGFyYW1ldHJpemUnIgotICAgICAgICAgICAgcmFpc2UgTWFya2VyRXJyb3IobXNnLmZvcm1hdCht
ZXRhZnVuYy5mdW5jdGlvbi5fX25hbWVfXywgYXR0cikpCisgICAgZm9yIG1hcmtfbmFtZSBpbiBh
bHRfc3BlbGxpbmdzOgorICAgICAgICBpZiBtZXRhZnVuYy5kZWZpbml0aW9uLmdldF9jbG9zZXN0
X21hcmtlcihtYXJrX25hbWUpOgorICAgICAgICAgICAgbXNnID0gInswfSBoYXMgJ3sxfScgbWFy
aywgc3BlbGxpbmcgc2hvdWxkIGJlICdwYXJhbWV0cml6ZSciCisgICAgICAgICAgICBmYWlsKG1z
Zy5mb3JtYXQobWV0YWZ1bmMuZnVuY3Rpb24uX19uYW1lX18sIG1hcmtfbmFtZSksIHB5dHJhY2U9
RmFsc2UpCiAgICAgZm9yIG1hcmtlciBpbiBtZXRhZnVuYy5kZWZpbml0aW9uLml0ZXJfbWFya2Vy
cyhuYW1lPSJwYXJhbWV0cml6ZSIpOgogICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgqbWFy
a2VyLmFyZ3MsICoqbWFya2VyLmt3YXJncykKIApAQCAtMTcwLDI3ICsxNDYsMzIgQEAgZGVmIHB5
dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICAgICAgIm9yIGEgbGlzdCBvZiB0dXBsZXMgb2Yg
dmFsdWVzIGlmIGFyZ25hbWVzIHNwZWNpZmllcyBtdWx0aXBsZSBuYW1lcy4gIgogICAgICAgICAi
RXhhbXBsZTogQHBhcmFtZXRyaXplKCdhcmcxJywgWzEsMl0pIHdvdWxkIGxlYWQgdG8gdHdvIGNh
bGxzIG9mIHRoZSAiCiAgICAgICAgICJkZWNvcmF0ZWQgdGVzdCBmdW5jdGlvbiwgb25lIHdpdGgg
YXJnMT0xIGFuZCBhbm90aGVyIHdpdGggYXJnMT0yLiIKLSAgICAgICAgInNlZSBodHRwOi8vcHl0
ZXN0Lm9yZy9sYXRlc3QvcGFyYW1ldHJpemUuaHRtbCBmb3IgbW9yZSBpbmZvIGFuZCAiCi0gICAg
ICAgICJleGFtcGxlcy4iLAorICAgICAgICAic2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2Vu
L2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIGZvciBtb3JlIGluZm8gIgorICAgICAgICAiYW5kIGV4
YW1wbGVzLiIsCiAgICAgKQogICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKAogICAgICAgICAi
bWFya2VycyIsCiAgICAgICAgICJ1c2VmaXh0dXJlcyhmaXh0dXJlbmFtZTEsIGZpeHR1cmVuYW1l
MiwgLi4uKTogbWFyayB0ZXN0cyBhcyBuZWVkaW5nICIKLSAgICAgICAgImFsbCBvZiB0aGUgc3Bl
Y2lmaWVkIGZpeHR1cmVzLiBzZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L2ZpeHR1cmUuaHRt
bCN1c2VmaXh0dXJlcyAiLAorICAgICAgICAiYWxsIG9mIHRoZSBzcGVjaWZpZWQgZml4dHVyZXMu
IHNlZSAiCisgICAgICAgICJodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZml4dHVy
ZS5odG1sI3VzZWZpeHR1cmVzICIsCiAgICAgKQogCiAKIEBob29raW1wbCh0cnlsYXN0PVRydWUp
CiBkZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVuY2l0ZW0pOgogICAgIHRlc3RmdW5jdGlvbiA9
IHB5ZnVuY2l0ZW0ub2JqCi0gICAgaWYgcHlmdW5jaXRlbS5faXN5aWVsZGVkZnVuY3Rpb24oKToK
LSAgICAgICAgdGVzdGZ1bmN0aW9uKCpweWZ1bmNpdGVtLl9hcmdzKQotICAgIGVsc2U6Ci0gICAg
ICAgIGZ1bmNhcmdzID0gcHlmdW5jaXRlbS5mdW5jYXJncwotICAgICAgICB0ZXN0YXJncyA9IHt9
Ci0gICAgICAgIGZvciBhcmcgaW4gcHlmdW5jaXRlbS5fZml4dHVyZWluZm8uYXJnbmFtZXM6Ci0g
ICAgICAgICAgICB0ZXN0YXJnc1thcmddID0gZnVuY2FyZ3NbYXJnXQotICAgICAgICB0ZXN0ZnVu
Y3Rpb24oKip0ZXN0YXJncykKKyAgICBpc2Nvcm91dGluZWZ1bmN0aW9uID0gZ2V0YXR0cihpbnNw
ZWN0LCAiaXNjb3JvdXRpbmVmdW5jdGlvbiIsIE5vbmUpCisgICAgaWYgaXNjb3JvdXRpbmVmdW5j
dGlvbiBpcyBub3QgTm9uZSBhbmQgaXNjb3JvdXRpbmVmdW5jdGlvbih0ZXN0ZnVuY3Rpb24pOgor
ICAgICAgICBtc2cgPSAiQ29yb3V0aW5lIGZ1bmN0aW9ucyBhcmUgbm90IG5hdGl2ZWx5IHN1cHBv
cnRlZCBhbmQgaGF2ZSBiZWVuIHNraXBwZWQuXG4iCisgICAgICAgIG1zZyArPSAiWW91IG5lZWQg
dG8gaW5zdGFsbCBhIHN1aXRhYmxlIHBsdWdpbiBmb3IgeW91ciBhc3luYyBmcmFtZXdvcmssIGZv
ciBleGFtcGxlOlxuIgorICAgICAgICBtc2cgKz0gIiAgLSBweXRlc3QtYXN5bmNpb1xuIgorICAg
ICAgICBtc2cgKz0gIiAgLSBweXRlc3QtdHJpb1xuIgorICAgICAgICBtc2cgKz0gIiAgLSBweXRl
c3QtdG9ybmFzeW5jIgorICAgICAgICB3YXJuaW5ncy53YXJuKFB5dGVzdFVuaGFuZGxlZENvcm91
dGluZVdhcm5pbmcobXNnLmZvcm1hdChweWZ1bmNpdGVtLm5vZGVpZCkpKQorICAgICAgICBza2lw
KG1zZz0iY29yb3V0aW5lIGZ1bmN0aW9uIGFuZCBubyBhc3luYyBwbHVnaW4gaW5zdGFsbGVkIChz
ZWUgd2FybmluZ3MpIikKKyAgICBmdW5jYXJncyA9IHB5ZnVuY2l0ZW0uZnVuY2FyZ3MKKyAgICB0
ZXN0YXJncyA9IHthcmc6IGZ1bmNhcmdzW2FyZ10gZm9yIGFyZyBpbiBweWZ1bmNpdGVtLl9maXh0
dXJlaW5mby5hcmduYW1lc30KKyAgICB0ZXN0ZnVuY3Rpb24oKip0ZXN0YXJncykKICAgICByZXR1
cm4gVHJ1ZQogCiAKQEAgLTE5OCwxNiArMTc5LDIyIEBAIGRlZiBweXRlc3RfY29sbGVjdF9maWxl
KHBhdGgsIHBhcmVudCk6CiAgICAgZXh0ID0gcGF0aC5leHQKICAgICBpZiBleHQgPT0gIi5weSI6
CiAgICAgICAgIGlmIG5vdCBwYXJlbnQuc2Vzc2lvbi5pc2luaXRwYXRoKHBhdGgpOgotICAgICAg
ICAgICAgZm9yIHBhdCBpbiBwYXJlbnQuY29uZmlnLmdldGluaSgicHl0aG9uX2ZpbGVzIik6Ci0g
ICAgICAgICAgICAgICAgaWYgcGF0aC5mbm1hdGNoKHBhdCk6Ci0gICAgICAgICAgICAgICAgICAg
IGJyZWFrCi0gICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgbm90IHBhdGhfbWF0Y2hl
c19wYXR0ZXJucygKKyAgICAgICAgICAgICAgICBwYXRoLCBwYXJlbnQuY29uZmlnLmdldGluaSgi
cHl0aG9uX2ZpbGVzIikgKyBbIl9faW5pdF9fLnB5Il0KKyAgICAgICAgICAgICk6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuCiAgICAgICAgIGlob29rID0gcGFyZW50LnNlc3Npb24uZ2V0aG9va3By
b3h5KHBhdGgpCiAgICAgICAgIHJldHVybiBpaG9vay5weXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1
bGUocGF0aD1wYXRoLCBwYXJlbnQ9cGFyZW50KQogCiAKK2RlZiBwYXRoX21hdGNoZXNfcGF0dGVy
bnMocGF0aCwgcGF0dGVybnMpOgorICAgICIiIlJldHVybnMgVHJ1ZSBpZiB0aGUgZ2l2ZW4gcHku
cGF0aC5sb2NhbCBtYXRjaGVzIG9uZSBvZiB0aGUgcGF0dGVybnMgaW4gdGhlIGxpc3Qgb2YgZ2xv
YnMgZ2l2ZW4iIiIKKyAgICByZXR1cm4gYW55KHBhdGguZm5tYXRjaChwYXR0ZXJuKSBmb3IgcGF0
dGVybiBpbiBwYXR0ZXJucykKKworCiBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlKHBh
dGgsIHBhcmVudCk6CisgICAgaWYgcGF0aC5iYXNlbmFtZSA9PSAiX19pbml0X18ucHkiOgorICAg
ICAgICByZXR1cm4gUGFja2FnZShwYXRoLCBwYXJlbnQpCiAgICAgcmV0dXJuIE1vZHVsZShwYXRo
LCBwYXJlbnQpCiAKIApAQCAtMjE4LDkgKzIwNSw4IEBAIGRlZiBweXRlc3RfcHljb2xsZWN0X21h
a2VpdGVtKGNvbGxlY3RvciwgbmFtZSwgb2JqKToKICAgICBpZiByZXMgaXMgbm90IE5vbmU6CiAg
ICAgICAgIHJldHVybgogICAgICMgbm90aGluZyB3YXMgY29sbGVjdGVkIGVsc2V3aGVyZSwgbGV0
J3MgZG8gaXQgaGVyZQotICAgIGlmIGlzY2xhc3Mob2JqKToKKyAgICBpZiBzYWZlX2lzY2xhc3Mo
b2JqKToKICAgICAgICAgaWYgY29sbGVjdG9yLmlzdGVzdGNsYXNzKG9iaiwgbmFtZSk6Ci0gICAg
ICAgICAgICBDbGFzcyA9IGNvbGxlY3Rvci5fZ2V0Y3VzdG9tY2xhc3MoIkNsYXNzIikKICAgICAg
ICAgICAgIG91dGNvbWUuZm9yY2VfcmVzdWx0KENsYXNzKG5hbWUsIHBhcmVudD1jb2xsZWN0b3Ip
KQogICAgIGVsaWYgY29sbGVjdG9yLmlzdGVzdGZ1bmN0aW9uKG9iaiwgbmFtZSk6CiAgICAgICAg
ICMgbW9jayBzZWVtcyB0byBzdG9yZSB1bmJvdW5kIG1ldGhvZHMgKGlzc3VlNDczKSwgbm9ybWFs
aXplIGl0CkBAIC0yMjksMTMgKzIxNSwyMSBAQCBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRl
bShjb2xsZWN0b3IsIG5hbWUsIG9iaik6CiAgICAgICAgICMgb3IgYSBmdW50b29scy53cmFwcGVk
LgogICAgICAgICAjIFdlIG11c24ndCBpZiBpdCdzIGJlZW4gd3JhcHBlZCB3aXRoIG1vY2sucGF0
Y2ggKHB5dGhvbiAyIG9ubHkpCiAgICAgICAgIGlmIG5vdCAoaXNmdW5jdGlvbihvYmopIG9yIGlz
ZnVuY3Rpb24oZ2V0X3JlYWxfZnVuYyhvYmopKSk6Ci0gICAgICAgICAgICBjb2xsZWN0b3Iud2Fy
bigKLSAgICAgICAgICAgICAgICBjb2RlPSJDMiIsCi0gICAgICAgICAgICAgICAgbWVzc2FnZT0i
Y2Fubm90IGNvbGxlY3QgJXIgYmVjYXVzZSBpdCBpcyBub3QgYSBmdW5jdGlvbi4iICUgbmFtZSwK
KyAgICAgICAgICAgIGZpbGVuYW1lLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhvYmopCisgICAgICAg
ICAgICB3YXJuaW5ncy53YXJuX2V4cGxpY2l0KAorICAgICAgICAgICAgICAgIG1lc3NhZ2U9UHl0
ZXN0Q29sbGVjdGlvbldhcm5pbmcoCisgICAgICAgICAgICAgICAgICAgICJjYW5ub3QgY29sbGVj
dCAlciBiZWNhdXNlIGl0IGlzIG5vdCBhIGZ1bmN0aW9uLiIgJSBuYW1lCisgICAgICAgICAgICAg
ICAgKSwKKyAgICAgICAgICAgICAgICBjYXRlZ29yeT1Ob25lLAorICAgICAgICAgICAgICAgIGZp
bGVuYW1lPXN0cihmaWxlbmFtZSksCisgICAgICAgICAgICAgICAgbGluZW5vPWxpbmVubyArIDEs
CiAgICAgICAgICAgICApCiAgICAgICAgIGVsaWYgZ2V0YXR0cihvYmosICJfX3Rlc3RfXyIsIFRy
dWUpOgogICAgICAgICAgICAgaWYgaXNfZ2VuZXJhdG9yKG9iaik6Ci0gICAgICAgICAgICAgICAg
cmVzID0gR2VuZXJhdG9yKG5hbWUsIHBhcmVudD1jb2xsZWN0b3IpCisgICAgICAgICAgICAgICAg
cmVzID0gRnVuY3Rpb24obmFtZSwgcGFyZW50PWNvbGxlY3RvcikKKyAgICAgICAgICAgICAgICBy
ZWFzb24gPSBkZXByZWNhdGVkLllJRUxEX1RFU1RTLmZvcm1hdChuYW1lPW5hbWUpCisgICAgICAg
ICAgICAgICAgcmVzLmFkZF9tYXJrZXIoTUFSS19HRU4ueGZhaWwocnVuPUZhbHNlLCByZWFzb249
cmVhc29uKSkKKyAgICAgICAgICAgICAgICByZXMud2FybihQeXRlc3RDb2xsZWN0aW9uV2Fybmlu
ZyhyZWFzb24pKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByZXMgPSBsaXN0
KGNvbGxlY3Rvci5fZ2VuZnVuY3Rpb25zKG5hbWUsIG9iaikpCiAgICAgICAgICAgICBvdXRjb21l
LmZvcmNlX3Jlc3VsdChyZXMpCkBAIC0yNTcsMjYgKzI1MSwyNCBAQCBjbGFzcyBQeW9iak1peGlu
KFB5b2JqQ29udGV4dCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICprLCAqKmt3KToKICAgICAg
ICAgc3VwZXIoUHlvYmpNaXhpbiwgc2VsZikuX19pbml0X18oKmssICoqa3cpCiAKLSAgICBkZWYg
b2JqKCk6Ci0KLSAgICAgICAgZGVmIGZnZXQoc2VsZik6Ci0gICAgICAgICAgICBvYmogPSBnZXRh
dHRyKHNlbGYsICJfb2JqIiwgTm9uZSkKLSAgICAgICAgICAgIGlmIG9iaiBpcyBOb25lOgotICAg
ICAgICAgICAgICAgIHNlbGYuX29iaiA9IG9iaiA9IHNlbGYuX2dldG9iaigpCi0gICAgICAgICAg
ICAgICAgIyBYWFggZXZpbCBoYWNrCi0gICAgICAgICAgICAgICAgIyB1c2VkIHRvIGF2b2lkIElu
c3RhbmNlIGNvbGxlY3RvciBtYXJrZXIgZHVwbGljYXRpb24KLSAgICAgICAgICAgICAgICBpZiBz
ZWxmLl9BTExPV19NQVJLRVJTOgotICAgICAgICAgICAgICAgICAgICBzZWxmLm93bl9tYXJrZXJz
LmV4dGVuZChnZXRfdW5wYWNrZWRfbWFya3Moc2VsZi5vYmopKQotICAgICAgICAgICAgcmV0dXJu
IG9iagotCi0gICAgICAgIGRlZiBmc2V0KHNlbGYsIHZhbHVlKToKLSAgICAgICAgICAgIHNlbGYu
X29iaiA9IHZhbHVlCi0KLSAgICAgICAgcmV0dXJuIHByb3BlcnR5KGZnZXQsIGZzZXQsIE5vbmUs
ICJ1bmRlcmx5aW5nIHB5dGhvbiBvYmplY3QiKQotCi0gICAgb2JqID0gb2JqKCkKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgb2JqKHNlbGYpOgorICAgICAgICAiIiJVbmRlcmx5aW5nIFB5dGhvbiBv
YmplY3QuIiIiCisgICAgICAgIG9iaiA9IGdldGF0dHIoc2VsZiwgIl9vYmoiLCBOb25lKQorICAg
ICAgICBpZiBvYmogaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX29iaiA9IG9iaiA9IHNlbGYu
X2dldG9iaigpCisgICAgICAgICAgICAjIFhYWCBldmlsIGhhY2sKKyAgICAgICAgICAgICMgdXNl
ZCB0byBhdm9pZCBJbnN0YW5jZSBjb2xsZWN0b3IgbWFya2VyIGR1cGxpY2F0aW9uCisgICAgICAg
ICAgICBpZiBzZWxmLl9BTExPV19NQVJLRVJTOgorICAgICAgICAgICAgICAgIHNlbGYub3duX21h
cmtlcnMuZXh0ZW5kKGdldF91bnBhY2tlZF9tYXJrcyhzZWxmLm9iaikpCisgICAgICAgIHJldHVy
biBvYmoKKworICAgIEBvYmouc2V0dGVyCisgICAgZGVmIG9iaihzZWxmLCB2YWx1ZSk6CisgICAg
ICAgIHNlbGYuX29iaiA9IHZhbHVlCiAKICAgICBkZWYgX2dldG9iaihzZWxmKToKKyAgICAgICAg
IiIiR2V0cyB0aGUgdW5kZXJseWluZyBQeXRob24gb2JqZWN0LiBNYXkgYmUgb3ZlcndyaXR0ZW4g
Ynkgc3ViY2xhc3Nlcy4iIiIKICAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5wYXJlbnQub2Jq
LCBzZWxmLm5hbWUpCiAKICAgICBkZWYgZ2V0bW9kcGF0aChzZWxmLCBzdG9wYXRtb2R1bGU9VHJ1
ZSwgaW5jbHVkZW1vZHVsZT1GYWxzZSk6CkBAIC0yOTksOSArMjkxLDYgQEAgY2xhc3MgUHlvYmpN
aXhpbihQeW9iakNvbnRleHQpOgogICAgICAgICBzID0gIi4iLmpvaW4ocGFydHMpCiAgICAgICAg
IHJldHVybiBzLnJlcGxhY2UoIi5bIiwgIlsiKQogCi0gICAgZGVmIF9nZXRmc2xpbmVubyhzZWxm
KToKLSAgICAgICAgcmV0dXJuIGdldGZzbGluZW5vKHNlbGYub2JqKQotCiAgICAgZGVmIHJlcG9y
dGluZm8oc2VsZik6CiAgICAgICAgICMgWFhYIGNhY2hpbmc/CiAgICAgICAgIG9iaiA9IHNlbGYu
b2JqCkBAIC0zMjAsNyArMzA5LDYgQEAgY2xhc3MgUHlvYmpNaXhpbihQeW9iakNvbnRleHQpOgog
CiAKIGNsYXNzIFB5Q29sbGVjdG9yKFB5b2JqTWl4aW4sIG5vZGVzLkNvbGxlY3Rvcik6Ci0KICAg
ICBkZWYgZnVuY25hbWVmaWx0ZXIoc2VsZiwgbmFtZSk6CiAgICAgICAgIHJldHVybiBzZWxmLl9t
YXRjaGVzX3ByZWZpeF9vcl9nbG9iX29wdGlvbigicHl0aG9uX2Z1bmN0aW9ucyIsIG5hbWUpCiAK
QEAgLTM0MSwxMSArMzI5LDYgQEAgY2xhc3MgUHlDb2xsZWN0b3IoUHlvYmpNaXhpbiwgbm9kZXMu
Q29sbGVjdG9yKToKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBzdGF0aWNtZXRob2Qp
OgogICAgICAgICAgICAgICAgICMgc3RhdGljIG1ldGhvZHMgbmVlZCB0byBiZSB1bndyYXBwZWQK
ICAgICAgICAgICAgICAgICBvYmogPSBzYWZlX2dldGF0dHIob2JqLCAiX19mdW5jX18iLCBGYWxz
ZSkKLSAgICAgICAgICAgICAgICBpZiBvYmogaXMgRmFsc2U6Ci0gICAgICAgICAgICAgICAgICAg
ICMgUHl0aG9uIDIuNiB3cmFwcyBpbiBhIGRpZmZlcmVudCB3YXkgdGhhdCB3ZSB3b24ndCB0cnkg
dG8gaGFuZGxlCi0gICAgICAgICAgICAgICAgICAgIG1zZyA9ICJjYW5ub3QgY29sbGVjdCBzdGF0
aWMgbWV0aG9kICVyIGJlY2F1c2UgaXQgaXMgbm90IGEgZnVuY3Rpb24iCi0gICAgICAgICAgICAg
ICAgICAgIHNlbGYud2Fybihjb2RlPSJDMiIsIG1lc3NhZ2U9bXNnICUgbmFtZSkKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgICAgICByZXR1cm4gKAogICAgICAgICAg
ICAgICAgIHNhZmVfZ2V0YXR0cihvYmosICJfX2NhbGxfXyIsIEZhbHNlKQogICAgICAgICAgICAg
ICAgIGFuZCBmaXh0dXJlcy5nZXRmaXh0dXJlbWFya2VyKG9iaikgaXMgTm9uZQpAQCAtMzk4LDEw
ICszODEsNiBAQCBjbGFzcyBQeUNvbGxlY3RvcihQeW9iak1peGluLCBub2Rlcy5Db2xsZWN0b3Ip
OgogICAgICAgICB2YWx1ZXMuc29ydChrZXk9bGFtYmRhIGl0ZW06IGl0ZW0ucmVwb3J0aW5mbygp
WzoyXSkKICAgICAgICAgcmV0dXJuIHZhbHVlcwogCi0gICAgZGVmIG1ha2VpdGVtKHNlbGYsIG5h
bWUsIG9iaik6Ci0gICAgICAgIHdhcm5pbmdzLndhcm4oZGVwcmVjYXRlZC5DT0xMRUNUT1JfTUFL
RUlURU0sIHN0YWNrbGV2ZWw9MikKLSAgICAgICAgc2VsZi5fbWFrZWl0ZW0obmFtZSwgb2JqKQot
CiAgICAgZGVmIF9tYWtlaXRlbShzZWxmLCBuYW1lLCBvYmopOgogICAgICAgICAjIGFzc2VydCBz
ZWxmLmlob29rLmZzcGF0aCA9PSBzZWxmLmZzcGF0aCwgc2VsZgogICAgICAgICByZXR1cm4gc2Vs
Zi5paG9vay5weXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKGNvbGxlY3Rvcj1zZWxmLCBuYW1lPW5h
bWUsIG9iaj1vYmopCkBAIC00MTAsNyArMzg5LDYgQEAgY2xhc3MgUHlDb2xsZWN0b3IoUHlvYmpN
aXhpbiwgbm9kZXMuQ29sbGVjdG9yKToKICAgICAgICAgbW9kdWxlID0gc2VsZi5nZXRwYXJlbnQo
TW9kdWxlKS5vYmoKICAgICAgICAgY2xzY29sID0gc2VsZi5nZXRwYXJlbnQoQ2xhc3MpCiAgICAg
ICAgIGNscyA9IGNsc2NvbCBhbmQgY2xzY29sLm9iaiBvciBOb25lCi0gICAgICAgIHRyYW5zZmVy
X21hcmtlcnMoZnVuY29iaiwgY2xzLCBtb2R1bGUpCiAgICAgICAgIGZtID0gc2VsZi5zZXNzaW9u
Ll9maXh0dXJlbWFuYWdlcgogCiAgICAgICAgIGRlZmluaXRpb24gPSBGdW5jdGlvbkRlZmluaXRp
b24obmFtZT1uYW1lLCBwYXJlbnQ9c2VsZiwgY2FsbG9iaj1mdW5jb2JqKQpAQCAtNDMxLDEzICs0
MDksMTcgQEAgY2xhc3MgUHlDb2xsZWN0b3IoUHlvYmpNaXhpbiwgbm9kZXMuQ29sbGVjdG9yKToK
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuaWhvb2sucHl0ZXN0X2dlbmVyYXRlX3Rl
c3RzKG1ldGFmdW5jPW1ldGFmdW5jKQogCi0gICAgICAgIEZ1bmN0aW9uID0gc2VsZi5fZ2V0Y3Vz
dG9tY2xhc3MoIkZ1bmN0aW9uIikKICAgICAgICAgaWYgbm90IG1ldGFmdW5jLl9jYWxsczoKICAg
ICAgICAgICAgIHlpZWxkIEZ1bmN0aW9uKG5hbWUsIHBhcmVudD1zZWxmLCBmaXh0dXJlaW5mbz1m
aXh0dXJlaW5mbykKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMgYWRkIGZ1bmNhcmdzKCkg
YXMgZml4dHVyZWRlZnMgdG8gZml4dHVyZWluZm8uYXJnMmZpeHR1cmVkZWZzCiAgICAgICAgICAg
ICBmaXh0dXJlcy5hZGRfZnVuY2FyZ19wc2V1ZG9fZml4dHVyZV9kZWYoc2VsZiwgbWV0YWZ1bmMs
IGZtKQogCisgICAgICAgICAgICAjIGFkZF9mdW5jYXJnX3BzZXVkb19maXh0dXJlX2RlZiBtYXkg
aGF2ZSBzaGFkb3dlZCBzb21lIGZpeHR1cmVzCisgICAgICAgICAgICAjIHdpdGggZGlyZWN0IHBh
cmFtZXRyaXphdGlvbiwgc28gbWFrZSBzdXJlIHdlIHVwZGF0ZSB3aGF0IHRoZQorICAgICAgICAg
ICAgIyBmdW5jdGlvbiByZWFsbHkgbmVlZHMuCisgICAgICAgICAgICBmaXh0dXJlaW5mby5wcnVu
ZV9kZXBlbmRlbmN5X3RyZWUoKQorCiAgICAgICAgICAgICBmb3IgY2FsbHNwZWMgaW4gbWV0YWZ1
bmMuX2NhbGxzOgogICAgICAgICAgICAgICAgIHN1Ym5hbWUgPSAiJXNbJXNdIiAlIChuYW1lLCBj
YWxsc3BlYy5pZCkKICAgICAgICAgICAgICAgICB5aWVsZCBGdW5jdGlvbigKQEAgLTQ1OCw5ICs0
NDAsNjYgQEAgY2xhc3MgTW9kdWxlKG5vZGVzLkZpbGUsIFB5Q29sbGVjdG9yKToKICAgICAgICAg
cmV0dXJuIHNlbGYuX2ltcG9ydHRlc3Rtb2R1bGUoKQogCiAgICAgZGVmIGNvbGxlY3Qoc2VsZik6
CisgICAgICAgIHNlbGYuX2luamVjdF9zZXR1cF9tb2R1bGVfZml4dHVyZSgpCisgICAgICAgIHNl
bGYuX2luamVjdF9zZXR1cF9mdW5jdGlvbl9maXh0dXJlKCkKICAgICAgICAgc2VsZi5zZXNzaW9u
Ll9maXh0dXJlbWFuYWdlci5wYXJzZWZhY3RvcmllcyhzZWxmKQogICAgICAgICByZXR1cm4gc3Vw
ZXIoTW9kdWxlLCBzZWxmKS5jb2xsZWN0KCkKIAorICAgIGRlZiBfaW5qZWN0X3NldHVwX21vZHVs
ZV9maXh0dXJlKHNlbGYpOgorICAgICAgICAiIiJJbmplY3RzIGEgaGlkZGVuIGF1dG91c2UsIG1v
ZHVsZSBzY29wZWQgZml4dHVyZSBpbnRvIHRoZSBjb2xsZWN0ZWQgbW9kdWxlIG9iamVjdAorICAg
ICAgICB0aGF0IGludm9rZXMgc2V0VXBNb2R1bGUvdGVhckRvd25Nb2R1bGUgaWYgZWl0aGVyIG9y
IGJvdGggYXJlIGF2YWlsYWJsZS4KKworICAgICAgICBVc2luZyBhIGZpeHR1cmUgdG8gaW52b2tl
IHRoaXMgbWV0aG9kcyBlbnN1cmVzIHdlIHBsYXkgbmljZWx5IGFuZCB1bnN1cnByaXNpbmdseSB3
aXRoCisgICAgICAgIG90aGVyIGZpeHR1cmVzICgjNTE3KS4KKyAgICAgICAgIiIiCisgICAgICAg
IHNldHVwX21vZHVsZSA9IF9nZXRfbm9uX2ZpeHR1cmVfZnVuYyhzZWxmLm9iaiwgInNldFVwTW9k
dWxlIikKKyAgICAgICAgaWYgc2V0dXBfbW9kdWxlIGlzIE5vbmU6CisgICAgICAgICAgICBzZXR1
cF9tb2R1bGUgPSBfZ2V0X25vbl9maXh0dXJlX2Z1bmMoc2VsZi5vYmosICJzZXR1cF9tb2R1bGUi
KQorCisgICAgICAgIHRlYXJkb3duX21vZHVsZSA9IF9nZXRfbm9uX2ZpeHR1cmVfZnVuYyhzZWxm
Lm9iaiwgInRlYXJEb3duTW9kdWxlIikKKyAgICAgICAgaWYgdGVhcmRvd25fbW9kdWxlIGlzIE5v
bmU6CisgICAgICAgICAgICB0ZWFyZG93bl9tb2R1bGUgPSBfZ2V0X25vbl9maXh0dXJlX2Z1bmMo
c2VsZi5vYmosICJ0ZWFyZG93bl9tb2R1bGUiKQorCisgICAgICAgIGlmIHNldHVwX21vZHVsZSBp
cyBOb25lIGFuZCB0ZWFyZG93bl9tb2R1bGUgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgor
CisgICAgICAgIEBmaXh0dXJlcy5maXh0dXJlKGF1dG91c2U9VHJ1ZSwgc2NvcGU9Im1vZHVsZSIp
CisgICAgICAgIGRlZiB4dW5pdF9zZXR1cF9tb2R1bGVfZml4dHVyZShyZXF1ZXN0KToKKyAgICAg
ICAgICAgIGlmIHNldHVwX21vZHVsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBfY2Fs
bF93aXRoX29wdGlvbmFsX2FyZ3VtZW50KHNldHVwX21vZHVsZSwgcmVxdWVzdC5tb2R1bGUpCisg
ICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgaWYgdGVhcmRvd25fbW9kdWxlIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgICAgIF9jYWxsX3dpdGhfb3B0aW9uYWxfYXJndW1lbnQodGVhcmRv
d25fbW9kdWxlLCByZXF1ZXN0Lm1vZHVsZSkKKworICAgICAgICBzZWxmLm9iai5fX3B5dGVzdF9z
ZXR1cF9tb2R1bGUgPSB4dW5pdF9zZXR1cF9tb2R1bGVfZml4dHVyZQorCisgICAgZGVmIF9pbmpl
Y3Rfc2V0dXBfZnVuY3Rpb25fZml4dHVyZShzZWxmKToKKyAgICAgICAgIiIiSW5qZWN0cyBhIGhp
ZGRlbiBhdXRvdXNlLCBmdW5jdGlvbiBzY29wZWQgZml4dHVyZSBpbnRvIHRoZSBjb2xsZWN0ZWQg
bW9kdWxlIG9iamVjdAorICAgICAgICB0aGF0IGludm9rZXMgc2V0dXBfZnVuY3Rpb24vdGVhcmRv
d25fZnVuY3Rpb24gaWYgZWl0aGVyIG9yIGJvdGggYXJlIGF2YWlsYWJsZS4KKworICAgICAgICBV
c2luZyBhIGZpeHR1cmUgdG8gaW52b2tlIHRoaXMgbWV0aG9kcyBlbnN1cmVzIHdlIHBsYXkgbmlj
ZWx5IGFuZCB1bnN1cnByaXNpbmdseSB3aXRoCisgICAgICAgIG90aGVyIGZpeHR1cmVzICgjNTE3
KS4KKyAgICAgICAgIiIiCisgICAgICAgIHNldHVwX2Z1bmN0aW9uID0gX2dldF9ub25fZml4dHVy
ZV9mdW5jKHNlbGYub2JqLCAic2V0dXBfZnVuY3Rpb24iKQorICAgICAgICB0ZWFyZG93bl9mdW5j
dGlvbiA9IF9nZXRfbm9uX2ZpeHR1cmVfZnVuYyhzZWxmLm9iaiwgInRlYXJkb3duX2Z1bmN0aW9u
IikKKyAgICAgICAgaWYgc2V0dXBfZnVuY3Rpb24gaXMgTm9uZSBhbmQgdGVhcmRvd25fZnVuY3Rp
b24gaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIEBmaXh0dXJlcy5maXh0
dXJlKGF1dG91c2U9VHJ1ZSwgc2NvcGU9ImZ1bmN0aW9uIikKKyAgICAgICAgZGVmIHh1bml0X3Nl
dHVwX2Z1bmN0aW9uX2ZpeHR1cmUocmVxdWVzdCk6CisgICAgICAgICAgICBpZiByZXF1ZXN0Lmlu
c3RhbmNlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICMgaW4gdGhpcyBjYXNlIHdlIGFy
ZSBib3VuZCB0byBhbiBpbnN0YW5jZSwgc28gd2UgbmVlZCB0byBsZXQKKyAgICAgICAgICAgICAg
ICAjIHNldHVwX21ldGhvZCBoYW5kbGUgdGhpcworICAgICAgICAgICAgICAgIHlpZWxkCisgICAg
ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBpZiBzZXR1cF9mdW5jdGlvbiBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICBfY2FsbF93aXRoX29wdGlvbmFsX2FyZ3VtZW50KHNldHVw
X2Z1bmN0aW9uLCByZXF1ZXN0LmZ1bmN0aW9uKQorICAgICAgICAgICAgeWllbGQKKyAgICAgICAg
ICAgIGlmIHRlYXJkb3duX2Z1bmN0aW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIF9j
YWxsX3dpdGhfb3B0aW9uYWxfYXJndW1lbnQodGVhcmRvd25fZnVuY3Rpb24sIHJlcXVlc3QuZnVu
Y3Rpb24pCisKKyAgICAgICAgc2VsZi5vYmouX19weXRlc3Rfc2V0dXBfZnVuY3Rpb24gPSB4dW5p
dF9zZXR1cF9mdW5jdGlvbl9maXh0dXJlCisKICAgICBkZWYgX2ltcG9ydHRlc3Rtb2R1bGUoc2Vs
Zik6CiAgICAgICAgICMgd2UgYXNzdW1lIHdlIGFyZSBvbmx5IGNhbGxlZCBvbmNlIHBlciBtb2R1
bGUKICAgICAgICAgaW1wb3J0bW9kZSA9IHNlbGYuY29uZmlnLmdldG9wdGlvbigiLS1pbXBvcnQt
bW9kZSIpCkBAIC00NjgsNyArNTA3LDcgQEAgY2xhc3MgTW9kdWxlKG5vZGVzLkZpbGUsIFB5Q29s
bGVjdG9yKToKICAgICAgICAgICAgIG1vZCA9IHNlbGYuZnNwYXRoLnB5aW1wb3J0KGVuc3VyZXN5
c3BhdGg9aW1wb3J0bW9kZSkKICAgICAgICAgZXhjZXB0IFN5bnRheEVycm9yOgogICAgICAgICAg
ICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3IoCi0gICAgICAgICAgICAgICAgX3B5dGVzdC5fY29k
ZS5FeGNlcHRpb25JbmZvKCkuZ2V0cmVwcihzdHlsZT0ic2hvcnQiKQorICAgICAgICAgICAgICAg
IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKS5nZXRyZXByKHN0eWxl
PSJzaG9ydCIpCiAgICAgICAgICAgICApCiAgICAgICAgIGV4Y2VwdCBzZWxmLmZzcGF0aC5JbXBv
cnRNaXNtYXRjaEVycm9yOgogICAgICAgICAgICAgZSA9IHN5cy5leGNfaW5mbygpWzFdCkBAIC00
ODQsMTIgKzUyMywxNCBAQCBjbGFzcyBNb2R1bGUobm9kZXMuRmlsZSwgUHlDb2xsZWN0b3IpOgog
ICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICAgICBmcm9tIF9weXRlc3QuX2Nv
ZGUuY29kZSBpbXBvcnQgRXhjZXB0aW9uSW5mbwogCi0gICAgICAgICAgICBleGNfaW5mbyA9IEV4
Y2VwdGlvbkluZm8oKQorICAgICAgICAgICAgZXhjX2luZm8gPSBFeGNlcHRpb25JbmZvLmZyb21f
Y3VycmVudCgpCiAgICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2Ui
KSA8IDI6CiAgICAgICAgICAgICAgICAgZXhjX2luZm8udHJhY2ViYWNrID0gZXhjX2luZm8udHJh
Y2ViYWNrLmZpbHRlcihmaWx0ZXJfdHJhY2ViYWNrKQotICAgICAgICAgICAgZXhjX3JlcHIgPSBl
eGNfaW5mby5nZXRyZXByKAotICAgICAgICAgICAgICAgIHN0eWxlPSJzaG9ydCIKLSAgICAgICAg
ICAgICkgaWYgZXhjX2luZm8udHJhY2ViYWNrIGVsc2UgZXhjX2luZm8uZXhjb25seSgpCisgICAg
ICAgICAgICBleGNfcmVwciA9ICgKKyAgICAgICAgICAgICAgICBleGNfaW5mby5nZXRyZXByKHN0
eWxlPSJzaG9ydCIpCisgICAgICAgICAgICAgICAgaWYgZXhjX2luZm8udHJhY2ViYWNrCisgICAg
ICAgICAgICAgICAgZWxzZSBleGNfaW5mby5leGNvbmx5KCkKKyAgICAgICAgICAgICkKICAgICAg
ICAgICAgIGZvcm1hdHRlZF90YiA9IHNhZmVfc3RyKGV4Y19yZXByKQogICAgICAgICAgICAgcmFp
c2Ugc2VsZi5Db2xsZWN0RXJyb3IoCiAgICAgICAgICAgICAgICAgIkltcG9ydEVycm9yIHdoaWxl
IGltcG9ydGluZyB0ZXN0IG1vZHVsZSAne2ZzcGF0aH0nLlxuIgpAQCAtNTA5LDE4ICs1NTAsMTIw
IEBAIGNsYXNzIE1vZHVsZShub2Rlcy5GaWxlLCBQeUNvbGxlY3Rvcik6CiAgICAgICAgIHNlbGYu
Y29uZmlnLnBsdWdpbm1hbmFnZXIuY29uc2lkZXJfbW9kdWxlKG1vZCkKICAgICAgICAgcmV0dXJu
IG1vZAogCisKK2NsYXNzIFBhY2thZ2UoTW9kdWxlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
ZnNwYXRoLCBwYXJlbnQ9Tm9uZSwgY29uZmlnPU5vbmUsIHNlc3Npb249Tm9uZSwgbm9kZWlkPU5v
bmUpOgorICAgICAgICBzZXNzaW9uID0gcGFyZW50LnNlc3Npb24KKyAgICAgICAgbm9kZXMuRlND
b2xsZWN0b3IuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCBmc3BhdGgsIHBhcmVudD1wYXJl
bnQsIGNvbmZpZz1jb25maWcsIHNlc3Npb249c2Vzc2lvbiwgbm9kZWlkPW5vZGVpZAorICAgICAg
ICApCisgICAgICAgIHNlbGYubmFtZSA9IGZzcGF0aC5kaXJuYW1lCisgICAgICAgIHNlbGYudHJh
Y2UgPSBzZXNzaW9uLnRyYWNlCisgICAgICAgIHNlbGYuX25vcmVjdXJzZXBhdHRlcm5zID0gc2Vz
c2lvbi5fbm9yZWN1cnNlcGF0dGVybnMKKyAgICAgICAgc2VsZi5mc3BhdGggPSBmc3BhdGgKKwog
ICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgc2V0dXBfbW9kdWxlID0gX2dldF94dW5pdF9z
ZXR1cF90ZWFyZG93bihzZWxmLm9iaiwgInNldFVwTW9kdWxlIikKKyAgICAgICAgIyBub3QgdXNp
bmcgZml4dHVyZXMgdG8gY2FsbCBzZXR1cF9tb2R1bGUgaGVyZSBiZWNhdXNlIGF1dG91c2UgZml4
dHVyZXMKKyAgICAgICAgIyBmcm9tIHBhY2thZ2VzIGFyZSBub3QgY2FsbGVkIGF1dG9tYXRpY2Fs
bHkgKCM0MDg1KQorICAgICAgICBzZXR1cF9tb2R1bGUgPSBfZ2V0X25vbl9maXh0dXJlX2Z1bmMo
c2VsZi5vYmosICJzZXRVcE1vZHVsZSIpCiAgICAgICAgIGlmIHNldHVwX21vZHVsZSBpcyBOb25l
OgotICAgICAgICAgICAgc2V0dXBfbW9kdWxlID0gX2dldF94dW5pdF9zZXR1cF90ZWFyZG93bihz
ZWxmLm9iaiwgInNldHVwX21vZHVsZSIpCisgICAgICAgICAgICBzZXR1cF9tb2R1bGUgPSBfZ2V0
X25vbl9maXh0dXJlX2Z1bmMoc2VsZi5vYmosICJzZXR1cF9tb2R1bGUiKQogICAgICAgICBpZiBz
ZXR1cF9tb2R1bGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZXR1cF9tb2R1bGUoKQorICAg
ICAgICAgICAgX2NhbGxfd2l0aF9vcHRpb25hbF9hcmd1bWVudChzZXR1cF9tb2R1bGUsIHNlbGYu
b2JqKQogCi0gICAgICAgIHRlYXJkb3duX21vZHVsZSA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRv
d24oc2VsZi5vYmosICJ0ZWFyRG93bk1vZHVsZSIpCisgICAgICAgIHRlYXJkb3duX21vZHVsZSA9
IF9nZXRfbm9uX2ZpeHR1cmVfZnVuYyhzZWxmLm9iaiwgInRlYXJEb3duTW9kdWxlIikKICAgICAg
ICAgaWYgdGVhcmRvd25fbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICB0ZWFyZG93bl9tb2R1
bGUgPSBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3duKHNlbGYub2JqLCAidGVhcmRvd25fbW9kdWxl
IikKKyAgICAgICAgICAgIHRlYXJkb3duX21vZHVsZSA9IF9nZXRfbm9uX2ZpeHR1cmVfZnVuYyhz
ZWxmLm9iaiwgInRlYXJkb3duX21vZHVsZSIpCiAgICAgICAgIGlmIHRlYXJkb3duX21vZHVsZSBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuYWRkZmluYWxpemVyKHRlYXJkb3duX21vZHVs
ZSkKKyAgICAgICAgICAgIGZ1bmMgPSBwYXJ0aWFsKF9jYWxsX3dpdGhfb3B0aW9uYWxfYXJndW1l
bnQsIHRlYXJkb3duX21vZHVsZSwgc2VsZi5vYmopCisgICAgICAgICAgICBzZWxmLmFkZGZpbmFs
aXplcihmdW5jKQorCisgICAgZGVmIF9yZWN1cnNlKHNlbGYsIGRpcnBhdGgpOgorICAgICAgICBp
ZiBkaXJwYXRoLmJhc2VuYW1lID09ICJfX3B5Y2FjaGVfXyI6CisgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKyAgICAgICAgaWhvb2sgPSBzZWxmLmdldGhvb2twcm94eShkaXJwYXRoLmRpcnBhdGgo
KSkKKyAgICAgICAgaWYgaWhvb2sucHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGg9ZGlycGF0aCwg
Y29uZmlnPXNlbGYuY29uZmlnKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBmb3IgcGF0
IGluIHNlbGYuX25vcmVjdXJzZXBhdHRlcm5zOgorICAgICAgICAgICAgaWYgZGlycGF0aC5jaGVj
ayhmbm1hdGNoPXBhdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlo
b29rID0gc2VsZi5nZXRob29rcHJveHkoZGlycGF0aCkKKyAgICAgICAgaWhvb2sucHl0ZXN0X2Nv
bGxlY3RfZGlyZWN0b3J5KHBhdGg9ZGlycGF0aCwgcGFyZW50PXNlbGYpCisgICAgICAgIHJldHVy
biBUcnVlCisKKyAgICBkZWYgZ2V0aG9va3Byb3h5KHNlbGYsIGZzcGF0aCk6CisgICAgICAgICMg
Y2hlY2sgaWYgd2UgaGF2ZSB0aGUgY29tbW9uIGNhc2Ugb2YgcnVubmluZworICAgICAgICAjIGhv
b2tzIHdpdGggYWxsIGNvbmZ0ZXN0LnB5IGZpbGVzYWxsIGNvbmZ0ZXN0LnB5CisgICAgICAgIHBt
ID0gc2VsZi5jb25maWcucGx1Z2lubWFuYWdlcgorICAgICAgICBteV9jb25mdGVzdG1vZHVsZXMg
PSBwbS5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGZzcGF0aCkKKyAgICAgICAgcmVtb3ZlX21vZHMgPSBw
bS5fY29uZnRlc3RfcGx1Z2lucy5kaWZmZXJlbmNlKG15X2NvbmZ0ZXN0bW9kdWxlcykKKyAgICAg
ICAgaWYgcmVtb3ZlX21vZHM6CisgICAgICAgICAgICAjIG9uZSBvciBtb3JlIGNvbmZ0ZXN0cyBh
cmUgbm90IGluIHVzZSBhdCB0aGlzIGZzcGF0aAorICAgICAgICAgICAgcHJveHkgPSBGU0hvb2tQ
cm94eShmc3BhdGgsIHBtLCByZW1vdmVfbW9kcykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICMgYWxsIHBsdWdpcyBhcmUgYWN0aXZlIGZvciB0aGlzIGZzcGF0aAorICAgICAgICAgICAgcHJv
eHkgPSBzZWxmLmNvbmZpZy5ob29rCisgICAgICAgIHJldHVybiBwcm94eQorCisgICAgZGVmIF9j
b2xsZWN0ZmlsZShzZWxmLCBwYXRoLCBoYW5kbGVfZHVwZXM9VHJ1ZSk6CisgICAgICAgIGFzc2Vy
dCBwYXRoLmlzZmlsZSgpLCAiJXIgaXMgbm90IGEgZmlsZSAoaXNkaXI9JXIsIGV4aXN0cz0lciwg
aXNsaW5rPSVyKSIgJSAoCisgICAgICAgICAgICBwYXRoLAorICAgICAgICAgICAgcGF0aC5pc2Rp
cigpLAorICAgICAgICAgICAgcGF0aC5leGlzdHMoKSwKKyAgICAgICAgICAgIHBhdGguaXNsaW5r
KCksCisgICAgICAgICkKKyAgICAgICAgaWhvb2sgPSBzZWxmLmdldGhvb2twcm94eShwYXRoKQor
ICAgICAgICBpZiBub3Qgc2VsZi5pc2luaXRwYXRoKHBhdGgpOgorICAgICAgICAgICAgaWYgaWhv
b2sucHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGg9cGF0aCwgY29uZmlnPXNlbGYuY29uZmlnKToK
KyAgICAgICAgICAgICAgICByZXR1cm4gKCkKKworICAgICAgICBpZiBoYW5kbGVfZHVwZXM6Cisg
ICAgICAgICAgICBrZWVwZHVwbGljYXRlcyA9IHNlbGYuY29uZmlnLmdldG9wdGlvbigia2VlcGR1
cGxpY2F0ZXMiKQorICAgICAgICAgICAgaWYgbm90IGtlZXBkdXBsaWNhdGVzOgorICAgICAgICAg
ICAgICAgIGR1cGxpY2F0ZV9wYXRocyA9IHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIuX2R1cGxp
Y2F0ZXBhdGhzCisgICAgICAgICAgICAgICAgaWYgcGF0aCBpbiBkdXBsaWNhdGVfcGF0aHM6Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAoKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgICAgIGR1cGxpY2F0ZV9wYXRocy5hZGQocGF0aCkKKworICAgICAgICBpZiBz
ZWxmLmZzcGF0aCA9PSBwYXRoOiAgIyBfX2luaXRfXy5weQorICAgICAgICAgICAgcmV0dXJuIFtz
ZWxmXQorCisgICAgICAgIHJldHVybiBpaG9vay5weXRlc3RfY29sbGVjdF9maWxlKHBhdGg9cGF0
aCwgcGFyZW50PXNlbGYpCisKKyAgICBkZWYgaXNpbml0cGF0aChzZWxmLCBwYXRoKToKKyAgICAg
ICAgcmV0dXJuIHBhdGggaW4gc2VsZi5zZXNzaW9uLl9pbml0aWFscGF0aHMKKworICAgIGRlZiBj
b2xsZWN0KHNlbGYpOgorICAgICAgICB0aGlzX3BhdGggPSBzZWxmLmZzcGF0aC5kaXJwYXRoKCkK
KyAgICAgICAgaW5pdF9tb2R1bGUgPSB0aGlzX3BhdGguam9pbigiX19pbml0X18ucHkiKQorICAg
ICAgICBpZiBpbml0X21vZHVsZS5jaGVjayhmaWxlPTEpIGFuZCBwYXRoX21hdGNoZXNfcGF0dGVy
bnMoCisgICAgICAgICAgICBpbml0X21vZHVsZSwgc2VsZi5jb25maWcuZ2V0aW5pKCJweXRob25f
ZmlsZXMiKQorICAgICAgICApOgorICAgICAgICAgICAgeWllbGQgTW9kdWxlKGluaXRfbW9kdWxl
LCBzZWxmKQorICAgICAgICBwa2dfcHJlZml4ZXMgPSBzZXQoKQorICAgICAgICBmb3IgcGF0aCBp
biB0aGlzX3BhdGgudmlzaXQocmVjPXNlbGYuX3JlY3Vyc2UsIGJmPVRydWUsIHNvcnQ9VHJ1ZSk6
CisgICAgICAgICAgICAjIFdlIHdpbGwgdmlzaXQgb3VyIG93biBfX2luaXRfXy5weSBmaWxlLCBp
biB3aGljaCBjYXNlIHdlIHNraXAgaXQuCisgICAgICAgICAgICBpc19maWxlID0gcGF0aC5pc2Zp
bGUoKQorICAgICAgICAgICAgaWYgaXNfZmlsZToKKyAgICAgICAgICAgICAgICBpZiBwYXRoLmJh
c2VuYW1lID09ICJfX2luaXRfXy5weSIgYW5kIHBhdGguZGlycGF0aCgpID09IHRoaXNfcGF0aDoK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgcGFydHNfID0gcGFy
dHMocGF0aC5zdHJwYXRoKQorICAgICAgICAgICAgaWYgYW55KAorICAgICAgICAgICAgICAgIHBr
Z19wcmVmaXggaW4gcGFydHNfIGFuZCBwa2dfcHJlZml4LmpvaW4oIl9faW5pdF9fLnB5IikgIT0g
cGF0aAorICAgICAgICAgICAgICAgIGZvciBwa2dfcHJlZml4IGluIHBrZ19wcmVmaXhlcworICAg
ICAgICAgICAgKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBpZiBp
c19maWxlOgorICAgICAgICAgICAgICAgIGZvciB4IGluIHNlbGYuX2NvbGxlY3RmaWxlKHBhdGgp
OgorICAgICAgICAgICAgICAgICAgICB5aWVsZCB4CisgICAgICAgICAgICBlbGlmIG5vdCBwYXRo
LmlzZGlyKCk6CisgICAgICAgICAgICAgICAgIyBCcm9rZW4gc3ltbGluayBvciBpbnZhbGlkL21p
c3NpbmcgZmlsZS4KKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiBw
YXRoLmpvaW4oIl9faW5pdF9fLnB5IikuY2hlY2soZmlsZT0xKToKKyAgICAgICAgICAgICAgICBw
a2dfcHJlZml4ZXMuYWRkKHBhdGgpCiAKIAogZGVmIF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24o
aG9sZGVyLCBhdHRyX25hbWUsIHBhcmFtX29iaj1Ob25lKToKQEAgLTUzMSw4ICs2NzQsOSBAQCBk
ZWYgX2dldF94dW5pdF9zZXR1cF90ZWFyZG93bihob2xkZXIsIGF0dHJfbmFtZSwgcGFyYW1fb2Jq
PU5vbmUpOgogICAgIHdoZW4gdGhlIGNhbGxhYmxlIGlzIGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50
cywgZGVmYXVsdHMgdG8gdGhlIGBgaG9sZGVyYGAgb2JqZWN0LgogICAgIFJldHVybiBgYE5vbmVg
YCBpZiBhIHN1aXRhYmxlIGNhbGxhYmxlIGlzIG5vdCBmb3VuZC4KICAgICAiIiIKKyAgICAjIFRP
RE86IG9ubHkgbmVlZGVkIGJlY2F1c2Ugb2YgUGFja2FnZSEKICAgICBwYXJhbV9vYmogPSBwYXJh
bV9vYmogaWYgcGFyYW1fb2JqIGlzIG5vdCBOb25lIGVsc2UgaG9sZGVyCi0gICAgcmVzdWx0ID0g
X2dldF94dW5pdF9mdW5jKGhvbGRlciwgYXR0cl9uYW1lKQorICAgIHJlc3VsdCA9IF9nZXRfbm9u
X2ZpeHR1cmVfZnVuYyhob2xkZXIsIGF0dHJfbmFtZSkKICAgICBpZiByZXN1bHQgaXMgbm90IE5v
bmU6CiAgICAgICAgIGFyZ19jb3VudCA9IHJlc3VsdC5fX2NvZGVfXy5jb19hcmdjb3VudAogICAg
ICAgICBpZiBpbnNwZWN0LmlzbWV0aG9kKHJlc3VsdCk6CkBAIC01NDMsNyArNjg3LDE5IEBAIGRl
ZiBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3duKGhvbGRlciwgYXR0cl9uYW1lLCBwYXJhbV9vYmo9
Tm9uZSk6CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0CiAKIAotZGVmIF9nZXRfeHVuaXRfZnVu
YyhvYmosIG5hbWUpOgorZGVmIF9jYWxsX3dpdGhfb3B0aW9uYWxfYXJndW1lbnQoZnVuYywgYXJn
KToKKyAgICAiIiJDYWxsIHRoZSBnaXZlbiBmdW5jdGlvbiB3aXRoIHRoZSBnaXZlbiBhcmd1bWVu
dCBpZiBmdW5jIGFjY2VwdHMgb25lIGFyZ3VtZW50LCBvdGhlcndpc2UKKyAgICBjYWxscyBmdW5j
IHdpdGhvdXQgYXJndW1lbnRzIiIiCisgICAgYXJnX2NvdW50ID0gZnVuYy5fX2NvZGVfXy5jb19h
cmdjb3VudAorICAgIGlmIGluc3BlY3QuaXNtZXRob2QoZnVuYyk6CisgICAgICAgIGFyZ19jb3Vu
dCAtPSAxCisgICAgaWYgYXJnX2NvdW50OgorICAgICAgICBmdW5jKGFyZykKKyAgICBlbHNlOgor
ICAgICAgICBmdW5jKCkKKworCitkZWYgX2dldF9ub25fZml4dHVyZV9mdW5jKG9iaiwgbmFtZSk6
CiAgICAgIiIiUmV0dXJuIHRoZSBhdHRyaWJ1dGUgZnJvbSB0aGUgZ2l2ZW4gb2JqZWN0IHRvIGJl
IHVzZWQgYXMgYSBzZXR1cC90ZWFyZG93bgogICAgIHh1bml0LXN0eWxlIGZ1bmN0aW9uLCBidXQg
b25seSBpZiBub3QgbWFya2VkIGFzIGEgZml4dHVyZSB0bwogICAgIGF2b2lkIGNhbGxpbmcgaXQg
dHdpY2UuCkBAIC01NjEsMzkgKzcxNyw4MyBAQCBjbGFzcyBDbGFzcyhQeUNvbGxlY3Rvcik6CiAg
ICAgICAgICAgICByZXR1cm4gW10KICAgICAgICAgaWYgaGFzaW5pdChzZWxmLm9iaik6CiAgICAg
ICAgICAgICBzZWxmLndhcm4oCi0gICAgICAgICAgICAgICAgIkMxIiwKLSAgICAgICAgICAgICAg
ICAiY2Fubm90IGNvbGxlY3QgdGVzdCBjbGFzcyAlciBiZWNhdXNlIGl0IGhhcyBhICIKLSAgICAg
ICAgICAgICAgICAiX19pbml0X18gY29uc3RydWN0b3IiICUgc2VsZi5vYmouX19uYW1lX18sCisg
ICAgICAgICAgICAgICAgUHl0ZXN0Q29sbGVjdGlvbldhcm5pbmcoCisgICAgICAgICAgICAgICAg
ICAgICJjYW5ub3QgY29sbGVjdCB0ZXN0IGNsYXNzICVyIGJlY2F1c2UgaXQgaGFzIGEgIgorICAg
ICAgICAgICAgICAgICAgICAiX19pbml0X18gY29uc3RydWN0b3IgKGZyb206ICVzKSIKKyAgICAg
ICAgICAgICAgICAgICAgJSAoc2VsZi5vYmouX19uYW1lX18sIHNlbGYucGFyZW50Lm5vZGVpZCkK
KyAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICApCiAgICAgICAgICAgICByZXR1cm4gW10K
ICAgICAgICAgZWxpZiBoYXNuZXcoc2VsZi5vYmopOgogICAgICAgICAgICAgc2VsZi53YXJuKAot
ICAgICAgICAgICAgICAgICJDMSIsCi0gICAgICAgICAgICAgICAgImNhbm5vdCBjb2xsZWN0IHRl
c3QgY2xhc3MgJXIgYmVjYXVzZSBpdCBoYXMgYSAiCi0gICAgICAgICAgICAgICAgIl9fbmV3X18g
Y29uc3RydWN0b3IiICUgc2VsZi5vYmouX19uYW1lX18sCisgICAgICAgICAgICAgICAgUHl0ZXN0
Q29sbGVjdGlvbldhcm5pbmcoCisgICAgICAgICAgICAgICAgICAgICJjYW5ub3QgY29sbGVjdCB0
ZXN0IGNsYXNzICVyIGJlY2F1c2UgaXQgaGFzIGEgIgorICAgICAgICAgICAgICAgICAgICAiX19u
ZXdfXyBjb25zdHJ1Y3RvciAoZnJvbTogJXMpIgorICAgICAgICAgICAgICAgICAgICAlIChzZWxm
Lm9iai5fX25hbWVfXywgc2VsZi5wYXJlbnQubm9kZWlkKQorICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgICkKICAgICAgICAgICAgIHJldHVybiBbXQotICAgICAgICByZXR1cm4gW3NlbGYu
X2dldGN1c3RvbWNsYXNzKCJJbnN0YW5jZSIpKG5hbWU9IigpIiwgcGFyZW50PXNlbGYpXQogCi0g
ICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICBzZXR1cF9jbGFzcyA9IF9nZXRfeHVuaXRfZnVu
YyhzZWxmLm9iaiwgInNldHVwX2NsYXNzIikKLSAgICAgICAgaWYgc2V0dXBfY2xhc3MgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBzZXR1cF9jbGFzcyA9IGdldGF0dHIoc2V0dXBfY2xhc3MsICJp
bV9mdW5jIiwgc2V0dXBfY2xhc3MpCi0gICAgICAgICAgICBzZXR1cF9jbGFzcyA9IGdldGF0dHIo
c2V0dXBfY2xhc3MsICJfX2Z1bmNfXyIsIHNldHVwX2NsYXNzKQotICAgICAgICAgICAgc2V0dXBf
Y2xhc3Moc2VsZi5vYmopCisgICAgICAgIHNlbGYuX2luamVjdF9zZXR1cF9jbGFzc19maXh0dXJl
KCkKKyAgICAgICAgc2VsZi5faW5qZWN0X3NldHVwX21ldGhvZF9maXh0dXJlKCkKKworICAgICAg
ICByZXR1cm4gW0luc3RhbmNlKG5hbWU9IigpIiwgcGFyZW50PXNlbGYpXQorCisgICAgZGVmIF9p
bmplY3Rfc2V0dXBfY2xhc3NfZml4dHVyZShzZWxmKToKKyAgICAgICAgIiIiSW5qZWN0cyBhIGhp
ZGRlbiBhdXRvdXNlLCBjbGFzcyBzY29wZWQgZml4dHVyZSBpbnRvIHRoZSBjb2xsZWN0ZWQgY2xh
c3Mgb2JqZWN0CisgICAgICAgIHRoYXQgaW52b2tlcyBzZXR1cF9jbGFzcy90ZWFyZG93bl9jbGFz
cyBpZiBlaXRoZXIgb3IgYm90aCBhcmUgYXZhaWxhYmxlLgorCisgICAgICAgIFVzaW5nIGEgZml4
dHVyZSB0byBpbnZva2UgdGhpcyBtZXRob2RzIGVuc3VyZXMgd2UgcGxheSBuaWNlbHkgYW5kIHVu
c3VycHJpc2luZ2x5IHdpdGgKKyAgICAgICAgb3RoZXIgZml4dHVyZXMgKCM1MTcpLgorICAgICAg
ICAiIiIKKyAgICAgICAgc2V0dXBfY2xhc3MgPSBfZ2V0X25vbl9maXh0dXJlX2Z1bmMoc2VsZi5v
YmosICJzZXR1cF9jbGFzcyIpCisgICAgICAgIHRlYXJkb3duX2NsYXNzID0gZ2V0YXR0cihzZWxm
Lm9iaiwgInRlYXJkb3duX2NsYXNzIiwgTm9uZSkKKyAgICAgICAgaWYgc2V0dXBfY2xhc3MgaXMg
Tm9uZSBhbmQgdGVhcmRvd25fY2xhc3MgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorCisg
ICAgICAgIEBmaXh0dXJlcy5maXh0dXJlKGF1dG91c2U9VHJ1ZSwgc2NvcGU9ImNsYXNzIikKKyAg
ICAgICAgZGVmIHh1bml0X3NldHVwX2NsYXNzX2ZpeHR1cmUoY2xzKToKKyAgICAgICAgICAgIGlm
IHNldHVwX2NsYXNzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGZ1bmMgPSBnZXRpbWZ1
bmMoc2V0dXBfY2xhc3MpCisgICAgICAgICAgICAgICAgX2NhbGxfd2l0aF9vcHRpb25hbF9hcmd1
bWVudChmdW5jLCBzZWxmLm9iaikKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICBpZiB0
ZWFyZG93bl9jbGFzcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBmdW5jID0gZ2V0aW1m
dW5jKHRlYXJkb3duX2NsYXNzKQorICAgICAgICAgICAgICAgIF9jYWxsX3dpdGhfb3B0aW9uYWxf
YXJndW1lbnQoZnVuYywgc2VsZi5vYmopCisKKyAgICAgICAgc2VsZi5vYmouX19weXRlc3Rfc2V0
dXBfY2xhc3MgPSB4dW5pdF9zZXR1cF9jbGFzc19maXh0dXJlCisKKyAgICBkZWYgX2luamVjdF9z
ZXR1cF9tZXRob2RfZml4dHVyZShzZWxmKToKKyAgICAgICAgIiIiSW5qZWN0cyBhIGhpZGRlbiBh
dXRvdXNlLCBmdW5jdGlvbiBzY29wZWQgZml4dHVyZSBpbnRvIHRoZSBjb2xsZWN0ZWQgY2xhc3Mg
b2JqZWN0CisgICAgICAgIHRoYXQgaW52b2tlcyBzZXR1cF9tZXRob2QvdGVhcmRvd25fbWV0aG9k
IGlmIGVpdGhlciBvciBib3RoIGFyZSBhdmFpbGFibGUuCisKKyAgICAgICAgVXNpbmcgYSBmaXh0
dXJlIHRvIGludm9rZSB0aGlzIG1ldGhvZHMgZW5zdXJlcyB3ZSBwbGF5IG5pY2VseSBhbmQgdW5z
dXJwcmlzaW5nbHkgd2l0aAorICAgICAgICBvdGhlciBmaXh0dXJlcyAoIzUxNykuCisgICAgICAg
ICIiIgorICAgICAgICBzZXR1cF9tZXRob2QgPSBfZ2V0X25vbl9maXh0dXJlX2Z1bmMoc2VsZi5v
YmosICJzZXR1cF9tZXRob2QiKQorICAgICAgICB0ZWFyZG93bl9tZXRob2QgPSBnZXRhdHRyKHNl
bGYub2JqLCAidGVhcmRvd25fbWV0aG9kIiwgTm9uZSkKKyAgICAgICAgaWYgc2V0dXBfbWV0aG9k
IGlzIE5vbmUgYW5kIHRlYXJkb3duX21ldGhvZCBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJu
CisKKyAgICAgICAgQGZpeHR1cmVzLmZpeHR1cmUoYXV0b3VzZT1UcnVlLCBzY29wZT0iZnVuY3Rp
b24iKQorICAgICAgICBkZWYgeHVuaXRfc2V0dXBfbWV0aG9kX2ZpeHR1cmUoc2VsZiwgcmVxdWVz
dCk6CisgICAgICAgICAgICBtZXRob2QgPSByZXF1ZXN0LmZ1bmN0aW9uCisgICAgICAgICAgICBp
ZiBzZXR1cF9tZXRob2QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgZnVuYyA9IGdldGF0
dHIoc2VsZiwgInNldHVwX21ldGhvZCIpCisgICAgICAgICAgICAgICAgX2NhbGxfd2l0aF9vcHRp
b25hbF9hcmd1bWVudChmdW5jLCBtZXRob2QpCisgICAgICAgICAgICB5aWVsZAorICAgICAgICAg
ICAgaWYgdGVhcmRvd25fbWV0aG9kIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGZ1bmMg
PSBnZXRhdHRyKHNlbGYsICJ0ZWFyZG93bl9tZXRob2QiKQorICAgICAgICAgICAgICAgIF9jYWxs
X3dpdGhfb3B0aW9uYWxfYXJndW1lbnQoZnVuYywgbWV0aG9kKQogCi0gICAgICAgIGZpbl9jbGFz
cyA9IGdldGF0dHIoc2VsZi5vYmosICJ0ZWFyZG93bl9jbGFzcyIsIE5vbmUpCi0gICAgICAgIGlm
IGZpbl9jbGFzcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZpbl9jbGFzcyA9IGdldGF0dHIo
ZmluX2NsYXNzLCAiaW1fZnVuYyIsIGZpbl9jbGFzcykKLSAgICAgICAgICAgIGZpbl9jbGFzcyA9
IGdldGF0dHIoZmluX2NsYXNzLCAiX19mdW5jX18iLCBmaW5fY2xhc3MpCi0gICAgICAgICAgICBz
ZWxmLmFkZGZpbmFsaXplcihsYW1iZGE6IGZpbl9jbGFzcyhzZWxmLm9iaikpCisgICAgICAgIHNl
bGYub2JqLl9fcHl0ZXN0X3NldHVwX21ldGhvZCA9IHh1bml0X3NldHVwX21ldGhvZF9maXh0dXJl
CiAKIAogY2xhc3MgSW5zdGFuY2UoUHlDb2xsZWN0b3IpOgogICAgIF9BTExPV19NQVJLRVJTID0g
RmFsc2UgICMgaGFjaywgZGVzdHJveSBsYXRlcgogICAgICMgaW5zdGFuY2VzIHNoYXJlIHRoZSBv
YmplY3Qgd2l0aCB0aGVpciBwYXJlbnRzIGluIGEgd2F5CiAgICAgIyB0aGF0IGR1cGxpY2F0ZXMg
bWFya2VycyBpbnN0YW5jZXMgaWYgbm90IHRha2VuIG91dAotICAgICMgY2FuIGJlIHJlbW92ZWQg
YXQgbm9kZSBzdHJ1Y3V0cmUgcmVvcmdhbml6YXRpb24gdGltZQorICAgICMgY2FuIGJlIHJlbW92
ZWQgYXQgbm9kZSBzdHJ1Y3R1cmUgcmVvcmdhbml6YXRpb24gdGltZQogCiAgICAgZGVmIF9nZXRv
Ymooc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnBhcmVudC5vYmooKQpAQCAtNjEzLDMyICs4
MTMsMTIgQEAgY2xhc3MgRnVuY3Rpb25NaXhpbihQeW9iak1peGluKToKIAogICAgIGRlZiBzZXR1
cChzZWxmKToKICAgICAgICAgIiIiIHBlcmZvcm0gc2V0dXAgZm9yIHRoaXMgdGVzdCBmdW5jdGlv
bi4gIiIiCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIl9wcmVzZXJ2ZWRwYXJlbnQiKToKLSAg
ICAgICAgICAgIG9iaiA9IHNlbGYuX3ByZXNlcnZlZHBhcmVudAotICAgICAgICBlbGlmIGlzaW5z
dGFuY2Uoc2VsZi5wYXJlbnQsIEluc3RhbmNlKToKLSAgICAgICAgICAgIG9iaiA9IHNlbGYucGFy
ZW50Lm5ld2luc3RhbmNlKCkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLnBhcmVudCwgSW5z
dGFuY2UpOgorICAgICAgICAgICAgc2VsZi5wYXJlbnQubmV3aW5zdGFuY2UoKQogICAgICAgICAg
ICAgc2VsZi5vYmogPSBzZWxmLl9nZXRvYmooKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
b2JqID0gc2VsZi5wYXJlbnQub2JqCi0gICAgICAgIGlmIGluc3BlY3QuaXNtZXRob2Qoc2VsZi5v
YmopOgotICAgICAgICAgICAgc2V0dXBfbmFtZSA9ICJzZXR1cF9tZXRob2QiCi0gICAgICAgICAg
ICB0ZWFyZG93bl9uYW1lID0gInRlYXJkb3duX21ldGhvZCIKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHNldHVwX25hbWUgPSAic2V0dXBfZnVuY3Rpb24iCi0gICAgICAgICAgICB0ZWFyZG93
bl9uYW1lID0gInRlYXJkb3duX2Z1bmN0aW9uIgotICAgICAgICBzZXR1cF9mdW5jX29yX21ldGhv
ZCA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24oCi0gICAgICAgICAgICBvYmosIHNldHVwX25h
bWUsIHBhcmFtX29iaj1zZWxmLm9iagotICAgICAgICApCi0gICAgICAgIGlmIHNldHVwX2Z1bmNf
b3JfbWV0aG9kIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2V0dXBfZnVuY19vcl9tZXRob2Qo
KQotICAgICAgICB0ZWFyZG93bl9mdW5jX29yX21ldGhvZCA9IF9nZXRfeHVuaXRfc2V0dXBfdGVh
cmRvd24oCi0gICAgICAgICAgICBvYmosIHRlYXJkb3duX25hbWUsIHBhcmFtX29iaj1zZWxmLm9i
agotICAgICAgICApCi0gICAgICAgIGlmIHRlYXJkb3duX2Z1bmNfb3JfbWV0aG9kIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgc2VsZi5hZGRmaW5hbGl6ZXIodGVhcmRvd25fZnVuY19vcl9tZXRo
b2QpCiAKICAgICBkZWYgX3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pOgotICAgICAgICBp
ZiBoYXNhdHRyKHNlbGYsICJfb2JqIikgYW5kIG5vdCBzZWxmLmNvbmZpZy5vcHRpb24uZnVsbHRy
YWNlOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJfb2JqIikgYW5kIG5vdCBzZWxmLmNvbmZp
Zy5nZXRvcHRpb24oImZ1bGx0cmFjZSIsIEZhbHNlKToKICAgICAgICAgICAgIGNvZGUgPSBfcHl0
ZXN0Ll9jb2RlLkNvZGUoZ2V0X3JlYWxfZnVuYyhzZWxmLm9iaikpCiAgICAgICAgICAgICBwYXRo
LCBmaXJzdGxpbmVubyA9IGNvZGUucGF0aCwgY29kZS5maXJzdGxpbmVubwogICAgICAgICAgICAg
dHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKQEAgLTY1Myw2OCArODMzLDE5IEBAIGNsYXNz
IEZ1bmN0aW9uTWl4aW4oUHlvYmpNaXhpbik6CiAgICAgICAgICAgICBleGNpbmZvLnRyYWNlYmFj
ayA9IG50cmFjZWJhY2suZmlsdGVyKCkKICAgICAgICAgICAgICMgaXNzdWUzNjQ6IG1hcmsgYWxs
IGJ1dCBmaXJzdCBhbmQgbGFzdCBmcmFtZXMgdG8KICAgICAgICAgICAgICMgb25seSBzaG93IGEg
c2luZ2xlLWxpbmUgbWVzc2FnZSBmb3IgZWFjaCBmcmFtZQotICAgICAgICAgICAgaWYgc2VsZi5j
b25maWcub3B0aW9uLnRic3R5bGUgPT0gImF1dG8iOgorICAgICAgICAgICAgaWYgc2VsZi5jb25m
aWcuZ2V0b3B0aW9uKCJ0YnN0eWxlIiwgImF1dG8iKSA9PSAiYXV0byI6CiAgICAgICAgICAgICAg
ICAgaWYgbGVuKGV4Y2luZm8udHJhY2ViYWNrKSA+IDI6CiAgICAgICAgICAgICAgICAgICAgIGZv
ciBlbnRyeSBpbiBleGNpbmZvLnRyYWNlYmFja1sxOi0xXToKICAgICAgICAgICAgICAgICAgICAg
ICAgIGVudHJ5LnNldF9yZXByX3N0eWxlKCJzaG9ydCIpCiAKLSAgICBkZWYgX3JlcHJfZmFpbHVy
ZV9weShzZWxmLCBleGNpbmZvLCBzdHlsZT0ibG9uZyIpOgotICAgICAgICBpZiBleGNpbmZvLmVy
cmlzaW5zdGFuY2UoZmFpbC5FeGNlcHRpb24pOgotICAgICAgICAgICAgaWYgbm90IGV4Y2luZm8u
dmFsdWUucHl0cmFjZToKLSAgICAgICAgICAgICAgICByZXR1cm4gcHkuX2J1aWx0aW4uX3RvdGV4
dChleGNpbmZvLnZhbHVlKQotICAgICAgICByZXR1cm4gc3VwZXIoRnVuY3Rpb25NaXhpbiwgc2Vs
ZikuX3JlcHJfZmFpbHVyZV9weShleGNpbmZvLCBzdHlsZT1zdHlsZSkKLQogICAgIGRlZiByZXBy
X2ZhaWx1cmUoc2VsZiwgZXhjaW5mbywgb3V0ZXJyPU5vbmUpOgogICAgICAgICBhc3NlcnQgb3V0
ZXJyIGlzIE5vbmUsICJYWFggb3V0ZXJyIHVzYWdlIGlzIGRlcHJlY2F0ZWQiCi0gICAgICAgIHN0
eWxlID0gc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUKKyAgICAgICAgc3R5bGUgPSBzZWxmLmNv
bmZpZy5nZXRvcHRpb24oInRic3R5bGUiLCAiYXV0byIpCiAgICAgICAgIGlmIHN0eWxlID09ICJh
dXRvIjoKICAgICAgICAgICAgIHN0eWxlID0gImxvbmciCiAgICAgICAgIHJldHVybiBzZWxmLl9y
ZXByX2ZhaWx1cmVfcHkoZXhjaW5mbywgc3R5bGU9c3R5bGUpCiAKIAotY2xhc3MgR2VuZXJhdG9y
KEZ1bmN0aW9uTWl4aW4sIFB5Q29sbGVjdG9yKToKLQotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgot
ICAgICAgICAjIHRlc3QgZ2VuZXJhdG9ycyBhcmUgc2VlbiBhcyBjb2xsZWN0b3JzIGJ1dCB0aGV5
IGFsc28KLSAgICAgICAgIyBpbnZva2Ugc2V0dXAvdGVhcmRvd24gb24gcG9wdWxhciByZXF1ZXN0
Ci0gICAgICAgICMgKGluZHVjZWQgYnkgdGhlIGNvbW1vbiAidGVzdF8qIiBuYW1pbmcgc2hhcmVk
IHdpdGggbm9ybWFsIHRlc3RzKQotICAgICAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0
ZWQKLQotICAgICAgICBzZWxmLnNlc3Npb24uX3NldHVwc3RhdGUucHJlcGFyZShzZWxmKQotICAg
ICAgICAjIHNlZSBGdW5jdGlvbk1peGluLnNldHVwIGFuZCB0ZXN0X3NldHVwc3RhdGVfaXNfcHJl
c2VydmVkXzEzNAotICAgICAgICBzZWxmLl9wcmVzZXJ2ZWRwYXJlbnQgPSBzZWxmLnBhcmVudC5v
YmoKLSAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgc2VlbiA9IHt9Ci0gICAgICAgIGZvciBp
LCB4IGluIGVudW1lcmF0ZShzZWxmLm9iaigpKToKLSAgICAgICAgICAgIG5hbWUsIGNhbGwsIGFy
Z3MgPSBzZWxmLmdldGNhbGxhcmdzKHgpCi0gICAgICAgICAgICBpZiBub3QgY2FsbGFibGUoY2Fs
bCk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCIlciB5aWVsZGVkIG5vbiBjYWxs
YWJsZSB0ZXN0ICVyIiAlIChzZWxmLm9iaiwgY2FsbCkpCi0gICAgICAgICAgICBpZiBuYW1lIGlz
IE5vbmU6Ci0gICAgICAgICAgICAgICAgbmFtZSA9ICJbJWRdIiAlIGkKLSAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgbmFtZSA9ICJbJyVzJ10iICUgbmFtZQotICAgICAgICAgICAg
aWYgbmFtZSBpbiBzZWVuOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAg
ICAgICAgICAgICAgICAgICIlciBnZW5lcmF0ZWQgdGVzdHMgd2l0aCBub24tdW5pcXVlIG5hbWUg
JXIiICUgKHNlbGYsIG5hbWUpCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgc2Vlbltu
YW1lXSA9IFRydWUKLSAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoc2VsZi5GdW5jdGlvbihuYW1l
LCBzZWxmLCBhcmdzPWFyZ3MsIGNhbGxvYmo9Y2FsbCkpCi0gICAgICAgIHNlbGYud2FybigiQzEi
LCBkZXByZWNhdGVkLllJRUxEX1RFU1RTKQotICAgICAgICByZXR1cm4gdmFsdWVzCi0KLSAgICBk
ZWYgZ2V0Y2FsbGFyZ3Moc2VsZiwgb2JqKToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2Jq
LCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAgICAgIG9iaiA9IChvYmosKQotICAgICAgICAjIGV4
cGxpY2l0IG5hbWluZwotICAgICAgICBpZiBpc2luc3RhbmNlKG9ialswXSwgc2l4LnN0cmluZ190
eXBlcyk6Ci0gICAgICAgICAgICBuYW1lID0gb2JqWzBdCi0gICAgICAgICAgICBvYmogPSBvYmpb
MTpdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBuYW1lID0gTm9uZQotICAgICAgICBjYWxs
LCBhcmdzID0gb2JqWzBdLCBvYmpbMTpdCi0gICAgICAgIHJldHVybiBuYW1lLCBjYWxsLCBhcmdz
Ci0KLQogZGVmIGhhc2luaXQob2JqKToKICAgICBpbml0ID0gZ2V0YXR0cihvYmosICJfX2luaXRf
XyIsIE5vbmUpCiAgICAgaWYgaW5pdDoKQEAgLTcyOCwyMCArODU5LDE4IEBAIGRlZiBoYXNuZXco
b2JqKToKIAogCiBjbGFzcyBDYWxsU3BlYzIob2JqZWN0KToKLQogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBtZXRhZnVuYyk6CiAgICAgICAgIHNlbGYubWV0YWZ1bmMgPSBtZXRhZnVuYwogICAgICAg
ICBzZWxmLmZ1bmNhcmdzID0ge30KICAgICAgICAgc2VsZi5faWRsaXN0ID0gW10KICAgICAgICAg
c2VsZi5wYXJhbXMgPSB7fQogICAgICAgICBzZWxmLl9nbG9iYWxpZCA9IE5PVFNFVAotICAgICAg
ICBzZWxmLl9nbG9iYWxpZF9hcmdzID0gc2V0KCkKICAgICAgICAgc2VsZi5fZ2xvYmFscGFyYW0g
PSBOT1RTRVQKICAgICAgICAgc2VsZi5fYXJnMnNjb3BlbnVtID0ge30gICMgdXNlZCBmb3Igc29y
dGluZyBwYXJhbWV0cml6ZWQgcmVzb3VyY2VzCiAgICAgICAgIHNlbGYubWFya3MgPSBbXQogICAg
ICAgICBzZWxmLmluZGljZXMgPSB7fQogCi0gICAgZGVmIGNvcHkoc2VsZiwgbWV0YWZ1bmMpOgor
ICAgIGRlZiBjb3B5KHNlbGYpOgogICAgICAgICBjcyA9IENhbGxTcGVjMihzZWxmLm1ldGFmdW5j
KQogICAgICAgICBjcy5mdW5jYXJncy51cGRhdGUoc2VsZi5mdW5jYXJncykKICAgICAgICAgY3Mu
cGFyYW1zLnVwZGF0ZShzZWxmLnBhcmFtcykKQEAgLTc1MCw3ICs4NzksNiBAQCBjbGFzcyBDYWxs
U3BlYzIob2JqZWN0KToKICAgICAgICAgY3MuX2FyZzJzY29wZW51bS51cGRhdGUoc2VsZi5fYXJn
MnNjb3BlbnVtKQogICAgICAgICBjcy5faWRsaXN0ID0gbGlzdChzZWxmLl9pZGxpc3QpCiAgICAg
ICAgIGNzLl9nbG9iYWxpZCA9IHNlbGYuX2dsb2JhbGlkCi0gICAgICAgIGNzLl9nbG9iYWxpZF9h
cmdzID0gc2VsZi5fZ2xvYmFsaWRfYXJncwogICAgICAgICBjcy5fZ2xvYmFscGFyYW0gPSBzZWxm
Ll9nbG9iYWxwYXJhbQogICAgICAgICByZXR1cm4gY3MKIApAQCAtNzc4LDcgKzkwNiw3IEBAIGNs
YXNzIENhbGxTcGVjMihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5pbmRpY2VzW2FyZ10gPSBw
YXJhbV9pbmRleAogICAgICAgICAgICAgc2VsZi5fYXJnMnNjb3BlbnVtW2FyZ10gPSBzY29wZW51
bQogICAgICAgICBzZWxmLl9pZGxpc3QuYXBwZW5kKGlkKQotICAgICAgICBzZWxmLm1hcmtzLmV4
dGVuZChtYXJrcykKKyAgICAgICAgc2VsZi5tYXJrcy5leHRlbmQobm9ybWFsaXplX21hcmtfbGlz
dChtYXJrcykpCiAKICAgICBkZWYgc2V0YWxsKHNlbGYsIGZ1bmNhcmdzLCBpZCwgcGFyYW0pOgog
ICAgICAgICBmb3IgeCBpbiBmdW5jYXJnczoKQEAgLTgwMiwxMiArOTMwLDEzIEBAIGNsYXNzIE1l
dGFmdW5jKGZpeHR1cmVzLkZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgogICAgICIiIgogCiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGRlZmluaXRpb24sIGZpeHR1cmVpbmZvLCBjb25maWcsIGNscz1O
b25lLCBtb2R1bGU9Tm9uZSk6Ci0gICAgICAgICM6IGFjY2VzcyB0byB0aGUgOmNsYXNzOmBfcHl0
ZXN0LmNvbmZpZy5Db25maWdgIG9iamVjdCBmb3IgdGhlIHRlc3Qgc2Vzc2lvbgogICAgICAgICBh
c3NlcnQgKAogICAgICAgICAgICAgaXNpbnN0YW5jZShkZWZpbml0aW9uLCBGdW5jdGlvbkRlZmlu
aXRpb24pCiAgICAgICAgICAgICBvciB0eXBlKGRlZmluaXRpb24pLl9fbmFtZV9fID09ICJEZWZp
bml0aW9uTW9jayIKICAgICAgICAgKQogICAgICAgICBzZWxmLmRlZmluaXRpb24gPSBkZWZpbml0
aW9uCisKKyAgICAgICAgIzogYWNjZXNzIHRvIHRoZSA6Y2xhc3M6YF9weXRlc3QuY29uZmlnLkNv
bmZpZ2Agb2JqZWN0IGZvciB0aGUgdGVzdCBzZXNzaW9uCiAgICAgICAgIHNlbGYuY29uZmlnID0g
Y29uZmlnCiAKICAgICAgICAgIzogdGhlIG1vZHVsZSBvYmplY3Qgd2hlcmUgdGhlIHRlc3QgZnVu
Y3Rpb24gaXMgZGVmaW5lZCBpbi4KQEAgLTg2NiwxMjkgKzk5NSwxMzcgQEAgY2xhc3MgTWV0YWZ1
bmMoZml4dHVyZXMuRnVuY2FyZ25hbWVzQ29tcGF0QXR0cik6CiAgICAgICAgICIiIgogICAgICAg
ICBmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IHNjb3BlMmluZGV4CiAgICAgICAgIGZyb20g
X3B5dGVzdC5tYXJrIGltcG9ydCBQYXJhbWV0ZXJTZXQKLSAgICAgICAgZnJvbSBweS5pbyBpbXBv
cnQgc2FmZXJlcHIKIAogICAgICAgICBhcmduYW1lcywgcGFyYW1ldGVycyA9IFBhcmFtZXRlclNl
dC5fZm9yX3BhcmFtZXRyaXplKAotICAgICAgICAgICAgYXJnbmFtZXMsIGFyZ3ZhbHVlcywgc2Vs
Zi5mdW5jdGlvbiwgc2VsZi5jb25maWcKKyAgICAgICAgICAgIGFyZ25hbWVzLAorICAgICAgICAg
ICAgYXJndmFsdWVzLAorICAgICAgICAgICAgc2VsZi5mdW5jdGlvbiwKKyAgICAgICAgICAgIHNl
bGYuY29uZmlnLAorICAgICAgICAgICAgZnVuY3Rpb25fZGVmaW5pdGlvbj1zZWxmLmRlZmluaXRp
b24sCiAgICAgICAgICkKICAgICAgICAgZGVsIGFyZ3ZhbHVlcwotICAgICAgICBkZWZhdWx0X2Fy
Z19uYW1lcyA9IHNldChnZXRfZGVmYXVsdF9hcmdfbmFtZXMoc2VsZi5mdW5jdGlvbikpCiAKICAg
ICAgICAgaWYgc2NvcGUgaXMgTm9uZToKICAgICAgICAgICAgIHNjb3BlID0gX2ZpbmRfcGFyYW1l
dHJpemVkX3Njb3BlKGFyZ25hbWVzLCBzZWxmLl9hcmcyZml4dHVyZWRlZnMsIGluZGlyZWN0KQog
Ci0gICAgICAgIHNjb3BlbnVtID0gc2NvcGUyaW5kZXgoc2NvcGUsIGRlc2NyPSJjYWxsIHRvIHt9
Ii5mb3JtYXQoc2VsZi5wYXJhbWV0cml6ZSkpCi0gICAgICAgIHZhbHR5cGVzID0ge30KLSAgICAg
ICAgZm9yIGFyZyBpbiBhcmduYW1lczoKLSAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gc2VsZi5m
aXh0dXJlbmFtZXM6Ci0gICAgICAgICAgICAgICAgaWYgYXJnIGluIGRlZmF1bHRfYXJnX25hbWVz
OgotICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAg
ICAgICAgICAgIiVyIGFscmVhZHkgdGFrZXMgYW4gYXJndW1lbnQgJXIgd2l0aCBhIGRlZmF1bHQg
dmFsdWUiCi0gICAgICAgICAgICAgICAgICAgICAgICAlIChzZWxmLmZ1bmN0aW9uLCBhcmcpCi0g
ICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKGluZGlyZWN0LCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG5hbWUgPSAiZml4dHVyZSIgaWYgYXJnIGluIGluZGlyZWN0IGVsc2Ug
ImFyZ3VtZW50IgotICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZSA9ICJmaXh0dXJlIiBpZiBpbmRpcmVjdCBlbHNlICJhcmd1bWVudCIKLSAgICAg
ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJXIgdXNlcyBubyAlcyAlciIgJSAoc2Vs
Zi5mdW5jdGlvbiwgbmFtZSwgYXJnKSkKKyAgICAgICAgc2VsZi5fdmFsaWRhdGVfaWZfdXNpbmdf
YXJnX25hbWVzKGFyZ25hbWVzLCBpbmRpcmVjdCkKIAotICAgICAgICBpZiBpbmRpcmVjdCBpcyBU
cnVlOgotICAgICAgICAgICAgdmFsdHlwZXMgPSBkaWN0LmZyb21rZXlzKGFyZ25hbWVzLCAicGFy
YW1zIikKLSAgICAgICAgZWxpZiBpbmRpcmVjdCBpcyBGYWxzZToKLSAgICAgICAgICAgIHZhbHR5
cGVzID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywgImZ1bmNhcmdzIikKLSAgICAgICAgZWxpZiBp
c2luc3RhbmNlKGluZGlyZWN0LCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAgICAgIHZhbHR5cGVz
ID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywgImZ1bmNhcmdzIikKLSAgICAgICAgICAgIGZvciBh
cmcgaW4gaW5kaXJlY3Q6Ci0gICAgICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBhcmduYW1lczoK
LSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJpbmRpcmVjdCBnaXZlbiB0byAlcjogZml4dHVyZSAlciBkb2Vzbid0IGV4aXN0Igot
ICAgICAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5mdW5jdGlvbiwgYXJnKQotICAgICAgICAg
ICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgdmFsdHlwZXNbYXJnXSA9ICJwYXJhbXMiCi0g
ICAgICAgIGlkZm4gPSBOb25lCi0gICAgICAgIGlmIGNhbGxhYmxlKGlkcyk6Ci0gICAgICAgICAg
ICBpZGZuID0gaWRzCi0gICAgICAgICAgICBpZHMgPSBOb25lCi0gICAgICAgIGlmIGlkczoKLSAg
ICAgICAgICAgIGlmIGxlbihpZHMpICE9IGxlbihwYXJhbWV0ZXJzKToKLSAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAiJWQgdGVzdHMgc3BlY2lm
aWVkIHdpdGggJWQgaWRzIiAlIChsZW4ocGFyYW1ldGVycyksIGxlbihpZHMpKQotICAgICAgICAg
ICAgICAgICkKLSAgICAgICAgICAgIGZvciBpZF92YWx1ZSBpbiBpZHM6Ci0gICAgICAgICAgICAg
ICAgaWYgaWRfdmFsdWUgaXMgbm90IE5vbmUgYW5kIG5vdCBpc2luc3RhbmNlKGlkX3ZhbHVlLCBz
aXguc3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gImlkcyBtdXN0IGJl
IGxpc3Qgb2Ygc3RyaW5ncywgZm91bmQ6ICVzICh0eXBlOiAlcykiCi0gICAgICAgICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICBtc2cgJSAoc2Fm
ZXJlcHIoaWRfdmFsdWUpLCB0eXBlKGlkX3ZhbHVlKS5fX25hbWVfXykKLSAgICAgICAgICAgICAg
ICAgICAgKQotICAgICAgICBpZHMgPSBpZG1ha2VyKGFyZ25hbWVzLCBwYXJhbWV0ZXJzLCBpZGZu
LCBpZHMsIHNlbGYuY29uZmlnKQorICAgICAgICBhcmdfdmFsdWVzX3R5cGVzID0gc2VsZi5fcmVz
b2x2ZV9hcmdfdmFsdWVfdHlwZXMoYXJnbmFtZXMsIGluZGlyZWN0KQorCisgICAgICAgIGlkcyA9
IHNlbGYuX3Jlc29sdmVfYXJnX2lkcyhhcmduYW1lcywgaWRzLCBwYXJhbWV0ZXJzLCBpdGVtPXNl
bGYuZGVmaW5pdGlvbikKKworICAgICAgICBzY29wZW51bSA9IHNjb3BlMmluZGV4KAorICAgICAg
ICAgICAgc2NvcGUsIGRlc2NyPSJwYXJhbWV0cml6ZSgpIGNhbGwgaW4ge30iLmZvcm1hdChzZWxm
LmZ1bmN0aW9uLl9fbmFtZV9fKQorICAgICAgICApCisKKyAgICAgICAgIyBjcmVhdGUgdGhlIG5l
dyBjYWxsczogaWYgd2UgYXJlIHBhcmFtZXRyaXplKCkgbXVsdGlwbGUgdGltZXMgKGJ5IGFwcGx5
aW5nIHRoZSBkZWNvcmF0b3IKKyAgICAgICAgIyBtb3JlIHRoYW4gb25jZSkgdGhlbiB3ZSBhY2N1
bXVsYXRlIHRob3NlIGNhbGxzIGdlbmVyYXRpbmcgdGhlIGNhcnRlc2lhbiBwcm9kdWN0CisgICAg
ICAgICMgb2YgYWxsIGNhbGxzCiAgICAgICAgIG5ld2NhbGxzID0gW10KICAgICAgICAgZm9yIGNh
bGxzcGVjIGluIHNlbGYuX2NhbGxzIG9yIFtDYWxsU3BlYzIoc2VsZildOgotICAgICAgICAgICAg
ZWxlbWVudHMgPSB6aXAoaWRzLCBwYXJhbWV0ZXJzLCBjb3VudCgpKQotICAgICAgICAgICAgZm9y
IGFfaWQsIHBhcmFtLCBwYXJhbV9pbmRleCBpbiBlbGVtZW50czoKLSAgICAgICAgICAgICAgICBp
ZiBsZW4ocGFyYW0udmFsdWVzKSAhPSBsZW4oYXJnbmFtZXMpOgotICAgICAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ0luICJwYXJhbWV0
cml6ZSIgdGhlIG51bWJlciBvZiB2YWx1ZXMgKHt9KSBtdXN0IGJlICcKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJlcXVhbCB0byB0aGUgbnVtYmVyIG9mIG5hbWVzICh7fSkiLmZvcm1hdCgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbS52YWx1ZXMsIGFyZ25hbWVzCi0gICAgICAg
ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAg
ICBuZXdjYWxsc3BlYyA9IGNhbGxzcGVjLmNvcHkoc2VsZikKKyAgICAgICAgICAgIGZvciBwYXJh
bV9pbmRleCwgKHBhcmFtX2lkLCBwYXJhbV9zZXQpIGluIGVudW1lcmF0ZSh6aXAoaWRzLCBwYXJh
bWV0ZXJzKSk6CisgICAgICAgICAgICAgICAgbmV3Y2FsbHNwZWMgPSBjYWxsc3BlYy5jb3B5KCkK
ICAgICAgICAgICAgICAgICBuZXdjYWxsc3BlYy5zZXRtdWx0aTIoCi0gICAgICAgICAgICAgICAg
ICAgIHZhbHR5cGVzLAorICAgICAgICAgICAgICAgICAgICBhcmdfdmFsdWVzX3R5cGVzLAogICAg
ICAgICAgICAgICAgICAgICBhcmduYW1lcywKLSAgICAgICAgICAgICAgICAgICAgcGFyYW0udmFs
dWVzLAotICAgICAgICAgICAgICAgICAgICBhX2lkLAotICAgICAgICAgICAgICAgICAgICBwYXJh
bS5tYXJrcywKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1fc2V0LnZhbHVlcywKKyAgICAgICAg
ICAgICAgICAgICAgcGFyYW1faWQsCisgICAgICAgICAgICAgICAgICAgIHBhcmFtX3NldC5tYXJr
cywKICAgICAgICAgICAgICAgICAgICAgc2NvcGVudW0sCiAgICAgICAgICAgICAgICAgICAgIHBh
cmFtX2luZGV4LAogICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICBuZXdjYWxscy5h
cHBlbmQobmV3Y2FsbHNwZWMpCiAgICAgICAgIHNlbGYuX2NhbGxzID0gbmV3Y2FsbHMKIAotICAg
IGRlZiBhZGRjYWxsKHNlbGYsIGZ1bmNhcmdzPU5vbmUsIGlkPU5PVFNFVCwgcGFyYW09Tk9UU0VU
KToKLSAgICAgICAgIiIiIEFkZCBhIG5ldyBjYWxsIHRvIHRoZSB1bmRlcmx5aW5nIHRlc3QgZnVu
Y3Rpb24gZHVyaW5nIHRoZSBjb2xsZWN0aW9uIHBoYXNlIG9mIGEgdGVzdCBydW4uCi0KLSAgICAg
ICAgLi4gZGVwcmVjYXRlZDo6IDMuMworICAgIGRlZiBfcmVzb2x2ZV9hcmdfaWRzKHNlbGYsIGFy
Z25hbWVzLCBpZHMsIHBhcmFtZXRlcnMsIGl0ZW0pOgorICAgICAgICAiIiJSZXNvbHZlcyB0aGUg
YWN0dWFsIGlkcyBmb3IgdGhlIGdpdmVuIGFyZ25hbWVzLCBiYXNlZCBvbiB0aGUgYGBpZHNgYCBw
YXJhbWV0ZXIgZ2l2ZW4KKyAgICAgICAgdG8gYGBwYXJhbWV0cml6ZWBgLgogCi0gICAgICAgICAg
ICBVc2UgOm1ldGg6YHBhcmFtZXRyaXplYCBpbnN0ZWFkLgotCi0gICAgICAgIE5vdGUgdGhhdCBy
ZXF1ZXN0LmFkZGNhbGwoKSBpcyBjYWxsZWQgZHVyaW5nIHRoZSB0ZXN0IGNvbGxlY3Rpb24gcGhh
c2UgcHJpb3IgYW5kCi0gICAgICAgIGluZGVwZW5kZW50bHkgdG8gYWN0dWFsIHRlc3QgZXhlY3V0
aW9uLiAgWW91IHNob3VsZCBvbmx5IHVzZSBhZGRjYWxsKCkKLSAgICAgICAgaWYgeW91IG5lZWQg
dG8gc3BlY2lmeSBtdWx0aXBsZSBhcmd1bWVudHMgb2YgYSB0ZXN0IGZ1bmN0aW9uLgotCi0gICAg
ICAgIDphcmcgZnVuY2FyZ3M6IGFyZ3VtZW50IGtleXdvcmQgZGljdGlvbmFyeSB1c2VkIHdoZW4g
aW52b2tpbmcKLSAgICAgICAgICAgIHRoZSB0ZXN0IGZ1bmN0aW9uLgorICAgICAgICA6cGFyYW0g
TGlzdFtzdHJdIGFyZ25hbWVzOiBsaXN0IG9mIGFyZ3VtZW50IG5hbWVzIHBhc3NlZCB0byBgYHBh
cmFtZXRyaXplKClgYC4KKyAgICAgICAgOnBhcmFtIGlkczogdGhlIGlkcyBwYXJhbWV0ZXIgb2Yg
dGhlIHBhcmFtZXRyaXplZCBjYWxsIChzZWUgZG9jcykuCisgICAgICAgIDpwYXJhbSBMaXN0W1Bh
cmFtZXRlclNldF0gcGFyYW1ldGVyczogdGhlIGxpc3Qgb2YgcGFyYW1ldGVyIHZhbHVlcywgc2Ft
ZSBzaXplIGFzIGBgYXJnbmFtZXNgYC4KKyAgICAgICAgOnBhcmFtIEl0ZW0gaXRlbTogdGhlIGl0
ZW0gdGhhdCBnZW5lcmF0ZWQgdGhpcyBwYXJhbWV0cml6ZWQgY2FsbC4KKyAgICAgICAgOnJ0eXBl
OiBMaXN0W3N0cl0KKyAgICAgICAgOnJldHVybjogdGhlIGxpc3Qgb2YgaWRzIGZvciBlYWNoIGFy
Z25hbWUgZ2l2ZW4KKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5faW8uc2FmZXJl
cHIgaW1wb3J0IHNhZmVyZXByCiAKLSAgICAgICAgOmFyZyBpZDogdXNlZCBmb3IgcmVwb3J0aW5n
IGFuZCBpZGVudGlmaWNhdGlvbiBwdXJwb3Nlcy4gIElmIHlvdQotICAgICAgICAgICAgZG9uJ3Qg
c3VwcGx5IGFuIGBpZGAgYW4gYXV0b21hdGljIHVuaXF1ZSBpZCB3aWxsIGJlIGdlbmVyYXRlZC4K
KyAgICAgICAgaWRmbiA9IE5vbmUKKyAgICAgICAgaWYgY2FsbGFibGUoaWRzKToKKyAgICAgICAg
ICAgIGlkZm4gPSBpZHMKKyAgICAgICAgICAgIGlkcyA9IE5vbmUKKyAgICAgICAgaWYgaWRzOgor
ICAgICAgICAgICAgZnVuY19uYW1lID0gc2VsZi5mdW5jdGlvbi5fX25hbWVfXworICAgICAgICAg
ICAgaWYgbGVuKGlkcykgIT0gbGVuKHBhcmFtZXRlcnMpOgorICAgICAgICAgICAgICAgIG1zZyA9
ICJJbiB7fToge30gcGFyYW1ldGVyIHNldHMgc3BlY2lmaWVkLCB3aXRoIGRpZmZlcmVudCBudW1i
ZXIgb2YgaWRzOiB7fSIKKyAgICAgICAgICAgICAgICBmYWlsKG1zZy5mb3JtYXQoZnVuY19uYW1l
LCBsZW4ocGFyYW1ldGVycyksIGxlbihpZHMpKSwgcHl0cmFjZT1GYWxzZSkKKyAgICAgICAgICAg
IGZvciBpZF92YWx1ZSBpbiBpZHM6CisgICAgICAgICAgICAgICAgaWYgaWRfdmFsdWUgaXMgbm90
IE5vbmUgYW5kIG5vdCBpc2luc3RhbmNlKGlkX3ZhbHVlLCBzaXguc3RyaW5nX3R5cGVzKToKKyAg
ICAgICAgICAgICAgICAgICAgbXNnID0gIkluIHt9OiBpZHMgbXVzdCBiZSBsaXN0IG9mIHN0cmlu
Z3MsIGZvdW5kOiB7fSAodHlwZTogeyFyfSkiCisgICAgICAgICAgICAgICAgICAgIGZhaWwoCisg
ICAgICAgICAgICAgICAgICAgICAgICBtc2cuZm9ybWF0KGZ1bmNfbmFtZSwgc2FmZXJlcHIoaWRf
dmFsdWUpLCB0eXBlKGlkX3ZhbHVlKSksCisgICAgICAgICAgICAgICAgICAgICAgICBweXRyYWNl
PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIGlkcyA9IGlkbWFrZXIoYXJn
bmFtZXMsIHBhcmFtZXRlcnMsIGlkZm4sIGlkcywgc2VsZi5jb25maWcsIGl0ZW09aXRlbSkKKyAg
ICAgICAgcmV0dXJuIGlkcworCisgICAgZGVmIF9yZXNvbHZlX2FyZ192YWx1ZV90eXBlcyhzZWxm
LCBhcmduYW1lcywgaW5kaXJlY3QpOgorICAgICAgICAiIiJSZXNvbHZlcyBpZiBlYWNoIHBhcmFt
ZXRyaXplZCBhcmd1bWVudCBtdXN0IGJlIGNvbnNpZGVyZWQgYSBwYXJhbWV0ZXIgdG8gYSBmaXh0
dXJlIG9yIGEgImZ1bmNhcmciCisgICAgICAgIHRvIHRoZSBmdW5jdGlvbiwgYmFzZWQgb24gdGhl
IGBgaW5kaXJlY3RgYCBwYXJhbWV0ZXIgb2YgdGhlIHBhcmFtZXRyaXplZCgpIGNhbGwuCisKKyAg
ICAgICAgOnBhcmFtIExpc3Rbc3RyXSBhcmduYW1lczogbGlzdCBvZiBhcmd1bWVudCBuYW1lcyBw
YXNzZWQgdG8gYGBwYXJhbWV0cml6ZSgpYGAuCisgICAgICAgIDpwYXJhbSBpbmRpcmVjdDogc2Ft
ZSBgYGluZGlyZWN0YGAgcGFyYW1ldGVyIG9mIGBgcGFyYW1ldHJpemUoKWBgLgorICAgICAgICA6
cnR5cGU6IERpY3Rbc3RyLCBzdHJdCisgICAgICAgICAgICBBIGRpY3QgbWFwcGluZyBlYWNoIGFy
ZyBuYW1lIHRvIGVpdGhlcjoKKyAgICAgICAgICAgICogInBhcmFtcyIgaWYgdGhlIGFyZ25hbWUg
c2hvdWxkIGJlIHRoZSBwYXJhbWV0ZXIgb2YgYSBmaXh0dXJlIG9mIHRoZSBzYW1lIG5hbWUuCisg
ICAgICAgICAgICAqICJmdW5jYXJncyIgaWYgdGhlIGFyZ25hbWUgc2hvdWxkIGJlIGEgcGFyYW1l
dGVyIHRvIHRoZSBwYXJhbWV0cml6ZWQgdGVzdCBmdW5jdGlvbi4KKyAgICAgICAgIiIiCisgICAg
ICAgIHZhbHR5cGVzID0ge30KKyAgICAgICAgaWYgaW5kaXJlY3QgaXMgVHJ1ZToKKyAgICAgICAg
ICAgIHZhbHR5cGVzID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywgInBhcmFtcyIpCisgICAgICAg
IGVsaWYgaW5kaXJlY3QgaXMgRmFsc2U6CisgICAgICAgICAgICB2YWx0eXBlcyA9IGRpY3QuZnJv
bWtleXMoYXJnbmFtZXMsICJmdW5jYXJncyIpCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShpbmRp
cmVjdCwgKHR1cGxlLCBsaXN0KSk6CisgICAgICAgICAgICB2YWx0eXBlcyA9IGRpY3QuZnJvbWtl
eXMoYXJnbmFtZXMsICJmdW5jYXJncyIpCisgICAgICAgICAgICBmb3IgYXJnIGluIGluZGlyZWN0
OgorICAgICAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gYXJnbmFtZXM6CisgICAgICAgICAgICAg
ICAgICAgIGZhaWwoCisgICAgICAgICAgICAgICAgICAgICAgICAiSW4ge306IGluZGlyZWN0IGZp
eHR1cmUgJ3t9JyBkb2Vzbid0IGV4aXN0Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5mdW5jdGlvbi5fX25hbWVfXywgYXJnCisgICAgICAgICAgICAgICAgICAgICAg
ICApLAorICAgICAgICAgICAgICAgICAgICAgICAgcHl0cmFjZT1GYWxzZSwKKyAgICAgICAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgICAgIHZhbHR5cGVzW2FyZ10gPSAicGFyYW1zIgorICAg
ICAgICByZXR1cm4gdmFsdHlwZXMKIAotICAgICAgICA6YXJnIHBhcmFtOiBhIHBhcmFtZXRlciB3
aGljaCB3aWxsIGJlIGV4cG9zZWQgdG8gYSBsYXRlciBmaXh0dXJlIGZ1bmN0aW9uCi0gICAgICAg
ICAgICBpbnZvY2F0aW9uIHRocm91Z2ggdGhlIGBgcmVxdWVzdC5wYXJhbWBgIGF0dHJpYnV0ZS4K
KyAgICBkZWYgX3ZhbGlkYXRlX2lmX3VzaW5nX2FyZ19uYW1lcyhzZWxmLCBhcmduYW1lcywgaW5k
aXJlY3QpOgogICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5jb25maWc6Ci0gICAgICAgICAg
ICBzZWxmLmNvbmZpZy53YXJuKAotICAgICAgICAgICAgICAgICJDMSIsIG1lc3NhZ2U9ZGVwcmVj
YXRlZC5NRVRBRlVOQ19BRERfQ0FMTCwgZnNsb2NhdGlvbj1Ob25lCi0gICAgICAgICAgICApCi0g
ICAgICAgIGFzc2VydCBmdW5jYXJncyBpcyBOb25lIG9yIGlzaW5zdGFuY2UoZnVuY2FyZ3MsIGRp
Y3QpCi0gICAgICAgIGlmIGZ1bmNhcmdzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZm9yIG5h
bWUgaW4gZnVuY2FyZ3M6Ci0gICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5maXh0
dXJlbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgIGZhaWwoImZ1bmNhcmcgJXIgbm90IHVzZWQg
aW4gdGhpcyBmdW5jdGlvbi4iICUgbmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZ1
bmNhcmdzID0ge30KLSAgICAgICAgaWYgaWQgaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoImlkPU5vbmUgbm90IGFsbG93ZWQiKQotICAgICAgICBpZiBpZCBpcyBOT1RTRVQ6
Ci0gICAgICAgICAgICBpZCA9IGxlbihzZWxmLl9jYWxscykKLSAgICAgICAgaWQgPSBzdHIoaWQp
Ci0gICAgICAgIGlmIGlkIGluIHNlbGYuX2lkczoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoImR1cGxpY2F0ZSBpZCAlciIgJSBpZCkKLSAgICAgICAgc2VsZi5faWRzLmFkZChpZCkKKyAg
ICAgICAgQ2hlY2sgaWYgYWxsIGFyZ25hbWVzIGFyZSBiZWluZyB1c2VkLCBieSBkZWZhdWx0IHZh
bHVlcywgb3IgZGlyZWN0bHkvaW5kaXJlY3RseS4KIAotICAgICAgICBjcyA9IENhbGxTcGVjMihz
ZWxmKQotICAgICAgICBjcy5zZXRhbGwoZnVuY2FyZ3MsIGlkLCBwYXJhbSkKLSAgICAgICAgc2Vs
Zi5fY2FsbHMuYXBwZW5kKGNzKQorICAgICAgICA6cGFyYW0gTGlzdFtzdHJdIGFyZ25hbWVzOiBs
aXN0IG9mIGFyZ3VtZW50IG5hbWVzIHBhc3NlZCB0byBgYHBhcmFtZXRyaXplKClgYC4KKyAgICAg
ICAgOnBhcmFtIGluZGlyZWN0OiBzYW1lIGBgaW5kaXJlY3RgYCBwYXJhbWV0ZXIgb2YgYGBwYXJh
bWV0cml6ZSgpYGAuCisgICAgICAgIDpyYWlzZSBWYWx1ZUVycm9yOiBpZiB2YWxpZGF0aW9uIGZh
aWxzLgorICAgICAgICAiIiIKKyAgICAgICAgZGVmYXVsdF9hcmdfbmFtZXMgPSBzZXQoZ2V0X2Rl
ZmF1bHRfYXJnX25hbWVzKHNlbGYuZnVuY3Rpb24pKQorICAgICAgICBmdW5jX25hbWUgPSBzZWxm
LmZ1bmN0aW9uLl9fbmFtZV9fCisgICAgICAgIGZvciBhcmcgaW4gYXJnbmFtZXM6CisgICAgICAg
ICAgICBpZiBhcmcgbm90IGluIHNlbGYuZml4dHVyZW5hbWVzOgorICAgICAgICAgICAgICAgIGlm
IGFyZyBpbiBkZWZhdWx0X2FyZ19uYW1lczoKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJJbiB7fTogZnVuY3Rpb24gYWxyZWFkeSB0YWtlcyBhbiBh
cmd1bWVudCAne30nIHdpdGggYSBkZWZhdWx0IHZhbHVlIi5mb3JtYXQoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuY19uYW1lLCBhcmcKKyAgICAgICAgICAgICAgICAgICAgICAgICks
CisgICAgICAgICAgICAgICAgICAgICAgICBweXRyYWNlPUZhbHNlLAorICAgICAgICAgICAgICAg
ICAgICApCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgaXNp
bnN0YW5jZShpbmRpcmVjdCwgKHR1cGxlLCBsaXN0KSk6CisgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lID0gImZpeHR1cmUiIGlmIGFyZyBpbiBpbmRpcmVjdCBlbHNlICJhcmd1bWVudCIKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAi
Zml4dHVyZSIgaWYgaW5kaXJlY3QgZWxzZSAiYXJndW1lbnQiCisgICAgICAgICAgICAgICAgICAg
IGZhaWwoCisgICAgICAgICAgICAgICAgICAgICAgICAiSW4ge306IGZ1bmN0aW9uIHVzZXMgbm8g
e30gJ3t9JyIuZm9ybWF0KGZ1bmNfbmFtZSwgbmFtZSwgYXJnKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHB5dHJhY2U9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICkKIAogCiBkZWYgX2Zp
bmRfcGFyYW1ldHJpemVkX3Njb3BlKGFyZ25hbWVzLCBhcmcyZml4dHVyZWRlZnMsIGluZGlyZWN0
KToKQEAgLTEwMDMsMTMgKzExNDAsMTggQEAgZGVmIF9maW5kX3BhcmFtZXRyaXplZF9zY29wZShh
cmduYW1lcywgYXJnMmZpeHR1cmVkZWZzLCBpbmRpcmVjdCk6CiAgICAgIiIiCiAgICAgZnJvbSBf
cHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBzY29wZXMKIAotICAgIGluZGlyZWN0X2FzX2xpc3QgPSBp
c2luc3RhbmNlKGluZGlyZWN0LCAobGlzdCwgdHVwbGUpKQotICAgIGFsbF9hcmd1bWVudHNfYXJl
X2ZpeHR1cmVzID0gaW5kaXJlY3QgaXMgVHJ1ZSBvciBpbmRpcmVjdF9hc19saXN0IGFuZCBsZW4o
Ci0gICAgICAgIGluZGlyZWN0Ci0gICAgKSA9PSBhcmduYW1lcworICAgIGlmIGlzaW5zdGFuY2Uo
aW5kaXJlY3QsIChsaXN0LCB0dXBsZSkpOgorICAgICAgICBhbGxfYXJndW1lbnRzX2FyZV9maXh0
dXJlcyA9IGxlbihpbmRpcmVjdCkgPT0gbGVuKGFyZ25hbWVzKQorICAgIGVsc2U6CisgICAgICAg
IGFsbF9hcmd1bWVudHNfYXJlX2ZpeHR1cmVzID0gYm9vbChpbmRpcmVjdCkKKwogICAgIGlmIGFs
bF9hcmd1bWVudHNfYXJlX2ZpeHR1cmVzOgogICAgICAgICBmaXh0dXJlZGVmcyA9IGFyZzJmaXh0
dXJlZGVmcyBvciB7fQotICAgICAgICB1c2VkX3Njb3BlcyA9IFtmaXh0dXJlZGVmWzBdLnNjb3Bl
IGZvciBuYW1lLCBmaXh0dXJlZGVmIGluIGZpeHR1cmVkZWZzLml0ZW1zKCldCisgICAgICAgIHVz
ZWRfc2NvcGVzID0gWworICAgICAgICAgICAgZml4dHVyZWRlZlswXS5zY29wZQorICAgICAgICAg
ICAgZm9yIG5hbWUsIGZpeHR1cmVkZWYgaW4gZml4dHVyZWRlZnMuaXRlbXMoKQorICAgICAgICAg
ICAgaWYgbmFtZSBpbiBhcmduYW1lcworICAgICAgICBdCiAgICAgICAgIGlmIHVzZWRfc2NvcGVz
OgogICAgICAgICAgICAgIyBUYWtlcyB0aGUgbW9zdCBuYXJyb3cgc2NvcGUgZnJvbSB1c2VkIGZp
eHR1cmVzCiAgICAgICAgICAgICBmb3Igc2NvcGUgaW4gcmV2ZXJzZWQoc2NvcGVzKToKQEAgLTEw
MTksMjQgKzExNjEsMzAgQEAgZGVmIF9maW5kX3BhcmFtZXRyaXplZF9zY29wZShhcmduYW1lcywg
YXJnMmZpeHR1cmVkZWZzLCBpbmRpcmVjdCk6CiAgICAgcmV0dXJuICJmdW5jdGlvbiIKIAogCi1k
ZWYgX2lkdmFsKHZhbCwgYXJnbmFtZSwgaWR4LCBpZGZuLCBjb25maWc9Tm9uZSk6CitkZWYgX2Fz
Y2lpX2VzY2FwZWRfYnlfY29uZmlnKHZhbCwgY29uZmlnKToKKyAgICBpZiBjb25maWcgaXMgTm9u
ZToKKyAgICAgICAgZXNjYXBlX29wdGlvbiA9IEZhbHNlCisgICAgZWxzZToKKyAgICAgICAgZXNj
YXBlX29wdGlvbiA9IGNvbmZpZy5nZXRpbmkoCisgICAgICAgICAgICAiZGlzYWJsZV90ZXN0X2lk
X2VzY2FwaW5nX2FuZF9mb3JmZWl0X2FsbF9yaWdodHNfdG9fY29tbXVuaXR5X3N1cHBvcnQiCisg
ICAgICAgICkKKyAgICByZXR1cm4gdmFsIGlmIGVzY2FwZV9vcHRpb24gZWxzZSBhc2NpaV9lc2Nh
cGVkKHZhbCkKKworCitkZWYgX2lkdmFsKHZhbCwgYXJnbmFtZSwgaWR4LCBpZGZuLCBpdGVtLCBj
b25maWcpOgogICAgIGlmIGlkZm46Ci0gICAgICAgIHMgPSBOb25lCiAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHMgPSBpZGZuKHZhbCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAg
ICAgICAgIGdlbmVyYXRlZF9pZCA9IGlkZm4odmFsKQorICAgICAgICAgICAgaWYgZ2VuZXJhdGVk
X2lkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHZhbCA9IGdlbmVyYXRlZF9pZAorICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAjIFNlZSBpc3N1ZSBodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIxNjkKLSAgICAgICAgICAg
IGltcG9ydCB3YXJuaW5ncwotCi0gICAgICAgICAgICBtc2cgPSAiUmFpc2VkIHdoaWxlIHRyeWlu
ZyB0byBkZXRlcm1pbmUgaWQgb2YgcGFyYW1ldGVyICVzIGF0IHBvc2l0aW9uICVkLiIgJSAoCi0g
ICAgICAgICAgICAgICAgYXJnbmFtZSwgaWR4Ci0gICAgICAgICAgICApCi0gICAgICAgICAgICBt
c2cgKz0gIlxuVXBkYXRlIHlvdXIgY29kZSBhcyB0aGlzIHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4g
cHl0ZXN0LTQuMC4iCi0gICAgICAgICAgICB3YXJuaW5ncy53YXJuKG1zZywgRGVwcmVjYXRpb25X
YXJuaW5nKQotICAgICAgICBpZiBzOgotICAgICAgICAgICAgcmV0dXJuIGFzY2lpX2VzY2FwZWQo
cykKLQotICAgIGlmIGNvbmZpZzoKKyAgICAgICAgICAgIG1zZyA9ICJ7fTogZXJyb3IgcmFpc2Vk
IHdoaWxlIHRyeWluZyB0byBkZXRlcm1pbmUgaWQgb2YgcGFyYW1ldGVyICd7fScgYXQgcG9zaXRp
b24ge31cbiIKKyAgICAgICAgICAgIG1zZyA9IG1zZy5mb3JtYXQoaXRlbS5ub2RlaWQsIGFyZ25h
bWUsIGlkeCkKKyAgICAgICAgICAgICMgd2Ugb25seSBhcHBlbmQgdGhlIGV4Y2VwdGlvbiB0eXBl
IGFuZCBtZXNzYWdlIGJlY2F1c2Ugb24gUHl0aG9uIDIgcmVyYWlzZSBkb2VzIG5vdGhpbmcKKyAg
ICAgICAgICAgIG1zZyArPSAiICB7fToge31cbiIuZm9ybWF0KHR5cGUoZSkuX19uYW1lX18sIGUp
CisgICAgICAgICAgICBzaXgucmFpc2VfZnJvbShWYWx1ZUVycm9yKG1zZyksIGUpCisgICAgZWxp
ZiBjb25maWc6CiAgICAgICAgIGhvb2tfaWQgPSBjb25maWcuaG9vay5weXRlc3RfbWFrZV9wYXJh
bWV0cml6ZV9pZCgKICAgICAgICAgICAgIGNvbmZpZz1jb25maWcsIHZhbD12YWwsIGFyZ25hbWU9
YXJnbmFtZQogICAgICAgICApCkBAIC0xMDQ0LDggKzExOTIsOCBAQCBkZWYgX2lkdmFsKHZhbCwg
YXJnbmFtZSwgaWR4LCBpZGZuLCBjb25maWc9Tm9uZSk6CiAgICAgICAgICAgICByZXR1cm4gaG9v
a19pZAogCiAgICAgaWYgaXNpbnN0YW5jZSh2YWwsIFNUUklOR19UWVBFUyk6Ci0gICAgICAgIHJl
dHVybiBhc2NpaV9lc2NhcGVkKHZhbCkKLSAgICBlbGlmIGlzaW5zdGFuY2UodmFsLCAoZmxvYXQs
IGludCwgYm9vbCwgTm9uZVR5cGUpKToKKyAgICAgICAgcmV0dXJuIF9hc2NpaV9lc2NhcGVkX2J5
X2NvbmZpZyh2YWwsIGNvbmZpZykKKyAgICBlbGlmIHZhbCBpcyBOb25lIG9yIGlzaW5zdGFuY2Uo
dmFsLCAoZmxvYXQsIGludCwgYm9vbCkpOgogICAgICAgICByZXR1cm4gc3RyKHZhbCkKICAgICBl
bGlmIGlzaW5zdGFuY2UodmFsLCBSRUdFWF9UWVBFKToKICAgICAgICAgcmV0dXJuIGFzY2lpX2Vz
Y2FwZWQodmFsLnBhdHRlcm4pCkBAIC0xMDU2LDIyICsxMjA0LDIyIEBAIGRlZiBfaWR2YWwodmFs
LCBhcmduYW1lLCBpZHgsIGlkZm4sIGNvbmZpZz1Ob25lKToKICAgICByZXR1cm4gc3RyKGFyZ25h
bWUpICsgc3RyKGlkeCkKIAogCi1kZWYgX2lkdmFsc2V0KGlkeCwgcGFyYW1ldGVyc2V0LCBhcmdu
YW1lcywgaWRmbiwgaWRzLCBjb25maWc9Tm9uZSk6CitkZWYgX2lkdmFsc2V0KGlkeCwgcGFyYW1l
dGVyc2V0LCBhcmduYW1lcywgaWRmbiwgaWRzLCBpdGVtLCBjb25maWcpOgogICAgIGlmIHBhcmFt
ZXRlcnNldC5pZCBpcyBub3QgTm9uZToKICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnNldC5pZAog
ICAgIGlmIGlkcyBpcyBOb25lIG9yIChpZHggPj0gbGVuKGlkcykgb3IgaWRzW2lkeF0gaXMgTm9u
ZSk6CiAgICAgICAgIHRoaXNfaWQgPSBbCi0gICAgICAgICAgICBfaWR2YWwodmFsLCBhcmduYW1l
LCBpZHgsIGlkZm4sIGNvbmZpZykKKyAgICAgICAgICAgIF9pZHZhbCh2YWwsIGFyZ25hbWUsIGlk
eCwgaWRmbiwgaXRlbT1pdGVtLCBjb25maWc9Y29uZmlnKQogICAgICAgICAgICAgZm9yIHZhbCwg
YXJnbmFtZSBpbiB6aXAocGFyYW1ldGVyc2V0LnZhbHVlcywgYXJnbmFtZXMpCiAgICAgICAgIF0K
ICAgICAgICAgcmV0dXJuICItIi5qb2luKHRoaXNfaWQpCiAgICAgZWxzZToKLSAgICAgICAgcmV0
dXJuIGFzY2lpX2VzY2FwZWQoaWRzW2lkeF0pCisgICAgICAgIHJldHVybiBfYXNjaWlfZXNjYXBl
ZF9ieV9jb25maWcoaWRzW2lkeF0sIGNvbmZpZykKIAogCi1kZWYgaWRtYWtlcihhcmduYW1lcywg
cGFyYW1ldGVyc2V0cywgaWRmbj1Ob25lLCBpZHM9Tm9uZSwgY29uZmlnPU5vbmUpOgorZGVmIGlk
bWFrZXIoYXJnbmFtZXMsIHBhcmFtZXRlcnNldHMsIGlkZm49Tm9uZSwgaWRzPU5vbmUsIGNvbmZp
Zz1Ob25lLCBpdGVtPU5vbmUpOgogICAgIGlkcyA9IFsKLSAgICAgICAgX2lkdmFsc2V0KHZhbGlu
ZGV4LCBwYXJhbWV0ZXJzZXQsIGFyZ25hbWVzLCBpZGZuLCBpZHMsIGNvbmZpZykKKyAgICAgICAg
X2lkdmFsc2V0KHZhbGluZGV4LCBwYXJhbWV0ZXJzZXQsIGFyZ25hbWVzLCBpZGZuLCBpZHMsIGNv
bmZpZz1jb25maWcsIGl0ZW09aXRlbSkKICAgICAgICAgZm9yIHZhbGluZGV4LCBwYXJhbWV0ZXJz
ZXQgaW4gZW51bWVyYXRlKHBhcmFtZXRlcnNldHMpCiAgICAgXQogICAgIGlmIGxlbihzZXQoaWRz
KSkgIT0gbGVuKGlkcyk6CkBAIC0xMTkxLDIxICsxMzM5LDIyIEBAIGRlZiBfc2hvd2ZpeHR1cmVz
X21haW4oY29uZmlnLCBzZXNzaW9uKToKICAgICAgICAgICAgICAgICBjdXJyZW50bW9kdWxlID0g
bW9kdWxlCiAgICAgICAgIGlmIHZlcmJvc2UgPD0gMCBhbmQgYXJnbmFtZVswXSA9PSAiXyI6CiAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICB0dy53cml0ZShhcmduYW1lLCBncmVlbj1UcnVl
KQorICAgICAgICBpZiBmaXh0dXJlZGVmLnNjb3BlICE9ICJmdW5jdGlvbiI6CisgICAgICAgICAg
ICB0dy53cml0ZSgiIFslcyBzY29wZV0iICUgZml4dHVyZWRlZi5zY29wZSwgY3lhbj1UcnVlKQog
ICAgICAgICBpZiB2ZXJib3NlID4gMDoKLSAgICAgICAgICAgIGZ1bmNhcmdzcGVjID0gIiVzIC0t
ICVzIiAlIChhcmduYW1lLCBiZXN0cmVsKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnVu
Y2FyZ3NwZWMgPSBhcmduYW1lCi0gICAgICAgIHR3LmxpbmUoZnVuY2FyZ3NwZWMsIGdyZWVuPVRy
dWUpCisgICAgICAgICAgICB0dy53cml0ZSgiIC0tICVzIiAlIGJlc3RyZWwsIHllbGxvdz1UcnVl
KQorICAgICAgICB0dy53cml0ZSgiXG4iKQogICAgICAgICBsb2MgPSBnZXRsb2NhdGlvbihmaXh0
dXJlZGVmLmZ1bmMsIGN1cmRpcikKICAgICAgICAgZG9jID0gZml4dHVyZWRlZi5mdW5jLl9fZG9j
X18gb3IgIiIKICAgICAgICAgaWYgZG9jOgogICAgICAgICAgICAgd3JpdGVfZG9jc3RyaW5nKHR3
LCBkb2MpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB0dy5saW5lKCIgICAgJXM6IG5vIGRv
Y3N0cmluZyBhdmFpbGFibGUiICUgKGxvYywpLCByZWQ9VHJ1ZSkKKyAgICAgICAgdHcubGluZSgp
CiAKIAotZGVmIHdyaXRlX2RvY3N0cmluZyh0dywgZG9jKToKLSAgICBJTkRFTlQgPSAiICAgICIK
K2RlZiB3cml0ZV9kb2NzdHJpbmcodHcsIGRvYywgaW5kZW50PSIgICAgIik6CiAgICAgZG9jID0g
ZG9jLnJzdHJpcCgpCiAgICAgaWYgIlxuIiBpbiBkb2M6CiAgICAgICAgIGZpcnN0bGluZSwgcmVz
dCA9IGRvYy5zcGxpdCgiXG4iLCAxKQpAQCAtMTIxMywxOSArMTM2MiwxOSBAQCBkZWYgd3JpdGVf
ZG9jc3RyaW5nKHR3LCBkb2MpOgogICAgICAgICBmaXJzdGxpbmUsIHJlc3QgPSBkb2MsICIiCiAK
ICAgICBpZiBmaXJzdGxpbmUuc3RyaXAoKToKLSAgICAgICAgdHcubGluZShJTkRFTlQgKyBmaXJz
dGxpbmUuc3RyaXAoKSkKKyAgICAgICAgdHcubGluZShpbmRlbnQgKyBmaXJzdGxpbmUuc3RyaXAo
KSkKIAogICAgIGlmIHJlc3Q6CiAgICAgICAgIGZvciBsaW5lIGluIGRlZGVudChyZXN0KS5zcGxp
dCgiXG4iKToKLSAgICAgICAgICAgIHR3LndyaXRlKElOREVOVCArIGxpbmUgKyAiXG4iKQorICAg
ICAgICAgICAgdHcud3JpdGUoaW5kZW50ICsgbGluZSArICJcbiIpCiAKIAogY2xhc3MgRnVuY3Rp
b24oRnVuY3Rpb25NaXhpbiwgbm9kZXMuSXRlbSwgZml4dHVyZXMuRnVuY2FyZ25hbWVzQ29tcGF0
QXR0cik6CiAgICAgIiIiIGEgRnVuY3Rpb24gSXRlbSBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGlu
ZyB1cCBhbmQgZXhlY3V0aW5nIGEKICAgICBQeXRob24gdGVzdCBmdW5jdGlvbi4KICAgICAiIiIK
LSAgICBfZ2VuaWQgPSBOb25lCi0gICAgIyBkaXNhYmxlIHNpbmNlIGZ1bmN0aW9ucyBoYW5kbGUg
aXQgdGhlbXNlbGZlcworCisgICAgIyBkaXNhYmxlIHNpbmNlIGZ1bmN0aW9ucyBoYW5kbGUgaXQg
dGhlbXNlbHZlcwogICAgIF9BTExPV19NQVJLRVJTID0gRmFsc2UKIAogICAgIGRlZiBfX2luaXRf
XygKQEAgLTEyNTcsMTMgKzE0MDYsMjcgQEAgY2xhc3MgRnVuY3Rpb24oRnVuY3Rpb25NaXhpbiwg
bm9kZXMuSXRlbSwgZml4dHVyZXMuRnVuY2FyZ25hbWVzQ29tcGF0QXR0cik6CiAgICAgICAgICAg
ICAgICAgIyBmZWVsIGZyZWUgdG8gY3J5LCB0aGlzIHdhcyBicm9rZW4gZm9yIHllYXJzIGJlZm9y
ZQogICAgICAgICAgICAgICAgICMgYW5kIGtleXdvcmRzIGNhbnQgZml4IGl0IHBlciBkZXNpZ24K
ICAgICAgICAgICAgICAgICBzZWxmLmtleXdvcmRzW21hcmsubmFtZV0gPSBtYXJrCi0gICAgICAg
ICAgICBzZWxmLm93bl9tYXJrZXJzLmV4dGVuZChjYWxsc3BlYy5tYXJrcykKKyAgICAgICAgICAg
IHNlbGYub3duX21hcmtlcnMuZXh0ZW5kKG5vcm1hbGl6ZV9tYXJrX2xpc3QoY2FsbHNwZWMubWFy
a3MpKQogICAgICAgICBpZiBrZXl3b3JkczoKICAgICAgICAgICAgIHNlbGYua2V5d29yZHMudXBk
YXRlKGtleXdvcmRzKQogCisgICAgICAgICMgdG9kbzogdGhpcyBpcyBhIGhlbGwgb2YgYSBoYWNr
CisgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80
NTY5CisKKyAgICAgICAgc2VsZi5rZXl3b3Jkcy51cGRhdGUoCisgICAgICAgICAgICBkaWN0LmZy
b21rZXlzKAorICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgbWFyay5uYW1l
CisgICAgICAgICAgICAgICAgICAgIGZvciBtYXJrIGluIHNlbGYuaXRlcl9tYXJrZXJzKCkKKyAg
ICAgICAgICAgICAgICAgICAgaWYgbWFyay5uYW1lIG5vdCBpbiBzZWxmLmtleXdvcmRzCisgICAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICBUcnVlLAorICAgICAgICAgICAgKQorICAg
ICAgICApCisKICAgICAgICAgaWYgZml4dHVyZWluZm8gaXMgTm9uZToKICAgICAgICAgICAgIGZp
eHR1cmVpbmZvID0gc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlci5nZXRmaXh0dXJlaW5mbygK
LSAgICAgICAgICAgICAgICBzZWxmLCBzZWxmLm9iaiwgc2VsZi5jbHMsIGZ1bmNhcmdzPW5vdCBz
ZWxmLl9pc3lpZWxkZWRmdW5jdGlvbigpCisgICAgICAgICAgICAgICAgc2VsZiwgc2VsZi5vYmos
IHNlbGYuY2xzLCBmdW5jYXJncz1UcnVlCiAgICAgICAgICAgICApCiAgICAgICAgIHNlbGYuX2Zp
eHR1cmVpbmZvID0gZml4dHVyZWluZm8KICAgICAgICAgc2VsZi5maXh0dXJlbmFtZXMgPSBmaXh0
dXJlaW5mby5uYW1lc19jbG9zdXJlCkBAIC0xMjc3LDIzICsxNDQwLDEyIEBAIGNsYXNzIEZ1bmN0
aW9uKEZ1bmN0aW9uTWl4aW4sIG5vZGVzLkl0ZW0sIGZpeHR1cmVzLkZ1bmNhcmduYW1lc0NvbXBh
dEF0dHIpOgogCiAgICAgZGVmIF9pbml0cmVxdWVzdChzZWxmKToKICAgICAgICAgc2VsZi5mdW5j
YXJncyA9IHt9Ci0gICAgICAgIGlmIHNlbGYuX2lzeWllbGRlZGZ1bmN0aW9uKCk6Ci0gICAgICAg
ICAgICBhc3NlcnQgbm90IGhhc2F0dHIoCi0gICAgICAgICAgICAgICAgc2VsZiwgImNhbGxzcGVj
IgotICAgICAgICAgICAgKSwgInlpZWxkZWQgZnVuY3Rpb25zIChkZXByZWNhdGVkKSBjYW5ub3Qg
aGF2ZSBmdW5jYXJncyIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoc2Vs
ZiwgImNhbGxzcGVjIik6Ci0gICAgICAgICAgICAgICAgY2FsbHNwZWMgPSBzZWxmLmNhbGxzcGVj
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBjYWxsc3BlYy5mdW5jYXJncwotICAgICAgICAg
ICAgICAgIHNlbGYuX2dlbmlkID0gY2FsbHNwZWMuaWQKLSAgICAgICAgICAgICAgICBpZiBoYXNh
dHRyKGNhbGxzcGVjLCAicGFyYW0iKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJhbSA9
IGNhbGxzcGVjLnBhcmFtCiAgICAgICAgIHNlbGYuX3JlcXVlc3QgPSBmaXh0dXJlcy5GaXh0dXJl
UmVxdWVzdChzZWxmKQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGZ1bmN0aW9uKHNlbGYpOgog
ICAgICAgICAidW5kZXJseWluZyBweXRob24gJ2Z1bmN0aW9uJyBvYmplY3QiCi0gICAgICAgIHJl
dHVybiBnZXRhdHRyKHNlbGYub2JqLCAiaW1fZnVuYyIsIHNlbGYub2JqKQorICAgICAgICByZXR1
cm4gZ2V0aW1mdW5jKHNlbGYub2JqKQogCiAgICAgZGVmIF9nZXRvYmooc2VsZik6CiAgICAgICAg
IG5hbWUgPSBzZWxmLm5hbWUKQEAgLTEzMDcsOSArMTQ1OSw2IEBAIGNsYXNzIEZ1bmN0aW9uKEZ1
bmN0aW9uTWl4aW4sIG5vZGVzLkl0ZW0sIGZpeHR1cmVzLkZ1bmNhcmduYW1lc0NvbXBhdEF0dHIp
OgogICAgICAgICAiKGNvbXBhdG9ubHkpIGZvciBjb2RlIGV4cGVjdGluZyBweXRlc3QtMi4yIHN0
eWxlIHJlcXVlc3Qgb2JqZWN0cyIKICAgICAgICAgcmV0dXJuIHNlbGYKIAotICAgIGRlZiBfaXN5
aWVsZGVkZnVuY3Rpb24oc2VsZik6Ci0gICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYsICJfYXJn
cyIsIE5vbmUpIGlzIG5vdCBOb25lCi0KICAgICBkZWYgcnVudGVzdChzZWxmKToKICAgICAgICAg
IiIiIGV4ZWN1dGUgdGhlIHVuZGVybHlpbmcgdGVzdCBmdW5jdGlvbi4gIiIiCiAgICAgICAgIHNl
bGYuaWhvb2sucHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVuY2l0ZW09c2VsZikKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3B5dGhvbl9hcGkucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC9weXRob25fYXBpLnB5CmluZGV4IDkyNTdkMjEwYzI3MDFkN2I1NmRlYTJjY2Y4N2Y2
NjU0ZjdmZWVkY2YuLmY2ZTQ3NWMzYTI0OTk2N2I2OGJjYjk5OTRiYzQ2MTVkMWFjYzk0YjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3B5dGhvbl9hcGkucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3Qvc3JjL19weXRlc3QvcHl0aG9uX2FwaS5weQpAQCAtMSwxNyArMSwyNSBAQAorIyAt
Ki0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w
b3J0CisKIGltcG9ydCBtYXRoCitpbXBvcnQgcHByaW50CiBpbXBvcnQgc3lzCitpbXBvcnQgd2Fy
bmluZ3MKK2Zyb20gZGVjaW1hbCBpbXBvcnQgRGVjaW1hbAorZnJvbSBudW1iZXJzIGltcG9ydCBO
dW1iZXIKIAotaW1wb3J0IHB5Ci1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgemlwLCBmaWx0ZXJmYWxz
ZQogZnJvbSBtb3JlX2l0ZXJ0b29scy5tb3JlIGltcG9ydCBhbHdheXNfaXRlcmFibGUKK2Zyb20g
c2l4Lm1vdmVzIGltcG9ydCBmaWx0ZXJmYWxzZQorZnJvbSBzaXgubW92ZXMgaW1wb3J0IHppcAog
CitpbXBvcnQgX3B5dGVzdC5fY29kZQorZnJvbSBfcHl0ZXN0IGltcG9ydCBkZXByZWNhdGVkCiBm
cm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBpc2NsYXNzCi0KLWZyb20gX3B5dGVzdC5jb21wYXQg
aW1wb3J0IE1hcHBpbmcsIFNlcXVlbmNlCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBJdGVy
YWJsZQorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgTWFwcGluZworZnJvbSBfcHl0ZXN0LmNv
bXBhdCBpbXBvcnQgU2l6ZWQKIGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IFNUUklOR19UWVBF
UwotCiBmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwKLWltcG9ydCBfcHl0ZXN0Ll9j
b2RlCiAKIEJBU0VfVFlQRSA9ICh0eXBlLCBTVFJJTkdfVFlQRVMpCiAKQEAgLTMwLDYgKzM4LDE1
IEBAIGRlZiBfY21wX3JhaXNlc190eXBlX2Vycm9yKHNlbGYsIG90aGVyKToKICAgICApCiAKIAor
ZGVmIF9ub25fbnVtZXJpY190eXBlX2Vycm9yKHZhbHVlLCBhdCk6CisgICAgYXRfc3RyID0gIiBh
dCB7fSIuZm9ybWF0KGF0KSBpZiBhdCBlbHNlICIiCisgICAgcmV0dXJuIFR5cGVFcnJvcigKKyAg
ICAgICAgImNhbm5vdCBtYWtlIGFwcHJveGltYXRlIGNvbXBhcmlzb25zIHRvIG5vbi1udW1lcmlj
IHZhbHVlczogeyFyfSB7fSIuZm9ybWF0KAorICAgICAgICAgICAgdmFsdWUsIGF0X3N0cgorICAg
ICAgICApCisgICAgKQorCisKICMgYnVpbHRpbiBweXRlc3QuYXBwcm94IGhlbHBlcgogCiAKQEAg
LTM5LDE1ICs1NiwxNyBAQCBjbGFzcyBBcHByb3hCYXNlKG9iamVjdCk6CiAgICAgb3Igc2VxdWVu
Y2VzIG9mIG51bWJlcnMuCiAgICAgIiIiCiAKLSAgICAjIFRlbGwgbnVtcHkgdG8gdXNlIG91ciBg
X19lcV9fYCBvcGVyYXRvciBpbnN0ZWFkIG9mIGl0cworICAgICMgVGVsbCBudW1weSB0byB1c2Ug
b3VyIGBfX2VxX19gIG9wZXJhdG9yIGluc3RlYWQgb2YgaXRzLgogICAgIF9fYXJyYXlfdWZ1bmNf
XyA9IE5vbmUKICAgICBfX2FycmF5X3ByaW9yaXR5X18gPSAxMDAKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBleHBlY3RlZCwgcmVsPU5vbmUsIGFicz1Ob25lLCBuYW5fb2s9RmFsc2UpOgorICAg
ICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKICAgICAgICAgc2VsZi5leHBlY3RlZCA9IGV4
cGVjdGVkCiAgICAgICAgIHNlbGYuYWJzID0gYWJzCiAgICAgICAgIHNlbGYucmVsID0gcmVsCiAg
ICAgICAgIHNlbGYubmFuX29rID0gbmFuX29rCisgICAgICAgIHNlbGYuX2NoZWNrX3R5cGUoKQog
CiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yCkBAIC03NSwyMCArOTQsMzMgQEAgY2xhc3MgQXBwcm94QmFzZShvYmplY3QpOgogICAgICAg
ICAiIiIKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCisgICAgZGVmIF9jaGVj
a190eXBlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmFpc2UgYSBUeXBlRXJyb3IgaWYg
dGhlIGV4cGVjdGVkIHZhbHVlIGlzIG5vdCBhIHZhbGlkIHR5cGUuCisgICAgICAgICIiIgorICAg
ICAgICAjIFRoaXMgaXMgb25seSBhIGNvbmNlcm4gaWYgdGhlIGV4cGVjdGVkIHZhbHVlIGlzIGEg
c2VxdWVuY2UuICBJbiBldmVyeQorICAgICAgICAjIG90aGVyIGNhc2UsIHRoZSBhcHByb3goKSBm
dW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlIGV4cGVjdGVkIHZhbHVlIGhhcworICAgICAgICAjIGEg
bnVtZXJpYyB0eXBlLiAgRm9yIHRoaXMgcmVhc29uLCB0aGUgZGVmYXVsdCBpcyB0byBkbyBub3Ro
aW5nLiAgVGhlCisgICAgICAgICMgY2xhc3NlcyB0aGF0IGRlYWwgd2l0aCBzZXF1ZW5jZXMgc2hv
dWxkIHJlaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvCisgICAgICAgICMgcmFpc2UgaWYgdGhlcmUg
YXJlIGFueSBub24tbnVtZXJpYyBlbGVtZW50cyBpbiB0aGUgc2VxdWVuY2UuCisgICAgICAgIHBh
c3MKKworCitkZWYgX3JlY3Vyc2l2ZV9saXN0X21hcChmLCB4KToKKyAgICBpZiBpc2luc3RhbmNl
KHgsIGxpc3QpOgorICAgICAgICByZXR1cm4gbGlzdChfcmVjdXJzaXZlX2xpc3RfbWFwKGYsIHhp
KSBmb3IgeGkgaW4geCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gZih4KQorCiAKIGNsYXNz
IEFwcHJveE51bXB5KEFwcHJveEJhc2UpOgogICAgICIiIgotICAgIFBlcmZvcm0gYXBwcm94aW1h
dGUgY29tcGFyaXNvbnMgZm9yIG51bXB5IGFycmF5cy4KKyAgICBQZXJmb3JtIGFwcHJveGltYXRl
IGNvbXBhcmlzb25zIHdoZXJlIHRoZSBleHBlY3RlZCB2YWx1ZSBpcyBudW1weSBhcnJheS4KICAg
ICAiIiIKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgIyBJdCBtaWdodCBiZSBu
aWNlIHRvIHJld3JpdGUgdGhpcyBmdW5jdGlvbiB0byBhY2NvdW50IGZvciB0aGUKLSAgICAgICAg
IyBzaGFwZSBvZiB0aGUgYXJyYXkuLi4KLSAgICAgICAgaW1wb3J0IG51bXB5IGFzIG5wCi0KLSAg
ICAgICAgcmV0dXJuICJhcHByb3goeyFyfSkiLmZvcm1hdCgKLSAgICAgICAgICAgIGxpc3Qoc2Vs
Zi5fYXBwcm94X3NjYWxhcih4KSBmb3IgeCBpbiBucC5hc2FycmF5KHNlbGYuZXhwZWN0ZWQpKQot
ICAgICAgICApCisgICAgICAgIGxpc3Rfc2NhbGFycyA9IF9yZWN1cnNpdmVfbGlzdF9tYXAoc2Vs
Zi5fYXBwcm94X3NjYWxhciwgc2VsZi5leHBlY3RlZC50b2xpc3QoKSkKKyAgICAgICAgcmV0dXJu
ICJhcHByb3goeyFyfSkiLmZvcm1hdChsaXN0X3NjYWxhcnMpCiAKICAgICBpZiBzeXMudmVyc2lv
bl9pbmZvWzBdID09IDI6CiAgICAgICAgIF9fY21wX18gPSBfY21wX3JhaXNlc190eXBlX2Vycm9y
CkBAIC0xMTgsMTYgKzE1MCwxNiBAQCBjbGFzcyBBcHByb3hOdW1weShBcHByb3hCYXNlKToKIAog
ICAgICAgICBpZiBucC5pc3NjYWxhcihhY3R1YWwpOgogICAgICAgICAgICAgZm9yIGkgaW4gbnAu
bmRpbmRleChzZWxmLmV4cGVjdGVkLnNoYXBlKToKLSAgICAgICAgICAgICAgICB5aWVsZCBhY3R1
YWwsIG5wLmFzc2NhbGFyKHNlbGYuZXhwZWN0ZWRbaV0pCisgICAgICAgICAgICAgICAgeWllbGQg
YWN0dWFsLCBzZWxmLmV4cGVjdGVkW2ldLml0ZW0oKQogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgZm9yIGkgaW4gbnAubmRpbmRleChzZWxmLmV4cGVjdGVkLnNoYXBlKToKLSAgICAgICAgICAg
ICAgICB5aWVsZCBucC5hc3NjYWxhcihhY3R1YWxbaV0pLCBucC5hc3NjYWxhcihzZWxmLmV4cGVj
dGVkW2ldKQorICAgICAgICAgICAgICAgIHlpZWxkIGFjdHVhbFtpXS5pdGVtKCksIHNlbGYuZXhw
ZWN0ZWRbaV0uaXRlbSgpCiAKIAogY2xhc3MgQXBwcm94TWFwcGluZyhBcHByb3hCYXNlKToKICAg
ICAiIiIKLSAgICBQZXJmb3JtIGFwcHJveGltYXRlIGNvbXBhcmlzb25zIGZvciBtYXBwaW5ncyB3
aGVyZSB0aGUgdmFsdWVzIGFyZSBudW1iZXJzCi0gICAgKHRoZSBrZXlzIGNhbiBiZSBhbnl0aGlu
ZykuCisgICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBjb21wYXJpc29ucyB3aGVyZSB0aGUgZXhwZWN0
ZWQgdmFsdWUgaXMgYSBtYXBwaW5nIHdpdGgKKyAgICBudW1lcmljIHZhbHVlcyAodGhlIGtleXMg
Y2FuIGJlIGFueXRoaW5nKS4KICAgICAiIiIKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKQEAg
LTE0NSwxMCArMTc3LDIwIEBAIGNsYXNzIEFwcHJveE1hcHBpbmcoQXBwcm94QmFzZSk6CiAgICAg
ICAgIGZvciBrIGluIHNlbGYuZXhwZWN0ZWQua2V5cygpOgogICAgICAgICAgICAgeWllbGQgYWN0
dWFsW2tdLCBzZWxmLmV4cGVjdGVkW2tdCiAKKyAgICBkZWYgX2NoZWNrX3R5cGUoc2VsZik6Cisg
ICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBp
biBzZWxmLmV4cGVjdGVkLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVl
LCB0eXBlKHNlbGYuZXhwZWN0ZWQpKToKKyAgICAgICAgICAgICAgICBtc2cgPSAicHl0ZXN0LmFw
cHJveCgpIGRvZXMgbm90IHN1cHBvcnQgbmVzdGVkIGRpY3Rpb25hcmllczoga2V5PXshcn0gdmFs
dWU9eyFyfVxuICBmdWxsIG1hcHBpbmc9e30iCisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVy
cm9yKG1zZy5mb3JtYXQoa2V5LCB2YWx1ZSwgcHByaW50LnBmb3JtYXQoc2VsZi5leHBlY3RlZCkp
KQorICAgICAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgTnVtYmVyKToKKyAgICAg
ICAgICAgICAgICByYWlzZSBfbm9uX251bWVyaWNfdHlwZV9lcnJvcihzZWxmLmV4cGVjdGVkLCBh
dD0ia2V5PXshcn0iLmZvcm1hdChrZXkpKQogCi1jbGFzcyBBcHByb3hTZXF1ZW5jZShBcHByb3hC
YXNlKToKKworY2xhc3MgQXBwcm94U2VxdWVuY2VsaWtlKEFwcHJveEJhc2UpOgogICAgICIiIgot
ICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgZm9yIHNlcXVlbmNlcyBvZiBudW1i
ZXJzLgorICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgd2hlcmUgdGhlIGV4cGVj
dGVkIHZhbHVlIGlzIGEgc2VxdWVuY2Ugb2YKKyAgICBudW1iZXJzLgogICAgICIiIgogCiAgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgpAQCAtMTY3LDExICsyMDksMjMgQEAgY2xhc3MgQXBwcm94U2Vx
dWVuY2UoQXBwcm94QmFzZSk6CiAgICAgZGVmIF95aWVsZF9jb21wYXJpc29ucyhzZWxmLCBhY3R1
YWwpOgogICAgICAgICByZXR1cm4gemlwKGFjdHVhbCwgc2VsZi5leHBlY3RlZCkKIAorICAgIGRl
ZiBfY2hlY2tfdHlwZShzZWxmKToKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisg
ICAgICAgIGZvciBpbmRleCwgeCBpbiBlbnVtZXJhdGUoc2VsZi5leHBlY3RlZCk6CisgICAgICAg
ICAgICBpZiBpc2luc3RhbmNlKHgsIHR5cGUoc2VsZi5leHBlY3RlZCkpOgorICAgICAgICAgICAg
ICAgIG1zZyA9ICJweXRlc3QuYXBwcm94KCkgZG9lcyBub3Qgc3VwcG9ydCBuZXN0ZWQgZGF0YSBz
dHJ1Y3R1cmVzOiB7IXJ9IGF0IGluZGV4IHt9XG4gIGZ1bGwgc2VxdWVuY2U6IHt9IgorICAgICAg
ICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cuZm9ybWF0KHgsIGluZGV4LCBwcHJpbnQucGZv
cm1hdChzZWxmLmV4cGVjdGVkKSkpCisgICAgICAgICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKHgs
IE51bWJlcik6CisgICAgICAgICAgICAgICAgcmFpc2UgX25vbl9udW1lcmljX3R5cGVfZXJyb3Io
CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWQsIGF0PSJpbmRleCB7fSIuZm9ybWF0
KGluZGV4KQorICAgICAgICAgICAgICAgICkKKwogCiBjbGFzcyBBcHByb3hTY2FsYXIoQXBwcm94
QmFzZSk6CiAgICAgIiIiCi0gICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBjb21wYXJpc29ucyBmb3Ig
c2luZ2xlIG51bWJlcnMgb25seS4KKyAgICBQZXJmb3JtIGFwcHJveGltYXRlIGNvbXBhcmlzb25z
IHdoZXJlIHRoZSBleHBlY3RlZCB2YWx1ZSBpcyBhIHNpbmdsZSBudW1iZXIuCiAgICAgIiIiCisK
ICAgICBERUZBVUxUX0FCU09MVVRFX1RPTEVSQU5DRSA9IDFlLTEyCiAgICAgREVGQVVMVF9SRUxB
VElWRV9UT0xFUkFOQ0UgPSAxZS02CiAKQEAgLTIwOCw3ICsyNjIsOSBAQCBjbGFzcyBBcHByb3hT
Y2FsYXIoQXBwcm94QmFzZSk6CiAgICAgICAgIHRoZSBwcmUtc3BlY2lmaWVkIHRvbGVyYW5jZS4K
ICAgICAgICAgIiIiCiAgICAgICAgIGlmIF9pc19udW1weV9hcnJheShhY3R1YWwpOgotICAgICAg
ICAgICAgcmV0dXJuIEFwcHJveE51bXB5KGFjdHVhbCwgc2VsZi5hYnMsIHNlbGYucmVsLCBzZWxm
Lm5hbl9vaykgPT0gc2VsZi5leHBlY3RlZAorICAgICAgICAgICAgIyBDYWxsIGBgX19lcV9fKClg
YCBtYW51YWxseSB0byBwcmV2ZW50IGluZmluaXRlLXJlY3Vyc2lvbiB3aXRoCisgICAgICAgICAg
ICAjIG51bXB5PDEuMTMuICBTZWUgIzM3NDguCisgICAgICAgICAgICByZXR1cm4gYWxsKHNlbGYu
X19lcV9fKGEpIGZvciBhIGluIGFjdHVhbC5mbGF0KQogCiAgICAgICAgICMgU2hvcnQtY2lyY3Vp
dCBleGFjdCBlcXVhbGl0eS4KICAgICAgICAgaWYgYWN0dWFsID09IHNlbGYuZXhwZWN0ZWQ6CkBA
IC0yNjksOSArMzI1LDcgQEAgY2xhc3MgQXBwcm94U2NhbGFyKEFwcHJveEJhc2UpOgogICAgICAg
ICAjIHdlIGFyZW4ndCBldmVuIGdvaW5nIHRvIHVzZSBpdC4KICAgICAgICAgcmVsYXRpdmVfdG9s
ZXJhbmNlID0gc2V0X2RlZmF1bHQoCiAgICAgICAgICAgICBzZWxmLnJlbCwgc2VsZi5ERUZBVUxU
X1JFTEFUSVZFX1RPTEVSQU5DRQotICAgICAgICApICogYWJzKAotICAgICAgICAgICAgc2VsZi5l
eHBlY3RlZAotICAgICAgICApCisgICAgICAgICkgKiBhYnMoc2VsZi5leHBlY3RlZCkKIAogICAg
ICAgICBpZiByZWxhdGl2ZV90b2xlcmFuY2UgPCAwOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigKQEAgLTI4NSw3ICszMzksOSBAQCBjbGFzcyBBcHByb3hTY2FsYXIoQXBwcm94QmFzZSk6
CiAKIAogY2xhc3MgQXBwcm94RGVjaW1hbChBcHByb3hTY2FsYXIpOgotICAgIGZyb20gZGVjaW1h
bCBpbXBvcnQgRGVjaW1hbAorICAgICIiIgorICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFy
aXNvbnMgd2hlcmUgdGhlIGV4cGVjdGVkIHZhbHVlIGlzIGEgZGVjaW1hbC4KKyAgICAiIiIKIAog
ICAgIERFRkFVTFRfQUJTT0xVVEVfVE9MRVJBTkNFID0gRGVjaW1hbCgiMWUtMTIiKQogICAgIERF
RkFVTFRfUkVMQVRJVkVfVE9MRVJBTkNFID0gRGVjaW1hbCgiMWUtNiIpCkBAIC00NDQsMzIgKzUw
MCwzOSBAQCBkZWYgYXBwcm94KGV4cGVjdGVkLCByZWw9Tm9uZSwgYWJzPU5vbmUsIG5hbl9vaz1G
YWxzZSk6CiAgICAgICAgX18gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvZGF0
YW1vZGVsLmh0bWwjb2JqZWN0Ll9fZ2VfXwogICAgICIiIgogCi0gICAgZnJvbSBkZWNpbWFsIGlt
cG9ydCBEZWNpbWFsCi0KICAgICAjIERlbGVnYXRlIHRoZSBjb21wYXJpc29uIHRvIGEgY2xhc3Mg
dGhhdCBrbm93cyBob3cgdG8gZGVhbCB3aXRoIHRoZSB0eXBlCiAgICAgIyBvZiB0aGUgZXhwZWN0
ZWQgdmFsdWUgKGUuZy4gaW50LCBmbG9hdCwgbGlzdCwgZGljdCwgbnVtcHkuYXJyYXksIGV0Yyku
CiAgICAgIwotICAgICMgVGhpcyBhcmNoaXRlY3R1cmUgaXMgcmVhbGx5IGRyaXZlbiBieSB0aGUg
bmVlZCB0byBzdXBwb3J0IG51bXB5IGFycmF5cy4KLSAgICAjIFRoZSBvbmx5IHdheSB0byBvdmVy
cmlkZSBgPT1gIGZvciBhcnJheXMgd2l0aG91dCByZXF1aXJpbmcgdGhhdCBhcHByb3ggYmUKLSAg
ICAjIHRoZSBsZWZ0IG9wZXJhbmQgaXMgdG8gaW5oZXJpdCB0aGUgYXBwcm94IG9iamVjdCBmcm9t
IGBudW1weS5uZGFycmF5YC4KLSAgICAjIEJ1dCB0aGF0IGNhbid0IGJlIGEgZ2VuZXJhbCBzb2x1
dGlvbiwgYmVjYXVzZSBpdCByZXF1aXJlcyAoMSkgbnVtcHkgdG8gYmUKLSAgICAjIGluc3RhbGxl
ZCBhbmQgKDIpIHRoZSBleHBlY3RlZCB2YWx1ZSB0byBiZSBhIG51bXB5IGFycmF5LiAgU28gdGhl
IGdlbmVyYWwKLSAgICAjIHNvbHV0aW9uIGlzIHRvIGRlbGVnYXRlIGVhY2ggdHlwZSBvZiBleHBl
Y3RlZCB2YWx1ZSB0byBhIGRpZmZlcmVudCBjbGFzcy4KKyAgICAjIFRoZSBwcmltYXJ5IHJlc3Bv
bnNpYmlsaXR5IG9mIHRoZXNlIGNsYXNzZXMgaXMgdG8gaW1wbGVtZW50IGBgX19lcV9fKClgYAor
ICAgICMgYW5kIGBgX19yZXByX18oKWBgLiAgVGhlIGZvcm1lciBpcyB1c2VkIHRvIGFjdHVhbGx5
IGNoZWNrIGlmIHNvbWUKKyAgICAjICJhY3R1YWwiIHZhbHVlIGlzIGVxdWl2YWxlbnQgdG8gdGhl
IGdpdmVuIGV4cGVjdGVkIHZhbHVlIHdpdGhpbiB0aGUKKyAgICAjIGFsbG93ZWQgdG9sZXJhbmNl
LiAgVGhlIGxhdHRlciBpcyB1c2VkIHRvIHNob3cgdGhlIHVzZXIgdGhlIGV4cGVjdGVkCisgICAg
IyB2YWx1ZSBhbmQgdG9sZXJhbmNlLCBpbiB0aGUgY2FzZSB0aGF0IGEgdGVzdCBmYWlsZWQuCiAg
ICAgIwotICAgICMgVGhpcyBoYXMgdGhlIGFkdmFudGFnZSB0aGF0IGl0IG1hZGUgaXQgZWFzeSB0
byBzdXBwb3J0IG1hcHBpbmcgdHlwZXMKLSAgICAjIChpLmUuIGRpY3QpLiAgVGhlIG9sZCBjb2Rl
IGFjY2VwdGVkIG1hcHBpbmcgdHlwZXMsIGJ1dCB3b3VsZCBvbmx5IGNvbXBhcmUKLSAgICAjIHRo
ZWlyIGtleXMsIHdoaWNoIGlzIHByb2JhYmx5IG5vdCB3aGF0IG1vc3QgcGVvcGxlIHdvdWxkIGV4
cGVjdC4KKyAgICAjIFRoZSBhY3R1YWwgbG9naWMgZm9yIG1ha2luZyBhcHByb3hpbWF0ZSBjb21w
YXJpc29ucyBjYW4gYmUgZm91bmQgaW4KKyAgICAjIEFwcHJveFNjYWxhciwgd2hpY2ggaXMgdXNl
ZCB0byBjb21wYXJlIGluZGl2aWR1YWwgbnVtYmVycy4gIEFsbCBvZiB0aGUKKyAgICAjIG90aGVy
IEFwcHJveCBjbGFzc2VzIGV2ZW50dWFsbHkgZGVsZWdhdGUgdG8gdGhpcyBjbGFzcy4gIFRoZSBB
cHByb3hCYXNlCisgICAgIyBjbGFzcyBwcm92aWRlcyBzb21lIGNvbnZlbmllbnQgbWV0aG9kcyBh
bmQgb3ZlcmxvYWRzLCBidXQgaXNuJ3QgcmVhbGx5CisgICAgIyBlc3NlbnRpYWwuCiAKLSAgICBp
ZiBfaXNfbnVtcHlfYXJyYXkoZXhwZWN0ZWQpOgotICAgICAgICBjbHMgPSBBcHByb3hOdW1weQor
ICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorCisgICAgaWYgaXNpbnN0YW5jZShleHBlY3Rl
ZCwgRGVjaW1hbCk6CisgICAgICAgIGNscyA9IEFwcHJveERlY2ltYWwKKyAgICBlbGlmIGlzaW5z
dGFuY2UoZXhwZWN0ZWQsIE51bWJlcik6CisgICAgICAgIGNscyA9IEFwcHJveFNjYWxhcgogICAg
IGVsaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgTWFwcGluZyk6CiAgICAgICAgIGNscyA9IEFwcHJv
eE1hcHBpbmcKLSAgICBlbGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWQsIFNlcXVlbmNlKSBhbmQgbm90
IGlzaW5zdGFuY2UoZXhwZWN0ZWQsIFNUUklOR19UWVBFUyk6Ci0gICAgICAgIGNscyA9IEFwcHJv
eFNlcXVlbmNlCi0gICAgZWxpZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBEZWNpbWFsKToKLSAgICAg
ICAgY2xzID0gQXBwcm94RGVjaW1hbAorICAgIGVsaWYgX2lzX251bXB5X2FycmF5KGV4cGVjdGVk
KToKKyAgICAgICAgY2xzID0gQXBwcm94TnVtcHkKKyAgICBlbGlmICgKKyAgICAgICAgaXNpbnN0
YW5jZShleHBlY3RlZCwgSXRlcmFibGUpCisgICAgICAgIGFuZCBpc2luc3RhbmNlKGV4cGVjdGVk
LCBTaXplZCkKKyAgICAgICAgYW5kIG5vdCBpc2luc3RhbmNlKGV4cGVjdGVkLCBTVFJJTkdfVFlQ
RVMpCisgICAgKToKKyAgICAgICAgY2xzID0gQXBwcm94U2VxdWVuY2VsaWtlCiAgICAgZWxzZToK
LSAgICAgICAgY2xzID0gQXBwcm94U2NhbGFyCisgICAgICAgIHJhaXNlIF9ub25fbnVtZXJpY190
eXBlX2Vycm9yKGV4cGVjdGVkLCBhdD1Ob25lKQogCiAgICAgcmV0dXJuIGNscyhleHBlY3RlZCwg
cmVsLCBhYnMsIG5hbl9vaykKIApAQCAtNDc5LDE3ICs1NDIsMTEgQEAgZGVmIF9pc19udW1weV9h
cnJheShvYmopOgogICAgIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBudW1w
eSBhcnJheS4gIE1ha2UgYSBzcGVjaWFsIGVmZm9ydCB0bwogICAgIGF2b2lkIGltcG9ydGluZyBu
dW1weSB1bmxlc3MgaXQncyByZWFsbHkgbmVjZXNzYXJ5LgogICAgICIiIgotICAgIGltcG9ydCBp
bnNwZWN0Ci0KLSAgICBmb3IgY2xzIGluIGluc3BlY3QuZ2V0bXJvKHR5cGUob2JqKSk6Ci0gICAg
ICAgIGlmIGNscy5fX21vZHVsZV9fID09ICJudW1weSI6Ci0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgaW1wb3J0IG51bXB5IGFzIG5wCi0KLSAgICAgICAgICAgICAgICByZXR1cm4g
aXNpbnN0YW5jZShvYmosIG5wLm5kYXJyYXkpCi0gICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJy
b3I6Ci0gICAgICAgICAgICAgICAgcGFzcworICAgIGltcG9ydCBzeXMKIAorICAgIG5wID0gc3lz
Lm1vZHVsZXMuZ2V0KCJudW1weSIpCisgICAgaWYgbnAgaXMgbm90IE5vbmU6CisgICAgICAgIHJl
dHVybiBpc2luc3RhbmNlKG9iaiwgbnAubmRhcnJheSkKICAgICByZXR1cm4gRmFsc2UKIAogCkBA
IC00OTksMjkgKzU1Niw1NCBAQCBkZWYgX2lzX251bXB5X2FycmF5KG9iaik6CiBkZWYgcmFpc2Vz
KGV4cGVjdGVkX2V4Y2VwdGlvbiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICByIiIiCiAgICAgQXNz
ZXJ0IHRoYXQgYSBjb2RlIGJsb2NrL2Z1bmN0aW9uIGNhbGwgcmFpc2VzIGBgZXhwZWN0ZWRfZXhj
ZXB0aW9uYGAKLSAgICBhbmQgcmFpc2UgYSBmYWlsdXJlIGV4Y2VwdGlvbiBvdGhlcndpc2UuCisg
ICAgb3IgcmFpc2UgYSBmYWlsdXJlIGV4Y2VwdGlvbiBvdGhlcndpc2UuCiAKLSAgICA6YXJnIG1l
c3NhZ2U6IGlmIHNwZWNpZmllZCwgcHJvdmlkZXMgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlIGlm
IHRoZQotICAgICAgICBleGNlcHRpb24gaXMgbm90IHJhaXNlZAotICAgIDphcmcgbWF0Y2g6IGlm
IHNwZWNpZmllZCwgYXNzZXJ0cyB0aGF0IHRoZSBleGNlcHRpb24gbWF0Y2hlcyBhIHRleHQgb3Ig
cmVnZXgKKyAgICA6a3dwYXJhbSBtYXRjaDogaWYgc3BlY2lmaWVkLCBhIHN0cmluZyBjb250YWlu
aW5nIGEgcmVndWxhciBleHByZXNzaW9uLAorICAgICAgICBvciBhIHJlZ3VsYXIgZXhwcmVzc2lv
biBvYmplY3QsIHRoYXQgaXMgdGVzdGVkIGFnYWluc3QgdGhlIHN0cmluZworICAgICAgICByZXBy
ZXNlbnRhdGlvbiBvZiB0aGUgZXhjZXB0aW9uIHVzaW5nIGBgcmUuc2VhcmNoYGAuIFRvIG1hdGNo
IGEgbGl0ZXJhbAorICAgICAgICBzdHJpbmcgdGhhdCBtYXkgY29udGFpbiBgc3BlY2lhbCBjaGFy
YWN0ZXJzYF9fLCB0aGUgcGF0dGVybiBjYW4KKyAgICAgICAgZmlyc3QgYmUgZXNjYXBlZCB3aXRo
IGBgcmUuZXNjYXBlYGAuCiAKLSAgICBUaGlzIGhlbHBlciBwcm9kdWNlcyBhIGBgRXhjZXB0aW9u
SW5mbygpYGAgb2JqZWN0IChzZWUgYmVsb3cpLgorICAgIF9fIGh0dHBzOi8vZG9jcy5weXRob24u
b3JnLzMvbGlicmFyeS9yZS5odG1sI3JlZ3VsYXItZXhwcmVzc2lvbi1zeW50YXgKIAotICAgIFlv
dSBtYXkgdXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBjb250ZXh0IG1hbmFnZXI6OgorICAgIDprd3Bh
cmFtIG1lc3NhZ2U6ICoqKGRlcHJlY2F0ZWQgc2luY2UgNC4xKSoqIGlmIHNwZWNpZmllZCwgcHJv
dmlkZXMgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlCisgICAgICAgIGlmIHRoZSBleGNlcHRpb24g
aXMgbm90IHJhaXNlZC4gU2VlIDpyZWY6YHRoZSBkZXByZWNhdGlvbiBkb2NzIDxyYWlzZXMgbWVz
c2FnZSBkZXByZWNhdGVkPmAgZm9yIGEgd29ya2Fyb3VuZC4KKworICAgIC4uIGN1cnJlbnRtb2R1
bGU6OiBfcHl0ZXN0Ll9jb2RlCisKKyAgICBVc2UgYGBweXRlc3QucmFpc2VzYGAgYXMgYSBjb250
ZXh0IG1hbmFnZXIsIHdoaWNoIHdpbGwgY2FwdHVyZSB0aGUgZXhjZXB0aW9uIG9mIHRoZSBnaXZl
bgorICAgIHR5cGU6OgogCiAgICAgICAgID4+PiB3aXRoIHJhaXNlcyhaZXJvRGl2aXNpb25FcnJv
cik6CiAgICAgICAgIC4uLiAgICAxLzAKIAotICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMi4xMAor
ICAgIElmIHRoZSBjb2RlIGJsb2NrIGRvZXMgbm90IHJhaXNlIHRoZSBleHBlY3RlZCBleGNlcHRp
b24gKGBgWmVyb0RpdmlzaW9uRXJyb3JgYCBpbiB0aGUgZXhhbXBsZQorICAgIGFib3ZlKSwgb3Ig
bm8gZXhjZXB0aW9uIGF0IGFsbCwgdGhlIGNoZWNrIHdpbGwgZmFpbCBpbnN0ZWFkLgorCisgICAg
WW91IGNhbiBhbHNvIHVzZSB0aGUga2V5d29yZCBhcmd1bWVudCBgYG1hdGNoYGAgdG8gYXNzZXJ0
IHRoYXQgdGhlCisgICAgZXhjZXB0aW9uIG1hdGNoZXMgYSB0ZXh0IG9yIHJlZ2V4OjoKIAotICAg
IEluIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9ybSB5b3UgbWF5IHVzZSB0aGUga2V5d29yZCBhcmd1
bWVudAotICAgIGBgbWVzc2FnZWBgIHRvIHNwZWNpZnkgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdl
OjoKKyAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZhbHVlRXJyb3IsIG1hdGNoPSdtdXN0IGJlIDAg
b3IgTm9uZScpOgorICAgICAgICAuLi4gICAgIHJhaXNlIFZhbHVlRXJyb3IoInZhbHVlIG11c3Qg
YmUgMCBvciBOb25lIikKKworICAgICAgICA+Pj4gd2l0aCByYWlzZXMoVmFsdWVFcnJvciwgbWF0
Y2g9cidtdXN0IGJlIFxkKyQnKToKKyAgICAgICAgLi4uICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2
YWx1ZSBtdXN0IGJlIDQyIikKKworICAgIFRoZSBjb250ZXh0IG1hbmFnZXIgcHJvZHVjZXMgYW4g
OmNsYXNzOmBFeGNlcHRpb25JbmZvYCBvYmplY3Qgd2hpY2ggY2FuIGJlIHVzZWQgdG8gaW5zcGVj
dCB0aGUKKyAgICBkZXRhaWxzIG9mIHRoZSBjYXB0dXJlZCBleGNlcHRpb246OgorCisgICAgICAg
ID4+PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9yKSBhcyBleGNfaW5mbzoKKyAgICAgICAgLi4uICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJlIDQyIikKKyAgICAgICAgPj4+IGFzc2Vy
dCBleGNfaW5mby50eXBlIGlzIFZhbHVlRXJyb3IKKyAgICAgICAgPj4+IGFzc2VydCBleGNfaW5m
by52YWx1ZS5hcmdzWzBdID09ICJ2YWx1ZSBtdXN0IGJlIDQyIgogCi0gICAgICAgID4+PiB3aXRo
IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgbWVzc2FnZT0iRXhwZWN0aW5nIFplcm9EaXZpc2lv
bkVycm9yIik6Ci0gICAgICAgIC4uLiAgICBwYXNzCi0gICAgICAgIFRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKLSAgICAgICAgICAuLi4KLSAgICAgICAgRmFpbGVkOiBFeHBlY3Rp
bmcgWmVyb0RpdmlzaW9uRXJyb3IKKyAgICAuLiBkZXByZWNhdGVkOjogNC4xCisKKyAgICAgICAg
SW4gdGhlIGNvbnRleHQgbWFuYWdlciBmb3JtIHlvdSBtYXkgdXNlIHRoZSBrZXl3b3JkIGFyZ3Vt
ZW50CisgICAgICAgIGBgbWVzc2FnZWBgIHRvIHNwZWNpZnkgYSBjdXN0b20gZmFpbHVyZSBtZXNz
YWdlIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQKKyAgICAgICAgaW4gY2FzZSB0aGUgYGBweXRlc3Qu
cmFpc2VzYGAgY2hlY2sgZmFpbHMuIFRoaXMgaGFzIGJlZW4gZGVwcmVjYXRlZCBhcyBpdAorICAg
ICAgICBpcyBjb25zaWRlcmVkIGVycm9yIHByb25lIGFzIHVzZXJzIG9mdGVuIG1lYW4gdG8gdXNl
IGBgbWF0Y2hgYCBpbnN0ZWFkLgorICAgICAgICBTZWUgOnJlZjpgdGhlIGRlcHJlY2F0aW9uIGRv
Y3MgPHJhaXNlcyBtZXNzYWdlIGRlcHJlY2F0ZWQ+YCBmb3IgYSB3b3JrYXJvdW5kLgogCiAgICAg
Li4gbm90ZTo6CiAKQEAgLTUzNSw3ICs2MTcsNyBAQCBkZWYgcmFpc2VzKGV4cGVjdGVkX2V4Y2Vw
dGlvbiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZhbHVl
RXJyb3IpIGFzIGV4Y19pbmZvOgogICAgICAgICAgICAuLi4gICAgIGlmIHZhbHVlID4gMTA6CiAg
ICAgICAgICAgIC4uLiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInZhbHVlIG11c3QgYmUgPD0g
MTAiKQotICAgICAgICAgICAuLi4gICAgIGFzc2VydCBleGNfaW5mby50eXBlID09IFZhbHVlRXJy
b3IgICMgdGhpcyB3aWxsIG5vdCBleGVjdXRlCisgICAgICAgICAgIC4uLiAgICAgYXNzZXJ0IGV4
Y19pbmZvLnR5cGUgaXMgVmFsdWVFcnJvciAgIyB0aGlzIHdpbGwgbm90IGV4ZWN1dGUKIAogICAg
ICAgIEluc3RlYWQsIHRoZSBmb2xsb3dpbmcgYXBwcm9hY2ggbXVzdCBiZSB0YWtlbiAobm90ZSB0
aGUgZGlmZmVyZW5jZSBpbgogICAgICAgIHNjb3BlKTo6CkBAIC01NDQsMjIgKzYyNiwxNyBAQCBk
ZWYgcmFpc2VzKGV4cGVjdGVkX2V4Y2VwdGlvbiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAg
ICAgLi4uICAgICBpZiB2YWx1ZSA+IDEwOgogICAgICAgICAgICAuLi4gICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJlIDw9IDEwIikKICAgICAgICAgICAgLi4uCi0gICAgICAg
ICAgID4+PiBhc3NlcnQgZXhjX2luZm8udHlwZSA9PSBWYWx1ZUVycm9yCisgICAgICAgICAgID4+
PiBhc3NlcnQgZXhjX2luZm8udHlwZSBpcyBWYWx1ZUVycm9yCiAKKyAgICAqKlVzaW5nIHdpdGgq
KiBgYHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAKIAotICAgIFNpbmNlIHZlcnNpb24gYGAzLjFg
YCB5b3UgY2FuIHVzZSB0aGUga2V5d29yZCBhcmd1bWVudCBgYG1hdGNoYGAgdG8gYXNzZXJ0IHRo
YXQgdGhlCi0gICAgZXhjZXB0aW9uIG1hdGNoZXMgYSB0ZXh0IG9yIHJlZ2V4OjoKKyAgICBXaGVu
IHVzaW5nIDpyZWY6YHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplIHJlZmAKKyAgICBpdCBpcyBwb3Nz
aWJsZSB0byBwYXJhbWV0cml6ZSB0ZXN0cyBzdWNoIHRoYXQKKyAgICBzb21lIHJ1bnMgcmFpc2Ug
YW4gZXhjZXB0aW9uIGFuZCBvdGhlcnMgZG8gbm90LgogCi0gICAgICAgID4+PiB3aXRoIHJhaXNl
cyhWYWx1ZUVycm9yLCBtYXRjaD0nbXVzdCBiZSAwIG9yIE5vbmUnKToKLSAgICAgICAgLi4uICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJlIDAgb3IgTm9uZSIpCisgICAgU2VlIDpy
ZWY6YHBhcmFtZXRyaXppbmdfY29uZGl0aW9uYWxfcmFpc2luZ2AgZm9yIGFuIGV4YW1wbGUuCiAK
LSAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZhbHVlRXJyb3IsIG1hdGNoPXInbXVzdCBiZSBcZCsk
Jyk6Ci0gICAgICAgIC4uLiAgICAgcmFpc2UgVmFsdWVFcnJvcigidmFsdWUgbXVzdCBiZSA0MiIp
Ci0KLSAgICAqKkxlZ2FjeSBmb3JtcyoqCi0KLSAgICBUaGUgZm9ybXMgYmVsb3cgYXJlIGZ1bGx5
IHN1cHBvcnRlZCBidXQgYXJlIGRpc2NvdXJhZ2VkIGZvciBuZXcgY29kZSBiZWNhdXNlIHRoZQot
ICAgIGNvbnRleHQgbWFuYWdlciBmb3JtIGlzIHJlZ2FyZGVkIGFzIG1vcmUgcmVhZGFibGUgYW5k
IGxlc3MgZXJyb3ItcHJvbmUuCisgICAgKipMZWdhY3kgZm9ybSoqCiAKICAgICBJdCBpcyBwb3Nz
aWJsZSB0byBzcGVjaWZ5IGEgY2FsbGFibGUgYnkgcGFzc2luZyBhIHRvLWJlLWNhbGxlZCBsYW1i
ZGE6OgogCkBAIC01NzUsMTcgKzY1Miw4IEBAIGRlZiByYWlzZXMoZXhwZWN0ZWRfZXhjZXB0aW9u
LCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICA+Pj4gcmFpc2VzKFplcm9EaXZpc2lvbkVycm9y
LCBmLCB4PTApCiAgICAgICAgIDxFeGNlcHRpb25JbmZvIC4uLj4KIAotICAgIEl0IGlzIGFsc28g
cG9zc2libGUgdG8gcGFzcyBhIHN0cmluZyB0byBiZSBldmFsdWF0ZWQgYXQgcnVudGltZTo6Ci0K
LSAgICAgICAgPj4+IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgImYoMCkiKQotICAgICAgICA8
RXhjZXB0aW9uSW5mbyAuLi4+Ci0KLSAgICBUaGUgc3RyaW5nIHdpbGwgYmUgZXZhbHVhdGVkIHVz
aW5nIHRoZSBzYW1lIGBgbG9jYWxzKClgYCBhbmQgYGBnbG9iYWxzKClgYAotICAgIGF0IHRoZSBt
b21lbnQgb2YgdGhlIGBgcmFpc2VzYGAgY2FsbC4KLQotICAgIC4uIGN1cnJlbnRtb2R1bGU6OiBf
cHl0ZXN0Ll9jb2RlCi0KLSAgICBDb25zdWx0IHRoZSBBUEkgb2YgYGBleGNpbmZvYGAgb2JqZWN0
czogOmNsYXNzOmBFeGNlcHRpb25JbmZvYC4KKyAgICBUaGUgZm9ybSBhYm92ZSBpcyBmdWxseSBz
dXBwb3J0ZWQgYnV0IGRpc2NvdXJhZ2VkIGZvciBuZXcgY29kZSBiZWNhdXNlIHRoZQorICAgIGNv
bnRleHQgbWFuYWdlciBmb3JtIGlzIHJlZ2FyZGVkIGFzIG1vcmUgcmVhZGFibGUgYW5kIGxlc3Mg
ZXJyb3ItcHJvbmUuCiAKICAgICAuLiBub3RlOjoKICAgICAgICAgU2ltaWxhciB0byBjYXVnaHQg
ZXhjZXB0aW9uIG9iamVjdHMgaW4gUHl0aG9uLCBleHBsaWNpdGx5IGNsZWFyaW5nCkBAIC02MTYs
MzMgKzY4NCwzNSBAQCBkZWYgcmFpc2VzKGV4cGVjdGVkX2V4Y2VwdGlvbiwgKmFyZ3MsICoqa3dh
cmdzKToKICAgICBpZiBub3QgYXJnczoKICAgICAgICAgaWYgIm1lc3NhZ2UiIGluIGt3YXJnczoK
ICAgICAgICAgICAgIG1lc3NhZ2UgPSBrd2FyZ3MucG9wKCJtZXNzYWdlIikKKyAgICAgICAgICAg
IHdhcm5pbmdzLndhcm4oZGVwcmVjYXRlZC5SQUlTRVNfTUVTU0FHRV9QQVJBTUVURVIsIHN0YWNr
bGV2ZWw9MikKICAgICAgICAgaWYgIm1hdGNoIiBpbiBrd2FyZ3M6CiAgICAgICAgICAgICBtYXRj
aF9leHByID0ga3dhcmdzLnBvcCgibWF0Y2giKQogICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAg
ICAgICBtc2cgPSAiVW5leHBlY3RlZCBrZXl3b3JkIGFyZ3VtZW50cyBwYXNzZWQgdG8gcHl0ZXN0
LnJhaXNlczogIgotICAgICAgICAgICAgbXNnICs9ICIsICIuam9pbihrd2FyZ3Mua2V5cygpKQor
ICAgICAgICAgICAgbXNnICs9ICIsICIuam9pbihzb3J0ZWQoa3dhcmdzKSkKICAgICAgICAgICAg
IHJhaXNlIFR5cGVFcnJvcihtc2cpCiAgICAgICAgIHJldHVybiBSYWlzZXNDb250ZXh0KGV4cGVj
dGVkX2V4Y2VwdGlvbiwgbWVzc2FnZSwgbWF0Y2hfZXhwcikKICAgICBlbGlmIGlzaW5zdGFuY2Uo
YXJnc1swXSwgc3RyKToKLSAgICAgICAgY29kZSwgPSBhcmdzCisgICAgICAgIHdhcm5pbmdzLndh
cm4oZGVwcmVjYXRlZC5SQUlTRVNfRVhFQywgc3RhY2tsZXZlbD0yKQorICAgICAgICAoY29kZSwp
ID0gYXJncwogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2RlLCBzdHIpCiAgICAgICAgIGZy
YW1lID0gc3lzLl9nZXRmcmFtZSgxKQogICAgICAgICBsb2MgPSBmcmFtZS5mX2xvY2Fscy5jb3B5
KCkKICAgICAgICAgbG9jLnVwZGF0ZShrd2FyZ3MpCiAgICAgICAgICMgcHJpbnQgInJhaXNlcyBm
cmFtZSBzY29wZTogJXIiICUgZnJhbWUuZl9sb2NhbHMKICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgY29kZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKGNvZGUpLmNvbXBpbGUoKQotICAgICAgICAg
ICAgcHkuYnVpbHRpbi5leGVjXyhjb2RlLCBmcmFtZS5mX2dsb2JhbHMsIGxvYykKLSAgICAgICAg
ICAgICMgWFhYIGRpZG4nVCBtZWFuIGZfZ2xvYmFscyA9PSBmX2xvY2FscyBzb21ldGhpbmcgc3Bl
Y2lhbD8KKyAgICAgICAgICAgIGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZShjb2RlKS5jb21w
aWxlKF9nZW5mcmFtZT1mcmFtZSkKKyAgICAgICAgICAgIGV4ZWMoY29kZSwgZnJhbWUuZl9nbG9i
YWxzLCBsb2MpCisgICAgICAgICAgICAjIFhYWCBkaWRuJ3QgbWVhbiBmX2dsb2JhbHMgPT0gZl9s
b2NhbHMgc29tZXRoaW5nIHNwZWNpYWw/CiAgICAgICAgICAgICAjICAgICB0aGlzIGlzIGRlc3Ry
b3llZCBoZXJlIC4uLgogICAgICAgICBleGNlcHQgZXhwZWN0ZWRfZXhjZXB0aW9uOgotICAgICAg
ICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgICAgICBy
ZXR1cm4gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCiAgICAgZWxz
ZToKICAgICAgICAgZnVuYyA9IGFyZ3NbMF0KICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZnVu
YygqYXJnc1sxOl0sICoqa3dhcmdzKQogICAgICAgICBleGNlcHQgZXhwZWN0ZWRfZXhjZXB0aW9u
OgotICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAg
ICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgp
CiAgICAgZmFpbChtZXNzYWdlKQogCiAKQEAgLTY1MCw3ICs3MjAsNiBAQCByYWlzZXMuRXhjZXB0
aW9uID0gZmFpbC5FeGNlcHRpb24KIAogCiBjbGFzcyBSYWlzZXNDb250ZXh0KG9iamVjdCk6Ci0K
ICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhwZWN0ZWRfZXhjZXB0aW9uLCBtZXNzYWdlLCBtYXRj
aF9leHByKToKICAgICAgICAgc2VsZi5leHBlY3RlZF9leGNlcHRpb24gPSBleHBlY3RlZF9leGNl
cHRpb24KICAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQpAQCAtNjU4LDcgKzcyNyw3IEBA
IGNsYXNzIFJhaXNlc0NvbnRleHQob2JqZWN0KToKICAgICAgICAgc2VsZi5leGNpbmZvID0gTm9u
ZQogCiAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgc2VsZi5leGNpbmZvID0gb2Jq
ZWN0Ll9fbmV3X18oX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKQorICAgICAgICBzZWxmLmV4
Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8uZm9yX2xhdGVyKCkKICAgICAgICAg
cmV0dXJuIHNlbGYuZXhjaW5mbwogCiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICp0cCk6CkBAIC02
NjksNiArNzM4LDYgQEAgY2xhc3MgUmFpc2VzQ29udGV4dChvYmplY3QpOgogICAgICAgICBzdXBw
cmVzc19leGNlcHRpb24gPSBpc3N1YmNsYXNzKHNlbGYuZXhjaW5mby50eXBlLCBzZWxmLmV4cGVj
dGVkX2V4Y2VwdGlvbikKICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyIGFuZCBz
dXBwcmVzc19leGNlcHRpb246CiAgICAgICAgICAgICBzeXMuZXhjX2NsZWFyKCkKLSAgICAgICAg
aWYgc2VsZi5tYXRjaF9leHByIGFuZCBzdXBwcmVzc19leGNlcHRpb246CisgICAgICAgIGlmIHNl
bGYubWF0Y2hfZXhwciBpcyBub3QgTm9uZSBhbmQgc3VwcHJlc3NfZXhjZXB0aW9uOgogICAgICAg
ICAgICAgc2VsZi5leGNpbmZvLm1hdGNoKHNlbGYubWF0Y2hfZXhwcikKICAgICAgICAgcmV0dXJu
IHN1cHByZXNzX2V4Y2VwdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
cmVjd2Fybi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3JlY3dhcm4ucHkKaW5kZXggNzgz
OWY1NzAwYzg3NWJjNzIzNTQyOGM5NWY4NDdjMGQ5NjBjZTU0Mi4uN2FiZjJlOTM1NTAyZGUzYzMz
M2RjZGIxNDEzMDJmZDZhYWQ1MjRhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvcmVjd2Fybi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9yZWN3YXJuLnB5CkBA
IC0xLDE1ICsxLDE5IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiIHJlY29yZGluZyB3
YXJuaW5ncyBkdXJpbmcgdGVzdCBmdW5jdGlvbiBleGVjdXRpb24uICIiIgotZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1w
b3J0IGluc3BlY3QKLQotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWltcG9ydCBweQoraW1wb3J0IHJl
CiBpbXBvcnQgc3lzCiBpbXBvcnQgd2FybmluZ3MKIAotaW1wb3J0IHJlCitpbXBvcnQgc2l4CiAK
K2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCitmcm9tIF9weXRlc3QuZGVwcmVjYXRlZCBpbXBvcnQgUFlU
RVNUX1dBUk5TX1VOS05PV05fS1dBUkdTCitmcm9tIF9weXRlc3QuZGVwcmVjYXRlZCBpbXBvcnQg
V0FSTlNfRVhFQwogZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCB5aWVsZF9maXh0dXJlCiBm
cm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwKIApAQCAtNDMsNDUgKzQ3LDEwIEBAIGRl
ZiBkZXByZWNhdGVkX2NhbGwoZnVuYz1Ob25lLCAqYXJncywgKiprd2FyZ3MpOgogICAgIGluIHdo
aWNoIGNhc2UgaXQgd2lsbCBlbnN1cmUgY2FsbGluZyBgYGZ1bmMoKmFyZ3MsICoqa3dhcmdzKWBg
IHByb2R1Y2VzIG9uZSBvZiB0aGUgd2FybmluZ3MKICAgICB0eXBlcyBhYm92ZS4KICAgICAiIiIK
LSAgICBpZiBub3QgZnVuYzoKLSAgICAgICAgcmV0dXJuIF9EZXByZWNhdGVkQ2FsbENvbnRleHQo
KQotICAgIGVsc2U6Ci0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICB3
aXRoIF9EZXByZWNhdGVkQ2FsbENvbnRleHQoKToKLSAgICAgICAgICAgIHJldHVybiBmdW5jKCph
cmdzLCAqKmt3YXJncykKLQotCi1jbGFzcyBfRGVwcmVjYXRlZENhbGxDb250ZXh0KG9iamVjdCk6
Ci0gICAgIiIiSW1wbGVtZW50cyB0aGUgbG9naWMgdG8gY2FwdHVyZSBkZXByZWNhdGlvbiB3YXJu
aW5ncyBhcyBhIGNvbnRleHQgbWFuYWdlci4iIiIKLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6
Ci0gICAgICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVnb3JpZXMgPSBbXQotICAgICAgICBzZWxmLl9v
bGRfd2FybiA9IHdhcm5pbmdzLndhcm4KLSAgICAgICAgc2VsZi5fb2xkX3dhcm5fZXhwbGljaXQg
PSB3YXJuaW5ncy53YXJuX2V4cGxpY2l0Ci0gICAgICAgIHdhcm5pbmdzLndhcm5fZXhwbGljaXQg
PSBzZWxmLl93YXJuX2V4cGxpY2l0Ci0gICAgICAgIHdhcm5pbmdzLndhcm4gPSBzZWxmLl93YXJu
Ci0KLSAgICBkZWYgX3dhcm5fZXhwbGljaXQoc2VsZiwgbWVzc2FnZSwgY2F0ZWdvcnksICphcmdz
LCAqKmt3YXJncyk6Ci0gICAgICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVnb3JpZXMuYXBwZW5kKGNh
dGVnb3J5KQotCi0gICAgZGVmIF93YXJuKHNlbGYsIG1lc3NhZ2UsIGNhdGVnb3J5PU5vbmUsICph
cmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UobWVzc2FnZSwgV2FybmluZyk6
Ci0gICAgICAgICAgICBzZWxmLl9jYXB0dXJlZF9jYXRlZ29yaWVzLmFwcGVuZChtZXNzYWdlLl9f
Y2xhc3NfXykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVn
b3JpZXMuYXBwZW5kKGNhdGVnb3J5KQotCi0gICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBl
LCBleGNfdmFsLCBleGNfdGIpOgotICAgICAgICB3YXJuaW5ncy53YXJuX2V4cGxpY2l0ID0gc2Vs
Zi5fb2xkX3dhcm5fZXhwbGljaXQKLSAgICAgICAgd2FybmluZ3Mud2FybiA9IHNlbGYuX29sZF93
YXJuCi0KLSAgICAgICAgaWYgZXhjX3R5cGUgaXMgTm9uZToKLSAgICAgICAgICAgIGRlcHJlY2F0
aW9uX2NhdGVnb3JpZXMgPSAoRGVwcmVjYXRpb25XYXJuaW5nLCBQZW5kaW5nRGVwcmVjYXRpb25X
YXJuaW5nKQotICAgICAgICAgICAgaWYgbm90IGFueSgKLSAgICAgICAgICAgICAgICBpc3N1YmNs
YXNzKGMsIGRlcHJlY2F0aW9uX2NhdGVnb3JpZXMpIGZvciBjIGluIHNlbGYuX2NhcHR1cmVkX2Nh
dGVnb3JpZXMKLSAgICAgICAgICAgICk6Ci0gICAgICAgICAgICAgICAgX190cmFjZWJhY2toaWRl
X18gPSBUcnVlCi0gICAgICAgICAgICAgICAgbXNnID0gIkRpZCBub3QgcHJvZHVjZSBEZXByZWNh
dGlvbldhcm5pbmcgb3IgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyIKLSAgICAgICAgICAgICAg
ICByYWlzZSBBc3NlcnRpb25FcnJvcihtc2cpCisgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVl
CisgICAgaWYgZnVuYyBpcyBub3QgTm9uZToKKyAgICAgICAgYXJncyA9IChmdW5jLCkgKyBhcmdz
CisgICAgcmV0dXJuIHdhcm5zKChEZXByZWNhdGlvbldhcm5pbmcsIFBlbmRpbmdEZXByZWNhdGlv
bldhcm5pbmcpLCAqYXJncywgKiprd2FyZ3MpCiAKIAogZGVmIHdhcm5zKGV4cGVjdGVkX3dhcm5p
bmcsICphcmdzLCAqKmt3YXJncyk6CkBAIC0xMTYsMjQgKzg1LDI4IEBAIGRlZiB3YXJucyhleHBl
Y3RlZF93YXJuaW5nLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICBGYWlsZWQ6IERJRCBOT1Qg
V0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlwZSAuLi5Vc2VyV2FybmluZy4uLiB3YXMgZW1pdHRlZC4u
LgogCiAgICAgIiIiCi0gICAgbWF0Y2hfZXhwciA9IE5vbmUKKyAgICBfX3RyYWNlYmFja2hpZGVf
XyA9IFRydWUKICAgICBpZiBub3QgYXJnczoKLSAgICAgICAgaWYgIm1hdGNoIiBpbiBrd2FyZ3M6
Ci0gICAgICAgICAgICBtYXRjaF9leHByID0ga3dhcmdzLnBvcCgibWF0Y2giKQorICAgICAgICBt
YXRjaF9leHByID0ga3dhcmdzLnBvcCgibWF0Y2giLCBOb25lKQorICAgICAgICBpZiBrd2FyZ3M6
CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgICAgIFBZVEVTVF9XQVJO
U19VTktOT1dOX0tXQVJHUy5mb3JtYXQoYXJncz1zb3J0ZWQoa3dhcmdzKSksIHN0YWNrbGV2ZWw9
MgorICAgICAgICAgICAgKQogICAgICAgICByZXR1cm4gV2FybmluZ3NDaGVja2VyKGV4cGVjdGVk
X3dhcm5pbmcsIG1hdGNoX2V4cHI9bWF0Y2hfZXhwcikKICAgICBlbGlmIGlzaW5zdGFuY2UoYXJn
c1swXSwgc3RyKToKLSAgICAgICAgY29kZSwgPSBhcmdzCisgICAgICAgIHdhcm5pbmdzLndhcm4o
V0FSTlNfRVhFQywgc3RhY2tsZXZlbD0yKQorICAgICAgICAoY29kZSwpID0gYXJncwogICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShjb2RlLCBzdHIpCiAgICAgICAgIGZyYW1lID0gc3lzLl9nZXRm
cmFtZSgxKQogICAgICAgICBsb2MgPSBmcmFtZS5mX2xvY2Fscy5jb3B5KCkKICAgICAgICAgbG9j
LnVwZGF0ZShrd2FyZ3MpCiAKLSAgICAgICAgd2l0aCBXYXJuaW5nc0NoZWNrZXIoZXhwZWN0ZWRf
d2FybmluZywgbWF0Y2hfZXhwcj1tYXRjaF9leHByKToKKyAgICAgICAgd2l0aCBXYXJuaW5nc0No
ZWNrZXIoZXhwZWN0ZWRfd2FybmluZyk6CiAgICAgICAgICAgICBjb2RlID0gX3B5dGVzdC5fY29k
ZS5Tb3VyY2UoY29kZSkuY29tcGlsZSgpCi0gICAgICAgICAgICBweS5idWlsdGluLmV4ZWNfKGNv
ZGUsIGZyYW1lLmZfZ2xvYmFscywgbG9jKQorICAgICAgICAgICAgZXhlYyhjb2RlLCBmcmFtZS5m
X2dsb2JhbHMsIGxvYykKICAgICBlbHNlOgogICAgICAgICBmdW5jID0gYXJnc1swXQotICAgICAg
ICB3aXRoIFdhcm5pbmdzQ2hlY2tlcihleHBlY3RlZF93YXJuaW5nLCBtYXRjaF9leHByPW1hdGNo
X2V4cHIpOgorICAgICAgICB3aXRoIFdhcm5pbmdzQ2hlY2tlcihleHBlY3RlZF93YXJuaW5nKToK
ICAgICAgICAgICAgIHJldHVybiBmdW5jKCphcmdzWzE6XSwgKiprd2FyZ3MpCiAKIApAQCAtMTgz
LDIzICsxNTYsNTYgQEAgY2xhc3MgV2FybmluZ3NSZWNvcmRlcih3YXJuaW5ncy5jYXRjaF93YXJu
aW5ncyk6CiAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIkNhbm5vdCBlbnRlciAlciB0
d2ljZSIgJSBzZWxmKQogICAgICAgICBzZWxmLl9saXN0ID0gc3VwZXIoV2FybmluZ3NSZWNvcmRl
ciwgc2VsZikuX19lbnRlcl9fKCkKICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJhbHdh
eXMiKQorICAgICAgICAjIHB5dGhvbjMga2VlcHMgdHJhY2sgb2YgYSAiZmlsdGVyIHZlcnNpb24i
LCB3aGVuIHRoZSBmaWx0ZXJzIGFyZQorICAgICAgICAjIHVwZGF0ZWQgcHJldmlvdXNseSBzZWVu
IHdhcm5pbmdzIGNhbiBiZSByZS13YXJuZWQuICBweXRob24yIGhhcyBubworICAgICAgICAjIGNv
bmNlcHQgb2YgdGhpcyBzbyB3ZSBtdXN0IHJlc2V0IHRoZSB3YXJuaW5ncyByZWdpc3RyeSBtYW51
YWxseS4KKyAgICAgICAgIyB0cml2aWFsIHBhdGNoaW5nIG9mIGB3YXJuaW5ncy53YXJuYCBzZWVt
cyB0byBiZSBlbm91Z2ggc29tZWhvdz8KKyAgICAgICAgaWYgc2l4LlBZMjoKKworICAgICAgICAg
ICAgZGVmIHdhcm4obWVzc2FnZSwgY2F0ZWdvcnk9Tm9uZSwgc3RhY2tsZXZlbD0xKToKKyAgICAg
ICAgICAgICAgICAjIGR1cGxpY2F0ZSB0aGUgc3RkbGliIGxvZ2ljIGR1ZSB0bworICAgICAgICAg
ICAgICAgICMgYmFkIGhhbmRpbmcgaW4gdGhlIGMgdmVyc2lvbiBvZiB3YXJuaW5ncworICAgICAg
ICAgICAgICAgIGlmIGlzaW5zdGFuY2UobWVzc2FnZSwgV2FybmluZyk6CisgICAgICAgICAgICAg
ICAgICAgIGNhdGVnb3J5ID0gbWVzc2FnZS5fX2NsYXNzX18KKyAgICAgICAgICAgICAgICAjIENo
ZWNrIGNhdGVnb3J5IGFyZ3VtZW50CisgICAgICAgICAgICAgICAgaWYgY2F0ZWdvcnkgaXMgTm9u
ZToKKyAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBVc2VyV2FybmluZworICAgICAgICAg
ICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKGNhdGVnb3J5LCBXYXJuaW5nKQorCisgICAgICAgICAg
ICAgICAgIyBlbXVsYXRlIHJlc2V0dGluZyB0aGUgd2FybiByZWdpc3RyeQorICAgICAgICAgICAg
ICAgIGZfZ2xvYmFscyA9IHN5cy5fZ2V0ZnJhbWUoc3RhY2tsZXZlbCkuZl9nbG9iYWxzCisgICAg
ICAgICAgICAgICAgaWYgIl9fd2FybmluZ3JlZ2lzdHJ5X18iIGluIGZfZ2xvYmFsczoKKyAgICAg
ICAgICAgICAgICAgICAgb3JpZyA9IGZfZ2xvYmFsc1siX193YXJuaW5ncmVnaXN0cnlfXyJdCisg
ICAgICAgICAgICAgICAgICAgIGZfZ2xvYmFsc1siX193YXJuaW5ncmVnaXN0cnlfXyJdID0gTm9u
ZQorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gc2VsZi5fc2F2ZWRfd2FybihtZXNzYWdlLCBjYXRlZ29yeSwgc3RhY2tsZXZlbCArIDEpCisg
ICAgICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgICAgICBmX2ds
b2JhbHNbIl9fd2FybmluZ3JlZ2lzdHJ5X18iXSA9IG9yaWcKKyAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fc2F2ZWRfd2FybihtZXNzYWdlLCBj
YXRlZ29yeSwgc3RhY2tsZXZlbCArIDEpCisKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4sIHNl
bGYuX3NhdmVkX3dhcm4gPSB3YXJuLCB3YXJuaW5ncy53YXJuCiAgICAgICAgIHJldHVybiBzZWxm
CiAKICAgICBkZWYgX19leGl0X18oc2VsZiwgKmV4Y19pbmZvKToKICAgICAgICAgaWYgbm90IHNl
bGYuX2VudGVyZWQ6CiAgICAgICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKICAgICAg
ICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiQ2Fubm90IGV4aXQgJXIgd2l0aG91dCBlbnRlcmlu
ZyBmaXJzdCIgJSBzZWxmKQorICAgICAgICAjIHNlZSBhYm92ZSB3aGVyZSBgc2VsZi5fc2F2ZWRf
d2FybmAgaXMgYXNzaWduZWQKKyAgICAgICAgaWYgc2l4LlBZMjoKKyAgICAgICAgICAgIHdhcm5p
bmdzLndhcm4gPSBzZWxmLl9zYXZlZF93YXJuCiAgICAgICAgIHN1cGVyKFdhcm5pbmdzUmVjb3Jk
ZXIsIHNlbGYpLl9fZXhpdF9fKCpleGNfaW5mbykKIAorICAgICAgICAjIEJ1aWx0LWluIGNhdGNo
X3dhcm5pbmdzIGRvZXMgbm90IHJlc2V0IGVudGVyZWQgc3RhdGUgc28gd2UgZG8gaXQKKyAgICAg
ICAgIyBtYW51YWxseSBoZXJlIGZvciB0aGlzIGNvbnRleHQgbWFuYWdlciB0byBiZWNvbWUgcmV1
c2FibGUuCisgICAgICAgIHNlbGYuX2VudGVyZWQgPSBGYWxzZQorCiAKIGNsYXNzIFdhcm5pbmdz
Q2hlY2tlcihXYXJuaW5nc1JlY29yZGVyKToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHBl
Y3RlZF93YXJuaW5nPU5vbmUsIG1hdGNoX2V4cHI9Tm9uZSk6CiAgICAgICAgIHN1cGVyKFdhcm5p
bmdzQ2hlY2tlciwgc2VsZikuX19pbml0X18oKQogCi0gICAgICAgIG1zZyA9ICgKLSAgICAgICAg
ICAgICJleGNlcHRpb25zIG11c3QgYmUgb2xkLXN0eWxlIGNsYXNzZXMgb3IgIiAiZGVyaXZlZCBm
cm9tIFdhcm5pbmcsIG5vdCAlcyIKLSAgICAgICAgKQorICAgICAgICBtc2cgPSAiZXhjZXB0aW9u
cyBtdXN0IGJlIG9sZC1zdHlsZSBjbGFzc2VzIG9yIGRlcml2ZWQgZnJvbSBXYXJuaW5nLCBub3Qg
JXMiCiAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWRfd2FybmluZywgdHVwbGUpOgogICAg
ICAgICAgICAgZm9yIGV4YyBpbiBleHBlY3RlZF93YXJuaW5nOgogICAgICAgICAgICAgICAgIGlm
IG5vdCBpbnNwZWN0LmlzY2xhc3MoZXhjKToKQEAgLTIxNSw2ICsyMjEsOCBAQCBjbGFzcyBXYXJu
aW5nc0NoZWNrZXIoV2FybmluZ3NSZWNvcmRlcik6CiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICpl
eGNfaW5mbyk6CiAgICAgICAgIHN1cGVyKFdhcm5pbmdzQ2hlY2tlciwgc2VsZikuX19leGl0X18o
KmV4Y19pbmZvKQogCisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorCiAgICAgICAg
ICMgb25seSBjaGVjayBpZiB3ZSdyZSBub3QgY3VycmVudGx5IGhhbmRsaW5nIGFuIGV4Y2VwdGlv
bgogICAgICAgICBpZiBhbGwoYSBpcyBOb25lIGZvciBhIGluIGV4Y19pbmZvKToKICAgICAgICAg
ICAgIGlmIHNlbGYuZXhwZWN0ZWRfd2FybmluZyBpcyBub3QgTm9uZToKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3JlcG9ydHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVz
dC9yZXBvcnRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiYmE2NzYyYzMzYTc1ZWE3ODkxYjNlM2ZlNmZlN2Jh
ZDUzMjg5ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9yZXBv
cnRzLnB5CkBAIC0wLDAgKzEsNDM1IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBw
cHJpbnQgaW1wb3J0IHBwcmludAorCitpbXBvcnQgcHkKK2ltcG9ydCBzaXgKKworZnJvbSBfcHl0
ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IEV4Y2VwdGlvbkluZm8KK2Zyb20gX3B5dGVzdC5fY29kZS5j
b2RlIGltcG9ydCBSZXByRW50cnkKK2Zyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBSZXBy
RW50cnlOYXRpdmUKK2Zyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBSZXByRXhjZXB0aW9u
SW5mbworZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFJlcHJGaWxlTG9jYXRpb24KK2Zy
b20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBSZXByRnVuY0FyZ3MKK2Zyb20gX3B5dGVzdC5f
Y29kZS5jb2RlIGltcG9ydCBSZXByTG9jYWxzCitmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBv
cnQgUmVwclRyYWNlYmFjaworZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFRlcm1pbmFs
UmVwcgorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBza2lwCitmcm9tIF9weXRlc3QucGF0
aGxpYiBpbXBvcnQgUGF0aAorCisKK2RlZiBnZXRzbGF2ZWluZm9saW5lKG5vZGUpOgorICAgIHRy
eToKKyAgICAgICAgcmV0dXJuIG5vZGUuX3NsYXZlaW5mb2NhY2hlCisgICAgZXhjZXB0IEF0dHJp
YnV0ZUVycm9yOgorICAgICAgICBkID0gbm9kZS5zbGF2ZWluZm8KKyAgICAgICAgdmVyID0gIiVz
LiVzLiVzIiAlIGRbInZlcnNpb25faW5mbyJdWzozXQorICAgICAgICBub2RlLl9zbGF2ZWluZm9j
YWNoZSA9IHMgPSAiWyVzXSAlcyAtLSBQeXRob24gJXMgJXMiICUgKAorICAgICAgICAgICAgZFsi
aWQiXSwKKyAgICAgICAgICAgIGRbInN5c3BsYXRmb3JtIl0sCisgICAgICAgICAgICB2ZXIsCisg
ICAgICAgICAgICBkWyJleGVjdXRhYmxlIl0sCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHMK
KworCitjbGFzcyBCYXNlUmVwb3J0KG9iamVjdCk6CisgICAgd2hlbiA9IE5vbmUKKyAgICBsb2Nh
dGlvbiA9IE5vbmUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3KToKKyAgICAgICAgc2Vs
Zi5fX2RpY3RfXy51cGRhdGUoa3cpCisKKyAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCBvdXQpOgor
ICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJub2RlIik6CisgICAgICAgICAgICBvdXQubGluZShn
ZXRzbGF2ZWluZm9saW5lKHNlbGYubm9kZSkpCisKKyAgICAgICAgbG9uZ3JlcHIgPSBzZWxmLmxv
bmdyZXByCisgICAgICAgIGlmIGxvbmdyZXByIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4K
KworICAgICAgICBpZiBoYXNhdHRyKGxvbmdyZXByLCAidG90ZXJtaW5hbCIpOgorICAgICAgICAg
ICAgbG9uZ3JlcHIudG90ZXJtaW5hbChvdXQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgb3V0LmxpbmUobG9uZ3JlcHIpCisgICAgICAgICAgICBleGNl
cHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICAgICAgICAgIG91dC5saW5lKCI8dW5wcmlu
dGFibGUgbG9uZ3JlcHI+IikKKworICAgIGRlZiBnZXRfc2VjdGlvbnMoc2VsZiwgcHJlZml4KToK
KyAgICAgICAgZm9yIG5hbWUsIGNvbnRlbnQgaW4gc2VsZi5zZWN0aW9uczoKKyAgICAgICAgICAg
IGlmIG5hbWUuc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICAgICAgICAgIHlpZWxkIHByZWZp
eCwgY29udGVudAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxvbmdyZXBydGV4dChzZWxmKToK
KyAgICAgICAgIiIiCisgICAgICAgIFJlYWQtb25seSBwcm9wZXJ0eSB0aGF0IHJldHVybnMgdGhl
IGZ1bGwgc3RyaW5nIHJlcHJlc2VudGF0aW9uCisgICAgICAgIG9mIGBgbG9uZ3JlcHJgYC4KKwor
ICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKKyAgICAgICAgIiIiCisgICAgICAgIHR3ID0g
cHkuaW8uVGVybWluYWxXcml0ZXIoc3RyaW5naW89VHJ1ZSkKKyAgICAgICAgdHcuaGFzbWFya3Vw
ID0gRmFsc2UKKyAgICAgICAgc2VsZi50b3Rlcm1pbmFsKHR3KQorICAgICAgICBleGMgPSB0dy5z
dHJpbmdpby5nZXR2YWx1ZSgpCisgICAgICAgIHJldHVybiBleGMuc3RyaXAoKQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGNhcGxvZyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGNhcHR1cmVk
IGxvZyBsaW5lcywgaWYgbG9nIGNhcHR1cmluZyBpcyBlbmFibGVkCisKKyAgICAgICAgLi4gdmVy
c2lvbmFkZGVkOjogMy41CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gIlxuIi5qb2luKAor
ICAgICAgICAgICAgY29udGVudCBmb3IgKHByZWZpeCwgY29udGVudCkgaW4gc2VsZi5nZXRfc2Vj
dGlvbnMoIkNhcHR1cmVkIGxvZyIpCisgICAgICAgICkKKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiBjYXBzdGRvdXQoc2VsZik6CisgICAgICAgICIiIlJldHVybiBjYXB0dXJlZCB0ZXh0IGZyb20g
c3Rkb3V0LCBpZiBjYXB0dXJpbmcgaXMgZW5hYmxlZAorCisgICAgICAgIC4uIHZlcnNpb25hZGRl
ZDo6IDMuMAorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuICIiLmpvaW4oCisgICAgICAgICAg
ICBjb250ZW50IGZvciAocHJlZml4LCBjb250ZW50KSBpbiBzZWxmLmdldF9zZWN0aW9ucygiQ2Fw
dHVyZWQgc3Rkb3V0IikKKyAgICAgICAgKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNhcHN0
ZGVycihzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGNhcHR1cmVkIHRleHQgZnJvbSBzdGRlcnIs
IGlmIGNhcHR1cmluZyBpcyBlbmFibGVkCisKKyAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4w
CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gIiIuam9pbigKKyAgICAgICAgICAgIGNvbnRl
bnQgZm9yIChwcmVmaXgsIGNvbnRlbnQpIGluIHNlbGYuZ2V0X3NlY3Rpb25zKCJDYXB0dXJlZCBz
dGRlcnIiKQorICAgICAgICApCisKKyAgICBwYXNzZWQgPSBwcm9wZXJ0eShsYW1iZGEgeDogeC5v
dXRjb21lID09ICJwYXNzZWQiKQorICAgIGZhaWxlZCA9IHByb3BlcnR5KGxhbWJkYSB4OiB4Lm91
dGNvbWUgPT0gImZhaWxlZCIpCisgICAgc2tpcHBlZCA9IHByb3BlcnR5KGxhbWJkYSB4OiB4Lm91
dGNvbWUgPT0gInNraXBwZWQiKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZzcGF0aChzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYubm9kZWlkLnNwbGl0KCI6OiIpWzBdCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgY291bnRfdG93YXJkc19zdW1tYXJ5KHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgKipFeHBlcmltZW50YWwqKgorCisgICAgICAgIFJldHVybnMgVHJ1ZSBpZiB0aGlz
IHJlcG9ydCBzaG91bGQgYmUgY291bnRlZCB0b3dhcmRzIHRoZSB0b3RhbHMgc2hvd24gYXQgdGhl
IGVuZCBvZiB0aGUKKyAgICAgICAgdGVzdCBzZXNzaW9uOiAiMSBwYXNzZWQsIDEgZmFpbHVyZSwg
ZXRjIi4KKworICAgICAgICAuLiBub3RlOjoKKworICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBp
cyBjb25zaWRlcmVkICoqZXhwZXJpbWVudGFsKiosIHNvIGJld2FyZSB0aGF0IGl0IGlzIHN1Ympl
Y3QgdG8gY2hhbmdlcworICAgICAgICAgICAgZXZlbiBpbiBwYXRjaCByZWxlYXNlcy4KKyAgICAg
ICAgIiIiCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaGVh
ZF9saW5lKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgKipFeHBlcmltZW50YWwqKgorCisg
ICAgICAgIFJldHVybnMgdGhlIGhlYWQgbGluZSBzaG93biB3aXRoIGxvbmdyZXByIG91dHB1dCBm
b3IgdGhpcyByZXBvcnQsIG1vcmUgY29tbW9ubHkgZHVyaW5nCisgICAgICAgIHRyYWNlYmFjayBy
ZXByZXNlbnRhdGlvbiBkdXJpbmcgZmFpbHVyZXM6OgorCisgICAgICAgICAgICBfX19fX19fXyBU
ZXN0LmZvbyBfX19fX19fXworCisKKyAgICAgICAgSW4gdGhlIGV4YW1wbGUgYWJvdmUsIHRoZSBo
ZWFkX2xpbmUgaXMgIlRlc3QuZm9vIi4KKworICAgICAgICAuLiBub3RlOjoKKworICAgICAgICAg
ICAgVGhpcyBmdW5jdGlvbiBpcyBjb25zaWRlcmVkICoqZXhwZXJpbWVudGFsKiosIHNvIGJld2Fy
ZSB0aGF0IGl0IGlzIHN1YmplY3QgdG8gY2hhbmdlcworICAgICAgICAgICAgZXZlbiBpbiBwYXRj
aCByZWxlYXNlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYubG9jYXRpb24gaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBmc3BhdGgsIGxpbmVubywgZG9tYWluID0gc2VsZi5sb2NhdGlv
bgorICAgICAgICAgICAgcmV0dXJuIGRvbWFpbgorCisgICAgZGVmIF9nZXRfdmVyYm9zZV93b3Jk
KHNlbGYsIGNvbmZpZyk6CisgICAgICAgIF9jYXRlZ29yeSwgX3Nob3J0LCB2ZXJib3NlID0gY29u
ZmlnLmhvb2sucHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKAorICAgICAgICAgICAgcmVwb3J0PXNl
bGYsIGNvbmZpZz1jb25maWcKKyAgICAgICAgKQorICAgICAgICByZXR1cm4gdmVyYm9zZQorCisg
ICAgZGVmIF90b19qc29uKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyB3YXMgb3Jp
Z2luYWxseSB0aGUgc2VyaWFsaXplX3JlcG9ydCgpIGZ1bmN0aW9uIGZyb20geGRpc3QgKGNhMDMy
NjkpLgorCisgICAgICAgIFJldHVybnMgdGhlIGNvbnRlbnRzIG9mIHRoaXMgcmVwb3J0IGFzIGEg
ZGljdCBvZiBidWlsdGluIGVudHJpZXMsIHN1aXRhYmxlIGZvcgorICAgICAgICBzZXJpYWxpemF0
aW9uLgorCisgICAgICAgIEV4cGVyaW1lbnRhbCBtZXRob2QuCisgICAgICAgICIiIgorCisgICAg
ICAgIGRlZiBkaXNhc3NlbWJsZWRfcmVwb3J0KHJlcCk6CisgICAgICAgICAgICByZXBydHJhY2Vi
YWNrID0gcmVwLmxvbmdyZXByLnJlcHJ0cmFjZWJhY2suX19kaWN0X18uY29weSgpCisgICAgICAg
ICAgICByZXByY3Jhc2ggPSByZXAubG9uZ3JlcHIucmVwcmNyYXNoLl9fZGljdF9fLmNvcHkoKQor
CisgICAgICAgICAgICBuZXdfZW50cmllcyA9IFtdCisgICAgICAgICAgICBmb3IgZW50cnkgaW4g
cmVwcnRyYWNlYmFja1sicmVwcmVudHJpZXMiXToKKyAgICAgICAgICAgICAgICBlbnRyeV9kYXRh
ID0geworICAgICAgICAgICAgICAgICAgICAidHlwZSI6IHR5cGUoZW50cnkpLl9fbmFtZV9fLAor
ICAgICAgICAgICAgICAgICAgICAiZGF0YSI6IGVudHJ5Ll9fZGljdF9fLmNvcHkoKSwKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gZW50cnlfZGF0
YVsiZGF0YSJdLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIodmFsdWUs
ICJfX2RpY3RfXyIpOgorICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlfZGF0YVsiZGF0YSJd
W2tleV0gPSB2YWx1ZS5fX2RpY3RfXy5jb3B5KCkKKyAgICAgICAgICAgICAgICBuZXdfZW50cmll
cy5hcHBlbmQoZW50cnlfZGF0YSkKKworICAgICAgICAgICAgcmVwcnRyYWNlYmFja1sicmVwcmVu
dHJpZXMiXSA9IG5ld19lbnRyaWVzCisKKyAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICAgICAgInJlcHJjcmFzaCI6IHJlcHJjcmFzaCwKKyAgICAgICAgICAgICAgICAicmVwcnRyYWNl
YmFjayI6IHJlcHJ0cmFjZWJhY2ssCisgICAgICAgICAgICAgICAgInNlY3Rpb25zIjogcmVwLmxv
bmdyZXByLnNlY3Rpb25zLAorICAgICAgICAgICAgfQorCisgICAgICAgIGQgPSBzZWxmLl9fZGlj
dF9fLmNvcHkoKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYubG9uZ3JlcHIsICJ0b3Rlcm1pbmFs
Iik6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYubG9uZ3JlcHIsICJyZXBydHJhY2ViYWNr
IikgYW5kIGhhc2F0dHIoCisgICAgICAgICAgICAgICAgc2VsZi5sb25ncmVwciwgInJlcHJjcmFz
aCIKKyAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgZFsibG9uZ3JlcHIiXSA9IGRpc2Fz
c2VtYmxlZF9yZXBvcnQoc2VsZikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ZFsibG9uZ3JlcHIiXSA9IHNpeC50ZXh0X3R5cGUoc2VsZi5sb25ncmVwcikKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGRbImxvbmdyZXByIl0gPSBzZWxmLmxvbmdyZXByCisgICAgICAgIGZv
ciBuYW1lIGluIGQ6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGRbbmFtZV0sIChweS5wYXRo
LmxvY2FsLCBQYXRoKSk6CisgICAgICAgICAgICAgICAgZFtuYW1lXSA9IHN0cihkW25hbWVdKQor
ICAgICAgICAgICAgZWxpZiBuYW1lID09ICJyZXN1bHQiOgorICAgICAgICAgICAgICAgIGRbbmFt
ZV0gPSBOb25lICAjIGZvciBub3cKKyAgICAgICAgcmV0dXJuIGQKKworICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBfZnJvbV9qc29uKGNscywgcmVwb3J0ZGljdCk6CisgICAgICAgICIiIgorICAg
ICAgICBUaGlzIHdhcyBvcmlnaW5hbGx5IHRoZSBzZXJpYWxpemVfcmVwb3J0KCkgZnVuY3Rpb24g
ZnJvbSB4ZGlzdCAoY2EwMzI2OSkuCisKKyAgICAgICAgRmFjdG9yeSBtZXRob2QgdGhhdCByZXR1
cm5zIGVpdGhlciBhIFRlc3RSZXBvcnQgb3IgQ29sbGVjdFJlcG9ydCwgZGVwZW5kaW5nIG9uIHRo
ZSBjYWxsaW5nCisgICAgICAgIGNsYXNzLiBJdCdzIHRoZSBjYWxsZXJzIHJlc3BvbnNpYmlsaXR5
IHRvIGtub3cgd2hpY2ggY2xhc3MgdG8gcGFzcyBoZXJlLgorCisgICAgICAgIEV4cGVyaW1lbnRh
bCBtZXRob2QuCisgICAgICAgICIiIgorICAgICAgICBpZiByZXBvcnRkaWN0WyJsb25ncmVwciJd
OgorICAgICAgICAgICAgaWYgKAorICAgICAgICAgICAgICAgICJyZXByY3Jhc2giIGluIHJlcG9y
dGRpY3RbImxvbmdyZXByIl0KKyAgICAgICAgICAgICAgICBhbmQgInJlcHJ0cmFjZWJhY2siIGlu
IHJlcG9ydGRpY3RbImxvbmdyZXByIl0KKyAgICAgICAgICAgICk6CisKKyAgICAgICAgICAgICAg
ICByZXBydHJhY2ViYWNrID0gcmVwb3J0ZGljdFsibG9uZ3JlcHIiXVsicmVwcnRyYWNlYmFjayJd
CisgICAgICAgICAgICAgICAgcmVwcmNyYXNoID0gcmVwb3J0ZGljdFsibG9uZ3JlcHIiXVsicmVw
cmNyYXNoIl0KKworICAgICAgICAgICAgICAgIHVuc2VyaWFsaXplZF9lbnRyaWVzID0gW10KKyAg
ICAgICAgICAgICAgICByZXByZW50cnkgPSBOb25lCisgICAgICAgICAgICAgICAgZm9yIGVudHJ5
X2RhdGEgaW4gcmVwcnRyYWNlYmFja1sicmVwcmVudHJpZXMiXToKKyAgICAgICAgICAgICAgICAg
ICAgZGF0YSA9IGVudHJ5X2RhdGFbImRhdGEiXQorICAgICAgICAgICAgICAgICAgICBlbnRyeV90
eXBlID0gZW50cnlfZGF0YVsidHlwZSJdCisgICAgICAgICAgICAgICAgICAgIGlmIGVudHJ5X3R5
cGUgPT0gIlJlcHJFbnRyeSI6CisgICAgICAgICAgICAgICAgICAgICAgICByZXByZnVuY2FyZ3Mg
PSBOb25lCisgICAgICAgICAgICAgICAgICAgICAgICByZXByZmlsZWxvYyA9IE5vbmUKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcHJsb2NhbHMgPSBOb25lCisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiBkYXRhWyJyZXByZnVuY2FyZ3MiXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXByZnVuY2FyZ3MgPSBSZXByRnVuY0FyZ3MoKipkYXRhWyJyZXByZnVuY2FyZ3MiXSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIGRhdGFbInJlcHJmaWxlbG9jIl06CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwcmZpbGVsb2MgPSBSZXByRmlsZUxvY2F0aW9uKCoqZGF0YVsi
cmVwcmZpbGVsb2MiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRhdGFbInJlcHJsb2Nh
bHMiXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBybG9jYWxzID0gUmVwckxvY2Fs
cyhkYXRhWyJyZXBybG9jYWxzIl1bImxpbmVzIl0pCisKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJlcHJlbnRyeSA9IFJlcHJFbnRyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5l
cz1kYXRhWyJsaW5lcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHJmdW5jYXJn
cz1yZXByZnVuY2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcmxvY2Fscz1y
ZXBybG9jYWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVsb2NyZXByPXJlcHJm
aWxlbG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPWRhdGFbInN0eWxlIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgIGVsaWYgZW50
cnlfdHlwZSA9PSAiUmVwckVudHJ5TmF0aXZlIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
cHJlbnRyeSA9IFJlcHJFbnRyeU5hdGl2ZShkYXRhWyJsaW5lcyJdKQorICAgICAgICAgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgX3JlcG9ydF91bnNlcmlhbGl6YXRp
b25fZmFpbHVyZShlbnRyeV90eXBlLCBjbHMsIHJlcG9ydGRpY3QpCisgICAgICAgICAgICAgICAg
ICAgIHVuc2VyaWFsaXplZF9lbnRyaWVzLmFwcGVuZChyZXByZW50cnkpCisgICAgICAgICAgICAg
ICAgcmVwcnRyYWNlYmFja1sicmVwcmVudHJpZXMiXSA9IHVuc2VyaWFsaXplZF9lbnRyaWVzCisK
KyAgICAgICAgICAgICAgICBleGNlcHRpb25faW5mbyA9IFJlcHJFeGNlcHRpb25JbmZvKAorICAg
ICAgICAgICAgICAgICAgICByZXBydHJhY2ViYWNrPVJlcHJUcmFjZWJhY2soKipyZXBydHJhY2Vi
YWNrKSwKKyAgICAgICAgICAgICAgICAgICAgcmVwcmNyYXNoPVJlcHJGaWxlTG9jYXRpb24oKipy
ZXByY3Jhc2gpLAorICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgICAgIGZvciBzZWN0
aW9uIGluIHJlcG9ydGRpY3RbImxvbmdyZXByIl1bInNlY3Rpb25zIl06CisgICAgICAgICAgICAg
ICAgICAgIGV4Y2VwdGlvbl9pbmZvLmFkZHNlY3Rpb24oKnNlY3Rpb24pCisgICAgICAgICAgICAg
ICAgcmVwb3J0ZGljdFsibG9uZ3JlcHIiXSA9IGV4Y2VwdGlvbl9pbmZvCisKKyAgICAgICAgcmV0
dXJuIGNscygqKnJlcG9ydGRpY3QpCisKKworZGVmIF9yZXBvcnRfdW5zZXJpYWxpemF0aW9uX2Zh
aWx1cmUodHlwZV9uYW1lLCByZXBvcnRfY2xhc3MsIHJlcG9ydGRpY3QpOgorICAgIHVybCA9ICJo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzIgorICAgIHN0cmVhbSA9
IHB5LmlvLlRleHRJTygpCisgICAgcHByaW50KCItIiAqIDEwMCwgc3RyZWFtPXN0cmVhbSkKKyAg
ICBwcHJpbnQoIklOVEVSTkFMRVJST1I6IFVua25vd24gZW50cnkgdHlwZSByZXR1cm5lZDogJXMi
ICUgdHlwZV9uYW1lLCBzdHJlYW09c3RyZWFtKQorICAgIHBwcmludCgicmVwb3J0X25hbWU6ICVz
IiAlIHJlcG9ydF9jbGFzcywgc3RyZWFtPXN0cmVhbSkKKyAgICBwcHJpbnQocmVwb3J0ZGljdCwg
c3RyZWFtPXN0cmVhbSkKKyAgICBwcHJpbnQoIlBsZWFzZSByZXBvcnQgdGhpcyBidWcgYXQgJXMi
ICUgdXJsLCBzdHJlYW09c3RyZWFtKQorICAgIHBwcmludCgiLSIgKiAxMDAsIHN0cmVhbT1zdHJl
YW0pCisgICAgcmFpc2UgUnVudGltZUVycm9yKHN0cmVhbS5nZXR2YWx1ZSgpKQorCisKK2NsYXNz
IFRlc3RSZXBvcnQoQmFzZVJlcG9ydCk6CisgICAgIiIiIEJhc2ljIHRlc3QgcmVwb3J0IG9iamVj
dCAoYWxzbyB1c2VkIGZvciBzZXR1cCBhbmQgdGVhcmRvd24gY2FsbHMgaWYKKyAgICB0aGV5IGZh
aWwpLgorICAgICIiIgorCisgICAgX190ZXN0X18gPSBGYWxzZQorCisgICAgZGVmIF9faW5pdF9f
KAorICAgICAgICBzZWxmLAorICAgICAgICBub2RlaWQsCisgICAgICAgIGxvY2F0aW9uLAorICAg
ICAgICBrZXl3b3JkcywKKyAgICAgICAgb3V0Y29tZSwKKyAgICAgICAgbG9uZ3JlcHIsCisgICAg
ICAgIHdoZW4sCisgICAgICAgIHNlY3Rpb25zPSgpLAorICAgICAgICBkdXJhdGlvbj0wLAorICAg
ICAgICB1c2VyX3Byb3BlcnRpZXM9Tm9uZSwKKyAgICAgICAgKipleHRyYQorICAgICk6CisgICAg
ICAgICM6IG5vcm1hbGl6ZWQgY29sbGVjdGlvbiBub2RlIGlkCisgICAgICAgIHNlbGYubm9kZWlk
ID0gbm9kZWlkCisKKyAgICAgICAgIzogYSAoZmlsZXN5c3RlbXBhdGgsIGxpbmVubywgZG9tYWlu
aW5mbykgdHVwbGUgaW5kaWNhdGluZyB0aGUKKyAgICAgICAgIzogYWN0dWFsIGxvY2F0aW9uIG9m
IGEgdGVzdCBpdGVtIC0gaXQgbWlnaHQgYmUgZGlmZmVyZW50IGZyb20gdGhlCisgICAgICAgICM6
IGNvbGxlY3RlZCBvbmUgZS5nLiBpZiBhIG1ldGhvZCBpcyBpbmhlcml0ZWQgZnJvbSBhIGRpZmZl
cmVudCBtb2R1bGUuCisgICAgICAgIHNlbGYubG9jYXRpb24gPSBsb2NhdGlvbgorCisgICAgICAg
ICM6IGEgbmFtZSAtPiB2YWx1ZSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgYWxsIGtleXdvcmRzIGFu
ZAorICAgICAgICAjOiBtYXJrZXJzIGFzc29jaWF0ZWQgd2l0aCBhIHRlc3QgaW52b2NhdGlvbi4K
KyAgICAgICAgc2VsZi5rZXl3b3JkcyA9IGtleXdvcmRzCisKKyAgICAgICAgIzogdGVzdCBvdXRj
b21lLCBhbHdheXMgb25lIG9mICJwYXNzZWQiLCAiZmFpbGVkIiwgInNraXBwZWQiLgorICAgICAg
ICBzZWxmLm91dGNvbWUgPSBvdXRjb21lCisKKyAgICAgICAgIzogTm9uZSBvciBhIGZhaWx1cmUg
cmVwcmVzZW50YXRpb24uCisgICAgICAgIHNlbGYubG9uZ3JlcHIgPSBsb25ncmVwcgorCisgICAg
ICAgICM6IG9uZSBvZiAnc2V0dXAnLCAnY2FsbCcsICd0ZWFyZG93bicgdG8gaW5kaWNhdGUgcnVu
dGVzdCBwaGFzZS4KKyAgICAgICAgc2VsZi53aGVuID0gd2hlbgorCisgICAgICAgICM6IHVzZXIg
cHJvcGVydGllcyBpcyBhIGxpc3Qgb2YgdHVwbGVzIChuYW1lLCB2YWx1ZSkgdGhhdCBob2xkcyB1
c2VyCisgICAgICAgICM6IGRlZmluZWQgcHJvcGVydGllcyBvZiB0aGUgdGVzdAorICAgICAgICBz
ZWxmLnVzZXJfcHJvcGVydGllcyA9IGxpc3QodXNlcl9wcm9wZXJ0aWVzIG9yIFtdKQorCisgICAg
ICAgICM6IGxpc3Qgb2YgcGFpcnMgYGAoc3RyLCBzdHIpYGAgb2YgZXh0cmEgaW5mb3JtYXRpb24g
d2hpY2ggbmVlZHMgdG8KKyAgICAgICAgIzogbWFyc2hhbGxhYmxlLiBVc2VkIGJ5IHB5dGVzdCB0
byBhZGQgY2FwdHVyZWQgdGV4dAorICAgICAgICAjOiBmcm9tIGBgc3Rkb3V0YGAgYW5kIGBgc3Rk
ZXJyYGAsIGJ1dCBtYXkgYmUgdXNlZCBieSBvdGhlciBwbHVnaW5zCisgICAgICAgICM6IHRvIGFk
ZCBhcmJpdHJhcnkgaW5mb3JtYXRpb24gdG8gcmVwb3J0cy4KKyAgICAgICAgc2VsZi5zZWN0aW9u
cyA9IGxpc3Qoc2VjdGlvbnMpCisKKyAgICAgICAgIzogdGltZSBpdCB0b29rIHRvIHJ1biBqdXN0
IHRoZSB0ZXN0CisgICAgICAgIHNlbGYuZHVyYXRpb24gPSBkdXJhdGlvbgorCisgICAgICAgIHNl
bGYuX19kaWN0X18udXBkYXRlKGV4dHJhKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAg
ICAgICByZXR1cm4gIjwlcyAlciB3aGVuPSVyIG91dGNvbWU9JXI+IiAlICgKKyAgICAgICAgICAg
IHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgc2VsZi5ub2RlaWQsCisgICAg
ICAgICAgICBzZWxmLndoZW4sCisgICAgICAgICAgICBzZWxmLm91dGNvbWUsCisgICAgICAgICkK
KworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2l0ZW1fYW5kX2NhbGwoY2xzLCBpdGVt
LCBjYWxsKToKKyAgICAgICAgIiIiCisgICAgICAgIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBh
bmQgZmlsbCBhIFRlc3RSZXBvcnQgd2l0aCBzdGFuZGFyZCBpdGVtIGFuZCBjYWxsIGluZm8uCisg
ICAgICAgICIiIgorICAgICAgICB3aGVuID0gY2FsbC53aGVuCisgICAgICAgIGR1cmF0aW9uID0g
Y2FsbC5zdG9wIC0gY2FsbC5zdGFydAorICAgICAgICBrZXl3b3JkcyA9IHt4OiAxIGZvciB4IGlu
IGl0ZW0ua2V5d29yZHN9CisgICAgICAgIGV4Y2luZm8gPSBjYWxsLmV4Y2luZm8KKyAgICAgICAg
c2VjdGlvbnMgPSBbXQorICAgICAgICBpZiBub3QgY2FsbC5leGNpbmZvOgorICAgICAgICAgICAg
b3V0Y29tZSA9ICJwYXNzZWQiCisgICAgICAgICAgICBsb25ncmVwciA9IE5vbmUKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4Y2luZm8sIEV4Y2VwdGlvbklu
Zm8pOgorICAgICAgICAgICAgICAgIG91dGNvbWUgPSAiZmFpbGVkIgorICAgICAgICAgICAgICAg
IGxvbmdyZXByID0gZXhjaW5mbworICAgICAgICAgICAgZWxpZiBleGNpbmZvLmVycmlzaW5zdGFu
Y2Uoc2tpcC5FeGNlcHRpb24pOgorICAgICAgICAgICAgICAgIG91dGNvbWUgPSAic2tpcHBlZCIK
KyAgICAgICAgICAgICAgICByID0gZXhjaW5mby5fZ2V0cmVwcmNyYXNoKCkKKyAgICAgICAgICAg
ICAgICBsb25ncmVwciA9IChzdHIoci5wYXRoKSwgci5saW5lbm8sIHIubWVzc2FnZSkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgb3V0Y29tZSA9ICJmYWlsZWQiCisgICAgICAg
ICAgICAgICAgaWYgY2FsbC53aGVuID09ICJjYWxsIjoKKyAgICAgICAgICAgICAgICAgICAgbG9u
Z3JlcHIgPSBpdGVtLnJlcHJfZmFpbHVyZShleGNpbmZvKQorICAgICAgICAgICAgICAgIGVsc2U6
ICAjIGV4Y2VwdGlvbiBpbiBzZXR1cCBvciB0ZWFyZG93bgorICAgICAgICAgICAgICAgICAgICBs
b25ncmVwciA9IGl0ZW0uX3JlcHJfZmFpbHVyZV9weSgKKyAgICAgICAgICAgICAgICAgICAgICAg
IGV4Y2luZm8sIHN0eWxlPWl0ZW0uY29uZmlnLmdldG9wdGlvbigidGJzdHlsZSIsICJhdXRvIikK
KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBmb3IgcndoZW4sIGtleSwgY29udGVudCBp
biBpdGVtLl9yZXBvcnRfc2VjdGlvbnM6CisgICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoKCJD
YXB0dXJlZCAlcyAlcyIgJSAoa2V5LCByd2hlbiksIGNvbnRlbnQpKQorICAgICAgICByZXR1cm4g
Y2xzKAorICAgICAgICAgICAgaXRlbS5ub2RlaWQsCisgICAgICAgICAgICBpdGVtLmxvY2F0aW9u
LAorICAgICAgICAgICAga2V5d29yZHMsCisgICAgICAgICAgICBvdXRjb21lLAorICAgICAgICAg
ICAgbG9uZ3JlcHIsCisgICAgICAgICAgICB3aGVuLAorICAgICAgICAgICAgc2VjdGlvbnMsCisg
ICAgICAgICAgICBkdXJhdGlvbiwKKyAgICAgICAgICAgIHVzZXJfcHJvcGVydGllcz1pdGVtLnVz
ZXJfcHJvcGVydGllcywKKyAgICAgICAgKQorCisKK2NsYXNzIENvbGxlY3RSZXBvcnQoQmFzZVJl
cG9ydCk6CisgICAgd2hlbiA9ICJjb2xsZWN0IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5v
ZGVpZCwgb3V0Y29tZSwgbG9uZ3JlcHIsIHJlc3VsdCwgc2VjdGlvbnM9KCksICoqZXh0cmEpOgor
ICAgICAgICBzZWxmLm5vZGVpZCA9IG5vZGVpZAorICAgICAgICBzZWxmLm91dGNvbWUgPSBvdXRj
b21lCisgICAgICAgIHNlbGYubG9uZ3JlcHIgPSBsb25ncmVwcgorICAgICAgICBzZWxmLnJlc3Vs
dCA9IHJlc3VsdCBvciBbXQorICAgICAgICBzZWxmLnNlY3Rpb25zID0gbGlzdChzZWN0aW9ucykK
KyAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoZXh0cmEpCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYgbG9jYXRpb24oc2VsZik6CisgICAgICAgIHJldHVybiAoc2VsZi5mc3BhdGgsIE5vbmUs
IHNlbGYuZnNwYXRoKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4g
IjxDb2xsZWN0UmVwb3J0ICVyIGxlbnJlc3VsdD0lcyBvdXRjb21lPSVyPiIgJSAoCisgICAgICAg
ICAgICBzZWxmLm5vZGVpZCwKKyAgICAgICAgICAgIGxlbihzZWxmLnJlc3VsdCksCisgICAgICAg
ICAgICBzZWxmLm91dGNvbWUsCisgICAgICAgICkKKworCitjbGFzcyBDb2xsZWN0RXJyb3JSZXBy
KFRlcm1pbmFsUmVwcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZyk6CisgICAgICAgIHNl
bGYubG9uZ3JlcHIgPSBtc2cKKworICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIG91dCk6CisgICAg
ICAgIG91dC5saW5lKHNlbGYubG9uZ3JlcHIsIHJlZD1UcnVlKQorCisKK2RlZiBweXRlc3RfcmVw
b3J0X3RvX3NlcmlhbGl6YWJsZShyZXBvcnQpOgorICAgIGlmIGlzaW5zdGFuY2UocmVwb3J0LCAo
VGVzdFJlcG9ydCwgQ29sbGVjdFJlcG9ydCkpOgorICAgICAgICBkYXRhID0gcmVwb3J0Ll90b19q
c29uKCkKKyAgICAgICAgZGF0YVsiX3JlcG9ydF90eXBlIl0gPSByZXBvcnQuX19jbGFzc19fLl9f
bmFtZV9fCisgICAgICAgIHJldHVybiBkYXRhCisKKworZGVmIHB5dGVzdF9yZXBvcnRfZnJvbV9z
ZXJpYWxpemFibGUoZGF0YSk6CisgICAgaWYgIl9yZXBvcnRfdHlwZSIgaW4gZGF0YToKKyAgICAg
ICAgaWYgZGF0YVsiX3JlcG9ydF90eXBlIl0gPT0gIlRlc3RSZXBvcnQiOgorICAgICAgICAgICAg
cmV0dXJuIFRlc3RSZXBvcnQuX2Zyb21fanNvbihkYXRhKQorICAgICAgICBlbGlmIGRhdGFbIl9y
ZXBvcnRfdHlwZSJdID09ICJDb2xsZWN0UmVwb3J0IjoKKyAgICAgICAgICAgIHJldHVybiBDb2xs
ZWN0UmVwb3J0Ll9mcm9tX2pzb24oZGF0YSkKKyAgICAgICAgYXNzZXJ0IEZhbHNlLCAiVW5rbm93
biByZXBvcnRfdHlwZSB1bnNlcmlhbGl6ZSBkYXRhOiB7fSIuZm9ybWF0KAorICAgICAgICAgICAg
ZGF0YVsiX3JlcG9ydF90eXBlIl0KKyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3QvcmVzdWx0bG9nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcmVzdWx0
bG9nLnB5CmluZGV4IDhmMzAwYzk4MzAwMTAyOTE3M2JlOGIyZGJiOGVjYzBjNjA5YzkwY2UuLmJk
MzBiNTA3MWU5ZjBmOGQ4NTg0ZTc5OTI2MjY1ZGNmY2E5NDViNzcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L3Jlc3VsdGxvZy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC9yZXN1bHRsb2cucHkKQEAgLTEsMTEgKzEsMTUgQEAKKyMgLSotIGNvZGluZzogdXRmLTgg
LSotCiAiIiIgbG9nIG1hY2hpbmUtcGFyc2VhYmxlIHRlc3Qgc2Vzc2lvbiByZXN1bHQgaW5mb3Jt
YXRpb24gaW4gYSBwbGFpbgogdGV4dCBmaWxlLgogIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lv
bgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCi1pbXBvcnQgcHkKIGlt
cG9ydCBvcwogCitpbXBvcnQgcHkKKwogCiBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgog
ICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJ0ZXJtaW5hbCByZXBvcnRpbmciLCAicmVzdWx0
bG9nIHBsdWdpbiBvcHRpb25zIikKQEAgLTMxLDggKzM1LDkgQEAgZGVmIHB5dGVzdF9jb25maWd1
cmUoY29uZmlnKToKICAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoY29uZmln
Ll9yZXN1bHRsb2cpCiAKICAgICAgICAgZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IFJF
U1VMVF9MT0cKKyAgICAgICAgZnJvbSBfcHl0ZXN0Lndhcm5pbmdzIGltcG9ydCBfaXNzdWVfd2Fy
bmluZ19jYXB0dXJlZAogCi0gICAgICAgIGNvbmZpZy53YXJuKCJDMSIsIFJFU1VMVF9MT0cpCisg
ICAgICAgIF9pc3N1ZV93YXJuaW5nX2NhcHR1cmVkKFJFU1VMVF9MT0csIGNvbmZpZy5ob29rLCBz
dGFja2xldmVsPTIpCiAKIAogZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShjb25maWcpOgpAQCAtNDMs
MzIgKzQ4LDcgQEAgZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShjb25maWcpOgogICAgICAgICBjb25m
aWcucGx1Z2lubWFuYWdlci51bnJlZ2lzdGVyKHJlc3VsdGxvZykKIAogCi1kZWYgZ2VuZXJpY19w
YXRoKGl0ZW0pOgotICAgIGNoYWluID0gaXRlbS5saXN0Y2hhaW4oKQotICAgIGdwYXRoID0gW2No
YWluWzBdLm5hbWVdCi0gICAgZnNwYXRoID0gY2hhaW5bMF0uZnNwYXRoCi0gICAgZnNwYXJ0ID0g
RmFsc2UKLSAgICBmb3Igbm9kZSBpbiBjaGFpblsxOl06Ci0gICAgICAgIG5ld2ZzcGF0aCA9IG5v
ZGUuZnNwYXRoCi0gICAgICAgIGlmIG5ld2ZzcGF0aCA9PSBmc3BhdGg6Ci0gICAgICAgICAgICBp
ZiBmc3BhcnQ6Ci0gICAgICAgICAgICAgICAgZ3BhdGguYXBwZW5kKCI6IikKLSAgICAgICAgICAg
ICAgICBmc3BhcnQgPSBGYWxzZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBn
cGF0aC5hcHBlbmQoIi4iKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZ3BhdGguYXBwZW5k
KCIvIikKLSAgICAgICAgICAgIGZzcGFydCA9IFRydWUKLSAgICAgICAgbmFtZSA9IG5vZGUubmFt
ZQotICAgICAgICBpZiBuYW1lWzBdIGluICIoWyI6Ci0gICAgICAgICAgICBncGF0aC5wb3AoKQot
ICAgICAgICBncGF0aC5hcHBlbmQobmFtZSkKLSAgICAgICAgZnNwYXRoID0gbmV3ZnNwYXRoCi0g
ICAgcmV0dXJuICIiLmpvaW4oZ3BhdGgpCi0KLQogY2xhc3MgUmVzdWx0TG9nKG9iamVjdCk6Ci0K
ICAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCBsb2dmaWxlKToKICAgICAgICAgc2VsZi5j
b25maWcgPSBjb25maWcKICAgICAgICAgc2VsZi5sb2dmaWxlID0gbG9nZmlsZSAgIyBwcmVmZXJh
Ymx5IGxpbmUgYnVmZmVyZWQKQEAgLTg3LDcgKzY3LDkgQEAgY2xhc3MgUmVzdWx0TG9nKG9iamVj
dCk6CiAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxmLCByZXBvcnQpOgogICAg
ICAgICBpZiByZXBvcnQud2hlbiAhPSAiY2FsbCIgYW5kIHJlcG9ydC5wYXNzZWQ6CiAgICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgcmVzID0gc2VsZi5jb25maWcuaG9vay5weXRlc3RfcmVwb3J0
X3Rlc3RzdGF0dXMocmVwb3J0PXJlcG9ydCkKKyAgICAgICAgcmVzID0gc2VsZi5jb25maWcuaG9v
ay5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMoCisgICAgICAgICAgICByZXBvcnQ9cmVwb3J0LCBj
b25maWc9c2VsZi5jb25maWcKKyAgICAgICAgKQogICAgICAgICBjb2RlID0gcmVzWzFdCiAgICAg
ICAgIGlmIGNvZGUgPT0gIngiOgogICAgICAgICAgICAgbG9uZ3JlcHIgPSBzdHIocmVwb3J0Lmxv
bmdyZXByKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcnVubmVyLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcnVubmVyLnB5CmluZGV4IDE4ZTkyNTUwOWVjYzM1Zjg0
NmM2NTY0M2ZjMTViNDUxZDliNGRhZWIuLmQ1MWU4NTlmMWQxYmQ2MmVhNjk5ZDUxNTEzZGY3OTRl
ZmRmMzJlZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3J1bm5lci5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9ydW5uZXIucHkKQEAgLTEsMTQgKzEsMjQgQEAK
KyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIgYmFzaWMgY29sbGVjdCBhbmQgcnVudGVzdCBw
cm90b2NvbCBpbXBsZW1lbnRhdGlvbnMgIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgYmRiCiBpbXBvcnQg
b3MKIGltcG9ydCBzeXMKIGZyb20gdGltZSBpbXBvcnQgdGltZQogCi1pbXBvcnQgcHkKLWZyb20g
X3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBUZXJtaW5hbFJlcHIsIEV4Y2VwdGlvbkluZm8KLWZy
b20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgc2tpcCwgU2tpcHBlZCwgVEVTVF9PVVRDT01FCitp
bXBvcnQgYXR0cgoraW1wb3J0IHNpeAorCitmcm9tIC5yZXBvcnRzIGltcG9ydCBDb2xsZWN0RXJy
b3JSZXByCitmcm9tIC5yZXBvcnRzIGltcG9ydCBDb2xsZWN0UmVwb3J0Citmcm9tIC5yZXBvcnRz
IGltcG9ydCBUZXN0UmVwb3J0Citmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgRXhjZXB0
aW9uSW5mbworZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBFeGl0Citmcm9tIF9weXRlc3Qu
b3V0Y29tZXMgaW1wb3J0IFNraXBwZWQKK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgVEVT
VF9PVVRDT01FCiAKICMKICMgcHl0ZXN0IHBsdWdpbiBob29rcwpAQCAtMjgsNiArMzgsNyBAQCBk
ZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgogCiBkZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1h
cnkodGVybWluYWxyZXBvcnRlcik6CiAgICAgZHVyYXRpb25zID0gdGVybWluYWxyZXBvcnRlci5j
b25maWcub3B0aW9uLmR1cmF0aW9ucworICAgIHZlcmJvc2UgPSB0ZXJtaW5hbHJlcG9ydGVyLmNv
bmZpZy5nZXR2YWx1ZSgidmVyYm9zZSIpCiAgICAgaWYgZHVyYXRpb25zIGlzIE5vbmU6CiAgICAg
ICAgIHJldHVybgogICAgIHRyID0gdGVybWluYWxyZXBvcnRlcgpAQCAtNDcsOCArNTgsMTEgQEAg
ZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIpOgogICAgICAgICBk
bGlzdCA9IGRsaXN0WzpkdXJhdGlvbnNdCiAKICAgICBmb3IgcmVwIGluIGRsaXN0OgotICAgICAg
ICBub2RlaWQgPSByZXAubm9kZWlkLnJlcGxhY2UoIjo6KCk6OiIsICI6OiIpCi0gICAgICAgIHRy
LndyaXRlX2xpbmUoIiUwMi4yZnMgJS04cyAlcyIgJSAocmVwLmR1cmF0aW9uLCByZXAud2hlbiwg
bm9kZWlkKSkKKyAgICAgICAgaWYgdmVyYm9zZSA8IDIgYW5kIHJlcC5kdXJhdGlvbiA8IDAuMDA1
OgorICAgICAgICAgICAgdHIud3JpdGVfbGluZSgiIikKKyAgICAgICAgICAgIHRyLndyaXRlX2xp
bmUoIigwLjAwIGR1cmF0aW9ucyBoaWRkZW4uICBVc2UgLXZ2IHRvIHNob3cgdGhlc2UgZHVyYXRp
b25zLikiKQorICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgdHIud3JpdGVfbGluZSgiJTAyLjJm
cyAlLThzICVzIiAlIChyZXAuZHVyYXRpb24sIHJlcC53aGVuLCByZXAubm9kZWlkKSkKIAogCiBk
ZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uKToKQEAgLTczLDkgKzg3LDkgQEAgZGVmIHJ1
bnRlc3Rwcm90b2NvbChpdGVtLCBsb2c9VHJ1ZSwgbmV4dGl0ZW09Tm9uZSk6CiAgICAgcmVwID0g
Y2FsbF9hbmRfcmVwb3J0KGl0ZW0sICJzZXR1cCIsIGxvZykKICAgICByZXBvcnRzID0gW3JlcF0K
ICAgICBpZiByZXAucGFzc2VkOgotICAgICAgICBpZiBpdGVtLmNvbmZpZy5vcHRpb24uc2V0dXBz
aG93OgorICAgICAgICBpZiBpdGVtLmNvbmZpZy5nZXRvcHRpb24oInNldHVwc2hvdyIsIEZhbHNl
KToKICAgICAgICAgICAgIHNob3dfdGVzdF9pdGVtKGl0ZW0pCi0gICAgICAgIGlmIG5vdCBpdGVt
LmNvbmZpZy5vcHRpb24uc2V0dXBvbmx5OgorICAgICAgICBpZiBub3QgaXRlbS5jb25maWcuZ2V0
b3B0aW9uKCJzZXR1cG9ubHkiLCBGYWxzZSk6CiAgICAgICAgICAgICByZXBvcnRzLmFwcGVuZChj
YWxsX2FuZF9yZXBvcnQoaXRlbSwgImNhbGwiLCBsb2cpKQogICAgIHJlcG9ydHMuYXBwZW5kKGNh
bGxfYW5kX3JlcG9ydChpdGVtLCAidGVhcmRvd24iLCBsb2csIG5leHRpdGVtPW5leHRpdGVtKSkK
ICAgICAjIGFmdGVyIGFsbCB0ZWFyZG93biBob29rcyBoYXZlIGJlZW4gY2FsbGVkCkBAIC0xNjks
NyArMTgzLDcgQEAgZGVmIGNhbGxfYW5kX3JlcG9ydChpdGVtLCB3aGVuLCBsb2c9VHJ1ZSwgKipr
d2RzKToKIGRlZiBjaGVja19pbnRlcmFjdGl2ZV9leGNlcHRpb24oY2FsbCwgcmVwb3J0KToKICAg
ICByZXR1cm4gY2FsbC5leGNpbmZvIGFuZCBub3QgKAogICAgICAgICBoYXNhdHRyKHJlcG9ydCwg
Indhc3hmYWlsIikKLSAgICAgICAgb3IgY2FsbC5leGNpbmZvLmVycmlzaW5zdGFuY2Uoc2tpcC5F
eGNlcHRpb24pCisgICAgICAgIG9yIGNhbGwuZXhjaW5mby5lcnJpc2luc3RhbmNlKFNraXBwZWQp
CiAgICAgICAgIG9yIGNhbGwuZXhjaW5mby5lcnJpc2luc3RhbmNlKGJkYi5CZGJRdWl0KQogICAg
ICkKIApAQCAtMTc3LDI0NiArMTkxLDY2IEBAIGRlZiBjaGVja19pbnRlcmFjdGl2ZV9leGNlcHRp
b24oY2FsbCwgcmVwb3J0KToKIGRlZiBjYWxsX3J1bnRlc3RfaG9vayhpdGVtLCB3aGVuLCAqKmt3
ZHMpOgogICAgIGhvb2tuYW1lID0gInB5dGVzdF9ydW50ZXN0XyIgKyB3aGVuCiAgICAgaWhvb2sg
PSBnZXRhdHRyKGl0ZW0uaWhvb2ssIGhvb2tuYW1lKQotICAgIHJldHVybiBDYWxsSW5mbygKLSAg
ICAgICAgbGFtYmRhOiBpaG9vayhpdGVtPWl0ZW0sICoqa3dkcyksCi0gICAgICAgIHdoZW49d2hl
biwKLSAgICAgICAgdHJlYXRfa2V5Ym9hcmRfaW50ZXJydXB0X2FzX2V4Y2VwdGlvbj1pdGVtLmNv
bmZpZy5nZXR2YWx1ZSgidXNlcGRiIiksCisgICAgcmVyYWlzZSA9IChFeGl0LCkKKyAgICBpZiBu
b3QgaXRlbS5jb25maWcuZ2V0b3B0aW9uKCJ1c2VwZGIiLCBGYWxzZSk6CisgICAgICAgIHJlcmFp
c2UgKz0gKEtleWJvYXJkSW50ZXJydXB0LCkKKyAgICByZXR1cm4gQ2FsbEluZm8uZnJvbV9jYWxs
KAorICAgICAgICBsYW1iZGE6IGlob29rKGl0ZW09aXRlbSwgKiprd2RzKSwgd2hlbj13aGVuLCBy
ZXJhaXNlPXJlcmFpc2UKICAgICApCiAKIAorQGF0dHIucyhyZXByPUZhbHNlKQogY2xhc3MgQ2Fs
bEluZm8ob2JqZWN0KToKICAgICAiIiIgUmVzdWx0L0V4Y2VwdGlvbiBpbmZvIGEgZnVuY3Rpb24g
aW52b2NhdGlvbi4gIiIiCi0gICAgIzogTm9uZSBvciBFeGNlcHRpb25JbmZvIG9iamVjdC4KLSAg
ICBleGNpbmZvID0gTm9uZQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1bmMsIHdoZW4sIHRy
ZWF0X2tleWJvYXJkX2ludGVycnVwdF9hc19leGNlcHRpb249RmFsc2UpOgorICAgIF9yZXN1bHQg
PSBhdHRyLmliKCkKKyAgICAjIE9wdGlvbmFsW0V4Y2VwdGlvbkluZm9dCisgICAgZXhjaW5mbyA9
IGF0dHIuaWIoKQorICAgIHN0YXJ0ID0gYXR0ci5pYigpCisgICAgc3RvcCA9IGF0dHIuaWIoKQor
ICAgIHdoZW4gPSBhdHRyLmliKCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByZXN1bHQoc2Vs
Zik6CisgICAgICAgIGlmIHNlbGYuZXhjaW5mbyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJh
aXNlIEF0dHJpYnV0ZUVycm9yKCJ7IXJ9IGhhcyBubyB2YWxpZCByZXN1bHQiLmZvcm1hdChzZWxm
KSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdAorCisgICAgQGNsYXNzbWV0aG9kCisgICAg
ZGVmIGZyb21fY2FsbChjbHMsIGZ1bmMsIHdoZW4sIHJlcmFpc2U9Tm9uZSk6CiAgICAgICAgICM6
IGNvbnRleHQgb2YgaW52b2NhdGlvbjogb25lIG9mICJzZXR1cCIsICJjYWxsIiwKICAgICAgICAg
IzogInRlYXJkb3duIiwgIm1lbW9jb2xsZWN0IgotICAgICAgICBzZWxmLndoZW4gPSB3aGVuCi0g
ICAgICAgIHNlbGYuc3RhcnQgPSB0aW1lKCkKKyAgICAgICAgc3RhcnQgPSB0aW1lKCkKKyAgICAg
ICAgZXhjaW5mbyA9IE5vbmUKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5yZXN1bHQg
PSBmdW5jKCkKLSAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAg
aWYgdHJlYXRfa2V5Ym9hcmRfaW50ZXJydXB0X2FzX2V4Y2VwdGlvbjoKLSAgICAgICAgICAgICAg
ICBzZWxmLmV4Y2luZm8gPSBFeGNlcHRpb25JbmZvKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5zdG9wID0gdGltZSgpCi0gICAgICAgICAgICAgICAgcmFpc2UKKyAg
ICAgICAgICAgIHJlc3VsdCA9IGZ1bmMoKQogICAgICAgICBleGNlcHQ6ICAjIG5vcWEKLSAgICAg
ICAgICAgIHNlbGYuZXhjaW5mbyA9IEV4Y2VwdGlvbkluZm8oKQotICAgICAgICBzZWxmLnN0b3Ag
PSB0aW1lKCkKKyAgICAgICAgICAgIGV4Y2luZm8gPSBFeGNlcHRpb25JbmZvLmZyb21fY3VycmVu
dCgpCisgICAgICAgICAgICBpZiByZXJhaXNlIGlzIG5vdCBOb25lIGFuZCBleGNpbmZvLmVycmlz
aW5zdGFuY2UocmVyYWlzZSk6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIHJl
c3VsdCA9IE5vbmUKKyAgICAgICAgc3RvcCA9IHRpbWUoKQorICAgICAgICByZXR1cm4gY2xzKHN0
YXJ0PXN0YXJ0LCBzdG9wPXN0b3AsIHdoZW49d2hlbiwgcmVzdWx0PXJlc3VsdCwgZXhjaW5mbz1l
eGNpbmZvKQogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmV4Y2lu
Zm86Ci0gICAgICAgICAgICBzdGF0dXMgPSAiZXhjZXB0aW9uOiAlcyIgJSBzdHIoc2VsZi5leGNp
bmZvLnZhbHVlKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc3RhdHVzID0gInJlc3VsdDog
JXIiICUgKHNlbGYucmVzdWx0LCkKLSAgICAgICAgcmV0dXJuICI8Q2FsbEluZm8gd2hlbj0lciAl
cz4iICUgKHNlbGYud2hlbiwgc3RhdHVzKQotCi0KLWRlZiBnZXRzbGF2ZWluZm9saW5lKG5vZGUp
OgotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIG5vZGUuX3NsYXZlaW5mb2NhY2hlCi0gICAgZXhj
ZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICBkID0gbm9kZS5zbGF2ZWluZm8KLSAgICAgICAg
dmVyID0gIiVzLiVzLiVzIiAlIGRbInZlcnNpb25faW5mbyJdWzozXQotICAgICAgICBub2RlLl9z
bGF2ZWluZm9jYWNoZSA9IHMgPSAiWyVzXSAlcyAtLSBQeXRob24gJXMgJXMiICUgKAotICAgICAg
ICAgICAgZFsiaWQiXSwgZFsic3lzcGxhdGZvcm0iXSwgdmVyLCBkWyJleGVjdXRhYmxlIl0KLSAg
ICAgICAgKQotICAgICAgICByZXR1cm4gcwotCi0KLWNsYXNzIEJhc2VSZXBvcnQob2JqZWN0KToK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3KToKLSAgICAgICAgc2VsZi5fX2RpY3RfXy51
cGRhdGUoa3cpCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCBvdXQpOgotICAgICAgICBpZiBo
YXNhdHRyKHNlbGYsICJub2RlIik6Ci0gICAgICAgICAgICBvdXQubGluZShnZXRzbGF2ZWluZm9s
aW5lKHNlbGYubm9kZSkpCi0KLSAgICAgICAgbG9uZ3JlcHIgPSBzZWxmLmxvbmdyZXByCi0gICAg
ICAgIGlmIGxvbmdyZXByIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBp
ZiBoYXNhdHRyKGxvbmdyZXByLCAidG90ZXJtaW5hbCIpOgotICAgICAgICAgICAgbG9uZ3JlcHIu
dG90ZXJtaW5hbChvdXQpCisgICAgICAgIGlmIHNlbGYuZXhjaW5mbyBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgIHN0YXR1cyA9ICJleGNlcHRpb24iCisgICAgICAgICAgICB2YWx1ZSA9IHNlbGYu
ZXhjaW5mby52YWx1ZQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIG91dC5saW5lKGxvbmdyZXByKQotICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNv
ZGVFcnJvcjoKLSAgICAgICAgICAgICAgICBvdXQubGluZSgiPHVucHJpbnRhYmxlIGxvbmdyZXBy
PiIpCi0KLSAgICBkZWYgZ2V0X3NlY3Rpb25zKHNlbGYsIHByZWZpeCk6Ci0gICAgICAgIGZvciBu
YW1lLCBjb250ZW50IGluIHNlbGYuc2VjdGlvbnM6Ci0gICAgICAgICAgICBpZiBuYW1lLnN0YXJ0
c3dpdGgocHJlZml4KToKLSAgICAgICAgICAgICAgICB5aWVsZCBwcmVmaXgsIGNvbnRlbnQKLQot
ICAgIEBwcm9wZXJ0eQotICAgIGRlZiBsb25ncmVwcnRleHQoc2VsZik6Ci0gICAgICAgICIiIgot
ICAgICAgICBSZWFkLW9ubHkgcHJvcGVydHkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHN0cmluZyBy
ZXByZXNlbnRhdGlvbgotICAgICAgICBvZiBgYGxvbmdyZXByYGAuCi0KLSAgICAgICAgLi4gdmVy
c2lvbmFkZGVkOjogMy4wCi0gICAgICAgICIiIgotICAgICAgICB0dyA9IHB5LmlvLlRlcm1pbmFs
V3JpdGVyKHN0cmluZ2lvPVRydWUpCi0gICAgICAgIHR3Lmhhc21hcmt1cCA9IEZhbHNlCi0gICAg
ICAgIHNlbGYudG90ZXJtaW5hbCh0dykKLSAgICAgICAgZXhjID0gdHcuc3RyaW5naW8uZ2V0dmFs
dWUoKQotICAgICAgICByZXR1cm4gZXhjLnN0cmlwKCkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiBjYXBsb2coc2VsZik6Ci0gICAgICAgICIiIlJldHVybiBjYXB0dXJlZCBsb2cgbGluZXMsIGlm
IGxvZyBjYXB0dXJpbmcgaXMgZW5hYmxlZAotCi0gICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMu
NQotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuICJcbiIuam9pbigKLSAgICAgICAgICAgIGNv
bnRlbnQgZm9yIChwcmVmaXgsIGNvbnRlbnQpIGluIHNlbGYuZ2V0X3NlY3Rpb25zKCJDYXB0dXJl
ZCBsb2ciKQotICAgICAgICApCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgY2Fwc3Rkb3V0KHNl
bGYpOgotICAgICAgICAiIiJSZXR1cm4gY2FwdHVyZWQgdGV4dCBmcm9tIHN0ZG91dCwgaWYgY2Fw
dHVyaW5nIGlzIGVuYWJsZWQKLQotICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKLSAgICAg
ICAgIiIiCi0gICAgICAgIHJldHVybiAiIi5qb2luKAotICAgICAgICAgICAgY29udGVudCBmb3Ig
KHByZWZpeCwgY29udGVudCkgaW4gc2VsZi5nZXRfc2VjdGlvbnMoIkNhcHR1cmVkIHN0ZG91dCIp
Ci0gICAgICAgICkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBjYXBzdGRlcnIoc2VsZik6Ci0g
ICAgICAgICIiIlJldHVybiBjYXB0dXJlZCB0ZXh0IGZyb20gc3RkZXJyLCBpZiBjYXB0dXJpbmcg
aXMgZW5hYmxlZAotCi0gICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMAotICAgICAgICAiIiIK
LSAgICAgICAgcmV0dXJuICIiLmpvaW4oCi0gICAgICAgICAgICBjb250ZW50IGZvciAocHJlZml4
LCBjb250ZW50KSBpbiBzZWxmLmdldF9zZWN0aW9ucygiQ2FwdHVyZWQgc3RkZXJyIikKKyAgICAg
ICAgICAgICMgVE9ETzogaW52ZXN0aWdhdGUgdW5pZmljYXRpb24KKyAgICAgICAgICAgIHZhbHVl
ID0gcmVwcihzZWxmLl9yZXN1bHQpCisgICAgICAgICAgICBzdGF0dXMgPSAicmVzdWx0IgorICAg
ICAgICByZXR1cm4gIjxDYWxsSW5mbyB3aGVuPXt3aGVuIXJ9IHtzdGF0dXN9OiB7dmFsdWV9PiIu
Zm9ybWF0KAorICAgICAgICAgICAgd2hlbj1zZWxmLndoZW4sIHZhbHVlPXZhbHVlLCBzdGF0dXM9
c3RhdHVzCiAgICAgICAgICkKIAotICAgIHBhc3NlZCA9IHByb3BlcnR5KGxhbWJkYSB4OiB4Lm91
dGNvbWUgPT0gInBhc3NlZCIpCi0gICAgZmFpbGVkID0gcHJvcGVydHkobGFtYmRhIHg6IHgub3V0
Y29tZSA9PSAiZmFpbGVkIikKLSAgICBza2lwcGVkID0gcHJvcGVydHkobGFtYmRhIHg6IHgub3V0
Y29tZSA9PSAic2tpcHBlZCIpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZnNwYXRoKHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5ub2RlaWQuc3BsaXQoIjo6IilbMF0KLQogCiBkZWYgcHl0
ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToKLSAgICB3aGVuID0gY2FsbC53aGVu
Ci0gICAgZHVyYXRpb24gPSBjYWxsLnN0b3AgLSBjYWxsLnN0YXJ0Ci0gICAga2V5d29yZHMgPSB7
eDogMSBmb3IgeCBpbiBpdGVtLmtleXdvcmRzfQotICAgIGV4Y2luZm8gPSBjYWxsLmV4Y2luZm8K
LSAgICBzZWN0aW9ucyA9IFtdCi0gICAgaWYgbm90IGNhbGwuZXhjaW5mbzoKLSAgICAgICAgb3V0
Y29tZSA9ICJwYXNzZWQiCi0gICAgICAgIGxvbmdyZXByID0gTm9uZQotICAgIGVsc2U6Ci0gICAg
ICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4Y2luZm8sIEV4Y2VwdGlvbkluZm8pOgotICAgICAgICAg
ICAgb3V0Y29tZSA9ICJmYWlsZWQiCi0gICAgICAgICAgICBsb25ncmVwciA9IGV4Y2luZm8KLSAg
ICAgICAgZWxpZiBleGNpbmZvLmVycmlzaW5zdGFuY2Uoc2tpcC5FeGNlcHRpb24pOgotICAgICAg
ICAgICAgb3V0Y29tZSA9ICJza2lwcGVkIgotICAgICAgICAgICAgciA9IGV4Y2luZm8uX2dldHJl
cHJjcmFzaCgpCi0gICAgICAgICAgICBsb25ncmVwciA9IChzdHIoci5wYXRoKSwgci5saW5lbm8s
IHIubWVzc2FnZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG91dGNvbWUgPSAiZmFpbGVk
IgotICAgICAgICAgICAgaWYgY2FsbC53aGVuID09ICJjYWxsIjoKLSAgICAgICAgICAgICAgICBs
b25ncmVwciA9IGl0ZW0ucmVwcl9mYWlsdXJlKGV4Y2luZm8pCi0gICAgICAgICAgICBlbHNlOiAg
IyBleGNlcHRpb24gaW4gc2V0dXAgb3IgdGVhcmRvd24KLSAgICAgICAgICAgICAgICBsb25ncmVw
ciA9IGl0ZW0uX3JlcHJfZmFpbHVyZV9weSgKLSAgICAgICAgICAgICAgICAgICAgZXhjaW5mbywg
c3R5bGU9aXRlbS5jb25maWcub3B0aW9uLnRic3R5bGUKLSAgICAgICAgICAgICAgICApCi0gICAg
Zm9yIHJ3aGVuLCBrZXksIGNvbnRlbnQgaW4gaXRlbS5fcmVwb3J0X3NlY3Rpb25zOgotICAgICAg
ICBzZWN0aW9ucy5hcHBlbmQoKCJDYXB0dXJlZCAlcyAlcyIgJSAoa2V5LCByd2hlbiksIGNvbnRl
bnQpKQotICAgIHJldHVybiBUZXN0UmVwb3J0KAotICAgICAgICBpdGVtLm5vZGVpZCwKLSAgICAg
ICAgaXRlbS5sb2NhdGlvbiwKLSAgICAgICAga2V5d29yZHMsCi0gICAgICAgIG91dGNvbWUsCi0g
ICAgICAgIGxvbmdyZXByLAotICAgICAgICB3aGVuLAotICAgICAgICBzZWN0aW9ucywKLSAgICAg
ICAgZHVyYXRpb24sCi0gICAgICAgIHVzZXJfcHJvcGVydGllcz1pdGVtLnVzZXJfcHJvcGVydGll
cywKLSAgICApCi0KLQotY2xhc3MgVGVzdFJlcG9ydChCYXNlUmVwb3J0KToKLSAgICAiIiIgQmFz
aWMgdGVzdCByZXBvcnQgb2JqZWN0IChhbHNvIHVzZWQgZm9yIHNldHVwIGFuZCB0ZWFyZG93biBj
YWxscyBpZgotICAgIHRoZXkgZmFpbCkuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oCi0g
ICAgICAgIHNlbGYsCi0gICAgICAgIG5vZGVpZCwKLSAgICAgICAgbG9jYXRpb24sCi0gICAgICAg
IGtleXdvcmRzLAotICAgICAgICBvdXRjb21lLAotICAgICAgICBsb25ncmVwciwKLSAgICAgICAg
d2hlbiwKLSAgICAgICAgc2VjdGlvbnM9KCksCi0gICAgICAgIGR1cmF0aW9uPTAsCi0gICAgICAg
IHVzZXJfcHJvcGVydGllcz0oKSwKLSAgICAgICAgKipleHRyYQotICAgICk6Ci0gICAgICAgICM6
IG5vcm1hbGl6ZWQgY29sbGVjdGlvbiBub2RlIGlkCi0gICAgICAgIHNlbGYubm9kZWlkID0gbm9k
ZWlkCi0KLSAgICAgICAgIzogYSAoZmlsZXN5c3RlbXBhdGgsIGxpbmVubywgZG9tYWluaW5mbykg
dHVwbGUgaW5kaWNhdGluZyB0aGUKLSAgICAgICAgIzogYWN0dWFsIGxvY2F0aW9uIG9mIGEgdGVz
dCBpdGVtIC0gaXQgbWlnaHQgYmUgZGlmZmVyZW50IGZyb20gdGhlCi0gICAgICAgICM6IGNvbGxl
Y3RlZCBvbmUgZS5nLiBpZiBhIG1ldGhvZCBpcyBpbmhlcml0ZWQgZnJvbSBhIGRpZmZlcmVudCBt
b2R1bGUuCi0gICAgICAgIHNlbGYubG9jYXRpb24gPSBsb2NhdGlvbgotCi0gICAgICAgICM6IGEg
bmFtZSAtPiB2YWx1ZSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgYWxsIGtleXdvcmRzIGFuZAotICAg
ICAgICAjOiBtYXJrZXJzIGFzc29jaWF0ZWQgd2l0aCBhIHRlc3QgaW52b2NhdGlvbi4KLSAgICAg
ICAgc2VsZi5rZXl3b3JkcyA9IGtleXdvcmRzCi0KLSAgICAgICAgIzogdGVzdCBvdXRjb21lLCBh
bHdheXMgb25lIG9mICJwYXNzZWQiLCAiZmFpbGVkIiwgInNraXBwZWQiLgotICAgICAgICBzZWxm
Lm91dGNvbWUgPSBvdXRjb21lCi0KLSAgICAgICAgIzogTm9uZSBvciBhIGZhaWx1cmUgcmVwcmVz
ZW50YXRpb24uCi0gICAgICAgIHNlbGYubG9uZ3JlcHIgPSBsb25ncmVwcgotCi0gICAgICAgICM6
IG9uZSBvZiAnc2V0dXAnLCAnY2FsbCcsICd0ZWFyZG93bicgdG8gaW5kaWNhdGUgcnVudGVzdCBw
aGFzZS4KLSAgICAgICAgc2VsZi53aGVuID0gd2hlbgotCi0gICAgICAgICM6IHVzZXIgcHJvcGVy
dGllcyBpcyBhIGxpc3Qgb2YgdHVwbGVzIChuYW1lLCB2YWx1ZSkgdGhhdCBob2xkcyB1c2VyCi0g
ICAgICAgICM6IGRlZmluZWQgcHJvcGVydGllcyBvZiB0aGUgdGVzdAotICAgICAgICBzZWxmLnVz
ZXJfcHJvcGVydGllcyA9IHVzZXJfcHJvcGVydGllcwotCi0gICAgICAgICM6IGxpc3Qgb2YgcGFp
cnMgYGAoc3RyLCBzdHIpYGAgb2YgZXh0cmEgaW5mb3JtYXRpb24gd2hpY2ggbmVlZHMgdG8KLSAg
ICAgICAgIzogbWFyc2hhbGxhYmxlLiBVc2VkIGJ5IHB5dGVzdCB0byBhZGQgY2FwdHVyZWQgdGV4
dAotICAgICAgICAjOiBmcm9tIGBgc3Rkb3V0YGAgYW5kIGBgc3RkZXJyYGAsIGJ1dCBtYXkgYmUg
dXNlZCBieSBvdGhlciBwbHVnaW5zCi0gICAgICAgICM6IHRvIGFkZCBhcmJpdHJhcnkgaW5mb3Jt
YXRpb24gdG8gcmVwb3J0cy4KLSAgICAgICAgc2VsZi5zZWN0aW9ucyA9IGxpc3Qoc2VjdGlvbnMp
Ci0KLSAgICAgICAgIzogdGltZSBpdCB0b29rIHRvIHJ1biBqdXN0IHRoZSB0ZXN0Ci0gICAgICAg
IHNlbGYuZHVyYXRpb24gPSBkdXJhdGlvbgotCi0gICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRl
KGV4dHJhKQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxUZXN0
UmVwb3J0ICVyIHdoZW49JXIgb3V0Y29tZT0lcj4iICUgKAotICAgICAgICAgICAgc2VsZi5ub2Rl
aWQsIHNlbGYud2hlbiwgc2VsZi5vdXRjb21lCi0gICAgICAgICkKLQotCi1jbGFzcyBUZWFyZG93
bkVycm9yUmVwb3J0KEJhc2VSZXBvcnQpOgotICAgIG91dGNvbWUgPSAiZmFpbGVkIgotICAgIHdo
ZW4gPSAidGVhcmRvd24iCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9uZ3JlcHIsICoqZXh0
cmEpOgotICAgICAgICBzZWxmLmxvbmdyZXByID0gbG9uZ3JlcHIKLSAgICAgICAgc2VsZi5zZWN0
aW9ucyA9IFtdCi0gICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGV4dHJhKQorICAgIHJldHVy
biBUZXN0UmVwb3J0LmZyb21faXRlbV9hbmRfY2FsbChpdGVtLCBjYWxsKQogCiAKIGRlZiBweXRl
c3RfbWFrZV9jb2xsZWN0X3JlcG9ydChjb2xsZWN0b3IpOgotICAgIGNhbGwgPSBDYWxsSW5mbyhs
YW1iZGE6IGxpc3QoY29sbGVjdG9yLmNvbGxlY3QoKSksICJjb2xsZWN0IikKKyAgICBjYWxsID0g
Q2FsbEluZm8uZnJvbV9jYWxsKGxhbWJkYTogbGlzdChjb2xsZWN0b3IuY29sbGVjdCgpKSwgImNv
bGxlY3QiKQogICAgIGxvbmdyZXByID0gTm9uZQogICAgIGlmIG5vdCBjYWxsLmV4Y2luZm86CiAg
ICAgICAgIG91dGNvbWUgPSAicGFzc2VkIgpAQCAtNDQxLDM1ICsyNzUsNiBAQCBkZWYgcHl0ZXN0
X21ha2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9yKToKICAgICByZXR1cm4gcmVwCiAKIAotY2xh
c3MgQ29sbGVjdFJlcG9ydChCYXNlUmVwb3J0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBu
b2RlaWQsIG91dGNvbWUsIGxvbmdyZXByLCByZXN1bHQsIHNlY3Rpb25zPSgpLCAqKmV4dHJhKToK
LSAgICAgICAgc2VsZi5ub2RlaWQgPSBub2RlaWQKLSAgICAgICAgc2VsZi5vdXRjb21lID0gb3V0
Y29tZQotICAgICAgICBzZWxmLmxvbmdyZXByID0gbG9uZ3JlcHIKLSAgICAgICAgc2VsZi5yZXN1
bHQgPSByZXN1bHQgb3IgW10KLSAgICAgICAgc2VsZi5zZWN0aW9ucyA9IGxpc3Qoc2VjdGlvbnMp
Ci0gICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGV4dHJhKQotCi0gICAgQHByb3BlcnR5Ci0g
ICAgZGVmIGxvY2F0aW9uKHNlbGYpOgotICAgICAgICByZXR1cm4gKHNlbGYuZnNwYXRoLCBOb25l
LCBzZWxmLmZzcGF0aCkKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJu
ICI8Q29sbGVjdFJlcG9ydCAlciBsZW5yZXN1bHQ9JXMgb3V0Y29tZT0lcj4iICUgKAotICAgICAg
ICAgICAgc2VsZi5ub2RlaWQsIGxlbihzZWxmLnJlc3VsdCksIHNlbGYub3V0Y29tZQotICAgICAg
ICApCi0KLQotY2xhc3MgQ29sbGVjdEVycm9yUmVwcihUZXJtaW5hbFJlcHIpOgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIG1zZyk6Ci0gICAgICAgIHNlbGYubG9uZ3JlcHIgPSBtc2cKLQotICAg
IGRlZiB0b3Rlcm1pbmFsKHNlbGYsIG91dCk6Ci0gICAgICAgIG91dC5saW5lKHNlbGYubG9uZ3Jl
cHIsIHJlZD1UcnVlKQotCi0KIGNsYXNzIFNldHVwU3RhdGUob2JqZWN0KToKICAgICAiIiIgc2hh
cmVkIHN0YXRlIGZvciBzZXR0aW5nIHVwL3RlYXJpbmcgZG93biB0ZXN0IGl0ZW1zIG9yIGNvbGxl
Y3RvcnMuICIiIgogCkBAIC01MDQsNyArMzA5LDcgQEAgY2xhc3MgU2V0dXBTdGF0ZShvYmplY3Qp
OgogICAgICAgICAgICAgICAgIGlmIGV4YyBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICBl
eGMgPSBzeXMuZXhjX2luZm8oKQogICAgICAgICBpZiBleGM6Ci0gICAgICAgICAgICBweS5idWls
dGluLl9yZXJhaXNlKCpleGMpCisgICAgICAgICAgICBzaXgucmVyYWlzZSgqZXhjKQogCiAgICAg
ZGVmIF90ZWFyZG93bl93aXRoX2ZpbmFsaXphdGlvbihzZWxmLCBjb2xpdGVtKToKICAgICAgICAg
c2VsZi5fY2FsbGZpbmFsaXplcnMoY29saXRlbSkKQEAgLTUyOSw3ICszMzQsNyBAQCBjbGFzcyBT
ZXR1cFN0YXRlKG9iamVjdCk6CiAgICAgZGVmIF90ZWFyZG93bl90b3dhcmRzKHNlbGYsIG5lZWRl
ZF9jb2xsZWN0b3JzKToKICAgICAgICAgZXhjID0gTm9uZQogICAgICAgICB3aGlsZSBzZWxmLnN0
YWNrOgotICAgICAgICAgICAgaWYgc2VsZi5zdGFjayA9PSBuZWVkZWRfY29sbGVjdG9yc1s6bGVu
KHNlbGYuc3RhY2spXToKKyAgICAgICAgICAgIGlmIHNlbGYuc3RhY2sgPT0gbmVlZGVkX2NvbGxl
Y3RvcnNbOiBsZW4oc2VsZi5zdGFjayldOgogICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAg
ICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5fcG9wX2FuZF90ZWFyZG93bigpCkBAIC01
MzksNyArMzQ0LDcgQEAgY2xhc3MgU2V0dXBTdGF0ZShvYmplY3QpOgogICAgICAgICAgICAgICAg
IGlmIGV4YyBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICBleGMgPSBzeXMuZXhjX2luZm8o
KQogICAgICAgICBpZiBleGM6Ci0gICAgICAgICAgICBweS5idWlsdGluLl9yZXJhaXNlKCpleGMp
CisgICAgICAgICAgICBzaXgucmVyYWlzZSgqZXhjKQogCiAgICAgZGVmIHByZXBhcmUoc2VsZiwg
Y29saXRlbSk6CiAgICAgICAgICIiIiBzZXR1cCBvYmplY3RzIGFsb25nIHRoZSBjb2xsZWN0b3Ig
Y2hhaW4gdG8gdGhlIHRlc3QtbWV0aG9kCkBAIC01NTAsOCArMzU1LDggQEAgY2xhc3MgU2V0dXBT
dGF0ZShvYmplY3QpOgogICAgICAgICAjIGNoZWNrIGlmIHRoZSBsYXN0IGNvbGxlY3Rpb24gbm9k
ZSBoYXMgcmFpc2VkIGFuIGVycm9yCiAgICAgICAgIGZvciBjb2wgaW4gc2VsZi5zdGFjazoKICAg
ICAgICAgICAgIGlmIGhhc2F0dHIoY29sLCAiX3ByZXBhcmVfZXhjIik6Ci0gICAgICAgICAgICAg
ICAgcHkuYnVpbHRpbi5fcmVyYWlzZSgqY29sLl9wcmVwYXJlX2V4YykKLSAgICAgICAgZm9yIGNv
bCBpbiBuZWVkZWRfY29sbGVjdG9yc1tsZW4oc2VsZi5zdGFjayk6XToKKyAgICAgICAgICAgICAg
ICBzaXgucmVyYWlzZSgqY29sLl9wcmVwYXJlX2V4YykKKyAgICAgICAgZm9yIGNvbCBpbiBuZWVk
ZWRfY29sbGVjdG9yc1tsZW4oc2VsZi5zdGFjaykgOl06CiAgICAgICAgICAgICBzZWxmLnN0YWNr
LmFwcGVuZChjb2wpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgY29sLnNldHVw
KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3NldHVwb25seS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3NldHVwb25seS5weQppbmRleCA4MTI0MGQ5ZDA1NWVmYzZi
ZjBmNmI1NmYzOGZjNGM4NGY5NTQ1YTNjLi4wODU5MDExMjQxYTljZmYzZmM3NmM5YzdjYTlkNzhh
NDJiMjQxN2VjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9zZXR1cG9ubHku
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2V0dXBvbmx5LnB5CkBAIC0xLDggKzEs
MTIgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwg
cHJpbnRfZnVuY3Rpb24KKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCi1pbXBvcnQgcHl0ZXN0CiBp
bXBvcnQgc3lzCiAKK2ltcG9ydCBweXRlc3QKKwogCiBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJz
ZXIpOgogICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJkZWJ1Z2NvbmZpZyIpCkBAIC01MSw3
ICs1NSw4IEBAIGRlZiBfc2hvd19maXh0dXJlX2FjdGlvbihmaXh0dXJlZGVmLCBtc2cpOgogICAg
IGNvbmZpZyA9IGZpeHR1cmVkZWYuX2ZpeHR1cmVtYW5hZ2VyLmNvbmZpZwogICAgIGNhcG1hbiA9
IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigiY2FwdHVyZW1hbmFnZXIiKQogICAgIGlm
IGNhcG1hbjoKLSAgICAgICAgb3V0LCBlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVy
ZSgpCisgICAgICAgIGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKKyAgICAgICAgb3V0
LCBlcnIgPSBjYXBtYW4ucmVhZF9nbG9iYWxfY2FwdHVyZSgpCiAKICAgICB0dyA9IGNvbmZpZy5n
ZXRfdGVybWluYWxfd3JpdGVyKCkKICAgICB0dy5saW5lKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L3NldHVwcGxhbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3Nl
dHVwcGxhbi5weQppbmRleCAyM2Y0Zjk3ZTZkOTc3ZTIxY2RlZDM1N2IxZWIzNDA4MWJmYmFjNTE1
Li40N2IwZmU4MmVmNmRiZDNhZmVhZGVjOGJjMzY5NzYzZTlmNjRhNmNiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9zZXR1cHBsYW4ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3Qvc2V0dXBwbGFuLnB5CkBAIC0xLDQgKzEsNyBAQAotZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorIyAtKi0gY29k
aW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy
aW50X2Z1bmN0aW9uCiAKIGltcG9ydCBweXRlc3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3Qvc2tpcHBpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9za2lwcGlu
Zy5weQppbmRleCBhMzQ4ZDU0ODRjZGI5MzllNWE2YTU4OTA2MjRhZTkxYWY2MDk0OTZmLi5iYzhi
ODhlNzE3OGQ4NjdlMzZmNzU3OWNlNWFmOWM5MDExMGU0ODgyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC9za2lwcGluZy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVz
dC9za2lwcGluZy5weQpAQCAtMSw5ICsxLDE0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQog
IiIiIHN1cHBvcnQgZm9yIHNraXAveGZhaWwgZnVuY3Rpb25zIGFuZCBtYXJrZXJzLiAiIiIKLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0
aW9uCiAKIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGhvb2tpbXBsCiBmcm9tIF9weXRlc3Qu
bWFyay5ldmFsdWF0ZSBpbXBvcnQgTWFya0V2YWx1YXRvcgotZnJvbSBfcHl0ZXN0Lm91dGNvbWVz
IGltcG9ydCBmYWlsLCBza2lwLCB4ZmFpbAorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBm
YWlsCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IHNraXAKK2Zyb20gX3B5dGVzdC5vdXRj
b21lcyBpbXBvcnQgeGZhaWwKIAogCiBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgpAQCAt
MTMsNyArMTgsNyBAQCBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgogICAgICAgICBhY3Rp
b249InN0b3JlX3RydWUiLAogICAgICAgICBkZXN0PSJydW54ZmFpbCIsCiAgICAgICAgIGRlZmF1
bHQ9RmFsc2UsCi0gICAgICAgIGhlbHA9InJ1biB0ZXN0cyBldmVuIGlmIHRoZXkgYXJlIG1hcmtl
ZCB4ZmFpbCIsCisgICAgICAgIGhlbHA9InJlcG9ydCB0aGUgcmVzdWx0cyBvZiB4ZmFpbCB0ZXN0
cyBhcyBpZiB0aGV5IHdlcmUgbm90IG1hcmtlZCIsCiAgICAgKQogCiAgICAgcGFyc2VyLmFkZGlu
aSgKQEAgLTUxLDcgKzU2LDcgQEAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICAg
ICAgInJlc3VsdHMgaW4gYSBUcnVlIHZhbHVlLiAgRXZhbHVhdGlvbiBoYXBwZW5zIHdpdGhpbiB0
aGUgIgogICAgICAgICAibW9kdWxlIGdsb2JhbCBjb250ZXh0LiBFeGFtcGxlOiBza2lwaWYoJ3N5
cy5wbGF0Zm9ybSA9PSBcIndpbjMyXCInKSAiCiAgICAgICAgICJza2lwcyB0aGUgdGVzdCBpZiB3
ZSBhcmUgb24gdGhlIHdpbjMyIHBsYXRmb3JtLiBzZWUgIgotICAgICAgICAiaHR0cDovL3B5dGVz
dC5vcmcvbGF0ZXN0L3NraXBwaW5nLmh0bWwiLAorICAgICAgICAiaHR0cHM6Ly9kb2NzLnB5dGVz
dC5vcmcvZW4vbGF0ZXN0L3NraXBwaW5nLmh0bWwiLAogICAgICkKICAgICBjb25maWcuYWRkaW5p
dmFsdWVfbGluZSgKICAgICAgICAgIm1hcmtlcnMiLApAQCAtNjEsNyArNjYsNyBAQCBkZWYgcHl0
ZXN0X2NvbmZpZ3VyZShjb25maWcpOgogICAgICAgICAiYW5kIHJ1bj1GYWxzZSBpZiB5b3UgZG9u
J3QgZXZlbiB3YW50IHRvIGV4ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24uICIKICAgICAgICAgIklm
IG9ubHkgc3BlY2lmaWMgZXhjZXB0aW9uKHMpIGFyZSBleHBlY3RlZCwgeW91IGNhbiBsaXN0IHRo
ZW0gaW4gIgogICAgICAgICAicmFpc2VzLCBhbmQgaWYgdGhlIHRlc3QgZmFpbHMgaW4gb3RoZXIg
d2F5cywgaXQgd2lsbCBiZSByZXBvcnRlZCBhcyAiCi0gICAgICAgICJhIHRydWUgZmFpbHVyZS4g
U2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9za2lwcGluZy5odG1sIiwKKyAgICAgICAgImEg
dHJ1ZSBmYWlsdXJlLiBTZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3NraXBw
aW5nLmh0bWwiLAogICAgICkKIAogCkBAIC0xNTcsOSArMTYyLDExIEBAIGRlZiBweXRlc3RfcnVu
dGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgogICAgICAgICAgICAgZWxzZToKICAgICAgICAg
ICAgICAgICByZXAub3V0Y29tZSA9ICJwYXNzZWQiCiAgICAgICAgICAgICAgICAgcmVwLndhc3hm
YWlsID0gZXhwbGFuYXRpb24KLSAgICBlbGlmIGdldGF0dHIoaXRlbSwgIl9za2lwcGVkX2J5X21h
cmsiLCBGYWxzZSkgYW5kIHJlcC5za2lwcGVkIGFuZCB0eXBlKAotICAgICAgICByZXAubG9uZ3Jl
cHIKLSAgICApIGlzIHR1cGxlOgorICAgIGVsaWYgKAorICAgICAgICBnZXRhdHRyKGl0ZW0sICJf
c2tpcHBlZF9ieV9tYXJrIiwgRmFsc2UpCisgICAgICAgIGFuZCByZXAuc2tpcHBlZAorICAgICAg
ICBhbmQgdHlwZShyZXAubG9uZ3JlcHIpIGlzIHR1cGxlCisgICAgKToKICAgICAgICAgIyBza2lw
cGVkIGJ5IG1hcmsuc2tpcGlmOyBjaGFuZ2UgdGhlIGxvY2F0aW9uIG9mIHRoZSBmYWlsdXJlCiAg
ICAgICAgICMgdG8gcG9pbnQgdG8gdGhlIGl0ZW0gZGVmaW5pdGlvbiwgb3RoZXJ3aXNlIGl0IHdp
bGwgZGlzcGxheQogICAgICAgICAjIHRoZSBsb2NhdGlvbiBvZiB3aGVyZSB0aGUgc2tpcCBleGNl
cHRpb24gd2FzIHJhaXNlZCB3aXRoaW4gcHl0ZXN0CkBAIC0xNzQsMTIwICsxODEsNiBAQCBkZWYg
cHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToKIGRlZiBweXRlc3RfcmVwb3J0
X3Rlc3RzdGF0dXMocmVwb3J0KToKICAgICBpZiBoYXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIik6
CiAgICAgICAgIGlmIHJlcG9ydC5za2lwcGVkOgotICAgICAgICAgICAgcmV0dXJuICJ4ZmFpbGVk
IiwgIngiLCAieGZhaWwiCisgICAgICAgICAgICByZXR1cm4gInhmYWlsZWQiLCAieCIsICJYRkFJ
TCIKICAgICAgICAgZWxpZiByZXBvcnQucGFzc2VkOgotICAgICAgICAgICAgcmV0dXJuICJ4cGFz
c2VkIiwgIlgiLCAoIlhQQVNTIiwgeyJ5ZWxsb3ciOiBUcnVlfSkKLQotCi0jIGNhbGxlZCBieSB0
aGUgdGVybWluYWxyZXBvcnRlciBpbnN0YW5jZS9wbHVnaW4KLQotCi1kZWYgcHl0ZXN0X3Rlcm1p
bmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlcik6Ci0gICAgdHIgPSB0ZXJtaW5hbHJlcG9ydGVy
Ci0gICAgaWYgbm90IHRyLnJlcG9ydGNoYXJzOgotICAgICAgICAjIGZvciBuYW1lIGluICJ4ZmFp
bGVkIHNraXBwZWQgZmFpbGVkIHhwYXNzZWQiOgotICAgICAgICAjICAgIGlmIG5vdCB0ci5zdGF0
cy5nZXQobmFtZSwgMCk6Ci0gICAgICAgICMgICAgICAgIHRyLndyaXRlX2xpbmUoIkhJTlQ6IHVz
ZSAnLXInIG9wdGlvbiB0byBzZWUgZXh0cmEgIgotICAgICAgICAjICAgICAgICAgICAgICAic3Vt
bWFyeSBpbmZvIGFib3V0IHRlc3RzIikKLSAgICAgICAgIyAgICAgICAgYnJlYWsKLSAgICAgICAg
cmV0dXJuCi0KLSAgICBsaW5lcyA9IFtdCi0gICAgZm9yIGNoYXIgaW4gdHIucmVwb3J0Y2hhcnM6
Ci0gICAgICAgIGFjdGlvbiA9IFJFUE9SVENIQVJfQUNUSU9OUy5nZXQoY2hhciwgbGFtYmRhIHRy
LCBsaW5lczogTm9uZSkKLSAgICAgICAgYWN0aW9uKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKQot
Ci0gICAgaWYgbGluZXM6Ci0gICAgICAgIHRyLl90dy5zZXAoIj0iLCAic2hvcnQgdGVzdCBzdW1t
YXJ5IGluZm8iKQotICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKLSAgICAgICAgICAgIHRyLl90
dy5saW5lKGxpbmUpCi0KLQotZGVmIHNob3dfc2ltcGxlKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVz
LCBzdGF0LCBmb3JtYXQpOgotICAgIGZhaWxlZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0
KHN0YXQpCi0gICAgaWYgZmFpbGVkOgotICAgICAgICBmb3IgcmVwIGluIGZhaWxlZDoKLSAgICAg
ICAgICAgIHBvcyA9IHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnLmN3ZF9yZWxhdGl2ZV9ub2RlaWQo
cmVwLm5vZGVpZCkKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZChmb3JtYXQgJSAocG9zLCkpCi0K
LQotZGVmIHNob3dfeGZhaWxlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6Ci0gICAgeGZhaWxl
ZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0KCJ4ZmFpbGVkIikKLSAgICBpZiB4ZmFpbGVk
OgotICAgICAgICBmb3IgcmVwIGluIHhmYWlsZWQ6Ci0gICAgICAgICAgICBwb3MgPSB0ZXJtaW5h
bHJlcG9ydGVyLmNvbmZpZy5jd2RfcmVsYXRpdmVfbm9kZWlkKHJlcC5ub2RlaWQpCi0gICAgICAg
ICAgICByZWFzb24gPSByZXAud2FzeGZhaWwKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiWEZB
SUwgJXMiICUgKHBvcywpKQotICAgICAgICAgICAgaWYgcmVhc29uOgotICAgICAgICAgICAgICAg
IGxpbmVzLmFwcGVuZCgiICAiICsgc3RyKHJlYXNvbikpCi0KLQotZGVmIHNob3dfeHBhc3NlZCh0
ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6Ci0gICAgeHBhc3NlZCA9IHRlcm1pbmFscmVwb3J0ZXIu
c3RhdHMuZ2V0KCJ4cGFzc2VkIikKLSAgICBpZiB4cGFzc2VkOgotICAgICAgICBmb3IgcmVwIGlu
IHhwYXNzZWQ6Ci0gICAgICAgICAgICBwb3MgPSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5jd2Rf
cmVsYXRpdmVfbm9kZWlkKHJlcC5ub2RlaWQpCi0gICAgICAgICAgICByZWFzb24gPSByZXAud2Fz
eGZhaWwKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiWFBBU1MgJXMgJXMiICUgKHBvcywgcmVh
c29uKSkKLQotCi1kZWYgZm9sZGVkX3NraXBzKHNraXBwZWQpOgotICAgIGQgPSB7fQotICAgIGZv
ciBldmVudCBpbiBza2lwcGVkOgotICAgICAgICBrZXkgPSBldmVudC5sb25ncmVwcgotICAgICAg
ICBhc3NlcnQgbGVuKGtleSkgPT0gMywgKGV2ZW50LCBrZXkpCi0gICAgICAgIGtleXdvcmRzID0g
Z2V0YXR0cihldmVudCwgImtleXdvcmRzIiwge30pCi0gICAgICAgICMgZm9sZGluZyByZXBvcnRz
IHdpdGggZ2xvYmFsIHB5dGVzdG1hcmsgdmFyaWFibGUKLSAgICAgICAgIyB0aGlzIGlzIHdvcmth
cm91bmQsIGJlY2F1c2UgZm9yIG5vdyB3ZSBjYW5ub3QgaWRlbnRpZnkgdGhlIHNjb3BlIG9mIGEg
c2tpcCBtYXJrZXIKLSAgICAgICAgIyBUT0RPOiByZXZpc2l0IGFmdGVyIG1hcmtzIHNjb3BlIHdv
dWxkIGJlIGZpeGVkCi0gICAgICAgIHdoZW4gPSBnZXRhdHRyKGV2ZW50LCAid2hlbiIsIE5vbmUp
Ci0gICAgICAgIGlmIHdoZW4gPT0gInNldHVwIiBhbmQgInNraXAiIGluIGtleXdvcmRzIGFuZCAi
cHl0ZXN0bWFyayIgbm90IGluIGtleXdvcmRzOgotICAgICAgICAgICAga2V5ID0gKGtleVswXSwg
Tm9uZSwga2V5WzJdKQotICAgICAgICBkLnNldGRlZmF1bHQoa2V5LCBbXSkuYXBwZW5kKGV2ZW50
KQotICAgIHZhbHVlcyA9IFtdCi0gICAgZm9yIGtleSwgZXZlbnRzIGluIGQuaXRlbXMoKToKLSAg
ICAgICAgdmFsdWVzLmFwcGVuZCgobGVuKGV2ZW50cyksKSArIGtleSkKLSAgICByZXR1cm4gdmFs
dWVzCi0KLQotZGVmIHNob3dfc2tpcHBlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6Ci0gICAg
dHIgPSB0ZXJtaW5hbHJlcG9ydGVyCi0gICAgc2tpcHBlZCA9IHRyLnN0YXRzLmdldCgic2tpcHBl
ZCIsIFtdKQotICAgIGlmIHNraXBwZWQ6Ci0gICAgICAgICMgaWYgbm90IHRyLmhhc29wdCgnc2tp
cHBlZCcpOgotICAgICAgICAjICAgIHRyLndyaXRlX2xpbmUoCi0gICAgICAgICMgICAgICAgICIl
ZCBza2lwcGVkIHRlc3RzLCBzcGVjaWZ5IC1ycyBmb3IgbW9yZSBpbmZvIiAlCi0gICAgICAgICMg
ICAgICAgIGxlbihza2lwcGVkKSkKLSAgICAgICAgIyAgICByZXR1cm4KLSAgICAgICAgZnNraXBz
ID0gZm9sZGVkX3NraXBzKHNraXBwZWQpCi0gICAgICAgIGlmIGZza2lwczoKLSAgICAgICAgICAg
ICMgdHIud3JpdGVfc2VwKCJfIiwgInNraXBwZWQgdGVzdCBzdW1tYXJ5IikKLSAgICAgICAgICAg
IGZvciBudW0sIGZzcGF0aCwgbGluZW5vLCByZWFzb24gaW4gZnNraXBzOgotICAgICAgICAgICAg
ICAgIGlmIHJlYXNvbi5zdGFydHN3aXRoKCJTa2lwcGVkOiAiKToKLSAgICAgICAgICAgICAgICAg
ICAgcmVhc29uID0gcmVhc29uWzk6XQotICAgICAgICAgICAgICAgIGlmIGxpbmVubyBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKAotICAgICAgICAgICAgICAg
ICAgICAgICAgIlNLSVAgWyVkXSAlczolZDogJXMiICUgKG51bSwgZnNwYXRoLCBsaW5lbm8gKyAx
LCByZWFzb24pCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIlNLSVAgWyVkXSAlczogJXMiICUgKG51
bSwgZnNwYXRoLCByZWFzb24pKQotCi0KLWRlZiBzaG93ZXIoc3RhdCwgZm9ybWF0KToKLQotICAg
IGRlZiBzaG93Xyh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6Ci0gICAgICAgIHJldHVybiBzaG93
X3NpbXBsZSh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcywgc3RhdCwgZm9ybWF0KQotCi0gICAgcmV0
dXJuIHNob3dfCi0KLQotUkVQT1JUQ0hBUl9BQ1RJT05TID0gewotICAgICJ4Ijogc2hvd194ZmFp
bGVkLAotICAgICJYIjogc2hvd194cGFzc2VkLAotICAgICJmIjogc2hvd2VyKCJmYWlsZWQiLCAi
RkFJTCAlcyIpLAotICAgICJGIjogc2hvd2VyKCJmYWlsZWQiLCAiRkFJTCAlcyIpLAotICAgICJz
Ijogc2hvd19za2lwcGVkLAotICAgICJTIjogc2hvd19za2lwcGVkLAotICAgICJwIjogc2hvd2Vy
KCJwYXNzZWQiLCAiUEFTU0VEICVzIiksCi0gICAgIkUiOiBzaG93ZXIoImVycm9yIiwgIkVSUk9S
ICVzIiksCi19CisgICAgICAgICAgICByZXR1cm4gInhwYXNzZWQiLCAiWCIsICJYUEFTUyIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3N0ZXB3aXNlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3Qvc3RlcHdpc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg5MDI1OTU4OTY5ODgzOGVk
MjY0ZjAxMzliNTc3NGUyZDIzMGUzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L3N0ZXB3aXNlLnB5CkBAIC0wLDAgKzEsMTA5IEBACisjIC0qLSBjb2Rpbmc6IHV0
Zi04IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6
CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQorICAgIGdyb3VwLmFkZG9w
dGlvbigKKyAgICAgICAgIi0tc3ciLAorICAgICAgICAiLS1zdGVwd2lzZSIsCisgICAgICAgIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgIGRlc3Q9InN0ZXB3aXNlIiwKKyAgICAgICAgaGVs
cD0iZXhpdCBvbiB0ZXN0IGZhaWx1cmUgYW5kIGNvbnRpbnVlIGZyb20gbGFzdCBmYWlsaW5nIHRl
c3QgbmV4dCB0aW1lIiwKKyAgICApCisgICAgZ3JvdXAuYWRkb3B0aW9uKAorICAgICAgICAiLS1z
dGVwd2lzZS1za2lwIiwKKyAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgZGVz
dD0ic3RlcHdpc2Vfc2tpcCIsCisgICAgICAgIGhlbHA9Imlnbm9yZSB0aGUgZmlyc3QgZmFpbGlu
ZyB0ZXN0IGJ1dCBzdG9wIG9uIHRoZSBuZXh0IGZhaWxpbmcgdGVzdCIsCisgICAgKQorCisKK0Bw
eXRlc3QuaG9va2ltcGwKK2RlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgY29uZmln
LnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoU3RlcHdpc2VQbHVnaW4oY29uZmlnKSwgInN0ZXB3aXNl
cGx1Z2luIikKKworCitjbGFzcyBTdGVwd2lzZVBsdWdpbjoKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgY29uZmlnKToKKyAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKKyAgICAgICAgc2VsZi5h
Y3RpdmUgPSBjb25maWcuZ2V0dmFsdWUoInN0ZXB3aXNlIikKKyAgICAgICAgc2VsZi5zZXNzaW9u
ID0gTm9uZQorICAgICAgICBzZWxmLnJlcG9ydF9zdGF0dXMgPSAiIgorCisgICAgICAgIGlmIHNl
bGYuYWN0aXZlOgorICAgICAgICAgICAgc2VsZi5sYXN0ZmFpbGVkID0gY29uZmlnLmNhY2hlLmdl
dCgiY2FjaGUvc3RlcHdpc2UiLCBOb25lKQorICAgICAgICAgICAgc2VsZi5za2lwID0gY29uZmln
LmdldHZhbHVlKCJzdGVwd2lzZV9za2lwIikKKworICAgIGRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0
KHNlbGYsIHNlc3Npb24pOgorICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCisKKyAgICBk
ZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoc2VsZiwgc2Vzc2lvbiwgY29uZmlnLCBp
dGVtcyk6CisgICAgICAgIGlmIG5vdCBzZWxmLmFjdGl2ZToKKyAgICAgICAgICAgIHJldHVybgor
ICAgICAgICBpZiBub3Qgc2VsZi5sYXN0ZmFpbGVkOgorICAgICAgICAgICAgc2VsZi5yZXBvcnRf
c3RhdHVzID0gIm5vIHByZXZpb3VzbHkgZmFpbGVkIHRlc3RzLCBub3Qgc2tpcHBpbmcuIgorICAg
ICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgYWxyZWFkeV9wYXNzZWQgPSBbXQorICAgICAgICBm
b3VuZCA9IEZhbHNlCisKKyAgICAgICAgIyBNYWtlIGEgbGlzdCBvZiBhbGwgdGVzdHMgdGhhdCBo
YXZlIGJlZW4gcnVuIGJlZm9yZSB0aGUgbGFzdCBmYWlsaW5nIG9uZS4KKyAgICAgICAgZm9yIGl0
ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICBpZiBpdGVtLm5vZGVpZCA9PSBzZWxmLmxhc3RmYWls
ZWQ6CisgICAgICAgICAgICAgICAgZm91bmQgPSBUcnVlCisgICAgICAgICAgICAgICAgYnJlYWsK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYWxyZWFkeV9wYXNzZWQuYXBwZW5k
KGl0ZW0pCisKKyAgICAgICAgIyBJZiB0aGUgcHJldmlvdXNseSBmYWlsZWQgdGVzdCB3YXMgbm90
IGZvdW5kIGFtb25nIHRoZSB0ZXN0IGl0ZW1zLAorICAgICAgICAjIGRvIG5vdCBza2lwIGFueSB0
ZXN0cy4KKyAgICAgICAgaWYgbm90IGZvdW5kOgorICAgICAgICAgICAgc2VsZi5yZXBvcnRfc3Rh
dHVzID0gInByZXZpb3VzbHkgZmFpbGVkIHRlc3Qgbm90IGZvdW5kLCBub3Qgc2tpcHBpbmcuIgor
ICAgICAgICAgICAgYWxyZWFkeV9wYXNzZWQgPSBbXQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgc2VsZi5yZXBvcnRfc3RhdHVzID0gInNraXBwaW5nIHt9IGFscmVhZHkgcGFzc2VkIGl0ZW1z
LiIuZm9ybWF0KAorICAgICAgICAgICAgICAgIGxlbihhbHJlYWR5X3Bhc3NlZCkKKyAgICAgICAg
ICAgICkKKworICAgICAgICBmb3IgaXRlbSBpbiBhbHJlYWR5X3Bhc3NlZDoKKyAgICAgICAgICAg
IGl0ZW1zLnJlbW92ZShpdGVtKQorCisgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9kZXNlbGVj
dGVkKGl0ZW1zPWFscmVhZHlfcGFzc2VkKQorCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3Jl
cG9ydChzZWxmLCByZXBvcnQpOgorICAgICAgICBpZiBub3Qgc2VsZi5hY3RpdmU6CisgICAgICAg
ICAgICByZXR1cm4KKworICAgICAgICBpZiByZXBvcnQuZmFpbGVkOgorICAgICAgICAgICAgaWYg
c2VsZi5za2lwOgorICAgICAgICAgICAgICAgICMgUmVtb3ZlIHRlc3QgZnJvbSB0aGUgZmFpbGVk
IG9uZXMgKGlmIGl0IGV4aXN0cykgYW5kIHVuc2V0IHRoZSBza2lwIG9wdGlvbgorICAgICAgICAg
ICAgICAgICMgdG8gbWFrZSBzdXJlIHRoZSBmb2xsb3dpbmcgdGVzdHMgd2lsbCBub3QgYmUgc2tp
cHBlZC4KKyAgICAgICAgICAgICAgICBpZiByZXBvcnQubm9kZWlkID09IHNlbGYubGFzdGZhaWxl
ZDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sYXN0ZmFpbGVkID0gTm9uZQorCisgICAgICAg
ICAgICAgICAgc2VsZi5za2lwID0gRmFsc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgIyBNYXJrIHRlc3QgYXMgdGhlIGxhc3QgZmFpbGluZyBhbmQgaW50ZXJydXB0IHRoZSB0
ZXN0IHNlc3Npb24uCisgICAgICAgICAgICAgICAgc2VsZi5sYXN0ZmFpbGVkID0gcmVwb3J0Lm5v
ZGVpZAorICAgICAgICAgICAgICAgIHNlbGYuc2Vzc2lvbi5zaG91bGRzdG9wID0gKAorICAgICAg
ICAgICAgICAgICAgICAiVGVzdCBmYWlsZWQsIGNvbnRpbnVpbmcgZnJvbSB0aGlzIHRlc3QgbmV4
dCBydW4uIgorICAgICAgICAgICAgICAgICkKKworICAgICAgICBlbHNlOgorICAgICAgICAgICAg
IyBJZiB0aGUgdGVzdCB3YXMgYWN0dWFsbHkgcnVuIGFuZCBkaWQgcGFzcy4KKyAgICAgICAgICAg
IGlmIHJlcG9ydC53aGVuID09ICJjYWxsIjoKKyAgICAgICAgICAgICAgICAjIFJlbW92ZSB0ZXN0
IGZyb20gdGhlIGZhaWxlZCBvbmVzLCBpZiBleGlzdHMuCisgICAgICAgICAgICAgICAgaWYgcmVw
b3J0Lm5vZGVpZCA9PSBzZWxmLmxhc3RmYWlsZWQ6CisgICAgICAgICAgICAgICAgICAgIHNlbGYu
bGFzdGZhaWxlZCA9IE5vbmUKKworICAgIGRlZiBweXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5p
c2goc2VsZik6CisgICAgICAgIGlmIHNlbGYuYWN0aXZlIGFuZCBzZWxmLmNvbmZpZy5nZXRvcHRp
b24oInZlcmJvc2UiKSA+PSAwIGFuZCBzZWxmLnJlcG9ydF9zdGF0dXM6CisgICAgICAgICAgICBy
ZXR1cm4gInN0ZXB3aXNlOiAlcyIgJSBzZWxmLnJlcG9ydF9zdGF0dXMKKworICAgIGRlZiBweXRl
c3Rfc2Vzc2lvbmZpbmlzaChzZWxmLCBzZXNzaW9uKToKKyAgICAgICAgaWYgc2VsZi5hY3RpdmU6
CisgICAgICAgICAgICBzZWxmLmNvbmZpZy5jYWNoZS5zZXQoImNhY2hlL3N0ZXB3aXNlIiwgc2Vs
Zi5sYXN0ZmFpbGVkKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBDbGVhciB0aGUgbGlz
dCBvZiBmYWlsaW5nIHRlc3RzIGlmIHRoZSBwbHVnaW4gaXMgbm90IGFjdGl2ZS4KKyAgICAgICAg
ICAgIHNlbGYuY29uZmlnLmNhY2hlLnNldCgiY2FjaGUvc3RlcHdpc2UiLCBbXSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3Rlcm1pbmFsLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3QvdGVybWluYWwucHkKaW5kZXggOWM0ZWVjNzUzMWE5OTdlODQxY2U5MDQzNTNmNTA0
YjY5ZDViYjVlMS4uNDQxODMzOGM2NTYxMmI2ZmQyOWY3MWQzMWMyZDIyZTA4OTA5NTM4NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdGVybWluYWwucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3QvdGVybWluYWwucHkKQEAgLTEsMTQgKzEsMjAgQEAKKyMgLSotIGNv
ZGluZzogdXRmLTggLSotCiAiIiIgdGVybWluYWwgcmVwb3J0aW5nIG9mIHRoZSBmdWxsIHRlc3Rp
bmcgcHJvY2Vzcy4KIAogVGhpcyBpcyBhIGdvb2Qgc291cmNlIGZvciBsb29raW5nIGF0IHRoZSB2
YXJpb3VzIHJlcG9ydGluZyBob29rcy4KICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAotaW1wb3J0IGl0ZXJ0b29scwor
aW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgY29sbGVjdGlvbnMKIGltcG9ydCBwbGF0Zm9ybQogaW1w
b3J0IHN5cwogaW1wb3J0IHRpbWUKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsCiAKK2lt
cG9ydCBhdHRyCiBpbXBvcnQgcGx1Z2d5CiBpbXBvcnQgcHkKIGltcG9ydCBzaXgKQEAgLTE2LDE2
ICsyMiwxMyBAQCBmcm9tIG1vcmVfaXRlcnRvb2xzIGltcG9ydCBjb2xsYXBzZQogCiBpbXBvcnQg
cHl0ZXN0CiBmcm9tIF9weXRlc3QgaW1wb3J0IG5vZGVzCi1mcm9tIF9weXRlc3QubWFpbiBpbXBv
cnQgKAotICAgIEVYSVRfT0ssCi0gICAgRVhJVF9URVNUU0ZBSUxFRCwKLSAgICBFWElUX0lOVEVS
UlVQVEVELAotICAgIEVYSVRfVVNBR0VFUlJPUiwKLSAgICBFWElUX05PVEVTVFNDT0xMRUNURUQs
Ci0pCi0KK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX0lOVEVSUlVQVEVECitmcm9tIF9w
eXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVECitmcm9tIF9weXRlc3QubWFp
biBpbXBvcnQgRVhJVF9PSworZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfVEVTVFNGQUlM
RUQKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX1VTQUdFRVJST1IKIAotaW1wb3J0IGFy
Z3BhcnNlCitSRVBPUlRfQ09MTEVDVElOR19SRVNPTFVUSU9OID0gMC41CiAKIAogY2xhc3MgTW9y
ZVF1aWV0QWN0aW9uKGFyZ3BhcnNlLkFjdGlvbik6CkBAIC04MCwxMSArODMsMTEgQEAgZGVmIHB5
dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKICAgICAgICAgZGVzdD0icmVwb3J0Y2hhcnMiLAogICAg
ICAgICBkZWZhdWx0PSIiLAogICAgICAgICBtZXRhdmFyPSJjaGFycyIsCi0gICAgICAgIGhlbHA9
InNob3cgZXh0cmEgdGVzdCBzdW1tYXJ5IGluZm8gYXMgc3BlY2lmaWVkIGJ5IGNoYXJzIChmKWFp
bGVkLCAiCi0gICAgICAgICIoRSllcnJvciwgKHMpc2tpcHBlZCwgKHgpZmFpbGVkLCAoWClwYXNz
ZWQsICIKLSAgICAgICAgIihwKXBhc3NlZCwgKFApcGFzc2VkIHdpdGggb3V0cHV0LCAoYSlhbGwg
ZXhjZXB0IHBQLiAiCisgICAgICAgIGhlbHA9InNob3cgZXh0cmEgdGVzdCBzdW1tYXJ5IGluZm8g
YXMgc3BlY2lmaWVkIGJ5IGNoYXJzOiAoZilhaWxlZCwgIgorICAgICAgICAiKEUpcnJvciwgKHMp
a2lwcGVkLCAoeClmYWlsZWQsIChYKXBhc3NlZCwgIgorICAgICAgICAiKHApYXNzZWQsIChQKWFz
c2VkIHdpdGggb3V0cHV0LCAoYSlsbCBleGNlcHQgcGFzc2VkIChwL1ApLCBvciAoQSlsbC4gIgog
ICAgICAgICAiV2FybmluZ3MgYXJlIGRpc3BsYXllZCBhdCBhbGwgdGltZXMgZXhjZXB0IHdoZW4g
IgotICAgICAgICAiLS1kaXNhYmxlLXdhcm5pbmdzIGlzIHNldCIsCisgICAgICAgICItLWRpc2Fi
bGUtd2FybmluZ3MgaXMgc2V0LiIsCiAgICAgKQogICAgIGdyb3VwLl9hZGRvcHRpb24oCiAgICAg
ICAgICItLWRpc2FibGUtd2FybmluZ3MiLApAQCAtMTM5LDcgKzE0Miw3IEBAIGRlZiBweXRlc3Rf
YWRkb3B0aW9uKHBhcnNlcik6CiAKICAgICBwYXJzZXIuYWRkaW5pKAogICAgICAgICAiY29uc29s
ZV9vdXRwdXRfc3R5bGUiLAotICAgICAgICBoZWxwPSJjb25zb2xlIG91dHB1dDogY2xhc3NpYyBv
ciB3aXRoIGFkZGl0aW9uYWwgcHJvZ3Jlc3MgaW5mb3JtYXRpb24gKGNsYXNzaWN8cHJvZ3Jlc3Mp
LiIsCisgICAgICAgIGhlbHA9J2NvbnNvbGUgb3V0cHV0OiAiY2xhc3NpYyIsIG9yIHdpdGggYWRk
aXRpb25hbCBwcm9ncmVzcyBpbmZvcm1hdGlvbiAoInByb2dyZXNzIiAocGVyY2VudGFnZSkgfCAi
Y291bnQiKS4nLAogICAgICAgICBkZWZhdWx0PSJwcm9ncmVzcyIsCiAgICAgKQogCkBAIC0xNjMs
NDQgKzE2Niw1MiBAQCBkZWYgZ2V0cmVwb3J0b3B0KGNvbmZpZyk6CiAgICAgICAgIHJlcG9ydGNo
YXJzICs9ICJ3IgogICAgIGVsaWYgY29uZmlnLm9wdGlvbi5kaXNhYmxlX3dhcm5pbmdzIGFuZCAi
dyIgaW4gcmVwb3J0Y2hhcnM6CiAgICAgICAgIHJlcG9ydGNoYXJzID0gcmVwb3J0Y2hhcnMucmVw
bGFjZSgidyIsICIiKQotICAgIGlmIHJlcG9ydGNoYXJzOgotICAgICAgICBmb3IgY2hhciBpbiBy
ZXBvcnRjaGFyczoKLSAgICAgICAgICAgIGlmIGNoYXIgbm90IGluIHJlcG9ydG9wdHMgYW5kIGNo
YXIgIT0gImEiOgotICAgICAgICAgICAgICAgIHJlcG9ydG9wdHMgKz0gY2hhcgotICAgICAgICAg
ICAgZWxpZiBjaGFyID09ICJhIjoKLSAgICAgICAgICAgICAgICByZXBvcnRvcHRzID0gImZFc3hY
dyIKKyAgICBhbGlhc2VzID0geyJGIiwgIlMifQorICAgIGZvciBjaGFyIGluIHJlcG9ydGNoYXJz
OgorICAgICAgICAjIGhhbmRsZSBvbGQgYWxpYXNlcworICAgICAgICBpZiBjaGFyIGluIGFsaWFz
ZXM6CisgICAgICAgICAgICBjaGFyID0gY2hhci5sb3dlcigpCisgICAgICAgIGlmIGNoYXIgPT0g
ImEiOgorICAgICAgICAgICAgcmVwb3J0b3B0cyA9ICJzeFh3RWYiCisgICAgICAgIGVsaWYgY2hh
ciA9PSAiQSI6CisgICAgICAgICAgICByZXBvcnRvcHRzID0gIlBwc3hYd0VmIgorICAgICAgICAg
ICAgYnJlYWsKKyAgICAgICAgZWxpZiBjaGFyIG5vdCBpbiByZXBvcnRvcHRzOgorICAgICAgICAg
ICAgcmVwb3J0b3B0cyArPSBjaGFyCiAgICAgcmV0dXJuIHJlcG9ydG9wdHMKIAogCitAcHl0ZXN0
Lmhvb2tpbXBsKHRyeWxhc3Q9VHJ1ZSkgICMgYWZ0ZXIgX3B5dGVzdC5ydW5uZXIKIGRlZiBweXRl
c3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0KToKKyAgICBsZXR0ZXIgPSAiRiIKICAgICBpZiBy
ZXBvcnQucGFzc2VkOgogICAgICAgICBsZXR0ZXIgPSAiLiIKICAgICBlbGlmIHJlcG9ydC5za2lw
cGVkOgogICAgICAgICBsZXR0ZXIgPSAicyIKLSAgICBlbGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAg
ICAgIGxldHRlciA9ICJGIgotICAgICAgICBpZiByZXBvcnQud2hlbiAhPSAiY2FsbCI6Ci0gICAg
ICAgICAgICBsZXR0ZXIgPSAiZiIKLSAgICByZXR1cm4gcmVwb3J0Lm91dGNvbWUsIGxldHRlciwg
cmVwb3J0Lm91dGNvbWUudXBwZXIoKQogCisgICAgb3V0Y29tZSA9IHJlcG9ydC5vdXRjb21lCisg
ICAgaWYgcmVwb3J0LndoZW4gaW4gKCJjb2xsZWN0IiwgInNldHVwIiwgInRlYXJkb3duIikgYW5k
IG91dGNvbWUgPT0gImZhaWxlZCI6CisgICAgICAgIG91dGNvbWUgPSAiZXJyb3IiCisgICAgICAg
IGxldHRlciA9ICJFIgogCisgICAgcmV0dXJuIG91dGNvbWUsIGxldHRlciwgb3V0Y29tZS51cHBl
cigpCisKKworQGF0dHIucwogY2xhc3MgV2FybmluZ1JlcG9ydChvYmplY3QpOgogICAgICIiIgot
ICAgIFNpbXBsZSBzdHJ1Y3R1cmUgdG8gaG9sZCB3YXJuaW5ncyBpbmZvcm1hdGlvbiBjYXB0dXJl
ZCBieSBgYHB5dGVzdF9sb2d3YXJuaW5nYGAuCisgICAgU2ltcGxlIHN0cnVjdHVyZSB0byBob2xk
IHdhcm5pbmdzIGluZm9ybWF0aW9uIGNhcHR1cmVkIGJ5IGBgcHl0ZXN0X3dhcm5pbmdfY2FwdHVy
ZWRgYC4KKworICAgIDppdmFyIHN0ciBtZXNzYWdlOiB1c2VyIGZyaWVuZGx5IG1lc3NhZ2UgYWJv
dXQgdGhlIHdhcm5pbmcKKyAgICA6aXZhciBzdHJ8Tm9uZSBub2RlaWQ6IG5vZGUgaWQgdGhhdCBn
ZW5lcmF0ZWQgdGhlIHdhcm5pbmcgKHNlZSBgYGdldF9sb2NhdGlvbmBgKS4KKyAgICA6aXZhciB0
dXBsZXxweS5wYXRoLmxvY2FsIGZzbG9jYXRpb246CisgICAgICAgIGZpbGUgc3lzdGVtIGxvY2F0
aW9uIG9mIHRoZSBzb3VyY2Ugb2YgdGhlIHdhcm5pbmcgKHNlZSBgYGdldF9sb2NhdGlvbmBgKS4K
ICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb2RlLCBtZXNzYWdlLCBub2RlaWQ9
Tm9uZSwgZnNsb2NhdGlvbj1Ob25lKToKLSAgICAgICAgIiIiCi0gICAgICAgIDpwYXJhbSBjb2Rl
OiB1bnVzZWQKLSAgICAgICAgOnBhcmFtIHN0ciBtZXNzYWdlOiB1c2VyIGZyaWVuZGx5IG1lc3Nh
Z2UgYWJvdXQgdGhlIHdhcm5pbmcKLSAgICAgICAgOnBhcmFtIHN0cnxOb25lIG5vZGVpZDogbm9k
ZSBpZCB0aGF0IGdlbmVyYXRlZCB0aGUgd2FybmluZyAoc2VlIGBgZ2V0X2xvY2F0aW9uYGApLgot
ICAgICAgICA6cGFyYW0gdHVwbGV8cHkucGF0aC5sb2NhbCBmc2xvY2F0aW9uOgotICAgICAgICAg
ICAgZmlsZSBzeXN0ZW0gbG9jYXRpb24gb2YgdGhlIHNvdXJjZSBvZiB0aGUgd2FybmluZyAoc2Vl
IGBgZ2V0X2xvY2F0aW9uYGApLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5jb2RlID0gY29k
ZQotICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCi0gICAgICAgIHNlbGYubm9kZWlkID0g
bm9kZWlkCi0gICAgICAgIHNlbGYuZnNsb2NhdGlvbiA9IGZzbG9jYXRpb24KKyAgICBtZXNzYWdl
ID0gYXR0ci5pYigpCisgICAgbm9kZWlkID0gYXR0ci5pYihkZWZhdWx0PU5vbmUpCisgICAgZnNs
b2NhdGlvbiA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lKQorICAgIGNvdW50X3Rvd2FyZHNfc3VtbWFy
eSA9IFRydWUKIAogICAgIGRlZiBnZXRfbG9jYXRpb24oc2VsZiwgY29uZmlnKToKICAgICAgICAg
IiIiCkBAIC0yMTMsNiArMjI0LDggQEAgY2xhc3MgV2FybmluZ1JlcG9ydChvYmplY3QpOgogICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmZzbG9jYXRpb24sIHR1cGxlKSBhbmQgbGVuKHNl
bGYuZnNsb2NhdGlvbikgPj0gMjoKICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgbGluZW51bSA9
IHNlbGYuZnNsb2NhdGlvbls6Ml0KICAgICAgICAgICAgICAgICByZWxwYXRoID0gcHkucGF0aC5s
b2NhbChmaWxlbmFtZSkucmVsdG8oY29uZmlnLmludm9jYXRpb25fZGlyKQorICAgICAgICAgICAg
ICAgIGlmIG5vdCByZWxwYXRoOgorICAgICAgICAgICAgICAgICAgICByZWxwYXRoID0gc3RyKGZp
bGVuYW1lKQogICAgICAgICAgICAgICAgIHJldHVybiAiJXM6JXMiICUgKHJlbHBhdGgsIGxpbmVu
dW0pCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZi5m
c2xvY2F0aW9uKQpAQCAtMjIwLDIwICsyMzMsMTYgQEAgY2xhc3MgV2FybmluZ1JlcG9ydChvYmpl
Y3QpOgogCiAKIGNsYXNzIFRlcm1pbmFsUmVwb3J0ZXIob2JqZWN0KToKLQogICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBjb25maWcsIGZpbGU9Tm9uZSk6CiAgICAgICAgIGltcG9ydCBfcHl0ZXN0LmNv
bmZpZwogCiAgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCi0gICAgICAgIHNlbGYudmVyYm9z
aXR5ID0gc2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2UKLSAgICAgICAgc2VsZi5zaG93aGVhZGVy
ID0gc2VsZi52ZXJib3NpdHkgPj0gMAotICAgICAgICBzZWxmLnNob3dmc3BhdGggPSBzZWxmLnZl
cmJvc2l0eSA+PSAwCi0gICAgICAgIHNlbGYuc2hvd2xvbmd0ZXN0aW5mbyA9IHNlbGYudmVyYm9z
aXR5ID4gMAogICAgICAgICBzZWxmLl9udW1jb2xsZWN0ZWQgPSAwCiAgICAgICAgIHNlbGYuX3Nl
c3Npb24gPSBOb25lCisgICAgICAgIHNlbGYuX3Nob3dmc3BhdGggPSBOb25lCiAKICAgICAgICAg
c2VsZi5zdGF0cyA9IHt9Ci0gICAgICAgIHNlbGYuc3RhcnRkaXIgPSBweS5wYXRoLmxvY2FsKCkK
KyAgICAgICAgc2VsZi5zdGFydGRpciA9IGNvbmZpZy5pbnZvY2F0aW9uX2RpcgogICAgICAgICBp
ZiBmaWxlIGlzIE5vbmU6CiAgICAgICAgICAgICBmaWxlID0gc3lzLnN0ZG91dAogICAgICAgICBz
ZWxmLl90dyA9IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5hbF93cml0ZXIoY29uZmlnLCBm
aWxlKQpAQCAtMjQ2LDMxICsyNTUsNTkgQEAgY2xhc3MgVGVybWluYWxSZXBvcnRlcihvYmplY3Qp
OgogICAgICAgICBzZWxmLmlzYXR0eSA9IGZpbGUuaXNhdHR5KCkKICAgICAgICAgc2VsZi5fcHJv
Z3Jlc3Nfbm9kZWlkc19yZXBvcnRlZCA9IHNldCgpCiAgICAgICAgIHNlbGYuX3Nob3dfcHJvZ3Jl
c3NfaW5mbyA9IHNlbGYuX2RldGVybWluZV9zaG93X3Byb2dyZXNzX2luZm8oKQorICAgICAgICBz
ZWxmLl9jb2xsZWN0X3JlcG9ydF9sYXN0X3dyaXRlID0gTm9uZQogCiAgICAgZGVmIF9kZXRlcm1p
bmVfc2hvd19wcm9ncmVzc19pbmZvKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm4gVHJ1ZSBpZiB3
ZSBzaG91bGQgZGlzcGxheSBwcm9ncmVzcyBpbmZvcm1hdGlvbiBiYXNlZCBvbiB0aGUgY3VycmVu
dCBjb25maWciIiIKICAgICAgICAgIyBkbyBub3Qgc2hvdyBwcm9ncmVzcyBpZiB3ZSBhcmUgbm90
IGNhcHR1cmluZyBvdXRwdXQgKCMzMDM4KQotICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXRvcHRp
b24oImNhcHR1cmUiKSA9PSAibm8iOgorICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24o
ImNhcHR1cmUiLCAibm8iKSA9PSAibm8iOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAg
ICAgICMgZG8gbm90IHNob3cgcHJvZ3Jlc3MgaWYgd2UgYXJlIHNob3dpbmcgZml4dHVyZSBzZXR1
cC90ZWFyZG93bgotICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24oInNldHVwc2hvdyIp
OgorICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24oInNldHVwc2hvdyIsIEZhbHNlKToK
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICByZXR1cm4gc2VsZi5jb25maWcuZ2V0
aW5pKCJjb25zb2xlX291dHB1dF9zdHlsZSIpID09ICJwcm9ncmVzcyIKKyAgICAgICAgY2ZnID0g
c2VsZi5jb25maWcuZ2V0aW5pKCJjb25zb2xlX291dHB1dF9zdHlsZSIpCisgICAgICAgIGlmIGNm
ZyBpbiAoInByb2dyZXNzIiwgImNvdW50Iik6CisgICAgICAgICAgICByZXR1cm4gY2ZnCisgICAg
ICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHZlcmJvc2l0eShzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgc2hvd2hlYWRlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudmVy
Ym9zaXR5ID49IDAKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzaG93ZnNwYXRoKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLl9zaG93ZnNwYXRoIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4g
c2VsZi52ZXJib3NpdHkgPj0gMAorICAgICAgICByZXR1cm4gc2VsZi5fc2hvd2ZzcGF0aAorCisg
ICAgQHNob3dmc3BhdGguc2V0dGVyCisgICAgZGVmIHNob3dmc3BhdGgoc2VsZiwgdmFsdWUpOgor
ICAgICAgICBzZWxmLl9zaG93ZnNwYXRoID0gdmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiBzaG93bG9uZ3Rlc3RpbmZvKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi52ZXJib3NpdHkg
PiAwCiAKICAgICBkZWYgaGFzb3B0KHNlbGYsIGNoYXIpOgogICAgICAgICBjaGFyID0geyJ4ZmFp
bGVkIjogIngiLCAic2tpcHBlZCI6ICJzIn0uZ2V0KGNoYXIsIGNoYXIpCiAgICAgICAgIHJldHVy
biBjaGFyIGluIHNlbGYucmVwb3J0Y2hhcnMKIAotICAgIGRlZiB3cml0ZV9mc3BhdGhfcmVzdWx0
KHNlbGYsIG5vZGVpZCwgcmVzKToKKyAgICBkZWYgd3JpdGVfZnNwYXRoX3Jlc3VsdChzZWxmLCBu
b2RlaWQsIHJlcywgKiptYXJrdXApOgogICAgICAgICBmc3BhdGggPSBzZWxmLmNvbmZpZy5yb290
ZGlyLmpvaW4obm9kZWlkLnNwbGl0KCI6OiIpWzBdKQotICAgICAgICBpZiBmc3BhdGggIT0gc2Vs
Zi5jdXJyZW50ZnNwYXRoOgotICAgICAgICAgICAgaWYgc2VsZi5jdXJyZW50ZnNwYXRoIGlzIG5v
dCBOb25lOgorICAgICAgICAjIE5PVEU6IGV4cGxpY2l0bHkgY2hlY2sgZm9yIE5vbmUgdG8gd29y
ayBhcm91bmQgcHkgYnVnLCBhbmQgZm9yIGxlc3MKKyAgICAgICAgIyBvdmVyaGVhZCBpbiBnZW5l
cmFsIChodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weS9wdWxsLzIwNykuCisgICAgICAg
IGlmIHNlbGYuY3VycmVudGZzcGF0aCBpcyBOb25lIG9yIGZzcGF0aCAhPSBzZWxmLmN1cnJlbnRm
c3BhdGg6CisgICAgICAgICAgICBpZiBzZWxmLmN1cnJlbnRmc3BhdGggaXMgbm90IE5vbmUgYW5k
IHNlbGYuX3Nob3dfcHJvZ3Jlc3NfaW5mbzoKICAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9w
cm9ncmVzc19pbmZvcm1hdGlvbl9maWxsaW5nX3NwYWNlKCkKICAgICAgICAgICAgIHNlbGYuY3Vy
cmVudGZzcGF0aCA9IGZzcGF0aAogICAgICAgICAgICAgZnNwYXRoID0gc2VsZi5zdGFydGRpci5i
ZXN0cmVscGF0aChmc3BhdGgpCiAgICAgICAgICAgICBzZWxmLl90dy5saW5lKCkKICAgICAgICAg
ICAgIHNlbGYuX3R3LndyaXRlKGZzcGF0aCArICIgIikKLSAgICAgICAgc2VsZi5fdHcud3JpdGUo
cmVzKQorICAgICAgICBzZWxmLl90dy53cml0ZShyZXMsICoqbWFya3VwKQogCiAgICAgZGVmIHdy
aXRlX2Vuc3VyZV9wcmVmaXgoc2VsZiwgcHJlZml4LCBleHRyYT0iIiwgKiprd2FyZ3MpOgogICAg
ICAgICBpZiBzZWxmLmN1cnJlbnRmc3BhdGggIT0gcHJlZml4OgpAQCAtMzI4LDEyICszNjUsMTkg
QEAgY2xhc3MgVGVybWluYWxSZXBvcnRlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi53cml0
ZV9saW5lKCJJTlRFUk5BTEVSUk9SPiAiICsgbGluZSkKICAgICAgICAgcmV0dXJuIDEKIAotICAg
IGRlZiBweXRlc3RfbG9nd2FybmluZyhzZWxmLCBjb2RlLCBmc2xvY2F0aW9uLCBtZXNzYWdlLCBu
b2RlaWQpOgorICAgIGRlZiBweXRlc3Rfd2FybmluZ19jYXB0dXJlZChzZWxmLCB3YXJuaW5nX21l
c3NhZ2UsIGl0ZW0pOgorICAgICAgICAjIGZyb20gX3B5dGVzdC5ub2RlcyBpbXBvcnQgZ2V0X2Zz
bG9jYXRpb25fZnJvbV9pdGVtCisgICAgICAgIGZyb20gX3B5dGVzdC53YXJuaW5ncyBpbXBvcnQg
d2FybmluZ19yZWNvcmRfdG9fc3RyCisKICAgICAgICAgd2FybmluZ3MgPSBzZWxmLnN0YXRzLnNl
dGRlZmF1bHQoIndhcm5pbmdzIiwgW10pCi0gICAgICAgIHdhcm5pbmcgPSBXYXJuaW5nUmVwb3J0
KAotICAgICAgICAgICAgY29kZT1jb2RlLCBmc2xvY2F0aW9uPWZzbG9jYXRpb24sIG1lc3NhZ2U9
bWVzc2FnZSwgbm9kZWlkPW5vZGVpZAorICAgICAgICBmc2xvY2F0aW9uID0gd2FybmluZ19tZXNz
YWdlLmZpbGVuYW1lLCB3YXJuaW5nX21lc3NhZ2UubGluZW5vCisgICAgICAgIG1lc3NhZ2UgPSB3
YXJuaW5nX3JlY29yZF90b19zdHIod2FybmluZ19tZXNzYWdlKQorCisgICAgICAgIG5vZGVpZCA9
IGl0ZW0ubm9kZWlkIGlmIGl0ZW0gaXMgbm90IE5vbmUgZWxzZSAiIgorICAgICAgICB3YXJuaW5n
X3JlcG9ydCA9IFdhcm5pbmdSZXBvcnQoCisgICAgICAgICAgICBmc2xvY2F0aW9uPWZzbG9jYXRp
b24sIG1lc3NhZ2U9bWVzc2FnZSwgbm9kZWlkPW5vZGVpZAogICAgICAgICApCi0gICAgICAgIHdh
cm5pbmdzLmFwcGVuZCh3YXJuaW5nKQorICAgICAgICB3YXJuaW5ncy5hcHBlbmQod2FybmluZ19y
ZXBvcnQpCiAKICAgICBkZWYgcHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkKHNlbGYsIHBsdWdpbik6
CiAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoKQEAgLTM1NywzNSAr
NDAxLDM4IEBAIGNsYXNzIFRlcm1pbmFsUmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNl
bGYud3JpdGVfZnNwYXRoX3Jlc3VsdChmc2lkLCAiIikKIAogICAgIGRlZiBweXRlc3RfcnVudGVz
dF9sb2dyZXBvcnQoc2VsZiwgcmVwb3J0KToKKyAgICAgICAgc2VsZi5fdGVzdHNfcmFuID0gVHJ1
ZQogICAgICAgICByZXAgPSByZXBvcnQKLSAgICAgICAgcmVzID0gc2VsZi5jb25maWcuaG9vay5w
eXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0PXJlcCkKLSAgICAgICAgY2F0LCBsZXR0ZXIs
IHdvcmQgPSByZXMKKyAgICAgICAgcmVzID0gc2VsZi5jb25maWcuaG9vay5weXRlc3RfcmVwb3J0
X3Rlc3RzdGF0dXMocmVwb3J0PXJlcCwgY29uZmlnPXNlbGYuY29uZmlnKQorICAgICAgICBjYXRl
Z29yeSwgbGV0dGVyLCB3b3JkID0gcmVzCiAgICAgICAgIGlmIGlzaW5zdGFuY2Uod29yZCwgdHVw
bGUpOgogICAgICAgICAgICAgd29yZCwgbWFya3VwID0gd29yZAogICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgbWFya3VwID0gTm9uZQotICAgICAgICBzZWxmLnN0YXRzLnNldGRlZmF1bHQoY2F0
LCBbXSkuYXBwZW5kKHJlcCkKLSAgICAgICAgc2VsZi5fdGVzdHNfcmFuID0gVHJ1ZQorICAgICAg
ICBzZWxmLnN0YXRzLnNldGRlZmF1bHQoY2F0ZWdvcnksIFtdKS5hcHBlbmQocmVwKQogICAgICAg
ICBpZiBub3QgbGV0dGVyIGFuZCBub3Qgd29yZDoKICAgICAgICAgICAgICMgcHJvYmFibHkgcGFz
c2VkIHNldHVwL3RlYXJkb3duCiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgcnVubmluZ194
ZGlzdCA9IGhhc2F0dHIocmVwLCAibm9kZSIpCisgICAgICAgIGlmIG1hcmt1cCBpcyBOb25lOgor
ICAgICAgICAgICAgd2FzX3hmYWlsID0gaGFzYXR0cihyZXBvcnQsICJ3YXN4ZmFpbCIpCisgICAg
ICAgICAgICBpZiByZXAucGFzc2VkIGFuZCBub3Qgd2FzX3hmYWlsOgorICAgICAgICAgICAgICAg
IG1hcmt1cCA9IHsiZ3JlZW4iOiBUcnVlfQorICAgICAgICAgICAgZWxpZiByZXAucGFzc2VkIGFu
ZCB3YXNfeGZhaWw6CisgICAgICAgICAgICAgICAgbWFya3VwID0geyJ5ZWxsb3ciOiBUcnVlfQor
ICAgICAgICAgICAgZWxpZiByZXAuZmFpbGVkOgorICAgICAgICAgICAgICAgIG1hcmt1cCA9IHsi
cmVkIjogVHJ1ZX0KKyAgICAgICAgICAgIGVsaWYgcmVwLnNraXBwZWQ6CisgICAgICAgICAgICAg
ICAgbWFya3VwID0geyJ5ZWxsb3ciOiBUcnVlfQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBtYXJrdXAgPSB7fQogICAgICAgICBpZiBzZWxmLnZlcmJvc2l0eSA8PSAwOgogICAg
ICAgICAgICAgaWYgbm90IHJ1bm5pbmdfeGRpc3QgYW5kIHNlbGYuc2hvd2ZzcGF0aDoKLSAgICAg
ICAgICAgICAgICBzZWxmLndyaXRlX2ZzcGF0aF9yZXN1bHQocmVwLm5vZGVpZCwgbGV0dGVyKQor
ICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfZnNwYXRoX3Jlc3VsdChyZXAubm9kZWlkLCBsZXR0
ZXIsICoqbWFya3VwKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl90
dy53cml0ZShsZXR0ZXIpCisgICAgICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUobGV0dGVyLCAq
Km1hcmt1cCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX3Byb2dyZXNzX25vZGVp
ZHNfcmVwb3J0ZWQuYWRkKHJlcC5ub2RlaWQpCi0gICAgICAgICAgICBpZiBtYXJrdXAgaXMgTm9u
ZToKLSAgICAgICAgICAgICAgICBpZiByZXAucGFzc2VkOgotICAgICAgICAgICAgICAgICAgICBt
YXJrdXAgPSB7ImdyZWVuIjogVHJ1ZX0KLSAgICAgICAgICAgICAgICBlbGlmIHJlcC5mYWlsZWQ6
Ci0gICAgICAgICAgICAgICAgICAgIG1hcmt1cCA9IHsicmVkIjogVHJ1ZX0KLSAgICAgICAgICAg
ICAgICBlbGlmIHJlcC5za2lwcGVkOgotICAgICAgICAgICAgICAgICAgICBtYXJrdXAgPSB7Inll
bGxvdyI6IFRydWV9Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
bWFya3VwID0ge30KICAgICAgICAgICAgIGxpbmUgPSBzZWxmLl9sb2NhdGlvbmxpbmUocmVwLm5v
ZGVpZCwgKnJlcC5sb2NhdGlvbikKICAgICAgICAgICAgIGlmIG5vdCBydW5uaW5nX3hkaXN0Ogog
ICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfZW5zdXJlX3ByZWZpeChsaW5lLCB3b3JkLCAqKm1h
cmt1cCkKQEAgLTQwNiwzOCArNDUzLDYxIEBAIGNsYXNzIFRlcm1pbmFsUmVwb3J0ZXIob2JqZWN0
KToKIAogICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dmaW5pc2goc2VsZiwgbm9kZWlkKToKICAg
ICAgICAgaWYgc2VsZi52ZXJib3NpdHkgPD0gMCBhbmQgc2VsZi5fc2hvd19wcm9ncmVzc19pbmZv
OgorICAgICAgICAgICAgaWYgc2VsZi5fc2hvd19wcm9ncmVzc19pbmZvID09ICJjb3VudCI6Cisg
ICAgICAgICAgICAgICAgbnVtX3Rlc3RzID0gc2VsZi5fc2Vzc2lvbi50ZXN0c2NvbGxlY3RlZAor
ICAgICAgICAgICAgICAgIHByb2dyZXNzX2xlbmd0aCA9IGxlbigiIFt7fS97fV0iLmZvcm1hdChz
dHIobnVtX3Rlc3RzKSwgc3RyKG51bV90ZXN0cykpKQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBwcm9ncmVzc19sZW5ndGggPSBsZW4oIiBbMTAwJV0iKQorCiAgICAgICAgICAg
ICBzZWxmLl9wcm9ncmVzc19ub2RlaWRzX3JlcG9ydGVkLmFkZChub2RlaWQpCi0gICAgICAgICAg
ICBsYXN0X2l0ZW0gPSBsZW4oCi0gICAgICAgICAgICAgICAgc2VsZi5fcHJvZ3Jlc3Nfbm9kZWlk
c19yZXBvcnRlZAotICAgICAgICAgICAgKSA9PSBzZWxmLl9zZXNzaW9uLnRlc3RzY29sbGVjdGVk
Ci0gICAgICAgICAgICBpZiBsYXN0X2l0ZW06CisgICAgICAgICAgICBpc19sYXN0X2l0ZW0gPSAo
CisgICAgICAgICAgICAgICAgbGVuKHNlbGYuX3Byb2dyZXNzX25vZGVpZHNfcmVwb3J0ZWQpID09
IHNlbGYuX3Nlc3Npb24udGVzdHNjb2xsZWN0ZWQKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IGlmIGlzX2xhc3RfaXRlbToKICAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9wcm9ncmVzc19p
bmZvcm1hdGlvbl9maWxsaW5nX3NwYWNlKCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgcGFzdF9lZGdlID0gc2VsZi5fdHcuY2hhcnNfb25fY3VycmVudF9saW5lICsgc2VsZi5f
UFJPR1JFU1NfTEVOR1RIICsgMSA+PSBzZWxmLl9zY3JlZW5fd2lkdGgKKyAgICAgICAgICAgICAg
ICB3ID0gc2VsZi5fd2lkdGhfb2ZfY3VycmVudF9saW5lCisgICAgICAgICAgICAgICAgcGFzdF9l
ZGdlID0gdyArIHByb2dyZXNzX2xlbmd0aCArIDEgPj0gc2VsZi5fc2NyZWVuX3dpZHRoCiAgICAg
ICAgICAgICAgICAgaWYgcGFzdF9lZGdlOgogICAgICAgICAgICAgICAgICAgICBtc2cgPSBzZWxm
Ll9nZXRfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fbWVzc2FnZSgpCiAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3R3LndyaXRlKG1zZyArICJcbiIsIGN5YW49VHJ1ZSkKIAotICAgIF9QUk9HUkVTU19M
RU5HVEggPSBsZW4oIiBbMTAwJV0iKQotCiAgICAgZGVmIF9nZXRfcHJvZ3Jlc3NfaW5mb3JtYXRp
b25fbWVzc2FnZShzZWxmKToKLSAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0b3B0aW9uKCJjYXB0
dXJlIikgPT0gIm5vIjoKLSAgICAgICAgICAgIHJldHVybiAiIgogICAgICAgICBjb2xsZWN0ZWQg
PSBzZWxmLl9zZXNzaW9uLnRlc3RzY29sbGVjdGVkCi0gICAgICAgIGlmIGNvbGxlY3RlZDoKLSAg
ICAgICAgICAgIHByb2dyZXNzID0gbGVuKHNlbGYuX3Byb2dyZXNzX25vZGVpZHNfcmVwb3J0ZWQp
ICogMTAwIC8vIGNvbGxlY3RlZAotICAgICAgICAgICAgcmV0dXJuICIgW3s6M2R9JV0iLmZvcm1h
dChwcm9ncmVzcykKLSAgICAgICAgcmV0dXJuICIgWzEwMCVdIgorICAgICAgICBpZiBzZWxmLl9z
aG93X3Byb2dyZXNzX2luZm8gPT0gImNvdW50IjoKKyAgICAgICAgICAgIGlmIGNvbGxlY3RlZDoK
KyAgICAgICAgICAgICAgICBwcm9ncmVzcyA9IHNlbGYuX3Byb2dyZXNzX25vZGVpZHNfcmVwb3J0
ZWQKKyAgICAgICAgICAgICAgICBjb3VudGVyX2Zvcm1hdCA9ICJ7ezp7fWR9fSIuZm9ybWF0KGxl
bihzdHIoY29sbGVjdGVkKSkpCisgICAgICAgICAgICAgICAgZm9ybWF0X3N0cmluZyA9ICIgW3t9
L3t7fX1dIi5mb3JtYXQoY291bnRlcl9mb3JtYXQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZv
cm1hdF9zdHJpbmcuZm9ybWF0KGxlbihwcm9ncmVzcyksIGNvbGxlY3RlZCkKKyAgICAgICAgICAg
IHJldHVybiAiIFsge30gLyB7fSBdIi5mb3JtYXQoY29sbGVjdGVkLCBjb2xsZWN0ZWQpCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBpZiBjb2xsZWN0ZWQ6CisgICAgICAgICAgICAgICAgcHJv
Z3Jlc3MgPSBsZW4oc2VsZi5fcHJvZ3Jlc3Nfbm9kZWlkc19yZXBvcnRlZCkgKiAxMDAgLy8gY29s
bGVjdGVkCisgICAgICAgICAgICAgICAgcmV0dXJuICIgW3s6M2R9JV0iLmZvcm1hdChwcm9ncmVz
cykKKyAgICAgICAgICAgIHJldHVybiAiIFsxMDAlXSIKIAogICAgIGRlZiBfd3JpdGVfcHJvZ3Jl
c3NfaW5mb3JtYXRpb25fZmlsbGluZ19zcGFjZShzZWxmKToKICAgICAgICAgbXNnID0gc2VsZi5f
Z2V0X3Byb2dyZXNzX2luZm9ybWF0aW9uX21lc3NhZ2UoKQotICAgICAgICBmaWxsID0gIiAiICog
KAotICAgICAgICAgICAgc2VsZi5fdHcuZnVsbHdpZHRoIC0gc2VsZi5fdHcuY2hhcnNfb25fY3Vy
cmVudF9saW5lIC0gbGVuKG1zZykgLSAxCi0gICAgICAgICkKLSAgICAgICAgc2VsZi53cml0ZShm
aWxsICsgbXNnLCBjeWFuPVRydWUpCisgICAgICAgIHcgPSBzZWxmLl93aWR0aF9vZl9jdXJyZW50
X2xpbmUKKyAgICAgICAgZmlsbCA9IHNlbGYuX3R3LmZ1bGx3aWR0aCAtIHcgLSAxCisgICAgICAg
IHNlbGYud3JpdGUobXNnLnJqdXN0KGZpbGwpLCBjeWFuPVRydWUpCisKKyAgICBAcHJvcGVydHkK
KyAgICBkZWYgX3dpZHRoX29mX2N1cnJlbnRfbGluZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJu
IHRoZSB3aWR0aCBvZiBjdXJyZW50IGxpbmUsIHVzaW5nIHRoZSBzdXBlcmlvciBpbXBsZW1lbnRh
dGlvbiBvZiBweS0xLjYgd2hlbiBhdmFpbGFibGUiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX3R3LndpZHRoX29mX2N1cnJlbnRfbGluZQorICAgICAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAjIHB5IDwgMS42LjAKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmLl90dy5jaGFyc19vbl9jdXJyZW50X2xpbmUKIAogICAgIGRlZiBweXRlc3RfY29s
bGVjdGlvbihzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuaXNhdHR5IGFuZCBzZWxmLmNvbmZp
Zy5vcHRpb24udmVyYm9zZSA+PSAxOgorICAgICAgICBpZiBzZWxmLmlzYXR0eToKKyAgICAgICAg
ICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlID49IDA6CisgICAgICAgICAgICAgICAg
c2VsZi53cml0ZSgiY29sbGVjdGluZyAuLi4gIiwgYm9sZD1UcnVlKQorICAgICAgICAgICAgICAg
IHNlbGYuX2NvbGxlY3RfcmVwb3J0X2xhc3Rfd3JpdGUgPSB0aW1lLnRpbWUoKQorICAgICAgICBl
bGlmIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlID49IDE6CiAgICAgICAgICAgICBzZWxmLndy
aXRlKCJjb2xsZWN0aW5nIC4uLiAiLCBib2xkPVRydWUpCiAKICAgICBkZWYgcHl0ZXN0X2NvbGxl
Y3RyZXBvcnQoc2VsZiwgcmVwb3J0KToKQEAgLTQ0OCwyMiArNTE4LDMyIEBAIGNsYXNzIFRlcm1p
bmFsUmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAgaXRlbXMgPSBbeCBmb3IgeCBpbiByZXBvcnQu
cmVzdWx0IGlmIGlzaW5zdGFuY2UoeCwgcHl0ZXN0Lkl0ZW0pXQogICAgICAgICBzZWxmLl9udW1j
b2xsZWN0ZWQgKz0gbGVuKGl0ZW1zKQogICAgICAgICBpZiBzZWxmLmlzYXR0eToKLSAgICAgICAg
ICAgICMgc2VsZi53cml0ZV9mc3BhdGhfcmVzdWx0KHJlcG9ydC5ub2RlaWQsICdFJykKICAgICAg
ICAgICAgIHNlbGYucmVwb3J0X2NvbGxlY3QoKQogCiAgICAgZGVmIHJlcG9ydF9jb2xsZWN0KHNl
bGYsIGZpbmFsPUZhbHNlKToKICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2Ug
PCAwOgogICAgICAgICAgICAgcmV0dXJuCiAKKyAgICAgICAgaWYgbm90IGZpbmFsOgorICAgICAg
ICAgICAgIyBPbmx5IHdyaXRlICJjb2xsZWN0aW5nIiByZXBvcnQgZXZlcnkgMC41cy4KKyAgICAg
ICAgICAgIHQgPSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgaWYgKAorICAgICAgICAgICAgICAg
IHNlbGYuX2NvbGxlY3RfcmVwb3J0X2xhc3Rfd3JpdGUgaXMgbm90IE5vbmUKKyAgICAgICAgICAg
ICAgICBhbmQgc2VsZi5fY29sbGVjdF9yZXBvcnRfbGFzdF93cml0ZSA+IHQgLSBSRVBPUlRfQ09M
TEVDVElOR19SRVNPTFVUSU9OCisgICAgICAgICAgICApOgorICAgICAgICAgICAgICAgIHJldHVy
bgorICAgICAgICAgICAgc2VsZi5fY29sbGVjdF9yZXBvcnRfbGFzdF93cml0ZSA9IHQKKwogICAg
ICAgICBlcnJvcnMgPSBsZW4oc2VsZi5zdGF0cy5nZXQoImVycm9yIiwgW10pKQogICAgICAgICBz
a2lwcGVkID0gbGVuKHNlbGYuc3RhdHMuZ2V0KCJza2lwcGVkIiwgW10pKQogICAgICAgICBkZXNl
bGVjdGVkID0gbGVuKHNlbGYuc3RhdHMuZ2V0KCJkZXNlbGVjdGVkIiwgW10pKQorICAgICAgICBz
ZWxlY3RlZCA9IHNlbGYuX251bWNvbGxlY3RlZCAtIGVycm9ycyAtIHNraXBwZWQgLSBkZXNlbGVj
dGVkCiAgICAgICAgIGlmIGZpbmFsOgogICAgICAgICAgICAgbGluZSA9ICJjb2xsZWN0ZWQgIgog
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgbGluZSA9ICJjb2xsZWN0aW5nICIKLSAgICAgICAg
bGluZSArPSBzdHIoc2VsZi5fbnVtY29sbGVjdGVkKSArICIgaXRlbSIgKyAoCi0gICAgICAgICAg
ICAiIiBpZiBzZWxmLl9udW1jb2xsZWN0ZWQgPT0gMSBlbHNlICJzIgorICAgICAgICBsaW5lICs9
ICgKKyAgICAgICAgICAgIHN0cihzZWxmLl9udW1jb2xsZWN0ZWQpICsgIiBpdGVtIiArICgiIiBp
ZiBzZWxmLl9udW1jb2xsZWN0ZWQgPT0gMSBlbHNlICJzIikKICAgICAgICAgKQogICAgICAgICBp
ZiBlcnJvcnM6CiAgICAgICAgICAgICBsaW5lICs9ICIgLyAlZCBlcnJvcnMiICUgZXJyb3JzCkBA
IC00NzEsNiArNTUxLDggQEAgY2xhc3MgVGVybWluYWxSZXBvcnRlcihvYmplY3QpOgogICAgICAg
ICAgICAgbGluZSArPSAiIC8gJWQgZGVzZWxlY3RlZCIgJSBkZXNlbGVjdGVkCiAgICAgICAgIGlm
IHNraXBwZWQ6CiAgICAgICAgICAgICBsaW5lICs9ICIgLyAlZCBza2lwcGVkIiAlIHNraXBwZWQK
KyAgICAgICAgaWYgc2VsZi5fbnVtY29sbGVjdGVkID4gc2VsZWN0ZWQgPiAwOgorICAgICAgICAg
ICAgbGluZSArPSAiIC8gJWQgc2VsZWN0ZWQiICUgc2VsZWN0ZWQKICAgICAgICAgaWYgc2VsZi5p
c2F0dHk6CiAgICAgICAgICAgICBzZWxmLnJld3JpdGUobGluZSwgYm9sZD1UcnVlLCBlcmFzZT1U
cnVlKQogICAgICAgICAgICAgaWYgZmluYWw6CkBAIC00NzgsMTAgKzU2MCw2IEBAIGNsYXNzIFRl
cm1pbmFsUmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYu
d3JpdGVfbGluZShsaW5lKQogCi0gICAgQHB5dGVzdC5ob29raW1wbCh0cnlsYXN0PVRydWUpCi0g
ICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKHNlbGYpOgotICAgICAgICBzZWxm
LnJlcG9ydF9jb2xsZWN0KFRydWUpCi0KICAgICBAcHl0ZXN0Lmhvb2tpbXBsKHRyeWxhc3Q9VHJ1
ZSkKICAgICBkZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZWxmLCBzZXNzaW9uKToKICAgICAgICAg
c2VsZi5fc2Vzc2lvbiA9IHNlc3Npb24KQEAgLTQ5NSw3ICs1NzMsOSBAQCBjbGFzcyBUZXJtaW5h
bFJlcG9ydGVyKG9iamVjdCk6CiAgICAgICAgICAgICB2ZXJpbmZvID0gIi4iLmpvaW4obWFwKHN0
ciwgc3lzLnB5cHlfdmVyc2lvbl9pbmZvWzozXSkpCiAgICAgICAgICAgICBtc2cgKz0gIltweXB5
LSVzLSVzXSIgJSAodmVyaW5mbywgc3lzLnB5cHlfdmVyc2lvbl9pbmZvWzNdKQogICAgICAgICBt
c2cgKz0gIiwgcHl0ZXN0LSVzLCBweS0lcywgcGx1Z2d5LSVzIiAlICgKLSAgICAgICAgICAgIHB5
dGVzdC5fX3ZlcnNpb25fXywgcHkuX192ZXJzaW9uX18sIHBsdWdneS5fX3ZlcnNpb25fXworICAg
ICAgICAgICAgcHl0ZXN0Ll9fdmVyc2lvbl9fLAorICAgICAgICAgICAgcHkuX192ZXJzaW9uX18s
CisgICAgICAgICAgICBwbHVnZ3kuX192ZXJzaW9uX18sCiAgICAgICAgICkKICAgICAgICAgaWYg
KAogICAgICAgICAgICAgc2VsZi52ZXJib3NpdHkgPiAwCkBAIC01MTUsMzEgKzU5NSwzOSBAQCBj
bGFzcyBUZXJtaW5hbFJlcG9ydGVyKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLndyaXRlX2xp
bmUobGluZSkKIAogICAgIGRlZiBweXRlc3RfcmVwb3J0X2hlYWRlcihzZWxmLCBjb25maWcpOgot
ICAgICAgICBpbmlmaWxlID0gIiIKKyAgICAgICAgbGluZSA9ICJyb290ZGlyOiAlcyIgJSBjb25m
aWcucm9vdGRpcgorCiAgICAgICAgIGlmIGNvbmZpZy5pbmlmaWxlOgotICAgICAgICAgICAgaW5p
ZmlsZSA9ICIgIiArIGNvbmZpZy5yb290ZGlyLmJlc3RyZWxwYXRoKGNvbmZpZy5pbmlmaWxlKQot
ICAgICAgICBsaW5lcyA9IFsicm9vdGRpcjogJXMsIGluaWZpbGU6JXMiICUgKGNvbmZpZy5yb290
ZGlyLCBpbmlmaWxlKV0KKyAgICAgICAgICAgIGxpbmUgKz0gIiwgaW5pZmlsZTogIiArIGNvbmZp
Zy5yb290ZGlyLmJlc3RyZWxwYXRoKGNvbmZpZy5pbmlmaWxlKQorCisgICAgICAgIHRlc3RwYXRo
cyA9IGNvbmZpZy5nZXRpbmkoInRlc3RwYXRocyIpCisgICAgICAgIGlmIHRlc3RwYXRocyBhbmQg
Y29uZmlnLmFyZ3MgPT0gdGVzdHBhdGhzOgorICAgICAgICAgICAgcmVsX3BhdGhzID0gW2NvbmZp
Zy5yb290ZGlyLmJlc3RyZWxwYXRoKHgpIGZvciB4IGluIHRlc3RwYXRoc10KKyAgICAgICAgICAg
IGxpbmUgKz0gIiwgdGVzdHBhdGhzOiB7fSIuZm9ybWF0KCIsICIuam9pbihyZWxfcGF0aHMpKQor
ICAgICAgICByZXN1bHQgPSBbbGluZV0KIAogICAgICAgICBwbHVnaW5pbmZvID0gY29uZmlnLnBs
dWdpbm1hbmFnZXIubGlzdF9wbHVnaW5fZGlzdGluZm8oKQogICAgICAgICBpZiBwbHVnaW5pbmZv
OgotCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoInBsdWdpbnM6ICVzIiAlICIsICIuam9pbihf
cGx1Z2luX25hbWV2ZXJzaW9ucyhwbHVnaW5pbmZvKSkpCi0gICAgICAgIHJldHVybiBsaW5lcwor
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgicGx1Z2luczogJXMiICUgIiwgIi5qb2luKF9wbHVn
aW5fbmFtZXZlcnNpb25zKHBsdWdpbmluZm8pKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAg
ICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX2ZpbmlzaChzZWxmLCBzZXNzaW9uKToKLSAgICAgICAg
aWYgc2VsZi5jb25maWcub3B0aW9uLmNvbGxlY3Rvbmx5OgorICAgICAgICBzZWxmLnJlcG9ydF9j
b2xsZWN0KFRydWUpCisKKyAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0b3B0aW9uKCJjb2xsZWN0
b25seSIpOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRjb2xsZWN0ZWRpdGVtcyhzZXNzaW9uLml0
ZW1zKQotICAgICAgICAgICAgaWYgc2VsZi5zdGF0cy5nZXQoImZhaWxlZCIpOgotICAgICAgICAg
ICAgICAgIHNlbGYuX3R3LnNlcCgiISIsICJjb2xsZWN0aW9uIGZhaWx1cmVzIikKLSAgICAgICAg
ICAgICAgICBmb3IgcmVwIGluIHNlbGYuc3RhdHMuZ2V0KCJmYWlsZWQiKToKLSAgICAgICAgICAg
ICAgICAgICAgcmVwLnRvdGVybWluYWwoc2VsZi5fdHcpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IDEKLSAgICAgICAgICAgIHJldHVybiAwCisKICAgICAgICAgbGluZXMgPSBzZWxmLmNvbmZpZy5o
b29rLnB5dGVzdF9yZXBvcnRfY29sbGVjdGlvbmZpbmlzaCgKICAgICAgICAgICAgIGNvbmZpZz1z
ZWxmLmNvbmZpZywgc3RhcnRkaXI9c2VsZi5zdGFydGRpciwgaXRlbXM9c2Vzc2lvbi5pdGVtcwog
ICAgICAgICApCiAgICAgICAgIHNlbGYuX3dyaXRlX3JlcG9ydF9saW5lc19mcm9tX2hvb2tzKGxp
bmVzKQogCisgICAgICAgIGlmIHNlbGYuY29uZmlnLmdldG9wdGlvbigiY29sbGVjdG9ubHkiKToK
KyAgICAgICAgICAgIGlmIHNlbGYuc3RhdHMuZ2V0KCJmYWlsZWQiKToKKyAgICAgICAgICAgICAg
ICBzZWxmLl90dy5zZXAoIiEiLCAiY29sbGVjdGlvbiBmYWlsdXJlcyIpCisgICAgICAgICAgICAg
ICAgZm9yIHJlcCBpbiBzZWxmLnN0YXRzLmdldCgiZmFpbGVkIik6CisgICAgICAgICAgICAgICAg
ICAgIHJlcC50b3Rlcm1pbmFsKHNlbGYuX3R3KQorCiAgICAgZGVmIF9wcmludGNvbGxlY3RlZGl0
ZW1zKHNlbGYsIGl0ZW1zKToKICAgICAgICAgIyB0byBwcmludCBvdXQgaXRlbXMgYW5kIHRoZWly
IHBhcmVudCBjb2xsZWN0b3JzCiAgICAgICAgICMgd2UgdGFrZSBjYXJlIHRvIGxlYXZlIG91dCBJ
bnN0YW5jZXMgYWthICgpCkBAIC01NTQsMjQgKzY0MiwyNiBAQCBjbGFzcyBUZXJtaW5hbFJlcG9y
dGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoIiVzOiAlZCIg
JSAobmFtZSwgY291bnQpKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBmb3Ig
aXRlbSBpbiBpdGVtczoKLSAgICAgICAgICAgICAgICAgICAgbm9kZWlkID0gaXRlbS5ub2RlaWQK
LSAgICAgICAgICAgICAgICAgICAgbm9kZWlkID0gbm9kZWlkLnJlcGxhY2UoIjo6KCk6OiIsICI6
OiIpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUobm9kZWlkKQorICAgICAgICAg
ICAgICAgICAgICBzZWxmLl90dy5saW5lKGl0ZW0ubm9kZWlkKQogICAgICAgICAgICAgcmV0dXJu
CiAgICAgICAgIHN0YWNrID0gW10KICAgICAgICAgaW5kZW50ID0gIiIKICAgICAgICAgZm9yIGl0
ZW0gaW4gaXRlbXM6CiAgICAgICAgICAgICBuZWVkZWRfY29sbGVjdG9ycyA9IGl0ZW0ubGlzdGNo
YWluKClbMTpdICAjIHN0cmlwIHJvb3Qgbm9kZQogICAgICAgICAgICAgd2hpbGUgc3RhY2s6Ci0g
ICAgICAgICAgICAgICAgaWYgc3RhY2sgPT0gbmVlZGVkX2NvbGxlY3RvcnNbOmxlbihzdGFjayld
OgorICAgICAgICAgICAgICAgIGlmIHN0YWNrID09IG5lZWRlZF9jb2xsZWN0b3JzWzogbGVuKHN0
YWNrKV06CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgc3RhY2su
cG9wKCkKLSAgICAgICAgICAgIGZvciBjb2wgaW4gbmVlZGVkX2NvbGxlY3RvcnNbbGVuKHN0YWNr
KTpdOgorICAgICAgICAgICAgZm9yIGNvbCBpbiBuZWVkZWRfY29sbGVjdG9yc1tsZW4oc3RhY2sp
IDpdOgogICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVuZChjb2wpCi0gICAgICAgICAgICAgICAg
IyBpZiBjb2wubmFtZSA9PSAiKCkiOgotICAgICAgICAgICAgICAgICMgICAgY29udGludWUKKyAg
ICAgICAgICAgICAgICBpZiBjb2wubmFtZSA9PSAiKCkiOiAgIyBTa2lwIEluc3RhbmNlcy4KKyAg
ICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICBpbmRlbnQgPSAobGVu
KHN0YWNrKSAtIDEpICogIiAgIgogICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoIiVzJXMi
ICUgKGluZGVudCwgY29sKSkKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24u
dmVyYm9zZSA+PSAxOgorICAgICAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKGNvbCwgIl9vYmoi
KSBhbmQgY29sLl9vYmouX19kb2NfXzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBsaW5l
IGluIGNvbC5fb2JqLl9fZG9jX18uc3RyaXAoKS5zcGxpdGxpbmVzKCk6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZSgiJXMlcyIgJSAoaW5kZW50ICsgIiAgIiwgbGlu
ZS5zdHJpcCgpKSkKIAogICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKICAg
ICBkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2VsZiwgZXhpdHN0YXR1cyk6CkBAIC01ODcsNyAr
Njc3LDcgQEAgY2xhc3MgVGVybWluYWxSZXBvcnRlcihvYmplY3QpOgogICAgICAgICApCiAgICAg
ICAgIGlmIGV4aXRzdGF0dXMgaW4gc3VtbWFyeV9leGl0X2NvZGVzOgogICAgICAgICAgICAgc2Vs
Zi5jb25maWcuaG9vay5weXRlc3RfdGVybWluYWxfc3VtbWFyeSgKLSAgICAgICAgICAgICAgICB0
ZXJtaW5hbHJlcG9ydGVyPXNlbGYsIGV4aXRzdGF0dXM9ZXhpdHN0YXR1cworICAgICAgICAgICAg
ICAgIHRlcm1pbmFscmVwb3J0ZXI9c2VsZiwgZXhpdHN0YXR1cz1leGl0c3RhdHVzLCBjb25maWc9
c2VsZi5jb25maWcKICAgICAgICAgICAgICkKICAgICAgICAgaWYgZXhpdHN0YXR1cyA9PSBFWElU
X0lOVEVSUlVQVEVEOgogICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2tleWJvYXJkaW50ZXJydXB0
KCkKQEAgLTU5OCw5ICs2ODgsMTIgQEAgY2xhc3MgVGVybWluYWxSZXBvcnRlcihvYmplY3QpOgog
ICAgIGRlZiBweXRlc3RfdGVybWluYWxfc3VtbWFyeShzZWxmKToKICAgICAgICAgc2VsZi5zdW1t
YXJ5X2Vycm9ycygpCiAgICAgICAgIHNlbGYuc3VtbWFyeV9mYWlsdXJlcygpCi0gICAgICAgIHlp
ZWxkCiAgICAgICAgIHNlbGYuc3VtbWFyeV93YXJuaW5ncygpCiAgICAgICAgIHNlbGYuc3VtbWFy
eV9wYXNzZXMoKQorICAgICAgICB5aWVsZAorICAgICAgICBzZWxmLnNob3J0X3Rlc3Rfc3VtbWFy
eSgpCisgICAgICAgICMgRGlzcGxheSBhbnkgZXh0cmEgd2FybmluZ3MgZnJvbSB0ZWFyZG93biBo
ZXJlIChpZiBhbnkpLgorICAgICAgICBzZWxmLnN1bW1hcnlfd2FybmluZ3MoKQogCiAgICAgZGVm
IHB5dGVzdF9rZXlib2FyZF9pbnRlcnJ1cHQoc2VsZiwgZXhjaW5mbyk6CiAgICAgICAgIHNlbGYu
X2tleWJvYXJkaW50ZXJydXB0X21lbW8gPSBleGNpbmZvLmdldHJlcHIoZnVuY2FyZ3M9VHJ1ZSkK
QEAgLTYyNCwxMSArNzE3LDEwIEBAIGNsYXNzIFRlcm1pbmFsUmVwb3J0ZXIob2JqZWN0KToKICAg
ICAgICAgICAgICAgICApCiAKICAgICBkZWYgX2xvY2F0aW9ubGluZShzZWxmLCBub2RlaWQsIGZz
cGF0aCwgbGluZW5vLCBkb21haW4pOgotCiAgICAgICAgIGRlZiBta3JlbChub2RlaWQpOgogICAg
ICAgICAgICAgbGluZSA9IHNlbGYuY29uZmlnLmN3ZF9yZWxhdGl2ZV9ub2RlaWQobm9kZWlkKQog
ICAgICAgICAgICAgaWYgZG9tYWluIGFuZCBsaW5lLmVuZHN3aXRoKGRvbWFpbik6Ci0gICAgICAg
ICAgICAgICAgbGluZSA9IGxpbmVbOi1sZW4oZG9tYWluKV0KKyAgICAgICAgICAgICAgICBsaW5l
ID0gbGluZVs6IC1sZW4oZG9tYWluKV0KICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBkb21haW4u
c3BsaXQoIlsiKQogICAgICAgICAgICAgICAgIHZhbHVlc1swXSA9IHZhbHVlc1swXS5yZXBsYWNl
KCIuIiwgIjo6IikgICMgZG9uJ3QgcmVwbGFjZSAnLicgaW4gcGFyYW1zCiAgICAgICAgICAgICAg
ICAgbGluZSArPSAiWyIuam9pbih2YWx1ZXMpCkBAIC02MzcsMTkgKzcyOSwyMCBAQCBjbGFzcyBU
ZXJtaW5hbFJlcG9ydGVyKG9iamVjdCk6CiAgICAgICAgICMgY29sbGVjdF9mc3BhdGggY29tZXMg
ZnJvbSB0ZXN0aWQgd2hpY2ggaGFzIGEgIi8iLW5vcm1hbGl6ZWQgcGF0aAogCiAgICAgICAgIGlm
IGZzcGF0aDoKLSAgICAgICAgICAgIHJlcyA9IG1rcmVsKG5vZGVpZCkucmVwbGFjZSgiOjooKSIs
ICIiKSAgIyBwYXJlbnMtbm9ybWFsaXphdGlvbgotICAgICAgICAgICAgaWYgbm9kZWlkLnNwbGl0
KCI6OiIpWzBdICE9IGZzcGF0aC5yZXBsYWNlKCJcXCIsIG5vZGVzLlNFUCk6CisgICAgICAgICAg
ICByZXMgPSBta3JlbChub2RlaWQpCisgICAgICAgICAgICBpZiBzZWxmLnZlcmJvc2l0eSA+PSAy
IGFuZCBub2RlaWQuc3BsaXQoIjo6IilbMF0gIT0gZnNwYXRoLnJlcGxhY2UoCisgICAgICAgICAg
ICAgICAgIlxcIiwgbm9kZXMuU0VQCisgICAgICAgICAgICApOgogICAgICAgICAgICAgICAgIHJl
cyArPSAiIDwtICIgKyBzZWxmLnN0YXJ0ZGlyLmJlc3RyZWxwYXRoKGZzcGF0aCkKICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIHJlcyA9ICJbbG9jYXRpb25dIgogICAgICAgICByZXR1cm4gcmVz
ICsgIiAiCiAKICAgICBkZWYgX2dldGZhaWx1cmVoZWFkbGluZShzZWxmLCByZXApOgotICAgICAg
ICBpZiBoYXNhdHRyKHJlcCwgImxvY2F0aW9uIik6Ci0gICAgICAgICAgICBmc3BhdGgsIGxpbmVu
bywgZG9tYWluID0gcmVwLmxvY2F0aW9uCi0gICAgICAgICAgICByZXR1cm4gZG9tYWluCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gInRlc3Qgc2Vzc2lvbiIgICMgWFhYPworICAg
ICAgICBoZWFkX2xpbmUgPSByZXAuaGVhZF9saW5lCisgICAgICAgIGlmIGhlYWRfbGluZToKKyAg
ICAgICAgICAgIHJldHVybiBoZWFkX2xpbmUKKyAgICAgICAgcmV0dXJuICJ0ZXN0IHNlc3Npb24i
ICAjIFhYWD8KIAogICAgIGRlZiBfZ2V0Y3Jhc2hsaW5lKHNlbGYsIHJlcCk6CiAgICAgICAgIHRy
eToKQEAgLTY3NiwxOSArNzY5LDM3IEBAIGNsYXNzIFRlcm1pbmFsUmVwb3J0ZXIob2JqZWN0KToK
ICAgICAgICAgICAgIGlmIG5vdCBhbGxfd2FybmluZ3M6CiAgICAgICAgICAgICAgICAgcmV0dXJu
CiAKLSAgICAgICAgICAgIGdyb3VwZWQgPSBpdGVydG9vbHMuZ3JvdXBieSgKLSAgICAgICAgICAg
ICAgICBhbGxfd2FybmluZ3MsIGtleT1sYW1iZGEgd3I6IHdyLmdldF9sb2NhdGlvbihzZWxmLmNv
bmZpZykKLSAgICAgICAgICAgICkKKyAgICAgICAgICAgIGZpbmFsID0gaGFzYXR0cihzZWxmLCAi
X2FscmVhZHlfZGlzcGxheWVkX3dhcm5pbmdzIikKKyAgICAgICAgICAgIGlmIGZpbmFsOgorICAg
ICAgICAgICAgICAgIHdhcm5pbmdfcmVwb3J0cyA9IGFsbF93YXJuaW5nc1tzZWxmLl9hbHJlYWR5
X2Rpc3BsYXllZF93YXJuaW5ncyA6XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICB3YXJuaW5nX3JlcG9ydHMgPSBhbGxfd2FybmluZ3MKKyAgICAgICAgICAgIHNlbGYuX2FscmVh
ZHlfZGlzcGxheWVkX3dhcm5pbmdzID0gbGVuKHdhcm5pbmdfcmVwb3J0cykKKyAgICAgICAgICAg
IGlmIG5vdCB3YXJuaW5nX3JlcG9ydHM6CisgICAgICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAg
ICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgIndhcm5pbmdzIHN1bW1hcnkiLCB5ZWxsb3c9VHJ1
ZSwgYm9sZD1GYWxzZSkKLSAgICAgICAgICAgIGZvciBsb2NhdGlvbiwgd2FybmluZ19yZWNvcmRz
IGluIGdyb3VwZWQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZShzdHIobG9jYXRpb24p
IGlmIGxvY2F0aW9uIGVsc2UgIjx1bmRldGVybWluZWQgbG9jYXRpb24+IikKLSAgICAgICAgICAg
ICAgICBmb3IgdyBpbiB3YXJuaW5nX3JlY29yZHM6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmVz
ID0gdy5tZXNzYWdlLnNwbGl0bGluZXMoKQorICAgICAgICAgICAgcmVwb3J0c19ncm91cGVkX2J5
X21lc3NhZ2UgPSBjb2xsZWN0aW9ucy5PcmRlcmVkRGljdCgpCisgICAgICAgICAgICBmb3Igd3Ig
aW4gd2FybmluZ19yZXBvcnRzOgorICAgICAgICAgICAgICAgIHJlcG9ydHNfZ3JvdXBlZF9ieV9t
ZXNzYWdlLnNldGRlZmF1bHQod3IubWVzc2FnZSwgW10pLmFwcGVuZCh3cikKKworICAgICAgICAg
ICAgdGl0bGUgPSAid2FybmluZ3Mgc3VtbWFyeSAoZmluYWwpIiBpZiBmaW5hbCBlbHNlICJ3YXJu
aW5ncyBzdW1tYXJ5IgorICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCB0aXRsZSwgeWVs
bG93PVRydWUsIGJvbGQ9RmFsc2UpCisgICAgICAgICAgICBmb3IgbWVzc2FnZSwgd2FybmluZ19y
ZXBvcnRzIGluIHJlcG9ydHNfZ3JvdXBlZF9ieV9tZXNzYWdlLml0ZW1zKCk6CisgICAgICAgICAg
ICAgICAgaGFzX2FueV9sb2NhdGlvbiA9IEZhbHNlCisgICAgICAgICAgICAgICAgZm9yIHcgaW4g
d2FybmluZ19yZXBvcnRzOgorICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbiA9IHcuZ2V0X2xv
Y2F0aW9uKHNlbGYuY29uZmlnKQorICAgICAgICAgICAgICAgICAgICBpZiBsb2NhdGlvbjoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoc3RyKGxvY2F0aW9uKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGhhc19hbnlfbG9jYXRpb24gPSBUcnVlCisgICAgICAgICAgICAg
ICAgaWYgaGFzX2FueV9sb2NhdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgbGluZXMgPSBtZXNz
YWdlLnNwbGl0bGluZXMoKQogICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCA9ICJcbiIuam9p
bigiICAiICsgeCBmb3IgeCBpbiBsaW5lcykKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdHcu
bGluZShpbmRlbnRlZCkKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGluZGVudGVkLnJz
dHJpcCgpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZSA9IG1lc3NhZ2UucnN0cmlwKCkKKyAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5lKG1lc3Nh
Z2UpCiAgICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZSgpCi0gICAgICAgICAgICBzZWxmLl90
dy5saW5lKCItLSBEb2NzOiBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdz
Lmh0bWwiKQorICAgICAgICAgICAgc2VsZi5fdHcubGluZSgiLS0gRG9jczogaHR0cHM6Ly9kb2Nz
LnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwiKQogCiAgICAgZGVmIHN1bW1hcnlf
cGFzc2VzKHNlbGYpOgogICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSAhPSAi
bm8iOgpAQCAtNjk4LDEyICs4MDksMTggQEAgY2xhc3MgVGVybWluYWxSZXBvcnRlcihvYmplY3Qp
OgogICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgICBzZWxmLndyaXRl
X3NlcCgiPSIsICJQQVNTRVMiKQogICAgICAgICAgICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoK
LSAgICAgICAgICAgICAgICAgICAgbXNnID0gc2VsZi5fZ2V0ZmFpbHVyZWhlYWRsaW5lKHJlcCkK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIl8iLCBtc2cpCi0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX291dHJlcF9zdW1tYXJ5KHJlcCkKKyAgICAgICAgICAgICAgICAgICAg
aWYgcmVwLnNlY3Rpb25zOgorICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gc2VsZi5fZ2V0
ZmFpbHVyZWhlYWRsaW5lKHJlcCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGVf
c2VwKCJfIiwgbXNnLCBncmVlbj1UcnVlLCBib2xkPVRydWUpCisgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9vdXRyZXBfc3VtbWFyeShyZXApCiAKICAgICBkZWYgcHJpbnRfdGVhcmRvd25f
c2VjdGlvbnMoc2VsZiwgcmVwKToKKyAgICAgICAgc2hvd2NhcHR1cmUgPSBzZWxmLmNvbmZpZy5v
cHRpb24uc2hvd2NhcHR1cmUKKyAgICAgICAgaWYgc2hvd2NhcHR1cmUgPT0gIm5vIjoKKyAgICAg
ICAgICAgIHJldHVybgogICAgICAgICBmb3Igc2VjbmFtZSwgY29udGVudCBpbiByZXAuc2VjdGlv
bnM6CisgICAgICAgICAgICBpZiBzaG93Y2FwdHVyZSAhPSAiYWxsIiBhbmQgc2hvd2NhcHR1cmUg
bm90IGluIHNlY25hbWU6CisgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlm
ICJ0ZWFyZG93biIgaW4gc2VjbmFtZToKICAgICAgICAgICAgICAgICBzZWxmLl90dy5zZXAoIi0i
LCBzZWNuYW1lKQogICAgICAgICAgICAgICAgIGlmIGNvbnRlbnRbLTE6XSA9PSAiXG4iOgpAQCAt
NzE2LDE4ICs4MzMsMjIgQEAgY2xhc3MgVGVybWluYWxSZXBvcnRlcihvYmplY3QpOgogICAgICAg
ICAgICAgaWYgbm90IHJlcG9ydHM6CiAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAg
ICBzZWxmLndyaXRlX3NlcCgiPSIsICJGQUlMVVJFUyIpCi0gICAgICAgICAgICBmb3IgcmVwIGlu
IHJlcG9ydHM6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUg
PT0gImxpbmUiOgorICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgPT0g
ImxpbmUiOgorICAgICAgICAgICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoKICAgICAgICAgICAg
ICAgICAgICAgbGluZSA9IHNlbGYuX2dldGNyYXNobGluZShyZXApCiAgICAgICAgICAgICAgICAg
ICAgIHNlbGYud3JpdGVfbGluZShsaW5lKQotICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRlYXJkb3duX3NlY3Rpb25zID0ge30KKyAgICAg
ICAgICAgICAgICBmb3IgcmVwb3J0IGluIHNlbGYuZ2V0cmVwb3J0cygiIik6CisgICAgICAgICAg
ICAgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJ0ZWFyZG93biI6CisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZWFyZG93bl9zZWN0aW9ucy5zZXRkZWZhdWx0KHJlcG9ydC5ub2RlaWQsIFtdKS5h
cHBlbmQocmVwb3J0KQorCisgICAgICAgICAgICAgICAgZm9yIHJlcCBpbiByZXBvcnRzOgogICAg
ICAgICAgICAgICAgICAgICBtc2cgPSBzZWxmLl9nZXRmYWlsdXJlaGVhZGxpbmUocmVwKQotICAg
ICAgICAgICAgICAgICAgICBtYXJrdXAgPSB7InJlZCI6IFRydWUsICJib2xkIjogVHJ1ZX0KLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIl8iLCBtc2csICoqbWFya3VwKQorICAg
ICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiXyIsIG1zZywgcmVkPVRydWUsIGJvbGQ9
VHJ1ZSkKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3V0cmVwX3N1bW1hcnkocmVwKQotICAg
ICAgICAgICAgICAgICAgICBmb3IgcmVwb3J0IGluIHNlbGYuZ2V0cmVwb3J0cygiIik6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiByZXBvcnQubm9kZWlkID09IHJlcC5ub2RlaWQgYW5kIHJl
cG9ydC53aGVuID09ICJ0ZWFyZG93biI6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5wcmludF90ZWFyZG93bl9zZWN0aW9ucyhyZXBvcnQpCisgICAgICAgICAgICAgICAgICAgIGZv
ciByZXBvcnQgaW4gdGVhcmRvd25fc2VjdGlvbnMuZ2V0KHJlcC5ub2RlaWQsIFtdKToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYucHJpbnRfdGVhcmRvd25fc2VjdGlvbnMocmVwb3J0KQog
CiAgICAgZGVmIHN1bW1hcnlfZXJyb3JzKHNlbGYpOgogICAgICAgICBpZiBzZWxmLmNvbmZpZy5v
cHRpb24udGJzdHlsZSAhPSAibm8iOgpAQCAtNzM3LDE0ICs4NTgsMTEgQEAgY2xhc3MgVGVybWlu
YWxSZXBvcnRlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAiRVJS
T1JTIikKICAgICAgICAgICAgIGZvciByZXAgaW4gc2VsZi5zdGF0c1siZXJyb3IiXToKICAgICAg
ICAgICAgICAgICBtc2cgPSBzZWxmLl9nZXRmYWlsdXJlaGVhZGxpbmUocmVwKQotICAgICAgICAg
ICAgICAgIGlmIG5vdCBoYXNhdHRyKHJlcCwgIndoZW4iKToKLSAgICAgICAgICAgICAgICAgICAg
IyBjb2xsZWN0CisgICAgICAgICAgICAgICAgaWYgcmVwLndoZW4gPT0gImNvbGxlY3QiOgogICAg
ICAgICAgICAgICAgICAgICBtc2cgPSAiRVJST1IgY29sbGVjdGluZyAiICsgbXNnCi0gICAgICAg
ICAgICAgICAgZWxpZiByZXAud2hlbiA9PSAic2V0dXAiOgotICAgICAgICAgICAgICAgICAgICBt
c2cgPSAiRVJST1IgYXQgc2V0dXAgb2YgIiArIG1zZwotICAgICAgICAgICAgICAgIGVsaWYgcmVw
LndoZW4gPT0gInRlYXJkb3duIjoKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gIkVSUk9SIGF0
IHRlYXJkb3duIG9mICIgKyBtc2cKLSAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiXyIs
IG1zZykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBtc2cgPSAi
RVJST1IgYXQgJXMgb2YgJXMiICUgKHJlcC53aGVuLCBtc2cpCisgICAgICAgICAgICAgICAgc2Vs
Zi53cml0ZV9zZXAoIl8iLCBtc2csIHJlZD1UcnVlLCBib2xkPVRydWUpCiAgICAgICAgICAgICAg
ICAgc2VsZi5fb3V0cmVwX3N1bW1hcnkocmVwKQogCiAgICAgZGVmIF9vdXRyZXBfc3VtbWFyeShz
ZWxmLCByZXApOgpAQCAtNzcxLDMxICs4ODksMTc0IEBAIGNsYXNzIFRlcm1pbmFsUmVwb3J0ZXIo
b2JqZWN0KToKICAgICAgICAgaWYgc2VsZi52ZXJib3NpdHkgPT0gLTE6CiAgICAgICAgICAgICBz
ZWxmLndyaXRlX2xpbmUobXNnLCAqKm1hcmt1cCkKIAorICAgIGRlZiBzaG9ydF90ZXN0X3N1bW1h
cnkoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLnJlcG9ydGNoYXJzOgorICAgICAgICAgICAg
cmV0dXJuCisKKyAgICAgICAgZGVmIHNob3dfc2ltcGxlKHN0YXQsIGxpbmVzKToKKyAgICAgICAg
ICAgIGZhaWxlZCA9IHNlbGYuc3RhdHMuZ2V0KHN0YXQsIFtdKQorICAgICAgICAgICAgaWYgbm90
IGZhaWxlZDoKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHRlcm13aWR0aCA9
IHNlbGYud3JpdGVyLmZ1bGx3aWR0aAorICAgICAgICAgICAgY29uZmlnID0gc2VsZi5jb25maWcK
KyAgICAgICAgICAgIGZvciByZXAgaW4gZmFpbGVkOgorICAgICAgICAgICAgICAgIGxpbmUgPSBf
Z2V0X2xpbmVfd2l0aF9yZXByY3Jhc2hfbWVzc2FnZShjb25maWcsIHJlcCwgdGVybXdpZHRoKQor
ICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZChsaW5lKQorCisgICAgICAgIGRlZiBzaG93X3hm
YWlsZWQobGluZXMpOgorICAgICAgICAgICAgeGZhaWxlZCA9IHNlbGYuc3RhdHMuZ2V0KCJ4ZmFp
bGVkIiwgW10pCisgICAgICAgICAgICBmb3IgcmVwIGluIHhmYWlsZWQ6CisgICAgICAgICAgICAg
ICAgdmVyYm9zZV93b3JkID0gcmVwLl9nZXRfdmVyYm9zZV93b3JkKHNlbGYuY29uZmlnKQorICAg
ICAgICAgICAgICAgIHBvcyA9IF9nZXRfcG9zKHNlbGYuY29uZmlnLCByZXApCisgICAgICAgICAg
ICAgICAgbGluZXMuYXBwZW5kKCIlcyAlcyIgJSAodmVyYm9zZV93b3JkLCBwb3MpKQorICAgICAg
ICAgICAgICAgIHJlYXNvbiA9IHJlcC53YXN4ZmFpbAorICAgICAgICAgICAgICAgIGlmIHJlYXNv
bjoKKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICIgKyBzdHIocmVhc29uKSkK
KworICAgICAgICBkZWYgc2hvd194cGFzc2VkKGxpbmVzKToKKyAgICAgICAgICAgIHhwYXNzZWQg
PSBzZWxmLnN0YXRzLmdldCgieHBhc3NlZCIsIFtdKQorICAgICAgICAgICAgZm9yIHJlcCBpbiB4
cGFzc2VkOgorICAgICAgICAgICAgICAgIHZlcmJvc2Vfd29yZCA9IHJlcC5fZ2V0X3ZlcmJvc2Vf
d29yZChzZWxmLmNvbmZpZykKKyAgICAgICAgICAgICAgICBwb3MgPSBfZ2V0X3BvcyhzZWxmLmNv
bmZpZywgcmVwKQorICAgICAgICAgICAgICAgIHJlYXNvbiA9IHJlcC53YXN4ZmFpbAorICAgICAg
ICAgICAgICAgIGxpbmVzLmFwcGVuZCgiJXMgJXMgJXMiICUgKHZlcmJvc2Vfd29yZCwgcG9zLCBy
ZWFzb24pKQorCisgICAgICAgIGRlZiBzaG93X3NraXBwZWQobGluZXMpOgorICAgICAgICAgICAg
c2tpcHBlZCA9IHNlbGYuc3RhdHMuZ2V0KCJza2lwcGVkIiwgW10pCisgICAgICAgICAgICBmc2tp
cHMgPSBfZm9sZGVkX3NraXBzKHNraXBwZWQpIGlmIHNraXBwZWQgZWxzZSBbXQorICAgICAgICAg
ICAgaWYgbm90IGZza2lwczoKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHZl
cmJvc2Vfd29yZCA9IHNraXBwZWRbMF0uX2dldF92ZXJib3NlX3dvcmQoc2VsZi5jb25maWcpCisg
ICAgICAgICAgICBmb3IgbnVtLCBmc3BhdGgsIGxpbmVubywgcmVhc29uIGluIGZza2lwczoKKyAg
ICAgICAgICAgICAgICBpZiByZWFzb24uc3RhcnRzd2l0aCgiU2tpcHBlZDogIik6CisgICAgICAg
ICAgICAgICAgICAgIHJlYXNvbiA9IHJlYXNvbls5Ol0KKyAgICAgICAgICAgICAgICBpZiBsaW5l
bm8gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgKKyAgICAg
ICAgICAgICAgICAgICAgICAgICIlcyBbJWRdICVzOiVkOiAlcyIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICUgKHZlcmJvc2Vfd29yZCwgbnVtLCBmc3BhdGgsIGxpbmVubyArIDEsIHJlYXNvbikK
KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgIGxpbmVzLmFwcGVuZCgiJXMgWyVkXSAlczogJXMiICUgKHZlcmJvc2Vfd29yZCwg
bnVtLCBmc3BhdGgsIHJlYXNvbikpCisKKyAgICAgICAgUkVQT1JUQ0hBUl9BQ1RJT05TID0gewor
ICAgICAgICAgICAgIngiOiBzaG93X3hmYWlsZWQsCisgICAgICAgICAgICAiWCI6IHNob3dfeHBh
c3NlZCwKKyAgICAgICAgICAgICJmIjogcGFydGlhbChzaG93X3NpbXBsZSwgImZhaWxlZCIpLAor
ICAgICAgICAgICAgInMiOiBzaG93X3NraXBwZWQsCisgICAgICAgICAgICAicCI6IHBhcnRpYWwo
c2hvd19zaW1wbGUsICJwYXNzZWQiKSwKKyAgICAgICAgICAgICJFIjogcGFydGlhbChzaG93X3Np
bXBsZSwgImVycm9yIiksCisgICAgICAgIH0KKworICAgICAgICBsaW5lcyA9IFtdCisgICAgICAg
IGZvciBjaGFyIGluIHNlbGYucmVwb3J0Y2hhcnM6CisgICAgICAgICAgICBhY3Rpb24gPSBSRVBP
UlRDSEFSX0FDVElPTlMuZ2V0KGNoYXIpCisgICAgICAgICAgICBpZiBhY3Rpb246ICAjIHNraXBw
aW5nIGUuZy4gIlAiIChwYXNzZWQgd2l0aCBvdXRwdXQpIGhlcmUuCisgICAgICAgICAgICAgICAg
YWN0aW9uKGxpbmVzKQorCisgICAgICAgIGlmIGxpbmVzOgorICAgICAgICAgICAgc2VsZi53cml0
ZV9zZXAoIj0iLCAic2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8iKQorICAgICAgICAgICAgZm9yIGxp
bmUgaW4gbGluZXM6CisgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9saW5lKGxpbmUpCisKKwor
ZGVmIF9nZXRfcG9zKGNvbmZpZywgcmVwKToKKyAgICBub2RlaWQgPSBjb25maWcuY3dkX3JlbGF0
aXZlX25vZGVpZChyZXAubm9kZWlkKQorICAgIHJldHVybiBub2RlaWQKKworCitkZWYgX2dldF9s
aW5lX3dpdGhfcmVwcmNyYXNoX21lc3NhZ2UoY29uZmlnLCByZXAsIHRlcm13aWR0aCk6CisgICAg
IiIiR2V0IHN1bW1hcnkgbGluZSBmb3IgYSByZXBvcnQsIHRyeWluZyB0byBhZGQgcmVwcmNyYXNo
IG1lc3NhZ2UuIiIiCisgICAgZnJvbSB3Y3dpZHRoIGltcG9ydCB3Y3N3aWR0aAorCisgICAgdmVy
Ym9zZV93b3JkID0gcmVwLl9nZXRfdmVyYm9zZV93b3JkKGNvbmZpZykKKyAgICBwb3MgPSBfZ2V0
X3Bvcyhjb25maWcsIHJlcCkKKworICAgIGxpbmUgPSAiJXMgJXMiICUgKHZlcmJvc2Vfd29yZCwg
cG9zKQorICAgIGxlbl9saW5lID0gd2Nzd2lkdGgobGluZSkKKyAgICBlbGxpcHNpcywgbGVuX2Vs
bGlwc2lzID0gIi4uLiIsIDMKKyAgICBpZiBsZW5fbGluZSA+IHRlcm13aWR0aCAtIGxlbl9lbGxp
cHNpczoKKyAgICAgICAgIyBObyBzcGFjZSBmb3IgYW4gYWRkaXRpb25hbCBtZXNzYWdlLgorICAg
ICAgICByZXR1cm4gbGluZQogCi1kZWYgcmVwcl9weXRob252ZXJzaW9uKHY9Tm9uZSk6Ci0gICAg
aWYgdiBpcyBOb25lOgotICAgICAgICB2ID0gc3lzLnZlcnNpb25faW5mbwogICAgIHRyeToKLSAg
ICAgICAgcmV0dXJuICIlcy4lcy4lcy0lcy0lcyIgJSB2Ci0gICAgZXhjZXB0IChUeXBlRXJyb3Is
IFZhbHVlRXJyb3IpOgotICAgICAgICByZXR1cm4gc3RyKHYpCisgICAgICAgIG1zZyA9IHJlcC5s
b25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQorICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAg
ICAgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgICMgT25seSB1c2UgdGhlIGZpcnN0IGxpbmUu
CisgICAgICAgIGkgPSBtc2cuZmluZCgiXG4iKQorICAgICAgICBpZiBpICE9IC0xOgorICAgICAg
ICAgICAgbXNnID0gbXNnWzppXQorICAgICAgICBsZW5fbXNnID0gd2Nzd2lkdGgobXNnKQorCisg
ICAgICAgIHNlcCwgbGVuX3NlcCA9ICIgLSAiLCAzCisgICAgICAgIG1heF9sZW5fbXNnID0gdGVy
bXdpZHRoIC0gbGVuX2xpbmUgLSBsZW5fc2VwCisgICAgICAgIGlmIG1heF9sZW5fbXNnID49IGxl
bl9lbGxpcHNpczoKKyAgICAgICAgICAgIGlmIGxlbl9tc2cgPiBtYXhfbGVuX21zZzoKKyAgICAg
ICAgICAgICAgICBtYXhfbGVuX21zZyAtPSBsZW5fZWxsaXBzaXMKKyAgICAgICAgICAgICAgICBt
c2cgPSBtc2dbOm1heF9sZW5fbXNnXQorICAgICAgICAgICAgICAgIHdoaWxlIHdjc3dpZHRoKG1z
ZykgPiBtYXhfbGVuX21zZzoKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gbXNnWzotMV0KKyAg
ICAgICAgICAgICAgICBpZiBzaXguUFkyOgorICAgICAgICAgICAgICAgICAgICAjIG9uIHB5dGhv
biAyIHN5c3RlbXMgd2l0aCBuYXJyb3cgdW5pY29kZSBjb21waWxhdGlvbiwgdHJ5aW5nIHRvCisg
ICAgICAgICAgICAgICAgICAgICMgZ2V0IGEgc2luZ2xlIGNoYXJhY3RlciBvdXQgb2YgYSBtdWx0
aS1ieXRlIHVuaWNvZGUgY2hhcmFjdGVyIHN1Y2ggYXMKKyAgICAgICAgICAgICAgICAgICAgIyB1
J/CfmIQnIHdpbGwgcmVzdWx0IGluIGEgSGlnaCBTdXJyb2dhdGUgKFUrRDgzRCkgY2hhcmFjdGVy
LCB3aGljaCBpcworICAgICAgICAgICAgICAgICAgICAjIHJlbmRlcmVkIGFzIHUn77+9JzsgaW4g
dGhpcyBjYXNlIHdlIGp1c3Qgc3RyaXAgdGhhdCBjaGFyYWN0ZXIgb3V0IGFzIGl0CisgICAgICAg
ICAgICAgICAgICAgICMgc2VydmVzIG5vIHB1cnBvc2UgYmVpbmcgcmVuZGVyZWQKKyAgICAgICAg
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgc3Vycm9nYXRlID0gc2l4
LnVuaWNocigweEQ4M0QpCisgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBtc2cucnN0cmlw
KHN1cnJvZ2F0ZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6ICAjIHBy
YWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICMgSnl0aG9uIGNhbm5vdCBy
ZXByZXNlbnQgdGhpcyBsb25lIHN1cnJvZ2F0ZSBhdCBhbGwgKCM1MjU2KToKKyAgICAgICAgICAg
ICAgICAgICAgICAgICMgVmFsdWVFcnJvcjogdW5pY2hyKCkgYXJnIGlzIGEgbG9uZSBzdXJyb2dh
dGUgaW4gcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICgweEQ4MDAsIDB4REZG
RikgKEp5dGhvbiBVVEYtMTYgZW5jb2RpbmcpCisgICAgICAgICAgICAgICAgICAgICAgICAjIGln
bm9yZSB0aGlzIGNhc2UgYXMgaXQgc2hvdWxkbid0IGFwcGVhciBpbiB0aGUgc3RyaW5nIGFueXdh
eQorICAgICAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIG1zZyArPSBl
bGxpcHNpcworICAgICAgICAgICAgbGluZSArPSBzZXAgKyBtc2cKKyAgICByZXR1cm4gbGluZQor
CisKK2RlZiBfZm9sZGVkX3NraXBzKHNraXBwZWQpOgorICAgIGQgPSB7fQorICAgIGZvciBldmVu
dCBpbiBza2lwcGVkOgorICAgICAgICBrZXkgPSBldmVudC5sb25ncmVwcgorICAgICAgICBhc3Nl
cnQgbGVuKGtleSkgPT0gMywgKGV2ZW50LCBrZXkpCisgICAgICAgIGtleXdvcmRzID0gZ2V0YXR0
cihldmVudCwgImtleXdvcmRzIiwge30pCisgICAgICAgICMgZm9sZGluZyByZXBvcnRzIHdpdGgg
Z2xvYmFsIHB5dGVzdG1hcmsgdmFyaWFibGUKKyAgICAgICAgIyB0aGlzIGlzIHdvcmthcm91bmQs
IGJlY2F1c2UgZm9yIG5vdyB3ZSBjYW5ub3QgaWRlbnRpZnkgdGhlIHNjb3BlIG9mIGEgc2tpcCBt
YXJrZXIKKyAgICAgICAgIyBUT0RPOiByZXZpc2l0IGFmdGVyIG1hcmtzIHNjb3BlIHdvdWxkIGJl
IGZpeGVkCisgICAgICAgIGlmICgKKyAgICAgICAgICAgIGV2ZW50LndoZW4gPT0gInNldHVwIgor
ICAgICAgICAgICAgYW5kICJza2lwIiBpbiBrZXl3b3JkcworICAgICAgICAgICAgYW5kICJweXRl
c3RtYXJrIiBub3QgaW4ga2V5d29yZHMKKyAgICAgICAgKToKKyAgICAgICAgICAgIGtleSA9IChr
ZXlbMF0sIE5vbmUsIGtleVsyXSkKKyAgICAgICAgZC5zZXRkZWZhdWx0KGtleSwgW10pLmFwcGVu
ZChldmVudCkKKyAgICB2YWx1ZXMgPSBbXQorICAgIGZvciBrZXksIGV2ZW50cyBpbiBkLml0ZW1z
KCk6CisgICAgICAgIHZhbHVlcy5hcHBlbmQoKGxlbihldmVudHMpLCkgKyBrZXkpCisgICAgcmV0
dXJuIHZhbHVlcwogCiAKIGRlZiBidWlsZF9zdW1tYXJ5X3N0YXRzX2xpbmUoc3RhdHMpOgotICAg
IGtleXMgPSAoCi0gICAgICAgICJmYWlsZWQgcGFzc2VkIHNraXBwZWQgZGVzZWxlY3RlZCAiICJ4
ZmFpbGVkIHhwYXNzZWQgd2FybmluZ3MgZXJyb3IiCi0gICAgKS5zcGxpdCgpCi0gICAgdW5rbm93
bl9rZXlfc2VlbiA9IEZhbHNlCi0gICAgZm9yIGtleSBpbiBzdGF0cy5rZXlzKCk6Ci0gICAgICAg
IGlmIGtleSBub3QgaW4ga2V5czoKLSAgICAgICAgICAgIGlmIGtleTogICMgc2V0dXAvdGVhcmRv
d24gcmVwb3J0cyBoYXZlIGFuIGVtcHR5IGtleSwgaWdub3JlIHRoZW0KLSAgICAgICAgICAgICAg
ICBrZXlzLmFwcGVuZChrZXkpCi0gICAgICAgICAgICAgICAgdW5rbm93bl9rZXlfc2VlbiA9IFRy
dWUKKyAgICBrbm93bl90eXBlcyA9ICgKKyAgICAgICAgImZhaWxlZCBwYXNzZWQgc2tpcHBlZCBk
ZXNlbGVjdGVkIHhmYWlsZWQgeHBhc3NlZCB3YXJuaW5ncyBlcnJvciIuc3BsaXQoKQorICAgICkK
KyAgICB1bmtub3duX3R5cGVfc2VlbiA9IEZhbHNlCisgICAgZm9yIGZvdW5kX3R5cGUgaW4gc3Rh
dHM6CisgICAgICAgIGlmIGZvdW5kX3R5cGUgbm90IGluIGtub3duX3R5cGVzOgorICAgICAgICAg
ICAgaWYgZm91bmRfdHlwZTogICMgc2V0dXAvdGVhcmRvd24gcmVwb3J0cyBoYXZlIGFuIGVtcHR5
IGtleSwgaWdub3JlIHRoZW0KKyAgICAgICAgICAgICAgICBrbm93bl90eXBlcy5hcHBlbmQoZm91
bmRfdHlwZSkKKyAgICAgICAgICAgICAgICB1bmtub3duX3R5cGVfc2VlbiA9IFRydWUKICAgICBw
YXJ0cyA9IFtdCi0gICAgZm9yIGtleSBpbiBrZXlzOgotICAgICAgICB2YWwgPSBzdGF0cy5nZXQo
a2V5LCBOb25lKQotICAgICAgICBpZiB2YWw6Ci0gICAgICAgICAgICBwYXJ0cy5hcHBlbmQoIiVk
ICVzIiAlIChsZW4odmFsKSwga2V5KSkKKyAgICBmb3Iga2V5IGluIGtub3duX3R5cGVzOgorICAg
ICAgICByZXBvcnRzID0gc3RhdHMuZ2V0KGtleSwgTm9uZSkKKyAgICAgICAgaWYgcmVwb3J0czoK
KyAgICAgICAgICAgIGNvdW50ID0gc3VtKAorICAgICAgICAgICAgICAgIDEgZm9yIHJlcCBpbiBy
ZXBvcnRzIGlmIGdldGF0dHIocmVwLCAiY291bnRfdG93YXJkc19zdW1tYXJ5IiwgVHJ1ZSkKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgiJWQgJXMiICUgKGNvdW50LCBr
ZXkpKQogCiAgICAgaWYgcGFydHM6CiAgICAgICAgIGxpbmUgPSAiLCAiLmpvaW4ocGFydHMpCkBA
IC04MDQsMTQgKzEwNjUsMTQgQEAgZGVmIGJ1aWxkX3N1bW1hcnlfc3RhdHNfbGluZShzdGF0cyk6
CiAKICAgICBpZiAiZmFpbGVkIiBpbiBzdGF0cyBvciAiZXJyb3IiIGluIHN0YXRzOgogICAgICAg
ICBjb2xvciA9ICJyZWQiCi0gICAgZWxpZiAid2FybmluZ3MiIGluIHN0YXRzIG9yIHVua25vd25f
a2V5X3NlZW46CisgICAgZWxpZiAid2FybmluZ3MiIGluIHN0YXRzIG9yIHVua25vd25fdHlwZV9z
ZWVuOgogICAgICAgICBjb2xvciA9ICJ5ZWxsb3ciCiAgICAgZWxpZiAicGFzc2VkIiBpbiBzdGF0
czoKICAgICAgICAgY29sb3IgPSAiZ3JlZW4iCiAgICAgZWxzZToKICAgICAgICAgY29sb3IgPSAi
eWVsbG93IgogCi0gICAgcmV0dXJuIChsaW5lLCBjb2xvcikKKyAgICByZXR1cm4gbGluZSwgY29s
b3IKIAogCiBkZWYgX3BsdWdpbl9uYW1ldmVyc2lvbnMocGx1Z2luaW5mbyk6CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC90bXBkaXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC90bXBkaXIucHkKaW5kZXggMjYwZDI4NDIyMzQzMTAyZDRmYjhkNGU1ZDMxNjU0YTdjZmVj
OGNiNS4uYThhNzAzNzcxM2M4Yzc4NmJlMGE1MDc1MDdlNWQ5NTg4ZjY5NDg5NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdG1wZGlyLnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L3RtcGRpci5weQpAQCAtMSwyMiArMSw5NyBAQAorIyAtKi0gY29kaW5nOiB1dGYt
OCAtKi0KICIiIiBzdXBwb3J0IGZvciBwcm92aWRpbmcgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHRv
IHRlc3QgZnVuY3Rpb25zLiAgIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCitpbXBvcnQgb3MKIGltcG9ydCByZQoraW1w
b3J0IHRlbXBmaWxlCitpbXBvcnQgd2FybmluZ3MKIAotaW1wb3J0IHB5dGVzdAoraW1wb3J0IGF0
dHIKIGltcG9ydCBweQoraW1wb3J0IHNpeAorCitpbXBvcnQgcHl0ZXN0Citmcm9tIC5wYXRobGli
IGltcG9ydCBlbnN1cmVfcmVzZXRfZGlyCitmcm9tIC5wYXRobGliIGltcG9ydCBMT0NLX1RJTUVP
VVQKK2Zyb20gLnBhdGhsaWIgaW1wb3J0IG1ha2VfbnVtYmVyZWRfZGlyCitmcm9tIC5wYXRobGli
IGltcG9ydCBtYWtlX251bWJlcmVkX2Rpcl93aXRoX2NsZWFudXAKK2Zyb20gLnBhdGhsaWIgaW1w
b3J0IFBhdGgKIGZyb20gX3B5dGVzdC5tb25rZXlwYXRjaCBpbXBvcnQgTW9ua2V5UGF0Y2gKIAog
Ci1jbGFzcyBUZW1wZGlyRmFjdG9yeShvYmplY3QpOgorQGF0dHIucworY2xhc3MgVGVtcFBhdGhG
YWN0b3J5KG9iamVjdCk6CiAgICAgIiIiRmFjdG9yeSBmb3IgdGVtcG9yYXJ5IGRpcmVjdG9yaWVz
IHVuZGVyIHRoZSBjb21tb24gYmFzZSB0ZW1wIGRpcmVjdG9yeS4KIAotICAgIFRoZSBiYXNlIGRp
cmVjdG9yeSBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYGAtLWJhc2V0ZW1wYGAgb3B0aW9u
LgorICAgIFRoZSBiYXNlIGRpcmVjdG9yeSBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYGAt
LWJhc2V0ZW1wYGAgb3B0aW9uLiIiIgorCisgICAgX2dpdmVuX2Jhc2V0ZW1wID0gYXR0ci5pYigK
KyAgICAgICAgIyB1c2luZyBvcy5wYXRoLmFic3BhdGgoKSB0byBnZXQgYWJzb2x1dGUgcGF0aCBp
bnN0ZWFkIG9mIHJlc29sdmUoKSBhcyBpdAorICAgICAgICAjIGRvZXMgbm90IHdvcmsgdGhlIHNh
bWUgaW4gYWxsIHBsYXRmb3JtcyAoc2VlICM0NDI3KQorICAgICAgICAjIFBhdGguYWJzb2x1dGUo
KSBleGlzdHMsIGJ1dCBpdCBpcyBub3QgcHVibGljIChzZWUgaHR0cHM6Ly9idWdzLnB5dGhvbi5v
cmcvaXNzdWUyNTAxMikKKyAgICAgICAgY29udmVydGVyPWF0dHIuY29udmVydGVycy5vcHRpb25h
bCgKKyAgICAgICAgICAgIGxhbWJkYSBwOiBQYXRoKG9zLnBhdGguYWJzcGF0aChzaXgudGV4dF90
eXBlKHApKSkKKyAgICAgICAgKQorICAgICkKKyAgICBfdHJhY2UgPSBhdHRyLmliKCkKKyAgICBf
YmFzZXRlbXAgPSBhdHRyLmliKGRlZmF1bHQ9Tm9uZSkKKworICAgIEBjbGFzc21ldGhvZAorICAg
IGRlZiBmcm9tX2NvbmZpZyhjbHMsIGNvbmZpZyk6CisgICAgICAgICIiIgorICAgICAgICA6cGFy
YW0gY29uZmlnOiBhIHB5dGVzdCBjb25maWd1cmF0aW9uCisgICAgICAgICIiIgorICAgICAgICBy
ZXR1cm4gY2xzKAorICAgICAgICAgICAgZ2l2ZW5fYmFzZXRlbXA9Y29uZmlnLm9wdGlvbi5iYXNl
dGVtcCwgdHJhY2U9Y29uZmlnLnRyYWNlLmdldCgidG1wZGlyIikKKyAgICAgICAgKQorCisgICAg
ZGVmIG1rdGVtcChzZWxmLCBiYXNlbmFtZSwgbnVtYmVyZWQ9VHJ1ZSk6CisgICAgICAgICIiIm1h
a2VzIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBtYW5hZ2VkIGJ5IHRoZSBmYWN0b3J5IiIiCisgICAg
ICAgIGlmIG5vdCBudW1iZXJlZDoKKyAgICAgICAgICAgIHAgPSBzZWxmLmdldGJhc2V0ZW1wKCku
am9pbnBhdGgoYmFzZW5hbWUpCisgICAgICAgICAgICBwLm1rZGlyKCkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHAgPSBtYWtlX251bWJlcmVkX2Rpcihyb290PXNlbGYuZ2V0YmFzZXRlbXAo
KSwgcHJlZml4PWJhc2VuYW1lKQorICAgICAgICAgICAgc2VsZi5fdHJhY2UoIm1rdGVtcCIsIHAp
CisgICAgICAgIHJldHVybiBwCisKKyAgICBkZWYgZ2V0YmFzZXRlbXAoc2VsZik6CisgICAgICAg
ICIiIiByZXR1cm4gYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LiAiIiIKKyAgICAgICAgaWYgc2Vs
Zi5fYmFzZXRlbXAgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fYmFzZXRl
bXAKKworICAgICAgICBpZiBzZWxmLl9naXZlbl9iYXNldGVtcCBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGJhc2V0ZW1wID0gc2VsZi5fZ2l2ZW5fYmFzZXRlbXAKKyAgICAgICAgICAgIGVuc3Vy
ZV9yZXNldF9kaXIoYmFzZXRlbXApCisgICAgICAgICAgICBiYXNldGVtcCA9IGJhc2V0ZW1wLnJl
c29sdmUoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZnJvbV9lbnYgPSBvcy5lbnZpcm9u
LmdldCgiUFlURVNUX0RFQlVHX1RFTVBST09UIikKKyAgICAgICAgICAgIHRlbXByb290ID0gUGF0
aChmcm9tX2VudiBvciB0ZW1wZmlsZS5nZXR0ZW1wZGlyKCkpLnJlc29sdmUoKQorICAgICAgICAg
ICAgdXNlciA9IGdldF91c2VyKCkgb3IgInVua25vd24iCisgICAgICAgICAgICAjIHVzZSBhIHN1
Yi1kaXJlY3RvcnkgaW4gdGhlIHRlbXByb290IHRvIHNwZWVkLXVwCisgICAgICAgICAgICAjIG1h
a2VfbnVtYmVyZWRfZGlyKCkgY2FsbAorICAgICAgICAgICAgcm9vdGRpciA9IHRlbXByb290Lmpv
aW5wYXRoKCJweXRlc3Qtb2Yte30iLmZvcm1hdCh1c2VyKSkKKyAgICAgICAgICAgIHJvb3RkaXIu
bWtkaXIoZXhpc3Rfb2s9VHJ1ZSkKKyAgICAgICAgICAgIGJhc2V0ZW1wID0gbWFrZV9udW1iZXJl
ZF9kaXJfd2l0aF9jbGVhbnVwKAorICAgICAgICAgICAgICAgIHByZWZpeD0icHl0ZXN0LSIsIHJv
b3Q9cm9vdGRpciwga2VlcD0zLCBsb2NrX3RpbWVvdXQ9TE9DS19USU1FT1VUCisgICAgICAgICAg
ICApCisgICAgICAgIGFzc2VydCBiYXNldGVtcCBpcyBub3QgTm9uZSwgYmFzZXRlbXAKKyAgICAg
ICAgc2VsZi5fYmFzZXRlbXAgPSB0ID0gYmFzZXRlbXAKKyAgICAgICAgc2VsZi5fdHJhY2UoIm5l
dyBiYXNldGVtcCIsIHQpCisgICAgICAgIHJldHVybiB0CisKKworQGF0dHIucworY2xhc3MgVGVt
cGRpckZhY3Rvcnkob2JqZWN0KToKKyAgICAiIiIKKyAgICBiYWNrd2FyZCBjb21wdGliaWxpdHkg
d3JhcHBlciB0aGF0IGltcGxlbWVudHMKKyAgICA6Y2xhc3M6YGBweS5wYXRoLmxvY2FsYGAgZm9y
IDpjbGFzczpgYFRlbXBQYXRoRmFjdG9yeWBgCiAgICAgIiIiCiAKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgY29uZmlnKToKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLSAgICAgICAgc2Vs
Zi50cmFjZSA9IGNvbmZpZy50cmFjZS5nZXQoInRtcGRpciIpCisgICAgX3RtcHBhdGhfZmFjdG9y
eSA9IGF0dHIuaWIoKQogCiAgICAgZGVmIGVuc3VyZXRlbXAoc2VsZiwgc3RyaW5nLCBkaXI9MSk6
CiAgICAgICAgICIiIiAoZGVwcmVjYXRlZCkgcmV0dXJuIHRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0
aCB3aXRoCkBAIC0yNiw2ICsxMDEsOSBAQCBjbGFzcyBUZW1wZGlyRmFjdG9yeShvYmplY3QpOgog
ICAgICAgICAgICAgYW5kIGlzIGd1YXJhbnRlZWQgdG8gYmUgZW1wdHkuCiAgICAgICAgICIiIgog
ICAgICAgICAjIHB5LmxvZy5fYXBpd2FybigiPjEuMSIsICJ1c2UgdG1wZGlyIGZ1bmN0aW9uIGFy
Z3VtZW50IikKKyAgICAgICAgZnJvbSAuZGVwcmVjYXRlZCBpbXBvcnQgUFlURVNUX0VOU1VSRVRF
TVAKKworICAgICAgICB3YXJuaW5ncy53YXJuKFBZVEVTVF9FTlNVUkVURU1QLCBzdGFja2xldmVs
PTIpCiAgICAgICAgIHJldHVybiBzZWxmLmdldGJhc2V0ZW1wKCkuZW5zdXJlKHN0cmluZywgZGly
PWRpcikKIAogICAgIGRlZiBta3RlbXAoc2VsZiwgYmFzZW5hbWUsIG51bWJlcmVkPVRydWUpOgpA
QCAtMzMsNDYgKzExMSwxMSBAQCBjbGFzcyBUZW1wZGlyRmFjdG9yeShvYmplY3QpOgogICAgICAg
ICBJZiBgYG51bWJlcmVkYGAsIGVuc3VyZSB0aGUgZGlyZWN0b3J5IGlzIHVuaXF1ZSBieSBhZGRp
bmcgYSBudW1iZXIKICAgICAgICAgcHJlZml4IGdyZWF0ZXIgdGhhbiBhbnkgZXhpc3Rpbmcgb25l
LgogICAgICAgICAiIiIKLSAgICAgICAgYmFzZXRlbXAgPSBzZWxmLmdldGJhc2V0ZW1wKCkKLSAg
ICAgICAgaWYgbm90IG51bWJlcmVkOgotICAgICAgICAgICAgcCA9IGJhc2V0ZW1wLm1rZGlyKGJh
c2VuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwubWFr
ZV9udW1iZXJlZF9kaXIoCi0gICAgICAgICAgICAgICAgcHJlZml4PWJhc2VuYW1lLCBrZWVwPTAs
IHJvb3RkaXI9YmFzZXRlbXAsIGxvY2tfdGltZW91dD1Ob25lCi0gICAgICAgICAgICApCi0gICAg
ICAgIHNlbGYudHJhY2UoIm1rdGVtcCIsIHApCi0gICAgICAgIHJldHVybiBwCisgICAgICAgIHJl
dHVybiBweS5wYXRoLmxvY2FsKHNlbGYuX3RtcHBhdGhfZmFjdG9yeS5ta3RlbXAoYmFzZW5hbWUs
IG51bWJlcmVkKS5yZXNvbHZlKCkpCiAKICAgICBkZWYgZ2V0YmFzZXRlbXAoc2VsZik6Ci0gICAg
ICAgICIiIiByZXR1cm4gYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LiAiIiIKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Jhc2V0ZW1wCi0gICAgICAgIGV4Y2VwdCBBdHRy
aWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIGJhc2V0ZW1wID0gc2VsZi5jb25maWcub3B0aW9uLmJh
c2V0ZW1wCi0gICAgICAgICAgICBpZiBiYXNldGVtcDoKLSAgICAgICAgICAgICAgICBiYXNldGVt
cCA9IHB5LnBhdGgubG9jYWwoYmFzZXRlbXApCi0gICAgICAgICAgICAgICAgaWYgYmFzZXRlbXAu
Y2hlY2soKToKLSAgICAgICAgICAgICAgICAgICAgYmFzZXRlbXAucmVtb3ZlKCkKLSAgICAgICAg
ICAgICAgICBiYXNldGVtcC5ta2RpcigpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIHRlbXByb290ID0gcHkucGF0aC5sb2NhbC5nZXRfdGVtcHJvb3QoKQotICAgICAgICAgICAg
ICAgIHVzZXIgPSBnZXRfdXNlcigpCi0gICAgICAgICAgICAgICAgaWYgdXNlcjoKLSAgICAgICAg
ICAgICAgICAgICAgIyB1c2UgYSBzdWItZGlyZWN0b3J5IGluIHRoZSB0ZW1wcm9vdCB0byBzcGVl
ZC11cAotICAgICAgICAgICAgICAgICAgICAjIG1ha2VfbnVtYmVyZWRfZGlyKCkgY2FsbAotICAg
ICAgICAgICAgICAgICAgICByb290ZGlyID0gdGVtcHJvb3Quam9pbigicHl0ZXN0LW9mLSVzIiAl
IHVzZXIpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcm9vdGRp
ciA9IHRlbXByb290Ci0gICAgICAgICAgICAgICAgcm9vdGRpci5lbnN1cmUoZGlyPTEpCi0gICAg
ICAgICAgICAgICAgYmFzZXRlbXAgPSBweS5wYXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKAot
ICAgICAgICAgICAgICAgICAgICBwcmVmaXg9InB5dGVzdC0iLCByb290ZGlyPXJvb3RkaXIKLSAg
ICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLl9iYXNldGVtcCA9IHQgPSBiYXNldGVt
cC5yZWFscGF0aCgpCi0gICAgICAgICAgICBzZWxmLnRyYWNlKCJuZXcgYmFzZXRlbXAiLCB0KQot
ICAgICAgICAgICAgcmV0dXJuIHQKLQotICAgIGRlZiBmaW5pc2goc2VsZik6Ci0gICAgICAgIHNl
bGYudHJhY2UoImZpbmlzaCIpCisgICAgICAgICIiImJhY2t3YXJkIGNvbXBhdCB3cmFwcGVyIGZv
ciBgYF90bXBwYXRoX2ZhY3RvcnkuZ2V0YmFzZXRlbXBgYCIiIgorICAgICAgICByZXR1cm4gcHku
cGF0aC5sb2NhbChzZWxmLl90bXBwYXRoX2ZhY3RvcnkuZ2V0YmFzZXRlbXAoKS5yZXNvbHZlKCkp
CiAKIAogZGVmIGdldF91c2VyKCk6CkBAIC04NywxMCArMTMwLDYgQEAgZGVmIGdldF91c2VyKCk6
CiAgICAgICAgIHJldHVybiBOb25lCiAKIAotIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Ci1UZW1w
ZGlySGFuZGxlciA9IFRlbXBkaXJGYWN0b3J5Ci0KLQogZGVmIHB5dGVzdF9jb25maWd1cmUoY29u
ZmlnKToKICAgICAiIiJDcmVhdGUgYSBUZW1wZGlyRmFjdG9yeSBhbmQgYXR0YWNoIGl0IHRvIHRo
ZSBjb25maWcgb2JqZWN0LgogCkBAIC05OSwyMSArMTM4LDM4IEBAIGRlZiBweXRlc3RfY29uZmln
dXJlKGNvbmZpZyk6CiAgICAgdG8gdGhlIHRtcGRpcl9mYWN0b3J5IHNlc3Npb24gZml4dHVyZS4K
ICAgICAiIiIKICAgICBtcCA9IE1vbmtleVBhdGNoKCkKLSAgICB0ID0gVGVtcGRpckZhY3Rvcnko
Y29uZmlnKQotICAgIGNvbmZpZy5fY2xlYW51cC5leHRlbmQoW21wLnVuZG8sIHQuZmluaXNoXSkK
KyAgICB0bXBwYXRoX2hhbmRsZXIgPSBUZW1wUGF0aEZhY3RvcnkuZnJvbV9jb25maWcoY29uZmln
KQorICAgIHQgPSBUZW1wZGlyRmFjdG9yeSh0bXBwYXRoX2hhbmRsZXIpCisgICAgY29uZmlnLl9j
bGVhbnVwLmFwcGVuZChtcC51bmRvKQorICAgIG1wLnNldGF0dHIoY29uZmlnLCAiX3RtcF9wYXRo
X2ZhY3RvcnkiLCB0bXBwYXRoX2hhbmRsZXIsIHJhaXNpbmc9RmFsc2UpCiAgICAgbXAuc2V0YXR0
cihjb25maWcsICJfdG1wZGlyaGFuZGxlciIsIHQsIHJhaXNpbmc9RmFsc2UpCiAgICAgbXAuc2V0
YXR0cihweXRlc3QsICJlbnN1cmV0ZW1wIiwgdC5lbnN1cmV0ZW1wLCByYWlzaW5nPUZhbHNlKQog
CiAKIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCiBkZWYgdG1wZGlyX2ZhY3Rvcnko
cmVxdWVzdCk6Ci0gICAgIiIiUmV0dXJuIGEgVGVtcGRpckZhY3RvcnkgaW5zdGFuY2UgZm9yIHRo
ZSB0ZXN0IHNlc3Npb24uCisgICAgIiIiUmV0dXJuIGEgOmNsYXNzOmBfcHl0ZXN0LnRtcGRpci5U
ZW1wZGlyRmFjdG9yeWAgaW5zdGFuY2UgZm9yIHRoZSB0ZXN0IHNlc3Npb24uCiAgICAgIiIiCiAg
ICAgcmV0dXJuIHJlcXVlc3QuY29uZmlnLl90bXBkaXJoYW5kbGVyCiAKIAorQHB5dGVzdC5maXh0
dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiB0bXBfcGF0aF9mYWN0b3J5KHJlcXVlc3QpOgorICAg
ICIiIlJldHVybiBhIDpjbGFzczpgX3B5dGVzdC50bXBkaXIuVGVtcFBhdGhGYWN0b3J5YCBpbnN0
YW5jZSBmb3IgdGhlIHRlc3Qgc2Vzc2lvbi4KKyAgICAiIiIKKyAgICByZXR1cm4gcmVxdWVzdC5j
b25maWcuX3RtcF9wYXRoX2ZhY3RvcnkKKworCitkZWYgX21rX3RtcChyZXF1ZXN0LCBmYWN0b3J5
KToKKyAgICBuYW1lID0gcmVxdWVzdC5ub2RlLm5hbWUKKyAgICBuYW1lID0gcmUuc3ViKHIiW1xX
XSIsICJfIiwgbmFtZSkKKyAgICBNQVhWQUwgPSAzMAorICAgIG5hbWUgPSBuYW1lWzpNQVhWQUxd
CisgICAgcmV0dXJuIGZhY3RvcnkubWt0ZW1wKG5hbWUsIG51bWJlcmVkPVRydWUpCisKKwogQHB5
dGVzdC5maXh0dXJlCi1kZWYgdG1wZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5KToKK2RlZiB0
bXBkaXIodG1wX3BhdGgpOgogICAgICIiIlJldHVybiBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0
aCBvYmplY3QKICAgICB3aGljaCBpcyB1bmlxdWUgdG8gZWFjaCB0ZXN0IGZ1bmN0aW9uIGludm9j
YXRpb24sCiAgICAgY3JlYXRlZCBhcyBhIHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGJhc2UgdGVtcG9y
YXJ5CkBAIC0xMjIsMTAgKzE3OCwyMCBAQCBkZWYgdG1wZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0
b3J5KToKIAogICAgIC4uIF9gcHkucGF0aC5sb2NhbGA6IGh0dHBzOi8vcHkucmVhZHRoZWRvY3Mu
aW8vZW4vbGF0ZXN0L3BhdGguaHRtbAogICAgICIiIgotICAgIG5hbWUgPSByZXF1ZXN0Lm5vZGUu
bmFtZQotICAgIG5hbWUgPSByZS5zdWIociJbXFddIiwgIl8iLCBuYW1lKQotICAgIE1BWFZBTCA9
IDMwCi0gICAgaWYgbGVuKG5hbWUpID4gTUFYVkFMOgotICAgICAgICBuYW1lID0gbmFtZVs6TUFY
VkFMXQotICAgIHggPSB0bXBkaXJfZmFjdG9yeS5ta3RlbXAobmFtZSwgbnVtYmVyZWQ9VHJ1ZSkK
LSAgICByZXR1cm4geAorICAgIHJldHVybiBweS5wYXRoLmxvY2FsKHRtcF9wYXRoKQorCisKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIHRtcF9wYXRoKHJlcXVlc3QsIHRtcF9wYXRoX2ZhY3RvcnkpOgor
ICAgICIiIlJldHVybiBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aCBvYmplY3QKKyAgICB3aGlj
aCBpcyB1bmlxdWUgdG8gZWFjaCB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb24sCisgICAgY3JlYXRl
ZCBhcyBhIHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGJhc2UgdGVtcG9yYXJ5CisgICAgZGlyZWN0b3J5
LiAgVGhlIHJldHVybmVkIG9iamVjdCBpcyBhIDpjbGFzczpgcGF0aGxpYi5QYXRoYAorICAgIG9i
amVjdC4KKworICAgIC4uIG5vdGU6OgorCisgICAgICAgIGluIHB5dGhvbiA8IDMuNiB0aGlzIGlz
IGEgcGF0aGxpYjIuUGF0aAorICAgICIiIgorCisgICAgcmV0dXJuIF9ta190bXAocmVxdWVzdCwg
dG1wX3BhdGhfZmFjdG9yeSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3Vu
aXR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdW5pdHRlc3QucHkKaW5kZXggNmFk
OWZkYTg4NzA1MjVhNzA4NjhmMjJkYWRhNDQ1YTMzNzkwZjFhOC4uM2ZmNmY0NWQ4ZGJlNzgzMDBl
ZjYxMDUzMTIyMjM0NTZmOTYyZWFjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvdW5pdHRlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdW5pdHRlc3QucHkK
QEAgLTEsMTQgKzEsMjEgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIgZGlzY292ZXJ5
IGFuZCBydW5uaW5nIG9mIHN0ZC1saWJyYXJ5ICJ1bml0dGVzdCIgc3R5bGUgdGVzdHMuICIiIgot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9m
dW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19m
dXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVu
Y3Rpb24KIAogaW1wb3J0IHN5cwogaW1wb3J0IHRyYWNlYmFjawogCi0jIGZvciB0cmFuc2ZlcnJp
bmcgbWFya2VycwogaW1wb3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5
dGVzdC5jb21wYXQgaW1wb3J0IGdldGltZnVuYwogZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQg
aG9va2ltcGwKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbCwgc2tpcCwgeGZhaWwK
LWZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IHRyYW5zZmVyX21hcmtlcnMsIENsYXNzLCBNb2R1
bGUsIEZ1bmN0aW9uCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwKK2Zyb20gX3B5
dGVzdC5vdXRjb21lcyBpbXBvcnQgc2tpcAorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCB4
ZmFpbAorZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgQ2xhc3MKK2Zyb20gX3B5dGVzdC5weXRo
b24gaW1wb3J0IEZ1bmN0aW9uCiAKIAogZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oY29s
bGVjdG9yLCBuYW1lLCBvYmopOgpAQCAtMjcsMzQgKzM0LDI2IEBAIGNsYXNzIFVuaXRUZXN0Q2Fz
ZShDbGFzcyk6CiAgICAgIyB0byBkZWNsYXJlIHRoYXQgb3VyIGNoaWxkcmVuIGRvIG5vdCBzdXBw
b3J0IGZ1bmNhcmdzCiAgICAgbm9mdW5jYXJncyA9IFRydWUKIAotICAgIGRlZiBzZXR1cChzZWxm
KToKLSAgICAgICAgY2xzID0gc2VsZi5vYmoKLSAgICAgICAgaWYgZ2V0YXR0cihjbHMsICJfX3Vu
aXR0ZXN0X3NraXBfXyIsIEZhbHNlKToKLSAgICAgICAgICAgIHJldHVybiAgIyBza2lwcGVkCi0g
ICAgICAgIHNldHVwID0gZ2V0YXR0cihjbHMsICJzZXRVcENsYXNzIiwgTm9uZSkKLSAgICAgICAg
aWYgc2V0dXAgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZXR1cCgpCi0gICAgICAgIHRlYXJk
b3duID0gZ2V0YXR0cihjbHMsICJ0ZWFyRG93bkNsYXNzIiwgTm9uZSkKLSAgICAgICAgaWYgdGVh
cmRvd24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmFkZGZpbmFsaXplcih0ZWFyZG93
bikKLSAgICAgICAgc3VwZXIoVW5pdFRlc3RDYXNlLCBzZWxmKS5zZXR1cCgpCi0KICAgICBkZWYg
Y29sbGVjdChzZWxmKToKICAgICAgICAgZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdExvYWRlcgog
CiAgICAgICAgIGNscyA9IHNlbGYub2JqCiAgICAgICAgIGlmIG5vdCBnZXRhdHRyKGNscywgIl9f
dGVzdF9fIiwgVHJ1ZSk6CiAgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBza2lwcGVkID0g
Z2V0YXR0cihjbHMsICJfX3VuaXR0ZXN0X3NraXBfXyIsIEZhbHNlKQorICAgICAgICBpZiBub3Qg
c2tpcHBlZDoKKyAgICAgICAgICAgIHNlbGYuX2luamVjdF9zZXR1cF90ZWFyZG93bl9maXh0dXJl
cyhjbHMpCisgICAgICAgICAgICBzZWxmLl9pbmplY3Rfc2V0dXBfY2xhc3NfZml4dHVyZSgpCisK
ICAgICAgICAgc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlci5wYXJzZWZhY3RvcmllcyhzZWxm
LCB1bml0dGVzdD1UcnVlKQogICAgICAgICBsb2FkZXIgPSBUZXN0TG9hZGVyKCkKLSAgICAgICAg
bW9kdWxlID0gc2VsZi5nZXRwYXJlbnQoTW9kdWxlKS5vYmoKICAgICAgICAgZm91bmRzb21ldGhp
bmcgPSBGYWxzZQogICAgICAgICBmb3IgbmFtZSBpbiBsb2FkZXIuZ2V0VGVzdENhc2VOYW1lcyhz
ZWxmLm9iaik6CiAgICAgICAgICAgICB4ID0gZ2V0YXR0cihzZWxmLm9iaiwgbmFtZSkKICAgICAg
ICAgICAgIGlmIG5vdCBnZXRhdHRyKHgsICJfX3Rlc3RfXyIsIFRydWUpOgogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBmdW5jb2JqID0gZ2V0YXR0cih4LCAiaW1fZnVuYyIs
IHgpCi0gICAgICAgICAgICB0cmFuc2Zlcl9tYXJrZXJzKGZ1bmNvYmosIGNscywgbW9kdWxlKQor
ICAgICAgICAgICAgZnVuY29iaiA9IGdldGltZnVuYyh4KQogICAgICAgICAgICAgeWllbGQgVGVz
dENhc2VGdW5jdGlvbihuYW1lLCBwYXJlbnQ9c2VsZiwgY2FsbG9iaj1mdW5jb2JqKQogICAgICAg
ICAgICAgZm91bmRzb21ldGhpbmcgPSBUcnVlCiAKQEAgLTY1LDE3ICs2NCw1NyBAQCBjbGFzcyBV
bml0VGVzdENhc2UoQ2xhc3MpOgogICAgICAgICAgICAgICAgIGlmIHV0IGlzIE5vbmUgb3IgcnVu
dGVzdCAhPSB1dC5UZXN0Q2FzZS5ydW5UZXN0OgogICAgICAgICAgICAgICAgICAgICB5aWVsZCBU
ZXN0Q2FzZUZ1bmN0aW9uKCJydW5UZXN0IiwgcGFyZW50PXNlbGYpCiAKKyAgICBkZWYgX2luamVj
dF9zZXR1cF90ZWFyZG93bl9maXh0dXJlcyhzZWxmLCBjbHMpOgorICAgICAgICAiIiJJbmplY3Rz
IGEgaGlkZGVuIGF1dG8tdXNlIGZpeHR1cmUgdG8gaW52b2tlIHNldFVwQ2xhc3Mvc2V0dXBfbWV0
aG9kIGFuZCBjb3JyZXNwb25kaW5nCisgICAgICAgIHRlYXJkb3duIGZ1bmN0aW9ucyAoIzUxNyki
IiIKKyAgICAgICAgY2xhc3NfZml4dHVyZSA9IF9tYWtlX3h1bml0X2ZpeHR1cmUoCisgICAgICAg
ICAgICBjbHMsICJzZXRVcENsYXNzIiwgInRlYXJEb3duQ2xhc3MiLCBzY29wZT0iY2xhc3MiLCBw
YXNzX3NlbGY9RmFsc2UKKyAgICAgICAgKQorICAgICAgICBpZiBjbGFzc19maXh0dXJlOgorICAg
ICAgICAgICAgY2xzLl9fcHl0ZXN0X2NsYXNzX3NldHVwID0gY2xhc3NfZml4dHVyZQorCisgICAg
ICAgIG1ldGhvZF9maXh0dXJlID0gX21ha2VfeHVuaXRfZml4dHVyZSgKKyAgICAgICAgICAgIGNs
cywgInNldHVwX21ldGhvZCIsICJ0ZWFyZG93bl9tZXRob2QiLCBzY29wZT0iZnVuY3Rpb24iLCBw
YXNzX3NlbGY9VHJ1ZQorICAgICAgICApCisgICAgICAgIGlmIG1ldGhvZF9maXh0dXJlOgorICAg
ICAgICAgICAgY2xzLl9fcHl0ZXN0X21ldGhvZF9zZXR1cCA9IG1ldGhvZF9maXh0dXJlCisKKwor
ZGVmIF9tYWtlX3h1bml0X2ZpeHR1cmUob2JqLCBzZXR1cF9uYW1lLCB0ZWFyZG93bl9uYW1lLCBz
Y29wZSwgcGFzc19zZWxmKToKKyAgICBzZXR1cCA9IGdldGF0dHIob2JqLCBzZXR1cF9uYW1lLCBO
b25lKQorICAgIHRlYXJkb3duID0gZ2V0YXR0cihvYmosIHRlYXJkb3duX25hbWUsIE5vbmUpCisg
ICAgaWYgc2V0dXAgaXMgTm9uZSBhbmQgdGVhcmRvd24gaXMgTm9uZToKKyAgICAgICAgcmV0dXJu
IE5vbmUKKworICAgIEBweXRlc3QuZml4dHVyZShzY29wZT1zY29wZSwgYXV0b3VzZT1UcnVlKQor
ICAgIGRlZiBmaXh0dXJlKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICBpZiBnZXRhdHRyKHNlbGYs
ICJfX3VuaXR0ZXN0X3NraXBfXyIsIE5vbmUpOgorICAgICAgICAgICAgcmVhc29uID0gc2VsZi5f
X3VuaXR0ZXN0X3NraXBfd2h5X18KKyAgICAgICAgICAgIHB5dGVzdC5za2lwKHJlYXNvbikKKyAg
ICAgICAgaWYgc2V0dXAgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBwYXNzX3NlbGY6Cisg
ICAgICAgICAgICAgICAgc2V0dXAoc2VsZiwgcmVxdWVzdC5mdW5jdGlvbikKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgc2V0dXAoKQorICAgICAgICB5aWVsZAorICAgICAgICBp
ZiB0ZWFyZG93biBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIHBhc3Nfc2VsZjoKKyAgICAg
ICAgICAgICAgICB0ZWFyZG93bihzZWxmLCByZXF1ZXN0LmZ1bmN0aW9uKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICB0ZWFyZG93bigpCisKKyAgICByZXR1cm4gZml4dHVyZQor
CiAKIGNsYXNzIFRlc3RDYXNlRnVuY3Rpb24oRnVuY3Rpb24pOgogICAgIG5vZnVuY2FyZ3MgPSBU
cnVlCiAgICAgX2V4Y2luZm8gPSBOb25lCisgICAgX3Rlc3RjYXNlID0gTm9uZQogCiAgICAgZGVm
IHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLl90ZXN0Y2FzZSA9IHNlbGYucGFyZW50Lm9iaihz
ZWxmLm5hbWUpCiAgICAgICAgIHNlbGYuX2ZpeF91bml0dGVzdF9za2lwX2RlY29yYXRvcigpCiAg
ICAgICAgIHNlbGYuX29iaiA9IGdldGF0dHIoc2VsZi5fdGVzdGNhc2UsIHNlbGYubmFtZSkKLSAg
ICAgICAgaWYgaGFzYXR0cihzZWxmLl90ZXN0Y2FzZSwgInNldHVwX21ldGhvZCIpOgotICAgICAg
ICAgICAgc2VsZi5fdGVzdGNhc2Uuc2V0dXBfbWV0aG9kKHNlbGYuX29iaikKICAgICAgICAgaWYg
aGFzYXR0cihzZWxmLCAiX3JlcXVlc3QiKToKICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuX2Zp
bGxmaXh0dXJlcygpCiAKQEAgLTkzLDkgKzEzMiw2IEBAIGNsYXNzIFRlc3RDYXNlRnVuY3Rpb24o
RnVuY3Rpb24pOgogICAgICAgICAgICAgc2V0YXR0cihzZWxmLl90ZXN0Y2FzZSwgIl9fbmFtZV9f
Iiwgc2VsZi5uYW1lKQogCiAgICAgZGVmIHRlYXJkb3duKHNlbGYpOgotICAgICAgICBpZiBoYXNh
dHRyKHNlbGYuX3Rlc3RjYXNlLCAidGVhcmRvd25fbWV0aG9kIik6Ci0gICAgICAgICAgICBzZWxm
Ll90ZXN0Y2FzZS50ZWFyZG93bl9tZXRob2Qoc2VsZi5fb2JqKQotICAgICAgICAjIEFsbG93IGdh
cmJhZ2UgY29sbGVjdGlvbiBvbiBUZXN0Q2FzZSBpbnN0YW5jZSBhdHRyaWJ1dGVzLgogICAgICAg
ICBzZWxmLl90ZXN0Y2FzZSA9IE5vbmUKICAgICAgICAgc2VsZi5fb2JqID0gTm9uZQogCkBAIC0x
MDcsNiArMTQzLDEwIEBAIGNsYXNzIFRlc3RDYXNlRnVuY3Rpb24oRnVuY3Rpb24pOgogICAgICAg
ICByYXdleGNpbmZvID0gZ2V0YXR0cihyYXdleGNpbmZvLCAiX3Jhd2V4Y2luZm8iLCByYXdleGNp
bmZvKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5F
eGNlcHRpb25JbmZvKHJhd2V4Y2luZm8pCisgICAgICAgICAgICAjIGludm9rZSB0aGUgYXR0cmli
dXRlcyB0byB0cmlnZ2VyIHN0b3JpbmcgdGhlIHRyYWNlYmFjaworICAgICAgICAgICAgIyB0cmlh
bCBjYXVzZXMgc29tZSBpc3N1ZSB0aGVyZQorICAgICAgICAgICAgZXhjaW5mby52YWx1ZQorICAg
ICAgICAgICAgZXhjaW5mby50cmFjZWJhY2sKICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKICAg
ICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB0cnk6CkBAIC0xMjgsNyArMTY4LDcgQEAg
Y2xhc3MgVGVzdENhc2VGdW5jdGlvbihGdW5jdGlvbik6CiAgICAgICAgICAgICBleGNlcHQgS2V5
Ym9hcmRJbnRlcnJ1cHQ6CiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGV4Y2Vw
dCBmYWlsLkV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29k
ZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29k
ZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCiAgICAgICAgIHNlbGYuX19kaWN0X18uc2V0
ZGVmYXVsdCgiX2V4Y2luZm8iLCBbXSkuYXBwZW5kKGV4Y2luZm8pCiAKICAgICBkZWYgYWRkRXJy
b3Ioc2VsZiwgdGVzdGNhc2UsIHJhd2V4Y2luZm8pOgpAQCAtMTYzLDE1ICsyMDMsMTMgQEAgY2xh
c3MgVGVzdENhc2VGdW5jdGlvbihGdW5jdGlvbik6CiAgICAgICAgICMgaW1wbGVtZW50cyB0aGUg
c2tpcHBpbmcgbWFjaGluZXJ5IChzZWUgIzIxMzcpCiAgICAgICAgICMgYW5hbG9nIHRvIHB5dGhv
bnMgTGliL3VuaXR0ZXN0L2Nhc2UucHk6cnVuCiAgICAgICAgIHRlc3RNZXRob2QgPSBnZXRhdHRy
KHNlbGYuX3Rlc3RjYXNlLCBzZWxmLl90ZXN0Y2FzZS5fdGVzdE1ldGhvZE5hbWUpCi0gICAgICAg
IGlmICgKLSAgICAgICAgICAgIGdldGF0dHIoc2VsZi5fdGVzdGNhc2UuX19jbGFzc19fLCAiX191
bml0dGVzdF9za2lwX18iLCBGYWxzZSkKLSAgICAgICAgICAgIG9yIGdldGF0dHIodGVzdE1ldGhv
ZCwgIl9fdW5pdHRlc3Rfc2tpcF9fIiwgRmFsc2UpCisgICAgICAgIGlmIGdldGF0dHIoc2VsZi5f
dGVzdGNhc2UuX19jbGFzc19fLCAiX191bml0dGVzdF9za2lwX18iLCBGYWxzZSkgb3IgZ2V0YXR0
cigKKyAgICAgICAgICAgIHRlc3RNZXRob2QsICJfX3VuaXR0ZXN0X3NraXBfXyIsIEZhbHNlCiAg
ICAgICAgICk6CiAgICAgICAgICAgICAjIElmIHRoZSBjbGFzcyBvciBtZXRob2Qgd2FzIHNraXBw
ZWQuCi0gICAgICAgICAgICBza2lwX3doeSA9ICgKLSAgICAgICAgICAgICAgICBnZXRhdHRyKHNl
bGYuX3Rlc3RjYXNlLl9fY2xhc3NfXywgIl9fdW5pdHRlc3Rfc2tpcF93aHlfXyIsICIiKQotICAg
ICAgICAgICAgICAgIG9yIGdldGF0dHIodGVzdE1ldGhvZCwgIl9fdW5pdHRlc3Rfc2tpcF93aHlf
XyIsICIiKQotICAgICAgICAgICAgKQorICAgICAgICAgICAgc2tpcF93aHkgPSBnZXRhdHRyKAor
ICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RjYXNlLl9fY2xhc3NfXywgIl9fdW5pdHRlc3Rfc2tp
cF93aHlfXyIsICIiCisgICAgICAgICAgICApIG9yIGdldGF0dHIodGVzdE1ldGhvZCwgIl9fdW5p
dHRlc3Rfc2tpcF93aHlfXyIsICIiKQogICAgICAgICAgICAgdHJ5OiAgIyBQWTMsIHVuaXR0ZXN0
MiBvbiBQWTIKICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0Y2FzZS5fYWRkU2tpcChzZWxmLCBz
ZWxmLl90ZXN0Y2FzZSwgc2tpcF93aHkpCiAgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOiAg
IyBQWTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdzNjLWltcG9ydC5sb2cKaW5kZXggOWIzMmI5NTNh
OGMzYjBmNzUyYWY4NWE3MTM0OGM3NzRhMzJiOGZhMC4uMjNmZGYxNGU1MDljOGFhMDZlMTVlN2E0
MGNiYTFjMzI1OTJlZTcwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdzNj
LWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdzNjLWltcG9ydC5sb2cK
QEAgLTM0LDE2ICszNCwyMCBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L25vc2UucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9vdXRjb21lcy5weQogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L3Bhc3RlYmluLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
cGF0aGxpYi5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3B5dGVzdGVyLnB5CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3QvcHl0aG9uLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcHl0
aG9uX2FwaS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3JlY3dhcm4ucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC9yZXBvcnRzLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcmVz
dWx0bG9nLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcnVubmVyLnB5CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3Qvc2V0dXBvbmx5LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2V0
dXBwbGFuLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2tpcHBpbmcucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC9zdGVwd2lzZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3Rl
cm1pbmFsLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdG1wZGlyLnB5CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvdW5pdHRlc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC93YXJu
aW5nX3R5cGVzLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvd2FybmluZ3MucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3dhcm5pbmdfdHlwZXMucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5nX3R5cGVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2MTAxMGExMjc1
ZDYyY2ZlMzM1N2E5NjYzZDM1ZTkwMTgxZjU3NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5nX3R5cGVzLnB5CkBAIC0wLDAgKzEsMTEyIEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IGF0dHIKKworCitjbGFzcyBQeXRlc3RXYXJuaW5n
KFVzZXJXYXJuaW5nKToKKyAgICAiIiIKKyAgICBCYXNlczogOmNsYXNzOmBVc2VyV2FybmluZ2Au
CisKKyAgICBCYXNlIGNsYXNzIGZvciBhbGwgd2FybmluZ3MgZW1pdHRlZCBieSBweXRlc3QuCisg
ICAgIiIiCisKKworY2xhc3MgUHl0ZXN0QXNzZXJ0UmV3cml0ZVdhcm5pbmcoUHl0ZXN0V2Fybmlu
Zyk6CisgICAgIiIiCisgICAgQmFzZXM6IDpjbGFzczpgUHl0ZXN0V2FybmluZ2AuCisKKyAgICBX
YXJuaW5nIGVtaXR0ZWQgYnkgdGhlIHB5dGVzdCBhc3NlcnQgcmV3cml0ZSBtb2R1bGUuCisgICAg
IiIiCisKKworY2xhc3MgUHl0ZXN0Q2FjaGVXYXJuaW5nKFB5dGVzdFdhcm5pbmcpOgorICAgICIi
IgorICAgIEJhc2VzOiA6Y2xhc3M6YFB5dGVzdFdhcm5pbmdgLgorCisgICAgV2FybmluZyBlbWl0
dGVkIGJ5IHRoZSBjYWNoZSBwbHVnaW4gaW4gdmFyaW91cyBzaXR1YXRpb25zLgorICAgICIiIgor
CisKK2NsYXNzIFB5dGVzdENvbmZpZ1dhcm5pbmcoUHl0ZXN0V2FybmluZyk6CisgICAgIiIiCisg
ICAgQmFzZXM6IDpjbGFzczpgUHl0ZXN0V2FybmluZ2AuCisKKyAgICBXYXJuaW5nIGVtaXR0ZWQg
Zm9yIGNvbmZpZ3VyYXRpb24gaXNzdWVzLgorICAgICIiIgorCisKK2NsYXNzIFB5dGVzdENvbGxl
Y3Rpb25XYXJuaW5nKFB5dGVzdFdhcm5pbmcpOgorICAgICIiIgorICAgIEJhc2VzOiA6Y2xhc3M6
YFB5dGVzdFdhcm5pbmdgLgorCisgICAgV2FybmluZyBlbWl0dGVkIHdoZW4gcHl0ZXN0IGlzIG5v
dCBhYmxlIHRvIGNvbGxlY3QgYSBmaWxlIG9yIHN5bWJvbCBpbiBhIG1vZHVsZS4KKyAgICAiIiIK
KworCitjbGFzcyBQeXRlc3REZXByZWNhdGlvbldhcm5pbmcoUHl0ZXN0V2FybmluZywgRGVwcmVj
YXRpb25XYXJuaW5nKToKKyAgICAiIiIKKyAgICBCYXNlczogOmNsYXNzOmBweXRlc3QuUHl0ZXN0
V2FybmluZ2AsIDpjbGFzczpgRGVwcmVjYXRpb25XYXJuaW5nYC4KKworICAgIFdhcm5pbmcgY2xh
c3MgZm9yIGZlYXR1cmVzIHRoYXQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24u
CisgICAgIiIiCisKKworY2xhc3MgUHl0ZXN0RXhwZXJpbWVudGFsQXBpV2FybmluZyhQeXRlc3RX
YXJuaW5nLCBGdXR1cmVXYXJuaW5nKToKKyAgICAiIiIKKyAgICBCYXNlczogOmNsYXNzOmBweXRl
c3QuUHl0ZXN0V2FybmluZ2AsIDpjbGFzczpgRnV0dXJlV2FybmluZ2AuCisKKyAgICBXYXJuaW5n
IGNhdGVnb3J5IHVzZWQgdG8gZGVub3RlIGV4cGVyaW1lbnRzIGluIHB5dGVzdC4gVXNlIHNwYXJp
bmdseSBhcyB0aGUgQVBJIG1pZ2h0IGNoYW5nZSBvciBldmVuIGJlCisgICAgcmVtb3ZlZCBjb21w
bGV0ZWx5IGluIGZ1dHVyZSB2ZXJzaW9uCisgICAgIiIiCisKKyAgICBAY2xhc3NtZXRob2QKKyAg
ICBkZWYgc2ltcGxlKGNscywgYXBpbmFtZSk6CisgICAgICAgIHJldHVybiBjbHMoCisgICAgICAg
ICAgICAie2FwaW5hbWV9IGlzIGFuIGV4cGVyaW1lbnRhbCBhcGkgdGhhdCBtYXkgY2hhbmdlIG92
ZXIgdGltZSIuZm9ybWF0KAorICAgICAgICAgICAgICAgIGFwaW5hbWU9YXBpbmFtZQorICAgICAg
ICAgICAgKQorICAgICAgICApCisKKworY2xhc3MgUHl0ZXN0VW5oYW5kbGVkQ29yb3V0aW5lV2Fy
bmluZyhQeXRlc3RXYXJuaW5nKToKKyAgICAiIiIKKyAgICBCYXNlczogOmNsYXNzOmBQeXRlc3RX
YXJuaW5nYC4KKworICAgIFdhcm5pbmcgZW1pdHRlZCB3aGVuIHB5dGVzdCBlbmNvdW50ZXJzIGEg
dGVzdCBmdW5jdGlvbiB3aGljaCBpcyBhIGNvcm91dGluZSwKKyAgICBidXQgaXQgd2FzIG5vdCBo
YW5kbGVkIGJ5IGFueSBhc3luYy1hd2FyZSBwbHVnaW4uIENvcm91dGluZSB0ZXN0IGZ1bmN0aW9u
cworICAgIGFyZSBub3QgbmF0aXZlbHkgc3VwcG9ydGVkLgorICAgICIiIgorCisKK2NsYXNzIFB5
dGVzdFVua25vd25NYXJrV2FybmluZyhQeXRlc3RXYXJuaW5nKToKKyAgICAiIiIKKyAgICBCYXNl
czogOmNsYXNzOmBQeXRlc3RXYXJuaW5nYC4KKworICAgIFdhcm5pbmcgZW1pdHRlZCBvbiB1c2Ug
b2YgdW5rbm93biBtYXJrZXJzLgorICAgIFNlZSBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3QvbWFyay5odG1sIGZvciBkZXRhaWxzLgorICAgICIiIgorCisKK2NsYXNzIFJlbW92ZWRJ
blB5dGVzdDRXYXJuaW5nKFB5dGVzdERlcHJlY2F0aW9uV2FybmluZyk6CisgICAgIiIiCisgICAg
QmFzZXM6IDpjbGFzczpgcHl0ZXN0LlB5dGVzdERlcHJlY2F0aW9uV2FybmluZ2AuCisKKyAgICBX
YXJuaW5nIGNsYXNzIGZvciBmZWF0dXJlcyBzY2hlZHVsZWQgdG8gYmUgcmVtb3ZlZCBpbiBweXRl
c3QgNC4wLgorICAgICIiIgorCisKK0BhdHRyLnMKK2NsYXNzIFVuZm9ybWF0dGVkV2FybmluZyhv
YmplY3QpOgorICAgICIiIlVzZWQgdG8gaG9sZCB3YXJuaW5ncyB0aGF0IG5lZWQgdG8gZm9ybWF0
IHRoZWlyIG1lc3NhZ2UgYXQgcnVudGltZSwgYXMgb3Bwb3NlZCB0byBhIGRpcmVjdCBtZXNzYWdl
LgorCisgICAgVXNpbmcgdGhpcyBjbGFzcyBhdm9pZHMgdG8ga2VlcCBhbGwgdGhlIHdhcm5pbmcg
dHlwZXMgYW5kIG1lc3NhZ2VzIGluIHRoaXMgbW9kdWxlLCBhdm9pZGluZyBtaXN1c2UuCisgICAg
IiIiCisKKyAgICBjYXRlZ29yeSA9IGF0dHIuaWIoKQorICAgIHRlbXBsYXRlID0gYXR0ci5pYigp
CisKKyAgICBkZWYgZm9ybWF0KHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgIiIiUmV0dXJucyBh
biBpbnN0YW5jZSBvZiB0aGUgd2FybmluZyBjYXRlZ29yeSwgZm9ybWF0dGVkIHdpdGggZ2l2ZW4g
a3dhcmdzIiIiCisgICAgICAgIHJldHVybiBzZWxmLmNhdGVnb3J5KHNlbGYudGVtcGxhdGUuZm9y
bWF0KCoqa3dhcmdzKSkKKworCitQWVRFU1RFUl9DT1BZX0VYQU1QTEUgPSBQeXRlc3RFeHBlcmlt
ZW50YWxBcGlXYXJuaW5nLnNpbXBsZSgidGVzdGRpci5jb3B5X2V4YW1wbGUiKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvd2FybmluZ3MucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC93YXJuaW5ncy5weQppbmRleCBlMDIzZDBhYjQ5MWJkZDk2NmMyZWNlNWU3YzQ4MjE2
ZmJlM2UwZjEzLi5hM2RlYmFlNDYyZmMxNDllNzQ3ODhiYzVjZGYzYzAyNzZjOWRmMDdhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5ncy5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5ncy5weQpAQCAtMSwxMiArMSwxNyBAQAotZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgor
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18g
aW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKK2ltcG9ydCBzeXMKIGltcG9ydCB3YXJuaW5ncwogZnJv
bSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcgogCiBpbXBvcnQgcHl0ZXN0Ci0KIGZy
b20gX3B5dGVzdCBpbXBvcnQgY29tcGF0CiAKK1NIT1dfUFlURVNUX1dBUk5JTkdTX0FSRyA9ICIt
V2Fsd2F5czo6cHl0ZXN0LlJlbW92ZWRJblB5dGVzdDRXYXJuaW5nIgorCiAKIGRlZiBfc2V0b3B0
aW9uKHdtb2QsIGFyZyk6CiAgICAgIiIiCkBAIC00OSw2NCArNTQsMTI3IEBAIGRlZiBweXRlc3Rf
YWRkb3B0aW9uKHBhcnNlcik6CiAgICAgKQogCiAKK2RlZiBweXRlc3RfY29uZmlndXJlKGNvbmZp
Zyk6CisgICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoCisgICAgICAgICJtYXJrZXJzIiwKKyAg
ICAgICAgImZpbHRlcndhcm5pbmdzKHdhcm5pbmcpOiBhZGQgYSB3YXJuaW5nIGZpbHRlciB0byB0
aGUgZ2l2ZW4gdGVzdC4gIgorICAgICAgICAic2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2Vu
L2xhdGVzdC93YXJuaW5ncy5odG1sI3B5dGVzdC1tYXJrLWZpbHRlcndhcm5pbmdzICIsCisgICAg
KQorCisKIEBjb250ZXh0bWFuYWdlcgotZGVmIGNhdGNoX3dhcm5pbmdzX2Zvcl9pdGVtKGl0ZW0p
OgorZGVmIGNhdGNoX3dhcm5pbmdzX2Zvcl9pdGVtKGNvbmZpZywgaWhvb2ssIHdoZW4sIGl0ZW0p
OgogICAgICIiIgotICAgIGNhdGNoZXMgdGhlIHdhcm5pbmdzIGdlbmVyYXRlZCBkdXJpbmcgc2V0
dXAvY2FsbC90ZWFyZG93biBleGVjdXRpb24KLSAgICBvZiB0aGUgZ2l2ZW4gaXRlbSBhbmQgYWZ0
ZXIgaXQgaXMgZG9uZSBwb3N0cyB0aGVtIGFzIHdhcm5pbmdzIHRvIHRoaXMKLSAgICBpdGVtLgor
ICAgIENvbnRleHQgbWFuYWdlciB0aGF0IGNhdGNoZXMgd2FybmluZ3MgZ2VuZXJhdGVkIGluIHRo
ZSBjb250YWluZWQgZXhlY3V0aW9uIGJsb2NrLgorCisgICAgYGBpdGVtYGAgY2FuIGJlIE5vbmUg
aWYgd2UgYXJlIG5vdCBpbiB0aGUgY29udGV4dCBvZiBhbiBpdGVtIGV4ZWN1dGlvbi4KKworICAg
IEVhY2ggd2FybmluZyBjYXB0dXJlZCB0cmlnZ2VycyB0aGUgYGBweXRlc3Rfd2FybmluZ19jYXB0
dXJlZGBgIGhvb2suCiAgICAgIiIiCi0gICAgYXJncyA9IGl0ZW0uY29uZmlnLmdldG9wdGlvbigi
cHl0aG9ud2FybmluZ3MiKSBvciBbXQotICAgIGluaWZpbHRlcnMgPSBpdGVtLmNvbmZpZy5nZXRp
bmkoImZpbHRlcndhcm5pbmdzIikKKyAgICBjbWRsaW5lX2ZpbHRlcnMgPSBjb25maWcuZ2V0b3B0
aW9uKCJweXRob253YXJuaW5ncyIpIG9yIFtdCisgICAgaW5pZmlsdGVycyA9IGNvbmZpZy5nZXRp
bmkoImZpbHRlcndhcm5pbmdzIikKICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKHJl
Y29yZD1UcnVlKSBhcyBsb2c6Ci0gICAgICAgIGZvciBhcmcgaW4gYXJnczoKLSAgICAgICAgICAg
IHdhcm5pbmdzLl9zZXRvcHRpb24oYXJnKQogCisgICAgICAgIGlmIG5vdCBzeXMud2Fybm9wdGlv
bnM6CisgICAgICAgICAgICAjIGlmIHVzZXIgaXMgbm90IGV4cGxpY2l0bHkgY29uZmlndXJpbmcg
d2FybmluZyBmaWx0ZXJzLCBzaG93IGRlcHJlY2F0aW9uIHdhcm5pbmdzIGJ5IGRlZmF1bHQgKCMy
OTA4KQorICAgICAgICAgICAgd2FybmluZ3MuZmlsdGVyd2FybmluZ3MoImFsd2F5cyIsIGNhdGVn
b3J5PURlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgIHdhcm5pbmdzLmZpbHRlcndhcm5p
bmdzKCJhbHdheXMiLCBjYXRlZ29yeT1QZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKQorCisgICAg
ICAgIHdhcm5pbmdzLmZpbHRlcndhcm5pbmdzKCJlcnJvciIsIGNhdGVnb3J5PXB5dGVzdC5SZW1v
dmVkSW5QeXRlc3Q0V2FybmluZykKKworICAgICAgICAjIGZpbHRlcnMgc2hvdWxkIGhhdmUgdGhp
cyBwcmVjZWRlbmNlOiBtYXJrLCBjbWRsaW5lIG9wdGlvbnMsIGluaQorICAgICAgICAjIGZpbHRl
cnMgc2hvdWxkIGJlIGFwcGxpZWQgaW4gdGhlIGludmVyc2Ugb3JkZXIgb2YgcHJlY2VkZW5jZQog
ICAgICAgICBmb3IgYXJnIGluIGluaWZpbHRlcnM6CiAgICAgICAgICAgICBfc2V0b3B0aW9uKHdh
cm5pbmdzLCBhcmcpCiAKLSAgICAgICAgZm9yIG1hcmsgaW4gaXRlbS5pdGVyX21hcmtlcnMobmFt
ZT0iZmlsdGVyd2FybmluZ3MiKToKLSAgICAgICAgICAgIGZvciBhcmcgaW4gbWFyay5hcmdzOgot
ICAgICAgICAgICAgICAgIHdhcm5pbmdzLl9zZXRvcHRpb24oYXJnKQorICAgICAgICBmb3IgYXJn
IGluIGNtZGxpbmVfZmlsdGVyczoKKyAgICAgICAgICAgIHdhcm5pbmdzLl9zZXRvcHRpb24oYXJn
KQorCisgICAgICAgIGlmIGl0ZW0gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmb3IgbWFyayBp
biBpdGVtLml0ZXJfbWFya2VycyhuYW1lPSJmaWx0ZXJ3YXJuaW5ncyIpOgorICAgICAgICAgICAg
ICAgIGZvciBhcmcgaW4gbWFyay5hcmdzOgorICAgICAgICAgICAgICAgICAgICBfc2V0b3B0aW9u
KHdhcm5pbmdzLCBhcmcpCiAKICAgICAgICAgeWllbGQKIAotICAgICAgICBmb3Igd2FybmluZyBp
biBsb2c6Ci0gICAgICAgICAgICB3YXJuX21zZyA9IHdhcm5pbmcubWVzc2FnZQotICAgICAgICAg
ICAgdW5pY29kZV93YXJuaW5nID0gRmFsc2UKLQotICAgICAgICAgICAgaWYgKAotICAgICAgICAg
ICAgICAgIGNvbXBhdC5fUFkyCi0gICAgICAgICAgICAgICAgYW5kIGFueShpc2luc3RhbmNlKG0s
IGNvbXBhdC5VTklDT0RFX1RZUEVTKSBmb3IgbSBpbiB3YXJuX21zZy5hcmdzKQotICAgICAgICAg
ICAgKToKLSAgICAgICAgICAgICAgICBuZXdfYXJncyA9IFtdCi0gICAgICAgICAgICAgICAgZm9y
IG0gaW4gd2Fybl9tc2cuYXJnczoKLSAgICAgICAgICAgICAgICAgICAgbmV3X2FyZ3MuYXBwZW5k
KAotICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0LmFzY2lpX2VzY2FwZWQobSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UobSwgY29tcGF0LlVOSUNPREVfVFlQRVMp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIG0KLSAgICAgICAgICAgICAgICAgICAgKQot
ICAgICAgICAgICAgICAgIHVuaWNvZGVfd2FybmluZyA9IGxpc3Qod2Fybl9tc2cuYXJncykgIT0g
bmV3X2FyZ3MKLSAgICAgICAgICAgICAgICB3YXJuX21zZy5hcmdzID0gbmV3X2FyZ3MKLQotICAg
ICAgICAgICAgbXNnID0gd2FybmluZ3MuZm9ybWF0d2FybmluZygKLSAgICAgICAgICAgICAgICB3
YXJuX21zZywKLSAgICAgICAgICAgICAgICB3YXJuaW5nLmNhdGVnb3J5LAotICAgICAgICAgICAg
ICAgIHdhcm5pbmcuZmlsZW5hbWUsCi0gICAgICAgICAgICAgICAgd2FybmluZy5saW5lbm8sCi0g
ICAgICAgICAgICAgICAgd2FybmluZy5saW5lLAorICAgICAgICBmb3Igd2FybmluZ19tZXNzYWdl
IGluIGxvZzoKKyAgICAgICAgICAgIGlob29rLnB5dGVzdF93YXJuaW5nX2NhcHR1cmVkLmNhbGxf
aGlzdG9yaWMoCisgICAgICAgICAgICAgICAga3dhcmdzPWRpY3Qod2FybmluZ19tZXNzYWdlPXdh
cm5pbmdfbWVzc2FnZSwgd2hlbj13aGVuLCBpdGVtPWl0ZW0pCiAgICAgICAgICAgICApCi0gICAg
ICAgICAgICBpdGVtLndhcm4oInVudXNlZCIsIG1zZykKIAotICAgICAgICAgICAgaWYgdW5pY29k
ZV93YXJuaW5nOgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCi0gICAgICAgICAgICAg
ICAgICAgICJXYXJuaW5nIGlzIHVzaW5nIHVuaWNvZGUgbm9uIGNvbnZlcnRpYmxlIHRvIGFzY2lp
LCAiCi0gICAgICAgICAgICAgICAgICAgICJjb252ZXJ0aW5nIHRvIGEgc2FmZSByZXByZXNlbnRh
dGlvbjpcbiAgJXMiICUgbXNnLAotICAgICAgICAgICAgICAgICAgICBVbmljb2RlV2FybmluZywK
LSAgICAgICAgICAgICAgICApCiAKK2RlZiB3YXJuaW5nX3JlY29yZF90b19zdHIod2FybmluZ19t
ZXNzYWdlKToKKyAgICAiIiJDb252ZXJ0IGEgd2FybmluZ3MuV2FybmluZ01lc3NhZ2UgdG8gYSBz
dHJpbmcuCiAKLUBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBUaGlzIHRh
a2VzIGxvdCBvZiB1bmljb2RlIHNoZW5hbmluZ2FucyBpbnRvIGFjY291bnQgZm9yIFB5dGhvbiAy
LgorICAgIFdoZW4gUHl0aG9uIDIgc3VwcG9ydCBpcyBkcm9wcGVkIHRoaXMgZnVuY3Rpb24gY2Fu
IGJlIGdyZWF0bHkgc2ltcGxpZmllZC4KKyAgICAiIiIKKyAgICB3YXJuX21zZyA9IHdhcm5pbmdf
bWVzc2FnZS5tZXNzYWdlCisgICAgdW5pY29kZV93YXJuaW5nID0gRmFsc2UKKyAgICBpZiBjb21w
YXQuX1BZMiBhbmQgYW55KGlzaW5zdGFuY2UobSwgY29tcGF0LlVOSUNPREVfVFlQRVMpIGZvciBt
IGluIHdhcm5fbXNnLmFyZ3MpOgorICAgICAgICBuZXdfYXJncyA9IFtdCisgICAgICAgIGZvciBt
IGluIHdhcm5fbXNnLmFyZ3M6CisgICAgICAgICAgICBuZXdfYXJncy5hcHBlbmQoCisgICAgICAg
ICAgICAgICAgY29tcGF0LmFzY2lpX2VzY2FwZWQobSkgaWYgaXNpbnN0YW5jZShtLCBjb21wYXQu
VU5JQ09ERV9UWVBFUykgZWxzZSBtCisgICAgICAgICAgICApCisgICAgICAgIHVuaWNvZGVfd2Fy
bmluZyA9IGxpc3Qod2Fybl9tc2cuYXJncykgIT0gbmV3X2FyZ3MKKyAgICAgICAgd2Fybl9tc2cu
YXJncyA9IG5ld19hcmdzCisKKyAgICBtc2cgPSB3YXJuaW5ncy5mb3JtYXR3YXJuaW5nKAorICAg
ICAgICB3YXJuX21zZywKKyAgICAgICAgd2FybmluZ19tZXNzYWdlLmNhdGVnb3J5LAorICAgICAg
ICB3YXJuaW5nX21lc3NhZ2UuZmlsZW5hbWUsCisgICAgICAgIHdhcm5pbmdfbWVzc2FnZS5saW5l
bm8sCisgICAgICAgIHdhcm5pbmdfbWVzc2FnZS5saW5lLAorICAgICkKKyAgICBpZiB1bmljb2Rl
X3dhcm5pbmc6CisgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAiV2FybmluZyBp
cyB1c2luZyB1bmljb2RlIG5vbiBjb252ZXJ0aWJsZSB0byBhc2NpaSwgIgorICAgICAgICAgICAg
ImNvbnZlcnRpbmcgdG8gYSBzYWZlIHJlcHJlc2VudGF0aW9uOlxuICB7IXJ9Ii5mb3JtYXQoY29t
cGF0LnNhZmVfc3RyKG1zZykpLAorICAgICAgICAgICAgVW5pY29kZVdhcm5pbmcsCisgICAgICAg
ICkKKyAgICByZXR1cm4gbXNnCisKKworQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVl
LCB0cnlmaXJzdD1UcnVlKQogZGVmIHB5dGVzdF9ydW50ZXN0X3Byb3RvY29sKGl0ZW0pOgotICAg
IHdpdGggY2F0Y2hfd2FybmluZ3NfZm9yX2l0ZW0oaXRlbSk6CisgICAgd2l0aCBjYXRjaF93YXJu
aW5nc19mb3JfaXRlbSgKKyAgICAgICAgY29uZmlnPWl0ZW0uY29uZmlnLCBpaG9vaz1pdGVtLmlo
b29rLCB3aGVuPSJydW50ZXN0IiwgaXRlbT1pdGVtCisgICAgKToKKyAgICAgICAgeWllbGQKKwor
CitAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUsIHRyeWZpcnN0PVRydWUpCitkZWYg
cHl0ZXN0X2NvbGxlY3Rpb24oc2Vzc2lvbik6CisgICAgY29uZmlnID0gc2Vzc2lvbi5jb25maWcK
KyAgICB3aXRoIGNhdGNoX3dhcm5pbmdzX2Zvcl9pdGVtKAorICAgICAgICBjb25maWc9Y29uZmln
LCBpaG9vaz1jb25maWcuaG9vaywgd2hlbj0iY29sbGVjdCIsIGl0ZW09Tm9uZQorICAgICk6CiAg
ICAgICAgIHlpZWxkCisKKworQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorZGVm
IHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIpOgorICAgIGNvbmZpZyA9
IHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnCisgICAgd2l0aCBjYXRjaF93YXJuaW5nc19mb3JfaXRl
bSgKKyAgICAgICAgY29uZmlnPWNvbmZpZywgaWhvb2s9Y29uZmlnLmhvb2ssIHdoZW49ImNvbmZp
ZyIsIGl0ZW09Tm9uZQorICAgICk6CisgICAgICAgIHlpZWxkCisKKworZGVmIF9pc3N1ZV93YXJu
aW5nX2NhcHR1cmVkKHdhcm5pbmcsIGhvb2ssIHN0YWNrbGV2ZWwpOgorICAgICIiIgorICAgIFRo
aXMgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZiBjYWxsaW5nIGBgd2FybmluZ3Mu
d2FybmBgIGRpcmVjdGx5IHdoZW4gd2UgYXJlIGluIHRoZSAiY29uZmlndXJlIiBzdGFnZToKKyAg
ICBhdCB0aGlzIHBvaW50IHRoZSBhY3R1YWwgb3B0aW9ucyBtaWdodCBub3QgaGF2ZSBiZWVuIHNl
dCwgc28gd2UgbWFudWFsbHkgdHJpZ2dlciB0aGUgcHl0ZXN0X3dhcm5pbmdfY2FwdHVyZWQKKyAg
ICBob29rIHNvIHdlIGNhbiBkaXNwbGF5IHRoaXMgd2FybmluZ3MgaW4gdGhlIHRlcm1pbmFsLiBU
aGlzIGlzIGEgaGFjayB1bnRpbCB3ZSBjYW4gc29ydCBvdXQgIzI4OTEuCisKKyAgICA6cGFyYW0g
d2FybmluZzogdGhlIHdhcm5pbmcgaW5zdGFuY2UuCisgICAgOnBhcmFtIGhvb2s6IHRoZSBob29r
IGNhbGxlcgorICAgIDpwYXJhbSBzdGFja2xldmVsOiBzdGFja2xldmVsIGZvcndhcmRlZCB0byB3
YXJuaW5ncy53YXJuCisgICAgIiIiCisgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncyhy
ZWNvcmQ9VHJ1ZSkgYXMgcmVjb3JkczoKKyAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJh
bHdheXMiLCB0eXBlKHdhcm5pbmcpKQorICAgICAgICB3YXJuaW5ncy53YXJuKHdhcm5pbmcsIHN0
YWNrbGV2ZWw9c3RhY2tsZXZlbCkKKyAgICBob29rLnB5dGVzdF93YXJuaW5nX2NhcHR1cmVkLmNh
bGxfaGlzdG9yaWMoCisgICAgICAgIGt3YXJncz1kaWN0KHdhcm5pbmdfbWVzc2FnZT1yZWNvcmRz
WzBdLCB3aGVuPSJjb25maWciLCBpdGVtPU5vbmUpCisgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL3B5dGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9weXRlc3QucHkKaW5kZXggZjI3
ZjVhMTk1NWIyOThiNDhmZTI0NGRlYjBhM2U5NTAwZWZlOTEyNi4uY2NjNzdiNDc2ZjU5NzBhMWZk
YzIwMTIyMjE4OTU1OTc3NTAyOGNhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL3B5dGVz
dC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0LnB5CkBAIC0xLDYyICsxLDk3IEBACisj
IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIyBQWVRIT05fQVJHQ09NUExFVEVfT0sKICIiIgogcHl0
ZXN0OiB1bml0IGFuZCBmdW5jdGlvbmFsIHRlc3Rpbmcgd2l0aCBQeXRob24uCiAiIiIKLQotCiAj
IGVsc2Ugd2UgYXJlIGltcG9ydGVkCi0KLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IG1haW4s
IFVzYWdlRXJyb3IsIGNtZGxpbmUsIGhvb2tzcGVjLCBob29raW1wbAotZnJvbSBfcHl0ZXN0LmZp
eHR1cmVzIGltcG9ydCBmaXh0dXJlLCB5aWVsZF9maXh0dXJlCi1mcm9tIF9weXRlc3QuYXNzZXJ0
aW9uIGltcG9ydCByZWdpc3Rlcl9hc3NlcnRfcmV3cml0ZQotZnJvbSBfcHl0ZXN0LmZyZWV6ZV9z
dXBwb3J0IGltcG9ydCBmcmVlemVfaW5jbHVkZXMKIGZyb20gX3B5dGVzdCBpbXBvcnQgX192ZXJz
aW9uX18KK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHJlZ2lzdGVyX2Fzc2VydF9yZXdy
aXRlCitmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBjbWRsaW5lCitmcm9tIF9weXRlc3QuY29u
ZmlnIGltcG9ydCBob29raW1wbAorZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgaG9va3NwZWMK
K2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IG1haW4KK2Zyb20gX3B5dGVzdC5jb25maWcgaW1w
b3J0IFVzYWdlRXJyb3IKIGZyb20gX3B5dGVzdC5kZWJ1Z2dpbmcgaW1wb3J0IHB5dGVzdFBEQiBh
cyBfX3B5dGVzdFBEQgotZnJvbSBfcHl0ZXN0LnJlY3dhcm4gaW1wb3J0IHdhcm5zLCBkZXByZWNh
dGVkX2NhbGwKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbCwgc2tpcCwgaW1wb3J0
b3Jza2lwLCBleGl0LCB4ZmFpbAotZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1BUktfR0VOIGFz
IG1hcmssIHBhcmFtCi1mcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgU2Vzc2lvbgotZnJvbSBfcHl0
ZXN0Lm5vZGVzIGltcG9ydCBJdGVtLCBDb2xsZWN0b3IsIEZpbGUKIGZyb20gX3B5dGVzdC5maXh0
dXJlcyBpbXBvcnQgZmlsbGZpeHR1cmVzIGFzIF9maWxsZnVuY2FyZ3MKLWZyb20gX3B5dGVzdC5w
eXRob24gaW1wb3J0IE1vZHVsZSwgQ2xhc3MsIEluc3RhbmNlLCBGdW5jdGlvbiwgR2VuZXJhdG9y
Ci0KLWZyb20gX3B5dGVzdC5weXRob25fYXBpIGltcG9ydCBhcHByb3gsIHJhaXNlcworZnJvbSBf
cHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBmaXh0dXJlCitmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1w
b3J0IHlpZWxkX2ZpeHR1cmUKK2Zyb20gX3B5dGVzdC5mcmVlemVfc3VwcG9ydCBpbXBvcnQgZnJl
ZXplX2luY2x1ZGVzCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgU2Vzc2lvbgorZnJvbSBfcHl0
ZXN0Lm1hcmsgaW1wb3J0IE1BUktfR0VOIGFzIG1hcmsKK2Zyb20gX3B5dGVzdC5tYXJrIGltcG9y
dCBwYXJhbQorZnJvbSBfcHl0ZXN0Lm5vZGVzIGltcG9ydCBDb2xsZWN0b3IKK2Zyb20gX3B5dGVz
dC5ub2RlcyBpbXBvcnQgRmlsZQorZnJvbSBfcHl0ZXN0Lm5vZGVzIGltcG9ydCBJdGVtCitmcm9t
IF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGV4aXQKK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBv
cnQgZmFpbAorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBpbXBvcnRvcnNraXAKK2Zyb20g
X3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgc2tpcAorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9y
dCB4ZmFpbAorZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgQ2xhc3MKK2Zyb20gX3B5dGVzdC5w
eXRob24gaW1wb3J0IEZ1bmN0aW9uCitmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBJbnN0YW5j
ZQorZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgTW9kdWxlCitmcm9tIF9weXRlc3QucHl0aG9u
IGltcG9ydCBQYWNrYWdlCitmcm9tIF9weXRlc3QucHl0aG9uX2FwaSBpbXBvcnQgYXBwcm94Citm
cm9tIF9weXRlc3QucHl0aG9uX2FwaSBpbXBvcnQgcmFpc2VzCitmcm9tIF9weXRlc3QucmVjd2Fy
biBpbXBvcnQgZGVwcmVjYXRlZF9jYWxsCitmcm9tIF9weXRlc3QucmVjd2FybiBpbXBvcnQgd2Fy
bnMKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3RBc3NlcnRSZXdyaXRl
V2FybmluZworZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVzdENhY2hlV2Fy
bmluZworZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVzdENvbGxlY3Rpb25X
YXJuaW5nCitmcm9tIF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBvcnQgUHl0ZXN0Q29uZmlnV2Fy
bmluZworZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVzdERlcHJlY2F0aW9u
V2FybmluZworZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVzdEV4cGVyaW1l
bnRhbEFwaVdhcm5pbmcKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3RV
bmhhbmRsZWRDb3JvdXRpbmVXYXJuaW5nCitmcm9tIF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBv
cnQgUHl0ZXN0VW5rbm93bk1hcmtXYXJuaW5nCitmcm9tIF9weXRlc3Qud2FybmluZ190eXBlcyBp
bXBvcnQgUHl0ZXN0V2FybmluZworZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFJl
bW92ZWRJblB5dGVzdDRXYXJuaW5nCiAKIHNldF90cmFjZSA9IF9fcHl0ZXN0UERCLnNldF90cmFj
ZQogCiBfX2FsbF9fID0gWwotICAgICJtYWluIiwKLSAgICAiVXNhZ2VFcnJvciIsCi0gICAgImNt
ZGxpbmUiLAotICAgICJob29rc3BlYyIsCi0gICAgImhvb2tpbXBsIiwKICAgICAiX192ZXJzaW9u
X18iLAotICAgICJyZWdpc3Rlcl9hc3NlcnRfcmV3cml0ZSIsCi0gICAgImZyZWV6ZV9pbmNsdWRl
cyIsCi0gICAgInNldF90cmFjZSIsCi0gICAgIndhcm5zIiwKKyAgICAiX2ZpbGxmdW5jYXJncyIs
CisgICAgImFwcHJveCIsCisgICAgIkNsYXNzIiwKKyAgICAiY21kbGluZSIsCisgICAgIkNvbGxl
Y3RvciIsCiAgICAgImRlcHJlY2F0ZWRfY2FsbCIsCi0gICAgImZpeHR1cmUiLAotICAgICJ5aWVs
ZF9maXh0dXJlIiwKKyAgICAiZXhpdCIsCiAgICAgImZhaWwiLAotICAgICJza2lwIiwKLSAgICAi
eGZhaWwiLAorICAgICJGaWxlIiwKKyAgICAiZml4dHVyZSIsCisgICAgImZyZWV6ZV9pbmNsdWRl
cyIsCisgICAgIkZ1bmN0aW9uIiwKKyAgICAiaG9va2ltcGwiLAorICAgICJob29rc3BlYyIsCiAg
ICAgImltcG9ydG9yc2tpcCIsCi0gICAgImV4aXQiLAotICAgICJtYXJrIiwKLSAgICAicGFyYW0i
LAotICAgICJhcHByb3giLAotICAgICJfZmlsbGZ1bmNhcmdzIiwKKyAgICAiSW5zdGFuY2UiLAog
ICAgICJJdGVtIiwKLSAgICAiRmlsZSIsCi0gICAgIkNvbGxlY3RvciIsCi0gICAgIlNlc3Npb24i
LAorICAgICJtYWluIiwKKyAgICAibWFyayIsCiAgICAgIk1vZHVsZSIsCi0gICAgIkNsYXNzIiwK
LSAgICAiSW5zdGFuY2UiLAotICAgICJGdW5jdGlvbiIsCi0gICAgIkdlbmVyYXRvciIsCisgICAg
IlBhY2thZ2UiLAorICAgICJwYXJhbSIsCisgICAgIlB5dGVzdEFzc2VydFJld3JpdGVXYXJuaW5n
IiwKKyAgICAiUHl0ZXN0Q2FjaGVXYXJuaW5nIiwKKyAgICAiUHl0ZXN0Q29sbGVjdGlvbldhcm5p
bmciLAorICAgICJQeXRlc3RDb25maWdXYXJuaW5nIiwKKyAgICAiUHl0ZXN0RGVwcmVjYXRpb25X
YXJuaW5nIiwKKyAgICAiUHl0ZXN0RXhwZXJpbWVudGFsQXBpV2FybmluZyIsCisgICAgIlB5dGVz
dFVuaGFuZGxlZENvcm91dGluZVdhcm5pbmciLAorICAgICJQeXRlc3RVbmtub3duTWFya1dhcm5p
bmciLAorICAgICJQeXRlc3RXYXJuaW5nIiwKICAgICAicmFpc2VzIiwKKyAgICAicmVnaXN0ZXJf
YXNzZXJ0X3Jld3JpdGUiLAorICAgICJSZW1vdmVkSW5QeXRlc3Q0V2FybmluZyIsCisgICAgIlNl
c3Npb24iLAorICAgICJzZXRfdHJhY2UiLAorICAgICJza2lwIiwKKyAgICAiVXNhZ2VFcnJvciIs
CisgICAgIndhcm5zIiwKKyAgICAieGZhaWwiLAorICAgICJ5aWVsZF9maXh0dXJlIiwKIF0KIAog
aWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tz
L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvX19pbml0X18ucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGVhNWIxMjkzZTMzZWE3NTgyMjhhNGRkYWI5ZWNhZWM0YzZjZTc1
NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGFza3MvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0i
IiIKLUludm9rZSB0YXNrcyB0byBoZWxwIHdpdGggcHl0ZXN0IGRldmVsb3BtZW50IGFuZCByZWxl
YXNlIHByb2Nlc3MuCi0iIiIKLQotaW1wb3J0IGludm9rZQotCi1mcm9tIC4gaW1wb3J0IGdlbmVy
YXRlCi0KLQotbnMgPSBpbnZva2UuQ29sbGVjdGlvbihnZW5lcmF0ZSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rhc2tzL2dlbmVyYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvZ2VuZXJhdGUu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5OGFmNzBjOTQyN2E3NmFjMjE4NTFi
YzRjZDQ4NWIxNzBlMjIzZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvZ2VuZXJhdGUucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwxMTggKzAsMCBAQAotIiIiCi1JbnZva2UgZGV2ZWxvcG1lbnQgdGFza3MuCi0iIiIKLWZyb20g
cGF0aGxpYiBpbXBvcnQgUGF0aAotZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBjaGVja19vdXRwdXQs
IGNoZWNrX2NhbGwKLQotaW1wb3J0IGludm9rZQotCi0KLUBpbnZva2UudGFzayhoZWxwPXsidmVy
c2lvbiI6ICJ2ZXJzaW9uIGJlaW5nIHJlbGVhc2VkIn0pCi1kZWYgYW5ub3VuY2UoY3R4LCB2ZXJz
aW9uKToKLSAgICAiIiJHZW5lcmF0ZXMgYSBuZXcgcmVsZWFzZSBhbm5vdW5jZW1lbnQgZW50cnkg
aW4gdGhlIGRvY3MuIiIiCi0gICAgIyBHZXQgb3VyIGxpc3Qgb2YgYXV0aG9ycwotICAgIHN0ZG91
dCA9IGNoZWNrX291dHB1dChbImdpdCIsICJkZXNjcmliZSIsICItLWFiYnJldj0wIiwgIi0tdGFn
cyJdKQotICAgIHN0ZG91dCA9IHN0ZG91dC5kZWNvZGUoInV0Zi04IikKLSAgICBsYXN0X3ZlcnNp
b24gPSBzdGRvdXQuc3RyaXAoKQotCi0gICAgc3Rkb3V0ID0gY2hlY2tfb3V0cHV0KAotICAgICAg
ICBbImdpdCIsICJsb2ciLCAie30uLkhFQUQiLmZvcm1hdChsYXN0X3ZlcnNpb24pLCAiLS1mb3Jt
YXQ9JWFOIl0KLSAgICApCi0gICAgc3Rkb3V0ID0gc3Rkb3V0LmRlY29kZSgidXRmLTgiKQotCi0g
ICAgY29udHJpYnV0b3JzID0gc2V0KHN0ZG91dC5zcGxpdGxpbmVzKCkpCi0KLSAgICB0ZW1wbGF0
ZV9uYW1lID0gInJlbGVhc2UubWlub3IucnN0IiBpZiB2ZXJzaW9uLmVuZHN3aXRoKAotICAgICAg
ICAiLjAiCi0gICAgKSBlbHNlICJyZWxlYXNlLnBhdGNoLnJzdCIKLSAgICB0ZW1wbGF0ZV90ZXh0
ID0gUGF0aChfX2ZpbGVfXykucGFyZW50LmpvaW5wYXRoKHRlbXBsYXRlX25hbWUpLnJlYWRfdGV4
dCgKLSAgICAgICAgZW5jb2Rpbmc9IlVURi04IgotICAgICkKLQotICAgIGNvbnRyaWJ1dG9yc190
ZXh0ID0gIlxuIi5qb2luKAotICAgICAgICAiKiB7fSIuZm9ybWF0KG5hbWUpIGZvciBuYW1lIGlu
IHNvcnRlZChjb250cmlidXRvcnMpCi0gICAgKSArICJcbiIKLSAgICB0ZXh0ID0gdGVtcGxhdGVf
dGV4dC5mb3JtYXQodmVyc2lvbj12ZXJzaW9uLCBjb250cmlidXRvcnM9Y29udHJpYnV0b3JzX3Rl
eHQpCi0KLSAgICB0YXJnZXQgPSBQYXRoKF9fZmlsZV9fKS5wYXJlbnQuam9pbnBhdGgoCi0gICAg
ICAgICIuLi9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS17fS5yc3QiLmZvcm1hdCh2ZXJzaW9uKQot
ICAgICkKLSAgICB0YXJnZXQud3JpdGVfdGV4dCh0ZXh0LCBlbmNvZGluZz0iVVRGLTgiKQotICAg
IHByaW50KCJbZ2VuZXJhdGUuYW5ub3VuY2VdIEdlbmVyYXRlZCB7fSIuZm9ybWF0KHRhcmdldC5u
YW1lKSkKLQotICAgICMgVXBkYXRlIGluZGV4IHdpdGggdGhlIG5ldyByZWxlYXNlIGVudHJ5Ci0g
ICAgaW5kZXhfcGF0aCA9IFBhdGgoX19maWxlX18pLnBhcmVudC5qb2lucGF0aCgiLi4vZG9jL2Vu
L2Fubm91bmNlL2luZGV4LnJzdCIpCi0gICAgbGluZXMgPSBpbmRleF9wYXRoLnJlYWRfdGV4dChl
bmNvZGluZz0iVVRGLTgiKS5zcGxpdGxpbmVzKCkKLSAgICBpbmRlbnQgPSAiICAgIgotICAgIGZv
ciBpbmRleCwgbGluZSBpbiBlbnVtZXJhdGUobGluZXMpOgotICAgICAgICBpZiBsaW5lLnN0YXJ0
c3dpdGgoInt9cmVsZWFzZS0iLmZvcm1hdChpbmRlbnQpKToKLSAgICAgICAgICAgIG5ld19saW5l
ID0gaW5kZW50ICsgdGFyZ2V0LnN0ZW0KLSAgICAgICAgICAgIGlmIGxpbmUgIT0gbmV3X2xpbmU6
Ci0gICAgICAgICAgICAgICAgbGluZXMuaW5zZXJ0KGluZGV4LCBuZXdfbGluZSkKLSAgICAgICAg
ICAgICAgICBpbmRleF9wYXRoLndyaXRlX3RleHQoIlxuIi5qb2luKGxpbmVzKSArICJcbiIsIGVu
Y29kaW5nPSJVVEYtOCIpCi0gICAgICAgICAgICAgICAgcHJpbnQoIltnZW5lcmF0ZS5hbm5vdW5j
ZV0gVXBkYXRlZCB7fSIuZm9ybWF0KGluZGV4X3BhdGgubmFtZSkpCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIHByaW50KAotICAgICAgICAgICAgICAgICAgICAiW2dlbmVyYXRl
LmFubm91bmNlXSBTa2lwIHt9IChhbHJlYWR5IGNvbnRhaW5zIHJlbGVhc2UpIi5mb3JtYXQoCi0g
ICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9wYXRoLm5hbWUKLSAgICAgICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGJyZWFrCi0KLSAgICBjaGVja19j
YWxsKFsiZ2l0IiwgImFkZCIsIHN0cih0YXJnZXQpXSkKLQotCi1AaW52b2tlLnRhc2soKQotZGVm
IHJlZ2VuKGN0eCk6Ci0gICAgIiIiQ2FsbCByZWdlbmRvYyB0b29sIHRvIHVwZGF0ZSBleGFtcGxl
cyBhbmQgcHl0ZXN0IG91dHB1dCBpbiB0aGUgZG9jcy4iIiIKLSAgICBwcmludCgiW2dlbmVyYXRl
LnJlZ2VuXSBVcGRhdGluZyBkb2NzIikKLSAgICBjaGVja19jYWxsKFsidG94IiwgIi1lIiwgInJl
Z2VuIl0pCi0KLQotQGludm9rZS50YXNrKCkKLWRlZiBtYWtlX3RhZyhjdHgsIHZlcnNpb24pOgot
ICAgICIiIkNyZWF0ZSBhIG5ldywgbG9jYWwgdGFnIGZvciB0aGUgcmVsZWFzZSwgb25seSBpZiB0
aGUgcmVwb3NpdG9yeSBpcyBjbGVhbi4iIiIKLSAgICBmcm9tIGdpdCBpbXBvcnQgUmVwbwotCi0g
ICAgcmVwbyA9IFJlcG8oIi4iKQotICAgIGlmIHJlcG8uaXNfZGlydHkoKToKLSAgICAgICAgcHJp
bnQoIkN1cnJlbnQgcmVwb3NpdG9yeSBpcyBkaXJ0eS4gUGxlYXNlIGNvbW1pdCBhbnkgY2hhbmdl
cyBhbmQgdHJ5IGFnYWluLiIpCi0gICAgICAgIHJhaXNlIGludm9rZS5FeGl0KGNvZGU9MikKLQot
ICAgIHRhZ19uYW1lcyA9IFt4Lm5hbWUgZm9yIHggaW4gcmVwby50YWdzXQotICAgIGlmIHZlcnNp
b24gaW4gdGFnX25hbWVzOgotICAgICAgICBwcmludCgiW2dlbmVyYXRlLm1ha2VfdGFnXSBEZWxl
dGUgZXhpc3RpbmcgdGFnIHt9Ii5mb3JtYXQodmVyc2lvbikpCi0gICAgICAgIHJlcG8uZGVsZXRl
X3RhZyh2ZXJzaW9uKQotCi0gICAgcHJpbnQoIltnZW5lcmF0ZS5tYWtlX3RhZ10gQ3JlYXRlIHRh
ZyB7fSIuZm9ybWF0KHZlcnNpb24pKQotICAgIHJlcG8uY3JlYXRlX3RhZyh2ZXJzaW9uKQotCi0K
LUBpbnZva2UudGFzayhoZWxwPXsidmVyc2lvbiI6ICJ2ZXJzaW9uIGJlaW5nIHJlbGVhc2VkIn0p
Ci1kZWYgcHJlX3JlbGVhc2UoY3R4LCB2ZXJzaW9uKToKLSAgICAiIiJHZW5lcmF0ZXMgbmV3IGRv
Y3MsIHJlbGVhc2UgYW5ub3VuY2VtZW50cyBhbmQgY3JlYXRlcyBhIGxvY2FsIHRhZy4iIiIKLSAg
ICBhbm5vdW5jZShjdHgsIHZlcnNpb24pCi0gICAgcmVnZW4oY3R4KQotICAgIGNoYW5nZWxvZyhj
dHgsIHZlcnNpb24sIHdyaXRlX291dD1UcnVlKQotCi0gICAgbXNnID0gIlByZXBhcmluZyByZWxl
YXNlIHZlcnNpb24ge30iLmZvcm1hdCh2ZXJzaW9uKQotICAgIGNoZWNrX2NhbGwoWyJnaXQiLCAi
Y29tbWl0IiwgIi1hIiwgIi1tIiwgbXNnXSkKLQotICAgIG1ha2VfdGFnKGN0eCwgdmVyc2lvbikK
LQotICAgIHByaW50KCkKLSAgICBwcmludCgiW2dlbmVyYXRlLnByZV9yZWxlYXNlXSBQbGVhc2Ug
cHVzaCB5b3VyIGJyYW5jaCBhbmQgb3BlbiBhIFBSLiIpCi0KLQotQGludm9rZS50YXNrKAotICAg
IGhlbHA9ewotICAgICAgICAidmVyc2lvbiI6ICJ2ZXJzaW9uIGJlaW5nIHJlbGVhc2VkIiwKLSAg
ICAgICAgIndyaXRlX291dCI6ICJ3cml0ZSBjaGFuZ2VzIHRvIHRoZSBhY3R1YWwgY2hhbmdlbG9n
IiwKLSAgICB9Ci0pCi1kZWYgY2hhbmdlbG9nKGN0eCwgdmVyc2lvbiwgd3JpdGVfb3V0PUZhbHNl
KToKLSAgICBpZiB3cml0ZV9vdXQ6Ci0gICAgICAgIGFkZG9wdHMgPSBbXQotICAgIGVsc2U6Ci0g
ICAgICAgIGFkZG9wdHMgPSBbIi0tZHJhZnQiXQotICAgIGNoZWNrX2NhbGwoWyJ0b3duY3JpZXIi
LCAiLS15ZXMiLCAiLS12ZXJzaW9uIiwgdmVyc2lvbl0gKyBhZGRvcHRzKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGFza3MvcmVsZWFzZS5taW5vci5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9y
ZWxlYXNlLm1pbm9yLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmRkODI4MmNm
YWQ5OWY3ZTdiMTkwYjUwNmRkZjY4ZDVlMDQ2YjliOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLm1pbm9yLnJz
dAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLXB5dGVzdC17dmVyc2lvbn0KLT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1UaGUgcHl0ZXN0IHRlYW0gaXMg
cHJvdWQgdG8gYW5ub3VuY2UgdGhlIHt2ZXJzaW9ufSByZWxlYXNlIQotCi1weXRlc3QgaXMgYSBt
YXR1cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDIwMDAgdGVzdHMKLWFn
YWluc3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQg
cGxhdGZvcm1zLgotCi1UaGlzIHJlbGVhc2UgY29udGFpbnMgYSBudW1iZXIgb2YgYnVncyBmaXhl
cyBhbmQgaW1wcm92ZW1lbnRzLCBzbyB1c2VycyBhcmUgZW5jb3VyYWdlZAotdG8gdGFrZSBhIGxv
b2sgYXQgdGhlIENIQU5HRUxPRzoKLQotICAgIGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRl
c3QvY2hhbmdlbG9nLmh0bWwKLQotRm9yIGNvbXBsZXRlIGRvY3VtZW50YXRpb24sIHBsZWFzZSB2
aXNpdDoKLQotICAgIGh0dHA6Ly9kb2NzLnB5dGVzdC5vcmcKLQotQXMgdXN1YWwsIHlvdSBjYW4g
dXBncmFkZSBmcm9tIHB5cGkgdmlhOgotCi0gICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0Ci0KLVRo
YW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToK
LQote2NvbnRyaWJ1dG9yc30KLQotSGFwcHkgdGVzdGluZywKLVRoZSBQeXRlc3QgRGV2ZWxvcG1l
bnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVsZWFzZS5wYXRjaC5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLnBhdGNoLnJzdApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMTk4MmRjMzUzYzRiNmM0NWU5NzFjMDFjMjk0Y2U4Mzg3OGU4MDg5NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
YXNrcy9yZWxlYXNlLnBhdGNoLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLXB5
dGVzdC17dmVyc2lvbn0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
Ci1weXRlc3Qge3ZlcnNpb259IGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KLQotVGhp
cyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1
cGdyYWRlOjoKLQotICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0Ci0KLVRoZSBmdWxsIGNo
YW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9j
aGFuZ2Vsb2cuaHRtbC4KLQotVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyBy
ZWxlYXNlLCBhbW9uZyB0aGVtOgotCi17Y29udHJpYnV0b3JzfQotCi1IYXBweSB0ZXN0aW5nLAot
VGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNr
cy9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVxdWlyZW1lbnRzLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGI1NGU3NmU4NWM4YjZiNzVmNWRkZjZkYTVm
ODc5MTBhMzM4OGQ2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZXF1aXJlbWVudHMudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNiArMCwwIEBACi0tZSAuCi1naXRweXRob24KLWludm9rZQotdG93bmNyaWVyCi10b3gKLXdo
ZWVsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rhc2tzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkYWUwODUzZDMyZDgwMDY2ZGY5NDZjMDIzNDFhMWE2OGIxNDVmZDQ3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGFza3MvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9nZW5lcmF0ZS5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UubWlub3IucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3Mv
cmVsZWFzZS5wYXRjaC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZXF1aXJlbWVudHMudHh0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2FjY2VwdGFuY2VfdGVzdC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvYWNjZXB0YW5jZV90ZXN0LnB5CmluZGV4IGMyZWVkNDE5YzljYjAxOWY4
YmZjMzUxNDM0MzNkYzY4NGRhY2RmNDQuLjliMzM5MzBhMDZjZDA0NjMxNzRmNGVmMmZiMDAyMzA3
ZWZlNzgxYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvYWNjZXB0YW5jZV90ZXN0
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvYWNjZXB0YW5jZV90ZXN0LnB5CkBAIC0xLDMw
ICsxLDM4IEBACiAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQotZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNp
b24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IG9zCiBp
bXBvcnQgc3lzCitpbXBvcnQgdGV4dHdyYXAKIGltcG9ydCB0eXBlcwogCitpbXBvcnQgYXR0cgor
aW1wb3J0IHB5CiBpbXBvcnQgc2l4CiAKLWltcG9ydCBfcHl0ZXN0Ll9jb2RlCi1pbXBvcnQgcHkK
IGltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xM
RUNURUQsIEVYSVRfVVNBR0VFUlJPUgorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgaW1wb3J0
bGliX21ldGFkYXRhCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVD
VEVECitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9VU0FHRUVSUk9SCitmcm9tIF9weXRl
c3Qud2FybmluZ3MgaW1wb3J0IFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRwogCiAKLWNsYXNzIFRl
c3RHZW5lcmFsVXNhZ2Uob2JqZWN0KToKK2RlZiBwcmVwZW5kX3B5dGhvbnBhdGgoKmRpcnMpOgor
ICAgIGN1ciA9IG9zLmdldGVudigiUFlUSE9OUEFUSCIpCisgICAgaWYgY3VyOgorICAgICAgICBk
aXJzICs9IChjdXIsKQorICAgIHJldHVybiBvcy5wYXRoc2VwLmpvaW4oc3RyKHApIGZvciBwIGlu
IGRpcnMpCiAKKworY2xhc3MgVGVzdEdlbmVyYWxVc2FnZShvYmplY3QpOgogICAgIGRlZiB0ZXN0
X2NvbmZpZ19lcnJvcihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRl
c3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNv
bmZpZyk6Ci0gICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgICAgIHJh
aXNlIHB5dGVzdC5Vc2FnZUVycm9yKCJoZWxsbyIpCi0gICAgICAgICIiIgotICAgICAgICApCisg
ICAgICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCJjb25mdGVzdF91c2FnZWVycm9yL2NvbmZ0ZXN0
LnB5IikKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGRpci50bXBkaXIp
Ci0gICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgPT0gRVhJVF9VU0FHRUVSUk9SCiAgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5l
cyhbIipFUlJPUjogaGVsbG8iXSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKnB5dGVzdF91bmNvbmZpZ3VyZV9jYWxsZWQiXSkKIAogICAgIGRlZiB0ZXN0X3Jvb3RfY29u
ZnRlc3Rfc3ludGF4X2Vycm9yKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoY29uZnRlc3Q9InJhaXNlIFN5bnRheEVycm9yXG4iKQpAQCAtMTAyLDYgKzExMCw0OCBA
QCBjbGFzcyBUZXN0R2VuZXJhbFVzYWdlKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IDAKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2Vk
KiJdKQogCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJsb2FkX2Nvdl9lYXJseSIsIFtU
cnVlLCBGYWxzZV0pCisgICAgZGVmIHRlc3RfZWFybHlfbG9hZF9zZXR1cHRvb2xzX25hbWUoc2Vs
ZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gsIGxvYWRfY292X2Vhcmx5KToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKG15dGVzdHBsdWdpbjFfbW9kdWxlPSIiKQorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUobXl0ZXN0cGx1Z2luMl9tb2R1bGU9IiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZShteWNvdl9tb2R1bGU9IiIpCisgICAgICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydCgpCisK
KyAgICAgICAgbG9hZGVkID0gW10KKworICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIER1
bW15RW50cnlQb2ludChvYmplY3QpOgorICAgICAgICAgICAgbmFtZSA9IGF0dHIuaWIoKQorICAg
ICAgICAgICAgbW9kdWxlID0gYXR0ci5pYigpCisgICAgICAgICAgICBncm91cCA9ICJweXRlc3Qx
MSIKKworICAgICAgICAgICAgZGVmIGxvYWQoc2VsZik6CisgICAgICAgICAgICAgICAgX19pbXBv
cnRfXyhzZWxmLm1vZHVsZSkKKyAgICAgICAgICAgICAgICBsb2FkZWQuYXBwZW5kKHNlbGYubmFt
ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3lzLm1vZHVsZXNbc2VsZi5tb2R1bGVdCisKKyAg
ICAgICAgZW50cnlfcG9pbnRzID0gWworICAgICAgICAgICAgRHVtbXlFbnRyeVBvaW50KCJteXBs
dWdpbjEiLCAibXl0ZXN0cGx1Z2luMV9tb2R1bGUiKSwKKyAgICAgICAgICAgIER1bW15RW50cnlQ
b2ludCgibXlwbHVnaW4yIiwgIm15dGVzdHBsdWdpbjJfbW9kdWxlIiksCisgICAgICAgICAgICBE
dW1teUVudHJ5UG9pbnQoIm15Y292IiwgIm15Y292X21vZHVsZSIpLAorICAgICAgICBdCisKKyAg
ICAgICAgQGF0dHIucworICAgICAgICBjbGFzcyBEdW1teURpc3Qob2JqZWN0KToKKyAgICAgICAg
ICAgIGVudHJ5X3BvaW50cyA9IGF0dHIuaWIoKQorICAgICAgICAgICAgZmlsZXMgPSAoKQorCisg
ICAgICAgIGRlZiBteV9kaXN0cygpOgorICAgICAgICAgICAgcmV0dXJuIChEdW1teURpc3QoZW50
cnlfcG9pbnRzKSwpCisKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihpbXBvcnRsaWJfbWV0
YWRhdGEsICJkaXN0cmlidXRpb25zIiwgbXlfZGlzdHMpCisgICAgICAgIHBhcmFtcyA9ICgiLXAi
LCAibXljb3YiKSBpZiBsb2FkX2Nvdl9lYXJseSBlbHNlICgpCisgICAgICAgIHRlc3RkaXIucnVu
cHl0ZXN0X2lucHJvY2VzcygqcGFyYW1zKQorICAgICAgICBpZiBsb2FkX2Nvdl9lYXJseToKKyAg
ICAgICAgICAgIGFzc2VydCBsb2FkZWQgPT0gWyJteWNvdiIsICJteXBsdWdpbjEiLCAibXlwbHVn
aW4yIl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBsb2FkZWQgPT0gWyJteXBs
dWdpbjEiLCAibXlwbHVnaW4yIiwgIm15Y292Il0KKwogICAgIGRlZiB0ZXN0X2Fzc2VydGlvbl9t
YWdpYyhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAg
ICAgICAgICAgICIiIgpAQCAtMTM4LDExICsxODgsMTkgQEAgY2xhc3MgVGVzdEdlbmVyYWxVc2Fn
ZShvYmplY3QpOgogICAgICAgICBwMiA9IHRlc3RkaXIubWFrZWZpbGUoIi5weWMiLCAiMTIzIikK
ICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocDEsIHAyKQogICAgICAgICBhc3Nl
cnQgcmVzdWx0LnJldAotICAgICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWyIqRVJS
T1I6IG5vdCBmb3VuZDoqJXMiICUgKHAyLmJhc2VuYW1lLCldKQorICAgICAgICByZXN1bHQuc3Rk
ZXJyLmZubWF0Y2hfbGluZXMoWyIqRVJST1I6IG5vdCBmb3VuZDoqe30iLmZvcm1hdChwMi5iYXNl
bmFtZSldKQogCi0gICAgZGVmIHRlc3RfaXNzdWU0ODZfYmV0dGVyX3JlcG9ydGluZ19vbl9jb25m
dGVzdF9sb2FkX2ZhaWx1cmUoc2VsZiwgdGVzdGRpcik6CisgICAgQHB5dGVzdC5tYXJrLmZpbHRl
cndhcm5pbmdzKCJkZWZhdWx0IikKKyAgICBkZWYgdGVzdF9iZXR0ZXJfcmVwb3J0aW5nX29uX2Nv
bmZ0ZXN0X2xvYWRfZmFpbHVyZShzZWxmLCB0ZXN0ZGlyLCByZXF1ZXN0KToKKyAgICAgICAgIiIi
U2hvdyBhIHVzZXItZnJpZW5kbHkgdHJhY2ViYWNrIG9uIGNvbmZ0ZXN0IGltcG9ydCBmYWlsdXJl
cyAoIzQ4NiwgIzMzMzIpIiIiCiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIikKLSAgICAg
ICAgdGVzdGRpci5tYWtlY29uZnRlc3QoImltcG9ydCBxd2VydHkiKQorICAgICAgICB0ZXN0ZGly
Lm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIGZvbygpOgor
ICAgICAgICAgICAgICAgIGltcG9ydCBxd2VydHkKKyAgICAgICAgICAgIGZvbygpCisgICAgICAg
ICIiIgorICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWhl
bHAiKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAgICAgICAi
IiIKQEAgLTE1MSwxMCArMjA5LDIzIEBAIGNsYXNzIFRlc3RHZW5lcmFsVXNhZ2Uob2JqZWN0KToK
ICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQorICAgICAgICBkaXJuYW1lID0gcmVxdWVzdC5ub2RlLm5hbWUgKyAiMCIKKyAgICAgICAg
ZXhjX25hbWUgPSAoCisgICAgICAgICAgICAiTW9kdWxlTm90Rm91bmRFcnJvciIgaWYgc3lzLnZl
cnNpb25faW5mbyA+PSAoMywgNikgZWxzZSAiSW1wb3J0RXJyb3IiCisgICAgICAgICkKICAgICAg
ICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgIiIiCi0gICAgICAg
ICAgICAqRVJST1IqY291bGQgbm90IGxvYWQqY29uZnRlc3QucHkqCi0gICAgICAgICIiIgorICAg
ICAgICAgICAgWworICAgICAgICAgICAgICAgICJJbXBvcnRFcnJvciB3aGlsZSBsb2FkaW5nIGNv
bmZ0ZXN0ICcqe3NlcH17ZGlybmFtZX17c2VwfWNvbmZ0ZXN0LnB5Jy4iLmZvcm1hdCgKKyAgICAg
ICAgICAgICAgICAgICAgZGlybmFtZT1kaXJuYW1lLCBzZXA9b3Muc2VwCisgICAgICAgICAgICAg
ICAgKSwKKyAgICAgICAgICAgICAgICAiY29uZnRlc3QucHk6MzogaW4gPG1vZHVsZT4iLAorICAg
ICAgICAgICAgICAgICIgICAgZm9vKCkiLAorICAgICAgICAgICAgICAgICJjb25mdGVzdC5weToy
OiBpbiBmb28iLAorICAgICAgICAgICAgICAgICIgICAgaW1wb3J0IHF3ZXJ0eSIsCisgICAgICAg
ICAgICAgICAgIkUgICB7fTogTm8gbW9kdWxlIG5hbWVkIHtxfXF3ZXJ0eXtxfSIuZm9ybWF0KAor
ICAgICAgICAgICAgICAgICAgICBleGNfbmFtZSwgcT0iIiBpZiBzaXguUFkyIGVsc2UgIiciCisg
ICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIF0KICAgICAgICAgKQogCiAgICAgZGVmIHRl
c3RfZWFybHlfc2tpcChzZWxmLCB0ZXN0ZGlyKToKQEAgLTE3MSwxOCArMjQyLDcgQEAgY2xhc3Mg
VGVzdEdlbmVyYWxVc2FnZShvYmplY3QpOgogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWyIqMSBza2lwKiJdKQogCiAgICAgZGVmIHRlc3RfaXNzdWU4OF9pbml0aWFsX2ZpbGVf
bXVsdGlub2RlcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3Qo
Ci0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAg
IGNsYXNzIE15RmlsZShweXRlc3QuRmlsZSk6Ci0gICAgICAgICAgICAgICAgZGVmIGNvbGxlY3Qo
c2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBbTXlJdGVtKCJoZWxsbyIsIHBhcmVu
dD1zZWxmKV0KLSAgICAgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVu
dCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE15RmlsZShwYXRoLCBwYXJlbnQpCi0gICAgICAg
ICAgICBjbGFzcyBNeUl0ZW0ocHl0ZXN0Lkl0ZW0pOgotICAgICAgICAgICAgICAgIHBhc3MKLSAg
ICAgICAgIiIiCi0gICAgICAgICkKKyAgICAgICAgdGVzdGRpci5jb3B5X2V4YW1wbGUoImlzc3Vl
ODhfaW5pdGlhbF9maWxlX211bHRpbm9kZXMiKQogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKCJkZWYgdGVzdF9oZWxsbygpOiBwYXNzIikKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QocCwgIi0tY29sbGVjdC1vbmx5IikKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsiKk15RmlsZSp0ZXN0X2lzc3VlODgqIiwgIipNb2R1bGUqdGVzdF9pc3N1ZTg4
KiJdKQpAQCAtMTkxLDcgKzI1MSw3IEBAIGNsYXNzIFRlc3RHZW5lcmFsVXNhZ2Uob2JqZWN0KToK
ICAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCiAgICAgICAgICAgICAiIiIKICAgICAgICAg
ICAgIGltcG9ydCBzeXMKLSAgICAgICAgICAgIHByaW50ICgic2hvdWxkIG5vdCBiZSBzZWVuIikK
KyAgICAgICAgICAgIHByaW50KCJzaG91bGQgbm90IGJlIHNlZW4iKQogICAgICAgICAgICAgc3lz
LnN0ZGVyci53cml0ZSgic3RkZXI0MlxcbiIpCiAgICAgICAgICIiIgogICAgICAgICApCkBAIC0y
MDMsNyArMjYzLDcgQEAgY2xhc3MgVGVzdEdlbmVyYWxVc2FnZShvYmplY3QpOgogICAgIGRlZiB0
ZXN0X2NvbmZ0ZXN0X3ByaW50aW5nX3Nob3dzX2lmX2Vycm9yKHNlbGYsIHRlc3RkaXIpOgogICAg
ICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgICAgICIiIgotICAgICAgICAgICAg
cHJpbnQgKCJzaG91bGQgYmUgc2VlbiIpCisgICAgICAgICAgICBwcmludCgic2hvdWxkIGJlIHNl
ZW4iKQogICAgICAgICAgICAgYXNzZXJ0IDAKICAgICAgICAgIiIiCiAgICAgICAgICkKQEAgLTIx
OSwxNiArMjc5LDE2IEBAIGNsYXNzIFRlc3RHZW5lcmFsVXNhZ2Uob2JqZWN0KToKICAgICAgICAg
dGVzdGRpci50bXBkaXIuam9pbigicHkiKS5ta3N5bWxpbmt0byhweS5fcHlkaXIpCiAgICAgICAg
IHAgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJtYWluLnB5IikKICAgICAgICAgcC53cml0ZSgKLSAg
ICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVk
ZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBpbXBvcnQgc3lzLCBv
cworICAgICAgICAgICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCAnJykKKyAgICAgICAgICAgICAg
ICBpbXBvcnQgcHkKKyAgICAgICAgICAgICAgICBwcmludChweS5fX2ZpbGVfXykKKyAgICAgICAg
ICAgICAgICBwcmludChweS5fX3BhdGhfXykKKyAgICAgICAgICAgICAgICBvcy5jaGRpcihvcy5w
YXRoLmRpcm5hbWUob3MuZ2V0Y3dkKCkpKQorICAgICAgICAgICAgICAgIHByaW50KHB5LmxvZykK
ICAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBzeXMsIG9zCi0gICAgICAg
ICAgICBzeXMucGF0aC5pbnNlcnQoMCwgJycpCi0gICAgICAgICAgICBpbXBvcnQgcHkKLSAgICAg
ICAgICAgIHByaW50IChweS5fX2ZpbGVfXykKLSAgICAgICAgICAgIHByaW50IChweS5fX3BhdGhf
XykKLSAgICAgICAgICAgIG9zLmNoZGlyKG9zLnBhdGguZGlybmFtZShvcy5nZXRjd2QoKSkpCi0g
ICAgICAgICAgICBwcmludCAocHkubG9nKQotICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAg
ICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbihwKQpAQCAtMjg0LDE2
ICszNDQsMTYgQEAgY2xhc3MgVGVzdEdlbmVyYWxVc2FnZShvYmplY3QpOgogICAgICAgICAgICAg
IiIiCiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2dl
bmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAgICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxs
KHsneCc6IDN9LCBpZD0naGVsbG8tMTIzJykKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJh
bWV0cml6ZSgneCcsIFszXSwgaWRzPVsnaGVsbG8tMTIzJ10pCiAgICAgICAgICAgICBkZWYgcHl0
ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKGl0ZW0ua2V5
d29yZHMpCisgICAgICAgICAgICAgICAgcHJpbnQoaXRlbS5rZXl3b3JkcykKICAgICAgICAgICAg
ICAgICBpZiAnaGVsbG8tMTIzJyBpbiBpdGVtLmtleXdvcmRzOgogICAgICAgICAgICAgICAgICAg
ICBweXRlc3Quc2tpcCgiaGVsbG8iKQogICAgICAgICAgICAgICAgIGFzc2VydCAwCiAgICAgICAg
ICIiIgogICAgICAgICApCiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiZGVmIHRl
c3RfZnVuYyh4KTogcGFzcyIiIikKLSAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QocCkK
KyAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QocCwgU0hPV19QWVRFU1RfV0FSTklOR1Nf
QVJHKQogICAgICAgICBhc3NlcnQgcmVzLnJldCA9PSAwCiAgICAgICAgIHJlcy5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbIioxIHNraXBwZWQqIl0pCiAKQEAgLTMwMSwxMyArMzYxLDE0IEBAIGNsYXNz
IFRlc3RHZW5lcmFsVXNhZ2Uob2JqZWN0KToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0
cyhtZXRhZnVuYyk6Ci0gICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbCh7J2knOiAxfSwg
aWQ9IjEiKQotICAgICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoeydpJzogMn0sIGlkPSIy
IikKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgnaScsIFsxLCAyXSwgaWRz
PVsiMSIsICIyIl0pCiAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKGkpOgogICAgICAgICAgICAg
ICAgIHBhc3MKICAgICAgICAgIiIiCiAgICAgICAgICkKLSAgICAgICAgcmVzID0gdGVzdGRpci5y
dW5weXRlc3QocC5iYXNlbmFtZSArICI6OiIgKyAidGVzdF9mdW5jWzFdIikKKyAgICAgICAgcmVz
ID0gdGVzdGRpci5ydW5weXRlc3QoCisgICAgICAgICAgICBwLmJhc2VuYW1lICsgIjo6IiArICJ0
ZXN0X2Z1bmNbMV0iLCBTSE9XX1BZVEVTVF9XQVJOSU5HU19BUkcKKyAgICAgICAgKQogICAgICAg
ICBhc3NlcnQgcmVzLnJldCA9PSAwCiAgICAgICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
IioxIHBhc3NlZCoiXSkKIApAQCAtMzU2LDkgKzQxNywyMCBAQCBjbGFzcyBUZXN0R2VuZXJhbFVz
YWdlKG9iamVjdCk6CiAgICAgICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSA0ICAjIHVzYWdl
IGVycm9yIG9ubHkgaWYgaXRlbSBub3QgZm91bmQKIAogICAgIGRlZiB0ZXN0X3JlcG9ydF9hbGxf
ZmFpbGVkX2NvbGxlY3Rpb25zX2luaXRhcmdzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZnJvbSBfcHl0
ZXN0Lm1haW4gaW1wb3J0IEVYSVRfVVNBR0VFUlJPUgorCisgICAgICAgICAgICBkZWYgcHl0ZXN0
X3Nlc3Npb25maW5pc2goZXhpdHN0YXR1cyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGV4aXRz
dGF0dXMgPT0gRVhJVF9VU0FHRUVSUk9SCisgICAgICAgICAgICAgICAgcHJpbnQoInB5dGVzdF9z
ZXNzaW9uZmluaXNoX2NhbGxlZCIpCisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQogICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9hPSJkZWYiLCB0ZXN0X2I9ImRlZiIpCiAgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCJ0ZXN0X2EucHk6OmEiLCAidGVzdF9iLnB5Ojpi
IikKICAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsiKkVSUk9SKnRlc3RfYS5w
eTo6YSoiLCAiKkVSUk9SKnRlc3RfYi5weTo6YioiXSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsicHl0ZXN0X3Nlc3Npb25maW5pc2hfY2FsbGVkIl0pCisgICAgICAgIGFz
c2VydCByZXN1bHQucmV0ID09IEVYSVRfVVNBR0VFUlJPUgogCiAgICAgQHB5dGVzdC5tYXJrLnVz
ZWZpeHR1cmVzKCJyZWN3YXJuIikKICAgICBkZWYgdGVzdF9uYW1lc3BhY2VfaW1wb3J0X2RvZXNu
dF9jb25mdXNlX2ltcG9ydF9ob29rKHNlbGYsIHRlc3RkaXIpOgpAQCAtNDEzLDcgKzQ4NSw3IEBA
IGNsYXNzIFRlc3RHZW5lcmFsVXNhZ2Uob2JqZWN0KToKICAgICAgICAgICAgIFsiKnNvdXJjZSBj
b2RlIG5vdCBhdmFpbGFibGUqIiwgIkUqZml4dHVyZSAnaW52YWxpZF9maXh0dXJlJyBub3QgZm91
bmQiXQogICAgICAgICApCiAKLSAgICBkZWYgdGVzdF9wbHVnaW5zX2dpdmVuX2FzX3N0cmluZ3Mo
c2VsZiwgdG1wZGlyLCBtb25rZXlwYXRjaCk6CisgICAgZGVmIHRlc3RfcGx1Z2luc19naXZlbl9h
c19zdHJpbmdzKHNlbGYsIHRtcGRpciwgbW9ua2V5cGF0Y2gsIF9zeXNfc25hcHNob3QpOgogICAg
ICAgICAiIiJ0ZXN0IHRoYXQgc3RyIHZhbHVlcyBwYXNzZWQgdG8gbWFpbigpIGFzIGBwbHVnaW5z
YCBhcmcKICAgICAgICAgYXJlIGludGVycHJldGVkIGFzIG1vZHVsZSBuYW1lcyB0byBiZSBpbXBv
cnRlZCBhbmQgcmVnaXN0ZXJlZC4KICAgICAgICAgIzg1NS4KQEAgLTQ1OCw3ICs1MzAsNiBAQCBj
bGFzcyBUZXN0R2VuZXJhbFVzYWdlKG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdEludm9jYXRpb25W
YXJpYW50cyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfZWFybHlpbml0KHNlbGYsIHRlc3RkaXIp
OgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC00
NzIsNyArNTQzLDcgQEAgY2xhc3MgVGVzdEludm9jYXRpb25WYXJpYW50cyhvYmplY3QpOgogICAg
IEBweXRlc3QubWFyay54ZmFpbCgic3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSIpCiAg
ICAgZGVmIHRlc3RfcHlkb2Moc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIGZvciBuYW1lIGluICgi
cHkudGVzdCIsICJweXRlc3QiKToKLSAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
aG9uX2MoImltcG9ydCAlcztoZWxwKCVzKSIgJSAobmFtZSwgbmFtZSkpCisgICAgICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbl9jKCJpbXBvcnQge307aGVscCh7fSkiLmZvcm1hdChu
YW1lLCBuYW1lKSkKICAgICAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKICAgICAgICAg
ICAgIHMgPSByZXN1bHQuc3Rkb3V0LnN0cigpCiAgICAgICAgICAgICBhc3NlcnQgIk1hcmtHZW5l
cmF0b3IiIGluIHMKQEAgLTU0NCwxMiArNjE1LDExIEBAIGNsYXNzIFRlc3RJbnZvY2F0aW9uVmFy
aWFudHMob2JqZWN0KToKICAgICBkZWYgdGVzdF9lcXVpdmFsZW5jZV9weXRlc3RfcHl0ZXN0KHNl
bGYpOgogICAgICAgICBhc3NlcnQgcHl0ZXN0Lm1haW4gPT0gcHkudGVzdC5jbWRsaW5lLm1haW4K
IAotICAgIGRlZiB0ZXN0X2ludm9rZV93aXRoX3N0cmluZyhzZWxmLCBjYXBzeXMpOgotICAgICAg
ICByZXRjb2RlID0gcHl0ZXN0Lm1haW4oIi1oIikKLSAgICAgICAgYXNzZXJ0IG5vdCByZXRjb2Rl
Ci0gICAgICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQotICAgICAgICBhc3NlcnQg
Ii0taGVscCIgaW4gb3V0Ci0gICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbGFtYmRh
OiBweXRlc3QubWFpbigwKSkKKyAgICBkZWYgdGVzdF9pbnZva2Vfd2l0aF9pbnZhbGlkX3R5cGUo
c2VsZiwgY2Fwc3lzKToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKAorICAgICAgICAgICAg
VHlwZUVycm9yLCBtYXRjaD0iZXhwZWN0ZWQgdG8gYmUgYSBsaXN0IG9yIHR1cGxlIG9mIHN0cmlu
Z3MsIGdvdDogJy1oJyIKKyAgICAgICAgKToKKyAgICAgICAgICAgIHB5dGVzdC5tYWluKCItaCIp
CiAKICAgICBkZWYgdGVzdF9pbnZva2Vfd2l0aF9wYXRoKHNlbGYsIHRtcGRpciwgY2Fwc3lzKToK
ICAgICAgICAgcmV0Y29kZSA9IHB5dGVzdC5tYWluKHRtcGRpcikKQEAgLTU1Nyw5ICs2MjcsNyBA
QCBjbGFzcyBUZXN0SW52b2NhdGlvblZhcmlhbnRzKG9iamVjdCk6CiAgICAgICAgIG91dCwgZXJy
ID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQogCiAgICAgZGVmIHRlc3RfaW52b2tlX3BsdWdpbl9hcGko
c2VsZiwgdGVzdGRpciwgY2Fwc3lzKToKLQogICAgICAgICBjbGFzcyBNeVBsdWdpbihvYmplY3Qp
OgotCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihzZWxmLCBwYXJzZXIpOgogICAg
ICAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0tbXlvcHQiKQogCkBAIC01OTEsMTQgKzY1
OSw4IEBAIGNsYXNzIFRlc3RJbnZvY2F0aW9uVmFyaWFudHMob2JqZWN0KToKICAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyIqMSBwYXNzZWQqIl0pCiAKLSAgICAgICAgZGVmIGpvaW5fcHl0aG9ucGF0aCh3aGF0KToKLSAg
ICAgICAgICAgIGN1ciA9IG9zLmVudmlyb24uZ2V0KCJQWVRIT05QQVRIIikKLSAgICAgICAgICAg
IGlmIGN1cjoKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHdoYXQpICsgb3MucGF0aHNlcCAr
IGN1cgotICAgICAgICAgICAgcmV0dXJuIHdoYXQKLQogICAgICAgICBlbXB0eV9wYWNrYWdlID0g
dGVzdGRpci5ta3B5ZGlyKCJlbXB0eV9wYWNrYWdlIikKLSAgICAgICAgbW9ua2V5cGF0Y2guc2V0
ZW52KCJQWVRIT05QQVRIIiwgam9pbl9weXRob25wYXRoKGVtcHR5X3BhY2thZ2UpKQorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEhPTlBBVEgiLCBzdHIoZW1wdHlfcGFja2FnZSksIHBy
ZXBlbmQ9b3MucGF0aHNlcCkKICAgICAgICAgIyB0aGUgcGF0aCB3aGljaCBpcyBub3QgYSBwYWNr
YWdlIHJhaXNlcyBhIHdhcm5pbmcgb24gcHlweTsKICAgICAgICAgIyBubyBpZGVhIHdoeSBvbmx5
IHB5cHkgYW5kIG5vdCBub3JtYWwgcHl0aG9uIHdhcm4gYWJvdXQgaXQgaGVyZQogICAgICAgICB3
aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CkBAIC02MDcsNyArNjY5LDcgQEAgY2xhc3Mg
VGVzdEludm9jYXRpb25WYXJpYW50cyhvYmplY3QpOgogICAgICAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSAwCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioyIHBhc3NlZCoi
XSkKIAotICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEhPTlBBVEgiLCBqb2luX3B5dGhv
bnBhdGgodGVzdGRpcikpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9OUEFUSCIs
IHN0cih0ZXN0ZGlyKSwgcHJlcGVuZD1vcy5wYXRoc2VwKQogICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLS1weWFyZ3MiLCAidHBrZy50ZXN0X21pc3NpbmciLCBzeXNwYXRoaW5z
ZXJ0PVRydWUpCiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKICAgICAgICAgcmVzdWx0
LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsiKm5vdCpmb3VuZCp0ZXN0X21pc3NpbmcqIl0pCkBAIC02
MTUsNiArNjc3LDggQEAgY2xhc3MgVGVzdEludm9jYXRpb25WYXJpYW50cyhvYmplY3QpOgogICAg
IGRlZiB0ZXN0X2NtZGxpbmVfcHl0aG9uX25hbWVzcGFjZV9wYWNrYWdlKHNlbGYsIHRlc3RkaXIs
IG1vbmtleXBhdGNoKToKICAgICAgICAgIiIiCiAgICAgICAgIHRlc3QgLS1weWFyZ3Mgb3B0aW9u
IHdpdGggbmFtZXNwYWNlIHBhY2thZ2VzICgjMTU2NykKKworICAgICAgICBSZWY6IGh0dHBzOi8v
cGFja2FnaW5nLnB5dGhvbi5vcmcvZ3VpZGVzL3BhY2thZ2luZy1uYW1lc3BhY2UtcGFja2FnZXMv
CiAgICAgICAgICIiIgogICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYoIlBZVEhPTkRPTlRXUklU
RUJZVEVDT0RFIiwgcmFpc2luZz1GYWxzZSkKIApAQCAtNjI5LDcgKzY5Myw3IEBAIGNsYXNzIFRl
c3RJbnZvY2F0aW9uVmFyaWFudHMob2JqZWN0KToKICAgICAgICAgICAgIGxpYiA9IG5zLm1rZGly
KGRpcm5hbWUpCiAgICAgICAgICAgICBsaWIuZW5zdXJlKCJfX2luaXRfXy5weSIpCiAgICAgICAg
ICAgICBsaWIuam9pbigidGVzdF97fS5weSIuZm9ybWF0KGRpcm5hbWUpKS53cml0ZSgKLSAgICAg
ICAgICAgICAgICAiZGVmIHRlc3Rfe30oKTogcGFzc1xuIiAiZGVmIHRlc3Rfb3RoZXIoKTpwYXNz
Ii5mb3JtYXQoZGlybmFtZSkKKyAgICAgICAgICAgICAgICAiZGVmIHRlc3Rfe30oKTogcGFzc1xu
ZGVmIHRlc3Rfb3RoZXIoKTpwYXNzIi5mb3JtYXQoZGlybmFtZSkKICAgICAgICAgICAgICkKIAog
ICAgICAgICAjIFRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHRlc3QgZGlyZWN0b3J5IGlzIG5vdzoKQEAg
LTY0NywyNyArNzExLDIyIEBAIGNsYXNzIFRlc3RJbnZvY2F0aW9uVmFyaWFudHMob2JqZWN0KToK
ICAgICAgICAgIyAgICAgICAgICAgICDilJzilIDilIAgX19pbml0X18ucHkKICAgICAgICAgIyAg
ICAgICAgICAgICDilJTilIDilIAgdGVzdF93b3JsZC5weQogCi0gICAgICAgIGRlZiBqb2luX3B5
dGhvbnBhdGgoKmRpcnMpOgotICAgICAgICAgICAgY3VyID0gb3MuZW52aXJvbi5nZXQoIlBZVEhP
TlBBVEgiKQotICAgICAgICAgICAgaWYgY3VyOgotICAgICAgICAgICAgICAgIGRpcnMgKz0gKGN1
ciwpCi0gICAgICAgICAgICByZXR1cm4gb3MucGF0aHNlcC5qb2luKHN0cihwKSBmb3IgcCBpbiBk
aXJzKQotCi0gICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9OUEFUSCIsIGpvaW5fcHl0
aG9ucGF0aCgqc2VhcmNoX3BhdGgpKQorICAgICAgICAjIE5PVEU6IHRoZSBkaWZmZXJlbnQvcmV2
ZXJzZWQgb3JkZXJpbmcgaXMgaW50ZW50aW9uYWwgaGVyZS4KKyAgICAgICAgbW9ua2V5cGF0Y2gu
c2V0ZW52KCJQWVRIT05QQVRIIiwgcHJlcGVuZF9weXRob25wYXRoKCpzZWFyY2hfcGF0aCkpCiAg
ICAgICAgIGZvciBwIGluIHNlYXJjaF9wYXRoOgogICAgICAgICAgICAgbW9ua2V5cGF0Y2guc3lz
cGF0aF9wcmVwZW5kKHApCiAKICAgICAgICAgIyBtaXhlZCBtb2R1bGUgYW5kIGZpbGVuYW1lczoK
LSAgICAgICAgb3MuY2hkaXIoIndvcmxkIikKKyAgICAgICAgbW9ua2V5cGF0Y2guY2hkaXIoIndv
cmxkIikKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tcHlhcmdzIiwgIi12
IiwgIm5zX3BrZy5oZWxsbyIsICJuc19wa2cvd29ybGQiKQogICAgICAgICBhc3NlcnQgcmVzdWx0
LnJldCA9PSAwCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAg
ICAgIFsKLSAgICAgICAgICAgICAgICAiKnRlc3RfaGVsbG8ucHk6OnRlc3RfaGVsbG8qUEFTU0VE
KiIsCi0gICAgICAgICAgICAgICAgIip0ZXN0X2hlbGxvLnB5Ojp0ZXN0X290aGVyKlBBU1NFRCoi
LAotICAgICAgICAgICAgICAgICIqdGVzdF93b3JsZC5weTo6dGVzdF93b3JsZCpQQVNTRUQqIiwK
LSAgICAgICAgICAgICAgICAiKnRlc3Rfd29ybGQucHk6OnRlc3Rfb3RoZXIqUEFTU0VEKiIsCi0g
ICAgICAgICAgICAgICAgIio0IHBhc3NlZCoiLAorICAgICAgICAgICAgICAgICJ0ZXN0X2hlbGxv
LnB5Ojp0ZXN0X2hlbGxvKlBBU1NFRCoiLAorICAgICAgICAgICAgICAgICJ0ZXN0X2hlbGxvLnB5
Ojp0ZXN0X290aGVyKlBBU1NFRCoiLAorICAgICAgICAgICAgICAgICJuc19wa2cvd29ybGQvdGVz
dF93b3JsZC5weTo6dGVzdF93b3JsZCpQQVNTRUQqIiwKKyAgICAgICAgICAgICAgICAibnNfcGtn
L3dvcmxkL3Rlc3Rfd29ybGQucHk6OnRlc3Rfb3RoZXIqUEFTU0VEKiIsCisgICAgICAgICAgICAg
ICAgIio0IHBhc3NlZCBpbioiLAogICAgICAgICAgICAgXQogICAgICAgICApCiAKQEAgLTY4MSw2
ICs3NDAsMTYgQEAgY2xhc3MgVGVzdEludm9jYXRpb25WYXJpYW50cyhvYmplY3QpOgogICAgICAg
ICAgICAgWyIqdGVzdF93b3JsZC5weTo6dGVzdF9vdGhlcipQQVNTRUQqIiwgIioxIHBhc3NlZCoi
XQogICAgICAgICApCiAKKyAgICBkZWYgdGVzdF9pbnZva2VfdGVzdF9hbmRfZG9jdGVzdG1vZHVs
ZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAg
ICAgICAgICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdChzdHIocCkgKyAiOjp0ZXN0IiwgIi0tZG9jdGVzdC1tb2R1bGVzIikKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorCiAgICAgQHB5dGVzdC5t
YXJrLnNraXBpZihub3QgaGFzYXR0cihvcywgInN5bWxpbmsiKSwgcmVhc29uPSJyZXF1aXJlcyBz
eW1saW5rcyIpCiAgICAgZGVmIHRlc3RfY21kbGluZV9weXRob25fcGFja2FnZV9zeW1saW5rKHNl
bGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKICAgICAgICAgIiIiCkBAIC02OTksOCArNzY4LDYg
QEAgY2xhc3MgVGVzdEludm9jYXRpb25WYXJpYW50cyhvYmplY3QpOgogICAgICAgICAgICAgICAg
IHB5dGVzdC5za2lwKHNpeC50ZXh0X3R5cGUoZS5hcmdzWzBdKSkKICAgICAgICAgbW9ua2V5cGF0
Y2guZGVsZW52KCJQWVRIT05ET05UV1JJVEVCWVRFQ09ERSIsIHJhaXNpbmc9RmFsc2UpCiAKLSAg
ICAgICAgc2VhcmNoX3BhdGggPSBbImxpYiIsIG9zLnBhdGguam9pbigibG9jYWwiLCAibGliIild
Ci0KICAgICAgICAgZGlybmFtZSA9ICJsaWIiCiAgICAgICAgIGQgPSB0ZXN0ZGlyLm1rZGlyKGRp
cm5hbWUpCiAgICAgICAgIGZvbyA9IGQubWtkaXIoImZvbyIpCkBAIC03MDgsMTAgKzc3NSwxMCBA
QCBjbGFzcyBUZXN0SW52b2NhdGlvblZhcmlhbnRzKG9iamVjdCk6CiAgICAgICAgIGxpYiA9IGZv
by5ta2RpcigiYmFyIikKICAgICAgICAgbGliLmVuc3VyZSgiX19pbml0X18ucHkiKQogICAgICAg
ICBsaWIuam9pbigidGVzdF9iYXIucHkiKS53cml0ZSgKLSAgICAgICAgICAgICJkZWYgdGVzdF9i
YXIoKTogcGFzc1xuIiAiZGVmIHRlc3Rfb3RoZXIoYV9maXh0dXJlKTpwYXNzIgorICAgICAgICAg
ICAgImRlZiB0ZXN0X2JhcigpOiBwYXNzXG5kZWYgdGVzdF9vdGhlcihhX2ZpeHR1cmUpOnBhc3Mi
CiAgICAgICAgICkKICAgICAgICAgbGliLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAg
ICAgICAgICAiaW1wb3J0IHB5dGVzdFxuIiAiQHB5dGVzdC5maXh0dXJlXG4iICJkZWYgYV9maXh0
dXJlKCk6cGFzcyIKKyAgICAgICAgICAgICJpbXBvcnQgcHl0ZXN0XG5AcHl0ZXN0LmZpeHR1cmVc
bmRlZiBhX2ZpeHR1cmUoKTpwYXNzIgogICAgICAgICApCiAKICAgICAgICAgZF9sb2NhbCA9IHRl
c3RkaXIubWtkaXIoImxvY2FsIikKQEAgLTczMywyNyArODAwLDMzIEBAIGNsYXNzIFRlc3RJbnZv
Y2F0aW9uVmFyaWFudHMob2JqZWN0KToKICAgICAgICAgIyAgICAgICAgICAgICDilJzilIDilIAg
Y29uZnRlc3QucHkKICAgICAgICAgIyAgICAgICAgICAgICDilJTilIDilIAgdGVzdF9iYXIucHkK
IAotICAgICAgICBkZWYgam9pbl9weXRob25wYXRoKCpkaXJzKToKLSAgICAgICAgICAgIGN1ciA9
IG9zLmdldGVudigiUFlUSE9OUEFUSCIpCi0gICAgICAgICAgICBpZiBjdXI6Ci0gICAgICAgICAg
ICAgICAgZGlycyArPSAoY3VyLCkKLSAgICAgICAgICAgIHJldHVybiBvcy5wYXRoc2VwLmpvaW4o
c3RyKHApIGZvciBwIGluIGRpcnMpCi0KLSAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRI
T05QQVRIIiwgam9pbl9weXRob25wYXRoKCpzZWFyY2hfcGF0aCkpCisgICAgICAgICMgTk9URTog
dGhlIGRpZmZlcmVudC9yZXZlcnNlZCBvcmRlcmluZyBpcyBpbnRlbnRpb25hbCBoZXJlLgorICAg
ICAgICBzZWFyY2hfcGF0aCA9IFsibGliIiwgb3MucGF0aC5qb2luKCJsb2NhbCIsICJsaWIiKV0K
KyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRIT05QQVRIIiwgcHJlcGVuZF9weXRob25w
YXRoKCpzZWFyY2hfcGF0aCkpCiAgICAgICAgIGZvciBwIGluIHNlYXJjaF9wYXRoOgogICAgICAg
ICAgICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9wcmVwZW5kKHApCiAKICAgICAgICAgIyBtb2R1bGUg
cGlja2VkIHVwIGluIHN5bWxpbmstZWQgZGlyZWN0b3J5OgorICAgICAgICAjIEl0IHBpY2tzIHVw
IGxvY2FsL2xpYi9mb28vYmFyIChzeW1saW5rKSB2aWEgc3lzLnBhdGguCiAgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXB5YXJncyIsICItdiIsICJmb28uYmFyIikKICAgICAg
ICAgdGVzdGRpci5jaGRpcigpCiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKLSAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgWwotICAgICAgICAg
ICAgICAgICIqbGliL2Zvby9iYXIvdGVzdF9iYXIucHk6OnRlc3RfYmFyKlBBU1NFRCoiLAotICAg
ICAgICAgICAgICAgICIqbGliL2Zvby9iYXIvdGVzdF9iYXIucHk6OnRlc3Rfb3RoZXIqUEFTU0VE
KiIsCi0gICAgICAgICAgICAgICAgIioyIHBhc3NlZCoiLAotICAgICAgICAgICAgXQotICAgICAg
ICApCisgICAgICAgIGlmIGhhc2F0dHIocHkucGF0aC5sb2NhbCwgIm1rc3ltbGlua3RvIik6Cisg
ICAgICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICAgICAg
WworICAgICAgICAgICAgICAgICAgICAibGliL2Zvby9iYXIvdGVzdF9iYXIucHk6OnRlc3RfYmFy
IFBBU1NFRCoiLAorICAgICAgICAgICAgICAgICAgICAibGliL2Zvby9iYXIvdGVzdF9iYXIucHk6
OnRlc3Rfb3RoZXIgUEFTU0VEKiIsCisgICAgICAgICAgICAgICAgICAgICIqMiBwYXNzZWQqIiwK
KyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICAgICAgWworICAg
ICAgICAgICAgICAgICAgICAiKmxpYi9mb28vYmFyL3Rlc3RfYmFyLnB5Ojp0ZXN0X2JhciBQQVNT
RUQqIiwKKyAgICAgICAgICAgICAgICAgICAgIipsaWIvZm9vL2Jhci90ZXN0X2Jhci5weTo6dGVz
dF9vdGhlciBQQVNTRUQqIiwKKyAgICAgICAgICAgICAgICAgICAgIioyIHBhc3NlZCoiLAorICAg
ICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICkKIAogICAgIGRlZiB0ZXN0X2NtZGxpbmVfcHl0
aG9uX3BhY2thZ2Vfbm90X2V4aXN0cyhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi0tcHlhcmdzIiwgInRwa2d3aGF0diIpCkBAIC03ODgsMTkgKzg2
MSwyMiBAQCBjbGFzcyBUZXN0SW52b2NhdGlvblZhcmlhbnRzKG9iamVjdCk6CiAgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcmYiKQogICAgICAgICBsaW5lcyA9IHJlc3VsdC5z
dGRvdXQuc3RyKCkuc3BsaXRsaW5lcygpCiAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAg
ICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCJGQUlMICIpOgotICAgICAgICAgICAgICAgIHRl
c3RpZCA9IGxpbmVbNTpdLnN0cmlwKCkKKyAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgo
IkZBSUwgIiwgIkZBSUxFRCAiKSk6CisgICAgICAgICAgICAgICAgX2ZhaWwsIF9zZXAsIHRlc3Rp
ZCA9IGxpbmUucGFydGl0aW9uKCIgIikKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0aWQsICItcmYiKQotICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoW2xpbmUsICIqMSBmYWlsZWQqIl0pCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsiRkFJTEVEIHRlc3RfZG9jdGVz
dF9pZC50eHQ6OnRlc3RfZG9jdGVzdF9pZC50eHQiLCAiKjEgZmFpbGVkKiJdCisgICAgICAgICkK
IAogICAgIGRlZiB0ZXN0X2NvcmVfYmFja3dhcmRfY29tcGF0aWJpbGl0eShzZWxmKToKICAgICAg
ICAgIiIiVGVzdCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBnZXRfcGx1Z2luX21hbmFnZXIg
ZnVuY3Rpb24uIFNlZSAjNzg3LiIiIgogICAgICAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKIAot
ICAgICAgICBhc3NlcnQgdHlwZSgKLSAgICAgICAgICAgIF9weXRlc3QuY29uZmlnLmdldF9wbHVn
aW5fbWFuYWdlcigpCi0gICAgICAgICkgaXMgX3B5dGVzdC5jb25maWcuUHl0ZXN0UGx1Z2luTWFu
YWdlcgorICAgICAgICBhc3NlcnQgKAorICAgICAgICAgICAgdHlwZShfcHl0ZXN0LmNvbmZpZy5n
ZXRfcGx1Z2luX21hbmFnZXIoKSkKKyAgICAgICAgICAgIGlzIF9weXRlc3QuY29uZmlnLlB5dGVz
dFBsdWdpbk1hbmFnZXIKKyAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfaGFzX3BsdWdpbihzZWxm
LCByZXF1ZXN0KToKICAgICAgICAgIiIiVGVzdCBoYXNwbHVnaW4gZnVuY3Rpb24gb2YgdGhlIHBs
dWdpbiBtYW5hZ2VyICgjOTMyKS4iIiIKQEAgLTgyNiw3ICs5MDIsMTAgQEAgY2xhc3MgVGVzdER1
cmF0aW9ucyhvYmplY3QpOgogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1k
dXJhdGlvbnM9MTAiKQogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCiAgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lc19yYW5kb20oCi0gICAgICAgICAgICBbIipkdXJhdGlv
bnMqIiwgIipjYWxsKnRlc3RfMyoiLCAiKmNhbGwqdGVzdF8yKiIsICIqY2FsbCp0ZXN0XzEqIl0K
KyAgICAgICAgICAgIFsiKmR1cmF0aW9ucyoiLCAiKmNhbGwqdGVzdF8zKiIsICIqY2FsbCp0ZXN0
XzIqIl0KKyAgICAgICAgKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisg
ICAgICAgICAgICBbIigwLjAwIGR1cmF0aW9ucyBoaWRkZW4uICBVc2UgLXZ2IHRvIHNob3cgdGhl
c2UgZHVyYXRpb25zLikiXQogICAgICAgICApCiAKICAgICBkZWYgdGVzdF9jYWxsc19zaG93XzIo
c2VsZiwgdGVzdGRpcik6CkBAIC04NDAsMTkgKzkxOSwzMSBAQCBjbGFzcyBUZXN0RHVyYXRpb25z
KG9iamVjdCk6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzZWxmLnNvdXJjZSkKICAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZHVyYXRpb25zPTAiKQogICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAgIGZvciB4IGluICIyMyI6CisgICAgICAgICAg
ICBmb3IgeSBpbiAoImNhbGwiLCk6ICAjICdzZXR1cCcsICdjYWxsJywgJ3RlYXJkb3duJzoKKyAg
ICAgICAgICAgICAgICBmb3IgbGluZSBpbiByZXN1bHQuc3Rkb3V0LmxpbmVzOgorICAgICAgICAg
ICAgICAgICAgICBpZiAoInRlc3RfJXMiICUgeCkgaW4gbGluZSBhbmQgeSBpbiBsaW5lOgorICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigibm90IGZvdW5kIHt9IHt9Ii5mb3Jt
YXQoeCwgeSkpCisKKyAgICBkZWYgdGVzdF9jYWxsc19zaG93YWxsX3ZlcmJvc2Uoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzZWxmLnNvdXJjZSkKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZHVyYXRpb25zPTAiLCAiLXZ2IikKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAogICAgICAgICBmb3IgeCBpbiAiMTIzIjoKICAgICAg
ICAgICAgIGZvciB5IGluICgiY2FsbCIsKTogICMgJ3NldHVwJywgJ2NhbGwnLCAndGVhcmRvd24n
OgogICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHJlc3VsdC5zdGRvdXQubGluZXM6CiAgICAg
ICAgICAgICAgICAgICAgIGlmICgidGVzdF8lcyIgJSB4KSBpbiBsaW5lIGFuZCB5IGluIGxpbmU6
CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCJub3QgZm91bmQgJXMgJXMi
ICUgKHgsIHkpKQorICAgICAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigibm90
IGZvdW5kIHt9IHt9Ii5mb3JtYXQoeCwgeSkpCiAKICAgICBkZWYgdGVzdF93aXRoX2Rlc2VsZWN0
ZWQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzZWxmLnNvdXJj
ZSkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZHVyYXRpb25zPTIiLCAi
LWsgdGVzdF8xIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZHVyYXRp
b25zPTIiLCAiLWsgdGVzdF8yIikKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAotICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqZHVyYXRpb25zKiIsICIqY2FsbCp0
ZXN0XzEqIl0pCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipkdXJhdGlv
bnMqIiwgIipjYWxsKnRlc3RfMioiXSkKIAogICAgIGRlZiB0ZXN0X3dpdGhfZmFpbGluZ19jb2xs
ZWN0aW9uKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoc2VsZi5z
b3VyY2UpCkBAIC04NzIsMTMgKzk2MywxNSBAQCBjbGFzcyBUZXN0RHVyYXRpb25zKG9iamVjdCk6
CiAKIGNsYXNzIFRlc3REdXJhdGlvbldpdGhGaXh0dXJlKG9iamVjdCk6CiAgICAgc291cmNlID0g
IiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKICAgICAgICAgaW1wb3J0IHRpbWUKLSAgICAgICAg
ZnJhZyA9IDAuMDAxCi0gICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbihmdW5jKToKLSAgICAgICAg
ICAgIHRpbWUuc2xlZXAoZnJhZyAqIDMpCi0gICAgICAgIGRlZiB0ZXN0XzEoKToKLSAgICAgICAg
ICAgIHRpbWUuc2xlZXAoZnJhZyoyKQotICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAgICAgIGZy
YWcgPSAwLjAxCisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBzZXR1cF9m
aXh0KCk6CisgICAgICAgICAgICB0aW1lLnNsZWVwKGZyYWcpCisKKyAgICAgICAgZGVmIHRlc3Rf
MShzZXR1cF9maXh0KToKICAgICAgICAgICAgIHRpbWUuc2xlZXAoZnJhZykKICAgICAiIiIKIApA
QCAtOTMzLDYgKzEwMjYsMjAgQEAgZGVmIHRlc3RfaW1wb3J0X3BsdWdpbl91bmljb2RlX25hbWUo
dGVzdGRpcik6CiAgICAgYXNzZXJ0IHIucmV0ID09IDAKIAogCitkZWYgdGVzdF9weXRlc3RfcGx1
Z2luc19hc19tb2R1bGUodGVzdGRpcik6CisgICAgIiIiRG8gbm90IHJhaXNlIGFuIGVycm9yIGlm
IHB5dGVzdF9wbHVnaW5zIGF0dHJpYnV0ZSBpcyBhIG1vZHVsZSAoIzM4OTkpIiIiCisgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAorICAgICAgICAqKnsKKyAgICAgICAgICAgICJfX2luaXRfXy5weSI6
ICIiLAorICAgICAgICAgICAgInB5dGVzdF9wbHVnaW5zLnB5IjogIiIsCisgICAgICAgICAgICAi
Y29uZnRlc3QucHkiOiAiZnJvbSAuIGltcG9ydCBweXRlc3RfcGx1Z2lucyIsCisgICAgICAgICAg
ICAidGVzdF9mb28ucHkiOiAiZGVmIHRlc3QoKTogcGFzcyIsCisgICAgICAgIH0KKyAgICApCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbIiogMSBwYXNzZWQgaW4gKiJdKQorCisKIGRlZiB0ZXN0X2RlZmVycmVkX2hvb2tf
Y2hlY2tpbmcodGVzdGRpcik6CiAgICAgIiIiCiAgICAgQ2hlY2sgaG9va3MgYXMgbGF0ZSBhcyBw
b3NzaWJsZSAoIzE4MjEpLgpAQCAtMTA2NCwzICsxMTcxLDQzIEBAIGRlZiB0ZXN0X2ZyYW1lX2xl
YWtfb25fZmFpbGluZ190ZXN0KHRlc3RkaXIpOgogICAgICkKICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyIqMSBmYWlsZWQsIDEgcGFzc2VkIGluKiJdKQorCisKK2RlZiB0ZXN0X2ZpeHR1cmVfbW9ja19p
bnRlZ3JhdGlvbih0ZXN0ZGlyKToKKyAgICAiIiJUZXN0IHRoYXQgZGVjb3JhdG9ycyBhcHBsaWVk
IHRvIGZpeHR1cmUgYXJlIGxlZnQgd29ya2luZyAoIzM3NzQpIiIiCisgICAgcCA9IHRlc3RkaXIu
Y29weV9leGFtcGxlKCJhY2NlcHRhbmNlL2ZpeHR1cmVfbW9ja19pbnRlZ3JhdGlvbi5weSIpCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKworZGVmIHRlc3RfdXNhZ2VfZXJyb3JfY29kZSh0
ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXVua25vd24tb3B0aW9u
LSIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9VU0FHRUVSUk9SCisKKworQHB5dGVz
dC5tYXJrLnNraXBpZigKKyAgICBzeXMudmVyc2lvbl9pbmZvWzoyXSA8ICgzLCA1KSwgcmVhc29u
PSJhc3luYyBkZWYgc3ludGF4IHB5dGhvbiAzLjUrIG9ubHkiCispCitAcHl0ZXN0Lm1hcmsuZmls
dGVyd2FybmluZ3MoImRlZmF1bHQiKQorZGVmIHRlc3Rfd2Fybl9vbl9hc3luY19mdW5jdGlvbih0
ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgIHRlc3RfYXN5bmM9IiIi
CisgICAgICAgIGFzeW5jIGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
YXN5bmMgZGVmIHRlc3RfMigpOgorICAgICAgICAgICAgcGFzcworICAgICIiIgorICAgICkKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAidGVzdF9hc3luYy5weTo6dGVzdF8xIiwK
KyAgICAgICAgICAgICJ0ZXN0X2FzeW5jLnB5Ojp0ZXN0XzIiLAorICAgICAgICAgICAgIipDb3Jv
dXRpbmUgZnVuY3Rpb25zIGFyZSBub3QgbmF0aXZlbHkgc3VwcG9ydGVkKiIsCisgICAgICAgICAg
ICAiKjIgc2tpcHBlZCwgMiB3YXJuaW5ncyBpbioiLAorICAgICAgICBdCisgICAgKQorICAgICMg
ZW5zdXJlIG91ciB3YXJuaW5nIG1lc3NhZ2UgYXBwZWFycyBvbmx5IG9uY2UKKyAgICBhc3NlcnQg
KAorICAgICAgICByZXN1bHQuc3Rkb3V0LnN0cigpLmNvdW50KCJDb3JvdXRpbmUgZnVuY3Rpb25z
IGFyZSBub3QgbmF0aXZlbHkgc3VwcG9ydGVkIikgPT0gMQorICAgICkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2NvZGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2NvZGUvdGVzdF9jb2RlLnB5CmluZGV4IGJmYWUzNjkxODgyZWZhYzE2NGE0NWI4MWVkZTRlYjM0
MDExMzdiNjAuLjBiNjNmY2Y0ZDQyMWQ4YmMzODNkZmUyYzY5ODg0NWRlMWQ2MTY0NDAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2NvZGUucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9jb2RlL3Rlc3RfY29kZS5weQpAQCAtMSwxMiArMSwyMCBAQAotIyBjb2Rp
bmc6IHV0Zi04Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNp
b24sIHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNp
b24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IHN5cwog
Citmcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCitmcm9tIHRlc3RfZXhjaW5mbyBpbXBvcnQgVFdN
b2NrCisKIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi1pbXBvcnQgcHkKIGltcG9ydCBweXRlc3QKLWZy
b20gdGVzdF9leGNpbmZvIGltcG9ydCBUV01vY2sKLWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUK
KwordHJ5OgorICAgIGltcG9ydCBtb2NrCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgaW1wb3J0
IHVuaXR0ZXN0Lm1vY2sgYXMgbW9jawogCiAKIGRlZiB0ZXN0X25lKCk6CkBAIC0yNiwxNyArMzQs
MTQgQEAgZGVmIHRlc3RfY29kZV9naXZlc19iYWNrX25hbWVfZm9yX25vdF9leGlzdGluZ19maWxl
KCk6CiAKIAogZGVmIHRlc3RfY29kZV93aXRoX2NsYXNzKCk6Ci0KICAgICBjbGFzcyBBKG9iamVj
dCk6CiAgICAgICAgIHBhc3MKIAotICAgIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yLCAiX3B5dGVz
dC5fY29kZS5Db2RlKEEpIikKLQorICAgIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yLCBfcHl0ZXN0
Ll9jb2RlLkNvZGUsIEEpCiAKLWlmIFRydWU6CiAKLSAgICBkZWYgeCgpOgotICAgICAgICBwYXNz
CitkZWYgeCgpOgorICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQogCiAKIGRlZiB0ZXN0
X2NvZGVfZnVsbHNvdXJjZSgpOgpAQCAtNDksMTIgKzU0LDExIEBAIGRlZiB0ZXN0X2NvZGVfc291
cmNlKCk6CiAgICAgY29kZSA9IF9weXRlc3QuX2NvZGUuQ29kZSh4KQogICAgIHNyYyA9IGNvZGUu
c291cmNlKCkKICAgICBleHBlY3RlZCA9ICIiImRlZiB4KCk6Ci0gICAgcGFzcyIiIgorICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKSIiIgogICAgIGFzc2VydCBzdHIoc3JjKSA9PSBleHBl
Y3RlZAogCiAKIGRlZiB0ZXN0X2ZyYW1lX2dldHNvdXJjZWxpbmVub19teXNlbGYoKToKLQogICAg
IGRlZiBmdW5jKCk6CiAgICAgICAgIHJldHVybiBzeXMuX2dldGZyYW1lKDApCiAKQEAgLTY1LDE4
ICs2OSwxMyBAQCBkZWYgdGVzdF9mcmFtZV9nZXRzb3VyY2VsaW5lbm9fbXlzZWxmKCk6CiAKIAog
ZGVmIHRlc3RfZ2V0c3RhdGVtZW50X2VtcHR5X2Z1bGxzb3VyY2UoKToKLQogICAgIGRlZiBmdW5j
KCk6CiAgICAgICAgIHJldHVybiBzeXMuX2dldGZyYW1lKDApCiAKICAgICBmID0gZnVuYygpCiAg
ICAgZiA9IF9weXRlc3QuX2NvZGUuRnJhbWUoZikKLSAgICBwcm9wID0gZi5jb2RlLl9fY2xhc3Nf
Xy5mdWxsc291cmNlCi0gICAgdHJ5OgotICAgICAgICBmLmNvZGUuX19jbGFzc19fLmZ1bGxzb3Vy
Y2UgPSBOb25lCi0gICAgICAgIGFzc2VydCBmLnN0YXRlbWVudCA9PSBfcHl0ZXN0Ll9jb2RlLlNv
dXJjZSgiIikKLSAgICBmaW5hbGx5OgotICAgICAgICBmLmNvZGUuX19jbGFzc19fLmZ1bGxzb3Vy
Y2UgPSBwcm9wCisgICAgd2l0aCBtb2NrLnBhdGNoLm9iamVjdChmLmNvZGUuX19jbGFzc19fLCAi
ZnVsbHNvdXJjZSIsIE5vbmUpOgorICAgICAgICBhc3NlcnQgZi5zdGF0ZW1lbnQgPT0gIiIKIAog
CiBkZWYgdGVzdF9jb2RlX2Zyb21fZnVuYygpOgpAQCAtODYsMjAgKzg1LDIwIEBAIGRlZiB0ZXN0
X2NvZGVfZnJvbV9mdW5jKCk6CiAKIAogZGVmIHRlc3RfdW5pY29kZV9oYW5kbGluZygpOgotICAg
IHZhbHVlID0gcHkuYnVpbHRpbi5fdG90ZXh0KCJceGM0XHg4NVx4YzRceDg3XG4iLCAidXRmLTgi
KS5lbmNvZGUoInV0ZjgiKQorICAgIHZhbHVlID0gdSLEhcSHIi5lbmNvZGUoIlVURi04IikKIAog
ICAgIGRlZiBmKCk6CiAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbih2YWx1ZSkKIAogICAgIGV4Y2lu
Zm8gPSBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgZikKLSAgICBzdHIoZXhjaW5mbykKLSAgICBp
ZiBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKLSAgICAgICAgdGV4dF90eXBlKGV4Y2luZm8pCisg
ICAgdGV4dF90eXBlKGV4Y2luZm8pCisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6Cisg
ICAgICAgIGJ5dGVzKGV4Y2luZm8pCiAKIAogQHB5dGVzdC5tYXJrLnNraXBpZihzeXMudmVyc2lv
bl9pbmZvWzBdID49IDMsIHJlYXNvbj0icHl0aG9uIDIgb25seSBpc3N1ZSIpCiBkZWYgdGVzdF91
bmljb2RlX2hhbmRsaW5nX3N5bnRheF9lcnJvcigpOgotICAgIHZhbHVlID0gcHkuYnVpbHRpbi5f
dG90ZXh0KCJceGM0XHg4NVx4YzRceDg3XG4iLCAidXRmLTgiKS5lbmNvZGUoInV0ZjgiKQorICAg
IHZhbHVlID0gdSLEhcSHIi5lbmNvZGUoIlVURi04IikKIAogICAgIGRlZiBmKCk6CiAgICAgICAg
IHJhaXNlIFN5bnRheEVycm9yKCJpbnZhbGlkIHN5bnRheCIsIChOb25lLCAxLCAzLCB2YWx1ZSkp
CkBAIC0xMTEsMzQgKzExMCwzMiBAQCBkZWYgdGVzdF91bmljb2RlX2hhbmRsaW5nX3N5bnRheF9l
cnJvcigpOgogCiAKIGRlZiB0ZXN0X2NvZGVfZ2V0YXJncygpOgotCiAgICAgZGVmIGYxKHgpOgot
ICAgICAgICBwYXNzCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQogCiAgICAg
YzEgPSBfcHl0ZXN0Ll9jb2RlLkNvZGUoZjEpCiAgICAgYXNzZXJ0IGMxLmdldGFyZ3ModmFyPVRy
dWUpID09ICgieCIsKQogCiAgICAgZGVmIGYyKHgsICp5KToKLSAgICAgICAgcGFzcworICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKIAogICAgIGMyID0gX3B5dGVzdC5fY29kZS5D
b2RlKGYyKQogICAgIGFzc2VydCBjMi5nZXRhcmdzKHZhcj1UcnVlKSA9PSAoIngiLCAieSIpCiAK
ICAgICBkZWYgZjMoeCwgKip6KToKLSAgICAgICAgcGFzcworICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yKCkKIAogICAgIGMzID0gX3B5dGVzdC5fY29kZS5Db2RlKGYzKQogICAgIGFz
c2VydCBjMy5nZXRhcmdzKHZhcj1UcnVlKSA9PSAoIngiLCAieiIpCiAKICAgICBkZWYgZjQoeCwg
KnksICoqeik6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cigpCiAKICAgICBjNCA9IF9weXRlc3QuX2NvZGUuQ29kZShmNCkKICAgICBhc3NlcnQgYzQuZ2V0
YXJncyh2YXI9VHJ1ZSkgPT0gKCJ4IiwgInkiLCAieiIpCiAKIAogZGVmIHRlc3RfZnJhbWVfZ2V0
YXJncygpOgotCiAgICAgZGVmIGYxKHgpOgogICAgICAgICByZXR1cm4gc3lzLl9nZXRmcmFtZSgw
KQogCkBAIC0xNjUsNyArMTYyLDYgQEAgZGVmIHRlc3RfZnJhbWVfZ2V0YXJncygpOgogCiAKIGNs
YXNzIFRlc3RFeGNlcHRpb25JbmZvKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9iYWRfZ2V0c291
cmNlKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiBGYWxzZToKQEAgLTE3Mywx
MiArMTY5LDE1IEBAIGNsYXNzIFRlc3RFeGNlcHRpb25JbmZvKG9iamVjdCk6CiAgICAgICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZQogICAgICAgICBleGNlcHQgQXNz
ZXJ0aW9uRXJyb3I6Ci0gICAgICAgICAgICBleGNpID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25J
bmZvKCkKKyAgICAgICAgICAgIGV4Y2kgPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8uZnJv
bV9jdXJyZW50KCkKICAgICAgICAgYXNzZXJ0IGV4Y2kuZ2V0cmVwcigpCiAKKyAgICBkZWYgdGVz
dF9mcm9tX2N1cnJlbnRfd2l0aF9taXNzaW5nKHNlbGYpOgorICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoQXNzZXJ0aW9uRXJyb3IsIG1hdGNoPSJubyBjdXJyZW50IGV4Y2VwdGlvbiIpOgorICAg
ICAgICAgICAgX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCiAKLWNs
YXNzIFRlc3RUcmFjZWJhY2tFbnRyeShvYmplY3QpOgogCitjbGFzcyBUZXN0VHJhY2ViYWNrRW50
cnkob2JqZWN0KToKICAgICBkZWYgdGVzdF9nZXRzb3VyY2Uoc2VsZik6CiAgICAgICAgIHRyeToK
ICAgICAgICAgICAgIGlmIEZhbHNlOgpAQCAtMTg2LDcgKzE4NSw3IEBAIGNsYXNzIFRlc3RUcmFj
ZWJhY2tFbnRyeShvYmplY3QpOgogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBh
c3NlcnQgRmFsc2UKICAgICAgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgotICAgICAgICAgICAg
ZXhjaSA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgICAgICBleGNpID0g
X3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCiAgICAgICAgIGVudHJ5
ID0gZXhjaS50cmFjZWJhY2tbMF0KICAgICAgICAgc291cmNlID0gZW50cnkuZ2V0c291cmNlKCkK
ICAgICAgICAgYXNzZXJ0IGxlbihzb3VyY2UpID09IDYKQEAgLTE5NCwxNyArMTkzLDE5IEBAIGNs
YXNzIFRlc3RUcmFjZWJhY2tFbnRyeShvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RSZXByRnVuY0Fy
Z3Mob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X25vdF9yYWlzZV9leGNlcHRpb25fd2l0aF9taXhl
ZF9lbmNvZGluZyhzZWxmKToKICAgICAgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0
IFJlcHJGdW5jQXJncwogCiAgICAgICAgIHR3ID0gVFdNb2NrKCkKIAotICAgICAgICBhcmdzID0g
WygidW5pY29kZV9zdHJpbmciLCB1IlPDo28gUGF1bG8iKSwgKCJ1dGY4X3N0cmluZyIsICJTXHhj
M1x4YTNvIFBhdWxvIildCisgICAgICAgIGFyZ3MgPSBbKCJ1bmljb2RlX3N0cmluZyIsIHUiU8Oj
byBQYXVsbyIpLCAoInV0Zjhfc3RyaW5nIiwgYiJTXHhjM1x4YTNvIFBhdWxvIildCiAKICAgICAg
ICAgciA9IFJlcHJGdW5jQXJncyhhcmdzKQogICAgICAgICByLnRvdGVybWluYWwodHcpCiAgICAg
ICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKLSAgICAgICAgICAgIGFzc2VydCB0dy5s
aW5lc1swXSA9PSAidW5pY29kZV9zdHJpbmcgPSBTw6NvIFBhdWxvLCB1dGY4X3N0cmluZyA9IFPD
g8KjbyBQYXVsbyIKKyAgICAgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICAgICAgdHcubGlu
ZXNbMF0KKyAgICAgICAgICAgICAgICA9PSByInVuaWNvZGVfc3RyaW5nID0gU8OjbyBQYXVsbywg
dXRmOF9zdHJpbmcgPSBiJ1NceGMzXHhhM28gUGF1bG8nIgorICAgICAgICAgICAgKQogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzBdID09ICJ1bmljb2RlX3N0cmlu
ZyA9IFPDo28gUGF1bG8sIHV0Zjhfc3RyaW5nID0gU8OjbyBQYXVsbyIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5CmluZGV4IGY0MDQ0YjZlY2M0NDg5ZTMzZTMyMDliMzY3
YzQ1MDU4NjI4ODY3MDEuLmE3Njc5NzMwMWRkZDU0NzMyNzFiN2VkNTNhNjJhYzY5NjA5MThhYmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weQpAQCAtMSwyMSArMSwy
MyBAQAogIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBvcGVyYXRvcgog
aW1wb3J0IG9zCiBpbXBvcnQgc3lzCi1pbXBvcnQgX3B5dGVzdAoraW1wb3J0IHRleHR3cmFwCisK
IGltcG9ydCBweQotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0
ICgKLSAgICBFeGNlcHRpb25JbmZvLAotICAgIEZvcm1hdHRlZEV4Y2luZm8sCi0gICAgUmVwckV4
Y2VwdGlvbkluZm8sCi0gICAgRXhjZXB0aW9uQ2hhaW5SZXByLAotKQoraW1wb3J0IHNpeAogZnJv
bSBzaXgubW92ZXMgaW1wb3J0IHF1ZXVlCiAKLWZyb20gdGVzdF9zb3VyY2UgaW1wb3J0IGFzdG9u
bHkKK2ltcG9ydCBfcHl0ZXN0CitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuX2NvZGUuY29k
ZSBpbXBvcnQgRXhjZXB0aW9uQ2hhaW5SZXByCitmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBv
cnQgRXhjZXB0aW9uSW5mbworZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IEZvcm1hdHRl
ZEV4Y2luZm8KK2Zyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBSZXByRXhjZXB0aW9uSW5m
bwogCiB0cnk6CiAgICAgaW1wb3J0IGltcG9ydGxpYgpAQCAtMjksNiArMzEsMTQgQEAgZmFpbHNv
bmp5dGhvbiA9IHB5dGVzdC5tYXJrLnhmYWlsKCJzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnamF2
YScpIikKIHB5dGVzdF92ZXJzaW9uX2luZm8gPSB0dXBsZShtYXAoaW50LCBweXRlc3QuX192ZXJz
aW9uX18uc3BsaXQoIi4iKVs6M10pKQogCiAKK0BweXRlc3QuZml4dHVyZQorZGVmIGxpbWl0ZWRf
cmVjdXJzaW9uX2RlcHRoKCk6CisgICAgYmVmb3JlID0gc3lzLmdldHJlY3Vyc2lvbmxpbWl0KCkK
KyAgICBzeXMuc2V0cmVjdXJzaW9ubGltaXQoMTUwKQorICAgIHlpZWxkCisgICAgc3lzLnNldHJl
Y3Vyc2lvbmxpbWl0KGJlZm9yZSkKKworCiBjbGFzcyBUV01vY2sob2JqZWN0KToKICAgICBXUklU
RSA9IG9iamVjdCgpCiAKQEAgLTYwLDEyICs3MCwxMSBAQCBkZWYgdGVzdF9leGNpbmZvX3NpbXBs
ZSgpOgogICAgIHRyeToKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgogICAgIGV4Y2VwdCBWYWx1
ZUVycm9yOgotICAgICAgICBpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAg
ICAgICAgaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKQog
ICAgIGFzc2VydCBpbmZvLnR5cGUgPT0gVmFsdWVFcnJvcgogCiAKIGRlZiB0ZXN0X2V4Y2luZm9f
Z2V0c3RhdGVtZW50KCk6Ci0KICAgICBkZWYgZygpOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9y
CiAKQEAgLTc1LDcgKzg0LDcgQEAgZGVmIHRlc3RfZXhjaW5mb19nZXRzdGF0ZW1lbnQoKToKICAg
ICB0cnk6CiAgICAgICAgIGYoKQogICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICBleGNp
bmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgZXhjaW5mbyA9IF9w
eXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKQogICAgIGxpbmVudW1iZXJz
ID0gWwogICAgICAgICBfcHl0ZXN0Ll9jb2RlLmdldHJhd2NvZGUoZikuY29fZmlyc3RsaW5lbm8g
LSAxICsgNCwKICAgICAgICAgX3B5dGVzdC5fY29kZS5nZXRyYXdjb2RlKGYpLmNvX2ZpcnN0bGlu
ZW5vIC0gMSArIDEsCkBAIC0xMTIsMTIgKzEyMSwxMSBAQCBkZWYgaCgpOgogCiAKIGNsYXNzIFRl
c3RUcmFjZWJhY2tfZl9nX2gob2JqZWN0KToKLQogICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZiwg
bWV0aG9kKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgaCgpCiAgICAgICAgIGV4Y2VwdCBW
YWx1ZUVycm9yOgotICAgICAgICAgICAgc2VsZi5leGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNl
cHRpb25JbmZvKCkKKyAgICAgICAgICAgIHNlbGYuZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhj
ZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKQogCiAgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2VudHJp
ZXMoc2VsZik6CiAgICAgICAgIHRiID0gc2VsZi5leGNpbmZvLnRyYWNlYmFjawpAQCAtMTM4LDcg
KzE0Niw2IEBAIGNsYXNzIFRlc3RUcmFjZWJhY2tfZl9nX2gob2JqZWN0KToKICAgICAgICAgYXNz
ZXJ0IHMuc3RhcnRzd2l0aCgiZGVmIGYoKToiKQogICAgICAgICBhc3NlcnQgcy5lbmRzd2l0aCgi
cmFpc2UgVmFsdWVFcnJvciIpCiAKLSAgICBAYXN0b25seQogICAgIEBmYWlsc29uanl0aG9uCiAg
ICAgZGVmIHRlc3RfdHJhY2ViYWNrX2VudHJ5X2dldHNvdXJjZV9pbl9jb25zdHJ1Y3Qoc2VsZik6
CiAgICAgICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKApAQCAtMTQ5LDEyICsxNTYs
MTIgQEAgY2xhc3MgVGVzdFRyYWNlYmFja19mX2dfaChvYmplY3QpOgogICAgICAgICAgICAgICAg
IGV4Y2VwdCBzb21lbm9uYW1lOgogICAgICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAg
ICB4eXooKQotICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAg
IHRyeToKICAgICAgICAgICAgIGV4ZWMoc291cmNlLmNvbXBpbGUoKSkKICAgICAgICAgZXhjZXB0
IE5hbWVFcnJvcjoKLSAgICAgICAgICAgIHRiID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZv
KCkudHJhY2ViYWNrCisgICAgICAgICAgICB0YiA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5m
by5mcm9tX2N1cnJlbnQoKS50cmFjZWJhY2sKICAgICAgICAgICAgIHByaW50KHRiWy0xXS5nZXRz
b3VyY2UoKSkKICAgICAgICAgICAgIHMgPSBzdHIodGJbLTFdLmdldHNvdXJjZSgpKQogICAgICAg
ICAgICAgYXNzZXJ0IHMuc3RhcnRzd2l0aCgiZGVmIHh5eigpOlxuICAgIHRyeToiKQpAQCAtMTcx
LDcgKzE3OCw4IEBAIGNsYXNzIFRlc3RUcmFjZWJhY2tfZl9nX2gob2JqZWN0KToKIAogICAgIGRl
ZiB0ZXN0X3RyYWNlYmFja19jdXRfZXhjbHVkZXBhdGgoc2VsZiwgdGVzdGRpcik6CiAgICAgICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiBmKCk6IHJhaXNlIFZhbHVlRXJyb3IiKQotICAg
ICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAicC5weWltcG9ydCgpLmYo
KSIpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKSBhcyBleGNpbmZvOgor
ICAgICAgICAgICAgcC5weWltcG9ydCgpLmYoKQogICAgICAgICBiYXNlZGlyID0gcHkucGF0aC5s
b2NhbChweXRlc3QuX19maWxlX18pLmRpcnBhdGgoKQogICAgICAgICBuZXd0cmFjZWJhY2sgPSBl
eGNpbmZvLnRyYWNlYmFjay5jdXQoZXhjbHVkZXBhdGg9YmFzZWRpcikKICAgICAgICAgZm9yIHgg
aW4gbmV3dHJhY2ViYWNrOgpAQCAtMTk0LDcgKzIwMiw2IEBAIGNsYXNzIFRlc3RUcmFjZWJhY2tf
Zl9nX2gob2JqZWN0KToKICAgICAgICAgXSwKICAgICApCiAgICAgZGVmIHRlc3RfdHJhY2ViYWNr
X2ZpbHRlcl9zZWxlY3RpdmUoc2VsZiwgdHJhY2ViYWNraGlkZSwgbWF0Y2hpbmcpOgotCiAgICAg
ICAgIGRlZiBmKCk6CiAgICAgICAgICAgICAjCiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
CkBAIC0yMjQsNyArMjMxLDYgQEAgY2xhc3MgVGVzdFRyYWNlYmFja19mX2dfaChvYmplY3QpOgog
ICAgICAgICAgICAgYXNzZXJ0IGxlbihudHJhY2ViYWNrKSA9PSBsZW4odHJhY2ViYWNrKSAtIDEK
IAogICAgIGRlZiB0ZXN0X3RyYWNlYmFja19yZWN1cnNpb25faW5kZXgoc2VsZik6Ci0KICAgICAg
ICAgZGVmIGYobik6CiAgICAgICAgICAgICBpZiBuIDwgMTA6CiAgICAgICAgICAgICAgICAgbiAr
PSAxCkBAIC0yMzYsMTkgKzI0MiwxNyBAQCBjbGFzcyBUZXN0VHJhY2ViYWNrX2ZfZ19oKG9iamVj
dCk6CiAgICAgICAgIGFzc2VydCByZWNpbmRleCA9PSAzCiAKICAgICBkZWYgdGVzdF90cmFjZWJh
Y2tfb25seV9zcGVjaWZpY19yZWN1cnNpb25fZXJyb3JzKHNlbGYsIG1vbmtleXBhdGNoKToKLQog
ICAgICAgICBkZWYgZihuKToKICAgICAgICAgICAgIGlmIG4gPT0gMDoKICAgICAgICAgICAgICAg
ICByYWlzZSBSdW50aW1lRXJyb3IoImhlbGxvIikKICAgICAgICAgICAgIGYobiAtIDEpCiAKLSAg
ICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoUnVudGltZUVycm9yLCBmLCAxMDApCisgICAg
ICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgZiwgMjUpCiAgICAgICAg
IG1vbmtleXBhdGNoLmRlbGF0dHIoZXhjaW5mby50cmFjZWJhY2suX19jbGFzc19fLCAicmVjdXJz
aW9uaW5kZXgiKQogICAgICAgICByZXByID0gZXhjaW5mby5nZXRyZXByKCkKICAgICAgICAgYXNz
ZXJ0ICJSdW50aW1lRXJyb3I6IGhlbGxvIiBpbiBzdHIocmVwci5yZXByY3Jhc2gpCiAKICAgICBk
ZWYgdGVzdF90cmFjZWJhY2tfbm9fcmVjdXJzaW9uX2luZGV4KHNlbGYpOgotCiAgICAgICAgIGRl
ZiBkb19zdHVmZigpOgogICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yCiAKQEAgLTI1Niw3
ICsyNjAsNyBAQCBjbGFzcyBUZXN0VHJhY2ViYWNrX2ZfZ19oKG9iamVjdCk6CiAgICAgICAgICAg
ICBpbXBvcnQgc3lzCiAKICAgICAgICAgICAgIGV4YywgdmFsLCB0YiA9IHN5cy5leGNfaW5mbygp
Ci0gICAgICAgICAgICBweS5idWlsdGluLl9yZXJhaXNlKGV4YywgdmFsLCB0YikKKyAgICAgICAg
ICAgIHNpeC5yZXJhaXNlKGV4YywgdmFsLCB0YikKIAogICAgICAgICBkZWYgZihuKToKICAgICAg
ICAgICAgIHRyeToKQEAgLTI3NCw3ICsyNzgsNyBAQCBjbGFzcyBUZXN0VHJhY2ViYWNrX2ZfZ19o
KG9iamVjdCk6CiAgICAgICAgIGRlY29yYXRvciA9IHB5dGVzdC5pbXBvcnRvcnNraXAoImRlY29y
YXRvciIpLmRlY29yYXRvcgogCiAgICAgICAgIGRlZiBsb2coZiwgKmssICoqa3cpOgotICAgICAg
ICAgICAgcHJpbnQoIiVzICVzIiAlIChrLCBrdykpCisgICAgICAgICAgICBwcmludCgie30ge30i
LmZvcm1hdChrLCBrdykpCiAgICAgICAgICAgICBmKCprLCAqKmt3KQogCiAgICAgICAgIGxvZyA9
IGRlY29yYXRvcihsb2cpCkBAIC0yODgsNyArMjkyLDYgQEAgY2xhc3MgVGVzdFRyYWNlYmFja19m
X2dfaChvYmplY3QpOgogICAgICAgICBhc3NlcnQgZXhjaW5mby50cmFjZWJhY2sucmVjdXJzaW9u
aW5kZXgoKSBpcyBOb25lCiAKICAgICBkZWYgdGVzdF90cmFjZWJhY2tfZ2V0Y3Jhc2hlbnRyeShz
ZWxmKToKLQogICAgICAgICBkZWYgaSgpOgogICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18g
PSBUcnVlCiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCkBAIC0zMTIsNyArMzE1LDYgQEAg
Y2xhc3MgVGVzdFRyYWNlYmFja19mX2dfaChvYmplY3QpOgogICAgICAgICBhc3NlcnQgZW50cnku
ZnJhbWUuY29kZS5uYW1lID09ICJoIgogCiAgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2dldGNyYXNo
ZW50cnlfZW1wdHkoc2VsZik6Ci0KICAgICAgICAgZGVmIGcoKToKICAgICAgICAgICAgIF9fdHJh
Y2ViYWNraGlkZV9fID0gVHJ1ZQogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgpAQCAtMzMz
LDcgKzMzNSw4IEBAIGNsYXNzIFRlc3RUcmFjZWJhY2tfZl9nX2gob2JqZWN0KToKIGRlZiB0ZXN0
X2V4Y2luZm9fZXhjb25seSgpOgogICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJy
b3IsIGgpCiAgICAgYXNzZXJ0IGV4Y2luZm8uZXhjb25seSgpLnN0YXJ0c3dpdGgoIlZhbHVlRXJy
b3IiKQotICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsICJyYWlzZSBWYWx1
ZUVycm9yKCdoZWxsb1xcbndvcmxkJykiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVy
cm9yKSBhcyBleGNpbmZvOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsb1xud29ybGQi
KQogICAgIG1zZyA9IGV4Y2luZm8uZXhjb25seSh0cnlzaG9ydD1UcnVlKQogICAgIGFzc2VydCBt
c2cuc3RhcnRzd2l0aCgiVmFsdWVFcnJvciIpCiAgICAgYXNzZXJ0IG1zZy5lbmRzd2l0aCgid29y
bGQiKQpAQCAtMzUzLDYgKzM1NiwxMiBAQCBkZWYgdGVzdF9leGNpbmZvX3N0cigpOgogICAgIGFz
c2VydCBsZW4ocy5zcGxpdCgiOiIpKSA+PSAzICAjIG9uIHdpbmRvd3MgaXQncyA0CiAKIAorZGVm
IHRlc3RfZXhjaW5mb19mb3JfbGF0ZXIoKToKKyAgICBlID0gRXhjZXB0aW9uSW5mby5mb3JfbGF0
ZXIoKQorICAgIGFzc2VydCAiZm9yIHJhaXNlcyIgaW4gcmVwcihlKQorICAgIGFzc2VydCAiZm9y
IHJhaXNlcyIgaW4gc3RyKGUpCisKKwogZGVmIHRlc3RfZXhjaW5mb19lcnJpc2luc3RhbmNlKCk6
CiAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgaCkKICAgICBhc3NlcnQg
ZXhjaW5mby5lcnJpc2luc3RhbmNlKFZhbHVlRXJyb3IpCkBAIC0zNjIsNyArMzcxLDcgQEAgZGVm
IHRlc3RfZXhjaW5mb19ub19zb3VyY2Vjb2RlKCk6CiAgICAgdHJ5OgogICAgICAgICBleGVjKCJy
YWlzZSBWYWx1ZUVycm9yKCkiKQogICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICBleGNp
bmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgZXhjaW5mbyA9IF9w
eXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKQogICAgIHMgPSBzdHIoZXhj
aW5mby50cmFjZWJhY2tbLTFdKQogICAgIGFzc2VydCBzID09ICIgIEZpbGUgJzxzdHJpbmc+Jzox
IGluIDxtb2R1bGU+XG4gID8/P1xuIgogCkBAIC0zODcsNyArMzk2LDcgQEAgZGVmIHRlc3RfZW50
cnlzb3VyY2VfUXVldWVfZXhhbXBsZSgpOgogICAgIHRyeToKICAgICAgICAgcXVldWUuUXVldWUo
KS5nZXQodGltZW91dD0wLjAwMSkKICAgICBleGNlcHQgcXVldWUuRW1wdHk6Ci0gICAgICAgIGV4
Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgICAgICBleGNpbmZvID0g
X3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCiAgICAgZW50cnkgPSBl
eGNpbmZvLnRyYWNlYmFja1stMV0KICAgICBzb3VyY2UgPSBlbnRyeS5nZXRzb3VyY2UoKQogICAg
IGFzc2VydCBzb3VyY2UgaXMgbm90IE5vbmUKQEAgLTM5OSw3ICs0MDgsNyBAQCBkZWYgdGVzdF9j
b2RlcGF0aF9RdWV1ZV9leGFtcGxlKCk6CiAgICAgdHJ5OgogICAgICAgICBxdWV1ZS5RdWV1ZSgp
LmdldCh0aW1lb3V0PTAuMDAxKQogICAgIGV4Y2VwdCBxdWV1ZS5FbXB0eToKLSAgICAgICAgZXhj
aW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgIGV4Y2luZm8gPSBf
cHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8uZnJvbV9jdXJyZW50KCkKICAgICBlbnRyeSA9IGV4
Y2luZm8udHJhY2ViYWNrWy0xXQogICAgIHBhdGggPSBlbnRyeS5wYXRoCiAgICAgYXNzZXJ0IGlz
aW5zdGFuY2UocGF0aCwgcHkucGF0aC5sb2NhbCkKQEAgLTQyOSwxMiArNDM4LDEwIEBAIGRlZiB0
ZXN0X21hdGNoX3JhaXNlc19lcnJvcih0ZXN0ZGlyKToKIAogCiBjbGFzcyBUZXN0Rm9ybWF0dGVk
RXhjaW5mbyhvYmplY3QpOgotCiAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgZGVmIGltcG9ydGFz
bW9kKHNlbGYsIHJlcXVlc3QpOgotCisgICAgZGVmIGltcG9ydGFzbW9kKHNlbGYsIHJlcXVlc3Qs
IF9zeXNfc25hcHNob3QpOgogICAgICAgICBkZWYgaW1wb3J0YXNtb2Qoc291cmNlKToKLSAgICAg
ICAgICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKHNvdXJjZSkKKyAgICAgICAgICAg
IHNvdXJjZSA9IHRleHR3cmFwLmRlZGVudChzb3VyY2UpCiAgICAgICAgICAgICB0bXBkaXIgPSBy
ZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgidG1wZGlyIikKICAgICAgICAgICAgIG1vZHBhdGggPSB0
bXBkaXIuam9pbigibW9kLnB5IikKICAgICAgICAgICAgIHRtcGRpci5lbnN1cmUoIl9faW5pdF9f
LnB5IikKQEAgLTQ1MiwxNiArNDU5LDE2IEBAIGNsYXNzIFRlc3RGb3JtYXR0ZWRFeGNpbmZvKG9i
amVjdCk6CiAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKICAgICAgICAgICAgIHJh
aXNlCiAgICAgICAgIGV4Y2VwdDogICMgbm9xYQotICAgICAgICAgICAgcmV0dXJuIF9weXRlc3Qu
X2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5F
eGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCiAgICAgICAgIGFzc2VydCAwLCAiZGlkIG5vdCBy
YWlzZSIKIAogICAgIGRlZiB0ZXN0X3JlcHJfc291cmNlKHNlbGYpOgogICAgICAgICBwciA9IEZv
cm1hdHRlZEV4Y2luZm8oKQogICAgICAgICBzb3VyY2UgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgK
LSAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgZGVmIGYoeCk6
CiAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIgogICAg
ICAgICApLnN0cmlwKCkKICAgICAgICAgcHIuZmxvd19tYXJrZXIgPSAifCIKICAgICAgICAgbGlu
ZXMgPSBwci5nZXRfc291cmNlKHNvdXJjZSwgMCkKQEAgLTQ5MCw3ICs0OTcsNyBAQCBjbGFzcyBU
ZXN0Rm9ybWF0dGVkRXhjaW5mbyhvYmplY3QpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBl
eGVjKGNvKQogICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgIGV4Y2luZm8g
PSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgICAgICAgICAgZXhjaW5mbyA9IF9w
eXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKQogICAgICAgICByZXByID0g
cHIucmVwcl9leGNpbmZvKGV4Y2luZm8pCiAgICAgICAgIGFzc2VydCByZXByLnJlcHJ0cmFjZWJh
Y2sucmVwcmVudHJpZXNbMV0ubGluZXNbMF0gPT0gIj4gICA/Pz8iCiAgICAgICAgIGlmIHN5cy52
ZXJzaW9uX2luZm9bMF0gPj0gMzoKQEAgLTUwOSw3ICs1MTYsNyBAQCByYWlzZSBWYWx1ZUVycm9y
KCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZXhlYyhjbykKICAgICAgICAgZXhjZXB0IFZh
bHVlRXJyb3I6Ci0gICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25J
bmZvKCkKKyAgICAgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8u
ZnJvbV9jdXJyZW50KCkKICAgICAgICAgcmVwciA9IHByLnJlcHJfZXhjaW5mbyhleGNpbmZvKQog
ICAgICAgICBhc3NlcnQgcmVwci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzWzFdLmxpbmVzWzBd
ID09ICI+ICAgPz8/IgogICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6CkBAIC01
MTksNyArNTI2LDYgQEAgcmFpc2UgVmFsdWVFcnJvcigpCiAgICAgICAgIHByID0gRm9ybWF0dGVk
RXhjaW5mbygpCiAKICAgICAgICAgY2xhc3MgRmFrZUNvZGUob2JqZWN0KToKLQogICAgICAgICAg
ICAgY2xhc3MgcmF3KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgY29fZmlsZW5hbWUgPSAiPyIK
IApAQCAtNTM3LDcgKzU0Myw2IEBAIHJhaXNlIFZhbHVlRXJyb3IoKQogICAgICAgICAgICAgZl9n
bG9iYWxzID0ge30KIAogICAgICAgICBjbGFzcyBGYWtlVHJhY2ViYWNrRW50cnkoX3B5dGVzdC5f
Y29kZS5UcmFjZWJhY2suRW50cnkpOgotCiAgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwg
dGIsIGV4Y2luZm89Tm9uZSk6CiAgICAgICAgICAgICAgICAgc2VsZi5saW5lbm8gPSA1ICsgMwog
CkBAIC01OTEsNiArNTk2LDQ3IEBAIHJhaXNlIFZhbHVlRXJyb3IoKQogICAgICAgICBhc3NlcnQg
cmVwcmxvY2Fscy5saW5lc1syXSA9PSAieSAgICAgICAgICA9IDUiCiAgICAgICAgIGFzc2VydCBy
ZXBybG9jYWxzLmxpbmVzWzNdID09ICJ6ICAgICAgICAgID0gNyIKIAorICAgIGRlZiB0ZXN0X3Jl
cHJfbG9jYWxfd2l0aF9lcnJvcihzZWxmKToKKyAgICAgICAgY2xhc3MgT2JqV2l0aEVycm9ySW5S
ZXByOgorICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5mbyhz
aG93bG9jYWxzPVRydWUsIHRydW5jYXRlX2xvY2Fscz1GYWxzZSkKKyAgICAgICAgbG9jID0geyJ4
IjogT2JqV2l0aEVycm9ySW5SZXByKCksICJfX2J1aWx0aW5zX18iOiB7fX0KKyAgICAgICAgcmVw
cmxvY2FscyA9IHAucmVwcl9sb2NhbHMobG9jKQorICAgICAgICBhc3NlcnQgcmVwcmxvY2Fscy5s
aW5lcworICAgICAgICBhc3NlcnQgcmVwcmxvY2Fscy5saW5lc1swXSA9PSAiX19idWlsdGluc19f
ID0gPGJ1aWx0aW5zPiIKKyAgICAgICAgYXNzZXJ0ICdbTm90SW1wbGVtZW50ZWRFcnJvcigiIikg
cmFpc2VkIGluIHJlcHIoKV0nIGluIHJlcHJsb2NhbHMubGluZXNbMV0KKworICAgIGRlZiB0ZXN0
X3JlcHJfbG9jYWxfd2l0aF9leGNlcHRpb25faW5fY2xhc3NfcHJvcGVydHkoc2VsZik6CisgICAg
ICAgIGNsYXNzIEV4Y2VwdGlvbldpdGhCcm9rZW5DbGFzcyhFeGNlcHRpb24pOgorICAgICAgICAg
ICAgQHByb3BlcnR5CisgICAgICAgICAgICBkZWYgX19jbGFzc19fKHNlbGYpOgorICAgICAgICAg
ICAgICAgIHJhaXNlIFR5cGVFcnJvcigiYm9vbSEiKQorCisgICAgICAgIGNsYXNzIE9ialdpdGhF
cnJvckluUmVwcjoKKyAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb25XaXRoQnJva2VuQ2xhc3MoKQorCisgICAgICAgIHAgPSBGb3Jt
YXR0ZWRFeGNpbmZvKHNob3dsb2NhbHM9VHJ1ZSwgdHJ1bmNhdGVfbG9jYWxzPUZhbHNlKQorICAg
ICAgICBsb2MgPSB7IngiOiBPYmpXaXRoRXJyb3JJblJlcHIoKSwgIl9fYnVpbHRpbnNfXyI6IHt9
fQorICAgICAgICByZXBybG9jYWxzID0gcC5yZXByX2xvY2Fscyhsb2MpCisgICAgICAgIGFzc2Vy
dCByZXBybG9jYWxzLmxpbmVzCisgICAgICAgIGFzc2VydCByZXBybG9jYWxzLmxpbmVzWzBdID09
ICJfX2J1aWx0aW5zX18gPSA8YnVpbHRpbnM+IgorICAgICAgICBhc3NlcnQgJ1tFeGNlcHRpb25X
aXRoQnJva2VuQ2xhc3MoIiIpIHJhaXNlZCBpbiByZXByKCldJyBpbiByZXBybG9jYWxzLmxpbmVz
WzFdCisKKyAgICBkZWYgdGVzdF9yZXByX2xvY2FsX3RydW5jYXRlZChzZWxmKToKKyAgICAgICAg
bG9jID0geyJsIjogW2kgZm9yIGkgaW4gcmFuZ2UoMTApXX0KKyAgICAgICAgcCA9IEZvcm1hdHRl
ZEV4Y2luZm8oc2hvd2xvY2Fscz1UcnVlKQorICAgICAgICB0cnVuY2F0ZWRfcmVwcmxvY2FscyA9
IHAucmVwcl9sb2NhbHMobG9jKQorICAgICAgICBhc3NlcnQgdHJ1bmNhdGVkX3JlcHJsb2NhbHMu
bGluZXMKKyAgICAgICAgYXNzZXJ0IHRydW5jYXRlZF9yZXBybG9jYWxzLmxpbmVzWzBdID09ICJs
ICAgICAgICAgID0gWzAsIDEsIDIsIDMsIDQsIDUsIC4uLl0iCisKKyAgICAgICAgcSA9IEZvcm1h
dHRlZEV4Y2luZm8oc2hvd2xvY2Fscz1UcnVlLCB0cnVuY2F0ZV9sb2NhbHM9RmFsc2UpCisgICAg
ICAgIGZ1bGxfcmVwcmxvY2FscyA9IHEucmVwcl9sb2NhbHMobG9jKQorICAgICAgICBhc3NlcnQg
ZnVsbF9yZXBybG9jYWxzLmxpbmVzCisgICAgICAgIGFzc2VydCBmdWxsX3JlcHJsb2NhbHMubGlu
ZXNbMF0gPT0gImwgICAgICAgICAgPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOV0iCisK
ICAgICBkZWYgdGVzdF9yZXByX3RyYWNlYmFja2VudHJ5X2xpbmVzKHNlbGYsIGltcG9ydGFzbW9k
KToKICAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoCiAgICAgICAgICAgICAiIiIKQEAgLTg4Miwx
MiArOTI4LDExIEBAIHJhaXNlIFZhbHVlRXJyb3IoKQogICAgICAgICBmcm9tIF9weXRlc3QuX2Nv
ZGUuY29kZSBpbXBvcnQgVGVybWluYWxSZXByCiAKICAgICAgICAgY2xhc3MgTXlSZXByKFRlcm1p
bmFsUmVwcik6Ci0KICAgICAgICAgICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAg
ICAgICAgICAgICB0dy5saW5lKHB5LmJ1aWx0aW4uX3RvdGV4dCgi0Y8iLCAidXRmLTgiKSkKKyAg
ICAgICAgICAgICAgICB0dy5saW5lKHUi0Y8iKQogCi0gICAgICAgIHggPSBweS5idWlsdGluLl90
b3RleHQoTXlSZXByKCkpCi0gICAgICAgIGFzc2VydCB4ID09IHB5LmJ1aWx0aW4uX3RvdGV4dCgi
0Y8iLCAidXRmLTgiKQorICAgICAgICB4ID0gc2l4LnRleHRfdHlwZShNeVJlcHIoKSkKKyAgICAg
ICAgYXNzZXJ0IHggPT0gdSLRjyIKIAogICAgIGRlZiB0ZXN0X3RvdGVybWluYWxfbG9uZyhzZWxm
LCBpbXBvcnRhc21vZCk6CiAgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKApAQCAtMTE3NSwyMCAr
MTIyMCwyOCBAQCByYWlzZSBWYWx1ZUVycm9yKCkKICAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzQ3
XSA9PSAiOjE1OiBBdHRyaWJ1dGVFcnJvciIKIAogICAgIEBweXRlc3QubWFyay5za2lwaWYoInN5
cy52ZXJzaW9uX2luZm9bMF0gPCAzIikKLSAgICBkZWYgdGVzdF9leGNfcmVwcl93aXRoX3JhaXNl
X2Zyb21fbm9uZV9jaGFpbl9zdXBwcmVzc2lvbihzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtb2RlIiwgWyJmcm9tX25vbmUiLCAiZXhwbGljaXRfc3Vw
cHJlc3MiXSkKKyAgICBkZWYgdGVzdF9leGNfcmVwcl9jaGFpbl9zdXBwcmVzc2lvbihzZWxmLCBp
bXBvcnRhc21vZCwgbW9kZSk6CisgICAgICAgICIiIkNoZWNrIHRoYXQgZXhjIHJlcHIgZG9lcyBu
b3Qgc2hvdyBjaGFpbmVkIGV4Y2VwdGlvbnMgaW4gUHl0aG9uIDMuCisgICAgICAgIC0gV2hlbiB0
aGUgZXhjZXB0aW9uIGlzIHJhaXNlZCB3aXRoICJmcm9tIE5vbmUiCisgICAgICAgIC0gRXhwbGlj
aXRseSBzdXBwcmVzc2VkIHdpdGggImNoYWluPUZhbHNlIiB0byBFeGNlcHRpb25JbmZvLmdldHJl
cHIoKS4KKyAgICAgICAgIiIiCisgICAgICAgIHJhaXNlX3N1ZmZpeCA9ICIgZnJvbSBOb25lIiBp
ZiBtb2RlID09ICJmcm9tX25vbmUiIGVsc2UgIiIKICAgICAgICAgbW9kID0gaW1wb3J0YXNtb2Qo
CiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICAgICAg
dHJ5OgogICAgICAgICAgICAgICAgICAgICBnKCkKICAgICAgICAgICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigpIGZyb20g
Tm9uZQorICAgICAgICAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigpe3JhaXNlX3N1
ZmZpeH0KICAgICAgICAgICAgIGRlZiBnKCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigpCi0gICAgICAgICIiIgorICAgICAgICAiIiIuZm9ybWF0KAorICAgICAgICAgICAgICAg
IHJhaXNlX3N1ZmZpeD1yYWlzZV9zdWZmaXgKKyAgICAgICAgICAgICkKICAgICAgICAgKQogICAg
ICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgbW9kLmYpCi0gICAg
ICAgIHIgPSBleGNpbmZvLmdldHJlcHIoc3R5bGU9ImxvbmciKQorICAgICAgICByID0gZXhjaW5m
by5nZXRyZXByKHN0eWxlPSJsb25nIiwgY2hhaW49bW9kZSAhPSAiZXhwbGljaXRfc3VwcHJlc3Mi
KQogICAgICAgICB0dyA9IFRXTW9jaygpCiAgICAgICAgIHIudG90ZXJtaW5hbCh0dykKICAgICAg
ICAgZm9yIGxpbmUgaW4gdHcubGluZXM6CkBAIC0xMTk4LDcgKzEyNTEsOSBAQCByYWlzZSBWYWx1
ZUVycm9yKCkKICAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzJdID09ICIgICAgICAgIHRyeToiCiAg
ICAgICAgIGFzc2VydCB0dy5saW5lc1szXSA9PSAiICAgICAgICAgICAgZygpIgogICAgICAgICBh
c3NlcnQgdHcubGluZXNbNF0gPT0gIiAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoiCi0gICAgICAg
IGFzc2VydCB0dy5saW5lc1s1XSA9PSAiPiAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3Io
KSBmcm9tIE5vbmUiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s1XSA9PSAiPiAgICAgICAgICAg
cmFpc2UgQXR0cmlidXRlRXJyb3IoKXt9Ii5mb3JtYXQoCisgICAgICAgICAgICByYWlzZV9zdWZm
aXgKKyAgICAgICAgKQogICAgICAgICBhc3NlcnQgdHcubGluZXNbNl0gPT0gIkUgICAgICAgICAg
IEF0dHJpYnV0ZUVycm9yIgogICAgICAgICBhc3NlcnQgdHcubGluZXNbN10gPT0gIiIKICAgICAg
ICAgbGluZSA9IHR3LmdldF93cml0ZV9tc2coOCkKQEAgLTEyNjYsNiArMTMyMSw1MCBAQCByYWlz
ZSBWYWx1ZUVycm9yKCkKICAgICAgICAgICAgIF0KICAgICAgICAgKQogCisgICAgQHB5dGVzdC5t
YXJrLnNraXBpZigic3lzLnZlcnNpb25faW5mb1swXSA8IDMiKQorICAgIGRlZiB0ZXN0X2V4Y19j
aGFpbl9yZXByX2N5Y2xlKHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0
YXNtb2QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGNsYXNzIEVycihFeGNlcHRpb24p
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiBmYWlsKCk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIDAgLyAwCisgICAgICAgICAgICBkZWYgcmVyYWlzZSgpOgorICAgICAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgpCisgICAgICAgICAgICAg
ICAgZXhjZXB0IFplcm9EaXZpc2lvbkVycm9yIGFzIGU6CisgICAgICAgICAgICAgICAgICAgIHJh
aXNlIEVycigpIGZyb20gZQorICAgICAgICAgICAgZGVmIHVucmVyYWlzZSgpOgorICAgICAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcmVyYWlzZSgpCisgICAgICAgICAgICAg
ICAgZXhjZXB0IEVyciBhcyBlOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBlLl9fY2F1c2Vf
XworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNl
cyhaZXJvRGl2aXNpb25FcnJvciwgbW9kLnVucmVyYWlzZSkKKyAgICAgICAgciA9IGV4Y2luZm8u
Z2V0cmVwcihzdHlsZT0ic2hvcnQiKQorICAgICAgICB0dyA9IFRXTW9jaygpCisgICAgICAgIHIu
dG90ZXJtaW5hbCh0dykKKyAgICAgICAgb3V0ID0gIlxuIi5qb2luKGxpbmUgZm9yIGxpbmUgaW4g
dHcubGluZXMgaWYgaXNpbnN0YW5jZShsaW5lLCBzdHIpKQorICAgICAgICBleHBlY3RlZF9vdXQg
PSB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICA6MTM6IGlu
IHVucmVyYWlzZQorICAgICAgICAgICAgICAgIHJlcmFpc2UoKQorICAgICAgICAgICAgOjEwOiBp
biByZXJhaXNlCisgICAgICAgICAgICAgICAgcmFpc2UgRXJyKCkgZnJvbSBlCisgICAgICAgICAg
ICBFICAgdGVzdF9leGNfY2hhaW5fcmVwcl9jeWNsZTAubW9kLkVycgorCisgICAgICAgICAgICBE
dXJpbmcgaGFuZGxpbmcgb2YgdGhlIGFib3ZlIGV4Y2VwdGlvbiwgYW5vdGhlciBleGNlcHRpb24g
b2NjdXJyZWQ6CisgICAgICAgICAgICA6MTU6IGluIHVucmVyYWlzZQorICAgICAgICAgICAgICAg
IHJhaXNlIGUuX19jYXVzZV9fCisgICAgICAgICAgICA6ODogaW4gcmVyYWlzZQorICAgICAgICAg
ICAgICAgIGZhaWwoKQorICAgICAgICAgICAgOjU6IGluIGZhaWwKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gMCAvIDAKKyAgICAgICAgICAgIEUgICBaZXJvRGl2aXNpb25FcnJvcjogZGl2aXNpb24g
YnkgemVybyIiIgorICAgICAgICApCisgICAgICAgIGFzc2VydCBvdXQgPT0gZXhwZWN0ZWRfb3V0
CisKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzdHlsZSIsIFsic2hvcnQiLCAibG9uZyJd
KQogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbmNvZGluZyIsIFtOb25lLCAidXRmOCIsICJ1
dGYxNiJdKQpAQCAtMTI3Niw3ICsxMzc1LDcgQEAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tfd2l0
aF91bmljb2RlKHN0eWxlLCBlbmNvZGluZyk6CiAgICAgdHJ5OgogICAgICAgICByYWlzZSBSdW50
aW1lRXJyb3IobXNnKQogICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6Ci0gICAgICAgIGVfaW5mbyA9
IEV4Y2VwdGlvbkluZm8oKQorICAgICAgICBlX2luZm8gPSBFeGNlcHRpb25JbmZvLmZyb21fY3Vy
cmVudCgpCiAgICAgZm9ybWF0dGVyID0gRm9ybWF0dGVkRXhjaW5mbyhzdHlsZT1zdHlsZSkKICAg
ICByZXByX3RyYWNlYmFjayA9IGZvcm1hdHRlci5yZXByX3RyYWNlYmFjayhlX2luZm8pCiAgICAg
YXNzZXJ0IHJlcHJfdHJhY2ViYWNrIGlzIG5vdCBOb25lCkBAIC0xMjk2LDE0ICsxMzk1LDE1IEBA
IGRlZiB0ZXN0X2N3ZF9kZWxldGVkKHRlc3RkaXIpOgogICAgIGFzc2VydCAiSU5URVJOQUxFUlJP
UiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkgKyByZXN1bHQuc3RkZXJyLnN0cigpCiAKIAor
QHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCJsaW1pdGVkX3JlY3Vyc2lvbl9kZXB0aCIpCiBkZWYg
dGVzdF9leGNlcHRpb25fcmVwcl9leHRyYWN0aW9uX2Vycm9yX29uX3JlY3Vyc2lvbigpOgogICAg
ICIiIgogICAgIEVuc3VyZSB3ZSBjYW4gcHJvcGVybHkgZGV0ZWN0IGEgcmVjdXJzaW9uIGVycm9y
IGV2ZW4KICAgICBpZiBzb21lIGxvY2FscyByYWlzZSBlcnJvciBvbiBjb21wYXJpc29uICgjMjQ1
OSkuCiAgICAgIiIiCisgICAgZnJvbSBfcHl0ZXN0LnB5dGVzdGVyIGltcG9ydCBMaW5lTWF0Y2hl
cgogCiAgICAgY2xhc3MgbnVtcHlfbGlrZShvYmplY3QpOgotCiAgICAgICAgIGRlZiBfX2VxX18o
c2VsZiwgb3RoZXIpOgogICAgICAgICAgICAgaWYgdHlwZShvdGhlcikgaXMgbnVtcHlfbGlrZToK
ICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKApAQCAtMTMxNyw0MSArMTQxNywzMCBA
QCBkZWYgdGVzdF9leGNlcHRpb25fcmVwcl9leHRyYWN0aW9uX2Vycm9yX29uX3JlY3Vyc2lvbigp
OgogICAgIGRlZiBiKHgpOgogICAgICAgICByZXR1cm4gYShudW1weV9saWtlKCkpCiAKLSAgICB0
cnk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgZXhjaW5mbzoKICAg
ICAgICAgYShudW1weV9saWtlKCkpCi0gICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgIGZyb20g
X3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvCi0gICAgICAgIGZyb20gX3B5
dGVzdC5weXRlc3RlciBpbXBvcnQgTGluZU1hdGNoZXIKLQotICAgICAgICBleGNfaW5mbyA9IEV4
Y2VwdGlvbkluZm8oKQogCi0gICAgICAgIG1hdGNoZXIgPSBMaW5lTWF0Y2hlcihzdHIoZXhjX2lu
Zm8uZ2V0cmVwcigpKS5zcGxpdGxpbmVzKCkpCi0gICAgICAgIG1hdGNoZXIuZm5tYXRjaF9saW5l
cygKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAiISEhIFJlY3Vyc2lvbiBlcnJvciBk
ZXRlY3RlZCwgYnV0IGFuIGVycm9yIG9jY3VycmVkIGxvY2F0aW5nIHRoZSBvcmlnaW4gb2YgcmVj
dXJzaW9uLiIsCi0gICAgICAgICAgICAgICAgIipUaGUgZm9sbG93aW5nIGV4Y2VwdGlvbiBoYXBw
ZW5lZCoiLAotICAgICAgICAgICAgICAgICIqVmFsdWVFcnJvcjogVGhlIHRydXRoIHZhbHVlIG9m
IGFuIGFycmF5KiIsCi0gICAgICAgICAgICBdCi0gICAgICAgICkKKyAgICBtYXRjaGVyID0gTGlu
ZU1hdGNoZXIoc3RyKGV4Y2luZm8uZ2V0cmVwcigpKS5zcGxpdGxpbmVzKCkpCisgICAgbWF0Y2hl
ci5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAiISEhIFJlY3Vyc2lvbiBl
cnJvciBkZXRlY3RlZCwgYnV0IGFuIGVycm9yIG9jY3VycmVkIGxvY2F0aW5nIHRoZSBvcmlnaW4g
b2YgcmVjdXJzaW9uLiIsCisgICAgICAgICAgICAiKlRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uIGhh
cHBlbmVkKiIsCisgICAgICAgICAgICAiKlZhbHVlRXJyb3I6IFRoZSB0cnV0aCB2YWx1ZSBvZiBh
biBhcnJheSoiLAorICAgICAgICBdCisgICAgKQogCiAKK0BweXRlc3QubWFyay51c2VmaXh0dXJl
cygibGltaXRlZF9yZWN1cnNpb25fZGVwdGgiKQogZGVmIHRlc3Rfbm9fcmVjdXJzaW9uX2luZGV4
X29uX3JlY3Vyc2lvbl9lcnJvcigpOgogICAgICIiIgogICAgIEVuc3VyZSB0aGF0IHdlIGRvbid0
IGJyZWFrIGluIGNhc2Ugd2UgY2FuJ3QgZmluZCB0aGUgcmVjdXJzaW9uIGluZGV4CiAgICAgZHVy
aW5nIGEgcmVjdXJzaW9uIGVycm9yICgjMjQ4NikuCiAgICAgIiIiCi0gICAgdHJ5OgogCi0gICAg
ICAgIGNsYXNzIFJlY3Vyc2lvbkRlcHRoRXJyb3Iob2JqZWN0KToKLQotICAgICAgICAgICAgZGVm
IF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHIpOgotICAgICAgICAgICAgICAgIHJldHVybiBnZXRhdHRy
KHNlbGYsICJfIiArIGF0dHIpCisgICAgY2xhc3MgUmVjdXJzaW9uRGVwdGhFcnJvcihvYmplY3Qp
OgorICAgICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgYXR0cik6CisgICAgICAgICAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLCAiXyIgKyBhdHRyKQogCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1
bnRpbWVFcnJvcikgYXMgZXhjaW5mbzoKICAgICAgICAgUmVjdXJzaW9uRGVwdGhFcnJvcigpLnRy
aWdnZXIKLSAgICBleGNlcHQ6ICAjIG5vcWEKLSAgICAgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLmNv
ZGUgaW1wb3J0IEV4Y2VwdGlvbkluZm8KLQotICAgICAgICBleGNfaW5mbyA9IEV4Y2VwdGlvbklu
Zm8oKQotICAgICAgICBhc3NlcnQgIm1heGltdW0gcmVjdXJzaW9uIiBpbiBzdHIoZXhjX2luZm8u
Z2V0cmVwcigpKQotICAgIGVsc2U6Ci0gICAgICAgIGFzc2VydCAwCisgICAgYXNzZXJ0ICJtYXhp
bXVtIHJlY3Vyc2lvbiIgaW4gc3RyKGV4Y2luZm8uZ2V0cmVwcigpKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3Rfc291cmNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9jb2RlL3Rlc3Rfc291cmNlLnB5CmluZGV4IDU2ZGFkNzU2NzFmYTYyMzJlOGJjM2RmYzY0ZjNh
NWExNmVkODI2ZWUuLmQyZTNjMTM0Y2Q1ZTNkZmNiZmQzYmYwNTEwYjZhZDU3OTE2NDE4MzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X3NvdXJjZS5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2UucHkKQEAgLTEsMTggKzEsMjEgQEAK
KyMgLSotIGNvZGluZzogdXRmLTggLSotCiAjIGZsYWtlODogbm9xYQogIyBkaXNhYmxlIGZsYWtl
IGNoZWNrIG9uIHRoaXMgZmlsZSBiZWNhdXNlIHNvbWUgY29uc3RydWN0cyBhcmUgc3RyYW5nZQog
IyBvciByZWR1bmRhbnQgb24gcHVycG9zZSBhbmQgY2FuJ3QgYmUgZGlzYWJsZSBvbiBhIGxpbmUt
YnktbGluZSBiYXNpcwotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGFzdAogaW1wb3J0IGluc3BlY3QKIGltcG9y
dCBzeXMKIAoraW1wb3J0IHNpeAorCiBpbXBvcnQgX3B5dGVzdC5fY29kZQotaW1wb3J0IHB5CiBp
bXBvcnQgcHl0ZXN0CiBmcm9tIF9weXRlc3QuX2NvZGUgaW1wb3J0IFNvdXJjZQotZnJvbSBfcHl0
ZXN0Ll9jb2RlLnNvdXJjZSBpbXBvcnQgYXN0Ci0KIAotYXN0b25seSA9IHB5dGVzdC5tYXJrLm5v
dGhpbmcKIGZhaWxzb25qeXRob24gPSBweXRlc3QubWFyay54ZmFpbCgic3lzLnBsYXRmb3JtLnN0
YXJ0c3dpdGgoJ2phdmEnKSIpCiAKIApAQCAtMjYsMzAgKzI5LDE3IEBAIGRlZiB0ZXN0X3NvdXJj
ZV9zdHJfZnVuY3Rpb24oKToKICAgICB4ID0gU291cmNlKAogICAgICAgICAiIiIKICAgICAgICAg
MwotICAgICIiIiwKLSAgICAgICAgcnN0cmlwPUZhbHNlLAotICAgICkKLSAgICBhc3NlcnQgc3Ry
KHgpID09ICJcbjNcbiAgICAiCi0KLSAgICB4ID0gU291cmNlKAogICAgICAgICAiIiIKLSAgICAg
ICAgMwotICAgICIiIiwKLSAgICAgICAgcnN0cmlwPVRydWUsCiAgICAgKQogICAgIGFzc2VydCBz
dHIoeCkgPT0gIlxuMyIKIAogCiBkZWYgdGVzdF91bmljb2RlKCk6Ci0gICAgdHJ5OgotICAgICAg
ICB1bmljb2RlCi0gICAgZXhjZXB0IE5hbWVFcnJvcjoKLSAgICAgICAgcmV0dXJuCi0gICAgeCA9
IFNvdXJjZSh1bmljb2RlKCI0IikpCisgICAgeCA9IFNvdXJjZSh1IjQiKQogICAgIGFzc2VydCBz
dHIoeCkgPT0gIjQiCi0gICAgY28gPSBfcHl0ZXN0Ll9jb2RlLmNvbXBpbGUodW5pY29kZSgndSJc
eGMzXHhhNSInLCAidXRmOCIpLCBtb2RlPSJldmFsIikKKyAgICBjbyA9IF9weXRlc3QuX2NvZGUu
Y29tcGlsZSh1J3Uiw6UiJywgbW9kZT0iZXZhbCIpCiAgICAgdmFsID0gZXZhbChjbykKLSAgICBh
c3NlcnQgaXNpbnN0YW5jZSh2YWwsIHVuaWNvZGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFs
LCBzaXgudGV4dF90eXBlKQogCiAKIGRlZiB0ZXN0X3NvdXJjZV9mcm9tX2Z1bmN0aW9uKCk6CkBA
IC01OCw5ICs0OCw3IEBAIGRlZiB0ZXN0X3NvdXJjZV9mcm9tX2Z1bmN0aW9uKCk6CiAKIAogZGVm
IHRlc3Rfc291cmNlX2Zyb21fbWV0aG9kKCk6Ci0KICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0
KToKLQogICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6CiAgICAgICAgICAgICBwYXNzCiAK
QEAgLTc1LDcgKzYzLDYgQEAgZGVmIHRlc3Rfc291cmNlX2Zyb21fbGluZXMoKToKIAogCiBkZWYg
dGVzdF9zb3VyY2VfZnJvbV9pbm5lcl9mdW5jdGlvbigpOgotCiAgICAgZGVmIGYoKToKICAgICAg
ICAgcGFzcwogCkBAIC0xMzUsNyArMTIyLDcgQEAgZGVmIHRlc3Rfc291cmNlX3N0cmlwX211bHRp
bGluZSgpOgogZGVmIHRlc3Rfc3ludGF4ZXJyb3JfcmVyZXByZXNlbnRhdGlvbigpOgogICAgIGV4
ID0gcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwgX3B5dGVzdC5fY29kZS5jb21waWxlLCAieHl6
IHh5eiIpCiAgICAgYXNzZXJ0IGV4LnZhbHVlLmxpbmVubyA9PSAxCi0gICAgYXNzZXJ0IGV4LnZh
bHVlLm9mZnNldCBpbiAoNCwgNykgICMgWFhYIHB5cHkvanl0aG9uIHZlcnN1cyBjcHl0aG9uPwor
ICAgIGFzc2VydCBleC52YWx1ZS5vZmZzZXQgaW4gKDQsIDUsIDcpICAjIFhYWCBweXB5L2p5dGhv
biB2ZXJzdXMgY3B5dGhvbj8KICAgICBhc3NlcnQgZXgudmFsdWUudGV4dC5zdHJpcCgpLCAieCB4
IgogCiAKQEAgLTE5OSw3ICsxODYsNiBAQCBjbGFzcyBUZXN0U291cmNlUGFyc2luZ0FuZENvbXBp
bGluZyhvYmplY3QpOgogICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gIng9MyIKIAogICAg
IGRlZiB0ZXN0X2NvbXBpbGVfYW5kX2dldHNvdXJjZV90aHJvdWdoX3NhbWVfZnVuY3Rpb24oc2Vs
Zik6Ci0KICAgICAgICAgZGVmIGdlbnNvdXJjZShzb3VyY2UpOgogICAgICAgICAgICAgcmV0dXJu
IF9weXRlc3QuX2NvZGUuY29tcGlsZShzb3VyY2UpCiAKQEAgLTI0MCw3ICsyMjYsNiBAQCBjbGFz
cyBUZXN0U291cmNlUGFyc2luZ0FuZENvbXBpbGluZyhvYmplY3QpOgogICAgICAgICBzID0gc291
cmNlLmdldHN0YXRlbWVudCgxKQogICAgICAgICBhc3NlcnQgcyA9PSBzdHIoc291cmNlKQogCi0g
ICAgQGFzdG9ubHkKICAgICBkZWYgdGVzdF9nZXRzdGF0ZW1lbnRyYW5nZV93aXRoaW5fY29uc3Ry
dWN0cyhzZWxmKToKICAgICAgICAgc291cmNlID0gU291cmNlKAogICAgICAgICAgICAgIiIiXApA
QCAtMzE4LDggKzMwMyw2IEBAIGNsYXNzIFRlc3RTb3VyY2VQYXJzaW5nQW5kQ29tcGlsaW5nKG9i
amVjdCk6CiAgICAgICAgIHB5dGVzdC5yYWlzZXMoU3ludGF4RXJyb3IsIGxhbWJkYTogc291cmNl
LmdldHN0YXRlbWVudHJhbmdlKDApKQogCiAgICAgZGVmIHRlc3RfY29tcGlsZV90b19hc3Qoc2Vs
Zik6Ci0gICAgICAgIGltcG9ydCBhc3QKLQogICAgICAgICBzb3VyY2UgPSBTb3VyY2UoInggPSA0
IikKICAgICAgICAgbW9kID0gc291cmNlLmNvbXBpbGUoZmxhZz1hc3QuUHlDRl9PTkxZX0FTVCkK
ICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobW9kLCBhc3QuTW9kdWxlKQpAQCAtMzI3LDIzICsz
MTAsMjEgQEAgY2xhc3MgVGVzdFNvdXJjZVBhcnNpbmdBbmRDb21waWxpbmcob2JqZWN0KToKIAog
ICAgIGRlZiB0ZXN0X2NvbXBpbGVfYW5kX2dldHNvdXJjZShzZWxmKToKICAgICAgICAgY28gPSBz
ZWxmLnNvdXJjZS5jb21waWxlKCkKLSAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhjbywgZ2xvYmFs
cygpKQorICAgICAgICBleGVjKGNvLCBnbG9iYWxzKCkpCiAgICAgICAgIGYoNykKLSAgICAgICAg
ZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsICJmKDYpIikKKyAgICAgICAg
ZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIGYsIDYpCiAgICAgICAgIGZy
YW1lID0gZXhjaW5mby50cmFjZWJhY2tbLTFdLmZyYW1lCiAgICAgICAgIHN0bXQgPSBmcmFtZS5j
b2RlLmZ1bGxzb3VyY2UuZ2V0c3RhdGVtZW50KGZyYW1lLmxpbmVubykKLSAgICAgICAgIyBwcmlu
dCAiYmxvY2siLCBzdHIoYmxvY2spCiAgICAgICAgIGFzc2VydCBzdHIoc3RtdCkuc3RyaXAoKS5z
dGFydHN3aXRoKCJhc3NlcnQiKQogCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJuYW1l
IiwgWyIiLCBOb25lLCAibXkiXSkKICAgICBkZWYgdGVzdF9jb21waWxlZnVuY3NfYW5kX3BhdGhf
c2FuaXR5KHNlbGYsIG5hbWUpOgotCiAgICAgICAgIGRlZiBjaGVjayhjb21wLCBuYW1lKToKICAg
ICAgICAgICAgIGNvID0gY29tcChzZWxmLnNvdXJjZSwgbmFtZSkKICAgICAgICAgICAgIGlmIG5v
dCBuYW1lOgotICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gImNvZGVnZW4gJXM6JWQ+IiAlICht
eXBhdGgsIG15bGluZW5vICsgMiArIDMpCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAiY29k
ZWdlbiAlczolZD4iICUgKG15cGF0aCwgbXlsaW5lbm8gKyAyICsgMikKICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAiY29kZWdlbiAlciAlczolZD4iICUgKG5h
bWUsIG15cGF0aCwgbXlsaW5lbm8gKyAyICsgMykKKyAgICAgICAgICAgICAgICBleHBlY3RlZCA9
ICJjb2RlZ2VuICVyICVzOiVkPiIgJSAobmFtZSwgbXlwYXRoLCBteWxpbmVubyArIDIgKyAyKQog
ICAgICAgICAgICAgZm4gPSBjby5jb19maWxlbmFtZQogICAgICAgICAgICAgYXNzZXJ0IGZuLmVu
ZHN3aXRoKGV4cGVjdGVkKQogCkBAIC0zNTksOSArMzQwLDcgQEAgY2xhc3MgVGVzdFNvdXJjZVBh
cnNpbmdBbmRDb21waWxpbmcob2JqZWN0KToKIAogCiBkZWYgdGVzdF9nZXRzdGFydGluZ2Jsb2Nr
X3NpbmdsZWxpbmUoKToKLQogICAgIGNsYXNzIEEob2JqZWN0KToKLQogICAgICAgICBkZWYgX19p
bml0X18oc2VsZiwgKmFyZ3MpOgogICAgICAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEp
CiAgICAgICAgICAgICBzZWxmLnNvdXJjZSA9IF9weXRlc3QuX2NvZGUuRnJhbWUoZnJhbWUpLnN0
YXRlbWVudApAQCAtMzczLDIxICszNTIsMTYgQEAgZGVmIHRlc3RfZ2V0c3RhcnRpbmdibG9ja19z
aW5nbGVsaW5lKCk6CiAKIAogZGVmIHRlc3RfZ2V0bGluZV9maW5hbGx5KCk6Ci0KICAgICBkZWYg
YygpOgogICAgICAgICBwYXNzCiAKLSAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcygKLSAgICAg
ICAgVHlwZUVycm9yLAotICAgICAgICAiIiIKLSAgICAgICAgICAgdGVhcmRvd24gPSBOb25lCi0g
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjKDEpCi0gICAgICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICAgICAgaWYgdGVhcmRvd246Ci0gICAgICAgICAgICAgICAgICAgIHRlYXJk
b3duKCkKLSAgICAiIiIsCi0gICAgKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3Ip
IGFzIGV4Y2luZm86CisgICAgICAgIHRlYXJkb3duID0gTm9uZQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBjKDEpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBpZiB0ZWFyZG93bjoK
KyAgICAgICAgICAgICAgICB0ZWFyZG93bigpCiAgICAgc291cmNlID0gZXhjaW5mby50cmFjZWJh
Y2tbLTFdLnN0YXRlbWVudAogICAgIGFzc2VydCBzdHIoc291cmNlKS5zdHJpcCgpID09ICJjKDEp
IgogCkBAIC00MDAsMjIgKzM3NCwyNCBAQCBkZWYgdGVzdF9nZXRmdW5jc291cmNlX2R5bmFtaWMo
KToKICAgICAgICAgZGVmIGcoKTogcGFzcwogICAgICIiIgogICAgIGNvID0gX3B5dGVzdC5fY29k
ZS5jb21waWxlKHNvdXJjZSkKLSAgICBweS5idWlsdGluLmV4ZWNfKGNvLCBnbG9iYWxzKCkpCisg
ICAgZXhlYyhjbywgZ2xvYmFscygpKQogICAgIGFzc2VydCBzdHIoX3B5dGVzdC5fY29kZS5Tb3Vy
Y2UoZikpLnN0cmlwKCkgPT0gImRlZiBmKCk6XG4gICAgcmFpc2UgVmFsdWVFcnJvciIKICAgICBh
c3NlcnQgc3RyKF9weXRlc3QuX2NvZGUuU291cmNlKGcpKS5zdHJpcCgpID09ICJkZWYgZygpOiBw
YXNzIgogCiAKIGRlZiB0ZXN0X2dldGZ1bmNzb3VyY2Vfd2l0aF9tdWx0aW5lX3N0cmluZygpOgot
CiAgICAgZGVmIGYoKToKICAgICAgICAgYyA9ICIiIndoaWxlIFRydWU6CiAgICAgcGFzcwogIiIi
CiAKLSAgICBhc3NlcnQgKAotICAgICAgICBzdHIoX3B5dGVzdC5fY29kZS5Tb3VyY2UoZikpLnN0
cmlwKCkKLSAgICAgICAgPT0gJ2RlZiBmKCk6XG4gICAgYyA9ICIiIndoaWxlIFRydWU6XG4gICAg
cGFzc1xuIiIiJwotICAgICkKKyAgICBleHBlY3RlZCA9ICcnJ1wKKyAgICBkZWYgZigpOgorICAg
ICAgICBjID0gIiIid2hpbGUgVHJ1ZToKKyAgICBwYXNzCisiIiIKKycnJworICAgIGFzc2VydCBz
dHIoX3B5dGVzdC5fY29kZS5Tb3VyY2UoZikpID09IGV4cGVjdGVkLnJzdHJpcCgpCiAKIAogZGVm
IHRlc3RfZGVpbmRlbnQoKToKQEAgLTQyMywyNCArMzk5LDE2IEBAIGRlZiB0ZXN0X2RlaW5kZW50
KCk6CiAKICAgICBhc3NlcnQgZGVpbmRlbnQoWyJcdGZvbyIsICJcdGJhciJdKSA9PSBbImZvbyIs
ICJiYXIiXQogCi0gICAgZGVmIGYoKToKLSAgICAgICAgYyA9ICIiIndoaWxlIFRydWU6Ci0gICAg
cGFzcwotIiIiCi0KLSAgICBsaW5lcyA9IGRlaW5kZW50KGluc3BlY3QuZ2V0c291cmNlKGYpLnNw
bGl0bGluZXMoKSkKLSAgICBhc3NlcnQgbGluZXMgPT0gWyJkZWYgZigpOiIsICcgICAgYyA9ICIi
IndoaWxlIFRydWU6JywgIiAgICBwYXNzIiwgJyIiIiddCi0KLSAgICBzb3VyY2UgPSAiIiIKKyAg
ICBzb3VyY2UgPSAiIiJcCiAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICBkZWYgZygpOgog
ICAgICAgICAgICAgICAgIHBhc3MKICAgICAiIiIKICAgICBsaW5lcyA9IGRlaW5kZW50KHNvdXJj
ZS5zcGxpdGxpbmVzKCkpCi0gICAgYXNzZXJ0IGxpbmVzID09IFsiIiwgImRlZiBmKCk6IiwgIiAg
ICBkZWYgZygpOiIsICIgICAgICAgIHBhc3MiLCAiICAgICJdCisgICAgYXNzZXJ0IGxpbmVzID09
IFsiZGVmIGYoKToiLCAiICAgIGRlZiBnKCk6IiwgIiAgICAgICAgcGFzcyJdCiAKIAotZGVmIHRl
c3Rfc291cmNlX29mX2NsYXNzX2F0X2VvZl93aXRob3V0X25ld2xpbmUodG1wZGlyKToKK2RlZiB0
ZXN0X3NvdXJjZV9vZl9jbGFzc19hdF9lb2Zfd2l0aG91dF9uZXdsaW5lKHRtcGRpciwgX3N5c19z
bmFwc2hvdCk6CiAgICAgIyB0aGlzIHRlc3QgZmFpbHMgYmVjYXVzZSB0aGUgaW1wbGljaXQgaW5z
cGVjdC5nZXRzb3VyY2UoQSkgYmVsb3cKICAgICAjIGRvZXMgbm90IHJldHVybiB0aGUgInggPSAx
IiBsYXN0IGxpbmUuCiAgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoCkBAIC01MzMs
MTkgKzUwMSwxNyBAQCBkZWYgdGVzdF9nZXRmc2xpbmVubygpOgogICAgIGNsYXNzIEIob2JqZWN0
KToKICAgICAgICAgcGFzcwogCi0gICAgQi5fX25hbWVfXyA9ICJCMiIKKyAgICBCLl9fbmFtZV9f
ID0gQi5fX3F1YWxuYW1lX18gPSAiQjIiCiAgICAgYXNzZXJ0IGdldGZzbGluZW5vKEIpWzFdID09
IC0xCiAKIAogZGVmIHRlc3RfY29kZV9vZl9vYmplY3RfaW5zdGFuY2Vfd2l0aF9jYWxsKCk6Ci0K
ICAgICBjbGFzcyBBKG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogICAgIHB5dGVzdC5yYWlzZXMo
VHlwZUVycm9yLCBsYW1iZGE6IF9weXRlc3QuX2NvZGUuU291cmNlKEEoKSkpCiAKICAgICBjbGFz
cyBXaXRoQ2FsbChvYmplY3QpOgotCiAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKICAgICAg
ICAgICAgIHBhc3MKIApAQCAtNTUzLDcgKzUxOSw2IEBAIGRlZiB0ZXN0X2NvZGVfb2Zfb2JqZWN0
X2luc3RhbmNlX3dpdGhfY2FsbCgpOgogICAgIGFzc2VydCAicGFzcyIgaW4gc3RyKGNvZGUuc291
cmNlKCkpCiAKICAgICBjbGFzcyBIZWxsbyhvYmplY3QpOgotCiAgICAgICAgIGRlZiBfX2NhbGxf
XyhzZWxmKToKICAgICAgICAgICAgIHBhc3MKIApAQCAtNTkyLDcgKzU1Nyw2IEBAIGRlZiB0ZXN0
X29uZWxpbmVfYW5kX2NvbW1lbnQoKToKICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gInJhaXNl
IFZhbHVlRXJyb3IiCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsKGhhc2F0dHIoc3lzLCAicHlweV92
ZXJzaW9uX2luZm8iKSwgcmVhc29uPSJkb2VzIG5vdCB3b3JrIG9uIHB5cHkiKQogZGVmIHRlc3Rf
Y29tbWVudHMoKToKICAgICBzb3VyY2UgPSAnJydkZWYgdGVzdCgpOgogICAgICJjb21tZW50IDEi
CkBAIC02MDgsOSArNTcyLDE1IEBAIGNvbW1lbnQgNAogJycnCiAgICAgZm9yIGxpbmUgaW4gcmFu
Z2UoMiwgNik6CiAgICAgICAgIGFzc2VydCBzdHIoZ2V0c3RhdGVtZW50KGxpbmUsIHNvdXJjZSkp
ID09ICIgICAgeCA9IDEiCi0gICAgZm9yIGxpbmUgaW4gcmFuZ2UoNiwgMTApOgorICAgIGlmIHN5
cy52ZXJzaW9uX2luZm8gPj0gKDMsIDgpIG9yIGhhc2F0dHIoc3lzLCAicHlweV92ZXJzaW9uX2lu
Zm8iKToKKyAgICAgICAgdHFzX3N0YXJ0ID0gOAorICAgIGVsc2U6CisgICAgICAgIHRxc19zdGFy
dCA9IDEwCisgICAgICAgIGFzc2VydCBzdHIoZ2V0c3RhdGVtZW50KDEwLCBzb3VyY2UpKSA9PSAn
IiIiJworICAgIGZvciBsaW5lIGluIHJhbmdlKDYsIHRxc19zdGFydCk6CiAgICAgICAgIGFzc2Vy
dCBzdHIoZ2V0c3RhdGVtZW50KGxpbmUsIHNvdXJjZSkpID09ICIgICAgYXNzZXJ0IEZhbHNlIgot
ICAgIGFzc2VydCBzdHIoZ2V0c3RhdGVtZW50KDEwLCBzb3VyY2UpKSA9PSAnIiIiJworICAgIGZv
ciBsaW5lIGluIHJhbmdlKHRxc19zdGFydCwgMTApOgorICAgICAgICBhc3NlcnQgc3RyKGdldHN0
YXRlbWVudChsaW5lLCBzb3VyY2UpKSA9PSAnIiIiXG5jb21tZW50IDRcbiIiIicKIAogCiBkZWYg
dGVzdF9jb21tZW50X2luX3N0YXRlbWVudCgpOgpAQCAtNjQ0LDcgKzYxNCw3IEBAIGRlZiB0ZXN0
X2lzc3VlNTUoKToKICAgICBhc3NlcnQgc3RyKHMpID09ICcgIHJvdW5kX3RyaXAoIiIiXG4iIiIp
JwogCiAKLWRlZiBYWFh0ZXN0X211bHRpbGluZSgpOgorZGVmIHRlc3RfbXVsdGlsaW5lKCk6CiAg
ICAgc291cmNlID0gZ2V0c3RhdGVtZW50KAogICAgICAgICAwLAogICAgICAgICAiIiJcCkBAIC02
NTgsNyArNjI4LDYgQEAgeCA9IDMKIAogCiBjbGFzcyBUZXN0VHJ5KG9iamVjdCk6Ci0gICAgcHl0
ZXN0bWFyayA9IGFzdG9ubHkKICAgICBzb3VyY2UgPSAiIiJcCiB0cnk6CiAgICAgcmFpc2UgVmFs
dWVFcnJvcgpAQCAtNzAzLDcgKzY3Miw2IEBAIGZpbmFsbHk6CiAKIAogY2xhc3MgVGVzdElmKG9i
amVjdCk6Ci0gICAgcHl0ZXN0bWFyayA9IGFzdG9ubHkKICAgICBzb3VyY2UgPSAiIiJcCiBpZiAx
OgogICAgIHkgPSAzCkBAIC03NTYsMyArNzI0LDE5IEBAIHNvbWV0aGluZwogJycnIiIiCiAgICAg
cmVzdWx0ID0gZ2V0c3RhdGVtZW50KDEsIHNvdXJjZSkKICAgICBhc3NlcnQgc3RyKHJlc3VsdCkg
PT0gIicnJ1xuJycnIgorCisKK2RlZiB0ZXN0X2dldHN0YXJ0aW5nYmxvY2tfbXVsdGlsaW5lKCk6
CisgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3Mp
OgorICAgICAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpCisgICAgICAgICAgICBzZWxm
LnNvdXJjZSA9IF9weXRlc3QuX2NvZGUuRnJhbWUoZnJhbWUpLnN0YXRlbWVudAorCisgICAgIyBm
bXQ6IG9mZgorICAgIHggPSBBKCd4JywKKyAgICAgICAgICAneScKKyAgICAgICAgICAsCisgICAg
ICAgICAgJ3onKQorICAgICMgZm10OiBvbgorICAgIHZhbHVlcyA9IFtpIGZvciBpIGluIHguc291
cmNlLmxpbmVzIGlmIGkuc3RyaXAoKV0KKyAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gNApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3Rfc291cmNlX211bHRpbGluZV9i
bG9jay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X3NvdXJjZV9tdWx0aWxpbmVf
YmxvY2sucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyZjc0MTJlYjhjZjM2OWI2
ZTE5NWQ3M2Q2YzEzZThkZGY4NzM0OTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3Rfc291cmNlX211bHRp
bGluZV9ibG9jay5weQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLSMgZmxha2U4OiBu
b3FhCi1pbXBvcnQgc3lzCi0KLWltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0KLQotZGVmIHRlc3RfZ2V0
c3RhcnRpbmdibG9ja19tdWx0aWxpbmUoKToKLSAgICAiIiIKLSAgICBUaGlzIHRlc3Qgd2FzIG9y
aWdpbmFsbHkgZm91bmQgaW4gdGVzdF9zb3VyY2UucHksIGJ1dCBpdCBkZXBlbmRzIG9uIHRoZSB3
ZWlyZAotICAgIGZvcm1hdHRpbmcgb2YgdGhlIGBgeCA9IEFgYCBjb25zdHJ1Y3Qgc2VlbiBoZXJl
IGFuZCBvdXIgYXV0b3BlcDggdG9vbCBjYW4gb25seSBleGNsdWRlIGVudGlyZQotICAgIGZpbGVz
IChpdCBkb2VzIG5vdCBzdXBwb3J0IGV4Y2x1ZGluZyBsaW5lcy9ibG9ja3MgdXNpbmcgdGhlIHRy
YWRpdGlvbmFsICNub3FhIGNvbW1lbnQgeWV0LAotICAgIHNlZSBoaGF0dG8vYXV0b3BlcDgjMzA3
KS4gSXQgd2FzIGNvbnNpZGVyZWQgYmV0dGVyIHRvIGp1c3QgbW92ZSB0aGlzIHNpbmdsZSB0ZXN0
IHRvIGl0cyBvd24KLSAgICBmaWxlIGFuZCBleGNsdWRlIGl0IGZyb20gYXV0b3BlcDggdGhhbiB0
cnkgdG8gY29tcGxpY2F0ZSB0aGluZ3MuCi0gICAgIiIiCi0KLSAgICBjbGFzcyBBKG9iamVjdCk6
Ci0KLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzKToKLSAgICAgICAgICAgIGZyYW1l
ID0gc3lzLl9nZXRmcmFtZSgxKQotICAgICAgICAgICAgc2VsZi5zb3VyY2UgPSBfcHl0ZXN0Ll9j
b2RlLkZyYW1lKGZyYW1lKS5zdGF0ZW1lbnQKLQotICAgICMgZm10OiBvZmYKLSAgICB4ID0gQSgn
eCcsCi0gICAgICAgICAgJ3knCi0gICAgICAgICAgLAotICAgICAgICAgICd6JykKLSAgICAjIGZt
dDogb24KLSAgICB2YWx1ZXMgPSBbaSBmb3IgaSBpbiB4LnNvdXJjZS5saW5lcyBpZiBpLnN0cmlw
KCldCi0gICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS93
M2MtaW1wb3J0LmxvZwppbmRleCBmM2IwZmZkNTgxZmNhM2E5YmQyNzA4Y2JiYmY4NDM3NzNkZmMy
ZjM3Li40ZGZmZmVlMDcxZDg4ZTE1OWVhOWI1ODJlODA5NTU2OTc3NDE1ZDQ0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9jb2RlL3czYy1pbXBvcnQubG9nCkBAIC0xNyw0ICsxNywzIEBAIExpc3Qgb2Yg
ZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3RfY29kZS5weQogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2Nv
ZGUvdGVzdF9zb3VyY2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2Vf
bXVsdGlsaW5lX2Jsb2NrLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvbmZ0
ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Mjdl
ZTc2M2QyZjM1MDA3OWZhZTMzOTFmZWYwNjg4ZmMzODNmYzEwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9jb25mdGVzdC5weQpAQCAtMCwwICsxLDU4IEBACisjIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHN5cworCitpbXBvcnQgcHl0ZXN0CisKK2lmIHN5cy5n
ZXR0cmFjZSgpOgorCisgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBkZWYg
cmVzdG9yZV90cmFjaW5nKCk6CisgICAgICAgICIiIlJlc3RvcmUgdHJhY2luZyBmdW5jdGlvbiAo
d2hlbiBydW4gd2l0aCBDb3ZlcmFnZS5weSkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLnB5dGhv
bi5vcmcvaXNzdWUzNzAxMQorICAgICAgICAiIiIKKyAgICAgICAgb3JpZ190cmFjZSA9IHN5cy5n
ZXR0cmFjZSgpCisgICAgICAgIHlpZWxkCisgICAgICAgIGlmIHN5cy5nZXR0cmFjZSgpICE9IG9y
aWdfdHJhY2U6CisgICAgICAgICAgICBzeXMuc2V0dHJhY2Uob3JpZ190cmFjZSkKKworCitAcHl0
ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUsIHRyeWZpcnN0PVRydWUpCitkZWYgcHl0ZXN0
X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoY29uZmlnLCBpdGVtcyk6CisgICAgIiIiUHJlZmVyIGZh
c3RlciB0ZXN0cy4KKworICAgIFVzZSBhIGhvb2t3cmFwcGVyIHRvIGRvIHRoaXMgaW4gdGhlIGJl
Z2lubmluZywgc28gZS5nLiAtLWZmIHN0aWxsIHdvcmtzCisgICAgY29ycmVjdGx5LgorICAgICIi
IgorICAgIGZhc3RfaXRlbXMgPSBbXQorICAgIHNsb3dfaXRlbXMgPSBbXQorICAgIHNsb3dlc3Rf
aXRlbXMgPSBbXQorICAgIG5ldXRyYWxfaXRlbXMgPSBbXQorCisgICAgc3Bhd25fbmFtZXMgPSB7
InNwYXduX3B5dGVzdCIsICJzcGF3biJ9CisKKyAgICBmb3IgaXRlbSBpbiBpdGVtczoKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgZml4dHVyZXMgPSBpdGVtLmZpeHR1cmVuYW1lcworICAgICAg
ICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAjIGRvY3Rlc3QgYXQgbGVhc3QK
KyAgICAgICAgICAgICMgKGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvNTA3MCkKKyAgICAgICAgICAgIG5ldXRyYWxfaXRlbXMuYXBwZW5kKGl0ZW0pCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBpZiAidGVzdGRpciIgaW4gZml4dHVyZXM6CisgICAgICAgICAg
ICAgICAgaWYgc3Bhd25fbmFtZXMuaW50ZXJzZWN0aW9uKGl0ZW0uZnVuY3Rpb24uX19jb2RlX18u
Y29fbmFtZXMpOgorICAgICAgICAgICAgICAgICAgICBpdGVtLmFkZF9tYXJrZXIocHl0ZXN0Lm1h
cmsudXNlc19wZXhwZWN0KQorICAgICAgICAgICAgICAgICAgICBzbG93ZXN0X2l0ZW1zLmFwcGVu
ZChpdGVtKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNsb3df
aXRlbXMuYXBwZW5kKGl0ZW0pCisgICAgICAgICAgICAgICAgaXRlbS5hZGRfbWFya2VyKHB5dGVz
dC5tYXJrLnNsb3cpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1hcmtlciA9
IGl0ZW0uZ2V0X2Nsb3Nlc3RfbWFya2VyKCJzbG93IikKKyAgICAgICAgICAgICAgICBpZiBtYXJr
ZXI6CisgICAgICAgICAgICAgICAgICAgIHNsb3dlc3RfaXRlbXMuYXBwZW5kKGl0ZW0pCisgICAg
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZmFzdF9pdGVtcy5hcHBlbmQo
aXRlbSkKKworICAgIGl0ZW1zWzpdID0gZmFzdF9pdGVtcyArIG5ldXRyYWxfaXRlbXMgKyBzbG93
X2l0ZW1zICsgc2xvd2VzdF9pdGVtcworCisgICAgeWllbGQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZGVwcmVjYXRlZF90ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9kZXBy
ZWNhdGVkX3Rlc3QucHkKaW5kZXggMzlmZjFmMWZjMzg1Y2VhZTQ1YjE4YWUyM2VjNmQ2OGVkZjg5
Y2FmOC4uNzA0NjAyMTRmYmRhOGNiNDY0ODBlMDQyNGE1YzkxODE5NmQyZGM3OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9kZXByZWNhdGVkX3Rlc3QucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9kZXByZWNhdGVkX3Rlc3QucHkKQEAgLTEsNTUgKzEsMTggQEAKLWZyb20gX19m
dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24K
LWltcG9ydCBweXRlc3QKLQorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9u
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKLWRlZiB0ZXN0X3lpZWxk
X3Rlc3RzX2RlcHJlY2F0aW9uKHRlc3RkaXIpOgotICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAg
ICAgICAgIiIiCi0gICAgICAgIGRlZiBmdW5jMShhcmcsIGFyZzIpOgotICAgICAgICAgICAgYXNz
ZXJ0IGFyZyA9PSBhcmcyCi0gICAgICAgIGRlZiB0ZXN0X2dlbigpOgotICAgICAgICAgICAgeWll
bGQgIm0xIiwgZnVuYzEsIDE1LCAzKjUKLSAgICAgICAgICAgIHlpZWxkICJtMiIsIGZ1bmMxLCA0
MiwgNio3Ci0gICAgICAgIGRlZiB0ZXN0X2dlbjIoKToKLSAgICAgICAgICAgIGZvciBrIGluIHJh
bmdlKDEwKToKLSAgICAgICAgICAgICAgICB5aWVsZCBmdW5jMSwgMSwgMQotICAgICIiIgotICAg
ICkKLSAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJhIikKLSAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgIFsKLSAgICAgICAgICAgICIqeWllbGQgdGVzdHMg
YXJlIGRlcHJlY2F0ZWQsIGFuZCBzY2hlZHVsZWQgdG8gYmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4w
KiIsCi0gICAgICAgICAgICAiKjIgcGFzc2VkKiIsCi0gICAgICAgIF0KLSAgICApCi0gICAgYXNz
ZXJ0IHJlc3VsdC5zdGRvdXQuc3RyKCkuY291bnQoInlpZWxkIHRlc3RzIGFyZSBkZXByZWNhdGVk
IikgPT0gMgoraW1wb3J0IG9zCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdC53YXJuaW5n
X3R5cGVzIGltcG9ydCBQeXRlc3REZXByZWNhdGlvbldhcm5pbmcKK2Zyb20gX3B5dGVzdC53YXJu
aW5ncyBpbXBvcnQgU0hPV19QWVRFU1RfV0FSTklOR1NfQVJHCiAKLWRlZiB0ZXN0X2Z1bmNhcmdf
cHJlZml4X2RlcHJlY2F0aW9uKHRlc3RkaXIpOgotICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAg
ICAgICAgIiIiCi0gICAgICAgIGRlZiBweXRlc3RfZnVuY2FyZ19fdmFsdWUoKToKLSAgICAgICAg
ICAgIHJldHVybiAxMAotCi0gICAgICAgIGRlZiB0ZXN0X2Z1bmNhcmdfcHJlZml4KHZhbHVlKToK
LSAgICAgICAgICAgIGFzc2VydCB2YWx1ZSA9PSAxMAotICAgICIiIgotICAgICkKLSAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJhIikKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoCi0gICAgICAgIFsKLSAgICAgICAgICAgICgKLSAgICAgICAgICAgICAgICAiKnB5dGVz
dF9mdW5jYXJnX192YWx1ZTogIgotICAgICAgICAgICAgICAgICdkZWNsYXJpbmcgZml4dHVyZXMg
dXNpbmcgInB5dGVzdF9mdW5jYXJnX18iIHByZWZpeCBpcyBkZXByZWNhdGVkICcKLSAgICAgICAg
ICAgICAgICAiYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdCA0LjAuICAiCi0g
ICAgICAgICAgICAgICAgIlBsZWFzZSByZW1vdmUgdGhlIHByZWZpeCBhbmQgdXNlIHRoZSBAcHl0
ZXN0LmZpeHR1cmUgZGVjb3JhdG9yIGluc3RlYWQuIgotICAgICAgICAgICAgKSwKLSAgICAgICAg
ICAgICIqMSBwYXNzZWQqIiwKLSAgICAgICAgXQotICAgICkKK3B5dGVzdG1hcmsgPSBweXRlc3Qu
bWFyay5weXRlc3Rlcl9leGFtcGxlX3BhdGgoImRlcHJlY2F0ZWQiKQogCiAKLWRlZiB0ZXN0X3B5
dGVzdF9zZXR1cF9jZmdfZGVwcmVjYXRlZCh0ZXN0ZGlyKToKK2RlZiB0ZXN0X3B5dGVzdF9zZXR1
cF9jZmdfdW5zdXBwb3J0ZWQodGVzdGRpcik6CiAgICAgdGVzdGRpci5tYWtlZmlsZSgKICAgICAg
ICAgIi5jZmciLAogICAgICAgICBzZXR1cD0iIiIKQEAgLTU3LDEzICsyMCwxMSBAQCBkZWYgdGVz
dF9weXRlc3Rfc2V0dXBfY2ZnX2RlcHJlY2F0ZWQodGVzdGRpcik6CiAgICAgICAgIGFkZG9wdHMg
PSAtLXZlcmJvc2UKICAgICAiIiIsCiAgICAgKQotICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgIFsiKnB5dGVz
dCpzZWN0aW9uIGluIHNldHVwLmNmZyBmaWxlcyBpcyBkZXByZWNhdGVkKnVzZSp0b29sOnB5dGVz
dCppbnN0ZWFkKiJdCi0gICAgKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5F
eGNlcHRpb24pOgorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCiAKIAotZGVmIHRlc3RfcHl0
ZXN0X2N1c3RvbV9jZmdfZGVwcmVjYXRlZCh0ZXN0ZGlyKToKK2RlZiB0ZXN0X3B5dGVzdF9jdXN0
b21fY2ZnX3Vuc3VwcG9ydGVkKHRlc3RkaXIpOgogICAgIHRlc3RkaXIubWFrZWZpbGUoCiAgICAg
ICAgICIuY2ZnIiwKICAgICAgICAgY3VzdG9tPSIiIgpAQCAtNzEsMzYgKzMyLDE1IEBAIGRlZiB0
ZXN0X3B5dGVzdF9jdXN0b21fY2ZnX2RlcHJlY2F0ZWQodGVzdGRpcik6CiAgICAgICAgIGFkZG9w
dHMgPSAtLXZlcmJvc2UKICAgICAiIiIsCiAgICAgKQotICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItYyIsICJjdXN0b20uY2ZnIikKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoCi0gICAgICAgIFsiKnB5dGVzdCpzZWN0aW9uIGluIGN1c3RvbS5jZmcgZmlsZXMgaXMgZGVw
cmVjYXRlZCp1c2UqdG9vbDpweXRlc3QqaW5zdGVhZCoiXQotICAgICkKLQotCi1kZWYgdGVzdF9z
dHJfYXJnc19kZXByZWNhdGVkKHRtcGRpciwgdGVzdGRpcik6Ci0gICAgIiIiRGVwcmVjYXRlIHBh
c3Npbmcgc3RyaW5ncyB0byBweXRlc3QubWFpbigpLiBTY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4g
cHl0ZXN0LTQuMC4iIiIKLSAgICBmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RT
Q09MTEVDVEVECi0KLSAgICB3YXJuaW5ncyA9IFtdCi0KLSAgICBjbGFzcyBDb2xsZWN0KG9iamVj
dCk6Ci0KLSAgICAgICAgZGVmIHB5dGVzdF9sb2d3YXJuaW5nKHNlbGYsIG1lc3NhZ2UpOgotICAg
ICAgICAgICAgd2FybmluZ3MuYXBwZW5kKG1lc3NhZ2UpCi0KLSAgICByZXQgPSBweXRlc3QubWFp
bigiJXMgLXgiICUgdG1wZGlyLCBwbHVnaW5zPVtDb2xsZWN0KCldKQotICAgIG1zZyA9ICgKLSAg
ICAgICAgInBhc3NpbmcgYSBzdHJpbmcgdG8gcHl0ZXN0Lm1haW4oKSBpcyBkZXByZWNhdGVkLCAi
Ci0gICAgICAgICJwYXNzIGEgbGlzdCBvZiBhcmd1bWVudHMgaW5zdGVhZC4iCi0gICAgKQotICAg
IGFzc2VydCBtc2cgaW4gd2FybmluZ3MKLSAgICBhc3NlcnQgcmV0ID09IEVYSVRfTk9URVNUU0NP
TExFQ1RFRAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24pOgor
ICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLWMiLCAiY3VzdG9tLmNmZyIpCiAKIAogZGVmIHRl
c3RfZ2V0ZnVuY2FyZ3ZhbHVlX2lzX2RlcHJlY2F0ZWQocmVxdWVzdCk6CiAgICAgcHl0ZXN0LmRl
cHJlY2F0ZWRfY2FsbChyZXF1ZXN0LmdldGZ1bmNhcmd2YWx1ZSwgInRtcGRpciIpCiAKIAorQHB5
dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJkZWZhdWx0IikKIGRlZiB0ZXN0X3Jlc3VsdGxvZ19p
c19kZXByZWNhdGVkKHRlc3RkaXIpOgogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LWhlbHAiKQogICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipERVBSRUNBVEVEIHBh
dGggZm9yIG1hY2hpbmUtcmVhZGFibGUgcmVzdWx0IGxvZyoiXSkKQEAgLTExNCwzMCArNTQsMTIg
QEAgZGVmIHRlc3RfcmVzdWx0bG9nX2lzX2RlcHJlY2F0ZWQodGVzdGRpcik6CiAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tcmVzdWx0LWxvZz0lcyIgJSB0ZXN0ZGlyLnRtcGRpci5q
b2luKCJyZXN1bHQubG9nIikpCiAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAg
ICAgICBbCi0gICAgICAgICAgICAiKi0tcmVzdWx0LWxvZyBpcyBkZXByZWNhdGVkIGFuZCBzY2hl
ZHVsZWQgZm9yIHJlbW92YWwgaW4gcHl0ZXN0IDQuMCoiLAotICAgICAgICAgICAgIipTZWUgaHR0
cHM6Ly9kb2NzLnB5dGVzdC5vcmcvKi91c2FnZS5odG1sI2NyZWF0aW5nLXJlc3VsdGxvZy1mb3Jt
YXQtZmlsZXMgZm9yIG1vcmUgaW5mb3JtYXRpb24qIiwKKyAgICAgICAgICAgICIqLS1yZXN1bHQt
bG9nIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxlZCBmb3IgcmVtb3ZhbCBpbiBweXRlc3QgNS4w
KiIsCisgICAgICAgICAgICAiKlNlZSBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qv
ZGVwcmVjYXRpb25zLmh0bWwjcmVzdWx0LWxvZy1yZXN1bHQtbG9nIGZvciBtb3JlIGluZm9ybWF0
aW9uKiIsCiAgICAgICAgIF0KICAgICApCiAKIAotQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdz
KCJhbHdheXM6TWV0YWZ1bmMuYWRkY2FsbCBpcyBkZXByZWNhdGVkIikKLWRlZiB0ZXN0X21ldGFm
dW5jX2FkZGNhbGxfZGVwcmVjYXRlZCh0ZXN0ZGlyKToKLSAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
Ci0gICAgICAgICIiIgotICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5j
KToKLSAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoeydpJzogMX0pCi0gICAgICAgICAgICBt
ZXRhZnVuYy5hZGRjYWxsKHsnaSc6IDJ9KQotICAgICAgICBkZWYgdGVzdF9mdW5jKGkpOgotICAg
ICAgICAgICAgcGFzcwotICAgICIiIgotICAgICkKLSAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLXMiKQotICAgIGFzc2VydCByZXMucmV0ID09IDAKLSAgICByZXMuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoCi0gICAgICAgIFsiKk1ldGFmdW5jLmFkZGNhbGwgaXMgZGVwcmVjYXRlZCoiLCAiKjIg
cGFzc2VkLCAyIHdhcm5pbmdzKiJdCi0gICAgKQotCi0KIGRlZiB0ZXN0X3Rlcm1pbmFsX3JlcG9y
dGVyX3dyaXRlcl9hdHRyKHB5dGVzdGNvbmZpZyk6CiAgICAgIiIiQ2hlY2sgdGhhdCBUZXJtaW5h
bFJlcG9ydGVyLl90dyBpcyBhbHNvIGF2YWlsYWJsZSBhcyAnd3JpdGVyJyAoIzI5ODQpCiAgICAg
VGhpcyBhdHRyaWJ1dGUgaXMgcGxhbm5lZCB0byBiZSBkZXByZWNhdGVkIGluIDMuNC4KQEAgLTE1
Myw2ICs3NSw3IEBAIGRlZiB0ZXN0X3Rlcm1pbmFsX3JlcG9ydGVyX3dyaXRlcl9hdHRyKHB5dGVz
dGNvbmZpZyk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwbHVnaW4iLCBbImNhdGNo
bG9nIiwgImNhcHR1cmVsb2ciXSkKK0BweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiZGVmYXVs
dCIpCiBkZWYgdGVzdF9weXRlc3RfY2F0Y2hsb2dfZGVwcmVjYXRlZCh0ZXN0ZGlyLCBwbHVnaW4p
OgogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgIiIiCkBAIC0xNjksMjQgKzkyLDIx
IEBAIGRlZiB0ZXN0X3B5dGVzdF9jYXRjaGxvZ19kZXByZWNhdGVkKHRlc3RkaXIsIHBsdWdpbik6
CiAgICAgKQogCiAKK2RlZiB0ZXN0X3JhaXNlc19tZXNzYWdlX2FyZ3VtZW50X2RlcHJlY2F0ZWQo
KToKKyAgICB3aXRoIHB5dGVzdC53YXJucyhweXRlc3QuUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5n
KToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbWVzc2FnZT0iZm9v
YmFyIik6CisgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IKKworCiBkZWYgdGVzdF9weXRl
c3RfcGx1Z2luc19pbl9ub25fdG9wX2xldmVsX2NvbmZ0ZXN0X2RlcHJlY2F0ZWQodGVzdGRpcik6
CiAgICAgZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IFBZVEVTVF9QTFVHSU5TX0ZST01f
Tk9OX1RPUF9MRVZFTF9DT05GVEVTVAogCi0gICAgc3ViZGlyZWN0b3J5ID0gdGVzdGRpci50bXBk
aXIuam9pbigic3ViZGlyZWN0b3J5IikKLSAgICBzdWJkaXJlY3RvcnkubWtkaXIoKQotICAgICMg
Y3JlYXRlIHRoZSBpbm5lciBjb25mdGVzdCB3aXRoIG1ha2Vjb25mdGVzdCBhbmQgdGhlbiBtb3Zl
IGl0IHRvIHRoZSBzdWJkaXJlY3RvcnkKLSAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAg
ICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAqKnsKKyAgICAgICAgICAg
ICJzdWJkaXJlY3RvcnkvY29uZnRlc3QucHkiOiAiIiIKICAgICAgICAgcHl0ZXN0X3BsdWdpbnM9
WydjYXB0dXJlJ10KICAgICAiIiIKLSAgICApCi0gICAgdGVzdGRpci50bXBkaXIuam9pbigiY29u
ZnRlc3QucHkiKS5tb3ZlKHN1YmRpcmVjdG9yeS5qb2luKCJjb25mdGVzdC5weSIpKQotICAgICMg
bWFrZSB0aGUgdG9wIGxldmVsIGNvbmZ0ZXN0Ci0gICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0g
ICAgICAgICIiIgotICAgICAgICBpbXBvcnQgd2FybmluZ3MKLSAgICAgICAgd2FybmluZ3MuZmls
dGVyd2FybmluZ3MoJ2Fsd2F5cycsIGNhdGVnb3J5PURlcHJlY2F0aW9uV2FybmluZykKLSAgICAi
IiIKKyAgICAgICAgfQogICAgICkKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIi
IgpAQCAtMTk0LDE1ICsxMTQsNDUgQEAgZGVmIHRlc3RfcHl0ZXN0X3BsdWdpbnNfaW5fbm9uX3Rv
cF9sZXZlbF9jb25mdGVzdF9kZXByZWNhdGVkKHRlc3RkaXIpOgogICAgICAgICAgICAgcGFzcwog
ICAgICIiIgogICAgICkKLSAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkK
LSAgICBhc3NlcnQgcmVzLnJldCA9PSAwCi0gICAgcmVzLnN0ZGVyci5mbm1hdGNoX2xpbmVzKAot
ICAgICAgICAiKiIgKyBzdHIoUFlURVNUX1BMVUdJTlNfRlJPTV9OT05fVE9QX0xFVkVMX0NPTkZU
RVNUKS5zcGxpdGxpbmVzKClbMF0KKyAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChTSE9XX1BZ
VEVTVF9XQVJOSU5HU19BUkcpCisgICAgYXNzZXJ0IHJlcy5yZXQgPT0gMgorICAgIG1zZyA9IHN0
cihQWVRFU1RfUExVR0lOU19GUk9NX05PTl9UT1BfTEVWRUxfQ09ORlRFU1QpLnNwbGl0bGluZXMo
KVswXQorICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWyIqe21zZ30qIi5m
b3JtYXQobXNnPW1zZyksICIqc3ViZGlyZWN0b3J5e3NlcH1jb25mdGVzdC5weSoiLmZvcm1hdChz
ZXA9b3Muc2VwKV0KICAgICApCiAKIAotZGVmIHRlc3RfcHl0ZXN0X3BsdWdpbnNfaW5fbm9uX3Rv
cF9sZXZlbF9jb25mdGVzdF9kZXByZWNhdGVkX25vX3RvcF9sZXZlbF9jb25mdGVzdCgKLSAgICB0
ZXN0ZGlyCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInVzZV9weWFyZ3MiLCBbVHJ1ZSwgRmFs
c2VdKQorZGVmIHRlc3RfcHl0ZXN0X3BsdWdpbnNfaW5fbm9uX3RvcF9sZXZlbF9jb25mdGVzdF91
bnN1cHBvcnRlZF9weWFyZ3MoCisgICAgdGVzdGRpciwgdXNlX3B5YXJncworKToKKyAgICAiIiJX
aGVuIHVzaW5nIC0tcHlhcmdzLCBkbyBub3QgZW1pdCB0aGUgd2FybmluZyBhYm91dCBub24tdG9w
LWxldmVsIGNvbmZ0ZXN0IHdhcm5pbmdzICgjNDAzOSwgIzQwNDQpIiIiCisgICAgZnJvbSBfcHl0
ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IFBZVEVTVF9QTFVHSU5TX0ZST01fTk9OX1RPUF9MRVZFTF9D
T05GVEVTVAorCisgICAgZmlsZXMgPSB7CisgICAgICAgICJzcmMvcGtnL19faW5pdF9fLnB5Ijog
IiIsCisgICAgICAgICJzcmMvcGtnL2NvbmZ0ZXN0LnB5IjogIiIsCisgICAgICAgICJzcmMvcGtn
L3Rlc3Rfcm9vdC5weSI6ICJkZWYgdGVzdCgpOiBwYXNzIiwKKyAgICAgICAgInNyYy9wa2cvc3Vi
L19faW5pdF9fLnB5IjogIiIsCisgICAgICAgICJzcmMvcGtnL3N1Yi9jb25mdGVzdC5weSI6ICJw
eXRlc3RfcGx1Z2lucz1bJ2NhcHR1cmUnXSIsCisgICAgICAgICJzcmMvcGtnL3N1Yi90ZXN0X2Jh
ci5weSI6ICJkZWYgdGVzdCgpOiBwYXNzIiwKKyAgICB9CisgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCoqZmlsZXMpCisgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KHRlc3RkaXIudG1wZGlyLmpvaW4o
InNyYyIpKQorCisgICAgYXJncyA9ICgiLS1weWFyZ3MiLCAicGtnIikgaWYgdXNlX3B5YXJncyBl
bHNlICgpCisgICAgYXJncyArPSAoU0hPV19QWVRFU1RfV0FSTklOR1NfQVJHLCkKKyAgICByZXMg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgqYXJncykKKyAgICBhc3NlcnQgcmVzLnJldCA9PSAoMCBpZiB1
c2VfcHlhcmdzIGVsc2UgMikKKyAgICBtc2cgPSBzdHIoUFlURVNUX1BMVUdJTlNfRlJPTV9OT05f
VE9QX0xFVkVMX0NPTkZURVNUKS5zcGxpdGxpbmVzKClbMF0KKyAgICBpZiB1c2VfcHlhcmdzOgor
ICAgICAgICBhc3NlcnQgbXNnIG5vdCBpbiByZXMuc3Rkb3V0LnN0cigpCisgICAgZWxzZToKKyAg
ICAgICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKnttc2d9KiIuZm9ybWF0KG1zZz1tc2cp
XSkKKworCitkZWYgdGVzdF9weXRlc3RfcGx1Z2luc19pbl9ub25fdG9wX2xldmVsX2NvbmZ0ZXN0
X3Vuc3VwcG9ydGVkX25vX3RvcF9sZXZlbF9jb25mdGVzdCgKKyAgICB0ZXN0ZGlyLAogKToKICAg
ICBmcm9tIF9weXRlc3QuZGVwcmVjYXRlZCBpbXBvcnQgUFlURVNUX1BMVUdJTlNfRlJPTV9OT05f
VE9QX0xFVkVMX0NPTkZURVNUCiAKQEAgLTIxMCw4ICsxNjAsNiBAQCBkZWYgdGVzdF9weXRlc3Rf
cGx1Z2luc19pbl9ub25fdG9wX2xldmVsX2NvbmZ0ZXN0X2RlcHJlY2F0ZWRfbm9fdG9wX2xldmVs
X2NvbmZ0ZQogICAgIHN1YmRpcmVjdG9yeS5ta2RpcigpCiAgICAgdGVzdGRpci5tYWtlY29uZnRl
c3QoCiAgICAgICAgICIiIgotICAgICAgICBpbXBvcnQgd2FybmluZ3MKLSAgICAgICAgd2Fybmlu
Z3MuZmlsdGVyd2FybmluZ3MoJ2Fsd2F5cycsIGNhdGVnb3J5PURlcHJlY2F0aW9uV2FybmluZykK
ICAgICAgICAgcHl0ZXN0X3BsdWdpbnM9WydjYXB0dXJlJ10KICAgICAiIiIKICAgICApCkBAIC0y
MjUsMTQgKzE3MywxNSBAQCBkZWYgdGVzdF9weXRlc3RfcGx1Z2luc19pbl9ub25fdG9wX2xldmVs
X2NvbmZ0ZXN0X2RlcHJlY2F0ZWRfbm9fdG9wX2xldmVsX2NvbmZ0ZQogICAgICkKIAogICAgIHJl
cyA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQotICAgIGFzc2VydCByZXMucmV0ID09
IDAKLSAgICByZXMuc3RkZXJyLmZubWF0Y2hfbGluZXMoCi0gICAgICAgICIqIiArIHN0cihQWVRF
U1RfUExVR0lOU19GUk9NX05PTl9UT1BfTEVWRUxfQ09ORlRFU1QpLnNwbGl0bGluZXMoKVswXQor
ICAgIGFzc2VydCByZXMucmV0ID09IDIKKyAgICBtc2cgPSBzdHIoUFlURVNUX1BMVUdJTlNfRlJP
TV9OT05fVE9QX0xFVkVMX0NPTkZURVNUKS5zcGxpdGxpbmVzKClbMF0KKyAgICByZXMuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsiKnttc2d9KiIuZm9ybWF0KG1zZz1tc2cpLCAiKnN1
YmRpcmVjdG9yeXtzZXB9Y29uZnRlc3QucHkqIi5mb3JtYXQoc2VwPW9zLnNlcCldCiAgICAgKQog
CiAKLWRlZiB0ZXN0X3B5dGVzdF9wbHVnaW5zX2luX25vbl90b3BfbGV2ZWxfY29uZnRlc3RfZGVw
cmVjYXRlZF9ub19mYWxzZV9wb3NpdGl2ZXMoCi0gICAgdGVzdGRpcgorZGVmIHRlc3RfcHl0ZXN0
X3BsdWdpbnNfaW5fbm9uX3RvcF9sZXZlbF9jb25mdGVzdF91bnN1cHBvcnRlZF9ub19mYWxzZV9w
b3NpdGl2ZXMoCisgICAgdGVzdGRpciwKICk6CiAgICAgZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQg
aW1wb3J0IFBZVEVTVF9QTFVHSU5TX0ZST01fTk9OX1RPUF9MRVZFTF9DT05GVEVTVAogCkBAIC0y
NjAsNiArMjA5LDIzIEBAIGRlZiB0ZXN0X3B5dGVzdF9wbHVnaW5zX2luX25vbl90b3BfbGV2ZWxf
Y29uZnRlc3RfZGVwcmVjYXRlZF9ub19mYWxzZV9wb3NpdGl2ZXMoCiAgICAgKQogICAgIHJlcyA9
IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQogICAgIGFzc2VydCByZXMucmV0ID09IDAK
LSAgICBhc3NlcnQgc3RyKFBZVEVTVF9QTFVHSU5TX0ZST01fTk9OX1RPUF9MRVZFTF9DT05GVEVT
VCkuc3BsaXRsaW5lcygpWwotICAgICAgICAwCi0gICAgXSBub3QgaW4gcmVzLnN0ZGVyci5zdHIo
KQorICAgIG1zZyA9IHN0cihQWVRFU1RfUExVR0lOU19GUk9NX05PTl9UT1BfTEVWRUxfQ09ORlRF
U1QpLnNwbGl0bGluZXMoKVswXQorICAgIGFzc2VydCBtc2cgbm90IGluIHJlcy5zdGRvdXQuc3Ry
KCkKKworCitkZWYgdGVzdF9maXh0dXJlX25hbWVkX3JlcXVlc3QodGVzdGRpcik6CisgICAgdGVz
dGRpci5jb3B5X2V4YW1wbGUoKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAgICAgICAgICIq
J3JlcXVlc3QnIGlzIGEgcmVzZXJ2ZWQgbmFtZSBmb3IgZml4dHVyZXMgYW5kIHdpbGwgcmFpc2Ug
YW4gZXJyb3IgaW4gZnV0dXJlIHZlcnNpb25zIgorICAgICAgICBdCisgICAgKQorCisKK2RlZiB0
ZXN0X3B5dGVzdF93YXJuc191bmtub3duX2t3YXJncygpOgorICAgIHdpdGggcHl0ZXN0Lndhcm5z
KAorICAgICAgICBQeXRlc3REZXByZWNhdGlvbldhcm5pbmcsCisgICAgICAgIG1hdGNoPXIicHl0
ZXN0Lndhcm5zXChcKSBnb3QgdW5leHBlY3RlZCBrZXl3b3JkIGFyZ3VtZW50czogXFsnZm9vJ1xd
IiwKKyAgICApOgorICAgICAgICBweXRlc3Qud2FybnMoVXNlcldhcm5pbmcsIGZvbz0iaGVsbG8i
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvUkVBRE1F
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL1JFQURNRS5yc3QKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTdkMGZkYTVjNWRlYTA4ZTJlNTRlYzhjMGUxNWVlNWY5ZmU5NmU1YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL1JFQURNRS5y
c3QKQEAgLTAsMCArMSw5IEBACitFeGFtcGxlIHRlc3Qgc2NyaXB0cworPT09PT09PT09PT09PT09
PT09PT09CisKKworVGhlIGZpbGVzIGluIHRoaXMgZm9sZGVyIGFyZSBub3QgZGlyZWN0IHRlc3Rz
LCBidXQgcmF0aGVyIGV4YW1wbGUgdGVzdCBzdWl0ZXMgdGhhdCBkZW1vbnN0cmF0ZSBjZXJ0YWlu
IGlzc3Vlcy9iZWhhdmlvdXJzLgorCitJbiB0aGUgZnV0dXJlIHdlIHdpbGwgbW92ZSBwYXJ0IG9m
IHRoZSBjb250ZW50IG9mIHRoZSBhY2NlcHRhbmNlIHRlc3RzIGhlcmUgaW4gb3JkZXIgdG8gaGF2
ZSBkaXJlY3RseSB0ZXN0YWJsZSBjb2RlIGluc3RlYWQgb2Ygd3JpdGluZyBvdXQgdGhpbmdzIGFu
ZCB0aGVuIHJ1bm5pbmcgdGhlbSBpbiBuZXN0ZWQgcHl0ZXN0IHNlc3Npb25zL3N1YnByb2Nlc3Nl
cy4KKworVGhpcyB3aWxsIGFpZCBkZWJ1Z2dpbmcgYW5kIGNvbXByZWhlbnNpb24uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9hY2NlcHRhbmNlL2ZpeHR1
cmVfbW9ja19pbnRlZ3JhdGlvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2FjY2VwdGFuY2UvZml4dHVyZV9tb2NrX2ludGVncmF0aW9uLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4
Y2NkZjFiNDg4YTJmMWNmNzY4NTExZmM0ZTVjNDY5OGM5YjcyZmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9hY2NlcHRhbmNlL2ZpeHR1cmVf
bW9ja19pbnRlZ3JhdGlvbi5weQpAQCAtMCwwICsxLDIxIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQorIiIiUmVwcm9kdWNlcyBpc3N1ZSAjMzc3NCIiIgorCit0cnk6CisgICAgaW1wb3J0IG1v
Y2sKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBpbXBvcnQgdW5pdHRlc3QubW9jayBhcyBtb2Nr
CisKK2ltcG9ydCBweXRlc3QKKworY29uZmlnID0geyJteWtleSI6ICJPUklHSU5BTCJ9CisKKwor
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCitAbW9jay5wYXRjaC5kaWN0KGNvbmZp
ZywgeyJteWtleSI6ICJNT0NLRUQifSkKK2RlZiBteV9maXh0dXJlKCk6CisgICAgcmV0dXJuIGNv
bmZpZ1sibXlrZXkiXQorCisKK2RlZiB0ZXN0X2Zvb2JhcihteV9maXh0dXJlKToKKyAgICBhc3Nl
cnQgbXlfZml4dHVyZSA9PSAiTU9DS0VEIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvYWNjZXB0YW5jZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2FjY2VwdGFuY2UvdzNjLWltcG9ydC5sb2cKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDI3Yjc1ZTA1ZmVjYTc4NjI4ZThhMjVhNmE3MDMwNzFiMTQ5ZjJiMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2FjY2VwdGFuY2Uv
dzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvYWNjZXB0YW5jZS9maXh0dXJlX21vY2tfaW50ZWdyYXRpb24u
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxl
Y3QvY29sbGVjdF9pbml0X3Rlc3RzL3B5dGVzdC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy9weXRlc3QuaW5pCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdjNDc5NTU0MDI1MTFkNTIzYmU1ZWE4NWNmMDRiOTA2NjJlNmZkMDYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2Nv
bGxlY3RfaW5pdF90ZXN0cy9weXRlc3QuaW5pCkBAIC0wLDAgKzEsMiBAQAorW3B5dGVzdF0KK3B5
dGhvbl9maWxlcyA9ICoucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0X3Rlc3RzL3Rlc3RzL19faW5pdF9fLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9jb2xsZWN0X2luaXRf
dGVzdHMvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIxMTA1NTcxOGYwYjFlNmFhYWI1
ZjA4NjI0ZDMwODFjYjI0N2I0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0X3Rlc3RzL3Rlc3RzL19faW5p
dF9fLnB5CkBAIC0wLDAgKzEsMyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2RlZiB0ZXN0
X2luaXQoKToKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy90ZXN0cy90ZXN0X2Zvby5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0
X3Rlc3RzL3Rlc3RzL3Rlc3RfZm9vLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjNTYwZmQxMzlmMTczOWRkOTVj
ODA2NjMwM2RhMTFmNGYxMGVjMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy90ZXN0cy90ZXN0
X2Zvby5weQpAQCAtMCwwICsxLDMgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitkZWYgdGVz
dF9mb28oKToKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy90ZXN0cy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9p
bml0X3Rlc3RzL3Rlc3RzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZWRmZGQzMzc2NjJl
NjYxNTVmMGM1NDU0NTNlYWU1NWQ3NjcxMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy90ZXN0
cy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy90ZXN0cy9f
X2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3Qv
Y29sbGVjdF9pbml0X3Rlc3RzL3Rlc3RzL3Rlc3RfZm9vLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxl
Y3QvY29sbGVjdF9pbml0X3Rlc3RzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ZjE2ZjQ0
MGQwODczNWYzODk1NDFiYWI0YzhjMzU0MzRlMmZhZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0
cy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy9weXRlc3Qu
aW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xs
ZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lv
bi9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzNkOWE3OTFjMDk2N2Y2OGE2ODU5YzRlMzZhYWY1
OTRhZDI2ZDU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi9jb25mdGVzdC5weQpA
QCAtMCwwICsxLDMgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitkZWYgcHl0ZXN0X2lnbm9y
ZV9jb2xsZWN0KHBhdGgpOgorICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vy
c2lvbi90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2NvbGxlY3QvcGFja2FnZV9pbmZpbml0ZV9yZWN1cnNpb24vdGVzdHMvX19pbml0X18ucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxl
Y3QvcGFja2FnZV9pbmZpbml0ZV9yZWN1cnNpb24vdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCAr
MSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBk
aXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdl
X2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy90ZXN0X2Jhc2ljLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90
ZXN0cy90ZXN0X2Jhc2ljLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYzVmNjA1MjAyNWE0NGJlYmQyZGQwNWUz
YmU1Mzk5ODlkYjk2ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL3Rlc3RzL3Rl
c3RfYmFzaWMucHkKQEAgLTAsMCArMSwzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZGVm
IHRlc3QoKToKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL3Rlc3RzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9w
YWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZmMyMjU4NTg1YjM1NzU1YTc3OTM2YmQyOTllZmU4NGNiYzQyYWZkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdl
X2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBA
CitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0Rv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBv
ZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3Bh
Y2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL3Rlc3RzL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lv
bi90ZXN0cy90ZXN0X2Jhc2ljLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNr
YWdlX2luZmluaXRlX3JlY3Vyc2lvbi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzlkMzYz
OWRiMTdlOTlkMDc0MWY1YjJhMTI0ZGIxMWVjYjFhZWQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRl
X3JlY3Vyc2lvbi93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0Rv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVf
cmVjdXJzaW9uL2NvbmZ0ZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19hcmcvcGtnL19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNr
YWdlX2luaXRfZ2l2ZW5fYXNfYXJnL3BrZy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4
Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luaXRfZ2l2
ZW5fYXNfYXJnL3BrZy9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisjIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19hcmcvcGtn
L3Rlc3RfZm9vLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVj
dC9wYWNrYWdlX2luaXRfZ2l2ZW5fYXNfYXJnL3BrZy90ZXN0X2Zvby5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MGM1ZjYwNTIwMjVhNDRiZWJkMmRkMDVlM2JlNTM5OTg5ZGI5Njg5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2lu
aXRfZ2l2ZW5fYXNfYXJnL3BrZy90ZXN0X2Zvby5weQpAQCAtMCwwICsxLDMgQEAKKyMgLSotIGNv
ZGluZzogdXRmLTggLSotCitkZWYgdGVzdCgpOgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbml0X2dpdmVu
X2FzX2FyZy9wa2cvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19hcmcvcGtnL3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRlYmEyYWQ5MTJjZjg3NDA5YmFiM2Q2YzgzZTg3MTlkNzZiODM5NzkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9j
b2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19hcmcvcGtnL3czYy1pbXBvcnQubG9nCkBAIC0w
LDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2NvbGxlY3QvcGFja2FnZV9pbml0X2dpdmVuX2FzX2FyZy9wa2cvX19pbml0X18ucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZl
bl9hc19hcmcvcGtnL3Rlc3RfZm9vLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9jb25maWcvY29sbGVjdF9weXRlc3RfcHJlZml4L2NvbmZ0ZXN0LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0
ZXN0X3ByZWZpeC9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzM5N2NjYzRjODhiYWU1ZGJlN2Iz
NWFmYjNkMzcyNTFiYjdlZmNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0X3ByZWZpeC9jb25mdGVzdC5w
eQpAQCAtMCwwICsxLDMgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitjbGFzcyBweXRlc3Rf
c29tZXRoaW5nKG9iamVjdCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0X3ByZWZpeC90ZXN0X2Zv
by5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZpZy9jb2xsZWN0
X3B5dGVzdF9wcmVmaXgvdGVzdF9mb28ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM1NjBmZDEzOWYxNzM5ZGQ5
NWM4MDY2MzAzZGExMWY0ZjEwZWMyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZpZy9jb2xsZWN0X3B5dGVzdF9wcmVmaXgvdGVzdF9m
b28ucHkKQEAgLTAsMCArMSwzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZGVmIHRlc3Rf
Zm9vKCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0X3ByZWZpeC93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZpZy9jb2xsZWN0X3B5dGVzdF9w
cmVmaXgvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNjMTgxNjc3OTkzOGFjMzRkNzJjNzQ2
NWFhZGNmMGRlZDk3YmRhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL2NvbmZpZy9jb2xsZWN0X3B5dGVzdF9wcmVmaXgvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0X3ByZWZpeC9jb25mdGVzdC5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZpZy9jb2xsZWN0X3B5dGVzdF9wcmVm
aXgvdGVzdF9mb28ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2NvbmZ0ZXN0X3VzYWdlZXJyb3IvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9jb25mdGVzdF91c2FnZWVycm9yL2NvbmZ0ZXN0LnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQyZjA0MDU3OGZhN2Y2MGJkMmMwZmViZDMxOGY0NmY2YzhmMWRiM2MKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb25mdGVzdF91
c2FnZWVycm9yL2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsOSBAQAorIyAtKi0gY29kaW5nOiB1dGYt
OCAtKi0KK2RlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgcmFpc2UgcHl0ZXN0LlVzYWdlRXJyb3IoImhlbGxvIikKKworCitkZWYgcHl0ZXN0X3Vu
Y29uZmlndXJlKGNvbmZpZyk6CisgICAgcHJpbnQoInB5dGVzdF91bmNvbmZpZ3VyZV9jYWxsZWQi
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZnRl
c3RfdXNhZ2VlcnJvci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2NvbmZ0ZXN0X3VzYWdlZXJyb3IvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODc4NmNjYmFiZTAwMDFlMDEzZDY1ZWM3NDg4MmEwM2U5MjY4ZmRjMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZ0ZXN0X3VzYWdlZXJy
b3IvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZnRlc3RfdXNhZ2VlcnJvci9jb25mdGVzdC5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNz
ZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjUzODFiNWVkMDcxNGQ3NWVjYmQ0ZDIyMGNmMzk3MWU4ODkwN2I5N2MKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nl
cy90ZXN0X2NvbXBhcmVfZGF0YWNsYXNzZXMucHkKQEAgLTAsMCArMSwxNSBAQAorIyAtKi0gY29k
aW5nOiB1dGYtOCAtKi0KK2Zyb20gZGF0YWNsYXNzZXMgaW1wb3J0IGRhdGFjbGFzcworZnJvbSBk
YXRhY2xhc3NlcyBpbXBvcnQgZmllbGQKKworCitkZWYgdGVzdF9kYXRhY2xhc3NlcygpOgorICAg
IEBkYXRhY2xhc3MKKyAgICBjbGFzcyBTaW1wbGVEYXRhT2JqZWN0KG9iamVjdCk6CisgICAgICAg
IGZpZWxkX2E6IGludCA9IGZpZWxkKCkKKyAgICAgICAgZmllbGRfYjogaW50ID0gZmllbGQoKQor
CisgICAgbGVmdCA9IFNpbXBsZURhdGFPYmplY3QoMSwgImIiKQorICAgIHJpZ2h0ID0gU2ltcGxl
RGF0YU9iamVjdCgxLCAiYyIpCisKKyAgICBhc3NlcnQgbGVmdCA9PSByaWdodApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9j
b21wYXJlX2RhdGFjbGFzc2VzX2ZpZWxkX2NvbXBhcmlzb25fb2ZmLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFz
c2VzX2ZpZWxkX2NvbXBhcmlzb25fb2ZmLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0MThkZDZiMGNmZTVlMWQ3
YTA2MDUwYzVmMmU5YTcwMmYxYjdkYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nlcy90ZXN0X2NvbXBhcmVfZGF0YWNsYXNz
ZXNfZmllbGRfY29tcGFyaXNvbl9vZmYucHkKQEAgLTAsMCArMSwxNSBAQAorIyAtKi0gY29kaW5n
OiB1dGYtOCAtKi0KK2Zyb20gZGF0YWNsYXNzZXMgaW1wb3J0IGRhdGFjbGFzcworZnJvbSBkYXRh
Y2xhc3NlcyBpbXBvcnQgZmllbGQKKworCitkZWYgdGVzdF9kYXRhY2xhc3Nlc193aXRoX2F0dHJp
YnV0ZV9jb21wYXJpc29uX29mZigpOgorICAgIEBkYXRhY2xhc3MKKyAgICBjbGFzcyBTaW1wbGVE
YXRhT2JqZWN0KG9iamVjdCk6CisgICAgICAgIGZpZWxkX2E6IGludCA9IGZpZWxkKCkKKyAgICAg
ICAgZmllbGRfYjogaW50ID0gZmllbGQoY29tcGFyZT1GYWxzZSkKKworICAgIGxlZnQgPSBTaW1w
bGVEYXRhT2JqZWN0KDEsICJiIikKKyAgICByaWdodCA9IFNpbXBsZURhdGFPYmplY3QoMSwgImMi
KQorCisgICAgYXNzZXJ0IGxlZnQgPT0gcmlnaHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2RhdGFjbGFzc2VzL3Rlc3RfY29tcGFyZV9kYXRhY2xhc3Nl
c192ZXJib3NlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNs
YXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzX3ZlcmJvc2UucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTcy
Y2E1MTE5ZTZkOWI0ZGYyOGY3YjE0MWRhNjdlYjQ0YTcwNDY5YgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2RhdGFjbGFzc2VzL3Rlc3RfY29t
cGFyZV9kYXRhY2xhc3Nlc192ZXJib3NlLnB5CkBAIC0wLDAgKzEsMTUgQEAKKyMgLSotIGNvZGlu
ZzogdXRmLTggLSotCitmcm9tIGRhdGFjbGFzc2VzIGltcG9ydCBkYXRhY2xhc3MKK2Zyb20gZGF0
YWNsYXNzZXMgaW1wb3J0IGZpZWxkCisKKworZGVmIHRlc3RfZGF0YWNsYXNzZXNfdmVyYm9zZSgp
OgorICAgIEBkYXRhY2xhc3MKKyAgICBjbGFzcyBTaW1wbGVEYXRhT2JqZWN0KG9iamVjdCk6Cisg
ICAgICAgIGZpZWxkX2E6IGludCA9IGZpZWxkKCkKKyAgICAgICAgZmllbGRfYjogaW50ID0gZmll
bGQoKQorCisgICAgbGVmdCA9IFNpbXBsZURhdGFPYmplY3QoMSwgImIiKQorICAgIHJpZ2h0ID0g
U2ltcGxlRGF0YU9iamVjdCgxLCAiYyIpCisKKyAgICBhc3NlcnQgbGVmdCA9PSByaWdodApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMv
dGVzdF9jb21wYXJlX3R3b19kaWZmZXJlbnRfZGF0YWNsYXNzZXMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nlcy90ZXN0X2NvbXBhcmVfdHdvX2RpZmZl
cmVudF9kYXRhY2xhc3Nlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzdiNzBkM2MyZGMxNDJhNTZhMDBkNGM4
YTBlMTliMmY1Yjk1OTgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX3R3b19kaWZmZXJlbnRfZGF0
YWNsYXNzZXMucHkKQEAgLTAsMCArMSwyMCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zy
b20gZGF0YWNsYXNzZXMgaW1wb3J0IGRhdGFjbGFzcworZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQg
ZmllbGQKKworCitkZWYgdGVzdF9jb21wYXJpbmdfdHdvX2RpZmZlcmVudF9kYXRhX2NsYXNzZXMo
KToKKyAgICBAZGF0YWNsYXNzCisgICAgY2xhc3MgU2ltcGxlRGF0YU9iamVjdE9uZShvYmplY3Qp
OgorICAgICAgICBmaWVsZF9hOiBpbnQgPSBmaWVsZCgpCisgICAgICAgIGZpZWxkX2I6IGludCA9
IGZpZWxkKCkKKworICAgIEBkYXRhY2xhc3MKKyAgICBjbGFzcyBTaW1wbGVEYXRhT2JqZWN0VHdv
KG9iamVjdCk6CisgICAgICAgIGZpZWxkX2E6IGludCA9IGZpZWxkKCkKKyAgICAgICAgZmllbGRf
YjogaW50ID0gZmllbGQoKQorCisgICAgbGVmdCA9IFNpbXBsZURhdGFPYmplY3RPbmUoMSwgImIi
KQorICAgIHJpZ2h0ID0gU2ltcGxlRGF0YU9iamVjdFR3bygxLCAiYyIpCisKKyAgICBhc3NlcnQg
bGVmdCAhPSByaWdodApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvZGF0YWNsYXNzZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nlcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjI5
NDA5YzIxODFmZDE3ODc3MmRhMjg2NjUxZmIxMzdjNjRiZjllCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdzNjLWltcG9y
dC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJl
X2RhdGFjbGFzc2VzX2ZpZWxkX2NvbXBhcmlzb25fb2ZmLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzX3Zl
cmJvc2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nl
cy90ZXN0X2NvbXBhcmVfdHdvX2RpZmZlcmVudF9kYXRhY2xhc3Nlcy5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGVwcmVjYXRlZC90ZXN0X2ZpeHR1
cmVfbmFtZWRfcmVxdWVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2RlcHJlY2F0ZWQvdGVzdF9maXh0dXJlX25hbWVkX3JlcXVlc3QucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZh
ZGRjMjk5NTQ4ZTAyNDAzYzJiODlkMmYxZjg1YzAwZTU3NGEwZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2RlcHJlY2F0ZWQvdGVzdF9maXh0
dXJlX25hbWVkX3JlcXVlc3QucHkKQEAgLTAsMCArMSwxMSBAQAorIyAtKi0gY29kaW5nOiB1dGYt
OCAtKi0KK2ltcG9ydCBweXRlc3QKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiByZXF1ZXN0KCk6
CisgICAgcGFzcworCisKK2RlZiB0ZXN0KCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGVwcmVjYXRlZC93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2RlcHJlY2F0ZWQvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmQxYTAzYjZmNTgzYTdiMTZmOGZlZDc3YzY1NTQ3Y2Y1MjJkNDdj
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2RlcHJlY2F0ZWQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGVwcmVjYXRlZC90ZXN0X2ZpeHR1cmVf
bmFtZWRfcmVxdWVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRlbS9jb25mdGVzdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mYTQxZDBmYmE2ODc4ZTA0NmZkYmRlMzFmNTcyYTUwMGEzNmI5NWNhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVy
ZXMvY3VzdG9tX2l0ZW0vY29uZnRlc3QucHkKQEAgLTAsMCArMSwxMSBAQAorIyAtKi0gY29kaW5n
OiB1dGYtOCAtKi0KK2ltcG9ydCBweXRlc3QKKworCitjbGFzcyBDdXN0b21JdGVtKHB5dGVzdC5J
dGVtLCBweXRlc3QuRmlsZSk6CisgICAgZGVmIHJ1bnRlc3Qoc2VsZik6CisgICAgICAgIHBhc3MK
KworCitkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgorICAgIHJldHVybiBD
dXN0b21JdGVtKHBhdGgsIHBhcmVudCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL2Zvby9fX2luaXRfXy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL2Zv
by9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2
ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL19faW5pdF9fLnB5CkBAIC0wLDAgKzEg
QEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGly
ZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9p
dGVtL2Zvby90ZXN0X2Zvby5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2ZpeHR1cmVzL2N1c3RvbV9pdGVtL2Zvby90ZXN0X2Zvby5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGM1ZjYw
NTIwMjVhNDRiZWJkMmRkMDVlM2JlNTM5OTg5ZGI5Njg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9v
L3Rlc3RfZm9vLnB5CkBAIC0wLDAgKzEsMyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Rl
ZiB0ZXN0KCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9v
L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NGM1ZTQ1OGNkMTg3NDI2M2VlOTIzOWQyMWU1
YThiODQ3NjRmZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRlbS9mb28vdzNjLWltcG9ydC5sb2cKQEAgLTAs
MCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
Zml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL3Rlc3RfZm9vLnB5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9j
dXN0b21faXRlbS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3
MTg3Yzg3NjE1NzY0MTgzNjNhZGZiY2I4ZDdlNDU2MWIyYmI3ZDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRl
bS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRlbS9jb25mdGVzdC5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
ZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1
YmRpci9zdWIxL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZh
aWxhYmxlX2luX3N1YmRpci9zdWIxL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVh
NTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3Rf
Y29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjEvX19pbml0X18u
cHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBz
ZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4
dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxl
X2luX3N1YmRpci9zdWIxL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29u
bHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MmU3
ZDYwYTY5N2YzZWMyNDhjYmRkNzVhMzNmYzFkZDRlN2RmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjEvY29u
ZnRlc3QucHkKQEAgLTAsMCArMSw4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0
IHB5dGVzdAorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGFyZzEocmVxdWVzdCk6CisgICAgd2l0
aCBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbik6CisgICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVyZXZh
bHVlKCJhcmcyIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2
YWlsYWJsZV9pbl9zdWJkaXIvc3ViMS90ZXN0X2luX3N1YjEucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3Rf
ZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjEvdGVzdF9pbl9zdWIxLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmI4MjRmNGU5OWVmODAxZDQwMmE5MmE2MGFkYjA2YWZmZWI0MjdmODEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJl
cy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5f
c3ViZGlyL3N1YjEvdGVzdF9pbl9zdWIxLnB5CkBAIC0wLDAgKzEsMyBAQAorIyAtKi0gY29kaW5n
OiB1dGYtOCAtKi0KK2RlZiB0ZXN0XzEoYXJnMSk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90
ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
ZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1
YmRpci9zdWIxL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyYzE4OGJiODhiNjNiMTFlODJj
NThkMTkxMjI5NmZiN2I5ZjAwNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3Rf
ZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjEvdzNjLWltcG9ydC5sb2cKQEAg
LTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitU
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZh
aWxhYmxlX2luX3N1YmRpci9zdWIxL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNh
cmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL2NvbmZ0ZXN0LnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2Nv
bmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL3Rlc3RfaW5fc3Vi
MS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4
dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxl
X2luX3N1YmRpci9zdWIyL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29u
bHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ODM0
YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjIvX19p
bml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhv
biB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZh
aWxhYmxlX2luX3N1YmRpci9zdWIyL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNh
cmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJiZTkwYjRkZmU3MDdmMGQ4YjYxMDdiZmIyN2E1M2U1MzEzNGE2NzgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2Zp
eHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1
YjIvY29uZnRlc3QucHkKQEAgLTAsMCArMSw3IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQor
aW1wb3J0IHB5dGVzdAorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGFyZzIocmVxdWVzdCk6Cisg
ICAgcHl0ZXN0LnJhaXNlcyhFeGNlcHRpb24sIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlLCAiYXJn
MSIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0
dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVf
aW5fc3ViZGlyL3N1YjIvdGVzdF9pbl9zdWIyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdz
X29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL3Rlc3RfaW5fc3ViMi5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMTQzMjA0MmJmZDJhYzg2ZjE4ZjE4ZmQyNzA1ZDQzMjkwM2I4MTk5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9m
aXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9z
dWIyL3Rlc3RfaW5fc3ViMi5weQpAQCAtMCwwICsxLDMgQEAKKyMgLSotIGNvZGluZzogdXRmLTgg
LSotCitkZWYgdGVzdF8yKGFyZzIpOgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25m
dGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMi93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4
dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3Vi
Mi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTVmZDAyMmY0Njk3Y2IxZDVjMGUxOTk0NjBl
OWM4OGUwZWM2YWU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdz
X29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1
cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9p
bl9zdWJkaXIvc3ViMi9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5
X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMi9jb25mdGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9m
dW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMi90ZXN0X2luX3N1YjIucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2Zp
bGxfZml4dHVyZXMvdGVzdF9kZXRlY3RfcmVjdXJzaXZlX2RlcGVuZGVuY3lfZXJyb3IucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfZGV0ZWN0X3JlY3Vyc2l2ZV9kZXBlbmRlbmN5X2Vycm9yLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQx
ZTU0ZWVhN2U0NjQ1YjBlZTA0YmEwZmJjYzVhY2NlYWMwZmMzMGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1
cmVzL3Rlc3RfZGV0ZWN0X3JlY3Vyc2l2ZV9kZXBlbmRlbmN5X2Vycm9yLnB5CkBAIC0wLDAgKzEs
MTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgcHl0ZXN0CisKKworQHB5dGVz
dC5maXh0dXJlCitkZWYgZml4MShmaXgyKToKKyAgICByZXR1cm4gMQorCisKK0BweXRlc3QuZml4
dHVyZQorZGVmIGZpeDIoZml4MSk6CisgICAgcmV0dXJuIDEKKworCitkZWYgdGVzdChmaXgxKToK
KyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29u
ZnRlc3QvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9m
aXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRl
c3QvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc3NTZlNjQ5MWY4ZGJiODE5ODBmMzI5ZmJkZmNm
MGM0NjQ1NTY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25m
dGVzdF9jb25mdGVzdC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDcgQEAKKyMgLSotIGNvZGluZzog
dXRmLTggLSotCitpbXBvcnQgcHl0ZXN0CisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgc3BhbSgp
OgorICAgIHJldHVybiAic3BhbSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9j
b25mdGVzdF9jb25mdGVzdC9wa2cvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVf
Y29uZnRlc3RfY29uZnRlc3QvcGtnL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVh
NTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3Rf
ZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL19faW5pdF9fLnB5CkBAIC0wLDAg
KzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMg
ZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxf
Zml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC9wa2cvY29uZnRl
c3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxs
X2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL2NvbmZ0
ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFjZDg4NTI0YjZmMDgxZjc0OTFhYWIwMjE2YTQ3MGExMWNkMjUy
ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29u
ZnRlc3QvcGtnL2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsNyBAQAorIyAtKi0gY29kaW5nOiB1dGYt
OCAtKi0KK2ltcG9ydCBweXRlc3QKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBzcGFtKHNwYW0p
OgorICAgIHJldHVybiBzcGFtICogMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJl
X2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy90ZXN0X3NwYW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1
cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL3Rlc3Rfc3BhbS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTY5MGM0
OWYyMzE1M2ZkZDNjNjMxZTZjOWEwODgyNWZlMjIyYzhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90
ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy90ZXN0X3NwYW0ucHkKQEAg
LTAsMCArMSwzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZGVmIHRlc3Rfc3BhbShzcGFt
KToKKyAgICBhc3NlcnQgc3BhbSA9PSAic3BhbXNwYW0iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0
ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0
X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy93M2MtaW1wb3J0LmxvZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jM2FjODIyMjZlMTY2OTRiMTk5MWJhODRmOTU4ZWQ4ZGYwYTc3ODQ4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
ZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2Zp
eHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9m
aXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy9jb25mdGVzdC5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRf
Zml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC9wa2cvdGVzdF9zcGFtLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvdzNjLWltcG9ydC5sb2cKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmJmYjM4OTgxOTVmODNhZmZiYjU2ODFkZDgwZWI5M2E3NjAwNzc3YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVz
L2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1
cmVfY29uZnRlc3RfY29uZnRlc3QvY29uZnRlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRl
bmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2Zp
eHR1cmVfY29uZnRlc3RfbW9kdWxlL2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NzU2ZTY0OTFm
OGRiYjgxOTgwZjMyOWZiZGZjZjBjNDY0NTU2NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3Rf
ZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfbW9kdWxlL2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsNyBA
QAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCBweXRlc3QKKworCitAcHl0ZXN0LmZp
eHR1cmUKK2RlZiBzcGFtKCk6CisgICAgcmV0dXJuICJzcGFtIgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0
X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVsZS90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0
ZXN0X21vZHVsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1
cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvdGVz
dF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWIzNDRjMTIy
ZjFhYjNjMDBhNjVhMWUyMTllODAzMTI3MDk5NjMyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVz
dF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvdGVzdF9leHRlbmRfZml4dHVyZV9jb25m
dGVzdF9tb2R1bGUucHkKQEAgLTAsMCArMSwxMSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0K
K2ltcG9ydCBweXRlc3QKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBzcGFtKHNwYW0pOgorICAg
IHJldHVybiBzcGFtICogMgorCisKK2RlZiB0ZXN0X3NwYW0oc3BhbSk6CisgICAgYXNzZXJ0IHNw
YW0gPT0gInNwYW1zcGFtIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0
ZXN0X21vZHVsZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVz
dF9tb2R1bGUvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UwYTc1MmM5ZTQ1ZjIyMGUzOWM4
YTZlYzYyYjI5MTcyODQ2OWY1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4
dHVyZV9jb25mdGVzdF9tb2R1bGUvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9m
aXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVsZS9jb25mdGVzdC5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVy
ZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvdGVzdF9leHRlbmRfZml4dHVy
ZV9jb25mdGVzdF9tb2R1bGUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9t
b2R1bGVfY2xhc3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0
dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfbW9kdWxlX2NsYXNzLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQzMzJjNjYwMTdiMzc1ZDhjZmM5YzdiYjc0MmUyNDlhM2Q3MDQzYTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJl
cy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfbW9kdWxlX2NsYXNzLnB5CkBAIC0w
LDAgKzEsMTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgcHl0ZXN0CisKKwor
QHB5dGVzdC5maXh0dXJlCitkZWYgc3BhbSgpOgorICAgIHJldHVybiAic3BhbSIKKworCitjbGFz
cyBUZXN0U3BhbShvYmplY3QpOgorICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBzcGFtKHNl
bGYsIHNwYW0pOgorICAgICAgICByZXR1cm4gc3BhbSAqIDIKKworICAgIGRlZiB0ZXN0X3NwYW0o
c2VsZiwgc3BhbSk6CisgICAgICAgIGFzc2VydCBzcGFtID09ICJzcGFtc3BhbSIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4
dHVyZXMvdGVzdF9mdW5jYXJnX2Jhc2ljLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2Z1bmNhcmdfYmFzaWMucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmEzMDJjNDllNmNhM2QxNDI2ZDdjYzNmOWZiMjc5ZTllZDEyZDViMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVz
L2ZpbGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2Jhc2ljLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMg
LSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgcHl0ZXN0CisKKworQHB5dGVzdC5maXh0dXJl
CitkZWYgc29tZShyZXF1ZXN0KToKKyAgICByZXR1cm4gcmVxdWVzdC5mdW5jdGlvbi5fX25hbWVf
XworCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG90aGVyKHJlcXVlc3QpOgorICAgIHJldHVybiA0
MgorCisKK2RlZiB0ZXN0X2Z1bmMoc29tZSwgb3RoZXIpOgorICAgIHBhc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVy
ZXMvdGVzdF9mdW5jYXJnX2xvb2t1cF9jbGFzc2xldmVsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2Z1bmNhcmdfbG9v
a3VwX2NsYXNzbGV2ZWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTAwNGQ1ZDEzNTJjYTAwZjgzOTc4MWNmMjVl
NTJjNGY2NjFmM2U1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2xvb2t1cF9j
bGFzc2xldmVsLnB5CkBAIC0wLDAgKzEsMTEgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitp
bXBvcnQgcHl0ZXN0CisKKworY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgZGVmIHNvbWV0aGluZyhzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgcmV0dXJu
IHJlcXVlc3QuaW5zdGFuY2UKKworICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmLCBzb21ldGhpbmcp
OgorICAgICAgICBhc3NlcnQgc29tZXRoaW5nIGlzIHNlbGYKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9m
dW5jYXJnX2xvb2t1cF9tb2R1bGVsZXZlbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2xvb2t1cF9tb2R1
bGVsZXZlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWQyODNlOWY2NjVkZTk0YjA0N2E2NmUwNDdkODU4ZDBl
YzY0MWRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2Z1bmNhcmdfbG9va3VwX21vZHVsZWxl
dmVsLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQg
cHl0ZXN0CisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgc29tZXRoaW5nKHJlcXVlc3QpOgorICAg
IHJldHVybiByZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fCisKKworY2xhc3MgVGVzdENsYXNzKG9i
amVjdCk6CisgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYsIHNvbWV0aGluZyk6CisgICAgICAgIGFz
c2VydCBzb21ldGhpbmcgPT0gInRlc3RfbWV0aG9kIgorCisKK2RlZiB0ZXN0X2Z1bmMoc29tZXRo
aW5nKToKKyAgICBhc3NlcnQgc29tZXRoaW5nID09ICJ0ZXN0X2Z1bmMiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfZnVuY2FyZ19sb29rdXBmYWlscy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2xvb2t1cGZhaWxz
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE4ZjQyNmFmOWM5MzFkOTNkY2FiZmE4ZmQyYmViYWE0MGU3MDljNzEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9m
aXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZnVuY2FyZ19sb29rdXBmYWlscy5weQpAQCAtMCww
ICsxLDExIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIHh5enNvbWV0aGluZyhyZXF1ZXN0KToKKyAgICByZXR1cm4gNDIK
KworCitkZWYgdGVzdF9mdW5jKHNvbWUpOgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9m
aWxsX2ZpeHR1cmVzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5MjIzNjE4ZDY1YjI3YjUx
YWViMWRkMmIwYzhmNGMzOTFiMDhjNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3czYy1pbXBvcnQu
bG9nCkBAIC0wLDAgKzEsMjIgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9kZXRlY3RfcmVjdXJzaXZlX2Rl
cGVuZGVuY3lfZXJyb3IucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9m
aXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfbW9kdWxlX2NsYXNzLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0
dXJlcy90ZXN0X2Z1bmNhcmdfYmFzaWMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZnVuY2FyZ19sb29rdXBfY2xhc3Ns
ZXZlbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2Zp
bGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2xvb2t1cF9tb2R1bGVsZXZlbC5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9m
dW5jYXJnX2xvb2t1cGZhaWxzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9maXh0dXJlcy90ZXN0X2dldGZpeHR1cmV2YWx1ZV9keW5hbWljLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvdGVzdF9nZXRmaXh0
dXJldmFsdWVfZHluYW1pYy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTllNTc0MjFkOGZiNmYxZTc0NTg4N2E3
N2FlYjgxZjMyNDYxNjFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvdGVzdF9nZXRmaXh0dXJldmFsdWVfZHluYW1pYy5weQpA
QCAtMCwwICsxLDIxIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHB5dGVzdAor
CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGR5bmFtaWMoKToKKyAgICBwYXNzCisKKworQHB5dGVz
dC5maXh0dXJlCitkZWYgYShyZXF1ZXN0KToKKyAgICByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgi
ZHluYW1pYyIpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgYihhKToKKyAgICBwYXNzCisKKwor
ZGVmIHRlc3QoYiwgcmVxdWVzdCk6CisgICAgYXNzZXJ0IHJlcXVlc3QuZml4dHVyZW5hbWVzID09
IFsiYiIsICJyZXF1ZXN0IiwgImEiLCAiZHluYW1pYyJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIxMzEyYTc4YTc0YTQxYmRkN2E3MTAyZWUwMzBhYjdlYTc4ZTlkNzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJl
cy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy90ZXN0X2dldGZpeHR1cmV2YWx1ZV9keW5h
bWljLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9p
c3N1ZTg4X2luaXRpYWxfZmlsZV9tdWx0aW5vZGVzL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy9j
b25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjNlN2I0ZTUyYTliYTJjZTViMTZlYjQ0MGM4ZjZkMmFk
OTViYTEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy9jb25mdGVzdC5weQpAQCAtMCww
ICsxLDE1IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK2Ns
YXNzIE15RmlsZShweXRlc3QuRmlsZSk6CisgICAgZGVmIGNvbGxlY3Qoc2VsZik6CisgICAgICAg
IHJldHVybiBbTXlJdGVtKCJoZWxsbyIsIHBhcmVudD1zZWxmKV0KKworCitkZWYgcHl0ZXN0X2Nv
bGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgorICAgIHJldHVybiBNeUZpbGUocGF0aCwgcGFyZW50
KQorCisKK2NsYXNzIE15SXRlbShweXRlc3QuSXRlbSk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVf
bXVsdGlub2Rlcy90ZXN0X2hlbGxvLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy90ZXN0X2hlbGxvLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY1M2Q1NzBhODhjNTViNWY4YzcwNzM0MWViOGRlOTNmNzQwYTEyODEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1ZTg4X2lu
aXRpYWxfZmlsZV9tdWx0aW5vZGVzL3Rlc3RfaGVsbG8ucHkKQEAgLTAsMCArMSwzIEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQorZGVmIHRlc3RfaGVsbG8oKToKKyAgICBwYXNzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1ZTg4X2luaXRpYWxf
ZmlsZV9tdWx0aW5vZGVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMTVkMGJkNjJiZTBjM2QxYjZmMDgwMjAxMzYzMDFiNTgxZjgwODhjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNz
dWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1ZTg4
X2luaXRpYWxfZmlsZV9tdWx0aW5vZGVzL2NvbmZ0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy90ZXN0X2hl
bGxvLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9p
c3N1ZV81MTkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1ZV81
MTkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjRkODY0YTUzODA5YTdmZmY2NmI5NzViYWViMGIxODAzOGZkZjhj
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2lzc3VlXzUxOS5weQpAQCAtMCwwICsxLDUyIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQor
aW1wb3J0IHBwcmludAorCitpbXBvcnQgcHl0ZXN0CisKKworZGVmIHB5dGVzdF9nZW5lcmF0ZV90
ZXN0cyhtZXRhZnVuYyk6CisgICAgaWYgImFyZzEiIGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lczoK
KyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoImFyZzEiLCBbImFyZzF2MSIsICJhcmcxdjIi
XSwgc2NvcGU9Im1vZHVsZSIpCisKKyAgICBpZiAiYXJnMiIgaW4gbWV0YWZ1bmMuZml4dHVyZW5h
bWVzOgorICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgiYXJnMiIsIFsiYXJnMnYxIiwgImFy
ZzJ2MiJdLCBzY29wZT0iZnVuY3Rpb24iKQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0ic2Vz
c2lvbiIpCitkZWYgY2hlY2tlZF9vcmRlcigpOgorICAgIG9yZGVyID0gW10KKworICAgIHlpZWxk
IG9yZGVyCisgICAgcHByaW50LnBwcmludChvcmRlcikKKyAgICBhc3NlcnQgb3JkZXIgPT0gWwor
ICAgICAgICAoInRlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2lzc3VlXzUxOS5weSIsICJmaXgxIiwg
ImFyZzF2MSIpLAorICAgICAgICAoInRlc3Rfb25lW2FyZzF2MS1hcmcydjFdIiwgImZpeDIiLCAi
YXJnMnYxIiksCisgICAgICAgICgidGVzdF90d29bYXJnMXYxLWFyZzJ2MV0iLCAiZml4MiIsICJh
cmcydjEiKSwKKyAgICAgICAgKCJ0ZXN0X29uZVthcmcxdjEtYXJnMnYyXSIsICJmaXgyIiwgImFy
ZzJ2MiIpLAorICAgICAgICAoInRlc3RfdHdvW2FyZzF2MS1hcmcydjJdIiwgImZpeDIiLCAiYXJn
MnYyIiksCisgICAgICAgICgidGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWVfNTE5LnB5Iiwg
ImZpeDEiLCAiYXJnMXYyIiksCisgICAgICAgICgidGVzdF9vbmVbYXJnMXYyLWFyZzJ2MV0iLCAi
Zml4MiIsICJhcmcydjEiKSwKKyAgICAgICAgKCJ0ZXN0X3R3b1thcmcxdjItYXJnMnYxXSIsICJm
aXgyIiwgImFyZzJ2MSIpLAorICAgICAgICAoInRlc3Rfb25lW2FyZzF2Mi1hcmcydjJdIiwgImZp
eDIiLCAiYXJnMnYyIiksCisgICAgICAgICgidGVzdF90d29bYXJnMXYyLWFyZzJ2Ml0iLCAiZml4
MiIsICJhcmcydjIiKSwKKyAgICBdCisKKworQHB5dGVzdC55aWVsZF9maXh0dXJlKHNjb3BlPSJt
b2R1bGUiKQorZGVmIGZpeDEocmVxdWVzdCwgYXJnMSwgY2hlY2tlZF9vcmRlcik6CisgICAgY2hl
Y2tlZF9vcmRlci5hcHBlbmQoKHJlcXVlc3Qubm9kZS5uYW1lLCAiZml4MSIsIGFyZzEpKQorICAg
IHlpZWxkICJmaXgxLSIgKyBhcmcxCisKKworQHB5dGVzdC55aWVsZF9maXh0dXJlKHNjb3BlPSJm
dW5jdGlvbiIpCitkZWYgZml4MihyZXF1ZXN0LCBmaXgxLCBhcmcyLCBjaGVja2VkX29yZGVyKToK
KyAgICBjaGVja2VkX29yZGVyLmFwcGVuZCgocmVxdWVzdC5ub2RlLm5hbWUsICJmaXgyIiwgYXJn
MikpCisgICAgeWllbGQgImZpeDItIiArIGFyZzIgKyBmaXgxCisKKworZGVmIHRlc3Rfb25lKGZp
eDIpOgorICAgIHBhc3MKKworCitkZWYgdGVzdF90d28oZml4Mik6CisgICAgcGFzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvbWFya3MvbWFya3NfY29u
c2lkZXJlZF9rZXl3b3Jkcy9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL21hcmtzL21hcmtzX2NvbnNpZGVyZWRfa2V5d29yZHMvY29uZnRlc3QucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvbWFya3MvbWFya3NfY29u
c2lkZXJlZF9rZXl3b3Jkcy90ZXN0X21hcmtzX2FzX2tleXdvcmRzLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvbWFya3MvbWFya3NfY29uc2lkZXJlZF9rZXl3b3Jkcy90
ZXN0X21hcmtzX2FzX2tleXdvcmRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxZDk2OWEzNmI4YTRiZWZlYWY5
YzQ5ZDA1ODg1ZjRiNzgyZGUyMmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9tYXJrcy9tYXJrc19jb25zaWRlcmVkX2tleXdvcmRzL3Rlc3Rf
bWFya3NfYXNfa2V5d29yZHMucHkKQEAgLTAsMCArMSw3IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK0BweXRlc3QubWFyay5mb28KK2RlZiB0ZXN0X21hcmso
KToKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2Ny
aXB0cy9tYXJrcy9tYXJrc19jb25zaWRlcmVkX2tleXdvcmRzL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvbWFya3MvbWFya3NfY29uc2lkZXJlZF9r
ZXl3b3Jkcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDgxYjIwMDRmYTM4MzZlODE1OGNh
N2M4MjYyYmVlMzBkYjBkY2I2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvbWFya3MvbWFya3NfY29uc2lkZXJlZF9rZXl3b3Jkcy93M2MtaW1w
b3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
KworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9tYXJrcy9tYXJrc19jb25zaWRlcmVkX2tleXdvcmRzL2NvbmZ0ZXN0LnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvbWFya3MvbWFya3NfY29uc2lk
ZXJlZF9rZXl3b3Jkcy90ZXN0X21hcmtzX2FzX2tleXdvcmRzLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9wZXJmX2V4YW1wbGVzL2NvbGxlY3Rfc3Rh
dHMvZ2VuZXJhdGVfZm9sZGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL3BlcmZfZXhhbXBsZXMvY29sbGVjdF9zdGF0cy9nZW5lcmF0ZV9mb2xkZXJzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjMyY2E4MThlYWQ5YTE5NWM5MDQzODkyOWM3ZjZmMjEyYTYxNTI5NzUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9wZXJmX2V4YW1w
bGVzL2NvbGxlY3Rfc3RhdHMvZ2VuZXJhdGVfZm9sZGVycy5weQpAQCAtMCwwICsxLDI4IEBACisj
IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgcGF0aGxpYgor
CitIRVJFID0gcGF0aGxpYi5QYXRoKF9fZmlsZV9fKS5wYXJlbnQKK1RFU1RfQ09OVEVOVCA9IChI
RVJFIC8gInRlbXBsYXRlX3Rlc3QucHkiKS5yZWFkX2J5dGVzKCkKKworcGFyc2VyID0gYXJncGFy
c2UuQXJndW1lbnRQYXJzZXIoKQorcGFyc2VyLmFkZF9hcmd1bWVudCgibnVtYmVycyIsIG5hcmdz
PSIqIiwgdHlwZT1pbnQpCisKKworZGVmIGdlbmVyYXRlX2ZvbGRlcnMocm9vdCwgZWxlbWVudHMs
ICptb3JlX251bWJlcnMpOgorICAgIGZpbGxfbGVuID0gbGVuKHN0cihlbGVtZW50cykpCisgICAg
aWYgbW9yZV9udW1iZXJzOgorICAgICAgICBmb3IgaSBpbiByYW5nZShlbGVtZW50cyk6CisgICAg
ICAgICAgICBuZXdfZm9sZGVyID0gcm9vdC5qb2lucGF0aChmImZvb197aTowPntmaWxsX2xlbn19
IikKKyAgICAgICAgICAgIG5ld19mb2xkZXIubWtkaXIoKQorICAgICAgICAgICAgbmV3X2ZvbGRl
ci5qb2lucGF0aCgiX19pbml0X18ucHkiKS53cml0ZV9ieXRlcyhURVNUX0NPTlRFTlQpCisgICAg
ICAgICAgICBnZW5lcmF0ZV9mb2xkZXJzKG5ld19mb2xkZXIsICptb3JlX251bWJlcnMpCisgICAg
ZWxzZToKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoZWxlbWVudHMpOgorICAgICAgICAgICAgbmV3
X3Rlc3QgPSByb290LmpvaW5wYXRoKGYidGVzdF97aTowPHtmaWxsX2xlbn19LnB5IikKKyAgICAg
ICAgICAgIG5ld190ZXN0LndyaXRlX2J5dGVzKFRFU1RfQ09OVEVOVCkKKworCitpZiBfX25hbWVf
XyA9PSAiX19tYWluX18iOgorICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisgICAgZ2Vu
ZXJhdGVfZm9sZGVycyhIRVJFLCAqKGFyZ3MubnVtYmVycyBvciAoMTAsIDEwMCkpKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvcGVyZl9leGFtcGxlcy9j
b2xsZWN0X3N0YXRzL3RlbXBsYXRlX3Rlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9wZXJmX2V4YW1wbGVzL2NvbGxlY3Rfc3RhdHMvdGVtcGxhdGVfdGVzdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41ZDBjZDVhNzE2NGUzNzg0NDcwNjU0YmE0ZTJlMzk5ZjczYTRjMjFlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvcGVyZl9l
eGFtcGxlcy9jb2xsZWN0X3N0YXRzL3RlbXBsYXRlX3Rlc3QucHkKQEAgLTAsMCArMSwzIEBACisj
IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZGVmIHRlc3RfeCgpOgorICAgIHBhc3MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3BlcmZfZXhhbXBsZXMvY29s
bGVjdF9zdGF0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL3BlcmZfZXhhbXBsZXMvY29sbGVjdF9zdGF0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZWM1NTE4MzBmMjU3OTQ3NzgzYjA2YmVjNWJjYmVlMjFhZDExZTRjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvcGVyZl9leGFtcGxl
cy9jb2xsZWN0X3N0YXRzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3BlcmZfZXhhbXBsZXMvY29sbGVj
dF9zdGF0cy9nZW5lcmF0ZV9mb2xkZXJzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvcGVyZl9leGFtcGxlcy9jb2xsZWN0X3N0YXRzL3RlbXBsYXRlX3Rlc3QucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3RtcGRpci90bXBk
aXJfZml4dHVyZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3RtcGRp
ci90bXBkaXJfZml4dHVyZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2YwMzE1ZDUyZjg0MjE4Yjg4NTEyM2M1
OTFmOWQxNjQ3OGUxNDEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvdG1wZGlyL3RtcGRpcl9maXh0dXJlLnB5CkBAIC0wLDAgKzEsOCBAQAor
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCBweXRlc3QKKworCitAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoImEiLCBbciJxd2UvXGFiYyJdKQorZGVmIHRlc3RfZml4dHVyZSh0bXBkaXIs
IGEpOgorICAgIHRtcGRpci5jaGVjayhkaXI9MSkKKyAgICBhc3NlcnQgdG1wZGlyLmxpc3RkaXIo
KSA9PSBbXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
dG1wZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvdG1wZGlyL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5MTY0MzkwNjAxMmIwM2FmNjBl
YjVjN2RmOWVlZTA0YWNjM2U0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy90bXBkaXIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitE
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qg
b2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdG1wZGlyL3Rt
cGRpcl9maXh0dXJlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy91bml0dGVzdC90ZXN0X3BhcmFtZXRyaXplZF9maXh0dXJlX2Vycm9yX21lc3NhZ2Uu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy91bml0dGVzdC90ZXN0X3Bh
cmFtZXRyaXplZF9maXh0dXJlX2Vycm9yX21lc3NhZ2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VmOTUwZWU3
ODI2YzZlMGZmN2U5ZDkxNDljMWNjMmZjMTNlNjdiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3RfcGFyYW1ldHJpemVk
X2ZpeHR1cmVfZXJyb3JfbWVzc2FnZS5weQpAQCAtMCwwICsxLDE1IEBACisjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQoraW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBweXRlc3QKKworCitAcHl0ZXN0
LmZpeHR1cmUocGFyYW1zPVsxLCAyXSkKK2RlZiB0d28ocmVxdWVzdCk6CisgICAgcmV0dXJuIHJl
cXVlc3QucGFyYW0KKworCitAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoInR3byIpCitjbGFzcyBU
ZXN0U29tZXRoaW5nRWxzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfdHdvKHNl
bGYpOgorICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy91bml0dGVzdC90ZXN0X3NldHVwX3NraXAucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy91bml0dGVzdC90ZXN0X3NldHVwX3NraXAucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjZiNjE5NWU5NmRkOTc4Mzc5MDk1MmFjODg2YzQzYzZhNzcwZDkyNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3Rf
c2V0dXBfc2tpcC5weQpAQCAtMCwwICsxLDE0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQor
IiIiU2tpcHBpbmcgYW4gZW50aXJlIHN1YmNsYXNzIHdpdGggdW5pdHRlc3Quc2tpcCgpIHNob3Vs
ZCAqbm90KiBjYWxsIHNldFVwIGZyb20gYSBiYXNlIGNsYXNzLiIiIgoraW1wb3J0IHVuaXR0ZXN0
CisKKworY2xhc3MgQmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYp
OgorICAgICAgICBhc3NlcnQgMAorCisKK0B1bml0dGVzdC5za2lwKCJza2lwIGFsbCB0ZXN0cyIp
CitjbGFzcyBUZXN0KEJhc2UpOgorICAgIGRlZiB0ZXN0X2ZvbyhzZWxmKToKKyAgICAgICAgYXNz
ZXJ0IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3Vu
aXR0ZXN0L3Rlc3Rfc2V0dXBfc2tpcF9jbGFzcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3Rfc2V0dXBfc2tpcF9jbGFzcy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYzRhMzc3NTcyM2I0ZmRhZDFlZjBiNDAxNTRjYTZmMmEzNDM2MmNiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdGVzdF9z
ZXR1cF9za2lwX2NsYXNzLnB5CkBAIC0wLDAgKzEsMTUgQEAKKyMgLSotIGNvZGluZzogdXRmLTgg
LSotCisiIiJTa2lwcGluZyBhbiBlbnRpcmUgc3ViY2xhc3Mgd2l0aCB1bml0dGVzdC5za2lwKCkg
c2hvdWxkICpub3QqIGNhbGwgc2V0VXBDbGFzcyBmcm9tIGEgYmFzZSBjbGFzcy4iIiIKK2ltcG9y
dCB1bml0dGVzdAorCisKK2NsYXNzIEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIEBjbGFz
c21ldGhvZAorICAgIGRlZiBzZXRVcENsYXNzKGNscyk6CisgICAgICAgIGFzc2VydCAwCisKKwor
QHVuaXR0ZXN0LnNraXAoInNraXAgYWxsIHRlc3RzIikKK2NsYXNzIFRlc3QoQmFzZSk6CisgICAg
ZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgICAgICBhc3NlcnQgMApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdGVzdF9zZXR1cF9za2lwX21v
ZHVsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rl
c3Rfc2V0dXBfc2tpcF9tb2R1bGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWJmNzgyYTYyMTc3YzRiYTVhNGEy
ZDRjMmM1ZjI2YmU5NzEzMTRmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3Rfc2V0dXBfc2tpcF9tb2R1bGUucHkKQEAg
LTAsMCArMSwxMyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyIiInNldFVwTW9kdWxlIGlz
IGFsd2F5cyBjYWxsZWQsIGV2ZW4gaWYgYWxsIHRlc3RzIGluIHRoZSBtb2R1bGUgYXJlIHNraXBw
ZWQiIiIKK2ltcG9ydCB1bml0dGVzdAorCisKK2RlZiBzZXRVcE1vZHVsZSgpOgorICAgIGFzc2Vy
dCAwCisKKworQHVuaXR0ZXN0LnNraXAoInNraXAgYWxsIHRlc3RzIikKK2NsYXNzIEJhc2UodW5p
dHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0KHNlbGYpOgorICAgICAgICBhc3NlcnQgMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3Qv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy91bml0
dGVzdC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYmU4Njg0ZWI4Y2EzN2FmZDk0MjE3ZmRi
NmQwMjMzZGZjZmE4YWU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAor
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
K0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2Yg
ZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdGVz
dF9wYXJhbWV0cml6ZWRfZml4dHVyZV9lcnJvcl9tZXNzYWdlLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdGVzdF9zZXR1cF9za2lwLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdGVzdF9zZXR1cF9za2lwX2Ns
YXNzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdGVz
dF9zZXR1cF9za2lwX21vZHVsZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2Y0MDU4MzE5ZmU1MjYzNTc0
YmRiMzNmNmE2OWQ5ZjQzYzM4Y2M5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvUkVBRE1FLnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2lzc3VlXzUxOS5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvd2FybmluZ3MvdGVzdF9ncm91
cF93YXJuaW5nc19ieV9tZXNzYWdlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvd2FybmluZ3MvdGVzdF9ncm91cF93YXJuaW5nc19ieV9tZXNzYWdlLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI5ZDg5NTk3NDUyYzAzMzU4M2QwMzY3OWExZjgxODA1YjU5Y2YzMDUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy93YXJuaW5ncy90ZXN0
X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2UucHkKQEAgLTAsMCArMSwxNyBAQAorIyAtKi0gY29k
aW5nOiB1dGYtOCAtKi0KK2ltcG9ydCB3YXJuaW5ncworCitpbXBvcnQgcHl0ZXN0CisKKworZGVm
IGZ1bmMoKToKKyAgICB3YXJuaW5ncy53YXJuKFVzZXJXYXJuaW5nKCJmb28iKSkKKworCitAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImkiLCByYW5nZSg1KSkKK2RlZiB0ZXN0X2ZvbyhpKToKKyAg
ICBmdW5jKCkKKworCitkZWYgdGVzdF9iYXIoKToKKyAgICBmdW5jKCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3dhcm5pbmdzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvd2FybmluZ3MvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzk2ODBjN2I2ZWIwOWEwM2IwMjlkMjk1NzZmZTc2MjZkNjU4Y2I5
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L3dhcm5pbmdzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3dhcm5pbmdzL3Rlc3RfZ3JvdXBfd2Fybmlu
Z3NfYnlfbWVzc2FnZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
cy90ZXN0X2lzc3VlNTE5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlcy90ZXN0X2lz
c3VlNTE5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkYTFmNGVlNjY0NzY2MGRhNDc0MmZiMWVkNDNjMWQxN2Y2
YWEzODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVzL3Rl
c3RfaXNzdWU1MTkucHkKQEAgLTAsMCArMSw0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQor
ZGVmIHRlc3RfNTEwKHRlc3RkaXIpOgorICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCJpc3N1ZV81
MTkucHkiKQorICAgIHRlc3RkaXIucnVucHl0ZXN0KCJpc3N1ZV81MTkucHkiKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZXMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAxODhmNWQ4
YmZjMzkyMTg5NTcxZDhmNWY5OTRjNGRlYzI3NzI3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZXMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAor
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
K0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2Yg
ZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlcy90ZXN0X2lzc3VlNTE5LnB5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS9jcmVhdGVfZXhlY3V0YWJsZS5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL2NyZWF0ZV9leGVjdXRhYmxlLnB5CmluZGV4
IDk4YWEyMDM0YzlkNzkzMzVkNmI2N2Y5ZWVmNGI0MDRlMzRjZGJmYjQuLmFiODAxMzMxN2IyYzQx
OGJjZGRlNjgwMjczMDQ1YTcyYzkzNDhhNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZnJlZXplL2NyZWF0ZV9leGVjdXRhYmxlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZnJlZXplL2NyZWF0ZV9leGVjdXRhYmxlLnB5CkBAIC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5n
OiB1dGYtOCAtKi0KICIiIgogR2VuZXJhdGVzIGFuIGV4ZWN1dGFibGUgd2l0aCBweXRlc3QgcnVu
bmVyIGVtYmVkZGVkIHVzaW5nIFB5SW5zdGFsbGVyLgogIiIiCkBAIC04LDUgKzksNiBAQCBpZiBf
X25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIGhpZGRlbiA9IFtdCiAgICAgZm9yIHggaW4gcHl0
ZXN0LmZyZWV6ZV9pbmNsdWRlcygpOgogICAgICAgICBoaWRkZW4uZXh0ZW5kKFsiLS1oaWRkZW4t
aW1wb3J0IiwgeF0pCisgICAgaGlkZGVuLmV4dGVuZChbIi0taGlkZGVuLWltcG9ydCIsICJkaXN0
dXRpbHMiXSkKICAgICBhcmdzID0gWyJweWluc3RhbGxlciIsICItLW5vY29uZmlybSJdICsgaGlk
ZGVuICsgWyJydW50ZXN0c19zY3JpcHQucHkiXQogICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbCgi
ICIuam9pbihhcmdzKSwgc2hlbGw9VHJ1ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZnJlZXplL3J1bnRlc3RzX3NjcmlwdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXpl
L3J1bnRlc3RzX3NjcmlwdC5weQppbmRleCBkMDNiY2E4NDA2ZGUyZTRlMWE1YmE4OTllN2ZiMDhi
NGIwNzk5OGRkLi5mNzM4MWY1Njg2MzUyNTc3MWI3NTc2YzhhZGMzZDAzYWI3NTc0NDU0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS9ydW50ZXN0c19zY3JpcHQucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvcnVudGVzdHNfc2NyaXB0LnB5CkBAIC0xLDMg
KzEsNCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIgogVGhpcyBpcyB0aGUgc2NyaXB0
IHRoYXQgaXMgYWN0dWFsbHkgZnJvemVuIGludG8gYW4gZXhlY3V0YWJsZTogc2ltcGx5IGV4ZWN1
dGVzCiBweS50ZXN0IG1haW4oKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJl
ZXplL3Rlc3RzL3Rlc3RfdHJpdmlhbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rl
c3RzL3Rlc3RfdHJpdmlhbC5weQppbmRleCAwOGE1NTU1MmFiYmY2MjUyZTg1MDVlYTlkZmZiZGQz
MmVjZTViNGM1Li40NDlkYmY5ZDM2MjU2Njc5Y2Y0NDg1MjllNjliMmY4MzViNDM2ZDgzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90ZXN0cy90ZXN0X3RyaXZpYWwucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdGVzdHMvdGVzdF90cml2aWFsLnB5CkBA
IC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGRlZiB0ZXN0X3VwcGVyKCk6
CiAgICAgYXNzZXJ0ICJmb28iLnVwcGVyKCkgPT0gIkZPTyIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9mcmVlemUvdG94X3J1bi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJl
ZXplL3RveF9ydW4ucHkKaW5kZXggNjc4YTY5Yzg1OGEyY2Q0MDk0MzA3YWNmOTBlNmU5OTZjOTgw
MGVlMy4uMjliNzI3OTIzODQyMWQ3ZmQzNzYxZjdmODAwZWU4NzljOGZhY2MwYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdG94X3J1bi5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2ZyZWV6ZS90b3hfcnVuLnB5CkBAIC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5n
OiB1dGYtOCAtKi0KICIiIgogQ2FsbGVkIGJ5IHRveC5pbmk6IHVzZXMgdGhlIGdlbmVyYXRlZCBl
eGVjdXRhYmxlIHRvIHJ1biB0aGUgdGVzdHMgaW4gLi90ZXN0cy8KIGRpcmVjdG9yeS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvaW8vdGVzdF9zYWZlcmVwci5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvaW8vdGVzdF9zYWZlcmVwci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDEyMDMwODg4OTE0
ZDAwZWY1MTIwM2Y0YjRmNWVmNzA4ZmExZjJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9pby90ZXN0X3NhZmVyZXByLnB5CkBAIC0wLDAgKzEsNjYgQEAKKyMgLSotIGNv
ZGluZzogdXRmLTggLSotCitmcm9tIF9weXRlc3QuX2lvLnNhZmVyZXByIGltcG9ydCBzYWZlcmVw
cgorCisKK2RlZiB0ZXN0X3NpbXBsZV9yZXByKCk6CisgICAgYXNzZXJ0IHNhZmVyZXByKDEpID09
ICIxIgorICAgIGFzc2VydCBzYWZlcmVwcihOb25lKSA9PSAiTm9uZSIKKworCitkZWYgdGVzdF9t
YXhzaXplKCk6CisgICAgcyA9IHNhZmVyZXByKCJ4IiAqIDUwLCBtYXhzaXplPTI1KQorICAgIGFz
c2VydCBsZW4ocykgPT0gMjUKKyAgICBleHBlY3RlZCA9IHJlcHIoIngiICogMTAgKyAiLi4uIiAr
ICJ4IiAqIDEwKQorICAgIGFzc2VydCBzID09IGV4cGVjdGVkCisKKworZGVmIHRlc3RfbWF4c2l6
ZV9lcnJvcl9vbl9pbnN0YW5jZSgpOgorICAgIGNsYXNzIEE6CisgICAgICAgIGRlZiBfX3JlcHJf
XygpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiLi4uIikKKworICAgIHMgPSBzYWZl
cmVwcigoIioiICogNTAsIEEoKSksIG1heHNpemU9MjUpCisgICAgYXNzZXJ0IGxlbihzKSA9PSAy
NQorICAgIGFzc2VydCBzWzBdID09ICIoIiBhbmQgc1stMV0gPT0gIikiCisKKworZGVmIHRlc3Rf
ZXhjZXB0aW9ucygpOgorICAgIGNsYXNzIEJyb2tlblJlcHI6CisgICAgICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBleCk6CisgICAgICAgICAgICBzZWxmLmV4ID0gZXgKKworICAgICAgICBkZWYgX19y
ZXByX18oc2VsZik6CisgICAgICAgICAgICByYWlzZSBzZWxmLmV4CisKKyAgICBjbGFzcyBCcm9r
ZW5SZXByRXhjZXB0aW9uKEV4Y2VwdGlvbik6CisgICAgICAgIF9fc3RyX18gPSBOb25lCisgICAg
ICAgIF9fcmVwcl9fID0gTm9uZQorCisgICAgYXNzZXJ0ICJFeGNlcHRpb24iIGluIHNhZmVyZXBy
KEJyb2tlblJlcHIoRXhjZXB0aW9uKCJicm9rZW4iKSkpCisgICAgcyA9IHNhZmVyZXByKEJyb2tl
blJlcHJFeGNlcHRpb24oInJlYWxseSBicm9rZW4iKSkKKyAgICBhc3NlcnQgIlR5cGVFcnJvciIg
aW4gcworICAgIGFzc2VydCAiVHlwZUVycm9yIiBpbiBzYWZlcmVwcihCcm9rZW5SZXByKCJzdHJp
bmciKSkKKworICAgIHMyID0gc2FmZXJlcHIoQnJva2VuUmVwcihCcm9rZW5SZXByRXhjZXB0aW9u
KCJvbWcgZXZlbiB3b3JzZSIpKSkKKyAgICBhc3NlcnQgIk5hbWVFcnJvciIgbm90IGluIHMyCisg
ICAgYXNzZXJ0ICJ1bmtub3duIiBpbiBzMgorCisKK2RlZiB0ZXN0X2JpZ19yZXByKCk6CisgICAg
ZnJvbSBfcHl0ZXN0Ll9pby5zYWZlcmVwciBpbXBvcnQgU2FmZVJlcHIKKworICAgIGFzc2VydCBs
ZW4oc2FmZXJlcHIocmFuZ2UoMTAwMCkpKSA8PSBsZW4oIlsiICsgU2FmZVJlcHIoKS5tYXhsaXN0
ICogIjEwMDAiICsgIl0iKQorCisKK2RlZiB0ZXN0X3JlcHJfb25fbmV3c3R5bGUoKToKKyAgICBj
bGFzcyBGdW5jdGlvbihvYmplY3QpOgorICAgICAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAg
ICAgICAgICByZXR1cm4gIjwlcz4iICUgKHNlbGYubmFtZSkKKworICAgIGFzc2VydCBzYWZlcmVw
cihGdW5jdGlvbigpKQorCisKK2RlZiB0ZXN0X3VuaWNvZGUoKToKKyAgICB2YWwgPSB1IsKj4oKs
IgorICAgIHJlcHJ2YWwgPSB1IifCo+KCrCciCisgICAgYXNzZXJ0IHNhZmVyZXByKHZhbCkgPT0g
cmVwcnZhbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9pby93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvaW8vdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc0
ZGQ4NWNmOWQzM2ZiYmE0N2M0N2I1Njg0MmRjNTg2MjUzYzFmYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvaW8vdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAor
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
K0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2Yg
ZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9pby90ZXN0X3NhZmVyZXByLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9maXh0dXJlLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfZml4dHVyZS5weQppbmRleCA4ZDlhZTZiNTE4ZGE4
NDZkNTRjY2QxYmUxODIzYmU3N2ExNGZlMGUyLi5mZjc3MmU3ZWM2MmQ2MGE3OWIzZWMwZjI3YWYw
MjVjMmJjYmFlODdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVz
dF9maXh0dXJlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0X2ZpeHR1
cmUucHkKQEAgLTQ1LDcgKzQ1LDcgQEAgZGVmIHRlc3RfY2hhbmdlX2xldmVsX3VuZG8odGVzdGRp
cik6CiAgICAgICAgICAgICBhc3NlcnQgMAogICAgICIiIgogICAgICkKLSAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCiAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmxvZyBmcm9tIHRlc3Qx
KiIsICIqMiBmYWlsZWQgaW4gKiJdKQogICAgIGFzc2VydCAibG9nIGZyb20gdGVzdDIiIG5vdCBp
biByZXN1bHQuc3Rkb3V0LnN0cigpCiAKQEAgLTczLDYgKzczLDI3IEBAIGRlZiB0ZXN0X2xvZ19h
Y2Nlc3MoY2FwbG9nKToKICAgICBhc3NlcnQgImJvbyBhcmciIGluIGNhcGxvZy50ZXh0CiAKIAor
ZGVmIHRlc3RfbWVzc2FnZXMoY2FwbG9nKToKKyAgICBjYXBsb2cuc2V0X2xldmVsKGxvZ2dpbmcu
SU5GTykKKyAgICBsb2dnZXIuaW5mbygiYm9vICVzIiwgImFyZyIpCisgICAgbG9nZ2VyLmluZm8o
ImJhciAlc1xuYmF6ICVzIiwgImFyZzEiLCAiYXJnMiIpCisgICAgYXNzZXJ0ICJib28gYXJnIiA9
PSBjYXBsb2cubWVzc2FnZXNbMF0KKyAgICBhc3NlcnQgImJhciBhcmcxXG5iYXogYXJnMiIgPT0g
Y2FwbG9nLm1lc3NhZ2VzWzFdCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0LmNvdW50KCJcbiIpID4g
bGVuKGNhcGxvZy5tZXNzYWdlcykKKyAgICBhc3NlcnQgbGVuKGNhcGxvZy50ZXh0LnNwbGl0bGlu
ZXMoKSkgPiBsZW4oY2FwbG9nLm1lc3NhZ2VzKQorCisgICAgdHJ5OgorICAgICAgICByYWlzZSBF
eGNlcHRpb24oInRlc3QiKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIGxvZ2dlci5l
eGNlcHRpb24oIm9vcHMiKQorCisgICAgYXNzZXJ0ICJvb3BzIiBpbiBjYXBsb2cudGV4dAorICAg
IGFzc2VydCAib29wcyIgaW4gY2FwbG9nLm1lc3NhZ2VzWy0xXQorICAgICMgVHJhY2ViYWNrcyBh
cmUgc3RvcmVkIGluIHRoZSByZWNvcmQgYW5kIG5vdCBhZGRlZCB1bnRpbCB0aGUgZm9ybWF0dGVy
IG9yIGhhbmRsZXIuCisgICAgYXNzZXJ0ICJFeGNlcHRpb24iIGluIGNhcGxvZy50ZXh0CisgICAg
YXNzZXJ0ICJFeGNlcHRpb24iIG5vdCBpbiBjYXBsb2cubWVzc2FnZXNbLTFdCisKKwogZGVmIHRl
c3RfcmVjb3JkX3R1cGxlcyhjYXBsb2cpOgogICAgIGNhcGxvZy5zZXRfbGV2ZWwobG9nZ2luZy5J
TkZPKQogICAgIGxvZ2dlci5pbmZvKCJib28gJXMiLCAiYXJnIikKQEAgLTExNSw1ICsxMzYsNSBA
QCBkZWYgdGVzdF9jYXBsb2dfY2FwdHVyZXNfZm9yX2FsbF9zdGFnZXMoY2FwbG9nLCBsb2dnaW5n
X2R1cmluZ19zZXR1cF9hbmRfdGVhcmRvdwogCiAgICAgYXNzZXJ0IFt4Lm1lc3NhZ2UgZm9yIHgg
aW4gY2FwbG9nLmdldF9yZWNvcmRzKCJzZXR1cCIpXSA9PSBbImFfc2V0dXBfbG9nIl0KIAotICAg
ICMgVGhpcyByZWFjaGVycyBpbnRvIHByaXZhdGUgQVBJLCBkb24ndCB1c2UgdGhpcyB0eXBlIG9m
IHRoaW5nIGluIHJlYWwgdGVzdHMhCisgICAgIyBUaGlzIHJlYWNoZXMgaW50byBwcml2YXRlIEFQ
SSwgZG9uJ3QgdXNlIHRoaXMgdHlwZSBvZiB0aGluZyBpbiByZWFsIHRlc3RzIQogICAgIGFzc2Vy
dCBzZXQoY2FwbG9nLl9pdGVtLmNhdGNoX2xvZ19oYW5kbGVycy5rZXlzKCkpID09IHsic2V0dXAi
LCAiY2FsbCJ9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9m
b3JtYXR0ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9mb3JtYXR0ZXIu
cHkKaW5kZXggY2EyYTQxMDY1Mzc2NzUzYzJlYWRjMjU2Y2JjYWQzZjE5ODIyZGFkYS4uYzg1MWMz
NGQ3ODRkNTA3YzE5YTAzNTU2N2U5MWRjMTgzZmRkZWZhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfZm9ybWF0dGVyLnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvbG9nZ2luZy90ZXN0X2Zvcm1hdHRlci5weQpAQCAtMSw2ICsxLDEwIEBACisjIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IGxvZ2dpbmcKIAogaW1wb3J0IHB5LmlvCitpbXBvcnQg
c2l4CisKK2ltcG9ydCBweXRlc3QKIGZyb20gX3B5dGVzdC5sb2dnaW5nIGltcG9ydCBDb2xvcmVk
TGV2ZWxGb3JtYXR0ZXIKIAogCkBAIC0xOCw3ICsyMiw2IEBAIGRlZiB0ZXN0X2NvbG9yZWRsb2dm
b3JtYXR0ZXIoKToKICAgICApCiAKICAgICBjbGFzcyBDb2xvckNvbmZpZyhvYmplY3QpOgotCiAg
ICAgICAgIGNsYXNzIG9wdGlvbihvYmplY3QpOgogICAgICAgICAgICAgcGFzcwogCkBAIC0yNiwx
MiArMjksMzkgQEAgZGVmIHRlc3RfY29sb3JlZGxvZ2Zvcm1hdHRlcigpOgogICAgIHR3Lmhhc21h
cmt1cCA9IFRydWUKICAgICBmb3JtYXR0ZXIgPSBDb2xvcmVkTGV2ZWxGb3JtYXR0ZXIodHcsIGxv
Z2ZtdCkKICAgICBvdXRwdXQgPSBmb3JtYXR0ZXIuZm9ybWF0KHJlY29yZCkKLSAgICBhc3NlcnQg
KAotICAgICAgICBvdXRwdXQKLSAgICAgICAgPT0gKCJkdW1teXBhdGggICAgICAgICAgICAgICAg
ICAgMTAgIiAiXHgxYlszMm1JTkZPICAgIFx4MWJbMG0gVGVzdCBNZXNzYWdlIikKKyAgICBhc3Nl
cnQgb3V0cHV0ID09ICgKKyAgICAgICAgImR1bW15cGF0aCAgICAgICAgICAgICAgICAgICAxMCBc
eDFiWzMybUlORk8gICAgXHgxYlswbSBUZXN0IE1lc3NhZ2UiCiAgICAgKQogCiAgICAgdHcuaGFz
bWFya3VwID0gRmFsc2UKICAgICBmb3JtYXR0ZXIgPSBDb2xvcmVkTGV2ZWxGb3JtYXR0ZXIodHcs
IGxvZ2ZtdCkKICAgICBvdXRwdXQgPSBmb3JtYXR0ZXIuZm9ybWF0KHJlY29yZCkKLSAgICBhc3Nl
cnQgb3V0cHV0ID09ICgiZHVtbXlwYXRoICAgICAgICAgICAgICAgICAgIDEwICIgIklORk8gICAg
IFRlc3QgTWVzc2FnZSIpCisgICAgYXNzZXJ0IG91dHB1dCA9PSAoImR1bW15cGF0aCAgICAgICAg
ICAgICAgICAgICAxMCBJTkZPICAgICBUZXN0IE1lc3NhZ2UiKQorCisKK0BweXRlc3QubWFyay5z
a2lwaWYoCisgICAgc2l4LlBZMiwgcmVhc29uPSJGb3JtYXR0ZXIgY2xhc3NlcyBkb24ndCBzdXBw
b3J0IGZvcm1hdCBzdHlsZXMgaW4gUFkyIgorKQorZGVmIHRlc3RfbXVsdGlsaW5lX21lc3NhZ2Uo
KToKKyAgICBmcm9tIF9weXRlc3QubG9nZ2luZyBpbXBvcnQgUGVyY2VudFN0eWxlTXVsdGlsaW5l
CisKKyAgICBsb2dmbXQgPSAiJShmaWxlbmFtZSktMjVzICUobGluZW5vKTRkICUobGV2ZWxuYW1l
KS04cyAlKG1lc3NhZ2UpcyIKKworICAgIHJlY29yZCA9IGxvZ2dpbmcuTG9nUmVjb3JkKAorICAg
ICAgICBuYW1lPSJkdW1teSIsCisgICAgICAgIGxldmVsPWxvZ2dpbmcuSU5GTywKKyAgICAgICAg
cGF0aG5hbWU9ImR1bW15cGF0aCIsCisgICAgICAgIGxpbmVubz0xMCwKKyAgICAgICAgbXNnPSJU
ZXN0IE1lc3NhZ2UgbGluZTFcbmxpbmUyIiwKKyAgICAgICAgYXJncz0oKSwKKyAgICAgICAgZXhj
X2luZm89RmFsc2UsCisgICAgKQorICAgICMgdGhpcyBpcyBjYWxsZWQgYnkgbG9nZ2luZy5Gb3Jt
YXR0ZXIuZm9ybWF0CisgICAgcmVjb3JkLm1lc3NhZ2UgPSByZWNvcmQuZ2V0TWVzc2FnZSgpCisK
KyAgICBzdHlsZSA9IFBlcmNlbnRTdHlsZU11bHRpbGluZShsb2dmbXQpCisgICAgb3V0cHV0ID0g
c3R5bGUuZm9ybWF0KHJlY29yZCkKKyAgICBhc3NlcnQgb3V0cHV0ID09ICgKKyAgICAgICAgImR1
bW15cGF0aCAgICAgICAgICAgICAgICAgICAxMCBJTkZPICAgICBUZXN0IE1lc3NhZ2UgbGluZTFc
biIKKyAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5l
MiIKKyAgICApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9y
ZXBvcnRpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9yZXBvcnRpbmcu
cHkKaW5kZXggOTFlZDJlNDc1OGNiYmVkMmZjNzFjNWZhOTg1NjQ3ODk3NmYyYmEzMC4uNmZmNWNj
ZmI1NWE0YmM4ZGFlMmMxMzVlMDFkNGI1YWM5Y2Q0YTU4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfcmVwb3J0aW5nLnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvbG9nZ2luZy90ZXN0X3JlcG9ydGluZy5weQpAQCAtMSw2ICsxLDcgQEAKICMgLSotIGNv
ZGluZzogdXRmLTggLSotCi1pbXBvcnQgcmUKIGltcG9ydCBvcworaW1wb3J0IHJlCitmcm9tIGlv
IGltcG9ydCBvcGVuCiAKIGltcG9ydCBzaXgKIApAQCAtNTMsNiArNTQsNyBAQCBkZWYgdGVzdF9y
b290X2xvZ2dlcl9hZmZlY3RlZCh0ZXN0ZGlyKToKICAgICAgICAgIiIiCiAgICAgICAgIGltcG9y
dCBsb2dnaW5nCiAgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKKwogICAgICAg
ICBkZWYgdGVzdF9mb28oKToKICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdpbmZvIHRleHQgJyAr
ICdnb2luZyB0byBsb2dnZXInKQogICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoJ3dhcm5pbmcg
dGV4dCAnICsgJ2dvaW5nIHRvIGxvZ2dlcicpCkBAIC02NSwxNSArNjcsMTQgQEAgZGVmIHRlc3Rf
cm9vdF9sb2dnZXJfYWZmZWN0ZWQodGVzdGRpcik6CiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi0tbG9nLWxldmVsPUVSUk9SIiwgIi0tbG9nLWZpbGU9cHl0ZXN0LmxvZyIpCiAgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQogCi0gICAgIyB0aGUgY2FwdHVyZSBsb2cgY2FsbHMgaW4g
dGhlIHN0ZG91dCBzZWN0aW9uIG9ubHkgY29udGFpbiB0aGUKLSAgICAjIGxvZ2dlci5lcnJvciBt
c2csIGJlY2F1c2UgLS1sb2ctbGV2ZWw9RVJST1IKKyAgICAjIFRoZSBjYXB0dXJlIGxvZyBjYWxs
cyBpbiB0aGUgc3Rkb3V0IHNlY3Rpb24gb25seSBjb250YWluIHRoZQorICAgICMgbG9nZ2VyLmVy
cm9yIG1zZywgYmVjYXVzZSBvZiAtLWxvZy1sZXZlbD1FUlJPUi4KICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWyIqZXJyb3IgdGV4dCBnb2luZyB0byBsb2dnZXIqIl0pCi0gICAgd2l0
aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlvbik6Ci0gICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIip3YXJuaW5nIHRleHQgZ29pbmcgdG8gbG9nZ2VyKiJdKQot
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24pOgotICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqaW5mbyB0ZXh0IGdvaW5nIHRvIGxvZ2dlcioi
XSkKKyAgICBzdGRvdXQgPSByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgYXNzZXJ0ICJ3YXJuaW5n
IHRleHQgZ29pbmcgdG8gbG9nZ2VyIiBub3QgaW4gc3Rkb3V0CisgICAgYXNzZXJ0ICJpbmZvIHRl
eHQgZ29pbmcgdG8gbG9nZ2VyIiBub3QgaW4gc3Rkb3V0CiAKLSAgICAjIHRoZSBsb2cgZmlsZSBz
aG91bGQgY29udGFpbiB0aGUgd2FybmluZyBhbmQgdGhlIGVycm9yIGxvZyBtZXNzYWdlcyBhbmQK
KyAgICAjIFRoZSBsb2cgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgd2FybmluZyBhbmQgdGhlIGVy
cm9yIGxvZyBtZXNzYWdlcyBhbmQKICAgICAjIG5vdCB0aGUgaW5mbyBvbmUsIGJlY2F1c2UgdGhl
IGRlZmF1bHQgbGV2ZWwgb2YgdGhlIHJvb3QgbG9nZ2VyIGlzCiAgICAgIyBXQVJOSU5HLgogICAg
IGFzc2VydCBvcy5wYXRoLmlzZmlsZShsb2dfZmlsZSkKQEAgLTI0Nyw3ICsyNDgsNyBAQCBkZWYg
dGVzdF9sb2dfY2xpX2VuYWJsZWRfZGlzYWJsZWQodGVzdGRpciwgZW5hYmxlZCk6CiAgICAgICAg
ICAgICBbCiAgICAgICAgICAgICAgICAgInRlc3RfbG9nX2NsaV9lbmFibGVkX2Rpc2FibGVkLnB5
Ojp0ZXN0X2xvZ19jbGkgIiwKICAgICAgICAgICAgICAgICAiKi0tIGxpdmUgbG9nIGNhbGwgLS0q
IiwKLSAgICAgICAgICAgICAgICAidGVzdF9sb2dfY2xpX2VuYWJsZWRfZGlzYWJsZWQucHkqIENS
SVRJQ0FMIGNyaXRpY2FsIG1lc3NhZ2UgbG9nZ2VkIGJ5IHRlc3QiLAorICAgICAgICAgICAgICAg
ICJDUklUSUNBTCAqdGVzdF9sb2dfY2xpX2VuYWJsZWRfZGlzYWJsZWQucHkqIGNyaXRpY2FsIG1l
c3NhZ2UgbG9nZ2VkIGJ5IHRlc3QiLAogICAgICAgICAgICAgICAgICJQQVNTRUQqIiwKICAgICAg
ICAgICAgIF0KICAgICAgICAgKQpAQCAtMjgxLDcgKzI4Miw3IEBAIGRlZiB0ZXN0X2xvZ19jbGlf
ZGVmYXVsdF9sZXZlbCh0ZXN0ZGlyKToKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
CiAgICAgICAgIFsKICAgICAgICAgICAgICJ0ZXN0X2xvZ19jbGlfZGVmYXVsdF9sZXZlbC5weTo6
dGVzdF9sb2dfY2xpICIsCi0gICAgICAgICAgICAidGVzdF9sb2dfY2xpX2RlZmF1bHRfbGV2ZWwu
cHkqV0FSTklORyBtZXNzYWdlIHdpbGwgYmUgc2hvd24qIiwKKyAgICAgICAgICAgICJXQVJOSU5H
KnRlc3RfbG9nX2NsaV9kZWZhdWx0X2xldmVsLnB5KiBtZXNzYWdlIHdpbGwgYmUgc2hvd24qIiwK
ICAgICAgICAgXQogICAgICkKICAgICBhc3NlcnQgIklORk8gbWVzc2FnZSB3b24ndCBiZSBzaG93
biIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKQEAgLTUyMCwxNiArNTIxLDIyIEBAIGRlZiB0
ZXN0X3NlY3Rpb25zX3NpbmdsZV9uZXdfbGluZV9hZnRlcl90ZXN0X291dGNvbWUodGVzdGRpciwg
cmVxdWVzdCk6CiAgICAgICAgICAgICAiPSogMSBwYXNzZWQgaW4gKj0iLAogICAgICAgICBdCiAg
ICAgKQotICAgIGFzc2VydCByZS5zZWFyY2goCi0gICAgICAgIHIiKC4rKWxpdmUgbG9nIHRlYXJk
b3duKC4rKVxuKC4rKVdBUk5JTkcoLispXG4oLispV0FSTklORyguKykiLAotICAgICAgICByZXN1
bHQuc3Rkb3V0LnN0cigpLAotICAgICAgICByZS5NVUxUSUxJTkUsCi0gICAgKSBpcyBub3QgTm9u
ZQotICAgIGFzc2VydCByZS5zZWFyY2goCi0gICAgICAgIHIiKC4rKWxpdmUgbG9nIGZpbmlzaCgu
KylcbiguKylXQVJOSU5HKC4rKVxuKC4rKVdBUk5JTkcoLispIiwKLSAgICAgICAgcmVzdWx0LnN0
ZG91dC5zdHIoKSwKLSAgICAgICAgcmUuTVVMVElMSU5FLAotICAgICkgaXMgbm90IE5vbmUKKyAg
ICBhc3NlcnQgKAorICAgICAgICByZS5zZWFyY2goCisgICAgICAgICAgICByIiguKylsaXZlIGxv
ZyB0ZWFyZG93biguKylcbldBUk5JTkcoLispXG5XQVJOSU5HKC4rKSIsCisgICAgICAgICAgICBy
ZXN1bHQuc3Rkb3V0LnN0cigpLAorICAgICAgICAgICAgcmUuTVVMVElMSU5FLAorICAgICAgICAp
CisgICAgICAgIGlzIG5vdCBOb25lCisgICAgKQorICAgIGFzc2VydCAoCisgICAgICAgIHJlLnNl
YXJjaCgKKyAgICAgICAgICAgIHIiKC4rKWxpdmUgbG9nIGZpbmlzaCguKylcbldBUk5JTkcoLisp
XG5XQVJOSU5HKC4rKSIsCisgICAgICAgICAgICByZXN1bHQuc3Rkb3V0LnN0cigpLAorICAgICAg
ICAgICAgcmUuTVVMVElMSU5FLAorICAgICAgICApCisgICAgICAgIGlzIG5vdCBOb25lCisgICAg
KQogCiAKIGRlZiB0ZXN0X2xvZ19jbGlfbGV2ZWwodGVzdGRpcik6CkBAIC01NTgsNyArNTY1LDcg
QEAgZGVmIHRlc3RfbG9nX2NsaV9sZXZlbCh0ZXN0ZGlyKToKICAgICAjIGZubWF0Y2hfbGluZXMg
ZG9lcyBhbiBhc3NlcnRpb24gaW50ZXJuYWxseQogICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygKICAgICAgICAgWwotICAgICAgICAgICAgInRlc3RfbG9nX2NsaV9sZXZlbC5weSpUaGlz
IGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iLAorICAgICAgICAgICAgIip0ZXN0X2xvZ19jbGlf
bGV2ZWwucHkqVGhpcyBsb2cgbWVzc2FnZSB3aWxsIGJlIHNob3duIiwKICAgICAgICAgICAgICJQ
QVNTRUQiLCAgIyAnUEFTU0VEJyBvbiBpdHMgb3duIGxpbmUgYmVjYXVzZSB0aGUgbG9nIG1lc3Nh
Z2UgcHJpbnRzIGEgbmV3IGxpbmUKICAgICAgICAgXQogICAgICkKQEAgLTU3Miw3ICs1NzksNyBA
QCBkZWYgdGVzdF9sb2dfY2xpX2xldmVsKHRlc3RkaXIpOgogICAgICMgZm5tYXRjaF9saW5lcyBk
b2VzIGFuIGFzc2VydGlvbiBpbnRlcm5hbGx5CiAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKAogICAgICAgICBbCi0gICAgICAgICAgICAidGVzdF9sb2dfY2xpX2xldmVsLnB5KiBUaGlz
IGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iLAorICAgICAgICAgICAgIip0ZXN0X2xvZ19jbGlf
bGV2ZWwucHkqIFRoaXMgbG9nIG1lc3NhZ2Ugd2lsbCBiZSBzaG93biIsCiAgICAgICAgICAgICAi
UEFTU0VEIiwgICMgJ1BBU1NFRCcgb24gaXRzIG93biBsaW5lIGJlY2F1c2UgdGhlIGxvZyBtZXNz
YWdlIHByaW50cyBhIG5ldyBsaW5lCiAgICAgICAgIF0KICAgICApCkBAIC02MDgsNyArNjE1LDcg
QEAgZGVmIHRlc3RfbG9nX2NsaV9pbmlfbGV2ZWwodGVzdGRpcik6CiAgICAgIyBmbm1hdGNoX2xp
bmVzIGRvZXMgYW4gYXNzZXJ0aW9uIGludGVybmFsbHkKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCiAgICAgICAgIFsKLSAgICAgICAgICAgICJ0ZXN0X2xvZ19jbGlfaW5pX2xldmVs
LnB5KiBUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iLAorICAgICAgICAgICAgIip0ZXN0
X2xvZ19jbGlfaW5pX2xldmVsLnB5KiBUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iLAog
ICAgICAgICAgICAgIlBBU1NFRCIsICAjICdQQVNTRUQnIG9uIGl0cyBvd24gbGluZSBiZWNhdXNl
IHRoZSBsb2cgbWVzc2FnZSBwcmludHMgYSBuZXcgbGluZQogICAgICAgICBdCiAgICAgKQpAQCAt
NjI4LDcgKzYzNSw2IEBAIGRlZiB0ZXN0X2xvZ19jbGlfYXV0b19lbmFibGUodGVzdGRpciwgcmVx
dWVzdCwgY2xpX2FyZ3MpOgogICAgICIiIgogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAg
ICAgIiIiCi0gICAgICAgIGltcG9ydCBweXRlc3QKICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKIAog
ICAgICAgICBkZWYgdGVzdF9sb2dfMSgpOgpAQCAtNjQ2LDYgKzY1Miw3IEBAIGRlZiB0ZXN0X2xv
Z19jbGlfYXV0b19lbmFibGUodGVzdGRpciwgcmVxdWVzdCwgY2xpX2FyZ3MpOgogICAgICkKIAog
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KGNsaV9hcmdzKQorICAgIHN0ZG91dCA9IHJl
c3VsdC5zdGRvdXQuc3RyKCkKICAgICBpZiBjbGlfYXJncyA9PSAiLS1sb2ctY2xpLWxldmVsPVdB
Uk5JTkciOgogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAgICAg
ICBbCkBAIC02NTYsMTMgKzY2MywxMyBAQCBkZWYgdGVzdF9sb2dfY2xpX2F1dG9fZW5hYmxlKHRl
c3RkaXIsIHJlcXVlc3QsIGNsaV9hcmdzKToKICAgICAgICAgICAgICAgICAiPSogMSBwYXNzZWQg
aW4gKj0iLAogICAgICAgICAgICAgXQogICAgICAgICApCi0gICAgICAgIGFzc2VydCAiSU5GTyIg
bm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICJJTkZPIiBub3QgaW4g
c3Rkb3V0CiAgICAgZWxzZToKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAog
ICAgICAgICAgICAgWyIqdGVzdF9sb2dfY2xpX2F1dG9fZW5hYmxlKjEwMCUqIiwgIj0qIDEgcGFz
c2VkIGluICo9Il0KICAgICAgICAgKQotICAgICAgICBhc3NlcnQgIklORk8iIG5vdCBpbiByZXN1
bHQuc3Rkb3V0LnN0cigpCi0gICAgICAgIGFzc2VydCAiV0FSTklORyIgbm90IGluIHJlc3VsdC5z
dGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICJJTkZPIiBub3QgaW4gc3Rkb3V0CisgICAgICAg
IGFzc2VydCAiV0FSTklORyIgbm90IGluIHN0ZG91dAogCiAKIGRlZiB0ZXN0X2xvZ19maWxlX2Ns
aSh0ZXN0ZGlyKToKQEAgLTc0MCw3ICs3NDcsNyBAQCBkZWYgdGVzdF9sb2dfbGV2ZWxfbm90X2No
YW5nZWRfYnlfZGVmYXVsdCh0ZXN0ZGlyKToKICAgICAiIiIKICAgICApCiAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
IiogMSBwYXNzZWQgaW4gKiIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAx
IHBhc3NlZCBpbiAqIl0pCiAKIAogZGVmIHRlc3RfbG9nX2ZpbGVfaW5pKHRlc3RkaXIpOgpAQCAt
ODIxLDYgKzgyOCw0MyBAQCBkZWYgdGVzdF9sb2dfZmlsZV9pbmlfbGV2ZWwodGVzdGRpcik6CiAg
ICAgICAgIGFzc2VydCAiVGhpcyBsb2cgbWVzc2FnZSB3b24ndCBiZSBzaG93biIgbm90IGluIGNv
bnRlbnRzCiAKIAorZGVmIHRlc3RfbG9nX2ZpbGVfdW5pY29kZSh0ZXN0ZGlyKToKKyAgICBsb2df
ZmlsZSA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInB5dGVzdC5sb2ciKS5zdHJwYXRoCisKKyAgICB0
ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBs
b2dfZmlsZT17fQorICAgICAgICBsb2dfZmlsZV9sZXZlbCA9IElORk8KKyAgICAgICAgIiIiLmZv
cm1hdCgKKyAgICAgICAgICAgIGxvZ19maWxlCisgICAgICAgICkKKyAgICApCisgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KKyAgICAgICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCisgICAg
ICAgIGltcG9ydCBsb2dnaW5nCisKKyAgICAgICAgZGVmIHRlc3RfbG9nX2ZpbGUoKToKKyAgICAg
ICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdjYXRjaGxvZycpLmluZm8oIk5vcm1hbCBtZXNzYWdl
IikKKyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdjYXRjaGxvZycpLmluZm8oIuKUnCIp
CisgICAgICAgICAgICBsb2dnaW5nLmdldExvZ2dlcignY2F0Y2hsb2cnKS5pbmZvKCJBbm90aGVy
IG5vcm1hbCBtZXNzYWdlIikKKyAgICAiIiIKKyAgICApCisKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisKKyAgICAjIG1ha2Ugc3VyZSB0aGF0IHRoYXQgd2UgZ2V0IGEgJzAnIGV4
aXQgY29kZSBmb3IgdGhlIHRlc3RzdWl0ZQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAg
ICBhc3NlcnQgb3MucGF0aC5pc2ZpbGUobG9nX2ZpbGUpCisgICAgd2l0aCBvcGVuKGxvZ19maWxl
LCBlbmNvZGluZz0idXRmLTgiKSBhcyByZmg6CisgICAgICAgIGNvbnRlbnRzID0gcmZoLnJlYWQo
KQorICAgICAgICBhc3NlcnQgIk5vcm1hbCBtZXNzYWdlIiBpbiBjb250ZW50cworICAgICAgICBh
c3NlcnQgdSLilJwiIGluIGNvbnRlbnRzCisgICAgICAgIGFzc2VydCAiQW5vdGhlciBub3JtYWwg
bWVzc2FnZSIgaW4gY29udGVudHMKKworCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImhhc19j
YXB0dXJlX21hbmFnZXIiLCBbVHJ1ZSwgRmFsc2VdKQogZGVmIHRlc3RfbGl2ZV9sb2dnaW5nX3N1
c3BlbmRzX2NhcHR1cmUoaGFzX2NhcHR1cmVfbWFuYWdlciwgcmVxdWVzdCk6CiAgICAgIiIiVGVz
dCB0aGF0IGNhcHR1cmUgbWFuYWdlciBpcyBzdXNwZW5kZWQgd2hlbiB3ZSBlbWl0dGluZyBtZXNz
YWdlcyBmb3IgbGl2ZSBsb2dnaW5nLgpAQCAtODMyLDI1ICs4NzYsMjAgQEAgZGVmIHRlc3RfbGl2
ZV9sb2dnaW5nX3N1c3BlbmRzX2NhcHR1cmUoaGFzX2NhcHR1cmVfbWFuYWdlciwgcmVxdWVzdCk6
CiAgICAgaXMgaW5zdGFsbGVkLgogICAgICIiIgogICAgIGltcG9ydCBsb2dnaW5nCisgICAgaW1w
b3J0IGNvbnRleHRsaWIKICAgICBmcm9tIGZ1bmN0b29scyBpbXBvcnQgcGFydGlhbAotICAgIGZy
b20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBDYXB0dXJlTWFuYWdlcgogICAgIGZyb20gX3B5dGVz
dC5sb2dnaW5nIGltcG9ydCBfTGl2ZUxvZ2dpbmdTdHJlYW1IYW5kbGVyCiAKICAgICBjbGFzcyBN
b2NrQ2FwdHVyZU1hbmFnZXI6CiAgICAgICAgIGNhbGxzID0gW10KIAotICAgICAgICBkZWYgc3Vz
cGVuZF9nbG9iYWxfY2FwdHVyZShzZWxmKToKLSAgICAgICAgICAgIHNlbGYuY2FsbHMuYXBwZW5k
KCJzdXNwZW5kX2dsb2JhbF9jYXB0dXJlIikKLQotICAgICAgICBkZWYgcmVzdW1lX2dsb2JhbF9j
YXB0dXJlKHNlbGYpOgotICAgICAgICAgICAgc2VsZi5jYWxscy5hcHBlbmQoInJlc3VtZV9nbG9i
YWxfY2FwdHVyZSIpCi0KLSAgICAjIHNhbml0eSBjaGVjawotICAgIGFzc2VydCBDYXB0dXJlTWFu
YWdlci5zdXNwZW5kX2NhcHR1cmVfaXRlbQotICAgIGFzc2VydCBDYXB0dXJlTWFuYWdlci5yZXN1
bWVfZ2xvYmFsX2NhcHR1cmUKKyAgICAgICAgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKKyAg
ICAgICAgZGVmIGdsb2JhbF9hbmRfZml4dHVyZV9kaXNhYmxlZChzZWxmKToKKyAgICAgICAgICAg
IHNlbGYuY2FsbHMuYXBwZW5kKCJlbnRlciBkaXNhYmxlZCIpCisgICAgICAgICAgICB5aWVsZAor
ICAgICAgICAgICAgc2VsZi5jYWxscy5hcHBlbmQoImV4aXQgZGlzYWJsZWQiKQogCiAgICAgY2xh
c3MgRHVtbXlUZXJtaW5hbChzaXguU3RyaW5nSU8pOgotCiAgICAgICAgIGRlZiBzZWN0aW9uKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgICAgICBwYXNzCiAKQEAgLTg2NSwxMCArOTA0
LDI1OSBAQCBkZWYgdGVzdF9saXZlX2xvZ2dpbmdfc3VzcGVuZHNfY2FwdHVyZShoYXNfY2FwdHVy
ZV9tYW5hZ2VyLCByZXF1ZXN0KToKIAogICAgIGxvZ2dlci5jcml0aWNhbCgic29tZSBtZXNzYWdl
IikKICAgICBpZiBoYXNfY2FwdHVyZV9tYW5hZ2VyOgotICAgICAgICBhc3NlcnQgKAotICAgICAg
ICAgICAgTW9ja0NhcHR1cmVNYW5hZ2VyLmNhbGxzCi0gICAgICAgICAgICA9PSBbInN1c3BlbmRf
Z2xvYmFsX2NhcHR1cmUiLCAicmVzdW1lX2dsb2JhbF9jYXB0dXJlIl0KLSAgICAgICAgKQorICAg
ICAgICBhc3NlcnQgTW9ja0NhcHR1cmVNYW5hZ2VyLmNhbGxzID09IFsiZW50ZXIgZGlzYWJsZWQi
LCAiZXhpdCBkaXNhYmxlZCJdCiAgICAgZWxzZToKICAgICAgICAgYXNzZXJ0IE1vY2tDYXB0dXJl
TWFuYWdlci5jYWxscyA9PSBbXQogICAgIGFzc2VydCBvdXRfZmlsZS5nZXR2YWx1ZSgpID09ICJc
bnNvbWUgbWVzc2FnZVxuIgorCisKK2RlZiB0ZXN0X2NvbGxlY3Rpb25fbGl2ZV9sb2dnaW5nKHRl
c3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGlt
cG9ydCBsb2dnaW5nCisKKyAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5pbmZvKCJOb3JtYWwg
bWVzc2FnZSIpCisgICAgIiIiCisgICAgKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi0tbG9nLWNsaS1sZXZlbD1JTkZPIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoCisgICAgICAgIFsiKi0tLSBsaXZlIGxvZyBjb2xsZWN0aW9uIC0tLSoiLCAiKk5vcm1hbCBt
ZXNzYWdlKiIsICJjb2xsZWN0ZWQgMCBpdGVtcyJdCisgICAgKQorCisKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgidmVyYm9zZSIsIFsiIiwgIi1xIiwgIi1xcSJdKQorZGVmIHRlc3RfY29sbGVj
dGlvbl9jb2xsZWN0X29ubHlfbGl2ZV9sb2dnaW5nKHRlc3RkaXIsIHZlcmJvc2UpOgorICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGRlZiB0ZXN0X3NpbXBsZSgp
OgorICAgICAgICAgICAgcGFzcworICAgICIiIgorICAgICkKKworICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIsICItLWxvZy1jbGktbGV2ZWw9SU5GTyIsIHZl
cmJvc2UpCisKKyAgICBleHBlY3RlZF9saW5lcyA9IFtdCisKKyAgICBpZiBub3QgdmVyYm9zZToK
KyAgICAgICAgZXhwZWN0ZWRfbGluZXMuZXh0ZW5kKAorICAgICAgICAgICAgWworICAgICAgICAg
ICAgICAgICIqY29sbGVjdGVkIDEgaXRlbSoiLAorICAgICAgICAgICAgICAgICIqPE1vZHVsZSB0
ZXN0X2NvbGxlY3Rpb25fY29sbGVjdF9vbmx5X2xpdmVfbG9nZ2luZy5weT4qIiwKKyAgICAgICAg
ICAgICAgICAiKm5vIHRlc3RzIHJhbioiLAorICAgICAgICAgICAgXQorICAgICAgICApCisgICAg
ZWxpZiB2ZXJib3NlID09ICItcSI6CisgICAgICAgIGFzc2VydCAiY29sbGVjdGVkIDEgaXRlbSoi
IG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgICAgIGV4cGVjdGVkX2xpbmVzLmV4dGVu
ZCgKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiKnRlc3RfY29sbGVjdGlvbl9jb2xs
ZWN0X29ubHlfbGl2ZV9sb2dnaW5nLnB5Ojp0ZXN0X3NpbXBsZSoiLAorICAgICAgICAgICAgICAg
ICJubyB0ZXN0cyByYW4gaW4gKiBzZWNvbmRzIiwKKyAgICAgICAgICAgIF0KKyAgICAgICAgKQor
ICAgIGVsaWYgdmVyYm9zZSA9PSAiLXFxIjoKKyAgICAgICAgYXNzZXJ0ICJjb2xsZWN0ZWQgMSBp
dGVtKiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgZXhwZWN0ZWRfbGluZXMu
ZXh0ZW5kKFsiKnRlc3RfY29sbGVjdGlvbl9jb2xsZWN0X29ubHlfbGl2ZV9sb2dnaW5nLnB5OiAx
KiJdKQorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKGV4cGVjdGVkX2xpbmVzKQor
CisKK2RlZiB0ZXN0X2NvbGxlY3Rpb25fbG9nZ2luZ190b19maWxlKHRlc3RkaXIpOgorICAgIGxv
Z19maWxlID0gdGVzdGRpci50bXBkaXIuam9pbigicHl0ZXN0LmxvZyIpLnN0cnBhdGgKKworICAg
IHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgIiIiCisgICAgICAgIFtweXRlc3RdCisgICAgICAg
IGxvZ19maWxlPXt9CisgICAgICAgIGxvZ19maWxlX2xldmVsID0gSU5GTworICAgICAgICAiIiIu
Zm9ybWF0KAorICAgICAgICAgICAgbG9nX2ZpbGUKKyAgICAgICAgKQorICAgICkKKworICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBsb2dnaW5nCisK
KyAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5pbmZvKCJOb3JtYWwgbWVzc2FnZSIpCisKKyAg
ICAgICAgZGVmIHRlc3Rfc2ltcGxlKCk6CisgICAgICAgICAgICBsb2dnaW5nLmdldExvZ2dlcigp
LmRlYnVnKCJkZWJ1ZyBtZXNzYWdlIGluIHRlc3Rfc2ltcGxlIikKKyAgICAgICAgICAgIGxvZ2dp
bmcuZ2V0TG9nZ2VyKCkuaW5mbygiaW5mbyBtZXNzYWdlIGluIHRlc3Rfc2ltcGxlIikKKyAgICAi
IiIKKyAgICApCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisKKyAgICBhc3Nl
cnQgIi0tLSBsaXZlIGxvZyBjb2xsZWN0aW9uIC0tLSIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3Ry
KCkKKworICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICBhc3NlcnQgb3MucGF0aC5pc2Zp
bGUobG9nX2ZpbGUpCisgICAgd2l0aCBvcGVuKGxvZ19maWxlLCBlbmNvZGluZz0idXRmLTgiKSBh
cyByZmg6CisgICAgICAgIGNvbnRlbnRzID0gcmZoLnJlYWQoKQorICAgICAgICBhc3NlcnQgIk5v
cm1hbCBtZXNzYWdlIiBpbiBjb250ZW50cworICAgICAgICBhc3NlcnQgImRlYnVnIG1lc3NhZ2Ug
aW4gdGVzdF9zaW1wbGUiIG5vdCBpbiBjb250ZW50cworICAgICAgICBhc3NlcnQgImluZm8gbWVz
c2FnZSBpbiB0ZXN0X3NpbXBsZSIgaW4gY29udGVudHMKKworCitkZWYgdGVzdF9sb2dfaW5faG9v
a3ModGVzdGRpcik6CisgICAgbG9nX2ZpbGUgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJweXRlc3Qu
bG9nIikuc3RycGF0aAorCisgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAiIiIKKyAgICAg
ICAgW3B5dGVzdF0KKyAgICAgICAgbG9nX2ZpbGU9e30KKyAgICAgICAgbG9nX2ZpbGVfbGV2ZWwg
PSBJTkZPCisgICAgICAgIGxvZ19jbGk9dHJ1ZQorICAgICAgICAiIiIuZm9ybWF0KAorICAgICAg
ICAgICAgbG9nX2ZpbGUKKyAgICAgICAgKQorICAgICkKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVz
dCgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBsb2dnaW5nCisKKyAgICAgICAgZGVmIHB5
dGVzdF9ydW50ZXN0bG9vcChzZXNzaW9uKToKKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygncnVu
dGVzdGxvb3AnKQorCisgICAgICAgIGRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb24pOgor
ICAgICAgICAgICAgbG9nZ2luZy5pbmZvKCdzZXNzaW9uc3RhcnQnKQorCisgICAgICAgIGRlZiBw
eXRlc3Rfc2Vzc2lvbmZpbmlzaChzZXNzaW9uLCBleGl0c3RhdHVzKToKKyAgICAgICAgICAgIGxv
Z2dpbmcuaW5mbygnc2Vzc2lvbmZpbmlzaCcpCisgICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
c2Vzc2lvbnN0YXJ0KiIsICIqcnVudGVzdGxvb3AqIiwgIipzZXNzaW9uZmluaXNoKiJdKQorICAg
IHdpdGggb3Blbihsb2dfZmlsZSkgYXMgcmZoOgorICAgICAgICBjb250ZW50cyA9IHJmaC5yZWFk
KCkKKyAgICAgICAgYXNzZXJ0ICJzZXNzaW9uc3RhcnQiIGluIGNvbnRlbnRzCisgICAgICAgIGFz
c2VydCAicnVudGVzdGxvb3AiIGluIGNvbnRlbnRzCisgICAgICAgIGFzc2VydCAic2Vzc2lvbmZp
bmlzaCIgaW4gY29udGVudHMKKworCitkZWYgdGVzdF9sb2dfaW5fcnVudGVzdF9sb2dyZXBvcnQo
dGVzdGRpcik6CisgICAgbG9nX2ZpbGUgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJweXRlc3QubG9n
Iikuc3RycGF0aAorCisgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAiIiIKKyAgICAgICAg
W3B5dGVzdF0KKyAgICAgICAgbG9nX2ZpbGU9e30KKyAgICAgICAgbG9nX2ZpbGVfbGV2ZWwgPSBJ
TkZPCisgICAgICAgIGxvZ19jbGk9dHJ1ZQorICAgICAgICAiIiIuZm9ybWF0KAorICAgICAgICAg
ICAgbG9nX2ZpbGUKKyAgICAgICAgKQorICAgICkKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgK
KyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBsb2dnaW5nCisgICAgICAgIGxvZ2dlciA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9s
b2dyZXBvcnQocmVwb3J0KToKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJsb2dyZXBvcnQiKQor
ICAgICIiIgorICAgICkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAg
ICAgICAgICAgZGVmIHRlc3RfZmlyc3QoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgVHJ1ZQor
ICAgICAgICAiIiIKKyAgICApCisgICAgdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHdpdGggb3Bl
bihsb2dfZmlsZSkgYXMgcmZoOgorICAgICAgICBjb250ZW50cyA9IHJmaC5yZWFkKCkKKyAgICAg
ICAgYXNzZXJ0IGNvbnRlbnRzLmNvdW50KCJsb2dyZXBvcnQiKSA9PSAzCisKKworZGVmIHRlc3Rf
bG9nX3NldF9wYXRoKHRlc3RkaXIpOgorICAgIHJlcG9ydF9kaXJfYmFzZSA9IHRlc3RkaXIudG1w
ZGlyLnN0cnBhdGgKKworICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgIiIiCisgICAgICAg
IFtweXRlc3RdCisgICAgICAgIGxvZ19maWxlX2xldmVsID0gREVCVUcKKyAgICAgICAgbG9nX2Ns
aT10cnVlCisgICAgICAgICIiIgorICAgICkKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAg
ICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSwgdHJ5Zmly
c3Q9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAg
ICAgICAgICAgICAgICBjb25maWcgPSBpdGVtLmNvbmZpZworICAgICAgICAgICAgICAgIGxvZ2dp
bmdfcGx1Z2luID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigibG9nZ2luZy1wbHVn
aW4iKQorICAgICAgICAgICAgICAgIHJlcG9ydF9maWxlID0gb3MucGF0aC5qb2luKHt9LCBpdGVt
Ll9yZXF1ZXN0Lm5vZGUubmFtZSkKKyAgICAgICAgICAgICAgICBsb2dnaW5nX3BsdWdpbi5zZXRf
bG9nX3BhdGgocmVwb3J0X2ZpbGUpCisgICAgICAgICAgICAgICAgeWllbGQKKyAgICAgICAgIiIi
LmZvcm1hdCgKKyAgICAgICAgICAgIHJlcHIocmVwb3J0X2Rpcl9iYXNlKQorICAgICAgICApCisg
ICAgKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgICAgICBp
bXBvcnQgbG9nZ2luZworICAgICAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoInRl
c3RjYXNlLWxvZ2dlciIpCisgICAgICAgICAgICBkZWYgdGVzdF9maXJzdCgpOgorICAgICAgICAg
ICAgICAgIGxvZ2dlci5pbmZvKCJtZXNzYWdlIGZyb20gdGVzdCAxIikKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgVHJ1ZQorCisgICAgICAgICAgICBkZWYgdGVzdF9zZWNvbmQoKToKKyAgICAgICAg
ICAgICAgICBsb2dnZXIuZGVidWcoIm1lc3NhZ2UgZnJvbSB0ZXN0IDIiKQorICAgICAgICAgICAg
ICAgIGFzc2VydCBUcnVlCisgICAgICAgICIiIgorICAgICkKKyAgICB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCisgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihyZXBvcnRfZGlyX2Jhc2UsICJ0ZXN0X2Zp
cnN0IiksICJyIikgYXMgcmZoOgorICAgICAgICBjb250ZW50ID0gcmZoLnJlYWQoKQorICAgICAg
ICBhc3NlcnQgIm1lc3NhZ2UgZnJvbSB0ZXN0IDEiIGluIGNvbnRlbnQKKworICAgIHdpdGggb3Bl
bihvcy5wYXRoLmpvaW4ocmVwb3J0X2Rpcl9iYXNlLCAidGVzdF9zZWNvbmQiKSwgInIiKSBhcyBy
Zmg6CisgICAgICAgIGNvbnRlbnQgPSByZmgucmVhZCgpCisgICAgICAgIGFzc2VydCAibWVzc2Fn
ZSBmcm9tIHRlc3QgMiIgaW4gY29udGVudAorCisKK2RlZiB0ZXN0X2NvbG9yZWRfY2FwdHVyZWRf
bG9nKHRlc3RkaXIpOgorICAgICIiIgorICAgIFRlc3QgdGhhdCB0aGUgbGV2ZWwgbmFtZXMgb2Yg
Y2FwdHVyZWQgbG9nIG1lc3NhZ2VzIG9mIGEgZmFpbGluZyB0ZXN0IGFyZQorICAgIGNvbG9yZWQu
CisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAg
aW1wb3J0IGxvZ2dpbmcKKworICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKKworICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgIGxvZ2dlci5pbmZv
KCd0ZXh0IGdvaW5nIHRvIGxvZ2dlciBmcm9tIGNhbGwnKQorICAgICAgICAgICAgYXNzZXJ0IEZh
bHNlCisgICAgICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LS1sb2ctbGV2ZWw9SU5GTyIsICItLWNvbG9yPXllcyIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWworICAgICAg
ICAgICAgIiotLSBDYXB0dXJlZCBsb2cgY2FsbCAtLSoiLAorICAgICAgICAgICAgIlx4MWJbMzJt
SU5GTyAgICBceDFiWzBtKnRleHQgZ29pbmcgdG8gbG9nZ2VyIGZyb20gY2FsbCIsCisgICAgICAg
IF0KKyAgICApCisKKworZGVmIHRlc3RfY29sb3JlZF9hbnNpX2VzY19jYXBsb2d0ZXh0KHRlc3Rk
aXIpOgorICAgICIiIgorICAgIE1ha2Ugc3VyZSB0aGF0IGNhcGxvZy50ZXh0IGRvZXMgbm90IGNv
bnRhaW4gQU5TSSBlc2NhcGUgc2VxdWVuY2VzLgorICAgICIiIgorICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBsb2dnaW5nCisKKyAgICAgICAgbG9n
Z2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKyAgICAgICAgZGVmIHRlc3RfZm9v
KGNhcGxvZyk6CisgICAgICAgICAgICBsb2dnZXIuaW5mbygndGV4dCBnb2luZyB0byBsb2dnZXIg
ZnJvbSBjYWxsJykKKyAgICAgICAgICAgIGFzc2VydCAnXHgxYicgbm90IGluIGNhcGxvZy50ZXh0
CisgICAgICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1s
b2ctbGV2ZWw9SU5GTyIsICItLWNvbG9yPXllcyIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vYXBwcm94LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9weXRob24vYXBwcm94LnB5CmluZGV4IDllMjVmZWIwYjRkNjMwYWM4
ZGI4Njg1MzU2MTg2OWNiMmFhYTE3ZWIuLmNkOGRmNWQyNzRmOWM2MzRjZTk0YjUzMzFjMjk0OTE2
NTBkN2FkNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2FwcHJveC5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9hcHByb3gucHkKQEAgLTEsMTkgKzEs
MTkgQEAKLSMgZW5jb2Rpbmc6IHV0Zi04CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0
IGRvY3Rlc3QKIGltcG9ydCBvcGVyYXRvcgogaW1wb3J0IHN5cwotaW1wb3J0IHB5dGVzdAotaW1w
b3J0IGRvY3Rlc3QKLQotZnJvbSBweXRlc3QgaW1wb3J0IGFwcHJveAotZnJvbSBvcGVyYXRvciBp
bXBvcnQgZXEsIG5lCiBmcm9tIGRlY2ltYWwgaW1wb3J0IERlY2ltYWwKIGZyb20gZnJhY3Rpb25z
IGltcG9ydCBGcmFjdGlvbgorZnJvbSBvcGVyYXRvciBpbXBvcnQgZXEKK2Zyb20gb3BlcmF0b3Ig
aW1wb3J0IG5lCisKK2ltcG9ydCBweXRlc3QKK2Zyb20gcHl0ZXN0IGltcG9ydCBhcHByb3gKIAog
aW5mLCBuYW4gPSBmbG9hdCgiaW5mIiksIGZsb2F0KCJuYW4iKQogCiAKIGNsYXNzIE15RG9jVGVz
dFJ1bm5lcihkb2N0ZXN0LkRvY1Rlc3RSdW5uZXIpOgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYp
OgogICAgICAgICBkb2N0ZXN0LkRvY1Rlc3RSdW5uZXIuX19pbml0X18oc2VsZikKIApAQCAtMjYs
MjggKzI2LDI3IEBAIGNsYXNzIE15RG9jVGVzdFJ1bm5lcihkb2N0ZXN0LkRvY1Rlc3RSdW5uZXIp
OgogCiAKIGNsYXNzIFRlc3RBcHByb3gob2JqZWN0KToKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAg
ICBkZWYgcGx1c19taW51cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHUiXHUwMGIxIiBpZiBzeXMu
dmVyc2lvbl9pbmZvWzBdID4gMiBlbHNlIHUiKy0iCiAKLSAgICBkZWYgdGVzdF9yZXByX3N0cmlu
ZyhzZWxmKToKLSAgICAgICAgcGx1c19taW51cyA9IHUiXHUwMGIxIiBpZiBzeXMudmVyc2lvbl9p
bmZvWzBdID4gMiBlbHNlIHUiKy0iCisgICAgZGVmIHRlc3RfcmVwcl9zdHJpbmcoc2VsZiwgcGx1
c19taW51cyk6CiAgICAgICAgIHRvbDEsIHRvbDIsIGluZnIgPSAiMS4wZS0wNiIsICIyLjBlLTA2
IiwgImluZiIKICAgICAgICAgYXNzZXJ0IHJlcHIoYXBwcm94KDEuMCkpID09ICIxLjAge3BtfSB7
dG9sMX0iLmZvcm1hdChwbT1wbHVzX21pbnVzLCB0b2wxPXRvbDEpCi0gICAgICAgIGFzc2VydCAo
Ci0gICAgICAgICAgICByZXByKGFwcHJveChbMS4wLCAyLjBdKSkKLSAgICAgICAgICAgID09ICJh
cHByb3goWzEuMCB7cG19IHt0b2wxfSwgMi4wIHtwbX0ge3RvbDJ9XSkiLmZvcm1hdCgKLSAgICAg
ICAgICAgICAgICBwbT1wbHVzX21pbnVzLCB0b2wxPXRvbDEsIHRvbDI9dG9sMgotICAgICAgICAg
ICAgKQorICAgICAgICBhc3NlcnQgcmVwcigKKyAgICAgICAgICAgIGFwcHJveChbMS4wLCAyLjBd
KQorICAgICAgICApID09ICJhcHByb3goWzEuMCB7cG19IHt0b2wxfSwgMi4wIHtwbX0ge3RvbDJ9
XSkiLmZvcm1hdCgKKyAgICAgICAgICAgIHBtPXBsdXNfbWludXMsIHRvbDE9dG9sMSwgdG9sMj10
b2wyCiAgICAgICAgICkKLSAgICAgICAgYXNzZXJ0ICgKLSAgICAgICAgICAgIHJlcHIoYXBwcm94
KCgxLjAsIDIuMCkpKQotICAgICAgICAgICAgPT0gImFwcHJveCgoMS4wIHtwbX0ge3RvbDF9LCAy
LjAge3BtfSB7dG9sMn0pKSIuZm9ybWF0KAotICAgICAgICAgICAgICAgIHBtPXBsdXNfbWludXMs
IHRvbDE9dG9sMSwgdG9sMj10b2wyCi0gICAgICAgICAgICApCisgICAgICAgIGFzc2VydCByZXBy
KAorICAgICAgICAgICAgYXBwcm94KCgxLjAsIDIuMCkpCisgICAgICAgICkgPT0gImFwcHJveCgo
MS4wIHtwbX0ge3RvbDF9LCAyLjAge3BtfSB7dG9sMn0pKSIuZm9ybWF0KAorICAgICAgICAgICAg
cG09cGx1c19taW51cywgdG9sMT10b2wxLCB0b2wyPXRvbDIKICAgICAgICAgKQogICAgICAgICBh
c3NlcnQgcmVwcihhcHByb3goaW5mKSkgPT0gImluZiIKICAgICAgICAgYXNzZXJ0IHJlcHIoYXBw
cm94KDEuMCwgcmVsPW5hbikpID09ICIxLjAge3BtfSA/Pz8iLmZvcm1hdChwbT1wbHVzX21pbnVz
KQotICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgcmVwcihhcHByb3goMS4wLCByZWw9aW5m
KSkKLSAgICAgICAgICAgID09ICIxLjAge3BtfSB7aW5mcn0iLmZvcm1hdChwbT1wbHVzX21pbnVz
LCBpbmZyPWluZnIpCisgICAgICAgIGFzc2VydCByZXByKGFwcHJveCgxLjAsIHJlbD1pbmYpKSA9
PSAiMS4wIHtwbX0ge2luZnJ9Ii5mb3JtYXQoCisgICAgICAgICAgICBwbT1wbHVzX21pbnVzLCBp
bmZyPWluZnIKICAgICAgICAgKQogICAgICAgICBhc3NlcnQgcmVwcihhcHByb3goMS4waiwgcmVs
PWluZikpID09ICIxaiIKIApAQCAtNjEsNiArNjAsMjIgQEAgY2xhc3MgVGVzdEFwcHJveChvYmpl
Y3QpOgogICAgICAgICAgICAgKSwKICAgICAgICAgKQogCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKAorICAgICAgICAidmFsdWUsIHJlcHJfc3RyaW5nIiwKKyAgICAgICAgWworICAgICAg
ICAgICAgKDUuMCwgImFwcHJveCg1LjAge3BtfSA1LjBlLTA2KSIpLAorICAgICAgICAgICAgKFs1
LjBdLCAiYXBwcm94KFs1LjAge3BtfSA1LjBlLTA2XSkiKSwKKyAgICAgICAgICAgIChbWzUuMF1d
LCAiYXBwcm94KFtbNS4wIHtwbX0gNS4wZS0wNl1dKSIpLAorICAgICAgICAgICAgKFtbNS4wLCA2
LjBdXSwgImFwcHJveChbWzUuMCB7cG19IDUuMGUtMDYsIDYuMCB7cG19IDYuMGUtMDZdXSkiKSwK
KyAgICAgICAgICAgIChbWzUuMF0sIFs2LjBdXSwgImFwcHJveChbWzUuMCB7cG19IDUuMGUtMDZd
LCBbNi4wIHtwbX0gNi4wZS0wNl1dKSIpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVz
dF9yZXByX25kX2FycmF5KHNlbGYsIHBsdXNfbWludXMsIHZhbHVlLCByZXByX3N0cmluZyk6Cisg
ICAgICAgICIiIk1ha2Ugc3VyZSB0aGF0IGFycmF5cyBvZiBhbGwgZGlmZmVyZW50IGRpbWVuc2lv
bnMgYXJlIHJlcHInZCBjb3JyZWN0bHkuIiIiCisgICAgICAgIG5wID0gcHl0ZXN0LmltcG9ydG9y
c2tpcCgibnVtcHkiKQorICAgICAgICBucF9hcnJheSA9IG5wLmFycmF5KHZhbHVlKQorICAgICAg
ICBhc3NlcnQgcmVwcihhcHByb3gobnBfYXJyYXkpKSA9PSByZXByX3N0cmluZy5mb3JtYXQocG09
cGx1c19taW51cykKKwogICAgIGRlZiB0ZXN0X29wZXJhdG9yX292ZXJsb2FkaW5nKHNlbGYpOgog
ICAgICAgICBhc3NlcnQgMSA9PSBhcHByb3goMSwgcmVsPTFlLTYsIGFicz0xZS0xMikKICAgICAg
ICAgYXNzZXJ0IG5vdCAoMSAhPSBhcHByb3goMSwgcmVsPTFlLTYsIGFicz0xZS0xMikpCkBAIC0z
MzIsNiArMzQ3LDY4IEBAIGNsYXNzIFRlc3RBcHByb3gob2JqZWN0KToKICAgICAgICAgYXNzZXJ0
IGFjdHVhbCA9PSBhcHByb3gobGlzdChleHBlY3RlZCksIHJlbD01ZS03LCBhYnM9MCkKICAgICAg
ICAgYXNzZXJ0IGFjdHVhbCAhPSBhcHByb3gobGlzdChleHBlY3RlZCksIHJlbD01ZS04LCBhYnM9
MCkKIAorICAgIGRlZiB0ZXN0X251bXB5X3RvbGVyYW5jZV9hcmdzKHNlbGYpOgorICAgICAgICAi
IiIKKyAgICAgICAgQ2hlY2sgdGhhdCBudW1weSByZWwvYWJzIGFyZ3MgYXJlIGhhbmRsZWQgY29y
cmVjdGx5CisgICAgICAgIGZvciBjb21wYXJpc29uIGFnYWluc3QgYW4gbnAuYXJyYXkKKyAgICAg
ICAgQ2hlY2sgYm90aCBzaWRlcyBvZiB0aGUgb3BlcmF0b3IsIGhvcGVmdWxseSBpdCBkb2Vzbid0
IGltcGFjdCB0aGluZ3MuCisgICAgICAgIFRlc3QgYWxsIHBlcm11dGF0aW9ucyBvZiB3aGVyZSB0
aGUgYXBwcm94IGFuZCBucC5hcnJheSgpIGNhbiBzaG93IHVwCisgICAgICAgICIiIgorICAgICAg
ICBucCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIm51bXB5IikKKyAgICAgICAgZXhwZWN0ZWQgPSAx
MDAuMAorICAgICAgICBhY3R1YWwgPSA5OS4wCisgICAgICAgIGFic19kaWZmID0gZXhwZWN0ZWQg
LSBhY3R1YWwKKyAgICAgICAgcmVsX2RpZmYgPSAoZXhwZWN0ZWQgLSBhY3R1YWwpIC8gZXhwZWN0
ZWQKKworICAgICAgICB0ZXN0cyA9IFsKKyAgICAgICAgICAgIChlcSwgYWJzX2RpZmYsIDApLAor
ICAgICAgICAgICAgKGVxLCAwLCByZWxfZGlmZiksCisgICAgICAgICAgICAobmUsIDAsIHJlbF9k
aWZmIC8gMi4wKSwgICMgcmVsIGRpZmYgZmFpbAorICAgICAgICAgICAgKG5lLCBhYnNfZGlmZiAv
IDIuMCwgMCksICAjIGFicyBkaWZmIGZhaWwKKyAgICAgICAgXQorCisgICAgICAgIGZvciBvcCwg
X2FicywgX3JlbCBpbiB0ZXN0czoKKyAgICAgICAgICAgIGFzc2VydCBvcChucC5hcnJheShhY3R1
YWwpLCBhcHByb3goZXhwZWN0ZWQsIGFicz1fYWJzLCByZWw9X3JlbCkpICAjIGEsIGIKKyAgICAg
ICAgICAgIGFzc2VydCBvcChhcHByb3goZXhwZWN0ZWQsIGFicz1fYWJzLCByZWw9X3JlbCksIG5w
LmFycmF5KGFjdHVhbCkpICAjIGIsIGEKKworICAgICAgICAgICAgYXNzZXJ0IG9wKGFjdHVhbCwg
YXBwcm94KG5wLmFycmF5KGV4cGVjdGVkKSwgYWJzPV9hYnMsIHJlbD1fcmVsKSkgICMgYSwgYgor
ICAgICAgICAgICAgYXNzZXJ0IG9wKGFwcHJveChucC5hcnJheShleHBlY3RlZCksIGFicz1fYWJz
LCByZWw9X3JlbCksIGFjdHVhbCkgICMgYiwgYQorCisgICAgICAgICAgICBhc3NlcnQgb3AobnAu
YXJyYXkoYWN0dWFsKSwgYXBwcm94KG5wLmFycmF5KGV4cGVjdGVkKSwgYWJzPV9hYnMsIHJlbD1f
cmVsKSkKKyAgICAgICAgICAgIGFzc2VydCBvcChhcHByb3gobnAuYXJyYXkoZXhwZWN0ZWQpLCBh
YnM9X2FicywgcmVsPV9yZWwpLCBucC5hcnJheShhY3R1YWwpKQorCisgICAgZGVmIHRlc3RfbnVt
cHlfZXhwZWN0aW5nX25hbihzZWxmKToKKyAgICAgICAgbnAgPSBweXRlc3QuaW1wb3J0b3Jza2lw
KCJudW1weSIpCisgICAgICAgIGV4YW1wbGVzID0gWworICAgICAgICAgICAgKGVxLCBuYW4sIG5h
biksCisgICAgICAgICAgICAoZXEsIC1uYW4sIC1uYW4pLAorICAgICAgICAgICAgKGVxLCBuYW4s
IC1uYW4pLAorICAgICAgICAgICAgKG5lLCAwLjAsIG5hbiksCisgICAgICAgICAgICAobmUsIGlu
ZiwgbmFuKSwKKyAgICAgICAgXQorICAgICAgICBmb3Igb3AsIGEsIHggaW4gZXhhbXBsZXM6Cisg
ICAgICAgICAgICAjIE5vdGhpbmcgaXMgZXF1YWwgdG8gTmFOIGJ5IGRlZmF1bHQuCisgICAgICAg
ICAgICBhc3NlcnQgbnAuYXJyYXkoYSkgIT0gYXBwcm94KHgpCisgICAgICAgICAgICBhc3NlcnQg
YSAhPSBhcHByb3gobnAuYXJyYXkoeCkpCisKKyAgICAgICAgICAgICMgSWYgYGBuYW5fb2s9VHJ1
ZWBgLCB0aGVuIE5hTiBpcyBlcXVhbCB0byBOYU4uCisgICAgICAgICAgICBhc3NlcnQgb3AobnAu
YXJyYXkoYSksIGFwcHJveCh4LCBuYW5fb2s9VHJ1ZSkpCisgICAgICAgICAgICBhc3NlcnQgb3Ao
YSwgYXBwcm94KG5wLmFycmF5KHgpLCBuYW5fb2s9VHJ1ZSkpCisKKyAgICBkZWYgdGVzdF9udW1w
eV9leHBlY3RpbmdfaW5mKHNlbGYpOgorICAgICAgICBucCA9IHB5dGVzdC5pbXBvcnRvcnNraXAo
Im51bXB5IikKKyAgICAgICAgZXhhbXBsZXMgPSBbCisgICAgICAgICAgICAoZXEsIGluZiwgaW5m
KSwKKyAgICAgICAgICAgIChlcSwgLWluZiwgLWluZiksCisgICAgICAgICAgICAobmUsIGluZiwg
LWluZiksCisgICAgICAgICAgICAobmUsIDAuMCwgaW5mKSwKKyAgICAgICAgICAgIChuZSwgbmFu
LCBpbmYpLAorICAgICAgICBdCisgICAgICAgIGZvciBvcCwgYSwgeCBpbiBleGFtcGxlczoKKyAg
ICAgICAgICAgIGFzc2VydCBvcChucC5hcnJheShhKSwgYXBwcm94KHgpKQorICAgICAgICAgICAg
YXNzZXJ0IG9wKGEsIGFwcHJveChucC5hcnJheSh4KSkpCisgICAgICAgICAgICBhc3NlcnQgb3Ao
bnAuYXJyYXkoYSksIGFwcHJveChucC5hcnJheSh4KSkpCisKICAgICBkZWYgdGVzdF9udW1weV9h
cnJheV93cm9uZ19zaGFwZShzZWxmKToKICAgICAgICAgbnAgPSBweXRlc3QuaW1wb3J0b3Jza2lw
KCJudW1weSIpCiAKQEAgLTM2Nyw2ICs0NDQsMjEgQEAgY2xhc3MgVGVzdEFwcHJveChvYmplY3Qp
OgogICAgICAgICAgICAgWyIqQXQgaW5kZXggMCBkaWZmOiAzICE9IDQgKiB7fSIuZm9ybWF0KGV4
cGVjdGVkKSwgIj0qIDEgZmFpbGVkIGluICo9Il0KICAgICAgICAgKQogCisgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKAorICAgICAgICAieCIsCisgICAgICAgIFsKKyAgICAgICAgICAgIHB5
dGVzdC5wYXJhbShOb25lKSwKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgic3RyaW5nIiksCisg
ICAgICAgICAgICBweXRlc3QucGFyYW0oWyJzdHJpbmciXSwgaWQ9Im5lc3RlZC1zdHIiKSwKKyAg
ICAgICAgICAgIHB5dGVzdC5wYXJhbShbWzFdXSwgaWQ9Im5lc3RlZC1saXN0IiksCisgICAgICAg
ICAgICBweXRlc3QucGFyYW0oeyJrZXkiOiAic3RyaW5nIn0sIGlkPSJkaWN0LXdpdGgtc3RyaW5n
IiksCisgICAgICAgICAgICBweXRlc3QucGFyYW0oeyJrZXkiOiB7ImtleSI6IDF9fSwgaWQ9Im5l
c3RlZC1kaWN0IiksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X2V4cGVjdGVkX3Zh
bHVlX3R5cGVfZXJyb3Ioc2VsZiwgeCk6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBl
RXJyb3IpOgorICAgICAgICAgICAgYXBwcm94KHgpCisKICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoCiAgICAgICAgICJvcCIsCiAgICAgICAgIFsKQEAgLTQwNCwzICs0OTYsMTQgQEAgY2xh
c3MgVGVzdEFwcHJveChvYmplY3QpOgogICAgICAgICBhc3NlcnQgYWN0dWFsICE9IGFwcHJveChl
eHBlY3RlZCwgcmVsPTVlLTgsIGFicz0wKQogICAgICAgICBhc3NlcnQgYXBwcm94KGV4cGVjdGVk
LCByZWw9NWUtNywgYWJzPTApID09IGFjdHVhbAogICAgICAgICBhc3NlcnQgYXBwcm94KGV4cGVj
dGVkLCByZWw9NWUtOCwgYWJzPTApICE9IGFjdHVhbAorCisgICAgZGVmIHRlc3RfZ2VuZXJpY19z
aXplZF9pdGVyYWJsZV9vYmplY3Qoc2VsZik6CisgICAgICAgIGNsYXNzIE15U2l6ZWRJdGVyYWJs
ZShvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICAgICAg
ICAgIHJldHVybiBpdGVyKFsxLCAyLCAzLCA0XSkKKworICAgICAgICAgICAgZGVmIF9fbGVuX18o
c2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIDQKKworICAgICAgICBleHBlY3RlZCA9IE15
U2l6ZWRJdGVyYWJsZSgpCisgICAgICAgIGFzc2VydCBbMSwgMiwgMywgNF0gPT0gYXBwcm94KGV4
cGVjdGVkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vY29sbGVjdC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2NvbGxlY3QucHkKaW5kZXggNzI0NTA0YjFh
ZjcwMWY1M2ZkN2RjN2QxZmUxYzFhNWQ1NjNhMzhlYy4uNTAxYjMwYTQ5YjAwMjMzMzI3MGYxZjBk
MDVkZTExNWU4MTNlYWExMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24v
Y29sbGVjdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9jb2xsZWN0LnB5CkBA
IC0xLDIwICsxLDE1IEBACiAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IG9zCiBpbXBv
cnQgc3lzCi1mcm9tIHRleHR3cmFwIGltcG9ydCBkZWRlbnQKK2ltcG9ydCB0ZXh0d3JhcAogCiBp
bXBvcnQgX3B5dGVzdC5fY29kZQogaW1wb3J0IHB5dGVzdAogZnJvbSBfcHl0ZXN0Lm1haW4gaW1w
b3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAogZnJvbSBfcHl0ZXN0Lm5vZGVzIGltcG9ydCBDb2xs
ZWN0b3IKIAotaWdub3JlX3BhcmFtZXRyaXplZF9tYXJrcyA9IHB5dGVzdC5tYXJrLmZpbHRlcndh
cm5pbmdzKAotICAgICJpZ25vcmU6QXBwbHlpbmcgbWFya3MgZGlyZWN0bHkgdG8gcGFyYW1ldGVy
cyIKLSkKLQogCiBjbGFzcyBUZXN0TW9kdWxlKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9mYWls
aW5nX2ltcG9ydChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRt
b2R1bGVjb2woImltcG9ydCBhbGtzZGphbHNrZGphbGtqYWxzIikKICAgICAgICAgcHl0ZXN0LnJh
aXNlcyhDb2xsZWN0b3IuQ29sbGVjdEVycm9yLCBtb2Rjb2wuY29sbGVjdCkKQEAgLTM5LDggKzM0
LDYgQEAgY2xhc3MgVGVzdE1vZHVsZShvYmplY3QpOgogICAgICAgICApCiAKICAgICBkZWYgdGVz
dF9pbXBvcnRfcHJlcGVuZF9hcHBlbmQoc2VsZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gpOgotICAg
ICAgICBzeXNwYXRoID0gbGlzdChzeXMucGF0aCkKLSAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0
cihzeXMsICJwYXRoIiwgc3lzcGF0aCkKICAgICAgICAgcm9vdDEgPSB0ZXN0ZGlyLm1rZGlyKCJy
b290MSIpCiAgICAgICAgIHJvb3QyID0gdGVzdGRpci5ta2Rpcigicm9vdDIiKQogICAgICAgICBy
b290MS5lbnN1cmUoIng0NTYucHkiKQpAQCAtNDgsMTMgKzQxLDE0IEBAIGNsYXNzIFRlc3RNb2R1
bGUob2JqZWN0KToKICAgICAgICAgcCA9IHJvb3QyLmpvaW4oInRlc3RfeDQ1Ni5weSIpCiAgICAg
ICAgIG1vbmtleXBhdGNoLnN5c3BhdGhfcHJlcGVuZChzdHIocm9vdDEpKQogICAgICAgICBwLndy
aXRlKAotICAgICAgICAgICAgZGVkZW50KAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAog
ICAgICAgICAgICAgICAgICIiIlwKLSAgICAgICAgICAgIGltcG9ydCB4NDU2Ci0gICAgICAgICAg
ICBkZWYgdGVzdCgpOgotICAgICAgICAgICAgICAgIGFzc2VydCB4NDU2Ll9fZmlsZV9fLnN0YXJ0
c3dpdGgoJXIpCi0gICAgICAgICIiIgotICAgICAgICAgICAgICAgICUgc3RyKHJvb3QyKQorICAg
ICAgICAgICAgICAgIGltcG9ydCB4NDU2CisgICAgICAgICAgICAgICAgZGVmIHRlc3QoKToKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IHg0NTYuX19maWxlX18uc3RhcnRzd2l0aCh7IXJ9KQor
ICAgICAgICAgICAgICAgICIiIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIHN0cihyb290
MikKKyAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICApCiAgICAgICAgICkKICAgICAgICAg
d2l0aCByb290Mi5hc19jd2QoKToKQEAgLTE0MSw3ICsxMzUsNiBAQCBjbGFzcyBUZXN0TW9kdWxl
KG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9j
bGFzc193aXRoX2luaXRfd2FybmluZyhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC0xNTMsNyArMTQ2LDI0IEBAIGNsYXNzIFRl
c3RDbGFzcyhvYmplY3QpOgogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJ3
IikKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICAgICAgWwot
ICAgICAgICAgICAgICAgICIqY2Fubm90IGNvbGxlY3QgdGVzdCBjbGFzcyAnVGVzdENsYXNzMScg
YmVjYXVzZSBpdCBoYXMgYSBfX2luaXRfXyBjb25zdHJ1Y3RvciIKKyAgICAgICAgICAgICAgICAi
KmNhbm5vdCBjb2xsZWN0IHRlc3QgY2xhc3MgJ1Rlc3RDbGFzczEnIGJlY2F1c2UgaXQgaGFzICIK
KyAgICAgICAgICAgICAgICAiYSBfX2luaXRfXyBjb25zdHJ1Y3RvciAoZnJvbTogdGVzdF9jbGFz
c193aXRoX2luaXRfd2FybmluZy5weSkiCisgICAgICAgICAgICBdCisgICAgICAgICkKKworICAg
IGRlZiB0ZXN0X2NsYXNzX3dpdGhfbmV3X3dhcm5pbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgY2xhc3Mg
VGVzdENsYXNzMShvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiBfX25ld19fKHNlbGYpOgor
ICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcnciKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgIipjYW5ub3Qg
Y29sbGVjdCB0ZXN0IGNsYXNzICdUZXN0Q2xhc3MxJyBiZWNhdXNlIGl0IGhhcyAiCisgICAgICAg
ICAgICAgICAgImEgX19uZXdfXyBjb25zdHJ1Y3RvciAoZnJvbTogdGVzdF9jbGFzc193aXRoX25l
d193YXJuaW5nLnB5KSIKICAgICAgICAgICAgIF0KICAgICAgICAgKQogCkBAIC0yNDUsMjI2ICsy
NTUsMTQgQEAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAogCiAKLWNsYXNzIFRlc3RHZW5lcmF0b3Iob2Jq
ZWN0KToKLQotICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmVfZnVuY3Rpb25zKHNlbGYsIHRlc3RkaXIp
OgotICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgKLSAgICAgICAgICAgICIi
IgotICAgICAgICAgICAgZGVmIGZ1bmMxKGFyZywgYXJnMik6Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0IGFyZyA9PSBhcmcyCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2dlbigpOgotICAgICAgICAg
ICAgICAgIHlpZWxkIGZ1bmMxLCAxNywgMyo1Ci0gICAgICAgICAgICAgICAgeWllbGQgZnVuYzEs
IDQyLCA2KjcKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgY29saXRlbXMgPSBtb2Rj
b2wuY29sbGVjdCgpCi0gICAgICAgIGFzc2VydCBsZW4oY29saXRlbXMpID09IDEKLSAgICAgICAg
Z2VuY29sID0gY29saXRlbXNbMF0KLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZ2VuY29sLCBw
eXRlc3QuR2VuZXJhdG9yKQotICAgICAgICBnZW5jb2xpdGVtcyA9IGdlbmNvbC5jb2xsZWN0KCkK
LSAgICAgICAgYXNzZXJ0IGxlbihnZW5jb2xpdGVtcykgPT0gMgotICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShnZW5jb2xpdGVtc1swXSwgcHl0ZXN0LkZ1bmN0aW9uKQotICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShnZW5jb2xpdGVtc1sxXSwgcHl0ZXN0LkZ1bmN0aW9uKQotICAgICAgICBhc3Nl
cnQgZ2VuY29saXRlbXNbMF0ubmFtZSA9PSAiWzBdIgotICAgICAgICBhc3NlcnQgZ2VuY29saXRl
bXNbMF0ub2JqLl9fbmFtZV9fID09ICJmdW5jMSIKLQotICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmVf
bWV0aG9kcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1
bGVjb2woCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiBmdW5jMShhcmcsIGFyZzIp
OgotICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gYXJnMgotICAgICAgICAgICAgY2xhc3Mg
VGVzdEdlbk1ldGhvZHMob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9nZW4oc2Vs
Zik6Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkIGZ1bmMxLCAxNywgMyo1Ci0gICAgICAgICAg
ICAgICAgICAgIHlpZWxkIGZ1bmMxLCA0MiwgNio3Ci0gICAgICAgICIiIgotICAgICAgICApCi0g
ICAgICAgIGdlbmNvbCA9IG1vZGNvbC5jb2xsZWN0KClbMF0uY29sbGVjdCgpWzBdLmNvbGxlY3Qo
KVswXQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2wsIHB5dGVzdC5HZW5lcmF0b3Ip
Ci0gICAgICAgIGdlbmNvbGl0ZW1zID0gZ2VuY29sLmNvbGxlY3QoKQotICAgICAgICBhc3NlcnQg
bGVuKGdlbmNvbGl0ZW1zKSA9PSAyCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbGl0
ZW1zWzBdLCBweXRlc3QuRnVuY3Rpb24pCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNv
bGl0ZW1zWzFdLCBweXRlc3QuRnVuY3Rpb24pCi0gICAgICAgIGFzc2VydCBnZW5jb2xpdGVtc1sw
XS5uYW1lID09ICJbMF0iCi0gICAgICAgIGFzc2VydCBnZW5jb2xpdGVtc1swXS5vYmouX19uYW1l
X18gPT0gImZ1bmMxIgotCi0gICAgZGVmIHRlc3RfZ2VuZXJhdGl2ZV9mdW5jdGlvbnNfd2l0aF9l
eHBsaWNpdF9uYW1lcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgbW9kY29sID0gdGVzdGRpci5n
ZXRtb2R1bGVjb2woCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiBmdW5jMShhcmcs
IGFyZzIpOgotICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gYXJnMgotCi0gICAgICAgICAg
ICBkZWYgdGVzdF9nZW4oKToKLSAgICAgICAgICAgICAgICB5aWVsZCAic2V2ZW50ZWVuIiwgZnVu
YzEsIDE3LCAzKjUKLSAgICAgICAgICAgICAgICB5aWVsZCAiZm9ydHl0d28iLCBmdW5jMSwgNDIs
IDYqNwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBjb2xpdGVtcyA9IG1vZGNvbC5j
b2xsZWN0KCkKLSAgICAgICAgYXNzZXJ0IGxlbihjb2xpdGVtcykgPT0gMQotICAgICAgICBnZW5j
b2wgPSBjb2xpdGVtc1swXQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2wsIHB5dGVz
dC5HZW5lcmF0b3IpCi0gICAgICAgIGdlbmNvbGl0ZW1zID0gZ2VuY29sLmNvbGxlY3QoKQotICAg
ICAgICBhc3NlcnQgbGVuKGdlbmNvbGl0ZW1zKSA9PSAyCi0gICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKGdlbmNvbGl0ZW1zWzBdLCBweXRlc3QuRnVuY3Rpb24pCi0gICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKGdlbmNvbGl0ZW1zWzFdLCBweXRlc3QuRnVuY3Rpb24pCi0gICAgICAgIGFzc2VydCBn
ZW5jb2xpdGVtc1swXS5uYW1lID09ICJbJ3NldmVudGVlbiddIgotICAgICAgICBhc3NlcnQgZ2Vu
Y29saXRlbXNbMF0ub2JqLl9fbmFtZV9fID09ICJmdW5jMSIKLSAgICAgICAgYXNzZXJ0IGdlbmNv
bGl0ZW1zWzFdLm5hbWUgPT0gIlsnZm9ydHl0d28nXSIKLSAgICAgICAgYXNzZXJ0IGdlbmNvbGl0
ZW1zWzFdLm9iai5fX25hbWVfXyA9PSAiZnVuYzEiCi0KLSAgICBkZWYgdGVzdF9nZW5lcmF0aXZl
X2Z1bmN0aW9uc191bmlxdWVfZXhwbGljaXRfbmFtZXMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
ICMgZ2VuZXJhdGl2ZQotICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgKLSAg
ICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIGZ1bmMoKTogcGFzcwotICAgICAgICAgICAg
ZGVmIHRlc3RfZ2VuKCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgIm5hbWUiLCBmdW5jCi0gICAg
ICAgICAgICAgICAgeWllbGQgIm5hbWUiLCBmdW5jCi0gICAgICAgICIiIgotICAgICAgICApCi0g
ICAgICAgIGNvbGl0ZW1zID0gbW9kY29sLmNvbGxlY3QoKQotICAgICAgICBhc3NlcnQgbGVuKGNv
bGl0ZW1zKSA9PSAxCi0gICAgICAgIGdlbmNvbCA9IGNvbGl0ZW1zWzBdCi0gICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGdlbmNvbCwgcHl0ZXN0LkdlbmVyYXRvcikKLSAgICAgICAgcHl0ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yLCAiZ2VuY29sLmNvbGxlY3QoKSIpCi0KLSAgICBkZWYgdGVzdF9nZW5l
cmF0aXZlX21ldGhvZHNfd2l0aF9leHBsaWNpdF9uYW1lcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGRlZiBmdW5jMShhcmcsIGFyZzIpOgotICAgICAgICAgICAgICAgIGFzc2VydCBhcmcg
PT0gYXJnMgotICAgICAgICAgICAgY2xhc3MgVGVzdEdlbk1ldGhvZHMob2JqZWN0KToKLSAgICAg
ICAgICAgICAgICBkZWYgdGVzdF9nZW4oc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxk
ICJtMSIsIGZ1bmMxLCAxNywgMyo1Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkICJtMiIsIGZ1
bmMxLCA0MiwgNio3Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIGdlbmNvbCA9IG1v
ZGNvbC5jb2xsZWN0KClbMF0uY29sbGVjdCgpWzBdLmNvbGxlY3QoKVswXQotICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShnZW5jb2wsIHB5dGVzdC5HZW5lcmF0b3IpCi0gICAgICAgIGdlbmNvbGl0
ZW1zID0gZ2VuY29sLmNvbGxlY3QoKQotICAgICAgICBhc3NlcnQgbGVuKGdlbmNvbGl0ZW1zKSA9
PSAyCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbGl0ZW1zWzBdLCBweXRlc3QuRnVu
Y3Rpb24pCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbGl0ZW1zWzFdLCBweXRlc3Qu
RnVuY3Rpb24pCi0gICAgICAgIGFzc2VydCBnZW5jb2xpdGVtc1swXS5uYW1lID09ICJbJ20xJ10i
Ci0gICAgICAgIGFzc2VydCBnZW5jb2xpdGVtc1swXS5vYmouX19uYW1lX18gPT0gImZ1bmMxIgot
ICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMV0ubmFtZSA9PSAiWydtMiddIgotICAgICAgICBh
c3NlcnQgZ2VuY29saXRlbXNbMV0ub2JqLl9fbmFtZV9fID09ICJmdW5jMSIKLQotICAgIGRlZiB0
ZXN0X29yZGVyX29mX2V4ZWN1dGlvbl9nZW5lcmF0b3Jfc2FtZV9jb2RlbGluZShzZWxmLCB0ZXN0
ZGlyLCB0bXBkaXIpOgotICAgICAgICBvID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9u
Ci0gICAgICAgICAgICBkZWYgdGVzdF9nZW5lcmF0aXZlX29yZGVyX29mX2V4ZWN1dGlvbigpOgot
ICAgICAgICAgICAgICAgIGltcG9ydCBweSwgcHl0ZXN0Ci0gICAgICAgICAgICAgICAgdGVzdF9s
aXN0ID0gW10KLSAgICAgICAgICAgICAgICBleHBlY3RlZF9saXN0ID0gbGlzdChyYW5nZSg2KSkK
LQotICAgICAgICAgICAgICAgIGRlZiBsaXN0X2FwcGVuZChpdGVtKToKLSAgICAgICAgICAgICAg
ICAgICAgdGVzdF9saXN0LmFwcGVuZChpdGVtKQotCi0gICAgICAgICAgICAgICAgZGVmIGFzc2Vy
dF9vcmRlcl9vZl9leGVjdXRpb24oKToKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ2V4cGVj
dGVkIG9yZGVyJywgZXhwZWN0ZWRfbGlzdCkKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ2J1
dCBnb3QgICAgICAgJywgdGVzdF9saXN0KQotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdGVz
dF9saXN0ID09IGV4cGVjdGVkX2xpc3QKLQotICAgICAgICAgICAgICAgIGZvciBpIGluIGV4cGVj
dGVkX2xpc3Q6Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpc3RfYXBwZW5kLCBpCi0gICAg
ICAgICAgICAgICAgeWllbGQgYXNzZXJ0X29yZGVyX29mX2V4ZWN1dGlvbgotICAgICAgICAiIiIK
LSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4obykKLSAgICAg
ICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCi0gICAg
ICAgIGFzc2VydCBwYXNzZWQgPT0gNwotICAgICAgICBhc3NlcnQgbm90IHNraXBwZWQgYW5kIG5v
dCBmYWlsZWQKLQotICAgIGRlZiB0ZXN0X29yZGVyX29mX2V4ZWN1dGlvbl9nZW5lcmF0b3JfZGlm
ZmVyZW50X2NvZGVsaW5lKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBvID0gdGVzdGRpci5tYWtl
cHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHByaW50X2Z1bmN0aW9uCi0gICAgICAgICAgICBkZWYgdGVzdF9nZW5lcmF0aXZlX3Rlc3Rz
X2RpZmZlcmVudF9jb2RlbGluZSgpOgotICAgICAgICAgICAgICAgIGltcG9ydCBweSwgcHl0ZXN0
Ci0gICAgICAgICAgICAgICAgdGVzdF9saXN0ID0gW10KLSAgICAgICAgICAgICAgICBleHBlY3Rl
ZF9saXN0ID0gbGlzdChyYW5nZSgzKSkKLQotICAgICAgICAgICAgICAgIGRlZiBsaXN0X2FwcGVu
ZF8yKCk6Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RfbGlzdC5hcHBlbmQoMikKLQotICAgICAg
ICAgICAgICAgIGRlZiBsaXN0X2FwcGVuZF8xKCk6Ci0gICAgICAgICAgICAgICAgICAgIHRlc3Rf
bGlzdC5hcHBlbmQoMSkKLQotICAgICAgICAgICAgICAgIGRlZiBsaXN0X2FwcGVuZF8wKCk6Ci0g
ICAgICAgICAgICAgICAgICAgIHRlc3RfbGlzdC5hcHBlbmQoMCkKLQotICAgICAgICAgICAgICAg
IGRlZiBhc3NlcnRfb3JkZXJfb2ZfZXhlY3V0aW9uKCk6Ci0gICAgICAgICAgICAgICAgICAgIHBy
aW50KCdleHBlY3RlZCBvcmRlcicsIGV4cGVjdGVkX2xpc3QpCi0gICAgICAgICAgICAgICAgICAg
IHByaW50KCdidXQgZ290ICAgICAgICcsIHRlc3RfbGlzdCkKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0IHRlc3RfbGlzdCA9PSBleHBlY3RlZF9saXN0Ci0KLSAgICAgICAgICAgICAgICB5aWVs
ZCBsaXN0X2FwcGVuZF8wCi0gICAgICAgICAgICAgICAgeWllbGQgbGlzdF9hcHBlbmRfMQotICAg
ICAgICAgICAgICAgIHlpZWxkIGxpc3RfYXBwZW5kXzIKLSAgICAgICAgICAgICAgICB5aWVsZCBh
c3NlcnRfb3JkZXJfb2ZfZXhlY3V0aW9uCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihvKQotICAgICAgICBwYXNzZWQsIHNraXBwZWQs
IGZhaWxlZCA9IHJlcHJlYy5jb3VudG91dGNvbWVzKCkKLSAgICAgICAgYXNzZXJ0IHBhc3NlZCA9
PSA0Ci0gICAgICAgIGFzc2VydCBub3Qgc2tpcHBlZCBhbmQgbm90IGZhaWxlZAotCi0gICAgZGVm
IHRlc3Rfc2V0dXBzdGF0ZV9pc19wcmVzZXJ2ZWRfMTM0KHNlbGYsIHRlc3RkaXIpOgotICAgICAg
ICAjIHlpZWxkLWJhc2VkIHRlc3RzIGFyZSBtZXNzeSB3cnQgdG8gc2V0dXBzdGF0ZSBiZWNhdXNl
Ci0gICAgICAgICMgZHVyaW5nIGNvbGxlY3Rpb24gdGhleSBhbHJlYWR5IGludm9rZSBzZXR1cCBm
dW5jdGlvbnMKLSAgICAgICAgIyBhbmQgdGhlbiBhZ2FpbiB3aGVuIHRoZXkgYXJlIHJ1bi4gIEZv
ciBub3csIHdlIHdhbnQgdG8gbWFrZSBzdXJlCi0gICAgICAgICMgdGhhdCB0aGUgb2xkIDEuMy40
IGJlaGF2aW91ciBpcyBwcmVzZXJ2ZWQgc3VjaCB0aGF0IGFsbAotICAgICAgICAjIHlpZWxkZWQg
ZnVuY3Rpb25zIGFsbCBzaGFyZSB0aGUgc2FtZSAic2VsZiIgaW5zdGFuY2UgdGhhdAotICAgICAg
ICAjIGhhcyBiZWVuIHVzZWQgZHVyaW5nIGNvbGxlY3Rpb24uCi0gICAgICAgIG8gPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIHNldHVwbGlzdCA9IFtd
Ci0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBk
ZWYgc2V0dXBfbWV0aG9kKHNlbGYsIGZ1bmMpOgotICAgICAgICAgICAgICAgICAgICAjcHJpbnQg
InNldHVwX21ldGhvZCIsIHNlbGYsIGZ1bmMKLSAgICAgICAgICAgICAgICAgICAgc2V0dXBsaXN0
LmFwcGVuZChzZWxmKQotICAgICAgICAgICAgICAgICAgICBzZWxmLmluaXQgPSA0MgotCi0gICAg
ICAgICAgICAgICAgZGVmIHRlYXJkb3duX21ldGhvZChzZWxmLCBmdW5jKToKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5pbml0ID0gTm9uZQotCi0gICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVu
YzEoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMyKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLmZ1bmMy
Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuZnVuYzIKLQotICAgICAgICAgICAgICAg
IGRlZiBmdW5jMihzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuaW5pdAot
Ci0gICAgICAgICAgICBkZWYgdGVzdF9zZXR1cGxpc3QoKToKLSAgICAgICAgICAgICAgICAjIG9u
Y2UgZm9yIHRlc3RfZnVuYzIgZHVyaW5nIGNvbGxlY3Rpb24KLSAgICAgICAgICAgICAgICAjIG9u
Y2UgZm9yIHRlc3RfZnVuYzEgZHVyaW5nIHRlc3QgcnVuCi0gICAgICAgICAgICAgICAgIyBvbmNl
IGZvciB0ZXN0X2Z1bmMyIGR1cmluZyB0ZXN0IHJ1bgotICAgICAgICAgICAgICAgICNwcmludCBz
ZXR1cGxpc3QKLSAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHNldHVwbGlzdCkgPT0gMywgbGVu
KHNldHVwbGlzdCkKLSAgICAgICAgICAgICAgICBhc3NlcnQgc2V0dXBsaXN0WzBdID09IHNldHVw
bGlzdFsyXSwgc2V0dXBsaXN0Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHNldHVwbGlzdFsxXSAh
PSBzZXR1cGxpc3RbMl0sIHNldHVwbGlzdAotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4obywgIi12IikKLSAgICAgICAgcGFzc2VkLCBz
a2lwcGVkLCBmYWlsZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCi0gICAgICAgIGFzc2VydCBw
YXNzZWQgPT0gNAotICAgICAgICBhc3NlcnQgbm90IHNraXBwZWQgYW5kIG5vdCBmYWlsZWQKLQot
CiBjbGFzcyBUZXN0RnVuY3Rpb24ob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2dldG1vZHVsZWNv
bGxlY3RvcihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgi
ZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKICAgICAgICAgbW9kY29sID0gaXRlbS5nZXRwYXJlbnQo
cHl0ZXN0Lk1vZHVsZSkKICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobW9kY29sLCBweXRlc3Qu
TW9kdWxlKQogICAgICAgICBhc3NlcnQgaGFzYXR0cihtb2Rjb2wub2JqLCAidGVzdF9mdW5jIikK
IAorICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiZGVmYXVsdCIpCiAgICAgZGVmIHRl
c3RfZnVuY3Rpb25fYXNfb2JqZWN0X2luc3RhbmNlX2lnbm9yZWQoc2VsZiwgdGVzdGRpcik6CiAg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgpAQCAtNDc1LDI5ICsy
NzMsNDMgQEAgY2xhc3MgVGVzdEZ1bmN0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICB0ZXN0X2Eg
PSBBKCkKICAgICAgICAgIiIiCiAgICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUoKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiY29sbGVjdGVkIDAgaXRlbXMi
LAorICAgICAgICAgICAgICAgICIqdGVzdF9mdW5jdGlvbl9hc19vYmplY3RfaW5zdGFuY2VfaWdu
b3JlZC5weToyOiAiCisgICAgICAgICAgICAgICAgIipjYW5ub3QgY29sbGVjdCAndGVzdF9hJyBi
ZWNhdXNlIGl0IGlzIG5vdCBhIGZ1bmN0aW9uLiIsCisgICAgICAgICAgICBdCisgICAgICAgICkK
IAotICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2VxdWFsaXR5KHNlbGYsIHRlc3RkaXIsIHRtcGRpcik6
CisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBtYWtlX2Z1bmN0aW9uKHRlc3RkaXIsICoqa3dh
cmdzKToKICAgICAgICAgZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBGaXh0dXJlTWFuYWdl
cgogCiAgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWd1cmUoKQogICAgICAgICBz
ZXNzaW9uID0gdGVzdGRpci5TZXNzaW9uKGNvbmZpZykKICAgICAgICAgc2Vzc2lvbi5fZml4dHVy
ZW1hbmFnZXIgPSBGaXh0dXJlTWFuYWdlcihzZXNzaW9uKQogCisgICAgICAgIHJldHVybiBweXRl
c3QuRnVuY3Rpb24oY29uZmlnPWNvbmZpZywgcGFyZW50PXNlc3Npb24sICoqa3dhcmdzKQorCisg
ICAgZGVmIHRlc3RfZnVuY3Rpb25fZXF1YWxpdHkoc2VsZiwgdGVzdGRpciwgdG1wZGlyKToKICAg
ICAgICAgZGVmIGZ1bmMxKCk6CiAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgZGVmIGZ1bmMy
KCk6CiAgICAgICAgICAgICBwYXNzCiAKLSAgICAgICAgZjEgPSBweXRlc3QuRnVuY3Rpb24oCi0g
ICAgICAgICAgICBuYW1lPSJuYW1lIiwgcGFyZW50PXNlc3Npb24sIGNvbmZpZz1jb25maWcsIGFy
Z3M9KDEsKSwgY2FsbG9iaj1mdW5jMQotICAgICAgICApCisgICAgICAgIGYxID0gc2VsZi5tYWtl
X2Z1bmN0aW9uKHRlc3RkaXIsIG5hbWU9Im5hbWUiLCBhcmdzPSgxLCksIGNhbGxvYmo9ZnVuYzEp
CiAgICAgICAgIGFzc2VydCBmMSA9PSBmMQotICAgICAgICBmMiA9IHB5dGVzdC5GdW5jdGlvbihu
YW1lPSJuYW1lIiwgY29uZmlnPWNvbmZpZywgY2FsbG9iaj1mdW5jMiwgcGFyZW50PXNlc3Npb24p
CisgICAgICAgIGYyID0gc2VsZi5tYWtlX2Z1bmN0aW9uKHRlc3RkaXIsIG5hbWU9Im5hbWUiLCBj
YWxsb2JqPWZ1bmMyKQogICAgICAgICBhc3NlcnQgZjEgIT0gZjIKIAorICAgIGRlZiB0ZXN0X3Jl
cHJfcHJvZHVjZXNfYWN0dWFsX3Rlc3RfaWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGYgPSBz
ZWxmLm1ha2VfZnVuY3Rpb24oCisgICAgICAgICAgICB0ZXN0ZGlyLCBuYW1lPXIidGVzdFtceGU1
XSIsIGNhbGxvYmo9c2VsZi50ZXN0X3JlcHJfcHJvZHVjZXNfYWN0dWFsX3Rlc3RfaWQKKyAgICAg
ICAgKQorICAgICAgICBhc3NlcnQgcmVwcihmKSA9PSByIjxGdW5jdGlvbiB0ZXN0W1x4ZTVdPiIK
KwogICAgIGRlZiB0ZXN0X2lzc3VlMTk3X3BhcmFtZXRyaXplX2VtcHR5c2V0KHNlbGYsIHRlc3Rk
aXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTYz
NCw3ICs0NDYsMzcgQEAgY2xhc3MgVGVzdEZ1bmN0aW9uKG9iamVjdCk6CiAgICAgICAgIHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bigpCiAgICAgICAgIHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0x
KQogCi0gICAgQGlnbm9yZV9wYXJhbWV0cml6ZWRfbWFya3MKKyAgICBkZWYgdGVzdF9wYXJhbWV0
cml6ZV9vdmVycmlkZXNfaW5kaXJlY3RfZGVwZW5kZW5jeV9maXh0dXJlKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICAiIiJUZXN0IHBhcmFtZXRyaXphdGlvbiB3aGVuIHBhcmFtZXRlciBvdmVycmlk
ZXMgYSBmaXh0dXJlIHRoYXQgYSB0ZXN0IGluZGlyZWN0bHkgZGVwZW5kcyBvbiIiIgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKworICAgICAgICAgICAgZml4M19pbnN0YW50aWF0ZWQgPSBGYWxzZQorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmaXgxKGZpeDIpOgorICAg
ICAgICAgICAgICAgcmV0dXJuIGZpeDIgKyAnMScKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCisgICAgICAgICAgICBkZWYgZml4MihmaXgzKToKKyAgICAgICAgICAgICAgIHJldHVybiBm
aXgzICsgJzInCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVm
IGZpeDMoKToKKyAgICAgICAgICAgICAgIGdsb2JhbCBmaXgzX2luc3RhbnRpYXRlZAorICAgICAg
ICAgICAgICAgZml4M19pbnN0YW50aWF0ZWQgPSBUcnVlCisgICAgICAgICAgICAgICByZXR1cm4g
JzMnCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZml4MicsIFsnMidd
KQorICAgICAgICAgICAgZGVmIHRlc3RfaXQoZml4MSk6CisgICAgICAgICAgICAgICBhc3NlcnQg
Zml4MSA9PSAnMjEnCisgICAgICAgICAgICAgICBhc3NlcnQgbm90IGZpeDNfaW5zdGFudGlhdGVk
CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bigpCisgICAgICAgIHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCiAgICAgZGVmIHRlc3Rf
cGFyYW1ldHJpemVfd2l0aF9tYXJrKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBpdGVtcyA9IHRl
c3RkaXIuZ2V0aXRlbXMoCiAgICAgICAgICAgICAiIiIKQEAgLTY0Miw3ICs0ODQsNyBAQCBjbGFz
cyBUZXN0RnVuY3Rpb24ob2JqZWN0KToKICAgICAgICAgICAgIEBweXRlc3QubWFyay5mb28KICAg
ICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnYXJnJywgWwogICAgICAgICAgICAg
ICAgIDEsCi0gICAgICAgICAgICAgICAgcHl0ZXN0Lm1hcmsuYmFyKHB5dGVzdC5tYXJrLmJheigy
KSkKKyAgICAgICAgICAgICAgICBweXRlc3QucGFyYW0oMiwgbWFya3M9W3B5dGVzdC5tYXJrLmJh
eiwgcHl0ZXN0Lm1hcmsuYmFyXSkKICAgICAgICAgICAgIF0pCiAgICAgICAgICAgICBkZWYgdGVz
dF9mdW5jdGlvbihhcmcpOgogICAgICAgICAgICAgICAgIHBhc3MKQEAgLTY3MywxMiArNTE1LDEw
IEBAIGNsYXNzIFRlc3RGdW5jdGlvbihvYmplY3QpOgogICAgICAgICBjb25maWcgPSBpdGVtLmNv
bmZpZwogCiAgICAgICAgIGNsYXNzIE15UGx1Z2luMShvYmplY3QpOgotCiAgICAgICAgICAgICBk
ZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHNlbGYsIHB5ZnVuY2l0ZW0pOgogICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IKIAogICAgICAgICBjbGFzcyBNeVBsdWdpbjIob2JqZWN0KToKLQog
ICAgICAgICAgICAgZGVmIHB5dGVzdF9weWZ1bmNfY2FsbChzZWxmLCBweWZ1bmNpdGVtKToKICAg
ICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCkBAIC03MjIsNyArNTYyLDYgQEAgY2xhc3MgVGVz
dEZ1bmN0aW9uKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBjb2xpdGVtc1syXS5uYW1lID09ICJ0
ZXN0MlthLWNdIgogICAgICAgICBhc3NlcnQgY29saXRlbXNbM10ubmFtZSA9PSAidGVzdDJbYi1j
XSIKIAotICAgIEBpZ25vcmVfcGFyYW1ldHJpemVkX21hcmtzCiAgICAgZGVmIHRlc3RfcGFyYW1l
dHJpemVfc2tpcGlmKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CiAgICAgICAgICAgICAiIiIKQEAgLTczMCwxNSArNTY5LDE0IEBAIGNsYXNzIFRlc3RGdW5jdGlv
bihvYmplY3QpOgogCiAgICAgICAgICAgICBtID0gcHl0ZXN0Lm1hcmsuc2tpcGlmKCdUcnVlJykK
IAotICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4JywgWzAsIDEsIG0oMild
KQorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4JywgWzAsIDEsIHB5dGVz
dC5wYXJhbSgyLCBtYXJrcz1tKV0pCiAgICAgICAgICAgICBkZWYgdGVzdF9za2lwX2lmKHgpOgog
ICAgICAgICAgICAgICAgIGFzc2VydCB4IDwgMgogICAgICAgICAiIiIKICAgICAgICAgKQogICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcygiKiAyIHBhc3NlZCwgMSBza2lwcGVkIGluICoiKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDIgcGFzc2VkLCAxIHNraXBwZWQgaW4gKiJdKQog
Ci0gICAgQGlnbm9yZV9wYXJhbWV0cml6ZWRfbWFya3MKICAgICBkZWYgdGVzdF9wYXJhbWV0cml6
ZV9za2lwKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAg
ICAgICAgICAiIiIKQEAgLTc0NiwxNSArNTg0LDE0IEBAIGNsYXNzIFRlc3RGdW5jdGlvbihvYmpl
Y3QpOgogCiAgICAgICAgICAgICBtID0gcHl0ZXN0Lm1hcmsuc2tpcCgnJykKIAotICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4JywgWzAsIDEsIG0oMildKQorICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4JywgWzAsIDEsIHB5dGVzdC5wYXJhbSgyLCBt
YXJrcz1tKV0pCiAgICAgICAgICAgICBkZWYgdGVzdF9za2lwKHgpOgogICAgICAgICAgICAgICAg
IGFzc2VydCB4IDwgMgogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygi
KiAyIHBhc3NlZCwgMSBza2lwcGVkIGluICoiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqIDIgcGFzc2VkLCAxIHNraXBwZWQgaW4gKiJdKQogCi0gICAgQGlnbm9yZV9w
YXJhbWV0cml6ZWRfbWFya3MKICAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9za2lwaWZfbm9fc2tp
cChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAg
ICAgIiIiCkBAIC03NjgsOSArNjA1LDggQEAgY2xhc3MgVGVzdEZ1bmN0aW9uKG9iamVjdCk6CiAg
ICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqIDEgZmFpbGVkLCAyIHBh
c3NlZCBpbiAqIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAxIGZh
aWxlZCwgMiBwYXNzZWQgaW4gKiJdKQogCi0gICAgQGlnbm9yZV9wYXJhbWV0cml6ZWRfbWFya3MK
ICAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV94ZmFpbChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC03NzgsMTUgKzYxNCwxNCBA
QCBjbGFzcyBUZXN0RnVuY3Rpb24ob2JqZWN0KToKIAogICAgICAgICAgICAgbSA9IHB5dGVzdC5t
YXJrLnhmYWlsKCdUcnVlJykKIAotICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCd4JywgWzAsIDEsIG0oMildKQorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCd4JywgWzAsIDEsIHB5dGVzdC5wYXJhbSgyLCBtYXJrcz1tKV0pCiAgICAgICAgICAgICBkZWYg
dGVzdF94ZmFpbCh4KToKICAgICAgICAgICAgICAgICBhc3NlcnQgeCA8IDIKICAgICAgICAgIiIi
CiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiogMiBwYXNzZWQsIDEgeGZhaWxlZCBpbiAq
IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAyIHBhc3NlZCwgMSB4
ZmFpbGVkIGluICoiXSkKIAotICAgIEBpZ25vcmVfcGFyYW1ldHJpemVkX21hcmtzCiAgICAgZGVm
IHRlc3RfcGFyYW1ldHJpemVfcGFzc2VkKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTc5NCwxNSArNjI5LDE0IEBAIGNsYXNz
IFRlc3RGdW5jdGlvbihvYmplY3QpOgogCiAgICAgICAgICAgICBtID0gcHl0ZXN0Lm1hcmsueGZh
aWwoJ1RydWUnKQogCi0gICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3gnLCBb
MCwgMSwgbSgyKV0pCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3gnLCBb
MCwgMSwgcHl0ZXN0LnBhcmFtKDIsIG1hcmtzPW0pXSkKICAgICAgICAgICAgIGRlZiB0ZXN0X3hm
YWlsKHgpOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgIiIiCiAgICAgICAgICkKICAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoIiogMiBwYXNzZWQsIDEgeHBhc3NlZCBpbiAqIikKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAyIHBhc3NlZCwgMSB4cGFzc2VkIGluICoiXSkK
IAotICAgIEBpZ25vcmVfcGFyYW1ldHJpemVkX21hcmtzCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJp
emVfeGZhaWxfcGFzc2VkKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCiAgICAgICAgICAgICAiIiIKQEAgLTgxNiw3ICs2NTAsNyBAQCBjbGFzcyBUZXN0RnVuY3Rp
b24ob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiog
MyBwYXNzZWQgaW4gKiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiog
MyBwYXNzZWQgaW4gKiJdKQogCiAgICAgZGVmIHRlc3RfZnVuY3Rpb25fb3JpZ2luYWxfbmFtZShz
ZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgaXRlbXMgPSB0ZXN0ZGlyLmdldGl0ZW1zKApAQCAtODMx
LDcgKzY2NSw2IEBAIGNsYXNzIFRlc3RGdW5jdGlvbihvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RT
b3J0aW5nKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9jaGVja19lcXVhbGl0eShzZWxmLCB0ZXN0
ZGlyKToKICAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woCiAgICAgICAgICAg
ICAiIiIKQEAgLTg4Niw3ICs3MTksNiBAQCBjbGFzcyBUZXN0U29ydGluZyhvYmplY3QpOgogCiAK
IGNsYXNzIFRlc3RDb25mdGVzdEN1c3RvbWl6YXRpb24ob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0
X3B5dGVzdF9weWNvbGxlY3RfbW9kdWxlKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGly
Lm1ha2Vjb25mdGVzdCgKICAgICAgICAgICAgICIiIgpAQCAtOTA2LDIzICs3MzgsMjMgQEAgY2xh
c3MgVGVzdENvbmZ0ZXN0Q3VzdG9taXphdGlvbihvYmplY3QpOgogICAgIGRlZiB0ZXN0X2N1c3Rv
bWl6ZWRfcHltYWtlbW9kdWxlX2lzc3VlMjA1X3N1YmRpcihzZWxmLCB0ZXN0ZGlyKToKICAgICAg
ICAgYiA9IHRlc3RkaXIubWtkaXIoImEiKS5ta2RpcigiYiIpCiAgICAgICAgIGIuam9pbigiY29u
ZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAorICAg
ICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAgICAgQHB5dGVzdC5ob29raW1wbCho
b29rd3JhcHBlcj1UcnVlKQorICAgICAgICAgICAgICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21h
a2Vtb2R1bGUoKToKKyAgICAgICAgICAgICAgICAgICAgb3V0Y29tZSA9IHlpZWxkCisgICAgICAg
ICAgICAgICAgICAgIG1vZCA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCisgICAgICAgICAgICAgICAg
ICAgIG1vZC5vYmouaGVsbG8gPSAid29ybGQiCiAgICAgICAgICAgICAgICAgIiIiCi0gICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFw
cGVyPVRydWUpCi0gICAgICAgICAgICBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlKCk6
Ci0gICAgICAgICAgICAgICAgb3V0Y29tZSA9IHlpZWxkCi0gICAgICAgICAgICAgICAgbW9kID0g
b3V0Y29tZS5nZXRfcmVzdWx0KCkKLSAgICAgICAgICAgICAgICBtb2Qub2JqLmhlbGxvID0gIndv
cmxkIgotICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICBiLmpv
aW4oInRlc3RfbW9kdWxlLnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNv
dXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJc
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0IGhlbGxvID09ICJ3b3JsZCIKICAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGRlZiB0ZXN0X2hlbGxvKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGhlbGxvID09ICJ3b3Js
ZCIKLSAgICAgICAgIiIiCiAgICAgICAgICAgICApCiAgICAgICAgICkKICAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKQEAgLTkzMSwzMSArNzYzLDMxIEBAIGNsYXNzIFRlc3RD
b25mdGVzdEN1c3RvbWl6YXRpb24ob2JqZWN0KToKICAgICBkZWYgdGVzdF9jdXN0b21pemVkX3B5
bWFrZWl0ZW0oc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIGIgPSB0ZXN0ZGlyLm1rZGlyKCJhIiku
bWtkaXIoImIiKQogICAgICAgICBiLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAg
ICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgK
KyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICAgICAg
ICAgICAgICBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbSgpOgorICAgICAgICAgICAgICAg
ICAgICBvdXRjb21lID0geWllbGQKKyAgICAgICAgICAgICAgICAgICAgaWYgb3V0Y29tZS5leGNp
bmZvIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBvdXRjb21lLmdl
dF9yZXN1bHQoKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmVzdWx0OgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvciBmdW5jIGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuYy5fc29tZTEyMyA9ICJ3b3JsZCIKICAgICAgICAgICAgICAgICAi
IiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuaG9va2lt
cGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21h
a2VpdGVtKCk6Ci0gICAgICAgICAgICAgICAgb3V0Y29tZSA9IHlpZWxkCi0gICAgICAgICAgICAg
ICAgaWYgb3V0Y29tZS5leGNpbmZvIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCi0gICAgICAgICAgICAgICAgICAgIGlmIHJlc3VsdDoK
LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBmdW5jIGluIHJlc3VsdDoKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmdW5jLl9zb21lMTIzID0gIndvcmxkIgotICAgICAgICAiIiIKICAg
ICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICBiLmpvaW4oInRlc3RfbW9kdWxlLnB5Iiku
d3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKLSAgICAgICAgICAgICAg
ICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHRleHR3cmFwLmRl
ZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAogCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQotICAgICAgICAgICAgZGVmIG9iaihy
ZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5ub2RlLl9zb21lMTIzCi0g
ICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhvYmopOgotICAgICAgICAgICAgICAgIGFzc2VydCBv
YmogPT0gIndvcmxkIgotICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoKQorICAgICAgICAgICAgICAgIGRlZiBvYmoocmVxdWVzdCk6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiByZXF1ZXN0Lm5vZGUuX3NvbWUxMjMKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF9oZWxsbyhvYmopOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgb2JqID09ICJ3b3JsZCIK
KyAgICAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICBy
ZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQpAQCAtOTgwLDcgKzgxMiw3IEBAIGNsYXNzIFRl
c3RDb25mdGVzdEN1c3RvbWl6YXRpb24ob2JqZWN0KToKICAgICAgICAgbW9kY29sID0gdGVzdGRp
ci5nZXRtb2R1bGVjb2woImRlZiBfaGVsbG8oKTogcGFzcyIpCiAgICAgICAgIHZhbHVlcyA9IFtd
CiAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoCi0gICAgICAgICAgICBweXRlc3QuTW9kdWxl
LCAibWFrZWl0ZW0iLCBsYW1iZGEgc2VsZiwgbmFtZSwgb2JqOiB2YWx1ZXMuYXBwZW5kKG5hbWUp
CisgICAgICAgICAgICBweXRlc3QuTW9kdWxlLCAiX21ha2VpdGVtIiwgbGFtYmRhIHNlbGYsIG5h
bWUsIG9iajogdmFsdWVzLmFwcGVuZChuYW1lKQogICAgICAgICApCiAgICAgICAgIHZhbHVlcyA9
IG1vZGNvbC5jb2xsZWN0KCkKICAgICAgICAgYXNzZXJ0ICJfaGVsbG8iIG5vdCBpbiB2YWx1ZXMK
QEAgLTEwMTAsNDIgKzg0Miw0MiBAQCBjbGFzcyBUZXN0Q29uZnRlc3RDdXN0b21pemF0aW9uKG9i
amVjdCk6CiAgICAgICAgICkKICAgICAgICAgdGVzdGRpci5tYWtlZmlsZSgKICAgICAgICAgICAg
ICIubmFyZiIsCi0gICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIlwKICAgICAgICAgICAg
IGRlZiB0ZXN0X3NvbWV0aGluZygpOgogICAgICAgICAgICAgICAgIGFzc2VydCAxICsgMSA9PSAy
IiIiLAogICAgICAgICApCiAgICAgICAgICMgVXNlIHJ1bnB5dGVzdF9zdWJwcm9jZXNzLCBzaW5j
ZSB3ZSdyZSBmdXR6aW5nIHdpdGggc3lzLm1ldGFfcGF0aC4KICAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcygiKjEgcGFzc2VkKiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbIioxIHBhc3NlZCoiXSkKIAogCiBkZWYgdGVzdF9zZXR1cF9vbmx5X2F2YWlsYWJsZV9pbl9z
dWJkaXIodGVzdGRpcik6CiAgICAgc3ViMSA9IHRlc3RkaXIubWtweWRpcigic3ViMSIpCiAgICAg
c3ViMiA9IHRlc3RkaXIubWtweWRpcigic3ViMiIpCiAgICAgc3ViMS5qb2luKCJjb25mdGVzdC5w
eSIpLndyaXRlKAotICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgdGV4dHdy
YXAuZGVkZW50KAorICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgorICAgICAgICAgICAg
ICAgIGFzc2VydCBpdGVtLmZzcGF0aC5wdXJlYmFzZW5hbWUgPT0gInRlc3RfaW5fc3ViMSIKKyAg
ICAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9jYWxsKGl0ZW0pOgorICAgICAgICAgICAgICAg
IGFzc2VydCBpdGVtLmZzcGF0aC5wdXJlYmFzZW5hbWUgPT0gInRlc3RfaW5fc3ViMSIKKyAgICAg
ICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF90ZWFyZG93bihpdGVtKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0X2luX3N1YjEiCiAgICAg
ICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICBkZWYgcHl0ZXN0X3J1
bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgICAgICAgICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJh
c2VuYW1lID09ICJ0ZXN0X2luX3N1YjEiCi0gICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9jYWxs
KGl0ZW0pOgotICAgICAgICAgICAgYXNzZXJ0IGl0ZW0uZnNwYXRoLnB1cmViYXNlbmFtZSA9PSAi
dGVzdF9pbl9zdWIxIgotICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRlbSk6
Ci0gICAgICAgICAgICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0X2lu
X3N1YjEiCi0gICAgIiIiCiAgICAgICAgICkKICAgICApCiAgICAgc3ViMi5qb2luKCJjb25mdGVz
dC5weSIpLndyaXRlKAotICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgdGV4
dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgorICAgICAgICAg
ICAgICAgIGFzc2VydCBpdGVtLmZzcGF0aC5wdXJlYmFzZW5hbWUgPT0gInRlc3RfaW5fc3ViMiIK
KyAgICAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9jYWxsKGl0ZW0pOgorICAgICAgICAgICAg
ICAgIGFzc2VydCBpdGVtLmZzcGF0aC5wdXJlYmFzZW5hbWUgPT0gInRlc3RfaW5fc3ViMiIKKyAg
ICAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF90ZWFyZG93bihpdGVtKToKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0X2luX3N1YjIiCiAg
ICAgICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICBkZWYgcHl0ZXN0
X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgICAgICAgICBhc3NlcnQgaXRlbS5mc3BhdGgucHVy
ZWJhc2VuYW1lID09ICJ0ZXN0X2luX3N1YjIiCi0gICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9j
YWxsKGl0ZW0pOgotICAgICAgICAgICAgYXNzZXJ0IGl0ZW0uZnNwYXRoLnB1cmViYXNlbmFtZSA9
PSAidGVzdF9pbl9zdWIyIgotICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRl
bSk6Ci0gICAgICAgICAgICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0
X2luX3N1YjIiCi0gICAgIiIiCiAgICAgICAgICkKICAgICApCiAgICAgc3ViMS5qb2luKCJ0ZXN0
X2luX3N1YjEucHkiKS53cml0ZSgiZGVmIHRlc3RfMSgpOiBwYXNzIikKQEAgLTEwNTUsMTYgKzg4
NywxNiBAQCBkZWYgdGVzdF9zZXR1cF9vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIodGVzdGRpcik6
CiAKIAogZGVmIHRlc3RfbW9kdWxlY29sX3JvdW5kdHJpcCh0ZXN0ZGlyKToKLSAgICBtb2Rjb2wg
PSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgicGFzcyIsIHdpdGhpbml0PVRydWUpCisgICAgbW9kY29s
ID0gdGVzdGRpci5nZXRtb2R1bGVjb2woInBhc3MiLCB3aXRoaW5pdD1GYWxzZSkKICAgICB0cmFp
bCA9IG1vZGNvbC5ub2RlaWQKICAgICBuZXdjb2wgPSBtb2Rjb2wuc2Vzc2lvbi5wZXJmb3JtX2Nv
bGxlY3QoW3RyYWlsXSwgZ2VuaXRlbXM9MClbMF0KICAgICBhc3NlcnQgbW9kY29sLm5hbWUgPT0g
bmV3Y29sLm5hbWUKIAogCiBjbGFzcyBUZXN0VHJhY2ViYWNrQ3V0dGluZyhvYmplY3QpOgotCiAg
ICAgZGVmIHRlc3Rfc2tpcF9zaW1wbGUoc2VsZik6Ci0gICAgICAgIGV4Y2luZm8gPSBweXRlc3Qu
cmFpc2VzKHB5dGVzdC5za2lwLkV4Y2VwdGlvbiwgJ3B5dGVzdC5za2lwKCJ4eHgiKScpCisgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3Quc2tpcC5FeGNlcHRpb24pIGFzIGV4Y2luZm86
CisgICAgICAgICAgICBweXRlc3Quc2tpcCgieHh4IikKICAgICAgICAgYXNzZXJ0IGV4Y2luZm8u
dHJhY2ViYWNrWy0xXS5mcmFtZS5jb2RlLm5hbWUgPT0gInNraXAiCiAgICAgICAgIGFzc2VydCBl
eGNpbmZvLnRyYWNlYmFja1stMV0uaXNoaWRkZW4oKQogCkBAIC0xMTQzLDcgKzk3NSw3IEBAIGNs
YXNzIFRlc3RUcmFjZWJhY2tDdXR0aW5nKG9iamVjdCk6CiAKICAgICBkZWYgdGVzdF9maWx0ZXJf
dHJhY2ViYWNrX2dlbmVyYXRlZF9jb2RlKHNlbGYpOgogICAgICAgICAiIiJ0ZXN0IHRoYXQgZmls
dGVyX3RyYWNlYmFjaygpIHdvcmtzIHdpdGggdGhlIGZhY3QgdGhhdAotICAgICAgICBweS5jb2Rl
LkNvZGUucGF0aCBhdHRyaWJ1dGUgbWlnaHQgcmV0dXJuIGFuIHN0ciBvYmplY3QuCisgICAgICAg
IF9weXRlc3QuX2NvZGUuY29kZS5Db2RlLnBhdGggYXR0cmlidXRlIG1pZ2h0IHJldHVybiBhbiBz
dHIgb2JqZWN0LgogICAgICAgICBJbiB0aGlzIGNhc2UsIG9uZSBvZiB0aGUgZW50cmllcyBvbiB0
aGUgdHJhY2ViYWNrIHdhcyBwcm9kdWNlZCBieQogICAgICAgICBkeW5hbWljYWxseSBnZW5lcmF0
ZWQgY29kZS4KICAgICAgICAgU2VlOiBodHRwczovL2JpdGJ1Y2tldC5vcmcvcHl0ZXN0LWRldi9w
eS9pc3N1ZXMvNzEKQEAgLTExNjQsNyArOTk2LDcgQEAgY2xhc3MgVGVzdFRyYWNlYmFja0N1dHRp
bmcob2JqZWN0KToKIAogICAgIGRlZiB0ZXN0X2ZpbHRlcl90cmFjZWJhY2tfcGF0aF9ub19sb25n
ZXJfdmFsaWQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgICIiInRlc3QgdGhhdCBmaWx0ZXJfdHJh
Y2ViYWNrKCkgd29ya3Mgd2l0aCB0aGUgZmFjdCB0aGF0Ci0gICAgICAgIHB5LmNvZGUuQ29kZS5w
YXRoIGF0dHJpYnV0ZSBtaWdodCByZXR1cm4gYW4gc3RyIG9iamVjdC4KKyAgICAgICAgX3B5dGVz
dC5fY29kZS5jb2RlLkNvZGUucGF0aCBhdHRyaWJ1dGUgbWlnaHQgcmV0dXJuIGFuIHN0ciBvYmpl
Y3QuCiAgICAgICAgIEluIHRoaXMgY2FzZSwgb25lIG9mIHRoZSBmaWxlcyBpbiB0aGUgdHJhY2Vi
YWNrIG5vIGxvbmdlciBleGlzdHMuCiAgICAgICAgIFRoaXMgZml4ZXMgIzExMzMuCiAgICAgICAg
ICIiIgpAQCAtMTE5MSw3ICsxMDIzLDYgQEAgY2xhc3MgVGVzdFRyYWNlYmFja0N1dHRpbmcob2Jq
ZWN0KToKIAogCiBjbGFzcyBUZXN0UmVwb3J0SW5mbyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3Rf
aXRlbXJlcG9ydF9yZXBvcnRpbmZvKHNlbGYsIHRlc3RkaXIsIGxpbmVjb21wKToKICAgICAgICAg
dGVzdGRpci5tYWtlY29uZnRlc3QoCiAgICAgICAgICAgICAiIiIKQEAgLTEyMjksMzkgKzEwNjAs
OSBAQCBjbGFzcyBUZXN0UmVwb3J0SW5mbyhvYmplY3QpOgogICAgICAgICBhc3NlcnQgbGluZW5v
ID09IDEKICAgICAgICAgYXNzZXJ0IG1zZyA9PSAiVGVzdENsYXNzIgogCi0gICAgZGVmIHRlc3Rf
Z2VuZXJhdG9yX3JlcG9ydGluZm8oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIG1vZGNvbCA9IHRl
c3RkaXIuZ2V0bW9kdWxlY29sKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAjIGxpbmVu
byAwCi0gICAgICAgICAgICBkZWYgdGVzdF9nZW4oKToKLSAgICAgICAgICAgICAgICBkZWYgY2hl
Y2soeCk6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCB4Ci0gICAgICAgICAgICAgICAgeWll
bGQgY2hlY2ssIDMKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgZ2VuY29sID0gdGVz
dGRpci5jb2xsZWN0X2J5X25hbWUobW9kY29sLCAidGVzdF9nZW4iKQotICAgICAgICBmc3BhdGgs
IGxpbmVubywgbW9kcGF0aCA9IGdlbmNvbC5yZXBvcnRpbmZvKCkKLSAgICAgICAgYXNzZXJ0IGZz
cGF0aCA9PSBtb2Rjb2wuZnNwYXRoCi0gICAgICAgIGFzc2VydCBsaW5lbm8gPT0gMQotICAgICAg
ICBhc3NlcnQgbW9kcGF0aCA9PSAidGVzdF9nZW4iCi0KLSAgICAgICAgZ2VuaXRlbSA9IGdlbmNv
bC5jb2xsZWN0KClbMF0KLSAgICAgICAgZnNwYXRoLCBsaW5lbm8sIG1vZHBhdGggPSBnZW5pdGVt
LnJlcG9ydGluZm8oKQotICAgICAgICBhc3NlcnQgZnNwYXRoID09IG1vZGNvbC5mc3BhdGgKLSAg
ICAgICAgYXNzZXJ0IGxpbmVubyA9PSAyCi0gICAgICAgIGFzc2VydCBtb2RwYXRoID09ICJ0ZXN0
X2dlblswXSIKLSAgICAgICAgIiIiCi0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6Ci0gICAg
ICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZGVmIHRlc3RfZ2VuZnVuYygpOgotICAgICAg
ICAgICAgICAgIGRlZiBjaGVjayh4KToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAg
ICAgICAgICAgIHlpZWxkIGNoZWNrLCAzCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2Jq
ZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6Ci0gICAgICAgICAg
ICAgICAgICAgIHBhc3MKLSAgICAgICAiIiIKLQorICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJu
aW5ncygKKyAgICAgICAgImlnbm9yZTp1c2FnZSBvZiBHZW5lcmF0b3IuRnVuY3Rpb24gaXMgZGVw
cmVjYXRlZCwgcGxlYXNlIHVzZSBweXRlc3QuRnVuY3Rpb24gaW5zdGVhZCIKKyAgICApCiAgICAg
ZGVmIHRlc3RfcmVwb3J0aW5mb193aXRoX25hc3R5X2dldGF0dHIoc2VsZiwgdGVzdGRpcik6CiAg
ICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMjA0
CiAgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKApAQCAtMTMzMSw1NiArMTEz
Miw2IEBAIGRlZiB0ZXN0X2N1c3RvbWl6ZWRfcHl0aG9uX2Rpc2NvdmVyeV9mdW5jdGlvbnModGVz
dGRpcik6CiAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQog
CiAKLWRlZiB0ZXN0X2NvbGxlY3Rvcl9hdHRyaWJ1dGVzKHRlc3RkaXIpOgotICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KAotICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAg
ICBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbShjb2xsZWN0b3IpOgotICAgICAgICAgICAg
YXNzZXJ0IGNvbGxlY3Rvci5GdW5jdGlvbiA9PSBweXRlc3QuRnVuY3Rpb24KLSAgICAgICAgICAg
IGFzc2VydCBjb2xsZWN0b3IuQ2xhc3MgPT0gcHl0ZXN0LkNsYXNzCi0gICAgICAgICAgICBhc3Nl
cnQgY29sbGVjdG9yLkluc3RhbmNlID09IHB5dGVzdC5JbnN0YW5jZQotICAgICAgICAgICAgYXNz
ZXJ0IGNvbGxlY3Rvci5Nb2R1bGUgPT0gcHl0ZXN0Lk1vZHVsZQotICAgICIiIgotICAgICkKLSAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICIiIgotICAgICAgICAgZGVmIHRlc3RfaGVs
bG8oKToKLSAgICAgICAgICAgIHBhc3MKLSAgICAiIiIKLSAgICApCi0gICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBh
c3NlZCoiXSkKLQotCi1kZWYgdGVzdF9jdXN0b21pemVfdGhyb3VnaF9hdHRyaWJ1dGVzKHRlc3Rk
aXIpOgotICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAiIiIKLSAgICAgICAgaW1w
b3J0IHB5dGVzdAotICAgICAgICBjbGFzcyBNeUZ1bmN0aW9uKHB5dGVzdC5GdW5jdGlvbik6Ci0g
ICAgICAgICAgICBwYXNzCi0gICAgICAgIGNsYXNzIE15SW5zdGFuY2UocHl0ZXN0Lkluc3RhbmNl
KToKLSAgICAgICAgICAgIEZ1bmN0aW9uID0gTXlGdW5jdGlvbgotICAgICAgICBjbGFzcyBNeUNs
YXNzKHB5dGVzdC5DbGFzcyk6Ci0gICAgICAgICAgICBJbnN0YW5jZSA9IE15SW5zdGFuY2UKLQot
ICAgICAgICBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbShjb2xsZWN0b3IsIG5hbWUsIG9i
aik6Ci0gICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoIk15VGVzdENsYXNzIik6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIE15Q2xhc3MobmFtZSwgcGFyZW50PWNvbGxlY3RvcikKLSAgICAi
IiIKLSAgICApCi0gICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAiIiIKLSAgICAgICAg
IGNsYXNzIE15VGVzdENsYXNzKG9iamVjdCk6Ci0gICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhz
ZWxmKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgIiIiCi0gICAgKQotICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIpCi0gICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKAotICAgICAgICBbIipNeUNsYXNzKiIsICIqTXlJbnN0YW5jZSoiLCAiKk15
RnVuY3Rpb24qdGVzdF9oZWxsbyoiXQotICAgICkKLQotCiBkZWYgdGVzdF91bm9yZGVyYWJsZV90
eXBlcyh0ZXN0ZGlyKToKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgpAQCAt
MTQ0Niw2ICsxMTk3LDcgQEAgZGVmIHRlc3RfY29sbGVjdF9mdW5jdG9vbHNfcGFydGlhbCh0ZXN0
ZGlyKToKICAgICByZXN1bHQuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NiwgZmFpbGVkPTIpCiAKIAor
QHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJkZWZhdWx0IikKIGRlZiB0ZXN0X2RvbnRfY29s
bGVjdF9ub25fZnVuY3Rpb25fY2FsbGFibGUodGVzdGRpcik6CiAgICAgIiIiVGVzdCBmb3IgaXNz
dWUgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMzEKIApAQCAt
MTQ2OCw3ICsxMjIwLDcgQEAgZGVmIHRlc3RfZG9udF9jb2xsZWN0X25vbl9mdW5jdGlvbl9jYWxs
YWJsZSh0ZXN0ZGlyKToKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAg
IFsKICAgICAgICAgICAgICIqY29sbGVjdGVkIDEgaXRlbSoiLAotICAgICAgICAgICAgIipjYW5u
b3QgY29sbGVjdCAndGVzdF9hJyBiZWNhdXNlIGl0IGlzIG5vdCBhIGZ1bmN0aW9uKiIsCisgICAg
ICAgICAgICAiKnRlc3RfZG9udF9jb2xsZWN0X25vbl9mdW5jdGlvbl9jYWxsYWJsZS5weToyOiAq
Y2Fubm90IGNvbGxlY3QgJ3Rlc3RfYScgYmVjYXVzZSBpdCBpcyBub3QgYSBmdW5jdGlvbioiLAog
ICAgICAgICAgICAgIioxIHBhc3NlZCwgMSB3YXJuaW5ncyBpbiAqIiwKICAgICAgICAgXQogICAg
ICkKQEAgLTE0OTcsNyArMTI0OSwxMCBAQCBkZWYgdGVzdF9jbGFzc19pbmplY3Rpb25fZG9lc19u
b3RfYnJlYWtfY29sbGVjdGlvbih0ZXN0ZGlyKToKICAgICAnJycKICAgICApCiAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgIGFzc2VydCAiUnVudGltZUVycm9yOiBkaWN0aW9u
YXJ5IGNoYW5nZWQgc2l6ZSBkdXJpbmcgaXRlcmF0aW9uIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5z
dHIoKQorICAgIGFzc2VydCAoCisgICAgICAgICJSdW50aW1lRXJyb3I6IGRpY3Rpb25hcnkgY2hh
bmdlZCBzaXplIGR1cmluZyBpdGVyYXRpb24iCisgICAgICAgIG5vdCBpbiByZXN1bHQuc3Rkb3V0
LnN0cigpCisgICAgKQogICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3Nl
ZCoiXSkKIAogCkBAIC0xNTA2LDcgKzEyNjEsNyBAQCBkZWYgdGVzdF9zeW50YXhfZXJyb3Jfd2l0
aF9ub25fYXNjaWlfY2hhcnModGVzdGRpcik6CiAgICAgIiIiCiAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAogICAgICAgICB1IiIiCi0gICAgIyAtKi0gY29kaW5nOiBVVEYtOCAtKi0KKyAgICAjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQogCiAgICAg4piDCiAgICAgIiIiCkBAIC0xNTIzLDEyICsxMjc4
LDEyIEBAIGRlZiB0ZXN0X3NraXBfZHVwbGljYXRlc19ieV9kZWZhdWx0KHRlc3RkaXIpOgogICAg
IGEgPSB0ZXN0ZGlyLm1rZGlyKCJhIikKICAgICBmaCA9IGEuam9pbigidGVzdF9hLnB5IikKICAg
ICBmaC53cml0ZSgKLSAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3VyY2UoCisgICAgICAgIHRleHR3
cmFwLmRlZGVudCgKKyAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIGRlZiB0ZXN0X3JlYWwoKToKKyAgICAgICAgICAgICAgICBwYXNzCiAgICAg
ICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICBkZWYgdGVzdF9yZWFs
KCk6Ci0gICAgICAgICAgICBwYXNzCi0gICAgIiIiCiAgICAgICAgICkKICAgICApCiAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoYS5zdHJwYXRoLCBhLnN0cnBhdGgpCkBAIC0xNTQzLDEz
ICsxMjk4LDEwMSBAQCBkZWYgdGVzdF9rZWVwX2R1cGxpY2F0ZXModGVzdGRpcik6CiAgICAgYSA9
IHRlc3RkaXIubWtkaXIoImEiKQogICAgIGZoID0gYS5qb2luKCJ0ZXN0X2EucHkiKQogICAgIGZo
LndyaXRlKAotICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgdGV4dHdyYXAu
ZGVkZW50KAorICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgZGVmIHRlc3RfcmVhbCgpOgorICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAg
ICAgICIiIgotICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgIGRlZiB0ZXN0X3JlYWwoKToK
LSAgICAgICAgICAgIHBhc3MKLSAgICAiIiIKICAgICAgICAgKQogICAgICkKICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1rZWVwLWR1cGxpY2F0ZXMiLCBhLnN0cnBhdGgsIGEuc3Ry
cGF0aCkKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqY29sbGVjdGVkIDIgaXRl
bSoiXSkKKworCitkZWYgdGVzdF9wYWNrYWdlX2NvbGxlY3Rpb25faW5maW5pdGVfcmVjdXJzaW9u
KHRlc3RkaXIpOgorICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCJjb2xsZWN0L3BhY2thZ2VfaW5m
aW5pdGVfcmVjdXJzaW9uIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorCisKK2RlZiB0ZXN0
X3BhY2thZ2VfY29sbGVjdGlvbl9pbml0X2dpdmVuX2FzX2FyZ3VtZW50KHRlc3RkaXIpOgorICAg
ICIiIlJlZ3Jlc3Npb24gdGVzdCBmb3IgIzM3NDkiIiIKKyAgICBwID0gdGVzdGRpci5jb3B5X2V4
YW1wbGUoImNvbGxlY3QvcGFja2FnZV9pbml0X2dpdmVuX2FzX2FyZyIpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QocCAvICJwa2ciIC8gIl9faW5pdF9fLnB5IikKKyAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKworZGVmIHRlc3RfcGFja2Fn
ZV93aXRoX21vZHVsZXModGVzdGRpcik6CisgICAgIiIiCisgICAgLgorICAgIOKUlOKUgOKUgCBy
b290CisgICAgICAgIOKUnOKUgOKUgCBfX2luaXRfXy5weQorICAgICAgICDilJzilIDilIAgc3Vi
MQorICAgICAgICDilIIgICDilJzilIDilIAgX19pbml0X18ucHkKKyAgICAgICAg4pSCICAg4pSU
4pSA4pSAIHN1YjFfMQorICAgICAgICDilIIgICAgICAg4pSc4pSA4pSAIF9faW5pdF9fLnB5Cisg
ICAgICAgIOKUgiAgICAgICDilJTilIDilIAgdGVzdF9pbl9zdWIxLnB5CisgICAgICAgIOKUlOKU
gOKUgCBzdWIyCisgICAgICAgICAgICDilJTilIDilIAgdGVzdAorICAgICAgICAgICAgICAgIOKU
lOKUgOKUgCB0ZXN0X2luX3N1YjIucHkKKworICAgICIiIgorICAgIHJvb3QgPSB0ZXN0ZGlyLm1r
cHlkaXIoInJvb3QiKQorICAgIHN1YjEgPSByb290Lm1rZGlyKCJzdWIxIikKKyAgICBzdWIxLmVu
c3VyZSgiX19pbml0X18ucHkiKQorICAgIHN1YjFfdGVzdCA9IHN1YjEubWtkaXIoInN1YjFfMSIp
CisgICAgc3ViMV90ZXN0LmVuc3VyZSgiX19pbml0X18ucHkiKQorICAgIHN1YjIgPSByb290Lm1r
ZGlyKCJzdWIyIikKKyAgICBzdWIyX3Rlc3QgPSBzdWIyLm1rZGlyKCJzdWIyIikKKworICAgIHN1
YjFfdGVzdC5qb2luKCJ0ZXN0X2luX3N1YjEucHkiKS53cml0ZSgiZGVmIHRlc3RfMSgpOiBwYXNz
IikKKyAgICBzdWIyX3Rlc3Quam9pbigidGVzdF9pbl9zdWIyLnB5Iikud3JpdGUoImRlZiB0ZXN0
XzIoKTogcGFzcyIpCisKKyAgICAjIEV4ZWN1dGUgZnJvbSAuCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi12IiwgIi1zIikKKyAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3Nl
ZD0yKQorCisgICAgIyBFeGVjdXRlIGZyb20gLiB3aXRoIG9uZSBhcmd1bWVudCAicm9vdCIKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCAiLXMiLCAicm9vdCIpCisgICAgcmVz
dWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9MikKKworICAgICMgQ2hkaXIgaW50byBwYWNrYWdl
J3Mgcm9vdCBhbmQgZXhlY3V0ZSB3aXRoIG5vIGFyZ3MKKyAgICByb290LmNoZGlyKCkKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCAiLXMiKQorICAgIHJlc3VsdC5hc3NlcnRf
b3V0Y29tZXMocGFzc2VkPTIpCisKKworZGVmIHRlc3RfcGFja2FnZV9vcmRlcmluZyh0ZXN0ZGly
KToKKyAgICAiIiIKKyAgICAuCisgICAg4pSU4pSA4pSAIHJvb3QKKyAgICAgICAg4pSc4pSA4pSA
IFRlc3Rfcm9vdC5weQorICAgICAgICDilJzilIDilIAgX19pbml0X18ucHkKKyAgICAgICAg4pSc
4pSA4pSAIHN1YjEKKyAgICAgICAg4pSCICAg4pSc4pSA4pSAIFRlc3Rfc3ViMS5weQorICAgICAg
ICDilIIgICDilJTilIDilIAgX19pbml0X18ucHkKKyAgICAgICAg4pSU4pSA4pSAIHN1YjIKKyAg
ICAgICAgICAgIOKUlOKUgOKUgCB0ZXN0CisgICAgICAgICAgICAgICAg4pSU4pSA4pSAIHRlc3Rf
c3ViMi5weQorCisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAiIiIKKyAg
ICAgICAgW3B5dGVzdF0KKyAgICAgICAgcHl0aG9uX2ZpbGVzPSoucHkKKyAgICAiIiIKKyAgICAp
CisgICAgcm9vdCA9IHRlc3RkaXIubWtweWRpcigicm9vdCIpCisgICAgc3ViMSA9IHJvb3QubWtk
aXIoInN1YjEiKQorICAgIHN1YjEuZW5zdXJlKCJfX2luaXRfXy5weSIpCisgICAgc3ViMiA9IHJv
b3QubWtkaXIoInN1YjIiKQorICAgIHN1YjJfdGVzdCA9IHN1YjIubWtkaXIoInN1YjIiKQorCisg
ICAgcm9vdC5qb2luKCJUZXN0X3Jvb3QucHkiKS53cml0ZSgiZGVmIHRlc3RfMSgpOiBwYXNzIikK
KyAgICBzdWIxLmpvaW4oIlRlc3Rfc3ViMS5weSIpLndyaXRlKCJkZWYgdGVzdF8yKCk6IHBhc3Mi
KQorICAgIHN1YjJfdGVzdC5qb2luKCJ0ZXN0X3N1YjIucHkiKS53cml0ZSgiZGVmIHRlc3RfMygp
OiBwYXNzIikKKworICAgICMgRXhlY3V0ZSBmcm9tIC4KKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLXYiLCAiLXMiKQorICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTMp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9maXh0dXJlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9weXRob24vZml4dHVyZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmQyYmI2NjNiNmNkMGE2NzJjNTEzYTc5ZGI2MzlkN2UwNTY4MjQ5Mi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3B5dGhvbi9maXh0dXJlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDAxMSArMCwwIEBACi1m
cm9tIHRleHR3cmFwIGltcG9ydCBkZWRlbnQKLQotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWltcG9y
dCBweXRlc3QKLWZyb20gX3B5dGVzdC5weXRlc3RlciBpbXBvcnQgZ2V0X3B1YmxpY19uYW1lcwot
ZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBGaXh0dXJlTG9va3VwRXJyb3IsIEZpeHR1cmVS
ZXF1ZXN0Ci1mcm9tIF9weXRlc3QgaW1wb3J0IGZpeHR1cmVzCi0KLQotZGVmIHRlc3RfZ2V0ZnVu
Y2FyZ25hbWVzKCk6Ci0KLSAgICBkZWYgZigpOgotICAgICAgICBwYXNzCi0KLSAgICBhc3NlcnQg
bm90IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhmKQotCi0gICAgZGVmIGcoYXJnKToKLSAgICAg
ICAgcGFzcwotCi0gICAgYXNzZXJ0IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhnKSA9PSAoImFy
ZyIsKQotCi0gICAgZGVmIGgoYXJnMSwgYXJnMj0iaGVsbG8iKToKLSAgICAgICAgcGFzcwotCi0g
ICAgYXNzZXJ0IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhoKSA9PSAoImFyZzEiLCkKLQotICAg
IGRlZiBoKGFyZzEsIGFyZzIsIGFyZzM9ImhlbGxvIik6Ci0gICAgICAgIHBhc3MKLQotICAgIGFz
c2VydCBmaXh0dXJlcy5nZXRmdW5jYXJnbmFtZXMoaCkgPT0gKCJhcmcxIiwgImFyZzIiKQotCi0g
ICAgY2xhc3MgQShvYmplY3QpOgotCi0gICAgICAgIGRlZiBmKHNlbGYsIGFyZzEsIGFyZzI9Imhl
bGxvIik6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgQHN0YXRpY21ldGhvZAotICAgICAg
ICBkZWYgc3RhdGljKGFyZzEsIGFyZzIpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgYXNzZXJ0
IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhBKCkuZikgPT0gKCJhcmcxIiwpCi0gICAgYXNzZXJ0
IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhBLnN0YXRpYywgY2xzPUEpID09ICgiYXJnMSIsICJh
cmcyIikKLQotCi1jbGFzcyBUZXN0RmlsbEZpeHR1cmVzKG9iamVjdCk6Ci0KLSAgICBkZWYgdGVz
dF9maWxsZnVuY2FyZ3NfZXhwb3NlZChzZWxmKToKLSAgICAgICAgIyB1c2VkIGJ5IG9lanNraXQs
IGtlcHQgZm9yIGNvbXBhdGliaWxpdHkKLSAgICAgICAgYXNzZXJ0IHB5dGVzdC5fZmlsbGZ1bmNh
cmdzID09IGZpeHR1cmVzLmZpbGxmaXh0dXJlcwotCi0gICAgZGVmIHRlc3RfZnVuY2FyZ19sb29r
dXBmYWlscyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIHh5enNvbWV0aGluZyhyZXF1ZXN0KToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gNDIKLQotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzb21l
KToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkgICMgIi0tY29sbGVjdC1vbmx5IikKLSAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoCi0gICAgICAgICAgICBbIipkZWYgdGVzdF9mdW5jKHNvbWUpKiIsICIqZml4dHVyZSpz
b21lKm5vdCBmb3VuZCoiLCAiKnh5enNvbWV0aGluZyoiXQotICAgICAgICApCi0KLSAgICBkZWYg
dGVzdF9mdW5jYXJnX2Jhc2ljKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBpdGVtID0gdGVzdGRp
ci5nZXRpdGVtKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0K
LSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIHNvbWUocmVxdWVz
dCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18KLSAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIG90aGVyKHJlcXVlc3Qp
OgotICAgICAgICAgICAgICAgIHJldHVybiA0MgotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhz
b21lLCBvdGhlcik6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAg
KQotICAgICAgICBmaXh0dXJlcy5maWxsZml4dHVyZXMoaXRlbSkKLSAgICAgICAgZGVsIGl0ZW0u
ZnVuY2FyZ3NbInJlcXVlc3QiXQotICAgICAgICBhc3NlcnQgbGVuKGdldF9wdWJsaWNfbmFtZXMo
aXRlbS5mdW5jYXJncykpID09IDIKLSAgICAgICAgYXNzZXJ0IGl0ZW0uZnVuY2FyZ3NbInNvbWUi
XSA9PSAidGVzdF9mdW5jIgotICAgICAgICBhc3NlcnQgaXRlbS5mdW5jYXJnc1sib3RoZXIiXSA9
PSA0MgotCi0gICAgZGVmIHRlc3RfZnVuY2FyZ19sb29rdXBfbW9kdWxlbGV2ZWwoc2VsZiwgdGVz
dGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAg
ICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18KLQotICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNz
KG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYsIHNvbWV0aGlu
Zyk6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBzb21ldGhpbmcgPT0gInRlc3RfbWV0aG9k
IgotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzb21ldGhpbmcpOgotICAgICAgICAgICAgICAg
IGFzc2VydCBzb21ldGhpbmcgPT0gInRlc3RfZnVuYyIKLSAgICAgICAgIiIiCi0gICAgICAgICkK
LSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUocGFzc2VkPTIpCi0KLSAgICBkZWYgdGVzdF9mdW5jYXJnX2xvb2t1cF9jbGFz
c2xldmVsKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAot
ICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBj
bGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLQotICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQotICAgICAgICAgICAgICAgIGRlZiBzb21ldGhpbmcoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Lmluc3RhbmNlCi0KLSAgICAgICAgICAgICAgICBk
ZWYgdGVzdF9tZXRob2Qoc2VsZiwgc29tZXRoaW5nKToKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0IHNvbWV0aGluZyBpcyBzZWxmCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbIioxIHBhc3NlZCoiXSkKLQotICAgIGRlZiB0ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdz
X29ubHlfYXZhaWxhYmxlX2luX3N1YmRpcihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgc3ViMSA9
IHRlc3RkaXIubWtweWRpcigic3ViMSIpCi0gICAgICAgIHN1YjIgPSB0ZXN0ZGlyLm1rcHlkaXIo
InN1YjIiKQotICAgICAgICBzdWIxLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAg
ICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAg
ICAgZGVmIGFyZzEocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhFeGNl
cHRpb24sICJyZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgnYXJnMicpIikKLSAgICAgICAgIiIiCi0g
ICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgc3ViMi5qb2luKCJjb25mdGVzdC5weSIp
LndyaXRlKAotICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3VyY2UoCi0gICAgICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKLSAgICAgICAgICAgIGRlZiBhcmcyKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHB5
dGVzdC5yYWlzZXMoRXhjZXB0aW9uLCAicmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoJ2FyZzEnKSIp
Ci0gICAgICAgICIiIgotICAgICAgICAgICAgKQotICAgICAgICApCi0KLSAgICAgICAgc3ViMS5q
b2luKCJ0ZXN0X2luX3N1YjEucHkiKS53cml0ZSgiZGVmIHRlc3RfMShhcmcxKTogcGFzcyIpCi0g
ICAgICAgIHN1YjIuam9pbigidGVzdF9pbl9zdWIyLnB5Iikud3JpdGUoImRlZiB0ZXN0XzIoYXJn
Mik6IHBhc3MiKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQotICAg
ICAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0yKQotCi0gICAgZGVmIHRlc3RfZXh0
ZW5kX2ZpeHR1cmVfbW9kdWxlX2NsYXNzKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0Zmls
ZSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRl
ZiBzcGFtKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJwotCi0gICAgICAgICAgICBj
bGFzcyBUZXN0U3BhbShvYmplY3QpOgotCi0gICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQotICAgICAgICAgICAgICAgICBkZWYgc3BhbShzZWxmLCBzcGFtKToKLSAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzcGFtICogMgotCi0gICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3NwYW0o
c2VsZiwgc3BhbSk6Ci0gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc3BhbSA9PSAnc3BhbXNw
YW0nCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2Vk
KiJdKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKLSAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQotCi0gICAgZGVm
IHRlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfbW9kdWxlKHNlbGYsIHRlc3RkaXIpOgotICAg
ICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAg
IGRlZiBzcGFtKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJwotICAgICAgICAiIiIK
LSAgICAgICAgKQotICAgICAgICB0ZXN0ZmlsZSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAg
ICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzcGFtKHNwYW0pOgotICAgICAgICAgICAgICAg
IHJldHVybiBzcGFtICogMgotCi0gICAgICAgICAgICBkZWYgdGVzdF9zcGFtKHNwYW0pOgotICAg
ICAgICAgICAgICAgIGFzc2VydCBzcGFtID09ICdzcGFtc3BhbScKLSAgICAgICAgIiIiCi0gICAg
ICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCi0gICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RmaWxlKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCi0KLSAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVyZV9j
b25mdGVzdF9jb25mdGVzdChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgc3BhbSgpOgotICAgICAg
ICAgICAgICAgIHJldHVybiAnc3BhbScKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAg
cGtnID0gdGVzdGRpci5ta3B5ZGlyKCJwa2ciKQotICAgICAgICBwa2cuam9pbigiY29uZnRlc3Qu
cHkiKS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAg
ICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzcGFtKHNwYW0pOgotICAgICAgICAgICAgICAg
IHJldHVybiBzcGFtICogMgotICAgICAgICAiIiIKLSAgICAgICAgICAgICkKLSAgICAgICAgKQot
ICAgICAgICB0ZXN0ZmlsZSA9IHBrZy5qb2luKCJ0ZXN0X3NwYW0ucHkiKQotICAgICAgICB0ZXN0
ZmlsZS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAg
ICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKLSAgICAgICAgICAg
ICAgICBhc3NlcnQgc3BhbSA9PSAic3BhbXNwYW0iCi0gICAgICAgICIiIgotICAgICAgICAgICAg
KQotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQotICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKLSAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQotCi0gICAgZGVmIHRlc3RfZXh0ZW5kX2Zp
eHR1cmVfY29uZnRlc3RfcGx1Z2luKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCi0gICAgICAgICAgICB0ZXN0cGx1Z2luPSIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBm
b28oKToKLSAgICAgICAgICAgICAgICByZXR1cm4gNwotICAgICAgICAiIiIKLSAgICAgICAgKQot
ICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAg
ICAgICAgICBweXRlc3RfcGx1Z2lucyA9ICd0ZXN0cGx1Z2luJwotCi0gICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBmb28oZm9vKToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZm9vICsgNwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiB0ZXN0X2Zvbyhmb28p
OgotICAgICAgICAgICAgICAgIGFzc2VydCBmb28gPT0gMTQKLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAotCi0gICAgZGVmIHRlc3RfZXh0ZW5kX2ZpeHR1cmVfcGx1Z2lu
X3BsdWdpbihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIyBUd28gcGx1Z2lucyBzaG91bGQgZXh0
ZW5kIGVhY2ggb3JkZXIgaW4gbG9hZGluZyBvcmRlcgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCi0gICAgICAgICAgICB0ZXN0cGx1Z2luMD0iIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgZm9vKCk6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDcKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgdGVzdHBsdWdpbjE9IiIiCi0gICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAg
ICAgICAgICAgZGVmIGZvbyhmb28pOgotICAgICAgICAgICAgICAgIHJldHVybiBmb28gKyA3Ci0g
ICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydCgpCi0g
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAg
cHl0ZXN0X3BsdWdpbnMgPSBbJ3Rlc3RwbHVnaW4wJywgJ3Rlc3RwbHVnaW4xJ10KLQotICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vKGZvbyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGZvbyA9PSAx
NAotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCi0gICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKLQotICAgIGRlZiB0ZXN0X292
ZXJyaWRlX3BhcmFtZXRyaXplZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVsZShzZWxmLCB0ZXN0ZGly
KToKLSAgICAgICAgIiIiVGVzdCBvdmVycmlkZSBvZiB0aGUgcGFyYW1ldHJpemVkIGZpeHR1cmUg
d2l0aCBub24tcGFyYW1ldHJpemVkIG9uZSBvbiB0aGUgdGVzdCBtb2R1bGUgbGV2ZWwuIiIiCi0g
ICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEs
IDIsIDNdKQotICAgICAgICAgICAgZGVmIHNwYW0ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIHJlcXVlc3QucGFyYW0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgdGVz
dGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAg
ICBkZWYgc3BhbSgpOgotICAgICAgICAgICAgICAgIHJldHVybiAnc3BhbScKLQotICAgICAgICAg
ICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgc3BhbSA9PSAn
c3BhbScKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNz
ZWQqIl0pCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RmaWxlKQotICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCi0KLSAgICBk
ZWYgdGVzdF9vdmVycmlkZV9wYXJhbWV0cml6ZWRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdChz
ZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIiIiVGVzdCBvdmVycmlkZSBvZiB0aGUgcGFyYW1ldHJp
emVkIGZpeHR1cmUgd2l0aCBub24tcGFyYW1ldHJpemVkIG9uZSBvbiB0aGUgY29uZnRlc3QgbGV2
ZWwuIiIiCi0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0g
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShw
YXJhbXM9WzEsIDIsIDNdKQotICAgICAgICAgICAgZGVmIHNwYW0ocmVxdWVzdCk6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAg
ICAgICAgc3ViZGlyID0gdGVzdGRpci5ta3B5ZGlyKCJzdWJkaXIiKQotICAgICAgICBzdWJkaXIu
am9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291
cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0g
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzcGFtKCk6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuICdzcGFtJwotICAgICAgICAiIiIKLSAgICAgICAgICAgICkKLSAg
ICAgICAgKQotICAgICAgICB0ZXN0ZmlsZSA9IHN1YmRpci5qb2luKCJ0ZXN0X3NwYW0ucHkiKQot
ICAgICAgICB0ZXN0ZmlsZS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNl
KAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToK
LSAgICAgICAgICAgICAgICBhc3NlcnQgc3BhbSA9PSAic3BhbSIKLSAgICAgICAgIiIiCi0gICAg
ICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCi0g
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RmaWxlKQotICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCi0KLSAgICBkZWYgdGVzdF9v
dmVycmlkZV9ub25fcGFyYW1ldHJpemVkX2ZpeHR1cmVfY29uZnRlc3RfbW9kdWxlKHNlbGYsIHRl
c3RkaXIpOgotICAgICAgICAiIiJUZXN0IG92ZXJyaWRlIG9mIHRoZSBub24tcGFyYW1ldHJpemVk
IGZpeHR1cmUgd2l0aCBwYXJhbWV0cml6ZWQgb25lIG9uIHRoZSB0ZXN0IG1vZHVsZSBsZXZlbC4i
IiIKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAg
ICAgICAgICBkZWYgc3BhbSgpOgotICAgICAgICAgICAgICAgIHJldHVybiAnc3BhbScKLSAgICAg
ICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgdGVzdGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUo
Ci0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwgMiwgM10pCi0gICAgICAgICAgICBkZWYgc3Bh
bShyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAg
ICAgICAgICBwYXJhbXMgPSB7J3NwYW0nOiAxfQotCi0gICAgICAgICAgICBkZWYgdGVzdF9zcGFt
KHNwYW0pOgotICAgICAgICAgICAgICAgIGFzc2VydCBzcGFtID09IHBhcmFtc1snc3BhbSddCi0g
ICAgICAgICAgICAgICAgcGFyYW1zWydzcGFtJ10gKz0gMQotICAgICAgICAiIiIKLSAgICAgICAg
KQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKLSAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QodGVzdGZpbGUpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIiozIHBhc3NlZCoiXSkKLQotICAgIGRlZiB0ZXN0X292ZXJyaWRlX25vbl9wYXJhbWV0
cml6ZWRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAg
IiIiVGVzdCBvdmVycmlkZSBvZiB0aGUgbm9uLXBhcmFtZXRyaXplZCBmaXh0dXJlIHdpdGggcGFy
YW1ldHJpemVkIG9uZSBvbiB0aGUgY29uZnRlc3QgbGV2ZWwuIiIiCi0gICAgICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIHNwYW0oKToK
LSAgICAgICAgICAgICAgICByZXR1cm4gJ3NwYW0nCi0gICAgICAgICIiIgotICAgICAgICApCi0g
ICAgICAgIHN1YmRpciA9IHRlc3RkaXIubWtweWRpcigic3ViZGlyIikKLSAgICAgICAgc3ViZGly
LmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNv
dXJjZSgKLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQot
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwgMiwgM10pCi0gICAgICAgICAg
ICBkZWYgc3BhbShyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJh
bQotICAgICAgICAiIiIKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICB0ZXN0Zmls
ZSA9IHN1YmRpci5qb2luKCJ0ZXN0X3NwYW0ucHkiKQotICAgICAgICB0ZXN0ZmlsZS53cml0ZSgK
LSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgot
ICAgICAgICAgICAgcGFyYW1zID0geydzcGFtJzogMX0KLQotICAgICAgICAgICAgZGVmIHRlc3Rf
c3BhbShzcGFtKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgc3BhbSA9PSBwYXJhbXNbJ3NwYW0n
XQotICAgICAgICAgICAgICAgIHBhcmFtc1snc3BhbSddICs9IDEKLSAgICAgICAgIiIiCi0gICAg
ICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMyBwYXNzZWQqIl0pCi0g
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RmaWxlKQotICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMyBwYXNzZWQqIl0pCi0KLSAgICBkZWYgdGVzdF9v
dmVycmlkZV9hdXRvdXNlX2ZpeHR1cmVfd2l0aF9wYXJhbWV0cml6ZWRfZml4dHVyZV9jb25mdGVz
dF9jb25mdGVzdCgKLSAgICAgICAgc2VsZiwgdGVzdGRpcgotICAgICk6Ci0gICAgICAgICIiIlRl
c3Qgb3ZlcnJpZGUgb2YgdGhlIGF1dG91c2UgZml4dHVyZSB3aXRoIHBhcmFtZXRyaXplZCBvbmUg
b24gdGhlIGNvbmZ0ZXN0IGxldmVsLgotICAgICAgICBUaGlzIHRlc3QgY292ZXJzIHRoZSBpc3N1
ZSBleHBsYWluZWQgaW4gaXNzdWUgMTYwMQotICAgICAgICAiIiIKLSAgICAgICAgdGVzdGRpci5t
YWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
LQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAg
IGRlZiBzcGFtKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJwotICAgICAgICAiIiIK
LSAgICAgICAgKQotICAgICAgICBzdWJkaXIgPSB0ZXN0ZGlyLm1rcHlkaXIoInN1YmRpciIpCi0g
ICAgICAgIHN1YmRpci5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICAgICAgX3B5
dGVzdC5fY29kZS5Tb3VyY2UoCi0gICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsIDIsIDNd
KQotICAgICAgICAgICAgZGVmIHNwYW0ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QucGFyYW0KLSAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAg
ICAgICAgdGVzdGZpbGUgPSBzdWJkaXIuam9pbigidGVzdF9zcGFtLnB5IikKLSAgICAgICAgdGVz
dGZpbGUud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKLSAgICAgICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgIHBhcmFtcyA9IHsnc3BhbSc6IDF9Ci0KLSAgICAgICAg
ICAgIGRlZiB0ZXN0X3NwYW0oc3BhbSk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHNwYW0gPT0g
cGFyYW1zWydzcGFtJ10KLSAgICAgICAgICAgICAgICBwYXJhbXNbJ3NwYW0nXSArPSAxCi0gICAg
ICAgICIiIgotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjMg
cGFzc2VkKiJdKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0ZmlsZSkK
LSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjMgcGFzc2VkKiJdKQotCi0g
ICAgZGVmIHRlc3RfYXV0b3VzZV9maXh0dXJlX3BsdWdpbihzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgIyBBIGZpeHR1cmUgZnJvbSBhIHBsdWdpbiBoYXMgbm8gYmFzZWlkIHNldCwgd2hpY2ggc2Ny
ZXdlZCB1cAotICAgICAgICAjIHRoZSBhdXRvdXNlIGZpeHR1cmUgaGFuZGxpbmcuCi0gICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgIHRlc3RwbHVnaW49IiIiCi0gICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNl
PVRydWUpCi0gICAgICAgICAgICBkZWYgZm9vKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJl
cXVlc3QuZnVuY3Rpb24uZm9vID0gNwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0
ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgIHB5dGVzdF9wbHVnaW5zID0gJ3Rlc3RwbHVnaW4nCi0K
LSAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBhc3Nl
cnQgcmVxdWVzdC5mdW5jdGlvbi5mb28gPT0gNwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IDAKLQotICAgIGRlZiB0ZXN0X2Z1bmNhcmdfbG9va3VwX2Vycm9yKHNlbGYsIHRlc3Rk
aXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAg
ICAgICAgICAgIGRlZiBhX2ZpeHR1cmUoKTogcGFzcwotCi0gICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKLSAgICAgICAgICAgIGRlZiBiX2ZpeHR1cmUoKTogcGFzcwotCi0gICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBjX2ZpeHR1cmUoKTogcGFzcwotCi0gICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBkX2ZpeHR1cmUoKTogcGFz
cwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiB0ZXN0X2xvb2t1cF9lcnJvcih1bmtub3du
KToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICIqRVJST1IgYXQgc2V0
dXAgb2YgdGVzdF9sb29rdXBfZXJyb3IqIiwKLSAgICAgICAgICAgICAgICAiICBkZWYgdGVzdF9s
b29rdXBfZXJyb3IodW5rbm93bik6KiIsCi0gICAgICAgICAgICAgICAgIkUgICAgICAgZml4dHVy
ZSAndW5rbm93bicgbm90IGZvdW5kIiwKLSAgICAgICAgICAgICAgICAiPiAgICAgICBhdmFpbGFi
bGUgZml4dHVyZXM6KmFfZml4dHVyZSwqYl9maXh0dXJlLCpjX2ZpeHR1cmUsKmRfZml4dHVyZSpt
b25rZXlwYXRjaCwqIiwgICMgc29ydGVkCi0gICAgICAgICAgICAgICAgIj4gICAgICAgdXNlICdw
eSp0ZXN0IC0tZml4dHVyZXMgKicgZm9yIGhlbHAgb24gdGhlbS4iLAotICAgICAgICAgICAgICAg
ICIqMSBlcnJvcioiLAotICAgICAgICAgICAgXQotICAgICAgICApCi0gICAgICAgIGFzc2VydCAi
SU5URVJOQUwiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCi0KLSAgICBkZWYgdGVzdF9maXh0
dXJlX2V4Y2luZm9fbGVhayhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIyBvbiBweXRob24yIHN5
cy5leGNpbmZvIHdvdWxkIGxlYWsgaW50byBmaXh0dXJlIGV4ZWN1dGlvbnMKLSAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgc3lz
Ci0gICAgICAgICAgICBpbXBvcnQgdHJhY2ViYWNrCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGxlYWsoKToK
LSAgICAgICAgICAgICAgICBpZiBzeXMuZXhjX2luZm8oKVswXTogICMgcHl0aG9uMyBidWcgOikK
LSAgICAgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCi0gICAgICAgICAgICAg
ICAgI2ZhaWxzCi0gICAgICAgICAgICAgICAgYXNzZXJ0IHN5cy5leGNfaW5mbygpID09IChOb25l
LCBOb25lLCBOb25lKQotCi0gICAgICAgICAgICBkZWYgdGVzdF9sZWFrKGxlYWspOgotICAgICAg
ICAgICAgICAgIGlmIHN5cy5leGNfaW5mbygpWzBdOiAgIyBweXRob24zIGJ1ZyA6KQotICAgICAg
ICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKLSAgICAgICAgICAgICAgICBhc3Nl
cnQgc3lzLmV4Y19pbmZvKCkgPT0gKE5vbmUsIE5vbmUsIE5vbmUpCi0gICAgICAgICIiIgotICAg
ICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAotCi0KLWNsYXNzIFRlc3RSZXF1ZXN0QmFzaWMob2JqZWN0KToK
LQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfYXR0cmlidXRlcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAg
IGRlZiBzb21ldGhpbmcocmVxdWVzdCk6IHBhc3MKLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMo
c29tZXRoaW5nKTogcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXEgPSBm
aXh0dXJlcy5GaXh0dXJlUmVxdWVzdChpdGVtKQotICAgICAgICBhc3NlcnQgcmVxLmZ1bmN0aW9u
ID09IGl0ZW0ub2JqCi0gICAgICAgIGFzc2VydCByZXEua2V5d29yZHMgPT0gaXRlbS5rZXl3b3Jk
cwotICAgICAgICBhc3NlcnQgaGFzYXR0cihyZXEubW9kdWxlLCAidGVzdF9mdW5jIikKLSAgICAg
ICAgYXNzZXJ0IHJlcS5jbHMgaXMgTm9uZQotICAgICAgICBhc3NlcnQgcmVxLmZ1bmN0aW9uLl9f
bmFtZV9fID09ICJ0ZXN0X2Z1bmMiCi0gICAgICAgIGFzc2VydCByZXEuY29uZmlnID09IGl0ZW0u
Y29uZmlnCi0gICAgICAgIGFzc2VydCByZXByKHJlcSkuZmluZChyZXEuZnVuY3Rpb24uX19uYW1l
X18pICE9IC0xCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X2F0dHJpYnV0ZXNfbWV0aG9kKHNlbGYs
IHRlc3RkaXIpOgotICAgICAgICBpdGVtLCA9IHRlc3RkaXIuZ2V0aXRlbXMoCi0gICAgICAgICAg
ICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIGNsYXNzIFRlc3RC
KG9iamVjdCk6Ci0KLSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAg
ICAgICBkZWYgc29tZXRoaW5nKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gMQotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZiwgc29tZXRoaW5nKToK
LSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAg
ICByZXEgPSBpdGVtLl9yZXF1ZXN0Ci0gICAgICAgIGFzc2VydCByZXEuY2xzLl9fbmFtZV9fID09
ICJUZXN0QiIKLSAgICAgICAgYXNzZXJ0IHJlcS5pbnN0YW5jZS5fX2NsYXNzX18gPT0gcmVxLmNs
cwotCi0gICAgZGVmIHRlc3RfcmVxdWVzdF9jb250YWluc19mdW5jYXJnX2FyZzJmaXh0dXJlZGVm
cyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2wo
Ci0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKLSAg
ICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToK
LSAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZiwgc29tZXRoaW5nKToKLSAgICAg
ICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBpdGVt
MSwgPSB0ZXN0ZGlyLmdlbml0ZW1zKFttb2Rjb2xdKQotICAgICAgICBhc3NlcnQgaXRlbTEubmFt
ZSA9PSAidGVzdF9tZXRob2QiCi0gICAgICAgIGFyZzJmaXh0dXJlZGVmcyA9IGZpeHR1cmVzLkZp
eHR1cmVSZXF1ZXN0KGl0ZW0xKS5fYXJnMmZpeHR1cmVkZWZzCi0gICAgICAgIGFzc2VydCBsZW4o
YXJnMmZpeHR1cmVkZWZzKSA9PSAxCi0gICAgICAgIGFzc2VydCBhcmcyZml4dHVyZWRlZnNbInNv
bWV0aGluZyJdWzBdLmFyZ25hbWUgPT0gInNvbWV0aGluZyIKLQotICAgIGRlZiB0ZXN0X3JlcXVl
c3RfZ2FyYmFnZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAot
ICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgc3lzCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0gICAgICAgICAgICBmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IFBzZXVk
b0ZpeHR1cmVEZWYKLSAgICAgICAgICAgIGltcG9ydCBnYwotCi0gICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0
KToKLSAgICAgICAgICAgICAgICAjIHRoaXMgbWV0aG9kIG9mIHRlc3QgZG9lc24ndCB3b3JrIG9u
IHB5cHkKLSAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHN5cywgInB5cHlfdmVyc2lvbl9pbmZv
Iik6Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkCi0gICAgICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICAgICAgb3JpZ2luYWwgPSBnYy5nZXRfZGVidWcoKQotICAgICAgICAgICAg
ICAgICAgICBnYy5zZXRfZGVidWcoZ2MuREVCVUdfU0FWRUFMTCkKLSAgICAgICAgICAgICAgICAg
ICAgZ2MuY29sbGVjdCgpCi0KLSAgICAgICAgICAgICAgICAgICAgeWllbGQKLQotICAgICAgICAg
ICAgICAgICAgICBnYy5jb2xsZWN0KCkKLSAgICAgICAgICAgICAgICAgICAgbGVha2VkX3R5cGVz
ID0gc3VtKDEgZm9yIF8gaW4gZ2MuZ2FyYmFnZQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShfLCBQc2V1ZG9GaXh0dXJlRGVmKSkKLQotICAgICAg
ICAgICAgICAgICAgICBnYy5nYXJiYWdlWzpdID0gW10KLQotICAgICAgICAgICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVha2VkX3R5cGVzID09IDAKLSAg
ICAgICAgICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICAgICAgICAgIGdjLnNl
dF9kZWJ1ZyhvcmlnaW5hbCkKLQotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgotICAgICAg
ICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTEpCi0KLSAgICBkZWYgdGVzdF9nZXRmaXh0dXJldmFsdWVfcmVjdXJzaXZlKHNlbGYsIHRlc3Rk
aXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAg
ICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IDEKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAot
ICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoInNvbWV0aGluZyIp
ICsgMQotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzb21ldGhpbmcpOgotICAgICAgICAgICAg
ICAgIGFzc2VydCBzb21ldGhpbmcgPT0gMgotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShwYXNzZWQ9MSkKLQotICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZ2V0Zml4bWV0
aG9kIiwgKCJnZXRmaXh0dXJldmFsdWUiLCAiZ2V0ZnVuY2FyZ3ZhbHVlIikpCi0gICAgZGVmIHRl
c3RfZ2V0Zml4dHVyZXZhbHVlKHNlbGYsIHRlc3RkaXIsIGdldGZpeG1ldGhvZCk6Ci0gICAgICAg
IGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKLSAgICAgICAgICAgIHZhbHVlcyA9IFsyXQotICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOiByZXR1cm4gMQot
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgb3RoZXIocmVxdWVz
dCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlcy5wb3AoKQotICAgICAgICAgICAgZGVm
IHRlc3RfZnVuYyhzb21ldGhpbmcpOiBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAg
ICAgIGltcG9ydCBjb250ZXh0bGliCi0KLSAgICAgICAgaWYgZ2V0Zml4bWV0aG9kID09ICJnZXRm
dW5jYXJndmFsdWUiOgotICAgICAgICAgICAgd2FybmluZ19leHBlY3RhdGlvbiA9IHB5dGVzdC53
YXJucyhEZXByZWNhdGlvbldhcm5pbmcpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIHNl
ZSAjMTgzMCBmb3IgYSBjbGVhbmVyIHdheSB0byBhY2NvbXBsaXNoIHRoaXMKLSAgICAgICAgICAg
IEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCi0gICAgICAgICAgICBkZWYgZXhwZWN0aW5nX25v
X3dhcm5pbmcoKToKLSAgICAgICAgICAgICAgICB5aWVsZAotCi0gICAgICAgICAgICB3YXJuaW5n
X2V4cGVjdGF0aW9uID0gZXhwZWN0aW5nX25vX3dhcm5pbmcoKQotCi0gICAgICAgIHJlcSA9IGl0
ZW0uX3JlcXVlc3QKLSAgICAgICAgd2l0aCB3YXJuaW5nX2V4cGVjdGF0aW9uOgotICAgICAgICAg
ICAgZml4dHVyZV9mZXRjaGVyID0gZ2V0YXR0cihyZXEsIGdldGZpeG1ldGhvZCkKLSAgICAgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhGaXh0dXJlTG9va3VwRXJyb3IpOgotICAgICAgICAgICAg
ICAgIGZpeHR1cmVfZmV0Y2hlcigibm90ZXhpc3RzIikKLSAgICAgICAgICAgIHZhbCA9IGZpeHR1
cmVfZmV0Y2hlcigic29tZXRoaW5nIikKLSAgICAgICAgICAgIGFzc2VydCB2YWwgPT0gMQotICAg
ICAgICAgICAgdmFsID0gZml4dHVyZV9mZXRjaGVyKCJzb21ldGhpbmciKQotICAgICAgICAgICAg
YXNzZXJ0IHZhbCA9PSAxCi0gICAgICAgICAgICB2YWwyID0gZml4dHVyZV9mZXRjaGVyKCJvdGhl
ciIpCi0gICAgICAgICAgICBhc3NlcnQgdmFsMiA9PSAyCi0gICAgICAgICAgICB2YWwyID0gZml4
dHVyZV9mZXRjaGVyKCJvdGhlciIpICAjIHNlZSBhYm91dCBjYWNoaW5nCi0gICAgICAgICAgICBh
c3NlcnQgdmFsMiA9PSAyCi0gICAgICAgICAgICBweXRlc3QuX2ZpbGxmdW5jYXJncyhpdGVtKQot
ICAgICAgICAgICAgYXNzZXJ0IGl0ZW0uZnVuY2FyZ3NbInNvbWV0aGluZyJdID09IDEKLSAgICAg
ICAgICAgIGFzc2VydCBsZW4oZ2V0X3B1YmxpY19uYW1lcyhpdGVtLmZ1bmNhcmdzKSkgPT0gMgot
ICAgICAgICAgICAgYXNzZXJ0ICJyZXF1ZXN0IiBpbiBpdGVtLmZ1bmNhcmdzCi0KLSAgICBkZWYg
dGVzdF9yZXF1ZXN0X2FkZGZpbmFsaXplcihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgaXRlbSA9
IHRlc3RkaXIuZ2V0aXRlbSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAotICAgICAgICAgICAgdGVhcmRvd25saXN0ID0gW10KLSAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQotICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKLSAgICAgICAgICAg
ICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHRlYXJkb3dubGlzdC5hcHBlbmQoMSkp
Ci0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNvbWV0aGluZyk6IHBhc3MKLSAgICAgICAgIiIi
Ci0gICAgICAgICkKLSAgICAgICAgaXRlbS5zZXNzaW9uLl9zZXR1cHN0YXRlLnByZXBhcmUoaXRl
bSkKLSAgICAgICAgcHl0ZXN0Ll9maWxsZnVuY2FyZ3MoaXRlbSkKLSAgICAgICAgIyBzdWNjZXNz
aXZlbHkgY2hlY2sgZmluYWxpemF0aW9uIGNhbGxzCi0gICAgICAgIHRlYXJkb3dubGlzdCA9IGl0
ZW0uZ2V0cGFyZW50KHB5dGVzdC5Nb2R1bGUpLm9iai50ZWFyZG93bmxpc3QKLSAgICAgICAgc3Mg
PSBpdGVtLnNlc3Npb24uX3NldHVwc3RhdGUKLSAgICAgICAgYXNzZXJ0IG5vdCB0ZWFyZG93bmxp
c3QKLSAgICAgICAgc3MudGVhcmRvd25fZXhhY3QoaXRlbSwgTm9uZSkKLSAgICAgICAgcHJpbnQo
c3Muc3RhY2spCi0gICAgICAgIGFzc2VydCB0ZWFyZG93bmxpc3QgPT0gWzFdCi0KLSAgICBkZWYg
dGVzdF9tYXJrX2FzX2ZpeHR1cmVfd2l0aF9wcmVmaXhfYW5kX2RlY29yYXRvcl9mYWlscyhzZWxm
LCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAi
IiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCi0gICAgICAgICAgICBkZWYgcHl0ZXN0X2Z1bmNhcmdfX21hcmtlZF93aXRoX3ByZWZpeF9h
bmRfZGVjb3JhdG9yKCk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAg
ICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKLSAg
ICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgIipBc3NlcnRpb25FcnJv
cjogZml4dHVyZXMgY2Fubm90IGhhdmUqQHB5dGVzdC5maXh0dXJlKiIsCi0gICAgICAgICAgICAg
ICAgIipweXRlc3RfZnVuY2FyZ19fbWFya2VkX3dpdGhfcHJlZml4X2FuZF9kZWNvcmF0b3IqIiwK
LSAgICAgICAgICAgIF0KLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfcmVxdWVzdF9hZGRmaW5h
bGl6ZXJfZmFpbGluZ19zZXR1cChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAg
ICAgICAgICB2YWx1ZXMgPSBbMV0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAg
ICAgICAgZGVmIG15Zml4KHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmlu
YWxpemVyKHZhbHVlcy5wb3ApCi0gICAgICAgICAgICAgICAgYXNzZXJ0IDAKLSAgICAgICAgICAg
IGRlZiB0ZXN0X2ZpeChteWZpeCk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAg
ZGVmIHRlc3RfZmluYWxpemVyX3JhbigpOgotICAgICAgICAgICAgICAgIGFzc2VydCBub3QgdmFs
dWVzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigiLXMiKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShmYWlsZWQ9MSwgcGFz
c2VkPTEpCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X2FkZGZpbmFsaXplcl9mYWlsaW5nX3NldHVw
X21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1
ZXMgPSBbMSwgMl0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikK
LSAgICAgICAgICAgIGRlZiBteWZpeChyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXF1ZXN0
LmFkZGZpbmFsaXplcih2YWx1ZXMucG9wKQotICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmlu
YWxpemVyKHZhbHVlcy5wb3ApCi0gICAgICAgICAgICAgICAgYXNzZXJ0IDAKLSAgICAgICAgICAg
IGRlZiB0ZXN0X2ZpeChteWZpeCk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIK
LSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKLSAg
ICAgICAgbW9kID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9zZXR1cCIpWzBdLml0
ZW0ubW9kdWxlCi0gICAgICAgIGFzc2VydCBub3QgbW9kLnZhbHVlcwotCi0gICAgZGVmIHRlc3Rf
cmVxdWVzdF9hZGRmaW5hbGl6ZXJfcGFydGlhbF9zZXR1cF9mYWlsdXJlKHNlbGYsIHRlc3RkaXIp
OgotICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOgot
ICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVu
ZChOb25lKSkKLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc29tZXRoaW5nLCBtaXNzaW5nYXJn
KToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBkZWYgdGVzdF9zZWNvbmQoKToK
LSAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQotICAgICAgICAiIiIKLSAg
ICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQotICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBbIioxIGVycm9yKiJdICAj
IFhYWCB0aGUgd2hvbGUgbW9kdWxlIGNvbGxlY3Rpb24gZmFpbHMKLSAgICAgICAgKQotCi0gICAg
ZGVmIHRlc3RfcmVxdWVzdF9zdWJyZXF1ZXN0X2FkZGZpbmFsaXplcl9leGNlcHRpb25zKHNlbGYs
IHRlc3RkaXIpOgotICAgICAgICAiIiIKLSAgICAgICAgRW5zdXJlIGV4Y2VwdGlvbnMgcmFpc2Vk
IGR1cmluZyB0ZWFyZG93biBieSBhIGZpbmFsaXplciBhcmUgc3VwcHJlc3NlZAotICAgICAgICB1
bnRpbCBhbGwgZmluYWxpemVycyBhcmUgY2FsbGVkLCByZS1yYWlzaW5nIHRoZSBmaXJzdCBleGNl
cHRpb24gKCMyNDQwKQotICAgICAgICAiIiIKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAot
ICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICB2
YWx1ZXMgPSBbXQotICAgICAgICAgICAgZGVmIF9leGNlcHRzKHdoZXJlKToKLSAgICAgICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ0Vycm9yIGluICVzIGZpeHR1cmUnICUgd2hlcmUpCi0gICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzdWJyZXF1ZXN0KHJlcXVl
c3QpOgotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzb21ldGhpbmcoc3VicmVxdWVzdCk6Ci0gICAgICAg
ICAgICAgICAgc3VicmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKDEp
KQotICAgICAgICAgICAgICAgIHN1YnJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVz
LmFwcGVuZCgyKSkKLSAgICAgICAgICAgICAgICBzdWJyZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1i
ZGE6IF9leGNlcHRzKCdzb21ldGhpbmcnKSkKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQot
ICAgICAgICAgICAgZGVmIGV4Y2VwdHMoc3VicmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgc3Vi
cmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiBfZXhjZXB0cygnZXhjZXB0cycpKQotICAgICAg
ICAgICAgICAgIHN1YnJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgz
KSkKLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZpcnN0KHNvbWV0aGluZywgZXhjZXB0cyk6Ci0gICAg
ICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZGVmIHRlc3Rfc2Vjb25kKCk6Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMywgMiwgMV0KLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBbIipFeGNlcHRpb246IEVycm9yIGlu
IGV4Y2VwdHMgZml4dHVyZSIsICIqIDIgcGFzc2VkLCAxIGVycm9yIGluICoiXQotICAgICAgICAp
Ci0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X2dldG1vZHVsZXBhdGgoc2VsZiwgdGVzdGRpcik6Ci0g
ICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCJkZWYgdGVzdF9zb21lZnVuYygp
OiBwYXNzIikKLSAgICAgICAgaXRlbSwgPSB0ZXN0ZGlyLmdlbml0ZW1zKFttb2Rjb2xdKQotICAg
ICAgICByZXEgPSBmaXh0dXJlcy5GaXh0dXJlUmVxdWVzdChpdGVtKQotICAgICAgICBhc3NlcnQg
cmVxLmZzcGF0aCA9PSBtb2Rjb2wuZnNwYXRoCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X2ZpeHR1
cmVuYW1lcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBmcm9t
IF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IGdldF9wdWJsaWNfbmFtZXMKLSAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZSgpCi0gICAgICAgICAgICBkZWYgYXJnMSgpOgotICAgICAgICAgICAgICAg
IHBhc3MKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCi0gICAgICAgICAgICBkZWYgZmFy
ZyhhcmcxKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIHNhcmcodG1wZGlyKToKLSAgICAgICAg
ICAgICAgICBwYXNzCi0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihyZXF1ZXN0LCBmYXJn
KToKLSAgICAgICAgICAgICAgICBhc3NlcnQgc2V0KGdldF9wdWJsaWNfbmFtZXMocmVxdWVzdC5m
aXh0dXJlbmFtZXMpKSA9PSBcCi0gICAgICAgICAgICAgICAgICAgICAgIHNldChbInRtcGRpciIs
ICJzYXJnIiwgImFyZzEiLCAicmVxdWVzdCIsICJmYXJnIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidG1wZGlyX2ZhY3RvcnkiXSkKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9mdW5jYXJnbmFtZXNfY29tcGF0YXR0cihz
ZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBkZWYgcHl0ZXN0X2dl
bmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMu
ZnVuY2FyZ25hbWVzID09IG1ldGFmdW5jLmZpeHR1cmVuYW1lcwotICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgZm4ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0IHJlcXVlc3QuX3B5ZnVuY2l0ZW0uZnVuY2FyZ25hbWVzID09IFwKLSAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC5fcHlmdW5jaXRlbS5maXh0dXJlbmFtZXMKLSAgICAgICAgICAg
ICAgICByZXR1cm4gcmVxdWVzdC5mdW5jYXJnbmFtZXMsIHJlcXVlc3QuZml4dHVyZW5hbWVzCi0K
LSAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGZuKToKLSAgICAgICAgICAgICAgICBhc3NlcnQg
Zm5bMF0gPT0gZm5bMV0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTEpCi0KLSAgICBkZWYgdGVzdF9zZXR1cGRlY29yYXRvcl9hbmRfeHVuaXQoc2VsZiwgdGVzdGRp
cik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0nbW9kdWxlJywgYXV0b3VzZT1UcnVlKQotICAgICAgICAg
ICAgZGVmIHNldHVwX21vZHVsZSgpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIm1v
ZHVsZSIpCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQotICAgICAg
ICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKCk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVu
ZCgiZnVuY3Rpb24iKQotCi0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6Ci0gICAgICAgICAg
ICAgICAgcGFzcwotCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIiwgYXV0b3VzZT1UcnVlKQot
ICAgICAgICAgICAgICAgIGRlZiBzZXR1cF9jbGFzcyhzZWxmKToKLSAgICAgICAgICAgICAgICAg
ICAgdmFsdWVzLmFwcGVuZCgiY2xhc3MiKQotICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICAgICAgZGVmIHNldHVwX21ldGhvZChzZWxmKToK
LSAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgibWV0aG9kIikKLSAgICAgICAgICAg
ICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLSAg
ICAgICAgICAgIGRlZiB0ZXN0X2FsbCgpOgotICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMg
PT0gWyJtb2R1bGUiLCAiZnVuY3Rpb24iLCAiY2xhc3MiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZnVuY3Rpb24iLCAibWV0aG9kIiwgImZ1bmN0aW9uIl0KLSAgICAgICAgIiIiCi0g
ICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdiIpCi0gICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0zKQotCi0gICAgZGVmIHRlc3RfZml4dHVy
ZXNfc3ViX3N1YmRpcl9ub3JtYWxpemVfc2VwKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICAjIHRo
aXMgdGVzdHMgdGhhdCBub3JtYWxpemF0aW9uIG9mIG5vZGVpZHMgdGFrZXMgcGxhY2UKLSAgICAg
ICAgYiA9IHRlc3RkaXIubWtkaXIoInRlc3RzIikubWtkaXIoInVuaXQiKQotICAgICAgICBiLmpv
aW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJj
ZSgKLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGFyZzEoKToKLSAgICAgICAg
ICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAg
ICAgIHAgPSBiLmpvaW4oInRlc3RfbW9kdWxlLnB5IikKLSAgICAgICAgcC53cml0ZSgiZGVmIHRl
c3RfZnVuYyhhcmcxKTogcGFzcyIpCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KHAsICItLWZpeHR1cmVzIikKLSAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAotICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgICpmaXh0dXJlcyBkZWZpbmVkKmNvbmZ0ZXN0KgotICAgICAgICAgICAgKmFyZzEqCi0gICAg
ICAgICIiIgotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX2NvbG9yX3ll
cyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF90
aGlzKCk6IGFzc2VydCAxIikKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
Y29sb3I9eWVzIiwgIi0tZml4dHVyZXMiKQotICAgICAgICBhc3NlcnQgIlx4MWJbMzJtdG1wZGly
IiBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCi0KLSAgICBkZWYgdGVzdF9uZXdzdHlsZV93aXRoX3Jl
cXVlc3Qoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAg
ICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKCkKLSAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6Ci0gICAgICAgICAgICAg
ICAgcGFzcwotICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgotICAgICAgICAgICAgICAgIHBh
c3MKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBk
ZWYgdGVzdF9zZXR1cGNvbnRleHRfbm9fcGFyYW0oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwyXSkKLSAgICAgICAg
ICAgIGRlZiBhcmcocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFy
YW0KLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKLSAgICAgICAg
ICAgIGRlZiBteXNldHVwKHJlcXVlc3QsIGFyZyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IG5v
dCBoYXNhdHRyKHJlcXVlc3QsICJwYXJhbSIpCi0gICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyBpbiAoMSwyKQotICAgICAgICAiIiIKLSAgICAg
ICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKLQotCi1jbGFzcyBUZXN0UmVxdWVzdE1hcmtpbmco
b2JqZWN0KToKLQotICAgIGRlZiB0ZXN0X2FwcGx5bWFya2VyKHNlbGYsIHRlc3RkaXIpOgotICAg
ICAgICBpdGVtMSwgaXRlbTIgPSB0ZXN0ZGlyLmdldGl0ZW1zKAotICAgICAgICAgICAgIiIiCi0g
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQot
ICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBwYXNz
Ci0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBk
ZWYgdGVzdF9mdW5jMShzZWxmLCBzb21ldGhpbmcpOgotICAgICAgICAgICAgICAgICAgICBwYXNz
Ci0gICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoc2VsZiwgc29tZXRoaW5nKToKLSAgICAg
ICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXEx
ID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRlbTEpCi0gICAgICAgIGFzc2VydCAieGZhaWwi
IG5vdCBpbiBpdGVtMS5rZXl3b3JkcwotICAgICAgICByZXExLmFwcGx5bWFya2VyKHB5dGVzdC5t
YXJrLnhmYWlsKQotICAgICAgICBhc3NlcnQgInhmYWlsIiBpbiBpdGVtMS5rZXl3b3JkcwotICAg
ICAgICBhc3NlcnQgInNraXBpZiIgbm90IGluIGl0ZW0xLmtleXdvcmRzCi0gICAgICAgIHJlcTEu
YXBwbHltYXJrZXIocHl0ZXN0Lm1hcmsuc2tpcGlmKQotICAgICAgICBhc3NlcnQgInNraXBpZiIg
aW4gaXRlbTEua2V5d29yZHMKLSAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAicmVx
MS5hcHBseW1hcmtlcig0MikiKQotCi0gICAgZGVmIHRlc3RfYWNjZXNza2V5d29yZHMoc2VsZiwg
dGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgot
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkK
LSAgICAgICAgICAgIGRlZiBrZXl3b3JkcyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1
cm4gcmVxdWVzdC5rZXl3b3JkcwotICAgICAgICAgICAgQHB5dGVzdC5tYXJrLlhZWgotICAgICAg
ICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oa2V5d29yZHMpOgotICAgICAgICAgICAgICAgIGFzc2Vy
dCBrZXl3b3Jkc1siWFlaIl0KLSAgICAgICAgICAgICAgICBhc3NlcnQgImFiYyIgbm90IGluIGtl
eXdvcmRzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQotCi0g
ICAgZGVmIHRlc3RfYWNjZXNzbWFya2VyX2R5bmFtaWMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQotICAgICAgICAgICAgZGVm
IGtleXdvcmRzKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmtleXdv
cmRzCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iY2xhc3MiLCBhdXRvdXNl
PVRydWUpCi0gICAgICAgICAgICBkZWYgbWFya2luZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAg
ICByZXF1ZXN0LmFwcGx5bWFya2VyKHB5dGVzdC5tYXJrLlhZWigiaGVsbG8iKSkKLSAgICAgICAg
IiIiCi0gICAgICAgICkKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBkZWYgdGVzdF9mdW4x
KGtleXdvcmRzKToKLSAgICAgICAgICAgICAgICBhc3NlcnQga2V5d29yZHNbIlhZWiJdIGlzIG5v
dCBOb25lCi0gICAgICAgICAgICAgICAgYXNzZXJ0ICJhYmMiIG5vdCBpbiBrZXl3b3JkcwotICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuMihrZXl3b3Jkcyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
IGtleXdvcmRzWyJYWVoiXSBpcyBub3QgTm9uZQotICAgICAgICAgICAgICAgIGFzc2VydCAiYWJj
IiBub3QgaW4ga2V5d29yZHMKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFz
c2VkPTIpCi0KLQotY2xhc3MgVGVzdFJlcXVlc3RDYWNoZWRTZXR1cChvYmplY3QpOgotCi0gICAg
ZGVmIHRlc3RfcmVxdWVzdF9jYWNoZWRzZXR1cF9kZWZhdWx0bW9kdWxlKHNlbGYsIHRlc3RkaXIp
OgotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoCi0gICAgICAgICAg
ICAiIiIKLSAgICAgICAgICAgIG15c2V0dXAgPSBbImhlbGxvIixdLnBvcAotCi0gICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAg
ICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVz
dC5jYWNoZWRfc2V0dXAobXlzZXR1cCwgc2NvcGU9Im1vZHVsZSIpCi0KLSAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMxKHNvbWV0aGluZyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGlu
ZyA9PSAiaGVsbG8iCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jMWEoc2VsZiwgc29tZXRoaW5nKToKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAiaGVsbG8iCi0gICAgICAgICIiIgotICAgICAg
ICApCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQotCi0gICAgZGVmIHRl
c3RfcmVxdWVzdF9jYWNoZWRzZXR1cF9jbGFzcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKAotICAgICAgICAgICAgIiIiCi0gICAgICAg
ICAgICBteXNldHVwID0gWyJoZWxsbyIsICJoZWxsbzIiLCAiaGVsbG8zIl0ucG9wCi0KLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAg
ICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVx
dWVzdC5jYWNoZWRfc2V0dXAobXlzZXR1cCwgc2NvcGU9ImNsYXNzIikKLSAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMxKHNvbWV0aGluZyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGlu
ZyA9PSAiaGVsbG8zIgotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoc29tZXRoaW5nKToKLSAg
ICAgICAgICAgICAgICBhc3NlcnQgc29tZXRoaW5nID09ICJoZWxsbzIiCi0gICAgICAgICAgICBj
bGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMWEo
c2VsZiwgc29tZXRoaW5nKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9
PSAiaGVsbG8iCi0gICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzJiKHNlbGYsIHNvbWV0aGlu
Zyk6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBzb21ldGhpbmcgPT0gImhlbGxvIgotICAg
ICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
NCkKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FjaGVkc2V0dXBfZXh0cmFrZXkoc2VsZiwgdGVz
dGRpcik6Ci0gICAgICAgIGl0ZW0xID0gdGVzdGRpci5nZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6
IHBhc3MiKQotICAgICAgICByZXExID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRlbTEpCi0g
ICAgICAgIHZhbHVlcyA9IFsiaGVsbG8iLCAid29ybGQiXQotCi0gICAgICAgIGRlZiBzZXR1cCgp
OgotICAgICAgICAgICAgcmV0dXJuIHZhbHVlcy5wb3AoKQotCi0gICAgICAgIHJldDEgPSByZXEx
LmNhY2hlZF9zZXR1cChzZXR1cCwgZXh0cmFrZXk9MSkKLSAgICAgICAgcmV0MiA9IHJlcTEuY2Fj
aGVkX3NldHVwKHNldHVwLCBleHRyYWtleT0yKQotICAgICAgICBhc3NlcnQgcmV0MiA9PSAiaGVs
bG8iCi0gICAgICAgIGFzc2VydCByZXQxID09ICJ3b3JsZCIKLSAgICAgICAgcmV0MWIgPSByZXEx
LmNhY2hlZF9zZXR1cChzZXR1cCwgZXh0cmFrZXk9MSkKLSAgICAgICAgcmV0MmIgPSByZXExLmNh
Y2hlZF9zZXR1cChzZXR1cCwgZXh0cmFrZXk9MikKLSAgICAgICAgYXNzZXJ0IHJldDEgPT0gcmV0
MWIKLSAgICAgICAgYXNzZXJ0IHJldDIgPT0gcmV0MmIKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3Rf
Y2FjaGVkc2V0dXBfY2FjaGVfZGVsZXRpb24oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIGl0ZW0x
ID0gdGVzdGRpci5nZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQotICAgICAgICByZXEx
ID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRlbTEpCi0gICAgICAgIHZhbHVlcyA9IFtdCi0K
LSAgICAgICAgZGVmIHNldHVwKCk6Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJzZXR1cCIp
Ci0KLSAgICAgICAgZGVmIHRlYXJkb3duKHZhbCk6Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KCJ0ZWFyZG93biIpCi0KLSAgICAgICAgcmVxMS5jYWNoZWRfc2V0dXAoc2V0dXAsIHRlYXJkb3du
LCBzY29wZT0iZnVuY3Rpb24iKQotICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsic2V0dXAiXQot
ICAgICAgICAjIGFydGlmaWNpYWwgY2FsbCBvZiBmaW5hbGl6ZXIKLSAgICAgICAgc2V0dXBzdGF0
ZSA9IHJlcTEuX3B5ZnVuY2l0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZQotICAgICAgICBzZXR1cHN0
YXRlLl9jYWxsZmluYWxpemVycyhpdGVtMSkKLSAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbInNl
dHVwIiwgInRlYXJkb3duIl0KLSAgICAgICAgcmVxMS5jYWNoZWRfc2V0dXAoc2V0dXAsIHRlYXJk
b3duLCBzY29wZT0iZnVuY3Rpb24iKQotICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsic2V0dXAi
LCAidGVhcmRvd24iLCAic2V0dXAiXQotICAgICAgICBzZXR1cHN0YXRlLl9jYWxsZmluYWxpemVy
cyhpdGVtMSkKLSAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbInNldHVwIiwgInRlYXJkb3duIiwg
InNldHVwIiwgInRlYXJkb3duIl0KLQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FjaGVkX3NldHVw
X3R3b19hcmdzKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgYXJnMShyZXF1ZXN0KToKLSAgICAgICAg
ICAgICAgICByZXR1cm4gcmVxdWVzdC5jYWNoZWRfc2V0dXAobGFtYmRhOiA0MikKLSAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGFyZzIocmVxdWVzdCk6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuY2FjaGVkX3NldHVwKGxhbWJkYTogMTcpCi0gICAg
ICAgICAgICBkZWYgdGVzdF90d29fZGlmZmVyZW50X3NldHVwcyhhcmcxLCBhcmcyKToKLSAgICAg
ICAgICAgICAgICBhc3NlcnQgYXJnMSAhPSBhcmcyCi0gICAgICAgICIiIgotICAgICAgICApCi0g
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCi0gICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKLQotICAgIGRlZiB0ZXN0X3JlcXVl
c3RfY2FjaGVkX3NldHVwX2dldGZpeHR1cmV2YWx1ZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGFy
ZzEocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgYXJnMSA9IHJlcXVlc3QuZ2V0Zml4dHVyZXZh
bHVlKCJhcmcyIikKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5jYWNoZWRfc2V0dXAo
bGFtYmRhOiBhcmcxICsgMSkKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAg
ICAgZGVmIGFyZzIocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuY2Fj
aGVkX3NldHVwKGxhbWJkYTogMTApCi0gICAgICAgICAgICBkZWYgdGVzdF90d29fZnVuY2FyZyhh
cmcxKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9PSAxMQotICAgICAgICAiIiIKLSAg
ICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQotICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCi0KLSAgICBkZWYg
dGVzdF9yZXF1ZXN0X2NhY2hlZF9zZXR1cF9mdW5jdGlvbmFsKHNlbGYsIHRlc3RkaXIpOgotICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICB0ZXN0XzA9IiIiCi0gICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOgotICAg
ICAgICAgICAgICAgIHZhbCA9IHJlcXVlc3QuY2FjaGVkX3NldHVwKGZzZXR1cCwgZnRlYXJkb3du
KQotICAgICAgICAgICAgICAgIHJldHVybiB2YWwKLSAgICAgICAgICAgIGRlZiBmc2V0dXAobXlj
YWNoZT1bMV0pOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQobXljYWNoZS5wb3AoKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzCi0gICAgICAgICAgICBkZWYgZnRlYXJkb3du
KHNvbWV0aGluZyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLnJlbW92ZShzb21ldGhpbmdbMF0p
Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgyKQotICAgICAgICAgICAgZGVmIHRlc3Rf
bGlzdF9vbmNlKHNvbWV0aGluZyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9
PSBbMV0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2xpc3RfdHdpY2Uoc29tZXRoaW5nKToKLSAgICAg
ICAgICAgICAgICBhc3NlcnQgc29tZXRoaW5nID09IFsxXQotICAgICAgICAiIiIKLSAgICAgICAg
KQotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICB0ZXN0XzE9IiIiCi0g
ICAgICAgICAgICBpbXBvcnQgdGVzdF8wICMgc2hvdWxkIGhhdmUgcnVuIGFscmVhZHkKLSAgICAg
ICAgICAgIGRlZiB0ZXN0X2NoZWNrX3Rlc3QwX2hhc190ZWFyZG93bl9jb3JyZWN0KCk6Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0IHRlc3RfMC52YWx1ZXMgPT0gWzJdCi0gICAgICAgICIiIgotICAg
ICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCi0gICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKLQotICAgIGRlZiB0
ZXN0X2lzc3VlMTE3X3Nlc3Npb25zY29wZXRlYXJkb3duKHNlbGYsIHRlc3RkaXIpOgotICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYg
YXBwKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIGFwcCA9IHJlcXVlc3QuY2FjaGVkX3NldHVw
KAotICAgICAgICAgICAgICAgICAgICBzY29wZT0nc2Vzc2lvbicsCi0gICAgICAgICAgICAgICAg
ICAgIHNldHVwPWxhbWJkYTogMCwKLSAgICAgICAgICAgICAgICAgICAgdGVhcmRvd249bGFtYmRh
IHg6IDMveCkKLSAgICAgICAgICAgICAgICByZXR1cm4gYXBwCi0gICAgICAgICAgICBkZWYgdGVz
dF9mdW5jKGFwcCk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAg
KQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIGFzc2VydCBy
ZXN1bHQucmV0ICE9IDAKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjMv
eCoiLCAiKlplcm9EaXZpc2lvbkVycm9yKiJdKQotCi0KLWNsYXNzIFRlc3RGaXh0dXJlVXNhZ2Vz
KG9iamVjdCk6Ci0KLSAgICBkZWYgdGVzdF9ub2FyZ2ZpeHR1cmVkZWMoc2VsZiwgdGVzdGRpcik6
Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAg
ICBkZWYgYXJnMSgpOgotICAgICAgICAgICAgICAgIHJldHVybiAxCi0KLSAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMoYXJnMSk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEgPT0gMQotICAg
ICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
KQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKLQotICAgIGRlZiB0ZXN0
X3JlY2VpdmVzX2Z1bmNhcmdzKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZSgpCi0gICAgICAgICAgICBkZWYgYXJnMSgpOgotICAgICAg
ICAgICAgICAgIHJldHVybiAxCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCi0gICAg
ICAgICAgICBkZWYgYXJnMihhcmcxKToKLSAgICAgICAgICAgICAgICByZXR1cm4gYXJnMSArIDEK
LQotICAgICAgICAgICAgZGVmIHRlc3RfYWRkKGFyZzIpOgotICAgICAgICAgICAgICAgIGFzc2Vy
dCBhcmcyID09IDIKLSAgICAgICAgICAgIGRlZiB0ZXN0X2FsbChhcmcxLCBhcmcyKToKLSAgICAg
ICAgICAgICAgICBhc3NlcnQgYXJnMSA9PSAxCi0gICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzIg
PT0gMgotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKLQotICAg
IGRlZiB0ZXN0X3JlY2VpdmVzX2Z1bmNhcmdzX3Njb3BlX21pc21hdGNoKHNlbGYsIHRlc3RkaXIp
OgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVu
Y3Rpb24iKQotICAgICAgICAgICAgZGVmIGFyZzEoKToKLSAgICAgICAgICAgICAgICByZXR1cm4g
MQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCi0gICAgICAg
ICAgICBkZWYgYXJnMihhcmcxKToKLSAgICAgICAgICAgICAgICByZXR1cm4gYXJnMSArIDEKLQot
ICAgICAgICAgICAgZGVmIHRlc3RfYWRkKGFyZzIpOgotICAgICAgICAgICAgICAgIGFzc2VydCBh
cmcyID09IDIKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAg
ICAgICAgICBbCi0gICAgICAgICAgICAgICAgIipTY29wZU1pc21hdGNoKmludm9sdmVkIGZhY3Rv
cmllcyoiLAotICAgICAgICAgICAgICAgICIqIGRlZiBhcmcyKiIsCi0gICAgICAgICAgICAgICAg
IiogZGVmIGFyZzEqIiwKLSAgICAgICAgICAgICAgICAiKjEgZXJyb3IqIiwKLSAgICAgICAgICAg
IF0KLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZXNfZnVuY2FyZ3Nfc2NvcGVfbWlz
bWF0Y2hfaXNzdWU2NjAoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCi0gICAgICAgICAgICBkZWYgYXJn
MSgpOgotICAgICAgICAgICAgICAgIHJldHVybiAxCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShzY29wZT0ibW9kdWxlIikKLSAgICAgICAgICAgIGRlZiBhcmcyKGFyZzEpOgotICAgICAg
ICAgICAgICAgIHJldHVybiBhcmcxICsgMQotCi0gICAgICAgICAgICBkZWYgdGVzdF9hZGQoYXJn
MSwgYXJnMik6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzIgPT0gMgotICAgICAgICAiIiIK
LSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAgICAgICAgIFsiKlNjb3BlTWlzbWF0
Y2gqaW52b2x2ZWQgZmFjdG9yaWVzKiIsICIqIGRlZiBhcmcyKiIsICIqMSBlcnJvcioiXQotICAg
ICAgICApCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX3Njb3BlKHNlbGYsIHRlc3RkaXIpOgotICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb25z
IikKLSAgICAgICAgICAgIGRlZiBiYWRzY29wZSgpOgotICAgICAgICAgICAgICAgIHBhc3MKLQot
ICAgICAgICAgICAgZGVmIHRlc3Rfbm90aGluZyhiYWRzY29wZSk6Ci0gICAgICAgICAgICAgICAg
cGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdF9pbnByb2Nlc3MoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
Ci0gICAgICAgICAgICAoCi0gICAgICAgICAgICAgICAgIipWYWx1ZUVycm9yOiBmaXh0dXJlIGJh
ZHNjb3BlIGZyb20gdGVzdF9pbnZhbGlkX3Njb3BlLnB5IGhhcyBhbiB1bnN1cHBvcnRlZCIKLSAg
ICAgICAgICAgICAgICAiIHNjb3BlIHZhbHVlICdmdW5jdGlvbnMnIgotICAgICAgICAgICAgKQot
ICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9mdW5jYXJnX3BhcmFtZXRyaXplZF9hbmRfdXNlZF90
d2ljZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1ZXMg
PSBbXQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwyXSkKLSAgICAgICAg
ICAgIGRlZiBhcmcxKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoKQotICAgICAgICAgICAgZGVmIGFyZzIoYXJnMSk6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGFyZzEgKyAxCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2FkZChhcmcxLCBhcmcy
KToKLSAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMiA9PSBhcmcxICsgMQotICAgICAgICAgICAg
ICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSBhcmcxCi0gICAgICAgICIiIgotICAgICAgICApCi0g
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsiKjIgcGFzc2VkKiJdKQotCi0gICAgZGVmIHRlc3RfZmFjdG9yeV91
c2VzX3Vua25vd25fZnVuY2FyZ19hc19kZXBlbmRlbmN5X2Vycm9yKHNlbGYsIHRlc3RkaXIpOgot
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKLSAgICAgICAg
ICAgIGRlZiBmYWlsKG1pc3NpbmcpOgotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoKQotICAgICAgICAgICAgZGVmIGNhbGxfZmFpbChmYWlsKToK
LSAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAgICAgZGVmIHRlc3RfbWlzc2luZyhj
YWxsX2ZhaWwpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgICIiIgotICAgICAg
ICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAqcHl0
ZXN0LmZpeHR1cmUoKSoKLSAgICAgICAgICAgICpkZWYgY2FsbF9mYWlsKGZhaWwpKgotICAgICAg
ICAgICAgKnB5dGVzdC5maXh0dXJlKCkqCi0gICAgICAgICAgICAqZGVmIGZhaWwqCi0gICAgICAg
ICAgICAqZml4dHVyZSonbWlzc2luZycqbm90IGZvdW5kKgotICAgICAgICAiIiIKLSAgICAgICAg
KQotCi0gICAgZGVmIHRlc3RfZmFjdG9yeV9zZXR1cF9hc19jbGFzc2VzX2ZhaWxzKHNlbGYsIHRl
c3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIGNsYXNzIGFyZzEob2JqZWN0KToK
LSAgICAgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYueCA9IDEKLSAgICAgICAgICAgIGFyZzEgPSBweXRlc3QuZml4dHVyZSgp
KGFyZzEpCi0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCkKLSAgICAgICAgdmFsdWVzID0gcmVwcmVjLmdldGZhaWxlZGNvbGxlY3Rp
b25zKCkKLSAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKLQotICAgIGRlZiB0ZXN0X3Jl
cXVlc3RfY2FuX2JlX292ZXJyaWRkZW4oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAot
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKLSAgICAgICAgICAgIGRlZiByZXF1ZXN0KHJl
cXVlc3QpOgotICAgICAgICAgICAgICAgIHJlcXVlc3QuYSA9IDEKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWVzdAotICAgICAgICAgICAgZGVmIHRlc3RfcmVxdWVzdChyZXF1ZXN0KToKLSAg
ICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5hID09IDEKLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVj
LmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF91c2VmaXh0dXJlc19tYXJr
ZXIoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAg
ICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICB2YWx1ZXMg
PSBbXQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIikKLSAgICAg
ICAgICAgIGRlZiBteWZpeChyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmNscy5o
ZWxsbyA9ICJ3b3JsZCIKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCi0KLSAgICAg
ICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgotICAgICAgICAgICAgICAgIGRlZiB0ZXN0
X29uZShzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndv
cmxkIgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQotICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IHNlbGYuaGVsbG8gPT0gIndvcmxkIgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZh
bHVlcykgPT0gMQotICAgICAgICAgICAgcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoIm15Zml4Iiko
VGVzdENsYXNzKQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikK
LQotICAgIGRlZiB0ZXN0X3VzZWZpeHR1cmVzX2luaShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAg
dGVzdGRpci5tYWtlaW5pKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBbcHl0ZXN0XQot
ICAgICAgICAgICAgdXNlZml4dHVyZXMgPSBteWZpeAotICAgICAgICAiIiIKLSAgICAgICAgKQot
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNs
YXNzIikKLSAgICAgICAgICAgIGRlZiBteWZpeChyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmNscy5oZWxsbyA9ICJ3b3JsZCIKLQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGNs
YXNzIFRlc3RDbGFzcyhvYmplY3QpOgotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X29uZShzZWxm
KToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgotICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShwYXNzZWQ9MikKLQotICAgIGRlZiB0ZXN0X3VzZWZpeHR1cmVzX3NlZW5faW5fc2hvd21h
cmtlcnMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItLW1hcmtlcnMiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgICp1c2VmaXh0dXJlcyhmaXh0dXJlbmFtZTEqbWFyayB0
ZXN0cypmaXh0dXJlcyoKLSAgICAgICAgIiIiCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3Jl
cXVlc3RfaW5zdGFuY2VfaXNzdWUyMDMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAot
Ci0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgICAgICBkZWYgc2V0dXAxKHNlbGYsIHJlcXVlc3Qp
OgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZiA9PSByZXF1ZXN0Lmluc3RhbmNlCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuYXJnMSA9IDEKLSAgICAgICAgICAgICAgICBkZWYgdGVz
dF9oZWxsbyhzZWxmLCBzZXR1cDEpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5h
cmcxID09IDEKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0K
LSAgICBkZWYgdGVzdF9maXh0dXJlX3BhcmFtZXRyaXplZF93aXRoX2l0ZXJhdG9yKHNlbGYsIHRl
c3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAg
ICAgICAgIGRlZiBmKCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgMQotICAgICAgICAgICAgICAg
IHlpZWxkIDIKLSAgICAgICAgICAgIGRlYyA9IHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUi
LCBwYXJhbXM9ZigpKQotCi0gICAgICAgICAgICBAZGVjCi0gICAgICAgICAgICBkZWYgYXJnKHJl
cXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0gICAgICAgICAg
ICBAZGVjCi0gICAgICAgICAgICBkZWYgYXJnMihyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6Ci0gICAg
ICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCi0gICAgICAgICAgICBkZWYgdGVzdF8yKGFy
ZzIpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnMioxMCkKLSAgICAgICAgIiIi
Ci0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdiIpCi0g
ICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD00KQotICAgICAgICB2YWx1ZXMgPSBy
ZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X2NhbGwiKVswXS5pdGVtLm1vZHVsZS52YWx1
ZXMKLSAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwgMiwgMTAsIDIwXQotCi0KLWNsYXNzIFRl
c3RGaXh0dXJlTWFuYWdlclBhcnNlRmFjdG9yaWVzKG9iamVjdCk6Ci0KLSAgICBAcHl0ZXN0LmZp
eHR1cmUKLSAgICBkZWYgdGVzdGRpcihzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgdGVzdGRpciA9
IHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJ0ZXN0ZGlyIikKLSAgICAgICAgdGVzdGRpci5tYWtl
Y29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQot
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgaGVsbG8ocmVxdWVz
dCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJjb25mdGVzdCIKLQotICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgZm0ocmVxdWVzdCk6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIHJlcXVlc3QuX2ZpeHR1cmVtYW5hZ2VyCi0KLSAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQotICAgICAgICAgICAgZGVmIGl0ZW0ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIHJlcXVlc3QuX3B5ZnVuY2l0ZW0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAg
ICAgcmV0dXJuIHRlc3RkaXIKLQotICAgIGRlZiB0ZXN0X3BhcnNlZmFjdG9yaWVzX2V2aWxfb2Jq
ZWN0c19pc3N1ZTIxNChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBjbGFzcyBBKG9iamVjdCk6Ci0gICAgICAg
ICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBwYXNzCi0g
ICAgICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgotICAgICAgICAgICAg
ICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoKQotICAgICAgICAgICAgYSA9IEEoKQotICAgICAg
ICAgICAgZGVmIHRlc3RfaGVsbG8oKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIi
IgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xLCBmYWlsZWQ9MCkKLQotICAgIGRlZiB0
ZXN0X3BhcnNlZmFjdG9yaWVzX2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiB0ZXN0X2hl
bGxvKGl0ZW0sIGZtKToKLSAgICAgICAgICAgICAgICBmb3IgbmFtZSBpbiAoImZtIiwgImhlbGxv
IiwgIml0ZW0iKToKLSAgICAgICAgICAgICAgICAgICAgZmFjbGlzdCA9IGZtLmdldGZpeHR1cmVk
ZWZzKG5hbWUsIGl0ZW0ubm9kZWlkKQotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKGZh
Y2xpc3QpID09IDEKLSAgICAgICAgICAgICAgICAgICAgZmFjID0gZmFjbGlzdFswXQotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgZmFjLmZ1bmMuX19uYW1lX18gPT0gbmFtZQotICAgICAgICAi
IiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikK
LSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9w
YXJzZWZhY3Rvcmllc19jb25mdGVzdF9hbmRfbW9kdWxlX2FuZF9jbGFzcyhzZWxmLCB0ZXN0ZGly
KToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAg
ICAgICAgZGVmIGhlbGxvKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiAibW9kdWxl
IgotICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICAgICAgZGVmIGhlbGxvKHNlbGYsIHJlcXVlc3Qp
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gImNsYXNzIgotICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X2hlbGxvKHNlbGYsIGl0ZW0sIGZtKToKLSAgICAgICAgICAgICAgICAgICAgZmFjbGlz
dCA9IGZtLmdldGZpeHR1cmVkZWZzKCJoZWxsbyIsIGl0ZW0ubm9kZWlkKQotICAgICAgICAgICAg
ICAgICAgICBwcmludCAoZmFjbGlzdCkKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihm
YWNsaXN0KSA9PSAzCi0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWNsaXN0WzBdLmZ1bmMo
aXRlbS5fcmVxdWVzdCkgPT0gImNvbmZ0ZXN0IgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
ZmFjbGlzdFsxXS5mdW5jKGl0ZW0uX3JlcXVlc3QpID09ICJtb2R1bGUiCi0gICAgICAgICAgICAg
ICAgICAgIGFzc2VydCBmYWNsaXN0WzJdLmZ1bmMoaXRlbS5fcmVxdWVzdCkgPT0gImNsYXNzIgot
ICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oIi1zIikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBk
ZWYgdGVzdF9wYXJzZWZhY3Rvcmllc19yZWxhdGl2ZV9ub2RlX2lkcyhzZWxmLCB0ZXN0ZGlyKToK
LSAgICAgICAgIyBleGFtcGxlIG1vc3RseSB0YWtlbiBmcm9tOgotICAgICAgICAjIGh0dHBzOi8v
bWFpbC5weXRob24ub3JnL3BpcGVybWFpbC9weXRlc3QtZGV2LzIwMTQtU2VwdGVtYmVyLzAwMjYx
Ny5odG1sCi0gICAgICAgIHJ1bm5lciA9IHRlc3RkaXIubWtkaXIoInJ1bm5lciIpCi0gICAgICAg
IHBhY2thZ2UgPSB0ZXN0ZGlyLm1rZGlyKCJwYWNrYWdlIikKLSAgICAgICAgcGFja2FnZS5qb2lu
KCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICAgICAgZGVkZW50KAotICAgICAgICAgICAg
ICAgICIiIlwKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQotICAgICAgICAgICAgZGVmIG9uZSgpOgotICAgICAgICAgICAgICAgIHJldHVybiAx
Ci0gICAgICAgICIiIgotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHBhY2thZ2Uu
am9pbigidGVzdF94LnB5Iikud3JpdGUoCi0gICAgICAgICAgICBkZWRlbnQoCi0gICAgICAgICAg
ICAgICAgIiIiXAotICAgICAgICAgICAgZGVmIHRlc3RfeChvbmUpOgotICAgICAgICAgICAgICAg
IGFzc2VydCBvbmUgPT0gMQotICAgICAgICAiIiIKLSAgICAgICAgICAgICkKLSAgICAgICAgKQot
ICAgICAgICBzdWIgPSBwYWNrYWdlLm1rZGlyKCJzdWIiKQotICAgICAgICBzdWIuam9pbigiX19p
bml0X18ucHkiKS5lbnN1cmUoKQotICAgICAgICBzdWIuam9pbigiY29uZnRlc3QucHkiKS53cml0
ZSgKLSAgICAgICAgICAgIGRlZGVudCgKLSAgICAgICAgICAgICAgICAiIiJcCi0gICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAg
IGRlZiBvbmUoKToKLSAgICAgICAgICAgICAgICByZXR1cm4gMgotICAgICAgICAiIiIKLSAgICAg
ICAgICAgICkKLSAgICAgICAgKQotICAgICAgICBzdWIuam9pbigidGVzdF95LnB5Iikud3JpdGUo
Ci0gICAgICAgICAgICBkZWRlbnQoCi0gICAgICAgICAgICAgICAgIiIiXAotICAgICAgICAgICAg
ZGVmIHRlc3RfeChvbmUpOgotICAgICAgICAgICAgICAgIGFzc2VydCBvbmUgPT0gMgotICAgICAg
ICAiIiIKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKLSAg
ICAgICAgd2l0aCBydW5uZXIuYXNfY3dkKCk6Ci0gICAgICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oIi4uIikKLSAgICAgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0yKQotCi0KLWNsYXNzIFRlc3RBdXRvdXNlRGlzY292ZXJ5KG9iamVjdCk6Ci0KLSAgICBAcHl0
ZXN0LmZpeHR1cmUKLSAgICBkZWYgdGVzdGRpcihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVz
dGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAg
ICAgICBkZWYgcGVyZnVuY3Rpb24ocmVxdWVzdCwgdG1wZGlyKToKLSAgICAgICAgICAgICAgICBw
YXNzCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCi0gICAgICAgICAgICBkZWYgYXJn
MSh0bXBkaXIpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICBkZWYgcGVyZnVuY3Rpb24yKGFyZzEpOgot
ICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAg
ICAgICAgICBkZWYgZm0ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Qu
X2ZpeHR1cmVtYW5hZ2VyCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAg
ICAgZGVmIGl0ZW0ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuX3B5
ZnVuY2l0ZW0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmV0dXJuIHRlc3RkaXIK
LQotICAgIGRlZiB0ZXN0X3BhcnNlZmFjdG9yaWVzX2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgot
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGZyb20gX3B5dGVzdC5weXRlc3RlciBpbXBvcnQgZ2V0X3B1YmxpY19uYW1lcwotICAgICAgICAg
ICAgZGVmIHRlc3RfY2hlY2tfc2V0dXAoaXRlbSwgZm0pOgotICAgICAgICAgICAgICAgIGF1dG91
c2VuYW1lcyA9IGZtLl9nZXRhdXRvdXNlbmFtZXMoaXRlbS5ub2RlaWQpCi0gICAgICAgICAgICAg
ICAgYXNzZXJ0IGxlbihnZXRfcHVibGljX25hbWVzKGF1dG91c2VuYW1lcykpID09IDIKLSAgICAg
ICAgICAgICAgICBhc3NlcnQgInBlcmZ1bmN0aW9uMiIgaW4gYXV0b3VzZW5hbWVzCi0gICAgICAg
ICAgICAgICAgYXNzZXJ0ICJwZXJmdW5jdGlvbiIgaW4gYXV0b3VzZW5hbWVzCi0gICAgICAgICIi
IgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXMiKQot
ICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKLQotICAgIGRlZiB0ZXN0X3R3
b19jbGFzc2VzX3NlcGFyYXRlZF9hdXRvdXNlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKLSAgICAgICAgICAgIGNsYXNzIFRlc3RBKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgdmFs
dWVzID0gW10KLSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQot
ICAgICAgICAgICAgICAgIGRlZiBzZXR1cDEoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYudmFsdWVzLmFwcGVuZCgxKQotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3NldHVwMShzZWxm
KToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYudmFsdWVzID09IFsxXQotICAgICAg
ICAgICAgY2xhc3MgVGVzdEIob2JqZWN0KToKLSAgICAgICAgICAgICAgICB2YWx1ZXMgPSBbXQot
ICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAg
ICAgICAgZGVmIHNldHVwMihzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi52YWx1ZXMu
YXBwZW5kKDEpCi0gICAgICAgICAgICAgICAgZGVmIHRlc3Rfc2V0dXAyKHNlbGYpOgotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgc2VsZi52YWx1ZXMgPT0gWzFdCi0gICAgICAgICIiIgotICAg
ICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJl
cHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQotCi0gICAgZGVmIHRlc3Rfc2V0dXBfYXRfY2xh
c3NsZXZlbChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBjbGFz
cyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0
b3VzZT1UcnVlKQotICAgICAgICAgICAgICAgIGRlZiBwZXJtZXRob2Qoc2VsZiwgcmVxdWVzdCk6
Ci0gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuaW5zdGFuY2UuZnVuY25hbWUgPSByZXF1ZXN0
LmZ1bmN0aW9uLl9fbmFtZV9fCi0gICAgICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kMShzZWxm
KToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuZnVuY25hbWUgPT0gInRlc3RfbWV0
aG9kMSIKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2QyKHNlbGYpOgotICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQgc2VsZi5mdW5jbmFtZSA9PSAidGVzdF9tZXRob2QyIgotICAgICAg
ICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1z
IikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCi0KLSAgICBAcHl0ZXN0
Lm1hcmsueGZhaWwocmVhc29uPSInZW5hYmxlZCcgZmVhdHVyZSBub3QgaW1wbGVtZW50ZWQiKQot
ICAgIGRlZiB0ZXN0X3NldHVwX2VuYWJsZWRfZnVuY3Rpb25ub2RlKHNlbGYsIHRlc3RkaXIpOgot
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgZGVmIGVuYWJsZWQocGFyZW50bm9kZSwgbWFy
a2Vycyk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJuZWVkc2RiIiBpbiBtYXJrZXJzCi0KLSAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsMl0pCi0gICAgICAgICAgICBkZWYg
ZGIocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGVuYWJsZWQ9ZW5hYmxlZCwgYXV0b3VzZT1UcnVlKQot
ICAgICAgICAgICAgZGVmIGNyZWF0ZWRiKGRiKToKLSAgICAgICAgICAgICAgICBwYXNzCi0KLSAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIGFzc2Vy
dCAiZGIiIG5vdCBpbiByZXF1ZXN0LmZpeHR1cmVuYW1lcwotCi0gICAgICAgICAgICBAcHl0ZXN0
Lm1hcmsubmVlZHNkYgotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIocmVxdWVzdCk6Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0ICJkYiIgaW4gcmVxdWVzdC5maXh0dXJlbmFtZXMKLSAgICAgICAg
IiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIp
Ci0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQotCi0gICAgZGVmIHRlc3Rf
Y2FsbGFibGVzX25vY29kZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIiIiCi0gICAgICAgIGFu
IGltcG9ydGVkIG1vY2suY2FsbCB3b3VsZCBicmVhayBzZXR1cC9mYWN0b3J5IGRpc2NvdmVyeQot
ICAgICAgICBkdWUgdG8gaXQgYmVpbmcgY2FsbGFibGUgYW5kIF9fY29kZV9fIG5vdCBiZWluZyBh
IGNvZGUgb2JqZWN0Ci0gICAgICAgICIiIgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgY2xhc3MgX2NhbGwodHVwbGUpOgotICAgICAgICAg
ICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsICprLCAqKmt3KToKLSAgICAgICAgICAgICAgICAgICBw
YXNzCi0gICAgICAgICAgICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgayk6Ci0gICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgICAgICAgICBjYWxsID0gX2NhbGwoKQotICAgICAg
ICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1z
IikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUoZmFpbGVkPTAsIHBhc3NlZD0wKQotCi0g
ICAgZGVmIHRlc3RfYXV0b3VzZV9pbl9jb25mdGVzdHMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IGEgPSB0ZXN0ZGlyLm1rZGlyKCJhIikKLSAgICAgICAgYiA9IHRlc3RkaXIubWtkaXIoImExIikK
LSAgICAgICAgY29uZnRlc3QgPSB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIi
IgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBoZWxsbygpOgotICAgICAgICAgICAgICAg
IHh4eAotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBjb25mdGVzdC5tb3ZlKGEuam9p
bihjb25mdGVzdC5iYXNlbmFtZSkpCi0gICAgICAgIGEuam9pbigidGVzdF9zb21ldGhpbmcucHki
KS53cml0ZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKLSAgICAgICAgYi5qb2luKCJ0ZXN0X290
aGVydGhpbmcucHkiKS53cml0ZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKLSAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICoxIHBhc3NlZCoxIGVycm9yKgot
ICAgICAgICAiIiIKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfYXV0b3VzZV9pbl9tb2R1bGVf
YW5kX3R3b19jbGFzc2VzKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAg
ICAgIHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVl
KQotICAgICAgICAgICAgZGVmIGFwcGVuZDEoKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBw
ZW5kKCJtb2R1bGUiKQotICAgICAgICAgICAgZGVmIHRlc3RfeCgpOgotICAgICAgICAgICAgICAg
IGFzc2VydCB2YWx1ZXMgPT0gWyJtb2R1bGUiXQotCi0gICAgICAgICAgICBjbGFzcyBUZXN0QShv
YmplY3QpOgotICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCi0g
ICAgICAgICAgICAgICAgZGVmIGFwcGVuZDIoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIHZh
bHVlcy5hcHBlbmQoIkEiKQotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYpOgot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsibW9kdWxlIiwgIm1vZHVsZSIs
ICJBIl0sIHZhbHVlcwotICAgICAgICAgICAgY2xhc3MgVGVzdEEyKG9iamVjdCk6Ci0gICAgICAg
ICAgICAgICAgZGVmIHRlc3Rfd29ybGQoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCB2YWx1ZXMgPT0gWyJtb2R1bGUiLCAibW9kdWxlIiwgIkEiLCAibW9kdWxlIl0sIHZhbHVlcwot
ICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKLQotCi1jbGFzcyBU
ZXN0QXV0b3VzZU1hbmFnZW1lbnQob2JqZWN0KToKLQotICAgIGRlZiB0ZXN0X2F1dG91c2VfY29u
ZnRlc3RfbWlkX2RpcmVjdG9yeShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgcGtnZGlyID0gdGVz
dGRpci5ta3B5ZGlyKCJ4eXoxMjMiKQotICAgICAgICBwa2dkaXIuam9pbigiY29uZnRlc3QucHki
KS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAg
ICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBhcHAoKToKLSAgICAgICAgICAg
ICAgICBpbXBvcnQgc3lzCi0gICAgICAgICAgICAgICAgc3lzLl9teWFwcCA9ICJoZWxsbyIKLSAg
ICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgdCA9IHBrZ2Rpci5l
bnN1cmUoInRlc3RzIiwgInRlc3RfYXBwLnB5IikKLSAgICAgICAgdC53cml0ZSgKLSAgICAgICAg
ICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgaW1wb3J0IHN5cwotICAgICAgICAgICAgZGVmIHRlc3RfYXBwKCk6Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0IHN5cy5fbXlhcHAgPT0gImhlbGxvIgotICAgICAgICAiIiIKLSAgICAgICAgICAg
ICkKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikK
LSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9h
dXRvdXNlX2hvbm9yZWRfZm9yX3lpZWxkKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
LSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICBk
ZWYgdHN0KCk6Ci0gICAgICAgICAgICAgICAgZ2xvYmFsIHgKLSAgICAgICAgICAgICAgICB4ID0g
MwotICAgICAgICAgICAgZGVmIHRlc3RfZ2VuKCk6Ci0gICAgICAgICAgICAgICAgZGVmIGYoaGVs
bG8pOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgeCA9PSBhYnMoaGVsbG8pCi0gICAgICAg
ICAgICAgICAgeWllbGQgZiwgMwotICAgICAgICAgICAgICAgIHlpZWxkIGYsIC0zCi0gICAgICAg
ICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0g
ICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQotCi0gICAgZGVmIHRlc3RfZnVu
Y2FyZ19hbmRfc2V0dXAoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAg
ICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxl
IikKLSAgICAgICAgICAgIGRlZiBhcmcoKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KDEpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0ibW9kdWxlIiwgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIHNvbWV0aGlu
ZyhhcmcpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMikKLQotICAgICAgICAgICAg
ZGVmIHRlc3RfaGVsbG8oYXJnKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykg
PT0gMgotICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsMl0KLSAgICAgICAgICAg
ICAgICBhc3NlcnQgYXJnID09IDAKLQotICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8yKGFyZyk6
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDIKLSAgICAgICAgICAgICAg
ICBhc3NlcnQgdmFsdWVzID09IFsxLDJdCi0gICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAw
Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQotCi0gICAgZGVm
IHRlc3RfdXNlc19wYXJhbWV0cml6ZWRfcmVzb3VyY2Uoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShwYXJhbXM9WzEsMl0pCi0gICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgotICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICBkZWYgc29tZXRoaW5nKGFyZyk6Ci0gICAg
ICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2hl
bGxvKCk6Ci0gICAgICAgICAgICAgICAgaWYgbGVuKHZhbHVlcykgPT0gMToKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMV0KLSAgICAgICAgICAgICAgICBlbGlmIGxlbih2
YWx1ZXMpID09IDI6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsIDJd
Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgMC8wCi0KLSAgICAg
ICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCIt
cyIpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQotCi0gICAgZGVmIHRl
c3Rfc2Vzc2lvbl9wYXJhbWV0cml6ZWRfZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotCi0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotCi0gICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iLCBwYXJhbXM9WzEsMl0pCi0gICAgICAgICAgICBkZWYg
YXJnKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIGF1dG91c2U9VHJ1ZSkK
LSAgICAgICAgICAgIGRlZiBhcHBlbmQocmVxdWVzdCwgYXJnKToKLSAgICAgICAgICAgICAgICBp
ZiByZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fID09ICJ0ZXN0X3NvbWUiOgotICAgICAgICAgICAg
ICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKLQotICAgICAgICAgICAgZGVmIHRlc3Rfc29tZSgp
OgotICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICAgICAgZGVmIHRlc3RfcmVzdWx0KGFy
Zyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IGFyZwotICAgICAgICAg
ICAgICAgIGFzc2VydCB2YWx1ZXNbOmFyZ10gPT0gWzEsMl1bOmFyZ10KLSAgICAgICAgIiIiCi0g
ICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdiIsICItcyIp
Ci0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD00KQotCi0gICAgZGVmIHRlc3Rf
Y2xhc3NfZnVuY3Rpb25fcGFyYW1ldHJpemF0aW9uX2ZpbmFsaXphdGlvbihzZWxmLCB0ZXN0ZGly
KToKLSAgICAgICAgcCA9IHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0g
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBpbXBvcnQgcHByaW50Ci0KLSAg
ICAgICAgICAgIHZhbHVlcyA9IFtdCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0iZnVuY3Rpb24iLCBwYXJhbXM9WzEsMl0pCi0gICAgICAgICAgICBkZWYgZmFyZyhyZXF1ZXN0
KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIiwgcGFyYW1zPWxpc3QoImFiIikpCi0gICAgICAg
ICAgICBkZWYgY2FyZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5w
YXJhbQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgYXV0
b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIGFwcGVuZChyZXF1ZXN0LCBmYXJnLCBjYXJnKToK
LSAgICAgICAgICAgICAgICBkZWYgZmluKCk6Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlcy5h
cHBlbmQoImZpbl8lcyVzIiAlIChjYXJnLCBmYXJnKSkKLSAgICAgICAgICAgICAgICByZXF1ZXN0
LmFkZGZpbmFsaXplcihmaW4pCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAotCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAg
ICBkZWYgdGVzdF8xKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAg
ICBjbGFzcyBUZXN0Q2xhc3MyKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgZGVmIHRlc3RfMihz
ZWxmKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQot
ICAgICAgICBjb25mY3V0ID0gIi0tY29uZmN1dGRpcj17fSIuZm9ybWF0KHRlc3RkaXIudG1wZGly
KQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12IiwgIi1zIiwgY29uZmN1
dCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTgpCi0gICAgICAgIGNvbmZp
ZyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3VuY29uZmlndXJlIilbMF0uY29uZmlnCi0gICAg
ICAgIHZhbHVlcyA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLl9nZXRjb25mdGVzdG1vZHVsZXMocClb
MF0udmFsdWVzCi0gICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJmaW5fYTEiLCAiZmluX2EyIiwg
ImZpbl9iMSIsICJmaW5fYjIiXSAqIDIKLQotICAgIGRlZiB0ZXN0X3Njb3BlX29yZGVyaW5nKHNl
bGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAi
IiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIHZhbHVlcyA9IFtdCi0g
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgYXV0b3VzZT1UcnVl
KQotICAgICAgICAgICAgZGVmIGZhcHBlbmQyKCk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgyKQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIsIGF1dG91
c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBjbGFzc2FwcGVuZDMoKToKLSAgICAgICAgICAgICAg
ICB2YWx1ZXMuYXBwZW5kKDMpCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1v
ZHVsZSIsIGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBtYXBwZW5kKCk6Ci0gICAgICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQotCi0gICAgICAgICAgICBjbGFzcyBUZXN0SGFsbG8o
b2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsMywyXQotICAgICAgICAiIiIKLSAgICAg
ICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKLQotICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXphdGlv
bl9zZXR1cF90ZWFyZG93bl9vcmRlcmluZyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0
ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAgICAgICAgICAgICAgaWYgbWV0YWZ1bmMuY2xzIGlzIE5v
bmU6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBtZXRhZnVuYy5mdW5jdGlvbiBpcyB0ZXN0
X2ZpbmlzaAotICAgICAgICAgICAgICAgIGlmIG1ldGFmdW5jLmNscyBpcyBub3QgTm9uZToKLSAg
ICAgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoIml0ZW0iLCBbMSwyXSwgc2Nv
cGU9ImNsYXNzIikKLSAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgotICAgICAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iY2xhc3MiLCBhdXRvdXNlPVRydWUpCi0g
ICAgICAgICAgICAgICAgZGVmIGFkZHRlYXJkb3duKHNlbGYsIGl0ZW0sIHJlcXVlc3QpOgotICAg
ICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJzZXR1cC0lZCIgJSBpdGVtKQotICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQo
InRlYXJkb3duLSVkIiAlIGl0ZW0pKQotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3N0ZXAxKHNl
bGYsIGl0ZW0pOgotICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJzdGVwMS0lZCIg
JSBpdGVtKQotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3N0ZXAyKHNlbGYsIGl0ZW0pOgotICAg
ICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJzdGVwMi0lZCIgJSBpdGVtKQotCi0gICAg
ICAgICAgICBkZWYgdGVzdF9maW5pc2goKToKLSAgICAgICAgICAgICAgICBwcmludCAodmFsdWVz
KQotICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJzZXR1cC0xIiwgInN0ZXAxLTEi
LCAic3RlcDItMSIsICJ0ZWFyZG93bi0xIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InNldHVwLTIiLCAic3RlcDEtMiIsICJzdGVwMi0yIiwgInRlYXJkb3duLTIiLF0KLSAgICAgICAg
IiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIp
Ci0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD01KQotCi0gICAgZGVmIHRlc3Rf
b3JkZXJpbmdfYXV0b3VzZV9iZWZvcmVfZXhwbGljaXQoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotCi0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBmaXgxKCk6Ci0gICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZCgxKQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKLSAg
ICAgICAgICAgIGRlZiBhcmcxKCk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgyKQot
ICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oYXJnMSk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
IHZhbHVlcyA9PSBbMSwyXQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNz
ZWQ9MSkKLQotICAgIEBweXRlc3QubWFyay5pc3N1ZTIyNgotICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgicGFyYW0xIiwgWyIiLCAicGFyYW1zPVsxXSJdLCBpZHM9WyJwMDAiLCAicDAxIl0p
Ci0gICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwYXJhbTIiLCBbIiIsICJwYXJhbXM9WzFd
Il0sIGlkcz1bInAxMCIsICJwMTEiXSkKLSAgICBkZWYgdGVzdF9vcmRlcmluZ19kZXBlbmRlbmNp
ZXNfdG9ybmRvd25fZmlyc3Qoc2VsZiwgdGVzdGRpciwgcGFyYW0xLCBwYXJhbTIpOgotICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKLSAgICAgICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoJShwYXJhbTEpcykKLSAgICAgICAgICAgIGRlZiBhcmcxKHJlcXVlc3QpOgotICAgICAg
ICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgiZmlu
MSIpKQotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIm5ldzEiKQotICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKCUocGFyYW0yKXMpCi0gICAgICAgICAgICBkZWYgYXJnMihyZXF1ZXN0
LCBhcmcxKToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZh
bHVlcy5hcHBlbmQoImZpbjIiKSkKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJuZXcy
IikKLQotICAgICAgICAgICAgZGVmIHRlc3RfYXJnKGFyZzIpOgotICAgICAgICAgICAgICAgIHBh
c3MKLSAgICAgICAgICAgIGRlZiB0ZXN0X2NoZWNrKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
IHZhbHVlcyA9PSBbIm5ldzEiLCAibmV3MiIsICJmaW4yIiwgImZpbjEiXQotICAgICAgICAiIiIK
LSAgICAgICAgICAgICUgbG9jYWxzKCkKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oIi1zIikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTIpCi0KLQotY2xhc3MgVGVzdEZpeHR1cmVNYXJrZXIob2JqZWN0KToKLQotICAgIGRlZiB0ZXN0
X3BhcmFtZXRyaXplKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
Ci0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShwYXJhbXM9WyJhIiwgImIiLCAiYyJdKQotICAgICAgICAgICAgZGVm
IGFyZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotICAg
ICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIGRlZiB0ZXN0X3BhcmFtKGFyZyk6Ci0g
ICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCi0gICAgICAgICAgICBkZWYgdGVzdF9y
ZXN1bHQoKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IGxpc3QoImFiYyIpCi0g
ICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD00KQotCi0gICAgZGVmIHRl
c3RfbXVsdGlwbGVfcGFyYW1ldHJpemF0aW9uX2lzc3VlXzczNihzZWxmLCB0ZXN0ZGlyKToKLSAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsMiwz
XSkKLSAgICAgICAgICAgIGRlZiBmb28ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdm
b29iYXInLCBbNCw1LDZdKQotICAgICAgICAgICAgZGVmIHRlc3RfaXNzdWUoZm9vLCBmb29iYXIp
OgotICAgICAgICAgICAgICAgIGFzc2VydCBmb28gaW4gWzEsMiwzXQotICAgICAgICAgICAgICAg
IGFzc2VydCBmb29iYXIgaW4gWzQsNSw2XQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShwYXNzZWQ9OSkKLQotICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKLSAgICAgICAg
InBhcmFtX2FyZ3MiLAotICAgICAgICBbIidmaXh0LCB2YWwnIiwgIidmaXh0LHZhbCciLCAiWydm
aXh0JywgJ3ZhbCddIiwgIignZml4dCcsICd2YWwnKSJdLAotICAgICkKLSAgICBkZWYgdGVzdF9v
dmVycmlkZV9wYXJhbWV0cml6ZWRfZml4dHVyZV9pc3N1ZV85Nzkoc2VsZiwgdGVzdGRpciwgcGFy
YW1fYXJncyk6Ci0gICAgICAgICIiIk1ha2Ugc3VyZSBhIHBhcmFtZXRyaXplZCBhcmd1bWVudCBj
YW4gb3ZlcnJpZGUgYSBwYXJhbWV0cml6ZWQgZml4dHVyZS4KLQotICAgICAgICBUaGlzIHdhcyBh
IHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBpbiB0aGUgZml4IGZvciAjNzM2LgotICAgICAgICAiIiIK
LSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEs
IDJdKQotICAgICAgICAgICAgZGVmIGZpeHQocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCVzLCBbKDMsICd4JyksICg0LCAneCcpXSkKLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhmaXh0
LCB2YWwpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0gICAgICAgICAgICAl
IHBhcmFtX2FyZ3MKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKLQotICAgIGRlZiB0
ZXN0X3Njb3BlX3Nlc3Npb24oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAg
ICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9k
dWxlIikKLSAgICAgICAgICAgIGRlZiBhcmcoKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBw
ZW5kKDEpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDEKLQotICAgICAgICAgICAgZGVmIHRlc3Rf
MShhcmcpOgotICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQotICAgICAgICAgICAgZGVm
IHRlc3RfMihhcmcpOgotICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQotICAgICAgICAg
ICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAxCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xh
c3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdDMoc2VsZiwgYXJnKToKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAxCi0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBsZW4odmFsdWVzKSA9PSAxCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD0zKQotCi0gICAgZGVmIHRlc3Rfc2NvcGVfc2Vzc2lvbl9leGMoc2VsZiwgdGVzdGRpcik6
Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCi0gICAgICAgICAgICBkZWYgZml4KCk6Ci0g
ICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQotICAgICAgICAgICAgICAgIHB5dGVzdC5z
a2lwKCdza2lwcGluZycpCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0XzEoZml4KToKLSAgICAgICAg
ICAgICAgICBwYXNzCi0gICAgICAgICAgICBkZWYgdGVzdF8yKGZpeCk6Ci0gICAgICAgICAgICAg
ICAgcGFzcwotICAgICAgICAgICAgZGVmIHRlc3RfbGFzdCgpOgotICAgICAgICAgICAgICAgIGFz
c2VydCB2YWx1ZXMgPT0gWzFdCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNr
aXBwZWQ9MiwgcGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9zY29wZV9zZXNzaW9uX2V4Y190d29f
Zml4KHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAg
ICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIHZhbHVlcyA9
IFtdCi0gICAgICAgICAgICBtID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0ic2Vzc2lvbiIpCi0gICAgICAgICAgICBkZWYgYSgpOgotICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoMSkKLSAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgnc2tpcHBpbmcnKQotICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKLSAgICAgICAgICAgIGRl
ZiBiKGEpOgotICAgICAgICAgICAgICAgIG0uYXBwZW5kKDEpCi0KLSAgICAgICAgICAgIGRlZiB0
ZXN0XzEoYik6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZGVmIHRlc3RfMihi
KToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBkZWYgdGVzdF9sYXN0KCk6Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMV0KLSAgICAgICAgICAgICAgICBhc3Nl
cnQgbSA9PSBbXQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShza2lwcGVkPTIs
IHBhc3NlZD0xKQotCi0gICAgZGVmIHRlc3Rfc2NvcGVfZXhjKHNlbGYsIHRlc3RkaXIpOgotICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICB0ZXN0X2Zvbz0iIiIKLSAgICAg
ICAgICAgICAgICBkZWYgdGVzdF9mb28oZml4KToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwot
ICAgICAgICAgICAgIiIiLAotICAgICAgICAgICAgdGVzdF9iYXI9IiIiCi0gICAgICAgICAgICAg
ICAgZGVmIHRlc3RfYmFyKGZpeCk6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAg
ICAgICIiIiwKLSAgICAgICAgICAgIGNvbmZ0ZXN0PSIiIgotICAgICAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKLSAgICAgICAgICAgICAgICByZXFzID0gW10KLSAgICAgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQotICAgICAgICAgICAgICAgIGRlZiBmaXgocmVx
dWVzdCk6Ci0gICAgICAgICAgICAgICAgICAgIHJlcXMuYXBwZW5kKDEpCi0gICAgICAgICAgICAg
ICAgICAgIHB5dGVzdC5za2lwKCkKLSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAg
ICAgICAgICAgICAgICBkZWYgcmVxX2xpc3QoKToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXMKLSAgICAgICAgICAgICIiIiwKLSAgICAgICAgICAgIHRlc3RfcmVhbD0iIiIKLSAgICAg
ICAgICAgICAgICBkZWYgdGVzdF9sYXN0KHJlcV9saXN0KToKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0IHJlcV9saXN0ID09IFsxXQotICAgICAgICAgICAgIiIiLAotICAgICAgICApCi0gICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKHNraXBwZWQ9MiwgcGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9zY29wZV9tb2R1bGVf
dXNlc19zZXNzaW9uKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
Ci0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAg
IHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIp
Ci0gICAgICAgICAgICBkZWYgYXJnKCk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgx
KQotICAgICAgICAgICAgICAgIHJldHVybiAxCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJn
KToKLSAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDEKLSAgICAgICAgICAgIGRlZiB0ZXN0
XzIoYXJnKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDEKLSAgICAgICAgICAgICAg
ICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQotICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9i
amVjdCk6Ci0gICAgICAgICAgICAgICAgZGVmIHRlc3QzKHNlbGYsIGFyZyk6Ci0gICAgICAgICAg
ICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVu
KHZhbHVlcykgPT0gMQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
MykKLQotICAgIGRlZiB0ZXN0X3Njb3BlX21vZHVsZV9hbmRfZmluYWxpemVyKHNlbGYsIHRlc3Rk
aXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgZmluYWxpemVkX2xpc3QgPSBbXQot
ICAgICAgICAgICAgY3JlYXRlZF9saXN0ID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0ibW9kdWxlIikKLSAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6Ci0gICAgICAg
ICAgICAgICAgY3JlYXRlZF9saXN0LmFwcGVuZCgxKQotICAgICAgICAgICAgICAgIGFzc2VydCBy
ZXF1ZXN0LnNjb3BlID09ICJtb2R1bGUiCi0gICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5h
bGl6ZXIobGFtYmRhOiBmaW5hbGl6ZWRfbGlzdC5hcHBlbmQoMSkpCi0gICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBjcmVhdGVkKHJlcXVlc3QpOgotICAgICAgICAg
ICAgICAgIHJldHVybiBsZW4oY3JlYXRlZF9saXN0KQotICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCi0gICAgICAgICAgICBkZWYgZmluYWxpemVkKHJlcXVlc3QpOgotICAgICAgICAgICAgICAg
IHJldHVybiBsZW4oZmluYWxpemVkX2xpc3QpCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgIHRlc3RfbW9kMT0iIiIKLSAgICAg
ICAgICAgICAgICBkZWYgdGVzdF8xKGFyZywgY3JlYXRlZCwgZmluYWxpemVkKToKLSAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IGNyZWF0ZWQgPT0gMQotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgZmluYWxpemVkID09IDAKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZywgY3JlYXRl
ZCwgZmluYWxpemVkKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGNyZWF0ZWQgPT0gMQot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmluYWxpemVkID09IDAiIiIsCi0gICAgICAgICAg
ICB0ZXN0X21vZDI9IiIiCi0gICAgICAgICAgICAgICAgZGVmIHRlc3RfMyhhcmcsIGNyZWF0ZWQs
IGZpbmFsaXplZCk6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBjcmVhdGVkID09IDIKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZpbmFsaXplZCA9PSAxIiIiLAotICAgICAgICAgICAg
dGVzdF9tb2RlMz0iIiIKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF80KGFyZywgY3JlYXRlZCwg
ZmluYWxpemVkKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGNyZWF0ZWQgPT0gMwotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQgZmluYWxpemVkID09IDIKLSAgICAgICAgICAgICIiIiwK
LSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NCkKLQotICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgKLSAgICAgICAgIm1ldGhvZCIsCi0gICAgICAgIFsKLSAgICAgICAgICAgICdyZXF1
ZXN0LmdldGZpeHR1cmV2YWx1ZSgiYXJnIiknLAotICAgICAgICAgICAgJ3JlcXVlc3QuY2FjaGVk
X3NldHVwKGxhbWJkYTogTm9uZSwgc2NvcGU9ImZ1bmN0aW9uIiknLAotICAgICAgICBdLAotICAg
ICAgICBpZHM9WyJnZXRmaXh0dXJldmFsdWUiLCAiY2FjaGVkX3NldHVwIl0sCi0gICAgKQotICAg
IGRlZiB0ZXN0X3Njb3BlX21pc21hdGNoX3ZhcmlvdXMoc2VsZiwgdGVzdGRpciwgbWV0aG9kKToK
LSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIGZpbmFsaXplZCA9IFtdCi0gICAgICAgICAg
ICBjcmVhdGVkID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rp
b24iKQotICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBwYXNz
Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAg
ICAgICAgICAgIHRlc3RfbW9kMT0iIiIKLSAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0g
ICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKLSAgICAgICAg
ICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgICAgICAlcwotICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICAlIG1ldGhvZAotICAgICAgICApCi0gICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0g
MAotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBbIipT
Y29wZU1pc21hdGNoKllvdSB0cmllZCpmdW5jdGlvbipzZXNzaW9uKnJlcXVlc3QqIl0KLSAgICAg
ICAgKQotCi0gICAgZGVmIHRlc3RfcmVnaXN0ZXJfb25seV93aXRoX21hcmsoc2VsZiwgdGVzdGRp
cik6Ci0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQotICAg
ICAgICAgICAgZGVmIGFyZygpOgotICAgICAgICAgICAgICAgIHJldHVybiAxCi0gICAgICAgICIi
IgotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgIHRl
c3RfbW9kMT0iIiIKLSAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKCkKLSAgICAgICAgICAgICAgICBkZWYgYXJnKGFyZyk6Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBhcmcgKyAxCi0gICAgICAgICAgICAgICAgZGVmIHRlc3Rf
MShhcmcpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDIKLSAgICAgICAgICAg
ICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0g
ICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQotCi0gICAgZGVmIHRlc3RfcGFy
YW1ldHJpemVfYW5kX3Njb3BlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgcGFyYW1zPVsiYSIsICJiIiwg
ImMiXSkKLSAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QucGFyYW0KLSAgICAgICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBk
ZWYgdGVzdF9wYXJhbShhcmcpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQot
ICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oIi12IikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTMpCi0gICAgICAg
IHZhbHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0u
bW9kdWxlLnZhbHVlcwotICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMwotICAgICAgICBh
c3NlcnQgImEiIGluIHZhbHVlcwotICAgICAgICBhc3NlcnQgImIiIGluIHZhbHVlcwotICAgICAg
ICBhc3NlcnQgImMiIGluIHZhbHVlcwotCi0gICAgZGVmIHRlc3Rfc2NvcGVfbWlzbWF0Y2goc2Vs
ZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9ImZ1bmN0aW9uIikKLSAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6Ci0gICAg
ICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
LSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCi0gICAgICAgICAg
ICBkZWYgYXJnKGFyZyk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZGVmIHRl
c3RfbWlzbWF0Y2goYXJnKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAg
ICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKlNjb3BlTWlzbWF0Y2gqIiwgIioxIGVycm9yKiJd
KQotCi0gICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfc2VwYXJhdGVkX29yZGVyKHNlbGYsIHRlc3Rk
aXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSJtb2R1bGUiLCBwYXJhbXM9WzEsIDJdKQotICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToK
LSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAgICB2YWx1
ZXMgPSBbXQotICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgotICAgICAgICAgICAgICAgIHZh
bHVlcy5hcHBlbmQoYXJnKQotICAgICAgICAgICAgZGVmIHRlc3RfMihhcmcpOgotICAgICAgICAg
ICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12IikKLSAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTQpCi0gICAgICAgIHZhbHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0
ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxlLnZhbHVlcwotICAgICAgICBhc3NlcnQg
dmFsdWVzID09IFsxLCAxLCAyLCAyXQotCi0gICAgZGVmIHRlc3RfbW9kdWxlX3BhcmFtZXRyaXpl
ZF9vcmRlcmluZyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlaW5pKAotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICBbcHl0ZXN0XQotICAgICAgICAgICAgY29uc29sZV9v
dXRwdXRfc3R5bGU9Y2xhc3NpYwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iLCBwYXJh
bXM9InMxIHMyIi5zcGxpdCgpKQotICAgICAgICAgICAgZGVmIHNhcmcoKToKLSAgICAgICAgICAg
ICAgICBwYXNzCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBh
cmFtcz0ibTEgbTIiLnNwbGl0KCkpCi0gICAgICAgICAgICBkZWYgbWFyZygpOgotICAgICAgICAg
ICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAotICAgICAgICAgICAgdGVzdF9tb2QxPSIiIgotICAgICAgICAgICAgZGVmIHRlc3Rf
ZnVuYyhzYXJnKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBkZWYgdGVzdF9m
dW5jMShtYXJnKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIiwKLSAgICAgICAg
ICAgIHRlc3RfbW9kMj0iIiIKLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyKHNhcmcpOgotICAg
ICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMzKHNhcmcsIG1hcmcp
OgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMzYihzYXJn
LCBtYXJnKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBkZWYgdGVzdF9mdW5j
NChtYXJnKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIiwKLSAgICAgICAgKQot
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQotICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIHRlc3Rf
bW9kMS5weTo6dGVzdF9mdW5jW3MxXSBQQVNTRUQKLSAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6
dGVzdF9mdW5jMltzMV0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVu
YzNbczEtbTFdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMzYltz
MS1tMV0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzNbczEtbTJd
IFBBU1NFRAotICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMzYltzMS1tMl0gUEFT
U0VECi0gICAgICAgICAgICB0ZXN0X21vZDEucHk6OnRlc3RfZnVuY1tzMl0gUEFTU0VECi0gICAg
ICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzJbczJdIFBBU1NFRAotICAgICAgICAgICAg
dGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMzW3MyLW0xXSBQQVNTRUQKLSAgICAgICAgICAgIHRlc3Rf
bW9kMi5weTo6dGVzdF9mdW5jM2JbczItbTFdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9tb2Qy
LnB5Ojp0ZXN0X2Z1bmM0W20xXSBQQVNTRUQKLSAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVz
dF9mdW5jM1tzMi1tMl0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVu
YzNiW3MyLW0yXSBQQVNTRUQKLSAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jNFtt
Ml0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X21vZDEucHk6OnRlc3RfZnVuYzFbbTFdIFBBU1NF
RAotICAgICAgICAgICAgdGVzdF9tb2QxLnB5Ojp0ZXN0X2Z1bmMxW20yXSBQQVNTRUQKLSAgICAg
ICAgIiIiCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2R5bmFtaWNfcGFyYW1ldHJpemVkX29y
ZGVyaW5nKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoCi0gICAgICAg
ICAgICAiIiIKLSAgICAgICAgICAgIFtweXRlc3RdCi0gICAgICAgICAgICBjb25zb2xlX291dHB1
dF9zdHlsZT1jbGFzc2ljCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0KLSAgICAgICAgICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgICAgICAg
ICAgICAgY2xhc3MgRHluYW1pY0ZpeHR1cmVQbHVnaW4ob2JqZWN0KToKLSAgICAgICAgICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJywgcGFyYW1zPVsnZmxhdm9yMScs
ICdmbGF2b3IyJ10pCi0gICAgICAgICAgICAgICAgICAgIGRlZiBmbGF2b3Ioc2VsZiwgcmVxdWVz
dCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotICAgICAg
ICAgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKER5bmFtaWNGaXh0dXJlUGx1
Z2luKCksICdmbGF2b3ItZml4dHVyZScpCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0nc2Vzc2lvbicsIHBhcmFtcz1bJ3Z4bGFuJywgJ3ZsYW4nXSkKLSAgICAgICAgICAgIGRl
ZiBlbmNhcChyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQot
Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nLCBhdXRvdXNlPSdU
cnVlJykKLSAgICAgICAgICAgIGRlZiByZXByb3Zpc2lvbihyZXF1ZXN0LCBmbGF2b3IsIGVuY2Fw
KToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHRl
c3QocmVwcm92aXNpb24pOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGRlZiB0
ZXN0MihyZXByb3Zpc2lvbik6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAg
ICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQotICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgIHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6OnRlc3RbZmxhdm9yMS12
eGxhbl0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X2R5bmFtaWNfcGFyYW1ldHJpemVkX29yZGVy
aW5nLnB5Ojp0ZXN0MltmbGF2b3IxLXZ4bGFuXSBQQVNTRUQKLSAgICAgICAgICAgIHRlc3RfZHlu
YW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6OnRlc3RbZmxhdm9yMi12eGxhbl0gUEFTU0VE
Ci0gICAgICAgICAgICB0ZXN0X2R5bmFtaWNfcGFyYW1ldHJpemVkX29yZGVyaW5nLnB5Ojp0ZXN0
MltmbGF2b3IyLXZ4bGFuXSBQQVNTRUQKLSAgICAgICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0
cml6ZWRfb3JkZXJpbmcucHk6OnRlc3RbZmxhdm9yMi12bGFuXSBQQVNTRUQKLSAgICAgICAgICAg
IHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6OnRlc3QyW2ZsYXZvcjItdmxh
bl0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X2R5bmFtaWNfcGFyYW1ldHJpemVkX29yZGVyaW5n
LnB5Ojp0ZXN0W2ZsYXZvcjEtdmxhbl0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X2R5bmFtaWNf
cGFyYW1ldHJpemVkX29yZGVyaW5nLnB5Ojp0ZXN0MltmbGF2b3IxLXZsYW5dIFBBU1NFRAotICAg
ICAgICAiIiIKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfY2xhc3Nfb3JkZXJpbmcoc2VsZiwg
dGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZWluaSgKLSAgICAgICAgICAgICIiIgotICAg
ICAgICAgICAgW3B5dGVzdF0KLSAgICAgICAgICAgIGNvbnNvbGVfb3V0cHV0X3N0eWxlPWNsYXNz
aWMKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3Qo
Ci0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAg
ICAgdmFsdWVzID0gW10KLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5j
dGlvbiIsIHBhcmFtcz1bMSwyXSkKLSAgICAgICAgICAgIGRlZiBmYXJnKHJlcXVlc3QpOgotICAg
ICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShzY29wZT0iY2xhc3MiLCBwYXJhbXM9bGlzdCgiYWIiKSkKLSAgICAgICAgICAgIGRl
ZiBjYXJnKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0K
LSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBhdXRvdXNlPVRy
dWUpCi0gICAgICAgICAgICBkZWYgYXBwZW5kKHJlcXVlc3QsIGZhcmcsIGNhcmcpOgotICAgICAg
ICAgICAgICAgIGRlZiBmaW4oKToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgi
ZmluXyVzJXMiICUgKGNhcmcsIGZhcmcpKQotICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmlu
YWxpemVyKGZpbikKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAg
ICAgICAgICAgIGNsYXNzIFRlc3RDbGFzczIob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYg
dGVzdF8xKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICAgICAg
ZGVmIHRlc3RfMihzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAg
Y2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgZGVmIHRlc3RfMyhzZWxm
KToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXZzIikKLSAgICAgICAgcmVzdWx0LnN0
ZG91dC5yZV9tYXRjaF9saW5lcygKLSAgICAgICAgICAgIHIiIiIKLSAgICAgICAgICAgIHRlc3Rf
Y2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3RfMVxbYS0xXF0gUEFTU0VECi0gICAg
ICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzFcW2EtMlxd
IFBBU1NFRAotICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzMjo6
dGVzdF8yXFthLTFcXSBQQVNTRUQKLSAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6
OlRlc3RDbGFzczI6OnRlc3RfMlxbYS0yXF0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X2NsYXNz
X29yZGVyaW5nLnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzFcW2ItMVxdIFBBU1NFRAotICAgICAgICAg
ICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzMjo6dGVzdF8xXFtiLTJcXSBQQVNT
RUQKLSAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3Rf
MlxbYi0xXF0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0
Q2xhc3MyOjp0ZXN0XzJcW2ItMlxdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRl
cmluZy5weTo6VGVzdENsYXNzOjp0ZXN0XzNcW2EtMVxdIFBBU1NFRAotICAgICAgICAgICAgdGVz
dF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzOjp0ZXN0XzNcW2EtMlxdIFBBU1NFRAotICAg
ICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzOjp0ZXN0XzNcW2ItMVxd
IFBBU1NFRAotICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzOjp0
ZXN0XzNcW2ItMlxdIFBBU1NFRAotICAgICAgICAiIiIKLSAgICAgICAgKQotCi0gICAgZGVmIHRl
c3RfcGFyYW1ldHJpemVfc2VwYXJhdGVkX29yZGVyX2hpZ2hlcl9zY29wZV9maXJzdChzZWxmLCB0
ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0g
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0iZnVuY3Rpb24iLCBwYXJhbXM9WzEsIDJdKQotICAgICAgICAgICAgZGVmIGFyZyhyZXF1
ZXN0KToKLSAgICAgICAgICAgICAgICBwYXJhbSA9IHJlcXVlc3QucGFyYW0KLSAgICAgICAgICAg
ICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbjolcyIg
JSBwYXJhbSkpCi0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgiY3JlYXRlOiVzIiAlIHBh
cmFtKQotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgcGFyYW1zPVsibW9kMSIsICJtb2QyIl0p
Ci0gICAgICAgICAgICBkZWYgbW9kYXJnKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHBhcmFt
ID0gcmVxdWVzdC5wYXJhbQotICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxh
bWJkYTogdmFsdWVzLmFwcGVuZCgiZmluOiVzIiAlIHBhcmFtKSkKLSAgICAgICAgICAgICAgICB2
YWx1ZXMuYXBwZW5kKCJjcmVhdGU6JXMiICUgcGFyYW0pCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIGRl
ZiB0ZXN0XzEoYXJnKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0MSIpCi0g
ICAgICAgICAgICBkZWYgdGVzdF8yKG1vZGFyZyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgidGVzdDIiKQotICAgICAgICAgICAgZGVmIHRlc3RfMyhhcmcsIG1vZGFyZyk6Ci0gICAg
ICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgidGVzdDMiKQotICAgICAgICAgICAgZGVmIHRlc3Rf
NChtb2RhcmcsIGFyZyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgidGVzdDQiKQot
ICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oIi12IikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEyKQotICAgICAg
ICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X2NhbGwiKVswXS5pdGVt
Lm1vZHVsZS52YWx1ZXMKLSAgICAgICAgZXhwZWN0ZWQgPSBbCi0gICAgICAgICAgICAiY3JlYXRl
OjEiLAotICAgICAgICAgICAgInRlc3QxIiwKLSAgICAgICAgICAgICJmaW46MSIsCi0gICAgICAg
ICAgICAiY3JlYXRlOjIiLAotICAgICAgICAgICAgInRlc3QxIiwKLSAgICAgICAgICAgICJmaW46
MiIsCi0gICAgICAgICAgICAiY3JlYXRlOm1vZDEiLAotICAgICAgICAgICAgInRlc3QyIiwKLSAg
ICAgICAgICAgICJjcmVhdGU6MSIsCi0gICAgICAgICAgICAidGVzdDMiLAotICAgICAgICAgICAg
ImZpbjoxIiwKLSAgICAgICAgICAgICJjcmVhdGU6MiIsCi0gICAgICAgICAgICAidGVzdDMiLAot
ICAgICAgICAgICAgImZpbjoyIiwKLSAgICAgICAgICAgICJjcmVhdGU6MSIsCi0gICAgICAgICAg
ICAidGVzdDQiLAotICAgICAgICAgICAgImZpbjoxIiwKLSAgICAgICAgICAgICJjcmVhdGU6MiIs
Ci0gICAgICAgICAgICAidGVzdDQiLAotICAgICAgICAgICAgImZpbjoyIiwKLSAgICAgICAgICAg
ICJmaW46bW9kMSIsCi0gICAgICAgICAgICAiY3JlYXRlOm1vZDIiLAotICAgICAgICAgICAgInRl
c3QyIiwKLSAgICAgICAgICAgICJjcmVhdGU6MSIsCi0gICAgICAgICAgICAidGVzdDMiLAotICAg
ICAgICAgICAgImZpbjoxIiwKLSAgICAgICAgICAgICJjcmVhdGU6MiIsCi0gICAgICAgICAgICAi
dGVzdDMiLAotICAgICAgICAgICAgImZpbjoyIiwKLSAgICAgICAgICAgICJjcmVhdGU6MSIsCi0g
ICAgICAgICAgICAidGVzdDQiLAotICAgICAgICAgICAgImZpbjoxIiwKLSAgICAgICAgICAgICJj
cmVhdGU6MiIsCi0gICAgICAgICAgICAidGVzdDQiLAotICAgICAgICAgICAgImZpbjoyIiwKLSAg
ICAgICAgICAgICJmaW46bW9kMiIsCi0gICAgICAgIF0KLSAgICAgICAgaW1wb3J0IHBwcmludAot
Ci0gICAgICAgIHBwcmludC5wcHJpbnQobGlzdCh6aXAodmFsdWVzLCBleHBlY3RlZCkpKQotICAg
ICAgICBhc3NlcnQgdmFsdWVzID09IGV4cGVjdGVkCi0KLSAgICBkZWYgdGVzdF9wYXJhbWV0cml6
ZWRfZml4dHVyZV90ZWFyZG93bl9vcmRlcihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLDJdLCBzY29wZT0iY2xhc3Mi
KQotICAgICAgICAgICAgZGVmIHBhcmFtMShyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1
cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotCi0gICAgICAgICAg
ICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBAY2xhc3NtZXRob2QK
LSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIiwgYXV0b3VzZT1U
cnVlKQotICAgICAgICAgICAgICAgIGRlZiBzZXR1cDEoc2VsZiwgcmVxdWVzdCwgcGFyYW0xKToK
LSAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQotICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJkb3duMSkKLSAgICAgICAgICAgICAgICBA
Y2xhc3NtZXRob2QKLSAgICAgICAgICAgICAgICBkZWYgdGVhcmRvd24xKHNlbGYpOgotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzLnBvcCgpID09IDEKLSAgICAgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIiwgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAg
ICAgIGRlZiBzZXR1cDIoc2VsZiwgcmVxdWVzdCwgcGFyYW0xKToKLSAgICAgICAgICAgICAgICAg
ICAgdmFsdWVzLmFwcGVuZCgyKQotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFs
aXplcihzZWxmLnRlYXJkb3duMikKLSAgICAgICAgICAgICAgICBAY2xhc3NtZXRob2QKLSAgICAg
ICAgICAgICAgICBkZWYgdGVhcmRvd24yKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgdmFsdWVzLnBvcCgpID09IDIKLSAgICAgICAgICAgICAgICBkZWYgdGVzdChzZWxmKToKLSAg
ICAgICAgICAgICAgICAgICAgcGFzcwotCi0gICAgICAgICAgICBkZWYgdGVzdF9maW5pc2goKToK
LSAgICAgICAgICAgICAgICBhc3NlcnQgbm90IHZhbHVlcwotICAgICAgICAiIiIKLSAgICAgICAg
KQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQotICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICoz
IHBhc3NlZCoKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgYXNzZXJ0ICJlcnJvciIg
bm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKLQotICAgIGRlZiB0ZXN0X2ZpeHR1cmVfZmluYWxp
emVyKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAg
ICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgaW1wb3J0
IHN5cwotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBicm93
c2VyKHJlcXVlc3QpOgotCi0gICAgICAgICAgICAgICAgZGVmIGZpbmFsaXplKCk6Ci0gICAgICAg
ICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJ0ZpbmFsaXplZCcpCi0gICAgICAgICAgICAg
ICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluYWxpemUpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHt9Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIGIgPSB0ZXN0ZGlyLm1rZGlyKCJz
dWJkaXIiKQotICAgICAgICBiLmpvaW4oInRlc3Rfb3ZlcnJpZGRlbl9maXh0dXJlX2ZpbmFsaXpl
ci5weSIpLndyaXRlKAotICAgICAgICAgICAgZGVkZW50KAotICAgICAgICAgICAgICAgICIiIgot
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0g
ICAgICAgICAgICBkZWYgYnJvd3Nlcihicm93c2VyKToKLSAgICAgICAgICAgICAgICBicm93c2Vy
Wyd2aXNpdGVkJ10gPSBUcnVlCi0gICAgICAgICAgICAgICAgcmV0dXJuIGJyb3dzZXIKLQotICAg
ICAgICAgICAgZGVmIHRlc3RfYnJvd3Nlcihicm93c2VyKToKLSAgICAgICAgICAgICAgICBhc3Nl
cnQgYnJvd3NlclsndmlzaXRlZCddIGlzIFRydWUKLSAgICAgICAgIiIiCi0gICAgICAgICAgICAp
Ci0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAg
ICAgICAgZm9yIHRlc3QgaW4gWyJ0ZXN0X2Jyb3dzZXIiXToKLSAgICAgICAgICAgIHJlcHJlYy5z
dGRvdXQuZm5tYXRjaF9saW5lcygiKkZpbmFsaXplZCoiKQotCi0gICAgZGVmIHRlc3RfY2xhc3Nf
c2NvcGVfd2l0aF9ub3JtYWxfdGVzdHMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RwYXRo
ID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIGNsYXNzIEJveChvYmplY3QpOgotICAgICAgICAgICAg
ICAgIHZhbHVlID0gMAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2NsYXNz
JykKLSAgICAgICAgICAgIGRlZiBhKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIEJveC52YWx1
ZSArPSAxCi0gICAgICAgICAgICAgICAgcmV0dXJuIEJveC52YWx1ZQotCi0gICAgICAgICAgICBk
ZWYgdGVzdF9hKGEpOgotICAgICAgICAgICAgICAgIGFzc2VydCBhID09IDEKLQotICAgICAgICAg
ICAgY2xhc3MgVGVzdDEob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9iKHNlbGYs
IGEpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYSA9PSAyCi0KLSAgICAgICAgICAgIGNs
YXNzIFRlc3QyKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgZGVmIHRlc3RfYyhzZWxmLCBhKToK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGEgPT0gMyIiIgotICAgICAgICApCi0gICAgICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bih0ZXN0cGF0aCkKLSAgICAgICAgZm9yIHRlc3Qg
aW4gWyJ0ZXN0X2EiLCAidGVzdF9iIiwgInRlc3RfYyJdOgotICAgICAgICAgICAgYXNzZXJ0IHJl
cHJlYy5tYXRjaHJlcG9ydCh0ZXN0KS5wYXNzZWQKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfaXNf
Y2xlYW4oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAg
ICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgdmFsdWVz
ID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsIDJdKQotICAgICAg
ICAgICAgZGVmIGZpeChyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFs
aXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQocmVxdWVzdC5wYXJhbSkpCi0gICAgICAgICAgICBk
ZWYgdGVzdF9maXgoZml4KToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAg
ICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXMiKQotICAgICAg
ICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X2NhbGwiKVswXS5pdGVt
Lm1vZHVsZS52YWx1ZXMKLSAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwgMl0KLQotICAgIGRl
ZiB0ZXN0X3BhcmFtZXRyaXplX3NlcGFyYXRlZF9saWZlY3ljbGUoc2VsZiwgdGVzdGRpcik6Ci0g
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9WzEsIDJdKQotICAgICAgICAgICAg
ZGVmIGFyZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICB4ID0gcmVxdWVzdC5wYXJhbQotICAg
ICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgi
ZmluJXMiICUgeCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLSAgICAg
ICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFy
ZykKLSAgICAgICAgICAgIGRlZiB0ZXN0XzIoYXJnKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMu
YXBwZW5kKGFyZykKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVz
dGRpci5pbmxpbmVfcnVuKCItdnMiKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNz
ZWQ9NCkKLSAgICAgICAgdmFsdWVzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9j
YWxsIilbMF0uaXRlbS5tb2R1bGUudmFsdWVzCi0gICAgICAgIGltcG9ydCBwcHJpbnQKLQotICAg
ICAgICBwcHJpbnQucHByaW50KHZhbHVlcykKLSAgICAgICAgIyBhc3NlcnQgbGVuKHZhbHVlcykg
PT0gNgotICAgICAgICBhc3NlcnQgdmFsdWVzWzBdID09IHZhbHVlc1sxXSA9PSAxCi0gICAgICAg
IGFzc2VydCB2YWx1ZXNbMl0gPT0gImZpbjEiCi0gICAgICAgIGFzc2VydCB2YWx1ZXNbM10gPT0g
dmFsdWVzWzRdID09IDIKLSAgICAgICAgYXNzZXJ0IHZhbHVlc1s1XSA9PSAiZmluMiIKLQotICAg
IGRlZiB0ZXN0X3BhcmFtZXRyaXplX2Z1bmN0aW9uX3Njb3BlZF9maW5hbGl6ZXJzX2NhbGxlZChz
ZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShzY29wZT0iZnVuY3Rpb24iLCBwYXJhbXM9WzEsIDJdKQotICAgICAgICAgICAgZGVmIGFy
ZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICB4ID0gcmVxdWVzdC5wYXJhbQotICAgICAgICAg
ICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgiZmluJXMi
ICUgeCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAg
ICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKLSAgICAgICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKLSAgICAgICAgICAgIGRlZiB0ZXN0XzIoYXJnKToKLSAg
ICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKLSAgICAgICAgICAgIGRlZiB0ZXN0XzMo
KToKLSAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gOAotICAgICAgICAgICAg
ICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsICJmaW4xIiwgMiwgImZpbjIiLCAxLCAiZmluMSIsIDIs
ICJmaW4yIl0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCItdiIpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD01
KQotCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlMjQ2Ci0gICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJzY29wZSIsIFsic2Vzc2lvbiIsICJmdW5jdGlvbiIsICJtb2R1bGUiXSkKLSAgICBkZWYg
dGVzdF9maW5hbGl6ZXJfb3JkZXJfb25fcGFyYW1ldHJpemF0aW9uKHNlbGYsIHNjb3BlLCB0ZXN0
ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotCi0gICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9JShzY29wZSlyLCBwYXJhbXM9WyIxIl0pCi0gICAg
ICAgICAgICBkZWYgZml4MShyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVz
dC5wYXJhbQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9JShzY29wZSlyKQot
ICAgICAgICAgICAgZGVmIGZpeDIocmVxdWVzdCwgYmFzZSk6Ci0gICAgICAgICAgICAgICAgZGVm
IGNsZWFudXBfZml4MigpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbm90IHZhbHVlcywg
ImJhc2Ugc2hvdWxkIG5vdCBoYXZlIGJlZW4gZmluYWxpemVkIgotICAgICAgICAgICAgICAgIHJl
cXVlc3QuYWRkZmluYWxpemVyKGNsZWFudXBfZml4MikKLQotICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSUoc2NvcGUpcikKLSAgICAgICAgICAgIGRlZiBiYXNlKHJlcXVlc3QsIGZp
eDEpOgotICAgICAgICAgICAgICAgIGRlZiBjbGVhbnVwX2Jhc2UoKToKLSAgICAgICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZCgiZmluX2Jhc2UiKQotICAgICAgICAgICAgICAgICAgICBwcmlu
dCAoImZpbmFsaXppbmcgYmFzZSIpCi0gICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6
ZXIoY2xlYW51cF9iYXNlKQotCi0gICAgICAgICAgICBkZWYgdGVzdF9iZWdpbigpOgotICAgICAg
ICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGRlZiB0ZXN0X2JheihiYXNlLCBmaXgyKToKLSAg
ICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBkZWYgdGVzdF9vdGhlcigpOgotICAgICAg
ICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0gICAgICAgICAgICAlIHsic2NvcGUiOiBzY29w
ZX0KLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1sdnMi
KQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKLQotICAgIEBweXRlc3Qu
bWFyay5pc3N1ZTM5NgotICAgIGRlZiB0ZXN0X2NsYXNzX3Njb3BlX3BhcmFtZXRyaXphdGlvbl9v
cmRlcmluZyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1
ZXMgPSBbXQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bIkpvaG4iLCAiRG9l
Il0sIHNjb3BlPSJjbGFzcyIpCi0gICAgICAgICAgICBkZWYgaHVtYW4ocmVxdWVzdCk6Ci0gICAg
ICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKCJm
aW4gJXMiICUgcmVxdWVzdC5wYXJhbSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Qu
cGFyYW0KLQotICAgICAgICAgICAgY2xhc3MgVGVzdEdyZWV0aW5ncyhvYmplY3QpOgotICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYsIGh1bWFuKToKLSAgICAgICAgICAgICAgICAg
ICAgdmFsdWVzLmFwcGVuZCgidGVzdF9oZWxsbyIpCi0KLSAgICAgICAgICAgIGNsYXNzIFRlc3RN
ZXRyaWNzKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgZGVmIHRlc3RfbmFtZShzZWxmLCBodW1h
bik6Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInRlc3RfbmFtZSIpCi0KLSAg
ICAgICAgICAgICAgICBkZWYgdGVzdF9wb3B1bGF0aW9uKHNlbGYsIGh1bWFuKToKLSAgICAgICAg
ICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgidGVzdF9wb3B1bGF0aW9uIikKLSAgICAgICAgIiIi
Ci0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTYpCi0gICAgICAgIHZhbHVlcyA9IHJlcHJl
Yy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxlLnZhbHVlcwot
ICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgdmFsdWVzCi0gICAgICAgICAgICA9PSBbCi0g
ICAgICAgICAgICAgICAgInRlc3RfaGVsbG8iLAotICAgICAgICAgICAgICAgICJmaW4gSm9obiIs
Ci0gICAgICAgICAgICAgICAgInRlc3RfaGVsbG8iLAotICAgICAgICAgICAgICAgICJmaW4gRG9l
IiwKLSAgICAgICAgICAgICAgICAidGVzdF9uYW1lIiwKLSAgICAgICAgICAgICAgICAidGVzdF9w
b3B1bGF0aW9uIiwKLSAgICAgICAgICAgICAgICAiZmluIEpvaG4iLAotICAgICAgICAgICAgICAg
ICJ0ZXN0X25hbWUiLAotICAgICAgICAgICAgICAgICJ0ZXN0X3BvcHVsYXRpb24iLAotICAgICAg
ICAgICAgICAgICJmaW4gRG9lIiwKLSAgICAgICAgICAgIF0KLSAgICAgICAgKQotCi0gICAgZGVm
IHRlc3RfcGFyYW1ldHJpemVfc2V0dXBfZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBh
cmFtcz1bMSwgMl0pCi0gICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgotICAgICAgICAgICAg
ICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0ibW9kdWxlIiwgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIG15c2V0dXAocmVx
dWVzdCwgYXJnKToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6
IHZhbHVlcy5hcHBlbmQoImZpbiVzIiAlIGFyZykpCi0gICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgic2V0dXAlcyIgJSBhcmcpCi0KLSAgICAgICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAg
ICAgICBkZWYgdGVzdF8xKGFyZyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcp
Ci0gICAgICAgICAgICBkZWYgdGVzdF8yKGFyZyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZChhcmcpCi0gICAgICAgICAgICBkZWYgdGVzdF8zKCk6Ci0gICAgICAgICAgICAgICAgaW1w
b3J0IHBwcmludAotICAgICAgICAgICAgICAgIHBwcmludC5wcHJpbnQodmFsdWVzKQotICAgICAg
ICAgICAgICAgIGlmIGFyZyA9PSAxOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVz
ID09IFsic2V0dXAxIiwgMSwgMSwgXQotICAgICAgICAgICAgICAgIGVsaWYgYXJnID09IDI6Ci0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJzZXR1cDEiLCAxLCAxLCAiZmlu
MSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2V0dXAyIiwgMiwgMiwgXQot
Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigiLXYiKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NikKLQotICAg
IGRlZiB0ZXN0X2ZpeHR1cmVfbWFya2VkX2Z1bmN0aW9uX25vdF9jb2xsZWN0ZWRfYXNfdGVzdChz
ZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKLSAgICAgICAgICAgIGRlZiB0ZXN0X2FwcCgpOgotICAgICAgICAgICAgICAgIHJldHVybiAx
Ci0KLSAgICAgICAgICAgIGRlZiB0ZXN0X3NvbWV0aGluZyh0ZXN0X2FwcCk6Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0IHRlc3RfYXBwID09IDEKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9wYXJhbXNfYW5kX2lkcyhzZWxmLCB0ZXN0
ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJh
bXM9W29iamVjdCgpLCBvYmplY3QoKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRz
PVsnYWxwaGEnLCAnYmV0YSddKQotICAgICAgICAgICAgZGVmIGZpeChyZXF1ZXN0KToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAgICBkZWYgdGVzdF9m
b28oZml4KToKLSAgICAgICAgICAgICAgICBhc3NlcnQgMQotICAgICAgICAiIiIKLSAgICAgICAg
KQotICAgICAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQotICAgICAgICByZXMuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdF9mb28qYWxwaGEqIiwgIip0ZXN0X2ZvbypiZXRhKiJd
KQotCi0gICAgZGVmIHRlc3RfcGFyYW1zX2FuZF9pZHNfeWllbGRmaXh0dXJlKHNlbGYsIHRlc3Rk
aXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC55aWVsZF9maXh0dXJl
KHBhcmFtcz1bb2JqZWN0KCksIG9iamVjdCgpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZHM9WydhbHBoYScsICdiZXRhJ10pCi0gICAgICAgICAgICBkZWYgZml4KHJlcXVl
c3QpOgotICAgICAgICAgICAgICAgICB5aWVsZCByZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAg
IGRlZiB0ZXN0X2ZvbyhmaXgpOgotICAgICAgICAgICAgICAgIGFzc2VydCAxCi0gICAgICAgICIi
IgotICAgICAgICApCi0gICAgICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCi0gICAg
ICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip0ZXN0X2ZvbyphbHBoYSoiLCAiKnRlc3Rf
Zm9vKmJldGEqIl0pCi0KLSAgICBAcHl0ZXN0Lm1hcmsuaXNzdWU5MjAKLSAgICBkZWYgdGVzdF9k
ZXRlcm1pbmlzdGljX2ZpeHR1cmVfY29sbGVjdGlvbihzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRj
aCk6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9
Im1vZHVsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zPVsiQSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQiIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiQyJdKQotICAgICAgICAgICAgZGVmIEEocmVxdWVzdCk6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSJtb2R1bGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFt
cz1bIkRERERERERERCIsICJFRUVFRUVFRUVFRUUiLCAiRkZGRkZGRkZGRkYiLCAiYmFuYW5zZGEi
XSkKLSAgICAgICAgICAgIGRlZiBCKHJlcXVlc3QsIEEpOgotICAgICAgICAgICAgICAgIHJldHVy
biByZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhCKToKLSAgICAgICAg
ICAgICAgICAjIFNvbWV0aGluZyBmdW5reSBpcyBnb2luZyBvbiBoZXJlLgotICAgICAgICAgICAg
ICAgICMgRGVzcGl0ZSBzcGVjaWZpZWQgc2VlZHMsIG9uIHdoYXQgaXMgY29sbGVjdGVkLAotICAg
ICAgICAgICAgICAgICMgc29tZXRpbWVzIHdlIGdldCB1bmV4cGVjdGVkIHBhc3Nlcy4gaGFzaGlu
ZyBCIHNlZW1zCi0gICAgICAgICAgICAgICAgIyB0byBoZWxwPwotICAgICAgICAgICAgICAgIGFz
c2VydCBoYXNoKEIpIG9yIFRydWUKLSAgICAgICAgICAgICIiIgotICAgICAgICApCi0gICAgICAg
IG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9OSEFTSFNFRUQiLCAiMSIpCi0gICAgICAgIG91dDEg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCItdiIpCi0gICAgICAgIG1vbmtleXBhdGNo
LnNldGVudigiUFlUSE9OSEFTSFNFRUQiLCAiMiIpCi0gICAgICAgIG91dDIgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdF9zdWJwcm9jZXNzKCItdiIpCi0gICAgICAgIG91dDEgPSBbCi0gICAgICAgICAgICBs
aW5lCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBvdXQxLm91dGxpbmVzCi0gICAgICAgICAgICBp
ZiBsaW5lLnN0YXJ0c3dpdGgoInRlc3RfZGV0ZXJtaW5pc3RpY19maXh0dXJlX2NvbGxlY3Rpb24u
cHk6OnRlc3RfZm9vIikKLSAgICAgICAgXQotICAgICAgICBvdXQyID0gWwotICAgICAgICAgICAg
bGluZQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gb3V0Mi5vdXRsaW5lcwotICAgICAgICAgICAg
aWYgbGluZS5zdGFydHN3aXRoKCJ0ZXN0X2RldGVybWluaXN0aWNfZml4dHVyZV9jb2xsZWN0aW9u
LnB5Ojp0ZXN0X2ZvbyIpCi0gICAgICAgIF0KLSAgICAgICAgYXNzZXJ0IGxlbihvdXQxKSA9PSAx
MgotICAgICAgICBhc3NlcnQgb3V0MSA9PSBvdXQyCi0KLQotY2xhc3MgVGVzdFJlcXVlc3RTY29w
ZUFjY2VzcyhvYmplY3QpOgotICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgKLSAgICAgICAgKCJzY29wZSIsICJvayIsICJlcnJvciIpLAotICAgICAgICBbCi0gICAgICAg
ICAgICBbInNlc3Npb24iLCAiIiwgImZzcGF0aCBjbGFzcyBmdW5jdGlvbiBtb2R1bGUiXSwKLSAg
ICAgICAgICAgIFsibW9kdWxlIiwgIm1vZHVsZSBmc3BhdGgiLCAiY2xzIGZ1bmN0aW9uIl0sCi0g
ICAgICAgICAgICBbImNsYXNzIiwgIm1vZHVsZSBmc3BhdGggY2xzIiwgImZ1bmN0aW9uIl0sCi0g
ICAgICAgICAgICBbImZ1bmN0aW9uIiwgIm1vZHVsZSBmc3BhdGggY2xzIGZ1bmN0aW9uIiwgIiJd
LAotICAgICAgICBdLAotICAgICkKLQotICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYsIHRlc3RkaXIs
IHNjb3BlLCBvaywgZXJyb3IpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAg
ICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShzY29wZT0lciwgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIG15c2NvcGVk
KHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIGZvciB4IGluICVyOgotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgaGFzYXR0cihyZXF1ZXN0LCB4KQotICAgICAgICAgICAgICAgIGZvciB4IGlu
ICVyOgotICAgICAgICAgICAgICAgICAgICBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBs
YW1iZGE6Ci0gICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHJlcXVlc3QsIHgpKQotICAg
ICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0LnNlc3Npb24KLSAgICAgICAgICAgICAgICBhc3Nl
cnQgcmVxdWVzdC5jb25maWcKLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKLSAgICAgICAg
ICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICAgICAgJSAoc2NvcGUsIG9rLnNwbGl0
KCksIGVycm9yLnNwbGl0KCkpCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKCItbCIpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQot
Ci0gICAgZGVmIHRlc3RfZnVuY2FyZyhzZWxmLCB0ZXN0ZGlyLCBzY29wZSwgb2ssIGVycm9yKToK
LSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9JXIpCi0g
ICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIGZvciB4IGluICVy
OgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgaGFzYXR0cihyZXF1ZXN0LCB4KQotICAgICAg
ICAgICAgICAgIGZvciB4IGluICVyOgotICAgICAgICAgICAgICAgICAgICBweXRlc3QucmFpc2Vz
KEF0dHJpYnV0ZUVycm9yLCBsYW1iZGE6Ci0gICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRy
KHJlcXVlc3QsIHgpKQotICAgICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0LnNlc3Npb24KLSAg
ICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5jb25maWcKLSAgICAgICAgICAgIGRlZiB0ZXN0
X2Z1bmMoYXJnKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICAg
ICAgJSAoc2NvcGUsIG9rLnNwbGl0KCksIGVycm9yLnNwbGl0KCkpCi0gICAgICAgICkKLSAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTEpCi0KLQotY2xhc3MgVGVzdEVycm9ycyhvYmplY3QpOgotCi0gICAgZGVm
IHRlc3Rfc3ViZmFjdG9yeV9taXNzaW5nX2Z1bmNhcmcoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKLSAgICAgICAgICAgIGRlZiBn
ZW4ocXdlMTIzKToKLSAgICAgICAgICAgICAgICByZXR1cm4gMQotICAgICAgICAgICAgZGVmIHRl
c3Rfc29tZXRoaW5nKGdlbik6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAg
ICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIGFz
c2VydCByZXN1bHQucmV0ICE9IDAKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAotICAgICAgICAgICAgWyIqZGVmIGdlbihxd2UxMjMpOioiLCAiKmZpeHR1cmUqcXdlMTIzKm5v
dCBmb3VuZCoiLCAiKjEgZXJyb3IqIl0KLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfaXNzdWU0
OThfZml4dHVyZV9maW5hbGl6ZXJfZmFpbGluZyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBmaXgxKHJl
cXVlc3QpOgotICAgICAgICAgICAgICAgIGRlZiBmKCk6Ci0gICAgICAgICAgICAgICAgICAgIHJh
aXNlIEtleUVycm9yCi0gICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0KCkKLQotICAgICAgICAgICAgdmFsdWVzID0gW10K
LSAgICAgICAgICAgIGRlZiB0ZXN0XzEoZml4MSk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZChmaXgxKQotICAgICAgICAgICAgZGVmIHRlc3RfMihmaXgxKToKLSAgICAgICAgICAgICAg
ICB2YWx1ZXMuYXBwZW5kKGZpeDEpCi0gICAgICAgICAgICBkZWYgdGVzdF8zKCk6Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0IHZhbHVlc1swXSAhPSB2YWx1ZXNbMV0KLSAgICAgICAgIiIiCi0gICAg
ICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICpF
UlJPUip0ZWFyZG93bip0ZXN0XzEqCi0gICAgICAgICAgICAqS2V5RXJyb3IqCi0gICAgICAgICAg
ICAqRVJST1IqdGVhcmRvd24qdGVzdF8yKgotICAgICAgICAgICAgKktleUVycm9yKgotICAgICAg
ICAgICAgKjMgcGFzcyoyIGVycm9yKgotICAgICAgICAiIiIKLSAgICAgICAgKQotCi0gICAgZGVm
IHRlc3Rfc2V0dXBmdW5jX21pc3NpbmdfZnVuY2FyZyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQotICAgICAg
ICAgICAgZGVmIGdlbihxd2UxMjMpOgotICAgICAgICAgICAgICAgIHJldHVybiAxCi0gICAgICAg
ICAgICBkZWYgdGVzdF9zb21ldGhpbmcoKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAg
ICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAg
ICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCi0gICAgICAgICAgICBbIipkZWYgZ2VuKHF3ZTEyMyk6KiIsICIqZml4dHVyZSpx
d2UxMjMqbm90IGZvdW5kKiIsICIqMSBlcnJvcioiXQotICAgICAgICApCi0KLQotY2xhc3MgVGVz
dFNob3dGaXh0dXJlcyhvYmplY3QpOgotCi0gICAgZGVmIHRlc3RfZnVuY2FyZ19jb21wYXQoc2Vs
ZiwgdGVzdGRpcik6Ci0gICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWd1cmUoIi0t
ZnVuY2FyZ3MiKQotICAgICAgICBhc3NlcnQgY29uZmlnLm9wdGlvbi5zaG93Zml4dHVyZXMKLQot
ICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIikKLSAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsiKnRtcGRpcioiLCAiKnRlbXBvcmFyeSBkaXJlY3RvcnkqIl0pCi0K
LSAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX3ZlcmJvc2Uoc2VsZiwgdGVzdGRpcik6Ci0gICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIiwgIi12IikKLSAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKnRtcGRpciotLSp0bXBkaXIucHkqIiwg
Iip0ZW1wb3JhcnkgZGlyZWN0b3J5KiJdKQotCi0gICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc190
ZXN0bW9kdWxlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KAotICAgICAgICAgICAgJycnCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBfYXJnMCgpOgotICAgICAgICAgICAg
ICAgICIiIiBoaWRkZW4gIiIiCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAg
ICAgIGRlZiBhcmcxKCk6Ci0gICAgICAgICAgICAgICAgIiIiICBoZWxsbyB3b3JsZCAiIiIKLSAg
ICAgICAgJycnCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tZml4dHVyZXMiLCBwKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICp0bXBkaXIKLSAgICAgICAgICAgICpmaXh0dXJl
cyBkZWZpbmVkIGZyb20qCi0gICAgICAgICAgICAqYXJnMSoKLSAgICAgICAgICAgICpoZWxsbyB3
b3JsZCoKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgYXNzZXJ0ICJhcmcwIiBub3Qg
aW4gcmVzdWx0LnN0ZG91dC5zdHIoKQotCi0gICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ0
ZXN0bW9kIiwgW1RydWUsIEZhbHNlXSkKLSAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX2NvbmZ0
ZXN0KHNlbGYsIHRlc3RkaXIsIHRlc3Rtb2QpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVz
dCgKLSAgICAgICAgICAgICcnJwotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgYXJnMSgpOgotICAgICAgICAgICAg
ICAgICIiIiAgaGVsbG8gd29ybGQgIiIiCi0gICAgICAgICcnJwotICAgICAgICApCi0gICAgICAg
IGlmIHRlc3Rtb2Q6Ci0gICAgICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKLSAgICAgICAgICAg
ICAgICAgICAgcGFzcwotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIikKLSAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAqdG1wZGly
KgotICAgICAgICAgICAgKmZpeHR1cmVzIGRlZmluZWQgZnJvbSpjb25mdGVzdCoKLSAgICAgICAg
ICAgICphcmcxKgotICAgICAgICAgICAgKmhlbGxvIHdvcmxkKgotICAgICAgICAiIiIKLSAgICAg
ICAgKQotCi0gICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc190cmltbWVkX2RvYyhzZWxmLCB0ZXN0
ZGlyKToKLSAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgIGRlZGVu
dCgKLSAgICAgICAgICAgICAgICAnJycKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGFyZzEoKToKLSAgICAgICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgICAgICBsaW5lMQotICAgICAgICAgICAgICAgIGxpbmUy
Ci0KLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAg
ICAgICAgICAgZGVmIGFyZzIoKToKLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICAg
ICBsaW5lMQotICAgICAgICAgICAgICAgIGxpbmUyCi0KLSAgICAgICAgICAgICAgICAiIiIKLSAg
ICAgICAgJycnCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMiLCBwKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBkZWRlbnQoCi0gICAgICAgICAgICAgICAgIiIiCi0g
ICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQgZnJvbSB0ZXN0X3Nob3dfZml4dHVyZXNfdHJp
bW1lZF9kb2MgKgotICAgICAgICAgICAgYXJnMgotICAgICAgICAgICAgICAgIGxpbmUxCi0gICAg
ICAgICAgICAgICAgbGluZTIKLSAgICAgICAgICAgIGFyZzEKLSAgICAgICAgICAgICAgICBsaW5l
MQotICAgICAgICAgICAgICAgIGxpbmUyCi0KLSAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0g
ICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfZG9jKHNlbGYs
IHRlc3RkaXIpOgotICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAg
ZGVkZW50KAotICAgICAgICAgICAgICAgICcnJwotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAot
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgZml4dHVyZTEoKToK
LSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICAgICBsaW5lMQotICAgICAgICAgICAg
ICAgICAgICBpbmRlbnRlZCBsaW5lCi0gICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICcnJwot
ICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCItLWZpeHR1cmVzIiwgcCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAotICAgICAgICAgICAgZGVkZW50KAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAg
KiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9zaG93X2ZpeHR1cmVzX2luZGVudGVkX2RvYyAq
Ci0gICAgICAgICAgICBmaXh0dXJlMQotICAgICAgICAgICAgICAgIGxpbmUxCi0gICAgICAgICAg
ICAgICAgICAgIGluZGVudGVkIGxpbmUKLSAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAg
ICAgICkKLQotICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfZG9jX2ZpcnN0X2xp
bmVfdW5pbmRlbnRlZChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgKLSAgICAgICAgICAgIGRlZGVudCgKLSAgICAgICAgICAgICAgICAnJycKLSAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAg
ICAgZGVmIGZpeHR1cmUxKCk6Ci0gICAgICAgICAgICAgICAgIiIibGluZTEKLSAgICAgICAgICAg
ICAgICBsaW5lMgotICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCBsaW5lCi0gICAgICAgICAg
ICAgICAgIiIiCi0gICAgICAgICcnJwotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIiwgcCkKLSAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgZGVkZW50KAotICAgICAgICAg
ICAgICAgICIiIgotICAgICAgICAgICAgKiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9zaG93
X2ZpeHR1cmVzX2luZGVudGVkX2RvY19maXJzdF9saW5lX3VuaW5kZW50ZWQgKgotICAgICAgICAg
ICAgZml4dHVyZTEKLSAgICAgICAgICAgICAgICBsaW5lMQotICAgICAgICAgICAgICAgIGxpbmUy
Ci0gICAgICAgICAgICAgICAgICAgIGluZGVudGVkIGxpbmUKLSAgICAgICAgIiIiCi0gICAgICAg
ICAgICApCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRf
aW5fY2xhc3Moc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUo
Ci0gICAgICAgICAgICBkZWRlbnQoCi0gICAgICAgICAgICAgICAgJycnCi0gICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgICAgICBkZWYgZml4dHVyZTEo
c2VsZik6Ci0gICAgICAgICAgICAgICAgICAgICIiImxpbmUxCi0gICAgICAgICAgICAgICAgICAg
IGxpbmUyCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCBsaW5lCi0gICAgICAgICAg
ICAgICAgICAgICIiIgotICAgICAgICAnJycKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIsIHApCi0gICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAgICAgICAgIGRlZGVudCgKLSAgICAg
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICogZml4dHVyZXMgZGVmaW5lZCBmcm9tIHRlc3Rf
c2hvd19maXh0dXJlc19pbmRlbnRlZF9pbl9jbGFzcyAqCi0gICAgICAgICAgICBmaXh0dXJlMQot
ICAgICAgICAgICAgICAgIGxpbmUxCi0gICAgICAgICAgICAgICAgbGluZTIKLSAgICAgICAgICAg
ICAgICAgICAgaW5kZW50ZWQgbGluZQotICAgICAgICAiIiIKLSAgICAgICAgICAgICkKLSAgICAg
ICAgKQotCi0gICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc19kaWZmZXJlbnRfZmlsZXMoc2VsZiwg
dGVzdGRpcik6Ci0gICAgICAgICIiIgotICAgICAgICAjODMzOiAtLWZpeHR1cmVzIG9ubHkgc2hv
d3MgZml4dHVyZXMgZnJvbSBmaXJzdCBmaWxlCi0gICAgICAgICIiIgotICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCi0gICAgICAgICAgICB0ZXN0X2E9JycnCi0gICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGZp
eF9hKCk6Ci0gICAgICAgICAgICAgICAgIiIiRml4dHVyZSBBIiIiCi0gICAgICAgICAgICAgICAg
cGFzcwotCi0gICAgICAgICAgICBkZWYgdGVzdF9hKGZpeF9hKToKLSAgICAgICAgICAgICAgICBw
YXNzCi0gICAgICAgICcnJwotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
LSAgICAgICAgICAgIHRlc3RfYj0nJycKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgZml4X2IoKToKLSAgICAg
ICAgICAgICAgICAiIiJGaXh0dXJlIEIiIiIKLSAgICAgICAgICAgICAgICBwYXNzCi0KLSAgICAg
ICAgICAgIGRlZiB0ZXN0X2IoZml4X2IpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAg
JycnCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZml4
dHVyZXMiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAg
ICAiIiIKLSAgICAgICAgICAgICogZml4dHVyZXMgZGVmaW5lZCBmcm9tIHRlc3RfYSAqCi0gICAg
ICAgICAgICBmaXhfYQotICAgICAgICAgICAgICAgIEZpeHR1cmUgQQotCi0gICAgICAgICAgICAq
IGZpeHR1cmVzIGRlZmluZWQgZnJvbSB0ZXN0X2IgKgotICAgICAgICAgICAgZml4X2IKLSAgICAg
ICAgICAgICAgICBGaXh0dXJlIEIKLSAgICAgICAgIiIiCi0gICAgICAgICkKLQotICAgIGRlZiB0
ZXN0X3Nob3dfZml4dHVyZXNfd2l0aF9zYW1lX25hbWUoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgJycnCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBh
cmcxKCk6Ci0gICAgICAgICAgICAgICAgIiIiSGVsbG8gV29ybGQgaW4gY29uZnRlc3QucHkiIiIK
LSAgICAgICAgICAgICAgICByZXR1cm4gIkhlbGxvIFdvcmxkIgotICAgICAgICAnJycKLSAgICAg
ICAgKQotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGRlZiB0ZXN0X2ZvbyhhcmcxKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9
PSAiSGVsbG8gV29ybGQiCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICcnJwotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAot
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgYXJnMSgpOgotICAg
ICAgICAgICAgICAgICIiIkhpIGZyb20gdGVzdCBtb2R1bGUiIiIKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gIkhpIgotICAgICAgICAgICAgZGVmIHRlc3RfYmFyKGFyZzEpOgotICAgICAgICAgICAg
ICAgIGFzc2VydCBhcmcxID09ICJIaSIKLSAgICAgICAgJycnCi0gICAgICAgICkKLSAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMiKQotICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICogZml4
dHVyZXMgZGVmaW5lZCBmcm9tIGNvbmZ0ZXN0ICoKLSAgICAgICAgICAgIGFyZzEKLSAgICAgICAg
ICAgICAgICBIZWxsbyBXb3JsZCBpbiBjb25mdGVzdC5weQotCi0gICAgICAgICAgICAqIGZpeHR1
cmVzIGRlZmluZWQgZnJvbSB0ZXN0X3Nob3dfZml4dHVyZXNfd2l0aF9zYW1lX25hbWUgKgotICAg
ICAgICAgICAgYXJnMQotICAgICAgICAgICAgICAgIEhpIGZyb20gdGVzdCBtb2R1bGUKLSAgICAg
ICAgIiIiCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2ZpeHR1cmVfZGlzYWxsb3dfdHdpY2Uo
c2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhhdCBhcHBseWluZyBAcHl0ZXN0LmZpeHR1cmUgdHdp
Y2UgZ2VuZXJhdGVzIGFuIGVycm9yICgjMjMzNCkuIiIiCi0gICAgICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yKToKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBmb28oKToKLSAgICAgICAgICAg
ICAgICBwYXNzCi0KLQotQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJmbGF2b3IiLCBbImZpeHR1
cmUiLCAieWllbGRfZml4dHVyZSJdKQotY2xhc3MgVGVzdENvbnRleHRNYW5hZ2VyRml4dHVyZUZ1
bmNzKG9iamVjdCk6Ci0KLSAgICBkZWYgdGVzdF9zaW1wbGUoc2VsZiwgdGVzdGRpciwgZmxhdm9y
KToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LntmbGF2b3J9Ci0gICAgICAg
ICAgICBkZWYgYXJnMSgpOgotICAgICAgICAgICAgICAgIHByaW50ICgic2V0dXAiKQotICAgICAg
ICAgICAgICAgIHlpZWxkIDEKLSAgICAgICAgICAgICAgICBwcmludCAoInRlYXJkb3duIikKLSAg
ICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnMSk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0
MSAlcyIgJSBhcmcxKQotICAgICAgICAgICAgZGVmIHRlc3RfMihhcmcxKToKLSAgICAgICAgICAg
ICAgICBwcmludCAoInRlc3QyICVzIiAlIGFyZzEpCi0gICAgICAgICAgICAgICAgYXNzZXJ0IDAK
LSAgICAgICAgIiIiLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBmbGF2b3I9Zmxhdm9yCi0gICAg
ICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii1zIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICAqc2V0dXAqCi0gICAgICAgICAgICAqdGVzdDEgMSoKLSAgICAgICAg
ICAgICp0ZWFyZG93bioKLSAgICAgICAgICAgICpzZXR1cCoKLSAgICAgICAgICAgICp0ZXN0MiAx
KgotICAgICAgICAgICAgKnRlYXJkb3duKgotICAgICAgICAiIiIKLSAgICAgICAgKQotCi0gICAg
ZGVmIHRlc3Rfc2NvcGVkKHNlbGYsIHRlc3RkaXIsIGZsYXZvcik6Ci0gICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAot
ICAgICAgICAgICAgQHB5dGVzdC57Zmxhdm9yfShzY29wZT0ibW9kdWxlIikKLSAgICAgICAgICAg
IGRlZiBhcmcxKCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJzZXR1cCIpCi0gICAgICAgICAg
ICAgICAgeWllbGQgMQotICAgICAgICAgICAgICAgIHByaW50ICgidGVhcmRvd24iKQotICAgICAg
ICAgICAgZGVmIHRlc3RfMShhcmcxKToKLSAgICAgICAgICAgICAgICBwcmludCAoInRlc3QxICVz
IiAlIGFyZzEpCi0gICAgICAgICAgICBkZWYgdGVzdF8yKGFyZzEpOgotICAgICAgICAgICAgICAg
IHByaW50ICgidGVzdDIgJXMiICUgYXJnMSkKLSAgICAgICAgIiIiLmZvcm1hdCgKLSAgICAgICAg
ICAgICAgICBmbGF2b3I9Zmxhdm9yCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAqc2V0dXAqCi0gICAg
ICAgICAgICAqdGVzdDEgMSoKLSAgICAgICAgICAgICp0ZXN0MiAxKgotICAgICAgICAgICAgKnRl
YXJkb3duKgotICAgICAgICAiIiIKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rfc2V0dXBfZXhj
ZXB0aW9uKHNlbGYsIHRlc3RkaXIsIGZsYXZvcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAg
ICAgQHB5dGVzdC57Zmxhdm9yfShzY29wZT0ibW9kdWxlIikKLSAgICAgICAgICAgIGRlZiBhcmcx
KCk6Ci0gICAgICAgICAgICAgICAgcHl0ZXN0LmZhaWwoInNldHVwIikKLSAgICAgICAgICAgICAg
ICB5aWVsZCAxCi0gICAgICAgICAgICBkZWYgdGVzdF8xKGFyZzEpOgotICAgICAgICAgICAgICAg
IHBhc3MKLSAgICAgICAgIiIiLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBmbGF2b3I9Zmxhdm9y
Ci0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi1zIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICAqcHl0ZXN0LmZhaWwqc2V0dXAqCi0gICAgICAgICAgICAq
MSBlcnJvcioKLSAgICAgICAgIiIiCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3RlYXJkb3du
X2V4Y2VwdGlvbihzZWxmLCB0ZXN0ZGlyLCBmbGF2b3IpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAg
ICAgICAgIEBweXRlc3Que2ZsYXZvcn0oc2NvcGU9Im1vZHVsZSIpCi0gICAgICAgICAgICBkZWYg
YXJnMSgpOgotICAgICAgICAgICAgICAgIHlpZWxkIDEKLSAgICAgICAgICAgICAgICBweXRlc3Qu
ZmFpbCgidGVhcmRvd24iKQotICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcxKToKLSAgICAgICAg
ICAgICAgICBwYXNzCi0gICAgICAgICIiIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgZmxhdm9y
PWZsYXZvcgotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItcyIpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygK
LSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgKnB5dGVzdC5mYWlsKnRlYXJkb3duKgotICAg
ICAgICAgICAgKjEgcGFzc2VkKjEgZXJyb3IqCi0gICAgICAgICIiIgotICAgICAgICApCi0KLSAg
ICBkZWYgdGVzdF95aWVsZHNfbW9yZV90aGFuX29uZShzZWxmLCB0ZXN0ZGlyLCBmbGF2b3IpOgot
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3Que2ZsYXZvcn0oc2NvcGU9Im1vZHVs
ZSIpCi0gICAgICAgICAgICBkZWYgYXJnMSgpOgotICAgICAgICAgICAgICAgIHlpZWxkIDEKLSAg
ICAgICAgICAgICAgICB5aWVsZCAyCi0gICAgICAgICAgICBkZWYgdGVzdF8xKGFyZzEpOgotICAg
ICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBm
bGF2b3I9Zmxhdm9yCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAqZml4dHVyZSBmdW5jdGlvbioKLSAg
ICAgICAgICAgICp0ZXN0X3lpZWxkcyo6MioKLSAgICAgICAgIiIiCi0gICAgICAgICkKLQotICAg
IGRlZiB0ZXN0X2N1c3RvbV9uYW1lKHNlbGYsIHRlc3RkaXIsIGZsYXZvcik6Ci0gICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAotICAgICAgICAgICAgQHB5dGVzdC57Zmxhdm9yfShuYW1lPSdtZW93JykKLSAgICAgICAg
ICAgIGRlZiBhcmcxKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdtZXcnCi0gICAgICAgICAg
ICBkZWYgdGVzdF8xKG1lb3cpOgotICAgICAgICAgICAgICAgIHByaW50KG1lb3cpCi0gICAgICAg
ICIiIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgZmxhdm9yPWZsYXZvcgotICAgICAgICAgICAg
KQotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCi0g
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKm1ldyoiKQotCi0KLWNsYXNzIFRl
c3RQYXJhbWV0ZXJpemVkU3ViUmVxdWVzdChvYmplY3QpOgotCi0gICAgZGVmIHRlc3RfY2FsbF9m
cm9tX2ZpeHR1cmUoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci5t
YWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0K
LSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzAsIDEsIDJdKQotICAgICAgICAg
ICAgZGVmIGZpeF93aXRoX3BhcmFtKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiBy
ZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAg
ZGVmIGdldF9uYW1lZF9maXh0dXJlKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiBy
ZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgnZml4X3dpdGhfcGFyYW0nKQotCi0gICAgICAgICAgICBk
ZWYgdGVzdF9mb28ocmVxdWVzdCwgZ2V0X25hbWVkX2ZpeHR1cmUpOgotICAgICAgICAgICAgICAg
IHBhc3MKLSAgICAgICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICBFKkZhaWxlZDogVGhlIHJlcXVlc3RlZCBmaXh0dXJl
IGhhcyBubyBwYXJhbWV0ZXIgZGVmaW5lZCBmb3IgdGhlIGN1cnJlbnQgdGVzdC4KLSAgICAgICAg
ICAgIEUqCi0gICAgICAgICAgICBFKlJlcXVlc3RlZCBmaXh0dXJlICdmaXhfd2l0aF9wYXJhbScg
ZGVmaW5lZCBpbjoKLSAgICAgICAgICAgIEUqe306NAotICAgICAgICAgICAgRSpSZXF1ZXN0ZWQg
aGVyZToKLSAgICAgICAgICAgIEUqe306OQotICAgICAgICAgICAgKjEgZXJyb3IqCi0gICAgICAg
ICAgICAiIiIuZm9ybWF0KAotICAgICAgICAgICAgICAgIHRlc3RmaWxlLmJhc2VuYW1lLCB0ZXN0
ZmlsZS5iYXNlbmFtZQotICAgICAgICAgICAgKQotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9j
YWxsX2Zyb21fdGVzdChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGZpbGUgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
LQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMCwgMSwgMl0pCi0gICAgICAg
ICAgICBkZWYgZml4X3dpdGhfcGFyYW0ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHJlcXVlc3QpOgotICAg
ICAgICAgICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCdmaXhfd2l0aF9wYXJhbScpCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAgICAgICAg
ICIiIgotICAgICAgICAgICAgRSpGYWlsZWQ6IFRoZSByZXF1ZXN0ZWQgZml4dHVyZSBoYXMgbm8g
cGFyYW1ldGVyIGRlZmluZWQgZm9yIHRoZSBjdXJyZW50IHRlc3QuCi0gICAgICAgICAgICBFKgot
ICAgICAgICAgICAgRSpSZXF1ZXN0ZWQgZml4dHVyZSAnZml4X3dpdGhfcGFyYW0nIGRlZmluZWQg
aW46Ci0gICAgICAgICAgICBFKnt9OjQKLSAgICAgICAgICAgIEUqUmVxdWVzdGVkIGhlcmU6Ci0g
ICAgICAgICAgICBFKnt9OjgKLSAgICAgICAgICAgICoxIGZhaWxlZCoKLSAgICAgICAgICAgICIi
Ii5mb3JtYXQoCi0gICAgICAgICAgICAgICAgdGVzdGZpbGUuYmFzZW5hbWUsIHRlc3RmaWxlLmJh
c2VuYW1lCi0gICAgICAgICAgICApCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2V4dGVybmFs
X2ZpeHR1cmUoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIGNvbmZmaWxlID0gdGVzdGRpci5tYWtl
Y29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQot
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMCwgMSwgMl0pCi0gICAgICAgICAg
ICBkZWYgZml4X3dpdGhfcGFyYW0ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QucGFyYW0KLSAgICAgICAgICAgICIiIgotICAgICAgICApCi0KLSAgICAgICAgdGVzdGZp
bGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRl
ZiB0ZXN0X2ZvbyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmdldGZpeHR1cmV2
YWx1ZSgnZml4X3dpdGhfcGFyYW0nKQotICAgICAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIEUqRmFpbGVkOiBUaGUg
cmVxdWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFtZXRlciBkZWZpbmVkIGZvciB0aGUgY3VycmVu
dCB0ZXN0LgotICAgICAgICAgICAgRSoKLSAgICAgICAgICAgIEUqUmVxdWVzdGVkIGZpeHR1cmUg
J2ZpeF93aXRoX3BhcmFtJyBkZWZpbmVkIGluOgotICAgICAgICAgICAgRSp7fTo0Ci0gICAgICAg
ICAgICBFKlJlcXVlc3RlZCBoZXJlOgotICAgICAgICAgICAgRSp7fToyCi0gICAgICAgICAgICAq
MSBmYWlsZWQqCi0gICAgICAgICAgICAiIiIuZm9ybWF0KAotICAgICAgICAgICAgICAgIGNvbmZm
aWxlLmJhc2VuYW1lLCB0ZXN0ZmlsZS5iYXNlbmFtZQotICAgICAgICAgICAgKQotICAgICAgICAp
Ci0KLSAgICBkZWYgdGVzdF9ub25fcmVsYXRpdmVfcGF0aChzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgdGVzdHNfZGlyID0gdGVzdGRpci5ta2RpcigidGVzdHMiKQotICAgICAgICBmaXhkaXIgPSB0
ZXN0ZGlyLm1rZGlyKCJmaXh0dXJlcyIpCi0gICAgICAgIGZpeGZpbGUgPSBmaXhkaXIuam9pbigi
Zml4LnB5IikKLSAgICAgICAgZml4ZmlsZS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2Nv
ZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVswLCAxLCAyXSkKLSAgICAg
ICAgICAgIGRlZiBmaXhfd2l0aF9wYXJhbShyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1
cm4gcmVxdWVzdC5wYXJhbQotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAg
ICkKLQotICAgICAgICB0ZXN0ZmlsZSA9IHRlc3RzX2Rpci5qb2luKCJ0ZXN0X2Zvb3MucHkiKQot
ICAgICAgICB0ZXN0ZmlsZS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNl
KAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZnJvbSBmaXggaW1wb3J0IGZpeF93
aXRoX3BhcmFtCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhyZXF1ZXN0KToKLSAgICAgICAg
ICAgICAgICByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgnZml4X3dpdGhfcGFyYW0nKQotICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLQotICAgICAgICB0ZXN0c19kaXIu
Y2hkaXIoKQotICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoZml4ZGlyKQotICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcygKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgRSpGYWlsZWQ6IFRoZSByZXF1
ZXN0ZWQgZml4dHVyZSBoYXMgbm8gcGFyYW1ldGVyIGRlZmluZWQgZm9yIHRoZSBjdXJyZW50IHRl
c3QuCi0gICAgICAgICAgICBFKgotICAgICAgICAgICAgRSpSZXF1ZXN0ZWQgZml4dHVyZSAnZml4
X3dpdGhfcGFyYW0nIGRlZmluZWQgaW46Ci0gICAgICAgICAgICBFKnt9OjUKLSAgICAgICAgICAg
IEUqUmVxdWVzdGVkIGhlcmU6Ci0gICAgICAgICAgICBFKnt9OjUKLSAgICAgICAgICAgICoxIGZh
aWxlZCoKLSAgICAgICAgICAgICIiIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgZml4ZmlsZS5z
dHJwYXRoLCB0ZXN0ZmlsZS5iYXNlbmFtZQotICAgICAgICAgICAgKQotICAgICAgICApCi0KLQot
ZGVmIHRlc3RfcHl0ZXN0X2ZpeHR1cmVfc2V0dXBfYW5kX3Bvc3RfZmluYWxpemVyX2hvb2sodGVz
dGRpcik6Ci0gICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICIiIgotICAgICAgICBm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gICAgICAgIGRlZiBweXRlc3Rf
Zml4dHVyZV9zZXR1cChmaXh0dXJlZGVmLCByZXF1ZXN0KToKLSAgICAgICAgICAgIHByaW50KCdS
T09UIHNldHVwIGhvb2sgY2FsbGVkIGZvciB7MH0gZnJvbSB7MX0nLmZvcm1hdChmaXh0dXJlZGVm
LmFyZ25hbWUsIHJlcXVlc3Qubm9kZS5uYW1lKSkKLSAgICAgICAgZGVmIHB5dGVzdF9maXh0dXJl
X3Bvc3RfZmluYWxpemVyKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgotICAgICAgICAgICAgcHJpbnQo
J1JPT1QgZmluYWxpemVyIGhvb2sgY2FsbGVkIGZvciB7MH0gZnJvbSB7MX0nLmZvcm1hdChmaXh0
dXJlZGVmLmFyZ25hbWUsIHJlcXVlc3Qubm9kZS5uYW1lKSkKLSAgICAiIiIKLSAgICApCi0gICAg
dGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAqKnsKLSAgICAgICAgICAgICJ0ZXN0cy9jb25m
dGVzdC5weSI6ICIiIgotICAgICAgICAgICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9m
dW5jdGlvbgotICAgICAgICAgICAgZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYs
IHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHByaW50KCdURVNUUyBzZXR1cCBob29rIGNhbGxl
ZCBmb3IgezB9IGZyb20gezF9Jy5mb3JtYXQoZml4dHVyZWRlZi5hcmduYW1lLCByZXF1ZXN0Lm5v
ZGUubmFtZSkpCi0gICAgICAgICAgICBkZWYgcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIo
Zml4dHVyZWRlZiwgcmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQoJ1RFU1RTIGZpbmFs
aXplciBob29rIGNhbGxlZCBmb3IgezB9IGZyb20gezF9Jy5mb3JtYXQoZml4dHVyZWRlZi5hcmdu
YW1lLCByZXF1ZXN0Lm5vZGUubmFtZSkpCi0gICAgICAgICIiIiwKLSAgICAgICAgICAgICJ0ZXN0
cy90ZXN0X2hvb2tzLnB5IjogIiIiCi0gICAgICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IHByaW50X2Z1bmN0aW9uCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZSgpCi0gICAgICAgICAgICBkZWYgbXlfZml4dHVyZSgpOgotICAgICAg
ICAgICAgICAgIHJldHVybiAnc29tZScKLQotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhteV9m
aXh0dXJlKToKLSAgICAgICAgICAgICAgICBwcmludCgnVEVTVCB0ZXN0X2Z1bmMnKQotICAgICAg
ICAgICAgICAgIGFzc2VydCBteV9maXh0dXJlID09ICdzb21lJwotICAgICAgICAiIiIsCi0gICAg
ICAgIH0KLSAgICApCi0gICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCi0gICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAot
ICAgICAgICBbCi0gICAgICAgICAgICAiKlRFU1RTIHNldHVwIGhvb2sgY2FsbGVkIGZvciBteV9m
aXh0dXJlIGZyb20gdGVzdF9mdW5jKiIsCi0gICAgICAgICAgICAiKlJPT1Qgc2V0dXAgaG9vayBj
YWxsZWQgZm9yIG15X2ZpeHR1cmUgZnJvbSB0ZXN0X2Z1bmMqIiwKLSAgICAgICAgICAgICIqVEVT
VCB0ZXN0X2Z1bmMqIiwKLSAgICAgICAgICAgICIqVEVTVFMgZmluYWxpemVyIGhvb2sgY2FsbGVk
IGZvciBteV9maXh0dXJlIGZyb20gdGVzdF9mdW5jKiIsCi0gICAgICAgICAgICAiKlJPT1QgZmlu
YWxpemVyIGhvb2sgY2FsbGVkIGZvciBteV9maXh0dXJlIGZyb20gdGVzdF9mdW5jKiIsCi0gICAg
ICAgIF0KLSAgICApCi0KLQotY2xhc3MgVGVzdFNjb3BlT3JkZXJpbmcob2JqZWN0KToKLSAgICAi
IiJDbGFzcyBvZiB0ZXN0cyB0aGF0IGVuc3VyZSBmaXh0dXJlcyBhcmUgb3JkZXJlZCBiYXNlZCBv
biB0aGVpciBzY29wZXMgKCMyNDA1KSIiIgotCi0gICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJ1c2VfbWFyayIsIFtUcnVlLCBGYWxzZV0pCi0gICAgZGVmIHRlc3RfZnVuY19jbG9zdXJlX21v
ZHVsZV9hdXRvKHNlbGYsIHRlc3RkaXIsIHVzZV9tYXJrKToKLSAgICAgICAgIiIiU2VtYW50aWNh
bGx5IGlkZW50aWNhbCB0byB0aGUgZXhhbXBsZSBwb3N0ZWQgaW4gIzI0MDUgd2hlbiBgYHVzZV9t
YXJrPVRydWVgYCIiIgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAi
IiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHNjb3BlPSdtb2R1bGUnLCBhdXRvdXNlPXthdXRvdXNlfSkKLSAgICAgICAgICAgIGRlZiBt
MSgpOiBwYXNzCi0KLSAgICAgICAgICAgIGlmIHt1c2VfbWFya306Ci0gICAgICAgICAgICAgICAg
cHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdtMScpCi0KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24nLCBhdXRvdXNlPVRydWUpCi0gICAgICAg
ICAgICBkZWYgZjEoKTogcGFzcwotCi0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jKG0xKToKLSAg
ICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAg
YXV0b3VzZT1ub3QgdXNlX21hcmssIHVzZV9tYXJrPXVzZV9tYXJrCi0gICAgICAgICAgICApCi0g
ICAgICAgICkKLSAgICAgICAgaXRlbXMsIF8gPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcygpCi0g
ICAgICAgIHJlcXVlc3QgPSBGaXh0dXJlUmVxdWVzdChpdGVtc1swXSkKLSAgICAgICAgYXNzZXJ0
IHJlcXVlc3QuZml4dHVyZW5hbWVzID09ICJtMSBmMSIuc3BsaXQoKQotCi0gICAgZGVmIHRlc3Rf
ZnVuY19jbG9zdXJlX3dpdGhfbmF0aXZlX2ZpeHR1cmVzKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBh
dGNoKToKLSAgICAgICAgIiIiU2FuaXR5IGNoZWNrIHRoYXQgdmVyaWZpZXMgdGhlIG9yZGVyIHJl
dHVybmVkIGJ5IHRoZSBjbG9zdXJlcyBhbmQgdGhlIGFjdHVhbCBmaXh0dXJlIGV4ZWN1dGlvbiBv
cmRlcjoKLSAgICAgICAgVGhlIGV4ZWN1dGlvbiBvcmRlciBtYXkgZGlmZmVyIGJlY2F1c2Ugb2Yg
Zml4dHVyZSBpbnRlci1kZXBlbmRlbmNpZXMuCi0gICAgICAgICIiIgotICAgICAgICBtb25rZXlw
YXRjaC5zZXRhdHRyKHB5dGVzdCwgIkZJWFRVUkVfT1JERVIiLCBbXSwgcmFpc2luZz1GYWxzZSkK
LSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEZJWFRVUkVfT1JERVIgPSBweXRlc3QuRklY
VFVSRV9PUkRFUgotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24i
KQotICAgICAgICAgICAgZGVmIHMxKCk6Ci0gICAgICAgICAgICAgICAgRklYVFVSRV9PUkRFUi5h
cHBlbmQoJ3MxJykKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUi
KQotICAgICAgICAgICAgZGVmIG0xKCk6Ci0gICAgICAgICAgICAgICAgRklYVFVSRV9PUkRFUi5h
cHBlbmQoJ20xJykKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9u
JykKLSAgICAgICAgICAgIGRlZiBteV90bXBkaXJfZmFjdG9yeSgpOgotICAgICAgICAgICAgICAg
IEZJWFRVUkVfT1JERVIuYXBwZW5kKCdteV90bXBkaXJfZmFjdG9yeScpCi0KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIG15X3RtcGRpcihteV90bXBkaXJfZmFj
dG9yeSk6Ci0gICAgICAgICAgICAgICAgRklYVFVSRV9PUkRFUi5hcHBlbmQoJ215X3RtcGRpcicp
Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGYxKG15X3Rt
cGRpcik6Ci0gICAgICAgICAgICAgICAgRklYVFVSRV9PUkRFUi5hcHBlbmQoJ2YxJykKLQotICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgZjIoKToKLSAgICAgICAg
ICAgICAgICBGSVhUVVJFX09SREVSLmFwcGVuZCgnZjInKQotCi0gICAgICAgICAgICBkZWYgdGVz
dF9mb28oZjEsIG0xLCBmMiwgczEpOiBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAg
ICAgIGl0ZW1zLCBfID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoKQotICAgICAgICByZXF1ZXN0
ID0gRml4dHVyZVJlcXVlc3QoaXRlbXNbMF0pCi0gICAgICAgICMgb3JkZXIgb2YgZml4dHVyZXMg
YmFzZWQgb24gdGhlaXIgc2NvcGUgYW5kIHBvc2l0aW9uIGluIHRoZSBwYXJhbWV0ZXIgbGlzdAot
ICAgICAgICBhc3NlcnQgcmVxdWVzdC5maXh0dXJlbmFtZXMgPT0gInMxIG15X3RtcGRpcl9mYWN0
b3J5IG0xIGYxIGYyIG15X3RtcGRpciIuc3BsaXQoKQotICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCi0gICAgICAgICMgYWN0dWFsIGZpeHR1cmUgZXhlY3V0aW9uIGRpZmZlcnM6IGRlcGVuZGVu
dCBmaXh0dXJlcyBtdXN0IGJlIGNyZWF0ZWQgZmlyc3QgKCJteV90bXBkaXIiKQotICAgICAgICBh
c3NlcnQgcHl0ZXN0LkZJWFRVUkVfT1JERVIgPT0gInMxIG15X3RtcGRpcl9mYWN0b3J5IG0xIG15
X3RtcGRpciBmMSBmMiIuc3BsaXQoKQotCi0gICAgZGVmIHRlc3RfZnVuY19jbG9zdXJlX21vZHVs
ZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShzY29wZT0nbW9kdWxlJykKLSAgICAgICAgICAgIGRlZiBtMSgpOiBwYXNzCi0KLSAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24nKQotICAgICAgICAgICAg
ZGVmIGYxKCk6IHBhc3MKLQotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhmMSwgbTEpOgotICAg
ICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgaXRlbXMs
IF8gPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcygpCi0gICAgICAgIHJlcXVlc3QgPSBGaXh0dXJl
UmVxdWVzdChpdGVtc1swXSkKLSAgICAgICAgYXNzZXJ0IHJlcXVlc3QuZml4dHVyZW5hbWVzID09
ICJtMSBmMSIuc3BsaXQoKQotCi0gICAgZGVmIHRlc3RfZnVuY19jbG9zdXJlX3Njb3Blc19yZW9y
ZGVyZWQoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgICIiIlRlc3QgZW5zdXJlcyB0aGF0IGZpeHR1
cmVzIGFyZSBvcmRlcmVkIGJ5IHNjb3BlIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIG9mIHRoZSBw
YXJhbWV0ZXJzLCBhbHRob3VnaAotICAgICAgICBmaXh0dXJlcyBvZiBzYW1lIHNjb3BlIGtlZXAg
dGhlIGRlY2xhcmVkIG9yZGVyCi0gICAgICAgICIiIgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKLSAgICAgICAgICAgIGRlZiBz
MSgpOiBwYXNzCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nbW9kdWxlJykK
LSAgICAgICAgICAgIGRlZiBtMSgpOiBwYXNzCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0nZnVuY3Rpb24nKQotICAgICAgICAgICAgZGVmIGYxKCk6IHBhc3MKLQotICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdmdW5jdGlvbicpCi0gICAgICAgICAgICBkZWYg
ZjIoKTogcGFzcwotCi0gICAgICAgICAgICBjbGFzcyBUZXN0OgotCi0gICAgICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSdjbGFzcycpCi0gICAgICAgICAgICAgICAgZGVmIGMxKGNs
cyk6IHBhc3MKLQotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZiwgZjIsIGYxLCBj
MSwgbTEsIHMxKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAg
ICAgKQotICAgICAgICBpdGVtcywgXyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKCkKLSAgICAg
ICAgcmVxdWVzdCA9IEZpeHR1cmVSZXF1ZXN0KGl0ZW1zWzBdKQotICAgICAgICBhc3NlcnQgcmVx
dWVzdC5maXh0dXJlbmFtZXMgPT0gInMxIG0xIGMxIGYyIGYxIi5zcGxpdCgpCi0KLSAgICBkZWYg
dGVzdF9mdW5jX2Nsb3N1cmVfc2FtZV9zY29wZV9jbG9zZXJfcm9vdF9maXJzdChzZWxmLCB0ZXN0
ZGlyKToKLSAgICAgICAgIiIiQXV0by11c2UgZml4dHVyZXMgb2Ygc2FtZSBzY29wZSBhcmUgb3Jk
ZXJlZCBieSBjbG9zZXItdG8tcm9vdCBmaXJzdCIiIgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J21vZHVsZScsIGF1dG91c2U9VHJ1ZSkKLSAg
ICAgICAgICAgIGRlZiBtX2NvbmYoKTogcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAqKnsKLSAgICAgICAgICAgICAg
ICAic3ViL2NvbmZ0ZXN0LnB5IjogIiIiCi0gICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAot
Ci0gICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdtb2R1bGUnLCBhdXRvdXNl
PVRydWUpCi0gICAgICAgICAgICAgICAgZGVmIG1fc3ViKCk6IHBhc3MKLSAgICAgICAgICAgICIi
IiwKLSAgICAgICAgICAgICAgICAic3ViL3Rlc3RfZnVuYy5weSI6ICIiIgotICAgICAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0nbW9kdWxlJywgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgICAgIGRlZiBtX3Rlc3QoKTog
cGFzcwotCi0gICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdmdW5jdGlvbicp
Ci0gICAgICAgICAgICAgICAgZGVmIGYxKCk6IHBhc3MKLQotICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X2Z1bmMobV90ZXN0LCBmMSk6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAg
IiIiLAotICAgICAgICAgICAgfQotICAgICAgICApCi0gICAgICAgIGl0ZW1zLCBfID0gdGVzdGRp
ci5pbmxpbmVfZ2VuaXRlbXMoKQotICAgICAgICByZXF1ZXN0ID0gRml4dHVyZVJlcXVlc3QoaXRl
bXNbMF0pCi0gICAgICAgIGFzc2VydCByZXF1ZXN0LmZpeHR1cmVuYW1lcyA9PSAibV9jb25mIG1f
c3ViIG1fdGVzdCBmMSIuc3BsaXQoKQotCi0gICAgZGVmIHRlc3RfZnVuY19jbG9zdXJlX2FsbF9z
Y29wZXNfY29tcGxleChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIiIiQ29tcGxleCB0ZXN0IGlu
dm9sdmluZyBhbGwgc2NvcGVzIGFuZCBtaXhpbmcgYXV0b3VzZSB3aXRoIG5vcm1hbCBmaXh0dXJl
cyIiIgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9J3Nlc3Npb24nKQotICAgICAgICAgICAgZGVmIHMxKCk6IHBhc3MKLSAgICAgICAgIiIiCi0g
ICAgICAgICkKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0g
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0nbW9kdWxlJywgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIG0xKCk6IHBhc3MK
LQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdtb2R1bGUnKQotICAgICAgICAg
ICAgZGVmIG0yKHMxKTogcGFzcwotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9
J2Z1bmN0aW9uJykKLSAgICAgICAgICAgIGRlZiBmMSgpOiBwYXNzCi0KLSAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24nKQotICAgICAgICAgICAgZGVmIGYyKCk6IHBh
c3MKLQotICAgICAgICAgICAgY2xhc3MgVGVzdDoKLQotICAgICAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShzY29wZT0nY2xhc3MnLCBhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICAgICAgZGVm
IGMxKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgICAgICAgICBk
ZWYgdGVzdF9mdW5jKHNlbGYsIGYyLCBmMSwgbTIpOgotICAgICAgICAgICAgICAgICAgICBwYXNz
Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIGl0ZW1zLCBfID0gdGVzdGRpci5pbmxp
bmVfZ2VuaXRlbXMoKQotICAgICAgICByZXF1ZXN0ID0gRml4dHVyZVJlcXVlc3QoaXRlbXNbMF0p
Ci0gICAgICAgIGFzc2VydCByZXF1ZXN0LmZpeHR1cmVuYW1lcyA9PSAiczEgbTEgbTIgYzEgZjIg
ZjEiLnNwbGl0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ZpeHR1
cmVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vZml4dHVyZXMucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDg2OTQzMWM2Mzk5ZTMwZDgwN2UzZjAzN2IxNDcyZDRhY2M0OGNiNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ZpeHR1cmVzLnB5CkBAIC0wLDAgKzEs
Mzk5NSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZXh0
d3JhcAorCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QgaW1wb3J0IGZpeHR1cmVzCitmcm9t
IF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IEZpeHR1cmVMb29rdXBFcnJvcgorZnJvbSBfcHl0ZXN0
LmZpeHR1cmVzIGltcG9ydCBGaXh0dXJlUmVxdWVzdAorZnJvbSBfcHl0ZXN0LnBhdGhsaWIgaW1w
b3J0IFBhdGgKK2Zyb20gX3B5dGVzdC5weXRlc3RlciBpbXBvcnQgZ2V0X3B1YmxpY19uYW1lcwor
ZnJvbSBfcHl0ZXN0Lndhcm5pbmdzIGltcG9ydCBTSE9XX1BZVEVTVF9XQVJOSU5HU19BUkcKKwor
CitkZWYgdGVzdF9nZXRmdW5jYXJnbmFtZXMoKToKKyAgICBkZWYgZigpOgorICAgICAgICBwYXNz
CisKKyAgICBhc3NlcnQgbm90IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhmKQorCisgICAgZGVm
IGcoYXJnKToKKyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IGZpeHR1cmVzLmdldGZ1bmNhcmdu
YW1lcyhnKSA9PSAoImFyZyIsKQorCisgICAgZGVmIGgoYXJnMSwgYXJnMj0iaGVsbG8iKToKKyAg
ICAgICAgcGFzcworCisgICAgYXNzZXJ0IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhoKSA9PSAo
ImFyZzEiLCkKKworICAgIGRlZiBoKGFyZzEsIGFyZzIsIGFyZzM9ImhlbGxvIik6CisgICAgICAg
IHBhc3MKKworICAgIGFzc2VydCBmaXh0dXJlcy5nZXRmdW5jYXJnbmFtZXMoaCkgPT0gKCJhcmcx
IiwgImFyZzIiKQorCisgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICBkZWYgZihzZWxmLCBh
cmcxLCBhcmcyPSJoZWxsbyIpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIEBzdGF0aWNt
ZXRob2QKKyAgICAgICAgZGVmIHN0YXRpYyhhcmcxLCBhcmcyKToKKyAgICAgICAgICAgIHBhc3MK
KworICAgIGFzc2VydCBmaXh0dXJlcy5nZXRmdW5jYXJnbmFtZXMoQSgpLmYpID09ICgiYXJnMSIs
KQorICAgIGFzc2VydCBmaXh0dXJlcy5nZXRmdW5jYXJnbmFtZXMoQS5zdGF0aWMsIGNscz1BKSA9
PSAoImFyZzEiLCAiYXJnMiIpCisKKworQHB5dGVzdC5tYXJrLnB5dGVzdGVyX2V4YW1wbGVfcGF0
aCgiZml4dHVyZXMvZmlsbF9maXh0dXJlcyIpCitjbGFzcyBUZXN0RmlsbEZpeHR1cmVzKG9iamVj
dCk6CisgICAgZGVmIHRlc3RfZmlsbGZ1bmNhcmdzX2V4cG9zZWQoc2VsZik6CisgICAgICAgICMg
dXNlZCBieSBvZWpza2l0LCBrZXB0IGZvciBjb21wYXRpYmlsaXR5CisgICAgICAgIGFzc2VydCBw
eXRlc3QuX2ZpbGxmdW5jYXJncyA9PSBmaXh0dXJlcy5maWxsZml4dHVyZXMKKworICAgIGRlZiB0
ZXN0X2Z1bmNhcmdfbG9va3VwZmFpbHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
Y29weV9leGFtcGxlKCkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKSAgIyAi
LS1jb2xsZWN0LW9ubHkiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgKmRlZiB0ZXN0X2Z1bmMoc29tZSkqCisgICAgICAgICAgICAqZml4dHVyZSpzb21lKm5vdCBm
b3VuZCoKKyAgICAgICAgICAgICp4eXpzb21ldGhpbmcqCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgKQorCisgICAgZGVmIHRlc3RfZGV0ZWN0X3JlY3Vyc2l2ZV9kZXBlbmRlbmN5X2Vycm9yKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKAorICAgICAgICAgICAgWyIqcmVjdXJzaXZlIGRlcGVuZGVuY3kgaW52b2x2aW5nIGZp
eHR1cmUgJ2ZpeDEnIGRldGVjdGVkKiJdCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2Z1bmNh
cmdfYmFzaWMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCkK
KyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbShQYXRoKCJ0ZXN0X2Z1bmNhcmdfYmFzaWMu
cHkiKSkKKyAgICAgICAgZml4dHVyZXMuZmlsbGZpeHR1cmVzKGl0ZW0pCisgICAgICAgIGRlbCBp
dGVtLmZ1bmNhcmdzWyJyZXF1ZXN0Il0KKyAgICAgICAgYXNzZXJ0IGxlbihnZXRfcHVibGljX25h
bWVzKGl0ZW0uZnVuY2FyZ3MpKSA9PSAyCisgICAgICAgIGFzc2VydCBpdGVtLmZ1bmNhcmdzWyJz
b21lIl0gPT0gInRlc3RfZnVuYyIKKyAgICAgICAgYXNzZXJ0IGl0ZW0uZnVuY2FyZ3NbIm90aGVy
Il0gPT0gNDIKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmdfbG9va3VwX21vZHVsZWxldmVsKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgpCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD0yKQorCisgICAgZGVmIHRlc3RfZnVuY2FyZ19sb29rdXBfY2xhc3NsZXZlbChzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIuY29weV9leGFtcGxlKCkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3RfY29uZnRlc3RfZnVuY2FyZ3Nf
b25seV9hdmFpbGFibGVfaW5fc3ViZGlyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGly
LmNvcHlfZXhhbXBsZSgpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIp
CisgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTIpCisKKyAgICBkZWYgdGVz
dF9leHRlbmRfZml4dHVyZV9tb2R1bGVfY2xhc3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RmaWxlID0gdGVzdGRpci5jb3B5X2V4YW1wbGUoKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBh
c3NlZCoiXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZpbGUpCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKworICAg
IGRlZiB0ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVsZShzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgcCA9IHRlc3RkaXIuY29weV9leGFtcGxlKCkKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
MSBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KG5leHQocC52
aXNpdCgidGVzdF8qLnB5IikpKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyIqMSBwYXNzZWQqIl0pCisKKyAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9j
b25mdGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIuY29weV9leGFtcGxl
KCkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KG5leHQocC52aXNpdCgidGVzdF8qLnB5IikpKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKyAgICBkZWYgdGVzdF9l
eHRlbmRfZml4dHVyZV9jb25mdGVzdF9wbHVnaW4oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgIHRlc3RwbHVnaW49IiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAg
ICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAgIHJldHVybiA3CisgICAgICAgICIiIgorICAg
ICAgICApCisgICAgICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydCgpCisgICAgICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisKKyAgICAgICAgICAgIHB5dGVzdF9wbHVnaW5zID0gJ3Rlc3RwbHVnaW4nCisKKyAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZvbyhmb28pOgorICAgICAgICAg
ICAgICAgIHJldHVybiBmb28gKyA3CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3Rf
Zm9vKGZvbyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGZvbyA9PSAxNAorICAgICAgICAiIiIK
KyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiKQorICAg
ICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVy
ZV9wbHVnaW5fcGx1Z2luKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAjIFR3byBwbHVnaW5zIHNo
b3VsZCBleHRlbmQgZWFjaCBvcmRlciBpbiBsb2FkaW5nIG9yZGVyCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgICAgIHRlc3RwbHVnaW4wPSIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRl
ZiBmb28oKToKKyAgICAgICAgICAgICAgICByZXR1cm4gNworICAgICAgICAiIiIKKyAgICAgICAg
KQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXN0cGx1Z2luMT0i
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCisgICAgICAgICAgICBkZWYgZm9vKGZvbyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZv
byArIDcKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5zeXNwYXRoaW5z
ZXJ0KCkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICBweXRlc3RfcGx1Z2lucyA9IFsndGVzdHBsdWdpbjAnLCAndGVzdHBsdWdpbjEnXQor
CisgICAgICAgICAgICBkZWYgdGVzdF9mb28oZm9vKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
Zm9vID09IDE0CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgZGVm
IHRlc3Rfb3ZlcnJpZGVfcGFyYW1ldHJpemVkX2ZpeHR1cmVfY29uZnRlc3RfbW9kdWxlKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IG92ZXJyaWRlIG9mIHRoZSBwYXJhbWV0cml6ZWQg
Zml4dHVyZSB3aXRoIG5vbi1wYXJhbWV0cml6ZWQgb25lIG9uIHRoZSB0ZXN0IG1vZHVsZSBsZXZl
bC4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBh
cmFtcz1bMSwgMiwgM10pCisgICAgICAgICAgICBkZWYgc3BhbShyZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAg
ICAgICB0ZXN0ZmlsZSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAg
ICAgICAgICAgIGRlZiBzcGFtKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJworCisg
ICAgICAgICAgICBkZWYgdGVzdF9zcGFtKHNwYW0pOgorICAgICAgICAgICAgICAgIGFzc2VydCBz
cGFtID09ICdzcGFtJworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
IioxIHBhc3NlZCoiXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZp
bGUpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkK
KworICAgIGRlZiB0ZXN0X292ZXJyaWRlX3BhcmFtZXRyaXplZF9maXh0dXJlX2NvbmZ0ZXN0X2Nv
bmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IG92ZXJyaWRlIG9mIHRoZSBw
YXJhbWV0cml6ZWQgZml4dHVyZSB3aXRoIG5vbi1wYXJhbWV0cml6ZWQgb25lIG9uIHRoZSBjb25m
dGVzdCBsZXZlbC4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHBhcmFtcz1bMSwgMiwgM10pCisgICAgICAgICAgICBkZWYgc3BhbShyZXF1ZXN0KToK
KyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAgICAgICAiIiIKKyAgICAg
ICAgKQorICAgICAgICBzdWJkaXIgPSB0ZXN0ZGlyLm1rcHlkaXIoInN1YmRpciIpCisgICAgICAg
IHN1YmRpci5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAorICAgICAgICAgICAgdGV4dHdyYXAu
ZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBk
ZWYgc3BhbSgpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3NwYW0nCisgICAgICAgICAg
ICAgICAgIiIiCisgICAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgdGVzdGZpbGUgPSBz
dWJkaXIuam9pbigidGVzdF9zcGFtLnB5IikKKyAgICAgICAgdGVzdGZpbGUud3JpdGUoCisgICAg
ICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0X3NwYW0oc3BhbSk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBz
cGFtID09ICJzcGFtIgorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAg
ICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfbm9uX3BhcmFt
ZXRyaXplZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
IiIiVGVzdCBvdmVycmlkZSBvZiB0aGUgbm9uLXBhcmFtZXRyaXplZCBmaXh0dXJlIHdpdGggcGFy
YW1ldHJpemVkIG9uZSBvbiB0aGUgdGVzdCBtb2R1bGUgbGV2ZWwuIiIiCisgICAgICAgIHRlc3Rk
aXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHNwYW0o
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ3NwYW0nCisgICAgICAgICIiIgorICAgICAgICAp
CisgICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShwYXJhbXM9WzEsIDIsIDNdKQorICAgICAgICAgICAgZGVmIHNwYW0ocmVxdWVzdCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgcGFyYW1zID0g
eydzcGFtJzogMX0KKworICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgc3BhbSA9PSBwYXJhbXNbJ3NwYW0nXQorICAgICAgICAgICAgICAgIHBh
cmFtc1snc3BhbSddICs9IDEKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWyIqMyBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRl
c3RmaWxlKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMyBwYXNzZWQq
Il0pCisKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9ub25fcGFyYW1ldHJpemVkX2ZpeHR1cmVfY29u
ZnRlc3RfY29uZnRlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRlc3Qgb3ZlcnJpZGUg
b2YgdGhlIG5vbi1wYXJhbWV0cml6ZWQgZml4dHVyZSB3aXRoIHBhcmFtZXRyaXplZCBvbmUgb24g
dGhlIGNvbmZ0ZXN0IGxldmVsLiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzcGFtKCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuICdzcGFtJworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBzdWJkaXIgPSB0
ZXN0ZGlyLm1rcHlkaXIoInN1YmRpciIpCisgICAgICAgIHN1YmRpci5qb2luKCJjb25mdGVzdC5w
eSIpLndyaXRlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAg
ICIiIlwKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLCAyLCAzXSkKKyAgICAgICAgICAgICAgICBkZWYgc3Bh
bShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKyAg
ICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICB0ZXN0
ZmlsZSA9IHN1YmRpci5qb2luKCJ0ZXN0X3NwYW0ucHkiKQorICAgICAgICB0ZXN0ZmlsZS53cml0
ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisg
ICAgICAgICAgICAgICAgcGFyYW1zID0geydzcGFtJzogMX0KKworICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X3NwYW0oc3BhbSk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBzcGFtID09IHBh
cmFtc1snc3BhbSddCisgICAgICAgICAgICAgICAgICAgIHBhcmFtc1snc3BhbSddICs9IDEKKyAg
ICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIiozIHBhc3NlZCoiXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
dGVzdGZpbGUpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3Nl
ZCoiXSkKKworICAgIGRlZiB0ZXN0X292ZXJyaWRlX2F1dG91c2VfZml4dHVyZV93aXRoX3BhcmFt
ZXRyaXplZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0KAorICAgICAgICBzZWxmLCB0ZXN0ZGly
CisgICAgKToKKyAgICAgICAgIiIiVGVzdCBvdmVycmlkZSBvZiB0aGUgYXV0b3VzZSBmaXh0dXJl
IHdpdGggcGFyYW1ldHJpemVkIG9uZSBvbiB0aGUgY29uZnRlc3QgbGV2ZWwuCisgICAgICAgIFRo
aXMgdGVzdCBjb3ZlcnMgdGhlIGlzc3VlIGV4cGxhaW5lZCBpbiBpc3N1ZSAxNjAxCisgICAgICAg
ICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0
b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHNwYW0oKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gJ3NwYW0nCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHN1YmRpciA9IHRlc3Rk
aXIubWtweWRpcigic3ViZGlyIikKKyAgICAgICAgc3ViZGlyLmpvaW4oImNvbmZ0ZXN0LnB5Iiku
d3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIi
XAorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShwYXJhbXM9WzEsIDIsIDNdKQorICAgICAgICAgICAgICAgIGRlZiBzcGFtKHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAgICAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHRlc3RmaWxl
ID0gc3ViZGlyLmpvaW4oInRlc3Rfc3BhbS5weSIpCisgICAgICAgIHRlc3RmaWxlLndyaXRlKAor
ICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAg
ICAgICAgICAgICBwYXJhbXMgPSB7J3NwYW0nOiAxfQorCisgICAgICAgICAgICAgICAgZGVmIHRl
c3Rfc3BhbShzcGFtKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNwYW0gPT0gcGFyYW1z
WydzcGFtJ10KKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zWydzcGFtJ10gKz0gMQorICAgICAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKjMgcGFzc2VkKiJdKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0
ZmlsZSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjMgcGFzc2VkKiJd
KQorCisgICAgZGVmIHRlc3RfYXV0b3VzZV9maXh0dXJlX3BsdWdpbihzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgIyBBIGZpeHR1cmUgZnJvbSBhIHBsdWdpbiBoYXMgbm8gYmFzZWlkIHNldCwgd2hp
Y2ggc2NyZXdlZCB1cAorICAgICAgICAjIHRoZSBhdXRvdXNlIGZpeHR1cmUgaGFuZGxpbmcuCisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgIHRlc3RwbHVnaW49IiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShh
dXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgZm9vKHJlcXVlc3QpOgorICAgICAgICAgICAg
ICAgIHJlcXVlc3QuZnVuY3Rpb24uZm9vID0gNworICAgICAgICAiIiIKKyAgICAgICAgKQorICAg
ICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHB5dGVzdF9wbHVnaW5zID0gJ3Rlc3RwbHVn
aW4nCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgcmVxdWVzdC5mdW5jdGlvbi5mb28gPT0gNworICAgICAgICAiIiIKKyAgICAgICAg
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCBy
ZXN1bHQucmV0ID09IDAKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmdfbG9va3VwX2Vycm9yKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKKyAgICAgICAgICAgIGRlZiBhX2ZpeHR1cmUoKTogcGFzcworCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBiX2ZpeHR1cmUoKTogcGFzcworCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBjX2ZpeHR1cmUoKTogcGFzcwor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBkX2ZpeHR1cmUo
KTogcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2xvb2t1cF9lcnJvcih1
bmtub3duKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICIqRVJST1Ig
YXQgc2V0dXAgb2YgdGVzdF9sb29rdXBfZXJyb3IqIiwKKyAgICAgICAgICAgICAgICAiICBkZWYg
dGVzdF9sb29rdXBfZXJyb3IodW5rbm93bik6KiIsCisgICAgICAgICAgICAgICAgIkUgICAgICAg
Zml4dHVyZSAndW5rbm93bicgbm90IGZvdW5kIiwKKyAgICAgICAgICAgICAgICAiPiAgICAgICBh
dmFpbGFibGUgZml4dHVyZXM6KmFfZml4dHVyZSwqYl9maXh0dXJlLCpjX2ZpeHR1cmUsKmRfZml4
dHVyZSptb25rZXlwYXRjaCwqIiwgICMgc29ydGVkCisgICAgICAgICAgICAgICAgIj4gICAgICAg
dXNlICdweSp0ZXN0IC0tZml4dHVyZXMgKicgZm9yIGhlbHAgb24gdGhlbS4iLAorICAgICAgICAg
ICAgICAgICIqMSBlcnJvcioiLAorICAgICAgICAgICAgXQorICAgICAgICApCisgICAgICAgIGFz
c2VydCAiSU5URVJOQUwiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICBkZWYgdGVz
dF9maXh0dXJlX2V4Y2luZm9fbGVhayhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIyBvbiBweXRo
b24yIHN5cy5leGNpbmZvIHdvdWxkIGxlYWsgaW50byBmaXh0dXJlIGV4ZWN1dGlvbnMKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBv
cnQgc3lzCisgICAgICAgICAgICBpbXBvcnQgdHJhY2ViYWNrCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGxl
YWsoKToKKyAgICAgICAgICAgICAgICBpZiBzeXMuZXhjX2luZm8oKVswXTogICMgcHl0aG9uMyBi
dWcgOikKKyAgICAgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAg
ICAgICAgICAgI2ZhaWxzCisgICAgICAgICAgICAgICAgYXNzZXJ0IHN5cy5leGNfaW5mbygpID09
IChOb25lLCBOb25lLCBOb25lKQorCisgICAgICAgICAgICBkZWYgdGVzdF9sZWFrKGxlYWspOgor
ICAgICAgICAgICAgICAgIGlmIHN5cy5leGNfaW5mbygpWzBdOiAgIyBweXRob24zIGJ1ZyA6KQor
ICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgc3lzLmV4Y19pbmZvKCkgPT0gKE5vbmUsIE5vbmUsIE5vbmUpCisgICAgICAgICIi
IgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK2NsYXNzIFRlc3RSZXF1ZXN0QmFzaWMob2Jq
ZWN0KToKKyAgICBkZWYgdGVzdF9yZXF1ZXN0X2F0dHJpYnV0ZXMoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oCisgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAg
ICAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOiBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9m
dW5jKHNvbWV0aGluZyk6IHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVx
ID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRlbSkKKyAgICAgICAgYXNzZXJ0IHJlcS5mdW5j
dGlvbiA9PSBpdGVtLm9iagorICAgICAgICBhc3NlcnQgcmVxLmtleXdvcmRzID09IGl0ZW0ua2V5
d29yZHMKKyAgICAgICAgYXNzZXJ0IGhhc2F0dHIocmVxLm1vZHVsZSwgInRlc3RfZnVuYyIpCisg
ICAgICAgIGFzc2VydCByZXEuY2xzIGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IHJlcS5mdW5jdGlv
bi5fX25hbWVfXyA9PSAidGVzdF9mdW5jIgorICAgICAgICBhc3NlcnQgcmVxLmNvbmZpZyA9PSBp
dGVtLmNvbmZpZworICAgICAgICBhc3NlcnQgcmVwcihyZXEpLmZpbmQocmVxLmZ1bmN0aW9uLl9f
bmFtZV9fKSAhPSAtMQorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9hdHRyaWJ1dGVzX21ldGhvZChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgKGl0ZW0sKSA9IHRlc3RkaXIuZ2V0aXRlbXMoCisgICAg
ICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGNsYXNz
IFRlc3RCKG9iamVjdCk6CisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAg
ICAgICAgICAgICBkZWYgc29tZXRoaW5nKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gMQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZiwgc29tZXRo
aW5nKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICByZXEgPSBpdGVtLl9yZXF1ZXN0CisgICAgICAgIGFzc2VydCByZXEuY2xzLl9fbmFt
ZV9fID09ICJUZXN0QiIKKyAgICAgICAgYXNzZXJ0IHJlcS5pbnN0YW5jZS5fX2NsYXNzX18gPT0g
cmVxLmNscworCisgICAgZGVmIHRlc3RfcmVxdWVzdF9jb250YWluc19mdW5jYXJnX2FyZzJmaXh0
dXJlZGVmcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1
bGVjb2woCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0
KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2Jq
ZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZiwgc29tZXRoaW5nKToK
KyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAg
ICAoaXRlbTEsKSA9IHRlc3RkaXIuZ2VuaXRlbXMoW21vZGNvbF0pCisgICAgICAgIGFzc2VydCBp
dGVtMS5uYW1lID09ICJ0ZXN0X21ldGhvZCIKKyAgICAgICAgYXJnMmZpeHR1cmVkZWZzID0gZml4
dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRlbTEpLl9hcmcyZml4dHVyZWRlZnMKKyAgICAgICAgYXNz
ZXJ0IGxlbihhcmcyZml4dHVyZWRlZnMpID09IDEKKyAgICAgICAgYXNzZXJ0IGFyZzJmaXh0dXJl
ZGVmc1sic29tZXRoaW5nIl1bMF0uYXJnbmFtZSA9PSAic29tZXRoaW5nIgorCisgICAgQHB5dGVz
dC5tYXJrLnNraXBpZigKKyAgICAgICAgaGFzYXR0cihzeXMsICJweXB5X3ZlcnNpb25faW5mbyIp
LAorICAgICAgICByZWFzb249InRoaXMgbWV0aG9kIG9mIHRlc3QgZG9lc24ndCB3b3JrIG9uIHB5
cHkiLAorICAgICkKKyAgICBkZWYgdGVzdF9yZXF1ZXN0X2dhcmJhZ2Uoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGltcG9ydCB4ZGlzdCAgIyBub3FhCisgICAgICAg
IGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHB5dGVzdC54ZmFpbCgidGhpcyB0ZXN0IGlzIGZsYWt5IHdoZW4gZXhlY3V0ZWQg
d2l0aCB4ZGlzdCIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBQc2V1ZG9GaXh0dXJlRGVmCisg
ICAgICAgICAgICBpbXBvcnQgZ2MKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91
c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6CisgICAgICAgICAg
ICAgICAgb3JpZ2luYWwgPSBnYy5nZXRfZGVidWcoKQorICAgICAgICAgICAgICAgIGdjLnNldF9k
ZWJ1ZyhnYy5ERUJVR19TQVZFQUxMKQorICAgICAgICAgICAgICAgIGdjLmNvbGxlY3QoKQorCisg
ICAgICAgICAgICAgICAgeWllbGQKKworICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICAgICAgZ2MuY29sbGVjdCgpCisgICAgICAgICAgICAgICAgICAgIGxlYWtlZCA9IFt4IGZv
ciBfIGluIGdjLmdhcmJhZ2UgaWYgaXNpbnN0YW5jZShfLCBQc2V1ZG9GaXh0dXJlRGVmKV0KKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IGxlYWtlZCA9PSBbXQorICAgICAgICAgICAgICAgIGZp
bmFsbHk6CisgICAgICAgICAgICAgICAgICAgIGdjLnNldF9kZWJ1ZyhvcmlnaW5hbCkKKworICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
IiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJv
Y2VzcygpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMSBwYXNzZWQg
aW4gKiJdKQorCisgICAgZGVmIHRlc3RfZ2V0Zml4dHVyZXZhbHVlX3JlY3Vyc2l2ZShzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
CisgICAgICAgICAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJl
dHVybiAxCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJzb21ldGhp
bmciKSArIDEKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc29tZXRoaW5nKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgc29tZXRoaW5nID09IDIKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9nZXRmaXh0dXJldmFsdWVfdGVhcmRv
d24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIgorICAgICAgICBJc3N1ZSAjMTg5NQorCisg
ICAgICAgIGB0ZXN0X2lubmVyYCByZXF1ZXN0cyBgaW5uZXJgIGZpeHR1cmUsIHdoaWNoIGluIHR1
cm4gcmVxdWVzdHMgYHJlc291cmNlYAorICAgICAgICB1c2luZyBgZ2V0Zml4dHVyZXZhbHVlYC4g
YHRlc3RfZnVuY2AgdGhlbiByZXF1ZXN0cyBgcmVzb3VyY2VgLgorCisgICAgICAgIGByZXNvdXJj
ZWAgaXMgdGVhcmRvd24gYmVmb3JlIGBpbm5lcmAgYmVjYXVzZSB0aGUgZml4dHVyZSBtZWNoYW5p
c20gd29uJ3QgY29uc2lkZXIKKyAgICAgICAgYGlubmVyYCBkZXBlbmRlbnQgb24gYHJlc291cmNl
YCB3aGVuIGl0IGlzIHVzZWQgdmlhIGBnZXRmaXh0dXJldmFsdWVgOiBgdGVzdF9mdW5jYAorICAg
ICAgICB3aWxsIHRoZW4gY2F1c2UgdGhlIGByZXNvdXJjZWAncyBmaW5hbGl6ZXIgdG8gYmUgY2Fs
bGVkIGZpcnN0IGJlY2F1c2Ugb2YgdGhpcy4KKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nKQorICAgICAgICAg
ICAgZGVmIHJlc291cmNlKCk6CisgICAgICAgICAgICAgICAgciA9IFsndmFsdWUnXQorICAgICAg
ICAgICAgICAgIHlpZWxkIHIKKyAgICAgICAgICAgICAgICByLnBvcCgpCisKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicpCisgICAgICAgICAgICBkZWYgaW5uZXIo
cmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSByZXF1ZXN0LmdldGZpeHR1cmV2
YWx1ZSgncmVzb3VyY2UnKQorICAgICAgICAgICAgICAgIGFzc2VydCByZXNvdXJjZSA9PSBbJ3Zh
bHVlJ10KKyAgICAgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgICAgIGFzc2VydCByZXNv
dXJjZSA9PSBbJ3ZhbHVlJ10KKworICAgICAgICAgICAgZGVmIHRlc3RfaW5uZXIoaW5uZXIpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhyZXNvdXJj
ZSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbIiogMiBwYXNzZWQgaW4gKiJdKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJnZXRmaXhtZXRob2QiLCAoImdldGZpeHR1cmV2YWx1ZSIsICJnZXRmdW5jYXJndmFs
dWUiKSkKKyAgICBkZWYgdGVzdF9nZXRmaXh0dXJldmFsdWUoc2VsZiwgdGVzdGRpciwgZ2V0Zml4
bWV0aG9kKToKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gWzJdCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVx
dWVzdCk6IHJldHVybiAxCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAg
IGRlZiBvdGhlcihyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzLnBvcCgp
CisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNvbWV0aGluZyk6IHBhc3MKKyAgICAgICAgIiIi
CisgICAgICAgICkKKyAgICAgICAgaW1wb3J0IGNvbnRleHRsaWIKKworICAgICAgICBpZiBnZXRm
aXhtZXRob2QgPT0gImdldGZ1bmNhcmd2YWx1ZSI6CisgICAgICAgICAgICB3YXJuaW5nX2V4cGVj
dGF0aW9uID0gcHl0ZXN0Lndhcm5zKERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICMgc2VlICMxODMwIGZvciBhIGNsZWFuZXIgd2F5IHRvIGFjY29tcGxpc2gg
dGhpcworICAgICAgICAgICAgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKKyAgICAgICAgICAg
IGRlZiBleHBlY3Rpbmdfbm9fd2FybmluZygpOgorICAgICAgICAgICAgICAgIHlpZWxkCisKKyAg
ICAgICAgICAgIHdhcm5pbmdfZXhwZWN0YXRpb24gPSBleHBlY3Rpbmdfbm9fd2FybmluZygpCisK
KyAgICAgICAgcmVxID0gaXRlbS5fcmVxdWVzdAorICAgICAgICB3aXRoIHdhcm5pbmdfZXhwZWN0
YXRpb246CisgICAgICAgICAgICBmaXh0dXJlX2ZldGNoZXIgPSBnZXRhdHRyKHJlcSwgZ2V0Zml4
bWV0aG9kKQorICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEZpeHR1cmVMb29rdXBFcnJv
cik6CisgICAgICAgICAgICAgICAgZml4dHVyZV9mZXRjaGVyKCJub3RleGlzdHMiKQorICAgICAg
ICAgICAgdmFsID0gZml4dHVyZV9mZXRjaGVyKCJzb21ldGhpbmciKQorICAgICAgICAgICAgYXNz
ZXJ0IHZhbCA9PSAxCisgICAgICAgICAgICB2YWwgPSBmaXh0dXJlX2ZldGNoZXIoInNvbWV0aGlu
ZyIpCisgICAgICAgICAgICBhc3NlcnQgdmFsID09IDEKKyAgICAgICAgICAgIHZhbDIgPSBmaXh0
dXJlX2ZldGNoZXIoIm90aGVyIikKKyAgICAgICAgICAgIGFzc2VydCB2YWwyID09IDIKKyAgICAg
ICAgICAgIHZhbDIgPSBmaXh0dXJlX2ZldGNoZXIoIm90aGVyIikgICMgc2VlIGFib3V0IGNhY2hp
bmcKKyAgICAgICAgICAgIGFzc2VydCB2YWwyID09IDIKKyAgICAgICAgICAgIHB5dGVzdC5fZmls
bGZ1bmNhcmdzKGl0ZW0pCisgICAgICAgICAgICBhc3NlcnQgaXRlbS5mdW5jYXJnc1sic29tZXRo
aW5nIl0gPT0gMQorICAgICAgICAgICAgYXNzZXJ0IGxlbihnZXRfcHVibGljX25hbWVzKGl0ZW0u
ZnVuY2FyZ3MpKSA9PSAyCisgICAgICAgICAgICBhc3NlcnQgInJlcXVlc3QiIGluIGl0ZW0uZnVu
Y2FyZ3MKKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfYWRkZmluYWxpemVyKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKAorICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB0ZWFyZG93bmxpc3QgPSBbXQorICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc29tZXRoaW5nKHJlcXVl
c3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdGVhcmRv
d25saXN0LmFwcGVuZCgxKSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc29tZXRoaW5nKTog
cGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBpdGVtLnNlc3Npb24uX3NldHVw
c3RhdGUucHJlcGFyZShpdGVtKQorICAgICAgICBweXRlc3QuX2ZpbGxmdW5jYXJncyhpdGVtKQor
ICAgICAgICAjIHN1Y2Nlc3NpdmVseSBjaGVjayBmaW5hbGl6YXRpb24gY2FsbHMKKyAgICAgICAg
dGVhcmRvd25saXN0ID0gaXRlbS5nZXRwYXJlbnQocHl0ZXN0Lk1vZHVsZSkub2JqLnRlYXJkb3du
bGlzdAorICAgICAgICBzcyA9IGl0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZQorICAgICAgICBhc3Nl
cnQgbm90IHRlYXJkb3dubGlzdAorICAgICAgICBzcy50ZWFyZG93bl9leGFjdChpdGVtLCBOb25l
KQorICAgICAgICBwcmludChzcy5zdGFjaykKKyAgICAgICAgYXNzZXJ0IHRlYXJkb3dubGlzdCA9
PSBbMV0KKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfYWRkZmluYWxpemVyX2ZhaWxpbmdfc2V0dXAo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gWzFd
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBteWZpeChyZXF1
ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcih2YWx1ZXMucG9wKQor
ICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVzdF9maXgobXlmaXgp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZpbmFsaXplcl9y
YW4oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IHZhbHVlcworICAgICAgICAiIiIKKyAg
ICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUoZmFpbGVkPTEsIHBhc3NlZD0xKQorCisgICAgZGVmIHRl
c3RfcmVxdWVzdF9hZGRmaW5hbGl6ZXJfZmFpbGluZ19zZXR1cF9tb2R1bGUoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gWzEsIDJdCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgICAgICAgICBkZWYgbXlm
aXgocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIodmFsdWVz
LnBvcCkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcih2YWx1ZXMucG9wKQor
ICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVzdF9maXgobXlmaXgp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIG1vZCA9IHJlcHJlYy5n
ZXRjYWxscygicHl0ZXN0X3J1bnRlc3Rfc2V0dXAiKVswXS5pdGVtLm1vZHVsZQorICAgICAgICBh
c3NlcnQgbm90IG1vZC52YWx1ZXMKKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfYWRkZmluYWxpemVy
X3BhcnRpYWxfc2V0dXBfZmFpbHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQor
ICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1
ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoTm9uZSkpCisgICAgICAgICAg
ICBkZWYgdGVzdF9mdW5jKHNvbWV0aGluZywgbWlzc2luZ2FyZyk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAgICAgZGVmIHRlc3Rfc2Vjb25kKCk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKAorICAgICAgICAgICAgWyIqMSBlcnJvcioiXSAgIyBYWFggdGhlIHdob2xlIG1vZHVs
ZSBjb2xsZWN0aW9uIGZhaWxzCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3JlcXVlc3Rfc3Vi
cmVxdWVzdF9hZGRmaW5hbGl6ZXJfZXhjZXB0aW9ucyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
IiIiCisgICAgICAgIEVuc3VyZSBleGNlcHRpb25zIHJhaXNlZCBkdXJpbmcgdGVhcmRvd24gYnkg
YSBmaW5hbGl6ZXIgYXJlIHN1cHByZXNzZWQKKyAgICAgICAgdW50aWwgYWxsIGZpbmFsaXplcnMg
YXJlIGNhbGxlZCwgcmUtcmFpc2luZyB0aGUgZmlyc3QgZXhjZXB0aW9uICgjMjQ0MCkKKyAgICAg
ICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAg
ICAgIGRlZiBfZXhjZXB0cyh3aGVyZSk6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdFcnJvciBpbiAlcyBmaXh0dXJlJyAlIHdoZXJlKQorICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCisgICAgICAgICAgICBkZWYgc3VicmVxdWVzdChyZXF1ZXN0KToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcmVxdWVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAg
ICBkZWYgc29tZXRoaW5nKHN1YnJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHN1YnJlcXVlc3Qu
YWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgxKSkKKyAgICAgICAgICAgICAgICBz
dWJyZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoMikpCisgICAgICAg
ICAgICAgICAgc3VicmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiBfZXhjZXB0cygnc29tZXRo
aW5nJykpCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBleGNl
cHRzKHN1YnJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHN1YnJlcXVlc3QuYWRkZmluYWxpemVy
KGxhbWJkYTogX2V4Y2VwdHMoJ2V4Y2VwdHMnKSkKKyAgICAgICAgICAgICAgICBzdWJyZXF1ZXN0
LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoMykpCisgICAgICAgICAgICBkZWYg
dGVzdF9maXJzdChzb21ldGhpbmcsIGV4Y2VwdHMpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X3NlY29uZCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1
ZXMgPT0gWzMsIDIsIDFdCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAorICAgICAgICAgICAgWyIqRXhjZXB0aW9uOiBFcnJvciBpbiBleGNlcHRzIGZpeHR1cmUiLCAi
KiAyIHBhc3NlZCwgMSBlcnJvciBpbiAqIl0KKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfcmVx
dWVzdF9nZXRtb2R1bGVwYXRoKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBtb2Rjb2wgPSB0ZXN0
ZGlyLmdldG1vZHVsZWNvbCgiZGVmIHRlc3Rfc29tZWZ1bmMoKTogcGFzcyIpCisgICAgICAgIChp
dGVtLCkgPSB0ZXN0ZGlyLmdlbml0ZW1zKFttb2Rjb2xdKQorICAgICAgICByZXEgPSBmaXh0dXJl
cy5GaXh0dXJlUmVxdWVzdChpdGVtKQorICAgICAgICBhc3NlcnQgcmVxLmZzcGF0aCA9PSBtb2Rj
b2wuZnNwYXRoCisKKyAgICBkZWYgdGVzdF9yZXF1ZXN0X2ZpeHR1cmVuYW1lcyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBmcm9tIF9weXRlc3QucHl0ZXN0ZXIg
aW1wb3J0IGdldF9wdWJsaWNfbmFtZXMKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisg
ICAgICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgZmFyZyhhcmcxKToKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQor
ICAgICAgICAgICAgZGVmIHNhcmcodG1wZGlyKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihyZXF1ZXN0LCBmYXJnKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgc2V0KGdldF9wdWJsaWNfbmFtZXMocmVxdWVzdC5maXh0dXJlbmFtZXMpKSA9PSBc
CisgICAgICAgICAgICAgICAgICAgICAgIHNldChbInRtcGRpciIsICJzYXJnIiwgImFyZzEiLCAi
cmVxdWVzdCIsICJmYXJnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG1wX3BhdGgi
LCAidG1wX3BhdGhfZmFjdG9yeSJdKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBy
ZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfZml4dHVyZW5hbWVzX2R5bmFtaWNf
Zml4dHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiUmVncmVzc2lvbiB0ZXN0IGZvciAj
MzA1NyIiIgorICAgICAgICB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgiZml4dHVyZXMvdGVzdF9nZXRm
aXh0dXJldmFsdWVfZHluYW1pYy5weSIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJd
KQorCisgICAgZGVmIHRlc3RfZnVuY2FyZ25hbWVzX2NvbXBhdGF0dHIoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyht
ZXRhZnVuYyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLmZ1bmNhcmduYW1lcyA9
PSBtZXRhZnVuYy5maXh0dXJlbmFtZXMKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgZGVmIGZuKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0
Ll9weWZ1bmNpdGVtLmZ1bmNhcmduYW1lcyA9PSBcCisgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3QuX3B5ZnVuY2l0ZW0uZml4dHVyZW5hbWVzCisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QuZnVuY2FyZ25hbWVzLCByZXF1ZXN0LmZpeHR1cmVuYW1lcworCisgICAgICAgICAgICBk
ZWYgdGVzdF9oZWxsbyhmbik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGZuWzBdID09IGZuWzFd
CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVm
IHRlc3Rfc2V0dXBkZWNvcmF0b3JfYW5kX3h1bml0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9J21vZHVsZScsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBzZXR1cF9t
b2R1bGUoKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJtb2R1bGUiKQorICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBzZXR1
cF9mdW5jdGlvbigpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoImZ1bmN0aW9uIikK
KworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKwor
ICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAg
ICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBl
bmQoImNsYXNzIikKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVl
KQorICAgICAgICAgICAgICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZik6CisgICAgICAgICAgICAg
ICAgICAgIHZhbHVlcy5hcHBlbmQoIm1ldGhvZCIpCisgICAgICAgICAgICAgICAgZGVmIHRlc3Rf
bWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYg
dGVzdF9hbGwoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsibW9kdWxlIiwg
ImZ1bmN0aW9uIiwgImNsYXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZ1bmN0
aW9uIiwgIm1ldGhvZCIsICJmdW5jdGlvbiJdCisgICAgICAgICIiIgorICAgICAgICApCisgICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYiKQorICAgICAgICByZXByZWMuYXNz
ZXJ0b3V0Y29tZShwYXNzZWQ9MykKKworICAgIGRlZiB0ZXN0X2ZpeHR1cmVzX3N1Yl9zdWJkaXJf
bm9ybWFsaXplX3NlcChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIyB0aGlzIHRlc3RzIHRoYXQg
bm9ybWFsaXphdGlvbiBvZiBub2RlaWRzIHRha2VzIHBsYWNlCisgICAgICAgIGIgPSB0ZXN0ZGly
Lm1rZGlyKCJ0ZXN0cyIpLm1rZGlyKCJ1bml0IikKKyAgICAgICAgYi5qb2luKCJjb25mdGVzdC5w
eSIpLndyaXRlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAg
ICIiIlwKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICAgIHAgPSBiLmpvaW4oInRlc3RfbW9kdWxlLnB5IikKKyAgICAgICAgcC53cml0ZSgi
ZGVmIHRlc3RfZnVuYyhhcmcxKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KHAsICItLWZpeHR1cmVzIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgICpmaXh0dXJlcyBkZWZpbmVkKmNvbmZ0ZXN0KgorICAgICAgICAgICAgKmFyZzEq
CisgICAgICAgICIiIgorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX2Nv
bG9yX3llcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYg
dGVzdF90aGlzKCk6IGFzc2VydCAxIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi0tY29sb3I9eWVzIiwgIi0tZml4dHVyZXMiKQorICAgICAgICBhc3NlcnQgIlx4MWJbMzJt
dG1wZGlyIiBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICBkZWYgdGVzdF9uZXdzdHlsZV93
aXRoX3JlcXVlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
KyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisK
KyAgICBkZWYgdGVzdF9zZXR1cGNvbnRleHRfbm9fcGFyYW0oc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwyXSkKKyAg
ICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVl
c3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAg
ICAgICAgICAgIGRlZiBteXNldHVwKHJlcXVlc3QsIGFyZyk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IG5vdCBoYXNhdHRyKHJlcXVlc3QsICJwYXJhbSIpCisgICAgICAgICAgICBkZWYgdGVzdF8x
KGFyZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyBpbiAoMSwyKQorICAgICAgICAiIiIK
KyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworCitjbGFzcyBUZXN0UmVxdWVzdE1h
cmtpbmcob2JqZWN0KToKKyAgICBkZWYgdGVzdF9hcHBseW1hcmtlcihzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgaXRlbTEsIGl0ZW0yID0gdGVzdGRpci5nZXRpdGVtcygKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAg
ICAgZGVmIHRlc3RfZnVuYzEoc2VsZiwgc29tZXRoaW5nKToKKyAgICAgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyKHNlbGYsIHNvbWV0aGluZyk6Cisg
ICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAg
cmVxMSA9IGZpeHR1cmVzLkZpeHR1cmVSZXF1ZXN0KGl0ZW0xKQorICAgICAgICBhc3NlcnQgInhm
YWlsIiBub3QgaW4gaXRlbTEua2V5d29yZHMKKyAgICAgICAgcmVxMS5hcHBseW1hcmtlcihweXRl
c3QubWFyay54ZmFpbCkKKyAgICAgICAgYXNzZXJ0ICJ4ZmFpbCIgaW4gaXRlbTEua2V5d29yZHMK
KyAgICAgICAgYXNzZXJ0ICJza2lwaWYiIG5vdCBpbiBpdGVtMS5rZXl3b3JkcworICAgICAgICBy
ZXExLmFwcGx5bWFya2VyKHB5dGVzdC5tYXJrLnNraXBpZikKKyAgICAgICAgYXNzZXJ0ICJza2lw
aWYiIGluIGl0ZW0xLmtleXdvcmRzCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVy
cm9yKToKKyAgICAgICAgICAgIHJlcTEuYXBwbHltYXJrZXIoNDIpCisKKyAgICBkZWYgdGVzdF9h
Y2Nlc3NrZXl3b3JkcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGtleXdvcmRzKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmtleXdvcmRzCisgICAgICAgICAgICBAcHl0
ZXN0Lm1hcmsuWFlaCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihrZXl3b3Jkcyk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGtleXdvcmRzWyJYWVoiXQorICAgICAgICAgICAgICAgIGFz
c2VydCAiYWJjIiBub3QgaW4ga2V5d29yZHMKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9hY2Nlc3NtYXJrZXJfZHluYW1pYyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZSgpCisgICAgICAgICAgICBkZWYga2V5d29yZHMocmVxdWVzdCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIHJlcXVlc3Qua2V5d29yZHMKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSJjbGFzcyIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBtYXJraW5nKHJlcXVl
c3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYXBwbHltYXJrZXIocHl0ZXN0Lm1hcmsuWFla
KCJoZWxsbyIpKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2Z1bjEoa2V5d29yZHMpOgorICAgICAgICAgICAgICAgIGFzc2VydCBr
ZXl3b3Jkc1siWFlaIl0gaXMgbm90IE5vbmUKKyAgICAgICAgICAgICAgICBhc3NlcnQgImFiYyIg
bm90IGluIGtleXdvcmRzCisgICAgICAgICAgICBkZWYgdGVzdF9mdW4yKGtleXdvcmRzKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQga2V5d29yZHNbIlhZWiJdIGlzIG5vdCBOb25lCisgICAgICAg
ICAgICAgICAgYXNzZXJ0ICJhYmMiIG5vdCBpbiBrZXl3b3JkcworICAgICAgICAiIiIKKyAgICAg
ICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworCitjbGFzcyBUZXN0Rml4dHVyZVVzYWdlcyhv
YmplY3QpOgorICAgIGRlZiB0ZXN0X25vYXJnZml4dHVyZWRlYyhzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRl
ZiBhcmcxKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICAgICAgZGVmIHRl
c3RfZnVuYyhhcmcxKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9PSAxCisgICAgICAg
ICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisg
ICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3RfcmVj
ZWl2ZXNfZnVuY2FyZ3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiBhcmcxKCk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIDEKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAg
ICAgIGRlZiBhcmcyKGFyZzEpOgorICAgICAgICAgICAgICAgIHJldHVybiBhcmcxICsgMQorCisg
ICAgICAgICAgICBkZWYgdGVzdF9hZGQoYXJnMik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFy
ZzIgPT0gMgorICAgICAgICAgICAgZGVmIHRlc3RfYWxsKGFyZzEsIGFyZzIpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCBhcmcxID09IDEKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMiA9PSAy
CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgZGVm
IHRlc3RfcmVjZWl2ZXNfZnVuY2FyZ3Nfc2NvcGVfbWlzbWF0Y2goc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlv
biIpCisgICAgICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgIHJldHVybiAxCisK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKKyAgICAgICAgICAg
IGRlZiBhcmcyKGFyZzEpOgorICAgICAgICAgICAgICAgIHJldHVybiBhcmcxICsgMQorCisgICAg
ICAgICAgICBkZWYgdGVzdF9hZGQoYXJnMik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzIg
PT0gMgorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAg
ICAgIFsKKyAgICAgICAgICAgICAgICAiKlNjb3BlTWlzbWF0Y2gqaW52b2x2ZWQgZmFjdG9yaWVz
KiIsCisgICAgICAgICAgICAgICAgInRlc3RfcmVjZWl2ZXNfZnVuY2FyZ3Nfc2NvcGVfbWlzbWF0
Y2gucHk6NjogIGRlZiBhcmcyKGFyZzEpIiwKKyAgICAgICAgICAgICAgICAidGVzdF9yZWNlaXZl
c19mdW5jYXJnc19zY29wZV9taXNtYXRjaC5weToyOiAgZGVmIGFyZzEoKSIsCisgICAgICAgICAg
ICAgICAgIioxIGVycm9yKiIsCisgICAgICAgICAgICBdCisgICAgICAgICkKKworICAgIGRlZiB0
ZXN0X3JlY2VpdmVzX2Z1bmNhcmdzX3Njb3BlX21pc21hdGNoX2lzc3VlNjYwKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0i
ZnVuY3Rpb24iKQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gMQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAg
ICAgICAgICBkZWYgYXJnMihhcmcxKToKKyAgICAgICAgICAgICAgICByZXR1cm4gYXJnMSArIDEK
KworICAgICAgICAgICAgZGVmIHRlc3RfYWRkKGFyZzEsIGFyZzIpOgorICAgICAgICAgICAgICAg
IGFzc2VydCBhcmcyID09IDIKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoCisgICAgICAgICAgICBbIipTY29wZU1pc21hdGNoKmludm9sdmVkIGZhY3RvcmllcyoiLCAi
KiBkZWYgYXJnMioiLCAiKjEgZXJyb3IqIl0KKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfaW52
YWxpZF9zY29wZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAor
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9ucyIpCisgICAgICAgICAgICBkZWYgYmFkc2Nv
cGUoKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X25vdGhp
bmcoYmFkc2NvcGUpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAg
ICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3RfaW5wcm9jZXNzKCkKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgIipGaXh0dXJlICdi
YWRzY29wZScgZnJvbSB0ZXN0X2ludmFsaWRfc2NvcGUucHkgZ290IGFuIHVuZXhwZWN0ZWQgc2Nv
cGUgdmFsdWUgJ2Z1bmN0aW9ucyciCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmdf
cGFyYW1ldHJpemVkX2FuZF91c2VkX3R3aWNlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
cGFyYW1zPVsxLDJdKQorICAgICAgICAgICAgZGVmIGFyZzEocmVxdWVzdCk6CisgICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZCgxKQorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBh
cmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgYXJn
MihhcmcxKToKKyAgICAgICAgICAgICAgICByZXR1cm4gYXJnMSArIDEKKworICAgICAgICAgICAg
ZGVmIHRlc3RfYWRkKGFyZzEsIGFyZzIpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcyID09
IGFyZzEgKyAxCisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IGFyZzEKKyAg
ICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMiBwYXNzZWQqIl0pCisK
KyAgICBkZWYgdGVzdF9mYWN0b3J5X3VzZXNfdW5rbm93bl9mdW5jYXJnX2FzX2RlcGVuZGVuY3lf
ZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGZhaWwobWlzc2luZyk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAg
ICBkZWYgY2FsbF9mYWlsKGZhaWwpOgorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAg
ICAgICBkZWYgdGVzdF9taXNzaW5nKGNhbGxfZmFpbCk6CisgICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgICpweXRlc3QuZml4dHVyZSgpKgorICAgICAgICAgICAgKmRlZiBj
YWxsX2ZhaWwoZmFpbCkqCisgICAgICAgICAgICAqcHl0ZXN0LmZpeHR1cmUoKSoKKyAgICAgICAg
ICAgICpkZWYgZmFpbCoKKyAgICAgICAgICAgICpmaXh0dXJlKidtaXNzaW5nJypub3QgZm91bmQq
CisgICAgICAgICIiIgorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9mYWN0b3J5X3NldHVwX2Fz
X2NsYXNzZXNfZmFpbHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgY2xhc3MgYXJnMShvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi54ID0gMQorICAgICAgICAgICAg
YXJnMSA9IHB5dGVzdC5maXh0dXJlKCkoYXJnMSkKKworICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICB2YWx1ZXMgPSBy
ZXByZWMuZ2V0ZmFpbGVkY29sbGVjdGlvbnMoKQorICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykg
PT0gMQorCisgICAgQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJpZ25vcmU6OnB5dGVzdC5Q
eXRlc3REZXByZWNhdGlvbldhcm5pbmciKQorICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FuX2JlX292
ZXJyaWRkZW4oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiByZXF1ZXN0KHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJlcXVlc3QuYSA9IDEKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdAor
ICAgICAgICAgICAgZGVmIHRlc3RfcmVxdWVzdChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgcmVxdWVzdC5hID09IDEKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF91c2VmaXh0dXJlc19tYXJrZXIoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIikKKyAgICAgICAgICAgIGRlZiBteWZp
eChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmNscy5oZWxsbyA9ICJ3b3JsZCIK
KyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisKKyAgICAgICAgICAgIGNsYXNzIFRl
c3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X29uZShzZWxmKToKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgorICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X3R3byhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0g
IndvcmxkIgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAg
ICAgICAgICAgcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoIm15Zml4IikoVGVzdENsYXNzKQorICAg
ICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
KQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0
X3VzZWZpeHR1cmVzX2luaShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5p
KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgdXNl
Zml4dHVyZXMgPSBteWZpeAorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGly
Lm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIikKKyAgICAgICAg
ICAgIGRlZiBteWZpeChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmNscy5oZWxs
byA9ICJ3b3JsZCIKKworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhv
YmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X29uZShzZWxmKToKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgorICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X3R3byhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8g
PT0gIndvcmxkIgorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikK
KworICAgIGRlZiB0ZXN0X3VzZWZpeHR1cmVzX3NlZW5faW5fc2hvd21hcmtlcnMoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLW1hcmtlcnMiKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgICp1c2VmaXh0dXJlcyhmaXh0dXJlbmFtZTEqbWFyayB0ZXN0cypmaXh0dXJlcyoK
KyAgICAgICAgIiIiCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfaW5zdGFuY2Vf
aXNzdWUyMDMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBj
bGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICAgICAgICAgICAgICBkZWYgc2V0dXAxKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgc2VsZiA9PSByZXF1ZXN0Lmluc3RhbmNlCisgICAgICAgICAgICAgICAg
ICAgIHNlbGYuYXJnMSA9IDEKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmLCBz
ZXR1cDEpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5hcmcxID09IDEKKyAgICAg
ICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkK
KyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9m
aXh0dXJlX3BhcmFtZXRyaXplZF93aXRoX2l0ZXJhdG9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKworICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiBmKCk6
CisgICAgICAgICAgICAgICAgeWllbGQgMQorICAgICAgICAgICAgICAgIHlpZWxkIDIKKyAgICAg
ICAgICAgIGRlYyA9IHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9ZigpKQor
CisgICAgICAgICAgICBAZGVjCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICBAZGVjCisgICAgICAg
ICAgICBkZWYgYXJnMihyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5w
YXJhbQorCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgdmFs
dWVzLmFwcGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZzIpOgorICAgICAgICAg
ICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnMioxMCkKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdiIpCisgICAgICAgIHJlcHJlYy5h
c3NlcnRvdXRjb21lKHBhc3NlZD00KQorICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMo
InB5dGVzdF9ydW50ZXN0X2NhbGwiKVswXS5pdGVtLm1vZHVsZS52YWx1ZXMKKyAgICAgICAgYXNz
ZXJ0IHZhbHVlcyA9PSBbMSwgMiwgMTAsIDIwXQorCisgICAgZGVmIHRlc3Rfc2V0dXBfZnVuY3Rp
b25zX2FzX2ZpeHR1cmVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJFbnN1cmUgc2V0dXBf
KiBtZXRob2RzIG9iZXkgZml4dHVyZSBzY29wZSBydWxlcyAoIzUxNywgIzMwOTQpLiIiIgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKworICAgICAgICAgICAgREJfSU5JVElBTElaRUQgPSBOb25lCisKKyAgICAg
ICAgICAgIEBweXRlc3QueWllbGRfZml4dHVyZShzY29wZT0ic2Vzc2lvbiIsIGF1dG91c2U9VHJ1
ZSkKKyAgICAgICAgICAgIGRlZiBkYigpOgorICAgICAgICAgICAgICAgIGdsb2JhbCBEQl9JTklU
SUFMSVpFRAorICAgICAgICAgICAgICAgIERCX0lOSVRJQUxJWkVEID0gVHJ1ZQorICAgICAgICAg
ICAgICAgIHlpZWxkCisgICAgICAgICAgICAgICAgREJfSU5JVElBTElaRUQgPSBGYWxzZQorCisg
ICAgICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IERC
X0lOSVRJQUxJWkVECisKKyAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9tb2R1bGUoKToKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgREJfSU5JVElBTElaRUQKKworICAgICAgICAgICAgY2xhc3MgVGVz
dENsYXNzKG9iamVjdCk6CisKKyAgICAgICAgICAgICAgICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYs
IG1ldGhvZCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBEQl9JTklUSUFMSVpFRAorCisg
ICAgICAgICAgICAgICAgZGVmIHRlYXJkb3duX21ldGhvZChzZWxmLCBtZXRob2QpOgorICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgREJfSU5JVElBTElaRUQKKworICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X3ByaW50ZXJfMShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworCisgICAg
ICAgICAgICAgICAgZGVmIHRlc3RfcHJpbnRlcl8yKHNlbGYpOgorICAgICAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAyIHBh
c3NlZCBpbiAqIl0pCisKKworY2xhc3MgVGVzdEZpeHR1cmVNYW5hZ2VyUGFyc2VGYWN0b3JpZXMo
b2JqZWN0KToKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgdGVzdGRpcihzZWxmLCByZXF1
ZXN0KToKKyAgICAgICAgdGVzdGRpciA9IHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJ0ZXN0ZGly
IikKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgICAgICBkZWYgaGVsbG8ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICJjb25m
dGVzdCIKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZm0o
cmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuX2ZpeHR1cmVtYW5hZ2Vy
CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGl0ZW0ocmVx
dWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuX3B5ZnVuY2l0ZW0KKyAgICAg
ICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHRlc3RkaXIKKworICAgIGRlZiB0ZXN0
X3BhcnNlZmFjdG9yaWVzX2V2aWxfb2JqZWN0c19pc3N1ZTIxNChzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBj
bGFzcyBBKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgorICAg
ICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNl
bGYsIG5hbWUpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoKQorICAg
ICAgICAgICAgYSA9IEEoKQorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0x
LCBmYWlsZWQ9MCkKKworICAgIGRlZiB0ZXN0X3BhcnNlZmFjdG9yaWVzX2NvbmZ0ZXN0KHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGl0ZW0sIGZtKToKKyAgICAgICAgICAgICAgICBm
b3IgbmFtZSBpbiAoImZtIiwgImhlbGxvIiwgIml0ZW0iKToKKyAgICAgICAgICAgICAgICAgICAg
ZmFjbGlzdCA9IGZtLmdldGZpeHR1cmVkZWZzKG5hbWUsIGl0ZW0ubm9kZWlkKQorICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQgbGVuKGZhY2xpc3QpID09IDEKKyAgICAgICAgICAgICAgICAgICAg
ZmFjID0gZmFjbGlzdFswXQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFjLmZ1bmMuX19u
YW1lX18gPT0gbmFtZQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFz
c2VkPTEpCisKKyAgICBkZWYgdGVzdF9wYXJzZWZhY3Rvcmllc19jb25mdGVzdF9hbmRfbW9kdWxl
X2FuZF9jbGFzcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAor
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBp
bXBvcnQgc2l4CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVm
IGhlbGxvKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiAibW9kdWxlIgorICAgICAg
ICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIGhlbGxvKHNlbGYsIHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gImNsYXNzIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2hl
bGxvKHNlbGYsIGl0ZW0sIGZtKToKKyAgICAgICAgICAgICAgICAgICAgZmFjbGlzdCA9IGZtLmdl
dGZpeHR1cmVkZWZzKCJoZWxsbyIsIGl0ZW0ubm9kZWlkKQorICAgICAgICAgICAgICAgICAgICBw
cmludChmYWNsaXN0KQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKGZhY2xpc3QpID09
IDMKKworICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFjbGlzdFswXS5mdW5jKGl0ZW0uX3Jl
cXVlc3QpID09ICJjb25mdGVzdCIKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhY2xpc3Rb
MV0uZnVuYyhpdGVtLl9yZXF1ZXN0KSA9PSAibW9kdWxlIgorICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgZmFjbGlzdFsyXS5mdW5jKGl0ZW0uX3JlcXVlc3QpID09ICJjbGFzcyIKKyAgICAgICAg
IiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIp
CisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rf
cGFyc2VmYWN0b3JpZXNfcmVsYXRpdmVfbm9kZV9pZHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
ICMgZXhhbXBsZSBtb3N0bHkgdGFrZW4gZnJvbToKKyAgICAgICAgIyBodHRwczovL21haWwucHl0
aG9uLm9yZy9waXBlcm1haWwvcHl0ZXN0LWRldi8yMDE0LVNlcHRlbWJlci8wMDI2MTcuaHRtbAor
ICAgICAgICBydW5uZXIgPSB0ZXN0ZGlyLm1rZGlyKCJydW5uZXIiKQorICAgICAgICBwYWNrYWdl
ID0gdGVzdGRpci5ta2RpcigicGFja2FnZSIpCisgICAgICAgIHBhY2thZ2Uuam9pbigiY29uZnRl
c3QucHkiKS53cml0ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAg
ICAgICAiIiJcCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBvbmUoKToKKyAgICAgICAgICAgICAgICByZXR1cm4g
MQorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgcGFj
a2FnZS5qb2luKCJ0ZXN0X3gucHkiKS53cml0ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVu
dCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfeChvbmUp
OgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgb25lID09IDEKKyAgICAgICAgICAgICAgICAi
IiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICBzdWIgPSBwYWNrYWdlLm1rZGly
KCJzdWIiKQorICAgICAgICBzdWIuam9pbigiX19pbml0X18ucHkiKS5lbnN1cmUoKQorICAgICAg
ICBzdWIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRl
ZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgICAgIGRlZiBv
bmUoKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDIKKyAgICAgICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICBzdWIuam9pbigidGVzdF95LnB5Iiku
d3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIi
XAorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3gob25lKToKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0IG9uZSA9PSAyCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICApCisgICAg
ICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVw
cmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisgICAgICAgIHdpdGggcnVubmVyLmFzX2N3ZCgp
OgorICAgICAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCIuLiIpCisgICAgICAg
ICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3BhY2th
Z2VfeHVuaXRfZml4dHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICAgICAgX19pbml0X189IiIiXAorICAgICAgICAgICAgdmFsdWVzID0gW10K
KyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcGFja2FnZSA9IHRlc3RkaXIubWtkaXIo
InBhY2thZ2UiKQorICAgICAgICBwYWNrYWdlLmpvaW4oIl9faW5pdF9fLnB5Iikud3JpdGUoCisg
ICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAg
ICAgICAgICAgIGZyb20gLi4gaW1wb3J0IHZhbHVlcworICAgICAgICAgICAgICAgIGRlZiBzZXR1
cF9tb2R1bGUoKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgicGFja2FnZSIp
CisgICAgICAgICAgICAgICAgZGVmIHRlYXJkb3duX21vZHVsZSgpOgorICAgICAgICAgICAgICAg
ICAgICB2YWx1ZXNbOl0gPSBbXQorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKQor
ICAgICAgICApCisgICAgICAgIHBhY2thZ2Uuam9pbigidGVzdF94LnB5Iikud3JpdGUoCisgICAg
ICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAg
ICAgICAgIGZyb20gLi4gaW1wb3J0IHZhbHVlcworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3go
KToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbInBhY2thZ2UiXQorICAg
ICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHBhY2th
Z2UgPSB0ZXN0ZGlyLm1rZGlyKCJwYWNrYWdlMiIpCisgICAgICAgIHBhY2thZ2Uuam9pbigiX19p
bml0X18ucHkiKS53cml0ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAg
ICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgZnJvbSAuLiBpbXBvcnQgdmFsdWVzCisgICAg
ICAgICAgICAgICAgZGVmIHNldHVwX21vZHVsZSgpOgorICAgICAgICAgICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKCJwYWNrYWdlMiIpCisgICAgICAgICAgICAgICAgZGVmIHRlYXJkb3duX21vZHVs
ZSgpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbOl0gPSBbXQorICAgICAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHBhY2thZ2Uuam9pbigidGVz
dF94LnB5Iikud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAg
ICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGZyb20gLi4gaW1wb3J0IHZhbHVlcworICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X3goKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVl
cyA9PSBbInBhY2thZ2UyIl0KKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICBy
ZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3BhY2thZ2VfZml4
dHVyZV9jb21wbGV4KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICAgICBfX2luaXRfXz0iIiJcCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAg
ICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQodGVzdGRp
ci50bXBkaXIuZGlybmFtZSkKKyAgICAgICAgcGFja2FnZSA9IHRlc3RkaXIubWtkaXIoInBhY2th
Z2UiKQorICAgICAgICBwYWNrYWdlLmpvaW4oIl9faW5pdF9fLnB5Iikud3JpdGUoIiIpCisgICAg
ICAgIHBhY2thZ2Uuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKKyAgICAgICAgICAgIHRleHR3
cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgICAgIGZyb20gLi4gaW1wb3J0IHZhbHVlcworICAgICAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0icGFja2FnZSIpCisgICAgICAgICAgICAgICAg
ZGVmIG9uZSgpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJwYWNrYWdlIikK
KyAgICAgICAgICAgICAgICAgICAgeWllbGQgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIHZh
bHVlcy5wb3AoKQorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0icGFja2Fn
ZSIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkZWYgdHdvKCk6CisgICAgICAgICAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInBhY2thZ2UtYXV0byIpCisgICAgICAgICAgICAgICAg
ICAgIHlpZWxkIHZhbHVlcworICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucG9wKCkKKyAgICAg
ICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICBwYWNrYWdl
LmpvaW4oInRlc3RfeC5weSIpLndyaXRlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAor
ICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBmcm9tIC4uIGltcG9ydCB2YWx1
ZXMKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9wYWNrYWdlX2F1dG91c2UoKToKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbInBhY2thZ2UtYXV0byJdCisgICAgICAgICAg
ICAgICAgZGVmIHRlc3RfcGFja2FnZShvbmUpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
dmFsdWVzID09IFsicGFja2FnZS1hdXRvIiwgInBhY2thZ2UiXQorICAgICAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAg
ZGVmIHRlc3RfY29sbGVjdF9jdXN0b21faXRlbXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIuY29weV9leGFtcGxlKCJmaXh0dXJlcy9jdXN0b21faXRlbSIpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCJmb28iKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqcGFzc2VkKiJdKQorCisKK2NsYXNzIFRlc3RBdXRvdXNlRGlzY292ZXJ5KG9i
amVjdCk6CisgICAgQHB5dGVzdC5maXh0dXJlCisgICAgZGVmIHRlc3RkaXIoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3Vz
ZT1UcnVlKQorICAgICAgICAgICAgZGVmIHBlcmZ1bmN0aW9uKHJlcXVlc3QsIHRtcGRpcik6Cisg
ICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAg
ICAgICAgICAgZGVmIGFyZzEodG1wZGlyKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHBlcmZ1
bmN0aW9uMihhcmcxKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZtKHJlcXVlc3QpOgorICAgICAgICAgICAgICAg
IHJldHVybiByZXF1ZXN0Ll9maXh0dXJlbWFuYWdlcgorCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKKyAgICAgICAgICAgIGRlZiBpdGVtKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJl
dHVybiByZXF1ZXN0Ll9weWZ1bmNpdGVtCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAg
IHJldHVybiB0ZXN0ZGlyCisKKyAgICBkZWYgdGVzdF9wYXJzZWZhY3Rvcmllc19jb25mdGVzdChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAg
IiIiCisgICAgICAgICAgICBmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IGdldF9wdWJsaWNf
bmFtZXMKKyAgICAgICAgICAgIGRlZiB0ZXN0X2NoZWNrX3NldHVwKGl0ZW0sIGZtKToKKyAgICAg
ICAgICAgICAgICBhdXRvdXNlbmFtZXMgPSBmbS5fZ2V0YXV0b3VzZW5hbWVzKGl0ZW0ubm9kZWlk
KQorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oZ2V0X3B1YmxpY19uYW1lcyhhdXRvdXNlbmFt
ZXMpKSA9PSAyCisgICAgICAgICAgICAgICAgYXNzZXJ0ICJwZXJmdW5jdGlvbjIiIGluIGF1dG91
c2VuYW1lcworICAgICAgICAgICAgICAgIGFzc2VydCAicGVyZnVuY3Rpb24iIGluIGF1dG91c2Vu
YW1lcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisK
KyAgICBkZWYgdGVzdF90d29fY2xhc3Nlc19zZXBhcmF0ZWRfYXV0b3VzZShzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFzcyBUZXN0QShvYmplY3QpOgorICAg
ICAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkZWYgc2V0dXAxKHNlbGYpOgorICAgICAg
ICAgICAgICAgICAgICBzZWxmLnZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICBkZWYg
dGVzdF9zZXR1cDEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLnZhbHVl
cyA9PSBbMV0KKyAgICAgICAgICAgIGNsYXNzIFRlc3RCKG9iamVjdCk6CisgICAgICAgICAgICAg
ICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1U
cnVlKQorICAgICAgICAgICAgICAgIGRlZiBzZXR1cDIoc2VsZik6CisgICAgICAgICAgICAgICAg
ICAgIHNlbGYudmFsdWVzLmFwcGVuZCgxKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3NldHVw
MihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYudmFsdWVzID09IFsxXQor
ICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0
ZXN0X3NldHVwX2F0X2NsYXNzbGV2ZWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkZWYgcGVybWV0aG9k
KHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Lmluc3RhbmNlLmZ1
bmNuYW1lID0gcmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXworICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X21ldGhvZDEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLmZ1bmNu
YW1lID09ICJ0ZXN0X21ldGhvZDEiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kMihz
ZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuZnVuY25hbWUgPT0gInRlc3Rf
bWV0aG9kMiIKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0y
KQorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0iJ2VuYWJsZWQnIGZlYXR1cmUgbm90
IGltcGxlbWVudGVkIikKKyAgICBkZWYgdGVzdF9zZXR1cF9lbmFibGVkX2Z1bmN0aW9ubm9kZShz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAg
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGRlZiBlbmFibGVk
KHBhcmVudG5vZGUsIG1hcmtlcnMpOgorICAgICAgICAgICAgICAgIHJldHVybiAibmVlZHNkYiIg
aW4gbWFya2VycworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLDJdKQor
ICAgICAgICAgICAgZGVmIGRiKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1
ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShlbmFibGVkPWVuYWJsZWQs
IGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBjcmVhdGVkYihkYik6CisgICAgICAgICAg
ICAgICAgcGFzcworCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMShyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgImRiIiBub3QgaW4gcmVxdWVzdC5maXh0dXJlbmFtZXMKKworICAg
ICAgICAgICAgQHB5dGVzdC5tYXJrLm5lZWRzZGIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMy
KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIGFzc2VydCAiZGIiIGluIHJlcXVlc3QuZml4dHVy
ZW5hbWVzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bigiLXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikK
KworICAgIGRlZiB0ZXN0X2NhbGxhYmxlc19ub2NvZGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
ICIiIgorICAgICAgICBhbiBpbXBvcnRlZCBtb2NrLmNhbGwgd291bGQgYnJlYWsgc2V0dXAvZmFj
dG9yeSBkaXNjb3ZlcnkKKyAgICAgICAgZHVlIHRvIGl0IGJlaW5nIGNhbGxhYmxlIGFuZCBfX2Nv
ZGVfXyBub3QgYmVpbmcgYSBjb2RlIG9iamVjdAorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgIGNsYXNzIF9jYWxsKHR1
cGxlKToKKyAgICAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqaywgKiprdyk6CisgICAg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYs
IGspOgorICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICAgICAgICAgY2FsbCA9
IF9jYWxsKCkKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKGZhaWxlZD0w
LCBwYXNzZWQ9MCkKKworICAgIGRlZiB0ZXN0X2F1dG91c2VfaW5fY29uZnRlc3RzKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICBhID0gdGVzdGRpci5ta2RpcigiYSIpCisgICAgICAgIGIgPSB0ZXN0
ZGlyLm1rZGlyKCJhMSIpCisgICAgICAgIGNvbmZ0ZXN0ID0gdGVzdGRpci5tYWtlY29uZnRlc3Qo
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgaGVsbG8oKToK
KyAgICAgICAgICAgICAgICB4eHgKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgY29u
ZnRlc3QubW92ZShhLmpvaW4oY29uZnRlc3QuYmFzZW5hbWUpKQorICAgICAgICBhLmpvaW4oInRl
c3Rfc29tZXRoaW5nLnB5Iikud3JpdGUoImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAg
IGIuam9pbigidGVzdF9vdGhlcnRoaW5nLnB5Iikud3JpdGUoImRlZiB0ZXN0X2Z1bmMoKTogcGFz
cyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAqMSBw
YXNzZWQqMSBlcnJvcioKKyAgICAgICAgIiIiCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2F1
dG91c2VfaW5fbW9kdWxlX2FuZF90d29fY2xhc3NlcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBhcHBlbmQxKCk6CisgICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZCgibW9kdWxlIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X3goKToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsibW9kdWxlIl0KKworICAgICAgICAg
ICAgY2xhc3MgVGVzdEEob2JqZWN0KToKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
YXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgICAgIGRlZiBhcHBlbmQyKHNlbGYpOgorICAgICAg
ICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJBIikKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF9oZWxsbyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbIm1v
ZHVsZSIsICJtb2R1bGUiLCAiQSJdLCB2YWx1ZXMKKyAgICAgICAgICAgIGNsYXNzIFRlc3RBMihv
YmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3dvcmxkKHNlbGYpOgorICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsibW9kdWxlIiwgIm1vZHVsZSIsICJBIiwgIm1v
ZHVsZSJdLCB2YWx1ZXMKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTMpCisKKworY2xhc3MgVGVzdEF1dG91c2VNYW5hZ2VtZW50KG9iamVjdCk6CisgICAgZGVmIHRl
c3RfYXV0b3VzZV9jb25mdGVzdF9taWRfZGlyZWN0b3J5KHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICBwa2dkaXIgPSB0ZXN0ZGlyLm1rcHlkaXIoInh5ejEyMyIpCisgICAgICAgIHBrZ2Rpci5qb2lu
KCJjb25mdGVzdC5weSIpLndyaXRlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAg
ICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBk
ZWYgYXBwKCk6CisgICAgICAgICAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgICAg
ICAgICAgc3lzLl9teWFwcCA9ICJoZWxsbyIKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgICkKKyAgICAgICAgKQorICAgICAgICB0ID0gcGtnZGlyLmVuc3VyZSgidGVzdHMiLCAidGVz
dF9hcHAucHkiKQorICAgICAgICB0LndyaXRlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50
KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAg
ICAgICAgICAgICAgZGVmIHRlc3RfYXBwKCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBz
eXMuX215YXBwID09ICJoZWxsbyIKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkK
KyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAg
ICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9mdW5j
YXJnX2FuZF9zZXR1cChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUi
KQorICAgICAgICAgICAgZGVmIGFyZygpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQo
MSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHNjb3BlPSJtb2R1bGUiLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgc29tZXRoaW5n
KGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgyKQorCisgICAgICAgICAgICBk
ZWYgdGVzdF9oZWxsbyhhcmcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9
PSAyCisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwyXQorICAgICAgICAgICAg
ICAgIGFzc2VydCBhcmcgPT0gMAorCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbzIoYXJnKToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMgorICAgICAgICAgICAgICAg
IGFzc2VydCB2YWx1ZXMgPT0gWzEsMl0KKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDAK
KyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYg
dGVzdF91c2VzX3BhcmFtZXRyaXplZF9yZXNvdXJjZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHBhcmFtcz1bMSwyXSkKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmcoYXJnKToKKyAgICAg
ICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKKworICAgICAgICAgICAgZGVmIHRlc3RfaGVs
bG8oKToKKyAgICAgICAgICAgICAgICBpZiBsZW4odmFsdWVzKSA9PSAxOgorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxXQorICAgICAgICAgICAgICAgIGVsaWYgbGVuKHZh
bHVlcykgPT0gMjoKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwgMl0K
KyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAwLzAKKworICAgICAg
ICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1z
IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVz
dF9zZXNzaW9uX3BhcmFtZXRyaXplZF9mdW5jdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShzY29wZT0ic2Vzc2lvbiIsIHBhcmFtcz1bMSwyXSkKKyAgICAgICAgICAgIGRlZiBh
cmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgYXV0b3VzZT1UcnVlKQor
ICAgICAgICAgICAgZGVmIGFwcGVuZChyZXF1ZXN0LCBhcmcpOgorICAgICAgICAgICAgICAgIGlm
IHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18gPT0gInRlc3Rfc29tZSI6CisgICAgICAgICAgICAg
ICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorCisgICAgICAgICAgICBkZWYgdGVzdF9zb21lKCk6
CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBkZWYgdGVzdF9yZXN1bHQoYXJn
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gYXJnCisgICAgICAgICAg
ICAgICAgYXNzZXJ0IHZhbHVlc1s6YXJnXSA9PSBbMSwyXVs6YXJnXQorICAgICAgICAiIiIKKyAg
ICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12IiwgIi1zIikK
KyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTQpCisKKyAgICBkZWYgdGVzdF9j
bGFzc19mdW5jdGlvbl9wYXJhbWV0cml6YXRpb25fZmluYWxpemF0aW9uKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBwID0gdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGltcG9ydCBwcHJpbnQKKworICAg
ICAgICAgICAgdmFsdWVzID0gW10KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSJmdW5jdGlvbiIsIHBhcmFtcz1bMSwyXSkKKyAgICAgICAgICAgIGRlZiBmYXJnKHJlcXVlc3Qp
OgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0iY2xhc3MiLCBwYXJhbXM9bGlzdCgiYWIiKSkKKyAgICAgICAg
ICAgIGRlZiBjYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBh
cmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBhdXRv
dXNlPVRydWUpCisgICAgICAgICAgICBkZWYgYXBwZW5kKHJlcXVlc3QsIGZhcmcsIGNhcmcpOgor
ICAgICAgICAgICAgICAgIGRlZiBmaW4oKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgiZmluXyVzJXMiICUgKGNhcmcsIGZhcmcpKQorICAgICAgICAgICAgICAgIHJlcXVlc3Qu
YWRkZmluYWxpemVyKGZpbikKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAg
IGRlZiB0ZXN0XzEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
IGNsYXNzIFRlc3RDbGFzczIob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8yKHNl
bGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisg
ICAgICAgIGNvbmZjdXQgPSAiLS1jb25mY3V0ZGlyPXt9Ii5mb3JtYXQodGVzdGRpci50bXBkaXIp
CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYiLCAiLXMiLCBjb25mY3V0
KQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9OCkKKyAgICAgICAgY29uZmln
ID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfdW5jb25maWd1cmUiKVswXS5jb25maWcKKyAgICAg
ICAgdmFsdWVzID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuX2dldGNvbmZ0ZXN0bW9kdWxlcyhwKVsw
XS52YWx1ZXMKKyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbImZpbl9hMSIsICJmaW5fYTIiLCAi
ZmluX2IxIiwgImZpbl9iMiJdICogMgorCisgICAgZGVmIHRlc3Rfc2NvcGVfb3JkZXJpbmcoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBhdXRvdXNlPVRydWUp
CisgICAgICAgICAgICBkZWYgZmFwcGVuZDIoKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBw
ZW5kKDIpCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIiwgYXV0b3Vz
ZT1UcnVlKQorICAgICAgICAgICAgZGVmIGNsYXNzYXBwZW5kMygpOgorICAgICAgICAgICAgICAg
IHZhbHVlcy5hcHBlbmQoMykKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9k
dWxlIiwgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIG1hcHBlbmQoKToKKyAgICAgICAg
ICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RIYWxsbyhv
YmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwzLDJdCisgICAgICAgICIiIgorICAgICAg
ICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJl
Yy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemF0aW9u
X3NldHVwX3RlYXJkb3duX29yZGVyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRl
X3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBpZiBtZXRhZnVuYy5jbHMgaXMgTm9u
ZToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLmZ1bmN0aW9uIGlzIHRlc3Rf
ZmluaXNoCisgICAgICAgICAgICAgICAgaWYgbWV0YWZ1bmMuY2xzIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgiaXRlbSIsIFsxLDJdLCBzY29w
ZT0iY2xhc3MiKQorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIsIGF1dG91c2U9VHJ1ZSkKKyAg
ICAgICAgICAgICAgICBkZWYgYWRkdGVhcmRvd24oc2VsZiwgaXRlbSwgcmVxdWVzdCk6CisgICAg
ICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInNldHVwLSVkIiAlIGl0ZW0pCisgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgi
dGVhcmRvd24tJWQiICUgaXRlbSkpCisgICAgICAgICAgICAgICAgZGVmIHRlc3Rfc3RlcDEoc2Vs
ZiwgaXRlbSk6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInN0ZXAxLSVkIiAl
IGl0ZW0pCisgICAgICAgICAgICAgICAgZGVmIHRlc3Rfc3RlcDIoc2VsZiwgaXRlbSk6CisgICAg
ICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInN0ZXAyLSVkIiAlIGl0ZW0pCisKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2ZpbmlzaCgpOgorICAgICAgICAgICAgICAgIHByaW50KHZhbHVlcykK
KyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsic2V0dXAtMSIsICJzdGVwMS0xIiwg
InN0ZXAyLTEiLCAidGVhcmRvd24tMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
ZXR1cC0yIiwgInN0ZXAxLTIiLCAic3RlcDItMiIsICJ0ZWFyZG93bi0yIixdCisgICAgICAgICIi
IgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXMiKQor
ICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NSkKKworICAgIGRlZiB0ZXN0X29y
ZGVyaW5nX2F1dG91c2VfYmVmb3JlX2V4cGxpY2l0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKworICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgZml4MSgpOgorICAgICAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAg
ICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMikKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGFyZzEpOgorICAgICAgICAgICAgICAgIGFzc2VydCB2
YWx1ZXMgPT0gWzEsMl0KKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTEpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhcmFtMSIsIFsiIiwgInBhcmFt
cz1bMV0iXSwgaWRzPVsicDAwIiwgInAwMSJdKQorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgicGFyYW0yIiwgWyIiLCAicGFyYW1zPVsxXSJdLCBpZHM9WyJwMTAiLCAicDExIl0pCisgICAg
ZGVmIHRlc3Rfb3JkZXJpbmdfZGVwZW5kZW5jaWVzX3Rvcm5kb3duX2ZpcnN0KHNlbGYsIHRlc3Rk
aXIsIHBhcmFtMSwgcGFyYW0yKToKKyAgICAgICAgIiIiIzIyNiIiIgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoJShw
YXJhbTEpcykKKyAgICAgICAgICAgIGRlZiBhcmcxKHJlcXVlc3QpOgorICAgICAgICAgICAgICAg
IHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgiZmluMSIpKQorICAg
ICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIm5ldzEiKQorICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKCUocGFyYW0yKXMpCisgICAgICAgICAgICBkZWYgYXJnMihyZXF1ZXN0LCBhcmcxKToK
KyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBl
bmQoImZpbjIiKSkKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJuZXcyIikKKworICAg
ICAgICAgICAgZGVmIHRlc3RfYXJnKGFyZzIpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2NoZWNrKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9
PSBbIm5ldzEiLCAibmV3MiIsICJmaW4yIiwgImZpbjEiXQorICAgICAgICAiIiIKKyAgICAgICAg
ICAgICUgbG9jYWxzKCkKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKwor
Y2xhc3MgVGVzdEZpeHR1cmVNYXJrZXIob2JqZWN0KToKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6
ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAg
ICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUocGFyYW1zPVsiYSIsICJiIiwgImMiXSkKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVz
dCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgIHZh
bHVlcyA9IFtdCisgICAgICAgICAgICBkZWYgdGVzdF9wYXJhbShhcmcpOgorICAgICAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAgICAgICAgICAgZGVmIHRlc3RfcmVzdWx0KCk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBsaXN0KCJhYmMiKQorICAgICAgICAiIiIK
KyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NCkKKworICAgIGRlZiB0ZXN0X211bHRpcGxl
X3BhcmFtZXRyaXphdGlvbl9pc3N1ZV83MzYoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLDIsM10pCisgICAgICAg
ICAgICBkZWYgZm9vKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBh
cmFtCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZm9vYmFyJywgWzQs
NSw2XSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2lzc3VlKGZvbywgZm9vYmFyKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgZm9vIGluIFsxLDIsM10KKyAgICAgICAgICAgICAgICBhc3NlcnQgZm9v
YmFyIGluIFs0LDUsNl0KKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTkpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJwYXJhbV9hcmdz
IiwKKyAgICAgICAgWyInZml4dCwgdmFsJyIsICInZml4dCx2YWwnIiwgIlsnZml4dCcsICd2YWwn
XSIsICIoJ2ZpeHQnLCAndmFsJykiXSwKKyAgICApCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfcGFy
YW1ldHJpemVkX2ZpeHR1cmVfaXNzdWVfOTc5KHNlbGYsIHRlc3RkaXIsIHBhcmFtX2FyZ3MpOgor
ICAgICAgICAiIiJNYWtlIHN1cmUgYSBwYXJhbWV0cml6ZWQgYXJndW1lbnQgY2FuIG92ZXJyaWRl
IGEgcGFyYW1ldHJpemVkIGZpeHR1cmUuCisKKyAgICAgICAgVGhpcyB3YXMgYSByZWdyZXNzaW9u
IGludHJvZHVjZWQgaW4gdGhlIGZpeCBmb3IgIzczNi4KKyAgICAgICAgIiIiCisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLCAyXSkKKyAgICAg
ICAgICAgIGRlZiBmaXh0KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0
LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSglcywgWygzLCAn
eCcpLCAoNCwgJ3gnKV0pCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oZml4dCwgdmFsKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICAgICAgJSBwYXJhbV9hcmdz
CisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9zY29wZV9z
ZXNzaW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAg
ICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVl
cyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAg
ICAgICAgICBkZWYgYXJnKCk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQorICAg
ICAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDEKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoYXJn
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDEKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6
CisgICAgICAgICAgICAgICAgZGVmIHRlc3QzKHNlbGYsIGFyZyk6CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydCBhcmcgPT0gMQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVl
cykgPT0gMQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKKwor
ICAgIGRlZiB0ZXN0X3Njb3BlX3Nlc3Npb25fZXhjKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9InNlc3Npb24iKQorICAgICAgICAgICAgZGVmIGZpeCgpOgorICAgICAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgnc2tpcHBp
bmcnKQorCisgICAgICAgICAgICBkZWYgdGVzdF8xKGZpeCk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgZGVmIHRlc3RfMihmaXgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2xhc3QoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVz
ID09IFsxXQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShza2lwcGVkPTIsIHBh
c3NlZD0xKQorCisgICAgZGVmIHRlc3Rfc2NvcGVfc2Vzc2lvbl9leGNfdHdvX2ZpeChzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAg
ICAgICAgbSA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24i
KQorICAgICAgICAgICAgZGVmIGEoKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEp
CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoJ3NraXBwaW5nJykKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCisgICAgICAgICAgICBkZWYgYihhKToKKyAg
ICAgICAgICAgICAgICBtLmFwcGVuZCgxKQorCisgICAgICAgICAgICBkZWYgdGVzdF8xKGIpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoYik6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfbGFzdCgpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCisgICAgICAgICAgICAgICAgYXNzZXJ0IG0gPT0gW10K
KyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUoc2tpcHBlZD0yLCBwYXNzZWQ9MSkK
KworICAgIGRlZiB0ZXN0X3Njb3BlX2V4YyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVzdF9mb289IiIiCisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfZm9vKGZpeCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
ICIiIiwKKyAgICAgICAgICAgIHRlc3RfYmFyPSIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0
X2JhcihmaXgpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAiIiIsCisg
ICAgICAgICAgICBjb25mdGVzdD0iIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICAgICAgcmVxcyA9IFtdCisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHNjb3BlPSJzZXNzaW9uIikKKyAgICAgICAgICAgICAgICBkZWYgZml4KHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgICAgICByZXFzLmFwcGVuZCgxKQorICAgICAgICAgICAgICAgICAgICBweXRl
c3Quc2tpcCgpCisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICAg
ICAgZGVmIHJlcV9saXN0KCk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXFzCisgICAg
ICAgICAgICAiIiIsCisgICAgICAgICAgICB0ZXN0X3JlYWw9IiIiCisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfbGFzdChyZXFfbGlzdCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCByZXFf
bGlzdCA9PSBbMV0KKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgKQorICAgICAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShza2lw
cGVkPTIsIHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rfc2NvcGVfbW9kdWxlX3VzZXNfc2Vzc2lv
bihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAg
ICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBb
XQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAg
ICAgZGVmIGFyZygpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gMQorCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IGFyZyA9PSAxCisgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZyk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAxCisgICAgICAgICAgICAgICAgYXNzZXJ0IGxl
bih2YWx1ZXMpID09IDEKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0MyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgYXJnID09IDEKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09
IDEKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTMpCisKKyAgICBk
ZWYgdGVzdF9zY29wZV9tb2R1bGVfYW5kX2ZpbmFsaXplcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgIGZpbmFsaXplZF9saXN0ID0gW10KKyAgICAgICAgICAg
IGNyZWF0ZWRfbGlzdCA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1v
ZHVsZSIpCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIGNy
ZWF0ZWRfbGlzdC5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5zY29w
ZSA9PSAibW9kdWxlIgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJk
YTogZmluYWxpemVkX2xpc3QuYXBwZW5kKDEpKQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
CisgICAgICAgICAgICBkZWYgY3JlYXRlZChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1
cm4gbGVuKGNyZWF0ZWRfbGlzdCkKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgZGVmIGZpbmFsaXplZChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gbGVu
KGZpbmFsaXplZF9saXN0KQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXN0X21vZDE9IiIiCisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfMShhcmcsIGNyZWF0ZWQsIGZpbmFsaXplZCk6CisgICAgICAgICAgICAgICAgICAg
IGFzc2VydCBjcmVhdGVkID09IDEKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZpbmFsaXpl
ZCA9PSAwCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMihhcmcsIGNyZWF0ZWQsIGZpbmFsaXpl
ZCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBjcmVhdGVkID09IDEKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IGZpbmFsaXplZCA9PSAwIiIiLAorICAgICAgICAgICAgdGVzdF9tb2Qy
PSIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzMoYXJnLCBjcmVhdGVkLCBmaW5hbGl6ZWQp
OgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgY3JlYXRlZCA9PSAyCisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCBmaW5hbGl6ZWQgPT0gMSIiIiwKKyAgICAgICAgICAgIHRlc3RfbW9kZTM9
IiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfNChhcmcsIGNyZWF0ZWQsIGZpbmFsaXplZCk6
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBjcmVhdGVkID09IDMKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IGZpbmFsaXplZCA9PSAyCisgICAgICAgICAgICAiIiIsCisgICAgICAgICkK
KyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUocGFzc2VkPTQpCisKKyAgICBkZWYgdGVzdF9zY29wZV9taXNtYXRjaF92YXJp
b3VzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZmluYWxp
emVkID0gW10KKyAgICAgICAgICAgIGNyZWF0ZWQgPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVzdF9tb2QxPSIiIgorICAgICAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9
InNlc3Npb24iKQorICAgICAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJhcmciKQorICAgICAgICAgICAgICAg
IGRlZiB0ZXN0XzEoYXJnKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAg
IiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoU0hPV19Q
WVRFU1RfV0FSTklOR1NfQVJHKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsiKlNjb3BlTWlz
bWF0Y2gqWW91IHRyaWVkKmZ1bmN0aW9uKnNlc3Npb24qcmVxdWVzdCoiXQorICAgICAgICApCisK
KyAgICBkZWYgdGVzdF9yZWdpc3Rlcl9vbmx5X3dpdGhfbWFyayhzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAg
ICBkZWYgYXJnKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgIiIiCisgICAg
ICAgICkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVzdF9tb2Qx
PSIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgICAgIGRlZiBhcmcoYXJnKToKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGFyZyArIDEKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMgorICAgICAgICAgICAgIiIiCisg
ICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6
ZV9hbmRfc2NvcGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
KyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9WyJhIiwgImIiLCAiYyJdKQor
ICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVx
dWVzdC5wYXJhbQorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiB0ZXN0
X3BhcmFtKGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAg
ICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYi
KQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKKyAgICAgICAgdmFsdWVz
ID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9jYWxsIilbMF0uaXRlbS5tb2R1bGUu
dmFsdWVzCisgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAzCisgICAgICAgIGFzc2VydCAi
YSIgaW4gdmFsdWVzCisgICAgICAgIGFzc2VydCAiYiIgaW4gdmFsdWVzCisgICAgICAgIGFzc2Vy
dCAiYyIgaW4gdmFsdWVzCisKKyAgICBkZWYgdGVzdF9zY29wZV9taXNtYXRjaChzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0iZnVuY3Rpb24iKQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKKyAgICAgICAgICAgIGRlZiBh
cmcoYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9taXNt
YXRjaChhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWyIqU2NvcGVNaXNtYXRjaCoiLCAiKjEgZXJyb3IqIl0pCisKKyAg
ICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9zZXBhcmF0ZWRfb3JkZXIoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVs
ZSIsIHBhcmFtcz1bMSwgMl0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtd
CisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZyk6CisgICAgICAgICAgICAgICAg
dmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9NCkKKyAgICAgICAgdmFsdWVzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVu
dGVzdF9jYWxsIilbMF0uaXRlbS5tb2R1bGUudmFsdWVzCisgICAgICAgIGFzc2VydCB2YWx1ZXMg
PT0gWzEsIDEsIDIsIDJdCisKKyAgICBkZWYgdGVzdF9tb2R1bGVfcGFyYW1ldHJpemVkX29yZGVy
aW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBjb25zb2xlX291dHB1dF9z
dHlsZT1jbGFzc2ljCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHRlc3RkaXIubWFr
ZWNvbmZ0ZXN0KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIsIHBhcmFtcz0iczEg
czIiLnNwbGl0KCkpCisgICAgICAgICAgICBkZWYgc2FyZygpOgorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgcGFyYW1zPSJt
MSBtMiIuc3BsaXQoKSkKKyAgICAgICAgICAgIGRlZiBtYXJnKCk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICAgICB0ZXN0X21vZDE9IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNh
cmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKG1h
cmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiLAorICAgICAgICAgICAgdGVz
dF9tb2QyPSIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoc2FyZyk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzMoc2FyZywgbWFyZyk6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzNiKHNhcmcsIG1hcmcp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmM0KG1hcmcp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiLAorICAgICAgICApCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgdGVzdF9tb2QxLnB5
Ojp0ZXN0X2Z1bmNbczFdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1
bmMyW3MxXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jM1tzMS1t
MV0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzNiW3MxLW0xXSBQ
QVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jM1tzMS1tMl0gUEFTU0VE
CisgICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzNiW3MxLW0yXSBQQVNTRUQKKyAg
ICAgICAgICAgIHRlc3RfbW9kMS5weTo6dGVzdF9mdW5jW3MyXSBQQVNTRUQKKyAgICAgICAgICAg
IHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jMltzMl0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X21v
ZDIucHk6OnRlc3RfZnVuYzNbczItbTFdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9tb2QyLnB5
Ojp0ZXN0X2Z1bmMzYltzMi1tMV0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRl
c3RfZnVuYzRbbTFdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMz
W3MyLW0yXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jM2JbczIt
bTJdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmM0W20yXSBQQVNT
RUQKKyAgICAgICAgICAgIHRlc3RfbW9kMS5weTo6dGVzdF9mdW5jMVttMV0gUEFTU0VECisgICAg
ICAgICAgICB0ZXN0X21vZDEucHk6OnRlc3RfZnVuYzFbbTJdIFBBU1NFRAorICAgICAgICAiIiIK
KyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmco
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGNvbnNvbGVfb3V0cHV0X3N0eWxl
PWNsYXNzaWMKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKKyAgICAgICAgICAgICAgICBj
bGFzcyBEeW5hbWljRml4dHVyZVBsdWdpbihvYmplY3QpOgorICAgICAgICAgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nLCBwYXJhbXM9WydmbGF2b3IxJywgJ2ZsYXZv
cjInXSkKKyAgICAgICAgICAgICAgICAgICAgZGVmIGZsYXZvcihzZWxmLCByZXF1ZXN0KToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICAg
ICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoRHluYW1pY0ZpeHR1cmVQbHVnaW4oKSwg
J2ZsYXZvci1maXh0dXJlJykKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdz
ZXNzaW9uJywgcGFyYW1zPVsndnhsYW4nLCAndmxhbiddKQorICAgICAgICAgICAgZGVmIGVuY2Fw
KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicsIGF1dG91c2U9J1RydWUnKQor
ICAgICAgICAgICAgZGVmIHJlcHJvdmlzaW9uKHJlcXVlc3QsIGZsYXZvciwgZW5jYXApOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYgdGVzdChyZXBy
b3Zpc2lvbik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3QyKHJl
cHJvdmlzaW9uKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICAp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgdGVz
dF9keW5hbWljX3BhcmFtZXRyaXplZF9vcmRlcmluZy5weTo6dGVzdFtmbGF2b3IxLXZ4bGFuXSBQ
QVNTRUQKKyAgICAgICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6
OnRlc3QyW2ZsYXZvcjEtdnhsYW5dIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9keW5hbWljX3Bh
cmFtZXRyaXplZF9vcmRlcmluZy5weTo6dGVzdFtmbGF2b3IyLXZ4bGFuXSBQQVNTRUQKKyAgICAg
ICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6OnRlc3QyW2ZsYXZv
cjItdnhsYW5dIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9keW5hbWljX3BhcmFtZXRyaXplZF9v
cmRlcmluZy5weTo6dGVzdFtmbGF2b3IyLXZsYW5dIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9k
eW5hbWljX3BhcmFtZXRyaXplZF9vcmRlcmluZy5weTo6dGVzdDJbZmxhdm9yMi12bGFuXSBQQVNT
RUQKKyAgICAgICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6OnRl
c3RbZmxhdm9yMS12bGFuXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0
cml6ZWRfb3JkZXJpbmcucHk6OnRlc3QyW2ZsYXZvcjEtdmxhbl0gUEFTU0VECisgICAgICAgICIi
IgorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9jbGFzc19vcmRlcmluZyhzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICBbcHl0ZXN0XQorICAgICAgICAgICAgY29uc29sZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYworICAg
ICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICB2YWx1
ZXMgPSBbXQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwg
cGFyYW1zPVsxLDJdKQorICAgICAgICAgICAgZGVmIGZhcmcocmVxdWVzdCk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHNjb3BlPSJjbGFzcyIsIHBhcmFtcz1saXN0KCJhYiIpKQorICAgICAgICAgICAgZGVmIGNhcmco
cmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIGF1dG91c2U9VHJ1ZSkKKyAg
ICAgICAgICAgIGRlZiBhcHBlbmQocmVxdWVzdCwgZmFyZywgY2FyZyk6CisgICAgICAgICAgICAg
ICAgZGVmIGZpbigpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJmaW5fJXMl
cyIgJSAoY2FyZywgZmFyZykpCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIo
ZmluKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAg
ICAgY2xhc3MgVGVzdENsYXNzMihvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzEo
c2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF8yKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBjbGFzcyBU
ZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8zKHNlbGYpOgorICAg
ICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdnMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LnJl
X21hdGNoX2xpbmVzKAorICAgICAgICAgICAgciIiIgorICAgICAgICAgICAgdGVzdF9jbGFzc19v
cmRlcmluZy5weTo6VGVzdENsYXNzMjo6dGVzdF8xXFthLTFcXSBQQVNTRUQKKyAgICAgICAgICAg
IHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3RfMVxbYS0yXF0gUEFTU0VE
CisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzJc
W2EtMVxdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENs
YXNzMjo6dGVzdF8yXFthLTJcXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJp
bmcucHk6OlRlc3RDbGFzczI6OnRlc3RfMVxbYi0xXF0gUEFTU0VECisgICAgICAgICAgICB0ZXN0
X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzFcW2ItMlxdIFBBU1NFRAorICAg
ICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzMjo6dGVzdF8yXFtiLTFc
XSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6
OnRlc3RfMlxbYi0yXF0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5
OjpUZXN0Q2xhc3M6OnRlc3RfM1xbYS0xXF0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X2NsYXNz
X29yZGVyaW5nLnB5OjpUZXN0Q2xhc3M6OnRlc3RfM1xbYS0yXF0gUEFTU0VECisgICAgICAgICAg
ICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3M6OnRlc3RfM1xbYi0xXF0gUEFTU0VE
CisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3M6OnRlc3RfM1xb
Yi0yXF0gUEFTU0VECisgICAgICAgICIiIgorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9wYXJh
bWV0cml6ZV9zZXBhcmF0ZWRfb3JkZXJfaGlnaGVyX3Njb3BlX2ZpcnN0KHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJm
dW5jdGlvbiIsIHBhcmFtcz1bMSwgMl0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHBhcmFtID0gcmVxdWVzdC5wYXJhbQorICAgICAgICAgICAgICAgIHJl
cXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgiZmluOiVzIiAlIHBhcmFt
KSkKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJjcmVhdGU6JXMiICUgcGFyYW0pCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9WyJtb2QxIiwgIm1vZDIiXSkKKyAgICAg
ICAgICAgIGRlZiBtb2RhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcGFyYW0gPSByZXF1
ZXN0LnBhcmFtCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2
YWx1ZXMuYXBwZW5kKCJmaW46JXMiICUgcGFyYW0pKQorICAgICAgICAgICAgICAgIHZhbHVlcy5h
cHBlbmQoImNyZWF0ZTolcyIgJSBwYXJhbSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVz
dC5wYXJhbQorCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgZGVmIHRlc3Rf
MShhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInRlc3QxIikKKyAgICAgICAg
ICAgIGRlZiB0ZXN0XzIobW9kYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0
ZXN0MiIpCisgICAgICAgICAgICBkZWYgdGVzdF8zKGFyZywgbW9kYXJnKToKKyAgICAgICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0MyIpCisgICAgICAgICAgICBkZWYgdGVzdF80KG1vZGFy
ZywgYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0NCIpCisgICAgICAg
ICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYi
KQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MTIpCisgICAgICAgIHZhbHVl
cyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxl
LnZhbHVlcworICAgICAgICBleHBlY3RlZCA9IFsKKyAgICAgICAgICAgICJjcmVhdGU6MSIsCisg
ICAgICAgICAgICAidGVzdDEiLAorICAgICAgICAgICAgImZpbjoxIiwKKyAgICAgICAgICAgICJj
cmVhdGU6MiIsCisgICAgICAgICAgICAidGVzdDEiLAorICAgICAgICAgICAgImZpbjoyIiwKKyAg
ICAgICAgICAgICJjcmVhdGU6bW9kMSIsCisgICAgICAgICAgICAidGVzdDIiLAorICAgICAgICAg
ICAgImNyZWF0ZToxIiwKKyAgICAgICAgICAgICJ0ZXN0MyIsCisgICAgICAgICAgICAiZmluOjEi
LAorICAgICAgICAgICAgImNyZWF0ZToyIiwKKyAgICAgICAgICAgICJ0ZXN0MyIsCisgICAgICAg
ICAgICAiZmluOjIiLAorICAgICAgICAgICAgImNyZWF0ZToxIiwKKyAgICAgICAgICAgICJ0ZXN0
NCIsCisgICAgICAgICAgICAiZmluOjEiLAorICAgICAgICAgICAgImNyZWF0ZToyIiwKKyAgICAg
ICAgICAgICJ0ZXN0NCIsCisgICAgICAgICAgICAiZmluOjIiLAorICAgICAgICAgICAgImZpbjpt
b2QxIiwKKyAgICAgICAgICAgICJjcmVhdGU6bW9kMiIsCisgICAgICAgICAgICAidGVzdDIiLAor
ICAgICAgICAgICAgImNyZWF0ZToxIiwKKyAgICAgICAgICAgICJ0ZXN0MyIsCisgICAgICAgICAg
ICAiZmluOjEiLAorICAgICAgICAgICAgImNyZWF0ZToyIiwKKyAgICAgICAgICAgICJ0ZXN0MyIs
CisgICAgICAgICAgICAiZmluOjIiLAorICAgICAgICAgICAgImNyZWF0ZToxIiwKKyAgICAgICAg
ICAgICJ0ZXN0NCIsCisgICAgICAgICAgICAiZmluOjEiLAorICAgICAgICAgICAgImNyZWF0ZToy
IiwKKyAgICAgICAgICAgICJ0ZXN0NCIsCisgICAgICAgICAgICAiZmluOjIiLAorICAgICAgICAg
ICAgImZpbjptb2QyIiwKKyAgICAgICAgXQorICAgICAgICBpbXBvcnQgcHByaW50CisKKyAgICAg
ICAgcHByaW50LnBwcmludChsaXN0KHppcCh2YWx1ZXMsIGV4cGVjdGVkKSkpCisgICAgICAgIGFz
c2VydCB2YWx1ZXMgPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplZF9maXh0
dXJlX3RlYXJkb3duX29yZGVyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsMl0sIHNjb3BlPSJjbGFzcyIpCisgICAg
ICAgICAgICBkZWYgcGFyYW0xKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1
ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisKKyAgICAgICAgICAgIGNsYXNz
IFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iY2xhc3MiLCBhdXRvdXNlPVRydWUpCisg
ICAgICAgICAgICAgICAgZGVmIHNldHVwMShzZWxmLCByZXF1ZXN0LCBwYXJhbTEpOgorICAgICAg
ICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QuYWRkZmluYWxpemVyKHNlbGYudGVhcmRvd24xKQorICAgICAgICAgICAgICAgIEBjbGFzc21l
dGhvZAorICAgICAgICAgICAgICAgIGRlZiB0ZWFyZG93bjEoc2VsZik6CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCB2YWx1ZXMucG9wKCkgPT0gMQorICAgICAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShzY29wZT0iY2xhc3MiLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICAgICAgZGVm
IHNldHVwMihzZWxmLCByZXF1ZXN0LCBwYXJhbTEpOgorICAgICAgICAgICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKDIpCisgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNl
bGYudGVhcmRvd24yKQorICAgICAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAg
ICAgIGRlZiB0ZWFyZG93bjIoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1
ZXMucG9wKCkgPT0gMgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgorICAgICAgICAg
ICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZpbmlzaCgpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCBub3QgdmFsdWVzCisgICAgICAgICIiIgorICAgICAgICApCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKjMgcGFzc2Vk
KgorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBhc3NlcnQgImVycm9yIiBub3QgaW4g
cmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAgZGVmIHRlc3RfZml4dHVyZV9maW5hbGl6ZXIoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAgICAg
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBpbXBvcnQgc3lzCisK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGJyb3dzZXIocmVx
dWVzdCk6CisKKyAgICAgICAgICAgICAgICBkZWYgZmluYWxpemUoKToKKyAgICAgICAgICAgICAg
ICAgICAgc3lzLnN0ZG91dC53cml0ZSgnRmluYWxpemVkJykKKyAgICAgICAgICAgICAgICByZXF1
ZXN0LmFkZGZpbmFsaXplcihmaW5hbGl6ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4ge30KKyAg
ICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgYiA9IHRlc3RkaXIubWtkaXIoInN1YmRpciIp
CisgICAgICAgIGIuam9pbigidGVzdF9vdmVycmlkZGVuX2ZpeHR1cmVfZmluYWxpemVyLnB5Iiku
d3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIi
XAorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgYnJvd3Nlcihicm93c2VyKToKKyAgICAgICAg
ICAgICAgICAgICAgYnJvd3NlclsndmlzaXRlZCddID0gVHJ1ZQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gYnJvd3NlcgorCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfYnJvd3Nlcihicm93
c2VyKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGJyb3dzZXJbJ3Zpc2l0ZWQnXSBpcyBU
cnVlCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKKyAgICAgICAgZm9yIHRlc3QgaW4g
WyJ0ZXN0X2Jyb3dzZXIiXToKKyAgICAgICAgICAgIHJlcHJlYy5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbIipGaW5hbGl6ZWQqIl0pCisKKyAgICBkZWYgdGVzdF9jbGFzc19zY29wZV93aXRoX25vcm1h
bF90ZXN0cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgY2xhc3MgQm94KG9iamVjdCk6CisgICAgICAgICAgICAgICAgdmFsdWUgPSAwCisK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nY2xhc3MnKQorICAgICAgICAgICAg
ZGVmIGEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgQm94LnZhbHVlICs9IDEKKyAgICAgICAg
ICAgICAgICByZXR1cm4gQm94LnZhbHVlCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2EoYSk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGEgPT0gMQorCisgICAgICAgICAgICBjbGFzcyBUZXN0MShv
YmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Ioc2VsZiwgYSk6CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydCBhID09IDIKKworICAgICAgICAgICAgY2xhc3MgVGVzdDIob2JqZWN0
KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9jKHNlbGYsIGEpOgorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgYSA9PSAzIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKHRlc3RwYXRoKQorICAgICAgICBmb3IgdGVzdCBpbiBbInRlc3RfYSIsICJ0
ZXN0X2IiLCAidGVzdF9jIl06CisgICAgICAgICAgICBhc3NlcnQgcmVwcmVjLm1hdGNocmVwb3J0
KHRlc3QpLnBhc3NlZAorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9pc19jbGVhbihzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwgMl0pCisgICAgICAgICAgICBkZWYgZml4KHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFs
dWVzLmFwcGVuZChyZXF1ZXN0LnBhcmFtKSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZpeChmaXgp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIHZhbHVlcyA9IHJlcHJl
Yy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxlLnZhbHVlcwor
ICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLCAyXQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJp
emVfc2VwYXJhdGVkX2xpZmVjeWNsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisK
KyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9Im1vZHVsZSIsIHBhcmFtcz1bMSwgMl0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3Qp
OgorICAgICAgICAgICAgICAgIHggPSByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICAgICAgcmVx
dWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKCJmaW4lcyIgJSB4KSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAgICAgICAgICAgZGVmIHRlc3Rf
MShhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAgICAgICAgICAg
ZGVmIHRlc3RfMihhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAg
ICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
Ii12cyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD00KQorICAgICAgICB2
YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X2NhbGwiKVswXS5pdGVtLm1v
ZHVsZS52YWx1ZXMKKyAgICAgICAgaW1wb3J0IHBwcmludAorCisgICAgICAgIHBwcmludC5wcHJp
bnQodmFsdWVzKQorICAgICAgICAjIGFzc2VydCBsZW4odmFsdWVzKSA9PSA2CisgICAgICAgIGFz
c2VydCB2YWx1ZXNbMF0gPT0gdmFsdWVzWzFdID09IDEKKyAgICAgICAgYXNzZXJ0IHZhbHVlc1sy
XSA9PSAiZmluMSIKKyAgICAgICAgYXNzZXJ0IHZhbHVlc1szXSA9PSB2YWx1ZXNbNF0gPT0gMgor
ICAgICAgICBhc3NlcnQgdmFsdWVzWzVdID09ICJmaW4yIgorCisgICAgZGVmIHRlc3RfcGFyYW1l
dHJpemVfZnVuY3Rpb25fc2NvcGVkX2ZpbmFsaXplcnNfY2FsbGVkKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5j
dGlvbiIsIHBhcmFtcz1bMSwgMl0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIHggPSByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICAgICAgcmVxdWVzdC5h
ZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKCJmaW4lcyIgJSB4KSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQor
ICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBl
bmQoYXJnKQorICAgICAgICAgICAgZGVmIHRlc3RfMihhcmcpOgorICAgICAgICAgICAgICAgIHZh
bHVlcy5hcHBlbmQoYXJnKQorICAgICAgICAgICAgZGVmIHRlc3RfMygpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSA4CisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVl
cyA9PSBbMSwgImZpbjEiLCAyLCAiZmluMiIsIDEsICJmaW4xIiwgMiwgImZpbjIiXQorICAgICAg
ICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12
IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTUpCisKKyAgICBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoInNjb3BlIiwgWyJzZXNzaW9uIiwgImZ1bmN0aW9uIiwgIm1vZHVs
ZSJdKQorICAgIGRlZiB0ZXN0X2ZpbmFsaXplcl9vcmRlcl9vbl9wYXJhbWV0cml6YXRpb24oc2Vs
Ziwgc2NvcGUsIHRlc3RkaXIpOgorICAgICAgICAiIiIjMjQ2IiIiCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgdmFsdWVzID0gW10KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSUoc2NvcGUpciwgcGFyYW1zPVsiMSJdKQorICAgICAgICAgICAgZGVmIGZpeDEocmVxdWVz
dCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSUoc2NvcGUpcikKKyAgICAgICAgICAgIGRlZiBmaXgyKHJl
cXVlc3QsIGJhc2UpOgorICAgICAgICAgICAgICAgIGRlZiBjbGVhbnVwX2ZpeDIoKToKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCB2YWx1ZXMsICJiYXNlIHNob3VsZCBub3QgaGF2ZSBi
ZWVuIGZpbmFsaXplZCIKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihjbGVh
bnVwX2ZpeDIpCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0lKHNjb3BlKXIp
CisgICAgICAgICAgICBkZWYgYmFzZShyZXF1ZXN0LCBmaXgxKToKKyAgICAgICAgICAgICAgICBk
ZWYgY2xlYW51cF9iYXNlKCk6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoImZp
bl9iYXNlIikKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoImZpbmFsaXppbmcgYmFzZSIpCisg
ICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoY2xlYW51cF9iYXNlKQorCisgICAg
ICAgICAgICBkZWYgdGVzdF9iZWdpbigpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2JheihiYXNlLCBmaXgyKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICBkZWYgdGVzdF9vdGhlcigpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
IiIiCisgICAgICAgICAgICAlIHsic2NvcGUiOiBzY29wZX0KKyAgICAgICAgKQorICAgICAgICBy
ZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1sdnMiKQorICAgICAgICByZXByZWMuYXNzZXJ0
b3V0Y29tZShwYXNzZWQ9MykKKworICAgIGRlZiB0ZXN0X2NsYXNzX3Njb3BlX3BhcmFtZXRyaXph
dGlvbl9vcmRlcmluZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiIzM5NiIiIgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUocGFyYW1zPVsiSm9obiIsICJEb2UiXSwgc2NvcGU9ImNsYXNzIikKKyAgICAgICAgICAg
IGRlZiBodW1hbihyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXpl
cihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbiAlcyIgJSByZXF1ZXN0LnBhcmFtKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBjbGFzcyBUZXN0
R3JlZXRpbmdzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZiwg
aHVtYW4pOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0X2hlbGxvIikK
KworICAgICAgICAgICAgY2xhc3MgVGVzdE1ldHJpY3Mob2JqZWN0KToKKyAgICAgICAgICAgICAg
ICBkZWYgdGVzdF9uYW1lKHNlbGYsIGh1bWFuKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZCgidGVzdF9uYW1lIikKKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3BvcHVsYXRp
b24oc2VsZiwgaHVtYW4pOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0
X3BvcHVsYXRpb24iKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
NikKKyAgICAgICAgdmFsdWVzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9jYWxs
IilbMF0uaXRlbS5tb2R1bGUudmFsdWVzCisgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWworICAg
ICAgICAgICAgInRlc3RfaGVsbG8iLAorICAgICAgICAgICAgImZpbiBKb2huIiwKKyAgICAgICAg
ICAgICJ0ZXN0X2hlbGxvIiwKKyAgICAgICAgICAgICJmaW4gRG9lIiwKKyAgICAgICAgICAgICJ0
ZXN0X25hbWUiLAorICAgICAgICAgICAgInRlc3RfcG9wdWxhdGlvbiIsCisgICAgICAgICAgICAi
ZmluIEpvaG4iLAorICAgICAgICAgICAgInRlc3RfbmFtZSIsCisgICAgICAgICAgICAidGVzdF9w
b3B1bGF0aW9uIiwKKyAgICAgICAgICAgICJmaW4gRG9lIiwKKyAgICAgICAgXQorCisgICAgZGVm
IHRlc3RfcGFyYW1ldHJpemVfc2V0dXBfZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBh
cmFtcz1bMSwgMl0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAg
ICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0ibW9kdWxlIiwgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIG15c2V0dXAocmVx
dWVzdCwgYXJnKToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6
IHZhbHVlcy5hcHBlbmQoImZpbiVzIiAlIGFyZykpCisgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgic2V0dXAlcyIgJSBhcmcpCisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAg
ICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcp
CisgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVzdF8zKCk6CisgICAgICAgICAgICAgICAgaW1w
b3J0IHBwcmludAorICAgICAgICAgICAgICAgIHBwcmludC5wcHJpbnQodmFsdWVzKQorICAgICAg
ICAgICAgICAgIGlmIGFyZyA9PSAxOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVz
ID09IFsic2V0dXAxIiwgMSwgMSwgXQorICAgICAgICAgICAgICAgIGVsaWYgYXJnID09IDI6Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJzZXR1cDEiLCAxLCAxLCAiZmlu
MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2V0dXAyIiwgMiwgMiwgXQor
CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigiLXYiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NikKKworICAg
IGRlZiB0ZXN0X2ZpeHR1cmVfbWFya2VkX2Z1bmN0aW9uX25vdF9jb2xsZWN0ZWRfYXNfdGVzdChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAg
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKKyAgICAgICAgICAgIGRlZiB0ZXN0X2FwcCgpOgorICAgICAgICAgICAgICAgIHJldHVybiAx
CisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NvbWV0aGluZyh0ZXN0X2FwcCk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IHRlc3RfYXBwID09IDEKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9wYXJhbXNfYW5kX2lkcyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJh
bXM9W29iamVjdCgpLCBvYmplY3QoKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRz
PVsnYWxwaGEnLCAnYmV0YSddKQorICAgICAgICAgICAgZGVmIGZpeChyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBkZWYgdGVzdF9m
b28oZml4KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMQorICAgICAgICAiIiIKKyAgICAgICAg
KQorICAgICAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQorICAgICAgICByZXMuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdF9mb28qYWxwaGEqIiwgIip0ZXN0X2ZvbypiZXRhKiJd
KQorCisgICAgZGVmIHRlc3RfcGFyYW1zX2FuZF9pZHNfeWllbGRmaXh0dXJlKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC55aWVsZF9maXh0dXJl
KHBhcmFtcz1bb2JqZWN0KCksIG9iamVjdCgpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZHM9WydhbHBoYScsICdiZXRhJ10pCisgICAgICAgICAgICBkZWYgZml4KHJlcXVl
c3QpOgorICAgICAgICAgICAgICAgICB5aWVsZCByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2ZvbyhmaXgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAgICAgICIi
IgorICAgICAgICApCisgICAgICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAg
ICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip0ZXN0X2ZvbyphbHBoYSoiLCAiKnRlc3Rf
Zm9vKmJldGEqIl0pCisKKyAgICBkZWYgdGVzdF9kZXRlcm1pbmlzdGljX2ZpeHR1cmVfY29sbGVj
dGlvbihzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgICIiIiM5MjAiIiIKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM9WyJBIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJDIl0pCisgICAgICAgICAgICBkZWYgQShyZXF1ZXN0KToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
c2NvcGU9Im1vZHVsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zPVsiRERE
REREREREIiwgIkVFRUVFRUVFRUVFRSIsICJGRkZGRkZGRkZGRiIsICJiYW5hbnNkYSJdKQorICAg
ICAgICAgICAgZGVmIEIocmVxdWVzdCwgQSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVl
c3QucGFyYW0KKworICAgICAgICAgICAgZGVmIHRlc3RfZm9vKEIpOgorICAgICAgICAgICAgICAg
ICMgU29tZXRoaW5nIGZ1bmt5IGlzIGdvaW5nIG9uIGhlcmUuCisgICAgICAgICAgICAgICAgIyBE
ZXNwaXRlIHNwZWNpZmllZCBzZWVkcywgb24gd2hhdCBpcyBjb2xsZWN0ZWQsCisgICAgICAgICAg
ICAgICAgIyBzb21ldGltZXMgd2UgZ2V0IHVuZXhwZWN0ZWQgcGFzc2VzLiBoYXNoaW5nIEIgc2Vl
bXMKKyAgICAgICAgICAgICAgICAjIHRvIGhlbHA/CisgICAgICAgICAgICAgICAgYXNzZXJ0IGhh
c2goQikgb3IgVHJ1ZQorICAgICAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgbW9ua2V5
cGF0Y2guc2V0ZW52KCJQWVRIT05IQVNIU0VFRCIsICIxIikKKyAgICAgICAgb3V0MSA9IHRlc3Rk
aXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi12IikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52
KCJQWVRIT05IQVNIU0VFRCIsICIyIikKKyAgICAgICAgb3V0MiA9IHRlc3RkaXIucnVucHl0ZXN0
X3N1YnByb2Nlc3MoIi12IikKKyAgICAgICAgb3V0MSA9IFsKKyAgICAgICAgICAgIGxpbmUKKyAg
ICAgICAgICAgIGZvciBsaW5lIGluIG91dDEub3V0bGluZXMKKyAgICAgICAgICAgIGlmIGxpbmUu
c3RhcnRzd2l0aCgidGVzdF9kZXRlcm1pbmlzdGljX2ZpeHR1cmVfY29sbGVjdGlvbi5weTo6dGVz
dF9mb28iKQorICAgICAgICBdCisgICAgICAgIG91dDIgPSBbCisgICAgICAgICAgICBsaW5lCisg
ICAgICAgICAgICBmb3IgbGluZSBpbiBvdXQyLm91dGxpbmVzCisgICAgICAgICAgICBpZiBsaW5l
LnN0YXJ0c3dpdGgoInRlc3RfZGV0ZXJtaW5pc3RpY19maXh0dXJlX2NvbGxlY3Rpb24ucHk6OnRl
c3RfZm9vIikKKyAgICAgICAgXQorICAgICAgICBhc3NlcnQgbGVuKG91dDEpID09IDEyCisgICAg
ICAgIGFzc2VydCBvdXQxID09IG91dDIKKworCitjbGFzcyBUZXN0UmVxdWVzdFNjb3BlQWNjZXNz
KG9iamVjdCk6CisgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAg
ICAgICAoInNjb3BlIiwgIm9rIiwgImVycm9yIiksCisgICAgICAgIFsKKyAgICAgICAgICAgIFsi
c2Vzc2lvbiIsICIiLCAiZnNwYXRoIGNsYXNzIGZ1bmN0aW9uIG1vZHVsZSJdLAorICAgICAgICAg
ICAgWyJtb2R1bGUiLCAibW9kdWxlIGZzcGF0aCIsICJjbHMgZnVuY3Rpb24iXSwKKyAgICAgICAg
ICAgIFsiY2xhc3MiLCAibW9kdWxlIGZzcGF0aCBjbHMiLCAiZnVuY3Rpb24iXSwKKyAgICAgICAg
ICAgIFsiZnVuY3Rpb24iLCAibW9kdWxlIGZzcGF0aCBjbHMgZnVuY3Rpb24iLCAiIl0sCisgICAg
ICAgIF0sCisgICAgKQorCisgICAgZGVmIHRlc3Rfc2V0dXAoc2VsZiwgdGVzdGRpciwgc2NvcGUs
IG9rLCBlcnJvcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHNjb3BlPSVyLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgbXlzY29wZWQocmVxdWVz
dCk6CisgICAgICAgICAgICAgICAgZm9yIHggaW4gJXI6CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydCBoYXNhdHRyKHJlcXVlc3QsIHgpCisgICAgICAgICAgICAgICAgZm9yIHggaW4gJXI6Cisg
ICAgICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoQXR0cmlidXRlRXJyb3IsIGxhbWJkYToK
KyAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIocmVxdWVzdCwgeCkpCisgICAgICAgICAg
ICAgICAgYXNzZXJ0IHJlcXVlc3Quc2Vzc2lvbgorICAgICAgICAgICAgICAgIGFzc2VydCByZXF1
ZXN0LmNvbmZpZworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICAgICAlIChzY29wZSwgb2suc3BsaXQoKSwgZXJy
b3Iuc3BsaXQoKSkKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oIi1sIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBk
ZWYgdGVzdF9mdW5jYXJnKHNlbGYsIHRlc3RkaXIsIHNjb3BlLCBvaywgZXJyb3IpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0lcikKKyAgICAgICAg
ICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgZm9yIHggaW4gJXI6CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydCBoYXNhdHRyKHJlcXVlc3QsIHgpCisgICAgICAgICAgICAg
ICAgZm9yIHggaW4gJXI6CisgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoQXR0cmli
dXRlRXJyb3IsIGxhbWJkYToKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIocmVxdWVz
dCwgeCkpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3Quc2Vzc2lvbgorICAgICAgICAg
ICAgICAgIGFzc2VydCByZXF1ZXN0LmNvbmZpZworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhh
cmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICAgICAlIChz
Y29wZSwgb2suc3BsaXQoKSwgZXJyb3Iuc3BsaXQoKSkKKyAgICAgICAgKQorICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShw
YXNzZWQ9MSkKKworCitjbGFzcyBUZXN0RXJyb3JzKG9iamVjdCk6CisgICAgZGVmIHRlc3Rfc3Vi
ZmFjdG9yeV9taXNzaW5nX2Z1bmNhcmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiBnZW4ocXdlMTIz
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICAgICAgZGVmIHRlc3Rfc29tZXRo
aW5nKGdlbik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1
bHQucmV0ICE9IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAg
ICAgICAgWyIqZGVmIGdlbihxd2UxMjMpOioiLCAiKmZpeHR1cmUqcXdlMTIzKm5vdCBmb3VuZCoi
LCAiKjEgZXJyb3IqIl0KKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfaXNzdWU0OThfZml4dHVy
ZV9maW5hbGl6ZXJfZmFpbGluZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmaXgxKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEtleUVy
cm9yCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZikKKyAgICAgICAgICAg
ICAgICByZXR1cm4gb2JqZWN0KCkKKworICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAg
ICAgIGRlZiB0ZXN0XzEoZml4MSk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChmaXgx
KQorICAgICAgICAgICAgZGVmIHRlc3RfMihmaXgxKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMu
YXBwZW5kKGZpeDEpCisgICAgICAgICAgICBkZWYgdGVzdF8zKCk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IHZhbHVlc1swXSAhPSB2YWx1ZXNbMV0KKyAgICAgICAgIiIiCisgICAgICAgICkKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICpFUlJPUip0ZWFy
ZG93bip0ZXN0XzEqCisgICAgICAgICAgICAqS2V5RXJyb3IqCisgICAgICAgICAgICAqRVJST1Iq
dGVhcmRvd24qdGVzdF8yKgorICAgICAgICAgICAgKktleUVycm9yKgorICAgICAgICAgICAgKjMg
cGFzcyoyIGVycm9yKgorICAgICAgICAiIiIKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rfc2V0
dXBmdW5jX21pc3NpbmdfZnVuY2FyZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVm
IGdlbihxd2UxMjMpOgorICAgICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgICAgICBkZWYg
dGVzdF9zb21ldGhpbmcoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAg
ICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgIT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
CisgICAgICAgICAgICBbIipkZWYgZ2VuKHF3ZTEyMyk6KiIsICIqZml4dHVyZSpxd2UxMjMqbm90
IGZvdW5kKiIsICIqMSBlcnJvcioiXQorICAgICAgICApCisKKworY2xhc3MgVGVzdFNob3dGaXh0
dXJlcyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2Z1bmNhcmdfY29tcGF0KHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCItLWZ1bmNhcmdzIikK
KyAgICAgICAgYXNzZXJ0IGNvbmZpZy5vcHRpb24uc2hvd2ZpeHR1cmVzCisKKyAgICBkZWYgdGVz
dF9zaG93X2ZpeHR1cmVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAidG1wZGlyX2ZhY3RvcnkgW1td
c2Vzc2lvbiBzY29wZVtdXSIsCisgICAgICAgICAgICAgICAgIipmb3IgdGhlIHRlc3Qgc2Vzc2lv
bioiLAorICAgICAgICAgICAgICAgICJ0bXBkaXIiLAorICAgICAgICAgICAgICAgICIqdGVtcG9y
YXJ5IGRpcmVjdG9yeSoiLAorICAgICAgICAgICAgXQorICAgICAgICApCisKKyAgICBkZWYgdGVz
dF9zaG93X2ZpeHR1cmVzX3ZlcmJvc2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIiwgIi12IikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICJ0bXBk
aXJfZmFjdG9yeSBbW11zZXNzaW9uIHNjb3BlW11dIC0tICp0bXBkaXIucHkqIiwKKyAgICAgICAg
ICAgICAgICAiKmZvciB0aGUgdGVzdCBzZXNzaW9uKiIsCisgICAgICAgICAgICAgICAgInRtcGRp
ciAtLSAqdG1wZGlyLnB5KiIsCisgICAgICAgICAgICAgICAgIip0ZW1wb3JhcnkgZGlyZWN0b3J5
KiIsCisgICAgICAgICAgICBdCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVy
ZXNfdGVzdG1vZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgICAgICcnJworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgX2FyZzAoKToKKyAgICAgICAg
ICAgICAgICAiIiIgaGlkZGVuICIiIgorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgICIiIiAgaGVsbG8gd29ybGQgIiIi
CisgICAgICAgICcnJworICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCItLWZpeHR1cmVzIiwgcCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAqdG1wZGlyCisgICAgICAgICAgICAqZml4
dHVyZXMgZGVmaW5lZCBmcm9tKgorICAgICAgICAgICAgKmFyZzEqCisgICAgICAgICAgICAqaGVs
bG8gd29ybGQqCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIGFzc2VydCAiYXJnMCIg
bm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgidGVzdG1vZCIsIFtUcnVlLCBGYWxzZV0pCisgICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc19j
b25mdGVzdChzZWxmLCB0ZXN0ZGlyLCB0ZXN0bW9kKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoCisgICAgICAgICAgICAnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAg
ICAgICAgICAiIiIgIGhlbGxvIHdvcmxkICIiIgorICAgICAgICAnJycKKyAgICAgICAgKQorICAg
ICAgICBpZiB0ZXN0bW9kOgorICAgICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKnRt
cGRpcioKKyAgICAgICAgICAgICpmaXh0dXJlcyBkZWZpbmVkIGZyb20qY29uZnRlc3QqCisgICAg
ICAgICAgICAqYXJnMSoKKyAgICAgICAgICAgICpoZWxsbyB3b3JsZCoKKyAgICAgICAgIiIiCisg
ICAgICAgICkKKworICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfdHJpbW1lZF9kb2Moc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICB0
ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAg
ICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAg
ICAgICAgbGluZTEKKyAgICAgICAgICAgICAgICAgICAgbGluZTIKKworICAgICAgICAgICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAg
ICBkZWYgYXJnMigpOgorICAgICAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICAg
ICAgbGluZTEKKyAgICAgICAgICAgICAgICAgICAgbGluZTIKKworICAgICAgICAgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgICAgICAnJycKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIsIHApCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVu
dCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgKiBmaXh0dXJlcyBkZWZp
bmVkIGZyb20gdGVzdF9zaG93X2ZpeHR1cmVzX3RyaW1tZWRfZG9jICoKKyAgICAgICAgICAgICAg
ICBhcmcyCisgICAgICAgICAgICAgICAgICAgIGxpbmUxCisgICAgICAgICAgICAgICAgICAgIGxp
bmUyCisgICAgICAgICAgICAgICAgYXJnMQorICAgICAgICAgICAgICAgICAgICBsaW5lMQorICAg
ICAgICAgICAgICAgICAgICBsaW5lMgorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
KQorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX2luZGVudGVkX2RvYyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAnJydcCisgICAgICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgICAgIGRlZiBmaXh0dXJlMSgpOgorICAgICAgICAgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgICAgICAgICAgbGluZTEKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudGVkIGxp
bmUKKyAgICAgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgJycnCisgICAgICAg
ICAgICApCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
Zml4dHVyZXMiLCBwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAg
ICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAg
ICAgICAgICogZml4dHVyZXMgZGVmaW5lZCBmcm9tIHRlc3Rfc2hvd19maXh0dXJlc19pbmRlbnRl
ZF9kb2MgKgorICAgICAgICAgICAgICAgIGZpeHR1cmUxCisgICAgICAgICAgICAgICAgICAgIGxp
bmUxCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCBsaW5lCisgICAgICAgICAgICAg
ICAgIiIiCisgICAgICAgICAgICApCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3Nob3dfZml4
dHVyZXNfaW5kZW50ZWRfZG9jX2ZpcnN0X2xpbmVfdW5pbmRlbnRlZChzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRl
ZGVudCgKKyAgICAgICAgICAgICAgICAnJydcCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgICAgIGRlZiBm
aXh0dXJlMSgpOgorICAgICAgICAgICAgICAgICAgICAiIiJsaW5lMQorICAgICAgICAgICAgICAg
ICAgICBsaW5lMgorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZW50ZWQgbGluZQorICAgICAg
ICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICAnJycKKyAgICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIs
IHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIHRl
eHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgKiBm
aXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9zaG93X2ZpeHR1cmVzX2luZGVudGVkX2RvY19maXJz
dF9saW5lX3VuaW5kZW50ZWQgKgorICAgICAgICAgICAgICAgIGZpeHR1cmUxCisgICAgICAgICAg
ICAgICAgICAgIGxpbmUxCisgICAgICAgICAgICAgICAgICAgIGxpbmUyCisgICAgICAgICAgICAg
ICAgICAgICAgICBpbmRlbnRlZCBsaW5lCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICApCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfaW5f
Y2xhc3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisg
ICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgJycnXAorICAgICAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mo
b2JqZWN0KToKKyAgICAgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAg
ICAgICAgICAgIGRlZiBmaXh0dXJlMShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgICAgICIi
ImxpbmUxCisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lMgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluZGVudGVkIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICIiIgorICAg
ICAgICAgICAgICAgICcnJworICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIiwgcCkKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAg
ICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQgZnJvbSB0
ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfaW5fY2xhc3MgKgorICAgICAgICAgICAgICAgIGZp
eHR1cmUxCisgICAgICAgICAgICAgICAgICAgIGxpbmUxCisgICAgICAgICAgICAgICAgICAgIGxp
bmUyCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCBsaW5lCisgICAgICAgICAgICAg
ICAgIiIiCisgICAgICAgICAgICApCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3Nob3dfZml4
dHVyZXNfZGlmZmVyZW50X2ZpbGVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIKKyAgICAg
ICAgIzgzMzogLS1maXh0dXJlcyBvbmx5IHNob3dzIGZpeHR1cmVzIGZyb20gZmlyc3QgZmlsZQor
ICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVz
dF9hPScnJworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmaXhfYSgpOgorICAgICAgICAgICAgICAgICIiIkZp
eHR1cmUgQSIiIgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgZGVmIHRlc3Rf
YShmaXhfYSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAnJycKKyAgICAgICAgKQor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXN0X2I9JycnCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgZGVmIGZpeF9iKCk6CisgICAgICAgICAgICAgICAgIiIiRml4dHVyZSBCIiIiCisg
ICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBkZWYgdGVzdF9iKGZpeF9iKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICcnJworICAgICAgICApCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIikKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAqIGZpeHR1cmVz
IGRlZmluZWQgZnJvbSB0ZXN0X2EgKgorICAgICAgICAgICAgZml4X2EKKyAgICAgICAgICAgICAg
ICBGaXh0dXJlIEEKKworICAgICAgICAgICAgKiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9i
ICoKKyAgICAgICAgICAgIGZpeF9iCisgICAgICAgICAgICAgICAgRml4dHVyZSBCCisgICAgICAg
ICIiIgorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX3dpdGhfc2FtZV9u
YW1lKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAg
ICAgICAgICcnJworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgICIiIkhl
bGxvIFdvcmxkIGluIGNvbmZ0ZXN0LnB5IiIiCisgICAgICAgICAgICAgICAgcmV0dXJuICJIZWxs
byBXb3JsZCIKKyAgICAgICAgJycnCisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oYXJnMSk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEgPT0gIkhlbGxvIFdvcmxkIgorICAgICAgICAiIiIK
KyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAnJycK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQor
ICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICAiIiJIaSBmcm9tIHRlc3Qg
bW9kdWxlIiIiCisgICAgICAgICAgICAgICAgcmV0dXJuICJIaSIKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2JhcihhcmcxKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9PSAiSGkiCisgICAg
ICAgICcnJworICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LWZpeHR1cmVzIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAg
ICAgICAgIiIiCisgICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQgZnJvbSBjb25mdGVzdCAq
CisgICAgICAgICAgICBhcmcxCisgICAgICAgICAgICAgICAgSGVsbG8gV29ybGQgaW4gY29uZnRl
c3QucHkKKworICAgICAgICAgICAgKiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9zaG93X2Zp
eHR1cmVzX3dpdGhfc2FtZV9uYW1lICoKKyAgICAgICAgICAgIGFyZzEKKyAgICAgICAgICAgICAg
ICBIaSBmcm9tIHRlc3QgbW9kdWxlCisgICAgICAgICIiIgorICAgICAgICApCisKKyAgICBkZWYg
dGVzdF9maXh0dXJlX2Rpc2FsbG93X3R3aWNlKHNlbGYpOgorICAgICAgICAiIiJUZXN0IHRoYXQg
YXBwbHlpbmcgQHB5dGVzdC5maXh0dXJlIHR3aWNlIGdlbmVyYXRlcyBhbiBlcnJvciAoIzIzMzQp
LiIiIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisKKyAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAg
ICAgICBkZWYgZm9vKCk6CisgICAgICAgICAgICAgICAgcGFzcworCisKK2NsYXNzIFRlc3RDb250
ZXh0TWFuYWdlckZpeHR1cmVGdW5jcyhvYmplY3QpOgorICAgIEBweXRlc3QuZml4dHVyZShwYXJh
bXM9WyJmaXh0dXJlIiwgInlpZWxkX2ZpeHR1cmUiXSkKKyAgICBkZWYgZmxhdm9yKHNlbGYsIHJl
cXVlc3QsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52
KCJQWVRFU1RfRklYVFVSRV9GTEFWT1IiLCByZXF1ZXN0LnBhcmFtKQorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXN0X2NvbnRleHQ9IiIiCisgICAgICAgICAgICBp
bXBvcnQgb3MKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGltcG9ydCB3
YXJuaW5ncworICAgICAgICAgICAgVkFSID0gIlBZVEVTVF9GSVhUVVJFX0ZMQVZPUiIKKyAgICAg
ICAgICAgIGlmIFZBUiBub3QgaW4gb3MuZW52aXJvbjoKKyAgICAgICAgICAgICAgICB3YXJuaW5n
cy53YXJuKCJQWVRFU1RfRklYVFVSRV9GTEFWT1Igd2FzIG5vdCBzZXQsIGFzc3VtaW5nIGZpeHR1
cmUiKQorICAgICAgICAgICAgICAgIGZpeHR1cmUgPSBweXRlc3QuZml4dHVyZQorICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICBmaXh0dXJlID0gZ2V0YXR0cihweXRlc3QsIG9zLmVu
dmlyb25bVkFSXSkKKyAgICAgICAgIiIiCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3NpbXBs
ZShzZWxmLCB0ZXN0ZGlyLCBmbGF2b3IpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisg
ICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRf
ZnVuY3Rpb24KKyAgICAgICAgICAgIGZyb20gdGVzdF9jb250ZXh0IGltcG9ydCBmaXh0dXJlCisg
ICAgICAgICAgICBAZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAg
ICAgICBwcmludCgic2V0dXAiKQorICAgICAgICAgICAgICAgIHlpZWxkIDEKKyAgICAgICAgICAg
ICAgICBwcmludCgidGVhcmRvd24iKQorICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcxKToKKyAg
ICAgICAgICAgICAgICBwcmludCgidGVzdDEiLCBhcmcxKQorICAgICAgICAgICAgZGVmIHRlc3Rf
MihhcmcxKToKKyAgICAgICAgICAgICAgICBwcmludCgidGVzdDIiLCBhcmcxKQorICAgICAgICAg
ICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKnNldHVwKgorICAgICAgICAgICAg
KnRlc3QxIDEqCisgICAgICAgICAgICAqdGVhcmRvd24qCisgICAgICAgICAgICAqc2V0dXAqCisg
ICAgICAgICAgICAqdGVzdDIgMSoKKyAgICAgICAgICAgICp0ZWFyZG93bioKKyAgICAgICAgIiIi
CisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3Njb3BlZChzZWxmLCB0ZXN0ZGlyLCBmbGF2b3Ip
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyAgICAgICAgICAgIGZy
b20gdGVzdF9jb250ZXh0IGltcG9ydCBmaXh0dXJlCisgICAgICAgICAgICBAZml4dHVyZShzY29w
ZT0ibW9kdWxlIikKKyAgICAgICAgICAgIGRlZiBhcmcxKCk6CisgICAgICAgICAgICAgICAgcHJp
bnQoInNldHVwIikKKyAgICAgICAgICAgICAgICB5aWVsZCAxCisgICAgICAgICAgICAgICAgcHJp
bnQoInRlYXJkb3duIikKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnMSk6CisgICAgICAgICAg
ICAgICAgcHJpbnQoInRlc3QxIiwgYXJnMSkKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoYXJnMSk6
CisgICAgICAgICAgICAgICAgcHJpbnQoInRlc3QyIiwgYXJnMSkKKyAgICAgICAgIiIiCisgICAg
ICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICAqc2V0dXAqCisgICAgICAgICAgICAqdGVzdDEgMSoKKyAgICAgICAgICAgICp0ZXN0MiAxKgor
ICAgICAgICAgICAgKnRlYXJkb3duKgorICAgICAgICAiIiIKKyAgICAgICAgKQorCisgICAgZGVm
IHRlc3Rfc2V0dXBfZXhjZXB0aW9uKHNlbGYsIHRlc3RkaXIsIGZsYXZvcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZnJvbSB0ZXN0
X2NvbnRleHQgaW1wb3J0IGZpeHR1cmUKKyAgICAgICAgICAgIEBmaXh0dXJlKHNjb3BlPSJtb2R1
bGUiKQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICBweXRlc3QuZmFp
bCgic2V0dXAiKQorICAgICAgICAgICAgICAgIHlpZWxkIDEKKyAgICAgICAgICAgIGRlZiB0ZXN0
XzEoYXJnMSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICpweXRl
c3QuZmFpbCpzZXR1cCoKKyAgICAgICAgICAgICoxIGVycm9yKgorICAgICAgICAiIiIKKyAgICAg
ICAgKQorCisgICAgZGVmIHRlc3RfdGVhcmRvd25fZXhjZXB0aW9uKHNlbGYsIHRlc3RkaXIsIGZs
YXZvcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAg
ICAgICAgICAgZnJvbSB0ZXN0X2NvbnRleHQgaW1wb3J0IGZpeHR1cmUKKyAgICAgICAgICAgIEBm
aXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAg
ICAgICAgICB5aWVsZCAxCisgICAgICAgICAgICAgICAgcHl0ZXN0LmZhaWwoInRlYXJkb3duIikK
KyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnMSk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICAi
IiIKKyAgICAgICAgICAgICpweXRlc3QuZmFpbCp0ZWFyZG93bioKKyAgICAgICAgICAgICoxIHBh
c3NlZCoxIGVycm9yKgorICAgICAgICAiIiIKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfeWll
bGRzX21vcmVfdGhhbl9vbmUoc2VsZiwgdGVzdGRpciwgZmxhdm9yKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBmcm9tIHRlc3RfY29u
dGV4dCBpbXBvcnQgZml4dHVyZQorICAgICAgICAgICAgQGZpeHR1cmUoc2NvcGU9Im1vZHVsZSIp
CisgICAgICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgICAgIHlpZWxkIDEKKyAgICAg
ICAgICAgICAgICB5aWVsZCAyCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZzEpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi1zIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAqZml4dHVyZSBmdW5jdGlvbioKKyAg
ICAgICAgICAgICp0ZXN0X3lpZWxkcyo6MioKKyAgICAgICAgIiIiCisgICAgICAgICkKKworICAg
IGRlZiB0ZXN0X2N1c3RvbV9uYW1lKHNlbGYsIHRlc3RkaXIsIGZsYXZvcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZnJvbSB0ZXN0
X2NvbnRleHQgaW1wb3J0IGZpeHR1cmUKKyAgICAgICAgICAgIEBmaXh0dXJlKG5hbWU9J21lb3cn
KQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ21ldycK
KyAgICAgICAgICAgIGRlZiB0ZXN0XzEobWVvdyk6CisgICAgICAgICAgICAgICAgcHJpbnQobWVv
dykKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi1zIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKm1ldyoi
XSkKKworCitjbGFzcyBUZXN0UGFyYW1ldGVyaXplZFN1YlJlcXVlc3Qob2JqZWN0KToKKyAgICBk
ZWYgdGVzdF9jYWxsX2Zyb21fZml4dHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVzdF9jYWxsX2Zyb21fZml4dHVyZT0iIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBh
cmFtcz1bMCwgMSwgMl0pCisgICAgICAgICAgICBkZWYgZml4X3dpdGhfcGFyYW0ocmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZ2V0X25hbWVkX2ZpeHR1cmUocmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCdmaXhfd2l0
aF9wYXJhbScpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhyZXF1ZXN0LCBnZXRfbmFtZWRf
Zml4dHVyZSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgIiIiCisgICAgICAg
ICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgIlRo
ZSByZXF1ZXN0ZWQgZml4dHVyZSBoYXMgbm8gcGFyYW1ldGVyIGRlZmluZWQgZm9yIHRlc3Q6IiwK
KyAgICAgICAgICAgICAgICAiICAgIHRlc3RfY2FsbF9mcm9tX2ZpeHR1cmUucHk6OnRlc3RfZm9v
IiwKKyAgICAgICAgICAgICAgICAiUmVxdWVzdGVkIGZpeHR1cmUgJ2ZpeF93aXRoX3BhcmFtJyBk
ZWZpbmVkIGluOiIsCisgICAgICAgICAgICAgICAgInRlc3RfY2FsbF9mcm9tX2ZpeHR1cmUucHk6
NCIsCisgICAgICAgICAgICAgICAgIlJlcXVlc3RlZCBoZXJlOiIsCisgICAgICAgICAgICAgICAg
InRlc3RfY2FsbF9mcm9tX2ZpeHR1cmUucHk6OSIsCisgICAgICAgICAgICAgICAgIioxIGVycm9y
IGluKiIsCisgICAgICAgICAgICBdCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2NhbGxfZnJv
bV90ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAg
ICAgICAgICB0ZXN0X2NhbGxfZnJvbV90ZXN0PSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVswLCAxLCAyXSkKKyAgICAg
ICAgICAgIGRlZiBmaXhfd2l0aF9wYXJhbShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1
cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBkZWYgdGVzdF9mb28ocmVxdWVzdCk6Cisg
ICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoJ2ZpeF93aXRoX3BhcmFtJykK
KyAgICAgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAg
ICAgWworICAgICAgICAgICAgICAgICJUaGUgcmVxdWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFt
ZXRlciBkZWZpbmVkIGZvciB0ZXN0OiIsCisgICAgICAgICAgICAgICAgIiAgICB0ZXN0X2NhbGxf
ZnJvbV90ZXN0LnB5Ojp0ZXN0X2ZvbyIsCisgICAgICAgICAgICAgICAgIlJlcXVlc3RlZCBmaXh0
dXJlICdmaXhfd2l0aF9wYXJhbScgZGVmaW5lZCBpbjoiLAorICAgICAgICAgICAgICAgICJ0ZXN0
X2NhbGxfZnJvbV90ZXN0LnB5OjQiLAorICAgICAgICAgICAgICAgICJSZXF1ZXN0ZWQgaGVyZToi
LAorICAgICAgICAgICAgICAgICJ0ZXN0X2NhbGxfZnJvbV90ZXN0LnB5OjgiLAorICAgICAgICAg
ICAgICAgICIqMSBmYWlsZWQqIiwKKyAgICAgICAgICAgIF0KKyAgICAgICAgKQorCisgICAgZGVm
IHRlc3RfZXh0ZXJuYWxfZml4dHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMCwgMSwgMl0pCisgICAgICAg
ICAgICBkZWYgZml4X3dpdGhfcGFyYW0ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgICIiIgorICAgICAgICApCisKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVzdF9leHRlcm5hbF9maXh0dXJlPSIiIgor
ICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVl
c3QuZ2V0Zml4dHVyZXZhbHVlKCdmaXhfd2l0aF9wYXJhbScpCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAg
ICAiVGhlIHJlcXVlc3RlZCBmaXh0dXJlIGhhcyBubyBwYXJhbWV0ZXIgZGVmaW5lZCBmb3IgdGVz
dDoiLAorICAgICAgICAgICAgICAgICIgICAgdGVzdF9leHRlcm5hbF9maXh0dXJlLnB5Ojp0ZXN0
X2ZvbyIsCisgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgIlJlcXVlc3RlZCBm
aXh0dXJlICdmaXhfd2l0aF9wYXJhbScgZGVmaW5lZCBpbjoiLAorICAgICAgICAgICAgICAgICJj
b25mdGVzdC5weTo0IiwKKyAgICAgICAgICAgICAgICAiUmVxdWVzdGVkIGhlcmU6IiwKKyAgICAg
ICAgICAgICAgICAidGVzdF9leHRlcm5hbF9maXh0dXJlLnB5OjIiLAorICAgICAgICAgICAgICAg
ICIqMSBmYWlsZWQqIiwKKyAgICAgICAgICAgIF0KKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rf
bm9uX3JlbGF0aXZlX3BhdGgoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RzX2RpciA9IHRl
c3RkaXIubWtkaXIoInRlc3RzIikKKyAgICAgICAgZml4ZGlyID0gdGVzdGRpci5ta2RpcigiZml4
dHVyZXMiKQorICAgICAgICBmaXhmaWxlID0gZml4ZGlyLmpvaW4oImZpeC5weSIpCisgICAgICAg
IGZpeGZpbGUud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAg
ICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzAsIDEsIDJdKQorICAgICAgICAgICAgICAgIGRl
ZiBmaXhfd2l0aF9wYXJhbShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QucGFyYW0KKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAg
KQorCisgICAgICAgIHRlc3RmaWxlID0gdGVzdHNfZGlyLmpvaW4oInRlc3RfZm9vcy5weSIpCisg
ICAgICAgIHRlc3RmaWxlLndyaXRlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAg
ICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBmcm9tIGZpeCBpbXBvcnQgZml4X3dp
dGhfcGFyYW0KKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoJ2ZpeF93aXRoX3BhcmFtJykK
KyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorCisgICAgICAg
IHRlc3RzX2Rpci5jaGRpcigpCisgICAgICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydChmaXhkaXIp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICJUaGUg
cmVxdWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFtZXRlciBkZWZpbmVkIGZvciB0ZXN0OiIsCisg
ICAgICAgICAgICAgICAgIiAgICB0ZXN0X2Zvb3MucHk6OnRlc3RfZm9vIiwKKyAgICAgICAgICAg
ICAgICAiIiwKKyAgICAgICAgICAgICAgICAiUmVxdWVzdGVkIGZpeHR1cmUgJ2ZpeF93aXRoX3Bh
cmFtJyBkZWZpbmVkIGluOiIsCisgICAgICAgICAgICAgICAgIipmaXgucHk6NCIsCisgICAgICAg
ICAgICAgICAgIlJlcXVlc3RlZCBoZXJlOiIsCisgICAgICAgICAgICAgICAgInRlc3RfZm9vcy5w
eTo0IiwKKyAgICAgICAgICAgICAgICAiKjEgZmFpbGVkKiIsCisgICAgICAgICAgICBdCisgICAg
ICAgICkKKworCitkZWYgdGVzdF9weXRlc3RfZml4dHVyZV9zZXR1cF9hbmRfcG9zdF9maW5hbGl6
ZXJfaG9vayh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgIiIi
CisgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyAgICAgICAg
ZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgorICAgICAgICAg
ICAgcHJpbnQoJ1JPT1Qgc2V0dXAgaG9vayBjYWxsZWQgZm9yIHswfSBmcm9tIHsxfScuZm9ybWF0
KGZpeHR1cmVkZWYuYXJnbmFtZSwgcmVxdWVzdC5ub2RlLm5hbWUpKQorICAgICAgICBkZWYgcHl0
ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4dHVyZWRlZiwgcmVxdWVzdCk6CisgICAgICAg
ICAgICBwcmludCgnUk9PVCBmaW5hbGl6ZXIgaG9vayBjYWxsZWQgZm9yIHswfSBmcm9tIHsxfScu
Zm9ybWF0KGZpeHR1cmVkZWYuYXJnbmFtZSwgcmVxdWVzdC5ub2RlLm5hbWUpKQorICAgICIiIgor
ICAgICkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICoqeworICAgICAgICAgICAg
InRlc3RzL2NvbmZ0ZXN0LnB5IjogIiIiCisgICAgICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHByaW50X2Z1bmN0aW9uCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2ZpeHR1cmVfc2V0dXAo
Zml4dHVyZWRlZiwgcmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcHJpbnQoJ1RFU1RTIHNldHVw
IGhvb2sgY2FsbGVkIGZvciB7MH0gZnJvbSB7MX0nLmZvcm1hdChmaXh0dXJlZGVmLmFyZ25hbWUs
IHJlcXVlc3Qubm9kZS5uYW1lKSkKKyAgICAgICAgICAgIGRlZiBweXRlc3RfZml4dHVyZV9wb3N0
X2ZpbmFsaXplcihmaXh0dXJlZGVmLCByZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBwcmludCgn
VEVTVFMgZmluYWxpemVyIGhvb2sgY2FsbGVkIGZvciB7MH0gZnJvbSB7MX0nLmZvcm1hdChmaXh0
dXJlZGVmLmFyZ25hbWUsIHJlcXVlc3Qubm9kZS5uYW1lKSkKKyAgICAgICAgIiIiLAorICAgICAg
ICAgICAgInRlc3RzL3Rlc3RfaG9va3MucHkiOiAiIiIKKyAgICAgICAgICAgIGZyb20gX19mdXR1
cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKwor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiBteV9maXh0dXJl
KCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdzb21lJworCisgICAgICAgICAgICBkZWYgdGVz
dF9mdW5jKG15X2ZpeHR1cmUpOgorICAgICAgICAgICAgICAgIHByaW50KCdURVNUIHRlc3RfZnVu
YycpCisgICAgICAgICAgICAgICAgYXNzZXJ0IG15X2ZpeHR1cmUgPT0gJ3NvbWUnCisgICAgICAg
ICIiIiwKKyAgICAgICAgfQorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LXMiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAgICAgICAgICIqVEVTVFMgc2V0dXAgaG9vayBjYWxs
ZWQgZm9yIG15X2ZpeHR1cmUgZnJvbSB0ZXN0X2Z1bmMqIiwKKyAgICAgICAgICAgICIqUk9PVCBz
ZXR1cCBob29rIGNhbGxlZCBmb3IgbXlfZml4dHVyZSBmcm9tIHRlc3RfZnVuYyoiLAorICAgICAg
ICAgICAgIipURVNUIHRlc3RfZnVuYyoiLAorICAgICAgICAgICAgIipURVNUUyBmaW5hbGl6ZXIg
aG9vayBjYWxsZWQgZm9yIG15X2ZpeHR1cmUgZnJvbSB0ZXN0X2Z1bmMqIiwKKyAgICAgICAgICAg
ICIqUk9PVCBmaW5hbGl6ZXIgaG9vayBjYWxsZWQgZm9yIG15X2ZpeHR1cmUgZnJvbSB0ZXN0X2Z1
bmMqIiwKKyAgICAgICAgXQorICAgICkKKworCitjbGFzcyBUZXN0U2NvcGVPcmRlcmluZyhvYmpl
Y3QpOgorICAgICIiIkNsYXNzIG9mIHRlc3RzIHRoYXQgZW5zdXJlIGZpeHR1cmVzIGFyZSBvcmRl
cmVkIGJhc2VkIG9uIHRoZWlyIHNjb3BlcyAoIzI0MDUpIiIiCisKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoInZhcmlhbnQiLCBbIm1hcmsiLCAiYXV0b3VzZSJdKQorICAgIGRlZiB0ZXN0
X2Z1bmNfY2xvc3VyZV9tb2R1bGVfYXV0byhzZWxmLCB0ZXN0ZGlyLCB2YXJpYW50LCBtb25rZXlw
YXRjaCk6CisgICAgICAgICIiIlNlbWFudGljYWxseSBpZGVudGljYWwgdG8gdGhlIGV4YW1wbGUg
cG9zdGVkIGluICMyNDA1IHdoZW4gYGB1c2VfbWFyaz1UcnVlYGAiIiIKKyAgICAgICAgbW9ua2V5
cGF0Y2guc2V0ZW52KCJGSVhUVVJFX0FDVElWQVRJT05fVkFSSUFOVCIsIHZhcmlhbnQpCisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1w
b3J0IHdhcm5pbmdzCisgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIFZBUiA9ICdGSVhUVVJFX0FDVElWQVRJT05fVkFSSUFOVCcKKyAg
ICAgICAgICAgIFZBTElEX1ZBUlMgPSAoJ2F1dG91c2UnLCAnbWFyaycpCisKKyAgICAgICAgICAg
IFZBUklBTlQgPSBvcy5lbnZpcm9uLmdldChWQVIpCisgICAgICAgICAgICBpZiBWQVJJQU5UIGlz
IE5vbmUgb3IgVkFSSUFOVCBub3QgaW4gVkFMSURfVkFSUzoKKyAgICAgICAgICAgICAgICB3YXJu
aW5ncy53YXJuKCJ7IXJ9IGlzIG5vdCAgaW4ge30sIGFzc3VtaW5nIGF1dG91c2UiLmZvcm1hdChW
QVJJQU5ULCBWQUxJRF9WQVJTKSApCisgICAgICAgICAgICAgICAgdmFyaWFudCA9ICdtYXJrJwor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J21vZHVsZScsIGF1dG91c2U9VkFS
SUFOVCA9PSAnYXV0b3VzZScpCisgICAgICAgICAgICBkZWYgbTEoKTogcGFzcworCisgICAgICAg
ICAgICBpZiBWQVJJQU5UPT0nbWFyayc6CisgICAgICAgICAgICAgICAgcHl0ZXN0bWFyayA9IHB5
dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdtMScpCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0nZnVuY3Rpb24nLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgZjEoKTog
cGFzcworCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKG0xKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIGl0ZW1zLCBfID0gdGVzdGRpci5p
bmxpbmVfZ2VuaXRlbXMoKQorICAgICAgICByZXF1ZXN0ID0gRml4dHVyZVJlcXVlc3QoaXRlbXNb
MF0pCisgICAgICAgIGFzc2VydCByZXF1ZXN0LmZpeHR1cmVuYW1lcyA9PSAibTEgZjEiLnNwbGl0
KCkKKworICAgIGRlZiB0ZXN0X2Z1bmNfY2xvc3VyZV93aXRoX25hdGl2ZV9maXh0dXJlcyhzZWxm
LCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgICIiIlNhbml0eSBjaGVjayB0aGF0IHZl
cmlmaWVzIHRoZSBvcmRlciByZXR1cm5lZCBieSB0aGUgY2xvc3VyZXMgYW5kIHRoZSBhY3R1YWwg
Zml4dHVyZSBleGVjdXRpb24gb3JkZXI6CisgICAgICAgIFRoZSBleGVjdXRpb24gb3JkZXIgbWF5
IGRpZmZlciBiZWNhdXNlIG9mIGZpeHR1cmUgaW50ZXItZGVwZW5kZW5jaWVzLgorICAgICAgICAi
IiIKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihweXRlc3QsICJGSVhUVVJFX09SREVSIiwg
W10sIHJhaXNpbmc9RmFsc2UpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBGSVhUVVJF
X09SREVSID0gcHl0ZXN0LkZJWFRVUkVfT1JERVIKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHNjb3BlPSJzZXNzaW9uIikKKyAgICAgICAgICAgIGRlZiBzMSgpOgorICAgICAgICAgICAg
ICAgIEZJWFRVUkVfT1JERVIuYXBwZW5kKCdzMScpCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShzY29wZT0icGFja2FnZSIpCisgICAgICAgICAgICBkZWYgcDEoKToKKyAgICAgICAgICAg
ICAgICBGSVhUVVJFX09SREVSLmFwcGVuZCgncDEnKQorCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgICAgICAgICBkZWYgbTEoKToKKyAgICAgICAgICAg
ICAgICBGSVhUVVJFX09SREVSLmFwcGVuZCgnbTEnKQorCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9J3Nlc3Npb24nKQorICAgICAgICAgICAgZGVmIG15X3RtcGRpcl9mYWN0b3J5
KCk6CisgICAgICAgICAgICAgICAgRklYVFVSRV9PUkRFUi5hcHBlbmQoJ215X3RtcGRpcl9mYWN0
b3J5JykKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgbXlf
dG1wZGlyKG15X3RtcGRpcl9mYWN0b3J5KToKKyAgICAgICAgICAgICAgICBGSVhUVVJFX09SREVS
LmFwcGVuZCgnbXlfdG1wZGlyJykKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgICAgICBkZWYgZjEobXlfdG1wZGlyKToKKyAgICAgICAgICAgICAgICBGSVhUVVJFX09SREVS
LmFwcGVuZCgnZjEnKQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAg
IGRlZiBmMigpOgorICAgICAgICAgICAgICAgIEZJWFRVUkVfT1JERVIuYXBwZW5kKCdmMicpCisK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhmMSwgcDEsIG0xLCBmMiwgczEpOiBwYXNzCisgICAg
ICAgICIiIgorICAgICAgICApCisgICAgICAgIGl0ZW1zLCBfID0gdGVzdGRpci5pbmxpbmVfZ2Vu
aXRlbXMoKQorICAgICAgICByZXF1ZXN0ID0gRml4dHVyZVJlcXVlc3QoaXRlbXNbMF0pCisgICAg
ICAgICMgb3JkZXIgb2YgZml4dHVyZXMgYmFzZWQgb24gdGhlaXIgc2NvcGUgYW5kIHBvc2l0aW9u
IGluIHRoZSBwYXJhbWV0ZXIgbGlzdAorICAgICAgICBhc3NlcnQgKAorICAgICAgICAgICAgcmVx
dWVzdC5maXh0dXJlbmFtZXMgPT0gInMxIG15X3RtcGRpcl9mYWN0b3J5IHAxIG0xIGYxIGYyIG15
X3RtcGRpciIuc3BsaXQoKQorICAgICAgICApCisgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICAgICAgIyBhY3R1YWwgZml4dHVyZSBleGVjdXRpb24gZGlmZmVyczogZGVwZW5kZW50IGZp
eHR1cmVzIG11c3QgYmUgY3JlYXRlZCBmaXJzdCAoIm15X3RtcGRpciIpCisgICAgICAgIGFzc2Vy
dCAoCisgICAgICAgICAgICBweXRlc3QuRklYVFVSRV9PUkRFUiA9PSAiczEgbXlfdG1wZGlyX2Zh
Y3RvcnkgcDEgbTEgbXlfdG1wZGlyIGYxIGYyIi5zcGxpdCgpCisgICAgICAgICkKKworICAgIGRl
ZiB0ZXN0X2Z1bmNfY2xvc3VyZV9tb2R1bGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J21vZHVsZScpCisgICAgICAg
ICAgICBkZWYgbTEoKTogcGFzcworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9
J2Z1bmN0aW9uJykKKyAgICAgICAgICAgIGRlZiBmMSgpOiBwYXNzCisKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMoZjEsIG0xKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgor
ICAgICAgICApCisgICAgICAgIGl0ZW1zLCBfID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoKQor
ICAgICAgICByZXF1ZXN0ID0gRml4dHVyZVJlcXVlc3QoaXRlbXNbMF0pCisgICAgICAgIGFzc2Vy
dCByZXF1ZXN0LmZpeHR1cmVuYW1lcyA9PSAibTEgZjEiLnNwbGl0KCkKKworICAgIGRlZiB0ZXN0
X2Z1bmNfY2xvc3VyZV9zY29wZXNfcmVvcmRlcmVkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAi
IiJUZXN0IGVuc3VyZXMgdGhhdCBmaXh0dXJlcyBhcmUgb3JkZXJlZCBieSBzY29wZSByZWdhcmRs
ZXNzIG9mIHRoZSBvcmRlciBvZiB0aGUgcGFyYW1ldGVycywgYWx0aG91Z2gKKyAgICAgICAgZml4
dHVyZXMgb2Ygc2FtZSBzY29wZSBrZWVwIHRoZSBkZWNsYXJlZCBvcmRlcgorICAgICAgICAiIiIK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vz
c2lvbicpCisgICAgICAgICAgICBkZWYgczEoKTogcGFzcworCisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9J21vZHVsZScpCisgICAgICAgICAgICBkZWYgbTEoKTogcGFzcworCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykKKyAgICAgICAgICAg
IGRlZiBmMSgpOiBwYXNzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVu
Y3Rpb24nKQorICAgICAgICAgICAgZGVmIGYyKCk6IHBhc3MKKworICAgICAgICAgICAgY2xhc3Mg
VGVzdDoKKworICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nY2xhc3MnKQor
ICAgICAgICAgICAgICAgIGRlZiBjMShjbHMpOiBwYXNzCisKKyAgICAgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jKHNlbGYsIGYyLCBmMSwgYzEsIG0xLCBzMSk6CisgICAgICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgaXRlbXMsIF8gPSB0ZXN0ZGly
LmlubGluZV9nZW5pdGVtcygpCisgICAgICAgIHJlcXVlc3QgPSBGaXh0dXJlUmVxdWVzdChpdGVt
c1swXSkKKyAgICAgICAgYXNzZXJ0IHJlcXVlc3QuZml4dHVyZW5hbWVzID09ICJzMSBtMSBjMSBm
MiBmMSIuc3BsaXQoKQorCisgICAgZGVmIHRlc3RfZnVuY19jbG9zdXJlX3NhbWVfc2NvcGVfY2xv
c2VyX3Jvb3RfZmlyc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIkF1dG8tdXNlIGZpeHR1
cmVzIG9mIHNhbWUgc2NvcGUgYXJlIG9yZGVyZWQgYnkgY2xvc2VyLXRvLXJvb3QgZmlyc3QiIiIK
KyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdt
b2R1bGUnLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgbV9jb25mKCk6IHBhc3MKKyAg
ICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAg
ICAgICAgKip7CisgICAgICAgICAgICAgICAgInN1Yi9jb25mdGVzdC5weSI6ICIiIgorICAgICAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0ncGFja2FnZScsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkZWYgcF9z
dWIoKTogcGFzcworCisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdtb2R1
bGUnLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICAgICAgZGVmIG1fc3ViKCk6IHBhc3MKKyAg
ICAgICAgICAgICIiIiwKKyAgICAgICAgICAgICAgICAic3ViL19faW5pdF9fLnB5IjogIiIsCisg
ICAgICAgICAgICAgICAgInN1Yi90ZXN0X2Z1bmMucHkiOiAiIiIKKyAgICAgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J21v
ZHVsZScsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkZWYgbV90ZXN0KCk6IHBhc3MK
KworICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24nKQorICAg
ICAgICAgICAgICAgIGRlZiBmMSgpOiBwYXNzCisKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9m
dW5jKG1fdGVzdCwgZjEpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIiwK
KyAgICAgICAgICAgIH0KKyAgICAgICAgKQorICAgICAgICBpdGVtcywgXyA9IHRlc3RkaXIuaW5s
aW5lX2dlbml0ZW1zKCkKKyAgICAgICAgcmVxdWVzdCA9IEZpeHR1cmVSZXF1ZXN0KGl0ZW1zWzBd
KQorICAgICAgICBhc3NlcnQgcmVxdWVzdC5maXh0dXJlbmFtZXMgPT0gInBfc3ViIG1fY29uZiBt
X3N1YiBtX3Rlc3QgZjEiLnNwbGl0KCkKKworICAgIGRlZiB0ZXN0X2Z1bmNfY2xvc3VyZV9hbGxf
c2NvcGVzX2NvbXBsZXgoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIkNvbXBsZXggdGVzdCBp
bnZvbHZpbmcgYWxsIHNjb3BlcyBhbmQgbWl4aW5nIGF1dG91c2Ugd2l0aCBub3JtYWwgZml4dHVy
ZXMiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSdzZXNzaW9uJykKKyAgICAgICAgICAgIGRlZiBzMSgpOiBwYXNzCisKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0ncGFja2FnZScsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAg
ICAgIGRlZiBwMSgpOiBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgqKnsiX19pbml0X18ucHkiOiAiIn0pCisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J21vZHVsZScsIGF1dG91c2U9VHJ1ZSkK
KyAgICAgICAgICAgIGRlZiBtMSgpOiBwYXNzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0nbW9kdWxlJykKKyAgICAgICAgICAgIGRlZiBtMihzMSk6IHBhc3MKKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdmdW5jdGlvbicpCisgICAgICAgICAgICBkZWYg
ZjEoKTogcGFzcworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9u
JykKKyAgICAgICAgICAgIGRlZiBmMigpOiBwYXNzCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3Q6
CisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2NsYXNzJywgYXV0b3Vz
ZT1UcnVlKQorICAgICAgICAgICAgICAgIGRlZiBjMShzZWxmKToKKyAgICAgICAgICAgICAgICAg
ICAgcGFzcworCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzZWxmLCBmMiwgZjEsIG0y
KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAg
ICAgICBpdGVtcywgXyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKCkKKyAgICAgICAgcmVxdWVz
dCA9IEZpeHR1cmVSZXF1ZXN0KGl0ZW1zWzBdKQorICAgICAgICBhc3NlcnQgcmVxdWVzdC5maXh0
dXJlbmFtZXMgPT0gInMxIHAxIG0xIG0yIGMxIGYyIGYxIi5zcGxpdCgpCisKKyAgICBkZWYgdGVz
dF9tdWx0aXBsZV9wYWNrYWdlcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiQ29tcGxleCB0
ZXN0IGludm9sdmluZyBtdWx0aXBsZSBwYWNrYWdlIGZpeHR1cmVzLiBNYWtlIHN1cmUgdGVhcmRv
d25zCisgICAgICAgIGFyZSBleGVjdXRlZCBpbiBvcmRlci4KKyAgICAgICAgLgorICAgICAgICDi
lJTilIDilIAgcm9vdAorICAgICAgICAgICAg4pSc4pSA4pSAIF9faW5pdF9fLnB5CisgICAgICAg
ICAgICDilJzilIDilIAgc3ViMQorICAgICAgICAgICAg4pSCICAg4pSc4pSA4pSAIF9faW5pdF9f
LnB5CisgICAgICAgICAgICDilIIgICDilJzilIDilIAgY29uZnRlc3QucHkKKyAgICAgICAgICAg
IOKUgiAgIOKUlOKUgOKUgCB0ZXN0XzEucHkKKyAgICAgICAgICAgIOKUlOKUgOKUgCBzdWIyCisg
ICAgICAgICAgICAgICAg4pSc4pSA4pSAIF9faW5pdF9fLnB5CisgICAgICAgICAgICAgICAg4pSc
4pSA4pSAIGNvbmZ0ZXN0LnB5CisgICAgICAgICAgICAgICAg4pSU4pSA4pSAIHRlc3RfMi5weQor
ICAgICAgICAiIiIKKyAgICAgICAgcm9vdCA9IHRlc3RkaXIubWtkaXIoInJvb3QiKQorICAgICAg
ICByb290LmpvaW4oIl9faW5pdF9fLnB5Iikud3JpdGUoInZhbHVlcyA9IFtdIikKKyAgICAgICAg
c3ViMSA9IHJvb3QubWtkaXIoInN1YjEiKQorICAgICAgICBzdWIxLmVuc3VyZSgiX19pbml0X18u
cHkiKQorICAgICAgICBzdWIxLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCisgICAgICAgICAg
ICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgZnJvbSAuLiBpbXBvcnQgdmFsdWVzCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InBhY2thZ2UiKQorICAgICAgICAgICAgZGVmIGZpeCgp
OgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInByZS1zdWIxIikKKyAgICAgICAgICAg
ICAgICB5aWVsZCB2YWx1ZXMKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzLnBvcCgpID09
ICJwcmUtc3ViMSIKKyAgICAgICAgIiIiCisgICAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICAgc3ViMS5qb2luKCJ0ZXN0XzEucHkiKS53cml0ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRl
ZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICBmcm9tIC4uIGltcG9ydCB2
YWx1ZXMKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoZml4KToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgdmFsdWVzID09IFsicHJlLXN1YjEiXQorICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAg
ICAgICAgKQorICAgICAgICBzdWIyID0gcm9vdC5ta2Rpcigic3ViMiIpCisgICAgICAgIHN1YjIu
ZW5zdXJlKCJfX2luaXRfXy5weSIpCisgICAgICAgIHN1YjIuam9pbigiY29uZnRlc3QucHkiKS53
cml0ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJc
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBmcm9tIC4uIGltcG9ydCB2
YWx1ZXMKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0icGFja2FnZSIpCisgICAg
ICAgICAgICBkZWYgZml4KCk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgicHJlLXN1
YjIiKQorICAgICAgICAgICAgICAgIHlpZWxkIHZhbHVlcworICAgICAgICAgICAgICAgIGFzc2Vy
dCB2YWx1ZXMucG9wKCkgPT0gInByZS1zdWIyIgorICAgICAgICAiIiIKKyAgICAgICAgICAgICkK
KyAgICAgICAgKQorICAgICAgICBzdWIyLmpvaW4oInRlc3RfMi5weSIpLndyaXRlKAorICAgICAg
ICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAg
IGZyb20gLi4gaW1wb3J0IHZhbHVlcworICAgICAgICAgICAgZGVmIHRlc3RfMihmaXgpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJwcmUtc3ViMiJdCisgICAgICAgICIiIgor
ICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisKK2RlZiB0
ZXN0X2NhbGxfZml4dHVyZV9mdW5jdGlvbl9lcnJvcigpOgorICAgICIiIkNoZWNrIGlmIGFuIGVy
cm9yIGlzIHJhaXNlZCBpZiBhIGZpeHR1cmUgZnVuY3Rpb24gaXMgY2FsbGVkIGRpcmVjdGx5ICgj
NDU0NSkiIiIKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBmaXgoKToKKyAgICAgICAg
cmV0dXJuIDEKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24p
OgorICAgICAgICBhc3NlcnQgZml4KCkgPT0gMQorCisKK2RlZiB0ZXN0X2ZpeHR1cmVfcGFyYW1f
c2hhZG93aW5nKHRlc3RkaXIpOgorICAgICIiIlBhcmFtZXRyaXplZCBhcmd1bWVudHMgd291bGQg
YmUgc2hhZG93ZWQgaWYgYSBmaXh0dXJlIHdpdGggdGhlIHNhbWUgbmFtZSBhbHNvIGV4aXN0cyAo
IzUwMzYpIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WydhJywgJ2In
XSkKKyAgICAgICAgZGVmIGFyZ3Jvb3QocmVxdWVzdCk6CisgICAgICAgICAgICByZXR1cm4gcmVx
dWVzdC5wYXJhbQorCisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgYXJnKGFy
Z3Jvb3QpOgorICAgICAgICAgICAgcmV0dXJuIGFyZ3Jvb3QKKworICAgICAgICAjIFRoaXMgc2hv
dWxkIG9ubHkgYmUgcGFyYW1ldHJpemVkIGRpcmVjdGx5CisgICAgICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgiYXJnIiwgWzFdKQorICAgICAgICBkZWYgdGVzdF9kaXJlY3QoYXJnKToKKyAg
ICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQorCisgICAgICAgICMgVGhpcyBzaG91bGQgYmUgcGFy
YW1ldHJpemVkIGJhc2VkIG9uIHRoZSBmaXh0dXJlcworICAgICAgICBkZWYgdGVzdF9ub3JtYWxf
Zml4dHVyZShhcmcpOgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYXJnLCBzdHIpCisK
KyAgICAgICAgIyBJbmRpcmVjdCBzaG91bGQgc3RpbGwgd29yazoKKworICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgZGVmIGFyZzIocmVxdWVzdCk6CisgICAgICAgICAgICByZXR1cm4g
MipyZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJhcmcy
IiwgWzFdLCBpbmRpcmVjdD1UcnVlKQorICAgICAgICBkZWYgdGVzdF9pbmRpcmVjdChhcmcyKToK
KyAgICAgICAgICAgIGFzc2VydCBhcmcyID09IDIKKyAgICAiIiIKKyAgICApCisgICAgIyBPbmx5
IG9uZSB0ZXN0IHNob3VsZCBoYXZlIHJ1bgorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItdiIpCisgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9NCkKKyAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqOjp0ZXN0X2RpcmVjdFtbXTFbXV0qIl0pCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjo6dGVzdF9ub3JtYWxfZml4dHVyZVtbXWFbXV0q
Il0pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjo6dGVzdF9ub3JtYWxfZml4
dHVyZVtbXWJbXV0qIl0pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjo6dGVz
dF9pbmRpcmVjdFtbXTFbXV0qIl0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5
dGhvbi9pbnRlZ3JhdGlvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ludGVncmF0
aW9uLnB5CmluZGV4IGYzNDhmZGMyOWZkMmViODE5ODQ3MDE4YTllNGQzMTRkNTE3OGEyMjQuLmQy
ZmVhMmRjNWNhMDZiNWM1ZjFhYmM0MjZjMjgzZWEyYWQzOGE1NmYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ludGVncmF0aW9uLnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvcHl0aG9uL2ludGVncmF0aW9uLnB5CkBAIC0xLDEwICsxLDEwIEBACisjIC0qLSBjb2Rp
bmc6IHV0Zi04IC0qLQogaW1wb3J0IHB5dGVzdAogZnJvbSBfcHl0ZXN0IGltcG9ydCBweXRob24K
IGZyb20gX3B5dGVzdCBpbXBvcnQgcnVubmVyCiAKIAogY2xhc3MgVGVzdE9FSlNLSVRTcGVjaWFs
cyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfZnVuY2FyZ19ub25fcHljb2xsZWN0b2JqKHNlbGYs
IHRlc3RkaXIpOiAgIyByb3VnaCBqc3Rlc3RzIHVzYWdlCiAgICAgICAgIHRlc3RkaXIubWFrZWNv
bmZ0ZXN0KAogICAgICAgICAgICAgIiIiCkBAIC03MCw3ICs3MCw2IEBAIGNsYXNzIFRlc3RPRUpT
S0lUU3BlY2lhbHMob2JqZWN0KToKIAogCiBkZWYgdGVzdF93cmFwcGVkX2dldGZzbGluZW5vKCk6
Ci0KICAgICBkZWYgZnVuYygpOgogICAgICAgICBwYXNzCiAKQEAgLTg5LDEyICs4OCwxMCBAQCBk
ZWYgdGVzdF93cmFwcGVkX2dldGZzbGluZW5vKCk6CiAKIAogY2xhc3MgVGVzdE1vY2tEZWNvcmF0
aW9uKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF93cmFwcGVkX2dldGZ1bmNhcmduYW1lcyhzZWxm
KToKICAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgZ2V0ZnVuY2FyZ25hbWVzCiAK
ICAgICAgICAgZGVmIHdyYXAoZik6Ci0KICAgICAgICAgICAgIGRlZiBmdW5jKCk6CiAgICAgICAg
ICAgICAgICAgcGFzcwogCkBAIC0xMTUsNyArMTEyLDYgQEAgY2xhc3MgVGVzdE1vY2tEZWNvcmF0
aW9uKG9iamVjdCk6CiAgICAgICAgIGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGdldGZ1bmNh
cmduYW1lcwogCiAgICAgICAgIGRlZiB3cmFwKGYpOgotCiAgICAgICAgICAgICBkZWYgZnVuYygp
OgogICAgICAgICAgICAgICAgIHBhc3MKIApAQCAtMjY5LDcgKzI2NSw2IEBAIGNsYXNzIFRlc3RN
b2NrRGVjb3JhdGlvbihvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RSZVJ1blRlc3RzKG9iamVjdCk6
Ci0KICAgICBkZWYgdGVzdF9yZXJ1bihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5t
YWtlY29uZnRlc3QoCiAgICAgICAgICAgICAiIiIKQEAgLTI4OSw3ICsyODQsNyBAQCBjbGFzcyBU
ZXN0UmVSdW5UZXN0cyhvYmplY3QpOgogICAgICAgICAgICAgICAgIGdsb2JhbCBjb3VudCwgcmVx
CiAgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3QgIT0gcmVxCiAgICAgICAgICAgICAgICAg
cmVxID0gcmVxdWVzdAotICAgICAgICAgICAgICAgIHByaW50ICgiZml4IGNvdW50ICVzIiAlIGNv
dW50KQorICAgICAgICAgICAgICAgIHByaW50KCJmaXggY291bnQgJXMiICUgY291bnQpCiAgICAg
ICAgICAgICAgICAgY291bnQgKz0gMQogICAgICAgICAgICAgZGVmIHRlc3RfZml4KGZpeCk6CiAg
ICAgICAgICAgICAgICAgcGFzcwpAQCAtMzE2LDcgKzMxMSw2IEBAIGRlZiB0ZXN0X3B5dGVzdGNv
bmZpZ19pc19zZXNzaW9uX3Njb3BlZCgpOgogCiAKIGNsYXNzIFRlc3ROb3NlbGlrZVRlc3RBdHRy
aWJ1dGUob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X21vZHVsZV93aXRoX2dsb2JhbF90ZXN0KHNl
bGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAi
IiIKQEAgLTQwMCw4ICszOTQsOCBAQCBjbGFzcyBUZXN0Tm9zZWxpa2VUZXN0QXR0cmlidXRlKG9i
amVjdCk6CiAgICAgICAgIGFzc2VydCBub3QgY2FsbC5pdGVtcwogCiAKLUBweXRlc3QubWFyay5p
c3N1ZTM1MQogY2xhc3MgVGVzdFBhcmFtZXRlcml6ZShvYmplY3QpOgorICAgICIiIiMzNTEiIiIK
IAogICAgIGRlZiB0ZXN0X2lkZm5fbWFya2VyKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9t
ZXRhZnVuYy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL21ldGFmdW5jLnB5CmluZGV4
IGUxODFkMzEzMWY1NzcwZmFhMzQwNjVlM2ZkZmE0NTllZTlmZDFlY2UuLmQ5MDc4Nzg5NGFlMzRi
M2RhNWQ3ZDZhYTY1OTkxYjJhOTk3NzFmYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvcHl0aG9uL21ldGFmdW5jLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL21l
dGFmdW5jLnB5CkBAIC0xLDIwICsxLDIyIEBACiAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1w
b3J0IHJlCiBpbXBvcnQgc3lzCi1pbXBvcnQgYXR0cgotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWlt
cG9ydCBweQotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0IGltcG9ydCBweXRob24sIGZpeHR1
cmVzCitpbXBvcnQgdGV4dHdyYXAKIAoraW1wb3J0IGF0dHIKIGltcG9ydCBoeXBvdGhlc2lzCitp
bXBvcnQgc2l4CiBmcm9tIGh5cG90aGVzaXMgaW1wb3J0IHN0cmF0ZWdpZXMKIAoraW1wb3J0IHB5
dGVzdAorZnJvbSBfcHl0ZXN0IGltcG9ydCBmaXh0dXJlcworZnJvbSBfcHl0ZXN0IGltcG9ydCBw
eXRob24KK2Zyb20gX3B5dGVzdC53YXJuaW5ncyBpbXBvcnQgU0hPV19QWVRFU1RfV0FSTklOR1Nf
QVJHCisKIFBZMyA9IHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApCiAKIAogY2xhc3MgVGVzdE1l
dGFmdW5jKG9iamVjdCk6Ci0KICAgICBkZWYgTWV0YWZ1bmMoc2VsZiwgZnVuYywgY29uZmlnPU5v
bmUpOgogICAgICAgICAjIHRoZSB1bml0IHRlc3RzIG9mIHRoaXMgY2xhc3MgY2hlY2sgaWYgdGhp
bmdzIHdvcmsgY29ycmVjdGx5CiAgICAgICAgICMgb24gdGhlIGZ1bmNhcmcgbGV2ZWwsIHNvIHdl
IGRvbid0IG5lZWQgYSBmdWxsIGJsb3duCkBAIC0zNSw3ICszNyw2IEBAIGNsYXNzIFRlc3RNZXRh
ZnVuYyhvYmplY3QpOgogICAgICAgICByZXR1cm4gcHl0aG9uLk1ldGFmdW5jKGRlZmluaXRpb24s
IGZpeHR1cmVpbmZvLCBjb25maWcpCiAKICAgICBkZWYgdGVzdF9ub19mdW5jYXJncyhzZWxmLCB0
ZXN0ZGlyKToKLQogICAgICAgICBkZWYgZnVuY3Rpb24oKToKICAgICAgICAgICAgIHBhc3MKIApA
QCAtNDQsNyArNDUsNiBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgcmVw
cihtZXRhZnVuYy5fY2FsbHMpCiAKICAgICBkZWYgdGVzdF9mdW5jdGlvbl9iYXNpYyhzZWxmKToK
LQogICAgICAgICBkZWYgZnVuYyhhcmcxLCBhcmcyPSJxd2UiKToKICAgICAgICAgICAgIHBhc3MK
IApAQCAtNTQsNzIgKzU0LDcgQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAg
IGFzc2VydCBtZXRhZnVuYy5mdW5jdGlvbiBpcyBmdW5jCiAgICAgICAgIGFzc2VydCBtZXRhZnVu
Yy5jbHMgaXMgTm9uZQogCi0gICAgZGVmIHRlc3RfYWRkY2FsbF9ub19hcmdzKHNlbGYpOgotCi0g
ICAgICAgIGRlZiBmdW5jKGFyZzEpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIG1ldGFm
dW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQotICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKCkKLSAg
ICAgICAgYXNzZXJ0IGxlbihtZXRhZnVuYy5fY2FsbHMpID09IDEKLSAgICAgICAgY2FsbCA9IG1l
dGFmdW5jLl9jYWxsc1swXQotICAgICAgICBhc3NlcnQgY2FsbC5pZCA9PSAiMCIKLSAgICAgICAg
YXNzZXJ0IG5vdCBoYXNhdHRyKGNhbGwsICJwYXJhbSIpCi0KLSAgICBkZWYgdGVzdF9hZGRjYWxs
X2lkKHNlbGYpOgotCi0gICAgICAgIGRlZiBmdW5jKGFyZzEpOgotICAgICAgICAgICAgcGFzcwot
Ci0gICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQotICAgICAgICBweXRlc3Qu
cmFpc2VzKFZhbHVlRXJyb3IsICJtZXRhZnVuYy5hZGRjYWxsKGlkPU5vbmUpIikKLQotICAgICAg
ICBtZXRhZnVuYy5hZGRjYWxsKGlkPTEpCi0gICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJv
ciwgIm1ldGFmdW5jLmFkZGNhbGwoaWQ9MSkiKQotICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVl
RXJyb3IsICJtZXRhZnVuYy5hZGRjYWxsKGlkPScxJykiKQotICAgICAgICBtZXRhZnVuYy5hZGRj
YWxsKGlkPTIpCi0gICAgICAgIGFzc2VydCBsZW4obWV0YWZ1bmMuX2NhbGxzKSA9PSAyCi0gICAg
ICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0uaWQgPT0gIjEiCi0gICAgICAgIGFzc2VydCBt
ZXRhZnVuYy5fY2FsbHNbMV0uaWQgPT0gIjIiCi0KLSAgICBkZWYgdGVzdF9hZGRjYWxsX3BhcmFt
KHNlbGYpOgotCi0gICAgICAgIGRlZiBmdW5jKGFyZzEpOgotICAgICAgICAgICAgcGFzcwotCi0g
ICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQotCi0gICAgICAgIGNsYXNzIG9i
aihvYmplY3QpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIG1ldGFmdW5jLmFkZGNhbGwo
cGFyYW09b2JqKQotICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHBhcmFtPW9iaikKLSAgICAgICAg
bWV0YWZ1bmMuYWRkY2FsbChwYXJhbT0xKQotICAgICAgICBhc3NlcnQgbGVuKG1ldGFmdW5jLl9j
YWxscykgPT0gMwotICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmdldHBhcmFtKCJh
cmcxIikgPT0gb2JqCi0gICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMV0uZ2V0cGFyYW0o
ImFyZzEiKSA9PSBvYmoKLSAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1syXS5nZXRwYXJh
bSgiYXJnMSIpID09IDEKLQotICAgIGRlZiB0ZXN0X2FkZGNhbGxfZnVuY2FyZ3Moc2VsZik6Ci0K
LSAgICAgICAgZGVmIGZ1bmMoeCk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgbWV0YWZ1
bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCi0KLSAgICAgICAgY2xhc3Mgb2JqKG9iamVjdCk6Ci0g
ICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChmdW5jYXJncz17Ingi
OiAyfSkKLSAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChmdW5jYXJncz17IngiOiAzfSkKLSAgICAg
ICAgcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24sICJtZXRhZnVuYy5hZGRjYWxs
KHsneHl6JzogMH0pIikKLSAgICAgICAgYXNzZXJ0IGxlbihtZXRhZnVuYy5fY2FsbHMpID09IDIK
LSAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSB7IngiOiAyfQot
ICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmZ1bmNhcmdzID09IHsieCI6IDN9Ci0g
ICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihtZXRhZnVuYy5fY2FsbHNbMV0sICJwYXJhbSIpCi0K
ICAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9lcnJvcihzZWxmKToKLQogICAgICAgICBkZWYgZnVu
Yyh4LCB5KToKICAgICAgICAgICAgIHBhc3MKIApAQCAtMTMyLDE4ICs2Nyw2MyBAQCBjbGFzcyBU
ZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBs
YW1iZGE6IG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ5IiwgWzUsIDZdKSkKIAogICAgIGRlZiB0ZXN0
X3BhcmFtZXRyaXplX2JhZF9zY29wZShzZWxmLCB0ZXN0ZGlyKToKLQogICAgICAgICBkZWYgZnVu
Yyh4KToKICAgICAgICAgICAgIHBhc3MKIAogICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1
bmMoZnVuYykKLSAgICAgICAgdHJ5OgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoCisgICAg
ICAgICAgICBweXRlc3QuZmFpbC5FeGNlcHRpb24sCisgICAgICAgICAgICBtYXRjaD1yInBhcmFt
ZXRyaXplXChcKSBjYWxsIGluIGZ1bmMgZ290IGFuIHVuZXhwZWN0ZWQgc2NvcGUgdmFsdWUgJ2Rv
Z2d5JyIsCisgICAgICAgICk6CiAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgieCIs
IFsxXSwgc2NvcGU9ImRvZ2d5IikKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgdmU6Ci0g
ICAgICAgICAgICBhc3NlcnQgImhhcyBhbiB1bnN1cHBvcnRlZCBzY29wZSB2YWx1ZSAnZG9nZ3kn
IiBpbiBzdHIodmUpCiAKLSAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9hbmRfaWQoc2VsZik6Cisg
ICAgZGVmIHRlc3RfZmluZF9wYXJhbWV0cml6ZWRfc2NvcGUoc2VsZik6CisgICAgICAgICIiInVu
aXR0ZXN0IGZvciBfZmluZF9wYXJhbWV0cml6ZWRfc2NvcGUgKCMzOTQxKSIiIgorICAgICAgICBm
cm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBfZmluZF9wYXJhbWV0cml6ZWRfc2NvcGUKKworICAg
ICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIER1bW15Rml4dHVyZURlZihvYmplY3QpOgorICAg
ICAgICAgICAgc2NvcGUgPSBhdHRyLmliKCkKKworICAgICAgICBmaXh0dXJlc19kZWZzID0gZGlj
dCgKKyAgICAgICAgICAgIHNlc3Npb25fZml4PVtEdW1teUZpeHR1cmVEZWYoInNlc3Npb24iKV0s
CisgICAgICAgICAgICBwYWNrYWdlX2ZpeD1bRHVtbXlGaXh0dXJlRGVmKCJwYWNrYWdlIildLAor
ICAgICAgICAgICAgbW9kdWxlX2ZpeD1bRHVtbXlGaXh0dXJlRGVmKCJtb2R1bGUiKV0sCisgICAg
ICAgICAgICBjbGFzc19maXg9W0R1bW15Rml4dHVyZURlZigiY2xhc3MiKV0sCisgICAgICAgICAg
ICBmdW5jX2ZpeD1bRHVtbXlGaXh0dXJlRGVmKCJmdW5jdGlvbiIpXSwKKyAgICAgICAgKQorCisg
ICAgICAgICMgdXNlIGFyZ3VtZW50cyB0byBkZXRlcm1pbmUgbmFycm93IHNjb3BlOyB0aGUgY2F1
c2Ugb2YgdGhlIGJ1ZyBpcyB0aGF0IGl0IHdvdWxkIGxvb2sgb24gYWxsCisgICAgICAgICMgZml4
dHVyZSBkZWZzIGdpdmVuIHRvIHRoZSBtZXRob2QKKyAgICAgICAgZGVmIGZpbmRfc2NvcGUoYXJn
bmFtZXMsIGluZGlyZWN0KToKKyAgICAgICAgICAgIHJldHVybiBfZmluZF9wYXJhbWV0cml6ZWRf
c2NvcGUoYXJnbmFtZXMsIGZpeHR1cmVzX2RlZnMsIGluZGlyZWN0PWluZGlyZWN0KQorCisgICAg
ICAgIGFzc2VydCBmaW5kX3Njb3BlKFsiZnVuY19maXgiXSwgaW5kaXJlY3Q9VHJ1ZSkgPT0gImZ1
bmN0aW9uIgorICAgICAgICBhc3NlcnQgZmluZF9zY29wZShbImNsYXNzX2ZpeCJdLCBpbmRpcmVj
dD1UcnVlKSA9PSAiY2xhc3MiCisgICAgICAgIGFzc2VydCBmaW5kX3Njb3BlKFsibW9kdWxlX2Zp
eCJdLCBpbmRpcmVjdD1UcnVlKSA9PSAibW9kdWxlIgorICAgICAgICBhc3NlcnQgZmluZF9zY29w
ZShbInBhY2thZ2VfZml4Il0sIGluZGlyZWN0PVRydWUpID09ICJwYWNrYWdlIgorICAgICAgICBh
c3NlcnQgZmluZF9zY29wZShbInNlc3Npb25fZml4Il0sIGluZGlyZWN0PVRydWUpID09ICJzZXNz
aW9uIgorCisgICAgICAgIGFzc2VydCBmaW5kX3Njb3BlKFsiY2xhc3NfZml4IiwgImZ1bmNfZml4
Il0sIGluZGlyZWN0PVRydWUpID09ICJmdW5jdGlvbiIKKyAgICAgICAgYXNzZXJ0IGZpbmRfc2Nv
cGUoWyJmdW5jX2ZpeCIsICJzZXNzaW9uX2ZpeCJdLCBpbmRpcmVjdD1UcnVlKSA9PSAiZnVuY3Rp
b24iCisgICAgICAgIGFzc2VydCBmaW5kX3Njb3BlKFsic2Vzc2lvbl9maXgiLCAiY2xhc3NfZml4
Il0sIGluZGlyZWN0PVRydWUpID09ICJjbGFzcyIKKyAgICAgICAgYXNzZXJ0IGZpbmRfc2NvcGUo
WyJwYWNrYWdlX2ZpeCIsICJzZXNzaW9uX2ZpeCJdLCBpbmRpcmVjdD1UcnVlKSA9PSAicGFja2Fn
ZSIKKyAgICAgICAgYXNzZXJ0IGZpbmRfc2NvcGUoWyJtb2R1bGVfZml4IiwgInNlc3Npb25fZml4
Il0sIGluZGlyZWN0PVRydWUpID09ICJtb2R1bGUiCisKKyAgICAgICAgIyB3aGVuIGluZGlyZWN0
IGlzIEZhbHNlIG9yIGlzIG5vdCBmb3IgYWxsIHNjb3BlcywgYWx3YXlzIHVzZSBmdW5jdGlvbgor
ICAgICAgICBhc3NlcnQgZmluZF9zY29wZShbInNlc3Npb25fZml4IiwgIm1vZHVsZV9maXgiXSwg
aW5kaXJlY3Q9RmFsc2UpID09ICJmdW5jdGlvbiIKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAg
ICAgIGZpbmRfc2NvcGUoWyJzZXNzaW9uX2ZpeCIsICJtb2R1bGVfZml4Il0sIGluZGlyZWN0PVsi
bW9kdWxlX2ZpeCJdKQorICAgICAgICAgICAgPT0gImZ1bmN0aW9uIgorICAgICAgICApCisgICAg
ICAgIGFzc2VydCAoCisgICAgICAgICAgICBmaW5kX3Njb3BlKAorICAgICAgICAgICAgICAgIFsi
c2Vzc2lvbl9maXgiLCAibW9kdWxlX2ZpeCJdLCBpbmRpcmVjdD1bInNlc3Npb25fZml4IiwgIm1v
ZHVsZV9maXgiXQorICAgICAgICAgICAgKQorICAgICAgICAgICAgPT0gIm1vZHVsZSIKKyAgICAg
ICAgKQogCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfYW5kX2lkKHNlbGYpOgogICAgICAgICBk
ZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBhc3MKIApAQCAtMTY2LDMxICsxNDYsMjYgQEAg
Y2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBpZHMgPT0gW3UiYmFz
aWMiLCB1ImFkdmFuY2VkIl0KIAogICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX3dpdGhfd3Jvbmdf
bnVtYmVyX29mX2lkcyhzZWxmLCB0ZXN0ZGlyKToKLQogICAgICAgICBkZWYgZnVuYyh4LCB5KToK
ICAgICAgICAgICAgIHBhc3MKIAogICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVu
YykKIAotICAgICAgICBweXRlc3QucmFpc2VzKAotICAgICAgICAgICAgVmFsdWVFcnJvciwgbGFt
YmRhOiBtZXRhZnVuYy5wYXJhbWV0cml6ZSgieCIsIFsxLCAyXSwgaWRzPVsiYmFzaWMiXSkKLSAg
ICAgICAgKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9u
KToKKyAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ4IiwgWzEsIDJdLCBpZHM9WyJi
YXNpYyJdKQogCi0gICAgICAgIHB5dGVzdC5yYWlzZXMoCi0gICAgICAgICAgICBWYWx1ZUVycm9y
LAotICAgICAgICAgICAgbGFtYmRhOiBtZXRhZnVuYy5wYXJhbWV0cml6ZSgKKyAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlvbik6CisgICAgICAgICAgICBtZXRh
ZnVuYy5wYXJhbWV0cml6ZSgKICAgICAgICAgICAgICAgICAoIngiLCAieSIpLCBbKCJhYmMiLCAi
ZGVmIiksICgiZ2hpIiwgImprbCIpXSwgaWRzPVsib25lIl0KLSAgICAgICAgICAgICksCi0gICAg
ICAgICkKKyAgICAgICAgICAgICkKIAotICAgIEBweXRlc3QubWFyay5pc3N1ZTUxMAogICAgIGRl
ZiB0ZXN0X3BhcmFtZXRyaXplX2VtcHR5X2xpc3Qoc2VsZik6CisgICAgICAgICIiIiM1MTAiIiIK
IAogICAgICAgICBkZWYgZnVuYyh5KToKICAgICAgICAgICAgIHBhc3MKIAogICAgICAgICBjbGFz
cyBNb2NrQ29uZmlnKG9iamVjdCk6Ci0KICAgICAgICAgICAgIGRlZiBnZXRpbmkoc2VsZiwgbmFt
ZSk6CiAgICAgICAgICAgICAgICAgcmV0dXJuICIiCiAKQEAgLTIwNiw3ICsxODEsNiBAQCBjbGFz
cyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgYXNzZXJ0ICJza2lwIiA9PSBtZXRhZnVu
Yy5fY2FsbHNbMF0ubWFya3NbMF0ubmFtZQogCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfd2l0
aF91c2Vyb2JqZWN0cyhzZWxmKToKLQogICAgICAgICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAg
ICAgIHBhc3MKIApAQCAtMjI5LDEyICsyMDMsOSBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0
KToKICAgICBkZWYgdGVzdF9pZHZhbF9oeXBvdGhlc2lzKHNlbGYsIHZhbHVlKToKICAgICAgICAg
ZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgX2lkdmFsCiAKLSAgICAgICAgZXNjYXBlZCA9IF9p
ZHZhbCh2YWx1ZSwgImEiLCA2LCBOb25lKQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShlc2Nh
cGVkLCBzdHIpCi0gICAgICAgIGlmIFBZMzoKLSAgICAgICAgICAgIGVzY2FwZWQuZW5jb2RlKCJh
c2NpaSIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBlc2NhcGVkLmRlY29kZSgiYXNjaWki
KQorICAgICAgICBlc2NhcGVkID0gX2lkdmFsKHZhbHVlLCAiYSIsIDYsIE5vbmUsIGl0ZW09Tm9u
ZSwgY29uZmlnPU5vbmUpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGVzY2FwZWQsIHNpeC50
ZXh0X3R5cGUpCisgICAgICAgIGVzY2FwZWQuZW5jb2RlKCJhc2NpaSIpCiAKICAgICBkZWYgdGVz
dF91bmljb2RlX2lkdmFsKHNlbGYpOgogICAgICAgICAiIiJUaGlzIHRlc3RzIHRoYXQgVW5pY29k
ZSBzdHJpbmdzIG91dHNpZGUgdGhlIEFTQ0lJIGNoYXJhY3RlciBzZXQgZ2V0CkBAIC0yNTYsNyAr
MjI3LDM3IEBAIGNsYXNzIFRlc3RNZXRhZnVuYyhvYmplY3QpOgogICAgICAgICAgICAgKSwKICAg
ICAgICAgXQogICAgICAgICBmb3IgdmFsLCBleHBlY3RlZCBpbiB2YWx1ZXM6Ci0gICAgICAgICAg
ICBhc3NlcnQgX2lkdmFsKHZhbCwgImEiLCA2LCBOb25lKSA9PSBleHBlY3RlZAorICAgICAgICAg
ICAgYXNzZXJ0IF9pZHZhbCh2YWwsICJhIiwgNiwgTm9uZSwgaXRlbT1Ob25lLCBjb25maWc9Tm9u
ZSkgPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0ZXN0X3VuaWNvZGVfaWR2YWxfd2l0aF9jb25maWco
c2VsZik6CisgICAgICAgICIiInVuaXR0ZXN0IGZvciBleHBlY3RlZCBiZWhhdmlvciB0byBvYnRh
aW4gaWRzIHdpdGgKKyAgICAgICAgZGlzYWJsZV90ZXN0X2lkX2VzY2FwaW5nX2FuZF9mb3JmZWl0
X2FsbF9yaWdodHNfdG9fY29tbXVuaXR5X3N1cHBvcnQKKyAgICAgICAgb3B0aW9uLiAoIzUyOTQp
CisgICAgICAgICIiIgorICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBfaWR2YWwK
KworICAgICAgICBjbGFzcyBNb2NrQ29uZmlnKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19p
bml0X18oc2VsZiwgY29uZmlnKToKKyAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZp
ZworCisgICAgICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgICAgIGRlZiBob29rKHNlbGYpOgor
ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICAgICAgICAgIGRlZiBweXRlc3RfbWFr
ZV9wYXJhbWV0cml6ZV9pZChzZWxmLCAqKmt3KToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAg
ICAgICAgICAgIGRlZiBnZXRpbmkoc2VsZiwgbmFtZSk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHNlbGYuY29uZmlnW25hbWVdCisKKyAgICAgICAgb3B0aW9uID0gImRpc2FibGVfdGVzdF9pZF9l
c2NhcGluZ19hbmRfZm9yZmVpdF9hbGxfcmlnaHRzX3RvX2NvbW11bml0eV9zdXBwb3J0IgorCisg
ICAgICAgIHZhbHVlcyA9IFsKKyAgICAgICAgICAgICh1ImHDp8OjbyIsIE1vY2tDb25maWcoe29w
dGlvbjogVHJ1ZX0pLCB1ImHDp8OjbyIpLAorICAgICAgICAgICAgKHUiYcOnw6NvIiwgTW9ja0Nv
bmZpZyh7b3B0aW9uOiBGYWxzZX0pLCAiYVxceGU3XFx4ZTNvIiksCisgICAgICAgIF0KKyAgICAg
ICAgZm9yIHZhbCwgY29uZmlnLCBleHBlY3RlZCBpbiB2YWx1ZXM6CisgICAgICAgICAgICBhc3Nl
cnQgX2lkdmFsKHZhbCwgImEiLCA2LCBOb25lLCBpdGVtPU5vbmUsIGNvbmZpZz1jb25maWcpID09
IGV4cGVjdGVkCiAKICAgICBkZWYgdGVzdF9ieXRlc19pZHZhbChzZWxmKToKICAgICAgICAgIiIi
dW5pdHRlc3QgZm9yIHRoZSBleHBlY3RlZCBiZWhhdmlvciB0byBvYnRhaW4gaWRzIGZvciBwYXJh
bWV0cml6ZWQKQEAgLTI3NCw3ICsyNzUsNyBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToK
ICAgICAgICAgICAgICh1Is6xz4HOrCIuZW5jb2RlKCJ1dGYtOCIpLCAiXFx4Y2VcXHhiMVxceGNm
XFx4ODFcXHhjZVxceGFjIiksCiAgICAgICAgIF0KICAgICAgICAgZm9yIHZhbCwgZXhwZWN0ZWQg
aW4gdmFsdWVzOgotICAgICAgICAgICAgYXNzZXJ0IF9pZHZhbCh2YWwsICJhIiwgNiwgTm9uZSkg
PT0gZXhwZWN0ZWQKKyAgICAgICAgICAgIGFzc2VydCBfaWR2YWwodmFsLCAiYSIsIDYsIGlkZm49
Tm9uZSwgaXRlbT1Ob25lLCBjb25maWc9Tm9uZSkgPT0gZXhwZWN0ZWQKIAogICAgIGRlZiB0ZXN0
X2NsYXNzX29yX2Z1bmN0aW9uX2lkdmFsKHNlbGYpOgogICAgICAgICAiIiJ1bml0dGVzdCBmb3Ig
dGhlIGV4cGVjdGVkIGJlaGF2aW9yIHRvIG9idGFpbiBpZHMgZm9yIHBhcmFtZXRyaXplZApAQCAt
MjkwLDEwICsyOTEsMTAgQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAKICAgICAgICAg
dmFsdWVzID0gWyhUZXN0Q2xhc3MsICJUZXN0Q2xhc3MiKSwgKHRlc3RfZnVuY3Rpb24sICJ0ZXN0
X2Z1bmN0aW9uIildCiAgICAgICAgIGZvciB2YWwsIGV4cGVjdGVkIGluIHZhbHVlczoKLSAgICAg
ICAgICAgIGFzc2VydCBfaWR2YWwodmFsLCAiYSIsIDYsIE5vbmUpID09IGV4cGVjdGVkCisgICAg
ICAgICAgICBhc3NlcnQgX2lkdmFsKHZhbCwgImEiLCA2LCBOb25lLCBpdGVtPU5vbmUsIGNvbmZp
Zz1Ob25lKSA9PSBleHBlY3RlZAogCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlMjUwCiAgICAgZGVm
IHRlc3RfaWRtYWtlcl9hdXRvbmFtZShzZWxmKToKKyAgICAgICAgIiIiIzI1MCIiIgogICAgICAg
ICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2VyCiAKICAgICAgICAgcmVzdWx0ID0g
aWRtYWtlcigKQEAgLTMwNiw5ICszMDcsNyBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToK
ICAgICAgICAgKQogICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsiYTAtMS4wIiwgImExLWIxIl0K
ICAgICAgICAgIyB1bmljb2RlIG1peGluZywgaXNzdWUyNTAKLSAgICAgICAgcmVzdWx0ID0gaWRt
YWtlcigKLSAgICAgICAgICAgIChweS5idWlsdGluLl90b3RleHQoImEiKSwgImIiKSwgW3B5dGVz
dC5wYXJhbSh7fSwgYiJceGMzXHhiNCIpXQotICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IGlk
bWFrZXIoKHUiYSIsICJiIiksIFtweXRlc3QucGFyYW0oe30sIGIiXHhjM1x4YjQiKV0pCiAgICAg
ICAgIGFzc2VydCByZXN1bHQgPT0gWyJhMC1cXHhjM1xceGI0Il0KIAogICAgIGRlZiB0ZXN0X2lk
bWFrZXJfd2l0aF9ieXRlc19yZWdleChzZWxmKToKQEAgLTMyMCw3ICszMTksNiBAQCBjbGFzcyBU
ZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICBkZWYgdGVzdF9pZG1ha2VyX25hdGl2ZV9zdHJpbmdz
KHNlbGYpOgogICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2VyCiAKLSAg
ICAgICAgdG90ZXh0ID0gcHkuYnVpbHRpbi5fdG90ZXh0CiAgICAgICAgIHJlc3VsdCA9IGlkbWFr
ZXIoCiAgICAgICAgICAgICAoImEiLCAiYiIpLAogICAgICAgICAgICAgWwpAQCAtMzM1LDI2ICsz
MzMsNTEgQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcHl0
ZXN0LnBhcmFtKHs3fSwgc2V0KCJzZXZlbiIpKSwKICAgICAgICAgICAgICAgICBweXRlc3QucGFy
YW0odHVwbGUoImVpZ2h0IiksICg4LCAtOCwgOCkpLAogICAgICAgICAgICAgICAgIHB5dGVzdC5w
YXJhbShiIlx4YzNceGI0IiwgYiJuYW1lIiksCi0gICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFt
KGIiXHhjM1x4YjQiLCB0b3RleHQoIm90aGVyIikpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5w
YXJhbShiIlx4YzNceGI0IiwgdSJvdGhlciIpLAogICAgICAgICAgICAgXSwKICAgICAgICAgKQot
ICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgcmVzdWx0Ci0gICAgICAgICAgICA9PSBbCi0g
ICAgICAgICAgICAgICAgIjEuMC0tMS4xIiwKLSAgICAgICAgICAgICAgICAiMi0tMjAyIiwKLSAg
ICAgICAgICAgICAgICAidGhyZWUtdGhyZWUgaHVuZHJlZCIsCi0gICAgICAgICAgICAgICAgIlRy
dWUtRmFsc2UiLAotICAgICAgICAgICAgICAgICJOb25lLU5vbmUiLAotICAgICAgICAgICAgICAg
ICJmb28tYmFyIiwKLSAgICAgICAgICAgICAgICAic3RyLWludCIsCi0gICAgICAgICAgICAgICAg
ImE3LWI3IiwKLSAgICAgICAgICAgICAgICAiYTgtYjgiLAotICAgICAgICAgICAgICAgICJhOS1i
OSIsCi0gICAgICAgICAgICAgICAgIlxceGMzXFx4YjQtbmFtZSIsCi0gICAgICAgICAgICAgICAg
IlxceGMzXFx4YjQtb3RoZXIiLAotICAgICAgICAgICAgXQorICAgICAgICBhc3NlcnQgcmVzdWx0
ID09IFsKKyAgICAgICAgICAgICIxLjAtLTEuMSIsCisgICAgICAgICAgICAiMi0tMjAyIiwKKyAg
ICAgICAgICAgICJ0aHJlZS10aHJlZSBodW5kcmVkIiwKKyAgICAgICAgICAgICJUcnVlLUZhbHNl
IiwKKyAgICAgICAgICAgICJOb25lLU5vbmUiLAorICAgICAgICAgICAgImZvby1iYXIiLAorICAg
ICAgICAgICAgInN0ci1pbnQiLAorICAgICAgICAgICAgImE3LWI3IiwKKyAgICAgICAgICAgICJh
OC1iOCIsCisgICAgICAgICAgICAiYTktYjkiLAorICAgICAgICAgICAgIlxceGMzXFx4YjQtbmFt
ZSIsCisgICAgICAgICAgICAiXFx4YzNcXHhiNC1vdGhlciIsCisgICAgICAgIF0KKworICAgIGRl
ZiB0ZXN0X2lkbWFrZXJfbm9uX3ByaW50YWJsZV9jaGFyYWN0ZXJzKHNlbGYpOgorICAgICAgICBm
cm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2VyCisKKyAgICAgICAgcmVzdWx0ID0gaWRt
YWtlcigKKyAgICAgICAgICAgICgicyIsICJuIiksCisgICAgICAgICAgICBbCisgICAgICAgICAg
ICAgICAgcHl0ZXN0LnBhcmFtKCJceDAwIiwgMSksCisgICAgICAgICAgICAgICAgcHl0ZXN0LnBh
cmFtKCJceDA1IiwgMiksCisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKGIiXHgwMCIsIDMp
LAorICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbShiIlx4MDUiLCA0KSwKKyAgICAgICAgICAg
ICAgICBweXRlc3QucGFyYW0oIlx0IiwgNSksCisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFt
KGIiXHQiLCA2KSwKKyAgICAgICAgICAgIF0sCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IHJl
c3VsdCA9PSBbIlxceDAwLTEiLCAiXFx4MDUtMiIsICJcXHgwMC0zIiwgIlxceDA1LTQiLCAiXFx0
LTUiLCAiXFx0LTYiXQorCisgICAgZGVmIHRlc3RfaWRtYWtlcl9tYW51YWxfaWRzX211c3RfYmVf
cHJpbnRhYmxlKHNlbGYpOgorICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1h
a2VyCisKKyAgICAgICAgcmVzdWx0ID0gaWRtYWtlcigKKyAgICAgICAgICAgICgicyIsKSwKKyAg
ICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICBweXRlc3QucGFyYW0oIngwMCIsIGlkPSJoZWxs
byBceDAwIiksCisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKCJ4MDUiLCBpZD0iaGVsbG8g
XHgwNSIpLAorICAgICAgICAgICAgXSwKICAgICAgICAgKQorICAgICAgICBhc3NlcnQgcmVzdWx0
ID09IFsiaGVsbG8gXFx4MDAiLCAiaGVsbG8gXFx4MDUiXQogCiAgICAgZGVmIHRlc3RfaWRtYWtl
cl9lbnVtKHNlbGYpOgogICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2Vy
CkBAIC0zNjQsOCArMzg3LDggQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAg
IHJlc3VsdCA9IGlkbWFrZXIoKCJhIiwgImIiKSwgW3B5dGVzdC5wYXJhbShlLm9uZSwgZS50d28p
XSkKICAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbIkZvby5vbmUtRm9vLnR3byJdCiAKLSAgICBA
cHl0ZXN0Lm1hcmsuaXNzdWUzNTEKICAgICBkZWYgdGVzdF9pZG1ha2VyX2lkZm4oc2VsZik6Cisg
ICAgICAgICIiIiMzNTEiIiIKICAgICAgICAgZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgaWRt
YWtlcgogCiAgICAgICAgIGRlZiBpZHModmFsKToKQEAgLTM4Myw4ICs0MDYsOCBAQCBjbGFzcyBU
ZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgKQogICAgICAgICBhc3NlcnQgcmVzdWx0ID09
IFsiMTAuMC1JbmRleEVycm9yKCkiLCAiMjAtS2V5RXJyb3IoKSIsICJ0aHJlZS1iMiJdCiAKLSAg
ICBAcHl0ZXN0Lm1hcmsuaXNzdWUzNTEKICAgICBkZWYgdGVzdF9pZG1ha2VyX2lkZm5fdW5pcXVl
X25hbWVzKHNlbGYpOgorICAgICAgICAiIiIjMzUxIiIiCiAgICAgICAgIGZyb20gX3B5dGVzdC5w
eXRob24gaW1wb3J0IGlkbWFrZXIKIAogICAgICAgICBkZWYgaWRzKHZhbCk6CkBAIC00MDEsNDYg
KzQyNCw3MSBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgKQogICAgICAg
ICBhc3NlcnQgcmVzdWx0ID09IFsiYS1hMCIsICJhLWExIiwgImEtYTIiXQogCi0gICAgQHB5dGVz
dC5tYXJrLmlzc3VlMzUxCi0gICAgZGVmIHRlc3RfaWRtYWtlcl9pZGZuX2V4Y2VwdGlvbihzZWxm
KToKKyAgICBkZWYgdGVzdF9pZG1ha2VyX3dpdGhfaWRmbl9hbmRfY29uZmlnKHNlbGYpOgorICAg
ICAgICAiIiJ1bml0dGVzdCBmb3IgZXhwZWN0ZWQgYmVoYXZpb3IgdG8gY3JlYXRlIGlkcyB3aXRo
IGlkZm4gYW5kCisgICAgICAgIGRpc2FibGVfdGVzdF9pZF9lc2NhcGluZ19hbmRfZm9yZmVpdF9h
bGxfcmlnaHRzX3RvX2NvbW11bml0eV9zdXBwb3J0CisgICAgICAgIG9wdGlvbi4gKCM1Mjk0KQor
ICAgICAgICAiIiIKICAgICAgICAgZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgaWRtYWtlcgot
ICAgICAgICBmcm9tIF9weXRlc3QucmVjd2FybiBpbXBvcnQgV2FybmluZ3NSZWNvcmRlcgogCi0g
ICAgICAgIGNsYXNzIEJhZElkc0V4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICAgICAgICAgcGFz
cworICAgICAgICBjbGFzcyBNb2NrQ29uZmlnKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19p
bml0X18oc2VsZiwgY29uZmlnKToKKyAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZp
ZwogCi0gICAgICAgIGRlZiBpZHModmFsKToKLSAgICAgICAgICAgIHJhaXNlIEJhZElkc0V4Y2Vw
dGlvbigiaWRzIHJhaXNlZCIpCi0KLSAgICAgICAgcmVjID0gV2FybmluZ3NSZWNvcmRlcigpCi0g
ICAgICAgIHdpdGggcmVjOgotICAgICAgICAgICAgaWRtYWtlcigKLSAgICAgICAgICAgICAgICAo
ImEiLCAiYiIpLAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgcHl0ZXN0
LnBhcmFtKDEwLjAsIEluZGV4RXJyb3IoKSksCi0gICAgICAgICAgICAgICAgICAgIHB5dGVzdC5w
YXJhbSgyMCwgS2V5RXJyb3IoKSksCi0gICAgICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgi
dGhyZWUiLCBbMSwgMiwgM10pLAotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAg
aWRmbj1pZHMsCisgICAgICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgICAgIGRlZiBob29rKHNl
bGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICAgICAgICAgIGRlZiBweXRl
c3RfbWFrZV9wYXJhbWV0cml6ZV9pZChzZWxmLCAqKmt3KToKKyAgICAgICAgICAgICAgICBwYXNz
CisKKyAgICAgICAgICAgIGRlZiBnZXRpbmkoc2VsZiwgbmFtZSk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIHNlbGYuY29uZmlnW25hbWVdCisKKyAgICAgICAgb3B0aW9uID0gImRpc2FibGVfdGVz
dF9pZF9lc2NhcGluZ19hbmRfZm9yZmVpdF9hbGxfcmlnaHRzX3RvX2NvbW11bml0eV9zdXBwb3J0
IgorCisgICAgICAgIHZhbHVlcyA9IFsKKyAgICAgICAgICAgIChNb2NrQ29uZmlnKHtvcHRpb246
IFRydWV9KSwgdSJhw6fDo28iKSwKKyAgICAgICAgICAgIChNb2NrQ29uZmlnKHtvcHRpb246IEZh
bHNlfSksICJhXFx4ZTdcXHhlM28iKSwKKyAgICAgICAgXQorICAgICAgICBmb3IgY29uZmlnLCBl
eHBlY3RlZCBpbiB2YWx1ZXM6CisgICAgICAgICAgICByZXN1bHQgPSBpZG1ha2VyKAorICAgICAg
ICAgICAgICAgICgiYSIsKSwgW3B5dGVzdC5wYXJhbSgic3RyaW5nIildLCBpZGZuPWxhbWJkYSBf
OiB1ImHDp8OjbyIsIGNvbmZpZz1jb25maWcKICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGFz
c2VydCByZXN1bHQgPT0gW2V4cGVjdGVkXQogCi0gICAgICAgIGFzc2VydCAoCi0gICAgICAgICAg
ICBbc3RyKGkubWVzc2FnZSkgZm9yIGkgaW4gcmVjLmxpc3RdCi0gICAgICAgICAgICA9PSBbCi0g
ICAgICAgICAgICAgICAgIlJhaXNlZCB3aGlsZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBh
cmFtZXRlciBhIGF0IHBvc2l0aW9uIDAuIgotICAgICAgICAgICAgICAgICJcblVwZGF0ZSB5b3Vy
IGNvZGUgYXMgdGhpcyB3aWxsIHJhaXNlIGFuIGVycm9yIGluIHB5dGVzdC00LjAuIiwKLSAgICAg
ICAgICAgICAgICAiUmFpc2VkIHdoaWxlIHRyeWluZyB0byBkZXRlcm1pbmUgaWQgb2YgcGFyYW1l
dGVyIGIgYXQgcG9zaXRpb24gMC4iCi0gICAgICAgICAgICAgICAgIlxuVXBkYXRlIHlvdXIgY29k
ZSBhcyB0aGlzIHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4gcHl0ZXN0LTQuMC4iLAotICAgICAgICAg
ICAgICAgICJSYWlzZWQgd2hpbGUgdHJ5aW5nIHRvIGRldGVybWluZSBpZCBvZiBwYXJhbWV0ZXIg
YSBhdCBwb3NpdGlvbiAxLiIKLSAgICAgICAgICAgICAgICAiXG5VcGRhdGUgeW91ciBjb2RlIGFz
IHRoaXMgd2lsbCByYWlzZSBhbiBlcnJvciBpbiBweXRlc3QtNC4wLiIsCi0gICAgICAgICAgICAg
ICAgIlJhaXNlZCB3aGlsZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBhcmFtZXRlciBiIGF0
IHBvc2l0aW9uIDEuIgotICAgICAgICAgICAgICAgICJcblVwZGF0ZSB5b3VyIGNvZGUgYXMgdGhp
cyB3aWxsIHJhaXNlIGFuIGVycm9yIGluIHB5dGVzdC00LjAuIiwKLSAgICAgICAgICAgICAgICAi
UmFpc2VkIHdoaWxlIHRyeWluZyB0byBkZXRlcm1pbmUgaWQgb2YgcGFyYW1ldGVyIGEgYXQgcG9z
aXRpb24gMi4iCi0gICAgICAgICAgICAgICAgIlxuVXBkYXRlIHlvdXIgY29kZSBhcyB0aGlzIHdp
bGwgcmFpc2UgYW4gZXJyb3IgaW4gcHl0ZXN0LTQuMC4iLAotICAgICAgICAgICAgICAgICJSYWlz
ZWQgd2hpbGUgdHJ5aW5nIHRvIGRldGVybWluZSBpZCBvZiBwYXJhbWV0ZXIgYiBhdCBwb3NpdGlv
biAyLiIKLSAgICAgICAgICAgICAgICAiXG5VcGRhdGUgeW91ciBjb2RlIGFzIHRoaXMgd2lsbCBy
YWlzZSBhbiBlcnJvciBpbiBweXRlc3QtNC4wLiIsCi0gICAgICAgICAgICBdCi0gICAgICAgICkK
KyAgICBkZWYgdGVzdF9pZG1ha2VyX3dpdGhfaWRzX2FuZF9jb25maWcoc2VsZik6CisgICAgICAg
ICIiInVuaXR0ZXN0IGZvciBleHBlY3RlZCBiZWhhdmlvciB0byBjcmVhdGUgaWRzIHdpdGggaWRz
IGFuZAorICAgICAgICBkaXNhYmxlX3Rlc3RfaWRfZXNjYXBpbmdfYW5kX2ZvcmZlaXRfYWxsX3Jp
Z2h0c190b19jb21tdW5pdHlfc3VwcG9ydAorICAgICAgICBvcHRpb24uICgjNTI5NCkKKyAgICAg
ICAgIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IGlkbWFrZXIKKworICAg
ICAgICBjbGFzcyBNb2NrQ29uZmlnKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18o
c2VsZiwgY29uZmlnKToKKyAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZworCisg
ICAgICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgICAgIGRlZiBob29rKHNlbGYpOgorICAgICAg
ICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICAgICAgICAgIGRlZiBweXRlc3RfbWFrZV9wYXJh
bWV0cml6ZV9pZChzZWxmLCAqKmt3KToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAg
ICAgIGRlZiBnZXRpbmkoc2VsZiwgbmFtZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYu
Y29uZmlnW25hbWVdCisKKyAgICAgICAgb3B0aW9uID0gImRpc2FibGVfdGVzdF9pZF9lc2NhcGlu
Z19hbmRfZm9yZmVpdF9hbGxfcmlnaHRzX3RvX2NvbW11bml0eV9zdXBwb3J0IgorCisgICAgICAg
IHZhbHVlcyA9IFsKKyAgICAgICAgICAgIChNb2NrQ29uZmlnKHtvcHRpb246IFRydWV9KSwgdSJh
w6fDo28iKSwKKyAgICAgICAgICAgIChNb2NrQ29uZmlnKHtvcHRpb246IEZhbHNlfSksICJhXFx4
ZTdcXHhlM28iKSwKKyAgICAgICAgXQorICAgICAgICBmb3IgY29uZmlnLCBleHBlY3RlZCBpbiB2
YWx1ZXM6CisgICAgICAgICAgICByZXN1bHQgPSBpZG1ha2VyKAorICAgICAgICAgICAgICAgICgi
YSIsKSwgW3B5dGVzdC5wYXJhbSgic3RyaW5nIildLCBpZHM9W3UiYcOnw6NvIl0sIGNvbmZpZz1j
b25maWcKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGFzc2VydCByZXN1bHQgPT0gW2V4cGVj
dGVkXQogCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfaWRzX2V4Y2VwdGlvbihzZWxmLCB0ZXN0
ZGlyKToKICAgICAgICAgIiIiCkBAIC00NTksMTYgKzUwNywyOSBAQCBjbGFzcyBUZXN0TWV0YWZ1
bmMob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgIiIiCiAg
ICAgICAgICkKLSAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoRGVwcmVjYXRpb25XYXJuaW5nKToK
LSAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICI8TW9k
dWxlICd0ZXN0X3BhcmFtZXRyaXplX2lkc19leGNlcHRpb24ucHknPiIsCi0gICAgICAgICAgICAg
ICAgIiAgPEZ1bmN0aW9uICd0ZXN0X2Zvb1thXSc+IiwKLSAgICAgICAgICAgICAgICAiICA8RnVu
Y3Rpb24gJ3Rlc3RfZm9vW2JdJz4iLAorICAgICAgICAgICAgICAgICIqdGVzdF9mb286IGVycm9y
IHJhaXNlZCB3aGlsZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBhcmFtZXRlciAnYXJnJyBh
dCBwb3NpdGlvbiAwIiwKKyAgICAgICAgICAgICAgICAiKkV4Y2VwdGlvbjogYmFkIGlkcyIsCiAg
ICAgICAgICAgICBdCiAgICAgICAgICkKIAorICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2lkc19y
ZXR1cm5zX25vbl9zdHJpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgZGVmIGlkcyhkKToKKyAgICAgICAgICAgICAgICByZXR1cm4gZAorCisgICAgICAg
ICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImFyZyIsICh7MTogMn0sIHszLCA0fSksIGlk
cz1pZHMpCisgICAgICAgICAgICBkZWYgdGVzdChhcmcpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBhcmcKKyAgICAgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIGFzc2VydCB0ZXN0ZGly
LnJ1bnB5dGVzdCgpLnJldCA9PSAwCisKICAgICBkZWYgdGVzdF9pZG1ha2VyX3dpdGhfaWRzKHNl
bGYpOgogICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2VyCiAKQEAgLTQ5
NSwyMiArNTU2LDggQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgICkKICAg
ICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbImEwIiwgImExIiwgImIwIiwgImMiLCAiYjEiXQogCi0g
ICAgZGVmIHRlc3RfYWRkY2FsbF9hbmRfcGFyYW1ldHJpemUoc2VsZik6Ci0KLSAgICAgICAgZGVm
IGZ1bmMoeCwgeSk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgbWV0YWZ1bmMgPSBzZWxm
Lk1ldGFmdW5jKGZ1bmMpCi0gICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoeyJ4IjogMX0pCi0gICAg
ICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ5IiwgWzIsIDNdKQotICAgICAgICBhc3NlcnQgbGVu
KG1ldGFmdW5jLl9jYWxscykgPT0gMgotICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBd
LmZ1bmNhcmdzID09IHsieCI6IDEsICJ5IjogMn0KLSAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9j
YWxsc1sxXS5mdW5jYXJncyA9PSB7IngiOiAxLCAieSI6IDN9Ci0gICAgICAgIGFzc2VydCBtZXRh
ZnVuYy5fY2FsbHNbMF0uaWQgPT0gIjAtMiIKLSAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxs
c1sxXS5pZCA9PSAiMC0zIgotCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlNzE0CiAgICAgZGVmIHRl
c3RfcGFyYW1ldHJpemVfaW5kaXJlY3Qoc2VsZik6CisgICAgICAgICIiIiM3MTQiIiIKIAogICAg
ICAgICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBhc3MKQEAgLTUyNCw4ICs1NzEsOCBA
QCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9j
YWxsc1swXS5wYXJhbXMgPT0gZGljdCh4PTEsIHk9MikKICAgICAgICAgYXNzZXJ0IG1ldGFmdW5j
Ll9jYWxsc1sxXS5wYXJhbXMgPT0gZGljdCh4PTEsIHk9MykKIAotICAgIEBweXRlc3QubWFyay5p
c3N1ZTcxNAogICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2luZGlyZWN0X2xpc3Qoc2VsZik6Cisg
ICAgICAgICIiIiM3MTQiIiIKIAogICAgICAgICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAg
IHBhc3MKQEAgLTUzNSw4ICs1ODIsOCBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAg
ICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSBkaWN0KHk9ImIiKQog
ICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLnBhcmFtcyA9PSBkaWN0KHg9ImEiKQog
Ci0gICAgQHB5dGVzdC5tYXJrLmlzc3VlNzE0CiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfaW5k
aXJlY3RfbGlzdF9hbGwoc2VsZik6CisgICAgICAgICIiIiM3MTQiIiIKIAogICAgICAgICBkZWYg
ZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBhc3MKQEAgLTU0Niw4ICs1OTMsOCBAQCBjbGFzcyBU
ZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5m
dW5jYXJncyA9PSB7fQogICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLnBhcmFtcyA9
PSBkaWN0KHg9ImEiLCB5PSJiIikKIAotICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAogICAgIGRl
ZiB0ZXN0X3BhcmFtZXRyaXplX2luZGlyZWN0X2xpc3RfZW1wdHkoc2VsZik6CisgICAgICAgICIi
IiM3MTQiIiIKIAogICAgICAgICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBhc3MKQEAg
LTU1Nyw5ICs2MDQsOSBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgYXNz
ZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSBkaWN0KHg9ImEiLCB5PSJiIikKICAg
ICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5wYXJhbXMgPT0ge30KIAotICAgIEBweXRl
c3QubWFyay5pc3N1ZTcxNAogICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2luZGlyZWN0X2xpc3Rf
ZnVuY3Rpb25hbChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgIiIiCisgICAgICAgICM3MTQKICAg
ICAgICAgVGVzdCBwYXJhbWV0cml6YXRpb24gd2l0aCAnaW5kaXJlY3QnIHBhcmFtZXRlciBhcHBs
aWVkIG9uCiAgICAgICAgIHBhcnRpY3VsYXIgYXJndW1lbnRzLiBBcyB5IGlzIGlzIGRpcmVjdCwg
aXRzIHZhbHVlIHNob3VsZAogICAgICAgICBiZSB1c2VkIGRpcmVjdGx5IHJhdGhlciB0aGFuIGJl
aW5nIHBhc3NlZCB0byB0aGUgZml4dHVyZQpAQCAtNTg2LDIyICs2MzMsMjMgQEAgY2xhc3MgVGVz
dE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
diIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip0ZXN0X3NpbXBsZSph
LWIqIiwgIioxIHBhc3NlZCoiXSkKIAotICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAogICAgIGRl
ZiB0ZXN0X3BhcmFtZXRyaXplX2luZGlyZWN0X2xpc3RfZXJyb3Ioc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgICIiIiM3MTQiIiIKIAogICAgICAgICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAg
IHBhc3MKIAogICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVuYykKLSAgICAgICAg
d2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKToKICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRy
aXplKCJ4LCB5IiwgWygiYSIsICJiIildLCBpbmRpcmVjdD1bIngiLCAieiJdKQogCi0gICAgQHB5
dGVzdC5tYXJrLmlzc3VlNzE0CiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfdXNlc19ub19maXh0
dXJlX2Vycm9yX2luZGlyZWN0X2ZhbHNlKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICAiIiJUaGUg
J3VzZXMgbm8gZml4dHVyZScgZXJyb3IgdGVsbHMgdGhlIHVzZXIgYXQgY29sbGVjdGlvbiB0aW1l
CiAgICAgICAgIHRoYXQgdGhlIHBhcmFtZXRyaXplIGRhdGEgdGhleSd2ZSBzZXQgdXAgZG9lc24n
dCBjb3JyZXNwb25kIHRvIHRoZQogICAgICAgICBmaXh0dXJlcyBpbiB0aGVpciB0ZXN0IGZ1bmN0
aW9uLCByYXRoZXIgdGhhbiBzaWxlbnRseSBpZ25vcmluZyB0aGlzCiAgICAgICAgIGFuZCBsZXR0
aW5nIHRoZSB0ZXN0IHBvdGVudGlhbGx5IHBhc3MuCisKKyAgICAgICAgIzcxNAogICAgICAgICAi
IiIKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC02MTUs
OCArNjYzLDggQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIpCiAgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIip1c2VzIG5vIGFyZ3VtZW50ICd5JyoiXSkKIAotICAgIEBweXRl
c3QubWFyay5pc3N1ZTcxNAogICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX3VzZXNfbm9fZml4dHVy
ZV9lcnJvcl9pbmRpcmVjdF90cnVlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIjNzE0IiIi
CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgogICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdApAQCAtNjM1LDggKzY4Myw4IEBAIGNsYXNzIFRlc3RNZXRhZnVuYyhv
YmplY3QpOgogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9u
bHkiKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqdXNlcyBubyBmaXh0
dXJlICd5JyoiXSkKIAotICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAogICAgIGRlZiB0ZXN0X3Bh
cmFtZXRyaXplX2luZGlyZWN0X3VzZXNfbm9fZml4dHVyZV9lcnJvcl9pbmRpcmVjdF9zdHJpbmco
c2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIiM3MTQiIiIKICAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CkBAIC02
NTIsOCArNzAwLDggQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIpCiAgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIip1c2VzIG5vIGZpeHR1cmUgJ3knKiJdKQogCi0gICAgQHB5
dGVzdC5tYXJrLmlzc3VlNzE0CiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfaW5kaXJlY3RfdXNl
c19ub19maXh0dXJlX2Vycm9yX2luZGlyZWN0X2xpc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
ICIiIiM3MTQiIiIKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIi
CiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CkBAIC02NjksOCArNzE3LDggQEAgY2xhc3MgVGVz
dE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LWNvbGxlY3Qtb25seSIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip1
c2VzIG5vIGZpeHR1cmUgJ3knKiJdKQogCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlNzE0CiAgICAg
ZGVmIHRlc3RfcGFyYW1ldHJpemVfYXJndW1lbnRfbm90X2luX2luZGlyZWN0X2xpc3Qoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgICIiIiM3MTQiIiIKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CkBAIC03MDMsMjEg
Kzc1MSw2IEBAIGNsYXNzIFRlc3RNZXRhZnVuYyhvYmplY3QpOgogICAgICAgICAgICAgWyIqYWxy
ZWFkeSB0YWtlcyBhbiBhcmd1bWVudCAneScgd2l0aCBhIGRlZmF1bHQgdmFsdWUiXQogICAgICAg
ICApCiAKLSAgICBkZWYgdGVzdF9hZGRjYWxsc19hbmRfcGFyYW1ldHJpemVfaW5kaXJlY3Qoc2Vs
Zik6Ci0KLSAgICAgICAgZGVmIGZ1bmMoeCwgeSk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAg
ICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCi0gICAgICAgIG1ldGFmdW5jLmFkZGNh
bGwocGFyYW09IjEyMyIpCi0gICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ4IiwgWzFdLCBp
bmRpcmVjdD1UcnVlKQotICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgieSIsIFsyLCAzXSwg
aW5kaXJlY3Q9VHJ1ZSkKLSAgICAgICAgYXNzZXJ0IGxlbihtZXRhZnVuYy5fY2FsbHMpID09IDIK
LSAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSB7fQotICAgICAg
ICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmZ1bmNhcmdzID09IHt9Ci0gICAgICAgIGFzc2Vy
dCBtZXRhZnVuYy5fY2FsbHNbMF0ucGFyYW1zID09IGRpY3QoeD0xLCB5PTIpCi0gICAgICAgIGFz
c2VydCBtZXRhZnVuYy5fY2FsbHNbMV0ucGFyYW1zID09IGRpY3QoeD0xLCB5PTMpCi0KICAgICBk
ZWYgdGVzdF9wYXJhbWV0cml6ZV9mdW5jdGlvbmFsKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTgzNyw3ICs4NzAsNiBAQCBj
bGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfZm9y
bWF0X2FyZ3Moc2VsZik6Ci0KICAgICAgICAgZGVmIGZ1bmN0aW9uMSgpOgogICAgICAgICAgICAg
cGFzcwogCkBAIC04NjAsMTggKzg5MiwxNiBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToK
IAogCiBjbGFzcyBUZXN0TWV0YWZ1bmNGdW5jdGlvbmFsKG9iamVjdCk6Ci0KICAgICBkZWYgdGVz
dF9hdHRyaWJ1dGVzKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICAjIGFzc3VtZXMgdGhhdCBnZW5lcmF0
ZS9wcm92aWRlIHJ1bnMgaW4gdGhlIHNhbWUgcHJvY2VzcwotICAgICAgICAgICAgaW1wb3J0IHN5
cywgcHl0ZXN0CisgICAgICAgICAgICBpbXBvcnQgc3lzLCBweXRlc3QsIHNpeAogICAgICAgICAg
ICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAgICAgICAgICAgICAg
bWV0YWZ1bmMuYWRkY2FsbChwYXJhbT1tZXRhZnVuYykKKyAgICAgICAgICAgICAgICBtZXRhZnVu
Yy5wYXJhbWV0cml6ZSgnbWV0YWZ1bmMnLCBbbWV0YWZ1bmNdKQogCiAgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKICAgICAgICAgICAgIGRlZiBtZXRhZnVuYyhyZXF1ZXN0KToKLSAgICAgICAg
ICAgICAgICBhc3NlcnQgcmVxdWVzdC5fcHlmdW5jaXRlbS5fZ2VuaWQgPT0gIjAiCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KIAogICAgICAgICAgICAgZGVmIHRlc3RfZnVu
Y3Rpb24obWV0YWZ1bmMsIHB5dGVzdGNvbmZpZyk6CkBAIC04ODQsNjUgKzkxNCwzNCBAQCBjbGFz
cyBUZXN0TWV0YWZ1bmNGdW5jdGlvbmFsKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgZGVmIHRl
c3RfbWV0aG9kKHNlbGYsIG1ldGFmdW5jLCBweXRlc3Rjb25maWcpOgogICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgbWV0YWZ1bmMuY29uZmlnID09IHB5dGVzdGNvbmZpZwogICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgbWV0YWZ1bmMubW9kdWxlLl9fbmFtZV9fID09IF9fbmFtZV9fCi0gICAg
ICAgICAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB1bmJvdW5kID0gVGVzdENsYXNzLnRlc3RfbWV0aG9kCi0gICAgICAgICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bmJvdW5kID0gVGVzdENs
YXNzLnRlc3RfbWV0aG9kLmltX2Z1bmMKLSAgICAgICAgICAgICAgICAgICAgIyBYWFggYWN0dWFs
bHkgaGF2ZSBhbiB1bmJvdW5kIHRlc3QgZnVuY3Rpb24gaGVyZT8KKyAgICAgICAgICAgICAgICAg
ICAgdW5ib3VuZCA9IHNpeC5nZXRfdW5ib3VuZF9mdW5jdGlvbihUZXN0Q2xhc3MudGVzdF9tZXRo
b2QpCiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBtZXRhZnVuYy5mdW5jdGlvbiA9PSB1bmJv
dW5kCiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBtZXRhZnVuYy5jbHMgPT0gVGVzdENsYXNz
CiAgICAgICAgICIiIgogICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KHAsICItdiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICItdiIs
IFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21l
cyhwYXNzZWQ9MikKIAotICAgIGRlZiB0ZXN0X2FkZGNhbGxfd2l0aF90d29fZnVuY2FyZ3NfZ2Vu
ZXJhdG9ycyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0
YWZ1bmMpOgotICAgICAgICAgICAgICAgIGFzc2VydCAiYXJnMSIgaW4gbWV0YWZ1bmMuZml4dHVy
ZW5hbWVzCi0gICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChmdW5jYXJncz1kaWN0KGFy
ZzE9MSwgYXJnMj0yKSkKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcCA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHB5dGVzdF9n
ZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2Fs
bChmdW5jYXJncz1kaWN0KGFyZzE9MSwgYXJnMj0xKSkKLQotICAgICAgICAgICAgY2xhc3MgVGVz
dENsYXNzKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgZGVmIHRlc3RfbXlmdW5jKHNlbGYsIGFy
ZzEsIGFyZzIpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9PSBhcmcyCi0gICAg
ICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
diIsIHApCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAgICAgICAg
IFsiKnRlc3RfbXlmdW5jKjAqUEFTUyoiLCAiKnRlc3RfbXlmdW5jKjEqRkFJTCoiLCAiKjEgZmFp
bGVkLCAxIHBhc3NlZCoiXQotICAgICAgICApCi0KICAgICBkZWYgdGVzdF90d29fZnVuY3Rpb25z
KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAg
ICAgICAgIiIiCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5j
KToKLSAgICAgICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHBhcmFtPTEwKQotICAgICAgICAg
ICAgICAgIG1ldGFmdW5jLmFkZGNhbGwocGFyYW09MjApCi0KLSAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGFyZzEo
cmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKyAgICAgICAg
ICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgnYXJnMScsIFsxMCwgMjBdLCBpZHM9WycwJywg
JzEnXSkKIAogICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzEoYXJnMSk6CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0IGFyZzEgPT0gMTAKKwogICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoYXJnMSk6
CiAgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEgaW4gKDEwLCAyMCkKICAgICAgICAgIiIiCiAg
ICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IiwgcCkKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IiwgcCwgU0hPV19QWVRFU1RfV0FS
TklOR1NfQVJHKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAg
ICAgICBbCiAgICAgICAgICAgICAgICAgIip0ZXN0X2Z1bmMxKjAqUEFTUyoiLAogICAgICAgICAg
ICAgICAgICIqdGVzdF9mdW5jMSoxKkZBSUwqIiwKICAgICAgICAgICAgICAgICAiKnRlc3RfZnVu
YzIqUEFTUyoiLAorICAgICAgICAgICAgICAgICIqdGVzdF9mdW5jMipQQVNTKiIsCiAgICAgICAg
ICAgICAgICAgIioxIGZhaWxlZCwgMyBwYXNzZWQqIiwKICAgICAgICAgICAgIF0KICAgICAgICAg
KQpAQCAtOTYxLDYxICs5NjAsMjUgQEAgY2xhc3MgVGVzdE1ldGFmdW5jRnVuY3Rpb25hbChvYmpl
Y3QpOgogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQogICAgICAgICByZXN1
bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0xKQogCi0gICAgZGVmIHRlc3RfZ2VuZXJhdGVfcGx1
Z2luX2FuZF9tb2R1bGUoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0
ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rl
c3RzKG1ldGFmdW5jKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgImFyZzEiIGluIG1ldGFmdW5j
LmZpeHR1cmVuYW1lcwotICAgICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoaWQ9Indvcmxk
IiwgcGFyYW09KDIsMTAwKSkKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHB5dGVz
dF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRk
Y2FsbChwYXJhbT0oMSwxKSwgaWQ9ImhlbGxvIikKLQotICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgYXJnMShyZXF1
ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbVswXQotICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgYXJnMihyZXF1ZXN0KToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbVsxXQotCi0gICAgICAgICAgICBjbGFzcyBU
ZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9teWZ1bmMoc2VsZiwg
YXJnMSwgYXJnMik6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBhcmcxID09IGFyZzIKLSAg
ICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii12IiwgcCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAg
ICAgWwotICAgICAgICAgICAgICAgICIqdGVzdF9teWZ1bmMqaGVsbG8qUEFTUyoiLAotICAgICAg
ICAgICAgICAgICIqdGVzdF9teWZ1bmMqd29ybGQqRkFJTCoiLAotICAgICAgICAgICAgICAgICIq
MSBmYWlsZWQsIDEgcGFzc2VkKiIsCi0gICAgICAgICAgICBdCi0gICAgICAgICkKLQogICAgIGRl
ZiB0ZXN0X2dlbmVyYXRlX3Rlc3RzX2luX2NsYXNzKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBw
ID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBjbGFz
cyBUZXN0Q2xhc3Mob2JqZWN0KToKICAgICAgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRl
X3Rlc3RzKHNlbGYsIG1ldGFmdW5jKToKLSAgICAgICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRk
Y2FsbChmdW5jYXJncz17J2hlbGxvJzogJ3dvcmxkJ30sIGlkPSJoZWxsbyIpCisgICAgICAgICAg
ICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCdoZWxsbycsIFsnd29ybGQnXSwgaWRzPVsn
aGVsbG93J10pCiAKICAgICAgICAgICAgICAgICBkZWYgdGVzdF9teWZ1bmMoc2VsZiwgaGVsbG8p
OgogICAgICAgICAgICAgICAgICAgICBhc3NlcnQgaGVsbG8gPT0gIndvcmxkIgogICAgICAgICAi
IiIKICAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCBw
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCBwLCBTSE9XX1BZVEVT
VF9XQVJOSU5HU19BUkcpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip0
ZXN0X215ZnVuYypoZWxsbypQQVNTKiIsICIqMSBwYXNzZWQqIl0pCiAKICAgICBkZWYgdGVzdF90
d29fZnVuY3Rpb25zX25vdF9zYW1lX2luc3RhbmNlKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBw
ID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBkZWYg
cHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAgICAgICAgICAgICBtZXRhZnVu
Yy5hZGRjYWxsKHsnYXJnMSc6IDEwfSkKLSAgICAgICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxs
KHsnYXJnMSc6IDIwfSkKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgnYXJn
MScsIFsxMCwgMjBdLCBpZHM9WyIwIiwgIjEiXSkKIAogICAgICAgICAgICAgY2xhc3MgVGVzdENs
YXNzKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzZWxmLCBhcmcxKToK
QEAgLTEwMjMsNyArOTg2LDcgQEAgY2xhc3MgVGVzdE1ldGFmdW5jRnVuY3Rpb25hbChvYmplY3Qp
OgogICAgICAgICAgICAgICAgICAgICBzZWxmLnggPSAxCiAgICAgICAgICIiIgogICAgICAgICAp
Ci0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIsIHApCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIsIHAsIFNIT1dfUFlURVNUX1dBUk5JTkdTX0FS
RykKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICAgICAgWyIq
dGVzdF9mdW5jKjAqUEFTUyoiLCAiKnRlc3RfZnVuYyoxKlBBU1MqIiwgIioyIHBhc3MqIl0KICAg
ICAgICAgKQpAQCAtMTAzMiw3ICs5OTUsNyBAQCBjbGFzcyBUZXN0TWV0YWZ1bmNGdW5jdGlvbmFs
KG9iamVjdCk6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAi
IiIKICAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgotICAg
ICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoeydhcmcxJzogMX0pCisgICAgICAgICAgICAg
ICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoJ2FyZzEnLCBbMV0pCiAKICAgICAgICAgICAgIGNsYXNz
IFRlc3RDbGFzcyhvYmplY3QpOgogICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxm
LCBhcmcxKToKQEAgLTEwNDEsNyArMTAwNCw3IEBAIGNsYXNzIFRlc3RNZXRhZnVuY0Z1bmN0aW9u
YWwob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgc2VsZi52YWwgPSAxCiAgICAgICAgICAg
ICAiIiIKICAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCBTSE9XX1BZVEVTVF9XQVJOSU5H
U19BUkcpCiAgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTEpCiAKICAgICBk
ZWYgdGVzdF9wYXJhbWV0cml6ZV9mdW5jdGlvbmFsMihzZWxmLCB0ZXN0ZGlyKToKQEAgLTEyMTYs
NyArMTE3OSw5IEBAIGNsYXNzIFRlc3RNZXRhZnVuY0Z1bmN0aW9uYWwob2JqZWN0KToKICAgICAg
ICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCiAgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAgICAgICAgIFsiKmlkcyBtdXN0IGJlIGxpc3Qg
b2Ygc3RyaW5ncywgZm91bmQ6IDIgKHR5cGU6IGludCkqIl0KKyAgICAgICAgICAgIFsKKyAgICAg
ICAgICAgICAgICAiKkluIHRlc3RfaWRzX251bWJlcnM6IGlkcyBtdXN0IGJlIGxpc3Qgb2Ygc3Ry
aW5ncywgZm91bmQ6IDIgKHR5cGU6IConaW50Jz4pKiIKKyAgICAgICAgICAgIF0KICAgICAgICAg
KQogCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfd2l0aF9pZGVudGljYWxfaWRzX2dldF91bmlx
dWVfbmFtZXMoc2VsZiwgdGVzdGRpcik6CkBAIC0xMzAxLDE5ICsxMjY2LDE5IEBAIGNsYXNzIFRl
c3RNZXRhZnVuY0Z1bmN0aW9uYWwob2JqZWN0KToKICAgICAgICAgc3ViMSA9IHRlc3RkaXIubWtw
eWRpcigic3ViMSIpCiAgICAgICAgIHN1YjIgPSB0ZXN0ZGlyLm1rcHlkaXIoInN1YjIiKQogICAg
ICAgICBzdWIxLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0
Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAg
ICAgICAiIiJcCisgICAgICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRh
ZnVuYyk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBtZXRhZnVuYy5mdW5jdGlvbi5fX25h
bWVfXyA9PSAidGVzdF8xIgogICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHB5
dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IG1l
dGFmdW5jLmZ1bmN0aW9uLl9fbmFtZV9fID09ICJ0ZXN0XzEiCi0gICAgICAgICIiIgogICAgICAg
ICAgICAgKQogICAgICAgICApCiAgICAgICAgIHN1YjIuam9pbigiY29uZnRlc3QucHkiKS53cml0
ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAorICAgICAgICAgICAgdGV4dHdy
YXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBkZWYgcHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IG1ldGFmdW5jLmZ1bmN0aW9uLl9fbmFtZV9fID09ICJ0ZXN0XzIiCiAgICAgICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAg
ICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuZnVuY3Rpb24uX19uYW1lX18gPT0gInRlc3Rf
MiIKLSAgICAgICAgIiIiCiAgICAgICAgICAgICApCiAgICAgICAgICkKICAgICAgICAgc3ViMS5q
b2luKCJ0ZXN0X2luX3N1YjEucHkiKS53cml0ZSgiZGVmIHRlc3RfMSgpOiBwYXNzIikKQEAgLTEz
MzksOSArMTMwNCw5IEBAIGNsYXNzIFRlc3RNZXRhZnVuY0Z1bmN0aW9uYWwob2JqZWN0KToKICAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5ydW5weXRlc3QoKQogICAgICAgICByZXByZWMuYXNzZXJ0
X291dGNvbWVzKHBhc3NlZD00KQogCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlNDYzCiAgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJhdHRyIiwgWyJwYXJhbWV0cmlzZSIsICJwYXJhbWV0ZXJp
emUiLCAicGFyYW1ldGVyaXNlIl0pCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfbWlzc3BlbGxp
bmcoc2VsZiwgdGVzdGRpciwgYXR0cik6CisgICAgICAgICIiIiM0NjMiIiIKICAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CkBAIC0xMzUzLDEzICsxMzE4LDEzIEBAIGNsYXNzIFRlc3RNZXRhZnVuY0Z1bmN0aW9uYWwo
b2JqZWN0KToKICAgICAgICAgICAgICAgICBhdHRyCiAgICAgICAgICAgICApCiAgICAgICAgICkK
LSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItLWNvbGxlY3Rvbmx5IikKLSAg
ICAgICAgZmFpbHVyZXMgPSByZXByZWMuZ2V0ZmFpbHVyZXMoKQotICAgICAgICBhc3NlcnQgbGVu
KGZhaWx1cmVzKSA9PSAxCi0gICAgICAgIGV4cGVjdGVkZXJyb3IgPSAiTWFya2VyRXJyb3I6IHRl
c3RfZm9vIGhhcyAne30nLCBzcGVsbGluZyBzaG91bGQgYmUgJ3BhcmFtZXRyaXplJyIuZm9ybWF0
KAotICAgICAgICAgICAgYXR0cgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LS1jb2xsZWN0b25seSIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAg
ICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAidGVzdF9mb28gaGFzICd7fScgbWFyaywgc3Bl
bGxpbmcgc2hvdWxkIGJlICdwYXJhbWV0cml6ZSciLmZvcm1hdChhdHRyKSwKKyAgICAgICAgICAg
ICAgICAiKjEgZXJyb3IgaW4qIiwKKyAgICAgICAgICAgIF0KICAgICAgICAgKQotICAgICAgICBh
c3NlcnQgZXhwZWN0ZWRlcnJvciBpbiBmYWlsdXJlc1swXS5sb25ncmVwci5yZXByY3Jhc2gubWVz
c2FnZQogCiAKIGNsYXNzIFRlc3RNZXRhZnVuY0Z1bmN0aW9uYWxBdXRvKG9iamVjdCk6CkBAIC0x
NDU2LDYgKzE0MjEsMzkgQEAgY2xhc3MgVGVzdE1ldGFmdW5jRnVuY3Rpb25hbEF1dG8ob2JqZWN0
KToKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQogICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDMgcGFzc2VkICoiXSkKIAorICAgIGRlZiB0ZXN0X3Bh
cmFtZXRyaXplX3NvbWVfYXJndW1lbnRzX2F1dG9fc2NvcGUoc2VsZiwgdGVzdGRpciwgbW9ua2V5
cGF0Y2gpOgorICAgICAgICAiIiJJbnRlZ3JhdGlvbiB0ZXN0IGZvciAoIzM5NDEpIiIiCisgICAg
ICAgIGNsYXNzX2ZpeF9zZXR1cCA9IFtdCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lz
LCAiY2xhc3NfZml4X3NldHVwIiwgY2xhc3NfZml4X3NldHVwLCByYWlzaW5nPUZhbHNlKQorICAg
ICAgICBmdW5jX2ZpeF9zZXR1cCA9IFtdCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lz
LCAiZnVuY19maXhfc2V0dXAiLCBmdW5jX2ZpeF9zZXR1cCwgcmFpc2luZz1GYWxzZSkKKworICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKHNjb3BlPSdjbGFzcycsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBj
bGFzc19maXgocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgc3lzLmNsYXNzX2ZpeF9zZXR1cC5h
cHBlbmQocmVxdWVzdC5wYXJhbSkKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91
c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBmdW5jX2ZpeCgpOgorICAgICAgICAgICAgICAgIHN5
cy5mdW5jX2ZpeF9zZXR1cC5hcHBlbmQoVHJ1ZSkKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCdjbGFzc19maXgnLCBbMTAsIDIwXSwgaW5kaXJlY3Q9VHJ1ZSkKKyAgICAg
ICAgICAgIGNsYXNzIFRlc3Q6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgor
ICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfYmFyKHNl
bGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAiIiIKKyAgICAgICAg
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9pbnByb2Nlc3MoKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDQgcGFzc2VkIGluICoiXSkKKyAgICAg
ICAgYXNzZXJ0IGZ1bmNfZml4X3NldHVwID09IFtUcnVlXSAqIDQKKyAgICAgICAgYXNzZXJ0IGNs
YXNzX2ZpeF9zZXR1cCA9PSBbMTAsIDIwXQorCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfaXNz
dWU2MzQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAg
ICAgICAgICIiIgpAQCAtMTQ5MSw5ICsxNDg5LDggQEAgY2xhc3MgVGVzdE1ldGFmdW5jRnVuY3Rp
b25hbEF1dG8ob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IG91dHB1dC5jb3VudCgicHJlcGFyaW5n
IGZvby0zIikgPT0gMQogCiAKLUBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiaWdub3JlOkFw
cGx5aW5nIG1hcmtzIGRpcmVjdGx5IHRvIHBhcmFtZXRlcnMiKQotQHB5dGVzdC5tYXJrLmlzc3Vl
MzA4CiBjbGFzcyBUZXN0TWFya2Vyc1dpdGhQYXJhbWV0cml6YXRpb24ob2JqZWN0KToKKyAgICAi
IiIjMzA4IiIiCiAKICAgICBkZWYgdGVzdF9zaW1wbGVfbWFyayhzZWxmLCB0ZXN0ZGlyKToKICAg
ICAgICAgcyA9ICIiIgpAQCAtMTUwMiw3ICsxNDk5LDcgQEAgY2xhc3MgVGVzdE1hcmtlcnNXaXRo
UGFyYW1ldHJpemF0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuZm9vCiAg
ICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsK
ICAgICAgICAgICAgICAgICAoMSwgMiksCi0gICAgICAgICAgICAgICAgcHl0ZXN0Lm1hcmsuYmFy
KCgxLCAzKSksCisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDEsIDMsIG1hcmtzPXB5dGVz
dC5tYXJrLmJhciksCiAgICAgICAgICAgICAgICAgKDIsIDMpLAogICAgICAgICAgICAgXSkKICAg
ICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6CkBAIC0xNTIyLDE0ICsx
NTE5LDE0IEBAIGNsYXNzIFRlc3RNYXJrZXJzV2l0aFBhcmFtZXRyaXphdGlvbihvYmplY3QpOgog
CiAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCJuIiwgImV4cGVjdGVkIiks
IFsKICAgICAgICAgICAgICAgICAoMSwgMiksCi0gICAgICAgICAgICAgICAgcHl0ZXN0Lm1hcmsu
Zm9vKCgyLCAzKSksCisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDIsIDMsIG1hcmtzPXB5
dGVzdC5tYXJrLmZvbyksCiAgICAgICAgICAgICAgICAgKDMsIDQpLAogICAgICAgICAgICAgXSkK
ICAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCiAgICAgICAgICIiIgogICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUocykKLSAgICAgICAgcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItbSIs
ICJmb28iKQorICAgICAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1tIiwgImZvbyIsIFNI
T1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsID0g
cmVjLmxpc3RvdXRjb21lcygpCiAgICAgICAgIGFzc2VydCBsZW4ocGFzc2VkKSA9PSAxCiAgICAg
ICAgIGFzc2VydCBsZW4oc2tpcHBlZCkgPT0gMApAQCAtMTU2MiwxNCArMTU1OSwxNCBAQCBjbGFz
cyBUZXN0TWFya2Vyc1dpdGhQYXJhbWV0cml6YXRpb24ob2JqZWN0KToKIAogICAgICAgICAgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgibiIsICJleHBlY3RlZCIpLCBbCiAgICAgICAgICAg
ICAgICAgKDEsIDIpLAotICAgICAgICAgICAgICAgIHB5dGVzdC5tYXJrLnhmYWlsKCgxLCAzKSks
CisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDEsIDMsIG1hcmtzPXB5dGVzdC5tYXJrLnhm
YWlsKSwKICAgICAgICAgICAgICAgICAoMiwgMyksCiAgICAgICAgICAgICBdKQogICAgICAgICAg
ICAgZGVmIHRlc3RfaW5jcmVtZW50KG4sIGV4cGVjdGVkKToKICAgICAgICAgICAgICAgICBhc3Nl
cnQgbiArIDEgPT0gZXhwZWN0ZWQKICAgICAgICAgIiIiCiAgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZShzKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICBy
ZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oU0hPV19QWVRFU1RfV0FSTklOR1NfQVJHKQogICAg
ICAgICAjIHhmYWlsIGlzIHNraXA/PwogICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNz
ZWQ9Miwgc2tpcHBlZD0xKQogCkBAIC0xNTc5LDE0ICsxNTc2LDE0IEBAIGNsYXNzIFRlc3RNYXJr
ZXJzV2l0aFBhcmFtZXRyaXphdGlvbihvYmplY3QpOgogCiAgICAgICAgICAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoIm4iLCBbCiAgICAgICAgICAgICAgICAgMiwKLSAgICAgICAgICAgICAg
ICBweXRlc3QubWFyay54ZmFpbCgzKSwKKyAgICAgICAgICAgICAgICBweXRlc3QucGFyYW0oMywg
bWFya3M9cHl0ZXN0Lm1hcmsueGZhaWwpLAogICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAg
ICBdKQogICAgICAgICAgICAgZGVmIHRlc3RfaXNFdmVuKG4pOgogICAgICAgICAgICAgICAgIGFz
c2VydCBuICUgMiA9PSAwCiAgICAgICAgICIiIgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
cykKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIsIHNraXBwZWQ9MSkKIAogICAgIGRlZiB0ZXN0
X3hmYWlsX3dpdGhfYXJnKHNlbGYsIHRlc3RkaXIpOgpAQCAtMTU5NSwxNCArMTU5MiwxNCBAQCBj
bGFzcyBUZXN0TWFya2Vyc1dpdGhQYXJhbWV0cml6YXRpb24ob2JqZWN0KToKIAogICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgibiIsICJleHBlY3RlZCIpLCBbCiAgICAgICAg
ICAgICAgICAgKDEsIDIpLAotICAgICAgICAgICAgICAgIHB5dGVzdC5tYXJrLnhmYWlsKCJUcnVl
IikoKDEsIDMpKSwKKyAgICAgICAgICAgICAgICBweXRlc3QucGFyYW0oMSwgMywgbWFya3M9cHl0
ZXN0Lm1hcmsueGZhaWwoIlRydWUiKSksCiAgICAgICAgICAgICAgICAgKDIsIDMpLAogICAgICAg
ICAgICAgXSkKICAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCiAgICAgICAgICIiIgogICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKCkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKFNIT1dfUFlURVNU
X1dBUk5JTkdTX0FSRykKICAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIsIHNr
aXBwZWQ9MSkKIAogICAgIGRlZiB0ZXN0X3hmYWlsX3dpdGhfa3dhcmcoc2VsZiwgdGVzdGRpcik6
CkBAIC0xNjExLDE0ICsxNjA4LDE0IEBAIGNsYXNzIFRlc3RNYXJrZXJzV2l0aFBhcmFtZXRyaXph
dGlvbihvYmplY3QpOgogCiAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCJu
IiwgImV4cGVjdGVkIiksIFsKICAgICAgICAgICAgICAgICAoMSwgMiksCi0gICAgICAgICAgICAg
ICAgcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSJzb21lIGJ1ZyIpKCgxLCAzKSksCisgICAgICAg
ICAgICAgICAgcHl0ZXN0LnBhcmFtKDEsIDMsIG1hcmtzPXB5dGVzdC5tYXJrLnhmYWlsKHJlYXNv
bj0ic29tZSBidWciKSksCiAgICAgICAgICAgICAgICAgKDIsIDMpLAogICAgICAgICAgICAgXSkK
ICAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCiAgICAgICAgICIiIgogICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUocykKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkK
KyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKFNIT1dfUFlURVNUX1dBUk5JTkdT
X0FSRykKICAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIsIHNraXBwZWQ9MSkK
IAogICAgIGRlZiB0ZXN0X3hmYWlsX3dpdGhfYXJnX2FuZF9rd2FyZyhzZWxmLCB0ZXN0ZGlyKToK
QEAgLTE2MjcsMTQgKzE2MjQsMTQgQEAgY2xhc3MgVGVzdE1hcmtlcnNXaXRoUGFyYW1ldHJpemF0
aW9uKG9iamVjdCk6CiAKICAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoIm4i
LCAiZXhwZWN0ZWQiKSwgWwogICAgICAgICAgICAgICAgICgxLCAyKSwKLSAgICAgICAgICAgICAg
ICBweXRlc3QubWFyay54ZmFpbCgiVHJ1ZSIsIHJlYXNvbj0ic29tZSBidWciKSgoMSwgMykpLAor
ICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgxLCAzLCBtYXJrcz1weXRlc3QubWFyay54ZmFp
bCgiVHJ1ZSIsIHJlYXNvbj0ic29tZSBidWciKSksCiAgICAgICAgICAgICAgICAgKDIsIDMpLAog
ICAgICAgICAgICAgXSkKICAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3Rl
ZCk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCiAgICAgICAgICIi
IgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKLSAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKFNIT1df
UFlURVNUX1dBUk5JTkdTX0FSRykKICAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTIsIHNraXBwZWQ9MSkKIAogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3RyaWN0Iiwg
W1RydWUsIEZhbHNlXSkKQEAgLTE2NDIsOSArMTYzOSwxMSBAQCBjbGFzcyBUZXN0TWFya2Vyc1dp
dGhQYXJhbWV0cml6YXRpb24ob2JqZWN0KToKICAgICAgICAgcyA9ICIiIgogICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAogCisgICAgICAgICAgICBtID0gcHl0ZXN0Lm1hcmsueGZhaWwoInN5cy52
ZXJzaW9uX2luZm8gPiAoMCwgMCwgMCkiLCByZWFzb249InNvbWUgYnVnIiwgc3RyaWN0PXtzdHJp
Y3R9KQorCiAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCJuIiwgImV4cGVj
dGVkIiksIFsKICAgICAgICAgICAgICAgICAoMSwgMiksCi0gICAgICAgICAgICAgICAgcHl0ZXN0
Lm1hcmsueGZhaWwoInN5cy52ZXJzaW9uX2luZm8gPiAoMCwgMCwgMCkiLCByZWFzb249InNvbWUg
YnVnIiwgc3RyaWN0PXtzdHJpY3R9KSgoMiwgMykpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5w
YXJhbSgyLCAzLCBtYXJrcz1tKSwKICAgICAgICAgICAgICAgICAoMywgNCksCiAgICAgICAgICAg
ICBdKQogICAgICAgICAgICAgZGVmIHRlc3RfaW5jcmVtZW50KG4sIGV4cGVjdGVkKToKQEAgLTE2
NTMsNyArMTY1Miw3IEBAIGNsYXNzIFRlc3RNYXJrZXJzV2l0aFBhcmFtZXRyaXphdGlvbihvYmpl
Y3QpOgogICAgICAgICAgICAgc3RyaWN0PXN0cmljdAogICAgICAgICApCiAgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZShzKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQor
ICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oU0hPV19QWVRFU1RfV0FSTklOR1Nf
QVJHKQogICAgICAgICBwYXNzZWQsIGZhaWxlZCA9ICgyLCAxKSBpZiBzdHJpY3QgZWxzZSAoMywg
MCkKICAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPXBhc3NlZCwgZmFpbGVkPWZh
aWxlZCkKIApAQCAtMTY2OCw3ICsxNjY3LDcgQEAgY2xhc3MgVGVzdE1hcmtlcnNXaXRoUGFyYW1l
dHJpemF0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgZmFpbGluZ1Rlc3REYXRhID0gWygx
LCAzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDIsIDIpXQogCi0gICAg
ICAgICAgICAgICAgdGVzdERhdGEgPSBwYXNzaW5nVGVzdERhdGEgKyBbcHl0ZXN0Lm1hcmsueGZh
aWwoZCkKKyAgICAgICAgICAgICAgICB0ZXN0RGF0YSA9IHBhc3NpbmdUZXN0RGF0YSArIFtweXRl
c3QucGFyYW0oKmQsIG1hcmtzPXB5dGVzdC5tYXJrLnhmYWlsKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvciBkIGluIGZhaWxpbmdUZXN0RGF0YV0KICAgICAgICAgICAgICAg
ICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgoIm4iLCAiZXhwZWN0ZWQiKSwgdGVzdERhdGEpCiAKQEAg
LTE2NzcsMTEgKzE2NzYsMTEgQEAgY2xhc3MgVGVzdE1hcmtlcnNXaXRoUGFyYW1ldHJpemF0aW9u
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCiAgICAg
ICAgICIiIgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKLSAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTIsIHNraXBwZWQ9MikKIAotICAgIEBweXRlc3QubWFyay5pc3N1ZTI5MAogICAgIGRl
ZiB0ZXN0X3BhcmFtZXRyaXplX0lEX2dlbmVyYXRpb25fc3RyaW5nX2ludF93b3JrcyhzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgIiIiIzI5MCIiIgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKQEAgLTE3NjYsMyAr
MTc2NSwxNiBAQCBjbGFzcyBUZXN0TWFya2Vyc1dpdGhQYXJhbWV0cml6YXRpb24ob2JqZWN0KToK
ICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICAgICAgWyIqdGVz
dF9mdW5jX2EqMCpQQVNTKiIsICIqdGVzdF9mdW5jX2EqMipQQVNTKiIsICIqdGVzdF9mdW5jX2Iq
MTAqUEFTUyoiXQogICAgICAgICApCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9wb3NpdGlv
bmFsX2FyZ3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImEiLCBbMV0sIEZhbHNlKQorICAgICAgICAgICAgZGVm
IHRlc3RfZm9vKGEpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAg
ICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQu
YXNzZXJ0X291dGNvbWVzKHBhc3NlZD0xKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9weXRob24vcmFpc2VzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vcmFpc2VzLnB5
CmluZGV4IDY0MTk5YzNiNmY1ZmQyMDliMDY4OGFkNTNhMDQ3ZDhiNzhjYzdjMWUuLmZhMjVkOWY3
M2VlN2ZmOTEyOWI5ZTQ0Nzc4YWU3OTI2M2U5ZjY2N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvcHl0aG9uL3JhaXNlcy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhv
bi9yYWlzZXMucHkKQEAgLTEsMzAgKzEsNDMgQEAKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBv
cnQgRmFpbGVkCi1pbXBvcnQgcHl0ZXN0CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0
IHN5cwogCitpbXBvcnQgc2l4CiAKLWNsYXNzIFRlc3RSYWlzZXMob2JqZWN0KToKK2ltcG9ydCBw
eXRlc3QKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGR1bW15X2NvbnRleHRfbWFuYWdlcgor
ZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBGYWlsZWQKK2Zyb20gX3B5dGVzdC53YXJuaW5n
X3R5cGVzIGltcG9ydCBQeXRlc3REZXByZWNhdGlvbldhcm5pbmcKIAorCitjbGFzcyBUZXN0UmFp
c2VzKG9iamVjdCk6CiAgICAgZGVmIHRlc3RfcmFpc2VzKHNlbGYpOgogICAgICAgICBzb3VyY2Ug
PSAiaW50KCdxd2UnKSIKLSAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJv
ciwgc291cmNlKQorICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhQeXRlc3REZXByZWNhdGlvbldh
cm5pbmcpOgorICAgICAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwg
c291cmNlKQogICAgICAgICBjb2RlID0gZXhjaW5mby50cmFjZWJhY2tbLTFdLmZyYW1lLmNvZGUK
ICAgICAgICAgcyA9IHN0cihjb2RlLmZ1bGxzb3VyY2UpCiAgICAgICAgIGFzc2VydCBzID09IHNv
dXJjZQogCiAgICAgZGVmIHRlc3RfcmFpc2VzX2V4ZWMoc2VsZik6Ci0gICAgICAgIHB5dGVzdC5y
YWlzZXMoVmFsdWVFcnJvciwgImEseCA9IFtdIikKKyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMo
UHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nKSBhcyB3YXJuaW5mbzoKKyAgICAgICAgICAgIHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwgImEseCA9IFtdIikKKyAgICAgICAgYXNzZXJ0IHdhcm5pbmZv
WzBdLmZpbGVuYW1lID09IF9fZmlsZV9fCisKKyAgICBkZWYgdGVzdF9yYWlzZXNfZXhlY19jb3Jy
ZWN0X2ZpbGVuYW1lKHNlbGYpOgorICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhQeXRlc3REZXBy
ZWNhdGlvbldhcm5pbmcpOgorICAgICAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFs
dWVFcnJvciwgJ2ludCgicyIpJykKKyAgICAgICAgICAgIGFzc2VydCBfX2ZpbGVfXyBpbiBleGNp
bmZvLnRyYWNlYmFja1stMV0ucGF0aAogCiAgICAgZGVmIHRlc3RfcmFpc2VzX3N5bnRheF9lcnJv
cihzZWxmKToKLSAgICAgICAgcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwgInF3ZSBxd2UgcXdl
IikKKyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nKSBh
cyB3YXJuaW5mbzoKKyAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoU3ludGF4RXJyb3IsICJxd2Ug
cXdlIHF3ZSIpCisgICAgICAgIGFzc2VydCB3YXJuaW5mb1swXS5maWxlbmFtZSA9PSBfX2ZpbGVf
XwogCiAgICAgZGVmIHRlc3RfcmFpc2VzX2Z1bmN0aW9uKHNlbGYpOgogICAgICAgICBweXRlc3Qu
cmFpc2VzKFZhbHVlRXJyb3IsIGludCwgImhlbGxvIikKIAogICAgIGRlZiB0ZXN0X3JhaXNlc19j
YWxsYWJsZV9ub19leGNlcHRpb24oc2VsZik6Ci0KICAgICAgICAgY2xhc3MgQShvYmplY3QpOgot
CiAgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZik6CiAgICAgICAgICAgICAgICAgcGFzcwog
CkBAIC0zMywxOCArNDYsMzkgQEAgY2xhc3MgVGVzdFJhaXNlcyhvYmplY3QpOgogICAgICAgICBl
eGNlcHQgcHl0ZXN0LnJhaXNlcy5FeGNlcHRpb246CiAgICAgICAgICAgICBwYXNzCiAKKyAgICBk
ZWYgdGVzdF9yYWlzZXNfZmFsc2V5X3R5cGVfZXJyb3Ioc2VsZik6CisgICAgICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEFz
c2VydGlvbkVycm9yLCBtYXRjaD0wKToKKyAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25F
cnJvcigib2hhaSIpCisKKyAgICBkZWYgdGVzdF9yYWlzZXNfcmVwcl9pbmZsaWdodChzZWxmKToK
KyAgICAgICAgIiIiRW5zdXJlIHJlcHIoKSBvbiBhbiBleGNlcHRpb24gaW5mbyBpbnNpZGUgYSBw
eXRlc3QucmFpc2VzIHdpdGggYmxvY2sgd29ya3MgKCM0Mzg2KSIiIgorCisgICAgICAgIGNsYXNz
IEUoRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoRSkgYXMgZXhjaW5mbzoKKyAgICAgICAgICAgICMgdGhpcyB0ZXN0IHByaW50cyB0aGUg
aW5mbGlnaHQgdW5pbml0aWFsaXplZCBvYmplY3QKKyAgICAgICAgICAgICMgdXNpbmcgcmVwciBh
bmQgc3RyIGFzIHdlbGwgYXMgcHByaW50IHRvIGRlbW9uc3RyYXRlCisgICAgICAgICAgICAjIGl0
IHdvcmtzCisgICAgICAgICAgICBwcmludChzdHIoZXhjaW5mbykpCisgICAgICAgICAgICBwcmlu
dChyZXByKGV4Y2luZm8pKQorICAgICAgICAgICAgaW1wb3J0IHBwcmludAorCisgICAgICAgICAg
ICBwcHJpbnQucHByaW50KGV4Y2luZm8pCisgICAgICAgICAgICByYWlzZSBFKCkKKwogICAgIGRl
ZiB0ZXN0X3JhaXNlc19hc19jb250ZXh0bWFuYWdlcihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50Ci0gICAgICAgICAgICBpbXBvcnQgcHksIHB5
dGVzdAorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogICAgICAgICAgICAgaW1wb3J0IF9weXRl
c3QuX2NvZGUKIAogICAgICAgICAgICAgZGVmIHRlc3Rfc2ltcGxlKCk6CiAgICAgICAgICAgICAg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKSBhcyBleGNpbmZvOgogICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShleGNpbmZvLCBfcHl0ZXN0Ll9jb2Rl
LkV4Y2VwdGlvbkluZm8pCiAgICAgICAgICAgICAgICAgICAgIDEvMAotICAgICAgICAgICAgICAg
IHByaW50IChleGNpbmZvKQorICAgICAgICAgICAgICAgIHByaW50KGV4Y2luZm8pCiAgICAgICAg
ICAgICAgICAgYXNzZXJ0IGV4Y2luZm8udHlwZSA9PSBaZXJvRGl2aXNpb25FcnJvcgogICAgICAg
ICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGV4Y2luZm8udmFsdWUsIFplcm9EaXZpc2lvbkVy
cm9yKQogCkBAIC02Miw2ICs5Niw1NCBAQCBjbGFzcyBUZXN0UmFpc2VzKG9iamVjdCk6CiAgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsiKjMgcGFzc2VkKiJdKQogCisgICAgZGVmIHRlc3RfZG9lc19ub3RfcmFp
c2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgICIiIgorICAgICAgICAgICAgZnJvbSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdl
cgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAY29udGV4dG1hbmFn
ZXIKKyAgICAgICAgICAgIGRlZiBkb2VzX25vdF9yYWlzZSgpOgorICAgICAgICAgICAgICAgIHlp
ZWxkCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZXhhbXBsZV9pbnB1
dCxleHBlY3RhdGlvbicsIFsKKyAgICAgICAgICAgICAgICAoMywgZG9lc19ub3RfcmFpc2UoKSks
CisgICAgICAgICAgICAgICAgKDIsIGRvZXNfbm90X3JhaXNlKCkpLAorICAgICAgICAgICAgICAg
ICgxLCBkb2VzX25vdF9yYWlzZSgpKSwKKyAgICAgICAgICAgICAgICAoMCwgcHl0ZXN0LnJhaXNl
cyhaZXJvRGl2aXNpb25FcnJvcikpLAorICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2RpdmlzaW9uKGV4YW1wbGVfaW5wdXQsIGV4cGVjdGF0aW9uKToKKyAgICAgICAgICAgICAg
ICAnJydUZXN0IGhvdyBtdWNoIEkga25vdyBkaXZpc2lvbi4nJycKKyAgICAgICAgICAgICAgICB3
aXRoIGV4cGVjdGF0aW9uOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgKDYgLyBleGFtcGxl
X2lucHV0KSBpcyBub3QgTm9uZQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIio0IHBhc3NlZCoiXSkKKworICAgIGRlZiB0ZXN0X2RvZXNfbm90X3JhaXNlX2RvZXNf
cmFpc2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgZnJvbSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFu
YWdlcgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAY29udGV4dG1h
bmFnZXIKKyAgICAgICAgICAgIGRlZiBkb2VzX25vdF9yYWlzZSgpOgorICAgICAgICAgICAgICAg
IHlpZWxkCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZXhhbXBsZV9p
bnB1dCxleHBlY3RhdGlvbicsIFsKKyAgICAgICAgICAgICAgICAoMCwgZG9lc19ub3RfcmFpc2Uo
KSksCisgICAgICAgICAgICAgICAgKDEsIHB5dGVzdC5yYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3Ip
KSwKKyAgICAgICAgICAgIF0pCisgICAgICAgICAgICBkZWYgdGVzdF9kaXZpc2lvbihleGFtcGxl
X2lucHV0LCBleHBlY3RhdGlvbik6CisgICAgICAgICAgICAgICAgJycnVGVzdCBob3cgbXVjaCBJ
IGtub3cgZGl2aXNpb24uJycnCisgICAgICAgICAgICAgICAgd2l0aCBleHBlY3RhdGlvbjoKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0ICg2IC8gZXhhbXBsZV9pbnB1dCkgaXMgbm90IE5vbmUK
KyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMiBmYWlsZWQqIl0p
CisKICAgICBkZWYgdGVzdF9ub2NsYXNzKHNlbGYpOgogICAgICAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoVHlwZUVycm9yKToKICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoIndyb25nIiwgbGFtYmRh
OiBOb25lKQpAQCAtOTQsOCArMTc2LDkgQEAgY2xhc3MgVGVzdFJhaXNlcyhvYmplY3QpOgogICAg
IGRlZiB0ZXN0X2N1c3RvbV9yYWlzZV9tZXNzYWdlKHNlbGYpOgogICAgICAgICBtZXNzYWdlID0g
IlRFU1RfTUVTU0FHRSIKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBweXRlc3QucmFp
c2VzKFZhbHVlRXJyb3IsIG1lc3NhZ2U9bWVzc2FnZSk6Ci0gICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nKToK
KyAgICAgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbWVzc2FnZT1t
ZXNzYWdlKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICBleGNlcHQgcHl0ZXN0
LnJhaXNlcy5FeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIGFzc2VydCBlLm1zZyA9PSBtZXNz
YWdlCiAgICAgICAgIGVsc2U6CkBAIC0xMDksNyArMTkyLDYgQEAgY2xhc3MgVGVzdFJhaXNlcyhv
YmplY3QpOgogICAgICAgICBpbXBvcnQgZ2MKIAogICAgICAgICBjbGFzcyBUKG9iamVjdCk6Ci0K
ICAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKICAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yCiAKQEAgLTEzOSw3ICsyMjEsNyBAQCBjbGFzcyBUZXN0UmFpc2VzKG9iamVjdCk6
CiAgICAgICAgICAgICBpbnQoImFzZGYiKQogCiAgICAgICAgIG1zZyA9ICJ3aXRoIGJhc2UgMTYi
Ci0gICAgICAgIGV4cHIgPSByIlBhdHRlcm4gJ3t9JyBub3QgZm91bmQgaW4gJ2ludmFsaWQgbGl0
ZXJhbCBmb3IgaW50XChcKSB3aXRoIGJhc2UgMTA6ICdhc2RmJyciLmZvcm1hdCgKKyAgICAgICAg
ZXhwciA9IHIiUGF0dGVybiAne30nIG5vdCBmb3VuZCBpbiBcImludmFsaWQgbGl0ZXJhbCBmb3Ig
aW50XChcKSB3aXRoIGJhc2UgMTA6ICdhc2RmJ1wiIi5mb3JtYXQoCiAgICAgICAgICAgICBtc2cK
ICAgICAgICAgKQogICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIG1h
dGNoPWV4cHIpOgpAQCAtMTYwLDcgKzI0Miw2IEBAIGNsYXNzIFRlc3RSYWlzZXMob2JqZWN0KToK
ICAgICAgICAgZnJvbSBzaXggaW1wb3J0IGFkZF9tZXRhY2xhc3MKIAogICAgICAgICBjbGFzcyBN
ZXRhKHR5cGUob2JqZWN0KSk6Ci0KICAgICAgICAgICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBp
dGVtKToKICAgICAgICAgICAgICAgICByZXR1cm4gMSAvIDAKIApAQCAtMTcyLDYgKzI1Myw3MyBA
QCBjbGFzcyBUZXN0UmFpc2VzKG9iamVjdCk6CiAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAg
d2l0aCBweXRlc3QucmFpc2VzKAotICAgICAgICAgICAgRmFpbGVkLCBtYXRjaD0iRElEIE5PVCBS
QUlTRSA8Y2xhc3MgJ3JhaXNlcy5DbGFzc0xvb2tzSXRlcmFibGVFeGNlcHRpb24nPiIKKyAgICAg
ICAgICAgIEZhaWxlZCwKKyAgICAgICAgICAgIG1hdGNoPXIiRElEIE5PVCBSQUlTRSA8Y2xhc3Mg
J3JhaXNlcyhcLi4qKSpDbGFzc0xvb2tzSXRlcmFibGVFeGNlcHRpb24nPiIsCiAgICAgICAgICk6
CiAgICAgICAgICAgICBweXRlc3QucmFpc2VzKENsYXNzTG9va3NJdGVyYWJsZUV4Y2VwdGlvbiwg
bGFtYmRhOiBOb25lKQorCisgICAgZGVmIHRlc3RfcmFpc2VzX3dpdGhfcmFpc2luZ19kdW5kZXJf
Y2xhc3Moc2VsZik6CisgICAgICAgICIiIlRlc3QgY3VycmVudCBiZWhhdmlvciB3aXRoIHJlZ2Fy
ZCB0byBleGNlcHRpb25zIHZpYSBfX2NsYXNzX18gKCM0Mjg0KS4iIiIKKworICAgICAgICBjbGFz
cyBDcmFwcHlDbGFzcyhFeGNlcHRpb24pOgorICAgICAgICAgICAgQHByb3BlcnR5CisgICAgICAg
ICAgICBkZWYgX19jbGFzc19fKHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZSwg
InZpYSBfX2NsYXNzX18iCisKKyAgICAgICAgaWYgc2l4LlBZMjoKKyAgICAgICAgICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24pIGFzIGV4Y2luZm86CisgICAgICAg
ICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKENyYXBweUNsYXNzKCkpOgorICAgICAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICAgICBhc3NlcnQgIkRJRCBOT1QgUkFJU0UiIGluIGV4Y2lu
Zm8udmFsdWUuYXJnc1swXQorCisgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQ3JhcHB5
Q2xhc3MpIGFzIGV4Y2luZm86CisgICAgICAgICAgICAgICAgcmFpc2UgQ3JhcHB5Q2xhc3MoKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVy
cm9yKSBhcyBleGNpbmZvOgorICAgICAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhDcmFw
cHlDbGFzcygpKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgYXNzZXJ0
ICJ2aWEgX19jbGFzc19fIiBpbiBleGNpbmZvLnZhbHVlLmFyZ3NbMF0KKworCitjbGFzcyBUZXN0
VW5pY29kZUhhbmRsaW5nOgorICAgICIiIlRlc3QgdmFyaW91cyBjb21iaW5hdGlvbnMgb2YgYnl0
ZXMgYW5kIHVuaWNvZGUgd2l0aCBweXRlc3QucmFpc2VzICgjNTQ3OCkKKworICAgIGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzU0NzkjZGlzY3Vzc2lvbl9yMjk4ODUy
NDMzCisgICAgIiIiCisKKyAgICBzdWNjZXNzID0gZHVtbXlfY29udGV4dF9tYW5hZ2VyCisgICAg
cHkyX29ubHkgPSBweXRlc3QubWFyay5za2lwaWYoCisgICAgICAgIG5vdCBzaXguUFkyLCByZWFz
b249ImJ5dGVzIGluIHJhaXNlcyBvbmx5IHN1cHBvcnRlZCBpbiBQeXRob24gMiIKKyAgICApCisK
KyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJtZXNzYWdlLCBtYXRjaCwg
ZXhwZWN0YXRpb24iLAorICAgICAgICBbCisgICAgICAgICAgICAodSJcdTI2MDMiLCB1Ilx1MjYw
MyIsIHN1Y2Nlc3MoKSksCisgICAgICAgICAgICAodSJcdTI2MDMiLCB1Ilx1MjYwM2ZvbyIsIHB5
dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IpKSwKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbShi
ImhlbGxvIiwgYiJoZWxsbyIsIHN1Y2Nlc3MoKSwgbWFya3M9cHkyX29ubHkpLAorICAgICAgICAg
ICAgcHl0ZXN0LnBhcmFtKAorICAgICAgICAgICAgICAgIGIiaGVsbG8iLCBiIndvcmxkIiwgcHl0
ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvciksIG1hcmtzPXB5Ml9vbmx5CisgICAgICAgICAgICAp
LAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKHUiaGVsbG8iLCBiImhlbGxvIiwgc3VjY2Vzcygp
LCBtYXJrcz1weTJfb25seSksCisgICAgICAgICAgICBweXRlc3QucGFyYW0oCisgICAgICAgICAg
ICAgICAgdSJoZWxsbyIsIGIid29ybGQiLCBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yKSwg
bWFya3M9cHkyX29ubHkKKyAgICAgICAgICAgICksCisgICAgICAgICAgICBweXRlc3QucGFyYW0o
CisgICAgICAgICAgICAgICAgdSLwn5iKIi5lbmNvZGUoIlVURi04IiksCisgICAgICAgICAgICAg
ICAgYiJ3b3JsZCIsCisgICAgICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJv
ciksCisgICAgICAgICAgICAgICAgbWFya3M9cHkyX29ubHksCisgICAgICAgICAgICApLAorICAg
ICAgICAgICAgcHl0ZXN0LnBhcmFtKAorICAgICAgICAgICAgICAgIHUid29ybGQiLAorICAgICAg
ICAgICAgICAgIHUi8J+YiiIuZW5jb2RlKCJVVEYtOCIpLAorICAgICAgICAgICAgICAgIHB5dGVz
dC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IpLAorICAgICAgICAgICAgICAgIG1hcmtzPXB5Ml9vbmx5
LAorICAgICAgICAgICAgKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3RfaGFuZGxp
bmcoc2VsZiwgbWVzc2FnZSwgbWF0Y2gsIGV4cGVjdGF0aW9uKToKKyAgICAgICAgd2l0aCBleHBl
Y3RhdGlvbjoKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1h
dGNoPW1hdGNoKToKKyAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IobWVzc2FnZSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3NldHVwX29ubHkucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9zZXR1cF9vbmx5LnB5CmluZGV4IDRhZTI0YjE1YTZk
YTkyZDQzNTE4Y2ZiYzc2Y2U0YTQ3MzdjODU2MjIuLmJhNGNlYjAwZmNlNWJjOTc0OWRmMDU0NDZi
MzRhZjQwYjc5ZmJlNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3Nl
dHVwX29ubHkucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vc2V0dXBfb25seS5w
eQpAQCAtMSwzICsxLDQgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBpbXBvcnQgcHl0ZXN0
CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vc2V0dXBfcGxhbi5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3NldHVwX3BsYW4ucHkKaW5kZXggMDMyMTkz
OWE4YWFjNGJkOTE5ZGE3MjY0YzQzNWQ0MDY0ZDcxZDQ1YS4uYWQ2NGU0MmMyOWM3ZTdhM2RjZjQx
MmEzOWY0MjBjZmE0NWYxM2ZhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRo
b24vc2V0dXBfcGxhbi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9zZXR1cF9w
bGFuLnB5CkBAIC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGRlZiB0ZXN0
X3Nob3dfZml4dHVyZXNfYW5kX3Rlc3QodGVzdGRpcik6CiAgICAgIiIiIFZlcmlmaWVzIHRoYXQg
Zml4dHVyZXMgYXJlIG5vdCBleGVjdXRlZC4gIiIiCiAgICAgcCA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3Rlc3RfZGVwcmVjYXRp
b25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vdGVzdF9kZXByZWNhdGlvbnMucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwYzExZjBiMDNiNDU4OTFlMGQ4MTZjOTFh
NDZjZjRlYWQxOTBiMWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vdGVzdF9kZXByZWNhdGlvbnMucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1pbXBvcnQgcHl0ZXN0Ci0KLWZyb20gX3B5dGVz
dC5weXRob24gaW1wb3J0IFB5Q29sbGVjdG9yCi0KLQotY2xhc3MgUHlDb2xsZWN0b3JNb2NrKFB5
Q29sbGVjdG9yKToKLSAgICAiIiJldmlsIGhhY2siIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKLSAgICAgICAgc2VsZi5jYWxsZWQgPSBGYWxzZQotCi0gICAgZGVmIF9tYWtlaXRlbShzZWxm
LCAqayk6Ci0gICAgICAgICIiImhhY2sgdG8gZGlzYWJsZSB0aGUgYWN0dWFsIGJlaGF2aW91ciIi
IgotICAgICAgICBzZWxmLmNhbGxlZCA9IFRydWUKLQotCi1kZWYgdGVzdF9weWNvbGxlY3Rvcl9t
YWtlaXRlbV9pc19kZXByZWNhdGVkKCk6Ci0KLSAgICBjb2xsZWN0b3IgPSBQeUNvbGxlY3Rvck1v
Y2soKQotICAgIHdpdGggcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgotICAgICAgICBjb2xsZWN0
b3IubWFrZWl0ZW0oImZvbyIsICJiYXIiKQotICAgIGFzc2VydCBjb2xsZWN0b3IuY2FsbGVkCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3czYy1pbXBvcnQubG9nCmluZGV4IGJjMzc5YTU5NjRj
OGNjMjk3YWQxMTg4MGQwYWJlNzMwMTY2YzM1OTEuLjhjZmQ2ZTY1YTcxMjFhNjQ0ODZlZWMwNjBj
ODRmZGMyNjllZGU1MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3cz
Yy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3czYy1pbXBvcnQu
bG9nCkBAIC0xNiwxMSArMTYsMTAgQEAgTm9uZQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3B5dGhvbi9hcHByb3gucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9j
b2xsZWN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vZml4dHVyZS5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ZpeHR1cmVzLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9w
eXRob24vaW50ZWdyYXRpb24ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9tZXRhZnVu
Yy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3JhaXNlcy5weQogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvcHl0aG9uL3NldHVwX29ubHkucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhv
bi9zZXR1cF9wbGFuLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vc2hvd19maXh0dXJl
c19wZXJfdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3Rlc3RfZGVwcmVjYXRp
b25zLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfYXJnY29tcGxldGUu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfYXJnY29tcGxldGUucHkKaW5kZXggYjA0MmRl
NWNlNWJlYTQ1NTUxMmE2NDU4ODgwNmRlNDc3NjVlYjM4Zi4uZGE3NzU4ZThlOWU3NTA4NjU2ZTc2
YjUzNmRkMDdhMzhjMTcyZTUwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0
X2FyZ2NvbXBsZXRlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hcmdjb21wbGV0
ZS5weQpAQCAtMSw2ICsxLDExIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwog
aW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMKKwogaW1wb3J0IHB5dGVzdAogCiAjIHRlc3Qg
Zm9yIF9hcmdjb21wbGV0ZSBidXQgbm90IHNwZWNpZmljIGZvciBhbnkgYXBwbGljYXRpb24KQEAg
LTExLDcgKzE2LDcgQEAgZGVmIGVxdWFsX3dpdGhfYmFzaChwcmVmaXgsIGZmYywgZmMsIG91dD1O
b25lKToKICAgICByZXNfYmFzaCA9IHNldChmYyhwcmVmaXgpKQogICAgIHJldHZhbCA9IHNldChy
ZXMpID09IHJlc19iYXNoCiAgICAgaWYgb3V0OgotICAgICAgICBvdXQud3JpdGUoImVxdWFsX3dp
dGhfYmFzaCAlcyAlc1xuIiAlIChyZXR2YWwsIHJlcykpCisgICAgICAgIG91dC53cml0ZSgiZXF1
YWxfd2l0aF9iYXNoKHt9KSB7fSB7fVxuIi5mb3JtYXQocHJlZml4LCByZXR2YWwsIHJlcykpCiAg
ICAgICAgIGlmIG5vdCByZXR2YWw6CiAgICAgICAgICAgICBvdXQud3JpdGUoIiBweXRob24gLSBi
YXNoOiAlc1xuIiAlIChzZXQocmVzKSAtIHJlc19iYXNoKSkKICAgICAgICAgICAgIG91dC53cml0
ZSgiIGJhc2ggLSBweXRob246ICVzXG4iICUgKHJlc19iYXNoIC0gc2V0KHJlcykpKQpAQCAtODYs
MTUgKzkxLDIwIEBAIGNsYXNzIEZpbGVzQ29tcGxldGVyKG9iamVjdCk6CiAKIAogY2xhc3MgVGVz
dEFyZ0NvbXBsZXRlKG9iamVjdCk6Ci0KICAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJzeXMucGxh
dGZvcm0gaW4gKCd3aW4zMicsICdkYXJ3aW4nKSIpCi0gICAgZGVmIHRlc3RfY29tcGFyZV93aXRo
X2NvbXBnZW4oc2VsZik6CisgICAgZGVmIHRlc3RfY29tcGFyZV93aXRoX2NvbXBnZW4oc2VsZiwg
dG1wZGlyKToKICAgICAgICAgZnJvbSBfcHl0ZXN0Ll9hcmdjb21wbGV0ZSBpbXBvcnQgRmFzdEZp
bGVzQ29tcGxldGVyCiAKICAgICAgICAgZmZjID0gRmFzdEZpbGVzQ29tcGxldGVyKCkKICAgICAg
ICAgZmMgPSBGaWxlc0NvbXBsZXRlcigpCi0gICAgICAgIGZvciB4IGluIFsiLyIsICIvZCIsICIv
ZGF0YSIsICJxcXEiLCAiIl06Ci0gICAgICAgICAgICBhc3NlcnQgZXF1YWxfd2l0aF9iYXNoKHgs
IGZmYywgZmMsIG91dD1zeXMuc3Rkb3V0KQorCisgICAgICAgIHdpdGggdG1wZGlyLmFzX2N3ZCgp
OgorICAgICAgICAgICAgYXNzZXJ0IGVxdWFsX3dpdGhfYmFzaCgiIiwgZmZjLCBmYywgb3V0PXN5
cy5zdGRvdXQpCisKKyAgICAgICAgICAgIHRtcGRpci5lbnN1cmUoImRhdGEiKQorCisgICAgICAg
ICAgICBmb3IgeCBpbiBbImQiLCAiZGF0YSIsICJkb2Vzbm90ZXhpc3QiLCAiIl06CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IGVxdWFsX3dpdGhfYmFzaCh4LCBmZmMsIGZjLCBvdXQ9c3lzLnN0ZG91
dCkKIAogICAgIEBweXRlc3QubWFyay5za2lwaWYoInN5cy5wbGF0Zm9ybSBpbiAoJ3dpbjMyJywg
J2RhcndpbicpIikKICAgICBkZWYgdGVzdF9yZW1vdmVfZGlyX3ByZWZpeChzZWxmKToKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRpb24ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3RfYXNzZXJ0aW9uLnB5CmluZGV4IDM5M2NmODE3YzdlOWIzYjEzOWZiMjdj
MDVhZTQ3ZDlhODQ5NGFkNDEuLjIyNTM2MmU2NGVmMDkzYThhNzMwYTBjMjQ4NjA2ZDc4YWE4ZDlk
ODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRpb24ucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Fzc2VydGlvbi5weQpAQCAtMSwyMCArMSwyNSBA
QAogIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBzeXMKIGltcG9ydCB0
ZXh0d3JhcAogCitpbXBvcnQgYXR0cgoraW1wb3J0IHNpeAorCiBpbXBvcnQgX3B5dGVzdC5hc3Nl
cnRpb24gYXMgcGx1Z2luCi1pbXBvcnQgcHkKIGltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5h
c3NlcnRpb24gaW1wb3J0IHV0aWwKK2Zyb20gX3B5dGVzdCBpbXBvcnQgb3V0Y29tZXMKIGZyb20g
X3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHRydW5jYXRlCitmcm9tIF9weXRlc3QuYXNzZXJ0aW9u
IGltcG9ydCB1dGlsCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBBVFRSU19FUV9GSUVMRAog
CiBQWTMgPSBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKQogCiAKLUBweXRlc3QuZml4dHVyZQog
ZGVmIG1vY2tfY29uZmlnKCk6Ci0KICAgICBjbGFzcyBDb25maWcob2JqZWN0KToKICAgICAgICAg
dmVyYm9zZSA9IEZhbHNlCiAKQEAgLTI3LDcgKzMyLDYgQEAgZGVmIG1vY2tfY29uZmlnKCk6CiAK
IAogY2xhc3MgVGVzdEltcG9ydEhvb2tJbnN0YWxsYXRpb24ob2JqZWN0KToKLQogICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiaW5pdGlhbF9jb25mdGVzdCIsIFtUcnVlLCBGYWxzZV0pCiAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtb2RlIiwgWyJwbGFpbiIsICJyZXdyaXRlIl0p
CiAgICAgZGVmIHRlc3RfY29uZnRlc3RfYXNzZXJ0aW9uX3Jld3JpdGUoc2VsZiwgdGVzdGRpciwg
aW5pdGlhbF9jb25mdGVzdCwgbW9kZSk6CkBAIC0xMzQsMTIgKzEzOCwxMiBAQCBjbGFzcyBUZXN0
SW1wb3J0SG9va0luc3RhbGxhdGlvbihvYmplY3QpOgogICAgIGRlZiB0ZXN0X3B5dGVzdF9wbHVn
aW5zX3Jld3JpdGVfbW9kdWxlX25hbWVzX2NvcnJlY3RseShzZWxmLCB0ZXN0ZGlyKToKICAgICAg
ICAgIiIiVGVzdCB0aGF0IHdlIG1hdGNoIGZpbGVzIGNvcnJlY3RseSB3aGVuIHRoZXkgYXJlIG1h
cmtlZCBmb3IgcmV3cml0aW5nICgjMjkzOSkuIiIiCiAgICAgICAgIGNvbnRlbnRzID0gewotICAg
ICAgICAgICAgImNvbmZ0ZXN0LnB5IjogIiIiCisgICAgICAgICAgICAiY29uZnRlc3QucHkiOiAi
IiJcCiAgICAgICAgICAgICAgICAgcHl0ZXN0X3BsdWdpbnMgPSAiaGFtIgogICAgICAgICAgICAg
IiIiLAogICAgICAgICAgICAgImhhbS5weSI6ICIiLAogICAgICAgICAgICAgImhhbXN0ZXIucHki
OiAiIiwKLSAgICAgICAgICAgICJ0ZXN0X2Zvby5weSI6ICIiIgorICAgICAgICAgICAgInRlc3Rf
Zm9vLnB5IjogIiIiXAogICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhweXRlc3Rjb25maWcp
OgogICAgICAgICAgICAgICAgICAgICBhc3NlcnQgcHl0ZXN0Y29uZmlnLnBsdWdpbm1hbmFnZXIu
cmV3cml0ZV9ob29rLmZpbmRfbW9kdWxlKCdoYW0nKSBpcyBub3QgTm9uZQogICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgcHl0ZXN0Y29uZmlnLnBsdWdpbm1hbmFnZXIucmV3cml0ZV9ob29rLmZp
bmRfbW9kdWxlKCdoYW1zdGVyJykgaXMgTm9uZQpAQCAtMTUwLDEzICsxNTQsMTMgQEAgY2xhc3Mg
VGVzdEltcG9ydEhvb2tJbnN0YWxsYXRpb24ob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgPT0gMAogCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtb2RlIiwgWyJwbGFp
biIsICJyZXdyaXRlIl0pCi0gICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwbHVnaW5fc3Rh
dGUiLCBbImRldmVsb3BtZW50IiwgImluc3RhbGxlZCJdKQotICAgIGRlZiB0ZXN0X2luc3RhbGxl
ZF9wbHVnaW5fcmV3cml0ZShzZWxmLCB0ZXN0ZGlyLCBtb2RlLCBwbHVnaW5fc3RhdGUpOgorICAg
IGRlZiB0ZXN0X2luc3RhbGxlZF9wbHVnaW5fcmV3cml0ZShzZWxmLCB0ZXN0ZGlyLCBtb2RlLCBt
b25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLmRlbGVudigiUFlURVNUX0RJU0FCTEVf
UExVR0lOX0FVVE9MT0FEIiwgcmFpc2luZz1GYWxzZSkKICAgICAgICAgIyBNYWtlIHN1cmUgdGhl
IGhvb2sgaXMgaW5zdGFsbGVkIGVhcmx5IGVub3VnaCBzbyB0aGF0IHBsdWdpbnMKICAgICAgICAg
IyBpbnN0YWxsZWQgdmlhIHNldHVwdG9vbHMgYXJlIHJld3JpdHRlbi4KICAgICAgICAgdGVzdGRp
ci50bXBkaXIuam9pbigiaGFtcGtnIikuZW5zdXJlKGRpcj0xKQogICAgICAgICBjb250ZW50cyA9
IHsKLSAgICAgICAgICAgICJoYW1wa2cvX19pbml0X18ucHkiOiAiIiIKKyAgICAgICAgICAgICJo
YW1wa2cvX19pbml0X18ucHkiOiAiIiJcCiAgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAog
CiAgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCkBAIC0xNjUsNyArMTY5LDcgQEAgY2xh
c3MgVGVzdEltcG9ydEhvb2tJbnN0YWxsYXRpb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCB2YWx1ZXMucG9wKDApID09IHZhbHVlCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBjaGVjawogICAgICAgICAgICAgIiIiLAotICAgICAgICAgICAgInNwYW1wbHVnaW4u
cHkiOiAiIiIKKyAgICAgICAgICAgICJzcGFtcGx1Z2luLnB5IjogIiIiXAogICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAogICAgICAgICAgICAgZnJvbSBoYW1wa2cgaW1wb3J0IGNoZWNrX2ZpcnN0
MgogCkBAIC0xNzUsNDYgKzE3OSwzMiBAQCBjbGFzcyBUZXN0SW1wb3J0SG9va0luc3RhbGxhdGlv
bihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzLnBvcCgwKSA9PSB2
YWx1ZQogICAgICAgICAgICAgICAgIHJldHVybiBjaGVjawogICAgICAgICAgICAgIiIiLAotICAg
ICAgICAgICAgIm1haW53cmFwcGVyLnB5IjogIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
LCBwa2dfcmVzb3VyY2VzCi0KLSAgICAgICAgICAgIHBsdWdpbl9zdGF0ZSA9ICJ7cGx1Z2luX3N0
YXRlfSIKLQotICAgICAgICAgICAgY2xhc3MgRHVtbXlEaXN0SW5mbyhvYmplY3QpOgotICAgICAg
ICAgICAgICAgIHByb2plY3RfbmFtZSA9ICdzcGFtJwotICAgICAgICAgICAgICAgIHZlcnNpb24g
PSAnMS4wJwotCi0gICAgICAgICAgICAgICAgZGVmIF9nZXRfbWV0YWRhdGEoc2VsZiwgbmFtZSk6
Ci0gICAgICAgICAgICAgICAgICAgICMgJ1JFQ09SRCcgbWV0YS1kYXRhIG9ubHkgYXZhaWxhYmxl
IGluIGluc3RhbGxlZCBwbHVnaW5zCi0gICAgICAgICAgICAgICAgICAgIGlmIG5hbWUgPT0gJ1JF
Q09SRCcgYW5kIHBsdWdpbl9zdGF0ZSA9PSAiaW5zdGFsbGVkIjoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBbJ3NwYW1wbHVnaW4ucHksc2hhMjU2PWFiYywxMjMnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnaGFtcGtnL19faW5pdF9fLnB5LHNoYTI1Nj1hYmMsMTIz
J10KLSAgICAgICAgICAgICAgICAgICAgIyAnU09VUkNFUy50eHQnIG1ldGEtZGF0YSBvbmx5IGF2
YWlsYWJsZSBmb3IgcGx1Z2lucyBpbiBkZXZlbG9wbWVudCBtb2RlCi0gICAgICAgICAgICAgICAg
ICAgIGVsaWYgbmFtZSA9PSAnU09VUkNFUy50eHQnIGFuZCBwbHVnaW5fc3RhdGUgPT0gImRldmVs
b3BtZW50IjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbJ3NwYW1wbHVnaW4ucHkn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFtcGtnL19faW5pdF9fLnB5J10K
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgICAgICAibWFpbndyYXBwZXIu
cHkiOiAiIiJcCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBmcm9tIF9w
eXRlc3QuY29tcGF0IGltcG9ydCBpbXBvcnRsaWJfbWV0YWRhdGEKIAogICAgICAgICAgICAgY2xh
c3MgRHVtbXlFbnRyeVBvaW50KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgbmFtZSA9ICdzcGFt
JwogICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1lID0gJ3NwYW0ucHknCi0gICAgICAgICAgICAg
ICAgYXR0cnMgPSAoKQotICAgICAgICAgICAgICAgIGV4dHJhcyA9IE5vbmUKLSAgICAgICAgICAg
ICAgICBkaXN0ID0gRHVtbXlEaXN0SW5mbygpCisgICAgICAgICAgICAgICAgZ3JvdXAgPSAncHl0
ZXN0MTEnCiAKLSAgICAgICAgICAgICAgICBkZWYgbG9hZChzZWxmLCByZXF1aXJlPVRydWUsICph
cmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgZGVmIGxvYWQoc2VsZik6CiAgICAgICAg
ICAgICAgICAgICAgIGltcG9ydCBzcGFtcGx1Z2luCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBzcGFtcGx1Z2luCiAKLSAgICAgICAgICAgIGRlZiBpdGVyX2VudHJ5X3BvaW50cyhuYW1lKToK
LSAgICAgICAgICAgICAgICB5aWVsZCBEdW1teUVudHJ5UG9pbnQoKQorICAgICAgICAgICAgY2xh
c3MgRHVtbXlEaXN0SW5mbyhvYmplY3QpOgorICAgICAgICAgICAgICAgIHZlcnNpb24gPSAnMS4w
JworICAgICAgICAgICAgICAgIGZpbGVzID0gKCdzcGFtcGx1Z2luLnB5JywgJ2hhbXBrZy9fX2lu
aXRfXy5weScpCisgICAgICAgICAgICAgICAgZW50cnlfcG9pbnRzID0gKER1bW15RW50cnlQb2lu
dCgpLCkKKyAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IHsnbmFtZSc6ICdmb28nfQorCisgICAg
ICAgICAgICBkZWYgZGlzdHJpYnV0aW9ucygpOgorICAgICAgICAgICAgICAgIHJldHVybiAoRHVt
bXlEaXN0SW5mbygpLCkKIAotICAgICAgICAgICAgcGtnX3Jlc291cmNlcy5pdGVyX2VudHJ5X3Bv
aW50cyA9IGl0ZXJfZW50cnlfcG9pbnRzCisgICAgICAgICAgICBpbXBvcnRsaWJfbWV0YWRhdGEu
ZGlzdHJpYnV0aW9ucyA9IGRpc3RyaWJ1dGlvbnMKICAgICAgICAgICAgIHB5dGVzdC5tYWluKCkK
LSAgICAgICAgICAgICIiIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgcGx1Z2luX3N0YXRlPXBs
dWdpbl9zdGF0ZQotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICJ0ZXN0X2Zvby5weSI6ICIi
IgorICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgInRlc3RfZm9vLnB5IjogIiIiXAogICAg
ICAgICAgICAgZGVmIHRlc3QoY2hlY2tfZmlyc3QpOgogICAgICAgICAgICAgICAgIGNoZWNrX2Zp
cnN0KFsxMCwgMzBdLCAzMCkKIApAQCAtMjg4LDcgKzI3OCw2IEBAIGNsYXNzIFRlc3RJbXBvcnRI
b29rSW5zdGFsbGF0aW9uKG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdEJpblJlcHJJbnRlZ3JhdGlv
bihvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZV9jYWxs
ZWQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAogICAgICAg
ICAgICAgIiIiCkBAIC0zMjEsNyArMzEwLDYgQEAgZGVmIGNhbGxlcXVhbChsZWZ0LCByaWdodCwg
dmVyYm9zZT1GYWxzZSk6CiAKIAogY2xhc3MgVGVzdEFzc2VydF9yZXByY29tcGFyZShvYmplY3Qp
OgotCiAgICAgZGVmIHRlc3RfZGlmZmVyZW50X3R5cGVzKHNlbGYpOgogICAgICAgICBhc3NlcnQg
Y2FsbGVxdWFsKFswLCAxXSwgImZvbyIpIGlzIE5vbmUKIApAQCAtNDQ0LDYgKzQzMiw1MCBAQCBj
bGFzcyBUZXN0QXNzZXJ0X3JlcHJjb21wYXJlKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCAiT21p
dHRpbmciIG5vdCBpbiBsaW5lc1sxXQogICAgICAgICBhc3NlcnQgbGluZXNbMl0gPT0gInsnYic6
IDF9IgogCisgICAgZGVmIHRlc3RfZGljdF9kaWZmZXJlbnRfaXRlbXMoc2VsZik6CisgICAgICAg
IGxpbmVzID0gY2FsbGVxdWFsKHsiYSI6IDB9LCB7ImIiOiAxLCAiYyI6IDJ9LCB2ZXJib3NlPTIp
CisgICAgICAgIGFzc2VydCBsaW5lcyA9PSBbCisgICAgICAgICAgICAieydhJzogMH0gPT0geydi
JzogMSwgJ2MnOiAyfSIsCisgICAgICAgICAgICAiTGVmdCBjb250YWlucyAxIG1vcmUgaXRlbToi
LAorICAgICAgICAgICAgInsnYSc6IDB9IiwKKyAgICAgICAgICAgICJSaWdodCBjb250YWlucyAy
IG1vcmUgaXRlbXM6IiwKKyAgICAgICAgICAgICJ7J2InOiAxLCAnYyc6IDJ9IiwKKyAgICAgICAg
ICAgICJGdWxsIGRpZmY6IiwKKyAgICAgICAgICAgICItIHsnYSc6IDB9IiwKKyAgICAgICAgICAg
ICIrIHsnYic6IDEsICdjJzogMn0iLAorICAgICAgICBdCisgICAgICAgIGxpbmVzID0gY2FsbGVx
dWFsKHsiYiI6IDEsICJjIjogMn0sIHsiYSI6IDB9LCB2ZXJib3NlPTIpCisgICAgICAgIGFzc2Vy
dCBsaW5lcyA9PSBbCisgICAgICAgICAgICAieydiJzogMSwgJ2MnOiAyfSA9PSB7J2EnOiAwfSIs
CisgICAgICAgICAgICAiTGVmdCBjb250YWlucyAyIG1vcmUgaXRlbXM6IiwKKyAgICAgICAgICAg
ICJ7J2InOiAxLCAnYyc6IDJ9IiwKKyAgICAgICAgICAgICJSaWdodCBjb250YWlucyAxIG1vcmUg
aXRlbToiLAorICAgICAgICAgICAgInsnYSc6IDB9IiwKKyAgICAgICAgICAgICJGdWxsIGRpZmY6
IiwKKyAgICAgICAgICAgICItIHsnYic6IDEsICdjJzogMn0iLAorICAgICAgICAgICAgIisgeydh
JzogMH0iLAorICAgICAgICBdCisKKyAgICBkZWYgdGVzdF9zZXF1ZW5jZV9kaWZmZXJlbnRfaXRl
bXMoc2VsZik6CisgICAgICAgIGxpbmVzID0gY2FsbGVxdWFsKCgxLCAyKSwgKDMsIDQsIDUpLCB2
ZXJib3NlPTIpCisgICAgICAgIGFzc2VydCBsaW5lcyA9PSBbCisgICAgICAgICAgICAiKDEsIDIp
ID09ICgzLCA0LCA1KSIsCisgICAgICAgICAgICAiQXQgaW5kZXggMCBkaWZmOiAxICE9IDMiLAor
ICAgICAgICAgICAgIlJpZ2h0IGNvbnRhaW5zIG9uZSBtb3JlIGl0ZW06IDUiLAorICAgICAgICAg
ICAgIkZ1bGwgZGlmZjoiLAorICAgICAgICAgICAgIi0gKDEsIDIpIiwKKyAgICAgICAgICAgICIr
ICgzLCA0LCA1KSIsCisgICAgICAgIF0KKyAgICAgICAgbGluZXMgPSBjYWxsZXF1YWwoKDEsIDIs
IDMpLCAoNCwpLCB2ZXJib3NlPTIpCisgICAgICAgIGFzc2VydCBsaW5lcyA9PSBbCisgICAgICAg
ICAgICAiKDEsIDIsIDMpID09ICg0LCkiLAorICAgICAgICAgICAgIkF0IGluZGV4IDAgZGlmZjog
MSAhPSA0IiwKKyAgICAgICAgICAgICJMZWZ0IGNvbnRhaW5zIDIgbW9yZSBpdGVtcywgZmlyc3Qg
ZXh0cmEgaXRlbTogMiIsCisgICAgICAgICAgICAiRnVsbCBkaWZmOiIsCisgICAgICAgICAgICAi
LSAoMSwgMiwgMykiLAorICAgICAgICAgICAgIisgKDQsKSIsCisgICAgICAgIF0KKwogICAgIGRl
ZiB0ZXN0X3NldChzZWxmKToKICAgICAgICAgZXhwbCA9IGNhbGxlcXVhbCh7MCwgMX0sIHswLCAy
fSkKICAgICAgICAgYXNzZXJ0IGxlbihleHBsKSA+IDEKQEAgLTQ1MywxMyArNDg1LDE1IEBAIGNs
YXNzIFRlc3RBc3NlcnRfcmVwcmNvbXBhcmUob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IGxlbihl
eHBsKSA+IDEKIAogICAgIGRlZiB0ZXN0X1NlcXVlbmNlKHNlbGYpOgotICAgICAgICBjb2wgPSBw
eS5idWlsdGluLl90cnlpbXBvcnQoImNvbGxlY3Rpb25zLmFiYyIsICJjb2xsZWN0aW9ucyIsICJz
eXMiKQotICAgICAgICBpZiBub3QgaGFzYXR0cihjb2wsICJNdXRhYmxlU2VxdWVuY2UiKToKKyAg
ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMyk6CisgICAgICAgICAgICBpbXBvcnQg
Y29sbGVjdGlvbnMuYWJjIGFzIGNvbGxlY3Rpb25zX2FiYworICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgaW1wb3J0IGNvbGxlY3Rpb25zIGFzIGNvbGxlY3Rpb25zX2FiYworICAgICAgICBpZiBu
b3QgaGFzYXR0cihjb2xsZWN0aW9uc19hYmMsICJNdXRhYmxlU2VxdWVuY2UiKToKICAgICAgICAg
ICAgIHB5dGVzdC5za2lwKCJjYW5ub3QgaW1wb3J0IE11dGFibGVTZXF1ZW5jZSIpCi0gICAgICAg
IE11dGFibGVTZXF1ZW5jZSA9IGNvbC5NdXRhYmxlU2VxdWVuY2UKKyAgICAgICAgTXV0YWJsZVNl
cXVlbmNlID0gY29sbGVjdGlvbnNfYWJjLk11dGFibGVTZXF1ZW5jZQogCiAgICAgICAgIGNsYXNz
IFRlc3RTZXF1ZW5jZShNdXRhYmxlU2VxdWVuY2UpOiAgIyB3b3JrcyB3aXRoIGEgU2VxdWVuY2Ug
c3ViY2xhc3MKLQogICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZXJhYmxlKToKICAg
ICAgICAgICAgICAgICBzZWxmLmVsZW1lbnRzID0gbGlzdChpdGVyYWJsZSkKIApAQCAtNDg3LDEw
ICs1MjEsMzIgQEAgY2xhc3MgVGVzdEFzc2VydF9yZXByY29tcGFyZShvYmplY3QpOgogICAgICAg
ICBleHBsID0gY2FsbGVxdWFsKFsoMSwgMildLCBbXSkKICAgICAgICAgYXNzZXJ0IGxlbihleHBs
KSA+IDEKIAotICAgIGRlZiB0ZXN0X2xpc3RfYmFkX3JlcHIoc2VsZik6CisgICAgZGVmIHRlc3Rf
cmVwcl92ZXJib3NlKHNlbGYpOgorICAgICAgICBjbGFzcyBOdW1zOgorICAgICAgICAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG51bXMpOgorICAgICAgICAgICAgICAgIHNlbGYubnVtcyA9IG51bXMK
IAotICAgICAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19yZXByX18oc2Vs
Zik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0cihzZWxmLm51bXMpCisKKyAgICAgICAgbGlz
dF94ID0gbGlzdChyYW5nZSg1MDAwKSkKKyAgICAgICAgbGlzdF95ID0gbGlzdChyYW5nZSg1MDAw
KSkKKyAgICAgICAgbGlzdF95W2xlbihsaXN0X3kpIC8vIDJdID0gMworICAgICAgICBudW1zX3gg
PSBOdW1zKGxpc3RfeCkKKyAgICAgICAgbnVtc195ID0gTnVtcyhsaXN0X3kpCisKKyAgICAgICAg
YXNzZXJ0IGNhbGxlcXVhbChudW1zX3gsIG51bXNfeSkgaXMgTm9uZQorCisgICAgICAgIGV4cGwg
PSBjYWxsZXF1YWwobnVtc194LCBudW1zX3ksIHZlcmJvc2U9MSkKKyAgICAgICAgYXNzZXJ0ICIt
IiArIHJlcHIobnVtc194KSBpbiBleHBsCisgICAgICAgIGFzc2VydCAiKyIgKyByZXByKG51bXNf
eSkgaW4gZXhwbAorCisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwobnVtc194LCBudW1zX3ksIHZl
cmJvc2U9MikKKyAgICAgICAgYXNzZXJ0ICItIiArIHJlcHIobnVtc194KSBpbiBleHBsCisgICAg
ICAgIGFzc2VydCAiKyIgKyByZXByKG51bXNfeSkgaW4gZXhwbAogCisgICAgZGVmIHRlc3RfbGlz
dF9iYWRfcmVwcihzZWxmKToKKyAgICAgICAgY2xhc3MgQShvYmplY3QpOgogICAgICAgICAgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIp
CiAKQEAgLTUwNiw3ICs1NjIsNiBAQCBjbGFzcyBUZXN0QXNzZXJ0X3JlcHJjb21wYXJlKG9iamVj
dCk6CiAgICAgICAgICIiIgogCiAgICAgICAgIGNsYXNzIEEoc3RyKToKLQogICAgICAgICAgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICAgICAgICAgIHJldHVybiAiIgogCkBAIC01MTgs
MTIgKzU3MywxMiBAQCBjbGFzcyBUZXN0QXNzZXJ0X3JlcHJjb21wYXJlKG9iamVjdCk6CiAgICAg
ICAgIGFzc2VydCAicmFpc2VkIGluIHJlcHIoKSIgbm90IGluIGV4cGwKIAogICAgIGRlZiB0ZXN0
X3VuaWNvZGUoc2VsZik6Ci0gICAgICAgIGxlZnQgPSBweS5idWlsdGluLl90b3RleHQoIsKj4oKs
IiwgInV0Zi04IikKLSAgICAgICAgcmlnaHQgPSBweS5idWlsdGluLl90b3RleHQoIsKjIiwgInV0
Zi04IikKKyAgICAgICAgbGVmdCA9IHUiwqPigqwiCisgICAgICAgIHJpZ2h0ID0gdSLCoyIKICAg
ICAgICAgZXhwbCA9IGNhbGxlcXVhbChsZWZ0LCByaWdodCkKLSAgICAgICAgYXNzZXJ0IGV4cGxb
MF0gPT0gcHkuYnVpbHRpbi5fdG90ZXh0KCInwqPigqwnID09ICfCoyciLCAidXRmLTgiKQotICAg
ICAgICBhc3NlcnQgZXhwbFsxXSA9PSBweS5idWlsdGluLl90b3RleHQoIi0gwqPigqwiLCAidXRm
LTgiKQotICAgICAgICBhc3NlcnQgZXhwbFsyXSA9PSBweS5idWlsdGluLl90b3RleHQoIisgwqMi
LCAidXRmLTgiKQorICAgICAgICBhc3NlcnQgZXhwbFswXSA9PSB1IifCo+KCrCcgPT0gJ8KjJyIK
KyAgICAgICAgYXNzZXJ0IGV4cGxbMV0gPT0gdSItIMKj4oKsIgorICAgICAgICBhc3NlcnQgZXhw
bFsyXSA9PSB1IisgwqMiCiAKICAgICBkZWYgdGVzdF9ub25hc2NpaV90ZXh0KHNlbGYpOgogICAg
ICAgICAiIiIKQEAgLTUzMiwzMiArNTg3LDEzOSBAQCBjbGFzcyBUZXN0QXNzZXJ0X3JlcHJjb21w
YXJlKG9iamVjdCk6CiAgICAgICAgICIiIgogCiAgICAgICAgIGNsYXNzIEEoc3RyKToKLQogICAg
ICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICAgICAgICAgIHJldHVybiAiXHhm
ZiIKIAogICAgICAgICBleHBsID0gY2FsbGVxdWFsKEEoKSwgIjEiKQotICAgICAgICBhc3NlcnQg
ZXhwbAorICAgICAgICBpZiBQWTM6CisgICAgICAgICAgICBhc3NlcnQgZXhwbCA9PSBbIsO/ID09
ICcxJyIsICIrIDEiXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IGV4cGwgPT0g
W3UiXHVmZmZkID09ICcxJyIsIHUiKyAxIl0KIAogICAgIGRlZiB0ZXN0X2Zvcm1hdF9ub25hc2Np
aV9leHBsYW5hdGlvbihzZWxmKToKICAgICAgICAgYXNzZXJ0IHV0aWwuZm9ybWF0X2V4cGxhbmF0
aW9uKCLOuyIpCiAKICAgICBkZWYgdGVzdF9tb2ppYmFrZShzZWxmKToKICAgICAgICAgIyBpc3N1
ZSA0MjkKLSAgICAgICAgbGVmdCA9ICJlIgotICAgICAgICByaWdodCA9ICJceGMzXHhhOSIKLSAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2UobGVmdCwgYnl0ZXMpOgotICAgICAgICAgICAgbGVmdCA9
IGJ5dGVzKGxlZnQsICJ1dGYtOCIpCi0gICAgICAgICAgICByaWdodCA9IGJ5dGVzKHJpZ2h0LCAi
dXRmLTgiKQorICAgICAgICBsZWZ0ID0gYiJlIgorICAgICAgICByaWdodCA9IGIiXHhjM1x4YTki
CiAgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwobGVmdCwgcmlnaHQpCiAgICAgICAgIGZvciBsaW5l
IGluIGV4cGw6Ci0gICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lLCBweS5idWlsdGlu
LnRleHQpCi0gICAgICAgIG1zZyA9IHB5LmJ1aWx0aW4uX3RvdGV4dCgiXG4iKS5qb2luKGV4cGwp
CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lLCBzaXgudGV4dF90eXBlKQorICAg
ICAgICBtc2cgPSB1IlxuIi5qb2luKGV4cGwpCiAgICAgICAgIGFzc2VydCBtc2cKIAogCi1jbGFz
cyBUZXN0Rm9ybWF0RXhwbGFuYXRpb24ob2JqZWN0KToKK2NsYXNzIFRlc3RBc3NlcnRfcmVwcmNv
bXBhcmVfZGF0YWNsYXNzKG9iamVjdCk6CisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihzeXMudmVy
c2lvbl9pbmZvIDwgKDMsIDcpLCByZWFzb249IkRhdGFjbGFzc2VzIGluIFB5dGhvbjMuNysiKQor
ICAgIGRlZiB0ZXN0X2RhdGFjbGFzc2VzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVz
dGRpci5jb3B5X2V4YW1wbGUoImRhdGFjbGFzc2VzL3Rlc3RfY29tcGFyZV9kYXRhY2xhc3Nlcy5w
eSIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIHJlc3Vs
dC5hc3NlcnRfb3V0Y29tZXMoZmFpbGVkPTEsIHBhc3NlZD0wKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgIipPbWl0
dGluZyAxIGlkZW50aWNhbCBpdGVtcywgdXNlIC12diB0byBzaG93KiIsCisgICAgICAgICAgICAg
ICAgIipEaWZmZXJpbmcgYXR0cmlidXRlczoqIiwKKyAgICAgICAgICAgICAgICAiKmZpZWxkX2I6
ICdiJyAhPSAnYycqIiwKKyAgICAgICAgICAgIF0KKyAgICAgICAgKQorCisgICAgQHB5dGVzdC5t
YXJrLnNraXBpZihzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDcpLCByZWFzb249IkRhdGFjbGFzc2Vz
IGluIFB5dGhvbjMuNysiKQorICAgIGRlZiB0ZXN0X2RhdGFjbGFzc2VzX3ZlcmJvc2Uoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgiZGF0YWNsYXNzZXMv
dGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzX3ZlcmJvc2UucHkiKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLXZ2IikKKyAgICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21l
cyhmYWlsZWQ9MSwgcGFzc2VkPTApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiKk1hdGNoaW5nIGF0dHJpYnV0ZXM6
KiIsCisgICAgICAgICAgICAgICAgIipbJ2ZpZWxkX2EnXSoiLAorICAgICAgICAgICAgICAgICIq
RGlmZmVyaW5nIGF0dHJpYnV0ZXM6KiIsCisgICAgICAgICAgICAgICAgIipmaWVsZF9iOiAnYicg
IT0gJ2MnKiIsCisgICAgICAgICAgICBdCisgICAgICAgICkKKworICAgIEBweXRlc3QubWFyay5z
a2lwaWYoc3lzLnZlcnNpb25faW5mbyA8ICgzLCA3KSwgcmVhc29uPSJEYXRhY2xhc3NlcyBpbiBQ
eXRob24zLjcrIikKKyAgICBkZWYgdGVzdF9kYXRhY2xhc3Nlc193aXRoX2F0dHJpYnV0ZV9jb21w
YXJpc29uX29mZihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIuY29weV9leGFt
cGxlKAorICAgICAgICAgICAgImRhdGFjbGFzc2VzL3Rlc3RfY29tcGFyZV9kYXRhY2xhc3Nlc19m
aWVsZF9jb21wYXJpc29uX29mZi5weSIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdChwLCAiLXZ2IikKKyAgICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhm
YWlsZWQ9MCwgcGFzc2VkPTEpCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9u
X2luZm8gPCAoMywgNyksIHJlYXNvbj0iRGF0YWNsYXNzZXMgaW4gUHl0aG9uMy43KyIpCisgICAg
ZGVmIHRlc3RfY29tcGFyaW5nX3R3b19kaWZmZXJlbnRfZGF0YV9jbGFzc2VzKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBwID0gdGVzdGRpci5jb3B5X2V4YW1wbGUoCisgICAgICAgICAgICAiZGF0
YWNsYXNzZXMvdGVzdF9jb21wYXJlX3R3b19kaWZmZXJlbnRfZGF0YWNsYXNzZXMucHkiCisgICAg
ICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgIi12diIpCisgICAg
ICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMoZmFpbGVkPTAsIHBhc3NlZD0xKQorCisKK2NsYXNz
IFRlc3RBc3NlcnRfcmVwcmNvbXBhcmVfYXR0cnNjbGFzcyhvYmplY3QpOgorICAgIGRlZiB0ZXN0
X2F0dHJzKHNlbGYpOgorICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIFNpbXBsZURhdGFP
YmplY3Qob2JqZWN0KToKKyAgICAgICAgICAgIGZpZWxkX2EgPSBhdHRyLmliKCkKKyAgICAgICAg
ICAgIGZpZWxkX2IgPSBhdHRyLmliKCkKKworICAgICAgICBsZWZ0ID0gU2ltcGxlRGF0YU9iamVj
dCgxLCAiYiIpCisgICAgICAgIHJpZ2h0ID0gU2ltcGxlRGF0YU9iamVjdCgxLCAiYyIpCisKKyAg
ICAgICAgbGluZXMgPSBjYWxsZXF1YWwobGVmdCwgcmlnaHQpCisgICAgICAgIGFzc2VydCBsaW5l
c1sxXS5zdGFydHN3aXRoKCJPbWl0dGluZyAxIGlkZW50aWNhbCBpdGVtIikKKyAgICAgICAgYXNz
ZXJ0ICJNYXRjaGluZyBhdHRyaWJ1dGVzIiBub3QgaW4gbGluZXMKKyAgICAgICAgZm9yIGxpbmUg
aW4gbGluZXNbMTpdOgorICAgICAgICAgICAgYXNzZXJ0ICJmaWVsZF9hIiBub3QgaW4gbGluZQor
CisgICAgZGVmIHRlc3RfYXR0cnNfdmVyYm9zZShzZWxmKToKKyAgICAgICAgQGF0dHIucworICAg
ICAgICBjbGFzcyBTaW1wbGVEYXRhT2JqZWN0KG9iamVjdCk6CisgICAgICAgICAgICBmaWVsZF9h
ID0gYXR0ci5pYigpCisgICAgICAgICAgICBmaWVsZF9iID0gYXR0ci5pYigpCisKKyAgICAgICAg
bGVmdCA9IFNpbXBsZURhdGFPYmplY3QoMSwgImIiKQorICAgICAgICByaWdodCA9IFNpbXBsZURh
dGFPYmplY3QoMSwgImMiKQorCisgICAgICAgIGxpbmVzID0gY2FsbGVxdWFsKGxlZnQsIHJpZ2h0
LCB2ZXJib3NlPTIpCisgICAgICAgIGFzc2VydCBsaW5lc1sxXS5zdGFydHN3aXRoKCJNYXRjaGlu
ZyBhdHRyaWJ1dGVzOiIpCisgICAgICAgIGFzc2VydCAiT21pdHRpbmciIG5vdCBpbiBsaW5lc1sx
XQorICAgICAgICBhc3NlcnQgbGluZXNbMl0gPT0gIlsnZmllbGRfYSddIgorCisgICAgZGVmIHRl
c3RfYXR0cnNfd2l0aF9hdHRyaWJ1dGVfY29tcGFyaXNvbl9vZmYoc2VsZik6CisgICAgICAgIEBh
dHRyLnMKKyAgICAgICAgY2xhc3MgU2ltcGxlRGF0YU9iamVjdChvYmplY3QpOgorICAgICAgICAg
ICAgZmllbGRfYSA9IGF0dHIuaWIoKQorICAgICAgICAgICAgZmllbGRfYiA9IGF0dHIuaWIoKip7
QVRUUlNfRVFfRklFTEQ6IEZhbHNlfSkKKworICAgICAgICBsZWZ0ID0gU2ltcGxlRGF0YU9iamVj
dCgxLCAiYiIpCisgICAgICAgIHJpZ2h0ID0gU2ltcGxlRGF0YU9iamVjdCgxLCAiYiIpCisKKyAg
ICAgICAgbGluZXMgPSBjYWxsZXF1YWwobGVmdCwgcmlnaHQsIHZlcmJvc2U9MikKKyAgICAgICAg
YXNzZXJ0IGxpbmVzWzFdLnN0YXJ0c3dpdGgoIk1hdGNoaW5nIGF0dHJpYnV0ZXM6IikKKyAgICAg
ICAgYXNzZXJ0ICJPbWl0dGluZyIgbm90IGluIGxpbmVzWzFdCisgICAgICAgIGFzc2VydCBsaW5l
c1syXSA9PSAiWydmaWVsZF9hJ10iCisgICAgICAgIGZvciBsaW5lIGluIGxpbmVzWzI6XToKKyAg
ICAgICAgICAgIGFzc2VydCAiZmllbGRfYiIgbm90IGluIGxpbmUKKworICAgIGRlZiB0ZXN0X2Nv
bXBhcmluZ190d29fZGlmZmVyZW50X2F0dHJzX2NsYXNzZXMoc2VsZik6CisgICAgICAgIEBhdHRy
LnMKKyAgICAgICAgY2xhc3MgU2ltcGxlRGF0YU9iamVjdE9uZShvYmplY3QpOgorICAgICAgICAg
ICAgZmllbGRfYSA9IGF0dHIuaWIoKQorICAgICAgICAgICAgZmllbGRfYiA9IGF0dHIuaWIoKQor
CisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgU2ltcGxlRGF0YU9iamVjdFR3byhvYmpl
Y3QpOgorICAgICAgICAgICAgZmllbGRfYSA9IGF0dHIuaWIoKQorICAgICAgICAgICAgZmllbGRf
YiA9IGF0dHIuaWIoKQorCisgICAgICAgIGxlZnQgPSBTaW1wbGVEYXRhT2JqZWN0T25lKDEsICJi
IikKKyAgICAgICAgcmlnaHQgPSBTaW1wbGVEYXRhT2JqZWN0VHdvKDEsICJjIikKKworICAgICAg
ICBsaW5lcyA9IGNhbGxlcXVhbChsZWZ0LCByaWdodCkKKyAgICAgICAgYXNzZXJ0IGxpbmVzIGlz
IE5vbmUKIAorCitjbGFzcyBUZXN0Rm9ybWF0RXhwbGFuYXRpb24ob2JqZWN0KToKICAgICBkZWYg
dGVzdF9zcGVjaWFsX2NoYXJzX2Z1bGwoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgICMgSXNzdWUg
NDUzLCBmb3IgdGhlIGJ1ZyB0aGlzIHdvdWxkIHJhaXNlIEluZGV4RXJyb3IKICAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKApAQCAtNzc4LDI3ICs5NDAsMjIgQEAgZGVmIHRlc3RfcmV3cml0dGVu
KHRlc3RkaXIpOgogICAgIGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVzdCgpLnJldCA9PSAwCiAKIAot
ZGVmIHRlc3RfcmVwcmNvbXBhcmVfbm90aW4obW9ja19jb25maWcpOgotICAgIGRldGFpbCA9IHBs
dWdpbi5weXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlKAotICAgICAgICBtb2NrX2NvbmZpZywgIm5v
dCBpbiIsICJmb28iLCAiYWFhZm9vYmJiIgotICAgIClbCi0gICAgICAgIDE6Ci0gICAgXQorZGVm
IHRlc3RfcmVwcmNvbXBhcmVfbm90aW4oKToKKyAgICBjb25maWcgPSBtb2NrX2NvbmZpZygpCisg
ICAgZGV0YWlsID0gcGx1Z2luLnB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUoY29uZmlnLCAibm90
IGluIiwgImZvbyIsICJhYWFmb29iYmIiKVsxOl0KICAgICBhc3NlcnQgZGV0YWlsID09IFsiJ2Zv
bycgaXMgY29udGFpbmVkIGhlcmU6IiwgIiAgYWFhZm9vYmJiIiwgIj8gICAgKysrIl0KIAogCi1k
ZWYgdGVzdF9yZXByY29tcGFyZV93aGl0ZXNwYWNlcyhtb2NrX2NvbmZpZyk6Ci0gICAgZGV0YWls
ID0gcGx1Z2luLnB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUobW9ja19jb25maWcsICI9PSIsICJc
clxuIiwgIlxuIikKLSAgICBhc3NlcnQgKAotICAgICAgICBkZXRhaWwKLSAgICAgICAgPT0gWwot
ICAgICAgICAgICAgciInXHJcbicgPT0gJ1xuJyIsCi0gICAgICAgICAgICByIlN0cmluZ3MgY29u
dGFpbiBvbmx5IHdoaXRlc3BhY2UsIGVzY2FwaW5nIHRoZW0gdXNpbmcgcmVwcigpIiwKLSAgICAg
ICAgICAgIHIiLSAnXHJcbiciLAotICAgICAgICAgICAgciI/ICAtLSIsCi0gICAgICAgICAgICBy
IisgJ1xuJyIsCi0gICAgICAgIF0KLSAgICApCitkZWYgdGVzdF9yZXByY29tcGFyZV93aGl0ZXNw
YWNlcygpOgorICAgIGNvbmZpZyA9IG1vY2tfY29uZmlnKCkKKyAgICBkZXRhaWwgPSBwbHVnaW4u
cHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZShjb25maWcsICI9PSIsICJcclxuIiwgIlxuIikKKyAg
ICBhc3NlcnQgZGV0YWlsID09IFsKKyAgICAgICAgciInXHJcbicgPT0gJ1xuJyIsCisgICAgICAg
IHIiU3RyaW5ncyBjb250YWluIG9ubHkgd2hpdGVzcGFjZSwgZXNjYXBpbmcgdGhlbSB1c2luZyBy
ZXByKCkiLAorICAgICAgICByIi0gJ1xyXG4nIiwKKyAgICAgICAgciI/ICAtLSIsCisgICAgICAg
IHIiKyAnXG4nIiwKKyAgICBdCiAKIAogZGVmIHRlc3RfcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFy
ZV9pbnRlZ3JhdGlvbih0ZXN0ZGlyKToKQEAgLTEwMzYsNyArMTE5Myw2IEBAIGRlZiB0ZXN0X0Fz
c2VydGlvbkVycm9yX21lc3NhZ2UodGVzdGRpcik6CiBkZWYgdGVzdF9zZXRfd2l0aF91bnNvcnRh
YmxlX2VsZW1lbnRzKCk6CiAgICAgIyBpc3N1ZSAjNzE4CiAgICAgY2xhc3MgVW5zb3J0YWJsZUtl
eShvYmplY3QpOgotCiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKICAgICAgICAg
ICAgIHNlbGYubmFtZSA9IG5hbWUKIApAQCAtMTA5MSwxNyArMTI0NywyNyBAQCBkZWYgdGVzdF9k
aWZmX25ld2xpbmVfYXRfZW5kKG1vbmtleXBhdGNoLCB0ZXN0ZGlyKToKICAgICApCiAKIAorQHB5
dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJkZWZhdWx0IikKIGRlZiB0ZXN0X2Fzc2VydF90dXBs
ZV93YXJuaW5nKHRlc3RkaXIpOgorICAgIG1zZyA9ICJhc3NlcnRpb24gaXMgYWx3YXlzIHRydWUi
CiAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAiIiIKICAgICAgICAgZGVmIHRlc3Rf
dHVwbGUoKToKICAgICAgICAgICAgIGFzc2VydChGYWxzZSwgJ3lvdSBzaGFsbCBub3QgcGFzcycp
CiAgICAgIiIiCiAgICAgKQotICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcnciKQot
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAgICAgWyIqdGVzdF9hc3NlcnRf
dHVwbGVfd2FybmluZy5weToyIiwgIiphc3NlcnRpb24gaXMgYWx3YXlzIHRydWUqIl0KKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsiKnRlc3RfYXNzZXJ0X3R1cGxlX3dhcm5pbmcucHk6Mjoqe30qIi5mb3JtYXQobXNnKV0p
CisKKyAgICAjIHR1cGxlcyB3aXRoIHNpemUgIT0gMiBzaG91bGQgbm90IHRyaWdnZXIgdGhlIHdh
cm5pbmcKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBkZWYg
dGVzdF90dXBsZSgpOgorICAgICAgICAgICAgYXNzZXJ0ICgpCisgICAgIiIiCiAgICAgKQorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgbXNnIG5vdCBpbiByZXN1
bHQuc3Rkb3V0LnN0cigpCiAKIAogZGVmIHRlc3RfYXNzZXJ0X2luZGlyZWN0X3R1cGxlX25vX3dh
cm5pbmcodGVzdGRpcik6CkBAIC0xMTY5LDQgKzEzMzUsMTcgQEAgZGVmIHRlc3RfaXNzdWVfMTk0
NCh0ZXN0ZGlyKToKICAgICApCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQogICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIGVycm9yKiJdKQotICAgIGFzc2VydCAi
QXR0cmlidXRlRXJyb3I6ICdNb2R1bGUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdfb2JqJyIg
bm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3NlcnQgKAorICAgICAgICAiQXR0cmli
dXRlRXJyb3I6ICdNb2R1bGUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdfb2JqJyIKKyAgICAg
ICAgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICApCisKKworZGVmIHRlc3RfZXhpdF9m
cm9tX2Fzc2VydHJlcHJfY29tcGFyZShtb25rZXlwYXRjaCk6CisgICAgZGVmIHJhaXNlX2V4aXQo
b2JqKToKKyAgICAgICAgb3V0Y29tZXMuZXhpdCgiUXVpdHRpbmcgZGVidWdnZXIiKQorCisgICAg
bW9ua2V5cGF0Y2guc2V0YXR0cih1dGlsLCAiaXN0ZXh0IiwgcmFpc2VfZXhpdCkKKworICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhvdXRjb21lcy5FeGl0LCBtYXRjaD0iUXVpdHRpbmcgZGVidWdnZXIi
KToKKyAgICAgICAgY2FsbGVxdWFsKDEsIDEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfYXNzZXJ0cmV3cml0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3Nl
cnRyZXdyaXRlLnB5CmluZGV4IDE0NGY2MjViYzZjM2NkZWE3YTU1YTgyY2Y5NjdjN2NhYjkxNmMy
ZTkuLjg3ZGFkYTIxM2Q2NTJiMDFmOTQwZGY3ZGVhMTc1ZmFlODAxNzg1MDEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRyZXdyaXRlLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRyZXdyaXRlLnB5CkBAIC0xLDQgKzEsNyBAQAotZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBnbG9iCiBpbXBvcnQgb3MKQEAgLTcs
MTYgKzEwLDE2IEBAIGltcG9ydCBzdGF0CiBpbXBvcnQgc3lzCiBpbXBvcnQgdGV4dHdyYXAKIGlt
cG9ydCB6aXBmaWxlCisKIGltcG9ydCBweQotaW1wb3J0IHB5dGVzdAoraW1wb3J0IHNpeAogCiBp
bXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IHB5dGVzdAogZnJvbSBfcHl0ZXN0LmFzc2VydGlv
biBpbXBvcnQgdXRpbAotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlIGltcG9ydCAoCi0g
ICAgcmV3cml0ZV9hc3NlcnRzLAotICAgIFBZVEVTVF9UQUcsCi0gICAgQXNzZXJ0aW9uUmV3cml0
aW5nSG9vaywKLSkKK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24ucmV3cml0ZSBpbXBvcnQgQXNzZXJ0
aW9uUmV3cml0aW5nSG9vaworZnJvbSBfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlIGltcG9ydCBQ
WVRFU1RfVEFHCitmcm9tIF9weXRlc3QuYXNzZXJ0aW9uLnJld3JpdGUgaW1wb3J0IHJld3JpdGVf
YXNzZXJ0cwogZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAog
CiBhc3QgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJhc3QiKQpAQCAtNDksMTQgKzUyLDE0IEBAIGRl
ZiBnZXRtc2coZiwgZXh0cmFfbnM9Tm9uZSwgbXVzdF9wYXNzPUZhbHNlKToKICAgICBucyA9IHt9
CiAgICAgaWYgZXh0cmFfbnMgaXMgbm90IE5vbmU6CiAgICAgICAgIG5zLnVwZGF0ZShleHRyYV9u
cykKLSAgICBweS5idWlsdGluLmV4ZWNfKGNvZGUsIG5zKQorICAgIGV4ZWMoY29kZSwgbnMpCiAg
ICAgZnVuYyA9IG5zW2YuX19uYW1lX19dCiAgICAgdHJ5OgogICAgICAgICBmdW5jKCkKICAgICBl
eGNlcHQgQXNzZXJ0aW9uRXJyb3I6CiAgICAgICAgIGlmIG11c3RfcGFzczoKICAgICAgICAgICAg
IHB5dGVzdC5mYWlsKCJzaG91bGRuJ3QgaGF2ZSByYWlzZWQiKQotICAgICAgICBzID0gc3RyKHN5
cy5leGNfaW5mbygpWzFdKQorICAgICAgICBzID0gc2l4LnRleHRfdHlwZShzeXMuZXhjX2luZm8o
KVsxXSkKICAgICAgICAgaWYgbm90IHMuc3RhcnRzd2l0aCgiYXNzZXJ0Iik6CiAgICAgICAgICAg
ICByZXR1cm4gIkFzc2VydGlvbkVycm9yOiAiICsgcwogICAgICAgICByZXR1cm4gcwpAQCAtNjUs
NDEgKzY4LDE3IEBAIGRlZiBnZXRtc2coZiwgZXh0cmFfbnM9Tm9uZSwgbXVzdF9wYXNzPUZhbHNl
KToKICAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJmdW5jdGlvbiBkaWRuJ3QgcmFpc2UgYXQgYWxs
IikKIAogCi1kZWYgYWRqdXN0X2JvZHlfZm9yX25ld19kb2NzdHJpbmdfaW5fbW9kdWxlX25vZGUo
bSk6Ci0gICAgIiIiTW9kdWxlIGRvY3N0cmluZ3MgaW4gMy44IGFyZSBwYXJ0IG9mIE1vZHVsZSBu
b2RlLgotICAgIFRoaXMgd2FzIGJyaWVmbHkgaW4gMy43IGFzIHdlbGwgYnV0IGdvdCByZXZlcnRl
ZCBpbiBiZXRhIDUuCi0KLSAgICBJdCdzIG5vdCBpbiB0aGUgYm9keSBzbyB3ZSByZW1vdmUgaXQg
c28gdGhlIGZvbGxvd2luZyBib2R5IGl0ZW1zIGhhdmUKLSAgICB0aGUgc2FtZSBpbmRleGVzIG9u
IGFsbCBQeXRob24gdmVyc2lvbnM6Ci0KLSAgICBUT0RPOgotCi0gICAgV2UgaGF2ZSBhIGNvbXBs
aWNhdGVkIHN5cy52ZXJzaW9uX2luZm8gaWYgaW4gaGVyZSB0byBlYXNlIHRlc3Rpbmcgb24KLSAg
ICB2YXJpb3VzIFB5dGhvbiAzLjcgdmVyc2lvbnMsIGJ1dCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSAz
LjcgY2hlY2sgYWZ0ZXIKLSAgICAzLjcgaXMgcmVsZWFzZWQgYXMgc3RhYmxlIHRvIG1ha2UgdGhp
cyBjaGVjayBtb3JlIHN0cmFpZ2h0Zm9yd2FyZC4KLSAgICAiIiIKLSAgICBpZiAoCi0gICAgICAg
IHN5cy52ZXJzaW9uX2luZm8gPCAoMywgOCkKLSAgICAgICAgYW5kIG5vdCAoKDMsIDcpIDw9IHN5
cy52ZXJzaW9uX2luZm8gPD0gKDMsIDcsIDAsICJiZXRhIiwgNCkpCi0gICAgKToKLSAgICAgICAg
YXNzZXJ0IGxlbihtLmJvZHkpID4gMQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlb
MF0sIGFzdC5FeHByKQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMF0udmFsdWUs
IGFzdC5TdHIpCi0gICAgICAgIGRlbCBtLmJvZHlbMF0KLQotCiBjbGFzcyBUZXN0QXNzZXJ0aW9u
UmV3cml0ZShvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfcGxhY2VfaW5pdGlhbF9pbXBvcnRzKHNl
bGYpOgogICAgICAgICBzID0gIiIiJ0RvYyBzdHJpbmcnXG5vdGhlciA9IHN0dWZmIiIiCiAgICAg
ICAgIG0gPSByZXdyaXRlKHMpCi0gICAgICAgIGFkanVzdF9ib2R5X2Zvcl9uZXdfZG9jc3RyaW5n
X2luX21vZHVsZV9ub2RlKG0pCi0gICAgICAgIGZvciBpbXAgaW4gbS5ib2R5WzA6Ml06CisgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVswXSwgYXN0LkV4cHIpCisgICAgICAgIGZvciBp
bXAgaW4gbS5ib2R5WzE6M106CiAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpbXAsIGFz
dC5JbXBvcnQpCiAgICAgICAgICAgICBhc3NlcnQgaW1wLmxpbmVubyA9PSAyCiAgICAgICAgICAg
ICBhc3NlcnQgaW1wLmNvbF9vZmZzZXQgPT0gMAotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSht
LmJvZHlbMl0sIGFzdC5Bc3NpZ24pCi0gICAgICAgIHMgPSAiIiJmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHdpdGhfc3RhdGVtZW50XG5vdGhlcl9zdHVmZiIiIgorICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShtLmJvZHlbM10sIGFzdC5Bc3NpZ24pCisgICAgICAgIHMgPSAiIiJmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGRpdmlzaW9uXG5vdGhlcl9zdHVmZiIiIgogICAgICAgICBtID0gcmV3cml0ZShz
KQogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMF0sIGFzdC5JbXBvcnRGcm9tKQog
ICAgICAgICBmb3IgaW1wIGluIG0uYm9keVsxOjNdOgpAQCAtMTA3LDI2ICs4NiwyNiBAQCBjbGFz
cyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3QpOgogICAgICAgICAgICAgYXNzZXJ0IGltcC5s
aW5lbm8gPT0gMgogICAgICAgICAgICAgYXNzZXJ0IGltcC5jb2xfb2Zmc2V0ID09IDAKICAgICAg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UobS5ib2R5WzNdLCBhc3QuRXhwcikKLSAgICAgICAgcyA9ICIi
Iidkb2Mgc3RyaW5nJ1xuZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudCIiIgor
ICAgICAgICBzID0gIiIiJ2RvYyBzdHJpbmcnXG5mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlz
aW9uIiIiCiAgICAgICAgIG0gPSByZXdyaXRlKHMpCi0gICAgICAgIGFkanVzdF9ib2R5X2Zvcl9u
ZXdfZG9jc3RyaW5nX2luX21vZHVsZV9ub2RlKG0pCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KG0uYm9keVswXSwgYXN0LkltcG9ydEZyb20pCi0gICAgICAgIGZvciBpbXAgaW4gbS5ib2R5WzE6
M106CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVswXSwgYXN0LkV4cHIpCisgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVsxXSwgYXN0LkltcG9ydEZyb20pCisgICAgICAg
IGZvciBpbXAgaW4gbS5ib2R5WzI6NF06CiAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShp
bXAsIGFzdC5JbXBvcnQpCiAgICAgICAgICAgICBhc3NlcnQgaW1wLmxpbmVubyA9PSAyCiAgICAg
ICAgICAgICBhc3NlcnQgaW1wLmNvbF9vZmZzZXQgPT0gMAotICAgICAgICBzID0gIiIiJ2RvYyBz
dHJpbmcnXG5mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50XG5vdGhlciIiIgor
ICAgICAgICBzID0gIiIiJ2RvYyBzdHJpbmcnXG5mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlz
aW9uXG5vdGhlciIiIgogICAgICAgICBtID0gcmV3cml0ZShzKQotICAgICAgICBhZGp1c3RfYm9k
eV9mb3JfbmV3X2RvY3N0cmluZ19pbl9tb2R1bGVfbm9kZShtKQotICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShtLmJvZHlbMF0sIGFzdC5JbXBvcnRGcm9tKQotICAgICAgICBmb3IgaW1wIGluIG0u
Ym9keVsxOjNdOgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMF0sIGFzdC5FeHBy
KQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMV0sIGFzdC5JbXBvcnRGcm9tKQor
ICAgICAgICBmb3IgaW1wIGluIG0uYm9keVsyOjRdOgogICAgICAgICAgICAgYXNzZXJ0IGlzaW5z
dGFuY2UoaW1wLCBhc3QuSW1wb3J0KQogICAgICAgICAgICAgYXNzZXJ0IGltcC5saW5lbm8gPT0g
MwogICAgICAgICAgICAgYXNzZXJ0IGltcC5jb2xfb2Zmc2V0ID09IDAKLSAgICAgICAgYXNzZXJ0
IGlzaW5zdGFuY2UobS5ib2R5WzNdLCBhc3QuRXhwcikKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFu
Y2UobS5ib2R5WzRdLCBhc3QuRXhwcikKICAgICAgICAgcyA9ICIiImZyb20gLiBpbXBvcnQgcmVs
YXRpdmVcbm90aGVyX3N0dWZmIiIiCiAgICAgICAgIG0gPSByZXdyaXRlKHMpCi0gICAgICAgIGZv
ciBpbXAgaW4gbS5ib2R5WzA6Ml06CisgICAgICAgIGZvciBpbXAgaW4gbS5ib2R5WzoyXToKICAg
ICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGltcCwgYXN0LkltcG9ydCkKICAgICAgICAgICAg
IGFzc2VydCBpbXAubGluZW5vID09IDEKICAgICAgICAgICAgIGFzc2VydCBpbXAuY29sX29mZnNl
dCA9PSAwCkBAIC0xMzUsOSArMTE0LDggQEAgY2xhc3MgVGVzdEFzc2VydGlvblJld3JpdGUob2Jq
ZWN0KToKICAgICBkZWYgdGVzdF9kb250X3Jld3JpdGUoc2VsZik6CiAgICAgICAgIHMgPSAiIiIn
UFlURVNUX0RPTlRfUkVXUklURSdcbmFzc2VydCAxNCIiIgogICAgICAgICBtID0gcmV3cml0ZShz
KQotICAgICAgICBhZGp1c3RfYm9keV9mb3JfbmV3X2RvY3N0cmluZ19pbl9tb2R1bGVfbm9kZSht
KQotICAgICAgICBhc3NlcnQgbGVuKG0uYm9keSkgPT0gMQotICAgICAgICBhc3NlcnQgbS5ib2R5
WzBdLm1zZyBpcyBOb25lCisgICAgICAgIGFzc2VydCBsZW4obS5ib2R5KSA9PSAyCisgICAgICAg
IGFzc2VydCBtLmJvZHlbMV0ubXNnIGlzIE5vbmUKIAogICAgIGRlZiB0ZXN0X2RvbnRfcmV3cml0
ZV9wbHVnaW4oc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIGNvbnRlbnRzID0gewpAQCAtMTQ5LDgg
KzEyNyw3IEBAIGNsYXNzIFRlc3RBc3NlcnRpb25SZXdyaXRlKG9iamVjdCk6CiAgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQogICAgICAgICBhc3NlcnQgIndh
cm5pbmdzIiBub3QgaW4gIiIuam9pbihyZXN1bHQub3V0bGluZXMpCiAKLSAgICBkZWYgdGVzdF9u
YW1lKHNlbGYpOgotCisgICAgZGVmIHRlc3RfbmFtZShzZWxmLCByZXF1ZXN0KToKICAgICAgICAg
ZGVmIGYoKToKICAgICAgICAgICAgIGFzc2VydCBGYWxzZQogCkBAIC0xNzAsMTggKzE0Nyw2OCBA
QCBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3QpOgogICAgICAgICBkZWYgZigpOgog
ICAgICAgICAgICAgYXNzZXJ0IHN5cyA9PSA0MgogCi0gICAgICAgIGFzc2VydCBnZXRtc2coZiwg
eyJzeXMiOiBzeXN9KSA9PSAiYXNzZXJ0IHN5cyA9PSA0MiIKKyAgICAgICAgdmVyYm9zZSA9IHJl
cXVlc3QuY29uZmlnLmdldG9wdGlvbigidmVyYm9zZSIpCisgICAgICAgIG1zZyA9IGdldG1zZyhm
LCB7InN5cyI6IHN5c30pCisgICAgICAgIGlmIHZlcmJvc2UgPiAwOgorICAgICAgICAgICAgYXNz
ZXJ0IG1zZyA9PSAoCisgICAgICAgICAgICAgICAgImFzc2VydCA8bW9kdWxlICdzeXMnIChidWls
dC1pbik+ID09IDQyXG4iCisgICAgICAgICAgICAgICAgIiAgLTxtb2R1bGUgJ3N5cycgKGJ1aWx0
LWluKT5cbiIKKyAgICAgICAgICAgICAgICAiICArNDIiCisgICAgICAgICAgICApCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgbXNnID09ICJhc3NlcnQgc3lzID09IDQyIgogCiAg
ICAgICAgIGRlZiBmKCk6Ci0gICAgICAgICAgICBhc3NlcnQgY2xzID09IDQyICAjIG5vcWEKKyAg
ICAgICAgICAgIGFzc2VydCBjbHMgPT0gNDIgICMgbm9xYTogRjgyMQogCiAgICAgICAgIGNsYXNz
IFgob2JqZWN0KToKICAgICAgICAgICAgIHBhc3MKIAotICAgICAgICBhc3NlcnQgZ2V0bXNnKGYs
IHsiY2xzIjogWH0pID09ICJhc3NlcnQgY2xzID09IDQyIgorICAgICAgICBtc2cgPSBnZXRtc2co
ZiwgeyJjbHMiOiBYfSkuc3BsaXRsaW5lcygpCisgICAgICAgIGlmIHZlcmJvc2UgPiAwOgorICAg
ICAgICAgICAgaWYgc2l4LlBZMjoKKyAgICAgICAgICAgICAgICBhc3NlcnQgbXNnID09IFsKKyAg
ICAgICAgICAgICAgICAgICAgImFzc2VydCA8Y2xhc3MgJ3Rlc3RfYXNzZXJ0cmV3cml0ZS5YJz4g
PT0gNDIiLAorICAgICAgICAgICAgICAgICAgICAiICAtPGNsYXNzICd0ZXN0X2Fzc2VydHJld3Jp
dGUuWCc+IiwKKyAgICAgICAgICAgICAgICAgICAgIiAgKzQyIiwKKyAgICAgICAgICAgICAgICBd
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFzc2VydCBtc2cgPT0gWworICAg
ICAgICAgICAgICAgICAgICAiYXNzZXJ0IDxjbGFzcyAndGVzdF8uLi5lLjxsb2NhbHM+LlgnPiA9
PSA0MiIsCisgICAgICAgICAgICAgICAgICAgICIgIC08Y2xhc3MgJ3Rlc3RfYXNzZXJ0cmV3cml0
ZS5UZXN0QXNzZXJ0aW9uUmV3cml0ZS50ZXN0X25hbWUuPGxvY2Fscz4uWCc+IiwKKyAgICAgICAg
ICAgICAgICAgICAgIiAgKzQyIiwKKyAgICAgICAgICAgICAgICBdCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBhc3NlcnQgbXNnID09IFsiYXNzZXJ0IGNscyA9PSA0MiJdCisKKyAgICBkZWYg
dGVzdF9kb250X3Jld3JpdGVfaWZfaGFzYXR0cl9mYWlscyhzZWxmLCByZXF1ZXN0KToKKyAgICAg
ICAgY2xhc3MgWShvYmplY3QpOgorICAgICAgICAgICAgIiIiIEEgY2xhc3Mgd2hvcyBnZXRhdHRy
IGZhaWxzLCBidXQgbm90IHdpdGggYEF0dHJpYnV0ZUVycm9yYCAiIiIKKworICAgICAgICAgICAg
ZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHJpYnV0ZV9uYW1lKToKKyAgICAgICAgICAgICAgICBy
YWlzZSBLZXlFcnJvcigpCisKKyAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gIlkiCisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToK
KyAgICAgICAgICAgICAgICBzZWxmLmZvbyA9IDMKIAotICAgIGRlZiB0ZXN0X2Fzc2VydF9hbHJl
YWR5X2hhc19tZXNzYWdlKHNlbGYpOgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgYXNz
ZXJ0IGNscygpLmZvbyA9PSAyICAjIG5vcWEKKworICAgICAgICAjIFhYWDogbG9va3MgbGlrZSB0
aGUgIndoZXJlIiBzaG91bGQgYWxzbyBiZSB0aGVyZSBpbiB2ZXJib3NlIG1vZGU/IQorICAgICAg
ICBtZXNzYWdlID0gZ2V0bXNnKGYsIHsiY2xzIjogWX0pLnNwbGl0bGluZXMoKQorICAgICAgICBp
ZiByZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2UiKSA+IDA6CisgICAgICAgICAgICBh
c3NlcnQgbWVzc2FnZSA9PSBbImFzc2VydCAzID09IDIiLCAiICAtMyIsICIgICsyIl0KKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBtZXNzYWdlID09IFsKKyAgICAgICAgICAgICAg
ICAiYXNzZXJ0IDMgPT0gMiIsCisgICAgICAgICAgICAgICAgIiArICB3aGVyZSAzID0gWS5mb28i
LAorICAgICAgICAgICAgICAgICIgKyAgICB3aGVyZSBZID0gY2xzKCkiLAorICAgICAgICAgICAg
XQogCisgICAgZGVmIHRlc3RfYXNzZXJ0X2FscmVhZHlfaGFzX21lc3NhZ2Uoc2VsZik6CiAgICAg
ICAgIGRlZiBmKCk6CiAgICAgICAgICAgICBhc3NlcnQgRmFsc2UsICJzb21ldGhpbmcgYmFkISIK
IApAQCAtMjUwLDggKzI3NywxNiBAQCBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3Qp
OgogICAgICAgICAgICAgWyIqQXNzZXJ0aW9uRXJyb3I6IFRvIGJlIGVzY2FwZWQ6ICUiLCAiKmFz
c2VydCAxID09IDIiXQogICAgICAgICApCiAKLSAgICBkZWYgdGVzdF9ib29sb3Aoc2VsZik6Cisg
ICAgQHB5dGVzdC5tYXJrLnNraXBpZigKKyAgICAgICAgc3lzLnZlcnNpb25faW5mbyA8ICgzLCks
IHJlYXNvbj0iYnl0ZXMgaXMgYSBzdHJpbmcgdHlwZSBpbiBweXRob24gMiIKKyAgICApCisgICAg
ZGVmIHRlc3RfYXNzZXJ0aW9uX21lc3NhZ2VzX2J5dGVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2J5dGVzX2Fzc2VydGlvbigpOlxuICAgIGFz
c2VydCBGYWxzZSwgYidvaGFpISdcbiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWyIqQXNzZXJ0aW9uRXJyb3I6IGInb2hhaSEnIiwgIiphc3NlcnQg
RmFsc2UiXSkKIAorICAgIGRlZiB0ZXN0X2Jvb2xvcChzZWxmKToKICAgICAgICAgZGVmIGYoKToK
ICAgICAgICAgICAgIGYgPSBnID0gRmFsc2UKICAgICAgICAgICAgIGFzc2VydCBmIGFuZCBnCkBA
IC0zMzEsNyArMzY2LDYgQEAgY2xhc3MgVGVzdEFzc2VydGlvblJld3JpdGUob2JqZWN0KToKICAg
ICAgICAgZ2V0bXNnKGYsIG11c3RfcGFzcz1UcnVlKQogCiAgICAgZGVmIHRlc3Rfc2hvcnRfY2ly
Y3VpdF9ldmFsdWF0aW9uKHNlbGYpOgotCiAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICBh
c3NlcnQgVHJ1ZSBvciBleHBsb2RlICAjIG5vcWEKIApAQCAtMzQ0LDcgKzM3OCw2IEBAIGNsYXNz
IFRlc3RBc3NlcnRpb25SZXdyaXRlKG9iamVjdCk6CiAgICAgICAgIGdldG1zZyhmLCBtdXN0X3Bh
c3M9VHJ1ZSkKIAogICAgIGRlZiB0ZXN0X3VuYXJ5X29wKHNlbGYpOgotCiAgICAgICAgIGRlZiBm
KCk6CiAgICAgICAgICAgICB4ID0gVHJ1ZQogICAgICAgICAgICAgYXNzZXJ0IG5vdCB4CkBAIC0z
NzAsNyArNDAzLDYgQEAgY2xhc3MgVGVzdEFzc2VydGlvblJld3JpdGUob2JqZWN0KToKICAgICAg
ICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0ICgrMCArIDApIgogCiAgICAgZGVmIHRlc3Rf
YmluYXJ5X29wKHNlbGYpOgotCiAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICB4ID0gMQog
ICAgICAgICAgICAgeSA9IC0xCkBAIC0zODQsNyArNDE2LDYgQEAgY2xhc3MgVGVzdEFzc2VydGlv
blJld3JpdGUob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0IG5v
dCAoNSAlIDQpIgogCiAgICAgZGVmIHRlc3RfYm9vbG9wX3BlcmNlbnQoc2VsZik6Ci0KICAgICAg
ICAgZGVmIGYoKToKICAgICAgICAgICAgIGFzc2VydCAzICUgMiBhbmQgRmFsc2UKIApAQCAtNDEw
LDggKzQ0MSwyMCBAQCBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3QpOgogICAgICAg
ICApCiAgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCkuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0x
KQogCi0gICAgZGVmIHRlc3RfY2FsbChzZWxmKToKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJz
eXMudmVyc2lvbl9pbmZvIDwgKDMsNSkiKQorICAgIGRlZiB0ZXN0X3N0YXJyZWRfd2l0aF9zaWRl
X2VmZmVjdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiU2VlICM0NDEyIiIiCisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgIGRlZiB0
ZXN0KCk6CisgICAgICAgICAgICAgICAgZiA9IGxhbWJkYSB4OiB4CisgICAgICAgICAgICAgICAg
eCA9IGl0ZXIoWzEsIDIsIDNdKQorICAgICAgICAgICAgICAgIGFzc2VydCAyICogbmV4dCh4KSA9
PSBmKCpbbmV4dCh4KV0pCisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpLmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9MSkKIAorICAgIGRlZiB0ZXN0
X2NhbGwoc2VsZik6CiAgICAgICAgIGRlZiBnKGE9NDIsICphcmdzLCAqKmt3YXJncyk6CiAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKIApAQCAtNDgzLDcgKzUyNiw2IEBAIGNsYXNzIFRlc3RBc3Nl
cnRpb25SZXdyaXRlKG9iamVjdCk6CiAgICAgICAgICkKIAogICAgIGRlZiB0ZXN0X2F0dHJpYnV0
ZShzZWxmKToKLQogICAgICAgICBjbGFzcyBYKG9iamVjdCk6CiAgICAgICAgICAgICBnID0gMwog
CkBAIC01MDksNyArNTUxLDYgQEAgY2xhc3MgVGVzdEFzc2VydGlvblJld3JpdGUob2JqZWN0KToK
ICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfY29tcGFyaXNvbnMoc2VsZik6Ci0KICAgICAgICAg
ZGVmIGYoKToKICAgICAgICAgICAgIGEsIGIgPSByYW5nZSgyKQogICAgICAgICAgICAgYXNzZXJ0
IGIgPCBhCkBAIC01NDEsMTkgKzU4MiwxOCBAQCBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShv
YmplY3QpOgogCiAgICAgICAgIGdldG1zZyhmLCBtdXN0X3Bhc3M9VHJ1ZSkKIAotICAgIGRlZiB0
ZXN0X2xlbihzZWxmKToKLQorICAgIGRlZiB0ZXN0X2xlbihzZWxmLCByZXF1ZXN0KToKICAgICAg
ICAgZGVmIGYoKToKICAgICAgICAgICAgIHZhbHVlcyA9IGxpc3QocmFuZ2UoMTApKQogICAgICAg
ICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDExCiAKLSAgICAgICAgYXNzZXJ0IGdldG1zZyhm
KS5zdGFydHN3aXRoKAotICAgICAgICAgICAgIiIiYXNzZXJ0IDEwID09IDExCi0gKyAgd2hlcmUg
MTAgPSBsZW4oWyIiIgotICAgICAgICApCisgICAgICAgIG1zZyA9IGdldG1zZyhmKQorICAgICAg
ICBpZiByZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2UiKSA+IDA6CisgICAgICAgICAg
ICBhc3NlcnQgbXNnID09ICJhc3NlcnQgMTAgPT0gMTFcbiAgLTEwXG4gICsxMSIKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBtc2cgPT0gImFzc2VydCAxMCA9PSAxMVxuICsgIHdo
ZXJlIDEwID0gbGVuKFswLCAxLCAyLCAzLCA0LCA1LCAuLi5dKSIKIAogICAgIGRlZiB0ZXN0X2N1
c3RvbV9yZXByY29tcGFyZShzZWxmLCBtb25rZXlwYXRjaCk6Ci0KICAgICAgICAgZGVmIG15X3Jl
cHJjb21wYXJlKG9wLCBsZWZ0LCByaWdodCk6CiAgICAgICAgICAgICByZXR1cm4gIjQyIgogCkBA
IC01NjUsNyArNjA1LDcgQEAgY2xhc3MgVGVzdEFzc2VydGlvblJld3JpdGUob2JqZWN0KToKICAg
ICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0IDQyIgogCiAgICAgICAgIGRlZiBteV9y
ZXByY29tcGFyZShvcCwgbGVmdCwgcmlnaHQpOgotICAgICAgICAgICAgcmV0dXJuICIlcyAlcyAl
cyIgJSAobGVmdCwgb3AsIHJpZ2h0KQorICAgICAgICAgICAgcmV0dXJuICJ7fSB7fSB7fSIuZm9y
bWF0KGxlZnQsIG9wLCByaWdodCkKIAogICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHV0aWws
ICJfcmVwcmNvbXBhcmUiLCBteV9yZXByY29tcGFyZSkKIApAQCAtNTc1LDExICs2MTUsOCBAQCBj
bGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3QpOgogICAgICAgICBhc3NlcnQgZ2V0bXNn
KGYpID09ICJhc3NlcnQgNSA8PSA0IgogCiAgICAgZGVmIHRlc3RfYXNzZXJ0X3JhaXNpbmdfbm9u
emVyb19pbl9jb21wYXJpc29uKHNlbGYpOgotCiAgICAgICAgIGRlZiBmKCk6Ci0KICAgICAgICAg
ICAgIGNsYXNzIEEob2JqZWN0KToKLQogICAgICAgICAgICAgICAgIGRlZiBfX25vbnplcm9fXyhz
ZWxmKToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikKIApAQCAtNTk3
LDE2ICs2MzQsMTMgQEAgY2xhc3MgVGVzdEFzc2VydGlvblJld3JpdGUob2JqZWN0KToKICAgICAg
ICAgYXNzZXJ0ICI8TVk0MiBvYmplY3Q+IDwgMCIgaW4gZ2V0bXNnKGYpCiAKICAgICBkZWYgdGVz
dF9mb3JtYXRjaGFyKHNlbGYpOgotCiAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICBhc3Nl
cnQgIiV0ZXN0IiA9PSAidGVzdCIKIAogICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpLnN0YXJ0c3dp
dGgoImFzc2VydCAnJXRlc3QnID09ICd0ZXN0JyIpCiAKLSAgICBkZWYgdGVzdF9jdXN0b21fcmVw
cihzZWxmKToKLQorICAgIGRlZiB0ZXN0X2N1c3RvbV9yZXByKHNlbGYsIHJlcXVlc3QpOgogICAg
ICAgICBkZWYgZigpOgotCiAgICAgICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKICAgICAgICAg
ICAgICAgICBhID0gMQogCkBAIC02MTYsMTEgKzY1MCwyOSBAQCBjbGFzcyBUZXN0QXNzZXJ0aW9u
UmV3cml0ZShvYmplY3QpOgogICAgICAgICAgICAgZiA9IEZvbygpCiAgICAgICAgICAgICBhc3Nl
cnQgMCA9PSBmLmEKIAotICAgICAgICBhc3NlcnQgciJ3aGVyZSAxID0gXG57IFxufiBcbn0uYSIg
aW4gdXRpbC5fZm9ybWF0X2xpbmVzKFtnZXRtc2coZildKVswXQorICAgICAgICBsaW5lcyA9IHV0
aWwuX2Zvcm1hdF9saW5lcyhbZ2V0bXNnKGYpXSkKKyAgICAgICAgaWYgcmVxdWVzdC5jb25maWcu
Z2V0b3B0aW9uKCJ2ZXJib3NlIikgPiAwOgorICAgICAgICAgICAgYXNzZXJ0IGxpbmVzID09IFsi
YXNzZXJ0IDAgPT0gMVxuICAtMFxuICArMSJdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBh
c3NlcnQgbGluZXMgPT0gWyJhc3NlcnQgMCA9PSAxXG4gKyAgd2hlcmUgMSA9IFxcbnsgXFxufiBc
XG59LmEiXQogCisgICAgZGVmIHRlc3RfY3VzdG9tX3JlcHJfbm9uX2FzY2lpKHNlbGYpOgorICAg
ICAgICBkZWYgZigpOgorICAgICAgICAgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICAgICAg
ICAgIG5hbWUgPSB1IsOkIgogCi1jbGFzcyBUZXN0UmV3cml0ZU9uSW1wb3J0KG9iamVjdCk6Cisg
ICAgICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gc2VsZi5uYW1lLmVuY29kZSgiVVRGLTgiKSAgIyBvbmx5IGxlZ2FsIGluIHB5dGhvbjIK
IAorICAgICAgICAgICAgYSA9IEEoKQorICAgICAgICAgICAgYXNzZXJ0IG5vdCBhLm5hbWUKKwor
ICAgICAgICBtc2cgPSBnZXRtc2coZikKKyAgICAgICAgYXNzZXJ0ICJVbmljb2RlRGVjb2RlRXJy
b3IiIG5vdCBpbiBtc2cKKyAgICAgICAgYXNzZXJ0ICJVbmljb2RlRW5jb2RlRXJyb3IiIG5vdCBp
biBtc2cKKworCitjbGFzcyBUZXN0UmV3cml0ZU9uSW1wb3J0KG9iamVjdCk6CiAgICAgZGVmIHRl
c3RfcHljYWNoZV9pc19hX2ZpbGUoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIudG1w
ZGlyLmpvaW4oIl9fcHljYWNoZV9fIikud3JpdGUoIkhlbGxvIikKICAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKApAQCAtNjY2LDE0ICs3MTgsMTAgQEAgY2xhc3MgVGVzdFJld3JpdGVPbkltcG9y
dChvYmplY3QpOgogICAgIGRlZiB0ZXN0X3JlYWRvbmx5KHNlbGYsIHRlc3RkaXIpOgogICAgICAg
ICBzdWIgPSB0ZXN0ZGlyLm1rZGlyKCJ0ZXN0aW5nIikKICAgICAgICAgc3ViLmpvaW4oInRlc3Rf
cmVhZG9ubHkucHkiKS53cml0ZSgKLSAgICAgICAgICAgIHB5LmJ1aWx0aW4uX3RvdGV4dCgKLSAg
ICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGIiIiIKIGRlZiB0ZXN0X3Jld3JpdHRlbigp
OgogICAgIGFzc2VydCAiQHB5X2J1aWx0aW5zIiBpbiBnbG9iYWxzKCkKLSAgICAgICAgICAgICIi
IgotICAgICAgICAgICAgKS5lbmNvZGUoCi0gICAgICAgICAgICAgICAgInV0Zi04IgotICAgICAg
ICAgICAgKSwKKyAgICAgICAgICAgICIiIiwKICAgICAgICAgICAgICJ3YiIsCiAgICAgICAgICkK
ICAgICAgICAgb2xkX21vZGUgPSBzdWIuc3RhdCgpLm1vZGUKQEAgLTc3NCwxNiArODIyLDE2IEBA
IGRlZiB0ZXN0X3Jld3JpdHRlbigpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImltcG9y
dCBhX3BhY2thZ2Vfd2l0aG91dF9pbml0X3B5Lm1vZHVsZSIpCiAgICAgICAgIGFzc2VydCB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpLnJldCA9PSBFWElUX05PVEVTVFNDT0xMRUNURUQKIAotICAgIGRlZiB0
ZXN0X3Jld3JpdGVfd2FybmluZyhzZWxmLCBweXRlc3Rjb25maWcsIG1vbmtleXBhdGNoKToKLSAg
ICAgICAgaG9vayA9IEFzc2VydGlvblJld3JpdGluZ0hvb2socHl0ZXN0Y29uZmlnKQotICAgICAg
ICB3YXJuaW5ncyA9IFtdCi0KLSAgICAgICAgZGVmIG15d2Fybihjb2RlLCBtc2cpOgotICAgICAg
ICAgICAgd2FybmluZ3MuYXBwZW5kKChjb2RlLCBtc2cpKQotCi0gICAgICAgIG1vbmtleXBhdGNo
LnNldGF0dHIoaG9vay5jb25maWcsICJ3YXJuIiwgbXl3YXJuKQotICAgICAgICBob29rLm1hcmtf
cmV3cml0ZSgiX3B5dGVzdCIpCi0gICAgICAgIGFzc2VydCAiX3B5dGVzdCIgaW4gd2FybmluZ3Nb
MF1bMV0KKyAgICBkZWYgdGVzdF9yZXdyaXRlX3dhcm5pbmcoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBweXRlc3QucmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGUo
Il9weXRlc3QiKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICAjIG5lZWRzIHRvIGJl
IGEgc3VicHJvY2VzcyBiZWNhdXNlIHB5dGVzdGVyIGV4cGxpY2l0bHkgZGlzYWJsZXMgdGhpcyB3
YXJuaW5nCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqTW9kdWxlIGFscmVhZHkgaW1w
b3J0ZWQqOiBfcHl0ZXN0Il0pCiAKICAgICBkZWYgdGVzdF9yZXdyaXRlX21vZHVsZV9pbXBvcnRl
ZF9mcm9tX2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgKQEAgLTgwOCw3ICs4NTYsOSBAQCBkZWYgdGVzdF9yZXdyaXR0ZW4oKToKICAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfcmVtZW1iZXJfcmV3cml0dGVuX21vZHVsZXM9IiIpCiAg
ICAgICAgIHdhcm5pbmdzID0gW10KICAgICAgICAgaG9vayA9IEFzc2VydGlvblJld3JpdGluZ0hv
b2socHl0ZXN0Y29uZmlnKQotICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGhvb2suY29uZmln
LCAid2FybiIsIGxhbWJkYSBjb2RlLCBtc2c6IHdhcm5pbmdzLmFwcGVuZChtc2cpKQorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAgICAgaG9vaywgIl93YXJuX2FscmVhZHlf
aW1wb3J0ZWQiLCBsYW1iZGEgY29kZSwgbXNnOiB3YXJuaW5ncy5hcHBlbmQobXNnKQorICAgICAg
ICApCiAgICAgICAgIGhvb2suZmluZF9tb2R1bGUoInRlc3RfcmVtZW1iZXJfcmV3cml0dGVuX21v
ZHVsZXMiKQogICAgICAgICBob29rLmxvYWRfbW9kdWxlKCJ0ZXN0X3JlbWVtYmVyX3Jld3JpdHRl
bl9tb2R1bGVzIikKICAgICAgICAgaG9vay5tYXJrX3Jld3JpdGUoInRlc3RfcmVtZW1iZXJfcmV3
cml0dGVuX21vZHVsZXMiKQpAQCAtODcwLDcgKzkyMCw2IEBAIGRlZiB0ZXN0X3Jld3JpdHRlbigp
OgogCiAKIGNsYXNzIFRlc3RBc3NlcnRpb25SZXdyaXRlSG9va0RldGFpbHMob2JqZWN0KToKLQog
ICAgIGRlZiB0ZXN0X2xvYWRlcl9pc19wYWNrYWdlX2ZhbHNlX2Zvcl9tb2R1bGUoc2VsZiwgdGVz
dGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgIHRlc3RfZnVu
PSIiIgpAQCAtOTY1LDcgKzEwMTQsNyBAQCBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZUhvb2tE
ZXRhaWxzKG9iamVjdCk6CiAgICAgICAgICAgICBlID0gSU9FcnJvcigpCiAgICAgICAgICAgICBl
LmVycm5vID0gMTAKICAgICAgICAgICAgIHJhaXNlIGUKLSAgICAgICAgICAgIHlpZWxkICAjIG5v
cWEKKyAgICAgICAgICAgIHlpZWxkCiAKICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihhdG9t
aWN3cml0ZXMsICJhdG9taWNfd3JpdGUiLCBhdG9taWNfd3JpdGVfZmFpbGVkKQogICAgICAgICBh
c3NlcnQgbm90IF93cml0ZV9weWMoc3RhdGUsIFsxXSwgc291cmNlX3BhdGguc3RhdCgpLCBweWNw
YXRoKQpAQCAtMTA1MCwyNCArMTA5OSw2NiBAQCBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZUhv
b2tEZXRhaWxzKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
cyIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMSBwYXNzZWQqIl0p
CiAKKyAgICBkZWYgdGVzdF9yZWxvYWRfcmVsb2FkcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
IiIiUmVsb2FkaW5nIGEgbW9kdWxlIGFmdGVyIGNoYW5nZSBwaWNrcyB1cCB0aGUgY2hhbmdlLiIi
IgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJmaWxlLnB5Iikud3JpdGUoCisgICAgICAg
ICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBk
ZWYgcmVsb2FkZWQoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAg
ICAgZGVmIHJld3JpdGVfc2VsZigpOgorICAgICAgICAgICAgICAgIHdpdGggb3BlbihfX2ZpbGVf
XywgJ3cnKSBhcyBzZWxmOgorICAgICAgICAgICAgICAgICAgICBzZWxmLndyaXRlKCdkZWYgcmVs
b2FkZWQoKTogcmV0dXJuIFRydWUnKQorICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAg
ICAgKQorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJweXRlc3QuaW5pIikud3JpdGUoCisg
ICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAg
ICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgcHl0aG9uX2ZpbGVzID0gKi5weQorICAgICAgICAi
IiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorCisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgICAgIHRlc3RfZnVuPSIiIgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAg
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZyb20gaW1wIGltcG9ydCByZWxvYWQKKyAg
ICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2xvYWRlcigpOgorICAgICAgICAgICAgICAgIGltcG9ydCBmaWxl
CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBmaWxlLnJlbG9hZGVkKCkKKyAgICAgICAgICAg
ICAgICBmaWxlLnJld3JpdGVfc2VsZigpCisgICAgICAgICAgICAgICAgcmVsb2FkKGZpbGUpCisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGZpbGUucmVsb2FkZWQoKQorICAgICAgICAgICAgIiIiCisg
ICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAxIHBhc3NlZCoiXSkKKwogICAgIGRl
ZiB0ZXN0X2dldF9kYXRhX3N1cHBvcnQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgICIiIkltcGxl
bWVudCBvcHRpb25hbCBQRVAzMDIgYXBpICgjODA4KS4KICAgICAgICAgIiIiCiAgICAgICAgIHBh
dGggPSB0ZXN0ZGlyLm1rcHlkaXIoImZvbyIpCiAgICAgICAgIHBhdGguam9pbigidGVzdF9mb28u
cHkiKS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAorICAgICAgICAg
ICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAg
ICBjbGFzcyBUZXN0KG9iamVjdCk6CisgICAgICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Zvbyhz
ZWxmKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydCBwa2d1dGlsCisgICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhID0gcGtndXRpbC5nZXRfZGF0YSgnZm9vLnRlc3RfZm9vJywgJ2Rh
dGEudHh0JykKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBkYXRhID09IGInSGV5Jwog
ICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgY2xhc3MgVGVzdChvYmplY3QpOgotICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgaW1w
b3J0IHBrZ3V0aWwKLSAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHBrZ3V0aWwuZ2V0X2RhdGEo
J2Zvby50ZXN0X2ZvbycsICdkYXRhLnR4dCcpCi0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBk
YXRhID09IGInSGV5JwotICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAg
ICAgICBwYXRoLmpvaW4oImRhdGEudHh0Iikud3JpdGUoIkhleSIpCiAgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KCIqMSBwYXNzZWQqIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEg
cGFzc2VkKiJdKQogCiAKIGRlZiB0ZXN0X2lzc3VlNzMxKHRlc3RkaXIpOgpAQCAtMTA5MCw3ICsx
MTgxLDYgQEAgZGVmIHRlc3RfaXNzdWU3MzEodGVzdGRpcik6CiAKIAogY2xhc3MgVGVzdElzc3Vl
OTI1KG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9zaW1wbGVfY2FzZShzZWxmLCB0ZXN0ZGlyKToK
ICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC0xMDk5LDcg
KzExODksNyBAQCBjbGFzcyBUZXN0SXNzdWU5MjUob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAg
ICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIipFKmFzc2VydCAoRmFsc2UgPT0gRmFsc2UpID09IEZh
bHNlIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKkUqYXNzZXJ0IChG
YWxzZSA9PSBGYWxzZSkgPT0gRmFsc2UiXSkKIAogICAgIGRlZiB0ZXN0X2xvbmdfY2FzZShzZWxm
LCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKApAQCAtMTEwOSw3ICsxMTk5
LDcgQEAgY2xhc3MgVGVzdElzc3VlOTI1KG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAgICAp
CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKCIqRSphc3NlcnQgKEZhbHNlID09IFRydWUpID09IFRydWUiKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqRSphc3NlcnQgKEZhbHNlID09
IFRydWUpID09IFRydWUiXSkKIAogICAgIGRlZiB0ZXN0X21hbnlfYnJhY2tldHMoc2VsZiwgdGVz
dGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAgLTExMTksMjYgKzEyMDksMTg5
IEBAIGNsYXNzIFRlc3RJc3N1ZTkyNShvYmplY3QpOgogICAgICAgICAgICAgIiIiCiAgICAgICAg
ICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoIipFKmFzc2VydCBUcnVlID09ICgoRmFsc2UgPT0gVHJ1ZSkg
PT0gVHJ1ZSkiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqRSphc3Nl
cnQgVHJ1ZSA9PSAoKEZhbHNlID09IFRydWUpID09IFRydWUpIl0pCiAKIAotY2xhc3MgVGVzdElz
c3VlMjEyMSgpOgorY2xhc3MgVGVzdElzc3VlMjEyMToKKyAgICBkZWYgdGVzdF9yZXdyaXRlX3B5
dGhvbl9maWxlc19jb250YWluX3N1YmRpcnMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICoqeworICAgICAgICAgICAgICAgICJ0ZXN0cy9m
aWxlLnB5IjogIiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3Rfc2ltcGxlX2ZhaWx1cmUoKToK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IDEgKyAxID09IDMKKyAgICAgICAgICAgICAgICAi
IiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoCisg
ICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgICAg
IHB5dGhvbl9maWxlcyA9IHRlc3RzLyoqLnB5CisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIipFKmFzc2VydCAoMSArIDEpID09IDMiXSkKKworCitAcHl0ZXN0
Lm1hcmsuc2tpcGlmKAorICAgIHN5cy5tYXhzaXplIDw9ICgyICoqIDMxIC0gMSksIHJlYXNvbj0i
Q2F1c2VzIE92ZXJmbG93RXJyb3Igb24gMzJiaXQgc3lzdGVtcyIKKykKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgib2Zmc2V0IiwgWy0xLCArMV0pCitkZWYgdGVzdF9zb3VyY2VfbXRpbWVfbG9u
Z19sb25nKHRlc3RkaXIsIG9mZnNldCk6CisgICAgIiIiU3VwcG9ydCBtb2RpZmljYXRpb24gZGF0
ZXMgYWZ0ZXIgMjAzOCBpbiByZXdyaXR0ZW4gZmlsZXMgKCM0OTAzKS4KKworICAgIHB5dGVzdCB3
b3VsZCBjcmFzaCB3aXRoOgogCi0gICAgZGVmIHRlc3Rfc2ltcGxlKHNlbGYsIHRlc3RkaXIpOgot
ICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJ0ZXN0cy9maWxlLnB5IikuZW5zdXJlKCkud3Jp
dGUoCisgICAgICAgICAgICBmcC53cml0ZShzdHJ1Y3QucGFjaygiPGxsIiwgbXRpbWUsIHNpemUp
KQorICAgICAgICBFICAgc3RydWN0LmVycm9yOiBhcmd1bWVudCBvdXQgb2YgcmFuZ2UKKyAgICAi
IiIKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgZGVm
IHRlc3QoKTogcGFzcworICAgICIiIgorICAgICkKKyAgICAjIHVzZSB1bnNpZ25lZCBsb25nIHRp
bWVzdGFtcCB3aGljaCBvdmVyZmxvd3Mgc2lnbmVkIGxvbmcsCisgICAgIyB3aGljaCB3YXMgdGhl
IGNhdXNlIG9mIHRoZSBidWcKKyAgICAjICsxIG9mZnNldCBhbHNvIHRlc3RzIG1hc2tpbmcgb2Yg
MHhGRkZGRkZGRgorICAgIHRpbWVzdGFtcCA9IDIgKiogMzIgKyBvZmZzZXQKKyAgICBvcy51dGlt
ZShzdHIocCksICh0aW1lc3RhbXAsIHRpbWVzdGFtcCkpCisgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworCitkZWYgdGVzdF9yZXdy
aXRlX2luZmluaXRlX3JlY3Vyc2lvbih0ZXN0ZGlyLCBweXRlc3Rjb25maWcsIG1vbmtleXBhdGNo
KToKKyAgICAiIiJGaXggaW5maW5pdGUgcmVjdXJzaW9uIHdoZW4gd3JpdGluZyBweWMgZmlsZXM6
IGlmIGFuIGltcG9ydCBoYXBwZW5zIHRvIGJlIHRyaWdnZXJlZCB3aGVuIHdyaXRpbmcgdGhlIHB5
YworICAgIGZpbGUsIHRoaXMgd291bGQgY2F1c2UgYW5vdGhlciBjYWxsIHRvIHRoZSBob29rLCB3
aGljaCB3b3VsZCB0cmlnZ2VyIGFub3RoZXIgcHljIHdyaXRpbmcsIHdoaWNoIGNvdWxkCisgICAg
dHJpZ2dlciBhbm90aGVyIGltcG9ydCwgYW5kIHNvIG9uLiAoIzM1MDYpIiIiCisgICAgZnJvbSBf
cHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgcmV3cml0ZQorCisgICAgdGVzdGRpci5zeXNwYXRoaW5z
ZXJ0KCkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9mb289ImRlZiB0ZXN0X2ZvbygpOiBw
YXNzIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9iYXI9ImRlZiB0ZXN0X2JhcigpOiBw
YXNzIikKKworICAgIG9yaWdpbmFsX3dyaXRlX3B5YyA9IHJld3JpdGUuX3dyaXRlX3B5YworCisg
ICAgd3JpdGVfcHljX2NhbGxlZCA9IFtdCisKKyAgICBkZWYgc3B5X3dyaXRlX3B5YygqYXJncywg
Kiprd2FyZ3MpOgorICAgICAgICAjIG1ha2UgYSBub3RlIHRoYXQgd2UgaGF2ZSBjYWxsZWQgX3dy
aXRlX3B5YworICAgICAgICB3cml0ZV9weWNfY2FsbGVkLmFwcGVuZChUcnVlKQorICAgICAgICAj
IHRyeSB0byBpbXBvcnQgYSBtb2R1bGUgYXQgdGhpcyBwb2ludDogd2Ugc2hvdWxkIG5vdCB0cnkg
dG8gcmV3cml0ZSB0aGlzIG1vZHVsZQorICAgICAgICBhc3NlcnQgaG9vay5maW5kX21vZHVsZSgi
dGVzdF9iYXIiKSBpcyBOb25lCisgICAgICAgIHJldHVybiBvcmlnaW5hbF93cml0ZV9weWMoKmFy
Z3MsICoqa3dhcmdzKQorCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihyZXdyaXRlLCAiX3dyaXRl
X3B5YyIsIHNweV93cml0ZV9weWMpCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMsICJkb250
X3dyaXRlX2J5dGVjb2RlIiwgRmFsc2UpCisKKyAgICBob29rID0gQXNzZXJ0aW9uUmV3cml0aW5n
SG9vayhweXRlc3Rjb25maWcpCisgICAgYXNzZXJ0IGhvb2suZmluZF9tb2R1bGUoInRlc3RfZm9v
IikgaXMgbm90IE5vbmUKKyAgICBhc3NlcnQgbGVuKHdyaXRlX3B5Y19jYWxsZWQpID09IDEKKwor
CitjbGFzcyBUZXN0RWFybHlSZXdyaXRlQmFpbG91dChvYmplY3QpOgorICAgIEBweXRlc3QuZml4
dHVyZQorICAgIGRlZiBob29rKHNlbGYsIHB5dGVzdGNvbmZpZywgbW9ua2V5cGF0Y2gsIHRlc3Rk
aXIpOgorICAgICAgICAiIiJSZXR1cm5zIGEgcGF0Y2hlZCBBc3NlcnRpb25SZXdyaXRpbmdIb29r
IGluc3RhbmNlIHNvIHdlIGNhbiBjb25maWd1cmUgaXRzIGluaXRpYWwgcGF0aHMgYW5kIHRyYWNr
CisgICAgICAgIGlmIGltcC5maW5kX21vZHVsZSBoYXMgYmVlbiBjYWxsZWQuCisgICAgICAgICIi
IgorICAgICAgICBpbXBvcnQgaW1wCisKKyAgICAgICAgc2VsZi5maW5kX21vZHVsZV9jYWxscyA9
IFtdCisgICAgICAgIHNlbGYuaW5pdGlhbF9wYXRocyA9IHNldCgpCisKKyAgICAgICAgY2xhc3Mg
U3R1YlNlc3Npb24ob2JqZWN0KToKKyAgICAgICAgICAgIF9pbml0aWFscGF0aHMgPSBzZWxmLmlu
aXRpYWxfcGF0aHMKKworICAgICAgICAgICAgZGVmIGlzaW5pdHBhdGgoc2VsZiwgcCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHAgaW4gc2VsZi5faW5pdGlhbHBhdGhzCisKKyAgICAgICAgZGVm
IHNweV9pbXBfZmluZF9tb2R1bGUobmFtZSwgcGF0aCk6CisgICAgICAgICAgICBzZWxmLmZpbmRf
bW9kdWxlX2NhbGxzLmFwcGVuZChuYW1lKQorICAgICAgICAgICAgcmV0dXJuIGltcC5maW5kX21v
ZHVsZShuYW1lLCBwYXRoKQorCisgICAgICAgIGhvb2sgPSBBc3NlcnRpb25SZXdyaXRpbmdIb29r
KHB5dGVzdGNvbmZpZykKKyAgICAgICAgIyB1c2UgZGVmYXVsdCBwYXR0ZXJucywgb3RoZXJ3aXNl
IHdlIGluaGVyaXQgcHl0ZXN0J3MgdGVzdGluZyBjb25maWcKKyAgICAgICAgaG9vay5mbnBhdHNb
Ol0gPSBbInRlc3RfKi5weSIsICIqX3Rlc3QucHkiXQorICAgICAgICBtb25rZXlwYXRjaC5zZXRh
dHRyKGhvb2ssICJfaW1wX2ZpbmRfbW9kdWxlIiwgc3B5X2ltcF9maW5kX21vZHVsZSkKKyAgICAg
ICAgaG9vay5zZXRfc2Vzc2lvbihTdHViU2Vzc2lvbigpKQorICAgICAgICB0ZXN0ZGlyLnN5c3Bh
dGhpbnNlcnQoKQorICAgICAgICByZXR1cm4gaG9vaworCisgICAgZGVmIHRlc3RfYmFzaWMoc2Vs
ZiwgdGVzdGRpciwgaG9vayk6CisgICAgICAgICIiIgorICAgICAgICBFbnN1cmUgd2UgYXZvaWQg
Y2FsbGluZyBpbXAuZmluZF9tb2R1bGUgd2hlbiB3ZSBrbm93IGZvciBzdXJlIGEgY2VydGFpbiBt
b2R1bGUgd2lsbCBub3QgYmUgcmV3cml0dGVuCisgICAgICAgIHRvIG9wdGltaXplIGFzc2VydGlv
biByZXdyaXRpbmcgKCMzOTE4KS4KKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZWNv
bmZ0ZXN0KAogICAgICAgICAgICAgIiIiCi1kZWYgdGVzdF9zaW1wbGVfZmFpbHVyZSgpOgotICAg
IGFzc2VydCAxICsgMSA9PSAzCi0iIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZpeCgpOiByZXR1cm4gMQor
ICAgICAgICAiIiIKICAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJweXRl
c3QuaW5pIikud3JpdGUoCi0gICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCi0gICAgICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICBbcHl0ZXN0XQotICAgICAgICAgICAgcHl0aG9uX2ZpbGVz
ID0gdGVzdHMvKioucHkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfZm9vPSJkZWYg
dGVzdF9mb28oKTogcGFzcyIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShiYXI9ImRlZiBi
YXIoKTogcGFzcyIpCisgICAgICAgIGZvb2Jhcl9wYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKGZv
b2Jhcj0iZGVmIGZvb2JhcigpOiBwYXNzIikKKyAgICAgICAgc2VsZi5pbml0aWFsX3BhdGhzLmFk
ZChmb29iYXJfcGF0aCkKKworICAgICAgICAjIGNvbmZ0ZXN0IGZpbGVzIHNob3VsZCBhbHdheXMg
YmUgcmV3cml0dGVuCisgICAgICAgIGFzc2VydCBob29rLmZpbmRfbW9kdWxlKCJjb25mdGVzdCIp
IGlzIG5vdCBOb25lCisgICAgICAgIGFzc2VydCBzZWxmLmZpbmRfbW9kdWxlX2NhbGxzID09IFsi
Y29uZnRlc3QiXQorCisgICAgICAgICMgZmlsZXMgbWF0Y2hpbmcgInB5dGhvbl9maWxlcyIgbWFz
ayBzaG91bGQgYWx3YXlzIGJlIHJld3JpdHRlbgorICAgICAgICBhc3NlcnQgaG9vay5maW5kX21v
ZHVsZSgidGVzdF9mb28iKSBpcyBub3QgTm9uZQorICAgICAgICBhc3NlcnQgc2VsZi5maW5kX21v
ZHVsZV9jYWxscyA9PSBbImNvbmZ0ZXN0IiwgInRlc3RfZm9vIl0KKworICAgICAgICAjIGZpbGUg
ZG9lcyBub3QgbWF0Y2ggInB5dGhvbl9maWxlcyI6IGVhcmx5IGJhaWxvdXQKKyAgICAgICAgYXNz
ZXJ0IGhvb2suZmluZF9tb2R1bGUoImJhciIpIGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IHNlbGYu
ZmluZF9tb2R1bGVfY2FsbHMgPT0gWyJjb25mdGVzdCIsICJ0ZXN0X2ZvbyJdCisKKyAgICAgICAg
IyBmaWxlIGlzIGFuIGluaXRpYWwgcGF0aCAocGFzc2VkIG9uIHRoZSBjb21tYW5kLWxpbmUpOiBz
aG91bGQgYmUgcmV3cml0dGVuCisgICAgICAgIGFzc2VydCBob29rLmZpbmRfbW9kdWxlKCJmb29i
YXIiKSBpcyBub3QgTm9uZQorICAgICAgICBhc3NlcnQgc2VsZi5maW5kX21vZHVsZV9jYWxscyA9
PSBbImNvbmZ0ZXN0IiwgInRlc3RfZm9vIiwgImZvb2JhciJdCisKKyAgICBkZWYgdGVzdF9wYXR0
ZXJuX2NvbnRhaW5zX3N1YmRpcmVjdG9yaWVzKHNlbGYsIHRlc3RkaXIsIGhvb2spOgorICAgICAg
ICAiIiJJZiBvbmUgb2YgdGhlIHB5dGhvbl9maWxlcyBwYXR0ZXJucyBjb250YWluIHN1YmRpcmVj
dG9yaWVzICgidGVzdHMvKioucHkiKSB3ZSBjYW4ndCBiYWlsb3V0IGVhcmx5CisgICAgICAgIGJl
Y2F1c2Ugd2UgbmVlZCB0byBtYXRjaCB3aXRoIHRoZSBmdWxsIHBhdGgsIHdoaWNoIGNhbiBvbmx5
IGJlIGZvdW5kIGJ5IGNhbGxpbmcgaW1wLmZpbmRfbW9kdWxlLgogICAgICAgICAiIiIKLSAgICAg
ICAgICAgICkKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICoq
eworICAgICAgICAgICAgICAgICJ0ZXN0cy9maWxlLnB5IjogIiIiCisgICAgICAgICAgICAgICAg
ICAgICAgICBkZWYgdGVzdF9zaW1wbGVfZmFpbHVyZSgpOgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCAxICsgMSA9PSAzCisgICAgICAgICAgICAgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIH0KICAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQocC5k
aXJwYXRoKCkpCisgICAgICAgIGhvb2suZm5wYXRzWzpdID0gWyJ0ZXN0cy8qKi5weSJdCisgICAg
ICAgIGFzc2VydCBob29rLmZpbmRfbW9kdWxlKCJmaWxlIikgaXMgbm90IE5vbmUKKyAgICAgICAg
YXNzZXJ0IHNlbGYuZmluZF9tb2R1bGVfY2FsbHMgPT0gWyJmaWxlIl0KIAorICAgIEBweXRlc3Qu
bWFyay5za2lwaWYoCisgICAgICAgIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4zMiIpLCBy
ZWFzb249ImNhbm5vdCByZW1vdmUgY3dkIG9uIFdpbmRvd3MiCisgICAgKQorICAgIGRlZiB0ZXN0
X2N3ZF9jaGFuZ2VkKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgIyBTZXR1
cCBjb25kaXRpb25zIGZvciBweSdzIGZzcGF0aCB0cnlpbmcgdG8gaW1wb3J0IHBhdGhsaWIgb24g
cHkzNAorICAgICAgICAjIGFsd2F5cyAocHJldmlvdXNseSB0cmlnZ2VyZWQgdmlhIHhkaXN0IG9u
bHkpLgorICAgICAgICAjIFJlZjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHkvcHVs
bC8yMDcKKyAgICAgICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9wcmVwZW5kKCIiKQorICAgICAgICBt
b25rZXlwYXRjaC5kZWxpdGVtKHN5cy5tb2R1bGVzLCAicGF0aGxpYiIsIHJhaXNpbmc9RmFsc2Up
CisKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgKip7CisgICAgICAg
ICAgICAgICAgInRlc3Rfc2V0dXBfbm9uZXhpc3RpbmdfY3dkLnB5IjogIiIiCisgICAgICAgICAg
ICAgICAgaW1wb3J0IG9zCisgICAgICAgICAgICAgICAgaW1wb3J0IHNodXRpbAorICAgICAgICAg
ICAgICAgIGltcG9ydCB0ZW1wZmlsZQorCisgICAgICAgICAgICAgICAgZCA9IHRlbXBmaWxlLm1r
ZHRlbXAoKQorICAgICAgICAgICAgICAgIG9zLmNoZGlyKGQpCisgICAgICAgICAgICAgICAgc2h1
dGlsLnJtdHJlZShkKQorICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgICAgICJ0ZXN0X3Rl
c3QucHkiOiAiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICB9CisgICAgICAgICkKICAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoIipFKmFzc2VydCAoMSArIDEpID09IDMiKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDEgcGFzc2VkIGluICoiXSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jYWNoZXByb3ZpZGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X2NhY2hlcHJvdmlkZXIucHkKaW5kZXggMzNkMWRkODQ0OGMxNWJjNDFhMmYxZWJk
NmZhMDM3ZWQ4ZDViM2VjYy4uNmRlMGIzMTI5MjkyMTJjNWI4Y2MwOTJkNmRkMjU2OGFkZWMwMzk5
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NhY2hlcHJvdmlkZXIucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NhY2hlcHJvdmlkZXIucHkKQEAgLTEsMTYg
KzEsMjIgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lv
biwgcHJpbnRfZnVuY3Rpb24KKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lv
bgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgb3MKK2lt
cG9ydCBzaHV0aWwKIGltcG9ydCBzeXMKK2ltcG9ydCB0ZXh0d3JhcAorCiBpbXBvcnQgcHkKLWlt
cG9ydCBfcHl0ZXN0CisKIGltcG9ydCBweXRlc3QKLWltcG9ydCBvcwotaW1wb3J0IHNodXRpbAor
ZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAogCi1weXRlc3Rf
cGx1Z2lucyA9ICJweXRlc3RlciIsCitweXRlc3RfcGx1Z2lucyA9ICgicHl0ZXN0ZXIiLCkKIAog
CiBjbGFzcyBUZXN0TmV3QVBJKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9jb25maWdfY2FjaGVf
bWFrZWRpcihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlaW5pKCJbcHl0ZXN0
XSIpCiAgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWd1cmUoKQpAQCAtMjYsMTAg
KzMyLDExIEBAIGNsYXNzIFRlc3ROZXdBUEkob2JqZWN0KToKICAgICAgICAgY2FjaGUgPSBjb25m
aWcuY2FjaGUKICAgICAgICAgcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogY2FjaGUu
c2V0KCJrZXkvbmFtZSIsIGNhY2hlKSkKICAgICAgICAgY29uZmlnLmNhY2hlLnNldCgia2V5L25h
bWUiLCAwKQotICAgICAgICBjb25maWcuY2FjaGUuX2dldHZhbHVlcGF0aCgia2V5L25hbWUiKS53
cml0ZSgiMTIzaW52YWxpZCIpCisgICAgICAgIGNvbmZpZy5jYWNoZS5fZ2V0dmFsdWVwYXRoKCJr
ZXkvbmFtZSIpLndyaXRlX2J5dGVzKGIiMTIzaW52YWxpZCIpCiAgICAgICAgIHZhbCA9IGNvbmZp
Zy5jYWNoZS5nZXQoImtleS9uYW1lIiwgLTIpCiAgICAgICAgIGFzc2VydCB2YWwgPT0gLTIKIAor
ICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiZGVmYXVsdCIpCiAgICAgZGVmIHRlc3Rf
Y2FjaGVfd3JpdGVmYWlsX2NhY2hmaWxlX3NpbGVudChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAg
dGVzdGRpci5tYWtlaW5pKCJbcHl0ZXN0XSIpCiAgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4o
Ii5weXRlc3RfY2FjaGUiKS53cml0ZSgiZ29uZSB3cm9uZyIpCkBAIC0zOCw2ICs0NSw5IEBAIGNs
YXNzIFRlc3ROZXdBUEkob2JqZWN0KToKICAgICAgICAgY2FjaGUuc2V0KCJ0ZXN0L2Jyb2tlbiIs
IFtdKQogCiAgICAgQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgi
d2luIiksIHJlYXNvbj0ibm8gY2htb2Qgb24gd2luZG93cyIpCisgICAgQHB5dGVzdC5tYXJrLmZp
bHRlcndhcm5pbmdzKAorICAgICAgICAiaWdub3JlOmNvdWxkIG5vdCBjcmVhdGUgY2FjaGUgcGF0
aDpweXRlc3QuUHl0ZXN0V2FybmluZyIKKyAgICApCiAgICAgZGVmIHRlc3RfY2FjaGVfd3JpdGVm
YWlsX3Blcm1pc3Npb25zKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vpbmko
IltweXRlc3RdIikKICAgICAgICAgdGVzdGRpci50bXBkaXIuZW5zdXJlX2RpcigiLnB5dGVzdF9j
YWNoZSIpLmNobW9kKDApCkBAIC00Niw2ICs1Niw3IEBAIGNsYXNzIFRlc3ROZXdBUEkob2JqZWN0
KToKICAgICAgICAgY2FjaGUuc2V0KCJ0ZXN0L2Jyb2tlbiIsIFtdKQogCiAgICAgQHB5dGVzdC5t
YXJrLnNraXBpZihzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgid2luIiksIHJlYXNvbj0ibm8gY2ht
b2Qgb24gd2luZG93cyIpCisgICAgQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJkZWZhdWx0
IikKICAgICBkZWYgdGVzdF9jYWNoZV9mYWlsdXJlX3dhcm5zKHNlbGYsIHRlc3RkaXIpOgogICAg
ICAgICB0ZXN0ZGlyLnRtcGRpci5lbnN1cmVfZGlyKCIucHl0ZXN0X2NhY2hlIikuY2htb2QoMCkK
ICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKApAQCAtNTcsNyArNjgsOCBAQCBjbGFzcyBUZXN0
TmV3QVBJKG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi1ydyIpCiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKLSAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmNvdWxkIG5vdCBjcmVhdGUgY2FjaGUgcGF0aCoi
LCAiKjIgd2FybmluZ3MqIl0pCisgICAgICAgICMgd2FybmluZ3MgZnJvbSBub2RlaWRzLCBsYXN0
ZmFpbGVkLCBhbmQgc3RlcHdpc2UKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKmNvdWxkIG5vdCBjcmVhdGUgY2FjaGUgcGF0aCoiLCAiKjMgd2FybmluZ3MqIl0pCiAKICAg
ICBkZWYgdGVzdF9jb25maWdfY2FjaGUoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KApAQCAtMTM4LDE1ICsxNTAsNDMgQEAgY2xhc3MgVGVzdE5ld0FQSShvYmpl
Y3QpOgogICAgICAgICBhc3NlcnQgdGVzdGRpci50bXBkaXIuam9pbigiY3VzdG9tX2NhY2hlX2Rp
ciIpLmlzZGlyKCkKIAogCi1kZWYgdGVzdF9jYWNoZV9yZXBvcnRoZWFkZXIodGVzdGRpcik6CitA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVudiIsICgoKSwgKCJUT1hfRU5WX0RJUiIsICIvdG94
X2Vudl9kaXIiKSkpCitkZWYgdGVzdF9jYWNoZV9yZXBvcnRoZWFkZXIoZW52LCB0ZXN0ZGlyLCBt
b25rZXlwYXRjaCk6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiImRlZiB0ZXN0X2ZvbygpOiBw
YXNzIiIiKQorICAgIGlmIGVudjoKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCplbnYpCisg
ICAgICAgIGV4cGVjdGVkID0gb3MucGF0aC5qb2luKGVudlsxXSwgIi5weXRlc3RfY2FjaGUiKQor
ICAgIGVsc2U6CisgICAgICAgIG1vbmtleXBhdGNoLmRlbGVudigiVE9YX0VOVl9ESVIiLCByYWlz
aW5nPUZhbHNlKQorICAgICAgICBleHBlY3RlZCA9ICIucHl0ZXN0X2NhY2hlIgorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsiY2FjaGVkaXI6ICVzIiAlIGV4cGVjdGVkXSkKKworCitkZWYgdGVzdF9jYWNoZV9yZXBv
cnRoZWFkZXJfZXh0ZXJuYWxfYWJzcGF0aCh0ZXN0ZGlyLCB0bXBkaXJfZmFjdG9yeSk6CisgICAg
ZXh0ZXJuYWxfY2FjaGUgPSB0bXBkaXJfZmFjdG9yeS5ta3RlbXAoCisgICAgICAgICJ0ZXN0X2Nh
Y2hlX3JlcG9ydGhlYWRlcl9leHRlcm5hbF9hYnNwYXRoX2FicyIKKyAgICApCisKICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgogICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgog
ICAgICAgICAgICAgcGFzcwogICAgICIiIgogICAgICkKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisg
ICAgICAgICIiIgorICAgIFtweXRlc3RdCisgICAgY2FjaGVfZGlyID0ge2Fic2NhY2hlfQorICAg
ICIiIi5mb3JtYXQoCisgICAgICAgICAgICBhYnNjYWNoZT1leHRlcm5hbF9jYWNoZQorICAgICAg
ICApCisgICAgKQorCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKLSAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJjYWNoZWRpcjogLnB5dGVzdF9jYWNoZSJdKQor
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWyJjYWNoZWRpcjoge2Fi
c2NhY2hlfSIuZm9ybWF0KGFic2NhY2hlPWV4dGVybmFsX2NhY2hlKV0KKyAgICApCiAKIAogZGVm
IHRlc3RfY2FjaGVfc2hvdyh0ZXN0ZGlyKToKQEAgLTE1Nyw2ICsxOTcsNyBAQCBkZWYgdGVzdF9j
YWNoZV9zaG93KHRlc3RkaXIpOgogICAgICAgICAiIiIKICAgICAgICAgZGVmIHB5dGVzdF9jb25m
aWd1cmUoY29uZmlnKToKICAgICAgICAgICAgIGNvbmZpZy5jYWNoZS5zZXQoIm15L25hbWUiLCBb
MSwyLDNdKQorICAgICAgICAgICAgY29uZmlnLmNhY2hlLnNldCgibXkvaGVsbG8iLCAid29ybGQi
KQogICAgICAgICAgICAgY29uZmlnLmNhY2hlLnNldCgib3RoZXIvc29tZSIsIHsxOjJ9KQogICAg
ICAgICAgICAgZHAgPSBjb25maWcuY2FjaGUubWFrZWRpcigibXlkYiIpCiAgICAgICAgICAgICBk
cC5lbnN1cmUoImhlbGxvIikKQEAgLTE2NSwyNiArMjA2LDQ0IEBAIGRlZiB0ZXN0X2NhY2hlX3No
b3codGVzdGRpcik6CiAgICAgKQogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAg
ICBhc3NlcnQgcmVzdWx0LnJldCA9PSA1ICAjIG5vIHRlc3RzIGV4ZWN1dGVkCisKICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jYWNoZS1zaG93IikKLSAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXNfcmFuZG9tKAorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygK
ICAgICAgICAgWwogICAgICAgICAgICAgIipjYWNoZWRpcjoqIiwKLSAgICAgICAgICAgICItKmNh
Y2hlIHZhbHVlcyotIiwKLSAgICAgICAgICAgICIqbXkvbmFtZSBjb250YWluczoiLAorICAgICAg
ICAgICAgIiotIGNhY2hlIHZhbHVlcyBmb3IgJ1sqXScgLSoiLAorICAgICAgICAgICAgImNhY2hl
L25vZGVpZHMgY29udGFpbnM6IiwKKyAgICAgICAgICAgICJteS9uYW1lIGNvbnRhaW5zOiIsCiAg
ICAgICAgICAgICAiICBbMSwgMiwgM10iLAotICAgICAgICAgICAgIipvdGhlci9zb21lIGNvbnRh
aW5zKiIsCi0gICAgICAgICAgICAiICB7KjEqOiAyfSIsCi0gICAgICAgICAgICAiLSpjYWNoZSBk
aXJlY3RvcmllcyotIiwKKyAgICAgICAgICAgICJvdGhlci9zb21lIGNvbnRhaW5zOiIsCisgICAg
ICAgICAgICAiICB7KicxJzogMn0iLAorICAgICAgICAgICAgIiotIGNhY2hlIGRpcmVjdG9yaWVz
IGZvciAnWypdJyAtKiIsCiAgICAgICAgICAgICAiKm15ZGIvaGVsbG8qbGVuZ3RoIDAqIiwKICAg
ICAgICAgICAgICIqbXlkYi93b3JsZCpsZW5ndGggMCoiLAogICAgICAgICBdCiAgICAgKQorICAg
IGFzc2VydCByZXN1bHQucmV0ID09IDAKIAorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItLWNhY2hlLXNob3ciLCAiKi9oZWxsbyIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKAorICAgICAgICBbCisgICAgICAgICAgICAiKmNhY2hlZGlyOioiLAorICAgICAgICAgICAg
IiotIGNhY2hlIHZhbHVlcyBmb3IgJ1sqXS9oZWxsbycgLSoiLAorICAgICAgICAgICAgIm15L2hl
bGxvIGNvbnRhaW5zOiIsCisgICAgICAgICAgICAiICAqJ3dvcmxkJyIsCisgICAgICAgICAgICAi
Ki0gY2FjaGUgZGlyZWN0b3JpZXMgZm9yICdbKl0vaGVsbG8nIC0qIiwKKyAgICAgICAgICAgICJk
L215ZGIvaGVsbG8qbGVuZ3RoIDAqIiwKKyAgICAgICAgXQorICAgICkKKyAgICBzdGRvdXQgPSBy
ZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgYXNzZXJ0ICJvdGhlci9zb21lIiBub3QgaW4gc3Rkb3V0
CisgICAgYXNzZXJ0ICJkL215ZGIvd29ybGQiIG5vdCBpbiBzdGRvdXQKKyAgICBhc3NlcnQgcmVz
dWx0LnJldCA9PSAwCiAKLWNsYXNzIFRlc3RMYXN0RmFpbGVkKG9iamVjdCk6CiAKK2NsYXNzIFRl
c3RMYXN0RmFpbGVkKG9iamVjdCk6CiAgICAgZGVmIHRlc3RfbGFzdGZhaWxlZF91c2VjYXNlKHNl
bGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKLSAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQ
WVRIT05ET05UV1JJVEVCWVRFQ09ERSIsIDEpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGVudigi
UFlUSE9ORE9OVFdSSVRFQllURUNPREUiLCAiMSIpCiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKQEAgLTE5
OCwyMyArMjU3LDI5IEBAIGNsYXNzIFRlc3RMYXN0RmFpbGVkKG9iamVjdCk6CiAgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKjIgZmFpbGVkKiJdKQogICAgICAgICBwLndyaXRlKAotICAgICAgICAgICAgX3B5
dGVzdC5fY29kZS5Tb3VyY2UoCi0gICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBkZWYg
dGVzdF8xKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgICAgIHRleHR3cmFw
LmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgZGVmIHRlc3Rf
MSgpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgMQogCi0gICAgICAgICAgICBkZWYgdGVz
dF8yKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF8yKCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAxCiAKLSAgICAgICAgICAgIGRlZiB0
ZXN0XzMoKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgMAotICAgICAgICAiIiIKKyAgICAgICAg
ICAgICAgICBkZWYgdGVzdF8zKCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAg
ICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICApCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMiBwYXNzZWQqMSBkZXNlbCoiXSkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi0tbGYiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyIqMSBmYWlsZWQqMiBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiY29sbGVjdGVkIDMgaXRlbXMi
LAorICAgICAgICAgICAgICAgICJydW4tbGFzdC1mYWlsdXJlOiBubyBwcmV2aW91c2x5IGZhaWxl
ZCB0ZXN0cywgbm90IGRlc2VsZWN0aW5nIGl0ZW1zLiIsCisgICAgICAgICAgICAgICAgIioxIGZh
aWxlZCoyIHBhc3NlZCoiLAorICAgICAgICAgICAgXQorICAgICAgICApCiAgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwgIi0tY2FjaGUtY2xlYXIiKQogICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBmYWlsZWQqMiBwYXNzZWQqIl0pCiAKQEAg
LTIyNiwxOSArMjkxLDE5IEBAIGNsYXNzIFRlc3RMYXN0RmFpbGVkKG9iamVjdCk6CiAKICAgICBk
ZWYgdGVzdF9mYWlsZWRmaXJzdF9vcmRlcihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRp
ci50bXBkaXIuam9pbigidGVzdF9hLnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9j
b2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAg
ICAiIiJcCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfYWx3YXlzX3Bhc3NlcygpOgorICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgMQogICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAg
ZGVmIHRlc3RfYWx3YXlzX3Bhc3NlcygpOgotICAgICAgICAgICAgICAgIGFzc2VydCAxCi0gICAg
ICAgICIiIgogICAgICAgICAgICAgKQogICAgICAgICApCiAgICAgICAgIHRlc3RkaXIudG1wZGly
LmpvaW4oInRlc3RfYi5weSIpLndyaXRlKAotICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3Vy
Y2UoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAor
ICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Fsd2F5c19mYWlscygpOgorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgMAogICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHRlc3Rf
YWx3YXlzX2ZhaWxzKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IDAKLSAgICAgICAgIiIiCiAg
ICAgICAgICAgICApCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQpAQCAtMjUxLDE0ICszMTYsMTQgQEAgY2xhc3MgVGVzdExhc3RGYWlsZWQob2JqZWN0KToK
ICAgICBkZWYgdGVzdF9sYXN0ZmFpbGVkX2ZhaWxlZGZpcnN0X29yZGVyKHNlbGYsIHRlc3RkaXIp
OgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAqKnsKLSAgICAgICAg
ICAgICAgICAidGVzdF9hLnB5IjogIiIiCisgICAgICAgICAgICAgICAgInRlc3RfYS5weSI6ICIi
IlwKICAgICAgICAgICAgICAgICBkZWYgdGVzdF9hbHdheXNfcGFzc2VzKCk6CiAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydCAxCi0gICAgICAgICAgICAiIiIsCi0gICAgICAgICAgICAgICAgInRl
c3RfYi5weSI6ICIiIgorICAgICAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgICAgICAidGVz
dF9iLnB5IjogIiIiXAogICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Fsd2F5c19mYWlscygpOgog
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQgMAotICAgICAgICAgICAgIiIiLAorICAgICAgICAg
ICAgICAgICIiIiwKICAgICAgICAgICAgIH0KICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCkBAIC0yNzAsMTggKzMzNSwxOCBAQCBjbGFzcyBUZXN0TGFzdEZh
aWxlZChvYmplY3QpOgogICAgICAgICBhc3NlcnQgInRlc3RfYS5weSIgbm90IGluIHJlc3VsdC5z
dGRvdXQuc3RyKCkKIAogICAgIGRlZiB0ZXN0X2xhc3RmYWlsZWRfZGlmZmVyZW5jZV9pbnZvY2F0
aW9ucyhzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6Ci0gICAgICAgIG1vbmtleXBhdGNoLnNl
dGVudigiUFlUSE9ORE9OVFdSSVRFQllURUNPREUiLCAxKQorICAgICAgICBtb25rZXlwYXRjaC5z
ZXRlbnYoIlBZVEhPTkRPTlRXUklURUJZVEVDT0RFIiwgIjEiKQogICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCi0gICAgICAgICAgICB0ZXN0X2E9IiIiCisgICAgICAgICAgICB0ZXN0X2E9IiIi
XAogICAgICAgICAgICAgZGVmIHRlc3RfYTEoKToKICAgICAgICAgICAgICAgICBhc3NlcnQgMAog
ICAgICAgICAgICAgZGVmIHRlc3RfYTIoKToKICAgICAgICAgICAgICAgICBhc3NlcnQgMQotICAg
ICAgICAiIiIsCi0gICAgICAgICAgICB0ZXN0X2I9IiIiCisgICAgICAgICAgICAiIiIsCisgICAg
ICAgICAgICB0ZXN0X2I9IiIiXAogICAgICAgICAgICAgZGVmIHRlc3RfYjEoKToKICAgICAgICAg
ICAgICAgICBhc3NlcnQgMAotICAgICAgICAiIiIsCisgICAgICAgICAgICAiIiIsCiAgICAgICAg
ICkKICAgICAgICAgcCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInRlc3RfYS5weSIpCiAgICAgICAg
IHAyID0gdGVzdGRpci50bXBkaXIuam9pbigidGVzdF9iLnB5IikKQEAgLTI5MSwxMSArMzU2LDEx
IEBAIGNsYXNzIFRlc3RMYXN0RmFpbGVkKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLWxmIiwgcDIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIioxIGZhaWxlZCoiXSkKICAgICAgICAgcDIud3JpdGUoCi0gICAgICAgICAgICBfcHl0
ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAg
ICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfYjEoKToKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IDEKICAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiB0
ZXN0X2IxKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IDEKLSAgICAgICAgIiIiCiAgICAgICAg
ICAgICApCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
bGYiLCBwMikKQEAgLTMwNCwyMCArMzY5LDIwIEBAIGNsYXNzIFRlc3RMYXN0RmFpbGVkKG9iamVj
dCk6CiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIGZhaWxlZCoxIGRl
c2VsKiJdKQogCiAgICAgZGVmIHRlc3RfbGFzdGZhaWxlZF91c2VjYXNlX3NwbGljZShzZWxmLCB0
ZXN0ZGlyLCBtb25rZXlwYXRjaCk6Ci0gICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9O
RE9OVFdSSVRFQllURUNPREUiLCAxKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEhP
TkRPTlRXUklURUJZVEVDT0RFIiwgIjEiKQogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIlwKICAgICAgICAgICAgIGRlZiB0ZXN0XzEo
KToKICAgICAgICAgICAgICAgICBhc3NlcnQgMAotICAgICAgICAiIiIKKyAgICAgICAgICAgICIi
IgogICAgICAgICApCiAgICAgICAgIHAyID0gdGVzdGRpci50bXBkaXIuam9pbigidGVzdF9zb21l
dGhpbmcucHkiKQogICAgICAgICBwMi53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUu
U291cmNlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIi
IlwKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydCAwCiAgICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBkZWYgdGVzdF8yKCk6Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0IDAKLSAgICAgICAgIiIiCiAgICAgICAgICAgICApCiAgICAg
ICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQpAQCAtMzU2LDcgKzQy
MSw3IEBAIGNsYXNzIFRlc3RMYXN0RmFpbGVkKG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAg
ICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMSBmYWlsZWQgaW4qIikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgZmFpbGVkIGluKiJdKQogCiAgICAgZGVmIHRlc3RfdGVy
bWluYWxfcmVwb3J0X2xhc3RmYWlsZWQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RfYSA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAgLTM4MSw5ICs0NDYsOSBAQCBjbGFzcyBUZXN0TGFzdEZh
aWxlZChvYmplY3QpOgogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1sZiIp
CiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgICAgIFsKLSAg
ICAgICAgICAgICAgICAiY29sbGVjdGVkIDQgaXRlbXMgLyAyIGRlc2VsZWN0ZWQiLAotICAgICAg
ICAgICAgICAgICJydW4tbGFzdC1mYWlsdXJlOiByZXJ1biBwcmV2aW91cyAyIGZhaWx1cmVzIiwK
LSAgICAgICAgICAgICAgICAiKjIgZmFpbGVkLCAyIGRlc2VsZWN0ZWQgaW4qIiwKKyAgICAgICAg
ICAgICAgICAiY29sbGVjdGVkIDIgaXRlbXMiLAorICAgICAgICAgICAgICAgICJydW4tbGFzdC1m
YWlsdXJlOiByZXJ1biBwcmV2aW91cyAyIGZhaWx1cmVzIChza2lwcGVkIDEgZmlsZSkiLAorICAg
ICAgICAgICAgICAgICIqMiBmYWlsZWQgaW4qIiwKICAgICAgICAgICAgIF0KICAgICAgICAgKQog
CkBAIC0zOTEsNyArNDU2LDcgQEAgY2xhc3MgVGVzdExhc3RGYWlsZWQob2JqZWN0KToKICAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICAgICAgWwogICAgICAgICAg
ICAgICAgICJjb2xsZWN0ZWQgMiBpdGVtcyIsCi0gICAgICAgICAgICAgICAgInJ1bi1sYXN0LWZh
aWx1cmU6IHJ1biBhbGwgKG5vIHJlY29yZGVkIGZhaWx1cmVzKSIsCisgICAgICAgICAgICAgICAg
InJ1bi1sYXN0LWZhaWx1cmU6IDIga25vd24gZmFpbHVyZXMgbm90IGluIHNlbGVjdGVkIHRlc3Rz
IiwKICAgICAgICAgICAgICAgICAiKjIgcGFzc2VkIGluKiIsCiAgICAgICAgICAgICBdCiAgICAg
ICAgICkKQEAgLTQ0OSw4ICs1MTQsOCBAQCBjbGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgog
ICAgICAgICApCiAKICAgICAgICAgZGVmIHJsZihmYWlsX2ltcG9ydCwgZmFpbF9ydW4pOgotICAg
ICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJGQUlMSU1QT1JUIiwgZmFpbF9pbXBvcnQpCi0g
ICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIkZBSUxURVNUIiwgZmFpbF9ydW4pCisgICAg
ICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIkZBSUxJTVBPUlQiLCBzdHIoZmFpbF9pbXBvcnQp
KQorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJGQUlMVEVTVCIsIHN0cihmYWlsX3J1
bikpCiAKICAgICAgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCItcSIpCiAgICAgICAgICAgICBj
b25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCkKQEAgLTQ5NCw4ICs1NTksOCBAQCBjbGFz
cyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgogICAgICAgICApCiAKICAgICAgICAgZGVmIHJsZihm
YWlsX2ltcG9ydCwgZmFpbF9ydW4sIGFyZ3M9KCkpOgotICAgICAgICAgICAgbW9ua2V5cGF0Y2gu
c2V0ZW52KCJGQUlMSU1QT1JUIiwgZmFpbF9pbXBvcnQpCi0gICAgICAgICAgICBtb25rZXlwYXRj
aC5zZXRlbnYoIkZBSUxURVNUIiwgZmFpbF9ydW4pCisgICAgICAgICAgICBtb25rZXlwYXRjaC5z
ZXRlbnYoIkZBSUxJTVBPUlQiLCBzdHIoZmFpbF9pbXBvcnQpKQorICAgICAgICAgICAgbW9ua2V5
cGF0Y2guc2V0ZW52KCJGQUlMVEVTVCIsIHN0cihmYWlsX3J1bikpCiAKICAgICAgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcSIsICItLWxmIiwgKmFyZ3MpCiAgICAgICAgICAg
ICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCkKQEAgLTU0Myw3ICs2MDgsNyBAQCBj
bGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQogICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcygiKjEgeGZhaWxlZCoiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMSB4ZmFpbGVkKiJdKQogICAgICAgICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVk
X2xhc3RfZmFpbGVkKHRlc3RkaXIpID09IFtdCiAKICAgICBkZWYgdGVzdF94ZmFpbF9zdHJpY3Rf
Y29uc2lkZXJlZF9mYWlsdXJlKHNlbGYsIHRlc3RkaXIpOgpAQCAtNTU2LDExICs2MjEsMTAgQEAg
Y2xhc3MgVGVzdExhc3RGYWlsZWQob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgICkKICAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoIioxIGZhaWxlZCoiKQotICAgICAgICBhc3NlcnQgKAotICAgICAgICAg
ICAgc2VsZi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHRlc3RkaXIpCi0gICAgICAgICAgICA9PSBb
InRlc3RfeGZhaWxfc3RyaWN0X2NvbnNpZGVyZWRfZmFpbHVyZS5weTo6dGVzdCJdCi0gICAgICAg
ICkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgZmFpbGVkKiJdKQor
ICAgICAgICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHRlc3RkaXIpID09IFsK
KyAgICAgICAgICAgICJ0ZXN0X3hmYWlsX3N0cmljdF9jb25zaWRlcmVkX2ZhaWx1cmUucHk6OnRl
c3QiCisgICAgICAgIF0KIAogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgibWFyayIsIFsi
bWFyay54ZmFpbCIsICJtYXJrLnNraXAiXSkKICAgICBkZWYgdGVzdF9mYWlsZWRfY2hhbmdlZF90
b194ZmFpbF9vcl9za2lwKHNlbGYsIHRlc3RkaXIsIG1hcmspOgpAQCAtNTcyLDEwICs2MzYsOSBA
QCBjbGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQog
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIGFzc2VydCAoCi0g
ICAgICAgICAgICBzZWxmLmdldF9jYWNoZWRfbGFzdF9mYWlsZWQodGVzdGRpcikKLSAgICAgICAg
ICAgID09IFsidGVzdF9mYWlsZWRfY2hhbmdlZF90b194ZmFpbF9vcl9za2lwLnB5Ojp0ZXN0Il0K
LSAgICAgICAgKQorICAgICAgICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHRl
c3RkaXIpID09IFsKKyAgICAgICAgICAgICJ0ZXN0X2ZhaWxlZF9jaGFuZ2VkX3RvX3hmYWlsX29y
X3NraXAucHk6OnRlc3QiCisgICAgICAgIF0KICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
MQogCiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAgLTU5Myw2ICs2NTYsMjMgQEAgY2xh
c3MgVGVzdExhc3RGYWlsZWQob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHNlbGYuZ2V0X2NhY2hl
ZF9sYXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbXQogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCiAKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInF1aWV0IiwgW1RydWUsIEZhbHNl
XSkKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm9wdCIsIFsiLS1mZiIsICItLWxmIl0p
CisgICAgZGVmIHRlc3RfbGZfYW5kX2ZmX3ByaW50c19ub19uZWVkbGVzc19tZXNzYWdlKHNlbGYs
IHF1aWV0LCBvcHQsIHRlc3RkaXIpOgorICAgICAgICAjIElzc3VlIDM4NTMKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdCgpOiBhc3NlcnQgMCIpCisgICAgICAgIGFyZ3MgPSBb
b3B0XQorICAgICAgICBpZiBxdWlldDoKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItcSIpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCphcmdzKQorICAgICAgICBhc3NlcnQg
InJ1biBhbGwiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoKmFyZ3MpCisgICAgICAgIGlmIHF1aWV0OgorICAgICAgICAgICAg
YXNzZXJ0ICJydW4gYWxsIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgYXNzZXJ0ICJyZXJ1biBwcmV2aW91cyIgaW4gcmVzdWx0LnN0ZG91dC5z
dHIoKQorCiAgICAgZGVmIGdldF9jYWNoZWRfbGFzdF9mYWlsZWQoc2VsZiwgdGVzdGRpcik6CiAg
ICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWd1cmUoKQogICAgICAgICByZXR1cm4g
c29ydGVkKGNvbmZpZy5jYWNoZS5nZXQoImNhY2hlL2xhc3RmYWlsZWQiLCB7fSkpCkBAIC02MTks
MTAgKzY5OSwxMCBAQCBjbGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgogICAgICAgICAiIiIK
ICAgICAgICAgKQogICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIGFzc2VydCAo
Ci0gICAgICAgICAgICBzZWxmLmdldF9jYWNoZWRfbGFzdF9mYWlsZWQodGVzdGRpcikKLSAgICAg
ICAgICAgID09IFsidGVzdF9iYXIucHk6OnRlc3RfYmFyXzIiLCAidGVzdF9mb28ucHk6OnRlc3Rf
Zm9vXzQiXQotICAgICAgICApCisgICAgICAgIGFzc2VydCBzZWxmLmdldF9jYWNoZWRfbGFzdF9m
YWlsZWQodGVzdGRpcikgPT0gWworICAgICAgICAgICAgInRlc3RfYmFyLnB5Ojp0ZXN0X2Jhcl8y
IiwKKyAgICAgICAgICAgICJ0ZXN0X2Zvby5weTo6dGVzdF9mb29fNCIsCisgICAgICAgIF0KIAog
ICAgICAgICAjIDIuIGZpeCB0ZXN0X2Jhcl8yLCBydW4gb25seSB0ZXN0X2Jhci5weQogICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBAIC02MzQsMTIgKzcxNCwxMiBAQCBjbGFzcyBUZXN0TGFz
dEZhaWxlZChvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0X2JhcikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKCIqMiBwYXNzZWQqIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsiKjIgcGFzc2VkKiJdKQogICAgICAgICAjIGVuc3VyZSBjYWNoZSBkb2VzIG5vdCBmb3Jn
ZXQgdGhhdCB0ZXN0X2Zvb180IGZhaWxlZCBvbmNlIGJlZm9yZQogICAgICAgICBhc3NlcnQgc2Vs
Zi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHRlc3RkaXIpID09IFsidGVzdF9mb28ucHk6OnRlc3Rf
Zm9vXzQiXQogCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxhc3QtZmFp
bGVkIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMSBmYWlsZWQsIDMg
ZGVzZWxlY3RlZCoiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBm
YWlsZWQsIDEgZGVzZWxlY3RlZCoiXSkKICAgICAgICAgYXNzZXJ0IHNlbGYuZ2V0X2NhY2hlZF9s
YXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbInRlc3RfZm9vLnB5Ojp0ZXN0X2Zvb180Il0KIAogICAg
ICAgICAjIDMuIGZpeCB0ZXN0X2Zvb180LCBydW4gb25seSB0ZXN0X2Zvby5weQpAQCAtNjUyLDEx
ICs3MzIsMTEgQEAgY2xhc3MgVGVzdExhc3RGYWlsZWQob2JqZWN0KToKICAgICAgICAgIiIiCiAg
ICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdF9mb28sICIt
LWxhc3QtZmFpbGVkIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMSBw
YXNzZWQsIDEgZGVzZWxlY3RlZCoiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWyIqMSBwYXNzZWQsIDEgZGVzZWxlY3RlZCoiXSkKICAgICAgICAgYXNzZXJ0IHNlbGYuZ2V0
X2NhY2hlZF9sYXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbXQogCiAgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItLWxhc3QtZmFpbGVkIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKCIqNCBwYXNzZWQqIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKjQgcGFzc2VkKiJdKQogICAgICAgICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVkX2xh
c3RfZmFpbGVkKHRlc3RkaXIpID09IFtdCiAKICAgICBkZWYgdGVzdF9sYXN0ZmFpbGVkX25vX2Zh
aWx1cmVzX2JlaGF2aW9yX2FsbF9wYXNzZWQoc2VsZiwgdGVzdGRpcik6CkBAIC02NzUsNyArNzU1
LDE0IEBAIGNsYXNzIFRlc3RMYXN0RmFpbGVkKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItLWxmIiwgIi0tbGZuZiIsICJhbGwiKQogICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMiBwYXNzZWQqIl0pCiAgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItLWxmIiwgIi0tbGZuZiIsICJub25lIikKLSAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjIgZGVzZWwqIl0pCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiY29sbGVj
dGVkIDIgaXRlbXMgLyAyIGRlc2VsZWN0ZWQiLAorICAgICAgICAgICAgICAgICJydW4tbGFzdC1m
YWlsdXJlOiBubyBwcmV2aW91c2x5IGZhaWxlZCB0ZXN0cywgZGVzZWxlY3RpbmcgYWxsIGl0ZW1z
LiIsCisgICAgICAgICAgICAgICAgIiogMiBkZXNlbGVjdGVkIGluICoiLAorICAgICAgICAgICAg
XQorICAgICAgICApCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNUU0NP
TExFQ1RFRAogCiAgICAgZGVmIHRlc3RfbGFzdGZhaWxlZF9ub19mYWlsdXJlc19iZWhhdmlvcl9l
bXB0eV9jYWNoZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKApA
QCAtNjkzLDkgKzc4MCwxMDIgQEAgY2xhc3MgVGVzdExhc3RGYWlsZWQob2JqZWN0KToKICAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiLCAiLS1jYWNoZS1jbGVhciIsICIt
LWxmbmYiLCAibm9uZSIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioy
IGRlc2VsKiJdKQogCisgICAgZGVmIHRlc3RfbGFzdGZhaWxlZF9za2lwX2NvbGxlY3Rpb24oc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IC0tbGYgYmVoYXZpb3IgcmVn
YXJkaW5nIHNraXBwaW5nIGNvbGxlY3Rpb24gb2YgZmlsZXMgdGhhdCBhcmUgbm90IG1hcmtlZCBh
cworICAgICAgICBmYWlsZWQgaW4gdGhlIGNhY2hlICgjNTE3MikuCisgICAgICAgICIiIgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAqKnsKKyAgICAgICAgICAgICAg
ICAicGtnMS90ZXN0XzEucHkiOiAiIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisK
KyAgICAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2knLCByYW5nZSgzKSkK
KyAgICAgICAgICAgICAgICBkZWYgdGVzdF8xKGkpOiBwYXNzCisgICAgICAgICAgICAiIiIsCisg
ICAgICAgICAgICAgICAgInBrZzIvdGVzdF8yLnB5IjogIiIiCisgICAgICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdp
JywgcmFuZ2UoNSkpCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMShpKToKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IGkgbm90IGluICgxLCAzKQorICAgICAgICAgICAgIiIiLAorICAgICAg
ICAgICAgfQorICAgICAgICApCisgICAgICAgICMgZmlyc3QgcnVuOiBjb2xsZWN0cyA4IGl0ZW1z
ICh0ZXN0XzE6IDMsIHRlc3RfMjogNSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJjb2xsZWN0ZWQgOCBp
dGVtcyIsICIqMiBmYWlsZWQqNiBwYXNzZWQqIl0pCisgICAgICAgICMgc2Vjb25kIHJ1bjogY29s
bGVjdHMgb25seSA1IGl0ZW1zIGZyb20gdGVzdF8yLCBiZWNhdXNlIGFsbCB0ZXN0cyBmcm9tIHRl
c3RfMSBoYXZlIHBhc3NlZAorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1s
ZiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsK
KyAgICAgICAgICAgICAgICAiY29sbGVjdGVkIDUgaXRlbXMgLyAzIGRlc2VsZWN0ZWQgLyAyIHNl
bGVjdGVkIiwKKyAgICAgICAgICAgICAgICAicnVuLWxhc3QtZmFpbHVyZTogcmVydW4gcHJldmlv
dXMgMiBmYWlsdXJlcyAoc2tpcHBlZCAxIGZpbGUpIiwKKyAgICAgICAgICAgICAgICAiKjIgZmFp
bGVkKjMgZGVzZWxlY3RlZCoiLAorICAgICAgICAgICAgXQorICAgICAgICApCisKKyAgICAgICAg
IyBhZGQgYW5vdGhlciBmaWxlIGFuZCBjaGVjayBpZiBtZXNzYWdlIGlzIGNvcnJlY3Qgd2hlbiBz
a2lwcGluZyBtb3JlIHRoYW4gMSBmaWxlCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgICAgICoqeworICAgICAgICAgICAgICAgICJwa2cxL3Rlc3RfMy5weSI6ICIiIgorICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0XzMoKTogcGFzcworICAgICAgICAgICAgIiIiCisgICAgICAg
ICAgICB9CisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
bGYiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBb
CisgICAgICAgICAgICAgICAgImNvbGxlY3RlZCA1IGl0ZW1zIC8gMyBkZXNlbGVjdGVkIC8gMiBz
ZWxlY3RlZCIsCisgICAgICAgICAgICAgICAgInJ1bi1sYXN0LWZhaWx1cmU6IHJlcnVuIHByZXZp
b3VzIDIgZmFpbHVyZXMgKHNraXBwZWQgMiBmaWxlcykiLAorICAgICAgICAgICAgICAgICIqMiBm
YWlsZWQqMyBkZXNlbGVjdGVkKiIsCisgICAgICAgICAgICBdCisgICAgICAgICkKKworICAgIGRl
ZiB0ZXN0X2xhc3RmYWlsZWRfd2l0aF9rbm93bl9mYWlsdXJlc19ub3RfYmVpbmdfc2VsZWN0ZWQo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAg
ICoqeworICAgICAgICAgICAgICAgICJwa2cxL3Rlc3RfMS5weSI6ICIiImRlZiB0ZXN0XzEoKTog
YXNzZXJ0IDAiIiIsCisgICAgICAgICAgICAgICAgInBrZzEvdGVzdF8yLnB5IjogIiIiZGVmIHRl
c3RfMigpOiBwYXNzIiIiLAorICAgICAgICAgICAgfQorICAgICAgICApCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsiY29sbGVjdGVkIDIgaXRlbXMiLCAiKiAxIGZhaWxlZCwgMSBwYXNzZWQgaW4gKiJdKQor
CisgICAgICAgIHB5LnBhdGgubG9jYWwoInBrZzEvdGVzdF8xLnB5IikucmVtb3ZlKCkKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgImNvbGxl
Y3RlZCAxIGl0ZW0iLAorICAgICAgICAgICAgICAgICJydW4tbGFzdC1mYWlsdXJlOiAxIGtub3du
IGZhaWx1cmVzIG5vdCBpbiBzZWxlY3RlZCB0ZXN0cyIsCisgICAgICAgICAgICAgICAgIiogMSBw
YXNzZWQgaW4gKiIsCisgICAgICAgICAgICBdCisgICAgICAgICkKKworICAgICAgICAjIFJlY3Jl
YXRlIGZpbGUgd2l0aCBrbm93biBmYWlsdXJlLgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
Kip7InBrZzEvdGVzdF8xLnB5IjogIiIiZGVmIHRlc3RfMSgpOiBhc3NlcnQgMCIiIn0pCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICJjb2xs
ZWN0ZWQgMSBpdGVtIiwKKyAgICAgICAgICAgICAgICAicnVuLWxhc3QtZmFpbHVyZTogcmVydW4g
cHJldmlvdXMgMSBmYWlsdXJlIChza2lwcGVkIDEgZmlsZSkiLAorICAgICAgICAgICAgICAgICIq
IDEgZmFpbGVkIGluICoiLAorICAgICAgICAgICAgXQorICAgICAgICApCisKKyAgICAgICAgIyBS
ZW1vdmUvcmVuYW1lIHRlc3QuCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKnsicGtnMS90
ZXN0XzEucHkiOiAiIiJkZWYgdGVzdF9yZW5hbWVkKCk6IGFzc2VydCAwIiIifSkKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgImNvbGxlY3Rl
ZCAxIGl0ZW0iLAorICAgICAgICAgICAgICAgICJydW4tbGFzdC1mYWlsdXJlOiAxIGtub3duIGZh
aWx1cmVzIG5vdCBpbiBzZWxlY3RlZCB0ZXN0cyAoc2tpcHBlZCAxIGZpbGUpIiwKKyAgICAgICAg
ICAgICAgICAiKiAxIGZhaWxlZCBpbiAqIiwKKyAgICAgICAgICAgIF0KKyAgICAgICAgKQogCi1j
bGFzcyBUZXN0TmV3Rmlyc3Qob2JqZWN0KToKIAorY2xhc3MgVGVzdE5ld0ZpcnN0KG9iamVjdCk6
CiAgICAgZGVmIHRlc3RfbmV3Zmlyc3RfdXNlY2FzZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgKip7CkBAIC04MTgsMyArOTk4LDc3IEBA
IGNsYXNzIFRlc3ROZXdGaXJzdChvYmplY3QpOgogICAgICAgICAgICAgICAgICIqdGVzdF8xL3Rl
c3RfMS5weTo6dGVzdF8xWzIqIiwKICAgICAgICAgICAgIF0KICAgICAgICAgKQorCisKK2NsYXNz
IFRlc3RSZWFkbWUob2JqZWN0KToKKyAgICBkZWYgY2hlY2tfcmVhZG1lKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCkKKyAgICAgICAgcmVh
ZG1lID0gY29uZmlnLmNhY2hlLl9jYWNoZWRpci5qb2lucGF0aCgiUkVBRE1FLm1kIikKKyAgICAg
ICAgcmV0dXJuIHJlYWRtZS5pc19maWxlKCkKKworICAgIGRlZiB0ZXN0X3JlYWRtZV9wYXNzZWQo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfYWx3YXlzX3Bhc3NlcygpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCAxCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHRlc3RkaXIucnVu
cHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHNlbGYuY2hlY2tfcmVhZG1lKHRlc3RkaXIpIGlzIFRy
dWUKKworICAgIGRlZiB0ZXN0X3JlYWRtZV9mYWlsZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRl
c3RfYWx3YXlzX2ZhaWxzKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIi
CisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQg
c2VsZi5jaGVja19yZWFkbWUodGVzdGRpcikgaXMgVHJ1ZQorCisKK2RlZiB0ZXN0X2dpdGlnbm9y
ZSh0ZXN0ZGlyKToKKyAgICAiIiJFbnN1cmUgd2UgYXV0b21hdGljYWxseSBjcmVhdGUgLmdpdGln
bm9yZSBmaWxlIGluIHRoZSBweXRlc3RfY2FjaGUgZGlyZWN0b3J5ICgjMzI4NikuIiIiCisgICAg
ZnJvbSBfcHl0ZXN0LmNhY2hlcHJvdmlkZXIgaW1wb3J0IENhY2hlCisKKyAgICBjb25maWcgPSB0
ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAgICBjYWNoZSA9IENhY2hlLmZvcl9jb25maWcoY29uZmln
KQorICAgIGNhY2hlLnNldCgiZm9vIiwgImJhciIpCisgICAgbXNnID0gIiMgQ3JlYXRlZCBieSBw
eXRlc3QgYXV0b21hdGljYWxseS5cbioiCisgICAgZ2l0aWdub3JlX3BhdGggPSBjYWNoZS5fY2Fj
aGVkaXIuam9pbnBhdGgoIi5naXRpZ25vcmUiKQorICAgIGFzc2VydCBnaXRpZ25vcmVfcGF0aC5y
ZWFkX3RleHQoZW5jb2Rpbmc9IlVURi04IikgPT0gbXNnCisKKyAgICAjIERvZXMgbm90IG92ZXJ3
cml0ZSBleGlzdGluZy9jdXN0b20gb25lLgorICAgIGdpdGlnbm9yZV9wYXRoLndyaXRlX3RleHQo
dSJjdXN0b20iKQorICAgIGNhY2hlLnNldCgic29tZXRoaW5nIiwgImVsc2UiKQorICAgIGFzc2Vy
dCBnaXRpZ25vcmVfcGF0aC5yZWFkX3RleHQoZW5jb2Rpbmc9IlVURi04IikgPT0gImN1c3RvbSIK
KworCitkZWYgdGVzdF9kb2VzX25vdF9jcmVhdGVfYm9pbGVycGxhdGVfaW5fZXhpc3RpbmdfZGly
cyh0ZXN0ZGlyKToKKyAgICBmcm9tIF9weXRlc3QuY2FjaGVwcm92aWRlciBpbXBvcnQgQ2FjaGUK
KworICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgIiIiCisgICAgICAgIFtweXRlc3RdCisg
ICAgICAgIGNhY2hlX2RpciA9IC4KKyAgICAgICAgIiIiCisgICAgKQorICAgIGNvbmZpZyA9IHRl
c3RkaXIucGFyc2Vjb25maWcoKQorICAgIGNhY2hlID0gQ2FjaGUuZm9yX2NvbmZpZyhjb25maWcp
CisgICAgY2FjaGUuc2V0KCJmb28iLCAiYmFyIikKKworICAgIGFzc2VydCBvcy5wYXRoLmlzZGly
KCJ2IikgICMgY2FjaGUgY29udGVudHMKKyAgICBhc3NlcnQgbm90IG9zLnBhdGguZXhpc3RzKCIu
Z2l0aWdub3JlIikKKyAgICBhc3NlcnQgbm90IG9zLnBhdGguZXhpc3RzKCJSRUFETUUubWQiKQor
CisKK2RlZiB0ZXN0X2NhY2hlZGlyX3RhZyh0ZXN0ZGlyKToKKyAgICAiIiJFbnN1cmUgd2UgYXV0
b21hdGljYWxseSBjcmVhdGUgQ0FDSEVESVIuVEFHIGZpbGUgaW4gdGhlIHB5dGVzdF9jYWNoZSBk
aXJlY3RvcnkgKCM0Mjc4KS4iIiIKKyAgICBmcm9tIF9weXRlc3QuY2FjaGVwcm92aWRlciBpbXBv
cnQgQ2FjaGUKKyAgICBmcm9tIF9weXRlc3QuY2FjaGVwcm92aWRlciBpbXBvcnQgQ0FDSEVESVJf
VEFHX0NPTlRFTlQKKworICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAgIGNh
Y2hlID0gQ2FjaGUuZm9yX2NvbmZpZyhjb25maWcpCisgICAgY2FjaGUuc2V0KCJmb28iLCAiYmFy
IikKKyAgICBjYWNoZWRpcl90YWdfcGF0aCA9IGNhY2hlLl9jYWNoZWRpci5qb2lucGF0aCgiQ0FD
SEVESVIuVEFHIikKKyAgICBhc3NlcnQgY2FjaGVkaXJfdGFnX3BhdGgucmVhZF9ieXRlcygpID09
IENBQ0hFRElSX1RBR19DT05URU5UCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfY2FwdHVyZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jYXB0dXJlLnB5CmluZGV4
IGUxNGIzYWY3ODUxNzIxMWFkMTkwMDRmYzYxODkxZTg0MGRiODNlOTYuLjAxMTIzYmY1YjQwMzcw
NmJlNGFmYjI1MDEyNDZiZTk1ZjFmZTk1N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF9jYXB0dXJlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jYXB0dXJl
LnB5CkBAIC0xLDQyICsxLDMzIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAot
IyBub3RlOiBweS5pbyBjYXB0dXJlIHRlc3RzIHdoZXJlIGNvcGllZCBmcm9tCi0jIHB5bGliIDEu
NC4yMC5kZXYyIChyZXYgMTNkOWFmOTU1NDdlKQotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRo
X3N0YXRlbWVudAotaW1wb3J0IHBpY2tsZQoraW1wb3J0IGNvbnRleHRsaWIKK2ltcG9ydCBpbwog
aW1wb3J0IG9zCitpbXBvcnQgcGlja2xlCitpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwor
aW1wb3J0IHRleHR3cmFwCiBmcm9tIGlvIGltcG9ydCBVbnN1cHBvcnRlZE9wZXJhdGlvbgogCi1p
bXBvcnQgX3B5dGVzdC5fY29kZQogaW1wb3J0IHB5Citmcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBl
CisKIGltcG9ydCBweXRlc3QKLWltcG9ydCBjb250ZXh0bGliCi1mcm9tIHNpeCBpbXBvcnQgYmlu
YXJ5X3R5cGUsIHRleHRfdHlwZQogZnJvbSBfcHl0ZXN0IGltcG9ydCBjYXB0dXJlCiBmcm9tIF9w
eXRlc3QuY2FwdHVyZSBpbXBvcnQgQ2FwdHVyZU1hbmFnZXIKK2Zyb20gX3B5dGVzdC5jb21wYXQg
aW1wb3J0IF9QWTMKIGZyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNU
RUQKIAotCi1uZWVkc29zZHVwID0gcHl0ZXN0Lm1hcmsueGZhaWwoIm5vdCBoYXNhdHRyKG9zLCAn
ZHVwJykiKQotCi0KLWRlZiB0b2J5dGVzKG9iaik6Ci0gICAgaWYgaXNpbnN0YW5jZShvYmosIHRl
eHRfdHlwZSk6Ci0gICAgICAgIG9iaiA9IG9iai5lbmNvZGUoIlVURi04IikKLSAgICBhc3NlcnQg
aXNpbnN0YW5jZShvYmosIGJpbmFyeV90eXBlKQotICAgIHJldHVybiBvYmoKLQotCi1kZWYgdG90
ZXh0KG9iaik6Ci0gICAgaWYgaXNpbnN0YW5jZShvYmosIGJpbmFyeV90eXBlKToKLSAgICAgICAg
b2JqID0gdGV4dF90eXBlKG9iaiwgIlVURi04IikKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShvYmos
IHRleHRfdHlwZSkKLSAgICByZXR1cm4gb2JqCisjIG5vdGU6IHB5LmlvIGNhcHR1cmUgdGVzdHMg
d2hlcmUgY29waWVkIGZyb20KKyMgcHlsaWIgMS40LjIwLmRldjIgKHJldiAxM2Q5YWY5NTU0N2Up
CiAKIAotZGVmIG9zd3JpdGVieXRlcyhmZCwgb2JqKToKLSAgICBvcy53cml0ZShmZCwgdG9ieXRl
cyhvYmopKQorbmVlZHNvc2R1cCA9IHB5dGVzdC5tYXJrLnNraXBpZigKKyAgICBub3QgaGFzYXR0
cihvcywgImR1cCIpLCByZWFzb249InRlc3QgbmVlZHMgb3MuZHVwLCBub3QgYXZhaWxhYmxlIG9u
IHRoaXMgcGxhdGZvcm0iCispCiAKIAogZGVmIFN0ZENhcHR1cmVGRChvdXQ9VHJ1ZSwgZXJyPVRy
dWUsIGluXz1UcnVlKToKQEAgLTQ4LDcgKzM5LDYgQEAgZGVmIFN0ZENhcHR1cmUob3V0PVRydWUs
IGVycj1UcnVlLCBpbl89VHJ1ZSk6CiAKIAogY2xhc3MgVGVzdENhcHR1cmVNYW5hZ2VyKG9iamVj
dCk6Ci0KICAgICBkZWYgdGVzdF9nZXRtZXRob2RfZGVmYXVsdF9ub19mZChzZWxmLCBtb25rZXlw
YXRjaCk6CiAgICAgICAgIGZyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBweXRlc3RfYWRkb3B0
aW9uCiAgICAgICAgIGZyb20gX3B5dGVzdC5jb25maWcuYXJncGFyc2luZyBpbXBvcnQgUGFyc2Vy
CkBAIC02Miw5ICs1Miw4IEBAIGNsYXNzIFRlc3RDYXB0dXJlTWFuYWdlcihvYmplY3QpOgogICAg
ICAgICBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcikKICAgICAgICAgYXNzZXJ0IHBhcnNlci5fZ3Jv
dXBzWzBdLm9wdGlvbnNbMF0uZGVmYXVsdCA9PSAic3lzIgogCi0gICAgQG5lZWRzb3NkdXAKICAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCi0gICAgICAgICJtZXRob2QiLCBbIm5vIiwgInN5
cyIsIHB5dGVzdC5tYXJrLnNraXBpZignbm90IGhhc2F0dHIob3MsICJkdXAiKScsICJmZCIpXQor
ICAgICAgICAibWV0aG9kIiwgWyJubyIsICJzeXMiLCBweXRlc3QucGFyYW0oImZkIiwgbWFya3M9
bmVlZHNvc2R1cCldCiAgICAgKQogICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19iYXNpY19hcGkoc2Vs
ZiwgbWV0aG9kKToKICAgICAgICAgY2Fwb3V0ZXIgPSBTdGRDYXB0dXJlRkQoKQpAQCAtNzIsMTkg
KzYxLDIzIEBAIGNsYXNzIFRlc3RDYXB0dXJlTWFuYWdlcihvYmplY3QpOgogICAgICAgICB0cnk6
CiAgICAgICAgICAgICBjYXBtYW4gPSBDYXB0dXJlTWFuYWdlcihtZXRob2QpCiAgICAgICAgICAg
ICBjYXBtYW4uc3RhcnRfZ2xvYmFsX2NhcHR1cmluZygpCi0gICAgICAgICAgICBvdXRlcnIgPSBj
YXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAgICBjYXBtYW4uc3VzcGVu
ZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAgICBvdXRlcnIgPSBjYXBtYW4ucmVhZF9nbG9i
YWxfY2FwdHVyZSgpCiAgICAgICAgICAgICBhc3NlcnQgb3V0ZXJyID09ICgiIiwgIiIpCi0gICAg
ICAgICAgICBvdXRlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAg
ICAgICBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAgICBvdXRlcnIg
PSBjYXBtYW4ucmVhZF9nbG9iYWxfY2FwdHVyZSgpCiAgICAgICAgICAgICBhc3NlcnQgb3V0ZXJy
ID09ICgiIiwgIiIpCiAgICAgICAgICAgICBwcmludCgiaGVsbG8iKQotICAgICAgICAgICAgb3V0
LCBlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAgICBjYXBt
YW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAgICBvdXQsIGVyciA9IGNhcG1h
bi5yZWFkX2dsb2JhbF9jYXB0dXJlKCkKICAgICAgICAgICAgIGlmIG1ldGhvZCA9PSAibm8iOgog
ICAgICAgICAgICAgICAgIGFzc2VydCBvbGQgPT0gKHN5cy5zdGRvdXQsIHN5cy5zdGRlcnIsIHN5
cy5zdGRpbikKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBv
dXQKICAgICAgICAgICAgIGNhcG1hbi5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUoKQogICAgICAgICAg
ICAgcHJpbnQoImhlbGxvIikKLSAgICAgICAgICAgIG91dCwgZXJyID0gY2FwbWFuLnN1c3BlbmRf
Z2xvYmFsX2NhcHR1cmUoKQorICAgICAgICAgICAgY2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1
cmUoKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXBtYW4ucmVhZF9nbG9iYWxfY2FwdHVyZSgp
CiAgICAgICAgICAgICBpZiBtZXRob2QgIT0gIm5vIjoKICAgICAgICAgICAgICAgICBhc3NlcnQg
b3V0ID09ICJoZWxsb1xuIgogICAgICAgICAgICAgY2FwbWFuLnN0b3BfZ2xvYmFsX2NhcHR1cmlu
ZygpCkBAIC05Nyw3ICs5MCw3IEBAIGNsYXNzIFRlc3RDYXB0dXJlTWFuYWdlcihvYmplY3QpOgog
ICAgICAgICB0cnk6CiAgICAgICAgICAgICBjYXBtYW4gPSBDYXB0dXJlTWFuYWdlcigiZmQiKQog
ICAgICAgICAgICAgY2FwbWFuLnN0YXJ0X2dsb2JhbF9jYXB0dXJpbmcoKQotICAgICAgICAgICAg
cHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvciwgImNhcG1hbi5zdGFydF9nbG9iYWxfY2FwdHVy
aW5nKCkiKQorICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvciwgY2FwbWFu
LnN0YXJ0X2dsb2JhbF9jYXB0dXJpbmcpCiAgICAgICAgICAgICBjYXBtYW4uc3RvcF9nbG9iYWxf
Y2FwdHVyaW5nKCkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIGNhcG91dGVyLnN0b3Bf
Y2FwdHVyaW5nKCkKQEAgLTExMywxMiArMTA2LDEyIEBAIGRlZiB0ZXN0X2NhcHR1cmluZ191bmlj
b2RlKHRlc3RkaXIsIG1ldGhvZCk6CiAgICAgICAgIG9iaiA9ICJ1J1x1MDBmNnknIgogICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgIiIiCi0gICAgICAgICMgY29kaW5nPXV0ZjgKKyAg
ICAgICAgIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICAgICAgICAgIyB0YWtlbiBmcm9tIGlzc3Vl
IDIyNyBmcm9tIG5vc2V0ZXN0cwogICAgICAgICBkZWYgdGVzdF91bmljb2RlKCk6CiAgICAgICAg
ICAgICBpbXBvcnQgc3lzCi0gICAgICAgICAgICBwcmludCAoc3lzLnN0ZG91dCkKLSAgICAgICAg
ICAgIHByaW50ICglcykKKyAgICAgICAgICAgIHByaW50KHN5cy5zdGRvdXQpCisgICAgICAgICAg
ICBwcmludCglcykKICAgICAiIiIKICAgICAgICAgJSBvYmoKICAgICApCkBAIC0xMzEsNyArMTI0
LDcgQEAgZGVmIHRlc3RfY2FwdHVyaW5nX2J5dGVzX2luX3V0ZjhfZW5jb2RpbmcodGVzdGRpciwg
bWV0aG9kKToKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgogICAgICAgICBk
ZWYgdGVzdF91bmljb2RlKCk6Ci0gICAgICAgICAgICBwcmludCAoJ2JcXHUwMGY2eScpCisgICAg
ICAgICAgICBwcmludCgnYlxcdTAwZjZ5JykKICAgICAiIiIKICAgICApCiAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi0tY2FwdHVyZT0lcyIgJSBtZXRob2QpCkBAIC0xNDEsMjggKzEz
NCwzNyBAQCBkZWYgdGVzdF9jYXB0dXJpbmdfYnl0ZXNfaW5fdXRmOF9lbmNvZGluZyh0ZXN0ZGly
LCBtZXRob2QpOgogZGVmIHRlc3RfY29sbGVjdF9jYXB0dXJpbmcodGVzdGRpcik6CiAgICAgcCA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgIiIiCi0gICAgICAgIHByaW50ICgiY29sbGVj
dCAlcyBmYWlsdXJlIiAlIDEzKQorICAgICAgICBpbXBvcnQgc3lzCisKKyAgICAgICAgcHJpbnQo
ImNvbGxlY3QgJXMgZmFpbHVyZSIgJSAxMykKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiY29s
bGVjdCAlc19zdGRlcnIgZmFpbHVyZSIgJSAxMykKICAgICAgICAgaW1wb3J0IHh5ejQyMTIzCiAg
ICAgIiIiCiAgICAgKQogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCi0gICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKkNhcHR1cmVkIHN0ZG91dCoiLCAiKmNvbGxlY3Qg
MTMgZmFpbHVyZSoiXSkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAg
IFsKKyAgICAgICAgICAgICIqQ2FwdHVyZWQgc3Rkb3V0KiIsCisgICAgICAgICAgICAiY29sbGVj
dCAxMyBmYWlsdXJlIiwKKyAgICAgICAgICAgICIqQ2FwdHVyZWQgc3RkZXJyKiIsCisgICAgICAg
ICAgICAiY29sbGVjdCAxM19zdGRlcnIgZmFpbHVyZSIsCisgICAgICAgIF0KKyAgICApCiAKIAog
Y2xhc3MgVGVzdFBlclRlc3RDYXB0dXJpbmcob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2NhcHR1
cmVfYW5kX2ZpeHR1cmVzKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtl
cHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKG1v
ZCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJzZXR1cCBtb2R1bGUiKQorICAgICAgICAgICAg
ICAgIHByaW50KCJzZXR1cCBtb2R1bGUiKQogICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9u
KGZ1bmN0aW9uKToKLSAgICAgICAgICAgICAgICBwcmludCAoInNldHVwICIgKyBmdW5jdGlvbi5f
X25hbWVfXykKKyAgICAgICAgICAgICAgICBwcmludCgic2V0dXAgIiArIGZ1bmN0aW9uLl9fbmFt
ZV9fKQogICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzEoKToKLSAgICAgICAgICAgICAgICBwcmlu
dCAoImluIGZ1bmMxIikKKyAgICAgICAgICAgICAgICBwcmludCgiaW4gZnVuYzEiKQogICAgICAg
ICAgICAgICAgIGFzc2VydCAwCiAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMigpOgotICAgICAg
ICAgICAgICAgIHByaW50ICgiaW4gZnVuYzIiKQorICAgICAgICAgICAgICAgIHByaW50KCJpbiBm
dW5jMiIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKICAgICAgICAgIiIiCiAgICAgICAgICkK
QEAgLTE4MywxNCArMTg1LDE0IEBAIGNsYXNzIFRlc3RQZXJUZXN0Q2FwdHVyaW5nKG9iamVjdCk6
CiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGltcG9ydCBzeXMKICAgICAgICAgICAgIGRl
ZiBzZXR1cF9tb2R1bGUoZnVuYyk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJtb2R1bGUtc2V0
dXAiKQorICAgICAgICAgICAgICAgIHByaW50KCJtb2R1bGUtc2V0dXAiKQogICAgICAgICAgICAg
ZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmMpOgotICAgICAgICAgICAgICAgIHByaW50ICgiZnVuY3Rp
b24tc2V0dXAiKQorICAgICAgICAgICAgICAgIHByaW50KCJmdW5jdGlvbi1zZXR1cCIpCiAgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jKCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJpbiBmdW5j
dGlvbiIpCisgICAgICAgICAgICAgICAgcHJpbnQoImluIGZ1bmN0aW9uIikKICAgICAgICAgICAg
ICAgICBhc3NlcnQgMAogICAgICAgICAgICAgZGVmIHRlYXJkb3duX2Z1bmN0aW9uKGZ1bmMpOgot
ICAgICAgICAgICAgICAgIHByaW50ICgiaW4gdGVhcmRvd24iKQorICAgICAgICAgICAgICAgIHBy
aW50KCJpbiB0ZWFyZG93biIpCiAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCkBAIC0yMDksOSArMjExLDkgQEAgY2xhc3MgVGVzdFBl
clRlc3RDYXB0dXJpbmcob2JqZWN0KToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgK
ICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzEoKToKLSAgICAgICAg
ICAgICAgICBwcmludCAoImluIGZ1bmMxIikKKyAgICAgICAgICAgICAgICBwcmludCgiaW4gZnVu
YzEiKQogICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoKToKLSAgICAgICAgICAgICAgICBwcmlu
dCAoImluIGZ1bmMyIikKKyAgICAgICAgICAgICAgICBwcmludCgiaW4gZnVuYzIiKQogICAgICAg
ICAgICAgICAgIGFzc2VydCAwCiAgICAgICAgICIiIgogICAgICAgICApCkBAIC0yMjQsMTIgKzIy
NiwxMiBAQCBjbGFzcyBUZXN0UGVyVGVzdENhcHR1cmluZyhvYmplY3QpOgogICAgICAgICBwID0g
dGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBkZWYgc2V0
dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgotICAgICAgICAgICAgICAgIHByaW50ICgic2V0dXAgZnVu
YzEiKQorICAgICAgICAgICAgICAgIHByaW50KCJzZXR1cCBmdW5jMSIpCiAgICAgICAgICAgICBk
ZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVuY3Rpb24pOgotICAgICAgICAgICAgICAgIHByaW50ICgi
dGVhcmRvd24gZnVuYzEiKQorICAgICAgICAgICAgICAgIHByaW50KCJ0ZWFyZG93biBmdW5jMSIp
CiAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKCk6
Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJpbiBmdW5jMSIpCisgICAgICAgICAgICAgICAgcHJp
bnQoImluIGZ1bmMxIikKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICIiIgogICAgICAg
ICApCkBAIC0yNDksNyArMjUxLDcgQEAgY2xhc3MgVGVzdFBlclRlc3RDYXB0dXJpbmcob2JqZWN0
KToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgogICAg
ICAgICAgICAgZGVmIHRlYXJkb3duX21vZHVsZShtb2QpOgotICAgICAgICAgICAgICAgIHByaW50
ICgidGVhcmRvd24gbW9kdWxlIikKKyAgICAgICAgICAgICAgICBwcmludCgidGVhcmRvd24gbW9k
dWxlIikKICAgICAgICAgICAgICAgICBhc3NlcnQgMAogICAgICAgICAgICAgZGVmIHRlc3RfZnVu
YygpOgogICAgICAgICAgICAgICAgIHBhc3MKQEAgLTI2NywxNiArMjY5LDE2IEBAIGNsYXNzIFRl
c3RQZXJUZXN0Q2FwdHVyaW5nKG9iamVjdCk6CiAKICAgICBkZWYgdGVzdF9jYXB0dXJpbmdfb3V0
ZXJyKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgaW1wb3J0IHN5cwog
ICAgICAgICAgICAgZGVmIHRlc3RfY2FwdHVyaW5nKCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQg
KDQyKQorICAgICAgICAgICAgICAgIHByaW50KDQyKQogICAgICAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoc3RyKDIzKSkKICAgICAgICAgICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19lcnJvcigp
OgotICAgICAgICAgICAgICAgIHByaW50ICgxKQorICAgICAgICAgICAgICAgIHByaW50KDEpCiAg
ICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShzdHIoMikpCiAgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcgotICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIgogICAgICAgICAp
CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAxKQogICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCkBAIC0yOTQsMzYgKzI5NiwzNSBAQCBjbGFzcyBUZXN0UGVy
VGVzdENhcHR1cmluZyhvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RMb2dnaW5nSW50ZXJhY3Rpb24o
b2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2xvZ2dpbmdfc3RyZWFtX293bmVyc2hpcChzZWxmLCB0
ZXN0ZGlyKToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgZGVmIHRlc3RfbG9nZ2luZygpOgogICAg
ICAgICAgICAgICAgIGltcG9ydCBsb2dnaW5nCiAgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAogICAgICAgICAgICAgICAgIHN0cmVhbSA9IGNhcHR1cmUuQ2FwdHVyZUlPKCkKICAgICAgICAg
ICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKHN0cmVhbT1zdHJlYW0pCiAgICAgICAgICAgICAg
ICAgc3RyZWFtLmNsb3NlKCkgIyB0byBmcmVlIG1lbW9yeS9yZWxlYXNlIHJlc291cmNlcwotICAg
ICAgICAiIiIKKyAgICAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MocCkKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5zdGRl
cnIuc3RyKCkuZmluZCgiYXRleGl0IikgPT0gLTEKIAogICAgIGRlZiB0ZXN0X2xvZ2dpbmdfYW5k
X2ltbWVkaWF0ZV9zZXR1cHRlYXJkb3duKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBwID0gdGVz
dGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAiIiJcCiAgICAg
ICAgICAgICBpbXBvcnQgbG9nZ2luZwogICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1
bmN0aW9uKToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm4oImhlbGxvMSIpCisgICAgICAg
ICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCJoZWxsbzEiKQogCiAgICAgICAgICAgICBkZWYgdGVz
dF9sb2dnaW5nKCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuKCJoZWxsbzIiKQorICAg
ICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygiaGVsbG8yIikKICAgICAgICAgICAgICAgICBh
c3NlcnQgMAogCiAgICAgICAgICAgICBkZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVuY3Rpb24pOgot
ICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8zIikKKyAgICAgICAgICAgICAgICBs
b2dnaW5nLndhcm5pbmcoImhlbGxvMyIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKLSAgICAg
ICAgIiIiCisgICAgICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICBmb3Igb3B0YXJncyBp
biAoKCItLWNhcHR1cmU9c3lzIiwpLCAoIi0tY2FwdHVyZT1mZCIsKSk6CiAgICAgICAgICAgICBw
cmludChvcHRhcmdzKQpAQCAtMzM3LDE5ICszMzgsMTkgQEAgY2xhc3MgVGVzdExvZ2dpbmdJbnRl
cmFjdGlvbihvYmplY3QpOgogCiAgICAgZGVmIHRlc3RfbG9nZ2luZ19hbmRfY3Jvc3NzY29wZV9m
aXh0dXJlcyhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgK
LSAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgaW1wb3J0IGxv
Z2dpbmcKICAgICAgICAgICAgIGRlZiBzZXR1cF9tb2R1bGUoZnVuY3Rpb24pOgotICAgICAgICAg
ICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8xIikKKyAgICAgICAgICAgICAgICBsb2dnaW5nLndh
cm5pbmcoImhlbGxvMSIpCiAKICAgICAgICAgICAgIGRlZiB0ZXN0X2xvZ2dpbmcoKToKLSAgICAg
ICAgICAgICAgICBsb2dnaW5nLndhcm4oImhlbGxvMiIpCisgICAgICAgICAgICAgICAgbG9nZ2lu
Zy53YXJuaW5nKCJoZWxsbzIiKQogICAgICAgICAgICAgICAgIGFzc2VydCAwCiAKICAgICAgICAg
ICAgIGRlZiB0ZWFyZG93bl9tb2R1bGUoZnVuY3Rpb24pOgotICAgICAgICAgICAgICAgIGxvZ2dp
bmcud2FybigiaGVsbG8zIikKKyAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoImhlbGxv
MyIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKLSAgICAgICAgIiIiCisgICAgICAgICAgICAi
IiIKICAgICAgICAgKQogICAgICAgICBmb3Igb3B0YXJncyBpbiAoKCItLWNhcHR1cmU9c3lzIiwp
LCAoIi0tY2FwdHVyZT1mZCIsKSk6CiAgICAgICAgICAgICBwcmludChvcHRhcmdzKQpAQCAtMzYz
LDExICszNjQsMTEgQEAgY2xhc3MgVGVzdExvZ2dpbmdJbnRlcmFjdGlvbihvYmplY3QpOgogCiAg
ICAgZGVmIHRlc3RfY29uZnRlc3Rsb2dnaW5nX2lzX3Nob3duKHNlbGYsIHRlc3RkaXIpOgogICAg
ICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
IiIiXAogICAgICAgICAgICAgICAgIGltcG9ydCBsb2dnaW5nCiAgICAgICAgICAgICAgICAgbG9n
Z2luZy5iYXNpY0NvbmZpZygpCi0gICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuKCJoZWxsbzQz
NSIpCi0gICAgICAgICIiIgorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygiaGVsbG80
MzUiKQorICAgICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgIyBtYWtlIHN1cmUgdGhh
dCBsb2dnaW5nIGlzIHN0aWxsIGNhcHR1cmVkIGluIHRlc3RzCiAgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi1zIiwgIi1wIiwgIm5vOmNhcHR1cmVsb2ciKQpA
QCAtMzc3LDE5ICszNzgsMTkgQEAgY2xhc3MgVGVzdExvZ2dpbmdJbnRlcmFjdGlvbihvYmplY3Qp
OgogCiAgICAgZGVmIHRlc3RfY29uZnRlc3Rsb2dnaW5nX2FuZF90ZXN0X2xvZ2dpbmcoc2VsZiwg
dGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIi
CisgICAgICAgICAgICAiIiJcCiAgICAgICAgICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKICAgICAg
ICAgICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKCkKLSAgICAgICAgIiIiCisgICAgICAgICAg
ICAiIiIKICAgICAgICAgKQogICAgICAgICAjIG1ha2Ugc3VyZSB0aGF0IGxvZ2dpbmcgaXMgc3Rp
bGwgY2FwdHVyZWQgaW4gdGVzdHMKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgZGVmIHRlc3RfaGVs
bG8oKToKICAgICAgICAgICAgICAgICBpbXBvcnQgbG9nZ2luZwotICAgICAgICAgICAgICAgIGxv
Z2dpbmcud2FybigiaGVsbG80MzMiKQorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygi
aGVsbG80MzMiKQogICAgICAgICAgICAgICAgIGFzc2VydCAwCi0gICAgICAgICIiIgorICAgICAg
ICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rf
c3VicHJvY2VzcyhwLCAiLXAiLCAibm86Y2FwdHVyZWxvZyIpCiAgICAgICAgIGFzc2VydCByZXN1
bHQucmV0ICE9IDAKQEAgLTM5NywzMCArMzk4LDYzIEBAIGNsYXNzIFRlc3RMb2dnaW5nSW50ZXJh
Y3Rpb24ob2JqZWN0KToKICAgICAgICAgYXNzZXJ0ICJzb21ldGhpbmciIG5vdCBpbiByZXN1bHQu
c3RkZXJyLnN0cigpCiAgICAgICAgIGFzc2VydCAib3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIiBu
b3QgaW4gcmVzdWx0LnN0ZGVyci5zdHIoKQogCisgICAgZGVmIHRlc3RfbG9nZ2luZ19hZnRlcl9j
YXBfc3RvcHBlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3Qo
CisgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgICAgIGltcG9ydCBsb2dnaW5nCiAKLWNsYXNzIFRlc3RDYXB0dXJlRml4dHVyZShvYmpl
Y3QpOgorICAgICAgICAgICAgICAgIGxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQor
CisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIGxv
Z19vbl90ZWFyZG93bigpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAg
ICAgICAgICBsb2cud2FybmluZygnTG9nZ2luZyBvbiB0ZWFyZG93bicpCisgICAgICAgICAgICAi
IiIKKyAgICAgICAgKQorICAgICAgICAjIG1ha2Ugc3VyZSB0aGF0IGxvZ2dpbmcgaXMgc3RpbGwg
Y2FwdHVyZWQgaW4gdGVzdHMKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAg
ICAgICAgICIiIlwKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGxvZ19vbl90ZWFyZG93bik6
CisgICAgICAgICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgICAgICAgICBsb2dnaW5n
Lndhcm5pbmcoImhlbGxvNDMzIikKKyAgICAgICAgICAgICAgICBhc3NlcnQgMQorICAgICAgICAg
ICAgICAgIHJhaXNlIEtleWJvYXJkSW50ZXJydXB0KCkKKyAgICAgICAgICAgICIiIgorICAgICAg
ICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MocCwgIi0t
bG9nLWNsaS1sZXZlbCIsICJpbmZvIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbIipXQVJO
SU5HKmhlbGxvNDMzKiIsICIqV0FSTklORypMb2dnaW5nIG9uIHRlYXJkb3duKiJdCisgICAgICAg
ICkKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICJBdHRyaWJ1dGVFcnJvcjogJ05vbmVU
eXBlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAncmVzdW1lX2NhcHR1cmluZyciCisgICAgICAg
ICAgICBub3QgaW4gcmVzdWx0LnN0ZGVyci5zdHIoKQorICAgICAgICApCiAKKworY2xhc3MgVGVz
dENhcHR1cmVGaXh0dXJlKG9iamVjdCk6CiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJv
cHQiLCBbW10sIFsiLXMiXV0pCiAgICAgZGVmIHRlc3Rfc3RkX2Z1bmN0aW9uYWwoc2VsZiwgdGVz
dGRpciwgb3B0KToKICAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKAot
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAiIiJcCiAgICAgICAgICAgICBkZWYgdGVzdF9o
ZWxsbyhjYXBzeXMpOgotICAgICAgICAgICAgICAgIHByaW50ICg0MikKKyAgICAgICAgICAgICAg
ICBwcmludCg0MikKICAgICAgICAgICAgICAgICBvdXQsIGVyciA9IGNhcHN5cy5yZWFkb3V0ZXJy
KCkKICAgICAgICAgICAgICAgICBhc3NlcnQgb3V0LnN0YXJ0c3dpdGgoIjQyIikKLSAgICAgICAg
IiIiLAorICAgICAgICAgICAgIiIiLAogICAgICAgICAgICAgKm9wdAogICAgICAgICApCiAgICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQogCiAgICAgZGVmIHRlc3RfY2Fwc3lz
Y2FwZmQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIlwKICAgICAgICAgICAgIGRlZiB0ZXN0X29u
ZShjYXBzeXMsIGNhcGZkKToKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBkZWYg
dGVzdF90d28oY2FwZmQsIGNhcHN5cyk6CiAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAi
IiIKKyAgICAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KHApCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKQEAgLTQz
OCwxMiArNDcyLDEyIEBAIGNsYXNzIFRlc3RDYXB0dXJlRml4dHVyZShvYmplY3QpOgogICAgICAg
ICBpbiB0aGUgc2FtZSB0ZXN0IGlzIGFuIGVycm9yLgogICAgICAgICAiIiIKICAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAiIiJcCiAgICAg
ICAgICAgICBkZWYgdGVzdF9vbmUoY2Fwc3lzLCByZXF1ZXN0KToKICAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgiY2FwZmQiKQogICAgICAgICAgICAgZGVmIHRlc3RfdHdv
KGNhcGZkLCByZXF1ZXN0KToKICAgICAgICAgICAgICAgICByZXF1ZXN0LmdldGZpeHR1cmV2YWx1
ZSgiY2Fwc3lzIikKLSAgICAgICAgIiIiCisgICAgICAgICAgICAiIiIKICAgICAgICAgKQogICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcygKQEAgLTQ1OCwxMCArNDkyLDEwIEBAIGNsYXNzIFRlc3RDYXB0dXJlRml4
dHVyZShvYmplY3QpOgogCiAgICAgZGVmIHRlc3RfY2Fwc3lzY2FwZmRiaW5hcnkoc2VsZiwgdGVz
dGRpcik6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgICIiIlwKICAgICAgICAgICAgIGRlZiB0ZXN0X29uZShjYXBzeXMsIGNhcGZk
YmluYXJ5KToKICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgorICAgICAgICAgICAg
IiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKICAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKApAQCAtNDcxLDEyICs1MDUsMTMgQEAg
Y2xhc3MgVGVzdENhcHR1cmVGaXh0dXJlKG9iamVjdCk6CiAgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJtZXRob2QiLCBbInN5cyIsICJmZCJdKQogICAgIGRlZiB0ZXN0X2NhcHR1cmVfaXNf
cmVwcmVzZW50ZWRfb25fZmFpbHVyZV9pc3N1ZTEyOChzZWxmLCB0ZXN0ZGlyLCBtZXRob2QpOgog
ICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAg
ICAgICBkZWYgdGVzdF9oZWxsbyhjYXAlcyk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJ4eHg0
Mnh4eCIpCisgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXB7
fSk6CisgICAgICAgICAgICAgICAgcHJpbnQoInh4eDQyeHh4IikKICAgICAgICAgICAgICAgICBh
c3NlcnQgMAotICAgICAgICAiIiIKLSAgICAgICAgICAgICUgbWV0aG9kCisgICAgICAgICAgICAi
IiIuZm9ybWF0KAorICAgICAgICAgICAgICAgIG1ldGhvZAorICAgICAgICAgICAgKQogICAgICAg
ICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCiAgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbInh4eDQyeHh4Il0pCkBAIC00ODQsMjEgKzUxOSwyMSBA
QCBjbGFzcyBUZXN0Q2FwdHVyZUZpeHR1cmUob2JqZWN0KToKICAgICBAbmVlZHNvc2R1cAogICAg
IGRlZiB0ZXN0X3N0ZGZkX2Z1bmN0aW9uYWwoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgKLSAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgIiIiXAogICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oY2FwZmQpOgogICAgICAgICAgICAg
ICAgIGltcG9ydCBvcwogICAgICAgICAgICAgICAgIG9zLndyaXRlKDEsICI0MiIuZW5jb2RlKCdh
c2NpaScpKQogICAgICAgICAgICAgICAgIG91dCwgZXJyID0gY2FwZmQucmVhZG91dGVycigpCiAg
ICAgICAgICAgICAgICAgYXNzZXJ0IG91dC5zdGFydHN3aXRoKCI0MiIpCiAgICAgICAgICAgICAg
ICAgY2FwZmQuY2xvc2UoKQotICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIgogICAgICAgICAp
CiAgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQogCiAgICAgQG5lZWRzb3Nk
dXAKICAgICBkZWYgdGVzdF9jYXBmZGJpbmFyeShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKAotICAgICAgICAgICAgIiIiCisgICAgICAg
ICAgICAiIiJcCiAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXBmZGJpbmFyeSk6CiAgICAg
ICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgICAgICAgIyBzb21lIGxpa2VseSB1bi1k
ZWNvZGFibGUgYnl0ZXMKQEAgLTUwNiw3ICs1NDEsNyBAQCBjbGFzcyBUZXN0Q2FwdHVyZUZpeHR1
cmUob2JqZWN0KToKICAgICAgICAgICAgICAgICBvdXQsIGVyciA9IGNhcGZkYmluYXJ5LnJlYWRv
dXRlcnIoKQogICAgICAgICAgICAgICAgIGFzc2VydCBvdXQgPT0gYidcXHhmZVxceDk4XFx4MjAn
CiAgICAgICAgICAgICAgICAgYXNzZXJ0IGVyciA9PSBiJycKLSAgICAgICAgIiIiCisgICAgICAg
ICAgICAiIiIKICAgICAgICAgKQogICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
MSkKIApAQCAtNTE1LDcgKzU1MCw3IEBAIGNsYXNzIFRlc3RDYXB0dXJlRml4dHVyZShvYmplY3Qp
OgogICAgICkKICAgICBkZWYgdGVzdF9jYXBzeXNiaW5hcnkoc2VsZiwgdGVzdGRpcik6CiAgICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgKLSAgICAgICAgICAgICIiIgor
ICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oY2Fwc3lzYmluYXJ5
KToKICAgICAgICAgICAgICAgICBpbXBvcnQgc3lzCiAgICAgICAgICAgICAgICAgIyBzb21lIGxp
a2VseSB1bi1kZWNvZGFibGUgYnl0ZXMKQEAgLTUyMyw3ICs1NTgsNyBAQCBjbGFzcyBUZXN0Q2Fw
dHVyZUZpeHR1cmUob2JqZWN0KToKICAgICAgICAgICAgICAgICBvdXQsIGVyciA9IGNhcHN5c2Jp
bmFyeS5yZWFkb3V0ZXJyKCkKICAgICAgICAgICAgICAgICBhc3NlcnQgb3V0ID09IGInXFx4ZmVc
XHg5OFxceDIwJwogICAgICAgICAgICAgICAgIGFzc2VydCBlcnIgPT0gYicnCi0gICAgICAgICIi
IgorICAgICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPTEpCiAKQEAgLTUzMiwyNiArNTY3LDI2IEBAIGNsYXNzIFRlc3RDYXB0dXJlRml4
dHVyZShvYmplY3QpOgogICAgICkKICAgICBkZWYgdGVzdF9jYXBzeXNiaW5hcnlfZm9yYmlkZGVu
X2luX3B5dGhvbjIoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
LSAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgZGVmIHRlc3Rf
aGVsbG8oY2Fwc3lzYmluYXJ5KToKICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgor
ICAgICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAgICAg
ICBbCiAgICAgICAgICAgICAgICAgIip0ZXN0X2hlbGxvKiIsCi0gICAgICAgICAgICAgICAgIipj
YXBzeXNiaW5hcnkgaXMgb25seSBzdXBwb3J0ZWQgb24gcHl0aG9uIDMqIiwKKyAgICAgICAgICAg
ICAgICAiKmNhcHN5c2JpbmFyeSBpcyBvbmx5IHN1cHBvcnRlZCBvbiBQeXRob24gMyoiLAogICAg
ICAgICAgICAgICAgICIqMSBlcnJvciBpbioiLAogICAgICAgICAgICAgXQogICAgICAgICApCiAK
ICAgICBkZWYgdGVzdF9wYXJ0aWFsX3NldHVwX2ZhaWx1cmUoc2VsZiwgdGVzdGRpcik6CiAgICAg
ICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
ICIiIlwKICAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGNhcHN5cywgbWlzc2luZ2FyZyk6CiAg
ICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIgogICAgICAg
ICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCiAgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip0ZXN0X3BhcnRpYWxfc2V0dXBfZmFpbHVyZSoiLCAi
KjEgZXJyb3IqIl0pCkBAIC01NTksMjEgKzU5NCwyMSBAQCBjbGFzcyBUZXN0Q2FwdHVyZUZpeHR1
cmUob2JqZWN0KToKICAgICBAbmVlZHNvc2R1cAogICAgIGRlZiB0ZXN0X2tleWJvYXJkaW50ZXJy
dXB0X2Rpc2FibGVzX2NhcHR1cmluZyhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcCA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAg
ICAgICAgZGVmIHRlc3RfaGVsbG8oY2FwZmQpOgogICAgICAgICAgICAgICAgIGltcG9ydCBvcwog
ICAgICAgICAgICAgICAgIG9zLndyaXRlKDEsIHN0cig0MikuZW5jb2RlKCdhc2NpaScpKQogICAg
ICAgICAgICAgICAgIHJhaXNlIEtleWJvYXJkSW50ZXJydXB0KCkKLSAgICAgICAgIiIiCisgICAg
ICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dF9zdWJwcm9jZXNzKHApCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipL
ZXlib2FyZEludGVycnVwdCoiXSkKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMgogCi0g
ICAgQHB5dGVzdC5tYXJrLmlzc3VlMTQKICAgICBkZWYgdGVzdF9jYXB0dXJlX2FuZF9sb2dnaW5n
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIjMTQiIiIKICAgICAgICAgcCA9IHRlc3RkaXIu
bWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAgICAg
ICAgaW1wb3J0IGxvZ2dpbmcKICAgICAgICAgICAgIGRlZiB0ZXN0X2xvZyhjYXBzeXMpOgogICAg
ICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJ3gnKQpAQCAtNTg2LDcgKzYyMSw3IEBAIGNsYXNz
IFRlc3RDYXB0dXJlRml4dHVyZShvYmplY3QpOgogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgibm9fY2FwdHVyZSIsIFtUcnVlLCBGYWxzZV0pCiAgICAgZGVmIHRlc3RfZGlzYWJsZWRfY2Fw
dHVyZV9maXh0dXJlKHNlbGYsIHRlc3RkaXIsIGZpeHR1cmUsIG5vX2NhcHR1cmUpOgogICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIlwK
ICAgICAgICAgICAgIGRlZiB0ZXN0X2Rpc2FibGVkKHtmaXh0dXJlfSk6CiAgICAgICAgICAgICAg
ICAgcHJpbnQoJ2NhcHR1cmVkIGJlZm9yZScpCiAgICAgICAgICAgICAgICAgd2l0aCB7Zml4dHVy
ZX0uZGlzYWJsZWQoKToKQEAgLTYyMCw3ICs2NTUsNyBAQCBjbGFzcyBUZXN0Q2FwdHVyZUZpeHR1
cmUob2JqZWN0KToKICAgICAgICAgRW5zdXJlIHRoYXQgY2Fwc3lzIGFuZCBjYXBmZCBjYW4gYmUg
dXNlZCBieSBvdGhlciBmaXh0dXJlcyBkdXJpbmcgc2V0dXAgYW5kIHRlYXJkb3duLgogICAgICAg
ICAiIiIKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICAiIiJcCiAgICAgICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1
bmN0aW9uCiAgICAgICAgICAgICBpbXBvcnQgc3lzCiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CkBAIC02NDgsMTkgKzY4Myw0NyBAQCBjbGFzcyBUZXN0Q2FwdHVyZUZpeHR1cmUob2JqZWN0KToK
ICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdF9zdWJwcm9jZXNzKCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIq
MSBwYXNzZWQqIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFz
c2VkKiJdKQogICAgICAgICBhc3NlcnQgInN0ZG91dCBjb250ZW50cyBiZWdpbiIgbm90IGluIHJl
c3VsdC5zdGRvdXQuc3RyKCkKICAgICAgICAgYXNzZXJ0ICJzdGRlcnIgY29udGVudHMgYmVnaW4i
IG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCiAKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImNhcCIsIFsiY2Fwc3lzIiwgImNhcGZkIl0pCisgICAgZGVmIHRlc3RfZml4dHVyZV91c2Vf
Ynlfb3RoZXJfZml4dHVyZXNfdGVhcmRvd24oc2VsZiwgdGVzdGRpciwgY2FwKToKKyAgICAgICAg
IiIiRW5zdXJlIHdlIGNhbiBhY2Nlc3Mgc2V0dXAgYW5kIHRlYXJkb3duIGJ1ZmZlcnMgZnJvbSB0
ZWFyZG93biB3aGVuIHVzaW5nIGNhcHN5cy9jYXBmZCAoIyMzMDMzKSIiIgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICBpbXBvcnQgc3lz
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBpbXBvcnQgb3MKKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiBmaXgoe2NhcH0pOgor
ICAgICAgICAgICAgICAgIHByaW50KCJzZXR1cCBvdXQiKQorICAgICAgICAgICAgICAgIHN5cy5z
dGRlcnIud3JpdGUoInNldHVwIGVyclxcbiIpCisgICAgICAgICAgICAgICAgeWllbGQKKyAgICAg
ICAgICAgICAgICBvdXQsIGVyciA9IHtjYXB9LnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgICAg
IGFzc2VydCBvdXQgPT0gJ3NldHVwIG91dFxcbmNhbGwgb3V0XFxuJworICAgICAgICAgICAgICAg
IGFzc2VydCBlcnIgPT0gJ3NldHVwIGVyclxcbmNhbGwgZXJyXFxuJworCisgICAgICAgICAgICBk
ZWYgdGVzdF9hKGZpeCk6CisgICAgICAgICAgICAgICAgcHJpbnQoImNhbGwgb3V0IikKKyAgICAg
ICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJjYWxsIGVyclxcbiIpCisgICAgICAgICIiIi5m
b3JtYXQoCisgICAgICAgICAgICAgICAgY2FwPWNhcAorICAgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5h
c3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCiAKIGRlZiB0ZXN0X3NldHVwX2ZhaWx1cmVfZG9lc19u
b3Rfa2lsbF9jYXB0dXJpbmcodGVzdGRpcik6CiAgICAgc3ViMSA9IHRlc3RkaXIubWtweWRpcigi
c3ViMSIpCiAgICAgc3ViMS5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICBfcHl0
ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAg
IiIiXAorICAgICAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgorICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIpCiAgICAgICAgICAgICAiIiIKLSAgICAgICAg
ZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcig0MikKLSAgICAiIiIKICAgICAgICAgKQogICAgICkKICAgICBzdWIxLmpvaW4oInRlc3Rf
bW9kLnB5Iikud3JpdGUoImRlZiB0ZXN0X2Z1bmMxKCk6IHBhc3MiKQpAQCAtNjg2LDcgKzc0OSw3
IEBAIGRlZiB0ZXN0X2NhcHR1cmVfY29uZnRlc3RfcnVudGVzdF9zZXR1cCh0ZXN0ZGlyKToKICAg
ICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgIiIiCiAgICAgICAgIGRlZiBweXRlc3Rf
cnVudGVzdF9zZXR1cCgpOgotICAgICAgICAgICAgcHJpbnQgKCJoZWxsbzE5IikKKyAgICAgICAg
ICAgIHByaW50KCJoZWxsbzE5IikKICAgICAiIiIKICAgICApCiAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQpAQCAtNzIxLDcgKzc4NCw3IEBAIGRlZiB0ZXN0
X2NhcHR1cmVfZWFybHlfb3B0aW9uX3BhcnNpbmcodGVzdGRpcik6CiAgICAgdGVzdGRpci5tYWtl
Y29uZnRlc3QoCiAgICAgICAgICIiIgogICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAo
KToKLSAgICAgICAgICAgIHByaW50ICgiaGVsbG8xOSIpCisgICAgICAgICAgICBwcmludCgiaGVs
bG8xOSIpCiAgICAgIiIiCiAgICAgKQogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3Rf
ZnVuYygpOiBwYXNzIikKQEAgLTc1NiwyMiArODE5LDIxIEBAIGRlZiB0ZXN0X2Vycm9yX2R1cmlu
Z19yZWFkb3V0ZXJyKHRlc3RkaXIpOgogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAg
cHl0ZXN0X3h5ej0iIiIKICAgICAgICAgZnJvbSBfcHl0ZXN0LmNhcHR1cmUgaW1wb3J0IEZEQ2Fw
dHVyZQorCiAgICAgICAgIGRlZiBiYWRfc25hcChzZWxmKToKICAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignYm9vbScpCisKICAgICAgICAgYXNzZXJ0IEZEQ2FwdHVyZS5zbmFwCiAgICAgICAg
IEZEQ2FwdHVyZS5zbmFwID0gYmFkX3NuYXAKICAgICAiIiIKICAgICApCi0gICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygKLSAgICAgICAgIi1wIiwgInB5dGVzdF94eXoi
LCAiLS12ZXJzaW9uIiwgc3lzcGF0aGluc2VydD1UcnVlCi0gICAgKQorICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi1wIiwgInB5dGVzdF94eXoiLCAiLS12ZXJzaW9u
IikKICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoCiAgICAgICAgIFsiKmluIGJhZF9z
bmFwIiwgIiAgICByYWlzZSBFeGNlcHRpb24oJ2Jvb20nKSIsICJFeGNlcHRpb246IGJvb20iXQog
ICAgICkKIAogCiBjbGFzcyBUZXN0Q2FwdHVyZUlPKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF90
ZXh0KHNlbGYpOgogICAgICAgICBmID0gY2FwdHVyZS5DYXB0dXJlSU8oKQogICAgICAgICBmLndy
aXRlKCJoZWxsbyIpCkBAIC03ODMsMTAgKzg0NSwxMCBAQCBjbGFzcyBUZXN0Q2FwdHVyZUlPKG9i
amVjdCk6CiAgICAgICAgIGYgPSBjYXB0dXJlLkNhcHR1cmVJTygpCiAgICAgICAgIGlmIHN5cy52
ZXJzaW9uX2luZm8gPj0gKDMsIDApOgogICAgICAgICAgICAgZi53cml0ZSgiXHUwMGY2IikKLSAg
ICAgICAgICAgIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yLCAiZi53cml0ZShieXRlcygnaGVsbG8n
LCAnVVRGLTgnKSkiKQorICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IsIGYud3Jp
dGUsIGIiaGVsbG8iKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgZi53cml0ZSh0ZXh0X3R5
cGUoIlx1MDBmNiIsICJVVEYtOCIpKQotICAgICAgICAgICAgZi53cml0ZSgiaGVsbG8iKSAgIyBi
eXRlcworICAgICAgICAgICAgZi53cml0ZSh1Ilx1MDBmNiIpCisgICAgICAgICAgICBmLndyaXRl
KGIiaGVsbG8iKQogICAgICAgICAgICAgcyA9IGYuZ2V0dmFsdWUoKQogICAgICAgICAgICAgZi5j
bG9zZSgpCiAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzLCB0ZXh0X3R5cGUpCkBAIC04
MDEsMTQgKzg2Myw2IEBAIGNsYXNzIFRlc3RDYXB0dXJlSU8ob2JqZWN0KToKICAgICAgICAgYXNz
ZXJ0IGYuZ2V0dmFsdWUoKSA9PSAiZm9vXHJcbiIKIAogCi1kZWYgdGVzdF9ieXRlc19pbygpOgot
ICAgIGYgPSBweS5pby5CeXRlc0lPKCkKLSAgICBmLndyaXRlKHRvYnl0ZXMoImhlbGxvIikpCi0g
ICAgcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IsICJmLndyaXRlKHRvdGV4dCgnaGVsbG8nKSkiKQot
ICAgIHMgPSBmLmdldHZhbHVlKCkKLSAgICBhc3NlcnQgcyA9PSB0b2J5dGVzKCJoZWxsbyIpCi0K
LQogZGVmIHRlc3RfZG9udHJlYWRmcm9taW5wdXQoKToKICAgICBmcm9tIF9weXRlc3QuY2FwdHVy
ZSBpbXBvcnQgRG9udFJlYWRGcm9tSW5wdXQKIApAQCAtODgzLDE4ICs5MzcsMTggQEAgZGVmIHRl
c3RfZHVwZmlsZSh0bXBmaWxlKToKIAogCiBkZWYgdGVzdF9kdXBmaWxlX29uX2J5dGVzaW8oKToK
LSAgICBpbyA9IHB5LmlvLkJ5dGVzSU8oKQotICAgIGYgPSBjYXB0dXJlLnNhZmVfdGV4dF9kdXBm
aWxlKGlvLCAid2IiKQorICAgIGJpbyA9IGlvLkJ5dGVzSU8oKQorICAgIGYgPSBjYXB0dXJlLnNh
ZmVfdGV4dF9kdXBmaWxlKGJpbywgIndiIikKICAgICBmLndyaXRlKCJoZWxsbyIpCi0gICAgYXNz
ZXJ0IGlvLmdldHZhbHVlKCkgPT0gYiJoZWxsbyIKKyAgICBhc3NlcnQgYmlvLmdldHZhbHVlKCkg
PT0gYiJoZWxsbyIKICAgICBhc3NlcnQgIkJ5dGVzSU8gb2JqZWN0IiBpbiBmLm5hbWUKIAogCiBk
ZWYgdGVzdF9kdXBmaWxlX29uX3RleHRpbygpOgotICAgIGlvID0gcHkuaW8uVGV4dElPKCkKLSAg
ICBmID0gY2FwdHVyZS5zYWZlX3RleHRfZHVwZmlsZShpbywgIndiIikKKyAgICB0aW8gPSBweS5p
by5UZXh0SU8oKQorICAgIGYgPSBjYXB0dXJlLnNhZmVfdGV4dF9kdXBmaWxlKHRpbywgIndiIikK
ICAgICBmLndyaXRlKCJoZWxsbyIpCi0gICAgYXNzZXJ0IGlvLmdldHZhbHVlKCkgPT0gImhlbGxv
IgorICAgIGFzc2VydCB0aW8uZ2V0dmFsdWUoKSA9PSAiaGVsbG8iCiAgICAgYXNzZXJ0IG5vdCBo
YXNhdHRyKGYsICJuYW1lIikKIAogCkBAIC05MDIsMTIgKzk1NiwxMiBAQCBkZWYgdGVzdF9kdXBm
aWxlX29uX3RleHRpbygpOgogZGVmIGxzb2ZfY2hlY2soKToKICAgICBwaWQgPSBvcy5nZXRwaWQo
KQogICAgIHRyeToKLSAgICAgICAgb3V0ID0gcHkucHJvY2Vzcy5jbWRleGVjKCJsc29mIC1wICVk
IiAlIHBpZCkKLSAgICBleGNlcHQgKHB5LnByb2Nlc3MuY21kZXhlYy5FcnJvciwgVW5pY29kZURl
Y29kZUVycm9yKToKKyAgICAgICAgb3V0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoKCJsc29m
IiwgIi1wIiwgc3RyKHBpZCkpKS5kZWNvZGUoKQorICAgIGV4Y2VwdCAoT1NFcnJvciwgc3VicHJv
Y2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IsIFVuaWNvZGVEZWNvZGVFcnJvcik6CiAgICAgICAgICMg
YWJvdXQgVW5pY29kZURlY29kZUVycm9yLCBzZWUgbm90ZSBvbiBweXRlc3RlcgogICAgICAgICBw
eXRlc3Quc2tpcCgiY291bGQgbm90IHJ1biAnbHNvZiciKQogICAgIHlpZWxkCi0gICAgb3V0MiA9
IHB5LnByb2Nlc3MuY21kZXhlYygibHNvZiAtcCAlZCIgJSBwaWQpCisgICAgb3V0MiA9IHN1YnBy
b2Nlc3MuY2hlY2tfb3V0cHV0KCgibHNvZiIsICItcCIsIHN0cihwaWQpKSkuZGVjb2RlKCkKICAg
ICBsZW4xID0gbGVuKFt4IGZvciB4IGluIG91dC5zcGxpdCgiXG4iKSBpZiAiUkVHIiBpbiB4XSkK
ICAgICBsZW4yID0gbGVuKFt4IGZvciB4IGluIG91dDIuc3BsaXQoIlxuIikgaWYgIlJFRyIgaW4g
eF0pCiAgICAgYXNzZXJ0IGxlbjIgPCBsZW4xICsgMywgb3V0MgpAQCAtOTE5LDcgKzk3Myw3IEBA
IGNsYXNzIFRlc3RGRENhcHR1cmUob2JqZWN0KToKICAgICBkZWYgdGVzdF9zaW1wbGUoc2VsZiwg
dG1wZmlsZSk6CiAgICAgICAgIGZkID0gdG1wZmlsZS5maWxlbm8oKQogICAgICAgICBjYXAgPSBj
YXB0dXJlLkZEQ2FwdHVyZShmZCkKLSAgICAgICAgZGF0YSA9IHRvYnl0ZXMoImhlbGxvIikKKyAg
ICAgICAgZGF0YSA9IGIiaGVsbG8iCiAgICAgICAgIG9zLndyaXRlKGZkLCBkYXRhKQogICAgICAg
ICBzID0gY2FwLnNuYXAoKQogICAgICAgICBjYXAuZG9uZSgpCkBAIC05NTksMTAgKzEwMTMsMTAg
QEAgY2xhc3MgVGVzdEZEQ2FwdHVyZShvYmplY3QpOgogICAgICAgICBjYXAuc3RhcnQoKQogICAg
ICAgICB4ID0gb3MucmVhZCgwLCAxMDApLnN0cmlwKCkKICAgICAgICAgY2FwLmRvbmUoKQotICAg
ICAgICBhc3NlcnQgeCA9PSB0b2J5dGVzKCIiKQorICAgICAgICBhc3NlcnQgeCA9PSBiIiIKIAog
ICAgIGRlZiB0ZXN0X3dyaXRlb3JnKHNlbGYsIHRtcGZpbGUpOgotICAgICAgICBkYXRhMSwgZGF0
YTIgPSB0b2J5dGVzKCJmb28iKSwgdG9ieXRlcygiYmFyIikKKyAgICAgICAgZGF0YTEsIGRhdGEy
ID0gYiJmb28iLCBiImJhciIKICAgICAgICAgY2FwID0gY2FwdHVyZS5GRENhcHR1cmUodG1wZmls
ZS5maWxlbm8oKSkKICAgICAgICAgY2FwLnN0YXJ0KCkKICAgICAgICAgdG1wZmlsZS53cml0ZShk
YXRhMSkKQEAgLTk3MCw3ICsxMDI0LDcgQEAgY2xhc3MgVGVzdEZEQ2FwdHVyZShvYmplY3QpOgog
ICAgICAgICBjYXAud3JpdGVvcmcoZGF0YTIpCiAgICAgICAgIHNjYXAgPSBjYXAuc25hcCgpCiAg
ICAgICAgIGNhcC5kb25lKCkKLSAgICAgICAgYXNzZXJ0IHNjYXAgPT0gdG90ZXh0KGRhdGExKQor
ICAgICAgICBhc3NlcnQgc2NhcCA9PSBkYXRhMS5kZWNvZGUoImFzY2lpIikKICAgICAgICAgd2l0
aCBvcGVuKHRtcGZpbGUubmFtZSwgInJiIikgYXMgc3RtcF9maWxlOgogICAgICAgICAgICAgc3Rt
cCA9IHN0bXBfZmlsZS5yZWFkKCkKICAgICAgICAgICAgIGFzc2VydCBzdG1wID09IGRhdGEyCkBA
IC05NzksMTcgKzEwMzMsMTcgQEAgY2xhc3MgVGVzdEZEQ2FwdHVyZShvYmplY3QpOgogICAgICAg
ICB3aXRoIHNhdmVkX2ZkKDEpOgogICAgICAgICAgICAgY2FwID0gY2FwdHVyZS5GRENhcHR1cmUo
MSkKICAgICAgICAgICAgIGNhcC5zdGFydCgpCi0gICAgICAgICAgICBkYXRhID0gdG9ieXRlcygi
aGVsbG8iKQorICAgICAgICAgICAgZGF0YSA9IGIiaGVsbG8iCiAgICAgICAgICAgICBvcy53cml0
ZSgxLCBkYXRhKQogICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgid2hhdGV2ZXIiKQogICAg
ICAgICAgICAgcyA9IGNhcC5zbmFwKCkKICAgICAgICAgICAgIGFzc2VydCBzID09ICJoZWxsb3do
YXRldmVyIgogICAgICAgICAgICAgY2FwLnN1c3BlbmQoKQotICAgICAgICAgICAgb3Mud3JpdGUo
MSwgdG9ieXRlcygid29ybGQiKSkKKyAgICAgICAgICAgIG9zLndyaXRlKDEsIGIid29ybGQiKQog
ICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgicWx3a2VqIikKICAgICAgICAgICAgIGFzc2Vy
dCBub3QgY2FwLnNuYXAoKQogICAgICAgICAgICAgY2FwLnJlc3VtZSgpCi0gICAgICAgICAgICBv
cy53cml0ZSgxLCB0b2J5dGVzKCJidXQgbm93IikpCisgICAgICAgICAgICBvcy53cml0ZSgxLCBi
ImJ1dCBub3ciKQogICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiIHllc1xuIikKICAgICAg
ICAgICAgIHMgPSBjYXAuc25hcCgpCiAgICAgICAgICAgICBhc3NlcnQgcyA9PSAiYnV0IG5vdyB5
ZXNcbiIKQEAgLTk5Nyw2ICsxMDUxLDkgQEAgY2xhc3MgVGVzdEZEQ2FwdHVyZShvYmplY3QpOgog
ICAgICAgICAgICAgY2FwLmRvbmUoKQogICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1
dGVFcnJvciwgY2FwLnN1c3BlbmQpCiAKKyAgICBkZWYgdGVzdF9jYXBmZF9zeXNfc3Rkb3V0X21v
ZGUoc2VsZiwgY2FwZmQpOgorICAgICAgICBhc3NlcnQgImIiIG5vdCBpbiBzeXMuc3Rkb3V0Lm1v
ZGUKKwogCiBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgogZGVmIHNhdmVkX2ZkKGZkKToKQEAg
LTEwNTcsOSArMTExNCw5IEBAIGNsYXNzIFRlc3RTdGRDYXB0dXJlKG9iamVjdCk6CiAKICAgICBk
ZWYgdGVzdF9jYXB0dXJpbmdfcmVhZG91dGVycl91bmljb2RlKHNlbGYpOgogICAgICAgICB3aXRo
IHNlbGYuZ2V0Y2FwdHVyZSgpIGFzIGNhcDoKLSAgICAgICAgICAgIHByaW50KCJoeFx4YzRceDg1
XHhjNFx4ODciKQorICAgICAgICAgICAgcHJpbnQoImh4xIXEhyIpCiAgICAgICAgICAgICBvdXQs
IGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKLSAgICAgICAgYXNzZXJ0IG91dCA9PSBweS5idWlsdGlu
Ll90b3RleHQoImh4XHhjNFx4ODVceGM0XHg4N1xuIiwgInV0ZjgiKQorICAgICAgICBhc3NlcnQg
b3V0ID09IHUiaHjEhcSHXG4iCiAKICAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKAogICAgICAgICAi
c3lzLnZlcnNpb25faW5mbyA+PSAoMywpIiwgcmVhc29uPSJ0ZXh0IG91dHB1dCBkaWZmZXJlbnQg
Zm9yIGJ5dGVzIG9uIHB5dGhvbjMiCkBAIC0xMDY5LDcgKzExMjYsNyBAQCBjbGFzcyBUZXN0U3Rk
Q2FwdHVyZShvYmplY3QpOgogICAgICAgICAgICAgIyB0cmlnZ2VyZWQgYW4gaW50ZXJuYWwgZXJy
b3IgaW4gcHl0ZXN0CiAgICAgICAgICAgICBwcmludCgiXHhhNiIpCiAgICAgICAgICAgICBvdXQs
IGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKLSAgICAgICAgYXNzZXJ0IG91dCA9PSBweS5idWlsdGlu
Ll90b3RleHQoIlx1ZmZmZFxuIiwgInVuaWNvZGUtZXNjYXBlIikKKyAgICAgICAgYXNzZXJ0IG91
dCA9PSB1Ilx1ZmZmZFxuIgogCiAgICAgZGVmIHRlc3RfcmVzZXRfdHdpY2VfZXJyb3Ioc2VsZik6
CiAgICAgICAgIHdpdGggc2VsZi5nZXRjYXB0dXJlKCkgYXMgY2FwOgpAQCAtMTEzMyw3ICsxMTkw
LDcgQEAgY2xhc3MgVGVzdFN0ZENhcHR1cmUob2JqZWN0KToKICAgICAgICAgcHJpbnQoIlhYWCB3
aGljaCBpbmRpY2F0ZXMgYW4gZXJyb3IgaW4gdGhlIHVuZGVybHlpbmcgY2FwdHVyaW5nIikKICAg
ICAgICAgcHJpbnQoIlhYWCBtZWNoYW5pc21zIikKICAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1
cmUoKToKLSAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoSU9FcnJvciwgInN5cy5zdGRpbi5yZWFk
KCkiKQorICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhJT0Vycm9yLCBzeXMuc3RkaW4ucmVhZCkK
IAogCiBjbGFzcyBUZXN0U3RkQ2FwdHVyZUZEKFRlc3RTdGRDYXB0dXJlKToKQEAgLTExNjAsMTQg
KzEyMTcsMTQgQEAgY2xhc3MgVGVzdFN0ZENhcHR1cmVGRChUZXN0U3RkQ2FwdHVyZSk6CiAKICAg
ICBkZWYgdGVzdF9pbnRlcm1pbmdsaW5nKHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuZ2V0Y2Fw
dHVyZSgpIGFzIGNhcDoKLSAgICAgICAgICAgIG9zd3JpdGVieXRlcygxLCAiMSIpCisgICAgICAg
ICAgICBvcy53cml0ZSgxLCBiIjEiKQogICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShzdHIo
MikpCiAgICAgICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKLSAgICAgICAgICAgIG9zd3JpdGVi
eXRlcygxLCAiMyIpCi0gICAgICAgICAgICBvc3dyaXRlYnl0ZXMoMiwgImEiKQorICAgICAgICAg
ICAgb3Mud3JpdGUoMSwgYiIzIikKKyAgICAgICAgICAgIG9zLndyaXRlKDIsIGIiYSIpCiAgICAg
ICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJiIikKICAgICAgICAgICAgIHN5cy5zdGRlcnIuZmx1
c2goKQotICAgICAgICAgICAgb3N3cml0ZWJ5dGVzKDIsICJjIikKKyAgICAgICAgICAgIG9zLndy
aXRlKDIsIGIiYyIpCiAgICAgICAgICAgICBvdXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKICAg
ICAgICAgYXNzZXJ0IG91dCA9PSAiMTIzIgogICAgICAgICBhc3NlcnQgZXJyID09ICJhYmMiCkBA
IC0xMTg3LDIwICsxMjQ0LDI2IEBAIGNsYXNzIFRlc3RTdGRDYXB0dXJlRkRpbnZhbGlkRkQob2Jq
ZWN0KToKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAg
ICBmcm9tIF9weXRlc3QgaW1wb3J0IGNhcHR1cmUKKwogICAgICAgICAgICAgZGVmIFN0ZENhcHR1
cmVGRChvdXQ9VHJ1ZSwgZXJyPVRydWUsIGluXz1UcnVlKToKLSAgICAgICAgICAgICAgICByZXR1
cm4gY2FwdHVyZS5NdWx0aUNhcHR1cmUob3V0LCBlcnIsIGluXywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXB0dXJlPWNhcHR1cmUuRkRDYXB0dXJlKQor
ICAgICAgICAgICAgICAgIHJldHVybiBjYXB0dXJlLk11bHRpQ2FwdHVyZShvdXQsIGVyciwgaW5f
LCBDYXB0dXJlPWNhcHR1cmUuRkRDYXB0dXJlKQorCiAgICAgICAgICAgICBkZWYgdGVzdF9zdGRv
dXQoKToKICAgICAgICAgICAgICAgICBvcy5jbG9zZSgxKQogICAgICAgICAgICAgICAgIGNhcCA9
IFN0ZENhcHR1cmVGRChvdXQ9VHJ1ZSwgZXJyPUZhbHNlLCBpbl89RmFsc2UpCisgICAgICAgICAg
ICAgICAgYXNzZXJ0IHJlcHIoY2FwLm91dCkgPT0gIjxGRENhcHR1cmUgMSBvbGRmZD1Ob25lIF9z
dGF0ZT1Ob25lPiIKICAgICAgICAgICAgICAgICBjYXAuc3RvcF9jYXB0dXJpbmcoKQorCiAgICAg
ICAgICAgICBkZWYgdGVzdF9zdGRlcnIoKToKICAgICAgICAgICAgICAgICBvcy5jbG9zZSgyKQog
ICAgICAgICAgICAgICAgIGNhcCA9IFN0ZENhcHR1cmVGRChvdXQ9RmFsc2UsIGVycj1UcnVlLCBp
bl89RmFsc2UpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcHIoY2FwLmVycikgPT0gIjxGRENh
cHR1cmUgMiBvbGRmZD1Ob25lIF9zdGF0ZT1Ob25lPiIKICAgICAgICAgICAgICAgICBjYXAuc3Rv
cF9jYXB0dXJpbmcoKQorCiAgICAgICAgICAgICBkZWYgdGVzdF9zdGRpbigpOgogICAgICAgICAg
ICAgICAgIG9zLmNsb3NlKDApCiAgICAgICAgICAgICAgICAgY2FwID0gU3RkQ2FwdHVyZUZEKG91
dD1GYWxzZSwgZXJyPUZhbHNlLCBpbl89VHJ1ZSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVw
cihjYXAuaW5fKSA9PSAiPEZEQ2FwdHVyZSAwIG9sZGZkPU5vbmUgX3N0YXRlPU5vbmU+IgogICAg
ICAgICAgICAgICAgIGNhcC5zdG9wX2NhcHR1cmluZygpCiAgICAgICAgICIiIgogICAgICAgICAp
CkBAIC0xMjg0LDE2ICsxMzQ3LDE2IEBAIGRlZiB0ZXN0X2NhcHR1cmluZ19hbmRfbG9nZ2luZ19m
dW5kYW1lbnRhbHModGVzdGRpciwgbWV0aG9kKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDYXB0dXJlPWNhcHR1cmUuJXMpCiAgICAgICAgIGNhcC5zdGFydF9jYXB0dXJp
bmcoKQogCi0gICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8xIikKKyAgICAgICAgbG9nZ2luZy53
YXJuaW5nKCJoZWxsbzEiKQogICAgICAgICBvdXRlcnIgPSBjYXAucmVhZG91dGVycigpCi0gICAg
ICAgIHByaW50ICgic3VzcGVuZCwgY2FwdHVyZWQgJSVzIiAlJShvdXRlcnIsKSkKLSAgICAgICAg
bG9nZ2luZy53YXJuKCJoZWxsbzIiKQorICAgICAgICBwcmludCgic3VzcGVuZCwgY2FwdHVyZWQg
JSVzIiAlJShvdXRlcnIsKSkKKyAgICAgICAgbG9nZ2luZy53YXJuaW5nKCJoZWxsbzIiKQogCiAg
ICAgICAgIGNhcC5wb3Bfb3V0ZXJyX3RvX29yaWcoKQotICAgICAgICBsb2dnaW5nLndhcm4oImhl
bGxvMyIpCisgICAgICAgIGxvZ2dpbmcud2FybmluZygiaGVsbG8zIikKIAogICAgICAgICBvdXRl
cnIgPSBjYXAucmVhZG91dGVycigpCi0gICAgICAgIHByaW50ICgic3VzcGVuZDIsIGNhcHR1cmVk
ICUlcyIgJSUgKG91dGVyciwpKQorICAgICAgICBwcmludCgic3VzcGVuZDIsIGNhcHR1cmVkICUl
cyIgJSUgKG91dGVyciwpKQogICAgICIiIgogICAgICAgICAlIChtZXRob2QsKQogICAgICkKQEAg
LTEzMzcsNyArMTQwMCw2IEBAIGRlZiB0ZXN0X3B5MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJv
dW5kX25vbl9zdGFuZGFyZF9zdHJlYW1zKCk6CiAgICAgZnJvbSBfcHl0ZXN0LmNhcHR1cmUgaW1w
b3J0IF9weTM2X3dpbmRvd3Njb25zb2xlaW9fd29ya2Fyb3VuZAogCiAgICAgY2xhc3MgRHVtbXlT
dHJlYW0ob2JqZWN0KToKLQogICAgICAgICBkZWYgd3JpdGUoc2VsZiwgcyk6CiAgICAgICAgICAg
ICBwYXNzCiAKQEAgLTEzNjAsMjggKzE0MjIsMzYgQEAgZGVmIHRlc3RfZG9udHJlYWRmcm9taW5w
dXRfaGFzX2VuY29kaW5nKHRlc3RkaXIpOgogCiAKIGRlZiB0ZXN0X2NyYXNoX29uX2Nsb3Npbmdf
dG1wZmlsZV9weTI3KHRlc3RkaXIpOgotICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICBwID0g
dGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAiIiIKICAgICAgICAgZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBwcmludF9mdW5jdGlvbgotICAgICAgICBpbXBvcnQgdGltZQogICAgICAgICBpbXBv
cnQgdGhyZWFkaW5nCiAgICAgICAgIGltcG9ydCBzeXMKIAorICAgICAgICBwcmludGluZyA9IHRo
cmVhZGluZy5FdmVudCgpCisKICAgICAgICAgZGVmIHNwYW0oKToKICAgICAgICAgICAgIGYgPSBz
eXMuc3RkZXJyCisgICAgICAgICAgICBwcmludCgnU1BBTUJFRk9SRScsIGVuZD0nJywgZmlsZT1m
KQorICAgICAgICAgICAgcHJpbnRpbmcuc2V0KCkKKwogICAgICAgICAgICAgd2hpbGUgVHJ1ZToK
LSAgICAgICAgICAgICAgICBwcmludCgnLicsIGVuZD0nJywgZmlsZT1mKQorICAgICAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZi5mbHVzaCgpCisgICAgICAgICAgICAgICAg
ZXhjZXB0IChPU0Vycm9yLCBWYWx1ZUVycm9yKToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsK
IAotICAgICAgICBkZWYgdGVzdF9zaWxseSgpOgorICAgICAgICBkZWYgdGVzdF9zcGFtX2luX3Ro
cmVhZCgpOgogICAgICAgICAgICAgdCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNwYW0pCiAg
ICAgICAgICAgICB0LmRhZW1vbiA9IFRydWUKICAgICAgICAgICAgIHQuc3RhcnQoKQotICAgICAg
ICAgICAgdGltZS5zbGVlcCgwLjUpCiAKKyAgICAgICAgICAgIHByaW50aW5nLndhaXQoKQogICAg
ICIiIgogICAgICkKLSAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkK
KyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKHN0cihwKSkKICAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgYXNzZXJ0IHJlc3VsdC5zdGRlcnIuc3RyKCkgPT0g
IiIKICAgICBhc3NlcnQgIklPRXJyb3IiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCiAKIApA
QCAtMTM5MiwzICsxNDYyLDExOCBAQCBkZWYgdGVzdF9waWNrbGluZ19hbmRfdW5waWNrbGluZ19l
bmNvZGVkX2ZpbGUoKToKICAgICBlZiA9IGNhcHR1cmUuRW5jb2RlZEZpbGUoTm9uZSwgTm9uZSkK
ICAgICBlZl9hc19zdHIgPSBwaWNrbGUuZHVtcHMoZWYpCiAgICAgcGlja2xlLmxvYWRzKGVmX2Fz
X3N0cikKKworCitkZWYgdGVzdF9nbG9iYWxfY2FwdHVyZV93aXRoX2xpdmVfbG9nZ2luZyh0ZXN0
ZGlyKToKKyAgICAjIElzc3VlIDM4MTkKKyAgICAjIGNhcHR1cmUgc2hvdWxkIHdvcmsgd2l0aCBs
aXZlIGNsaSBsb2dnaW5nCisKKyAgICAjIFRlYXJkb3duIHJlcG9ydCBzZWVtcyB0byBoYXZlIHRo
ZSBjYXB0dXJlIGZvciB0aGUgd2hvbGUgcHJvY2VzcyAoc2V0dXAsIGNhcHR1cmUsIHRlYXJkb3du
KQorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHB5
dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChyZXBvcnQpOgorICAgICAgICAgICAgaWYgInRlc3RfZ2xv
YmFsIiBpbiByZXBvcnQubm9kZWlkOgorICAgICAgICAgICAgICAgIGlmIHJlcG9ydC53aGVuID09
ICJ0ZWFyZG93biI6CisgICAgICAgICAgICAgICAgICAgIHdpdGggb3BlbigiY2FwbG9nIiwgInci
KSBhcyBmOgorICAgICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShyZXBvcnQuY2FwbG9nKQor
ICAgICAgICAgICAgICAgICAgICB3aXRoIG9wZW4oImNhcHN0ZG91dCIsICJ3IikgYXMgZjoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUocmVwb3J0LmNhcHN0ZG91dCkKKyAgICAgICAg
IiIiCisgICAgKQorCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAg
ICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgaW1wb3J0IHN5cworICAgICAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKyAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBmaXgxKCk6CisgICAgICAgICAgICBw
cmludCgiZml4IHNldHVwIikKKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygiZml4IHNldHVwIikK
KyAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICBsb2dnaW5nLmluZm8oImZpeCB0ZWFyZG93
biIpCisgICAgICAgICAgICBwcmludCgiZml4IHRlYXJkb3duIikKKworICAgICAgICBkZWYgdGVz
dF9nbG9iYWwoZml4MSk6CisgICAgICAgICAgICBwcmludCgiYmVnaW4gdGVzdCIpCisgICAgICAg
ICAgICBsb2dnaW5nLmluZm8oInNvbWV0aGluZyBpbiB0ZXN0IikKKyAgICAgICAgICAgIHByaW50
KCJlbmQgdGVzdCIpCisgICAgICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdF9zdWJwcm9jZXNzKCItLWxvZy1jbGktbGV2ZWw9SU5GTyIpCisgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgPT0gMAorCisgICAgd2l0aCBvcGVuKCJjYXBsb2ciLCAiciIpIGFzIGY6CisgICAg
ICAgIGNhcGxvZyA9IGYucmVhZCgpCisKKyAgICBhc3NlcnQgImZpeCBzZXR1cCIgaW4gY2FwbG9n
CisgICAgYXNzZXJ0ICJzb21ldGhpbmcgaW4gdGVzdCIgaW4gY2FwbG9nCisgICAgYXNzZXJ0ICJm
aXggdGVhcmRvd24iIGluIGNhcGxvZworCisgICAgd2l0aCBvcGVuKCJjYXBzdGRvdXQiLCAiciIp
IGFzIGY6CisgICAgICAgIGNhcHN0ZG91dCA9IGYucmVhZCgpCisKKyAgICBhc3NlcnQgImZpeCBz
ZXR1cCIgaW4gY2Fwc3Rkb3V0CisgICAgYXNzZXJ0ICJiZWdpbiB0ZXN0IiBpbiBjYXBzdGRvdXQK
KyAgICBhc3NlcnQgImVuZCB0ZXN0IiBpbiBjYXBzdGRvdXQKKyAgICBhc3NlcnQgImZpeCB0ZWFy
ZG93biIgaW4gY2Fwc3Rkb3V0CisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjYXB0dXJl
X2ZpeHR1cmUiLCBbImNhcHN5cyIsICJjYXBmZCJdKQorZGVmIHRlc3RfY2FwdHVyZV93aXRoX2xp
dmVfbG9nZ2luZyh0ZXN0ZGlyLCBjYXB0dXJlX2ZpeHR1cmUpOgorICAgICMgSXNzdWUgMzgxOQor
ICAgICMgY2FwdHVyZSBzaG91bGQgd29yayB3aXRoIGxpdmUgY2xpIGxvZ2dpbmcKKworICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBsb2dnaW5nCisg
ICAgICAgIGltcG9ydCBzeXMKKworICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihf
X25hbWVfXykKKworICAgICAgICBkZWYgdGVzdF9jYXB0dXJlKHswfSk6CisgICAgICAgICAgICBw
cmludCgiaGVsbG8iKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgid29ybGRcXG4iKQor
ICAgICAgICAgICAgY2FwdHVyZWQgPSB7MH0ucmVhZG91dGVycigpCisgICAgICAgICAgICBhc3Nl
cnQgY2FwdHVyZWQub3V0ID09ICJoZWxsb1xcbiIKKyAgICAgICAgICAgIGFzc2VydCBjYXB0dXJl
ZC5lcnIgPT0gIndvcmxkXFxuIgorCisgICAgICAgICAgICBsb2dnaW5nLmluZm8oInNvbWV0aGlu
ZyIpCisgICAgICAgICAgICBwcmludCgibmV4dCIpCisgICAgICAgICAgICBsb2dnaW5nLmluZm8o
InNvbWV0aGluZyIpCisKKyAgICAgICAgICAgIGNhcHR1cmVkID0gezB9LnJlYWRvdXRlcnIoKQor
ICAgICAgICAgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAibmV4dFxcbiIKKyAgICAgICAgIiIi
LmZvcm1hdCgKKyAgICAgICAgICAgIGNhcHR1cmVfZml4dHVyZQorICAgICAgICApCisgICAgKQor
CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygiLS1sb2ctY2xpLWxl
dmVsPUlORk8iKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworCitkZWYgdGVzdF90eXBl
ZXJyb3JfZW5jb2RlZGZpbGVfd3JpdGUodGVzdGRpcik6CisgICAgIiIiSXQgc2hvdWxkIGJlaGF2
ZSB0aGUgc2FtZSB3aXRoIGFuZCB3aXRob3V0IG91dHB1dCBjYXB0dXJpbmcgKCM0ODYxKS4iIiIK
KyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRl
c3RfZmFpbHMoKToKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgIHN5cy5zdGRv
dXQud3JpdGUoYiJmb28iKQorICAgICIiIgorICAgICkKKyAgICByZXN1bHRfd2l0aG91dF9jYXB0
dXJlID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIiwgc3RyKHApKQorCisgICAgcmVzdWx0X3dpdGhf
Y2FwdHVyZSA9IHRlc3RkaXIucnVucHl0ZXN0KHN0cihwKSkKKworICAgIGFzc2VydCByZXN1bHRf
d2l0aF9jYXB0dXJlLnJldCA9PSByZXN1bHRfd2l0aG91dF9jYXB0dXJlLnJldAorCisgICAgaWYg
X1BZMzoKKyAgICAgICAgcmVzdWx0X3dpdGhfY2FwdHVyZS5zdGRvdXQuZm5tYXRjaF9saW5lcygK
KyAgICAgICAgICAgIFsiRSAgICAgICAgICAgVHlwZUVycm9yOiB3cml0ZSgpIGFyZ3VtZW50IG11
c3QgYmUgc3RyLCBub3QgYnl0ZXMiXQorICAgICAgICApCisgICAgZWxzZToKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdF93aXRoX2NhcHR1cmUucmV0ID09IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdGVzdF9jb2xsZWN0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Nv
bGxlY3Rpb24ucHkKaW5kZXggNjU3ZDY0Yzc0ZTI0YWFlYjExYTg2ZGZmZTVhYjI3YTQ3ZDk2YWRm
OS4uMGZiYmJlYzU0ZGZjZjk4YzkwYjU0M2IxMzU1MDQ5NzQzNDNkYjE3NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbGxlY3Rpb24ucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X2NvbGxlY3Rpb24ucHkKQEAgLTEsMzQgKzEsMjkgQEAKLWZyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKyMg
LSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgb3MKIGltcG9ydCBwcHJpbnQKIGltcG9ydCBz
eXMKLWltcG9ydCBweXRlc3QKK2ltcG9ydCB0ZXh0d3JhcAogCi1pbXBvcnQgX3B5dGVzdC5fY29k
ZQotZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IFNlc3Npb24sIEVYSVRfTk9URVNUU0NPTExFQ1RF
RCwgX2luX3ZlbnYKK2ltcG9ydCBweQogCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QubWFp
biBpbXBvcnQgX2luX3ZlbnYKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX0lOVEVSUlVQ
VEVECitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVECitmcm9t
IF9weXRlc3QubWFpbiBpbXBvcnQgU2Vzc2lvbgogCi1jbGFzcyBUZXN0Q29sbGVjdG9yKG9iamVj
dCk6CiAKK2NsYXNzIFRlc3RDb2xsZWN0b3Iob2JqZWN0KToKICAgICBkZWYgdGVzdF9jb2xsZWN0
X3ZlcnN1c19pdGVtKHNlbGYpOgogICAgICAgICBmcm9tIHB5dGVzdCBpbXBvcnQgQ29sbGVjdG9y
LCBJdGVtCiAKICAgICAgICAgYXNzZXJ0IG5vdCBpc3N1YmNsYXNzKENvbGxlY3RvciwgSXRlbSkK
ICAgICAgICAgYXNzZXJ0IG5vdCBpc3N1YmNsYXNzKEl0ZW0sIENvbGxlY3RvcikKIAotICAgIGRl
ZiB0ZXN0X2NvbXBhdF9hdHRyaWJ1dGVzKHNlbGYsIHRlc3RkaXIsIHJlY3dhcm4pOgotICAgICAg
ICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgKLSAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgZGVmIHRlc3RfcGFzcygpOiBwYXNzCi0gICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6
IGFzc2VydCAwCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlY3dhcm4uY2xlYXIo
KQotICAgICAgICBhc3NlcnQgbW9kY29sLk1vZHVsZSA9PSBweXRlc3QuTW9kdWxlCi0gICAgICAg
IGFzc2VydCBtb2Rjb2wuQ2xhc3MgPT0gcHl0ZXN0LkNsYXNzCi0gICAgICAgIGFzc2VydCBtb2Rj
b2wuSXRlbSA9PSBweXRlc3QuSXRlbQotICAgICAgICBhc3NlcnQgbW9kY29sLkZpbGUgPT0gcHl0
ZXN0LkZpbGUKLSAgICAgICAgYXNzZXJ0IG1vZGNvbC5GdW5jdGlvbiA9PSBweXRlc3QuRnVuY3Rp
b24KLQogICAgIGRlZiB0ZXN0X2NoZWNrX2VxdWFsaXR5KHNlbGYsIHRlc3RkaXIpOgogICAgICAg
ICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgKICAgICAgICAgICAgICIiIgpAQCAtMTE1
LDcgKzExMCw2IEBAIGNsYXNzIFRlc3RDb2xsZWN0b3Iob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0
Q29sbGVjdEZTKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9pZ25vcmVkX2NlcnRhaW5fZGlyZWN0
b3JpZXMoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRtcGRpciA9IHRlc3RkaXIudG1wZGlyCiAg
ICAgICAgIHRtcGRpci5lbnN1cmUoImJ1aWxkIiwgInRlc3Rfbm90Zm91bmQucHkiKQpAQCAtMjUz
LDEyICsyNDcsMTAgQEAgY2xhc3MgVGVzdENvbGxlY3RGUyhvYmplY3QpOgogCiAKIGNsYXNzIFRl
c3RDb2xsZWN0UGx1Z2luSG9va1JlbGF5KG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9weXRlc3Rf
Y29sbGVjdF9maWxlKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB3YXNjYWxsZWQgPSBbXQogCiAg
ICAgICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgotCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2Nv
bGxlY3RfZmlsZShzZWxmLCBwYXRoLCBwYXJlbnQpOgogICAgICAgICAgICAgICAgIGlmIG5vdCBw
YXRoLmJhc2VuYW1lLnN0YXJ0c3dpdGgoIi4iKToKICAgICAgICAgICAgICAgICAgICAgIyBJZ25v
cmUgaGlkZGVuIGZpbGVzLCBlLmcuIC50ZXN0bW9uZGF0YS4KQEAgLTI3Myw3ICsyNjUsNiBAQCBj
bGFzcyBUZXN0Q29sbGVjdFBsdWdpbkhvb2tSZWxheShvYmplY3QpOgogICAgICAgICB3YXNjYWxs
ZWQgPSBbXQogCiAgICAgICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgotCiAgICAgICAgICAgICBk
ZWYgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHNlbGYsIHBhdGgsIHBhcmVudCk6CiAgICAgICAg
ICAgICAgICAgd2FzY2FsbGVkLmFwcGVuZChwYXRoLmJhc2VuYW1lKQogCkBAIC0yODUsNyArMjc2
LDYgQEAgY2xhc3MgVGVzdENvbGxlY3RQbHVnaW5Ib29rUmVsYXkob2JqZWN0KToKIAogCiBjbGFz
cyBUZXN0UHJ1bmV0cmFjZWJhY2sob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2N1c3RvbV9yZXBy
X2ZhaWx1cmUoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUo
CiAgICAgICAgICAgICAiIiIKQEAgLTMzNSw3ICszMjUsNiBAQCBjbGFzcyBUZXN0UHJ1bmV0cmFj
ZWJhY2sob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0Q3VzdG9tQ29uZnRlc3RzKG9iamVjdCk6Ci0K
ICAgICBkZWYgdGVzdF9pZ25vcmVfY29sbGVjdF9wYXRoKHNlbGYsIHRlc3RkaXIpOgogICAgICAg
ICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgICAgICIiIgpAQCAtMzYzLDEwICszNTIs
MTAgQEAgY2xhc3MgVGVzdEN1c3RvbUNvbmZ0ZXN0cyhvYmplY3QpOgogICAgICAgICBwID0gdGVz
dGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9oZWxsbygpOiBwYXNzIikKICAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QocCkKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAot
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIioxIHBhc3NlZCoiKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCiAgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
RVhJVF9OT1RFU1RTQ09MTEVDVEVECi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygiKmNvbGxlY3RlZCAwIGl0ZW1zKiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIipjb2xsZWN0ZWQgMCBpdGVtcyoiXSkKIAogICAgIGRlZiB0ZXN0X2NvbGxlY3RpZ25v
cmVfZXhjbHVkZV9vbl9vcHRpb24oc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFr
ZWNvbmZ0ZXN0KApAQCAtMzg4LDYgKzM3NywyNiBAQCBjbGFzcyBUZXN0Q3VzdG9tQ29uZnRlc3Rz
KG9iamVjdCk6CiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKICAgICAgICAgYXNzZXJ0
ICJwYXNzZWQiIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKIAorICAgIGRlZiB0ZXN0X2NvbGxlY3Rp
Z25vcmVnbG9iX2V4Y2x1ZGVfb25fb3B0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgY29sbGVjdF9p
Z25vcmVfZ2xvYiA9IFsnKncqbFtkdF0qJ10KKyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0
aW9uKHBhcnNlcik6CisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS1YWCIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UpCisgICAgICAgICAgICBkZWYgcHl0ZXN0
X2NvbmZpZ3VyZShjb25maWcpOgorICAgICAgICAgICAgICAgIGlmIGNvbmZpZy5nZXR2YWx1ZSgi
WFgiKToKKyAgICAgICAgICAgICAgICAgICAgY29sbGVjdF9pZ25vcmVfZ2xvYls6XSA9IFtdCisg
ICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X3dv
cmxkPSJkZWYgdGVzdF9oZWxsbygpOiBwYXNzIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KHRlc3Rfd2VsdD0iZGVmIHRlc3RfaGFsbG8oKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RF
U1RTQ09MTEVDVEVECisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipjb2xs
ZWN0ZWQgMCBpdGVtcyoiXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
WFgiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIioyIHBhc3NlZCoiXSkKKwogICAgIGRlZiB0ZXN0X3B5dGVzdF9m
c19jb2xsZWN0X2hvb2tzX2FyZV9zZWVuKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGly
Lm1ha2Vjb25mdGVzdCgKICAgICAgICAgICAgICIiIgpAQCAtNDM3LDcgKzQ0Niw2IEBAIGNsYXNz
IFRlc3RDdXN0b21Db25mdGVzdHMob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0U2Vzc2lvbihvYmpl
Y3QpOgotCiAgICAgZGVmIHRlc3RfcGFyc2Vhcmcoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCiAgICAgICAgIHN1
YmRpciA9IHRlc3RkaXIubWtkaXIoInN1YiIpCkBAIC00ODYsNyArNDk0LDcgQEAgY2xhc3MgVGVz
dFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRl
c3RfZnVuYygpOiBwYXNzIikKICAgICAgICAgaWQgPSAiOjoiLmpvaW4oW3AuYmFzZW5hbWUsICJ0
ZXN0X2Z1bmMiXSkKICAgICAgICAgaXRlbXMsIGhvb2tyZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5p
dGVtcyhpZCkKLSAgICAgICAgaXRlbSwgPSBpdGVtcworICAgICAgICAoaXRlbSwpID0gaXRlbXMK
ICAgICAgICAgYXNzZXJ0IGl0ZW0ubmFtZSA9PSAidGVzdF9mdW5jIgogICAgICAgICBuZXdpZCA9
IGl0ZW0ubm9kZWlkCiAgICAgICAgIGFzc2VydCBuZXdpZCA9PSBpZApAQCAtNTEzLDEzICs1MjEs
OCBAQCBjbGFzcyBUZXN0U2Vzc2lvbihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBwYXNz
CiAgICAgICAgICIiIgogICAgICAgICApCi0gICAgICAgIG5vcm1pZCA9IHAuYmFzZW5hbWUgKyAi
OjpUZXN0Q2xhc3M6OigpOjp0ZXN0X21ldGhvZCIKLSAgICAgICAgZm9yIGlkIGluIFsKLSAgICAg
ICAgICAgIHAuYmFzZW5hbWUsCi0gICAgICAgICAgICBwLmJhc2VuYW1lICsgIjo6VGVzdENsYXNz
IiwKLSAgICAgICAgICAgIHAuYmFzZW5hbWUgKyAiOjpUZXN0Q2xhc3M6OigpIiwKLSAgICAgICAg
ICAgIG5vcm1pZCwKLSAgICAgICAgXToKKyAgICAgICAgbm9ybWlkID0gcC5iYXNlbmFtZSArICI6
OlRlc3RDbGFzczo6dGVzdF9tZXRob2QiCisgICAgICAgIGZvciBpZCBpbiBbcC5iYXNlbmFtZSwg
cC5iYXNlbmFtZSArICI6OlRlc3RDbGFzcyIsIG5vcm1pZF06CiAgICAgICAgICAgICBpdGVtcywg
aG9va3JlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKGlkKQogICAgICAgICAgICAgYXNzZXJ0
IGxlbihpdGVtcykgPT0gMQogICAgICAgICAgICAgYXNzZXJ0IGl0ZW1zWzBdLm5hbWUgPT0gInRl
c3RfbWV0aG9kIgpAQCAtNjEwLDkgKzYxMyw5IEBAIGNsYXNzIFRlc3RTZXNzaW9uKG9iamVjdCk6
CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKICAg
ICAgICAgaXRlbXMsIGhvb2tyZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcygpCiAgICAgICAg
IGFzc2VydCBsZW4oaXRlbXMpID09IDEKLSAgICAgICAgaXRlbSwgPSBpdGVtcworICAgICAgICAo
aXRlbSwpID0gaXRlbXMKICAgICAgICAgaXRlbXMyLCBob29rcmVjID0gdGVzdGRpci5pbmxpbmVf
Z2VuaXRlbXMoaXRlbS5ub2RlaWQpCi0gICAgICAgIGl0ZW0yLCA9IGl0ZW1zMgorICAgICAgICAo
aXRlbTIsKSA9IGl0ZW1zMgogICAgICAgICBhc3NlcnQgaXRlbTIubmFtZSA9PSBpdGVtLm5hbWUK
ICAgICAgICAgYXNzZXJ0IGl0ZW0yLmZzcGF0aCA9PSBpdGVtLmZzcGF0aAogCkBAIC02MjcsMTQg
KzYzMCwxMyBAQCBjbGFzcyBUZXN0U2Vzc2lvbihvYmplY3QpOgogICAgICAgICBhcmcgPSBwLmJh
c2VuYW1lICsgIjo6VGVzdENsYXNzOjp0ZXN0X21ldGhvZCIKICAgICAgICAgaXRlbXMsIGhvb2ty
ZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhhcmcpCiAgICAgICAgIGFzc2VydCBsZW4oaXRl
bXMpID09IDEKLSAgICAgICAgaXRlbSwgPSBpdGVtcwotICAgICAgICBhc3NlcnQgaXRlbS5ub2Rl
aWQuZW5kc3dpdGgoIlRlc3RDbGFzczo6KCk6OnRlc3RfbWV0aG9kIikKKyAgICAgICAgKGl0ZW0s
KSA9IGl0ZW1zCisgICAgICAgIGFzc2VydCBpdGVtLm5vZGVpZC5lbmRzd2l0aCgiVGVzdENsYXNz
Ojp0ZXN0X21ldGhvZCIpCiAgICAgICAgICMgZW5zdXJlIHdlIGFyZSByZXBvcnRpbmcgdGhlIGNv
bGxlY3Rpb24gb2YgdGhlIHNpbmdsZSB0ZXN0IGl0ZW0gKCMyNDY0KQogICAgICAgICBhc3NlcnQg
W3gubmFtZSBmb3IgeCBpbiBzZWxmLmdldF9yZXBvcnRlZF9pdGVtcyhob29rcmVjKV0gPT0gWyJ0
ZXN0X21ldGhvZCJdCiAKIAogY2xhc3MgVGVzdF9nZXRpbml0aWFsbm9kZXMob2JqZWN0KToKLQog
ICAgIGRlZiB0ZXN0X2dsb2JhbF9maWxlKHNlbGYsIHRlc3RkaXIsIHRtcGRpcik6CiAgICAgICAg
IHggPSB0bXBkaXIuZW5zdXJlKCJ4LnB5IikKICAgICAgICAgd2l0aCB0bXBkaXIuYXNfY3dkKCk6
CkBAIC02NDcsNiArNjQ5LDEwIEBAIGNsYXNzIFRlc3RfZ2V0aW5pdGlhbG5vZGVzKG9iamVjdCk6
CiAgICAgICAgICAgICBhc3NlcnQgY29sLmNvbmZpZyBpcyBjb25maWcKIAogICAgIGRlZiB0ZXN0
X3BrZ2ZpbGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlZlcmlmeSBuZXN0aW5nIHdoZW4g
YSBtb2R1bGUgaXMgd2l0aGluIGEgcGFja2FnZS4KKyAgICAgICAgVGhlIHBhcmVudCBjaGFpbiBz
aG91bGQgbWF0Y2g6IE1vZHVsZTx4LnB5PiAtPiBQYWNrYWdlPHN1YmRpcj4gLT4gU2Vzc2lvbi4K
KyAgICAgICAgICAgIFNlc3Npb24ncyBwYXJlbnQgc2hvdWxkIGFsd2F5cyBiZSBOb25lLgorICAg
ICAgICAiIiIKICAgICAgICAgdG1wZGlyID0gdGVzdGRpci50bXBkaXIKICAgICAgICAgc3ViZGly
ID0gdG1wZGlyLmpvaW4oInN1YmRpciIpCiAgICAgICAgIHggPSBzdWJkaXIuZW5zdXJlKCJ4LnB5
IikKQEAgLTY1NCwxNSArNjYwLDE3IEBAIGNsYXNzIFRlc3RfZ2V0aW5pdGlhbG5vZGVzKG9iamVj
dCk6CiAgICAgICAgIHdpdGggc3ViZGlyLmFzX2N3ZCgpOgogICAgICAgICAgICAgY29uZmlnID0g
dGVzdGRpci5wYXJzZWNvbmZpZ3VyZSh4KQogICAgICAgICBjb2wgPSB0ZXN0ZGlyLmdldG5vZGUo
Y29uZmlnLCB4KQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2wsIHB5dGVzdC5Nb2R1bGUp
CiAgICAgICAgIGFzc2VydCBjb2wubmFtZSA9PSAieC5weSIKLSAgICAgICAgYXNzZXJ0IGNvbC5w
YXJlbnQucGFyZW50IGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29sLCBweXRl
c3QuTW9kdWxlKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2wucGFyZW50LCBweXRlc3Qu
UGFja2FnZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29sLnBhcmVudC5wYXJlbnQsIHB5
dGVzdC5TZXNzaW9uKQorICAgICAgICAjIHNlc3Npb24gaXMgYmF0bWFuIChoYXMgbm8gcGFyZW50
cykKKyAgICAgICAgYXNzZXJ0IGNvbC5wYXJlbnQucGFyZW50LnBhcmVudCBpcyBOb25lCiAgICAg
ICAgIGZvciBjb2wgaW4gY29sLmxpc3RjaGFpbigpOgogICAgICAgICAgICAgYXNzZXJ0IGNvbC5j
b25maWcgaXMgY29uZmlnCiAKIAogY2xhc3MgVGVzdF9nZW5pdGVtcyhvYmplY3QpOgotCiAgICAg
ZGVmIHRlc3RfY2hlY2tfY29sbGVjdF9oYXNoZXMoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTc3Niw3ICs3ODQsNiBA
QCBkZWYgdGVzdF9tYXRjaG5vZGVzX3R3b19jb2xsZWN0aW9uc19zYW1lX2ZpbGUodGVzdGRpcik6
CiAKIAogY2xhc3MgVGVzdE5vZGVrZXl3b3JkcyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3Rfbm9f
dW5kZXIoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxl
Y29sKAogICAgICAgICAgICAgIiIiCkBAIC05MTUsMTUgKzkyMiwxNSBAQCBkZWYgdGVzdF9jb250
aW51ZV9vbl9jb2xsZWN0aW9uX2Vycm9yc19tYXhmYWlsKHRlc3RkaXIpOgogCiBkZWYgdGVzdF9m
aXh0dXJlX3Njb3BlX3NpYmxpbmdfY29uZnRlc3RzKHRlc3RkaXIpOgogICAgICIiIlJlZ3Jlc3Np
b24gdGVzdCBjYXNlIGZvciBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzI4MzYiIiIKLSAgICBmb29fcGF0aCA9IHRlc3RkaXIubWtweWRpcigiZm9vIikKKyAgICBm
b29fcGF0aCA9IHRlc3RkaXIubWtkaXIoImZvbyIpCiAgICAgZm9vX3BhdGguam9pbigiY29uZnRl
c3QucHkiKS53cml0ZSgKLSAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3VyY2UoCisgICAgICAgIHRl
eHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZpeCgpOgor
ICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0
IHB5dGVzdAotICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgZGVmIGZpeCgpOgotICAg
ICAgICAgICAgcmV0dXJuIDEKLSAgICAiIiIKICAgICAgICAgKQogICAgICkKICAgICBmb29fcGF0
aC5qb2luKCJ0ZXN0X2Zvby5weSIpLndyaXRlKCJkZWYgdGVzdF9mb28oZml4KTogYXNzZXJ0IGZp
eCA9PSAxIikKQEAgLTk0MiwzICs5NDksMzE5IEBAIGRlZiB0ZXN0X2ZpeHR1cmVfc2NvcGVfc2li
bGluZ19jb25mdGVzdHModGVzdGRpcik6CiAgICAgICAgICAgICAiKjEgcGFzc2VkLCAxIGVycm9y
KiIsCiAgICAgICAgIF0KICAgICApCisKKworZGVmIHRlc3RfY29sbGVjdF9pbml0X3Rlc3RzKHRl
c3RkaXIpOgorICAgICIiIkNoZWNrIHRoYXQgd2UgY29sbGVjdCBmaWxlcyBmcm9tIF9faW5pdF9f
LnB5IGZpbGVzIHdoZW4gdGhleSBwYXRjaCB0aGUgJ3B5dGhvbl9maWxlcycgKCMzNzczKSIiIgor
ICAgIHAgPSB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgiY29sbGVjdC9jb2xsZWN0X2luaXRfdGVzdHMi
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICItLWNvbGxlY3Qtb25seSIpCisg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAi
Y29sbGVjdGVkIDIgaXRlbXMiLAorICAgICAgICAgICAgIjxQYWNrYWdlICoiLAorICAgICAgICAg
ICAgIiAgPE1vZHVsZSBfX2luaXRfXy5weT4iLAorICAgICAgICAgICAgIiAgICA8RnVuY3Rpb24g
dGVzdF9pbml0PiIsCisgICAgICAgICAgICAiICA8TW9kdWxlIHRlc3RfZm9vLnB5PiIsCisgICAg
ICAgICAgICAiICAgIDxGdW5jdGlvbiB0ZXN0X2Zvbz4iLAorICAgICAgICBdCisgICAgKQorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIuL3Rlc3RzIiwgIi0tY29sbGVjdC1vbmx5IikK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAgICAgICAg
ICJjb2xsZWN0ZWQgMiBpdGVtcyIsCisgICAgICAgICAgICAiPFBhY2thZ2UgKiIsCisgICAgICAg
ICAgICAiICA8TW9kdWxlIF9faW5pdF9fLnB5PiIsCisgICAgICAgICAgICAiICAgIDxGdW5jdGlv
biB0ZXN0X2luaXQ+IiwKKyAgICAgICAgICAgICIgIDxNb2R1bGUgdGVzdF9mb28ucHk+IiwKKyAg
ICAgICAgICAgICIgICAgPEZ1bmN0aW9uIHRlc3RfZm9vPiIsCisgICAgICAgIF0KKyAgICApCisg
ICAgIyBJZ25vcmVzIGR1cGxpY2F0ZXMgd2l0aCAiLiIgYW5kIHBrZ2luaXQgKCM0MzEwKS4KKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLi90ZXN0cyIsICIuIiwgIi0tY29sbGVjdC1v
bmx5IikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAg
ICAgICAgICJjb2xsZWN0ZWQgMiBpdGVtcyIsCisgICAgICAgICAgICAiPFBhY2thZ2UgKi90ZXN0
cz4iLAorICAgICAgICAgICAgIiAgPE1vZHVsZSBfX2luaXRfXy5weT4iLAorICAgICAgICAgICAg
IiAgICA8RnVuY3Rpb24gdGVzdF9pbml0PiIsCisgICAgICAgICAgICAiICA8TW9kdWxlIHRlc3Rf
Zm9vLnB5PiIsCisgICAgICAgICAgICAiICAgIDxGdW5jdGlvbiB0ZXN0X2Zvbz4iLAorICAgICAg
ICBdCisgICAgKQorICAgICMgU2FtZSBhcyBiZWZvcmUsIGJ1dCBkaWZmZXJlbnQgb3JkZXIuCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi4iLCAidGVzdHMiLCAiLS1jb2xsZWN0LW9u
bHkiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWworICAgICAg
ICAgICAgImNvbGxlY3RlZCAyIGl0ZW1zIiwKKyAgICAgICAgICAgICI8UGFja2FnZSAqL3Rlc3Rz
PiIsCisgICAgICAgICAgICAiICA8TW9kdWxlIF9faW5pdF9fLnB5PiIsCisgICAgICAgICAgICAi
ICAgIDxGdW5jdGlvbiB0ZXN0X2luaXQ+IiwKKyAgICAgICAgICAgICIgIDxNb2R1bGUgdGVzdF9m
b28ucHk+IiwKKyAgICAgICAgICAgICIgICAgPEZ1bmN0aW9uIHRlc3RfZm9vPiIsCisgICAgICAg
IF0KKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi4vdGVzdHMvdGVzdF9m
b28ucHkiLCAiLS1jb2xsZWN0LW9ubHkiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygKKyAgICAgICAgWyI8UGFja2FnZSAqL3Rlc3RzPiIsICIgIDxNb2R1bGUgdGVzdF9mb28ucHk+
IiwgIiAgICA8RnVuY3Rpb24gdGVzdF9mb28+Il0KKyAgICApCisgICAgYXNzZXJ0ICJ0ZXN0X2lu
aXQiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi4vdGVzdHMvX19pbml0X18ucHkiLCAiLS1jb2xsZWN0LW9ubHkiKQorICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWyI8UGFja2FnZSAqL3Rlc3RzPiIsICIg
IDxNb2R1bGUgX19pbml0X18ucHk+IiwgIiAgICA8RnVuY3Rpb24gdGVzdF9pbml0PiJdCisgICAg
KQorICAgIGFzc2VydCAidGVzdF9mb28iIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKwor
ZGVmIHRlc3RfY29sbGVjdF9pbnZhbGlkX3NpZ25hdHVyZV9tZXNzYWdlKHRlc3RkaXIpOgorICAg
ICIiIkNoZWNrIHRoYXQgd2UgaXNzdWUgYSBwcm9wZXIgbWVzc2FnZSB3aGVuIHdlIGNhbid0IGRl
dGVybWluZSB0aGUgc2lnbmF0dXJlIG9mIGEgdGVzdAorICAgIGZ1bmN0aW9uICgjNDAyNikuCisg
ICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgIGNsYXNzIFRlc3RDYXNlOgorICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZml4KCk6CisgICAgICAgICAgICAgICAgcGFzcwor
ICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbIkNvdWxkIG5vdCBkZXRlcm1pbmUg
YXJndW1lbnRzIG9mICouZml4ICo6IGludmFsaWQgbWV0aG9kIHNpZ25hdHVyZSJdCisgICAgKQor
CisKK2RlZiB0ZXN0X2NvbGxlY3RfaGFuZGxlc19yYWlzaW5nX29uX2R1bmRlcl9jbGFzcyh0ZXN0
ZGlyKToKKyAgICAiIiJIYW5kbGUgcHJveHkgY2xhc3NlcyBsaWtlIERqYW5nbydzIExhenlTZXR0
aW5ncyB0aGF0IG1pZ2h0IHJhaXNlIG9uCisgICAgYGBpc2luc3RhbmNlYGAgKCM0MjY2KS4KKyAg
ICAiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBjbGFz
cyBJbXByb3Blcmx5Q29uZmlndXJlZChFeGNlcHRpb24pOgorICAgICAgICAgICAgcGFzcworCisg
ICAgICAgIGNsYXNzIFJhaXNlc09uR2V0QXR0cihvYmplY3QpOgorICAgICAgICAgICAgZGVmIHJh
aXNlcyhzZWxmKToKKyAgICAgICAgICAgICAgICByYWlzZSBJbXByb3Blcmx5Q29uZmlndXJlZAor
CisgICAgICAgICAgICBfX2NsYXNzX18gPSBwcm9wZXJ0eShyYWlzZXMpCisKKyAgICAgICAgcmFp
c2VzID0gUmFpc2VzT25HZXRBdHRyKCkKKworCisgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCBpbioiXSkK
KyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworZGVmIHRlc3RfY29sbGVjdF93aXRoX2No
ZGlyX2R1cmluZ19pbXBvcnQodGVzdGRpcik6CisgICAgc3ViZGlyID0gdGVzdGRpci50bXBkaXIu
bWtkaXIoInN1YiIpCisgICAgdGVzdGRpci50bXBkaXIuam9pbigiY29uZnRlc3QucHkiKS53cml0
ZSgKKyAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICBpbXBvcnQgb3MKKyAgICAgICAgICAgIG9zLmNoZGlyKCVyKQorICAgICAgICAgICAgIiIiCisg
ICAgICAgICAgICAlIChzdHIoc3ViZGlyKSwpCisgICAgICAgICkKKyAgICApCisgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAg
ICAgICAgaW1wb3J0IG9zCisgICAgICAgICAgICBhc3NlcnQgb3MuZ2V0Y3dkKCkgPT0gJXIKKyAg
ICAgICAgIiIiCisgICAgICAgICUgKHN0cihzdWJkaXIpLCkKKyAgICApCisgICAgd2l0aCB0ZXN0
ZGlyLnRtcGRpci5hc19jd2QoKToKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCBpbioiXSkKKyAg
ICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICAjIEhhbmRsZXMgcmVsYXRpdmUgdGVzdHBh
dGhzLgorICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgIiIiCisgICAgICAgIFtweXRlc3Rd
CisgICAgICAgIHRlc3RwYXRocyA9IC4KKyAgICAiIiIKKyAgICApCisgICAgd2l0aCB0ZXN0ZGly
LnRtcGRpci5hc19jd2QoKToKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
Y29sbGVjdC1vbmx5IikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJjb2xsZWN0
ZWQgMSBpdGVtIl0pCisKKworZGVmIHRlc3RfY29sbGVjdF9weWFyZ3Nfd2l0aF90ZXN0cGF0aHMo
dGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgIHRlc3Rtb2QgPSB0ZXN0ZGlyLm1rZGlyKCJ0ZXN0
bW9kIikKKyAgICAjIE5PVEU6IF9faW5pdF9fLnB5IGlzIG5vdCBjb2xsZWN0ZWQgc2luY2UgaXQg
ZG9lcyBub3QgbWF0Y2ggcHl0aG9uX2ZpbGVzLgorICAgIHRlc3Rtb2QuZW5zdXJlKCJfX2luaXRf
Xy5weSIpLndyaXRlKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQorICAgIHRlc3Rtb2QuZW5zdXJl
KCJ0ZXN0X2ZpbGUucHkiKS53cml0ZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKworICAgIHJv
b3QgPSB0ZXN0ZGlyLm1rZGlyKCJyb290IikKKyAgICByb290LmVuc3VyZSgicHl0ZXN0LmluaSIp
LndyaXRlKAorICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgW3B5dGVzdF0KKyAgICAgICAgYWRkb3B0cyA9IC0tcHlhcmdzCisgICAgICAgIHRlc3RwYXRo
cyA9IHRlc3Rtb2QKKyAgICAiIiIKKyAgICAgICAgKQorICAgICkKKyAgICBtb25rZXlwYXRjaC5z
ZXRlbnYoIlBZVEhPTlBBVEgiLCBzdHIodGVzdGRpci50bXBkaXIpLCBwcmVwZW5kPW9zLnBhdGhz
ZXApCisgICAgd2l0aCByb290LmFzX2N3ZCgpOgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdF9zdWJwcm9jZXNzKCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
MSBwYXNzZWQgaW4qIl0pCisKKworQHB5dGVzdC5tYXJrLnNraXBpZigKKyAgICBub3QgaGFzYXR0
cihweS5wYXRoLmxvY2FsLCAibWtzeW1saW5rdG8iKSwKKyAgICByZWFzb249InN5bWxpbmsgbm90
IGF2YWlsYWJsZSBvbiB0aGlzIHBsYXRmb3JtIiwKKykKK2RlZiB0ZXN0X2NvbGxlY3Rfc3ltbGlu
a19maWxlX2FyZyh0ZXN0ZGlyKToKKyAgICAiIiJUZXN0IHRoYXQgY29sbGVjdGluZyBhIGRpcmVj
dCBzeW1saW5rLCB3aGVyZSB0aGUgdGFyZ2V0IGRvZXMgbm90IG1hdGNoIHB5dGhvbl9maWxlcyB3
b3JrcyAoIzQzMjUpLiIiIgorICAgIHJlYWwgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAg
IHJlYWw9IiIiCisgICAgICAgIGRlZiB0ZXN0X25vZGVpZChyZXF1ZXN0KToKKyAgICAgICAgICAg
IGFzc2VydCByZXF1ZXN0Lm5vZGUubm9kZWlkID09ICJyZWFsLnB5Ojp0ZXN0X25vZGVpZCIKKyAg
ICAgICAgIiIiCisgICAgKQorICAgIHN5bWxpbmsgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJzeW1s
aW5rLnB5IikKKyAgICBzeW1saW5rLm1rc3ltbGlua3RvKHJlYWwpCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi12Iiwgc3ltbGluaykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWyJyZWFsLnB5Ojp0ZXN0X25vZGVpZCBQQVNTRUQqIiwgIioxIHBhc3NlZCBpbioiXSkK
KyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworQHB5dGVzdC5tYXJrLnNraXBpZigKKyAg
ICBub3QgaGFzYXR0cihweS5wYXRoLmxvY2FsLCAibWtzeW1saW5rdG8iKSwKKyAgICByZWFzb249
InN5bWxpbmsgbm90IGF2YWlsYWJsZSBvbiB0aGlzIHBsYXRmb3JtIiwKKykKK2RlZiB0ZXN0X2Nv
bGxlY3Rfc3ltbGlua19vdXRfb2ZfdHJlZSh0ZXN0ZGlyKToKKyAgICAiIiJUZXN0IGNvbGxlY3Rp
b24gb2Ygc3ltbGluayB2aWEgb3V0LW9mLXRyZWUgcm9vdGRpci4iIiIKKyAgICBzdWIgPSB0ZXN0
ZGlyLnRtcGRpci5qb2luKCJzdWIiKQorICAgIHJlYWwgPSBzdWIuam9pbigidGVzdF9yZWFsLnB5
IikKKyAgICByZWFsLndyaXRlKAorICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgZGVmIHRlc3Rfbm9kZWlkKHJlcXVlc3QpOgorICAgICAgICAgICAgIyBT
aG91bGQgbm90IGNvbnRhaW4gc3ViLyBwcmVmaXguCisgICAgICAgICAgICBhc3NlcnQgcmVxdWVz
dC5ub2RlLm5vZGVpZCA9PSAidGVzdF9yZWFsLnB5Ojp0ZXN0X25vZGVpZCIKKyAgICAgICAgIiIi
CisgICAgICAgICksCisgICAgICAgIGVuc3VyZT1UcnVlLAorICAgICkKKworICAgIG91dF9vZl90
cmVlID0gdGVzdGRpci50bXBkaXIuam9pbigib3V0X29mX3RyZWUiKS5lbnN1cmUoZGlyPVRydWUp
CisgICAgc3ltbGlua190b19zdWIgPSBvdXRfb2ZfdHJlZS5qb2luKCJzeW1saW5rX3RvX3N1YiIp
CisgICAgc3ltbGlua190b19zdWIubWtzeW1saW5rdG8oc3ViKQorICAgIHN1Yi5jaGRpcigpCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12cyIsICItLXJvb3RkaXI9JXMiICUgc3Vi
LCBzeW1saW5rX3RvX3N1YikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAg
ICAgIFsKKyAgICAgICAgICAgICMgU2hvdWxkIG5vdCBjb250YWluICJzdWIvIiEKKyAgICAgICAg
ICAgICJ0ZXN0X3JlYWwucHk6OnRlc3Rfbm9kZWlkIFBBU1NFRCIKKyAgICAgICAgXQorICAgICkK
KyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworZGVmIHRlc3RfY29sbGVjdGlnbm9yZV92
aWFfY29uZnRlc3QodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICIiImNvbGxlY3RfaWdub3Jl
IGluIHBhcmVudCBjb25mdGVzdCBza2lwcyBpbXBvcnRpbmcgY2hpbGQgKGlzc3VlICM0NTkyKS4i
IiIKKyAgICB0ZXN0cyA9IHRlc3RkaXIubWtweWRpcigidGVzdHMiKQorICAgIHRlc3RzLmVuc3Vy
ZSgiY29uZnRlc3QucHkiKS53cml0ZSgiY29sbGVjdF9pZ25vcmUgPSBbJ2lnbm9yZV9tZSddIikK
KworICAgIGlnbm9yZV9tZSA9IHRlc3RzLm1rZGlyKCJpZ25vcmVfbWUiKQorICAgIGlnbm9yZV9t
ZS5lbnN1cmUoIl9faW5pdF9fLnB5IikKKyAgICBpZ25vcmVfbWUuZW5zdXJlKCJjb25mdGVzdC5w
eSIpLndyaXRlKCJhc3NlcnQgMCwgJ3Nob3VsZF9ub3RfYmVfY2FsbGVkJyIpCisKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9O
T1RFU1RTQ09MTEVDVEVECisKKworZGVmIHRlc3RfY29sbGVjdF9wa2dfaW5pdF9hbmRfZmlsZV9p
bl9hcmdzKHRlc3RkaXIpOgorICAgIHN1YmRpciA9IHRlc3RkaXIubWtkaXIoInN1YiIpCisgICAg
aW5pdCA9IHN1YmRpci5lbnN1cmUoIl9faW5pdF9fLnB5IikKKyAgICBpbml0LndyaXRlKCJkZWYg
dGVzdF9pbml0KCk6IHBhc3MiKQorICAgIHAgPSBzdWJkaXIuZW5zdXJlKCJ0ZXN0X2ZpbGUucHki
KQorICAgIHAud3JpdGUoImRlZiB0ZXN0X2ZpbGUoKTogcGFzcyIpCisKKyAgICAjIE5PVEU6IHdp
dGhvdXQgIi1vIHB5dGhvbl9maWxlcz0qLnB5IiB0aGlzIGNvbGxlY3RzIHRlc3RfZmlsZS5weSB0
d2ljZS4KKyAgICAjIFRoaXMgY2hhbmdlZC9icm9rZSB3aXRoICJBZGQgcGFja2FnZSBzY29wZWQg
Zml4dHVyZXMgIzIyODMiICgyYjE0MTA4OTUpCisgICAgIyBpbml0aWFsbHkgKGNhdXNpbmcgYSBS
ZWN1cnNpb25FcnJvcikuCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12Iiwgc3Ry
KGluaXQpLCBzdHIocCkpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAg
ICBbCisgICAgICAgICAgICAic3ViL3Rlc3RfZmlsZS5weTo6dGVzdF9maWxlIFBBU1NFRCoiLAor
ICAgICAgICAgICAgInN1Yi90ZXN0X2ZpbGUucHk6OnRlc3RfZmlsZSBQQVNTRUQqIiwKKyAgICAg
ICAgICAgICIqMiBwYXNzZWQgaW4qIiwKKyAgICAgICAgXQorICAgICkKKworICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItdiIsICItbyIsICJweXRob25fZmlsZXM9Ki5weSIsIHN0cihp
bml0KSwgc3RyKHApKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAg
WworICAgICAgICAgICAgInN1Yi9fX2luaXRfXy5weTo6dGVzdF9pbml0IFBBU1NFRCoiLAorICAg
ICAgICAgICAgInN1Yi90ZXN0X2ZpbGUucHk6OnRlc3RfZmlsZSBQQVNTRUQqIiwKKyAgICAgICAg
ICAgICIqMiBwYXNzZWQgaW4qIiwKKyAgICAgICAgXQorICAgICkKKworCitkZWYgdGVzdF9jb2xs
ZWN0X3BrZ19pbml0X29ubHkodGVzdGRpcik6CisgICAgc3ViZGlyID0gdGVzdGRpci5ta2Rpcigi
c3ViIikKKyAgICBpbml0ID0gc3ViZGlyLmVuc3VyZSgiX19pbml0X18ucHkiKQorICAgIGluaXQu
d3JpdGUoImRlZiB0ZXN0X2luaXQoKTogcGFzcyIpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdChzdHIoaW5pdCkpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKm5v
IHRlc3RzIHJhbiBpbioiXSkKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIs
ICItbyIsICJweXRob25fZmlsZXM9Ki5weSIsIHN0cihpbml0KSkKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWyJzdWIvX19pbml0X18ucHk6OnRlc3RfaW5pdCBQQVNTRUQqIiwgIiox
IHBhc3NlZCBpbioiXSkKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKAorICAgIG5vdCBoYXNhdHRy
KHB5LnBhdGgubG9jYWwsICJta3N5bWxpbmt0byIpLAorICAgIHJlYXNvbj0ic3ltbGluayBub3Qg
YXZhaWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0iLAorKQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJ1c2VfcGtnIiwgKFRydWUsIEZhbHNlKSkKK2RlZiB0ZXN0X2NvbGxlY3Rfc3ViX3dpdGhfc3lt
bGlua3ModXNlX3BrZywgdGVzdGRpcik6CisgICAgc3ViID0gdGVzdGRpci5ta2Rpcigic3ViIikK
KyAgICBpZiB1c2VfcGtnOgorICAgICAgICBzdWIuZW5zdXJlKCJfX2luaXRfXy5weSIpCisgICAg
c3ViLmVuc3VyZSgidGVzdF9maWxlLnB5Iikud3JpdGUoImRlZiB0ZXN0X2ZpbGUoKTogcGFzcyIp
CisKKyAgICAjIENyZWF0ZSBhIGJyb2tlbiBzeW1saW5rLgorICAgIHN1Yi5qb2luKCJ0ZXN0X2Jy
b2tlbi5weSIpLm1rc3ltbGlua3RvKCJ0ZXN0X2RvZXNub3RleGlzdC5weSIpCisKKyAgICAjIFN5
bWxpbmsgdGhhdCBnZXRzIGNvbGxlY3RlZC4KKyAgICBzdWIuam9pbigidGVzdF9zeW1saW5rLnB5
IikubWtzeW1saW5rdG8oInRlc3RfZmlsZS5weSIpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLXYiLCBzdHIoc3ViKSkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
CisgICAgICAgIFsKKyAgICAgICAgICAgICJzdWIvdGVzdF9maWxlLnB5Ojp0ZXN0X2ZpbGUgUEFT
U0VEKiIsCisgICAgICAgICAgICAic3ViL3Rlc3Rfc3ltbGluay5weTo6dGVzdF9maWxlIFBBU1NF
RCoiLAorICAgICAgICAgICAgIioyIHBhc3NlZCBpbioiLAorICAgICAgICBdCisgICAgKQorCisK
K2RlZiB0ZXN0X2NvbGxlY3Rvcl9yZXNwZWN0c190YnN0eWxlKHRlc3RkaXIpOgorICAgIHAxID0g
dGVzdGRpci5tYWtlcHlmaWxlKCJhc3NlcnQgMCIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QocDEsICItLXRiPW5hdGl2ZSIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9J
TlRFUlJVUFRFRAorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWwor
ICAgICAgICAgICAgIipfIEVSUk9SIGNvbGxlY3RpbmcgdGVzdF9jb2xsZWN0b3JfcmVzcGVjdHNf
dGJzdHlsZS5weSBfKiIsCisgICAgICAgICAgICAiVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxs
IGxhc3QpOiIsCisgICAgICAgICAgICAnICBGaWxlICIqL3Rlc3RfY29sbGVjdG9yX3Jlc3BlY3Rz
X3Ric3R5bGUucHkiLCBsaW5lIDEsIGluIDxtb2R1bGU+JywKKyAgICAgICAgICAgICIgICAgYXNz
ZXJ0IDAiLAorICAgICAgICAgICAgIkFzc2VydGlvbkVycm9yOiBhc3NlcnQgMCIsCisgICAgICAg
ICAgICAiKiEgSW50ZXJydXB0ZWQ6IDEgZXJyb3JzIGR1cmluZyBjb2xsZWN0aW9uICEqIiwKKyAg
ICAgICAgICAgICIqPSAxIGVycm9yIGluICoiLAorICAgICAgICBdCisgICAgKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbXBhdC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF9jb21wYXQucHkKaW5kZXggNTUwYThmMWIzNTQ0ZDJhOTMzMDhlZjBmM2QyMGJhODNm
YzNiNTM3ZS4uYjQyOThkMTUzMWQ2MGM1NGRiODk2Y2ZjY2M5NTFhZDYxNDA3NWY2ZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbXBhdC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3RfY29tcGF0LnB5CkBAIC0xLDI3ICsxLDM1IEBACi1mcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IHN5cworZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdy
YXBzCisKK2ltcG9ydCBzaXgKIAogaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0LmNvbXBhdCBp
bXBvcnQgaXNfZ2VuZXJhdG9yLCBnZXRfcmVhbF9mdW5jLCBzYWZlX2dldGF0dHIKK2Zyb20gX3B5
dGVzdC5jb21wYXQgaW1wb3J0IF9QeXRlc3RXcmFwcGVyCitmcm9tIF9weXRlc3QuY29tcGF0IGlt
cG9ydCBnZXRfcmVhbF9mdW5jCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBpc19nZW5lcmF0
b3IKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IHNhZmVfZ2V0YXR0cgorZnJvbSBfcHl0ZXN0
LmNvbXBhdCBpbXBvcnQgc2FmZV9pc2NsYXNzCiBmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0
IE91dGNvbWVFeGNlcHRpb24KIAogCiBkZWYgdGVzdF9pc19nZW5lcmF0b3IoKToKLQogICAgIGRl
ZiB6YXAoKToKLSAgICAgICAgeWllbGQKKyAgICAgICAgeWllbGQgICMgcHJhZ21hOiBubyBjb3Zl
cgogCiAgICAgZGVmIGZvbygpOgotICAgICAgICBwYXNzCisgICAgICAgIHBhc3MgICMgcHJhZ21h
OiBubyBjb3ZlcgogCiAgICAgYXNzZXJ0IGlzX2dlbmVyYXRvcih6YXApCiAgICAgYXNzZXJ0IG5v
dCBpc19nZW5lcmF0b3IoZm9vKQogCiAKIGRlZiB0ZXN0X3JlYWxfZnVuY19sb29wX2xpbWl0KCk6
Ci0KICAgICBjbGFzcyBFdmlsKG9iamVjdCk6Ci0KICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYp
OgogICAgICAgICAgICAgc2VsZi5sZWZ0ID0gMTAwMAogCkBAIC0zMCwxNSArMzgsNDcgQEAgZGVm
IHRlc3RfcmVhbF9mdW5jX2xvb3BfbGltaXQoKToKIAogICAgICAgICBkZWYgX19nZXRhdHRyX18o
c2VsZiwgYXR0cik6CiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5sZWZ0OgotICAgICAgICAgICAg
ICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiaXRzIG92ZXIiKQorICAgICAgICAgICAgICAgIHJhaXNl
IFJ1bnRpbWVFcnJvcigiaXQncyBvdmVyIikgICMgcHJhZ21hOiBubyBjb3ZlcgogICAgICAgICAg
ICAgc2VsZi5sZWZ0IC09IDEKICAgICAgICAgICAgIHJldHVybiBzZWxmCiAKICAgICBldmlsID0g
RXZpbCgpCiAKLSAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6Ci0gICAgICAgIHJl
cyA9IGdldF9yZWFsX2Z1bmMoZXZpbCkKLSAgICAgICAgcHJpbnQocmVzKQorICAgIHdpdGggcHl0
ZXN0LnJhaXNlcygKKyAgICAgICAgVmFsdWVFcnJvciwKKyAgICAgICAgbWF0Y2g9KAorICAgICAg
ICAgICAgImNvdWxkIG5vdCBmaW5kIHJlYWwgZnVuY3Rpb24gb2YgPEV2aWwgbGVmdD04MDA+XG4i
CisgICAgICAgICAgICAic3RvcHBlZCBhdCA8RXZpbCBsZWZ0PTgwMD4iCisgICAgICAgICksCisg
ICAgKToKKyAgICAgICAgZ2V0X3JlYWxfZnVuYyhldmlsKQorCisKK2RlZiB0ZXN0X2dldF9yZWFs
X2Z1bmMoKToKKyAgICAiIiJDaGVjayB0aGF0IGdldF9yZWFsX2Z1bmMgY29ycmVjdGx5IHVud3Jh
cHMgZGVjb3JhdG9ycyB1bnRpbCByZWFjaGluZyB0aGUgcmVhbCBmdW5jdGlvbiIiIgorCisgICAg
ZGVmIGRlY29yYXRvcihmKToKKyAgICAgICAgQHdyYXBzKGYpCisgICAgICAgIGRlZiBpbm5lcigp
OgorICAgICAgICAgICAgcGFzcyAgIyBwcmFnbWE6IG5vIGNvdmVyCisKKyAgICAgICAgaWYgc2l4
LlBZMjoKKyAgICAgICAgICAgIGlubmVyLl9fd3JhcHBlZF9fID0gZgorICAgICAgICByZXR1cm4g
aW5uZXIKKworICAgIGRlZiBmdW5jKCk6CisgICAgICAgIHBhc3MgICMgcHJhZ21hOiBubyBjb3Zl
cgorCisgICAgd3JhcHBlZF9mdW5jID0gZGVjb3JhdG9yKGRlY29yYXRvcihmdW5jKSkKKyAgICBh
c3NlcnQgZ2V0X3JlYWxfZnVuYyh3cmFwcGVkX2Z1bmMpIGlzIGZ1bmMKKworICAgIHdyYXBwZWRf
ZnVuYzIgPSBkZWNvcmF0b3IoZGVjb3JhdG9yKHdyYXBwZWRfZnVuYykpCisgICAgYXNzZXJ0IGdl
dF9yZWFsX2Z1bmMod3JhcHBlZF9mdW5jMikgaXMgZnVuYworCisgICAgIyBzcGVjaWFsIGNhc2Ug
Zm9yIF9fcHl0ZXN0X3dyYXBwZWRfXyBhdHRyaWJ1dGU6IHVzZWQgdG8gb2J0YWluIHRoZSBmdW5j
dGlvbiB1cCB1bnRpbCB0aGUgcG9pbnQKKyAgICAjIGEgZnVuY3Rpb24gd2FzIHdyYXBwZWQgYnkg
cHl0ZXN0IGl0c2VsZgorICAgIHdyYXBwZWRfZnVuYzIuX19weXRlc3Rfd3JhcHBlZF9fID0gX1B5
dGVzdFdyYXBwZXIod3JhcHBlZF9mdW5jKQorICAgIGFzc2VydCBnZXRfcmVhbF9mdW5jKHdyYXBw
ZWRfZnVuYzIpIGlzIHdyYXBwZWRfZnVuYwogCiAKIEBweXRlc3QubWFyay5za2lwaWYoCkBAIC04
Niw3ICsxMjYsNiBAQCBkZWYgdGVzdF9pc19nZW5lcmF0b3JfYXN5bmNfc3ludGF4KHRlc3RkaXIp
OgogCiAKIGNsYXNzIEVycm9yc0hlbHBlcihvYmplY3QpOgotCiAgICAgQHByb3BlcnR5CiAgICAg
ZGVmIHJhaXNlX2V4Y2VwdGlvbihzZWxmKToKICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJleGNl
cHRpb24gc2hvdWxkIGJlIGNhdGNoZWQiKQpAQCAtMTA4LDMgKzE0NywxNCBAQCBkZWYgdGVzdF9z
YWZlX2dldGF0dHIoKToKICAgICBoZWxwZXIgPSBFcnJvcnNIZWxwZXIoKQogICAgIGFzc2VydCBz
YWZlX2dldGF0dHIoaGVscGVyLCAicmFpc2VfZXhjZXB0aW9uIiwgImRlZmF1bHQiKSA9PSAiZGVm
YXVsdCIKICAgICBhc3NlcnQgc2FmZV9nZXRhdHRyKGhlbHBlciwgInJhaXNlX2ZhaWwiLCAiZGVm
YXVsdCIpID09ICJkZWZhdWx0IgorCisKK2RlZiB0ZXN0X3NhZmVfaXNjbGFzcygpOgorICAgIGFz
c2VydCBzYWZlX2lzY2xhc3ModHlwZSkgaXMgVHJ1ZQorCisgICAgY2xhc3MgQ3JhcHB5Q2xhc3Mo
RXhjZXB0aW9uKToKKyAgICAgICAgQHByb3BlcnR5CisgICAgICAgIGRlZiBfX2NsYXNzX18oc2Vs
Zik6CisgICAgICAgICAgICBhc3NlcnQgRmFsc2UsICJTaG91bGQgYmUgaWdub3JlZCIKKworICAg
IGFzc2VydCBzYWZlX2lzY2xhc3MoQ3JhcHB5Q2xhc3MoKSkgaXMgRmFsc2UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb25maWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfY29uZmlnLnB5CmluZGV4IDVmYjA0ODM2NGY3Y2FiZmY5YzU2YTMwY2U2NzQ0YjQ3ZTA5
NTYzNzguLmQxM2YxMTliMDIwYTI1YWI2YTc3ZmU1Y2E0MjZiYmZkOTRkNDJkZmYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb25maWcucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X2NvbmZpZy5weQpAQCAtMSwxNiArMSwyOCBAQAotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorIyAtKi0g
Y29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBzeXMKIGltcG9ydCB0ZXh0d3JhcAotaW1wb3J0IHB5
dGVzdAogCiBpbXBvcnQgX3B5dGVzdC5fY29kZQotZnJvbSBfcHl0ZXN0LmNvbmZpZy5maW5kcGF0
aHMgaW1wb3J0IGdldGNmZywgZ2V0X2NvbW1vbl9hbmNlc3RvciwgZGV0ZXJtaW5lX3NldHVwCitp
bXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBpbXBvcnRsaWJfbWV0YWRh
dGEKIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IF9pdGVyX3Jld3JpdGFibGVfbW9kdWxlcwor
ZnJvbSBfcHl0ZXN0LmNvbmZpZy5leGNlcHRpb25zIGltcG9ydCBVc2FnZUVycm9yCitmcm9tIF9w
eXRlc3QuY29uZmlnLmZpbmRwYXRocyBpbXBvcnQgZGV0ZXJtaW5lX3NldHVwCitmcm9tIF9weXRl
c3QuY29uZmlnLmZpbmRwYXRocyBpbXBvcnQgZ2V0X2NvbW1vbl9hbmNlc3RvcgorZnJvbSBfcHl0
ZXN0LmNvbmZpZy5maW5kcGF0aHMgaW1wb3J0IGdldGNmZworZnJvbSBfcHl0ZXN0Lm1haW4gaW1w
b3J0IEVYSVRfSU5URVJSVVBURUQKIGZyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVT
VFNDT0xMRUNURUQKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX09LCitmcm9tIF9weXRl
c3QubWFpbiBpbXBvcnQgRVhJVF9URVNUU0ZBSUxFRAorZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0
IEVYSVRfVVNBR0VFUlJPUgorZnJvbSBfcHl0ZXN0LnBhdGhsaWIgaW1wb3J0IFBhdGgKIAogCiBj
bGFzcyBUZXN0UGFyc2VJbmkob2JqZWN0KToKLQogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgKICAgICAgICAgInNlY3Rpb24sIGZpbGVuYW1lIiwgWygicHl0ZXN0IiwgInB5dGVzdC5pbmki
KSwgKCJ0b29sOnB5dGVzdCIsICJzZXR1cC5jZmciKV0KICAgICApCkBAIC0xOCwxMSArMzAsMTEg
QEAgY2xhc3MgVGVzdFBhcnNlSW5pKG9iamVjdCk6CiAgICAgICAgIHN1YiA9IHRtcGRpci5ta2Rp
cigic3ViIikKICAgICAgICAgc3ViLmNoZGlyKCkKICAgICAgICAgdG1wZGlyLmpvaW4oZmlsZW5h
bWUpLndyaXRlKAotICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3VyY2UoCi0gICAgICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICBbe3NlY3Rpb259XQotICAgICAgICAgICAgbmFtZSA9IHZh
bHVlCi0gICAgICAgICIiIi5mb3JtYXQoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisg
ICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIFt7c2VjdGlvbn1dCisgICAgICAg
ICAgICAgICAgbmFtZSA9IHZhbHVlCisgICAgICAgICAgICAgICAgIiIiLmZvcm1hdCgKICAgICAg
ICAgICAgICAgICAgICAgc2VjdGlvbj1zZWN0aW9uCiAgICAgICAgICAgICAgICAgKQogICAgICAg
ICAgICAgKQpAQCAtMzYsMTQgKzQ4LDMwIEBAIGNsYXNzIFRlc3RQYXJzZUluaShvYmplY3QpOgog
ICAgICAgICAiIiJjb3JyZWN0bHkgaGFuZGxlIHplcm8gbGVuZ3RoIGFyZ3VtZW50cyAoYSBsYSBw
eXRlc3QgJycpIiIiCiAgICAgICAgIGdldGNmZyhbIiJdKQogCisgICAgZGVmIHRlc3Rfc2V0dXBj
ZmdfdXNlc190b29scHl0ZXN0X3dpdGhfcHl0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBw
MSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3QoKTogcGFzcyIpCisgICAgICAgIHRlc3Rk
aXIubWFrZWZpbGUoCisgICAgICAgICAgICAiLmNmZyIsCisgICAgICAgICAgICBzZXR1cD0iIiIK
KyAgICAgICAgICAgICAgICBbdG9vbDpweXRlc3RdCisgICAgICAgICAgICAgICAgdGVzdHBhdGhz
PSVzCisgICAgICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgICAgICB0ZXN0cGF0aHM9
aWdub3JlZAorICAgICAgICAiIiIKKyAgICAgICAgICAgICUgcDEuYmFzZW5hbWUsCisgICAgICAg
ICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqLCBpbmlmaWxlOiBzZXR1cC5jZmcsICoiLCAiKiAxIHBh
c3NlZCBpbiAqIl0pCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKwogICAgIGRlZiB0
ZXN0X2FwcGVuZF9wYXJzZV9hcmdzKHNlbGYsIHRlc3RkaXIsIHRtcGRpciwgbW9ua2V5cGF0Y2gp
OgogICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEVTVF9BRERPUFRTIiwgJy0tY29sb3Ig
bm8gLXJzIC0tdGI9InNob3J0IicpCiAgICAgICAgIHRtcGRpci5qb2luKCJweXRlc3QuaW5pIiku
d3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRl
eHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgW3B5
dGVzdF0KKyAgICAgICAgICAgICAgICBhZGRvcHRzID0gLS12ZXJib3NlCiAgICAgICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICBbcHl0ZXN0XQotICAgICAgICAgICAgYWRkb3B0cyA9IC0tdmVy
Ym9zZQotICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICBjb25m
aWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKHRtcGRpcikKQEAgLTEwMyw2ICsxMzEsMTIgQEAgY2xh
c3MgVGVzdFBhcnNlSW5pKG9iamVjdCk6CiAgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vj
b25maWd1cmUoc3ViKQogICAgICAgICBhc3NlcnQgY29uZmlnLmdldGluaSgibWludmVyc2lvbiIp
ID09ICIyLjAiCiAKKyAgICBkZWYgdGVzdF9pbmlfcGFyc2VfZXJyb3Ioc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oInB5dGVzdC5pbmkiKS53cml0ZSgiYWRkb3B0
cyA9IC14IikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5l
cyhbIkVSUk9SOiAqcHl0ZXN0LmluaToxOiBubyBzZWN0aW9uIGhlYWRlciBkZWZpbmVkIl0pCisK
ICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSJwcm9iYWJseSBub3QgbmVlZGVkIikKICAg
ICBkZWYgdGVzdF9jb25mY3V0ZGlyKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBzdWIgPSB0ZXN0
ZGlyLm1rZGlyKCJzdWIiKQpAQCAtMTE4LDcgKzE1Miw2IEBAIGNsYXNzIFRlc3RQYXJzZUluaShv
YmplY3QpOgogCiAKIGNsYXNzIFRlc3RDb25maWdDbWRsaW5lUGFyc2luZyhvYmplY3QpOgotCiAg
ICAgZGVmIHRlc3RfcGFyc2luZ19hZ2Fpbl9mYWlscyhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAg
Y29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygpCiAgICAgICAgIHB5dGVzdC5yYWlzZXMoQXNz
ZXJ0aW9uRXJyb3IsIGxhbWJkYTogY29uZmlnLnBhcnNlKFtdKSkKQEAgLTEzNywxMyArMTcwLDEz
IEBAIGNsYXNzIFRlc3RDb25maWdDbWRsaW5lUGFyc2luZyhvYmplY3QpOgogICAgICAgICAiIiIK
ICAgICAgICAgKQogICAgICAgICB0ZXN0ZGlyLm1ha2VmaWxlKAotICAgICAgICAgICAgIi5jZmci
LAorICAgICAgICAgICAgIi5pbmkiLAogICAgICAgICAgICAgY3VzdG9tPSIiIgogICAgICAgICAg
ICAgW3B5dGVzdF0KICAgICAgICAgICAgIGN1c3RvbSA9IDEKICAgICAgICAgIiIiLAogICAgICAg
ICApCi0gICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoIi1jIiwgImN1c3RvbS5j
ZmciKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCItYyIsICJjdXN0b20u
aW5pIikKICAgICAgICAgYXNzZXJ0IGNvbmZpZy5nZXRpbmkoImN1c3RvbSIpID09ICIxIgogCiAg
ICAgICAgIHRlc3RkaXIubWFrZWZpbGUoCkBAIC0xNTcsOCArMTkwLDggQEAgY2xhc3MgVGVzdENv
bmZpZ0NtZGxpbmVQYXJzaW5nKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBjb25maWcuZ2V0aW5p
KCJjdXN0b20iKSA9PSAiMSIKIAogICAgIGRlZiB0ZXN0X2Fic29sdXRlX3dpbjMyX3BhdGgoc2Vs
ZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlbXBfY2ZnX2ZpbGUgPSB0ZXN0ZGlyLm1ha2VmaWxlKAot
ICAgICAgICAgICAgIi5jZmciLAorICAgICAgICB0ZW1wX2luaV9maWxlID0gdGVzdGRpci5tYWtl
ZmlsZSgKKyAgICAgICAgICAgICIuaW5pIiwKICAgICAgICAgICAgIGN1c3RvbT0iIiIKICAgICAg
ICAgICAgIFtweXRlc3RdCiAgICAgICAgICAgICBhZGRvcHRzID0gLS12ZXJzaW9uCkBAIC0xNjYs
MTMgKzE5OSwxMiBAQCBjbGFzcyBUZXN0Q29uZmlnQ21kbGluZVBhcnNpbmcob2JqZWN0KToKICAg
ICAgICAgKQogICAgICAgICBmcm9tIG9zLnBhdGggaW1wb3J0IG5vcm1wYXRoCiAKLSAgICAgICAg
dGVtcF9jZmdfZmlsZSA9IG5vcm1wYXRoKHN0cih0ZW1wX2NmZ19maWxlKSkKLSAgICAgICAgcmV0
ID0gcHl0ZXN0Lm1haW4oIi1jICIgKyB0ZW1wX2NmZ19maWxlKQorICAgICAgICB0ZW1wX2luaV9m
aWxlID0gbm9ybXBhdGgoc3RyKHRlbXBfaW5pX2ZpbGUpKQorICAgICAgICByZXQgPSBweXRlc3Qu
bWFpbihbIi1jIiwgdGVtcF9pbmlfZmlsZV0pCiAgICAgICAgIGFzc2VydCByZXQgPT0gX3B5dGVz
dC5tYWluLkVYSVRfT0sKIAogCiBjbGFzcyBUZXN0Q29uZmlnQVBJKG9iamVjdCk6Ci0KICAgICBk
ZWYgdGVzdF9jb25maWdfdHJhY2Uoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIGNvbmZpZyA9IHRl
c3RkaXIucGFyc2Vjb25maWcoKQogICAgICAgICB2YWx1ZXMgPSBbXQpAQCAtMTkxLDcgKzIyMyw3
IEBAIGNsYXNzIFRlc3RDb25maWdBUEkob2JqZWN0KToKICAgICAgICAgY29uZmlnID0gdGVzdGRp
ci5wYXJzZWNvbmZpZygiLS1oZWxsbz10aGlzIikKICAgICAgICAgZm9yIHggaW4gKCJoZWxsbyIs
ICItLWhlbGxvIiwgIi1YIik6CiAgICAgICAgICAgICBhc3NlcnQgY29uZmlnLmdldG9wdGlvbih4
KSA9PSAidGhpcyIKLSAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAiY29uZmlnLmdl
dG9wdGlvbigncXdlcXdlJykiKQorICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGNv
bmZpZy5nZXRvcHRpb24sICJxd2Vxd2UiKQogCiAgICAgQHB5dGVzdC5tYXJrLnNraXBpZigic3lz
LnZlcnNpb25faW5mb1swXSA8IDMiKQogICAgIGRlZiB0ZXN0X2NvbmZpZ19nZXRvcHRpb25fdW5p
Y29kZShzZWxmLCB0ZXN0ZGlyKToKQEAgLTIwOCw3ICsyNDAsNyBAQCBjbGFzcyBUZXN0Q29uZmln
QVBJKG9iamVjdCk6CiAKICAgICBkZWYgdGVzdF9jb25maWdfZ2V0dmFsdWVvcnNraXAoc2VsZiwg
dGVzdGRpcik6CiAgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQotICAgICAg
ICBweXRlc3QucmFpc2VzKHB5dGVzdC5za2lwLkV4Y2VwdGlvbiwgImNvbmZpZy5nZXR2YWx1ZW9y
c2tpcCgnaGVsbG8nKSIpCisgICAgICAgIHB5dGVzdC5yYWlzZXMocHl0ZXN0LnNraXAuRXhjZXB0
aW9uLCBjb25maWcuZ2V0dmFsdWVvcnNraXAsICJoZWxsbyIpCiAgICAgICAgIHZlcmJvc2UgPSBj
b25maWcuZ2V0dmFsdWVvcnNraXAoInZlcmJvc2UiKQogICAgICAgICBhc3NlcnQgdmVyYm9zZSA9
PSBjb25maWcub3B0aW9uLnZlcmJvc2UKIApAQCAtNDAwLDIwICs0MzIsMjUgQEAgY2xhc3MgVGVz
dENvbmZpZ0FQSShvYmplY3QpOgogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKICAgICAg
ICAgIm5hbWVzLCBleHBlY3RlZCIsCiAgICAgICAgIFsKKyAgICAgICAgICAgICMgZGlzdC1pbmZv
IGJhc2VkIGRpc3RyaWJ1dGlvbnMgcm9vdCBhcmUgZmlsZXMgYXMgd2lsbCBiZSBwdXQgaW4gUFlU
SE9OUEFUSAogICAgICAgICAgICAgKFsiYmFyLnB5Il0sIFsiYmFyIl0pLAotICAgICAgICAgICAg
KFsiZm9vIiwgImJhci5weSJdLCBbXSksCi0gICAgICAgICAgICAoWyJmb28iLCAiYmFyLnB5YyJd
LCBbXSksCi0gICAgICAgICAgICAoWyJmb28iLCAiX19pbml0X18ucHkiXSwgWyJmb28iXSksCi0g
ICAgICAgICAgICAoWyJmb28iLCAiYmFyIiwgIl9faW5pdF9fLnB5Il0sIFtdKSwKKyAgICAgICAg
ICAgIChbImZvby9iYXIucHkiXSwgWyJiYXIiXSksCisgICAgICAgICAgICAoWyJmb28vYmFyLnB5
YyJdLCBbXSksCisgICAgICAgICAgICAoWyJmb28vX19pbml0X18ucHkiXSwgWyJmb28iXSksCisg
ICAgICAgICAgICAoWyJiYXIvX19pbml0X18ucHkiLCAieHoucHkiXSwgWyJiYXIiLCAieHoiXSks
CisgICAgICAgICAgICAoWyJzZXR1cC5weSJdLCBbXSksCisgICAgICAgICAgICAjIGVnZyBiYXNl
ZCBkaXN0cmlidXRpb25zIHJvb3QgY29udGFpbiB0aGUgZmlsZXMgZnJvbSB0aGUgZGlzdCByb290
CisgICAgICAgICAgICAoWyJzcmMvYmFyL19faW5pdF9fLnB5Il0sIFsiYmFyIl0pLAorICAgICAg
ICAgICAgKFsic3JjL2Jhci9fX2luaXRfXy5weSIsICJzZXR1cC5weSJdLCBbImJhciJdKSwKKyAg
ICAgICAgICAgIChbInNvdXJjZS9weXRob24vYmFyL19faW5pdF9fLnB5IiwgInNldHVwLnB5Il0s
IFsiYmFyIl0pLAogICAgICAgICBdLAogICAgICkKICAgICBkZWYgdGVzdF9pdGVyX3Jld3JpdGFi
bGVfbW9kdWxlcyhzZWxmLCBuYW1lcywgZXhwZWN0ZWQpOgotICAgICAgICBhc3NlcnQgbGlzdChf
aXRlcl9yZXdyaXRhYmxlX21vZHVsZXMoWyIvIi5qb2luKG5hbWVzKV0pKSA9PSBleHBlY3RlZAor
ICAgICAgICBhc3NlcnQgbGlzdChfaXRlcl9yZXdyaXRhYmxlX21vZHVsZXMobmFtZXMpKSA9PSBl
eHBlY3RlZAogCiAKIGNsYXNzIFRlc3RDb25maWdGcm9tZGljdGFyZ3Mob2JqZWN0KToKLQotICAg
IGRlZiB0ZXN0X2Jhc2ljX2JlaGF2aW9yKHNlbGYpOgorICAgIGRlZiB0ZXN0X2Jhc2ljX2JlaGF2
aW9yKHNlbGYsIF9zeXNfc25hcHNob3QpOgogICAgICAgICBmcm9tIF9weXRlc3QuY29uZmlnIGlt
cG9ydCBDb25maWcKIAogICAgICAgICBvcHRpb25fZGljdCA9IHsidmVyYm9zZSI6IDQ0NCwgImZv
byI6ICJiYXIiLCAiY2FwdHVyZSI6ICJubyJ9CkBAIC00MjcsNyArNDY0LDcgQEAgY2xhc3MgVGVz
dENvbmZpZ0Zyb21kaWN0YXJncyhvYmplY3QpOgogICAgICAgICBhc3NlcnQgY29uZmlnLm9wdGlv
bi5jYXB0dXJlID09ICJubyIKICAgICAgICAgYXNzZXJ0IGNvbmZpZy5hcmdzID09IGFyZ3MKIAot
ICAgIGRlZiB0ZXN0X29yaWdhcmdzKHNlbGYpOgorICAgIGRlZiB0ZXN0X29yaWdhcmdzKHNlbGYs
IF9zeXNfc25hcHNob3QpOgogICAgICAgICAiIiJTaG93IHRoYXQgZnJvbWRpY3RhcmdzIGNhbiBo
YW5kbGUgYXJncyBpbiB0aGVpciAib3JpZyIgZm9ybWF0IiIiCiAgICAgICAgIGZyb20gX3B5dGVz
dC5jb25maWcgaW1wb3J0IENvbmZpZwogCkBAIC00NDIsMTEgKzQ3OSwxMSBAQCBjbGFzcyBUZXN0
Q29uZmlnRnJvbWRpY3RhcmdzKG9iamVjdCk6CiAKICAgICBkZWYgdGVzdF9pbmlmaWxlbmFtZShz
ZWxmLCB0bXBkaXIpOgogICAgICAgICB0bXBkaXIuam9pbigiZm9vL2Jhci5pbmkiKS5lbnN1cmUo
KS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAorICAgICAgICAgICAg
dGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBb
cHl0ZXN0XQorICAgICAgICAgICAgICAgIG5hbWUgPSB2YWx1ZQogICAgICAgICAgICAgICAgICIi
IgotICAgICAgICAgICAgW3B5dGVzdF0KLSAgICAgICAgICAgIG5hbWUgPSB2YWx1ZQotICAgICAg
ICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogCkBAIC00NTcsMTIgKzQ5NCwxMiBAQCBj
bGFzcyBUZXN0Q29uZmlnRnJvbWRpY3RhcmdzKG9iamVjdCk6CiAKICAgICAgICAgY3dkID0gdG1w
ZGlyLmpvaW4oImEvYiIpCiAgICAgICAgIGN3ZC5qb2luKCJweXRlc3QuaW5pIikuZW5zdXJlKCku
d3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRl
eHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgW3B5
dGVzdF0KKyAgICAgICAgICAgICAgICBuYW1lID0gd3JvbmctdmFsdWUKKyAgICAgICAgICAgICAg
ICBzaG91bGRfbm90X2JlX3NldCA9IHRydWUKICAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgIFtweXRlc3RdCi0gICAgICAgICAgICBuYW1lID0gd3JvbmctdmFsdWUKLSAgICAgICAgICAg
IHNob3VsZF9ub3RfYmVfc2V0ID0gdHJ1ZQotICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAg
ICAgICAgKQogICAgICAgICB3aXRoIGN3ZC5lbnN1cmUoZGlyPVRydWUpLmFzX2N3ZCgpOgpAQCAt
NDc5LDcgKzUxNiw2IEBAIGNsYXNzIFRlc3RDb25maWdGcm9tZGljdGFyZ3Mob2JqZWN0KToKIAog
CiBkZWYgdGVzdF9vcHRpb25zX29uX3NtYWxsX2ZpbGVfZG9fbm90X2Jsb3dfdXAodGVzdGRpcik6
Ci0KICAgICBkZWYgcnVuZmlsZXRlc3Qob3B0cyk6CiAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bigqb3B0cykKICAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXBy
ZWMuY291bnRvdXRjb21lcygpCkBAIC01MDksMzIgKzU0NSwyNiBAQCBkZWYgdGVzdF9vcHRpb25z
X29uX3NtYWxsX2ZpbGVfZG9fbm90X2Jsb3dfdXAodGVzdGRpcik6CiAKIAogZGVmIHRlc3RfcHJl
cGFyc2Vfb3JkZXJpbmdfd2l0aF9zZXR1cHRvb2xzKHRlc3RkaXIsIG1vbmtleXBhdGNoKToKLSAg
ICBwa2dfcmVzb3VyY2VzID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgicGtnX3Jlc291cmNlcyIpCi0K
LSAgICBkZWYgbXlfaXRlcihuYW1lKToKLSAgICAgICAgYXNzZXJ0IG5hbWUgPT0gInB5dGVzdDEx
IgotCi0gICAgICAgIGNsYXNzIERpc3Qob2JqZWN0KToKLSAgICAgICAgICAgIHByb2plY3RfbmFt
ZSA9ICJzcGFtIgotICAgICAgICAgICAgdmVyc2lvbiA9ICIxLjAiCisgICAgbW9ua2V5cGF0Y2gu
ZGVsZW52KCJQWVRFU1RfRElTQUJMRV9QTFVHSU5fQVVUT0xPQUQiLCByYWlzaW5nPUZhbHNlKQog
Ci0gICAgICAgICAgICBkZWYgX2dldF9tZXRhZGF0YShzZWxmLCBuYW1lKToKLSAgICAgICAgICAg
ICAgICByZXR1cm4gWyJmb28udHh0LHNoYTI1Nj1hYmMsMTIzIl0KKyAgICBjbGFzcyBFbnRyeVBv
aW50KG9iamVjdCk6CisgICAgICAgIG5hbWUgPSAibXl0ZXN0cGx1Z2luIgorICAgICAgICBncm91
cCA9ICJweXRlc3QxMSIKIAotICAgICAgICBjbGFzcyBFbnRyeVBvaW50KG9iamVjdCk6Ci0gICAg
ICAgICAgICBuYW1lID0gIm15dGVzdHBsdWdpbiIKLSAgICAgICAgICAgIGRpc3QgPSBEaXN0KCkK
KyAgICAgICAgZGVmIGxvYWQoc2VsZik6CisgICAgICAgICAgICBjbGFzcyBQc2V1ZG9QbHVnaW4o
b2JqZWN0KToKKyAgICAgICAgICAgICAgICB4ID0gNDIKIAotICAgICAgICAgICAgZGVmIGxvYWQo
c2VsZik6CisgICAgICAgICAgICByZXR1cm4gUHNldWRvUGx1Z2luKCkKIAotICAgICAgICAgICAg
ICAgIGNsYXNzIFBzZXVkb1BsdWdpbihvYmplY3QpOgotICAgICAgICAgICAgICAgICAgICB4ID0g
NDIKKyAgICBjbGFzcyBEaXN0KG9iamVjdCk6CisgICAgICAgIGZpbGVzID0gKCkKKyAgICAgICAg
ZW50cnlfcG9pbnRzID0gKEVudHJ5UG9pbnQoKSwpCiAKLSAgICAgICAgICAgICAgICByZXR1cm4g
UHNldWRvUGx1Z2luKCkKKyAgICBkZWYgbXlfZGlzdHMoKToKKyAgICAgICAgcmV0dXJuIChEaXN0
LCkKIAotICAgICAgICByZXR1cm4gaXRlcihbRW50cnlQb2ludCgpXSkKLQotICAgIG1vbmtleXBh
dGNoLnNldGF0dHIocGtnX3Jlc291cmNlcywgIml0ZXJfZW50cnlfcG9pbnRzIiwgbXlfaXRlcikK
KyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGltcG9ydGxpYl9tZXRhZGF0YSwgImRpc3RyaWJ1dGlv
bnMiLCBteV9kaXN0cykKICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgIiIiCiAg
ICAgICAgIHB5dGVzdF9wbHVnaW5zID0gIm15dGVzdHBsdWdpbiIsCkBAIC01NDcsNTggKzU3Nyw3
MyBAQCBkZWYgdGVzdF9wcmVwYXJzZV9vcmRlcmluZ193aXRoX3NldHVwdG9vbHModGVzdGRpciwg
bW9ua2V5cGF0Y2gpOgogCiAKIGRlZiB0ZXN0X3NldHVwdG9vbHNfaW1wb3J0ZXJyb3JfaXNzdWUx
NDc5KHRlc3RkaXIsIG1vbmtleXBhdGNoKToKLSAgICBwa2dfcmVzb3VyY2VzID0gcHl0ZXN0Lmlt
cG9ydG9yc2tpcCgicGtnX3Jlc291cmNlcyIpCi0KLSAgICBkZWYgbXlfaXRlcihuYW1lKToKLSAg
ICAgICAgYXNzZXJ0IG5hbWUgPT0gInB5dGVzdDExIgorICAgIG1vbmtleXBhdGNoLmRlbGVudigi
UFlURVNUX0RJU0FCTEVfUExVR0lOX0FVVE9MT0FEIiwgcmFpc2luZz1GYWxzZSkKIAotICAgICAg
ICBjbGFzcyBEaXN0KG9iamVjdCk6Ci0gICAgICAgICAgICBwcm9qZWN0X25hbWUgPSAic3BhbSIK
LSAgICAgICAgICAgIHZlcnNpb24gPSAiMS4wIgorICAgIGNsYXNzIER1bW15RW50cnlQb2ludChv
YmplY3QpOgorICAgICAgICBuYW1lID0gIm15dGVzdHBsdWdpbiIKKyAgICAgICAgZ3JvdXAgPSAi
cHl0ZXN0MTEiCiAKLSAgICAgICAgICAgIGRlZiBfZ2V0X21ldGFkYXRhKHNlbGYsIG5hbWUpOgot
ICAgICAgICAgICAgICAgIHJldHVybiBbImZvby50eHQsc2hhMjU2PWFiYywxMjMiXQorICAgICAg
ICBkZWYgbG9hZChzZWxmKToKKyAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJEb24ndCBo
aWRlIG1lISIpCiAKLSAgICAgICAgY2xhc3MgRW50cnlQb2ludChvYmplY3QpOgotICAgICAgICAg
ICAgbmFtZSA9ICJteXRlc3RwbHVnaW4iCi0gICAgICAgICAgICBkaXN0ID0gRGlzdCgpCisgICAg
Y2xhc3MgRGlzdHJpYnV0aW9uKG9iamVjdCk6CisgICAgICAgIHZlcnNpb24gPSAiMS4wIgorICAg
ICAgICBmaWxlcyA9ICgiZm9vLnR4dCIsKQorICAgICAgICBlbnRyeV9wb2ludHMgPSAoRHVtbXlF
bnRyeVBvaW50KCksKQogCi0gICAgICAgICAgICBkZWYgbG9hZChzZWxmKToKLSAgICAgICAgICAg
ICAgICByYWlzZSBJbXBvcnRFcnJvcigiRG9uJ3QgaGlkZSBtZSEiKQorICAgIGRlZiBkaXN0cmli
dXRpb25zKCk6CisgICAgICAgIHJldHVybiAoRGlzdHJpYnV0aW9uKCksKQogCi0gICAgICAgIHJl
dHVybiBpdGVyKFtFbnRyeVBvaW50KCldKQotCi0gICAgbW9ua2V5cGF0Y2guc2V0YXR0cihwa2df
cmVzb3VyY2VzLCAiaXRlcl9lbnRyeV9wb2ludHMiLCBteV9pdGVyKQorICAgIG1vbmtleXBhdGNo
LnNldGF0dHIoaW1wb3J0bGliX21ldGFkYXRhLCAiZGlzdHJpYnV0aW9ucyIsIGRpc3RyaWJ1dGlv
bnMpCiAgICAgd2l0aCBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yKToKICAgICAgICAgdGVzdGRp
ci5wYXJzZWNvbmZpZygpCiAKIAorZGVmIHRlc3RfaW1wb3J0bGliX21ldGFkYXRhX2Jyb2tlbl9k
aXN0cmlidXRpb24odGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICIiIkludGVncmF0aW9uIHRl
c3QgZm9yIGJyb2tlbiBkaXN0cmlidXRpb25zIHdpdGggJ2ZpbGVzJyBtZXRhZGF0YSBiZWluZyBO
b25lICgjNTM4OSkiIiIKKyAgICBtb25rZXlwYXRjaC5kZWxlbnYoIlBZVEVTVF9ESVNBQkxFX1BM
VUdJTl9BVVRPTE9BRCIsIHJhaXNpbmc9RmFsc2UpCisKKyAgICBjbGFzcyBEdW1teUVudHJ5UG9p
bnQ6CisgICAgICAgIG5hbWUgPSAibXl0ZXN0cGx1Z2luIgorICAgICAgICBncm91cCA9ICJweXRl
c3QxMSIKKworICAgICAgICBkZWYgbG9hZChzZWxmKToKKyAgICAgICAgICAgIHJldHVybiBvYmpl
Y3QoKQorCisgICAgY2xhc3MgRGlzdHJpYnV0aW9uOgorICAgICAgICB2ZXJzaW9uID0gIjEuMCIK
KyAgICAgICAgZmlsZXMgPSBOb25lCisgICAgICAgIGVudHJ5X3BvaW50cyA9IChEdW1teUVudHJ5
UG9pbnQoKSwpCisKKyAgICBkZWYgZGlzdHJpYnV0aW9ucygpOgorICAgICAgICByZXR1cm4gKERp
c3RyaWJ1dGlvbigpLCkKKworICAgIG1vbmtleXBhdGNoLnNldGF0dHIoaW1wb3J0bGliX21ldGFk
YXRhLCAiZGlzdHJpYnV0aW9ucyIsIGRpc3RyaWJ1dGlvbnMpCisgICAgdGVzdGRpci5wYXJzZWNv
bmZpZygpCisKKwogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJibG9ja19pdCIsIFtUcnVlLCBG
YWxzZV0pCiBkZWYgdGVzdF9wbHVnaW5fcHJlcGFyc2VfcHJldmVudHNfc2V0dXB0b29sc19sb2Fk
aW5nKHRlc3RkaXIsIG1vbmtleXBhdGNoLCBibG9ja19pdCk6Ci0gICAgcGtnX3Jlc291cmNlcyA9
IHB5dGVzdC5pbXBvcnRvcnNraXAoInBrZ19yZXNvdXJjZXMiKQorICAgIG1vbmtleXBhdGNoLmRl
bGVudigiUFlURVNUX0RJU0FCTEVfUExVR0lOX0FVVE9MT0FEIiwgcmFpc2luZz1GYWxzZSkKIAog
ICAgIHBsdWdpbl9tb2R1bGVfcGxhY2Vob2xkZXIgPSBvYmplY3QoKQogCi0gICAgZGVmIG15X2l0
ZXIobmFtZSk6Ci0gICAgICAgIGFzc2VydCBuYW1lID09ICJweXRlc3QxMSIKLQotICAgICAgICBj
bGFzcyBEaXN0KG9iamVjdCk6Ci0gICAgICAgICAgICBwcm9qZWN0X25hbWUgPSAic3BhbSIKLSAg
ICAgICAgICAgIHZlcnNpb24gPSAiMS4wIgorICAgIGNsYXNzIER1bW15RW50cnlQb2ludChvYmpl
Y3QpOgorICAgICAgICBuYW1lID0gIm15dGVzdHBsdWdpbiIKKyAgICAgICAgZ3JvdXAgPSAicHl0
ZXN0MTEiCiAKLSAgICAgICAgICAgIGRlZiBfZ2V0X21ldGFkYXRhKHNlbGYsIG5hbWUpOgotICAg
ICAgICAgICAgICAgIHJldHVybiBbImZvby50eHQsc2hhMjU2PWFiYywxMjMiXQorICAgICAgICBk
ZWYgbG9hZChzZWxmKToKKyAgICAgICAgICAgIHJldHVybiBwbHVnaW5fbW9kdWxlX3BsYWNlaG9s
ZGVyCiAKLSAgICAgICAgY2xhc3MgRW50cnlQb2ludChvYmplY3QpOgotICAgICAgICAgICAgbmFt
ZSA9ICJteXRlc3RwbHVnaW4iCi0gICAgICAgICAgICBkaXN0ID0gRGlzdCgpCisgICAgY2xhc3Mg
RGlzdHJpYnV0aW9uKG9iamVjdCk6CisgICAgICAgIHZlcnNpb24gPSAiMS4wIgorICAgICAgICBm
aWxlcyA9ICgiZm9vLnR4dCIsKQorICAgICAgICBlbnRyeV9wb2ludHMgPSAoRHVtbXlFbnRyeVBv
aW50KCksKQogCi0gICAgICAgICAgICBkZWYgbG9hZChzZWxmKToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcGx1Z2luX21vZHVsZV9wbGFjZWhvbGRlcgorICAgIGRlZiBkaXN0cmlidXRpb25zKCk6
CisgICAgICAgIHJldHVybiAoRGlzdHJpYnV0aW9uKCksKQogCi0gICAgICAgIHJldHVybiBpdGVy
KFtFbnRyeVBvaW50KCldKQotCi0gICAgbW9ua2V5cGF0Y2guc2V0YXR0cihwa2dfcmVzb3VyY2Vz
LCAiaXRlcl9lbnRyeV9wb2ludHMiLCBteV9pdGVyKQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIo
aW1wb3J0bGliX21ldGFkYXRhLCAiZGlzdHJpYnV0aW9ucyIsIGRpc3RyaWJ1dGlvbnMpCiAgICAg
YXJncyA9ICgiLXAiLCAibm86bXl0ZXN0cGx1Z2luIikgaWYgYmxvY2tfaXQgZWxzZSAoKQogICAg
IGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKmFyZ3MpCiAgICAgY29uZmlnLnBsdWdpbm1h
bmFnZXIuaW1wb3J0X3BsdWdpbigibXl0ZXN0cGx1Z2luIikKQEAgLTYwNiw5ICs2NTEsMzkgQEAg
ZGVmIHRlc3RfcGx1Z2luX3ByZXBhcnNlX3ByZXZlbnRzX3NldHVwdG9vbHNfbG9hZGluZyh0ZXN0
ZGlyLCBtb25rZXlwYXRjaCwgYmxvY2sKICAgICAgICAgYXNzZXJ0ICJteXRlc3RwbHVnaW4iIG5v
dCBpbiBzeXMubW9kdWxlcwogICAgICAgICBhc3NlcnQgY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0
X3BsdWdpbigibXl0ZXN0cGx1Z2luIikgaXMgTm9uZQogICAgIGVsc2U6Ci0gICAgICAgIGFzc2Vy
dCBjb25maWcucGx1Z2lubWFuYWdlci5nZXRfcGx1Z2luKAotICAgICAgICAgICAgIm15dGVzdHBs
dWdpbiIKLSAgICAgICAgKSBpcyBwbHVnaW5fbW9kdWxlX3BsYWNlaG9sZGVyCisgICAgICAgIGFz
c2VydCAoCisgICAgICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5nZXRfcGx1Z2luKCJteXRl
c3RwbHVnaW4iKSBpcyBwbHVnaW5fbW9kdWxlX3BsYWNlaG9sZGVyCisgICAgICAgICkKKworCitA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgInBhcnNlX2FyZ3Msc2hvdWxkX2xvYWQiLCBb
KCgiLXAiLCAibXl0ZXN0cGx1Z2luIiksIFRydWUpLCAoKCksIEZhbHNlKV0KKykKK2RlZiB0ZXN0
X2Rpc2FibGVfcGx1Z2luX2F1dG9sb2FkKHRlc3RkaXIsIG1vbmtleXBhdGNoLCBwYXJzZV9hcmdz
LCBzaG91bGRfbG9hZCk6CisgICAgY2xhc3MgRHVtbXlFbnRyeVBvaW50KG9iamVjdCk6CisgICAg
ICAgIHByb2plY3RfbmFtZSA9IG5hbWUgPSAibXl0ZXN0cGx1Z2luIgorICAgICAgICBncm91cCA9
ICJweXRlc3QxMSIKKyAgICAgICAgdmVyc2lvbiA9ICIxLjAiCisKKyAgICAgICAgZGVmIGxvYWQo
c2VsZik6CisgICAgICAgICAgICByZXR1cm4gc3lzLm1vZHVsZXNbc2VsZi5uYW1lXQorCisgICAg
Y2xhc3MgRGlzdHJpYnV0aW9uKG9iamVjdCk6CisgICAgICAgIGVudHJ5X3BvaW50cyA9IChEdW1t
eUVudHJ5UG9pbnQoKSwpCisgICAgICAgIGZpbGVzID0gKCkKKworICAgIGNsYXNzIFBzZXVkb1Bs
dWdpbihvYmplY3QpOgorICAgICAgICB4ID0gNDIKKworICAgIGRlZiBkaXN0cmlidXRpb25zKCk6
CisgICAgICAgIHJldHVybiAoRGlzdHJpYnV0aW9uKCksKQorCisgICAgbW9ua2V5cGF0Y2guc2V0
ZW52KCJQWVRFU1RfRElTQUJMRV9QTFVHSU5fQVVUT0xPQUQiLCAiMSIpCisgICAgbW9ua2V5cGF0
Y2guc2V0YXR0cihpbXBvcnRsaWJfbWV0YWRhdGEsICJkaXN0cmlidXRpb25zIiwgZGlzdHJpYnV0
aW9ucykKKyAgICBtb25rZXlwYXRjaC5zZXRpdGVtKHN5cy5tb2R1bGVzLCAibXl0ZXN0cGx1Z2lu
IiwgUHNldWRvUGx1Z2luKCkpCisgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygqcGFy
c2VfYXJncykKKyAgICBoYXNfbG9hZGVkID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdp
bigibXl0ZXN0cGx1Z2luIikgaXMgbm90IE5vbmUKKyAgICBhc3NlcnQgaGFzX2xvYWRlZCA9PSBz
aG91bGRfbG9hZAogCiAKIGRlZiB0ZXN0X2NtZGxpbmVfcHJvY2Vzc2FyZ3Nfc2ltcGxlKHRlc3Rk
aXIpOgpAQCAtNjUwLDkgKzcyNSw5IEBAIGRlZiB0ZXN0X2ludmFsaWRfb3B0aW9uc19zaG93X2V4
dHJhX2luZm9ybWF0aW9uKHRlc3RkaXIpOgogICAgICAgICBbIi12IiwgImRpcjIiLCAiZGlyMSJd
LAogICAgIF0sCiApCi1kZWYgdGVzdF9jb25zaWRlcl9hcmdzX2FmdGVyX29wdGlvbnNfZm9yX3Jv
b3RkaXJfYW5kX2luaWZpbGUodGVzdGRpciwgYXJncyk6CitkZWYgdGVzdF9jb25zaWRlcl9hcmdz
X2FmdGVyX29wdGlvbnNfZm9yX3Jvb3RkaXIodGVzdGRpciwgYXJncyk6CiAgICAgIiIiCi0gICAg
Q29uc2lkZXIgYWxsIGFyZ3VtZW50cyBpbiB0aGUgY29tbWFuZC1saW5lIGZvciByb290ZGlyIGFu
ZCBpbmlmaWxlCisgICAgQ29uc2lkZXIgYWxsIGFyZ3VtZW50cyBpbiB0aGUgY29tbWFuZC1saW5l
IGZvciByb290ZGlyCiAgICAgZGlzY292ZXJ5LCBldmVuIGlmIHRoZXkgaGFwcGVuIHRvIG9jY3Vy
IGFmdGVyIGFuIG9wdGlvbi4gIzk0OQogICAgICIiIgogICAgICMgcmVwbGFjZSAiZGlyMSIgYW5k
ICJkaXIyIiBmcm9tICJhcmdzIiBpbnRvIHRoZWlyIHJlYWwgZGlyZWN0b3J5CkBAIC02NjYsNyAr
NzQxLDcgQEAgZGVmIHRlc3RfY29uc2lkZXJfYXJnc19hZnRlcl9vcHRpb25zX2Zvcl9yb290ZGly
X2FuZF9pbmlmaWxlKHRlc3RkaXIsIGFyZ3MpOgogICAgICAgICAgICAgYXJnc1tpXSA9IGQyCiAg
ICAgd2l0aCByb290LmFzX2N3ZCgpOgogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgqYXJncykKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqcm9vdGRpcjogKm15
cm9vdCwgaW5pZmlsZToiXSkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqcm9v
dGRpcjogKm15cm9vdCJdKQogCiAKIEBweXRlc3QubWFyay5za2lwaWYoInN5cy5wbGF0Zm9ybSA9
PSAnd2luMzInIikKQEAgLTY5MCwxMCArNzY1LDEwIEBAIGRlZiB0ZXN0X2NvbmZpZ19pbl9zdWJk
aXJlY3RvcnlfY29sb25fY29tbWFuZF9saW5lX2lzc3VlMjE0OCh0ZXN0ZGlyKToKICAgICAgICAg
Kip7CiAgICAgICAgICAgICAiY29uZnRlc3QiOiBjb25mdGVzdF9zb3VyY2UsCiAgICAgICAgICAg
ICAic3ViZGlyL2NvbmZ0ZXN0IjogY29uZnRlc3Rfc291cmNlLAotICAgICAgICAgICAgInN1YmRp
ci90ZXN0X2ZvbyI6ICIiIgorICAgICAgICAgICAgInN1YmRpci90ZXN0X2ZvbyI6ICIiIlwKICAg
ICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhweXRlc3Rjb25maWcpOgogICAgICAgICAgICAgICAgIGFz
c2VydCBweXRlc3Rjb25maWcuZ2V0aW5pKCdmb28nKSA9PSAnc3ViZGlyJwotICAgICAgICAiIiIs
CisgICAgICAgICAgICAiIiIsCiAgICAgICAgIH0KICAgICApCiAKQEAgLTcwMywyOSArNzc4LDM5
IEBAIGRlZiB0ZXN0X2NvbmZpZ19pbl9zdWJkaXJlY3RvcnlfY29sb25fY29tbWFuZF9saW5lX2lz
c3VlMjE0OCh0ZXN0ZGlyKToKIAogZGVmIHRlc3Rfbm90aWZ5X2V4Y2VwdGlvbih0ZXN0ZGlyLCBj
YXBmZCk6CiAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygpCi0gICAgZXhjaW5mbyA9
IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgInJhaXNlIFZhbHVlRXJyb3IoMSkiKQotICAgIGNv
bmZpZy5ub3RpZnlfZXhjZXB0aW9uKGV4Y2luZm8pCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFZh
bHVlRXJyb3IpIGFzIGV4Y2luZm86CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoMSkKKyAgICBj
b25maWcubm90aWZ5X2V4Y2VwdGlvbihleGNpbmZvLCBjb25maWcub3B0aW9uKQogICAgIG91dCwg
ZXJyID0gY2FwZmQucmVhZG91dGVycigpCiAgICAgYXNzZXJ0ICJWYWx1ZUVycm9yIiBpbiBlcnIK
IAogICAgIGNsYXNzIEEob2JqZWN0KToKLQogICAgICAgICBkZWYgcHl0ZXN0X2ludGVybmFsZXJy
b3Ioc2VsZiwgZXhjcmVwcik6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgY29uZmln
LnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoQSgpKQotICAgIGNvbmZpZy5ub3RpZnlfZXhjZXB0aW9u
KGV4Y2luZm8pCisgICAgY29uZmlnLm5vdGlmeV9leGNlcHRpb24oZXhjaW5mbywgY29uZmlnLm9w
dGlvbikKICAgICBvdXQsIGVyciA9IGNhcGZkLnJlYWRvdXRlcnIoKQogICAgIGFzc2VydCBub3Qg
ZXJyCiAKKyAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCItcCIsICJubzp0ZXJtaW5h
bCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpIGFzIGV4Y2luZm86CisgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoMSkKKyAgICBjb25maWcubm90aWZ5X2V4Y2VwdGlvbihleGNp
bmZvLCBjb25maWcub3B0aW9uKQorICAgIG91dCwgZXJyID0gY2FwZmQucmVhZG91dGVycigpCisg
ICAgYXNzZXJ0ICJWYWx1ZUVycm9yIiBpbiBlcnIKKwogCi1kZWYgdGVzdF9sb2FkX2luaXRpYWxf
Y29uZnRlc3RfbGFzdF9vcmRlcmluZyh0ZXN0ZGlyKToKLSAgICBmcm9tIF9weXRlc3QuY29uZmln
IGltcG9ydCBnZXRfY29uZmlnCitkZWYgdGVzdF9ub190ZXJtaW5hbF9kaXNjb3ZlcnlfZXJyb3Io
dGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJyYWlzZSBUeXBlRXJyb3IoJ29vcHMh
JykiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcCIsICJubzp0ZXJtaW5hbCIs
ICItLWNvbGxlY3Qtb25seSIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9JTlRFUlJV
UFRFRAogCi0gICAgcG0gPSBnZXRfY29uZmlnKCkucGx1Z2lubWFuYWdlcgogCi0gICAgY2xhc3Mg
TXkob2JqZWN0KToKK2RlZiB0ZXN0X2xvYWRfaW5pdGlhbF9jb25mdGVzdF9sYXN0X29yZGVyaW5n
KHRlc3RkaXIsIF9jb25maWdfZm9yX3Rlc3QpOgorICAgIHBtID0gX2NvbmZpZ19mb3JfdGVzdC5w
bHVnaW5tYW5hZ2VyCiAKKyAgICBjbGFzcyBNeShvYmplY3QpOgogICAgICAgICBkZWYgcHl0ZXN0
X2xvYWRfaW5pdGlhbF9jb25mdGVzdHMoc2VsZik6CiAgICAgICAgICAgICBwYXNzCiAKQEAgLTc1
Myw1OCArODM4LDI1IEBAIGRlZiB0ZXN0X2dldF9wbHVnaW5fc3BlY3NfYXNfbGlzdCgpOgogICAg
IGFzc2VydCBfZ2V0X3BsdWdpbl9zcGVjc19hc19saXN0KCgiZm9vIiwgImJhciIpKSA9PSBbImZv
byIsICJiYXIiXQogCiAKLWNsYXNzIFRlc3RXYXJuaW5nKG9iamVjdCk6CitkZWYgdGVzdF9jb2xs
ZWN0X3B5dGVzdF9wcmVmaXhfYnVnX2ludGVncmF0aW9uKHRlc3RkaXIpOgorICAgICIiIkludGVn
cmF0aW9uIHRlc3QgZm9yIGlzc3VlICMzNzc1IiIiCisgICAgcCA9IHRlc3RkaXIuY29weV9leGFt
cGxlKCJjb25maWcvY29sbGVjdF9weXRlc3RfcHJlZml4IikKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdChwKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMSBwYXNz
ZWQgKiJdKQogCi0gICAgZGVmIHRlc3Rfd2Fybl9jb25maWcoc2VsZiwgdGVzdGRpcik6Ci0gICAg
ICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICB2
YWx1ZXMgPSBbXQotICAgICAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAg
ICAgICAgICAgICAgICBjb25maWcud2FybigiQzEiLCAiaGVsbG8iKQotICAgICAgICAgICAgZGVm
IHB5dGVzdF9sb2d3YXJuaW5nKGNvZGUsIG1lc3NhZ2UpOgotICAgICAgICAgICAgICAgIGlmIG1l
c3NhZ2UgPT0gImhlbGxvIiBhbmQgY29kZSA9PSAiQzEiOgotICAgICAgICAgICAgICAgICAgICB2
YWx1ZXMuYXBwZW5kKDEpCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHRlc3RfcHJvcGVy
KHB5dGVzdGNvbmZpZyk6Ci0gICAgICAgICAgICAgICAgaW1wb3J0IGNvbmZ0ZXN0Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0IGNvbmZ0ZXN0LnZhbHVlcyA9PSBbMV0KLSAgICAgICAgIiIiCi0gICAg
ICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVw
cmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF93YXJuX29uX3Rlc3Rf
aXRlbV9mcm9tX3JlcXVlc3Qoc2VsZiwgdGVzdGRpciwgcmVxdWVzdCk6Ci0gICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAogCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBmaXgocmVx
dWVzdCk6Ci0gICAgICAgICAgICAgICAgcmVxdWVzdC5ub2RlLndhcm4oIlQxIiwgImhlbGxvIikK
K2RlZiB0ZXN0X2NvbGxlY3RfcHl0ZXN0X3ByZWZpeF9idWcocHl0ZXN0Y29uZmlnKToKKyAgICAi
IiJFbnN1cmUgd2UgY29sbGVjdCBvbmx5IGFjdHVhbCBmdW5jdGlvbnMgZnJvbSBjb25mdGVzdCBm
aWxlcyAoIzM3NzUpIiIiCiAKLSAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGZpeCk6Ci0gICAg
ICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1kaXNhYmxlLXB5dGVzdC13YXJuaW5ncyIpCi0gICAgICAg
IGFzc2VydCByZXN1bHQucGFyc2VvdXRjb21lcygpWyJ3YXJuaW5ncyJdID4gMAotICAgICAgICBh
c3NlcnQgImhlbGxvIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGNsYXNzIER1bW15
KG9iamVjdCk6CisgICAgICAgIGNsYXNzIHB5dGVzdF9zb21ldGhpbmcob2JqZWN0KToKKyAgICAg
ICAgICAgIHBhc3MKIAotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgPT09Kndhcm5pbmdzIHN1bW1hcnkqPT09Ci0gICAgICAgICAgICAqdGVzdF93YXJuX29u
X3Rlc3RfaXRlbV9mcm9tX3JlcXVlc3QucHk6OnRlc3RfaGVsbG8qCi0gICAgICAgICAgICAqaGVs
bG8qCi0gICAgICAgICIiIgotICAgICAgICApCisgICAgcG0gPSBweXRlc3Rjb25maWcucGx1Z2lu
bWFuYWdlcgorICAgIGFzc2VydCBwbS5wYXJzZV9ob29raW1wbF9vcHRzKER1bW15KCksICJweXRl
c3Rfc29tZXRoaW5nIikgaXMgTm9uZQogCiAKIGNsYXNzIFRlc3RSb290ZGlyKG9iamVjdCk6Ci0K
ICAgICBkZWYgdGVzdF9zaW1wbGVfbm9pbmkoc2VsZiwgdG1wZGlyKToKICAgICAgICAgYXNzZXJ0
IGdldF9jb21tb25fYW5jZXN0b3IoW3RtcGRpcl0pID09IHRtcGRpcgogICAgICAgICBhID0gdG1w
ZGlyLm1rZGlyKCJhIikKQEAgLTgxOSw3ICs4NzEsNyBAQCBjbGFzcyBUZXN0Um9vdGRpcihvYmpl
Y3QpOgogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgibmFtZSIsICJzZXR1cC5jZmcgdG94
LmluaSBweXRlc3QuaW5pIi5zcGxpdCgpKQogICAgIGRlZiB0ZXN0X3dpdGhfaW5pKHNlbGYsIHRt
cGRpciwgbmFtZSk6CiAgICAgICAgIGluaWZpbGUgPSB0bXBkaXIuam9pbihuYW1lKQotICAgICAg
ICBpbmlmaWxlLndyaXRlKCJbcHl0ZXN0XVxuIikKKyAgICAgICAgaW5pZmlsZS53cml0ZSgiW3B5
dGVzdF1cbiIgaWYgbmFtZSAhPSAic2V0dXAuY2ZnIiBlbHNlICJbdG9vbDpweXRlc3RdXG4iKQog
CiAgICAgICAgIGEgPSB0bXBkaXIubWtkaXIoImEiKQogICAgICAgICBiID0gYS5ta2RpcigiYiIp
CkBAIC04MzIsNyArODg0LDcgQEAgY2xhc3MgVGVzdFJvb3RkaXIob2JqZWN0KToKICAgICAgICAg
YXNzZXJ0IGluaWZpbGUgPT0gaW5pZmlsZQogCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJuYW1lIiwgInNldHVwLmNmZyB0b3guaW5pIi5zcGxpdCgpKQotICAgIGRlZiB0ZXN0X3B5dGVz
dGluaV9vdmVyaWRlc19lbXB0eV9vdGhlcihzZWxmLCB0bXBkaXIsIG5hbWUpOgorICAgIGRlZiB0
ZXN0X3B5dGVzdGluaV9vdmVycmlkZXNfZW1wdHlfb3RoZXIoc2VsZiwgdG1wZGlyLCBuYW1lKToK
ICAgICAgICAgaW5pZmlsZSA9IHRtcGRpci5lbnN1cmUoInB5dGVzdC5pbmkiKQogICAgICAgICBh
ID0gdG1wZGlyLm1rZGlyKCJhIikKICAgICAgICAgYS5lbnN1cmUobmFtZSkKQEAgLTg2MywxNCAr
OTE1LDE2IEBAIGNsYXNzIFRlc3RSb290ZGlyKG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdE92ZXJy
aWRlSW5pQXJncyhvYmplY3QpOgotCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJuYW1l
IiwgInNldHVwLmNmZyB0b3guaW5pIHB5dGVzdC5pbmkiLnNwbGl0KCkpCiAgICAgZGVmIHRlc3Rf
b3ZlcnJpZGVfaW5pX25hbWVzKHNlbGYsIHRlc3RkaXIsIG5hbWUpOgorICAgICAgICBzZWN0aW9u
ID0gIltweXRlc3RdIiBpZiBuYW1lICE9ICJzZXR1cC5jZmciIGVsc2UgIlt0b29sOnB5dGVzdF0i
CiAgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4obmFtZSkud3JpdGUoCiAgICAgICAgICAgICB0
ZXh0d3JhcC5kZWRlbnQoCiAgICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBbcHl0ZXN0
XQotICAgICAgICAgICAgY3VzdG9tID0gMS4wIiIiCisgICAgICAgICAgICB7c2VjdGlvbn0KKyAg
ICAgICAgICAgIGN1c3RvbSA9IDEuMCIiIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIHNl
Y3Rpb249c2VjdGlvbgorICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICkKICAgICAgICAg
KQogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKQEAgLTEwMjYsMjAgKzEwODAsNDQgQEAg
Y2xhc3MgVGVzdE92ZXJyaWRlSW5pQXJncyhvYmplY3QpOgogICAgICAgICAgICAgYXNzZXJ0IHJv
b3RkaXIgPT0gdG1wZGlyCiAgICAgICAgICAgICBhc3NlcnQgaW5pZmlsZSBpcyBOb25lCiAKLSAg
ICBkZWYgdGVzdF9hZGRvcHRzX2JlZm9yZV9pbml0aW5pKHNlbGYsIG1vbmtleXBhdGNoKToKKyAg
ICBkZWYgdGVzdF9hZGRvcHRzX2JlZm9yZV9pbml0aW5pKHNlbGYsIG1vbmtleXBhdGNoLCBfY29u
ZmlnX2Zvcl90ZXN0LCBfc3lzX3NuYXBzaG90KToKICAgICAgICAgY2FjaGVfZGlyID0gIi5jdXN0
b21fY2FjaGUiCiAgICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlURVNUX0FERE9QVFMiLCAi
LW8gY2FjaGVfZGlyPSVzIiAlIGNhY2hlX2RpcikKLSAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbmZp
ZyBpbXBvcnQgZ2V0X2NvbmZpZwotCi0gICAgICAgIGNvbmZpZyA9IGdldF9jb25maWcoKQorICAg
ICAgICBjb25maWcgPSBfY29uZmlnX2Zvcl90ZXN0CiAgICAgICAgIGNvbmZpZy5fcHJlcGFyc2Uo
W10sIGFkZG9wdHM9VHJ1ZSkKICAgICAgICAgYXNzZXJ0IGNvbmZpZy5fb3ZlcnJpZGVfaW5pID09
IFsiY2FjaGVfZGlyPSVzIiAlIGNhY2hlX2Rpcl0KIAotICAgIGRlZiB0ZXN0X292ZXJyaWRlX2lu
aV9kb2VzX25vdF9jb250YWluX3BhdGhzKHNlbGYpOgotICAgICAgICAiIiJDaGVjayB0aGF0IC1v
IG5vIGxvbmdlciBzd2FsbG93cyBhbGwgb3B0aW9ucyBhZnRlciBpdCAoIzMxMDMpIiIiCi0gICAg
ICAgIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGdldF9jb25maWcKKyAgICBkZWYgdGVzdF9h
ZGRvcHRzX2Zyb21fZW52X25vdF9jb25jYXRlbmF0ZWQoc2VsZiwgbW9ua2V5cGF0Y2gsIF9jb25m
aWdfZm9yX3Rlc3QpOgorICAgICAgICAiIiJQWVRFU1RfQURET1BUUyBzaG91bGQgbm90IHRha2Ug
dmFsdWVzIGZyb20gbm9ybWFsIGFyZ3MgKCM0MjY1KS4iIiIKKyAgICAgICAgbW9ua2V5cGF0Y2gu
c2V0ZW52KCJQWVRFU1RfQURET1BUUyIsICItbyIpCisgICAgICAgIGNvbmZpZyA9IF9jb25maWdf
Zm9yX3Rlc3QKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFVzYWdlRXJyb3IpIGFzIGV4Y2lu
Zm86CisgICAgICAgICAgICBjb25maWcuX3ByZXBhcnNlKFsiY2FjaGVfZGlyPWlnbm9yZWQiXSwg
YWRkb3B0cz1UcnVlKQorICAgICAgICBhc3NlcnQgKAorICAgICAgICAgICAgImVycm9yOiBhcmd1
bWVudCAtby8tLW92ZXJyaWRlLWluaTogZXhwZWN0ZWQgb25lIGFyZ3VtZW50ICh2aWEgUFlURVNU
X0FERE9QVFMpIgorICAgICAgICAgICAgaW4gZXhjaW5mby52YWx1ZS5hcmdzWzBdCisgICAgICAg
ICkKKworICAgIGRlZiB0ZXN0X2FkZG9wdHNfZnJvbV9pbmlfbm90X2NvbmNhdGVuYXRlZChzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiYWRkb3B0cyBmcm9tIGluaSBzaG91bGQgbm90IHRha2Ug
dmFsdWVzIGZyb20gbm9ybWFsIGFyZ3MgKCM0MjY1KS4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtl
aW5pKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAg
YWRkb3B0cz0tbworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiY2FjaGVfZGlyPWlnbm9yZWQiKQorICAgICAgICByZXN1bHQuc3RkZXJy
LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgIiVzOiBlcnJv
cjogYXJndW1lbnQgLW8vLS1vdmVycmlkZS1pbmk6IGV4cGVjdGVkIG9uZSBhcmd1bWVudCAodmlh
IGFkZG9wdHMgY29uZmlnKSIKKyAgICAgICAgICAgICAgICAlICh0ZXN0ZGlyLnJlcXVlc3QuY29u
ZmlnLl9wYXJzZXIub3B0cGFyc2VyLnByb2csKQorICAgICAgICAgICAgXQorICAgICAgICApCisg
ICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IF9weXRlc3QubWFpbi5FWElUX1VTQUdFRVJST1IK
IAotICAgICAgICBjb25maWcgPSBnZXRfY29uZmlnKCkKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9p
bmlfZG9lc19ub3RfY29udGFpbl9wYXRocyhzZWxmLCBfY29uZmlnX2Zvcl90ZXN0LCBfc3lzX3Nu
YXBzaG90KToKKyAgICAgICAgIiIiQ2hlY2sgdGhhdCAtbyBubyBsb25nZXIgc3dhbGxvd3MgYWxs
IG9wdGlvbnMgYWZ0ZXIgaXQgKCMzMTAzKSIiIgorICAgICAgICBjb25maWcgPSBfY29uZmlnX2Zv
cl90ZXN0CiAgICAgICAgIGNvbmZpZy5fcHJlcGFyc2UoWyItbyIsICJjYWNoZV9kaXI9L2NhY2hl
IiwgIi9zb21lL3Rlc3QvcGF0aCJdKQogICAgICAgICBhc3NlcnQgY29uZmlnLl9vdmVycmlkZV9p
bmkgPT0gWyJjYWNoZV9kaXI9L2NhY2hlIl0KIApAQCAtMTA2NiwzICsxMTQ0LDE0OCBAQCBjbGFz
cyBUZXN0T3ZlcnJpZGVJbmlBcmdzKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCItbyIsICJmb289MSIsICItbyIsICJiYXI9MCIsICJ0ZXN0X2Zvby5weSIpCiAg
ICAgICAgIGFzc2VydCAiRVJST1I6IiBub3QgaW4gcmVzdWx0LnN0ZGVyci5zdHIoKQogICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJjb2xsZWN0ZWQgMSBpdGVtIiwgIio9IDEg
cGFzc2VkIGluICo9Il0pCisKKworZGVmIHRlc3RfaGVscF92aWFfYWRkb3B0cyh0ZXN0ZGlyKToK
KyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIiIgorICAgICAgICBbcHl0ZXN0XQorICAg
ICAgICBhZGRvcHRzID0gLS11bmtub3duLW9wdGlvbi1zaG91bGQtYWxsb3ctZm9yLWhlbHAgLS1o
ZWxwCisgICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAorICAgICAgICBbCisgICAgICAgICAgICAidXNhZ2U6ICoiLAorICAgICAgICAgICAgInBvc2l0
aW9uYWwgYXJndW1lbnRzOiIsCisgICAgICAgICAgICAjIERpc3BsYXlzIGZ1bGwvZGVmYXVsdCBo
ZWxwLgorICAgICAgICAgICAgInRvIHNlZSBhdmFpbGFibGUgbWFya2VycyB0eXBlOiBweXRlc3Qg
LS1tYXJrZXJzIiwKKyAgICAgICAgXQorICAgICkKKworCitkZWYgdGVzdF9oZWxwX2FuZF92ZXJz
aW9uX2FmdGVyX2FyZ3VtZW50X2Vycm9yKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0
ZXN0KAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHZhbGlkYXRlKGFyZyk6CisgICAgICAgICAg
ICByYWlzZSBhcmdwYXJzZS5Bcmd1bWVudFR5cGVFcnJvcigiYXJnZXJyb3IiKQorCisgICAgICAg
IGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICBncm91cCA9IHBhcnNl
ci5nZXRncm91cCgnY292JykKKyAgICAgICAgICAgIGdyb3VwLmFkZG9wdGlvbigKKyAgICAgICAg
ICAgICAgICAiLS1pbnZhbGlkLW9wdGlvbi1zaG91bGQtYWxsb3ctZm9yLWhlbHAiLAorICAgICAg
ICAgICAgICAgIHR5cGU9dmFsaWRhdGUsCisgICAgICAgICAgICApCisgICAgICAgICIiIgorICAg
ICkKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIiIgorICAgICAgICBbcHl0ZXN0XQor
ICAgICAgICBhZGRvcHRzID0gLS1pbnZhbGlkLW9wdGlvbi1zaG91bGQtYWxsb3ctZm9yLWhlbHAK
KyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0taGVscCIp
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAg
ICAidXNhZ2U6ICoiLAorICAgICAgICAgICAgInBvc2l0aW9uYWwgYXJndW1lbnRzOiIsCisgICAg
ICAgICAgICAiTk9URTogZGlzcGxheWluZyBvbmx5IG1pbmltYWwgaGVscCBkdWUgdG8gVXNhZ2VF
cnJvci4iLAorICAgICAgICBdCisgICAgKQorICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5l
cygKKyAgICAgICAgWworICAgICAgICAgICAgIkVSUk9SOiB1c2FnZTogKiIsCisgICAgICAgICAg
ICAiJXM6IGVycm9yOiBhcmd1bWVudCAtLWludmFsaWQtb3B0aW9uLXNob3VsZC1hbGxvdy1mb3It
aGVscDogZXhwZWN0ZWQgb25lIGFyZ3VtZW50IgorICAgICAgICAgICAgJSAodGVzdGRpci5yZXF1
ZXN0LmNvbmZpZy5fcGFyc2VyLm9wdHBhcnNlci5wcm9nLCksCisgICAgICAgIF0KKyAgICApCisg
ICAgIyBEb2VzIG5vdCBkaXNwbGF5IGZ1bGwvZGVmYXVsdCBoZWxwLgorICAgIGFzc2VydCAidG8g
c2VlIGF2YWlsYWJsZSBtYXJrZXJzIHR5cGU6IHB5dGVzdCAtLW1hcmtlcnMiIG5vdCBpbiByZXN1
bHQuc3Rkb3V0LmxpbmVzCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9VU0FHRUVSUk9S
CisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS12ZXJzaW9uIikKKyAgICByZXN1
bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsiKnB5dGVzdCp7fSppbXBvcnRlZCBm
cm9tKiIuZm9ybWF0KHB5dGVzdC5fX3ZlcnNpb25fXyldCisgICAgKQorICAgIGFzc2VydCByZXN1
bHQucmV0ID09IEVYSVRfVVNBR0VFUlJPUgorCisKK2RlZiB0ZXN0X2NvbmZpZ19kb2VzX25vdF9s
b2FkX2Jsb2NrZWRfcGx1Z2luX2Zyb21fYXJncyh0ZXN0ZGlyKToKKyAgICAiIiJUaGlzIHRlc3Rz
IHRoYXQgcHl0ZXN0J3MgY29uZmlnIHNldHVwIGhhbmRsZXMgIi1wIG5vOlgiLiIiIgorICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0KGNhcGZkKTogcGFzcyIpCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3Qoc3RyKHApLCAiLXBubzpjYXB0dXJlIikKKyAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJFICAgICAgIGZpeHR1cmUgJ2NhcGZkJyBub3QgZm91bmQi
XSkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX1RFU1RTRkFJTEVECisKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChzdHIocCksICItcG5vOmNhcHR1cmUiLCAiLXMiKQorICAg
IHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbIio6IGVycm9yOiB1bnJlY29nbml6ZWQgYXJn
dW1lbnRzOiAtcyJdKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfVVNBR0VFUlJPUgor
CisKK2RlZiB0ZXN0X2ludm9jYXRpb25fYXJncyh0ZXN0ZGlyKToKKyAgICAiIiJFbnN1cmUgdGhh
dCBDb25maWcuaW52b2NhdGlvbl8qIGFyZ3VtZW50cyBhcmUgY29ycmVjdGx5IGRlZmluZWQiIiIK
KworICAgIGNsYXNzIER1bW15UGx1Z2luKG9iamVjdCk6CisgICAgICAgIHBhc3MKKworICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0KCk6IHBhc3MiKQorICAgIHBsdWdpbiA9IER1
bW15UGx1Z2luKCkKKyAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4ocCwgIi12IiwgcGx1Z2lu
cz1bcGx1Z2luXSkKKyAgICBjYWxscyA9IHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfcHJv
dG9jb2wiKQorICAgIGFzc2VydCBsZW4oY2FsbHMpID09IDEKKyAgICBjYWxsID0gY2FsbHNbMF0K
KyAgICBjb25maWcgPSBjYWxsLml0ZW0uY29uZmlnCisKKyAgICBhc3NlcnQgY29uZmlnLmludm9j
YXRpb25fcGFyYW1zLmFyZ3MgPT0gW3AsICItdiJdCisgICAgYXNzZXJ0IGNvbmZpZy5pbnZvY2F0
aW9uX3BhcmFtcy5kaXIgPT0gUGF0aChzdHIodGVzdGRpci50bXBkaXIpKQorCisgICAgcGx1Z2lu
cyA9IGNvbmZpZy5pbnZvY2F0aW9uX3BhcmFtcy5wbHVnaW5zCisgICAgYXNzZXJ0IGxlbihwbHVn
aW5zKSA9PSAyCisgICAgYXNzZXJ0IHBsdWdpbnNbMF0gaXMgcGx1Z2luCisgICAgYXNzZXJ0IHR5
cGUocGx1Z2luc1sxXSkuX19uYW1lX18gPT0gIkNvbGxlY3QiICAjIGluc3RhbGxlZCBieSB0ZXN0
ZGlyLmlubGluZV9ydW4oKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAicGx1
Z2luIiwKKyAgICBbCisgICAgICAgIHgKKyAgICAgICAgZm9yIHggaW4gX3B5dGVzdC5jb25maWcu
ZGVmYXVsdF9wbHVnaW5zCisgICAgICAgIGlmIHggbm90IGluIF9weXRlc3QuY29uZmlnLmVzc2Vu
dGlhbF9wbHVnaW5zCisgICAgXSwKKykKK2RlZiB0ZXN0X2NvbmZpZ19ibG9ja2VkX2RlZmF1bHRf
cGx1Z2lucyh0ZXN0ZGlyLCBwbHVnaW4pOgorICAgIGlmIHBsdWdpbiA9PSAiZGVidWdnaW5nIjoK
KyAgICAgICAgIyBGaXhlZCBpbiB4ZGlzdCBtYXN0ZXIgKGFmdGVyIDEuMjcuMCkuCisgICAgICAg
ICMgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0LXhkaXN0L3B1bGwvNDIyCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGltcG9ydCB4ZGlzdCAgIyBub3FhOiBGNDAxCisgICAg
ICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHB5dGVzdC5za2lwKCJkb2VzIG5vdCB3b3JrIHdpdGggeGRpc3QgY3VycmVu
dGx5IikKKworICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0KCk6IHBhc3MiKQor
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHN0cihwKSwgIi1wbm86JXMiICUgcGx1Z2lu
KQorCisgICAgaWYgcGx1Z2luID09ICJweXRob24iOgorICAgICAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSBFWElUX1VTQUdFRVJST1IKKyAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVz
KAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICJFUlJPUjogbm90IGZvdW5kOiAqL3Rl
c3RfY29uZmlnX2Jsb2NrZWRfZGVmYXVsdF9wbHVnaW5zLnB5IiwKKyAgICAgICAgICAgICAgICAi
KG5vIG5hbWUgJyovdGVzdF9jb25maWdfYmxvY2tlZF9kZWZhdWx0X3BsdWdpbnMucHknIGluIGFu
eSBvZiBbXSkiLAorICAgICAgICAgICAgXQorICAgICAgICApCisgICAgICAgIHJldHVybgorCisg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9PSworICAgIGlmIHBsdWdpbiAhPSAidGVybWlu
YWwiOgorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDEgcGFzc2VkIGlu
ICoiXSkKKworICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0KCk6IGFzc2VydCAw
IikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChzdHIocCksICItcG5vOiVzIiAlIHBs
dWdpbikKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX1RFU1RTRkFJTEVECisgICAgaWYg
cGx1Z2luICE9ICJ0ZXJtaW5hbCI6CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbIiogMSBmYWlsZWQgaW4gKiJdKQorICAgIGVsc2U6CisgICAgICAgIGFzc2VydCByZXN1bHQu
c3Rkb3V0LmxpbmVzID09IFsiIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVz
dF9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb25mdGVzdC5weQppbmRl
eCA2MWI2NDA5NzZmMTE5NWUyYTUxMWM2ZTJlNjY4MGVkYmQ2ODJjMzUxLi5mOGUzZGZhOTJlNGFi
MjQ4Y2Y5NmZkN2M3YjZkZWQ0YzAxMmEyZmM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfY29uZnRlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbmZ0
ZXN0LnB5CkBAIC0xLDI0ICsxLDE3IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1mcm9tIHRleHR3cmFwIGltcG9ydCBk
ZWRlbnQKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgdGV4dHdyYXAKIAotaW1wb3J0
IF9weXRlc3QuX2NvZGUKIGltcG9ydCBweQorCiBpbXBvcnQgcHl0ZXN0CiBmcm9tIF9weXRlc3Qu
Y29uZmlnIGltcG9ydCBQeXRlc3RQbHVnaW5NYW5hZ2VyCi1mcm9tIF9weXRlc3QubWFpbiBpbXBv
cnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVELCBFWElUX1VTQUdFRVJST1IKLQotCi1AcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz1bImdsb2JhbCIsICJpbnBhY2thZ2UiXSkKLWRl
ZiBiYXNlZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5KToKLSAgICBmcm9tIF9weXRlc3QudG1w
ZGlyIGltcG9ydCB0bXBkaXIKLQotICAgIHRtcGRpciA9IHRtcGRpcihyZXF1ZXN0LCB0bXBkaXJf
ZmFjdG9yeSkKLSAgICB0bXBkaXIuZW5zdXJlKCJhZGlyL2NvbmZ0ZXN0LnB5Iikud3JpdGUoImE9
MSA7IERpcmVjdG9yeSA9IDMiKQotICAgIHRtcGRpci5lbnN1cmUoImFkaXIvYi9jb25mdGVzdC5w
eSIpLndyaXRlKCJiPTIgOyBhID0gMS41IikKLSAgICBpZiByZXF1ZXN0LnBhcmFtID09ICJpbnBh
Y2thZ2UiOgotICAgICAgICB0bXBkaXIuZW5zdXJlKCJhZGlyL19faW5pdF9fLnB5IikKLSAgICAg
ICAgdG1wZGlyLmVuc3VyZSgiYWRpci9iL19faW5pdF9fLnB5IikKLSAgICByZXR1cm4gdG1wZGly
Citmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVECitmcm9tIF9w
eXRlc3QubWFpbiBpbXBvcnQgRVhJVF9PSworZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRf
VVNBR0VFUlJPUgogCiAKIGRlZiBDb25mdGVzdFdpdGhTZXRpbml0aWFsKHBhdGgpOgpAQCAtMjgs
MTggKzIxLDI4IEBAIGRlZiBDb25mdGVzdFdpdGhTZXRpbml0aWFsKHBhdGgpOgogCiAKIGRlZiBj
b25mdGVzdF9zZXRpbml0aWFsKGNvbmZ0ZXN0LCBhcmdzLCBjb25mY3V0ZGlyPU5vbmUpOgotCiAg
ICAgY2xhc3MgTmFtZXNwYWNlKG9iamVjdCk6Ci0KICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYp
OgogICAgICAgICAgICAgc2VsZi5maWxlX29yX2RpciA9IGFyZ3MKICAgICAgICAgICAgIHNlbGYu
Y29uZmN1dGRpciA9IHN0cihjb25mY3V0ZGlyKQogICAgICAgICAgICAgc2VsZi5ub2NvbmZ0ZXN0
ID0gRmFsc2UKKyAgICAgICAgICAgIHNlbGYucHlhcmdzID0gRmFsc2UKIAogICAgIGNvbmZ0ZXN0
Ll9zZXRfaW5pdGlhbF9jb25mdGVzdHMoTmFtZXNwYWNlKCkpCiAKIAorQHB5dGVzdC5tYXJrLnVz
ZWZpeHR1cmVzKCJfc3lzX3NuYXBzaG90IikKIGNsYXNzIFRlc3RDb25mdGVzdFZhbHVlQWNjZXNz
R2xvYmFsKG9iamVjdCk6CisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJh
bXM9WyJnbG9iYWwiLCAiaW5wYWNrYWdlIl0pCisgICAgZGVmIGJhc2VkaXIoc2VsZiwgcmVxdWVz
dCwgdG1wZGlyX2ZhY3RvcnkpOgorICAgICAgICB0bXBkaXIgPSB0bXBkaXJfZmFjdG9yeS5ta3Rl
bXAoImJhc2VkaXIiLCBudW1iZXJlZD1UcnVlKQorICAgICAgICB0bXBkaXIuZW5zdXJlKCJhZGly
L2NvbmZ0ZXN0LnB5Iikud3JpdGUoImE9MSA7IERpcmVjdG9yeSA9IDMiKQorICAgICAgICB0bXBk
aXIuZW5zdXJlKCJhZGlyL2IvY29uZnRlc3QucHkiKS53cml0ZSgiYj0yIDsgYSA9IDEuNSIpCisg
ICAgICAgIGlmIHJlcXVlc3QucGFyYW0gPT0gImlucGFja2FnZSI6CisgICAgICAgICAgICB0bXBk
aXIuZW5zdXJlKCJhZGlyL19faW5pdF9fLnB5IikKKyAgICAgICAgICAgIHRtcGRpci5lbnN1cmUo
ImFkaXIvYi9fX2luaXRfXy5weSIpCisKKyAgICAgICAgeWllbGQgdG1wZGlyCiAKICAgICBkZWYg
dGVzdF9iYXNpY19pbml0KHNlbGYsIGJhc2VkaXIpOgogICAgICAgICBjb25mdGVzdCA9IFB5dGVz
dFBsdWdpbk1hbmFnZXIoKQpAQCAtNDgsMTQgKzUxLDE0IEBAIGNsYXNzIFRlc3RDb25mdGVzdFZh
bHVlQWNjZXNzR2xvYmFsKG9iamVjdCk6CiAKICAgICBkZWYgdGVzdF9pbW1lZGlhdGVfaW5pdGlh
bGlhdGlvbl9hbmRfaW5jcmVtZW50YWxfYXJlX3RoZV9zYW1lKHNlbGYsIGJhc2VkaXIpOgogICAg
ICAgICBjb25mdGVzdCA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQotICAgICAgICBsZW4oY29uZnRl
c3QuX3BhdGgyY29uZm1vZHMpCisgICAgICAgIGFzc2VydCBub3QgbGVuKGNvbmZ0ZXN0Ll9kaXJw
YXRoMmNvbmZtb2RzKQogICAgICAgICBjb25mdGVzdC5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGJhc2Vk
aXIpCi0gICAgICAgIHNuYXAxID0gbGVuKGNvbmZ0ZXN0Ll9wYXRoMmNvbmZtb2RzKQotICAgICAg
ICAjIGFzc2VydCBsZW4oY29uZnRlc3QuX3BhdGgyY29uZm1vZHMpID09IHNuYXAxICsgMQorICAg
ICAgICBzbmFwMSA9IGxlbihjb25mdGVzdC5fZGlycGF0aDJjb25mbW9kcykKKyAgICAgICAgYXNz
ZXJ0IHNuYXAxID09IDEKICAgICAgICAgY29uZnRlc3QuX2dldGNvbmZ0ZXN0bW9kdWxlcyhiYXNl
ZGlyLmpvaW4oImFkaXIiKSkKLSAgICAgICAgYXNzZXJ0IGxlbihjb25mdGVzdC5fcGF0aDJjb25m
bW9kcykgPT0gc25hcDEgKyAxCisgICAgICAgIGFzc2VydCBsZW4oY29uZnRlc3QuX2RpcnBhdGgy
Y29uZm1vZHMpID09IHNuYXAxICsgMQogICAgICAgICBjb25mdGVzdC5fZ2V0Y29uZnRlc3Rtb2R1
bGVzKGJhc2VkaXIuam9pbigiYiIpKQotICAgICAgICBhc3NlcnQgbGVuKGNvbmZ0ZXN0Ll9wYXRo
MmNvbmZtb2RzKSA9PSBzbmFwMSArIDIKKyAgICAgICAgYXNzZXJ0IGxlbihjb25mdGVzdC5fZGly
cGF0aDJjb25mbW9kcykgPT0gc25hcDEgKyAyCiAKICAgICBkZWYgdGVzdF92YWx1ZV9hY2Nlc3Nf
bm90X2V4aXN0aW5nKHNlbGYsIGJhc2VkaXIpOgogICAgICAgICBjb25mdGVzdCA9IENvbmZ0ZXN0
V2l0aFNldGluaXRpYWwoYmFzZWRpcikKQEAgLTc5LDcgKzgyLDcgQEAgY2xhc3MgVGVzdENvbmZ0
ZXN0VmFsdWVBY2Nlc3NHbG9iYWwob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHBhdGgucHVyZWJh
c2VuYW1lLnN0YXJ0c3dpdGgoImNvbmZ0ZXN0IikKIAogCi1kZWYgdGVzdF9jb25mdGVzdF9pbl9u
b25wa2dfd2l0aF9pbml0KHRtcGRpcik6CitkZWYgdGVzdF9jb25mdGVzdF9pbl9ub25wa2dfd2l0
aF9pbml0KHRtcGRpciwgX3N5c19zbmFwc2hvdCk6CiAgICAgdG1wZGlyLmVuc3VyZSgiYWRpci0x
LjAvY29uZnRlc3QucHkiKS53cml0ZSgiYT0xIDsgRGlyZWN0b3J5ID0gMyIpCiAgICAgdG1wZGly
LmVuc3VyZSgiYWRpci0xLjAvYi9jb25mdGVzdC5weSIpLndyaXRlKCJiPTIgOyBhID0gMS41IikK
ICAgICB0bXBkaXIuZW5zdXJlKCJhZGlyLTEuMC9iL19faW5pdF9fLnB5IikKQEAgLTE3OSwxMSAr
MTgyLDExIEBAIGRlZiB0ZXN0X2NvbmZ0ZXN0X2NvbmZjdXRkaXIodGVzdGRpcik6CiAgICAgdGVz
dGRpci5tYWtlY29uZnRlc3QoImFzc2VydCAwIikKICAgICB4ID0gdGVzdGRpci5ta2RpcigieCIp
CiAgICAgeC5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICBfcHl0ZXN0Ll9jb2Rl
LlNvdXJjZSgKKyAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgIiIiXAorICAg
ICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBw
YXJzZXIuYWRkb3B0aW9uKCItLXh5eiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCiAgICAgICAgICAg
ICAiIiIKLSAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICAgICAgICAg
IHBhcnNlci5hZGRvcHRpb24oIi0teHl6IiwgYWN0aW9uPSJzdG9yZV90cnVlIikKLSAgICAiIiIK
ICAgICAgICAgKQogICAgICkKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLWgiLCAi
LS1jb25mY3V0ZGlyPSVzIiAlIHgsIHgpCkBAIC0xOTEsNiArMTk0LDk0IEBAIGRlZiB0ZXN0X2Nv
bmZ0ZXN0X2NvbmZjdXRkaXIodGVzdGRpcik6CiAgICAgYXNzZXJ0ICJ3YXJuaW5nOiBjb3VsZCBu
b3QgbG9hZCBpbml0aWFsIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQogCiAKK0BweXRlc3Qu
bWFyay5za2lwaWYoCisgICAgbm90IGhhc2F0dHIocHkucGF0aC5sb2NhbCwgIm1rc3ltbGlua3Rv
IiksCisgICAgcmVhc29uPSJzeW1saW5rIG5vdCBhdmFpbGFibGUgb24gdGhpcyBwbGF0Zm9ybSIs
CispCitkZWYgdGVzdF9jb25mdGVzdF9zeW1saW5rKHRlc3RkaXIpOgorICAgICIiIkVuc3VyZSB0
aGF0IGNvbmZ0ZXN0LnB5IGlzIHVzZWQgZm9yIHJlc29sdmVkIHN5bWxpbmtzLiIiIgorICAgIHJl
YWwgPSB0ZXN0ZGlyLnRtcGRpci5ta2RpcigicmVhbCIpCisgICAgcmVhbHRlc3RzID0gcmVhbC5t
a2RpcigiYXBwIikubWtkaXIoInRlc3RzIikKKyAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJzeW1s
aW5rdGVzdHMiKS5ta3N5bWxpbmt0byhyZWFsdGVzdHMpCisgICAgdGVzdGRpci50bXBkaXIuam9p
bigic3ltbGluayIpLm1rc3ltbGlua3RvKHJlYWwpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAor
ICAgICAgICAqKnsKKyAgICAgICAgICAgICJyZWFsL2FwcC90ZXN0cy90ZXN0X2Zvby5weSI6ICJk
ZWYgdGVzdDEoZml4dHVyZSk6IHBhc3MiLAorICAgICAgICAgICAgInJlYWwvY29uZnRlc3QucHki
OiB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICAgICAgcHJpbnQoImNvbmZ0ZXN0X2xvYWRlZCIp
CisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYg
Zml4dHVyZSgpOgorICAgICAgICAgICAgICAgICAgICBwcmludCgiZml4dHVyZV91c2VkIikKKyAg
ICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICksCisgICAgICAgIH0KKyAgICApCisgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12cyIsICJzeW1saW5rdGVzdHMiKQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWworICAgICAgICAgICAgIipjb25m
dGVzdF9sb2FkZWQqIiwKKyAgICAgICAgICAgICJyZWFsL2FwcC90ZXN0cy90ZXN0X2Zvby5weTo6
dGVzdDEgZml4dHVyZV91c2VkIiwKKyAgICAgICAgICAgICJQQVNTRUQiLAorICAgICAgICBdCisg
ICAgKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfT0sKKworICAgICMgU2hvdWxkIG5v
dCBjYXVzZSAiVmFsdWVFcnJvcjogUGx1Z2luIGFscmVhZHkgcmVnaXN0ZXJlZCIgKCM0MTc0KS4K
KyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXZzIiwgInN5bWxpbmsiKQorICAgIGFz
c2VydCByZXN1bHQucmV0ID09IEVYSVRfT0sKKworICAgIHJlYWx0ZXN0cy5lbnN1cmUoIl9faW5p
dF9fLnB5IikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXZzIiwgInN5bWxpbmt0
ZXN0cy90ZXN0X2Zvby5weTo6dGVzdDEiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygKKyAgICAgICAgWworICAgICAgICAgICAgIipjb25mdGVzdF9sb2FkZWQqIiwKKyAgICAgICAg
ICAgICJyZWFsL2FwcC90ZXN0cy90ZXN0X2Zvby5weTo6dGVzdDEgZml4dHVyZV91c2VkIiwKKyAg
ICAgICAgICAgICJQQVNTRUQiLAorICAgICAgICBdCisgICAgKQorICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IEVYSVRfT0sKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKAorICAgIG5vdCBoYXNhdHRy
KHB5LnBhdGgubG9jYWwsICJta3N5bWxpbmt0byIpLAorICAgIHJlYXNvbj0ic3ltbGluayBub3Qg
YXZhaWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0iLAorKQorZGVmIHRlc3RfY29uZnRlc3Rfc3ltbGlu
a19maWxlcyh0ZXN0ZGlyKToKKyAgICAiIiJDaGVjayBjb25mdGVzdC5weSBsb2FkaW5nIHdoZW4g
cnVubmluZyBpbiBkaXJlY3Rvcnkgd2l0aCBzeW1saW5rcy4iIiIKKyAgICByZWFsID0gdGVzdGRp
ci50bXBkaXIubWtkaXIoInJlYWwiKQorICAgIHNvdXJjZSA9IHsKKyAgICAgICAgImFwcC90ZXN0
X2Zvby5weSI6ICJkZWYgdGVzdDEoZml4dHVyZSk6IHBhc3MiLAorICAgICAgICAiYXBwL19faW5p
dF9fLnB5IjogIiIsCisgICAgICAgICJhcHAvY29uZnRlc3QucHkiOiB0ZXh0d3JhcC5kZWRlbnQo
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAg
ICAgcHJpbnQoImNvbmZ0ZXN0X2xvYWRlZCIpCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICAgICAgZGVmIGZpeHR1cmUoKToKKyAgICAgICAgICAgICAgICBwcmludCgiZml4
dHVyZV91c2VkIikKKyAgICAgICAgICAgICIiIgorICAgICAgICApLAorICAgIH0KKyAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoKip7InJlYWwvJXMiICUgazogdiBmb3IgaywgdiBpbiBzb3VyY2UuaXRl
bXMoKX0pCisKKyAgICAjIENyZWF0ZSBhIGJ1aWxkIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHN5
bWxpbmtzIHRvIGFjdHVhbCBmaWxlcworICAgICMgYnV0IGRvZXNuJ3Qgc3ltbGluayBhY3R1YWwg
ZGlyZWN0b3JpZXMuCisgICAgYnVpbGQgPSB0ZXN0ZGlyLnRtcGRpci5ta2RpcigiYnVpbGQiKQor
ICAgIGJ1aWxkLm1rZGlyKCJhcHAiKQorICAgIGZvciBmIGluIHNvdXJjZToKKyAgICAgICAgYnVp
bGQuam9pbihmKS5ta3N5bWxpbmt0byhyZWFsLmpvaW4oZikpCisgICAgYnVpbGQuY2hkaXIoKQor
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdnMiLCAiYXBwL3Rlc3RfZm9vLnB5IikK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqY29uZnRlc3RfbG9hZGVkKiIsICJQ
QVNTRUQiXSkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX09LCisKKwogZGVmIHRlc3Rf
bm9fY29uZnRlc3QodGVzdGRpcik6CiAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoImFzc2VydCAw
IikKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1ub2NvbmZ0ZXN0IikKQEAgLTIw
MywxMSArMjk0LDExIEBAIGRlZiB0ZXN0X25vX2NvbmZ0ZXN0KHRlc3RkaXIpOgogZGVmIHRlc3Rf
Y29uZnRlc3RfZXhpc3RpbmdfcmVzdWx0bG9nKHRlc3RkaXIpOgogICAgIHggPSB0ZXN0ZGlyLm1r
ZGlyKCJ0ZXN0cyIpCiAgICAgeC5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICBf
cHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAg
ICAgIiIiXAorICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAg
ICAgICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXh5eiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIp
CiAgICAgICAgICAgICAiIiIKLSAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToK
LSAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0teHl6IiwgYWN0aW9uPSJzdG9yZV90cnVl
IikKLSAgICAiIiIKICAgICAgICAgKQogICAgICkKICAgICB0ZXN0ZGlyLm1ha2VmaWxlKGV4dD0i
LmxvZyIsIHJlc3VsdD0iIikgICMgV3JpdGVzIHJlc3VsdC5sb2cKQEAgLTIxOCwxMSArMzA5LDEx
IEBAIGRlZiB0ZXN0X2NvbmZ0ZXN0X2V4aXN0aW5nX3Jlc3VsdGxvZyh0ZXN0ZGlyKToKIGRlZiB0
ZXN0X2NvbmZ0ZXN0X2V4aXN0aW5nX2p1bml0eG1sKHRlc3RkaXIpOgogICAgIHggPSB0ZXN0ZGly
Lm1rZGlyKCJ0ZXN0cyIpCiAgICAgeC5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAg
ICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAg
ICAgICAgIiIiXAorICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAg
ICAgICAgICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXh5eiIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIpCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2Vy
KToKLSAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0teHl6IiwgYWN0aW9uPSJzdG9yZV90
cnVlIikKLSAgICAiIiIKICAgICAgICAgKQogICAgICkKICAgICB0ZXN0ZGlyLm1ha2VmaWxlKGV4
dD0iLnhtbCIsIGp1bml0PSIiKSAgIyBXcml0ZXMganVuaXQueG1sCkBAIC0yNTIsMzggKzM0Mywz
OCBAQCBkZWYgdGVzdF9maXh0dXJlX2RlcGVuZGVuY3kodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgog
ICAgIHN1YiA9IHRlc3RkaXIubWtkaXIoInN1YiIpCiAgICAgc3ViLmpvaW4oIl9faW5pdF9fLnB5
Iikud3JpdGUoIiIpCiAgICAgc3ViLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAg
IGRlZGVudCgKLSAgICAgICAgICAgICIiIgotICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
IHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKIAotICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgZGVmIG5vdF9uZWVkZWQo
KToKLSAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgIlNob3VsZCBub3QgYmUgY2FsbGVkISIKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIG5vdF9uZWVkZWQoKToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UsICJTaG91bGQgbm90IGJlIGNhbGxlZCEiCiAK
LSAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgIGRlZiBmb28oKToKLSAgICAgICAgICAg
IGFzc2VydCBGYWxzZSwgIlNob3VsZCBub3QgYmUgY2FsbGVkISIKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBGYWxzZSwgIlNob3VsZCBub3QgYmUgY2FsbGVkISIKIAotICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKLSAgICAgICAgZGVmIGJhcihmb28pOgotICAgICAgICAgICAgcmV0dXJuICdiYXInCi0gICAg
IiIiCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBiYXIoZm9v
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2JhcicKKyAgICAgICAgICAgICIiIgogICAgICAg
ICApCiAgICAgKQogICAgIHN1YnN1YiA9IHN1Yi5ta2Rpcigic3Vic3ViIikKICAgICBzdWJzdWIu
am9pbigiX19pbml0X18ucHkiKS53cml0ZSgiIikKICAgICBzdWJzdWIuam9pbigidGVzdF9iYXIu
cHkiKS53cml0ZSgKLSAgICAgICAgZGVkZW50KAotICAgICAgICAgICAgIiIiCi0gICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgIiIiXAor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogCi0gICAgICAgIEBweXRlc3QuZml4dHVyZQotICAg
ICAgICBkZWYgYmFyKCk6Ci0gICAgICAgICAgICByZXR1cm4gJ3N1YiBiYXInCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBiYXIoKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gJ3N1YiBiYXInCiAKLSAgICAgICAgZGVmIHRlc3RfZXZlbnRfZml4dHVyZShiYXIp
OgotICAgICAgICAgICAgYXNzZXJ0IGJhciA9PSAnc3ViIGJhcicKLSAgICAiIiIKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2V2ZW50X2ZpeHR1cmUoYmFyKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
YmFyID09ICdzdWIgYmFyJworICAgICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICApCiAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoInN1YiIpCkBAIC0yOTMsMTEgKzM4NCwxMSBAQCBk
ZWYgdGVzdF9maXh0dXJlX2RlcGVuZGVuY3kodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgogZGVmIHRl
c3RfY29uZnRlc3RfZm91bmRfd2l0aF9kb3VibGVfZGFzaCh0ZXN0ZGlyKToKICAgICBzdWIgPSB0
ZXN0ZGlyLm1rZGlyKCJzdWIiKQogICAgIHN1Yi5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAot
ICAgICAgICBkZWRlbnQoCisgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICIi
IlwKKyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAg
ICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS1oZWxsby13b3JsZCIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIpCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2Vy
KToKLSAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0taGVsbG8td29ybGQiLCBhY3Rpb249
InN0b3JlX3RydWUiKQotICAgICIiIgogICAgICAgICApCiAgICAgKQogICAgIHAgPSBzdWIuam9p
bigidGVzdF9oZWxsby5weSIpCkBAIC0zMTEsNyArNDAyLDYgQEAgZGVmIHRlc3RfY29uZnRlc3Rf
Zm91bmRfd2l0aF9kb3VibGVfZGFzaCh0ZXN0ZGlyKToKIAogCiBjbGFzcyBUZXN0Q29uZnRlc3RW
aXNpYmlsaXR5KG9iamVjdCk6Ci0KICAgICBkZWYgX3NldHVwX3RyZWUoc2VsZiwgdGVzdGRpcik6
ICAjIGZvciBpc3N1ZTYxNgogICAgICAgICAjIGV4YW1wbGUgbW9zdGx5IHRha2VuIGZyb206CiAg
ICAgICAgICMgaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvcGlwZXJtYWlsL3B5dGVzdC1kZXYvMjAx
NC1TZXB0ZW1iZXIvMDAyNjE3Lmh0bWwKQEAgLTMxOSw1NiArNDA5LDU0IEBAIGNsYXNzIFRlc3RD
b25mdGVzdFZpc2liaWxpdHkob2JqZWN0KToKICAgICAgICAgcGFja2FnZSA9IHRlc3RkaXIubWtk
aXIoInBhY2thZ2UiKQogCiAgICAgICAgIHBhY2thZ2Uuam9pbigiY29uZnRlc3QucHkiKS53cml0
ZSgKLSAgICAgICAgICAgIGRlZGVudCgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKICAg
ICAgICAgICAgICAgICAiIiJcCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBmeHRyKCk6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuICJmcm9tLXBhY2thZ2UiCi0gICAgICAgICIiIgorICAgICAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAg
ICAgICBkZWYgZnh0cigpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gImZyb20tcGFja2Fn
ZSIKKyAgICAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAg
ICBwYWNrYWdlLmpvaW4oInRlc3RfcGtncm9vdC5weSIpLndyaXRlKAotICAgICAgICAgICAgZGVk
ZW50KAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAogICAgICAgICAgICAgICAgICIiIlwK
LSAgICAgICAgICAgIGRlZiB0ZXN0X3BrZ3Jvb3QoZnh0cik6Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0IGZ4dHIgPT0gImZyb20tcGFja2FnZSIKLSAgICAgICAgIiIiCisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfcGtncm9vdChmeHRyKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZ4dHIg
PT0gImZyb20tcGFja2FnZSIKKyAgICAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAg
ICAgICAgKQogCiAgICAgICAgIHN3YyA9IHBhY2thZ2UubWtkaXIoInN3YyIpCiAgICAgICAgIHN3
Yy5qb2luKCJfX2luaXRfXy5weSIpLmVuc3VyZSgpCiAgICAgICAgIHN3Yy5qb2luKCJjb25mdGVz
dC5weSIpLndyaXRlKAotICAgICAgICAgICAgZGVkZW50KAorICAgICAgICAgICAgdGV4dHdyYXAu
ZGVkZW50KAogICAgICAgICAgICAgICAgICIiIlwKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
LSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGZ4dHIoKToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gImZyb20tc3djIgotICAgICAgICAiIiIKKyAgICAgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgICAgICAgICAgZGVmIGZ4dHIoKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJmcm9t
LXN3YyIKKyAgICAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAg
ICAgICBzd2Muam9pbigidGVzdF93aXRoX2NvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgICAg
ICBkZWRlbnQoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCiAgICAgICAgICAgICAgICAg
IiIiXAotICAgICAgICAgICAgZGVmIHRlc3Rfd2l0aF9jb25mdGVzdChmeHRyKToKLSAgICAgICAg
ICAgICAgICBhc3NlcnQgZnh0ciA9PSAiZnJvbS1zd2MiCi0KLSAgICAgICAgIiIiCisgICAgICAg
ICAgICAgICAgZGVmIHRlc3Rfd2l0aF9jb25mdGVzdChmeHRyKToKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0IGZ4dHIgPT0gImZyb20tc3djIgorICAgICAgICAgICAgICAgICIiIgogICAgICAg
ICAgICAgKQogICAgICAgICApCiAKICAgICAgICAgc25jID0gcGFja2FnZS5ta2Rpcigic25jIikK
ICAgICAgICAgc25jLmpvaW4oIl9faW5pdF9fLnB5IikuZW5zdXJlKCkKICAgICAgICAgc25jLmpv
aW4oInRlc3Rfbm9fY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgICAgIGRlZGVudCgKKyAg
ICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKICAgICAgICAgICAgICAgICAiIiJcCi0gICAgICAg
ICAgICBkZWYgdGVzdF9ub19jb25mdGVzdChmeHRyKToKLSAgICAgICAgICAgICAgICBhc3NlcnQg
Znh0ciA9PSAiZnJvbS1wYWNrYWdlIiAgICMgTm8gbG9jYWwgY29uZnRlc3QucHksIHNvIHNob3Vs
ZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB1c2Ug
dmFsdWUgZnJvbSBwYXJlbnQgZGlyJ3MKLQotICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICBk
ZWYgdGVzdF9ub19jb25mdGVzdChmeHRyKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZ4
dHIgPT0gImZyb20tcGFja2FnZSIgICAjIE5vIGxvY2FsIGNvbmZ0ZXN0LnB5LCBzbyBzaG91bGQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHVz
ZSB2YWx1ZSBmcm9tIHBhcmVudCBkaXIncworICAgICAgICAgICAgICAgICIiIgogICAgICAgICAg
ICAgKQogICAgICAgICApCiAgICAgICAgIHByaW50KCJjcmVhdGVkIGRpcmVjdG9yeSBzdHJ1Y3R1
cmU6IikKQEAgLTQwNCwxMCArNDkyLDEwIEBAIGNsYXNzIFRlc3RDb25mdGVzdFZpc2liaWxpdHko
b2JqZWN0KToKICAgICAgICAgICAgICgic25jIiwgIi4iLCAxKSwKICAgICAgICAgXSwKICAgICAp
Ci0gICAgQHB5dGVzdC5tYXJrLmlzc3VlNjE2CiAgICAgZGVmIHRlc3RfcGFyc2VmYWN0b3JpZXNf
cmVsYXRpdmVfbm9kZV9pZHMoCiAgICAgICAgIHNlbGYsIHRlc3RkaXIsIGNoZGlyLCB0ZXN0YXJn
LCBleHBlY3RfbnRlc3RzX3Bhc3NlZAogICAgICk6CisgICAgICAgICIiIiM2MTYiIiIKICAgICAg
ICAgZGlycyA9IHNlbGYuX3NldHVwX3RyZWUodGVzdGRpcikKICAgICAgICAgcHJpbnQoInB5dGVz
dCBydW4gaW4gY3dkOiAlcyIgJSAoZGlyc1tjaGRpcl0ucmVsdG8odGVzdGRpci50bXBkaXIpKSkK
ICAgICAgICAgcHJpbnQoInB5dGVzdGFyZyAgICAgICAgOiAlcyIgJSAodGVzdGFyZykpCkBAIC00
MjgsMzEgKzUxNiwzMSBAQCBkZWYgdGVzdF9zZWFyY2hfY29uZnRlc3RfdXBfdG9faW5pZmlsZSh0
ZXN0ZGlyLCBjb25mY3V0ZGlyLCBwYXNzZWQsIGVycm9yKToKICAgICBzcmMgPSByb290LmpvaW4o
InNyYyIpLmVuc3VyZShkaXI9MSkKICAgICBzcmMuam9pbigicHl0ZXN0LmluaSIpLndyaXRlKCJb
cHl0ZXN0XSIpCiAgICAgc3JjLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgIF9w
eXRlc3QuX2NvZGUuU291cmNlKAorICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAg
ICAiIiJcCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKKyAgICAgICAgICAgIGRlZiBmaXgxKCk6IHBhc3MKICAgICAgICAgICAgICIiIgotICAg
ICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICBkZWYg
Zml4MSgpOiBwYXNzCi0gICAgIiIiCiAgICAgICAgICkKICAgICApCiAgICAgc3JjLmpvaW4oInRl
c3RfZm9vLnB5Iikud3JpdGUoCi0gICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAorICAgICAg
ICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICBkZWYgdGVz
dF8xKGZpeDEpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIo
b3V0X29mX3JlYWNoKToKKyAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICAiIiIKLSAg
ICAgICAgZGVmIHRlc3RfMShmaXgxKToKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZGVmIHRl
c3RfMihvdXRfb2ZfcmVhY2gpOgotICAgICAgICAgICAgcGFzcwotICAgICIiIgogICAgICAgICAp
CiAgICAgKQogICAgIHJvb3Quam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgX3B5
dGVzdC5fY29kZS5Tb3VyY2UoCisgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAg
ICIiIlwKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgZGVmIG91dF9vZl9yZWFjaCgpOiBwYXNzCiAgICAgICAgICAgICAi
IiIKLSAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAg
ICAgZGVmIG91dF9vZl9yZWFjaCgpOiBwYXNzCi0gICAgIiIiCiAgICAgICAgICkKICAgICApCiAK
QEAgLTQ3MCwxOSArNTU4LDE5IEBAIGRlZiB0ZXN0X3NlYXJjaF9jb25mdGVzdF91cF90b19pbmlm
aWxlKHRlc3RkaXIsIGNvbmZjdXRkaXIsIHBhc3NlZCwgZXJyb3IpOgogCiBkZWYgdGVzdF9pc3N1
ZTEwNzNfY29uZnRlc3Rfc3BlY2lhbF9vYmplY3RzKHRlc3RkaXIpOgogICAgIHRlc3RkaXIubWFr
ZWNvbmZ0ZXN0KAotICAgICAgICAiIiIKKyAgICAgICAgIiIiXAogICAgICAgICBjbGFzcyBEb250
VG91Y2hNZShvYmplY3QpOgogICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIHgpOgog
ICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignY2FudCB0b3VjaCBtZScpCiAKICAgICAg
ICAgeCA9IERvbnRUb3VjaE1lKCkKLSAgICAiIiIKKyAgICAgICAgIiIiCiAgICAgKQogICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgIiIiCisgICAgICAgICIiIlwKICAgICAgICAgZGVm
IHRlc3Rfc29tZSgpOgogICAgICAgICAgICAgcGFzcwotICAgICIiIgorICAgICAgICAiIiIKICAg
ICApCiAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QoKQogICAgIGFzc2VydCByZXMucmV0ID09
IDAKQEAgLTQ5MCwxNSArNTc4LDE1IEBAIGRlZiB0ZXN0X2lzc3VlMTA3M19jb25mdGVzdF9zcGVj
aWFsX29iamVjdHModGVzdGRpcik6CiAKIGRlZiB0ZXN0X2NvbmZ0ZXN0X2V4Y2VwdGlvbl9oYW5k
bGluZyh0ZXN0ZGlyKToKICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgIiIiCisg
ICAgICAgICIiIlwKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCi0gICAgIiIiCisgICAgICAg
ICIiIgogICAgICkKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICIiIgorICAgICAg
ICAiIiJcCiAgICAgICAgIGRlZiB0ZXN0X3NvbWUoKToKICAgICAgICAgICAgIHBhc3MKLSAgICAi
IiIKKyAgICAgICAgIiIiCiAgICAgKQogICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAg
ICBhc3NlcnQgcmVzLnJldCA9PSA0CkBAIC01MTMsNyArNjAxLDcgQEAgZGVmIHRlc3RfaG9va19w
cm94eSh0ZXN0ZGlyKToKICAgICAgICAgKip7CiAgICAgICAgICAgICAicm9vdC9kZW1vLTAvdGVz
dF9mb28xLnB5IjogImRlZiB0ZXN0MSgpOiBwYXNzIiwKICAgICAgICAgICAgICJyb290L2RlbW8t
YS90ZXN0X2ZvbzIucHkiOiAiZGVmIHRlc3QxKCk6IHBhc3MiLAotICAgICAgICAgICAgInJvb3Qv
ZGVtby1hL2NvbmZ0ZXN0LnB5IjogIiIiCisgICAgICAgICAgICAicm9vdC9kZW1vLWEvY29uZnRl
c3QucHkiOiAiIiJcCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgs
IGNvbmZpZyk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgICAgICIiIiwK
QEAgLTUzMSwxMSArNjE5LDExIEBAIGRlZiB0ZXN0X3JlcXVpcmVkX29wdGlvbl9oZWxwKHRlc3Rk
aXIpOgogICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCJhc3NlcnQgMCIpCiAgICAgeCA9IHRlc3Rk
aXIubWtkaXIoIngiKQogICAgIHguam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAg
X3B5dGVzdC5fY29kZS5Tb3VyY2UoCisgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAg
ICAgICIiIlwKKyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAg
ICAgICAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS14eXoiLCBhY3Rpb249InN0b3JlX3RydWUi
LCByZXF1aXJlZD1UcnVlKQogICAgICAgICAgICAgIiIiCi0gICAgICAgIGRlZiBweXRlc3RfYWRk
b3B0aW9uKHBhcnNlcik6Ci0gICAgICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXh5eiIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIHJlcXVpcmVkPVRydWUpCi0gICAgIiIiCiAgICAgICAgICkKICAg
ICApCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1oIiwgeCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9kb2N0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X2RvY3Rlc3QucHkKaW5kZXggN2YzYWZmM2IwZTEwNzIyMDYxODQ2MjljNTE5ZGRlMTcw
MzRiZDE1ZC4uNzIzZjFmZTk2NDIzZDBjYWI5NGU3NWJjNjc1YTdkNGY0ZDc5ZTIzYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2RvY3Rlc3QucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X2RvY3Rlc3QucHkKQEAgLTEsMTQgKzEsMjIgQEAKLSMgZW5jb2Rpbmc6
IHV0Zi04Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24K
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGluc3BlY3QK
IGltcG9ydCBzeXMKLWltcG9ydCBfcHl0ZXN0Ll9jb2RlCi1mcm9tIF9weXRlc3QuY29tcGF0IGlt
cG9ydCBNT0RVTEVfTk9UX0ZPVU5EX0VSUk9SCi1mcm9tIF9weXRlc3QuZG9jdGVzdCBpbXBvcnQg
RG9jdGVzdEl0ZW0sIERvY3Rlc3RNb2R1bGUsIERvY3Rlc3RUZXh0ZmlsZQoraW1wb3J0IHRleHR3
cmFwCisKIGltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IE1PRFVMRV9O
T1RfRk9VTkRfRVJST1IKK2Zyb20gX3B5dGVzdC5kb2N0ZXN0IGltcG9ydCBfaXNfbW9ja2VkCitm
cm9tIF9weXRlc3QuZG9jdGVzdCBpbXBvcnQgX3BhdGNoX3Vud3JhcF9tb2NrX2F3YXJlCitmcm9t
IF9weXRlc3QuZG9jdGVzdCBpbXBvcnQgRG9jdGVzdEl0ZW0KK2Zyb20gX3B5dGVzdC5kb2N0ZXN0
IGltcG9ydCBEb2N0ZXN0TW9kdWxlCitmcm9tIF9weXRlc3QuZG9jdGVzdCBpbXBvcnQgRG9jdGVz
dFRleHRmaWxlCiAKIAogY2xhc3MgVGVzdERvY3Rlc3RzKG9iamVjdCk6Ci0KICAgICBkZWYgdGVz
dF9jb2xsZWN0X3Rlc3R0ZXh0ZmlsZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdyA9IHRlc3Rk
aXIubWFrZXR4dGZpbGUod2hhdGV2ZXI9IiIpCiAgICAgICAgIGNoZWNrZmlsZSA9IHRlc3RkaXIu
bWFrZXR4dGZpbGUoCkBAIC0xODMsNiArMTkxLDE4IEBAIGNsYXNzIFRlc3REb2N0ZXN0cyhvYmpl
Y3QpOgogICAgICAgICAgICAgXQogICAgICAgICApCiAKKyAgICBkZWYgdGVzdF9kb2N0ZXN0X3Nr
aXAoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXR4dGZpbGUoCisgICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgID4+PiAxCisgICAgICAgICAgICAxCisgICAgICAgICAgICA+
Pj4gaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgPj4+IHB5dGVzdC5za2lwKCIiKQorICAgICAg
ICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1k
b2N0ZXN0LW1vZHVsZXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
MSBza2lwcGVkKiJdKQorCiAgICAgZGVmIHRlc3RfZG9jc3RyaW5nX3BhcnRpYWxfY29udGV4dF9h
cm91bmRfZXJyb3Ioc2VsZiwgdGVzdGRpcik6CiAgICAgICAgICIiIlRlc3QgdGhhdCB3ZSBzaG93
IHNvbWUgY29udGV4dCBiZWZvcmUgdGhlIGFjdHVhbCBsaW5lIG9mIGEgZmFpbGluZwogICAgICAg
ICBkb2N0ZXN0LgpAQCAtMjU5LDE2ICsyNzksMTYgQEAgY2xhc3MgVGVzdERvY3Rlc3RzKG9iamVj
dCk6CiAKICAgICBkZWYgdGVzdF9kb2N0ZXN0X2xpbmVkYXRhX21pc3Npbmcoc2VsZiwgdGVzdGRp
cik6CiAgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oImhlbGxvLnB5Iikud3JpdGUoCi0gICAg
ICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVu
dCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgY2xhc3MgRnVuKG9iamVj
dCk6CisgICAgICAgICAgICAgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICBk
ZWYgdGVzdChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAg
ICAgICAgICAgICAgPj4+IGEgPSAxCisgICAgICAgICAgICAgICAgICAgICAgICA+Pj4gMS8wCisg
ICAgICAgICAgICAgICAgICAgICAgICAnJycKICAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgIGNsYXNzIEZ1bihvYmplY3QpOgotICAgICAgICAgICAgICAgIEBwcm9wZXJ0eQotICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgotICAgICAgICAgICAgICAgICAgICAnJycKLSAgICAg
ICAgICAgICAgICAgICAgPj4+IGEgPSAxCi0gICAgICAgICAgICAgICAgICAgID4+PiAxLzAKLSAg
ICAgICAgICAgICAgICAgICAgJycnCi0gICAgICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAg
ICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1kb2N0ZXN0LW1v
ZHVsZXMiKQpAQCAtMzAxLDEwICszMjEsMTAgQEAgY2xhc3MgVGVzdERvY3Rlc3RzKG9iamVjdCk6
CiAKICAgICBkZWYgdGVzdF9kb2N0ZXN0X3VuZXhfaW1wb3J0ZXJyb3Jfd2l0aF9tb2R1bGUoc2Vs
ZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oImhlbGxvLnB5Iikud3Jp
dGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3
cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgaW1wb3J0
IGFzZGFsc2RramFzbGtkamFzZAogICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1w
b3J0IGFzZGFsc2RramFzbGtkamFzZAotICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAg
ICAgKQogICAgICAgICB0ZXN0ZGlyLm1ha2V0eHRmaWxlKApAQCAtMzQwLDI3ICszNjAsMjcgQEAg
Y2xhc3MgVGVzdERvY3Rlc3RzKG9iamVjdCk6CiAgICAgZGVmIHRlc3RfZG9jdGVzdG1vZHVsZV9l
eHRlcm5hbF9hbmRfaXNzdWUxMTYoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAgPSB0ZXN0ZGly
Lm1rcHlkaXIoImhlbGxvIikKICAgICAgICAgcC5qb2luKCJfX2luaXRfXy5weSIpLndyaXRlKAot
ICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3VyY2UoCisgICAgICAgICAgICB0ZXh0d3JhcC5k
ZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGRlZiBzb21lZnVu
YygpOgorICAgICAgICAgICAgICAgICAgICAnJycKKyAgICAgICAgICAgICAgICAgICAgICAgID4+
PiBpID0gMAorICAgICAgICAgICAgICAgICAgICAgICAgPj4+IGkgKyAxCisgICAgICAgICAgICAg
ICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgICAgICcnJwogICAgICAgICAgICAgICAgICIi
IgotICAgICAgICAgICAgZGVmIHNvbWVmdW5jKCk6Ci0gICAgICAgICAgICAgICAgJycnCi0gICAg
ICAgICAgICAgICAgICAgID4+PiBpID0gMAotICAgICAgICAgICAgICAgICAgICA+Pj4gaSArIDEK
LSAgICAgICAgICAgICAgICAgICAgMgotICAgICAgICAgICAgICAgICcnJwotICAgICAgICAiIiIK
ICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdChwLCAiLS1kb2N0ZXN0LW1vZHVsZXMiKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCiAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgIjAwNCAqPj4+IGkgPSAw
IiwKLSAgICAgICAgICAgICAgICAiMDA1ICo+Pj4gaSArIDEiLAorICAgICAgICAgICAgICAgICIw
MDMgKj4+PiBpID0gMCIsCisgICAgICAgICAgICAgICAgIjAwNCAqPj4+IGkgKyAxIiwKICAgICAg
ICAgICAgICAgICAiKkV4cGVjdGVkOiIsCiAgICAgICAgICAgICAgICAgIiogICAgMiIsCiAgICAg
ICAgICAgICAgICAgIipHb3Q6IiwKICAgICAgICAgICAgICAgICAiKiAgICAxIiwKLSAgICAgICAg
ICAgICAgICAiKjo1OiBEb2NUZXN0RmFpbHVyZSIsCisgICAgICAgICAgICAgICAgIio6NDogRG9j
VGVzdEZhaWx1cmUiLAogICAgICAgICAgICAgXQogICAgICAgICApCiAKQEAgLTU2NCw3ICs1ODQs
NyBAQCBjbGFzcyBUZXN0RG9jdGVzdHMob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgIHUnJycKLSAgICAgICAgICAgICMgZW5jb2Rp
bmc6IHV0Zi04CisgICAgICAgICAgICAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogICAgICAgICAg
ICAgZGVmIGZvbygpOgogICAgICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgICAgID4+PiBu
YW1lID0gJ9GBJyAjIG5vdCBsZXR0ZXIgJ2MnIGJ1dCBpbnN0ZWFkIEN5cmlsbGljICdzJy4KQEAg
LTY0MSw3ICs2NjEsNyBAQCBjbGFzcyBUZXN0RG9jdGVzdHMob2JqZWN0KToKICAgICAgICAgIiIi
CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICB0ZXN0X3VuaWNv
ZGVfZG9jdGVzdF9tb2R1bGU9IiIiCi0gICAgICAgICAgICAjIC0qLSBlbmNvZGluZzogdXRmLTgg
LSotCisgICAgICAgICAgICAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogICAgICAgICAgICAgZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCiAKICAgICAgICAgICAgIGRlZiBm
aXhfYmFkX3VuaWNvZGUodGV4dCk6CkBAIC03MjMsNyArNzQzLDYgQEAgY2xhc3MgVGVzdERvY3Rl
c3RzKG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdExpdGVyYWxzKG9iamVjdCk6Ci0KICAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNvbmZpZ19tb2RlIiwgWyJpbmkiLCAiY29tbWVudCJdKQog
ICAgIGRlZiB0ZXN0X2FsbG93X3VuaWNvZGUoc2VsZiwgdGVzdGRpciwgY29uZmlnX21vZGUpOgog
ICAgICAgICAiIiJUZXN0IHRoYXQgZG9jdGVzdHMgd2hpY2ggb3V0cHV0IHVuaWNvZGUgd29yayBp
biBhbGwgcHl0aG9uIHZlcnNpb25zCkBAIC04NDEsNyArODYwLDYgQEAgY2xhc3MgVGVzdERvY3Rl
c3RTa2lwcyhvYmplY3QpOgogCiAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bInRleHQiLCAi
bW9kdWxlIl0pCiAgICAgZGVmIG1ha2Vkb2N0ZXN0KHNlbGYsIHRlc3RkaXIsIHJlcXVlc3QpOgot
CiAgICAgICAgIGRlZiBtYWtlaXQoZG9jdGVzdCk6CiAgICAgICAgICAgICBtb2RlID0gcmVxdWVz
dC5wYXJhbQogICAgICAgICAgICAgaWYgbW9kZSA9PSAidGV4dCI6CkBAIC05NTMsNyArOTcxLDcg
QEAgY2xhc3MgVGVzdERvY3Rlc3RBdXRvVXNlRml4dHVyZXMob2JqZWN0KToKICAgICAgICAgIiIi
CiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZG9jdGVz
dC1tb2R1bGVzIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMiBwYXNz
ZWQqIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjIgcGFzc2VkKiJd
KQogCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzY29wZSIsIFNDT1BFUykKICAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVuYWJsZV9kb2N0ZXN0IiwgW1RydWUsIEZhbHNlXSkK
QEAgLTExMjIsNyArMTE0MCw2IEBAIGNsYXNzIFRlc3REb2N0ZXN0TmFtZXNwYWNlRml4dHVyZShv
YmplY3QpOgogCiAKIGNsYXNzIFRlc3REb2N0ZXN0UmVwb3J0aW5nT3B0aW9uKG9iamVjdCk6Ci0K
ICAgICBkZWYgX3J1bl9kb2N0ZXN0X3JlcG9ydChzZWxmLCB0ZXN0ZGlyLCBmb3JtYXQpOgogICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTEyMDQsMyArMTIy
MSw0NCBAQCBjbGFzcyBUZXN0RG9jdGVzdFJlcG9ydGluZ09wdGlvbihvYmplY3QpOgogICAgICAg
ICAgICAgICAgICIqZXJyb3I6IGFyZ3VtZW50IC0tZG9jdGVzdC1yZXBvcnQ6IGludmFsaWQgY2hv
aWNlOiAnb2J2aW91c2x5X2ludmFsaWRfZm9ybWF0JyAoY2hvb3NlIGZyb20qIgogICAgICAgICAg
ICAgXQogICAgICAgICApCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtb2NrX21vZHVs
ZSIsIFsibW9jayIsICJ1bml0dGVzdC5tb2NrIl0pCitkZWYgdGVzdF9kb2N0ZXN0X21vY2tfb2Jq
ZWN0c19kb250X3JlY3Vyc2VfbWlzc2JlaGF2ZWQobW9ja19tb2R1bGUsIHRlc3RkaXIpOgorICAg
IHB5dGVzdC5pbXBvcnRvcnNraXAobW9ja19tb2R1bGUpCisgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAorICAgICAgICAiIiIKKyAgICAgICAgZnJvbSB7bW9ja19tb2R1bGV9IGltcG9ydCBjYWxsCisg
ICAgICAgIGNsYXNzIEV4YW1wbGUob2JqZWN0KToKKyAgICAgICAgICAgICcnJworICAgICAgICAg
ICAgPj4+IDEgKyAxCisgICAgICAgICAgICAyCisgICAgICAgICAgICAnJycKKyAgICAgICAgIiIi
LmZvcm1hdCgKKyAgICAgICAgICAgIG1vY2tfbW9kdWxlPW1vY2tfbW9kdWxlCisgICAgICAgICkK
KyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZG9jdGVzdC1tb2R1bGVz
IikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDEgcGFzc2VkICoiXSkKKwor
CitjbGFzcyBCcm9rZW46CisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIF8pOgorICAgICAgICBy
YWlzZSBLZXlFcnJvcigiVGhpcyBzaG91bGQgYmUgYW4gQXR0cmlidXRlRXJyb3IiKQorCisKK0Bw
eXRlc3QubWFyay5za2lwaWYobm90IGhhc2F0dHIoaW5zcGVjdCwgInVud3JhcCIpLCByZWFzb249
Im5vdGhpbmcgdG8gcGF0Y2giKQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCAgIyBwcmFnbWE6
IG5vIGJyYW5jaCAobGFtYmRhcyBhcmUgbm90IGNhbGxlZCkKKyAgICAic3RvcCIsIFtOb25lLCBf
aXNfbW9ja2VkLCBsYW1iZGEgZjogTm9uZSwgbGFtYmRhIGY6IEZhbHNlLCBsYW1iZGEgZjogVHJ1
ZV0KKykKK2RlZiB0ZXN0X3dhcm5pbmdfb25fdW53cmFwX29mX2Jyb2tlbl9vYmplY3Qoc3RvcCk6
CisgICAgYmFkX2luc3RhbmNlID0gQnJva2VuKCkKKyAgICBhc3NlcnQgaW5zcGVjdC51bndyYXAu
X19tb2R1bGVfXyA9PSAiaW5zcGVjdCIKKyAgICB3aXRoIF9wYXRjaF91bndyYXBfbW9ja19hd2Fy
ZSgpOgorICAgICAgICBhc3NlcnQgaW5zcGVjdC51bndyYXAuX19tb2R1bGVfXyAhPSAiaW5zcGVj
dCIKKyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoCisgICAgICAgICAgICBweXRlc3QuUHl0ZXN0
V2FybmluZywgbWF0Y2g9Il5Hb3QgS2V5RXJyb3IuKiB3aGVuIHVud3JhcHBpbmciCisgICAgICAg
ICk6CisgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoS2V5RXJyb3IpOgorICAgICAgICAg
ICAgICAgIGluc3BlY3QudW53cmFwKGJhZF9pbnN0YW5jZSwgc3RvcD1zdG9wKQorICAgIGFzc2Vy
dCBpbnNwZWN0LnVud3JhcC5fX21vZHVsZV9fID09ICJpbnNwZWN0IgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy90ZXN0X2VudHJ5X3BvaW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF9lbnRyeV9wb2ludHMucHkKaW5kZXggOGY3MzQ3NzhmYWE4YzhiNDgzMTk3YWY0ODk0
MTFmNmEyODc1OTE1YS4uOTVlYmM0MTViMTViM2QwNTM4N2NhMmZhYWYwZjA4OWQ5MWZjNTkxZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2VudHJ5X3BvaW50cy5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfZW50cnlfcG9pbnRzLnB5CkBAIC0xLDE0ICsxLDEy
IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCi1pbXBvcnQgcGtnX3Jlc291cmNlcworIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9u
CiAKLWltcG9ydCBweXRlc3QKLQotCi1AcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVudHJ5cG9p
bnQiLCBbInB5LnRlc3QiLCAicHl0ZXN0Il0pCi1kZWYgdGVzdF9lbnRyeV9wb2ludF9leGlzdChl
bnRyeXBvaW50KToKLSAgICBhc3NlcnQgZW50cnlwb2ludCBpbiBwa2dfcmVzb3VyY2VzLmdldF9l
bnRyeV9tYXAoInB5dGVzdCIpWyJjb25zb2xlX3NjcmlwdHMiXQorZnJvbSBfcHl0ZXN0LmNvbXBh
dCBpbXBvcnQgaW1wb3J0bGliX21ldGFkYXRhCiAKIAogZGVmIHRlc3RfcHl0ZXN0X2VudHJ5X3Bv
aW50c19hcmVfaWRlbnRpY2FsKCk6Ci0gICAgZW50cnlNYXAgPSBwa2dfcmVzb3VyY2VzLmdldF9l
bnRyeV9tYXAoInB5dGVzdCIpWyJjb25zb2xlX3NjcmlwdHMiXQotICAgIGFzc2VydCBlbnRyeU1h
cFsicHl0ZXN0Il0ubW9kdWxlX25hbWUgPT0gZW50cnlNYXBbInB5LnRlc3QiXS5tb2R1bGVfbmFt
ZQorICAgIGRpc3QgPSBpbXBvcnRsaWJfbWV0YWRhdGEuZGlzdHJpYnV0aW9uKCJweXRlc3QiKQor
ICAgIGVudHJ5X21hcCA9IHtlcC5uYW1lOiBlcCBmb3IgZXAgaW4gZGlzdC5lbnRyeV9wb2ludHN9
CisgICAgYXNzZXJ0IGVudHJ5X21hcFsicHl0ZXN0Il0udmFsdWUgPT0gZW50cnlfbWFwWyJweS50
ZXN0Il0udmFsdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9oZWxwY29u
ZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2hlbHBjb25maWcucHkKaW5kZXggYjU0
MjQyMzViMTY4N2UzZGVhZTE0MGUyNmYwMmZiOGY2ZmM4YzFmYS4uNzU4ODhmZTE0Y2I3NmYyMjI1
ZjI1N2Q2ODczZmVmYjUyZDA3MTE1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X2hlbHBjb25maWcucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2hlbHBjb25m
aWcucHkKQEAgLTEsMTMgKzEsMTkgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWZyb20gX3B5dGVzdC5tYWluIGltcG9y
dCBFWElUX05PVEVTVFNDT0xMRUNURUQKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBk
aXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQg
cHl0ZXN0Citmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVECiAK
IAogZGVmIHRlc3RfdmVyc2lvbih0ZXN0ZGlyLCBweXRlc3Rjb25maWcpOgogICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItLXZlcnNpb24iKQogICAgIGFzc2VydCByZXN1bHQucmV0ID09
IDAKICAgICAjIHAgPSBweS5wYXRoLmxvY2FsKHB5Ll9fZmlsZV9fKS5kaXJwYXRoKCkKLSAgICBy
ZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWyIqcHl0ZXN0KiVzKmltcG9ydGVkIGZyb20qIiAl
IChweXRlc3QuX192ZXJzaW9uX18sKV0pCisgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVz
KAorICAgICAgICBbIipweXRlc3Qqe30qaW1wb3J0ZWQgZnJvbSoiLmZvcm1hdChweXRlc3QuX192
ZXJzaW9uX18pXQorICAgICkKICAgICBpZiBweXRlc3Rjb25maWcucGx1Z2lubWFuYWdlci5saXN0
X3BsdWdpbl9kaXN0aW5mbygpOgogICAgICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMo
WyIqc2V0dXB0b29scyByZWdpc3RlcmVkIHBsdWdpbnM6IiwgIiphdCoiXSkKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2p1bml0eG1sLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X2p1bml0eG1sLnB5CmluZGV4IGQwYmU1ZjI2NzU5NjM4MDJiNTUzOTZjZGJmNjVk
ZTZmYTQ5MzJiYjcuLmJhNTI5Y2YzMzFkNmYxNGE3YjVkZmQwZmRmNDFjZDU1MWQwMTRhMzYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9qdW5pdHhtbC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfanVuaXR4bWwucHkKQEAgLTEsMTEgKzEsMTkgQEAKICMgLSot
IGNvZGluZzogdXRmLTggLSotCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQor
aW1wb3J0IHN5cworZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKIGZyb20geG1sLmRvbSBp
bXBvcnQgbWluaWRvbQorCiBpbXBvcnQgcHkKLWltcG9ydCBzeXMKLWltcG9ydCBvcwotZnJvbSBf
cHl0ZXN0Lmp1bml0eG1sIGltcG9ydCBMb2dYTUwKKwogaW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0
ZXN0Lmp1bml0eG1sIGltcG9ydCBMb2dYTUwKK2Zyb20gX3B5dGVzdC5yZXBvcnRzIGltcG9ydCBC
YXNlUmVwb3J0CiAKIAogZGVmIHJ1bmFuZHBhcnNlKHRlc3RkaXIsICphcmdzKToKQEAgLTI5LDcg
KzM3LDYgQEAgZGVmIGFzc2VydF9hdHRyKG5vZGUsICoqa3dhcmdzKToKIAogCiBjbGFzcyBEb21O
b2RlKG9iamVjdCk6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgZG9tKToKICAgICAgICAgc2Vs
Zi5fX25vZGUgPSBkb20KIApAQCAtNDIsNiArNDksMTYgQEAgY2xhc3MgRG9tTm9kZShvYmplY3Qp
OgogICAgIGRlZiBfYnlfdGFnKHNlbGYsIHRhZyk6CiAgICAgICAgIHJldHVybiBzZWxmLl9fbm9k
ZS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWcpCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY2hp
bGRyZW4oc2VsZik6CisgICAgICAgIHJldHVybiBbdHlwZShzZWxmKSh4KSBmb3IgeCBpbiBzZWxm
Ll9fbm9kZS5jaGlsZE5vZGVzXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGdldF91bmlxdWVf
Y2hpbGQoc2VsZik6CisgICAgICAgIGNoaWxkcmVuID0gc2VsZi5jaGlsZHJlbgorICAgICAgICBh
c3NlcnQgbGVuKGNoaWxkcmVuKSA9PSAxCisgICAgICAgIHJldHVybiBjaGlsZHJlblswXQorCiAg
ICAgZGVmIGZpbmRfbnRoX2J5X3RhZyhzZWxmLCB0YWcsIG4pOgogICAgICAgICBpdGVtcyA9IHNl
bGYuX2J5X3RhZyh0YWcpCiAgICAgICAgIHRyeToKQEAgLTc2LDEyICs5MywxMSBAQCBjbGFzcyBE
b21Ob2RlKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9fbm9kZS50YWdOYW1lCiAKICAg
ICBAcHJvcGVydHkKLSAgICBkZWYgbmV4dF9zaWVibGluZyhzZWxmKToKKyAgICBkZWYgbmV4dF9z
aWJsaW5nKHNlbGYpOgogICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9fbm9kZS5uZXh0
U2libGluZykKIAogCiBjbGFzcyBUZXN0UHl0aG9uKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9z
dW1taW5nX3NpbXBsZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAogICAgICAgICAgICAgIiIiCkBAIC0xMDMsNyArMTE5LDcgQEAgY2xhc3MgVGVzdFB5dGhvbihv
YmplY3QpOgogICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCiAgICAg
ICAgIGFzc2VydCByZXN1bHQucmV0CiAgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90
YWcoInRlc3RzdWl0ZSIpCi0gICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIobmFtZT0icHl0ZXN0Iiwg
ZXJyb3JzPTAsIGZhaWx1cmVzPTEsIHNraXBzPTIsIHRlc3RzPTUpCisgICAgICAgIG5vZGUuYXNz
ZXJ0X2F0dHIobmFtZT0icHl0ZXN0IiwgZXJyb3JzPTAsIGZhaWx1cmVzPTEsIHNraXBwZWQ9Miwg
dGVzdHM9NSkKIAogICAgIGRlZiB0ZXN0X3N1bW1pbmdfc2ltcGxlX3dpdGhfZXJyb3JzKHNlbGYs
IHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBAIC0xMjksNyArMTQ1LDMx
IEBAIGNsYXNzIFRlc3RQeXRob24ob2JqZWN0KToKICAgICAgICAgcmVzdWx0LCBkb20gPSBydW5h
bmRwYXJzZSh0ZXN0ZGlyKQogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldAogICAgICAgICBub2Rl
ID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQotICAgICAgICBub2RlLmFzc2Vy
dF9hdHRyKG5hbWU9InB5dGVzdCIsIGVycm9ycz0xLCBmYWlsdXJlcz0yLCBza2lwcz0xLCB0ZXN0
cz01KQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKG5hbWU9InB5dGVzdCIsIGVycm9ycz0xLCBm
YWlsdXJlcz0yLCBza2lwcGVkPTEsIHRlc3RzPTUpCisKKyAgICBkZWYgdGVzdF9ob3N0bmFtZV9p
bl94bWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOgorICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5h
bmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0
ZXN0c3VpdGUiKQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKGhvc3RuYW1lPXBsYXRmb3JtLm5v
ZGUoKSkKKworICAgIGRlZiB0ZXN0X3RpbWVzdGFtcF9pbl94bWwoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
ZGVmIHRlc3RfcGFzcygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAg
ICAgICkKKyAgICAgICAgc3RhcnRfdGltZSA9IGRhdGV0aW1lLm5vdygpCisgICAgICAgIHJlc3Vs
dCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2Zp
cnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAgdGltZXN0YW1wID0gZGF0ZXRpbWUuc3Ry
cHRpbWUobm9kZVsidGltZXN0YW1wIl0sICIlWS0lbS0lZFQlSDolTTolUy4lZiIpCisgICAgICAg
IGFzc2VydCBzdGFydF90aW1lIDw9IHRpbWVzdGFtcCA8IGRhdGV0aW1lLm5vdygpCiAKICAgICBk
ZWYgdGVzdF90aW1pbmdfZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKQEAgLTE0OSw2ICsxODksMzcgQEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3Qp
OgogICAgICAgICB2YWwgPSB0bm9kZVsidGltZSJdCiAgICAgICAgIGFzc2VydCByb3VuZChmbG9h
dCh2YWwpLCAyKSA+PSAwLjAzCiAKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImR1cmF0
aW9uX3JlcG9ydCIsIFsiY2FsbCIsICJ0b3RhbCJdKQorICAgIGRlZiB0ZXN0X2p1bml0X2R1cmF0
aW9uX3JlcG9ydChzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCwgZHVyYXRpb25fcmVwb3J0KToK
KworICAgICAgICAjIG1vY2sgTG9nWE1MLm5vZGVfcmVwb3J0ZXIgc28gaXQgYWx3YXlzIHNldHMg
YSBrbm93biBkdXJhdGlvbiB0byBlYWNoIHRlc3QgcmVwb3J0IG9iamVjdAorICAgICAgICBvcmln
aW5hbF9ub2RlX3JlcG9ydGVyID0gTG9nWE1MLm5vZGVfcmVwb3J0ZXIKKworICAgICAgICBkZWYg
bm9kZV9yZXBvcnRlcl93cmFwcGVyKHMsIHJlcG9ydCk6CisgICAgICAgICAgICByZXBvcnQuZHVy
YXRpb24gPSAxLjAKKyAgICAgICAgICAgIHJlcG9ydGVyID0gb3JpZ2luYWxfbm9kZV9yZXBvcnRl
cihzLCByZXBvcnQpCisgICAgICAgICAgICByZXR1cm4gcmVwb3J0ZXIKKworICAgICAgICBtb25r
ZXlwYXRjaC5zZXRhdHRyKExvZ1hNTCwgIm5vZGVfcmVwb3J0ZXIiLCBub2RlX3JlcG9ydGVyX3dy
YXBwZXIpCisKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisg
ICAgICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UoCisgICAg
ICAgICAgICB0ZXN0ZGlyLCAiLW8iLCAianVuaXRfZHVyYXRpb25fcmVwb3J0PXt9Ii5mb3JtYXQo
ZHVyYXRpb25fcmVwb3J0KQorICAgICAgICApCisgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJz
dF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5
X3RhZygidGVzdGNhc2UiKQorICAgICAgICB2YWwgPSBmbG9hdCh0bm9kZVsidGltZSJdKQorICAg
ICAgICBpZiBkdXJhdGlvbl9yZXBvcnQgPT0gInRvdGFsIjoKKyAgICAgICAgICAgIGFzc2VydCB2
YWwgPT0gMy4wCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgZHVyYXRpb25fcmVw
b3J0ID09ICJjYWxsIgorICAgICAgICAgICAgYXNzZXJ0IHZhbCA9PSAxLjAKKwogICAgIGRlZiB0
ZXN0X3NldHVwX2Vycm9yKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCiAgICAgICAgICAgICAiIiIKQEAgLTE2NiwxMiArMjM3LDcgQEAgY2xhc3MgVGVzdFB5dGhv
bihvYmplY3QpOgogICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3Vp
dGUiKQogICAgICAgICBub2RlLmFzc2VydF9hdHRyKGVycm9ycz0xLCB0ZXN0cz0xKQogICAgICAg
ICB0bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKLSAgICAgICAgdG5v
ZGUuYXNzZXJ0X2F0dHIoCi0gICAgICAgICAgICBmaWxlPSJ0ZXN0X3NldHVwX2Vycm9yLnB5IiwK
LSAgICAgICAgICAgIGxpbmU9IjUiLAotICAgICAgICAgICAgY2xhc3NuYW1lPSJ0ZXN0X3NldHVw
X2Vycm9yIiwKLSAgICAgICAgICAgIG5hbWU9InRlc3RfZnVuY3Rpb24iLAotICAgICAgICApCisg
ICAgICAgIHRub2RlLmFzc2VydF9hdHRyKGNsYXNzbmFtZT0idGVzdF9zZXR1cF9lcnJvciIsIG5h
bWU9InRlc3RfZnVuY3Rpb24iKQogICAgICAgICBmbm9kZSA9IHRub2RlLmZpbmRfZmlyc3RfYnlf
dGFnKCJlcnJvciIpCiAgICAgICAgIGZub2RlLmFzc2VydF9hdHRyKG1lc3NhZ2U9InRlc3Qgc2V0
dXAgZmFpbHVyZSIpCiAgICAgICAgIGFzc2VydCAiVmFsdWVFcnJvciIgaW4gZm5vZGUudG94bWwo
KQpAQCAtMTkzLDEyICsyNTksNyBAQCBjbGFzcyBUZXN0UHl0aG9uKG9iamVjdCk6CiAgICAgICAg
IGFzc2VydCByZXN1bHQucmV0CiAgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWco
InRlc3RzdWl0ZSIpCiAgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVz
dGNhc2UiKQotICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKLSAgICAgICAgICAgIGZpbGU9InRl
c3RfdGVhcmRvd25fZXJyb3IucHkiLAotICAgICAgICAgICAgbGluZT0iNiIsCi0gICAgICAgICAg
ICBjbGFzc25hbWU9InRlc3RfdGVhcmRvd25fZXJyb3IiLAotICAgICAgICAgICAgbmFtZT0idGVz
dF9mdW5jdGlvbiIsCi0gICAgICAgICkKKyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIoY2xhc3Nu
YW1lPSJ0ZXN0X3RlYXJkb3duX2Vycm9yIiwgbmFtZT0idGVzdF9mdW5jdGlvbiIpCiAgICAgICAg
IGZub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoImVycm9yIikKICAgICAgICAgZm5vZGUu
YXNzZXJ0X2F0dHIobWVzc2FnZT0idGVzdCB0ZWFyZG93biBmYWlsdXJlIikKICAgICAgICAgYXNz
ZXJ0ICJWYWx1ZUVycm9yIiBpbiBmbm9kZS50b3htbCgpCkBAIC0yMzksMTQgKzMwMCw5IEBAIGNs
YXNzIFRlc3RQeXRob24ob2JqZWN0KToKICAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJz
ZSh0ZXN0ZGlyKQogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCiAgICAgICAgIG5vZGUg
PSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCi0gICAgICAgIG5vZGUuYXNzZXJ0
X2F0dHIoc2tpcHM9MSkKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcGVkPTEpCiAgICAg
ICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQotICAgICAgICB0
bm9kZS5hc3NlcnRfYXR0cigKLSAgICAgICAgICAgIGZpbGU9InRlc3Rfc2tpcF9jb250YWluc19u
YW1lX3JlYXNvbi5weSIsCi0gICAgICAgICAgICBsaW5lPSIxIiwKLSAgICAgICAgICAgIGNsYXNz
bmFtZT0idGVzdF9za2lwX2NvbnRhaW5zX25hbWVfcmVhc29uIiwKLSAgICAgICAgICAgIG5hbWU9
InRlc3Rfc2tpcCIsCi0gICAgICAgICkKKyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIoY2xhc3Nu
YW1lPSJ0ZXN0X3NraXBfY29udGFpbnNfbmFtZV9yZWFzb24iLCBuYW1lPSJ0ZXN0X3NraXAiKQog
ICAgICAgICBzbm9kZSA9IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJza2lwcGVkIikKICAgICAg
ICAgc25vZGUuYXNzZXJ0X2F0dHIodHlwZT0icHl0ZXN0LnNraXAiLCBtZXNzYWdlPSJoZWxsbzIz
IikKIApAQCAtMjYyLDEzICszMTgsMTAgQEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAg
ICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCiAgICAgICAgIGFzc2VydCBy
ZXN1bHQucmV0ID09IDAKICAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVz
dHN1aXRlIikKLSAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcz0xKQorICAgICAgICBub2Rl
LmFzc2VydF9hdHRyKHNraXBwZWQ9MSkKICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3Rf
YnlfdGFnKCJ0ZXN0Y2FzZSIpCiAgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAotICAgICAgICAg
ICAgZmlsZT0idGVzdF9tYXJrX3NraXBfY29udGFpbnNfbmFtZV9yZWFzb24ucHkiLAotICAgICAg
ICAgICAgbGluZT0iMSIsCi0gICAgICAgICAgICBjbGFzc25hbWU9InRlc3RfbWFya19za2lwX2Nv
bnRhaW5zX25hbWVfcmVhc29uIiwKLSAgICAgICAgICAgIG5hbWU9InRlc3Rfc2tpcCIsCisgICAg
ICAgICAgICBjbGFzc25hbWU9InRlc3RfbWFya19za2lwX2NvbnRhaW5zX25hbWVfcmVhc29uIiwg
bmFtZT0idGVzdF9za2lwIgogICAgICAgICApCiAgICAgICAgIHNub2RlID0gdG5vZGUuZmluZF9m
aXJzdF9ieV90YWcoInNraXBwZWQiKQogICAgICAgICBzbm9kZS5hc3NlcnRfYXR0cih0eXBlPSJw
eXRlc3Quc2tpcCIsIG1lc3NhZ2U9ImhlbGxvMjQiKQpAQCAtMjg2LDEzICszMzksMTAgQEAgY2xh
c3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNl
KHRlc3RkaXIpCiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKICAgICAgICAgbm9kZSA9
IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKLSAgICAgICAgbm9kZS5hc3NlcnRf
YXR0cihza2lwcz0xKQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKHNraXBwZWQ9MSkKICAgICAg
ICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCiAgICAgICAgIHRu
b2RlLmFzc2VydF9hdHRyKAotICAgICAgICAgICAgZmlsZT0idGVzdF9tYXJrX3NraXBpZl9jb250
YWluc19uYW1lX3JlYXNvbi5weSIsCi0gICAgICAgICAgICBsaW5lPSIyIiwKLSAgICAgICAgICAg
IGNsYXNzbmFtZT0idGVzdF9tYXJrX3NraXBpZl9jb250YWluc19uYW1lX3JlYXNvbiIsCi0gICAg
ICAgICAgICBuYW1lPSJ0ZXN0X3NraXAiLAorICAgICAgICAgICAgY2xhc3NuYW1lPSJ0ZXN0X21h
cmtfc2tpcGlmX2NvbnRhaW5zX25hbWVfcmVhc29uIiwgbmFtZT0idGVzdF9za2lwIgogICAgICAg
ICApCiAgICAgICAgIHNub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoInNraXBwZWQiKQog
ICAgICAgICBzbm9kZS5hc3NlcnRfYXR0cih0eXBlPSJweXRlc3Quc2tpcCIsIG1lc3NhZ2U9Imhl
bGxvMjUiKQpAQCAtMzI1LDEwICszNzUsNyBAQCBjbGFzcyBUZXN0UHl0aG9uKG9iamVjdCk6CiAg
ICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoZmFpbHVyZXM9MSkKICAgICAgICAgdG5vZGUgPSBub2Rl
LmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCiAgICAgICAgIHRub2RlLmFzc2VydF9hdHRy
KAotICAgICAgICAgICAgZmlsZT0idGVzdF9jbGFzc25hbWVfaW5zdGFuY2UucHkiLAotICAgICAg
ICAgICAgbGluZT0iMSIsCi0gICAgICAgICAgICBjbGFzc25hbWU9InRlc3RfY2xhc3NuYW1lX2lu
c3RhbmNlLlRlc3RDbGFzcyIsCi0gICAgICAgICAgICBuYW1lPSJ0ZXN0X21ldGhvZCIsCisgICAg
ICAgICAgICBjbGFzc25hbWU9InRlc3RfY2xhc3NuYW1lX2luc3RhbmNlLlRlc3RDbGFzcyIsIG5h
bWU9InRlc3RfbWV0aG9kIgogICAgICAgICApCiAKICAgICBkZWYgdGVzdF9jbGFzc25hbWVfbmVz
dGVkX2RpcihzZWxmLCB0ZXN0ZGlyKToKQEAgLTMzOSwxMiArMzg2LDcgQEAgY2xhc3MgVGVzdFB5
dGhvbihvYmplY3QpOgogICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0
c3VpdGUiKQogICAgICAgICBub2RlLmFzc2VydF9hdHRyKGZhaWx1cmVzPTEpCiAgICAgICAgIHRu
b2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQotICAgICAgICB0bm9kZS5h
c3NlcnRfYXR0cigKLSAgICAgICAgICAgIGZpbGU9b3MucGF0aC5qb2luKCJzdWIiLCAidGVzdF9o
ZWxsby5weSIpLAotICAgICAgICAgICAgbGluZT0iMCIsCi0gICAgICAgICAgICBjbGFzc25hbWU9
InN1Yi50ZXN0X2hlbGxvIiwKLSAgICAgICAgICAgIG5hbWU9InRlc3RfZnVuYyIsCi0gICAgICAg
ICkKKyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIoY2xhc3NuYW1lPSJzdWIudGVzdF9oZWxsbyIs
IG5hbWU9InRlc3RfZnVuYyIpCiAKICAgICBkZWYgdGVzdF9pbnRlcm5hbF9lcnJvcihzZWxmLCB0
ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoImRlZiBweXRlc3RfcnVudGVz
dF9wcm90b2NvbCgpOiAwIC8gMCIpCkBAIC0zNjcsNyArNDA5LDcgQEAgY2xhc3MgVGVzdFB5dGhv
bihvYmplY3QpOgogICAgICAgICAgICAgaW1wb3J0IHN5cwogCiAgICAgICAgICAgICBkZWYgdGVz
dF9mYWlsKCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJoZWxsby1zdGRvdXQiKQorICAgICAg
ICAgICAgICAgIHByaW50KCJoZWxsby1zdGRvdXQiKQogICAgICAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoImhlbGxvLXN0ZGVyclxcbiIpCiAgICAgICAgICAgICAgICAgbG9nZ2luZy5pbmZv
KCdpbmZvIG1zZycpCiAgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCd3YXJuaW5nIG1z
ZycpCkBAIC0zODAsMjAgKzQyMiwxNSBAQCBjbGFzcyBUZXN0UHl0aG9uKG9iamVjdCk6CiAgICAg
ICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCiAgICAgICAgIG5v
ZGUuYXNzZXJ0X2F0dHIoZmFpbHVyZXM9MSwgdGVzdHM9MSkKICAgICAgICAgdG5vZGUgPSBub2Rl
LmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCi0gICAgICAgIHRub2RlLmFzc2VydF9hdHRy
KAotICAgICAgICAgICAgZmlsZT0idGVzdF9mYWlsdXJlX2Z1bmN0aW9uLnB5IiwKLSAgICAgICAg
ICAgIGxpbmU9IjMiLAotICAgICAgICAgICAgY2xhc3NuYW1lPSJ0ZXN0X2ZhaWx1cmVfZnVuY3Rp
b24iLAotICAgICAgICAgICAgbmFtZT0idGVzdF9mYWlsIiwKLSAgICAgICAgKQorICAgICAgICB0
bm9kZS5hc3NlcnRfYXR0cihjbGFzc25hbWU9InRlc3RfZmFpbHVyZV9mdW5jdGlvbiIsIG5hbWU9
InRlc3RfZmFpbCIpCiAgICAgICAgIGZub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoImZh
aWx1cmUiKQogICAgICAgICBmbm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSJWYWx1ZUVycm9yOiA0
MiIpCiAgICAgICAgIGFzc2VydCAiVmFsdWVFcnJvciIgaW4gZm5vZGUudG94bWwoKQotICAgICAg
ICBzeXN0ZW1vdXQgPSBmbm9kZS5uZXh0X3NpZWJsaW5nCisgICAgICAgIHN5c3RlbW91dCA9IGZu
b2RlLm5leHRfc2libGluZwogICAgICAgICBhc3NlcnQgc3lzdGVtb3V0LnRhZyA9PSAic3lzdGVt
LW91dCIKICAgICAgICAgYXNzZXJ0ICJoZWxsby1zdGRvdXQiIGluIHN5c3RlbW91dC50b3htbCgp
CiAgICAgICAgIGFzc2VydCAiaW5mbyBtc2ciIG5vdCBpbiBzeXN0ZW1vdXQudG94bWwoKQotICAg
ICAgICBzeXN0ZW1lcnIgPSBzeXN0ZW1vdXQubmV4dF9zaWVibGluZworICAgICAgICBzeXN0ZW1l
cnIgPSBzeXN0ZW1vdXQubmV4dF9zaWJsaW5nCiAgICAgICAgIGFzc2VydCBzeXN0ZW1lcnIudGFn
ID09ICJzeXN0ZW0tZXJyIgogICAgICAgICBhc3NlcnQgImhlbGxvLXN0ZGVyciIgaW4gc3lzdGVt
ZXJyLnRveG1sKCkKICAgICAgICAgYXNzZXJ0ICJpbmZvIG1zZyIgbm90IGluIHN5c3RlbWVyci50
b3htbCgpCkBAIC00NDIsMTAgKzQ3OSw3IEBAIGNsYXNzIFRlc3RQeXRob24ob2JqZWN0KToKIAog
ICAgICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfbnRoX2J5X3RhZygidGVzdGNhc2UiLCBpbmRl
eCkKICAgICAgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAotICAgICAgICAgICAgICAgIGZpbGU9
InRlc3RfZmFpbHVyZV9lc2NhcGUucHkiLAotICAgICAgICAgICAgICAgIGxpbmU9IjEiLAotICAg
ICAgICAgICAgICAgIGNsYXNzbmFtZT0idGVzdF9mYWlsdXJlX2VzY2FwZSIsCi0gICAgICAgICAg
ICAgICAgbmFtZT0idGVzdF9mdW5jWyVzXSIgJSBjaGFyLAorICAgICAgICAgICAgICAgIGNsYXNz
bmFtZT0idGVzdF9mYWlsdXJlX2VzY2FwZSIsIG5hbWU9InRlc3RfZnVuY1slc10iICUgY2hhcgog
ICAgICAgICAgICAgKQogICAgICAgICAgICAgc3lzb3V0ID0gdG5vZGUuZmluZF9maXJzdF9ieV90
YWcoInN5c3RlbS1vdXQiKQogICAgICAgICAgICAgdGV4dCA9IHN5c291dC50ZXh0CkBAIC00NjYs
MTggKzUwMCwxMCBAQCBjbGFzcyBUZXN0UHl0aG9uKG9iamVjdCk6CiAgICAgICAgIG5vZGUgPSBk
b20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCiAgICAgICAgIG5vZGUuYXNzZXJ0X2F0
dHIoZmFpbHVyZXM9MSwgdGVzdHM9MikKICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3Rf
YnlfdGFnKCJ0ZXN0Y2FzZSIpCi0gICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAotICAgICAgICAg
ICAgZmlsZT0idGVzdF9qdW5pdF9wcmVmaXhpbmcucHkiLAotICAgICAgICAgICAgbGluZT0iMCIs
Ci0gICAgICAgICAgICBjbGFzc25hbWU9Inh5ei50ZXN0X2p1bml0X3ByZWZpeGluZyIsCi0gICAg
ICAgICAgICBuYW1lPSJ0ZXN0X2Z1bmMiLAotICAgICAgICApCisgICAgICAgIHRub2RlLmFzc2Vy
dF9hdHRyKGNsYXNzbmFtZT0ieHl6LnRlc3RfanVuaXRfcHJlZml4aW5nIiwgbmFtZT0idGVzdF9m
dW5jIikKICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfbnRoX2J5X3RhZygidGVzdGNhc2UiLCAx
KQogICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKLSAgICAgICAgICAgIGZpbGU9InRlc3RfanVu
aXRfcHJlZml4aW5nLnB5IiwKLSAgICAgICAgICAgIGxpbmU9IjMiLAotICAgICAgICAgICAgY2xh
c3NuYW1lPSJ4eXoudGVzdF9qdW5pdF9wcmVmaXhpbmcuIiAiVGVzdEhlbGxvIiwKLSAgICAgICAg
ICAgIG5hbWU9InRlc3RfaGVsbG8iLAorICAgICAgICAgICAgY2xhc3NuYW1lPSJ4eXoudGVzdF9q
dW5pdF9wcmVmaXhpbmcuVGVzdEhlbGxvIiwgbmFtZT0idGVzdF9oZWxsbyIKICAgICAgICAgKQog
CiAgICAgZGVmIHRlc3RfeGZhaWx1cmVfZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CkBAIC00OTEs
MTggKzUxNywzMSBAQCBjbGFzcyBUZXN0UHl0aG9uKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCwg
ZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKICAgICAgICAgYXNzZXJ0IG5vdCByZXN1bHQucmV0
CiAgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCi0gICAg
ICAgIG5vZGUuYXNzZXJ0X2F0dHIoc2tpcHM9MSwgdGVzdHM9MSkKKyAgICAgICAgbm9kZS5hc3Nl
cnRfYXR0cihza2lwcGVkPTEsIHRlc3RzPTEpCiAgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2Zp
cnN0X2J5X3RhZygidGVzdGNhc2UiKQotICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKLSAgICAg
ICAgICAgIGZpbGU9InRlc3RfeGZhaWx1cmVfZnVuY3Rpb24ucHkiLAotICAgICAgICAgICAgbGlu
ZT0iMSIsCi0gICAgICAgICAgICBjbGFzc25hbWU9InRlc3RfeGZhaWx1cmVfZnVuY3Rpb24iLAot
ICAgICAgICAgICAgbmFtZT0idGVzdF94ZmFpbCIsCi0gICAgICAgICkKKyAgICAgICAgdG5vZGUu
YXNzZXJ0X2F0dHIoY2xhc3NuYW1lPSJ0ZXN0X3hmYWlsdXJlX2Z1bmN0aW9uIiwgbmFtZT0idGVz
dF94ZmFpbCIpCiAgICAgICAgIGZub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoInNraXBw
ZWQiKQotICAgICAgICBmbm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSJleHBlY3RlZCB0ZXN0IGZh
aWx1cmUiKQorICAgICAgICBmbm9kZS5hc3NlcnRfYXR0cih0eXBlPSJweXRlc3QueGZhaWwiLCBt
ZXNzYWdlPSI0MiIpCiAgICAgICAgICMgYXNzZXJ0ICJWYWx1ZUVycm9yIiBpbiBmbm9kZS50b3ht
bCgpCiAKKyAgICBkZWYgdGVzdF94ZmFpbHVyZV9tYXJrZXIoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0iNDIiKQor
ICAgICAgICAgICAgZGVmIHRlc3RfeGZhaWwoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgRmFs
c2UKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRw
YXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgbm90IHJlc3VsdC5yZXQKKyAgICAgICAgbm9k
ZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAgbm9kZS5hc3Nl
cnRfYXR0cihza2lwcGVkPTEsIHRlc3RzPTEpCisgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2Zp
cnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cihjbGFzc25h
bWU9InRlc3RfeGZhaWx1cmVfbWFya2VyIiwgbmFtZT0idGVzdF94ZmFpbCIpCisgICAgICAgIGZu
b2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoInNraXBwZWQiKQorICAgICAgICBmbm9kZS5h
c3NlcnRfYXR0cih0eXBlPSJweXRlc3QueGZhaWwiLCBtZXNzYWdlPSI0MiIpCisKICAgICBkZWYg
dGVzdF94ZmFpbF9jYXB0dXJlc19vdXRwdXRfb25jZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC01MzQsMTQgKzU3Myw5IEBA
IGNsYXNzIFRlc3RQeXRob24ob2JqZWN0KToKICAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRw
YXJzZSh0ZXN0ZGlyKQogICAgICAgICAjIGFzc2VydCByZXN1bHQucmV0CiAgICAgICAgIG5vZGUg
PSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCi0gICAgICAgIG5vZGUuYXNzZXJ0
X2F0dHIoc2tpcHM9MCwgdGVzdHM9MSkKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcGVk
PTAsIHRlc3RzPTEpCiAgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVz
dGNhc2UiKQotICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKLSAgICAgICAgICAgIGZpbGU9InRl
c3RfeGZhaWx1cmVfeHBhc3MucHkiLAotICAgICAgICAgICAgbGluZT0iMSIsCi0gICAgICAgICAg
ICBjbGFzc25hbWU9InRlc3RfeGZhaWx1cmVfeHBhc3MiLAotICAgICAgICAgICAgbmFtZT0idGVz
dF94cGFzcyIsCi0gICAgICAgICkKKyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIoY2xhc3NuYW1l
PSJ0ZXN0X3hmYWlsdXJlX3hwYXNzIiwgbmFtZT0idGVzdF94cGFzcyIpCiAKICAgICBkZWYgdGVz
dF94ZmFpbHVyZV94cGFzc19zdHJpY3Qoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKQEAgLTU1NSwxNCArNTg5LDkgQEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3Qp
OgogICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCiAgICAgICAgICMg
YXNzZXJ0IHJlc3VsdC5yZXQKICAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygi
dGVzdHN1aXRlIikKLSAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcz0wLCB0ZXN0cz0xKQor
ICAgICAgICBub2RlLmFzc2VydF9hdHRyKHNraXBwZWQ9MCwgdGVzdHM9MSkKICAgICAgICAgdG5v
ZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCi0gICAgICAgIHRub2RlLmFz
c2VydF9hdHRyKAotICAgICAgICAgICAgZmlsZT0idGVzdF94ZmFpbHVyZV94cGFzc19zdHJpY3Qu
cHkiLAotICAgICAgICAgICAgbGluZT0iMSIsCi0gICAgICAgICAgICBjbGFzc25hbWU9InRlc3Rf
eGZhaWx1cmVfeHBhc3Nfc3RyaWN0IiwKLSAgICAgICAgICAgIG5hbWU9InRlc3RfeHBhc3MiLAot
ICAgICAgICApCisgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKGNsYXNzbmFtZT0idGVzdF94ZmFp
bHVyZV94cGFzc19zdHJpY3QiLCBuYW1lPSJ0ZXN0X3hwYXNzIikKICAgICAgICAgZm5vZGUgPSB0
bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygiZmFpbHVyZSIpCiAgICAgICAgIGZub2RlLmFzc2VydF9h
dHRyKG1lc3NhZ2U9IltYUEFTUyhzdHJpY3QpXSBUaGlzIG5lZWRzIHRvIGZhaWwhIikKIApAQCAt
NTczLDggKzYwMiw2IEBAIGNsYXNzIFRlc3RQeXRob24ob2JqZWN0KToKICAgICAgICAgbm9kZSA9
IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKICAgICAgICAgbm9kZS5hc3NlcnRf
YXR0cihlcnJvcnM9MSwgdGVzdHM9MSkKICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3Rf
YnlfdGFnKCJ0ZXN0Y2FzZSIpCi0gICAgICAgIHRub2RlLmFzc2VydF9hdHRyKGZpbGU9InRlc3Rf
Y29sbGVjdF9lcnJvci5weSIsIG5hbWU9InRlc3RfY29sbGVjdF9lcnJvciIpCi0gICAgICAgIGFz
c2VydCB0bm9kZVsibGluZSJdIGlzIE5vbmUKICAgICAgICAgZm5vZGUgPSB0bm9kZS5maW5kX2Zp
cnN0X2J5X3RhZygiZXJyb3IiKQogICAgICAgICBmbm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSJj
b2xsZWN0aW9uIGZhaWx1cmUiKQogICAgICAgICBhc3NlcnQgIlN5bnRheEVycm9yIiBpbiBmbm9k
ZS50b3htbCgpCkBAIC01ODUsNyArNjEyLDcgQEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3QpOgog
ICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICAjIGNvZGluZzogbGF0aW4xCiAgICAgICAgICAg
ICBkZWYgdGVzdF9oZWxsbygpOgotICAgICAgICAgICAgICAgIHByaW50ICglcikKKyAgICAgICAg
ICAgICAgICBwcmludCglcikKICAgICAgICAgICAgICAgICBhc3NlcnQgMAogICAgICAgICAiIiIK
ICAgICAgICAgICAgICUgdmFsdWUKQEAgLTcxMyw3ICs3NDAsNiBAQCBkZWYgdGVzdF9kb250X2Nv
bmZpZ3VyZV9vbl9zbGF2ZXModG1wZGlyKToKICAgICBnb3R0ZW4gPSBbXQogCiAgICAgY2xhc3Mg
RmFrZUNvbmZpZyhvYmplY3QpOgotCiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAg
ICAgICAgIHNlbGYucGx1Z2lubWFuYWdlciA9IHNlbGYKICAgICAgICAgICAgIHNlbGYub3B0aW9u
ID0gc2VsZgpAQCAtNzM3LDcgKzc2Myw2IEBAIGRlZiB0ZXN0X2RvbnRfY29uZmlndXJlX29uX3Ns
YXZlcyh0bXBkaXIpOgogCiAKIGNsYXNzIFRlc3ROb25QeXRob24ob2JqZWN0KToKLQogICAgIGRl
ZiB0ZXN0X3N1bW1pbmdfc2ltcGxlKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1h
a2Vjb25mdGVzdCgKICAgICAgICAgICAgICIiIgpAQCAtNzU5LDcgKzc4NCw3IEBAIGNsYXNzIFRl
c3ROb25QeXRob24ob2JqZWN0KToKICAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0
ZXN0ZGlyKQogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldAogICAgICAgICBub2RlID0gZG9tLmZp
bmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQotICAgICAgICBub2RlLmFzc2VydF9hdHRyKGVy
cm9ycz0wLCBmYWlsdXJlcz0xLCBza2lwcz0wLCB0ZXN0cz0xKQorICAgICAgICBub2RlLmFzc2Vy
dF9hdHRyKGVycm9ycz0wLCBmYWlsdXJlcz0xLCBza2lwcGVkPTAsIHRlc3RzPTEpCiAgICAgICAg
IHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQogICAgICAgICB0bm9k
ZS5hc3NlcnRfYXR0cihuYW1lPSJteWZpbGUueHl6IikKICAgICAgICAgZm5vZGUgPSB0bm9kZS5m
aW5kX2ZpcnN0X2J5X3RhZygiZmFpbHVyZSIpCkBAIC04NDcsMTQgKzg3MiwxMSBAQCBkZWYgdGVz
dF9pbnZhbGlkX3htbF9lc2NhcGUoKToKIAogZGVmIHRlc3RfbG9neG1sX3BhdGhfZXhwYW5zaW9u
KHRtcGRpciwgbW9ua2V5cGF0Y2gpOgogICAgIGhvbWVfdGlsZGUgPSBweS5wYXRoLmxvY2FsKG9z
LnBhdGguZXhwYW5kdXNlcigifiIpKS5qb2luKCJ0ZXN0LnhtbCIpCi0KICAgICB4bWxfdGlsZGUg
PSBMb2dYTUwoIn4lc3Rlc3QueG1sIiAlIHRtcGRpci5zZXAsIE5vbmUpCiAgICAgYXNzZXJ0IHht
bF90aWxkZS5sb2dmaWxlID09IGhvbWVfdGlsZGUKIAotICAgICMgdGhpcyBpcyBoZXJlIGZvciB3
aGVuICRIT01FIGlzIG5vdCBzZXQgY29ycmVjdAotICAgIG1vbmtleXBhdGNoLnNldGVudigiSE9N
RSIsIHRtcGRpcikKKyAgICBtb25rZXlwYXRjaC5zZXRlbnYoIkhPTUUiLCBzdHIodG1wZGlyKSkK
ICAgICBob21lX3ZhciA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5leHBhbmR2YXJzKCIkSE9N
RS90ZXN0LnhtbCIpKQotCiAgICAgeG1sX3ZhciA9IExvZ1hNTCgiJEhPTUUlc3Rlc3QueG1sIiAl
IHRtcGRpci5zZXAsIE5vbmUpCiAgICAgYXNzZXJ0IHhtbF92YXIubG9nZmlsZSA9PSBob21lX3Zh
cgogCkBAIC05NDMsOCArOTY1LDcgQEAgZGVmIHRlc3RfZG91YmxlX2NvbG9uX3NwbGl0X21ldGhv
ZF9pc3N1ZTQ2OSh0ZXN0ZGlyKToKIGRlZiB0ZXN0X3VuaWNvZGVfaXNzdWUzNjgodGVzdGRpcik6
CiAgICAgcGF0aCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInRlc3QueG1sIikKICAgICBsb2cgPSBM
b2dYTUwoc3RyKHBhdGgpLCBOb25lKQotICAgIHVzdHIgPSBweS5idWlsdGluLl90b3RleHQoItCS
0J3QmCEiLCAidXRmLTgiKQotICAgIGZyb20gX3B5dGVzdC5ydW5uZXIgaW1wb3J0IEJhc2VSZXBv
cnQKKyAgICB1c3RyID0gdSLQktCd0JghIgogCiAgICAgY2xhc3MgUmVwb3J0KEJhc2VSZXBvcnQp
OgogICAgICAgICBsb25ncmVwciA9IHVzdHIKQEAgLTEwMDgsNyArMTAyOSwyOCBAQCBkZWYgdGVz
dF9yZWNvcmRfcHJvcGVydHlfc2FtZV9uYW1lKHRlc3RkaXIpOgogICAgIHBub2Rlc1sxXS5hc3Nl
cnRfYXR0cihuYW1lPSJmb28iLCB2YWx1ZT0iYmF6IikKIAogCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoImZpeHR1cmVfbmFtZSIsIFsicmVjb3JkX3Byb3BlcnR5IiwgInJlY29yZF94bWxfYXR0
cmlidXRlIl0pCitkZWYgdGVzdF9yZWNvcmRfZml4dHVyZXNfd2l0aG91dF9qdW5pdHhtbCh0ZXN0
ZGlyLCBmaXh0dXJlX25hbWUpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIi
CisgICAgICAgIGRlZiB0ZXN0X3JlY29yZCh7Zml4dHVyZV9uYW1lfSk6CisgICAgICAgICAgICB7
Zml4dHVyZV9uYW1lfSgiZm9vIiwgImJhciIpCisgICAgIiIiLmZvcm1hdCgKKyAgICAgICAgICAg
IGZpeHR1cmVfbmFtZT1maXh0dXJlX25hbWUKKyAgICAgICAgKQorICAgICkKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK0Bw
eXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiZGVmYXVsdCIpCiBkZWYgdGVzdF9yZWNvcmRfYXR0
cmlidXRlKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgIiIiCisgICAg
ICAgIFtweXRlc3RdCisgICAgICAgIGp1bml0X2ZhbWlseSA9IHh1bml0MQorICAgICIiIgorICAg
ICkKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgogICAgICAgICBpbXBvcnQg
cHl0ZXN0CkBAIC0xMDI2LDE2ICsxMDY4LDU3IEBAIGRlZiB0ZXN0X3JlY29yZF9hdHRyaWJ1dGUo
dGVzdGRpcik6CiAgICAgdG5vZGUuYXNzZXJ0X2F0dHIoYmFyPSIxIikKICAgICB0bm9kZS5hc3Nl
cnRfYXR0cihmb289IjwxIikKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAg
ICAgIFsidGVzdF9yZWNvcmRfYXR0cmlidXRlLnB5Ojp0ZXN0X3JlY29yZCIsICIqcmVjb3JkX3ht
bF9hdHRyaWJ1dGUqZXhwZXJpbWVudGFsKiJdCisgICAgICAgIFsiKnRlc3RfcmVjb3JkX2F0dHJp
YnV0ZS5weTo2OipyZWNvcmRfeG1sX2F0dHJpYnV0ZSBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVy
ZSJdCiAgICAgKQogCiAKLWRlZiB0ZXN0X3JhbmRvbV9yZXBvcnRfbG9nX3hkaXN0KHRlc3RkaXIp
OgorQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJkZWZhdWx0IikKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgiZml4dHVyZV9uYW1lIiwgWyJyZWNvcmRfeG1sX2F0dHJpYnV0ZSIsICJyZWNv
cmRfcHJvcGVydHkiXSkKK2RlZiB0ZXN0X3JlY29yZF9maXh0dXJlc194dW5pdDIodGVzdGRpciwg
Zml4dHVyZV9uYW1lKToKKyAgICAiIiJFbnN1cmUgcmVjb3JkX3htbF9hdHRyaWJ1dGUgYW5kIHJl
Y29yZF9wcm9wZXJ0eSBkcm9wIHZhbHVlcyB3aGVuIG91dHNpZGUgb2YgbGVnYWN5IGZhbWlseQor
ICAgICIiIgorICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgIiIiCisgICAgICAgIFtweXRl
c3RdCisgICAgICAgIGp1bml0X2ZhbWlseSA9IHh1bml0MgorICAgICIiIgorICAgICkKKyAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisK
KyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBvdGhlcih7Zml4dHVyZV9uYW1l
fSk6CisgICAgICAgICAgICB7Zml4dHVyZV9uYW1lfSgiYmFyIiwgMSkKKyAgICAgICAgZGVmIHRl
c3RfcmVjb3JkKHtmaXh0dXJlX25hbWV9LCBvdGhlcik6CisgICAgICAgICAgICB7Zml4dHVyZV9u
YW1lfSgiZm9vIiwgIjwxIik7CisgICAgIiIiLmZvcm1hdCgKKyAgICAgICAgICAgIGZpeHR1cmVf
bmFtZT1maXh0dXJlX25hbWUKKyAgICAgICAgKQorICAgICkKKworICAgIHJlc3VsdCwgZG9tID0g
cnVuYW5kcGFyc2UodGVzdGRpciwgIi1ydyIpCisgICAgZXhwZWN0ZWRfbGluZXMgPSBbXQorICAg
IGlmIGZpeHR1cmVfbmFtZSA9PSAicmVjb3JkX3htbF9hdHRyaWJ1dGUiOgorICAgICAgICBleHBl
Y3RlZF9saW5lcy5hcHBlbmQoCisgICAgICAgICAgICAiKnRlc3RfcmVjb3JkX2ZpeHR1cmVzX3h1
bml0Mi5weTo2OipyZWNvcmRfeG1sX2F0dHJpYnV0ZSBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVy
ZSIKKyAgICAgICAgKQorICAgIGV4cGVjdGVkX2xpbmVzID0gWworICAgICAgICAiKnRlc3RfcmVj
b3JkX2ZpeHR1cmVzX3h1bml0Mi5weTo2Oip7Zml4dHVyZV9uYW1lfSBpcyBpbmNvbXBhdGlibGUg
IgorICAgICAgICAid2l0aCBqdW5pdF9mYW1pbHkgJ3h1bml0MicgKHVzZSAnbGVnYWN5JyBvciAn
eHVuaXQxJykiLmZvcm1hdCgKKyAgICAgICAgICAgIGZpeHR1cmVfbmFtZT1maXh0dXJlX25hbWUK
KyAgICAgICAgKQorICAgIF0KKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoZXhwZWN0
ZWRfbGluZXMpCisKKworZGVmIHRlc3RfcmFuZG9tX3JlcG9ydF9sb2dfeGRpc3QodGVzdGRpciwg
bW9ua2V5cGF0Y2gpOgogICAgICIiInhkaXN0IGNhbGxzIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9y
dCBhcyB0aGV5IGFyZSBleGVjdXRlZCBieSB0aGUgc2xhdmVzLAogICAgIHdpdGggbm9kZXMgZnJv
bSBzZXZlcmFsIG5vZGVzIG92ZXJsYXBwaW5nLCBzbyBqdW5pdHhtbCBtdXN0IGNvcGUgd2l0aCB0
aGF0CiAgICAgdG8gcHJvZHVjZSBjb3JyZWN0IHJlcG9ydHMuICMxMDY0CiAgICAgIiIiCiAgICAg
cHl0ZXN0LmltcG9ydG9yc2tpcCgieGRpc3QiKQorICAgIG1vbmtleXBhdGNoLmRlbGVudigiUFlU
RVNUX0RJU0FCTEVfUExVR0lOX0FVVE9MT0FEIiwgcmFpc2luZz1GYWxzZSkKICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCiAgICAgICAgICIiIgogICAgICAgICBpbXBvcnQgcHl0ZXN0LCB0aW1lCkBA
IC0xMDU0LDYgKzExMzcsMjAgQEAgZGVmIHRlc3RfcmFuZG9tX3JlcG9ydF9sb2dfeGRpc3QodGVz
dGRpcik6CiAgICAgYXNzZXJ0IGZhaWxlZCA9PSBbInRlc3RfeFsyMl0iXQogCiAKK2RlZiB0ZXN0
X3Jvb3RfdGVzdHN1aXRlc190YWcodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAor
ICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRlc3RfeCgpOgorICAgICAgICAgICAgcGFzcworICAg
ICIiIgorICAgICkKKyAgICBfLCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgIHJvb3Qg
PSBkb20uZ2V0X3VuaXF1ZV9jaGlsZAorICAgIGFzc2VydCByb290LnRhZyA9PSAidGVzdHN1aXRl
cyIKKyAgICBzdWl0ZV9ub2RlID0gcm9vdC5nZXRfdW5pcXVlX2NoaWxkCisgICAgYXNzZXJ0IHN1
aXRlX25vZGUudGFnID09ICJ0ZXN0c3VpdGUiCisKKwogZGVmIHRlc3RfcnVuc190d2ljZSh0ZXN0
ZGlyKToKICAgICBmID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAiIiIKQEAgLTExMjEs
MzAgKzEyMTgsMjQgQEAgZGVmIHRlc3RfZmFuY3lfaXRlbXNfcmVncmVzc2lvbih0ZXN0ZGlyKToK
IAogICAgIGFzc2VydCAiSU5URVJOQUxFUlJPUiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkK
IAotICAgIGl0ZW1zID0gc29ydGVkKAotICAgICAgICAiJShjbGFzc25hbWUpcyAlKG5hbWUpcyAl
KGZpbGUpcyIgJSB4IGZvciB4IGluIGRvbS5maW5kX2J5X3RhZygidGVzdGNhc2UiKQotICAgICkK
KyAgICBpdGVtcyA9IHNvcnRlZCgiJShjbGFzc25hbWUpcyAlKG5hbWUpcyIgJSB4IGZvciB4IGlu
IGRvbS5maW5kX2J5X3RhZygidGVzdGNhc2UiKSkKICAgICBpbXBvcnQgcHByaW50CiAKICAgICBw
cHJpbnQucHByaW50KGl0ZW1zKQotICAgIGFzc2VydCAoCi0gICAgICAgIGl0ZW1zCi0gICAgICAg
ID09IFsKLSAgICAgICAgICAgIHUiY29uZnRlc3QgYSBjb25mdGVzdC5weSIsCi0gICAgICAgICAg
ICB1ImNvbmZ0ZXN0IGEgY29uZnRlc3QucHkiLAotICAgICAgICAgICAgdSJjb25mdGVzdCBiIGNv
bmZ0ZXN0LnB5IiwKLSAgICAgICAgICAgIHUidGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uIGEg
dGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uLnB5IiwKLSAgICAgICAgICAgIHUidGVzdF9mYW5j
eV9pdGVtc19yZWdyZXNzaW9uIGEgdGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uLnB5IiwKLSAg
ICAgICAgICAgIHUidGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uIGIgdGVzdF9mYW5jeV9pdGVt
c19yZWdyZXNzaW9uLnB5IiwKLSAgICAgICAgICAgIHUidGVzdF9mYW5jeV9pdGVtc19yZWdyZXNz
aW9uIHRlc3RfcGFzcyIgdSIgdGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uLnB5IiwKLSAgICAg
ICAgXQotICAgICkKKyAgICBhc3NlcnQgaXRlbXMgPT0gWworICAgICAgICB1ImNvbmZ0ZXN0IGEi
LAorICAgICAgICB1ImNvbmZ0ZXN0IGEiLAorICAgICAgICB1ImNvbmZ0ZXN0IGIiLAorICAgICAg
ICB1InRlc3RfZmFuY3lfaXRlbXNfcmVncmVzc2lvbiBhIiwKKyAgICAgICAgdSJ0ZXN0X2ZhbmN5
X2l0ZW1zX3JlZ3Jlc3Npb24gYSIsCisgICAgICAgIHUidGVzdF9mYW5jeV9pdGVtc19yZWdyZXNz
aW9uIGIiLAorICAgICAgICB1InRlc3RfZmFuY3lfaXRlbXNfcmVncmVzc2lvbiB0ZXN0X3Bhc3Mi
LAorICAgIF0KIAogCiBkZWYgdGVzdF9nbG9iYWxfcHJvcGVydGllcyh0ZXN0ZGlyKToKICAgICBw
YXRoID0gdGVzdGRpci50bXBkaXIuam9pbigidGVzdF9nbG9iYWxfcHJvcGVydGllcy54bWwiKQog
ICAgIGxvZyA9IExvZ1hNTChzdHIocGF0aCksIE5vbmUpCi0gICAgZnJvbSBfcHl0ZXN0LnJ1bm5l
ciBpbXBvcnQgQmFzZVJlcG9ydAogCiAgICAgY2xhc3MgUmVwb3J0KEJhc2VSZXBvcnQpOgogICAg
ICAgICBzZWN0aW9ucyA9IFtdCkBAIC0xMTgwLDcgKzEyNzEsNiBAQCBkZWYgdGVzdF91cmxfcHJv
cGVydHkodGVzdGRpcik6CiAgICAgdGVzdF91cmwgPSAiaHR0cDovL3d3dy5naXRodWIuY29tL3B5
dGVzdC1kZXYiCiAgICAgcGF0aCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInRlc3RfdXJsX3Byb3Bl
cnR5LnhtbCIpCiAgICAgbG9nID0gTG9nWE1MKHN0cihwYXRoKSwgTm9uZSkKLSAgICBmcm9tIF9w
eXRlc3QucnVubmVyIGltcG9ydCBCYXNlUmVwb3J0CiAKICAgICBjbGFzcyBSZXBvcnQoQmFzZVJl
cG9ydCk6CiAgICAgICAgIGxvbmdyZXByID0gIkZvb0JhckJheiIKQEAgLTEyMDMsNiArMTI5Myw1
MyBAQCBkZWYgdGVzdF91cmxfcHJvcGVydHkodGVzdGRpcik6CiAgICAgKSwgIlRoZSBVUkwgZGlk
IG5vdCBnZXQgd3JpdHRlbiB0byB0aGUgeG1sIgogCiAKK2RlZiB0ZXN0X3JlY29yZF90ZXN0c3Vp
dGVfcHJvcGVydHkodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAi
IiIKKyAgICAgICAgZGVmIHRlc3RfZnVuYzEocmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eSk6Cisg
ICAgICAgICAgICByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KCJzdGF0cyIsICJhbGwgZ29vZCIp
CisKKyAgICAgICAgZGVmIHRlc3RfZnVuYzIocmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eSk6Cisg
ICAgICAgICAgICByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KCJzdGF0cyIsIDEwKQorICAgICIi
IgorICAgICkKKyAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRl
c3RzdWl0ZSIpCisgICAgcHJvcGVydGllc19ub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygi
cHJvcGVydGllcyIpCisgICAgcDFfbm9kZSA9IHByb3BlcnRpZXNfbm9kZS5maW5kX250aF9ieV90
YWcoInByb3BlcnR5IiwgMCkKKyAgICBwMl9ub2RlID0gcHJvcGVydGllc19ub2RlLmZpbmRfbnRo
X2J5X3RhZygicHJvcGVydHkiLCAxKQorICAgIHAxX25vZGUuYXNzZXJ0X2F0dHIobmFtZT0ic3Rh
dHMiLCB2YWx1ZT0iYWxsIGdvb2QiKQorICAgIHAyX25vZGUuYXNzZXJ0X2F0dHIobmFtZT0ic3Rh
dHMiLCB2YWx1ZT0iMTAiKQorCisKK2RlZiB0ZXN0X3JlY29yZF90ZXN0c3VpdGVfcHJvcGVydHlf
anVuaXRfZGlzYWJsZWQodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAg
ICAiIiIKKyAgICAgICAgZGVmIHRlc3RfZnVuYzEocmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eSk6
CisgICAgICAgICAgICByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KCJzdGF0cyIsICJhbGwgZ29v
ZCIpCisgICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJq
dW5pdCIsIFtUcnVlLCBGYWxzZV0pCitkZWYgdGVzdF9yZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5
X3R5cGVfY2hlY2tpbmcodGVzdGRpciwganVuaXQpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
KyAgICAgICAgIiIiCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKHJlY29yZF90ZXN0c3VpdGVfcHJv
cGVydHkpOgorICAgICAgICAgICAgcmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eSgxLCAyKQorICAg
ICIiIgorICAgICkKKyAgICBhcmdzID0gKCItLWp1bml0eG1sPXRlc3RzLnhtbCIsKSBpZiBqdW5p
dCBlbHNlICgpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKmFyZ3MpCisgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAg
ICAgICAgWyIqVHlwZUVycm9yOiBuYW1lIHBhcmFtZXRlciBuZWVkcyB0byBiZSBhIHN0cmluZywg
YnV0IGludCBnaXZlbiJdCisgICAgKQorCisKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3Vp
dGVfbmFtZSIsIFsibXlfc3VpdGUiLCAiIl0pCiBkZWYgdGVzdF9zZXRfc3VpdGVfbmFtZSh0ZXN0
ZGlyLCBzdWl0ZV9uYW1lKToKICAgICBpZiBzdWl0ZV9uYW1lOgpAQCAtMTIyOSwzICsxMzY2LDgy
IEBAIGRlZiB0ZXN0X3NldF9zdWl0ZV9uYW1lKHRlc3RkaXIsIHN1aXRlX25hbWUpOgogICAgIGFz
c2VydCByZXN1bHQucmV0ID09IDAKICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0
ZXN0c3VpdGUiKQogICAgIG5vZGUuYXNzZXJ0X2F0dHIobmFtZT1leHBlY3RlZCkKKworCitkZWYg
dGVzdF9lc2NhcGVkX3NraXByZWFzb25faXNzdWUzNTMzKHRlc3RkaXIpOgorICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
QHB5dGVzdC5tYXJrLnNraXAocmVhc29uPScxIDw+IDInKQorICAgICAgICBkZWYgdGVzdF9za2lw
KCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiCisgICAgKQorICAgIF8sIGRvbSA9IHJ1bmFu
ZHBhcnNlKHRlc3RkaXIpCisgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNh
c2UiKQorICAgIHNub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygic2tpcHBlZCIpCisgICAg
YXNzZXJ0ICIxIDw+IDIiIGluIHNub2RlLnRleHQKKyAgICBzbm9kZS5hc3NlcnRfYXR0cihtZXNz
YWdlPSIxIDw+IDIiKQorCisKK2RlZiB0ZXN0X2xvZ2dpbmdfcGFzc2luZ190ZXN0c19kaXNhYmxl
ZF9kb2VzX25vdF9sb2dfdGVzdF9vdXRwdXQodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlaW5p
KAorICAgICAgICAiIiIKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAganVuaXRfbG9nX3Bhc3Np
bmdfdGVzdHM9RmFsc2UKKyAgICAgICAganVuaXRfbG9nZ2luZz1zeXN0ZW0tb3V0CisgICAgIiIi
CisgICAgKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgaW1wb3J0IHN5cwor
CisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUo
J1RoaXMgaXMgc3Rkb3V0JykKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ1RoaXMgaXMg
c3RkZXJyJykKKyAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnaGVsbG8nKQorICAgICIiIgor
ICAgICkKKyAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gMAorICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3Rj
YXNlIikKKyAgICBhc3NlcnQgbGVuKG5vZGUuZmluZF9ieV90YWcoInN5c3RlbS1lcnIiKSkgPT0g
MAorICAgIGFzc2VydCBsZW4obm9kZS5maW5kX2J5X3RhZygic3lzdGVtLW91dCIpKSA9PSAwCisK
KworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJqdW5pdF9sb2dnaW5nIiwgWyJubyIsICJzeXN0
ZW0tb3V0IiwgInN5c3RlbS1lcnIiXSkKK2RlZiB0ZXN0X2xvZ2dpbmdfcGFzc2luZ190ZXN0c19k
aXNhYmxlZF9sb2dzX291dHB1dF9mb3JfZmFpbGluZ190ZXN0X2lzc3VlNTQzMCgKKyAgICB0ZXN0
ZGlyLCBqdW5pdF9sb2dnaW5nCispOgorICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgIiIi
CisgICAgICAgIFtweXRlc3RdCisgICAgICAgIGp1bml0X2xvZ19wYXNzaW5nX3Rlc3RzPUZhbHNl
CisgICAgIiIiCisgICAgKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgaW1w
b3J0IHN5cworCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgIGxvZ2dpbmcu
d2FybmluZygnaGVsbG8nKQorICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAiIiIKKyAgICApCisg
ICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyLCAiLW8iLCAianVuaXRfbG9nZ2lu
Zz0lcyIgJSBqdW5pdF9sb2dnaW5nKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKyAgICBu
b2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgaWYganVuaXRfbG9n
Z2luZyA9PSAic3lzdGVtLW91dCI6CisgICAgICAgIGFzc2VydCBsZW4obm9kZS5maW5kX2J5X3Rh
Zygic3lzdGVtLWVyciIpKSA9PSAwCisgICAgICAgIGFzc2VydCBsZW4obm9kZS5maW5kX2J5X3Rh
Zygic3lzdGVtLW91dCIpKSA9PSAxCisgICAgZWxpZiBqdW5pdF9sb2dnaW5nID09ICJzeXN0ZW0t
ZXJyIjoKKyAgICAgICAgYXNzZXJ0IGxlbihub2RlLmZpbmRfYnlfdGFnKCJzeXN0ZW0tZXJyIikp
ID09IDEKKyAgICAgICAgYXNzZXJ0IGxlbihub2RlLmZpbmRfYnlfdGFnKCJzeXN0ZW0tb3V0Iikp
ID09IDAKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQganVuaXRfbG9nZ2luZyA9PSAibm8iCisg
ICAgICAgIGFzc2VydCBsZW4obm9kZS5maW5kX2J5X3RhZygic3lzdGVtLWVyciIpKSA9PSAwCisg
ICAgICAgIGFzc2VydCBsZW4obm9kZS5maW5kX2J5X3RhZygic3lzdGVtLW91dCIpKSA9PSAwCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbWFyay5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdGVzdF9tYXJrLnB5CmluZGV4IGUyZTczNjlkYzc5ODRkNzMxZTUwMzU0NWFjOWI0
YzYxNWM0NzQ2MDEuLjcyN2JkOTQyMGMyNjVjNThjOGVmMzljOTFkYWY2NGFhNDExMTc4OWMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tYXJrLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF9tYXJrLnB5CkBAIC0xLDI5ICsxLDMzIEBACi1mcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCi1pbXBvcnQgbW9jawor
CitpbXBvcnQgc2l4CisKIGltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCAo
Ci0gICAgTWFya0dlbmVyYXRvciBhcyBNYXJrLAotICAgIFBhcmFtZXRlclNldCwKLSAgICB0cmFu
c2Zlcl9tYXJrZXJzLAotICAgIEVNUFRZX1BBUkFNRVRFUlNFVF9PUFRJT04sCi0pCitmcm9tIF9w
eXRlc3QubWFpbiBpbXBvcnQgRVhJVF9JTlRFUlJVUFRFRAorZnJvbSBfcHl0ZXN0Lm1hcmsgaW1w
b3J0IEVNUFRZX1BBUkFNRVRFUlNFVF9PUFRJT04KK2Zyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBN
YXJrR2VuZXJhdG9yIGFzIE1hcmsKK2Zyb20gX3B5dGVzdC5ub2RlcyBpbXBvcnQgQ29sbGVjdG9y
CiBmcm9tIF9weXRlc3Qubm9kZXMgaW1wb3J0IE5vZGUKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5
cGVzIGltcG9ydCBQeXRlc3REZXByZWNhdGlvbldhcm5pbmcKK2Zyb20gX3B5dGVzdC53YXJuaW5n
cyBpbXBvcnQgU0hPV19QWVRFU1RfV0FSTklOR1NfQVJHCisKK3RyeToKKyAgICBpbXBvcnQgbW9j
aworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCB1bml0dGVzdC5tb2NrIGFzIG1vY2sK
IAogaWdub3JlX21hcmtpbmZvID0gcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoCi0gICAgImln
bm9yZTpNYXJrSW5mbyBvYmplY3RzOl9weXRlc3QuZGVwcmVjYXRlZC5SZW1vdmVkSW5QeXRlc3Q0
V2FybmluZyIKKyAgICAiaWdub3JlOk1hcmtJbmZvIG9iamVjdHM6cHl0ZXN0LlJlbW92ZWRJblB5
dGVzdDRXYXJuaW5nIgogKQogCiAKIGNsYXNzIFRlc3RNYXJrKG9iamVjdCk6Ci0KLSAgICBkZWYg
dGVzdF9tYXJraW5mb19yZXByKHNlbGYpOgotICAgICAgICBmcm9tIF9weXRlc3QubWFyayBpbXBv
cnQgTWFya0luZm8sIE1hcmsKLQotICAgICAgICBtID0gTWFya0luZm8uZm9yX21hcmsoTWFyaygi
aGVsbG8iLCAoMSwgMiksIHt9KSkKLSAgICAgICAgcmVwcihtKQotCiAgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJhdHRyIiwgWyJtYXJrIiwgInBhcmFtIl0pCiAgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJtb2R1bGVuYW1lIiwgWyJweS50ZXN0IiwgInB5dGVzdCJdKQogICAgIGRl
ZiB0ZXN0X3B5dGVzdF9leGlzdHNfaW5fbmFtZXNwYWNlX2FsbChzZWxmLCBhdHRyLCBtb2R1bGVu
YW1lKToKQEAgLTM1LDEwNyArMzksMjIgQEAgY2xhc3MgVGVzdE1hcmsob2JqZWN0KToKICAgICAg
ICAgcHl0ZXN0LnJhaXNlcygoQXR0cmlidXRlRXJyb3IsIFR5cGVFcnJvciksIG1hcmspCiAKICAg
ICBkZWYgdGVzdF9tYXJrX3dpdGhfcGFyYW0oc2VsZik6Ci0KICAgICAgICAgZGVmIHNvbWVfZnVu
Y3Rpb24oYWJjKToKICAgICAgICAgICAgIHBhc3MKIAogICAgICAgICBjbGFzcyBTb21lQ2xhc3Mo
b2JqZWN0KToKICAgICAgICAgICAgIHBhc3MKIAotICAgICAgICBhc3NlcnQgcHl0ZXN0Lm1hcmsu
ZnVuKHNvbWVfZnVuY3Rpb24pIGlzIHNvbWVfZnVuY3Rpb24KLSAgICAgICAgYXNzZXJ0IHB5dGVz
dC5tYXJrLmZ1bi53aXRoX2FyZ3Moc29tZV9mdW5jdGlvbikgaXMgbm90IHNvbWVfZnVuY3Rpb24K
KyAgICAgICAgYXNzZXJ0IHB5dGVzdC5tYXJrLmZvbyhzb21lX2Z1bmN0aW9uKSBpcyBzb21lX2Z1
bmN0aW9uCisgICAgICAgIGFzc2VydCBweXRlc3QubWFyay5mb28ud2l0aF9hcmdzKHNvbWVfZnVu
Y3Rpb24pIGlzIG5vdCBzb21lX2Z1bmN0aW9uCiAKLSAgICAgICAgYXNzZXJ0IHB5dGVzdC5tYXJr
LmZ1bihTb21lQ2xhc3MpIGlzIFNvbWVDbGFzcwotICAgICAgICBhc3NlcnQgcHl0ZXN0Lm1hcmsu
ZnVuLndpdGhfYXJncyhTb21lQ2xhc3MpIGlzIG5vdCBTb21lQ2xhc3MKKyAgICAgICAgYXNzZXJ0
IHB5dGVzdC5tYXJrLmZvbyhTb21lQ2xhc3MpIGlzIFNvbWVDbGFzcworICAgICAgICBhc3NlcnQg
cHl0ZXN0Lm1hcmsuZm9vLndpdGhfYXJncyhTb21lQ2xhc3MpIGlzIG5vdCBTb21lQ2xhc3MKIAog
ICAgIGRlZiB0ZXN0X3B5dGVzdF9tYXJrX25hbWVfc3RhcnRzX3dpdGhfdW5kZXJzY29yZShzZWxm
KToKICAgICAgICAgbWFyayA9IE1hcmsoKQotICAgICAgICBweXRlc3QucmFpc2VzKEF0dHJpYnV0
ZUVycm9yLCBnZXRhdHRyLCBtYXJrLCAiX3NvbWVfbmFtZSIpCi0KLSAgICBkZWYgdGVzdF9weXRl
c3RfbWFya19iYXJlKHNlbGYpOgotICAgICAgICBtYXJrID0gTWFyaygpCi0KLSAgICAgICAgZGVm
IGYoKToKLSAgICAgICAgICAgIHBhc3MKLQotICAgICAgICBtYXJrLmhlbGxvKGYpCi0gICAgICAg
IGFzc2VydCBmLmhlbGxvCi0KLSAgICBAaWdub3JlX21hcmtpbmZvCi0gICAgZGVmIHRlc3RfcHl0
ZXN0X21hcmtfa2V5d29yZHMoc2VsZik6Ci0gICAgICAgIG1hcmsgPSBNYXJrKCkKLQotICAgICAg
ICBkZWYgZigpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIG1hcmsud29ybGQoeD0zLCB5
PTQpKGYpCi0gICAgICAgIGFzc2VydCBmLndvcmxkCi0gICAgICAgIGFzc2VydCBmLndvcmxkLmt3
YXJnc1sieCJdID09IDMKLSAgICAgICAgYXNzZXJ0IGYud29ybGQua3dhcmdzWyJ5Il0gPT0gNAot
Ci0gICAgQGlnbm9yZV9tYXJraW5mbwotICAgIGRlZiB0ZXN0X2FwcGx5X211bHRpcGxlX2FuZF9t
ZXJnZShzZWxmKToKLSAgICAgICAgbWFyayA9IE1hcmsoKQotCi0gICAgICAgIGRlZiBmKCk6Ci0g
ICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgbWFyay53b3JsZAotICAgICAgICBtYXJrLndvcmxk
KHg9MykoZikKLSAgICAgICAgYXNzZXJ0IGYud29ybGQua3dhcmdzWyJ4Il0gPT0gMwotICAgICAg
ICBtYXJrLndvcmxkKHk9NCkoZikKLSAgICAgICAgYXNzZXJ0IGYud29ybGQua3dhcmdzWyJ4Il0g
PT0gMwotICAgICAgICBhc3NlcnQgZi53b3JsZC5rd2FyZ3NbInkiXSA9PSA0Ci0gICAgICAgIG1h
cmsud29ybGQoeT0xKShmKQotICAgICAgICBhc3NlcnQgZi53b3JsZC5rd2FyZ3NbInkiXSA9PSAx
Ci0gICAgICAgIGFzc2VydCBsZW4oZi53b3JsZC5hcmdzKSA9PSAwCi0KLSAgICBAaWdub3JlX21h
cmtpbmZvCi0gICAgZGVmIHRlc3RfcHl0ZXN0X21hcmtfcG9zaXRpb25hbChzZWxmKToKLSAgICAg
ICAgbWFyayA9IE1hcmsoKQotCi0gICAgICAgIGRlZiBmKCk6Ci0gICAgICAgICAgICBwYXNzCi0K
LSAgICAgICAgbWFyay53b3JsZCgiaGVsbG8iKShmKQotICAgICAgICBhc3NlcnQgZi53b3JsZC5h
cmdzWzBdID09ICJoZWxsbyIKLSAgICAgICAgbWFyay53b3JsZCgid29ybGQiKShmKQotCi0gICAg
QGlnbm9yZV9tYXJraW5mbwotICAgIGRlZiB0ZXN0X3B5dGVzdF9tYXJrX3Bvc2l0aW9uYWxfZnVu
Y19hbmRfa2V5d29yZChzZWxmKToKLSAgICAgICAgbWFyayA9IE1hcmsoKQotCi0gICAgICAgIGRl
ZiBmKCk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24KLQotICAgICAgICBtID0gbWFyay53
b3JsZChmLCBvbWVnYT0iaGVsbG8iKQotCi0gICAgICAgIGRlZiBnKCk6Ci0gICAgICAgICAgICBw
YXNzCi0KLSAgICAgICAgYXNzZXJ0IG0oZykgPT0gZwotICAgICAgICBhc3NlcnQgZy53b3JsZC5h
cmdzWzBdIGlzIGYKLSAgICAgICAgYXNzZXJ0IGcud29ybGQua3dhcmdzWyJvbWVnYSJdID09ICJo
ZWxsbyIKLQotICAgIEBpZ25vcmVfbWFya2luZm8KLSAgICBkZWYgdGVzdF9weXRlc3RfbWFya19y
ZXVzZShzZWxmKToKLSAgICAgICAgbWFyayA9IE1hcmsoKQotCi0gICAgICAgIGRlZiBmKCk6Ci0g
ICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgdyA9IG1hcmsuc29tZQotICAgICAgICB3KCJoZWxs
byIsIHJlYXNvbj0iMTIzIikoZikKLSAgICAgICAgYXNzZXJ0IGYuc29tZS5hcmdzWzBdID09ICJo
ZWxsbyIKLSAgICAgICAgYXNzZXJ0IGYuc29tZS5rd2FyZ3NbInJlYXNvbiJdID09ICIxMjMiCi0K
LSAgICAgICAgZGVmIGcoKToKLSAgICAgICAgICAgIHBhc3MKLQotICAgICAgICB3KCJ3b3JsZCIs
IHJlYXNvbjI9IjQ1NiIpKGcpCi0gICAgICAgIGFzc2VydCBnLnNvbWUuYXJnc1swXSA9PSAid29y
bGQiCi0gICAgICAgIGFzc2VydCAicmVhc29uIiBub3QgaW4gZy5zb21lLmt3YXJncwotICAgICAg
ICBhc3NlcnQgZy5zb21lLmt3YXJnc1sicmVhc29uMiJdID09ICI0NTYiCisgICAgICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBtYXJrLl9zb21lX25h
bWUKIAogCiBkZWYgdGVzdF9tYXJrZWRfY2xhc3NfcnVuX3R3aWNlKHRlc3RkaXIsIHJlcXVlc3Qp
OgpAQCAtMTY5LDcgKzg4LDcgQEAgZGVmIHRlc3RfaW5pX21hcmtlcnModGVzdGRpcik6CiAgICAg
ICAgICIiIgogICAgICAgICBkZWYgdGVzdF9tYXJrZXJzKHB5dGVzdGNvbmZpZyk6CiAgICAgICAg
ICAgICBtYXJrZXJzID0gcHl0ZXN0Y29uZmlnLmdldGluaSgibWFya2VycyIpCi0gICAgICAgICAg
ICBwcmludCAobWFya2VycykKKyAgICAgICAgICAgIHByaW50KG1hcmtlcnMpCiAgICAgICAgICAg
ICBhc3NlcnQgbGVuKG1hcmtlcnMpID49IDIKICAgICAgICAgICAgIGFzc2VydCBtYXJrZXJzWzBd
LnN0YXJ0c3dpdGgoImExOiIpCiAgICAgICAgICAgICBhc3NlcnQgbWFya2Vyc1sxXS5zdGFydHN3
aXRoKCJhMjoiKQpAQCAtMjEyLDcgKzEzMSw3IEBAIGRlZiB0ZXN0X2luaV9tYXJrZXJzX3doaXRl
c3BhY2UodGVzdGRpcik6CiAgICAgICAgICAgICBhc3NlcnQgVHJ1ZQogICAgICIiIgogICAgICkK
LSAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi0tc3RyaWN0IiwgIi1tIiwgImExIikKKyAg
ICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi0tc3RyaWN0LW1hcmtlcnMiLCAiLW0iLCAiYTEi
KQogICAgIHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQogCiAKQEAgLTIzMiw3ICsxNTEsNyBA
QCBkZWYgdGVzdF9tYXJrZXJfd2l0aG91dF9kZXNjcmlwdGlvbih0ZXN0ZGlyKToKICAgICApCiAg
ICAgZnRkaXIgPSB0ZXN0ZGlyLm1rZGlyKCJmdDFfZHVtbXkiKQogICAgIHRlc3RkaXIudG1wZGly
LmpvaW4oImNvbmZ0ZXN0LnB5IikubW92ZShmdGRpci5qb2luKCJjb25mdGVzdC5weSIpKQotICAg
IHJlYyA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi0tc3RyaWN0IikKKyAgICByZWMg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1zdHJpY3QtbWFya2VycyIpCiAgICAgcmVjLmFzc2VydF9v
dXRjb21lcygpCiAKIApAQCAtMjc2LDcgKzE5NSw4IEBAIGRlZiB0ZXN0X21hcmtfb25fcHNldWRv
X2Z1bmN0aW9uKHRlc3RkaXIpOgogICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQog
CiAKLWRlZiB0ZXN0X3N0cmljdF9wcm9oaWJpdHNfdW5yZWdpc3RlcmVkX21hcmtlcnModGVzdGRp
cik6CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm9wdGlvbl9uYW1lIiwgWyItLXN0cmljdC1t
YXJrZXJzIiwgIi0tc3RyaWN0Il0pCitkZWYgdGVzdF9zdHJpY3RfcHJvaGliaXRzX3VucmVnaXN0
ZXJlZF9tYXJrZXJzKHRlc3RkaXIsIG9wdGlvbl9uYW1lKToKICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCiAgICAgICAgICIiIgogICAgICAgICBpbXBvcnQgcHl0ZXN0CkBAIC0yODUsOSArMjA1LDEx
IEBAIGRlZiB0ZXN0X3N0cmljdF9wcm9oaWJpdHNfdW5yZWdpc3RlcmVkX21hcmtlcnModGVzdGRp
cik6CiAgICAgICAgICAgICBwYXNzCiAgICAgIiIiCiAgICAgKQotICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLXN0cmljdCIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
b3B0aW9uX25hbWUpCiAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAotICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIip1bnJlZ2lzdGVyZWRtYXJrKm5vdCpyZWdpc3RlcmVkKiJdKQor
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWyIndW5yZWdpc3RlcmVk
bWFyaycgbm90IGZvdW5kIGluIGBtYXJrZXJzYCBjb25maWd1cmF0aW9uIG9wdGlvbiJdCisgICAg
KQogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKQEAgLTM3Niw2ICsyOTgsMTMgQEAgZGVm
IHRlc3Rfa2V5d29yZF9vcHRpb25fY3VzdG9tKHNwZWMsIHRlc3RkaXIpOgogICAgIGFzc2VydCBs
aXN0KHBhc3NlZCkgPT0gbGlzdChwYXNzZWRfcmVzdWx0KQogCiAKK2RlZiB0ZXN0X2tleXdvcmRf
b3B0aW9uX2NvbnNpZGVyc19tYXJrKHRlc3RkaXIpOgorICAgIHRlc3RkaXIuY29weV9leGFtcGxl
KCJtYXJrcy9tYXJrc19jb25zaWRlcmVkX2tleXdvcmRzIikKKyAgICByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4oIi1rIiwgImZvbyIpCisgICAgcGFzc2VkID0gcmVjLmxpc3RvdXRjb21lcygpWzBd
CisgICAgYXNzZXJ0IGxlbihwYXNzZWQpID09IDEKKworCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoCiAgICAgInNwZWMiLAogICAgIFsKQEAgLTQ1Niw4ICszODUsMTAgQEAgZGVmIHRlc3RfcGFy
YW1ldHJpemVkX2NvbGxlY3Rfd2l0aF93cm9uZ19hcmdzKHRlc3RkaXIpOgogICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KHB5X2ZpbGUpCiAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKAogICAgICAgICBbCi0gICAgICAgICAgICAnRSAgIFZhbHVlRXJyb3I6IEluICJwYXJhbWV0
cml6ZSIgdGhlIG51bWJlciBvZiB2YWx1ZXMgKCgxLCAyLCAzKSkgJwotICAgICAgICAgICAgIm11
c3QgYmUgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBuYW1lcyAoWydmb28nLCAnYmFyJ10pIgorICAg
ICAgICAgICAgJ3Rlc3RfcGFyYW1ldHJpemVkX2NvbGxlY3Rfd2l0aF93cm9uZ19hcmdzLnB5Ojp0
ZXN0X2Z1bmM6IGluICJwYXJhbWV0cml6ZSIgdGhlIG51bWJlciBvZiBuYW1lcyAoMik6JywKKyAg
ICAgICAgICAgICIgIFsnZm9vJywgJ2JhciddIiwKKyAgICAgICAgICAgICJtdXN0IGJlIGVxdWFs
IHRvIHRoZSBudW1iZXIgb2YgdmFsdWVzICgzKToiLAorICAgICAgICAgICAgIiAgKDEsIDIsIDMp
IiwKICAgICAgICAgXQogICAgICkKIApAQCAtNDgyLDExOCArNDEzLDI5IEBAIGRlZiB0ZXN0X3Bh
cmFtZXRyaXplZF93aXRoX2t3YXJncyh0ZXN0ZGlyKToKICAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCiAKIAotY2xhc3MgVGVzdEZ1bmN0aW9uYWwob2JqZWN0KToKLQotICAgIGRlZiB0ZXN0X21h
cmtfcGVyX2Z1bmN0aW9uKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBwID0gdGVzdGRpci5tYWtl
cHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAg
ICAgICAgICBAcHl0ZXN0Lm1hcmsuaGVsbG8KLSAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGhhc2F0dHIodGVzdF9oZWxsbywgJ2hlbGxvJykKLSAg
ICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
cCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQot
Ci0gICAgZGVmIHRlc3RfbWFya19wZXJfbW9kdWxlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBp
dGVtID0gdGVzdGRpci5nZXRpdGVtKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0gICAgICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsuaGVsbG8KLSAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAg
ICIiIgotICAgICAgICApCi0gICAgICAgIGtleXdvcmRzID0gaXRlbS5rZXl3b3JkcwotICAgICAg
ICBhc3NlcnQgImhlbGxvIiBpbiBrZXl3b3JkcwotCi0gICAgZGVmIHRlc3RfbWFya2xpc3RfcGVy
X2NsYXNzKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKAot
ICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBj
bGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBweXRlc3RtYXJrID0gW3B5
dGVzdC5tYXJrLmhlbGxvLCBweXRlc3QubWFyay53b3JsZF0KLSAgICAgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgVGVzdENsYXNzLnRl
c3RfZnVuYy5oZWxsbwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgVGVzdENsYXNzLnRlc3Rf
ZnVuYy53b3JsZAotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBrZXl3b3JkcyA9IGl0
ZW0ua2V5d29yZHMKLSAgICAgICAgYXNzZXJ0ICJoZWxsbyIgaW4ga2V5d29yZHMKK2RlZiB0ZXN0
X3BhcmFtZXRyaXplX2l0ZXJhdG9yKHRlc3RkaXIpOgorICAgICIiInBhcmFtZXRyaXplIHNob3Vs
ZCB3b3JrIHdpdGggZ2VuZXJhdG9ycyAoIzUzNTQpLiIiIgorICAgIHB5X2ZpbGUgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoCisgICAgICAgICIiIlwKKyAgICAgICAgaW1wb3J0IHB5dGVzdAogCi0gICAg
ZGVmIHRlc3RfbWFya2xpc3RfcGVyX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgaXRl
bSA9IHRlc3RkaXIuZ2V0aXRlbSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotICAgICAgICAgICAgcHl0ZXN0bWFyayA9IFtweXRlc3QubWFyay5oZWxsbywgcHl0
ZXN0Lm1hcmsud29ybGRdCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAg
ICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgVGVzdENsYXNzLnRlc3RfZnVuYy5oZWxsbwotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgVGVzdENsYXNzLnRlc3RfZnVuYy53b3JsZAotICAgICAgICAiIiIKLSAgICAgICAgKQotICAg
ICAgICBrZXl3b3JkcyA9IGl0ZW0ua2V5d29yZHMKLSAgICAgICAgYXNzZXJ0ICJoZWxsbyIgaW4g
a2V5d29yZHMKLSAgICAgICAgYXNzZXJ0ICJ3b3JsZCIgaW4ga2V5d29yZHMKKyAgICAgICAgZGVm
IGdlbigpOgorICAgICAgICAgICAgeWllbGQgMQorICAgICAgICAgICAgeWllbGQgMgorICAgICAg
ICAgICAgeWllbGQgMwogCi0gICAgZGVmIHRlc3RfbWFya19wZXJfY2xhc3NfZGVjb3JhdG9yKHNl
bGYsIHRlc3RkaXIpOgotICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKAotICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0Lm1h
cmsuaGVsbG8KLSAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgotICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBU
ZXN0Q2xhc3MudGVzdF9mdW5jLmhlbGxvCisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgnYScsIGdlbigpKQorICAgICAgICBkZWYgdGVzdChhKToKKyAgICAgICAgICAgIGFzc2VydCBh
ID49IDEKICAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAga2V5d29yZHMgPSBpdGVtLmtl
eXdvcmRzCi0gICAgICAgIGFzc2VydCAiaGVsbG8iIGluIGtleXdvcmRzCisgICAgKQorICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHB5X2ZpbGUpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMAorICAgICMgc2hvdWxkIG5vdCBza2lwIGFueSB0ZXN0cworICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKIAotICAgIGRlZiB0ZXN0X21hcmtfcGVyX2Ns
YXNzX2RlY29yYXRvcl9wbHVzX2V4aXN0aW5nX2RlYyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAg
aXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5tYXJrLmhlbGxvCi0gICAgICAgICAgICBj
bGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBweXRlc3RtYXJrID0gcHl0
ZXN0Lm1hcmsud29ybGQKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYpOgotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQgVGVzdENsYXNzLnRlc3RfZnVuYy5oZWxsbwotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgVGVzdENsYXNzLnRlc3RfZnVuYy53b3JsZAotICAgICAgICAi
IiIKLSAgICAgICAgKQotICAgICAgICBrZXl3b3JkcyA9IGl0ZW0ua2V5d29yZHMKLSAgICAgICAg
YXNzZXJ0ICJoZWxsbyIgaW4ga2V5d29yZHMKLSAgICAgICAgYXNzZXJ0ICJ3b3JsZCIgaW4ga2V5
d29yZHMKLQotICAgIEBpZ25vcmVfbWFya2luZm8KLSAgICBkZWYgdGVzdF9tZXJnaW5nX21hcmtl
cnMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIHB5dGVz
dG1hcmsgPSBweXRlc3QubWFyay5oZWxsbygicG9zMSIsIHg9MSwgeT0yKQotICAgICAgICAgICAg
Y2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgIyBjbGFzc2xldmVsIG92
ZXJyaWRlcyBtb2R1bGUgbGV2ZWwKLSAgICAgICAgICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0
Lm1hcmsuaGVsbG8oeD0zKQotICAgICAgICAgICAgICAgIEBweXRlc3QubWFyay5oZWxsbygicG9z
MCIsIHo9NCkKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYpOgotICAgICAgICAg
ICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIGl0ZW1zLCBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhwKQotICAgICAgICBpdGVtLCA9IGl0ZW1zCi0g
ICAgICAgIGtleXdvcmRzID0gaXRlbS5rZXl3b3JkcwotICAgICAgICBtYXJrZXIgPSBrZXl3b3Jk
c1siaGVsbG8iXQotICAgICAgICBhc3NlcnQgbWFya2VyLmFyZ3MgPT0gKCJwb3MwIiwgInBvczEi
KQotICAgICAgICBhc3NlcnQgbWFya2VyLmt3YXJncyA9PSB7IngiOiAxLCAieSI6IDIsICJ6Ijog
NH0KLQotICAgICAgICAjIHRlc3QgdGhlIG5ldyBfX2l0ZXJfXyBpbnRlcmZhY2UKLSAgICAgICAg
dmFsdWVzID0gbGlzdChtYXJrZXIpCi0gICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAzCi0g
ICAgICAgIGFzc2VydCB2YWx1ZXNbMF0uYXJncyA9PSAoInBvczAiLCkKLSAgICAgICAgYXNzZXJ0
IHZhbHVlc1sxXS5hcmdzID09ICgpCi0gICAgICAgIGFzc2VydCB2YWx1ZXNbMl0uYXJncyA9PSAo
InBvczEiLCkKIAorY2xhc3MgVGVzdEZ1bmN0aW9uYWwob2JqZWN0KToKICAgICBkZWYgdGVzdF9t
ZXJnaW5nX21hcmtlcnNfZGVlcChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgIyBpc3N1ZSAxOTkg
LSBwcm9wYWdhdGUgbWFya2VycyBpbnRvIG5lc3RlZCBjbGFzc2VzCiAgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoCkBAIC02MzMsOCArNDc1LDggQEAgY2xhc3MgVGVzdEZ1bmN0aW9uYWwo
b2JqZWN0KToKICAgICAgICAgaXRlbXMsIHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHAp
CiAgICAgICAgIHNlbGYuYXNzZXJ0X21hcmtlcnMoaXRlbXMsIHRlc3RfZm9vPSgiYSIsICJiIiks
IHRlc3RfYmFyPSgiYSIsKSkKIAotICAgIEBweXRlc3QubWFyay5pc3N1ZTU2OAogICAgIGRlZiB0
ZXN0X21hcmtfc2hvdWxkX25vdF9wYXNzX3RvX3NpZWJsaW5nX2NsYXNzKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICAiIiIjNTY4IiIiCiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAg
ICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKQEAgLTY1NiwxMSArNDk4
LDYgQEAgY2xhc3MgVGVzdEZ1bmN0aW9uYWwob2JqZWN0KToKICAgICAgICAgaXRlbXMsIHJlYyA9
IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHApCiAgICAgICAgIGJhc2VfaXRlbSwgc3ViX2l0ZW0s
IHN1Yl9pdGVtX290aGVyID0gaXRlbXMKICAgICAgICAgcHJpbnQoaXRlbXMsIFt4Lm5vZGVpZCBm
b3IgeCBpbiBpdGVtc10pCi0gICAgICAgICMgbGVnYWN5IGFwaSBzbWVhcnMKLSAgICAgICAgYXNz
ZXJ0IGhhc2F0dHIoYmFzZV9pdGVtLm9iaiwgImIiKQotICAgICAgICBhc3NlcnQgaGFzYXR0cihz
dWJfaXRlbV9vdGhlci5vYmosICJiIikKLSAgICAgICAgYXNzZXJ0IGhhc2F0dHIoc3ViX2l0ZW0u
b2JqLCAiYiIpCi0KICAgICAgICAgIyBuZXcgYXBpIHNlcmVnYXRlcwogICAgICAgICBhc3NlcnQg
bm90IGxpc3QoYmFzZV9pdGVtLml0ZXJfbWFya2VycyhuYW1lPSJiIikpCiAgICAgICAgIGFzc2Vy
dCBub3QgbGlzdChzdWJfaXRlbV9vdGhlci5pdGVyX21hcmtlcnMobmFtZT0iYiIpKQpAQCAtNzQ2
LDI2ICs1ODMsNiBAQCBjbGFzcyBUZXN0RnVuY3Rpb25hbChvYmplY3QpOgogICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbImtleXdvcmQ6ICpoZWxsbyoiXSkKIAotICAgIEBpZ25vcmVfbWFya2luZm8KLSAgICBk
ZWYgdGVzdF9tZXJnaW5nX21hcmtlcnNfdHdvX2Z1bmN0aW9ucyhzZWxmLCB0ZXN0ZGlyKToKLSAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5tYXJrLmhlbGxvKCJwb3MxIiwg
ej00KQotICAgICAgICAgICAgQHB5dGVzdC5tYXJrLmhlbGxvKCJwb3MwIiwgej0zKQotICAgICAg
ICAgICAgZGVmIHRlc3RfZnVuYygpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIi
Ci0gICAgICAgICkKLSAgICAgICAgaXRlbXMsIHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1z
KHApCi0gICAgICAgIGl0ZW0sID0gaXRlbXMKLSAgICAgICAga2V5d29yZHMgPSBpdGVtLmtleXdv
cmRzCi0gICAgICAgIG1hcmtlciA9IGtleXdvcmRzWyJoZWxsbyJdCi0gICAgICAgIHZhbHVlcyA9
IGxpc3QobWFya2VyKQotICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMgotICAgICAgICBh
c3NlcnQgdmFsdWVzWzBdLmFyZ3MgPT0gKCJwb3MwIiwpCi0gICAgICAgIGFzc2VydCB2YWx1ZXNb
MV0uYXJncyA9PSAoInBvczEiLCkKLQogICAgIGRlZiB0ZXN0X25vX21hcmtlcl9tYXRjaF9vbl91
bm1hcmtlZF9uYW1lcyhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgKICAgICAgICAgICAgICIiIgpAQCAtNzg1LDYgKzYwMiwxOCBAQCBjbGFzcyBUZXN0RnVu
Y3Rpb25hbChvYmplY3QpOgogICAgICAgICBkZXNlbGVjdGVkX3Rlc3RzID0gZGxpc3RbMF0uaXRl
bXMKICAgICAgICAgYXNzZXJ0IGxlbihkZXNlbGVjdGVkX3Rlc3RzKSA9PSAyCiAKKyAgICBkZWYg
dGVzdF9pbnZhbGlkX21fb3B0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2EoKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItbSBib2d1cy8iKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbIklOVEVSTkFMRVJST1I+IE1hcmtlciBleHBy
ZXNzaW9uIG11c3QgYmUgdmFsaWQgUHl0aG9uISJdCisgICAgICAgICkKKwogICAgIGRlZiB0ZXN0
X2tleXdvcmRzX2F0X25vZGVfbGV2ZWwoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgpAQCAtODI3LDEzICs2NTYsMTMgQEAgY2xhc3Mg
VGVzdEZ1bmN0aW9uYWwob2JqZWN0KToKICAgICAgICAgICAgICAgICBhc3NlcnQgIm1hcmsyIiBp
biByZXF1ZXN0LmtleXdvcmRzCiAgICAgICAgICAgICAgICAgYXNzZXJ0ICJtYXJrMyIgaW4gcmVx
dWVzdC5rZXl3b3JkcwogICAgICAgICAgICAgICAgIGFzc2VydCAxMCBub3QgaW4gcmVxdWVzdC5r
ZXl3b3JkcwotICAgICAgICAgICAgICAgIG1hcmtlciA9IHJlcXVlc3Qubm9kZS5nZXRfbWFya2Vy
KCJtYXJrMSIpCisgICAgICAgICAgICAgICAgbWFya2VyID0gcmVxdWVzdC5ub2RlLmdldF9jbG9z
ZXN0X21hcmtlcigibWFyazEiKQogICAgICAgICAgICAgICAgIGFzc2VydCBtYXJrZXIubmFtZSA9
PSAibWFyazEiCiAgICAgICAgICAgICAgICAgYXNzZXJ0IG1hcmtlci5hcmdzID09ICgpCiAgICAg
ICAgICAgICAgICAgYXNzZXJ0IG1hcmtlci5rd2FyZ3MgPT0ge30KICAgICAgICAgIiIiCiAgICAg
ICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItbSIsICJtYXJrMSIp
CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLW0iLCAibWFyazEiLCBTSE9X
X1BZVEVTVF9XQVJOSU5HU19BUkcpCiAgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0xKQogCiAgICAgZGVmIGFzc2VydF9tYXJrZXJzKHNlbGYsIGl0ZW1zLCAqKmV4cGVjdGVkKToK
QEAgLTg0MywxOSArNjcyLDE1IEBAIGNsYXNzIFRlc3RGdW5jdGlvbmFsKG9iamVjdCk6CiAgICAg
ICAgIC4uIG5vdGU6OiB0aGlzIGNvdWxkIGJlIG1vdmVkIHRvIGBgdGVzdGRpcmBgIGlmIHByb3Zl
biB0byBiZSB1c2VmdWwKICAgICAgICAgdG8gb3RoZXIgbW9kdWxlcy4KICAgICAgICAgIiIiCi0g
ICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrSW5mbwogCiAgICAgICAgIGl0ZW1z
ID0ge3gubmFtZTogeCBmb3IgeCBpbiBpdGVtc30KICAgICAgICAgZm9yIG5hbWUsIGV4cGVjdGVk
X21hcmtlcnMgaW4gZXhwZWN0ZWQuaXRlbXMoKToKLSAgICAgICAgICAgIG1hcmtlcnMgPSBpdGVt
c1tuYW1lXS5rZXl3b3Jkcy5fbWFya2VycwotICAgICAgICAgICAgbWFya2VyX25hbWVzID0gewot
ICAgICAgICAgICAgICAgIG5hbWUgZm9yIChuYW1lLCB2KSBpbiBtYXJrZXJzLml0ZW1zKCkgaWYg
aXNpbnN0YW5jZSh2LCBNYXJrSW5mbykKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFzc2Vy
dCBtYXJrZXJfbmFtZXMgPT0gc2V0KGV4cGVjdGVkX21hcmtlcnMpCisgICAgICAgICAgICBtYXJr
ZXJzID0ge20ubmFtZSBmb3IgbSBpbiBpdGVtc1tuYW1lXS5pdGVyX21hcmtlcnMoKX0KKyAgICAg
ICAgICAgIGFzc2VydCBtYXJrZXJzID09IHNldChleHBlY3RlZF9tYXJrZXJzKQogCi0gICAgQHB5
dGVzdC5tYXJrLmlzc3VlMTU0MAogICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiaWdu
b3JlIikKICAgICBkZWYgdGVzdF9tYXJrX2Zyb21fcGFyYW1ldGVycyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgIiIiIzE1NDAiIiIKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAg
ICAgICAgIiIiCiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CkBAIC04NzUsMTIgKzcwMCwxMSBA
QCBjbGFzcyBUZXN0RnVuY3Rpb25hbChvYmplY3QpOgogICAgICAgICAgICAgICAgIGFzc2VydCBU
cnVlCiAgICAgICAgICIiIgogICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihTSE9XX1BZVEVT
VF9XQVJOSU5HU19BUkcpCiAgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MSkK
IAogCiBjbGFzcyBUZXN0S2V5d29yZFNlbGVjdGlvbihvYmplY3QpOgotCiAgICAgZGVmIHRlc3Rf
c2VsZWN0X3NpbXBsZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgZmlsZV90ZXN0ID0gdGVzdGRp
ci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC0xMDExLDUwICs4MzUsNyBAQCBjbGFz
cyBUZXN0S2V5d29yZFNlbGVjdGlvbihvYmplY3QpOgogICAgICAgICBhc3NlcnRfdGVzdF9pc19u
b3Rfc2VsZWN0ZWQoIigpIikKIAogCi1AcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCi0gICAgImFy
Z3ZhbCwgZXhwZWN0ZWQiLAotICAgIFsKLSAgICAgICAgKAotICAgICAgICAgICAgcHl0ZXN0Lm1h
cmsuc2tpcCgpKCgxLCAyKSksCi0gICAgICAgICAgICBQYXJhbWV0ZXJTZXQodmFsdWVzPSgxLCAy
KSwgbWFya3M9W3B5dGVzdC5tYXJrLnNraXBdLCBpZD1Ob25lKSwKLSAgICAgICAgKSwKLSAgICAg
ICAgKAotICAgICAgICAgICAgcHl0ZXN0Lm1hcmsueGZhaWwocHl0ZXN0Lm1hcmsuc2tpcCgpKCgx
LCAyKSkpLAotICAgICAgICAgICAgUGFyYW1ldGVyU2V0KAotICAgICAgICAgICAgICAgIHZhbHVl
cz0oMSwgMiksIG1hcmtzPVtweXRlc3QubWFyay54ZmFpbCwgcHl0ZXN0Lm1hcmsuc2tpcF0sIGlk
PU5vbmUKLSAgICAgICAgICAgICksCi0gICAgICAgICksCi0gICAgXSwKLSkKLUBweXRlc3QubWFy
ay5maWx0ZXJ3YXJuaW5ncygiaWdub3JlIikKLWRlZiB0ZXN0X3BhcmFtZXRlcnNldF9leHRyYWN0
ZnJvbShhcmd2YWwsIGV4cGVjdGVkKToKLSAgICBleHRyYWN0ZWQgPSBQYXJhbWV0ZXJTZXQuZXh0
cmFjdF9mcm9tKGFyZ3ZhbCkKLSAgICBhc3NlcnQgZXh0cmFjdGVkID09IGV4cGVjdGVkCi0KLQot
ZGVmIHRlc3RfbGVnYWN5X3RyYW5zZmVyKCk6Ci0KLSAgICBjbGFzcyBGYWtlTW9kdWxlKG9iamVj
dCk6Ci0gICAgICAgIHB5dGVzdG1hcmsgPSBbXQotCi0gICAgY2xhc3MgRmFrZUNsYXNzKG9iamVj
dCk6Ci0gICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5ub2Z1bgotCi0gICAgQHB5dGVz
dC5tYXJrLmZ1bgotICAgIGRlZiBmYWtlX21ldGhvZChzZWxmKToKLSAgICAgICAgcGFzcwotCi0g
ICAgdHJhbnNmZXJfbWFya2VycyhmYWtlX21ldGhvZCwgRmFrZUNsYXNzLCBGYWtlTW9kdWxlKQot
Ci0gICAgIyBsZWdhY3kgbWFya3MgdHJhbnNmZXIgc21lYXJlZAotICAgIGFzc2VydCBmYWtlX21l
dGhvZC5ub2Z1bgotICAgIGFzc2VydCBmYWtlX21ldGhvZC5mdW4KLSAgICAjIHByaXN0aW5lIG1h
cmtzIGRvbnQgdHJhbnNmZXIKLSAgICBhc3NlcnQgZmFrZV9tZXRob2QucHl0ZXN0bWFyayA9PSBb
cHl0ZXN0Lm1hcmsuZnVuLm1hcmtdCi0KLQogY2xhc3MgVGVzdE1hcmtEZWNvcmF0b3Iob2JqZWN0
KToKLQogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKICAgICAgICAgImxocywgcmhzLCBl
eHBlY3RlZCIsCiAgICAgICAgIFsKQEAgLTEwNzEsNyArODUyLDE0IEBAIGNsYXNzIFRlc3RNYXJr
RGVjb3JhdG9yKG9iamVjdCk6CiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm1hcmsiLCBbTm9u
ZSwgIiIsICJza2lwIiwgInhmYWlsIl0pCiBkZWYgdGVzdF9wYXJhbWV0ZXJzZXRfZm9yX3BhcmFt
ZXRyaXplX21hcmtzKHRlc3RkaXIsIG1hcmspOgogICAgIGlmIG1hcmsgaXMgbm90IE5vbmU6Ci0g
ICAgICAgIHRlc3RkaXIubWFrZWluaSgiW3B5dGVzdF1cbnt9PXt9Ii5mb3JtYXQoRU1QVFlfUEFS
QU1FVEVSU0VUX09QVElPTiwgbWFyaykpCisgICAgICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAg
ICAgICAgICIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICB7fT17fQorICAgICAgICAiIiIu
Zm9ybWF0KAorICAgICAgICAgICAgICAgIEVNUFRZX1BBUkFNRVRFUlNFVF9PUFRJT04sIG1hcmsK
KyAgICAgICAgICAgICkKKyAgICAgICAgKQogCiAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNv
bmZpZygpCiAgICAgZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IHB5dGVzdF9jb25maWd1cmUsIGdl
dF9lbXB0eV9wYXJhbWV0ZXJzZXRfbWFyawpAQCAtMTA4Nyw2ICs4NzUsNDggQEAgZGVmIHRlc3Rf
cGFyYW1ldGVyc2V0X2Zvcl9wYXJhbWV0cml6ZV9tYXJrcyh0ZXN0ZGlyLCBtYXJrKToKICAgICAg
ICAgYXNzZXJ0IHJlc3VsdF9tYXJrLmt3YXJncy5nZXQoInJ1biIpIGlzIEZhbHNlCiAKIAorZGVm
IHRlc3RfcGFyYW1ldGVyc2V0X2Zvcl9mYWlsX2F0X2NvbGxlY3QodGVzdGRpcik6CisgICAgdGVz
dGRpci5tYWtlaW5pKAorICAgICAgICAiIiIKKyAgICBbcHl0ZXN0XQorICAgIHt9PWZhaWxfYXRf
Y29sbGVjdAorICAgICIiIi5mb3JtYXQoCisgICAgICAgICAgICBFTVBUWV9QQVJBTUVURVJTRVRf
T1BUSU9OCisgICAgICAgICkKKyAgICApCisKKyAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29u
ZmlnKCkKKyAgICBmcm9tIF9weXRlc3QubWFyayBpbXBvcnQgcHl0ZXN0X2NvbmZpZ3VyZSwgZ2V0
X2VtcHR5X3BhcmFtZXRlcnNldF9tYXJrCisKKyAgICBweXRlc3RfY29uZmlndXJlKGNvbmZpZykK
KworICAgIHdpdGggcHl0ZXN0LnJhaXNlcygKKyAgICAgICAgQ29sbGVjdG9yLkNvbGxlY3RFcnJv
ciwKKyAgICAgICAgbWF0Y2g9ciJFbXB0eSBwYXJhbWV0ZXIgc2V0IGluICdweXRlc3RfY29uZmln
dXJlJyBhdCBsaW5lIFxkXGQrIiwKKyAgICApOgorICAgICAgICBnZXRfZW1wdHlfcGFyYW1ldGVy
c2V0X21hcmsoY29uZmlnLCBbImEiXSwgcHl0ZXN0X2NvbmZpZ3VyZSkKKworICAgIHAxID0gdGVz
dGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisg
ICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZW1wdHkiLCBbXSkKKyAgICAgICAgZGVm
IHRlc3QoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KHN0cihwMSkpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAiY29sbGVjdGVkIDAgaXRlbXMgLyAxIGVy
cm9ycyIsCisgICAgICAgICAgICAiKiBFUlJPUiBjb2xsZWN0aW5nIHRlc3RfcGFyYW1ldGVyc2V0
X2Zvcl9mYWlsX2F0X2NvbGxlY3QucHkgKiIsCisgICAgICAgICAgICAiRW1wdHkgcGFyYW1ldGVy
IHNldCBpbiAndGVzdCcgYXQgbGluZSAzIiwKKyAgICAgICAgICAgICIqPSAxIGVycm9yIGluICoi
LAorICAgICAgICBdCisgICAgKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfSU5URVJS
VVBURUQKKworCiBkZWYgdGVzdF9wYXJhbWV0ZXJzZXRfZm9yX3BhcmFtZXRyaXplX2JhZF9tYXJr
bmFtZSh0ZXN0ZGlyKToKICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LlVzYWdlRXJyb3Ip
OgogICAgICAgICB0ZXN0X3BhcmFtZXRlcnNldF9mb3JfcGFyYW1ldHJpemVfbWFya3ModGVzdGRp
ciwgImJhZCIpCkBAIC0xMTE5LDE2ICs5NDksODQgQEAgZGVmIHRlc3RfbWFya19leHByZXNzaW9u
c19ub19zbWVhcih0ZXN0ZGlyKToKICAgICBkZXNlbGVjdGVkX3Rlc3RzID0gZGxpc3RbMF0uaXRl
bXMKICAgICBhc3NlcnQgbGVuKGRlc2VsZWN0ZWRfdGVzdHMpID09IDEKIAorICAgICMgdG9kbzog
Zml4ZWQKICAgICAjIGtleXdvcmRzIHNtZWFyIC0gZXhwZWN0ZWQgYmVoYXZpb3VyCi0gICAgcmVw
cmVjX2tleXdvcmRzID0gdGVzdGRpci5pbmxpbmVfcnVuKCItayIsICJGT08iKQotICAgIHBhc3Nl
ZF9rLCBza2lwcGVkX2ssIGZhaWxlZF9rID0gcmVwcmVjX2tleXdvcmRzLmNvdW50b3V0Y29tZXMo
KQotICAgIGFzc2VydCBwYXNzZWRfayA9PSAyCi0gICAgYXNzZXJ0IHNraXBwZWRfayA9PSBmYWls
ZWRfayA9PSAwCisgICAgIyByZXByZWNfa2V5d29yZHMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1r
IiwgIkZPTyIpCisgICAgIyBwYXNzZWRfaywgc2tpcHBlZF9rLCBmYWlsZWRfayA9IHJlcHJlY19r
ZXl3b3Jkcy5jb3VudG91dGNvbWVzKCkKKyAgICAjIGFzc2VydCBwYXNzZWRfayA9PSAyCisgICAg
IyBhc3NlcnQgc2tpcHBlZF9rID09IGZhaWxlZF9rID09IDAKIAogCi1kZWYgdGVzdF9hZGRtYXJr
ZXJfZ2V0bWFya2VyKCk6CitkZWYgdGVzdF9hZGRtYXJrZXJfb3JkZXIoKToKICAgICBub2RlID0g
Tm9kZSgiVGVzdCIsIGNvbmZpZz1tb2NrLk1vY2soKSwgc2Vzc2lvbj1tb2NrLk1vY2soKSwgbm9k
ZWlkPSJUZXN0IikKLSAgICBub2RlLmFkZF9tYXJrZXIocHl0ZXN0Lm1hcmsuYSgxKSkKLSAgICBu
b2RlLmFkZF9tYXJrZXIoImIiKQotICAgIG5vZGUuZ2V0X21hcmtlcigiYSIpLmNvbWJpbmVkCi0g
ICAgbm9kZS5nZXRfbWFya2VyKCJiIikuY29tYmluZWQKKyAgICBub2RlLmFkZF9tYXJrZXIoImZv
byIpCisgICAgbm9kZS5hZGRfbWFya2VyKCJiYXIiKQorICAgIG5vZGUuYWRkX21hcmtlcigiYmF6
IiwgYXBwZW5kPUZhbHNlKQorICAgIGV4dHJhY3RlZCA9IFt4Lm5hbWUgZm9yIHggaW4gbm9kZS5p
dGVyX21hcmtlcnMoKV0KKyAgICBhc3NlcnQgZXh0cmFjdGVkID09IFsiYmF6IiwgImZvbyIsICJi
YXIiXQorCisKK0BweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiaWdub3JlIikKK2RlZiB0ZXN0
X21hcmtlcnNfZnJvbV9wYXJhbWV0cml6ZSh0ZXN0ZGlyKToKKyAgICAiIiIjMzYwNSIiIgorICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX19mdXR1cmVf
XyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAg
IGZpcnN0X2N1c3RvbV9tYXJrID0gcHl0ZXN0Lm1hcmsuY3VzdG9tX21hcmtlcgorICAgICAgICBj
dXN0b21fbWFyayA9IHB5dGVzdC5tYXJrLmN1c3RvbV9tYXJrCisgICAgICAgIEBweXRlc3QuZml4
dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgIGRlZiB0cmlnZ2VyKHJlcXVlc3QpOgorICAgICAg
ICAgICAgY3VzdG9tX21hcmsgPSBsaXN0KHJlcXVlc3Qubm9kZS5pdGVyX21hcmtlcnMoJ2N1c3Rv
bV9tYXJrJykpCisgICAgICAgICAgICBwcmludCgiQ3VzdG9tIG1hcmsgJXMiICUgY3VzdG9tX21h
cmspCisKKyAgICAgICAgQGN1c3RvbV9tYXJrKCJjdXN0b20gbWFyayBub24gcGFyYW1ldHJpemVk
IikKKyAgICAgICAgZGVmIHRlc3RfY3VzdG9tX21hcmtfbm9uX3BhcmFtZXRyaXplZCgpOgorICAg
ICAgICAgICAgcHJpbnQoIkhleSBmcm9tIHRlc3QiKQorCisgICAgICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgKKyAgICAgICAgICAgICJvYmpfdHlwZSIsCisgICAgICAgICAgICBbCisgICAg
ICAgICAgICAgICAgZmlyc3RfY3VzdG9tX21hcmsoImZpcnN0IGN1c3RvbSBtYXJrIikoInRlbXBs
YXRlIiksCisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKCAjIFRoaW5rIHRoaXMgc2hvdWxk
IGJlIHJlY29tbWVuZGVkIHdheT8KKyAgICAgICAgICAgICAgICAgICAgImRpc2siLAorICAgICAg
ICAgICAgICAgICAgICBtYXJrcz1jdXN0b21fbWFyaygnY3VzdG9tIG1hcmsxJykKKyAgICAgICAg
ICAgICAgICApLAorICAgICAgICAgICAgICAgIGN1c3RvbV9tYXJrKCJjdXN0b20gbWFyazIiKSgi
dm0iKSwgICMgVHJpZWQgYWxzbyB0aGlzCisgICAgICAgICAgICBdCisgICAgICAgICkKKyAgICAg
ICAgZGVmIHRlc3RfY3VzdG9tX21hcmtfcGFyYW1ldHJpemVkKG9ial90eXBlKToKKyAgICAgICAg
ICAgIHByaW50KCJvYmpfdHlwZSBpczoiLCBvYmpfdHlwZSkKKyAgICAiIiIKKyAgICApCisKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChTSE9XX1BZVEVTVF9XQVJOSU5HU19BUkcpCisg
ICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9NCkKKworCitkZWYgdGVzdF9weXRlc3Rf
cGFyYW1faWRfcmVxdWlyZXNfc3RyaW5nKCk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVF
cnJvcikgYXMgZXhjaW5mbzoKKyAgICAgICAgcHl0ZXN0LnBhcmFtKGlkPVRydWUpCisgICAgKG1z
ZywpID0gZXhjaW5mby52YWx1ZS5hcmdzCisgICAgaWYgc2l4LlBZMjoKKyAgICAgICAgYXNzZXJ0
IG1zZyA9PSAiRXhwZWN0ZWQgaWQgdG8gYmUgYSBzdHJpbmcsIGdvdCA8dHlwZSAnYm9vbCc+OiBU
cnVlIgorICAgIGVsc2U6CisgICAgICAgIGFzc2VydCBtc2cgPT0gIkV4cGVjdGVkIGlkIHRvIGJl
IGEgc3RyaW5nLCBnb3QgPGNsYXNzICdib29sJz46IFRydWUiCisKKworQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJzIiwgKE5vbmUsICJoZWxsbyB3b3JsZCIpKQorZGVmIHRlc3RfcHl0ZXN0X3Bh
cmFtX2lkX2FsbG93c19ub25lX29yX3N0cmluZyhzKToKKyAgICBhc3NlcnQgcHl0ZXN0LnBhcmFt
KGlkPXMpCisKKworZGVmIHRlc3RfcHl0ZXN0X3BhcmFtX3dhcm5pbmdfb25fdW5rbm93bl9rd2Fy
Z3MoKToKKyAgICB3aXRoIHB5dGVzdC53YXJucyhQeXRlc3REZXByZWNhdGlvbldhcm5pbmcpIGFz
IHdhcm5pbmZvOgorICAgICAgICAjIHR5cG8sIHNob3VsZCBiZSBtYXJrcz0KKyAgICAgICAgcHl0
ZXN0LnBhcmFtKDEsIDIsIG1hcms9cHl0ZXN0Lm1hcmsueGZhaWwoKSkKKyAgICBhc3NlcnQgd2Fy
bmluZm9bMF0uZmlsZW5hbWUgPT0gX19maWxlX18KKyAgICAobXNnLCkgPSB3YXJuaW5mb1swXS5t
ZXNzYWdlLmFyZ3MKKyAgICBhc3NlcnQgbXNnID09ICgKKyAgICAgICAgInB5dGVzdC5wYXJhbSgp
IGdvdCB1bmV4cGVjdGVkIGtleXdvcmQgYXJndW1lbnRzOiBbJ21hcmsnXS5cbiIKKyAgICAgICAg
IlRoaXMgd2lsbCBiZSBhbiBlcnJvciBpbiBmdXR1cmUgdmVyc2lvbnMuIgorICAgICkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tb2RpbXBvcnQucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3RfbW9kaW1wb3J0LnB5CmluZGV4IGY3YjkyYTBiNmY2NzE1MzE2OWJjMGFi
MWVmOWU1OWU4M2QyODY0NzMuLjVkZDA1N2M1NWUyZmQ2MDRkZjQwNGM3ZGZhZWMwNDI1Y2IzMDlj
ZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tb2RpbXBvcnQucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X21vZGltcG9ydC5weQpAQCAtMSw4ICsxLDEzIEBA
Ci1pbXBvcnQgcHkKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBpbXBvcnQgc3VicHJvY2Vzcwog
aW1wb3J0IHN5cwotaW1wb3J0IHB5dGVzdAorCitpbXBvcnQgcHkKKwogaW1wb3J0IF9weXRlc3QK
K2ltcG9ydCBweXRlc3QKKworcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnNsb3cKIAogTU9EU0VU
ID0gWwogICAgIHgKQEAgLTE3LDEzICsyMiwyMCBAQCBkZWYgdGVzdF9maWxlaW1wb3J0KG1vZGZp
bGUpOgogICAgICMgd2l0aG91dCBuZWVkaW5nIHRoZSBweXRlc3QgbmFtZXNwYWNlIGJlaW5nIHNl
dAogICAgICMgdGhpcyBpcyBjcml0aWNhbCBmb3IgdGhlIGluaXRpYWxpemF0aW9uIG9mIHhkaXN0
CiAKLSAgICByZXMgPSBzdWJwcm9jZXNzLmNhbGwoCisgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4o
CiAgICAgICAgIFsKICAgICAgICAgICAgIHN5cy5leGVjdXRhYmxlLAogICAgICAgICAgICAgIi1j
IiwKICAgICAgICAgICAgICJpbXBvcnQgc3lzLCBweTsgcHkucGF0aC5sb2NhbChzeXMuYXJndlsx
XSkucHlpbXBvcnQoKSIsCiAgICAgICAgICAgICBtb2RmaWxlLnN0cnBhdGgsCi0gICAgICAgIF0K
KyAgICAgICAgXSwKKyAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgc3Rk
ZXJyPXN1YnByb2Nlc3MuUElQRSwKKyAgICApCisgICAgKG91dCwgZXJyKSA9IHAuY29tbXVuaWNh
dGUoKQorICAgIGFzc2VydCBwLnJldHVybmNvZGUgPT0gMCwgImltcG9ydGluZyAlcyBmYWlsZWQg
KGV4aXRjb2RlICVkKTogb3V0PSVyLCBlcnI9JXIiICUgKAorICAgICAgICBtb2RmaWxlLAorICAg
ICAgICBwLnJldHVybmNvZGUsCisgICAgICAgIG91dCwKKyAgICAgICAgZXJyLAogICAgICkKLSAg
ICBpZiByZXM6Ci0gICAgICAgIHB5dGVzdC5mYWlsKCJjb21tYW5kIHJlc3VsdCAlcyIgJSByZXMp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbW9ua2V5cGF0Y2gucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbW9ua2V5cGF0Y2gucHkKaW5kZXggYzI5OGNlMGQ5Mjkw
Mjg4Yzg0YjRlMzBmNDJlMDQ1NDA1N2Y0NTI0Ni4uOTYxYzU3ZTA2YTMxMzhmNzI0MWUyZDYwYTQz
NjRkNGYxMGQwZGRiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X21vbmtl
eXBhdGNoLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tb25rZXlwYXRjaC5weQpA
QCAtMSw4ICsxLDE1IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
ZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0
IG9zCitpbXBvcnQgcmUKIGltcG9ydCBzeXMKIGltcG9ydCB0ZXh0d3JhcAogCitpbXBvcnQgc2l4
CisKIGltcG9ydCBweXRlc3QKIGZyb20gX3B5dGVzdC5tb25rZXlwYXRjaCBpbXBvcnQgTW9ua2V5
UGF0Y2gKIApAQCAtMTcsMTIgKzI0LDExIEBAIGRlZiBtcCgpOgogCiAKIGRlZiB0ZXN0X3NldGF0
dHIoKToKLQogICAgIGNsYXNzIEEob2JqZWN0KToKICAgICAgICAgeCA9IDEKIAogICAgIG1vbmtl
eXBhdGNoID0gTW9ua2V5UGF0Y2goKQotICAgIHB5dGVzdC5yYWlzZXMoQXR0cmlidXRlRXJyb3Is
ICJtb25rZXlwYXRjaC5zZXRhdHRyKEEsICdub3RleGlzdHMnLCAyKSIpCisgICAgcHl0ZXN0LnJh
aXNlcyhBdHRyaWJ1dGVFcnJvciwgbW9ua2V5cGF0Y2guc2V0YXR0ciwgQSwgIm5vdGV4aXN0cyIs
IDIpCiAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihBLCAieSIsIDIsIHJhaXNpbmc9RmFsc2UpCiAg
ICAgYXNzZXJ0IEEueSA9PSAyCiAgICAgbW9ua2V5cGF0Y2gudW5kbygpCkBAIC00Miw3ICs0OCw2
IEBAIGRlZiB0ZXN0X3NldGF0dHIoKToKIAogCiBjbGFzcyBUZXN0U2V0YXR0cldpdGhJbXBvcnRQ
YXRoKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9zdHJpbmdfZXhwcmVzc2lvbihzZWxmLCBtb25r
ZXlwYXRjaCk6CiAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoIm9zLnBhdGguYWJzcGF0aCIs
IGxhbWJkYSB4OiAiaGVsbG8yIikKICAgICAgICAgYXNzZXJ0IG9zLnBhdGguYWJzcGF0aCgiMTIz
IikgPT0gImhlbGxvMiIKQEAgLTg0LDcgKzg5LDYgQEAgY2xhc3MgVGVzdFNldGF0dHJXaXRoSW1w
b3J0UGF0aChvYmplY3QpOgogCiAKIGRlZiB0ZXN0X2RlbGF0dHIoKToKLQogICAgIGNsYXNzIEEo
b2JqZWN0KToKICAgICAgICAgeCA9IDEKIApAQCAtOTYsNyArMTAwLDcgQEAgZGVmIHRlc3RfZGVs
YXR0cigpOgogCiAgICAgbW9ua2V5cGF0Y2ggPSBNb25rZXlQYXRjaCgpCiAgICAgbW9ua2V5cGF0
Y2guZGVsYXR0cihBLCAieCIpCi0gICAgcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgIm1v
bmtleXBhdGNoLmRlbGF0dHIoQSwgJ3knKSIpCisgICAgcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVF
cnJvciwgbW9ua2V5cGF0Y2guZGVsYXR0ciwgQSwgInkiKQogICAgIG1vbmtleXBhdGNoLmRlbGF0
dHIoQSwgInkiLCByYWlzaW5nPUZhbHNlKQogICAgIG1vbmtleXBhdGNoLnNldGF0dHIoQSwgIngi
LCA1LCByYWlzaW5nPUZhbHNlKQogICAgIGFzc2VydCBBLnggPT0gNQpAQCAtMTUzLDcgKzE1Nyw3
IEBAIGRlZiB0ZXN0X2RlbGl0ZW0oKToKICAgICBtb25rZXlwYXRjaC5kZWxpdGVtKGQsICJ4IikK
ICAgICBhc3NlcnQgIngiIG5vdCBpbiBkCiAgICAgbW9ua2V5cGF0Y2guZGVsaXRlbShkLCAieSIs
IHJhaXNpbmc9RmFsc2UpCi0gICAgcHl0ZXN0LnJhaXNlcyhLZXlFcnJvciwgIm1vbmtleXBhdGNo
LmRlbGl0ZW0oZCwgJ3knKSIpCisgICAgcHl0ZXN0LnJhaXNlcyhLZXlFcnJvciwgbW9ua2V5cGF0
Y2guZGVsaXRlbSwgZCwgInkiKQogICAgIGFzc2VydCBub3QgZAogICAgIG1vbmtleXBhdGNoLnNl
dGl0ZW0oZCwgInkiLCAxNzAwKQogICAgIGFzc2VydCBkWyJ5Il0gPT0gMTcwMApAQCAtMTY2LDcg
KzE3MCw4IEBAIGRlZiB0ZXN0X2RlbGl0ZW0oKToKIAogZGVmIHRlc3Rfc2V0ZW52KCk6CiAgICAg
bW9ua2V5cGF0Y2ggPSBNb25rZXlQYXRjaCgpCi0gICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJYWVox
MjMiLCAyKQorICAgIHdpdGggcHl0ZXN0Lndhcm5zKHB5dGVzdC5QeXRlc3RXYXJuaW5nKToKKyAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJYWVoxMjMiLCAyKQogICAgIGltcG9ydCBvcwogCiAg
ICAgYXNzZXJ0IG9zLmVudmlyb25bIlhZWjEyMyJdID09ICIyIgpAQCAtMTc4LDcgKzE4Myw3IEBA
IGRlZiB0ZXN0X2RlbGVudigpOgogICAgIG5hbWUgPSAieHl6MTIzNCIKICAgICBhc3NlcnQgbmFt
ZSBub3QgaW4gb3MuZW52aXJvbgogICAgIG1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQotICAg
IHB5dGVzdC5yYWlzZXMoS2V5RXJyb3IsICJtb25rZXlwYXRjaC5kZWxlbnYoJXIsIHJhaXNpbmc9
VHJ1ZSkiICUgbmFtZSkKKyAgICBweXRlc3QucmFpc2VzKEtleUVycm9yLCBtb25rZXlwYXRjaC5k
ZWxlbnYsIG5hbWUsIHJhaXNpbmc9VHJ1ZSkKICAgICBtb25rZXlwYXRjaC5kZWxlbnYobmFtZSwg
cmFpc2luZz1GYWxzZSkKICAgICBtb25rZXlwYXRjaC51bmRvKCkKICAgICBvcy5lbnZpcm9uW25h
bWVdID0gIjEiCkBAIC0xOTUsMTMgKzIwMCw1MCBAQCBkZWYgdGVzdF9kZWxlbnYoKToKICAgICAg
ICAgICAgIGRlbCBvcy5lbnZpcm9uW25hbWVdCiAKIAorY2xhc3MgVGVzdEVudmlyb25XYXJuaW5n
cyhvYmplY3QpOgorICAgICIiIgorICAgIG9zLmVudmlyb24ga2V5cyBhbmQgdmFsdWVzIHNob3Vs
ZCBiZSBuYXRpdmUgc3RyaW5ncywgb3RoZXJ3aXNlIGl0IHdpbGwgY2F1c2UgcHJvYmxlbXMgd2l0
aCBvdGhlciBtb2R1bGVzIChub3RhYmx5CisgICAgc3VicHJvY2VzcykuIE9uIFB5dGhvbiAyIG9z
LmVudmlyb24gYWNjZXB0cyBhbnl0aGluZyB3aXRob3V0IGNvbXBsYWluaW5nLCB3aGlsZSBQeXRo
b24gMyBkb2VzIHRoZSByaWdodCB0aGluZworICAgIGFuZCByYWlzZXMgYW4gZXJyb3IuCisgICAg
IiIiCisKKyAgICBWQVJfTkFNRSA9IHUiUFlURVNUX0lOVEVSTkFMX01ZX1ZBUiIKKworICAgIEBw
eXRlc3QubWFyay5za2lwaWYobm90IHNpeC5QWTIsIHJlYXNvbj0iUHl0aG9uIDIgb25seSB0ZXN0
IikKKyAgICBkZWYgdGVzdF9zZXRlbnZfdW5pY29kZV9rZXkoc2VsZiwgbW9ua2V5cGF0Y2gpOgor
ICAgICAgICB3aXRoIHB5dGVzdC53YXJucygKKyAgICAgICAgICAgIHB5dGVzdC5QeXRlc3RXYXJu
aW5nLAorICAgICAgICAgICAgbWF0Y2g9IkVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgeyFyfSBz
aG91bGQgYmUgc3RyIi5mb3JtYXQoc2VsZi5WQVJfTkFNRSksCisgICAgICAgICk6CisgICAgICAg
ICAgICBtb25rZXlwYXRjaC5zZXRlbnYoc2VsZi5WQVJfTkFNRSwgIjIiKQorCisgICAgQHB5dGVz
dC5tYXJrLnNraXBpZihub3Qgc2l4LlBZMiwgcmVhc29uPSJQeXRob24gMiBvbmx5IHRlc3QiKQor
ICAgIGRlZiB0ZXN0X2RlbGVudl91bmljb2RlX2tleShzZWxmLCBtb25rZXlwYXRjaCk6CisgICAg
ICAgIHdpdGggcHl0ZXN0Lndhcm5zKAorICAgICAgICAgICAgcHl0ZXN0LlB5dGVzdFdhcm5pbmcs
CisgICAgICAgICAgICBtYXRjaD0iRW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZSB7IXJ9IHNob3Vs
ZCBiZSBzdHIiLmZvcm1hdChzZWxmLlZBUl9OQU1FKSwKKyAgICAgICAgKToKKyAgICAgICAgICAg
IG1vbmtleXBhdGNoLmRlbGVudihzZWxmLlZBUl9OQU1FLCByYWlzaW5nPUZhbHNlKQorCisgICAg
ZGVmIHRlc3Rfc2V0ZW52X25vbl9zdHJfd2FybmluZyhzZWxmLCBtb25rZXlwYXRjaCk6CisgICAg
ICAgIHZhbHVlID0gMgorICAgICAgICBtc2cgPSAoCisgICAgICAgICAgICAiVmFsdWUgb2YgZW52
aXJvbm1lbnQgdmFyaWFibGUgUFlURVNUX0lOVEVSTkFMX01ZX1ZBUiB0eXBlIHNob3VsZCBiZSBz
dHIsICIKKyAgICAgICAgICAgICJidXQgZ290IDIgKHR5cGU6IGludCk7IGNvbnZlcnRlZCB0byBz
dHIgaW1wbGljaXRseSIKKyAgICAgICAgKQorICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhweXRl
c3QuUHl0ZXN0V2FybmluZywgbWF0Y2g9cmUuZXNjYXBlKG1zZykpOgorICAgICAgICAgICAgbW9u
a2V5cGF0Y2guc2V0ZW52KHN0cihzZWxmLlZBUl9OQU1FKSwgdmFsdWUpCisKKwogZGVmIHRlc3Rf
c2V0ZW52X3ByZXBlbmQoKToKICAgICBpbXBvcnQgb3MKIAogICAgIG1vbmtleXBhdGNoID0gTW9u
a2V5UGF0Y2goKQotICAgIG1vbmtleXBhdGNoLnNldGVudigiWFlaMTIzIiwgMiwgcHJlcGVuZD0i
LSIpCisgICAgd2l0aCBweXRlc3Qud2FybnMocHl0ZXN0LlB5dGVzdFdhcm5pbmcpOgorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRlbnYoIlhZWjEyMyIsIDIsIHByZXBlbmQ9Ii0iKQogICAgIGFzc2Vy
dCBvcy5lbnZpcm9uWyJYWVoxMjMiXSA9PSAiMiIKLSAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlhZ
WjEyMyIsIDMsIHByZXBlbmQ9Ii0iKQorICAgIHdpdGggcHl0ZXN0Lndhcm5zKHB5dGVzdC5QeXRl
c3RXYXJuaW5nKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJYWVoxMjMiLCAzLCBwcmVw
ZW5kPSItIikKICAgICBhc3NlcnQgb3MuZW52aXJvblsiWFlaMTIzIl0gPT0gIjMtMiIKICAgICBt
b25rZXlwYXRjaC51bmRvKCkKICAgICBhc3NlcnQgIlhZWjEyMyIgbm90IGluIG9zLmVudmlyb24K
QEAgLTIzMSwxMSArMjczLDE1IEBAIGRlZiB0ZXN0X3N5c3BhdGhfcHJlcGVuZChtcCk6CiAKIAog
ZGVmIHRlc3Rfc3lzcGF0aF9wcmVwZW5kX2RvdWJsZV91bmRvKG1wKToKLSAgICBtcC5zeXNwYXRo
X3ByZXBlbmQoImhlbGxvIHdvcmxkIikKLSAgICBtcC51bmRvKCkKLSAgICBzeXMucGF0aC5hcHBl
bmQoIm1vcmUgaGVsbG8gd29ybGQiKQotICAgIG1wLnVuZG8oKQotICAgIGFzc2VydCBzeXMucGF0
aFstMV0gPT0gIm1vcmUgaGVsbG8gd29ybGQiCisgICAgb2xkX3N5c3BhdGggPSBzeXMucGF0aFs6
XQorICAgIHRyeToKKyAgICAgICAgbXAuc3lzcGF0aF9wcmVwZW5kKCJoZWxsbyB3b3JsZCIpCisg
ICAgICAgIG1wLnVuZG8oKQorICAgICAgICBzeXMucGF0aC5hcHBlbmQoIm1vcmUgaGVsbG8gd29y
bGQiKQorICAgICAgICBtcC51bmRvKCkKKyAgICAgICAgYXNzZXJ0IHN5cy5wYXRoWy0xXSA9PSAi
bW9yZSBoZWxsbyB3b3JsZCIKKyAgICBmaW5hbGx5OgorICAgICAgICBzeXMucGF0aFs6XSA9IG9s
ZF9zeXNwYXRoCiAKIAogZGVmIHRlc3RfY2hkaXJfd2l0aF9wYXRoX2xvY2FsKG1wLCB0bXBkaXIp
OgpAQCAtMzExLDcgKzM1Nyw2IEBAIGRlZiB0ZXN0X2ltcG9ydGVycm9yKHRlc3RkaXIpOgogCiAK
IGNsYXNzIFNhbXBsZU5ldyhvYmplY3QpOgotCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBo
ZWxsbygpOgogICAgICAgICByZXR1cm4gVHJ1ZQpAQCAtMzQ3LDYgKzM5MiwzMyBAQCBkZWYgdGVz
dF9pc3N1ZTE1Nl91bmRvX3N0YXRpY21ldGhvZChTYW1wbGUpOgogICAgIGFzc2VydCBTYW1wbGUu
aGVsbG8oKQogCiAKK2RlZiB0ZXN0X3VuZG9fY2xhc3NfZGVzY3JpcHRvcnNfZGVsYXR0cigpOgor
ICAgIGNsYXNzIFNhbXBsZVBhcmVudChvYmplY3QpOgorICAgICAgICBAY2xhc3NtZXRob2QKKyAg
ICAgICAgZGVmIGhlbGxvKF9jbHMpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIEBzdGF0
aWNtZXRob2QKKyAgICAgICAgZGVmIHdvcmxkKCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICBj
bGFzcyBTYW1wbGVDaGlsZChTYW1wbGVQYXJlbnQpOgorICAgICAgICBwYXNzCisKKyAgICBtb25r
ZXlwYXRjaCA9IE1vbmtleVBhdGNoKCkKKworICAgIG9yaWdpbmFsX2hlbGxvID0gU2FtcGxlQ2hp
bGQuaGVsbG8KKyAgICBvcmlnaW5hbF93b3JsZCA9IFNhbXBsZUNoaWxkLndvcmxkCisgICAgbW9u
a2V5cGF0Y2guZGVsYXR0cihTYW1wbGVQYXJlbnQsICJoZWxsbyIpCisgICAgbW9ua2V5cGF0Y2gu
ZGVsYXR0cihTYW1wbGVQYXJlbnQsICJ3b3JsZCIpCisgICAgYXNzZXJ0IGdldGF0dHIoU2FtcGxl
UGFyZW50LCAiaGVsbG8iLCBOb25lKSBpcyBOb25lCisgICAgYXNzZXJ0IGdldGF0dHIoU2FtcGxl
UGFyZW50LCAid29ybGQiLCBOb25lKSBpcyBOb25lCisKKyAgICBtb25rZXlwYXRjaC51bmRvKCkK
KyAgICBhc3NlcnQgb3JpZ2luYWxfaGVsbG8gPT0gU2FtcGxlQ2hpbGQuaGVsbG8KKyAgICBhc3Nl
cnQgb3JpZ2luYWxfd29ybGQgPT0gU2FtcGxlQ2hpbGQud29ybGQKKworCiBkZWYgdGVzdF9pc3N1
ZTEzMzhfbmFtZV9yZXNvbHZpbmcoKToKICAgICBweXRlc3QuaW1wb3J0b3Jza2lwKCJyZXF1ZXN0
cyIpCiAgICAgbW9ua2V5cGF0Y2ggPSBNb25rZXlQYXRjaCgpCkBAIC0zNjYsMyArNDM4LDM1IEBA
IGRlZiB0ZXN0X2NvbnRleHQoKToKICAgICAgICAgbS5zZXRhdHRyKGZ1bmN0b29scywgInBhcnRp
YWwiLCAzKQogICAgICAgICBhc3NlcnQgbm90IGluc3BlY3QuaXNjbGFzcyhmdW5jdG9vbHMucGFy
dGlhbCkKICAgICBhc3NlcnQgaW5zcGVjdC5pc2NsYXNzKGZ1bmN0b29scy5wYXJ0aWFsKQorCisK
K2RlZiB0ZXN0X3N5c3BhdGhfcHJlcGVuZF93aXRoX25hbWVzcGFjZV9wYWNrYWdlcyh0ZXN0ZGly
LCBtb25rZXlwYXRjaCk6CisgICAgZm9yIGRpcm5hbWUgaW4gImhlbGxvIiwgIndvcmxkIjoKKyAg
ICAgICAgZCA9IHRlc3RkaXIubWtkaXIoZGlybmFtZSkKKyAgICAgICAgbnMgPSBkLm1rZGlyKCJu
c19wa2ciKQorICAgICAgICBucy5qb2luKCJfX2luaXRfXy5weSIpLndyaXRlKAorICAgICAgICAg
ICAgIl9faW1wb3J0X18oJ3BrZ19yZXNvdXJjZXMnKS5kZWNsYXJlX25hbWVzcGFjZShfX25hbWVf
XykiCisgICAgICAgICkKKyAgICAgICAgbGliID0gbnMubWtkaXIoZGlybmFtZSkKKyAgICAgICAg
bGliLmpvaW4oIl9faW5pdF9fLnB5Iikud3JpdGUoImRlZiBjaGVjaygpOiByZXR1cm4gJXIiICUg
ZGlybmFtZSkKKworICAgIG1vbmtleXBhdGNoLnN5c3BhdGhfcHJlcGVuZCgiaGVsbG8iKQorICAg
IGltcG9ydCBuc19wa2cuaGVsbG8KKworICAgIGFzc2VydCBuc19wa2cuaGVsbG8uY2hlY2soKSA9
PSAiaGVsbG8iCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAg
ICBpbXBvcnQgbnNfcGtnLndvcmxkCisKKyAgICAjIFByZXBlbmRpbmcgc2hvdWxkIGNhbGwgZml4
dXBfbmFtZXNwYWNlX3BhY2thZ2VzLgorICAgIG1vbmtleXBhdGNoLnN5c3BhdGhfcHJlcGVuZCgi
d29ybGQiKQorICAgIGltcG9ydCBuc19wa2cud29ybGQKKworICAgIGFzc2VydCBuc19wa2cud29y
bGQuY2hlY2soKSA9PSAid29ybGQiCisKKyAgICAjIFNob3VsZCBpbnZhbGlkYXRlIGNhY2hlcyB2
aWEgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzLgorICAgIHRtcGRpciA9IHRlc3RkaXIudG1w
ZGlyCisgICAgbW9kdWxlc190bXBkaXIgPSB0bXBkaXIubWtkaXIoIm1vZHVsZXNfdG1wZGlyIikK
KyAgICBtb25rZXlwYXRjaC5zeXNwYXRoX3ByZXBlbmQoc3RyKG1vZHVsZXNfdG1wZGlyKSkKKyAg
ICBtb2R1bGVzX3RtcGRpci5qb2luKCJtYWluX2FwcC5weSIpLndyaXRlKCJhcHAgPSBUcnVlIikK
KyAgICBmcm9tIG1haW5fYXBwIGltcG9ydCBhcHAgICMgbm9xYTogRjQwMQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X25vZGVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X25vZGVzLnB5CmluZGV4IGVlZTNhYzhlOWU0YzBjYmU0YTk1M2QzY2NiYmQ4NWZjY2Q0YmE3
MmMuLmU4NmJkNWY3OTNlOTk4NTZmNTFlNjg5NzM5ZWUwM2E3YmY4ZTFmMGMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ub2Rlcy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3Rfbm9kZXMucHkKQEAgLTEsNSArMSw3IEBACi1pbXBvcnQgcHl0ZXN0CisjIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHB5CiAKK2ltcG9ydCBweXRlc3QKIGZyb20gX3B5dGVz
dCBpbXBvcnQgbm9kZXMKIAogCkBAIC05LDEzICsxMSw0NCBAQCBmcm9tIF9weXRlc3QgaW1wb3J0
IG5vZGVzCiAgICAgICAgICgiIiwgIiIsIFRydWUpLAogICAgICAgICAoIiIsICJmb28iLCBUcnVl
KSwKICAgICAgICAgKCIiLCAiZm9vL2JhciIsIFRydWUpLAotICAgICAgICAoIiIsICJmb28vYmFy
OjpUZXN0QmF6OjooKSIsIFRydWUpLAorICAgICAgICAoIiIsICJmb28vYmFyOjpUZXN0QmF6Iiwg
VHJ1ZSksCiAgICAgICAgICgiZm9vIiwgImZvb2QiLCBGYWxzZSksCi0gICAgICAgICgiZm9vL2Jh
cjo6VGVzdEJhejo6KCkiLCAiZm9vL2JhciIsIEZhbHNlKSwKLSAgICAgICAgKCJmb28vYmFyOjpU
ZXN0QmF6OjooKSIsICJmb28vYmFyOjpUZXN0Qm9wOjooKSIsIEZhbHNlKSwKLSAgICAgICAgKCJm
b28vYmFyIiwgImZvby9iYXI6OlRlc3RCb3A6OigpIiwgVHJ1ZSksCisgICAgICAgICgiZm9vL2Jh
cjo6VGVzdEJheiIsICJmb28vYmFyIiwgRmFsc2UpLAorICAgICAgICAoImZvby9iYXI6OlRlc3RC
YXoiLCAiZm9vL2Jhcjo6VGVzdEJvcCIsIEZhbHNlKSwKKyAgICAgICAgKCJmb28vYmFyIiwgImZv
by9iYXI6OlRlc3RCb3AiLCBUcnVlKSwKICAgICApLAogKQogZGVmIHRlc3RfaXNjaGlsZG5vZGUo
YmFzZWlkLCBub2RlaWQsIGV4cGVjdGVkKToKICAgICByZXN1bHQgPSBub2Rlcy5pc2NoaWxkbm9k
ZShiYXNlaWQsIG5vZGVpZCkKICAgICBhc3NlcnQgcmVzdWx0IGlzIGV4cGVjdGVkCisKKworZGVm
IHRlc3Rfc3RkX3dhcm5fbm90X3B5dGVzdHdhcm5pbmcodGVzdGRpcik6CisgICAgaXRlbXMgPSB0
ZXN0ZGlyLmdldGl0ZW1zKAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAiIiIKKyAgICApCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVl
RXJyb3IsIG1hdGNoPSIuKmluc3RhbmNlIG9mIFB5dGVzdFdhcm5pbmcuKiIpOgorICAgICAgICBp
dGVtc1swXS53YXJuKFVzZXJXYXJuaW5nKCJzb21lIHdhcm5pbmciKSkKKworCitkZWYgdGVzdF9f
Y2hlY2tfaW5pdGlhbHBhdGhzX2Zvcl9yZWxwYXRoKCk6CisgICAgIiIiRW5zdXJlIHRoYXQgaXQg
aGFuZGxlcyBkaXJzLCBhbmQgZG9lcyBub3QgYWx3YXlzIHVzZSBkaXJuYW1lLiIiIgorICAgIGN3
ZCA9IHB5LnBhdGgubG9jYWwoKQorCisgICAgY2xhc3MgRmFrZVNlc3Npb246CisgICAgICAgIF9p
bml0aWFscGF0aHMgPSBbY3dkXQorCisgICAgYXNzZXJ0IG5vZGVzLl9jaGVja19pbml0aWFscGF0
aHNfZm9yX3JlbHBhdGgoRmFrZVNlc3Npb24sIGN3ZCkgPT0gIiIKKworICAgIHN1YiA9IGN3ZC5q
b2luKCJmaWxlIikKKworICAgIGNsYXNzIEZha2VTZXNzaW9uOgorICAgICAgICBfaW5pdGlhbHBh
dGhzID0gW2N3ZF0KKworICAgIGFzc2VydCBub2Rlcy5fY2hlY2tfaW5pdGlhbHBhdGhzX2Zvcl9y
ZWxwYXRoKEZha2VTZXNzaW9uLCBzdWIpID09ICJmaWxlIgorCisgICAgb3V0c2lkZSA9IHB5LnBh
dGgubG9jYWwoIi9vdXRzaWRlIikKKyAgICBhc3NlcnQgbm9kZXMuX2NoZWNrX2luaXRpYWxwYXRo
c19mb3JfcmVscGF0aChGYWtlU2Vzc2lvbiwgb3V0c2lkZSkgaXMgTm9uZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X25vc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3Rfbm9zZS5weQppbmRleCBhYmU3MzIzNzU0ZWQ0MzQ3MGVmMWUzNGQ0MzRjNjdlYTRiMDFmODgz
Li42ZWI1ZjA4NWU4NDNiZDRmZWQ1MmFiNjIxNmZmZjUzNzU1N2VlMGNhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfbm9zZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3Rfbm9zZS5weQpAQCAtMSw0ICsxLDggQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKyMgLSotIGNvZGluZzogdXRm
LTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5j
dGlvbgorCiBpbXBvcnQgcHl0ZXN0CiAKIApAQCAtMzMsNyArMzcsNiBAQCBkZWYgdGVzdF9zZXR1
cF9mdW5jX3dpdGhfc2V0dXBfZGVjb3JhdG9yKCk6CiAgICAgdmFsdWVzID0gW10KIAogICAgIGNs
YXNzIEEob2JqZWN0KToKLQogICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQog
ICAgICAgICBkZWYgZihzZWxmKToKICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKQEAgLTY4
LDExICs3MSwxMSBAQCBkZWYgdGVzdF9ub3NlX3NldHVwX2Z1bmModGVzdGRpcik6CiAKICAgICAg
ICAgQHdpdGhfc2V0dXAobXlfc2V0dXAsIG15X3RlYXJkb3duKQogICAgICAgICBkZWYgdGVzdF9o
ZWxsbygpOgotICAgICAgICAgICAgcHJpbnQgKHZhbHVlcykKKyAgICAgICAgICAgIHByaW50KHZh
bHVlcykKICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCiAKICAgICAgICAgZGVmIHRl
c3Rfd29ybGQoKToKLSAgICAgICAgICAgIHByaW50ICh2YWx1ZXMpCisgICAgICAgICAgICBwcmlu
dCh2YWx1ZXMpCiAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLDJdCiAKICAgICAiIiIK
QEAgLTkyLDExICs5NSwxMSBAQCBkZWYgdGVzdF9ub3NlX3NldHVwX2Z1bmNfZmFpbHVyZSh0ZXN0
ZGlyKToKIAogICAgICAgICBAd2l0aF9zZXR1cChteV9zZXR1cCwgbXlfdGVhcmRvd24pCiAgICAg
ICAgIGRlZiB0ZXN0X2hlbGxvKCk6Ci0gICAgICAgICAgICBwcmludCAodmFsdWVzKQorICAgICAg
ICAgICAgcHJpbnQodmFsdWVzKQogICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMV0KIAog
ICAgICAgICBkZWYgdGVzdF93b3JsZCgpOgotICAgICAgICAgICAgcHJpbnQgKHZhbHVlcykKKyAg
ICAgICAgICAgIHByaW50KHZhbHVlcykKICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEs
Ml0KIAogICAgICIiIgpAQCAtMTQ0LDExICsxNDcsMTEgQEAgZGVmIHRlc3Rfbm9zZV9zZXR1cF9w
YXJ0aWFsKHRlc3RkaXIpOgogICAgICAgICBteV90ZWFyZG93bl9wYXJ0aWFsID0gcGFydGlhbCht
eV90ZWFyZG93biwgMikKIAogICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgotICAgICAgICAgICAg
cHJpbnQgKHZhbHVlcykKKyAgICAgICAgICAgIHByaW50KHZhbHVlcykKICAgICAgICAgICAgIGFz
c2VydCB2YWx1ZXMgPT0gWzFdCiAKICAgICAgICAgZGVmIHRlc3Rfd29ybGQoKToKLSAgICAgICAg
ICAgIHByaW50ICh2YWx1ZXMpCisgICAgICAgICAgICBwcmludCh2YWx1ZXMpCiAgICAgICAgICAg
ICBhc3NlcnQgdmFsdWVzID09IFsxLDJdCiAKICAgICAgICAgdGVzdF9oZWxsby5zZXR1cCA9IG15
X3NldHVwX3BhcnRpYWwKQEAgLTE1OSw3MyArMTYyLDYgQEAgZGVmIHRlc3Rfbm9zZV9zZXR1cF9w
YXJ0aWFsKHRlc3RkaXIpOgogICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioyIHBh
c3NlZCoiXSkKIAogCi1kZWYgdGVzdF9ub3NlX3Rlc3RfZ2VuZXJhdG9yX2ZpeHR1cmVzKHRlc3Rk
aXIpOgotICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICIiIgotICAgICAgICAj
IHRha2VuIGZyb20gbm9zZS0wLjExLjEgdW5pdF90ZXN0cy90ZXN0X2dlbmVyYXRvcl9maXh0dXJl
cy5weQotICAgICAgICBmcm9tIG5vc2UudG9vbHMgaW1wb3J0IGVxXwotICAgICAgICBjYWxsZWQg
PSBbXQotCi0gICAgICAgIGRlZiBvdXRlcl9zZXR1cCgpOgotICAgICAgICAgICAgY2FsbGVkLmFw
cGVuZCgnb3V0ZXJfc2V0dXAnKQotCi0gICAgICAgIGRlZiBvdXRlcl90ZWFyZG93bigpOgotICAg
ICAgICAgICAgY2FsbGVkLmFwcGVuZCgnb3V0ZXJfdGVhcmRvd24nKQotCi0gICAgICAgIGRlZiBp
bm5lcl9zZXR1cCgpOgotICAgICAgICAgICAgY2FsbGVkLmFwcGVuZCgnaW5uZXJfc2V0dXAnKQot
Ci0gICAgICAgIGRlZiBpbm5lcl90ZWFyZG93bigpOgotICAgICAgICAgICAgY2FsbGVkLmFwcGVu
ZCgnaW5uZXJfdGVhcmRvd24nKQotCi0gICAgICAgIGRlZiB0ZXN0X2dlbigpOgotICAgICAgICAg
ICAgY2FsbGVkWzpdID0gW10KLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIDUpOgotICAg
ICAgICAgICAgICAgIHlpZWxkIGNoZWNrLCBpCi0KLSAgICAgICAgZGVmIGNoZWNrKGkpOgotICAg
ICAgICAgICAgZXhwZWN0ID0gWydvdXRlcl9zZXR1cCddCi0gICAgICAgICAgICBmb3IgeCBpbiBy
YW5nZSgwLCBpKToKLSAgICAgICAgICAgICAgICBleHBlY3QuYXBwZW5kKCdpbm5lcl9zZXR1cCcp
Ci0gICAgICAgICAgICAgICAgZXhwZWN0LmFwcGVuZCgnaW5uZXJfdGVhcmRvd24nKQotICAgICAg
ICAgICAgZXhwZWN0LmFwcGVuZCgnaW5uZXJfc2V0dXAnKQotICAgICAgICAgICAgZXFfKGNhbGxl
ZCwgZXhwZWN0KQotCi0KLSAgICAgICAgdGVzdF9nZW4uc2V0dXAgPSBvdXRlcl9zZXR1cAotICAg
ICAgICB0ZXN0X2dlbi50ZWFyZG93biA9IG91dGVyX3RlYXJkb3duCi0gICAgICAgIGNoZWNrLnNl
dHVwID0gaW5uZXJfc2V0dXAKLSAgICAgICAgY2hlY2sudGVhcmRvd24gPSBpbm5lcl90ZWFyZG93
bgotCi0gICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgotICAgICAgICAgICAgZGVmIHNl
dHVwKHNlbGYpOgotICAgICAgICAgICAgICAgIHByaW50ICgic2V0dXAgY2FsbGVkIGluICVzIiAl
IHNlbGYpCi0gICAgICAgICAgICAgICAgc2VsZi5jYWxsZWQgPSBbJ3NldHVwJ10KLQotICAgICAg
ICAgICAgZGVmIHRlYXJkb3duKHNlbGYpOgotICAgICAgICAgICAgICAgIHByaW50ICgidGVhcmRv
d24gY2FsbGVkIGluICVzIiAlIHNlbGYpCi0gICAgICAgICAgICAgICAgZXFfKHNlbGYuY2FsbGVk
LCBbJ3NldHVwJ10pCi0gICAgICAgICAgICAgICAgc2VsZi5jYWxsZWQuYXBwZW5kKCd0ZWFyZG93
bicpCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgotICAgICAgICAgICAgICAgIHByaW50
ICgidGVzdCBjYWxsZWQgaW4gJXMiICUgc2VsZikKLSAgICAgICAgICAgICAgICBmb3IgaSBpbiBy
YW5nZSgwLCA1KToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5jaGVjaywgaQotCi0g
ICAgICAgICAgICBkZWYgY2hlY2soc2VsZiwgaSk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJj
aGVjayBjYWxsZWQgaW4gJXMiICUgc2VsZikKLSAgICAgICAgICAgICAgICBleHBlY3QgPSBbJ3Nl
dHVwJ10KLSAgICAgICAgICAgICAgICAjZm9yIHggaW4gcmFuZ2UoMCwgaSk6Ci0gICAgICAgICAg
ICAgICAgIyAgICBleHBlY3QuYXBwZW5kKCdzZXR1cCcpCi0gICAgICAgICAgICAgICAgIyAgICBl
eHBlY3QuYXBwZW5kKCd0ZWFyZG93bicpCi0gICAgICAgICAgICAgICAgI2V4cGVjdC5hcHBlbmQo
J3NldHVwJykKLSAgICAgICAgICAgICAgICBlcV8oc2VsZi5jYWxsZWQsIGV4cGVjdCkKLSAgICAi
IiIKLSAgICApCi0gICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgIi1wIiwgIm5vc2Ui
KQotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxMCBwYXNzZWQqIl0pCi0KLQog
ZGVmIHRlc3RfbW9kdWxlX2xldmVsX3NldHVwKHRlc3RkaXIpOgogICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKICAgICAgICAgIiIiCkBAIC00MzEsMyArMzY3LDE3IEBAIGRlZiB0ZXN0X25vdHRlc3Rf
Y2xhc3NfZGVjb3JhdG9yKHRlc3RkaXIpOgogICAgIGFzc2VydCBub3QgcmVwcmVjLmdldGZhaWxl
ZGNvbGxlY3Rpb25zKCkKICAgICBjYWxscyA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfcnVu
dGVzdF9sb2dyZXBvcnQiKQogICAgIGFzc2VydCBub3QgY2FsbHMKKworCitkZWYgdGVzdF9za2lw
X3Rlc3Rfd2l0aF91bmljb2RlKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgIiIiCisgICAgICAgICMgLSotIGNvZGluZzogdXRmLTggLSotCisgICAgICAgIGltcG9y
dCB1bml0dGVzdAorICAgICAgICBjbGFzcyBUZXN0Q2xhc3MoKToKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2lvKHNlbGYpOgorICAgICAgICAgICAgICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KHUn
8J+YiicpCisgICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDEgc2tpcHBlZCAqIl0pCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGFyc2VvcHQucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3RfcGFyc2VvcHQucHkKaW5kZXggNzkwNzZjYWZkODEwYjdmNjVmZmZkMjFm
ZjU5N2QzODhlYTgwNDY5NC4uYzU3MGVkNjBiMmYxN2M4ZjZhNDNjZTZiMjcyNzRjMGYyYmEyMjkz
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BhcnNlb3B0LnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wYXJzZW9wdC5weQpAQCAtMSwxMCArMSwxOCBAQAot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9m
dW5jdGlvbgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBhcmdwYXJzZQotaW1wb3J0
IHN5cworaW1wb3J0IGRpc3R1dGlscy5zcGF3bgogaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKIGlt
cG9ydCBweQorCiBpbXBvcnQgcHl0ZXN0CiBmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBhcmdw
YXJzaW5nIGFzIHBhcnNlb3B0Citmcm9tIF9weXRlc3QuY29uZmlnLmV4Y2VwdGlvbnMgaW1wb3J0
IFVzYWdlRXJyb3IKIAogCiBAcHl0ZXN0LmZpeHR1cmUKQEAgLTEzLDEyICsyMSwxNSBAQCBkZWYg
cGFyc2VyKCk6CiAKIAogY2xhc3MgVGVzdFBhcnNlcihvYmplY3QpOgotCi0gICAgZGVmIHRlc3Rf
bm9faGVscF9ieV9kZWZhdWx0KHNlbGYsIGNhcHN5cyk6CisgICAgZGVmIHRlc3Rfbm9faGVscF9i
eV9kZWZhdWx0KHNlbGYpOgogICAgICAgICBwYXJzZXIgPSBwYXJzZW9wdC5QYXJzZXIodXNhZ2U9
Inh5eiIpCi0gICAgICAgIHB5dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCwgbGFtYmRhOiBwYXJzZXIu
cGFyc2UoWyItaCJdKSkKLSAgICAgICAgb3V0LCBlcnIgPSBjYXBzeXMucmVhZG91dGVycigpCi0g
ICAgICAgIGFzc2VydCBlcnIuZmluZCgiZXJyb3I6IHVucmVjb2duaXplZCBhcmd1bWVudHMiKSAh
PSAtMQorICAgICAgICBweXRlc3QucmFpc2VzKFVzYWdlRXJyb3IsIGxhbWJkYTogcGFyc2VyLnBh
cnNlKFsiLWgiXSkpCisKKyAgICBkZWYgdGVzdF9jdXN0b21fcHJvZyhzZWxmLCBwYXJzZXIpOgor
ICAgICAgICAiIiJDdXN0b20gcHJvZyBjYW4gYmUgc2V0IGZvciBgYXJncGFyc2UuQXJndW1lbnRQ
YXJzZXJgLiIiIgorICAgICAgICBhc3NlcnQgcGFyc2VyLl9nZXRwYXJzZXIoKS5wcm9nID09IG9z
LnBhdGguYmFzZW5hbWUoc3lzLmFyZ3ZbMF0pCisgICAgICAgIHBhcnNlci5wcm9nID0gImN1c3Rv
bS1wcm9nIgorICAgICAgICBhc3NlcnQgcGFyc2VyLl9nZXRwYXJzZXIoKS5wcm9nID09ICJjdXN0
b20tcHJvZyIKIAogICAgIGRlZiB0ZXN0X2FyZ3VtZW50KHNlbGYpOgogICAgICAgICB3aXRoIHB5
dGVzdC5yYWlzZXMocGFyc2VvcHQuQXJndW1lbnRFcnJvcik6CkBAIC0zNCw5ICs0NSw4IEBAIGNs
YXNzIFRlc3RQYXJzZXIob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IGFyZ3VtZW50LmRlc3QgPT0g
InRlc3QiCiAgICAgICAgIGFyZ3VtZW50ID0gcGFyc2VvcHQuQXJndW1lbnQoIi10IiwgIi0tdGVz
dCIsIGRlc3Q9ImFiYyIpCiAgICAgICAgIGFzc2VydCBhcmd1bWVudC5kZXN0ID09ICJhYmMiCi0g
ICAgICAgIGFzc2VydCAoCi0gICAgICAgICAgICBzdHIoYXJndW1lbnQpCi0gICAgICAgICAgICA9
PSAoIkFyZ3VtZW50KF9zaG9ydF9vcHRzOiBbJy10J10sIF9sb25nX29wdHM6IFsnLS10ZXN0J10s
IGRlc3Q6ICdhYmMnKSIpCisgICAgICAgIGFzc2VydCBzdHIoYXJndW1lbnQpID09ICgKKyAgICAg
ICAgICAgICJBcmd1bWVudChfc2hvcnRfb3B0czogWyctdCddLCBfbG9uZ19vcHRzOiBbJy0tdGVz
dCddLCBkZXN0OiAnYWJjJykiCiAgICAgICAgICkKIAogICAgIGRlZiB0ZXN0X2FyZ3VtZW50X3R5
cGUoc2VsZik6CkBAIC05NywxMiArMTA3LDggQEAgY2xhc3MgVGVzdFBhcnNlcihvYmplY3QpOgog
CiAgICAgZGVmIHRlc3RfZ3JvdXBfc2hvcnRvcHRfbG93ZXJjYXNlKHNlbGYsIHBhcnNlcik6CiAg
ICAgICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJoZWxsbyIpCi0gICAgICAgIHB5dGVzdC5y
YWlzZXMoCi0gICAgICAgICAgICBWYWx1ZUVycm9yLAotICAgICAgICAgICAgIiIiCisgICAgICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKICAgICAgICAgICAgIGdyb3VwLmFkZG9w
dGlvbigiLXgiLCBhY3Rpb249InN0b3JlX3RydWUiKQotICAgICAgICAiIiIsCi0gICAgICAgICkK
ICAgICAgICAgYXNzZXJ0IGxlbihncm91cC5vcHRpb25zKSA9PSAwCiAgICAgICAgIGdyb3VwLl9h
ZGRvcHRpb24oIi14IiwgYWN0aW9uPSJzdG9yZV90cnVlIikKICAgICAgICAgYXNzZXJ0IGxlbihn
cm91cC5vcHRpb25zKSA9PSAxCkBAIC0xODAsNyArMTg2LDYgQEAgY2xhc3MgVGVzdFBhcnNlcihv
YmplY3QpOgogICAgICAgICBhc3NlcnQgYXJncy5TIGlzIEZhbHNlCiAKICAgICBkZWYgdGVzdF9w
YXJzZV9kZWZhdWx0Z2V0dGVyKHNlbGYpOgotCiAgICAgICAgIGRlZiBkZWZhdWx0Z2V0KG9wdGlv
bik6CiAgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihvcHRpb24sICJ0eXBlIik6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuCkBAIC0yMDQsMTUgKzIwOSwxMSBAQCBjbGFzcyBUZXN0UGFyc2VyKG9i
amVjdCk6CiAgICAgICAgICkKICAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKICAgICAgICAg
ICAgICItdCIsICItLXR3b3dvcmQiLCAiLS1kdW8iLCAiLS10d28td29yZCIsICItLXR3byIsIGhl
bHA9ImZvbyIKLSAgICAgICAgKS5tYXBfbG9uZ19vcHRpb24gPSB7Ci0gICAgICAgICAgICAidHdv
IjogInR3by13b3JkIgotICAgICAgICB9CisgICAgICAgICkubWFwX2xvbmdfb3B0aW9uID0geyJ0
d28iOiAidHdvLXdvcmQifQogICAgICAgICAjIHRocm93cyBlcnJvciBvbiAtLWRldXggb25seSEK
ICAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKICAgICAgICAgICAgICItZCIsICItLWRldXht
b3RzIiwgIi0tZGV1eC1tb3RzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iZm9vIgotICAg
ICAgICApLm1hcF9sb25nX29wdGlvbiA9IHsKLSAgICAgICAgICAgICJkZXV4IjogImRldXgtbW90
cyIKLSAgICAgICAgfQorICAgICAgICApLm1hcF9sb25nX29wdGlvbiA9IHsiZGV1eCI6ICJkZXV4
LW1vdHMifQogICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItcyIsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsIGhlbHA9InNpbmdsZSBzaG9ydCIpCiAgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ii0tYWJjIiwgIi1hIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iYmFyIikKICAgICAgICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgiLS1rbG0iLCAiLWsiLCAiLS1rbC1tIiwgYWN0aW9uPSJzdG9y
ZV90cnVlIiwgaGVscD0iYmFyIikKQEAgLTIyNCw5ICsyMjUsNyBAQCBjbGFzcyBUZXN0UGFyc2Vy
KG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKICAgICAg
ICAgICAgICIteCIsICItLWV4aXQtb24tZmlyc3QiLCAiLS1leGl0Zmlyc3QiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBoZWxwPSJzcGFtIgotICAgICAgICApLm1hcF9sb25nX29wdGlvbiA9IHsKLSAg
ICAgICAgICAgICJleGl0Zmlyc3QiOiAiZXhpdC1vbi1maXJzdCIKLSAgICAgICAgfQorICAgICAg
ICApLm1hcF9sb25nX29wdGlvbiA9IHsiZXhpdGZpcnN0IjogImV4aXQtb24tZmlyc3QifQogICAg
ICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJmaWxlc19hbmRfZGlycyIsIG5hcmdzPSIqIikKICAg
ICAgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKFsiLWsiLCAiLS1kdW8iLCAiaGFsbG8iLCAi
LS1leGl0Zmlyc3QiXSkKICAgICAgICAgYXNzZXJ0IGFyZ3MudHdvd29yZCA9PSAiaGFsbG8iCkBA
IC0yOTgsMTggKzI5NywxNSBAQCBjbGFzcyBUZXN0UGFyc2VyKG9iamVjdCk6CiAKIAogZGVmIHRl
c3RfYXJnY29tcGxldGUodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgotICAgIGlmIG5vdCBweS5wYXRo
LmxvY2FsLnN5c2ZpbmQoImJhc2giKToKKyAgICBpZiBub3QgZGlzdHV0aWxzLnNwYXduLmZpbmRf
ZXhlY3V0YWJsZSgiYmFzaCIpOgogICAgICAgICBweXRlc3Quc2tpcCgiYmFzaCBub3QgYXZhaWxh
YmxlIikKICAgICBzY3JpcHQgPSBzdHIodGVzdGRpci50bXBkaXIuam9pbigidGVzdF9hcmdjb21w
bGV0ZSIpKQotICAgIHB5dGVzdF9iaW4gPSBzeXMuYXJndlswXQotICAgIGlmICJweXRlc3QiIG5v
dCBpbiBvcy5wYXRoLmJhc2VuYW1lKHB5dGVzdF9iaW4pOgotICAgICAgICBweXRlc3Quc2tpcCgi
bmVlZCB0byBiZSBydW4gd2l0aCBweXRlc3QgZXhlY3V0YWJsZSwgbm90ICVzIiAlIChweXRlc3Rf
YmluLCkpCiAKICAgICB3aXRoIG9wZW4oc3RyKHNjcmlwdCksICJ3IikgYXMgZnA6CiAgICAgICAg
ICMgcmVkaXJlY3Qgb3V0cHV0IGZyb20gYXJnY29tcGxldGUgdG8gc3RkaW4gYW5kIHN0ZGVyciBp
cyBub3QgdHJpdmlhbAogICAgICAgICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xLzEyNTg5
NDE5LzEzMDc5MDUKICAgICAgICAgIyBzbyB3ZSB1c2UgYmFzaAotICAgICAgICBmcC53cml0ZSgn
Q09NUF9XT1JEQlJFQUtTPSIkQ09NUF9XT1JEQlJFQUtTIiAlcyA4PiYxIDk+JjInICUgcHl0ZXN0
X2JpbikKKyAgICAgICAgZnAud3JpdGUoJ0NPTVBfV09SREJSRUFLUz0iJENPTVBfV09SREJSRUFL
UyIgcHl0aG9uIC1tIHB5dGVzdCA4PiYxIDk+JjInKQogICAgICMgYWx0ZXJuYXRpdmUgd291bGQg
YmUgZXh0ZW5lZGVkIFRlc3RkaXIue3J1bigpLF9ydW4oKSxwb3BlbigpfSB0byBiZSBhYmxlCiAg
ICAgIyB0byBoYW5kbGUgYSBrZXl3b3JkIGFyZ3VtZW50IGVudiB0aGF0IHJlcGxhY2VzIG9zLmVu
dmlyb24gaW4gcG9wZW4gb3IKICAgICAjIGV4dGVuZHMgdGhlIGNvcHksIGFkdmFudGFnZTogY291
bGQgbm90IGZvcmdldCB0byByZXN0b3JlCkBAIC0zMjUsNyArMzIxLDExIEBAIGRlZiB0ZXN0X2Fy
Z2NvbXBsZXRlKHRlc3RkaXIsIG1vbmtleXBhdGNoKToKICAgICAgICAgIyBhcmdjb21wbGV0ZSBu
b3QgZm91bmQKICAgICAgICAgcHl0ZXN0LnNraXAoImFyZ2NvbXBsZXRlIG5vdCBhdmFpbGFibGUi
KQogICAgIGVsaWYgbm90IHJlc3VsdC5zdGRvdXQuc3RyKCk6Ci0gICAgICAgIHB5dGVzdC5za2lw
KCJiYXNoIHByb3ZpZGVkIG5vIG91dHB1dCwgYXJnY29tcGxldGUgbm90IGF2YWlsYWJsZT8iKQor
ICAgICAgICBweXRlc3Quc2tpcCgKKyAgICAgICAgICAgICJiYXNoIHByb3ZpZGVkIG5vIG91dHB1
dCBvbiBzdGRvdXQsIGFyZ2NvbXBsZXRlIG5vdCBhdmFpbGFibGU/IChzdGRlcnI9eyFyfSkiLmZv
cm1hdCgKKyAgICAgICAgICAgICAgICByZXN1bHQuc3RkZXJyLnN0cigpCisgICAgICAgICAgICAp
CisgICAgICAgICkKICAgICBlbHNlOgogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWyItLWZ1bmNhcmdzIiwgIi0tZnVsbHRyYWNlIl0pCiAgICAgb3MubWtkaXIoInRlc3RfYXJn
Y29tcGxldGUuZCIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGFzdGVi
aW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGFzdGViaW4ucHkKaW5kZXggYWQ3YzRk
MGMxYzA2MTI0MWNhYmFhN2U5YzFjMzYwNTI4NjI5ZWVkNy4uMDJlZmRiNTU0MDc4NmNhOTk5NWMz
Y2Q4ODQ5YjZlNTFiYjYyNjk5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0
X3Bhc3RlYmluLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wYXN0ZWJpbi5weQpA
QCAtMSwxMSArMSwxNCBAQAotIyBlbmNvZGluZzogdXRmLTgKLWZyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKyMgLSotIGNvZGlu
ZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu
dF9mdW5jdGlvbgorCiBpbXBvcnQgc3lzCisKIGltcG9ydCBweXRlc3QKIAogCiBjbGFzcyBUZXN0
UGFzdGVDYXB0dXJlKG9iamVjdCk6Ci0KICAgICBAcHl0ZXN0LmZpeHR1cmUKICAgICBkZWYgcGFz
dGViaW5saXN0KHNlbGYsIG1vbmtleXBhdGNoLCByZXF1ZXN0KToKICAgICAgICAgcGFzdGViaW5s
aXN0ID0gW10KQEAgLTY1LDEzICs2OCwxMyBAQCBjbGFzcyBUZXN0UGFzdGVDYXB0dXJlKG9iamVj
dCk6CiAgICAgICAgICIiIgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAg
ICB0ZXN0X3VuaWNvZGU9IiIiCi0gICAgICAgICAgICAjIGVuY29kaW5nOiB1dGYtOAorICAgICAg
ICAgICAgIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICAgICAgICAgICAgIGRlZiB0ZXN0KCk6CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0ICfimLonID09IDEKICAgICAgICAgIiIiCiAgICAgICAgICkK
ICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tcGFzdGViaW49YWxsIikKLSAg
ICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAzOgorICAgICAgICBpZiBzeXMudmVyc2lv
bl9pbmZvWzBdID49IDM6CiAgICAgICAgICAgICBleHBlY3RlZF9tc2cgPSAiKmFzc2VydCAn4pi6
JyA9PSAxKiIKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGV4cGVjdGVkX21zZyA9ICIqYXNz
ZXJ0ICdcXHhlMlxceDk4XFx4YmEnID09IDEqIgpAQCAtODUsNyArODgsNiBAQCBjbGFzcyBUZXN0
UGFzdGVDYXB0dXJlKG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdFBhc3RlKG9iamVjdCk6Ci0KICAg
ICBAcHl0ZXN0LmZpeHR1cmUKICAgICBkZWYgcGFzdGViaW4oc2VsZiwgcmVxdWVzdCk6CiAgICAg
ICAgIHJldHVybiByZXF1ZXN0LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigicGFzdGVi
aW4iKQpAQCAtMTAyLDcgKzEwNCw2IEBAIGNsYXNzIFRlc3RQYXN0ZShvYmplY3QpOgogICAgICAg
ICAgICAgY2FsbHMuYXBwZW5kKCh1cmwsIGRhdGEpKQogCiAgICAgICAgICAgICBjbGFzcyBEdW1t
eUZpbGUob2JqZWN0KToKLQogICAgICAgICAgICAgICAgIGRlZiByZWFkKHNlbGYpOgogICAgICAg
ICAgICAgICAgICAgICAjIHBhcnQgb2YgaHRtbCBvZiBhIG5vcm1hbCByZXNwb25zZQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYidWaWV3IDxhIGhyZWY9Ii9yYXcvM2MwYzY3NTBiZCI+cmF3
PC9hPi4nCkBAIC0xMjUsNyArMTI2LDcgQEAgY2xhc3MgVGVzdFBhc3RlKG9iamVjdCk6CiAgICAg
ICAgIGFzc2VydCBsZW4obW9ja2VkX3VybG9wZW4pID09IDEKICAgICAgICAgdXJsLCBkYXRhID0g
bW9ja2VkX3VybG9wZW5bMF0KICAgICAgICAgYXNzZXJ0IHR5cGUoZGF0YSkgaXMgYnl0ZXMKLSAg
ICAgICAgbGV4ZXIgPSAicHl0aG9uMyIgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAzIGVsc2Ug
InB5dGhvbiIKKyAgICAgICAgbGV4ZXIgPSAidGV4dCIKICAgICAgICAgYXNzZXJ0IHVybCA9PSAi
aHR0cHM6Ly9icGFzdGUubmV0IgogICAgICAgICBhc3NlcnQgImxleGVyPSVzIiAlIGxleGVyIGlu
IGRhdGEuZGVjb2RlKCkKICAgICAgICAgYXNzZXJ0ICJjb2RlPWZ1bGwtcGFzdGUtY29udGVudHMi
IGluIGRhdGEuZGVjb2RlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9w
YXRobGliLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BhdGhsaWIucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTQxZDI4OWY3NzczNDA4ZmU3Zjc3ZWJjN2YyNzk2OTBhMDFjOGU1NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wYXRobGliLnB5CkBAIC0wLDAgKzEsODcg
QEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgc3lzCisKK2ltcG9ydCBweQorCitp
bXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QucGF0aGxpYiBpbXBvcnQgZm5tYXRjaF9leAorZnJv
bSBfcHl0ZXN0LnBhdGhsaWIgaW1wb3J0IGdldF9sb2NrX3BhdGgKK2Zyb20gX3B5dGVzdC5wYXRo
bGliIGltcG9ydCBtYXliZV9kZWxldGVfYV9udW1iZXJlZF9kaXIKK2Zyb20gX3B5dGVzdC5wYXRo
bGliIGltcG9ydCBQYXRoCisKKworY2xhc3MgVGVzdFBvcnQ6CisgICAgIiIiVGVzdCB0aGF0IG91
ciBwb3J0IG9mIHB5LmNvbW1vbi5GTk1hdGNoZXIgKGZubWF0Y2hfZXgpIHByb2R1Y2VzIHRoZSBz
YW1lIHJlc3VsdHMgYXMgdGhlCisgICAgb3JpZ2luYWwgcHkucGF0aC5sb2NhbC5mbm1hdGNoIG1l
dGhvZC4KKyAgICAiIiIKKworICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WyJwYXRobGliIiwg
InB5LnBhdGgiXSkKKyAgICBkZWYgbWF0Y2goc2VsZiwgcmVxdWVzdCk6CisgICAgICAgIGlmIHJl
cXVlc3QucGFyYW0gPT0gInB5LnBhdGgiOgorCisgICAgICAgICAgICBkZWYgbWF0Y2hfKHBhdHRl
cm4sIHBhdGgpOgorICAgICAgICAgICAgICAgIHJldHVybiBweS5wYXRoLmxvY2FsKHBhdGgpLmZu
bWF0Y2gocGF0dGVybikKKworICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IHJlcXVl
c3QucGFyYW0gPT0gInBhdGhsaWIiCisKKyAgICAgICAgICAgIGRlZiBtYXRjaF8ocGF0dGVybiwg
cGF0aCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZubWF0Y2hfZXgocGF0dGVybiwgcGF0aCkK
KworICAgICAgICByZXR1cm4gbWF0Y2hfCisKKyAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMy
IjoKKyAgICAgICAgZHJ2MSA9ICJjOiIKKyAgICAgICAgZHJ2MiA9ICJkOiIKKyAgICBlbHNlOgor
ICAgICAgICBkcnYxID0gIi9jIgorICAgICAgICBkcnYyID0gIi9kIgorCisgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKAorICAgICAgICAicGF0dGVybiwgcGF0aCIsCisgICAgICAgIFsKKyAg
ICAgICAgICAgICgiKi5weSIsICJmb28ucHkiKSwKKyAgICAgICAgICAgICgiKi5weSIsICJiYXIv
Zm9vLnB5IiksCisgICAgICAgICAgICAoInRlc3RfKi5weSIsICJmb28vdGVzdF9mb28ucHkiKSwK
KyAgICAgICAgICAgICgidGVzdHMvKi5weSIsICJ0ZXN0cy9mb28ucHkiKSwKKyAgICAgICAgICAg
IChkcnYxICsgIi8qLnB5IiwgZHJ2MSArICIvZm9vLnB5IiksCisgICAgICAgICAgICAoZHJ2MSAr
ICIvZm9vLyoucHkiLCBkcnYxICsgIi9mb28vZm9vLnB5IiksCisgICAgICAgICAgICAoInRlc3Rz
LyoqL3Rlc3QqLnB5IiwgInRlc3RzL2Zvby90ZXN0X2Zvby5weSIpLAorICAgICAgICAgICAgKCJ0
ZXN0cy8qKi9kb2MvdGVzdCoucHkiLCAidGVzdHMvZm9vL2Jhci9kb2MvdGVzdF9mb28ucHkiKSwK
KyAgICAgICAgICAgICgidGVzdHMvKiovZG9jLyoqL3Rlc3QqLnB5IiwgInRlc3RzL2Zvby9kb2Mv
YmFyL3Rlc3RfZm9vLnB5IiksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X21hdGNo
aW5nKHNlbGYsIG1hdGNoLCBwYXR0ZXJuLCBwYXRoKToKKyAgICAgICAgYXNzZXJ0IG1hdGNoKHBh
dHRlcm4sIHBhdGgpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJw
YXR0ZXJuLCBwYXRoIiwKKyAgICAgICAgWworICAgICAgICAgICAgKCIqLnB5IiwgImZvby5weWMi
KSwKKyAgICAgICAgICAgICgiKi5weSIsICJmb28vZm9vLnB5YyIpLAorICAgICAgICAgICAgKCJ0
ZXN0cy8qLnB5IiwgImZvby9mb28ucHkiKSwKKyAgICAgICAgICAgIChkcnYxICsgIi8qLnB5Iiwg
ZHJ2MiArICIvZm9vLnB5IiksCisgICAgICAgICAgICAoZHJ2MSArICIvZm9vLyoucHkiLCBkcnYy
ICsgIi9mb28vZm9vLnB5IiksCisgICAgICAgICAgICAoInRlc3RzLyoqL3Rlc3QqLnB5IiwgInRl
c3RzL2Zvby5weSIpLAorICAgICAgICAgICAgKCJ0ZXN0cy8qKi90ZXN0Ki5weSIsICJmb28vdGVz
dF9mb28ucHkiKSwKKyAgICAgICAgICAgICgidGVzdHMvKiovZG9jL3Rlc3QqLnB5IiwgInRlc3Rz
L2Zvby9iYXIvZG9jL2Zvby5weSIpLAorICAgICAgICAgICAgKCJ0ZXN0cy8qKi9kb2MvdGVzdCou
cHkiLCAidGVzdHMvZm9vL2Jhci90ZXN0X2Zvby5weSIpLAorICAgICAgICBdLAorICAgICkKKyAg
ICBkZWYgdGVzdF9ub3RfbWF0Y2hpbmcoc2VsZiwgbWF0Y2gsIHBhdHRlcm4sIHBhdGgpOgorICAg
ICAgICBhc3NlcnQgbm90IG1hdGNoKHBhdHRlcm4sIHBhdGgpCisKKworZGVmIHRlc3RfYWNjZXNz
X2RlbmllZF9kdXJpbmdfY2xlYW51cCh0bXBfcGF0aCwgbW9ua2V5cGF0Y2gpOgorICAgICIiIkVu
c3VyZSB0aGF0IGRlbGV0aW5nIGEgbnVtYmVyZWQgZGlyIGRvZXMgbm90IGZhaWwgYmVjYXVzZSBv
ZiBPU0Vycm9ycyAoIzQyNjIpLiIiIgorICAgIHBhdGggPSB0bXBfcGF0aCAvICJ0ZW1wLTEiCisg
ICAgcGF0aC5ta2RpcigpCisKKyAgICBkZWYgcmVuYW1lZF9mYWlsZWQoKmFyZ3MpOgorICAgICAg
ICByYWlzZSBPU0Vycm9yKCJhY2Nlc3MgZGVuaWVkIikKKworICAgIG1vbmtleXBhdGNoLnNldGF0
dHIoUGF0aCwgInJlbmFtZSIsIHJlbmFtZWRfZmFpbGVkKQorCisgICAgbG9ja19wYXRoID0gZ2V0
X2xvY2tfcGF0aChwYXRoKQorICAgIG1heWJlX2RlbGV0ZV9hX251bWJlcmVkX2RpcihwYXRoKQor
ICAgIGFzc2VydCBub3QgbG9ja19wYXRoLmlzX2ZpbGUoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X3BkYi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wZGIucHkK
aW5kZXggNjE1ZDUyZTgzNDU0NWQ5ZDIwOWFjYmRlNzQzZWVhZDdlZWE5MTQ5Yy4uZDMxZDYwNDY5
Y2QxMjFiZWZhZTIxZmI5NTExMTFkNmRhY2FlMjlmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X3BkYi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGRiLnB5
CkBAIC0xLDExICsxLDIzIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgc3lzCi1pbXBvcnQgcGxhdGZvcm0K
KyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworaW1wb3J0
IHNpeAogCiBpbXBvcnQgX3B5dGVzdC5fY29kZQotZnJvbSBfcHl0ZXN0LmRlYnVnZ2luZyBpbXBv
cnQgU1VQUE9SVFNfQlJFQUtQT0lOVF9CVUlMVElOCiBpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRl
c3QuZGVidWdnaW5nIGltcG9ydCBfdmFsaWRhdGVfdXNlcGRiX2NscworCit0cnk6CisgICAgYnJl
YWtwb2ludAorZXhjZXB0IE5hbWVFcnJvcjoKKyAgICBTVVBQT1JUU19CUkVBS1BPSU5UX0JVSUxU
SU4gPSBGYWxzZQorZWxzZToKKyAgICBTVVBQT1JUU19CUkVBS1BPSU5UX0JVSUxUSU4gPSBUcnVl
CiAKIAogX0VOVklST05fUFlUSE9OQlJFQUtQT0lOVCA9IG9zLmVudmlyb24uZ2V0KCJQWVRIT05C
UkVBS1BPSU5UIiwgIiIpCkBAIC0yNSw2ICszNyw3IEBAIGRlZiBjdXN0b21fcGRiX2NhbGxzKCk6
CiAKICAgICAjIGluc3RhbGwgZHVtbXkgZGVidWdnZXIgY2xhc3MgYW5kIHRyYWNrIHdoaWNoIG1l
dGhvZHMgd2VyZSBjYWxsZWQgb24gaXQKICAgICBjbGFzcyBfQ3VzdG9tUGRiKG9iamVjdCk6Cisg
ICAgICAgIHF1aXR0aW5nID0gRmFsc2UKIAogICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFy
Z3MsICoqa3dhcmdzKToKICAgICAgICAgICAgIGNhbGxlZC5hcHBlbmQoImluaXQiKQpAQCAtNDUs
NyArNTgsNiBAQCBkZWYgY3VzdG9tX2RlYnVnZ2VyX2hvb2soKToKIAogICAgICMgaW5zdGFsbCBk
dW1teSBkZWJ1Z2dlciBjbGFzcyBhbmQgdHJhY2sgd2hpY2ggbWV0aG9kcyB3ZXJlIGNhbGxlZCBv
biBpdAogICAgIGNsYXNzIF9DdXN0b21EZWJ1Z2dlcihvYmplY3QpOgotCiAgICAgICAgIGRlZiBf
X2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICAgICAgY2FsbGVkLmFwcGVu
ZCgiaW5pdCIpCiAKQEAgLTY1LDcgKzc3LDYgQEAgZGVmIGN1c3RvbV9kZWJ1Z2dlcl9ob29rKCk6
CiAKIAogY2xhc3MgVGVzdFBEQihvYmplY3QpOgotCiAgICAgQHB5dGVzdC5maXh0dXJlCiAgICAg
ZGVmIHBkYmxpc3Qoc2VsZiwgcmVxdWVzdCk6CiAgICAgICAgIG1vbmtleXBhdGNoID0gcmVxdWVz
dC5nZXRmaXh0dXJldmFsdWUoIm1vbmtleXBhdGNoIikKQEAgLTEzOSwzMCArMTUwLDEzIEBAIGNs
YXNzIFRlc3RQREIob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHJlcC5mYWlsZWQKICAgICAgICAg
YXNzZXJ0IGxlbihwZGJsaXN0KSA9PSAxCiAKLSAgICBkZWYgdGVzdF9wZGJfaW50ZXJhY3Rpb24o
c2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICBkZWYgdGVzdF8xKCk6Ci0gICAgICAgICAgICAgICAgaSA9
IDAKLSAgICAgICAgICAgICAgICBhc3NlcnQgaSA9PSAxCi0gICAgICAgICIiIgotICAgICAgICAp
Ci0gICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tcGRiICVzIiAlIHAxKQot
ICAgICAgICBjaGlsZC5leHBlY3QoIi4qZGVmIHRlc3RfMSIpCi0gICAgICAgIGNoaWxkLmV4cGVj
dCgiLippID0gMCIpCi0gICAgICAgIGNoaWxkLmV4cGVjdCgiKFBkYikiKQotICAgICAgICBjaGls
ZC5zZW5kZW9mKCkKLSAgICAgICAgcmVzdCA9IGNoaWxkLnJlYWQoKS5kZWNvZGUoInV0ZjgiKQot
ICAgICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiByZXN0Ci0gICAgICAgIGFzc2VydCAiZGVmIHRl
c3RfMSIgbm90IGluIHJlc3QKLSAgICAgICAgc2VsZi5mbHVzaChjaGlsZCkKLQogICAgIEBzdGF0
aWNtZXRob2QKICAgICBkZWYgZmx1c2goY2hpbGQpOgotICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0
ZW0oKSA9PSAiRGFyd2luIjoKLSAgICAgICAgICAgIHJldHVybgogICAgICAgICBpZiBjaGlsZC5p
c2FsaXZlKCk6CisgICAgICAgICAgICAjIFJlYWQgaWYgdGhlIHRlc3QgaGFzIG5vdCAoZS5nLiB0
ZXN0X3BkYl91bml0dGVzdF9za2lwKS4KKyAgICAgICAgICAgIGNoaWxkLnJlYWQoKQogICAgICAg
ICAgICAgY2hpbGQud2FpdCgpCisgICAgICAgIGFzc2VydCBub3QgY2hpbGQuaXNhbGl2ZSgpCiAK
ICAgICBkZWYgdGVzdF9wZGJfdW5pdHRlc3RfcG9zdG1vcnRlbShzZWxmLCB0ZXN0ZGlyKToKICAg
ICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBAIC0xNzcsNyArMTcxLDcgQEAgY2xhc3Mg
VGVzdFBEQihvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICBjaGlsZCA9
IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCItLXBkYiAlcyIgJSBwMSkKLSAgICAgICAgY2hpbGQuZXhw
ZWN0KCIoUGRiKSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKICAgICAgICAgY2hpbGQu
c2VuZGxpbmUoInAgc2VsZi5maWxlbmFtZSIpCiAgICAgICAgIGNoaWxkLnNlbmRlb2YoKQogICAg
ICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIpCkBAIC0yMDEsNDAgKzE5NSwz
MiBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgIGNoaWxkLnNlbmRlb2YoKQogICAg
ICAgICBzZWxmLmZsdXNoKGNoaWxkKQogCi0gICAgZGVmIHRlc3RfcGRiX3ByaW50X2NhcHR1cmVk
X3N0ZG91dChzZWxmLCB0ZXN0ZGlyKToKKyAgICBkZWYgdGVzdF9wZGJfcHJpbnRfY2FwdHVyZWRf
c3Rkb3V0X2FuZF9zdGRlcnIoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAxID0gdGVzdGRpci5t
YWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBkZWYgdGVzdF8xKCk6Cisg
ICAgICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3Jp
dGUoImdldFxceDIwcmVrdCIpCiAgICAgICAgICAgICAgICAgcHJpbnQoImdldFxceDIwcmVrdCIp
CiAgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X25v
dF9jYWxsZWRfZHVlX3RvX3F1aXQoKToKKyAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICIi
IgogICAgICAgICApCiAgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tcGRi
ICVzIiAlIHAxKQogICAgICAgICBjaGlsZC5leHBlY3QoImNhcHR1cmVkIHN0ZG91dCIpCiAgICAg
ICAgIGNoaWxkLmV4cGVjdCgiZ2V0IHJla3QiKQotICAgICAgICBjaGlsZC5leHBlY3QoIihQZGIp
IikKLSAgICAgICAgY2hpbGQuc2VuZGVvZigpCi0gICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCku
ZGVjb2RlKCJ1dGY4IikKLSAgICAgICAgYXNzZXJ0ICIxIGZhaWxlZCIgaW4gcmVzdAotICAgICAg
ICBhc3NlcnQgImdldCByZWt0IiBub3QgaW4gcmVzdAotICAgICAgICBzZWxmLmZsdXNoKGNoaWxk
KQotCi0gICAgZGVmIHRlc3RfcGRiX3ByaW50X2NhcHR1cmVkX3N0ZGVycihzZWxmLCB0ZXN0ZGly
KToKLSAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAg
ICAgICAgICAgIGRlZiB0ZXN0XzEoKToKLSAgICAgICAgICAgICAgICBpbXBvcnQgc3lzCi0gICAg
ICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiZ2V0XFx4MjByZWt0IikKLSAgICAgICAgICAg
ICAgICBhc3NlcnQgRmFsc2UKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgY2hpbGQg
PSB0ZXN0ZGlyLnNwYXduX3B5dGVzdCgiLS1wZGIgJXMiICUgcDEpCiAgICAgICAgIGNoaWxkLmV4
cGVjdCgiY2FwdHVyZWQgc3RkZXJyIikKICAgICAgICAgY2hpbGQuZXhwZWN0KCJnZXQgcmVrdCIp
Ci0gICAgICAgIGNoaWxkLmV4cGVjdCgiKFBkYikiKQorICAgICAgICBjaGlsZC5leHBlY3QoInRy
YWNlYmFjayIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiZGVmIHRlc3RfMSIpCisgICAgICAgIGNo
aWxkLmV4cGVjdCgiUGRiIikKICAgICAgICAgY2hpbGQuc2VuZGVvZigpCiAgICAgICAgIHJlc3Qg
PSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikKLSAgICAgICAgYXNzZXJ0ICIxIGZhaWxlZCIg
aW4gcmVzdAorICAgICAgICBhc3NlcnQgIkV4aXQ6IFF1aXR0aW5nIGRlYnVnZ2VyIiBpbiByZXN0
CisgICAgICAgIGFzc2VydCAiPSAxIGZhaWxlZCBpbiIgaW4gcmVzdAorICAgICAgICBhc3NlcnQg
ImRlZiB0ZXN0XzEiIG5vdCBpbiByZXN0CiAgICAgICAgIGFzc2VydCAiZ2V0IHJla3QiIG5vdCBp
biByZXN0CiAgICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCiAKQEAgLTI0Niw3ICsyMzIsNyBAQCBj
bGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIGNo
aWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tcGRiICVzIiAlIHAxKQotICAgICAgICBjaGls
ZC5leHBlY3QoIihQZGIpIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJQZGIiKQogICAgICAgICBv
dXRwdXQgPSBjaGlsZC5iZWZvcmUuZGVjb2RlKCJ1dGY4IikKICAgICAgICAgY2hpbGQuc2VuZGVv
ZigpCiAgICAgICAgIGFzc2VydCAiY2FwdHVyZWQgc3Rkb3V0IiBub3QgaW4gb3V0cHV0CkBAIC0y
NjMsMTEgKzI0OSwxMyBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgICAgICAgICAg
YXNzZXJ0IEZhbHNlCiAgICAgICAgICIiIgogICAgICAgICApCi0gICAgICAgIGNoaWxkID0gdGVz
dGRpci5zcGF3bl9weXRlc3QoIi0tc2hvdy1jYXB0dXJlPSVzIC0tcGRiICVzIiAlIChzaG93Y2Fw
dHVyZSwgcDEpKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KAorICAgICAg
ICAgICAgIi0tc2hvdy1jYXB0dXJlPXt9IC0tcGRiIHt9Ii5mb3JtYXQoc2hvd2NhcHR1cmUsIHAx
KQorICAgICAgICApCiAgICAgICAgIGlmIHNob3djYXB0dXJlIGluICgiYWxsIiwgImxvZyIpOgog
ICAgICAgICAgICAgY2hpbGQuZXhwZWN0KCJjYXB0dXJlZCBsb2ciKQogICAgICAgICAgICAgY2hp
bGQuZXhwZWN0KCJnZXQgcmVrdCIpCi0gICAgICAgIGNoaWxkLmV4cGVjdCgiKFBkYikiKQorICAg
ICAgICBjaGlsZC5leHBlY3QoIlBkYiIpCiAgICAgICAgIGNoaWxkLnNlbmRlb2YoKQogICAgICAg
ICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIpCiAgICAgICAgIGFzc2VydCAiMSBm
YWlsZWQiIGluIHJlc3QKQEAgLTI4MiwxMyArMjcwLDExIEBAIGNsYXNzIFRlc3RQREIob2JqZWN0
KToKICAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKICAgICAgICAgIiIiCiAgICAgICAgICkK
LSAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdCgKLSAgICAgICAgICAgICItLXNo
b3ctY2FwdHVyZT1hbGwgLS1wZGIgIiAiLXAgbm86bG9nZ2luZyAlcyIgJSBwMQotICAgICAgICAp
CisgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tc2hvdy1jYXB0dXJlPWFs
bCAtLXBkYiAtcCBubzpsb2dnaW5nICVzIiAlIHAxKQogICAgICAgICBjaGlsZC5leHBlY3QoImdl
dCByZWt0IikKICAgICAgICAgb3V0cHV0ID0gY2hpbGQuYmVmb3JlLmRlY29kZSgidXRmOCIpCiAg
ICAgICAgIGFzc2VydCAiY2FwdHVyZWQgbG9nIiBub3QgaW4gb3V0cHV0Ci0gICAgICAgIGNoaWxk
LmV4cGVjdCgiKFBkYikiKQorICAgICAgICBjaGlsZC5leHBlY3QoIlBkYiIpCiAgICAgICAgIGNo
aWxkLnNlbmRlb2YoKQogICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIp
CiAgICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKQEAgLTMwNyw3ICsyOTMsNyBAQCBj
bGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRl
c3QoIi0tcGRiICVzIiAlIHAxKQogICAgICAgICBjaGlsZC5leHBlY3QoIi4qZGVmIHRlc3RfMSIp
CiAgICAgICAgIGNoaWxkLmV4cGVjdCgiLipweXRlc3QucmFpc2VzLipnbG9iYWxmdW5jIikKLSAg
ICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikK
ICAgICAgICAgY2hpbGQuc2VuZGxpbmUoImdsb2JhbGZ1bmMiKQogICAgICAgICBjaGlsZC5leHBl
Y3QoIi4qZnVuY3Rpb24iKQogICAgICAgICBjaGlsZC5zZW5kZW9mKCkKQEAgLTMyMyw4ICszMDks
OCBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAgY2hpbGQgPSB0
ZXN0ZGlyLnNwYXduX3B5dGVzdCgiLS1wZGIgJXMiICUgcDEpCiAgICAgICAgICMgY2hpbGQuZXhw
ZWN0KCIuKmltcG9ydCBweXRlc3QuKiIpCi0gICAgICAgIGNoaWxkLmV4cGVjdCgiKFBkYikiKQot
ICAgICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJQZGIiKQorICAg
ICAgICBjaGlsZC5zZW5kbGluZSgiYyIpCiAgICAgICAgIGNoaWxkLmV4cGVjdCgiMSBlcnJvciIp
CiAgICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCiAKQEAgLTMzNyw4ICszMjMsMjAgQEAgY2xhc3Mg
VGVzdFBEQihvYmplY3QpOgogICAgICAgICApCiAgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlm
aWxlKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQogICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bh
d25fcHl0ZXN0KCItLXBkYiAlcyIgJSBwMSkKLSAgICAgICAgIyBjaGlsZC5leHBlY3QoIi4qaW1w
b3J0IHB5dGVzdC4qIikKLSAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAgICAgIGNo
aWxkLmV4cGVjdCgiUGRiIikKKworICAgICAgICAjIElOVEVSTkFMRVJST1IgaXMgb25seSBkaXNw
bGF5ZWQgb25jZSB2aWEgdGVybWluYWwgcmVwb3J0ZXIuCisgICAgICAgIGFzc2VydCAoCisgICAg
ICAgICAgICBsZW4oCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICB4Cisg
ICAgICAgICAgICAgICAgICAgIGZvciB4IGluIGNoaWxkLmJlZm9yZS5kZWNvZGUoKS5zcGxpdGxp
bmVzKCkKKyAgICAgICAgICAgICAgICAgICAgaWYgeC5zdGFydHN3aXRoKCJJTlRFUk5BTEVSUk9S
PiBUcmFjZWJhY2siKQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgID09IDEKKyAgICAgICAgKQorCiAgICAgICAgIGNoaWxkLnNlbmRlb2YoKQogICAgICAgICBz
ZWxmLmZsdXNoKGNoaWxkKQogCkBAIC0zNDgsMTYgKzM0Niw0MSBAQCBjbGFzcyBUZXN0UERCKG9i
amVjdCk6CiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CiAgICAgICAgICAgICBkZWYgdGVzdF8x
KCk6CiAgICAgICAgICAgICAgICAgaSA9IDAKLSAgICAgICAgICAgICAgICBwcmludCAoImhlbGxv
MTciKQorICAgICAgICAgICAgICAgIHByaW50KCJoZWxsbzE3IikKICAgICAgICAgICAgICAgICBw
eXRlc3Quc2V0X3RyYWNlKCkKKyAgICAgICAgICAgICAgICBpID09IDEKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgMAorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBjaGlsZCA9IHRlc3Rk
aXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkpCisgICAgICAgIGNoaWxkLmV4cGVjdChyInRlc3RfMVwo
XCkiKQorICAgICAgICBjaGlsZC5leHBlY3QoImkgPT0gMSIpCisgICAgICAgIGNoaWxkLmV4cGVj
dCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoImMiKQorICAgICAgICByZXN0ID0gY2hp
bGQucmVhZCgpLmRlY29kZSgidXRmLTgiKQorICAgICAgICBhc3NlcnQgIkFzc2VydGlvbkVycm9y
IiBpbiByZXN0CisgICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKKyAgICAgICAgYXNz
ZXJ0ICJkZWYgdGVzdF8xIiBpbiByZXN0CisgICAgICAgIGFzc2VydCAiaGVsbG8xNyIgaW4gcmVz
dCAgIyBvdXQgaXMgY2FwdHVyZWQKKyAgICAgICAgc2VsZi5mbHVzaChjaGlsZCkKKworICAgIGRl
ZiB0ZXN0X3BkYl9zZXRfdHJhY2Vfa3dhcmdzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgICAgIGkgPSAw
CisgICAgICAgICAgICAgICAgcHJpbnQoImhlbGxvMTciKQorICAgICAgICAgICAgICAgIHB5dGVz
dC5zZXRfdHJhY2UoaGVhZGVyPSI9PSBteV9oZWFkZXIgPT0iKQogICAgICAgICAgICAgICAgIHgg
PSAzCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKICAgICAgICAgIiIiCiAgICAgICAgICkKICAg
ICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdChzdHIocDEpKQotICAgICAgICBjaGls
ZC5leHBlY3QoInRlc3RfMSIpCi0gICAgICAgIGNoaWxkLmV4cGVjdCgieCA9IDMiKQotICAgICAg
ICBjaGlsZC5leHBlY3QoIihQZGIpIikKLSAgICAgICAgY2hpbGQuc2VuZGVvZigpCisgICAgICAg
IGNoaWxkLmV4cGVjdCgiPT0gbXlfaGVhZGVyID09IikKKyAgICAgICAgYXNzZXJ0ICJQREIgc2V0
X3RyYWNlIiBub3QgaW4gY2hpbGQuYmVmb3JlLmRlY29kZSgpCisgICAgICAgIGNoaWxkLmV4cGVj
dCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoImMiKQogICAgICAgICByZXN0ID0gY2hp
bGQucmVhZCgpLmRlY29kZSgidXRmLTgiKQogICAgICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiBy
ZXN0CiAgICAgICAgIGFzc2VydCAiZGVmIHRlc3RfMSIgaW4gcmVzdApAQCAtMzc0LDExICszOTcs
MTIgQEAgY2xhc3MgVGVzdFBEQihvYmplY3QpOgogICAgICAgICApCiAgICAgICAgIGNoaWxkID0g
dGVzdGRpci5zcGF3bl9weXRlc3Qoc3RyKHAxKSkKICAgICAgICAgY2hpbGQuZXhwZWN0KCJ0ZXN0
XzEiKQotICAgICAgICBjaGlsZC5leHBlY3QoIihQZGIpIikKLSAgICAgICAgY2hpbGQuc2VuZGVv
ZigpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUo
InEiKQogICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIpCi0gICAgICAg
IGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKKyAgICAgICAgYXNzZXJ0ICJubyB0ZXN0cyByYW4i
IGluIHJlc3QKICAgICAgICAgYXNzZXJ0ICJyZWFkaW5nIGZyb20gc3RkaW4gd2hpbGUgb3V0cHV0
IiBub3QgaW4gcmVzdAorICAgICAgICBhc3NlcnQgIkJkYlF1aXQiIG5vdCBpbiByZXN0CiAgICAg
ICAgIHNlbGYuZmx1c2goY2hpbGQpCiAKICAgICBkZWYgdGVzdF9wZGJfYW5kX2NhcHN5cyhzZWxm
LCB0ZXN0ZGlyKToKQEAgLTM4Niw3ICs0MTAsNyBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAg
ICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKICAgICAgICAgICAgIGRl
ZiB0ZXN0XzEoY2Fwc3lzKToKLSAgICAgICAgICAgICAgICBwcmludCAoImhlbGxvMSIpCisgICAg
ICAgICAgICAgICAgcHJpbnQoImhlbGxvMSIpCiAgICAgICAgICAgICAgICAgcHl0ZXN0LnNldF90
cmFjZSgpCiAgICAgICAgICIiIgogICAgICAgICApCkBAIC0zOTgsNiArNDIyLDI0IEBAIGNsYXNz
IFRlc3RQREIob2JqZWN0KToKICAgICAgICAgY2hpbGQucmVhZCgpCiAgICAgICAgIHNlbGYuZmx1
c2goY2hpbGQpCiAKKyAgICBkZWYgdGVzdF9wZGJfd2l0aF9jYXBsb2dfb25fcGRiX2ludm9jYXRp
b24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAg
ICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYgdGVzdF8xKGNhcHN5cywgY2FwbG9nKToKKyAg
ICAgICAgICAgICAgICBpbXBvcnQgbG9nZ2luZworICAgICAgICAgICAgICAgIGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKS53YXJuaW5nKCJzb21lX3dhcm5pbmciKQorICAgICAgICAgICAgICAg
IGFzc2VydCAwCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIGNoaWxkID0gdGVzdGRp
ci5zcGF3bl9weXRlc3QoIi0tcGRiICVzIiAlIHN0cihwMSkpCisgICAgICAgIGNoaWxkLnNlbmQo
ImNhcGxvZy5yZWNvcmRfdHVwbGVzXG4iKQorICAgICAgICBjaGlsZC5leHBlY3RfZXhhY3QoCisg
ICAgICAgICAgICAiWygndGVzdF9wZGJfd2l0aF9jYXBsb2dfb25fcGRiX2ludm9jYXRpb24nLCAz
MCwgJ3NvbWVfd2FybmluZycpXSIKKyAgICAgICAgKQorICAgICAgICBjaGlsZC5zZW5kZW9mKCkK
KyAgICAgICAgY2hpbGQucmVhZCgpCisgICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCisKICAgICBk
ZWYgdGVzdF9zZXRfdHJhY2VfY2FwdHVyaW5nX2FmdGVyd2FyZHMoc2VsZiwgdGVzdGRpcik6CiAg
ICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC00MDUs
NyArNDQ3LDcgQEAgY2xhc3MgVGVzdFBEQihvYmplY3QpOgogICAgICAgICAgICAgZGVmIHRlc3Rf
MSgpOgogICAgICAgICAgICAgICAgIHBkYi5zZXRfdHJhY2UoKQogICAgICAgICAgICAgZGVmIHRl
c3RfMigpOgotICAgICAgICAgICAgICAgIHByaW50ICgiaGVsbG8iKQorICAgICAgICAgICAgICAg
IHByaW50KCJoZWxsbyIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKICAgICAgICAgIiIiCiAg
ICAgICAgICkKQEAgLTQxOSw3ICs0NjEsNyBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAg
ICAgIGNoaWxkLnJlYWQoKQogICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQogCi0gICAgZGVmIHRl
c3RfcGRiX2ludGVyYWN0aW9uX2RvY3Rlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgZGVmIHRlc3Rf
cGRiX2ludGVyYWN0aW9uX2RvY3Rlc3Qoc2VsZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gpOgogICAg
ICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgogICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdApAQCAtNDMxLDEwICs0NzMsMTQgQEAgY2xhc3MgVGVzdFBEQihvYmpl
Y3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bh
d25fcHl0ZXN0KCItLWRvY3Rlc3QtbW9kdWxlcyAtLXBkYiAlcyIgJSBwMSkKLSAgICAgICAgY2hp
bGQuZXhwZWN0KCIoUGRiKSIpCi0gICAgICAgIGNoaWxkLnNlbmRsaW5lKCJpIikKLSAgICAgICAg
Y2hpbGQuZXhwZWN0KCIwIikKLSAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAgICAg
IGNoaWxkLmV4cGVjdCgiUGRiIikKKworICAgICAgICBhc3NlcnQgIlVORVhQRUNURUQgRVhDRVBU
SU9OOiBBc3NlcnRpb25FcnJvcigpIiBpbiBjaGlsZC5iZWZvcmUuZGVjb2RlKCJ1dGY4IikKKwor
ICAgICAgICBjaGlsZC5zZW5kbGluZSgiJ2k9JWkuJyAlIGkiKQorICAgICAgICBjaGlsZC5leHBl
Y3QoIlBkYiIpCisgICAgICAgIGFzc2VydCAiXHJcbidpPTAuJ1xyXG4iIGluIGNoaWxkLmJlZm9y
ZS5kZWNvZGUoInV0ZjgiKQorCiAgICAgICAgIGNoaWxkLnNlbmRlb2YoKQogICAgICAgICByZXN0
ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIpCiAgICAgICAgIGFzc2VydCAiMSBmYWlsZWQi
IGluIHJlc3QKQEAgLTQ0NiwyOCArNDkyLDIyMCBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CiAgICAgICAgICAgICBkZWYgdGVzdF8xKCk6CiAgICAg
ICAgICAgICAgICAgaSA9IDAKLSAgICAgICAgICAgICAgICBwcmludCAoImhlbGxvMTciKQorICAg
ICAgICAgICAgICAgIHByaW50KCJoZWxsbzE3IikKICAgICAgICAgICAgICAgICBweXRlc3Quc2V0
X3RyYWNlKCkKICAgICAgICAgICAgICAgICB4ID0gMwotICAgICAgICAgICAgICAgIHByaW50ICgi
aGVsbG8xOCIpCisgICAgICAgICAgICAgICAgcHJpbnQoImhlbGxvMTgiKQogICAgICAgICAgICAg
ICAgIHB5dGVzdC5zZXRfdHJhY2UoKQogICAgICAgICAgICAgICAgIHggPSA0CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IDAKICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgY2hpbGQgPSB0
ZXN0ZGlyLnNwYXduX3B5dGVzdChzdHIocDEpKQorICAgICAgICBjaGlsZC5leHBlY3QociJQREIg
c2V0X3RyYWNlIFwoSU8tY2FwdHVyaW5nIHR1cm5lZCBvZmZcKSIpCiAgICAgICAgIGNoaWxkLmV4
cGVjdCgidGVzdF8xIikKICAgICAgICAgY2hpbGQuZXhwZWN0KCJ4ID0gMyIpCi0gICAgICAgIGNo
aWxkLmV4cGVjdCgiKFBkYikiKQorICAgICAgICBjaGlsZC5leHBlY3QoIlBkYiIpCiAgICAgICAg
IGNoaWxkLnNlbmRsaW5lKCJjIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KHIiUERCIGNvbnRpbnVl
IFwoSU8tY2FwdHVyaW5nIHJlc3VtZWRcKSIpCisgICAgICAgIGNoaWxkLmV4cGVjdChyIlBEQiBz
ZXRfdHJhY2UgXChJTy1jYXB0dXJpbmcgdHVybmVkIG9mZlwpIikKICAgICAgICAgY2hpbGQuZXhw
ZWN0KCJ4ID0gNCIpCi0gICAgICAgIGNoaWxkLnNlbmRlb2YoKQorICAgICAgICBjaGlsZC5leHBl
Y3QoIlBkYiIpCisgICAgICAgIGNoaWxkLnNlbmRsaW5lKCJjIikKKyAgICAgICAgY2hpbGQuZXhw
ZWN0KCJfIHRlc3RfMSBfIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJkZWYgdGVzdF8xIikKICAg
ICAgICAgcmVzdCA9IGNoaWxkLnJlYWQoKS5kZWNvZGUoInV0ZjgiKQorICAgICAgICBhc3NlcnQg
IkNhcHR1cmVkIHN0ZG91dCBjYWxsIiBpbiByZXN0CisgICAgICAgIGFzc2VydCAiaGVsbG8xNyIg
aW4gcmVzdCAgIyBvdXQgaXMgY2FwdHVyZWQKKyAgICAgICAgYXNzZXJ0ICJoZWxsbzE4IiBpbiBy
ZXN0ICAjIG91dCBpcyBjYXB0dXJlZAogICAgICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiByZXN0
Ci0gICAgICAgIGFzc2VydCAiZGVmIHRlc3RfMSIgaW4gcmVzdAorICAgICAgICBzZWxmLmZsdXNo
KGNoaWxkKQorCisgICAgZGVmIHRlc3RfcGRiX3dpdGhfaW5qZWN0ZWRfZG9fZGVidWcoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgICIiIlNpbXVsYXRlcyBwZGJwcCwgd2hpY2ggaW5qZWN0cyBQZGIg
aW50byBkb19kZWJ1ZywgYW5kIHVzZXMKKyAgICAgICAgc2VsZi5fX2NsYXNzX18gaW4gZG9fY29u
dGludWUuCisgICAgICAgICIiIgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgICAgIG15dGVzdD0iIiIKKyAgICAgICAgICAgIGltcG9ydCBwZGIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgY291bnRfY29udGludWUgPSAwCisKKyAgICAg
ICAgICAgIGNsYXNzIEN1c3RvbVBkYihwZGIuUGRiLCBvYmplY3QpOgorICAgICAgICAgICAgICAg
IGRlZiBkb19kZWJ1ZyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgICAgICAgICBpbXBvcnQgc3lz
CisgICAgICAgICAgICAgICAgICAgIGltcG9ydCB0eXBlcworCisgICAgICAgICAgICAgICAgICAg
IGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGRv
X2RlYnVnX2Z1bmMgPSBwZGIuUGRiLmRvX2RlYnVnLmltX2Z1bmMKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvX2RlYnVnX2Z1bmMgPSBwZGIuUGRi
LmRvX2RlYnVnCisKKyAgICAgICAgICAgICAgICAgICAgbmV3Z2xvYmFscyA9IGRvX2RlYnVnX2Z1
bmMuX19nbG9iYWxzX18uY29weSgpCisgICAgICAgICAgICAgICAgICAgIG5ld2dsb2JhbHNbJ1Bk
YiddID0gc2VsZi5fX2NsYXNzX18KKyAgICAgICAgICAgICAgICAgICAgb3JpZ19kb19kZWJ1ZyA9
IHR5cGVzLkZ1bmN0aW9uVHlwZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvX2RlYnVnX2Z1
bmMuX19jb2RlX18sIG5ld2dsb2JhbHMsCisgICAgICAgICAgICAgICAgICAgICAgICBkb19kZWJ1
Z19mdW5jLl9fbmFtZV9fLCBkb19kZWJ1Z19mdW5jLl9fZGVmYXVsdHNfXywKKyAgICAgICAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ19kb19kZWJ1ZyhzZWxm
LCBhcmcpCisgICAgICAgICAgICAgICAgZG9fZGVidWcuX19kb2NfXyA9IHBkYi5QZGIuZG9fZGVi
dWcuX19kb2NfXworCisgICAgICAgICAgICAgICAgZGVmIGRvX2NvbnRpbnVlKHNlbGYsICphcmdz
LCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgICAgIGdsb2JhbCBjb3VudF9jb250aW51ZQor
ICAgICAgICAgICAgICAgICAgICBjb3VudF9jb250aW51ZSArPSAxCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBzdXBlcihDdXN0b21QZGIsIHNlbGYpLmRvX2NvbnRpbnVlKCphcmdzLCAqKmt3
YXJncykKKworICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAgIHByaW50KCJw
cmludF9mcm9tX2ZvbyIpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAg
ICAgICBpID0gMAorICAgICAgICAgICAgICAgIHByaW50KCJoZWxsbzE3IikKKyAgICAgICAgICAg
ICAgICBweXRlc3Quc2V0X3RyYWNlKCkKKyAgICAgICAgICAgICAgICB4ID0gMworICAgICAgICAg
ICAgICAgIHByaW50KCJoZWxsbzE4IikKKworICAgICAgICAgICAgICAgIGFzc2VydCBjb3VudF9j
b250aW51ZSA9PSAyLCAidW5leHBlY3RlZF9mYWlsdXJlOiAlZCAhPSAyIiAlIGNvdW50X2NvbnRp
bnVlCisgICAgICAgICAgICAgICAgcHl0ZXN0LmZhaWwoImV4cGVjdGVkX2ZhaWx1cmUiKQorICAg
ICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0
KCItLXBkYmNscz1teXRlc3Q6Q3VzdG9tUGRiICVzIiAlIHN0cihwMSkpCisgICAgICAgIGNoaWxk
LmV4cGVjdChyIlBEQiBzZXRfdHJhY2UgXChJTy1jYXB0dXJpbmcgdHVybmVkIG9mZlwpIikKKyAg
ICAgICAgY2hpbGQuZXhwZWN0KHIiXG5cKFBkYiIpCisgICAgICAgIGNoaWxkLnNlbmRsaW5lKCJk
ZWJ1ZyBmb28oKSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiRU5URVJJTkcgUkVDVVJTSVZFIERF
QlVHR0VSIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KHIiXG5cKFwoUGRiIikKKyAgICAgICAgY2hp
bGQuc2VuZGxpbmUoImMiKQorICAgICAgICBjaGlsZC5leHBlY3QoIkxFQVZJTkcgUkVDVVJTSVZF
IERFQlVHR0VSIikKKyAgICAgICAgYXNzZXJ0IGIiUERCIGNvbnRpbnVlIiBub3QgaW4gY2hpbGQu
YmVmb3JlCisgICAgICAgICMgTm8gZXh0cmEgbmV3bGluZS4KKyAgICAgICAgYXNzZXJ0IGNoaWxk
LmJlZm9yZS5lbmRzd2l0aChiImNcclxucHJpbnRfZnJvbV9mb29cclxuIikKKworICAgICAgICAj
IHNldF9kZWJ1ZyBzaG91bGQgbm90IHJhaXNlIG91dGNvbWVzLkV4aXQsIGlmIHVzZWQgcmVjcnVy
c2l2ZWx5LgorICAgICAgICBjaGlsZC5zZW5kbGluZSgiZGVidWcgNDIiKQorICAgICAgICBjaGls
ZC5zZW5kbGluZSgicSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiTEVBVklORyBSRUNVUlNJVkUg
REVCVUdHRVIiKQorICAgICAgICBhc3NlcnQgYiJFTlRFUklORyBSRUNVUlNJVkUgREVCVUdHRVIi
IGluIGNoaWxkLmJlZm9yZQorICAgICAgICBhc3NlcnQgYiJRdWl0dGluZyBkZWJ1Z2dlciIgbm90
IGluIGNoaWxkLmJlZm9yZQorCisgICAgICAgIGNoaWxkLnNlbmRsaW5lKCJjIikKKyAgICAgICAg
Y2hpbGQuZXhwZWN0KHIiUERCIGNvbnRpbnVlIFwoSU8tY2FwdHVyaW5nIHJlc3VtZWRcKSIpCisg
ICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikKICAgICAgICAgYXNzZXJ0
ICJoZWxsbzE3IiBpbiByZXN0ICAjIG91dCBpcyBjYXB0dXJlZAogICAgICAgICBhc3NlcnQgImhl
bGxvMTgiIGluIHJlc3QgICMgb3V0IGlzIGNhcHR1cmVkCisgICAgICAgIGFzc2VydCAiMSBmYWls
ZWQiIGluIHJlc3QKKyAgICAgICAgYXNzZXJ0ICJGYWlsZWQ6IGV4cGVjdGVkX2ZhaWx1cmUiIGlu
IHJlc3QKKyAgICAgICAgYXNzZXJ0ICJBc3NlcnRpb25FcnJvcjogdW5leHBlY3RlZF9mYWlsdXJl
IiBub3QgaW4gcmVzdAorICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRlc3Rf
cGRiX3dpdGhvdXRfY2FwdHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgICAgICBweXRlc3Quc2V0X3Ry
YWNlKCkKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNw
YXduX3B5dGVzdCgiLXMgJXMiICUgcDEpCisgICAgICAgIGNoaWxkLmV4cGVjdChyIj4+PiBQREIg
c2V0X3RyYWNlID4+PiIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKyAgICAgICAgY2hp
bGQuc2VuZGxpbmUoImMiKQorICAgICAgICBjaGlsZC5leHBlY3QociI+Pj4gUERCIGNvbnRpbnVl
ID4+PiIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiMSBwYXNzZWQiKQogICAgICAgICBzZWxmLmZs
dXNoKGNoaWxkKQogCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjYXB0dXJlX2FyZyIs
ICgiIiwgIi1zIiwgIi1wIG5vOmNhcHR1cmUiKSkKKyAgICBkZWYgdGVzdF9wZGJfY29udGludWVf
d2l0aF9yZWN1cnNpdmVfZGVidWcoc2VsZiwgY2FwdHVyZV9hcmcsIHRlc3RkaXIpOgorICAgICAg
ICAiIiJGdWxsIGNvdmVyYWdlIGZvciBkb19kZWJ1ZyB3aXRob3V0IGNhcHR1cmluZy4KKworICAg
ICAgICBUaGlzIGlzIHZlcnkgc2ltaWxhciB0byB0ZXN0X3BkYl9pbnRlcmFjdGlvbl9jb250aW51
ZV9yZWN1cnNpdmUgaW4gZ2VuZXJhbCwKKyAgICAgICAgYnV0IG1vY2tzIG91dCBgYHBkYi5zZXRf
dHJhY2VgYCBmb3IgcHJvdmlkaW5nIG1vcmUgY292ZXJhZ2UuCisgICAgICAgICIiIgorICAgICAg
ICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgIGlucHV0ID0gcmF3X2lucHV0CisgICAgICAgICAgICBleGNl
cHQgTmFtZUVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgZGVmIHNl
dF90cmFjZSgpOgorICAgICAgICAgICAgICAgIF9faW1wb3J0X18oJ3BkYicpLnNldF90cmFjZSgp
CisKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEobW9ua2V5cGF0Y2gpOgorICAgICAgICAgICAgICAg
IGltcG9ydCBfcHl0ZXN0LmRlYnVnZ2luZworCisgICAgICAgICAgICAgICAgY2xhc3MgcHl0ZXN0
UERCVGVzdChfcHl0ZXN0LmRlYnVnZ2luZy5weXRlc3RQREIpOgorICAgICAgICAgICAgICAgICAg
ICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgICAgICAgICAgZGVmIHNldF90cmFjZShjbHMsICph
cmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgICAgICAgICAjIEluaXQgUHl0ZXN0UGRi
V3JhcHBlciB0byBoYW5kbGUgY2FwdHVyaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgX3Bk
YiA9IGNscy5faW5pdF9wZGIoInNldF90cmFjZSIsICphcmdzLCAqKmt3YXJncykKKworICAgICAg
ICAgICAgICAgICAgICAgICAgIyBNb2NrIG91dCBwZGIuUGRiLmRvX2NvbnRpbnVlLgorICAgICAg
ICAgICAgICAgICAgICAgICAgaW1wb3J0IHBkYgorICAgICAgICAgICAgICAgICAgICAgICAgcGRi
LlBkYi5kb19jb250aW51ZSA9IGxhbWJkYSBzZWxmLCBhcmc6IE5vbmUKKworICAgICAgICAgICAg
ICAgICAgICAgICAgcHJpbnQoIj09PSIgKyAiIFNFVF9UUkFDRSA9PT0iKQorICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IGlucHV0KCkgPT0gImRlYnVnIHNldF90cmFjZSgpIgorCisgICAg
ICAgICAgICAgICAgICAgICAgICAjIFNpbXVsYXRlIFB5dGVzdFBkYldyYXBwZXIuZG9fZGVidWcK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNscy5fcmVjdXJzaXZlX2RlYnVnICs9IDEKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW50KCJFTlRFUklORyBSRUNVUlNJVkUgREVCVUdHRVIiKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIj09PSIgKyAiIFNFVF9UUkFDRV8yID09PSIp
CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBpbnB1dCgpID09ICJjIgorICAgICAg
ICAgICAgICAgICAgICAgICAgX3BkYi5kb19jb250aW51ZSgiIikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50KCI9PT0iICsgIiBTRVRfVFJBQ0VfMyA9PT0iKQorCisgICAgICAgICAgICAg
ICAgICAgICAgICAjIFNpbXVsYXRlIFB5dGVzdFBkYldyYXBwZXIuZG9fZGVidWcKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50KCJMRUFWSU5HIFJFQ1VSU0lWRSBERUJVR0dFUiIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBjbHMuX3JlY3Vyc2l2ZV9kZWJ1ZyAtPSAxCisKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50KCI9PT0iICsgIiBTRVRfVFJBQ0VfNCA9PT0iKQorICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IGlucHV0KCkgPT0gImMiCisgICAgICAgICAgICAgICAg
ICAgICAgICBfcGRiLmRvX2NvbnRpbnVlKCIiKQorCisgICAgICAgICAgICAgICAgICAgIGRlZiBk
b19jb250aW51ZShzZWxmLCBhcmcpOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIj09
PSBkb19jb250aW51ZSIpCisKKyAgICAgICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKF9w
eXRlc3QuZGVidWdnaW5nLCAicHl0ZXN0UERCIiwgcHl0ZXN0UERCVGVzdCkKKworICAgICAgICAg
ICAgICAgIGltcG9ydCBwZGIKKyAgICAgICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHBk
YiwgInNldF90cmFjZSIsIHB5dGVzdFBEQlRlc3Quc2V0X3RyYWNlKQorCisgICAgICAgICAgICAg
ICAgc2V0X3RyYWNlKCkKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgY2hpbGQgPSB0
ZXN0ZGlyLnNwYXduX3B5dGVzdCgiLS10Yj1zaG9ydCAlcyAlcyIgJSAocDEsIGNhcHR1cmVfYXJn
KSkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCI9PT0gU0VUX1RSQUNFID09PSIpCisgICAgICAgIGJl
Zm9yZSA9IGNoaWxkLmJlZm9yZS5kZWNvZGUoInV0ZjgiKQorICAgICAgICBpZiBub3QgY2FwdHVy
ZV9hcmc6CisgICAgICAgICAgICBhc3NlcnQgIj4+PiBQREIgc2V0X3RyYWNlIChJTy1jYXB0dXJp
bmcgdHVybmVkIG9mZikgPj4+IiBpbiBiZWZvcmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGFzc2VydCAiPj4+IFBEQiBzZXRfdHJhY2UgPj4+IiBpbiBiZWZvcmUKKyAgICAgICAgY2hpbGQu
c2VuZGxpbmUoImRlYnVnIHNldF90cmFjZSgpIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCI9PT0g
U0VUX1RSQUNFXzIgPT09IikKKyAgICAgICAgYmVmb3JlID0gY2hpbGQuYmVmb3JlLmRlY29kZSgi
dXRmOCIpCisgICAgICAgIGFzc2VydCAiXHJcbkVOVEVSSU5HIFJFQ1VSU0lWRSBERUJVR0dFUlxy
XG4iIGluIGJlZm9yZQorICAgICAgICBjaGlsZC5zZW5kbGluZSgiYyIpCisgICAgICAgIGNoaWxk
LmV4cGVjdCgiPT09IFNFVF9UUkFDRV8zID09PSIpCisKKyAgICAgICAgIyBObyBjb250aW51ZSBt
ZXNzYWdlIHdpdGggcmVjdXJzaXZlIGRlYnVnZ2luZy4KKyAgICAgICAgYmVmb3JlID0gY2hpbGQu
YmVmb3JlLmRlY29kZSgidXRmOCIpCisgICAgICAgIGFzc2VydCAiPj4+IFBEQiBjb250aW51ZSAi
IG5vdCBpbiBiZWZvcmUKKworICAgICAgICBjaGlsZC5zZW5kbGluZSgiYyIpCisgICAgICAgIGNo
aWxkLmV4cGVjdCgiPT09IFNFVF9UUkFDRV80ID09PSIpCisgICAgICAgIGJlZm9yZSA9IGNoaWxk
LmJlZm9yZS5kZWNvZGUoInV0ZjgiKQorICAgICAgICBhc3NlcnQgIlxyXG5MRUFWSU5HIFJFQ1VS
U0lWRSBERUJVR0dFUlxyXG4iIGluIGJlZm9yZQorICAgICAgICBjaGlsZC5zZW5kbGluZSgiYyIp
CisgICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikKKyAgICAgICAgaWYg
bm90IGNhcHR1cmVfYXJnOgorICAgICAgICAgICAgYXNzZXJ0ICI+IFBEQiBjb250aW51ZSAoSU8t
Y2FwdHVyaW5nIHJlc3VtZWQpID4iIGluIHJlc3QKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGFzc2VydCAiPiBQREIgY29udGludWUgPiIgaW4gcmVzdAorICAgICAgICBhc3NlcnQgIjEgcGFz
c2VkIGluIiBpbiByZXN0CisKICAgICBkZWYgdGVzdF9wZGJfdXNlZF9vdXRzaWRlX3Rlc3Qoc2Vs
ZiwgdGVzdGRpcik6CiAgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAg
ICAgIiIiCkBAIC00NzYsOCArNzE0LDkgQEAgY2xhc3MgVGVzdFBEQihvYmplY3QpOgogICAgICAg
ICAgICAgeCA9IDUKICAgICAgICAgIiIiCiAgICAgICAgICkKLSAgICAgICAgY2hpbGQgPSB0ZXN0
ZGlyLnNwYXduKCIlcyAlcyIgJSAoc3lzLmV4ZWN1dGFibGUsIHAxKSkKKyAgICAgICAgY2hpbGQg
PSB0ZXN0ZGlyLnNwYXduKCJ7fSB7fSIuZm9ybWF0KHN5cy5leGVjdXRhYmxlLCBwMSkpCiAgICAg
ICAgIGNoaWxkLmV4cGVjdCgieCA9IDUiKQorICAgICAgICBjaGlsZC5leHBlY3QoIlBkYiIpCiAg
ICAgICAgIGNoaWxkLnNlbmRlb2YoKQogICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQogCkBAIC00
OTQsMzcgKzczMyw2OSBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgICkKICAgICAg
ICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdChzdHIocDEpKQogICAgICAgICBjaGlsZC5l
eHBlY3QoInggPSA1IikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJQZGIiKQogICAgICAgICBjaGls
ZC5zZW5kZW9mKCkKICAgICAgICAgc2VsZi5mbHVzaChjaGlsZCkKIAogICAgIGRlZiB0ZXN0X3Bk
Yl9jb2xsZWN0aW9uX2ZhaWx1cmVfaXNfc2hvd24oc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAx
ID0gdGVzdGRpci5tYWtlcHlmaWxlKCJ4eHgiKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdF9zdWJwcm9jZXNzKCItLXBkYiIsIHAxKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIqTmFtZUVycm9yKnh4eCoiLCAiKjEgZXJyb3IqIl0pCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsiRSAgIE5hbWVFcnJvcjog
Knh4eCoiLCAiKiEgKkV4aXQ6IFF1aXR0aW5nIGRlYnVnZ2VyICEqIl0gICMgZHVlIHRvIEVPRgor
ICAgICAgICApCiAKLSAgICBkZWYgdGVzdF9lbnRlcl9wZGJfaG9va19pc19jYWxsZWQoc2VsZiwg
dGVzdGRpcik6CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwb3N0X21vcnRlbSIsIChG
YWxzZSwgVHJ1ZSkpCisgICAgZGVmIHRlc3RfZW50ZXJfbGVhdmVfcGRiX2hvb2tzX2FyZV9jYWxs
ZWQoc2VsZiwgcG9zdF9tb3J0ZW0sIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgKICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHB5dGVzdF9lbnRlcl9wZGIo
Y29uZmlnKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgY29uZmlnLnRlc3RpbmdfdmVyaWZpY2F0
aW9uID09ICdjb25maWd1cmVkJwotICAgICAgICAgICAgICAgIHByaW50ICdlbnRlcl9wZGJfaG9v
aycKKyAgICAgICAgICAgIG15cGRiID0gTm9uZQogCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2Nv
bmZpZ3VyZShjb25maWcpOgogICAgICAgICAgICAgICAgIGNvbmZpZy50ZXN0aW5nX3ZlcmlmaWNh
dGlvbiA9ICdjb25maWd1cmVkJworCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2VudGVyX3BkYihj
b25maWcsIHBkYik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGNvbmZpZy50ZXN0aW5nX3Zlcmlm
aWNhdGlvbiA9PSAnY29uZmlndXJlZCcKKyAgICAgICAgICAgICAgICBwcmludCgnZW50ZXJfcGRi
X2hvb2snKQorCisgICAgICAgICAgICAgICAgZ2xvYmFsIG15cGRiCisgICAgICAgICAgICAgICAg
bXlwZGIgPSBwZGIKKyAgICAgICAgICAgICAgICBteXBkYi5zZXRfYXR0cmlidXRlID0gImJhciIK
KworICAgICAgICAgICAgZGVmIHB5dGVzdF9sZWF2ZV9wZGIoY29uZmlnLCBwZGIpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCBjb25maWcudGVzdGluZ192ZXJpZmljYXRpb24gPT0gJ2NvbmZpZ3Vy
ZWQnCisgICAgICAgICAgICAgICAgcHJpbnQoJ2xlYXZlX3BkYl9ob29rJykKKworICAgICAgICAg
ICAgICAgIGdsb2JhbCBteXBkYgorICAgICAgICAgICAgICAgIGFzc2VydCBteXBkYiBpcyBwZGIK
KyAgICAgICAgICAgICAgICBhc3NlcnQgbXlwZGIuc2V0X2F0dHJpYnV0ZSA9PSAiYmFyIgogICAg
ICAgICAiIiIKICAgICAgICAgKQogICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAg
ICAgICAgICAgICIiIgogICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogCi0gICAgICAgICAgICBk
ZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NldF90cmFjZSgpOgogICAgICAg
ICAgICAgICAgIHB5dGVzdC5zZXRfdHJhY2UoKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisK
KyAgICAgICAgICAgIGRlZiB0ZXN0X3Bvc3RfbW9ydGVtKCk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IDAKICAgICAgICAgIiIiCiAgICAgICAgICkKLSAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNw
YXduX3B5dGVzdChzdHIocDEpKQorICAgICAgICBpZiBwb3N0X21vcnRlbToKKyAgICAgICAgICAg
IGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3Qoc3RyKHAxKSArICIgLS1wZGIgLXMgLWsgdGVz
dF9wb3N0X21vcnRlbSIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjaGlsZCA9IHRlc3Rk
aXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkgKyAiIC1rIHRlc3Rfc2V0X3RyYWNlIikKICAgICAgICAg
Y2hpbGQuZXhwZWN0KCJlbnRlcl9wZGJfaG9vayIpCi0gICAgICAgIGNoaWxkLnNlbmQoImNcbiIp
Ci0gICAgICAgIGNoaWxkLnNlbmRlb2YoKQorICAgICAgICBjaGlsZC5zZW5kbGluZSgiYyIpCisg
ICAgICAgIGlmIHBvc3RfbW9ydGVtOgorICAgICAgICAgICAgY2hpbGQuZXhwZWN0KHIiUERCIGNv
bnRpbnVlIikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNoaWxkLmV4cGVjdChyIlBEQiBj
b250aW51ZSBcKElPLWNhcHR1cmluZyByZXN1bWVkXCkiKQorICAgICAgICAgICAgY2hpbGQuZXhw
ZWN0KCJDYXB0dXJlZCBzdGRvdXQgY2FsbCIpCisgICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCku
ZGVjb2RlKCJ1dGY4IikKKyAgICAgICAgYXNzZXJ0ICJsZWF2ZV9wZGJfaG9vayIgaW4gcmVzdAor
ICAgICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiByZXN0CiAgICAgICAgIHNlbGYuZmx1c2goY2hp
bGQpCiAKICAgICBkZWYgdGVzdF9wZGJfY3VzdG9tX2NscyhzZWxmLCB0ZXN0ZGlyLCBjdXN0b21f
cGRiX2NhbGxzKToKQEAgLTUzMywxOCArODA0LDQwIEBAIGNsYXNzIFRlc3RQREIob2JqZWN0KToK
ICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKk5hbWVFcnJvcip4eHgqIiwg
IioxIGVycm9yKiJdKQogICAgICAgICBhc3NlcnQgY3VzdG9tX3BkYl9jYWxscyA9PSBbImluaXQi
LCAicmVzZXQiLCAiaW50ZXJhY3Rpb24iXQogCisgICAgZGVmIHRlc3RfcGRiX2N1c3RvbV9jbHNf
aW52YWxpZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3RfaW5wcm9jZXNzKCItLXBkYmNscz1pbnZhbGlkIikKKyAgICAgICAgcmVzdWx0LnN0ZGVyci5m
bm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICIqOiBlcnJvcjog
YXJndW1lbnQgLS1wZGJjbHM6ICdpbnZhbGlkJyBpcyBub3QgaW4gdGhlIGZvcm1hdCAnbW9kbmFt
ZTpjbGFzc25hbWUnIgorICAgICAgICAgICAgXQorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9w
ZGJfdmFsaWRhdGVfdXNlcGRiX2NscyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgYXNzZXJ0IF92
YWxpZGF0ZV91c2VwZGJfY2xzKCJvcy5wYXRoOmRpcm5hbWUuX19uYW1lX18iKSA9PSAoCisgICAg
ICAgICAgICAib3MucGF0aCIsCisgICAgICAgICAgICAiZGlybmFtZS5fX25hbWVfXyIsCisgICAg
ICAgICkKKworICAgICAgICBhc3NlcnQgX3ZhbGlkYXRlX3VzZXBkYl9jbHMoInBkYjpEb2VzTm90
RXhpc3QiKSA9PSAoInBkYiIsICJEb2VzTm90RXhpc3QiKQorCiAgICAgZGVmIHRlc3RfcGRiX2N1
c3RvbV9jbHNfd2l0aG91dF9wZGIoc2VsZiwgdGVzdGRpciwgY3VzdG9tX3BkYl9jYWxscyk6CiAg
ICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiInh4eCAiIiIpCiAgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0X2lucHJvY2VzcygiLS1wZGJjbHM9X3B5dGVzdDpfQ3VzdG9t
UGRiIiwgcDEpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipOYW1lRXJy
b3IqeHh4KiIsICIqMSBlcnJvcioiXSkKICAgICAgICAgYXNzZXJ0IGN1c3RvbV9wZGJfY2FsbHMg
PT0gW10KIAotICAgIGRlZiB0ZXN0X3BkYl9jdXN0b21fY2xzX3dpdGhfc2V0dHJhY2Uoc2VsZiwg
dGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgIGRlZiB0ZXN0X3BkYl9jdXN0b21fY2xzX3dpdGhf
c2V0X3RyYWNlKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKICAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKAogICAgICAgICAgICAgY3VzdG9tX3BkYj0iIiIKICAgICAgICAgICAgIGNsYXNz
IEN1c3RvbVBkYihvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAq
YXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgICAgICBza2lwID0ga3dhcmdzLnBvcCgi
c2tpcCIpCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBza2lwID09IFsiZm9vLioiXQorICAg
ICAgICAgICAgICAgICAgICBwcmludCgiX19pbml0X18iKQorICAgICAgICAgICAgICAgICAgICBz
dXBlcihDdXN0b21QZGIsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKwogICAgICAg
ICAgICAgICAgIGRlZiBzZXRfdHJhY2UoKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgICAgICAg
ICAgICAgcHJpbnQgJ2N1c3RvbSBzZXRfdHJhY2U+JworICAgICAgICAgICAgICAgICAgICBwcmlu
dCgnY3VzdG9tIHNldF90cmFjZT4nKQogICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAg
cDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBAIC01NTIsMTggKzg0NSwxOCBAQCBjbGFzcyBUZXN0
UERCKG9iamVjdCk6CiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CiAKICAgICAgICAgICAgIGRl
ZiB0ZXN0X2ZvbygpOgotICAgICAgICAgICAgICAgIHB5dGVzdC5zZXRfdHJhY2UoKQorICAgICAg
ICAgICAgICAgIHB5dGVzdC5zZXRfdHJhY2Uoc2tpcD1bJ2Zvby4qJ10pCiAgICAgICAgICIiIgog
ICAgICAgICApCiAgICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9OUEFUSCIsIHN0cih0
ZXN0ZGlyLnRtcGRpcikpCiAgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0t
cGRiY2xzPWN1c3RvbV9wZGI6Q3VzdG9tUGRiICVzIiAlIHN0cihwMSkpCiAKKyAgICAgICAgY2hp
bGQuZXhwZWN0KCJfX2luaXRfXyIpCiAgICAgICAgIGNoaWxkLmV4cGVjdCgiY3VzdG9tIHNldF90
cmFjZT4iKQogICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQogCiAKIGNsYXNzIFRlc3REZWJ1Z2dp
bmdCcmVha3BvaW50cyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3Rfc3VwcG9ydHNfYnJlYWtwb2lu
dF9tb2R1bGVfZ2xvYmFsKHNlbGYpOgogICAgICAgICAiIiIKICAgICAgICAgVGVzdCB0aGF0IHN1
cHBvcnRzIGJyZWFrcG9pbnQgZ2xvYmFsIG1hcmtzIG9uIFB5dGhvbiAzLjcrIGFuZCBub3Qgb24K
QEAgLTY3NCwxMCArOTY3LDEwIEBAIGNsYXNzIFRlc3REZWJ1Z2dpbmdCcmVha3BvaW50cyhvYmpl
Y3QpOgogICAgICAgICApCiAgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3Qoc3Ry
KHAxKSkKICAgICAgICAgY2hpbGQuZXhwZWN0KCJ0ZXN0XzEiKQotICAgICAgICBjaGlsZC5leHBl
Y3QoIihQZGIpIikKLSAgICAgICAgY2hpbGQuc2VuZGVvZigpCisgICAgICAgIGNoaWxkLmV4cGVj
dCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoInF1aXQiKQogICAgICAgICByZXN0ID0g
Y2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIpCi0gICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGlu
IHJlc3QKKyAgICAgICAgYXNzZXJ0ICJRdWl0dGluZyBkZWJ1Z2dlciIgaW4gcmVzdAogICAgICAg
ICBhc3NlcnQgInJlYWRpbmcgZnJvbSBzdGRpbiB3aGlsZSBvdXRwdXQiIG5vdCBpbiByZXN0CiAg
ICAgICAgIFRlc3RQREIuZmx1c2goY2hpbGQpCiAKQEAgLTY5MCwxMyArOTgzLDI1NSBAQCBjbGFz
cyBUZXN0RGVidWdnaW5nQnJlYWtwb2ludHMob2JqZWN0KToKICAgICAgICAgICAgIGltcG9ydCBw
ZGIKICAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKICAgICAgICAgICAgICAgICBwZGIuc2V0X3Ry
YWNlKCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAogICAgICAgICAiIiIKICAgICAgICAgKQog
ICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkpCiAgICAgICAgIGNo
aWxkLmV4cGVjdCgidGVzdF8xIikKLSAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCi0gICAg
ICAgIGNoaWxkLnNlbmRlb2YoKQorICAgICAgICBjaGlsZC5leHBlY3QoIlBkYiIpCisgICAgICAg
IGNoaWxkLnNlbmRsaW5lKCJjIikKICAgICAgICAgcmVzdCA9IGNoaWxkLnJlYWQoKS5kZWNvZGUo
InV0ZjgiKQogICAgICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiByZXN0CiAgICAgICAgIGFzc2Vy
dCAicmVhZGluZyBmcm9tIHN0ZGluIHdoaWxlIG91dHB1dCIgbm90IGluIHJlc3QKICAgICAgICAg
VGVzdFBEQi5mbHVzaChjaGlsZCkKKworCitjbGFzcyBUZXN0VHJhY2VPcHRpb246CisgICAgZGVm
IHRlc3RfdHJhY2Vfc2V0c19icmVha3BvaW50KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRl
c3RfMSgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBUcnVlCisKKyAgICAgICAgICAgIGRlZiB0
ZXN0XzIoKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0XzMo
KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQorICAg
ICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCItLXRyYWNlICIgKyBzdHIocDEpKQor
ICAgICAgICBjaGlsZC5leHBlY3QoInRlc3RfMSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRi
IikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoImMiKQorICAgICAgICBjaGlsZC5leHBlY3QoInRl
c3RfMiIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxp
bmUoImMiKQorICAgICAgICBjaGlsZC5leHBlY3QoInRlc3RfMyIpCisgICAgICAgIGNoaWxkLmV4
cGVjdCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoInEiKQorICAgICAgICBjaGlsZC5l
eHBlY3RfZXhhY3QoIkV4aXQ6IFF1aXR0aW5nIGRlYnVnZ2VyIikKKyAgICAgICAgcmVzdCA9IGNo
aWxkLnJlYWQoKS5kZWNvZGUoInV0ZjgiKQorICAgICAgICBhc3NlcnQgIjIgcGFzc2VkIGluIiBp
biByZXN0CisgICAgICAgIGFzc2VydCAicmVhZGluZyBmcm9tIHN0ZGluIHdoaWxlIG91dHB1dCIg
bm90IGluIHJlc3QKKyAgICAgICAgIyBPbmx5IHByaW50ZWQgb25jZSAtIG5vdCBvbiBzdGRlcnIu
CisgICAgICAgIGFzc2VydCAiRXhpdDogUXVpdHRpbmcgZGVidWdnZXIiIG5vdCBpbiBjaGlsZC5i
ZWZvcmUuZGVjb2RlKCJ1dGY4IikKKyAgICAgICAgVGVzdFBEQi5mbHVzaChjaGlsZCkKKworCitk
ZWYgdGVzdF90cmFjZV9hZnRlcl9ydW5weXRlc3QodGVzdGRpcik6CisgICAgIiIiVGVzdCB0aGF0
IGRlYnVnZ2luZydzIHB5dGVzdF9jb25maWd1cmUgaXMgcmUtZW50cmFudC4iIiIKKyAgICBwMSA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5k
ZWJ1Z2dpbmcgaW1wb3J0IHB5dGVzdFBEQgorCisgICAgICAgIGRlZiB0ZXN0X291dGVyKHRlc3Rk
aXIpOgorICAgICAgICAgICAgYXNzZXJ0IGxlbihweXRlc3RQREIuX3NhdmVkKSA9PSAxCisKKyAg
ICAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICAgICBcIiIiCisgICAg
ICAgICAgICAgICAgZnJvbSBfcHl0ZXN0LmRlYnVnZ2luZyBpbXBvcnQgcHl0ZXN0UERCCisKKyAg
ICAgICAgICAgICAgICBkZWYgdGVzdF9pbm5lcigpOgorICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgbGVuKHB5dGVzdFBEQi5fc2F2ZWQpID09IDIKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQo
KQorICAgICAgICAgICAgICAgICAgICBwcmludCgidGVzdF9pbm5lcl8iICsgImVuZCIpCisgICAg
ICAgICAgICAgICAgXCIiIgorICAgICAgICAgICAgKQorCisgICAgICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiLCAiLWsiLCAidGVzdF9pbm5lciIpCisgICAgICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICAgICAgICAgIGFzc2VydCBsZW4ocHl0ZXN0UERC
Ll9zYXZlZCkgPT0gMQorICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdF9zdWJwcm9jZXNzKCItcyIsICItcCIsICJweXRlc3RlciIsIHN0cihwMSkpCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsidGVzdF9pbm5lcl9lbmQiXSkKKyAgICBhc3NlcnQg
cmVzdWx0LnJldCA9PSAwCisKKworZGVmIHRlc3RfcXVpdF93aXRoX3N3YWxsb3dlZF9TeXN0ZW1F
eGl0KHRlc3RkaXIpOgorICAgICIiIlRlc3QgdGhhdCBkZWJ1Z2dpbmcncyBweXRlc3RfY29uZmln
dXJlIGlzIHJlLWVudHJhbnQuIiIiCisgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAg
ICAgICIiIgorICAgICAgICBkZWYgY2FsbF9wZGJfc2V0X3RyYWNlKCk6CisgICAgICAgICAgICBf
X2ltcG9ydF9fKCdwZGInKS5zZXRfdHJhY2UoKQorCisKKyAgICAgICAgZGVmIHRlc3RfMSgpOgor
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNhbGxfcGRiX3NldF90cmFjZSgpCisg
ICAgICAgICAgICBleGNlcHQgU3lzdGVtRXhpdDoKKyAgICAgICAgICAgICAgICBwYXNzCisKKwor
ICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiCisgICAgKQor
ICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3Qoc3RyKHAxKSkKKyAgICBjaGlsZC5leHBl
Y3QoIlBkYiIpCisgICAgY2hpbGQuc2VuZGxpbmUoInEiKQorICAgIGNoaWxkLmV4cGVjdF9leGFj
dCgiRXhpdDogUXVpdHRpbmcgZGVidWdnZXIiKQorICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVj
b2RlKCJ1dGY4IikKKyAgICBhc3NlcnQgIm5vIHRlc3RzIHJhbiIgaW4gcmVzdAorICAgIFRlc3RQ
REIuZmx1c2goY2hpbGQpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJmaXh0dXJlIiwg
KCJjYXBmZCIsICJjYXBzeXMiKSkKK2RlZiB0ZXN0X3BkYl9zdXNwZW5kc19maXh0dXJlX2NhcHR1
cmluZyh0ZXN0ZGlyLCBmaXh0dXJlKToKKyAgICAiIiJVc2luZyAiLXMiIHdpdGggcHl0ZXN0IHNo
b3VsZCBzdXNwZW5kL3Jlc3VtZSBmaXh0dXJlIGNhcHR1cmluZy4iIiIKKyAgICBwMSA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGRlZiB0ZXN0X2lubmVyKHtmaXh0
dXJlfSk6CisgICAgICAgICAgICBpbXBvcnQgc3lzCisKKyAgICAgICAgICAgIHByaW50KCJvdXRf
aW5uZXJfYmVmb3JlIikKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImVycl9pbm5lcl9i
ZWZvcmVcXG4iKQorCisgICAgICAgICAgICBfX2ltcG9ydF9fKCJwZGIiKS5zZXRfdHJhY2UoKQor
CisgICAgICAgICAgICBwcmludCgib3V0X2lubmVyX2FmdGVyIikKKyAgICAgICAgICAgIHN5cy5z
dGRlcnIud3JpdGUoImVycl9pbm5lcl9hZnRlclxcbiIpCisKKyAgICAgICAgICAgIG91dCwgZXJy
ID0ge2ZpeHR1cmV9LnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgYXNzZXJ0IG91dCA9PSJvdXRf
aW5uZXJfYmVmb3JlXFxub3V0X2lubmVyX2FmdGVyXFxuIgorICAgICAgICAgICAgYXNzZXJ0IGVy
ciA9PSJlcnJfaW5uZXJfYmVmb3JlXFxuZXJyX2lubmVyX2FmdGVyXFxuIgorICAgICAgICAiIiIu
Zm9ybWF0KAorICAgICAgICAgICAgZml4dHVyZT1maXh0dXJlCisgICAgICAgICkKKyAgICApCisK
KyAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkgKyAiIC1zIikKKworICAg
IGNoaWxkLmV4cGVjdCgiUGRiIikKKyAgICBiZWZvcmUgPSBjaGlsZC5iZWZvcmUuZGVjb2RlKCJ1
dGY4IikKKyAgICBhc3NlcnQgKAorICAgICAgICAiPiBQREIgc2V0X3RyYWNlIChJTy1jYXB0dXJp
bmcgdHVybmVkIG9mZiBmb3IgZml4dHVyZSAlcykgPiIgJSAoZml4dHVyZSkKKyAgICAgICAgaW4g
YmVmb3JlCisgICAgKQorCisgICAgIyBUZXN0IHRoYXQgY2FwdHVyaW5nIGlzIHJlYWxseSBzdXNw
ZW5kZWQuCisgICAgY2hpbGQuc2VuZGxpbmUoInAgNDAgKyAyIikKKyAgICBjaGlsZC5leHBlY3Qo
IlBkYiIpCisgICAgYXNzZXJ0ICJcclxuNDJcclxuIiBpbiBjaGlsZC5iZWZvcmUuZGVjb2RlKCJ1
dGY4IikKKworICAgIGNoaWxkLnNlbmRsaW5lKCJjIikKKyAgICByZXN0ID0gY2hpbGQucmVhZCgp
LmRlY29kZSgidXRmOCIpCisgICAgYXNzZXJ0ICJvdXRfaW5uZXIiIG5vdCBpbiByZXN0CisgICAg
YXNzZXJ0ICJlcnJfaW5uZXIiIG5vdCBpbiByZXN0CisKKyAgICBUZXN0UERCLmZsdXNoKGNoaWxk
KQorICAgIGFzc2VydCBjaGlsZC5leGl0c3RhdHVzID09IDAKKyAgICBhc3NlcnQgIj0gMSBwYXNz
ZWQgaW4gIiBpbiByZXN0CisgICAgYXNzZXJ0ICI+IFBEQiBjb250aW51ZSAoSU8tY2FwdHVyaW5n
IHJlc3VtZWQgZm9yIGZpeHR1cmUgJXMpID4iICUgKGZpeHR1cmUpIGluIHJlc3QKKworCitkZWYg
dGVzdF9wZGJjbHNfdmlhX2xvY2FsX21vZHVsZSh0ZXN0ZGlyKToKKyAgICAiIiJJdCBzaG91bGQg
YmUgaW1wb3J0ZWQgaW4gcHl0ZXN0X2NvbmZpZ3VyZSBvciBsYXRlciBvbmx5LiIiIgorICAgIHAx
ID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRlc3QoKToK
KyAgICAgICAgICAgIHByaW50KCJiZWZvcmVfc2V0X3RyYWNlIikKKyAgICAgICAgICAgIF9faW1w
b3J0X18oInBkYiIpLnNldF90cmFjZSgpCisgICAgICAgICIiIiwKKyAgICAgICAgbXlwZGI9IiIi
CisgICAgICAgIGNsYXNzIFdyYXBwZWQ6CisgICAgICAgICAgICBjbGFzcyBNeVBkYjoKKyAgICAg
ICAgICAgICAgICBkZWYgc2V0X3RyYWNlKHNlbGYsICphcmdzKToKKyAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoInNldF90cmFjZV9jYWxsZWQiLCBhcmdzKQorCisgICAgICAgICAgICAgICAgZGVm
IHJ1bmNhbGwoc2VsZiwgKmFyZ3MsICoqa3dkcyk6CisgICAgICAgICAgICAgICAgICAgIHByaW50
KCJydW5jYWxsX2NhbGxlZCIsIGFyZ3MsIGt3ZHMpCisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCAiZnVuYyIgaW4ga3dkcworICAgICAgICAiIiIsCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KAorICAgICAgICBzdHIocDEpLCAiLS1wZGJjbHM9cmVhbGx5LmludmFsaWQ6
VmFsdWUiLCBzeXNwYXRoaW5zZXJ0PVRydWUKKyAgICApCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAiKj0gRkFJTFVSRVMgPSoiLAorICAg
ICAgICAgICAgIkUgKiAtLXBkYmNsczogY291bGQgbm90IGltcG9ydCAncmVhbGx5LmludmFsaWQ6
VmFsdWUnOiBObyBtb2R1bGUgbmFtZWQgKnJlYWxseSoiLAorICAgICAgICBdCisgICAgKQorICAg
IGFzc2VydCByZXN1bHQucmV0ID09IDEKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KAorICAgICAgICBzdHIocDEpLCAiLS1wZGJjbHM9bXlwZGI6V3JhcHBlZC5NeVBkYiIsIHN5c3Bh
dGhpbnNlcnQ9VHJ1ZQorICAgICkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKnNldF90cmFjZV9jYWxsZWQqIiwgIiogMSBwYXNz
ZWQgaW4gKiJdKQorCisgICAgIyBFbnN1cmUgdGhhdCBpdCBhbHNvIHdvcmtzIHdpdGggLS10cmFj
ZS4KKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgKKyAgICAgICAgc3RyKHAxKSwgIi0t
cGRiY2xzPW15cGRiOldyYXBwZWQuTXlQZGIiLCAiLS10cmFjZSIsIHN5c3BhdGhpbnNlcnQ9VHJ1
ZQorICAgICkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsiKnJ1bmNhbGxfY2FsbGVkKiIsICIqIDEgcGFzc2VkIGluICoiXSkKKwor
CitkZWYgdGVzdF9yYWlzZXNfYmRicXVpdF93aXRoX2VvZmVycm9yKHRlc3RkaXIpOgorICAgICIi
Ikl0IGlzIG5vdCBndWFyYW50ZWVkIHRoYXQgRG9udFJlYWRGcm9tSW5wdXQncyByZWFkIGlzIGNh
bGxlZC4iIiIKKyAgICBpZiBzaXguUFkyOgorICAgICAgICBidWlsdGluX21vZHVsZSA9ICJfX2J1
aWx0aW5fXyIKKyAgICAgICAgaW5wdXRfZnVuYyA9ICJyYXdfaW5wdXQiCisgICAgZWxzZToKKyAg
ICAgICAgYnVpbHRpbl9tb2R1bGUgPSAiYnVpbHRpbnMiCisgICAgICAgIGlucHV0X2Z1bmMgPSAi
aW5wdXQiCisgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAg
ICBkZWYgaW5wdXRfd2l0aG91dF9yZWFkKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICBy
YWlzZSBFT0ZFcnJvcigpCisKKyAgICAgICAgZGVmIHRlc3QobW9ua2V5cGF0Y2gpOgorICAgICAg
ICAgICAgaW1wb3J0IHtidWlsdGluX21vZHVsZX0KKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNl
dGF0dHIoe2J1aWx0aW5fbW9kdWxlfSwge2lucHV0X2Z1bmMhcn0sIGlucHV0X3dpdGhvdXRfcmVh
ZCkKKyAgICAgICAgICAgIF9faW1wb3J0X18oJ3BkYicpLnNldF90cmFjZSgpCisgICAgICAgICIi
Ii5mb3JtYXQoCisgICAgICAgICAgICBidWlsdGluX21vZHVsZT1idWlsdGluX21vZHVsZSwgaW5w
dXRfZnVuYz1pbnB1dF9mdW5jCisgICAgICAgICkKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3Qoc3RyKHAxKSkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJF
ICpCZGJRdWl0IiwgIio9IDEgZmFpbGVkIGluKiJdKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09
IDEKKworCitkZWYgdGVzdF9wZGJfd3JhcHBlcl9jbGFzc19pc19yZXVzZWQodGVzdGRpcik6Cisg
ICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBkZWYgdGVz
dCgpOgorICAgICAgICAgICAgX19pbXBvcnRfXygicGRiIikuc2V0X3RyYWNlKCkKKyAgICAgICAg
ICAgIF9faW1wb3J0X18oInBkYiIpLnNldF90cmFjZSgpCisKKyAgICAgICAgICAgIGltcG9ydCBt
eXBkYgorICAgICAgICAgICAgaW5zdGFuY2VzID0gbXlwZGIuaW5zdGFuY2VzCisgICAgICAgICAg
ICBhc3NlcnQgbGVuKGluc3RhbmNlcykgPT0gMgorICAgICAgICAgICAgYXNzZXJ0IGluc3RhbmNl
c1swXS5fX2NsYXNzX18gaXMgaW5zdGFuY2VzWzFdLl9fY2xhc3NfXworICAgICAgICAiIiIsCisg
ICAgICAgIG15cGRiPSIiIgorICAgICAgICBpbnN0YW5jZXMgPSBbXQorCisgICAgICAgIGNsYXNz
IE15UGRiOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6
CisgICAgICAgICAgICAgICAgaW5zdGFuY2VzLmFwcGVuZChzZWxmKQorCisgICAgICAgICAgICBk
ZWYgc2V0X3RyYWNlKHNlbGYsICphcmdzKToKKyAgICAgICAgICAgICAgICBwcmludCgic2V0X3Ry
YWNlX2NhbGxlZCIsIGFyZ3MpCisgICAgICAgICIiIiwKKyAgICApCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3Qoc3RyKHAxKSwgIi0tcGRiY2xzPW15cGRiOk15UGRiIiwgc3lzcGF0aGlu
c2VydD1UcnVlKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsiKnNldF90cmFjZV9jYWxsZWQqIiwgIipzZXRfdHJh
Y2VfY2FsbGVkKiIsICIqIDEgcGFzc2VkIGluICoiXQorICAgICkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvdGVzdF9wbHVnaW5tYW5hZ2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X3BsdWdpbm1hbmFnZXIucHkKaW5kZXggMjJjZWE0MjA3YzY0NjA3NjczYzkyZWM5Yzg5
NTk0NTY1ZjMxYzE5Ny4uMjM2NTUxNjQzNDMzNTk1M2Q1NzU5ZTg0ZTJlZjhjNTQ5ZjBhZjRjOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkKQEAgLTEsMTMgKzEs
MTcgQEAKLSMgZW5jb2Rpbmc6IFVURi04Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgcHl0ZXN0CisjIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
cHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IG9zCi1pbXBvcnQgcmUKIGltcG9ydCBzeXMKIGltcG9y
dCB0eXBlcwogCi1mcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBnZXRfY29uZmlnLCBQeXRlc3RQ
bHVnaW5NYW5hZ2VyCi1mcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVD
VEVELCBTZXNzaW9uCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBQ
eXRlc3RQbHVnaW5NYW5hZ2VyCitmcm9tIF9weXRlc3QuY29uZmlnLmV4Y2VwdGlvbnMgaW1wb3J0
IFVzYWdlRXJyb3IKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNU
RUQKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBTZXNzaW9uCiAKIAogQHB5dGVzdC5maXh0dXJl
CkBAIC0xNiw4ICsyMCw3IEBAIGRlZiBweXRlc3RwbSgpOgogCiAKIGNsYXNzIFRlc3RQeXRlc3RQ
bHVnaW5JbnRlcmFjdGlvbnMob2JqZWN0KToKLQotICAgIGRlZiB0ZXN0X2FkZGhvb2tzX2NvbmZ0
ZXN0cGx1Z2luKHNlbGYsIHRlc3RkaXIpOgorICAgIGRlZiB0ZXN0X2FkZGhvb2tzX2NvbmZ0ZXN0
cGx1Z2luKHNlbGYsIHRlc3RkaXIsIF9jb25maWdfZm9yX3Rlc3QpOgogICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCiAgICAgICAgICAgICBuZXdob29rcz0iIiIKICAgICAgICAgICAgIGRlZiBw
eXRlc3RfbXlob29rKHh5eik6CkBAIC0yNiwxNSArMjksMTQgQEAgY2xhc3MgVGVzdFB5dGVzdFBs
dWdpbkludGVyYWN0aW9ucyhvYmplY3QpOgogICAgICAgICApCiAgICAgICAgIGNvbmYgPSB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHN5
cyA7IHN5cy5wYXRoLmluc2VydCgwLCAnLicpCiAgICAgICAgICAgICBpbXBvcnQgbmV3aG9va3MK
ICAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkaG9va3MocGx1Z2lubWFuYWdlcik6Ci0gICAgICAg
ICAgICAgICAgcGx1Z2lubWFuYWdlci5hZGRob29rcyhuZXdob29rcykKKyAgICAgICAgICAgICAg
ICBwbHVnaW5tYW5hZ2VyLmFkZF9ob29rc3BlY3MobmV3aG9va3MpCiAgICAgICAgICAgICBkZWYg
cHl0ZXN0X215aG9vayh4eXopOgogICAgICAgICAgICAgICAgIHJldHVybiB4eXogKyAxCiAgICAg
ICAgICIiIgogICAgICAgICApCi0gICAgICAgIGNvbmZpZyA9IGdldF9jb25maWcoKQorICAgICAg
ICBjb25maWcgPSBfY29uZmlnX2Zvcl90ZXN0CiAgICAgICAgIHBtID0gY29uZmlnLnBsdWdpbm1h
bmFnZXIKICAgICAgICAgcG0uaG9vay5weXRlc3RfYWRkaG9va3MuY2FsbF9oaXN0b3JpYygKICAg
ICAgICAgICAgIGt3YXJncz1kaWN0KHBsdWdpbm1hbmFnZXI9Y29uZmlnLnBsdWdpbm1hbmFnZXIp
CkBAIC00OSw0MyArNTEsMTMgQEAgY2xhc3MgVGVzdFB5dGVzdFBsdWdpbkludGVyYWN0aW9ucyhv
YmplY3QpOgogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBpbXBvcnQgc3lzCiAgICAgICAg
ICAgICBkZWYgcHl0ZXN0X2FkZGhvb2tzKHBsdWdpbm1hbmFnZXIpOgotICAgICAgICAgICAgICAg
IHBsdWdpbm1hbmFnZXIuYWRkaG9va3Moc3lzKQorICAgICAgICAgICAgICAgIHBsdWdpbm1hbmFn
ZXIuYWRkX2hvb2tzcGVjcyhzeXMpCiAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHJl
cyA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAgICAgICAgYXNzZXJ0IHJlcy5yZXQgIT0gMAogICAg
ICAgICByZXMuc3RkZXJyLmZubWF0Y2hfbGluZXMoWyIqZGlkIG5vdCBmaW5kKnN5cyoiXSkKIAot
ICAgIGRlZiB0ZXN0X25hbWVzcGFjZV9lYXJseV9mcm9tX2ltcG9ydChzZWxmLCB0ZXN0ZGlyKToK
LSAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgZnJvbSBweXRlc3QgaW1wb3J0IEl0ZW0KLSAgICAgICAgICAgIGZyb20gcHl0ZXN0IGlt
cG9ydCBJdGVtIGFzIEl0ZW0yCi0gICAgICAgICAgICBhc3NlcnQgSXRlbSBpcyBJdGVtMgotICAg
ICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbihw
KQotICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCi0KLSAgICBkZWYgdGVzdF9kb19leHRf
bmFtZXNwYWNlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgK
LSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHB5dGVzdF9uYW1lc3BhY2UoKToKLSAg
ICAgICAgICAgICAgICByZXR1cm4geydoZWxsbyc6ICd3b3JsZCd9Ci0gICAgICAgICIiIgotICAg
ICAgICApCi0gICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIK
LSAgICAgICAgICAgIGZyb20gcHl0ZXN0IGltcG9ydCBoZWxsbwotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKLSAgICAgICAgICAgICAgICBh
c3NlcnQgaGVsbG8gPT0gIndvcmxkIgotICAgICAgICAgICAgICAgIGFzc2VydCAnaGVsbG8nIGlu
IHB5dGVzdC5fX2FsbF9fCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bihwKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNz
ZWQ9MSkKLQogICAgIGRlZiB0ZXN0X2RvX29wdGlvbl9wb3N0aW5pdGlhbGl6ZShzZWxmLCB0ZXN0
ZGlyKToKICAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3VyZSgpCiAgICAgICAg
IGFzc2VydCBub3QgaGFzYXR0cihjb25maWcub3B0aW9uLCAidGVzdDEyMyIpCkBAIC0xMDQsNyAr
NzYsNiBAQCBjbGFzcyBUZXN0UHl0ZXN0UGx1Z2luSW50ZXJhY3Rpb25zKG9iamVjdCk6CiAgICAg
ICAgIHZhbHVlcyA9IFtdCiAKICAgICAgICAgY2xhc3MgQShvYmplY3QpOgotCiAgICAgICAgICAg
ICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShzZWxmLCBjb25maWcpOgogICAgICAgICAgICAgICAgIHZh
bHVlcy5hcHBlbmQoc2VsZikKIApAQCAtMTIwLDE3ICs5MSwxNSBAQCBjbGFzcyBUZXN0UHl0ZXN0
UGx1Z2luSW50ZXJhY3Rpb25zKG9iamVjdCk6CiAgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2Vy
LnJlZ2lzdGVyKEEoKSkKICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDIKIAotICAgIGRl
ZiB0ZXN0X2hvb2tfdHJhY2luZyhzZWxmKToKLSAgICAgICAgcHl0ZXN0cG0gPSBnZXRfY29uZmln
KCkucGx1Z2lubWFuYWdlciAgIyBmdWxseSBpbml0aWFsaXplZCB3aXRoIHBsdWdpbnMKKyAgICBk
ZWYgdGVzdF9ob29rX3RyYWNpbmcoc2VsZiwgX2NvbmZpZ19mb3JfdGVzdCk6CisgICAgICAgIHB5
dGVzdHBtID0gX2NvbmZpZ19mb3JfdGVzdC5wbHVnaW5tYW5hZ2VyICAjIGZ1bGx5IGluaXRpYWxp
emVkIHdpdGggcGx1Z2lucwogICAgICAgICBzYXZlaW5kZW50ID0gW10KIAogICAgICAgICBjbGFz
cyBhcGkxKG9iamVjdCk6Ci0KICAgICAgICAgICAgIGRlZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVy
ZWQoc2VsZik6CiAgICAgICAgICAgICAgICAgc2F2ZWluZGVudC5hcHBlbmQocHl0ZXN0cG0udHJh
Y2Uucm9vdC5pbmRlbnQpCiAKICAgICAgICAgY2xhc3MgYXBpMihvYmplY3QpOgotCiAgICAgICAg
ICAgICBkZWYgcHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkKHNlbGYpOgogICAgICAgICAgICAgICAg
IHNhdmVpbmRlbnQuYXBwZW5kKHB5dGVzdHBtLnRyYWNlLnJvb3QuaW5kZW50KQogICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQpAQCAtMTcxLDM2ICsxNDAsNiBAQCBjbGFzcyBUZXN0
UHl0ZXN0UGx1Z2luSW50ZXJhY3Rpb25zKG9iamVjdCk6CiAgICAgICAgIGlob29rX2IgPSBzZXNz
aW9uLmdldGhvb2twcm94eSh0ZXN0ZGlyLnRtcGRpci5qb2luKCJ0ZXN0cyIpKQogICAgICAgICBh
c3NlcnQgaWhvb2tfYSBpcyBub3QgaWhvb2tfYgogCi0gICAgZGVmIHRlc3Rfd2Fybl9vbl9kZXBy
ZWNhdGVkX2FkZGhvb2tzKHNlbGYsIHB5dGVzdHBtKToKLSAgICAgICAgd2FybmluZ3MgPSBbXQot
Ci0gICAgICAgIGNsYXNzIGdldF93YXJuaW5ncyhvYmplY3QpOgotCi0gICAgICAgICAgICBkZWYg
cHl0ZXN0X2xvZ3dhcm5pbmcoc2VsZiwgY29kZSwgZnNsb2NhdGlvbiwgbWVzc2FnZSwgbm9kZWlk
KToKLSAgICAgICAgICAgICAgICB3YXJuaW5ncy5hcHBlbmQobWVzc2FnZSkKLQotICAgICAgICBj
bGFzcyBQbHVnaW4ob2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIHB5dGVzdF90ZXN0aG9vaygp
OgotICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICBweXRlc3RwbS5yZWdpc3RlcihnZXRf
d2FybmluZ3MoKSkKLSAgICAgICAgYmVmb3JlID0gbGlzdCh3YXJuaW5ncykKLSAgICAgICAgcHl0
ZXN0cG0uYWRkaG9va3MoUGx1Z2luKCkpCi0gICAgICAgIGFzc2VydCBsZW4od2FybmluZ3MpID09
IGxlbihiZWZvcmUpICsgMQotICAgICAgICBhc3NlcnQgImRlcHJlY2F0ZWQiIGluIHdhcm5pbmdz
Wy0xXQotCi0KLWRlZiB0ZXN0X25hbWVzcGFjZV9oYXNfZGVmYXVsdF9hbmRfZW52X3BsdWdpbnMo
dGVzdGRpcik6Ci0gICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgIiIiCi0gICAg
ICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgcHl0ZXN0Lm1hcmsKLSAgICAiIiIKLSAgICApCi0g
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRob24ocCkKLSAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCi0KIAogZGVmIHRlc3RfZGVmYXVsdF9tYXJrZXJzKHRlc3RkaXIpOgogICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItLW1hcmtlcnMiKQpAQCAtMjE2LDcgKzE1NSw3IEBAIGRlZiB0
ZXN0X2ltcG9ydHBsdWdpbl9lcnJvcl9tZXNzYWdlKHRlc3RkaXIsIHB5dGVzdHBtKToKICAgICB0
ZXN0ZGlyLnN5c3BhdGhpbnNlcnQodGVzdGRpci50bXBkaXIpCiAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAogICAgICAgICBxd2U9IiIiCi0gICAgICAgICMgZW5jb2Rpbmc6IFVURi04CisgICAgICAg
ICMgLSotIGNvZGluZzogdXRmLTggLSotCiAgICAgICAgIGRlZiB0ZXN0X3RyYWNlYmFjaygpOgog
ICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IodSdOb3QgcG9zc2libGUgdG8gaW1wb3J0OiDi
mLonKQogICAgICAgICB0ZXN0X3RyYWNlYmFjaygpCkBAIC0yMjUsMTQgKzE2NCwxMyBAQCBkZWYg
dGVzdF9pbXBvcnRwbHVnaW5fZXJyb3JfbWVzc2FnZSh0ZXN0ZGlyLCBweXRlc3RwbSk6CiAgICAg
d2l0aCBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yKSBhcyBleGNpbmZvOgogICAgICAgICBweXRl
c3RwbS5pbXBvcnRfcGx1Z2luKCJxd2UiKQogCi0gICAgZXhwZWN0ZWRfbWVzc2FnZSA9ICcuKkVy
cm9yIGltcG9ydGluZyBwbHVnaW4gInF3ZSI6IE5vdCBwb3NzaWJsZSB0byBpbXBvcnQ6IC4nCi0g
ICAgZXhwZWN0ZWRfdHJhY2ViYWNrID0gIi4qaW4gdGVzdF90cmFjZWJhY2siCi0gICAgYXNzZXJ0
IHJlLm1hdGNoKGV4cGVjdGVkX21lc3NhZ2UsIHN0cihleGNpbmZvLnZhbHVlKSkKLSAgICBhc3Nl
cnQgcmUubWF0Y2goZXhwZWN0ZWRfdHJhY2ViYWNrLCBzdHIoZXhjaW5mby50cmFjZWJhY2tbLTFd
KSkKKyAgICBhc3NlcnQgc3RyKGV4Y2luZm8udmFsdWUpLmVuZHN3aXRoKAorICAgICAgICAnRXJy
b3IgaW1wb3J0aW5nIHBsdWdpbiAicXdlIjogTm90IHBvc3NpYmxlIHRvIGltcG9ydDog4pi6Jwor
ICAgICkKKyAgICBhc3NlcnQgImluIHRlc3RfdHJhY2ViYWNrIiBpbiBzdHIoZXhjaW5mby50cmFj
ZWJhY2tbLTFdKQogCiAKIGNsYXNzIFRlc3RQeXRlc3RQbHVnaW5NYW5hZ2VyKG9iamVjdCk6Ci0K
ICAgICBkZWYgdGVzdF9yZWdpc3Rlcl9pbXBvcnRlZF9tb2R1bGVzKHNlbGYpOgogICAgICAgICBw
bSA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQogICAgICAgICBtb2QgPSB0eXBlcy5Nb2R1bGVUeXBl
KCJ4LnkucHl0ZXN0X2hlbGxvIikKQEAgLTI0MCw3ICsxNzgsNyBAQCBjbGFzcyBUZXN0UHl0ZXN0
UGx1Z2luTWFuYWdlcihvYmplY3QpOgogICAgICAgICBhc3NlcnQgcG0uaXNfcmVnaXN0ZXJlZCht
b2QpCiAgICAgICAgIHZhbHVlcyA9IHBtLmdldF9wbHVnaW5zKCkKICAgICAgICAgYXNzZXJ0IG1v
ZCBpbiB2YWx1ZXMKLSAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAicG0ucmVnaXN0
ZXIobW9kKSIpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgcG0ucmVnaXN0ZXIs
IG1vZCkKICAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBsYW1iZGE6IHBtLnJlZ2lz
dGVyKG1vZCkpCiAgICAgICAgICMgYXNzZXJ0IG5vdCBwbS5pc19yZWdpc3RlcmVkKG1vZDIpCiAg
ICAgICAgIGFzc2VydCBwbS5nZXRfcGx1Z2lucygpID09IHZhbHVlcwpAQCAtMjYzLDE0ICsyMDEs
MTMgQEAgY2xhc3MgVGVzdFB5dGVzdFBsdWdpbk1hbmFnZXIob2JqZWN0KToKICAgICAgICAgYXNz
ZXJ0IHB5dGVzdHBtLmdldF9wbHVnaW4oInB5dGVzdF9wMSIpLl9fbmFtZV9fID09ICJweXRlc3Rf
cDEiCiAgICAgICAgIGFzc2VydCBweXRlc3RwbS5nZXRfcGx1Z2luKCJweXRlc3RfcDIiKS5fX25h
bWVfXyA9PSAicHl0ZXN0X3AyIgogCi0gICAgZGVmIHRlc3RfY29uc2lkZXJfbW9kdWxlX2ltcG9y
dF9tb2R1bGUoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHB5dGVzdHBtID0gZ2V0X2NvbmZpZygp
LnBsdWdpbm1hbmFnZXIKKyAgICBkZWYgdGVzdF9jb25zaWRlcl9tb2R1bGVfaW1wb3J0X21vZHVs
ZShzZWxmLCB0ZXN0ZGlyLCBfY29uZmlnX2Zvcl90ZXN0KToKKyAgICAgICAgcHl0ZXN0cG0gPSBf
Y29uZmlnX2Zvcl90ZXN0LnBsdWdpbm1hbmFnZXIKICAgICAgICAgbW9kID0gdHlwZXMuTW9kdWxl
VHlwZSgieCIpCiAgICAgICAgIG1vZC5weXRlc3RfcGx1Z2lucyA9ICJweXRlc3RfYSIKICAgICAg
ICAgYXBsdWdpbiA9IHRlc3RkaXIubWFrZXB5ZmlsZShweXRlc3RfYT0iIyIpCiAgICAgICAgIHJl
cHJlYyA9IHRlc3RkaXIubWFrZV9ob29rX3JlY29yZGVyKHB5dGVzdHBtKQotICAgICAgICAjIHN5
c3BhdGgucHJlcGVuZChhcGx1Z2luLmRpcnBhdGgoKSkKLSAgICAgICAgc3lzLnBhdGguaW5zZXJ0
KDAsIHN0cihhcGx1Z2luLmRpcnBhdGgoKSkpCisgICAgICAgIHRlc3RkaXIuc3lzcGF0aGluc2Vy
dChhcGx1Z2luLmRpcnBhdGgoKSkKICAgICAgICAgcHl0ZXN0cG0uY29uc2lkZXJfbW9kdWxlKG1v
ZCkKICAgICAgICAgY2FsbCA9IHJlcHJlYy5nZXRjYWxsKHB5dGVzdHBtLmhvb2sucHl0ZXN0X3Bs
dWdpbl9yZWdpc3RlcmVkLm5hbWUpCiAgICAgICAgIGFzc2VydCBjYWxsLnBsdWdpbi5fX25hbWVf
XyA9PSAicHl0ZXN0X2EiCkBAIC0yODUsMTEgKzIyMiwxMiBAQCBjbGFzcyBUZXN0UHl0ZXN0UGx1
Z2luTWFuYWdlcihvYmplY3QpOgogICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJy
b3IpOgogICAgICAgICAgICAgcHl0ZXN0cG0uY29uc2lkZXJfZW52KCkKIAorICAgIEBweXRlc3Qu
bWFyay5maWx0ZXJ3YXJuaW5ncygiYWx3YXlzIikKICAgICBkZWYgdGVzdF9wbHVnaW5fc2tpcChz
ZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoCiAgICAgICAgICAgICBza2lwcGluZzE9IiIiCiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgICAgICBweXRlc3Quc2tpcCgiaGVsbG8iKQorICAgICAgICAgICAgcHl0ZXN0LnNr
aXAoImhlbGxvIiwgYWxsb3dfbW9kdWxlX2xldmVsPVRydWUpCiAgICAgICAgICIiIgogICAgICAg
ICApCiAgICAgICAgIHAuY29weShwLmRpcnBhdGgoInNraXBwaW5nMi5weSIpKQpAQCAtMzI5LDgg
KzI2Nyw4IEBAIGNsYXNzIFRlc3RQeXRlc3RQbHVnaW5NYW5hZ2VyKG9iamVjdCk6CiAgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKIAogICAgIGRlZiB0
ZXN0X2ltcG9ydF9wbHVnaW5faW1wb3J0bmFtZShzZWxmLCB0ZXN0ZGlyLCBweXRlc3RwbSk6Ci0g
ICAgICAgIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IsICdweXRlc3RwbS5pbXBvcnRfcGx1Z2lu
KCJxd2Vxd2V4LnkiKScpCi0gICAgICAgIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IsICdweXRl
c3RwbS5pbXBvcnRfcGx1Z2luKCJweXRlc3RfcXdlcXd4LnkiKScpCisgICAgICAgIHB5dGVzdC5y
YWlzZXMoSW1wb3J0RXJyb3IsIHB5dGVzdHBtLmltcG9ydF9wbHVnaW4sICJxd2Vxd2V4LnkiKQor
ICAgICAgICBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yLCBweXRlc3RwbS5pbXBvcnRfcGx1Z2lu
LCAicHl0ZXN0X3F3ZXF3eC55IikKIAogICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQog
ICAgICAgICBwbHVnaW5uYW1lID0gInB5dGVzdF9oZWxsbyIKQEAgLTM0Niw4ICsyODQsOCBAQCBj
bGFzcyBUZXN0UHl0ZXN0UGx1Z2luTWFuYWdlcihvYmplY3QpOgogICAgICAgICBhc3NlcnQgcGx1
Z2luMiBpcyBwbHVnaW4xCiAKICAgICBkZWYgdGVzdF9pbXBvcnRfcGx1Z2luX2RvdHRlZF9uYW1l
KHNlbGYsIHRlc3RkaXIsIHB5dGVzdHBtKToKLSAgICAgICAgcHl0ZXN0LnJhaXNlcyhJbXBvcnRF
cnJvciwgJ3B5dGVzdHBtLmltcG9ydF9wbHVnaW4oInF3ZXF3ZXgueSIpJykKLSAgICAgICAgcHl0
ZXN0LnJhaXNlcyhJbXBvcnRFcnJvciwgJ3B5dGVzdHBtLmltcG9ydF9wbHVnaW4oInB5dGVzdF9x
d2Vxd2V4LnkiKScpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IsIHB5dGVzdHBt
LmltcG9ydF9wbHVnaW4sICJxd2Vxd2V4LnkiKQorICAgICAgICBweXRlc3QucmFpc2VzKEltcG9y
dEVycm9yLCBweXRlc3RwbS5pbXBvcnRfcGx1Z2luLCAicHl0ZXN0X3F3ZXF3ZXgueSIpCiAKICAg
ICAgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KCkKICAgICAgICAgdGVzdGRpci5ta3B5ZGlyKCJw
a2ciKS5qb2luKCJwbHVnLnB5Iikud3JpdGUoIng9MyIpCkBAIC0zNjMsMTIgKzMwMSwyMyBAQCBj
bGFzcyBUZXN0UHl0ZXN0UGx1Z2luTWFuYWdlcihvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RQeXRl
c3RQbHVnaW5NYW5hZ2VyQm9vdHN0cmFwbWluZyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfcHJl
cGFyc2VfYXJncyhzZWxmLCBweXRlc3RwbSk6CiAgICAgICAgIHB5dGVzdC5yYWlzZXMoCiAgICAg
ICAgICAgICBJbXBvcnRFcnJvciwgbGFtYmRhOiBweXRlc3RwbS5jb25zaWRlcl9wcmVwYXJzZShb
Inh5eiIsICItcCIsICJoZWxsbzEyMyJdKQogICAgICAgICApCiAKKyAgICAgICAgIyBIYW5kbGVz
IC1wIHdpdGhvdXQgc3BhY2UgKCMzNTMyKS4KKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKElt
cG9ydEVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICAgICAgcHl0ZXN0cG0uY29uc2lkZXJfcHJl
cGFyc2UoWyItcGhlbGxvMTIzIl0pCisgICAgICAgIGFzc2VydCAnImhlbGxvMTIzIicgaW4gZXhj
aW5mby52YWx1ZS5hcmdzWzBdCisgICAgICAgIHB5dGVzdHBtLmNvbnNpZGVyX3ByZXBhcnNlKFsi
LXBubzpoZWxsbzEyMyJdKQorCisgICAgICAgICMgSGFuZGxlcyAtcCB3aXRob3V0IGZvbGxvd2lu
ZyBhcmcgKHdoZW4gdXNlZCB3aXRob3V0IGFyZ3BhcnNlKS4KKyAgICAgICAgcHl0ZXN0cG0uY29u
c2lkZXJfcHJlcGFyc2UoWyItcCJdKQorCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhVc2Fn
ZUVycm9yLCBtYXRjaD0iXnBsdWdpbiBtYWluIGNhbm5vdCBiZSBkaXNhYmxlZCQiKToKKyAgICAg
ICAgICAgIHB5dGVzdHBtLmNvbnNpZGVyX3ByZXBhcnNlKFsiLXAiLCAibm86bWFpbiJdKQorCiAg
ICAgZGVmIHRlc3RfcGx1Z2luX3ByZXZlbnRfcmVnaXN0ZXIoc2VsZiwgcHl0ZXN0cG0pOgogICAg
ICAgICBweXRlc3RwbS5jb25zaWRlcl9wcmVwYXJzZShbInh5eiIsICItcCIsICJubzphYmMiXSkK
ICAgICAgICAgbDEgPSBweXRlc3RwbS5nZXRfcGx1Z2lucygpCkBAIC0zODQsMyArMzMzLDI4IEBA
IGNsYXNzIFRlc3RQeXRlc3RQbHVnaW5NYW5hZ2VyQm9vdHN0cmFwbWluZyhvYmplY3QpOgogICAg
ICAgICBweXRlc3RwbS5jb25zaWRlcl9wcmVwYXJzZShbInh5eiIsICItcCIsICJubzphYmMiXSkK
ICAgICAgICAgbDIgPSBweXRlc3RwbS5nZXRfcGx1Z2lucygpCiAgICAgICAgIGFzc2VydCA0MiBu
b3QgaW4gbDIKKworICAgIGRlZiB0ZXN0X3BsdWdpbl9wcmV2ZW50X3JlZ2lzdGVyX3N0ZXB3aXNl
X29uX2NhY2hlcHJvdmlkZXJfdW5yZWdpc3RlcigKKyAgICAgICAgc2VsZiwgcHl0ZXN0cG0KKyAg
ICApOgorICAgICAgICAiIiIgRnJvbSBQUiAjNDMwNCA6IFRoZSBvbmx5IHdheSB0byB1bnJlZ2lz
dGVyIGEgbW9kdWxlIGlzIGRvY3VtZW50ZWQgYXQKKyAgICAgICAgdGhlIGVuZCBvZiBodHRwczov
L2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvcGx1Z2lucy5odG1sLgorCisgICAgICAgIFdoZW4g
dW5yZWdpc3RlciBjYWNoZXByb3ZpZGVyLCB0aGVuIHVucmVnaXN0ZXIgc3RlcHdpc2UgdG9vCisg
ICAgICAgICIiIgorICAgICAgICBweXRlc3RwbS5yZWdpc3Rlcig0MiwgbmFtZT0iY2FjaGVwcm92
aWRlciIpCisgICAgICAgIHB5dGVzdHBtLnJlZ2lzdGVyKDQzLCBuYW1lPSJzdGVwd2lzZSIpCisg
ICAgICAgIGwxID0gcHl0ZXN0cG0uZ2V0X3BsdWdpbnMoKQorICAgICAgICBhc3NlcnQgNDIgaW4g
bDEKKyAgICAgICAgYXNzZXJ0IDQzIGluIGwxCisgICAgICAgIHB5dGVzdHBtLmNvbnNpZGVyX3By
ZXBhcnNlKFsieHl6IiwgIi1wIiwgIm5vOmNhY2hlcHJvdmlkZXIiXSkKKyAgICAgICAgbDIgPSBw
eXRlc3RwbS5nZXRfcGx1Z2lucygpCisgICAgICAgIGFzc2VydCA0MiBub3QgaW4gbDIKKyAgICAg
ICAgYXNzZXJ0IDQzIG5vdCBpbiBsMgorCisgICAgZGVmIHRlc3RfYmxvY2tlZF9wbHVnaW5fY2Fu
X2JlX3VzZWQoc2VsZiwgcHl0ZXN0cG0pOgorICAgICAgICBweXRlc3RwbS5jb25zaWRlcl9wcmVw
YXJzZShbInh5eiIsICItcCIsICJubzphYmMiLCAiLXAiLCAiYWJjIl0pCisKKyAgICAgICAgYXNz
ZXJ0IHB5dGVzdHBtLmhhc19wbHVnaW4oImFiYyIpCisgICAgICAgIGFzc2VydCBub3QgcHl0ZXN0
cG0uaXNfYmxvY2tlZCgiYWJjIikKKyAgICAgICAgYXNzZXJ0IG5vdCBweXRlc3RwbS5pc19ibG9j
a2VkKCJweXRlc3RfYWJjIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9w
eXRlc3Rlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9weXRlc3Rlci5weQppbmRleCBi
NzRjMGI3ZjcwYzI1MzY4ZTU5NTU2MjNkNjkyODcwNTI2ZDAwMjFlLi5mN2NjMDkzNmNjZWE3ZTE5
ZDNmMTMyMTc5NDk4NzhlZTAyNTUxNzhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfcHl0ZXN0ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3B5dGVzdGVy
LnB5CkBAIC0xLDE0ICsxLDI2IEBACiAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQotZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwog
aW1wb3J0IG9zCi1pbXBvcnQgcHkucGF0aAotaW1wb3J0IHB5dGVzdAoraW1wb3J0IHN1YnByb2Nl
c3MKIGltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCisKK2ltcG9ydCBweS5wYXRoCisKIGltcG9ydCBf
cHl0ZXN0LnB5dGVzdGVyIGFzIHB5dGVzdGVyCi1mcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0
IEhvb2tSZWNvcmRlcgotZnJvbSBfcHl0ZXN0LnB5dGVzdGVyIGltcG9ydCBDd2RTbmFwc2hvdCwg
U3lzTW9kdWxlc1NuYXBzaG90LCBTeXNQYXRoc1NuYXBzaG90CitpbXBvcnQgcHl0ZXN0CiBmcm9t
IF9weXRlc3QuY29uZmlnIGltcG9ydCBQeXRlc3RQbHVnaW5NYW5hZ2VyCi1mcm9tIF9weXRlc3Qu
bWFpbiBpbXBvcnQgRVhJVF9PSywgRVhJVF9URVNUU0ZBSUxFRAorZnJvbSBfcHl0ZXN0Lm1haW4g
aW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVY
SVRfT0sKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX1RFU1RTRkFJTEVECitmcm9tIF9w
eXRlc3QucHl0ZXN0ZXIgaW1wb3J0IEN3ZFNuYXBzaG90Citmcm9tIF9weXRlc3QucHl0ZXN0ZXIg
aW1wb3J0IEhvb2tSZWNvcmRlcgorZnJvbSBfcHl0ZXN0LnB5dGVzdGVyIGltcG9ydCBMaW5lTWF0
Y2hlcgorZnJvbSBfcHl0ZXN0LnB5dGVzdGVyIGltcG9ydCBTeXNNb2R1bGVzU25hcHNob3QKK2Zy
b20gX3B5dGVzdC5weXRlc3RlciBpbXBvcnQgU3lzUGF0aHNTbmFwc2hvdAogCiAKIGRlZiB0ZXN0
X21ha2VfaG9va19yZWNvcmRlcih0ZXN0ZGlyKToKQEAgLTYxLDcgKzczLDcgQEAgZGVmIHRlc3Rf
bWFrZV9ob29rX3JlY29yZGVyKHRlc3RkaXIpOgogICAgIHJlY29yZGVyLnVucmVnaXN0ZXIoKQog
ICAgIHJlY29yZGVyLmNsZWFyKCkKICAgICByZWNvcmRlci5ob29rLnB5dGVzdF9ydW50ZXN0X2xv
Z3JlcG9ydChyZXBvcnQ9cmVwKQotICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgInJlY29y
ZGVyLmdldGZhaWx1cmVzKCkiKQorICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgcmVjb3Jk
ZXIuZ2V0ZmFpbHVyZXMpCiAKIAogZGVmIHRlc3RfcGFyc2Vjb25maWcodGVzdGRpcik6CkBAIC04
MywxMCArOTUsNzAgQEAgZGVmIHRlc3RfdGVzdGRpcl9ydW5zX3dpdGhfcGx1Z2luKHRlc3RkaXIp
OgogICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTEpCiAKIAotZGVmIG1ha2VfaG9s
ZGVyKCk6CitkZWYgdGVzdF9ydW5yZXN1bHRfYXNzZXJ0aW9uX29uX3hmYWlsKHRlc3RkaXIpOgor
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBweXRl
c3QKIAotICAgIGNsYXNzIGFwaWNsYXNzKG9iamVjdCk6CisgICAgICAgIHB5dGVzdF9wbHVnaW5z
ID0gInB5dGVzdGVyIgorCisgICAgICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgICAgICBkZWYg
dGVzdF9wb3RhdG8oKToKKyAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICIiIgorICAgICkK
KyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LmFzc2VydF9vdXRj
b21lcyh4ZmFpbGVkPTEpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK2RlZiB0ZXN0
X3J1bnJlc3VsdF9hc3NlcnRpb25fb25feHBhc3NlZCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAg
cHl0ZXN0X3BsdWdpbnMgPSAicHl0ZXN0ZXIiCisKKyAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWls
CisgICAgICAgIGRlZiB0ZXN0X3BvdGF0bygpOgorICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAg
ICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3Vs
dC5hc3NlcnRfb3V0Y29tZXMoeHBhc3NlZD0xKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAK
KworCitkZWYgdGVzdF9ydW5yZXN1bHRfcmVwcigpOgorICAgIGZyb20gX3B5dGVzdC5weXRlc3Rl
ciBpbXBvcnQgUnVuUmVzdWx0CisKKyAgICBhc3NlcnQgKAorICAgICAgICByZXByKAorICAgICAg
ICAgICAgUnVuUmVzdWx0KHJldD0icmV0Iiwgb3V0bGluZXM9WyIiXSwgZXJybGluZXM9WyJzb21l
IiwgImVycm9ycyJdLCBkdXJhdGlvbj0xKQorICAgICAgICApCisgICAgICAgID09ICI8UnVuUmVz
dWx0IHJldD0ncmV0JyBsZW4oc3Rkb3V0LmxpbmVzKT0xIGxlbihzdGRlcnIubGluZXMpPTIgZHVy
YXRpb249MS4wMHM+IgorICAgICkKIAorCitkZWYgdGVzdF94cGFzc2VkX3dpdGhfc3RyaWN0X2lz
X2NvbnNpZGVyZWRfYV9mYWlsdXJlKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
KyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICBweXRlc3RfcGx1
Z2lucyA9ICJweXRlc3RlciIKKworICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3RyaWN0PVRy
dWUpCisgICAgICAgIGRlZiB0ZXN0X3BvdGF0bygpOgorICAgICAgICAgICAgYXNzZXJ0IFRydWUK
KyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJl
c3VsdC5hc3NlcnRfb3V0Y29tZXMoZmFpbGVkPTEpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0g
MAorCisKK2RlZiBtYWtlX2hvbGRlcigpOgorICAgIGNsYXNzIGFwaWNsYXNzKG9iamVjdCk6CiAg
ICAgICAgIGRlZiBweXRlc3RfeHl6KHNlbGYsIGFyZyk6CiAgICAgICAgICAgICAieCIKIApAQCAt
MTA5LDEzICsxODEsMTMgQEAgZGVmIG1ha2VfaG9sZGVyKCk6CiBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoImhvbGRlciIsIG1ha2VfaG9sZGVyKCkpCiBkZWYgdGVzdF9ob29rcmVjb3JkZXJfYmFz
aWMoaG9sZGVyKToKICAgICBwbSA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQotICAgIHBtLmFkZGhv
b2tzKGhvbGRlcikKKyAgICBwbS5hZGRfaG9va3NwZWNzKGhvbGRlcikKICAgICByZWMgPSBIb29r
UmVjb3JkZXIocG0pCiAgICAgcG0uaG9vay5weXRlc3RfeHl6KGFyZz0xMjMpCiAgICAgY2FsbCA9
IHJlYy5wb3BjYWxsKCJweXRlc3RfeHl6IikKICAgICBhc3NlcnQgY2FsbC5hcmcgPT0gMTIzCiAg
ICAgYXNzZXJ0IGNhbGwuX25hbWUgPT0gInB5dGVzdF94eXoiCi0gICAgcHl0ZXN0LnJhaXNlcyhw
eXRlc3QuZmFpbC5FeGNlcHRpb24sICJyZWMucG9wY2FsbCgnYWJjJykiKQorICAgIHB5dGVzdC5y
YWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uLCByZWMucG9wY2FsbCwgImFiYyIpCiAgICAgcG0u
aG9vay5weXRlc3RfeHl6X25vYXJnKCkKICAgICBjYWxsID0gcmVjLnBvcGNhbGwoInB5dGVzdF94
eXpfbm9hcmciKQogICAgIGFzc2VydCBjYWxsLl9uYW1lID09ICJweXRlc3RfeHl6X25vYXJnIgpA
QCAtMTI3LDcgKzE5OSw3IEBAIGRlZiB0ZXN0X21ha2VweWZpbGVfdW5pY29kZSh0ZXN0ZGlyKToK
ICAgICAgICAgdW5pY2hyKDY1KQogICAgIGV4Y2VwdCBOYW1lRXJyb3I6CiAgICAgICAgIHVuaWNo
ciA9IGNocgotICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh1bmljaHIoMHhmZmZkKSkKKyAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUodW5pY2hyKDB4RkZGRCkpCiAKIAogZGVmIHRlc3RfbWFrZXB5ZmlsZV91
dGY4KHRlc3RkaXIpOgpAQCAtMTQzLDcgKzIxNSw2IEBAIGRlZiB0ZXN0X21ha2VweWZpbGVfdXRm
OCh0ZXN0ZGlyKToKIAogCiBjbGFzcyBUZXN0SW5saW5lUnVuTW9kdWxlc0NsZWFudXAob2JqZWN0
KToKLQogICAgIGRlZiB0ZXN0X2lubGluZV9ydW5fdGVzdF9tb2R1bGVfbm90X2NsZWFuZWRfdXAo
c2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RfbW9kID0gdGVzdGRpci5tYWtlcHlmaWxlKCJk
ZWYgdGVzdF9mb28oKTogYXNzZXJ0IFRydWUiKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4oc3RyKHRlc3RfbW9kKSkKQEAgLTE1NCw3ICsyMjUsNiBAQCBjbGFzcyBUZXN0SW5s
aW5lUnVuTW9kdWxlc0NsZWFudXAob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHJlc3VsdDIucmV0
ID09IEVYSVRfVEVTVFNGQUlMRUQKIAogICAgIGRlZiBzcHlfZmFjdG9yeShzZWxmKToKLQogICAg
ICAgICBjbGFzcyBTeXNNb2R1bGVzU25hcHNob3RTcHkob2JqZWN0KToKICAgICAgICAgICAgIGlu
c3RhbmNlcyA9IFtdCiAKQEAgLTE3NSw4ICsyNDUsOCBAQCBjbGFzcyBUZXN0SW5saW5lUnVuTW9k
dWxlc0NsZWFudXAob2JqZWN0KToKICAgICApOgogICAgICAgICBzcHlfZmFjdG9yeSA9IHNlbGYu
c3B5X2ZhY3RvcnkoKQogICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHB5dGVzdGVyLCAiU3lz
TW9kdWxlc1NuYXBzaG90Iiwgc3B5X2ZhY3RvcnkpCi0gICAgICAgIG9yaWdpbmFsID0gZGljdChz
eXMubW9kdWxlcykKICAgICAgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KCkKKyAgICAgICAgb3Jp
Z2luYWwgPSBkaWN0KHN5cy5tb2R1bGVzKQogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoaW1w
b3J0MT0iIyB5b3Ugc29uIG9mIGEgc2lsbHkgcGVyc29uIikKICAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKGltcG9ydDI9IiMgbXkgaG92ZXJjcmFmdCBpcyBmdWxsIG9mIGVlbHMiKQogICAgICAg
ICB0ZXN0X21vZCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAgLTIxOSw2NCArMjg5LDExIEBAIGNs
YXNzIFRlc3RJbmxpbmVSdW5Nb2R1bGVzQ2xlYW51cChvYmplY3QpOgogICAgICAgICBhc3NlcnQg
aW1wb3J0ZWQuZGF0YSA9PSA0MgogCiAKLWRlZiB0ZXN0X2lubGluZV9ydW5fY2xlYW5fc3lzX3Bh
dGhzKHRlc3RkaXIpOgotCi0gICAgZGVmIHRlc3Rfc3lzX3BhdGhfY2hhbmdlX2NsZWFudXAoc2Vs
ZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RfcGF0aDEgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJi
b2luazEiKS5zdHJwYXRoCi0gICAgICAgIHRlc3RfcGF0aDIgPSB0ZXN0ZGlyLnRtcGRpci5qb2lu
KCJib2luazIiKS5zdHJwYXRoCi0gICAgICAgIHRlc3RfcGF0aDMgPSB0ZXN0ZGlyLnRtcGRpci5q
b2luKCJib2luazMiKS5zdHJwYXRoCi0gICAgICAgIHN5cy5wYXRoLmFwcGVuZCh0ZXN0X3BhdGgx
KQotICAgICAgICBzeXMubWV0YV9wYXRoLmFwcGVuZCh0ZXN0X3BhdGgxKQotICAgICAgICBvcmln
aW5hbF9wYXRoID0gbGlzdChzeXMucGF0aCkKLSAgICAgICAgb3JpZ2luYWxfbWV0YV9wYXRoID0g
bGlzdChzeXMubWV0YV9wYXRoKQotICAgICAgICB0ZXN0X21vZCA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHN5cwotICAgICAgICAgICAg
c3lzLnBhdGguYXBwZW5kKHs6dGVzdF9wYXRoMn0pCi0gICAgICAgICAgICBzeXMubWV0YV9wYXRo
LmFwcGVuZCh7OnRlc3RfcGF0aDJ9KQotICAgICAgICAgICAgZGVmIHRlc3RfZm9vKCk6Ci0gICAg
ICAgICAgICAgICAgc3lzLnBhdGguYXBwZW5kKHs6dGVzdF9wYXRoM30pCi0gICAgICAgICAgICAg
ICAgc3lzLm1ldGFfcGF0aC5hcHBlbmQoezp0ZXN0X3BhdGgzfSkiIiIuZm9ybWF0KAotICAgICAg
ICAgICAgICAgIGxvY2FscygpCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgdGVz
dGRpci5pbmxpbmVfcnVuKHN0cih0ZXN0X21vZCkpCi0gICAgICAgIGFzc2VydCBzeXMucGF0aCA9
PSBvcmlnaW5hbF9wYXRoCi0gICAgICAgIGFzc2VydCBzeXMubWV0YV9wYXRoID09IG9yaWdpbmFs
X21ldGFfcGF0aAotCi0gICAgZGVmIHNweV9mYWN0b3J5KHNlbGYpOgotCi0gICAgICAgIGNsYXNz
IFN5c1BhdGhzU25hcHNob3RTcHkob2JqZWN0KToKLSAgICAgICAgICAgIGluc3RhbmNlcyA9IFtd
Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgICAgICAgICBTeXNQ
YXRoc1NuYXBzaG90U3B5Lmluc3RhbmNlcy5hcHBlbmQoc2VsZikKLSAgICAgICAgICAgICAgICBz
ZWxmLl9zcHlfcmVzdG9yZV9jb3VudCA9IDAKLSAgICAgICAgICAgICAgICBzZWxmLl9fc25hcHNo
b3QgPSBTeXNQYXRoc1NuYXBzaG90KCkKLQotICAgICAgICAgICAgZGVmIHJlc3RvcmUoc2VsZik6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fc3B5X3Jlc3RvcmVfY291bnQgKz0gMQotICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxmLl9fc25hcHNob3QucmVzdG9yZSgpCi0KLSAgICAgICAgcmV0dXJu
IFN5c1BhdGhzU25hcHNob3RTcHkKLQotICAgIGRlZiB0ZXN0X2lubGluZV9ydW5fdGFraW5nX2Fu
ZF9yZXN0b3JpbmdfYV9zeXNfcGF0aHNfc25hcHNob3QoCi0gICAgICAgIHNlbGYsIHRlc3RkaXIs
IG1vbmtleXBhdGNoCi0gICAgKToKLSAgICAgICAgc3B5X2ZhY3RvcnkgPSBzZWxmLnNweV9mYWN0
b3J5KCkKLSAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihweXRlc3RlciwgIlN5c1BhdGhzU25h
cHNob3QiLCBzcHlfZmFjdG9yeSkKLSAgICAgICAgdGVzdF9tb2QgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoImRlZiB0ZXN0X2ZvbygpOiBwYXNzIikKLSAgICAgICAgdGVzdGRpci5pbmxpbmVfcnVuKHN0
cih0ZXN0X21vZCkpCi0gICAgICAgIGFzc2VydCBsZW4oc3B5X2ZhY3RvcnkuaW5zdGFuY2VzKSA9
PSAxCi0gICAgICAgIHNweSA9IHNweV9mYWN0b3J5Lmluc3RhbmNlc1swXQotICAgICAgICBhc3Nl
cnQgc3B5Ll9zcHlfcmVzdG9yZV9jb3VudCA9PSAxCi0KLQogZGVmIHRlc3RfYXNzZXJ0X291dGNv
bWVzX2FmdGVyX3B5dGVzdF9lcnJvcih0ZXN0ZGlyKToKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
ImRlZiB0ZXN0X2ZvbygpOiBhc3NlcnQgVHJ1ZSIpCiAKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLS11bmV4cGVjdGVkLWFyZ3VtZW50IikKLSAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
VmFsdWVFcnJvciwgbWVzc2FnZT0iUHl0ZXN0IHRlcm1pbmFsIHJlcG9ydCBub3QgZm91bmQiKToK
KyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbWF0Y2g9IlB5dGVzdCB0ZXJtaW5h
bCByZXBvcnQgbm90IGZvdW5kIik6CiAgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFz
c2VkPTApCiAKIApAQCAtMzcwLDkgKzM4Nyw3IEBAIGNsYXNzIFRlc3RTeXNQYXRoc1NuYXBzaG90
KG9iamVjdCk6CiAgICAgICAgIG9yaWdpbmFsID0gbGlzdChzeXNfcGF0aCkKICAgICAgICAgb3Jp
Z2luYWxfb3RoZXIgPSBsaXN0KGdldGF0dHIoc3lzLCBvdGhlcl9wYXRoX3R5cGUpKQogICAgICAg
ICBzbmFwc2hvdCA9IFN5c1BhdGhzU25hcHNob3QoKQotICAgICAgICB0cmFuc2Zvcm1hdGlvbiA9
IHsKLSAgICAgICAgICAgICJzb3VyY2UiOiAoMCwgMSwgMiwgMywgNCwgNSksICJ0YXJnZXQiOiAo
NiwgMiwgOSwgNywgNSwgOCkKLSAgICAgICAgfSAgIyBub3FhOiBFMjAxCisgICAgICAgIHRyYW5z
Zm9ybWF0aW9uID0geyJzb3VyY2UiOiAoMCwgMSwgMiwgMywgNCwgNSksICJ0YXJnZXQiOiAoNiwg
MiwgOSwgNywgNSwgOCl9CiAgICAgICAgIGFzc2VydCBzeXNfcGF0aCA9PSBbc2VsZi5wYXRoKHgp
IGZvciB4IGluIHRyYW5zZm9ybWF0aW9uWyJzb3VyY2UiXV0KICAgICAgICAgc3lzX3BhdGhbMV0g
PSBzZWxmLnBhdGgoNikKICAgICAgICAgc3lzX3BhdGhbM10gPSBzZWxmLnBhdGgoNykKQEAgLTM5
OSwzICs0MTQsMTc0IEBAIGNsYXNzIFRlc3RTeXNQYXRoc1NuYXBzaG90KG9iamVjdCk6CiAgICAg
ICAgIGFzc2VydCBnZXRhdHRyKHN5cywgcGF0aF90eXBlKSA9PSBvcmlnaW5hbF9kYXRhCiAgICAg
ICAgIGFzc2VydCBnZXRhdHRyKHN5cywgb3RoZXJfcGF0aF90eXBlKSBpcyBvcmlnaW5hbF9vdGhl
cgogICAgICAgICBhc3NlcnQgZ2V0YXR0cihzeXMsIG90aGVyX3BhdGhfdHlwZSkgPT0gb3JpZ2lu
YWxfb3RoZXJfZGF0YQorCisKK2RlZiB0ZXN0X3Rlc3RkaXJfc3VicHJvY2Vzcyh0ZXN0ZGlyKToK
KyAgICB0ZXN0ZmlsZSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3Rfb25lKCk6IHBhc3Mi
KQorICAgIGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKHRlc3RmaWxlKS5yZXQg
PT0gMAorCisKK2RlZiB0ZXN0X3VuaWNvZGVfYXJncyh0ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgiLWsiLCB1IvCfkqkiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09
IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorCisKK2RlZiB0ZXN0X3Rlc3RkaXJfcnVuX25vX3RpbWVv
dXQodGVzdGRpcik6CisgICAgdGVzdGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0
X25vX3RpbWVvdXQoKTogcGFzcyIpCisgICAgYXNzZXJ0IHRlc3RkaXIucnVucHl0ZXN0X3N1YnBy
b2Nlc3ModGVzdGZpbGUpLnJldCA9PSBFWElUX09LCisKKworZGVmIHRlc3RfdGVzdGRpcl9ydW5f
d2l0aF90aW1lb3V0KHRlc3RkaXIpOgorICAgIHRlc3RmaWxlID0gdGVzdGRpci5tYWtlcHlmaWxl
KCJkZWYgdGVzdF9ub190aW1lb3V0KCk6IHBhc3MiKQorCisgICAgdGltZW91dCA9IDEyMAorCisg
ICAgc3RhcnQgPSB0aW1lLnRpbWUoKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1
YnByb2Nlc3ModGVzdGZpbGUsIHRpbWVvdXQ9dGltZW91dCkKKyAgICBlbmQgPSB0aW1lLnRpbWUo
KQorICAgIGR1cmF0aW9uID0gZW5kIC0gc3RhcnQKKworICAgIGFzc2VydCByZXN1bHQucmV0ID09
IEVYSVRfT0sKKyAgICBhc3NlcnQgZHVyYXRpb24gPCB0aW1lb3V0CisKKworZGVmIHRlc3RfdGVz
dGRpcl9ydW5fdGltZW91dF9leHBpcmVzKHRlc3RkaXIpOgorICAgIHRlc3RmaWxlID0gdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHRpbWUKKworICAgICAg
ICBkZWYgdGVzdF90aW1lb3V0KCk6CisgICAgICAgICAgICB0aW1lLnNsZWVwKDEwKSIiIgorICAg
ICkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXModGVzdGRpci5UaW1lb3V0RXhwaXJlZCk6CisgICAg
ICAgIHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3ModGVzdGZpbGUsIHRpbWVvdXQ9MSkKKwor
CitkZWYgdGVzdF9saW5lbWF0Y2hlcl93aXRoX25vbmxpc3QoKToKKyAgICAiIiJUZXN0IExpbmVN
YXRjaGVyIHdpdGggcmVnYXJkIHRvIHBhc3NpbmcgaW4gYSBzZXQgKGFjY2lkZW50YWxseSkuIiIi
CisgICAgbG0gPSBMaW5lTWF0Y2hlcihbXSkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBc3Nl
cnRpb25FcnJvcik6CisgICAgICAgIGxtLmZubWF0Y2hfbGluZXMoc2V0KCkpCisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yKToKKyAgICAgICAgbG0uZm5tYXRjaF9saW5lcyh7
fSkKKyAgICBsbS5mbm1hdGNoX2xpbmVzKFtdKQorICAgIGxtLmZubWF0Y2hfbGluZXMoKCkpCisK
KyAgICBhc3NlcnQgbG0uX2dldGxpbmVzKHt9KSA9PSB7fQorICAgIGFzc2VydCBsbS5fZ2V0bGlu
ZXMoc2V0KCkpID09IHNldCgpCisKKworZGVmIHRlc3RfcHl0ZXN0ZXJfYWRkb3B0cyhyZXF1ZXN0
LCBtb25rZXlwYXRjaCk6CisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRFU1RfQURET1BUUyIs
ICItLW9yaWctdW51c2VkIikKKworICAgIHRlc3RkaXIgPSByZXF1ZXN0LmdldGZpeHR1cmV2YWx1
ZSgidGVzdGRpciIpCisKKyAgICB0cnk6CisgICAgICAgIGFzc2VydCAiUFlURVNUX0FERE9QVFMi
IG5vdCBpbiBvcy5lbnZpcm9uCisgICAgZmluYWxseToKKyAgICAgICAgdGVzdGRpci5maW5hbGl6
ZSgpCisKKyAgICBhc3NlcnQgb3MuZW52aXJvblsiUFlURVNUX0FERE9QVFMiXSA9PSAiLS1vcmln
LXVudXNlZCIKKworCitkZWYgdGVzdF9ydW5fc3RkaW4odGVzdGRpcik6CisgICAgd2l0aCBweXRl
c3QucmFpc2VzKHRlc3RkaXIuVGltZW91dEV4cGlyZWQpOgorICAgICAgICB0ZXN0ZGlyLnJ1bigK
KyAgICAgICAgICAgIHN5cy5leGVjdXRhYmxlLAorICAgICAgICAgICAgIi1jIiwKKyAgICAgICAg
ICAgICJpbXBvcnQgc3lzLCB0aW1lOyB0aW1lLnNsZWVwKDEpOyBwcmludChzeXMuc3RkaW4ucmVh
ZCgpKSIsCisgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICB0
aW1lb3V0PTAuMSwKKyAgICAgICAgKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKHRlc3RkaXIu
VGltZW91dEV4cGlyZWQpOgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bigKKyAgICAgICAg
ICAgIHN5cy5leGVjdXRhYmxlLAorICAgICAgICAgICAgIi1jIiwKKyAgICAgICAgICAgICJpbXBv
cnQgc3lzLCB0aW1lOyB0aW1lLnNsZWVwKDEpOyBwcmludChzeXMuc3RkaW4ucmVhZCgpKSIsCisg
ICAgICAgICAgICBzdGRpbj1iImlucHV0XG4ybmRsaW5lIiwKKyAgICAgICAgICAgIHRpbWVvdXQ9
MC4xLAorICAgICAgICApCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bigKKyAgICAgICAgc3lz
LmV4ZWN1dGFibGUsCisgICAgICAgICItYyIsCisgICAgICAgICJpbXBvcnQgc3lzOyBwcmludChz
eXMuc3RkaW4ucmVhZCgpKSIsCisgICAgICAgIHN0ZGluPWIiaW5wdXRcbjJuZGxpbmUiLAorICAg
ICkKKyAgICBhc3NlcnQgcmVzdWx0LnN0ZG91dC5saW5lcyA9PSBbImlucHV0IiwgIjJuZGxpbmUi
XQorICAgIGFzc2VydCByZXN1bHQuc3RkZXJyLnN0cigpID09ICIiCisgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X3BvcGVuX3N0ZGluX3BpcGUodGVzdGRpcik6CisgICAg
cHJvYyA9IHRlc3RkaXIucG9wZW4oCisgICAgICAgIFtzeXMuZXhlY3V0YWJsZSwgIi1jIiwgImlt
cG9ydCBzeXM7IHByaW50KHN5cy5zdGRpbi5yZWFkKCkpIl0sCisgICAgICAgIHN0ZG91dD1zdWJw
cm9jZXNzLlBJUEUsCisgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgIHN0
ZGluPXN1YnByb2Nlc3MuUElQRSwKKyAgICApCisgICAgc3RkaW4gPSBiImlucHV0XG4ybmRsaW5l
IgorICAgIHN0ZG91dCwgc3RkZXJyID0gcHJvYy5jb21tdW5pY2F0ZShpbnB1dD1zdGRpbikKKyAg
ICBhc3NlcnQgc3Rkb3V0LmRlY29kZSgidXRmOCIpLnNwbGl0bGluZXMoKSA9PSBbImlucHV0Iiwg
IjJuZGxpbmUiXQorICAgIGFzc2VydCBzdGRlcnIgPT0gYiIiCisgICAgYXNzZXJ0IHByb2MucmV0
dXJuY29kZSA9PSAwCisKKworZGVmIHRlc3RfcG9wZW5fc3RkaW5fYnl0ZXModGVzdGRpcik6Cisg
ICAgcHJvYyA9IHRlc3RkaXIucG9wZW4oCisgICAgICAgIFtzeXMuZXhlY3V0YWJsZSwgIi1jIiwg
ImltcG9ydCBzeXM7IHByaW50KHN5cy5zdGRpbi5yZWFkKCkpIl0sCisgICAgICAgIHN0ZG91dD1z
dWJwcm9jZXNzLlBJUEUsCisgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAg
IHN0ZGluPWIiaW5wdXRcbjJuZGxpbmUiLAorICAgICkKKyAgICBzdGRvdXQsIHN0ZGVyciA9IHBy
b2MuY29tbXVuaWNhdGUoKQorICAgIGFzc2VydCBzdGRvdXQuZGVjb2RlKCJ1dGY4Iikuc3BsaXRs
aW5lcygpID09IFsiaW5wdXQiLCAiMm5kbGluZSJdCisgICAgYXNzZXJ0IHN0ZGVyciA9PSBiIiIK
KyAgICBhc3NlcnQgcHJvYy5yZXR1cm5jb2RlID09IDAKKworCitkZWYgdGVzdF9wb3Blbl9kZWZh
dWx0X3N0ZGluX3N0ZGVycl9hbmRfc3RkaW5fTm9uZSh0ZXN0ZGlyKToKKyAgICAjIHN0ZG91dCwg
c3RkZXJyIGRlZmF1bHQgdG8gcGlwZXMsCisgICAgIyBzdGRpbiBjYW4gYmUgTm9uZSB0byBub3Qg
Y2xvc2UgdGhlIHBpcGUsIGF2b2lkaW5nCisgICAgIyAiVmFsdWVFcnJvcjogZmx1c2ggb2YgY2xv
c2VkIGZpbGUiIHdpdGggYGNvbW11bmljYXRlKClgLgorICAgIHAxID0gdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHN5cworICAgICAgICBwcmludChzeXMu
c3RkaW4ucmVhZCgpKSAgIyBlbXB0eQorICAgICAgICBwcmludCgnc3Rkb3V0JykKKyAgICAgICAg
c3lzLnN0ZGVyci53cml0ZSgnc3RkZXJyJykKKyAgICAgICAgIiIiCisgICAgKQorICAgIHByb2Mg
PSB0ZXN0ZGlyLnBvcGVuKFtzeXMuZXhlY3V0YWJsZSwgc3RyKHAxKV0sIHN0ZGluPU5vbmUpCisg
ICAgc3Rkb3V0LCBzdGRlcnIgPSBwcm9jLmNvbW11bmljYXRlKGIiaWdub3JlZCIpCisgICAgYXNz
ZXJ0IHN0ZG91dC5zcGxpdGxpbmVzKCkgPT0gW2IiIiwgYiJzdGRvdXQiXQorICAgIGFzc2VydCBz
dGRlcnIuc3BsaXRsaW5lcygpID09IFtiInN0ZGVyciJdCisgICAgYXNzZXJ0IHByb2MucmV0dXJu
Y29kZSA9PSAwCisKKworZGVmIHRlc3Rfc3Bhd25fdXNlc190bXBob21lKHRlc3RkaXIpOgorICAg
IGltcG9ydCBvcworCisgICAgdG1waG9tZSA9IHN0cih0ZXN0ZGlyLnRtcGRpcikKKworICAgICMg
RG9lcyB1c2UgSE9NRSBvbmx5IGR1cmluZyBydW4uCisgICAgYXNzZXJ0IG9zLmVudmlyb24uZ2V0
KCJIT01FIikgIT0gdG1waG9tZQorCisgICAgdGVzdGRpci5fZW52X3J1bl91cGRhdGVbIkNVU1RP
TUVOViJdID0gIjQyIgorCisgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIi
IgorICAgICAgICBpbXBvcnQgb3MKKworICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAg
YXNzZXJ0IG9zLmVudmlyb25bIkhPTUUiXSA9PSB7dG1waG9tZSFyfQorICAgICAgICAgICAgYXNz
ZXJ0IG9zLmVudmlyb25bIkNVU1RPTUVOViJdID09ICI0MiIKKyAgICAgICAgIiIiLmZvcm1hdCgK
KyAgICAgICAgICAgIHRtcGhvbWU9dG1waG9tZQorICAgICAgICApCisgICAgKQorICAgIGNoaWxk
ID0gdGVzdGRpci5zcGF3bl9weXRlc3Qoc3RyKHAxKSkKKyAgICBvdXQgPSBjaGlsZC5yZWFkKCkK
KyAgICBhc3NlcnQgY2hpbGQud2FpdCgpID09IDAsIG91dC5kZWNvZGUoInV0ZjgiKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3JlY3dhcm4ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3RfcmVjd2Fybi5weQppbmRleCBhOGUyZmI4MDM3ODBjNThlZTE5ODhlYzIxZGE0
NjFmOGEwODA5NWM4Li5kNjUyMjE5ZGYzZWZjMDEwNmYyYWI4OTcwZWRjOWQ4ZDMyNDJlYzk5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVjd2Fybi5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVjd2Fybi5weQpAQCAtMSwxMyArMSwyNCBAQAotZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgotaW1wb3J0IHdhcm5pbmdzCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNp
b24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IHJlCitp
bXBvcnQgd2FybmluZ3MKIAogaW1wb3J0IHB5dGVzdAogZnJvbSBfcHl0ZXN0LnJlY3dhcm4gaW1w
b3J0IFdhcm5pbmdzUmVjb3JkZXIKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQ
eXRlc3REZXByZWNhdGlvbldhcm5pbmcKKworCitkZWYgdGVzdF9yZWN3YXJuX3N0YWNrbGV2ZWwo
cmVjd2Fybik6CisgICAgd2FybmluZ3Mud2FybigiaGVsbG8iKQorICAgIHdhcm4gPSByZWN3YXJu
LnBvcCgpCisgICAgYXNzZXJ0IHdhcm4uZmlsZW5hbWUgPT0gX19maWxlX18KIAogCiBkZWYgdGVz
dF9yZWN3YXJuX2Z1bmN0aW9uYWwodGVzdGRpcik6Ci0gICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuc291cmNlKAorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgIiIiCiAgICAg
ICAgIGltcG9ydCB3YXJuaW5ncwogICAgICAgICBkZWYgdGVzdF9tZXRob2QocmVjd2Fybik6CkBA
IC0xNiwxMiArMjcsMTEgQEAgZGVmIHRlc3RfcmVjd2Fybl9mdW5jdGlvbmFsKHRlc3RkaXIpOgog
ICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uod2Fybi5tZXNzYWdlLCBVc2VyV2FybmluZykK
ICAgICAiIiIKICAgICApCi0gICAgcmVzID0gcmVwcmVjLmNvdW50b3V0Y29tZXMoKQotICAgIGFz
c2VydCB0dXBsZShyZXMpID09ICgxLCAwLCAwKSwgcmVzCisgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKCkKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKIAogCiBjbGFz
cyBUZXN0V2FybmluZ3NSZWNvcmRlckNoZWNrZXIob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X3Jl
Y29yZGluZyhzZWxmKToKICAgICAgICAgcmVjID0gV2FybmluZ3NSZWNvcmRlcigpCiAgICAgICAg
IHdpdGggcmVjOgpAQCAtMzYsNyArNDYsMTMgQEAgY2xhc3MgVGVzdFdhcm5pbmdzUmVjb3JkZXJD
aGVja2VyKG9iamVjdCk6CiAgICAgICAgICAgICByZWMuY2xlYXIoKQogICAgICAgICAgICAgYXNz
ZXJ0IGxlbihyZWMubGlzdCkgPT0gMAogICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyBpcyByZWMu
bGlzdAotICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvciwgInJlYy5wb3Ao
KSIpCisgICAgICAgICAgICBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yLCByZWMucG9wKQor
CisgICAgZGVmIHRlc3Rfd2Fybl9zdGFja2xldmVsKHNlbGYpOgorICAgICAgICAiIiIjNDI0MyIi
IgorICAgICAgICByZWMgPSBXYXJuaW5nc1JlY29yZGVyKCkKKyAgICAgICAgd2l0aCByZWM6Cisg
ICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ0ZXN0IiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQog
CiAgICAgZGVmIHRlc3RfdHlwZWNoZWNraW5nKHNlbGYpOgogICAgICAgICBmcm9tIF9weXRlc3Qu
cmVjd2FybiBpbXBvcnQgV2FybmluZ3NDaGVja2VyCkBAIC03Nyw5ICs5Myw4IEBAIGNsYXNzIFRl
c3REZXByZWNhdGVkQ2FsbChvYmplY3QpOgogICAgICAgICAgICAgKQogCiAgICAgZGVmIHRlc3Rf
ZGVwcmVjYXRlZF9jYWxsX3JhaXNlcyhzZWxmKToKLSAgICAgICAgd2l0aCBweXRlc3QucmFpc2Vz
KEFzc2VydGlvbkVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
cHl0ZXN0LmZhaWwuRXhjZXB0aW9uLCBtYXRjaD0iTm8gd2FybmluZ3Mgb2YgdHlwZSIpOgogICAg
ICAgICAgICAgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbChzZWxmLmRlcCwgMywgNSkKLSAgICAgICAg
YXNzZXJ0ICJEaWQgbm90IHByb2R1Y2UiIGluIHN0cihleGNpbmZvKQogCiAgICAgZGVmIHRlc3Rf
ZGVwcmVjYXRlZF9jYWxsKHNlbGYpOgogICAgICAgICBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKHNl
bGYuZGVwLCAwLCA1KQpAQCAtMTAxLDcgKzExNiw3IEBAIGNsYXNzIFRlc3REZXByZWNhdGVkQ2Fs
bChvYmplY3QpOgogICAgICAgICBhc3NlcnQgd2Fybl9leHBsaWNpdCBpcyB3YXJuaW5ncy53YXJu
X2V4cGxpY2l0CiAKICAgICBkZWYgdGVzdF9kZXByZWNhdGVkX2V4cGxpY2l0X2NhbGxfcmFpc2Vz
KHNlbGYpOgotICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IpOgorICAg
ICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKToKICAgICAgICAg
ICAgIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoc2VsZi5kZXBfZXhwbGljaXQsIDMpCiAKICAgICBk
ZWYgdGVzdF9kZXByZWNhdGVkX2V4cGxpY2l0X2NhbGwoc2VsZik6CkBAIC0xMTcsOCArMTMyLDgg
QEAgY2xhc3MgVGVzdERlcHJlY2F0ZWRDYWxsKG9iamVjdCk6CiAgICAgICAgIGRlZiBmKCk6CiAg
ICAgICAgICAgICBwYXNzCiAKLSAgICAgICAgbXNnID0gIkRpZCBub3QgcHJvZHVjZSBEZXByZWNh
dGlvbldhcm5pbmcgb3IgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyIKLSAgICAgICAgd2l0aCBw
eXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yLCBtYXRjaD1tc2cpOgorICAgICAgICBtc2cgPSAi
Tm8gd2FybmluZ3Mgb2YgdHlwZSAoLipEZXByZWNhdGlvbldhcm5pbmcuKiwgLipQZW5kaW5nRGVw
cmVjYXRpb25XYXJuaW5nLiopIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZh
aWwuRXhjZXB0aW9uLCBtYXRjaD1tc2cpOgogICAgICAgICAgICAgaWYgbW9kZSA9PSAiY2FsbCI6
CiAgICAgICAgICAgICAgICAgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbChmKQogICAgICAgICAgICAg
ZWxzZToKQEAgLTE4MCwyMyArMTk1LDM4IEBAIGNsYXNzIFRlc3REZXByZWNhdGVkQ2FsbChvYmpl
Y3QpOgogICAgICAgICAgICAgZGVmIGYoKToKICAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJu
KHdhcm5pbmcoImhpIikpCiAKLSAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBc3NlcnRp
b25FcnJvcik6CisgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhj
ZXB0aW9uKToKICAgICAgICAgICAgICAgICBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKGYpCi0gICAg
ICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IpOgorICAgICAgICAgICAg
d2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlvbik6CiAgICAgICAgICAgICAg
ICAgd2l0aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CiAgICAgICAgICAgICAgICAgICAgIGYo
KQogCisgICAgZGVmIHRlc3RfZGVwcmVjYXRlZF9jYWxsX3N1cHBvcnRzX21hdGNoKHNlbGYpOgor
ICAgICAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwobWF0Y2g9ciJtdXN0IGJlIFxkKyQi
KToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oInZhbHVlIG11c3QgYmUgNDIiLCBEZXByZWNh
dGlvbldhcm5pbmcpCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4
Y2VwdGlvbik6CisgICAgICAgICAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwobWF0Y2g9
ciJtdXN0IGJlIFxkKyQiKToKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ0aGlzIGlz
IG5vdCBoZXJlIiwgRGVwcmVjYXRpb25XYXJuaW5nKQogCi1jbGFzcyBUZXN0V2FybnMob2JqZWN0
KToKIAorY2xhc3MgVGVzdFdhcm5zKG9iamVjdCk6CiAgICAgZGVmIHRlc3Rfc3RyaW5ncyhzZWxm
KToKICAgICAgICAgIyBkaWZmZXJlbnQgbWVzc2FnZXMsIGIvYyBQeXRob24gc3VwcHJlc3NlcyBt
dWx0aXBsZSBpZGVudGljYWwgd2FybmluZ3MKICAgICAgICAgc291cmNlMSA9ICJ3YXJuaW5ncy53
YXJuKCd3MScsIFJ1bnRpbWVXYXJuaW5nKSIKICAgICAgICAgc291cmNlMiA9ICJ3YXJuaW5ncy53
YXJuKCd3MicsIFJ1bnRpbWVXYXJuaW5nKSIKICAgICAgICAgc291cmNlMyA9ICJ3YXJuaW5ncy53
YXJuKCd3MycsIFJ1bnRpbWVXYXJuaW5nKSIKLSAgICAgICAgcHl0ZXN0Lndhcm5zKFJ1bnRpbWVX
YXJuaW5nLCBzb3VyY2UxKQotICAgICAgICBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2Vw
dGlvbiwgbGFtYmRhOiBweXRlc3Qud2FybnMoVXNlcldhcm5pbmcsIHNvdXJjZTIpKQotICAgICAg
ICBweXRlc3Qud2FybnMoUnVudGltZVdhcm5pbmcsIHNvdXJjZTMpCisgICAgICAgIHdpdGggcHl0
ZXN0Lndhcm5zKFB5dGVzdERlcHJlY2F0aW9uV2FybmluZykgYXMgd2FybmluZm86ICAjIHlvIGRh
d2cKKyAgICAgICAgICAgIHB5dGVzdC53YXJucyhSdW50aW1lV2FybmluZywgc291cmNlMSkKKyAg
ICAgICAgICAgIHB5dGVzdC5yYWlzZXMoCisgICAgICAgICAgICAgICAgcHl0ZXN0LmZhaWwuRXhj
ZXB0aW9uLCBsYW1iZGE6IHB5dGVzdC53YXJucyhVc2VyV2FybmluZywgc291cmNlMikKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIHB5dGVzdC53YXJucyhSdW50aW1lV2FybmluZywgc291cmNl
MykKKyAgICAgICAgYXNzZXJ0IGxlbih3YXJuaW5mbykgPT0gMworICAgICAgICBmb3IgdyBpbiB3
YXJuaW5mbzoKKyAgICAgICAgICAgIGFzc2VydCB3LmZpbGVuYW1lID09IF9fZmlsZV9fCisgICAg
ICAgICAgICAobXNnLCkgPSB3Lm1lc3NhZ2UuYXJncworICAgICAgICAgICAgYXNzZXJ0IG1zZy5z
dGFydHN3aXRoKCJ3YXJucyguLi4sICdjb2RlKGFzX2Ffc3RyaW5nKScpIGlzIGRlcHJlY2F0ZWQi
KQogCiAgICAgZGVmIHRlc3RfZnVuY3Rpb24oc2VsZik6CiAgICAgICAgIHB5dGVzdC53YXJucygK
QEAgLTM0NSwzICszNzUsMTMgQEAgY2xhc3MgVGVzdFdhcm5zKG9iamVjdCk6CiAgICAgICAgICAg
ICB3aXRoIHB5dGVzdC53YXJucyhVc2VyV2FybmluZywgbWF0Y2g9ciJhYWEiKToKICAgICAgICAg
ICAgICAgICB3YXJuaW5ncy53YXJuKCJiYmJiYmJiYmJiIiwgVXNlcldhcm5pbmcpCiAgICAgICAg
ICAgICAgICAgd2FybmluZ3Mud2FybigiY2NjY2NjY2NjYyIsIFVzZXJXYXJuaW5nKQorCisgICAg
QHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJpZ25vcmUiKQorICAgIGRlZiB0ZXN0X2Nhbl9j
YXB0dXJlX3ByZXZpb3VzbHlfd2FybmVkKHNlbGYpOgorICAgICAgICBkZWYgZigpOgorICAgICAg
ICAgICAgd2FybmluZ3Mud2FybihVc2VyV2FybmluZygib2hhaSIpKQorICAgICAgICAgICAgcmV0
dXJuIDEwCisKKyAgICAgICAgYXNzZXJ0IGYoKSA9PSAxMAorICAgICAgICBhc3NlcnQgcHl0ZXN0
Lndhcm5zKFVzZXJXYXJuaW5nLCBmKSA9PSAxMAorICAgICAgICBhc3NlcnQgcHl0ZXN0Lndhcm5z
KFVzZXJXYXJuaW5nLCBmKSA9PSAxMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X3JlcG9ydHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVwb3J0cy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41YzY4NTFlNDliZDE0MGU3OTQ4MmVlNmIyNDkzNTY5YWY5NmRhYTNkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3JlcG9ydHMucHkKQEAgLTAsMCAr
MSwzMTQgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9w
eXRlc3QucGF0aGxpYiBpbXBvcnQgUGF0aAorZnJvbSBfcHl0ZXN0LnJlcG9ydHMgaW1wb3J0IENv
bGxlY3RSZXBvcnQKK2Zyb20gX3B5dGVzdC5yZXBvcnRzIGltcG9ydCBUZXN0UmVwb3J0CisKKwor
Y2xhc3MgVGVzdFJlcG9ydFNlcmlhbGl6YXRpb24ob2JqZWN0KToKKyAgICBkZWYgdGVzdF94ZGlz
dF9sb25ncmVwcl90b19zdHJfaXNzdWVfMjQxKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIK
KyAgICAgICAgUmVnYXJkaW5nIGlzc3VlIHB5dGVzdC14ZGlzdCMyNDEKKworICAgICAgICBUaGlz
IHRlc3QgY2FtZSBvcmlnaW5hbGx5IGZyb20gdGVzdF9yZW1vdGUucHkgaW4geGRpc3QgKGNhMDMy
NjkpLgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAg
ICAgIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9hKCk6IGFzc2VydCBGYWxzZQorICAgICAgICAg
ICAgZGVmIHRlc3RfYigpOiBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJl
cHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcG9ydHMgPSByZXByZWMuZ2V0
cmVwb3J0cygicHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IikKKyAgICAgICAgYXNzZXJ0IGxlbihy
ZXBvcnRzKSA9PSA2CisgICAgICAgIHRlc3RfYV9jYWxsID0gcmVwb3J0c1sxXQorICAgICAgICBh
c3NlcnQgdGVzdF9hX2NhbGwud2hlbiA9PSAiY2FsbCIKKyAgICAgICAgYXNzZXJ0IHRlc3RfYV9j
YWxsLm91dGNvbWUgPT0gImZhaWxlZCIKKyAgICAgICAgYXNzZXJ0IHRlc3RfYV9jYWxsLl90b19q
c29uKClbImxvbmdyZXByIl1bInJlcHJ0cmFjZWJhY2siXVsic3R5bGUiXSA9PSAibG9uZyIKKyAg
ICAgICAgdGVzdF9iX2NhbGwgPSByZXBvcnRzWzRdCisgICAgICAgIGFzc2VydCB0ZXN0X2JfY2Fs
bC53aGVuID09ICJjYWxsIgorICAgICAgICBhc3NlcnQgdGVzdF9iX2NhbGwub3V0Y29tZSA9PSAi
cGFzc2VkIgorICAgICAgICBhc3NlcnQgdGVzdF9iX2NhbGwuX3RvX2pzb24oKVsibG9uZ3JlcHIi
XSBpcyBOb25lCisKKyAgICBkZWYgdGVzdF94ZGlzdF9yZXBvcnRfbG9uZ3JlcHJfcmVwcmNyYXNo
XzEzMChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiUmVnYXJkaW5nIGlzc3VlIHB5dGVzdC14
ZGlzdCMxMzAKKworICAgICAgICBUaGlzIHRlc3QgY2FtZSBvcmlnaW5hbGx5IGZyb20gdGVzdF9y
ZW1vdGUucHkgaW4geGRpc3QgKGNhMDMyNjkpLgorICAgICAgICAiIiIKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X2ZhaWwoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBGYWxzZSwgJ0V4cGVjdGVkIE1lc3NhZ2UnCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAg
ICkKKyAgICAgICAgcmVwb3J0cyA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfcnVudGVzdF9s
b2dyZXBvcnQiKQorICAgICAgICBhc3NlcnQgbGVuKHJlcG9ydHMpID09IDMKKyAgICAgICAgcmVw
ID0gcmVwb3J0c1sxXQorICAgICAgICBhZGRlZF9zZWN0aW9uID0gKCJGYWlsdXJlIE1ldGFkYXRh
Iiwgc3RyKCJtZXRhZGF0YSBtZXRhZGF0YSIpLCAiKiIpCisgICAgICAgIHJlcC5sb25ncmVwci5z
ZWN0aW9ucy5hcHBlbmQoYWRkZWRfc2VjdGlvbikKKyAgICAgICAgZCA9IHJlcC5fdG9fanNvbigp
CisgICAgICAgIGEgPSBUZXN0UmVwb3J0Ll9mcm9tX2pzb24oZCkKKyAgICAgICAgIyBDaGVjayBh
c3NlbWJsZWQgPT0gcmVwCisgICAgICAgIGFzc2VydCBhLl9fZGljdF9fLmtleXMoKSA9PSByZXAu
X19kaWN0X18ua2V5cygpCisgICAgICAgIGZvciBrZXkgaW4gcmVwLl9fZGljdF9fLmtleXMoKToK
KyAgICAgICAgICAgIGlmIGtleSAhPSAibG9uZ3JlcHIiOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBnZXRhdHRyKGEsIGtleSkgPT0gZ2V0YXR0cihyZXAsIGtleSkKKyAgICAgICAgYXNzZXJ0IHJl
cC5sb25ncmVwci5yZXByY3Jhc2gubGluZW5vID09IGEubG9uZ3JlcHIucmVwcmNyYXNoLmxpbmVu
bworICAgICAgICBhc3NlcnQgcmVwLmxvbmdyZXByLnJlcHJjcmFzaC5tZXNzYWdlID09IGEubG9u
Z3JlcHIucmVwcmNyYXNoLm1lc3NhZ2UKKyAgICAgICAgYXNzZXJ0IHJlcC5sb25ncmVwci5yZXBy
Y3Jhc2gucGF0aCA9PSBhLmxvbmdyZXByLnJlcHJjcmFzaC5wYXRoCisgICAgICAgIGFzc2VydCBy
ZXAubG9uZ3JlcHIucmVwcnRyYWNlYmFjay5lbnRyeXNlcCA9PSBhLmxvbmdyZXByLnJlcHJ0cmFj
ZWJhY2suZW50cnlzZXAKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgIHJlcC5sb25ncmVw
ci5yZXBydHJhY2ViYWNrLmV4dHJhbGluZSA9PSBhLmxvbmdyZXByLnJlcHJ0cmFjZWJhY2suZXh0
cmFsaW5lCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IHJlcC5sb25ncmVwci5yZXBydHJhY2Vi
YWNrLnN0eWxlID09IGEubG9uZ3JlcHIucmVwcnRyYWNlYmFjay5zdHlsZQorICAgICAgICBhc3Nl
cnQgcmVwLmxvbmdyZXByLnNlY3Rpb25zID09IGEubG9uZ3JlcHIuc2VjdGlvbnMKKyAgICAgICAg
IyBNaXNzaW5nIHNlY3Rpb24gYXR0cmlidXRlIFBSMTcxCisgICAgICAgIGFzc2VydCBhZGRlZF9z
ZWN0aW9uIGluIGEubG9uZ3JlcHIuc2VjdGlvbnMKKworICAgIGRlZiB0ZXN0X3JlcHJlbnRyaWVz
X3NlcmlhbGl6YXRpb25fMTcwKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJSZWdhcmRpbmcg
aXNzdWUgcHl0ZXN0LXhkaXN0IzE3MAorCisgICAgICAgIFRoaXMgdGVzdCBjYW1lIG9yaWdpbmFs
bHkgZnJvbSB0ZXN0X3JlbW90ZS5weSBpbiB4ZGlzdCAoY2EwMzI2OSkuCisgICAgICAgICIiIgor
ICAgICAgICBmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgUmVwckVudHJ5CisKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKAorICAgICAgICAgICAgIiIiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmIHRlc3RfcmVwcl9lbnRyeSgpOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB4ID0gMAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgeAorICAgICAgICAgICAgICAgICAgICAgICAgIiIiLAorICAgICAgICAg
ICAgIi0tc2hvd2xvY2FscyIsCisgICAgICAgICkKKyAgICAgICAgcmVwb3J0cyA9IHJlcHJlYy5n
ZXRyZXBvcnRzKCJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQiKQorICAgICAgICBhc3NlcnQgbGVu
KHJlcG9ydHMpID09IDMKKyAgICAgICAgcmVwID0gcmVwb3J0c1sxXQorICAgICAgICBkID0gcmVw
Ll90b19qc29uKCkKKyAgICAgICAgYSA9IFRlc3RSZXBvcnQuX2Zyb21fanNvbihkKQorCisgICAg
ICAgIHJlcF9lbnRyaWVzID0gcmVwLmxvbmdyZXByLnJlcHJ0cmFjZWJhY2sucmVwcmVudHJpZXMK
KyAgICAgICAgYV9lbnRyaWVzID0gYS5sb25ncmVwci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVz
CisgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihhX2VudHJpZXMpKToKKyAgICAgICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKHJlcF9lbnRyaWVzW2ldLCBSZXByRW50cnkpCisgICAgICAgICAgICBh
c3NlcnQgcmVwX2VudHJpZXNbaV0ubGluZXMgPT0gYV9lbnRyaWVzW2ldLmxpbmVzCisgICAgICAg
ICAgICBhc3NlcnQgcmVwX2VudHJpZXNbaV0ucmVwcmZpbGVsb2MubGluZW5vID09IGFfZW50cmll
c1tpXS5yZXByZmlsZWxvYy5saW5lbm8KKyAgICAgICAgICAgIGFzc2VydCAoCisgICAgICAgICAg
ICAgICAgcmVwX2VudHJpZXNbaV0ucmVwcmZpbGVsb2MubWVzc2FnZSA9PSBhX2VudHJpZXNbaV0u
cmVwcmZpbGVsb2MubWVzc2FnZQorICAgICAgICAgICAgKQorICAgICAgICAgICAgYXNzZXJ0IHJl
cF9lbnRyaWVzW2ldLnJlcHJmaWxlbG9jLnBhdGggPT0gYV9lbnRyaWVzW2ldLnJlcHJmaWxlbG9j
LnBhdGgKKyAgICAgICAgICAgIGFzc2VydCByZXBfZW50cmllc1tpXS5yZXByZnVuY2FyZ3MuYXJn
cyA9PSBhX2VudHJpZXNbaV0ucmVwcmZ1bmNhcmdzLmFyZ3MKKyAgICAgICAgICAgIGFzc2VydCBy
ZXBfZW50cmllc1tpXS5yZXBybG9jYWxzLmxpbmVzID09IGFfZW50cmllc1tpXS5yZXBybG9jYWxz
LmxpbmVzCisgICAgICAgICAgICBhc3NlcnQgcmVwX2VudHJpZXNbaV0uc3R5bGUgPT0gYV9lbnRy
aWVzW2ldLnN0eWxlCisKKyAgICBkZWYgdGVzdF9yZXByZW50cmllc19zZXJpYWxpemF0aW9uXzE5
NihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiUmVnYXJkaW5nIGlzc3VlIHB5dGVzdC14ZGlz
dCMxOTYKKworICAgICAgICBUaGlzIHRlc3QgY2FtZSBvcmlnaW5hbGx5IGZyb20gdGVzdF9yZW1v
dGUucHkgaW4geGRpc3QgKGNhMDMyNjkpLgorICAgICAgICAiIiIKKyAgICAgICAgZnJvbSBfcHl0
ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFJlcHJFbnRyeU5hdGl2ZQorCisgICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3JlcHJfZW50cnlfbmF0aXZlKCk6CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHggPSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydCB4CisgICAgICAgICAgICAgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAi
LS10Yj1uYXRpdmUiLAorICAgICAgICApCisgICAgICAgIHJlcG9ydHMgPSByZXByZWMuZ2V0cmVw
b3J0cygicHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IikKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBv
cnRzKSA9PSAzCisgICAgICAgIHJlcCA9IHJlcG9ydHNbMV0KKyAgICAgICAgZCA9IHJlcC5fdG9f
anNvbigpCisgICAgICAgIGEgPSBUZXN0UmVwb3J0Ll9mcm9tX2pzb24oZCkKKworICAgICAgICBy
ZXBfZW50cmllcyA9IHJlcC5sb25ncmVwci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzCisgICAg
ICAgIGFfZW50cmllcyA9IGEubG9uZ3JlcHIucmVwcnRyYWNlYmFjay5yZXByZW50cmllcworICAg
ICAgICBmb3IgaSBpbiByYW5nZShsZW4oYV9lbnRyaWVzKSk6CisgICAgICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShyZXBfZW50cmllc1tpXSwgUmVwckVudHJ5TmF0aXZlKQorICAgICAgICAgICAg
YXNzZXJ0IHJlcF9lbnRyaWVzW2ldLmxpbmVzID09IGFfZW50cmllc1tpXS5saW5lcworCisgICAg
ZGVmIHRlc3RfaXRlbXJlcG9ydF9vdXRjb21lcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIi
CisgICAgICAgIFRoaXMgdGVzdCBjYW1lIG9yaWdpbmFsbHkgZnJvbSB0ZXN0X3JlbW90ZS5weSBp
biB4ZGlzdCAoY2EwMzI2OSkuCisgICAgICAgICIiIgorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW5zb3VyY2UoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eQorICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOiBwYXNzCisgICAgICAgICAgICBkZWYgdGVz
dF9mYWlsKCk6IDAvMAorICAgICAgICAgICAgQHB5LnRlc3QubWFyay5za2lwaWYoIlRydWUiKQor
ICAgICAgICAgICAgZGVmIHRlc3Rfc2tpcCgpOiBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9z
a2lwX2ltcGVyYXRpdmUoKToKKyAgICAgICAgICAgICAgICBweS50ZXN0LnNraXAoImhlbGxvIikK
KyAgICAgICAgICAgIEBweS50ZXN0Lm1hcmsueGZhaWwoIlRydWUiKQorICAgICAgICAgICAgZGVm
IHRlc3RfeGZhaWwoKTogMC8wCisgICAgICAgICAgICBkZWYgdGVzdF94ZmFpbF9pbXBlcmF0aXZl
KCk6CisgICAgICAgICAgICAgICAgcHkudGVzdC54ZmFpbCgiaGVsbG8iKQorICAgICAgICAiIiIK
KyAgICAgICAgKQorICAgICAgICByZXBvcnRzID0gcmVwcmVjLmdldHJlcG9ydHMoInB5dGVzdF9y
dW50ZXN0X2xvZ3JlcG9ydCIpCisgICAgICAgIGFzc2VydCBsZW4ocmVwb3J0cykgPT0gMTcgICMg
d2l0aCBzZXR1cC90ZWFyZG93biAicGFzc2VkIiByZXBvcnRzCisgICAgICAgIGZvciByZXAgaW4g
cmVwb3J0czoKKyAgICAgICAgICAgIGQgPSByZXAuX3RvX2pzb24oKQorICAgICAgICAgICAgbmV3
cmVwID0gVGVzdFJlcG9ydC5fZnJvbV9qc29uKGQpCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVw
LnBhc3NlZCA9PSByZXAucGFzc2VkCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLmZhaWxlZCA9
PSByZXAuZmFpbGVkCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLnNraXBwZWQgPT0gcmVwLnNr
aXBwZWQKKyAgICAgICAgICAgIGlmIG5ld3JlcC5za2lwcGVkIGFuZCBub3QgaGFzYXR0cihuZXdy
ZXAsICJ3YXN4ZmFpbCIpOgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4obmV3cmVwLmxvbmdy
ZXByKSA9PSAzCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLm91dGNvbWUgPT0gcmVwLm91dGNv
bWUKKyAgICAgICAgICAgIGFzc2VydCBuZXdyZXAud2hlbiA9PSByZXAud2hlbgorICAgICAgICAg
ICAgYXNzZXJ0IG5ld3JlcC5rZXl3b3JkcyA9PSByZXAua2V5d29yZHMKKyAgICAgICAgICAgIGlm
IHJlcC5mYWlsZWQ6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5ld3JlcC5sb25ncmVwcnRleHQg
PT0gcmVwLmxvbmdyZXBydGV4dAorCisgICAgZGVmIHRlc3RfY29sbGVjdHJlcG9ydF9wYXNzZWQo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRoaXMgdGVzdCBjYW1lIG9yaWdpbmFsbHkgZnJv
bSB0ZXN0X3JlbW90ZS5weSBpbiB4ZGlzdCAoY2EwMzI2OSkuIiIiCisgICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAg
ICAgcmVwb3J0cyA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfY29sbGVjdHJlcG9ydCIpCisg
ICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoKKyAgICAgICAgICAgIGQgPSByZXAuX3RvX2pzb24o
KQorICAgICAgICAgICAgbmV3cmVwID0gQ29sbGVjdFJlcG9ydC5fZnJvbV9qc29uKGQpCisgICAg
ICAgICAgICBhc3NlcnQgbmV3cmVwLnBhc3NlZCA9PSByZXAucGFzc2VkCisgICAgICAgICAgICBh
c3NlcnQgbmV3cmVwLmZhaWxlZCA9PSByZXAuZmFpbGVkCisgICAgICAgICAgICBhc3NlcnQgbmV3
cmVwLnNraXBwZWQgPT0gcmVwLnNraXBwZWQKKworICAgIGRlZiB0ZXN0X2NvbGxlY3RyZXBvcnRf
ZmFpbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGhpcyB0ZXN0IGNhbWUgb3JpZ2luYWxs
eSBmcm9tIHRlc3RfcmVtb3RlLnB5IGluIHhkaXN0IChjYTAzMjY5KS4iIiIKKyAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCJxd2UgYWJjIikKKyAgICAgICAgcmVwb3J0
cyA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfY29sbGVjdHJlcG9ydCIpCisgICAgICAgIGFz
c2VydCByZXBvcnRzCisgICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoKKyAgICAgICAgICAgIGQg
PSByZXAuX3RvX2pzb24oKQorICAgICAgICAgICAgbmV3cmVwID0gQ29sbGVjdFJlcG9ydC5fZnJv
bV9qc29uKGQpCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLnBhc3NlZCA9PSByZXAucGFzc2Vk
CisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLmZhaWxlZCA9PSByZXAuZmFpbGVkCisgICAgICAg
ICAgICBhc3NlcnQgbmV3cmVwLnNraXBwZWQgPT0gcmVwLnNraXBwZWQKKyAgICAgICAgICAgIGlm
IHJlcC5mYWlsZWQ6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5ld3JlcC5sb25ncmVwciA9PSBz
dHIocmVwLmxvbmdyZXByKQorCisgICAgZGVmIHRlc3RfZXh0ZW5kZWRfcmVwb3J0X2Rlc2VyaWFs
aXphdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGhpcyB0ZXN0IGNhbWUgb3JpZ2lu
YWxseSBmcm9tIHRlc3RfcmVtb3RlLnB5IGluIHhkaXN0IChjYTAzMjY5KS4iIiIKKyAgICAgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCJxd2UgYWJjIikKKyAgICAgICAgcmVw
b3J0cyA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfY29sbGVjdHJlcG9ydCIpCisgICAgICAg
IGFzc2VydCByZXBvcnRzCisgICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoKKyAgICAgICAgICAg
IHJlcC5leHRyYSA9IFRydWUKKyAgICAgICAgICAgIGQgPSByZXAuX3RvX2pzb24oKQorICAgICAg
ICAgICAgbmV3cmVwID0gQ29sbGVjdFJlcG9ydC5fZnJvbV9qc29uKGQpCisgICAgICAgICAgICBh
c3NlcnQgbmV3cmVwLmV4dHJhCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLnBhc3NlZCA9PSBy
ZXAucGFzc2VkCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLmZhaWxlZCA9PSByZXAuZmFpbGVk
CisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLnNraXBwZWQgPT0gcmVwLnNraXBwZWQKKyAgICAg
ICAgICAgIGlmIHJlcC5mYWlsZWQ6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5ld3JlcC5sb25n
cmVwciA9PSBzdHIocmVwLmxvbmdyZXByKQorCisgICAgZGVmIHRlc3RfcGF0aHNfc3VwcG9ydChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiUmVwb3J0IGF0dHJpYnV0ZXMgd2hpY2ggYXJlIHB5
LnBhdGggb3IgcGF0aGxpYiBvYmplY3RzIHNob3VsZCBiZWNvbWUgc3RyaW5ncy4iIiIKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYg
dGVzdF9hKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICIiIgorICAg
ICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJl
cG9ydHMgPSByZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IikKKyAg
ICAgICAgYXNzZXJ0IGxlbihyZXBvcnRzKSA9PSAzCisgICAgICAgIHRlc3RfYV9jYWxsID0gcmVw
b3J0c1sxXQorICAgICAgICB0ZXN0X2FfY2FsbC5wYXRoMSA9IHRlc3RkaXIudG1wZGlyCisgICAg
ICAgIHRlc3RfYV9jYWxsLnBhdGgyID0gUGF0aCh0ZXN0ZGlyLnRtcGRpcikKKyAgICAgICAgZGF0
YSA9IHRlc3RfYV9jYWxsLl90b19qc29uKCkKKyAgICAgICAgYXNzZXJ0IGRhdGFbInBhdGgxIl0g
PT0gc3RyKHRlc3RkaXIudG1wZGlyKQorICAgICAgICBhc3NlcnQgZGF0YVsicGF0aDIiXSA9PSBz
dHIodGVzdGRpci50bXBkaXIpCisKKyAgICBkZWYgdGVzdF91bnNlcmlhbGl6YXRpb25fZmFpbHVy
ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiQ2hlY2sgaGFuZGxpbmcgb2YgZmFpbHVyZSBk
dXJpbmcgdW5zZXJpYWxpemF0aW9uIG9mIHJlcG9ydCB0eXBlcy4iIiIKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9hKCk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICIiIgorICAgICAgICApCisg
ICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcG9ydHMgPSBy
ZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IikKKyAgICAgICAgYXNz
ZXJ0IGxlbihyZXBvcnRzKSA9PSAzCisgICAgICAgIHRlc3RfYV9jYWxsID0gcmVwb3J0c1sxXQor
ICAgICAgICBkYXRhID0gdGVzdF9hX2NhbGwuX3RvX2pzb24oKQorICAgICAgICBlbnRyeSA9IGRh
dGFbImxvbmdyZXByIl1bInJlcHJ0cmFjZWJhY2siXVsicmVwcmVudHJpZXMiXVswXQorICAgICAg
ICBhc3NlcnQgZW50cnlbInR5cGUiXSA9PSAiUmVwckVudHJ5IgorCisgICAgICAgIGVudHJ5WyJ0
eXBlIl0gPSAiVW5rbm93biIKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKAorICAgICAgICAg
ICAgUnVudGltZUVycm9yLCBtYXRjaD0iSU5URVJOQUxFUlJPUjogVW5rbm93biBlbnRyeSB0eXBl
IHJldHVybmVkOiBVbmtub3duIgorICAgICAgICApOgorICAgICAgICAgICAgVGVzdFJlcG9ydC5f
ZnJvbV9qc29uKGRhdGEpCisKKworY2xhc3MgVGVzdEhvb2tzOgorICAgICIiIlRlc3QgdGhhdCB0
aGUgaG9va3MgYXJlIHdvcmtpbmcgY29ycmVjdGx5IGZvciBwbHVnaW5zIiIiCisKKyAgICBkZWYg
dGVzdF90ZXN0X3JlcG9ydChzZWxmLCB0ZXN0ZGlyLCBweXRlc3Rjb25maWcpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2EoKTogYXNzZXJ0IEZhbHNlCisgICAgICAgICAgICBkZWYgdGVzdF9iKCk6IHBhc3MKKyAgICAg
ICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkK
KyAgICAgICAgcmVwb3J0cyA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfcnVudGVzdF9sb2dy
ZXBvcnQiKQorICAgICAgICBhc3NlcnQgbGVuKHJlcG9ydHMpID09IDYKKyAgICAgICAgZm9yIHJl
cCBpbiByZXBvcnRzOgorICAgICAgICAgICAgZGF0YSA9IHB5dGVzdGNvbmZpZy5ob29rLnB5dGVz
dF9yZXBvcnRfdG9fc2VyaWFsaXphYmxlKAorICAgICAgICAgICAgICAgIGNvbmZpZz1weXRlc3Rj
b25maWcsIHJlcG9ydD1yZXAKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGFzc2VydCBkYXRh
WyJfcmVwb3J0X3R5cGUiXSA9PSAiVGVzdFJlcG9ydCIKKyAgICAgICAgICAgIG5ld19yZXAgPSBw
eXRlc3Rjb25maWcuaG9vay5weXRlc3RfcmVwb3J0X2Zyb21fc2VyaWFsaXphYmxlKAorICAgICAg
ICAgICAgICAgIGNvbmZpZz1weXRlc3Rjb25maWcsIGRhdGE9ZGF0YQorICAgICAgICAgICAgKQor
ICAgICAgICAgICAgYXNzZXJ0IG5ld19yZXAubm9kZWlkID09IHJlcC5ub2RlaWQKKyAgICAgICAg
ICAgIGFzc2VydCBuZXdfcmVwLndoZW4gPT0gcmVwLndoZW4KKyAgICAgICAgICAgIGFzc2VydCBu
ZXdfcmVwLm91dGNvbWUgPT0gcmVwLm91dGNvbWUKKworICAgIGRlZiB0ZXN0X2NvbGxlY3RfcmVw
b3J0KHNlbGYsIHRlc3RkaXIsIHB5dGVzdGNvbmZpZyk6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfYSgpOiBhc3NlcnQg
RmFsc2UKKyAgICAgICAgICAgIGRlZiB0ZXN0X2IoKTogcGFzcworICAgICAgICAiIiIKKyAgICAg
ICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXBv
cnRzID0gcmVwcmVjLmdldHJlcG9ydHMoInB5dGVzdF9jb2xsZWN0cmVwb3J0IikKKyAgICAgICAg
YXNzZXJ0IGxlbihyZXBvcnRzKSA9PSAyCisgICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoKKyAg
ICAgICAgICAgIGRhdGEgPSBweXRlc3Rjb25maWcuaG9vay5weXRlc3RfcmVwb3J0X3RvX3Nlcmlh
bGl6YWJsZSgKKyAgICAgICAgICAgICAgICBjb25maWc9cHl0ZXN0Y29uZmlnLCByZXBvcnQ9cmVw
CisgICAgICAgICAgICApCisgICAgICAgICAgICBhc3NlcnQgZGF0YVsiX3JlcG9ydF90eXBlIl0g
PT0gIkNvbGxlY3RSZXBvcnQiCisgICAgICAgICAgICBuZXdfcmVwID0gcHl0ZXN0Y29uZmlnLmhv
b2sucHl0ZXN0X3JlcG9ydF9mcm9tX3NlcmlhbGl6YWJsZSgKKyAgICAgICAgICAgICAgICBjb25m
aWc9cHl0ZXN0Y29uZmlnLCBkYXRhPWRhdGEKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGFz
c2VydCBuZXdfcmVwLm5vZGVpZCA9PSByZXAubm9kZWlkCisgICAgICAgICAgICBhc3NlcnQgbmV3
X3JlcC53aGVuID09ICJjb2xsZWN0IgorICAgICAgICAgICAgYXNzZXJ0IG5ld19yZXAub3V0Y29t
ZSA9PSByZXAub3V0Y29tZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAg
ICAiaG9va19uYW1lIiwgWyJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQiLCAicHl0ZXN0X2NvbGxl
Y3RyZXBvcnQiXQorICAgICkKKyAgICBkZWYgdGVzdF9pbnZhbGlkX3JlcG9ydF90eXBlcyhzZWxm
LCB0ZXN0ZGlyLCBweXRlc3Rjb25maWcsIGhvb2tfbmFtZSk6CisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfYSgpOiBwYXNz
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4oKQorICAgICAgICByZXBvcnRzID0gcmVwcmVjLmdldHJlcG9ydHMoaG9va19uYW1l
KQorICAgICAgICBhc3NlcnQgcmVwb3J0cworICAgICAgICByZXAgPSByZXBvcnRzWzBdCisgICAg
ICAgIGRhdGEgPSBweXRlc3Rjb25maWcuaG9vay5weXRlc3RfcmVwb3J0X3RvX3NlcmlhbGl6YWJs
ZSgKKyAgICAgICAgICAgIGNvbmZpZz1weXRlc3Rjb25maWcsIHJlcG9ydD1yZXAKKyAgICAgICAg
KQorICAgICAgICBkYXRhWyJfcmVwb3J0X3R5cGUiXSA9ICJVbmtub3duIgorICAgICAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IpOgorICAgICAgICAgICAgXyA9IHB5dGVzdGNv
bmZpZy5ob29rLnB5dGVzdF9yZXBvcnRfZnJvbV9zZXJpYWxpemFibGUoCisgICAgICAgICAgICAg
ICAgY29uZmlnPXB5dGVzdGNvbmZpZywgZGF0YT1kYXRhCisgICAgICAgICAgICApCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVzdWx0bG9nLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X3Jlc3VsdGxvZy5weQppbmRleCAxNzMzODRmZmIzMGJmNjMyZTI5MDkxNGQ4
MDY0OGExYmM3NTg3NGYxLi4xZWY0OWQ1ZTJkOThmZDc2YjRjMWVmMDMwYjBmOTIwZDVjZTFhNzdm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVzdWx0bG9nLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9yZXN1bHRsb2cucHkKQEAgLTEsNDEgKzEsMTkgQEAK
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgb3MKIAotaW1wb3J0IF9w
eXRlc3QuX2NvZGUKIGltcG9ydCBweQotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0Lm5vZGVz
IGltcG9ydCBOb2RlLCBJdGVtLCBGU0NvbGxlY3RvcgotZnJvbSBfcHl0ZXN0LnJlc3VsdGxvZyBp
bXBvcnQgKAotICAgIGdlbmVyaWNfcGF0aCwKLSAgICBSZXN1bHRMb2csCi0gICAgcHl0ZXN0X2Nv
bmZpZ3VyZSwKLSAgICBweXRlc3RfdW5jb25maWd1cmUsCi0pCi0KLQotZGVmIHRlc3RfZ2VuZXJp
Y19wYXRoKHRlc3RkaXIpOgotICAgIGZyb20gX3B5dGVzdC5tYWluIGltcG9ydCBTZXNzaW9uCiAK
LSAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKLSAgICBzZXNzaW9uID0gU2Vzc2lv
bihjb25maWcpCi0gICAgcDEgPSBOb2RlKCJhIiwgY29uZmlnPWNvbmZpZywgc2Vzc2lvbj1zZXNz
aW9uLCBub2RlaWQ9ImEiKQotICAgICMgYXNzZXJ0IHAxLmZzcGF0aCBpcyBOb25lCi0gICAgcDIg
PSBOb2RlKCJCIiwgcGFyZW50PXAxKQotICAgIHAzID0gTm9kZSgiKCkiLCBwYXJlbnQ9cDIpCi0g
ICAgaXRlbSA9IEl0ZW0oImMiLCBwYXJlbnQ9cDMpCi0KLSAgICByZXMgPSBnZW5lcmljX3BhdGgo
aXRlbSkKLSAgICBhc3NlcnQgcmVzID09ICJhLkIoKS5jIgotCi0gICAgcDAgPSBGU0NvbGxlY3Rv
cigicHJvai90ZXN0IiwgY29uZmlnPWNvbmZpZywgc2Vzc2lvbj1zZXNzaW9uKQotICAgIHAxID0g
RlNDb2xsZWN0b3IoInByb2ovdGVzdC9hIiwgcGFyZW50PXAwKQotICAgIHAyID0gTm9kZSgiQiIs
IHBhcmVudD1wMSkKLSAgICBwMyA9IE5vZGUoIigpIiwgcGFyZW50PXAyKQotICAgIHA0ID0gTm9k
ZSgiYyIsIHBhcmVudD1wMykKLSAgICBpdGVtID0gSXRlbSgiWzFdIiwgcGFyZW50PXA0KQoraW1w
b3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdC5yZXN1bHRsb2cg
aW1wb3J0IHB5dGVzdF9jb25maWd1cmUKK2Zyb20gX3B5dGVzdC5yZXN1bHRsb2cgaW1wb3J0IHB5
dGVzdF91bmNvbmZpZ3VyZQorZnJvbSBfcHl0ZXN0LnJlc3VsdGxvZyBpbXBvcnQgUmVzdWx0TG9n
CiAKLSAgICByZXMgPSBnZW5lcmljX3BhdGgoaXRlbSkKLSAgICBhc3NlcnQgcmVzID09ICJ0ZXN0
L2E6QigpLmNbMV0iCitweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImln
bm9yZTotLXJlc3VsdC1sb2cgaXMgZGVwcmVjYXRlZCIpCiAKIAogZGVmIHRlc3Rfd3JpdGVfbG9n
X2VudHJ5KCk6CkBAIC0xNDQsNyArMTIyLDcgQEAgY2xhc3MgVGVzdFdpdGhGdW5jdGlvbkludGVn
cmF0aW9uKG9iamVjdCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IKICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICBleGNpbmZvID0gX3B5
dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0
Ll9jb2RlLkV4Y2VwdGlvbkluZm8uZnJvbV9jdXJyZW50KCkKICAgICAgICAgcmVzbG9nID0gUmVz
dWx0TG9nKE5vbmUsIHB5LmlvLlRleHRJTygpKQogICAgICAgICByZXNsb2cucHl0ZXN0X2ludGVy
bmFsZXJyb3IoZXhjaW5mby5nZXRyZXByKHN0eWxlPXN0eWxlKSkKICAgICAgICAgZW50cnkgPSBy
ZXNsb2cubG9nZmlsZS5nZXR2YWx1ZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfcnVubmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3J1bm5lci5weQppbmRl
eCBmNTQzMGE5MGRhNTMzZGU5Mzk4ODM0ODFlYzYyYzkzNDRlYzRjOGQ3Li42OTA2ZWZiOTEwYzg4
YjMxNTgxZDAwZWNlNjA2ZGIyZGQ4ZjY0NzYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfcnVubmVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXIu
cHkKQEAgLTEsMTggKzEsMjQgQEAKICMgLSotIGNvZGluZzogdXRmLTggLSotCi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCi1p
bXBvcnQgX3B5dGVzdC5fY29kZQogaW1wb3J0IGluc3BlY3QKIGltcG9ydCBvcwotaW1wb3J0IHB5
Ci1pbXBvcnQgcHl0ZXN0CiBpbXBvcnQgc3lzCiBpbXBvcnQgdHlwZXMKLWZyb20gX3B5dGVzdCBp
bXBvcnQgcnVubmVyLCBtYWluLCBvdXRjb21lcwogCitpbXBvcnQgcHkKKworaW1wb3J0IF9weXRl
c3QuX2NvZGUKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdCBpbXBvcnQgbWFpbgorZnJvbSBf
cHl0ZXN0IGltcG9ydCBvdXRjb21lcworZnJvbSBfcHl0ZXN0IGltcG9ydCByZXBvcnRzCitmcm9t
IF9weXRlc3QgaW1wb3J0IHJ1bm5lcgogCi1jbGFzcyBUZXN0U2V0dXBTdGF0ZShvYmplY3QpOgog
CitjbGFzcyBUZXN0U2V0dXBTdGF0ZShvYmplY3QpOgogICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYs
IHRlc3RkaXIpOgogICAgICAgICBzcyA9IHJ1bm5lci5TZXR1cFN0YXRlKCkKICAgICAgICAgaXRl
bSA9IHRlc3RkaXIuZ2V0aXRlbSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKQEAgLTEwMSw3ICsx
MDcsNiBAQCBjbGFzcyBUZXN0U2V0dXBTdGF0ZShvYmplY3QpOgogCiAKIGNsYXNzIEJhc2VGdW5j
dGlvbmFsVGVzdHMob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X3Bhc3NmdW5jdGlvbihzZWxmLCB0
ZXN0ZGlyKToKICAgICAgICAgcmVwb3J0cyA9IHRlc3RkaXIucnVuaXRlbSgKICAgICAgICAgICAg
ICIiIgpAQCAtMjUzLDEwICsyNTgsMTAgQEAgY2xhc3MgQmFzZUZ1bmN0aW9uYWxUZXN0cyhvYmpl
Y3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICByZXBzID0gcmVjLmdldGNhbGxz
KCJweXRlc3RfcnVudGVzdF9sb2dzdGFydCBweXRlc3RfcnVudGVzdF9sb2dmaW5pc2giKQotICAg
ICAgICBhc3NlcnQgKAotICAgICAgICAgICAgW3guX25hbWUgZm9yIHggaW4gcmVwc10KLSAgICAg
ICAgICAgID09IFsicHl0ZXN0X3J1bnRlc3RfbG9nc3RhcnQiLCAicHl0ZXN0X3J1bnRlc3RfbG9n
ZmluaXNoIl0KLSAgICAgICAgKQorICAgICAgICBhc3NlcnQgW3guX25hbWUgZm9yIHggaW4gcmVw
c10gPT0gWworICAgICAgICAgICAgInB5dGVzdF9ydW50ZXN0X2xvZ3N0YXJ0IiwKKyAgICAgICAg
ICAgICJweXRlc3RfcnVudGVzdF9sb2dmaW5pc2giLAorICAgICAgICBdCiAgICAgICAgIGZvciBy
ZXAgaW4gcmVwczoKICAgICAgICAgICAgIGFzc2VydCByZXAubm9kZWlkID09ICJ0ZXN0X2xvZ3N0
YXJ0X2xvZ2ZpbmlzaF9ob29rcy5weTo6dGVzdF9mdW5jIgogICAgICAgICAgICAgYXNzZXJ0IHJl
cC5sb2NhdGlvbiA9PSAoInRlc3RfbG9nc3RhcnRfbG9nZmluaXNoX2hvb2tzLnB5IiwgMSwgInRl
c3RfZnVuYyIpCkBAIC0zOTUsOSArNDAwLDcgQEAgY2xhc3MgQmFzZUZ1bmN0aW9uYWxUZXN0cyhv
YmplY3QpOgogCiAKIGNsYXNzIFRlc3RFeGVjdXRpb25Ob25Gb3JrZWQoQmFzZUZ1bmN0aW9uYWxU
ZXN0cyk6Ci0KICAgICBkZWYgZ2V0cnVubmVyKHNlbGYpOgotCiAgICAgICAgIGRlZiBmKGl0ZW0p
OgogICAgICAgICAgICAgcmV0dXJuIHJ1bm5lci5ydW50ZXN0cHJvdG9jb2woaXRlbSwgbG9nPUZh
bHNlKQogCkBAIC00MzksNyArNDQyLDYgQEAgY2xhc3MgVGVzdEV4ZWN1dGlvbkZvcmtlZChCYXNl
RnVuY3Rpb25hbFRlc3RzKToKIAogCiBjbGFzcyBUZXN0U2Vzc2lvblJlcG9ydHMob2JqZWN0KToK
LQogICAgIGRlZiB0ZXN0X2NvbGxlY3RfcmVzdWx0KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBj
b2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgKICAgICAgICAgICAgICIiIgpAQCAtNDYzLDEyICs0
NjUsNyBAQCBjbGFzcyBUZXN0U2Vzc2lvblJlcG9ydHMob2JqZWN0KToKICAgICAgICAgYXNzZXJ0
IHJlc1sxXS5uYW1lID09ICJUZXN0Q2xhc3MiCiAKIAotcmVwb3J0dHlwZXMgPSBbCi0gICAgcnVu
bmVyLkJhc2VSZXBvcnQsCi0gICAgcnVubmVyLlRlc3RSZXBvcnQsCi0gICAgcnVubmVyLlRlYXJk
b3duRXJyb3JSZXBvcnQsCi0gICAgcnVubmVyLkNvbGxlY3RSZXBvcnQsCi1dCityZXBvcnR0eXBl
cyA9IFtyZXBvcnRzLkJhc2VSZXBvcnQsIHJlcG9ydHMuVGVzdFJlcG9ydCwgcmVwb3J0cy5Db2xs
ZWN0UmVwb3J0XQogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKQEAgLTQ4NSwxMyArNDgy
LDE2IEBAIGRlZiB0ZXN0X3JlcG9ydF9leHRyYV9wYXJhbWV0ZXJzKHJlcG9ydHR5cGUpOgogCiAK
IGRlZiB0ZXN0X2NhbGxpbmZvKCk6Ci0gICAgY2kgPSBydW5uZXIuQ2FsbEluZm8obGFtYmRhOiAw
LCAiMTIzIikKKyAgICBjaSA9IHJ1bm5lci5DYWxsSW5mby5mcm9tX2NhbGwobGFtYmRhOiAwLCAi
MTIzIikKICAgICBhc3NlcnQgY2kud2hlbiA9PSAiMTIzIgogICAgIGFzc2VydCBjaS5yZXN1bHQg
PT0gMAogICAgIGFzc2VydCAicmVzdWx0IiBpbiByZXByKGNpKQotICAgIGNpID0gcnVubmVyLkNh
bGxJbmZvKGxhbWJkYTogMCAvIDAsICIxMjMiKQorICAgIGFzc2VydCByZXByKGNpKSA9PSAiPENh
bGxJbmZvIHdoZW49JzEyMycgcmVzdWx0OiAwPiIKKworICAgIGNpID0gcnVubmVyLkNhbGxJbmZv
LmZyb21fY2FsbChsYW1iZGE6IDAgLyAwLCAiMTIzIikKICAgICBhc3NlcnQgY2kud2hlbiA9PSAi
MTIzIgogICAgIGFzc2VydCBub3QgaGFzYXR0cihjaSwgInJlc3VsdCIpCisgICAgYXNzZXJ0IHJl
cHIoY2kpID09ICI8Q2FsbEluZm8gd2hlbj0nMTIzJyBleGNlcHRpb246IGRpdmlzaW9uIGJ5IHpl
cm8+IgogICAgIGFzc2VydCBjaS5leGNpbmZvCiAgICAgYXNzZXJ0ICJleGMiIGluIHJlcHIoY2kp
CiAKQEAgLTU0NiwyMCArNTQ2LDE2IEBAIGRlZiB0ZXN0X291dGNvbWVleGNlcHRpb25fcGFzc2Vz
X2V4Y2VwdF9FeGNlcHRpb24oKToKIAogCiBkZWYgdGVzdF9weXRlc3RfZXhpdCgpOgotICAgIHRy
eToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmV4aXQuRXhjZXB0aW9uKSBhcyBleGNp
bmZvOgogICAgICAgICBweXRlc3QuZXhpdCgiaGVsbG8iKQotICAgIGV4Y2VwdCBweXRlc3QuZXhp
dC5FeGNlcHRpb246Ci0gICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbklu
Zm8oKQotICAgICAgICBhc3NlcnQgZXhjaW5mby5lcnJpc2luc3RhbmNlKEtleWJvYXJkSW50ZXJy
dXB0KQorICAgIGFzc2VydCBleGNpbmZvLmVycmlzaW5zdGFuY2UocHl0ZXN0LmV4aXQuRXhjZXB0
aW9uKQogCiAKIGRlZiB0ZXN0X3B5dGVzdF9mYWlsKCk6Ci0gICAgdHJ5OgorICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24pIGFzIGV4Y2luZm86CiAgICAgICAgIHB5
dGVzdC5mYWlsKCJoZWxsbyIpCi0gICAgZXhjZXB0IHB5dGVzdC5mYWlsLkV4Y2VwdGlvbjoKLSAg
ICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCi0gICAgICAgIHMg
PSBleGNpbmZvLmV4Y29ubHkodHJ5c2hvcnQ9VHJ1ZSkKLSAgICAgICAgYXNzZXJ0IHMuc3RhcnRz
d2l0aCgiRmFpbGVkIikKKyAgICBzID0gZXhjaW5mby5leGNvbmx5KHRyeXNob3J0PVRydWUpCisg
ICAgYXNzZXJ0IHMuc3RhcnRzd2l0aCgiRmFpbGVkIikKIAogCiBkZWYgdGVzdF9weXRlc3RfZXhp
dF9tc2codGVzdGRpcik6CkBAIC01NzUsNyArNTcxLDQzIEBAIGRlZiB0ZXN0X3B5dGVzdF9leGl0
X21zZyh0ZXN0ZGlyKToKICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWyJFeGl0OiBv
aCBub2VzIl0pCiAKIAotZGVmIHRlc3RfcHl0ZXN0X2ZhaWxfbm90cmFjZSh0ZXN0ZGlyKToKK2Rl
ZiB0ZXN0X3B5dGVzdF9leGl0X3JldHVybmNvZGUodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYg
dGVzdF9mb28oKToKKyAgICAgICAgICAgIHB5dGVzdC5leGl0KCJzb21lIGV4aXQgbXNnIiwgOTkp
CisgICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqISAqRXhpdDogc29tZSBleGl0IG1zZyAhKiJd
KQorICAgICMgQXNzZXJ0IG5vIG91dHB1dCBvbiBzdGRlcnIsIGV4Y2VwdCBmb3IgdW5yZWxpYWJs
ZSBSZXNvdXJjZVdhcm5pbmdzLgorICAgICMgKGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNTA4OCkKKyAgICBhc3NlcnQgWworICAgICAgICB4CisgICAgICAgIGZv
ciB4IGluIHJlc3VsdC5zdGRlcnIubGluZXMKKyAgICAgICAgaWYgbm90IHguc3RhcnRzd2l0aCgi
RXhjZXB0aW9uIGlnbm9yZWQgaW46IikKKyAgICAgICAgYW5kIG5vdCB4LnN0YXJ0c3dpdGgoIlJl
c291cmNlV2FybmluZyIpCisgICAgXSA9PSBbIiJdCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
OTkKKworICAgICMgSXQgcHJpbnRzIHRvIHN0ZGVyciBhbHNvIGluIGNhc2Ugb2YgZXhpdCBkdXJp
bmcgcHl0ZXN0X3Nlc3Npb25zdGFydC4KKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAg
ICAgIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICBkZWYgcHl0ZXN0X3Nlc3Np
b25zdGFydCgpOgorICAgICAgICAgICAgcHl0ZXN0LmV4aXQoImR1cmluZ19zZXNzaW9uc3RhcnQi
LCA5OCkKKyAgICAgICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqISAqRXhpdDogZHVyaW5nX3Nl
c3Npb25zdGFydCAhKiJdKQorICAgIGFzc2VydCByZXN1bHQuc3RkZXJyLmxpbmVzID09IFsiRXhp
dDogZHVyaW5nX3Nlc3Npb25zdGFydCIsICIiXQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDk4
CisKKworZGVmIHRlc3RfcHl0ZXN0X2ZhaWxfbm90cmFjZV9ydW50ZXN0KHRlc3RkaXIpOgorICAg
ICIiIlRlc3QgcHl0ZXN0LmZhaWwoLi4uLCBweXRyYWNlPUZhbHNlKSBkb2VzIG5vdCBzaG93IHRy
YWNlYmFja3MgZHVyaW5nIHRlc3QgcnVuLiIiIgogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAg
ICAgICAgIiIiCiAgICAgICAgIGltcG9ydCBweXRlc3QKQEAgLTU5MCw2ICs2MjIsMjEgQEAgZGVm
IHRlc3RfcHl0ZXN0X2ZhaWxfbm90cmFjZSh0ZXN0ZGlyKToKICAgICBhc3NlcnQgImRlZiB0ZWFy
ZG93bl9mdW5jdGlvbiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKIAogCitkZWYgdGVzdF9w
eXRlc3RfZmFpbF9ub3RyYWNlX2NvbGxlY3Rpb24odGVzdGRpcik6CisgICAgIiIiVGVzdCBweXRl
c3QuZmFpbCguLi4sIHB5dHJhY2U9RmFsc2UpIGRvZXMgbm90IHNob3cgdHJhY2ViYWNrcyBkdXJp
bmcgY29sbGVjdGlvbi4iIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgor
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGRlZiBzb21lX2ludGVybmFsX2Z1bmN0aW9u
KCk6CisgICAgICAgICAgICBweXRlc3QuZmFpbCgiaGVsbG8iLCBweXRyYWNlPUZhbHNlKQorICAg
ICAgICBzb21lX2ludGVybmFsX2Z1bmN0aW9uKCkKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
ImhlbGxvIl0pCisgICAgYXNzZXJ0ICJkZWYgc29tZV9pbnRlcm5hbF9mdW5jdGlvbigpIiBub3Qg
aW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3Ry
X3ByZWZpeCIsIFsidSIsICIiXSkKIGRlZiB0ZXN0X3B5dGVzdF9mYWlsX25vdHJhY2Vfbm9uX2Fz
Y2lpKHRlc3RkaXIsIHN0cl9wcmVmaXgpOgogICAgICIiIkZpeCBweXRlc3QuZmFpbCB3aXRoIHB5
dHJhY2U9RmFsc2Ugd2l0aCBub24tYXNjaWkgY2hhcmFjdGVycyAoIzExNzgpLgpAQCAtNTk4LDcg
KzY0NSw3IEBAIGRlZiB0ZXN0X3B5dGVzdF9mYWlsX25vdHJhY2Vfbm9uX2FzY2lpKHRlc3RkaXIs
IHN0cl9wcmVmaXgpOgogICAgICIiIgogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAg
dSIiIgotICAgICAgICAjIGNvZGluZzogdXRmLTgKKyAgICAgICAgIyAtKi0gY29kaW5nOiB1dGYt
OCAtKi0KICAgICAgICAgaW1wb3J0IHB5dGVzdAogCiAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6
CkBAIC02MTYsNyArNjYzLDcgQEAgZGVmIHRlc3RfcHl0ZXN0X2ZhaWxfbm90cmFjZV9ub25fYXNj
aWkodGVzdGRpciwgc3RyX3ByZWZpeCk6CiAKIGRlZiB0ZXN0X3B5dGVzdF9ub190ZXN0c19jb2xs
ZWN0ZWRfZXhpdF9zdGF0dXModGVzdGRpcik6CiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKmNvbGxlY3RlZCAwIGl0ZW1z
KiIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmNvbGxlY3RlZCAwIGl0ZW1z
KiJdKQogICAgIGFzc2VydCByZXN1bHQucmV0ID09IG1haW4uRVhJVF9OT1RFU1RTQ09MTEVDVEVE
CiAKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBAIC02MjYsMTMgKzY3MywxMyBAQCBkZWYgdGVz
dF9weXRlc3Rfbm9fdGVzdHNfY29sbGVjdGVkX2V4aXRfc3RhdHVzKHRlc3RkaXIpOgogICAgICIi
IgogICAgICkKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKCIqY29sbGVjdGVkIDEgaXRlbSoiKQotICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcygiKjEgcGFzc2VkKiIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKmNvbGxlY3RlZCAxIGl0ZW0qIl0pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKjEgcGFzc2VkKiJdKQogICAgIGFzc2VydCByZXN1bHQucmV0ID09IG1haW4uRVhJ
VF9PSwogCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1rIG5vbm1hdGNoIikKLSAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIipjb2xsZWN0ZWQgMSBpdGVtKiIpCi0gICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMSBkZXNlbGVjdGVkKiIpCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmNvbGxlY3RlZCAxIGl0ZW0qIl0pCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgZGVzZWxlY3RlZCoiXSkKICAgICBhc3NlcnQgcmVz
dWx0LnJldCA9PSBtYWluLkVYSVRfTk9URVNUU0NPTExFQ1RFRAogCiAKQEAgLTY0MCw3ICs2ODcs
NyBAQCBkZWYgdGVzdF9leGNlcHRpb25fcHJpbnRpbmdfc2tpcCgpOgogICAgIHRyeToKICAgICAg
ICAgcHl0ZXN0LnNraXAoImhlbGxvIikKICAgICBleGNlcHQgcHl0ZXN0LnNraXAuRXhjZXB0aW9u
OgotICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAg
ICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKQog
ICAgICAgICBzID0gZXhjaW5mby5leGNvbmx5KHRyeXNob3J0PVRydWUpCiAgICAgICAgIGFzc2Vy
dCBzLnN0YXJ0c3dpdGgoIlNraXBwZWQiKQogCkBAIC02NjEsMjEgKzcwOCwxNyBAQCBkZWYgdGVz
dF9pbXBvcnRvcnNraXAobW9ua2V5cGF0Y2gpOgogICAgICAgICAjIGNoZWNrIHRoYXQgaW1wb3J0
b3Jza2lwIHJlcG9ydHMgdGhlIGFjdHVhbCBjYWxsCiAgICAgICAgICMgaW4gdGhpcyB0ZXN0IHRo
ZSB0ZXN0X3J1bm5lci5weSBmaWxlCiAgICAgICAgIGFzc2VydCBwYXRoLnB1cmViYXNlbmFtZSA9
PSAidGVzdF9ydW5uZXIiCi0gICAgICAgIHB5dGVzdC5yYWlzZXMoU3ludGF4RXJyb3IsICJweXRl
c3QuaW1wb3J0b3Jza2lwKCd4IHkgeicpIikKLSAgICAgICAgcHl0ZXN0LnJhaXNlcyhTeW50YXhF
cnJvciwgInB5dGVzdC5pbXBvcnRvcnNraXAoJ3g9eScpIikKKyAgICAgICAgcHl0ZXN0LnJhaXNl
cyhTeW50YXhFcnJvciwgcHl0ZXN0LmltcG9ydG9yc2tpcCwgInggeSB6IikKKyAgICAgICAgcHl0
ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwgcHl0ZXN0LmltcG9ydG9yc2tpcCwgIng9eSIpCiAgICAg
ICAgIG1vZCA9IHR5cGVzLk1vZHVsZVR5cGUoImhlbGxvMTIzIikKICAgICAgICAgbW9kLl9fdmVy
c2lvbl9fID0gIjEuMyIKICAgICAgICAgbW9ua2V5cGF0Y2guc2V0aXRlbShzeXMubW9kdWxlcywg
ImhlbGxvMTIzIiwgbW9kKQotICAgICAgICBweXRlc3QucmFpc2VzKAotICAgICAgICAgICAgcHl0
ZXN0LnNraXAuRXhjZXB0aW9uLAotICAgICAgICAgICAgIiIiCisgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhweXRlc3Quc2tpcC5FeGNlcHRpb24pOgogICAgICAgICAgICAgcHl0ZXN0LmltcG9y
dG9yc2tpcCgiaGVsbG8xMjMiLCBtaW52ZXJzaW9uPSIxLjMuMSIpCi0gICAgICAgICIiIiwKLSAg
ICAgICAgKQogICAgICAgICBtb2QyID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgiaGVsbG8xMjMiLCBt
aW52ZXJzaW9uPSIxLjMiKQogICAgICAgICBhc3NlcnQgbW9kMiA9PSBtb2QKICAgICBleGNlcHQg
cHl0ZXN0LnNraXAuRXhjZXB0aW9uOgotICAgICAgICBwcmludChfcHl0ZXN0Ll9jb2RlLkV4Y2Vw
dGlvbkluZm8oKSkKKyAgICAgICAgcHJpbnQoX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZy
b21fY3VycmVudCgpKQogICAgICAgICBweXRlc3QuZmFpbCgic3B1cmlvdXMgc2tpcCIpCiAKIApA
QCAtNjkxLDEzICs3MzQsMTAgQEAgZGVmIHRlc3RfaW1wb3J0b3Jza2lwX2Rldl9tb2R1bGUobW9u
a2V5cGF0Y2gpOgogICAgICAgICBtb25rZXlwYXRjaC5zZXRpdGVtKHN5cy5tb2R1bGVzLCAibW9j
a21vZHVsZSIsIG1vZCkKICAgICAgICAgbW9kMiA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIm1vY2tt
b2R1bGUiLCBtaW52ZXJzaW9uPSIwLjEyLjAiKQogICAgICAgICBhc3NlcnQgbW9kMiA9PSBtb2QK
LSAgICAgICAgcHl0ZXN0LnJhaXNlcygKLSAgICAgICAgICAgIHB5dGVzdC5za2lwLkV4Y2VwdGlv
biwKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgnbW9j
a21vZHVsZTEnLCBtaW52ZXJzaW9uPScwLjE0LjAnKSIiIiwKLSAgICAgICAgKQorICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LnNraXAuRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHB5
dGVzdC5pbXBvcnRvcnNraXAoIm1vY2ttb2R1bGUxIiwgbWludmVyc2lvbj0iMC4xNC4wIikKICAg
ICBleGNlcHQgcHl0ZXN0LnNraXAuRXhjZXB0aW9uOgotICAgICAgICBwcmludChfcHl0ZXN0Ll9j
b2RlLkV4Y2VwdGlvbkluZm8oKSkKKyAgICAgICAgcHJpbnQoX3B5dGVzdC5fY29kZS5FeGNlcHRp
b25JbmZvLmZyb21fY3VycmVudCgpKQogICAgICAgICBweXRlc3QuZmFpbCgic3B1cmlvdXMgc2tp
cCIpCiAKIApAQCAtNzE2LDYgKzc1NiwyMiBAQCBkZWYgdGVzdF9pbXBvcnRvcnNraXBfbW9kdWxl
X2xldmVsKHRlc3RkaXIpOgogICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipjb2xs
ZWN0ZWQgMCBpdGVtcyAvIDEgc2tpcHBlZCoiXSkKIAogCitkZWYgdGVzdF9pbXBvcnRvcnNraXBf
Y3VzdG9tX3JlYXNvbih0ZXN0ZGlyKToKKyAgICAiIiJtYWtlIHN1cmUgY3VzdG9tIHJlYXNvbnMg
YXJlIHVzZWQiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGZvb2JhcmJheiA9IHB5dGVzdC5pbXBvcnRvcnNraXAo
ImZvb2JhcmJhejIiLCByZWFzb249Imp1c3QgYmVjYXVzZSIpCisKKyAgICAgICAgZGVmIHRlc3Rf
Zm9vKCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItcmEiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
IipqdXN0IGJlY2F1c2UqIl0pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmNv
bGxlY3RlZCAwIGl0ZW1zIC8gMSBza2lwcGVkKiJdKQorCisKIGRlZiB0ZXN0X3B5dGVzdF9jbWRs
aW5lX21haW4odGVzdGRpcik6CiAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAg
IiIiCkBAIC04NjksMTQgKzkyNSwxMSBAQCBkZWYgdGVzdF9jdXJyZW50X3Rlc3RfZW52X3Zhcih0
ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3RfaW5w
cm9jZXNzKCkKICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCiAgICAgdGVzdF9pZCA9ICJ0ZXN0
X2N1cnJlbnRfdGVzdF9lbnZfdmFyLnB5Ojp0ZXN0IgotICAgIGFzc2VydCAoCi0gICAgICAgIHB5
dGVzdF9jdXJyZW50X3Rlc3RfdmFycwotICAgICAgICA9PSBbCi0gICAgICAgICAgICAoInNldHVw
IiwgdGVzdF9pZCArICIgKHNldHVwKSIpLAotICAgICAgICAgICAgKCJjYWxsIiwgdGVzdF9pZCAr
ICIgKGNhbGwpIiksCi0gICAgICAgICAgICAoInRlYXJkb3duIiwgdGVzdF9pZCArICIgKHRlYXJk
b3duKSIpLAotICAgICAgICBdCi0gICAgKQorICAgIGFzc2VydCBweXRlc3RfY3VycmVudF90ZXN0
X3ZhcnMgPT0gWworICAgICAgICAoInNldHVwIiwgdGVzdF9pZCArICIgKHNldHVwKSIpLAorICAg
ICAgICAoImNhbGwiLCB0ZXN0X2lkICsgIiAoY2FsbCkiKSwKKyAgICAgICAgKCJ0ZWFyZG93biIs
IHRlc3RfaWQgKyAiICh0ZWFyZG93bikiKSwKKyAgICBdCiAgICAgYXNzZXJ0ICJQWVRFU1RfQ1VS
UkVOVF9URVNUIiBub3QgaW4gb3MuZW52aXJvbgogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdGVzdF9ydW5uZXJfeHVuaXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
cnVubmVyX3h1bml0LnB5CmluZGV4IDgzMTZhYWZiZjU2MWM0OGM1NGUwYTk1Nzk0MDZiNGQ1OTE2
YzRhNWYuLjViZTcyOTdmNmM1YWMxNzI4NjZjOGJlZmI1YzNkZWEzMTk4MjVlNjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXJfeHVuaXQucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy90ZXN0X3J1bm5lcl94dW5pdC5weQpAQCAtMSw4ICsxLDEyIEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiCiAgdGVzdCBjb3JyZWN0IHNldHVwL3RlYXJkb3ducyBh
dAogIG1vZHVsZSwgY2xhc3MsIGFuZCBpbnN0YW5jZSBsZXZlbAogIiIiCi1mcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBv
cnQgcHl0ZXN0CiAKIApAQCAtMTY2LDYyICsxNzAsNiBAQCBkZWYgdGVzdF9tZXRob2Rfc2V0dXBf
ZmFpbHVyZV9ub190ZWFyZG93bih0ZXN0ZGlyKToKICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShm
YWlsZWQ9MSwgcGFzc2VkPTEpCiAKIAotZGVmIHRlc3RfbWV0aG9kX2dlbmVyYXRvcl9zZXR1cCh0
ZXN0ZGlyKToKLSAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoCi0gICAgICAg
ICIiIgotICAgICAgICBjbGFzcyBUZXN0U2V0dXBUZWFyZG93bk9uSW5zdGFuY2Uob2JqZWN0KToK
LSAgICAgICAgICAgIGRlZiBzZXR1cF9jbGFzcyhjbHMpOgotICAgICAgICAgICAgICAgIGNscy5j
bGFzc3NldHVwID0gVHJ1ZQotCi0gICAgICAgICAgICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYsIG1l
dGhvZCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5tZXRoc2V0dXAgPSBtZXRob2QKLQotICAgICAg
ICAgICAgZGVmIHRlc3RfZ2VuZXJhdGUoc2VsZik6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHNl
bGYuY2xhc3NzZXR1cAotICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLm1ldGhzZXR1cCA9PSBz
ZWxmLnRlc3RfZ2VuZXJhdGUKLSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlZCwg
NQotICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVkLCAyCi0KLSAgICAgICAgICAg
IGRlZiBnZW5lcmF0ZWQoc2VsZiwgdmFsdWUpOgotICAgICAgICAgICAgICAgIGFzc2VydCBzZWxm
LmNsYXNzc2V0dXAKLSAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5tZXRoc2V0dXAgPT0gc2Vs
Zi50ZXN0X2dlbmVyYXRlCi0gICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlID09IDUKLSAgICAi
IiIKLSAgICApCi0gICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEsIGZhaWxlZD0xKQot
Ci0KLWRlZiB0ZXN0X2Z1bmNfZ2VuZXJhdG9yX3NldHVwKHRlc3RkaXIpOgotICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgKLSAgICAgICAgIiIiCi0gICAgICAgIGltcG9ydCBz
eXMKLQotICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKG1vZCk6Ci0gICAgICAgICAgICBwcmludCAo
InNldHVwX21vZHVsZSIpCi0gICAgICAgICAgICBtb2QueCA9IFtdCi0KLSAgICAgICAgZGVmIHNl
dHVwX2Z1bmN0aW9uKGZ1bik6Ci0gICAgICAgICAgICBwcmludCAoInNldHVwX2Z1bmN0aW9uIikK
LSAgICAgICAgICAgIHguYXBwZW5kKDEpCi0KLSAgICAgICAgZGVmIHRlYXJkb3duX2Z1bmN0aW9u
KGZ1bik6Ci0gICAgICAgICAgICBwcmludCAoInRlYXJkb3duX2Z1bmN0aW9uIikKLSAgICAgICAg
ICAgIHgucG9wKCkKLQotICAgICAgICBkZWYgdGVzdF9vbmUoKToKLSAgICAgICAgICAgIGFzc2Vy
dCB4ID09IFsxXQotICAgICAgICAgICAgZGVmIGNoZWNrKCk6Ci0gICAgICAgICAgICAgICAgcHJp
bnQgKCJjaGVjayIpCi0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiZVxcbiIpCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0IHggPT0gWzFdCi0gICAgICAgICAgICB5aWVsZCBjaGVjawot
ICAgICAgICAgICAgYXNzZXJ0IHggPT0gWzFdCi0gICAgIiIiCi0gICAgKQotICAgIHJlcCA9IHJl
cHJlYy5tYXRjaHJlcG9ydCgidGVzdF9vbmUiLCBuYW1lcz0icHl0ZXN0X3J1bnRlc3RfbG9ncmVw
b3J0IikKLSAgICBhc3NlcnQgcmVwLnBhc3NlZAotCi0KIGRlZiB0ZXN0X21ldGhvZF9zZXR1cF91
c2VzX2ZyZXNoX2luc3RhbmNlcyh0ZXN0ZGlyKToKICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW5zb3VyY2UoCiAgICAgICAgICIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X3Nlc3Npb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2Vzc2lvbi5weQpp
bmRleCA0YTU5NDAwOWJhYjUxMmY1MmQ3ODVlOTgzNGE5OWFhNDc5ZTU5ODRiLi45YWNhZDVkZWFm
ZDVkODM5MjRlYTU1ZDhkN2E5ZDVjZDY3YjdlMjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3Rfc2Vzc2lvbi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2Vz
c2lvbi5weQpAQCAtMSwxMiArMSwxMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9u
CiAKIGltcG9ydCBweXRlc3QKLQogZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNU
U0NPTExFQ1RFRAogCiAKIGNsYXNzIFNlc3Npb25UZXN0cyhvYmplY3QpOgotCiAgICAgZGVmIHRl
c3RfYmFzaWNfdGVzdGl0ZW1fZXZlbnRzKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZmlsZSA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgpAQCAtNjgsMjEgKzY5LDcgQEAg
Y2xhc3MgU2Vzc2lvblRlc3RzKG9iamVjdCk6CiAgICAgICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFp
bGVkID0gcmVwcmVjLmxpc3RvdXRjb21lcygpCiAgICAgICAgIGFzc2VydCBsZW4oZmFpbGVkKSA9
PSAxCiAgICAgICAgIG91dCA9IGZhaWxlZFswXS5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQot
ICAgICAgICBpZiBub3Qgb3V0LmZpbmQoIkRJRCBOT1QgUkFJU0UiKSAhPSAtMToKLSAgICAgICAg
ICAgIHByaW50KG91dCkKLSAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJpbmNvcnJlY3QgcmFpc2Vz
KCkgb3V0cHV0IikKLQotICAgIGRlZiB0ZXN0X2dlbmVyYXRvcl95aWVsZHNfTm9uZShzZWxmLCB0
ZXN0ZGlyKToKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKAotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICBkZWYgdGVzdF8xKCk6Ci0gICAgICAgICAgICAgICAg
eWllbGQgTm9uZQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBmYWlsdXJlcyA9IHJl
cHJlYy5nZXRmYWlsZWRjb2xsZWN0aW9ucygpCi0gICAgICAgIG91dCA9IGZhaWx1cmVzWzBdLmxv
bmdyZXByLnJlcHJjcmFzaC5tZXNzYWdlCi0gICAgICAgIGkgPSBvdXQuZmluZCgiVHlwZUVycm9y
IikKLSAgICAgICAgYXNzZXJ0IGkgIT0gLTEKKyAgICAgICAgYXNzZXJ0ICJESUQgTk9UIFJBSVNF
IiBpbiBvdXQKIAogICAgIGRlZiB0ZXN0X3N5bnRheF9lcnJvcl9tb2R1bGUoc2VsZiwgdGVzdGRp
cik6CiAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgidGhpcyBpcyBy
ZWFsbHkgbm90IHB5dGhvbiIpCkBAIC0xMjgsNyArMTE1LDggQEAgY2xhc3MgU2Vzc2lvblRlc3Rz
KG9iamVjdCk6CiAgICAgICAgICAgICBjbGFzcyBUZXN0QnJva2VuQ2xhc3Mob2JqZWN0KToKICAg
ICAgICAgICAgICAgICBkZWYgdGVzdF9leHBsaWNpdF9iYWRfcmVwcihzZWxmKToKICAgICAgICAg
ICAgICAgICAgICAgdCA9IEJyb2tlblJlcHIxKCkKLSAgICAgICAgICAgICAgICAgICAgcHl0ZXN0
LnJhaXNlcyhFeGNlcHRpb24sICdyZXByKHQpJykKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBw
eXRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgbWF0Y2g9IkknbSBhIGJyb2tlbiByZXByIik6CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXByKHQpCiAKICAgICAgICAgICAgICAgICBkZWYgdGVzdF9p
bXBsaWNpdF9iYWRfcmVwcjEoc2VsZik6CiAgICAgICAgICAgICAgICAgICAgIHQgPSBCcm9rZW5S
ZXByMSgpCkBAIC0xMzgsMTQgKzEyNiwzOCBAQCBjbGFzcyBTZXNzaW9uVGVzdHMob2JqZWN0KToK
ICAgICAgICAgKQogICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4ocCkKICAgICAg
ICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMubGlzdG91dGNvbWVzKCkKLSAgICAg
ICAgYXNzZXJ0IGxlbihmYWlsZWQpID09IDEKKyAgICAgICAgYXNzZXJ0IChsZW4ocGFzc2VkKSwg
bGVuKHNraXBwZWQpLCBsZW4oZmFpbGVkKSkgPT0gKDEsIDAsIDEpCiAgICAgICAgIG91dCA9IGZh
aWxlZFswXS5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQogICAgICAgICBhc3NlcnQgKAogICAg
ICAgICAgICAgb3V0LmZpbmQoCiAgICAgICAgICAgICAgICAgIiIiW0V4Y2VwdGlvbigiSGEgSGEg
Zm9vbGVkIHlvdSwgSSdtIGEgYnJva2VuIHJlcHIoKS4iKSByYWlzZWQgaW4gcmVwcigpXSIiIgog
ICAgICAgICAgICAgKQogICAgICAgICAgICAgIT0gLTEKLSAgICAgICAgKSAgIyAnCisgICAgICAg
ICkKKworICAgIGRlZiB0ZXN0X2Jyb2tlbl9yZXByX3dpdGhfc2hvd2xvY2Fsc192ZXJib3NlKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAg
ICAgIiIiCisgICAgICAgICAgICBjbGFzcyBPYmpXaXRoRXJyb3JJblJlcHI6CisgICAgICAgICAg
ICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3JlcHJfZXJyb3IoKToKKyAg
ICAgICAgICAgICAgICB4ID0gT2JqV2l0aEVycm9ySW5SZXByKCkKKyAgICAgICAgICAgICAgICBh
c3NlcnQgeCA9PSAidmFsdWUiCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLS1zaG93bG9jYWxzIiwgIi12diIsIHApCisgICAgICAg
IHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVwcmVjLmxpc3RvdXRjb21lcygpCisgICAgICAg
IGFzc2VydCAobGVuKHBhc3NlZCksIGxlbihza2lwcGVkKSwgbGVuKGZhaWxlZCkpID09ICgwLCAw
LCAxKQorICAgICAgICBlbnRyaWVzID0gZmFpbGVkWzBdLmxvbmdyZXByLnJlcHJ0cmFjZWJhY2su
cmVwcmVudHJpZXMKKyAgICAgICAgYXNzZXJ0IGxlbihlbnRyaWVzKSA9PSAxCisgICAgICAgIHJl
cHJfbG9jYWxzID0gZW50cmllc1swXS5yZXBybG9jYWxzCisgICAgICAgIGFzc2VydCByZXByX2xv
Y2Fscy5saW5lcworICAgICAgICBhc3NlcnQgbGVuKHJlcHJfbG9jYWxzLmxpbmVzKSA9PSAxCisg
ICAgICAgIGFzc2VydCByZXByX2xvY2Fscy5saW5lc1swXS5zdGFydHN3aXRoKAorICAgICAgICAg
ICAgJ3ggICAgICAgICAgPSA8W05vdEltcGxlbWVudGVkRXJyb3IoIiIpIHJhaXNlZCBpbiByZXBy
KCldIE9ialdpdGhFcnJvckluUmVwcicKKyAgICAgICAgKQogCiAgICAgZGVmIHRlc3Rfc2tpcF9m
aWxlX2J5X2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCkBAIC0xNjAsNyArMTcyLDcgQEAgY2xhc3MgU2Vzc2lvblRlc3RzKG9iamVjdCk6CiAgICAg
ICAgICkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKHRlc3RkaXIudG1wZGlyKQotICAgICAgICBleGNlcHQgcHl0ZXN0LnNraXAuRXhjZXB0aW9u
OgorICAgICAgICBleGNlcHQgcHl0ZXN0LnNraXAuRXhjZXB0aW9uOiAgIyBwcmFnbWE6IG5vIGNv
dmVyCiAgICAgICAgICAgICBweXRlc3QuZmFpbCgid3Jvbmcgc2tpcHBlZCBjYXVnaHQiKQogICAg
ICAgICByZXBvcnRzID0gcmVwcmVjLmdldHJlcG9ydHMoInB5dGVzdF9jb2xsZWN0cmVwb3J0IikK
ICAgICAgICAgYXNzZXJ0IGxlbihyZXBvcnRzKSA9PSAxCkBAIC0xNjgsNyArMTgwLDYgQEAgY2xh
c3MgU2Vzc2lvblRlc3RzKG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdE5ld1Nlc3Npb24oU2Vzc2lv
blRlc3RzKToKLQogICAgIGRlZiB0ZXN0X29yZGVyX29mX2V4ZWN1dGlvbihzZWxmLCB0ZXN0ZGly
KToKICAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKAogICAgICAgICAg
ICAgIiIiCkBAIC0xOTQsNyArMjA1LDYgQEAgY2xhc3MgVGVzdE5ld1Nlc3Npb24oU2Vzc2lvblRl
c3RzKToKICAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMuY291bnRvdXRj
b21lcygpCiAgICAgICAgIGFzc2VydCBmYWlsZWQgPT0gc2tpcHBlZCA9PSAwCiAgICAgICAgIGFz
c2VydCBwYXNzZWQgPT0gNwotICAgICAgICAjIGFsc28gdGVzdCBsaXN0bmFtZXMoKSBoZXJlIC4u
LgogCiAgICAgZGVmIHRlc3RfY29sbGVjdF9vbmx5X3dpdGhfdmFyaW91c19zaXR1YXRpb25zKHNl
bGYsIHRlc3RkaXIpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKApAQCAtMjIwLDcg
KzIzMCw3IEBAIGNsYXNzIFRlc3ROZXdTZXNzaW9uKFNlc3Npb25UZXN0cyk6CiAgICAgICAgIHN0
YXJ0ZWQgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9jb2xsZWN0c3RhcnQiKQogICAgICAgICBm
aW5pc2hlZCA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfY29sbGVjdHJlcG9ydCIpCiAgICAg
ICAgIGFzc2VydCBsZW4oc3RhcnRlZCkgPT0gbGVuKGZpbmlzaGVkKQotICAgICAgICBhc3NlcnQg
bGVuKHN0YXJ0ZWQpID09IDcgICMgWFhYIGV4dHJhIFRvcENvbGxlY3RvcgorICAgICAgICBhc3Nl
cnQgbGVuKHN0YXJ0ZWQpID09IDgKICAgICAgICAgY29sZmFpbCA9IFt4IGZvciB4IGluIGZpbmlz
aGVkIGlmIHguZmFpbGVkXQogICAgICAgICBhc3NlcnQgbGVuKGNvbGZhaWwpID09IDEKIApAQCAt
MjQyLDEyICsyNTIsOCBAQCBjbGFzcyBUZXN0TmV3U2Vzc2lvbihTZXNzaW9uVGVzdHMpOgogCiAK
IGRlZiB0ZXN0X3BsdWdpbl9zcGVjaWZ5KHRlc3RkaXIpOgotICAgIHB5dGVzdC5yYWlzZXMoCi0g
ICAgICAgIEltcG9ydEVycm9yLAotICAgICAgICAiIiIKLSAgICAgICAgICAgIHRlc3RkaXIucGFy
c2Vjb25maWcoIi1wIiwgIm5xd2VvdGV4aXN0ZW50IikKLSAgICAiIiIsCi0gICAgKQorICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgIHRlc3RkaXIucGFyc2Vjb25m
aWcoIi1wIiwgIm5xd2VvdGV4aXN0ZW50IikKICAgICAjIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJy
b3IsCiAgICAgIyAgICAiY29uZmlnLmRvX2NvbmZpZ3VyZShjb25maWcpIgogICAgICMgKQpAQCAt
MjcxLDIwICsyNzcsNDUgQEAgZGVmIHRlc3RfZXhjbHVkZSh0ZXN0ZGlyKToKICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCiAKIAorZGVmIHRlc3RfZXhjbHVk
ZV9nbG9iKHRlc3RkaXIpOgorICAgIGhlbGxvZGlyID0gdGVzdGRpci5ta2RpcigiaGVsbG8iKQor
ICAgIGhlbGxvZGlyLmpvaW4oInRlc3RfaGVsbG8ucHkiKS53cml0ZSgieCB5IHN5bnRheGVycm9y
IikKKyAgICBoZWxsbzJkaXIgPSB0ZXN0ZGlyLm1rZGlyKCJoZWxsbzIiKQorICAgIGhlbGxvMmRp
ci5qb2luKCJ0ZXN0X2hlbGxvMi5weSIpLndyaXRlKCJ4IHkgc3ludGF4ZXJyb3IiKQorICAgIGhl
bGxvM2RpciA9IHRlc3RkaXIubWtkaXIoImhhbGxvMyIpCisgICAgaGVsbG8zZGlyLmpvaW4oInRl
c3RfaGVsbG8zLnB5Iikud3JpdGUoInggeSBzeW50YXhlcnJvciIpCisgICAgc3ViZGlyID0gdGVz
dGRpci5ta2Rpcigic3ViIikKKyAgICBzdWJkaXIuam9pbigidGVzdF9oZWxsbzQucHkiKS53cml0
ZSgieCB5IHN5bnRheGVycm9yIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9vaz0iZGVm
IHRlc3RfcGFzcygpOiBwYXNzIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1p
Z25vcmUtZ2xvYj0qaFtlYV1sbG8qIikKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorCisKIGRlZiB0ZXN0
X2Rlc2VsZWN0KHRlc3RkaXIpOgogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgdGVz
dF9hPSIiIgogICAgICAgICBpbXBvcnQgcHl0ZXN0CisKICAgICAgICAgZGVmIHRlc3RfYTEoKTog
cGFzcworCiAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnYicsIHJhbmdlKDMpKQog
ICAgICAgICBkZWYgdGVzdF9hMihiKTogcGFzcworCisgICAgICAgIGNsYXNzIFRlc3RDbGFzczoK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2MxKHNlbGYpOiBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2MyKHNlbGYpOiBwYXNzCiAgICAgIiIiCiAgICAgKQogICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KAotICAgICAgICAiLXYiLCAiLS1kZXNlbGVjdD10ZXN0X2EucHk6OnRlc3RfYTJb
MV0iLCAiLS1kZXNlbGVjdD10ZXN0X2EucHk6OnRlc3RfYTJbMl0iCisgICAgICAgICItdiIsCisg
ICAgICAgICItLWRlc2VsZWN0PXRlc3RfYS5weTo6dGVzdF9hMlsxXSIsCisgICAgICAgICItLWRl
c2VsZWN0PXRlc3RfYS5weTo6dGVzdF9hMlsyXSIsCisgICAgICAgICItLWRlc2VsZWN0PXRlc3Rf
YS5weTo6VGVzdENsYXNzOjp0ZXN0X2MxIiwKICAgICApCiAgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMAotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioyIHBhc3NlZCwgMiBkZXNl
bGVjdGVkKiJdKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCwg
MyBkZXNlbGVjdGVkKiJdKQogICAgIGZvciBsaW5lIGluIHJlc3VsdC5zdGRvdXQubGluZXM6CiAg
ICAgICAgIGFzc2VydCBub3QgbGluZS5zdGFydHN3aXRoKCgidGVzdF9hLnB5Ojp0ZXN0X2EyWzFd
IiwgInRlc3RfYS5weTo6dGVzdF9hMlsyXSIpKQogCkBAIC0zMjQsNyArMzU1LDExIEBAIGRlZiB0
ZXN0X3Jvb3RkaXJfb3B0aW9uX2FyZyh0ZXN0ZGlyLCBtb25rZXlwYXRjaCwgcGF0aCk6CiAKICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1yb290ZGlyPXt9Ii5mb3JtYXQocGF0aCkp
CiAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICBbIipyb290ZGlyOiB7
fS9yb290LCBpbmlmaWxlOioiLmZvcm1hdCh0ZXN0ZGlyLnRtcGRpciksICIqMSBwYXNzZWQqIl0K
KyAgICAgICAgWworICAgICAgICAgICAgIipyb290ZGlyOiB7fS9yb290Ii5mb3JtYXQodGVzdGRp
ci50bXBkaXIpLAorICAgICAgICAgICAgInJvb3QvdGVzdF9yb290ZGlyX29wdGlvbl9hcmcucHkg
KiIsCisgICAgICAgICAgICAiKjEgcGFzc2VkKiIsCisgICAgICAgIF0KICAgICApCiAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3NraXBwaW5nLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X3NraXBwaW5nLnB5CmluZGV4IDVkOTcwZTJmZWEwYWY1ZTM2NjdlODNm
OTdhNjBhNTI1NTczNDQxMGUuLjc4MzQ5NzExMjVhMTNhYmRjZDQ1ZTRlN2RmYzZlZjgzY2YxZGJl
NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9za2lwcGluZy5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2tpcHBpbmcucHkKQEAgLTEsMTMgKzEsMTcgQEAK
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KLWltcG9ydCBweXRlc3QKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBk
aXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQg
c3lzCiAKLWZyb20gX3B5dGVzdC5za2lwcGluZyBpbXBvcnQgTWFya0V2YWx1YXRvciwgZm9sZGVk
X3NraXBzLCBweXRlc3RfcnVudGVzdF9zZXR1cAoraW1wb3J0IHB5dGVzdAogZnJvbSBfcHl0ZXN0
LnJ1bm5lciBpbXBvcnQgcnVudGVzdHByb3RvY29sCitmcm9tIF9weXRlc3Quc2tpcHBpbmcgaW1w
b3J0IE1hcmtFdmFsdWF0b3IKK2Zyb20gX3B5dGVzdC5za2lwcGluZyBpbXBvcnQgcHl0ZXN0X3J1
bnRlc3Rfc2V0dXAKIAogCiBjbGFzcyBUZXN0RXZhbHVhdG9yKG9iamVjdCk6Ci0KICAgICBkZWYg
dGVzdF9ub19tYXJrZXIoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdl
dGl0ZW0oImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCiAgICAgICAgIGV2YWxza2lwaWYgPSBNYXJr
RXZhbHVhdG9yKGl0ZW0sICJza2lwaWYiKQpAQCAtMTI2LDEwICsxMzAsMTMgQEAgY2xhc3MgVGVz
dEV2YWx1YXRvcihvYmplY3QpOgogICAgICAgICApCiAgICAgICAgIGV2ID0gTWFya0V2YWx1YXRv
cihpdGVtLCAic2tpcGlmIikKICAgICAgICAgZXhjID0gcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFp
bC5FeGNlcHRpb24sIGV2LmlzdHJ1ZSkKLSAgICAgICAgYXNzZXJ0ICIiIkZhaWxlZDogeW91IG5l
ZWQgdG8gc3BlY2lmeSByZWFzb249U1RSSU5HIHdoZW4gdXNpbmcgYm9vbGVhbnMgYXMgY29uZGl0
aW9ucy4iIiIgaW4gZXhjLnZhbHVlLm1zZworICAgICAgICBhc3NlcnQgKAorICAgICAgICAgICAg
IiIiRmFpbGVkOiB5b3UgbmVlZCB0byBzcGVjaWZ5IHJlYXNvbj1TVFJJTkcgd2hlbiB1c2luZyBi
b29sZWFucyBhcyBjb25kaXRpb25zLiIiIgorICAgICAgICAgICAgaW4gZXhjLnZhbHVlLm1zZwor
ICAgICAgICApCiAKICAgICBkZWYgdGVzdF9za2lwaWZfY2xhc3Moc2VsZiwgdGVzdGRpcik6Ci0g
ICAgICAgIGl0ZW0sID0gdGVzdGRpci5nZXRpdGVtcygKKyAgICAgICAgKGl0ZW0sKSA9IHRlc3Rk
aXIuZ2V0aXRlbXMoCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
ICAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgpAQCAtMTQ2LDcgKzE1Myw2IEBA
IGNsYXNzIFRlc3RFdmFsdWF0b3Iob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0WEZhaWwob2JqZWN0
KToKLQogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3RyaWN0IiwgW1RydWUsIEZhbHNl
XSkKICAgICBkZWYgdGVzdF94ZmFpbF9zaW1wbGUoc2VsZiwgdGVzdGRpciwgc3RyaWN0KToKICAg
ICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgKQEAgLTMyNSw3ICszMzEsNyBAQCBjbGFzcyBU
ZXN0WEZhaWwob2JqZWN0KToKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwg
Ii1yeCIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipYRkFJTCp0ZXN0
X3RoaXMqIiwgIipyZWFzb246KmhlbGxvKiJdKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdChwLCAiLS1ydW54ZmFpbCIpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygiKjEgcGFzcyoiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
MSBwYXNzKiJdKQogCiAgICAgZGVmIHRlc3RfeGZhaWxfaW1wZXJhdGl2ZV9pbl9zZXR1cF9mdW5j
dGlvbihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAg
LTQ3MSw3ICs0NzcsNyBAQCBjbGFzcyBUZXN0WEZhaWwob2JqZWN0KToKICAgICAgICAgICAgICUg
c3RyaWN0CiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwg
Ii1yeFgiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIioxIHBhc3NlZCoi
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCiAg
ICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKIAogICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgic3RyaWN0IiwgW1RydWUsIEZhbHNlXSkKQEAgLTQ4Nyw3ICs0OTMsNyBAQCBjbGFzcyBU
ZXN0WEZhaWwob2JqZWN0KToKICAgICAgICAgICAgICUgc3RyaWN0CiAgICAgICAgICkKICAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgIi1yeFgiKQotICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoIioxIHBhc3NlZCoiKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0
ID09IDAKIAogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3RyaWN0X3ZhbCIsIFsidHJ1
ZSIsICJmYWxzZSJdKQpAQCAtNTA5LDEyICs1MTUsMTEgQEAgY2xhc3MgVGVzdFhGYWlsKG9iamVj
dCk6CiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgIi1y
eFgiKQogICAgICAgICBzdHJpY3QgPSBzdHJpY3RfdmFsID09ICJ0cnVlIgotICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIioxIGZhaWxlZCoiIGlmIHN0cmljdCBlbHNlICIqMSB4
cGFzc2VkKiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIGZhaWxl
ZCoiIGlmIHN0cmljdCBlbHNlICIqMSB4cGFzc2VkKiJdKQogICAgICAgICBhc3NlcnQgcmVzdWx0
LnJldCA9PSAoMSBpZiBzdHJpY3QgZWxzZSAwKQogCiAKIGNsYXNzIFRlc3RYRmFpbHdpdGhTZXR1
cFRlYXJkb3duKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9mYWlsaW5nX3NldHVwX2lzc3VlOShz
ZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAg
IiIiCkBAIC01NDcsNyArNTUyLDYgQEAgY2xhc3MgVGVzdFhGYWlsd2l0aFNldHVwVGVhcmRvd24o
b2JqZWN0KToKIAogCiBjbGFzcyBUZXN0U2tpcChvYmplY3QpOgotCiAgICAgZGVmIHRlc3Rfc2tp
cF9jbGFzcyhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAg
ICAgICAgICAgIiIiCkBAIC02NDUsNyArNjQ5LDYgQEAgY2xhc3MgVGVzdFNraXAob2JqZWN0KToK
IAogCiBjbGFzcyBUZXN0U2tpcGlmKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9za2lwaWZfY29u
ZGl0aW9uYWwoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0o
CiAgICAgICAgICAgICAiIiIKQEAgLTc0NiwzOSArNzQ5LDYgQEAgZGVmIHRlc3Rfc2tpcGlmX2Ns
YXNzKHRlc3RkaXIpOgogICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioyIHNraXBw
ZWQqIl0pCiAKIAotZGVmIHRlc3Rfc2tpcF9yZWFzb25zX2ZvbGRpbmcoKToKLSAgICBwYXRoID0g
Inh5eiIKLSAgICBsaW5lbm8gPSAzCi0gICAgbWVzc2FnZSA9ICJqdXN0c28iCi0gICAgbG9uZ3Jl
cHIgPSAocGF0aCwgbGluZW5vLCBtZXNzYWdlKQotCi0gICAgY2xhc3MgWChvYmplY3QpOgotICAg
ICAgICBwYXNzCi0KLSAgICBldjEgPSBYKCkKLSAgICBldjEud2hlbiA9ICJleGVjdXRlIgotICAg
IGV2MS5za2lwcGVkID0gVHJ1ZQotICAgIGV2MS5sb25ncmVwciA9IGxvbmdyZXByCi0KLSAgICBl
djIgPSBYKCkKLSAgICBldjIud2hlbiA9ICJleGVjdXRlIgotICAgIGV2Mi5sb25ncmVwciA9IGxv
bmdyZXByCi0gICAgZXYyLnNraXBwZWQgPSBUcnVlCi0KLSAgICAjIGV2MyBtaWdodCBiZSBhIGNv
bGxlY3Rpb24gcmVwb3J0Ci0gICAgZXYzID0gWCgpCi0gICAgZXYzLmxvbmdyZXByID0gbG9uZ3Jl
cHIKLSAgICBldjMuc2tpcHBlZCA9IFRydWUKLQotICAgIHZhbHVlcyA9IGZvbGRlZF9za2lwcyhb
ZXYxLCBldjIsIGV2M10pCi0gICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKLSAgICBudW0sIGZz
cGF0aCwgbGluZW5vLCByZWFzb24gPSB2YWx1ZXNbMF0KLSAgICBhc3NlcnQgbnVtID09IDMKLSAg
ICBhc3NlcnQgZnNwYXRoID09IHBhdGgKLSAgICBhc3NlcnQgbGluZW5vID09IGxpbmVubwotICAg
IGFzc2VydCByZWFzb24gPT0gbWVzc2FnZQotCi0KIGRlZiB0ZXN0X3NraXBwZWRfcmVhc29uc19m
dW5jdGlvbmFsKHRlc3RkaXIpOgogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgdGVz
dF9vbmU9IiIiCkBAIC04NzIsMTEgKzg0MiwyMiBAQCBkZWYgdGVzdF9yZXBvcnRjaGFyc19hbGwo
dGVzdGRpcik6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGRlZiB0ZXN0XzQoKToKICAgICAg
ICAgICAgIHB5dGVzdC5za2lwKCJmb3VyIikKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgIGRlZiBmYWlsKCk6CisgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICBkZWYgdGVzdF81
KGZhaWwpOgorICAgICAgICAgICAgcGFzcwogICAgICIiIgogICAgICkKICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJhIikKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
Ci0gICAgICAgIFsiRkFJTCp0ZXN0XzEqIiwgIlNLSVAqZm91cioiLCAiWEZBSUwqdGVzdF8yKiIs
ICJYUEFTUyp0ZXN0XzMqIl0KKyAgICAgICAgWworICAgICAgICAgICAgIlNLSVAqZm91cioiLAor
ICAgICAgICAgICAgIlhGQUlMKnRlc3RfMioiLAorICAgICAgICAgICAgIlhQQVNTKnRlc3RfMyoi
LAorICAgICAgICAgICAgIkVSUk9SKnRlc3RfNSoiLAorICAgICAgICAgICAgIkZBSUwqdGVzdF8x
KiIsCisgICAgICAgIF0KICAgICApCiAKIApAQCAtODk1LDcgKzg3Niw2IEBAIGRlZiB0ZXN0X3Jl
cG9ydGNoYXJzX2FsbF9lcnJvcih0ZXN0ZGlyKToKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWyJFUlJPUip0ZXN0X2ZvbyoiXSkKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWwoImhhc2F0
dHIoc3lzLCAncHlweV92ZXJzaW9uX2luZm8nKSIpCiBkZWYgdGVzdF9lcnJvcnNfaW5feGZhaWxf
c2tpcF9leHByZXNzaW9ucyh0ZXN0ZGlyKToKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAg
ICAgICIiIgpAQCAtOTE2LDYgKzg5NiwxMCBAQCBkZWYgdGVzdF9lcnJvcnNfaW5feGZhaWxfc2tp
cF9leHByZXNzaW9ucyh0ZXN0ZGlyKToKICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgi
amF2YSIpOgogICAgICAgICAjIFhYWCByZXBvcnQgdGhpcyB0byBqYXZhCiAgICAgICAgIG1hcmts
aW5lID0gIioiICsgbWFya2xpbmVbODpdCisgICAgZWxpZiBoYXNhdHRyKHN5cywgInB5cHlfdmVy
c2lvbl9pbmZvIikgYW5kIHN5cy5weXB5X3ZlcnNpb25faW5mbyA8ICg2LCk6CisgICAgICAgIG1h
cmtsaW5lID0gbWFya2xpbmVbNTpdCisgICAgZWxpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA4
KSBvciBoYXNhdHRyKHN5cywgInB5cHlfdmVyc2lvbl9pbmZvIik6CisgICAgICAgIG1hcmtsaW5l
ID0gbWFya2xpbmVbNDpdCiAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAg
ICBbCiAgICAgICAgICAgICAiKkVSUk9SKnRlc3RfbmFtZWVycm9yKiIsCkBAIC0xMDIzLDcgKzEw
MDcsNiBAQCBkZWYgdGVzdF9pbXBlcmF0aXZlc2tpcF9vbl94ZmFpbF90ZXN0KHRlc3RkaXIpOgog
CiAKIGNsYXNzIFRlc3RCb29sZWFuQ29uZGl0aW9uKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9z
a2lwaWYoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAg
ICAgICAgICIiIgpAQCAtMTExMyw3ICsxMDk2LDkgQEAgZGVmIHRlc3RfbW9kdWxlX2xldmVsX3Nr
aXBfZXJyb3IodGVzdGRpcik6CiAgICAgIiIiCiAgICAgKQogICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIipVc2luZyBweXRl
c3Quc2tpcCBvdXRzaWRlIG9mIGEgdGVzdCBpcyBub3QgYWxsb3dlZCoiKQorICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWyIqVXNpbmcgcHl0ZXN0LnNraXAgb3V0c2lk
ZSBvZiBhIHRlc3QgaXMgbm90IGFsbG93ZWQqIl0KKyAgICApCiAKIAogZGVmIHRlc3RfbW9kdWxl
X2xldmVsX3NraXBfd2l0aF9hbGxvd19tb2R1bGVfbGV2ZWwodGVzdGRpcik6CkBAIC0xMTMwLDcg
KzExMTUsNyBAQCBkZWYgdGVzdF9tb2R1bGVfbGV2ZWxfc2tpcF93aXRoX2FsbG93X21vZHVsZV9s
ZXZlbCh0ZXN0ZGlyKToKICAgICAiIiIKICAgICApCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi1yeHMiKQotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKlNLSVAqc2tp
cF9tb2R1bGVfbGV2ZWwiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipTS0lQ
KnNraXBfbW9kdWxlX2xldmVsIl0pCiAKIAogZGVmIHRlc3RfaW52YWxpZF9za2lwX2tleXdvcmRf
cGFyYW1ldGVyKHRlc3RkaXIpOgpAQCAtMTE0Nyw3ICsxMTMyLDcgQEAgZGVmIHRlc3RfaW52YWxp
ZF9za2lwX2tleXdvcmRfcGFyYW1ldGVyKHRlc3RkaXIpOgogICAgICIiIgogICAgICkKICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKCIqVHlwZUVycm9yOipbJ3Vua25vd24nXSoiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbIipUeXBlRXJyb3I6KlsndW5rbm93biddKiJdKQogCiAKIGRlZiB0ZXN0X21hcmtf
eGZhaWxfaXRlbSh0ZXN0ZGlyKToKQEAgLTExODksNiArMTE3NCwxNCBAQCBkZWYgdGVzdF9zdW1t
YXJ5X2xpc3RfYWZ0ZXJfZXJyb3JzKHRlc3RkaXIpOgogICAgICAgICBbCiAgICAgICAgICAgICAi
PSogRkFJTFVSRVMgKj0iLAogICAgICAgICAgICAgIio9IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZv
ID0qIiwKLSAgICAgICAgICAgICJGQUlMIHRlc3Rfc3VtbWFyeV9saXN0X2FmdGVyX2Vycm9ycy5w
eTo6dGVzdF9mYWlsIiwKKyAgICAgICAgICAgICJGQUlMRUQgdGVzdF9zdW1tYXJ5X2xpc3RfYWZ0
ZXJfZXJyb3JzLnB5Ojp0ZXN0X2ZhaWwgLSBhc3NlcnQgMCIsCiAgICAgICAgIF0KICAgICApCisK
KworZGVmIHRlc3RfaW1wb3J0b3Jza2lwKCk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKAorICAg
ICAgICBweXRlc3Quc2tpcC5FeGNlcHRpb24sCisgICAgICAgIG1hdGNoPSJeY291bGQgbm90IGlt
cG9ydCAnZG9lc25vdGV4aXN0JzogTm8gbW9kdWxlIG5hbWVkIC4qIiwKKyAgICApOgorICAgICAg
ICBweXRlc3QuaW1wb3J0b3Jza2lwKCJkb2Vzbm90ZXhpc3QiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy90ZXN0X3N0ZXB3aXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0
X3N0ZXB3aXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZDExOTE3YWRlOGM0YmY4MTEzYjYxNjA2OGRiZTEw
NjdhYjQ5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc3Rl
cHdpc2UucHkKQEAgLTAsMCArMSwyMjQgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBv
cnQgc3lzCisKK2ltcG9ydCBweXRlc3QKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBzdGVwd2lz
ZV90ZXN0ZGlyKHRlc3RkaXIpOgorICAgICMgUmF0aGVyIHRoYW4gaGF2aW5nIHRvIG1vZGlmeSBv
dXIgdGVzdGZpbGUgYmV0d2VlbiB0ZXN0cywgd2UgaW50cm9kdWNlCisgICAgIyBhIGZsYWcgZm9y
IHdldGhlciBvciBub3QgdGhlIHNlY29uZCB0ZXN0IHNob3VsZCBmYWlsLgorICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KAorICAgICAgICAiIiIKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6
CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoJ2dlbmVyYWwnKQorICAgIGdyb3VwLmFkZG9w
dGlvbignLS1mYWlsJywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVzdD0nZmFpbCcpCisgICAgZ3Jv
dXAuYWRkb3B0aW9uKCctLWZhaWwtbGFzdCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlc3Q9J2Zh
aWxfbGFzdCcpCisiIiIKKyAgICApCisKKyAgICAjIENyZWF0ZSBhIHNpbXBsZSB0ZXN0IHN1aXRl
LgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgdGVzdF9hPSIiIgorZGVmIHRlc3Rf
c3VjY2Vzc19iZWZvcmVfZmFpbCgpOgorICAgIGFzc2VydCAxCisKK2RlZiB0ZXN0X2ZhaWxfb25f
ZmxhZyhyZXF1ZXN0KToKKyAgICBhc3NlcnQgbm90IHJlcXVlc3QuY29uZmlnLmdldHZhbHVlKCdm
YWlsJykKKworZGVmIHRlc3Rfc3VjY2Vzc19hZnRlcl9mYWlsKCk6CisgICAgYXNzZXJ0IDEKKwor
ZGVmIHRlc3RfZmFpbF9sYXN0X29uX2ZsYWcocmVxdWVzdCk6CisgICAgYXNzZXJ0IG5vdCByZXF1
ZXN0LmNvbmZpZy5nZXR2YWx1ZSgnZmFpbF9sYXN0JykKKworZGVmIHRlc3Rfc3VjY2Vzc19hZnRl
cl9sYXN0X2ZhaWwoKToKKyAgICBhc3NlcnQgMQorIiIiCisgICAgKQorCisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKAorICAgICAgICB0ZXN0X2I9IiIiCitkZWYgdGVzdF9zdWNjZXNzKCk6CisgICAg
YXNzZXJ0IDEKKyIiIgorICAgICkKKworICAgICMgY3VzdG9taXplIGNhY2hlIGRpcmVjdG9yeSBz
byB3ZSBkb24ndCB1c2UgdGhlIHRveCdzIGNhY2hlIGRpcmVjdG9yeSwgd2hpY2ggbWFrZXMgdGVz
dHMgaW4gdGhpcyBtb2R1bGUgZmxha3kKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIi
IgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBjYWNoZV9kaXIgPSAuY2FjaGUKKyAgICAiIiIK
KyAgICApCisKKyAgICByZXR1cm4gdGVzdGRpcgorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGVy
cm9yX3Rlc3RkaXIodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICB0
ZXN0X2E9IiIiCitkZWYgdGVzdF9lcnJvcihub25leGlzdGluZ19maXh0dXJlKToKKyAgICBhc3Nl
cnQgMQorCitkZWYgdGVzdF9zdWNjZXNzX2FmdGVyX2ZhaWwoKToKKyAgICBhc3NlcnQgMQorIiIi
CisgICAgKQorCisgICAgcmV0dXJuIHRlc3RkaXIKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBi
cm9rZW5fdGVzdGRpcih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAg
IHdvcmtpbmdfdGVzdGZpbGU9ImRlZiB0ZXN0X3Byb3BlcigpOiBhc3NlcnQgMSIsIGJyb2tlbl90
ZXN0ZmlsZT0iZm9vYmFyIgorICAgICkKKyAgICByZXR1cm4gdGVzdGRpcgorCisKK2RlZiB0ZXN0
X3J1bl93aXRob3V0X3N0ZXB3aXNlKHN0ZXB3aXNlX3Rlc3RkaXIpOgorICAgIHJlc3VsdCA9IHN0
ZXB3aXNlX3Rlc3RkaXIucnVucHl0ZXN0KCItdiIsICItLXN0cmljdC1tYXJrZXJzIiwgIi0tZmFp
bCIpCisKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdF9zdWNjZXNzX2Jl
Zm9yZV9mYWlsIFBBU1NFRCoiXSkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
dGVzdF9mYWlsX29uX2ZsYWcgRkFJTEVEKiJdKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIip0ZXN0X3N1Y2Nlc3NfYWZ0ZXJfZmFpbCBQQVNTRUQqIl0pCisKKworZGVmIHRlc3Rf
ZmFpbF9hbmRfY29udGludWVfd2l0aF9zdGVwd2lzZShzdGVwd2lzZV90ZXN0ZGlyKToKKyAgICAj
IFJ1biB0aGUgdGVzdHMgd2l0aCBhIGZhaWxpbmcgc2Vjb25kIHRlc3QuCisgICAgcmVzdWx0ID0g
c3RlcHdpc2VfdGVzdGRpci5ydW5weXRlc3QoCisgICAgICAgICItdiIsICItLXN0cmljdC1tYXJr
ZXJzIiwgIi0tc3RlcHdpc2UiLCAiLS1mYWlsIgorICAgICkKKyAgICBhc3NlcnQgbm90IHJlc3Vs
dC5zdGRlcnIuc3RyKCkKKworICAgIHN0ZG91dCA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAj
IE1ha2Ugc3VyZSB3ZSBzdG9wIGFmdGVyIGZpcnN0IGZhaWxpbmcgdGVzdC4KKyAgICBhc3NlcnQg
InRlc3Rfc3VjY2Vzc19iZWZvcmVfZmFpbCBQQVNTRUQiIGluIHN0ZG91dAorICAgIGFzc2VydCAi
dGVzdF9mYWlsX29uX2ZsYWcgRkFJTEVEIiBpbiBzdGRvdXQKKyAgICBhc3NlcnQgInRlc3Rfc3Vj
Y2Vzc19hZnRlcl9mYWlsIiBub3QgaW4gc3Rkb3V0CisKKyAgICAjICJGaXgiIHRoZSB0ZXN0IHRo
YXQgZmFpbGVkIGluIHRoZSBsYXN0IHJ1biBhbmQgcnVuIGl0IGFnYWluLgorICAgIHJlc3VsdCA9
IHN0ZXB3aXNlX3Rlc3RkaXIucnVucHl0ZXN0KCItdiIsICItLXN0cmljdC1tYXJrZXJzIiwgIi0t
c3RlcHdpc2UiKQorICAgIGFzc2VydCBub3QgcmVzdWx0LnN0ZGVyci5zdHIoKQorCisgICAgc3Rk
b3V0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICMgTWFrZSBzdXJlIHRoZSBsYXRlc3QgZmFp
bGluZyB0ZXN0IHJ1bnMgYW5kIHRoZW4gY29udGludWVzLgorICAgIGFzc2VydCAidGVzdF9zdWNj
ZXNzX2JlZm9yZV9mYWlsIiBub3QgaW4gc3Rkb3V0CisgICAgYXNzZXJ0ICJ0ZXN0X2ZhaWxfb25f
ZmxhZyBQQVNTRUQiIGluIHN0ZG91dAorICAgIGFzc2VydCAidGVzdF9zdWNjZXNzX2FmdGVyX2Zh
aWwgUEFTU0VEIiBpbiBzdGRvdXQKKworCitkZWYgdGVzdF9ydW5fd2l0aF9za2lwX29wdGlvbihz
dGVwd2lzZV90ZXN0ZGlyKToKKyAgICByZXN1bHQgPSBzdGVwd2lzZV90ZXN0ZGlyLnJ1bnB5dGVz
dCgKKyAgICAgICAgIi12IiwKKyAgICAgICAgIi0tc3RyaWN0LW1hcmtlcnMiLAorICAgICAgICAi
LS1zdGVwd2lzZSIsCisgICAgICAgICItLXN0ZXB3aXNlLXNraXAiLAorICAgICAgICAiLS1mYWls
IiwKKyAgICAgICAgIi0tZmFpbC1sYXN0IiwKKyAgICApCisgICAgYXNzZXJ0IG5vdCByZXN1bHQu
c3RkZXJyLnN0cigpCisKKyAgICBzdGRvdXQgPSByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgIyBN
YWtlIHN1cmUgZmlyc3QgZmFpbCBpcyBpZ25vcmUgYW5kIHNlY29uZCBmYWlsIHN0b3BzIHRoZSB0
ZXN0IHJ1bi4KKyAgICBhc3NlcnQgInRlc3RfZmFpbF9vbl9mbGFnIEZBSUxFRCIgaW4gc3Rkb3V0
CisgICAgYXNzZXJ0ICJ0ZXN0X3N1Y2Nlc3NfYWZ0ZXJfZmFpbCBQQVNTRUQiIGluIHN0ZG91dAor
ICAgIGFzc2VydCAidGVzdF9mYWlsX2xhc3Rfb25fZmxhZyBGQUlMRUQiIGluIHN0ZG91dAorICAg
IGFzc2VydCAidGVzdF9zdWNjZXNzX2FmdGVyX2xhc3RfZmFpbCIgbm90IGluIHN0ZG91dAorCisK
K2RlZiB0ZXN0X2ZhaWxfb25fZXJyb3JzKGVycm9yX3Rlc3RkaXIpOgorICAgIHJlc3VsdCA9IGVy
cm9yX3Rlc3RkaXIucnVucHl0ZXN0KCItdiIsICItLXN0cmljdC1tYXJrZXJzIiwgIi0tc3RlcHdp
c2UiKQorCisgICAgYXNzZXJ0IG5vdCByZXN1bHQuc3RkZXJyLnN0cigpCisgICAgc3Rkb3V0ID0g
cmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAgYXNzZXJ0ICJ0ZXN0X2Vycm9yIEVSUk9SIiBpbiBz
dGRvdXQKKyAgICBhc3NlcnQgInRlc3Rfc3VjY2Vzc19hZnRlcl9mYWlsIiBub3QgaW4gc3Rkb3V0
CisKKworZGVmIHRlc3RfY2hhbmdlX3Rlc3RmaWxlKHN0ZXB3aXNlX3Rlc3RkaXIpOgorICAgIHJl
c3VsdCA9IHN0ZXB3aXNlX3Rlc3RkaXIucnVucHl0ZXN0KAorICAgICAgICAiLXYiLCAiLS1zdHJp
Y3QtbWFya2VycyIsICItLXN0ZXB3aXNlIiwgIi0tZmFpbCIsICJ0ZXN0X2EucHkiCisgICAgKQor
ICAgIGFzc2VydCBub3QgcmVzdWx0LnN0ZGVyci5zdHIoKQorCisgICAgc3Rkb3V0ID0gcmVzdWx0
LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCAidGVzdF9mYWlsX29uX2ZsYWcgRkFJTEVEIiBpbiBz
dGRvdXQKKworICAgICMgTWFrZSBzdXJlIHRoZSBzZWNvbmQgdGVzdCBydW4gc3RhcnRzIGZyb20g
dGhlIGJlZ2lubmluZywgc2luY2UgdGhlCisgICAgIyB0ZXN0IHRvIGNvbnRpbnVlIGZyb20gZG9l
cyBub3QgZXhpc3QgaW4gdGVzdGZpbGVfYi4KKyAgICByZXN1bHQgPSBzdGVwd2lzZV90ZXN0ZGly
LnJ1bnB5dGVzdCgKKyAgICAgICAgIi12IiwgIi0tc3RyaWN0LW1hcmtlcnMiLCAiLS1zdGVwd2lz
ZSIsICJ0ZXN0X2IucHkiCisgICAgKQorICAgIGFzc2VydCBub3QgcmVzdWx0LnN0ZGVyci5zdHIo
KQorCisgICAgc3Rkb3V0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCAidGVzdF9z
dWNjZXNzIFBBU1NFRCIgaW4gc3Rkb3V0CisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJi
cm9rZW5fZmlyc3QiLCBbVHJ1ZSwgRmFsc2VdKQorZGVmIHRlc3Rfc3RvcF9vbl9jb2xsZWN0aW9u
X2Vycm9ycyhicm9rZW5fdGVzdGRpciwgYnJva2VuX2ZpcnN0KToKKyAgICAiIiJTdG9wIGR1cmlu
ZyBjb2xsZWN0aW9uIGVycm9ycy4gQnJva2VuIHRlc3QgZmlyc3Qgb3IgYnJva2VuIHRlc3QgbGFz
dAorICAgIGFjdHVhbGx5IHN1cmZhY2VkIGEgYnVnICgjNTQ0NCksIHNvIHdlIHRlc3QgYm90aCBz
aXR1YXRpb25zLiIiIgorICAgIGZpbGVzID0gWyJ3b3JraW5nX3Rlc3RmaWxlLnB5IiwgImJyb2tl
bl90ZXN0ZmlsZS5weSJdCisgICAgaWYgYnJva2VuX2ZpcnN0OgorICAgICAgICBmaWxlcy5yZXZl
cnNlKCkKKyAgICByZXN1bHQgPSBicm9rZW5fdGVzdGRpci5ydW5weXRlc3QoIi12IiwgIi0tc3Ry
aWN0LW1hcmtlcnMiLCAiLS1zdGVwd2lzZSIsICpmaWxlcykKKyAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoIiplcnJvcnMgZHVyaW5nIGNvbGxlY3Rpb24qIikKKworCitkZWYgdGVzdF94
ZmFpbF9oYW5kbGluZyh0ZXN0ZGlyKToKKyAgICAiIiJFbnN1cmUgbm9ybWFsIHhmYWlsIGlzIGln
bm9yZWQsIGFuZCBzdHJpY3QgeGZhaWwgaW50ZXJydXB0cyB0aGUgc2Vzc2lvbiBpbiBzdyBtb2Rl
CisKKyAgICAoIzU1NDcpCisgICAgIiIiCisgICAgY29udGVudHMgPSAiIiIKKyAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICBkZWYgdGVzdF9hKCk6IHBhc3MKKworICAgICAgICBAcHl0ZXN0
Lm1hcmsueGZhaWwoc3RyaWN0PXtzdHJpY3R9KQorICAgICAgICBkZWYgdGVzdF9iKCk6IGFzc2Vy
dCB7YXNzZXJ0X3ZhbHVlfQorCisgICAgICAgIGRlZiB0ZXN0X2MoKTogcGFzcworICAgICAgICBk
ZWYgdGVzdF9kKCk6IHBhc3MKKyAgICAiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoY29udGVu
dHMuZm9ybWF0KGFzc2VydF92YWx1ZT0iMCIsIHN0cmljdD0iRmFsc2UiKSkKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1zdyIsICItdiIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAiKjo6dGVzdF9hIFBBU1NFRCAqIiwK
KyAgICAgICAgICAgICIqOjp0ZXN0X2IgWEZBSUwgKiIsCisgICAgICAgICAgICAiKjo6dGVzdF9j
IFBBU1NFRCAqIiwKKyAgICAgICAgICAgICIqOjp0ZXN0X2QgUEFTU0VEICoiLAorICAgICAgICAg
ICAgIiogMyBwYXNzZWQsIDEgeGZhaWxlZCBpbiAqIiwKKyAgICAgICAgXQorICAgICkKKworICAg
IHRlc3RkaXIubWFrZXB5ZmlsZShjb250ZW50cy5mb3JtYXQoYXNzZXJ0X3ZhbHVlPSIxIiwgc3Ry
aWN0PSJUcnVlIikpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tc3ciLCAiLXYi
KQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWworICAgICAgICAg
ICAgIio6OnRlc3RfYSBQQVNTRUQgKiIsCisgICAgICAgICAgICAiKjo6dGVzdF9iIEZBSUxFRCAq
IiwKKyAgICAgICAgICAgICIqIEludGVycnVwdGVkKiIsCisgICAgICAgICAgICAiKiAxIGZhaWxl
ZCwgMSBwYXNzZWQgaW4gKiIsCisgICAgICAgIF0KKyAgICApCisKKyAgICAjIGJlY2F1c2Ugd2Ug
YXJlIHdyaXRpbmcgdG8gdGhlIHNhbWUgZmlsZSwgbXRpbWUgbWlnaHQgbm90IGJlIGFmZmVjdGVk
IGVub3VnaCB0bworICAgICMgaW52YWxpZGF0ZSB0aGUgY2FjaGUsIG1ha2luZyB0aGlzIG5leHQg
cnVuIGZsYWt5CisgICAgaWYgbm90IHN5cy5kb250X3dyaXRlX2J5dGVjb2RlOgorICAgICAgICB0
ZXN0ZGlyLnRtcGRpci5qb2luKCJfX3B5Y2FjaGVfXyIpLnJlbW92ZSgpCisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKGNvbnRlbnRzLmZvcm1hdChhc3NlcnRfdmFsdWU9IjAiLCBzdHJpY3Q9IlRydWUi
KSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1zdyIsICItdiIpCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAiKjo6dGVz
dF9iIFhGQUlMICoiLAorICAgICAgICAgICAgIio6OnRlc3RfYyBQQVNTRUQgKiIsCisgICAgICAg
ICAgICAiKjo6dGVzdF9kIFBBU1NFRCAqIiwKKyAgICAgICAgICAgICIqIDIgcGFzc2VkLCAxIGRl
c2VsZWN0ZWQsIDEgeGZhaWxlZCBpbiAqIiwKKyAgICAgICAgXQorICAgICkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF90ZXJtaW5hbC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF90ZXJtaW5hbC5weQppbmRleCA4ZjA4YWQzNGZhMWY0NmRjNGI3OGQ5N2Y0MjJlZGNi
ODYxZGIyYWVkLi43NTJjODk0Y2E5MzhlNTY2YTJjMWZmYmRjY2Q1NDFhZTI1NTVkZGQ2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfdGVybWluYWwucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy90ZXN0X3Rlcm1pbmFsLnB5CkBAIC0xLDMzICsxLDQxIEBACisjIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQogIiIiCiB0ZXJtaW5hbCByZXBvcnRpbmcgb2YgdGhlIGZ1bGwgdGVz
dGluZyBwcm9jZXNzLgogIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBv
cwogaW1wb3J0IHN5cworaW1wb3J0IHRleHR3cmFwCiAKIGltcG9ydCBwbHVnZ3kKLWltcG9ydCBf
cHl0ZXN0Ll9jb2RlCiBpbXBvcnQgcHkKKwogaW1wb3J0IHB5dGVzdAogZnJvbSBfcHl0ZXN0Lm1h
aW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAotZnJvbSBfcHl0ZXN0LnRlcm1pbmFsIGlt
cG9ydCBUZXJtaW5hbFJlcG9ydGVyLCByZXByX3B5dGhvbnZlcnNpb24sIGdldHJlcG9ydG9wdAot
ZnJvbSBfcHl0ZXN0LnRlcm1pbmFsIGltcG9ydCBidWlsZF9zdW1tYXJ5X3N0YXRzX2xpbmUsIF9w
bHVnaW5fbmFtZXZlcnNpb25zCi0KK2Zyb20gX3B5dGVzdC5yZXBvcnRzIGltcG9ydCBCYXNlUmVw
b3J0Citmcm9tIF9weXRlc3QudGVybWluYWwgaW1wb3J0IF9mb2xkZWRfc2tpcHMKK2Zyb20gX3B5
dGVzdC50ZXJtaW5hbCBpbXBvcnQgX2dldF9saW5lX3dpdGhfcmVwcmNyYXNoX21lc3NhZ2UKK2Zy
b20gX3B5dGVzdC50ZXJtaW5hbCBpbXBvcnQgX3BsdWdpbl9uYW1ldmVyc2lvbnMKK2Zyb20gX3B5
dGVzdC50ZXJtaW5hbCBpbXBvcnQgYnVpbGRfc3VtbWFyeV9zdGF0c19saW5lCitmcm9tIF9weXRl
c3QudGVybWluYWwgaW1wb3J0IGdldHJlcG9ydG9wdAorZnJvbSBfcHl0ZXN0LnRlcm1pbmFsIGlt
cG9ydCBUZXJtaW5hbFJlcG9ydGVyCiAKIERpc3RJbmZvID0gY29sbGVjdGlvbnMubmFtZWR0dXBs
ZSgiRGlzdEluZm8iLCBbInByb2plY3RfbmFtZSIsICJ2ZXJzaW9uIl0pCiAKIAogY2xhc3MgT3B0
aW9uKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgdmVyYm9zZT1GYWxzZSwgZnVs
bHRyYWNlPUZhbHNlKToKLSAgICAgICAgc2VsZi52ZXJib3NlID0gdmVyYm9zZQorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB2ZXJib3NpdHk9MCwgZnVsbHRyYWNlPUZhbHNlKToKKyAgICAgICAgc2Vs
Zi52ZXJib3NpdHkgPSB2ZXJib3NpdHkKICAgICAgICAgc2VsZi5mdWxsdHJhY2UgPSBmdWxsdHJh
Y2UKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBhcmdzKHNlbGYpOgogICAgICAgICB2YWx1ZXMg
PSBbXQotICAgICAgICBpZiBzZWxmLnZlcmJvc2U6Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KCItdiIpCisgICAgICAgIHZhbHVlcy5hcHBlbmQoIi0tdmVyYm9zaXR5PSVkIiAlIHNlbGYudmVy
Ym9zaXR5KQogICAgICAgICBpZiBzZWxmLmZ1bGx0cmFjZToKICAgICAgICAgICAgIHZhbHVlcy5h
cHBlbmQoIi0tZnVsbHRyYWNlIikKICAgICAgICAgcmV0dXJuIHZhbHVlcwpAQCAtMzUsOSArNDMs
OSBAQCBjbGFzcyBPcHRpb24ob2JqZWN0KToKIAogQHB5dGVzdC5maXh0dXJlKAogICAgIHBhcmFt
cz1bCi0gICAgICAgIE9wdGlvbih2ZXJib3NlPUZhbHNlKSwKLSAgICAgICAgT3B0aW9uKHZlcmJv
c2U9VHJ1ZSksCi0gICAgICAgIE9wdGlvbih2ZXJib3NlPS0xKSwKKyAgICAgICAgT3B0aW9uKHZl
cmJvc2l0eT0wKSwKKyAgICAgICAgT3B0aW9uKHZlcmJvc2l0eT0xKSwKKyAgICAgICAgT3B0aW9u
KHZlcmJvc2l0eT0tMSksCiAgICAgICAgIE9wdGlvbihmdWxsdHJhY2U9VHJ1ZSksCiAgICAgXSwK
ICAgICBpZHM9WyJkZWZhdWx0IiwgInZlcmJvc2UiLCAicXVpZXQiLCAiZnVsbHRyYWNlIl0sCkBA
IC02OCw3ICs3Niw2IEBAIGRlZiB0ZXN0X3BsdWdpbl9uYW1ldmVyc2lvbihpbnB1dCwgZXhwZWN0
ZWQpOgogCiAKIGNsYXNzIFRlc3RUZXJtaW5hbChvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfcGFz
c19za2lwX2ZhaWwoc2VsZiwgdGVzdGRpciwgb3B0aW9uKToKICAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC04Miw3ICs4OSw3IEBAIGNsYXNzIFRlc3RUZXJt
aW5hbChvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgqb3B0aW9uLmFyZ3MpCi0gICAgICAgIGlmIG9wdGlvbi52ZXJib3Nl
OgorICAgICAgICBpZiBvcHRpb24udmVyYm9zaXR5ID4gMDoKICAgICAgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAg
ICAgICIqdGVzdF9wYXNzX3NraXBfZmFpbC5weTo6dGVzdF9vayBQQVNTKiIsCkBAIC05MCw4ICs5
NywxMCBAQCBjbGFzcyBUZXN0VGVybWluYWwob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAg
Iip0ZXN0X3Bhc3Nfc2tpcF9mYWlsLnB5Ojp0ZXN0X2Z1bmMgRkFJTCoiLAogICAgICAgICAgICAg
ICAgIF0KICAgICAgICAgICAgICkKLSAgICAgICAgZWxzZToKKyAgICAgICAgZWxpZiBvcHRpb24u
dmVyYm9zaXR5ID09IDA6CiAgICAgICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyIqdGVzdF9wYXNzX3NraXBfZmFpbC5weSAuc0YqIl0pCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIuc0YqIl0pCiAgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgICAgIFsiICAgIGRlZiB0ZXN0X2Z1bmMo
KToiLCAiPiAgICAgICBhc3NlcnQgMCIsICJFICAgICAgIGFzc2VydCAwIl0KICAgICAgICAgKQpA
QCAtOTksNyArMTA4LDggQEAgY2xhc3MgVGVzdFRlcm1pbmFsKG9iamVjdCk6CiAgICAgZGVmIHRl
c3RfaW50ZXJuYWxlcnJvcihzZWxmLCB0ZXN0ZGlyLCBsaW5lY29tcCk6CiAgICAgICAgIG1vZGNv
bCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCJkZWYgdGVzdF9vbmUoKTogcGFzcyIpCiAgICAgICAg
IHJlcCA9IFRlcm1pbmFsUmVwb3J0ZXIobW9kY29sLmNvbmZpZywgZmlsZT1saW5lY29tcC5zdHJp
bmdpbykKLSAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgInJhaXNl
IFZhbHVlRXJyb3IoJ2hlbGxvJykiKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVF
cnJvcikgYXMgZXhjaW5mbzoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvIikK
ICAgICAgICAgcmVwLnB5dGVzdF9pbnRlcm5hbGVycm9yKGV4Y2luZm8uZ2V0cmVwcigpKQogICAg
ICAgICBsaW5lY29tcC5hc3NlcnRfY29udGFpbnNfbGluZXMoWyJJTlRFUk5BTEVSUk9SPiAqVmFs
dWVFcnJvcipoZWxsbyoiXSkKIApAQCAtMTM2LDYgKzE0NiwzMSBAQCBjbGFzcyBUZXN0VGVybWlu
YWwob2JqZWN0KToKICAgICAgICAgY2hpbGQuc2VuZGVvZigpCiAgICAgICAgIGNoaWxkLmtpbGwo
MTUpCiAKKyAgICBkZWYgdGVzdF9yZXBvcnRfY29sbGVjdF9hZnRlcl9oYWxmX2Ffc2Vjb25kKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IGZvciAiY29sbGVjdGluZyIgYmVpbmcgdXBk
YXRlZCBhZnRlciAwLjVzIiIiCisKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAg
ICAgICAgKip7CisgICAgICAgICAgICAgICAgInRlc3QxLnB5IjogIiIiCisgICAgICAgICAgICAg
ICAgaW1wb3J0IF9weXRlc3QudGVybWluYWwKKworICAgICAgICAgICAgICAgIF9weXRlc3QudGVy
bWluYWwuUkVQT1JUX0NPTExFQ1RJTkdfUkVTT0xVVElPTiA9IDAKKworICAgICAgICAgICAgICAg
IGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAg
ICAgICAiIiIsCisgICAgICAgICAgICAgICAgInRlc3QyLnB5IjogImRlZiB0ZXN0XzIoKTogcGFz
cyIsCisgICAgICAgICAgICB9CisgICAgICAgICkKKworICAgICAgICBjaGlsZCA9IHRlc3RkaXIu
c3Bhd25fcHl0ZXN0KCItdiB0ZXN0MS5weSB0ZXN0Mi5weSIpCisgICAgICAgIGNoaWxkLmV4cGVj
dChyImNvbGxlY3RpbmcgXC5cLlwuIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KHIiY29sbGVjdGlu
ZyAxIGl0ZW0iKQorICAgICAgICBjaGlsZC5leHBlY3QociJjb2xsZWN0aW5nIDIgaXRlbXMiKQor
ICAgICAgICBjaGlsZC5leHBlY3QociJjb2xsZWN0ZWQgMiBpdGVtcyIpCisgICAgICAgIHJlc3Qg
PSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikKKyAgICAgICAgYXNzZXJ0ICIyIHBhc3NlZCBp
biIgaW4gcmVzdAorCiAgICAgZGVmIHRlc3RfaXRlbXJlcG9ydF9zdWJjbGFzc2VzX3Nob3dfc3Vi
Y2xhc3NlZF9maWxlKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CiAgICAgICAgICAgICB0ZXN0X3AxPSIiIgpAQCAtMTU1LDcgKzE5MCw3IEBAIGNsYXNzIFRlc3RU
ZXJtaW5hbChvYmplY3QpOgogICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KHAyKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdF9w
Mi5weSAuKiIsICIqMSBwYXNzZWQqIl0pCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCItdiIsIHAyKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXZ2Iiwg
cDIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgICAgIFsi
KnRlc3RfcDIucHk6OlRlc3RNb3JlOjp0ZXN0X3AxKiA8LSAqdGVzdF9wMS5weSpQQVNTRUQqIl0K
ICAgICAgICAgKQpAQCAtMTYzLDE1ICsxOTgsMTUgQEAgY2xhc3MgVGVzdFRlcm1pbmFsKG9iamVj
dCk6CiAgICAgZGVmIHRlc3RfaXRlbXJlcG9ydF9kaXJlY3RjbGFzc2VzX25vdF9zaG93bl9hc19z
dWJjbGFzc2VzKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBhID0gdGVzdGRpci5ta3B5ZGlyKCJh
MTIzIikKICAgICAgICAgYS5qb2luKCJ0ZXN0X2hlbGxvMTIzLnB5Iikud3JpdGUoCi0gICAgICAg
ICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgK
KyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9i
amVjdCk6CisgICAgICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhv
ZChzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKICAgICAgICAg
ICAgICkKICAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYi
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXZ2IikKICAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyIqYTEyMy90ZXN0X2hlbGxvMTIzLnB5KlBBU1MqIl0pCiAgICAgICAgIGFzc2VydCAiIDwtICIg
bm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKQEAgLTI0OCw3ICsyODMsNiBAQCBjbGFzcyBUZXN0
VGVybWluYWwob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0Q29sbGVjdG9ubHkob2JqZWN0KToKLQog
ICAgIGRlZiB0ZXN0X2NvbGxlY3Rvbmx5X2Jhc2ljKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTI1OCw3ICsyOTIsNyBAQCBj
bGFzcyBUZXN0Q29sbGVjdG9ubHkob2JqZWN0KToKICAgICAgICAgKQogICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQogICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBbIjxNb2R1bGUgJ3Rlc3RfY29sbGVjdG9u
bHlfYmFzaWMucHknPiIsICIgIDxGdW5jdGlvbiAndGVzdF9mdW5jJz4iXQorICAgICAgICAgICAg
WyI8TW9kdWxlIHRlc3RfY29sbGVjdG9ubHlfYmFzaWMucHk+IiwgIiAgPEZ1bmN0aW9uIHRlc3Rf
ZnVuYz4iXQogICAgICAgICApCiAKICAgICBkZWYgdGVzdF9jb2xsZWN0b25seV9za2lwcGVkX21v
ZHVsZShzZWxmLCB0ZXN0ZGlyKToKQEAgLTI3MSw2ICszMDUsMTggQEAgY2xhc3MgVGVzdENvbGxl
Y3Rvbmx5KG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNv
bGxlY3Qtb25seSIsICItcnMiKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyIqRVJST1IgY29sbGVjdGluZyoiXSkKIAorICAgIGRlZiB0ZXN0X2NvbGxlY3Rvbmx5X2Rpc3Bs
YXlfdGVzdF9kZXNjcmlwdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYgdGVzdF93aXRoX2Rlc2Ny
aXB0aW9uKCk6CisgICAgICAgICAgICAgICAgXCIiIiBUaGlzIHRlc3QgaGFzIGEgZGVzY3JpcHRp
b24uCisgICAgICAgICAgICAgICAgXCIiIgorICAgICAgICAgICAgICAgIGFzc2VydCBUcnVlCisg
ICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItLWNvbGxlY3Qtb25seSIsICItLXZlcmJvc2UiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIgICAgVGhpcyB0ZXN0IGhhcyBhIGRlc2NyaXB0aW9uLiJdKQorCiAgICAg
ZGVmIHRlc3RfY29sbGVjdG9ubHlfZmFpbGVkX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKICAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiInJhaXNlIFZhbHVlRXJyb3IoMCkiIiIpCiAgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIpCkBAIC0zMDIsMTEg
KzM0OCwxMCBAQCBjbGFzcyBUZXN0Q29sbGVjdG9ubHkob2JqZWN0KToKICAgICAgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gMAogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCiAg
ICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgIio8TW9kdWxlICcqLnB5Jz4iLAotICAgICAg
ICAgICAgICAgICIqIDxGdW5jdGlvbiAndGVzdF9mdW5jMScqPiIsCi0gICAgICAgICAgICAgICAg
IiogPENsYXNzICdUZXN0Q2xhc3MnPiIsCi0gICAgICAgICAgICAgICAgIyAiKiAgPEluc3RhbmNl
ICcoKSc+IiwKLSAgICAgICAgICAgICAgICAiKiAgIDxGdW5jdGlvbiAndGVzdF9tZXRob2QnKj4i
LAorICAgICAgICAgICAgICAgICIqPE1vZHVsZSAqLnB5PiIsCisgICAgICAgICAgICAgICAgIiog
PEZ1bmN0aW9uIHRlc3RfZnVuYzE+IiwKKyAgICAgICAgICAgICAgICAiKiA8Q2xhc3MgVGVzdENs
YXNzPiIsCisgICAgICAgICAgICAgICAgIiogICA8RnVuY3Rpb24gdGVzdF9tZXRob2Q+IiwKICAg
ICAgICAgICAgIF0KICAgICAgICAgKQogCkBAIC0zMTUsMTMgKzM2MCwxMyBAQCBjbGFzcyBUZXN0
Q29sbGVjdG9ubHkob2JqZWN0KToKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tY29sbGVjdC1vbmx5IiwgcCkKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMgogICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9j
b2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAg
ICAiIiJcCisgICAgICAgICAgICAgICAgKkVSUk9SKgorICAgICAgICAgICAgICAgICpJbXBvcnRF
cnJvcioKKyAgICAgICAgICAgICAgICAqTm8gbW9kdWxlIG5hbWVkICpFcnJsayoKKyAgICAgICAg
ICAgICAgICAqMSBlcnJvcioKICAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICpFUlJP
UioKLSAgICAgICAgICAgICpJbXBvcnRFcnJvcioKLSAgICAgICAgICAgICpObyBtb2R1bGUgbmFt
ZWQgKkVycmxrKgotICAgICAgICAgICAgKjEgZXJyb3IqCi0gICAgICAgICIiIgogICAgICAgICAg
ICAgKS5zdHJpcCgpCiAgICAgICAgICkKIApAQCAtMzQ1LDIzICszOTAsMTIgQEAgY2xhc3MgVGVz
dENvbGxlY3Rvbmx5KG9iamVjdCk6CiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbIip0ZXN0X2Z1bi5weTogMSoiXSkKIAogCi1kZWYgdGVzdF9yZXByX3B5dGhvbl92ZXJzaW9u
KG1vbmtleXBhdGNoKToKLSAgICB0cnk6Ci0gICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lz
LCAidmVyc2lvbl9pbmZvIiwgKDIsIDUsIDEsICJmaW5hbCIsIDApKQotICAgICAgICBhc3NlcnQg
cmVwcl9weXRob252ZXJzaW9uKCkgPT0gIjIuNS4xLWZpbmFsLTAiCi0gICAgICAgIHN5cy52ZXJz
aW9uX2luZm8gPSB4ID0gKDIsIDMpCi0gICAgICAgIGFzc2VydCByZXByX3B5dGhvbnZlcnNpb24o
KSA9PSBzdHIoeCkKLSAgICBmaW5hbGx5OgotICAgICAgICBtb25rZXlwYXRjaC51bmRvKCkgICMg
ZG8gdGhpcyBlYXJseSBhcyBweXRlc3QgY2FuIGdldCBjb25mdXNlZAotCi0KIGNsYXNzIFRlc3RG
aXh0dXJlUmVwb3J0aW5nKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9zZXR1cF9maXh0dXJlX2Vy
cm9yKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAg
ICAgICAiIiIKICAgICAgICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbihmdW5jdGlvbik6Ci0gICAg
ICAgICAgICAgICAgcHJpbnQgKCJzZXR1cCBmdW5jIikKKyAgICAgICAgICAgICAgICBwcmludCgi
c2V0dXAgZnVuYyIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKICAgICAgICAgICAgIGRlZiB0
ZXN0X25hZGEoKToKICAgICAgICAgICAgICAgICBwYXNzCkBAIC0zODUsNyArNDE5LDcgQEAgY2xh
c3MgVGVzdEZpeHR1cmVSZXBvcnRpbmcob2JqZWN0KToKICAgICAgICAgICAgIGRlZiB0ZXN0X25h
ZGEoKToKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBkZWYgdGVhcmRvd25fZnVu
Y3Rpb24oZnVuY3Rpb24pOgotICAgICAgICAgICAgICAgIHByaW50ICgidGVhcmRvd24gZnVuYyIp
CisgICAgICAgICAgICAgICAgcHJpbnQoInRlYXJkb3duIGZ1bmMiKQogICAgICAgICAgICAgICAg
IGFzc2VydCAwCiAgICAgICAgICIiIgogICAgICAgICApCkBAIC00MDgsNyArNDQyLDcgQEAgY2xh
c3MgVGVzdEZpeHR1cmVSZXBvcnRpbmcob2JqZWN0KToKICAgICAgICAgICAgICAgICBhc3NlcnQg
MCwgImZhaWxpbmdmdW5jIgogCiAgICAgICAgICAgICBkZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVu
Y3Rpb24pOgotICAgICAgICAgICAgICAgIHByaW50ICgidGVhcmRvd24gZnVuYyIpCisgICAgICAg
ICAgICAgICAgcHJpbnQoInRlYXJkb3duIGZ1bmMiKQogICAgICAgICAgICAgICAgIGFzc2VydCBG
YWxzZQogICAgICAgICAiIiIKICAgICAgICAgKQpAQCAtNDMyLDEzICs0NjYsMTMgQEAgY2xhc3Mg
VGVzdEZpeHR1cmVSZXBvcnRpbmcob2JqZWN0KToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuY3Rp
b24pOgotICAgICAgICAgICAgICAgIHByaW50ICgic2V0dXAgZnVuYyIpCisgICAgICAgICAgICAg
ICAgcHJpbnQoInNldHVwIGZ1bmMiKQogCiAgICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0IDAsICJmYWlsaW5nZnVuYyIKIAogICAgICAgICAgICAgZGVm
IHRlYXJkb3duX2Z1bmN0aW9uKGZ1bmN0aW9uKToKLSAgICAgICAgICAgICAgICBwcmludCAoInRl
YXJkb3duIGZ1bmMiKQorICAgICAgICAgICAgICAgIHByaW50KCJ0ZWFyZG93biBmdW5jIikKICAg
ICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQpAQCAtNDU3LDcgKzQ5MSw2IEBAIGNsYXNzIFRlc3RGaXh0dXJlUmVwb3J0aW5nKG9iamVjdCk6
CiAKIAogY2xhc3MgVGVzdFRlcm1pbmFsRnVuY3Rpb25hbChvYmplY3QpOgotCiAgICAgZGVmIHRl
c3RfZGVzZWxlY3RlZChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdHBhdGggPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTQ3MSwxMyArNTA0LDQ0IEBAIGNsYXNz
IFRlc3RUZXJtaW5hbEZ1bmN0aW9uYWwob2JqZWN0KToKICAgICAgICAgKQogICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLWsiLCAidGVzdF90d286IiwgdGVzdHBhdGgpCiAgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAgICAgICAgIFsiY29sbGVjdGVk
IDMgaXRlbXMgLyAxIGRlc2VsZWN0ZWQiLCAiKnRlc3RfZGVzZWxlY3RlZC5weSAuLioiXQorICAg
ICAgICAgICAgWyJjb2xsZWN0ZWQgMyBpdGVtcyAvIDEgZGVzZWxlY3RlZCAvIDIgc2VsZWN0ZWQi
LCAiKnRlc3RfZGVzZWxlY3RlZC5weSAuLioiXQorICAgICAgICApCisgICAgICAgIGFzc2VydCBy
ZXN1bHQucmV0ID09IDAKKworICAgIGRlZiB0ZXN0X2Rlc2VsZWN0ZWRfd2l0aF9ob29rd3JhcHBl
cihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2Vjb25mdGVz
dCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAg
ICAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgICAgICAgICBkZWYg
cHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoY29uZmlnLCBpdGVtcyk6CisgICAgICAgICAg
ICAgICAgeWllbGQKKyAgICAgICAgICAgICAgICBkZXNlbGVjdGVkID0gaXRlbXMucG9wKCkKKyAg
ICAgICAgICAgICAgICBjb25maWcuaG9vay5weXRlc3RfZGVzZWxlY3RlZChpdGVtcz1bZGVzZWxl
Y3RlZF0pCisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0cGF0aCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X29uZSgpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgZGVm
IHRlc3RfdHdvKCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBk
ZWYgdGVzdF90aHJlZSgpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICIi
IgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RwYXRo
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbCisg
ICAgICAgICAgICAgICAgImNvbGxlY3RlZCAzIGl0ZW1zIC8gMSBkZXNlbGVjdGVkIC8gMiBzZWxl
Y3RlZCIsCisgICAgICAgICAgICAgICAgIio9IDIgcGFzc2VkLCAxIGRlc2VsZWN0ZWQgaW4qIiwK
KyAgICAgICAgICAgIF0KICAgICAgICAgKQogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAw
CiAKICAgICBkZWYgdGVzdF9zaG93X2Rlc2VsZWN0ZWRfaXRlbXNfdXNpbmdfbWFya2V4cHJfYmVm
b3JlX3Rlc3RfZXhlY3V0aW9uKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCi0gICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHRlc3Rfc2hvd19kZXNlbGVjdGVk
PSIiIgogICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogCiAgICAgICAgICAgICBAcHl0ZXN0Lm1h
cmsuZm9vCkBAIC00OTUsOCArNTU5LDggQEAgY2xhc3MgVGVzdFRlcm1pbmFsRnVuY3Rpb25hbChv
YmplY3QpOgogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLW0iLCAibm90IGZv
byIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgICAgIFsK
LSAgICAgICAgICAgICAgICAiY29sbGVjdGVkIDMgaXRlbXMgLyAxIGRlc2VsZWN0ZWQiLAotICAg
ICAgICAgICAgICAgICIqdGVzdF9zaG93X2RlcyoucHkgLi4qIiwKKyAgICAgICAgICAgICAgICAi
Y29sbGVjdGVkIDMgaXRlbXMgLyAxIGRlc2VsZWN0ZWQgLyAyIHNlbGVjdGVkIiwKKyAgICAgICAg
ICAgICAgICAiKnRlc3Rfc2hvd19kZXNlbGVjdGVkLnB5IC4uKiIsCiAgICAgICAgICAgICAgICAg
Iio9IDIgcGFzc2VkLCAxIGRlc2VsZWN0ZWQgaW4gKiA9KiIsCiAgICAgICAgICAgICBdCiAgICAg
ICAgICkKQEAgLTUzNyw3ICs2MDEsNyBAQCBjbGFzcyBUZXN0VGVybWluYWxGdW5jdGlvbmFsKG9i
amVjdCk6CiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbInRlc3RfcGFzc2Vz
LnB5IC4uKiIsICIqIDIgcGFzcyoiXSkKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAog
Ci0gICAgZGVmIHRlc3RfaGVhZGVyX3RyYWlsZXJfaW5mbyhzZWxmLCB0ZXN0ZGlyKToKKyAgICBk
ZWYgdGVzdF9oZWFkZXJfdHJhaWxlcl9pbmZvKHNlbGYsIHRlc3RkaXIsIHJlcXVlc3QpOgogICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGRl
ZiB0ZXN0X3Bhc3NlcygpOgpAQCAtNTYxLDkgKzYyNSwzOCBAQCBjbGFzcyBUZXN0VGVybWluYWxG
dW5jdGlvbmFsKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIj0qIDEgcGFzc2VkKmluICouWzAt
OV1bMC05XSBzZWNvbmRzICo9IiwKICAgICAgICAgICAgIF0KICAgICAgICAgKQotICAgICAgICBp
ZiBweXRlc3QuY29uZmlnLnBsdWdpbm1hbmFnZXIubGlzdF9wbHVnaW5fZGlzdGluZm8oKToKKyAg
ICAgICAgaWYgcmVxdWVzdC5jb25maWcucGx1Z2lubWFuYWdlci5saXN0X3BsdWdpbl9kaXN0aW5m
bygpOgogICAgICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsicGx1Z2luczog
KiJdKQogCisgICAgZGVmIHRlc3RfaGVhZGVyKHNlbGYsIHRlc3RkaXIsIHJlcXVlc3QpOgorICAg
ICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJ0ZXN0cyIpLmVuc3VyZV9kaXIoKQorICAgICAgICB0
ZXN0ZGlyLnRtcGRpci5qb2luKCJndWkiKS5lbnN1cmVfZGlyKCkKKworICAgICAgICAjIG5vIGlu
aSBmaWxlCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsicm9vdGRpcjogKnRlc3RfaGVhZGVyMCJdKQorCisg
ICAgICAgICMgd2l0aCBpbmlmaWxlCisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiJbcHl0ZXN0
XSIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJyb290ZGlyOiAqdGVzdF9oZWFkZXIwLCBpbmlmaWxl
OiB0b3guaW5pIl0pCisKKyAgICAgICAgIyB3aXRoIHRlc3RwYXRocyBvcHRpb24sIGFuZCBub3Qg
cGFzc2luZyBhbnl0aGluZyBpbiB0aGUgY29tbWFuZC1saW5lCisgICAgICAgIHRlc3RkaXIubWFr
ZWluaSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAg
IHRlc3RwYXRocyA9IHRlc3RzIGd1aQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcygKKyAgICAgICAgICAgIFsicm9vdGRpcjogKnRlc3RfaGVhZGVyMCwgaW5pZmlsZTog
dG94LmluaSwgdGVzdHBhdGhzOiB0ZXN0cywgZ3VpIl0KKyAgICAgICAgKQorCisgICAgICAgICMg
d2l0aCB0ZXN0cGF0aHMgb3B0aW9uLCBwYXNzaW5nIGRpcmVjdG9yeSBpbiBjb21tYW5kLWxpbmU6
IGRvIG5vdCBzaG93IHRlc3RwYXRocyB0aGVuCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCJ0ZXN0cyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbInJv
b3RkaXI6ICp0ZXN0X2hlYWRlcjAsIGluaWZpbGU6IHRveC5pbmkiXSkKKwogICAgIGRlZiB0ZXN0
X3Nob3dsb2NhbHMoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlm
aWxlKAogICAgICAgICAgICAgIiIiCkBAIC01ODIsOCArNjc1LDkgQEAgY2xhc3MgVGVzdFRlcm1p
bmFsRnVuY3Rpb25hbChvYmplY3QpOgogICAgICAgICAgICAgXQogICAgICAgICApCiAKLSAgICBk
ZWYgdGVzdF92ZXJib3NlX3JlcG9ydGluZyhzZWxmLCB0ZXN0ZGlyLCBweXRlc3Rjb25maWcpOgot
ICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAg
ICBkZWYgdmVyYm9zZV90ZXN0ZmlsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmV0dXJuIHRl
c3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAogICAgICAgICAgICAgZGVmIHRlc3RfZmFpbCgpOgpAQCAtNTk5LDIyICs2OTMsMzEgQEAg
Y2xhc3MgVGVzdFRlcm1pbmFsRnVuY3Rpb25hbChvYmplY3QpOgogICAgICAgICAgICAgICAgIHlp
ZWxkIGNoZWNrLCAwCiAgICAgICAgICIiIgogICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KHAxLCAiLXYiKQorCisgICAgZGVmIHRlc3RfdmVyYm9zZV9yZXBvcnRp
bmcoc2VsZiwgdmVyYm9zZV90ZXN0ZmlsZSwgdGVzdGRpciwgcHl0ZXN0Y29uZmlnKToKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoCisgICAgICAgICAgICB2ZXJib3NlX3Rlc3Rm
aWxlLCAiLXYiLCAiLVdhbHdheXM6OnB5dGVzdC5QeXRlc3RXYXJuaW5nIgorICAgICAgICApCiAg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgICAgIFsKICAgICAg
ICAgICAgICAgICAiKnRlc3RfdmVyYm9zZV9yZXBvcnRpbmcucHk6OnRlc3RfZmFpbCAqRkFJTCoi
LAogICAgICAgICAgICAgICAgICIqdGVzdF92ZXJib3NlX3JlcG9ydGluZy5weTo6dGVzdF9wYXNz
ICpQQVNTKiIsCiAgICAgICAgICAgICAgICAgIip0ZXN0X3ZlcmJvc2VfcmVwb3J0aW5nLnB5OjpU
ZXN0Q2xhc3M6OnRlc3Rfc2tpcCAqU0tJUCoiLAotICAgICAgICAgICAgICAgICIqdGVzdF92ZXJi
b3NlX3JlcG9ydGluZy5weTo6dGVzdF9nZW4qMCogKkZBSUwqIiwKKyAgICAgICAgICAgICAgICAi
KnRlc3RfdmVyYm9zZV9yZXBvcnRpbmcucHk6OnRlc3RfZ2VuICpYRkFJTCoiLAogICAgICAgICAg
ICAgXQogICAgICAgICApCiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKIAorICAgIGRl
ZiB0ZXN0X3ZlcmJvc2VfcmVwb3J0aW5nX3hkaXN0KHNlbGYsIHZlcmJvc2VfdGVzdGZpbGUsIHRl
c3RkaXIsIHB5dGVzdGNvbmZpZyk6CiAgICAgICAgIGlmIG5vdCBweXRlc3Rjb25maWcucGx1Z2lu
bWFuYWdlci5nZXRfcGx1Z2luKCJ4ZGlzdCIpOgogICAgICAgICAgICAgcHl0ZXN0LnNraXAoInhk
aXN0IHBsdWdpbiBub3QgaW5zdGFsbGVkIikKIAotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdChwMSwgIi12IiwgIi1uIDEiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWyIqRkFJTCp0ZXN0X3ZlcmJvc2VfcmVwb3J0aW5nLnB5Ojp0ZXN0X2ZhaWwqIl0pCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KAorICAgICAgICAgICAgdmVyYm9zZV90
ZXN0ZmlsZSwgIi12IiwgIi1uIDEiLCAiLVdhbHdheXM6OnB5dGVzdC5QeXRlc3RXYXJuaW5nIgor
ICAgICAgICApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAg
ICAgIFsiKkZBSUwqdGVzdF92ZXJib3NlX3JlcG9ydGluZ194ZGlzdC5weTo6dGVzdF9mYWlsKiJd
CisgICAgICAgICkKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQogCiAgICAgZGVmIHRl
c3RfcXVpZXRfcmVwb3J0aW5nKHNlbGYsIHRlc3RkaXIpOgpAQCAtNjM1LDcgKzczOCwxMCBAQCBj
bGFzcyBUZXN0VGVybWluYWxGdW5jdGlvbmFsKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCAiPT09
IiBub3QgaW4gcwogICAgICAgICBhc3NlcnQgInBhc3NlZCIgbm90IGluIHMKIAotICAgIGRlZiB0
ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNoX2hvb2soc2VsZiwgdGVzdGRpcik6CisgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAicGFyYW1zIiwgWygpLCAoIi0tY29sbGVj
dC1vbmx5IiwpXSwgaWRzPVsibm8tcGFyYW1zIiwgImNvbGxlY3Qtb25seSJdCisgICAgKQorICAg
IGRlZiB0ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNoX2hvb2soc2VsZiwgdGVzdGRpciwgcGFy
YW1zKToKICAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCiAgICAgICAgICAgICAiIiIKICAg
ICAgICAgICAgIGRlZiBweXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5pc2goY29uZmlnLCBzdGFy
dGRpciwgaXRlbXMpOgpAQCAtNjUwLDE2ICs3NTYsNTEgQEAgY2xhc3MgVGVzdFRlcm1pbmFsRnVu
Y3Rpb25hbChvYmplY3QpOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgIiIiCiAgICAg
ICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgqcGFyYW1zKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyJjb2xsZWN0ZWQgMyBpdGVtcyIsICJoZWxsbyBmcm9tIGhvb2s6IDMgaXRl
bXMiXSkKIAorICAgIGRlZiB0ZXN0X3N1bW1hcnlfZl9hbGlhcyhzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgIiIiVGVzdCB0aGF0ICdmJyBhbmQgJ0YnIHJlcG9ydCBjaGFycyBhcmUgYWxpYXNlcyBh
bmQgZG9uJ3Qgc2hvdyB1cCB0d2ljZSBpbiB0aGUgc3VtbWFyeSAoIzYzMzQpIiIiCisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRl
c3QoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAgICAgICAgICIiIgorICAg
ICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcmZGIikKKyAgICAg
ICAgZXhwZWN0ZWQgPSAiRkFJTEVEIHRlc3Rfc3VtbWFyeV9mX2FsaWFzLnB5Ojp0ZXN0IC0gYXNz
ZXJ0IEZhbHNlIgorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoW2V4cGVjdGVk
XSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5zdGRvdXQubGluZXMuY291bnQoZXhwZWN0ZWQpID09
IDEKKworICAgIGRlZiB0ZXN0X3N1bW1hcnlfc19hbGlhcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgIiIiVGVzdCB0aGF0ICdzJyBhbmQgJ1MnIHJlcG9ydCBjaGFycyBhcmUgYWxpYXNlcyBhbmQg
ZG9uJ3Qgc2hvdyB1cCB0d2ljZSBpbiB0aGUgc3VtbWFyeSIiIgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKIAot
ZGVmIHRlc3RfZmFpbF9leHRyYV9yZXBvcnRpbmcodGVzdGRpcik6Ci0gICAgdGVzdGRpci5tYWtl
cHlmaWxlKCJkZWYgdGVzdF90aGlzKCk6IGFzc2VydCAwIikKKyAgICAgICAgICAgIEBweXRlc3Qu
bWFyay5za2lwCisgICAgICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItcnNTIikKKyAgICAgICAgZXhwZWN0ZWQgPSAiU0tJUFBFRCBbMV0gdGVzdF9zdW1t
YXJ5X3NfYWxpYXMucHk6MzogdW5jb25kaXRpb25hbCBza2lwIgorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoW2V4cGVjdGVkXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5zdGRv
dXQubGluZXMuY291bnQoZXhwZWN0ZWQpID09IDEKKworCitkZWYgdGVzdF9mYWlsX2V4dHJhX3Jl
cG9ydGluZyh0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJD
T0xVTU5TIiwgIjgwIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X3RoaXMoKTog
YXNzZXJ0IDAsICd0aGlzX2ZhaWxlZCcgKiAxMDAiKQogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCkKICAgICBhc3NlcnQgInNob3J0IHRlc3Qgc3VtbWFyeSIgbm90IGluIHJlc3VsdC5z
dGRvdXQuc3RyKCkKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJmIikKLSAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdCBzdW1tYXJ5KiIsICJGQUlMKnRlc3Rf
ZmFpbF9leHRyYV9yZXBvcnRpbmcqIl0pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAorICAgICAgICBbCisgICAgICAgICAgICAiKnRlc3Qgc3VtbWFyeSoiLAorICAgICAgICAgICAg
IkZBSUxFRCB0ZXN0X2ZhaWxfZXh0cmFfcmVwb3J0aW5nLnB5Ojp0ZXN0X3RoaXMgLSBBc3NlcnRp
b25FcnJvcjogdGhpc19mYWlsZWR0Li4uIiwKKyAgICAgICAgXQorICAgICkKIAogCiBkZWYgdGVz
dF9mYWlsX3JlcG9ydGluZ19vbl9wYXNzKHRlc3RkaXIpOgpAQCAtNjg1LDE0ICs4MjYsMzAgQEAg
ZGVmIHRlc3RfcGFzc19yZXBvcnRpbmdfb25fZmFpbCh0ZXN0ZGlyKToKIGRlZiB0ZXN0X3Bhc3Nf
b3V0cHV0X3JlcG9ydGluZyh0ZXN0ZGlyKToKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAg
ICAgICIiIgotICAgICAgICBkZWYgdGVzdF9wYXNzX291dHB1dCgpOgorICAgICAgICBkZWYgdGVz
dF9wYXNzX2hhc19vdXRwdXQoKToKICAgICAgICAgICAgIHByaW50KCJGb3VyIHNjb3JlIGFuZCBz
ZXZlbiB5ZWFycyBhZ28uLi4iKQorICAgICAgICBkZWYgdGVzdF9wYXNzX25vX291dHB1dCgpOgor
ICAgICAgICAgICAgcGFzcwogICAgICIiIgogICAgICkKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCi0gICAgYXNzZXJ0ICJGb3VyIHNjb3JlIGFuZCBzZXZlbiB5ZWFycyBhZ28uLi4i
IG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCi0gICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi1yUCIpCi0gICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiRm91ciBzY29yZSBh
bmQgc2V2ZW4geWVhcnMgYWdvLi4uIl0pCisgICAgcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAg
ICBhc3NlcnQgInRlc3RfcGFzc19oYXNfb3V0cHV0IiBub3QgaW4gcworICAgIGFzc2VydCAiRm91
ciBzY29yZSBhbmQgc2V2ZW4geWVhcnMgYWdvLi4uIiBub3QgaW4gcworICAgIGFzc2VydCAidGVz
dF9wYXNzX25vX291dHB1dCIgbm90IGluIHMKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLXJQcCIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisg
ICAgICAgICAgICAiKj0gUEFTU0VTID0qIiwKKyAgICAgICAgICAgICIqXyB0ZXN0X3Bhc3NfaGFz
X291dHB1dCBfKiIsCisgICAgICAgICAgICAiKi0gQ2FwdHVyZWQgc3Rkb3V0IGNhbGwgLSoiLAor
ICAgICAgICAgICAgIkZvdXIgc2NvcmUgYW5kIHNldmVuIHllYXJzIGFnby4uLiIsCisgICAgICAg
ICAgICAiKj0gc2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8gPSoiLAorICAgICAgICAgICAgIlBBU1NF
RCB0ZXN0X3Bhc3Nfb3V0cHV0X3JlcG9ydGluZy5weTo6dGVzdF9wYXNzX2hhc19vdXRwdXQiLAor
ICAgICAgICAgICAgIlBBU1NFRCB0ZXN0X3Bhc3Nfb3V0cHV0X3JlcG9ydGluZy5weTo6dGVzdF9w
YXNzX25vX291dHB1dCIsCisgICAgICAgICAgICAiKj0gMiBwYXNzZWQgaW4gKiIsCisgICAgICAg
IF0KKyAgICApCiAKIAogZGVmIHRlc3RfY29sb3JfeWVzKHRlc3RkaXIpOgpAQCAtNzM1LDkgKzg5
Miw3IEBAIGRlZiB0ZXN0X2NvbG9yX3llc19jb2xsZWN0aW9uX29uX25vbl9hdHR5KHRlc3RkaXIs
IHZlcmJvc2UpOgogCiAKIGRlZiB0ZXN0X2dldHJlcG9ydG9wdCgpOgotCiAgICAgY2xhc3MgQ29u
ZmlnKG9iamVjdCk6Ci0KICAgICAgICAgY2xhc3MgT3B0aW9uKG9iamVjdCk6CiAgICAgICAgICAg
ICByZXBvcnRjaGFycyA9ICIiCiAgICAgICAgICAgICBkaXNhYmxlX3dhcm5pbmdzID0gVHJ1ZQpA
QCAtNzUyLDE0ICs5MDcsMjMgQEAgZGVmIHRlc3RfZ2V0cmVwb3J0b3B0KCk6CiAgICAgY29uZmln
Lm9wdGlvbi5yZXBvcnRjaGFycyA9ICJzZnh3IgogICAgIGFzc2VydCBnZXRyZXBvcnRvcHQoY29u
ZmlnKSA9PSAic2Z4IgogCi0gICAgY29uZmlnLm9wdGlvbi5yZXBvcnRjaGFycyA9ICJzZngiCisg
ICAgIyBOb3cgd2l0aCAtLWRpc2FibGUtd2FybmluZ3MuCiAgICAgY29uZmlnLm9wdGlvbi5kaXNh
YmxlX3dhcm5pbmdzID0gRmFsc2UKKyAgICBjb25maWcub3B0aW9uLnJlcG9ydGNoYXJzID0gImEi
CisgICAgYXNzZXJ0IGdldHJlcG9ydG9wdChjb25maWcpID09ICJzeFh3RWYiICAjIE5PVEU6ICJ3
IiBpbmNsdWRlZCEKKworICAgIGNvbmZpZy5vcHRpb24ucmVwb3J0Y2hhcnMgPSAic2Z4IgogICAg
IGFzc2VydCBnZXRyZXBvcnRvcHQoY29uZmlnKSA9PSAic2Z4dyIKIAogICAgIGNvbmZpZy5vcHRp
b24ucmVwb3J0Y2hhcnMgPSAic2Z4dyIKLSAgICBjb25maWcub3B0aW9uLmRpc2FibGVfd2Fybmlu
Z3MgPSBGYWxzZQogICAgIGFzc2VydCBnZXRyZXBvcnRvcHQoY29uZmlnKSA9PSAic2Z4dyIKIAor
ICAgIGNvbmZpZy5vcHRpb24ucmVwb3J0Y2hhcnMgPSAiYSIKKyAgICBhc3NlcnQgZ2V0cmVwb3J0
b3B0KGNvbmZpZykgPT0gInN4WHdFZiIgICMgTk9URTogInciIGluY2x1ZGVkIQorCisgICAgY29u
ZmlnLm9wdGlvbi5yZXBvcnRjaGFycyA9ICJBIgorICAgIGFzc2VydCBnZXRyZXBvcnRvcHQoY29u
ZmlnKSA9PSAiUHBzeFh3RWYiCisKIAogZGVmIHRlc3RfdGVybWluYWxyZXBvcnRlcl9yZXBvcnRv
cHRfYWRkb3B0cyh0ZXN0ZGlyKToKICAgICB0ZXN0ZGlyLm1ha2VpbmkoIltweXRlc3RdXG5hZGRv
cHRzPS1ycyIpCkBAIC04NDUsNyArMTAwOSw3IEBAIGNsYXNzIFRlc3RHZW5lcmljUmVwb3J0aW5n
KG9iamVjdCk6CiAgICAgICAgICAgICBkZWYgZygpOgogICAgICAgICAgICAgICAgIHJhaXNlIElu
ZGV4RXJyb3IKICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKLSAgICAgICAgICAgICAgICBw
cmludCAoNio3KQorICAgICAgICAgICAgICAgIHByaW50KDYqNykKICAgICAgICAgICAgICAgICBn
KCkgICMgLS1jYWxsaW5nLS0KICAgICAgICAgIiIiCiAgICAgICAgICkKQEAgLTg1NCw5ICsxMDE4
LDkgQEAgY2xhc3MgVGVzdEdlbmVyaWNSZXBvcnRpbmcob2JqZWN0KToKICAgICAgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXRiPSVzIiAlIHRib3B0KQogICAgICAgICAgICAg
cyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKICAgICAgICAgICAgIGlmIHRib3B0ID09ICJsb25nIjoK
LSAgICAgICAgICAgICAgICBhc3NlcnQgInByaW50ICg2KjcpIiBpbiBzCisgICAgICAgICAgICAg
ICAgYXNzZXJ0ICJwcmludCg2KjcpIiBpbiBzCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIGFzc2VydCAicHJpbnQgKDYqNykiIG5vdCBpbiBzCisgICAgICAgICAgICAgICAgYXNz
ZXJ0ICJwcmludCg2KjcpIiBub3QgaW4gcwogICAgICAgICAgICAgaWYgdGJvcHQgIT0gIm5vIjoK
ICAgICAgICAgICAgICAgICBhc3NlcnQgIi0tY2FsbGluZy0tIiBpbiBzCiAgICAgICAgICAgICAg
ICAgYXNzZXJ0ICJJbmRleEVycm9yIiBpbiBzCkBAIC04NzIsNyArMTAzNiw3IEBAIGNsYXNzIFRl
c3RHZW5lcmljUmVwb3J0aW5nKG9iamVjdCk6CiAgICAgICAgICAgICBkZWYgZygpOgogICAgICAg
ICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IKICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKCk6
Ci0gICAgICAgICAgICAgICAgcHJpbnQgKDYqNykKKyAgICAgICAgICAgICAgICBwcmludCg2Kjcp
CiAgICAgICAgICAgICAgICAgZygpICAjIC0tY2FsbGluZy0tCiAgICAgICAgICAgICBkZWYgdGVz
dF9mdW5jMigpOgogICAgICAgICAgICAgICAgIGFzc2VydCAwLCAiaGVsbG8iCkBAIC05NTUsNiAr
MTExOSw0NiBAQCBkZWYgcHl0ZXN0X3JlcG9ydF9oZWFkZXIoY29uZmlnLCBzdGFydGRpcik6CiAg
ICAgICAgIGFzc2VydCAiIVRoaXMgaXMgc3RkZXJyISIgbm90IGluIHN0ZG91dAogICAgICAgICBh
c3NlcnQgIiFUaGlzIGlzIGEgd2FybmluZyBsb2cgbXNnISIgbm90IGluIHN0ZG91dAogCisgICAg
ZGVmIHRlc3Rfc2hvd19jYXB0dXJlX3dpdGhfdGVhcmRvd25fbG9ncyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgIiIiRW5zdXJlIHRoYXQgdGhlIGNhcHR1cmluZyBvZiB0ZWFyZG93biBsb2dzIGhv
bm9yIC0tc2hvdy1jYXB0dXJlIHNldHRpbmciIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgbG9nZ2luZworICAgICAgICAg
ICAgaW1wb3J0IHN5cworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgYXV0b3VzZT0iVHJ1ZSIpCisgICAgICAg
ICAgICBkZWYgaG9va19lYWNoX3Rlc3QocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgeWllbGQK
KyAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCIhc3Rkb3V0ISIpCisgICAgICAgICAg
ICAgICAgc3lzLnN0ZGVyci53cml0ZSgiIXN0ZGVyciEiKQorICAgICAgICAgICAgICAgIGxvZ2dp
bmcud2FybmluZygiIWxvZyEiKQorCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICIiIgorICAgICAgICApCisKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tc2hvdy1jYXB0dXJlPXN0ZG91dCIsICIt
LXRiPXNob3J0Iikuc3Rkb3V0LnN0cigpCisgICAgICAgIGFzc2VydCAiIXN0ZG91dCEiIGluIHJl
c3VsdAorICAgICAgICBhc3NlcnQgIiFzdGRlcnIhIiBub3QgaW4gcmVzdWx0CisgICAgICAgIGFz
c2VydCAiIWxvZyEiIG5vdCBpbiByZXN1bHQKKworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLS1zaG93LWNhcHR1cmU9c3RkZXJyIiwgIi0tdGI9c2hvcnQiKS5zdGRvdXQuc3Ry
KCkKKyAgICAgICAgYXNzZXJ0ICIhc3Rkb3V0ISIgbm90IGluIHJlc3VsdAorICAgICAgICBhc3Nl
cnQgIiFzdGRlcnIhIiBpbiByZXN1bHQKKyAgICAgICAgYXNzZXJ0ICIhbG9nISIgbm90IGluIHJl
c3VsdAorCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXNob3ctY2FwdHVy
ZT1sb2ciLCAiLS10Yj1zaG9ydCIpLnN0ZG91dC5zdHIoKQorICAgICAgICBhc3NlcnQgIiFzdGRv
dXQhIiBub3QgaW4gcmVzdWx0CisgICAgICAgIGFzc2VydCAiIXN0ZGVyciEiIG5vdCBpbiByZXN1
bHQKKyAgICAgICAgYXNzZXJ0ICIhbG9nISIgaW4gcmVzdWx0CisKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi0tc2hvdy1jYXB0dXJlPW5vIiwgIi0tdGI9c2hvcnQiKS5zdGRv
dXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICIhc3Rkb3V0ISIgbm90IGluIHJlc3VsdAorICAgICAg
ICBhc3NlcnQgIiFzdGRlcnIhIiBub3QgaW4gcmVzdWx0CisgICAgICAgIGFzc2VydCAiIWxvZyEi
IG5vdCBpbiByZXN1bHQKKwogCiBAcHl0ZXN0Lm1hcmsueGZhaWwoIm5vdCBoYXNhdHRyKG9zLCAn
ZHVwJykiKQogZGVmIHRlc3RfZmRvcGVuX2tlcHRfYWxpdmVfaXNzdWUxMjQodGVzdGRpcik6CkBA
IC0xMDEzLDIyICsxMjE3LDY2IEBAIGRlZiB0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVzdGRpcik6
CiAgICAgKQogCiAKK0BweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiZGVmYXVsdCIpCiBkZWYg
dGVzdF90ZXJtaW5hbF9zdW1tYXJ5X3dhcm5pbmdzX2FyZV9kaXNwbGF5ZWQodGVzdGRpcik6CiAg
ICAgIiIiVGVzdCB0aGF0IHdhcm5pbmdzIGVtaXR0ZWQgZHVyaW5nIHB5dGVzdF90ZXJtaW5hbF9z
dW1tYXJ5IGFyZSBkaXNwbGF5ZWQuCiAgICAgKCMxMzA1KS4KICAgICAiIiIKICAgICB0ZXN0ZGly
Lm1ha2Vjb25mdGVzdCgKICAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCB3YXJuaW5ncwogICAg
ICAgICBkZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlcik6Ci0gICAg
ICAgICAgICBjb25maWcgPSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZwotICAgICAgICAgICAgY29u
ZmlnLndhcm4oJ0MxJywgJ2ludGVybmFsIHdhcm5pbmcnKQorICAgICAgICAgICAgd2FybmluZ3Mu
d2FybihVc2VyV2FybmluZygnaW50ZXJuYWwgd2FybmluZycpKQogICAgICIiIgogICAgICkKLSAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJ3IikKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCisgICAgICAgICIiIgorICAgICAgICBkZWYgdGVzdF9mYWlsdXJlKCk6CisgICAgICAgICAg
ICBpbXBvcnQgd2FybmluZ3MKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIndhcm5pbmdfZnJv
bV8iICsgInRlc3QiKQorICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAiIiIKKyAgICApCisgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1yYSIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAiKj0gd2FybmluZ3Mgc3VtbWFyeSA9
KiIsCisgICAgICAgICAgICAiKndhcm5pbmdfZnJvbV90ZXN0KiIsCisgICAgICAgICAgICAiKj0g
c2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8gPSoiLAorICAgICAgICAgICAgIio9IHdhcm5pbmdzIHN1
bW1hcnkgKGZpbmFsKSA9KiIsCisgICAgICAgICAgICAiKmNvbmZ0ZXN0LnB5OjM6KmludGVybmFs
IHdhcm5pbmciLAorICAgICAgICAgICAgIio9PSAxIGZhaWxlZCwgMiB3YXJuaW5ncyBpbiAqIiwK
KyAgICAgICAgXQorICAgICkKKyAgICBhc3NlcnQgIk5vbmUiIG5vdCBpbiByZXN1bHQuc3Rkb3V0
LnN0cigpCisgICAgc3Rkb3V0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCBzdGRv
dXQuY291bnQoIndhcm5pbmdfZnJvbV90ZXN0IikgPT0gMQorICAgIGFzc2VydCBzdGRvdXQuY291
bnQoIj09PSB3YXJuaW5ncyBzdW1tYXJ5ICIpID09IDIKKworCitAcHl0ZXN0Lm1hcmsuZmlsdGVy
d2FybmluZ3MoImRlZmF1bHQiKQorZGVmIHRlc3RfdGVybWluYWxfc3VtbWFyeV93YXJuaW5nc19o
ZWFkZXJfb25jZSh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIi
IgorICAgICAgICBkZWYgdGVzdF9mYWlsdXJlKCk6CisgICAgICAgICAgICBpbXBvcnQgd2Fybmlu
Z3MKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIndhcm5pbmdfZnJvbV8iICsgInRlc3QiKQor
ICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi1yYSIpCiAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAg
ICAgICBbIjx1bmRldGVybWluZWQgbG9jYXRpb24+IiwgIippbnRlcm5hbCB3YXJuaW5nIiwgIio9
PSAxIHdhcm5pbmdzIGluICoiXQorICAgICAgICBbCisgICAgICAgICAgICAiKj0gd2FybmluZ3Mg
c3VtbWFyeSA9KiIsCisgICAgICAgICAgICAiKndhcm5pbmdfZnJvbV90ZXN0KiIsCisgICAgICAg
ICAgICAiKj0gc2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8gPSoiLAorICAgICAgICAgICAgIio9PSAx
IGZhaWxlZCwgMSB3YXJuaW5ncyBpbiAqIiwKKyAgICAgICAgXQogICAgICkKICAgICBhc3NlcnQg
Ik5vbmUiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgc3Rkb3V0ID0gcmVzdWx0LnN0
ZG91dC5zdHIoKQorICAgIGFzc2VydCBzdGRvdXQuY291bnQoIndhcm5pbmdfZnJvbV90ZXN0Iikg
PT0gMQorICAgIGFzc2VydCBzdGRvdXQuY291bnQoIj09PSB3YXJuaW5ncyBzdW1tYXJ5ICIpID09
IDEKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCkBAIC0xMDg1LDI0ICsxMzMzLDc0IEBA
IGRlZiB0ZXN0X3Rlcm1pbmFsX3N1bW1hcnlfd2FybmluZ3NfYXJlX2Rpc3BsYXllZCh0ZXN0ZGly
KToKICkKIGRlZiB0ZXN0X3N1bW1hcnlfc3RhdHMoZXhwX2xpbmUsIGV4cF9jb2xvciwgc3RhdHNf
YXJnKToKICAgICBwcmludCgiQmFzZWQgb24gc3RhdHM6ICVzIiAlIHN0YXRzX2FyZykKLSAgICBw
cmludCgnRXhwZWN0IHN1bW1hcnk6ICIlcyI7IHdpdGggY29sb3IgIiVzIicgJSAoZXhwX2xpbmUs
IGV4cF9jb2xvcikpCisgICAgcHJpbnQoJ0V4cGVjdCBzdW1tYXJ5OiAie30iOyB3aXRoIGNvbG9y
ICJ7fSInLmZvcm1hdChleHBfbGluZSwgZXhwX2NvbG9yKSkKICAgICAobGluZSwgY29sb3IpID0g
YnVpbGRfc3VtbWFyeV9zdGF0c19saW5lKHN0YXRzX2FyZykKLSAgICBwcmludCgnQWN0dWFsbHkg
Z290OiAgICIlcyI7IHdpdGggY29sb3IgIiVzIicgJSAobGluZSwgY29sb3IpKQorICAgIHByaW50
KCdBY3R1YWxseSBnb3Q6ICAgInt9Ijsgd2l0aCBjb2xvciAie30iJy5mb3JtYXQobGluZSwgY29s
b3IpKQogICAgIGFzc2VydCBsaW5lID09IGV4cF9saW5lCiAgICAgYXNzZXJ0IGNvbG9yID09IGV4
cF9jb2xvcgogCiAKLWRlZiB0ZXN0X25vX3RyYWlsaW5nX3doaXRlc3BhY2VfYWZ0ZXJfaW5pZmls
ZV93b3JkKHRlc3RkaXIpOgotICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIiKQotICAg
IGFzc2VydCAiaW5pZmlsZTpcbiIgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorZGVmIHRlc3Rfc2tp
cF9jb3VudGluZ190b3dhcmRzX3N1bW1hcnkoKToKKyAgICBjbGFzcyBEdW1teVJlcG9ydChCYXNl
UmVwb3J0KToKKyAgICAgICAgY291bnRfdG93YXJkc19zdW1tYXJ5ID0gVHJ1ZQorCisgICAgcjEg
PSBEdW1teVJlcG9ydCgpCisgICAgcjIgPSBEdW1teVJlcG9ydCgpCisgICAgcmVzID0gYnVpbGRf
c3VtbWFyeV9zdGF0c19saW5lKHsiZmFpbGVkIjogKHIxLCByMil9KQorICAgIGFzc2VydCByZXMg
PT0gKCIyIGZhaWxlZCIsICJyZWQiKQogCi0gICAgdGVzdGRpci5tYWtlaW5pKCJbcHl0ZXN0XSIp
Ci0gICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIiIpCi0gICAgYXNzZXJ0ICJpbmlmaWxl
OiB0b3guaW5pXG4iIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICByMS5jb3VudF90b3dhcmRz
X3N1bW1hcnkgPSBGYWxzZQorICAgIHJlcyA9IGJ1aWxkX3N1bW1hcnlfc3RhdHNfbGluZSh7ImZh
aWxlZCI6IChyMSwgcjIpfSkKKyAgICBhc3NlcnQgcmVzID09ICgiMSBmYWlsZWQiLCAicmVkIikK
KworCitjbGFzcyBUZXN0Q2xhc3NpY091dHB1dFN0eWxlKG9iamVjdCk6CisgICAgIiIiRW5zdXJl
IGNsYXNzaWMgb3V0cHV0IHN0eWxlIHdvcmtzIGFzIGV4cGVjdGVkICgjMzg4MykiIiIKKworICAg
IEBweXRlc3QuZml4dHVyZQorICAgIGRlZiB0ZXN0X2ZpbGVzKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAqKnsKKyAgICAgICAgICAgICAg
ICAidGVzdF9vbmUucHkiOiAiZGVmIHRlc3Rfb25lKCk6IHBhc3MiLAorICAgICAgICAgICAgICAg
ICJ0ZXN0X3R3by5weSI6ICJkZWYgdGVzdF90d28oKTogYXNzZXJ0IDAiLAorICAgICAgICAgICAg
ICAgICJzdWIvdGVzdF90aHJlZS5weSI6ICIiIgorICAgICAgICAgICAgICAgICAgICBkZWYgdGVz
dF90aHJlZV8xKCk6IHBhc3MKKyAgICAgICAgICAgICAgICAgICAgZGVmIHRlc3RfdGhyZWVfMigp
OiBhc3NlcnQgMAorICAgICAgICAgICAgICAgICAgICBkZWYgdGVzdF90aHJlZV8zKCk6IHBhc3MK
KyAgICAgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICB9CisgICAgICAgICkKKworICAgIGRl
ZiB0ZXN0X25vcm1hbF92ZXJib3NpdHkoc2VsZiwgdGVzdGRpciwgdGVzdF9maWxlcyk6CisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItbyIsICJjb25zb2xlX291dHB1dF9zdHls
ZT1jbGFzc2ljIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAg
ICAgICAgWworICAgICAgICAgICAgICAgICJ0ZXN0X29uZS5weSAuIiwKKyAgICAgICAgICAgICAg
ICAidGVzdF90d28ucHkgRiIsCisgICAgICAgICAgICAgICAgInN1Ynt9dGVzdF90aHJlZS5weSAu
Ri4iLmZvcm1hdChvcy5zZXApLAorICAgICAgICAgICAgICAgICIqMiBmYWlsZWQsIDMgcGFzc2Vk
IGluKiIsCisgICAgICAgICAgICBdCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3ZlcmJvc2Uo
c2VsZiwgdGVzdGRpciwgdGVzdF9maWxlcyk6CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItbyIsICJjb25zb2xlX291dHB1dF9zdHlsZT1jbGFzc2ljIiwgIi12IikKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAg
ICAgICAgICJ0ZXN0X29uZS5weTo6dGVzdF9vbmUgUEFTU0VEIiwKKyAgICAgICAgICAgICAgICAi
dGVzdF90d28ucHk6OnRlc3RfdHdvIEZBSUxFRCIsCisgICAgICAgICAgICAgICAgInN1Ynt9dGVz
dF90aHJlZS5weTo6dGVzdF90aHJlZV8xIFBBU1NFRCIuZm9ybWF0KG9zLnNlcCksCisgICAgICAg
ICAgICAgICAgInN1Ynt9dGVzdF90aHJlZS5weTo6dGVzdF90aHJlZV8yIEZBSUxFRCIuZm9ybWF0
KG9zLnNlcCksCisgICAgICAgICAgICAgICAgInN1Ynt9dGVzdF90aHJlZS5weTo6dGVzdF90aHJl
ZV8zIFBBU1NFRCIuZm9ybWF0KG9zLnNlcCksCisgICAgICAgICAgICAgICAgIioyIGZhaWxlZCwg
MyBwYXNzZWQgaW4qIiwKKyAgICAgICAgICAgIF0KKyAgICAgICAgKQogCisgICAgZGVmIHRlc3Rf
cXVpZXQoc2VsZiwgdGVzdGRpciwgdGVzdF9maWxlcyk6CisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItbyIsICJjb25zb2xlX291dHB1dF9zdHlsZT1jbGFzc2ljIiwgIi1xIikK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiLkYuRi4iLCAiKjIgZmFpbGVk
LCAzIHBhc3NlZCBpbioiXSkKIAotY2xhc3MgVGVzdFByb2dyZXNzKG9iamVjdCk6CiAKK2NsYXNz
IFRlc3RQcm9ncmVzc091dHB1dFN0eWxlKG9iamVjdCk6CiAgICAgQHB5dGVzdC5maXh0dXJlCiAg
ICAgZGVmIG1hbnlfdGVzdHNfZmlsZXMoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKQEAgLTExNTEsNiArMTQ0OSwyMiBAQCBjbGFzcyBUZXN0UHJvZ3Jlc3Mob2Jq
ZWN0KToKICAgICAgICAgICAgIF0KICAgICAgICAgKQogCisgICAgZGVmIHRlc3RfY291bnQoc2Vs
ZiwgbWFueV90ZXN0c19maWxlcywgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgK
KyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGNvbnNv
bGVfb3V0cHV0X3N0eWxlID0gY291bnQKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAg
b3V0cHV0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBvdXRwdXQuc3Rkb3V0LnJlX21h
dGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIHIidGVzdF9iYXIucHkg
XC57MTB9IFxzKyBcWzEwLzIwXF0iLAorICAgICAgICAgICAgICAgIHIidGVzdF9mb28ucHkgXC57
NX0gXHMrIFxbMTUvMjBcXSIsCisgICAgICAgICAgICAgICAgciJ0ZXN0X2Zvb2Jhci5weSBcLns1
fSBccysgXFsyMC8yMFxdIiwKKyAgICAgICAgICAgIF0KKyAgICAgICAgKQorCiAgICAgZGVmIHRl
c3RfdmVyYm9zZShzZWxmLCBtYW55X3Rlc3RzX2ZpbGVzLCB0ZXN0ZGlyKToKICAgICAgICAgb3V0
cHV0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKICAgICAgICAgb3V0cHV0LnN0ZG91dC5yZV9t
YXRjaF9saW5lcygKQEAgLTExNjEsMTMgKzE0NzUsNDMgQEAgY2xhc3MgVGVzdFByb2dyZXNzKG9i
amVjdCk6CiAgICAgICAgICAgICBdCiAgICAgICAgICkKIAotICAgIGRlZiB0ZXN0X3hkaXN0X25v
cm1hbChzZWxmLCBtYW55X3Rlc3RzX2ZpbGVzLCB0ZXN0ZGlyKToKKyAgICBkZWYgdGVzdF92ZXJi
b3NlX2NvdW50KHNlbGYsIG1hbnlfdGVzdHNfZmlsZXMsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VpbmkoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAg
ICAgICAgICBjb25zb2xlX291dHB1dF9zdHlsZSA9IGNvdW50CisgICAgICAgICIiIgorICAgICAg
ICApCisgICAgICAgIG91dHB1dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgICAgIG91
dHB1dC5zdGRvdXQucmVfbWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAg
ICAgciJ0ZXN0X2Jhci5weTo6dGVzdF9iYXJcWzBcXSBQQVNTRUQgXHMrIFxbIDEvMjBcXSIsCisg
ICAgICAgICAgICAgICAgciJ0ZXN0X2Zvby5weTo6dGVzdF9mb29cWzRcXSBQQVNTRUQgXHMrIFxb
MTUvMjBcXSIsCisgICAgICAgICAgICAgICAgciJ0ZXN0X2Zvb2Jhci5weTo6dGVzdF9mb29iYXJc
WzRcXSBQQVNTRUQgXHMrIFxbMjAvMjBcXSIsCisgICAgICAgICAgICBdCisgICAgICAgICkKKwor
ICAgIGRlZiB0ZXN0X3hkaXN0X25vcm1hbChzZWxmLCBtYW55X3Rlc3RzX2ZpbGVzLCB0ZXN0ZGly
LCBtb25rZXlwYXRjaCk6CiAgICAgICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoInhkaXN0IikKKyAg
ICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KCJQWVRFU1RfRElTQUJMRV9QTFVHSU5fQVVUT0xPQUQi
LCByYWlzaW5nPUZhbHNlKQogICAgICAgICBvdXRwdXQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLW4y
IikKICAgICAgICAgb3V0cHV0LnN0ZG91dC5yZV9tYXRjaF9saW5lcyhbciJcLnsyMH0gXHMrIFxb
MTAwJVxdIl0pCiAKLSAgICBkZWYgdGVzdF94ZGlzdF92ZXJib3NlKHNlbGYsIG1hbnlfdGVzdHNf
ZmlsZXMsIHRlc3RkaXIpOgorICAgIGRlZiB0ZXN0X3hkaXN0X25vcm1hbF9jb3VudChzZWxmLCBt
YW55X3Rlc3RzX2ZpbGVzLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CiAgICAgICAgIHB5dGVzdC5p
bXBvcnRvcnNraXAoInhkaXN0IikKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KCJQWVRFU1Rf
RElTQUJMRV9QTFVHSU5fQVVUT0xPQUQiLCByYWlzaW5nPUZhbHNlKQorICAgICAgICB0ZXN0ZGly
Lm1ha2VpbmkoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAg
ICAgICBjb25zb2xlX291dHB1dF9zdHlsZSA9IGNvdW50CisgICAgICAgICIiIgorICAgICAgICAp
CisgICAgICAgIG91dHB1dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItbjIiKQorICAgICAgICBvdXRw
dXQuc3Rkb3V0LnJlX21hdGNoX2xpbmVzKFtyIlwuezIwfSBccysgXFsyMC8yMFxdIl0pCisKKyAg
ICBkZWYgdGVzdF94ZGlzdF92ZXJib3NlKHNlbGYsIG1hbnlfdGVzdHNfZmlsZXMsIHRlc3RkaXIs
IG1vbmtleXBhdGNoKToKKyAgICAgICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgieGRpc3QiKQorICAg
ICAgICBtb25rZXlwYXRjaC5kZWxlbnYoIlBZVEVTVF9ESVNBQkxFX1BMVUdJTl9BVVRPTE9BRCIs
IHJhaXNpbmc9RmFsc2UpCiAgICAgICAgIG91dHB1dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItbjIi
LCAiLXYiKQogICAgICAgICBvdXRwdXQuc3Rkb3V0LnJlX21hdGNoX2xpbmVzX3JhbmRvbSgKICAg
ICAgICAgICAgIFsKQEAgLTEyMzYsMTIgKzE1ODAsMTYgQEAgY2xhc3MgVGVzdFByb2dyZXNzV2l0
aFRlYXJkb3duKG9iamVjdCk6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAg
ICAgICIiIgogICAgICAgICAgICAgZGVmIHRlc3RfZm9vKGZhaWxfdGVhcmRvd24pOgotICAgICAg
ICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICAgICAgICAgICAgIGFzc2VydCAwCiAgICAgICAg
ICIiIgogICAgICAgICApCi0gICAgICAgIG91dHB1dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICAgICAgb3V0cHV0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1yZkUiKQogICAgICAgICBvdXRwdXQu
c3Rkb3V0LnJlX21hdGNoX2xpbmVzKAotICAgICAgICAgICAgW3IidGVzdF90ZWFyZG93bl93aXRo
X3Rlc3RfYWxzb19mYWlsaW5nLnB5IEZFXHMrXFsxMDAlXF0iXQorICAgICAgICAgICAgWworICAg
ICAgICAgICAgICAgIHIidGVzdF90ZWFyZG93bl93aXRoX3Rlc3RfYWxzb19mYWlsaW5nLnB5IEZF
XHMrXFsxMDAlXF0iLAorICAgICAgICAgICAgICAgICJGQUlMRUQgdGVzdF90ZWFyZG93bl93aXRo
X3Rlc3RfYWxzb19mYWlsaW5nLnB5Ojp0ZXN0X2ZvbyAtIGFzc2VydCAwIiwKKyAgICAgICAgICAg
ICAgICAiRVJST1IgdGVzdF90ZWFyZG93bl93aXRoX3Rlc3RfYWxzb19mYWlsaW5nLnB5Ojp0ZXN0
X2ZvbyAtIGFzc2VydCBGYWxzZSIsCisgICAgICAgICAgICBdCiAgICAgICAgICkKIAogICAgIGRl
ZiB0ZXN0X3RlYXJkb3duX21hbnkoc2VsZiwgdGVzdGRpciwgbWFueV9maWxlcyk6CkBAIC0xMjYx
LDcgKzE2MDksMTExIEBAIGNsYXNzIFRlc3RQcm9ncmVzc1dpdGhUZWFyZG93bihvYmplY3QpOgog
ICAgICAgICAgICAgXQogICAgICAgICApCiAKLSAgICBkZWYgdGVzdF94ZGlzdF9ub3JtYWwoc2Vs
ZiwgbWFueV9maWxlcywgdGVzdGRpcik6CisgICAgZGVmIHRlc3RfeGRpc3Rfbm9ybWFsKHNlbGYs
IG1hbnlfZmlsZXMsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKICAgICAgICAgcHl0ZXN0LmltcG9y
dG9yc2tpcCgieGRpc3QiKQorICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYoIlBZVEVTVF9ESVNB
QkxFX1BMVUdJTl9BVVRPTE9BRCIsIHJhaXNpbmc9RmFsc2UpCiAgICAgICAgIG91dHB1dCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItbjIiKQogICAgICAgICBvdXRwdXQuc3Rkb3V0LnJlX21hdGNoX2xp
bmVzKFtyIltcLkVdezQwfSBccysgXFsxMDAlXF0iXSkKKworCitkZWYgdGVzdF9za2lwX3JlYXNv
bnNfZm9sZGluZygpOgorICAgIHBhdGggPSAieHl6IgorICAgIGxpbmVubyA9IDMKKyAgICBtZXNz
YWdlID0gImp1c3RzbyIKKyAgICBsb25ncmVwciA9IChwYXRoLCBsaW5lbm8sIG1lc3NhZ2UpCisK
KyAgICBjbGFzcyBYKG9iamVjdCk6CisgICAgICAgIHBhc3MKKworICAgIGV2MSA9IFgoKQorICAg
IGV2MS53aGVuID0gImV4ZWN1dGUiCisgICAgZXYxLnNraXBwZWQgPSBUcnVlCisgICAgZXYxLmxv
bmdyZXByID0gbG9uZ3JlcHIKKworICAgIGV2MiA9IFgoKQorICAgIGV2Mi53aGVuID0gImV4ZWN1
dGUiCisgICAgZXYyLmxvbmdyZXByID0gbG9uZ3JlcHIKKyAgICBldjIuc2tpcHBlZCA9IFRydWUK
KworICAgICMgZXYzIG1pZ2h0IGJlIGEgY29sbGVjdGlvbiByZXBvcnQKKyAgICBldjMgPSBYKCkK
KyAgICBldjMud2hlbiA9ICJjb2xsZWN0IgorICAgIGV2My5sb25ncmVwciA9IGxvbmdyZXByCisg
ICAgZXYzLnNraXBwZWQgPSBUcnVlCisKKyAgICB2YWx1ZXMgPSBfZm9sZGVkX3NraXBzKFtldjEs
IGV2MiwgZXYzXSkKKyAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgIG51bSwgZnNwYXRo
LCBsaW5lbm8sIHJlYXNvbiA9IHZhbHVlc1swXQorICAgIGFzc2VydCBudW0gPT0gMworICAgIGFz
c2VydCBmc3BhdGggPT0gcGF0aAorICAgIGFzc2VydCBsaW5lbm8gPT0gbGluZW5vCisgICAgYXNz
ZXJ0IHJlYXNvbiA9PSBtZXNzYWdlCisKKworZGVmIHRlc3RfbGluZV93aXRoX3JlcHJjcmFzaCht
b25rZXlwYXRjaCk6CisgICAgaW1wb3J0IF9weXRlc3QudGVybWluYWwKKyAgICBmcm9tIHdjd2lk
dGggaW1wb3J0IHdjc3dpZHRoCisKKyAgICBtb2NrZWRfdmVyYm9zZV93b3JkID0gIkZBSUxFRCIK
KworICAgIG1vY2tlZF9wb3MgPSAic29tZTo6bm9kZWlkIgorCisgICAgZGVmIG1vY2tfZ2V0X3Bv
cygqYXJncyk6CisgICAgICAgIHJldHVybiBtb2NrZWRfcG9zCisKKyAgICBtb25rZXlwYXRjaC5z
ZXRhdHRyKF9weXRlc3QudGVybWluYWwsICJfZ2V0X3BvcyIsIG1vY2tfZ2V0X3BvcykKKworICAg
IGNsYXNzIGNvbmZpZyhvYmplY3QpOgorICAgICAgICBwYXNzCisKKyAgICBjbGFzcyByZXAob2Jq
ZWN0KToKKyAgICAgICAgZGVmIF9nZXRfdmVyYm9zZV93b3JkKHNlbGYsICphcmdzKToKKyAgICAg
ICAgICAgIHJldHVybiBtb2NrZWRfdmVyYm9zZV93b3JkCisKKyAgICAgICAgY2xhc3MgbG9uZ3Jl
cHI6CisgICAgICAgICAgICBjbGFzcyByZXByY3Jhc2g6CisgICAgICAgICAgICAgICAgcGFzcwor
CisgICAgZGVmIGNoZWNrKG1zZywgd2lkdGgsIGV4cGVjdGVkKToKKyAgICAgICAgX190cmFjZWJh
Y2toaWRlX18gPSBUcnVlCisgICAgICAgIGlmIG1zZzoKKyAgICAgICAgICAgIHJlcC5sb25ncmVw
ci5yZXByY3Jhc2gubWVzc2FnZSA9IG1zZworICAgICAgICBhY3R1YWwgPSBfZ2V0X2xpbmVfd2l0
aF9yZXByY3Jhc2hfbWVzc2FnZShjb25maWcsIHJlcCgpLCB3aWR0aCkKKworICAgICAgICBhc3Nl
cnQgYWN0dWFsID09IGV4cGVjdGVkCisgICAgICAgIGlmIGFjdHVhbCAhPSAiJXMgJXMiICUgKG1v
Y2tlZF92ZXJib3NlX3dvcmQsIG1vY2tlZF9wb3MpOgorICAgICAgICAgICAgYXNzZXJ0IGxlbihh
Y3R1YWwpIDw9IHdpZHRoCisgICAgICAgICAgICBhc3NlcnQgd2Nzd2lkdGgoYWN0dWFsKSA8PSB3
aWR0aAorCisgICAgIyBBdHRyaWJ1dGVFcnJvciB3aXRoIG1lc3NhZ2UKKyAgICBjaGVjayhOb25l
LCA4MCwgIkZBSUxFRCBzb21lOjpub2RlaWQiKQorCisgICAgY2hlY2soIm1zZyIsIDgwLCAiRkFJ
TEVEIHNvbWU6Om5vZGVpZCAtIG1zZyIpCisgICAgY2hlY2soIm1zZyIsIDMsICJGQUlMRUQgc29t
ZTo6bm9kZWlkIikKKworICAgIGNoZWNrKCJtc2ciLCAyNCwgIkZBSUxFRCBzb21lOjpub2RlaWQi
KQorICAgIGNoZWNrKCJtc2ciLCAyNSwgIkZBSUxFRCBzb21lOjpub2RlaWQgLSBtc2ciKQorCisg
ICAgY2hlY2soInNvbWUgbG9uZ2VyIG1zZyIsIDI0LCAiRkFJTEVEIHNvbWU6Om5vZGVpZCIpCisg
ICAgY2hlY2soInNvbWUgbG9uZ2VyIG1zZyIsIDI1LCAiRkFJTEVEIHNvbWU6Om5vZGVpZCAtIC4u
LiIpCisgICAgY2hlY2soInNvbWUgbG9uZ2VyIG1zZyIsIDI2LCAiRkFJTEVEIHNvbWU6Om5vZGVp
ZCAtIHMuLi4iKQorCisgICAgY2hlY2soInNvbWVcbm1lc3NhZ2UiLCAyNSwgIkZBSUxFRCBzb21l
Ojpub2RlaWQgLSAuLi4iKQorICAgIGNoZWNrKCJzb21lXG5tZXNzYWdlIiwgMjYsICJGQUlMRUQg
c29tZTo6bm9kZWlkIC0gc29tZSIpCisgICAgY2hlY2soInNvbWVcbm1lc3NhZ2UiLCA4MCwgIkZB
SUxFRCBzb21lOjpub2RlaWQgLSBzb21lIikKKworICAgICMgVGVzdCB1bmljb2RlIHNhZmV0eS4K
KyAgICBjaGVjayh1IvCfmITwn5iE8J+YhPCfmITwn5iEXG4ybmQgbGluZSIsIDI1LCB1IkZBSUxF
RCBzb21lOjpub2RlaWQgLSAuLi4iKQorICAgIGNoZWNrKHUi8J+YhPCfmITwn5iE8J+YhPCfmIRc
bjJuZCBsaW5lIiwgMjYsIHUiRkFJTEVEIHNvbWU6Om5vZGVpZCAtIC4uLiIpCisgICAgY2hlY2so
dSLwn5iE8J+YhPCfmITwn5iE8J+YhFxuMm5kIGxpbmUiLCAyNywgdSJGQUlMRUQgc29tZTo6bm9k
ZWlkIC0g8J+YhC4uLiIpCisgICAgY2hlY2sodSLwn5iE8J+YhPCfmITwn5iE8J+YhFxuMm5kIGxp
bmUiLCAyOCwgdSJGQUlMRUQgc29tZTo6bm9kZWlkIC0g8J+YhC4uLiIpCisgICAgY2hlY2sodSLw
n5iE8J+YhPCfmITwn5iE8J+YhFxuMm5kIGxpbmUiLCAyOSwgdSJGQUlMRUQgc29tZTo6bm9kZWlk
IC0g8J+YhPCfmIQuLi4iKQorCisgICAgIyBOT1RFOiBjb25zdHJ1Y3RlZCwgbm90IHN1cmUgaWYg
dGhpcyBpcyBzdXBwb3J0ZWQuCisgICAgIyBJdCB3b3VsZCBmYWlsIGlmIG5vdCB1c2luZyB1IiIg
aW4gUHl0aG9uIDIgZm9yIG1vY2tlZF9wb3MuCisgICAgbW9ja2VkX3BvcyA9IHUibm9kZWlkOjrw
n5iEOjp3aXRodW5pY29kZSIKKyAgICBjaGVjayh1IvCfmITwn5iE8J+YhPCfmITwn5iEXG4ybmQg
bGluZSIsIDI5LCB1IkZBSUxFRCBub2RlaWQ6OvCfmIQ6OndpdGh1bmljb2RlIikKKyAgICBjaGVj
ayh1IvCfmITwn5iE8J+YhPCfmITwn5iEXG4ybmQgbGluZSIsIDQwLCB1IkZBSUxFRCBub2RlaWQ6
OvCfmIQ6OndpdGh1bmljb2RlIC0g8J+YhPCfmIQuLi4iKQorICAgIGNoZWNrKHUi8J+YhPCfmITw
n5iE8J+YhPCfmIRcbjJuZCBsaW5lIiwgNDEsIHUiRkFJTEVEIG5vZGVpZDo68J+YhDo6d2l0aHVu
aWNvZGUgLSDwn5iE8J+YhC4uLiIpCisgICAgY2hlY2sodSLwn5iE8J+YhPCfmITwn5iE8J+YhFxu
Mm5kIGxpbmUiLCA0MiwgdSJGQUlMRUQgbm9kZWlkOjrwn5iEOjp3aXRodW5pY29kZSAtIPCfmITw
n5iE8J+YhC4uLiIpCisgICAgY2hlY2sodSLwn5iE8J+YhPCfmITwn5iE8J+YhFxuMm5kIGxpbmUi
LCA4MCwgdSJGQUlMRUQgbm9kZWlkOjrwn5iEOjp3aXRodW5pY29kZSAtIPCfmITwn5iE8J+YhPCf
mITwn5iEIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF90bXBkaXIucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfdG1wZGlyLnB5CmluZGV4IDMzNjI0OTA5NDk1Nzg1
NDIzMjY1YjhjNDQ2NDhlZWI3MmE4YzlmNGQuLjc2MjIzNDJiMWQ3NDM3NmI3ZjNmOTY2M2JiNWI5
ZjYyMjlhMzU3ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF90bXBkaXIu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3RtcGRpci5weQpAQCAtMSwzNyArMSwy
NiBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBw
cmludF9mdW5jdGlvbgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBlcnJubworaW1w
b3J0IG9zCitpbXBvcnQgc3RhdAogaW1wb3J0IHN5cwotaW1wb3J0IHB5Ci1pbXBvcnQgcHl0ZXN0
CiAKLWZyb20gX3B5dGVzdC50bXBkaXIgaW1wb3J0IHRtcGRpcgoraW1wb3J0IGF0dHIKK2ltcG9y
dCBzaXgKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0IGltcG9ydCBwYXRobGliCitmcm9t
IF9weXRlc3QucGF0aGxpYiBpbXBvcnQgUGF0aAorZnJvbSBfcHl0ZXN0Lndhcm5pbmdzIGltcG9y
dCBTSE9XX1BZVEVTVF9XQVJOSU5HU19BUkcKIAotZGVmIHRlc3RfZnVuY2FyZyh0ZXN0ZGlyKToK
LSAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHB5
dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAgICAgICAgICAgICAgbWV0YWZ1bmMu
YWRkY2FsbChpZD0nYScpCi0gICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChpZD0nYicp
Ci0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHRtcGRpcik6IHBhc3MKLSAgICAiIiIKLSAgICAp
Ci0gICAgZnJvbSBfcHl0ZXN0LnRtcGRpciBpbXBvcnQgVGVtcGRpckZhY3RvcnkKIAotICAgIHJl
cHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgY2FsbHMgPSByZXByZWMuZ2V0Y2FsbHMo
InB5dGVzdF9ydW50ZXN0X3NldHVwIikKLSAgICBpdGVtID0gY2FsbHNbMF0uaXRlbQotICAgIGNv
bmZpZyA9IGl0ZW0uY29uZmlnCi0gICAgdG1wZGlyaGFuZGxlciA9IFRlbXBkaXJGYWN0b3J5KGNv
bmZpZykKLSAgICBpdGVtLl9pbml0cmVxdWVzdCgpCi0gICAgcCA9IHRtcGRpcihpdGVtLl9yZXF1
ZXN0LCB0bXBkaXJoYW5kbGVyKQotICAgIGFzc2VydCBwLmNoZWNrKCkKLSAgICBibiA9IHAuYmFz
ZW5hbWUuc3RyaXAoIjAxMjM0NTY3ODkiKQotICAgIGFzc2VydCBibi5lbmRzd2l0aCgidGVzdF9m
dW5jX2FfIikKLSAgICBpdGVtLm5hbWUgPSAicXdlL1xcYWJjIgotICAgIHAgPSB0bXBkaXIoaXRl
bS5fcmVxdWVzdCwgdG1wZGlyaGFuZGxlcikKLSAgICBhc3NlcnQgcC5jaGVjaygpCi0gICAgYm4g
PSBwLmJhc2VuYW1lLnN0cmlwKCIwMTIzNDU2Nzg5IikKLSAgICBhc3NlcnQgYm4gPT0gInF3ZV9f
YWJjIgorZGVmIHRlc3RfdG1wZGlyX2ZpeHR1cmUodGVzdGRpcik6CisgICAgcCA9IHRlc3RkaXIu
Y29weV9leGFtcGxlKCJ0bXBkaXIvdG1wZGlyX2ZpeHR1cmUucHkiKQorICAgIHJlc3VsdHMgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgIHJlc3VsdHMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
MSBwYXNzZWQqIl0pCiAKIAogZGVmIHRlc3RfZW5zdXJldGVtcChyZWN3YXJuKToKQEAgLTQxLDE0
ICszMCwzMCBAQCBkZWYgdGVzdF9lbnN1cmV0ZW1wKHJlY3dhcm4pOgogICAgIGFzc2VydCBkMS5j
aGVjayhkaXI9MSkKIAogCitAYXR0ci5zCitjbGFzcyBGYWtlQ29uZmlnKG9iamVjdCk6CisgICAg
YmFzZXRlbXAgPSBhdHRyLmliKCkKKyAgICB0cmFjZSA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lKQor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIHRyYWNlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
ZgorCisgICAgZGVmIGdldChzZWxmLCBrZXkpOgorICAgICAgICByZXR1cm4gbGFtYmRhICprOiBO
b25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgb3B0aW9uKHNlbGYpOgorICAgICAgICByZXR1
cm4gc2VsZgorCisKIGNsYXNzIFRlc3RUZW1wZGlySGFuZGxlcihvYmplY3QpOgorICAgIGRlZiB0
ZXN0X21rdGVtcChzZWxmLCB0bXBfcGF0aCk6CiAKLSAgICBkZWYgdGVzdF9ta3RlbXAoc2VsZiwg
dGVzdGRpcik6Ci0gICAgICAgIGZyb20gX3B5dGVzdC50bXBkaXIgaW1wb3J0IFRlbXBkaXJGYWN0
b3J5CisgICAgICAgIGZyb20gX3B5dGVzdC50bXBkaXIgaW1wb3J0IFRlbXBkaXJGYWN0b3J5LCBU
ZW1wUGF0aEZhY3RvcnkKIAotICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkK
LSAgICAgICAgY29uZmlnLm9wdGlvbi5iYXNldGVtcCA9IHRlc3RkaXIubWtkaXIoImhlbGxvIikK
LSAgICAgICAgdCA9IFRlbXBkaXJGYWN0b3J5KGNvbmZpZykKKyAgICAgICAgY29uZmlnID0gRmFr
ZUNvbmZpZyh0bXBfcGF0aCkKKyAgICAgICAgdCA9IFRlbXBkaXJGYWN0b3J5KFRlbXBQYXRoRmFj
dG9yeS5mcm9tX2NvbmZpZyhjb25maWcpKQogICAgICAgICB0bXAgPSB0Lm1rdGVtcCgid29ybGQi
KQogICAgICAgICBhc3NlcnQgdG1wLnJlbHRvKHQuZ2V0YmFzZXRlbXAoKSkgPT0gIndvcmxkMCIK
ICAgICAgICAgdG1wID0gdC5ta3RlbXAoInRoaXMiKQpAQCAtNTcsOSArNjIsMTcgQEAgY2xhc3Mg
VGVzdFRlbXBkaXJIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCB0bXAyLnJlbHRvKHQu
Z2V0YmFzZXRlbXAoKSkuc3RhcnRzd2l0aCgidGhpcyIpCiAgICAgICAgIGFzc2VydCB0bXAyICE9
IHRtcAogCisgICAgZGVmIHRlc3RfdG1wcGF0aF9yZWxhdGl2ZV9iYXNldGVtcF9hYnNvbHV0ZShz
ZWxmLCB0bXBfcGF0aCwgbW9ua2V5cGF0Y2gpOgorICAgICAgICAiIiIjNDQyNSIiIgorICAgICAg
ICBmcm9tIF9weXRlc3QudG1wZGlyIGltcG9ydCBUZW1wUGF0aEZhY3RvcnkKKworICAgICAgICBt
b25rZXlwYXRjaC5jaGRpcih0bXBfcGF0aCkKKyAgICAgICAgY29uZmlnID0gRmFrZUNvbmZpZygi
aGVsbG8iKQorICAgICAgICB0ID0gVGVtcFBhdGhGYWN0b3J5LmZyb21fY29uZmlnKGNvbmZpZykK
KyAgICAgICAgYXNzZXJ0IHQuZ2V0YmFzZXRlbXAoKS5yZXNvbHZlKCkgPT0gKHRtcF9wYXRoIC8g
ImhlbGxvIikucmVzb2x2ZSgpCiAKLWNsYXNzIFRlc3RDb25maWdUbXBkaXIob2JqZWN0KToKIAor
Y2xhc3MgVGVzdENvbmZpZ1RtcGRpcihvYmplY3QpOgogICAgIGRlZiB0ZXN0X2dldGJhc2V0ZW1w
X2N1c3RvbV9yZW1vdmVzX29sZChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgbXl0ZW1wID0gdGVz
dGRpci50bXBkaXIuam9pbigieHl6IikKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgK
QEAgLTg2LDE1ICs5OSwxMSBAQCBkZWYgdGVzdF9iYXNldGVtcCh0ZXN0ZGlyKToKICAgICAgICAg
ICAgIHB5dGVzdC5lbnN1cmV0ZW1wKCJoZWxsbyIpCiAgICAgIiIiCiAgICAgKQotICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICItLWJhc2V0ZW1wPSVzIiAlIG15dGVtcCkKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLS1iYXNldGVtcD0lcyIgJSBteXRlbXAsIFNI
T1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCiAgICAg
YXNzZXJ0IG15dGVtcC5qb2luKCJoZWxsbyIpLmNoZWNrKCkKIAogCi1AcHl0ZXN0Lm1hcmsuc2tp
cGlmKAotICAgIG5vdCBoYXNhdHRyKHB5LnBhdGgubG9jYWwsICJta3N5bWxpbmt0byIpLAotICAg
IHJlYXNvbj0ic3ltbGluayBub3QgYXZhaWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0iLAotKQogZGVm
IHRlc3RfdG1wZGlyX2Fsd2F5c19pc19yZWFscGF0aCh0ZXN0ZGlyKToKICAgICAjIHRoZSByZWFz
b24gd2h5IHRtcGRpciBzaG91bGQgYmUgYSByZWFscGF0aCBpcyB0aGF0CiAgICAgIyB3aGVuIHlv
dSBjZCB0byBpdCBhbmQgZG8gIm9zLmdldGN3ZCgpIiB5b3Ugd2lsbCBhbnl3YXkKQEAgLTEwNCw3
ICsxMTMsNyBAQCBkZWYgdGVzdF90bXBkaXJfYWx3YXlzX2lzX3JlYWxwYXRoKHRlc3RkaXIpOgog
ICAgICMgb3MuZW52aXJvblsiUFdEIl0KICAgICByZWFsdGVtcCA9IHRlc3RkaXIudG1wZGlyLm1r
ZGlyKCJteXJlYWx0ZW1wIikKICAgICBsaW5rdGVtcCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInN5
bWxpbmt0ZW1wIikKLSAgICBsaW5rdGVtcC5ta3N5bWxpbmt0byhyZWFsdGVtcCkKKyAgICBhdHRl
bXB0X3N5bWxpbmtfdG8obGlua3RlbXAsIHN0cihyZWFsdGVtcCkpCiAgICAgcCA9IHRlc3RkaXIu
bWFrZXB5ZmlsZSgKICAgICAgICAgIiIiCiAgICAgICAgIGRlZiB0ZXN0XzEodG1wZGlyKToKQEAg
LTExNiw2ICsxMjUsMjIgQEAgZGVmIHRlc3RfdG1wZGlyX2Fsd2F5c19pc19yZWFscGF0aCh0ZXN0
ZGlyKToKICAgICBhc3NlcnQgbm90IHJlc3VsdC5yZXQKIAogCitkZWYgdGVzdF90bXBfcGF0aF9h
bHdheXNfaXNfcmVhbHBhdGgodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICMgZm9yIHJlYXNv
bmluZyBzZWU6IHRlc3RfdG1wZGlyX2Fsd2F5c19pc19yZWFscGF0aCB0ZXN0LWNhc2UKKyAgICBy
ZWFsdGVtcCA9IHRlc3RkaXIudG1wZGlyLm1rZGlyKCJteXJlYWx0ZW1wIikKKyAgICBsaW5rdGVt
cCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInN5bWxpbmt0ZW1wIikKKyAgICBhdHRlbXB0X3N5bWxp
bmtfdG8obGlua3RlbXAsIHN0cihyZWFsdGVtcCkpCisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQ
WVRFU1RfREVCVUdfVEVNUFJPT1QiLCBzdHIobGlua3RlbXApKQorICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGRlZiB0ZXN0XzEodG1wX3BhdGgpOgorICAgICAg
ICAgICAgYXNzZXJ0IHRtcF9wYXRoLnJlc29sdmUoKSA9PSB0bXBfcGF0aAorICAgICIiIgorICAg
ICkKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKHBhc3NlZD0xKQorCisKIGRlZiB0ZXN0X3RtcGRpcl90b29fbG9uZ19vbl9wYXJhbWV0
cml6YXRpb24odGVzdGRpcik6CiAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAiIiIK
QEAgLTEzNyw3ICsxNjIsNyBAQCBkZWYgdGVzdF90bXBkaXJfZmFjdG9yeSh0ZXN0ZGlyKToKICAg
ICAgICAgZGVmIHNlc3Npb25fZGlyKHRtcGRpcl9mYWN0b3J5KToKICAgICAgICAgICAgIHJldHVy
biB0bXBkaXJfZmFjdG9yeS5ta3RlbXAoJ2RhdGEnLCBudW1iZXJlZD1GYWxzZSkKICAgICAgICAg
ZGVmIHRlc3Rfc29tZShzZXNzaW9uX2Rpcik6Ci0gICAgICAgICAgICBzZXNzaW9uX2Rpci5pc2Rp
cigpCisgICAgICAgICAgICBhc3NlcnQgc2Vzc2lvbl9kaXIuaXNkaXIoKQogICAgICIiIgogICAg
ICkKICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQpAQCAtMjEwLDMgKzIzNSwyMTkg
QEAgZGVmIHRlc3RfZ2V0X3VzZXIobW9ua2V5cGF0Y2gpOgogICAgIG1vbmtleXBhdGNoLmRlbGVu
digiVVNFUiIsIHJhaXNpbmc9RmFsc2UpCiAgICAgbW9ua2V5cGF0Y2guZGVsZW52KCJVU0VSTkFN
RSIsIHJhaXNpbmc9RmFsc2UpCiAgICAgYXNzZXJ0IGdldF91c2VyKCkgaXMgTm9uZQorCisKK2Ns
YXNzIFRlc3ROdW1iZXJlZERpcihvYmplY3QpOgorICAgIFBSRUZJWCA9ICJmdW4tIgorCisgICAg
ZGVmIHRlc3RfbWFrZShzZWxmLCB0bXBfcGF0aCk6CisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRo
bGliIGltcG9ydCBtYWtlX251bWJlcmVkX2RpcgorCisgICAgICAgIGZvciBpIGluIHJhbmdlKDEw
KToKKyAgICAgICAgICAgIGQgPSBtYWtlX251bWJlcmVkX2Rpcihyb290PXRtcF9wYXRoLCBwcmVm
aXg9c2VsZi5QUkVGSVgpCisgICAgICAgICAgICBhc3NlcnQgZC5uYW1lLnN0YXJ0c3dpdGgoc2Vs
Zi5QUkVGSVgpCisgICAgICAgICAgICBhc3NlcnQgZC5uYW1lLmVuZHN3aXRoKHN0cihpKSkKKwor
ICAgICAgICBzeW1saW5rID0gdG1wX3BhdGguam9pbnBhdGgoc2VsZi5QUkVGSVggKyAiY3VycmVu
dCIpCisgICAgICAgIGlmIHN5bWxpbmsuZXhpc3RzKCk6CisgICAgICAgICAgICAjIHVuaXgKKyAg
ICAgICAgICAgIGFzc2VydCBzeW1saW5rLmlzX3N5bWxpbmsoKQorICAgICAgICAgICAgYXNzZXJ0
IHN5bWxpbmsucmVzb2x2ZSgpID09IGQucmVzb2x2ZSgpCisKKyAgICBkZWYgdGVzdF9jbGVhbnVw
X2xvY2tfY3JlYXRlKHNlbGYsIHRtcF9wYXRoKToKKyAgICAgICAgZCA9IHRtcF9wYXRoLmpvaW5w
YXRoKCJ0ZXN0IikKKyAgICAgICAgZC5ta2RpcigpCisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRo
bGliIGltcG9ydCBjcmVhdGVfY2xlYW51cF9sb2NrCisKKyAgICAgICAgbG9ja2ZpbGUgPSBjcmVh
dGVfY2xlYW51cF9sb2NrKGQpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhFbnZpcm9ubWVu
dEVycm9yLCBtYXRjaD0iY2Fubm90IGNyZWF0ZSBsb2NrZmlsZSBpbiAuKiIpOgorICAgICAgICAg
ICAgY3JlYXRlX2NsZWFudXBfbG9jayhkKQorCisgICAgICAgIGxvY2tmaWxlLnVubGluaygpCisK
KyAgICBkZWYgdGVzdF9sb2NrX3JlZ2lzdGVyX2NsZWFudXBfcmVtb3ZhbChzZWxmLCB0bXBfcGF0
aCk6CisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBjcmVhdGVfY2xlYW51cF9s
b2NrLCByZWdpc3Rlcl9jbGVhbnVwX2xvY2tfcmVtb3ZhbAorCisgICAgICAgIGxvY2sgPSBjcmVh
dGVfY2xlYW51cF9sb2NrKHRtcF9wYXRoKQorCisgICAgICAgIHJlZ2lzdHJ5ID0gW10KKyAgICAg
ICAgcmVnaXN0ZXJfY2xlYW51cF9sb2NrX3JlbW92YWwobG9jaywgcmVnaXN0ZXI9cmVnaXN0cnku
YXBwZW5kKQorCisgICAgICAgIChjbGVhbnVwX2Z1bmMsKSA9IHJlZ2lzdHJ5CisKKyAgICAgICAg
YXNzZXJ0IGxvY2suaXNfZmlsZSgpCisKKyAgICAgICAgY2xlYW51cF9mdW5jKG9yaWdpbmFsX3Bp
ZD0iaW50ZW50aW9uYWxseV9kaWZmZXJlbnQiKQorCisgICAgICAgIGFzc2VydCBsb2NrLmlzX2Zp
bGUoKQorCisgICAgICAgIGNsZWFudXBfZnVuYygpCisKKyAgICAgICAgYXNzZXJ0IG5vdCBsb2Nr
LmV4aXN0cygpCisKKyAgICAgICAgY2xlYW51cF9mdW5jKCkKKworICAgICAgICBhc3NlcnQgbm90
IGxvY2suZXhpc3RzKCkKKworICAgIGRlZiBfZG9fY2xlYW51cChzZWxmLCB0bXBfcGF0aCk6Cisg
ICAgICAgIHNlbGYudGVzdF9tYWtlKHRtcF9wYXRoKQorICAgICAgICBmcm9tIF9weXRlc3QucGF0
aGxpYiBpbXBvcnQgY2xlYW51cF9udW1iZXJlZF9kaXIKKworICAgICAgICBjbGVhbnVwX251bWJl
cmVkX2RpcigKKyAgICAgICAgICAgIHJvb3Q9dG1wX3BhdGgsCisgICAgICAgICAgICBwcmVmaXg9
c2VsZi5QUkVGSVgsCisgICAgICAgICAgICBrZWVwPTIsCisgICAgICAgICAgICBjb25zaWRlcl9s
b2NrX2RlYWRfaWZfY3JlYXRlZF9iZWZvcmU9MCwKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rf
Y2xlYW51cF9rZWVwKHNlbGYsIHRtcF9wYXRoKToKKyAgICAgICAgc2VsZi5fZG9fY2xlYW51cCh0
bXBfcGF0aCkKKyAgICAgICAgYSwgYiA9ICh4IGZvciB4IGluIHRtcF9wYXRoLml0ZXJkaXIoKSBp
ZiBub3QgeC5pc19zeW1saW5rKCkpCisgICAgICAgIHByaW50KGEsIGIpCisKKyAgICBkZWYgdGVz
dF9jbGVhbnVwX2xvY2tlZChzZWxmLCB0bXBfcGF0aCk6CisKKyAgICAgICAgZnJvbSBfcHl0ZXN0
IGltcG9ydCBwYXRobGliCisKKyAgICAgICAgcCA9IHBhdGhsaWIubWFrZV9udW1iZXJlZF9kaXIo
cm9vdD10bXBfcGF0aCwgcHJlZml4PXNlbGYuUFJFRklYKQorCisgICAgICAgIHBhdGhsaWIuY3Jl
YXRlX2NsZWFudXBfbG9jayhwKQorCisgICAgICAgIGFzc2VydCBub3QgcGF0aGxpYi5lbnN1cmVf
ZGVsZXRhYmxlKAorICAgICAgICAgICAgcCwgY29uc2lkZXJfbG9ja19kZWFkX2lmX2NyZWF0ZWRf
YmVmb3JlPXAuc3RhdCgpLnN0X210aW1lIC0gMQorICAgICAgICApCisgICAgICAgIGFzc2VydCBw
YXRobGliLmVuc3VyZV9kZWxldGFibGUoCisgICAgICAgICAgICBwLCBjb25zaWRlcl9sb2NrX2Rl
YWRfaWZfY3JlYXRlZF9iZWZvcmU9cC5zdGF0KCkuc3RfbXRpbWUgKyAxCisgICAgICAgICkKKwor
ICAgIGRlZiB0ZXN0X2NsZWFudXBfaWdub3Jlc19zeW1saW5rKHNlbGYsIHRtcF9wYXRoKToKKyAg
ICAgICAgdGhlX3N5bWxpbmsgPSB0bXBfcGF0aCAvIChzZWxmLlBSRUZJWCArICJjdXJyZW50IikK
KyAgICAgICAgYXR0ZW1wdF9zeW1saW5rX3RvKHRoZV9zeW1saW5rLCB0bXBfcGF0aCAvIChzZWxm
LlBSRUZJWCArICI1IikpCisgICAgICAgIHNlbGYuX2RvX2NsZWFudXAodG1wX3BhdGgpCisKKyAg
ICBkZWYgdGVzdF9yZW1vdmFsX2FjY2VwdHNfbG9jayhzZWxmLCB0bXBfcGF0aCk6CisgICAgICAg
IGZvbGRlciA9IHBhdGhsaWIubWFrZV9udW1iZXJlZF9kaXIocm9vdD10bXBfcGF0aCwgcHJlZml4
PXNlbGYuUFJFRklYKQorICAgICAgICBwYXRobGliLmNyZWF0ZV9jbGVhbnVwX2xvY2soZm9sZGVy
KQorICAgICAgICBwYXRobGliLm1heWJlX2RlbGV0ZV9hX251bWJlcmVkX2Rpcihmb2xkZXIpCisg
ICAgICAgIGFzc2VydCBmb2xkZXIuaXNfZGlyKCkKKworCitjbGFzcyBUZXN0Um1SZjoKKyAgICBk
ZWYgdGVzdF9ybV9yZihzZWxmLCB0bXBfcGF0aCk6CisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRo
bGliIGltcG9ydCBybV9yZgorCisgICAgICAgIGFkaXIgPSB0bXBfcGF0aCAvICJhZGlyIgorICAg
ICAgICBhZGlyLm1rZGlyKCkKKyAgICAgICAgcm1fcmYoYWRpcikKKworICAgICAgICBhc3NlcnQg
bm90IGFkaXIuZXhpc3RzKCkKKworICAgICAgICBhZGlyLm1rZGlyKCkKKyAgICAgICAgYWZpbGUg
PSBhZGlyIC8gImFmaWxlIgorICAgICAgICBhZmlsZS53cml0ZV9ieXRlcyhiImFhIikKKworICAg
ICAgICBybV9yZihhZGlyKQorICAgICAgICBhc3NlcnQgbm90IGFkaXIuZXhpc3RzKCkKKworICAg
IGRlZiB0ZXN0X3JtX3JmX3dpdGhfcmVhZF9vbmx5X2ZpbGUoc2VsZiwgdG1wX3BhdGgpOgorICAg
ICAgICAiIiJFbnN1cmUgcm1fcmYgY2FuIHJlbW92ZSBkaXJlY3RvcmllcyB3aXRoIHJlYWQtb25s
eSBmaWxlcyBpbiB0aGVtICgjNTUyNCkiIiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0LnBhdGhsaWIg
aW1wb3J0IHJtX3JmCisKKyAgICAgICAgZm4gPSB0bXBfcGF0aCAvICJkaXIvZm9vLnR4dCIKKyAg
ICAgICAgZm4ucGFyZW50Lm1rZGlyKCkKKworICAgICAgICBmbi50b3VjaCgpCisKKyAgICAgICAg
c2VsZi5jaG1vZF9yKGZuKQorCisgICAgICAgIHJtX3JmKGZuLnBhcmVudCkKKworICAgICAgICBh
c3NlcnQgbm90IGZuLnBhcmVudC5pc19kaXIoKQorCisgICAgZGVmIGNobW9kX3Ioc2VsZiwgcGF0
aCk6CisgICAgICAgIG1vZGUgPSBvcy5zdGF0KHN0cihwYXRoKSkuc3RfbW9kZQorICAgICAgICBv
cy5jaG1vZChzdHIocGF0aCksIG1vZGUgJiB+c3RhdC5TX0lXUklURSkKKworICAgIGRlZiB0ZXN0
X3JtX3JmX3dpdGhfcmVhZF9vbmx5X2RpcmVjdG9yeShzZWxmLCB0bXBfcGF0aCk6CisgICAgICAg
ICIiIkVuc3VyZSBybV9yZiBjYW4gcmVtb3ZlIHJlYWQtb25seSBkaXJlY3RvcmllcyAoIzU1MjQp
IiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBybV9yZgorCisgICAgICAg
IGFkaXIgPSB0bXBfcGF0aCAvICJkaXIiCisgICAgICAgIGFkaXIubWtkaXIoKQorCisgICAgICAg
IChhZGlyIC8gImZvby50eHQiKS50b3VjaCgpCisgICAgICAgIHNlbGYuY2htb2RfcihhZGlyKQor
CisgICAgICAgIHJtX3JmKGFkaXIpCisKKyAgICAgICAgYXNzZXJ0IG5vdCBhZGlyLmlzX2Rpcigp
CisKKyAgICBkZWYgdGVzdF9vbl9ybV9yZl9lcnJvcihzZWxmLCB0bXBfcGF0aCk6CisgICAgICAg
IGZyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBvbl9ybV9yZl9lcnJvcgorCisgICAgICAgIGFk
aXIgPSB0bXBfcGF0aCAvICJkaXIiCisgICAgICAgIGFkaXIubWtkaXIoKQorCisgICAgICAgIGZu
ID0gYWRpciAvICJmb28udHh0IgorICAgICAgICBmbi50b3VjaCgpCisgICAgICAgIHNlbGYuY2ht
b2RfcihmbikKKworICAgICAgICAjIHVua25vd24gZXhjZXB0aW9uCisgICAgICAgIHdpdGggcHl0
ZXN0Lndhcm5zKHB5dGVzdC5QeXRlc3RXYXJuaW5nKToKKyAgICAgICAgICAgIGV4Y19pbmZvID0g
KE5vbmUsIFJ1bnRpbWVFcnJvcigpLCBOb25lKQorICAgICAgICAgICAgb25fcm1fcmZfZXJyb3Io
b3MudW5saW5rLCBzdHIoZm4pLCBleGNfaW5mbywgc3RhcnRfcGF0aD10bXBfcGF0aCkKKyAgICAg
ICAgICAgIGFzc2VydCBmbi5pc19maWxlKCkKKworICAgICAgICAjIHdlIGlnbm9yZSBGaWxlTm90
Rm91bmRFcnJvcgorICAgICAgICBmaWxlX25vdF9mb3VuZCA9IE9TRXJyb3IoKQorICAgICAgICBm
aWxlX25vdF9mb3VuZC5lcnJubyA9IGVycm5vLkVOT0VOVAorICAgICAgICBleGNfaW5mbyA9IChO
b25lLCBmaWxlX25vdF9mb3VuZCwgTm9uZSkKKyAgICAgICAgYXNzZXJ0IG5vdCBvbl9ybV9yZl9l
cnJvcihOb25lLCBzdHIoZm4pLCBleGNfaW5mbywgc3RhcnRfcGF0aD10bXBfcGF0aCkKKworICAg
ICAgICBwZXJtaXNzaW9uX2Vycm9yID0gT1NFcnJvcigpCisgICAgICAgIHBlcm1pc3Npb25fZXJy
b3IuZXJybm8gPSBlcnJuby5FQUNDRVMKKyAgICAgICAgIyB1bmtub3duIGZ1bmN0aW9uCisgICAg
ICAgIHdpdGggcHl0ZXN0Lndhcm5zKHB5dGVzdC5QeXRlc3RXYXJuaW5nKToKKyAgICAgICAgICAg
IGV4Y19pbmZvID0gKE5vbmUsIHBlcm1pc3Npb25fZXJyb3IsIE5vbmUpCisgICAgICAgICAgICBv
bl9ybV9yZl9lcnJvcihOb25lLCBzdHIoZm4pLCBleGNfaW5mbywgc3RhcnRfcGF0aD10bXBfcGF0
aCkKKyAgICAgICAgICAgIGFzc2VydCBmbi5pc19maWxlKCkKKworICAgICAgICBleGNfaW5mbyA9
IChOb25lLCBwZXJtaXNzaW9uX2Vycm9yLCBOb25lKQorICAgICAgICBvbl9ybV9yZl9lcnJvcihv
cy51bmxpbmssIHN0cihmbiksIGV4Y19pbmZvLCBzdGFydF9wYXRoPXRtcF9wYXRoKQorICAgICAg
ICBhc3NlcnQgbm90IGZuLmlzX2ZpbGUoKQorCisKK2RlZiBhdHRlbXB0X3N5bWxpbmtfdG8ocGF0
aCwgdG9fcGF0aCk6CisgICAgIiIiVHJ5IHRvIG1ha2UgYSBzeW1saW5rIGZyb20gInBhdGgiIHRv
ICJ0b19wYXRoIiwgc2tpcHBpbmcgaW4gY2FzZSB0aGlzIHBsYXRmb3JtCisgICAgZG9lcyBub3Qg
c3VwcG9ydCBpdCBvciB3ZSBkb24ndCBoYXZlIHN1ZmZpY2llbnQgcHJpdmlsZWdlcyAoY29tbW9u
IG9uIFdpbmRvd3MpLiIiIgorICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4iKSBh
bmQgc2l4LlBZMjoKKyAgICAgICAgcHl0ZXN0LnNraXAoInBhdGhsaWIgZm9yIHNvbWUgcmVhc29u
IGNhbm5vdCBtYWtlIHN5bWxpbmtzIG9uIFB5dGhvbiAyIikKKyAgICB0cnk6CisgICAgICAgIFBh
dGgocGF0aCkuc3ltbGlua190byhQYXRoKHRvX3BhdGgpKQorICAgIGV4Y2VwdCBPU0Vycm9yOgor
ICAgICAgICBweXRlc3Quc2tpcCgiY291bGQgbm90IGNyZWF0ZSBzeW1ib2xpYyBsaW5rIikKKwor
CitkZWYgdGVzdF90bXBkaXJfZXF1YWxzX3RtcF9wYXRoKHRtcGRpciwgdG1wX3BhdGgpOgorICAg
IGFzc2VydCBQYXRoKHRtcGRpcikgPT0gdG1wX3BhdGgKKworCitkZWYgdGVzdF9iYXNldGVtcF93
aXRoX3JlYWRfb25seV9maWxlcyh0ZXN0ZGlyKToKKyAgICAiIiJJbnRlZ3JhdGlvbiB0ZXN0IGZv
ciAjNTUyNCIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAg
IGltcG9ydCBvcworICAgICAgICBpbXBvcnQgc3RhdAorCisgICAgICAgIGRlZiB0ZXN0KHRtcF9w
YXRoKToKKyAgICAgICAgICAgIGZuID0gdG1wX3BhdGggLyAnZm9vLnR4dCcKKyAgICAgICAgICAg
IGZuLndyaXRlX3RleHQodSdoZWxsbycpCisgICAgICAgICAgICBtb2RlID0gb3Muc3RhdChzdHIo
Zm4pKS5zdF9tb2RlCisgICAgICAgICAgICBvcy5jaG1vZChzdHIoZm4pLCBtb2RlICYgfnN0YXQu
U19JUkVBRCkKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tYmFzZXRlbXA9dG1wIikKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgIyBydW5u
aW5nIGEgc2Vjb25kIHRpbWUgYW5kIGVuc3VyZSB3ZSBkb24ndCBjcmFzaAorICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItLWJhc2V0ZW1wPXRtcCIpCisgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgPT0gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3VuaXR0ZXN0LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3VuaXR0ZXN0LnB5CmluZGV4IDY1ZmZkYjk3NTM4
YmVlNTEzZWIxNTQ0NDE0ZGVjZGMzMDJiYmYwMmEuLjZiNzIxZDFjMGNlNTAzOThjYTlmYjcyZDUw
NTE1N2I1ODhmYzQwNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF91bml0
dGVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfdW5pdHRlc3QucHkKQEAgLTEs
OCArMSwxMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCBwcmludF9mdW5jdGlvbgotZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNU
U0NPTExFQ1RFRAotaW1wb3J0IHB5dGVzdAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9y
dCBnYwogCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RF
U1RTQ09MTEVDVEVECisKIAogZGVmIHRlc3Rfc2ltcGxlX3VuaXR0ZXN0KHRlc3RkaXIpOgogICAg
IHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKApAQCAtMTM5LDYgKzE0NCwyOSBAQCBkZWYg
dGVzdF9uZXdfaW5zdGFuY2VzKHRlc3RkaXIpOgogICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD0yKQogCiAKK2RlZiB0ZXN0X2Z1bmN0aW9uX2l0ZW1fb2JqX2lzX2luc3RhbmNlKHRlc3Rk
aXIpOgorICAgICIiIml0ZW0ub2JqIHNob3VsZCBiZSBhIGJvdW5kIG1ldGhvZCBvbiB1bml0dGVz
dC5UZXN0Q2FzZSBmdW5jdGlvbiBpdGVtcyAoIzUzOTApLiIiIgorICAgIHRlc3RkaXIubWFrZWNv
bmZ0ZXN0KAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBv
cnQoaXRlbSwgY2FsbCk6CisgICAgICAgICAgICBpZiBjYWxsLndoZW4gPT0gJ2NhbGwnOgorICAg
ICAgICAgICAgICAgIGNsYXNzXyA9IGl0ZW0ucGFyZW50Lm9iagorICAgICAgICAgICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKGl0ZW0ub2JqLl9fc2VsZl9fLCBjbGFzc18pCisgICAgIiIiCisgICAg
KQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCB1
bml0dGVzdAorCisgICAgICAgIGNsYXNzIFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAiIiIK
KyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3RfaW5wcm9jZXNzKCkKKyAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDEgcGFzc2VkIGluKiJdKQorCisKIGRlZiB0
ZXN0X3RlYXJkb3duKHRlc3RkaXIpOgogICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxl
KAogICAgICAgICAiIiIKQEAgLTI0MCw3ICsyNjgsNyBAQCBkZWYgdGVzdF9zZXR1cF9mYWlsdXJl
X2lzX3Nob3duKHRlc3RkaXIpOgogICAgICAgICAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAg
ICAgICAgICAgIGFzc2VydCAwLCAiZG93bjEiCiAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qo
c2VsZik6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJuZXZlcjQyIikKKyAgICAgICAgICAgICAg
ICBwcmludCgibmV2ZXI0MiIpCiAgICAgICAgICAgICAgICAgeHl6CiAgICAgIiIiCiAgICAgKQpA
QCAtMzYwLDcgKzM4OCw3IEBAIGRlZiB0ZXN0X3Rlc3RjYXNlX2N1c3RvbV9leGNlcHRpb25faW5m
byh0ZXN0ZGlyLCB0eXBlKToKIAogCiBkZWYgdGVzdF90ZXN0Y2FzZV90b3RhbGx5X2luY29tcGF0
aWJsZV9leGNlcHRpb25faW5mbyh0ZXN0ZGlyKToKLSAgICBpdGVtLCA9IHRlc3RkaXIuZ2V0aXRl
bXMoCisgICAgKGl0ZW0sKSA9IHRlc3RkaXIuZ2V0aXRlbXMoCiAgICAgICAgICIiIgogICAgICAg
ICBmcm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0Q2FzZQogICAgICAgICBjbGFzcyBNeVRlc3RDYXNl
KFRlc3RDYXNlKToKQEAgLTM4OSw3ICs0MTcsNiBAQCBkZWYgdGVzdF9tb2R1bGVfbGV2ZWxfcHl0
ZXN0bWFyayh0ZXN0ZGlyKToKIAogCiBjbGFzcyBUZXN0VHJpYWxVbml0dGVzdChvYmplY3QpOgot
CiAgICAgZGVmIHNldHVwX2NsYXNzKGNscyk6CiAgICAgICAgIGNscy51dCA9IHB5dGVzdC5pbXBv
cnRvcnNraXAoInR3aXN0ZWQudHJpYWwudW5pdHRlc3QiKQogICAgICAgICAjIG9uIHdpbmRvd3Mg
dHJpYWwgdXNlcyBhIHNvY2tldCBmb3IgYSByZWFjdG9yIGFuZCBhcHBhcmVudGx5IGRvZXNuJ3Qg
Y2xvc2UgaXQgcHJvcGVybHkKQEAgLTYwNywxNCArNjM0LDE0IEBAIGRlZiB0ZXN0X2RqYW5nb2xp
a2VfdGVzdGNhc2UodGVzdGRpcik6CiAgICAgICAgIGNsYXNzIERqYW5nb0xpa2VUZXN0Q2FzZShU
ZXN0Q2FzZSk6CiAKICAgICAgICAgICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgICAgICAg
ICBwcmludCAoInNldFVwKCkiKQorICAgICAgICAgICAgICAgIHByaW50KCJzZXRVcCgpIikKIAog
ICAgICAgICAgICAgZGVmIHRlc3RfcHJlc2V0dXBfaGFzX2JlZW5fcnVuKHNlbGYpOgotICAgICAg
ICAgICAgICAgIHByaW50ICgidGVzdF90aGluZygpIikKKyAgICAgICAgICAgICAgICBwcmludCgi
dGVzdF90aGluZygpIikKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihz
ZWxmLCAnd2FzX3ByZXNldHVwJykpCiAKICAgICAgICAgICAgIGRlZiB0ZWFyRG93bihzZWxmKToK
LSAgICAgICAgICAgICAgICBwcmludCAoInRlYXJEb3duKCkiKQorICAgICAgICAgICAgICAgIHBy
aW50KCJ0ZWFyRG93bigpIikKIAogICAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHJlc3Vs
dD1Ob25lKToKICAgICAgICAgICAgICAgICB0cnk6CkBAIC02MzYsMTEgKzY2MywxMSBAQCBkZWYg
dGVzdF9kamFuZ29saWtlX3Rlc3RjYXNlKHRlc3RkaXIpOgogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4KIAogICAgICAgICAgICAgZGVmIF9wcmVfc2V0dXAoc2VsZik6Ci0gICAgICAgICAgICAg
ICAgcHJpbnQgKCJfcHJlX3NldHVwKCkiKQorICAgICAgICAgICAgICAgIHByaW50KCJfcHJlX3Nl
dHVwKCkiKQogICAgICAgICAgICAgICAgIHNlbGYud2FzX3ByZXNldHVwID0gVHJ1ZQogCiAgICAg
ICAgICAgICBkZWYgX3Bvc3RfdGVhcmRvd24oc2VsZik6Ci0gICAgICAgICAgICAgICAgcHJpbnQg
KCJfcG9zdF90ZWFyZG93bigpIikKKyAgICAgICAgICAgICAgICBwcmludCgiX3Bvc3RfdGVhcmRv
d24oKSIpCiAgICAgIiIiCiAgICAgKQogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
cyIpCkBAIC03OTEsNyArODE4LDcgQEAgZGVmIHRlc3RfdW5pdHRlc3Rfc2V0dXBfaW50ZXJhY3Rp
b24odGVzdGRpciwgZml4X3R5cGUsIHN0bXQpOgogICAgICAgICApCiAgICAgKQogICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
IiozIHBhc3NlZCoiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3Nl
ZCoiXSkKIAogCiBkZWYgdGVzdF9ub25fdW5pdHRlc3Rfbm9fc2V0dXBjbGFzc19zdXBwb3J0KHRl
c3RkaXIpOgpAQCAtOTI3LDExICs5NTQsMTEgQEAgZGVmIHRlc3RfY2xhc3NfbWV0aG9kX2NvbnRh
aW5pbmdfdGVzdF9pc3N1ZTE1NTgodGVzdGRpcik6CiAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTEpCiAKIAotQHB5dGVzdC5tYXJrLmlzc3VlKDM0OTgpCiBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoCiAgICAgImJhc2UiLCBbInNpeC5tb3Zlcy5idWlsdGlucy5vYmplY3QiLCAidW5p
dHRlc3QuVGVzdENhc2UiLCAidW5pdHRlc3QyLlRlc3RDYXNlIl0KICkKIGRlZiB0ZXN0X3VzZWZp
eHR1cmVzX21hcmtlcl9vbl91bml0dGVzdChiYXNlLCB0ZXN0ZGlyKToKKyAgICAiIiIjMzQ5OCIi
IgogICAgIG1vZHVsZSA9IGJhc2UucnNwbGl0KCIuIiwgMSlbMF0KICAgICBweXRlc3QuaW1wb3J0
b3Jza2lwKG1vZHVsZSkKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBAIC05OTAsMyArMTAxNyw1
MSBAQCBkZWYgdGVzdF91c2VmaXh0dXJlc19tYXJrZXJfb25fdW5pdHRlc3QoYmFzZSwgdGVzdGRp
cik6CiAKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiKQogICAgIHJlc3VsdC5h
c3NlcnRfb3V0Y29tZXMocGFzc2VkPTIpCisKKworZGVmIHRlc3RfdGVzdGNhc2VfaGFuZGxlc19p
bml0X2V4Y2VwdGlvbnModGVzdGRpcik6CisgICAgIiIiCisgICAgUmVncmVzc2lvbiB0ZXN0IHRv
IG1ha2Ugc3VyZSBleGNlcHRpb25zIGluIHRoZSBfX2luaXRfXyBtZXRob2QgYXJlIGJ1YmJsZWQg
dXAgY29ycmVjdGx5LgorICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzM3ODgKKyAgICAiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAg
ICIiIgorICAgICAgICBmcm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0Q2FzZQorICAgICAgICBpbXBv
cnQgcHl0ZXN0CisgICAgICAgIGNsYXNzIE15VGVzdENhc2UoVGVzdENhc2UpOgorICAgICAgICAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCJzaG91bGQgcmFpc2UgdGhpcyBleGNlcHRpb24iKQorICAgICAgICAg
ICAgZGVmIHRlc3RfaGVsbG8oc2VsZik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICIiIgor
ICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0ICJzaG91
bGQgcmFpc2UgdGhpcyBleGNlcHRpb24iIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3Nl
cnQgIkVSUk9SIGF0IHRlYXJkb3duIG9mIE15VGVzdENhc2UudGVzdF9oZWxsbyIgbm90IGluIHJl
c3VsdC5zdGRvdXQuc3RyKCkKKworCitkZWYgdGVzdF9lcnJvcl9tZXNzYWdlX3dpdGhfcGFyYW1l
dHJpemVkX2ZpeHR1cmVzKHRlc3RkaXIpOgorICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCJ1bml0
dGVzdC90ZXN0X3BhcmFtZXRyaXplZF9maXh0dXJlX2Vycm9yX21lc3NhZ2UucHkiKQorICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoCisgICAgICAgIFsKKyAgICAgICAgICAgICIqdGVzdF90d28gZG9lcyBub3Qgc3VwcG9ydCBm
aXh0dXJlcyoiLAorICAgICAgICAgICAgIipUZXN0U29tZXRoaW5nRWxzZTo6dGVzdF90d28iLAor
ICAgICAgICAgICAgIipGdW5jdGlvbiB0eXBlOiBUZXN0Q2FzZUZ1bmN0aW9uIiwKKyAgICAgICAg
XQorICAgICkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgInRlc3RfbmFtZSwg
ZXhwZWN0ZWRfb3V0Y29tZSIsCisgICAgWworICAgICAgICAoInRlc3Rfc2V0dXBfc2tpcC5weSIs
ICIxIHNraXBwZWQiKSwKKyAgICAgICAgKCJ0ZXN0X3NldHVwX3NraXBfY2xhc3MucHkiLCAiMSBz
a2lwcGVkIiksCisgICAgICAgICgidGVzdF9zZXR1cF9za2lwX21vZHVsZS5weSIsICIxIGVycm9y
IiksCisgICAgXSwKKykKK2RlZiB0ZXN0X3NldHVwX2luaGVyaXRhbmNlX3NraXBwaW5nKHRlc3Rk
aXIsIHRlc3RfbmFtZSwgZXhwZWN0ZWRfb3V0Y29tZSk6CisgICAgIiIiSXNzdWUgIzQ3MDAiIiIK
KyAgICB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgidW5pdHRlc3Qve30iLmZvcm1hdCh0ZXN0X25hbWUp
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIqIHt9IGluICoiLmZvcm1hdChleHBlY3RlZF9vdXRjb21lKV0pCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfd2FybmluZ3MucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3Rfd2FybmluZ3MucHkKaW5kZXggYzViZWEwNTJhNDdlMzBlZGVmNDUxODAy
MjZhNmEwOWNlMGJmMmQ1NC4uNjVmNTdlMDI0ZjNkNjE3N2FkOTYxZTEyOWNjZmYzMzMwNTg5NWNk
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3dhcm5pbmdzLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF93YXJuaW5ncy5weQpAQCAtMSwxMCArMSwxMiBAQAot
IyAtKi0gY29kaW5nOiB1dGY4IC0qLQorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGZyb20gX19m
dXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwogCiBpbXBvcnQgc3lzCitpbXBvcnQgd2Fy
bmluZ3MKIAotaW1wb3J0IHB5dGVzdAoraW1wb3J0IHNpeAogCitpbXBvcnQgcHl0ZXN0CiAKIFdB
Uk5JTkdTX1NVTU1BUllfSEVBREVSID0gIndhcm5pbmdzIHN1bW1hcnkiCiAKQEAgLTM3LDE3ICsz
OSwxNiBAQCBkZWYgcHlmaWxlX3dpdGhfd2FybmluZ3ModGVzdGRpciwgcmVxdWVzdCk6CiAgICAg
KQogCiAKLUBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiYWx3YXlzIikKK0BweXRlc3QubWFy
ay5maWx0ZXJ3YXJuaW5ncygiZGVmYXVsdCIpCiBkZWYgdGVzdF9ub3JtYWxfZmxvdyh0ZXN0ZGly
LCBweWZpbGVfd2l0aF93YXJuaW5ncyk6CiAgICAgIiIiCi0gICAgQ2hlY2sgdGhhdCB0aGUgd2Fy
bmluZ3Mgc2VjdGlvbiBpcyBkaXNwbGF5ZWQsIGNvbnRhaW5pbmcgdGVzdCBub2RlIGlkcyBmb2xs
b3dlZCBieQotICAgIGFsbCB3YXJuaW5ncyBnZW5lcmF0ZWQgYnkgdGhhdCB0ZXN0IG5vZGUuCisg
ICAgQ2hlY2sgdGhhdCB0aGUgd2FybmluZ3Mgc2VjdGlvbiBpcyBkaXNwbGF5ZWQuCiAgICAgIiIi
CiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQogICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcygKICAgICAgICAgWwogICAgICAgICAgICAgIio9PSAlcyA9PSoiICUgV0FSTklO
R1NfU1VNTUFSWV9IRUFERVIsCi0gICAgICAgICAgICAiKnRlc3Rfbm9ybWFsX2Zsb3cucHk6OnRl
c3RfZnVuYyIsCisgICAgICAgICAgICAidGVzdF9ub3JtYWxfZmxvdy5weTo6dGVzdF9mdW5jIiwK
ICAgICAgICAgICAgICIqbm9ybWFsX2Zsb3dfbW9kdWxlLnB5OjM6IFVzZXJXYXJuaW5nOiB1c2Vy
IHdhcm5pbmciLAogICAgICAgICAgICAgJyogIHdhcm5pbmdzLndhcm4oVXNlcldhcm5pbmcoInVz
ZXIgd2FybmluZyIpKScsCiAgICAgICAgICAgICAiKm5vcm1hbF9mbG93X21vZHVsZS5weTo0OiBS
dW50aW1lV2FybmluZzogcnVudGltZSB3YXJuaW5nIiwKQEAgLTU1LDcgKzU2LDYgQEAgZGVmIHRl
c3Rfbm9ybWFsX2Zsb3codGVzdGRpciwgcHlmaWxlX3dpdGhfd2FybmluZ3MpOgogICAgICAgICAg
ICAgIiogMSBwYXNzZWQsIDIgd2FybmluZ3MqIiwKICAgICAgICAgXQogICAgICkKLSAgICBhc3Nl
cnQgcmVzdWx0LnN0ZG91dC5zdHIoKS5jb3VudCgidGVzdF9ub3JtYWxfZmxvdy5weTo6dGVzdF9m
dW5jIikgPT0gMQogCiAKIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiYWx3YXlzIikKQEAg
LTk1LDEwICs5NSwxMiBAQCBkZWYgdGVzdF9hc19lcnJvcnModGVzdGRpciwgcHlmaWxlX3dpdGhf
d2FybmluZ3MsIG1ldGhvZCk6CiAgICAgICAgIHRlc3RkaXIubWFrZWluaSgKICAgICAgICAgICAg
ICIiIgogICAgICAgICAgICAgW3B5dGVzdF0KLSAgICAgICAgICAgIGZpbHRlcndhcm5pbmdzPSBl
cnJvcgorICAgICAgICAgICAgZmlsdGVyd2FybmluZ3M9ZXJyb3IKICAgICAgICAgICAgICIiIgog
ICAgICAgICApCi0gICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKmFyZ3MpCisgICAgIyBV
c2UgYSBzdWJwcm9jZXNzLCBzaW5jZSBjaGFuZ2luZyBsb2dnaW5nIGxldmVsIGFmZmVjdHMgb3Ro
ZXIgdGhyZWFkcworICAgICMgKHhkaXN0KS4KKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dF9zdWJwcm9jZXNzKCphcmdzKQogICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAg
ICAgICAgWwogICAgICAgICAgICAgIkUgICAgICAgVXNlcldhcm5pbmc6IHVzZXIgd2FybmluZyIs
CkBAIC0xMzEsNyArMTMzLDcgQEAgZGVmIHRlc3RfaWdub3JlKHRlc3RkaXIsIHB5ZmlsZV93aXRo
X3dhcm5pbmdzLCBtZXRob2QpOgogZGVmIHRlc3RfdW5pY29kZSh0ZXN0ZGlyLCBweWZpbGVfd2l0
aF93YXJuaW5ncyk6CiAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAiIiIKLSAgICAg
ICAgIyAtKi0gY29kaW5nOiB1dGY4IC0qLQorICAgICAgICAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0q
LQogICAgICAgICBpbXBvcnQgd2FybmluZ3MKICAgICAgICAgaW1wb3J0IHB5dGVzdAogCkBAIC0x
NjAsMTQgKzE2MiwxMyBAQCBkZWYgdGVzdF91bmljb2RlKHRlc3RkaXIsIHB5ZmlsZV93aXRoX3dh
cm5pbmdzKToKICAgICByZWFzb249Indhcm5pbmdzIG1lc3NhZ2UgaXMgYnJva2VuIGFzIGl0IGlz
IG5vdCBzdHIgaW5zdGFuY2UiLAogKQogZGVmIHRlc3RfcHkyX3VuaWNvZGUodGVzdGRpciwgcHlm
aWxlX3dpdGhfd2FybmluZ3MpOgotICAgIGlmICgKLSAgICAgICAgZ2V0YXR0cihzeXMsICJweXB5
X3ZlcnNpb25faW5mbyIsICgpKVs6Ml0gPT0gKDUsIDkpCi0gICAgICAgIGFuZCBzeXMucGxhdGZv
cm0uc3RhcnRzd2l0aCgid2luIikKKyAgICBpZiBnZXRhdHRyKHN5cywgInB5cHlfdmVyc2lvbl9p
bmZvIiwgKCkpWzoyXSA9PSAoNSwgOSkgYW5kIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKAorICAg
ICAgICAid2luIgogICAgICk6CiAgICAgICAgIHB5dGVzdC54ZmFpbCgiZmFpbHMgd2l0aCB1bmlj
b2RlIGVycm9yIG9uIFB5UHkyIDUuOSBhbmQgV2luZG93cyAoIzI5MDUpIikKICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCiAgICAgICAgICIiIgotICAgICAgICAjIC0qLSBjb2Rpbmc6IHV0ZjggLSot
CisgICAgICAgICMgLSotIGNvZGluZzogdXRmLTggLSotCiAgICAgICAgIGltcG9ydCB3YXJuaW5n
cwogICAgICAgICBpbXBvcnQgcHl0ZXN0CiAKQEAgLTI4OCwzICsyODksNDI3IEBAIGRlZiB0ZXN0
X25vbl9zdHJpbmdfd2FybmluZ19hcmd1bWVudCh0ZXN0ZGlyKToKICAgICApCiAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi1XIiwgImFsd2F5cyIpCiAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsiKj0gMSBwYXNzZWQsIDEgd2FybmluZ3MgaW4gKiJdKQorCisKK2RlZiB0
ZXN0X2ZpbHRlcndhcm5pbmdzX21hcmtfcmVnaXN0cmF0aW9uKHRlc3RkaXIpOgorICAgICIiIkVu
c3VyZSBmaWx0ZXJ3YXJuaW5ncyBtYXJrIGlzIHJlZ2lzdGVyZWQiIiIKKyAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAg
QHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCdlcnJvcicpCisgICAgICAgIGRlZiB0ZXN0X2Z1
bmMoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi0tc3RyaWN0LW1hcmtlcnMiKQorICAgIGFzc2VydCByZXN1bHQucmV0
ID09IDAKKworCitAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImFsd2F5cyIpCitkZWYgdGVz
dF93YXJuaW5nX2NhcHR1cmVkX2hvb2sodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlY29uZnRl
c3QoCisgICAgICAgICIiIgorICAgICAgICBmcm9tIF9weXRlc3Qud2FybmluZ3MgaW1wb3J0IF9p
c3N1ZV93YXJuaW5nX2NhcHR1cmVkCisgICAgICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZp
Zyk6CisgICAgICAgICAgICBfaXNzdWVfd2FybmluZ19jYXB0dXJlZChVc2VyV2FybmluZygiY29u
ZmlnIHdhcm5pbmciKSwgY29uZmlnLmhvb2ssIHN0YWNrbGV2ZWw9MikKKyAgICAiIiIKKyAgICAp
CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHB5
dGVzdCwgd2FybmluZ3MKKworICAgICAgICB3YXJuaW5ncy53YXJuKFVzZXJXYXJuaW5nKCJjb2xs
ZWN0IHdhcm5pbmciKSkKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGZp
eCgpOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybihVc2VyV2FybmluZygic2V0dXAgd2Fybmlu
ZyIpKQorICAgICAgICAgICAgeWllbGQgMQorICAgICAgICAgICAgd2FybmluZ3Mud2FybihVc2Vy
V2FybmluZygidGVhcmRvd24gd2FybmluZyIpKQorCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoZml4
KToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oVXNlcldhcm5pbmcoImNhbGwgd2FybmluZyIp
KQorICAgICAgICAgICAgYXNzZXJ0IGZpeCA9PSAxCisgICAgICAgICIiIgorICAgICkKKworICAg
IGNvbGxlY3RlZCA9IFtdCisKKyAgICBjbGFzcyBXYXJuaW5nQ29sbGVjdG9yOgorICAgICAgICBk
ZWYgcHl0ZXN0X3dhcm5pbmdfY2FwdHVyZWQoc2VsZiwgd2FybmluZ19tZXNzYWdlLCB3aGVuLCBp
dGVtKToKKyAgICAgICAgICAgIGltZ2VfbmFtZSA9IGl0ZW0ubmFtZSBpZiBpdGVtIGlzIG5vdCBO
b25lIGVsc2UgIiIKKyAgICAgICAgICAgIGNvbGxlY3RlZC5hcHBlbmQoKHN0cih3YXJuaW5nX21l
c3NhZ2UubWVzc2FnZSksIHdoZW4sIGltZ2VfbmFtZSkpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdChwbHVnaW5zPVtXYXJuaW5nQ29sbGVjdG9yKCldKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKworICAgIGV4cGVjdGVkID0gWworICAg
ICAgICAoImNvbmZpZyB3YXJuaW5nIiwgImNvbmZpZyIsICIiKSwKKyAgICAgICAgKCJjb2xsZWN0
IHdhcm5pbmciLCAiY29sbGVjdCIsICIiKSwKKyAgICAgICAgKCJzZXR1cCB3YXJuaW5nIiwgInJ1
bnRlc3QiLCAidGVzdF9mdW5jIiksCisgICAgICAgICgiY2FsbCB3YXJuaW5nIiwgInJ1bnRlc3Qi
LCAidGVzdF9mdW5jIiksCisgICAgICAgICgidGVhcmRvd24gd2FybmluZyIsICJydW50ZXN0Iiwg
InRlc3RfZnVuYyIpLAorICAgIF0KKyAgICBhc3NlcnQgY29sbGVjdGVkID09IGV4cGVjdGVkCisK
KworQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJhbHdheXMiKQorZGVmIHRlc3RfY29sbGVj
dGlvbl93YXJuaW5ncyh0ZXN0ZGlyKToKKyAgICAiIiIKKyAgICBDaGVjayB0aGF0IHdlIGFsc28g
Y2FwdHVyZSB3YXJuaW5ncyBpc3N1ZWQgZHVyaW5nIHRlc3QgY29sbGVjdGlvbiAoIzMyNTEpLgor
ICAgICIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGlt
cG9ydCB3YXJuaW5ncworCisgICAgICAgIHdhcm5pbmdzLndhcm4oVXNlcldhcm5pbmcoImNvbGxl
Y3Rpb24gd2FybmluZyIpKQorCisgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAg
cGFzcworICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAi
Kj09ICVzID09KiIgJSBXQVJOSU5HU19TVU1NQVJZX0hFQURFUiwKKyAgICAgICAgICAgICIgICpj
b2xsZWN0aW9uX3dhcm5pbmdzLnB5OjM6IFVzZXJXYXJuaW5nOiBjb2xsZWN0aW9uIHdhcm5pbmci
LAorICAgICAgICAgICAgJyAgICB3YXJuaW5ncy53YXJuKFVzZXJXYXJuaW5nKCJjb2xsZWN0aW9u
IHdhcm5pbmciKSknLAorICAgICAgICAgICAgIiogMSBwYXNzZWQsIDEgd2FybmluZ3MqIiwKKyAg
ICAgICAgXQorICAgICkKKworCitAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImFsd2F5cyIp
CitkZWYgdGVzdF9tYXJrX3JlZ2V4X2VzY2FwZSh0ZXN0ZGlyKToKKyAgICAiIiJAcHl0ZXN0Lm1h
cmsuZmlsdGVyd2FybmluZ3Mgc2hvdWxkIG5vdCB0cnkgdG8gZXNjYXBlIHJlZ2V4IGNoYXJhY3Rl
cnMgKCMzOTM2KSIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgciIiIgorICAg
ICAgICBpbXBvcnQgcHl0ZXN0LCB3YXJuaW5ncworCisgICAgICAgIEBweXRlc3QubWFyay5maWx0
ZXJ3YXJuaW5ncyhyImlnbm9yZTpzb21lIFwod2FybmluZ1wpIikKKyAgICAgICAgZGVmIHRlc3Rf
Zm9vKCk6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKFVzZXJXYXJuaW5nKCJzb21lICh3YXJu
aW5nKSIpKQorICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgYXNzZXJ0IFdBUk5JTkdTX1NVTU1BUllfSEVBREVSIG5vdCBpbiByZXN1bHQuc3Rkb3V0
LnN0cigpCisKKworQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJkZWZhdWx0IikKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiaWdub3JlX3B5dGVzdF93YXJuaW5ncyIsIFsibm8iLCAiaW5p
IiwgImNtZGxpbmUiXSkKK2RlZiB0ZXN0X2hpZGVfcHl0ZXN0X2ludGVybmFsX3dhcm5pbmdzKHRl
c3RkaXIsIGlnbm9yZV9weXRlc3Rfd2FybmluZ3MpOgorICAgICIiIk1ha2Ugc3VyZSB3ZSBjYW4g
aWdub3JlIGludGVybmFsIHB5dGVzdCB3YXJuaW5ncyB1c2luZyBhIHdhcm5pbmdzIGZpbHRlci4i
IiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgIGltcG9ydCB3YXJuaW5ncworCisgICAgICAgIHdhcm5pbmdzLndhcm4o
cHl0ZXN0LlB5dGVzdFdhcm5pbmcoInNvbWUgaW50ZXJuYWwgd2FybmluZyIpKQorCisgICAgICAg
IGRlZiB0ZXN0X2JhcigpOgorICAgICAgICAgICAgcGFzcworICAgICIiIgorICAgICkKKyAgICBp
ZiBpZ25vcmVfcHl0ZXN0X3dhcm5pbmdzID09ICJpbmkiOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vp
bmkoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBm
aWx0ZXJ3YXJuaW5ncyA9IGlnbm9yZTo6cHl0ZXN0LlB5dGVzdFdhcm5pbmcKKyAgICAgICAgIiIi
CisgICAgICAgICkKKyAgICBhcmdzID0gKAorICAgICAgICBbIi1XIiwgImlnbm9yZTo6cHl0ZXN0
LlB5dGVzdFdhcm5pbmciXQorICAgICAgICBpZiBpZ25vcmVfcHl0ZXN0X3dhcm5pbmdzID09ICJj
bWRsaW5lIgorICAgICAgICBlbHNlIFtdCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCphcmdzKQorICAgIGlmIGlnbm9yZV9weXRlc3Rfd2FybmluZ3MgIT0gIm5vIjoKKyAg
ICAgICAgYXNzZXJ0IFdBUk5JTkdTX1NVTU1BUllfSEVBREVSIG5vdCBpbiByZXN1bHQuc3Rkb3V0
LnN0cigpCisgICAgZWxzZToKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAor
ICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICIqPT0gJXMgPT0qIiAlIFdBUk5JTkdTX1NV
TU1BUllfSEVBREVSLAorICAgICAgICAgICAgICAgICIqdGVzdF9oaWRlX3B5dGVzdF9pbnRlcm5h
bF93YXJuaW5ncy5weTo0OiBQeXRlc3RXYXJuaW5nOiBzb21lIGludGVybmFsIHdhcm5pbmciLAor
ICAgICAgICAgICAgICAgICIqIDEgcGFzc2VkLCAxIHdhcm5pbmdzICoiLAorICAgICAgICAgICAg
XQorICAgICAgICApCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJpZ25vcmVfb25fY21k
bGluZSIsIFtUcnVlLCBGYWxzZV0pCitkZWYgdGVzdF9vcHRpb25fcHJlY2VkZW5jZV9jbWRsaW5l
X292ZXJfaW5pKHRlc3RkaXIsIGlnbm9yZV9vbl9jbWRsaW5lKToKKyAgICAiIiJmaWx0ZXJzIGRl
ZmluZWQgaW4gdGhlIGNvbW1hbmQtbGluZSBzaG91bGQgdGFrZSBwcmVjZWRlbmNlIG92ZXIgZmls
dGVycyBpbiBpbmkgZmlsZXMgKCMzOTQ2KS4iIiIKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAg
ICAgICIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBmaWx0ZXJ3YXJuaW5ncyA9IGVycm9y
CisgICAgIiIiCisgICAgKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisg
ICAgICAgIGltcG9ydCB3YXJuaW5ncworICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAg
d2FybmluZ3Mud2FybihVc2VyV2FybmluZygnaGVsbG8nKSkKKyAgICAiIiIKKyAgICApCisgICAg
YXJncyA9IFsiLVciLCAiaWdub3JlIl0gaWYgaWdub3JlX29uX2NtZGxpbmUgZWxzZSBbXQorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCphcmdzKQorICAgIGlmIGlnbm9yZV9vbl9jbWRs
aW5lOgorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDEgcGFzc2VkIGlu
KiJdKQorICAgIGVsc2U6CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiog
MSBmYWlsZWQgaW4qIl0pCisKKworZGVmIHRlc3Rfb3B0aW9uX3ByZWNlZGVuY2VfbWFyayh0ZXN0
ZGlyKToKKyAgICAiIiJGaWx0ZXJzIGRlZmluZWQgYnkgbWFya3Mgc2hvdWxkIGFsd2F5cyB0YWtl
IHByZWNlZGVuY2UgKCMzOTQ2KS4iIiIKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIi
IgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBmaWx0ZXJ3YXJuaW5ncyA9IGlnbm9yZQorICAg
ICIiIgorICAgICkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAg
ICBpbXBvcnQgcHl0ZXN0LCB3YXJuaW5ncworICAgICAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2Fy
bmluZ3MoJ2Vycm9yJykKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHdhcm5pbmdz
Lndhcm4oVXNlcldhcm5pbmcoJ2hlbGxvJykpCisgICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItVyIsICJpZ25vcmUiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbIiogMSBmYWlsZWQgaW4qIl0pCisKKworY2xhc3MgVGVzdERlcHJlY2F0aW9u
V2FybmluZ3NCeURlZmF1bHQ6CisgICAgIiIiCisgICAgTm90ZTogYWxsIHB5dGVzdCBydW5zIGFy
ZSBleGVjdXRlZCBpbiBhIHN1YnByb2Nlc3Mgc28gd2UgZG9uJ3QgaW5oZXJpdCB3YXJuaW5nIGZp
bHRlcnMKKyAgICBmcm9tIHB5dGVzdCdzIG93biB0ZXN0IHN1aXRlCisgICAgIiIiCisKKyAgICBk
ZWYgY3JlYXRlX2ZpbGUoc2VsZiwgdGVzdGRpciwgbWFyaz0iIik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdCwg
d2FybmluZ3MKKworICAgICAgICAgICAgd2FybmluZ3Mud2FybihEZXByZWNhdGlvbldhcm5pbmco
ImNvbGxlY3Rpb24iKSkKKworICAgICAgICAgICAge21hcmt9CisgICAgICAgICAgICBkZWYgdGVz
dF9mb28oKToKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKFBlbmRpbmdEZXByZWNhdGlv
bldhcm5pbmcoInRlc3QgcnVuIikpCisgICAgICAgICIiIi5mb3JtYXQoCisgICAgICAgICAgICAg
ICAgbWFyaz1tYXJrCisgICAgICAgICAgICApCisgICAgICAgICkKKworICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgiY3VzdG9taXplX2ZpbHRlcnMiLCBbVHJ1ZSwgRmFsc2VdKQorICAgIGRl
ZiB0ZXN0X3Nob3duX2J5X2RlZmF1bHQoc2VsZiwgdGVzdGRpciwgY3VzdG9taXplX2ZpbHRlcnMp
OgorICAgICAgICAiIiJTaG93IGRlcHJlY2F0aW9uIHdhcm5pbmdzIGJ5IGRlZmF1bHQsIGV2ZW4g
aWYgdXNlciBoYXMgY3VzdG9taXplZCB0aGUgd2FybmluZ3MgZmlsdGVycyAoIzQwMTMpLiIiIgor
ICAgICAgICBzZWxmLmNyZWF0ZV9maWxlKHRlc3RkaXIpCisgICAgICAgIGlmIGN1c3RvbWl6ZV9m
aWx0ZXJzOgorICAgICAgICAgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICAgICAgZmlsdGVyd2Fybmlu
Z3MgPQorICAgICAgICAgICAgICAgICAgICBvbmNlOjpVc2VyV2FybmluZworICAgICAgICAgICAg
IiIiCisgICAgICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1
YnByb2Nlc3MoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAg
ICAgICBbCisgICAgICAgICAgICAgICAgIio9PSAlcyA9PSoiICUgV0FSTklOR1NfU1VNTUFSWV9I
RUFERVIsCisgICAgICAgICAgICAgICAgIip0ZXN0X3Nob3duX2J5X2RlZmF1bHQucHk6MzogRGVw
cmVjYXRpb25XYXJuaW5nOiBjb2xsZWN0aW9uIiwKKyAgICAgICAgICAgICAgICAiKnRlc3Rfc2hv
d25fYnlfZGVmYXVsdC5weTo3OiBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nOiB0ZXN0IHJ1biIs
CisgICAgICAgICAgICAgICAgIiogMSBwYXNzZWQsIDIgd2FybmluZ3MqIiwKKyAgICAgICAgICAg
IF0KKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfaGlkZGVuX2J5X2luaShzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgc2VsZi5jcmVhdGVfZmlsZSh0ZXN0ZGlyKQorICAgICAgICB0ZXN0ZGlyLm1h
a2VpbmkoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAg
ICBmaWx0ZXJ3YXJuaW5ncyA9CisgICAgICAgICAgICAgICAgaWdub3JlOjpEZXByZWNhdGlvbldh
cm5pbmcKKyAgICAgICAgICAgICAgICBpZ25vcmU6OlBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcK
KyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3Rfc3VicHJvY2VzcygpCisgICAgICAgIGFzc2VydCBXQVJOSU5HU19TVU1NQVJZX0hFQURFUiBu
b3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAgZGVmIHRlc3RfaGlkZGVuX2J5X21hcmso
c2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlNob3VsZCBoaWRlIHRoZSBkZXByZWNhdGlvbiB3
YXJuaW5nIGZyb20gdGhlIGZ1bmN0aW9uLCBidXQgdGhlIHdhcm5pbmcgZHVyaW5nIGNvbGxlY3Rp
b24gc2hvdWxkCisgICAgICAgIGJlIGRpc3BsYXllZCBub3JtYWxseS4KKyAgICAgICAgIiIiCisg
ICAgICAgIHNlbGYuY3JlYXRlX2ZpbGUoCisgICAgICAgICAgICB0ZXN0ZGlyLAorICAgICAgICAg
ICAgbWFyaz0nQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJpZ25vcmU6OlBlbmRpbmdEZXBy
ZWNhdGlvbldhcm5pbmciKScsCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3Rfc3VicHJvY2VzcygpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiKj09ICVzID09KiIgJSBXQVJOSU5H
U19TVU1NQVJZX0hFQURFUiwKKyAgICAgICAgICAgICAgICAiKnRlc3RfaGlkZGVuX2J5X21hcmsu
cHk6MzogRGVwcmVjYXRpb25XYXJuaW5nOiBjb2xsZWN0aW9uIiwKKyAgICAgICAgICAgICAgICAi
KiAxIHBhc3NlZCwgMSB3YXJuaW5ncyoiLAorICAgICAgICAgICAgXQorICAgICAgICApCisKKyAg
ICBkZWYgdGVzdF9oaWRkZW5fYnlfY21kbGluZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgc2Vs
Zi5jcmVhdGVfZmlsZSh0ZXN0ZGlyKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dF9zdWJwcm9jZXNzKAorICAgICAgICAgICAgIi1XIiwKKyAgICAgICAgICAgICJpZ25vcmU6OkRl
cHJlY2F0aW9uV2FybmluZyIsCisgICAgICAgICAgICAiLVciLAorICAgICAgICAgICAgImlnbm9y
ZTo6UGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyIsCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0
IFdBUk5JTkdTX1NVTU1BUllfSEVBREVSIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAg
ICBkZWYgdGVzdF9oaWRkZW5fYnlfc3lzdGVtKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToK
KyAgICAgICAgc2VsZi5jcmVhdGVfZmlsZSh0ZXN0ZGlyKQorICAgICAgICBtb25rZXlwYXRjaC5z
ZXRlbnYoc3RyKCJQWVRIT05XQVJOSU5HUyIpLCBzdHIoIm9uY2U6OlVzZXJXYXJuaW5nIikpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQorICAgICAgICBh
c3NlcnQgV0FSTklOR1NfU1VNTUFSWV9IRUFERVIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkK
KworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKG5vdCBzaXguUFkyLCByZWFzb249IlB5dGhvbiAyIG9u
bHkgaXNzdWUiKQorZGVmIHRlc3RfaW5maW5pdGVfbG9vcF93YXJuaW5nX2FnYWluc3RfdW5pY29k
ZV91c2FnZV9weTIodGVzdGRpcik6CisgICAgIiIiCisgICAgV2UgbmVlZCB0byBiZSBjYXJlZnVs
IHdoZW4gcmFpc2luZyB0aGUgd2FybmluZyBhYm91dCB1bmljb2RlIHVzYWdlIHdpdGggIndhcm5p
bmdzLndhcm4iCisgICAgYmVjYXVzZSBpdCBtaWdodCBiZSBvdmVyd3JpdHRlbiBieSB1c2VycyBh
bmQgdGhpcyBpdHNlbGYgY2F1c2VzIGFub3RoZXIgd2FybmluZyAoIzM2OTEpLgorICAgICIiIgor
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgICMgLSotIGNvZGlu
ZzogdXRmLTggLSotCisgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRl
cmFscworICAgICAgICBpbXBvcnQgd2FybmluZ3MKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisg
ICAgICAgIGRlZiBfY3VzdG9tX3Nob3d3YXJuaW5nKG1lc3NhZ2UsICphLCAqKmIpOgorICAgICAg
ICAgICAgcmV0dXJuICJXQVJOSU5HOiB7fSIuZm9ybWF0KG1lc3NhZ2UpCisKKyAgICAgICAgd2Fy
bmluZ3MuZm9ybWF0d2FybmluZyA9IF9jdXN0b21fc2hvd3dhcm5pbmcKKworICAgICAgICBAcHl0
ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImRlZmF1bHQiKQorICAgICAgICBkZWYgdGVzdF9jdXN0
b21fd2FybmluZ19mb3JtYXR0ZXIoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIsKlIikK
KyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2Vz
cygpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkLCAqIHdhcm5p
bmdzIGluKiJdKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY2hhbmdlX2RlZmF1bHQi
LCBbTm9uZSwgImluaSIsICJjbWRsaW5lIl0pCitkZWYgdGVzdF9yZW1vdmVkX2luX3B5dGVzdDRf
d2FybmluZ19hc19lcnJvcih0ZXN0ZGlyLCBjaGFuZ2VfZGVmYXVsdCk6CisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHdhcm5pbmdzLCBweXRlc3QK
KyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4ocHl0ZXN0LlJl
bW92ZWRJblB5dGVzdDRXYXJuaW5nKCJzb21lIHdhcm5pbmciKSkKKyAgICAiIiIKKyAgICApCisg
ICAgaWYgY2hhbmdlX2RlZmF1bHQgPT0gImluaSI6CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgK
KyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGZpbHRl
cndhcm5pbmdzID0KKyAgICAgICAgICAgICAgICBpZ25vcmU6OnB5dGVzdC5SZW1vdmVkSW5QeXRl
c3Q0V2FybmluZworICAgICAgICAiIiIKKyAgICAgICAgKQorCisgICAgYXJncyA9ICgKKyAgICAg
ICAgKCItV2lnbm9yZTo6cHl0ZXN0LlJlbW92ZWRJblB5dGVzdDRXYXJuaW5nIiwpCisgICAgICAg
IGlmIGNoYW5nZV9kZWZhdWx0ID09ICJjbWRsaW5lIgorICAgICAgICBlbHNlICgpCisgICAgKQor
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCphcmdzKQorICAgIGlmIGNoYW5nZV9kZWZh
dWx0IGlzIE5vbmU6CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMSBm
YWlsZWQgaW4gKiJdKQorICAgIGVsc2U6CisgICAgICAgIGFzc2VydCBjaGFuZ2VfZGVmYXVsdCBp
biAoImluaSIsICJjbWRsaW5lIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKiAxIHBhc3NlZCBpbiAqIl0pCisKKworY2xhc3MgVGVzdEFzc2VydGlvbldhcm5pbmdzOgor
ICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgYXNzZXJ0X3Jlc3VsdF93YXJucyhyZXN1bHQsIG1z
Zyk6CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipQeXRlc3RBc3NlcnRS
ZXdyaXRlV2FybmluZzogJXMqIiAlIG1zZ10pCisKKyAgICBkZWYgdGVzdF90dXBsZV93YXJuaW5n
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCAoMSwyKQorICAgICAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQorICAgICAgICBzZWxmLmFzc2VydF9yZXN1bHRfd2FybnMoCisgICAg
ICAgICAgICByZXN1bHQsICJhc3NlcnRpb24gaXMgYWx3YXlzIHRydWUsIHBlcmhhcHMgcmVtb3Zl
IHBhcmVudGhlc2VzPyIKKyAgICAgICAgKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBj
cmVhdGVfZmlsZSh0ZXN0ZGlyLCByZXR1cm5fbm9uZSk6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIGZvbyhyZXR1cm5fbm9uZSk6
CisgICAgICAgICAgICAgICAgaWYgcmV0dXJuX25vbmU6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBOb25lCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAg
IGFzc2VydCBmb28oe3JldHVybl9ub25lfSkKKyAgICAgICAgICAgICIiIi5mb3JtYXQoCisgICAg
ICAgICAgICAgICAgcmV0dXJuX25vbmU9cmV0dXJuX25vbmUKKyAgICAgICAgICAgICkKKyAgICAg
ICAgKQorCisgICAgZGVmIHRlc3Rfbm9uZV9mdW5jdGlvbl93YXJucyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgc2VsZi5jcmVhdGVfZmlsZSh0ZXN0ZGlyLCBUcnVlKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0X3Jlc3VsdF93YXJucygK
KyAgICAgICAgICAgIHJlc3VsdCwgJ2Fzc2VydGluZyB0aGUgdmFsdWUgTm9uZSwgcGxlYXNlIHVz
ZSAiYXNzZXJ0IGlzIE5vbmUiJworICAgICAgICApCisKKyAgICBkZWYgdGVzdF9hc3NlcnRfaXNf
bm9uZV9ub193YXJuKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGRlZiBmb28oKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gTm9uZQorCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgZm9vKCkgaXMgTm9uZQorICAgICAgICAgICAgIiIiCisgICAgICAgICkKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQgaW4qIl0pCisKKyAgICBkZWYgdGVzdF9mYWxzZV9m
dW5jdGlvbl9ub193YXJuKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBzZWxmLmNyZWF0ZV9maWxl
KHRlc3RkaXIsIEZhbHNlKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIGZhaWxlZCBpbioiXSkKKwor
CitkZWYgdGVzdF93YXJuaW5nc19jaGVja2VyX3R3aWNlKCk6CisgICAgIiIiSXNzdWUgIzQ2MTci
IiIKKyAgICBleHBlY3RhdGlvbiA9IHB5dGVzdC53YXJucyhVc2VyV2FybmluZykKKyAgICB3aXRo
IGV4cGVjdGF0aW9uOgorICAgICAgICB3YXJuaW5ncy53YXJuKCJNZXNzYWdlIEEiLCBVc2VyV2Fy
bmluZykKKyAgICB3aXRoIGV4cGVjdGF0aW9uOgorICAgICAgICB3YXJuaW5ncy53YXJuKCJNZXNz
YWdlIEIiLCBVc2VyV2FybmluZykKKworCitAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImFs
d2F5cyIpCitkZWYgdGVzdF9ncm91cF93YXJuaW5nc19ieV9tZXNzYWdlKHRlc3RkaXIpOgorICAg
IHRlc3RkaXIuY29weV9leGFtcGxlKCJ3YXJuaW5ncy90ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21l
c3NhZ2UucHkiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAgICAgICAgICJ0ZXN0X2dyb3Vw
X3dhcm5pbmdzX2J5X21lc3NhZ2UucHk6OnRlc3RfZm9vWzBdIiwKKyAgICAgICAgICAgICJ0ZXN0
X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2UucHk6OnRlc3RfZm9vWzFdIiwKKyAgICAgICAgICAg
ICJ0ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2UucHk6OnRlc3RfZm9vWzJdIiwKKyAgICAg
ICAgICAgICJ0ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2UucHk6OnRlc3RfZm9vWzNdIiwK
KyAgICAgICAgICAgICJ0ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2UucHk6OnRlc3RfZm9v
WzRdIiwKKyAgICAgICAgICAgICJ0ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2UucHk6OnRl
c3RfYmFyIiwKKyAgICAgICAgXQorICAgICkKKyAgICB3YXJuaW5nX2NvZGUgPSAnd2FybmluZ3Mu
d2FybihVc2VyV2FybmluZygiZm9vIikpJworICAgIGFzc2VydCB3YXJuaW5nX2NvZGUgaW4gcmVz
dWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCByZXN1bHQuc3Rkb3V0LnN0cigpLmNvdW50KHdh
cm5pbmdfY29kZSkgPT0gMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKaW5kZXggYmU3Nzdh
OTJjMzdjOTYzNzQ2ZjdiNDg0ZGNlZWZkYmI5MTZiOWE3Yy4uZTgwYjZhZjQ2NjY3OWYzMzcwN2Vk
OGFhYWJlMzM1ZDg2NGRkYmU0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy93M2Mt
aW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3czYy1pbXBvcnQubG9nCkBAIC0x
NSw2ICsxNSw3IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2FjY2VwdGFuY2VfdGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
Y29uZnRlc3QucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2RlcHJlY2F0ZWRfdGVzdC5weQogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hcmdjb21wbGV0ZS5weQogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF9hc3NlcnRpb24ucHkKQEAgLTM2LDE1ICszNywxOCBAQCBMaXN0IG9mIGZpbGVzOgog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ub3NlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X3BhcnNlb3B0LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Bhc3RlYmluLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BhdGhsaWIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfcGRiLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcHl0ZXN0ZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfcmVjd2Fybi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9yZXBvcnRzLnB5
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Jlc3VsdGxvZy5weQogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9ydW5uZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcnVubmVyX3h1
bml0LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Nlc3Npb24ucHkKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3Rfc2tpcHBpbmcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc3Rl
cHdpc2UucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfdGVybWluYWwucHkKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3Rlc3RfdG1wZGlyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Vu
aXR0ZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90b3guaW5pIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dG94LmluaQppbmRleCBjYjM4NDZkNTQyMmFkOWNiZjY2NTQ3YTQ2MjU2ZDA1ZWY0NDk0NTg1Li5m
NzVhMDYxMDQ4MjE4Zjg1NzBkMmExMDYwNDkyNWYxMjBhMTZkNzcxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90b3guaW5pCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3RveC5pbmkKQEAgLTEsNSArMSw2IEBA
CiBbdG94XQotbWludmVyc2lvbiA9IDIuMAoraXNvbGF0ZWRfYnVpbGQgPSBUcnVlCittaW52ZXJz
aW9uID0gMy41LjMKIGRpc3RzaGFyZSA9IHtob21lZGlyfS8udG94L2Rpc3RzaGFyZQogIyBtYWtl
IHN1cmUgdG8gdXBkYXRlIGVudmlyb25tZW50IGxpc3QgaW4gdHJhdmlzLnltbCBhbmQgYXBwdmV5
b3IueW1sCiBlbnZsaXN0ID0KQEAgLTksMTkzICsxMCwxNjIgQEAgZW52bGlzdCA9CiAgICAgcHkz
NQogICAgIHB5MzYKICAgICBweTM3CisgICAgcHkzOAorICAgIHB5MzkKICAgICBweXB5Ci0gICAg
e3B5MjcscHkzNn0te3BleHBlY3QseGRpc3QsdHJpYWwsbnVtcHkscGx1Z2d5bWFzdGVyfQotICAg
IHB5Mjctbm9ieXRlCisgICAgcHlweTMKKyAgICB7cHkyNyxweTM3fS17cGV4cGVjdCx4ZGlzdCx0
d2lzdGVkLG51bXB5LHBsdWdneW1hc3Rlcn0KKyAgICBweTI3LW5vYnl0ZS14ZGlzdAogICAgIGRv
Y3Rlc3RpbmcKLSAgICBweTM2LWZyZWV6ZQorICAgIHB5MzctZnJlZXplCiAgICAgZG9jcwogCiBb
dGVzdGVudl0KLWNvbW1hbmRzID0gcHl0ZXN0IC0tbHNvZiAtcmEge3Bvc2FyZ3M6dGVzdGluZ30K
LXBhc3NlbnYgPSBVU0VSIFVTRVJOQU1FCi1kZXBzID0KLSAgICBoeXBvdGhlc2lzPj0zLjU2Ci0g
ICAgbm9zZQotICAgIG1vY2sKLSAgICByZXF1ZXN0cwotCi1bdGVzdGVudjpweTI3LXN1YnByb2Nl
c3NdCi1jaGFuZ2VkaXIgPSAuCi1kZXBzID0KLSAgICBweXRlc3QteGRpc3Q+PTEuMTMKLSAgICBt
b2NrCi0gICAgbm9zZQogY29tbWFuZHMgPQotICAgIHB5dGVzdCAtbjMgLXJhIC0tcnVucHl0ZXN0
PXN1YnByb2Nlc3Mge3Bvc2FyZ3M6dGVzdGluZ30KKyAgICB7ZW52Ol9QWVRFU1RfVE9YX0NPVkVS
QUdFX1JVTjp9IHB5dGVzdCB7cG9zYXJnczp7ZW52Ol9QWVRFU1RfVE9YX0RFRkFVTFRfUE9TQVJH
Uzp9fQorICAgIGNvdmVyYWdlOiBjb3ZlcmFnZSBjb21iaW5lCisgICAgY292ZXJhZ2U6IGNvdmVy
YWdlIHJlcG9ydAorcGFzc2VudiA9IFVTRVIgVVNFUk5BTUUgQ09WRVJBR0VfKiBUUkFWSVMgUFlU
RVNUX0FERE9QVFMKK3NldGVudiA9CisgICAgX1BZVEVTVF9UT1hfREVGQVVMVF9QT1NBUkdTPXtl
bnY6X1BZVEVTVF9UT1hfUE9TQVJHU19MU09GOn0ge2VudjpfUFlURVNUX1RPWF9QT1NBUkdTX1BF
WFBFQ1Q6fSB7ZW52Ol9QWVRFU1RfVE9YX1BPU0FSR1NfVFdJU1RFRDp9IHtlbnY6X1BZVEVTVF9U
T1hfUE9TQVJHU19YRElTVDp9CiAKKyAgICAjIENvbmZpZ3VyYXRpb24gdG8gcnVuIHdpdGggY292
ZXJhZ2Ugc2ltaWxhciB0byBUcmF2aXMvQXBwdmV5b3IsIGUuZy4KKyAgICAjICJ0b3ggLWUgcHkz
Ny1jb3ZlcmFnZSIuCisgICAgY292ZXJhZ2U6IF9QWVRFU1RfVE9YX0NPVkVSQUdFX1JVTj1jb3Zl
cmFnZSBydW4gLW0KKyAgICBjb3ZlcmFnZTogX1BZVEVTVF9UT1hfRVhUUkFfREVQPWNvdmVyYWdl
LWVuYWJsZS1zdWJwcm9jZXNzCisgICAgY292ZXJhZ2U6IENPVkVSQUdFX0ZJTEU9e3RveGluaWRp
cn0vLmNvdmVyYWdlCisgICAgY292ZXJhZ2U6IENPVkVSQUdFX1BST0NFU1NfU1RBUlQ9e3RveGlu
aWRpcn0vLmNvdmVyYWdlcmMKIAotW3Rlc3RlbnY6bGludGluZ10KLXNraXBzZGlzdCA9IFRydWUK
LXVzZWRldmVsb3AgPSBUcnVlCi1iYXNlcHl0aG9uID0gcHl0aG9uMy42Ci1kZXBzID0gcHJlLWNv
bW1pdAotY29tbWFuZHMgPSBwcmUtY29tbWl0IHJ1biAtLWFsbC1maWxlcyAtLXNob3ctZGlmZi1v
bi1mYWlsdXJlCisgICAgbm9ieXRlOiBQWVRIT05ET05UV1JJVEVCWVRFQ09ERT0xCiAKLVt0ZXN0
ZW52OnB5MjcteGRpc3RdCi1kZXBzID0KLSAgICBweXRlc3QteGRpc3Q+PTEuMTMKLSAgICBtb2Nr
Ci0gICAgbm9zZQotICAgIGh5cG90aGVzaXM+PTMuNTYKLWNoYW5nZWRpcj10ZXN0aW5nCi1jb21t
YW5kcyA9Ci0gICAgcHl0ZXN0IC1uOCAtcmEge3Bvc2FyZ3M6Ln0KKyAgICBsc29mOiBfUFlURVNU
X1RPWF9QT1NBUkdTX0xTT0Y9LS1sc29mCiAKLVt0ZXN0ZW52OnB5MzYteGRpc3RdCi1kZXBzID0g
e1t0ZXN0ZW52OnB5MjcteGRpc3RdZGVwc30KLWNvbW1hbmRzID0ge1t0ZXN0ZW52OnB5MjcteGRp
c3RdY29tbWFuZHN9CisgICAgcGV4cGVjdDogX1BZVEVTVF9UT1hfUExBVEZPUk09bGludXh8ZGFy
d2luCisgICAgcGV4cGVjdDogX1BZVEVTVF9UT1hfUE9TQVJHU19QRVhQRUNUPS1tIHVzZXNfcGV4
cGVjdAogCi1bdGVzdGVudjpweTI3LXBleHBlY3RdCi1jaGFuZ2VkaXIgPSB0ZXN0aW5nCi1wbGF0
Zm9ybSA9IGxpbnV4fGRhcndpbgotZGVwcyA9IHBleHBlY3QKLWNvbW1hbmRzID0KLSAgICBweXRl
c3QgLXJhIHRlc3RfcGRiLnB5IHRlc3RfdGVybWluYWwucHkgdGVzdF91bml0dGVzdC5weQorICAg
IHR3aXN0ZWQ6IF9QWVRFU1RfVE9YX1BPU0FSR1NfVFdJU1RFRD10ZXN0aW5nL3Rlc3RfdW5pdHRl
c3QucHkKIAotW3Rlc3RlbnY6cHkzNi1wZXhwZWN0XQotY2hhbmdlZGlyID0ge1t0ZXN0ZW52OnB5
MjctcGV4cGVjdF1jaGFuZ2VkaXJ9Ci1wbGF0Zm9ybSA9IHtbdGVzdGVudjpweTI3LXBleHBlY3Rd
cGxhdGZvcm19Ci1kZXBzID0ge1t0ZXN0ZW52OnB5MjctcGV4cGVjdF1kZXBzfQotY29tbWFuZHMg
PSB7W3Rlc3RlbnY6cHkyNy1wZXhwZWN0XWNvbW1hbmRzfQorICAgIHhkaXN0OiBfUFlURVNUX1RP
WF9QT1NBUkdTX1hESVNUPS1uIGF1dG8KK2V4dHJhcyA9IHRlc3RpbmcKK2RlcHMgPQorICAgIG51
bXB5OiBudW1weQorICAgIHBleHBlY3Q6IHBleHBlY3QKKyAgICBwbHVnZ3ltYXN0ZXI6IGdpdCto
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kuZ2l0QG1hc3RlcgorICAgIHR3aXN0
ZWQ6IHR3aXN0ZWQKKyAgICB0d2lzdGVkOiB1bml0dGVzdDIKKyAgICB4ZGlzdDogcHl0ZXN0LXhk
aXN0Pj0xLjEzCisgICAge2VudjpfUFlURVNUX1RPWF9FWFRSQV9ERVA6fQorcGxhdGZvcm0gPSB7
ZW52Ol9QWVRFU1RfVE9YX1BMQVRGT1JNOi4qfQogCi1bdGVzdGVudjpweTI3LW5vYnl0ZV0KK1t0
ZXN0ZW52OnB5Mjctc3VicHJvY2Vzc10KIGRlcHMgPQogICAgIHB5dGVzdC14ZGlzdD49MS4xMwot
ICAgIGh5cG90aGVzaXM+PTMuNTYKLSAgICBtb2NrCi1kaXN0cmlidXRlID0gdHJ1ZQotY2hhbmdl
ZGlyPXRlc3RpbmcKLXNldGVudiA9Ci0gICAgUFlUSE9ORE9OVFdSSVRFQllURUNPREU9MQotY29t
bWFuZHMgPQotICAgIHB5dGVzdCAtbjMgLXJhIHtwb3NhcmdzOi59Ci0KLVt0ZXN0ZW52OnB5Mjct
dHJpYWxdCi1kZXBzID0gdHdpc3RlZAorICAgIHB5Mjc6IG1vY2sKKyAgICBub3NlCiBjb21tYW5k
cyA9Ci0gICAgcHl0ZXN0IC1yYSB7cG9zYXJnczp0ZXN0aW5nL3Rlc3RfdW5pdHRlc3QucHl9Cisg
ICAgcHl0ZXN0IC1uIGF1dG8gLS1ydW5weXRlc3Q9c3VicHJvY2VzcyB7cG9zYXJnc30KIAotW3Rl
c3RlbnY6cHkzNi10cmlhbF0KLWRlcHMgPSB7W3Rlc3RlbnY6cHkyNy10cmlhbF1kZXBzfQotY29t
bWFuZHMgPSB7W3Rlc3RlbnY6cHkyNy10cmlhbF1jb21tYW5kc30KIAotW3Rlc3RlbnY6cHkyNy1u
dW1weV0KLWRlcHMgPSBudW1weQotY29tbWFuZHM9Ci0gIHB5dGVzdCAtcmEge3Bvc2FyZ3M6dGVz
dGluZy9weXRob24vYXBwcm94LnB5fQotCi1bdGVzdGVudjpweTM2LW51bXB5XQotZGVwcyA9IHtb
dGVzdGVudjpweTI3LW51bXB5XWRlcHN9Ci1jb21tYW5kcyA9IHtbdGVzdGVudjpweTI3LW51bXB5
XWNvbW1hbmRzfQotCi1bdGVzdGVudjpweTI3LXBsdWdneW1hc3Rlcl0KLXNldGVudj0KLSAgICBf
UFlURVNUX1NFVFVQX1NLSVBfUExVR0dZX0RFUD0xCi1kZXBzID0KLSAgICB7W3Rlc3RlbnZdZGVw
c30KLSAgICBnaXQraHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5LmdpdEBtYXN0
ZXIKLQotW3Rlc3RlbnY6cHkzNi1wbHVnZ3ltYXN0ZXJdCi1zZXRlbnYgPSB7W3Rlc3RlbnY6cHky
Ny1wbHVnZ3ltYXN0ZXJdc2V0ZW52fQotZGVwcyA9IHtbdGVzdGVudjpweTI3LXBsdWdneW1hc3Rl
cl1kZXBzfQorW3Rlc3RlbnY6bGludGluZ10KK3NraXBfaW5zdGFsbCA9IFRydWUKK2Jhc2VweXRo
b24gPSBweXRob24zCitkZXBzID0gcHJlLWNvbW1pdD49MS4xMS4wCitjb21tYW5kcyA9IHByZS1j
b21taXQgcnVuIC0tYWxsLWZpbGVzIC0tc2hvdy1kaWZmLW9uLWZhaWx1cmUKIAogW3Rlc3RlbnY6
ZG9jc10KLXNraXBzZGlzdCA9IFRydWUKK2Jhc2VweXRob24gPSBweXRob24zCiB1c2VkZXZlbG9w
ID0gVHJ1ZQogY2hhbmdlZGlyID0gZG9jL2VuCi1kZXBzID0KLSAgICBhdHRycwotICAgIG1vcmUt
aXRlcnRvb2xzCi0gICAgUHlZQU1MCi0gICAgc3BoaW54Ci0gICAgc3BoaW54Y29udHJpYi10cmlv
CitkZXBzID0gLXJ7dG94aW5pZGlyfS9kb2MvZW4vcmVxdWlyZW1lbnRzLnR4dAogCiBjb21tYW5k
cyA9CiAgICAgc3BoaW54LWJ1aWxkIC1XIC1iIGh0bWwgLiBfYnVpbGQKIAogW3Rlc3RlbnY6ZG9j
dGVzdGluZ10KLWJhc2VweXRob24gPSBweXRob24KLXVzZWRldmVsb3AgPSBUcnVlCitiYXNlcHl0
aG9uID0gcHl0aG9uMwogc2tpcHNkaXN0ID0gVHJ1ZQotIyBlbnN1cmUgdGhlIGdpdmVuIHB5YXJn
cyBjYW4ndCBtZWFuIGFueXRoaW5nIGVsc2UKLWNoYW5nZWRpciA9IGRvYy8KIGRlcHMgPQorICAg
IHtbdGVzdGVudl1kZXBzfQogICAgIFB5WUFNTAogY29tbWFuZHMgPQotICAgIHB5dGVzdCAtcmEg
ZW4KLSAgICBweXRlc3QgLS1kb2N0ZXN0LW1vZHVsZXMgLS1weWFyZ3MgX3B5dGVzdAorICAgIHtl
bnY6X1BZVEVTVF9UT1hfQ09WRVJBR0VfUlVOOn0gcHl0ZXN0IGRvYy9lbgorICAgIHtlbnY6X1BZ
VEVTVF9UT1hfQ09WRVJBR0VfUlVOOn0gcHl0ZXN0IC0tZG9jdGVzdC1tb2R1bGVzIC0tcHlhcmdz
IF9weXRlc3QKIAogW3Rlc3RlbnY6cmVnZW5dCiBjaGFuZ2VkaXIgPSBkb2MvZW4KIHNraXBzZGlz
dCA9IFRydWUKLWJhc2VweXRob24gPSBweXRob24zLjUKK2Jhc2VweXRob24gPSBweXRob24zCiBk
ZXBzID0KICAgICBzcGhpbngKICAgICBQeVlBTUwKICAgICByZWdlbmRvYz49MC42LjEKKyAgICBk
YXRhY2xhc3Nlcwogd2hpdGVsaXN0X2V4dGVybmFscyA9CiAgICAgcm0KICAgICBtYWtlCiBjb21t
YW5kcyA9CisgICAgIyBkb24ndCBzaG93IGh5cG90aGVzaXMgcGx1Z2luIGluZm8gaW4gZG9jcywg
c2VlICM0NjAyCisgICAgcGlwIHVuaW5zdGFsbCBoeXBvdGhlc2lzIC15CiAgICAgcm0gLXJmIC90
bXAvZG9jLWV4ZWMqCisgICAgcm0gLXJmIHtlbnZkaXJ9Ly5weXRlc3RfY2FjaGUKICAgICBtYWtl
IHJlZ2VuCiAKLVt0ZXN0ZW52OmZpeC1saW50XQotc2tpcHNkaXN0ID0gVHJ1ZQotdXNlZGV2ZWxv
cCA9IFRydWUKLWRlcHMgPQotICAgIGF1dG9wZXA4Ci1jb21tYW5kcyA9Ci0gICAgYXV0b3BlcDgg
LS1pbi1wbGFjZSAtciAtLW1heC1saW5lLWxlbmd0aD0xMjAgLS1leGNsdWRlPXRlc3Rfc291cmNl
X211bHRpbGluZV9ibG9jay5weSBfcHl0ZXN0IHRlc3Rpbmcgc2V0dXAucHkgcHl0ZXN0LnB5Ci0K
IFt0ZXN0ZW52Omp5dGhvbl0KIGNoYW5nZWRpciA9IHRlc3RpbmcKIGNvbW1hbmRzID0KLSAgICB7
ZW52cHl0aG9ufSB7ZW52YmluZGlyfS9weS50ZXN0LWp5dGhvbiAtcmEge3Bvc2FyZ3N9CisgICAg
e2VudnB5dGhvbn0ge2VudmJpbmRpcn0vcHkudGVzdC1qeXRob24ge3Bvc2FyZ3N9CiAKLVt0ZXN0
ZW52OnB5MzYtZnJlZXplXQorW3Rlc3RlbnY6cHkzNy1mcmVlemVdCiBjaGFuZ2VkaXIgPSB0ZXN0
aW5nL2ZyZWV6ZQotZGVwcyA9IHB5aW5zdGFsbGVyCisjIERpc2FibGUgUEVQIDUxNyB3aXRoIHBp
cCwgd2hpY2ggZG9lcyBub3Qgd29yayB3aXRoIFB5SW5zdGFsbGVyIGN1cnJlbnRseS4KK2RlcHMg
PQorICAgIHB5aW5zdGFsbGVyCisgICAgc2V0dXB0b29scyA8IDQ1LjAuMAogY29tbWFuZHMgPQog
ICAgIHtlbnZweXRob259IGNyZWF0ZV9leGVjdXRhYmxlLnB5CiAgICAge2VudnB5dGhvbn0gdG94
X3J1bi5weQogCi0KLVt0ZXN0ZW52OmNvdmVyYWxsc10KLXBhc3NlbnYgPSBUUkFWSVMgVFJBVklT
X0pPQl9JRCBUUkFWSVNfQlJBTkNIIENPVkVSQUxMU19SRVBPX1RPS0VOCitbdGVzdGVudjpyZWxl
YXNlXQorZGVjcmlwdGlvbiA9IGRvIGEgcmVsZWFzZSwgcmVxdWlyZWQgcG9zYXJnIG9mIHRoZSB2
ZXJzaW9uIG51bWJlcgorYmFzZXB5dGhvbiA9IHB5dGhvbjMKIHVzZWRldmVsb3AgPSBUcnVlCi1j
aGFuZ2VkaXIgPSAuCitwYXNzZW52ID0gKgogZGVwcyA9Ci0gICAge1t0ZXN0ZW52XWRlcHN9Ci0g
ICAgY292ZXJhbGxzCi1jb21tYW5kcyA9Ci0gICAgY292ZXJhZ2UgcnVuIC0tc291cmNlPV9weXRl
c3QgLW0gcHl0ZXN0IHRlc3RpbmcKLSAgICBjb3ZlcmFnZSByZXBvcnQgLW0KLSAgICBjb3ZlcmFs
bHMKKyAgICBjb2xvcmFtYQorICAgIGdpdHB5dGhvbgorICAgIHByZS1jb21taXQ+PTEuMTEuMAor
ICAgIHRvd25jcmllcgorICAgIHdoZWVsCitjb21tYW5kcyA9IHB5dGhvbiBzY3JpcHRzL3JlbGVh
c2UucHkge3Bvc2FyZ3N9CisKK1t0ZXN0ZW52OnB1Ymxpc2hfZ2hfcmVsZWFzZV9ub3Rlc10KK2Rl
c2NyaXB0aW9uID0gY3JlYXRlIEdpdEh1YiByZWxlYXNlIGFmdGVyIGRlcGxveW1lbnQKK2Jhc2Vw
eXRob24gPSBweXRob24zCit1c2VkZXZlbG9wID0gVHJ1ZQorcGFzc2VudiA9IEdIX1JFTEVBU0Vf
Tk9URVNfVE9LRU4gVFJBVklTX1RBRyBUUkFWSVNfUkVQT19TTFVHCitkZXBzID0KKyAgICBnaXRo
dWIzLnB5CisgICAgcHlwYW5kb2MKK2NvbW1hbmRzID0gcHl0aG9uIHNjcmlwdHMvcHVibGlzaF9n
aF9yZWxlYXNlX25vdGVzLnB5CisKIAogW3B5dGVzdF0KIG1pbnZlcnNpb24gPSAyLjAKLXBsdWdp
bnMgPSBweXRlc3RlcgotYWRkb3B0cyA9IC1yYSAtcCBweXRlc3RlciAtLWlnbm9yZT10ZXN0aW5n
L2N4X2ZyZWV6ZQotcnN5bmNkaXJzID0gdG94LmluaSBweXRlc3QucHkgX3B5dGVzdCB0ZXN0aW5n
CithZGRvcHRzID0gLXJhIC1wIHB5dGVzdGVyIC0tc3RyaWN0LW1hcmtlcnMKK3JzeW5jZGlycyA9
IHRveC5pbmkgZG9jIHNyYyB0ZXN0aW5nCiBweXRob25fZmlsZXMgPSB0ZXN0XyoucHkgKl90ZXN0
LnB5IHRlc3RpbmcvKi8qLnB5CiBweXRob25fY2xhc3NlcyA9IFRlc3QgQWNjZXB0YW5jZQogcHl0
aG9uX2Z1bmN0aW9ucyA9IHRlc3QKLW5vcmVjdXJzZWRpcnMgPSAudG94IGphIC5oZyBjeF9mcmVl
emVfc291cmNlCisjIE5PVEU6ICJkb2MiIGlzIG5vdCBpbmNsdWRlZCBoZXJlLCBidXQgZ2V0cyB0
ZXN0ZWQgZXhwbGljaXRseSB2aWEgImRvY3Rlc3RpbmciLgordGVzdHBhdGhzID0gdGVzdGluZwor
bm9yZWN1cnNlZGlycyA9IHRlc3RpbmcvZXhhbXBsZV9zY3JpcHRzCiB4ZmFpbF9zdHJpY3Q9dHJ1
ZQogZmlsdGVyd2FybmluZ3MgPQogICAgIGVycm9yCisgICAgaWdub3JlOnlpZWxkIHRlc3RzIGFy
ZSBkZXByZWNhdGVkLCBhbmQgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gcHl0ZXN0IDQuMDpw
eXRlc3QuUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcKKyAgICBpZ25vcmU6TWV0YWZ1bmMuYWRkY2Fs
bCBpcyBkZXByZWNhdGVkIGFuZCBzY2hlZHVsZWQgdG8gYmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4w
OnB5dGVzdC5SZW1vdmVkSW5QeXRlc3Q0V2FybmluZworICAgIGlnbm9yZTo6cHl0ZXN0LlJlbW92
ZWRJblB5dGVzdDRXYXJuaW5nCisgICAgaWdub3JlOk1vZHVsZSBhbHJlYWR5IGltcG9ydGVkIHNv
IGNhbm5vdCBiZSByZXdyaXR0ZW46cHl0ZXN0LlB5dGVzdFdhcm5pbmcKICAgICAjIHByb2R1Y2Vk
IGJ5IHBhdGgubG9jYWwKICAgICBpZ25vcmU6YmFkIGVzY2FwZS4qOkRlcHJlY2F0aW9uV2Fybmlu
ZzpyZQogICAgICMgcHJvZHVjZWQgYnkgcGF0aC5yZWFkbGluZXMKQEAgLTIwNCw5ICsxNzQsMzAg
QEAgZmlsdGVyd2FybmluZ3MgPQogICAgIGlnbm9yZTouKnR5cGUgYXJndW1lbnQgdG8gYWRkb3B0
aW9uLio6RGVwcmVjYXRpb25XYXJuaW5nCiAgICAgIyBwcm9kdWNlZCBieSBweXRob24gPj0zLjUg
b24gZXhlY25ldCAocHl0ZXN0LXhkaXN0KQogICAgIGlnbm9yZTouKmluc3BlY3QuZ2V0YXJnc3Bl
Yy4qZGVwcmVjYXRlZCwgdXNlIGluc3BlY3Quc2lnbmF0dXJlLio6RGVwcmVjYXRpb25XYXJuaW5n
Ci0gICAgIyBpZ25vcmUgd2FybmluZyBhYm91dCBwYWNrYWdlIHJlc29sdXRpb24gdXNpbmcgX19z
cGVjX18gb3IgX19wYWNrYWdlX18KLSAgICAjIHNob3VsZCBiZSBhIHRlbXBvcmFyeSBzb2x1dGlv
biwgc2VlICMzMDYxIGZvciBkaXNjdXNzaW9uCi0gICAgaWdub3JlOi4qY2FuJ3QgcmVzb2x2ZSBw
YWNrYWdlIGZyb20gX19zcGVjX18gb3IgX19wYWNrYWdlX18uKjpJbXBvcnRXYXJuaW5nCisgICAg
IyBweXRlc3QncyBvd24gZnV0dXJld2FybmluZ3MKKyAgICBpZ25vcmU6OnB5dGVzdC5QeXRlc3RF
eHBlcmltZW50YWxBcGlXYXJuaW5nCisgICAgIyBEbyBub3QgY2F1c2UgU3ludGF4RXJyb3IgZm9y
IGludmFsaWQgZXNjYXBlIHNlcXVlbmNlcyBpbiBweTM3LgorICAgIGRlZmF1bHQ6aW52YWxpZCBl
c2NhcGUgc2VxdWVuY2U6RGVwcmVjYXRpb25XYXJuaW5nCisgICAgIyBpZ25vcmUgdXNlIG9mIHVu
cmVnaXN0ZXJlZCBtYXJrcywgYmVjYXVzZSB3ZSB1c2UgbWFueSB0byB0ZXN0IHRoZSBpbXBsZW1l
bnRhdGlvbgorICAgIGlnbm9yZTo6X3B5dGVzdC53YXJuaW5nX3R5cGVzLlB5dGVzdFVua25vd25N
YXJrV2FybmluZworcHl0ZXN0ZXJfZXhhbXBsZV9kaXIgPSB0ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cworbWFya2VycyA9CisgICAgIyBkdW1teSBtYXJrZXJzIGZvciB0ZXN0aW5nCisgICAgZm9vCisg
ICAgYmFyCisgICAgYmF6CisgICAgIyBjb25mdGVzdC5weSByZW9yZGVycyB0ZXN0cyBtb3Zpbmcg
c2xvdyBvbmVzIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKKyAgICBzbG93CisgICAgIyBleHBlcmlt
ZW50YWwgbWFyayBmb3IgYWxsIHRlc3RzIHVzaW5nIHBleHBlY3QKKyAgICB1c2VzX3BleHBlY3QK
IAogW2ZsYWtlOF0KIG1heC1saW5lLWxlbmd0aCA9IDEyMAoraWdub3JlID0gRTIwMyxXNTAzCisK
K1tpc29ydF0KKzsgVGhpcyBjb25maWcgbWltaWNzIHdoYXQgcmVvcmRlci1weXRob24taW1wb3J0
cyBkb2VzLgorZm9yY2Vfc2luZ2xlX2xpbmUgPSAxCitrbm93bl9sb2NhbGZvbGRlciA9IHB5dGVz
dCxfcHl0ZXN0Citrbm93bl90aGlyZF9wYXJ0eSA9IHRlc3Rfc291cmNlLHRlc3RfZXhjaW5mbwor
Zm9yY2VfYWxwaGFiZXRpY2FsX3NvcnRfd2l0aGluX3NlY3Rpb25zID0gMQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC93M2MtaW1wb3J0LmxvZwpp
bmRleCBmYjBkMTZiOWI2ZDdkOTMyNTU3ODQ5YmIxNWNiM2ZjZmVmNzRhOThlLi4xODM4OGRjYjVj
Nzg0NmY2NGFhYmNmNDE0MTRhNDc1OWIxOTJlMTg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC93
M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC93M2MtaW1wb3J0LmxvZwpAQCAtMTYsMTEg
KzE2LDE0IEBAIE5vbmUKIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQVVUSE9SUwogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L0NIQU5HRUxPRy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DSVRBVElPTgogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L0NPTlRSSUJVVElORy5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9IT1dUT1JFTEVBU0UucnN0CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvTElDRU5TRQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9h
cHB2ZXlvci55bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9USURFTElGVC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9henVy
ZS1waXBlbGluZXMueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY29kZWNvdi55bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9w
eXByb2plY3QudG9tbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLmNmZwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVw
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFt
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29ja2V0L3N0cmVhbS5weQppbmRleCBm
YzM5OWYyYTg1YjlmZTZjNTJlYzU2OTBmNTgwZDA2YjIyMmU0NzQ4Li44MmQxZWE2MTljMDc0ZjEx
ODNiYzA4YWU1NWE4Y2UwYmI3NzA0MTA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9t
b2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21vZF9weXdl
YnNvY2tldC9zdHJlYW0ucHkKQEAgLTg3NSw3ICs4NzUsNyBAQCBjbGFzcyBTdHJlYW0ob2JqZWN0
KToKICAgICAgICAgICAgIHdhaXRfcmVzcG9uc2U6IFRydWUgd2hlbiBjYWxsZXIgd2FudCB0byB3
YWl0IHRoZSByZXNwb25zZS4KICAgICAgICAgUmFpc2VzOgogICAgICAgICAgICAgQmFkT3BlcmF0
aW9uRXhjZXB0aW9uOiB3aGVuIHJlYXNvbiBpcyBzcGVjaWZpZWQgd2l0aCBjb2RlIE5vbmUKLSAg
ICAgICAgICAgIG9yIHJlYXNvbiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgYm90aCBzdHIgYW5kIHVu
aWNvZGUuCisgICAgICAgICAgICAgICAgb3IgcmVhc29uIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBi
b3RoIHN0ciBhbmQgdW5pY29kZS4KICAgICAgICAgIiIiCiAKICAgICAgICAgaWYgc2VsZi5fcmVx
dWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAu
ZGlzdC1pbmZvL0lOU1RBTExFUiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL0lOU1RB
TExFUgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTFiNTg5ZTM4YTMyMDQxZTQ5MzMy
ZTVlODFjMmQzNjNkYzQxOGQ2OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9JTlNUQUxMRVIKKysrIC9k
ZXYvbnVsbApAQCAtMSArMCwwIEBACi1waXAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEz
LjAuZGlzdC1pbmZvL0xJQ0VOU0UgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9MSUNF
TlNFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjA1YTU0NTI2MWMwZjliMzFhYmUz
ZWRlYzcxMDU4NzU4N2E2NTlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL0xJQ0VOU0UKKysrIC9kZXYv
bnVsbApAQCAtMSwxOCArMCwwIEBACi1Db3B5cmlnaHQgKGMpIDIwMTAtMjAxOSBCZW5qYW1pbiBQ
ZXRlcnNvbgotCi1QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg
dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mCi10aGlzIHNvZnR3YXJlIGFuZCBhc3Nv
Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbgot
dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0
YXRpb24gdGhlIHJpZ2h0cyB0bwotdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk
aXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YKLXRoZSBTb2Z0d2Fy
ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hl
ZCB0byBkbyBzbywKLXN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotCi1UaGUg
YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi
ZSBpbmNsdWRlZCBpbiBhbGwKLWNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUg
U29mdHdhcmUuCi0KLVRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB
UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi1JTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUwot
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SCi1DT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO
WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIKLUlOIEFOIEFDVElP
TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9S
IElOCi1DT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB
TElOR1MgSU4gVEhFIFNPRlRXQVJFLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5k
aXN0LWluZm8vTUVUQURBVEEgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9NRVRBREFU
QQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBjOGY1MWUxZjM2NjEzOGQzODE2YWJl
MGRkYjNlZmVlNDE3NWMzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9NRVRBREFUQQorKysgL2Rldi9u
dWxsCkBAIC0xLDUyICswLDAgQEAKLU1ldGFkYXRhLVZlcnNpb246IDIuMQotTmFtZTogc2l4Ci1W
ZXJzaW9uOiAxLjEzLjAKLVN1bW1hcnk6IFB5dGhvbiAyIGFuZCAzIGNvbXBhdGliaWxpdHkgdXRp
bGl0aWVzCi1Ib21lLXBhZ2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZW5qYW1pbnAvc2l4Ci1BdXRo
b3I6IEJlbmphbWluIFBldGVyc29uCi1BdXRob3ItZW1haWw6IGJlbmphbWluQHB5dGhvbi5vcmcK
LUxpY2Vuc2U6IE1JVAotUGxhdGZvcm06IFVOS05PV04KLUNsYXNzaWZpZXI6IERldmVsb3BtZW50
IFN0YXR1cyA6OiA1IC0gUHJvZHVjdGlvbi9TdGFibGUKLUNsYXNzaWZpZXI6IFByb2dyYW1taW5n
IExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyCi1DbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFn
ZSA6OiBQeXRob24gOjogMwotQ2xhc3NpZmllcjogSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxv
cGVycwotQ2xhc3NpZmllcjogTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UK
LUNsYXNzaWZpZXI6IFRvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcwot
Q2xhc3NpZmllcjogVG9waWMgOjogVXRpbGl0aWVzCi1SZXF1aXJlcy1QeXRob246ID49Mi42LCAh
PTMuMC4qLCAhPTMuMS4qCi0KLS4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBp
L3Yvc2l4LnN2ZwotICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3NpeC8KLSAg
IDphbHQ6IHNpeCBvbiBQeVBJCi0KLS4uIGltYWdlOjogaHR0cHM6Ly90cmF2aXMtY2kub3JnL2Jl
bmphbWlucC9zaXguc3ZnP2JyYW5jaD1tYXN0ZXIKLSAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlz
LWNpLm9yZy9iZW5qYW1pbnAvc2l4Ci0gICA6YWx0OiBzaXggb24gVHJhdmlzQ0kKLQotLi4gaW1h
Z2U6OiBodHRwczovL3JlYWR0aGVkb2NzLm9yZy9wcm9qZWN0cy9zaXgvYmFkZ2UvP3ZlcnNpb249
bGF0ZXN0Ci0gICA6dGFyZ2V0OiBodHRwczovL3NpeC5yZWFkdGhlZG9jcy5pby8KLSAgIDphbHQ6
IHNpeCdzIGRvY3VtZW50YXRpb24gb24gUmVhZCB0aGUgRG9jcwotCi0uLiBpbWFnZTo6IGh0dHBz
Oi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1NSVQtZ3JlZW4uc3ZnCi0gICA6dGFyZ2V0
OiBodHRwczovL2dpdGh1Yi5jb20vYmVuamFtaW5wL3NpeC9ibG9iL21hc3Rlci9MSUNFTlNFCi0g
ICA6YWx0OiBNSVQgTGljZW5zZSBiYWRnZQotCi1TaXggaXMgYSBQeXRob24gMiBhbmQgMyBjb21w
YXRpYmlsaXR5IGxpYnJhcnkuICBJdCBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucwotZm9yIHNt
b290aGluZyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBQeXRob24gdmVyc2lvbnMg
d2l0aCB0aGUgZ29hbCBvZgotd3JpdGluZyBQeXRob24gY29kZSB0aGF0IGlzIGNvbXBhdGlibGUg
b24gYm90aCBQeXRob24gdmVyc2lvbnMuICBTZWUgdGhlCi1kb2N1bWVudGF0aW9uIGZvciBtb3Jl
IGluZm9ybWF0aW9uIG9uIHdoYXQgaXMgcHJvdmlkZWQuCi0KLVNpeCBzdXBwb3J0cyBldmVyeSBQ
eXRob24gdmVyc2lvbiBzaW5jZSAyLjYuICBJdCBpcyBjb250YWluZWQgaW4gb25seSBvbmUgUHl0
aG9uCi1maWxlLCBzbyBpdCBjYW4gYmUgZWFzaWx5IGNvcGllZCBpbnRvIHlvdXIgcHJvamVjdC4g
KFRoZSBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UKLW5vdGljZSBtdXN0IGJlIHJldGFpbmVkLikKLQot
T25saW5lIGRvY3VtZW50YXRpb24gaXMgYXQgaHR0cHM6Ly9zaXgucmVhZHRoZWRvY3MuaW8vLgot
Ci1CdWdzIGNhbiBiZSByZXBvcnRlZCB0byBodHRwczovL2dpdGh1Yi5jb20vYmVuamFtaW5wL3Np
eC4gIFRoZSBjb2RlIGNhbiBhbHNvCi1iZSBmb3VuZCB0aGVyZS4KLQotRm9yIHF1ZXN0aW9ucyBh
Ym91dCBzaXggb3IgcG9ydGluZyBpbiBnZW5lcmFsLCBlbWFpbCB0aGUgcHl0aG9uLXBvcnRpbmcg
bWFpbGluZwotbGlzdDogaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9w
eXRob24tcG9ydGluZwotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1p
bmZvL1JFQ09SRCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL1JFQ09SRApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU3NjY1Yzk5NjQyNTVkMTcwMmYwMTZjOGJkMTFkYWVk
ZTUxNjZlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9SRUNPUkQKKysrIC9kZXYvbnVsbApAQCAtMSw4
ICswLDAgQEAKLXNpeC0xLjEzLjAuZGlzdC1pbmZvL0lOU1RBTExFUixzaGEyNTY9enV1dWU0a25v
eUotVXdQUFhnOGZlelM3VkNyWEpRckFQN3plTnV3dkZRZyw0DQotc2l4LTEuMTMuMC5kaXN0LWlu
Zm8vTElDRU5TRSxzaGEyNTY9dDFLYmpBY1hHbmlvdzJ3eWc1QlZLT1NCS1VYWmQ5RWw2NUp1ak12
eVJiWSwxMDY2DQotc2l4LTEuMTMuMC5kaXN0LWluZm8vTUVUQURBVEEsc2hhMjU2PWh4UzRyU1BS
Zk84ZXdiY0xTMzBhbm9GaTZMRmdVUTNta194a25aOFJWNHcsMTk0MA0KLXNpeC0xLjEzLjAuZGlz
dC1pbmZvL1JFQ09SRCwsDQotc2l4LTEuMTMuMC5kaXN0LWluZm8vV0hFRUwsc2hhMjU2PThUOGZ4
ZWZyX3ItQTc5cWJPSjlkX0FhRWdrcENHbUVQSGMtZ3BDcTVCUmcsMTEwDQotc2l4LTEuMTMuMC5k
aXN0LWluZm8vdG9wX2xldmVsLnR4dCxzaGEyNTY9X2lWSF9pWUV0RVhuRDhuWUdRWXBZRlV2a1VX
OXNFTzFHWWJrZUtTQWFpcyw0DQotc2l4LnB5LHNoYTI1Nj1vOVdITzh1dFdHYXlOaE5xRG1OcVBk
UXNRYWlyNVJhUldqTF84SVlmMXF3LDMzMDUxDQotc2l4LnB5YywsDQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vV0hFRUwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRp
c3QtaW5mby9XSEVFTApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAwMTIzNTUzMzNl
MDY2NGZhYzMxMjM4YWEwNDIxNmZmNTM2MjIxNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9XSEVFTAor
KysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotV2hlZWwtVmVyc2lvbjogMS4wCi1HZW5lcmF0
b3I6IGJkaXN0X3doZWVsICgwLjMyLjEpCi1Sb290LUlzLVB1cmVsaWI6IHRydWUKLVRhZzogcHky
LW5vbmUtYW55Ci1UYWc6IHB5My1ub25lLWFueQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgt
MS4xMy4wLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0
LWluZm8vdG9wX2xldmVsLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZlMmZj
ZTQ5ODk1NWI2MjgwMTQ2MThiMjhjNmJjZjE1MjQ2NmE0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby90
b3BfbGV2ZWwudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotc2l4CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4
L3NpeC0xLjEzLjAuZGlzdC1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzNWUxZDIyY2I4NjMwY2NkMjBjMjAzZDYzODlhNWFlNjI1MDBhZjlmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0x
LjEzLjAuZGlzdC1pbmZvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vSU5TVEFMTEVSCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEz
LjAuZGlzdC1pbmZvL01FVEFEQVRBCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vUkVD
T1JECi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vV0hFRUwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgt
MS4xMy4wLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgu
ZWdnLWluZm8vUEtHLUlORk8gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vUEtHLUlORk8KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkNWZmNGJiOGU0ZmEwYTFjYWY2ZDNkZjUyOGFiYzIw
YjNkZjVhZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9zaXgvc2l4LmVnZy1pbmZvL1BLRy1JTkZPCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAs
MCBAQAotTWV0YWRhdGEtVmVyc2lvbjogMS4xCi1OYW1lOiBzaXgKLVZlcnNpb246IDEuMTEuMAot
U3VtbWFyeTogUHl0aG9uIDIgYW5kIDMgY29tcGF0aWJpbGl0eSB1dGlsaXRpZXMKLUhvbWUtcGFn
ZTogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3NpeC8KLUF1dGhvcjogQmVuamFtaW4gUGV0
ZXJzb24KLUF1dGhvci1lbWFpbDogYmVuamFtaW5AcHl0aG9uLm9yZwotTGljZW5zZTogTUlUCi1E
ZXNjcmlwdGlvbjogLi4gaW1hZ2U6OiBodHRwOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L3NpeC5z
dmcKLSAgICAgICAgICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zaXgK
LSAgICAgICAgCi0gICAgICAgIC4uIGltYWdlOjogaHR0cHM6Ly90cmF2aXMtY2kub3JnL2Jlbmph
bWlucC9zaXguc3ZnP2JyYW5jaD1tYXN0ZXIKLSAgICAgICAgICAgIDp0YXJnZXQ6IGh0dHBzOi8v
dHJhdmlzLWNpLm9yZy9iZW5qYW1pbnAvc2l4Ci0gICAgICAgIAotICAgICAgICAuLiBpbWFnZTo6
IGh0dHA6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLU1JVC1ncmVlbi5zdmcKLSAgICAg
ICAgICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL2JlbmphbWlucC9zaXgvYmxvYi9tYXN0
ZXIvTElDRU5TRQotICAgICAgICAKLSAgICAgICAgU2l4IGlzIGEgUHl0aG9uIDIgYW5kIDMgY29t
cGF0aWJpbGl0eSBsaWJyYXJ5LiAgSXQgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMKLSAgICAg
ICAgZm9yIHNtb290aGluZyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBQeXRob24g
dmVyc2lvbnMgd2l0aCB0aGUgZ29hbCBvZgotICAgICAgICB3cml0aW5nIFB5dGhvbiBjb2RlIHRo
YXQgaXMgY29tcGF0aWJsZSBvbiBib3RoIFB5dGhvbiB2ZXJzaW9ucy4gIFNlZSB0aGUKLSAgICAg
ICAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB3aGF0IGlzIHByb3ZpZGVk
LgotICAgICAgICAKLSAgICAgICAgU2l4IHN1cHBvcnRzIGV2ZXJ5IFB5dGhvbiB2ZXJzaW9uIHNp
bmNlIDIuNi4gIEl0IGlzIGNvbnRhaW5lZCBpbiBvbmx5IG9uZSBQeXRob24KLSAgICAgICAgZmls
ZSwgc28gaXQgY2FuIGJlIGVhc2lseSBjb3BpZWQgaW50byB5b3VyIHByb2plY3QuIChUaGUgY29w
eXJpZ2h0IGFuZCBsaWNlbnNlCi0gICAgICAgIG5vdGljZSBtdXN0IGJlIHJldGFpbmVkLikKLSAg
ICAgICAgCi0gICAgICAgIE9ubGluZSBkb2N1bWVudGF0aW9uIGlzIGF0IGh0dHA6Ly9zaXgucnRm
ZC5vcmcuCi0gICAgICAgIAotICAgICAgICBCdWdzIGNhbiBiZSByZXBvcnRlZCB0byBodHRwczov
L2dpdGh1Yi5jb20vYmVuamFtaW5wL3NpeC4gIFRoZSBjb2RlIGNhbiBhbHNvCi0gICAgICAgIGJl
IGZvdW5kIHRoZXJlLgotICAgICAgICAKLSAgICAgICAgRm9yIHF1ZXN0aW9ucyBhYm91dCBzaXgg
b3IgcG9ydGluZyBpbiBnZW5lcmFsLCBlbWFpbCB0aGUgcHl0aG9uLXBvcnRpbmcgbWFpbGluZwot
ICAgICAgICBsaXN0OiBodHRwczovL21haWwucHl0aG9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3B5
dGhvbi1wb3J0aW5nCi0gICAgICAgIAotUGxhdGZvcm06IFVOS05PV04KLUNsYXNzaWZpZXI6IFBy
b2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyCi1DbGFzc2lmaWVyOiBQcm9ncmFtbWlu
ZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMwotQ2xhc3NpZmllcjogSW50ZW5kZWQgQXVkaWVuY2Ug
OjogRGV2ZWxvcGVycwotQ2xhc3NpZmllcjogTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlU
IExpY2Vuc2UKLUNsYXNzaWZpZXI6IFRvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExp
YnJhcmllcwotQ2xhc3NpZmllcjogVG9waWMgOjogVXRpbGl0aWVzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3NpeC9zaXguZWdnLWluZm8vU09VUkNFUy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vU09V
UkNFUy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhN2YzZGVjNmRmMzM0ZDg0
MjNkOTAzYjA0MzlhMTA2ZDdkMjJhMTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL1NPVVJDRVMudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTUgKzAsMCBAQAotQ0hBTkdFUwotTElDRU5TRQotTUFOSUZFU1QuaW4KLVJF
QURNRS5yc3QKLXNldHVwLmNmZwotc2V0dXAucHkKLXNpeC5weQotdGVzdF9zaXgucHkKLWRvY3Vt
ZW50YXRpb24vTWFrZWZpbGUKLWRvY3VtZW50YXRpb24vY29uZi5weQotZG9jdW1lbnRhdGlvbi9p
bmRleC5yc3QKLXNpeC5lZ2ctaW5mby9QS0ctSU5GTwotc2l4LmVnZy1pbmZvL1NPVVJDRVMudHh0
Ci1zaXguZWdnLWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQKLXNpeC5lZ2ctaW5mby90b3BfbGV2
ZWwudHh0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgv
c2l4LmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZv
L2RlcGVuZGVuY3lfbGlua3MudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjEz
Nzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRlZDA4YmRjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9kZXBlbmRl
bmN5X2xpbmtzLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9zaXgvc2l4LmVnZy1pbmZvL3RvcF9sZXZlbC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWlu
Zm8vdG9wX2xldmVsLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZlMmZjZTQ5
ODk1NWI2MjgwMTQ2MThiMjhjNmJjZjE1MjQ2NmE0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vdG9wX2xldmVsLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLXNpeApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgv
c2l4LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTMxOTUzMWYxZTFmNzQ4
NzJjNDgxMjEyOTM5ZDMyZGY3MjE0MWQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5m
by9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9TT1VSQ0VTLnR4dAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4
L3NpeC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5m
by90b3BfbGV2ZWwudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvQ0hBTkdFUy5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3ppcHAvQ0hBTkdFUy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ2NGE2MzI0YjdiZWE4MTNkYjg4NDZiZDZj
NjlmZTljZGVjNDMzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9DSEFOR0VTLnJzdApA
QCAtMCwwICsxLDEwMCBAQAordjEuMi4wCis9PT09PT0KKworIzQ0OiBgYHppcHAuUGF0aC5vcGVu
KClgYCBub3cgc3VwcG9ydHMgYSBjb21wYXRpYmxlIHNpZ25hdHVyZQorYXMgYGBwYXRobGliLlBh
dGgub3BlbigpYGAsIGFjY2VwdGluZyB0ZXh0IChkZWZhdWx0KSBvciBiaW5hcnkKK21vZGVzIGFu
ZCBzb2xpY2l0aW5nIGtleXdvcmQgcGFyYW1ldGVycyBwYXNzZWQgdGhyb3VnaCB0bworYGBpby5U
ZXh0SU9XcmFwcGVyYGAgKGVuY29kaW5nLCBuZXdsaW5lLCBldGMpLiBUaGUgc3RyZWFtIGlzCitv
cGVuZWQgaW4gdGV4dC1tb2RlIGJ5IGRlZmF1bHQgbm93LiBgYG9wZW5gYCBubworbG9uZ2VyIGFj
Y2VwdHMgYGBwd2RgYCBhcyBhIHBvc2l0aW9uYWwgYXJndW1lbnQgYW5kIGRvZXMgbm90CithY2Nl
cHQgdGhlIGBgZm9yY2VfemlwNjRgYCBwYXJhbWV0ZXIgYXQgYWxsLiBUaGlzIGNoYW5nZSBpcwor
YSBiYWNrd2FyZC1pbmNvbXBhdGlibGUgY2hhbmdlIGZvciB0aGF0IHNpbmdsZSBmdW5jdGlvbi4K
KwordjEuMS4xCis9PT09PT0KKworIzQzOiBSZXN0b3JlZCBwZXJmb3JtYW5jZSBvZiBpbXBsaWNp
dCBkaXIgY29tcHV0YXRpb24uCisKK3YxLjEuMAorPT09PT09CisKKyMzMjogRm9yIHJlYWQtb25s
eSB6aXAgZmlsZXMsIGNvbXBsZXhpdHkgb2YgYGAuZXhpc3RzYGAgYW5kCitgYGpvaW5wYXRoYGAg
aXMgbm93IGNvbnN0YW50IHRpbWUgaW5zdGVhZCBvZiBgYE8obilgYCwgcHJldmVudGluZworcXVh
ZHJhdGljIHRpbWUgaW4gY29tbW9uIHVzZS1jYXNlcyBhbmQgcmVuZGVyaW5nIGxhcmdlCit6aXAg
ZmlsZXMgdW51c2FibGUgZm9yIFBhdGguIEJpZyB0aGFua3MgdG8gQmVuankgV2VpbmJlcmdlcgor
Zm9yIHRoZSBidWcgcmVwb3J0IGFuZCBjb250cmlidXRlZCBmaXggKCMzMykuCisKK3YxLjAuMAor
PT09PT09CisKK1JlLXJlbGVhc2Ugb2YgMC42IHRvIGNvcnJlc3BvbmQgd2l0aCByZWxlYXNlIGFz
IGZvdW5kIGluCitQeXRob24gMy44LgorCit2MC42LjAKKz09PT09PQorCisjMTI6IFdoZW4gYWRk
aW5nIGltcGxpY2l0IGRpcnMsIGVuc3VyZSB0aGF0IGFuY2VzdHJhbCBkaXJlY3RvcmllcworYXJl
IGFkZGVkIGFuZCB0aGF0IGR1cGxpY2F0ZXMgYXJlIGV4Y2x1ZGVkLgorCitUaGUgbGlicmFyeSBu
b3cgcmVsaWVzIG9uCitgbW9yZV9pdGVydG9vbHMgPGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9t
b3JlX2l0ZXJ0b29scz5gXy4KKwordjAuNS4yCis9PT09PT0KKworIzc6IFBhcmVudCBvZiBhIGRp
cmVjdG9yeSBub3cgYWN0dWFsbHkgcmV0dXJucyB0aGUgcGFyZW50LgorCit2MC41LjEKKz09PT09
PQorCitEZWNsYXJlZCBwYWNrYWdlIGFzIGJhY2twb3J0LgorCit2MC41LjAKKz09PT09PQorCitB
ZGQgYGAuam9pbnBhdGgoKWBgIG1ldGhvZCBhbmQgYGAucGFyZW50YGAgcHJvcGVydHkuCisKK05v
dyBhIGJhY2twb3J0IHJlbGVhc2Ugb2YgdGhlIGBgemlwZmlsZS5QYXRoYGAgY2xhc3MuCisKK3Yw
LjQuMAorPT09PT09CisKKyM0OiBBZGQgc3VwcG9ydCBmb3IgemlwIGZpbGVzIHdpdGggaW1wbGll
ZCBkaXJlY3Rvcmllcy4KKwordjAuMy4zCis9PT09PT0KKworIzM6IEZpeCBpc3N1ZSB3aGVyZSBg
YC5uYW1lYGAgb24gYSBkaXJlY3Rvcnkgd2FzIGVtcHR5LgorCit2MC4zLjIKKz09PT09PQorCisj
MjogRml4IFR5cGVFcnJvciBvbiBQeXRob24gMi43IHdoZW4gY2xhc3NpYyBkaXZpc2lvbiBpcyB1
c2VkLgorCit2MC4zLjEKKz09PT09PQorCisjMTogRml4IFR5cGVFcnJvciBvbiBQeXRob24gMy41
IHdoZW4gam9pbmluZyB0byBhIHBhdGgtbGlrZSBvYmplY3QuCisKK3YwLjMuMAorPT09PT09CisK
K0FkZCBzdXBwb3J0IGZvciBjb25zdHJ1Y3RpbmcgYSBgYHppcHAuUGF0aGBgIGZyb20gYW55IHBh
dGgtbGlrZQorb2JqZWN0LgorCitgYHppcHAuUGF0aGBgIGlzIG5vdyBhIG5ldy1zdHlsZSBjbGFz
cyBvbiBQeXRob24gMi43LgorCit2MC4yLjEKKz09PT09PQorCitGaXggaXNzdWUgd2l0aCBgYF9f
c3RyX19gYC4KKwordjAuMi4wCis9PT09PT0KKworRHJvcCByZWxpYW5jZSBvbiBmdXR1cmUtZnN0
cmluZ3MuCisKK3YwLjEuMAorPT09PT09CisKK0luaXRpYWwgcmVsZWFzZSB3aXRoIGJhc2ljIGZ1
bmN0aW9uYWxpdHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvTElDRU5TRSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9M
SUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVlNzk1YTYxZjMwMmZmNWQ0MjVlYWMyMjgxZmYxM2MxNWIyMWVk
MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvTElDRU5TRQpAQCAtMCwwICsxLDcgQEAK
K0NvcHlyaWdodCBKYXNvbiBSLiBDb29tYnMKKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlz
IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdh
cmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk
aW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt
ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz
IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3
YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g
bm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y
dGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNM
VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB
QkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO
IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg
T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP
VEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvUEtH
LUlORk8gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3ppcHAvUEtHLUlORk8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNlZjFjZjAxYzRiMjMyNjQ4
YTcwYTBmMmZhOTczM2E0MjMyYjQ5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9QS0ct
SU5GTwpAQCAtMCwwICsxLDM5IEBACitNZXRhZGF0YS1WZXJzaW9uOiAyLjEKK05hbWU6IHppcHAK
K1ZlcnNpb246IDEuMi4wCitTdW1tYXJ5OiBCYWNrcG9ydCBvZiBwYXRobGliLWNvbXBhdGlibGUg
b2JqZWN0IHdyYXBwZXIgZm9yIHppcCBmaWxlcworSG9tZS1wYWdlOiBodHRwczovL2dpdGh1Yi5j
b20vamFyYWNvL3ppcHAKK0F1dGhvcjogSmFzb24gUi4gQ29vbWJzCitBdXRob3ItZW1haWw6IGph
cmFjb0BqYXJhY28uY29tCitMaWNlbnNlOiBVTktOT1dOCitEZXNjcmlwdGlvbjogLi4gaW1hZ2U6
OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi96aXBwLnN2ZworICAgICAgICAgICA6dGFy
Z2V0OiBodHRwczovL3B5cGkub3JnL3Byb2plY3QvemlwcAorICAgICAgICAKKyAgICAgICAgLi4g
aW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy96aXBwLnN2Zwor
ICAgICAgICAKKyAgICAgICAgLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3RyYXZp
cy9qYXJhY28vemlwcC9tYXN0ZXIuc3ZnCisgICAgICAgICAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJh
dmlzLWNpLm9yZy9qYXJhY28vemlwcAorICAgICAgICAKKyAgICAgICAgLi4gaW1hZ2U6OiBodHRw
czovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NvZGUlMjBzdHlsZS1ibGFjay0wMDAwMDAuc3ZnCisg
ICAgICAgICAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbWJ2L2JsYWNrCisgICAgICAg
ICAgIDphbHQ6IENvZGUgc3R5bGU6IEJsYWNrCisgICAgICAgIAorICAgICAgICAuLiBpbWFnZTo6
IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYXBwdmV5b3IvY2kvamFyYWNvL3ppcHAvbWFzdGVyLnN2
ZworICAgICAgICAgICA6dGFyZ2V0OiBodHRwczovL2NpLmFwcHZleW9yLmNvbS9wcm9qZWN0L2ph
cmFjby96aXBwL2JyYW5jaC9tYXN0ZXIKKyAgICAgICAgCisgICAgICAgIC4uIC4uIGltYWdlOjog
aHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcvcHJvamVjdHMvemlwcC9iYWRnZS8/dmVyc2lvbj1sYXRl
c3QKKyAgICAgICAgLi4gICAgOnRhcmdldDogaHR0cHM6Ly96aXBwLnJlYWR0aGVkb2NzLmlvL2Vu
L2xhdGVzdC8/YmFkZ2U9bGF0ZXN0CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgQSBwYXRo
bGliLWNvbXBhdGlibGUgWmlwZmlsZSBvYmplY3Qgd3JhcHBlci4gQSBiYWNrcG9ydCBvZiB0aGUK
KyAgICAgICAgYFBhdGggb2JqZWN0IDxodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjgvbGlicmFy
eS96aXBmaWxlLmh0bWwjcGF0aC1vYmplY3RzPmBfLgorICAgICAgICAKK1BsYXRmb3JtOiBVTktO
T1dOCitDbGFzc2lmaWVyOiBEZXZlbG9wbWVudCBTdGF0dXMgOjogNSAtIFByb2R1Y3Rpb24vU3Rh
YmxlCitDbGFzc2lmaWVyOiBJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzCitDbGFzc2lm
aWVyOiBMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZQorQ2xhc3NpZmllcjog
UHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNworQ2xhc3NpZmllcjogUHJvZ3Jh
bW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMKK1JlcXVpcmVzLVB5dGhvbjogPj0yLjcKK1By
b3ZpZGVzLUV4dHJhOiB0ZXN0aW5nCitQcm92aWRlcy1FeHRyYTogZG9jcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS96aXBwL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvUkVBRE1FLnJzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ZTEyOGEzMmJhMzExM2YxMTg4MzBhMWZiOTc1ODc5YjdkZDEwMzhiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS96aXBwL1JFQURNRS5yc3QKQEAgLTAsMCArMSwyMSBAQAorLi4gaW1hZ2U6OiBodHRw
czovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi96aXBwLnN2ZworICAgOnRhcmdldDogaHR0cHM6Ly9w
eXBpLm9yZy9wcm9qZWN0L3ppcHAKKworLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlv
L3B5cGkvcHl2ZXJzaW9ucy96aXBwLnN2ZworCisuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVs
ZHMuaW8vdHJhdmlzL2phcmFjby96aXBwL21hc3Rlci5zdmcKKyAgIDp0YXJnZXQ6IGh0dHBzOi8v
dHJhdmlzLWNpLm9yZy9qYXJhY28vemlwcAorCisuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVs
ZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWJsYWNrLTAwMDAwMC5zdmcKKyAgIDp0YXJnZXQ6IGh0
dHBzOi8vZ2l0aHViLmNvbS9hbWJ2L2JsYWNrCisgICA6YWx0OiBDb2RlIHN0eWxlOiBCbGFjawor
CisuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYXBwdmV5b3IvY2kvamFyYWNvL3pp
cHAvbWFzdGVyLnN2ZworICAgOnRhcmdldDogaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVj
dC9qYXJhY28vemlwcC9icmFuY2gvbWFzdGVyCisKKy4uIC4uIGltYWdlOjogaHR0cHM6Ly9yZWFk
dGhlZG9jcy5vcmcvcHJvamVjdHMvemlwcC9iYWRnZS8/dmVyc2lvbj1sYXRlc3QKKy4uICAgIDp0
YXJnZXQ6IGh0dHBzOi8vemlwcC5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvP2JhZGdlPWxhdGVz
dAorCisKK0EgcGF0aGxpYi1jb21wYXRpYmxlIFppcGZpbGUgb2JqZWN0IHdyYXBwZXIuIEEgYmFj
a3BvcnQgb2YgdGhlCitgUGF0aCBvYmplY3QgPGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuOC9s
aWJyYXJ5L3ppcGZpbGUuaHRtbCNwYXRoLW9iamVjdHM+YF8uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3pp
cHAvYXBwdmV5b3IueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2FwcHZleW9yLnltbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzVh
YTI3ZDY4NDI0NGVkNTljMWRlZGZkODRkNzU4YWVkYWI0Y2QyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS96aXBwL2FwcHZleW9yLnltbApAQCAtMCwwICsxLDI0IEBACitlbnZpcm9ubWVudDoKKwor
ICBBUFBWRVlPUjogdHJ1ZQorCisgIG1hdHJpeDoKKyAgICAtIFBZVEhPTjogIkM6XFxQeXRob24z
Ni14NjQiCisgICAgLSBQWVRIT046ICJDOlxcUHl0aG9uMjcteDY0IgorCitpbnN0YWxsOgorICAj
IHN5bWxpbmsgcHl0aG9uIGZyb20gYSBkaXJlY3Rvcnkgd2l0aCBhIHNwYWNlCisgIC0gIm1rbGlu
ayAvZCBcIkM6XFxQcm9ncmFtIEZpbGVzXFxQeXRob25cIiAlUFlUSE9OJSIKKyAgLSAiU0VUIFBZ
VEhPTj1cIkM6XFxQcm9ncmFtIEZpbGVzXFxQeXRob25cIiIKKyAgLSAiU0VUIFBBVEg9JVBZVEhP
TiU7JVBZVEhPTiVcXFNjcmlwdHM7JVBBVEglIgorCitidWlsZDogb2ZmCisKK2NhY2hlOgorICAt
ICclTE9DQUxBUFBEQVRBJVxwaXBcQ2FjaGUnCisKK3Rlc3Rfc2NyaXB0OgorICAtICJweXRob24g
LW0gcGlwIGluc3RhbGwgLVUgdG94IHRveC12ZW52IHZpcnR1YWxlbnYiCisgIC0gInRveCIKKwor
dmVyc2lvbjogJ3tidWlsZH0nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvY29uZnRlc3QucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3ppcHAvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFl
Nzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2RvY3MvY29uZi5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvemlwcC9kb2NzL2NvbmYucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFiNTM1NTdmYjJlMzcyNjgzODk5YzUx
YTZhNTg5MmI4MGJjNTkzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9kb2NzL2NvbmYu
cHkKQEAgLTAsMCArMSwyNiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworIyAtKi0gY29kaW5n
OiB1dGYtOCAtKi0KKworZXh0ZW5zaW9ucyA9IFsnc3BoaW54LmV4dC5hdXRvZG9jJywgJ2phcmFj
by5wYWNrYWdpbmcuc3BoaW54JywgJ3JzdC5saW5rZXInXQorCittYXN0ZXJfZG9jID0gImluZGV4
IgorCitsaW5rX2ZpbGVzID0geworICAgICcuLi9DSEFOR0VTLnJzdCc6IGRpY3QoCisgICAgICAg
IHVzaW5nPWRpY3QoR0g9J2h0dHBzOi8vZ2l0aHViLmNvbScpLAorICAgICAgICByZXBsYWNlPVsK
KyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgcGF0dGVybj1yJyhJc3N1ZSAjfFxC
IykoP1A8aXNzdWU+XGQrKScsCisgICAgICAgICAgICAgICAgdXJsPSd7cGFja2FnZV91cmx9L2lz
c3Vlcy97aXNzdWV9JywKKyAgICAgICAgICAgICksCisgICAgICAgICAgICBkaWN0KAorICAgICAg
ICAgICAgICAgIHBhdHRlcm49cideKD9tKSgoP1A8c2NtX3ZlcnNpb24+dj9cZCsoXC5cZCspezEs
Mn0pKVxuWy09XStcbicsCisgICAgICAgICAgICAgICAgd2l0aF9zY209J3t0ZXh0fVxue3Jldlt0
aW1lc3RhbXBdOiVkICViICVZfVxuJywKKyAgICAgICAgICAgICksCisgICAgICAgICAgICBkaWN0
KAorICAgICAgICAgICAgICAgIHBhdHRlcm49cidQRVBbLSBdKD9QPHBlcF9udW1iZXI+XGQrKScs
CisgICAgICAgICAgICAgICAgdXJsPSdodHRwczovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3Bl
cC17cGVwX251bWJlcjowPjR9LycsCisgICAgICAgICAgICApLAorICAgICAgICBdLAorICAgICkK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9kb2NzL2hpc3RvcnkucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2Rv
Y3MvaGlzdG9yeS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUyMTc1MDNiYTFhNjg4MjZhZjhlMWU5ZGI0YmQx
NmNlN2EyMTg1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9kb2NzL2hpc3RvcnkucnN0
CkBAIC0wLDAgKzEsOCBAQAorOnRvY2RlcHRoOiAyCisKKy4uIF9jaGFuZ2VzOgorCitIaXN0b3J5
CisqKioqKioqCisKKy4uIGluY2x1ZGU6OiAuLi9DSEFOR0VTIChsaW5rcykucnN0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3ppcHAvZG9jcy9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvZG9jcy9pbmRleC5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmY0OWJmOWRjNzA2ZDYyYzllODUyNGYzNDZkYjFiZGQ2M2QwMjZiYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9kb2NzL2luZGV4LnJzdApAQCAtMCwwICsxLDIyIEBA
CitXZWxjb21lIHRvIHppcHAgZG9jdW1lbnRhdGlvbiEKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworLi4gdG9jdHJlZTo6CisgICA6bWF4ZGVwdGg6IDEKKworICAg
aGlzdG9yeQorCisKKy4uIGF1dG9tb2R1bGU6OiB6aXBwCisgICAgOm1lbWJlcnM6CisgICAgOnVu
ZG9jLW1lbWJlcnM6CisgICAgOnNob3ctaW5oZXJpdGFuY2U6CisKKworSW5kaWNlcyBhbmQgdGFi
bGVzCis9PT09PT09PT09PT09PT09PT0KKworKiA6cmVmOmBnZW5pbmRleGAKKyogOnJlZjpgbW9k
aW5kZXhgCisqIDpyZWY6YHNlYXJjaGAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2RvY3MvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvZG9jcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
Y2I2OWMyYjhlMDFlMDZiYWFhYTMwODJhYjFhMWE3Nzk5YmRmNzE0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS96aXBwL2RvY3MvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS96aXBwL2RvY3MvY29uZi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9kb2NzL2hpc3RvcnkucnN0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS96aXBwL2RvY3MvaW5kZXgucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvcHlwcm9qZWN0
LnRvbWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3ppcHAvcHlwcm9qZWN0LnRvbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2FmYzhjMzNiNzhi
YWE3NjY2ZDMwZjM4ZWU1MjJjODRhMjFiZmI3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlw
cC9weXByb2plY3QudG9tbApAQCAtMCwwICsxLDYgQEAKK1tidWlsZC1zeXN0ZW1dCityZXF1aXJl
cyA9IFsic2V0dXB0b29scz49MzQuNCIsICJ3aGVlbCIsICJzZXR1cHRvb2xzX3NjbT49MS4xNSJd
CitidWlsZC1iYWNrZW5kID0gInNldHVwdG9vbHMuYnVpbGRfbWV0YSIKKworW3Rvb2wuYmxhY2td
Citza2lwLXN0cmluZy1ub3JtYWxpemF0aW9uID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBw
L3NldHVwLmNmZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvemlwcC9zZXR1cC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY0YWJkMjQ4YTQz
NWE5Zjk5MGY3ODQwMTE3MmRiOWY2ZjM2NTBlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlw
cC9zZXR1cC5jZmcKQEAgLTAsMCArMSw0NSBAQAorW2JkaXN0X3doZWVsXQordW5pdmVyc2FsID0g
MQorCitbbWV0YWRhdGFdCitsaWNlbnNlX2ZpbGUgPSBMSUNFTlNFCituYW1lID0gemlwcAorYXV0
aG9yID0gSmFzb24gUi4gQ29vbWJzCithdXRob3JfZW1haWwgPSBqYXJhY29AamFyYWNvLmNvbQor
ZGVzY3JpcHRpb24gPSBCYWNrcG9ydCBvZiBwYXRobGliLWNvbXBhdGlibGUgb2JqZWN0IHdyYXBw
ZXIgZm9yIHppcCBmaWxlcworbG9uZ19kZXNjcmlwdGlvbiA9IGZpbGU6UkVBRE1FLnJzdAordXJs
ID0gaHR0cHM6Ly9naXRodWIuY29tL2phcmFjby96aXBwCitjbGFzc2lmaWVycyA9IAorCURldmVs
b3BtZW50IFN0YXR1cyA6OiA1IC0gUHJvZHVjdGlvbi9TdGFibGUKKwlJbnRlbmRlZCBBdWRpZW5j
ZSA6OiBEZXZlbG9wZXJzCisJTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UK
KwlQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43CisJUHJvZ3JhbW1pbmcgTGFu
Z3VhZ2UgOjogUHl0aG9uIDo6IDMKKworW29wdGlvbnNdCitweV9tb2R1bGVzID0gemlwcAorcGFj
a2FnZXMgPSBmaW5kOgoraW5jbHVkZV9wYWNrYWdlX2RhdGEgPSB0cnVlCitweXRob25fcmVxdWly
ZXMgPSA+PTIuNworaW5zdGFsbF9yZXF1aXJlcyA9IAorCWNvbnRleHRsaWIyOyBweXRob25fdmVy
c2lvbiA8ICIzLjQiCitzZXR1cF9yZXF1aXJlcyA9IHNldHVwdG9vbHNfc2NtID49IDEuMTUuMAor
Citbb3B0aW9ucy5leHRyYXNfcmVxdWlyZV0KK3Rlc3RpbmcgPSAKKwkKKwlwYXRobGliMgorCXVu
aXR0ZXN0MgorCWphcmFjby5pdGVydG9vbHMKKwlmdW5jLXRpbWVvdXQKK2RvY3MgPSAKKwlzcGhp
bngKKwlqYXJhY28ucGFja2FnaW5nID49IDMuMgorCXJzdC5saW5rZXIgPj0gMS45CisKK1tvcHRp
b25zLmVudHJ5X3BvaW50c10KKworW2VnZ19pbmZvXQordGFnX2J1aWxkID0gCit0YWdfZGF0ZSA9
IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3NldHVwLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgyN2U5NTVmY2Q2YzJhZjYzYWQxYWQ0Y2I0MmU0MWUyOWU2MjA3NGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvc2V0dXAucHkKQEAgLTAsMCArMSw2IEBACisjIS91
c3IvYmluL2VudiBweXRob24KKworaW1wb3J0IHNldHVwdG9vbHMKKworaWYgX19uYW1lX18gPT0g
Il9fbWFpbl9fIjoKKyAgICBzZXR1cHRvb2xzLnNldHVwKHVzZV9zY21fdmVyc2lvbj1UcnVlKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS96aXBwL3NrZWxldG9uLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3NrZWxldG9uLm1k
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjUyYjk3ZjA5YjQxODg5NDY3OTk1MWZiOTg2N2I1YjBkYzY2MThmMWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvc2tlbGV0b24ubWQKQEAgLTAsMCArMSwxMzcgQEAK
KyMgT3ZlcnZpZXcKKworVGhpcyBwcm9qZWN0IGlzIG1lcmdlZCB3aXRoIFtza2VsZXRvbl0oaHR0
cHM6Ly9naXRodWIuY29tL2phcmFjby9za2VsZXRvbikuIFdoYXQgaXMgc2tlbGV0b24/IEl0J3Mg
dGhlIHNjYWZmb2xkaW5nIG9mIGEgUHl0aG9uIHByb2plY3QgamFyYWNvIFtpbnRyb2R1Y2VkIGlu
IGhpcyBibG9nXShodHRwczovL2Jsb2cuamFyYWNvLmNvbS9hLXByb2plY3Qtc2tlbGV0b24tZm9y
LXB5dGhvbi1wcm9qZWN0cy8pLiBJdCBzZWVrcyB0byBwcm92aWRlIGEgbWVhbnMgdG8gcmUtdXNl
IHRlY2huaXF1ZXMgYW5kIGluaGVyaXQgYWR2YW5jZXMgd2hlbiBtYW5hZ2luZyBwcm9qZWN0cyBm
b3IgZGlzdHJpYnV0aW9uLgorCisjIyBBbiBTQ00gTWFuYWdlZCBBcHByb2FjaAorCitXaGlsZSBt
YWludGFpbmluZyBkb3plbnMgb2YgcHJvamVjdHMgaW4gUHlQSSwgamFyYWNvIGRlcml2ZXMgYmVz
dCBwcmFjdGljZXMgZm9yIHByb2plY3QgZGlzdHJpYnV0aW9uIGFuZCBwdWJsaXNoZXMgdGhlbSBp
biB0aGUgW3NrZWxldG9uIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9qYXJhY28vc2tlbGV0b24p
LCBhIGdpdCByZXBvIGNhcHR1cmluZyB0aGUgZXZvbHV0aW9uIGFuZCBjdWxtaW5hdGlvbiBvZiB0
aGVzZSBiZXN0IHByYWN0aWNlcy4KKworSXQncyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IGEgbmV3
IG9yIGV4aXN0aW5nIHByb2plY3QgdG8gYWRvcHQgdGhlc2UgcHJhY3RpY2VzIGFuZCBob25lZCBh
bmQgcHJvdmVuIHRlY2huaXF1ZXMuIEFkb3B0ZXJzIGFyZSBlbmNvdXJhZ2VkIHRvIHVzZSB0aGUg
cHJvamVjdCBkaXJlY3RseSBhbmQgbWFpbnRhaW4gYSBzbWFsbCBkZXZpYXRpb24gZnJvbSB0aGUg
dGVjaG5pcXVlLCBtYWtlIHRoZWlyIG93biBmb3JrIGZvciBtb3JlIHN1YnN0YW50aWFsIGNoYW5n
ZXMgdW5pcXVlIHRvIHRoZWlyIGVudmlyb25tZW50IG9yIHByZWZlcmVuY2VzLCBvciBzaW1wbHkg
YWRvcHQgdGhlIHNrZWxldG9uIG9uY2UgYW5kIGFiYW5kb24gaXQgdGhlcmVhZnRlci4KKworVGhl
IHByaW1hcnkgYWR2YW50YWdlIHRvIHVzaW5nIGFuIFNDTSBmb3IgbWFpbnRhaW5pbmcgdGhlc2Ug
dGVjaG5pcXVlcyBpcyB0aGF0IHRob3NlIHRvb2xzIGhlbHAgZmFjaWxpdGF0ZSB0aGUgbWVyZ2Ug
YmV0d2VlbiB0aGUgdGVtcGxhdGUgYW5kIGl0cyBhZG9wdGluZyBwcm9qZWN0cy4KKworQW5vdGhl
ciBhZHZhbnRhZ2UgdG8gdXNpbmcgYW4gU0NNLW1hbmFnZWQgYXBwcm9hY2ggaXMgdGhhdCB0b29s
cyBsaWtlIEdpdEh1YiByZWNvZ25pemUgdGhhdCBhIGNoYW5nZSBpbiB0aGUgc2tlbGV0b24gaXMg
dGhlIF9zYW1lIGNoYW5nZV8gYWNyb3NzIGFsbCBwcm9qZWN0cyB0aGF0IG1lcmdlIHdpdGggdGhh
dCBza2VsZXRvbi4gV2l0aG91dCB0aGUgYW5jZXN0cnksIHdpdGggYSB0cmFkaXRpb25hbCBjb3B5
L3Bhc3RlIGFwcHJvYWNoLCBhIFtjb21taXQgbGlrZSB0aGlzXShodHRwczovL2dpdGh1Yi5jb20v
amFyYWNvL3NrZWxldG9uL2NvbW1pdC8xMmVlZDEzMjZlMWJjMjZjZTI1NmU3YjNmOGNkOGQzYTVi
ZWFiMmQ1KSB3b3VsZCBwcm9kdWNlIG5vdGlmaWNhdGlvbnMgaW4gdGhlIHVwc3RyZWFtIHByb2pl
Y3QgaXNzdWUgZm9yIGVhY2ggYW5kIGV2ZXJ5IGFwcGxpY2F0aW9uLCBidXQgYmVjYXVzZSBpdCdz
IGNlbnRyYWxpemVkLCBHaXRIdWIgcHJvdmlkZXMganVzdCB0aGUgb25lIG5vdGlmaWNhdGlvbiB3
aGVuIHRoZSBjaGFuZ2UgaXMgYWRkZWQgdG8gdGhlIHNrZWxldG9uLgorCisjIFVzYWdlCisKKyMj
IG5ldyBwcm9qZWN0cworCitUbyB1c2Ugc2tlbGV0b24gZm9yIGEgbmV3IHByb2plY3QsIHNpbXBs
eSBwdWxsIHRoZSBza2VsZXRvbiBpbnRvIGEgbmV3IHByb2plY3Q6CisKK2BgYAorJCBnaXQgaW5p
dCBteS1uZXctcHJvamVjdAorJCBjZCBteS1uZXctcHJvamVjdAorJCBnaXQgcHVsbCBnaDovL2ph
cmFjby9za2VsZXRvbgorYGBgCisKK05vdyBjdXN0b21pemUgdGhlIHByb2plY3QgdG8gc3VpdCB5
b3VyIGluZGl2aWR1YWwgcHJvamVjdCBuZWVkcy4KKworIyMgZXhpc3RpbmcgcHJvamVjdHMKKwor
SWYgeW91IGhhdmUgYW4gZXhpc3RpbmcgcHJvamVjdCwgeW91IGNhbiBzdGlsbCBpbmNvcnBvcmF0
ZSB0aGUgc2tlbGV0b24gYnkgbWVyZ2luZyBpdCBpbnRvIHRoZSBjb2RlYmFzZS4KKworYGBgCisk
IGdpdCBtZXJnZSBza2VsZXRvbiAtLWFsbG93LXVucmVsYXRlZC1oaXN0b3JpZXMKK2BgYAorCitU
aGUgYC0tYWxsb3ctdW5yZWxhdGVkLWhpc3Rvcmllc2AgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhl
IGhpc3RvcnkgZnJvbSB0aGUgc2tlbGV0b24gd2FzIHByZXZpb3VzbHkgdW5yZWxhdGVkIHRvIHRo
ZSBleGlzdGluZyBjb2RlYmFzZS4gUmVzb2x2ZSBhbnkgbWVyZ2UgY29uZmxpY3RzIGFuZCBjb21t
aXQgdG8gdGhlIG1hc3RlciwgYW5kIG5vdyB0aGUgcHJvamVjdCBpcyBiYXNlZCBvbiB0aGUgc2hh
cmVkIHNrZWxldG9uLgorCisjIyBVcGRhdGluZworCitXaGVuZXZlciBhIGNoYW5nZSBpcyBuZWVk
ZWQgb3IgZGVzaXJlZCBmb3IgdGhlIGdlbmVyYWwgdGVjaG5pcXVlIGZvciBwYWNrYWdpbmcsIGl0
IGNhbiBiZSBtYWRlIGluIHRoZSBza2VsZXRvbiBwcm9qZWN0IGFuZCB0aGVuIG1lcmdlZCBpbnRv
IGVhY2ggb2YgdGhlIGRlcml2ZWQgcHJvamVjdHMgYXMgbmVlZGVkLCByZWNvbW1lbmRlZCBiZWZv
cmUgZWFjaCByZWxlYXNlLiBBcyBhIHJlc3VsdCwgZmVhdHVyZXMgYW5kIGJlc3QgcHJhY3RpY2Vz
IGZvciBwYWNrYWdpbmcgYXJlIGNlbnRyYWxseSBtYWludGFpbmVkIGFuZCByZWFkaWx5IHRyaWNr
bGUgaW50byBhIHdob2xlIHN1aXRlIG9mIHBhY2thZ2VzLiBUaGlzIHRlY2huaXF1ZSBsb3dlcnMg
dGhlIGFtb3VudCBvZiB0ZWRpb3VzIHdvcmsgbmVjZXNzYXJ5IHRvIGNyZWF0ZSBvciBtYWludGFp
biBhIHByb2plY3QsIGFuZCBjb3VwbGVkIHdpdGggb3RoZXIgdGVjaG5pcXVlcyBsaWtlIGNvbnRp
bnVvdXMgaW50ZWdyYXRpb24gYW5kIGRlcGxveW1lbnQsIGxvd2VycyB0aGUgY29zdCBvZiBjcmVh
dGluZyBhbmQgbWFpbnRhaW5pbmcgcmVmaW5lZCBQeXRob24gcHJvamVjdHMgdG8ganVzdCBhIGZl
dywgZmFtaWxpYXIgZ2l0IG9wZXJhdGlvbnMuCisKK1RoZXJlYWZ0ZXIsIHRoZSB0YXJnZXQgcHJv
amVjdCBjYW4gbWFrZSB3aGF0ZXZlciBjdXN0b21pemF0aW9ucyBpdCBkZWVtcyByZWxldmFudCB0
byB0aGUgc2NhZmZvbGRpbmcuIFRoZSBwcm9qZWN0IG1heSBldmVuIGF0IHNvbWUgcG9pbnQgZGVj
aWRlIHRoYXQgdGhlIGRpdmVyZ2VuY2UgaXMgdG9vIGdyZWF0IHRvIG1lcml0IHJlbmV3ZWQgbWVy
Z2luZyB3aXRoIHRoZSBvcmlnaW5hbCBza2VsZXRvbi4gVGhpcyBhcHByb2FjaCBhcHBsaWVzIG1h
eGltYWwgZ3VpZGFuY2Ugd2hpbGUgY3JlYXRpbmcgbWluaW1hbCBjb25zdHJhaW50cy4KKworIyBG
ZWF0dXJlcworCitUaGUgZmVhdHVyZXMvdGVjaG5pcXVlcyBlbXBsb3llZCBieSB0aGUgc2tlbGV0
b24gaW5jbHVkZToKKworLSBQRVAgNTE3LzUxOCBiYXNlZCBidWlsZCByZWx5aW5nIG9uIHNldHVw
dG9vbHMgYXMgdGhlIGJ1aWxkIHRvb2wKKy0gc2V0dXB0b29scyBkZWNsYXJhdGl2ZSBjb25maWd1
cmF0aW9uIHVzaW5nIHNldHVwLmNmZworLSB0b3ggZm9yIHJ1bm5pbmcgdGVzdHMKKy0gQSBSRUFE
TUUucnN0IGFzIHJlU3RydWN0dXJlZFRleHQgd2l0aCBzb21lIHBvcHVsYXIgYmFkZ2VzLCBidXQg
d2l0aCByZWFkdGhlZG9jcyBhbmQgYXBwdmV5b3IgYmFkZ2VzIGNvbW1lbnRlZCBvdXQKKy0gQSBD
SEFOR0VTLnJzdCBmaWxlIGludGVuZGVkIGZvciBwdWJsaXNoaW5nIHJlbGVhc2Ugbm90ZXMgYWJv
dXQgdGhlIHByb2plY3QKKy0gVXNlIG9mIFtibGFja10oaHR0cHM6Ly9ibGFjay5yZWFkdGhlZG9j
cy5pby9lbi9zdGFibGUvKSBmb3IgY29kZSBmb3JtYXR0aW5nIChkaXNhYmxlZCBvbiB1bnN1cHBv
cnRlZCBQeXRob24gMy41IGFuZCBlYXJsaWVyKQorCisjIyBQYWNrYWdpbmcgQ29udmVudGlvbnMK
KworQSBweXByb2plY3QudG9tbCBpcyBpbmNsdWRlZCB0byBlbmFibGUgUEVQIDUxNyBhbmQgUEVQ
IDUxOCBjb21wYXRpYmlsaXR5IGFuZCBkZWNsYXJlcyB0aGUgcmVxdWlyZW1lbnRzIG5lY2Vzc2Fy
eSB0byBidWlsZCB0aGUgcHJvamVjdCBvbiBzZXR1cHRvb2xzIChhIG1pbmltdW0gdmVyc2lvbiBj
b21wYXRpYmxlIHdpdGggc2V0dXAuY2ZnIGRlY2xhcmF0aXZlIGNvbmZpZykuCisKK1RoZSBzZXR1
cC5jZmcgZmlsZSBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6CisKKy0gQXNzdW1l
cyB1bml2ZXJzYWwgd2hlZWwgZm9yIHJlbGVhc2UKKy0gQWR2ZXJ0aXNlcyB0aGUgcHJvamVjdCdz
IExJQ0VOU0UgZmlsZSAoTUlUIGJ5IGRlZmF1bHQpCistIFJlYWRzIHRoZSBSRUFETUUucnN0IGZp
bGUgaW50byB0aGUgbG9uZyBkZXNjcmlwdGlvbgorLSBTb21lIGNvbW1vbiBUcm92ZSBjbGFzc2lm
aWVycworLSBJbmNsdWRlcyBhbGwgcGFja2FnZXMgZGlzY292ZXJlZCBpbiB0aGUgcmVwbworLSBE
YXRhIGZpbGVzIGluIHRoZSBwYWNrYWdlIGFyZSBhbHNvIGluY2x1ZGVkIChub3QganVzdCBQeXRo
b24gZmlsZXMpCistIERlY2xhcmVzIHRoZSByZXF1aXJlZCBQeXRob24gdmVyc2lvbnMKKy0gRGVj
bGFyZXMgaW5zdGFsbCByZXF1aXJlbWVudHMgKGVtcHR5IGJ5IGRlZmF1bHQpCistIERlY2xhcmVz
IHNldHVwIHJlcXVpcmVtZW50cyBmb3IgbGVnYWN5IGVudmlyb25tZW50cworLSBTdXBwbGllcyB0
d28gJ2V4dHJhcyc6CisgIC0gdGVzdGluZzogcmVxdWlyZW1lbnRzIGZvciBydW5uaW5nIHRlc3Rz
CisgIC0gZG9jczogcmVxdWlyZW1lbnRzIGZvciBidWlsZGluZyBkb2NzCisgIC0gdGhlc2UgZXh0
cmFzIHNwbGl0IHRoZSBkZWNsYXJhdGlvbiBpbnRvICJ1cHN0cmVhbSIgKHJlcXVpcmVtZW50cyBh
cyBkZWNsYXJlZCBieSB0aGUgc2tlbGV0b24pIGFuZCAibG9jYWwiICh0aG9zZSBzcGVjaWZpYyB0
byB0aGUgbG9jYWwgcHJvamVjdCk7IHRoZXNlIG1hcmtlcnMgaGVscCBhdm9pZCBtZXJnZSBjb25m
bGljdHMKKy0gUGxhY2Vob2xkZXIgZm9yIGRlZmluaW5nIGVudHJ5IHBvaW50cworCitBZGRpdGlv
bmFsbHksIHRoZSBzZXR1cC5weSBmaWxlIGRlY2xhcmVzIGB1c2Vfc2NtX3ZlcnNpb25gIHdoaWNo
IHJlbGllcyBvbiBbc2V0dXB0b29sc19zY21dKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9zZXR1
cHRvb2xzX3NjbSkgdG8gZG8gdHdvIHRoaW5nczoKKworLSBkZXJpdmUgdGhlIHByb2plY3QgdmVy
c2lvbiBmcm9tIFNDTSB0YWdzCistIGVuc3VyZSB0aGF0IGFsbCBmaWxlcyBjb21taXR0ZWQgdG8g
dGhlIHJlcG8gYXJlIGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQgaW4gcmVsZWFzZXMKKworIyMgUnVu
bmluZyBUZXN0cworCitUaGUgc2tlbGV0b24gYXNzdW1lcyB0aGUgZGV2ZWxvcGVyIGhhcyBbdG94
XShodHRwczovL3B5cGkub3JnL3Byb2plY3QvdG94KSBpbnN0YWxsZWQuIFRoZSBkZXZlbG9wZXIg
aXMgZXhwZWN0ZWQgdG8gcnVuIGB0b3hgIHRvIHJ1biB0ZXN0cyBvbiB0aGUgY3VycmVudCBQeXRo
b24gdmVyc2lvbiB1c2luZyBbcHl0ZXN0XShodHRwczovL3B5cGkub3JnL3Byb2plY3QvcHl0ZXN0
KS4KKworT3RoZXIgZW52aXJvbm1lbnRzIChpbnZva2VkIHdpdGggYHRveCAtZSB7bmFtZX1gKSBz
dXBwbGllZCBpbmNsdWRlOgorCisgIC0gYSBgYnVpbGQtZG9jc2AgZW52aXJvbm1lbnQgdG8gYnVp
bGQgdGhlIGRvY3VtZW50YXRpb24KKyAgLSBhIGByZWxlYXNlYCBlbnZpcm9ubWVudCB0byBwdWJs
aXNoIHRoZSBwYWNrYWdlIHRvIFB5UEkKKworQSBweXRlc3QuaW5pIGlzIGluY2x1ZGVkIHRvIGRl
ZmluZSBjb21tb24gb3B0aW9ucyBhcm91bmQgcnVubmluZyB0ZXN0cy4gSW4gcGFydGljdWxhcjoK
KworLSByZWx5IG9uIGRlZmF1bHQgdGVzdCBkaXNjb3ZlcnkgaW4gdGhlIGN1cnJlbnQgZGlyZWN0
b3J5CistIGF2b2lkIHJlY3Vyc2luZyBpbnRvIGNvbW1vbiBkaXJlY3RvcmllcyBub3QgY29udGFp
bmluZyB0ZXN0cworLSBydW4gZG9jdGVzdHMgb24gbW9kdWxlcyBhbmQgaW52b2tlIGZsYWtlOCB0
ZXN0cworLSBpbiBkb2N0ZXN0cywgYWxsb3cgdW5pY29kZSBsaXRlcmFscyBhbmQgcmVndWxhciBs
aXRlcmFscyB0byBtYXRjaCwgYWxsb3dpbmcgZm9yIGRvY3Rlc3RzIHRvIHJ1biBvbiBQeXRob24g
MiBhbmQgMy4gQWxzbyBlbmFibGUgRUxMSVBTRVMsIGEgZGVmYXVsdCB0aGF0IHdvdWxkIGJlIHVu
ZG9uZSBieSBzdXBwbHlpbmcgdGhlIHByaW9yIG9wdGlvbi4KKy0gZmlsdGVycyBvdXQga25vd24g
d2FybmluZ3MgY2F1c2VkIGJ5IGxpYnJhcmllcy9mdW5jdGlvbmFsaXR5IGluY2x1ZGVkIGJ5IHRo
ZSBza2VsZXRvbgorCitSZWxpZXMgYSAuZmxha2U4IGZpbGUgdG8gY29ycmVjdCBzb21lIGRlZmF1
bHQgYmVoYXZpb3JzOgorCistIGRpc2FibGUgbXV0dWFsbHkgaW5jb21wYXRpYmxlIHJ1bGVzIFc1
MDMgYW5kIFc1MDQKKy0gc3VwcG9ydCBmb3IgYmxhY2sgZm9ybWF0CisKKyMjIENvbnRpbnVvdXMg
SW50ZWdyYXRpb24KKworVGhlIHByb2plY3QgaXMgcHJlLWNvbmZpZ3VyZWQgdG8gcnVuIHRlc3Rz
IGluIFtUcmF2aXMtQ0ldKGh0dHBzOi8vdHJhdmlzLWNpLm9yZykgKC50cmF2aXMueW1sKS4gQW55
IG5ldyBwcm9qZWN0IG11c3QgYmUgZW5hYmxlZCBlaXRoZXIgdGhyb3VnaCB0aGVpciB3ZWIgc2l0
ZSBvciB3aXRoIHRoZSBgdHJhdmlzIGVuYWJsZWAgY29tbWFuZC4KKworRmVhdHVyZXMgaW5jbHVk
ZToKKy0gdGVzdCBhZ2FpbnN0IFB5dGhvbiAyIGFuZCAzCistIHJ1biBvbiBVYnVudHUgWGVuaWFs
CistIGNvcnJlY3QgZm9yIGJyb2tlbiBJUHY2CisKK0Fsc28gcHJvdmlkZWQgaXMgYSBtaW5pbWFs
IHRlbXBsYXRlIGZvciBydW5uaW5nIHVuZGVyIEFwcHZleW9yIChXaW5kb3dzKS4KKworIyMjIENv
bnRpbnVvdXMgRGVwbG95bWVudHMKKworSW4gYWRkaXRpb24gdG8gcnVubmluZyB0ZXN0cywgYW4g
YWRkaXRpb25hbCBkZXBsb3kgc3RhZ2UgaXMgY29uZmlndXJlZCB0byBhdXRvbWF0aWNhbGx5IHJl
bGVhc2UgdGFnZ2VkIGNvbW1pdHMgdG8gUHlQSSB1c2luZyBbQVBJIHRva2Vuc10oaHR0cHM6Ly9w
eXBpLm9yZy9oZWxwLyNhcGl0b2tlbikuIFRoZSByZWxlYXNlIHByb2Nlc3MgZXhwZWN0cyBhbiBh
dXRob3JpemVkIHRva2VuIHRvIGJlIGNvbmZpZ3VyZWQgd2l0aCBUcmF2aXMgYXMgdGhlIFRXSU5F
X1BBU1NXT1JEIGVudmlyb25tZW50IHZhcmlhYmxlLiBBZnRlciB0aGUgVHJhdmlzIHByb2plY3Qg
aXMgY3JlYXRlZCwgY29uZmlndXJlIHRoZSB0b2tlbiB0aHJvdWdoIHRoZSB3ZWIgVUkgb3Igd2l0
aCBhIGNvbW1hbmQgbGlrZSB0aGUgZm9sbG93aW5nIChiYXNoIHN5bnRheCk6CisKK2BgYAorVFdJ
TkVfUEFTU1dPUkQ9e3Rva2VufSB0cmF2aXMgZW52IGNvcHkgVFdJTkVfUEFTU1dPUkQKK2BgYAor
CisjIyBCdWlsZGluZyBEb2N1bWVudGF0aW9uCisKK0RvY3VtZW50YXRpb24gaXMgYXV0b21hdGlj
YWxseSBidWlsdCBieSBbUmVhZCB0aGUgRG9jc10oaHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcpIHdo
ZW4gdGhlIHByb2plY3QgaXMgcmVnaXN0ZXJlZCB3aXRoIGl0LCBieSB3YXkgb2YgdGhlIC5yZWFk
dGhlZG9jcy55bWwgZmlsZS4gVG8gdGVzdCB0aGUgZG9jcyBidWlsZCBtYW51YWxseSwgYSB0b3gg
ZW52IG1heSBiZSBpbnZva2VkIGFzIGB0b3ggLWUgYnVpbGQtZG9jc2AuIEJvdGggdGVjaG5pcXVl
cyByZWx5IG9uIHRoZSBkZXBlbmRlbmNpZXMgZGVjbGFyZWQgaW4gYHNldHVwLmNmZy9vcHRpb25z
LmV4dHJhc19yZXF1aXJlLmRvY3NgLgorCitJbiBhZGRpdGlvbiB0byBidWlsZGluZyB0aGUgc3Bo
aW54IGRvY3Mgc2NhZmZvbGRlZCBpbiBgZG9jcy9gLCB0aGUgZG9jcyBidWlsZCBhIGBoaXN0b3J5
Lmh0bWxgIGZpbGUgdGhhdCBmaXJzdCBpbmplY3RzIHJlbGVhc2UgZGF0ZXMgYW5kIGh5cGVybGlu
a3MgaW50byB0aGUgQ0hBTkdFUy5yc3QgYmVmb3JlIGluY29ycG9yYXRpbmcgaXQgYXMgaGlzdG9y
eSBpbiB0aGUgZG9jcy4KKworIyMgQ3V0dGluZyByZWxlYXNlcworCitCeSBkZWZhdWx0LCB0YWdn
ZWQgY29tbWl0cyBhcmUgcmVsZWFzZWQgdGhyb3VnaCB0aGUgY29udGludW91cyBpbnRlZ3JhdGlv
biBkZXBsb3kgc3RhZ2UuCisKK1JlbGVhc2VzIG1heSBhbHNvIGJlIGN1dCBtYW51YWxseSBieSBp
bnZva2luZyB0aGUgdG94IGVudmlyb25tZW50IGByZWxlYXNlYCB3aXRoIHRoZSBQeVBJIHRva2Vu
IHNldCBhcyB0aGUgVFdJTkVfUEFTU1dPUkQ6CisKK2BgYAorVFdJTkVfUEFTU1dPUkQ9e3Rva2Vu
fSB0b3ggLWUgcmVsZWFzZQorYGBgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvdGVzdF96aXBwLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS96aXBwL3Rlc3RfemlwcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTBkMTBiZDY4ZmMyN2Y4OTdk
ZmYyZDQxMTU4MmRlOTc5OTYyNDUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3Rlc3Rf
emlwcC5weQpAQCAtMCwwICsxLDI0NSBAQAorIyBjb2Rpbmc6IHV0Zi04CisKK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgZGl2aXNpb24sIHVuaWNvZGVfbGl0ZXJhbHMKKworaW1wb3J0IGlvCitpbXBv
cnQgemlwZmlsZQoraW1wb3J0IGNvbnRleHRsaWIKK2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0IHNo
dXRpbAoraW1wb3J0IHN0cmluZworCit0cnk6CisgICAgaW1wb3J0IHBhdGhsaWIKK2V4Y2VwdCBJ
bXBvcnRFcnJvcjoKKyAgICBpbXBvcnQgcGF0aGxpYjIgYXMgcGF0aGxpYgorCitpZiBub3QgaGFz
YXR0cihjb250ZXh0bGliLCAnRXhpdFN0YWNrJyk6CisgICAgaW1wb3J0IGNvbnRleHRsaWIyCisg
ICAgY29udGV4dGxpYi5FeGl0U3RhY2sgPSBjb250ZXh0bGliMi5FeGl0U3RhY2sKKwordHJ5Ogor
ICAgIGltcG9ydCB1bml0dGVzdAorCisgICAgdW5pdHRlc3QuVGVzdENhc2Uuc3ViVGVzdAorZXhj
ZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgIGltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKKwor
aW1wb3J0IGphcmFjby5pdGVydG9vbHMKK2ltcG9ydCBmdW5jX3RpbWVvdXQKKworaW1wb3J0IHpp
cHAKKworX19tZXRhY2xhc3NfXyA9IHR5cGUKK2NvbnN1bWUgPSB0dXBsZQorCisKK2RlZiBhZGRf
ZGlycyh6Zik6CisgICAgIiIiCisgICAgR2l2ZW4gYSB3cml0YWJsZSB6aXAgZmlsZSB6ZiwgaW5q
ZWN0IGRpcmVjdG9yeSBlbnRyaWVzIGZvcgorICAgIGFueSBkaXJlY3RvcmllcyBpbXBsaWVkIGJ5
IHRoZSBwcmVzZW5jZSBvZiBjaGlsZHJlbi4KKyAgICAiIiIKKyAgICBmb3IgbmFtZSBpbiB6aXBw
LkNvbXBsZXRlRGlycy5faW1wbGllZF9kaXJzKHpmLm5hbWVsaXN0KCkpOgorICAgICAgICB6Zi53
cml0ZXN0cihuYW1lLCBiIiIpCisgICAgcmV0dXJuIHpmCisKKworZGVmIGJ1aWxkX2FscGhhcmVw
X2ZpeHR1cmUoKToKKyAgICAiIiIKKyAgICBDcmVhdGUgYSB6aXAgZmlsZSB3aXRoIHRoaXMgc3Ry
dWN0dXJlOgorCisgICAgLgorICAgIOKUnOKUgOKUgCBhLnR4dAorICAgIOKUnOKUgOKUgCBiCisg
ICAg4pSCICAg4pSc4pSA4pSAIGMudHh0CisgICAg4pSCICAg4pSc4pSA4pSAIGQKKyAgICDilIIg
ICDilIIgICDilJTilIDilIAgZS50eHQKKyAgICDilIIgICDilJTilIDilIAgZi50eHQKKyAgICDi
lJTilIDilIAgZworICAgICAgICDilJTilIDilIAgaAorICAgICAgICAgICAg4pSU4pSA4pSAIGku
dHh0CisKKyAgICBUaGlzIGZpeHR1cmUgaGFzIHRoZSBmb2xsb3dpbmcga2V5IGNoYXJhY3Rlcmlz
dGljczoKKworICAgIC0gYSBmaWxlIGF0IHRoZSByb290IChhKQorICAgIC0gYSBmaWxlIHR3byBs
ZXZlbHMgZGVlcCAoYi9kL2UpCisgICAgLSBtdWx0aXBsZSBmaWxlcyBpbiBhIGRpcmVjdG9yeSAo
Yi9jLCBiL2YpCisgICAgLSBhIGRpcmVjdG9yeSBjb250YWluaW5nIG9ubHkgYSBkaXJlY3Rvcnkg
KGcvaCkKKworICAgICJhbHBoYSIgYmVjYXVzZSBpdCB1c2VzIGFscGhhYmV0CisgICAgInJlcCIg
YmVjYXVzZSBpdCdzIGEgcmVwcmVzZW50YXRpdmUgZXhhbXBsZQorICAgICIiIgorICAgIGRhdGEg
PSBpby5CeXRlc0lPKCkKKyAgICB6ZiA9IHppcGZpbGUuWmlwRmlsZShkYXRhLCAidyIpCisgICAg
emYud3JpdGVzdHIoImEudHh0IiwgYiJjb250ZW50IG9mIGEiKQorICAgIHpmLndyaXRlc3RyKCJi
L2MudHh0IiwgYiJjb250ZW50IG9mIGMiKQorICAgIHpmLndyaXRlc3RyKCJiL2QvZS50eHQiLCBi
ImNvbnRlbnQgb2YgZSIpCisgICAgemYud3JpdGVzdHIoImIvZi50eHQiLCBiImNvbnRlbnQgb2Yg
ZiIpCisgICAgemYud3JpdGVzdHIoImcvaC9pLnR4dCIsIGIiY29udGVudCBvZiBpIikKKyAgICB6
Zi5maWxlbmFtZSA9ICJhbHBoYXJlcC56aXAiCisgICAgcmV0dXJuIHpmCisKKworQGNvbnRleHRs
aWIuY29udGV4dG1hbmFnZXIKK2RlZiB0ZW1wX2RpcigpOgorICAgIHRtcGRpciA9IHRlbXBmaWxl
Lm1rZHRlbXAoKQorICAgIHRyeToKKyAgICAgICAgeWllbGQgcGF0aGxpYi5QYXRoKHRtcGRpcikK
KyAgICBmaW5hbGx5OgorICAgICAgICBzaHV0aWwucm10cmVlKHRtcGRpcikKKworCitjbGFzcyBU
ZXN0UGF0aCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAg
ICBzZWxmLmZpeHR1cmVzID0gY29udGV4dGxpYi5FeGl0U3RhY2soKQorICAgICAgICBzZWxmLmFk
ZENsZWFudXAoc2VsZi5maXh0dXJlcy5jbG9zZSkKKworICAgIGRlZiB6aXBmaWxlX2FscGhhcmVw
KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdCgpOgorICAgICAgICAgICAgeWllbGQg
YnVpbGRfYWxwaGFyZXBfZml4dHVyZSgpCisgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KCk6Cisg
ICAgICAgICAgICB5aWVsZCBhZGRfZGlycyhidWlsZF9hbHBoYXJlcF9maXh0dXJlKCkpCisKKyAg
ICBkZWYgemlwZmlsZV9vbmRpc2soc2VsZik6CisgICAgICAgIHRtcGRpciA9IHBhdGhsaWIuUGF0
aChzZWxmLmZpeHR1cmVzLmVudGVyX2NvbnRleHQodGVtcF9kaXIoKSkpCisgICAgICAgIGZvciBh
bHBoYXJlcCBpbiBzZWxmLnppcGZpbGVfYWxwaGFyZXAoKToKKyAgICAgICAgICAgIGJ1ZmZlciA9
IGFscGhhcmVwLmZwCisgICAgICAgICAgICBhbHBoYXJlcC5jbG9zZSgpCisgICAgICAgICAgICBw
YXRoID0gdG1wZGlyIC8gYWxwaGFyZXAuZmlsZW5hbWUKKyAgICAgICAgICAgIHdpdGggcGF0aC5v
cGVuKCJ3YiIpIGFzIHN0cm06CisgICAgICAgICAgICAgICAgc3RybS53cml0ZShidWZmZXIuZ2V0
dmFsdWUoKSkKKyAgICAgICAgICAgIHlpZWxkIHBhdGgKKworICAgIGRlZiB0ZXN0X2l0ZXJkaXJf
YW5kX3R5cGVzKHNlbGYpOgorICAgICAgICBmb3IgYWxwaGFyZXAgaW4gc2VsZi56aXBmaWxlX2Fs
cGhhcmVwKCk6CisgICAgICAgICAgICByb290ID0gemlwcC5QYXRoKGFscGhhcmVwKQorICAgICAg
ICAgICAgYXNzZXJ0IHJvb3QuaXNfZGlyKCkKKyAgICAgICAgICAgIGEsIGIsIGcgPSByb290Lml0
ZXJkaXIoKQorICAgICAgICAgICAgYXNzZXJ0IGEuaXNfZmlsZSgpCisgICAgICAgICAgICBhc3Nl
cnQgYi5pc19kaXIoKQorICAgICAgICAgICAgYXNzZXJ0IGcuaXNfZGlyKCkKKyAgICAgICAgICAg
IGMsIGYsIGQgPSBiLml0ZXJkaXIoKQorICAgICAgICAgICAgYXNzZXJ0IGMuaXNfZmlsZSgpIGFu
ZCBmLmlzX2ZpbGUoKQorICAgICAgICAgICAgZSwgPSBkLml0ZXJkaXIoKQorICAgICAgICAgICAg
YXNzZXJ0IGUuaXNfZmlsZSgpCisgICAgICAgICAgICBoLCA9IGcuaXRlcmRpcigpCisgICAgICAg
ICAgICBpLCA9IGguaXRlcmRpcigpCisgICAgICAgICAgICBhc3NlcnQgaS5pc19maWxlKCkKKwor
ICAgIGRlZiB0ZXN0X29wZW4oc2VsZik6CisgICAgICAgIGZvciBhbHBoYXJlcCBpbiBzZWxmLnpp
cGZpbGVfYWxwaGFyZXAoKToKKyAgICAgICAgICAgIHJvb3QgPSB6aXBwLlBhdGgoYWxwaGFyZXAp
CisgICAgICAgICAgICBhLCBiLCBnID0gcm9vdC5pdGVyZGlyKCkKKyAgICAgICAgICAgIHdpdGgg
YS5vcGVuKCkgYXMgc3RybToKKyAgICAgICAgICAgICAgICBkYXRhID0gc3RybS5yZWFkKCkKKyAg
ICAgICAgICAgIGFzc2VydCBkYXRhID09ICJjb250ZW50IG9mIGEiCisKKyAgICBkZWYgdGVzdF9y
ZWFkKHNlbGYpOgorICAgICAgICBmb3IgYWxwaGFyZXAgaW4gc2VsZi56aXBmaWxlX2FscGhhcmVw
KCk6CisgICAgICAgICAgICByb290ID0gemlwcC5QYXRoKGFscGhhcmVwKQorICAgICAgICAgICAg
YSwgYiwgZyA9IHJvb3QuaXRlcmRpcigpCisgICAgICAgICAgICBhc3NlcnQgYS5yZWFkX3RleHQo
KSA9PSAiY29udGVudCBvZiBhIgorICAgICAgICAgICAgYXNzZXJ0IGEucmVhZF9ieXRlcygpID09
IGIiY29udGVudCBvZiBhIgorCisgICAgZGVmIHRlc3Rfam9pbnBhdGgoc2VsZik6CisgICAgICAg
IGZvciBhbHBoYXJlcCBpbiBzZWxmLnppcGZpbGVfYWxwaGFyZXAoKToKKyAgICAgICAgICAgIHJv
b3QgPSB6aXBwLlBhdGgoYWxwaGFyZXApCisgICAgICAgICAgICBhID0gcm9vdC5qb2lucGF0aCgi
YSIpCisgICAgICAgICAgICBhc3NlcnQgYS5pc19maWxlKCkKKyAgICAgICAgICAgIGUgPSByb290
LmpvaW5wYXRoKCJiIikuam9pbnBhdGgoImQiKS5qb2lucGF0aCgiZS50eHQiKQorICAgICAgICAg
ICAgYXNzZXJ0IGUucmVhZF90ZXh0KCkgPT0gImNvbnRlbnQgb2YgZSIKKworICAgIGRlZiB0ZXN0
X3RyYXZlcnNlX3RydWVkaXYoc2VsZik6CisgICAgICAgIGZvciBhbHBoYXJlcCBpbiBzZWxmLnpp
cGZpbGVfYWxwaGFyZXAoKToKKyAgICAgICAgICAgIHJvb3QgPSB6aXBwLlBhdGgoYWxwaGFyZXAp
CisgICAgICAgICAgICBhID0gcm9vdCAvICJhIgorICAgICAgICAgICAgYXNzZXJ0IGEuaXNfZmls
ZSgpCisgICAgICAgICAgICBlID0gcm9vdCAvICJiIiAvICJkIiAvICJlLnR4dCIKKyAgICAgICAg
ICAgIGFzc2VydCBlLnJlYWRfdGV4dCgpID09ICJjb250ZW50IG9mIGUiCisKKyAgICBkZWYgdGVz
dF90cmF2ZXJzZV9zaW1wbGVkaXYoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBEaXNhYmxl
IHRoZSBfX2Z1dHVyZV9fLmRpdmlzaW9uIHdoZW4gdGVzdGluZyB0cmF2ZXJzYWwuCisgICAgICAg
ICIiIgorICAgICAgICBmb3IgYWxwaGFyZXAgaW4gc2VsZi56aXBmaWxlX2FscGhhcmVwKCk6Cisg
ICAgICAgICAgICBjb2RlID0gY29tcGlsZSgKKyAgICAgICAgICAgICAgICBzb3VyY2U9InppcHAu
UGF0aChhbHBoYXJlcCkgLyAnYSciLAorICAgICAgICAgICAgICAgIGZpbGVuYW1lPSIodGVzdCki
LAorICAgICAgICAgICAgICAgIG1vZGU9ImV2YWwiLAorICAgICAgICAgICAgICAgIGRvbnRfaW5o
ZXJpdD1UcnVlLAorICAgICAgICAgICAgKQorICAgICAgICAgICAgZXZhbChjb2RlKQorCisgICAg
ZGVmIHRlc3RfcGF0aGxpa2VfY29uc3RydWN0aW9uKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg
ICAgemlwcC5QYXRoIHNob3VsZCBiZSBjb25zdHJ1Y3RhYmxlIGZyb20gYSBwYXRoLWxpa2Ugb2Jq
ZWN0CisgICAgICAgICIiIgorICAgICAgICBmb3IgemlwZmlsZV9vbmRpc2sgaW4gc2VsZi56aXBm
aWxlX29uZGlzaygpOgorICAgICAgICAgICAgcGF0aGxpa2UgPSBwYXRobGliLlBhdGgoc3RyKHpp
cGZpbGVfb25kaXNrKSkKKyAgICAgICAgICAgIHppcHAuUGF0aChwYXRobGlrZSkKKworICAgIGRl
ZiB0ZXN0X3RyYXZlcnNlX3BhdGhsaWtlKHNlbGYpOgorICAgICAgICBmb3IgYWxwaGFyZXAgaW4g
c2VsZi56aXBmaWxlX2FscGhhcmVwKCk6CisgICAgICAgICAgICByb290ID0gemlwcC5QYXRoKGFs
cGhhcmVwKQorICAgICAgICAgICAgcm9vdCAvIHBhdGhsaWIuUGF0aCgiYSIpCisKKyAgICBkZWYg
dGVzdF9wYXJlbnQoc2VsZik6CisgICAgICAgIGZvciBhbHBoYXJlcCBpbiBzZWxmLnppcGZpbGVf
YWxwaGFyZXAoKToKKyAgICAgICAgICAgIHJvb3QgPSB6aXBwLlBhdGgoYWxwaGFyZXApCisgICAg
ICAgICAgICBhc3NlcnQgKHJvb3QgLyAnYScpLnBhcmVudC5hdCA9PSAnJworICAgICAgICAgICAg
YXNzZXJ0IChyb290IC8gJ2EnIC8gJ2InKS5wYXJlbnQuYXQgPT0gJ2EvJworCisgICAgZGVmIHRl
c3RfZGlyX3BhcmVudChzZWxmKToKKyAgICAgICAgZm9yIGFscGhhcmVwIGluIHNlbGYuemlwZmls
ZV9hbHBoYXJlcCgpOgorICAgICAgICAgICAgcm9vdCA9IHppcHAuUGF0aChhbHBoYXJlcCkKKyAg
ICAgICAgICAgIGFzc2VydCAocm9vdCAvICdiJykucGFyZW50LmF0ID09ICcnCisgICAgICAgICAg
ICBhc3NlcnQgKHJvb3QgLyAnYi8nKS5wYXJlbnQuYXQgPT0gJycKKworICAgIGRlZiB0ZXN0X21p
c3NpbmdfZGlyX3BhcmVudChzZWxmKToKKyAgICAgICAgZm9yIGFscGhhcmVwIGluIHNlbGYuemlw
ZmlsZV9hbHBoYXJlcCgpOgorICAgICAgICAgICAgcm9vdCA9IHppcHAuUGF0aChhbHBoYXJlcCkK
KyAgICAgICAgICAgIGFzc2VydCAocm9vdCAvICdtaXNzaW5nIGRpci8nKS5wYXJlbnQuYXQgPT0g
JycKKworICAgIGRlZiB0ZXN0X211dGFiaWxpdHkoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBJZiB0aGUgdW5kZXJseWluZyB6aXBmaWxlIGlzIGNoYW5nZWQsIHRoZSBQYXRoIG9iamVjdCBz
aG91bGQKKyAgICAgICAgcmVmbGVjdCB0aGF0IGNoYW5nZS4KKyAgICAgICAgIiIiCisgICAgICAg
IGZvciBhbHBoYXJlcCBpbiBzZWxmLnppcGZpbGVfYWxwaGFyZXAoKToKKyAgICAgICAgICAgIHJv
b3QgPSB6aXBwLlBhdGgoYWxwaGFyZXApCisgICAgICAgICAgICBhLCBiLCBnID0gcm9vdC5pdGVy
ZGlyKCkKKyAgICAgICAgICAgIGFscGhhcmVwLndyaXRlc3RyKCdmb28udHh0JywgYidmb28nKQor
ICAgICAgICAgICAgYWxwaGFyZXAud3JpdGVzdHIoJ2Jhci9iYXoudHh0JywgYidiYXonKQorICAg
ICAgICAgICAgYXNzZXJ0IGFueSgKKyAgICAgICAgICAgICAgICBjaGlsZC5uYW1lID09ICdmb28u
dHh0JworICAgICAgICAgICAgICAgIGZvciBjaGlsZCBpbiByb290Lml0ZXJkaXIoKSkKKyAgICAg
ICAgICAgIGFzc2VydCAocm9vdCAvICdmb28udHh0JykucmVhZF90ZXh0KCkgPT0gJ2ZvbycKKyAg
ICAgICAgICAgIGJheiwgPSAocm9vdCAvICdiYXInKS5pdGVyZGlyKCkKKyAgICAgICAgICAgIGFz
c2VydCBiYXoucmVhZF90ZXh0KCkgPT0gJ2JheicKKworICAgIEhVR0VfWklQRklMRV9OVU1fRU5U
UklFUyA9IDIgKiogMTMKKworICAgIGRlZiBodWdlX3ppcGZpbGUoc2VsZik6CisgICAgICAgICIi
IkNyZWF0ZSBhIHJlYWQtb25seSB6aXBmaWxlIHdpdGggYSBodWdlIG51bWJlciBvZiBlbnRyaWVz
IGVudHJpZXMuIiIiCisgICAgICAgIHN0cm0gPSBpby5CeXRlc0lPKCkKKyAgICAgICAgemYgPSB6
aXBmaWxlLlppcEZpbGUoc3RybSwgInciKQorICAgICAgICBmb3IgZW50cnkgaW4gbWFwKHN0ciwg
cmFuZ2Uoc2VsZi5IVUdFX1pJUEZJTEVfTlVNX0VOVFJJRVMpKToKKyAgICAgICAgICAgIHpmLndy
aXRlc3RyKGVudHJ5LCBlbnRyeSkKKyAgICAgICAgemYubW9kZSA9ICdyJworICAgICAgICByZXR1
cm4gemYKKworICAgIGRlZiB0ZXN0X2pvaW5wYXRoX2NvbnN0YW50X3RpbWUoc2VsZik6CisgICAg
ICAgICIiIgorICAgICAgICBFbnN1cmUgam9pbnBhdGggb24gaXRlbXMgaW4gemlwZmlsZSBpcyBs
aW5lYXIgdGltZS4KKyAgICAgICAgIiIiCisgICAgICAgIHJvb3QgPSB6aXBwLlBhdGgoc2VsZi5o
dWdlX3ppcGZpbGUoKSkKKyAgICAgICAgZW50cmllcyA9IGphcmFjby5pdGVydG9vbHMuQ291bnRl
cihyb290Lml0ZXJkaXIoKSkKKyAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAg
ICAgICBlbnRyeS5qb2lucGF0aCgnc3VmZml4JykKKyAgICAgICAgIyBDaGVjayB0aGUgZmlsZSBp
dGVyYXRlZCBhbGwgaXRlbXMKKyAgICAgICAgYXNzZXJ0IGVudHJpZXMuY291bnQgPT0gc2VsZi5I
VUdFX1pJUEZJTEVfTlVNX0VOVFJJRVMKKworICAgIEBmdW5jX3RpbWVvdXQuZnVuY19zZXRfdGlt
ZW91dCgzKQorICAgIGRlZiB0ZXN0X2ltcGxpZWRfZGlyc19wZXJmb3JtYW5jZShzZWxmKToKKyAg
ICAgICAgZGF0YSA9IFsnLycuam9pbihzdHJpbmcuYXNjaWlfbG93ZXJjYXNlICsgc3RyKG4pKSBm
b3IgbiBpbiByYW5nZSgxMDAwMCldCisgICAgICAgIHppcHAuQ29tcGxldGVEaXJzLl9pbXBsaWVk
X2RpcnMoZGF0YSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC90b3guaW5pIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3Rv
eC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2I1NDJjMTM2YzM4ZWFmMzMwZmQyZTliMzIzMWQxMDEwZmJlMWFh
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC90b3guaW5pCkBAIC0wLDAgKzEsMzYgQEAK
K1t0b3hdCitlbnZsaXN0ID0gcHl0aG9uCittaW52ZXJzaW9uID0gMy4yCisjIGh0dHBzOi8vZ2l0
aHViLmNvbS9qYXJhY28vc2tlbGV0b24vaXNzdWVzLzYKK3RveF9waXBfZXh0ZW5zaW9uc19leHRf
dmVudl91cGRhdGUgPSB0cnVlCisKK1t0ZXN0ZW52XQorZGVwcyA9CisJc2V0dXB0b29scz49MzEu
MC4xCitjb21tYW5kcyA9CisJcHl0aG9uIC1tIHVuaXR0ZXN0IGRpc2NvdmVyCit1c2VkZXZlbG9w
ID0gVHJ1ZQorZXh0cmFzID0gdGVzdGluZworCitbdGVzdGVudjpidWlsZC1kb2NzXQorZXh0cmFz
ID0KKyAgICBkb2NzCisgICAgdGVzdGluZworY2hhbmdlZGlyID0gZG9jcworY29tbWFuZHMgPQor
ICAgIHB5dGhvbiAtbSBzcGhpbnggLiB7dG94aW5pZGlyfS9idWlsZC9odG1sCisKK1t0ZXN0ZW52
OnJlbGVhc2VdCitza2lwX2luc3RhbGwgPSBUcnVlCitkZXBzID0KKwlwZXA1MTc+PTAuNQorCXR3
aW5lPj0xLjEzCisJcGF0aC5weQorcGFzc2VudiA9CisJVFdJTkVfUEFTU1dPUkQKK3NldGVudiA9
CisJVFdJTkVfVVNFUk5BTUUgPSB7ZW52OlRXSU5FX1VTRVJOQU1FOl9fdG9rZW5fX30KK2NvbW1h
bmRzID0KKwlweXRob24gLWMgImltcG9ydCBwYXRoOyBwYXRoLlBhdGgoJ2Rpc3QnKS5ybXRyZWVf
cCgpIgorCXB5dGhvbiAtbSBwZXA1MTcuYnVpbGQgLgorCXB5dGhvbiAtbSB0d2luZSB1cGxvYWQg
ZGlzdC8qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlhNGY4ZDFjODZjNTQwZDFjZTVhNTdkYmI5ZTRj
NjExMDhiYzIzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC93M2MtaW1wb3J0LmxvZwpA
QCAtMCwwICsxLDI5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisK
K1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQ
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvQ0hBTkdFUy5yc3QKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3pp
cHAvTElDRU5TRQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvemlwcC9QS0ctSU5GTworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9SRUFETUUucnN0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS96aXBwL2FwcHZleW9yLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9jb25mdGVzdC5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlw
cC9weXByb2plY3QudG9tbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9zZXR1cC5jZmcKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvc2V0dXAu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3ppcHAvc2tlbGV0b24ubWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvdGVzdF96aXBwLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS96aXBwL3RveC5pbmkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBw
L3ppcHAuZWdnLWluZm8vUEtHLUlORk8gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5lZ2ctaW5mby9QS0ctSU5G
TwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zM2VmMWNmMDFjNGIyMzI2NDhhNzBhMGYyZmE5NzMzYTQyMzJiNDk4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vUEtHLUlORk8KQEAgLTAs
MCArMSwzOSBAQAorTWV0YWRhdGEtVmVyc2lvbjogMi4xCitOYW1lOiB6aXBwCitWZXJzaW9uOiAx
LjIuMAorU3VtbWFyeTogQmFja3BvcnQgb2YgcGF0aGxpYi1jb21wYXRpYmxlIG9iamVjdCB3cmFw
cGVyIGZvciB6aXAgZmlsZXMKK0hvbWUtcGFnZTogaHR0cHM6Ly9naXRodWIuY29tL2phcmFjby96
aXBwCitBdXRob3I6IEphc29uIFIuIENvb21icworQXV0aG9yLWVtYWlsOiBqYXJhY29AamFyYWNv
LmNvbQorTGljZW5zZTogVU5LTk9XTgorRGVzY3JpcHRpb246IC4uIGltYWdlOjogaHR0cHM6Ly9p
bWcuc2hpZWxkcy5pby9weXBpL3YvemlwcC5zdmcKKyAgICAgICAgICAgOnRhcmdldDogaHR0cHM6
Ly9weXBpLm9yZy9wcm9qZWN0L3ppcHAKKyAgICAgICAgCisgICAgICAgIC4uIGltYWdlOjogaHR0
cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMvemlwcC5zdmcKKyAgICAgICAgCisg
ICAgICAgIC4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90cmF2aXMvamFyYWNvL3pp
cHAvbWFzdGVyLnN2ZworICAgICAgICAgICA6dGFyZ2V0OiBodHRwczovL3RyYXZpcy1jaS5vcmcv
amFyYWNvL3ppcHAKKyAgICAgICAgCisgICAgICAgIC4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hp
ZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stMDAwMDAwLnN2ZworICAgICAgICAgICA6
dGFyZ2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW1idi9ibGFjaworICAgICAgICAgICA6YWx0OiBD
b2RlIHN0eWxlOiBCbGFjaworICAgICAgICAKKyAgICAgICAgLi4gaW1hZ2U6OiBodHRwczovL2lt
Zy5zaGllbGRzLmlvL2FwcHZleW9yL2NpL2phcmFjby96aXBwL21hc3Rlci5zdmcKKyAgICAgICAg
ICAgOnRhcmdldDogaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9qYXJhY28vemlwcC9i
cmFuY2gvbWFzdGVyCisgICAgICAgIAorICAgICAgICAuLiAuLiBpbWFnZTo6IGh0dHBzOi8vcmVh
ZHRoZWRvY3Mub3JnL3Byb2plY3RzL3ppcHAvYmFkZ2UvP3ZlcnNpb249bGF0ZXN0CisgICAgICAg
IC4uICAgIDp0YXJnZXQ6IGh0dHBzOi8vemlwcC5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvP2Jh
ZGdlPWxhdGVzdAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIEEgcGF0aGxpYi1jb21wYXRp
YmxlIFppcGZpbGUgb2JqZWN0IHdyYXBwZXIuIEEgYmFja3BvcnQgb2YgdGhlCisgICAgICAgIGBQ
YXRoIG9iamVjdCA8aHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy44L2xpYnJhcnkvemlwZmlsZS5o
dG1sI3BhdGgtb2JqZWN0cz5gXy4KKyAgICAgICAgCitQbGF0Zm9ybTogVU5LTk9XTgorQ2xhc3Np
ZmllcjogRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDUgLSBQcm9kdWN0aW9uL1N0YWJsZQorQ2xhc3Np
ZmllcjogSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycworQ2xhc3NpZmllcjogTGljZW5z
ZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UKK0NsYXNzaWZpZXI6IFByb2dyYW1taW5n
IExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyLjcKK0NsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1
YWdlIDo6IFB5dGhvbiA6OiAzCitSZXF1aXJlcy1QeXRob246ID49Mi43CitQcm92aWRlcy1FeHRy
YTogdGVzdGluZworUHJvdmlkZXMtRXh0cmE6IGRvY3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96
aXBwLmVnZy1pbmZvL1NPVVJDRVMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vU09VUkNF
Uy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODQ1YjM0MmNlZmM0MDA1ODEzNGFjNzE1ZGM4ZmE4MDZlNDBiNmU5
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL1NPVVJDRVMudHh0
CkBAIC0wLDAgKzEsMjQgQEAKKy5mbGFrZTgKKy5wcmUtY29tbWl0LWNvbmZpZy55YW1sCisucmVh
ZHRoZWRvY3MueW1sCisudHJhdmlzLnltbAorQ0hBTkdFUy5yc3QKK0xJQ0VOU0UKK1JFQURNRS5y
c3QKK2FwcHZleW9yLnltbAorY29uZnRlc3QucHkKK3B5cHJvamVjdC50b21sCitzZXR1cC5jZmcK
K3NldHVwLnB5Citza2VsZXRvbi5tZAordGVzdF96aXBwLnB5Cit0b3guaW5pCit6aXBwLnB5Citk
b2NzL2NvbmYucHkKK2RvY3MvaGlzdG9yeS5yc3QKK2RvY3MvaW5kZXgucnN0Cit6aXBwLmVnZy1p
bmZvL1BLRy1JTkZPCit6aXBwLmVnZy1pbmZvL1NPVVJDRVMudHh0Cit6aXBwLmVnZy1pbmZvL2Rl
cGVuZGVuY3lfbGlua3MudHh0Cit6aXBwLmVnZy1pbmZvL3JlcXVpcmVzLnR4dAoremlwcC5lZ2ct
aW5mby90b3BfbGV2ZWwudHh0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3pp
cHAvemlwcC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjEzNzg5
MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRlZDA4YmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS96aXBwL3ppcHAuZWdnLWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQKQEAgLTAsMCArMSBAQAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5lZ2ctaW5mby9yZXF1aXJlcy50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3ppcHAvemlwcC5lZ2ctaW5mby9yZXF1aXJlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBiYWI0NmFjNDkz
MGQzNWYzOWU4MjE3MmFhZGYwZTlhNWJkZDhhMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlw
cC96aXBwLmVnZy1pbmZvL3JlcXVpcmVzLnR4dApAQCAtMCwwICsxLDE0IEBACisKK1s6cHl0aG9u
X3ZlcnNpb24gPCAiMy40Il0KK2NvbnRleHRsaWIyCisKK1tkb2NzXQorc3BoaW54CitqYXJhY28u
cGFja2FnaW5nPj0zLjIKK3JzdC5saW5rZXI+PTEuOQorCitbdGVzdGluZ10KK3BhdGhsaWIyCit1
bml0dGVzdDIKK2phcmFjby5pdGVydG9vbHMKK2Z1bmMtdGltZW91dApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS96aXBwL3ppcHAuZWdnLWluZm8vdG9wX2xldmVsLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1p
bmZvL3RvcF9sZXZlbC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgyZjY3NmY4MmEzMzgxZmE5MDlkMWU2NTc4
YzdhMjIwNDRmYWZjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZv
L3RvcF9sZXZlbC50eHQKQEAgLTAsMCArMSBAQAoremlwcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBw
L3ppcHAuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5lZ2ctaW5mby93
M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWFmNDM3MDllNDAyMjQ0ZGJhNzhkYjAyZjgyYjM0
ZjExYTg3NmNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdn
LWluZm8vUEtHLUlORk8KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5lZ2ctaW5mby9TT1VSQ0VTLnR4dAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvemlwcC96aXBwLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3pp
cHAuZWdnLWluZm8vcmVxdWlyZXMudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vdG9wX2xl
dmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44OTIyMDU4MzRhYmFlZTJiNGMxZDNiYjQ1MDc2MDlkZTBhZDFjMmY2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAucHkKQEAgLTAsMCArMSwyODYgQEAKKyMg
Y29kaW5nOiB1dGYtOAorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCisKK2ltcG9y
dCBpbworaW1wb3J0IHN5cworaW1wb3J0IHBvc2l4cGF0aAoraW1wb3J0IHppcGZpbGUKK2ltcG9y
dCBmdW5jdG9vbHMKK2ltcG9ydCBpdGVydG9vbHMKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9y
ZGVyZWREaWN0CisKK3RyeToKKyAgICBmcm9tIGNvbnRleHRsaWIgaW1wb3J0IHN1cHByZXNzCitl
eGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBjb250ZXh0bGliMiBpbXBvcnQgc3VwcHJlc3MK
KworX19tZXRhY2xhc3NfXyA9IHR5cGUKKworCitkZWYgX3BhcmVudHMocGF0aCk6CisgICAgIiIi
CisgICAgR2l2ZW4gYSBwYXRoIHdpdGggZWxlbWVudHMgc2VwYXJhdGVkIGJ5CisgICAgcG9zaXhw
YXRoLnNlcCwgZ2VuZXJhdGUgYWxsIHBhcmVudHMgb2YgdGhhdCBwYXRoLgorCisgICAgPj4+IGxp
c3QoX3BhcmVudHMoJ2IvZCcpKQorICAgIFsnYiddCisgICAgPj4+IGxpc3QoX3BhcmVudHMoJy9i
L2QvJykpCisgICAgWycvYiddCisgICAgPj4+IGxpc3QoX3BhcmVudHMoJ2IvZC9mLycpKQorICAg
IFsnYi9kJywgJ2InXQorICAgID4+PiBsaXN0KF9wYXJlbnRzKCdiJykpCisgICAgW10KKyAgICA+
Pj4gbGlzdChfcGFyZW50cygnJykpCisgICAgW10KKyAgICAiIiIKKyAgICByZXR1cm4gaXRlcnRv
b2xzLmlzbGljZShfYW5jZXN0cnkocGF0aCksIDEsIE5vbmUpCisKKworZGVmIF9hbmNlc3RyeShw
YXRoKToKKyAgICAiIiIKKyAgICBHaXZlbiBhIHBhdGggd2l0aCBlbGVtZW50cyBzZXBhcmF0ZWQg
YnkKKyAgICBwb3NpeHBhdGguc2VwLCBnZW5lcmF0ZSBhbGwgZWxlbWVudHMgb2YgdGhhdCBwYXRo
CisKKyAgICA+Pj4gbGlzdChfYW5jZXN0cnkoJ2IvZCcpKQorICAgIFsnYi9kJywgJ2InXQorICAg
ID4+PiBsaXN0KF9hbmNlc3RyeSgnL2IvZC8nKSkKKyAgICBbJy9iL2QnLCAnL2InXQorICAgID4+
PiBsaXN0KF9hbmNlc3RyeSgnYi9kL2YvJykpCisgICAgWydiL2QvZicsICdiL2QnLCAnYiddCisg
ICAgPj4+IGxpc3QoX2FuY2VzdHJ5KCdiJykpCisgICAgWydiJ10KKyAgICA+Pj4gbGlzdChfYW5j
ZXN0cnkoJycpKQorICAgIFtdCisgICAgIiIiCisgICAgcGF0aCA9IHBhdGgucnN0cmlwKHBvc2l4
cGF0aC5zZXApCisgICAgd2hpbGUgcGF0aCBhbmQgcGF0aCAhPSBwb3NpeHBhdGguc2VwOgorICAg
ICAgICB5aWVsZCBwYXRoCisgICAgICAgIHBhdGgsIHRhaWwgPSBwb3NpeHBhdGguc3BsaXQocGF0
aCkKKworCitjbGFzcyBDb21wbGV0ZURpcnMoemlwZmlsZS5aaXBGaWxlKToKKyAgICAiIiIKKyAg
ICBBIFppcEZpbGUgc3ViY2xhc3MgdGhhdCBlbnN1cmVzIHRoYXQgaW1wbGllZCBkaXJlY3Rvcmll
cworICAgIGFyZSBhbHdheXMgaW5jbHVkZWQgaW4gdGhlIG5hbWVsaXN0LgorICAgICIiIgorCisg
ICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfaW1wbGllZF9kaXJzKG5hbWVzKToKKyAgICAgICAg
cGFyZW50cyA9IGl0ZXJ0b29scy5jaGFpbi5mcm9tX2l0ZXJhYmxlKG1hcChfcGFyZW50cywgbmFt
ZXMpKQorICAgICAgICAjIENhc3QgbmFtZXMgdG8gYSBzZXQgZm9yIE8oMSkgbG9va3VwcworICAg
ICAgICBleGlzdGluZyA9IHNldChuYW1lcykKKyAgICAgICAgIyBEZWR1cGxpY2F0ZSBlbnRyaWVz
IGluIG9yaWdpbmFsIG9yZGVyCisgICAgICAgIGltcGxpZWRfZGlycyA9IE9yZGVyZWREaWN0LmZy
b21rZXlzKAorICAgICAgICAgICAgcCArIHBvc2l4cGF0aC5zZXAgZm9yIHAgaW4gcGFyZW50cwor
ICAgICAgICAgICAgaWYgcCArIHBvc2l4cGF0aC5zZXAgbm90IGluIGV4aXN0aW5nCisgICAgICAg
ICkKKyAgICAgICAgcmV0dXJuIGltcGxpZWRfZGlycworCisgICAgZGVmIG5hbWVsaXN0KHNlbGYp
OgorICAgICAgICBuYW1lcyA9IHN1cGVyKENvbXBsZXRlRGlycywgc2VsZikubmFtZWxpc3QoKQor
ICAgICAgICByZXR1cm4gbmFtZXMgKyBsaXN0KHNlbGYuX2ltcGxpZWRfZGlycyhuYW1lcykpCisK
KyAgICBkZWYgX25hbWVfc2V0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2V0KHNlbGYubmFtZWxp
c3QoKSkKKworICAgIGRlZiByZXNvbHZlX2RpcihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisg
ICAgICAgIElmIHRoZSBuYW1lIHJlcHJlc2VudHMgYSBkaXJlY3RvcnksIHJldHVybiB0aGF0IG5h
bWUKKyAgICAgICAgYXMgYSBkaXJlY3RvcnkgKHdpdGggdGhlIHRyYWlsaW5nIHNsYXNoKS4KKyAg
ICAgICAgIiIiCisgICAgICAgIG5hbWVzID0gc2VsZi5fbmFtZV9zZXQoKQorICAgICAgICBkaXJu
YW1lID0gbmFtZSArICcvJworICAgICAgICBkaXJfbWF0Y2ggPSBuYW1lIG5vdCBpbiBuYW1lcyBh
bmQgZGlybmFtZSBpbiBuYW1lcworICAgICAgICByZXR1cm4gZGlybmFtZSBpZiBkaXJfbWF0Y2gg
ZWxzZSBuYW1lCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbWFrZShjbHMsIHNvdXJjZSk6
CisgICAgICAgICIiIgorICAgICAgICBHaXZlbiBhIHNvdXJjZSAoZmlsZW5hbWUgb3IgemlwZmls
ZSksIHJldHVybiBhbgorICAgICAgICBhcHByb3ByaWF0ZSBDb21wbGV0ZURpcnMgc3ViY2xhc3Mu
CisgICAgICAgICIiIgorICAgICAgICBpZiBpc2luc3RhbmNlKHNvdXJjZSwgQ29tcGxldGVEaXJz
KToKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UKKworICAgICAgICBpZiBub3QgaXNpbnN0YW5j
ZShzb3VyY2UsIHppcGZpbGUuWmlwRmlsZSk6CisgICAgICAgICAgICByZXR1cm4gY2xzKF9wYXRo
bGliX2NvbXBhdChzb3VyY2UpKQorCisgICAgICAgICMgT25seSBhbGxvdyBmb3IgRmFzdFBhdGgg
d2hlbiBzdXBwbGllZCB6aXBmaWxlIGlzIHJlYWQtb25seQorICAgICAgICBpZiAncicgbm90IGlu
IHNvdXJjZS5tb2RlOgorICAgICAgICAgICAgY2xzID0gQ29tcGxldGVEaXJzCisKKyAgICAgICAg
cmVzID0gY2xzLl9fbmV3X18oY2xzKQorICAgICAgICB2YXJzKHJlcykudXBkYXRlKHZhcnMoc291
cmNlKSkKKyAgICAgICAgcmV0dXJuIHJlcworCisKK2NsYXNzIEZhc3RMb29rdXAoQ29tcGxldGVE
aXJzKToKKyAgICAiIiIKKyAgICBaaXBGaWxlIHN1YmNsYXNzIHRvIGVuc3VyZSBpbXBsaWNpdAor
ICAgIGRpcnMgZXhpc3QgYW5kIGFyZSByZXNvbHZlZCByYXBpZGx5LgorICAgICIiIgorICAgIGRl
ZiBuYW1lbGlzdChzZWxmKToKKyAgICAgICAgd2l0aCBzdXBwcmVzcyhBdHRyaWJ1dGVFcnJvcik6
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fX25hbWVzCisgICAgICAgIHNlbGYuX19uYW1lcyA9
IHN1cGVyKEZhc3RMb29rdXAsIHNlbGYpLm5hbWVsaXN0KCkKKyAgICAgICAgcmV0dXJuIHNlbGYu
X19uYW1lcworCisgICAgZGVmIF9uYW1lX3NldChzZWxmKToKKyAgICAgICAgd2l0aCBzdXBwcmVz
cyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fX2xvb2t1cAorICAg
ICAgICBzZWxmLl9fbG9va3VwID0gc3VwZXIoRmFzdExvb2t1cCwgc2VsZikuX25hbWVfc2V0KCkK
KyAgICAgICAgcmV0dXJuIHNlbGYuX19sb29rdXAKKworCitkZWYgX3BhdGhsaWJfY29tcGF0KHBh
dGgpOgorICAgICIiIgorICAgIEZvciBwYXRoLWxpa2Ugb2JqZWN0cywgY29udmVydCB0byBhIGZp
bGVuYW1lIGZvciBjb21wYXRpYmlsaXR5CisgICAgb24gUHl0aG9uIDMuNi4xIGFuZCBlYXJsaWVy
LgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIHBhdGguX19mc3BhdGhfXygpCisg
ICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICByZXR1cm4gc3RyKHBhdGgpCisKKwor
Y2xhc3MgUGF0aDoKKyAgICAiIiIKKyAgICBBIHBhdGhsaWItY29tcGF0aWJsZSBpbnRlcmZhY2Ug
Zm9yIHppcCBmaWxlcy4KKworICAgIENvbnNpZGVyIGEgemlwIGZpbGUgd2l0aCB0aGlzIHN0cnVj
dHVyZTo6CisKKyAgICAgICAgLgorICAgICAgICDilJzilIDilIAgYS50eHQKKyAgICAgICAg4pSU
4pSA4pSAIGIKKyAgICAgICAgICAgIOKUnOKUgOKUgCBjLnR4dAorICAgICAgICAgICAg4pSU4pSA
4pSAIGQKKyAgICAgICAgICAgICAgICDilJTilIDilIAgZS50eHQKKworICAgID4+PiBkYXRhID0g
aW8uQnl0ZXNJTygpCisgICAgPj4+IHpmID0gemlwZmlsZS5aaXBGaWxlKGRhdGEsICd3JykKKyAg
ICA+Pj4gemYud3JpdGVzdHIoJ2EudHh0JywgJ2NvbnRlbnQgb2YgYScpCisgICAgPj4+IHpmLndy
aXRlc3RyKCdiL2MudHh0JywgJ2NvbnRlbnQgb2YgYycpCisgICAgPj4+IHpmLndyaXRlc3RyKCdi
L2QvZS50eHQnLCAnY29udGVudCBvZiBlJykKKyAgICA+Pj4gemYuZmlsZW5hbWUgPSAnYWJjZGUu
emlwJworCisgICAgUGF0aCBhY2NlcHRzIHRoZSB6aXBmaWxlIG9iamVjdCBpdHNlbGYgb3IgYSBm
aWxlbmFtZQorCisgICAgPj4+IHJvb3QgPSBQYXRoKHpmKQorCisgICAgRnJvbSB0aGVyZSwgc2V2
ZXJhbCBwYXRoIG9wZXJhdGlvbnMgYXJlIGF2YWlsYWJsZS4KKworICAgIERpcmVjdG9yeSBpdGVy
YXRpb24gKGluY2x1ZGluZyB0aGUgemlwIGZpbGUgaXRzZWxmKToKKworICAgID4+PiBhLCBiID0g
cm9vdC5pdGVyZGlyKCkKKyAgICA+Pj4gYQorICAgIFBhdGgoJ2FiY2RlLnppcCcsICdhLnR4dCcp
CisgICAgPj4+IGIKKyAgICBQYXRoKCdhYmNkZS56aXAnLCAnYi8nKQorCisgICAgbmFtZSBwcm9w
ZXJ0eToKKworICAgID4+PiBiLm5hbWUKKyAgICAnYicKKworICAgIGpvaW4gd2l0aCBkaXZpZGUg
b3BlcmF0b3I6CisKKyAgICA+Pj4gYyA9IGIgLyAnYy50eHQnCisgICAgPj4+IGMKKyAgICBQYXRo
KCdhYmNkZS56aXAnLCAnYi9jLnR4dCcpCisgICAgPj4+IGMubmFtZQorICAgICdjLnR4dCcKKwor
ICAgIFJlYWQgdGV4dDoKKworICAgID4+PiBjLnJlYWRfdGV4dCgpCisgICAgJ2NvbnRlbnQgb2Yg
YycKKworICAgIGV4aXN0ZW5jZToKKworICAgID4+PiBjLmV4aXN0cygpCisgICAgVHJ1ZQorICAg
ID4+PiAoYiAvICdtaXNzaW5nLnR4dCcpLmV4aXN0cygpCisgICAgRmFsc2UKKworICAgIENvZXJj
aW9uIHRvIHN0cmluZzoKKworICAgID4+PiBzdHIoYykKKyAgICAnYWJjZGUuemlwL2IvYy50eHQn
CisgICAgIiIiCisKKyAgICBfX3JlcHIgPSAie3NlbGYuX19jbGFzc19fLl9fbmFtZV9ffSh7c2Vs
Zi5yb290LmZpbGVuYW1lIXJ9LCB7c2VsZi5hdCFyfSkiCisKKyAgICBkZWYgX19pbml0X18oc2Vs
Ziwgcm9vdCwgYXQ9IiIpOgorICAgICAgICBzZWxmLnJvb3QgPSBGYXN0TG9va3VwLm1ha2Uocm9v
dCkKKyAgICAgICAgc2VsZi5hdCA9IGF0CisKKyAgICBkZWYgb3BlbihzZWxmLCBtb2RlPSdyJywg
KmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIE9wZW4gdGhpcyBlbnRyeSBh
cyB0ZXh0IG9yIGJpbmFyeSBmb2xsb3dpbmcgdGhlIHNlbWFudGljcworICAgICAgICBvZiBgYHBh
dGhsaWIuUGF0aC5vcGVuKClgYCBieSBwYXNzaW5nIGFyZ3VtZW50cyB0aHJvdWdoCisgICAgICAg
IHRvIGlvLlRleHRJT1dyYXBwZXIoKS4KKyAgICAgICAgIiIiCisgICAgICAgIHB3ZCA9IGt3YXJn
cy5wb3AoJ3B3ZCcsIE5vbmUpCisgICAgICAgIHppcF9tb2RlID0gbW9kZVswXQorICAgICAgICBz
dHJlYW0gPSBzZWxmLnJvb3Qub3BlbihzZWxmLmF0LCB6aXBfbW9kZSwgcHdkPXB3ZCkKKyAgICAg
ICAgaWYgJ2InIGluIG1vZGU6CisgICAgICAgICAgICBpZiBhcmdzIG9yIGt3YXJnczoKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJlbmNvZGluZyBhcmdzIGludmFsaWQgZm9yIGJp
bmFyeSBvcGVyYXRpb24iKQorICAgICAgICAgICAgcmV0dXJuIHN0cmVhbQorICAgICAgICByZXR1
cm4gaW8uVGV4dElPV3JhcHBlcihzdHJlYW0sICphcmdzLCAqKmt3YXJncykKKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gcG9zaXhwYXRoLmJhc2Vu
YW1lKHNlbGYuYXQucnN0cmlwKCIvIikpCisKKyAgICBkZWYgcmVhZF90ZXh0KHNlbGYsICphcmdz
LCAqKmt3YXJncyk6CisgICAgICAgIHdpdGggc2VsZi5vcGVuKCdyJywgKmFyZ3MsICoqa3dhcmdz
KSBhcyBzdHJtOgorICAgICAgICAgICAgcmV0dXJuIHN0cm0ucmVhZCgpCisKKyAgICBkZWYgcmVh
ZF9ieXRlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4oJ3JiJykgYXMgc3RybToKKyAg
ICAgICAgICAgIHJldHVybiBzdHJtLnJlYWQoKQorCisgICAgZGVmIF9pc19jaGlsZChzZWxmLCBw
YXRoKToKKyAgICAgICAgcmV0dXJuIHBvc2l4cGF0aC5kaXJuYW1lKHBhdGguYXQucnN0cmlwKCIv
IikpID09IHNlbGYuYXQucnN0cmlwKCIvIikKKworICAgIGRlZiBfbmV4dChzZWxmLCBhdCk6Cisg
ICAgICAgIHJldHVybiBQYXRoKHNlbGYucm9vdCwgYXQpCisKKyAgICBkZWYgaXNfZGlyKHNlbGYp
OgorICAgICAgICByZXR1cm4gbm90IHNlbGYuYXQgb3Igc2VsZi5hdC5lbmRzd2l0aCgiLyIpCisK
KyAgICBkZWYgaXNfZmlsZShzZWxmKToKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLmlzX2Rpcigp
CisKKyAgICBkZWYgZXhpc3RzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5hdCBpbiBzZWxm
LnJvb3QuX25hbWVfc2V0KCkKKworICAgIGRlZiBpdGVyZGlyKHNlbGYpOgorICAgICAgICBpZiBu
b3Qgc2VsZi5pc19kaXIoKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkNhbid0IGxp
c3RkaXIgYSBmaWxlIikKKyAgICAgICAgc3VicyA9IG1hcChzZWxmLl9uZXh0LCBzZWxmLnJvb3Qu
bmFtZWxpc3QoKSkKKyAgICAgICAgcmV0dXJuIGZpbHRlcihzZWxmLl9pc19jaGlsZCwgc3VicykK
KworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gcG9zaXhwYXRoLmpvaW4o
c2VsZi5yb290LmZpbGVuYW1lLCBzZWxmLmF0KQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fX3JlcHIuZm9ybWF0KHNlbGY9c2VsZikKKworICAgIGRlZiBq
b2lucGF0aChzZWxmLCBhZGQpOgorICAgICAgICBuZXh0ID0gcG9zaXhwYXRoLmpvaW4oc2VsZi5h
dCwgX3BhdGhsaWJfY29tcGF0KGFkZCkpCisgICAgICAgIHJldHVybiBzZWxmLl9uZXh0KHNlbGYu
cm9vdC5yZXNvbHZlX2RpcihuZXh0KSkKKworICAgIF9fdHJ1ZWRpdl9fID0gam9pbnBhdGgKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXJlbnQoc2VsZik6CisgICAgICAgIHBhcmVudF9hdCA9
IHBvc2l4cGF0aC5kaXJuYW1lKHNlbGYuYXQucnN0cmlwKCcvJykpCisgICAgICAgIGlmIHBhcmVu
dF9hdDoKKyAgICAgICAgICAgIHBhcmVudF9hdCArPSAnLycKKyAgICAgICAgcmV0dXJuIHNlbGYu
X25leHQocGFyZW50X2F0KQorCisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6CisgICAg
ICAgIF9fZGl2X18gPSBfX3RydWVkaXZfXwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90b3guaW5pCmluZGV4IDFhOTRlYzM0
MDIxNjQxNzU4NGJjNTRiZjM1MjdkOTA5MjA5OTM3ODkuLmM3MmQ3MjgyMzlhMTY0MGYwYmFiZTkx
NmZhOGM0NGY5OWI1MDAyM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdG94LmluaQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RveC5pbmkKQEAgLTUsNyArNSw4IEBAIHNr
aXBfbWlzc2luZ19pbnRlcnByZXRlcnMgPSBGYWxzZQogCiBbdGVzdGVudl0KIGRlcHMgPQotICBw
eXRlc3QKKyAgIyBTYW1lIGFzIHRvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdCwgYWxzbyB0aGUgbGFz
dCB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgUHl0aG9uIDIKKyAgcHl0ZXN0PT00LjYuMTEKICAgcHl0
ZXN0LWNvdgogICAjIG1vY2sgbm8gbG9uZ2VyIHN1cHBvcnRzIFB5dGhvbiAyIHNpbmNlIHY0CiAg
IG1vY2s9PTMuKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL3RveC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdG94LmluaQppbmRleCA4ZTNlMjZlMTM1YjRk
Mzc2YTQ5MmFlYTVhZGJkMjQyNzk3YjAzZmUwLi4yZmVlYzhkMWE0YWI1ZGVjYzQ4YWE4OTIxOWE4
N2M2ZjNjNGNhMmM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdG94LmluaQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdG94LmluaQpAQCAtNSw3ICs1LDgg
QEAgc2tpcF9taXNzaW5nX2ludGVycHJldGVycyA9IEZhbHNlCiAKIFt0ZXN0ZW52XQogZGVwcyA9
Ci0gIHB5dGVzdAorICAjIFNhbWUgYXMgdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0LCBhbHNvIHRo
ZSBsYXN0IHZlcnNpb24gdGhhdCBzdXBwb3J0cyBQeXRob24gMgorICBweXRlc3Q9PTQuNi4xMQog
ICBweXRlc3QtY292CiAgIGh5cG90aGVzaXMKICAgbW9jawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJp
dmVyL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5CmluZGV4IGQ4NjBiOWVh
MjUzM2YwMzJjYTIyN2FlNjNkOGYyMDIyYjZkODk3YzcuLjBlMWE5ZGU5YTY1ZWZiMDNlNDAwYWY4
NGE5NjAxMmMwNTlkMTUyOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9fX2luaXRfXy5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dl
YmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkKQEAgLTYsNiArNiw3IEBAIGZyb20gLmNsaWVu
dCBpbXBvcnQgKAogICAgIEZpbmQsCiAgICAgRnJhbWUsCiAgICAgU2Vzc2lvbiwKKyAgICBTaGFk
b3dSb290LAogICAgIFRpbWVvdXRzLAogICAgIFdpbmRvdykKIGZyb20gLmVycm9yIGltcG9ydCAo
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVu
dC5weQppbmRleCBmNGUzYzc2Mzc5NWU5MDVhODVmM2M0MTk1MWY4NmU1NThiN2MxMDczLi4xOWZl
MzM2YTZlMWViNGQ3NjZmZGZiYTkwY2NmNzI3MWQ4ZTQzOWE0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvY2xpZW50LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9jbGllbnQucHkKQEAgLTExNiwxNCAr
MTE2LDQ5IEBAIGNsYXNzIEFjdGlvblNlcXVlbmNlKG9iamVjdCk6CiAgICAgZGVmIF9rZXlfYWN0
aW9uKHNlbGYsIHN1YnR5cGUsIHZhbHVlKToKICAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQo
eyJ0eXBlIjogc3VidHlwZSwgInZhbHVlIjogdmFsdWV9KQogCi0gICAgZGVmIF9wb2ludGVyX2Fj
dGlvbihzZWxmLCBzdWJ0eXBlLCBidXR0b24pOgotICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVu
ZCh7InR5cGUiOiBzdWJ0eXBlLCAiYnV0dG9uIjogYnV0dG9ufSkKKyAgICBkZWYgX3BvaW50ZXJf
YWN0aW9uKHNlbGYsIHN1YnR5cGUsIGJ1dHRvbj1Ob25lLCB4PU5vbmUsIHk9Tm9uZSwgZHVyYXRp
b249Tm9uZSwgb3JpZ2luPU5vbmUsIHdpZHRoPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICBoZWlnaHQ9Tm9uZSwgcHJlc3N1cmU9Tm9uZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0
aWx0X3g9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbHRfeT1Ob25lLCB0d2lzdD1O
b25lLCBhbHRpdHVkZV9hbmdsZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgorICAgICAgICBh
Y3Rpb24gPSB7CisgICAgICAgICAgICAidHlwZSI6IHN1YnR5cGUKKyAgICAgICAgfQorICAgICAg
ICBpZiBidXR0b24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImJ1dHRvbiJdID0g
YnV0dG9uCisgICAgICAgIGlmIHggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bIngi
XSA9IHgKKyAgICAgICAgaWYgeSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsieSJd
ID0geQorICAgICAgICBpZiBkdXJhdGlvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlv
blsiZHVyYXRpb24iXSA9IGR1cmF0aW9uCisgICAgICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgIGFjdGlvblsib3JpZ2luIl0gPSBvcmlnaW4KKyAgICAgICAgaWYgd2lkdGgg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bIndpZHRoIl0gPSB3aWR0aAorICAgICAg
ICBpZiBoZWlnaHQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImhlaWdodCJdID0g
aGVpZ2h0CisgICAgICAgIGlmIHByZXNzdXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYWN0
aW9uWyJwcmVzc3VyZSJdID0gcHJlc3N1cmUKKyAgICAgICAgaWYgdGFuZ2VudGlhbF9wcmVzc3Vy
ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsidGFuZ2VudGlhbFByZXNzdXJlIl0g
PSB0YW5nZW50aWFsX3ByZXNzdXJlCisgICAgICAgIGlmIHRpbHRfeCBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgIGFjdGlvblsidGlsdFgiXSA9IHRpbHRfeAorICAgICAgICBpZiB0aWx0X3kgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bInRpbHRZIl0gPSB0aWx0X3kKKyAgICAgICAg
aWYgdHdpc3QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bInR3aXN0Il0gPSB0d2lz
dAorICAgICAgICBpZiBhbHRpdHVkZV9hbmdsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFj
dGlvblsiYWx0aXR1ZGVBbmdsZSJdID0gYWx0aXR1ZGVfYW5nbGUKKyAgICAgICAgaWYgYXppbXV0
aF9hbmdsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiYXppbXV0aEFuZ2xlIl0g
PSBhemltdXRoX2FuZ2xlCisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGFjdGlvbikKIAog
ICAgIGRlZiBwYXVzZShzZWxmLCBkdXJhdGlvbik6CiAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBw
ZW5kKHsidHlwZSI6ICJwYXVzZSIsICJkdXJhdGlvbiI6IGR1cmF0aW9ufSkKICAgICAgICAgcmV0
dXJuIHNlbGYKIAotICAgIGRlZiBwb2ludGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9u
ZSwgb3JpZ2luPU5vbmUpOgorICAgIGRlZiBwb2ludGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRp
b249Tm9uZSwgb3JpZ2luPU5vbmUsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lLAorICAgICAgICAg
ICAgICAgICAgICAgcHJlc3N1cmU9Tm9uZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0
X3g9Tm9uZSwgdGlsdF95PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICB0d2lzdD1Ob25lLCBh
bHRpdHVkZV9hbmdsZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgogICAgICAgICAiIiJRdWV1
ZSBhIHBvaW50ZXJNb3ZlIGFjdGlvbi4KIAogICAgICAgICA6cGFyYW0geDogRGVzdGluYXRpb24g
eC1heGlzIGNvb3JkaW5hdGUgb2YgcG9pbnRlciBpbiBDU1MgcGl4ZWxzLgpAQCAtMTMzLDE2ICsx
NjgsMTAgQEAgY2xhc3MgQWN0aW9uU2VxdWVuY2Uob2JqZWN0KToKICAgICAgICAgOnBhcmFtIG9y
aWdpbjogT3JpZ2luIG9mIGNvb3JkaW5hdGVzLCBlaXRoZXIgInZpZXdwb3J0IiwgInBvaW50ZXIi
IG9yCiAgICAgICAgICAgICAgICAgICAgICAgIGFuIEVsZW1lbnQuIElmIE5vbmUsIHJlbW90ZSBl
bmQgZGVmYXVsdHMgdG8gInZpZXdwb3J0Ii4KICAgICAgICAgIiIiCi0gICAgICAgIGFjdGlvbiA9
IHsKLSAgICAgICAgICAgICJ0eXBlIjogInBvaW50ZXJNb3ZlIiwKLSAgICAgICAgICAgICJ4Ijog
eCwKLSAgICAgICAgICAgICJ5IjogeQotICAgICAgICB9Ci0gICAgICAgIGlmIGR1cmF0aW9uIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgYWN0aW9uWyJkdXJhdGlvbiJdID0gZHVyYXRpb24KLSAg
ICAgICAgaWYgb3JpZ2luIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYWN0aW9uWyJvcmlnaW4i
XSA9IG9yaWdpbgotICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZChhY3Rpb24pCisgICAgICAg
IHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJwb2ludGVyTW92ZSIsIHg9eCwgeT15LCBkdXJhdGlvbj1k
dXJhdGlvbiwgb3JpZ2luPW9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk
dGg9d2lkdGgsIGhlaWdodD1oZWlnaHQsIHByZXNzdXJlPXByZXNzdXJlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0YW5nZW50aWFsX3ByZXNzdXJlPXRhbmdlbnRpYWxfcHJlc3N1cmUs
IHRpbHRfeD10aWx0X3gsIHRpbHRfeT10aWx0X3ksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHR3aXN0PXR3aXN0LCBhbHRpdHVkZV9hbmdsZT1hbHRpdHVkZV9hbmdsZSwgYXppbXV0aF9h
bmdsZT1hemltdXRoX2FuZ2xlKQogICAgICAgICByZXR1cm4gc2VsZgogCiAgICAgZGVmIHBvaW50
ZXJfdXAoc2VsZiwgYnV0dG9uPTApOgpAQCAtMTUxLDE2ICsxODAsMjEgQEAgY2xhc3MgQWN0aW9u
U2VxdWVuY2Uob2JqZWN0KToKICAgICAgICAgOnBhcmFtIGJ1dHRvbjogUG9pbnRlciBidXR0b24g
dG8gcGVyZm9ybSBhY3Rpb24gd2l0aC4KICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdDog
MCwgd2hpY2ggcmVwcmVzZW50cyBtYWluIGRldmljZSBidXR0b24uCiAgICAgICAgICIiIgotICAg
ICAgICBzZWxmLl9wb2ludGVyX2FjdGlvbigicG9pbnRlclVwIiwgYnV0dG9uKQorICAgICAgICBz
ZWxmLl9wb2ludGVyX2FjdGlvbigicG9pbnRlclVwIiwgYnV0dG9uPWJ1dHRvbikKICAgICAgICAg
cmV0dXJuIHNlbGYKIAotICAgIGRlZiBwb2ludGVyX2Rvd24oc2VsZiwgYnV0dG9uPTApOgorICAg
IGRlZiBwb2ludGVyX2Rvd24oc2VsZiwgYnV0dG9uPTAsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25l
LCBwcmVzc3VyZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgdGFuZ2VudGlhbF9wcmVzc3Vy
ZT1Ob25lLCB0aWx0X3g9Tm9uZSwgdGlsdF95PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICB0
d2lzdD1Ob25lLCBhbHRpdHVkZV9hbmdsZT1Ob25lLCBhemltdXRoX2FuZ2xlPU5vbmUpOgogICAg
ICAgICAiIiJRdWV1ZSBhIHBvaW50ZXJEb3duIGFjdGlvbiBmb3IgYGJ1dHRvbmAuCiAKICAgICAg
ICAgOnBhcmFtIGJ1dHRvbjogUG9pbnRlciBidXR0b24gdG8gcGVyZm9ybSBhY3Rpb24gd2l0aC4K
ICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdDogMCwgd2hpY2ggcmVwcmVzZW50cyBtYWlu
IGRldmljZSBidXR0b24uCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlv
bigicG9pbnRlckRvd24iLCBidXR0b24pCisgICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJw
b2ludGVyRG93biIsIGJ1dHRvbj1idXR0b24sIHdpZHRoPXdpZHRoLCBoZWlnaHQ9aGVpZ2h0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZT1wcmVzc3VyZSwgdGFuZ2VudGlh
bF9wcmVzc3VyZT10YW5nZW50aWFsX3ByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aWx0X3g9dGlsdF94LCB0aWx0X3k9dGlsdF95LCB0d2lzdD10d2lzdCwgYWx0aXR1ZGVf
YW5nbGU9YWx0aXR1ZGVfYW5nbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF6aW11
dGhfYW5nbGU9YXppbXV0aF9hbmdsZSkKICAgICAgICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBj
bGljayhzZWxmLCBlbGVtZW50PU5vbmUsIGJ1dHRvbj0wKToKQEAgLTMzOCw2ICszNzIsNDIgQEAg
Y2xhc3MgRnJhbWUob2JqZWN0KToKICAgICAgICAgcmV0dXJuIGNscyh1dWlkLCBzZXNzaW9uKQog
CiAKK2NsYXNzIFNoYWRvd1Jvb3Qob2JqZWN0KToKKyAgICBpZGVudGlmaWVyID0gInNoYWRvdy0w
NzViLTRkYTEtYjZiYS1lNTc5YzJkMzIzMGEiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vz
c2lvbiwgaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgQ29uc3RydWN0IGEgbmV3IHNoYWRvdyBy
b290IHJlcHJlc2VudGF0aW9uLgorCisgICAgICAgIDpwYXJhbSBpZDogU2hhZG93IHJvb3QgVVVJ
RCB3aGljaCBtdXN0IGJlIHVuaXF1ZSBhY3Jvc3MKKyAgICAgICAgICAgIGFsbCBicm93c2luZyBj
b250ZXh0cy4KKyAgICAgICAgOnBhcmFtIHNlc3Npb246IEN1cnJlbnQgYGB3ZWJkcml2ZXIuU2Vz
c2lvbmBgLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5pZCA9IGlkCisgICAgICAgIHNlbGYu
c2Vzc2lvbiA9IHNlc3Npb24KKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2pzb24o
Y2xzLCBqc29uLCBzZXNzaW9uKToKKyAgICAgICAgdXVpZCA9IGpzb25bU2hhZG93Um9vdC5pZGVu
dGlmaWVyXQorICAgICAgICByZXR1cm4gY2xzKHV1aWQsIHNlc3Npb24pCisKKyAgICBkZWYgc2Vu
ZF9zaGFkb3dfY29tbWFuZChzZWxmLCBtZXRob2QsIHVyaSwgYm9keT1Ob25lKToKKyAgICAgICAg
dXJsID0gInNoYWRvdy97fS97fSIuZm9ybWF0KHNlbGYuaWQsIHVyaSkKKyAgICAgICAgcmV0dXJu
IHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZChtZXRob2QsIHVybCwgYm9keSkKKwor
ICAgIEBjb21tYW5kCisgICAgZGVmIGZpbmRfZWxlbWVudChzZWxmLCBzdHJhdGVneSwgc2VsZWN0
b3IpOgorICAgICAgICBib2R5ID0geyJ1c2luZyI6IHN0cmF0ZWd5LAorICAgICAgICAgICAgICAg
ICJ2YWx1ZSI6IHNlbGVjdG9yfQorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3NoYWRvd19jb21t
YW5kKCJQT1NUIiwgImVsZW1lbnQiLCBib2R5KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgZmlu
ZF9lbGVtZW50cyhzZWxmLCBzdHJhdGVneSwgc2VsZWN0b3IpOgorICAgICAgICBib2R5ID0geyJ1
c2luZyI6IHN0cmF0ZWd5LAorICAgICAgICAgICAgICAgICJ2YWx1ZSI6IHNlbGVjdG9yfQorICAg
ICAgICByZXR1cm4gc2VsZi5zZW5kX3NoYWRvd19jb21tYW5kKCJQT1NUIiwgImVsZW1lbnRzIiwg
Ym9keSkKKworCiBjbGFzcyBGaW5kKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNl
c3Npb24pOgogICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCkBAIC00NzAsNyArNTQwLDcg
QEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNl
bGYuc2VuZF9jb21tYW5kKCJERUxFVEUiLCAic2Vzc2lvbi8lcyIgJSBzZWxmLnNlc3Npb25faWQp
Ci0gICAgICAgIGV4Y2VwdCBlcnJvci5JbnZhbGlkU2Vzc2lvbklkRXhjZXB0aW9uOgorICAgICAg
ICBleGNlcHQgKE9TRXJyb3IsIGVycm9yLkludmFsaWRTZXNzaW9uSWRFeGNlcHRpb24pOgogICAg
ICAgICAgICAgcGFzcwogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgc2VsZi5zZXNzaW9u
X2lkID0gTm9uZQpAQCAtNzcwLDYgKzg0MCwxMSBAQCBjbGFzcyBFbGVtZW50KG9iamVjdCk6CiAg
ICAgZGVmIHNjcmVlbnNob3Qoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVu
dF9jb21tYW5kKCJHRVQiLCAic2NyZWVuc2hvdCIpCiAKKyAgICBAcHJvcGVydHkKKyAgICBAY29t
bWFuZAorICAgIGRlZiBzaGFkb3dfcm9vdChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vu
ZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJzaGFkb3ciKQorCiAgICAgQGNvbW1hbmQKICAgICBk
ZWYgYXR0cmlidXRlKHNlbGYsIG5hbWUpOgogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1l
bnRfY29tbWFuZCgiR0VUIiwgImF0dHJpYnV0ZS8lcyIgJSBuYW1lKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIv
d2ViZHJpdmVyL2Vycm9yLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5CmluZGV4IDgzNzk2NTZk
NzNkZDcyMjcxNzU1OTA1NGU3MTA0ZmNmZTYwN2NiMGMuLjY0MjYxMjk4NWE4NDE0ODk1N2RiOTg5
M2FhZjQ4NmMxM2UxNjA2NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRy
aXZlci93ZWJkcml2ZXIvZXJyb3IucHkKQEAgLTM0LDYgKzM0LDExIEBAIGNsYXNzIFdlYkRyaXZl
ckV4Y2VwdGlvbihFeGNlcHRpb24pOgogICAgICAgICByZXR1cm4gbWVzc2FnZQogCiAKK2NsYXNz
IERldGFjaGVkU2hhZG93Um9vdEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0
dHBfc3RhdHVzID0gNDA0CisgICAgc3RhdHVzX2NvZGUgPSAiZGV0YWNoZWQgc2hhZG93IHJvb3Qi
CisKKwogY2xhc3MgRWxlbWVudENsaWNrSW50ZXJjZXB0ZWRFeGNlcHRpb24oV2ViRHJpdmVyRXhj
ZXB0aW9uKToKICAgICBodHRwX3N0YXR1cyA9IDQwMAogICAgIHN0YXR1c19jb2RlID0gImVsZW1l
bnQgY2xpY2sgaW50ZXJjZXB0ZWQiCkBAIC0xMTQsNiArMTE5LDExIEBAIGNsYXNzIE5vU3VjaEZy
YW1lRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAgICAgc3RhdHVzX2NvZGUgPSAibm8g
c3VjaCBmcmFtZSIKIAogCitjbGFzcyBOb1N1Y2hTaGFkb3dSb290RXhjZXB0aW9uKFdlYkRyaXZl
ckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMgPSA0MDQKKyAgICBzdGF0dXNfY29kZSA9ICJu
byBzdWNoIHNoYWRvdyByb290IgorCisKIGNsYXNzIE5vU3VjaFdpbmRvd0V4Y2VwdGlvbihXZWJE
cml2ZXJFeGNlcHRpb24pOgogICAgIGh0dHBfc3RhdHVzID0gNDA0CiAgICAgc3RhdHVzX2NvZGUg
PSAibm8gc3VjaCB3aW5kb3ciCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvcHJvdG9jb2wucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRy
aXZlci93ZWJkcml2ZXIvcHJvdG9jb2wucHkKaW5kZXggYzgxMWY2ZjI2ZGI3OTA4Y2FlNTI4ZDA0
ZDI1ZDY4ODI3ODRlNzRhMS4uZDNmYWE4NTA4YjBlMWM5ZmFjNDUwYjAwYmM0ZGFiYmRjMWE5N2I1
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZl
ci9wcm90b2NvbC5weQpAQCAtMjIsNiArMjIsOCBAQCBjbGFzcyBFbmNvZGVyKGpzb24uSlNPTkVu
Y29kZXIpOgogICAgICAgICAgICAgcmV0dXJuIHt3ZWJkcml2ZXIuRnJhbWUuaWRlbnRpZmllcjog
b2JqLmlkfQogICAgICAgICBlbGlmIGlzaW5zdGFuY2Uob2JqLCB3ZWJkcml2ZXIuV2luZG93KToK
ICAgICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVyLkZyYW1lLmlkZW50aWZpZXI6IG9iai5pZH0K
KyAgICAgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwgd2ViZHJpdmVyLlNoYWRvd1Jvb3QpOgorICAg
ICAgICAgICAgcmV0dXJuIHt3ZWJkcml2ZXIuU2hhZG93Um9vdC5pZGVudGlmaWVyOiBvYmouaWR9
CiAgICAgICAgIHJldHVybiBzdXBlcihFbmNvZGVyLCBzZWxmKS5kZWZhdWx0KG9iaikKIAogCkBA
IC00MCw2ICs0Miw4IEBAIGNsYXNzIERlY29kZXIoanNvbi5KU09ORGVjb2Rlcik6CiAgICAgICAg
ICAgICByZXR1cm4gd2ViZHJpdmVyLkZyYW1lLmZyb21fanNvbihwYXlsb2FkLCBzZWxmLnNlc3Np
b24pCiAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShwYXlsb2FkLCBkaWN0KSBhbmQgd2ViZHJpdmVy
LldpbmRvdy5pZGVudGlmaWVyIGluIHBheWxvYWQ6CiAgICAgICAgICAgICByZXR1cm4gd2ViZHJp
dmVyLldpbmRvdy5mcm9tX2pzb24ocGF5bG9hZCwgc2VsZi5zZXNzaW9uKQorICAgICAgICBlbGlm
IGlzaW5zdGFuY2UocGF5bG9hZCwgZGljdCkgYW5kIHdlYmRyaXZlci5TaGFkb3dSb290LmlkZW50
aWZpZXIgaW4gcGF5bG9hZDoKKyAgICAgICAgICAgIHJldHVybiB3ZWJkcml2ZXIuU2hhZG93Um9v
dC5mcm9tX2pzb24ocGF5bG9hZCwgc2VsZi5zZXNzaW9uKQogICAgICAgICBlbGlmIGlzaW5zdGFu
Y2UocGF5bG9hZCwgZGljdCk6CiAgICAgICAgICAgICByZXR1cm4ge2s6IHNlbGYub2JqZWN0X2hv
b2sodikgZm9yIGssIHYgaW4gaXRlcml0ZW1zKHBheWxvYWQpfQogICAgICAgICByZXR1cm4gcGF5
bG9hZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9ydC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZl
ci90cmFuc3BvcnQucHkKaW5kZXggZTgzNmIxOWExNThkNWQ5OWQzZjg3ZDMxNGVjOTViYTc3ZGYx
MzBhZC4uMzMxNDJkMzBmY2UwMGM4NWJhZmZmM2ZhNjJlYWRiN2NjMDc3MmZlOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJk
cml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9ydC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdHJhbnNwb3J0
LnB5CkBAIC0xNDUsNyArMTQ1LDEyIEBAIGNsYXNzIEhUVFBXaXJlUHJvdG9jb2wob2JqZWN0KToK
ICAgICBkZWYgY2xvc2Uoc2VsZik6CiAgICAgICAgICIiIkNsb3NlcyB0aGUgY3VycmVudCBIVFRQ
IGNvbm5lY3Rpb24sIGlmIHRoZXJlIGlzIG9uZS4iIiIKICAgICAgICAgaWYgc2VsZi5fY29ubjoK
LSAgICAgICAgICAgIHNlbGYuX2Nvbm4uY2xvc2UoKQorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIHNlbGYuX2Nvbm4uY2xvc2UoKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6
CisgICAgICAgICAgICAgICAgIyBUaGUgcmVtb3RlIGNsb3NlZCB0aGUgY29ubmVjdGlvbgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5fY29ubiA9IE5vbmUKIAogICAgIEBwcm9w
ZXJ0eQogICAgIGRlZiBjb25uZWN0aW9uKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYnJvd3Nlci5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2Jyb3dz
ZXIucHkKaW5kZXggNzI2ZDU1OThmNTI0NTM5YmNlYjEzMWQyMzBiN2EwMmJlZDM2MzYxYy4uODAw
MDgwZTkxZTZkNDIzNjU4YWNiMmQ2OWRjYTE1N2M1NjIzYzY4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYnJvd3Nlci5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC9icm93c2VyLnB5CkBAIC01NjEsNyArNTYxLDcgQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXIp
OgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX25pZ2h0bHlfYmluYXJ5KGRlc3QpCiAKICAgICBk
ZWYgaW5zdGFsbF9tb2pvanMoc2VsZiwgZGVzdCwgY2hhbm5lbCwgYnJvd3Nlcl9iaW5hcnkpOgot
ICAgICAgICBpZiBjaGFubmVsID09ICJuaWdodGx5IjoKKyAgICAgICAgaWYgY2hhbm5lbCA9PSAi
bmlnaHRseSIgb3IgY2hhbm5lbCA9PSAiY2FuYXJ5IjoKICAgICAgICAgICAgIHVybCA9IHNlbGYu
X2xhdGVzdF9jaHJvbWl1bV9zbmFwc2hvdF91cmwoKSArICJtb2pvanMuemlwIgogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgY2hyb21lX3ZlcnNpb24gPSBzZWxmLnZlcnNpb24oYmluYXJ5PWJy
b3dzZXJfYmluYXJ5KQpAQCAtNjQ2LDEwICs2NDYsMTAgQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXIp
OgogICAgICAgICAgICAgIyBObyBDYW5hcnkgb24gTGludXguCiAgICAgICAgICAgICByZXR1cm4g
ZmluZF9leGVjdXRhYmxlKG5hbWUpCiAgICAgICAgIGlmIHVuYW1lWzBdID09ICJEYXJ3aW4iOgot
ICAgICAgICAgICAgaWYgY2hhbm5lbCA9PSAiY2FuYXJ5IjoKLSAgICAgICAgICAgICAgICByZXR1
cm4gIi9BcHBsaWNhdGlvbnMvR29vZ2xlIENocm9tZSBDYW5hcnkuYXBwL0NvbnRlbnRzL01hY09T
L0dvb2dsZSBDaHJvbWUgQ2FuYXJ5IgotICAgICAgICAgICAgIyBBbGwgb3RoZXIgY2hhbm5lbHMg
c2hhcmUgdGhlIHNhbWUgcGF0aCBvbiBtYWNPUy4KLSAgICAgICAgICAgIHJldHVybiAiL0FwcGxp
Y2F0aW9ucy9Hb29nbGUgQ2hyb21lLmFwcC9Db250ZW50cy9NYWNPUy9Hb29nbGUgQ2hyb21lIgor
ICAgICAgICAgICAgc3VmZml4ID0gIiIKKyAgICAgICAgICAgIGlmIGNoYW5uZWwgaW4gKCJiZXRh
IiwgImRldiIsICJjYW5hcnkiKToKKyAgICAgICAgICAgICAgICBzdWZmaXggPSAiICIgKyBjaGFu
bmVsLmNhcGl0YWxpemUoKQorICAgICAgICAgICAgcmV0dXJuICIvQXBwbGljYXRpb25zL0dvb2ds
ZSBDaHJvbWUlcy5hcHAvQ29udGVudHMvTWFjT1MvR29vZ2xlIENocm9tZSVzIiAlIChzdWZmaXgs
IHN1ZmZpeCkKICAgICAgICAgaWYgdW5hbWVbMF0gPT0gIldpbmRvd3MiOgogICAgICAgICAgICAg
cGF0aCA9IG9zLnBhdGguZXhwYW5kdmFycyhyIiRTWVNURU1EUklWRVxQcm9ncmFtIEZpbGVzICh4
ODYpXEdvb2dsZVxDaHJvbWVcQXBwbGljYXRpb25cY2hyb21lLmV4ZSIpCiAgICAgICAgICAgICBp
ZiBub3Qgb3MucGF0aC5leGlzdHMocGF0aCk6CkBAIC03ODUsOCArNzg1LDggQEAgY2xhc3MgQ2hy
b21lKEJyb3dzZXIpOgogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHZlcnNpb25fc3RyaW5n
ID0gY2FsbChiaW5hcnksICItLXZlcnNpb24iKS5zdHJpcCgpCi0gICAgICAgIGV4Y2VwdCBzdWJw
cm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5p
bmcoIkZhaWxlZCB0byBjYWxsICVzIiAlIGJpbmFyeSkKKyAgICAgICAgZXhjZXB0IChzdWJwcm9j
ZXNzLkNhbGxlZFByb2Nlc3NFcnJvciwgT1NFcnJvcikgYXMgZToKKyAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVzOiAlcyIgJSAoYmluYXJ5LCBlKSkKICAg
ICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIG0gPSByZS5tYXRjaChyIig/Okdvb2dsZSBD
aHJvbWV8Q2hyb21pdW0pICguKikiLCB2ZXJzaW9uX3N0cmluZykKICAgICAgICAgaWYgbm90IG06
CkBAIC04MDAsOCArODAwLDggQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXIpOgogCiAgICAgICAgIHRy
eToKICAgICAgICAgICAgIHZlcnNpb25fc3RyaW5nID0gY2FsbCh3ZWJkcml2ZXJfYmluYXJ5LCAi
LS12ZXJzaW9uIikuc3RyaXAoKQotICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9j
ZXNzRXJyb3I6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gY2Fs
bCAlcyIgJSB3ZWJkcml2ZXJfYmluYXJ5KQorICAgICAgICBleGNlcHQgKHN1YnByb2Nlc3MuQ2Fs
bGVkUHJvY2Vzc0Vycm9yLCBPU0Vycm9yKSBhcyBlOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIu
d2FybmluZygiRmFpbGVkIHRvIGNhbGwgJXM6ICVzIiAlICh3ZWJkcml2ZXJfYmluYXJ5LCBlKSkK
ICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIG0gPSByZS5tYXRjaChyIkNocm9tZURy
aXZlciAoWzAtOV1bMC05Ll0qKSIsIHZlcnNpb25fc3RyaW5nKQogICAgICAgICBpZiBub3QgbToK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXF1aXJlbWVudHMudHh0CmluZGV4IDkwZDBjYjZj
ZGM4Nzk1YzliMzllNzY0NGZkMzMwMjgzNjUzYjQ4ZTQuLmEzODc1NDRmMzQ3NWNjODhmOTNjYTEz
YmExMzQyMmNmMWYyMDgxOTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3JlcXVpcmVtZW50cy50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmVxdWlyZW1l
bnRzLnR4dApAQCAtMSwyICsxLDIgQEAKLXJlcXVlc3RzPT0yLjI0LjAKK3JlcXVlc3RzPT0yLjI1
LjEKIG1vemluZm89PTEuMi4xICAjIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MjEyMjYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1bi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1bi5weQppbmRleCA1NjFiOGU4NWFh
NzNmMTU2ODU0ZmUyYmEyOTIxNjRhMjg1ZTkyOGVjLi4zZDM4MGVhYjVjYmRiMDBmZmM2MTJkZWRj
NTk1MzEwZjdkMGU2MGExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9ydW4ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5CkBAIC0yNDgsNyArMjQ4
LDcgQEAgQ29uc2lkZXIgaW5zdGFsbGluZyBjZXJ0dXRpbCB2aWEgeW91ciBPUyBwYWNrYWdlIG1h
bmFnZXIgb3IgZGlyZWN0bHkuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYW5uZWw9a3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSkKICAg
ICAgICAgICAgIGt3YXJnc1sicHJlZnNfcm9vdCJdID0gcHJlZnNfcm9vdAogCi0gICAgICAgIGlm
IGt3YXJnc1siaGVhZGxlc3MiXSBpcyBOb25lOgorICAgICAgICBpZiBrd2FyZ3NbImhlYWRsZXNz
Il0gaXMgTm9uZSBhbmQgbm90IGt3YXJnc1siZGVidWdfdGVzdCJdOgogICAgICAgICAgICAga3dh
cmdzWyJoZWFkbGVzcyJdID0gVHJ1ZQogICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlJ1bm5pbmcg
aW4gaGVhZGxlc3MgbW9kZSwgcGFzcyAtLW5vLWhlYWRsZXNzIHRvIGRpc2FibGUiKQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC90ZXN0ZmlsZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMucHkKaW5kZXggNGQxMDg3OGQ5ZDVmNTczMTBmZTBk
NzMwMGQzMTJmY2FlNjdmMTkzYy4uZmVlMTljZDFjNDk3NjlmOTcyZTg4NTZhM2IyOWZlYmE3NzEz
YjBhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvdGVzdGZpbGVzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5weQpAQCAtMiw2ICsyLDcg
QEAgaW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgcmUK
K2ltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc3lzCiAKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0
IE9yZGVyZWREaWN0CkBAIC03Niw4ICs3NywxOSBAQCBkZWYgYnJhbmNoX3BvaW50KCk6CiAgICAg
ICAgICAgICAgICAgICAgICBpZiBpdGVtIGFuZCBpdGVtICE9ICJeJXMiICUgaGVhZF0KIAogICAg
ICAgICAjIGdldCBhbGwgY29tbWl0cyBvbiBIRUFEIGJ1dCBub3QgcmVhY2hhYmxlIGZyb20gYW55
dGhpbmcgaW4gbm90X2hlYWRzCi0gICAgICAgIGNvbW1pdHMgPSBnaXQoInJldi1saXN0IiwgIi0t
dG9wby1vcmRlciIsICItLXBhcmVudHMiLCAiSEVBRCIsICpub3RfaGVhZHMpCisgICAgICAgIGNt
ZCA9IFsiZ2l0IiwgInJldi1saXN0IiwgIi0tdG9wby1vcmRlciIsICItLXBhcmVudHMiLCAiLS1z
dGRpbiIsICJIRUFEIl0KKyAgICAgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oY21kLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN3ZD13cHRfcm9vdCkKKyAgICAgICAgY29tbWl0
c19ieXRlcywgXyA9IHByb2MuY29tbXVuaWNhdGUoYiJcbiIuam9pbihpdGVtLmVuY29kZSgiYXNj
aWkiKSBmb3IgaXRlbSBpbiBub3RfaGVhZHMpKQorICAgICAgICBpZiBwcm9jLnJldHVybmNvZGUg
IT0gMDoKKyAgICAgICAgICAgIHJhaXNlIHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKHBy
b2MucmV0dXJuY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbW1pdHNfYnl0ZXMpCisKICAgICAgICAgY29tbWl0X3BhcmVudHMgPSBPcmRlcmVkRGlj
dCgpICAjIHR5cGU6IERpY3RbVGV4dCwgTGlzdFtUZXh0XV0KKyAgICAgICAgY29tbWl0cyA9IGNv
bW1pdHNfYnl0ZXMuZGVjb2RlKCJhc2NpaSIpCiAgICAgICAgIGlmIGNvbW1pdHM6CiAgICAgICAg
ICAgICBmb3IgbGluZSBpbiBjb21taXRzLnNwbGl0KCJcbiIpOgogICAgICAgICAgICAgICAgIGxp
bmVfY29tbWl0cyA9IGxpbmUuc3BsaXQoIiAiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9icm93c2Vy
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvdGVzdHMvdGVzdF9icm93c2VyLnB5CmluZGV4IDNkNWYyZDNhZTZmYWFiNzRlOWFmN2U3MjFl
ZTRlMjcyMDhmNTJhYjEuLjBlY2M2ZDk3YzgwMzA1YTRiZjcwNTRiODJiNjE1ZTNkNGQ4M2U5OGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L3Rlc3RzL3Rlc3RfYnJvd3Nlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X2Jyb3dzZXIucHkK
QEAgLTEsOSArMSwxNCBAQAoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBpbnNwZWN0CiBpbXBvcnQg
bW9jaworaW1wb3J0IG9zCitpbXBvcnQgcHl0ZXN0CiBpbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0
IGxvZ2dpbmcKIGltcG9ydCBzeXMKLWltcG9ydCBweXRlc3QKLWltcG9ydCBpbnNwZWN0CisKK2hl
cmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCityb290ID0gb3MucGF0aC5hYnNwYXRoKG9z
LnBhdGguam9pbihoZXJlLCAiLi4iLCAiLi4iLCAiLi4iKSkKK3N5cy5wYXRoLmluc2VydCgwLCBy
b290KQogCiBmcm9tIHRvb2xzLndwdCBpbXBvcnQgYnJvd3NlcgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90
ZXN0X2luc3RhbGwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X2luc3RhbGwucHkKaW5kZXggZDFhYmJlZDE0MmViNWFm
NjA2ZTYwNjA1Nzc4NjA5MmRkMWYwMWE3ZC4uNDE5MTc1ZmMwMTljZGU5MWYyMjhjZDUzYTQ3MDc1
NmVjMzMzYTIwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9pbnN0YWxsLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3Rf
aW5zdGFsbC5weQpAQCAtNCw2ICs0LDEwIEBAIGltcG9ydCBzeXMKIAogaW1wb3J0IHB5dGVzdAog
CitoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQorcm9vdCA9IG9zLnBhdGguYWJzcGF0
aChvcy5wYXRoLmpvaW4oaGVyZSwgIi4uIiwgIi4uIiwgIi4uIikpCitzeXMucGF0aC5pbnNlcnQo
MCwgcm9vdCkKKwogZnJvbSB0b29scy53cHQgaW1wb3J0IGJyb3dzZXIsIHV0aWxzLCB3cHQKIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdC90ZXN0cy90ZXN0X21hcmtkb3duLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9tYXJrZG93bi5weQpp
bmRleCBkZWM5YWQ5YzQ4OTA2NzY2NjI0ZWM1OTRjOTk0ZDUyZTcwYzk2ZmEwLi41ODJmNzJkZTY5
ZTMxMjUyZGE5MWQyNWQ3NDU3ZjdhYjU2ZmFhZWM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X21hcmtk
b3duLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L3Rlc3RzL3Rlc3RfbWFya2Rvd24ucHkKQEAgLTEsMyArMSwxMCBAQAoraW1wb3J0
IG9zCitpbXBvcnQgc3lzCisKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCityb290
ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCAiLi4iLCAiLi4iLCAiLi4iKSkK
K3N5cy5wYXRoLmluc2VydCgwLCByb290KQorCiBmcm9tIHRvb2xzLndwdCBpbXBvcnQgbWFya2Rv
d24KIAogZGVmIHRlc3RfZm9ybWF0X2NvbW1lbnRfdGl0bGUoKToKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rl
c3RfcmV2bGlzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfcmV2bGlzdC5weQppbmRleCAzMDIwOGY0Y2Y2OGQ3OTU5
NjZlNzg1OGRhYTA3MzBiNjhmYTNlOTBiLi5iOTlkZjY4YjQ4ZWUzZmZiYTM5ZmRjYjA3NDlmMjlh
YzdmZTFjYjI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3Jldmxpc3QucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9y
ZXZsaXN0LnB5CkBAIC0xLDQgKzEsMTEgQEAKIGltcG9ydCBtb2NrCitpbXBvcnQgb3MKK2ltcG9y
dCBzeXMKKworaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIuLiIsICIuLiIpKQorc3lzLnBhdGgu
aW5zZXJ0KDAsIHJvb3QpCisKIGZyb20gdG9vbHMud3B0IGltcG9ydCByZXZsaXN0CiAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvdGVzdHMvdGVzdF9ydW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3J1bi5weQppbmRleCBkNTMzOTc3ZTBj
NzQzNjAxMGVjOWQ4MWM4MjZkZDZmODQ1M2E5Nzg1Li5kYWY3MGJiOTQ3MGQ1NTVjNjBmZjkzNDFh
M2Q5MzlmOTYzODQzYjFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3J1bi5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0
X3J1bi5weQpAQCAtMSwxMCArMSwxNSBAQAogaW1wb3J0IG1vY2sKK2ltcG9ydCBvcwogaW1wb3J0
IHRlbXBmaWxlCiBpbXBvcnQgc2h1dGlsCiBpbXBvcnQgc3lzCiAKIGltcG9ydCBweXRlc3QKIAor
aGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgo
b3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIuLiIsICIuLiIpKQorc3lzLnBhdGguaW5zZXJ0KDAs
IHJvb3QpCisKIGZyb20gdG9vbHMud3B0IGltcG9ydCBydW4KIGZyb20gdG9vbHMgaW1wb3J0IGxv
Y2FscGF0aHMgICMgbm9xYTogRjQwMQogZnJvbSB3cHRydW5uZXIuYnJvd3NlcnMgaW1wb3J0IHBy
b2R1Y3RfbGlzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF90ZXN0ZmlsZXMucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3Rl
c3RmaWxlcy5weQppbmRleCBjNGQ0MGZmOWZkMGYwMGE0ZmE0MzVkZGZmMzUzMjM0MTc4NTQyZWI4
Li5mOTNmZThkOGJhMWVkODcxOGY4MzAzMDIxZWU2OWEwN2MxOTE2MTBlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0
cy90ZXN0X3Rlc3RmaWxlcy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3Rlc3RmaWxlcy5weQpAQCAtMSw1ICsx
LDEwIEBACiBpbXBvcnQgb3MucGF0aAogZnJvbSBtb2NrIGltcG9ydCBwYXRjaAoraW1wb3J0IHN5
cworCitoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQorcm9vdCA9IG9zLnBhdGguYWJz
cGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgIi4uIiwgIi4uIiwgIi4uIikpCitzeXMucGF0aC5pbnNl
cnQoMCwgcm9vdCkKIAogZnJvbSB0b29scy5tYW5pZmVzdC5tYW5pZmVzdCBpbXBvcnQgTWFuaWZl
c3QKIGZyb20gdG9vbHMud3B0IGltcG9ydCB0ZXN0ZmlsZXMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3Rf
d3B0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvdGVzdHMvdGVzdF93cHQucHkKaW5kZXggNzQyNDZmYWZkZDc3NzgzNTZlNzBhY2NkM2Nh
OThhOWFkYjIzNzM3My4uZWUzMzhhMzNmODMwNTNmOWZlM2U4M2JkNDlmNDhiM2U3ZThhNTA2OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvdGVzdHMvdGVzdF93cHQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF93cHQucHkKQEAgLTE1LDEw
ICsxNSwxMSBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CiAKIGltcG9ydCBweXRlc3QKIAotZnJvbSB0
b29scy53cHQgaW1wb3J0IHV0aWxzLCB3cHQKLQoraGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2Zp
bGVfXykKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIu
LiIsICIuLiIpKQorc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3QpCiAKLWhlcmUgPSBvcy5wYXRoLmFi
c3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKK2Zyb20gdG9vbHMud3B0IGltcG9ydCB1
dGlscywgd3B0CiAKIAogZGVmIGlzX3BvcnRfODAwMF9pbl91c2UoKToKQEAgLTE4Myw4ICsxODQs
NiBAQCBkZWYgdGVzdF9ydW5femVyb190ZXN0cygpOgogCiBAcHl0ZXN0Lm1hcmsuc2xvdwogQHB5
dGVzdC5tYXJrLnJlbW90ZV9uZXR3b3JrCi1AcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9u
X2luZm8gPj0gKDMsIDgpIGFuZCBzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicsCi0gICAgICAgICAg
ICAgICAgICAgIHJlYXNvbj0ibXVsdGlwcm9jZXNzaW5nIHRlc3QgaGFuZ3MgaW4gUHl0aG9uIDMu
OCBvbiBtYWNPUyAoIzI0ODgwKSIpCiBkZWYgdGVzdF9ydW5fZmFpbGluZ190ZXN0KCk6CiAgICAg
IiIiRmFpbGluZyB0ZXN0cyBzaG91bGQgYmUgcmVwb3J0ZWQgd2l0aCBhIG5vbi16ZXJvIGV4aXQg
c3RhdHVzIHVubGVzcyB0aGUKICAgICBgLS1uby1mYWlsLW9uLXVuZXhwZWN0ZWRgIG9wdGlvbiBo
YXMgYmVlbiBzcGVjaWZpZWQuIiIiCkBAIC0yMDcsOCArMjA2LDYgQEAgZGVmIHRlc3RfcnVuX2Zh
aWxpbmdfdGVzdCgpOgogCiBAcHl0ZXN0Lm1hcmsuc2xvdwogQHB5dGVzdC5tYXJrLnJlbW90ZV9u
ZXR3b3JrCi1AcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDgpIGFu
ZCBzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbj0i
bXVsdGlwcm9jZXNzaW5nIHRlc3QgaGFuZ3MgaW4gUHl0aG9uIDMuOCBvbiBtYWNPUyAoIzI0ODgw
KSIpCiBkZWYgdGVzdF9ydW5fdmVyaWZ5X3Vuc3RhYmxlKHRlbXBfdGVzdCk6CiAgICAgIiIiVW5z
dGFibGUgdGVzdHMgc2hvdWxkIGJlIHJlcG9ydGVkIHdpdGggYSBub24temVybyBleGl0IHN0YXR1
cy4gU3RhYmxlCiAgICAgdGVzdHMgc2hvdWxkIGJlIHJlcG9ydGVkIHdpdGggYSB6ZXJvIGV4aXQg
c3RhdHVzLiIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3RveC5pbmkKaW5kZXggNTA3MTcxMzU1Mzk0ODQz
MjIwNDMzNzJiMTlkYTA4MGE3NjViZDg2ZS4uMDNmNGFiNWFiYTBlYTA3MjQ2MDliOWZkYzgwOTE3
Y2Y2OGVlZWQyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvdG94LmluaQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90b3guaW5pCkBAIC01LDcgKzUsOCBAQCBz
a2lwX21pc3NpbmdfaW50ZXJwcmV0ZXJzID0gRmFsc2UKIAogW3Rlc3RlbnZdCiBkZXBzID0KLSAg
cHl0ZXN0CisgICMgU2FtZSBhcyB0b29scy90aGlyZF9wYXJ0eS9weXRlc3QsIGFsc28gdGhlIGxh
c3QgdmVyc2lvbiB0aGF0IHN1cHBvcnRzIFB5dGhvbiAyCisgIHB5dGVzdD09NC42LjExCiAgIHB5
dGVzdC1jb3YKICAgaHlwb3RoZXNpcwogICAjIG1vY2sgbm8gbG9uZ2VyIHN1cHBvcnRzIFB5dGhv
biAyIHNpbmNlIHY0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93cHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93cHQucHkKaW5kZXggZWZhOTg1YzdjYzE3NDBl
YjBmZDZlNWE4MGY5ZTg5ZTI0Y2Y3NWQzNy4uOWJjNmNlNmNlOWU4OWYzZjBmNDIzZDAxMDgxMTI1
YTRhNmY2YWRlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvd3B0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3dwdC5weQpAQCAtNTAsNyArNTAsMTAgQEAg
ZGVmIHBhcnNlX2FyZ3MoYXJndiwgY29tbWFuZHM9bG9hZF9jb21tYW5kcygpKToKICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlc3Q9InNraXBfdmVudl9zZXR1cCIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJXaGV0aGVyIHRvIHVzZSB0aGUgdmlydHVhbGVudiBhcy1pcy4gTXVzdCBz
ZXQgLS12ZW52IGFzIHdlbGwiKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tZGVidWciLCBh
Y3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJSdW4gdGhlIGRlYnVnZ2VyIGluIGNhc2Ugb2YgYW4g
ZXhjZXB0aW9uIikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXB5MyIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsIGhlbHA9IlJ1biB3aXRoIHB5dGhvbjMiKQorICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoIi0tcHkzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IlJ1biB3aXRoIFB5dGhvbiAzIChyZXF1aXJlcyBhIGBweXRob24zYCBiaW5hcnkgb24g
dGhlIFBBVEgpIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXB5MiIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gd2l0aCBQeXRob24g
MiAocmVxdWlyZXMgYSBgcHl0aG9uMmAgYmluYXJ5IG9uIHRoZSBQQVRIKSIpCiAgICAgc3VicGFy
c2VycyA9IHBhcnNlci5hZGRfc3VicGFyc2VycyhkZXN0PSJjb21tYW5kIikKICAgICBmb3IgY29t
bWFuZCwgcHJvcHMgaW4gaXRlcml0ZW1zKGNvbW1hbmRzKToKICAgICAgICAgc3VicGFyc2Vycy5h
ZGRfcGFyc2VyKGNvbW1hbmQsIGhlbHA9cHJvcHNbImhlbHAiXSwgYWRkX2hlbHA9RmFsc2UpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dAppbmRl
eCA0ODkzZDdiZDYyODk0OWJkY2JlNmY4YmE1NGRhYmExZmQ0NmJkZjNlLi4xZGQ0MTc0NjViYjg4
M2ExZjQ4MDI5NzhhODVjN2EwNzMyYjkwNjE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIGh0bWw1bGli
PT0xLjEKIG1vemluZm89PTEuMi4xICAjIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MjEyMjYKLW1vemxvZz09Ni4xCittb3psb2c9PTcuMS4wCiBtb3pkZWJ1
Zz09MC4yCiAjIFBpbGxvdyA3IHJlcXVpcmVzIFB5dGhvbiAzCiBwaWxsb3c9PTYuMi4yOyBweXRo
b25fdmVyc2lvbiA8PSAnMi43JyAgIyBweXVwOiA8Ny4wCi1waWxsb3c9PTguMC4xOyBweXRob25f
dmVyc2lvbiA+PSAnMy4wJwotdXJsbGliM1tzZWN1cmVdPT0xLjI1LjExCi1yZXF1ZXN0cz09Mi4y
NC4wCitwaWxsb3c9PTguMS4wOyBweXRob25fdmVyc2lvbiA+PSAnMy4wJwordXJsbGliM1tzZWN1
cmVdPT0xLjI2LjIKK3JlcXVlc3RzPT0yLjI1LjEKIHNpeD09MS4xNS4wCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfYW5kcm9pZF93ZWJ2aWV3LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19hbmRy
b2lkX3dlYnZpZXcudHh0CmluZGV4IGU3ZTcxNjFiMTQyNjRhMjljYzVkOWNmNGEyNzVhYmViN2Zj
YmFjZTYuLjg3NDk4MGIzMzhhN2U4NmM4MjI3ZDc2ZmYwNTBiNDdhZjUyNjYxZTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19hbmRyb2lkX3dlYnZpZXcudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19hbmRyb2lkX3dlYnZpZXcudHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAor
bW96cHJvY2Vzcz09MS4yLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKaW5kZXggZTdlNzE2MWIxNDI2NGEyOWNjNWQ5
Y2Y0YTI3NWFiZWI3ZmNiYWNlNi4uODc0OTgwYjMzOGE3ZTg2YzgyMjdkNzZmZjA1MGI0N2FmNTI2
NjFlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX2Nocm9tZS50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pw
cm9jZXNzPT0xLjIuMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQKaW5kZXggZTdlNzE2MWIx
NDI2NGEyOWNjNWQ5Y2Y0YTI3NWFiZWI3ZmNiYWNlNi4uODc0OTgwYjMzOGE3ZTg2YzgyMjdkNzZm
ZjA1MGI0N2FmNTI2NjFlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRy
b2lkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2FuZHJvaWQudHh0CkBAIC0xICsx
IEBACi1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4yLjEKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19jaHJvbWVfaW9zLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfaW9z
LnR4dAppbmRleCBlN2U3MTYxYjE0MjY0YTI5Y2M1ZDljZjRhMjc1YWJlYjdmY2JhY2U2Li44NzQ5
ODBiMzM4YTdlODZjODIyN2Q3NmZmMDUwYjQ3YWY1MjY2MWUwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfY2hyb21lX2lvcy50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9pb3Mu
dHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4yLjEKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdl
LnR4dAppbmRleCAwYTYxMjA4ZDc3YzEyNzlhYzJiMWIzMDE3MDI4NjdmMmQ1ZDBmYzY3Li4wZWY2
NGMyMzJiY2JhMzZmYzg2M2VjNTkxNjhhZjU2Y2Y3OTgyNGRjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfZWRnZS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2UudHh0CkBAIC0xLDIg
KzEsMiBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMi4xCiBzZWxlbml1bT09
My4xNDEuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2VfY2hyb21pdW0udHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX2VkZ2VfY2hyb21pdW0udHh0CmluZGV4IDNmMWVlMWY2YjIwYWM1YTMw
ZDE2MGQ5YzMyMTM1OGQ5M2M2ODFjZWYuLjg3NDk4MGIzMzhhN2U4NmM4MjI3ZDc2ZmYwNTBiNDdh
ZjUyNjYxZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlX2Nocm9taXVtLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZV9jaHJvbWl1bS50eHQKQEAgLTEgKzEgQEAKLW1venBy
b2Nlc3M9PTEuMi4wDQorbW96cHJvY2Vzcz09MS4yLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19lcGlwaGFueS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0CmluZGV4IGU3
ZTcxNjFiMTQyNjRhMjljYzVkOWNmNGEyNzVhYmViN2ZjYmFjZTYuLjg3NDk4MGIzMzhhN2U4NmM4
MjI3ZDc2ZmYwNTBiNDdhZjUyNjYxZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lcGlw
aGFueS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VwaXBoYW55LnR4dApAQCAtMSArMSBAQAot
bW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMi4xCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfZmlyZWZveC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQKaW5kZXgg
OGI0NTcwM2E1NTk2ZWQwZDFmNGFlNTc3YWYzMWI4YWZkMmYwYmM4Zi4uNDMyNDVmOTkyZDRhNDA2
ZWYxNThjMDgwOWZjNGU3NDJhNzM4YzdjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Zp
cmVmb3gudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dApAQCAtMSwxMCArMSwx
MCBAQAogbWFyaW9uZXR0ZV9kcml2ZXI9PTMuMS4wCiBtb3pjcmFzaD09Mi4wLjAKLW1vemluc3Rh
bGw9PTIuMC4wCittb3ppbnN0YWxsPT0yLjAuMQogbW96bGVhaz09MC4yCiBtb3puZXR3b3JrPT0x
LjEuMAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMi4xCiBtb3pwcm9maWxlPT0y
LjUuMAotbW96cnVubmVyPT04LjAuMAorbW96cnVubmVyPT04LjEuMAogbW96dmVyc2lvbj09Mi4z
LjAKLXBzdXRpbD09NS43LjIKK3BzdXRpbD09NS44LjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19pZS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfaWUudHh0CmluZGV4IDBhNjEyMDhkNzdjMTI3
OWFjMmIxYjMwMTcwMjg2N2YyZDVkMGZjNjcuLjBlZjY0YzIzMmJjYmEzNmZjODYzZWM1OTE2OGFm
NTZjZjc5ODI0ZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX2llLnR4dApAQCAtMSwyICsxLDIgQEAKLW1venByb2Nlc3M9PTEuMi4wCitt
b3pwcm9jZXNzPT0xLjIuMQogc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19vcGVyYS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfb3BlcmEudHh0CmluZGV4IDBhNjEy
MDhkNzdjMTI3OWFjMmIxYjMwMTcwMjg2N2YyZDVkMGZjNjcuLjBlZjY0YzIzMmJjYmEzNmZjODYz
ZWM1OTE2OGFmNTZjZjc5ODI0ZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19vcGVyYS50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJhLnR4dApAQCAtMSwyICsxLDIgQEAKLW1venBy
b2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjIuMQogc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFy
aS50eHQKaW5kZXggZTdlNzE2MWIxNDI2NGEyOWNjNWQ5Y2Y0YTI3NWFiZWI3ZmNiYWNlNi4uODc0
OTgwYjMzOGE3ZTg2YzgyMjdkNzZmZjA1MGI0N2FmNTI2NjFlMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX3NhZmFyaS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKQEAg
LTEgKzEgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjIuMQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYXVjZS50eHQK
aW5kZXggMzRjNjZlZTIzOGI2N2Y5YmUzMGNmMjMzMGRmOGQ5NDNmMzc0ZTI0Ny4uZWFlN2VmM2Yw
MDQ4NTIwNzE1NjVlNzY5ZWRkODc4MDkxOTQ4MjliNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX3NhdWNlLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CkBAIC0xLDMgKzEs
MyBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9PTEuMi4xCiBzZWxlbml1bT09My4x
NDEuMAotcmVxdWVzdHM9PTIuMjQuMAorcmVxdWVzdHM9PTIuMjUuMQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX3NlcnZvLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQKaW5kZXgg
ZTdlNzE2MWIxNDI2NGEyOWNjNWQ5Y2Y0YTI3NWFiZWI3ZmNiYWNlNi4uODc0OTgwYjMzOGE3ZTg2
YzgyMjdkNzZmZjA1MGI0N2FmNTI2NjFlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3Nl
cnZvLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0CkBAIC0xICsxIEBACi1tb3pw
cm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4yLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c193ZWJraXQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQKaW5kZXggZTdlNzE2
MWIxNDI2NGEyOWNjNWQ5Y2Y0YTI3NWFiZWI3ZmNiYWNlNi4uODc0OTgwYjMzOGE3ZTg2YzgyMjdk
NzZmZjA1MGI0N2FmNTI2NjFlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nl
c3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjIuMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC5odG1sLmluaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODFhZWYwNDljZDEyMmY3MzMyYzY2ZjVhMDg3OTQ3ZTUxMmE1OWQwZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC5odG1sLmluaQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotW3JlZnRlc3RfYW5kX2ZhaWwuaHRtbF0KLSAgdHlwZTogcmVmdGVzdAotICBleHBlY3Rl
ZDogRkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3lj
bGVfZmFpbC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xl
X2ZhaWwuaHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MmIzM2Y3NzY0
YmRlNmUyYWVhN2JjMmNjZDhiZjM3MzliYWJhZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3lj
bGVfZmFpbC5odG1sLmluaQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotW3JlZnRlc3Rf
Y3ljbGVfZmFpbC5odG1sXQotICB0eXBlOiByZWZ0ZXN0Ci0gIGV4cGVjdGVkOiBGQUlMCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwu
aW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sLmlu
aQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjNkYzMzNjJmYWM0MWJiZThkZWQ0NDU4
OWU4OThlZjU4OWNiMWE4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwu
aW5pCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1bcmVmdGVzdF9tYXRjaF9mYWlsLmh0
bWxdCi0gIHR5cGU6IHJlZnRlc3QKLSAgZXhwZWN0ZWQ6IEZBSUwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbC5pbmkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwuaW5pCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDU1MzM3ZTJkNjVjYjhmMjFkMmNlYWM2MmUzNWNl
N2JiOTlhOTc2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbC5pbmkK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVtyZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRt
bF0KLSAgdHlwZTogcmVmdGVzdAotICBleHBlY3RlZDogRkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbC5pbmkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1sLmluaQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODkzNjI0MWFkMjljZDE2MmY5NjEwNzZjMmJhOGViOTYwZjc2
OThjMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1sLmluaQorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotW3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbF0KLSAgdHlw
ZTogcmVmdGVzdAotICBleHBlY3RlZDogVElNRU9VVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRh
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDBkMWI5YmFkZTk1ZDdiMTAxYzhkYmY1MTU0N2ZmYmFlYzIyNjBjMjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5odG1sLmluaQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotW3JlZnRlc3RfdGltZW91dC5odG1sXQotICB0eXBlOiByZWZ0ZXN0Ci0gIGV4cGVjdGVk
OiBUSU1FT1VUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlZTRmYmI3NjM5NmViMjY0MWIzYTQwZmYxYWZhNDdmYWFl
M2Q4ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5k
X2ZhaWwuaHRtbC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9m
YWlsLmh0bWwuaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFp
bC5odG1sLmluaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2Zh
aWwuaHRtbC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91
dC5odG1sLmluaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRt
bC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLWV4cGVjdGVkLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlMTQ1ZDYwYjU1YjM1MDI2MzlkMTVmMTBkNGQ2
M2E2YjBmNzliN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw0ICswLDAgQEAKLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Ci08
c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L2dyZWVuLXJlZi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVu
LXJlZi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODE2N2Ji
NThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1y
ZWYtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgot
OnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1y
ZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1yZWYuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUxNDVkNjBiNTViMzUwMjYzOWQxNWYxMGQ0ZDYzYTZi
MGY3OWI3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw0ICswLDAgQEAKLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+Ci06
cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4uaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzgxNjdiYjU4ZDU3MWU3NWY1NDkwODE2NmM1NDJhY2E4NDczMWFlYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvZ3JlZW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
PHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWQuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQwZjAx
Njc4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwvc3R5bGU+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3QuaHR0cHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0Lmh0dHBzLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDM4MTY3YmI1OGQ1NzFlNzVmNTQ5MDgxNjZjNTQyYWNhODQ3MzFhZWMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3QuaHR0cHMtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTQ1ZjEwZjM1
ZWI0NzJlYzEzY2M1ZGQyNDdmZjhkZjVjMjY1Mzg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0
dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLTxsaW5rIHJlbD1tYXRjaCBo
cmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpyZWR9Ci08
L3N0eWxlPgotPHNjcmlwdD4KLWlmICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT09ICJodHRw
czoiKSB7Ci0gICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9y
ID0gImdyZWVuIjsKLX0KLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC1leHBl
Y3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGZiOWFhMTUxNzZlNjE5
MWRlZDVlY2NmNDQyZmNmZDZjZGNmNTY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWls
LWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5SZWZ0
ZXN0IGNoYWluIHRoYXQgc2hvdWxkIGZhaWw8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9
cmVkLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5
bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI5NjAxOTUzNTYyMzhmMDM1NDMyMDdlOWU2YTM1OTkzNjFkYWViOTEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRp
dGxlPlJlZnRlc3QgY2hhaW4gdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Ci08bGluayByZWw9bWF0
Y2ggaHJlZj1yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFj
a2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxf
MC1yZWYtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2Fu
ZF9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDJiNjc3ZTAwNjM0YmNkMTZjMzJiYThkMDI5Y2NhYjA0MGYwMTY3ODAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQotPC9zdHls
ZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDRmYjlhYTE1MTc2ZTYxOTFkZWQ1ZWNjZjQ0MmZjZmQ2Y2RjZjU2Ni4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCBjaGFpbiB0aGF0IHNob3VsZCBmYWlsPC90aXRs
ZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZC5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tn
cm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS1leHBlY3Rl
ZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMThiZmQ4ODQ0N2I0ODIxMmFm
MjllNTQ4NjFiYjZkNTA5YTVlMWIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLWV4cGVj
dGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5PUiBtYXRjaCB0
aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfY3lj
bGVfMS1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQot
PC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfY3ljbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NGE4NGEzYjY3NDFlZTQxZmU2MTg3YTliZGM3NjZkNzQ5MjA2YzgzYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF9jeWNsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+
UmVmdGVzdCB3aXRoIGN5Y2xlLCBhbGwgbWF0Y2g8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhy
ZWY9cmVmdGVzdF9jeWNsZV8wLXJlZi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQt
Y29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8wLXJlZi1l
eHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWJlMGI2NDFkZWY2
YmQ3M2EwY2NhNzJmMTdkMzMwNDY0MWI0OGVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xl
XzAtcmVmLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRs
ZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGFsbCBtYXRjaDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2gg
aHJlZj1yZWZ0ZXN0X2N5Y2xlLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xv
cjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1yZWYuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExOGJmZDg4NDQ3YjQ4MjEyYWYyOWU1NDg2MWJiNmQ1MDlh
NWUxYjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1yZWYuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPk9SIG1hdGNoIHRoYXQgc2hvdWxkIHBhc3M8L3Rp
dGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZV8xLXJlZi5odG1sPgotPHN0
eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlXzEtcmVmLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF9jeWNsZV8xLXJlZi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0YTg0YTNiNjc0MWVlNDFmZTYxODdhOWJkYzc2NmQ3NDkyMDZjODNhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGFsbCBtYXRjaDwv
dGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWw+Ci08
c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X2N5Y2xlXzEtcmVmLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5YmUw
YjY0MWRlZjZiZDczYTBjY2E3MmYxN2QzMzA0NjQxYjQ4ZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfY3ljbGVfMS1yZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxl
PlJlZnRlc3Qgd2l0aCBjeWNsZSwgYWxsIG1hdGNoPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBo
cmVmPXJlZnRlc3RfY3ljbGUuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9y
OmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLWV4cGVjdGVk
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4ZTU0OGM0NjIyNTU2MzhhMzJj
NDc0YTE3Nzc1OWZmNmQ3Y2NlYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC1l
eHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVz
dCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Ci08bGluayByZWw9bWlzbWF0Y2ggaHJlZj1yZWZ0
ZXN0X2N5Y2xlX2ZhaWwuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdy
ZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDE3NWU3NmM0Y2M5YmI3NjVmOGZjOGRmYzM0NDU1YWQyZWI5YmM0MDUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Ci08
bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYuaHRtbD4KLTxzdHls
ZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF9jeWNsZV9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE3NWU3NmM0Y2M5YmI3NjVmOGZjOGRmYzM0NDU1YWQyZWI5YmM0
MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi1leHBlY3RlZC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xl
LCBmYWlsczwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWxf
MC1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9z
dHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGM4ZTU0OGM0NjIyNTU2MzhhMzJjNDc0YTE3Nzc1OWZmNmQ3Y2Nl
YWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWlsczwv
dGl0bGU+Ci08bGluayByZWw9bWlzbWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbD4K
LTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF9tYXRjaC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWF0Y2gtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzgxNjdiYjU4ZDU3MWU3NWY1NDkwODE2NmM1NDJhY2E4NDczMWFlYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF9tYXRjaC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X21hdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzM2NjNmMxZWNk
ZjIwMDBlNGIxMTg1NjU2NjE3NjFiODc2YTcyOTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0
Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPnJlbD1tYXRjaCB0
aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+
Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyYjY3N2UwMDYzNGJjZDE2YzMyYmE4ZDAyOWNjYWIwNDBmMDE2NzgwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVk
fQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGE5MjcyZWY3NGRhODczMzdhMDIyM2ZjYjAwZjA1M2NlYmE1ZmI1MmIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NSArMCwwIEBACi08dGl0bGU+cmVsPW1hdGNoIHRoYXQgc2hvdWxkIGZhaWw8L3RpdGxlPgotPGxp
bmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1j
b2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gtZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLWV4cGVjdGVk
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNjc3ZTAwNjM0YmNkMTZjMzJi
YThkMDI5Y2NhYjA0MGYwMTY3ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gtZXhw
ZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qg
e2JhY2tncm91bmQtY29sb3I6cmVkfQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRj
aC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2guaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY1ZmEwNzUwZDgzYjY3NTljMzBlYTQzNGZj
NTA5MjU1MjQ2Y2Y4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+cmVsPW1pc21hdGNoIHRoYXQgc2hvdWxk
IHBhc3M8L3RpdGxlPgotPGxpbmsgcmVsPW1pc21hdGNoIGhyZWY9cmVkLmh0bWw+Ci08c3R5bGU+
Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfbWlzbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3Jl
ZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOGQxNjBjNGZjMjAwY2E5NzYzMWIxODUwNTg0N2Q1MWZkNzYy
YWJhOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5yZWw9bWlzbWF0Y2ggdGhhdCBzaG91bGQgZmFp
bDwvdGl0bGU+Ci08bGluayByZWw9bWlzbWF0Y2ggaHJlZj1ncmVlbi5odG1sPgotPHN0eWxlPgot
OnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X29yXzAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29y
XzAtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI2NzdlMDA2
MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQwZjAxNjc4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9v
cl8wLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzdHlsZT4K
LTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
b3JfMC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfb3JfMC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTUxZGUyMTY0NDEwM2E5M2Y1OWQ0YzU2NTQy
OGNjMmQxNjA2ZTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDYgKzAsMCBAQAotPHRpdGxlPk9SIG1hdGNoIHRoYXQgc2hvdWxkIHBhc3M8L3Rp
dGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Ci08bGluayByZWw9bWF0Y2ggaHJl
Zj1ncmVlbi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08
L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0LWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC1leHBlY3RlZC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGNiYjcxZTBjM2M0Mjg2YzAwZDRjMDFlY2U2
YWIxYTFiZWM2MWI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0LWV4cGVjdGVk
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxodG1sIGNsYXNzPSJyZWZ0ZXN0
LXdhaXQiPgotPHRpdGxlPnJlbD1tYXRjaCB0aGF0IHNob3VsZCB0aW1lIG91dCBpbiB0aGUgcmVm
PC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfcmVmX3RpbWVvdXQtcmVmLmh0
bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWFmNjhmNWNiNWZhMDRjZDM2NWE3MTkxZWVj
ZWFmYTM1Y2MzY2U0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08aHRtbD4KLTx0aXRsZT5yZWw9bWF0Y2ggdGhh
dCBzaG91bGQgdGltZSBvdXQgaW4gdGhlIHJlZjwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJl
Zj1yZWZ0ZXN0X3JlZl90aW1lb3V0LXJlZi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91
bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08
L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjEwZTY3NmJmMDA1MmU3YmNiZTJlOTIxNGE2OTBiM2NlNjY1ZGE4OC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF90aW1lb3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxo
dG1sIGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgotPHRpdGxlPnJlbD1tYXRjaCB0aGF0IHNob3VsZCB0
aW1lb3V0PC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+
Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF93YWl0XzAtZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC1leHBlY3RlZC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjY3N2UwMDYzNGJjZDE2YzMyYmE4ZDAyOWNjYWIw
NDBmMDE2NzgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC1leHBlY3RlZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1j
b2xvcjpyZWR9Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDRmOTI3MTVjNjFlN2Q5MjJhOTQ5NWU5NzM3Yzk5NmU3YzA2YzM3ZDQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyAr
MCwwIEBACi08aHRtbCBjbGFzcz0icmVmdGVzdC13YWl0Ij4KLTx0aXRsZT5yZWw9bWF0Y2ggdGhh
dCBzaG91bGQgZmFpbDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWQuaHRtbD4KLTxz
dHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwvc3R5bGU+Ci08c2NyaXB0Pgot
c2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxl
LmJhY2tncm91bmRDb2xvciA9ICJncmVlbiI7Ci0gIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5j
bGFzc05hbWUgPSAiIjsKLX0sIDIwMDApOwotPC9zY3JpcHQ+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDllZDEwMDgxNDFlY2ViZjVkMzdhYjA0MjI4MWQyNTRlYjA2Y2ZjNGIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4u
aHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWQuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdC5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfYW5kX2ZhaWwtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2FuZF9mYWlsLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9h
bmRfZmFpbF8wLXJlZi1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfYW5kX2ZhaWxfMC1yZWYuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X2N5Y2xlLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVz
dF9jeWNsZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1y
ZWYtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xl
XzAtcmVmLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8xLXJl
Zi1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVf
MS1yZWYuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWwt
ZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2Zh
aWwuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1y
ZWYtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xl
X2ZhaWxfMC1yZWYuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNo
LWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaC5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBlY3Rl
ZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gtZXhwZWN0ZWQuaHRt
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLWV4cGVjdGVkLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLWV4cGVjdGVkLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X3dhaXRfMC1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3Rfd2FpdF8wLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3RveC5pbmkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCmlu
ZGV4IDc5OGY2NGEzZTQyMmU0ZGEwYjRlNGI2ZmUxNWQ2ODZiMjBhZjU3MmUuLmIzOWI1ZWI3ZTk1
YmYzMjdkY2EzOWI2YTMyMjk1MzgxZGEyZDZjOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdG94LmluaQpAQCAtNyw3ICs3LDggQEAgc2tpcF9taXNzaW5nX2ludGVycHJldGVycyA9
IEZhbHNlCiAKIFt0ZXN0ZW52XQogZGVwcyA9Ci0gICAgIHB5dGVzdD49Mi45CisgICAgICMgU2Ft
ZSBhcyB0b29scy90aGlyZF9wYXJ0eS9weXRlc3QsIGFsc28gdGhlIGxhc3QgdmVyc2lvbiB0aGF0
IHN1cHBvcnRzIFB5dGhvbiAyCisgICAgIHB5dGVzdD09NC42LjExCiAgICAgIHB5dGVzdC1jb3YK
ICAgICAgcHl0ZXN0LXhkaXN0CiAgICAgICMgbW9jayBubyBsb25nZXIgc3VwcG9ydHMgUHl0aG9u
IDIgc2luY2UgdjQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dl
YmxheWVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKaW5k
ZXggNjExMDQ1MGI3MjgyYzZjZmE0YWZhY2ExZWMyYjJlZjU4MGY3YTcxNC4uZjY4MzEyZjIzMWJi
YTRmMDhhYmE3ZGVmYmMyNzJhODZlOThhZjI0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Fu
ZHJvaWRfd2VibGF5ZXIucHkKQEAgLTI4LDE0ICsyOCwxNCBAQCBkZWYgY2hlY2tfYXJncygqKmt3
YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAot
ZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3
YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2Rh
dGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmlu
YXJ5Il0sCiAgICAgICAgICAgICAiZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1siZGV2aWNlX3Nlcmlh
bCJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9i
aW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRy
aXZlcl9hcmdzIil9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9j
b25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdz
KGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5m
b19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgIyBVc2UgdXBkYXRl
KCkgdG8gbW9kaWZ5IHRoZSBnbG9iYWwgbGlzdCBpbiBwbGFjZS4KICAgICBfd3B0c2VydmVfcG9y
dHMudXBkYXRlKHNldCgKQEAgLTQzLDcgKzQzLDcgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAg
ICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dzJ10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0cydd
Wyd3c3MnXQogICAgICkpCiAKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jf
a3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBj
aHJvbWVfZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdl
ciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICoqa3dhcmdzKQogICAgIGRlbCBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJd
WyJnb29nOmNocm9tZU9wdGlvbnMiXVsicHJlZnMiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRy
b2lkX3dlYnZpZXcucHkKaW5kZXggZDA3NzM4NzM1MDhmZTdmMzI3YWZlNzUxZDMyZWFkZGJlY2Vh
OWEzZi4uM2NkZTI0OGI0NDY1Y2QxMGE4NmE4MTNkZTg1NTE4MDhjNDJkYmYxOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJ2aWV3LnB5CkBAIC0yOCwxNCArMjgsMTQgQEAgZGVm
IGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZl
cl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2Rh
dGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90
eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJiaW5h
cnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAgImRldmljZV9zZXJpYWwiOiBrd2Fy
Z3NbImRldmljZV9zZXJpYWwiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dh
cmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBr
d2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVz
dF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVm
IGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVf
bWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgog
ICAgICMgVXNlIHVwZGF0ZSgpIHRvIG1vZGlmeSB0aGUgZ2xvYmFsIGxpc3QgaW4gcGxhY2UuCiAg
ICAgX3dwdHNlcnZlX3BvcnRzLnVwZGF0ZShzZXQoCkBAIC00Myw3ICs0Myw3IEBAIGRlZiBleGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLAogICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWyd3cyddICsgc2VydmVy
X2NvbmZpZ1sncG9ydHMnXVsnd3NzJ10KICAgICApKQogCi0gICAgZXhlY3V0b3Jfa3dhcmdzID0g
Y2hyb21lX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCisgICAgZXhl
Y3V0b3Jfa3dhcmdzID0gY2hyb21lX2V4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwg
c2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKICAgICBkZWwgZXhlY3V0b3Jfa3dhcmdz
WyJjYXBhYmlsaXRpZXMiXVsiZ29vZzpjaHJvbWVPcHRpb25zIl1bInByZWZzIl0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvY2hyb21lLnB5CmluZGV4IGZkMjUxYTQzMWMzMDZmM2JiM2IxMmI4NDhmNTQ4ZDhlZmYwN2E0
NjYuLmQzZTI3YTljNWY2NWY3YWE3NTQyNjNjYjU3ODQ2Mjg1ZDI4NTc1NDAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL2Nocm9tZS5weQpAQCAtMjgsMTMgKzI4LDEzIEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdz
KToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1kZWYg
YnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdz
KToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwg
Y29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnki
XSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmlu
YXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2
ZXJfYXJncyIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29u
ZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhs
b2dnZXIsIHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9f
ZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIGV4ZWN1dG9yX2t3YXJn
cyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRy
b2lkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5CmluZGV4IDQ4
NWI5NmYzMWU3ZGVhZmRkZGY4MmZkMzc1YWVhN2Q3NDk3ZTlmYTcuLmQ3ZTNlMjEwMTIxNjlmZGYx
MmU0N2QzYmM4NzU1MmY0NmM3NzljZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9jaHJvbWVfYW5kcm9pZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2Fu
ZHJvaWQucHkKQEAgLTI5LDE0ICsyOSwxNCBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAg
ICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAotZGVmIGJyb3dz
ZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6Citk
ZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZp
ZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7InBhY2thZ2VfbmFtZSI6IGt3YXJnc1sicGFja2Fn
ZV9uYW1lIl0sCiAgICAgICAgICAgICAiZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1siZGV2aWNlX3Nl
cmlhbCJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZl
cl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndl
YmRyaXZlcl9hcmdzIil9CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZl
cl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dh
cmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgIyBVc2UgdXBk
YXRlKCkgdG8gbW9kaWZ5IHRoZSBnbG9iYWwgbGlzdCBpbiBwbGFjZS4KICAgICBfd3B0c2VydmVf
cG9ydHMudXBkYXRlKHNldCgKQEAgLTQ0LDcgKzQ0LDcgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0
ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAg
ICAgICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dzJ10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0
cyddWyd3c3MnXQogICAgICkpCiAKLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0
b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKKyAgICBleGVjdXRvcl9rd2FyZ3Mg
PSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29uZmln
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFu
YWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICoqa3dhcmdzKQogICAgICMgUmVtb3ZlIHVuc3VwcG9ydGVkIG9wdGlvbnMgb24g
bW9iaWxlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9pb3MucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lvcy5weQppbmRleCA2ZGIwMTg4ZTU1ZWJm
ZjhkM2E0MGY5YTE1ZGM3MTQ0MTllZGFjYmViLi5lY2RiYzNhMTc2MjM5MDdkYzliZDk5NTA1ZDFl
NWVlMGJjNzQ3YzdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lv
cy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lvcy5weQpAQCAtMjIsMTIg
KzIyLDEyIEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2Fy
Z3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBl
LCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhs
b2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAg
cmV0dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAog
ICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3Mi
KX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2Fj
aGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0
ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAg
ICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNl
X2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIs
IHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKiprd2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX3Nw
a2lfY2VydHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX3Nwa2lfY2VydHMucHkK
aW5kZXggYzZlNTgzNTgxODgyZGJhYmU4MTc2MDBiMWYxMDQ3ZTQ4YTBkMWRjYi4uNWVlNTE3OTQy
YmUwYmFmMDg1NTM4OTdlYzc3OThlNjk2MmU3MjZhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2Nocm9tZV9zcGtpX2NlcnRzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9jaHJvbWVfc3BraV9jZXJ0cy5weQpAQCAtMiw3ICsyLDcgQEAKICMgRE8gTk9UIEVESVQgTUFO
VUFMTFkuCiAKICMgdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3QucGVtCi1XUFRfRklOR0VS
UFJJTlQgPSAnSGFHamNtZldqY1VSREVua1VFV1oyOFlBa1lvNXRNMTJoeEFNUTJaMzc1MD0nCitX
UFRfRklOR0VSUFJJTlQgPSAnT1hiNE84cGNESThOd3gzS3pxTnVUYkoxWm5mNTJWakVWV2lZWUNq
SGNJTT0nCiAKICMgc2lnbmVkLWV4Y2hhbmdlL3Jlc291cmNlcy8xMjcuMC4wLjEuc3hnLnBlbQog
U1hHX1dQVF9GSU5HRVJQUklOVCA9ICcwUnQ0bVQ2U0pYb2pFTUhUbktubEovaEJLTUJjSTRrdGVC
bGhSMWVUVGRrPScKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkKaW5kZXggYmRiMzdiM2Y4NGMyY2RjNDAxMGE3
YTI4OWE1MzU2NDgyMmEzYTM0Yy4uYjkwODY4NGJiYjNlN2VhZTk5ODIxNzNlZDI2YTlhOWUzOWI2
YjQzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkKQEAgLTM0LDcgKzM0LDcgQEAgZGVmIGNoZWNrX2Fy
Z3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnki
KQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZp
ZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5f
aW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJ3ZWJkcml2ZXJfYmlu
YXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVy
X2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpLAogICAgICAgICAgICAgInRpbWVv
dXRfbXVsdGlwbGllciI6IGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLApAQCAtNDIs
NyArNDIsNyBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBj
b25maWcsICoqa3dhcmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRl
c3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2Rl
ZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hl
X21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToK
ICAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvZWRnZWNocm9taXVtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2VkZ2VjaHJvbWl1bS5weQppbmRleCAwYmNiMThjZGMwY2NhNjQzNzY5MDZlOTE1NmIwN2M0YTlj
YzdkY2RiLi4xZDQ1OTgzYTExZWYwZDNmZGNmYWJkNmU4MWZlMjk3NGFiMmQ2OGViIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZWNocm9taXVtLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9lZGdlY2hyb21pdW0ucHkKQEAgLTEsMTE2ICsxLDExNiBAQAotZnJvbSAu
YmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZw0KLWZyb20g
LmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDENCi1mcm9t
IC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZUNocm9taXVtRHJpdmVyU2VydmVyDQotZnJv
bSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dh
cmdzDQotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZl
clRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDENCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3Fh
OiBGNDAxDQotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmVkZ2VjaHJvbWl1bSBpbXBvcnQgRWRn
ZUNocm9taXVtRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQ0KLQ0KLQ0KLV9fd3B0
cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZWRnZWNocm9taXVtIiwNCi0gICAgICAgICAgICAgICAg
ICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLA0KLSAgICAgICAgICAgICAgICAgImJyb3dzZXIi
OiAiRWRnZUNocm9taXVtQnJvd3NlciIsDQotICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7
InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLA0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRv
ciIsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJFZGdlQ2hyb21p
dW1Ecml2ZXJXZHNwZWNFeGVjdXRvciJ9LA0KLSAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dh
cmdzIjogImJyb3dzZXJfa3dhcmdzIiwNCi0gICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2Fy
Z3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwNCi0gICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjog
ImVudl9leHRyYXMiLA0KLSAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRp
b25zIiwNCi0gICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVv
dXRfbXVsdGlwbGllciIsfQ0KLQ0KLQ0KLWRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToNCi0gICAg
cmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpDQotDQotDQotZGVmIGJyb3dz
ZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6DQot
ICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sDQotICAgICAgICAgICAgIndl
YmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwNCi0gICAgICAgICAg
ICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQ0KLQ0KLQ0K
LWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5h
Z2VyLCBydW5faW5mb19kYXRhLA0KLSAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOg0KLSAg
ICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZl
cl9jb25maWcsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
Y2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICoqa3dhcmdzKQ0KLSAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2Fm
dGVyX2RvbmUiXSA9IFRydWUNCi0gICAgZXhlY3V0b3Jfa3dhcmdzWyJzdXBwb3J0c19lYWdlcl9w
YWdlbG9hZCJdID0gRmFsc2UNCi0NCi0gICAgY2FwYWJpbGl0aWVzID0gew0KLSAgICAgICAgIm1z
OmVkZ2VPcHRpb25zIjogew0KLSAgICAgICAgICAgICJwcmVmcyI6IHsNCi0gICAgICAgICAgICAg
ICAgInByb2ZpbGUiOiB7DQotICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdF9jb250ZW50X3Nl
dHRpbmdfdmFsdWVzIjogew0KLSAgICAgICAgICAgICAgICAgICAgICAgICJwb3B1cHMiOiAxDQot
ICAgICAgICAgICAgICAgICAgICB9DQotICAgICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICB9
LA0KLSAgICAgICAgICAgICJ1c2VBdXRvbWF0aW9uRXh0ZW5zaW9uIjogRmFsc2UsDQotICAgICAg
ICAgICAgImV4Y2x1ZGVTd2l0Y2hlcyI6IFsiZW5hYmxlLWF1dG9tYXRpb24iXSwNCi0gICAgICAg
ICAgICAidzNjIjogVHJ1ZQ0KLSAgICAgICAgfQ0KLSAgICB9DQotDQotICAgIGlmIHRlc3RfdHlw
ZSA9PSAidGVzdGhhcm5lc3MiOg0KLSAgICAgICAgY2FwYWJpbGl0aWVzWyJwYWdlTG9hZFN0cmF0
ZWd5Il0gPSAibm9uZSINCi0NCi0gICAgZm9yIChrd2FyZywgY2FwYWJpbGl0eSkgaW4gWygiYmlu
YXJ5IiwgImJpbmFyeSIpLCAoImJpbmFyeV9hcmdzIiwgImFyZ3MiKV06DQotICAgICAgICBpZiBr
d2FyZ3Nba3dhcmddIGlzIG5vdCBOb25lOg0KLSAgICAgICAgICAgIGNhcGFiaWxpdGllc1sibXM6
ZWRnZU9wdGlvbnMiXVtjYXBhYmlsaXR5XSA9IGt3YXJnc1trd2FyZ10NCi0NCi0gICAgaWYga3dh
cmdzWyJoZWFkbGVzcyJdOg0KLSAgICAgICAgaWYgImFyZ3MiIG5vdCBpbiBjYXBhYmlsaXRpZXNb
Im1zOmVkZ2VPcHRpb25zIl06DQotICAgICAgICAgICAgY2FwYWJpbGl0aWVzWyJtczplZGdlT3B0
aW9ucyJdWyJhcmdzIl0gPSBbXQ0KLSAgICAgICAgaWYgIi0taGVhZGxlc3MiIG5vdCBpbiBjYXBh
YmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl1bImFyZ3MiXToNCi0gICAgICAgICAgICBjYXBhYmls
aXRpZXNbIm1zOmVkZ2VPcHRpb25zIl1bImFyZ3MiXS5hcHBlbmQoIi0taGVhZGxlc3MiKQ0KLQ0K
LSAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzDQotDQot
ICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MNCi0NCi0NCi1kZWYgZW52X2V4dHJhcygqKmt3YXJn
cyk6DQotICAgIHJldHVybiBbXQ0KLQ0KLQ0KLWRlZiBlbnZfb3B0aW9ucygpOg0KLSAgICByZXR1
cm4ge30NCi0NCi0NCi1jbGFzcyBFZGdlQ2hyb21pdW1Ccm93c2VyKEJyb3dzZXIpOg0KLSAgICAi
IiJNaWNyb3NvZnRFZGdlIGlzIGJhY2tlZCBieSBNU0VkZ2VEcml2ZXIsIHdoaWNoIGlzIHN1cHBs
aWVkIHRocm91Z2gNCi0gICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLkVkZ2VDaHJvbWl1bURyaXZl
clNlcnZlcmBgLg0KLSAgICAiIiINCi0NCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
YmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJtc2VkZ2Vkcml2ZXIiLA0KLSAgICAgICAgICAgICAg
ICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6DQotICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJl
c2VudGF0aW9uIG9mIE1pY3Jvc29mdEVkZ2UuICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMN
Ci0gICAgICAgIHRoZSBicm93c2VyIGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIiIiDQotICAg
ICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikNCi0gICAgICAgIHNlbGYuYmluYXJ5
ID0gYmluYXJ5DQotICAgICAgICBzZWxmLnNlcnZlciA9IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZl
cihzZWxmLmxvZ2dlciwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykNCi0NCi0gICAgZGVmIHN0YXJ0KHNlbGYs
ICoqa3dhcmdzKToNCi0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQ0KLQ0K
LSAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6DQotICAgICAgICBzZWxmLnNlcnZlci5z
dG9wKGZvcmNlPWZvcmNlKQ0KLQ0KLSAgICBkZWYgcGlkKHNlbGYpOg0KLSAgICAgICAgcmV0dXJu
IHNlbGYuc2VydmVyLnBpZA0KLQ0KLSAgICBkZWYgaXNfYWxpdmUoc2VsZik6DQotICAgICAgICAj
IFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLA0KLSAg
ICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIg
c2Vzc2lvbg0KLSAgICAgICAgIyBpcyBhY3RpdmUuDQotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2
ZXIuaXNfYWxpdmUoKQ0KLQ0KLSAgICBkZWYgY2xlYW51cChzZWxmKToNCi0gICAgICAgIHNlbGYu
c3RvcCgpDQotDQotICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOg0KLSAgICAgICAgcmV0
dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQ0K
K2Zyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcK
K2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEK
K2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIK
K2Zyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9y
X2t3YXJncworZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRy
aXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5v
cWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JlZGdlY2hyb21pdW0gaW1wb3J0IEVk
Z2VDaHJvbWl1bURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKKworCitfX3dwdHJ1
bm5lcl9fID0geyJwcm9kdWN0IjogImVkZ2VjaHJvbWl1bSIsCisgICAgICAgICAgICAgICAgICJj
aGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJF
ZGdlQ2hyb21pdW1Ccm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0
aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkVkZ2VDaHJvbWl1bURyaXZl
cldkc3BlY0V4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJi
cm93c2VyX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhl
Y3V0b3Jfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJh
cyIsCisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisgICAg
ICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGll
ciIsfQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhrd2Fy
Z3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0
ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorICAgIHJldHVybiB7
ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFy
eSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9h
cmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKworCitkZWYgZXhlY3V0b3Jfa3dh
cmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jf
a3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIs
IHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBU
cnVlCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJzdXBwb3J0c19lYWdlcl9wYWdlbG9hZCJdID0gRmFs
c2UKKworICAgIGNhcGFiaWxpdGllcyA9IHsKKyAgICAgICAgIm1zOmVkZ2VPcHRpb25zIjogewor
ICAgICAgICAgICAgInByZWZzIjogeworICAgICAgICAgICAgICAgICJwcm9maWxlIjogeworICAg
ICAgICAgICAgICAgICAgICAiZGVmYXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogeworICAg
ICAgICAgICAgICAgICAgICAgICAgInBvcHVwcyI6IDEKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidXNlQXV0b21h
dGlvbkV4dGVuc2lvbiI6IEZhbHNlLAorICAgICAgICAgICAgImV4Y2x1ZGVTd2l0Y2hlcyI6IFsi
ZW5hYmxlLWF1dG9tYXRpb24iXSwKKyAgICAgICAgICAgICJ3M2MiOiBUcnVlCisgICAgICAgIH0K
KyAgICB9CisKKyAgICBpZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKKyAgICAgICAgY2Fw
YWJpbGl0aWVzWyJwYWdlTG9hZFN0cmF0ZWd5Il0gPSAibm9uZSIKKworICAgIGZvciAoa3dhcmcs
IGNhcGFiaWxpdHkpIGluIFsoImJpbmFyeSIsICJiaW5hcnkiKSwgKCJiaW5hcnlfYXJncyIsICJh
cmdzIildOgorICAgICAgICBpZiBrd2FyZ3Nba3dhcmddIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgY2FwYWJpbGl0aWVzWyJtczplZGdlT3B0aW9ucyJdW2NhcGFiaWxpdHldID0ga3dhcmdzW2t3
YXJnXQorCisgICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdOgorICAgICAgICBpZiAiYXJncyIgbm90
IGluIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXToKKyAgICAgICAgICAgIGNhcGFiaWxp
dGllc1sibXM6ZWRnZU9wdGlvbnMiXVsiYXJncyJdID0gW10KKyAgICAgICAgaWYgIi0taGVhZGxl
c3MiIG5vdCBpbiBjYXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl1bImFyZ3MiXToKKyAgICAg
ICAgICAgIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVsiYXJncyJdLmFwcGVuZCgiLS1o
ZWFkbGVzcyIpCisKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJp
bGl0aWVzCisKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVmIGVudl9leHRyYXMo
Kiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgIHJl
dHVybiB7fQorCisKK2NsYXNzIEVkZ2VDaHJvbWl1bUJyb3dzZXIoQnJvd3Nlcik6CisgICAgIiIi
TWljcm9zb2Z0RWRnZSBpcyBiYWNrZWQgYnkgTVNFZGdlRHJpdmVyLCB3aGljaCBpcyBzdXBwbGll
ZCB0aHJvdWdoCisgICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLkVkZ2VDaHJvbWl1bURyaXZlclNl
cnZlcmBgLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5
LCB3ZWJkcml2ZXJfYmluYXJ5PSJtc2VkZ2Vkcml2ZXIiLAorICAgICAgICAgICAgICAgICB3ZWJk
cml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlv
biBvZiBNaWNyb3NvZnRFZGdlLiAgVGhlIGBiaW5hcnlgIGFyZ3VtZW50IGdpdmVzCisgICAgICAg
IHRoZSBicm93c2VyIGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIiIiCisgICAgICAgIEJyb3dz
ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQorICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQor
ICAgICAgICBzZWxmLnNlcnZlciA9IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcihzZWxmLmxvZ2dl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRy
aXZlcl9iaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy
Z3M9d2ViZHJpdmVyX2FyZ3MpCisKKyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgorICAg
ICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSkKKworICAgIGRlZiBzdG9wKHNlbGYs
IGZvcmNlPUZhbHNlKToKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3JjZT1mb3JjZSkKKwor
ICAgIGRlZiBwaWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQKKworICAg
IGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25seSBpbmRp
Y2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKKyAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55
dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgorICAgICAgICAjIGlzIGFjdGl2
ZS4KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKKworICAgIGRlZiBjbGVh
bnVwKHNlbGYpOgorICAgICAgICBzZWxmLnN0b3AoKQorCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dz
ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3Vy
bCI6IHNlbGYuc2VydmVyLnVybH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9l
cGlwaGFueS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lcGlwaGFueS5weQppbmRleCBmNmM0
YzYwMmEzOGMwNDM2MzdjZjlkYmM4YmJiNTM1MGVjOTQ1MjdlLi5hMzM4NDQzNmExZDY0M2M2NTc2
ZWJiNzMxZGI1YzQ1OGY4YWQyNjg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
ZXBpcGhhbnkucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VwaXBoYW55LnB5CkBAIC0y
NSw3ICsyNSw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICBwYXNzCiAKIAotZGVm
IGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJn
cyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEs
IGNvbmZpZywgKiprd2FyZ3MpOgogICAgICMgV29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRsYWIu
Z25vbWUub3JnL0dOT01FL2xpYnNvdXAvaXNzdWVzLzE3MgogICAgIHdlYmRyaXZlcl9yZXF1aXJl
ZF9hcmdzID0gWyItLWhvc3Q9MTI3LjAuMC4xIl0KICAgICB3ZWJkcml2ZXJfYXJncyA9IG1heWJl
X2FkZF9hcmdzKHdlYmRyaXZlcl9yZXF1aXJlZF9hcmdzLCBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJf
YXJncyIpKQpAQCAtNDksNyArNDksNyBAQCBkZWYgY2FwYWJpbGl0aWVzKHNlcnZlcl9jb25maWcs
ICoqa3dhcmdzKToKICAgICAgICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBjZXJ0aWZpY2F0ZV9kb21h
aW5fbGlzdChzZXJ2ZXJfY29uZmlnLmRvbWFpbnNfc2V0LCBrd2FyZ3NbImhvc3RfY2VydF9wYXRo
Il0pfX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywg
Y2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2Vy
LCB0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEs
CiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICBleGVjdXRvcl9rd2FyZ3MgPSBi
YXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9f
ZGF0YSwgKiprd2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZv
eC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5CmluZGV4IDc1Y2ViYjlmN2Yx
MDNkYWEwZTM1ZDk2ZmRkYzY3ZDdhMWQ0OWZkMjcuLjgzYTg4M2I5OGI1ZTFhOGU2MzlhYjI1MTY4
ZWJlZDVkZmJlZmMxMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5CkBAIC01MywxMSArNTMs
MTEgQEAgZGVmIGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLCBydW5faW5mb19kYXRh
LCAqKmt3YXJncyk6CiAgICAgaWYga3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXSBpcyBub3Qg
Tm9uZToKICAgICAgICAgcmV0dXJuIGt3YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0KICAgICBp
ZiB0ZXN0X3R5cGUgPT0gInJlZnRlc3QiOgotICAgICAgICBpZiBydW5faW5mb19kYXRhWyJkZWJ1
ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIik6CisgICAgICAgIGlmIHJ1bl9pbmZvX2Rh
dGFbImRlYnVnIl0gb3IgcnVuX2luZm9fZGF0YS5nZXQoImFzYW4iKSBvciBydW5faW5mb19kYXRh
LmdldCgidHNhbiIpOgogICAgICAgICAgICAgcmV0dXJuIDQKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIHJldHVybiAyCi0gICAgZWxpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9p
bmZvX2RhdGEuZ2V0KCJhc2FuIik6CisgICAgZWxpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9y
IHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIikgb3IgcnVuX2luZm9fZGF0YS5nZXQoInRzYW4iKToK
ICAgICAgICAgaWYgcnVuX2luZm9fZGF0YS5nZXQoImNjb3YiKToKICAgICAgICAgICAgIHJldHVy
biA0CiAgICAgICAgIGVsc2U6CkBAIC03Niw3ICs3Niw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dh
cmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJiaW5hcnkiKQogCiAKLWRlZiBicm93c2Vy
X2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVm
IGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAg
ICAgICAgICAgInByZWZzX3Jvb3QiOiBrd2FyZ3NbInByZWZzX3Jvb3QiXSwKICAgICAgICAgICAg
ICJleHRyYV9wcmVmcyI6IGt3YXJnc1siZXh0cmFfcHJlZnMiXSwKQEAgLTEwMSwxMSArMTAxLDEx
IEBAIGRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywg
Kiprd2FyZ3MpOgogICAgICAgICAgICAgImNvbmZpZyI6IGNvbmZpZywKICAgICAgICAgICAgICJi
cm93c2VyX2NoYW5uZWwiOiBrd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdLAogICAgICAgICAgICAg
ImhlYWRsZXNzIjoga3dhcmdzWyJoZWFkbGVzcyJdLAotICAgICAgICAgICAgInByZWxvYWRfYnJv
d3NlciI6IGt3YXJnc1sicHJlbG9hZF9icm93c2VyIl0sCisgICAgICAgICAgICAicHJlbG9hZF9i
cm93c2VyIjoga3dhcmdzWyJwcmVsb2FkX2Jyb3dzZXIiXSBhbmQgbm90IGt3YXJnc1sicGF1c2Vf
YWZ0ZXJfdGVzdCJdIGFuZCBub3Qga3dhcmdzWyJudW1fdGVzdF9ncm91cHMiXSA9PSAxLAogICAg
ICAgICAgICAgInNwZWNpYWxwb3dlcnNfcGF0aCI6IGt3YXJnc1sic3BlY2lhbHBvd2Vyc19wYXRo
Il19CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNh
Y2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwg
dGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAog
ICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFz
ZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2Rh
dGEsCkBAIC0xMzgsNiArMTM4LDE5IEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBz
ZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICBmb3Ig
cHJlZiwgdmFsdWUgaW4ga3dhcmdzWyJleHRyYV9wcmVmcyJdOgogICAgICAgICAgICAgb3B0aW9u
c1sicHJlZnMiXS51cGRhdGUoe3ByZWY6IFByZWZlcmVuY2VzLmNhc3QodmFsdWUpfSkKICAgICAg
ICAgY2FwYWJpbGl0aWVzWyJtb3o6ZmlyZWZveE9wdGlvbnMiXSA9IG9wdGlvbnMKKworICAgICAg
ICAjIFRoaXMgZ2V0cyByZXVzZWQgZm9yIGZpcmVmb3hfYW5kcm9pZCwgYnV0IHRoZSBlbnZpcm9u
bWVudCBzZXR1cAorICAgICAgICAjIGlzbid0IHJlcXVpcmVkIGluIHRoYXQgY2FzZQorICAgICAg
ICBpZiBrd2FyZ3NbImJpbmFyeSJdOgorICAgICAgICAgICAgZW52aXJvbiA9IGdldF9lbnZpcm9u
KGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImJpbmFy
eSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZGVidWdfaW5m
byJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sic3R5bG9fdGhy
ZWFkcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siaGVhZGxl
c3MiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImVuYWJsZV93
ZWJyZW5kZXIiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImNo
YW9zX21vZGVfZmxhZ3MiXSkKKworICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJlbnZpcm9u
Il0gPSBlbnZpcm9uCiAgICAgaWYga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSBpcyBOb25lOgog
ICAgICAgICBjYXBhYmlsaXRpZXNbImFjY2VwdEluc2VjdXJlQ2VydHMiXSA9IFRydWUKICAgICBp
ZiBjYXBhYmlsaXRpZXM6CkBAIC0xNDUsNiArMTU4LDcgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0
ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAg
ICAgZXhlY3V0b3Jfa3dhcmdzWyJkZWJ1ZyJdID0gcnVuX2luZm9fZGF0YVsiZGVidWciXQogICAg
IGV4ZWN1dG9yX2t3YXJnc1siY2NvdiJdID0gcnVuX2luZm9fZGF0YS5nZXQoImNjb3YiLCBGYWxz
ZSkKICAgICBleGVjdXRvcl9rd2FyZ3NbImJyb3dzZXJfdmVyc2lvbiJdID0gcnVuX2luZm9fZGF0
YS5nZXQoImJyb3dzZXJfdmVyc2lvbiIpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJkZWJ1Z190ZXN0
Il0gPSBrd2FyZ3NbImRlYnVnX3Rlc3QiXQogICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKIAog
CkBAIC0xNzksNyArMTkzLDEwIEBAIGRlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgogICAg
ICAgICAgICJ2ZXJpZnkiOiBrd2FyZ3NbInZlcmlmeSJdLAogICAgICAgICAgICJoZWFkbGVzcyI6
IGt3YXJncy5nZXQoImhlYWRsZXNzIiwgRmFsc2UpIG9yICJNT1pfSEVBRExFU1MiIGluIG9zLmVu
dmlyb24sCiAgICAgICAgICAgInN3LWUxMHMiOiBUcnVlLAotICAgICAgICAgICJmaXNzaW9uIjog
a3dhcmdzLmdldCgiZW5hYmxlX2Zpc3Npb24iKSBvciBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLmF1
dG9zdGFydCIpfQorICAgICAgICAgICJmaXNzaW9uIjoga3dhcmdzLmdldCgiZW5hYmxlX2Zpc3Np
b24iKSBvciBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLmF1dG9zdGFydCIpLAorICAgICAgICAgICJz
ZXNzaW9uSGlzdG9yeUluUGFyZW50IjogKGt3YXJncy5nZXQoImVuYWJsZV9maXNzaW9uIikgb3IK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfYm9vbF9wcmVmKCJmaXNz
aW9uLmF1dG9zdGFydCIpIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2V0X2Jvb2xfcHJlZigiZmlzc2lvbi5zZXNzaW9uSGlzdG9yeUluUGFyZW50IikpfQogCiAgICAg
IyBUaGUgdmFsdWUgb2YgYHN3LWUxMHNgIGRlZmF1bHRzIHRvIHdoZXRoZXIgdGhlICJwYXJlbnRf
aW50ZXJjZXB0IgogICAgICMgaW1wbGVtZW50YXRpb24gaXMgZW5hYmxlZCBmb3IgdGhlIGN1cnJl
bnQgYnVpbGQuIFRoaXMgdmFsdWUsIGhvd2V2ZXIsCkBAIC0yMTMsNiArMjMwLDI2IEBAIGRlZiB1
cGRhdGVfcHJvcGVydGllcygpOgogICAgICAgICAgICAgeyJvcyI6IFsidmVyc2lvbiJdLCAicHJv
Y2Vzc29yIjogWyJiaXRzIl19KQogCiAKK2RlZiBnZXRfZW52aXJvbihsb2dnZXIsIGJpbmFyeSwg
ZGVidWdfaW5mbywgc3R5bG9fdGhyZWFkcywgaGVhZGxlc3MsIGVuYWJsZV93ZWJyZW5kZXIsCisg
ICAgICAgICAgICAgICAgY2hhb3NfbW9kZV9mbGFncz1Ob25lKToKKyAgICBlbnYgPSB0ZXN0X2Vu
dmlyb25tZW50KHhyZVBhdGg9b3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShiaW5hcnkp
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnZ2VyPWRlYnVnX2luZm8gaXMgbm90
IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VMU2FuPVRydWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2c9bG9nZ2VyKQorCisgICAgZW52WyJTVFlMT19USFJFQURT
Il0gPSBzdHIoc3R5bG9fdGhyZWFkcykKKyAgICBpZiBjaGFvc19tb2RlX2ZsYWdzIGlzIG5vdCBO
b25lOgorICAgICAgICBlbnZbIk1PWl9DSEFPU01PREUiXSA9IHN0cihjaGFvc19tb2RlX2ZsYWdz
KQorICAgIGlmIGhlYWRsZXNzOgorICAgICAgICBlbnZbIk1PWl9IRUFETEVTUyJdID0gIjEiCisg
ICAgaWYgZW5hYmxlX3dlYnJlbmRlcjoKKyAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0gPSAi
MSIKKyAgICAgICAgZW52WyJNT1pfQUNDRUxFUkFURUQiXSA9ICIxIgorICAgIGVsc2U6CisgICAg
ICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjAiCisgICAgcmV0dXJuIGVudgorCisKIGNsYXNz
IEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIob2JqZWN0KToKICAgICBfX21ldGFjbGFzc19fID0gQUJD
TWV0YQogCkBAIC0yNjgsMjAgKzMwNSw4IEBAIGNsYXNzIEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIo
b2JqZWN0KToKICAgICAgICAgbWFyaW9uZXR0ZV9wb3J0ID0gZ2V0X2ZyZWVfcG9ydCgpCiAgICAg
ICAgIHByb2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsibWFyaW9uZXR0ZS5wb3J0IjogbWFyaW9uZXR0
ZV9wb3J0fSkKIAotICAgICAgICBlbnYgPSB0ZXN0X2Vudmlyb25tZW50KHhyZVBhdGg9b3MucGF0
aC5kaXJuYW1lKHNlbGYuYmluYXJ5KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZWJ1Z2dlcj1zZWxmLmRlYnVnX2luZm8gaXMgbm90IE5vbmUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXNlTFNhbj1UcnVlLCBsb2c9c2VsZi5sb2dnZXIpCi0KLSAgICAgICAgZW52
WyJTVFlMT19USFJFQURTIl0gPSBzdHIoc2VsZi5zdHlsb190aHJlYWRzKQotICAgICAgICBpZiBz
ZWxmLmNoYW9zX21vZGVfZmxhZ3MgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBlbnZbIk1PWl9D
SEFPU01PREUiXSA9IHN0cihzZWxmLmNoYW9zX21vZGVfZmxhZ3MpCi0gICAgICAgIGlmIHNlbGYu
aGVhZGxlc3M6Ci0gICAgICAgICAgICBlbnZbIk1PWl9IRUFETEVTUyJdID0gIjEiCi0gICAgICAg
IGlmIHNlbGYuZW5hYmxlX3dlYnJlbmRlcjoKLSAgICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRF
UiJdID0gIjEiCi0gICAgICAgICAgICBlbnZbIk1PWl9BQ0NFTEVSQVRFRCJdID0gIjEiCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9ICIwIgorICAgICAg
ICBlbnYgPSBnZXRfZW52aXJvbihzZWxmLmxvZ2dlciwgc2VsZi5iaW5hcnksIHNlbGYuZGVidWdf
aW5mbywgc2VsZi5zdHlsb190aHJlYWRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LmhlYWRsZXNzLCBzZWxmLmVuYWJsZV93ZWJyZW5kZXIsIHNlbGYuY2hhb3NfbW9kZV9mbGFncykK
IAogICAgICAgICBhcmdzID0gc2VsZi5iaW5hcnlfYXJnc1s6XSBpZiBzZWxmLmJpbmFyeV9hcmdz
IGVsc2UgW10KICAgICAgICAgYXJncyArPSBbY21kX2FyZygibWFyaW9uZXR0ZSIpLCAiYWJvdXQ6
YmxhbmsiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9p
ZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94X2FuZHJvaWQucHkKaW5kZXggYmVh
MGQ5ZjRlZTMzYWIwNTFiMDBjYmE1YjhhNGFmYzAxN2MzNzUwMS4uNWU5ZGU1NjQ5NjNmNjNlMDEz
YTNmYjYzZmRlZGUxYTk3YTFmNzM4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2ZpcmVmb3hfYW5kcm9pZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveF9h
bmRyb2lkLnB5CkBAIC0zOCw4ICszOCw5IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAg
ICBwYXNzCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwg
Y29uZmlnLCAqKmt3YXJncyk6Ci0gICAgcmV0dXJuIHsicGFja2FnZV9uYW1lIjoga3dhcmdzWyJw
YWNrYWdlX25hbWUiXSwKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIHsiYWRiX2JpbmFyeSI6
IGt3YXJnc1siYWRiX2JpbmFyeSJdLAorICAgICAgICAgICAgInBhY2thZ2VfbmFtZSI6IGt3YXJn
c1sicGFja2FnZV9uYW1lIl0sCiAgICAgICAgICAgICAiZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1si
ZGV2aWNlX3NlcmlhbCJdLAogICAgICAgICAgICAgInByZWZzX3Jvb3QiOiBrd2FyZ3NbInByZWZz
X3Jvb3QiXSwKICAgICAgICAgICAgICJleHRyYV9wcmVmcyI6IGt3YXJnc1siZXh0cmFfcHJlZnMi
XSwKQEAgLTg3LDEwICs4OCwxMCBAQCBkZWYgZW52X29wdGlvbnMoKToKIAogCiBjbGFzcyBQcm9m
aWxlQ3JlYXRvcihGaXJlZm94UHJvZmlsZUNyZWF0b3IpOgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIHByZWZzX3Jvb3QsIGNvbmZpZywgdGVzdF90eXBlLCBleHRyYV9wcmVmcywgZTEw
cywKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcmVmc19yb290LCBjb25maWcsIHRl
c3RfdHlwZSwgZXh0cmFfcHJlZnMsCiAgICAgICAgICAgICAgICAgIGVuYWJsZV9maXNzaW9uLCBi
cm93c2VyX2NoYW5uZWwsIGNlcnR1dGlsX2JpbmFyeSwgY2FfY2VydGlmaWNhdGVfcGF0aCk6CiAg
ICAgICAgIHN1cGVyKFByb2ZpbGVDcmVhdG9yLCBzZWxmKS5fX2luaXRfXyhsb2dnZXIsIHByZWZz
X3Jvb3QsIGNvbmZpZywgdGVzdF90eXBlLCBleHRyYV9wcmVmcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUxMHMsIGVuYWJsZV9maXNzaW9uLCBicm93c2Vy
X2NoYW5uZWwsIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBUcnVlLCBlbmFibGVfZmlzc2lvbiwgYnJvd3Nlcl9jaGFubmVsLCBOb25lLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydHV0aWxfYmluYXJ5LCBj
YV9jZXJ0aWZpY2F0ZV9wYXRoKQogCiAgICAgZGVmIF9zZXRfcmVxdWlyZWRfcHJlZnMoc2VsZiwg
cHJvZmlsZSk6CkBAIC0xMDAsMTEgKzEwMSw5IEBAIGNsYXNzIFByb2ZpbGVDcmVhdG9yKEZpcmVm
b3hQcm9maWxlQ3JlYXRvcik6CiAgICAgICAgICAgICAicGxhY2VzLmhpc3RvcnkuZW5hYmxlZCI6
IEZhbHNlLAogICAgICAgICAgICAgImRvbS5zZW5kX2FmdGVyX3BhaW50X3RvX2NvbnRlbnQiOiBU
cnVlLAogICAgICAgICAgICAgIm5ldHdvcmsucHJlbG9hZCI6IFRydWUsCisgICAgICAgICAgICAi
YnJvd3Nlci50YWJzLnJlbW90ZS5hdXRvc3RhcnQiOiBUcnVlLAogICAgICAgICB9KQogCi0gICAg
ICAgIGlmIHNlbGYuZTEwczoKLSAgICAgICAgICAgIHByb2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsi
YnJvd3Nlci50YWJzLnJlbW90ZS5hdXRvc3RhcnQiOiBUcnVlfSkKLQogICAgICAgICBpZiBzZWxm
LnRlc3RfdHlwZSA9PSAicmVmdGVzdCI6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJT
ZXR0aW5nIGFuZHJvaWQgcmVmdGVzdCBwcmVmZXJlbmNlcyIpCiAgICAgICAgICAgICBwcm9maWxl
LnNldF9wcmVmZXJlbmNlcyh7CkBAIC0xMzAsNyArMTI5LDggQEAgY2xhc3MgRmlyZWZveEFuZHJv
aWRCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAgICAgICAgICBjYV9jZXJ0aWZpY2F0ZV9wYXRo
PU5vbmUsIGUxMHM9RmFsc2UsIGVuYWJsZV93ZWJyZW5kZXI9RmFsc2UsIHN0YWNrZml4X2Rpcj1O
b25lLAogICAgICAgICAgICAgICAgICBiaW5hcnlfYXJncz1Ob25lLCB0aW1lb3V0X211bHRpcGxp
ZXI9Tm9uZSwgbGVha19jaGVjaz1GYWxzZSwgYXNhbj1GYWxzZSwKICAgICAgICAgICAgICAgICAg
c3R5bG9fdGhyZWFkcz0xLCBjaGFvc19tb2RlX2ZsYWdzPU5vbmUsIGNvbmZpZz1Ob25lLCBicm93
c2VyX2NoYW5uZWw9Im5pZ2h0bHkiLAotICAgICAgICAgICAgICAgICBpbnN0YWxsX2ZvbnRzPUZh
bHNlLCB0ZXN0c19yb290PU5vbmUsIHNwZWNpYWxwb3dlcnNfcGF0aD1Ob25lLCAqKmt3YXJncyk6
CisgICAgICAgICAgICAgICAgIGluc3RhbGxfZm9udHM9RmFsc2UsIHRlc3RzX3Jvb3Q9Tm9uZSwg
c3BlY2lhbHBvd2Vyc19wYXRoPU5vbmUsIGFkYl9iaW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAg
ICAgKiprd2FyZ3MpOgogCiAgICAgICAgIHN1cGVyKEZpcmVmb3hBbmRyb2lkQnJvd3Nlciwgc2Vs
ZikuX19pbml0X18obG9nZ2VyKQogICAgICAgICBzZWxmLnByZWZzX3Jvb3QgPSBwcmVmc19yb290
CkBAIC0xNDIsNyArMTQyLDcgQEAgY2xhc3MgRmlyZWZveEFuZHJvaWRCcm93c2VyKEJyb3dzZXIp
OgogICAgICAgICBzZWxmLnN0YWNrd2Fsa19iaW5hcnkgPSBzdGFja3dhbGtfYmluYXJ5CiAgICAg
ICAgIHNlbGYuY2VydHV0aWxfYmluYXJ5ID0gY2VydHV0aWxfYmluYXJ5CiAgICAgICAgIHNlbGYu
Y2FfY2VydGlmaWNhdGVfcGF0aCA9IGNhX2NlcnRpZmljYXRlX3BhdGgKLSAgICAgICAgc2VsZi5l
MTBzID0gZTEwcworICAgICAgICBzZWxmLmUxMHMgPSBUcnVlCiAgICAgICAgIHNlbGYuZW5hYmxl
X3dlYnJlbmRlciA9IGVuYWJsZV93ZWJyZW5kZXIKICAgICAgICAgc2VsZi5zdGFja2ZpeF9kaXIg
PSBzdGFja2ZpeF9kaXIKICAgICAgICAgc2VsZi5iaW5hcnlfYXJncyA9IGJpbmFyeV9hcmdzCkBA
IC0xNTYsMTMgKzE1NiwxMyBAQCBjbGFzcyBGaXJlZm94QW5kcm9pZEJyb3dzZXIoQnJvd3Nlcik6
CiAgICAgICAgIHNlbGYuaW5zdGFsbF9mb250cyA9IGluc3RhbGxfZm9udHMKICAgICAgICAgc2Vs
Zi50ZXN0c19yb290ID0gdGVzdHNfcm9vdAogICAgICAgICBzZWxmLnNwZWNpYWxwb3dlcnNfcGF0
aCA9IHNwZWNpYWxwb3dlcnNfcGF0aAorICAgICAgICBzZWxmLmFkYl9iaW5hcnkgPSBhZGJfYmlu
YXJ5CiAKICAgICAgICAgc2VsZi5wcm9maWxlX2NyZWF0b3IgPSBQcm9maWxlQ3JlYXRvcihsb2dn
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZnNf
cm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25m
aWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90
eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJh
X3ByZWZzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUx
MHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9j
aGFubmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNl
cnR1dGlsX2JpbmFyeSwKQEAgLTIyNSw3ICsyMjUsOSBAQCBjbGFzcyBGaXJlZm94QW5kcm9pZEJy
b3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3ltYm9sc19wYXRoPXNlbGYuc3ltYm9sc19wYXRoLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbD1zZWxmLmRldmljZV9zZXJpYWwsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUT0RPIC0gY2hvb3NlIGFwcHJv
cHJpYXRlIGxvZyBkaXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2dkaXI9b3MuZ2V0Y3dkKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbG9nZGlyPW9zLmdldGN3ZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFkYl9wYXRoPXNlbGYuYWRiX2JpbmFyeSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsaWNpdF9jbGVhbnVwPVRydWUpCiAKICAg
ICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nICVzIiAlIHNlbGYucGFja2FnZV9uYW1l
KQogICAgICAgICAjIGNvbm5lY3QgdG8gYSBydW5uaW5nIGVtdWxhdG9yCkBAIC0yNTcsNyArMjU5
LDcgQEAgY2xhc3MgRmlyZWZveEFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAgICAg
ICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gcmVtb3ZlIGZvcndhcmRlZCBv
ciByZXZlcnNlZCBwb3J0czogJXMiICUgZSkKICAgICAgICAgICAgICMgV2UgYXNzdW1lIHRoYXQg
c3RvcHBpbmcgdGhlIHJ1bm5lciBwcm9tcHRzIHRoZQogICAgICAgICAgICAgIyBicm93c2VyIHRv
IHNodXQgZG93bi4KLSAgICAgICAgICAgIHNlbGYucnVubmVyLnN0b3AoKQorICAgICAgICAgICAg
c2VsZi5ydW5uZXIuY2xlYW51cCgpCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJzdG9wcGVk
IikKIAogICAgIGRlZiBwaWQoc2VsZik6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvaWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkKaW5kZXggNzhjMjJiOTA5YWNm
NDEwMDM4ZmYwNjc2OTM2NjY2MmFiMGM1ODlhMC4uM2E4NmMxYjZjY2I1YWFiZmUyMTAxNThmNmJl
NjEzZjY5MDU0MzM3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weQpAQCAtMTgsMTEgKzE4LDExIEBAIF9fd3B0
cnVubmVyX18gPSB7InByb2R1Y3QiOiAiaWUiLAogZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgog
ICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCi1kZWYgYnJvd3Nl
cl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2Rl
ZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmln
LCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2Vi
ZHJpdmVyX2JpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdl
dCgid2ViZHJpdmVyX2FyZ3MiKX0KIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jf
a3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBy
dW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgb3B0aW9u
cyA9IHt9CiAgICAgb3B0aW9uc1sicmVxdWlyZVdpbmRvd0ZvY3VzIl0gPSBUcnVlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvb3BlcmEucHkKaW5kZXggODA1ZmVkZWU2MzZjZDIyMTU1ZWQxNDNjZjExNDhmM2MyZjVkOThl
Ny4uYTM0ZjQxOTU1MzgzYzA4ZTk4YzRkMzhkNzgwNDIzMWMxN2U5Mjk3YSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9vcGVyYS5weQpAQCAtMjQsMTMgKzI0LDEzIEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToK
ICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1kZWYgYnJv
d3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToK
K2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29u
ZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwK
ICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5
Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJf
YXJncyIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmln
LCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dn
ZXIsIHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0
YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIGZyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9zYWZhcmkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5
CmluZGV4IGNiMmIxNzVkNGRmYmMzMTY2ZTRhZDVhNmFmZTE3NGZmZGJjNmZmOGEuLjMxMmQ0ZGI5
YzYzODJmN2FmZjVjZDc1NzcyZjBlZGY3M2U1Mzg1NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9zYWZhcmkucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5w
eQpAQCAtMjYsMTIgKzI2LDEyIEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1
aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2Fy
Z3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93
c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3
YXJncyk6CiAgICAgcmV0dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVy
X2JpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2Vi
ZHJpdmVyX2FyZ3MiKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVy
X2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2Fy
Z3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9p
bmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICBleGVjdXRvcl9r
d2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwg
cnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvc2F1Y2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkKaW5kZXggYzU3YWM5
NDJlZDRlNzYyNGEwYTdkMTE1ZGYzYTIxMGFlYzVkOWVlMS4uMzQ5N2M1YzI3NzI4OGU1MWY2Njc3
MDAwZTU3MDU3ZWJjZDk5YTIxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3Nh
dWNlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZS5weQpAQCAtOTUsMTMgKzk1
LDEzIEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3Ms
ICJzYXVjZV9rZXkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZv
X2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVz
dF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICBzYXVjZV9jb25m
aWcgPSBnZXRfc2F1Y2VfY29uZmlnKCoqa3dhcmdzKQogCiAgICAgcmV0dXJuIHsic2F1Y2VfY29u
ZmlnIjogc2F1Y2VfY29uZmlnfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBz
ZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9y
X2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwg
cnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIGV4ZWN1
dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZp
ZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5h
Z2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9zZXJ2by5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weQppbmRleCBi
OTQ3NjU0MGFjN2M1MzE2MmU3MDY2OWM0YjdiYTQ4ODNmZDc1Zjc1Li5hNjVlZDVlYWQ0ZTU1YzQ1
Y2ZkN2FhNzkyMWYwNzE3MjE2Y2U2YTQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvc2Vydm8ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5CkBAIC0zMyw3
ICszMyw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2Fy
Z3MsICJiaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZv
X2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVz
dF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4gewog
ICAgICAgICAiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKICAgICAgICAgImRlYnVnX2luZm8i
OiBrd2FyZ3NbImRlYnVnX2luZm8iXSwKQEAgLTQzLDcgKzQzLDcgQEAgZGVmIGJyb3dzZXJfa3dh
cmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgfQog
CiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9t
YW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3Rf
dHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAg
ICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIHJ2ID0gYmFzZV9leGVjdXRvcl9rd2FyZ3Mo
dGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
c2Vydm9kcml2ZXIucHkKaW5kZXggNDM3OTRlNDE3MDZkNmNjYzFmNjg2NjU1YzhlZGVjYTk1ZTNj
NGM2Mi4uZWQ4NWNiZjNiOWJkMDRlYTE5MjY0MWI0ODBhY2U0NGRjNmQ0MzNiZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQpAQCAtMzYsNyArMzYsNyBAQCBkZWYgY2hlY2tfYXJn
cygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiYmluYXJ5IikKIAogCi1kZWYg
YnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdz
KToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwg
Y29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsKICAgICAgICAgImJpbmFyeSI6IGt3YXJn
c1siYmluYXJ5Il0sCiAgICAgICAgICJiaW5hcnlfYXJncyI6IGt3YXJnc1siYmluYXJ5X2FyZ3Mi
XSwKQEAgLTQ3LDcgKzQ3LDcgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2lu
Zm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgfQogCiAKLWRlZiBleGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRh
LCAqKmt3YXJncyk6CitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2
ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CiAgICAg
cnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAq
Kmt3YXJncykKICAgICByZXR1cm4gcnYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy93ZWJraXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CmluZGV4IGRhOTNj
ZjE2NDM5OTVkOTViOGQ2ZGUxZjcwYzc3MzFiNTU1OTc2OGIuLjU5MGU0NzJhY2E5NjFiODY1YmYw
ZGJjODM2Yzk0MmY2MmI1MDZhZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93
ZWJraXQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdC5weQpAQCAtMjksNyAr
MjksNyBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdz
LCAid2Via2l0X3BvcnQiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9p
bmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwg
dGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4g
eyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5h
cnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJf
YXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CkBAIC01NCw3ICs1NCw3IEBAIGRl
ZiBjYXBhYmlsaXRpZXNfZm9yX3BvcnQoc2VydmVyX2NvbmZpZywgKiprd2FyZ3MpOgogICAgIHJl
dHVybiB7fQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmln
LCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dn
ZXIsIHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0
YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIGV4ZWN1dG9yX2t3YXJncyA9
IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5m
b19kYXRhLCAqKmt3YXJncykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJr
aXRndGtfbWluaWJyb3dzZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0Z3RrX21p
bmlicm93c2VyLnB5CmluZGV4IGQ4Yjk3NDRiZDc0M2UzOWNlMTlmMDA4ZTdmNDBjYmM4MGU4MDEw
N2MuLjViN2EzNjBmYjYwODM1MmUyNjk3MTU3MGFmMDZjNWJiODQ2NjI1NWIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXRndGtfbWluaWJyb3dzZXIucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdGd0a19taW5pYnJvd3Nlci5weQpAQCAtMjUsNyArMjUs
NyBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcGFzcwogCiAKLWRlZiBicm93c2Vy
X2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVm
IGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICAjIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9y
Zy9HTk9NRS9saWJzb3VwL2lzc3Vlcy8xNzIKICAgICB3ZWJkcml2ZXJfcmVxdWlyZWRfYXJncyA9
IFsiLS1ob3N0PTEyNy4wLjAuMSJdCiAgICAgd2ViZHJpdmVyX2FyZ3MgPSBtYXliZV9hZGRfYXJn
cyh3ZWJkcml2ZXJfcmVxdWlyZWRfYXJncywga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKSkK
QEAgLTUzLDcgKzUzLDcgQEAgZGVmIGNhcGFiaWxpdGllcyhzZXJ2ZXJfY29uZmlnLCAqKmt3YXJn
cyk6CiAgICAgICAgICAgICAiY2VydGlmaWNhdGVzIjogY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qo
c2VydmVyX2NvbmZpZy5kb21haW5zX3NldCwga3dhcmdzWyJob3N0X2NlcnRfcGF0aCJdKX19CiAK
IAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21h
bmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90
eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsICoq
a3dhcmdzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Vudmlyb25tZW50LnB5CmluZGV4IDI1MjdkMjZkMzkxZDk5NjgzNzc5MzkyYzAzNWNl
ZmZhMzBmZTViYzIuLmI2OGZjZTA1NTdhODNhYWMyYzlmNDM1OTI1MmU4MGQwNjgxMmViZWUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZW52aXJvbm1lbnQucHkKQEAgLTEsNiArMSw2IEBACiBpbXBvcnQganNvbgogaW1wb3J0IG9zCi1p
bXBvcnQgbXVsdGlwcm9jZXNzaW5nCisKIGltcG9ydCBzaWduYWwKIGltcG9ydCBzb2NrZXQKIGlt
cG9ydCBzeXMKQEAgLTksNiArOSw3IEBAIGZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIAogZnJv
bSBtb3psb2cgaW1wb3J0IGdldF9kZWZhdWx0X2xvZ2dlciwgaGFuZGxlcnMsIHByb3h5CiAKK2Zy
b20gLiBpbXBvcnQgbXBjb250ZXh0CiBmcm9tIC53cHRsb2dnaW5nIGltcG9ydCBMb2dMZXZlbFJl
d3JpdGVyCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCkBAIC01NCw3ICs1NSw3
IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICIiIkNvbnRleHQgbWFuYWdl
ciB0aGF0IG93bnMgdGhlIHRlc3QgZW52aXJvbm1lbnQgaS5lLiB0aGUgaHR0cCBhbmQKICAgICB3
ZWJzb2NrZXRzIHNlcnZlcnMiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9wYXRocywg
dGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIsCi0gICAgICAgICAgICAgICAgIHBhdXNlX2Fm
dGVyX3Rlc3QsIGRlYnVnX2luZm8sIG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMsCisg
ICAgICAgICAgICAgICAgIHBhdXNlX2FmdGVyX3Rlc3QsIGRlYnVnX3Rlc3QsIGRlYnVnX2luZm8s
IG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMsCiAgICAgICAgICAgICAgICAgIGVuYWJs
ZV9xdWljPUZhbHNlLCBtb2pvanNfcGF0aD1Ob25lKToKICAgICAgICAgc2VsZi50ZXN0X3BhdGhz
ID0gdGVzdF9wYXRocwogICAgICAgICBzZWxmLnNlcnZlciA9IE5vbmUKQEAgLTYyLDEyICs2Mywx
NCBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgc2VsZi5jb25maWcg
PSBOb25lCiAgICAgICAgIHNlbGYudGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIgPSB0ZXN0
aGFybmVzc190aW1lb3V0X211bHRpcGxlcgogICAgICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3Qg
PSBwYXVzZV9hZnRlcl90ZXN0CisgICAgICAgIHNlbGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QK
ICAgICAgICAgc2VsZi50ZXN0X3NlcnZlcl9wb3J0ID0gb3B0aW9ucy5wb3AoInRlc3Rfc2VydmVy
X3BvcnQiLCBUcnVlKQogICAgICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZvCiAgICAg
ICAgIHNlbGYub3B0aW9ucyA9IG9wdGlvbnMgaWYgb3B0aW9ucyBpcyBub3QgTm9uZSBlbHNlIHt9
CiAKLSAgICAgICAgc2VsZi5jYWNoZV9tYW5hZ2VyID0gbXVsdGlwcm9jZXNzaW5nLk1hbmFnZXIo
KQotICAgICAgICBzZWxmLnN0YXNoID0gc2VydmUuc3Rhc2guU3Rhc2hTZXJ2ZXIoKQorICAgICAg
ICBtcF9jb250ZXh0ID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgc2VsZi5jYWNo
ZV9tYW5hZ2VyID0gbXBfY29udGV4dC5NYW5hZ2VyKCkKKyAgICAgICAgc2VsZi5zdGFzaCA9IHNl
cnZlLnN0YXNoLlN0YXNoU2VydmVyKG1wX2NvbnRleHQ9bXBfY29udGV4dCkKICAgICAgICAgc2Vs
Zi5lbnZfZXh0cmFzID0gZW52X2V4dHJhcwogICAgICAgICBzZWxmLmVudl9leHRyYXNfY21zID0g
Tm9uZQogICAgICAgICBzZWxmLnNzbF9jb25maWcgPSBzc2xfY29uZmlnCkBAIC05NSw3ICs5OCw4
IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5lbnZf
ZXh0cmFzX2Ntcy5hcHBlbmQoY20pCiAKICAgICAgICAgc2VsZi5zZXJ2ZXJzID0gc2VydmUuc3Rh
cnQoc2VsZi5jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
Z2V0X3JvdXRlcygpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmdl
dF9yb3V0ZXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXBfY29udGV4
dD1tcGNvbnRleHQuZ2V0X2NvbnRleHQoKSkKIAogICAgICAgICBpZiBzZWxmLm9wdGlvbnMuZ2V0
KCJzdXBwb3J0c19kZWJ1Z2dlciIpIGFuZCBzZWxmLmRlYnVnX2luZm8gYW5kIHNlbGYuZGVidWdf
aW5mby5pbnRlcmFjdGl2ZToKICAgICAgICAgICAgIHNlbGYuaWdub3JlX2ludGVycnVwdHMoKQpA
QCAtMTY4LDcgKzE3Miw4IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAg
ICBsb2dfZmlsdGVyID0gTG9nTGV2ZWxSZXdyaXRlcihsb2dfZmlsdGVyLCBbImVycm9yIl0sICJ3
YXJuaW5nIikKICAgICAgICAgc2VydmVyX2xvZ2dlci5jb21wb25lbnRfZmlsdGVyID0gbG9nX2Zp
bHRlcgogCi0gICAgICAgIHNlcnZlcl9sb2dnZXIgPSBwcm94eS5RdWV1ZWRQcm94eUxvZ2dlcihz
ZXJ2ZXJfbG9nZ2VyKQorICAgICAgICBzZXJ2ZXJfbG9nZ2VyID0gcHJveHkuUXVldWVkUHJveHlM
b2dnZXIoc2VydmVyX2xvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1wY29udGV4dC5nZXRfY29udGV4dCgpKQogCiAgICAgICAgIHRyeToKICAg
ICAgICAgICAgICMgU2V0IGFzIHRoZSBkZWZhdWx0IGxvZ2dlciBmb3Igd3B0c2VydmUKQEAgLTE5
MSw3ICsxOTYsOCBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgICAg
ICAgICAoc2VsZi5vcHRpb25zLmdldCgidGVzdGhhcm5lc3NyZXBvcnQiLCAidGVzdGhhcm5lc3Ny
ZXBvcnQuanMiKSwKICAgICAgICAgICAgICAgICAgeyJvdXRwdXQiOiBzZWxmLnBhdXNlX2FmdGVy
X3Rlc3QsCiAgICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogc2VsZi50ZXN0
aGFybmVzc190aW1lb3V0X211bHRpcGxlciwKLSAgICAgICAgICAgICAgICAgICJleHBsaWNpdF90
aW1lb3V0IjogInRydWUiIGlmIHNlbGYuZGVidWdfaW5mbyBpcyBub3QgTm9uZSBlbHNlICJmYWxz
ZSJ9LAorICAgICAgICAgICAgICAgICAgImV4cGxpY2l0X3RpbWVvdXQiOiAidHJ1ZSIgaWYgc2Vs
Zi5kZWJ1Z19pbmZvIGlzIG5vdCBOb25lIGVsc2UgImZhbHNlIiwKKyAgICAgICAgICAgICAgICAg
ICJkZWJ1ZyI6ICJ0cnVlIiBpZiBzZWxmLmRlYnVnX3Rlc3QgZWxzZSAiZmFsc2UifSwKICAgICAg
ICAgICAgICAgICAgInRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0ZjgiLAogICAgICAgICAgICAg
ICAgICAiL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIpXToKICAgICAgICAgICAgIHBh
dGggPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbihoZXJlLCBwYXRoKSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvYWN0aW9ucy5weQppbmRleCBiMTFkMzBiYjk0YWE3YzI3NDdmY2M0ZGNmYjYxMjkyZjc2
NzhlMjczLi45NjNlZDMzN2ZkZTQ0ZWNkZDQ3Yjk0YjdhYTQxNzkwM2UzMzg0OWVhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2FjdGlvbnMucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9hY3Rpb25zLnB5CkBAIC0xMyw2ICsxMywxOCBAQCBjbGFzcyBDbGlja0FjdGlv
bihvYmplY3QpOgogICAgICAgICBzZWxmLnByb3RvY29sLmNsaWNrLmVsZW1lbnQoZWxlbWVudCkK
IAogCitjbGFzcyBEZWxldGVBbGxDb29raWVzQWN0aW9uKG9iamVjdCk6CisgICAgbmFtZSA9ICJk
ZWxldGVfYWxsX2Nvb2tpZXMiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90
b2NvbCk6CisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9j
b2wgPSBwcm90b2NvbAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiRGVsZXRpbmcgYWxsIGNvb2tpZXMiKQorICAgICAgICBzZWxm
LnByb3RvY29sLmNvb2tpZXMuZGVsZXRlX2FsbF9jb29raWVzKCkKKworCiBjbGFzcyBTZW5kS2V5
c0FjdGlvbihvYmplY3QpOgogICAgIG5hbWUgPSAic2VuZF9rZXlzIgogCkBAIC0xNzEsNiArMTgz
LDcgQEAgY2xhc3MgU2V0VXNlclZlcmlmaWVkQWN0aW9uKG9iamVjdCk6CiAKIAogYWN0aW9ucyA9
IFtDbGlja0FjdGlvbiwKKyAgICAgICAgICAgRGVsZXRlQWxsQ29va2llc0FjdGlvbiwKICAgICAg
ICAgICAgU2VuZEtleXNBY3Rpb24sCiAgICAgICAgICAgIEFjdGlvblNlcXVlbmNlQWN0aW9uLAog
ICAgICAgICAgICBHZW5lcmF0ZVRlc3RSZXBvcnRBY3Rpb24sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkK
aW5kZXggNTU1MTg2ODU0OTRlMjQ2NDM1NDI1MGFlNmU3MmJhYmRlZjQ2ZGNmNy4uMWI3NTQyMTk0
MWQyZjU3MGY5MDk4NzEzZDZjYTdiNWYzMmNmMjk1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9iYXNlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQpA
QCAtMTIsMTMgKzEyLDEzIEBAIGZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKIGZyb20gc2l4Lm1v
dmVzLmh0dHBfY2xpZW50IGltcG9ydCBIVFRQQ29ubmVjdGlvbgogZnJvbSBzaXgubW92ZXMudXJs
bGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1cmxzcGxpdCwgdXJsdW5zcGxpdAogCi1mcm9tIC4u
dGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogZnJvbSAuYWN0aW9ucyBpbXBvcnQgYWN0aW9ucwogZnJv
bSAucHJvdG9jb2wgaW1wb3J0IFByb3RvY29sLCBCYXNlUHJvdG9jb2xQYXJ0CiAKIGhlcmUgPSBv
cy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiAKIAorCiBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3Rf
dHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAg
ICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIHRpbWVvdXRfbXVsdGlwbGllciA9IGt3YXJn
c1sidGltZW91dF9tdWx0aXBsaWVyIl0KQEAgLTQyLDcgKzQyLDcgQEAgZGVmIGV4ZWN1dG9yX2t3
YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2Rh
dGEsCiAgICAgIyB3YW50IHRvIHZpZXcgdGhlIHJlc3VsdHMsIGhvd2V2ZXIsIHRoZSBleGVjdXRv
ciBoYXMgdG8gc2tpcCB0aGF0IGNsZWFudXAuCiAgICAgaWYga3dhcmdzWyJwYXVzZV9hZnRlcl90
ZXN0Il0gb3Iga3dhcmdzWyJwYXVzZV9vbl91bmV4cGVjdGVkIl06CiAgICAgICAgIGV4ZWN1dG9y
X2t3YXJnc1siY2xlYW51cF9hZnRlcl90ZXN0Il0gPSBGYWxzZQotCisgICAgZXhlY3V0b3Jfa3dh
cmdzWyJkZWJ1Z190ZXN0Il0gPSBrd2FyZ3NbImRlYnVnX3Rlc3QiXQogICAgIHJldHVybiBleGVj
dXRvcl9rd2FyZ3MKIAogCkBAIC0xODAsMTEgKzE4MCwxMSBAQCBjbGFzcyBUaW1lZFJ1bm5lcihv
YmplY3QpOgogICAgICAgICBzZWxmLnJlc3VsdF9mbGFnID0gdGhyZWFkaW5nLkV2ZW50KCkKIAog
ICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuc2V0X3RpbWVvdXQoKSBpcyBTdG9w
OgotICAgICAgICAgICAgcmV0dXJuIFN0b3AKLQotICAgICAgICBpZiBzZWxmLmJlZm9yZV9ydW4o
KSBpcyBTdG9wOgotICAgICAgICAgICAgcmV0dXJuIFN0b3AKKyAgICAgICAgZm9yIHNldHVwX2Zu
IGluIFtzZWxmLnNldF90aW1lb3V0LCBzZWxmLmJlZm9yZV9ydW5dOgorICAgICAgICAgICAgZXJy
ID0gc2V0dXBfZm4oKQorICAgICAgICAgICAgaWYgZXJyOgorICAgICAgICAgICAgICAgIHNlbGYu
cmVzdWx0ID0gKEZhbHNlLCBlcnIpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0
CiAKICAgICAgICAgZXhlY3V0b3IgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLnJ1bl9m
dW5jKQogICAgICAgICBleGVjdXRvci5zdGFydCgpCkBAIC0yOTYsOSArMjk2LDYgQEAgY2xhc3Mg
VGVzdEV4ZWN1dG9yKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKGV4
Y2VwdGlvbl9zdHJpbmcpCiAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLnJlc3VsdF9mcm9tX2V4
Y2VwdGlvbih0ZXN0LCBlLCBleGNlcHRpb25fc3RyaW5nKQogCi0gICAgICAgIGlmIHJlc3VsdCBp
cyBTdG9wOgotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAotCiAgICAgICAgICMgbG9nIHJlc3Vs
dCBvZiBwYXJlbnQgdGVzdAogICAgICAgICBpZiByZXN1bHRbMF0uc3RhdHVzID09ICJFUlJPUiI6
CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZyhyZXN1bHRbMF0ubWVzc2FnZSkKQEAgLTU5
OCw3ICs1OTUsNyBAQCBjbGFzcyBXZHNwZWNFeGVjdXRvcihUZXN0RXhlY3V0b3IpOgogCiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgd2ViZHJp
dmVyX2JpbmFyeSwKICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHRpbWVvdXRfbXVs
dGlwbGllcj0xLCBjYXBhYmlsaXRpZXM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZGVidWdfaW5m
bz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgZW52
aXJvbj1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYuZG9fZGVsYXllZF9pbXBvcnRzKCkK
ICAgICAgICAgVGVzdEV4ZWN1dG9yLl9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2Vy
dmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlw
bGllcj10aW1lb3V0X211bHRpcGxpZXIsCkBAIC02MDcsNiArNjA0LDcgQEAgY2xhc3MgV2RzcGVj
RXhlY3V0b3IoVGVzdEV4ZWN1dG9yKToKICAgICAgICAgc2VsZi53ZWJkcml2ZXJfYXJncyA9IHdl
YmRyaXZlcl9hcmdzCiAgICAgICAgIHNlbGYudGltZW91dF9tdWx0aXBsaWVyID0gdGltZW91dF9t
dWx0aXBsaWVyCiAgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gY2FwYWJpbGl0aWVzCisgICAg
ICAgIHNlbGYuZW52aXJvbiA9IGVudmlyb24gaWYgZW52aXJvbiBpcyBub3QgTm9uZSBlbHNlIHt9
CiAgICAgICAgIHNlbGYucHJvdG9jb2wgPSBzZWxmLnByb3RvY29sX2NscyhzZWxmLCBicm93c2Vy
KQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgpAQCAtNjMyLDcgKzYzMCw4IEBAIGNsYXNzIFdk
c3BlY0V4ZWN1dG9yKFRlc3RFeGVjdXRvcik6CiAgICAgICAgIHJldHVybiBweXRlc3RydW5uZXIu
cnVuKHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2Nv
bmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9jb25maWcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9dGltZW91dCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbnZpcm9uPXNlbGYuZW52aXJvbikKIAogICAgIGRlZiBkb19kZWxh
eWVkX2ltcG9ydHMoc2VsZik6CiAgICAgICAgIGdsb2JhbCBweXRlc3RydW5uZXIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlY2hyb21pdW0ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZWNocm9taXVtLnB5CmluZGV4IGEwMjYzYWY2
ODAzNDExMWZhZTU2YjZlMWFjYjA1MGZhOTU4NTlkYWUuLmViYmEwNmE5ZTFhYmExNjM3M2I4NzY4
NmY1YzEyYTg5YzA5ZTI1YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhl
Y3V0b3JlZGdlY2hyb21pdW0ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cmVkZ2VjaHJvbWl1bS5weQpAQCAtMSwxMCArMSwxMCBAQAotZnJvbSAuLndlYmRyaXZlcl9zZXJ2
ZXIgaW1wb3J0IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcg0KLWZyb20gLmJhc2UgaW1wb3J0IFdk
c3BlY0V4ZWN1dG9yLCBXZHNwZWNQcm90b2NvbA0KLQ0KLQ0KLWNsYXNzIEVkZ2VDaHJvbWl1bURy
aXZlclByb3RvY29sKFdkc3BlY1Byb3RvY29sKToNCi0gICAgc2VydmVyX2NscyA9IEVkZ2VDaHJv
bWl1bURyaXZlclNlcnZlcg0KLQ0KLQ0KLWNsYXNzIEVkZ2VDaHJvbWl1bURyaXZlcldkc3BlY0V4
ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToNCi0gICAgcHJvdG9jb2xfY2xzID0gRWRnZUNocm9taXVt
RHJpdmVyUHJvdG9jb2wNCitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZUNocm9t
aXVtRHJpdmVyU2VydmVyCitmcm9tIC5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciwgV2RzcGVj
UHJvdG9jb2wKKworCitjbGFzcyBFZGdlQ2hyb21pdW1Ecml2ZXJQcm90b2NvbChXZHNwZWNQcm90
b2NvbCk6CisgICAgc2VydmVyX2NscyA9IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcgorCisKK2Ns
YXNzIEVkZ2VDaHJvbWl1bURyaXZlcldkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToKKyAg
ICBwcm90b2NvbF9jbHMgPSBFZGdlQ2hyb21pdW1Ecml2ZXJQcm90b2NvbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlvbmV0dGUucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQppbmRleCBkYTg5NDFiNjllMzNiMDk4
NmY5OTlmMjg2YzRhNjRlNTg0MzQ5ZWNjLi5kNjFlMWYyNjJjZDBiYzdjZGU1NzkyYzVmZDZhNTgy
ZThlMDc0YjlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFy
aW9uZXR0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0
ZS5weQpAQCAtMzMsMTQgKzMzLDE1IEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQWN0aW9uU2Vx
dWVuY2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JhZ2VQcm90b2Nv
bFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VuZEtl
eXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFRlc3REcml2ZXJQcm90b2Nv
bFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIENvdmVyYWdlUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgICAgICBTZXRQZXJtaXNzaW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAg
ICAgICAgICAgICAgICBQcmludFByb3RvY29sUGFydCkKLWZyb20gLi50ZXN0cnVubmVyIGltcG9y
dCBTdG9wCisgICAgICAgICAgICAgICAgICAgICAgIFByaW50UHJvdG9jb2xQYXJ0LAorICAgICAg
ICAgICAgICAgICAgICAgICBEZWJ1Z1Byb3RvY29sUGFydCkKIGZyb20gLi53ZWJkcml2ZXJfc2Vy
dmVyIGltcG9ydCBHZWNrb0RyaXZlclNlcnZlcgogCiAKQEAgLTQzNiw2ICs0MzcsMTUgQEAgY2xh
c3MgTWFyaW9uZXR0ZUNsaWNrUHJvdG9jb2xQYXJ0KENsaWNrUHJvdG9jb2xQYXJ0KToKICAgICAg
ICAgcmV0dXJuIGVsZW1lbnQuY2xpY2soKQogCiAKK2NsYXNzIE1hcmlvbmV0dGVDb29raWVzUHJv
dG9jb2xQYXJ0KENvb2tpZXNQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAg
ICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0ZQorCisgICAgZGVm
IGRlbGV0ZV9hbGxfY29va2llcyhzZWxmKToKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiRGVs
ZXRpbmcgYWxsIGNvb2tpZXMiKQorICAgICAgICByZXR1cm4gc2VsZi5tYXJpb25ldHRlLmRlbGV0
ZV9hbGxfY29va2llcygpCisKKwogY2xhc3MgTWFyaW9uZXR0ZVNlbmRLZXlzUHJvdG9jb2xQYXJ0
KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNl
bGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1hcmlvbmV0dGUKQEAgLTYxNiw2ICs2MjYsMzAg
QEAgcmVuZGVyKCclcycpLnRoZW4ocmVzdWx0ID0+IGNhbGxiYWNrKHJlc3VsdCkpIiIiICUgcGRm
X2Jhc2U2NCwgbmV3X3NhbmRib3g9RmFsc2UKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAg
IF9zd2l0Y2hfdG9fd2luZG93KHNlbGYubWFyaW9uZXR0ZSwgaGFuZGxlKQogCisKK2NsYXNzIE1h
cmlvbmV0dGVEZWJ1Z1Byb3RvY29sUGFydChEZWJ1Z1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNl
dHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25l
dHRlCisKKyAgICBkZWYgbG9hZF9kZXZ0b29scyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLm1h
cmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlvbmV0dGUuQ09OVEVYVF9DSFJPTUUpOgor
ICAgICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgiIiIKK2NvbnN0IHsg
cmVxdWlyZSB9ID0gQ2hyb21lVXRpbHMuaW1wb3J0KCJyZXNvdXJjZTovL2RldnRvb2xzL3NoYXJl
ZC9Mb2FkZXIuanNtIik7Citjb25zdCB7IFRhcmdldEZhY3RvcnkgfSA9IHJlcXVpcmUoImRldnRv
b2xzL2NsaWVudC9mcmFtZXdvcmsvdGFyZ2V0Iik7Citjb25zdCB7IGdEZXZUb29scyB9ID0gcmVx
dWlyZSgiZGV2dG9vbHMvY2xpZW50L2ZyYW1ld29yay9kZXZ0b29scyIpOworCitjb25zdCBjYWxs
YmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CisKK2FzeW5jIGZ1bmN0aW9u
IGxvYWREZXZUb29scygpIHsKKyAgICBjb25zdCB0YXJnZXQgPSBhd2FpdCBUYXJnZXRGYWN0b3J5
LmZvclRhYih3aW5kb3cuZ0Jyb3dzZXIuc2VsZWN0ZWRUYWIpOworICAgIGF3YWl0IGdEZXZUb29s
cy5zaG93VG9vbGJveCh0YXJnZXQsICJ3ZWJjb25zb2xlIiwgIndpbmRvdyIpOworfQorCitsb2Fk
RGV2VG9vbHMoKS5jYXRjaCgoKSA9PiBkdW1wKCJEZXZ0b29scyBmYWlsZWQgdG8gbG9hZCIpKQor
ICAgICAgICAgICAgICAudGhlbihjYWxsYmFjayk7CisiIiIsIGFzeW5jaHJvbm91cz1UcnVlKQor
CisKIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQcm90b2NvbCk6CiAgICAgaW1wbGVtZW50cyA9
IFtNYXJpb25ldHRlQmFzZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0
dGVUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKQEAgLTYyMyw2ICs2NTcsNyBAQCBjbGFzcyBNYXJp
b25ldHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVN0
b3JhZ2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlU2VsZWN0b3JQ
cm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlQ2xpY2tQcm90b2NvbFBh
cnQsCisgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlQ29va2llc1Byb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVTZW5kS2V5c1Byb3RvY29sUGFydCwKICAgICAgICAg
ICAgICAgICAgIE1hcmlvbmV0dGVBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAg
ICAgICAgICAgIE1hcmlvbmV0dGVUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LApAQCAtNjMxLDcgKzY2
Niw4IEBAIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQcm90b2NvbCk6CiAgICAgICAgICAgICAg
ICAgICBNYXJpb25ldHRlR2VuZXJhdGVUZXN0UmVwb3J0UHJvdG9jb2xQYXJ0LAogICAgICAgICAg
ICAgICAgICAgTWFyaW9uZXR0ZVZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVNldFBlcm1pc3Npb25Qcm90b2NvbFBhcnQsCi0gICAg
ICAgICAgICAgICAgICBNYXJpb25ldHRlUHJpbnRQcm90b2NvbFBhcnRdCisgICAgICAgICAgICAg
ICAgICBNYXJpb25ldHRlUHJpbnRQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBNYXJp
b25ldHRlRGVidWdQcm90b2NvbFBhcnRdCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0
b3IsIGJyb3dzZXIsIGNhcGFiaWxpdGllcz1Ob25lLCB0aW1lb3V0X211bHRpcGxpZXI9MSwgZTEw
cz1UcnVlLCBjY292PUZhbHNlKToKICAgICAgICAgZG9fZGVsYXllZF9pbXBvcnRzKCkKQEAgLTcx
Niw4ICs3NTIsOSBAQCBjbGFzcyBFeGVjdXRlQXN5bmNTY3JpcHRSdW4oVGltZWRSdW5uZXIpOgog
ICAgICAgICAgICAgICAgICMgdGltZW91dCBpcyBzZXQgdG9vIGhpZ2guIFRoaXMgd29ya3MgYXQg
bGVhc3QuCiAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KDIq
KjI4IC0gMSkKICAgICAgICAgZXhjZXB0IElPRXJyb3I6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dl
ci5lcnJvcigiTG9zdCBtYXJpb25ldHRlIGNvbm5lY3Rpb24gYmVmb3JlIHN0YXJ0aW5nIHRlc3Qi
KQotICAgICAgICAgICAgcmV0dXJuIFN0b3AKKyAgICAgICAgICAgIG1zZyA9ICJMb3N0IG1hcmlv
bmV0dGUgY29ubmVjdGlvbiBiZWZvcmUgc3RhcnRpbmcgdGVzdCIKKyAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgIHJldHVybiAoIklOVEVSTkFMLUVSUk9SIiwg
bXNnKQogCiAgICAgZGVmIGJlZm9yZV9ydW4oc2VsZik6CiAgICAgICAgIGluZGV4ID0gc2VsZi51
cmwucmZpbmQoIi9zdG9yYWdlLyIpCkBAIC03NTksNyArNzk2LDcgQEAgY2xhc3MgTWFyaW9uZXR0
ZVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAKICAgICBkZWYgX19p
bml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRp
cGxpZXI9MSwKICAgICAgICAgICAgICAgICAgY2xvc2VfYWZ0ZXJfZG9uZT1UcnVlLCBkZWJ1Z19p
bmZvPU5vbmUsIGNhcGFiaWxpdGllcz1Ob25lLAotICAgICAgICAgICAgICAgICBkZWJ1Zz1GYWxz
ZSwgY2Nvdj1GYWxzZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgICBkZWJ1Zz1GYWxzZSwg
Y2Nvdj1GYWxzZSwgZGVidWdfdGVzdD1GYWxzZSwgKiprd2FyZ3MpOgogICAgICAgICAiIiJNYXJp
b25ldHRlLWJhc2VkIGV4ZWN1dG9yIGZvciB0ZXN0aGFybmVzcy5qcyB0ZXN0cyIiIgogICAgICAg
ICBUZXN0aGFybmVzc0V4ZWN1dG9yLl9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2Vy
dmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0
X211bHRpcGxpZXI9dGltZW91dF9tdWx0aXBsaWVyLApAQCAtNzc1LDYgKzgxMiw3IEBAIGNsYXNz
IE1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAg
ICAgICBzZWxmLmNsb3NlX2FmdGVyX2RvbmUgPSBjbG9zZV9hZnRlcl9kb25lCiAgICAgICAgIHNl
bGYud2luZG93X2lkID0gc3RyKHV1aWQudXVpZDQoKSkKICAgICAgICAgc2VsZi5kZWJ1ZyA9IGRl
YnVnCisgICAgICAgIHNlbGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QKIAogICAgICAgICBzZWxm
Lmluc3RhbGxfZXh0ZW5zaW9ucyA9IGJyb3dzZXIuZXh0ZW5zaW9ucwogCkBAIC04NDMsNiArODgx
LDkgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVj
dXRvcik6CiAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfd2luZG93KHRlc3Rfd2luZG93
KQogICAgICAgICBwcm90b2NvbC50ZXN0aGFybmVzcy50ZXN0X3dpbmRvd19sb2FkZWQoKQogCisg
ICAgICAgIGlmIHNlbGYuZGVidWdfdGVzdDoKKyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuZGVi
dWcubG9hZF9kZXZ0b29scygpCisKICAgICAgICAgaGFuZGxlciA9IENhbGxiYWNrSGFuZGxlcihz
ZWxmLmxvZ2dlciwgcHJvdG9jb2wsIHRlc3Rfd2luZG93KQogICAgICAgICBwcm90b2NvbC5tYXJp
b25ldHRlLm5hdmlnYXRlKHVybCkKICAgICAgICAgd2hpbGUgVHJ1ZToKQEAgLTg2OSw3ICs5MTAs
NyBAQCBjbGFzcyBNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAg
ICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgcmVmdGVzdF9pbnRlcm5hbD1GYWxzZSwK
ICAgICAgICAgICAgICAgICAgcmVmdGVzdF9zY3JlZW5zaG90PSJ1bmV4cGVjdGVkIiwgY2Nvdj1G
YWxzZSwKICAgICAgICAgICAgICAgICAgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwgY2FwYWJpbGl0aWVz
PU5vbmUsIGRlYnVnPUZhbHNlLAotICAgICAgICAgICAgICAgICBicm93c2VyX3ZlcnNpb249Tm9u
ZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgICBicm93c2VyX3ZlcnNpb249Tm9uZSwgZGVi
dWdfdGVzdD1GYWxzZSwgKiprd2FyZ3MpOgogICAgICAgICAiIiJNYXJpb25ldHRlLWJhc2VkIGV4
ZWN1dG9yIGZvciByZWZ0ZXN0cyIiIgogICAgICAgICBSZWZUZXN0RXhlY3V0b3IuX19pbml0X18o
c2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlciwKQEAgLTg5Miw2
ICs5MzMsNyBAQCBjbGFzcyBNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRv
cik6CiAgICAgICAgIHNlbGYub3JpZ2luYWxfcHJlZl92YWx1ZXMgPSB7fQogICAgICAgICBzZWxm
Lmdyb3VwX21ldGFkYXRhID0gZ3JvdXBfbWV0YWRhdGEKICAgICAgICAgc2VsZi5kZWJ1ZyA9IGRl
YnVnCisgICAgICAgIHNlbGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QKIAogICAgICAgICB3aXRo
IG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZWZ0ZXN0LmpzIikpIGFzIGY6CiAgICAgICAgICAg
ICBzZWxmLnNjcmlwdCA9IGYucmVhZCgpCkBAIC05NTQsNyArOTk2LDEyIEBAIGNsYXNzIE1hcmlv
bmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgIGFzc2Vy
dGlvbl9jb3VudCA9IHNlbGYucHJvdG9jb2wuYXNzZXJ0cy5nZXQoKQogICAgICAgICAgICAgaWYg
ImV4dHJhIiBub3QgaW4gcmVzdWx0OgogICAgICAgICAgICAgICAgIHJlc3VsdFsiZXh0cmEiXSA9
IHt9Ci0gICAgICAgICAgICByZXN1bHRbImV4dHJhIl1bImFzc2VydGlvbl9jb3VudCJdID0gYXNz
ZXJ0aW9uX2NvdW50CisgICAgICAgICAgICBpZiBhc3NlcnRpb25fY291bnQgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICAgICAgcmVzdWx0WyJleHRyYSJdWyJhc3NlcnRpb25fY291bnQiXSA9IGFz
c2VydGlvbl9jb3VudAorCisgICAgICAgIGlmIHNlbGYuZGVidWdfdGVzdCBhbmQgcmVzdWx0WyJz
dGF0dXMiXSBpbiBbIlBBU1MiLCAiRkFJTCIsICJFUlJPUiJdIGFuZCAiZXh0cmEiIGluIHJlc3Vs
dDoKKyAgICAgICAgICAgIHNlbGYucGFyZW50LmJhc2Uuc2V0X3dpbmRvdyhzZWxmLnBhcmVudC5i
YXNlLndpbmRvd19oYW5kbGVzKClbMF0pCisgICAgICAgICAgICBzZWxmLnByb3RvY29sLmRlYnVn
LmxvYWRfcmVmdGVzdF9hbmFseXplcih0ZXN0LCByZXN1bHQpCiAKICAgICAgICAgcmV0dXJuIHNl
bGYuY29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0KQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L2V4ZWN1dG9yc2VsZW5pdW0ucHkKaW5kZXggZmYyNjM1MWY4NGVkOGQyZTAwZDgyZDc2NTcwMjA4
YTU5NDcwODZjYy4uNjA3MDAwN2IyMWE3YWYwZGQ0YjgzY2FlMjgzZjg1M2VlY2RlNTc2ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVtLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weQpAQCAtMTksMTAgKzE5
LDEwIEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAgICAgICAg
ICAgICAgICAgICAgICAgUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9y
UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFydCwK
KyAgICAgICAgICAgICAgICAgICAgICAgQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAg
IEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBUZXN0
RHJpdmVyUHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKIAogaGVy
ZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIApAQCAtMTgzLDYgKzE4MywxNSBAQCBjbGFz
cyBTZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0KENsaWNrUHJvdG9jb2xQYXJ0KToKICAgICAgICAg
cmV0dXJuIGVsZW1lbnQuY2xpY2soKQogCiAKK2NsYXNzIFNlbGVuaXVtQ29va2llc1Byb3RvY29s
UGFydChDb29raWVzUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAg
IHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZGVsZXRl
X2FsbF9jb29raWVzKHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEZWxldGluZyBh
bGwgY29va2llcyIpCisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5kZWxldGVfYWxsX2Nv
b2tpZXMoKQorCisKIGNsYXNzIFNlbGVuaXVtU2VuZEtleXNQcm90b2NvbFBhcnQoU2VuZEtleXNQ
cm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgc2VsZi53ZWJkcml2
ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKQEAgLTIxOSw2ICsyMjgsNyBAQCBjbGFzcyBTZWxl
bml1bVByb3RvY29sKFByb3RvY29sKToKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtVGVzdGhh
cm5lc3NQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBTZWxlbml1bVNlbGVjdG9yUHJv
dG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1DbGlja1Byb3RvY29sUGFydCwK
KyAgICAgICAgICAgICAgICAgIFNlbGVuaXVtQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAg
ICAgICAgICAgIFNlbGVuaXVtU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICBTZWxlbml1bVRlc3REcml2ZXJQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBTZWxl
bml1bUFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0XQpAQCAtMjY3LDggKzI3Nyw5IEBAIGNsYXNz
IFNlbGVuaXVtUnVuKFRpbWVkUnVubmVyKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2Vs
Zi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHRpbWVvdXQgKyBzZWxmLmV4dHJhX3RpbWVvdXQp
CiAgICAgICAgIGV4Y2VwdCBleGNlcHRpb25zLkVycm9ySW5SZXNwb25zZUV4Y2VwdGlvbjoKLSAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIikK
LSAgICAgICAgICAgIHJldHVybiBTdG9wCisgICAgICAgICAgICBtc2cgPSAiTG9zdCBXZWJEcml2
ZXIgY29ubmVjdGlvbiIKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAg
ICAgICAgIHJldHVybiAoIklOVEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIHJ1bl9mdW5j
KHNlbGYpOgogICAgICAgICB0cnk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
c2Vydm9kcml2ZXIucHkKaW5kZXggMmNkMWRiZjNhZDA2ZjQxYjk1NTVkYWQ2NGQ2ZDBjMGE4NjUz
NzI2MC4uMDM5YmNkMTRlMmJlNTc2ODAwODllNzg1ZTYwYzc0Y2RkZWUyODViNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weQpAQCAtMTAsNyArMTAs
NiBAQCBmcm9tIC5iYXNlIGltcG9ydCAoUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgVGVz
dGhhcm5lc3NFeGVjdXRvciwKICAgICAgICAgICAgICAgICAgICBUaW1lZFJ1bm5lciwKICAgICAg
ICAgICAgICAgICAgICBzdHJpcF9zZXJ2ZXIpCi1mcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3Rv
cAogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IHdhaXRfZm9yX3NlcnZpY2UKIAogd2Vi
ZHJpdmVyID0gTm9uZQpAQCAtMTg0LDggKzE4Myw5IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyVGVz
dGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAgICAgICAgICAgICAgICBz
ZWxmLnByb3RvY29sLnNlc3Npb24udGltZW91dHMuc2NyaXB0ID0gdGltZW91dAogICAgICAgICAg
ICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9y
OgotICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IHdlYmRyaXZlciBjb25u
ZWN0aW9uIikKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RvcAorICAgICAgICAgICAgICAgIG1z
ZyA9ICJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIgorICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgICAgICByZXR1cm4gKCJJTlRFUk5BTC1FUlJPUiIs
IG1zZykKIAogICAgICAgICBzdWNjZXNzLCBkYXRhID0gU2Vydm9XZWJEcml2ZXJSdW4oc2VsZi5s
b2dnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRv
X3Rlc3RoYXJuZXNzLApAQCAtMjc2LDggKzI3Niw5IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyUmVm
VGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAgICAgICAgICAgICAgc2VsZi5wcm90
b2NvbC5zZXNzaW9uLnRpbWVvdXRzLnNjcmlwdCA9IHRpbWVvdXQKICAgICAgICAgICAgICAgICBz
ZWxmLnRpbWVvdXQgPSB0aW1lb3V0CiAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0b3AKKyAgICAgICAgICAgICAgICBtc2cgPSAiTG9z
dCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJv
cihtc2cpCisgICAgICAgICAgICAgICAgcmV0dXJuICgiSU5URVJOQUwtRVJST1IiLCBtc2cpCiAK
ICAgICAgICAgcmV0dXJuIFNlcnZvV2ViRHJpdmVyUnVuKHNlbGYubG9nZ2VyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2NyZWVuc2hvdCwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJkcml2ZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5CmluZGV4IGJhZDVmZDA3MjIzN2JjZTJiODI2
ZGRlNzdiNDEzYmNhYmJjY2E5OTAuLjBhOTY4YmYzZjhjMjgzM2YyZDYyMTc4NGI0ZjU0YTRjNjg3
NWJkZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJkcml2
ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weQpA
QCAtMjAsMTMgKzIwLDE0IEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFy
dCwKICAgICAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAg
ICAgIFNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDbGlja1By
b3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29va2llc1Byb3RvY29sUGFydCwK
ICAgICAgICAgICAgICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgIEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgICAgICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBH
ZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNl
dFBlcm1pc3Npb25Qcm90b2NvbFBhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxB
dXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AK
KyAgICAgICAgICAgICAgICAgICAgICAgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQs
CisgICAgICAgICAgICAgICAgICAgICAgIERlYnVnUHJvdG9jb2xQYXJ0KQogCiBpbXBvcnQgd2Vi
ZHJpdmVyIGFzIGNsaWVudAogZnJvbSB3ZWJkcml2ZXIgaW1wb3J0IGVycm9yCkBAIC0xOTAsNiAr
MTkxLDE1IEBAIGNsYXNzIFdlYkRyaXZlckNsaWNrUHJvdG9jb2xQYXJ0KENsaWNrUHJvdG9jb2xQ
YXJ0KToKICAgICAgICAgcmV0dXJuIGVsZW1lbnQuY2xpY2soKQogCiAKK2NsYXNzIFdlYkRyaXZl
ckNvb2tpZXNQcm90b2NvbFBhcnQoQ29va2llc1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVw
KHNlbGYpOgorICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgor
CisgICAgZGVmIGRlbGV0ZV9hbGxfY29va2llcyhzZWxmKToKKyAgICAgICAgc2VsZi5sb2dnZXIu
aW5mbygiRGVsZXRpbmcgYWxsIGNvb2tpZXMiKQorICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2
ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkRFTEVURSIsICJjb29raWUiKQorCisKIGNsYXNzIFdl
YkRyaXZlclNlbmRLZXlzUHJvdG9jb2xQYXJ0KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToKICAgICBk
ZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2Vi
ZHJpdmVyCkBAIC0yODMsMTcgKzI5MywyNCBAQCBjbGFzcyBXZWJEcml2ZXJWaXJ0dWFsQXV0aGVu
dGljYXRvclByb3RvY29sUGFydChWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydAogICAg
ICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAi
d2ViYXV0aG4vYXV0aGVudGljYXRvci8lcy91diIgJSBhdXRoZW50aWNhdG9yX2lkLCB1dikKIAog
CitjbGFzcyBXZWJEcml2ZXJEZWJ1Z1Byb3RvY29sUGFydChEZWJ1Z1Byb3RvY29sUGFydCk6Cisg
ICAgZGVmIGxvYWRfZGV2dG9vbHMoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IoKQorCisKIGNsYXNzIFdlYkRyaXZlclByb3RvY29sKFByb3RvY29sKToKICAgICBpbXBs
ZW1lbnRzID0gW1dlYkRyaXZlckJhc2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBX
ZWJEcml2ZXJUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRy
aXZlclNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyQ2xp
Y2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJDb29raWVzUHJvdG9j
b2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyU2VuZEtleXNQcm90b2NvbFBhcnQs
CiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwK
ICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclRlc3REcml2ZXJQcm90b2NvbFBhcnQsCiAgICAg
ICAgICAgICAgICAgICBXZWJEcml2ZXJHZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQsCiAg
ICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZXRQZXJtaXNzaW9uUHJvdG9jb2xQYXJ0LAotICAg
ICAgICAgICAgICAgICAgV2ViRHJpdmVyVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnRd
CisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29s
UGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckRlYnVnUHJvdG9jb2xQYXJ0XQogCiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBicm93c2VyLCBjYXBhYmlsaXRpZXMsICoq
a3dhcmdzKToKICAgICAgICAgc3VwZXIoV2ViRHJpdmVyUHJvdG9jb2wsIHNlbGYpLl9faW5pdF9f
KGV4ZWN1dG9yLCBicm93c2VyKQpAQCAtMzQ0LDggKzM2MSw5IEBAIGNsYXNzIFdlYkRyaXZlclJ1
bihUaW1lZFJ1bm5lcik6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wu
YmFzZS5zZXRfdGltZW91dChzZWxmLnRpbWVvdXQgKyBzZWxmLmV4dHJhX3RpbWVvdXQpCiAgICAg
ICAgIGV4Y2VwdCBjbGllbnQuVW5rbm93bkVycm9yRXhjZXB0aW9uOgotICAgICAgICAgICAgc2Vs
Zi5sb2dnZXIuZXJyb3IoIkxvc3QgV2ViRHJpdmVyIGNvbm5lY3Rpb24iKQotICAgICAgICAgICAg
cmV0dXJuIFN0b3AKKyAgICAgICAgICAgIG1zZyA9ICJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9u
IgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IobXNnKQorICAgICAgICAgICAgcmV0dXJu
ICgiSU5URVJOQUwtRVJST1IiLCBtc2cpCiAKICAgICBkZWYgcnVuX2Z1bmMoc2VsZik6CiAgICAg
ICAgIHRyeToKQEAgLTQ5Nyw3ICs1MTUsNyBAQCBjbGFzcyBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0
b3IoUmVmVGVzdEV4ZWN1dG9yKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJy
b3dzZXIsIHNlcnZlcl9jb25maWcsIHRpbWVvdXRfbXVsdGlwbGllcj0xLAogICAgICAgICAgICAg
ICAgICBzY3JlZW5zaG90X2NhY2hlPU5vbmUsIGNsb3NlX2FmdGVyX2RvbmU9VHJ1ZSwKLSAgICAg
ICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwgKiprd2FyZ3Mp
OgorICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsIGNhcGFiaWxpdGllcz1Ob25lLCBk
ZWJ1Z190ZXN0PUZhbHNlLCAqKmt3YXJncyk6CiAgICAgICAgICIiIldlYkRyaXZlci1iYXNlZCBl
eGVjdXRvciBmb3IgcmVmdGVzdHMiIiIKICAgICAgICAgUmVmVGVzdEV4ZWN1dG9yLl9faW5pdF9f
KHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIsCkBAIC01MTIs
NiArNTMwLDcgQEAgY2xhc3MgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRv
cik6CiAgICAgICAgIHNlbGYuaW1wbGVtZW50YXRpb24gPSBSZWZUZXN0SW1wbGVtZW50YXRpb24o
c2VsZikKICAgICAgICAgc2VsZi5jbG9zZV9hZnRlcl9kb25lID0gY2xvc2VfYWZ0ZXJfZG9uZQog
ICAgICAgICBzZWxmLmhhc193aW5kb3cgPSBGYWxzZQorICAgICAgICBzZWxmLmRlYnVnX3Rlc3Qg
PSBkZWJ1Z190ZXN0CiAKICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAidGVz
dC13YWl0LmpzIikpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLndhaXRfc2NyaXB0ID0gZi5yZWFk
KCkgJSB7ImNsYXNzbmFtZSI6ICJyZWZ0ZXN0LXdhaXQifQpAQCAtNTM2LDYgKzU1NSw5IEBAIGNs
YXNzIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogCiAgICAgICAg
IHJlc3VsdCA9IHNlbGYuaW1wbGVtZW50YXRpb24ucnVuX3Rlc3QodGVzdCkKIAorICAgICAgICBp
ZiBzZWxmLmRlYnVnX3Rlc3QgYW5kIHJlc3VsdFsic3RhdHVzIl0gaW4gWyJQQVNTIiwgIkZBSUwi
LCAiRVJST1IiXSBhbmQgImV4dHJhIiBpbiByZXN1bHQ6CisgICAgICAgICAgICBzZWxmLnByb3Rv
Y29sLmRlYnVnLmxvYWRfcmVmdGVzdF9hbmFseXplcih0ZXN0LCByZXN1bHQpCisKICAgICAgICAg
cmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0KQogCiAgICAgZGVmIHNjcmVl
bnNob3Qoc2VsZiwgdGVzdCwgdmlld3BvcnRfc2l6ZSwgZHBpLCBwYWdlX3Jhbmdlcyk6CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9wcm90b2NvbC5weQppbmRleCBiZDc2OGIxMDczYzc0OGZkYjg2MDc0NWYxYmY5
NDQyZjViNDE1YzNiLi4wNWUyNTFjNzg0MTA2MDBhN2U4MWRhNjVjZTg1NzJkYjY5OGIwYzE1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKQEAgLTI4MSw2ICsyODEsMTggQEAgY2xhc3Mg
Q2xpY2tQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcGFzcwogCiAKK2NsYXNz
IENvb2tpZXNQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0
IGZvciBtYW5hZ2luZyBjb29raWVzIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKwor
ICAgIG5hbWUgPSAiY29va2llcyIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBkZWxl
dGVfYWxsX2Nvb2tpZXMoc2VsZik6CisgICAgICAgICIiIkRlbGV0ZSBhbGwgY29va2llcy4iIiIK
KyAgICAgICAgcGFzcworCisKIGNsYXNzIFNlbmRLZXlzUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFy
dCk6CiAgICAgIiIiUHJvdG9jb2wgcGFydCBmb3IgcGVyZm9ybWluZyB0cnVzdGVkIGNsaWNrcyIi
IgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCkBAIC01MDMsMyArNTE1LDMyIEBAIGNsYXNz
IFByaW50UHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgZGVmIHJlbmRlcl9hc19wZGYo
c2VsZiwgd2lkdGgsIGhlaWdodCk6CiAgICAgICAgICIiIk91dHB1dCBkb2N1bWVudCBhcyBQREYi
IiIKICAgICAgICAgcGFzcworCisKK2NsYXNzIERlYnVnUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFy
dCk6CisgICAgIiIiUHJvdG9jb2wgcGFydCBmb3IgZGVidWdnaW5nIHRlc3QgZmFpbHVyZXMuIiIi
CisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIG5hbWUgPSAiZGVidWciCisKKyAg
ICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgbG9hZF9kZXZ0b29scyhzZWxmKToKKyAgICAgICAg
IiIiTG9hZCBkZXZ0b29scyBpbiB0aGUgY3VycmVudCB3aW5kb3ciIiIKKyAgICAgICAgcGFzcwor
CisgICAgZGVmIGxvYWRfcmVmdGVzdF9hbmFseXplcihzZWxmLCB0ZXN0LCByZXN1bHQpOgorICAg
ICAgICBpbXBvcnQgaW8KKyAgICAgICAgaW1wb3J0IG1vemxvZworICAgICAgICBmcm9tIHNpeC5t
b3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHF1b3RlLCB1cmxqb2luCisKKyAgICAgICAgZGVidWdf
dGVzdF9sb2dnZXIgPSBtb3psb2cuc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJkZWJ1
Z190ZXN0IikKKyAgICAgICAgb3V0cHV0ID0gaW8uU3RyaW5nSU8oKQorICAgICAgICBkZWJ1Z190
ZXN0X2xvZ2dlci5zdWl0ZV9zdGFydChbXSkKKyAgICAgICAgZGVidWdfdGVzdF9sb2dnZXIuYWRk
X2hhbmRsZXIobW96bG9nLmhhbmRsZXJzLlN0cmVhbUhhbmRsZXIob3V0cHV0LCBmb3JtYXR0ZXI9
bW96bG9nLmZvcm1hdHRlcnMuVGJwbEZvcm1hdHRlcigpKSkKKyAgICAgICAgZGVidWdfdGVzdF9s
b2dnZXIudGVzdF9zdGFydCh0ZXN0LmlkKQorICAgICAgICAjIEFsd2F5cyB1c2UgUEFTUyBhcyB0
aGUgZXhwZWN0ZWQgdmFsdWUgc28gd2UgZ2V0IG91dHB1dCBldmVuIGZvciBleHBlY3RlZCBmYWls
dXJlcworICAgICAgICBkZWJ1Z190ZXN0X2xvZ2dlci50ZXN0X2VuZCh0ZXN0LmlkLCByZXN1bHRb
InN0YXR1cyJdLCAiUEFTUyIsIGV4dHJhPXJlc3VsdC5nZXQoImV4dHJhIikpCisKKyAgICAgICAg
c2VsZi5wYXJlbnQuYmFzZS5sb2FkKHVybGpvaW4oc2VsZi5wYXJlbnQuZXhlY3V0b3Iuc2VydmVy
X3VybCgiaHR0cHMiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvY29tbW9uL3Ro
aXJkX3BhcnR5L3JlZnRlc3QtYW5hbHl6ZXIueGh0bWwjbG9nPSVzIiAlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcXVvdGUob3V0cHV0LmdldHZhbHVlKCkpKSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQppbmRleCAzZDMyOTE3NjU5YjM5
MDBmOWU0NjQ2NzBkMmNkYzM5YjhmZjE4MGEwLi4xMTNlZmY5OWZlZThkNGExMjZkOWM3NDFiMzZj
YmZiOGU4YTFlZWJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1
bm5lci9ydW5uZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9weXRlc3RydW5uZXIv
cnVubmVyLnB5CkBAIC0yNCw3ICsyNCw3IEBAIGRlZiBkb19kZWxheWVkX2ltcG9ydHMoKToKICAg
ICBpbXBvcnQgcHl0ZXN0CiAKIAotZGVmIHJ1bihwYXRoLCBzZXJ2ZXJfY29uZmlnLCBzZXNzaW9u
X2NvbmZpZywgdGltZW91dD0wKToKK2RlZiBydW4ocGF0aCwgc2VydmVyX2NvbmZpZywgc2Vzc2lv
bl9jb25maWcsIHRpbWVvdXQ9MCwgZW52aXJvbj1Ob25lKToKICAgICAiIiIKICAgICBSdW4gUHl0
aG9uIHRlc3QgYXQgYGBwYXRoYGAgaW4gcHl0ZXN0LiAgVGhlIHByb3ZpZGVkIGBgc2Vzc2lvbmBg
CiAgICAgaXMgZXhwb3NlZCBhcyBhIGZpeHR1cmUgYXZhaWxhYmxlIGluIHRoZSBzY29wZSBvZiB0
aGUgdGVzdCBmdW5jdGlvbnMuCkBAIC00MSwyOCArNDEsMzUgQEAgZGVmIHJ1bihwYXRoLCBzZXJ2
ZXJfY29uZmlnLCBzZXNzaW9uX2NvbmZpZywgdGltZW91dD0wKToKICAgICBpZiBweXRlc3QgaXMg
Tm9uZToKICAgICAgICAgZG9fZGVsYXllZF9pbXBvcnRzKCkKIAotICAgIG9zLmVudmlyb25bIldE
X0hPU1QiXSA9IHNlc3Npb25fY29uZmlnWyJob3N0Il0KLSAgICBvcy5lbnZpcm9uWyJXRF9QT1JU
Il0gPSBzdHIoc2Vzc2lvbl9jb25maWdbInBvcnQiXSkKLSAgICBvcy5lbnZpcm9uWyJXRF9DQVBB
QklMSVRJRVMiXSA9IGpzb24uZHVtcHMoc2Vzc2lvbl9jb25maWdbImNhcGFiaWxpdGllcyJdKQot
ICAgIG9zLmVudmlyb25bIldEX1NFUlZFUl9DT05GSUciXSA9IGpzb24uZHVtcHMoc2VydmVyX2Nv
bmZpZy5hc19kaWN0X2Zvcl93ZF9lbnZfdmFyaWFibGUoKSkKLQotICAgIGhhcm5lc3MgPSBIYXJu
ZXNzUmVzdWx0UmVjb3JkZXIoKQotICAgIHN1YnRlc3RzID0gU3VidGVzdFJlc3VsdFJlY29yZGVy
KCkKLQotICAgIHdpdGggVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgY2FjaGU6Ci0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIHB5dGVzdC5tYWluKFsiLS1zdHJpY3QiLCAgIyB0dXJuIHdhcm5pbmdz
IGludG8gZXJyb3JzCi0gICAgICAgICAgICAgICAgICAgICAgICAgIi12diIsICAjIHNob3cgZWFj
aCBpbmRpdmlkdWFsIHN1YnRlc3QgYW5kIGZ1bGwgZmFpbHVyZSBsb2dzCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIi0tY2FwdHVyZSIsICJubyIsICAjIGVuYWJsZSBzdGRvdXQvc3RkZXJyIGZy
b20gdGVzdHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLS1iYXNldGVtcCIsIGNhY2hlLCAg
IyB0ZW1wb3JhcnkgZGlyZWN0b3J5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIi0tc2hvd2xv
Y2FscyIsICAjIGRpc3BsYXkgY29udGVudHMgb2YgdmFyaWFibGVzIGluIGxvY2FsIHNjb3BlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIi1wIiwgIm5vOm1vemxvZyIsICAjIHVzZSB0aGUgV1BU
IHJlc3VsdCByZWNvcmRlcgotICAgICAgICAgICAgICAgICAgICAgICAgICItcCIsICJubzpjYWNo
ZXByb3ZpZGVyIiwgICMgZGlzYWJsZSBzdGF0ZSBwcmVzZXJ2YXRpb24gYWNyb3NzIGludm9jYXRp
b25zCi0gICAgICAgICAgICAgICAgICAgICAgICAgIi1vPWNvbnNvbGVfb3V0cHV0X3N0eWxlPWNs
YXNzaWMiLCAgIyBkaXNhYmxlIHRlc3QgcHJvZ3Jlc3MgYmFyCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcGF0aF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5zPVtoYXJuZXNzLCBz
dWJ0ZXN0c10pCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIGhh
cm5lc3Mub3V0Y29tZSA9ICgiSU5URVJOQUwtRVJST1IiLCBzdHIoZSkpCisgICAgb2xkX2Vudmly
b24gPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgIHRyeToKKyAgICAgICAgb3MuZW52aXJvblsiV0Rf
SE9TVCJdID0gc2Vzc2lvbl9jb25maWdbImhvc3QiXQorICAgICAgICBvcy5lbnZpcm9uWyJXRF9Q
T1JUIl0gPSBzdHIoc2Vzc2lvbl9jb25maWdbInBvcnQiXSkKKyAgICAgICAgb3MuZW52aXJvblsi
V0RfQ0FQQUJJTElUSUVTIl0gPSBqc29uLmR1bXBzKHNlc3Npb25fY29uZmlnWyJjYXBhYmlsaXRp
ZXMiXSkKKyAgICAgICAgb3MuZW52aXJvblsiV0RfU0VSVkVSX0NPTkZJRyJdID0ganNvbi5kdW1w
cyhzZXJ2ZXJfY29uZmlnLmFzX2RpY3RfZm9yX3dkX2Vudl92YXJpYWJsZSgpKQorICAgICAgICBp
ZiBlbnZpcm9uOgorICAgICAgICAgICAgb3MuZW52aXJvbi51cGRhdGUoZW52aXJvbikKKworICAg
ICAgICBoYXJuZXNzID0gSGFybmVzc1Jlc3VsdFJlY29yZGVyKCkKKyAgICAgICAgc3VidGVzdHMg
PSBTdWJ0ZXN0UmVzdWx0UmVjb3JkZXIoKQorCisgICAgICAgIHdpdGggVGVtcG9yYXJ5RGlyZWN0
b3J5KCkgYXMgY2FjaGU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcHl0ZXN0
Lm1haW4oWyItLXN0cmljdCIsICAjIHR1cm4gd2FybmluZ3MgaW50byBlcnJvcnMKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIi12diIsICAjIHNob3cgZWFjaCBpbmRpdmlkdWFsIHN1YnRl
c3QgYW5kIGZ1bGwgZmFpbHVyZSBsb2dzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIt
LWNhcHR1cmUiLCAibm8iLCAgIyBlbmFibGUgc3Rkb3V0L3N0ZGVyciBmcm9tIHRlc3RzCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICItLWJhc2V0ZW1wIiwgY2FjaGUsICAjIHRlbXBvcmFy
eSBkaXJlY3RvcnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tc2hvd2xvY2FscyIs
ICAjIGRpc3BsYXkgY29udGVudHMgb2YgdmFyaWFibGVzIGluIGxvY2FsIHNjb3BlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICItcCIsICJubzptb3psb2ciLCAgIyB1c2UgdGhlIFdQVCBy
ZXN1bHQgcmVjb3JkZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1wIiwgIm5vOmNh
Y2hlcHJvdmlkZXIiLCAgIyBkaXNhYmxlIHN0YXRlIHByZXNlcnZhdGlvbiBhY3Jvc3MgaW52b2Nh
dGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1vPWNvbnNvbGVfb3V0cHV0X3N0
eWxlPWNsYXNzaWMiLCAgIyBkaXNhYmxlIHRlc3QgcHJvZ3Jlc3MgYmFyCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhdGhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdp
bnM9W2hhcm5lc3MsIHN1YnRlc3RzXSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg
ZToKKyAgICAgICAgICAgICAgICBoYXJuZXNzLm91dGNvbWUgPSAoIklOVEVSTkFMLUVSUk9SIiwg
c3RyKGUpKQorCisgICAgZmluYWxseToKKyAgICAgICAgb3MuZW52aXJvbiA9IG9sZF9lbnZpcm9u
CiAKICAgICByZXR1cm4gKGhhcm5lc3Mub3V0Y29tZSwgc3VidGVzdHMucmVzdWx0cykKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQppbmRl
eCA5MTAzNThmNTE1OTZmOWUzOTJmODFlZjE1NmNkZDBiMTAxOTgzYjdiLi45N2Q3NGRhNGU0MDM0
MTkzZjg3MjI1NDgzY2ZkYTc5N2Y4MWFlMGJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9u
dC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQpAQCAtODAsMTAgKzgwLDEwIEBAIGNsYXNz
IEZvbnRJbnN0YWxsZXIob2JqZWN0KToKICAgICAgICAgZm9udHMgPSBjaGVja19vdXRwdXQoWycv
dXNyL3NiaW4vc3lzdGVtX3Byb2ZpbGVyJywgJy14bWwnLCAnU1BGb250c0RhdGFUeXBlJ10pCiAg
ICAgICAgIHRyeToKICAgICAgICAgICAgICMgaWYgcHkzCi0gICAgICAgICAgICByZWFkUGxpc3RG
cm9tQnl0ZXMgPSBwbGlzdGxpYi5yZWFkUGxpc3RGcm9tQnl0ZXMKKyAgICAgICAgICAgIGxvYWRf
cGxpc3QgPSBwbGlzdGxpYi5sb2FkcwogICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0g
ICAgICAgICAgICByZWFkUGxpc3RGcm9tQnl0ZXMgPSBwbGlzdGxpYi5yZWFkUGxpc3RGcm9tU3Ry
aW5nCi0gICAgICAgIGZvbnRzID0gcmVhZFBsaXN0RnJvbUJ5dGVzKGZvbnRzKQorICAgICAgICAg
ICAgbG9hZF9wbGlzdCA9IHBsaXN0bGliLnJlYWRQbGlzdEZyb21TdHJpbmcKKyAgICAgICAgZm9u
dHMgPSBsb2FkX3BsaXN0KGZvbnRzKQogICAgICAgICBhc3NlcnQgbGVuKGZvbnRzKSA9PSAxCiAg
ICAgICAgIGZvciBmb250IGluIGZvbnRzWzBdWydfaXRlbXMnXToKICAgICAgICAgICAgIGlmIGZv
bnRbJ3BhdGgnXSA9PSBpbnN0YWxsZWRfZm9udF9wYXRoOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Zvcm1hdHRlcnMvY2hyb21pdW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9jaHJv
bWl1bS5weQppbmRleCBjZWYwMWM0ZmZjNWRkMmRmNjdkZGZiNmVkNzQ2ZDNlYTRjNWM0ZDc2Li4y
ZmYyYmQxZTA4M2EzNDM5ZDEyODljOWY1NDBhOGJiMmIxZTIwZGJjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZm9ybWF0dGVycy9jaHJvbWl1bS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0
dGVycy9jaHJvbWl1bS5weQpAQCAtMzEsNDggKzMxLDU1IEBAIGNsYXNzIENocm9taXVtRm9ybWF0
dGVyKGJhc2UuQmFzZUZvcm1hdHRlcik6CiAgICAgICAgICMgdGhlIHRyaWUgYW5kIHRoZSBsZWFm
IGNvbnRhaW5zIHRoZSBkaWN0IG9mIHBlci10ZXN0IGRhdGEuCiAgICAgICAgIHNlbGYudGVzdHMg
PSB7fQogCi0gICAgICAgICMgTWVzc2FnZSBkaWN0aW9uYXJ5LCBrZXllZCBieSB0ZXN0IG5hbWUu
IFZhbHVlIGlzIGEgbGlzdCBvZiBzdHJpbmdzOgotICAgICAgICAjIHNlZSBfYXBwZW5kX3Rlc3Rf
bWVzc2FnZSBmb3IgdGhlIGZvcm1hdC4KKyAgICAgICAgIyBUd28gZGljdGlvbmFyaWVzIGtleWVk
IGJ5IHRlc3QgbmFtZS4gVmFsdWVzIGFyZSBsaXN0cyBvZiBzdHJpbmdzOgorICAgICAgICAjIGFj
dHVhbCBtZXRhZGF0YSBjb250ZW50IGFuZCBvdGhlciBtZXNzYWdlcywgcmVzcGVjdGl2ZWx5Lgor
ICAgICAgICAjIFNlZSBfYXBwZW5kX3Rlc3RfbWVzc2FnZSBmb3IgZXhhbXBsZXMuCisgICAgICAg
IHNlbGYuYWN0dWFsX21ldGFkYXRhID0gZGVmYXVsdGRpY3QobGlzdCkKICAgICAgICAgc2VsZi5t
ZXNzYWdlcyA9IGRlZmF1bHRkaWN0KGxpc3QpCiAKICAgICAgICAgIyBMaXN0IG9mIHRlc3RzIHRo
YXQgaGF2ZSBmYWlsaW5nIHN1YnRlc3RzLgogICAgICAgICBzZWxmLnRlc3RzX3dpdGhfc3VidGVz
dF9mYWlscyA9IHNldCgpCiAKICAgICAgICAgIyBCcm93c2VyIGxvZyBmb3IgdGhlIGN1cnJlbnQg
dGVzdCB1bmRlciBleGVjdXRpb24uCi0gICAgICAgIHNlbGYudGVzdF9sb2cgPSBbXQorICAgICAg
ICAjIFRoZXNlIGxvZ3MgYXJlIGZyb20gQ2hyb21lRHJpdmVyJ3Mgc3Rkb3V0L2Vyciwgc28gd2Ug
Y2Fubm90IHNheSBmb3IKKyAgICAgICAgIyBzdXJlIHdoaWNoIHRlc3QgYSBtZXNzYWdlIGlzIGZy
b20sIGJ1dCBpbnN0ZWFkIHdlIGNvcnJlbGF0ZSB0aGVtIGJhc2VkCisgICAgICAgICMgb24gdGlt
aW5nLgorICAgICAgICBzZWxmLmJyb3dzZXJfbG9nID0gW10KIAogICAgIGRlZiBfYXBwZW5kX3Rl
c3RfbWVzc2FnZShzZWxmLCB0ZXN0LCBzdWJ0ZXN0LCB3cHRfYWN0dWFsX3N0YXR1cywgbWVzc2Fn
ZSk6Ci0gICAgICAgICIiIgorICAgICAgICByIiIiCiAgICAgICAgIEFwcGVuZHMgdGhlIG1lc3Nh
Z2UgZGF0YSBmb3IgYSB0ZXN0IG9yIHN1YnRlc3QuCisKICAgICAgICAgOnBhcmFtIHN0ciB0ZXN0
OiB0aGUgbmFtZSBvZiB0aGUgdGVzdAogICAgICAgICA6cGFyYW0gc3RyIHN1YnRlc3Q6IHRoZSBu
YW1lIG9mIHRoZSBzdWJ0ZXN0IHdpdGggdGhlIG1lc3NhZ2UuIFdpbGwgYmUKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOb25lIGlmIHRoaXMgaXMgY2FsbGVkIGZvciBhIHRlc3QuCiAgICAg
ICAgIDpwYXJhbSBzdHIgd3B0X2FjdHVhbF9zdGF0dXM6IHRoZSB0ZXN0IHN0YXR1cyBhcyByZXBv
cnRlZCBieSBXUFQKICAgICAgICAgOnBhcmFtIHN0ciBtZXNzYWdlOiB0aGUgc3RyaW5nIHRvIGFw
cGVuZCB0byB0aGUgbWVzc2FnZSBmb3IgdGhpcyB0ZXN0CiAKLSAgICAgICAgRXhhbXBsZToKLSAg
ICAgICAgICBbdGVzdF9vcl9zdWJ0ZXN0X25hbWVdCi0gICAgICAgICAgICBleHBlY3RlZDogRkFJ
TAotICAgICAgICAgICAgbWVzc2FnZTogc29tZSB0ZXN0IG1lc3NhZ2UgZWcgYXNzZXJ0IGZhaWx1
cmUKKyAgICAgICAgRXhhbXBsZSBhY3R1YWxfbWV0YWRhdGEgb2YgYSB0ZXN0IHdpdGggYSBzdWJ0
ZXN0OgorICAgICAgICAgICAgIlt0ZXN0X25hbWVdXG4gIGV4cGVjdGVkOiBPS1xuIgorICAgICAg
ICAgICAgIiAgW3N1YnRlc3RfbmFtZV1cbiAgICBleHBlY3RlZDogRkFJTFxuIgorCisgICAgICAg
IE5PVEU6IHRocm91Z2hvdXQgdGhpcyBmdW5jdGlvbiB3ZSBvdXRwdXQgYSBrZXkgY2FsbGVkICJl
eHBlY3RlZCIgYnV0CisgICAgICAgIGZpbGwgaXQgaW4gd2l0aCB0aGUgYWN0dWFsIHN0YXR1cy4g
VGhpcyBpcyBieSBkZXNpZ24uIFRoZSBnb2FsIG9mIHRoaXMKKyAgICAgICAgb3V0cHV0IGlzIHRv
IGxvb2sgZXhhY3RseSBsaWtlIFdQVCdzIGV4cGVjdGF0aW9uIG1ldGFkYXRhIHNvIHRoYXQgaXQK
KyAgICAgICAgY2FuIGJlIGVhc2lseSBkaWZmLWVkLgorCisgICAgICAgIE1lc3NhZ2VzIGFyZSBh
cHBlbmRlZCB2ZXJiYXRpbSB0byBzZWxmLm1lc3NhZ2VzW3Rlc3RdLgogICAgICAgICAiIiIKLSAg
ICAgICAgIyBOT1RFOiB0aHJvdWdob3V0IHRoaXMgZnVuY3Rpb24gd2Ugb3V0cHV0IGEga2V5IGNh
bGxlZCAiZXhwZWN0ZWQiIGJ1dAotICAgICAgICAjIGZpbGwgaXQgaW4gd2l0aCB0aGUgYWN0dWFs
IHN0YXR1cy4gVGhpcyBpcyBieSBkZXNpZ24uIFRoZSBnb2FsIG9mIHRoaXMKLSAgICAgICAgIyBv
dXRwdXQgaXMgdG8gbG9vayBleGFjdGx5IGxpa2UgV1BUJ3MgZXhwZWN0YXRpb24gbWV0YWRhdGEg
c28gdGhhdCBpdAotICAgICAgICAjIGNhbiBiZSBlYXNpbHkgZGlmZi1lZC4KICAgICAgICAgaWYg
c3VidGVzdDoKICAgICAgICAgICAgIHJlc3VsdCA9ICIgIFslc11cbiAgICBleHBlY3RlZDogJXNc
biIgJSAoc3VidGVzdCwgd3B0X2FjdHVhbF9zdGF0dXMpCisgICAgICAgICAgICBzZWxmLmFjdHVh
bF9tZXRhZGF0YVt0ZXN0XS5hcHBlbmQocmVzdWx0KQogICAgICAgICAgICAgaWYgbWVzc2FnZToK
LSAgICAgICAgICAgICAgICByZXN1bHQgKz0gIiAgICBtZXNzYWdlOiAlc1xuIiAlIG1lc3NhZ2UK
LSAgICAgICAgICAgIHNlbGYubWVzc2FnZXNbdGVzdF0uYXBwZW5kKHJlc3VsdCkKKyAgICAgICAg
ICAgICAgICBzZWxmLm1lc3NhZ2VzW3Rlc3RdLmFwcGVuZCgiJXM6ICVzXG4iICUgKHN1YnRlc3Qs
IG1lc3NhZ2UpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgIyBObyBzdWJ0ZXN0LCBzbyB0
aGlzIGlzIHRoZSB0b3AtbGV2ZWwgdGVzdC4gVGhlIHJlc3VsdCBtdXN0IGJlCi0gICAgICAgICAg
ICAjIHByZXBlbmRlZCB0byB0aGUgbGlzdCBvZiBtZXNzYWdlcywgc28gdGhhdCB0aGUgbWVzc2Fn
ZSBmb3IgdGhlCi0gICAgICAgICAgICAjIHRlc3QgY29tZXMgYmVmb3JlIGFueSBzdWJ0ZXN0IG1l
c3NhZ2VzLgorICAgICAgICAgICAgIyBwcmVwZW5kZWQgdG8gdGhlIGxpc3QsIHNvIHRoYXQgaXQg
Y29tZXMgYmVmb3JlIGFueSBzdWJ0ZXN0LgogICAgICAgICAgICAgdGVzdF9uYW1lX2xhc3RfcGFy
dCA9IHRlc3Quc3BsaXQoIi8iKVstMV0KICAgICAgICAgICAgIHJlc3VsdCA9ICJbJXNdXG4gIGV4
cGVjdGVkOiAlc1xuIiAlICh0ZXN0X25hbWVfbGFzdF9wYXJ0LCB3cHRfYWN0dWFsX3N0YXR1cykK
KyAgICAgICAgICAgIHNlbGYuYWN0dWFsX21ldGFkYXRhW3Rlc3RdLmluc2VydCgwLCByZXN1bHQp
CiAgICAgICAgICAgICBpZiBtZXNzYWdlOgotICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiICBt
ZXNzYWdlOiAlc1xuIiAlIG1lc3NhZ2UKLSAgICAgICAgICAgIHNlbGYubWVzc2FnZXNbdGVzdF0u
aW5zZXJ0KDAsIHJlc3VsdCkKKyAgICAgICAgICAgICAgICBzZWxmLm1lc3NhZ2VzW3Rlc3RdLmlu
c2VydCgwLCAiSGFybmVzczogJXNcbiIgJSBtZXNzYWdlKQogCiAgICAgZGVmIF9hcHBlbmRfYXJ0
aWZhY3Qoc2VsZiwgY3VyX2RpY3QsIGFydGlmYWN0X25hbWUsIGFydGlmYWN0X3ZhbHVlKToKICAg
ICAgICAgIiIiCkBAIC04NiwxMyArOTMsMTYgQEAgY2xhc3MgQ2hyb21pdW1Gb3JtYXR0ZXIoYmFz
ZS5CYXNlRm9ybWF0dGVyKToKICAgICAgICAgICAgIGN1cl9kaWN0WyJhcnRpZmFjdHMiXSA9IGRl
ZmF1bHRkaWN0KGxpc3QpCiAgICAgICAgIGN1cl9kaWN0WyJhcnRpZmFjdHMiXVthcnRpZmFjdF9u
YW1lXS5hcHBlbmQoYXJ0aWZhY3RfdmFsdWUpCiAKLSAgICBkZWYgX3N0b3JlX3Rlc3RfcmVzdWx0
KHNlbGYsIG5hbWUsIGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2VzLCB3cHRfYWN0dWFsLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VidGVzdF9mYWlsdXJlLCByZWZ0ZXN0X3NjcmVlbnNo
b3RzKToKKyAgICBkZWYgX3N0b3JlX3Rlc3RfcmVzdWx0KHNlbGYsIG5hbWUsIGFjdHVhbCwgZXhw
ZWN0ZWQsIGFjdHVhbF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2VzLCB3cHRfYWN0dWFsLCBzdWJ0ZXN0X2ZhaWx1cmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWZ0ZXN0X3NjcmVlbnNob3RzPU5vbmUpOgogICAgICAgICAiIiIKICAgICAgICAgU3Rv
cmVzIHRoZSByZXN1bHQgb2YgYSBzaW5nbGUgdGVzdCBpbiB8c2VsZi50ZXN0c3wKKwogICAgICAg
ICA6cGFyYW0gc3RyIG5hbWU6IG5hbWUgb2YgdGhlIHRlc3QuCiAgICAgICAgIDpwYXJhbSBzdHIg
YWN0dWFsOiBhY3R1YWwgc3RhdHVzIG9mIHRoZSB0ZXN0LgogICAgICAgICA6cGFyYW0gc3RyIGV4
cGVjdGVkOiBleHBlY3RlZCBzdGF0dXNlcyBvZiB0aGUgdGVzdC4KKyAgICAgICAgOnBhcmFtIGxp
c3QgYWN0dWFsX21ldGFkYXRhOiBhIGxpc3Qgb2YgbWV0YWRhdGEgaXRlbXMuCiAgICAgICAgIDpw
YXJhbSBsaXN0IG1lc3NhZ2VzOiBhIGxpc3Qgb2YgdGVzdCBtZXNzYWdlcy4KICAgICAgICAgOnBh
cmFtIHN0ciB3cHRfYWN0dWFsOiBhY3R1YWwgc3RhdHVzIHJlcG9ydGVkIGJ5IHdwdCwgbWF5IGRp
ZmZlciBmcm9tIHxhY3R1YWx8LgogICAgICAgICA6cGFyYW0gYm9vbCBzdWJ0ZXN0X2ZhaWx1cmU6
IHdoZXRoZXIgdGhpcyB0ZXN0IGZhaWxlZCBiZWNhdXNlIG9mIHN1YnRlc3RzLgpAQCAtMTEyLDEw
ICsxMjIsMTIgQEAgY2xhc3MgQ2hyb21pdW1Gb3JtYXR0ZXIoYmFzZS5CYXNlRm9ybWF0dGVyKToK
ICAgICAgICAgaWYgd3B0X2FjdHVhbCAhPSBhY3R1YWw6CiAgICAgICAgICAgICBzZWxmLl9hcHBl
bmRfYXJ0aWZhY3QoY3VyX2RpY3QsICJ3cHRfYWN0dWFsX3N0YXR1cyIsIHdwdF9hY3R1YWwpCiAg
ICAgICAgIGlmIHdwdF9hY3R1YWwgPT0gJ0NSQVNIJzoKLSAgICAgICAgICAgIGZvciBsaW5lIGlu
IHNlbGYudGVzdF9sb2c6CisgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmJyb3dzZXJfbG9n
OgogICAgICAgICAgICAgICAgIHNlbGYuX2FwcGVuZF9hcnRpZmFjdChjdXJfZGljdCwgIndwdF9j
cmFzaF9sb2ciLCBsaW5lKQorICAgICAgICBmb3IgbWV0YWRhdGEgaW4gYWN0dWFsX21ldGFkYXRh
OgorICAgICAgICAgICAgc2VsZi5fYXBwZW5kX2FydGlmYWN0KGN1cl9kaWN0LCAid3B0X2FjdHVh
bF9tZXRhZGF0YSIsIG1ldGFkYXRhKQogICAgICAgICBmb3IgbWVzc2FnZSBpbiBtZXNzYWdlczoK
LSAgICAgICAgICAgIHNlbGYuX2FwcGVuZF9hcnRpZmFjdChjdXJfZGljdCwgImxvZyIsIG1lc3Nh
Z2UpCisgICAgICAgICAgICBzZWxmLl9hcHBlbmRfYXJ0aWZhY3QoY3VyX2RpY3QsICJ3cHRfbG9n
IiwgbWVzc2FnZSkKIAogICAgICAgICAjIFN0b3JlIHNjcmVlbnNob3RzIChpZiBhbnkpLgogICAg
ICAgICBmb3IgaXRlbSBpbiByZWZ0ZXN0X3NjcmVlbnNob3RzIG9yIFtdOgpAQCAtMTcyLDcgKzE4
NCw3IEBAIGNsYXNzIENocm9taXVtRm9ybWF0dGVyKGJhc2UuQmFzZUZvcm1hdHRlcik6CiAgICAg
ICAgIHRvIHRoZSBhY3R1YWwgc3RhdHVzIGlmIGl0J3Mgbm90LgogCiAgICAgICAgIElmIHRoZSB0
ZXN0IGhhcyBtdWx0aXBsZSBzdGF0dXNlcywgaXQgd2lsbCBoYXZlIG90aGVyIHN0YXR1c2VzIGxp
c3RlZCBhcwotICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IiBpbiB8ZGF0YXwuIElmIHRoZXNl
IGV4aXN0LCB0aGV5IHdpbGwgYmUgYXBwZW5kZWQgdG8KKyAgICAgICAgImtub3duX2ludGVybWl0
dGVudCIgaW4gfGRhdGF8LiBJZiB0aGVzZSBleGlzdCwgdGhleSB3aWxsIGJlIGFkZGVkIHRvCiAg
ICAgICAgIHRoZSByZXR1cm5lZCBzdGF0dXMgd2l0aCBzcGFjZWQgaW4gYmV0d2Vlbi4KIAogICAg
ICAgICA6cGFyYW0gc3RyIGFjdHVhbF9zdGF0dXM6IHRoZSBhY3R1YWwgc3RhdHVzIG9mIHRoZSB0
ZXN0CkBAIC0xODEsOCArMTkzLDkgQEAgY2xhc3MgQ2hyb21pdW1Gb3JtYXR0ZXIoYmFzZS5CYXNl
Rm9ybWF0dGVyKToKICAgICAgICAgIiIiCiAgICAgICAgIGV4cGVjdGVkX3N0YXR1c2VzID0gc2Vs
Zi5fbWFwX3N0YXR1c19uYW1lKGRhdGFbImV4cGVjdGVkIl0pIGlmICJleHBlY3RlZCIgaW4gZGF0
YSBlbHNlIGFjdHVhbF9zdGF0dXMKICAgICAgICAgaWYgZGF0YS5nZXQoImtub3duX2ludGVybWl0
dGVudCIpOgotICAgICAgICAgICAgZXhwZWN0ZWRfc3RhdHVzZXMgKz0gIiAiICsgIiAiLmpvaW4o
Ci0gICAgICAgICAgICAgICAgW3NlbGYuX21hcF9zdGF0dXNfbmFtZShvdGhlcl9zdGF0dXMpIGZv
ciBvdGhlcl9zdGF0dXMgaW4gZGF0YVsia25vd25faW50ZXJtaXR0ZW50Il1dKQorICAgICAgICAg
ICAgYWxsX3N0YXRzdWVzID0ge3NlbGYuX21hcF9zdGF0dXNfbmFtZShvdGhlcl9zdGF0dXMpIGZv
ciBvdGhlcl9zdGF0dXMgaW4gZGF0YVsia25vd25faW50ZXJtaXR0ZW50Il19CisgICAgICAgICAg
ICBhbGxfc3RhdHN1ZXMuYWRkKGV4cGVjdGVkX3N0YXR1c2VzKQorICAgICAgICAgICAgZXhwZWN0
ZWRfc3RhdHVzZXMgPSAiICIuam9pbihzb3J0ZWQoYWxsX3N0YXRzdWVzKSkKICAgICAgICAgcmV0
dXJuIGV4cGVjdGVkX3N0YXR1c2VzCiAKICAgICBkZWYgc3VpdGVfc3RhcnQoc2VsZiwgZGF0YSk6
CkBAIC0yMjksMTkgKzI0MiwyMSBAQCBjbGFzcyBDaHJvbWl1bUZvcm1hdHRlcihiYXNlLkJhc2VG
b3JtYXR0ZXIpOgogICAgICAgICBzZWxmLl9zdG9yZV90ZXN0X3Jlc3VsdCh0ZXN0X25hbWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9zdGF0dXMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3N0YXR1c2VzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmFjdHVhbF9tZXRhZGF0YVt0ZXN0X25hbWVdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1lc3NhZ2VzW3Rlc3RfbmFtZV0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdwdF9hY3R1YWxfc3RhdHVzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0X2ZhaWx1cmUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGEuZ2V0KCJleHRyYSIsIHt9KS5nZXQoInJlZnRlc3Rfc2NyZWVu
c2hvdHMiKSkKIAotICAgICAgICAjIFJlbW92ZSB0aGUgdGVzdCBmcm9tIG1lc3NhZ2VzIGRpY3Qg
dG8gYXZvaWQgYWNjdW11bGF0aW5nIHRvbyBtYW55LgorICAgICAgICAjIFJlbW92ZSB0aGUgdGVz
dCBmcm9tIGRpY3RzIHRvIGF2b2lkIGFjY3VtdWxhdGluZyB0b28gbWFueS4KKyAgICAgICAgc2Vs
Zi5hY3R1YWxfbWV0YWRhdGEucG9wKHRlc3RfbmFtZSkKICAgICAgICAgc2VsZi5tZXNzYWdlcy5w
b3AodGVzdF9uYW1lKQogCiAgICAgICAgICMgVXBkYXRlIHRoZSBjb3VudCBvZiBob3cgbWFueSB0
ZXN0cyByYW4gd2l0aCBlYWNoIHN0YXR1cy4KICAgICAgICAgc2VsZi5udW1fZmFpbHVyZXNfYnlf
c3RhdHVzW2FjdHVhbF9zdGF0dXNdICs9IDEKIAogICAgICAgICAjIE5ldyB0ZXN0LCBuZXcgYnJv
d3NlciBsb2dzLgotICAgICAgICBzZWxmLnRlc3RfbG9nID0gW10KKyAgICAgICAgc2VsZi5icm93
c2VyX2xvZyA9IFtdCiAKICAgICBkZWYgc3VpdGVfZW5kKHNlbGYsIGRhdGEpOgogICAgICAgICAj
IENyZWF0ZSB0aGUgZmluYWwgcmVzdWx0IGRpY3Rpb25hcnkKQEAgLTI1OCw0ICsyNzMsNCBAQCBj
bGFzcyBDaHJvbWl1bUZvcm1hdHRlcihiYXNlLkJhc2VGb3JtYXR0ZXIpOgogCiAgICAgZGVmIHBy
b2Nlc3Nfb3V0cHV0KHNlbGYsIGRhdGEpOgogICAgICAgICBpZiAnY29tbWFuZCcgaW4gZGF0YSBh
bmQgJ2Nocm9tZWRyaXZlcicgaW4gZGF0YVsnY29tbWFuZCddOgotICAgICAgICAgICAgc2VsZi50
ZXN0X2xvZy5hcHBlbmQoZGF0YVsnZGF0YSddKQorICAgICAgICAgICAgc2VsZi5icm93c2VyX2xv
Zy5hcHBlbmQoZGF0YVsnZGF0YSddKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRl
cnMvdGVzdHMvdGVzdF9jaHJvbWl1bS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3Rz
L3Rlc3RfY2hyb21pdW0ucHkKaW5kZXggOGY4ZTczMmQ0NzM2MzM3Y2NmZWNiYjEzZjFmYjhiNTkw
YzlkZjUyYS4uNTVhMTJiMWQ3NzQ4YWVkOTdiMzhhNTY4NDhmMDUyZDc3NDEyZGNjYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMvdGVzdF9jaHJvbWl1bS5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy90ZXN0cy90ZXN0X2Nocm9taXVtLnB5CkBAIC0xNTcs
MTcgKzE1NywyNCBAQCBkZWYgdGVzdF9zdWJ0ZXN0X21lc3NhZ2VzKGNhcGZkKToKICAgICBvdXRw
dXRfanNvbiA9IGpzb24ubG9hZChvdXRwdXQpCiAKICAgICB0MV9hcnRpZmFjdHMgPSBvdXRwdXRf
anNvblsidGVzdHMiXVsidDEiXVsiYXJ0aWZhY3RzIl0KLSAgICBhc3NlcnQgdDFfYXJ0aWZhY3Rz
WyJsb2ciXSA9PSBbCisgICAgYXNzZXJ0IHQxX2FydGlmYWN0c1sid3B0X2FjdHVhbF9tZXRhZGF0
YSJdID09IFsKICAgICAgICAgIlt0MV1cbiAgZXhwZWN0ZWQ6IFBBU1NcbiIsCi0gICAgICAgICIg
IFt0MV9hXVxuICAgIGV4cGVjdGVkOiBGQUlMXG4gICAgbWVzc2FnZTogdDFfYV9tZXNzYWdlXG4i
LAotICAgICAgICAiICBbdDFfYl1cbiAgICBleHBlY3RlZDogUEFTU1xuICAgIG1lc3NhZ2U6IHQx
X2JfbWVzc2FnZVxuIiwKKyAgICAgICAgIiAgW3QxX2FdXG4gICAgZXhwZWN0ZWQ6IEZBSUxcbiIs
CisgICAgICAgICIgIFt0MV9iXVxuICAgIGV4cGVjdGVkOiBQQVNTXG4iLAorICAgIF0KKyAgICBh
c3NlcnQgdDFfYXJ0aWZhY3RzWyJ3cHRfbG9nIl0gPT0gWworICAgICAgICAidDFfYTogdDFfYV9t
ZXNzYWdlXG4iLAorICAgICAgICAidDFfYjogdDFfYl9tZXNzYWdlXG4iLAogICAgIF0KICAgICBh
c3NlcnQgdDFfYXJ0aWZhY3RzWyJ3cHRfc3VidGVzdF9mYWlsdXJlIl0gPT0gWyJ0cnVlIl0KICAg
ICB0Ml9hcnRpZmFjdHMgPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDIiXVsiYXJ0aWZhY3RzIl0K
LSAgICBhc3NlcnQgdDJfYXJ0aWZhY3RzWyJsb2ciXSA9PSBbCi0gICAgICAgICJbdDJdXG4gIGV4
cGVjdGVkOiBUSU1FT1VUXG4gIG1lc3NhZ2U6IHQyX21lc3NhZ2VcbiIsCisgICAgYXNzZXJ0IHQy
X2FydGlmYWN0c1sid3B0X2FjdHVhbF9tZXRhZGF0YSJdID09IFsKKyAgICAgICAgIlt0Ml1cbiAg
ZXhwZWN0ZWQ6IFRJTUVPVVRcbiIsCiAgICAgICAgICIgIFt0Ml9hXVxuICAgIGV4cGVjdGVkOiBQ
QVNTXG4iLAogICAgIF0KKyAgICBhc3NlcnQgdDJfYXJ0aWZhY3RzWyJ3cHRfbG9nIl0gPT0gWwor
ICAgICAgICAiSGFybmVzczogdDJfbWVzc2FnZVxuIgorICAgIF0KICAgICBhc3NlcnQgIndwdF9z
dWJ0ZXN0X2ZhaWx1cmUiIG5vdCBpbiB0Ml9hcnRpZmFjdHMua2V5cygpCiAKIApAQCAtMjEwLDEx
ICsyMTcsMTcgQEAgZGVmIHRlc3Rfc3VidGVzdF9mYWlsdXJlKGNhcGZkKToKIAogICAgIHRlc3Rf
b2JqID0gb3V0cHV0X2pzb25bInRlc3RzIl1bInQxIl0KICAgICB0MV9hcnRpZmFjdHMgPSB0ZXN0
X29ialsiYXJ0aWZhY3RzIl0KLSAgICBhc3NlcnQgdDFfYXJ0aWZhY3RzWyJsb2ciXSA9PSBbCi0g
ICAgICAgICJbdDFdXG4gIGV4cGVjdGVkOiBQQVNTXG4gIG1lc3NhZ2U6IHRvcF9tZXNzYWdlXG4i
LAotICAgICAgICAiICBbdDFfYV1cbiAgICBleHBlY3RlZDogRkFJTFxuICAgIG1lc3NhZ2U6IHQx
X2FfbWVzc2FnZVxuIiwKLSAgICAgICAgIiAgW3QxX2JdXG4gICAgZXhwZWN0ZWQ6IFBBU1NcbiAg
ICBtZXNzYWdlOiB0MV9iX21lc3NhZ2VcbiIsCi0gICAgICAgICIgIFt0MV9jXVxuICAgIGV4cGVj
dGVkOiBUSU1FT1VUXG4gICAgbWVzc2FnZTogdDFfY19tZXNzYWdlXG4iLAorICAgIGFzc2VydCB0
MV9hcnRpZmFjdHNbIndwdF9hY3R1YWxfbWV0YWRhdGEiXSA9PSBbCisgICAgICAgICJbdDFdXG4g
IGV4cGVjdGVkOiBQQVNTXG4iLAorICAgICAgICAiICBbdDFfYV1cbiAgICBleHBlY3RlZDogRkFJ
TFxuIiwKKyAgICAgICAgIiAgW3QxX2JdXG4gICAgZXhwZWN0ZWQ6IFBBU1NcbiIsCisgICAgICAg
ICIgIFt0MV9jXVxuICAgIGV4cGVjdGVkOiBUSU1FT1VUXG4iLAorICAgIF0KKyAgICBhc3NlcnQg
dDFfYXJ0aWZhY3RzWyJ3cHRfbG9nIl0gPT0gWworICAgICAgICAiSGFybmVzczogdG9wX21lc3Nh
Z2VcbiIsCisgICAgICAgICJ0MV9hOiB0MV9hX21lc3NhZ2VcbiIsCisgICAgICAgICJ0MV9iOiB0
MV9iX21lc3NhZ2VcbiIsCisgICAgICAgICJ0MV9jOiB0MV9jX21lc3NhZ2VcbiIsCiAgICAgXQog
ICAgIGFzc2VydCB0MV9hcnRpZmFjdHNbIndwdF9zdWJ0ZXN0X2ZhaWx1cmUiXSA9PSBbInRydWUi
XQogICAgICMgVGhlIHN0YXR1cyBvZiB0aGUgdGVzdCBpbiB0aGUgb3V0cHV0IGlzIGEgZmFpbHVy
ZSBiZWNhdXNlIHN1YnRlc3RzIGZhaWxlZCwKQEAgLTI2NiwxMyArMjc5LDE2IEBAIGRlZiB0ZXN0
X2V4cGVjdGVkX3N1YnRlc3RfZmFpbHVyZShjYXBmZCk6CiAgICAgb3V0cHV0X2pzb24gPSBqc29u
LmxvYWQob3V0cHV0KQogCiAgICAgdGVzdF9vYmogPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDEi
XQotICAgIHQxX2xvZyA9IHRlc3Rfb2JqWyJhcnRpZmFjdHMiXVsibG9nIl0KLSAgICBwcmludCgi
THB6IHQxbG9nPSVzIiAlIHQxX2xvZykKLSAgICBhc3NlcnQgdDFfbG9nID09IFsKKyAgICBhc3Nl
cnQgdGVzdF9vYmpbImFydGlmYWN0cyJdWyJ3cHRfYWN0dWFsX21ldGFkYXRhIl0gPT0gWwogICAg
ICAgICAiW3QxXVxuICBleHBlY3RlZDogT0tcbiIsCi0gICAgICAgICIgIFt0MV9hXVxuICAgIGV4
cGVjdGVkOiBGQUlMXG4gICAgbWVzc2FnZTogdDFfYV9tZXNzYWdlXG4iLAotICAgICAgICAiICBb
dDFfYl1cbiAgICBleHBlY3RlZDogUEFTU1xuICAgIG1lc3NhZ2U6IHQxX2JfbWVzc2FnZVxuIiwK
LSAgICAgICAgIiAgW3QxX2NdXG4gICAgZXhwZWN0ZWQ6IFRJTUVPVVRcbiAgICBtZXNzYWdlOiB0
MV9jX21lc3NhZ2VcbiIsCisgICAgICAgICIgIFt0MV9hXVxuICAgIGV4cGVjdGVkOiBGQUlMXG4i
LAorICAgICAgICAiICBbdDFfYl1cbiAgICBleHBlY3RlZDogUEFTU1xuIiwKKyAgICAgICAgIiAg
W3QxX2NdXG4gICAgZXhwZWN0ZWQ6IFRJTUVPVVRcbiIsCisgICAgXQorICAgIGFzc2VydCB0ZXN0
X29ialsiYXJ0aWZhY3RzIl1bIndwdF9sb2ciXSA9PSBbCisgICAgICAgICJ0MV9hOiB0MV9hX21l
c3NhZ2VcbiIsCisgICAgICAgICJ0MV9iOiB0MV9iX21lc3NhZ2VcbiIsCisgICAgICAgICJ0MV9j
OiB0MV9jX21lc3NhZ2VcbiIsCiAgICAgXQogICAgICMgVGhlIHN0YXR1cyBvZiB0aGUgdGVzdCBp
biB0aGUgb3V0cHV0IGlzIGEgcGFzcyBiZWNhdXNlIHRoZSBzdWJ0ZXN0CiAgICAgIyBmYWlsdXJl
cyB3ZXJlIGFsbCBleHBlY3RlZC4KQEAgLTMxNiw5ICszMzIsMTIgQEAgZGVmIHRlc3RfdW5leHBl
Y3RlZF9zdWJ0ZXN0X3Bhc3MoY2FwZmQpOgogCiAgICAgdGVzdF9vYmogPSBvdXRwdXRfanNvblsi
dGVzdHMiXVsidDEiXQogICAgIHQxX2FydGlmYWN0cyA9IHRlc3Rfb2JqWyJhcnRpZmFjdHMiXQot
ICAgIGFzc2VydCB0MV9hcnRpZmFjdHNbImxvZyJdID09IFsKKyAgICBhc3NlcnQgdDFfYXJ0aWZh
Y3RzWyJ3cHRfYWN0dWFsX21ldGFkYXRhIl0gPT0gWwogICAgICAgICAiW3QxXVxuICBleHBlY3Rl
ZDogUEFTU1xuIiwKLSAgICAgICAgIiAgW3QxX2FdXG4gICAgZXhwZWN0ZWQ6IFBBU1NcbiAgICBt
ZXNzYWdlOiB0MV9hX21lc3NhZ2VcbiIsCisgICAgICAgICIgIFt0MV9hXVxuICAgIGV4cGVjdGVk
OiBQQVNTXG4iLAorICAgIF0KKyAgICBhc3NlcnQgdDFfYXJ0aWZhY3RzWyJ3cHRfbG9nIl0gPT0g
WworICAgICAgICAidDFfYTogdDFfYV9tZXNzYWdlXG4iLAogICAgIF0KICAgICBhc3NlcnQgdDFf
YXJ0aWZhY3RzWyJ3cHRfc3VidGVzdF9mYWlsdXJlIl0gPT0gWyJ0cnVlIl0KICAgICAjIFNpbmNl
IHRoZSBzdWJ0ZXN0IHN0YXR1cyBpcyB1bmV4cGVjdGVkLCB3ZSBmYWlsIHRoZSB0ZXN0LiBCdXQg
d2UgcmVwb3J0CkBAIC00MjYsOCArNDQ1LDggQEAgZGVmIHRlc3RfZmxha3lfdGVzdF9leHBlY3Rl
ZChjYXBmZCk6CiAgICAgdGVzdF9vYmogPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDEiXQogICAg
ICMgVGhlIHRlc3QncyBzdGF0dXNlcyBhcmUgYWxsIG1hcHBlZCwgY2hhbmdpbmcgRVJST1ItPkZB
SUwgYW5kIE9LLT5QQVNTCiAgICAgYXNzZXJ0IHRlc3Rfb2JqWyJhY3R1YWwiXSA9PSAiRkFJTCIK
LSAgICAjIEFsbCB0aGUgcG9zc2libGUgc3RhdHVzZXMgYXJlIGNvbmNhdGVuYXRlZCB0b2dldGhl
ciBpbnRvIGV4cGVjdGVkLgotICAgIGFzc2VydCB0ZXN0X29ialsiZXhwZWN0ZWQiXSA9PSAiUEFT
UyBGQUlMIFRJTUVPVVQiCisgICAgIyBBbGwgdGhlIHBvc3NpYmxlIHN0YXR1c2VzIGFyZSBtZXJn
ZWQgYW5kIHNvcnRlZCB0b2dldGhlciBpbnRvIGV4cGVjdGVkLgorICAgIGFzc2VydCB0ZXN0X29i
alsiZXhwZWN0ZWQiXSA9PSAiRkFJTCBQQVNTIFRJTUVPVVQiCiAgICAgIyAuLi50aGlzIGlzIG5v
dCBhIHJlZ3Jlc3Npb24gb3IgdW5leHBlY3RlZCBiZWNhdXNlIHRoZSBhY3R1YWwgc3RhdHVzIGlz
IG9uZQogICAgICMgb2YgdGhlIGV4cGVjdGVkIG9uZXMKICAgICBhc3NlcnQgImlzX3JlZ3Jlc3Np
b24iIG5vdCBpbiB0ZXN0X29iagpAQCAtNDYyLDcgKzQ4MSw3IEBAIGRlZiB0ZXN0X2ZsYWt5X3Rl
c3RfdW5leHBlY3RlZChjYXBmZCk6CiAgICAgdGVzdF9vYmogPSBvdXRwdXRfanNvblsidGVzdHMi
XVsidDEiXQogICAgICMgVGhlIHRlc3QncyBzdGF0dXNlcyBhcmUgYWxsIG1hcHBlZCwgY2hhbmdp
bmcgRVJST1ItPkZBSUwgYW5kIE9LLT5QQVNTCiAgICAgYXNzZXJ0IHRlc3Rfb2JqWyJhY3R1YWwi
XSA9PSAiRkFJTCIKLSAgICAjIEFsbCB0aGUgcG9zc2libGUgc3RhdHVzZXMgYXJlIGNvbmNhdGVu
YXRlZCB0b2dldGhlciBpbnRvIGV4cGVjdGVkLgorICAgICMgQWxsIHRoZSBwb3NzaWJsZSBzdGF0
dXNlcyBhcmUgbWVyZ2VkIGFuZCBzb3J0ZWQgdG9nZXRoZXIgaW50byBleHBlY3RlZC4KICAgICBh
c3NlcnQgdGVzdF9vYmpbImV4cGVjdGVkIl0gPT0gIlBBU1MgVElNRU9VVCIKICAgICAjIC4uLnRo
aXMgaXMgYSByZWdyZXNzaW9uIGFuZCB1bmV4cGVjdGVkIGJlY2F1c2UgdGhlIGFjdHVhbCBzdGF0
dXMgaXMgbm90CiAgICAgIyBvbmUgb2YgdGhlIGV4cGVjdGVkIG9uZXMKQEAgLTUzNiw2ICs1NTUs
MzkgQEAgZGVmIHRlc3Rfa25vd25faW50ZXJtaXR0ZW50X2VtcHR5KGNhcGZkKToKICAgICBhc3Nl
cnQgdGVzdF9vYmpbImV4cGVjdGVkIl0gPT0gIlBBU1MiCiAKIAorZGVmIHRlc3Rfa25vd25faW50
ZXJtaXR0ZW50X2R1cGxpY2F0ZShjYXBmZCk6CisgICAgIyBXZSBkb24ndCB3YW50IHRvIGhhdmUg
ZHVwbGljYXRlIHN0YXR1c2VzIGluIHRoZSBmaW5hbCAiZXhwZWN0ZWQiIGZpZWxkLgorCisgICAg
IyBTZXQgdXAgdGhlIGhhbmRsZXIuCisgICAgb3V0cHV0ID0gU3RyaW5nSU8oKQorICAgIGxvZ2dl
ciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9hIikKKyAgICBsb2dnZXIu
YWRkX2hhbmRsZXIoaGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQsIENocm9taXVtRm9ybWF0
dGVyKCkpKQorCisgICAgIyBUaGVyZSBhcmUgdHdvIGR1cGxpY2F0aW9ucyBpbiB0aGlzIGlucHV0
OgorICAgICMgMS4ga25vd25faW50ZXJtaXR0ZW50IGFscmVhZHkgY29udGFpbnMgZXhwZWN0ZWQ7
CisgICAgIyAyLiBib3RoIHN0YXR1c2VzIGluIGtub3duX2ludGVybWl0dGVudCBtYXAgdG8gRkFJ
TCBpbiBDaHJvbWl1bS4KKyAgICAjIEluIHRoZSBlbmQsIHdlIHNob3VsZCBvbmx5IGdldCBvbmUg
RkFJTCBpbiBDaHJvbWl1bSAiZXhwZWN0ZWQiLgorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInQx
Il0sIHJ1bl9pbmZvPXt9LCB0aW1lPTEyMykKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidDEiKQor
ICAgIGxvZ2dlci50ZXN0X2VuZCgidDEiLCBzdGF0dXM9IkVSUk9SIiwgZXhwZWN0ZWQ9IkVSUk9S
Iiwga25vd25faW50ZXJtaXR0ZW50PVsiRkFJTCIsICJFUlJPUiJdKQorICAgIGxvZ2dlci5zdWl0
ZV9lbmQoKQorCisgICAgIyBDaGVjayBub3RoaW5nIGdvdCBvdXRwdXQgdG8gc3Rkb3V0L3N0ZGVy
ci4KKyAgICAjIChOb3RlIHRoYXQgbW96bG9nIG91dHB1dHMgZXhjZXB0aW9ucyBkdXJpbmcgaGFu
ZGxpbmcgdG8gc3RkZXJyISkKKyAgICBjYXB0dXJlZCA9IGNhcGZkLnJlYWRvdXRlcnIoKQorICAg
IGFzc2VydCBjYXB0dXJlZC5vdXQgPT0gIiIKKyAgICBhc3NlcnQgY2FwdHVyZWQuZXJyID09ICIi
CisKKyAgICAjIENoZWNrIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSBmb3JtYXR0ZXIuCisgICAg
b3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfanNvbiA9IGpzb24ubG9hZChvdXRwdXQpCisKKyAg
ICB0ZXN0X29iaiA9IG91dHB1dF9qc29uWyJ0ZXN0cyJdWyJ0MSJdCisgICAgYXNzZXJ0IHRlc3Rf
b2JqWyJhY3R1YWwiXSA9PSAiRkFJTCIKKyAgICAjIE5vIGR1cGxpY2F0ZSAiRkFJTCIgaW4gImV4
cGVjdGVkIi4KKyAgICBhc3NlcnQgdGVzdF9vYmpbImV4cGVjdGVkIl0gPT0gIkZBSUwiCisKKwog
ZGVmIHRlc3RfcmVmdGVzdF9zY3JlZW5zaG90cyhjYXBmZCk6CiAgICAgIyByZWZ0ZXN0X3NjcmVl
bnNob3RzLCBpZiBwcmVzZW50LCBzaG91bGQgYmUgcGx1bWJlZCBpbnRvIGFydGlmYWN0cy4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0dXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L21hbmlmZXN0dXBkYXRlLnB5CmluZGV4IDEyOTQ1N2IzZmQxMjcwZGM2NjAyOWQzZWE4NzNkMzUz
NzE0YWE2MDcuLmM3NDYzMmIwNDg2Y2ViODkxYjg1NWMxNTczZTA5MDQ1OWQ3MThhNmEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
bWFuaWZlc3R1cGRhdGUucHkKQEAgLTcxOCwxNSArNzE4LDE4IEBAIGNsYXNzIEV4cGVjdGVkVXBk
YXRlKFByb3BlcnR5VXBkYXRlKToKICAgICAgICAgICAgICMgYWRkIHRoZW0gaW4gdG8gZXhwZWN0
ZWQuCiAgICAgICAgICAgICBpZiBjb3VudCA+IDAgb3Igbm90IHNlbGYucmVtb3ZlX2ludGVybWl0
dGVudDoKICAgICAgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoc3RhdHVzKQorCisgICAgICAg
ICMgSWYgdGhlIG5ldyBpbnRlcm1pdHRlbnQgaXMgYSBzdWJzZXQgb2YgdGhlIGV4aXN0aW5nIG9u
ZSwganVzdCB1c2UgdGhlIGV4aXN0aW5nIG9uZQorICAgICAgICAjIFRoaXMgcHJldmVudHMgZnJl
cXVlbnQgZmxpcC1mbG9wcGluZyBvZiByZXN1bHRzIGJldHdlZW4gZS5nLiBbT0ssIFRJTUVPVVRd
IGFuZAorICAgICAgICAjIFtUSU1FT1VULCBPS10KKyAgICAgICAgaWYgY3VycmVudCBhbmQgc2V0
KGV4cGVjdGVkKS5pc3N1YnNldChzZXQoY3VycmVudCkpOgorICAgICAgICAgICAgcmV0dXJuIGN1
cnJlbnQKKwogICAgICAgICBpZiBzZWxmLnVwZGF0ZV9pbnRlcm1pdHRlbnQ6CiAgICAgICAgICAg
ICBpZiBsZW4oZXhwZWN0ZWQpID09IDE6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVk
WzBdCiAgICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWQKIAotICAgICAgICAjIElmIG5vdGhpbmcg
aGFzIGNoYW5nZWQgYW5kIG5vdCBzZWxmLnVwZGF0ZV9pbnRlcm1pdHRlbnQsIHByZXNlcnZlIGV4
aXN0aW5nCi0gICAgICAgICMgaW50ZXJtaXR0ZW50LgotICAgICAgICBpZiBzZXQoZXhwZWN0ZWQp
Lmlzc3Vic2V0KHNldChjdXJyZW50KSk6Ci0gICAgICAgICAgICByZXR1cm4gY3VycmVudAogICAg
ICAgICAjIElmIHdlIGFyZSBub3QgdXBkYXRpbmcgaW50ZXJtaXR0ZW50cywgcmV0dXJuIHRoZSBz
dGF0dXMgd2l0aCB0aGUgaGlnaGVzdCBvY2N1cmVuY2UuCiAgICAgICAgIHJldHVybiBleHBlY3Rl
ZFswXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbXBjb250ZXh0LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL21wY29udGV4dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWFkZTEwNTRjZjQxNjg5OTgxYTUwYjdlYzVk
OTQ0YmUxNjgxNDI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21wY29udGV4dC5w
eQpAQCAtMCwwICsxLDIxIEBACitpbXBvcnQgbXVsdGlwcm9jZXNzaW5nCisKK2ltcG9ydCBzaXgK
KworX2NvbnRleHQgPSBOb25lCisKKworY2xhc3MgTXBDb250ZXh0KG9iamVjdCk6CisgICAgZGVm
IF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gZ2V0YXR0cihtdWx0aXBy
b2Nlc3NpbmcsIG5hbWUpCisKKworZGVmIGdldF9jb250ZXh0KCk6CisgICAgZ2xvYmFsIF9jb250
ZXh0CisKKyAgICBpZiBfY29udGV4dCBpcyBOb25lOgorICAgICAgICBpZiBzaXguUFkyOgorICAg
ICAgICAgICAgX2NvbnRleHQgPSBNcENvbnRleHQoKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgX2NvbnRleHQgPSBtdWx0aXByb2Nlc3NpbmcuZ2V0X2NvbnRleHQoInNwYXduIikKKyAgICBy
ZXR1cm4gX2NvbnRleHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0ZHJpdmVyLWV4dHJh
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKaW5kZXggOWMwYzY5YWYzYTNm
Mjc4ZTgwNTNiMGE5OTA3Y2QxZGQ3Y2FlOWRiYy4uZTE1NjUyZGNkZmI0Y2Y0NTE4ZjRmM2NiZDQ5
NDAwNzU0ZDJiOGRlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKQEAgLTM0LDcgKzM0LDcg
QEAKICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICJ0ZXN0ZHJpdmVyLWNvbXBsZXRl
IikgewogICAgICAgICAgICAgY29uc3QgY21kX2lkID0gZGF0YS5jbWRfaWQ7CiAgICAgICAgICAg
ICBjb25zdCBbb25fc3VjY2Vzcywgb25fZmFpbHVyZV0gPSBwZW5kaW5nLmdldChjbWRfaWQpOwot
ICAgICAgICAgICAgcGVuZGluZy5jbGVhcihjbWRfaWQpOworICAgICAgICAgICAgcGVuZGluZy5k
ZWxldGUoY21kX2lkKTsKICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVyID0gZGF0YS5zdGF0dXMg
PT09ICJzdWNjZXNzIiA/IG9uX3N1Y2Nlc3MgOiBvbl9mYWlsdXJlOwogICAgICAgICAgICAgcmVz
b2x2ZXIoZGF0YSk7CiAgICAgICAgICAgICBpZiAoaXNfdGVzdF9jb250ZXh0KSB7CkBAIC0xNjks
NiArMTY5LDEwIEBACiAgICAgICAgIHJldHVybiBjcmVhdGVfYWN0aW9uKCJjbGljayIsIHtzZWxl
Y3RvciwgY29udGV4dH0pOwogICAgIH07CiAKKyAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJu
YWwuZGVsZXRlX2FsbF9jb29raWVzID0gZnVuY3Rpb24oY29udGV4dD1udWxsKSB7CisgICAgICAg
IHJldHVybiBjcmVhdGVfYWN0aW9uKCJkZWxldGVfYWxsX2Nvb2tpZXMiLCB7Y29udGV4dH0pOwor
ICAgIH07CisKICAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuc2VuZF9rZXlzID0gZnVu
Y3Rpb24oZWxlbWVudCwga2V5cykgewogICAgICAgICBjb25zdCBzZWxlY3RvciA9IGdldF9zZWxl
Y3RvcihlbGVtZW50KTsKICAgICAgICAgY29uc3QgY29udGV4dCA9IGdldF9jb250ZXh0KGVsZW1l
bnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpzCmluZGV4IGExMGI2OWRm
NTUwNGZhYjg3NTE0N2FmMjZkOTI1ZWJjY2U1MWVjMDAuLjRhMjdkYzI3ZWY2ZjI2YjRmMzU5ZDVh
MDEzYmNlNGEyMWFmNTE3MzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3Jl
cG9ydC1zZXJ2by5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8u
anMKQEAgLTEsNCArMSw0IEBACi12YXIgcHJvcHMgPSB7b3V0cHV0OiUob3V0cHV0KWR9OwordmFy
IHByb3BzID0ge291dHB1dDolKG91dHB1dClkLCBkZWJ1ZzogJShkZWJ1ZylzfTsKIHZhciBzdGFy
dF9sb2MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiBzdGFydF9sb2MuaHJlZiA9IGxv
Y2F0aW9uLmhyZWY7CiBzZXR1cChwcm9wcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3Ny
ZXBvcnQtc2Vydm9kcml2ZXIuanMKaW5kZXggYzg4ODQxMzYwNDcwZjhkZDNhZWMyMjI0NDkyOWRk
YTQ5ZmFkYWYzMi4uNzgxOTUzOGRiYjhmNGE4MDdkNWRiMjY0OWMyNTQwODU0OTk2Yzg2NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvZHJpdmVyLmpzCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZlci5qcwpAQCAtMSw0
ICsxLDQgQEAKLXNldHVwKHtvdXRwdXQ6JShvdXRwdXQpZH0pOworc2V0dXAoe291dHB1dDolKG91
dHB1dClkLCBkZWJ1ZzogJShkZWJ1ZylzfSk7CiAKIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1
bmN0aW9uKCkgewogICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywg
c3RhdHVzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKaW5kZXggOWNkNjgwZTE0YWVkM2I2
ZjdiOGVlMjNhYTVkMmE1NjI0Y2JlMWZkMi4uZDM4NTY5MjQ0NWM1MDg2ZDBhZDQ4MTU5MjZiN2Iy
YzJhOTNkZDQ5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcwpAQCAtNzMsNiArNzMsNyBA
QCB3aW5kb3cuX193cHRydW5uZXJfcHJvY2Vzc19uZXh0X2V2ZW50ID0gZnVuY3Rpb24oKSB7CiAg
IHZhciBwcm9wcyA9IHtvdXRwdXQ6ICUob3V0cHV0KWQsCiAgICAgICAgICAgICAgICB0aW1lb3V0
X211bHRpcGxpZXI6ICUodGltZW91dF9tdWx0aXBsaWVyKXMsCiAgICAgICAgICAgICAgICBleHBs
aWNpdF90aW1lb3V0OiAlKGV4cGxpY2l0X3RpbWVvdXQpcywKKyAgICAgICAgICAgICAgIGRlYnVn
OiAlKGRlYnVnKXMsCiAgICAgICAgICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJjb21wbGV0aW9u
Il19OwogCiAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKHRlc3RzLCBoYXJuZXNz
X3N0YXR1cykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdGxvYWRlci5weQppbmRleCA0YTNmYTQyNzM2NTRhOGE4NmQ1MjI0ZWY2YjBh
OWRhZWQ3M2IwMWQ3Li5lNTc2MTliNDVmZWZkYTUzMzA1YjQzZmYzMDAxY2RkNGIwNzhiNDdhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdGxvYWRlci5weQpAQCAtNSwxMiArNSwxMiBAQCBmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFy
c2UgaW1wb3J0IHVybHNwbGl0CiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRo
b2QKIGZyb20gc2l4Lm1vdmVzLnF1ZXVlIGltcG9ydCBFbXB0eQogZnJvbSBjb2xsZWN0aW9ucyBp
bXBvcnQgZGVmYXVsdGRpY3QsIGRlcXVlCi1mcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUXVl
dWUKIGZyb20gc2l4IGltcG9ydCBlbnN1cmVfYmluYXJ5LCBpdGVyaXRlbXMKIGZyb20gc2l4Lm1v
dmVzIGltcG9ydCByYW5nZQogCiBmcm9tIC4gaW1wb3J0IG1hbmlmZXN0aW5jbHVkZQogZnJvbSAu
IGltcG9ydCBtYW5pZmVzdGV4cGVjdGVkCitmcm9tIC4gaW1wb3J0IG1wY29udGV4dAogZnJvbSAu
IGltcG9ydCB3cHR0ZXN0CiBmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZAogCkBAIC0zOTAs
NyArMzkwLDggQEAgY2xhc3MgR3JvdXBlZFNvdXJjZShUZXN0U291cmNlKToKIAogICAgIEBjbGFz
c21ldGhvZAogICAgIGRlZiBtYWtlX3F1ZXVlKGNscywgdGVzdHMsICoqa3dhcmdzKToKLSAgICAg
ICAgdGVzdF9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgbXAgPSBtcGNvbnRleHQuZ2V0X2NvbnRl
eHQoKQorICAgICAgICB0ZXN0X3F1ZXVlID0gbXAuUXVldWUoKQogICAgICAgICBncm91cHMgPSBb
XQogCiAgICAgICAgIHN0YXRlID0ge30KQEAgLTQyMyw3ICs0MjQsOCBAQCBjbGFzcyBHcm91cGVk
U291cmNlKFRlc3RTb3VyY2UpOgogY2xhc3MgU2luZ2xlVGVzdFNvdXJjZShUZXN0U291cmNlKToK
ICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgbWFrZV9xdWV1ZShjbHMsIHRlc3RzLCAqKmt3YXJn
cyk6Ci0gICAgICAgIHRlc3RfcXVldWUgPSBRdWV1ZSgpCisgICAgICAgIG1wID0gbXBjb250ZXh0
LmdldF9jb250ZXh0KCkKKyAgICAgICAgdGVzdF9xdWV1ZSA9IG1wLlF1ZXVlKCkKICAgICAgICAg
cHJvY2Vzc2VzID0ga3dhcmdzWyJwcm9jZXNzZXMiXQogICAgICAgICBxdWV1ZXMgPSBbZGVxdWUo
W10pIGZvciBfIGluIHJhbmdlKHByb2Nlc3NlcyldCiAgICAgICAgIG1ldGFkYXRhcyA9IFtjbHMu
Z3JvdXBfbWV0YWRhdGEoTm9uZSkgZm9yIF8gaW4gcmFuZ2UocHJvY2Vzc2VzKV0KQEAgLTQ2Nyw3
ICs0NjksOCBAQCBjbGFzcyBHcm91cEZpbGVUZXN0U291cmNlKFRlc3RTb3VyY2UpOgogCiAgICAg
ICAgIGlkc190b190ZXN0cyA9IHt0ZXN0LmlkOiB0ZXN0IGZvciB0ZXN0IGluIHRlc3RzfQogCi0g
ICAgICAgIHRlc3RfcXVldWUgPSBRdWV1ZSgpCisgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9j
b250ZXh0KCkKKyAgICAgICAgdGVzdF9xdWV1ZSA9IG1wLlF1ZXVlKCkKIAogICAgICAgICBmb3Ig
Z3JvdXBfbmFtZSwgdGVzdF9pZHMgaW4gaXRlcml0ZW1zKHRlc3RzX2J5X2dyb3VwKToKICAgICAg
ICAgICAgIGdyb3VwX21ldGFkYXRhID0geyJzY29wZSI6IGdyb3VwX25hbWV9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHJ1bm5lci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5
CmluZGV4IDk2MWM0MGZjNWI4MDk5MTM2ZjM0MWQxMjYzY2Q4NTUxODBiZmY5YmQuLjhkZDkzNDE4
ZGQ4ZjM3ZmMyMjAzMDZmN2E0ZTZkODVlN2ZiOWI1NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0cnVubmVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CkBAIC0xLDE0
ICsxLDE0IEBACiBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKIAotaW1w
b3J0IG11bHRpcHJvY2Vzc2luZwogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHRyYWNlYmFjawog
ZnJvbSBzaXgubW92ZXMucXVldWUgaW1wb3J0IEVtcHR5CiBmcm9tIGNvbGxlY3Rpb25zIGltcG9y
dCBuYW1lZHR1cGxlCi1mcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUHJvY2VzcywgY3VycmVu
dF9wcm9jZXNzLCBRdWV1ZQogCiBmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZGxvZywgY2Fw
dHVyZQogCitmcm9tIC4gaW1wb3J0IG1wY29udGV4dAorCiAjIFNwZWNpYWwgdmFsdWUgdXNlZCBh
cyBhIHNlbnRpbmFsIGluIHZhcmlvdXMgY29tbWFuZHMKIFN0b3AgPSBvYmplY3QoKQogCkBAIC02
OCw3ICs2OCw3IEBAIGNsYXNzIFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5yZXN1
bHRfcXVldWUgPSByZXN1bHRfcXVldWUKIAogICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0
b3IKLSAgICAgICAgc2VsZi5uYW1lID0gY3VycmVudF9wcm9jZXNzKCkubmFtZQorICAgICAgICBz
ZWxmLm5hbWUgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKS5jdXJyZW50X3Byb2Nlc3MoKS5uYW1l
CiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYp
OgpAQCAtMzExLDkgKzMxMSwxMSBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcu
VGhyZWFkKToKICAgICAgICAgc2VsZi5leGVjdXRvcl9jbHMgPSBleGVjdXRvcl9jbHMKICAgICAg
ICAgc2VsZi5leGVjdXRvcl9rd2FyZ3MgPSBleGVjdXRvcl9rd2FyZ3MKIAorICAgICAgICBtcCA9
IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisKICAgICAgICAgIyBGbGFncyB1c2VkIHRvIHNodXQg
ZG93biB0aGlzIHRocmVhZCBpZiB3ZSBnZXQgYSBzaWdpbnQKICAgICAgICAgc2VsZi5wYXJlbnRf
c3RvcF9mbGFnID0gc3RvcF9mbGFnCi0gICAgICAgIHNlbGYuY2hpbGRfc3RvcF9mbGFnID0gbXVs
dGlwcm9jZXNzaW5nLkV2ZW50KCkKKyAgICAgICAgc2VsZi5jaGlsZF9zdG9wX2ZsYWcgPSBtcC5F
dmVudCgpCiAKICAgICAgICAgc2VsZi5yZXJ1biA9IHJlcnVuCiAgICAgICAgIHNlbGYucnVuX2Nv
dW50ID0gMApAQCAtMzI2LDggKzMyOCw4IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVh
ZGluZy5UaHJlYWQpOgogICAgICAgICBhc3NlcnQgcmVjb3JkaW5nIGlzIG5vdCBOb25lCiAgICAg
ICAgIHNlbGYucmVjb3JkaW5nID0gcmVjb3JkaW5nCiAKLSAgICAgICAgc2VsZi5jb21tYW5kX3F1
ZXVlID0gUXVldWUoKQotICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAg
ICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gbXAuUXVldWUoKQorICAgICAgICBzZWxmLnJlbW90ZV9x
dWV1ZSA9IG1wLlF1ZXVlKCkKIAogICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBOb25l
CiAKQEAgLTUxOSw5ICs1MjEsMTEgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5n
LlRocmVhZCk6CiAgICAgICAgICAgICAgICAgZXhlY3V0b3JfYnJvd3Nlcl9rd2FyZ3MsCiAgICAg
ICAgICAgICAgICAgc2VsZi5jYXB0dXJlX3N0ZGlvLAogICAgICAgICAgICAgICAgIHNlbGYuY2hp
bGRfc3RvcF9mbGFnKQotICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBQcm9jZXNzKHRh
cmdldD1zdGFydF9ydW5uZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXJncz1hcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h
bWU9IlRlc3RSdW5uZXItJWkiICUgc2VsZi5tYW5hZ2VyX251bWJlcikKKworICAgICAgICBtcCA9
IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJvYyA9
IG1wLlByb2Nlc3ModGFyZ2V0PXN0YXJ0X3J1bm5lciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmFtZT0iVGVzdFJ1bm5lci0laSIgJSBzZWxmLm1hbmFnZXJfbnVt
YmVyKQogICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2Muc3RhcnQoKQogICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiVGVzdCBydW5uZXIgc3RhcnRlZCIpCiAgICAgICAgICMgTm93IHdlIHdh
aXQgZm9yIGVpdGhlciBhbiBpbml0X3N1Y2NlZWRlZCBldmVudCBvciBhbiBpbml0X2ZhaWxlZCBl
dmVudApAQCAtNjY0LDggKzY2OCw4IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGlu
Zy5UaHJlYWQpOgogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlVuZXhwZWN0ZWQgY291
bnQgaW4gdGhpcyB0aHJlYWQgJWkiICUgc2VsZi51bmV4cGVjdGVkX2NvdW50KQogCiAgICAgICAg
IGlmICJhc3NlcnRpb25fY291bnQiIGluIGZpbGVfcmVzdWx0LmV4dHJhOgotICAgICAgICAgICAg
YXNzZXJ0aW9uX2NvdW50ID0gZmlsZV9yZXN1bHQuZXh0cmEucG9wKCJhc3NlcnRpb25fY291bnQi
KQotICAgICAgICAgICAgaWYgYXNzZXJ0aW9uX2NvdW50ID4gMDoKKyAgICAgICAgICAgIGFzc2Vy
dGlvbl9jb3VudCA9IGZpbGVfcmVzdWx0LmV4dHJhWyJhc3NlcnRpb25fY291bnQiXQorICAgICAg
ICAgICAgaWYgYXNzZXJ0aW9uX2NvdW50IGlzIG5vdCBOb25lIGFuZCBhc3NlcnRpb25fY291bnQg
PiAwOgogICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmFzc2VydGlvbl9jb3VudCh0ZXN0Lmlk
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQoYXNzZXJ0
aW9uX2NvdW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdC5taW5fYXNzZXJ0aW9uX2NvdW50LApAQCAtNzY2LDYgKzc3MCw3IEBAIGNsYXNzIFRlc3RS
dW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
Zygid2FpdGluZyBmb3IgcnVubmVyIHByb2Nlc3MgdG8gZW5kIikKICAgICAgICAgc2VsZi50ZXN0
X3J1bm5lcl9wcm9jLmpvaW4oMTApCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJBZnRlciBq
b2luIikKKyAgICAgICAgbXAgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQogICAgICAgICBpZiBz
ZWxmLnRlc3RfcnVubmVyX3Byb2MuaXNfYWxpdmUoKToKICAgICAgICAgICAgICMgVGhpcyBtaWdo
dCBsZWFrIGEgZmlsZSBoYW5kbGUgZnJvbSB0aGUgcXVldWUKICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLndhcm5pbmcoIkZvcmNpYmx5IHRlcm1pbmF0aW5nIHJ1bm5lciBwcm9jZXNzIikKQEAgLTc3
Nyw5ICs3ODIsOSBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToK
ICAgICAgICAgICAgICMgKHN1YnNlcXVlbnQgYXR0ZW1wdHMgdG8gcmV0cmlldmUgaXRlbXMgbWF5
IGJsb2NrIGluZGVmaW5pdGVseSkuCiAgICAgICAgICAgICAjIERpc2NhcmQgdGhlIHBvdGVudGlh
bGx5LWNvcnJ1cHRlZCBxdWV1ZSBhbmQgY3JlYXRlIGEgbmV3IG9uZS4KICAgICAgICAgICAgIHNl
bGYuY29tbWFuZF9xdWV1ZS5jbG9zZSgpCi0gICAgICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUg
PSBRdWV1ZSgpCisgICAgICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBtcC5RdWV1ZSgpCiAg
ICAgICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZS5jbG9zZSgpCi0gICAgICAgICAgICBzZWxmLnJl
bW90ZV9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlID0gbXAu
UXVldWUoKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlJ1
bm5lciBwcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJWkiICUgc2VsZi50ZXN0X3J1bm5lcl9wcm9j
LmV4aXRjb2RlKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVz
dF93ZWJraXRndGsucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF93ZWJraXRn
dGsucHkKaW5kZXggNjE1MGQ1MGFjZjkzZWFjN2Q2OTYxZDgyNTMxYzQ2OWQ3ZTk5NjdiNy4uOThj
Mjk4OGRlZWEwNjhkYmQ0N2FkZDE3ZmFhODQ2YTdjZDA0ZTExNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfd2Via2l0Z3RrLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0ay5weQpAQCAtNDEsMTIgKzQxLDEzIEBAIGRl
ZiB0ZXN0X3dlYmtpdGd0a19jZXJ0aWZpY2F0ZV9kb21haW5fbGlzdChwcm9kdWN0KToKICAgICBr
d2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IE5vbmUKICAgICBrd2FyZ3NbInBhdXNlX2FmdGVy
X3Rlc3QiXSA9IEZhbHNlCiAgICAga3dhcmdzWyJwYXVzZV9vbl91bmV4cGVjdGVkIl0gPSBGYWxz
ZQorICAgIGt3YXJnc1siZGVidWdfdGVzdCJdID0gRmFsc2UKICAgICB3aXRoIENvbmZpZ0J1aWxk
ZXIoYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIsCiAgICAgICAgICAgICAgICAgICAgICAgIGFs
dGVybmF0ZV9ob3N0cz17ImFsdCI6ICJleGFtcGxlLm9yZyJ9LAogICAgICAgICAgICAgICAgICAg
ICAgICBzdWJkb21haW5zPXsiYSIsICJiIn0sCiAgICAgICAgICAgICAgICAgICAgICAgIG5vdF9z
dWJkb21haW5zPXsieCIsICJ5In0pIGFzIGVudl9jb25maWc6CiAKLSAgICAgICAgZXhlY3V0b3Jf
YXJncyA9IGdldF9leGVjdXRvcl9rd2FyZ3MoTm9uZSwgZW52X2NvbmZpZywgTm9uZSwgTm9uZSwg
Kiprd2FyZ3MpCisgICAgICAgIGV4ZWN1dG9yX2FyZ3MgPSBnZXRfZXhlY3V0b3Jfa3dhcmdzKE5v
bmUsIE5vbmUsIGVudl9jb25maWcsIE5vbmUsIE5vbmUsICoqa3dhcmdzKQogICAgICAgICBhc3Nl
cnQoJ2NhcGFiaWxpdGllcycgaW4gZXhlY3V0b3JfYXJncykKICAgICAgICAgYXNzZXJ0KCd3ZWJr
aXRndGs6YnJvd3Nlck9wdGlvbnMnIGluIGV4ZWN1dG9yX2FyZ3NbJ2NhcGFiaWxpdGllcyddKQog
ICAgICAgICBhc3NlcnQoJ2NlcnRpZmljYXRlcycgaW4gZXhlY3V0b3JfYXJnc1snY2FwYWJpbGl0
aWVzJ11bJ3dlYmtpdGd0azpicm93c2VyT3B0aW9ucyddKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9k
dWN0cy5weQppbmRleCA1ZDJiY2YwNzVkMGY1NzJlODk3MmViYTVmZGI0YTViZDM2YjVkYjc1Li43
NTc5NGQ0ODEzMTNjNDY4NGQxMDk0YzcwNzhhZjllZGQyMjU4Y2JkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMv
dGVzdF9wcm9kdWN0cy5weQpAQCAtNDIsNiArNDIsNyBAQCBkZWYgdGVzdF9zZXJ2ZXJfc3RhcnRf
Y29uZmlnKHByb2R1Y3QpOgogICAgICAgICB3aXRoIGVudmlyb25tZW50LlRlc3RFbnZpcm9ubWVu
dCh0ZXN0X3BhdGhzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVudl9vcHRpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7InR5cGUiOiAibm9uZSJ9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRl
LnB5CmluZGV4IGExYmE4ZGUyODc4MDY0NzU0NGIyMmNiMTEyNzU2OGQ1N2Q0ZGNhYzQuLjc3MDQz
ODM5ODIxNTU1Njc4NWZhMzMwMTQ4ZGY4ODAzOTM2MjZlMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0cy90ZXN0X3VwZGF0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91
cGRhdGUucHkKQEAgLTQ0Miw3ICs0NDIsNyBAQCBkZWYgdGVzdF91cGRhdGVfcmVvcmRlcl9leHBl
Y3RlZCgpOgogCiAgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKICAgICBhc3Nl
cnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKLSAgICAg
ICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0gWyJGQUlMIiwgIlBBU1MiXQorICAg
ICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSBbIlBBU1MiLCAiRkFJTCJdCiAK
IAogZGVmIHRlc3RfdXBkYXRlX2FuZF9wcmVzZXJ2ZV91bmNoYW5nZWRfZXhwZWN0ZWRfaW50ZXJt
aXR0ZW50KCk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3VwZGF0ZS9zdGF0ZS5weQppbmRleCBiZGIyM2ZlZDk5ZTE5ZmE1NWFiZWVjNzIw
MmEzYTFiNDcxYmVkYzAzLi42YjZmZjFhN2UwOGJjMGM4NWEzMzljN2IwNzVlOTczZmU4N2JhY2E4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci91cGRhdGUvc3RhdGUucHkKQEAgLTk3LDcgKzk3LDcgQEAgY2xhc3MgU2F2ZWRTdGF0ZShC
YXNlU3RhdGUpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2Zp
bGUoY2xzLmZpbGVuYW1lKToKICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAg
ICAgd2l0aCBvcGVuKGNscy5maWxlbmFtZSkgYXMgZjoKKyAgICAgICAgICAgIHdpdGggb3Blbihj
bHMuZmlsZW5hbWUsICJyYiIpIGFzIGY6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgICAgICAgICBydiA9IHBpY2tsZS5sb2FkKGYpCiAgICAgICAgICAgICAgICAgICAgIGxvZ2dl
ci5kZWJ1ZygiTG9hZGluZyBkYXRhICVyIiAlIChydi5fZGF0YSwpKQpAQCAtMTExLDcgKzExMSw3
IEBAIGNsYXNzIFNhdmVkU3RhdGUoQmFzZVN0YXRlKToKIAogICAgIGRlZiBzYXZlKHNlbGYpOgog
ICAgICAgICAiIiJXcml0ZSB0aGUgc3RhdGUgdG8gZGlzayIiIgotICAgICAgICB3aXRoIG9wZW4o
c2VsZi5maWxlbmFtZSwgInciKSBhcyBmOgorICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFt
ZSwgIndiIikgYXMgZjoKICAgICAgICAgICAgIHBpY2tsZS5kdW1wKHNlbGYsIGYpCiAKICAgICBk
ZWYgY2xlYXIoc2VsZik6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cKaW5kZXggZTFlMTdmNGNiMjY1ZmJmNzY4OTFh
ZDI0Y2NhZTM4MjZhNzU4YzVhOC4uYjUzNjdjMzlkZWRjOGRhODcyNmIxOWQzNGQ4ZGI4YjZjYzZl
MGZmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93M2MtaW1wb3J0LmxvZwpAQCAtMjUsNiArMjUsNyBAQCBMaXN0IG9mIGZpbGVzOgog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1
cGRhdGUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWV0YWRhdGEucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbXBjb250
ZXh0LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3ByaW50X3JlZnRlc3RfcnVubmVyLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvcHJvY2Vzcy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRs
aW5lLnB5CmluZGV4IDE1ZDIzMjI0OTRkYmU1YzI4MWNiNzdkYjdhMWMwZGQ3NTRlN2RiMmEuLjJi
NmQ0YjM1N2M5Mjk5NTk2MzQ4NWJhZDBhOWJjYWM2ZDUxZjRiMzkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRjb21tYW5kbGluZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxp
bmUucHkKQEAgLTE3MCw2ICsxNzAsOCBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJIYWx0IHRoZSB0ZXN0IHJ1bm5lciBh
ZnRlciBlYWNoIHRlc3QgKHRoaXMgaGFwcGVucyBieSBkZWZhdWx0IGlmIG9ubHkgYSBzaW5nbGUg
dGVzdCBpcyBydW4pIikKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCctLW5vLXBh
dXNlLWFmdGVyLXRlc3QnLCBkZXN0PSJwYXVzZV9hZnRlcl90ZXN0IiwgYWN0aW9uPSJzdG9yZV9m
YWxzZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBoYWx0
IHRoZSB0ZXN0IHJ1bm5lciBpcnJlc3BlY3RpdmUgb2YgdGhlIG51bWJlciBvZiB0ZXN0cyBydW4i
KQorICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0tZGVidWctdGVzdCcsIGRlc3Q9
ImRlYnVnX3Rlc3QiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iUnVuIHRlc3RzIHdpdGggYWRkaXRpb25hbCBkZWJ1Z2dpbmcgZmVh
dHVyZXMgZW5hYmxlZCIpCiAKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCctLXBh
dXNlLW9uLXVuZXhwZWN0ZWQnLCBhY3Rpb249InN0b3JlX3RydWUiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iSGFsdCB0aGUgdGVzdCBydW5uZXIgd2hlbiBhbiB1bmV4
cGVjdGVkIHJlc3VsdCBpcyBlbmNvdW50ZXJlZCIpCkBAIC0xOTYsNiArMTk4LDggQEAgc2NoZW1l
IGhvc3QgYW5kIHBvcnQuIiIiKQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoJy0td2Vi
ZHJpdmVyLWFyZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVtdLCBh
Y3Rpb249ImFwcGVuZCIsIGRlc3Q9IndlYmRyaXZlcl9hcmdzIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9IkV4dHJhIGFyZ3VtZW50IGZvciB0aGUgV2ViRHJpdmVyIGJpbmFy
eSIpCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1hZGItYmluYXJ5IiwgYWN0aW9u
PSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGFk
YiBiaW5hcnkgdG8gdXNlIikKICAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXBhY2th
Z2UtbmFtZSIsIGFjdGlvbj0ic3RvcmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iQW5kcm9pZCBwYWNrYWdlIG5hbWUgdG8gcnVuIHRlc3RzIGFnYWluc3QiKQogICAgIGNv
bmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tZGV2aWNlLXNlcmlhbCIsIGFjdGlvbj0ic3RvcmUi
LApAQCAtNTkwLDcgKzU5NCw3IEBAIGRlZiBjaGVja19hcmdzKGt3YXJncyk6CiAgICAgICAgIGt3
YXJnc1sicmVmdGVzdF9pbnRlcm5hbCJdID0gVHJ1ZQogCiAgICAgaWYga3dhcmdzWyJyZWZ0ZXN0
X3NjcmVlbnNob3QiXSBpcyBOb25lOgotICAgICAgICBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hv
dCJdID0gInVuZXhwZWN0ZWQiCisgICAgICAgIGt3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0g
PSAidW5leHBlY3RlZCIgaWYgbm90IGt3YXJnc1siZGVidWdfdGVzdCJdIGVsc2UgImFsd2F5cyIK
IAogICAgIGlmIGt3YXJnc1siZW5hYmxlX3dlYnJlbmRlciJdIGlzIE5vbmU6CiAgICAgICAgIGt3
YXJnc1siZW5hYmxlX3dlYnJlbmRlciJdID0gRmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHRydW5uZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5CmluZGV4IGUxZDllZjhi
MWE5MWRkMmQ0NDQ1OGM4YzlkMDI3NTM3OTkxZjRjYzkuLjcxODI1MTBhMjlkMzBmMDdhM2NmMWVk
YzU5ZDMwMjgwNDIwNmZiMTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5weQpAQCAtMyw2ICszLDcgQEAgZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbiwgdW5pY29kZV9saXRlcmFscwogaW1wb3J0IGpz
b24KIGltcG9ydCBvcwogaW1wb3J0IHN5cworCiBmcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zLCBp
dGVydmFsdWVzCiAKIGltcG9ydCB3cHRzZXJ2ZQpAQCAtMTAsNiArMTEsNyBAQCBmcm9tIHdwdHNl
cnZlIGltcG9ydCBzc2x1dGlscwogCiBmcm9tIC4gaW1wb3J0IGVudmlyb25tZW50IGFzIGVudgog
ZnJvbSAuIGltcG9ydCBpbnN0cnVtZW50cworZnJvbSAuIGltcG9ydCBtcGNvbnRleHQKIGZyb20g
LiBpbXBvcnQgcHJvZHVjdHMKIGZyb20gLiBpbXBvcnQgdGVzdGxvYWRlcgogZnJvbSAuIGltcG9y
dCB3cHRjb21tYW5kbGluZQpAQCAtMTM5LDYgKzE0MSw4IEBAIGRlZiBnZXRfcGF1c2VfYWZ0ZXJf
dGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAg
ICAgICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICBpZiBrd2FyZ3NbImRlYnVnX3Rlc3QiXToKKyAgICAgICAgICAgIHJldHVybiBUcnVl
CiAgICAgICAgIHRlc3RzID0gdGVzdF9sb2FkZXIudGVzdHMKICAgICAgICAgaXNfc2luZ2xlX3Rl
c3RoYXJuZXNzID0gKHN1bShsZW4oaXRlbSkgZm9yIGl0ZW0gaW4gaXRlcnZhbHVlcyh0ZXN0cykp
ID09IDEgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4odGVzdHMuZ2V0
KCJ0ZXN0aGFybmVzcyIsIFtdKSkgPT0gMSkKQEAgLTE1MSwxMSArMTU1LDE0IEBAIGRlZiBnZXRf
cGF1c2VfYWZ0ZXJfdGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpOgogZGVmIHJ1bl90ZXN0cyhj
b25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAiIiJTZXQgdXAgdGhl
IHRlc3QgZW52aXJvbm1lbnQsIGxvYWQgdGhlIGxpc3Qgb2YgdGVzdHMgdG8gYmUgZXhlY3V0ZWQs
IGFuZAogICAgIGludm9rZSB0aGUgcmVtYWluZGVyIG9mIHRoZSBjb2RlIHRvIGV4ZWN1dGUgdGVz
dHMiIiIKKyAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCiAgICAgaWYga3dhcmdzWyJp
bnN0cnVtZW50X3RvX2ZpbGUiXSBpcyBOb25lOgogICAgICAgICByZWNvcmRlciA9IGluc3RydW1l
bnRzLk51bGxJbnN0cnVtZW50KCkKICAgICBlbHNlOgogICAgICAgICByZWNvcmRlciA9IGluc3Ry
dW1lbnRzLkluc3RydW1lbnQoa3dhcmdzWyJpbnN0cnVtZW50X3RvX2ZpbGUiXSkKLSAgICB3aXRo
IHJlY29yZGVyIGFzIHJlY29yZGluZywgY2FwdHVyZS5DYXB0dXJlSU8obG9nZ2VyLCBub3Qga3dh
cmdzWyJub19jYXB0dXJlX3N0ZGlvIl0pOgorICAgIHdpdGggcmVjb3JkZXIgYXMgcmVjb3JkaW5n
LCBjYXB0dXJlLkNhcHR1cmVJTyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5vdCBrd2FyZ3NbIm5vX2NhcHR1cmVfc3RkaW8iXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXBfY29udGV4
dD1tcCk6CiAgICAgICAgIHJlY29yZGluZy5zZXQoWyJzdGFydHVwIl0pCiAgICAgICAgIGVudi5k
b19kZWxheWVkX2ltcG9ydHMobG9nZ2VyLCB0ZXN0X3BhdGhzKQogCkBAIC0yMTksNiArMjI2LDcg
QEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToK
ICAgICAgICAgd2l0aCBlbnYuVGVzdEVudmlyb25tZW50KHRlc3RfcGF0aHMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJkZWJ1Z190ZXN0Il0s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImRlYnVnX2luZm8iXSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuZW52X29wdGlvbnMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2xfY29uZmlnLApAQCAtMjc1LDEzICsy
ODMsMTYgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dh
cmdzKToKICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAg
IGJyb3dzZXJfY2xzID0gcHJvZHVjdC5icm93c2VyX2NscwogCi0gICAgICAgICAgICAgICAgICAg
IGJyb3dzZXJfa3dhcmdzID0gcHJvZHVjdC5nZXRfYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLAor
ICAgICAgICAgICAgICAgICAgICBicm93c2VyX2t3YXJncyA9IHByb2R1Y3QuZ2V0X2Jyb3dzZXJf
a3dhcmdzKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm8sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uZmlnPXRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bV90ZXN0X2dyb3Vw
cz1sZW4odGVzdF9ncm91cHMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogCiAgICAgICAgICAgICAgICAg
ICAgIGV4ZWN1dG9yX2NscyA9IHByb2R1Y3QuZXhlY3V0b3JfY2xhc3Nlcy5nZXQodGVzdF90eXBl
KQotICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MgPSBwcm9kdWN0LmdldF9leGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9rd2Fy
Z3MgPSBwcm9kdWN0LmdldF9leGVjdXRvcl9rd2FyZ3MobG9nZ2VyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90
eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vu
dmlyb25tZW50LmNhY2hlX21hbmFnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKaW5kZXgg
ZTIxMDQxYjY0MzBhMjY2MWU0MzdmM2U0YTlhNzNkZWY2M2VlNmYxYi4uZWQ5MTg0ZWY1ZWNjNjli
NDJiMmM0MDUwZWEwN2NjZjQ3MWEzMTJiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRl
c3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKQEAgLTQ2NCw5ICs0NjQsOSBAQCBj
bGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmxfYmFz
ZSwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCByZWZl
cmVuY2VzLAogICAgICAgICAgICAgICAgICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3Bv
cnRfc2l6ZT1Ob25lLCBkcGk9Tm9uZSwgZnV6enk9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcHJv
dG9jb2w9Imh0dHAiLCBxdWljPUZhbHNlKToKKyAgICAgICAgICAgICAgICAgcHJvdG9jb2w9Imh0
dHAiLCBzdWJkb21haW49RmFsc2UsIHF1aWM9RmFsc2UpOgogICAgICAgICBUZXN0Ll9faW5pdF9f
KHNlbGYsIHVybF9iYXNlLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3Rf
bWV0YWRhdGEsIHRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgcGF0aCwgcHJvdG9jb2ws
IHF1aWMpCisgICAgICAgICAgICAgICAgICAgICAgcGF0aCwgcHJvdG9jb2wsIHN1YmRvbWFpbiwg
cXVpYykKIAogICAgICAgICBmb3IgXywgcmVmX3R5cGUgaW4gcmVmZXJlbmNlczoKICAgICAgICAg
ICAgIGlmIHJlZl90eXBlIG5vdCBpbiAoIj09IiwgIiE9Iik6CkBAIC01MDQsNiArNTA0LDcgQEAg
Y2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAgICAgICAgICAgICAgICAgW10sCiAgICAgICAg
ICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAogICAgICAgICAgICAgICAgICAgIHBhdGg9bWFu
aWZlc3RfdGVzdC5wYXRoLAorICAgICAgICAgICAgICAgICAgIHN1YmRvbWFpbj1tYW5pZmVzdF90
ZXN0LnN1YmRvbWFpbiwKICAgICAgICAgICAgICAgICAgICBxdWljPXF1aWMsCiAgICAgICAgICAg
ICAgICAgICAgKipjbHMuY2xzX2t3YXJncyhtYW5pZmVzdF90ZXN0KSkKIApAQCAtNjIyLDEwICs2
MjMsMTAgQEAgY2xhc3MgUHJpbnRSZWZ0ZXN0VGVzdChSZWZ0ZXN0VGVzdCk6CiAKICAgICBkZWYg
X19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0
YSwgdGVzdF9tZXRhZGF0YSwgcmVmZXJlbmNlcywKICAgICAgICAgICAgICAgICAgdGltZW91dD1O
b25lLCBwYXRoPU5vbmUsIHZpZXdwb3J0X3NpemU9Tm9uZSwgZHBpPU5vbmUsIGZ1enp5PU5vbmUs
Ci0gICAgICAgICAgICAgICAgIHBhZ2VfcmFuZ2VzPU5vbmUsIHByb3RvY29sPSJodHRwIiwgcXVp
Yz1GYWxzZSk6CisgICAgICAgICAgICAgICAgIHBhZ2VfcmFuZ2VzPU5vbmUsIHByb3RvY29sPSJo
dHRwIiwgc3ViZG9tYWluPUZhbHNlLCBxdWljPUZhbHNlKToKICAgICAgICAgc3VwZXIoUHJpbnRS
ZWZ0ZXN0VGVzdCwgc2VsZikuX19pbml0X18odXJsX2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5o
ZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcywgdGltZW91dCwgcGF0aCwgdmlld3BvcnRf
c2l6ZSwgZHBpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmdXp6eSwgcHJvdG9jb2wsIHF1aWM9cXVpYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZnV6enksIHByb3RvY29sLCBzdWJkb21haW49c3ViZG9tYWlu
LCBxdWljPXF1aWMpCiAgICAgICAgIHNlbGYuX3BhZ2VfcmFuZ2VzID0gcGFnZV9yYW5nZXMKIAog
ICAgIEBjbGFzc21ldGhvZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9zZXR1cC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvc2V0dXAucHkKaW5k
ZXggNzU5Y2I0OGQxZjY1ZjUyZjY1MDBlZDJiODcxYzdlZjQzMDUxOGFiNi4uZmRkODU2NjQzNWEx
YzgyNjk0ODdiMDFhYWIyNGMxMjM1MzQxNDRiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9zZXR1cC5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3NldHVwLnB5CkBAIC0xLDcgKzEsNyBAQAogZnJvbSBzZXR1cHRvb2xzIGltcG9ydCBzZXR1
cAogCiBQQUNLQUdFX1ZFUlNJT04gPSAnMy4wJwotZGVwcyA9IFsic2l4Pj0xLjgiLCAiaDI9PTMu
MC4xIl0KK2RlcHMgPSBbInNpeD49MS4xMy4wIiwgImgyPj0zLjAuMSJdCiAKIHNldHVwKG5hbWU9
J3dwdHNlcnZlJywKICAgICAgIHZlcnNpb249UEFDS0FHRV9WRVJTSU9OLApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvZG9jcm9vdC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQz
ZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFs
L2RvY3Jvb3QvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2Rv
Y3Jvb3Qvc3ViZGlyL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3Vi
ZGlyL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3
ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9v
dC9zdWJkaXIvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2Rv
Y3Jvb3Qvc3ViZGlyL2ltcG9ydF9oYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jv
b3Qvc3ViZGlyL2ltcG9ydF9oYW5kbGVyLnB5CmluZGV4IDNiNDJiMjliZTk1MTc0MDA3ZTFlZDE4
ZmMxMGVjY2RlZGQ4MGI1ODEuLmU2MzM5NWUyNzM3NzZkNzk4ZDYzNDg4ZjE2YWVkMzczNzE3NmRh
NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9pbXBvcnRf
aGFuZGxlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvaW1wb3J0
X2hhbmRsZXIucHkKQEAgLTEsNCArMSw0IEBACi1pbXBvcnQgZXhhbXBsZV9tb2R1bGUKK2Zyb20g
c3ViZGlyIGltcG9ydCBleGFtcGxlX21vZHVsZQogCiAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3Bv
bnNlKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci93M2MtaW1wb3J0
LmxvZwppbmRleCA2YmMyODMzMmE0NTdlYmQwZjM0Mjc2MjE2OWY3MTk4YzhkNjZhZTg3Li41ZDI1
ZWZlMzdhZjkzZDhmOTJlYmRlMjhjOWUzMjdmYWRlMjE1MDZiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9m
dW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL3czYy1pbXBvcnQubG9nCkBAIC0xNCw2ICsxNCw3IEBA
IFByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgogTm9uZQogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1
YmRpci9fX2luaXRfXy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9leGFt
cGxlX21vZHVsZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9maWxlLnR4
dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9pbXBvcnRfaGFuZGxlci5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC93M2MtaW1wb3J0LmxvZwppbmRleCA1ZDMxNmY0MzE1
OGUyYjVhMTFiNDRiZWMzNDgxODQ0MjE4MzM2ZTNkLi4yMmZmNTVkMmU0MWM2YWYwMjk3ZTQ2NGQx
YzhkOWVjMWJkNTY4ODgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC93
M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC93M2MtaW1wb3J0
LmxvZwpAQCAtMTQsNiArMTQsNyBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvZG9jcm9vdC9fX2luaXRfXy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Ny
b290L2Jhci5hbnkud29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZG9jdW1l
bnQudHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLmFueS5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9zdGFzaC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC90ZXN0X3N0YXNoLnB5CmluZGV4IDBiOTYwYzFlOWY4NjA5ZGNiZDgyZGJiMzMzNDM0ZmUwZDI3
MDAxODUuLjFjNGM5YWQ5MzNhMzc3NDY2MjNhMDE5NWY1NTNhZDhjZmU3MDY4OGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3N0YXNoLnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rp
b25hbC90ZXN0X3N0YXNoLnB5CkBAIC0xLDQgKzEsMyBAQAotaW1wb3J0IHN5cwogaW1wb3J0IHVu
aXR0ZXN0CiBpbXBvcnQgdXVpZAogCkBAIC0xMCw4ICs5LDYgQEAgZnJvbSB3cHRzZXJ2ZS5zdGFz
aCBpbXBvcnQgU3Rhc2hTZXJ2ZXIKIGZyb20gLmJhc2UgaW1wb3J0IFRlc3RVc2luZ1NlcnZlcgog
CiAKLUBweXRlc3QubWFyay5za2lwaWYoc3lzLnZlcnNpb25faW5mbyA+PSAoMywgOCkgYW5kIHN5
cy5wbGF0Zm9ybSA9PSAnZGFyd2luJywKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtdWx0
aXByb2Nlc3NpbmcgdGVzdCBoYW5ncyBpbiBQeXRob24gMy44IG9uIG1hY09TICgjMjQ4ODApIikK
IGNsYXNzIFRlc3RSZXNwb25zZVNldENvb2tpZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAgIGRlZiBy
dW4oc2VsZiwgcmVzdWx0PU5vbmUpOgogICAgICAgICB3aXRoIFN0YXNoU2VydmVyKE5vbmUsIGF1
dGhrZXk9c3RyKHV1aWQudXVpZDQoKSkpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X3N0YXNo
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy90ZXN0X3N0YXNoLnB5CmluZGV4IDMxYWYxNTU4YjBjYzVjMDQ2ODQzZTBl
OTY1NjlkYjQyYzQ2N2NmMjIuLjhjYTM5NDRjZGIwYzIzYWM0OTdmM2Q1MTRmNTg2OWI0YzAyZmNl
NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdGVzdF9zdGFzaC5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3Rf
c3Rhc2gucHkKQEAgLTEsNiArMSw3IEBACiBpbXBvcnQgbXVsdGlwcm9jZXNzaW5nCi1pbXBvcnQg
c3lzCiBpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgc3lzCisKIGZyb20gbXVsdGlwcm9jZXNzaW5n
Lm1hbmFnZXJzIGltcG9ydCBCYXNlTWFuYWdlcgogCiBpbXBvcnQgcHl0ZXN0CkBAIC0yMCw2ICsy
MSw3IEBAIGRlZiBhZGRfY2xlYW51cCgpOgogICAgIGZvciBmbiBpbiBmbnM6CiAgICAgICAgIGZu
KCkKIAorCiBkZWYgcnVuKHByb2Nlc3NfcXVldWUsIHJlcXVlc3RfbG9jaywgcmVzcG9uc2VfbG9j
ayk6CiAgICAgIiIiQ3JlYXRlIHR3byBTdGFzaCBpbnN0YW5jZXMgaW4gcGFyYWxsZWwgdGhyZWFk
cy4gVXNlIHRoZSBwcm92aWRlZCBsb2NrcwogICAgIHRvIGVuc3VyZSB0aGUgZmlyc3QgdGhyZWFk
IGlzIGFjdGl2ZWx5IGVzdGFibGlzaGluZyBhbiBpbnRlcnByb2Nlc3MKQEAgLTU4LDYgKzYwLDEy
IEBAIGRlZiBydW4ocHJvY2Vzc19xdWV1ZSwgcmVxdWVzdF9sb2NrLCByZXNwb25zZV9sb2NrKToK
ICAgICBwcm9jZXNzX3F1ZXVlLnB1dCh0aHJlYWRfcXVldWUuZ2V0KCkpCiAKIAorY2xhc3MgU2xv
d0xvY2soQmFzZU1hbmFnZXIpOgorICAgICMgVGhpcyBjYW4gb25seSBiZSB1c2VkIGluIHRlc3Rf
ZGVsYXllZF9sb2NrIHNpbmNlIHRoYXQgdGVzdCBtb2RpZmllcyB0aGUKKyAgICAjIGNsYXNzIGJv
ZHksIGJ1dCBpdCBoYXMgdG8gYmUgYSBnbG9iYWwgZm9yIG11bHRpcHJvY2Vzc2luZworICAgIHBh
c3MKKworCiBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIgb3IKICAg
ICAgICAgICAgICAgICAgICBQWTMgYW5kIG11bHRpcHJvY2Vzc2luZy5nZXRfc3RhcnRfbWV0aG9k
KCkgPT0gInNwYXduIiwKICAgICAgICAgICAgICAgICAgICByZWFzb249Imh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xNjkzOCIpCkBAIC02NSw5ICs3Myw2
IEBAIGRlZiB0ZXN0X2RlbGF5ZWRfbG9jayhhZGRfY2xlYW51cCk6CiAgICAgIiIiRW5zdXJlIHRo
YXQgZGVsYXlzIGluIHByb3hpZWQgTG9jayByZXRyaWV2YWwgZG8gbm90IGludGVyZmVyZSB3aXRo
CiAgICAgaW5pdGlhbGl6YXRpb24gaW4gcGFyYWxsZWwgdGhyZWFkcy4iIiIKIAotICAgIGNsYXNz
IFNsb3dMb2NrKEJhc2VNYW5hZ2VyKToKLSAgICAgICAgcGFzcwotCiAgICAgcmVxdWVzdF9sb2Nr
ID0gbXVsdGlwcm9jZXNzaW5nLkxvY2soKQogICAgIHJlc3BvbnNlX2xvY2sgPSBtdWx0aXByb2Nl
c3NpbmcuTG9jaygpCiAKQEAgLTk4LDYgKzEwMywxMiBAQCBkZWYgdGVzdF9kZWxheWVkX2xvY2so
YWRkX2NsZWFudXApOgogICAgICAgICAiYm90aCBpbnN0YW5jZXMgaGFkIHZhbGlkIGxvY2tzIikK
IAogCitjbGFzcyBTbG93RGljdChCYXNlTWFuYWdlcik6CisgICAgIyBUaGlzIGNhbiBvbmx5IGJl
IHVzZWQgaW4gdGVzdF9kZWxheWVkX2RpY3Qgc2luY2UgdGhhdCB0ZXN0IG1vZGlmaWVzIHRoZQor
ICAgICMgY2xhc3MgYm9keSwgYnV0IGl0IGhhcyB0byBiZSBhIGdsb2JhbCBmb3IgbXVsdGlwcm9j
ZXNzaW5nCisgICAgcGFzcworCisKIEBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0g
IndpbjMyIiBvcgogICAgICAgICAgICAgICAgICAgIFBZMyBhbmQgbXVsdGlwcm9jZXNzaW5nLmdl
dF9zdGFydF9tZXRob2QoKSA9PSAic3Bhd24iLAogICAgICAgICAgICAgICAgICAgIHJlYXNvbj0i
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzE2OTM4IikK
QEAgLTEwNSw5ICsxMTYsNiBAQCBkZWYgdGVzdF9kZWxheWVkX2RpY3QoYWRkX2NsZWFudXApOgog
ICAgICIiIkVuc3VyZSB0aGF0IGRlbGF5cyBpbiBwcm94aWVkIGBkaWN0YCByZXRyaWV2YWwgZG8g
bm90IGludGVyZmVyZSB3aXRoCiAgICAgaW5pdGlhbGl6YXRpb24gaW4gcGFyYWxsZWwgdGhyZWFk
cy4iIiIKIAotICAgIGNsYXNzIFNsb3dEaWN0KEJhc2VNYW5hZ2VyKToKLSAgICAgICAgcGFzcwot
CiAgICAgcmVxdWVzdF9sb2NrID0gbXVsdGlwcm9jZXNzaW5nLkxvY2soKQogICAgIHJlc3BvbnNl
X2xvY2sgPSBtdWx0aXByb2Nlc3NpbmcuTG9jaygpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUv
aGFuZGxlcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRsZXJzLnB5CmluZGV4IGQxZTk2MTRjMDMxMjc5
Zjk5MGNmZjFjMTc4NzA4ODQ0OWU1OWNjNDMuLjBmYzExYzE5MGQxMTExNThlZjNiZjE2OWNmZDZk
Y2UwMmIyYzZmNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvaGFuZGxlcnMucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS9oYW5kbGVycy5weQpAQCAtMSw2ICsxLDUgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQg
b3MKLWltcG9ydCBzeXMKIGltcG9ydCB0cmFjZWJhY2sKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0
IGRlZmF1bHRkaWN0CiAKQEAgLTk5LDcgKzk4LDkgQEAgY2xhc3MgRGlyZWN0b3J5SGFuZGxlcihv
YmplY3QpOgogICAgICAgICAgICAgICAgICAgIHsibGluayI6IGxpbmssICJuYW1lIjogIi4uIn0p
CiAgICAgICAgIGl0ZW1zID0gW10KICAgICAgICAgcHJldl9pdGVtID0gTm9uZQotICAgICAgICBm
b3IgaXRlbSBpbiBzb3J0ZWQob3MubGlzdGRpcihwYXRoKSk6CisgICAgICAgICMgVGhpcyBlbnN1
cmVzIHRoYXQgLmhlYWRlcnMgYWx3YXlzIHNvcnRzIGFmdGVyIHRoZSBmaWxlIGl0IHByb3ZpZGVz
IHRoZSBoZWFkZXJzIGZvci4gRS5nLiwKKyAgICAgICAgIyBpZiB3ZSBoYXZlIHgsIHgteSwgYW5k
IHguaGVhZGVycywgdGhlIG9yZGVyIHdpbGwgYmUgeCwgeC5oZWFkZXJzLCBhbmQgdGhlbiB4LXku
CisgICAgICAgIGZvciBpdGVtIGluIHNvcnRlZChvcy5saXN0ZGlyKHBhdGgpLCBrZXk9bGFtYmRh
IHg6ICh4WzotbGVuKCIuaGVhZGVycyIpXSwgeCkgaWYgeC5lbmRzd2l0aCgiLmhlYWRlcnMiKSBl
bHNlICh4LCB4KSk6CiAgICAgICAgICAgICBpZiBwcmV2X2l0ZW0gYW5kIHByZXZfaXRlbSArICIu
aGVhZGVycyIgPT0gaXRlbToKICAgICAgICAgICAgICAgICBpdGVtc1stMV1bMV0gPSBpdGVtCiAg
ICAgICAgICAgICAgICAgcHJldl9pdGVtID0gTm9uZQpAQCAtMjg3LDkgKzI4OCw5IEBAIGNsYXNz
IFB5dGhvblNjcmlwdEhhbmRsZXIob2JqZWN0KToKICAgICBkZWYgX19yZXByX18oc2VsZik6CiAg
ICAgICAgIHJldHVybiAiPCVzIGJhc2VfcGF0aDolcyB1cmxfYmFzZTolcz4iICUgKHNlbGYuX19j
bGFzc19fLl9fbmFtZV9fLCBzZWxmLmJhc2VfcGF0aCwgc2VsZi51cmxfYmFzZSkKIAotICAgIGRl
ZiBfc2V0X3BhdGhfYW5kX2xvYWRfZmlsZShzZWxmLCByZXF1ZXN0LCByZXNwb25zZSwgZnVuYyk6
CisgICAgZGVmIF9sb2FkX2ZpbGUoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UsIGZ1bmMpOgogICAg
ICAgICAiIiIKLSAgICAgICAgVGhpcyBtb2RpZmllcyB0aGUgYHN5cy5wYXRoYCBhbmQgbG9hZHMg
dGhlIHJlcXVlc3RlZCBweXRob24gZmlsZSBhcyBhbiBlbnZpcm9uIHZhcmlhYmxlLgorICAgICAg
ICBUaGlzIGxvYWRzIHRoZSByZXF1ZXN0ZWQgcHl0aG9uIGZpbGUgYXMgYW4gZW52aXJvbiB2YXJp
YWJsZS4KIAogICAgICAgICBPbmNlIHRoZSBlbnZpcm9uIGlzIGxvYWRlZCwgdGhlIHBhc3NlZCBg
ZnVuY2AgaXMgcnVuIHdpdGggdGhpcyBsb2FkZWQgZW52aXJvbi4KIApAQCAtMzAwLDExICszMDEs
OCBAQCBjbGFzcyBQeXRob25TY3JpcHRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICIiIgogICAg
ICAgICBwYXRoID0gZmlsZXN5c3RlbV9wYXRoKHNlbGYuYmFzZV9wYXRoLCByZXF1ZXN0LCBzZWxm
LnVybF9iYXNlKQogCi0gICAgICAgIHN5c19wYXRoID0gc3lzLnBhdGhbOl0KLSAgICAgICAgc3lz
X21vZHVsZXMgPSBzeXMubW9kdWxlcy5jb3B5KCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
ZW52aXJvbiA9IHsiX19maWxlX18iOiBwYXRofQotICAgICAgICAgICAgc3lzLnBhdGguaW5zZXJ0
KDAsIG9zLnBhdGguZGlybmFtZShwYXRoKSkKICAgICAgICAgICAgIHdpdGggb3BlbihwYXRoLCAn
cmInKSBhcyBmOgogICAgICAgICAgICAgICAgIGV4ZWMoY29tcGlsZShmLnJlYWQoKSwgcGF0aCwg
J2V4ZWMnKSwgZW52aXJvbiwgZW52aXJvbikKIApAQCAtMzEzLDkgKzMxMSw2IEBAIGNsYXNzIFB5
dGhvblNjcmlwdEhhbmRsZXIob2JqZWN0KToKIAogICAgICAgICBleGNlcHQgSU9FcnJvcjoKICAg
ICAgICAgICAgIHJhaXNlIEhUVFBFeGNlcHRpb24oNDA0KQotICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgc3lzLnBhdGggPSBzeXNfcGF0aAotICAgICAgICAgICAgc3lzLm1vZHVsZXMgPSBz
eXNfbW9kdWxlcwogCiAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToK
ICAgICAgICAgZGVmIGZ1bmMocmVxdWVzdCwgcmVzcG9uc2UsIGVudmlyb24sIHBhdGgpOgpAQCAt
MzI2LDcgKzMyMSw3IEBAIGNsYXNzIFB5dGhvblNjcmlwdEhhbmRsZXIob2JqZWN0KToKICAgICAg
ICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmFpc2UgSFRUUEV4Y2VwdGlvbig1MDAsICJO
byBtYWluIGZ1bmN0aW9uIGluIHNjcmlwdCAlcyIgJSBwYXRoKQogCi0gICAgICAgIHNlbGYuX3Nl
dF9wYXRoX2FuZF9sb2FkX2ZpbGUocmVxdWVzdCwgcmVzcG9uc2UsIGZ1bmMpCisgICAgICAgIHNl
bGYuX2xvYWRfZmlsZShyZXF1ZXN0LCByZXNwb25zZSwgZnVuYykKIAogICAgIGRlZiBmcmFtZV9o
YW5kbGVyKHNlbGYsIHJlcXVlc3QpOgogICAgICAgICAiIiIKQEAgLTM1Myw3ICszNDgsNyBAQCBj
bGFzcyBQeXRob25TY3JpcHRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcmFpc2Ug
SFRUUEV4Y2VwdGlvbig1MDAsICJObyBtYWluIGZ1bmN0aW9uIG9yIGhhbmRsZXJzIGluIHNjcmlw
dCAlcyIgJSBwYXRoKQogCiAgICAgICAgICAgICByZXR1cm4gaGFuZGxlcgotICAgICAgICByZXR1
cm4gc2VsZi5fc2V0X3BhdGhfYW5kX2xvYWRfZmlsZShyZXF1ZXN0LCBOb25lLCBmdW5jKQorICAg
ICAgICByZXR1cm4gc2VsZi5fbG9hZF9maWxlKHJlcXVlc3QsIE5vbmUsIGZ1bmMpCiAKIAogcHl0
aG9uX3NjcmlwdF9oYW5kbGVyID0gUHl0aG9uU2NyaXB0SGFuZGxlcigpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3dwdHNlcnZlL3Jlc3BvbnNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yZXNwb25zZS5weQppbmRleCAxNTE5
ZWQ3OGYzOTc2NDY1NTljNDJmYTYzMjJhOGMxNDVhMTRkMDk0Li42ZTVlZTExNWE1NWMzMjliNWQ0
NTdlNDRlNzdiOWU5OTBhOGVhZGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jlc3BvbnNlLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvd3B0c2VydmUvcmVzcG9uc2UucHkKQEAgLTQxLDExICs0MSw2IEBAIGNsYXNzIFJl
c3BvbnNlKG9iamVjdCk6CiAgICAgICAgQm9vbGVhbiwgZGVmYXVsdCBGYWxzZSwgaW5kaWNhdGlu
ZyB3aGV0aGVyIHRoZSBib2R5IGNvbnRlbnQgc2hvdWxkIGJlCiAgICAgICAgc2VudCB3aGVuIHRo
ZSByZXF1ZXN0IG1ldGhvZCBpcyBIRUFELgogCi0gICAgLi4gYXR0cmlidXRlOjogZXhwbGljaXRf
Zmx1c2gKLQotICAgICAgIEJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIG91dHB1dCBzaG91bGQg
YmUgZmx1c2hlZCBhdXRvbWF0aWNhbGx5IG9yIG9ubHkKLSAgICAgICB3aGVuIHJlcXVlc3RlZC4K
LQogICAgIC4uIGF0dHJpYnV0ZTo6IHdyaXRlcgogCiAgICAgICAgVGhlIFJlc3BvbnNlV3JpdGVy
IGZvciB0aGlzIHJlc3BvbnNlCkBAIC03Myw3ICs2OCw2IEBAIGNsYXNzIFJlc3BvbnNlKG9iamVj
dCk6CiAKICAgICAgICAgc2VsZi5hZGRfcmVxdWlyZWRfaGVhZGVycyA9IFRydWUKICAgICAgICAg
c2VsZi5zZW5kX2JvZHlfZm9yX2hlYWRfcmVxdWVzdCA9IEZhbHNlCi0gICAgICAgIHNlbGYuZXhw
bGljaXRfZmx1c2ggPSBGYWxzZQogICAgICAgICBzZWxmLmNsb3NlX2Nvbm5lY3Rpb24gPSBGYWxz
ZQogCiAgICAgICAgIHNlbGYubG9nZ2VyID0gZ2V0X2xvZ2dlcigpCkBAIC02NjUsMTEgKzY1OSw3
IEBAIGNsYXNzIFJlc3BvbnNlV3JpdGVyKG9iamVjdCk6CiAgICAgIiIiT2JqZWN0IHByb3ZpZGlu
ZyBhbiBBUEkgdG8gd3JpdGUgb3V0IGEgSFRUUCByZXNwb25zZS4KIAogICAgIDpwYXJhbSBoYW5k
bGVyOiBUaGUgUmVxdWVzdEhhbmRsZXIgYmVpbmcgdXNlZC4KLSAgICA6cGFyYW0gcmVzcG9uc2U6
IFRoZSBSZXNwb25zZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB3cml0ZXIuCi0KLSAgICBBZnRlciBl
YWNoIHBhcnQgb2YgdGhlIHJlc3BvbnNlIGlzIHdyaXR0ZW4sIHRoZSBvdXRwdXQgaXMKLSAgICBm
bHVzaGVkIHVubGVzcyByZXNwb25zZS5leHBsaWNpdF9mbHVzaCBpcyBGYWxzZSwgaW4gd2hpY2gg
Y2FzZQotICAgIHRoZSB1c2VyIG11c3QgY2FsbCAuZmx1c2goKSBleHBsaWNpdGx5LiIiIgorICAg
IDpwYXJhbSByZXNwb25zZTogVGhlIFJlc3BvbnNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHdyaXRl
ci4iIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgaGFuZGxlciwgcmVzcG9uc2UpOgogICAgICAg
ICBzZWxmLl93ZmlsZSA9IGhhbmRsZXIud2ZpbGUKICAgICAgICAgc2VsZi5fcmVzcG9uc2UgPSBy
ZXNwb25zZQpAQCAtNzA3LDUyICs2OTcsNjUgQEAgY2xhc3MgUmVzcG9uc2VXcml0ZXIob2JqZWN0
KToKIAogICAgICAgICA6cGFyYW0gbmFtZTogTmFtZSBvZiB0aGUgaGVhZGVyIGZpZWxkCiAgICAg
ICAgIDpwYXJhbSB2YWx1ZTogVmFsdWUgb2YgdGhlIGhlYWRlciBmaWVsZAorICAgICAgICA6cmV0
dXJuOiBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB3cml0ZSBzdWNjZWVkcwogICAg
ICAgICAiIiIKICAgICAgICAgaWYgbm90IHNlbGYuX3N0YXR1c193cml0dGVuOgogICAgICAgICAg
ICAgc2VsZi53cml0ZV9zdGF0dXMoc2VsZi5kZWZhdWx0X3N0YXR1cykKICAgICAgICAgc2VsZi5f
aGVhZGVyc19zZWVuLmFkZChzZWxmLmVuY29kZShuYW1lLmxvd2VyKCkpKQotICAgICAgICBzZWxm
LndyaXRlKG5hbWUpCi0gICAgICAgIHNlbGYud3JpdGUoYiI6ICIpCisgICAgICAgIGlmIG5vdCBz
ZWxmLndyaXRlKG5hbWUpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5v
dCBzZWxmLndyaXRlKGIiOiAiKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBp
ZiBpc2luc3RhbmNlKHZhbHVlLCBpbnQpOgotICAgICAgICAgICAgc2VsZi53cml0ZSh0ZXh0X3R5
cGUodmFsdWUpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi53cml0ZSh2YWx1ZSkK
LSAgICAgICAgc2VsZi53cml0ZShiIlxyXG4iKQotICAgICAgICBpZiBub3Qgc2VsZi5fcmVzcG9u
c2UuZXhwbGljaXRfZmx1c2g6Ci0gICAgICAgICAgICBzZWxmLmZsdXNoKCkKKyAgICAgICAgICAg
IGlmIG5vdCBzZWxmLndyaXRlKHRleHRfdHlwZSh2YWx1ZSkpOgorICAgICAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorICAgICAgICBlbGlmIG5vdCBzZWxmLndyaXRlKHZhbHVlKToKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gc2VsZi53cml0ZShiIlxyXG4iKQogCiAg
ICAgZGVmIHdyaXRlX2RlZmF1bHRfaGVhZGVycyhzZWxmKToKICAgICAgICAgZm9yIG5hbWUsIGYg
aW4gWygiU2VydmVyIiwgc2VsZi5faGFuZGxlci52ZXJzaW9uX3N0cmluZyksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAoIkRhdGUiLCBzZWxmLl9oYW5kbGVyLmRhdGVfdGltZV9zdHJpbmcpXToK
ICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9zZWVuX2hlYWRlcihuYW1lKToKLSAgICAgICAgICAg
ICAgICBzZWxmLndyaXRlX2hlYWRlcihuYW1lLCBmKCkpCisgICAgICAgICAgICAgICAgaWYgbm90
IHNlbGYud3JpdGVfaGVhZGVyKG5hbWUsIGYoKSk6CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQogCiAgICAgICAgIGlmIChpc2luc3RhbmNlKHNlbGYuX3Jlc3BvbnNlLmNvbnRlbnQs
IChiaW5hcnlfdHlwZSwgdGV4dF90eXBlKSkgYW5kCiAgICAgICAgICAgICBub3Qgc2VsZi5fc2Vl
bl9oZWFkZXIoImNvbnRlbnQtbGVuZ3RoIikpOgogICAgICAgICAgICAgI1dvdWxkIGJlIG5pY2Ug
dG8gYXZvaWQgZG91YmxlLWVuY29kaW5nIGhlcmUKLSAgICAgICAgICAgIHNlbGYud3JpdGVfaGVh
ZGVyKCJDb250ZW50LUxlbmd0aCIsIGxlbihzZWxmLmVuY29kZShzZWxmLl9yZXNwb25zZS5jb250
ZW50KSkpCisgICAgICAgICAgICBpZiBub3Qgc2VsZi53cml0ZV9oZWFkZXIoIkNvbnRlbnQtTGVu
Z3RoIiwgbGVuKHNlbGYuZW5jb2RlKHNlbGYuX3Jlc3BvbnNlLmNvbnRlbnQpKSk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiBl
bmRfaGVhZGVycyhzZWxmKToKICAgICAgICAgIiIiRmluaXNoIHdyaXRpbmcgaGVhZGVycyBhbmQg
d3JpdGUgdGhlIHNlcGFyYXRvci4KIAogICAgICAgICBVbmxlc3MgYWRkX3JlcXVpcmVkX2hlYWRl
cnMgb24gdGhlIHJlc3BvbnNlIGlzIEZhbHNlLAogICAgICAgICB0aGlzIHdpbGwgYWxzbyBhZGQg
SFRUUC1tYW5kYXRlZCBoZWFkZXJzIHRoYXQgaGF2ZSBub3QgeWV0IGJlZW4gc3VwcGxpZWQKLSAg
ICAgICAgdG8gdGhlIHJlc3BvbnNlIGhlYWRlcnMiIiIKKyAgICAgICAgdG8gdGhlIHJlc3BvbnNl
IGhlYWRlcnMuCisgICAgICAgIDpyZXR1cm46IEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIg
dGhlIHdyaXRlIHN1Y2NlZWRzCisgICAgICAgICIiIgogCiAgICAgICAgIGlmIHNlbGYuX3Jlc3Bv
bnNlLmFkZF9yZXF1aXJlZF9oZWFkZXJzOgotICAgICAgICAgICAgc2VsZi53cml0ZV9kZWZhdWx0
X2hlYWRlcnMoKQorICAgICAgICAgICAgaWYgbm90IHNlbGYud3JpdGVfZGVmYXVsdF9oZWFkZXJz
KCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICAgICAgc2VsZi53cml0ZSgi
XHJcbiIpCisgICAgICAgIGlmIG5vdCBzZWxmLndyaXRlKCJcclxuIik6CisgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKICAgICAgICAgaWYgbm90IHNlbGYuX3NlZW5faGVhZGVyKCJjb250ZW50LWxl
bmd0aCIpOgogICAgICAgICAgICAgc2VsZi5fcmVzcG9uc2UuY2xvc2VfY29ubmVjdGlvbiA9IFRy
dWUKLSAgICAgICAgaWYgbm90IHNlbGYuX3Jlc3BvbnNlLmV4cGxpY2l0X2ZsdXNoOgotICAgICAg
ICAgICAgc2VsZi5mbHVzaCgpCiAgICAgICAgIHNlbGYuX2hlYWRlcnNfY29tcGxldGUgPSBUcnVl
CiAKKyAgICAgICAgcmV0dXJuIFRydWUKKwogICAgIGRlZiB3cml0ZV9jb250ZW50KHNlbGYsIGRh
dGEpOgogICAgICAgICAiIiJXcml0ZSB0aGUgYm9keSBvZiB0aGUgcmVzcG9uc2UuCiAKLSAgICAg
ICAgSFRUUC1tYW5kYXRlZCBoZWFkZXJzIHdpbGwgYmUgYXV0b21hdGljYWxseSBhZGRlZCB3aXRo
IHN0YXR1cyBkZWZhdWx0IHRvIDIwMCBpZiB0aGV5IGhhdmUgbm90IGJlZW4gZXhwbGljaXRseSBz
ZXQuIiIiCisgICAgICAgIEhUVFAtbWFuZGF0ZWQgaGVhZGVycyB3aWxsIGJlIGF1dG9tYXRpY2Fs
bHkgYWRkZWQgd2l0aCBzdGF0dXMgZGVmYXVsdCB0byAyMDAgaWYgdGhleSBoYXZlCisgICAgICAg
IG5vdCBiZWVuIGV4cGxpY2l0bHkgc2V0LgorICAgICAgICA6cmV0dXJuOiBBIGJvb2xlYW4gaW5k
aWNhdGluZyB3aGV0aGVyIHRoZSB3cml0ZSBzdWNjZWVkcworICAgICAgICAiIiIKICAgICAgICAg
aWYgbm90IHNlbGYuX3N0YXR1c193cml0dGVuOgogICAgICAgICAgICAgc2VsZi53cml0ZV9zdGF0
dXMoc2VsZi5kZWZhdWx0X3N0YXR1cykKICAgICAgICAgaWYgbm90IHNlbGYuX2hlYWRlcnNfY29t
cGxldGU6CkBAIC03NzIsNyArNzc1LDkgQEAgY2xhc3MgUmVzcG9uc2VXcml0ZXIob2JqZWN0KToK
IAogICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKICAgICAgICAgIiIiV3JpdGUgZGlyZWN0bHkg
dG8gdGhlIHJlc3BvbnNlLCBjb252ZXJ0aW5nIHVuaWNvZGUgdG8gYnl0ZXMKLSAgICAgICAgYWNj
b3JkaW5nIHRvIHJlc3BvbnNlLmVuY29kaW5nLiBEb2VzIG5vdCBmbHVzaC4iIiIKKyAgICAgICAg
YWNjb3JkaW5nIHRvIHJlc3BvbnNlLmVuY29kaW5nLgorICAgICAgICA6cmV0dXJuOiBBIGJvb2xl
YW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB3cml0ZSBzdWNjZWVkcworICAgICAgICAiIiIKICAg
ICAgICAgc2VsZi5jb250ZW50X3dyaXR0ZW4gPSBUcnVlCiAgICAgICAgIHRyeToKICAgICAgICAg
ICAgIHNlbGYuX3dmaWxlLndyaXRlKHNlbGYuZW5jb2RlKGRhdGEpKQpAQCAtNzgyLDggKzc4Nyw3
IEBAIGNsYXNzIFJlc3BvbnNlV3JpdGVyKG9iamVjdCk6CiAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKIAogICAgIGRlZiB3cml0ZV9jb250ZW50X2ZpbGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIi
IldyaXRlIGEgZmlsZS1saWtlIG9iamVjdCBkaXJlY3RseSB0byB0aGUgcmVzcG9uc2UgaW4gY2h1
bmtzLgotICAgICAgICBEb2VzIG5vdCBmbHVzaC4iIiIKKyAgICAgICAgIiIiV3JpdGUgYSBmaWxl
LWxpa2Ugb2JqZWN0IGRpcmVjdGx5IHRvIHRoZSByZXNwb25zZSBpbiBjaHVua3MuIiIiCiAgICAg
ICAgIHNlbGYuY29udGVudF93cml0dGVuID0gVHJ1ZQogICAgICAgICBzdWNjZXNzID0gVHJ1ZQog
ICAgICAgICB3aGlsZSBUcnVlOgpAQCAtODA3LDEzICs4MTEsMyBAQCBjbGFzcyBSZXNwb25zZVdy
aXRlcihvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIGRhdGEuZW5jb2RlKHNlbGYuX3Jlc3Bv
bnNlLmVuY29kaW5nKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiZGF0YSAlciBzaG91bGQgYmUgdGV4dCBvciBiaW5hcnksIGJ1dCBpcyAlcyIgJSAoZGF0YSwg
dHlwZShkYXRhKSkpCi0KLSAgICBkZWYgZmx1c2goc2VsZik6Ci0gICAgICAgICIiIkZsdXNoIHRo
ZSBvdXRwdXQuIFJldHVybnMgRmFsc2UgaWYgdGhlIGZsdXNoIGZhaWxlZCBkdWUgdG8KLSAgICAg
ICAgdGhlIHNvY2tldCBiZWluZyBjbG9zZWQgYnkgdGhlIHJlbW90ZSBlbmQuIiIiCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHNlbGYuX3dmaWxlLmZsdXNoKCkKLSAgICAgICAgICAgIHJldHVy
biBUcnVlCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6Ci0gICAgICAgICAgICAjIFRoaXMg
Y2FuIGhhcHBlbiBpZiB0aGUgc29ja2V0IGdvdCBjbG9zZWQgYnkgdGhlIHJlbW90ZSBlbmQKLSAg
ICAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yb3V0ZXIucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3dwdHNlcnZlL3JvdXRlci5weQppbmRleCA1Yjg2MGI1OTQyNTQ4YmM1YWFiODFjZTYzZGJi
ZGFkZGE3OTJkZTkwLi5kMTcwNGE3YmJkNTRjMzViMzIwNjliOTg1ZTNhMjlhMTA1MDM3OGFhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5w
eQpAQCAtMSw1ICsxLDYgQEAKIGltcG9ydCBpdGVydG9vbHMKIGltcG9ydCByZQoraW1wb3J0IHN5
cwogCiBmcm9tIC5sb2dnZXIgaW1wb3J0IGdldF9sb2dnZXIKIGZyb20gc2l4IGltcG9ydCBiaW5h
cnlfdHlwZSwgdGV4dF90eXBlCkBAIC05OCw2ICs5OSwxNiBAQCBjbGFzcyBSb3V0ZXIob2JqZWN0
KToKICAgICAgICAgc2VsZi5kb2Nfcm9vdCA9IGRvY19yb290CiAgICAgICAgIHNlbGYucm91dGVz
ID0gW10KICAgICAgICAgc2VsZi5sb2dnZXIgPSBnZXRfbG9nZ2VyKCkKKworICAgICAgICAjIEFk
ZCB0aGUgZG9jX3Jvb3QgdG8gdGhlIFB5dGhvbiBwYXRoLCBzbyB0aGF0IGFueSBQeXRob24gaGFu
ZGxlciBjYW4KKyAgICAgICAgIyBjb3JyZWN0bHkgbG9jYXRlIGhlbHBlciBzY3JpcHRzIChzZWUg
UkZDX1RPX0JFX0xJTktFRCkuCisgICAgICAgICMKKyAgICAgICAgIyBUT0RPOiBJbiBhIHBlcmZl
Y3Qgd29ybGQsIFJvdXRlciB3b3VsZCBub3QgbmVlZCB0byBrbm93IGFib3V0IHRoaXMKKyAgICAg
ICAgIyBhbmQgdGhlIGhhbmRsZXIgaXRzZWxmIHdvdWxkIHRha2UgY2FyZSBvZiBpdC4gQ3VycmVu
dGx5LCBob3dldmVyLCB3ZQorICAgICAgICAjIHRyZWF0IGhhbmRsZXJzIGxpa2UgZnVuY3Rpb25z
IGFuZCBzbyB0aGVyZSdzIG5vIGVhc3kgd2F5IHRvIGRvIHRoYXQuCisgICAgICAgIGlmIHNlbGYu
ZG9jX3Jvb3Qgbm90IGluIHN5cy5wYXRoOgorICAgICAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAs
IHNlbGYuZG9jX3Jvb3QpCisKICAgICAgICAgZm9yIHJvdXRlIGluIHJldmVyc2VkKHJvdXRlcyk6
CiAgICAgICAgICAgICBzZWxmLnJlZ2lzdGVyKCpyb3V0ZSkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRz
ZXJ2ZS9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQppbmRleCBkNmM2MTk2NWQ5NmRl
OTBlZDc0N2YxYWZhZWE3MDMyMTlmOWU1MDc0Li4yYjVlZDRhMjdkNTEyNWJhMzQ3NGIyMDM2ZmEw
MDY5MjRhNWRlYzFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dw
dHNlcnZlL3NlcnZlci5weQpAQCAtMTcsMTcgKzE3LDI0IEBAIGZyb20gc2l4Lm1vdmVzLnF1ZXVl
IGltcG9ydCBRdWV1ZQogZnJvbSBoMi5jb25maWcgaW1wb3J0IEgyQ29uZmlndXJhdGlvbgogZnJv
bSBoMi5jb25uZWN0aW9uIGltcG9ydCBIMkNvbm5lY3Rpb24KIGZyb20gaDIuZXZlbnRzIGltcG9y
dCBSZXF1ZXN0UmVjZWl2ZWQsIENvbm5lY3Rpb25UZXJtaW5hdGVkLCBEYXRhUmVjZWl2ZWQsIFN0
cmVhbVJlc2V0LCBTdHJlYW1FbmRlZAorZnJvbSBoMi5leGNlcHRpb25zIGltcG9ydCBTdHJlYW1D
bG9zZWRFcnJvciwgUHJvdG9jb2xFcnJvcgorZnJvbSBoMi5zZXR0aW5ncyBpbXBvcnQgU2V0dGlu
Z0NvZGVzCitmcm9tIGgyLnV0aWxpdGllcyBpbXBvcnQgZXh0cmFjdF9tZXRob2RfaGVhZGVyCiAK
IGZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsc3BsaXQsIHVybHVuc3BsaXQK
IAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3BhdGNoCitmcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgorCiBmcm9tIC4gaW1wb3J0
IHJvdXRlcyBhcyBkZWZhdWx0X3JvdXRlcwogZnJvbSAuY29uZmlnIGltcG9ydCBDb25maWdCdWls
ZGVyCiBmcm9tIC5sb2dnZXIgaW1wb3J0IGdldF9sb2dnZXIKIGZyb20gLnJlcXVlc3QgaW1wb3J0
IFNlcnZlciwgUmVxdWVzdCwgSDJSZXF1ZXN0CiBmcm9tIC5yZXNwb25zZSBpbXBvcnQgUmVzcG9u
c2UsIEgyUmVzcG9uc2UKIGZyb20gLnJvdXRlciBpbXBvcnQgUm91dGVyCi1mcm9tIC51dGlscyBp
bXBvcnQgSFRUUEV4Y2VwdGlvbiwgaXNvbW9ycGhpY19kZWNvZGUKK2Zyb20gLnV0aWxzIGltcG9y
dCBIVFRQRXhjZXB0aW9uLCBpc29tb3JwaGljX2RlY29kZSwgaXNvbW9ycGhpY19lbmNvZGUKIGZy
b20gLmNvbnN0YW50cyBpbXBvcnQgaDJfaGVhZGVycworZnJvbSAud3NfaDJfaGFuZHNoYWtlIGlt
cG9ydCBXc0gySGFuZHNoYWtlcgogCiAjIFdlIG5lZWQgdG8gc3RyZXNzIHRlc3QgdGhhdCBicm93
c2VycyBjYW4gc2VuZC9yZWNlaXZlIG1hbnkgaGVhZGVycyAodGhlcmUgaXMKICMgbm8gc3BlY2lm
aWVkIGxpbWl0KSwgYnV0IHRoZSBQeXRob24gc3RkbGliIGhhcyBhbiBhcmJpdHJhcnkgbGltaXQg
b2YgMTAwCkBAIC0xMzEsNyArMTM4LDcgQEAgY2xhc3MgV2ViVGVzdFNlcnZlcihUaHJlYWRpbmdN
aXhJbiwgQmFzZUhUVFBTZXJ2ZXIuSFRUUFNlcnZlcik6CiAgICAgZGFlbW9uX3RocmVhZHMgPSBU
cnVlCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgc2VydmVyX2FkZHJlc3MsIHJlcXVlc3RfaGFu
ZGxlcl9jbHMsCi0gICAgICAgICAgICAgICAgIHJvdXRlciwgcmV3cml0ZXIsIGJpbmRfYWRkcmVz
cywKKyAgICAgICAgICAgICAgICAgcm91dGVyLCByZXdyaXRlciwgYmluZF9hZGRyZXNzLCB3c19k
b2Nfcm9vdD1Ob25lLAogICAgICAgICAgICAgICAgICBjb25maWc9Tm9uZSwgdXNlX3NzbD1GYWxz
ZSwga2V5X2ZpbGU9Tm9uZSwgY2VydGlmaWNhdGU9Tm9uZSwKICAgICAgICAgICAgICAgICAgZW5j
cnlwdF9hZnRlcl9jb25uZWN0PUZhbHNlLCBsYXRlbmN5PU5vbmUsIGh0dHAyPUZhbHNlLCAqKmt3
YXJncyk6CiAgICAgICAgICIiIlNlcnZlciBmb3IgSFRUUChzKSBSZXF1ZXN0cwpAQCAtMTU2LDYg
KzE2Myw4IEBAIGNsYXNzIFdlYlRlc3RTZXJ2ZXIoVGhyZWFkaW5nTWl4SW4sIEJhc2VIVFRQU2Vy
dmVyLkhUVFBTZXJ2ZXIpOgogCiAgICAgICAgIDpwYXJhbSBjZXJ0aWZpY2F0ZTogUGF0aCB0byBj
ZXJ0aWZpY2F0ZSB0byB1c2UgaWYgU1NMIGlzIGVuYWJsZWQuCiAKKyAgICAgICAgOnBhcmFtIHdz
X2RvY19yb290OiBEb2N1bWVudCByb290IGZvciB3ZWJzb2NrZXRzCisKICAgICAgICAgOnBhcmFt
IGVuY3J5cHRfYWZ0ZXJfY29ubmVjdDogRm9yIGVhY2ggY29ubmVjdGlvbiwgZG9uJ3Qgc3RhcnQg
ZW5jcnlwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnRpbCBh
IENPTk5FQ1QgbWVzc2FnZSBoYXMgYmVlbiByZWNlaXZlZC4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVGhpcyBlbmFibGVzIHRoZSBzZXJ2ZXIgdG8gYWN0IGFzIGEKQEAg
LTE5NSw2ICsyMDQsNyBAQCBjbGFzcyBXZWJUZXN0U2VydmVyKFRocmVhZGluZ01peEluLCBCYXNl
SFRUUFNlcnZlci5IVFRQU2VydmVyKToKIAogCiAKKyAgICAgICAgc2VsZi53c19kb2Nfcm9vdCA9
IHdzX2RvY19yb290CiAgICAgICAgIHNlbGYua2V5X2ZpbGUgPSBrZXlfZmlsZQogICAgICAgICBz
ZWxmLmNlcnRpZmljYXRlID0gY2VydGlmaWNhdGUKICAgICAgICAgc2VsZi5lbmNyeXB0X2FmdGVy
X2Nvbm5lY3QgPSB1c2Vfc3NsIGFuZCBlbmNyeXB0X2FmdGVyX2Nvbm5lY3QKQEAgLTM1Myw2ICsz
NjMsMTQgQEAgY2xhc3MgSHR0cDJXZWJUZXN0UmVxdWVzdEhhbmRsZXIoQmFzZVdlYlRlc3RSZXF1
ZXN0SGFuZGxlcik6CiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCcoJXMpIEluaXRpYXRpbmcg
aDIgQ29ubmVjdGlvbicgJSBzZWxmLnVpZCkKIAogICAgICAgICB3aXRoIHNlbGYuY29ubiBhcyBj
b25uZWN0aW9uOgorICAgICAgICAgICAgIyBCb290c3RyYXBwaW5nIFdlYlNvY2tldHMgd2l0aCBI
VFRQLzIgc3BlY2lmaWNhdGlvbiByZXF1aXJlcworICAgICAgICAgICAgIyBFTkFCTEVfQ09OTkVD
VF9QUk9UT0NPTCB0byBiZSBzZXQgaW4gb3JkZXIgdG8gZW5hYmxlIFdlYlNvY2tldAorICAgICAg
ICAgICAgIyBvdmVyIEhUVFAvMgorICAgICAgICAgICAgbmV3X3NldHRpbmdzID0gZGljdChjb25u
ZWN0aW9uLmxvY2FsX3NldHRpbmdzKQorICAgICAgICAgICAgbmV3X3NldHRpbmdzW1NldHRpbmdD
b2Rlcy5FTkFCTEVfQ09OTkVDVF9QUk9UT0NPTF0gPSAxCisgICAgICAgICAgICBjb25uZWN0aW9u
LmxvY2FsX3NldHRpbmdzLnVwZGF0ZShuZXdfc2V0dGluZ3MpCisgICAgICAgICAgICBjb25uZWN0
aW9uLmxvY2FsX3NldHRpbmdzLmFja25vd2xlZGdlKCkKKwogICAgICAgICAgICAgY29ubmVjdGlv
bi5pbml0aWF0ZV9jb25uZWN0aW9uKCkKICAgICAgICAgICAgIGRhdGEgPSBjb25uZWN0aW9uLmRh
dGFfdG9fc2VuZCgpCiAgICAgICAgICAgICB3aW5kb3dfc2l6ZSA9IGNvbm5lY3Rpb24ucmVtb3Rl
X3NldHRpbmdzLmluaXRpYWxfd2luZG93X3NpemUKQEAgLTQwNiw2ICs0MjQsMjQgQEAgY2xhc3Mg
SHR0cDJXZWJUZXN0UmVxdWVzdEhhbmRsZXIoQmFzZVdlYlRlc3RSZXF1ZXN0SGFuZGxlcik6CiAg
ICAgICAgICAgICBmb3Igc3RyZWFtX2lkLCAodGhyZWFkLCBxdWV1ZSkgaW4gc3RyZWFtX3F1ZXVl
cy5pdGVtcygpOgogICAgICAgICAgICAgICAgIHRocmVhZC5qb2luKCkKIAorICAgIGRlZiBfaXNf
ZXh0ZW5kZWRfY29ubmVjdF9mcmFtZShzZWxmLCBmcmFtZSk6CisgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKGZyYW1lLCBSZXF1ZXN0UmVjZWl2ZWQpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisKKyAgICAgICAgbWV0aG9kID0gZXh0cmFjdF9tZXRob2RfaGVhZGVyKGZyYW1lLmhlYWRlcnMp
CisgICAgICAgIGlmIG1ldGhvZCAhPSBiIkNPTk5FQ1QiOgorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKKyAgICAgICAgcHJvdG9jb2wgPSAiIgorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBm
cmFtZS5oZWFkZXJzOgorICAgICAgICAgICAgaWYga2V5IGluIChiJzpwcm90b2NvbCcsIHUnOnBy
b3RvY29sJyk6CisgICAgICAgICAgICAgICAgcHJvdG9jb2wgPSBpc29tb3JwaGljX2VuY29kZSh2
YWx1ZSkKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBpZiBwcm90b2NvbCAhPSBiIndl
YnNvY2tldCI6CisgICAgICAgICAgICByYWlzZSBQcm90b2NvbEVycm9yKCJJbnZhbGlkIHByb3Rv
Y29sICVzIHdpdGggQ09OTkVDVCBNRVRIT0QiICUgKHByb3RvY29sLCkpCisKKyAgICAgICAgcmV0
dXJuIFRydWUKKwogICAgIGRlZiBzdGFydF9zdHJlYW1fdGhyZWFkKHNlbGYsIGZyYW1lLCBxdWV1
ZSk6CiAgICAgICAgICIiIgogICAgICAgICBUaGlzIHN0YXJ0cyBhIG5ldyB0aHJlYWQgdG8gaGFu
ZGxlIGZyYW1lcyBmb3IgYSBzcGVjaWZpYyBzdHJlYW0uCkBAIC00MTMsMTMgKzQ0OSw5MSBAQCBj
bGFzcyBIdHRwMldlYlRlc3RSZXF1ZXN0SGFuZGxlcihCYXNlV2ViVGVzdFJlcXVlc3RIYW5kbGVy
KToKICAgICAgICAgOnBhcmFtIHF1ZXVlOiBBIHF1ZXVlIG9iamVjdCB0aGF0IHRoZSB0aHJlYWQg
d2lsbCB1c2UgdG8gY2hlY2sgZm9yIG5ldyBmcmFtZXMKICAgICAgICAgOnJldHVybjogVGhlIHRo
cmVhZCBvYmplY3QgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQKICAgICAgICAgIiIiCisg
ICAgICAgIGlmIHNlbGYuX2lzX2V4dGVuZGVkX2Nvbm5lY3RfZnJhbWUoZnJhbWUpOgorICAgICAg
ICAgICAgdGFyZ2V0ID0gSHR0cDJXZWJUZXN0UmVxdWVzdEhhbmRsZXIuX3N0cmVhbV93c190aHJl
YWQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRhcmdldCA9IEh0dHAyV2ViVGVzdFJlcXVl
c3RIYW5kbGVyLl9zdHJlYW1fdGhyZWFkCiAgICAgICAgIHQgPSB0aHJlYWRpbmcuVGhyZWFkKAot
ICAgICAgICAgICAgdGFyZ2V0PUh0dHAyV2ViVGVzdFJlcXVlc3RIYW5kbGVyLl9zdHJlYW1fdGhy
ZWFkLAorICAgICAgICAgICAgdGFyZ2V0PXRhcmdldCwKICAgICAgICAgICAgIGFyZ3M9KHNlbGYs
IGZyYW1lLnN0cmVhbV9pZCwgcXVldWUpCiAgICAgICAgICkKICAgICAgICAgdC5zdGFydCgpCiAg
ICAgICAgIHJldHVybiB0CiAKKyAgICBkZWYgX3N0cmVhbV93c190aHJlYWQoc2VsZiwgc3RyZWFt
X2lkLCBxdWV1ZSk6CisgICAgICAgIGZyYW1lID0gcXVldWUuZ2V0KFRydWUsIE5vbmUpCisKKyAg
ICAgICAgcmZpbGUsIHdmaWxlID0gb3MucGlwZSgpCisgICAgICAgIHJmaWxlLCB3ZmlsZSA9IG9z
LmZkb3BlbihyZmlsZSwgJ3JiJyksIG9zLmZkb3Blbih3ZmlsZSwgJ3diJywgMCkgICMgbmVlZHMg
dG8gYmUgdW5idWZmZXIgZm9yIHdlYnNvY2tldHMKKyAgICAgICAgc3RyZWFtX2hhbmRsZXIgPSBI
MkhhbmRsZXJDb3B5KHNlbGYsIGZyYW1lLCByZmlsZSkKKworICAgICAgICBoMnJlcXVlc3QgPSBI
MlJlcXVlc3Qoc3RyZWFtX2hhbmRsZXIpCisgICAgICAgIGgycmVzcG9uc2UgPSBIMlJlc3BvbnNl
KHN0cmVhbV9oYW5kbGVyLCBoMnJlcXVlc3QpCisKKyAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3Bh
dGNoLkRpc3BhdGNoZXIoc2VsZi5zZXJ2ZXIud3NfZG9jX3Jvb3QsIE5vbmUsIEZhbHNlKQorICAg
ICAgICBpZiBub3QgZGlzcGF0Y2hlci5nZXRfaGFuZGxlcl9zdWl0ZShzdHJlYW1faGFuZGxlci5w
YXRoKToKKyAgICAgICAgICAgIGgycmVzcG9uc2Uuc2V0X2Vycm9yKDQwNCkKKyAgICAgICAgICAg
IGgycmVzcG9uc2Uud3JpdGUoKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgcmVxdWVz
dF93cmFwcGVyID0gX1dlYlNvY2tldFJlcXVlc3Qoc3RyZWFtX2hhbmRsZXIsIGgycmVzcG9uc2Up
CisKKyAgICAgICAgaGFuZHNoYWtlciA9IFdzSDJIYW5kc2hha2VyKHJlcXVlc3Rfd3JhcHBlciwg
ZGlzcGF0Y2hlcikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaGFuZHNoYWtlci5kb19oYW5k
c2hha2UoKQorICAgICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uIGFzIGU6CisgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5pbmZvKCdIYW5kc2hha2UgZmFpbGVkIGZvciBlcnJvcjogJXMnLCBl
KQorICAgICAgICAgICAgaDJyZXNwb25zZS5zZXRfZXJyb3IoZS5zdGF0dXMpCisgICAgICAgICAg
ICBoMnJlc3BvbnNlLndyaXRlKCkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgaDIg
SGFuZHNoYWtlciBwcmVwYXJlcyB0aGUgaGVhZGVycyBidXQgZG9lcyBub3Qgc2VuZCB0aGVtIGRv
d24gdGhlCisgICAgICAgICMgd2lyZS4gRmx1c2ggdGhlIGhlYWRlcnMgaGVyZS4KKyAgICAgICAg
aDJyZXNwb25zZS53cml0ZV9zdGF0dXNfaGVhZGVycygpCisKKyAgICAgICAgcmVxdWVzdF93cmFw
cGVyLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcgorCisgICAgICAgICMgd2UgbmVlZCB0d28gdGhy
ZWFkczoKKyAgICAgICAgIyAtIG9uZSB0byBoYW5kbGUgdGhlIGZyYW1lIHF1ZXVlCisgICAgICAg
ICMgLSBvbmUgdG8gaGFuZGxlIHRoZSByZXF1ZXN0IChkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEg
aXMgYmxvY2tpbmcpCisgICAgICAgICMgdGhlIGFsdGVybmF0aXZlIGlzIHRvIGhhdmUgb25seSBv
bmUgKGJsb2NraW5nKSB0aHJlYWQuIFRoYXQgdGhyZWFkCisgICAgICAgICMgd2lsbCBjYWxsIHRy
YW5zZmVyX2RhdGEuIFRoYXQgd291bGQgcmVxdWlyZSBhIHNwZWNpYWwgY2FzZSBpbgorICAgICAg
ICAjIGhhbmRsZV9vbmVfcmVxdWVzdCwgdG8gYnlwYXNzIHRoZSBxdWV1ZSBhbmQgd3JpdGUgZGF0
YSB0byB3ZmlsZQorICAgICAgICAjIGRpcmVjdGx5LgorICAgICAgICB0ID0gdGhyZWFkaW5nLlRo
cmVhZCgKKyAgICAgICAgICAgIHRhcmdldD1IdHRwMldlYlRlc3RSZXF1ZXN0SGFuZGxlci5fc3Ry
ZWFtX3dzX3N1Yl90aHJlYWQsCisgICAgICAgICAgICBhcmdzPShzZWxmLCByZXF1ZXN0X3dyYXBw
ZXIsIHN0cmVhbV9oYW5kbGVyLCBxdWV1ZSkKKyAgICAgICAgKQorICAgICAgICB0LnN0YXJ0KCkK
KworICAgICAgICB3aGlsZSBub3Qgc2VsZi5jbG9zZV9jb25uZWN0aW9uOgorICAgICAgICAgICAg
ZnJhbWUgPSBxdWV1ZS5nZXQoVHJ1ZSwgTm9uZSkKKworICAgICAgICAgICAgaWYgaXNpbnN0YW5j
ZShmcmFtZSwgRGF0YVJlY2VpdmVkKToKKyAgICAgICAgICAgICAgICB3ZmlsZS53cml0ZShmcmFt
ZS5kYXRhKQorICAgICAgICAgICAgICAgIGlmIGZyYW1lLnN0cmVhbV9lbmRlZDoKKyAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiZnJhbWUuc3RyZWFtX2VuZGVk
IikKKyAgICAgICAgICAgICAgICAgICAgd2ZpbGUuY2xvc2UoKQorICAgICAgICAgICAgZWxpZiBm
cmFtZSBpcyBOb25lIG9yIGlzaW5zdGFuY2UoZnJhbWUsIChTdHJlYW1SZXNldCwgU3RyZWFtRW5k
ZWQsIENvbm5lY3Rpb25UZXJtaW5hdGVkKSk6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoJyglcyAtICVzKSBTdHJlYW0gUmVzZXQsIFRocmVhZCBDbG9zaW5nJyAlIChzZWxmLnVp
ZCwgc3RyZWFtX2lkKSkKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIHQuam9pbigp
CisKKyAgICBkZWYgX3N0cmVhbV93c19zdWJfdGhyZWFkKHNlbGYsIHJlcXVlc3QsIHN0cmVhbV9o
YW5kbGVyLCBxdWV1ZSk6CisgICAgICAgIGRpc3BhdGNoZXIgPSByZXF1ZXN0Ll9kaXNwYXRjaGVy
CisgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQorCisgICAgICAgIHN0
cmVhbV9pZCA9IHN0cmVhbV9oYW5kbGVyLmgyX3N0cmVhbV9pZAorICAgICAgICB3aXRoIHN0cmVh
bV9oYW5kbGVyLmNvbm4gYXMgY29ubmVjdGlvbjoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBjb25uZWN0aW9uLmVuZF9zdHJlYW0oc3RyZWFtX2lkKQorICAgICAgICAgICAgICAg
IGRhdGEgPSBjb25uZWN0aW9uLmRhdGFfdG9fc2VuZCgpCisgICAgICAgICAgICAgICAgc3RyZWFt
X2hhbmRsZXIucmVxdWVzdC5zZW5kYWxsKGRhdGEpCisgICAgICAgICAgICBleGNlcHQgU3RyZWFt
Q2xvc2VkRXJyb3I6ICAjIG1heWJlIHRoZSBzdHJlYW0gaGFzIGFscmVhZHkgYmVlbiBjbG9zZWQK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIHF1ZXVlLnB1dChOb25lKQorCiAgICAgZGVm
IF9zdHJlYW1fdGhyZWFkKHNlbGYsIHN0cmVhbV9pZCwgcXVldWUpOgogICAgICAgICAiIiIKICAg
ICAgICAgVGhpcyB0aHJlYWQgcHJvY2Vzc2VzIGZyYW1lcyBmb3IgYSBzcGVjaWZpYyBzdHJlYW0u
IEl0IHdhaXRzIGZvciBmcmFtZXMgdG8gYmUgcGxhY2VkCkBAIC01OTksNiArNzEzLDcgQEAgY2xh
c3MgV2ViVGVzdEh0dHBkKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi1wcm94eS4KICAgICA6cGFyYW0gcm91dGVyX2NsczogUm91dGVyIGNsYXNzIHRvIHVz
ZSB3aGVuIG1hdGNoaW5nIFVSTHMgdG8gaGFuZGxlcnMKICAgICA6cGFyYW0gZG9jX3Jvb3Q6IERv
Y3VtZW50IHJvb3QgZm9yIHNlcnZpbmcgZmlsZXMKKyAgICA6cGFyYW0gd3NfZG9jX3Jvb3Q6IERv
Y3VtZW50IHJvb3QgZm9yIHdlYnNvY2tldHMKICAgICA6cGFyYW0gcm91dGVzOiBMaXN0IG9mIHJv
dXRlcyB3aXRoIHdoaWNoIHRvIGluaXRpYWxpemUgdGhlIHJvdXRlcgogICAgIDpwYXJhbSByZXdy
aXRlcl9jbHM6IENsYXNzIHRvIHVzZSBmb3IgcmVxdWVzdCByZXdyaXRlcgogICAgIDpwYXJhbSBy
ZXdyaXRlczogTGlzdCBvZiByZXdyaXRlcyB3aXRoIHdoaWNoIHRvIGluaXRpYWxpemUgdGhlIHJl
d3JpdGVyX2NscwpAQCAtNjQxLDcgKzc1Niw3IEBAIGNsYXNzIFdlYlRlc3RIdHRwZChvYmplY3Qp
OgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0PSIxMjcuMC4wLjEiLCBwb3J0PTgwMDAsCiAg
ICAgICAgICAgICAgICAgIHNlcnZlcl9jbHM9Tm9uZSwgaGFuZGxlcl9jbHM9SHR0cDFXZWJUZXN0
UmVxdWVzdEhhbmRsZXIsCiAgICAgICAgICAgICAgICAgIHVzZV9zc2w9RmFsc2UsIGtleV9maWxl
PU5vbmUsIGNlcnRpZmljYXRlPU5vbmUsIGVuY3J5cHRfYWZ0ZXJfY29ubmVjdD1GYWxzZSwKLSAg
ICAgICAgICAgICAgICAgcm91dGVyX2Nscz1Sb3V0ZXIsIGRvY19yb290PW9zLmN1cmRpciwgcm91
dGVzPU5vbmUsCisgICAgICAgICAgICAgICAgIHJvdXRlcl9jbHM9Um91dGVyLCBkb2Nfcm9vdD1v
cy5jdXJkaXIsIHdzX2RvY19yb290PU5vbmUsIHJvdXRlcz1Ob25lLAogICAgICAgICAgICAgICAg
ICByZXdyaXRlcl9jbHM9UmVxdWVzdFJld3JpdGVyLCBiaW5kX2FkZHJlc3M9VHJ1ZSwgcmV3cml0
ZXM9Tm9uZSwKICAgICAgICAgICAgICAgICAgbGF0ZW5jeT1Ob25lLCBjb25maWc9Tm9uZSwgaHR0
cDI9RmFsc2UpOgogCkBAIC02NzMsNiArNzg4LDcgQEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJld3JpdGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPWNvbmZpZywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRfYWRkcmVzcz1iaW5kX2FkZHJlc3Ms
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3c19kb2Nfcm9vdD13c19kb2Nf
cm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9zc2w9dXNlX3Nz
bCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWtleV9maWxl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGU9Y2VydGlm
aWNhdGUsCkBAIC03MjcsMyArODQzLDU0IEBAIGNsYXNzIFdlYlRlc3RIdHRwZChvYmplY3QpOgog
ICAgICAgICByZXR1cm4gdXJsdW5zcGxpdCgoImh0dHAiIGlmIG5vdCBzZWxmLnVzZV9zc2wgZWxz
ZSAiaHR0cHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzOiVzIiAlIChzZWxmLmhv
c3QsIHNlbGYucG9ydCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLCBxdWVyeSwg
ZnJhZ21lbnQpKQorCisKK2NsYXNzIF9XZWJTb2NrZXRDb25uZWN0aW9uKG9iamVjdCk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3RfaGFuZGxlciwgcmVzcG9uc2UpOgorICAgICAgICAi
IiJNaW1pYyBtb2RfcHl0aG9uIG1wX2Nvbm4uCisKKyAgICAgICAgOnBhcmFtIHJlcXVlc3RfaGFu
ZGxlcjogQSBIMkhhbmRsZXJDb3B5IGluc3RhbmNlLgorCisgICAgICAgIDpwYXJhbSByZXNwb25z
ZTogQSBIMlJlc3BvbnNlIGluc3RhbmNlLgorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLl9y
ZXF1ZXN0X2hhbmRsZXIgPSByZXF1ZXN0X2hhbmRsZXIKKyAgICAgICAgc2VsZi5fcmVzcG9uc2Ug
PSByZXNwb25zZQorCisgICAgICAgIHNlbGYucmVtb3RlX2FkZHIgPSBzZWxmLl9yZXF1ZXN0X2hh
bmRsZXIuY2xpZW50X2FkZHJlc3MKKworICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKKyAgICAg
ICAgc2VsZi5fcmVzcG9uc2Uud3JpdGVyLndyaXRlX2RhdGEoZGF0YSwgRmFsc2UpCisKKyAgICBk
ZWYgcmVhZChzZWxmLCBsZW5ndGgpOgorICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5k
bGVyLnJmaWxlLnJlYWQobGVuZ3RoKQorCisKK2NsYXNzIF9XZWJTb2NrZXRSZXF1ZXN0KG9iamVj
dCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3RfaGFuZGxlciwgcmVzcG9uc2UpOgor
ICAgICAgICAiIiJNaW1pYyBtb2RfcHl0aG9uIHJlcXVlc3QuCisKKyAgICAgICAgOnBhcmFtIHJl
cXVlc3RfaGFuZGxlcjogQSBIMkhhbmRsZXJDb3B5IGluc3RhbmNlLgorCisgICAgICAgIDpwYXJh
bSByZXNwb25zZTogQSBIMlJlc3BvbnNlIGluc3RhbmNlLgorICAgICAgICAiIiIKKworICAgICAg
ICBzZWxmLmNvbm5lY3Rpb24gPSBfV2ViU29ja2V0Q29ubmVjdGlvbihyZXF1ZXN0X2hhbmRsZXIs
IHJlc3BvbnNlKQorICAgICAgICBzZWxmLl9yZXNwb25zZSA9IHJlc3BvbnNlCisKKyAgICAgICAg
c2VsZi51cmkgPSByZXF1ZXN0X2hhbmRsZXIucGF0aAorICAgICAgICBzZWxmLnVucGFyc2VkX3Vy
aSA9IHJlcXVlc3RfaGFuZGxlci5wYXRoCisgICAgICAgIHNlbGYubWV0aG9kID0gcmVxdWVzdF9o
YW5kbGVyLmNvbW1hbmQKKyAgICAgICAgIyByZWFkIGhlYWRlcnMgZnJvbSByZXF1ZXN0X2hhbmRs
ZXIKKyAgICAgICAgc2VsZi5oZWFkZXJzX2luID0gcmVxdWVzdF9oYW5kbGVyLmhlYWRlcnMKKyAg
ICAgICAgIyB3cml0ZSBoZWFkZXJzIGRpcmVjdGx5IGludG8gSDJSZXNwb25zZQorICAgICAgICBz
ZWxmLmhlYWRlcnNfb3V0ID0gcmVzcG9uc2UuaGVhZGVycworCisgICAgIyBwcm94aWVzIHN0YXR1
cyB0byBIMlJlc3BvbnNlCisgICAgQHByb3BlcnR5CisgICAgZGVmIHN0YXR1cyhzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3Jlc3BvbnNlLnN0YXR1cworCisgICAgQHN0YXR1cy5zZXR0ZXIK
KyAgICBkZWYgc3RhdHVzKHNlbGYsIHN0YXR1cyk6CisgICAgICAgIHNlbGYuX3Jlc3BvbnNlLnN0
YXR1cyA9IHN0YXR1cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvc3Rhc2gucHkKaW5kZXggNmIzNTE4NDc0OTFiZmVlMWY4ZTE3YTQyMTI3Yzg4YmU5N2E2Mjky
My4uYmY2ZTU5OTI3YmU0NGE1MDNhYTljYTE1Yjg0OTVmNTc3MDRmODllNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS93cHRzZXJ2ZS9zdGFzaC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3N0YXNoLnB5CkBAIC0xLDggKzEs
MTAgQEAKIGltcG9ydCBiYXNlNjQKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKLWltcG9ydCB1dWlk
CitpbXBvcnQgc2l4CiBpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdXVpZAorCiBmcm9tIG11bHRp
cHJvY2Vzc2luZy5tYW5hZ2VycyBpbXBvcnQgQWNxdWlyZXJQcm94eSwgQmFzZU1hbmFnZXIsIERp
Y3RQcm94eQogZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZSwgYmluYXJ5X3R5cGUKIApAQCAtMzIs
MTMgKzM0LDE2IEBAIENsaWVudERpY3RNYW5hZ2VyLnJlZ2lzdGVyKCJMb2NrIikKIAogCiBjbGFz
cyBTdGFzaFNlcnZlcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzPU5v
bmUsIGF1dGhrZXk9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFkZHJlc3M9Tm9uZSwg
YXV0aGtleT1Ob25lLCBtcF9jb250ZXh0PU5vbmUpOgogICAgICAgICBzZWxmLmFkZHJlc3MgPSBh
ZGRyZXNzCiAgICAgICAgIHNlbGYuYXV0aGtleSA9IGF1dGhrZXkKICAgICAgICAgc2VsZi5tYW5h
Z2VyID0gTm9uZQorICAgICAgICBzZWxmLm1wX2NvbnRleHQgPSBtcF9jb250ZXh0CiAKICAgICBk
ZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBzZWxmLm1hbmFnZXIsIHNlbGYuYWRkcmVzcywg
c2VsZi5hdXRoa2V5ID0gc3RhcnRfc2VydmVyKHNlbGYuYWRkcmVzcywgc2VsZi5hdXRoa2V5KQor
ICAgICAgICBzZWxmLm1hbmFnZXIsIHNlbGYuYWRkcmVzcywgc2VsZi5hdXRoa2V5ID0gc3RhcnRf
c2VydmVyKHNlbGYuYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmF1dGhrZXksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5t
cF9jb250ZXh0KQogICAgICAgICBzdG9yZV9lbnZfY29uZmlnKHNlbGYuYWRkcmVzcywgc2VsZi5h
dXRoa2V5KQogCiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CkBAIC02
MSwxMyArNjYsMTkgQEAgZGVmIHN0b3JlX2Vudl9jb25maWcoYWRkcmVzcywgYXV0aGtleSk6CiAg
ICAgb3MuZW52aXJvblsiV1BUX1NUQVNIX0NPTkZJRyJdID0ganNvbi5kdW1wcygoYWRkcmVzcywg
YXV0aGtleS5kZWNvZGUoImFzY2lpIikpKQogCiAKLWRlZiBzdGFydF9zZXJ2ZXIoYWRkcmVzcz1O
b25lLCBhdXRoa2V5PU5vbmUpOgorZGVmIHN0YXJ0X3NlcnZlcihhZGRyZXNzPU5vbmUsIGF1dGhr
ZXk9Tm9uZSwgbXBfY29udGV4dD1Ob25lKToKICAgICBpZiBpc2luc3RhbmNlKGF1dGhrZXksIHRl
eHRfdHlwZSk6CiAgICAgICAgIGF1dGhrZXkgPSBhdXRoa2V5LmVuY29kZSgiYXNjaWkiKQotICAg
IG1hbmFnZXIgPSBTZXJ2ZXJEaWN0TWFuYWdlcihhZGRyZXNzLCBhdXRoa2V5KQorICAgIGt3YXJn
cyA9IHt9CisgICAgaWYgc2l4LlBZMyBhbmQgbXBfY29udGV4dCBpcyBub3QgTm9uZToKKyAgICAg
ICAga3dhcmdzWyJjdHgiXSA9IG1wX2NvbnRleHQKKyAgICBtYW5hZ2VyID0gU2VydmVyRGljdE1h
bmFnZXIoYWRkcmVzcywgYXV0aGtleSwgKiprd2FyZ3MpCiAgICAgbWFuYWdlci5zdGFydCgpCiAK
LSAgICByZXR1cm4gKG1hbmFnZXIsIG1hbmFnZXIuX2FkZHJlc3MsIG1hbmFnZXIuX2F1dGhrZXkp
CisgICAgYWRkcmVzcyA9IG1hbmFnZXIuX2FkZHJlc3MKKyAgICBpZiBpc2luc3RhbmNlKGFkZHJl
c3MsIGJ5dGVzKToKKyAgICAgICAgYWRkcmVzcyA9IGFkZHJlc3MuZGVjb2RlKCJhc2NpaSIpCisg
ICAgcmV0dXJuIChtYW5hZ2VyLCBhZGRyZXNzLCBtYW5hZ2VyLl9hdXRoa2V5KQogCiAKIGNsYXNz
IExvY2tXcmFwcGVyKG9iamVjdCk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3V0aWxzLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS93cHRzZXJ2ZS91dGlscy5weQppbmRleCAwOTFlOWMyNmI3ZjY3YmRmNDg4N2IwZmZhMGJkYzg5
OWFhY2ViNTUyLi4xZWEyZDhjOTAyZmY0MmYwNDMwMzE5ZDNlNjU4Yzk0OTRhZWNkOWI2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3dwdHNlcnZlL3V0aWxzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdXRpbHMucHkKQEAg
LTEyMCw2ICsxMjAsNyBAQCBkZWYgaXNfYmFkX3BvcnQocG9ydCk6CiAgICAgICAgIDUzMiwgICAj
IG5ldG5ld3MKICAgICAgICAgNTQwLCAgICMgdXVjcAogICAgICAgICA1NDgsICAgIyBhZnAKKyAg
ICAgICAgNTU0LCAgICMgcnRzcAogICAgICAgICA1NTYsICAgIyByZW1vdGVmcwogICAgICAgICA1
NjMsICAgIyBubnRwK3NzbAogICAgICAgICA1ODcsICAgIyBzbXRwIChvdXRnb2luZykKQEAgLTEy
Nyw2ICsxMjgsOCBAQCBkZWYgaXNfYmFkX3BvcnQocG9ydCk6CiAgICAgICAgIDYzNiwgICAjIGxk
YXArc3NsCiAgICAgICAgIDk5MywgICAjIGxkYXArc3NsCiAgICAgICAgIDk5NSwgICAjIHBvcDMr
c3NsCisgICAgICAgIDE3MjAsICAjIGgzMjNob3N0Y2FsbAorICAgICAgICAxNzIzLCAgIyBwcHRw
CiAgICAgICAgIDIwNDksICAjIG5mcwogICAgICAgICAzNjU5LCAgIyBhcHBsZS1zYXNsCiAgICAg
ICAgIDQwNDUsICAjIGxvY2tkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS93cHRzZXJ2ZS93M2MtaW1wb3J0LmxvZwppbmRleCA2MjM0MmY5MmMxZjgyZmFlMzE5YjMz
MzQxZTM3YjQ2MjQ0M2EyYjkwLi5lYTgwNzM1MThmYzI3MTBhMmMxYjcxMzg4Y2EzNmFmOGUxMTRi
ZDVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvdzNjLWltcG9ydC5sb2cKQEAgLTI5LDMgKzI5LDQgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dw
dHNlcnZlL3N0YXNoLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS91dGlscy5weQogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvd3B0c2Vy
dmUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3dwdHNlcnZlL3dzX2gyX2hhbmRzaGFrZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRz
ZXJ2ZS93c19oMl9oYW5kc2hha2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3dzX2gyX2hhbmRzaGFrZS5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45ODc5NmMwYmFmOWUxODg3YmFkNTk1ODM0MGI5ZmIxN2QyYzAxNzVhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS93c19oMl9oYW5kc2hha2UucHkKQEAgLTAsMCArMSwy
NDcgQEAKKyIiIlRoaXMgZmlsZSBwcm92aWRlcyB0aGUgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vz
c29yIGZvciB0aGUgQm9vdHN0cmFwcGluZworV2ViU29ja2V0cyB3aXRoIEhUVFAvMiBwcm90b2Nv
bCAoUkZDIDg0NDEpLgorCitTcGVjaWZpY2F0aW9uOgoraHR0cHM6Ly90b29scy5pZXRmLm9yZy9o
dG1sL3JmYzg0NDEKKyIiIgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dAorCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCitmcm9tIG1vZF9weXdlYnNv
Y2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGlt
cG9ydCBTdHJlYW1PcHRpb25zCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAorZnJv
bSBzaXgubW92ZXMgaW1wb3J0IG1hcAorZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJhbmdlCisKKyMg
VE9ETzogV2UgYXJlIHVzaW5nICJwcml2YXRlIiBtZXRob2RzIG9mIHB5d2Vic29ja2V0LiBXZSBt
aWdodCB3YW50IHRvCisjIHJlZmFjdG9yIHB5d2Vic29ja2V0IHRvIGV4cG9zZSB0aG9zZSBtZXRo
b2RzIHB1YmxpY2x5LiBBbHNvLCBfZ2V0X29yaWdpbgorIyBfY2hlY2tfdmVyc2lvbiBfc2V0X3By
b3RvY29sIF9wYXJzZV9leHRlbnNpb25zIGFuZCBhIGxhcmdlIHBhcnQgb2YgZG9faGFuZHNoYWtl
CisjIGFyZSBpZGVudGljYWwgd2l0aCBoeWJpIGhhbmRzaGFrZS4gV2UgbmVlZCBzb21lIHJlZmFj
dG9yaW5nIHRvIGdldCByZW1vdmUgdGhhdAorIyBjb2RlIGR1cGxpY2F0aW9uLgorZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IKK2Zy
b20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZ2V0X21hbmRhdG9yeV9o
ZWFkZXIKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNo
YWtlRXhjZXB0aW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0
IHBhcnNlX3Rva2VuX2xpc3QKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBp
bXBvcnQgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFu
ZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0ZV9zdWJwcm90b2NvbAorZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBWZXJzaW9uRXhjZXB0aW9uCisKKyMgRGVmaW5p
bmcgYWxpYXNlcyBmb3IgdmFsdWVzIHVzZWQgZnJlcXVlbnRseS4KK19WRVJTSU9OX0xBVEVTVCA9
IGNvbW1vbi5WRVJTSU9OX0hZQklfTEFURVNUCitfVkVSU0lPTl9MQVRFU1RfU1RSSU5HID0gc3Ry
KF9WRVJTSU9OX0xBVEVTVCkKK19TVVBQT1JURURfVkVSU0lPTlMgPSBbCisgICAgX1ZFUlNJT05f
TEFURVNULAorXQorCisKK2RlZiBjaGVja19jb25uZWN0X21ldGhvZChyZXF1ZXN0KToKKyAgICBp
ZiByZXF1ZXN0Lm1ldGhvZCAhPSB1J0NPTk5FQ1QnOgorICAgICAgICByYWlzZSBIYW5kc2hha2VF
eGNlcHRpb24oJ01ldGhvZCBpcyBub3QgQ09OTkVDVDogJXInICUgcmVxdWVzdC5tZXRob2QpCisK
KworY2xhc3MgV3NIMkhhbmRzaGFrZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
cmVxdWVzdCwgZGlzcGF0Y2hlcik6CisgICAgICAgICIiIk9wZW5pbmcgaGFuZHNoYWtlIHByb2Nl
c3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAoUkZDIDY0NTUpLgorCisgICAgICAgIDpw
YXJhbSByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCisKKyAgICAgICAgOnBhcmFtIGRpc3Bh
dGNoZXI6IERpc3BhdGNoZXIgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgorCisgICAgICAgIFdzSDJI
YW5kc2hha2VyIHdpbGwgYWRkIGF0dHJpYnV0ZXMgc3VjaCBhcyB3c19yZXNvdXJjZSBkdXJpbmcg
aGFuZHNoYWtlLgorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdl
dF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAor
ICAgICAgICBzZWxmLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcgorCisgICAgZGVmIF9nZXRfZXh0
ZW5zaW9uX3Byb2Nlc3NvcnNfcmVxdWVzdGVkKHNlbGYpOgorICAgICAgICBwcm9jZXNzb3JzID0g
W10KKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucyBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIGZvciBleHRlbnNpb25fcmVxdWVzdCBpbiBzZWxmLl9yZXF1
ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zOgorICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9
IGdldF9leHRlbnNpb25fcHJvY2Vzc29yKGV4dGVuc2lvbl9yZXF1ZXN0KQorICAgICAgICAgICAg
ICAgICMgVW5rbm93biBleHRlbnNpb24gcmVxdWVzdHMgYXJlIGp1c3QgaWdub3JlZC4KKyAgICAg
ICAgICAgICAgICBpZiBwcm9jZXNzb3IgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAg
IHByb2Nlc3NvcnMuYXBwZW5kKHByb2Nlc3NvcikKKyAgICAgICAgcmV0dXJuIHByb2Nlc3NvcnMK
KworICAgIGRlZiBkb19oYW5kc2hha2Uoc2VsZik6CisgICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nf
Y2xvc2VfY29kZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9yZWFzb24g
PSBOb25lCisKKyAgICAgICAgIyBQYXJzaW5nLgorCisgICAgICAgIGNoZWNrX2Nvbm5lY3RfbWV0
aG9kKHNlbGYuX3JlcXVlc3QpCisKKyAgICAgICAgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcihz
ZWxmLl9yZXF1ZXN0LCAnOnByb3RvY29sJywgJ3dlYnNvY2tldCcpCisKKyAgICAgICAgc2VsZi5f
cmVxdWVzdC53c19yZXNvdXJjZSA9IHNlbGYuX3JlcXVlc3QudXJpCisKKyAgICAgICAgZ2V0X21h
bmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwgJ2F1dGhvcml0eScpCisKKyAgICAgICAgc2Vs
Zi5fcmVxdWVzdC53c192ZXJzaW9uID0gc2VsZi5fY2hlY2tfdmVyc2lvbigpCisKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgc2VsZi5fZ2V0X29yaWdpbigpCisgICAgICAgICAgICBzZWxmLl9z
ZXRfcHJvdG9jb2woKQorICAgICAgICAgICAgc2VsZi5fcGFyc2VfZXh0ZW5zaW9ucygpCisKKyAg
ICAgICAgICAgICMgU2V0dXAgZXh0ZW5zaW9uIHByb2Nlc3NvcnMuCisgICAgICAgICAgICBzZWxm
Ll9yZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gc2VsZi5fZ2V0X2V4dGVuc2lvbl9w
cm9jZXNzb3JzX3JlcXVlc3RlZCgpCisKKyAgICAgICAgICAgICMgTGlzdCBvZiBleHRyYSBoZWFk
ZXJzLiBUaGUgZXh0cmEgaGFuZHNoYWtlIGhhbmRsZXIgbWF5IGFkZCBoZWFkZXIKKyAgICAgICAg
ICAgICMgZGF0YSBhcyBuYW1lL3ZhbHVlIHBhaXJzIHRvIHRoaXMgbGlzdCBhbmQgcHl3ZWJzb2Nr
ZXQgYXBwZW5kcworICAgICAgICAgICAgIyB0aGVtIHRvIHRoZSBXZWJTb2NrZXQgaGFuZHNoYWtl
LgorICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5leHRyYV9oZWFkZXJzID0gW10KKworICAgICAg
ICAgICAgIyBFeHRyYSBoYW5kc2hha2UgaGFuZGxlciBtYXkgbW9kaWZ5L3JlbW92ZSBwcm9jZXNz
b3JzLgorICAgICAgICAgICAgc2VsZi5fZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2Uoc2Vs
Zi5fcmVxdWVzdCkKKyAgICAgICAgICAgIHByb2Nlc3NvcnMgPSBbCisgICAgICAgICAgICAgICAg
cHJvY2Vzc29yCisgICAgICAgICAgICAgICAgZm9yIHByb2Nlc3NvciBpbiBzZWxmLl9yZXF1ZXN0
LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzCisgICAgICAgICAgICAgICAgaWYgcHJvY2Vzc29yIGlz
IG5vdCBOb25lCisgICAgICAgICAgICBdCisKKyAgICAgICAgICAgICMgQXNrIGVhY2ggcHJvY2Vz
c29yIGlmIHRoZXJlIGFyZSBleHRlbnNpb25zIG9uIHRoZSByZXF1ZXN0IHdoaWNoCisgICAgICAg
ICAgICAjIGNhbm5vdCBjby1leGlzdC4gV2hlbiBwcm9jZXNzb3IgZGVjaWRlZCBvdGhlciBwcm9j
ZXNzb3JzIGNhbm5vdAorICAgICAgICAgICAgIyBjby1leGlzdCB3aXRoIGl0LCB0aGUgcHJvY2Vz
c29yIG1hcmtzIHRoZW0gKG9yIGl0c2VsZikgYXMKKyAgICAgICAgICAgICMgImluYWN0aXZlIi4g
VGhlIGZpcnN0IGV4dGVuc2lvbiBwcm9jZXNzb3IgaGFzIHRoZSByaWdodCB0bworICAgICAgICAg
ICAgIyBtYWtlIHRoZSBmaW5hbCBjYWxsLgorICAgICAgICAgICAgZm9yIHByb2Nlc3NvciBpbiBy
ZXZlcnNlZChwcm9jZXNzb3JzKToKKyAgICAgICAgICAgICAgICBpZiBwcm9jZXNzb3IuaXNfYWN0
aXZlKCk6CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5jaGVja19jb25zaXN0ZW5jeV93
aXRoX290aGVyX3Byb2Nlc3NvcnMoCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3Jz
KQorICAgICAgICAgICAgcHJvY2Vzc29ycyA9IFsKKyAgICAgICAgICAgICAgICBwcm9jZXNzb3Ig
Zm9yIHByb2Nlc3NvciBpbiBwcm9jZXNzb3JzIGlmIHByb2Nlc3Nvci5pc19hY3RpdmUoKQorICAg
ICAgICAgICAgXQorCisgICAgICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gW10KKworICAg
ICAgICAgICAgc3RyZWFtX29wdGlvbnMgPSBTdHJlYW1PcHRpb25zKCkKKworICAgICAgICAgICAg
Zm9yIGluZGV4LCBwcm9jZXNzb3IgaW4gZW51bWVyYXRlKHByb2Nlc3NvcnMpOgorICAgICAgICAg
ICAgICAgIGlmIG5vdCBwcm9jZXNzb3IuaXNfYWN0aXZlKCk6CisgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICBleHRlbnNpb25fcmVzcG9uc2UgPSBwcm9jZXNz
b3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCisgICAgICAgICAgICAgICAgaWYgZXh0ZW5zaW9u
X3Jlc3BvbnNlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgICMgUmVqZWN0ZWQuCisgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICBhY2NlcHRlZF9leHRl
bnNpb25zLmFwcGVuZChleHRlbnNpb25fcmVzcG9uc2UpCisKKyAgICAgICAgICAgICAgICBwcm9j
ZXNzb3Iuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbnMpCisKKyAgICAgICAgICAg
ICAgICAjIEluYWN0aXZhdGUgYWxsIG9mIHRoZSBmb2xsb3dpbmcgY29tcHJlc3Npb24gZXh0ZW5z
aW9ucy4KKyAgICAgICAgICAgICAgICBmb3IgaiBpbiByYW5nZShpbmRleCArIDEsIGxlbihwcm9j
ZXNzb3JzKSk6CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnNbal0uc2V0X2FjdGl2ZShG
YWxzZSkKKworICAgICAgICAgICAgaWYgbGVuKGFjY2VwdGVkX2V4dGVuc2lvbnMpID4gMDoKKyAg
ICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMgPSBhY2NlcHRlZF9leHRl
bnNpb25zCisgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAg
ICAgICAgICAnRXh0ZW5zaW9ucyBhY2NlcHRlZDogJXInLAorICAgICAgICAgICAgICAgICAgICBs
aXN0KAorICAgICAgICAgICAgICAgICAgICAgICAgbWFwKGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25z
KSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nf
ZXh0ZW5zaW9ucyA9IE5vbmUKKworICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19zdHJlYW0g
PSBzZWxmLl9jcmVhdGVfc3RyZWFtKHN0cmVhbV9vcHRpb25zKQorCisgICAgICAgICAgICBpZiBz
ZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBOb25lOgorICAgICAgICAg
ICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAg
ICAgICAnZG9fZXh0cmFfaGFuZHNoYWtlIG11c3QgY2hvb3NlIG9uZSBzdWJwcm90b2NvbCBmcm9t
ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICd3c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGFuZCBz
ZXQgaXQgdG8gd3NfcHJvdG9jb2wnKQorICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3Rv
Y29sKHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpCisKKyAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ1N1YnByb3RvY29sIGFjY2VwdGVkOiAlcicsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpCisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigK
KyAgICAgICAgICAgICAgICAgICAgICAgICd3c19wcm90b2NvbCBtdXN0IGJlIE5vbmUgd2hlbiB0
aGUgY2xpZW50IGRpZG5cJ3QgJworICAgICAgICAgICAgICAgICAgICAgICAgJ3JlcXVlc3QgYW55
IHN1YnByb3RvY29sJykKKworICAgICAgICAgICAgc2VsZi5fcHJlcGFyZV9oYW5kc2hha2VfcmVz
cG9uc2UoKQorICAgICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uIGFzIGU6CisgICAgICAg
ICAgICBpZiBub3QgZS5zdGF0dXM6CisgICAgICAgICAgICAgICAgIyBGYWxsYmFjayB0byA0MDAg
YmFkIHJlcXVlc3QgYnkgZGVmYXVsdC4KKyAgICAgICAgICAgICAgICBlLnN0YXR1cyA9IGNvbW1v
bi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVAorICAgICAgICAgICAgcmFpc2UgZQorCisgICAgZGVm
IF9nZXRfb3JpZ2luKHNlbGYpOgorICAgICAgICBvcmlnaW4gPSBzZWxmLl9yZXF1ZXN0LmhlYWRl
cnNfaW4uZ2V0KCdvcmlnaW4nKQorICAgICAgICBpZiBvcmlnaW4gaXMgTm9uZToKKyAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50IHJlcXVlc3QgZG9lcyBub3QgaGF2ZSBvcmln
aW4gaGVhZGVyJykKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c19vcmlnaW4gPSBvcmlnaW4KKwor
ICAgIGRlZiBfY2hlY2tfdmVyc2lvbihzZWxmKToKKyAgICAgICAgc2VjX3dlYnNvY2tldF92ZXJz
aW9uX2hlYWRlciA9ICdzZWMtd2Vic29ja2V0LXZlcnNpb24nCisgICAgICAgIHZlcnNpb24gPSBn
ZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LCBzZWNfd2Vic29ja2V0X3ZlcnNpb25f
aGVhZGVyKQorICAgICAgICBpZiB2ZXJzaW9uID09IF9WRVJTSU9OX0xBVEVTVF9TVFJJTkc6Cisg
ICAgICAgICAgICByZXR1cm4gX1ZFUlNJT05fTEFURVNUCisKKyAgICAgICAgaWYgdmVyc2lvbi5m
aW5kKCcsJykgPj0gMDoKKyAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAg
ICAgICAgICAgICAgICAnTXVsdGlwbGUgdmVyc2lvbnMgKCVyKSBhcmUgbm90IGFsbG93ZWQgZm9y
IGhlYWRlciAlcycgJQorICAgICAgICAgICAgICAgICh2ZXJzaW9uLCBzZWNfd2Vic29ja2V0X3Zl
cnNpb25faGVhZGVyKSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVT
X0JBRF9SRVFVRVNUKQorICAgICAgICByYWlzZSBWZXJzaW9uRXhjZXB0aW9uKCdVbnN1cHBvcnRl
ZCB2ZXJzaW9uICVyIGZvciBoZWFkZXIgJXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodmVyc2lvbiwgc2VjX3dlYnNvY2tldF92ZXJzaW9uX2hlYWRlciksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkX3ZlcnNpb25zPScsICcuam9pbigKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKHN0ciwgX1NVUFBPUlRFRF9WRVJTSU9O
UykpKQorCisgICAgZGVmIF9zZXRfcHJvdG9jb2woc2VsZik6CisgICAgICAgIHNlbGYuX3JlcXVl
c3Qud3NfcHJvdG9jb2wgPSBOb25lCisKKyAgICAgICAgcHJvdG9jb2xfaGVhZGVyID0gc2VsZi5f
cmVxdWVzdC5oZWFkZXJzX2luLmdldCgnc2VjLXdlYnNvY2tldC1wcm90b2NvbCcpCisKKyAgICAg
ICAgaWYgcHJvdG9jb2xfaGVhZGVyIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgPSBOb25lCisgICAgICAgICAgICByZXR1cm4KKworICAg
ICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgPSBwYXJzZV90b2tlbl9s
aXN0KAorICAgICAgICAgICAgcHJvdG9jb2xfaGVhZGVyKQorICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ1N1YnByb3RvY29scyByZXF1ZXN0ZWQ6ICVyJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scykKKworICAgIGRlZiBf
cGFyc2VfZXh0ZW5zaW9ucyhzZWxmKToKKyAgICAgICAgZXh0ZW5zaW9uc19oZWFkZXIgPSBzZWxm
Ll9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KCdzZWMtd2Vic29ja2V0LWV4dGVuc2lvbnMnKQorICAg
ICAgICBpZiBub3QgZXh0ZW5zaW9uc19oZWFkZXI6CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX3JlcXVlc3RlZF9leHRlbnNpb25zID0gTm9uZQorICAgICAgICAgICAgcmV0dXJuCisKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5z
aW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAorICAgICAgICAgICAgICAgIGV4dGVuc2lv
bnNfaGVhZGVyKQorICAgICAgICBleGNlcHQgY29tbW9uLkV4dGVuc2lvblBhcnNpbmdFeGNlcHRp
b24gYXMgZToKKyAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAg
ICAgICAgICAnRmFpbGVkIHRvIHBhcnNlIHNlYy13ZWJzb2NrZXQtZXh0ZW5zaW9ucyBoZWFkZXI6
ICVyJyAlIGUpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgJ0V4
dGVuc2lvbnMgcmVxdWVzdGVkOiAlcicsCisgICAgICAgICAgICBsaXN0KAorICAgICAgICAgICAg
ICAgIG1hcChjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyLm5hbWUsCisgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMpKSkKKworICAgIGRlZiBf
Y3JlYXRlX3N0cmVhbShzZWxmLCBzdHJlYW1fb3B0aW9ucyk6CisgICAgICAgIHJldHVybiBTdHJl
YW0oc2VsZi5fcmVxdWVzdCwgc3RyZWFtX29wdGlvbnMpCisKKyAgICBkZWYgX3ByZXBhcmVfaGFu
ZHNoYWtlX3Jlc3BvbnNlKHNlbGYpOgorICAgICAgICBzZWxmLl9yZXF1ZXN0LnN0YXR1cyA9IDIw
MAorCisgICAgICAgIHNlbGYuX3JlcXVlc3QuaGVhZGVyc19vdXRbJ3VwZ3JhZGUnXSA9IGNvbW1v
bi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFCisgICAgICAgIHNlbGYuX3JlcXVlc3QuaGVhZGVyc19v
dXRbJ2Nvbm5lY3Rpb24nXSA9IGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRQorCisgICAg
ICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfb3V0WydzZWMtd2Vic29ja2V0LXByb3RvY29sJ10gPSBz
ZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sCisKKyAgICAgICAgaWYgKHNlbGYuX3JlcXVlc3Qud3Nf
ZXh0ZW5zaW9ucyBpcyBub3QgTm9uZSBhbmQKKyAgICAgICAgICAgICAgICBsZW4oc2VsZi5fcmVx
dWVzdC53c19leHRlbnNpb25zKSAhPSAwKToKKyAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuaGVh
ZGVyc19vdXRbJ3NlYy13ZWJzb2NrZXQtZXh0ZW5zaW9ucyddID0gY29tbW9uLmZvcm1hdF9leHRl
bnNpb25zKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykKKworICAgICAgICAjIEhlYWRlcnMg
bm90IHNwZWNpZmljIGZvciBXZWJTb2NrZXQKKyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNl
bGYuX3JlcXVlc3QuZXh0cmFfaGVhZGVyczoKKyAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuaGVh
ZGVyc19vdXRbbmFtZV0gPSB2YWx1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAppbmRleCBhMjRiYzgzYTkxOTdhMTU2MWRkZjI4YzgxMTZjMGNi
MTBiY2RlNzBlLi4zNmQwYmVkNDhlZGFhYmYyMGIxNjVhMTIxMjhkYTkzY2VlYjY0OTQ3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdApAQCAt
MSw1ICsxLDM0IEBACiAjIS91c3IvYmluL2VudiBweXRob24KIAogaWYgX19uYW1lX18gPT0gIl9f
bWFpbl9fIjoKKyAgICBpbXBvcnQgc3lzCiAgICAgZnJvbSB0b29scy53cHQgaW1wb3J0IHdwdAot
ICAgIHdwdC5tYWluKCkKKyAgICBhcmdzLCBleHRyYSA9IHdwdC5wYXJzZV9hcmdzKHN5cy5hcmd2
WzE6XSkKKyAgICBjb21tYW5kcyA9IHdwdC5sb2FkX2NvbW1hbmRzKCkKKyAgICBweTNvbmx5ID0g
Y29tbWFuZHNbYXJncy5jb21tYW5kXVsicHkzb25seSJdCisKKyAgICBpZiAoYXJncy5weTIpIGFu
ZCBzeXMudmVyc2lvbl9pbmZvLm1ham9yID4gMjoKKyAgICAgICAgaWYgcHkzb25seToKKyAgICAg
ICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIlRoaXMgY29tbWFuZCBvbmx5IHdvcmtzIHdpdGggUHl0
aG9uIDNcbiIpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorICAgICAgICBmcm9tIHN1YnByb2Nl
c3MgaW1wb3J0IGNhbGwKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3lzLmV4aXQoY2FsbChb
J3B5dGhvbjInXSArIHN5cy5hcmd2KSkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAg
ICAgICAgICAgIGlmIGUuZXJybm8gPT0gMjoKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndy
aXRlKCJweXRob24yIGlzIG5lZWRlZCB0byBydW4gdGhpcyBjb21tYW5kXG4iKQorICAgICAgICAg
ICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJh
aXNlCisgICAgZWxpZiAobm90IGFyZ3MucHkyKSBhbmQgc3lzLnZlcnNpb25faW5mby5tYWpvciA8
IDM6CisgICAgICAgIGZyb20gc3VicHJvY2VzcyBpbXBvcnQgY2FsbAorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBzeXMuZXhpdChjYWxsKFsncHl0aG9uMyddICsgc3lzLmFyZ3YpKQorICAgICAg
ICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgZS5lcnJubyA9PSAyOgorICAg
ICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoInB5dGhvbjMgaXMgbmVlZGVkIHRvIHJ1biB0
aGlzIGNvbW1hbmRcbiIpCisgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICBlbHNlOgorICAgICAgICB3cHQubWFp
bigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQ0OWE3
NzkyMmE2YzFkMzcxNmNjMTNlMTBmODc2MWYxOWI4NTdmNzUuLjdiY2FkODA5MTMzM2RkMTg4ZjVm
Yjg5M2VlOTEwMWFkMmY4ZTUxMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0xODUyLDggKzE4NTIsNiBAQCB3ZWJraXQub3JnL2IvMTg2MDk5IGVkaXRp
bmcvY2FyZXQvY2FyZXQtaW4tZW1wdHktY2VsbC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
IHdlYmtpdC5vcmcvYi8xODYxNDIgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXRleHQvdGV4dC10cmFuc2Zvcm0vdGV4dC10cmFuc2Zvcm0tdXBwZXJsb3dlci0wMTYuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTg2NjE4IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy5odG1s
IFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xODY2MDEgZnVsbHNjcmVlbi9mdWxsLXNjcmVl
bi1sYXllci1kdW1wLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE4NzI2OCBjb21w
b3NpdGluZy9iYWNraW5nL2JhY2tpbmctc3RvcmUtYXR0YWNobWVudC1vdXRzaWRlLXZpZXdwb3J0
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggZmNjMzk5OWM5ZGVkMWU3YmYzOGEzM2I0NWMxY2Q4MDViN2IyNTdhMS4uZjdjYWE2
NTM2MmZiZWMxYWM2MTM5Y2YwNTk3MzJhYTIyODliZjFiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIzMTQsOSArMjMxNCw2IEBAIHdlYmtpdC5vcmcv
Yi8xNTc1OTIgZmFzdC9pbWFnZXMvY29tcG9zaXRlZC1hbmltYXRlZC1naWYtb3V0c2lkZS12aWV3
cG9ydC5odG1sIFsKIAogd2Via2l0Lm9yZy9iLzE1NjU2MSBwZXJmL3JlbC1saXN0LXJlbW92ZS5o
dG1sIFsgUGFzcyBUaW1lb3V0IEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTYzMzMyIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1yZWxvYWQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTYzMzMyIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1vbmx5LWlmLWNhY2hlZC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE3
MjQwMyBpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLXZhbGlkLWFmdGVyLWRl
bGV0aW9uLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTQyOTY5IGVkaXRp
bmcvc3BlbGxpbmcvY29weS1wYXN0ZS1jcmFzaC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDhmYmQ1NzhhZjdjZWQ3ZTRmMTU0Y2Q3
YjI3MGRmNjJhNzQ2MzJjMi4uYmJmNzk5ZjkzNTFiZDE4ZDZkODczYWQ0ZDExZTJiYTk3ODNhN2U3
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNjQyLDggKzY0Miw2IEBAIHdlYmtpdC5vcmcvYi8xNzIwNDQgWyBEZWJ1ZyBdIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL29wZW4tcmVxCiAKIHdlYmtpdC5vcmcv
Yi8xNzM3NzkgWyBEZWJ1ZyBdIGZhc3Qvc2Nyb2xsaW5nL2Fycm93LWtleS1zY3JvbGwtaW4tcnRs
LWRvY3VtZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTczNjcyIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9pbnZhbGlkYXRl
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTczNTAwIGh0dHAvdGVzdHMv
bG9hZGluZy9iYXNpYy1hdXRoLXJlbW92ZS1jcmVkZW50aWFscy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KIAogd2Via2l0Lm9yZy9iLzE3NTc4MSBzdmcvaW4taHRtbC9ieS1yZWZlcmVuY2UuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDRlODMxZjM4MmI5MTJmNDJkMTUzODY4ZTc5ZmM1MDBmNzc0YTQ3MzkuLjE3ZTAzOGRl
NTMxMWQxYWFlMGYzZDQyYjE3NTdjMTgyZjQzMThiOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjkyLDEwICsxMjkyLDYgQEAgZmFzdC90ZXh0L3N5
c3RlbS1mb250LWphcGFuZXNlLXN5bnRoZXRpYy1pdGFsaWMuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5
RmFpbHVyZSBdCiAjIHdlIHNob3VsZCBkZWxldGUgdGhlIHRlc3QuCiBmYXN0L3RleHQvZm9udC12
YXJpYXRpb25zLWZlYXR1cmUtZGV0ZWN0aW9uLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAot
IyA8cmRhcjovL3Byb2JsZW0vMzM0Mzc1OTc+IE11bHRpcGxlIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2ggYXJlIGZhaWxpbmcgb24gSGlnaCBTaWVycmEKLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnku
d29ya2VyLmh0bWwgWyBGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnkuaHRtbCBbIEZhaWx1cmUgXQotCiAj
IDxyZGFyOi8vcHJvYmxlbS8zMzczMTA4Nj4KIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
aW1lLWxhYmVscy1zdXBwb3J0L2VsYXBzZWQtdGltZS5odG1sIFsgU2tpcCBdCiAKQEAgLTIwMDEs
OCArMTk5Nyw2IEBAIHdlYmtpdC5vcmcvYi8yMTU3MjMgZmFzdC9yZXBhaW50L2xpc3QtaXRlbS1l
cXVhbC1zdHlsZS1jaGFuZ2Utbm8tcmVwYWludC5odG1sIFsKIAogd2Via2l0Lm9yZy9iLzE4OTY3
MiBbIFJlbGVhc2UgXSB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3Rl
eC0yZC1yZzMyZi1yZy1mbG9hdC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9i
LzIxNTc4NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY2FjaGUtb25seS1pZi1jYWNoZWQuaHRtbCBbIFBhc3MgXQotCiB3ZWJraXQub3Jn
L2IvMTkxNjI3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2Fs
aWdubWVudC9ncmlkLXNlbGYtYmFzZWxpbmUtbm90LWFwcGxpZWQtaWYtc2l6aW5nLWN5Y2xpYy1k
ZXBlbmRlbmN5LTAwMS5odG1sIFsgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8yMTU4MTQgWyBEZWJ1
ZyBdIGluc3BlY3Rvci9jb25zb2xlL3F1ZXJ5SW5zdGFuY2VzLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnktZXhwZWN0ZWQudHh0
CmluZGV4IDcwYTdiOWVhYWQ1MjhkOGNjNmZmZjU4NTViODIzNmU1NzhhMDdjNWEuLmY5ODc0YzQw
NDFhMjJkMzIzOTQ2YjNmN2Y1ZDQyMzg5YTEyYmI2MTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9yZXF1ZXN0LWhlYWRlcnMuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFz
aWMvcmVxdWVzdC1oZWFkZXJzLmFueS1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKIFBB
U1MgRmV0Y2ggd2l0aCBHRVQKLUZBSUwgRmV0Y2ggd2l0aCBIRUFEIGFzc2VydF9lcXVhbHM6IFJl
cXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNvbnRlbnQtbGVuZ3RoOiBudWxsIGV4cGVjdGVkIChv
YmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAiMCIKK1BBU1MgRmV0Y2ggd2l0aCBIRUFECiBQ
QVNTIEZldGNoIHdpdGggUFVUIHdpdGhvdXQgYm9keQogUEFTUyBGZXRjaCB3aXRoIFBVVCB3aXRo
IGJvZHkKIFBBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGhvdXQgYm9keQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5k
ZXggNzBhN2I5ZWFhZDUyOGQ4Y2M2ZmZmNTg1NWI4MjM2ZTU3OGEwN2M1YS4uZjk4NzRjNDA0MWEy
MmQzMjM5NDZiM2Y3ZjVkNDIzODlhMTJiYjYxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L3JlcXVlc3QtaGVhZGVycy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
YmFzaWMvcmVxdWVzdC1oZWFkZXJzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NiBAQAogCiBQQVNTIEZldGNoIHdpdGggR0VUCi1GQUlMIEZldGNoIHdpdGggSEVBRCBhc3NlcnRf
ZXF1YWxzOiBSZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250ZW50LWxlbmd0aDogbnVsbCBl
eHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHN0cmluZykgIjAiCitQQVNTIEZldGNoIHdp
dGggSEVBRAogUEFTUyBGZXRjaCB3aXRoIFBVVCB3aXRob3V0IGJvZHkKIFBBU1MgRmV0Y2ggd2l0
aCBQVVQgd2l0aCBib2R5CiBQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRob3V0IGJvZHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTZkNDM4MWQwMTg3Zjcw
MjgzY2U5MmJlMTM1NDI5MDNmOTk4NDBhZS4uMjcxMmExZDY5ZjMzY2U1NWE4OGNmY2RhMWRmNGYy
M2JjMzAxMzU2OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTcyOCw5ICs3MjgsNiBAQCBodHRwL3Rlc3RzL3N0b3JhZ2Uvc3RvcmFnZS1tYXAtbGVha2lu
Zy5odG1sIFsgUGFzcyBdCiAjIER1bXBSZW5kZXJUcmVlIGRvZXMgbm90IGltcGxlbWVudCBzZXRX
aWxsU2VuZFJlcXVlc3RIVFRQQm9keQogaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0
LXdpdGgtY2xpZW50LXByb3ZpZGVkLWh0dHAtYm9keS5odG1sIFsgUGFzcyBdCiAKLSMgYnVnIDE2
MjI4MQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmh0bWwgWyBGYWlsdXJlIF0KLQogcHJpbnRpbmcv
cHJpbnRpbmctZXZlbnRzLmh0bWwgWyBQYXNzIF0KIAogIyBSZXNvdXJjZSBMb2FkIFN0YXRpc3Rp
Y3MgYXJlIG9ubHkgc3VwcG9ydGVkIGluIFdlYktpdDIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dw
ZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGUyNjRlOGRlZTc3NWM3M2NkYzFhZWE5OTE5M2U1NmY1
YTRhZTU2MTEuLjYxZDNhYTI5MGFhYWIxYWQwNjdhYWEyZGNmYzg0MGVlNTYyZjZhNmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC04MjcsMTIgKzgyNyw2
IEBAIHdlYmtpdC5vcmcvYi8yMDgxMzkgaHR0cC90ZXN0cy9jYWNoZS9saW5rLXByZWZldGNoLW1h
aW4tcmVzb3VyY2UuaHRtbCBbIEZhaWx1cmUKIAogd2Via2l0Lm9yZy9iLzIwODEzOSBodHRwL3dw
dC9wcmVmZXRjaC9saW5rLXByZWZldGNoLXNraXAtZGlzay1jYWNoZS5odG1sIFsgRmFpbHVyZSBQ
YXNzIF0KIHdlYmtpdC5vcmcvYi8yMDgxMzkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jb3JzLzMwNC5odG0gWyBGYWlsdXJlIFBhc3MgXQotd2Via2l0Lm9yZy9iLzIwODEzOSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5o
dG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8yMDgxMzkgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVzcy5odG1sIFsgRmFpbHVy
ZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8yMDgxMzkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2hldXJpc3RpYy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdl
YmtpdC5vcmcvYi8yMDgxMzkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
dHRwLWNhY2hlL2ludmFsaWRhdGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi13ZWJraXQub3JnL2Iv
MjA4MTM5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9z
dGF0dXMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi13ZWJraXQub3JnL2IvMjA4MTM5IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5Lmh0bWwgWyBGYWls
dXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzIwODEzOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtbm8tY2FjaGUtcmVx
dWVzdC1oZWFkZXJzLmh0dHBzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2Iv
MjA4ODcwIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLTIwNC1zdGF0dXMt
Y29kZS5odG1sIFsgRmFpbHVyZSBQYXNzIF0KQEAgLTg0MCwxMSArODM0LDYgQEAgd2Via2l0Lm9y
Zy9iLzIwODg3MCBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS0zMDctc3Rh
dHVzLWNvZGUuaHRtbAogd2Via2l0Lm9yZy9iLzIwODg3MCBodHRwL3Rlc3RzL2NhY2hlL2Rpc2st
Y2FjaGUvZGlzay1jYWNoZS00MDQtc3RhdHVzLWNvZGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiB3
ZWJraXQub3JnL2IvMjA4ODcwIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hl
LWRpc2FibGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8yMDg5MzcgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwt
Z2V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotd2Via2l0Lm9yZy9iLzIwODkzNyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVm
YXVsdC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8yMDg5MzcgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZv
cmNlLWNhY2hlLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotd2Via2l0Lm9yZy9iLzIwODkzNyBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2Fj
aGUtcmVsb2FkLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiAjIFNpbmNlIHIyNDk2MjIKIHdlYmtp
dC5vcmcvYi8yMDY2MzkgaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1jb29raWVz
LWJhc2ljLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzIwNjYzOSBodHRwL3Rl
c3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWNvb2tpZXMtc2VuZC5odG1sIFsgRmFpbHVyZSBQ
YXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbiBiL0xheW91
dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgppbmRleCBmMjRlMDU2MDU3ZTY0ZmNmYjEwNDE2Njdi
YjdlZjY1YzkwNTljYzE5Li4yNWY3ZTBlMmZjMGMzMGI4NTFmOTJkMWJlMDcxMWY4YWJmYjJkZDY2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KKysrIGIvTGF5b3V0
VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCkBAIC0xMSwzMjMyICsxMSwxNiBAQAogICAgICJodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQtZ3JlYXRlci10aGFuLWRlZmF1bHQtbmV0d29y
ay10aW1lb3V0Lmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy9jc3MvY3NzLWNvbG9yL2NvbG9yLXJlc29sdmluZy1oc2wuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2Nzcy9jc3MtdmFsdWVzL3ZoX25vdF9y
ZWZyZXNoaW5nX29uX2Nocm9tZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2NsZWFya2V5LW1wNC1wbGF5YmFjay10ZW1w
b3JhcnktZW5jcnlwdGVkLWNsZWFyLXNvdXJjZXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9jbGVhcmtleS1t
cDQtcGxheWJhY2stdGVtcG9yYXJ5LW11bHRpa2V5LXNlcXVlbnRpYWwtcmVhZHlTdGF0ZS5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5j
cnlwdGVkLW1lZGlhL2NsZWFya2V5LW1wNC1wbGF5YmFjay10ZW1wb3JhcnktbXVsdGlrZXktc2Vx
dWVudGlhbC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2NsZWFya2V5LW1wNC1wbGF5YmFjay10ZW1wb3Jhcnkt
dHdvLXZpZGVvcy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2NsZWFya2V5LW1wNC1yZXF1ZXN0bWVkaWFrZXlz
eXN0ZW1hY2Nlc3MuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tZXZlbnRzLmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEv
ZHJtLWV4cGlyYXRpb24uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0ta2V5c3RhdHVzZXMtbXVsdGlwbGUt
c2Vzc2lvbnMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0ta2V5c3RhdHVzZXMuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRp
YS9kcm0tbXA0LXBsYXliYWNrLWRlc3Ryb3ktcGVyc2lzdGVudC1saWNlbnNlLmh0dHBzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQt
bWVkaWEvZHJtLW1wNC1wbGF5YmFjay1wZXJzaXN0ZW50LWxpY2Vuc2UtZXZlbnRzLmh0dHBzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0
ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay1wZXJzaXN0ZW50LWxpY2Vuc2UuaHR0cHMuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1t
ZWRpYS9kcm0tbXA0LXBsYXliYWNrLXBlcnNpc3RlbnQtdXNhZ2UtcmVjb3JkLWV2ZW50cy5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5j
cnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stcGVyc2lzdGVudC11c2FnZS1yZWNvcmQuaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2Vu
Y3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXJldHJpZXZlLWRlc3Ryb3ktcGVyc2lzdGVu
dC1saWNlbnNlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay1yZXRyaWV2ZS1wZXJz
aXN0ZW50LWxpY2Vuc2UuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXJldHJpZXZl
LXBlcnNpc3RlbnQtdXNhZ2UtcmVjb3JkLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFj
ay10ZW1wb3JhcnktY2xlYXItZW5jcnlwdGVkLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5
YmFjay10ZW1wb3JhcnktZW5jcnlwdGVkLWNsZWFyLXNvdXJjZXMuaHR0cHMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9k
cm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1lbmNyeXB0ZWQtY2xlYXIuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRp
YS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1ldmVudHMuaHR0cHMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0t
bXA0LXBsYXliYWNrLXRlbXBvcmFyeS1leHBpcmVkLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1w
bGF5YmFjay10ZW1wb3JhcnktbXVsdGlrZXktc2VxdWVudGlhbC1yZWFkeVN0YXRlLmh0dHBzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0
ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktbXVsdGlrZXktc2VxdWVudGlhbC5o
dHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
ZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LW11bHRpa2V5Lmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktbXVsdGlzZXNzaW9uLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3Jhcnktc2V0TWVkaWFLZXlzLWFmdGVy
LXNyYy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2MvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LXNldE1lZGlh
S2V5cy1hZnRlci11cGRhdGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBv
cmFyeS1zZXRNZWRpYUtleXMtaW1tZWRpYXRlbHkuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBs
YXliYWNrLXRlbXBvcmFyeS1zZXRNZWRpYUtleXMtb25lbmNyeXB0ZWQuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRp
YS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS10d28tdmlkZW9zLmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEv
ZHJtLW1wNC1wbGF5YmFjay10ZW1wb3Jhcnktd2FpdGluZ2ZvcmtleS5odHRwcy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlh
L2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1zZXRt
ZWRpYWtleXMtYWdhaW4tYWZ0ZXItcGxheWJhY2suaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXNl
dG1lZGlha2V5cy1hZ2Fpbi1hZnRlci1yZXNldHRpbmctc3JjLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJt
LW1wNC1zZXRtZWRpYWtleXMtYXQtc2FtZS10aW1lLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1z
ZXRtZWRpYWtleXMtbXVsdGlwbGUtdGltZXMtd2l0aC1kaWZmZXJlbnQtbWVkaWFrZXlzLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtleXMtbXVsdGlwbGUtdGltZXMtd2l0aC10aGUt
c2FtZS1tZWRpYWtleXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXNldG1lZGlha2V5cy10by1t
dWx0aXBsZS12aWRlby1lbGVtZW50cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtd2FpdGluZy1m
b3ItYS1rZXkuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tdGVtcG9yYXJ5LWxpY2Vuc2UtdHlwZS5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL2FuaW1hdGlvbnMvdXBkYXRpbmctdGhlLWZpbmlzaGVk
LXN0YXRlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItYW5pbWF0aW9ucy90aW1pbmctbW9kZWwvdGltZWxpbmVzL3VwZGF0ZS1hbmQtc2VuZC1l
dmVudHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL3VybC9zYW5kYm94ZWQtaWZyYW1lLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYi1iaW5hcnkta2V5LXJvdW5kdHJpcC5odG0iOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmN1cnNvci1jb250aW51ZVByaW1hcnlLZXktZXhjZXB0aW9uLW9yZGVyLmh0bSI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5k
cy5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOC1w
YXJhbWV0ZXJzLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXgtbXVsdGllbnRyeS1iaWcu
aHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleC1yZW5hbWUuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmUtcmVuYW1lLXN0b3JlLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTUtYXV0b2luY3JlbWVudC5odG0iOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS5o
dG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OC12YWxpZF9r
ZXlzLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZ2V0S2V5Lmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2ludGVybGVhdmVkLWN1cnNvcnMtbGFyZ2UuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaW50ZXJsZWF2ZWQtY3Vyc29ycy1zbWFsbC5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pbnRlcmxlYXZlZC1jdXJzb3JzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleS1jb252ZXJz
aW9uLWV4Y2VwdGlvbnMuaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9rZXlfdmFsaWQuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIva2V5cGF0aF9tYXhzaXplLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvbGFy
Z2UtbmVzdGVkLWNsb25pbmcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvbGFyZ2UtcmVxdWVzdHMt
YWJvcnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvbmVzdGVkLWNsb25pbmctbGFyZ2UtbXVsdGlw
bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvbmVzdGVkLWNsb25pbmctbGFyZ2UuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvbmVzdGVkLWNsb25pbmctc21hbGwuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvcGFyYWxsZWwtY3Vyc29ycy11cGdyYWRlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3JlcXVl
c3QtYWJvcnQtb3JkZXJpbmcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvcmVxdWVzdC1ldmVudC1v
cmRlcmluZy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi93YXNtLW1vZHVsZS12YWx1ZS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi93cml0ZXItc3RhcnZhdGlvbi5odG0iOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRv
QVBJL2Rlcml2ZV9iaXRzX2tleXMvdGVzdF9lY2RoX2JpdHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlw
dG9BUEkvZGVyaXZlX2JpdHNfa2V5cy90ZXN0X2VjZGhfYml0cy5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1dlYkNyeXB0b0FQSS9kZXJpdmVfYml0c19rZXlzL3Rlc3RfZWNkaF9rZXlzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2Rlcml2ZV9iaXRzX2tleXMvdGVzdF9lY2RoX2tleXMuaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5cy90ZXN0X2hrZGYuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5cy90ZXN0X2hrZGYuaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5cy90ZXN0X3Bia2RmMi5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVfYml0c19rZXlzL3Rlc3RfcGJrZGYyX2VtcHR5
X2VtcHR5Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2Rlcml2ZV9iaXRzX2tleXMv
dGVzdF9wYmtkZjJfZW1wdHlfbG9uZy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9k
ZXJpdmVfYml0c19rZXlzL3Rlc3RfcGJrZGYyX2VtcHR5X3Nob3J0Lmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2Rlcml2ZV9iaXRzX2tleXMvdGVzdF9wYmtkZjJfbG9uZ19lbXB0eS5o
dHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVfYml0c19rZXlzL3Rlc3RfcGJr
ZGYyX2xvbmdfbG9uZy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVfYml0
c19rZXlzL3Rlc3RfcGJrZGYyX2xvbmdfc2hvcnQuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlw
dG9BUEkvZGVyaXZlX2JpdHNfa2V5cy90ZXN0X3Bia2RmMl9zaG9ydF9lbXB0eS5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVfYml0c19rZXlzL3Rlc3RfcGJrZGYyX3Nob3J0
X2xvbmcuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5cy90
ZXN0X3Bia2RmMl9zaG9ydF9zaG9ydC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9k
aWdlc3QvdGVzdF9kaWdlc3QuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGlnZXN0L3Rlc3Rf
ZGlnZXN0Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2VuY3J5cHRfZGVjcnlwdC90
ZXN0X2Flc19jYmMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZW5jcnlwdF9kZWNyeXB0L3Rl
c3RfYWVzX2NiYy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9lbmNyeXB0X2RlY3J5
cHQvdGVzdF9hZXNfY3RyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2VuY3J5cHRfZGVjcnlw
dC90ZXN0X2Flc19jdHIuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZW5jcnlwdF9k
ZWNyeXB0L3Rlc3RfYWVzX2djbS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9lbmNyeXB0X2Rl
Y3J5cHQvdGVzdF9hZXNfZ2NtLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2VuY3J5
cHRfZGVjcnlwdC90ZXN0X3JzYV9vYWVwLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2VuY3J5
cHRfZGVjcnlwdC90ZXN0X3JzYV9vYWVwLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJ
L2dlbmVyYXRlS2V5L3Rlc3RfYWVzLWNiYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5l
cmF0ZUtleS90ZXN0X2Flcy1jYmMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2Vu
ZXJhdGVLZXkvdGVzdF9hZXMtY3RyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRl
S2V5L3Rlc3RfYWVzLWN0ci5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0
ZUtleS90ZXN0X2ZhaWx1cmVzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5
L3Rlc3RfZmFpbHVyZXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVL
ZXkvdGVzdF9mYWlsdXJlc19BRVMtQ0JDLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVy
YXRlS2V5L3Rlc3RfZmFpbHVyZXNfQUVTLUNCQy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0
b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX0FFUy1DVFIuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJD
cnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19BRVMtQ1RSLmh0dHBzLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfQUVTLUdDTS5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX0FFUy1HQ00u
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJl
c19BRVMtS1cuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWls
dXJlc19BRVMtS1cuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkv
dGVzdF9mYWlsdXJlc19FQ0RILmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5
L3Rlc3RfZmFpbHVyZXNfRUNESC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5l
cmF0ZUtleS90ZXN0X2ZhaWx1cmVzX0VDRFNBLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dl
bmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfRUNEU0EuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlw
dG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19ITUFDLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5
cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfSE1BQy5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQS1PQUVQLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBLU9BRVAuaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19S
U0EtUFNTLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVy
ZXNfUlNBLVBTUy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90
ZXN0X2ZhaWx1cmVzX1JTQVNTQS1QS0NTMS12MV81Lmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJ
L2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBU1NBLVBLQ1MxLXYxXzUuaHR0cHMuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNjZXNzZXMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNjZXNzZXNfQUVTLUNCQy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X3N1Y2Nlc3Nlc19BRVMtQ0JD
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3Rfc3VjY2Vz
c2VzX0FFUy1DVFIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9z
dWNjZXNzZXNfQUVTLUNUUi5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0
ZUtleS90ZXN0X3N1Y2Nlc3Nlc19BRVMtR0NNLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dl
bmVyYXRlS2V5L3Rlc3Rfc3VjY2Vzc2VzX0FFUy1HQ00uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJD
cnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNjZXNzZXNfQUVTLUtXLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
V2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3Rfc3VjY2Vzc2VzX0FFUy1LVy5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X3N1Y2Nlc3Nlc19FQ0RILmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3Rfc3VjY2Vzc2VzX0VDREgu
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNjZXNz
ZXNfRUNEU0EuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNj
ZXNzZXNfRUNEU0EuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkv
dGVzdF9zdWNjZXNzZXNfSE1BQy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtl
eS90ZXN0X3N1Y2Nlc3Nlc19ITUFDLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dl
bmVyYXRlS2V5L3Rlc3Rfc3VjY2Vzc2VzX1JTQS1PQUVQLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRv
QVBJL2dlbmVyYXRlS2V5L3Rlc3Rfc3VjY2Vzc2VzX1JTQS1PQUVQLmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3Rfc3VjY2Vzc2VzX1JTQS1QU1MuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNjZXNzZXNfUlNBLVBTUy5o
dHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X3N1Y2Nlc3Nl
c19SU0FTU0EtUEtDUzEtdjFfNS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtl
eS90ZXN0X3N1Y2Nlc3Nlc19SU0FTU0EtUEtDUzEtdjFfNS5odHRwcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dl
YkNyeXB0b0FQSS9zaWduX3ZlcmlmeS90ZXN0X2VjZHNhLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRv
QVBJL3NpZ25fdmVyaWZ5L3Rlc3RfZWNkc2EuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9B
UEkvc2lnbl92ZXJpZnkvdGVzdF9obWFjLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL3NpZ25f
dmVyaWZ5L3Rlc3RfaG1hYy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9zaWduX3Zl
cmlmeS90ZXN0X3JzYV9wa2NzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL3NpZ25fdmVyaWZ5
L3Rlc3RfcnNhX3BrY3MuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvc2lnbl92ZXJp
ZnkvdGVzdF9yc2FfcHNzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL3NpZ25fdmVyaWZ5L3Rl
c3RfcnNhX3Bzcy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS93cmFwS2V5X3Vud3Jh
cEtleS90ZXN0X3dyYXBLZXlfdW53cmFwS2V5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL3dy
YXBLZXlfdW53cmFwS2V5L3Rlc3Rfd3JhcEtleV91bndyYXBLZXkuaHR0cHMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9wcm9ncmVzcy1ldmVudHMtcmVzcG9uc2UtZGF0YS1nemlwLmh0bSI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLXJlZGlyZWN0LWJvZ3VzLmh0bSI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRvbm1haW4uaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRl
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3Zl
cnJpZGVzZXhwaXJlcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0
LXRpbWVvdXQtcmV1c2VkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVl
c3QtdGltZW91dC1zaW1wbGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1s
aHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlcy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRl
c2V4cGlyZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1l
b3V0LXdvcmtlci1zaW1wbGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVx
dWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Fj
aWQvYWNpZDMvbnVtYmVyZWQtdGVzdHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lu
a0lkLW1hbnVhbC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tYmFzaWMtYmxvYi5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tYmFzaWMtYmxvYk1heC5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jl
YWNvbi9iZWFjb24tYmFzaWMtYnVmZmVyc291cmNlLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNv
bi1iYXNpYy1idWZmZXJzb3VyY2VNYXguaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWJhc2lj
LWZvcm1kYXRhLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1iYXNpYy1mb3JtZGF0YU1heC5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tYmFzaWMtc3RyaW5nLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVh
Y29uL2JlYWNvbi1iYXNpYy1zdHJpbmdNYXguaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLW5h
dmlnYXRlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY2xpcGJvYXJkLWFwaXMvYXN5bmMtaWRsaGFybmVzcy5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L2VtYmVkZGVkLWVuZm9yY2Vt
ZW50L3JlcXVpcmVkX2NzcC1oZWFkZXIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBv
bGljeS9mcmFtZS1hbmNlc3RvcnMvcmVwb3J0LWJsb2NrZWQtZnJhbWUuc3ViLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvZnJhbWUtYW5jZXN0b3JzL3JlcG9ydC1vbmx5LWZy
YW1lLnN1Yi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L2dlbmVyaWMvbm8t
ZGVmYXVsdC1zcmMuc3ViLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvbmF2
aWdhdGUtdG8vY2hpbGQtbmF2aWdhdGVzLXBhcmVudC1hbGxvd2VkLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29u
dGVudC1zZWN1cml0eS1wb2xpY3kvbmF2aWdhdGUtdG8vbGluay1jbGljay1hbGxvd2VkLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvbmF2aWdhdGUtdG8vbGluay1jbGljay1j
cm9zcy1vcmlnaW4tYWxsb3dlZC5zdWIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBv
bGljeS9uYXZpZ2F0ZS10by9saW5rLWNsaWNrLWNyb3NzLW9yaWdpbi1ibG9ja2VkLnN1Yi5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L25hdmlnYXRlLXRvL2xpbmstY2xpY2st
cmVkaXJlY3RlZC1hbGxvd2VkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kv
bmF2aWdhdGUtdG8vbGluay1jbGljay1yZWRpcmVjdGVkLWJsb2NrZWQuc3ViLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvb2JqZWN0LXNyYy9vYmplY3Qtc3JjLTJfMS5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L29iamVjdC1zcmMvb2JqZWN0LXNyYy0y
XzIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9yZXBvcnRpbmctYXBpL3Jl
cG9ydGluZy1hcGktcmVwb3J0LXRvLW92ZXJyaWRlcy1yZXBvcnQtdXJpLTIuaHR0cHMuc3ViLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvcmVwb3J0aW5nL3JlcG9ydC1jcm9z
cy1vcmlnaW4tbm8tY29va2llcy5zdWIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBv
bGljeS9yZXBvcnRpbmcvcmVwb3J0LW9ubHktaW4tbWV0YS5zdWIuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250
ZW50LXNlY3VyaXR5LXBvbGljeS9zdHlsZS1zcmMvc3R5bGUtc3JjLW11bHRpcGxlLXBvbGljaWVz
LW11bHRpcGxlLWhhc2hpbmctYWxnb3JpdGhtcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvcnMvMzA0Lmh0bSI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jb3JzL29yaWdpbi5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29ycy9wcmVmbGlnaHQtY2FjaGUuaHRt
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2NvcnMvc3RhdHVzLWFzeW5jLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlv
bnMvQ1NTQW5pbWF0aW9uLWVmZmVjdC50ZW50YXRpdmUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFu
aW1hdGlvbnMvYW5pbWF0aW9uZXZlbnQtdHlwZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1h
dGlvbnMvZXZlbnQtZGlzcGF0Y2gudGVudGF0aXZlLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmlt
YXRpb25zL2lkbGhhcm5lc3MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2NvbG9yLXJlc29s
dmluZy1oc2wuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbG9yL2NvbG9yLXJlc29sdmluZy1od2Iu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wNDguaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL2ZvbnQtZGlzcGxheS9m
b250LWRpc3BsYXkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3ZhcmlhdGlvbnMvYXQtZm9u
dC1mYWNlLWZvbnQtbWF0Y2hpbmcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzL3ZhcmlhdGlv
bnMvZm9udC1zdHlsZS1pbnRlcnBvbGF0aW9uLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0
aW9ucy9wcm9wZXJ0aWVzLXZhbHVlLTAwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlv
bnMvcHJvcGVydGllcy12YWx1ZS0wMDMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25z
L3Byb3BlcnRpZXMtdmFsdWUtaW1wbGljaXQtMDAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFu
c2l0aW9ucy9wcm9wZXJ0aWVzLXZhbHVlLWluaGVyaXQtMDAxLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy10cmFuc2l0aW9ucy9wcm9wZXJ0aWVzLXZhbHVlLWluaGVyaXQtMDAyLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10cmFuc2l0aW9ucy90cmFuc2l0aW9uY2FuY2VsLTAwMS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1kZWZhdWx0LWNzcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1lbGVtZW50Lmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
c29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4tZnJhbWUtcm9vdC5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1tYWluLWZyYW1lLXdpbmRvdy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0
aW9ucy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGgu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9v
dC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13
aW5kb3cuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vaWRsaGFybmVzcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMDIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2
ZW50LWRpc3BhdGNoLW9uLWRpc2FibGVkLWVsZW1lbnRzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLWZvci1wcm9ncmFtbWF0aWMtc2Nyb2xs
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVk
LWZvci1zY3JvbGxJbnRvVmlldy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jaGFy
YWN0ZXJTZXQtbm9ybWFsaXphdGlvbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9QYXJlbnROb2Rl
LXF1ZXJ5U2VsZWN0b3ItQWxsLXhodC54aHQiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL1BhcmVudE5vZGUt
cXVlcnlTZWxlY3Rvci1BbGwuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWF0dHJpYnV0
ZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWNsb25lQ29udGVudHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWNsb25lUmFuZ2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2Vz
L1JhbmdlLWNvbGxhcHNlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1jb21tb25BbmNl
c3RvckNvbnRhaW5lci5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtY29tcGFyZUJvdW5k
YXJ5UG9pbnRzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1jb21wYXJlUG9pbnQtMi5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtY29tcGFyZVBvaW50Lmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL3Jhbmdlcy9SYW5nZS1kZWxldGVDb250ZW50cy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMv
UmFuZ2UtZGV0YWNoLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1leHRyYWN0Q29udGVu
dHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWluc2VydE5vZGUuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vcmFuZ2VzL1JhbmdlLWludGVyc2VjdHNOb2RlLWJpbmRpbmcuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vcmFuZ2VzL1JhbmdlLWludGVyc2VjdHNOb2RlLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9S
YW5nZS1pc1BvaW50SW5SYW5nZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtbXV0YXRp
b25zLWFwcGVuZENoaWxkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMt
YXBwZW5kRGF0YS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtbXV0YXRpb25zLWRhdGFD
aGFuZ2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLW11dGF0aW9ucy1kZWxldGVEYXRh
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMtaW5zZXJ0QmVmb3JlLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMtaW5zZXJ0RGF0YS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtbXV0YXRpb25zLXJlbW92ZUNoaWxkLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMtcmVwbGFjZUNoaWxkLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMtcmVwbGFjZURhdGEuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
cmFuZ2VzL1JhbmdlLW11dGF0aW9ucy1zcGxpdFRleHQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2Vz
L1JhbmdlLW11dGF0aW9ucy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2Utc2VsZWN0Tm9k
ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2Utc2V0Lmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jh
bmdlcy9SYW5nZS1zdXJyb3VuZENvbnRlbnRzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9O
b2RlSXRlcmF0b3ItcmVtb3ZhbC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJh
dG9yLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jb2RpbmcvYXBpLWludmFsaWQtbGFiZWwuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3kt
bWItamFwYW5lc2UvZXVjLWpwL2V1Y2pwLWRlY29kZS1jc2V1Y3BrZGZtdGphcGFuZXNlLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL2V1Yy1qcC9ldWNqcC1kZWNvZGUt
ZXJyb3JzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL2V1Yy1qcC9l
dWNqcC1kZWNvZGUteC1ldWMtanAuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFw
YW5lc2UvZXVjLWpwL2V1Y2pwLWRlY29kZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1t
Yi1qYXBhbmVzZS9ldWMtanAvZXVjanAtZW5jb2RlLWZvcm0tY3NldWNwa2RmbXRqYXBhbmVzZS5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9ldWMtanAvZXVjanAtZW5j
b2RlLWZvcm0tZXJyb3JzLWhhbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBh
bmVzZS9ldWMtanAvZXVjanAtZW5jb2RlLWZvcm0tZXJyb3JzLWhhbmd1bC5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9ldWMtanAvZXVjanAtZW5jb2RlLWZvcm0tZXJy
b3JzLW1pc2MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvZXVjLWpw
L2V1Y2pwLWVuY29kZS1mb3JtLXgtZXVjLWpwLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5
LW1iLWphcGFuZXNlL2V1Yy1qcC9ldWNqcC1lbmNvZGUtZm9ybS5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29k
aW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9ldWMtanAvZXVjanAtZW5jb2RlLWhyZWYtZXJyb3JzLWhh
bi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9ldWMtanAvZXVjanAt
ZW5jb2RlLWhyZWYtZXJyb3JzLWhhbmd1bC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1t
Yi1qYXBhbmVzZS9ldWMtanAvZXVjanAtZW5jb2RlLWhyZWYtZXJyb3JzLW1pc2MuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvZXVjLWpwL2V1Y2pwLWVuY29kZS1ocmVm
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL2lzby0yMDIyLWpwL2lz
bzIwMjJqcC1kZWNvZGUtY3Npc28yMDIyanAuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3kt
bWItamFwYW5lc2UvaXNvLTIwMjItanAvaXNvMjAyMmpwLWRlY29kZS1lcnJvcnMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvaXNvLTIwMjItanAvaXNvMjAyMmpwLWRl
Y29kZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9pc28tMjAyMi1q
cC9pc28yMDIyanAtZW5jb2RlLWZvcm0tY3Npc28yMDIyanAuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGlu
Zy9sZWdhY3ktbWItamFwYW5lc2UvaXNvLTIwMjItanAvaXNvMjAyMmpwLWVuY29kZS1mb3JtLWVy
cm9ycy1oYW4uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvaXNvLTIw
MjItanAvaXNvMjAyMmpwLWVuY29kZS1mb3JtLWVycm9ycy1oYW5ndWwuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9l
bmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvaXNvLTIwMjItanAvaXNvMjAyMmpwLWVuY29kZS1m
b3JtLWVycm9ycy1taXNjLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNl
L2lzby0yMDIyLWpwL2lzbzIwMjJqcC1lbmNvZGUtZm9ybS5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5n
L2xlZ2FjeS1tYi1qYXBhbmVzZS9pc28tMjAyMi1qcC9pc28yMDIyanAtZW5jb2RlLWhyZWYtZXJy
b3JzLWhhbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9pc28tMjAy
Mi1qcC9pc28yMDIyanAtZW5jb2RlLWhyZWYtZXJyb3JzLWhhbmd1bC5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Vu
Y29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9pc28tMjAyMi1qcC9pc28yMDIyanAtZW5jb2RlLWhy
ZWYtZXJyb3JzLW1pc2MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2Uv
aXNvLTIwMjItanAvaXNvMjAyMmpwLWVuY29kZS1ocmVmLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2Rpbmcv
bGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0X2ppcy9zamlzLWRlY29kZS1jc3NoaWZ0amlzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0X2ppcy9zamlzLWRlY29k
ZS1lcnJvcnMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2Uvc2hpZnRf
amlzL3NqaXMtZGVjb2RlLW1zOTMyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWph
cGFuZXNlL3NoaWZ0X2ppcy9zamlzLWRlY29kZS1tc19rYW5qaS5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29k
aW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1kZWNvZGUtc2hpZnQtamlzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0X2ppcy9zamlzLWRl
Y29kZS1zamlzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0
X2ppcy9zamlzLWRlY29kZS13aW5kb3dzLTMxai5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2Fj
eS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1kZWNvZGUteC1zamlzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0X2ppcy9zamlzLWRlY29kZS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUt
Zm9ybS1jc3NoaWZ0amlzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNl
L3NoaWZ0X2ppcy9zamlzLWVuY29kZS1mb3JtLWVycm9ycy1oYW4uaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNv
ZGluZy9sZWdhY3ktbWItamFwYW5lc2Uvc2hpZnRfamlzL3NqaXMtZW5jb2RlLWZvcm0tZXJyb3Jz
LWhhbmd1bC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9q
aXMvc2ppcy1lbmNvZGUtZm9ybS1lcnJvcnMtbWlzYy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xl
Z2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUtZm9ybS1tczkzMi5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUt
Zm9ybS1tc19rYW5qaS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9z
aGlmdF9qaXMvc2ppcy1lbmNvZGUtZm9ybS1zaGlmdC1qaXMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGlu
Zy9sZWdhY3ktbWItamFwYW5lc2Uvc2hpZnRfamlzL3NqaXMtZW5jb2RlLWZvcm0tc2ppcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNv
ZGUtZm9ybS13aW5kb3dzLTMxai5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBh
bmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUtZm9ybS14LXNqaXMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNv
ZGluZy9sZWdhY3ktbWItamFwYW5lc2Uvc2hpZnRfamlzL3NqaXMtZW5jb2RlLWZvcm0uaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2Uvc2hpZnRfamlzL3NqaXMtZW5jb2Rl
LWhyZWYtZXJyb3JzLWhhbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVz
ZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUtaHJlZi1lcnJvcnMtaGFuZ3VsLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0X2ppcy9zamlzLWVuY29kZS1ocmVmLWVy
cm9ycy1taXNjLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0
X2ppcy9zamlzLWVuY29kZS1ocmVmLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWtv
cmVhbi9ldWMta3IvZXVja3ItZGVjb2RlLWNzZXVja3IuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9s
ZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1kZWNvZGUtY3Nrc2M1NjAxMTk4Ny5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWRlY29kZS1lcnJv
cnMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1k
ZWNvZGUtaXNvLWlyLTE0OS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4v
ZXVjLWtyL2V1Y2tyLWRlY29kZS1rb3JlYW4uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3kt
bWIta29yZWFuL2V1Yy1rci9ldWNrci1kZWNvZGUta3NfY181NjAxLTE5ODcuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1kZWNvZGUta3NfY181NjAx
LTE5ODkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNr
ci1kZWNvZGUta3NjNTYwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4v
ZXVjLWtyL2V1Y2tyLWRlY29kZS1rc2NfNTYwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2Fj
eS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWRlY29kZS13aW5kb3dzLTk0OS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWRlY29kZS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWVuY29kZS1mb3JtLWNz
ZXVja3IuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNr
ci1lbmNvZGUtZm9ybS1jc2tzYzU2MDExOTg3Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5
LW1iLWtvcmVhbi9ldWMta3IvZXVja3ItZW5jb2RlLWZvcm0tZXJyb3JzLWhhbi5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWVuY29kZS1mb3JtLWVy
cm9ycy1oYW5ndWwuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1r
ci9ldWNrci1lbmNvZGUtZm9ybS1lcnJvcnMtbWlzYy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xl
Z2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWVuY29kZS1mb3JtLWlzby1pci0xNDkuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1lbmNvZGUtZm9y
bS1rb3JlYW4uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9l
dWNrci1lbmNvZGUtZm9ybS1rc19jXzU2MDEtMTk4Ny5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xl
Z2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWVuY29kZS1mb3JtLWtzX2NfNTYwMS0xOTg5Lmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWtvcmVhbi9ldWMta3IvZXVja3ItZW5jb2Rl
LWZvcm0ta3NjNTYwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVj
LWtyL2V1Y2tyLWVuY29kZS1mb3JtLWtzY181NjAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVn
YWN5LW1iLWtvcmVhbi9ldWMta3IvZXVja3ItZW5jb2RlLWZvcm0td2luZG93cy05NDkuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1lbmNvZGUtZm9y
bS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWVu
Y29kZS1ocmVmLWVycm9ycy1oYW4uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29y
ZWFuL2V1Yy1rci9ldWNrci1lbmNvZGUtaHJlZi1lcnJvcnMtbWlzYy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Vu
Y29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWVuY29kZS1ocmVmLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLXRjaGluZXNlL2JpZzUvYmlnNS1kZWNvZGUtYmlnNS1o
a3Njcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUt
ZGVjb2RlLWNuLWJpZzUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItdGNoaW5lc2Uv
YmlnNS9iaWc1LWRlY29kZS1jc2JpZzUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIt
dGNoaW5lc2UvYmlnNS9iaWc1LWRlY29kZS1lcnJvcnMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9s
ZWdhY3ktbWItdGNoaW5lc2UvYmlnNS9iaWc1LWRlY29kZS1leHRyYS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Vu
Y29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZGVjb2RlLXgteC1iaWc1Lmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLXRjaGluZXNlL2JpZzUvYmlnNS1kZWNvZGUuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItdGNoaW5lc2UvYmlnNS9iaWc1LWVuYy1hc2Np
aS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5j
b2RlLWZvcm0tYmlnNS1oa3Njcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hp
bmVzZS9iaWc1L2JpZzUtZW5jb2RlLWZvcm0tY24tYmlnNS5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5n
L2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5jb2RlLWZvcm0tY3NiaWc1Lmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLXRjaGluZXNlL2JpZzUvYmlnNS1lbmNvZGUtZm9ybS1l
cnJvcnMtZXh0QmEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItdGNoaW5lc2UvYmln
NS9iaWc1LWVuY29kZS1mb3JtLWVycm9ycy1leHRCYi5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xl
Z2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5jb2RlLWZvcm0tZXJyb3JzLWhhbi5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5jb2RlLWZvcm0t
ZXJyb3JzLWhhbmd1bC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9i
aWc1L2JpZzUtZW5jb2RlLWZvcm0tZXJyb3JzLW1pc2MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9s
ZWdhY3ktbWItdGNoaW5lc2UvYmlnNS9iaWc1LWVuY29kZS1mb3JtLWVycm9ycy1wdWEuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItdGNoaW5lc2UvYmlnNS9iaWc1LWVuY29kZS1mb3Jt
LXgteC1iaWc1Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLXRjaGluZXNlL2JpZzUv
YmlnNS1lbmNvZGUtZm9ybS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVz
ZS9iaWc1L2JpZzUtZW5jb2RlLWhyZWYtZXJyb3JzLWhhbi5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5n
L2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5jb2RlLWhyZWYtZXJyb3JzLWhhbmd1bC5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5jb2Rl
LWhyZWYtZXJyb3JzLW1pc2MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItdGNoaW5l
c2UvYmlnNS9iaWc1LWVuY29kZS1ocmVmLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2Rpbmcvc2luZ2xlLWJ5
dGUtZGVjb2Rlci5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9jbGVhcmtleS1tcDQtcGxh
eWJhY2stdGVtcG9yYXJ5LWVuY3J5cHRlZC1jbGVhci1zb3VyY2VzLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5j
cnlwdGVkLW1lZGlhL2NsZWFya2V5LW1wNC1wbGF5YmFjay10ZW1wb3JhcnktZW5jcnlwdGVkLWNs
ZWFyLXNvdXJjZXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJrZXkt
bXA0LXBsYXliYWNrLXRlbXBvcmFyeS1tdWx0aWtleS1zZXF1ZW50aWFsLXJlYWR5U3RhdGUuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJrZXktbXA0LXBsYXliYWNrLXRlbXBvcmFy
eS1tdWx0aWtleS1zZXF1ZW50aWFsLXJlYWR5U3RhdGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNy
eXB0ZWQtbWVkaWEvY2xlYXJrZXktbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1tdWx0aWtleS1zZXF1
ZW50aWFsLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2NsZWFya2V5LW1wNC1wbGF5YmFj
ay10ZW1wb3JhcnktbXVsdGlrZXktc2VxdWVudGlhbC5odHRwcy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5
cHRlZC1tZWRpYS9jbGVhcmtleS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LXR3by12aWRlb3MuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJrZXktbXA0LXBsYXliYWNrLXRlbXBvcmFy
eS10d28tdmlkZW9zLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2NsZWFya2V5
LW1wNC1yZXF1ZXN0bWVkaWFrZXlzeXN0ZW1hY2Nlc3MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQt
bWVkaWEvY2xlYXJrZXktbXA0LXJlcXVlc3RtZWRpYWtleXN5c3RlbWFjY2Vzcy5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tZXZlbnRzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlw
dGVkLW1lZGlhL2RybS1ldmVudHMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEv
ZHJtLWV4cGlyYXRpb24uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLWV4cGlyYXRp
b24uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLWtleXN0YXR1c2VzLW11
bHRpcGxlLXNlc3Npb25zLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1rZXlzdGF0
dXNlcy1tdWx0aXBsZS1zZXNzaW9ucy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRp
YS9kcm0ta2V5c3RhdHVzZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLWtleXN0
YXR1c2VzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJh
Y2stZGVzdHJveS1wZXJzaXN0ZW50LWxpY2Vuc2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVk
aWEvZHJtLW1wNC1wbGF5YmFjay1kZXN0cm95LXBlcnNpc3RlbnQtbGljZW5zZS5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXBlcnNpc3RlbnQtbGlj
ZW5zZS1ldmVudHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFj
ay1wZXJzaXN0ZW50LWxpY2Vuc2UtZXZlbnRzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVk
LW1lZGlhL2RybS1tcDQtcGxheWJhY2stcGVyc2lzdGVudC1saWNlbnNlLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stcGVyc2lzdGVudC1saWNlbnNlLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stcGVyc2lzdGVu
dC11c2FnZS1yZWNvcmQtZXZlbnRzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1t
cDQtcGxheWJhY2stcGVyc2lzdGVudC11c2FnZS1yZWNvcmQtZXZlbnRzLmh0dHBzLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stcGVyc2lzdGVudC11c2FnZS1y
ZWNvcmQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay1wZXJz
aXN0ZW50LXVzYWdlLXJlY29yZC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9k
cm0tbXA0LXBsYXliYWNrLXJldHJpZXZlLWRlc3Ryb3ktcGVyc2lzdGVudC1saWNlbnNlLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stcmV0cmlldmUtZGVzdHJv
eS1wZXJzaXN0ZW50LWxpY2Vuc2UuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEv
ZHJtLW1wNC1wbGF5YmFjay1yZXRyaWV2ZS1wZXJzaXN0ZW50LWxpY2Vuc2UuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay1yZXRyaWV2ZS1wZXJzaXN0ZW50LWxp
Y2Vuc2UuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFj
ay1yZXRyaWV2ZS1wZXJzaXN0ZW50LXVzYWdlLXJlY29yZC5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRl
ZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXJldHJpZXZlLXBlcnNpc3RlbnQtdXNhZ2UtcmVjb3Jk
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVt
cG9yYXJ5LWNsZWFyLWVuY3J5cHRlZC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0t
bXA0LXBsYXliYWNrLXRlbXBvcmFyeS1jbGVhci1lbmNyeXB0ZWQuaHR0cHMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktZW5jcnlwdGVkLWNs
ZWFyLXNvdXJjZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFj
ay10ZW1wb3JhcnktZW5jcnlwdGVkLWNsZWFyLXNvdXJjZXMuaHR0cHMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9l
bmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktZW5jcnlwdGVkLWNsZWFy
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5
LWVuY3J5cHRlZC1jbGVhci5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0t
bXA0LXBsYXliYWNrLXRlbXBvcmFyeS1ldmVudHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVk
aWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktZXZlbnRzLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LWV4cGlyZWQuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktZXhwaXJl
ZC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRl
bXBvcmFyeS1tdWx0aWtleS1zZXF1ZW50aWFsLXJlYWR5U3RhdGUuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktbXVsdGlrZXktc2VxdWVudGlh
bC1yZWFkeVN0YXRlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQt
cGxheWJhY2stdGVtcG9yYXJ5LW11bHRpa2V5LXNlcXVlbnRpYWwuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktbXVsdGlrZXktc2VxdWVudGlh
bC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRl
bXBvcmFyeS1tdWx0aWtleS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBs
YXliYWNrLXRlbXBvcmFyeS1tdWx0aWtleS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1t
ZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1tdWx0aXNlc3Npb24uaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktbXVsdGlzZXNzaW9u
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVt
cG9yYXJ5LXNldE1lZGlhS2V5cy1hZnRlci1zcmMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVk
aWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3Jhcnktc2V0TWVkaWFLZXlzLWFmdGVyLXNyYy5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFy
eS1zZXRNZWRpYUtleXMtYWZ0ZXItdXBkYXRlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlh
L2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LXNldE1lZGlhS2V5cy1hZnRlci11cGRhdGUuaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3Jh
cnktc2V0TWVkaWFLZXlzLWltbWVkaWF0ZWx5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlh
L2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LXNldE1lZGlhS2V5cy1pbW1lZGlhdGVseS5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFy
eS1zZXRNZWRpYUtleXMtb25lbmNyeXB0ZWQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEv
ZHJtLW1wNC1wbGF5YmFjay10ZW1wb3Jhcnktc2V0TWVkaWFLZXlzLW9uZW5jcnlwdGVkLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5
LXR3by12aWRlb3MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFj
ay10ZW1wb3JhcnktdHdvLXZpZGVvcy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRp
YS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS13YWl0aW5nZm9ya2V5Lmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LXdhaXRpbmdmb3JrZXku
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1w
b3JhcnkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1w
b3JhcnkuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1yZXF1ZXN0
bWVkaWFrZXlzeXN0ZW1hY2Nlc3MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1w
NC1zZXRtZWRpYWtleXMtYWdhaW4tYWZ0ZXItcGxheWJhY2suaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0
ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtleXMtYWdhaW4tYWZ0ZXItcGxheWJhY2suaHR0cHMu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtleXMtYWdhaW4t
YWZ0ZXItcmVzZXR0aW5nLXNyYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0
LXNldG1lZGlha2V5cy1hZ2Fpbi1hZnRlci1yZXNldHRpbmctc3JjLmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtc2V0bWVkaWFrZXlzLWF0LXNhbWUtdGltZS5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXNldG1lZGlha2V5cy1hdC1zYW1lLXRp
bWUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtl
eXMtbXVsdGlwbGUtdGltZXMtd2l0aC1kaWZmZXJlbnQtbWVkaWFrZXlzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtc2V0bWVkaWFrZXlzLW11bHRpcGxlLXRpbWVzLXdpdGgt
ZGlmZmVyZW50LW1lZGlha2V5cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9k
cm0tbXA0LXNldG1lZGlha2V5cy1tdWx0aXBsZS10aW1lcy13aXRoLXRoZS1zYW1lLW1lZGlha2V5
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXNldG1lZGlha2V5cy1tdWx0
aXBsZS10aW1lcy13aXRoLXRoZS1zYW1lLW1lZGlha2V5cy5odHRwcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Vu
Y3J5cHRlZC1tZWRpYS9kcm0tbXA0LXNldG1lZGlha2V5cy10by1tdWx0aXBsZS12aWRlby1lbGVt
ZW50cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXNldG1lZGlha2V5cy10
by1tdWx0aXBsZS12aWRlby1lbGVtZW50cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1t
ZWRpYS9kcm0tbXA0LXdhaXRpbmctZm9yLWEta2V5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1l
ZGlhL2RybS1tcDQtd2FpdGluZy1mb3ItYS1rZXkuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0
ZWQtbWVkaWEvZHJtLXRlbXBvcmFyeS1saWNlbnNlLXR5cGUuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0
ZWQtbWVkaWEvZHJtLXRlbXBvcmFyeS1saWNlbnNlLXR5cGUuaHR0cHMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9l
dmVudHNvdXJjZS9kZWRpY2F0ZWQtd29ya2VyL2V2ZW50c291cmNlLWNvbnN0cnVjdG9yLW5vbi1z
YW1lLW9yaWdpbi5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29uc3RydWN0
b3Itbm9uLXNhbWUtb3JpZ2luLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQt
cmV0cnktYm9ndXMuaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2Zvcm1hdC1maWVsZC1yZXRyeS5o
dG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZXZlbnRzb3VyY2Uvc2hhcmVkLXdvcmtlci9ldmVudHNvdXJjZS1jb25zdHJ1
Y3Rvci1ub24tc2FtZS1vcmlnaW4uaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1h
ZnRlci1yZXNwb25zZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1
ZXMtbm9ybWFsaXplLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVl
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1jb3VudC13b3JrZXIu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtY291bnQuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUtcXVvdGEuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
dHRwLWNhY2hlLzMwNC11cGRhdGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJl
cXVlc3QuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVzcy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1j
YWNoZS9pbnZhbGlkYXRlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0aWFsLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNoLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvaHR0cC1jYWNoZS9zdGF0dXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9wcmVsb2Fk
Lmh0dHBzLnN1Yi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JlZGlyZWN0LW5hdmlnYXRlL3ByZXNlcnZl
LWZyYWdtZW50Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL2dldEN1cnJlbnRQb3NpdGlv
bl9JREwuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIv
aGlzdG9yeS10cmF2ZXJzYWwvcGVyc2lzdGVkLXVzZXItc3RhdGUtcmVzdG9yYXRpb24vcmVzdW1l
LXRpbWVyLW9uLWhpc3RvcnktYmFjay5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3Np
bmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNhbC9wZXJzaXN0ZWQtdXNlci1zdGF0ZS1yZXN0b3Jh
dGlvbi9zY3JvbGwtcmVzdG9yYXRpb24tZnJhZ21lbnQtc2Nyb2xsaW5nLWNyb3NzLW9yaWdpbi5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZl
cnNhbC9wZXJzaXN0ZWQtdXNlci1zdGF0ZS1yZXN0b3JhdGlvbi9zY3JvbGwtcmVzdG9yYXRpb24t
bmF2aWdhdGlvbi1jcm9zcy1vcmlnaW4uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dz
aW5nLXRoZS13ZWIvc2Nyb2xsLXRvLWZyYWdpZC8wMDcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL2Jyb3dzaW5nLXRoZS13ZWIvc2Nyb2xsLXRvLWZyYWdpZC9zY3JvbGwtZnJhZy1ub24tdXRm
OC1lbmNvZGVkLWRvY3VtZW50Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10
aGUtd2ViL3Njcm9sbC10by1mcmFnaWQvc2Nyb2xsLWZyYWctcGVyY2VudC1lbmNvZGVkLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL3Njcm9sbC10by1mcmFnaWQv
c2Nyb2xsLXRvLWFuY2hvci1uYW1lLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2lu
Zy10aGUtd2ViL3Njcm9sbC10by1mcmFnaWQvc2Nyb2xsLXRvLWlkLXRvcC5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9zY3JvbGwtdG8tZnJhZ2lkL3Njcm9sbC10
by10b3AuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvdW5sb2Fk
aW5nLWRvY3VtZW50cy9wcm9tcHQtYW5kLXVubG9hZC1zY3JpcHQtY2xvc2VhYmxlLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L2pvaW50LXNlc3Npb24taGlzdG9yeS9qb2ludC1z
ZXNzaW9uLWhpc3RvcnktaWZyYW1lLXN0YXRlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9o
aXN0b3J5L2pvaW50LXNlc3Npb24taGlzdG9yeS9qb2ludC1zZXNzaW9uLWhpc3RvcnktcmVtb3Zl
LWlmcmFtZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1p
bnRlcmZhY2UvMDA3Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGxpY2F0
aW9uLWNhY2hlLWFwaS9hcGlfc3RhdHVzX2lkbGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL29yaWdpbi9jcm9zcy1vcmlnaW4tb2JqZWN0cy9jcm9zcy1vcmlnaW4tb2JqZWN0cy1l
eGNlcHRpb25zLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2lu
LW9iamVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVjdHMtb24tbmV3LXdpbmRvdy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLW9yaWdpbi1v
YmplY3RzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlz
LWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL2Ny
ZWF0aW5nX2Jyb3dzaW5nX2NvbnRleHRfdGVzdF8wMS5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJv
d3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLW5lZ2F0aXZlLWlubmVyd2lkdGgt
aW5uZXJoZWlnaHQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0
L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5h
bWUvb3Blbi1mZWF0dXJlcy1uZWdhdGl2ZS1zY3JlZW54LXNjcmVlbnkuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZp
Z2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1uZWdhdGl2ZS10
b3AtbGVmdC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBp
cy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9v
cGVuLWZlYXR1cmVzLW5lZ2F0aXZlLXdpZHRoLWhlaWdodC5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmct
YnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLW5vbi1pbnRlZ2VyLWhlaWdo
dC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3It
Y3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZl
YXR1cmVzLW5vbi1pbnRlZ2VyLWlubmVyaGVpZ2h0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93
c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtbm9uLWludGVnZXItaW5uZXJ3aWR0
aC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3It
Y3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZl
YXR1cmVzLW5vbi1pbnRlZ2VyLWxlZnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13
aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNv
bnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1ub24taW50ZWdlci1zY3JlZW54Lmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1h
bmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtbm9u
LWludGVnZXItc2NyZWVueS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1v
YmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMt
YnktbmFtZS9vcGVuLWZlYXR1cmVzLW5vbi1pbnRlZ2VyLXRvcC5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRp
bmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLW5vbi1pbnRlZ2VyLXdp
ZHRoLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZv
ci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4t
ZmVhdHVyZXMtdG9rZW5pemF0aW9uLWlubmVyaGVpZ2h0LWlubmVyd2lkdGguaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1u
YXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy10b2tlbml6
YXRpb24tbm9vcGVuZXIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2Jq
ZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5
LW5hbWUvb3Blbi1mZWF0dXJlcy10b2tlbml6YXRpb24tbm9yZWZlcnJlci5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5h
dmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLXRva2VuaXph
dGlvbi1zY3JlZW54LXNjcmVlbnkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5k
b3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRl
eHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy10b2tlbml6YXRpb24tdG9wLWxlZnQuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFu
ZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy10b2tl
bml6YXRpb24td2lkdGgtaGVpZ2h0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2lu
ZG93LW9iamVjdC93aW5kb3ctb3Blbi1ub29wZW5lci5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvd2luZG93cy9hdXhpbGlhcnktYnJvd3NpbmctY29udGV4dHMvb3BlbmVyLXNldHRlci5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9jbGVhci13aW5kb3ctbmFtZS5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9ub3JlZmVycmVyLXdpbmRvdy1uYW1l
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2NvbXBvc2l0aW5nLzJkLmNvbXBv
c2l0ZS51bmNvdmVyZWQuZmlsbC5kZXN0aW5hdGlvbi1pbi5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS4z
YXJnLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRv
LXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLjVhcmcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9v
ZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UuOWFyZy5i
YXNpYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10
by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS45YXJnLmRlc3Rwb3MuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1h
Z2UuOWFyZy5kZXN0c2l6ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3
aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS45YXJnLnNvdXJjZXBvcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2Fu
dmFzLzJkLmRyYXdJbWFnZS45YXJnLnNvdXJjZXNpemUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UuYWxw
aGEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8t
dGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UuYW5pbWF0ZWQucG9zdGVyLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMvMmQuZHJhd0lt
YWdlLmJyb2tlbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWlt
YWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS5jYW52YXMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1h
Z2UuY2xpcC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdl
cy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS5jb21wb3NpdGUuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1h
Z2UuZmxvYXRzb3VyY2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2lu
Zy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UubmVnYXRpdmVkZXN0Lmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMv
MmQuZHJhd0ltYWdlLm5lZ2F0aXZlZGlyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLm5lZ2F0aXZlc291
cmNlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRv
LXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLm5vbmZpbml0ZS5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS5u
b3dyYXAuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMt
dG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UubnVsbC5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS5wYXRo
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRo
ZS1jYW52YXMvMmQuZHJhd0ltYWdlLnNlbGYuMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS5zZWxmLjIu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhl
LWNhbnZhcy8yZC5kcmF3SW1hZ2Uuc3ZnLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLnRyYW5zZm9ybS5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUt
Y2FudmFzLzJkLmRyYXdJbWFnZS53cm9uZ3R5cGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9v
ZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UuemVyb2Nh
bnZhcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10
by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS56ZXJvc291cmNlLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvb2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMvMmQuZHJhd0ltYWdl
Lnplcm9zb3VyY2UuaW1hZ2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRl
ci1wb2xpY3kvY2FjaGUtc3RvcmFnZS1yZXBvcnRpbmctZGVkaWNhdGVkLXdvcmtlci5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jYWNoZS1zdG9y
YWdlLXJlcG9ydGluZy1kb2N1bWVudC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3Jp
Z2luLWVtYmVkZGVyLXBvbGljeS9jYWNoZS1zdG9yYWdlLXJlcG9ydGluZy1zaGFyZWQtd29ya2Vy
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L25v
bmUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kv
cmVwb3J0LW9ubHktcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy1uYXZpZ2F0aW9uLmh0dHBzLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy1zdWJyZXNv
dXJjZS1jb3JwLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXIt
cG9saWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXF1aXJlLWNvcnAuaHR0cHMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtbmF2aWdhdGUtcG9wdXAuaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtcmVk
aXJlY3QuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5
L2NvZXAuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5
L2Nvb3AtbmF2aWdhdGVkLWhpc3RvcnktcG9wdXAuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2hpc3RvcmljYWwvY29lcC1uYXZpZ2F0ZS1wb3B1cC11
bnNhZmUtaW5oZXJpdC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5l
ci1wb2xpY3kvaGlzdG9yaWNhbC9wb3B1cC1zYW1lLW9yaWdpbi11bnNhZmUtYWxsb3ctb3V0Z29p
bmctd2l0aC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdp
bi1vcGVuZXItcG9saWN5L2hpc3RvcmljYWwvcG9wdXAtc2FtZS1vcmlnaW4tdW5zYWZlLWFsbG93
LW91dGdvaW5nLXdpdGgtc2FtZS1vcmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2hpc3RvcmljYWwvcG9wdXAtc2FtZS1vcmlnaW4tdW5zYWZl
LWFsbG93LW91dGdvaW5nLXdpdGgtc2FtZS1zaXRlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
cm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9oaXN0b3JpY2FsL3BvcHVwLXNhbWUtc2l0ZS11bnNh
ZmUtYWxsb3ctb3V0Z29pbmctd2l0aC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2hpc3RvcmljYWwvcG9wdXAtc2FtZS1zaXRl
LXVuc2FmZS1hbGxvdy1vdXRnb2luZy13aXRoLXNhbWUtb3JpZ2luLmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9oaXN0b3JpY2FsL3BvcHVwLXNhbWUt
c2l0ZS11bnNhZmUtYWxsb3ctb3V0Z29pbmctd2l0aC1zYW1lLXNpdGUuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2hpc3RvcmljYWwvcG9wdXAtc2Ft
ZS1zaXRlLXdpdGgtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeS9oaXN0b3JpY2FsL3BvcHVwLXNhbWUtc2l0ZS13aXRoLXNhbWUt
b3JpZ2luLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGlj
eS9oaXN0b3JpY2FsL3BvcHVwLXNhbWUtc2l0ZS13aXRoLXNhbWUtc2l0ZS5odHRwcy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvaWZyYW1lLXBvcHVwLXNhbWUt
b3JpZ2luLWFsbG93LXBvcHVwcy10by1zYW1lLW9yaWdpbi1hbGxvdy1wb3B1cHMuaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2lmcmFtZS1wb3B1cC1z
YW1lLW9yaWdpbi1hbGxvdy1wb3B1cHMtdG8tc2FtZS1vcmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2lmcmFtZS1wb3B1cC1zYW1lLW9yaWdp
bi1hbGxvdy1wb3B1cHMtdG8tdW5zYWZlLW5vbmUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2lmcmFtZS1wb3B1cC1zYW1lLW9yaWdpbi10by1zYW1l
LW9yaWdpbi5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xp
Y3kvaWZyYW1lLXBvcHVwLXNhbWUtb3JpZ2luLXRvLXVuc2FmZS1ub25lLmh0dHBzLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9pZnJhbWUtcG9wdXAtdW5zYWZl
LW5vbmUtdG8tc2FtZS1vcmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdp
bi1vcGVuZXItcG9saWN5L2lmcmFtZS1wb3B1cC11bnNhZmUtbm9uZS10by11bnNhZmUtbm9uZS5o
dHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvbm8taHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLXJl
ZGlyZWN0LWNhY2hlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeS9wb3B1cC1zYW1lLW9yaWdpbi1hbGxvdy1wb3B1cHMtd2l0aC1jcm9zcy1vcmlnaW4u
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVw
LXNhbWUtb3JpZ2luLWFsbG93LXBvcHVwcy13aXRoLXNhbWUtb3JpZ2luLmh0dHBzLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1zYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cHMtd2l0aC1zYW1lLXNpdGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLXNhbWUtb3JpZ2luLXdpdGgtY3Jvc3Mtb3JpZ2lu
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1
cC1zYW1lLW9yaWdpbi13aXRoLXNhbWUtb3JpZ2luLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
cm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1zYW1lLW9yaWdpbi13aXRoLXNhbWUtc2l0
ZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9w
dXAtdW5zYWZlLW5vbmUtd2l0aC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLXVuc2FmZS1ub25lLXdpdGgtc2FtZS1v
cmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5
L3BvcHVwLXVuc2FmZS1ub25lLXdpdGgtc2FtZS1zaXRlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC11bnNwZWNpZmllZC13aXRoLWNyb3Nz
LW9yaWdpbi5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xp
Y3kvcG9wdXAtdW5zcGVjaWZpZWQtd2l0aC1zYW1lLW9yaWdpbi5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtdW5zcGVjaWZpZWQtd2l0aC1z
YW1lLXNpdGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9s
aWN5L3BvcHVwLXdpdGgtc3RydWN0dXJlZC1oZWFkZXIuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3JlcG9ydGluZy9hY2Nlc3MtcmVwb3J0aW5nL29w
ZW5lZS1hY2Nlc3NlZF9vcGVuZWUtY29vcC1yby5odHRwcy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nL2FjY2Vzcy1yZXBvcnRpbmcvb3BlbmVl
LWFjY2Vzc2VkX29wZW5lZS1jb29wLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tb3BlbmVyLXBvbGljeS9yZXBvcnRpbmcvYWNjZXNzLXJlcG9ydGluZy9vcGVuZWUtYWNjZXNz
ZWRfb3BlbmVyLWNvb3Atcm8uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1v
cGVuZXItcG9saWN5L3JlcG9ydGluZy9hY2Nlc3MtcmVwb3J0aW5nL29wZW5lZS1hY2Nlc3NlZF9v
cGVuZXItY29vcC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvcmVwb3J0aW5nL2FjY2Vzcy1yZXBvcnRpbmcvb3BlbmVyLWFjY2Vzc2VkX29wZW5lZS1j
b29wLXJvLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGlj
eS9yZXBvcnRpbmcvYWNjZXNzLXJlcG9ydGluZy9vcGVuZXItYWNjZXNzZWRfb3BlbmVlLWNvb3Au
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3JlcG9y
dGluZy9hY2Nlc3MtcmVwb3J0aW5nL29wZW5lci1hY2Nlc3NlZF9vcGVuZXItY29vcC1yby5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5n
L2FjY2Vzcy1yZXBvcnRpbmcvb3BlbmVyLWFjY2Vzc2VkX29wZW5lci1jb29wLmh0dHBzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9yZXBvcnRpbmcvYWNjZXNz
LXJlcG9ydGluZy9wcm9wZXJ0eS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2lu
LW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nL25hdmlnYXRpb24tcmVwb3J0aW5nL3JlcG9ydC1vbmx5
LWZvdXItcmVwb3J0cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5l
ci1wb2xpY3kvcmVwb3J0aW5nL25hdmlnYXRpb24tcmVwb3J0aW5nL3JlcG9ydC1vbmx5LWZyb20t
dW5zYWZlLW5vbmUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXIt
cG9saWN5L3JlcG9ydGluZy9uYXZpZ2F0aW9uLXJlcG9ydGluZy9yZXBvcnQtb25seS1zYW1lLW9y
aWdpbi1yZXBvcnQtdG8uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L3JlcG9ydGluZy9uYXZpZ2F0aW9uLXJlcG9ydGluZy9yZXBvcnQtb25seS1zYW1l
LW9yaWdpbi13aXRoLWNvZXAtcmVwb3J0LW9ubHkuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3JlcG9ydGluZy9uYXZpZ2F0aW9uLXJlcG9ydGluZy9y
ZXBvcnQtb25seS1zYW1lLW9yaWdpbi13aXRoLWNvZXAuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3JlcG9ydGluZy9uYXZpZ2F0aW9uLXJlcG9ydGlu
Zy9yZXBvcnQtb25seS1zYW1lLW9yaWdpbi5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nL25hdmlnYXRpb24tcmVwb3J0aW5nL3JlcG9y
dGluZy1wb3B1cC1zYW1lLW9yaWdpbi1hbGxvdy1wb3B1cHMtcmVwb3J0LXRvLmh0dHBzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9yZXBvcnRpbmcvbmF2aWdh
dGlvbi1yZXBvcnRpbmcvcmVwb3J0aW5nLXBvcHVwLXNhbWUtb3JpZ2luLWNvZXAtcmVwb3J0LXRv
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9yZXBv
cnRpbmcvbmF2aWdhdGlvbi1yZXBvcnRpbmcvcmVwb3J0aW5nLXBvcHVwLXNhbWUtb3JpZ2luLXJl
cG9ydC10by5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xp
Y3kvcmVwb3J0aW5nL25hdmlnYXRpb24tcmVwb3J0aW5nL3JlcG9ydGluZy1wb3B1cC1zYW1lLW9y
aWdpbi5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kv
cmVwb3J0aW5nL25hdmlnYXRpb24tcmVwb3J0aW5nL3JlcG9ydGluZy1wb3B1cC11bmFmZS1ub25l
LXJlcG9ydC10by5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2RvY3VtZW50cy9yZXNvdXJj
ZS1tZXRhZGF0YS1tYW5hZ2VtZW50L2RvY3VtZW50LWxhc3RNb2RpZmllZC0wMS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9yZWZs
ZWN0aW9uLWVtYmVkZGVkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vcmVmbGVjdGlvbi1mb3Jtcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvZG9tL3JlZmxlY3Rpb24tZ3JvdXBpbmcuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9yZWZsZWN0aW9uLW1ldGFkYXRhLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vcmVmbGVj
dGlvbi1taXNjLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vcmVmbGVjdGlvbi1vYnNvbGV0ZS5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvZG9tL3JlZmxlY3Rpb24tc2VjdGlvbnMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2RvbS9yZWZsZWN0aW9uLXRhYnVsYXIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9yZWZsZWN0aW9u
LXRleHQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3VybHMvcmVzb2x2aW5nLXVy
bHMvcXVlcnktZW5jb2RpbmcvdXRmLTE2bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0
dXJlL3VybHMvcmVzb2x2aW5nLXVybHMvcXVlcnktZW5jb2RpbmcvdXRmLTguaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2luZnJhc3RydWN0dXJlL3VybHMvcmVzb2x2aW5nLXVybHMvcXVlcnktZW5jb2Rpbmcv
d2luZG93cy0xMjUxLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS91cmxzL3Jlc29s
dmluZy11cmxzL3F1ZXJ5LWVuY29kaW5nL3dpbmRvd3MtMTI1Mi5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
aW50ZXJhY3Rpb24vZm9jdXMvZm9jdXMtMDEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2ludGVyYWN0aW9u
L2ZvY3VzL2ZvY3VzLTAyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbnRlcmFjdGlvbi9mb2N1cy9zZXF1
ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGUvZm9jdXMt
dGFiaW5kZXgtbmVnYXRpdmUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2ludGVyYWN0aW9uL2ZvY3VzL3Nl
cXVlbnRpYWwtZm9jdXMtbmF2aWdhdGlvbi1hbmQtdGhlLXRhYmluZGV4LWF0dHJpYnV0ZS9mb2N1
cy10YWJpbmRleC1vcmRlci5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW50ZXJhY3Rpb24vZm9jdXMvc2Vx
dWVudGlhbC1mb2N1cy1uYXZpZ2F0aW9uLWFuZC10aGUtdGFiaW5kZXgtYXR0cmlidXRlL2ZvY3Vz
LXRhYmluZGV4LXBvc2l0aXZlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbnRlcmFjdGlvbi9mb2N1cy9z
ZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGUvZm9j
dXMtdGFiaW5kZXgtemVyby5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3BpeGVsLWxlbmd0
aC1hdHRyaWJ1dGVzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVu
dHMvc3ZnLWVtYmVkZGVkLXNpemluZy9zdmctaW4taWZyYW1lLWF1dG8uaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9zdmctZW1iZWRkZWQtc2l6aW5nL3N2Zy1p
bi1pZnJhbWUtZml4ZWQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVt
ZW50cy9zdmctZW1iZWRkZWQtc2l6aW5nL3N2Zy1pbi1pZnJhbWUtcGVyY2VudGFnZS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL3N2Zy1lbWJlZGRlZC1zaXpp
bmcvc3ZnLWluLWltZy1hdXRvLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQt
ZWxlbWVudHMvc3ZnLWVtYmVkZGVkLXNpemluZy9zdmctaW4taW1nLWZpeGVkLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvc3ZnLWVtYmVkZGVkLXNpemluZy9z
dmctaW4taW1nLXBlcmNlbnRhZ2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNl
ZC1lbGVtZW50cy9zdmctZW1iZWRkZWQtc2l6aW5nL3N2Zy1pbi1vYmplY3QtYXV0by5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL3N2Zy1lbWJlZGRlZC1zaXpp
bmcvc3ZnLWluLW9iamVjdC1maXhlZC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxh
Y2VkLWVsZW1lbnRzL3N2Zy1lbWJlZGRlZC1zaXppbmcvc3ZnLWluLW9iamVjdC1wZXJjZW50YWdl
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLW1ldGEt
ZWxlbWVudC9wcmFnbWEtZGlyZWN0aXZlcy9hdHRyLW1ldGEtaHR0cC1lcXVpdi1yZWZyZXNoL25v
dC1pbi1zaGFkb3ctdHJlZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1l
dGFkYXRhL3RoZS1tZXRhLWVsZW1lbnQvcHJhZ21hLWRpcmVjdGl2ZXMvYXR0ci1tZXRhLWh0dHAt
ZXF1aXYtcmVmcmVzaC9wYXJzaW5nLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9tZWRpYV9mcmFnbWVudF9zZWVrLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5n
LXRoZS1tZWRpYS1yZXNvdXJjZS9wYXVzZS1yZW1vdmUtZnJvbS1kb2N1bWVudC1uZXR3b3JrU3Rh
dGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL3NlZWtpbmcvc2Vlay10by1jdXJyZW50VGltZS5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdHJhY2svdHJhY2stZWxlbWVu
dC90cmFjay1jdWVzLWN1ZWNoYW5nZS1keW5hbWljYWxseS1jcmVhdGVkLXRyYWNrLWVsZW1lbnQu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL3RyYWNrL3RyYWNrLWVsZW1lbnQvdHJhY2stY3Vlcy1jdWVjaGFuZ2UuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3Ry
YWNrLWVsZW1lbnQvdHJhY2stY3Vlcy1lbnRlci1leGl0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90cmFjay1lbGVtZW50
L3RyYWNrLXdlYnZ0dC1jbGFzcy1tYXJrdXAuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3RyYWNrLWVsZW1lbnQvdHJhY2st
d2VidnR0LW1hcmt1cC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZV9zYW5kYm94X25hdmlnYXRpb25fZG93bmxvYWRf
YWxsb3dfZG93bmxvYWRzLnN1Yi50ZW50YXRpdmUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L3RoZS1pZnJhbWUtZWxlbWVudC9pZnJhbWVfc2FuZGJveF9uYXZp
Z2F0aW9uX2Rvd25sb2FkX2FsbG93X2Rvd25sb2Fkc193aXRob3V0X3VzZXJfYWN0aXZhdGlvbi5z
dWIudGVudGF0aXZlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC90aGUtaWZyYW1lLWVsZW1lbnQvc2FuZGJveF8wMDIuaHRtIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L3NhbmRib3hfMDA1Lmh0bSI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pbWctZWxlbWVudC9k
ZWNvZGUvaW1hZ2UtZGVjb2RlLWlmcmFtZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L2RlY29kZS9pbWFnZS1kZWNvZGUtcGF0aC1j
aGFuZ2VzLXN2Zy50ZW50YXRpdmUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L3RoZS1pbWctZWxlbWVudC9kZWNvZGUvaW1hZ2UtZGVjb2RlLXBhdGgtY2hhbmdl
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1l
bGVtZW50L2RlY29kZS9pbWFnZS1kZWNvZGUtcGljdHVyZS5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L2RlY29kZS9pbWFnZS1kZWNv
ZGUtc3ZnLnRlbnRhdGl2ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvdGhlLWltZy1lbGVtZW50L2RlY29kZS9pbWFnZS1kZWNvZGUtd2l0aC1xdWljay1hdHRh
Y2gtc3ZnLnRlbnRhdGl2ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvdGhlLWltZy1lbGVtZW50L2RlY29kZS9pbWFnZS1kZWNvZGUtd2l0aC1xdWljay1hdHRh
Y2guaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pbWct
ZWxlbWVudC9kZWNvZGUvaW1hZ2UtZGVjb2RlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC90aGUtaW1nLWVsZW1lbnQvcmVsZXZhbnQtbXV0YXRpb25zLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaW1nLWVsZW1lbnQv
c2l6ZXMvcGFyc2UtYS1zaXplcy1hdHRyaWJ1dGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L3RoZS1vYmplY3QtZWxlbWVudC9vYmplY3QtZXZlbnRzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLTAvc3VibWl0LWVu
dGl0eS1ib2R5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2Vs
ZWN0aW9uL3NlbGVjdC1ldmVudC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3Rl
eHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9s
aW5rcy9saW5rcy1jcmVhdGVkLWJ5LWEtYW5kLWFyZWEtZWxlbWVudHMvdGFyZ2V0X2JsYW5rX2lt
cGxpY2l0X25vb3BlbmVyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3Mt
Y3JlYXRlZC1ieS1hLWFuZC1hcmVhLWVsZW1lbnRzL3RhcmdldF9ibGFua19pbXBsaWNpdF9ub29w
ZW5lcl9iYXNlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L2FzeW5jXzAwMy5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2FzeW5jXzAwNC5odG0iOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2FzeW5jXzAwNS5odG0iOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2FzeW5jXzAw
Ni5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L2FzeW5jXzAwNy5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L2FzeW5jXzAxMC5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2V4ZWN1dGlvbi10aW1pbmcvMDE1YS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9leGVj
dXRpb24tdGltaW5nLzA1MC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nLzA3OC5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGlt
aW5nLzA4Mi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nLzExMS5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nLzExMi5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZXhlY29yZGVyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9pbmxpbmUtYXN5bmMtZXhlY29yZGVyLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
dmluZy1iZXR3ZWVuLWRvY3VtZW50cy9hZnRlci1wcmVwYXJlLWNyZWF0ZUhUTUxEb2N1bWVudC1m
ZXRjaC1lcnJvci1leHRlcm5hbC1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9h
ZnRlci1wcmVwYXJlLWNyZWF0ZUhUTUxEb2N1bWVudC1mZXRjaC1lcnJvci1leHRlcm5hbC1tb2R1
bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2FmdGVyLXByZXBhcmUtY3JlYXRlSFRNTERv
Y3VtZW50LXBhcnNlLWVycm9yLWV4dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9j
dW1lbnRzL2FmdGVyLXByZXBhcmUtY3JlYXRlSFRNTERvY3VtZW50LXBhcnNlLWVycm9yLWV4dGVy
bmFsLW1vZHVsZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvYWZ0ZXItcHJlcGFyZS1jcmVh
dGVIVE1MRG9jdW1lbnQtc3VjY2Vzcy1leHRlcm5hbC1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVu
LWRvY3VtZW50cy9hZnRlci1wcmVwYXJlLWNyZWF0ZUhUTUxEb2N1bWVudC1zdWNjZXNzLWV4dGVy
bmFsLW1vZHVsZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvYWZ0ZXItcHJlcGFyZS1pZnJh
bWUtZmV0Y2gtZXJyb3ItZXh0ZXJuYWwtY2xhc3NpYy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVu
dHMvYWZ0ZXItcHJlcGFyZS1pZnJhbWUtZmV0Y2gtZXJyb3ItZXh0ZXJuYWwtbW9kdWxlLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
dmluZy1iZXR3ZWVuLWRvY3VtZW50cy9hZnRlci1wcmVwYXJlLWlmcmFtZS1wYXJzZS1lcnJvci1l
eHRlcm5hbC1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9hZnRlci1wcmVwYXJl
LWlmcmFtZS1wYXJzZS1lcnJvci1leHRlcm5hbC1tb2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9j
dW1lbnRzL2FmdGVyLXByZXBhcmUtaWZyYW1lLXBhcnNlLWVycm9yLWlubGluZS1jbGFzc2ljLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9hZnRlci1wcmVwYXJlLWlmcmFtZS1zdWNjZXNzLWV4
dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2FmdGVyLXByZXBhcmUt
aWZyYW1lLXN1Y2Nlc3MtZXh0ZXJuYWwtbW9kdWxlLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50
cy9hZnRlci1wcmVwYXJlLWlmcmFtZS1zdWNjZXNzLWlubGluZS1jbGFzc2ljLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1i
ZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1jcmVhdGVIVE1MRG9jdW1lbnQtZmV0Y2gt
ZXJyb3ItZXh0ZXJuYWwtY2xhc3NpYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvYmVmb3Jl
LXByZXBhcmUtY3JlYXRlSFRNTERvY3VtZW50LWZldGNoLWVycm9yLWV4dGVybmFsLW1vZHVsZS5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvYmVmb3JlLXByZXBhcmUtY3JlYXRlSFRNTERvY3Vt
ZW50LXBhcnNlLWVycm9yLWV4dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1l
bnRzL2JlZm9yZS1wcmVwYXJlLWNyZWF0ZUhUTUxEb2N1bWVudC1wYXJzZS1lcnJvci1leHRlcm5h
bC1tb2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVwYXJlLWNyZWF0
ZUhUTUxEb2N1bWVudC1wYXJzZS1lcnJvci1pbmxpbmUtY2xhc3NpYy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vl
bi1kb2N1bWVudHMvYmVmb3JlLXByZXBhcmUtY3JlYXRlSFRNTERvY3VtZW50LXBhcnNlLWVycm9y
LWlubGluZS1tb2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVwYXJl
LWNyZWF0ZUhUTUxEb2N1bWVudC1zdWNjZXNzLWVtcHR5LXNyYy1jbGFzc2ljLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1i
ZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1jcmVhdGVIVE1MRG9jdW1lbnQtc3VjY2Vz
cy1lbXB0eS1zcmMtbW9kdWxlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJl
cGFyZS1jcmVhdGVIVE1MRG9jdW1lbnQtc3VjY2Vzcy1leHRlcm5hbC1jbGFzc2ljLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmlu
Zy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1jcmVhdGVIVE1MRG9jdW1lbnQtc3Vj
Y2Vzcy1leHRlcm5hbC1tb2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1w
cmVwYXJlLWNyZWF0ZUhUTUxEb2N1bWVudC1zdWNjZXNzLWlubGluZS1jbGFzc2ljLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmlu
Zy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1jcmVhdGVIVE1MRG9jdW1lbnQtc3Vj
Y2Vzcy1pbmxpbmUtbW9kdWxlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJl
cGFyZS1pZnJhbWUtZmV0Y2gtZXJyb3ItZXh0ZXJuYWwtY2xhc3NpYy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vl
bi1kb2N1bWVudHMvYmVmb3JlLXByZXBhcmUtaWZyYW1lLWZldGNoLWVycm9yLWV4dGVybmFsLW1v
ZHVsZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvYmVmb3JlLXByZXBhcmUtaWZyYW1lLXBh
cnNlLWVycm9yLWV4dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2Jl
Zm9yZS1wcmVwYXJlLWlmcmFtZS1wYXJzZS1lcnJvci1leHRlcm5hbC1tb2R1bGUuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5n
LWJldHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVwYXJlLWlmcmFtZS1wYXJzZS1lcnJvci1pbmxp
bmUtY2xhc3NpYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvYmVmb3JlLXByZXBhcmUtaWZy
YW1lLXBhcnNlLWVycm9yLWlubGluZS1tb2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRz
L2JlZm9yZS1wcmVwYXJlLWlmcmFtZS1zdWNjZXNzLWVtcHR5LXNyYy1jbGFzc2ljLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmlu
Zy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1pZnJhbWUtc3VjY2Vzcy1lbXB0eS1z
cmMtbW9kdWxlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1pZnJh
bWUtc3VjY2Vzcy1leHRlcm5hbC1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9i
ZWZvcmUtcHJlcGFyZS1pZnJhbWUtc3VjY2Vzcy1leHRlcm5hbC1tb2R1bGUuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJl
dHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVwYXJlLWlmcmFtZS1zdWNjZXNzLWlubGluZS1jbGFz
c2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1pZnJhbWUtc3Vj
Y2Vzcy1pbmxpbmUtbW9kdWxlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9tb3ZlLWJhY2st
Y3JlYXRlSFRNTERvY3VtZW50LWZldGNoLWVycm9yLWV4dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5n
LWJldHdlZW4tZG9jdW1lbnRzL21vdmUtYmFjay1jcmVhdGVIVE1MRG9jdW1lbnQtZmV0Y2gtZXJy
b3ItZXh0ZXJuYWwtbW9kdWxlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9tb3ZlLWJhY2st
Y3JlYXRlSFRNTERvY3VtZW50LXBhcnNlLWVycm9yLWV4dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5n
LWJldHdlZW4tZG9jdW1lbnRzL21vdmUtYmFjay1jcmVhdGVIVE1MRG9jdW1lbnQtcGFyc2UtZXJy
b3ItZXh0ZXJuYWwtbW9kdWxlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9tb3ZlLWJhY2st
Y3JlYXRlSFRNTERvY3VtZW50LXN1Y2Nlc3MtZXh0ZXJuYWwtY2xhc3NpYy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0
d2Vlbi1kb2N1bWVudHMvbW92ZS1iYWNrLWNyZWF0ZUhUTUxEb2N1bWVudC1zdWNjZXNzLWV4dGVy
bmFsLW1vZHVsZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvbW92ZS1iYWNrLWlmcmFtZS1m
ZXRjaC1lcnJvci1leHRlcm5hbC1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9t
b3ZlLWJhY2staWZyYW1lLWZldGNoLWVycm9yLWV4dGVybmFsLW1vZHVsZS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0
d2Vlbi1kb2N1bWVudHMvbW92ZS1iYWNrLWlmcmFtZS1wYXJzZS1lcnJvci1leHRlcm5hbC1jbGFz
c2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9tb3ZlLWJhY2staWZyYW1lLXBhcnNlLWVy
cm9yLWV4dGVybmFsLW1vZHVsZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvbW92ZS1iYWNr
LWlmcmFtZS1wYXJzZS1lcnJvci1pbmxpbmUtY2xhc3NpYy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1
bWVudHMvbW92ZS1iYWNrLWlmcmFtZS1zdWNjZXNzLWV4dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5n
LWJldHdlZW4tZG9jdW1lbnRzL21vdmUtYmFjay1pZnJhbWUtc3VjY2Vzcy1leHRlcm5hbC1tb2R1
bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL21vdmUtYmFjay1pZnJhbWUtc3VjY2Vzcy1p
bmxpbmUtY2xhc3NpYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9zY3JpcHQtbm90LWV4ZWN1dGVkLWFmdGVyLXNodXRkb3duLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3Byb2Nlc3NpbmctbW9kZWwtMS9z
cGFuLWxpbWl0cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfYWRv
cHRpb24wMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfYWRvcHRp
b24wMi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfYmxvY2tzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl9jb21tZW50czAxLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl9kb2N0eXBlMDEuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX2RvbWpzLXVuc2FmZS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfZW50aXRpZXMwMS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfZW50aXRpZXMwMi5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfaHRtbDV0ZXN0LWNvbS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfaW5ib2R5MDEuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5
bnRheC9wYXJzaW5nL2h0bWw1bGliX2lubmVySFRNTF9hZG9wdGlvbjAxLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl9pbm5lckhUTUxfZm9yZWlnbi1mcmFnbWVudC5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfaW5uZXJIVE1MX21hdGgu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX2lubmVySFRNTF90ZXN0
czQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX2lubmVySFRNTF90
ZXN0czYuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX2lubmVySFRN
TF90ZXN0czcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX2lubmVy
SFRNTF90ZXN0c19pbm5lckhUTUxfMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcv
aHRtbDVsaWJfaW5uZXJIVE1MX3dlYmtpdDAyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFy
c2luZy9odG1sNWxpYl9pc2luZGV4Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9o
dG1sNWxpYl9tYWluLWVsZW1lbnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0
bWw1bGliX21lbnVpdGVtLWVsZW1lbnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5n
L2h0bWw1bGliX25hbWVzcGFjZS1zZW5zaXRpdml0eS5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4
L3BhcnNpbmcvaHRtbDVsaWJfcGVuZGluZy1zcGVjLWNoYW5nZXMtcGxhaW4tdGV4dC11bnNhZmUu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX3BlbmRpbmctc3BlYy1j
aGFuZ2VzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl9wbGFpbi10
ZXh0LXVuc2FmZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfcnVi
eS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfc2NyaXB0ZGF0YTAx
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl9zY3JpcHRlZF9hZG9w
dGlvbjAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl9zY3JpcHRl
ZF9hcmsuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX3NjcmlwdGVk
X3dlYmtpdDAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90YWJs
ZXMwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVtcGxhdGUu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX3Rlc3RzMS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMxMC5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMxMS5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMxMi5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4
L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMxNC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNp
bmcvaHRtbDVsaWJfdGVzdHMxNS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRt
bDVsaWJfdGVzdHMxNi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJf
dGVzdHMxNy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMx
OC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMxOS5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMyLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0czIwLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0czIxLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50
YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0czIyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFy
c2luZy9odG1sNWxpYl90ZXN0czIzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9o
dG1sNWxpYl90ZXN0czI0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxp
Yl90ZXN0czI1Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0
czI2Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0czMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX3Rlc3RzNS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHM2Lmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0czcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRh
eC9wYXJzaW5nL2h0bWw1bGliX3Rlc3RzOC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNp
bmcvaHRtbDVsaWJfdGVzdHM5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1s
NWxpYl90cmlja3kwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJf
d2Via2l0MDEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX3dlYmtp
dDAyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy90ZW1wbGF0ZS9jcmVhdGluZy1h
bi1lbGVtZW50LWZvci10aGUtdG9rZW4vdGVtcGxhdGUtb3duZXItZG9jdW1lbnQuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3RoZS14aHRtbC1zeW50YXgvcGFyc2luZy14aHRtbC1kb2N1bWVudHMveGh0bWwt
bWF0aG1sLWR0ZC1lbnRpdHktMS5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC90aGUteGh0bWwtc3ludGF4L3Bh
cnNpbmcteGh0bWwtZG9jdW1lbnRzL3hodG1sLW1hdGhtbC1kdGQtZW50aXR5LTEwLmh0bSI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3RoZS14aHRtbC1zeW50YXgvcGFyc2luZy14aHRtbC1kb2N1bWVudHMveGh0bWwt
bWF0aG1sLWR0ZC1lbnRpdHktMi5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC90aGUteGh0bWwtc3ludGF4L3Bh
cnNpbmcteGh0bWwtZG9jdW1lbnRzL3hodG1sLW1hdGhtbC1kdGQtZW50aXR5LTMuaHRtIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvdGhlLXhodG1sLXN5bnRheC9wYXJzaW5nLXhodG1sLWRvY3VtZW50cy94aHRtbC1t
YXRobWwtZHRkLWVudGl0eS00Lmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3RoZS14aHRtbC1zeW50YXgvcGFy
c2luZy14aHRtbC1kb2N1bWVudHMveGh0bWwtbWF0aG1sLWR0ZC1lbnRpdHktNS5odG0iOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC90aGUteGh0bWwtc3ludGF4L3BhcnNpbmcteGh0bWwtZG9jdW1lbnRzL3hodG1sLW1h
dGhtbC1kdGQtZW50aXR5LTYuaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvdGhlLXhodG1sLXN5bnRheC9wYXJz
aW5nLXhodG1sLWRvY3VtZW50cy94aHRtbC1tYXRobWwtZHRkLWVudGl0eS03Lmh0bSI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3RoZS14aHRtbC1zeW50YXgvcGFyc2luZy14aHRtbC1kb2N1bWVudHMveGh0bWwtbWF0
aG1sLWR0ZC1lbnRpdHktOC5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC90aGUteGh0bWwtc3ludGF4L3BhcnNp
bmcteGh0bWwtZG9jdW1lbnRzL3hodG1sLW1hdGhtbC1kdGQtZW50aXR5LTkuaHRtIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvdG9vbHMvaHRtbDVsaWJfdGVzdC54bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC90b29scy9odG1sNWxp
Yl90ZXN0X2ZyYWdtZW50LnhtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZS1kZWNvZGVzL2ltYWdlLWRlY29kZS1p
ZnJhbWUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZS1kZWNvZGVzL2ltYWdlLWRlY29kZS1wYXRoLWNoYW5n
ZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbWFnZS1kZWNvZGVzL2ltYWdlLWRlY29kZS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5
LTAwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9v
cGVyYXRvci1kaWN0aW9uYXJ5LWxhcmdlb3AtMDAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNl
bnRhdGlvbi1tYXJrdXAvb3BlcmF0b3JzL29wZXJhdG9yLWRpY3Rpb25hcnktbGFyZ2VvcC0wMDIu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0
b3ItZGljdGlvbmFyeS1sYXJnZW9wLTAwMy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRp
b24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LWxhcmdlb3AtMDA0Lmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvb3BlcmF0b3JzL29wZXJhdG9yLWRp
Y3Rpb25hcnktbGFyZ2VvcC0wMDUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uLW1h
cmt1cC9vcGVyYXRvcnMvb3BlcmF0b3ItZGljdGlvbmFyeS1sYXJnZW9wLTAwNi5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9u
YXJ5LW1vdmFibGVsaW1pdHMtMDAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1t
YXJrdXAvb3BlcmF0b3JzL29wZXJhdG9yLWRpY3Rpb25hcnktbW92YWJsZWxpbWl0cy0wMDIuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0b3It
ZGljdGlvbmFyeS1tb3ZhYmxlbGltaXRzLTAwMy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50
YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LW1vdmFibGVsaW1pdHMt
MDA0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvb3BlcmF0b3JzL29w
ZXJhdG9yLWRpY3Rpb25hcnktbW92YWJsZWxpbWl0cy0wMDUuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwv
cHJlc2VudGF0aW9uLW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0b3ItZGljdGlvbmFyeS1tb3ZhYmxl
bGltaXRzLTAwNi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJh
dG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXNwYWNpbmctMDAxLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1s
L3ByZXNlbnRhdGlvbi1tYXJrdXAvb3BlcmF0b3JzL29wZXJhdG9yLWRpY3Rpb25hcnktc3BhY2lu
Zy0wMDIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9vcGVyYXRvcnMv
b3BlcmF0b3ItZGljdGlvbmFyeS1zcGFjaW5nLTAwMy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVz
ZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXNwYWNpbmctMDA0
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvb3BlcmF0b3JzL29wZXJh
dG9yLWRpY3Rpb25hcnktc3BhY2luZy0wMDUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0
aW9uLW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0b3ItZGljdGlvbmFyeS1zcGFjaW5nLTAwNi5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1k
aWN0aW9uYXJ5LXN0cmV0Y2h5LTAwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24t
bWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXN0cmV0Y2h5LTAwMi5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0
aW9uYXJ5LXN0cmV0Y2h5LTAwMy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFy
a3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXN0cmV0Y2h5LTAwNC5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9u
YXJ5LXN0cmV0Y2h5LTAwNS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3Vw
L29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXN0cmV0Y2h5LTAwNi5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5
LXN5bW1ldHJpYy0wMDEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9v
cGVyYXRvcnMvb3BlcmF0b3ItZGljdGlvbmFyeS1zeW1tZXRyaWMtMDAyLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWF0aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvb3BlcmF0b3JzL29wZXJhdG9yLWRpY3Rpb25hcnkt
c3ltbWV0cmljLTAwMy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29w
ZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXN5bW1ldHJpYy0wMDQuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
YXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0b3ItZGljdGlvbmFyeS1z
eW1tZXRyaWMtMDA1Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvb3Bl
cmF0b3JzL29wZXJhdG9yLWRpY3Rpb25hcnktc3ltbWV0cmljLTAwNi5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21h
dGhtbC9yZWxhdGlvbnMvaHRtbDUtdHJlZS90YWJpbmRleC0wMDIuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YS1zb3VyY2UvU291cmNlQnVmZmVyLWFib3J0LXJlYWR5U3RhdGUuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1hcHBlbmRidWZmZXItcXVvdGEtZXhjZWVkZWQuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2hhbmdldHlwZS1wbGF5LWltcGxpY2l0Lmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNoYW5nZXR5cGUtcGxheS1uZWdhdGl2
ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jaGFuZ2V0eXBlLXBsYXkt
d2l0aG91dC1jb2RlY3MtcGFyYW1ldGVyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNoYW5nZXR5cGUtcGxheS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlLW1wNC1hLWJpdHJhdGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtYXVkaW8tYml0cmF0ZS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1mcmFt
ZXNpemUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5n
ZS1tcDQtYXYtdmlkZW8tYml0cmF0ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lc2l6ZS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtYXVkaW8t
Yml0cmF0ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hh
bmdlLXdlYm0tYXYtdmlkZW8tYml0cmF0ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXJhdGUuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtY29ycmVjdC1mcmFtZXMtYWZ0ZXItcmVhcHBlbmQuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29ycmVjdC1mcmFtZXMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtZ2V0dmlkZW9wbGF5YmFja3F1YWxpdHkuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1yZWR1bmRhbnQtc2Vlay5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1yZXBsYXkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVj
b3JkL01lZGlhUmVjb3JkZXItcGVlcmNvbm5lY3Rpb24uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWdldFNldHRpbmdzLmh0dHBzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxv
d3BheW1lbnRyZXF1ZXN0LXRpbWluZy5odHRwcy5zdWIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rvci1jcmFzaC5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY29uc3RydWN0b3ItdGhjcmFzaC5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BpY3R1cmUtaW4tcGljdHVyZS9sZWF2ZS1waWN0dXJlLWluLXBpY3R1
cmUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9waWN0dXJlLWluLXBpY3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLXdp
bmRvdy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BpY3R1cmUtaW4tcGljdHVyZS9yZXF1ZXN0LXBpY3R1cmUtaW4t
cGljdHVyZS10d2ljZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3Bv
aW50ZXJvdXRfcmVjZWl2ZWRfb25jZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRl
cmV2ZW50X3JlbGVhc2Vwb2ludGVyY2FwdHVyZV9pbnZhbGlkX3BvaW50ZXJpZC5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3RvdWNoLWFjdGlvbi1rZXlib2FyZC5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3RvdWNoLWFjdGlvbi1wYW4teS1j
c3NfdG91Y2guaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF90b3VjaC1h
Y3Rpb24tc3Bhbi1ub25lLXRlc3RfdG91Y2guaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3Bv
aW50ZXJldmVudF90b3VjaC1hY3Rpb24tc3ZnLW5vbmUtdGVzdF90b3VjaC5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3RvdWNoLWFjdGlvbi10YWJsZS1ub25lLXRlc3Rf
dG91Y2guaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJsb2NrL3BvaW50ZXJldmVu
dF9tb3ZlbWVudHh5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcXVpcmtzL2hhc2hsZXNzLWhleC1jb2xvci5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2svY2FsbGJhY2staWZyYW1lLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVxdWVzdGlkbGVjYWxsYmFjay9jYWxsYmFjay1zdXNwZW5kZWQuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXF1ZXN0aWRsZWNhbGxiYWNrL2NhbGxiYWNrLXRpbWVvdXQtd2hlbi1idXN5Lmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVxdWVzdGlkbGVjYWxsYmFjay9jYWxsYmFjay10aW1lb3V0Lmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVx
dWVzdGlkbGVjYWxsYmFjay9jYWxsYmFjay14aHItc3luYy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
LXRpbWluZy9uZXN0ZWQtY29udGV4dC1uYXZpZ2F0aW9ucy1lbWJlZC5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlLXRpbWluZy9uZXN0ZWQtY29udGV4dC1uYXZpZ2F0aW9ucy1pZnJhbWUuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZS10aW1pbmcvbmVzdGVkLWNvbnRleHQtbmF2aWdhdGlvbnMtb2JqZWN0Lmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL25leHRIb3BQcm90b2NvbC10YW8tcHJvdGVjdGVk
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL3Jlc291cmNlLXRpbWluZy1sZXZl
bDEuc3ViLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL3Jlc291cmNlX3RpbWluZ19idWZm
ZXJfZnVsbF9ldmVudHVhbGx5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL3NpbmdsZS1l
bnRyeS1wZXItcmVzb3VyY2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10aW1pbmcvd29ya2VyU3Rh
cnQtdGFvLXByb3RlY3RlZC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3Rz
L3VuaXQvZXhjZXB0aW9uYWwtY2FzZXMtdGltZW91dHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdC90ZXN0cy91bml0L2V4Y2VwdGlvbmFsLWNhc2VzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvdW5pdC9wcm9taXNlX3NldHVwLXRpbWVvdXQuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvdGVzdC90ZXN0cy91bml0L3NpbmdsZV90ZXN0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Vz
L3Rlc3QvdGVzdHMvdW5pdC90aHJvd2luZy1hc3NlcnRpb25zLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2UvY29tbW9uLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1hYm9ydC5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIv
Y2FjaGUtYWRkLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3Jh
Z2Uvc2VydmljZXdvcmtlci9jYWNoZS1kZWxldGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLWtleXMuaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2Nh
Y2hlLW1hdGNoLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3Jh
Z2Uvc2VydmljZXdvcmtlci9jYWNoZS1tYXRjaEFsbC5odHRwcy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY2FjaGUtcHV0Lmh0dHBzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9j
YWNoZS1zdG9yYWdlLWtleXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2Fj
aGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLXN0b3JhZ2UtbWF0Y2guaHR0cHMuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hl
LXN0b3JhZ2UuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFn
ZS93aW5kb3cvY2FjaGUtYWJvcnQuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
Y2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtYWRkLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLWRlbGV0ZS5odHRwcy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1rZXlzLmh0
dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2Nh
Y2hlLW1hdGNoLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3Jh
Z2Uvd2luZG93L2NhY2hlLW1hdGNoQWxsLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLXB1dC5odHRwcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1zdG9yYWdlLWtleXMuaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2Fj
aGUtc3RvcmFnZS1tYXRjaC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNo
ZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1zdG9yYWdlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L3NhbmRib3hlZC1pZnJhbWVzLmh0dHBzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLWFi
b3J0Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29y
a2VyL2NhY2hlLWFkZC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1z
dG9yYWdlL3dvcmtlci9jYWNoZS1kZWxldGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2FjaGUta2V5cy5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1tYXRjaC5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1t
YXRjaEFsbC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdl
L3dvcmtlci9jYWNoZS1wdXQuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2Fj
aGUtc3RvcmFnZS93b3JrZXIvY2FjaGUtc3RvcmFnZS1rZXlzLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLXN0b3JhZ2UtbWF0Y2gu
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIv
Y2FjaGUtc3RvcmFnZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9hYm91dC1ibGFuay1yZXBsYWNlbWVudC5odHRwcy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtb3JkZXIuaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJs
ZS1ldmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLXZpZGVvLWNhY2hlLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZh
cy10YWludGluZy12aWRlby5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWRpcmVjdC5odHRwcy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtYm9keS1s
b2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWZyYW1lLXJlc291cmNlLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLW1peGVk
LWNvbnRlbnQtdG8taW5zY29wZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1taXhlZC1jb250ZW50LXRvLW91dHNjb3BlLmh0dHBzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVk
aXJlY3QuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtcmVzcG9uc2UtdGFpbnQuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludGVyZmFjZS1yZXF1aXJlbWVudHMt
c3cuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50
ZXJmYWNlcy13aW5kb3cuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbG9jYWwtdXJsLWluaGVyaXQtY29udHJvbGxlci5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvc2FtZXNp
dGUtY29va2llcy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlZmVycmVyLXRvcGxldmVsLXNjcmlwdC1mZXRjaC5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1jbG9z
ZWQtd2luZG93Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3JlZ2lzdHJhdGlvbi1taW1lLXR5cGVzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zYW5kYm94ZWQtaWZy
YW1lLWZldGNoLWV2ZW50Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQt
dXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9uLWZldGNoLWV2ZW50Lmh0dHBzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1u
YXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3VwZGF0ZS1ieXRlY2hlY2suaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0
aW9uLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3ZnL2FuaW1hdGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmlt
YXRpb24tMy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VpZXZlbnRzL21vdXNlL21vdXNlZXZlbnRfbW92ZV9idXR0
b24uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy91cmwvZmFpbHVyZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25z
L3RpbWluZy1tb2RlbC9hbmltYXRpb25zL3VwZGF0aW5nLXRoZS1maW5pc2hlZC1zdGF0ZS5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWluZy1tb2RlbC90aW1lbGluZXMvdXBkYXRlLWFu
ZC1zZW5kLWV2ZW50cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWFu
YWx5c2Vybm9kZS1pbnRlcmZhY2UvdGVzdC1hbmFseXNlci1taW5pbXVtLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYW5hbHlzZXJub2RlLWludGVyZmFjZS90ZXN0LWFu
YWx5c2VyLW91dHB1dC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9uZWNo
YW5nZS1sb25nLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdl
LWxvbmcuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1vbnRvbmVjaGFu
Z2UuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91
bnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VD
b25uZWN0aW9uU3RhdGUtY2FuZGlkYXRlLXBhaXIuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1pbmcuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNoYW5uZWwuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLWRpc2Nvbm5lY3RlZC5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3Rh
dGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5
LWdldFN0YXRzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBl
cmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFy
ZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5l
Z290aWF0aW9uLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJl
bW90ZS10cmFjay1tdXRlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXRyYWNrcy5odHRwcy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFjay1zdGF0cy5odHRwcy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFuc2NlaXZlcnMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwUmVjZWl2ZXItZ2V0U3luY2hyb25pemF0aW9uU291cmNlcy5odHRwcy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2UuaHR0cHMu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItdHJhbnNwb3J0Lmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xl
Z2FjeS9SVENQZWVyQ29ubmVjdGlvbi1hZGRTdHJlYW0uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL2ljZS1zdGF0ZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9p
Y2UtdWZyYWdwd2QuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNh
c3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxj
YXN0L3ZwOC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvYmluYXJ5LzAwMi5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnNvY2tldHMvYmluYXJ5LzAwNC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29u
c3RydWN0b3IvMDEzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9jb25zdHJ1Y3Rvci8wMTQuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2Nvb2tpZXMvMDA1Lmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0
cy9jb29raWVzLzAwNy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvZXh0ZW5kZWQtcGF5bG9hZC1s
ZW5ndGguaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2ludGVyZmFjZXMvV2ViU29ja2V0L2J1ZmZl
cmVkQW1vdW50L2J1ZmZlcmVkQW1vdW50LWxhcmdlLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9p
bnRlcmZhY2VzL1dlYlNvY2tldC9jbG9zZS9jbG9zZS1jb25uZWN0aW5nLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9ldmVudHMvMDE2Lmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9zZW5kLzAwNS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnNvY2tldHMvaW50ZXJmYWNlcy9XZWJTb2NrZXQvc2VuZC8wMTAuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJz
b2NrZXRzL2tlZXBpbmctY29ubmVjdGlvbi1vcGVuLzAwMS5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tl
dHMvb3BlbmluZy1oYW5kc2hha2UvMDAyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9vcGVuaW5n
LWhhbmRzaGFrZS8wMDMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL3VubG9hZC1hLWRvY3VtZW50
LzAwMi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvdW5sb2FkLWEtZG9jdW1lbnQvMDA0Lmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2Vic29ja2V0cy91bmxvYWQtYS1kb2N1bWVudC8wMDUuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJzdG9yYWdlL2V2ZW50X2Jhc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic3RvcmFnZS9ldmVudF9ib2R5
X2F0dHJpYnV0ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnN0b3JhZ2UvZXZlbnRfY2FzZV9zZW5zaXRpdmUu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJzdG9yYWdlL2V2ZW50X3NldGF0dHJpYnV0ZS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvV29ya2VyX2Nyb3NzX29yaWdpbl9zZWN1cml0eV9lcnIuaHRtIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvY29uc3RydWN0b3JzL1NoYXJlZFdvcmtlci9zYW1lLW9yaWdpbi5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJVdGlscy9pbXBvcnRTY3JpcHRzLzAwNi5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtY3JlZGVu
dGlhbHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvc2hhcmVkLXdvcmtlci1pbXBvcnQt
Y3NwLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL3NoYXJlZC13b3JrZXItaW1wb3J0LXJl
ZmVycmVyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL3NoYXJlZC13b3JrZXItb3B0aW9u
cy1jcmVkZW50aWFscy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvc2VtYW50aWNzL211bHRpcGxlLXdv
cmtlcnMvMDAzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3MvbXVsdGlwbGUtd29ya2Vy
cy8wMDQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9tdWx0aXBsZS13b3JrZXJzLzAw
Ny5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2FuaW1hdGlvbi13b3JrbGV0LWNzcC5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtsZXRzL2FuaW1hdGlvbi13b3JrbGV0LXJlZmVycmVyLmh0dHBzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xl
dHMvbGF5b3V0LXdvcmtsZXQtY3NwLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0
LXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9wYWludC13b3Jr
bGV0LWNzcC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdvcmtsZXQtcmVmZXJy
ZXIuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3ZlcnJpZGVtaW1ldHlwZS1ibG9iLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMveGhyL3Byb2dyZXNzLWV2ZW50cy1yZXNwb25zZS1kYXRhLWd6aXAuaHRtIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3hoci9yZXNwb25zZS1kYXRhLXByb2dyZXNzLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvc2VuZC1yZWRpcmVj
dC1ib2d1cy5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3NldHJlcXVlc3RoZWFkZXItY29udGVudC10eXBlLmh0
bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMveGhyL3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3hoci94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlcy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci94
bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlc2V4cGlyZXMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIv
eG1saHR0cHJlcXVlc3QtdGltZW91dC1yZXVzZWQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJl
cXVlc3QtdGltZW91dC1zaW1wbGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC1zeW5jb25tYWluLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
dHdpY2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJv
cnRlZC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3hoci94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVy
cmlkZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3Zl
cnJpZGVzZXhwaXJlcy5odG1sIjogWworICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qta2VlcGFsaXZlLXF1b3RhLmh0bWwiOiBbCiAg
ICAgICAgICJzbG93IgogICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMveGhyL3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sIjogWworICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9u
ZXR3b3JrLXBhcnRpdGlvbi1rZXkuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGlt
ZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwiOiBbCisgICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcHJlbG9hZC5odHRwcy5zdWIuaHRtbCI6IFsK
ICAgICAgICAgInNsb3ciCiAgICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbCI6IFsKKyAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0
ZS9wcmVzZXJ2ZS1mcmFnbWVudC5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdCiB9Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430833</attachid>
            <date>2021-06-08 06:00:13 -0700</date>
            <delta_ts>2021-07-27 13:41:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226746-20210608140008.patch</filename>
            <type>text/plain</type>
            <size>7794575</size>
            <attacher name="Sam Sneddon [:gsnedders]">gsnedders</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTc4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWNmMDYwYTFmMzljMjc3NzBjZDI0YmMxNDQ4ZDQ2OWQw
MGI5MTk1YS4uZTAyMTI1ZmE1Njk4OTk4Y2M5ODI0MDNmMDdmNDFiZmZkYmNlMzhlNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIxLTA2LTA3ICBTYW0gU25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgVXBkYXRlIHdwdC90b29scyB0byBsYXN0IFB5dGhvbiAyIHN1cHBvcnRpbmcgdmVyc2lv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NzQ2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZl
ci5weToKKyAgICAgICAgKFdlYlBsYXRmb3JtVGVzdFNlcnZlci5fX2luaXRfXyk6IFBhc3MgLS1w
eTIgd2hlbiBzdGFydGluZyB0aGUgc2VydmVyLCBsZXQgV1BUIGhhbmRsZSB0aGUgbG9naWMKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2Rvd25sb2FkZXIucHk6CisgICAgICAg
IChUZXN0RG93bmxvYWRlci51cGRhdGVfaW1wb3J0X2V4cGVjdGF0aW9ucyk6IE1hdGNoIFB5dGhv
biAzIGJlaGF2aW91ciB3aGVuIHNlcmlhbGlzaW5nIEpTT04KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5OgorICAgICAgICAoVGVzdEltcG9ydGVyLmltcG9y
dF90ZXN0cyk6IEhhbmRsZSB0aGUgY2FzZSB3aGVuIGEgcGF0aCB0aGF0IHByZXZpb3VzbHkgY29u
dGFpbmVkIGEgZmlsZSBpcyBub3cgYSBkaXJlY3RvcnkKKwogMjAyMS0wNi0wNyAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVcHN0cmVhbSBXZWJLaXQg
c3VwcG9ydCBmb3IgTGl2ZSBUZXh0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rf
c2VydmVyLnB5CmluZGV4IDhjNjc4OWRkMWQ4Mzg3Mjk2ZGNlYzkzNmYxMmRlYTQ3ZGFhNDhjZTYu
LjMzM2U0NjA3M2NiMzlmZGNiNDBiM2M2MjEzZDNmOTRiZTliNTYzZDYgMTAwNzU1Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rl
c3Rfc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Nl
cnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CkBAIC05NSwxMyArOTUsOCBAQCBjbGFz
cyBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFzZSk6
CiAgICAgICAgIHNlbGYuX2RvY19yb290X3BhdGggPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2Vs
Zi5fbGF5b3V0X3Jvb3QsIHNlbGYuX2RvY19yb290KQogICAgICAgICBzZWxmLl9jb25maWdfZmls
ZW5hbWUgPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fZG9jX3Jvb3RfcGF0aCwgImNvbmZp
Zy5qc29uIikKIAotICAgICAgICAjIEZJWE1FIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIyMjcwMwot
ICAgICAgICBweXRob25faW50ZXJwID0gc3lzLmV4ZWN1dGFibGUKLSAgICAgICAgaWYgc3lzLnZl
cnNpb25faW5mbyA+ICgzLCAwKToKLSAgICAgICAgICAgIHB5dGhvbl9pbnRlcnAgPSAncHl0aG9u
MicKLQogICAgICAgICB3cHRfZmlsZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nf
cm9vdF9wYXRoLCAid3B0LnB5IikKLSAgICAgICAgc2VsZi5fc3RhcnRfY21kID0gW3B5dGhvbl9p
bnRlcnAsIHdwdF9maWxlLCAic2VydmUiLCAiLS1jb25maWciLCBzZWxmLl9jb25maWdfZmlsZW5h
bWVdCisgICAgICAgIHNlbGYuX3N0YXJ0X2NtZCA9IFtzeXMuZXhlY3V0YWJsZSwgd3B0X2ZpbGUs
ICItLXB5MiIsICJzZXJ2ZSIsICItLWNvbmZpZyIsIHNlbGYuX2NvbmZpZ19maWxlbmFtZV0KIAog
ICAgICAgICBzZWxmLl9tYXBwaW5ncyA9IFtdCiAgICAgICAgIGNvbmZpZyA9IHdwdF9jb25maWdf
anNvbihwb3J0X29iaikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5weQppbmRleCAwNDYxZjQ4
MzY5ZGE0YWY3ZWE4MGFiNTM5NDk4ODFmOGY5MTI2Njc4Li4xMTNmY2EzNmIwY2IxZjQyYmFjYWFj
YjA1N2U4ZjQ3OTBmNDUyZjc5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5CkBAIC0x
MjMsNyArMTIzLDcgQEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGlnaHR0cGQpOgog
ICAgICAgICAgICAgcHl0aG9uX2ludGVycCA9ICdweXRob24yJwogCiAgICAgICAgIHdwdF90b29s
c19iYXNlID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2xheW91dF90ZXN0cywgImltcG9y
dGVkIiwgInczYyIsICJ3ZWItcGxhdGZvcm0tdGVzdHMiLCAidG9vbHMiKQotICAgICAgICBweXdl
YnNvY2tldF9iYXNlID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHdwdF90b29sc19iYXNlLCAicHl3
ZWJzb2NrZXQiKQorICAgICAgICBweXdlYnNvY2tldF9iYXNlID0gc2VsZi5fZmlsZXN5c3RlbS5q
b2luKHdwdF90b29sc19iYXNlLCAidGhpcmRfcGFydHkiLCAicHl3ZWJzb2NrZXQzIikKICAgICAg
ICAgcHl3ZWJzb2NrZXRfZGVwcyA9IFtzZWxmLl9maWxlc3lzdGVtLmpvaW4od3B0X3Rvb2xzX2Jh
c2UsICJ0aGlyZF9wYXJ0eSIsICJzaXgiKV0KICAgICAgICAgcHl3ZWJzb2NrZXRfc2NyaXB0ID0g
c2VsZi5fZmlsZXN5c3RlbS5qb2luKHB5d2Vic29ja2V0X2Jhc2UsICdtb2RfcHl3ZWJzb2NrZXQn
LCAnc3RhbmRhbG9uZS5weScpCiAgICAgICAgIHN0YXJ0X2NtZCA9IFsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfZG93bmxvYWRlci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdzNjL3Rlc3RfZG93bmxvYWRlci5weQppbmRleCA0M2JlMzJmYWYwMTUyMWNl
Zjg2N2Y0YTQyNjhhNjlkNWQzZmQxNDc1Li4wNDc5YTE2ZGM5Yjc1M2UwOWQ1NzYwNjljZWMzNGUx
NTU3YTA5NDExIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2Rv
d25sb2FkZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9h
ZGVyLnB5CkBAIC0xMDgsNyArMTA4LDcgQEAgY2xhc3MgVGVzdERvd25sb2FkZXIob2JqZWN0KToK
ICAgICAgICAgaW1wb3J0X2xpbmVzID0ganNvbi5sb2FkcyhzZWxmLl9maWxlc3lzdGVtLnJlYWRf
dGV4dF9maWxlKHNlbGYuaW1wb3J0X2V4cGVjdGF0aW9uc19wYXRoKSkKICAgICAgICAgZm9yIHBh
dGggaW4gdGVzdF9wYXRoczoKICAgICAgICAgICAgIGltcG9ydF9saW5lc1twYXRoXSA9ICdpbXBv
cnQnCi0gICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKHNlbGYuaW1wb3J0
X2V4cGVjdGF0aW9uc19wYXRoLCBqc29uLmR1bXBzKGltcG9ydF9saW5lcywgc29ydF9rZXlzPVRy
dWUsIGluZGVudD00KSkKKyAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUo
c2VsZi5pbXBvcnRfZXhwZWN0YXRpb25zX3BhdGgsIGpzb24uZHVtcHMoaW1wb3J0X2xpbmVzLCBz
b3J0X2tleXM9VHJ1ZSwgaW5kZW50PTQsIHNlcGFyYXRvcnM9KCcsJywgJzogJykpKQogCiAgICAg
ZGVmIF9hZGRfdGVzdF9zdWl0ZV9wYXRocyhzZWxmLCB0ZXN0X3BhdGhzLCBkaXJlY3RvcnksIHdl
YmtpdF9wYXRoKToKICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi5fZmlsZXN5c3RlbS5saXN0ZGly
KGRpcmVjdG9yeSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0
X2ltcG9ydGVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5w
eQppbmRleCA2MjhkYzY4YzE3MTU2Nzk3MTNlZTY3Mzg3NDRiMmE0NTAxYzZlZWUxLi42ZWY4MDJl
YjI4ZjM2MzJiNjk0NGQ2MGNkNTEyODYzYTYyNTk1NDFmIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHkKQEAgLTQ5NiwxNSArNDk2LDI3IEBAIGNsYXNzIFRl
c3RJbXBvcnRlcihvYmplY3QpOgogCiAgICAgICAgICAgICAgICAgaWYgbm90KHNlbGYuZmlsZXN5
c3RlbS5leGlzdHMoc2VsZi5maWxlc3lzdGVtLmRpcm5hbWUobmV3X2ZpbGVwYXRoKSkpOgogICAg
ICAgICAgICAgICAgICAgICBzZWxmLmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3Rvcnkoc2Vs
Zi5maWxlc3lzdGVtLmRpcm5hbWUobmV3X2ZpbGVwYXRoKSkKLQotICAgICAgICAgICAgICAgIGlm
IG5vdCBzZWxmLm9wdGlvbnMub3ZlcndyaXRlIGFuZCBzZWxmLmZpbGVzeXN0ZW0uZXhpc3RzKG5l
d19maWxlcGF0aCk6Ci0gICAgICAgICAgICAgICAgICAgIF9sb2cuaW5mbygnU2tpcHBpbmcgaW1w
b3J0IG9mIGV4aXN0aW5nIGZpbGUgJyArIG5ld19maWxlcGF0aCkKLSAgICAgICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBNYXliZSBkb2luZyBhIGZpbGUgZGlm
ZiBpcyBpbiBvcmRlciBoZXJlIGZvciBleGlzdGluZyBmaWxlcz8KLSAgICAgICAgICAgICAgICAg
ICAgIyBJbiBvdGhlciB3b3JkcywgdGhlcmUncyBubyBzZW5zZSBpbiBvdmVyd3JpdGluZyBpZGVu
dGljYWwgZmlsZXMsIGJ1dAotICAgICAgICAgICAgICAgICAgICAjIHRoZXJlJ3Mgbm8gaGFybSBp
biBjb3B5aW5nIHRoZSBpZGVudGljYWwgdGhpbmcuCi0gICAgICAgICAgICAgICAgICAgIF9sb2cu
aW5mbygnSW1wb3J0aW5nOiAlcycsIG9yaWdfZmlsZXBhdGgpCi0gICAgICAgICAgICAgICAgICAg
IF9sb2cuaW5mbygnICAgICAgIEFzOiAlcycsIG5ld19maWxlcGF0aCkKKyAgICAgICAgICAgICAg
ICBlbGlmIG5vdCBzZWxmLmZpbGVzeXN0ZW0uaXNkaXIoc2VsZi5maWxlc3lzdGVtLmRpcm5hbWUo
bmV3X2ZpbGVwYXRoKSk6CisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYub3B0aW9ucy5vdmVy
d3JpdGU6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZpbGVzeXN0ZW0ucmVtb3ZlKHNl
bGYuZmlsZXN5c3RlbS5kaXJuYW1lKG5ld19maWxlcGF0aCkpCisgICAgICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBfbG9nLmluZm8oJ1NraXBwaW5nIGltcG9y
dCBhcyBwYXJlbnQgZGlyZWN0b3J5IGlzblwndCBhIGRpcmVjdG9yeTogJyArIG5ld19maWxlcGF0
aCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICBp
ZiBzZWxmLmZpbGVzeXN0ZW0uZXhpc3RzKG5ld19maWxlcGF0aCk6CisgICAgICAgICAgICAgICAg
ICAgIGlmIG5vdCBzZWxmLm9wdGlvbnMub3ZlcndyaXRlOgorICAgICAgICAgICAgICAgICAgICAg
ICAgX2xvZy5pbmZvKCdTa2lwcGluZyBpbXBvcnQgb2YgZXhpc3RpbmcgZmlsZSAnICsgbmV3X2Zp
bGVwYXRoKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAg
ICAgICAgZWxpZiBzZWxmLmZpbGVzeXN0ZW0uaXNkaXIobmV3X2ZpbGVwYXRoKToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuZmlsZXN5c3RlbS5ybXRyZWUobmV3X2ZpbGVwYXRoKQorICAg
ICAgICAgICAgICAgICAgICBlbGlmIG5vdCBzZWxmLmZpbGVzeXN0ZW0uaXNmaWxlKG5ld19maWxl
cGF0aCk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZpbGVzeXN0ZW0ucmVtb3ZlKG5l
d19maWxlcGF0aCkKKworICAgICAgICAgICAgICAgICMgRklYTUU6IE1heWJlIGRvaW5nIGEgZmls
ZSBkaWZmIGlzIGluIG9yZGVyIGhlcmUgZm9yIGV4aXN0aW5nIGZpbGVzPworICAgICAgICAgICAg
ICAgICMgSW4gb3RoZXIgd29yZHMsIHRoZXJlJ3Mgbm8gc2Vuc2UgaW4gb3ZlcndyaXRpbmcgaWRl
bnRpY2FsIGZpbGVzLCBidXQKKyAgICAgICAgICAgICAgICAjIHRoZXJlJ3Mgbm8gaGFybSBpbiBj
b3B5aW5nIHRoZSBpZGVudGljYWwgdGhpbmcuCisgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCdJ
bXBvcnRpbmc6ICVzJywgb3JpZ19maWxlcGF0aCkKKyAgICAgICAgICAgICAgICBfbG9nLmluZm8o
JyAgICAgICBBczogJXMnLCBuZXdfZmlsZXBhdGgpCiAKICAgICAgICAgICAgICAgICAjIE9ubHkg
aHRtbCwgeG1sLCBvciBjc3Mgc2hvdWxkIGJlIGNvbnZlcnRlZAogICAgICAgICAgICAgICAgICMg
RklYTUU6IEV2ZW50dWFsbHksIHNvIHNob3VsZCBqcyB3aGVuIHN1cHBvcnQgaXMgYWRkZWQgZm9y
IHRoaXMgdHlwZSBvZiBjb252ZXJzaW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzljNGE1ODE5M2QxNDc5YjlmZTZmZTQx
NDQ4MzE3Y2RlNTRmNjllMy4uMDg3NTM5YTRlNGUxN2YwYzFhNGJhNGUwOWE5YTI2NWNlOGVmOWM4
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA2LTA3ICBTYW0gU25lZGRvbiAgPGdzbmVk
ZGVyc0BhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIHdwdC90b29scyB0byBsYXN0IFB5dGhv
biAyIHN1cHBvcnRpbmcgdmVyc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI2NzQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVpbXBvcnQgRmV0Y2gsIHVwZGF0ZSBleHBlY3RhdGlvbnMgZm9yIHRo
aXMuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmFueS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiB0ZXN0cy1v
cHRpb25zLmpzb246CisKIDIwMjEtMDYtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBzdHJlYW0gV2ViS2l0IHN1cHBvcnQgZm9yIExpdmUgVGV4
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYmIyY2RhN2NiNTEzZmE2N2IwMTgz
MDE3MDYzMjg2YTk4ZDQ5ZWU0ZC4uZGQ3NGI4M2Y5MzYwZTY1YTY0NmZhNzljODJiZDE4YTAyMDYw
YWJlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MjEtMDYtMDcgIFNhbSBTbmVkZG9uICA8Z3NuZWRkZXJzQGFwcGxlLmNvbT4KKworICAgICAgICBV
cGRhdGUgd3B0L3Rvb2xzIHRvIGxhc3QgUHl0aG9uIDIgc3VwcG9ydGluZyB2ZXJzaW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY3NDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsbHks
IGR1ZSB0byBjaGFuZ2VzIGluIHRoZSB3cHRzZXJ2ZSBBUEksIHJlaW1wb3J0IHdwdC9mZXRjaAor
CisgICAgICAgICogcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXM6IFVwZGF0ZSByZXZpc2lvbiB0
byBmNTQ3MjRhYWZhLCBtb3ZlIGFsbCBwYXRocyB0byBpbXBvcnQtZXhwZWN0YXRpb25zLmpzb24K
KyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAgICBN
b3ZlcyBmcm9tIGFib3ZlOyBhZGQgYSBidW5jaCBtb3JlIGFzICJza2lwIiB0aGF0IHdlIGRvbid0
IGltcG9ydDsgcmVkdWNlIGR1cGxpY2F0ZXMuCisgICAgICAgICogcmVzb3VyY2VzL3Jlc291cmNl
LWZpbGVzLmpzb246IGZyb20gZmV0Y2ggcmVpbXBvcnQKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvKjogcmVpbXBvcnQKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvKjogcmVpbXBvcnQKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd3B0OiByZWltcG9y
dAorCiAyMDIxLTA2LTA3ICBJbWFub2wgRmVybmFuZGV6ICA8aWZlcm5hbmRlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVzZSAzRCBwb2ludHMgdG8gbWFwIHRoZSBXZWJYUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZSBib3VuZHMgdHJhbnNmb3JtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiYzcyZWMzZTNk
NGFhYjhkYzdlY2ZiMzc4MGI5ZGUyMzFkY2NjMmFmLi5lMGY0MDgyYjhlYTZiYjc4M2Q0ZjU2ODU1
YWQ5ZGMzYWNkODk0ZjU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk1NCw3ICs5NTQsNiBAQCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvYmFzaWMtYXV0
aC1jYWNoZS10ZXN0Lmh0bWwgWyBJbQogIyBGZXRjaCBmZWF0dXJlcyB0aGF0IGFyZSBub3QgaW1w
bGVtZW50ZWQuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcmIgWyBT
a2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvIFsg
U2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YSBbIFNraXAgXQogCiAjIFRoZXNlIGZldGNoIHRlc3RzIHRpbWUgb3V0CiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uL2ZldGNoLWRl
c3RpbmF0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KQEAgLTE0MDMsOCArMTQwMiw2IEBAIHdlYmtp
dC5vcmcvYi8xNjg0NDggaHR0cC93cHQvcmVzb3VyY2UtdGltaW5nL3J0LXNoYXJlZC1yZXNvdXJj
ZS1pbi13b3JrZXJzLmh0bWwKIAogd2Via2l0Lm9yZy9iLzE2MTMxMiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1saW5r
LWVsZW1lbnQvZG9jdW1lbnQtd2l0aG91dC1icm93c2luZy1jb250ZXh0Lmh0bWwgWyBGYWlsdXJl
IFBhc3MgXQogCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2Fj
aGUvcGFydGlhbC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLQogIyBOZXcgVzNDIHJlZiB0ZXN0cyB0
aGF0IGFyZSBmYWlsaW5nLgogd2Via2l0Lm9yZy9iLzE0ODg1NiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLXZpZGVvLWVs
ZW1lbnQvdmlkZW9faW5pdGlhbGx5X3BhdXNlZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvc3ZnL2ludHJpbnNpY3NpemUvaW50cmluc2ljc2l6ZS1zdmctaW1hZ2UudGVudGF0aXZl
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvVGVzdFJlcG9zaXRvcmllcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9yZXNvdXJjZXMvVGVzdFJlcG9zaXRvcmllcwppbmRleCA5YjNmODUzYzBkMTg4ZmE2MDEz
MWE2YzIyZTIzYzg2Y2VhZDU3NTY1Li42MzFlMzA1NzgzZmRhNGNlZWY0MDgyNmY1MGYzNTU3MTBh
YjQ3NjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1Rl
c3RSZXBvc2l0b3JpZXMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9U
ZXN0UmVwb3NpdG9yaWVzCkBAIC0yLDIyICsyLDkgQEAKICAgICB7CiAgICAgICAgICJuYW1lIjog
IndlYi1wbGF0Zm9ybS10ZXN0cyIsCiAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKLSAgICAgICAgInJldmlzaW9uIjogIjAzMTNk
OWYiLAotICAgICAgICAicGF0aHNfdG9fc2tpcCI6IFsKLSAgICAgICAgICAgICJjb25mb3JtYW5j
ZS1jaGVja2VycyIsCi0gICAgICAgICAgICAiZG9jcyIsCi0gICAgICAgICAgICAib2xkLXRlc3Rz
IiwKLSAgICAgICAgICAgICJyZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIiwKLSAgICAgICAgICAg
ICJyZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiCi0gICAgICAgIF0sCi0gICAgICAgICJw
YXRoc190b19pbXBvcnQiOiBbCi0gICAgICAgICAgICAiY29tbW9uIiwKLSAgICAgICAgICAgICJj
b25maWcuZGVmYXVsdC5qc29uIiwKLSAgICAgICAgICAgICJmb250cyIsCi0gICAgICAgICAgICAi
aW1hZ2VzIiwKLSAgICAgICAgICAgICJyZXNvdXJjZXMiLAotICAgICAgICAgICAgInNlcnZlLnB5
IgotICAgICAgICBdLAorICAgICAgICAicmV2aXNpb24iOiAiZjU0NzI0YWFmYSIsCisgICAgICAg
ICJwYXRoc190b19za2lwIjogW10sCisgICAgICAgICJwYXRoc190b19pbXBvcnQiOiBbXSwKICAg
ICAgICAgImltcG9ydF9vcHRpb25zIjogWyJnZW5lcmF0ZV9pbml0X3B5Il0KICAgICB9CiBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBl
Y3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0
LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDdkN2QyM2MxNzczOTkyYTk1NzBhYTYwMmEzMTk0ZTUw
N2RkZjg2NGQuLjY5MjQyNTVlMWY4MjZmN2MyNmMyOTg0MzkwNGI0NjMwNGJhMzc4ZWQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0
aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0
LWV4cGVjdGF0aW9ucy5qc29uCkBAIC0xLDQ1MSArMSw0NTAgQEAKIHsKLSAgICAiTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L3RoZS1pbWctZWxlbWVudC8iOiAiaW1wb3J0IiwgCi0gICAgImFwbmciOiAiaW1w
b3J0IiwgCi0gICAgImNzcy9jc3MtYW5pbWF0aW9ucyI6ICJpbXBvcnQiLCAKLSAgICAiY3NzL2Nz
cy1ib3giOiAiaW1wb3J0IiwgCi0gICAgImNzcy9jc3MtY29sb3IiOiAiaW1wb3J0IiwgCi0gICAg
ImNzcy9jc3MtZmxleGJveCI6ICJpbXBvcnQiLCAKLSAgICAiY3NzL2Nzcy1tYXNraW5nL2NsaXAt
cGF0aC8iOiAiaW1wb3J0IiwgCi0gICAgImNzcy9jc3MtbWFza2luZy9jbGlwLXBhdGgvY2xpcC1w
YXRoLXdpdGgtem9vIjogImltcG9ydCIsIAotICAgICJjc3MvY3NzLW1hc2tpbmcvY2xpcC1wYXRo
L2NsaXAtcGF0aC13aXRoLXpvb20qIjogImltcG9ydCIsIAotICAgICJjc3MvY3NzLW1hc2tpbmcv
Y2xpcC1wYXRoL2NsaXAtcGF0aC13aXRoLXpvb20tKiI6ICJpbXBvcnQiLCAKLSAgICAiY3NzL2Nz
cy1tdWx0aWNvbCI6ICJpbXBvcnQiLCAKLSAgICAiY3NzL2Nzcy1wb3NpdGlvbiI6ICJpbXBvcnQi
LCAKLSAgICAiY3NzL2Nzcy1zaGFwZXMiOiAiaW1wb3J0IiwgCi0gICAgImNzcy9jc3Mtc2l6aW5n
IjogImltcG9ydCIsIAotICAgICJjc3MvY3NzLXN5bnRheCI6ICJpbXBvcnQiLCAKLSAgICAiY3Nz
L2Nzcy10ZXh0LWRlY29yIjogImltcG9ydCIsIAotICAgICJjc3MvY3NzLXZhbHVlcyI6ICJpbXBv
cnQiLCAKLSAgICAiY3NzL2dlb21ldHJ5IjogImltcG9ydCIsIAotICAgICJjc3Mvc2VsZWN0b3Jz
IjogImltcG9ydCIsIAotICAgICJjc3Mvc3VwcG9ydCI6ICJpbXBvcnQiLCAKLSAgICAiY3VzdG9t
LWVsZW1lbnRzIjogImltcG9ydCIsIAotICAgICJkZW5zaXR5LXNpemUtY29ycmVjdGlvbiI6ICJp
bXBvcnQiLCAKLSAgICAiZW5jcnlwdGVkLW1lZGlhIjogImltcG9ydCIsIAotICAgICJwYWludC10
aW1pbmcvIjogImltcG9ydCIsIAotICAgICJwYWludC10aW1pbmcvZmNwLW9ubHkiOiAiaW1wb3J0
IiwgCi0gICAgInBhaW50LXRpbWluZy9yZXNvdXJjZXMiOiAiaW1wb3J0IiwgCi0gICAgInBhaW50
LXRpbWluZy9yZXNvdXJjZXMvIjogImltcG9ydCIsIAotICAgICJyZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiOiAiaW1wb3J0IiwgCi0gICAgInNoYWRvdy1kb20iOiAiaW1wb3J0IiwgCi0gICAgInN0
cmVhbXMiOiAiaW1wb3J0IiwgCi0gICAgInRvb2xzIjogImltcG9ydCIsIAotICAgICJ3ZWItYW5p
bWF0aW9ucyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL0RPTS1wYXJzaW5n
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL0RPTUV2ZW50cyI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJIjogImltcG9ydCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvV2ViQ3J5cHRvQVBJIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
V2ViSURMIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML2ludmFs
aWQiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURML3ZhbGlkIjogInNr
aXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0IjogImltcG9ydCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtYWZ0ZXItc3Rv
cC5odG0iOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qv
ZXZlbnQtZXJyb3Itb3JkZXIuc3ViLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3QvZXZlbnQtdGltZW91dC1vcmRlci5odG0iOiAic2tpcCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvcHJlc2VydmUtdWEtaGVhZGVy
LW9uLXJlZGlyZWN0Lmh0bSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9zZW5kLWFmdGVyLXNldHRpbmctZG9jdW1lbnQtZG9tYWluLmh0bSI6ICJza2lw
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWF1dGhlbnRp
Y2F0aW9uLWJhc2ljLWNvcnMtbm90LWVuYWJsZWQuaHRtIjogInNraXAiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtYXV0aGVudGljYXRpb24tYmFzaWMtc2V0
cmVxdWVzdGhlYWRlci1leGlzdGluZy1zZXNzaW9uLmh0bSI6ICJza2lwIiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9hY2NlbGVyb21ldGVyIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2FtYmllbnQtbGlnaHQiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
YW5pbWF0aW9uLXRpbWluZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hbm5v
dGF0aW9uLW1vZGVsIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Fubm90YXRp
b24tcHJvdG9jb2wiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYW5ub3RhdGlv
bi12b2NhYiI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hcG5nIjogInNraXAi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2FwcC11cmkiOiAic2tpcCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvYXNzdW1wdGlvbnMiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvYXVkaW8tb3V0cHV0IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
YXV4Y2xpY2siOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1m
ZXRjaCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JhdHRlcnktc3RhdHVz
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbiI6ICJpbXBvcnQiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JsdWV0b290aCI6ICJza2lwIiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9icm93c2VyLXBheW1lbnQtYXBpIjogInNraXAiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2NsZWFyLXNpdGUtZGF0YSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9jbGlwYm9hcmQiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY2xp
cGJvYXJkLWFwaXMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb21tb24i
OiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb21wYXQiOiAiaW1wb3J0Iiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb25zb2xlIjogImltcG9ydCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kiOiAiaW1wb3J0IiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9jb29raWVzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvY29va2llcy9zZWN1cmUiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9jb3JlLWFhbSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb3JzIjogImlt
cG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50Ijog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzIjogInNraXAiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy1iYWNrZ3JvdW5kcyI6ICJza2lwIiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MtZm9udC1kaXNwbGF5IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy1mb250LWxvYWRpbmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzLWZvbnRzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy1w
YWludC1hcGkiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzLXNjb3Bpbmci
OiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzLXNjcm9sbC1hbmNob3Jpbmci
OiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzLXRpbWluZyI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MtdHlwZWQtb20iOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzLXZhbHVlcyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvV09GRjIiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWFsaWduIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1hbmltYXRpb25zIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1hbmltYXRpb25zLyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtYmFja2dyb3VuZHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNhc2NhZGUiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250ZW50
IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb3VudGVyLXN0
eWxlcyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZGlzcGxh
eSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZWFzaW5nIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mbGV4Ym94IjogImlt
cG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250LWxvYWRpbmciOiAi
aW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnRzIjogImltcG9y
dCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250cy9tYXRoLXNjcmlwdC1s
ZXZlbC1hbmQtbWF0aC1zdHlsZS8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWdyaWQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWdyaWQvYWJzcG9zIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1ncmlkL2FsaWdubWVudC8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uLyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWl0ZW1zLyI6ICJpbXBvcnQiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9sYXlvdXQtYWxnb3JpdGhtIjogImltcG9y
dCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2xheW91dC1hbGdvcml0
aG0vIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3Bh
cnNpbmcvIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1pbWFn
ZXMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWxpc3RzIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1saXN0cy9wYXJzaW5n
IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1sb2dpY2FsIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbCI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtb3ZlcmZsb3ciOiAiaW1w
b3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLW92ZXJzY3JvbGwtYmVoYXZp
b3IiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXByb3BlcnRp
ZXMtdmFsdWVzLWFwaSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtcHNldWRvIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y29waW5nIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3Jv
bGwtc25hcCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hh
ZG93LXBhcnRzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
aGFwZXMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYXBl
cy90ZXN0LXBsYW4vaW5kZXguaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNpemluZy9hc3BlY3QtcmF0aW8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXRleHQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy11aSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdmFyaWFibGVzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy13aWxsLWNoYW5nZSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtd3JpdGluZy1tb2RlcyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3LyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9nZW9tZXRy
eS8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbWVkaWFxdWVyaWVz
IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3JlZmVyZW5jZSI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9yZXNvdXJjZXMiOiAiaW1wb3J0
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2Nyb2xsLXNuYXAiOiAiaW1wb3J0Iiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzIjogImltcG9ydCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3N1cHBvcnQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvdjAiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvZG9jcyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbSI6
ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMiOiAiaW1wb3J0
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZyI6ICJpbXBv
cnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVF
bGVtZW50LW5hbWVzcGFjZS10ZXN0cy9lbXB0eS5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVFbGVtZW50LW5hbWVzcGFjZS10
ZXN0cy9lbXB0eS5zdmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzL2VtcHR5LnhodG1sIjog
InNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVh
dGVFbGVtZW50LW5hbWVzcGFjZS10ZXN0cy9lbXB0eS54bWwiOiAic2tpcCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVj
dGlvbi54aHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMv
RG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUueGh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50LW51bGwtc3ZnLnN2
ZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1j
aGlsZEVsZW1lbnQtbnVsbC5zdmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50LW51bGwueGh0bWwiOiAic2tpcCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQt
ZHluYW1pYy1hZGQtc3ZnLnN2ZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvRWxlbWVudC1jaGlsZEVsZW1lbnRDb3VudC1keW5hbWljLWFkZC5zdmciOiAic2tp
cCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVt
ZW50Q291bnQtZHluYW1pYy1yZW1vdmUtc3ZnLnN2ZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1jaGlsZEVsZW1lbnRDb3VudC1keW5hbWljLXJl
bW92ZS5zdmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0Vs
ZW1lbnQtY2hpbGRFbGVtZW50Q291bnQtZHluYW1pYy1yZW1vdmUueGh0bWwiOiAic2tpcCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291
bnQtbm9jaGlsZC1zdmcuc3ZnIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9FbGVtZW50LWNoaWxkRWxlbWVudENvdW50LW5vY2hpbGQuc3ZnIjogInNraXAiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWNoaWxkRWxlbWVudENv
dW50LXN2Zy5zdmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVz
L0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQuc3ZnIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWNoaWxkRWxlbWVudENvdW50LnhodG1sIjogInNr
aXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWZpcnN0RWxl
bWVudENoaWxkLWVudGl0eS5zdmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL0VsZW1lbnQtZmlyc3RFbGVtZW50Q2hpbGQtZW50aXR5LnhodG1sIjogInNraXAi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWZpcnN0RWxlbWVu
dENoaWxkLW5hbWVzcGFjZS1zdmcuc3ZnIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9FbGVtZW50LWZpcnN0RWxlbWVudENoaWxkLW5hbWVzcGFjZS5zdmciOiAi
c2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZmlyc3RF
bGVtZW50Q2hpbGQtbmFtZXNwYWNlLnhodG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWZpcnN0RWxlbWVudENoaWxkLXN2Zy5zdmciOiAic2tp
cCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZmlyc3RFbGVt
ZW50Q2hpbGQuc3ZnIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9FbGVtZW50LWxhc3RFbGVtZW50Q2hpbGQtc3ZnLnN2ZyI6ICJza2lwIiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1sYXN0RWxlbWVudENoaWxkLnN2ZyI6ICJz
a2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1sYXN0RWxl
bWVudENoaWxkLnhodG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9FbGVtZW50LW5leHRFbGVtZW50U2libGluZy1zdmcuc3ZnIjogInNraXAiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LW5leHRFbGVtZW50U2libGluZy5z
dmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQt
cHJldmlvdXNFbGVtZW50U2libGluZy1zdmcuc3ZnIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LXByZXZpb3VzRWxlbWVudFNpYmxpbmcuc3ZnIjog
InNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LXNpYmxp
bmdFbGVtZW50LW51bGwtc3ZnLnN2ZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvRWxlbWVudC1zaWJsaW5nRWxlbWVudC1udWxsLnN2ZyI6ICJza2lwIiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1zaWJsaW5nRWxlbWVudC1u
dWxsLnhodG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9O
b2RlLW5vZGVOYW1lLnhodG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9QYXJlbnROb2RlLXF1ZXJ5U2VsZWN0b3ItQWxsLnhodCI6ICJza2lwIiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsIjogImltcG9ydCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC91bmZpbmlzaGVkIjogInNraXAiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbXBhcnNpbmciOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9kb214cGF0aCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbXhwYXRoL3htbF94cGF0aF9ydW5uZXIuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9kb214cGF0aC94bWxfeHBhdGhfdGVzdHMueG1sIjogInNraXAiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2RwdWItYWFtIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2RwdWItYXJpYSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9lZGl0
aW5nIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nIjogImltcG9y
dCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhIjogImltcG9ydCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL0dvb2dsZSI6ICJza2lw
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9lbnRyaWVzLWFwaSI6ICJpbXBvcnQiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlIjogImltcG9ydCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvZXh0LXhodG1sLXB1YmlkIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2ZlYXR1cmUtcG9saWN5IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2ZlYXR1cmUtcG9saWN5L3Jlc291cmNlcyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2ZlYXR1cmUtcG9saWN5L3Jlc291cmNlcy8iOiAiaW1wb3J0IiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9jb3JzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlZGlyZWN0IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc291cmNlcyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL29y
aWdpbiI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2
YWxpZGF0ZSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Z1bGxzY3JlZW4i
OiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZ2FtZXBhZCI6ICJza2lwIiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9nZW5lcmljLXNlbnNvciI6ICJza2lwIiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9neXJvc2NvcGUiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHItdGltZSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwiOiAi
aW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sLWltcG9ydHMiOiAic2tpcCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC1sb25nZGVzYyI6ICJza2lwIiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sLW1lZGlhLWNhcHR1cmUiOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2VycyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZl
cnNhbC9icm93c2luZ19jb250ZXh0X25hbWUuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJz
YWwvYnJvd3NpbmdfY29udGV4dF9uYW1lX2Nyb3NzX29yaWdpbl8yLmh0bWwiOiAic2tpcCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL2hp
c3RvcnktdHJhdmVyc2FsL2Jyb3dzaW5nX2NvbnRleHRfbmFtZV9jcm9zc19vcmlnaW5fMy5odG1s
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9y
eS9qb2ludC1zZXNzaW9uLWhpc3RvcnkiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS8wMDEuaHRtbCI6
ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rvcnkv
dGhlLWhpc3RvcnktaW50ZXJmYWNlLzAwMi5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvY29t
YmluYXRpb25faGlzdG9yeV8wMDIuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlL2NvbWJpbmF0
aW9uX2hpc3RvcnlfMDAzLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS90cmF2ZXJzZV90aGVf
aGlzdG9yeV8zLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvYXNzaWduX2FmdGVyX2xvYWQu
aHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hp
c3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9hc3NpZ25fYmVmb3JlX2xvYWQuaHRtbCI6ICJz
a2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhl
LWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbl9hc3NpZ24uaHRtbCI6ICJza2lwIiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwbGljYXRpb24tY2Fj
aGUtYXBpIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
b3JpZ2luL2Nyb3NzLW9yaWdpbi1vYmplY3RzL2Nyb3NzLW9yaWdpbi1vYmplY3RzLnN1Yi5odG1s
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvc2FuZGJv
eGluZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3Ro
ZS13aW5kb3ctb2JqZWN0IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy93aW5kb3dzL2F1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cy8iOiAiaW1wb3J0
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3Np
bmctY29udGV4dC1maXJzdC1jcmVhdGVkLnhodG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9icm93c2luZy1jb250ZXh0LW5hbWVzIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dz
L25lc3RlZC1icm93c2luZy1jb250ZXh0cy9mcmFtZUVsZW1lbnQuaHRtbCI6ICJza2lwIiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3MvdGFyZ2V0aW5nLWNy
b3NzLW9yaWdpbi1uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMuaHRtbCI6ICJza2lwIiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL2VsZW1lbnQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L3dpZGUtZ2FtdXQtY2FudmFzIjogImlt
cG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvcmVzb3VyY2Vz
IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvdG9vbHMi
OiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbSI6ICJpbXBvcnQi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2RvY3VtZW50cy9kb20tdHJlZS1h
Y2Nlc3NvcnMvRG9jdW1lbnQuY3VycmVudFNjcmlwdC5zdWIuaHRtbCI6ICJza2lwIiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9lbGVtZW50cy9yZXF1aXJlbWVudHMtcmVsYXRp
bmctdG8tYmlkaXJlY3Rpb25hbC1hbGdvcml0aG0tZm9ybWF0dGluZy1jaGFyYWN0ZXJzIjogInNr
aXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL3JlZmxlY3Rpb24tb3JpZ2lu
YWwuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2VkaXRpbmci
OiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2lhbmEiOiAiaW1wb3J0
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlIjogImltcG9y
dCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9zYWZlLXBh
c3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhL3NoYXJlZC1hcnJheS1idWZmZXJzIjogInNraXAiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW50ZXJhY3Rpb24iOiAiaW1wb3J0IiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2ludGVyYWN0aW9uL2ZvY3VzL3RoZS1hdXRvZm9j
dXMtYXR0cmlidXRlIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9v
YnNvbGV0ZSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmlu
ZyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBs
YWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZvci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMv
IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZXNvdXJjZXMiOiAi
aW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcyI6ICJpbXBv
cnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1l
dGFkYXRhL3RoZS1tZXRhLWVsZW1lbnQvcHJhZ21hLWRpcmVjdGl2ZXMiOiAic2tpcCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhl
LW1ldGEtZWxlbWVudC9wcmFnbWEtZGlyZWN0aXZlcy9hdHRyLW1ldGEtaHR0cC1lcXVpdi1yZWZy
ZXNoIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L2ltYWdlLW1hcHMvaW1h
Z2UtbWFwLXByb2Nlc3NpbmctbW9kZWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9hdWRpb19s
b29wX2Jhc2UuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2Vycm9yLWNvZGVzIjogInNr
aXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvbG9hZGluZy10aGUtbWVkaWEtcmVzb3VyY2UiOiAic2tpcCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9sb2NhdGlvbi1vZi10aGUtbWVkaWEtcmVzb3VyY2UvY3VycmVudFNy
Yy5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvbmV0d29ya1N0YXRlX2R1cmluZ19wcm9n
cmVzcy5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvb2Zmc2V0cy1pbnRvLXRoZS1tZWRp
YS1yZXNvdXJjZS9jdXJyZW50VGltZS5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxh
eWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2UtcmVtb3ZlLWZyb20tZG9jdW1lbnQtbmV0d29y
a1N0YXRlLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1y
ZXNvdXJjZS9wbGF5LWluLWRldGFjaGVkLWRvY3VtZW50Lmh0bWwiOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9yZWFkeS1zdGF0ZXMvYXV0b3BsYXkuaHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL3NlZWtpbmcvc2Vlay10by1jdXJyZW50VGltZS5odG1sIjogInNraXAiLCAKLSAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvc2Vla2luZy9zZWVrLXRvLW1heC12YWx1ZS5odG0iOiAic2tpcCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9zZWVraW5nL3NlZWstdG8tbmVnYXRpdmUtdGltZS5odG0iOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9zeW5jaHJvbmlzaW5nLW11bHRpcGxlLW1lZGlhLWVsZW1lbnRzL21lZGlhLWNvbnRy
b2xsZXJzL3Rhc2stc291cmNlLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90
cmFjay1lbGVtZW50IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90cmFjay1lbGVt
ZW50L2NvcnMiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy92aWRlb19sb29wX2Jhc2UuaHRtbCI6
ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L3RoZS1hcmVhLWVsZW1lbnQvYXJlYV9ub2hyZWYueGh0bWwiOiAic2tpcCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90
aGUtYXJlYS1lbGVtZW50L3Rlc3QtYXJlYS54aHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxl
bWVudCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJz
ZS53aGl0ZXNwYWNlLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtZW1iZWQtZWxlbWVudC9lbWJlZC1yZXBy
ZXNlbnQtbm90aGluZy0wNC5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50IjogImlt
cG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC90aGUtaW1nLWVsZW1lbnQvIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaW1nLWVsZW1lbnQvZGVj
b2RlIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L3JlbGV2YW50LW11dGF0aW9ucy5odG1sIjog
InNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L3VwZGF0ZS10aGUtaW1hZ2UtZGF0YSI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L3RoZS1vYmplY3QtZWxlbWVudC9vYmplY3QtZXZlbnRzLmh0bWwiOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9u
L3NlbGVjdC1ldmVudC5odG1sIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24t
c2V0UmFuZ2VUZXh0Lmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZm9ybXMvdGhlLXRleHRhcmVhLWVsZW1lbnQiOiAiaW1wb3J0IiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90
aGUtZGV0YWlscy1lbGVtZW50L3RvZ2dsZUV2ZW50Lmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvdGhlLXN1
bW1hcnktZWxlbWVudCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9saW5rcy9kb3dubG9hZGluZy1yZXNvdXJjZXMiOiAiaW1wb3J0IiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9saW5rcy9mb2xsb3dpbmctaHlwZXJsaW5r
cyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9saW5r
cy9saW5rcy1jcmVhdGVkLWJ5LWEtYW5kLWFyZWEtZWxlbWVudHMiOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L2V4ZWN1dGlvbi10aW1pbmciOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZSI6
ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9zY3JpcHQtZm9yLWV2ZW50LnhodG1sIjogInNraXAi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9zY3JpcHQtdGV4dC54aHRtbCI6ICJza2lwIiwgCi0gICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEiOiAiaW1wb3J0IiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvcHJvY2Vz
c2luZy1tb2RlbC0xIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWRhdGEtZWxlbWVudCI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheCI6ICJpbXBvcnQiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvdGhlLXhodG1sLXN5bnRheCI6ICJpbXBvcnQiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvdGhlLXhodG1sLXN5bnRheC9wYXJzaW5nLXhodG1s
LWRvY3VtZW50cyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvdG9v
bHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3VzZXItYWN0aXZh
dGlvbiI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBp
cyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9k
eW5hbWljLWluc2VydGlvbiI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvd2ViYXBwYXBpcy9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24iOiAiaW1wb3J0IiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvaWRsZS1jYWxsYmFja3MiOiAic2tp
cCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9l
dmVudC1sb29wcy9taWNyb3Rhc2tfYWZ0ZXJfcmFmLmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVs
LTIvdW5oYW5kbGVkLXByb21pc2UtcmVqZWN0aW9ucyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvdGhlLXdpbmRvd29yd29ya2VyZ2xvYmFsc2NvcGUt
bWl4aW4iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odHRwIjogInNraXAi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlLWRlY29kZXMiOiAic2tpcCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2ViaXRtYXAtcmVuZGVyaW5nY29udGV4dCI6ICJpbXBv
cnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlcyI6ICJpbXBvcnQiLCAKLSAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlIjogImltcG9ydCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvaW5uZXJUZXh0IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvaW5wdXQtZXZlbnRzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2lu
dGVyZmFjZXMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rp
b24tb2JzZXJ2ZXIiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9qcyI6ICJz
a2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9rZXlib2FyZC1sb2NrIjogInNraXAiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2xvYWRpbmcvbGF6eWxvYWQiOiAiaW1wb3J0IiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9sb25ndGFzay10aW1pbmciOiAic2tpcCIsIAotICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvbWFnbmV0b21ldGVyIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL21hdGhtbCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL21l
ZGlhLWNhcGFiaWxpdGllcyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YS1zb3VyY2UiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS8iOiAi
aW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtaW1hZ2UiOiAi
c2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZCI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zIjog
ImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMv
IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uIjogImlt
cG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWljcm9kYXRhIjogInNraXAiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL21pbWVzbmlmZiI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL21peGVkLWNvbnRlbnQiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvbXN0LWNvbnRlbnQtaGludCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL25hdmlnYXRpb24tdGltaW5nIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L25ldGluZm8iOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9u
cyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL29sZC10ZXN0cyI6ICJza2lw
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9vcmllbnRhdGlvbi1ldmVudCI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9vcmllbnRhdGlvbi1zZW5zb3IiOiAic2tpcCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGFnZS12aXNpYmlsaXR5IjogImltcG9ydCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nIjogInNraXAiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtaGFuZGxlciI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LW1ldGhvZC1iYXNpYy1jYXJkIjogInNraXAiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtbWV0aG9kLWlkIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3BlcmZvcm1hbmNlLXRpbWVsaW5lIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3BpY3R1cmUtaW4tcGljdHVyZSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3BvaW50ZXJldmVudHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9wb2ludGVybG9jayI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wcmVsb2Fk
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ByZXNlbnRhdGlvbi1hcGkiOiAi
c2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcHJvZ3Jlc3MtZXZlbnRzIjogInNraXAi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Byb3hpbWl0eSI6ICJza2lwIiwgCi0gICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9xdWlya3MtbW9kZSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9xdWlya3MvdW5pdGxlc3MtbGVuZ3RoIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvcmVmZXJyZXItcG9saWN5IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvcmVtb3RlLXBsYXliYWNrIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjayI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc2l6ZS1vYnNlcnZlciI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc2l6ZS1vYnNlcnZlci8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZS10aW1pbmciOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
Y2hyb21pdW0iOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3QiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2NyZWVuLW9yaWVudGF0aW9u
IjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Njcm9sbC1hbmNob3JpbmciOiAi
c2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2Nyb2xsLWludG8tdmlldyI6ICJza2lw
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zZWN1cmUtY29udGV4dHMiOiAiaW1wb3J0Iiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zZWxlY3Rpb24iOiAic2tpcCIsIAotICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VsZWN0b3JzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3NlbGVjdG9ycy1hcGkiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmVyLXRpbWluZyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2VycyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20i
OiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3VudHJpYWdl
ZCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpIjogImltcG9y
dCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc3RhdGljcmFuZ2UiOiAic2tpcCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvc3RvcmFnZSI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9zdHJlYW1zIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc3Ry
ZWFtcy93cml0YWJsZS1zdHJlYW1zIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L3N1YnJlc291cmNlLWludGVncml0eSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3N2ZyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3N2Zy1hYW0iOiAi
c2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdGVzdC9odG1sL2luZnJhc3RydWN0dXJl
IjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdGVzdGhhcm5lc3NfcnVubmVy
Lmh0bWwiOiAic2tpcCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMiOiAiaW1wb3J0
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9fX2luaXRfXy5weSI6ICJpbXBvcnQi
LCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliIjogImltcG9ydCIsIAot
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbG9jYWxwYXRocy5weSI6ICJpbXBvcnQiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0IjogImltcG9ydCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQiOiAiaW1wb3J0IiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3NpeCI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NzbHV0aWxzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90b3Vj
aC1ldmVudHMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90cnVzdGVkLXR5
cGVzIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3R5cGVkYXJyYXlzIjogInNr
aXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3VpZXZlbnRzIjogImltcG9ydCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cyI6ICJza2lwIiwg
Ci0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91cmwiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy91c2VyLXRpbWluZyI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3ZpYnJhdGlvbiI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy92aXN1YWwt
dmlld3BvcnQiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93YWktYXJpYSI6
ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93YXNtIjogImltcG9ydCIsIAotICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvd2ViLW5mYyI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWIt
c2hhcmUiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpbyI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1dGhuIjogInNraXAiLCAKLSAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYmRyaXZlciI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJnbCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJt
ZXNzYWdpbmciOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJtZXNzYWdp
bmcvIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjIjogImltcG9y
dCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLXByaW9yaXR5IjogImltcG9ydCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeSI6ICJza2lwIiwgCi0gICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvd2Vic3RvcmFnZSI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnN0b3JhZ2UvIjogImltcG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
dXNiIjogInNraXAiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnZyIjogInNraXAiLCAK
LSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnZ0dCI6ICJza2lwIiwgCi0gICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJ4ciI6ICJpbXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cyI6ICJp
bXBvcnQiLCAKLSAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3gtZnJhbWUtb3B0aW9ucyI6ICJza2lw
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy94aHIiOiAiaW1wb3J0IiwgCi0gICAgIndlYi1w
bGF0Zm9ybS90ZXN0L2h0bWwvaW5mcmFzdHJ1Y3R1cmUiOiAiaW1wb3J0IgorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzLy5naXRodWIi
OiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy8ud2VsbC1rbm93biI6ICJpbXBvcnQi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0IjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvQmFja2dyb3VuZFN5bmMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9ET00tcGFyc2luZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL0RP
TUV2ZW50cyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkiOiAiaW1w
b3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQiI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJIjogImltcG9ydCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9XZWJJREwiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L1dlYklETC9pbnZhbGlkIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvV2ViSURM
L3ZhbGlkIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qi
OiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0
LWFmdGVyLXN0b3AuaHRtIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3QvZXZlbnQtZXJyb3Itb3JkZXIuc3ViLmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9ldmVudC10aW1lb3V0LW9yZGVyLmh0bSI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3ByZXNlcnZlLXVh
LWhlYWRlci1vbi1yZWRpcmVjdC5odG0iOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWFmdGVyLXNldHRpbmctZG9jdW1lbnQtZG9tYWluLmh0bSI6
ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtYXV0
aGVudGljYXRpb24tYmFzaWMtY29ycy1ub3QtZW5hYmxlZC5odG0iOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWF1dGhlbnRpY2F0aW9uLWJhc2lj
LXNldHJlcXVlc3RoZWFkZXItZXhpc3Rpbmctc2Vzc2lvbi5odG0iOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9hY2NlbGVyb21ldGVyIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvYWNjbmFtZSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2FjaWQi
OiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9hbWJpZW50LWxpZ2h0IjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYW5pbWF0aW9uLXRpbWluZyI6ICJza2lwIiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2FuaW1hdGlvbi13b3JrbGV0IjogInNraXAiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvYW5ub3RhdGlvbi1tb2RlbCI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2Fubm90YXRpb24tcHJvdG9jb2wiOiAic2tpcCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9hbm5vdGF0aW9uLXZvY2FiIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvYXBuZyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXBwLXVyaSI6
ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2FwcG1hbmlmZXN0IjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvYXNzdW1wdGlvbnMiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9hc3luYy1sb2NhbC1zdG9yYWdlIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0IjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9hdXhjbGljayI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JhY2tncm91
bmQtZmV0Y2giOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JhZGdpbmciOiAi
c2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9iYXR0ZXJ5LXN0YXR1cyI6ICJza2lwIiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbiI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvYmx1ZXRvb3RoIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
YnJvd3Nlci1wYXltZW50LWFwaSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Ns
ZWFyLXNpdGUtZGF0YSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2NsaWVudC1o
aW50cyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2NsaXBib2FyZCI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2NsaXBib2FyZC1hcGlzIjogImltcG9ydCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb21tb24iOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2NvbXBhdCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY29t
cHJlc3Npb24iOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb25mb3JtYW5jZS1j
aGVja2VycyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2NvbnNvbGUiOiAiaW1w
b3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRhY3RzIjogInNraXAiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1kcHIiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9jb250ZW50LWluZGV4IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
Y29udGVudC1zZWN1cml0eS1wb2xpY3kiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2NvbnRlbnRlZGl0YWJsZSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nv
b2tpZS1zdG9yZSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nvb2tpZXMiOiAi
c2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jb29raWVzL3Jlc291cmNlcyI6ICJpbXBv
cnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY29va2llcy9zZWN1cmUiOiAiaW1wb3J0IiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2NvcmUtYWFtIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvY29ycyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY29y
cy1yZmMxOTE4IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1t
YW5hZ2VtZW50IjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MiOiAic2tp
cCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MtYmFja2dyb3VuZHMiOiAic2tpcCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MtZm9udC1kaXNwbGF5IjogInNraXAiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzLWZvbnQtbG9hZGluZyI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy1mb250cyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy1wYWludC1hcGkiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mtc2Nv
cGluZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy1zY3JvbGwtYW5jaG9y
aW5nIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzLXRpbWluZyI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy10eXBlZC1vbSI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy12YWx1ZXMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvV09GRjIiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtYWxpZ24iOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
YW5pbWF0aW9ucyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1i
YWNrZ3JvdW5kcyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1i
b3giOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY2FzY2FkZSI6
ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvciI6ICJpbXBv
cnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluIjogImltcG9ydCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRlbnQiOiAiaW1wb3J0IiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1zdHlsZXMiOiAiaW1wb3J0IiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZGlzcGxheSI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1lYXNpbmciOiAiaW1wb3J0IiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZmxleGJveCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250LWxvYWRpbmciOiAiaW1wb3J0IiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udHMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1pbWFnZXMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtbGlzdHMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbG9n
aWNhbCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tYXNraW5n
L2NsaXAtcGF0aCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1t
dWx0aWNvbCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVy
ZmxvdyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1vdmVyc2Ny
b2xsLWJlaGF2aW9yIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXBvc2l0aW9uIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXBy
b3BlcnRpZXMtdmFsdWVzLWFwaSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1wc2V1ZG8iOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2NvcGluZyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y3JvbGwtc25hcCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
aGFkb3ctcGFydHMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2hhcGVzIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYXBl
cy90ZXN0LXBsYW4vaW5kZXguaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtc2l6aW5nIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXN5bnRheCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10
ZXh0IjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRleHQtZGVj
b3IiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlv
bnMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkiOiAiaW1w
b3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzIjogImltcG9ydCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhcmlhYmxlcyI6ICJpbXBvcnQiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13aWxsLWNoYW5nZSI6ICJpbXBvcnQiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzIjogImltcG9ydCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20iOiAiaW1wb3J0IiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3IjogImltcG9ydCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvZ2VvbWV0cnkiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9tZWRpYXF1ZXJpZXMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9yZWZlcmVuY2UiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9y
ZXNvdXJjZXMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zY3JvbGwt
c25hcCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycyI6
ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3N1cHBvcnQiOiAiaW1wb3J0
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cyI6ICJpbXBvcnQiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3YwIjogInNraXAiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLXN0YXRlLXBzZXVkby1jbGFzcyI6ICJza2lwIiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RlbGVnYXRlZC1pbmsiOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9kZW5zaXR5LXNpemUtY29ycmVjdGlvbiI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvZGVwcmVjYXRpb24tcmVwb3J0aW5nIjogInNraXAiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvZGV2aWNlLW1lbW9yeSI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2RvY3MiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Rv
Y3VtZW50LXBvbGljeSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbSI6ICJp
bXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0
ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzL2VtcHR5Lmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlRWxlbWVudC1uYW1lc3BhY2Ut
dGVzdHMvZW1wdHkuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzL2VtcHR5LnhodG1sIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0
ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzL2VtcHR5LnhtbCI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24ueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9j
dW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1jaGlsZEVsZW1lbnQtbnVsbC1zdmcuc3ZnIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRF
bGVtZW50LW51bGwuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50LW51bGwueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1jaGlsZEVsZW1lbnRDb3VudC1keW5hbWlj
LWFkZC1zdmcuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVz
L0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQtZHluYW1pYy1hZGQuc3ZnIjogInNraXAiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQt
ZHluYW1pYy1yZW1vdmUtc3ZnLnN2ZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ub2Rlcy9FbGVtZW50LWNoaWxkRWxlbWVudENvdW50LWR5bmFtaWMtcmVtb3ZlLnN2ZyI6
ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWNoaWxk
RWxlbWVudENvdW50LWR5bmFtaWMtcmVtb3ZlLnhodG1sIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQtbm9jaGlsZC1z
dmcuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1l
bnQtY2hpbGRFbGVtZW50Q291bnQtbm9jaGlsZC5zdmciOiAic2tpcCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1jaGlsZEVsZW1lbnRDb3VudC1zdmcuc3ZnIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2hpbGRF
bGVtZW50Q291bnQuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL0VsZW1lbnQtY2hpbGRFbGVtZW50Q291bnQueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1maXJzdEVsZW1lbnRDaGlsZC1lbnRpdHku
c3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQt
Zmlyc3RFbGVtZW50Q2hpbGQtZW50aXR5LnhodG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZmlyc3RFbGVtZW50Q2hpbGQtbmFtZXNwYWNlLXN2
Zy5zdmciOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVu
dC1maXJzdEVsZW1lbnRDaGlsZC1uYW1lc3BhY2Uuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZmlyc3RFbGVtZW50Q2hpbGQtbmFtZXNwYWNl
LnhodG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1l
bnQtZmlyc3RFbGVtZW50Q2hpbGQtc3ZnLnN2ZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWZpcnN0RWxlbWVudENoaWxkLnN2ZyI6ICJza2lwIiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWxhc3RFbGVtZW50Q2hp
bGQtc3ZnLnN2ZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9F
bGVtZW50LWxhc3RFbGVtZW50Q2hpbGQuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtbGFzdEVsZW1lbnRDaGlsZC54aHRtbCI6ICJza2lwIiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LW5leHRFbGVtZW50U2li
bGluZy1zdmcuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVz
L0VsZW1lbnQtbmV4dEVsZW1lbnRTaWJsaW5nLnN2ZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LXByZXZpb3VzRWxlbWVudFNpYmxpbmctc3ZnLnN2
ZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LXBy
ZXZpb3VzRWxlbWVudFNpYmxpbmcuc3ZnIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL0VsZW1lbnQtc2libGluZ0VsZW1lbnQtbnVsbC1zdmcuc3ZnIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtc2libGluZ0VsZW1l
bnQtbnVsbC5zdmciOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMv
RWxlbWVudC1zaWJsaW5nRWxlbWVudC1udWxsLnhodG1sIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtbm9kZU5hbWUueGh0bWwiOiAic2tpcCIsCisgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvUGFyZW50Tm9kZS1xdWVyeVNlbGVjdG9yLUFs
bC54aHQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3Vu
ZmluaXNoZWQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb21wYXJzaW5nIjog
ImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb214cGF0aCI6ICJpbXBvcnQiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9teHBhdGgveG1sX3hwYXRoX3J1bm5lci5odG1sIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZG9teHBhdGgveG1sX3hwYXRoX3Rlc3Rz
LnhtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RwdWItYWFtIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZHB1Yi1hcmlhIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvZWRpdGluZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2VsZW1lbnQtdGltaW5nIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2Rp
bmciOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nLWRldGVjdGlv
biI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYSI6ICJp
bXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL0dvb2dsZSI6
ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2VudHJpZXMtYXBpIjogImltcG9ydCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudC10aW1pbmciOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvZXh0LXhodG1sLXB1YmlkIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvZmVhdHVyZS1wb2xpY3kiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9mZWF0
dXJlLXBvbGljeS9yZXNvdXJjZXMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9mb2N1cyI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ZvbnQtYWNjZXNzIjogInNraXAiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvZm9yY2VkLWNvbG9ycy1tb2RlIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvZnVsbHNjcmVlbiI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2dhbWVwYWQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9nZW5lcmljLXNl
bnNvciI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSSI6
ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tc2Vuc29yIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZ3JhcGhpY3MtYWFtIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvZ3lyb3Njb3BlIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaHItdGltZSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC1pbXBvcnRzIjog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC1sb25nZGVzYyI6ICJza2lwIiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwtbWVkaWEtY2FwdHVyZSI6ICJza2lwIiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0
b3J5LXRyYXZlcnNhbC9icm93c2luZ19jb250ZXh0X25hbWUuaHRtbCI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5
LXRyYXZlcnNhbC9icm93c2luZ19jb250ZXh0X25hbWVfY3Jvc3Nfb3JpZ2luXzIuaHRtbCI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhl
LXdlYi9oaXN0b3J5LXRyYXZlcnNhbC9icm93c2luZ19jb250ZXh0X25hbWVfY3Jvc3Nfb3JpZ2lu
XzMuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
aGlzdG9yeS9qb2ludC1zZXNzaW9uLWhpc3RvcnkiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWhpc3RvcnktaW50ZXJmYWNlLzAwMS5o
dG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0
b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZS8wMDIuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2Uv
Y29tYmluYXRpb25faGlzdG9yeV8wMDIuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvY29tYmlu
YXRpb25faGlzdG9yeV8wMDMuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvdHJhdmVyc2VfdGhl
X2hpc3RvcnlfMy5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvYXNzaWduX2FmdGVyX2xvYWQu
aHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlz
dG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2Fzc2lnbl9iZWZvcmVfbG9hZC5odG1sIjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1s
b2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRpb25fYXNzaWduLmh0bWwiOiAic2tpcCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwbGljYXRpb24tY2FjaGUt
YXBpIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9vcmln
aW4vY3Jvc3Mtb3JpZ2luLW9iamVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVjdHMuc3ViLmh0bWwiOiAi
c2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3NhbmRib3hpbmci
OiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3dpbmRvd3Mv
YnJvd3NpbmctY29udGV4dC1maXJzdC1jcmVhdGVkLnhodG1sIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2luZy1jb250
ZXh0cy9mcmFtZUVsZW1lbnQuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvd2luZG93cy90YXJnZXRpbmctY3Jvc3Mtb3JpZ2luLW5lc3RlZC1icm93
c2luZy1jb250ZXh0cy5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9kb20vZG9jdW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycy9Eb2N1bWVudC5jdXJyZW50U2NyaXB0
LnN1Yi5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZWxl
bWVudHMvcmVxdWlyZW1lbnRzLXJlbGF0aW5nLXRvLWJpZGlyZWN0aW9uYWwtYWxnb3JpdGhtLWZv
cm1hdHRpbmctY2hhcmFjdGVycyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvZG9tL3JlZmxlY3Rpb24tb3JpZ2luYWwuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQt
ZGF0YS9zaGFyZWQtYXJyYXktYnVmZmVycyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvb2Jzb2xldGUiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3JlbmRlcmluZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVy
aW5nL3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5k
LWltYWdlcyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLW1ldGEtZWxlbWVudC9wcmFnbWEtZGlyZWN0aXZlcyI6
ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2RvY3VtZW50
LW1ldGFkYXRhL3RoZS1tZXRhLWVsZW1lbnQvcHJhZ21hLWRpcmVjdGl2ZXMvYXR0ci1tZXRhLWh0
dHAtZXF1aXYtcmVmcmVzaCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9pbWFnZS1tYXBzL2ltYWdl
LW1hcC1wcm9jZXNzaW5nLW1vZGVsIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9hdWRpb19sb29w
X2Jhc2UuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXJyb3ItY29kZXMiOiAic2tpcCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2xvYWRpbmctdGhlLW1lZGlhLXJlc291cmNlIjogInNraXAiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9sb2NhdGlvbi1vZi10aGUtbWVkaWEtcmVzb3VyY2UvY3VycmVudFNyYy5odG1s
IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9uZXR3b3JrU3RhdGVfZHVyaW5nX3Byb2dyZXNzLmh0
bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL29mZnNldHMtaW50by10aGUtbWVkaWEtcmVzb3Vy
Y2UvY3VycmVudFRpbWUuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUt
bWVkaWEtcmVzb3VyY2UvcGF1c2UtcmVtb3ZlLWZyb20tZG9jdW1lbnQtbmV0d29ya1N0YXRlLmh0
bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3Bs
YXktaW4tZGV0YWNoZWQtZG9jdW1lbnQuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVh
ZHktc3RhdGVzL2F1dG9wbGF5Lmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3NlZWtpbmcv
c2Vlay10by1jdXJyZW50VGltZS5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9zZWVraW5n
L3NlZWstdG8tbWF4LXZhbHVlLmh0bSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvc2Vla2luZy9z
ZWVrLXRvLW5lZ2F0aXZlLXRpbWUuaHRtIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9zeW5jaHJv
bmlzaW5nLW11bHRpcGxlLW1lZGlhLWVsZW1lbnRzL21lZGlhLWNvbnRyb2xsZXJzL3Rhc2stc291
cmNlLmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3RyYWNrLWVsZW1lbnQvY29y
cyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fbG9vcF9iYXNlLmh0bWwiOiAic2tpcCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L3RoZS1hcmVhLWVsZW1lbnQvYXJlYV9ub2hyZWYueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1hcmVhLWVs
ZW1lbnQvdGVzdC1hcmVhLnhodG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5h
dHRyaWJ1dGVzLnBhcnNlLndoaXRlc3BhY2UuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWVtYmVkLWVsZW1l
bnQvZW1iZWQtcmVwcmVzZW50LW5vdGhpbmctMDQuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVt
ZW50L2RlY29kZSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L3JlbGV2YW50LW11dGF0aW9ucy5o
dG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC90aGUtaW1nLWVsZW1lbnQvdXBkYXRlLXRoZS1pbWFnZS1kYXRhIjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC90aGUtb2JqZWN0LWVsZW1lbnQvb2JqZWN0LWV2ZW50cy5odG1sIjogInNraXAiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0
aW9uL3NlbGVjdC1ldmVudC5odG1sIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlv
bi1zZXRSYW5nZVRleHQuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1kZXRhaWxzLWVsZW1lbnQvdG9n
Z2xlRXZlbnQuaHRtbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1zdW1tYXJ5LWVsZW1lbnQiOiAic2tpcCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9saW5rcy9mb2xsb3dpbmct
aHlwZXJsaW5rcyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2xpbmtzL2xpbmtzLWNyZWF0ZWQtYnktYS1hbmQtYXJlYS1lbGVtZW50cyI6ICJza2lwIiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L3Nj
cmlwdC1mb3ItZXZlbnQueGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvc2NyaXB0LXRleHQu
eGh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90
ZXh0LWxldmVsLXNlbWFudGljcy90aGUtZGF0YS1lbGVtZW50IjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL2lkbGUtY2FsbGJhY2tzIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1s
b29wcy9taWNyb3Rhc2tfYWZ0ZXJfcmFmLmh0bWwiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi91bmhh
bmRsZWQtcHJvbWlzZS1yZWplY3Rpb25zIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHR0cCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2lkbGUtZGV0ZWN0aW9u
IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2UtZGVjb2RlcyI6ICJza2lw
IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlYml0bWFwLXJlbmRlcmluZ2NvbnRleHQi
OiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlcyI6ICJpbXBvcnQiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaW1wb3J0LW1hcHMiOiAic2tpcCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9pbmVydCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2lu
ZnJhc3RydWN0dXJlIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbm5lclRl
eHQiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2lucHV0LWRldmljZS1jYXBh
YmlsaXRpZXMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbnB1dC1ldmVudHMi
OiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbnN0YWxsZWRhcHAiOiAic2tpcCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbnRlcmZhY2VzIjogImltcG9ydCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIiOiAiaW1wb3J0IiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVydmVudGlvbi1yZXBvcnRpbmciOiAic2tpcCIsCisgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9pcy1pbnB1dC1wZW5kaW5nIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvanMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9rZXli
b2FyZC1sb2NrIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMva2V5Ym9hcmQtbWFw
IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbGFyZ2VzdC1jb250ZW50ZnVsLXBh
aW50IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbGF5b3V0LWluc3RhYmlsaXR5
IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbGlmZWN5Y2xlIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbG9hZGluZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2xvYWRpbmcvbGF6eWxvYWQiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2xvbmd0YXNrLXRpbWluZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L21hZ25ldG9tZXRlciI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbCI6
ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVhc3VyZS1tZW1vcnkiOiAic2tp
cCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYSI6ICJpbXBvcnQiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWEtY2FwYWJpbGl0aWVzIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWEtZmVlZHMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYS1wbGF5YmFjay1xdWFsaXR5IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWEtc291cmNlIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtZGVwdGgiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtaW1hZ2UiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtcmVjb3JkIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtc3RyZWFtcyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNz
aW9uIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZXJjaGFudC12YWxpZGF0
aW9uIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWljcm9kYXRhIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbWltZXNuaWZmIjogImltcG9ydCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9taXhlZC1jb250ZW50IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvbXN0LWNvbnRlbnQtaGludCI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvbmF0aXZlLWZpbGUtc3lzdGVtIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvbmF0aXZlLWlvIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbmF2aWdhdGlv
bi10aW1pbmciOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9uZXRpbmZvIjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbmV0d29yay1lcnJvci1sb2dnaW5nIjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvbm90aWZpY2F0aW9ucyI6ICJpbXBvcnQiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvb2Zmc2NyZWVuLWNhbnZhcyI6ICJpbXBvcnQiLAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvb2xkLXRlc3RzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvb3JpZW50YXRpb24tZXZlbnQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9vcmllbnRhdGlvbi1zZW5zb3IiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9vcmlnaW4tcG9saWN5IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGFnZS1s
aWZlY3ljbGUiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wYWdlLXZpc2liaWxp
dHkiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZyI6ICJp
bXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1oYW5kbGVyIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1tZXRob2QtYmFzaWMtY2FyZCI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtbWV0aG9kLWlkIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0IjogImltcG9ydCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wZXJmb3JtYW5jZS10aW1lbGluZSI6ICJza2lwIiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3BlcmlvZGljLWJhY2tncm91bmQtc3luYyI6ICJza2lwIiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Blcm1pc3Npb25zIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvcGljdHVyZS1pbi1waWN0dXJlIjogImltcG9ydCIsCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9wb2ludGVybG9jayI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Bv
cnRhbHMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wcmVsb2FkIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcHJlc2VudGF0aW9uLWFwaSI6ICJza2lwIiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3ByaW9yaXR5LWhpbnRzIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvcHJvZ3Jlc3MtZXZlbnRzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvcHJveGltaXR5IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcHVz
aC1hcGkiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9xdWlya3MtbW9kZSI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3F1aXJrcy91bml0bGVzcy1sZW5ndGgiOiAi
aW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Jhdy1zb2NrZXRzIjogInNraXAiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcmVmZXJyZXItcG9saWN5IjogImltcG9ydCIsCisgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy9yZW1vdGUtcGxheWJhY2siOiAiaW1wb3J0IiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL3JlcG9ydGluZyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3JlcXVlc3RpZGxlY2FsbGJhY2siOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc2l6ZS1vYnNlcnZlciI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2UtdGltaW5nIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9jaHJv
bWl1bSI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0Ijog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNz
cyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Nhbml0aXplci1h
cGkiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zYXZlZGF0YSI6ICJza2lwIiwK
KyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NjcmVlbi1jYXB0dXJlIjogInNraXAiLAorICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvc2NyZWVuLW9yaWVudGF0aW9uIjogInNraXAiLAorICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvc2NyZWVuLXdha2UtbG9jayI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3NjcmVlbl9lbnVtZXJhdGlvbiI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3Njcm9sbC1hbmNob3JpbmciOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9zY3JvbGwtYW5pbWF0aW9ucyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Nj
cm9sbC1pbnRvLXZpZXciOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zY3JvbGwt
dG8tdGV4dC1mcmFnbWVudCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlY3Vy
ZS1jb250ZXh0cyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2VjdXJlLXBh
eW1lbnQtY29uZmlybWF0aW9uIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2Vs
ZWN0aW9uIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2VsZWN0b3JzIjogInNr
aXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2VsZWN0b3JzLWFwaSI6ICJza2lwIiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlcmlhbCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZlci10aW1pbmciOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2VycyI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2hh
ZG93LWRvbSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2hhZG93LWRvbS91
bnRyaWFnZWQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zaGFwZS1kZXRlY3Rp
b24iOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zaWduZWQtZXhjaGFuZ2UiOiAi
c2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpIjogImltcG9ydCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zdGF0aWNyYW5nZSI6ICJza2lwIiwKKyAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL3N0b3JhZ2UiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9z
dHJlYW1zIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3dyaXRh
YmxlLXN0cmVhbXMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zdWJyZXNvdXJj
ZS1pbnRlZ3JpdHkiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3N2ZyI6ICJp
bXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc3ZnLWFhbSI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3Rlc3QvaHRtbC9pbmZyYXN0cnVjdHVyZSI6ICJpbXBvcnQiLAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdGVzdGhhcm5lc3NfcnVubmVyLmh0bWwiOiAic2tpcCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90aW1pbmctZW50cnl0eXBlcy1yZWdpc3RyeSI6ICJz
a2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzIjogImltcG9ydCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy90b3VjaC1ldmVudHMiOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3RydXN0LXRva2VucyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3Rz
L3RydXN0ZWQtdHlwZXMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90eXBlZGFy
cmF5cyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3VhLWNsaWVudC1oaW50cyI6
ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3VpZXZlbnRzIjogImltcG9ydCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdXJsIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy91cmxwYXR0ZXJuIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
dXNlci10aW1pbmciOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ZpYnJhdGlv
biI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMiOiAic2tpcCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy92aXN1YWwtdmlld3BvcnQiOiAiaW1wb3J0IiwKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3dhaS1hcmlhIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvd2FrZS1sb2NrIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2Fz
bSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMiOiAi
aW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1idW5kbGUiOiAic2tpcCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWItbG9ja3MiOiAic2tpcCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy93ZWItbmZjIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
LW90cCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1zaGFyZSI6ICJpbXBv
cnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8iOiAiaW1wb3J0IiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1dGhuIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvd2ViY29kZWNzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2ViZHJp
dmVyIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2ViZ2wiOiAic2tpcCIsCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJncHUiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJoaWQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJtZXNz
YWdpbmciOiAiaW1wb3J0IiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYm1pZGkiOiAic2tp
cCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMiOiAiaW1wb3J0IiwKKyAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zIjogInNraXAiLAorICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjLWlkZW50aXR5IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjLWluc2VydGFibGUtc3RyZWFtcyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy1wcmlvcml0eSI6ICJpbXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjLXN0YXRzIjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjLXN2YyI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3ki
OiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzIjogImltcG9ydCIs
CisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzdG9yYWdlIjogImltcG9ydCIsCisgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJ0cmFuc3BvcnQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJ1c2IiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ2ciI6
ICJza2lwIiwKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnZ0dCI6ICJza2lwIiwKKyAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy93aW5kb3ctc2VnbWVudHMiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cyI6ICJp
bXBvcnQiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMveC1mcmFtZS1vcHRpb25zIjogInNraXAi
LAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMveGhyIjogImltcG9ydCIsCisgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy94c2x0IjogInNraXAiCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1m
aWxlcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1m
aWxlcy5qc29uCmluZGV4IDFkODMyYzBjYmZlMmFlYmE3MWJkMzkyYWM2NTFkZmEwMmRlMzNkZGMu
LjExNDViOTFhOWEzZjQzZjkwM2RkNTU5YmJlYmY3NWE5OGYwZmQ3ZTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24K
QEAgLTI3NjEsNiArMjc2MSw3IEBACiAgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9zdXBwb3J0L3NhbmRib3hlZC10ZXN0cy5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL3N1cHBvcnQvc3luY194aHJfdGFyZ2V0LnhtbCIsCiAgICAgICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMveGhyL3htbGh0dHByZXF1ZXN0LXN5bmMtYmxvY2stZGVmZXItc2NyaXB0
cy1zdWJmcmFtZS5odG1sIiwKLSAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0
cHJlcXVlc3Qtc3luYy1ub3QtaGFuZy1zY3JpcHRsb2FkZXItc3ViZnJhbWUuaHRtbCIKKyAgICAg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3Qtc3luYy1ub3QtaGFuZy1z
Y3JpcHRsb2FkZXItc3ViZnJhbWUuaHRtbCIsCisgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvc2VjdXJpdHkvc3VwcG9ydC9lbWJlZGRlZC1jcmVkZW50aWFsLXdpbmRvdy5zdWIuaHRt
bCIKICAgICBdCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQv
Y2FjaGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUuaHR0cHMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODE1ZTY1ZmVlM2RiYjAyYTliYzdhZWI4ODlm
NDU4ZTlkMTEyY2ZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Fib3J0L2NhY2hlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAs
MCBAQAotCi1QQVNTIFNpZ25hbHMgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIEFQSQotUEFT
UyBTaWduYWxzIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZSBBUEksIGV2ZW4gaWYgdGhleSdy
ZSBhbHJlYWR5IGFib3J0ZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUuaHR0cHMuYW55LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgx
NWU2NWZlZTNkYmIwMmE5YmM3YWViODg5ZjQ1OGU5ZDExMmNmZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fi
b3J0L2NhY2hlLmh0dHBzLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1Mg
U2lnbmFscyBhcmUgbm90IHN0b3JlZCBpbiB0aGUgY2FjaGUgQVBJCitQQVNTIFNpZ25hbHMgYXJl
IG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIEFQSSwgZXZlbiBpZiB0aGV5J3JlIGFscmVhZHkgYWJv
cnRlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9jYWNoZS5odHRwcy5hbnkuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0
dHBzLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5
ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9jYWNoZS5odHRwcy5hbnkuaHRtbApAQCAt
MCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9jYWNoZS5odHRwcy5hbnkuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9jYWNo
ZS5odHRwcy5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRhZjBlNjllNTgwMTA0MGExOGNiOWQ0NzliOGZj
M2NjNGEyMjlkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmFueS5qcwpAQCAt
MCwwICsxLDQ3IEBACisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IHNpZ25hbHMgJmFtcDsgdGhlIGNh
Y2hlIEFQSQorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKworcHJvbWlzZV90ZXN0KGFz
eW5jICgpID0+IHsKKyAgYXdhaXQgY2FjaGVzLmRlbGV0ZSgndGVzdCcpOworICBjb25zdCBjb250
cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpOworICBjb25zdCBzaWduYWwgPSBjb250cm9s
bGVyLnNpZ25hbDsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCcuLi9yZXNvdXJjZXMv
ZGF0YS5qc29uJywgeyBzaWduYWwgfSk7CisKKyAgY29uc3QgY2FjaGUgPSBhd2FpdCBjYWNoZXMu
b3BlbigndGVzdCcpOworICBhd2FpdCBjYWNoZS5wdXQocmVxdWVzdCwgbmV3IFJlc3BvbnNlKCcn
KSk7CisKKyAgY29uc3QgcmVxdWVzdHMgPSBhd2FpdCBjYWNoZS5rZXlzKCk7CisKKyAgYXNzZXJ0
X2VxdWFscyhyZXF1ZXN0cy5sZW5ndGgsIDEsICdFbnN1cmluZyBjbGVhbnVwIHdvcmtlZCcpOwor
CisgIGNvbnN0IFtjYWNoZWRSZXF1ZXN0XSA9IHJlcXVlc3RzOworCisgIGNvbnRyb2xsZXIuYWJv
cnQoKTsKKworICBhc3NlcnRfZmFsc2UoY2FjaGVkUmVxdWVzdC5zaWduYWwuYWJvcnRlZCwgIlJl
cXVlc3QgZnJvbSBjYWNoZSBzaG91bGRuJ3QgYmUgYWJvcnRlZCIpOworCisgIGNvbnN0IGRhdGEg
PSBhd2FpdCBmZXRjaChjYWNoZWRSZXF1ZXN0KS50aGVuKHIgPT4gci5qc29uKCkpOworICBhc3Nl
cnRfZXF1YWxzKGRhdGEua2V5LCAndmFsdWUnLCAnRmV0Y2ggZnVsbHkgY29tcGxldGVzJyk7Cit9
LCAiU2lnbmFscyBhcmUgbm90IHN0b3JlZCBpbiB0aGUgY2FjaGUgQVBJIik7CisKK3Byb21pc2Vf
dGVzdChhc3luYyAoKSA9PiB7CisgIGF3YWl0IGNhY2hlcy5kZWxldGUoJ3Rlc3QnKTsKKyAgY29u
c3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTsKKyAgY29uc3Qgc2lnbmFsID0g
Y29udHJvbGxlci5zaWduYWw7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgnLi4vcmVz
b3VyY2VzL2RhdGEuanNvbicsIHsgc2lnbmFsIH0pOworICBjb250cm9sbGVyLmFib3J0KCk7CisK
KyAgY29uc3QgY2FjaGUgPSBhd2FpdCBjYWNoZXMub3BlbigndGVzdCcpOworICBhd2FpdCBjYWNo
ZS5wdXQocmVxdWVzdCwgbmV3IFJlc3BvbnNlKCcnKSk7CisKKyAgY29uc3QgcmVxdWVzdHMgPSBh
d2FpdCBjYWNoZS5rZXlzKCk7CisKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0cy5sZW5ndGgsIDEs
ICdFbnN1cmluZyBjbGVhbnVwIHdvcmtlZCcpOworCisgIGNvbnN0IFtjYWNoZWRSZXF1ZXN0XSA9
IHJlcXVlc3RzOworCisgIGFzc2VydF9mYWxzZShjYWNoZWRSZXF1ZXN0LnNpZ25hbC5hYm9ydGVk
LCAiUmVxdWVzdCBmcm9tIGNhY2hlIHNob3VsZG4ndCBiZSBhYm9ydGVkIik7CisKKyAgY29uc3Qg
ZGF0YSA9IGF3YWl0IGZldGNoKGNhY2hlZFJlcXVlc3QpLnRoZW4ociA9PiByLmpzb24oKSk7Cisg
IGFzc2VydF9lcXVhbHMoZGF0YS5rZXksICd2YWx1ZScsICdGZXRjaCBmdWxseSBjb21wbGV0ZXMn
KTsKK30sICJTaWduYWxzIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZSBBUEksIGV2ZW4gaWYg
dGhleSdyZSBhbHJlYWR5IGFib3J0ZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUuaHR0cHMuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDgxNWU2NWZlZTNkYmIwMmE5YmM3YWViODg5ZjQ1OGU5ZDExMmNm
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIFNpZ25hbHMgYXJlIG5vdCBzdG9yZWQgaW4gdGhl
IGNhY2hlIEFQSQorUEFTUyBTaWduYWxzIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZSBBUEks
IGV2ZW4gaWYgdGhleSdyZSBhbHJlYWR5IGFib3J0ZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUu
aHR0cHMuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUuaHR0cHMuYW55Lndvcmtlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9hYm9ydC9jYWNoZS5odHRwcy5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBA
QAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0
dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1ZWQwZTFlOTE4M2I5YTczODg0OTQ0
MzUyZGQ1Mjc4MGZkYTAwOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYWJvcnQvY2FjaGUuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotICA8dGl0bGU+UmVxdWVzdCBzaWduYWxzICZhbXA7IHRoZSBjYWNoZSBBUEk8L3RpdGxl
PgotICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0g
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLSAgcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsK
LSAgICBhd2FpdCBjYWNoZXMuZGVsZXRlKCd0ZXN0Jyk7Ci0gICAgY29uc3QgY29udHJvbGxlciA9
IG5ldyBBYm9ydENvbnRyb2xsZXIoKTsKLSAgICBjb25zdCBzaWduYWwgPSBjb250cm9sbGVyLnNp
Z25hbDsKLSAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJy4uL3Jlc291cmNlcy9kYXRh
Lmpzb24nLCB7IHNpZ25hbCB9KTsKLQotICAgIGNvbnN0IGNhY2hlID0gYXdhaXQgY2FjaGVzLm9w
ZW4oJ3Rlc3QnKTsKLSAgICBhd2FpdCBjYWNoZS5wdXQocmVxdWVzdCwgbmV3IFJlc3BvbnNlKCcn
KSk7Ci0KLSAgICBjb25zdCByZXF1ZXN0cyA9IGF3YWl0IGNhY2hlLmtleXMoKTsKLQotICAgIGFz
c2VydF9lcXVhbHMocmVxdWVzdHMubGVuZ3RoLCAxLCAnRW5zdXJpbmcgY2xlYW51cCB3b3JrZWQn
KTsKLQotICAgIGNvbnN0IFtjYWNoZWRSZXF1ZXN0XSA9IHJlcXVlc3RzOwotCi0gICAgY29udHJv
bGxlci5hYm9ydCgpOwotCi0gICAgYXNzZXJ0X2ZhbHNlKGNhY2hlZFJlcXVlc3Quc2lnbmFsLmFi
b3J0ZWQsICJSZXF1ZXN0IGZyb20gY2FjaGUgc2hvdWxkbid0IGJlIGFib3J0ZWQiKTsKLQotICAg
IGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaChjYWNoZWRSZXF1ZXN0KS50aGVuKHIgPT4gci5qc29u
KCkpOwotICAgIGFzc2VydF9lcXVhbHMoZGF0YS5rZXksICd2YWx1ZScsICdGZXRjaCBmdWxseSBj
b21wbGV0ZXMnKTsKLSAgfSwgIlNpZ25hbHMgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIEFQ
SSIpOwotCi0gIHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7Ci0gICAgYXdhaXQgY2FjaGVzLmRl
bGV0ZSgndGVzdCcpOwotICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVy
KCk7Ci0gICAgY29uc3Qgc2lnbmFsID0gY29udHJvbGxlci5zaWduYWw7Ci0gICAgY29uc3QgcmVx
dWVzdCA9IG5ldyBSZXF1ZXN0KCcuLi9yZXNvdXJjZXMvZGF0YS5qc29uJywgeyBzaWduYWwgfSk7
Ci0gICAgY29udHJvbGxlci5hYm9ydCgpOwotCi0gICAgY29uc3QgY2FjaGUgPSBhd2FpdCBjYWNo
ZXMub3BlbigndGVzdCcpOwotICAgIGF3YWl0IGNhY2hlLnB1dChyZXF1ZXN0LCBuZXcgUmVzcG9u
c2UoJycpKTsKLQotICAgIGNvbnN0IHJlcXVlc3RzID0gYXdhaXQgY2FjaGUua2V5cygpOwotCi0g
ICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0cy5sZW5ndGgsIDEsICdFbnN1cmluZyBjbGVhbnVwIHdv
cmtlZCcpOwotCi0gICAgY29uc3QgW2NhY2hlZFJlcXVlc3RdID0gcmVxdWVzdHM7Ci0KLSAgICBh
c3NlcnRfZmFsc2UoY2FjaGVkUmVxdWVzdC5zaWduYWwuYWJvcnRlZCwgIlJlcXVlc3QgZnJvbSBj
YWNoZSBzaG91bGRuJ3QgYmUgYWJvcnRlZCIpOwotCi0gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZl
dGNoKGNhY2hlZFJlcXVlc3QpLnRoZW4ociA9PiByLmpzb24oKSk7Ci0gICAgYXNzZXJ0X2VxdWFs
cyhkYXRhLmtleSwgJ3ZhbHVlJywgJ0ZldGNoIGZ1bGx5IGNvbXBsZXRlcycpOwotICB9LCAiU2ln
bmFscyBhcmUgbm90IHN0b3JlZCBpbiB0aGUgY2FjaGUgQVBJLCBldmVuIGlmIHRoZXkncmUgYWxy
ZWFkeSBhYm9ydGVkIik7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fi
b3J0L3NlcnZpY2V3b3JrZXItaW50ZXJjZXB0ZWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvc2Vy
dmljZXdvcmtlci1pbnRlcmNlcHRlZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNWNmOWMwZjZi
YTg1ZDk4NDc5MjRiNjFmYTZmZTFkNzBlOWU5NzIyMS4uYmFkZWRiNTEyZTYxYzFiZjk4MmIyZWY2
OTg1MDc5YjQ3M2ZkOTc3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvc2VydmljZXdvcmtlci1pbnRlcmNlcHRl
ZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvc2VydmljZXdvcmtlci1pbnRlcmNlcHRlZC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTUsNSArNSw1IEBAIFBBU1MgcmVzcG9uc2UuYmxvYigpIHJl
amVjdHMgaWYgYWxyZWFkeSBhYm9ydGVkCiBQQVNTIHJlc3BvbnNlLmZvcm1EYXRhKCkgcmVqZWN0
cyBpZiBhbHJlYWR5IGFib3J0ZWQKIFBBU1MgcmVzcG9uc2UuanNvbigpIHJlamVjdHMgaWYgYWxy
ZWFkeSBhYm9ydGVkCiBQQVNTIHJlc3BvbnNlLnRleHQoKSByZWplY3RzIGlmIGFscmVhZHkgYWJv
cnRlZAotUEFTUyBTdHJlYW0gZXJyb3JzIG9uY2UgYWJvcnRlZC4KK0ZBSUwgU3RyZWFtIGVycm9y
cyBvbmNlIGFib3J0ZWQuIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1
bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYWJvcnQvdzNjLWltcG9ydC5sb2cKaW5kZXggNmViMWY3MmVjZTU0YjM1ZjBkOWZh
ZTE0MmEwYTQ4Zjc1ZDhiZmQ1Yy4uZDYzOWZlNmI2ZTlmNGExYmI5NzM2N2Q1YzhhZjM4MjVhOWFj
ZmU3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYWJvcnQvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvdzNjLWltcG9ydC5s
b2cKQEAgLTE0LDcgKzE0LDcgQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQvY2FjaGUu
aHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Fib3J0L2NhY2hlLmh0dHBzLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2Rlc3Ryb3llZC1jb250ZXh0
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9hYm9ydC9nZW5lcmFsLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2tlZXBhbGl2ZS5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9hY2NlcHQtaGVhZGVyLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2FjY2VwdC1oZWFkZXIuYW55LmpzCmluZGV4
IDNkODg2ZGZhZDVhMjVhZTE2NTA2ZTZlY2EyM2Q4NDVlM2E5OTcwMDcuLmNkNTRjZjJhMDNlOGE5
MjYwNDIzNTZlZjlkMDMyYjczYzVkMWE1NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2FjY2VwdC1oZWFkZXIu
YW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Jhc2ljL2FjY2VwdC1oZWFkZXIuYW55LmpzCkBAIC0xLDMgKzEsNCBAQAorLy8g
TUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKIC8vIE1FVEE6IHNjcmlwdD0uLi9yZXNvdXJjZXMv
dXRpbHMuanMKIAogcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29u
ZGl0aW9uYWwtZ2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRpdGlvbmFsLWdldC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwY2JiZTU4MWM3NjAzNWVjNjg3YzE5
Nzg5YzE3OTE1NzllMWNjMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotCi1QQVNTIFRlc3RpbmcgY29uZGl0aW9uYWwgR0VUIHdpdGggRVRhZ3MK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0LmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9j
b25kaXRpb25hbC1nZXQuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMGNiYmU1ODFjNzYw
MzVlYzY4N2MxOTc4OWMxNzkxNTc5ZTFjYzM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0
aW9uYWwtZ2V0LmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGlu
ZyBjb25kaXRpb25hbCBHRVQgd2l0aCBFVGFncworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9jb25kaXRpb25h
bC1nZXQuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy9jb25kaXRpb25hbC1nZXQuYW55Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL2NvbmRpdGlvbmFsLWdldC5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRo
ZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9iYXNpYy9jb25kaXRpb25hbC1nZXQuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0LmFueS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yZjlmYTgxYzAyYjE4YjhkNGM3MzZjYWYwMjJmYWI4NjBkNDQ4OGM2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0LmFueS5qcwpAQCAtMCwwICsxLDM4
IEBACisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IEVUYWcKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3cs
d29ya2VyCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcworCitwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgIHZhciBjYWNoZUJ1c3RlciA9IHRva2VuKCk7IC8vIGVuc3VyZXMgZmly
c3QgcmVxdWVzdCBpcyB1bmNhY2hlZAorICB2YXIgdXJsID0gIi4uL3Jlc291cmNlcy9jYWNoZS5w
eT92PSIgKyBjYWNoZUJ1c3RlcjsKKyAgdmFyIGV0YWc7CisKKyAgLy8gbWFrZSB0aGUgZmlyc3Qg
cmVxdWVzdAorICByZXR1cm4gZmV0Y2godXJsKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Cisg
ICAgLy8gZW5zdXJlIHdlJ3JlIGdldHRpbmcgdGhlIHJlZ3VsYXIsIHVuY2FjaGVkIHJlc3BvbnNl
CisgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5zdGF0dXMsIDIwMCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhyZXNwb25zZS5oZWFkZXJzLmdldCgiWC1IVFRQLVNUQVRVUyIpLCBudWxsKQorCisgICAg
cmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgLy8gY29uc3VtaW5nIHRoZSBib2R5LCBqdXN0IHRvIGJl
IHNhZmUKKyAgfSkudGhlbihmdW5jdGlvbihib2R5KSB7CisgICAgLy8gbWFrZSBhIHNlY29uZCBy
ZXF1ZXN0CisgICAgcmV0dXJuIGZldGNoKHVybCk7CisgIH0pLnRoZW4oZnVuY3Rpb24ocmVzcG9u
c2UpIHsKKyAgICAvLyB3aGlsZSB0aGUgc2VydmVyIHJlc3BvbmRzIHdpdGggMzA0IGlmIG91ciBi
cm93c2VyIHNlbnQgdGhlIGNvcnJlY3QKKyAgICAvLyBJZi1Ob25lLU1hdGNoIHJlcXVlc3QgaGVh
ZGVyLCBhdCB0aGUgSmF2YVNjcmlwdCBsZXZlbCB0aGlzIHN1cmZhY2VzCisgICAgLy8gYXMgMjAw
CisgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5zdGF0dXMsIDIwMCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhyZXNwb25zZS5oZWFkZXJzLmdldCgiWC1IVFRQLVNUQVRVUyIpLCAiMzA0IikKKworICAg
IGV0YWcgPSByZXNwb25zZS5oZWFkZXJzLmdldCgiRVRhZyIpCisKKyAgICByZXR1cm4gcmVzcG9u
c2UudGV4dCgpOyAvLyBjb25zdW1pbmcgdGhlIGJvZHksIGp1c3QgdG8gYmUgc2FmZQorICB9KS50
aGVuKGZ1bmN0aW9uKGJvZHkpIHsKKyAgICAvLyBtYWtlIGEgdGhpcmQgcmVxdWVzdCwgZXhwbGlj
aXRseSBzZXR0aW5nIElmLU5vbmUtTWF0Y2ggcmVxdWVzdCBoZWFkZXIKKyAgICB2YXIgaGVhZGVy
cyA9IHsgIklmLU5vbmUtTWF0Y2giOiBldGFnIH0KKyAgICByZXR1cm4gZmV0Y2godXJsLCB7IGhl
YWRlcnM6IGhlYWRlcnMgfSkKKyAgfSkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgIC8v
IDMwNCBub3cgc3VyZmFjZXMgdGhhbmtzIHRvIHRoZSBleHBsaWNpdCBJZi1Ob25lLU1hdGNoIHJl
cXVlc3QgaGVhZGVyCisgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5zdGF0dXMsIDMwNCk7Cisg
IH0pOworfSwgIlRlc3RpbmcgY29uZGl0aW9uYWwgR0VUIHdpdGggRVRhZ3MiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL2NvbmRpdGlvbmFsLWdldC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRp
dGlvbmFsLWdldC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMGNiYmU1ODFj
NzYwMzVlYzY4N2MxOTc4OWMxNzkxNTc5ZTFjYzM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29u
ZGl0aW9uYWwtZ2V0LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIFRlc3RpbmcgY29uZGl0aW9uYWwgR0VUIHdpdGggRVRhZ3MKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMv
Y29uZGl0aW9uYWwtZ2V0LmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRpdGlvbmFsLWdldC5hbnku
d29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4
MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRpdGlvbmFsLWdldC5hbnkud29ya2Vy
Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktp
dCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9iYXNpYy9jb25kaXRpb25hbC1nZXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjgwZTkyOWZlNmJiNTlkZTY3OTY3ZmRkYTE1MThmY2Q4YTU1ZWYxNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9jb25kaXRpb25hbC1nZXQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+
Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVxdWVz
dCBFVGFnPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNo
LnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi91
dGlscy5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICB2YXIgY2FjaGVCdXN0ZXIgPSB0b2tl
bigpOyAvLyBlbnN1cmVzIGZpcnN0IHJlcXVlc3QgaXMgdW5jYWNoZWQKLSAgICAgIHZhciB1cmwg
PSAiLi4vcmVzb3VyY2VzL2NhY2hlLnB5P3Y9IiArIGNhY2hlQnVzdGVyOwotICAgICAgdmFyIGV0
YWc7Ci0KLSAgICAgIC8vIG1ha2UgdGhlIGZpcnN0IHJlcXVlc3QKLSAgICAgIHJldHVybiBmZXRj
aCh1cmwpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgLy8gZW5zdXJlIHdlJ3Jl
IGdldHRpbmcgdGhlIHJlZ3VsYXIsIHVuY2FjaGVkIHJlc3BvbnNlCi0gICAgICAgIGFzc2VydF9l
cXVhbHMocmVzcG9uc2Uuc3RhdHVzLCAyMDApOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3Bv
bnNlLmhlYWRlcnMuZ2V0KCJYLUhUVFAtU1RBVFVTIiksIG51bGwpCi0KLSAgICAgICAgcmV0dXJu
IHJlc3BvbnNlLnRleHQoKTsgLy8gY29uc3VtaW5nIHRoZSBib2R5LCBqdXN0IHRvIGJlIHNhZmUK
LSAgICAgIH0pLnRoZW4oZnVuY3Rpb24oYm9keSkgewotICAgICAgICAvLyBtYWtlIGEgc2Vjb25k
IHJlcXVlc3QKLSAgICAgICAgcmV0dXJuIGZldGNoKHVybCk7Ci0gICAgICB9KS50aGVuKGZ1bmN0
aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgIC8vIHdoaWxlIHRoZSBzZXJ2ZXIgcmVzcG9uZHMgd2l0
aCAzMDQgaWYgb3VyIGJyb3dzZXIgc2VudCB0aGUgY29ycmVjdAotICAgICAgICAvLyBJZi1Ob25l
LU1hdGNoIHJlcXVlc3QgaGVhZGVyLCBhdCB0aGUgSmF2YVNjcmlwdCBsZXZlbCB0aGlzIHN1cmZh
Y2VzCi0gICAgICAgIC8vIGFzIDIwMAotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLnN0
YXR1cywgMjAwKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5oZWFkZXJzLmdldCgi
WC1IVFRQLVNUQVRVUyIpLCAiMzA0IikKLQotICAgICAgICBldGFnID0gcmVzcG9uc2UuaGVhZGVy
cy5nZXQoIkVUYWciKQotCi0gICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7IC8vIGNvbnN1
bWluZyB0aGUgYm9keSwganVzdCB0byBiZSBzYWZlCi0gICAgICB9KS50aGVuKGZ1bmN0aW9uKGJv
ZHkpIHsKLSAgICAgICAgLy8gbWFrZSBhIHRoaXJkIHJlcXVlc3QsIGV4cGxpY2l0bHkgc2V0dGlu
ZyBJZi1Ob25lLU1hdGNoIHJlcXVlc3QgaGVhZGVyCi0gICAgICAgIHZhciBoZWFkZXJzID0geyAi
SWYtTm9uZS1NYXRjaCI6IGV0YWcgfQotICAgICAgICByZXR1cm4gZmV0Y2godXJsLCB7IGhlYWRl
cnM6IGhlYWRlcnMgfSkKLSAgICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAg
ICAgLy8gMzA0IG5vdyBzdXJmYWNlcyB0aGFua3MgdG8gdGhlIGV4cGxpY2l0IElmLU5vbmUtTWF0
Y2ggcmVxdWVzdCBoZWFkZXIKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5zdGF0dXMs
IDMwNCk7Ci0gICAgICB9KTsKLSAgICB9LCAiVGVzdGluZyBjb25kaXRpb25hbCBHRVQgd2l0aCBF
VGFncyIpOwotCi0gICAgZG9uZSgpOwotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9l
cnJvci1hZnRlci1yZXNwb25zZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDE3YmM4YzJjNWQyNTQ3ODRiNDE0ZWY2OTM5ZWRkYmFkMzczYjQwNDUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvZXJyb3ItYWZ0ZXItcmVz
cG9uc2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0KLVBBU1Mg
UmVzcG9uc2UgcmVhZGVyIHJlYWQoKSBwcm9taXNlIHNob3VsZCByZWplY3QgYWZ0ZXIgYSBuZXR3
b3JrIGVycm9yIGhhcHBlbmluZyBhZnRlciByZXNvbHZpbmcgZmV0Y2ggcHJvbWlzZQotUEFTUyBS
ZXNwb25zZSByZWFkZXIgY2xvc2VkIHByb21pc2Ugc2hvdWxkIHJlamVjdCBhZnRlciBhIG5ldHdv
cmsgZXJyb3IgaGFwcGVuaW5nIGFmdGVyIHJlc29sdmluZyBmZXRjaCBwcm9taXNlCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2Jhc2ljL2Vycm9yLWFmdGVyLXJlc3BvbnNlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJv
ci1hZnRlci1yZXNwb25zZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3YmM4YzJjNWQy
NTQ3ODRiNDE0ZWY2OTM5ZWRkYmFkMzczYjQwNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJv
ci1hZnRlci1yZXNwb25zZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNT
IFJlc3BvbnNlIHJlYWRlciByZWFkKCkgcHJvbWlzZSBzaG91bGQgcmVqZWN0IGFmdGVyIGEgbmV0
d29yayBlcnJvciBoYXBwZW5pbmcgYWZ0ZXIgcmVzb2x2aW5nIGZldGNoIHByb21pc2UKK1BBU1Mg
UmVzcG9uc2UgcmVhZGVyIGNsb3NlZCBwcm9taXNlIHNob3VsZCByZWplY3QgYWZ0ZXIgYSBuZXR3
b3JrIGVycm9yIGhhcHBlbmluZyBhZnRlciByZXNvbHZpbmcgZmV0Y2ggcHJvbWlzZQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Vycm9yLWFmdGVy
LXJlc3BvbnNlLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBh
NDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25z
ZS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3Ig
V2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1y
ZXNwb25zZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS5hbnkuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjcxMTQ0MjVmOTU1MDRjMWU3Njg4NDIxZjE3Zjc0YmM4MzI2YjlkYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2Jhc2ljL2Vycm9yLWFmdGVyLXJlc3BvbnNlLmFueS5qcwpAQCAtMCwwICsxLDI0IEBACisv
LyBNRVRBOiB0aXRsZT1GZXRjaDogbmV0d29yayB0aW1lb3V0IGFmdGVyIHJlY2VpdmluZyB0aGUg
SFRUUCByZXNwb25zZSBoZWFkZXJzCisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8g
TUVUQTogdGltZW91dD1sb25nCisvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpz
CisKK2Z1bmN0aW9uIGNoZWNrUmVhZGVyKHRlc3QsIHJlYWRlciwgcHJvbWlzZVRvVGVzdCkKK3sK
KyAgICByZXR1cm4gcmVhZGVyLnJlYWQoKS50aGVuKCh2YWx1ZSkgPT4geworICAgICAgICB2YWxp
ZGF0ZUJ1ZmZlckZyb21TdHJpbmcodmFsdWUudmFsdWUsICJURVNUX0NIVU5LIiwgIlNob3VsZCBy
ZWNlaXZlIGZpcnN0IGNodW5rIik7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanMo
dGVzdCwgVHlwZUVycm9yLCBwcm9taXNlVG9UZXN0KHJlYWRlcikpOworICAgIH0pOworfQorCitw
cm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9i
YWQtY2h1bmstZW5jb2RpbmcucHk/Y291bnQ9MSIpLnRoZW4oKHJlc3BvbnNlKSA9PiB7CisgICAg
ICAgIHJldHVybiBjaGVja1JlYWRlcih0ZXN0LCByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLCBy
ZWFkZXIgPT4gcmVhZGVyLnJlYWQoKSk7CisgICAgfSk7Cit9LCAiUmVzcG9uc2UgcmVhZGVyIHJl
YWQoKSBwcm9taXNlIHNob3VsZCByZWplY3QgYWZ0ZXIgYSBuZXR3b3JrIGVycm9yIGhhcHBlbmlu
ZyBhZnRlciByZXNvbHZpbmcgZmV0Y2ggcHJvbWlzZSIpOworCitwcm9taXNlX3Rlc3QoKHRlc3Qp
ID0+IHsKKyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9iYWQtY2h1bmstZW5jb2Rpbmcu
cHk/Y291bnQ9MSIpLnRoZW4oKHJlc3BvbnNlKSA9PiB7CisgICAgICAgIHJldHVybiBjaGVja1Jl
YWRlcih0ZXN0LCByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLCByZWFkZXIgPT4gcmVhZGVyLmNs
b3NlZCk7CisgICAgfSk7Cit9LCAiUmVzcG9uc2UgcmVhZGVyIGNsb3NlZCBwcm9taXNlIHNob3Vs
ZCByZWplY3QgYWZ0ZXIgYSBuZXR3b3JrIGVycm9yIGhhcHBlbmluZyBhZnRlciByZXNvbHZpbmcg
ZmV0Y2ggcHJvbWlzZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvZXJyb3ItYWZ0ZXItcmVzcG9uc2UuYW55
Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2JjOGMyYzVkMjU0Nzg0YjQxNGVmNjkzOWVkZGJh
ZDM3M2I0MDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvZXJyb3ItYWZ0ZXItcmVzcG9uc2UuYW55
Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgUmVzcG9uc2UgcmVh
ZGVyIHJlYWQoKSBwcm9taXNlIHNob3VsZCByZWplY3QgYWZ0ZXIgYSBuZXR3b3JrIGVycm9yIGhh
cHBlbmluZyBhZnRlciByZXNvbHZpbmcgZmV0Y2ggcHJvbWlzZQorUEFTUyBSZXNwb25zZSByZWFk
ZXIgY2xvc2VkIHByb21pc2Ugc2hvdWxkIHJlamVjdCBhZnRlciBhIG5ldHdvcmsgZXJyb3IgaGFw
cGVuaW5nIGFmdGVyIHJlc29sdmluZyBmZXRjaCBwcm9taXNlCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Vy
cm9yLWFmdGVyLXJlc3BvbnNlLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Vycm9yLWFmdGVyLXJlc3Bv
bnNlLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYw
YTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvZXJyb3ItYWZ0ZXItcmVzcG9u
c2UuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVp
cmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0
ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2Vycm9y
LWFmdGVyLXJlc3BvbnNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGIzNDI5MzI0YWYxNjk2OWQwNzZjMWM0ZGIwM2I4
YjY4NDk2YmY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL2Vycm9yLWFmdGVyLXJlc3BvbnNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCww
IEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8dGl0bGU+RmV0Y2g6
IG5ldHdvcmsgdGltZW91dCBhZnRlciByZWNlaXZpbmcgdGhlIEhUVFAgcmVzcG9uc2UgaGVhZGVy
czwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Ci0gICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0aWxzLmpzIj48L3NjcmlwdD4KLSAgPC9oZWFk
PgotICA8Ym9keT4KLSAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgotICAgIDxzY3JpcHQ+Ci1mdW5j
dGlvbiBjaGVja1JlYWRlcih0ZXN0LCByZWFkZXIsIHByb21pc2VUb1Rlc3QpCi17Ci0gICAgcmV0
dXJuIHJlYWRlci5yZWFkKCkudGhlbigodmFsdWUpID0+IHsKLSAgICAgICAgdmFsaWRhdGVCdWZm
ZXJGcm9tU3RyaW5nKHZhbHVlLnZhbHVlLCAiVEVTVF9DSFVOSyIsICJTaG91bGQgcmVjZWl2ZSBm
aXJzdCBjaHVuayIpOwotICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5
cGVFcnJvciwgcHJvbWlzZVRvVGVzdChyZWFkZXIpKTsKLSAgICB9KTsKLX0KLQotcHJvbWlzZV90
ZXN0KCh0ZXN0KSA9PiB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMvYmFkLWNodW5r
LWVuY29kaW5nLnB5P2NvdW50PTEiKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICByZXR1
cm4gY2hlY2tSZWFkZXIodGVzdCwgcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgcmVhZGVyID0+
IHJlYWRlci5yZWFkKCkpOwotICAgIH0pOwotfSwgIlJlc3BvbnNlIHJlYWRlciByZWFkKCkgcHJv
bWlzZSBzaG91bGQgcmVqZWN0IGFmdGVyIGEgbmV0d29yayBlcnJvciBoYXBwZW5pbmcgYWZ0ZXIg
cmVzb2x2aW5nIGZldGNoIHByb21pc2UiKTsKLQotcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7Ci0g
ICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMvYmFkLWNodW5rLWVuY29kaW5nLnB5P2NvdW50
PTEiKS50aGVuKChyZXNwb25zZSkgPT4gewotICAgICAgICByZXR1cm4gY2hlY2tSZWFkZXIodGVz
dCwgcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgcmVhZGVyID0+IHJlYWRlci5jbG9zZWQpOwot
ICAgIH0pOwotfSwgIlJlc3BvbnNlIHJlYWRlciBjbG9zZWQgcHJvbWlzZSBzaG91bGQgcmVqZWN0
IGFmdGVyIGEgbmV0d29yayBlcnJvciBoYXBwZW5pbmcgYWZ0ZXIgcmVzb2x2aW5nIGZldGNoIHBy
b21pc2UiKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9oaXN0b3JpY2FsLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2hpc3RvcmljYWwuYW55LmpzCmluZGV4IGFlYTQx
ODRhYzhiY2EwYzgyMGNiZjJkODIyY2MzODEyNWY1MTJlOWEuLmM4MDgxMjYyMTY4ZTM2NzE2YTJm
NzNlMzU2ODE1NDJjNDJjYTc3MzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2hpc3RvcmljYWwuYW55LmpzCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL2hpc3RvcmljYWwuYW55LmpzCkBAIC0xLDMgKzEsNSBAQAorLy8gTUVUQTogZ2xvYmFs
PXdpbmRvdyx3b3JrZXIKKwogdGVzdCgoKSA9PiB7CiAgIGFzc2VydF9mYWxzZSgiZ2V0QWxsIiBp
biBuZXcgSGVhZGVycygpKTsKICAgYXNzZXJ0X2ZhbHNlKCJnZXRBbGwiIGluIEhlYWRlcnMucHJv
dG90eXBlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtZm9yYmlkZGVuLWhlYWRlcnMuYW55Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
YmFzaWMvcmVxdWVzdC1mb3JiaWRkZW4taGVhZGVycy5hbnkuanMKaW5kZXggZmVkYWJlZDU0MThi
ZWE4MWU5ZmYxOWMzYzMyNWQ1NDJiOTlmYWYzMS4uNWQ4NWM0ZTYyZDMyYjBlMWRmZjAyNjU5Njc2
OTNmZGU2ODg2OTRiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1mb3JiaWRkZW4taGVhZGVycy5h
bnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1mb3JiaWRkZW4taGVhZGVycy5hbnkuanMKQEAgLTEsMyAr
MSw0IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVUQTogc2NyaXB0PS4u
L3Jlc291cmNlcy91dGlscy5qcwogCiBmdW5jdGlvbiByZXF1ZXN0Rm9yYmlkZGVuSGVhZGVycyhk
ZXNjLCBmb3JiaWRkZW5IZWFkZXJzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWQuYW55
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvcmVxdWVzdC1oZWFkLmFueS5qcwppbmRleCBkYzQzNWJmMGQ2ZGY5NDNiYzAyNDA2
ZWE0NmVjMGNjZTQxMzRjNGQ5Li5lMGI2YWZhMDc5YTQwMDBjYzk3ZGQ3MDJhNTMxZjY5YzU2OGVh
ZmNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWQuYW55LmpzCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3Qt
aGVhZC5hbnkuanMKQEAgLTEsMyArMSw1IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtl
cgorCiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewogICB2YXIgcmVxdWVzdEluaXQgPSB7
Im1ldGhvZCI6ICJIRUFEIiwgImJvZHkiOiAidGVzdCJ9OwogICByZXR1cm4gcHJvbWlzZV9yZWpl
Y3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgZmV0Y2goIi4iLCByZXF1ZXN0SW5pdCkpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLWNhc2UuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJz
LWNhc2UuYW55LmpzCmluZGV4IDA2N2VhYmIxMzMyOWIxY2FhYjdmNTE1OWIyOWJiZThhNjZlMGZm
ODUuLjRjMTBlNzE3ZjhjMmU1OTRkMGUxZjYxMmNlMGExOTE5MWFjNWZjODUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL3JlcXVlc3QtaGVhZGVycy1jYXNlLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMt
Y2FzZS5hbnkuanMKQEAgLTEsMyArMSw1IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtl
cgorCiBwcm9taXNlX3Rlc3QoKCkgPT4gewogICByZXR1cm4gZmV0Y2goIi94aHIvcmVzb3VyY2Vz
L2VjaG8taGVhZGVycy5weSIsIHtoZWFkZXJzOiBbWyJUSElTLWlzLUEtdGVzdCIsIDFdLCBbIlRI
SVMtSVMtQS1URVNUIiwgMl1dIH0pLnRoZW4ocmVzID0+IHJlcy50ZXh0KCkpLnRoZW4oYm9keSA9
PiB7CiAgICAgYXNzZXJ0X3JlZ2V4cF9tYXRjaChib2R5LCAvVEhJUy1pcy1BLXRlc3Q6IDEsIDIv
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLW5vbmFzY2lpLmFueS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWkuYW55LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYmZkZDllMDFkZTAyNDkzNWQ4MTc2Y2Y4ZTcyMjRmZGY3YjMzNWNlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLW5vbmFzY2lpLmFueS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgTm9uLWFzY2lpIGJ5dGVzIGluIHJlcXVlc3QgaGVhZGVycwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWkuYW55Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9y
ZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWkuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2
OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVl
c3QtaGVhZGVycy1ub25hc2NpaS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWkuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJz
LW5vbmFzY2lpLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTlhODAxMTM4NTM1MTQ3M2YzMTkzNmI0YTVh
ODFmZWU1OGVjMjUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLW5vbmFz
Y2lpLmFueS5qcwpAQCAtMCwwICsxLDI5IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtl
cgorCisvLyBUaGlzIHRlc3RzIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90CisvLyBodHRwczovL2lu
ZnJhLnNwZWMud2hhdHdnLm9yZy8jYXNjaWktY29kZS1wb2ludAorLy8gYnV0IGFyZSBzdGlsbAor
Ly8gaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI2J5dGUtdmFsdWUKKy8vIGluIHJlcXVl
c3QgaGVhZGVyIHZhbHVlcy4KKy8vIFN1Y2ggcmVxdWVzdCBoZWFkZXIgdmFsdWVzIGFyZSB2YWxp
ZCBhbmQgdGh1cyBzZW50IHRvIHNlcnZlcnMuCisvLyBDaGFyYWN0ZXJzIG91dHNpZGUgdGhlICNi
eXRlLXZhbHVlIHJhbmdlIGFyZSB0ZXN0ZWQgZS5nLiBpbgorLy8gZmV0Y2gvYXBpL2hlYWRlcnMv
aGVhZGVycy1lcnJvcnMuaHRtbC4KKworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgcmV0dXJuIGZl
dGNoKAorICAgICIuLi9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5P2hlYWRlcnM9YWNjZXB0
fHgtdGVzdCIsCisgICAge2hlYWRlcnM6IHsKKyAgICAgICJBY2NlcHQiOiAiYmVmb3JlLcOmw7jD
pS1hZnRlciIsCisgICAgICAiWC1UZXN0IjogImJlZm9yZS3Dny1hZnRlciIKKyAgICB9fSkKKyAg
ICAudGhlbihyZXMgPT4geworICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICByZXMuaGVh
ZGVycy5nZXQoIngtcmVxdWVzdC1hY2NlcHQiKSwKKyAgICAgICAgICAiYmVmb3JlLcOmw7jDpS1h
ZnRlciIsCisgICAgICAgICAgIkFjY2VwdCBIZWFkZXIiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
CisgICAgICAgICAgcmVzLmhlYWRlcnMuZ2V0KCJ4LXJlcXVlc3QteC10ZXN0IiksCisgICAgICAg
ICAgImJlZm9yZS3Dny1hZnRlciIsCisgICAgICAgICAgIlgtVGVzdCBIZWFkZXIiKTsKKyAgICB9
KTsKK30sICJOb24tYXNjaWkgYnl0ZXMgaW4gcmVxdWVzdCBoZWFkZXJzIik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWkuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNp
Yy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWkuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmJmZGQ5ZTAxZGUwMjQ5MzVkODE3NmNmOGU3MjI0ZmRmN2IzMzVjZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy1ub25hc2NpaS5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBOb24tYXNjaWkgYnl0ZXMgaW4gcmVxdWVzdCBo
ZWFkZXJzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy1ub25hc2NpaS5hbnkud29y
a2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWkuYW55Lndvcmtlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWkuYW55Lndvcmtlci5odG1s
CkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVz
dCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnkuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9yZXF1ZXN0LWhlYWRlcnMuYW55LmpzCmluZGV4IDRiYTcwZjdjNDk2YjdjNDA2ZTVlZDFh
ZWYzNWJhNWVmYjNkYzQ2ZWYuLmFjNTQyNTZlNGM2YTYzNzc0MTRkM2EyNGRiZTFmZTM0YzhiYjY2
NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnkuanMKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVz
dC1oZWFkZXJzLmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3cs
d29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIGZ1bmN0aW9u
IGNoZWNrQ29udGVudFR5cGUoY29udGVudFR5cGUsIGJvZHkpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1
ZXN0LXJlZmVycmVyLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtcmVmZXJyZXIuYW55LmpzCmluZGV4IDYy
ZmJkNDNlMWRkNDJkOWJhMzIwNTM2ZWI5OTIxZjZjNmVlMDQwMDQuLjBjMzM1NzY0MmQ2NzRiNzMy
Nzk2NmY4NDBmYWIyNzU1MDg4M2I3ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtcmVmZXJyZXIu
YW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtcmVmZXJyZXIuYW55LmpzCkBAIC0xLDMgKzEsNCBAQAor
Ly8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKIC8vIE1FVEE6IHNjcmlwdD0uLi9yZXNvdXJj
ZXMvdXRpbHMuanMKIAogZnVuY3Rpb24gdGVzdFJlZmVycmVyKHJlZmVycmVyLCBleHBlY3RlZCwg
ZGVzYykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11cGxvYWQuYW55LmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVz
dC11cGxvYWQuYW55LmpzCmluZGV4IDE0ZjRhMDdhNDk4N2U0MjRlZTQyYTIzYWMwMjE4YWNjNzdh
NDJiNzYuLjE0MTI4MTZhM2MyMjBkNjBjYTFiM2M1MjVhYzU5NTNkMTAxNTdjM2MgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL3JlcXVlc3QtdXBsb2FkLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC5hbnku
anMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVU
QTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcwogCiBmdW5jdGlvbiB0ZXN0VXBsb2FkKGRl
c2MsIHVybCwgbWV0aG9kLCBjcmVhdGVCb2R5LCBleHBlY3RlZEJvZHkpIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL3NjaGVtZS1hYm91dC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9zY2hlbWUtYWJvdXQuYW55LmpzCmluZGV4IGVi
ODkyZDMyZmZmOWYzYmY2OTM4NTNkMmRmMTVmMTc5ZDQyOTRjYjUuLjQzMjliZDA3MDMyMGRkZjhl
NDc1ZGUyYjk3YTg4NTlmMjAxY2ViYmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3NjaGVtZS1hYm91dC5hbnku
anMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYmFzaWMvc2NoZW1lLWFib3V0LmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6
IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxz
LmpzCiAKIGZ1bmN0aW9uIGNoZWNrTmV0d29ya0Vycm9yKHVybCwgbWV0aG9kKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9iYXNpYy9zY2hlbWUtZGF0YS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9zY2hlbWUtZGF0YS5hbnkuanMKaW5kZXgg
ZTRhODgwNzE5ZDM0MTBhNzdiNjg2ZTdlMTk0M2NiYWY1NWQ0MzcyYi4uMWMzYjVkYzgxNmM4OGIy
OGVkMmZkMDU2MDdhMjQ5MmJhOGI2ZjVhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvc2NoZW1lLWRhdGEuYW55
LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL3NjaGVtZS1kYXRhLmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6
IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxz
LmpzCiAKIGZ1bmN0aW9uIGNoZWNrRmV0Y2hSZXNwb25zZSh1cmwsIGRhdGEsIG1pbWUsIGZldGNo
TW9kZSwgbWV0aG9kKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9zY2hlbWUtb3RoZXJzLnN1Yi5hbnkuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9zY2hlbWUtb3RoZXJzLnN1Yi5hbnkuanMKaW5kZXggOWMzY2FkMTcwMjg1MjRhMmQyZDY1
ZTNiNGZkZTc5ZDA2NjJiMDM3Yy4uNTUwZjY5YzQxYjVhNDNhYTVjYTE5OTY3MDMzNzVmYTFlYTZm
YmM4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYmFzaWMvc2NoZW1lLW90aGVycy5zdWIuYW55LmpzCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3Nj
aGVtZS1vdGhlcnMuc3ViLmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13
aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIGZ1
bmN0aW9uIGNoZWNrS29VcmwodXJsLCBkZXNjKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9zdHJlYW0tcmVz
cG9uc2UuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvc3RyZWFtLXJlc3BvbnNlLmFueS5qcwppbmRleCA1YjExMDE4ZWIz
MTY0OGY1NTAzZWJhMWIxZTcxYTYxNmUyMTliMzc1Li40YTg4NTVhNjJkN2IwZDViNTNlOWYyNDk1
ZjIwOTE3MDExNGFkNGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9zdHJlYW0tcmVzcG9uc2UuYW55LmpzCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL3N0cmVhbS1yZXNwb25zZS5hbnkuanMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRBOiBn
bG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5q
cwogCiBmdW5jdGlvbiBzdHJlYW1Cb2R5KHJlYWRlciwgdGVzdCwgY291bnQpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL3RleHQtdXRmOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0ZjgtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZmJkMjQwODkxMzUzYWIyYWI4MGM2ZDUz
ZWIxYTcwNWE5MGRlMDgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2Jhc2ljL3RleHQtdXRmOC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiAr
MCwwIEBACi0KLVBBU1MgVVRGLTggd2l0aCBCT00gd2l0aCBSZXF1ZXN0LnRleHQoKQotUEFTUyBV
VEYtOCB3aXRoIEJPTSB3aXRoIFJlc3BvbnNlLnRleHQoKQotUEFTUyBVVEYtOCB3aXRoIEJPTSB3
aXRoIGZldGNoZWQgZGF0YSAoVVRGLTggY2hhcnNldCkKLVBBU1MgVVRGLTggd2l0aCBCT00gd2l0
aCBmZXRjaGVkIGRhdGEgKFVURi0xNiBjaGFyc2V0KQotUEFTUyBVVEYtOCB3aXRoIEJPTSAoUmVz
cG9uc2Ugb2JqZWN0KQotUEFTUyBVVEYtOCB3aXRoIEJPTSAoUmVxdWVzdCBvYmplY3QpCi1QQVNT
IFVURi04IHdpdGhvdXQgQk9NIHdpdGggUmVxdWVzdC50ZXh0KCkKLVBBU1MgVVRGLTggd2l0aG91
dCBCT00gd2l0aCBSZXNwb25zZS50ZXh0KCkKLVBBU1MgVVRGLTggd2l0aG91dCBCT00gd2l0aCBm
ZXRjaGVkIGRhdGEgKFVURi04IGNoYXJzZXQpCi1QQVNTIFVURi04IHdpdGhvdXQgQk9NIHdpdGgg
ZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNldCkKLVBBU1MgVVRGLTggd2l0aG91dCBCT00gKFJl
c3BvbnNlIG9iamVjdCkKLVBBU1MgVVRGLTggd2l0aG91dCBCT00gKFJlcXVlc3Qgb2JqZWN0KQot
UEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggUmVxdWVzdC50ZXh0
KCkKLVBBU1MgVVRGLTE2QkUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIFJlc3BvbnNl
LnRleHQoKQotUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0
Y2hlZCBkYXRhIChVVEYtOCBjaGFyc2V0KQotUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVk
IGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNldCkKLVBBU1MgVVRGLTE2
QkUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCAoUmVzcG9uc2Ugb2JqZWN0KQotUEFTUyBVVEYt
MTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IChSZXF1ZXN0IG9iamVjdCkKLVBBU1MgVVRG
LTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIFJlcXVlc3QudGV4dCgpCi1QQVNT
IFVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQgYXMgVVRGLTggd2l0aCBSZXNwb25zZS50ZXh0KCkK
LVBBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIGZldGNoZWQgZGF0
YSAoVVRGLTggY2hhcnNldCkKLVBBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYt
OCB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTE2IGNoYXJzZXQpCi1QQVNTIFVURi0xNkxFIHdpdGgg
Qk9NIGRlY29kZWQgYXMgVVRGLTggKFJlc3BvbnNlIG9iamVjdCkKLVBBU1MgVVRGLTE2TEUgd2l0
aCBCT00gZGVjb2RlZCBhcyBVVEYtOCAoUmVxdWVzdCBvYmplY3QpCi1QQVNTIFVURi0xNiB3aXRo
b3V0IEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggUmVxdWVzdC50ZXh0KCkKLVBBU1MgVVRGLTE2
IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggd2l0aCBSZXNwb25zZS50ZXh0KCkKLVBBU1Mg
VVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggd2l0aCBmZXRjaGVkIGRhdGEgKFVU
Ri04IGNoYXJzZXQpCi1QQVNTIFVURi0xNiB3aXRob3V0IEJPTSBkZWNvZGVkIGFzIFVURi04IHdp
dGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNldCkKLVBBU1MgVVRGLTE2IHdpdGhvdXQgQk9N
IGRlY29kZWQgYXMgVVRGLTggKFJlc3BvbnNlIG9iamVjdCkKLVBBU1MgVVRGLTE2IHdpdGhvdXQg
Qk9NIGRlY29kZWQgYXMgVVRGLTggKFJlcXVlc3Qgb2JqZWN0KQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90
ZXh0LXV0ZjguYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3RleHQtdXRmOC5hbnktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFmYmQyNDA4OTEzNTNhYjJhYjgwYzZkNTNlYjFhNzA1YTkwZGUwODEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0ZjguYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMyIEBACisKK1BBU1MgVVRGLTggd2l0aCBCT00gd2l0aCBSZXF1ZXN0LnRleHQoKQorUEFTUyBV
VEYtOCB3aXRoIEJPTSB3aXRoIFJlc3BvbnNlLnRleHQoKQorUEFTUyBVVEYtOCB3aXRoIEJPTSB3
aXRoIGZldGNoZWQgZGF0YSAoVVRGLTggY2hhcnNldCkKK1BBU1MgVVRGLTggd2l0aCBCT00gd2l0
aCBmZXRjaGVkIGRhdGEgKFVURi0xNiBjaGFyc2V0KQorUEFTUyBVVEYtOCB3aXRoIEJPTSAoUmVz
cG9uc2Ugb2JqZWN0KQorUEFTUyBVVEYtOCB3aXRoIEJPTSAoUmVxdWVzdCBvYmplY3QpCitQQVNT
IFVURi04IHdpdGhvdXQgQk9NIHdpdGggUmVxdWVzdC50ZXh0KCkKK1BBU1MgVVRGLTggd2l0aG91
dCBCT00gd2l0aCBSZXNwb25zZS50ZXh0KCkKK1BBU1MgVVRGLTggd2l0aG91dCBCT00gd2l0aCBm
ZXRjaGVkIGRhdGEgKFVURi04IGNoYXJzZXQpCitQQVNTIFVURi04IHdpdGhvdXQgQk9NIHdpdGgg
ZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNldCkKK1BBU1MgVVRGLTggd2l0aG91dCBCT00gKFJl
c3BvbnNlIG9iamVjdCkKK1BBU1MgVVRGLTggd2l0aG91dCBCT00gKFJlcXVlc3Qgb2JqZWN0KQor
UEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggUmVxdWVzdC50ZXh0
KCkKK1BBU1MgVVRGLTE2QkUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIFJlc3BvbnNl
LnRleHQoKQorUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0
Y2hlZCBkYXRhIChVVEYtOCBjaGFyc2V0KQorUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVk
IGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNldCkKK1BBU1MgVVRGLTE2
QkUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCAoUmVzcG9uc2Ugb2JqZWN0KQorUEFTUyBVVEYt
MTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IChSZXF1ZXN0IG9iamVjdCkKK1BBU1MgVVRG
LTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIFJlcXVlc3QudGV4dCgpCitQQVNT
IFVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQgYXMgVVRGLTggd2l0aCBSZXNwb25zZS50ZXh0KCkK
K1BBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIGZldGNoZWQgZGF0
YSAoVVRGLTggY2hhcnNldCkKK1BBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYt
OCB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTE2IGNoYXJzZXQpCitQQVNTIFVURi0xNkxFIHdpdGgg
Qk9NIGRlY29kZWQgYXMgVVRGLTggKFJlc3BvbnNlIG9iamVjdCkKK1BBU1MgVVRGLTE2TEUgd2l0
aCBCT00gZGVjb2RlZCBhcyBVVEYtOCAoUmVxdWVzdCBvYmplY3QpCitQQVNTIFVURi0xNiB3aXRo
b3V0IEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggUmVxdWVzdC50ZXh0KCkKK1BBU1MgVVRGLTE2
IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggd2l0aCBSZXNwb25zZS50ZXh0KCkKK1BBU1Mg
VVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggd2l0aCBmZXRjaGVkIGRhdGEgKFVU
Ri04IGNoYXJzZXQpCitQQVNTIFVURi0xNiB3aXRob3V0IEJPTSBkZWNvZGVkIGFzIFVURi04IHdp
dGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNldCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQgQk9N
IGRlY29kZWQgYXMgVVRGLTggKFJlc3BvbnNlIG9iamVjdCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQg
Qk9NIGRlY29kZWQgYXMgVVRGLTggKFJlcXVlc3Qgb2JqZWN0KQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90
ZXh0LXV0ZjguYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0ZjguYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4
MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL3RleHQtdXRmOC5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0
ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90
ZXh0LXV0ZjguYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYmFzaWMvdGV4dC11dGY4LmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWM4Yzg4
ODI1ZDM3YmZhZmU2M2Q3NTdkMzNhOWEzNTI4NGUyMmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMv
dGV4dC11dGY4LmFueS5qcwpAQCAtMCwwICsxLDc0IEBACisvLyBNRVRBOiB0aXRsZT1GZXRjaDog
UmVxdWVzdCBhbmQgUmVzcG9uc2UgdGV4dCgpIHNob3VsZCBkZWNvZGUgYXMgVVRGLTgKKy8vIE1F
VEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0
aWxzLmpzCisKK2Z1bmN0aW9uIHRlc3RUZXh0RGVjb2RpbmcoYm9keSwgZXhwZWN0ZWRUZXh0LCB1
cmxQYXJhbWV0ZXIsIHRpdGxlKQoreworICAgIHZhciBhcnJheUJ1ZmZlciA9IHN0cmluZ1RvQXJy
YXkoYm9keSk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICB2
YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7bWV0aG9kOiAiUE9TVCIsIGJvZHk6IGFycmF5
QnVmZmVyfSk7CisgICAgICAgIHJldHVybiByZXF1ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKHZh
bHVlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBleHBlY3RlZFRleHQsICJS
ZXF1ZXN0LnRleHQoKSBzaG91bGQgZGVjb2RlIGRhdGEgYXMgVVRGLTgiKTsKKyAgICAgICAgfSk7
CisgICAgfSwgdGl0bGUgKyAiIHdpdGggUmVxdWVzdC50ZXh0KCkiKTsKKworICAgIHByb21pc2Vf
dGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25z
ZShhcnJheUJ1ZmZlcik7CisgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbihmdW5j
dGlvbih2YWx1ZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2YWx1ZSwgZXhwZWN0ZWRU
ZXh0LCAiUmVzcG9uc2UudGV4dCgpIHNob3VsZCBkZWNvZGUgZGF0YSBhcyBVVEYtOCIpOworICAg
ICAgICB9KTsKKyAgICB9LCB0aXRsZSArICIgd2l0aCBSZXNwb25zZS50ZXh0KCkiKTsKKworICAg
IHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgIHJldHVybiBmZXRjaCgiLi4v
cmVzb3VyY2VzL3N0YXR1cy5weT9jb2RlPTIwMCZ0eXBlPXRleHQlMkZwbGFpbiUzQmNoYXJzZXQl
M0RVVEYtOCZjb250ZW50PSIgKyB1cmxQYXJhbWV0ZXIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Up
IHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbih2YWx1
ZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIGV4cGVjdGVkVGV4dCwg
IkZldGNoZWQgUmVzcG9uc2UudGV4dCgpIHNob3VsZCBkZWNvZGUgZGF0YSBhcyBVVEYtOCIpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0sIHRpdGxlICsgIiB3aXRoIGZldGNo
ZWQgZGF0YSAoVVRGLTggY2hhcnNldCkiKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0
ZXN0KSB7CisgICAgICAgIHJldHVybiBmZXRjaCgiLi4vcmVzb3VyY2VzL3N0YXR1cy5weT9jb2Rl
PTIwMCZ0eXBlPXRleHQlMkZwbGFpbiUzQmNoYXJzZXQlM0RVVEYtMTYmY29udGVudD0iICsgdXJs
UGFyYW1ldGVyKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICByZXR1cm4g
cmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHZhbHVlLCBleHBlY3RlZFRleHQsICJGZXRjaGVkIFJlc3BvbnNlLnRleHQo
KSBzaG91bGQgZGVjb2RlIGRhdGEgYXMgVVRGLTgiKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICB9LCB0aXRsZSArICIgd2l0aCBmZXRjaGVkIGRhdGEgKFVURi0xNiBjaGFyc2V0
KSIpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICAgICAgcmV0dXJu
IG5ldyBSZXNwb25zZShib2R5KS5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oYnVmZmVyKSB7
CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBVaW50OEFycmF5KGJ1ZmZlciks
IGVuY29kZV91dGY4KGJvZHkpLCAiUmVzcG9uc2UuYXJyYXlCdWZmZXIoKSBzaG91bGQgY29udGFp
biBkYXRhIGVuY29kZWQgYXMgVVRGLTgiKTsKKyAgICAgICAgfSk7CisgICAgfSwgdGl0bGUgKyAi
IChSZXNwb25zZSBvYmplY3QpIik7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkg
eworICAgICAgICByZXR1cm4gbmV3IFJlcXVlc3QoIiIsIHttZXRob2Q6ICJQT1NUIiwgYm9keTog
Ym9keX0pLmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbihidWZmZXIpIHsKKyAgICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSwgZW5jb2RlX3V0Zjgo
Ym9keSksICJSZXF1ZXN0LmFycmF5QnVmZmVyKCkgc2hvdWxkIGNvbnRhaW4gZGF0YSBlbmNvZGVk
IGFzIFVURi04Iik7CisgICAgICAgIH0pOworICAgIH0sIHRpdGxlICsgIiAoUmVxdWVzdCBvYmpl
Y3QpIik7CisKK30KKwordmFyIHV0ZjhXaXRoQk9NID0gIlx4ZWZceGJiXHhiZlx4ZTRceGI4XHg4
OVx4ZTZceDlkXHg5MVx4ZTNceDgxXHg4Ylx4ZTNceDgxXHhhYVx4ZTVceGFkXHg5MCI7Cit2YXIg
dXRmOFdpdGhCT01Bc1VSTFBhcmFtZXRlciA9ICIlRUYlQkIlQkYlRTQlQjglODklRTYlOUQlOTEl
RTMlODElOEIlRTMlODElQUElRTUlQUQlOTAiOwordmFyIHV0ZjhXaXRob3V0Qk9NID0gIlx4ZTRc
eGI4XHg4OVx4ZTZceDlkXHg5MVx4ZTNceDgxXHg4Ylx4ZTNceDgxXHhhYVx4ZTVceGFkXHg5MCI7
Cit2YXIgdXRmOFdpdGhvdXRCT01Bc1VSTFBhcmFtZXRlciA9ICIlRTQlQjglODklRTYlOUQlOTEl
RTMlODElOEIlRTMlODElQUElRTUlQUQlOTAiOwordmFyIHV0ZjhEZWNvZGVkID0gIuS4ieadkeOB
i+OBquWtkCI7Cit0ZXN0VGV4dERlY29kaW5nKHV0ZjhXaXRoQk9NLCB1dGY4RGVjb2RlZCwgdXRm
OFdpdGhCT01Bc1VSTFBhcmFtZXRlciwgIlVURi04IHdpdGggQk9NIik7Cit0ZXN0VGV4dERlY29k
aW5nKHV0ZjhXaXRob3V0Qk9NLCB1dGY4RGVjb2RlZCwgdXRmOFdpdGhvdXRCT01Bc1VSTFBhcmFt
ZXRlciwgIlVURi04IHdpdGhvdXQgQk9NIik7CisKK3ZhciB1dGYxNkJFV2l0aEJPTSA9ICJceGZl
XHhmZlx4NGVceDA5XHg2N1x4NTFceDMwXHg0Ylx4MzBceDZhXHg1Ylx4NTAiOwordmFyIHV0ZjE2
QkVXaXRoQk9NQXNVUkxQYXJhbWV0ZXIgPSAiJWZlJWZmJTRlJTA5JTY3JTUxJTMwJTRiJTMwJTZh
JTViJTUwIjsKK3ZhciB1dGYxNkJFV2l0aEJPTURlY29kZWRBc1VURjggPSAi77+977+9Tlx0Z1Ew
SzBqW1AiOwordGVzdFRleHREZWNvZGluZyh1dGYxNkJFV2l0aEJPTSwgdXRmMTZCRVdpdGhCT01E
ZWNvZGVkQXNVVEY4LCB1dGYxNkJFV2l0aEJPTUFzVVJMUGFyYW1ldGVyLCAiVVRGLTE2QkUgd2l0
aCBCT00gZGVjb2RlZCBhcyBVVEYtOCIpOworCit2YXIgdXRmMTZMRVdpdGhCT00gPSAiXHhmZlx4
ZmVceDA5XHg0ZVx4NTFceDY3XHg0Ylx4MzBceDZhXHgzMFx4NTBceDViIjsKK3ZhciB1dGYxNkxF
V2l0aEJPTUFzVVJMUGFyYW1ldGVyID0gIiVmZiVmZSUwOSU0ZSU1MSU2NyU0YiUzMCU2YSUzMCU1
MCU1YiI7Cit2YXIgdXRmMTZMRVdpdGhCT01EZWNvZGVkQXNVVEY4ID0gIu+/ve+/vVx0TlFnSzBq
MFBbIjsKK3Rlc3RUZXh0RGVjb2RpbmcodXRmMTZMRVdpdGhCT00sIHV0ZjE2TEVXaXRoQk9NRGVj
b2RlZEFzVVRGOCwgdXRmMTZMRVdpdGhCT01Bc1VSTFBhcmFtZXRlciwgIlVURi0xNkxFIHdpdGgg
Qk9NIGRlY29kZWQgYXMgVVRGLTgiKTsKKwordmFyIHV0ZjE2V2l0aG91dEJPTSA9ICJceGU2XHgw
MFx4ZjhceDAwXHhlNVx4MDBceDBhXHgwMFx4YzZceDMwXHhiOVx4MzBceGM4XHgzMFx4MGFceDAw
IjsKK3ZhciB1dGYxNldpdGhvdXRCT01Bc1VSTFBhcmFtZXRlciA9ICIlRTYlMDAlRjglMDAlRTUl
MDAlMEElMDAlQzYlMzAlQjklMzAlQzglMzAlMEElMDAiOwordmFyIHV0ZjE2V2l0aG91dEJPTURl
Y29kZWQgPSAiXHVmZmZkXHUwMDAwXHVmZmZkXHUwMDAwXHVmZmZkXHUwMDAwXHUwMDBhXHUwMDAw
XHVmZmZkXHUwMDMwXHVmZmZkXHUwMDMwXHVmZmZkXHUwMDMwXHUwMDBhXHUwMDAwIjsKK3Rlc3RU
ZXh0RGVjb2RpbmcodXRmMTZXaXRob3V0Qk9NLCB1dGYxNldpdGhvdXRCT01EZWNvZGVkLCB1dGYx
NldpdGhvdXRCT01Bc1VSTFBhcmFtZXRlciwgIlVURi0xNiB3aXRob3V0IEJPTSBkZWNvZGVkIGFz
IFVURi04Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0ZjguYW55Lndvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9iYXNpYy90ZXh0LXV0ZjguYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZi
ZDI0MDg5MTM1M2FiMmFiODBjNmQ1M2ViMWE3MDVhOTBkZTA4MQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL3RleHQtdXRmOC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACisK
K1BBU1MgVVRGLTggd2l0aCBCT00gd2l0aCBSZXF1ZXN0LnRleHQoKQorUEFTUyBVVEYtOCB3aXRo
IEJPTSB3aXRoIFJlc3BvbnNlLnRleHQoKQorUEFTUyBVVEYtOCB3aXRoIEJPTSB3aXRoIGZldGNo
ZWQgZGF0YSAoVVRGLTggY2hhcnNldCkKK1BBU1MgVVRGLTggd2l0aCBCT00gd2l0aCBmZXRjaGVk
IGRhdGEgKFVURi0xNiBjaGFyc2V0KQorUEFTUyBVVEYtOCB3aXRoIEJPTSAoUmVzcG9uc2Ugb2Jq
ZWN0KQorUEFTUyBVVEYtOCB3aXRoIEJPTSAoUmVxdWVzdCBvYmplY3QpCitQQVNTIFVURi04IHdp
dGhvdXQgQk9NIHdpdGggUmVxdWVzdC50ZXh0KCkKK1BBU1MgVVRGLTggd2l0aG91dCBCT00gd2l0
aCBSZXNwb25zZS50ZXh0KCkKK1BBU1MgVVRGLTggd2l0aG91dCBCT00gd2l0aCBmZXRjaGVkIGRh
dGEgKFVURi04IGNoYXJzZXQpCitQQVNTIFVURi04IHdpdGhvdXQgQk9NIHdpdGggZmV0Y2hlZCBk
YXRhIChVVEYtMTYgY2hhcnNldCkKK1BBU1MgVVRGLTggd2l0aG91dCBCT00gKFJlc3BvbnNlIG9i
amVjdCkKK1BBU1MgVVRGLTggd2l0aG91dCBCT00gKFJlcXVlc3Qgb2JqZWN0KQorUEFTUyBVVEYt
MTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggUmVxdWVzdC50ZXh0KCkKK1BBU1Mg
VVRGLTE2QkUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIFJlc3BvbnNlLnRleHQoKQor
UEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0Y2hlZCBkYXRh
IChVVEYtOCBjaGFyc2V0KQorUEFTUyBVVEYtMTZCRSB3aXRoIEJPTSBkZWNvZGVkIGFzIFVURi04
IHdpdGggZmV0Y2hlZCBkYXRhIChVVEYtMTYgY2hhcnNldCkKK1BBU1MgVVRGLTE2QkUgd2l0aCBC
T00gZGVjb2RlZCBhcyBVVEYtOCAoUmVzcG9uc2Ugb2JqZWN0KQorUEFTUyBVVEYtMTZCRSB3aXRo
IEJPTSBkZWNvZGVkIGFzIFVURi04IChSZXF1ZXN0IG9iamVjdCkKK1BBU1MgVVRGLTE2TEUgd2l0
aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIFJlcXVlc3QudGV4dCgpCitQQVNTIFVURi0xNkxF
IHdpdGggQk9NIGRlY29kZWQgYXMgVVRGLTggd2l0aCBSZXNwb25zZS50ZXh0KCkKK1BBU1MgVVRG
LTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIGZldGNoZWQgZGF0YSAoVVRGLTgg
Y2hhcnNldCkKK1BBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVjb2RlZCBhcyBVVEYtOCB3aXRoIGZl
dGNoZWQgZGF0YSAoVVRGLTE2IGNoYXJzZXQpCitQQVNTIFVURi0xNkxFIHdpdGggQk9NIGRlY29k
ZWQgYXMgVVRGLTggKFJlc3BvbnNlIG9iamVjdCkKK1BBU1MgVVRGLTE2TEUgd2l0aCBCT00gZGVj
b2RlZCBhcyBVVEYtOCAoUmVxdWVzdCBvYmplY3QpCitQQVNTIFVURi0xNiB3aXRob3V0IEJPTSBk
ZWNvZGVkIGFzIFVURi04IHdpdGggUmVxdWVzdC50ZXh0KCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQg
Qk9NIGRlY29kZWQgYXMgVVRGLTggd2l0aCBSZXNwb25zZS50ZXh0KCkKK1BBU1MgVVRGLTE2IHdp
dGhvdXQgQk9NIGRlY29kZWQgYXMgVVRGLTggd2l0aCBmZXRjaGVkIGRhdGEgKFVURi04IGNoYXJz
ZXQpCitQQVNTIFVURi0xNiB3aXRob3V0IEJPTSBkZWNvZGVkIGFzIFVURi04IHdpdGggZmV0Y2hl
ZCBkYXRhIChVVEYtMTYgY2hhcnNldCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29kZWQg
YXMgVVRGLTggKFJlc3BvbnNlIG9iamVjdCkKK1BBU1MgVVRGLTE2IHdpdGhvdXQgQk9NIGRlY29k
ZWQgYXMgVVRGLTggKFJlcXVlc3Qgb2JqZWN0KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy90ZXh0LXV0Zjgu
YW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYmFzaWMvdGV4dC11dGY4LmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvdGV4dC11dGY4LmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRo
aXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVu
IHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9iYXNpYy90ZXh0LXV0ZjguaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3RleHQtdXRmOC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlNWM1NjdiOWM0NTMxMTEzYzEyYTNjNTZkMGY1ZDljMTUxNzU4
OWEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3Rl
eHQtdXRmOC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotPCFkb2N0eXBlIGh0
bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRpdGxlPkZldGNoOiBSZXF1ZXN0IGFuZCBSZXNw
b25zZSB0ZXh0KCkgc2hvdWxkIGRlY29kZSBhcyBVVEYtODwvdGl0bGU+Ci08c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIiAvPgotCi08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3RUZXh0RGVjb2RpbmcoYm9keSwgZXhwZWN0ZWRUZXh0LCB1cmxQYXJhbWV0ZXIs
IHRpdGxlKQotewotICAgIHZhciBhcnJheUJ1ZmZlciA9IHN0cmluZ1RvQXJyYXkoYm9keSk7Ci0K
LSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgICAgICB2YXIgcmVxdWVzdCA9
IG5ldyBSZXF1ZXN0KCIiLCB7bWV0aG9kOiAiUE9TVCIsIGJvZHk6IGFycmF5QnVmZmVyfSk7Ci0g
ICAgICAgIHJldHVybiByZXF1ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCBleHBlY3RlZFRleHQsICJSZXF1ZXN0LnRleHQo
KSBzaG91bGQgZGVjb2RlIGRhdGEgYXMgVVRGLTgiKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgdGl0
bGUgKyAiIHdpdGggUmVxdWVzdC50ZXh0KCkiKTsKLQotICAgIHByb21pc2VfdGVzdChmdW5jdGlv
bih0ZXN0KSB7Ci0gICAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZShhcnJheUJ1ZmZl
cik7Ci0gICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbih2YWx1ZSkg
ewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2YWx1ZSwgZXhwZWN0ZWRUZXh0LCAiUmVzcG9u
c2UudGV4dCgpIHNob3VsZCBkZWNvZGUgZGF0YSBhcyBVVEYtOCIpOwotICAgICAgICB9KTsKLSAg
ICB9LCB0aXRsZSArICIgd2l0aCBSZXNwb25zZS50ZXh0KCkiKTsKLQotICAgIHByb21pc2VfdGVz
dChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgIHJldHVybiBmZXRjaCgiLi4vcmVzb3VyY2VzL3N0
YXR1cy5weT9jb2RlPTIwMCZ0eXBlPXRleHQlMkZwbGFpbiUzQmNoYXJzZXQlM0RVVEYtOCZjb250
ZW50PSIgKyB1cmxQYXJhbWV0ZXIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAg
ICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbih2YWx1ZSkgewotICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIGV4cGVjdGVkVGV4dCwgIkZldGNoZWQgUmVz
cG9uc2UudGV4dCgpIHNob3VsZCBkZWNvZGUgZGF0YSBhcyBVVEYtOCIpOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOwotICAgIH0sIHRpdGxlICsgIiB3aXRoIGZldGNoZWQgZGF0YSAoVVRG
LTggY2hhcnNldCkiKTsKLQotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAg
ICAgIHJldHVybiBmZXRjaCgiLi4vcmVzb3VyY2VzL3N0YXR1cy5weT9jb2RlPTIwMCZ0eXBlPXRl
eHQlMkZwbGFpbiUzQmNoYXJzZXQlM0RVVEYtMTYmY29udGVudD0iICsgdXJsUGFyYW1ldGVyKS50
aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4
dCgpLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHZhbHVlLCBleHBlY3RlZFRleHQsICJGZXRjaGVkIFJlc3BvbnNlLnRleHQoKSBzaG91bGQgZGVj
b2RlIGRhdGEgYXMgVVRGLTgiKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9
LCB0aXRsZSArICIgd2l0aCBmZXRjaGVkIGRhdGEgKFVURi0xNiBjaGFyc2V0KSIpOwotCi0gICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25z
ZShib2R5KS5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oYnVmZmVyKSB7Ci0gICAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKG5ldyBVaW50OEFycmF5KGJ1ZmZlciksIGVuY29kZV91dGY4
KGJvZHkpLCAiUmVzcG9uc2UuYXJyYXlCdWZmZXIoKSBzaG91bGQgY29udGFpbiBkYXRhIGVuY29k
ZWQgYXMgVVRGLTgiKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgdGl0bGUgKyAiIChSZXNwb25zZSBv
YmplY3QpIik7Ci0KLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgICAgICBy
ZXR1cm4gbmV3IFJlcXVlc3QoIiIsIHttZXRob2Q6ICJQT1NUIiwgYm9keTogYm9keX0pLmFycmF5
QnVmZmVyKCkudGhlbihmdW5jdGlvbihidWZmZXIpIHsKLSAgICAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMobmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSwgZW5jb2RlX3V0ZjgoYm9keSksICJSZXF1
ZXN0LmFycmF5QnVmZmVyKCkgc2hvdWxkIGNvbnRhaW4gZGF0YSBlbmNvZGVkIGFzIFVURi04Iik7
Ci0gICAgICAgIH0pOwotICAgIH0sIHRpdGxlICsgIiAoUmVxdWVzdCBvYmplY3QpIik7Ci0KLX0K
LQotdmFyIHV0ZjhXaXRoQk9NID0gIlx4ZWZceGJiXHhiZlx4ZTRceGI4XHg4OVx4ZTZceDlkXHg5
MVx4ZTNceDgxXHg4Ylx4ZTNceDgxXHhhYVx4ZTVceGFkXHg5MCI7Ci12YXIgdXRmOFdpdGhCT01B
c1VSTFBhcmFtZXRlciA9ICIlRUYlQkIlQkYlRTQlQjglODklRTYlOUQlOTElRTMlODElOEIlRTMl
ODElQUElRTUlQUQlOTAiOwotdmFyIHV0ZjhXaXRob3V0Qk9NID0gIlx4ZTRceGI4XHg4OVx4ZTZc
eDlkXHg5MVx4ZTNceDgxXHg4Ylx4ZTNceDgxXHhhYVx4ZTVceGFkXHg5MCI7Ci12YXIgdXRmOFdp
dGhvdXRCT01Bc1VSTFBhcmFtZXRlciA9ICIlRTQlQjglODklRTYlOUQlOTElRTMlODElOEIlRTMl
ODElQUElRTUlQUQlOTAiOwotdmFyIHV0ZjhEZWNvZGVkID0gIuS4ieadkeOBi+OBquWtkCI7Ci10
ZXN0VGV4dERlY29kaW5nKHV0ZjhXaXRoQk9NLCB1dGY4RGVjb2RlZCwgdXRmOFdpdGhCT01Bc1VS
TFBhcmFtZXRlciwgIlVURi04IHdpdGggQk9NIik7Ci10ZXN0VGV4dERlY29kaW5nKHV0ZjhXaXRo
b3V0Qk9NLCB1dGY4RGVjb2RlZCwgdXRmOFdpdGhvdXRCT01Bc1VSTFBhcmFtZXRlciwgIlVURi04
IHdpdGhvdXQgQk9NIik7Ci0KLXZhciB1dGYxNkJFV2l0aEJPTSA9ICJceGZlXHhmZlx4NGVceDA5
XHg2N1x4NTFceDMwXHg0Ylx4MzBceDZhXHg1Ylx4NTAiOwotdmFyIHV0ZjE2QkVXaXRoQk9NQXNV
UkxQYXJhbWV0ZXIgPSAiJWZlJWZmJTRlJTA5JTY3JTUxJTMwJTRiJTMwJTZhJTViJTUwIjsKLXZh
ciB1dGYxNkJFV2l0aEJPTURlY29kZWRBc1VURjggPSAi77+977+9Tlx0Z1EwSzBqW1AiOwotdGVz
dFRleHREZWNvZGluZyh1dGYxNkJFV2l0aEJPTSwgdXRmMTZCRVdpdGhCT01EZWNvZGVkQXNVVEY4
LCB1dGYxNkJFV2l0aEJPTUFzVVJMUGFyYW1ldGVyLCAiVVRGLTE2QkUgd2l0aCBCT00gZGVjb2Rl
ZCBhcyBVVEYtOCIpOwotCi12YXIgdXRmMTZMRVdpdGhCT00gPSAiXHhmZlx4ZmVceDA5XHg0ZVx4
NTFceDY3XHg0Ylx4MzBceDZhXHgzMFx4NTBceDViIjsKLXZhciB1dGYxNkxFV2l0aEJPTUFzVVJM
UGFyYW1ldGVyID0gIiVmZiVmZSUwOSU0ZSU1MSU2NyU0YiUzMCU2YSUzMCU1MCU1YiI7Ci12YXIg
dXRmMTZMRVdpdGhCT01EZWNvZGVkQXNVVEY4ID0gIu+/ve+/vVx0TlFnSzBqMFBbIjsKLXRlc3RU
ZXh0RGVjb2RpbmcodXRmMTZMRVdpdGhCT00sIHV0ZjE2TEVXaXRoQk9NRGVjb2RlZEFzVVRGOCwg
dXRmMTZMRVdpdGhCT01Bc1VSTFBhcmFtZXRlciwgIlVURi0xNkxFIHdpdGggQk9NIGRlY29kZWQg
YXMgVVRGLTgiKTsKLQotdmFyIHV0ZjE2V2l0aG91dEJPTSA9ICJceGU2XHgwMFx4ZjhceDAwXHhl
NVx4MDBceDBhXHgwMFx4YzZceDMwXHhiOVx4MzBceGM4XHgzMFx4MGFceDAwIjsKLXZhciB1dGYx
NldpdGhvdXRCT01Bc1VSTFBhcmFtZXRlciA9ICIlRTYlMDAlRjglMDAlRTUlMDAlMEElMDAlQzYl
MzAlQjklMzAlQzglMzAlMEElMDAiOwotdmFyIHV0ZjE2V2l0aG91dEJPTURlY29kZWQgPSAiXHVm
ZmZkXHUwMDAwXHVmZmZkXHUwMDAwXHVmZmZkXHUwMDAwXHUwMDBhXHUwMDAwXHVmZmZkXHUwMDMw
XHVmZmZkXHUwMDMwXHVmZmZkXHUwMDMwXHUwMDBhXHUwMDAwIjsKLXRlc3RUZXh0RGVjb2Rpbmco
dXRmMTZXaXRob3V0Qk9NLCB1dGYxNldpdGhvdXRCT01EZWNvZGVkLCB1dGYxNldpdGhvdXRCT01B
c1VSTFBhcmFtZXRlciwgIlVURi0xNiB3aXRob3V0IEJPTSBkZWNvZGVkIGFzIFVURi04Iik7Ci0K
LTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy93M2MtaW1wb3J0
LmxvZwppbmRleCBiYjBlMzUzM2M3OGRhZDg2YTI3MWI1M2Q2NGE5YTkyNzYyNThiNGJlLi45MzQ3
YmNjMjYxMGZkZTk4OTU0NTNkY2E2NjFjYWY0NGM5MjBmNmZjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy93M2Mt
aW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy93M2MtaW1wb3J0LmxvZwpAQCAtMTYsOCArMTYsOCBAQCBOb25l
CiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2FjY2VwdC1oZWFkZXIuYW55LmpzCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvYmxvY2stbWlt
ZS1hcy1zY3JpcHQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRpdGlvbmFsLWdldC5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvZXJyb3ItYWZ0
ZXItcmVzcG9uc2UuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL2NvbmRpdGlvbmFsLWdldC5hbnkuanMKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1h
ZnRlci1yZXNwb25zZS5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9oZWFkZXItdmFsdWUtY29tYmluaW5nLmFueS5qcwog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL2hlYWRlci12YWx1ZS1udWxsLWJ5dGUuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvaGlzdG9yaWNhbC5hbnkuanMK
QEAgLTMwLDYgKzMwLDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWZvcmJpZGRlbi1o
ZWFkZXJzLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZC5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRl
cnMtY2FzZS5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtbm9uYXNjaWkuYW55LmpzCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMv
cmVxdWVzdC1oZWFkZXJzLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtcmVmZXJyZXItcmVkaXJlY3RlZC13
b3JrZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtcmVmZXJyZXIuYW55LmpzCkBAIC00MSw0ICs0Miw0IEBA
IExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYmFzaWMvc2NoZW1lLW90aGVycy5zdWIuYW55LmpzCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvc3RyZWFt
LXJlc3BvbnNlLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3N0cmVhbS1zYWZlLWNyZWF0aW9uLmFueS5qcwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3Rl
eHQtdXRmOC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvdGV4dC11dGY4LmFueS5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5
cGUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2JvZHkvbWltZS10eXBlLmFueS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWM5ODkxN2I0NDExOWJlZDgxYzlkNzc5YThiMzI1OTI3YmMzYWM5YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2JvZHkvbWltZS10eXBlLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisK
K0ZBSUwgUmVxdWVzdDogb3ZlcnJpZGluZyBleHBsaWNpdCBDb250ZW50LVR5cGUgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgInRlc3QvdGVzdCIgYnV0IGdvdCAidGV4dC9wbGFpbiIKK0ZBSUwgUmVz
cG9uc2U6IG92ZXJyaWRpbmcgZXhwbGljaXQgQ29udGVudC1UeXBlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJ0ZXN0L3Rlc3QiIGJ1dCBnb3QgInRleHQvcGxhaW4iCitGQUlMIFJlcXVlc3Q6IHJl
bW92aW5nIGltcGxpY2l0IENvbnRlbnQtVHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiIiBi
dXQgZ290ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIK
K0ZBSUwgUmVzcG9uc2U6IHJlbW92aW5nIGltcGxpY2l0IENvbnRlbnQtVHlwZSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAiIiBidXQgZ290ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29k
ZWQ7Y2hhcnNldD11dGYtOCIKK0ZBSUwgUmVxdWVzdDogc2V0dGluZyBtaXNzaW5nIENvbnRlbnQt
VHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGVzdC90ZXN0IiBidXQgZ290ICIiCitGQUlM
IFJlc3BvbnNlOiBzZXR0aW5nIG1pc3NpbmcgQ29udGVudC1UeXBlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJ0ZXN0L3Rlc3QiIGJ1dCBnb3QgIiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUu
YW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9ib2R5L21pbWUtdHlwZS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5
M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5
cGUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYm9keS9taW1lLXR5cGUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwZjkwYTBhYmRmYzNlNjcyOTk3
NjA3NjExNDM4ZmYwMDQ5ZWNmMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9ib2R5L21pbWUtdHlwZS5hbnku
anMKQEAgLTAsMCArMSw0MCBAQAorWworICgpID0+IG5ldyBSZXF1ZXN0KCJhYm91dDpibGFuayIs
IHsgaGVhZGVyczogeyAiQ29udGVudC1UeXBlIjogInRleHQvcGxhaW4iIH0gfSksCisgKCkgPT4g
bmV3IFJlc3BvbnNlKCIiLCB7IGhlYWRlcnM6IHsgIkNvbnRlbnQtVHlwZSI6ICJ0ZXh0L3BsYWlu
IiB9IH0pCitdLmZvckVhY2goYm9keUNvbnRhaW5lckNyZWF0b3IgPT4geworICBjb25zdCBib2R5
Q29udGFpbmVyID0gYm9keUNvbnRhaW5lckNyZWF0b3IoKTsKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIGFzc2VydF9lcXVhbHMoYm9keUNvbnRhaW5lci5oZWFkZXJzLmdldCgiQ29u
dGVudC1UeXBlIiksICJ0ZXh0L3BsYWluIik7CisgICAgY29uc3QgbmV3TUlNRVR5cGUgPSAidGVz
dC90ZXN0IjsKKyAgICBib2R5Q29udGFpbmVyLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCBu
ZXdNSU1FVHlwZSk7CisgICAgY29uc3QgYmxvYiA9IGF3YWl0IGJvZHlDb250YWluZXIuYmxvYigp
OworICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCBuZXdNSU1FVHlwZSk7CisgIH0sIGAke2Jv
ZHlDb250YWluZXIuY29uc3RydWN0b3IubmFtZX06IG92ZXJyaWRpbmcgZXhwbGljaXQgQ29udGVu
dC1UeXBlYCk7Cit9KTsKKworWworICAoKSA9PiBuZXcgUmVxdWVzdCgiYWJvdXQ6YmxhbmsiLCB7
IGJvZHk6IG5ldyBVUkxTZWFyY2hQYXJhbXMoKSwgbWV0aG9kOiAiUE9TVCIgfSksCisgICgpID0+
IG5ldyBSZXNwb25zZShuZXcgVVJMU2VhcmNoUGFyYW1zKCkpLAorXS5mb3JFYWNoKGJvZHlDb250
YWluZXJDcmVhdG9yID0+IHsKKyAgY29uc3QgYm9keUNvbnRhaW5lciA9IGJvZHlDb250YWluZXJD
cmVhdG9yKCk7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxz
KGJvZHlDb250YWluZXIuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAiYXBwbGljYXRpb24v
eC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiKTsKKyAgICBib2R5Q29udGFpbmVy
LmhlYWRlcnMuZGVsZXRlKCJDb250ZW50LVR5cGUiKTsKKyAgICBjb25zdCBibG9iID0gYXdhaXQg
Ym9keUNvbnRhaW5lci5ibG9iKCk7CisgICAgYXNzZXJ0X2VxdWFscyhibG9iLnR5cGUsICIiKTsK
KyAgfSwgYCR7Ym9keUNvbnRhaW5lci5jb25zdHJ1Y3Rvci5uYW1lfTogcmVtb3ZpbmcgaW1wbGlj
aXQgQ29udGVudC1UeXBlYCk7Cit9KTsKKworWworICAoKSA9PiBuZXcgUmVxdWVzdCgiYWJvdXQ6
YmxhbmsiLCB7IGJvZHk6IG5ldyBBcnJheUJ1ZmZlcigpLCBtZXRob2Q6ICJQT1NUIiB9KSwKKyAg
KCkgPT4gbmV3IFJlc3BvbnNlKG5ldyBBcnJheUJ1ZmZlcigpKSwKK10uZm9yRWFjaChib2R5Q29u
dGFpbmVyQ3JlYXRvciA9PiB7CisgIGNvbnN0IGJvZHlDb250YWluZXIgPSBib2R5Q29udGFpbmVy
Q3JlYXRvcigpOworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgYXNzZXJ0X2VxdWFs
cyhib2R5Q29udGFpbmVyLmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSwgbnVsbCk7CisgICAg
Y29uc3QgbmV3TUlNRVR5cGUgPSAidGVzdC90ZXN0IjsKKyAgICBib2R5Q29udGFpbmVyLmhlYWRl
cnMuc2V0KCJDb250ZW50LVR5cGUiLCBuZXdNSU1FVHlwZSk7CisgICAgY29uc3QgYmxvYiA9IGF3
YWl0IGJvZHlDb250YWluZXIuYmxvYigpOworICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCBu
ZXdNSU1FVHlwZSk7CisgIH0sIGAke2JvZHlDb250YWluZXIuY29uc3RydWN0b3IubmFtZX06IHNl
dHRpbmcgbWlzc2luZyBDb250ZW50LVR5cGVgKTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5
cGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9ib2R5L21pbWUtdHlwZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45Yzk4OTE3YjQ0MTE5YmVkODFjOWQ3NzlhOGIzMjU5MjdiYzNh
YzlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55Lndvcmtlci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw4IEBACisKK0ZBSUwgUmVxdWVzdDogb3ZlcnJpZGluZyBleHBsaWNpdCBD
b250ZW50LVR5cGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRlc3QvdGVzdCIgYnV0IGdvdCAi
dGV4dC9wbGFpbiIKK0ZBSUwgUmVzcG9uc2U6IG92ZXJyaWRpbmcgZXhwbGljaXQgQ29udGVudC1U
eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXN0L3Rlc3QiIGJ1dCBnb3QgInRleHQvcGxh
aW4iCitGQUlMIFJlcXVlc3Q6IHJlbW92aW5nIGltcGxpY2l0IENvbnRlbnQtVHlwZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiIiBidXQgZ290ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVu
Y29kZWQ7Y2hhcnNldD11dGYtOCIKK0ZBSUwgUmVzcG9uc2U6IHJlbW92aW5nIGltcGxpY2l0IENv
bnRlbnQtVHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiIiBidXQgZ290ICJhcHBsaWNhdGlv
bi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIKK0ZBSUwgUmVxdWVzdDogc2V0
dGluZyBtaXNzaW5nIENvbnRlbnQtVHlwZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGVzdC90
ZXN0IiBidXQgZ290ICIiCitGQUlMIFJlc3BvbnNlOiBzZXR0aW5nIG1pc3NpbmcgQ29udGVudC1U
eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXN0L3Rlc3QiIGJ1dCBnb3QgIiIKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYm9keS9taW1lLXR5cGUuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS9taW1lLXR5cGUuYW55Lndv
cmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBi
NTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9ib2R5L21pbWUtdHlwZS5hbnkud29ya2VyLmh0bWwKQEAg
LTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGlu
ZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYm9keS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2JvZHkvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWE0M2VjMTRhMzM0MTg4MTFmZDczMGExY2QxYWM4ZmE0Y2I2ZWIw
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2JvZHkvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAor
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
K0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2Yg
ZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYm9keS9taW1lLXR5cGUuYW55LmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtbXVsdGlwbGUt
b3JpZ2lucy5zdWIuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLW11bHRpcGxlLW9yaWdpbnMuc3ViLmFueS5qcwpp
bmRleCBiMTAzNGViNzI3NGEzMDdkN2YxNGUwOWQ2NTAyNzdhMzhiMzI5MjE0Li5iM2FiYjkyMjg0
MWM2M2U1Y2NiYjYzM2Q2MGQyOWY3NjdmMDU4NmFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtbXVsdGlw
bGUtb3JpZ2lucy5zdWIuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1tdWx0aXBsZS1vcmlnaW5zLnN1Yi5h
bnkuanMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgogLy8g
TUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcwogCiBmdW5jdGlvbiBjb3JzTXVsdGlw
bGVPcmlnaW5zKG9yaWdpbkxpc3QpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVk
aXJlY3QuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWRpcmVjdC5hbnkuanMKaW5kZXggN2Vk
NTQzMTliNGU5MGM5OGZmMDMyOGVlN2IzZTYxZjg1NTFlOWE1Zi4uMTVmNzY1OWFiZDIxNTY5Yjc5
YzdiNDRjNDY5YzI3Mjc0MzM5YTYxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWRp
cmVjdC5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWRpcmVjdC5hbnkuanMKQEAgLTEs
MyArMSw0IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVUQTogc2NyaXB0
PS9jb21tb24vdXRpbHMuanMKIC8vIE1FVEE6IHNjcmlwdD0uLi9yZXNvdXJjZXMvdXRpbHMuanMK
IC8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9j
b3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVyLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJl
ZmxpZ2h0LXJlZmVycmVyLmFueS1leHBlY3RlZC50eHQKaW5kZXggMjZiNjMxNzBkOTllMTFiOWNj
MWM3MWRkYTFmNDMyNzc1MGJjZmIyZi4uZWQ2MDNkNWM4NDA1ZWE1MzMwZWZkZDc5OTkxNmZkZWFi
OTM4M2EyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWZlcnJlci5hbnktZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVmZXJyZXIuYW55LWV4cGVjdGVkLnR4dApA
QCAtMSw4ICsxLDEwIEBACiAKIFBBU1MgUmVmZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlciBhbmQg
cmVmZXJyZXI6IGRlZmF1bHQKIFBBU1MgUmVmZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlciBhbmQg
cmVmZXJyZXI6ICdteXJlZmVycmVyJwotUEFTUyBSZWZlcnJlciBwb2xpY3k6ICIiIGFuZCByZWZl
cnJlcjogZGVmYXVsdAotUEFTUyBSZWZlcnJlciBwb2xpY3k6ICIiIGFuZCByZWZlcnJlcjogJ215
cmVmZXJyZXInCitGQUlMIFJlZmVycmVyIHBvbGljeTogIiIgYW5kIHJlZmVycmVyOiBkZWZhdWx0
IGFzc2VydF9lcXVhbHM6IFByZWZsaWdodCdzIHJlZmVycmVyIGlzIGNvcnJlY3QgZXhwZWN0ZWQg
Imh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC8iIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9m
ZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWZlcnJlci5hbnkuaHRtbCIKK0ZBSUwgUmVm
ZXJyZXIgcG9saWN5OiAiIiBhbmQgcmVmZXJyZXI6ICdteXJlZmVycmVyJyBhc3NlcnRfZXF1YWxz
OiBQcmVmbGlnaHQncyByZWZlcnJlciBpcyBjb3JyZWN0IGV4cGVjdGVkICJodHRwOi8vbG9jYWxo
b3N0Ojg4MDAvIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvZmV0Y2gvYXBpL2NvcnMv
bXlyZWZlcnJlciIKK1BBU1MgUmVmZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlci13aGVuLWRvd25n
cmFkZSBhbmQgcmVmZXJyZXI6IGRlZmF1bHQKK1BBU1MgUmVmZXJyZXIgcG9saWN5OiBuby1yZWZl
cnJlci13aGVuLWRvd25ncmFkZSBhbmQgcmVmZXJyZXI6ICdteXJlZmVycmVyJwogUEFTUyBSZWZl
cnJlciBwb2xpY3k6IG9yaWdpbiBhbmQgcmVmZXJyZXI6IGRlZmF1bHQKIFBBU1MgUmVmZXJyZXIg
cG9saWN5OiBvcmlnaW4gYW5kIHJlZmVycmVyOiAnbXlyZWZlcnJlcicKIFBBU1MgUmVmZXJyZXIg
cG9saWN5OiBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gYW5kIHJlZmVycmVyOiBkZWZhdWx0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVyLmFueS5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVm
bGlnaHQtcmVmZXJyZXIuYW55LmpzCmluZGV4IDZkNjliMzI4NjQ0YThhYTIxNTViMjVhMTUzYjA5
NGZlYzJiZjE4ZGUuLjVkZjlmY2YxNDI5YTdhZTBjNGI2MDIwY2ZjYjY2OWM3YWU2MGI5MmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVmZXJyZXIuYW55LmpzCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1w
cmVmbGlnaHQtcmVmZXJyZXIuYW55LmpzCkBAIC0zNSw4ICszNSwxMSBAQCB2YXIgb3JpZ2luID0g
Z2V0X2hvc3RfaW5mbygpLkhUVFBfT1JJR0lOICsgIi8iOwogY29yc1ByZWZsaWdodFJlZmVycmVy
KCJSZWZlcnJlciBwb2xpY3k6IG5vLXJlZmVycmVyIiwgY29yc1VybCwgIm5vLXJlZmVycmVyIiwg
dW5kZWZpbmVkLCAiIik7CiBjb3JzUHJlZmxpZ2h0UmVmZXJyZXIoIlJlZmVycmVyIHBvbGljeTog
bm8tcmVmZXJyZXIiLCBjb3JzVXJsLCAibm8tcmVmZXJyZXIiLCAibXlyZWZlcnJlciIsICIiKTsK
IAotY29yc1ByZWZsaWdodFJlZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6IFwiXCIiLCBjb3JzVXJs
LCAiIiwgdW5kZWZpbmVkLCBsb2NhdGlvbi50b1N0cmluZygpKQotY29yc1ByZWZsaWdodFJlZmVy
cmVyKCJSZWZlcnJlciBwb2xpY3k6IFwiXCIiLCBjb3JzVXJsLCAiIiwgIm15cmVmZXJyZXIiLCBu
ZXcgVVJMKCJteXJlZmVycmVyIiwgbG9jYXRpb24pLnRvU3RyaW5nKCkpOworY29yc1ByZWZsaWdo
dFJlZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6IFwiXCIiLCBjb3JzVXJsLCAiIiwgdW5kZWZpbmVk
LCBvcmlnaW4pOworY29yc1ByZWZsaWdodFJlZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6IFwiXCIi
LCBjb3JzVXJsLCAiIiwgIm15cmVmZXJyZXIiLCBvcmlnaW4pOworCitjb3JzUHJlZmxpZ2h0UmVm
ZXJyZXIoIlJlZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiLCBjb3Jz
VXJsLCAibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiLCB1bmRlZmluZWQsIGxvY2F0aW9uLnRv
U3RyaW5nKCkpCitjb3JzUHJlZmxpZ2h0UmVmZXJyZXIoIlJlZmVycmVyIHBvbGljeTogbm8tcmVm
ZXJyZXItd2hlbi1kb3duZ3JhZGUiLCBjb3JzVXJsLCAibm8tcmVmZXJyZXItd2hlbi1kb3duZ3Jh
ZGUiLCAibXlyZWZlcnJlciIsIG5ldyBVUkwoIm15cmVmZXJyZXIiLCBsb2NhdGlvbikudG9TdHJp
bmcoKSk7CiAKIGNvcnNQcmVmbGlnaHRSZWZlcnJlcigiUmVmZXJyZXIgcG9saWN5OiBvcmlnaW4i
LCBjb3JzVXJsLCAib3JpZ2luIiwgdW5kZWZpbmVkLCBvcmlnaW4pOwogY29yc1ByZWZsaWdodFJl
ZmVycmVyKCJSZWZlcnJlciBwb2xpY3k6IG9yaWdpbiIsIGNvcnNVcmwsICJvcmlnaW4iLCAibXly
ZWZlcnJlciIsIG9yaWdpbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVy
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1yZWZlcnJlci5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAyNmI2MzE3MGQ5OWUxMWI5Y2MxYzcxZGRhMWY0MzI3
NzUwYmNmYjJmLi4wOGZhN2E0M2VkOWQwZDBhZDA5MGMzNDhiMDc2NjY1MzlmZmQzNjBjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXJlZmVycmVyLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVmZXJyZXIuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
QEAgLTEsOCArMSwxMCBAQAogCiBQQVNTIFJlZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXIgYW5k
IHJlZmVycmVyOiBkZWZhdWx0CiBQQVNTIFJlZmVycmVyIHBvbGljeTogbm8tcmVmZXJyZXIgYW5k
IHJlZmVycmVyOiAnbXlyZWZlcnJlcicKLVBBU1MgUmVmZXJyZXIgcG9saWN5OiAiIiBhbmQgcmVm
ZXJyZXI6IGRlZmF1bHQKLVBBU1MgUmVmZXJyZXIgcG9saWN5OiAiIiBhbmQgcmVmZXJyZXI6ICdt
eXJlZmVycmVyJworRkFJTCBSZWZlcnJlciBwb2xpY3k6ICIiIGFuZCByZWZlcnJlcjogZGVmYXVs
dCBhc3NlcnRfZXF1YWxzOiBQcmVmbGlnaHQncyByZWZlcnJlciBpcyBjb3JyZWN0IGV4cGVjdGVk
ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAv
ZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVmZXJyZXIuYW55Lndvcmtlci5qcyIKK0ZB
SUwgUmVmZXJyZXIgcG9saWN5OiAiIiBhbmQgcmVmZXJyZXI6ICdteXJlZmVycmVyJyBhc3NlcnRf
ZXF1YWxzOiBQcmVmbGlnaHQncyByZWZlcnJlciBpcyBjb3JyZWN0IGV4cGVjdGVkICJodHRwOi8v
bG9jYWxob3N0Ojg4MDAvIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvZmV0Y2gvYXBp
L2NvcnMvbXlyZWZlcnJlciIKK1BBU1MgUmVmZXJyZXIgcG9saWN5OiBuby1yZWZlcnJlci13aGVu
LWRvd25ncmFkZSBhbmQgcmVmZXJyZXI6IGRlZmF1bHQKK1BBU1MgUmVmZXJyZXIgcG9saWN5OiBu
by1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBhbmQgcmVmZXJyZXI6ICdteXJlZmVycmVyJwogUEFT
UyBSZWZlcnJlciBwb2xpY3k6IG9yaWdpbiBhbmQgcmVmZXJyZXI6IGRlZmF1bHQKIFBBU1MgUmVm
ZXJyZXIgcG9saWN5OiBvcmlnaW4gYW5kIHJlZmVycmVyOiAnbXlyZWZlcnJlcicKIFBBU1MgUmVm
ZXJyZXIgcG9saWN5OiBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gYW5kIHJlZmVycmVyOiBkZWZh
dWx0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9jcmVkZW50aWFscy9hdXRoZW50aWNhdGlvbi1iYXNpYy5hbnkuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jcmVk
ZW50aWFscy9hdXRoZW50aWNhdGlvbi1iYXNpYy5hbnkuanMKaW5kZXggNDk2OWIzMDQyZThkY2Rl
NTZiMGFkYjcwOGZiMmM1ZjY0ZDE4YTllYi4uYmFiYzVkMDAzYjEwOGU2ZDI0OTllMGUwZWQwY2My
N2Y0MTMwYWYxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY3JlZGVudGlhbHMvYXV0aGVudGljYXRpb24tYmFzaWMuYW55
LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2NyZWRlbnRpYWxzL2F1dGhlbnRpY2F0aW9uLWJhc2ljLmFueS5qcwpAQCAtMSwzICsx
LDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4v
cmVzb3VyY2VzL3V0aWxzLmpzCiAKIGZ1bmN0aW9uIGJhc2ljQXV0aChkZXNjLCB1c2VyLCBwYXNz
LCBtb2RlLCBzdGF0dXMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NyZWRlbnRpYWxzL2Nvb2tpZXMuYW55LmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY3Jl
ZGVudGlhbHMvY29va2llcy5hbnkuanMKaW5kZXggYjY1YTg2NmMwOWJjZTM4ZmM4ZGZmZjIwMjE2
ZWY5NzgwYzAwZTgxNy4uZGUzMGU0Nzc2NTVjMjg1MTg3M2U3NWEzNDAxOWYzMDY0NDY3OWFjMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvY3JlZGVudGlhbHMvY29va2llcy5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY3JlZGVudGlhbHMvY29va2ll
cy5hbnkuanMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgog
Ly8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcwogCiBmdW5jdGlvbiBjb29raWVz
KGRlc2MsIGNyZWRlbnRpYWxzMSwgY3JlZGVudGlhbHMyICxjb29raWVzKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9o
ZWFkZXJzL2hlYWRlci12YWx1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDIyYzY5ZWM2NjIyYmM2
ZDQxZmE4NTA0YzNmZjk2ZmZmYTQ2ODE0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotCi1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUg
eCUwMHggbmVlZHMgdG8gdGhyb3cKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlIHglMDB4IG5lZWRz
IHRvIHRocm93Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgeCUwQXggbmVlZHMgdG8g
dGhyb3cKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlIHglMEF4IG5lZWRzIHRvIHRocm93Ci1QQVNT
IFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgeCUwRHggbmVlZHMgdG8gdGhyb3cKLVBBU1MgZmV0
Y2goKSB3aXRoIHZhbHVlIHglMER4IG5lZWRzIHRvIHRocm93Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0
IHdpdGggYWxsIHZhbGlkIHZhbHVlcwotUEFTUyBmZXRjaCgpIHdpdGggYWxsIHZhbGlkIHZhbHVl
cwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXplLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVyLXZhbHVlcy1ub3JtYWxpemUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZmQ0ZmFiZTdhYjkwYjgxZGM0MDlmNThiMzM1NjU1MzI0MGFm
NzQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMv
aGVhZGVyLXZhbHVlcy1ub3JtYWxpemUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NjQgKzAsMCBAQAotCi1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTAwCi1QQVNTIGZl
dGNoKCkgd2l0aCB2YWx1ZSAlMDAKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMDEK
LVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwMQotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZh
bHVlICUwMgotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTAyCi1QQVNTIFhNTEh0dHBSZXF1ZXN0
IHdpdGggdmFsdWUgJTAzCi1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDMKLVBBU1MgWE1MSHR0
cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMDQKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwNAotUEFT
UyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUwNQotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUg
JTA1Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTA2Ci1QQVNTIGZldGNoKCkgd2l0
aCB2YWx1ZSAlMDYKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMDcKLVBBU1MgZmV0
Y2goKSB3aXRoIHZhbHVlICUwNwotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUwOAot
UEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTA4Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFs
dWUgJTA5Ci1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDkKLVBBU1MgWE1MSHR0cFJlcXVlc3Qg
d2l0aCB2YWx1ZSAlMEEKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwQQotUEFTUyBYTUxIdHRw
UmVxdWVzdCB3aXRoIHZhbHVlICUwRAotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTBECi1QQVNT
IFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTBFCi1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAl
MEUKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMEYKLVBBU1MgZmV0Y2goKSB3aXRo
IHZhbHVlICUwRgotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxMAotUEFTUyBmZXRj
aCgpIHdpdGggdmFsdWUgJTEwCi1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTExCi1Q
QVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTEKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1
ZSAlMTIKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxMgotUEFTUyBYTUxIdHRwUmVxdWVzdCB3
aXRoIHZhbHVlICUxMwotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTEzCi1QQVNTIFhNTEh0dHBS
ZXF1ZXN0IHdpdGggdmFsdWUgJTE0Ci1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTQKLVBBU1Mg
WE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMTUKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUx
NQotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxNgotUEFTUyBmZXRjaCgpIHdpdGgg
dmFsdWUgJTE2Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTE3Ci1QQVNTIGZldGNo
KCkgd2l0aCB2YWx1ZSAlMTcKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMTgKLVBB
U1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxOAotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVl
ICUxOQotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTE5Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdp
dGggdmFsdWUgJTFBCi1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMUEKLVBBU1MgWE1MSHR0cFJl
cXVlc3Qgd2l0aCB2YWx1ZSAlMUIKLVBBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxQgotUEFTUyBY
TUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxQwotUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTFD
Ci1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTFECi1QQVNTIGZldGNoKCkgd2l0aCB2
YWx1ZSAlMUQKLVBBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMUUKLVBBU1MgZmV0Y2go
KSB3aXRoIHZhbHVlICUxRQotUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxRgotUEFT
UyBmZXRjaCgpIHdpdGggdmFsdWUgJTFGCi1QQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUg
JTIwCi1QQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMjAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFk
ZXItdmFsdWVzLW5vcm1hbGl6ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVz
LW5vcm1hbGl6ZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmZDRmYWJlN2FiOTBiODFk
YzQwOWY1OGIzMzU2NTUzMjQwYWY3NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12
YWx1ZXMtbm9ybWFsaXplLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2NCBAQAorCitQQVNT
IFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTAwCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAl
MDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMDEKK1BBU1MgZmV0Y2goKSB3aXRo
IHZhbHVlICUwMQorUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUwMgorUEFTUyBmZXRj
aCgpIHdpdGggdmFsdWUgJTAyCitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTAzCitQ
QVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDMKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1
ZSAlMDQKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwNAorUEFTUyBYTUxIdHRwUmVxdWVzdCB3
aXRoIHZhbHVlICUwNQorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTA1CitQQVNTIFhNTEh0dHBS
ZXF1ZXN0IHdpdGggdmFsdWUgJTA2CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDYKK1BBU1Mg
WE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMDcKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUw
NworUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUwOAorUEFTUyBmZXRjaCgpIHdpdGgg
dmFsdWUgJTA4CitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTA5CitQQVNTIGZldGNo
KCkgd2l0aCB2YWx1ZSAlMDkKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMEEKK1BB
U1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwQQorUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVl
ICUwRAorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTBECitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdp
dGggdmFsdWUgJTBFCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMEUKK1BBU1MgWE1MSHR0cFJl
cXVlc3Qgd2l0aCB2YWx1ZSAlMEYKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwRgorUEFTUyBY
TUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxMAorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTEw
CitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTExCitQQVNTIGZldGNoKCkgd2l0aCB2
YWx1ZSAlMTEKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMTIKK1BBU1MgZmV0Y2go
KSB3aXRoIHZhbHVlICUxMgorUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxMworUEFT
UyBmZXRjaCgpIHdpdGggdmFsdWUgJTEzCitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUg
JTE0CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTQKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0
aCB2YWx1ZSAlMTUKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxNQorUEFTUyBYTUxIdHRwUmVx
dWVzdCB3aXRoIHZhbHVlICUxNgorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTE2CitQQVNTIFhN
TEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTE3CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTcK
K1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMTgKK1BBU1MgZmV0Y2goKSB3aXRoIHZh
bHVlICUxOAorUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxOQorUEFTUyBmZXRjaCgp
IHdpdGggdmFsdWUgJTE5CitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTFBCitQQVNT
IGZldGNoKCkgd2l0aCB2YWx1ZSAlMUEKK1BBU1MgWE1MSHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAl
MUIKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxQgorUEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRo
IHZhbHVlICUxQworUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTFDCitQQVNTIFhNTEh0dHBSZXF1
ZXN0IHdpdGggdmFsdWUgJTFECitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMUQKK1BBU1MgWE1M
SHR0cFJlcXVlc3Qgd2l0aCB2YWx1ZSAlMUUKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxRQor
UEFTUyBYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICUxRgorUEFTUyBmZXRjaCgpIHdpdGggdmFs
dWUgJTFGCitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgJTIwCitQQVNTIGZldGNoKCkg
d2l0aCB2YWx1ZSAlMjAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6
ZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy1ub3JtYWxpemUuYW55Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy1ub3JtYWxpemUuYW55Lmh0bWwKQEAgLTAsMCAr
MSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3Ry
dWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5hbnkuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9o
ZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXplLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTQ3ODlj
NWIwYjU3OGQ1ZjM2NzRiMTY1Y2Y2OGQ2ZmJhZDYzNjY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVy
cy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5hbnkuanMKQEAgLTAsMCArMSw3MCBAQAorLy8gTUVU
QTogdGl0bGU9SGVhZGVyIHZhbHVlIG5vcm1hbGl6aW5nIHRlc3QKKy8vIE1FVEE6IGdsb2JhbD13
aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKKworZm9yKGxldCBpID0gMDsgaSA8
IDB4MjE7IGkrKykgeworICBsZXQgZmFpbCA9IGZhbHNlLAorICAgICAgc3RyaXAgPSBmYWxzZQor
CisgIC8vIFJFTU9WRSAweDBCLzB4MEMgZXhjZXB0aW9uIG9uY2UgaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzgzNzIgaXMgZml4ZWQKKyAgaWYoaSA9PT0g
MHgwQiB8fCBpID09PSAweDBDKQorICAgIGNvbnRpbnVlCisKKyAgaWYoaSA9PT0gMCkgeworICAg
IGZhaWwgPSB0cnVlCisgIH0KKworICBpZihpID09PSAweDA5IHx8IGkgPT09IDB4MEEgfHwgaSA9
PT0gMHgwRCB8fCBpID09PSAweDIwKSB7CisgICAgc3RyaXAgPSB0cnVlCisgIH0KKworICBsZXQg
dXJsID0gIi4uL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHk/aGVhZGVycz12YWwxfHZhbDJ8
dmFsMyIsCisgICAgICB2YWwgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpLAorICAgICAgZXhwZWN0
ZWRWYWwgPSBzdHJpcCA/ICIiIDogdmFsLAorICAgICAgdmFsMSA9IHZhbCwKKyAgICAgIGV4cGVj
dGVkVmFsMSA9IGV4cGVjdGVkVmFsLAorICAgICAgdmFsMiA9ICJ4IiArIHZhbCwKKyAgICAgIGV4
cGVjdGVkVmFsMiA9ICJ4IiArIGV4cGVjdGVkVmFsLAorICAgICAgdmFsMyA9IHZhbCArICJ4IiwK
KyAgICAgIGV4cGVjdGVkVmFsMyA9IGV4cGVjdGVkVmFsICsgIngiCisKKyAgLy8gWE1MSHR0cFJl
cXVlc3QgaXMgbm90IGF2YWlsYWJsZSBpbiBzZXJ2aWNlIHdvcmtlcnMKKyAgaWYgKCFzZWxmLkdM
T0JBTC5pc1dvcmtlcigpKSB7CisgICAgYXN5bmNfdGVzdCgodCkgPT4geworICAgICAgbGV0IHho
ciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpCisgICAgICB4aHIub3BlbigiUE9TVCIsIHVybCkKKyAg
ICAgIGlmKGZhaWwpIHsKKyAgICAgICAgICBhc3NlcnRfdGhyb3dzX2RvbSgiU3ludGF4RXJyb3Ii
LCAoKSA9PiB4aHIuc2V0UmVxdWVzdEhlYWRlcigidmFsMSIsIHZhbDEpKQorICAgICAgICAgIGFz
c2VydF90aHJvd3NfZG9tKCJTeW50YXhFcnJvciIsICgpID0+IHhoci5zZXRSZXF1ZXN0SGVhZGVy
KCJ2YWwyIiwgdmFsMikpCisgICAgICAgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9y
IiwgKCkgPT4geGhyLnNldFJlcXVlc3RIZWFkZXIoInZhbDMiLCB2YWwzKSkKKyAgICAgICAgICB0
LmRvbmUoKQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoInZh
bDEiLCB2YWwxKQorICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigidmFsMiIsIHZhbDIpCisg
ICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJ2YWwzIiwgdmFsMykKKyAgICAgICAgeGhyLm9u
bG9hZCA9IHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
eGhyLmdldFJlc3BvbnNlSGVhZGVyKCJ4LXJlcXVlc3QtdmFsMSIpLCBleHBlY3RlZFZhbDEpCisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyh4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoIngtcmVxdWVzdC12
YWwyIiksIGV4cGVjdGVkVmFsMikKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHhoci5nZXRSZXNw
b25zZUhlYWRlcigieC1yZXF1ZXN0LXZhbDMiKSwgZXhwZWN0ZWRWYWwzKQorICAgICAgICB9KQor
ICAgICAgICB4aHIuc2VuZCgpCisgICAgICB9CisgICAgfSwgIlhNTEh0dHBSZXF1ZXN0IHdpdGgg
dmFsdWUgIiArIGVuY29kZVVSSSh2YWwpKQorICB9CisKKyAgcHJvbWlzZV90ZXN0KCh0KSA9PiB7
CisgICAgaWYoZmFpbCkgeworICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgcHJv
bWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwgZmV0Y2godXJsLCB7IGhlYWRlcnM6IHsidmFs
MSI6IHZhbDF9IH0pKSwKKyAgICAgICAgcHJvbWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwg
ZmV0Y2godXJsLCB7IGhlYWRlcnM6IHsidmFsMiI6IHZhbDJ9IH0pKSwKKyAgICAgICAgcHJvbWlz
ZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwgZmV0Y2godXJsLCB7IGhlYWRlcnM6IHsidmFsMyI6
IHZhbDN9IH0pKQorICAgICAgXSkKKyAgICB9IGVsc2UgeworICAgICAgcmV0dXJuIGZldGNoKHVy
bCwgeyBoZWFkZXJzOiB7InZhbDEiOiB2YWwxLCAidmFsMiI6IHZhbDIsICJ2YWwzIjogdmFsM30g
fSkudGhlbigocmVzKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzLmhlYWRlcnMuZ2V0
KCJ4LXJlcXVlc3QtdmFsMSIpLCBleHBlY3RlZFZhbDEpCisgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVzLmhlYWRlcnMuZ2V0KCJ4LXJlcXVlc3QtdmFsMiIpLCBleHBlY3RlZFZhbDIpCisgICAgICAg
IGFzc2VydF9lcXVhbHMocmVzLmhlYWRlcnMuZ2V0KCJ4LXJlcXVlc3QtdmFsMyIpLCBleHBlY3Rl
ZFZhbDMpCisgICAgICB9KQorICAgIH0KKyAgfSwgImZldGNoKCkgd2l0aCB2YWx1ZSAiICsgZW5j
b2RlVVJJKHZhbCkpCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXpl
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6ZS5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTU1ZTE3OTY3Y2EzOGMwYTUxOGZi
YTIyM2NjYTA2NzEwZGI2Y2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVz
LW5vcm1hbGl6ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBACisKK1BB
U1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwMAorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTAxCitQ
QVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDIKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwMwor
UEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTA0CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDUK
K1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwNgorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTA3
CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMDgKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUw
OQorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTBBCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAl
MEQKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUwRQorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUg
JTBGCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTAKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVl
ICUxMQorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTEyCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1
ZSAlMTMKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxNAorUEFTUyBmZXRjaCgpIHdpdGggdmFs
dWUgJTE1CitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMTYKK1BBU1MgZmV0Y2goKSB3aXRoIHZh
bHVlICUxNworUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTE4CitQQVNTIGZldGNoKCkgd2l0aCB2
YWx1ZSAlMTkKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUxQQorUEFTUyBmZXRjaCgpIHdpdGgg
dmFsdWUgJTFCCitQQVNTIGZldGNoKCkgd2l0aCB2YWx1ZSAlMUMKK1BBU1MgZmV0Y2goKSB3aXRo
IHZhbHVlICUxRAorUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgJTFFCitQQVNTIGZldGNoKCkgd2l0
aCB2YWx1ZSAlMUYKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlICUyMAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFk
ZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXplLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVy
LXZhbHVlcy1ub3JtYWxpemUuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1Mjhl
NjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hl
YWRlci12YWx1ZXMtbm9ybWFsaXplLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0t
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8g
cnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXplLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
ci12YWx1ZXMtbm9ybWFsaXplLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQy
ZGEzMjMzMmUwNDY4YWMzOTkzY2ZlOWYwYjc1NGJiZTlhODkzMGIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLW5vcm1hbGl6
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08
bWV0YSBjaGFyc2V0PXV0Zjg+Ci08bWV0YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25nPgotPHRp
dGxlPkhlYWRlciB2YWx1ZSBub3JtYWxpemluZyB0ZXN0PC90aXRsZT4KLTxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPGRpdiBpZD1sb2c+PC9kaXY+Ci08c2Ny
aXB0PgotZm9yKGxldCBpID0gMDsgaSA8IDB4MjE7IGkrKykgewotICBsZXQgZmFpbCA9IGZhbHNl
LAotICAgICAgc3RyaXAgPSBmYWxzZQotCi0gIC8vIFJFTU9WRSAweDBCLzB4MEMgZXhjZXB0aW9u
IG9uY2UgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzgz
NzIgaXMgZml4ZWQKLSAgaWYoaSA9PT0gMHgwQiB8fCBpID09PSAweDBDKQotICAgIGNvbnRpbnVl
Ci0KLSAgaWYoaSA9PT0gMCkgewotICAgIGZhaWwgPSB0cnVlCi0gIH0KLQotICBpZihpID09PSAw
eDA5IHx8IGkgPT09IDB4MEEgfHwgaSA9PT0gMHgwRCB8fCBpID09PSAweDIwKSB7Ci0gICAgc3Ry
aXAgPSB0cnVlCi0gIH0KLQotICBsZXQgdXJsID0gIi4uL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRl
cnMucHk/aGVhZGVycz12YWwxfHZhbDJ8dmFsMyIsCi0gICAgICB2YWwgPSBTdHJpbmcuZnJvbUNo
YXJDb2RlKGkpLAotICAgICAgZXhwZWN0ZWRWYWwgPSBzdHJpcCA/ICIiIDogdmFsLAotICAgICAg
dmFsMSA9IHZhbCwKLSAgICAgIGV4cGVjdGVkVmFsMSA9IGV4cGVjdGVkVmFsLAotICAgICAgdmFs
MiA9ICJ4IiArIHZhbCwKLSAgICAgIGV4cGVjdGVkVmFsMiA9ICJ4IiArIGV4cGVjdGVkVmFsLAot
ICAgICAgdmFsMyA9IHZhbCArICJ4IiwKLSAgICAgIGV4cGVjdGVkVmFsMyA9IGV4cGVjdGVkVmFs
ICsgIngiCi0KLSAgYXN5bmNfdGVzdCgodCkgPT4gewotICAgIGxldCB4aHIgPSBuZXcgWE1MSHR0
cFJlcXVlc3QoKQotICAgIHhoci5vcGVuKCJQT1NUIiwgdXJsKQotICAgIGlmKGZhaWwpIHsKLSAg
ICAgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9yIiwgKCkgPT4geGhyLnNldFJlcXVl
c3RIZWFkZXIoInZhbDEiLCB2YWwxKSkKLSAgICAgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRh
eEVycm9yIiwgKCkgPT4geGhyLnNldFJlcXVlc3RIZWFkZXIoInZhbDIiLCB2YWwyKSkKLSAgICAg
ICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9yIiwgKCkgPT4geGhyLnNldFJlcXVlc3RI
ZWFkZXIoInZhbDMiLCB2YWwzKSkKLSAgICAgICAgdC5kb25lKCkKLSAgICB9IGVsc2UgewotICAg
ICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoInZhbDEiLCB2YWwxKQotICAgICAgeGhyLnNldFJlcXVl
c3RIZWFkZXIoInZhbDIiLCB2YWwyKQotICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoInZhbDMi
LCB2YWwzKQotICAgICAgeGhyLm9ubG9hZCA9IHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4gewotICAg
ICAgICBhc3NlcnRfZXF1YWxzKHhoci5nZXRSZXNwb25zZUhlYWRlcigieC1yZXF1ZXN0LXZhbDEi
KSwgZXhwZWN0ZWRWYWwxKQotICAgICAgICBhc3NlcnRfZXF1YWxzKHhoci5nZXRSZXNwb25zZUhl
YWRlcigieC1yZXF1ZXN0LXZhbDIiKSwgZXhwZWN0ZWRWYWwyKQotICAgICAgICBhc3NlcnRfZXF1
YWxzKHhoci5nZXRSZXNwb25zZUhlYWRlcigieC1yZXF1ZXN0LXZhbDMiKSwgZXhwZWN0ZWRWYWwz
KQotICAgICAgfSkKLSAgICAgIHhoci5zZW5kKCkKLSAgICB9Ci0gIH0sICJYTUxIdHRwUmVxdWVz
dCB3aXRoIHZhbHVlICIgKyBlbmNvZGVVUkkodmFsKSkKLQotICBwcm9taXNlX3Rlc3QoKHQpID0+
IHsKLSAgICBpZihmYWlsKSB7Ci0gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwotICAgICAgICBw
cm9taXNlX3JlamVjdHNfanModCwgVHlwZUVycm9yLCBmZXRjaCh1cmwsIHsgaGVhZGVyczogeyJ2
YWwxIjogdmFsMX0gfSkpLAotICAgICAgICBwcm9taXNlX3JlamVjdHNfanModCwgVHlwZUVycm9y
LCBmZXRjaCh1cmwsIHsgaGVhZGVyczogeyJ2YWwyIjogdmFsMn0gfSkpLAotICAgICAgICBwcm9t
aXNlX3JlamVjdHNfanModCwgVHlwZUVycm9yLCBmZXRjaCh1cmwsIHsgaGVhZGVyczogeyJ2YWwz
IjogdmFsM30gfSkpCi0gICAgICBdKQotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gZmV0Y2go
dXJsLCB7IGhlYWRlcnM6IHsidmFsMSI6IHZhbDEsICJ2YWwyIjogdmFsMiwgInZhbDMiOiB2YWwz
fSB9KS50aGVuKChyZXMpID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXMuaGVhZGVycy5n
ZXQoIngtcmVxdWVzdC12YWwxIiksIGV4cGVjdGVkVmFsMSkKLSAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZXMuaGVhZGVycy5nZXQoIngtcmVxdWVzdC12YWwyIiksIGV4cGVjdGVkVmFsMikKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXMuaGVhZGVycy5nZXQoIngtcmVxdWVzdC12YWwzIiksIGV4cGVj
dGVkVmFsMykKLSAgICAgIH0pCi0gICAgfQotICB9LCAiZmV0Y2goKSB3aXRoIHZhbHVlICIgKyBl
bmNvZGVVUkkodmFsKSkKLX0KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFs
dWVzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMuYW55LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMjJjNjllYzY2MjJiYzZkNDFmYTg1MDRjM2ZmOTZmZmZhNDY4MTQyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLmFueS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorCitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgeCUwMHggbmVl
ZHMgdG8gdGhyb3cKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlIHglMDB4IG5lZWRzIHRvIHRocm93
CitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggdmFsdWUgeCUwQXggbmVlZHMgdG8gdGhyb3cKK1BB
U1MgZmV0Y2goKSB3aXRoIHZhbHVlIHglMEF4IG5lZWRzIHRvIHRocm93CitQQVNTIFhNTEh0dHBS
ZXF1ZXN0IHdpdGggdmFsdWUgeCUwRHggbmVlZHMgdG8gdGhyb3cKK1BBU1MgZmV0Y2goKSB3aXRo
IHZhbHVlIHglMER4IG5lZWRzIHRvIHRocm93CitQQVNTIFhNTEh0dHBSZXF1ZXN0IHdpdGggYWxs
IHZhbGlkIHZhbHVlcworUEFTUyBmZXRjaCgpIHdpdGggYWxsIHZhbGlkIHZhbHVlcworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMu
YW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1
NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy5hbnkuaHRtbApAQCAt
MCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMuYW55LmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVy
cy9oZWFkZXItdmFsdWVzLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTgyOWQ4ZDRlZDYyMThiOGMzZWJk
ZTAzY2FmN2FlNzMyMTExYzEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVz
LmFueS5qcwpAQCAtMCwwICsxLDYxIEBACisvLyBNRVRBOiB0aXRsZT1IZWFkZXIgdmFsdWUgdGVz
dAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpbWVvdXQ9bG9uZwor
CisvLyBJbnZhbGlkIHZhbHVlcworWzAsIDB4MEEsIDB4MERdLmZvckVhY2godmFsID0+IHsKKyAg
dmFsID0gIngiICsgU3RyaW5nLmZyb21DaGFyQ29kZSh2YWwpICsgIngiCisKKyAgLy8gWE1MSHR0
cFJlcXVlc3QgaXMgbm90IGF2YWlsYWJsZSBpbiBzZXJ2aWNlIHdvcmtlcnMKKyAgaWYgKCFzZWxm
LkdMT0JBTC5pc1dvcmtlcigpKSB7CisgICAgdGVzdCgoKSA9PiB7CisgICAgICBsZXQgeGhyID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCkKKyAgICAgIHhoci5vcGVuKCJQT1NUIiwgIi8iKQorICAgICAg
YXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9yIiwgKCkgPT4geGhyLnNldFJlcXVlc3RIZWFk
ZXIoInZhbHVlLXRlc3QiLCB2YWwpKQorICAgIH0sICJYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVl
ICIgKyBlbmNvZGVVUkkodmFsKSArICIgbmVlZHMgdG8gdGhyb3ciKQorICB9CisKKyAgcHJvbWlz
ZV90ZXN0KHQgPT4gcHJvbWlzZV9yZWplY3RzX2pzKHQsIFR5cGVFcnJvciwgZmV0Y2goIi8iLCB7
IGhlYWRlcnM6IHsidmFsdWUtdGVzdCI6IHZhbH0gfSkpLCAiZmV0Y2goKSB3aXRoIHZhbHVlICIg
KyBlbmNvZGVVUkkodmFsKSArICIgbmVlZHMgdG8gdGhyb3ciKQorfSkKKworLy8gVmFsaWQgdmFs
dWVzCitsZXQgaGVhZGVyVmFsdWVzID1bXQorZm9yKGxldCBpID0gMDsgaSA8IDB4MTAwOyBpKysp
IHsKKyAgaWYoaSA9PT0gMCB8fCBpID09PSAweDBBIHx8IGkgPT09IDB4MEQpIHsKKyAgICBjb250
aW51ZQorICB9CisgIGhlYWRlclZhbHVlcy5wdXNoKCJ4IiArIFN0cmluZy5mcm9tQ2hhckNvZGUo
aSkgKyAieCIpCit9Cit2YXIgdXJsID0gIi4uL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHk/
aGVhZGVycz0iCitoZWFkZXJWYWx1ZXMuZm9yRWFjaCgoXywgaSkgPT4geworICB1cmwgKz0gInZh
bCIgKyBpICsgInwiCit9KQorCisvLyBYTUxIdHRwUmVxdWVzdCBpcyBub3QgYXZhaWxhYmxlIGlu
IHNlcnZpY2Ugd29ya2VycworaWYgKCFzZWxmLkdMT0JBTC5pc1dvcmtlcigpKSB7CisgIGFzeW5j
X3Rlc3QoKHQpID0+IHsKKyAgICBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCkKKyAgICB4
aHIub3BlbigiUE9TVCIsIHVybCkKKyAgICBoZWFkZXJWYWx1ZXMuZm9yRWFjaCgodmFsLCBpKSA9
PiB7CisgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigidmFsIiArIGksIHZhbCkKKyAgICB9KQor
ICAgIHhoci5vbmxvYWQgPSB0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAgICAgIGhlYWRlclZh
bHVlcy5mb3JFYWNoKCh2YWwsIGkpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh4aHIuZ2V0
UmVzcG9uc2VIZWFkZXIoIngtcmVxdWVzdC12YWwiICsgaSksIHZhbCkKKyAgICAgIH0pCisgICAg
fSkKKyAgICB4aHIuc2VuZCgpCisgIH0sICJYTUxIdHRwUmVxdWVzdCB3aXRoIGFsbCB2YWxpZCB2
YWx1ZXMiKQorfQorCitwcm9taXNlX3Rlc3QoKHQpID0+IHsKKyAgY29uc3QgaGVhZGVycyA9IG5l
dyBIZWFkZXJzCisgIGhlYWRlclZhbHVlcy5mb3JFYWNoKCh2YWwsIGkpID0+IHsKKyAgICBoZWFk
ZXJzLmFwcGVuZCgidmFsIiArIGksIHZhbCkKKyAgfSkKKyAgcmV0dXJuIGZldGNoKHVybCwgeyBo
ZWFkZXJzIH0pLnRoZW4oKHJlcykgPT4geworICAgIGhlYWRlclZhbHVlcy5mb3JFYWNoKCh2YWws
IGkpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMocmVzLmhlYWRlcnMuZ2V0KCJ4LXJlcXVlc3Qt
dmFsIiArIGkpLCB2YWwpCisgICAgfSkKKyAgfSkKK30sICJmZXRjaCgpIHdpdGggYWxsIHZhbGlk
IHZhbHVlcyIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjY3YmVlNGM3Y2IxNTRmZTI1MzBkOGJkOWQ0MzBiNDEwMjlhMGFmNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKKworUEFTUyBmZXRjaCgpIHdpdGggdmFsdWUgeCUwMHggbmVlZHMgdG8g
dGhyb3cKK1BBU1MgZmV0Y2goKSB3aXRoIHZhbHVlIHglMEF4IG5lZWRzIHRvIHRocm93CitQQVNT
IGZldGNoKCkgd2l0aCB2YWx1ZSB4JTBEeCBuZWVkcyB0byB0aHJvdworUEFTUyBmZXRjaCgpIHdp
dGggYWxsIHZhbGlkIHZhbHVlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMuYW55
Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLmFueS53b3JrZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXItdmFsdWVzLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1
cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZh
bHVlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjhiZmE5MWJmNWQ4MWQ5
NTE0MWVlMTcwZjg1NmY5ZGVmZDg5OTRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNTkgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zjg+Ci08bWV0
YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25nPgotPHRpdGxlPkhlYWRlciB2YWx1ZSB0ZXN0PC90
aXRsZT4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPGRp
diBpZD1sb2c+PC9kaXY+Ci08c2NyaXB0PgotLy8gSW52YWxpZCB2YWx1ZXMKLVswLCAweDBBLCAw
eDBEXS5mb3JFYWNoKHZhbCA9PiB7Ci0gIHZhbCA9ICJ4IiArIFN0cmluZy5mcm9tQ2hhckNvZGUo
dmFsKSArICJ4IgotICB0ZXN0KCgpID0+IHsKLSAgICBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCkKLSAgICB4aHIub3BlbigiUE9TVCIsICIvIikKLSAgICBhc3NlcnRfdGhyb3dzX2RvbSgi
U3ludGF4RXJyb3IiLCAoKSA9PiB4aHIuc2V0UmVxdWVzdEhlYWRlcigidmFsdWUtdGVzdCIsIHZh
bCkpCi0gIH0sICJYTUxIdHRwUmVxdWVzdCB3aXRoIHZhbHVlICIgKyBlbmNvZGVVUkkodmFsKSAr
ICIgbmVlZHMgdG8gdGhyb3ciKQotCi0gIHByb21pc2VfdGVzdCh0ID0+IHByb21pc2VfcmVqZWN0
c19qcyh0LCBUeXBlRXJyb3IsIGZldGNoKCIvIiwgeyBoZWFkZXJzOiB7InZhbHVlLXRlc3QiOiB2
YWx9IH0pKSwgImZldGNoKCkgd2l0aCB2YWx1ZSAiICsgZW5jb2RlVVJJKHZhbCkgKyAiIG5lZWRz
IHRvIHRocm93IikKLX0pCi0KLS8vIFZhbGlkIHZhbHVlcwotbGV0IGhlYWRlclZhbHVlcyA9W10K
LWZvcihsZXQgaSA9IDA7IGkgPCAweDEwMDsgaSsrKSB7Ci0gIGlmKGkgPT09IDAgfHwgaSA9PT0g
MHgwQSB8fCBpID09PSAweDBEKSB7Ci0gICAgY29udGludWUKLSAgfQotICBoZWFkZXJWYWx1ZXMu
cHVzaCgieCIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpICsgIngiKQotfQotdmFyIHVybCA9ICIu
Li9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5P2hlYWRlcnM9IgotaGVhZGVyVmFsdWVzLmZv
ckVhY2goKF8sIGkpID0+IHsKLSAgdXJsICs9ICJ2YWwiICsgaSArICJ8IgotfSkKLQotYXN5bmNf
dGVzdCgodCkgPT4gewotICBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCkKLSAgeGhyLm9w
ZW4oIlBPU1QiLCB1cmwpCi0gIGhlYWRlclZhbHVlcy5mb3JFYWNoKCh2YWwsIGkpID0+IHsKLSAg
ICB4aHIuc2V0UmVxdWVzdEhlYWRlcigidmFsIiArIGksIHZhbCkKLSAgfSkKLSAgeGhyLm9ubG9h
ZCA9IHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4gewotICAgIGhlYWRlclZhbHVlcy5mb3JFYWNoKCh2
YWwsIGkpID0+IHsKLSAgICAgIGFzc2VydF9lcXVhbHMoeGhyLmdldFJlc3BvbnNlSGVhZGVyKCJ4
LXJlcXVlc3QtdmFsIiArIGkpLCB2YWwpCi0gICAgfSkKLSAgfSkKLSAgeGhyLnNlbmQoKQotfSwg
IlhNTEh0dHBSZXF1ZXN0IHdpdGggYWxsIHZhbGlkIHZhbHVlcyIpCi0KLXByb21pc2VfdGVzdCgo
dCkgPT4gewotICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMKLSAgaGVhZGVyVmFsdWVzLmZv
ckVhY2goKHZhbCwgaSkgPT4gewotICAgIGhlYWRlcnMuYXBwZW5kKCJ2YWwiICsgaSwgdmFsKQot
ICB9KQotICByZXR1cm4gZmV0Y2godXJsLCB7IGhlYWRlcnMgfSkudGhlbigocmVzKSA9PiB7Ci0g
ICAgaGVhZGVyVmFsdWVzLmZvckVhY2goKHZhbCwgaSkgPT4gewotICAgICAgYXNzZXJ0X2VxdWFs
cyhyZXMuaGVhZGVycy5nZXQoIngtcmVxdWVzdC12YWwiICsgaSksIHZhbCkKLSAgICB9KQotICB9
KQotfSwgImZldGNoKCkgd2l0aCBhbGwgdmFsaWQgdmFsdWVzIikKLTwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNp
Yy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5YjI1MmFhZGYz
ZjVhNzRmZjE0NmUyNWJjY2RiZjYzNzExOTRlZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLQotUEFTUyBDcmVhdGUgaGVhZGVycyBmcm9tIG5v
IHBhcmFtZXRlcgotUEFTUyBDcmVhdGUgaGVhZGVycyBmcm9tIHVuZGVmaW5lZCBwYXJhbWV0ZXIK
LVBBU1MgQ3JlYXRlIGhlYWRlcnMgZnJvbSBlbXB0eSBvYmplY3QKLVBBU1MgQ3JlYXRlIGhlYWRl
cnMgd2l0aCBudWxsIHNob3VsZCB0aHJvdwotUEFTUyBDcmVhdGUgaGVhZGVycyB3aXRoIDEgc2hv
dWxkIHRocm93Ci1QQVNTIENyZWF0ZSBoZWFkZXJzIHdpdGggc2VxdWVuY2UKLVBBU1MgQ3JlYXRl
IGhlYWRlcnMgd2l0aCByZWNvcmQKLVBBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCBleGlzdGluZyBo
ZWFkZXJzCi1QQVNTIENyZWF0ZSBoZWFkZXJzIHdpdGggZXhpc3RpbmcgaGVhZGVycyB3aXRoIGN1
c3RvbSBpdGVyYXRvcgotUEFTUyBDaGVjayBhcHBlbmQgbWV0aG9kCi1QQVNTIENoZWNrIHNldCBt
ZXRob2QKLVBBU1MgQ2hlY2sgaGFzIG1ldGhvZAotUEFTUyBDaGVjayBkZWxldGUgbWV0aG9kCi1Q
QVNTIENoZWNrIGdldCBtZXRob2QKLVBBU1MgQ2hlY2sga2V5cyBtZXRob2QKLVBBU1MgQ2hlY2sg
dmFsdWVzIG1ldGhvZAotUEFTUyBDaGVjayBlbnRyaWVzIG1ldGhvZAotUEFTUyBDaGVjayBTeW1i
b2wuaXRlcmF0b3IgbWV0aG9kCi1QQVNTIENoZWNrIGZvckVhY2ggbWV0aG9kCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJh
c2ljLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjliMjUyYWFkZjNmNWE3NGZmMTQ2ZTI1
YmNjZGJmNjM3MTE5NGVlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5h
bnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKworUEFTUyBDcmVhdGUgaGVhZGVycyBm
cm9tIG5vIHBhcmFtZXRlcgorUEFTUyBDcmVhdGUgaGVhZGVycyBmcm9tIHVuZGVmaW5lZCBwYXJh
bWV0ZXIKK1BBU1MgQ3JlYXRlIGhlYWRlcnMgZnJvbSBlbXB0eSBvYmplY3QKK1BBU1MgQ3JlYXRl
IGhlYWRlcnMgd2l0aCBudWxsIHNob3VsZCB0aHJvdworUEFTUyBDcmVhdGUgaGVhZGVycyB3aXRo
IDEgc2hvdWxkIHRocm93CitQQVNTIENyZWF0ZSBoZWFkZXJzIHdpdGggc2VxdWVuY2UKK1BBU1Mg
Q3JlYXRlIGhlYWRlcnMgd2l0aCByZWNvcmQKK1BBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCBleGlz
dGluZyBoZWFkZXJzCitQQVNTIENyZWF0ZSBoZWFkZXJzIHdpdGggZXhpc3RpbmcgaGVhZGVycyB3
aXRoIGN1c3RvbSBpdGVyYXRvcgorUEFTUyBDaGVjayBhcHBlbmQgbWV0aG9kCitQQVNTIENoZWNr
IHNldCBtZXRob2QKK1BBU1MgQ2hlY2sgaGFzIG1ldGhvZAorUEFTUyBDaGVjayBkZWxldGUgbWV0
aG9kCitQQVNTIENoZWNrIGdldCBtZXRob2QKK1BBU1MgQ2hlY2sga2V5cyBtZXRob2QKK1BBU1Mg
Q2hlY2sgdmFsdWVzIG1ldGhvZAorUEFTUyBDaGVjayBlbnRyaWVzIG1ldGhvZAorUEFTUyBDaGVj
ayBTeW1ib2wuaXRlcmF0b3IgbWV0aG9kCitQQVNTIENoZWNrIGZvckVhY2ggbWV0aG9kCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNp
Yy5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgw
YjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLmFueS5odG1sCkBA
IC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBp
bmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnkuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFk
ZXJzL2hlYWRlcnMtYmFzaWMuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkZTcxZjQzYmI0ZmMzN2QzODAw
NjYyNmZjNmM2Mjc2Y2Q3ZGJkNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFz
aWMuYW55LmpzCkBAIC0wLDAgKzEsMjE4IEBACisvLyBNRVRBOiB0aXRsZT1IZWFkZXJzIHN0cnVj
dHVyZQorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKwordGVzdChmdW5jdGlvbigpIHsK
KyAgbmV3IEhlYWRlcnMoKTsKK30sICJDcmVhdGUgaGVhZGVycyBmcm9tIG5vIHBhcmFtZXRlciIp
OworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBuZXcgSGVhZGVycyh1bmRlZmluZWQpOworfSwgIkNy
ZWF0ZSBoZWFkZXJzIGZyb20gdW5kZWZpbmVkIHBhcmFtZXRlciIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICBuZXcgSGVhZGVycyh7fSk7Cit9LCAiQ3JlYXRlIGhlYWRlcnMgZnJvbSBlbXB0eSBv
YmplY3QiKTsKKwordmFyIHBhcmFtZXRlcnMgPSBbbnVsbCwgMV07CitwYXJhbWV0ZXJzLmZvckVh
Y2goZnVuY3Rpb24ocGFyYW1ldGVyKSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0
X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcgSGVhZGVycyhwYXJhbWV0ZXIp
IH0pOworICB9LCAiQ3JlYXRlIGhlYWRlcnMgd2l0aCAiICsgcGFyYW1ldGVyICsgIiBzaG91bGQg
dGhyb3ciKTsKK30pOworCit2YXIgaGVhZGVyRGljdCA9IHsibmFtZTEiOiAidmFsdWUxIiwKKyAg
ICAgICAgICAgICAgICAgICJuYW1lMiI6ICJ2YWx1ZTIiLAorICAgICAgICAgICAgICAgICAgIm5h
bWUzIjogInZhbHVlMyIsCisgICAgICAgICAgICAgICAgICAibmFtZTQiOiBudWxsLAorICAgICAg
ICAgICAgICAgICAgIm5hbWU1IjogdW5kZWZpbmVkLAorICAgICAgICAgICAgICAgICAgIm5hbWU2
IjogMSwKKyAgICAgICAgICAgICAgICAgICJDb250ZW50LVR5cGUiOiAidmFsdWU0IgorfTsKKwor
dmFyIGhlYWRlclNlcSA9IFtdOworZm9yICh2YXIgbmFtZSBpbiBoZWFkZXJEaWN0KQorICBoZWFk
ZXJTZXEucHVzaChbbmFtZSwgaGVhZGVyRGljdFtuYW1lXV0pOworCit0ZXN0KGZ1bmN0aW9uKCkg
eworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlclNlcSk7CisgIGZvciAobmFtZSBp
biBoZWFkZXJEaWN0KSB7CisgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChuYW1lKSwgU3Ry
aW5nKGhlYWRlckRpY3RbbmFtZV0pLAorICAgICAgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgdmFs
dWU6ICIgKyBoZWFkZXJEaWN0W25hbWVdKTsKKyAgfQorICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMu
Z2V0KCJsZW5ndGgiKSwgbnVsbCwgImluaXQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBzZXF1ZW5j
ZSwgbm90IGFzIGEgZGljdGlvbmFyeSIpOworfSwgIkNyZWF0ZSBoZWFkZXJzIHdpdGggc2VxdWVu
Y2UiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyho
ZWFkZXJEaWN0KTsKKyAgZm9yIChuYW1lIGluIGhlYWRlckRpY3QpIHsKKyAgICBhc3NlcnRfZXF1
YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCBTdHJpbmcoaGVhZGVyRGljdFtuYW1lXSksCisgICAgICAi
bmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZTogIiArIGhlYWRlckRpY3RbbmFtZV0pOworICB9
Cit9LCAiQ3JlYXRlIGhlYWRlcnMgd2l0aCByZWNvcmQiKTsKKwordGVzdChmdW5jdGlvbigpIHsK
KyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJEaWN0KTsKKyAgdmFyIGhlYWRlcnMy
ID0gbmV3IEhlYWRlcnMoaGVhZGVycyk7CisgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0KSB7Cisg
ICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzMi5nZXQobmFtZSksIFN0cmluZyhoZWFkZXJEaWN0W25h
bWVdKSwKKyAgICAgICJuYW1lOiAiICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVhZGVyRGlj
dFtuYW1lXSk7CisgIH0KK30sICJDcmVhdGUgaGVhZGVycyB3aXRoIGV4aXN0aW5nIGhlYWRlcnMi
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpCisg
IGhlYWRlcnNbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICooKSB7CisgICAgeWllbGQgWyJ0
ZXN0IiwgInRlc3QiXQorICB9CisgIHZhciBoZWFkZXJzMiA9IG5ldyBIZWFkZXJzKGhlYWRlcnMp
CisgIGFzc2VydF9lcXVhbHMoaGVhZGVyczIuZ2V0KCJ0ZXN0IiksICJ0ZXN0IikKK30sICJDcmVh
dGUgaGVhZGVycyB3aXRoIGV4aXN0aW5nIGhlYWRlcnMgd2l0aCBjdXN0b20gaXRlcmF0b3IiKTsK
KwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworICBm
b3IgKG5hbWUgaW4gaGVhZGVyRGljdCkgeworICAgIGhlYWRlcnMuYXBwZW5kKG5hbWUsIGhlYWRl
ckRpY3RbbmFtZV0pOworICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQobmFtZSksIFN0cmlu
ZyhoZWFkZXJEaWN0W25hbWVdKSwKKyAgICAgICJuYW1lOiAiICsgbmFtZSArICIgaGFzIHZhbHVl
OiAiICsgaGVhZGVyRGljdFtuYW1lXSk7CisgIH0KK30sICJDaGVjayBhcHBlbmQgbWV0aG9kIik7
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKKyAg
Zm9yIChuYW1lIGluIGhlYWRlckRpY3QpIHsKKyAgICBoZWFkZXJzLnNldChuYW1lLCBoZWFkZXJE
aWN0W25hbWVdKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCBTdHJpbmco
aGVhZGVyRGljdFtuYW1lXSksCisgICAgICAibmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZTog
IiArIGhlYWRlckRpY3RbbmFtZV0pOworICB9Cit9LCAiQ2hlY2sgc2V0IG1ldGhvZCIpOworCit0
ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckRpY3Qp
OworICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdCkKKyAgICBhc3NlcnRfdHJ1ZShoZWFkZXJzLmhh
cyhuYW1lKSwiaGVhZGVycyBoYXMgbmFtZSAiICsgbmFtZSk7CisKKyAgYXNzZXJ0X2ZhbHNlKGhl
YWRlcnMuaGFzKCJuYW1lTm90SW5IZWFkZXJzIiksImhlYWRlcnMgZG8gbm90IGhhdmUgaGVhZGVy
OiBuYW1lTm90SW5IZWFkZXJzIik7Cit9LCAiQ2hlY2sgaGFzIG1ldGhvZCIpOworCit0ZXN0KGZ1
bmN0aW9uKCkgeworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckRpY3QpOworICBm
b3IgKG5hbWUgaW4gaGVhZGVyRGljdCkgeworICAgIGFzc2VydF90cnVlKGhlYWRlcnMuaGFzKG5h
bWUpLCJoZWFkZXJzIGhhdmUgYSBoZWFkZXI6ICIgKyBuYW1lKTsKKyAgICBoZWFkZXJzLmRlbGV0
ZShuYW1lKQorICAgIGFzc2VydF90cnVlKCFoZWFkZXJzLmhhcyhuYW1lKSwiaGVhZGVycyBkbyBu
b3QgaGF2ZSBhbnltb3JlIGEgaGVhZGVyOiAiICsgbmFtZSk7CisgIH0KK30sICJDaGVjayBkZWxl
dGUgbWV0aG9kIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBoZWFkZXJzID0gbmV3IEhl
YWRlcnMoaGVhZGVyRGljdCk7CisgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0KQorICAgIGFzc2Vy
dF9lcXVhbHMoaGVhZGVycy5nZXQobmFtZSksIFN0cmluZyhoZWFkZXJEaWN0W25hbWVdKSwKKyAg
ICAgICJuYW1lOiAiICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7
CisKKyAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldCgibmFtZU5vdEluSGVhZGVycyIpLCBudWxs
LCAiaGVhZGVyOiBuYW1lTm90SW5IZWFkZXJzIGhhcyBubyB2YWx1ZSIpOworfSwgIkNoZWNrIGdl
dCBtZXRob2QiKTsKKwordmFyIGhlYWRlckVudHJpZXNEaWN0ID0geyJuYW1lMSI6ICJ2YWx1ZTEi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAiTmFtZTIiOiAidmFsdWUyIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm5hbWUiOiAidmFsdWUzIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgImNvbnRlbnQtVHlwZSI6ICJ2YWx1ZTQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAiQ29udGVudC1UeXAiOiAidmFsdWU1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIkNv
bnRlbnQtVHlwZXMiOiAidmFsdWU2IgorfTsKK3ZhciBzb3J0ZWRIZWFkZXJEaWN0ID0ge307Cit2
YXIgaGVhZGVyVmFsdWVzID0gW107Cit2YXIgc29ydGVkSGVhZGVyS2V5cyA9IE9iamVjdC5rZXlz
KGhlYWRlckVudHJpZXNEaWN0KS5tYXAoZnVuY3Rpb24odmFsdWUpIHsKKyAgc29ydGVkSGVhZGVy
RGljdFt2YWx1ZS50b0xvd2VyQ2FzZSgpXSA9IGhlYWRlckVudHJpZXNEaWN0W3ZhbHVlXTsKKyAg
aGVhZGVyVmFsdWVzLnB1c2goaGVhZGVyRW50cmllc0RpY3RbdmFsdWVdKTsKKyAgcmV0dXJuIHZh
bHVlLnRvTG93ZXJDYXNlKCk7Cit9KS5zb3J0KCk7CisKK3ZhciBpdGVyYXRvclByb3RvdHlwZSA9
IE9iamVjdC5nZXRQcm90b3R5cGVPZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoW11bU3ltYm9sLml0
ZXJhdG9yXSgpKSk7CitmdW5jdGlvbiBjaGVja0l0ZXJhdG9yUHJvcGVydGllcyhpdGVyYXRvcikg
eworICB2YXIgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGl0ZXJhdG9yKTsKKyAg
YXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG90eXBlKSwgaXRlcmF0b3JQ
cm90b3R5cGUpOworCisgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihwcm90b3R5cGUsICJuZXh0Iik7CisgIGFzc2VydF90cnVlKGRlc2NyaXB0b3IuY29u
ZmlndXJhYmxlLCAiY29uZmlndXJhYmxlIik7CisgIGFzc2VydF90cnVlKGRlc2NyaXB0b3IuZW51
bWVyYWJsZSwgImVudW1lcmFibGUiKTsKKyAgYXNzZXJ0X3RydWUoZGVzY3JpcHRvci53cml0YWJs
ZSwgIndyaXRhYmxlIik7Cit9CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBoZWFkZXJzID0g
bmV3IEhlYWRlcnMoaGVhZGVyRW50cmllc0RpY3QpOworICB2YXIgYWN0dWFsID0gaGVhZGVycy5r
ZXlzKCk7CisgIGNoZWNrSXRlcmF0b3JQcm9wZXJ0aWVzKGFjdHVhbCk7CisKKyAgc29ydGVkSGVh
ZGVyS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgeworICAgICAgZW50cnkgPSBhY3R1YWwubmV4
dCgpOworICAgICAgYXNzZXJ0X2ZhbHNlKGVudHJ5LmRvbmUpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhlbnRyeS52YWx1ZSwga2V5KTsKKyAgfSk7CisgIGFzc2VydF90cnVlKGFjdHVhbC5uZXh0KCku
ZG9uZSk7CisgIGFzc2VydF90cnVlKGFjdHVhbC5uZXh0KCkuZG9uZSk7CisKKyAgZm9yIChrZXkg
b2YgaGVhZGVycy5rZXlzKCkpCisgICAgICBhc3NlcnRfdHJ1ZShzb3J0ZWRIZWFkZXJLZXlzLmlu
ZGV4T2Yoa2V5KSAhPSAtMSk7Cit9LCAiQ2hlY2sga2V5cyBtZXRob2QiKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJFbnRyaWVzRGljdCk7
CisgIHZhciBhY3R1YWwgPSBoZWFkZXJzLnZhbHVlcygpOworICBjaGVja0l0ZXJhdG9yUHJvcGVy
dGllcyhhY3R1YWwpOworCisgIHNvcnRlZEhlYWRlcktleXMuZm9yRWFjaChmdW5jdGlvbihrZXkp
IHsKKyAgICAgIGVudHJ5ID0gYWN0dWFsLm5leHQoKTsKKyAgICAgIGFzc2VydF9mYWxzZShlbnRy
eS5kb25lKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkudmFsdWUsIHNvcnRlZEhlYWRlckRp
Y3Rba2V5XSk7CisgIH0pOworICBhc3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOworICBh
c3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOworCisgIGZvciAodmFsdWUgb2YgaGVhZGVy
cy52YWx1ZXMoKSkKKyAgICAgIGFzc2VydF90cnVlKGhlYWRlclZhbHVlcy5pbmRleE9mKHZhbHVl
KSAhPSAtMSk7Cit9LCAiQ2hlY2sgdmFsdWVzIG1ldGhvZCIpOworCit0ZXN0KGZ1bmN0aW9uKCkg
eworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckVudHJpZXNEaWN0KTsKKyAgdmFy
IGFjdHVhbCA9IGhlYWRlcnMuZW50cmllcygpOworICBjaGVja0l0ZXJhdG9yUHJvcGVydGllcyhh
Y3R1YWwpOworCisgIHNvcnRlZEhlYWRlcktleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsKKyAg
ICAgIGVudHJ5ID0gYWN0dWFsLm5leHQoKTsKKyAgICAgIGFzc2VydF9mYWxzZShlbnRyeS5kb25l
KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkudmFsdWVbMF0sIGtleSk7CisgICAgICBhc3Nl
cnRfZXF1YWxzKGVudHJ5LnZhbHVlWzFdLCBzb3J0ZWRIZWFkZXJEaWN0W2tleV0pOworICB9KTsK
KyAgYXNzZXJ0X3RydWUoYWN0dWFsLm5leHQoKS5kb25lKTsKKyAgYXNzZXJ0X3RydWUoYWN0dWFs
Lm5leHQoKS5kb25lKTsKKworICBmb3IgKGVudHJ5IG9mIGhlYWRlcnMuZW50cmllcygpKQorICAg
ICAgYXNzZXJ0X2VxdWFscyhlbnRyeVsxXSwgc29ydGVkSGVhZGVyRGljdFtlbnRyeVswXV0pOwor
fSwgIkNoZWNrIGVudHJpZXMgbWV0aG9kIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBo
ZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyRW50cmllc0RpY3QpOworICB2YXIgYWN0dWFsID0g
aGVhZGVyc1tTeW1ib2wuaXRlcmF0b3JdKCk7CisKKyAgc29ydGVkSGVhZGVyS2V5cy5mb3JFYWNo
KGZ1bmN0aW9uKGtleSkgeworICAgICAgZW50cnkgPSBhY3R1YWwubmV4dCgpOworICAgICAgYXNz
ZXJ0X2ZhbHNlKGVudHJ5LmRvbmUpOworICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS52YWx1ZVsw
XSwga2V5KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkudmFsdWVbMV0sIHNvcnRlZEhlYWRl
ckRpY3Rba2V5XSk7CisgIH0pOworICBhc3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOwor
ICBhc3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOworfSwgIkNoZWNrIFN5bWJvbC5pdGVy
YXRvciBtZXRob2QiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcg
SGVhZGVycyhoZWFkZXJFbnRyaWVzRGljdCk7CisgIHZhciByZWZlcmVuY2UgPSBzb3J0ZWRIZWFk
ZXJLZXlzW1N5bWJvbC5pdGVyYXRvcl0oKTsKKyAgaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHZh
bHVlLCBrZXksIGNvbnRhaW5lcikgeworICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLCBjb250
YWluZXIpOworICAgICAgZW50cnkgPSByZWZlcmVuY2UubmV4dCgpOworICAgICAgYXNzZXJ0X2Zh
bHNlKGVudHJ5LmRvbmUpOworICAgICAgYXNzZXJ0X2VxdWFscyhrZXksIGVudHJ5LnZhbHVlKTsK
KyAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIHNvcnRlZEhlYWRlckRpY3RbZW50cnkudmFsdWVd
KTsKKyAgfSk7CisgIGFzc2VydF90cnVlKHJlZmVyZW5jZS5uZXh0KCkuZG9uZSk7Cit9LCAiQ2hl
Y2sgZm9yRWFjaCBtZXRob2QiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iOWIyNTJhYWRmM2Y1YTc0ZmYxNDZlMjViY2NkYmY2MzcxMTk0
ZWVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKworUEFTUyBDcmVhdGUgaGVhZGVycyBmcm9tIG5v
IHBhcmFtZXRlcgorUEFTUyBDcmVhdGUgaGVhZGVycyBmcm9tIHVuZGVmaW5lZCBwYXJhbWV0ZXIK
K1BBU1MgQ3JlYXRlIGhlYWRlcnMgZnJvbSBlbXB0eSBvYmplY3QKK1BBU1MgQ3JlYXRlIGhlYWRl
cnMgd2l0aCBudWxsIHNob3VsZCB0aHJvdworUEFTUyBDcmVhdGUgaGVhZGVycyB3aXRoIDEgc2hv
dWxkIHRocm93CitQQVNTIENyZWF0ZSBoZWFkZXJzIHdpdGggc2VxdWVuY2UKK1BBU1MgQ3JlYXRl
IGhlYWRlcnMgd2l0aCByZWNvcmQKK1BBU1MgQ3JlYXRlIGhlYWRlcnMgd2l0aCBleGlzdGluZyBo
ZWFkZXJzCitQQVNTIENyZWF0ZSBoZWFkZXJzIHdpdGggZXhpc3RpbmcgaGVhZGVycyB3aXRoIGN1
c3RvbSBpdGVyYXRvcgorUEFTUyBDaGVjayBhcHBlbmQgbWV0aG9kCitQQVNTIENoZWNrIHNldCBt
ZXRob2QKK1BBU1MgQ2hlY2sgaGFzIG1ldGhvZAorUEFTUyBDaGVjayBkZWxldGUgbWV0aG9kCitQ
QVNTIENoZWNrIGdldCBtZXRob2QKK1BBU1MgQ2hlY2sga2V5cyBtZXRob2QKK1BBU1MgQ2hlY2sg
dmFsdWVzIG1ldGhvZAorUEFTUyBDaGVjayBlbnRyaWVzIG1ldGhvZAorUEFTUyBDaGVjayBTeW1i
b2wuaXRlcmF0b3IgbWV0aG9kCitQQVNTIENoZWNrIGZvckVhY2ggbWV0aG9kCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFz
aWMuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBh
NDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuYW55
Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0t
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1i
YXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDI1NGVmMDUxYzEyMjdjYzY3NmRhZmJjOWYxYTNkOTFjOThhODliMDEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJh
c2ljLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMzAgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+
Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRs
ZT5IZWFkZXJzIHN0cnVjdHVyZTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2hlYWRlcnMiPgotICAgIDxtZXRhIG5hbWU9
ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cu
Y3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAg
ICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICBuZXcgSGVhZGVycygpOwotICAgICAgfSwgIkNy
ZWF0ZSBoZWFkZXJzIGZyb20gbm8gcGFyYW1ldGVyIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24o
KSB7Ci0gICAgICAgIG5ldyBIZWFkZXJzKHVuZGVmaW5lZCk7Ci0gICAgICB9LCAiQ3JlYXRlIGhl
YWRlcnMgZnJvbSB1bmRlZmluZWQgcGFyYW1ldGVyIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24o
KSB7Ci0gICAgICAgIG5ldyBIZWFkZXJzKHt9KTsKLSAgICAgIH0sICJDcmVhdGUgaGVhZGVycyBm
cm9tIGVtcHR5IG9iamVjdCIpOwotCi0gICAgICB2YXIgcGFyYW1ldGVycyA9IFtudWxsLCAxXTsK
LSAgICAgIHBhcmFtZXRlcnMuZm9yRWFjaChmdW5jdGlvbihwYXJhbWV0ZXIpIHsKLSAgICAgICAg
dGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwg
ZnVuY3Rpb24oKSB7IG5ldyBIZWFkZXJzKHBhcmFtZXRlcikgfSk7Ci0gICAgICAgIH0sICJDcmVh
dGUgaGVhZGVycyB3aXRoICIgKyBwYXJhbWV0ZXIgKyAiIHNob3VsZCB0aHJvdyIpOwotICAgICAg
fSk7Ci0KLSAgICAgIHZhciBoZWFkZXJEaWN0ID0geyJuYW1lMSI6ICJ2YWx1ZTEiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIm5hbWUyIjogInZhbHVlMiIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAibmFtZTMiOiAidmFsdWUzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lNCI6
IG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAibmFtZTUiOiB1bmRlZmluZWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAibmFtZTYiOiAxLAotICAgICAgICAgICAgICAgICAgICAgICAg
IkNvbnRlbnQtVHlwZSI6ICJ2YWx1ZTQiCi0gICAgICB9OwotCi0gICAgICB2YXIgaGVhZGVyU2Vx
ID0gW107Ci0gICAgICBmb3IgKHZhciBuYW1lIGluIGhlYWRlckRpY3QpCi0gICAgICAgIGhlYWRl
clNlcS5wdXNoKFtuYW1lLCBoZWFkZXJEaWN0W25hbWVdXSk7Ci0KLSAgICAgIHRlc3QoZnVuY3Rp
b24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyU2VxKTsKLSAg
ICAgICAgZm9yIChuYW1lIGluIGhlYWRlckRpY3QpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGhlYWRlcnMuZ2V0KG5hbWUpLCBTdHJpbmcoaGVhZGVyRGljdFtuYW1lXSksCi0gICAgICAgICAg
ICAibmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZTogIiArIGhlYWRlckRpY3RbbmFtZV0pOwot
ICAgICAgICB9Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQoImxlbmd0aCIpLCBu
dWxsLCAiaW5pdCBzaG91bGQgYmUgdHJlYXRlZCBhcyBhIHNlcXVlbmNlLCBub3QgYXMgYSBkaWN0
aW9uYXJ5Iik7Ci0gICAgICB9LCAiQ3JlYXRlIGhlYWRlcnMgd2l0aCBzZXF1ZW5jZSIpOwotCi0g
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJz
KGhlYWRlckRpY3QpOwotICAgICAgICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdCkgewotICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQobmFtZSksIFN0cmluZyhoZWFkZXJEaWN0W25h
bWVdKSwKLSAgICAgICAgICAgICJuYW1lOiAiICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVh
ZGVyRGljdFtuYW1lXSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJDcmVhdGUgaGVhZGVycyB3aXRo
IHJlY29yZCIpOwotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVhZGVy
cyA9IG5ldyBIZWFkZXJzKGhlYWRlckRpY3QpOwotICAgICAgICB2YXIgaGVhZGVyczIgPSBuZXcg
SGVhZGVycyhoZWFkZXJzKTsKLSAgICAgICAgZm9yIChuYW1lIGluIGhlYWRlckRpY3QpIHsKLSAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMyLmdldChuYW1lKSwgU3RyaW5nKGhlYWRlckRp
Y3RbbmFtZV0pLAotICAgICAgICAgICAgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIg
KyBoZWFkZXJEaWN0W25hbWVdKTsKLSAgICAgICAgfQotICAgICAgfSwgIkNyZWF0ZSBoZWFkZXJz
IHdpdGggZXhpc3RpbmcgaGVhZGVycyIpOwotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAg
ICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCkKLSAgICAgICAgaGVhZGVyc1tTeW1ib2wu
aXRlcmF0b3JdID0gZnVuY3Rpb24gKigpIHsKLSAgICAgICAgICB5aWVsZCBbInRlc3QiLCAidGVz
dCJdCi0gICAgICAgIH0KLSAgICAgICAgdmFyIGhlYWRlcnMyID0gbmV3IEhlYWRlcnMoaGVhZGVy
cykKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzMi5nZXQoInRlc3QiKSwgInRlc3QiKQot
ICAgICAgfSwgIkNyZWF0ZSBoZWFkZXJzIHdpdGggZXhpc3RpbmcgaGVhZGVycyB3aXRoIGN1c3Rv
bSBpdGVyYXRvciIpOwotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVh
ZGVycyA9IG5ldyBIZWFkZXJzKCk7Ci0gICAgICAgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0KSB7
Ci0gICAgICAgICAgaGVhZGVycy5hcHBlbmQobmFtZSwgaGVhZGVyRGljdFtuYW1lXSk7Ci0gICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChuYW1lKSwgU3RyaW5nKGhlYWRlckRpY3Rb
bmFtZV0pLAotICAgICAgICAgICAgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBo
ZWFkZXJEaWN0W25hbWVdKTsKLSAgICAgICAgfQotICAgICAgfSwgIkNoZWNrIGFwcGVuZCBtZXRo
b2QiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBu
ZXcgSGVhZGVycygpOwotICAgICAgICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdCkgewotICAgICAg
ICAgIGhlYWRlcnMuc2V0KG5hbWUsIGhlYWRlckRpY3RbbmFtZV0pOwotICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoaGVhZGVycy5nZXQobmFtZSksIFN0cmluZyhoZWFkZXJEaWN0W25hbWVdKSwKLSAg
ICAgICAgICAgICJuYW1lOiAiICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVhZGVyRGljdFtu
YW1lXSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJDaGVjayBzZXQgbWV0aG9kIik7Ci0KLSAgICAg
IHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVh
ZGVyRGljdCk7Ci0gICAgICAgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0KQotICAgICAgICAgIGFz
c2VydF90cnVlKGhlYWRlcnMuaGFzKG5hbWUpLCJoZWFkZXJzIGhhcyBuYW1lICIgKyBuYW1lKTsK
LQotICAgICAgICBhc3NlcnRfZmFsc2UoaGVhZGVycy5oYXMoIm5hbWVOb3RJbkhlYWRlcnMiKSwi
aGVhZGVycyBkbyBub3QgaGF2ZSBoZWFkZXI6IG5hbWVOb3RJbkhlYWRlcnMiKTsKLSAgICAgIH0s
ICJDaGVjayBoYXMgbWV0aG9kIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAg
IHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyRGljdCk7Ci0gICAgICAgIGZvciAobmFt
ZSBpbiBoZWFkZXJEaWN0KSB7Ci0gICAgICAgICAgYXNzZXJ0X3RydWUoaGVhZGVycy5oYXMobmFt
ZSksImhlYWRlcnMgaGF2ZSBhIGhlYWRlcjogIiArIG5hbWUpOwotICAgICAgICAgIGhlYWRlcnMu
ZGVsZXRlKG5hbWUpCi0gICAgICAgICAgYXNzZXJ0X3RydWUoIWhlYWRlcnMuaGFzKG5hbWUpLCJo
ZWFkZXJzIGRvIG5vdCBoYXZlIGFueW1vcmUgYSBoZWFkZXI6ICIgKyBuYW1lKTsKLSAgICAgICAg
fQotICAgICAgfSwgIkNoZWNrIGRlbGV0ZSBtZXRob2QiKTsKLQotICAgICAgdGVzdChmdW5jdGlv
bigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJEaWN0KTsKLSAg
ICAgICAgZm9yIChuYW1lIGluIGhlYWRlckRpY3QpCi0gICAgICAgICAgYXNzZXJ0X2VxdWFscyho
ZWFkZXJzLmdldChuYW1lKSwgU3RyaW5nKGhlYWRlckRpY3RbbmFtZV0pLAotICAgICAgICAgICAg
Im5hbWU6ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBoZWFkZXJEaWN0W25hbWVdKTsKLQot
ICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCJuYW1lTm90SW5IZWFkZXJzIiksIG51
bGwsICJoZWFkZXI6IG5hbWVOb3RJbkhlYWRlcnMgaGFzIG5vIHZhbHVlIik7Ci0gICAgICB9LCAi
Q2hlY2sgZ2V0IG1ldGhvZCIpOwotCi0gICAgICB2YXIgaGVhZGVyRW50cmllc0RpY3QgPSB7Im5h
bWUxIjogInZhbHVlMSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5hbWUyIjog
InZhbHVlMiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAidmFsdWUz
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29udGVudC1UeXBlIjogInZhbHVl
NCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnRlbnQtVHlwIjogInZhbHVl
NSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnRlbnQtVHlwZXMiOiAidmFs
dWU2IgotICAgICAgfTsKLSAgICAgIHZhciBzb3J0ZWRIZWFkZXJEaWN0ID0ge307Ci0gICAgICB2
YXIgaGVhZGVyVmFsdWVzID0gW107Ci0gICAgICB2YXIgc29ydGVkSGVhZGVyS2V5cyA9IE9iamVj
dC5rZXlzKGhlYWRlckVudHJpZXNEaWN0KS5tYXAoZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAg
c29ydGVkSGVhZGVyRGljdFt2YWx1ZS50b0xvd2VyQ2FzZSgpXSA9IGhlYWRlckVudHJpZXNEaWN0
W3ZhbHVlXTsKLSAgICAgICAgaGVhZGVyVmFsdWVzLnB1c2goaGVhZGVyRW50cmllc0RpY3RbdmFs
dWVdKTsKLSAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKCk7Ci0gICAgICB9KS5zb3J0
KCk7Ci0KLSAgICAgIHZhciBpdGVyYXRvclByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVP
ZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoW11bU3ltYm9sLml0ZXJhdG9yXSgpKSk7Ci0gICAgICBm
dW5jdGlvbiBjaGVja0l0ZXJhdG9yUHJvcGVydGllcyhpdGVyYXRvcikgewotICAgICAgICB2YXIg
cHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGl0ZXJhdG9yKTsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG90eXBlKSwgaXRlcmF0b3JQcm90
b3R5cGUpOwotCi0gICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihwcm90b3R5cGUsICJuZXh0Iik7Ci0gICAgICAgIGFzc2VydF90cnVlKGRlc2Ny
aXB0b3IuY29uZmlndXJhYmxlLCAiY29uZmlndXJhYmxlIik7Ci0gICAgICAgIGFzc2VydF90cnVl
KGRlc2NyaXB0b3IuZW51bWVyYWJsZSwgImVudW1lcmFibGUiKTsKLSAgICAgICAgYXNzZXJ0X3Ry
dWUoZGVzY3JpcHRvci53cml0YWJsZSwgIndyaXRhYmxlIik7Ci0gICAgICB9Ci0KLSAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVy
RW50cmllc0RpY3QpOwotICAgICAgICB2YXIgYWN0dWFsID0gaGVhZGVycy5rZXlzKCk7Ci0gICAg
ICAgIGNoZWNrSXRlcmF0b3JQcm9wZXJ0aWVzKGFjdHVhbCk7Ci0KLSAgICAgICAgc29ydGVkSGVh
ZGVyS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgewotICAgICAgICAgICAgZW50cnkgPSBhY3R1
YWwubmV4dCgpOwotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGVudHJ5LmRvbmUpOwotICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS52YWx1ZSwga2V5KTsKLSAgICAgICAgfSk7Ci0gICAg
ICAgIGFzc2VydF90cnVlKGFjdHVhbC5uZXh0KCkuZG9uZSk7Ci0gICAgICAgIGFzc2VydF90cnVl
KGFjdHVhbC5uZXh0KCkuZG9uZSk7Ci0KLSAgICAgICAgZm9yIChrZXkgb2YgaGVhZGVycy5rZXlz
KCkpCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3J0ZWRIZWFkZXJLZXlzLmluZGV4T2Yoa2V5
KSAhPSAtMSk7Ci0gICAgICB9LCAiQ2hlY2sga2V5cyBtZXRob2QiKTsKLQotICAgICAgdGVzdChm
dW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJFbnRy
aWVzRGljdCk7Ci0gICAgICAgIHZhciBhY3R1YWwgPSBoZWFkZXJzLnZhbHVlcygpOwotICAgICAg
ICBjaGVja0l0ZXJhdG9yUHJvcGVydGllcyhhY3R1YWwpOwotCi0gICAgICAgIHNvcnRlZEhlYWRl
cktleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsKLSAgICAgICAgICAgIGVudHJ5ID0gYWN0dWFs
Lm5leHQoKTsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZShlbnRyeS5kb25lKTsKLSAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZW50cnkudmFsdWUsIHNvcnRlZEhlYWRlckRpY3Rba2V5XSk7Ci0g
ICAgICAgIH0pOwotICAgICAgICBhc3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOwotICAg
ICAgICBhc3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOwotCi0gICAgICAgIGZvciAodmFs
dWUgb2YgaGVhZGVycy52YWx1ZXMoKSkKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGhlYWRlclZh
bHVlcy5pbmRleE9mKHZhbHVlKSAhPSAtMSk7Ci0gICAgICB9LCAiQ2hlY2sgdmFsdWVzIG1ldGhv
ZCIpOwotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVhZGVycyA9IG5l
dyBIZWFkZXJzKGhlYWRlckVudHJpZXNEaWN0KTsKLSAgICAgICAgdmFyIGFjdHVhbCA9IGhlYWRl
cnMuZW50cmllcygpOwotICAgICAgICBjaGVja0l0ZXJhdG9yUHJvcGVydGllcyhhY3R1YWwpOwot
Ci0gICAgICAgIHNvcnRlZEhlYWRlcktleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHsKLSAgICAg
ICAgICAgIGVudHJ5ID0gYWN0dWFsLm5leHQoKTsKLSAgICAgICAgICAgIGFzc2VydF9mYWxzZShl
bnRyeS5kb25lKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkudmFsdWVbMF0sIGtl
eSk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5LnZhbHVlWzFdLCBzb3J0ZWRIZWFk
ZXJEaWN0W2tleV0pOwotICAgICAgICB9KTsKLSAgICAgICAgYXNzZXJ0X3RydWUoYWN0dWFsLm5l
eHQoKS5kb25lKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoYWN0dWFsLm5leHQoKS5kb25lKTsKLQot
ICAgICAgICBmb3IgKGVudHJ5IG9mIGhlYWRlcnMuZW50cmllcygpKQotICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlbnRyeVsxXSwgc29ydGVkSGVhZGVyRGljdFtlbnRyeVswXV0pOwotICAgICAg
fSwgIkNoZWNrIGVudHJpZXMgbWV0aG9kIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyRW50cmllc0RpY3QpOwotICAg
ICAgICB2YXIgYWN0dWFsID0gaGVhZGVyc1tTeW1ib2wuaXRlcmF0b3JdKCk7Ci0KLSAgICAgICAg
c29ydGVkSGVhZGVyS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkgewotICAgICAgICAgICAgZW50
cnkgPSBhY3R1YWwubmV4dCgpOwotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGVudHJ5LmRvbmUp
OwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS52YWx1ZVswXSwga2V5KTsKLSAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkudmFsdWVbMV0sIHNvcnRlZEhlYWRlckRpY3Rba2V5
XSk7Ci0gICAgICAgIH0pOwotICAgICAgICBhc3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUp
OwotICAgICAgICBhc3NlcnRfdHJ1ZShhY3R1YWwubmV4dCgpLmRvbmUpOwotICAgICAgfSwgIkNo
ZWNrIFN5bWJvbC5pdGVyYXRvciBtZXRob2QiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsK
LSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJFbnRyaWVzRGljdCk7Ci0g
ICAgICAgIHZhciByZWZlcmVuY2UgPSBzb3J0ZWRIZWFkZXJLZXlzW1N5bWJvbC5pdGVyYXRvcl0o
KTsKLSAgICAgICAgaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbnRhaW5l
cikgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLCBjb250YWluZXIpOwotICAg
ICAgICAgICAgZW50cnkgPSByZWZlcmVuY2UubmV4dCgpOwotICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKGVudHJ5LmRvbmUpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhrZXksIGVudHJ5LnZh
bHVlKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHModmFsdWUsIHNvcnRlZEhlYWRlckRpY3Rb
ZW50cnkudmFsdWVdKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGFzc2VydF90cnVlKHJlZmVyZW5j
ZS5uZXh0KCkuZG9uZSk7Ci0gICAgICB9LCAiQ2hlY2sgZm9yRWFjaCBtZXRob2QiKTsKLSAgIDwv
c2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY2Fz
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jYXNpbmctZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2JkMTI5Zjc2ZmYyZjZhZjk5YTA1ZGE5MTEwMzYw
MGUwNjllOTJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1jYXNpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiAr
MCwwIEBACi0KLVBBU1MgQ3JlYXRlIGhlYWRlcnMsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGgg
ZGlmZmVyZW50IGNhc2UKLVBBU1MgQ2hlY2sgYXBwZW5kIG1ldGhvZCwgbmFtZXMgdXNlIGNoYXJh
Y3RlcnMgd2l0aCBkaWZmZXJlbnQgY2FzZQotUEFTUyBDaGVjayBzZXQgbWV0aG9kLCBuYW1lcyB1
c2UgY2hhcmFjdGVycyB3aXRoIGRpZmZlcmVudCBjYXNlCi1QQVNTIENoZWNrIGRlbGV0ZSBtZXRo
b2QsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGggZGlmZmVyZW50IGNhc2UKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aGVhZGVycy9oZWFkZXJzLWNhc2luZy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNh
c2luZy5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjYmQxMjlmNzZmZjJmNmFmOTlhMDVk
YTkxMTAzNjAwZTA2OWU5MmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY2FzaW5n
LmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgQ3JlYXRlIGhlYWRlcnMs
IG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGggZGlmZmVyZW50IGNhc2UKK1BBU1MgQ2hlY2sgYXBw
ZW5kIG1ldGhvZCwgbmFtZXMgdXNlIGNoYXJhY3RlcnMgd2l0aCBkaWZmZXJlbnQgY2FzZQorUEFT
UyBDaGVjayBzZXQgbWV0aG9kLCBuYW1lcyB1c2UgY2hhcmFjdGVycyB3aXRoIGRpZmZlcmVudCBj
YXNlCitQQVNTIENoZWNrIGRlbGV0ZSBtZXRob2QsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGgg
ZGlmZmVyZW50IGNhc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5hbnkuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVycy1jYXNpbmcuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2
OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVh
ZGVycy1jYXNpbmcuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVx
dWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVk
IHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLWNhc2luZy5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY2FzaW5nLmFueS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41N2JlYzAxNjRlZDlhYmIxMDlhMDgzNWM1YTZlY2I1MmViZGY4NTU2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5hbnkuanMKQEAgLTAsMCArMSw1MiBAQAorLy8g
TUVUQTogdGl0bGU9SGVhZGVycyBjYXNlIG1hbmFnZW1lbnQKKy8vIE1FVEE6IGdsb2JhbD13aW5k
b3csd29ya2VyCisKK3ZhciBoZWFkZXJEaWN0Q2FzZSA9IHsiVVBQRVJDQVNFIjogInZhbHVlMSIs
CisgICAgICAgICAgICAgICAgICAgICAgImxvd2VyY2FzZSI6ICJ2YWx1ZTIiLAorICAgICAgICAg
ICAgICAgICAgICAgICJtaXhlZENhc2UiOiAidmFsdWUzIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAiQ29udGVudC1UWVBFIjogInZhbHVlNCIKKyAgICAgICAgICAgICAgICAgICAgICB9OworCitm
dW5jdGlvbiBjaGVja0hlYWRlcnNDYXNlKG9yaWdpbmFsTmFtZSwgaGVhZGVyc1RvQ2hlY2ssIGV4
cGVjdGVkRGljdCkgeworICB2YXIgbG93Q2FzZU5hbWUgPSBvcmlnaW5hbE5hbWUudG9Mb3dlckNh
c2UoKTsKKyAgdmFyIHVwQ2FzZU5hbWUgPSBvcmlnaW5hbE5hbWUudG9VcHBlckNhc2UoKTsKKyAg
dmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3RlZERpY3Rbb3JpZ2luYWxOYW1lXTsKKyAgYXNzZXJ0
X2VxdWFscyhoZWFkZXJzVG9DaGVjay5nZXQob3JpZ2luYWxOYW1lKSwgZXhwZWN0ZWRWYWx1ZSwK
KyAgICAgICJuYW1lOiAiICsgb3JpZ2luYWxOYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBleHBlY3Rl
ZFZhbHVlKTsKKyAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzVG9DaGVjay5nZXQobG93Q2FzZU5hbWUp
LCBleHBlY3RlZFZhbHVlLAorICAgICAgIm5hbWU6ICIgKyBsb3dDYXNlTmFtZSArICIgaGFzIHZh
bHVlOiAiICsgZXhwZWN0ZWRWYWx1ZSk7CisgIGFzc2VydF9lcXVhbHMoaGVhZGVyc1RvQ2hlY2su
Z2V0KHVwQ2FzZU5hbWUpLCBleHBlY3RlZFZhbHVlLAorICAgICAgIm5hbWU6ICIgKyB1cENhc2VO
YW1lICsgIiBoYXMgdmFsdWU6ICIgKyBleHBlY3RlZFZhbHVlKTsKK30KKwordGVzdChmdW5jdGlv
bigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJEaWN0Q2FzZSk7CisgIGZv
ciAobmFtZSBpbiBoZWFkZXJEaWN0Q2FzZSkKKyAgICBjaGVja0hlYWRlcnNDYXNlKG5hbWUsIGhl
YWRlcnMsIGhlYWRlckRpY3RDYXNlKQorfSwgIkNyZWF0ZSBoZWFkZXJzLCBuYW1lcyB1c2UgY2hh
cmFjdGVycyB3aXRoIGRpZmZlcmVudCBjYXNlIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZh
ciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKKyAgZm9yIChuYW1lIGluIGhlYWRlckRpY3RDYXNl
KSB7CisgICAgaGVhZGVycy5hcHBlbmQobmFtZSwgaGVhZGVyRGljdENhc2VbbmFtZV0pOworICAg
IGNoZWNrSGVhZGVyc0Nhc2UobmFtZSwgaGVhZGVycywgaGVhZGVyRGljdENhc2UpOworICB9Cit9
LCAiQ2hlY2sgYXBwZW5kIG1ldGhvZCwgbmFtZXMgdXNlIGNoYXJhY3RlcnMgd2l0aCBkaWZmZXJl
bnQgY2FzZSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFk
ZXJzKCk7CisgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0Q2FzZSkgeworICAgIGhlYWRlcnMuc2V0
KG5hbWUsIGhlYWRlckRpY3RDYXNlW25hbWVdKTsKKyAgICBjaGVja0hlYWRlcnNDYXNlKG5hbWUs
IGhlYWRlcnMsIGhlYWRlckRpY3RDYXNlKTsKKyAgfQorfSwgIkNoZWNrIHNldCBtZXRob2QsIG5h
bWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGggZGlmZmVyZW50IGNhc2UiKTsKKwordGVzdChmdW5jdGlv
bigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworICBmb3IgKG5hbWUgaW4gaGVh
ZGVyRGljdENhc2UpCisgICAgaGVhZGVycy5zZXQobmFtZSwgaGVhZGVyRGljdENhc2VbbmFtZV0p
OworICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdENhc2UpCisgICAgaGVhZGVycy5kZWxldGUobmFt
ZS50b0xvd2VyQ2FzZSgpKTsKKyAgZm9yIChuYW1lIGluIGhlYWRlckRpY3RDYXNlKQorICAgIGFz
c2VydF9mYWxzZShoZWFkZXJzLmhhcyhuYW1lKSwgImhlYWRlciAiICsgbmFtZSArICIgc2hvdWxk
IGhhdmUgYmVlbiBkZWxldGVkIik7Cit9LCAiQ2hlY2sgZGVsZXRlIG1ldGhvZCwgbmFtZXMgdXNl
IGNoYXJhY3RlcnMgd2l0aCBkaWZmZXJlbnQgY2FzZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFk
ZXJzLWNhc2luZy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jYXNpbmcu
YW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNiZDEyOWY3NmZmMmY2YWY5OWEw
NWRhOTExMDM2MDBlMDY5ZTkyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jYXNp
bmcuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgQ3JlYXRl
IGhlYWRlcnMsIG5hbWVzIHVzZSBjaGFyYWN0ZXJzIHdpdGggZGlmZmVyZW50IGNhc2UKK1BBU1Mg
Q2hlY2sgYXBwZW5kIG1ldGhvZCwgbmFtZXMgdXNlIGNoYXJhY3RlcnMgd2l0aCBkaWZmZXJlbnQg
Y2FzZQorUEFTUyBDaGVjayBzZXQgbWV0aG9kLCBuYW1lcyB1c2UgY2hhcmFjdGVycyB3aXRoIGRp
ZmZlcmVudCBjYXNlCitQQVNTIENoZWNrIGRlbGV0ZSBtZXRob2QsIG5hbWVzIHVzZSBjaGFyYWN0
ZXJzIHdpdGggZGlmZmVyZW50IGNhc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2lu
Zy5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY2FzaW5nLmFueS53b3JrZXIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5hbnkud29ya2VyLmh0bWwKQEAgLTAs
MCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJh
c3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLWNhc2luZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTUwNWQ4
MWNkYThjMTlmN2NiYjE2NDM2ZWEwOGZiM2Y5MmM2ZjQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jYXNpbmcuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFk
PgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+SGVhZGVycyBjYXNlIG1h
bmFnZW1lbnQ8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0
Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWhlYWRlci1saXN0LWFwcGVuZCI+Ci0gICAgPG1l
dGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRw
czovL3d3dy5jcmYuY2Fub24uZnIiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlw
dD4KLSAgICAgIHZhciBoZWFkZXJEaWN0Q2FzZSA9IHsiVVBQRVJDQVNFIjogInZhbHVlMSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvd2VyY2FzZSI6ICJ2YWx1ZTIiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJtaXhlZENhc2UiOiAidmFsdWUzIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiQ29udGVudC1UWVBFIjogInZhbHVlNCIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH07Ci0KLSAgICAgIGZ1bmN0aW9uIGNoZWNrSGVhZGVyc0Nhc2Uob3JpZ2lu
YWxOYW1lLCBoZWFkZXJzVG9DaGVjaywgZXhwZWN0ZWREaWN0KSB7Ci0gICAgICAgIHZhciBsb3dD
YXNlTmFtZSA9IG9yaWdpbmFsTmFtZS50b0xvd2VyQ2FzZSgpOwotICAgICAgICB2YXIgdXBDYXNl
TmFtZSA9IG9yaWdpbmFsTmFtZS50b1VwcGVyQ2FzZSgpOwotICAgICAgICB2YXIgZXhwZWN0ZWRW
YWx1ZSA9IGV4cGVjdGVkRGljdFtvcmlnaW5hbE5hbWVdOwotICAgICAgICBhc3NlcnRfZXF1YWxz
KGhlYWRlcnNUb0NoZWNrLmdldChvcmlnaW5hbE5hbWUpLCBleHBlY3RlZFZhbHVlLAotICAgICAg
ICAgICAgIm5hbWU6ICIgKyBvcmlnaW5hbE5hbWUgKyAiIGhhcyB2YWx1ZTogIiArIGV4cGVjdGVk
VmFsdWUpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnNUb0NoZWNrLmdldChsb3dDYXNl
TmFtZSksIGV4cGVjdGVkVmFsdWUsCi0gICAgICAgICAgICAibmFtZTogIiArIGxvd0Nhc2VOYW1l
ICsgIiBoYXMgdmFsdWU6ICIgKyBleHBlY3RlZFZhbHVlKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFs
cyhoZWFkZXJzVG9DaGVjay5nZXQodXBDYXNlTmFtZSksIGV4cGVjdGVkVmFsdWUsCi0gICAgICAg
ICAgICAibmFtZTogIiArIHVwQ2FzZU5hbWUgKyAiIGhhcyB2YWx1ZTogIiArIGV4cGVjdGVkVmFs
dWUpOwotICAgICAgfQotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVh
ZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckRpY3RDYXNlKTsKLSAgICAgICAgZm9yIChuYW1lIGlu
IGhlYWRlckRpY3RDYXNlKQotICAgICAgICAgIGNoZWNrSGVhZGVyc0Nhc2UobmFtZSwgaGVhZGVy
cywgaGVhZGVyRGljdENhc2UpCi0gICAgICB9LCAiQ3JlYXRlIGhlYWRlcnMsIG5hbWVzIHVzZSBj
aGFyYWN0ZXJzIHdpdGggZGlmZmVyZW50IGNhc2UiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigp
IHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwotICAgICAgICBmb3IgKG5h
bWUgaW4gaGVhZGVyRGljdENhc2UpIHsKLSAgICAgICAgICBoZWFkZXJzLmFwcGVuZChuYW1lLCBo
ZWFkZXJEaWN0Q2FzZVtuYW1lXSk7Ci0gICAgICAgICAgY2hlY2tIZWFkZXJzQ2FzZShuYW1lLCBo
ZWFkZXJzLCBoZWFkZXJEaWN0Q2FzZSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJDaGVjayBhcHBl
bmQgbWV0aG9kLCBuYW1lcyB1c2UgY2hhcmFjdGVycyB3aXRoIGRpZmZlcmVudCBjYXNlIik7Ci0K
LSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRl
cnMoKTsKLSAgICAgICAgZm9yIChuYW1lIGluIGhlYWRlckRpY3RDYXNlKSB7Ci0gICAgICAgICAg
aGVhZGVycy5zZXQobmFtZSwgaGVhZGVyRGljdENhc2VbbmFtZV0pOwotICAgICAgICAgIGNoZWNr
SGVhZGVyc0Nhc2UobmFtZSwgaGVhZGVycywgaGVhZGVyRGljdENhc2UpOwotICAgICAgICB9Ci0g
ICAgICB9LCAiQ2hlY2sgc2V0IG1ldGhvZCwgbmFtZXMgdXNlIGNoYXJhY3RlcnMgd2l0aCBkaWZm
ZXJlbnQgY2FzZSIpOwotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVh
ZGVycyA9IG5ldyBIZWFkZXJzKCk7Ci0gICAgICAgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0Q2Fz
ZSkKLSAgICAgICAgICBoZWFkZXJzLnNldChuYW1lLCBoZWFkZXJEaWN0Q2FzZVtuYW1lXSk7Ci0g
ICAgICAgIGZvciAobmFtZSBpbiBoZWFkZXJEaWN0Q2FzZSkKLSAgICAgICAgICBoZWFkZXJzLmRl
bGV0ZShuYW1lLnRvTG93ZXJDYXNlKCkpOwotICAgICAgICBmb3IgKG5hbWUgaW4gaGVhZGVyRGlj
dENhc2UpCi0gICAgICAgICAgYXNzZXJ0X2ZhbHNlKGhlYWRlcnMuaGFzKG5hbWUpLCAiaGVhZGVy
ICIgKyBuYW1lICsgIiBzaG91bGQgaGF2ZSBiZWVuIGRlbGV0ZWQiKTsKLSAgICAgIH0sICJDaGVj
ayBkZWxldGUgbWV0aG9kLCBuYW1lcyB1c2UgY2hhcmFjdGVycyB3aXRoIGRpZmZlcmVudCBjYXNl
Iik7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMv
aGVhZGVycy1jb21iaW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y0NjFlNWRmZWY0NTM2YmJk
NzMxMjM1Y2Q2ZGZiNzk4NDBjNGE1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY29tYmluZS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw4ICswLDAgQEAKLQotUEFTUyBDcmVhdGUgaGVhZGVycyB1c2luZyBzYW1lIG5h
bWUgZm9yIGRpZmZlcmVudCB2YWx1ZXMKLVBBU1MgQ2hlY2sgZGVsZXRlIGFuZCBoYXMgbWV0aG9k
cyB3aGVuIHVzaW5nIHNhbWUgbmFtZSBmb3IgZGlmZmVyZW50IHZhbHVlcwotUEFTUyBDaGVjayBz
ZXQgbWV0aG9kcyB3aGVuIGNhbGxlZCB3aXRoIGFscmVhZHkgdXNlZCBuYW1lCi1QQVNTIENoZWNr
IGFwcGVuZCBtZXRob2RzIHdoZW4gY2FsbGVkIHdpdGggYWxyZWFkeSB1c2VkIG5hbWUKLVBBU1Mg
SXRlcmF0ZSBjb21iaW5lZCB2YWx1ZXMKLVBBU1MgSXRlcmF0ZSBjb21iaW5lZCB2YWx1ZXMgaW4g
c29ydGVkIG9yZGVyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLmFueS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY29tYmluZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNmNDYxZTVkZmVmNDUzNmJiZDczMTIzNWNkNmRmYjc5ODQwYzRhNWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9oZWFkZXJzL2hlYWRlcnMtY29tYmluZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
OCBAQAorCitQQVNTIENyZWF0ZSBoZWFkZXJzIHVzaW5nIHNhbWUgbmFtZSBmb3IgZGlmZmVyZW50
IHZhbHVlcworUEFTUyBDaGVjayBkZWxldGUgYW5kIGhhcyBtZXRob2RzIHdoZW4gdXNpbmcgc2Ft
ZSBuYW1lIGZvciBkaWZmZXJlbnQgdmFsdWVzCitQQVNTIENoZWNrIHNldCBtZXRob2RzIHdoZW4g
Y2FsbGVkIHdpdGggYWxyZWFkeSB1c2VkIG5hbWUKK1BBU1MgQ2hlY2sgYXBwZW5kIG1ldGhvZHMg
d2hlbiBjYWxsZWQgd2l0aCBhbHJlYWR5IHVzZWQgbmFtZQorUEFTUyBJdGVyYXRlIGNvbWJpbmVk
IHZhbHVlcworUEFTUyBJdGVyYXRlIGNvbWJpbmVkIHZhbHVlcyBpbiBzb3J0ZWQgb3JkZXIKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNvbWJpbmUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMt
Y29tYmluZS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1
MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNvbWJpbmUuYW55
Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktp
dCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNvbWJpbmUu
YW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXJzLWNvbWJpbmUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhYjQ3ODg5
YzQ1ZWYzY2RiODJmMTMxYTljN2Q3Y2M0ZDJlZDM4ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJz
L2hlYWRlcnMtY29tYmluZS5hbnkuanMKQEAgLTAsMCArMSw2NCBAQAorLy8gTUVUQTogdGl0bGU9
SGVhZGVycyBoYXZlIGNvbWJpbmVkIChhbmQgc29ydGVkKSB2YWx1ZXMKKy8vIE1FVEE6IGdsb2Jh
bD13aW5kb3csd29ya2VyCisKK3ZhciBoZWFkZXJTZXFDb21iaW5lID0gW1sic2luZ2xlIiwgInNp
bmdsZVZhbHVlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICBbImRvdWJsZSIsICJkb3VibGVW
YWx1ZTEiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFsiZG91YmxlIiwgImRvdWJsZVZhbHVl
MiJdLAorICAgICAgICAgICAgICAgICAgICAgICAgWyJ0cmlwbGUiLCAidHJpcGxlVmFsdWUxIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICBbInRyaXBsZSIsICJ0cmlwbGVWYWx1ZTIiXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFsidHJpcGxlIiwgInRyaXBsZVZhbHVlMyJdCitdOwordmFy
IGV4cGVjdGVkRGljdCA9IHsic2luZ2xlIjogInNpbmdsZVZhbHVlIiwKKyAgICAgICAgICAgICAg
ICAgICAgImRvdWJsZSI6ICJkb3VibGVWYWx1ZTEsIGRvdWJsZVZhbHVlMiIsCisgICAgICAgICAg
ICAgICAgICAgICJ0cmlwbGUiOiAidHJpcGxlVmFsdWUxLCB0cmlwbGVWYWx1ZTIsIHRyaXBsZVZh
bHVlMyIKK307CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRl
cnMoaGVhZGVyU2VxQ29tYmluZSk7CisgIGZvciAobmFtZSBpbiBleHBlY3RlZERpY3QpCisgICAg
YXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChuYW1lKSwgZXhwZWN0ZWREaWN0W25hbWVdKTsKK30s
ICJDcmVhdGUgaGVhZGVycyB1c2luZyBzYW1lIG5hbWUgZm9yIGRpZmZlcmVudCB2YWx1ZXMiKTsK
KwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJT
ZXFDb21iaW5lKTsKKyAgZm9yIChuYW1lIGluIGV4cGVjdGVkRGljdCkgeworICAgIGFzc2VydF90
cnVlKGhlYWRlcnMuaGFzKG5hbWUpLCAibmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZShzKSIp
OworICAgIGhlYWRlcnMuZGVsZXRlKG5hbWUpOworICAgIGFzc2VydF9mYWxzZShoZWFkZXJzLmhh
cyhuYW1lKSwgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgbm8gdmFsdWUocykgYW55bW9yZSIpOwor
ICB9Cit9LCAiQ2hlY2sgZGVsZXRlIGFuZCBoYXMgbWV0aG9kcyB3aGVuIHVzaW5nIHNhbWUgbmFt
ZSBmb3IgZGlmZmVyZW50IHZhbHVlcyIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaGVh
ZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlclNlcUNvbWJpbmUpOworICBmb3IgKG5hbWUgaW4gZXhw
ZWN0ZWREaWN0KSB7CisgICAgaGVhZGVycy5zZXQobmFtZSwibmV3U2luZ2xlVmFsdWUiKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCAibmV3U2luZ2xlVmFsdWUiLCAibmFt
ZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZTogbmV3U2luZ2xlVmFsdWUiKTsKKyAgfQorfSwgIkNo
ZWNrIHNldCBtZXRob2RzIHdoZW4gY2FsbGVkIHdpdGggYWxyZWFkeSB1c2VkIG5hbWUiKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJTZXFD
b21iaW5lKTsKKyAgZm9yIChuYW1lIGluIGV4cGVjdGVkRGljdCkgeworICAgIHZhciB2YWx1ZSA9
IGhlYWRlcnMuZ2V0KG5hbWUpOworICAgIGhlYWRlcnMuYXBwZW5kKG5hbWUsIm5ld1NpbmdsZVZh
bHVlIik7CisgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChuYW1lKSwgKHZhbHVlICsgIiwg
IiArICJuZXdTaW5nbGVWYWx1ZSIpKTsKKyAgfQorfSwgIkNoZWNrIGFwcGVuZCBtZXRob2RzIHdo
ZW4gY2FsbGVkIHdpdGggYWxyZWFkeSB1c2VkIG5hbWUiKTsKKwordGVzdCgoKSA9PiB7CisgIGNv
bnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyIxIiwgImEiXSxbIjEiLCAiYiJdXSk7CisgIGZv
cihsZXQgaGVhZGVyIG9mIGhlYWRlcnMpIHsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGhlYWRl
ciwgWyIxIiwgImEsIGIiXSk7CisgIH0KK30sICJJdGVyYXRlIGNvbWJpbmVkIHZhbHVlcyIpOwor
Cit0ZXN0KCgpID0+IHsKKyAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIjIiLCAiYSJd
LCBbIjEiLCAiYiJdLCBbIjIiLCAiYiJdXSksCisgICAgICAgIGV4cGVjdGVkID0gW1siMSIsICJi
Il0sIFsiMiIsICJhLCBiIl1dOworICBsZXQgaSA9IDA7CisgIGZvcihsZXQgaGVhZGVyIG9mIGhl
YWRlcnMpIHsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGhlYWRlciwgZXhwZWN0ZWRbaV0pOwor
ICAgIGkrKzsKKyAgfQorICBhc3NlcnRfZXF1YWxzKGksIDIpOworfSwgIkl0ZXJhdGUgY29tYmlu
ZWQgdmFsdWVzIGluIHNvcnRlZCBvcmRlciIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY29t
YmluZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNDYxZTVkZmVmNDUzNmJiZDczMTIzNWNk
NmRmYjc5ODQwYzRhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtY29tYmluZS5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworUEFTUyBDcmVhdGUgaGVh
ZGVycyB1c2luZyBzYW1lIG5hbWUgZm9yIGRpZmZlcmVudCB2YWx1ZXMKK1BBU1MgQ2hlY2sgZGVs
ZXRlIGFuZCBoYXMgbWV0aG9kcyB3aGVuIHVzaW5nIHNhbWUgbmFtZSBmb3IgZGlmZmVyZW50IHZh
bHVlcworUEFTUyBDaGVjayBzZXQgbWV0aG9kcyB3aGVuIGNhbGxlZCB3aXRoIGFscmVhZHkgdXNl
ZCBuYW1lCitQQVNTIENoZWNrIGFwcGVuZCBtZXRob2RzIHdoZW4gY2FsbGVkIHdpdGggYWxyZWFk
eSB1c2VkIG5hbWUKK1BBU1MgSXRlcmF0ZSBjb21iaW5lZCB2YWx1ZXMKK1BBU1MgSXRlcmF0ZSBj
b21iaW5lZCB2YWx1ZXMgaW4gc29ydGVkIG9yZGVyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVy
cy1jb21iaW5lLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLmFueS53b3Jr
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0
OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNvbWJpbmUuYW55Lndvcmtlci5o
dG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQg
dGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9oZWFkZXJzL2hlYWRlcnMtY29tYmluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3MzQxYjc3ZTg2YjdlZDdiZWZhMDM5OGQzZjY4ZjUxNjI0ZGMxYmNlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5l
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxo
dG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPkhl
YWRlcnMgaGF2ZSBjb21iaW5lZCAoYW5kIHNvcnRlZCkgdmFsdWVzPC90aXRsZT4KLSAgICA8bWV0
YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jaGVhZGVy
cyI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNl
IiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+
Ci0gICAgPHNjcmlwdD4KLSAgICAgIHZhciBoZWFkZXJTZXFDb21iaW5lID0gW1sic2luZ2xlIiwg
InNpbmdsZVZhbHVlIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImRvdWJsZSIs
ICJkb3VibGVWYWx1ZTEiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiZG91Ymxl
IiwgImRvdWJsZVZhbHVlMiJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJ0cmlw
bGUiLCAidHJpcGxlVmFsdWUxIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInRy
aXBsZSIsICJ0cmlwbGVWYWx1ZTIiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsi
dHJpcGxlIiwgInRyaXBsZVZhbHVlMyJdCi0gICAgICBdOwotICAgICAgdmFyIGV4cGVjdGVkRGlj
dCA9IHsic2luZ2xlIjogInNpbmdsZVZhbHVlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ImRvdWJsZSI6ICJkb3VibGVWYWx1ZTEsIGRvdWJsZVZhbHVlMiIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0cmlwbGUiOiAidHJpcGxlVmFsdWUxLCB0cmlwbGVWYWx1ZTIsIHRyaXBsZVZh
bHVlMyIKLSAgICAgIH07Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBo
ZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyU2VxQ29tYmluZSk7Ci0gICAgICAgIGZvciAobmFt
ZSBpbiBleHBlY3RlZERpY3QpCi0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChu
YW1lKSwgZXhwZWN0ZWREaWN0W25hbWVdKTsKLSAgICAgIH0sICJDcmVhdGUgaGVhZGVycyB1c2lu
ZyBzYW1lIG5hbWUgZm9yIGRpZmZlcmVudCB2YWx1ZXMiKTsKLQotICAgICAgdGVzdChmdW5jdGlv
bigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJTZXFDb21iaW5l
KTsKLSAgICAgICAgZm9yIChuYW1lIGluIGV4cGVjdGVkRGljdCkgewotICAgICAgICAgIGFzc2Vy
dF90cnVlKGhlYWRlcnMuaGFzKG5hbWUpLCAibmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZShz
KSIpOwotICAgICAgICAgIGhlYWRlcnMuZGVsZXRlKG5hbWUpOwotICAgICAgICAgIGFzc2VydF9m
YWxzZShoZWFkZXJzLmhhcyhuYW1lKSwgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgbm8gdmFsdWUo
cykgYW55bW9yZSIpOwotICAgICAgICB9Ci0gICAgICB9LCAiQ2hlY2sgZGVsZXRlIGFuZCBoYXMg
bWV0aG9kcyB3aGVuIHVzaW5nIHNhbWUgbmFtZSBmb3IgZGlmZmVyZW50IHZhbHVlcyIpOwotCi0g
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJz
KGhlYWRlclNlcUNvbWJpbmUpOwotICAgICAgICBmb3IgKG5hbWUgaW4gZXhwZWN0ZWREaWN0KSB7
Ci0gICAgICAgICAgaGVhZGVycy5zZXQobmFtZSwibmV3U2luZ2xlVmFsdWUiKTsKLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCAibmV3U2luZ2xlVmFsdWUiLCAibmFt
ZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZTogbmV3U2luZ2xlVmFsdWUiKTsKLSAgICAgICAgfQot
ICAgICAgfSwgIkNoZWNrIHNldCBtZXRob2RzIHdoZW4gY2FsbGVkIHdpdGggYWxyZWFkeSB1c2Vk
IG5hbWUiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMg
PSBuZXcgSGVhZGVycyhoZWFkZXJTZXFDb21iaW5lKTsKLSAgICAgICAgZm9yIChuYW1lIGluIGV4
cGVjdGVkRGljdCkgewotICAgICAgICAgIHZhciB2YWx1ZSA9IGhlYWRlcnMuZ2V0KG5hbWUpOwot
ICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKG5hbWUsIm5ld1NpbmdsZVZhbHVlIik7Ci0gICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChuYW1lKSwgKHZhbHVlICsgIiwgIiArICJuZXdT
aW5nbGVWYWx1ZSIpKTsKLSAgICAgICAgfQotICAgICAgfSwgIkNoZWNrIGFwcGVuZCBtZXRob2Rz
IHdoZW4gY2FsbGVkIHdpdGggYWxyZWFkeSB1c2VkIG5hbWUiKTsKLQotICAgICAgdGVzdCgoKSA9
PiB7Ci0gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyIxIiwgImEiXSxbIjEi
LCAiYiJdXSk7Ci0gICAgICAgIGZvcihsZXQgaGVhZGVyIG9mIGhlYWRlcnMpIHsKLSAgICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGhlYWRlciwgWyIxIiwgImEsIGIiXSk7Ci0gICAgICAgIH0K
LSAgICAgIH0sICJJdGVyYXRlIGNvbWJpbmVkIHZhbHVlcyIpOwotCi0gICAgICB0ZXN0KCgpID0+
IHsKLSAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIjIiLCAiYSJdLCBbIjEi
LCAiYiJdLCBbIjIiLCAiYiJdXSksCi0gICAgICAgICAgICAgIGV4cGVjdGVkID0gW1siMSIsICJi
Il0sIFsiMiIsICJhLCBiIl1dOwotICAgICAgICBsZXQgaSA9IDA7Ci0gICAgICAgIGZvcihsZXQg
aGVhZGVyIG9mIGhlYWRlcnMpIHsKLSAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGhlYWRl
ciwgZXhwZWN0ZWRbaV0pOwotICAgICAgICAgIGkrKzsKLSAgICAgICAgfQotICAgICAgICBhc3Nl
cnRfZXF1YWxzKGksIDIpOwotICAgICAgfSwgIkl0ZXJhdGUgY29tYmluZWQgdmFsdWVzIGluIHNv
cnRlZCBvcmRlciIpCi0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVycy1lcnJvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWVycm9y
cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2YjhlYjA2N2Nk
ODZiNDdhMzhhYWE0YjU3NjE4ZTM3OTdiOWFmZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWVycm9ycy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0KLVBBU1MgQ3JlYXRlIGhlYWRlcnMgZ2l2aW5n
IGFuIGFycmF5IGhhdmluZyBvbmUgc3RyaW5nIGFzIGluaXQgYXJndW1lbnQKLVBBU1MgQ3JlYXRl
IGhlYWRlcnMgZ2l2aW5nIGFuIGFycmF5IGhhdmluZyB0aHJlZSBzdHJpbmdzIGFzIGluaXQgYXJn
dW1lbnQKLVBBU1MgQ3JlYXRlIGhlYWRlcnMgZ2l2aW5nIGJhZCBoZWFkZXIgbmFtZSBhcyBpbml0
IGFyZ3VtZW50Ci1QQVNTIENyZWF0ZSBoZWFkZXJzIGdpdmluZyBiYWQgaGVhZGVyIHZhbHVlIGFz
IGluaXQgYXJndW1lbnQKLVBBU1MgQ2hlY2sgaGVhZGVycyBnZXQgd2l0aCBhbiBpbnZhbGlkIG5h
bWUgaW52YWxpZMSACi1QQVNTIENoZWNrIGhlYWRlcnMgZ2V0IHdpdGggYW4gaW52YWxpZCBuYW1l
IFtvYmplY3QgT2JqZWN0XQotUEFTUyBDaGVjayBoZWFkZXJzIGRlbGV0ZSB3aXRoIGFuIGludmFs
aWQgbmFtZSBpbnZhbGlkxIAKLVBBU1MgQ2hlY2sgaGVhZGVycyBkZWxldGUgd2l0aCBhbiBpbnZh
bGlkIG5hbWUgW29iamVjdCBPYmplY3RdCi1QQVNTIENoZWNrIGhlYWRlcnMgaGFzIHdpdGggYW4g
aW52YWxpZCBuYW1lIGludmFsaWTEgAotUEFTUyBDaGVjayBoZWFkZXJzIGhhcyB3aXRoIGFuIGlu
dmFsaWQgbmFtZSBbb2JqZWN0IE9iamVjdF0KLVBBU1MgQ2hlY2sgaGVhZGVycyBzZXQgd2l0aCBh
biBpbnZhbGlkIG5hbWUgaW52YWxpZMSACi1QQVNTIENoZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4g
aW52YWxpZCBuYW1lIFtvYmplY3QgT2JqZWN0XQotUEFTUyBDaGVjayBoZWFkZXJzIHNldCB3aXRo
IGFuIGludmFsaWQgdmFsdWUgaW52YWxpZMSACi1QQVNTIENoZWNrIGhlYWRlcnMgYXBwZW5kIHdp
dGggYW4gaW52YWxpZCBuYW1lIGludmFsaWTEgAotUEFTUyBDaGVjayBoZWFkZXJzIGFwcGVuZCB3
aXRoIGFuIGludmFsaWQgbmFtZSBbb2JqZWN0IE9iamVjdF0KLVBBU1MgQ2hlY2sgaGVhZGVycyBh
cHBlbmQgd2l0aCBhbiBpbnZhbGlkIHZhbHVlIGludmFsaWTEgAotUEFTUyBIZWFkZXJzIGZvckVh
Y2ggdGhyb3dzIGlmIGFyZ3VtZW50IGlzIG5vdCBjYWxsYWJsZQotUEFTUyBIZWFkZXJzIGZvckVh
Y2ggbG9vcCBzaG91bGQgc3RvcCBpZiBjYWxsYmFjayBpcyB0aHJvd2luZyBleGNlcHRpb24KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWVycm9ycy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLWVycm9ycy5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2YjhlYjA2N2NkODZi
NDdhMzhhYWE0YjU3NjE4ZTM3OTdiOWFmZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
cnMtZXJyb3JzLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIENyZWF0
ZSBoZWFkZXJzIGdpdmluZyBhbiBhcnJheSBoYXZpbmcgb25lIHN0cmluZyBhcyBpbml0IGFyZ3Vt
ZW50CitQQVNTIENyZWF0ZSBoZWFkZXJzIGdpdmluZyBhbiBhcnJheSBoYXZpbmcgdGhyZWUgc3Ry
aW5ncyBhcyBpbml0IGFyZ3VtZW50CitQQVNTIENyZWF0ZSBoZWFkZXJzIGdpdmluZyBiYWQgaGVh
ZGVyIG5hbWUgYXMgaW5pdCBhcmd1bWVudAorUEFTUyBDcmVhdGUgaGVhZGVycyBnaXZpbmcgYmFk
IGhlYWRlciB2YWx1ZSBhcyBpbml0IGFyZ3VtZW50CitQQVNTIENoZWNrIGhlYWRlcnMgZ2V0IHdp
dGggYW4gaW52YWxpZCBuYW1lIGludmFsaWTEgAorUEFTUyBDaGVjayBoZWFkZXJzIGdldCB3aXRo
IGFuIGludmFsaWQgbmFtZSBbb2JqZWN0IE9iamVjdF0KK1BBU1MgQ2hlY2sgaGVhZGVycyBkZWxl
dGUgd2l0aCBhbiBpbnZhbGlkIG5hbWUgaW52YWxpZMSACitQQVNTIENoZWNrIGhlYWRlcnMgZGVs
ZXRlIHdpdGggYW4gaW52YWxpZCBuYW1lIFtvYmplY3QgT2JqZWN0XQorUEFTUyBDaGVjayBoZWFk
ZXJzIGhhcyB3aXRoIGFuIGludmFsaWQgbmFtZSBpbnZhbGlkxIAKK1BBU1MgQ2hlY2sgaGVhZGVy
cyBoYXMgd2l0aCBhbiBpbnZhbGlkIG5hbWUgW29iamVjdCBPYmplY3RdCitQQVNTIENoZWNrIGhl
YWRlcnMgc2V0IHdpdGggYW4gaW52YWxpZCBuYW1lIGludmFsaWTEgAorUEFTUyBDaGVjayBoZWFk
ZXJzIHNldCB3aXRoIGFuIGludmFsaWQgbmFtZSBbb2JqZWN0IE9iamVjdF0KK1BBU1MgQ2hlY2sg
aGVhZGVycyBzZXQgd2l0aCBhbiBpbnZhbGlkIHZhbHVlIGludmFsaWTEgAorUEFTUyBDaGVjayBo
ZWFkZXJzIGFwcGVuZCB3aXRoIGFuIGludmFsaWQgbmFtZSBpbnZhbGlkxIAKK1BBU1MgQ2hlY2sg
aGVhZGVycyBhcHBlbmQgd2l0aCBhbiBpbnZhbGlkIG5hbWUgW29iamVjdCBPYmplY3RdCitQQVNT
IENoZWNrIGhlYWRlcnMgYXBwZW5kIHdpdGggYW4gaW52YWxpZCB2YWx1ZSBpbnZhbGlkxIAKK1BB
U1MgSGVhZGVycyBmb3JFYWNoIHRocm93cyBpZiBhcmd1bWVudCBpcyBub3QgY2FsbGFibGUKK1BB
U1MgSGVhZGVycyBmb3JFYWNoIGxvb3Agc2hvdWxkIHN0b3AgaWYgY2FsbGJhY2sgaXMgdGhyb3dp
bmcgZXhjZXB0aW9uCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMuYW55Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9o
ZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkz
YjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
cnMtZXJyb3JzLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVp
cmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0
ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVh
ZGVycy1lcnJvcnMuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWVycm9ycy5hbnkuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWI4YTExOGUyNTVmM2FkMmQ1N2I2ZDU3YWU0YTVmMjYzNDYxYjcxMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMuYW55LmpzCkBAIC0wLDAgKzEsOTQgQEAKKy8vIE1F
VEE6IHRpdGxlPUhlYWRlcnMgZXJyb3JzCisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgor
Cit0ZXN0KGZ1bmN0aW9uKCkgeworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rp
b24oKSB7IG5ldyBIZWFkZXJzKFtbIm5hbWUiXV0pOyB9KTsKK30sICJDcmVhdGUgaGVhZGVycyBn
aXZpbmcgYW4gYXJyYXkgaGF2aW5nIG9uZSBzdHJpbmcgYXMgaW5pdCBhcmd1bWVudCIpOworCit0
ZXN0KGZ1bmN0aW9uKCkgeworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7IG5ldyBIZWFkZXJzKFtbImludmFsaWQiLCAiaW52YWxpZFZhbHVlMSIsICJpbnZhbGlkVmFs
dWUyIl1dKTsgfSk7Cit9LCAiQ3JlYXRlIGhlYWRlcnMgZ2l2aW5nIGFuIGFycmF5IGhhdmluZyB0
aHJlZSBzdHJpbmdzIGFzIGluaXQgYXJndW1lbnQiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
YXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcgSGVhZGVycyhbWyJp
bnZhbGlkxIAiLCAiVmFsdWUxIl1dKTsgfSk7Cit9LCAiQ3JlYXRlIGhlYWRlcnMgZ2l2aW5nIGJh
ZCBoZWFkZXIgbmFtZSBhcyBpbml0IGFyZ3VtZW50Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
IGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgbmV3IEhlYWRlcnMoW1si
bmFtZSIsICJpbnZhbGlkVmFsdWXEgCJdXSk7IH0pOworfSwgIkNyZWF0ZSBoZWFkZXJzIGdpdmlu
ZyBiYWQgaGVhZGVyIHZhbHVlIGFzIGluaXQgYXJndW1lbnQiKTsKKwordmFyIGJhZE5hbWVzID0g
WyJpbnZhbGlkxIAiLCB7fV07Cit2YXIgYmFkVmFsdWVzID0gWyJpbnZhbGlkxIAiXTsKKworYmFk
TmFtZXMuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAg
dmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVy
cm9yLCBmdW5jdGlvbigpIHsgaGVhZGVycy5nZXQobmFtZSk7IH0pOworICB9LCAiQ2hlY2sgaGVh
ZGVycyBnZXQgd2l0aCBhbiBpbnZhbGlkIG5hbWUgIiArIG5hbWUpOworfSk7CisKK2JhZE5hbWVz
LmZvckVhY2goZnVuY3Rpb24obmFtZSkgeworICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBo
ZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwg
ZnVuY3Rpb24oKSB7IGhlYWRlcnMuZGVsZXRlKG5hbWUpOyB9KTsKKyAgfSwgIkNoZWNrIGhlYWRl
cnMgZGVsZXRlIHdpdGggYW4gaW52YWxpZCBuYW1lICIgKyBuYW1lKTsKK30pOworCitiYWROYW1l
cy5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHsKKyAgdGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIg
aGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3Is
IGZ1bmN0aW9uKCkgeyBoZWFkZXJzLmhhcyhuYW1lKTsgfSk7CisgIH0sICJDaGVjayBoZWFkZXJz
IGhhcyB3aXRoIGFuIGludmFsaWQgbmFtZSAiICsgbmFtZSk7Cit9KTsKKworYmFkTmFtZXMuZm9y
RWFjaChmdW5jdGlvbihuYW1lKSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIGhlYWRl
cnMgPSBuZXcgSGVhZGVycygpOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5j
dGlvbigpIHsgaGVhZGVycy5zZXQobmFtZSwgIlZhbHVlMSIpOyB9KTsKKyAgfSwgIkNoZWNrIGhl
YWRlcnMgc2V0IHdpdGggYW4gaW52YWxpZCBuYW1lICIgKyBuYW1lKTsKK30pOworCitiYWRWYWx1
ZXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkgeworICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZh
ciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJv
ciwgZnVuY3Rpb24oKSB7IGhlYWRlcnMuc2V0KCJuYW1lIiwgdmFsdWUpOyB9KTsKKyAgfSwgIkNo
ZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4gaW52YWxpZCB2YWx1ZSAiICsgdmFsdWUpOworfSk7CisK
K2JhZE5hbWVzLmZvckVhY2goZnVuY3Rpb24obmFtZSkgeworICB0ZXN0KGZ1bmN0aW9uKCkgewor
ICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5
cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhlYWRlcnMuYXBwZW5kKCJpbnZhbGlkxIAiLCAiVmFsdWUx
Iik7IH0pOworICB9LCAiQ2hlY2sgaGVhZGVycyBhcHBlbmQgd2l0aCBhbiBpbnZhbGlkIG5hbWUg
IiArIG5hbWUpOworfSk7CisKK2JhZFZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7Cisg
IHRlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworICAg
IGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgaGVhZGVycy5hcHBlbmQo
Im5hbWUiLCB2YWx1ZSk7IH0pOworICB9LCAiQ2hlY2sgaGVhZGVycyBhcHBlbmQgd2l0aCBhbiBp
bnZhbGlkIHZhbHVlICIgKyB2YWx1ZSk7Cit9KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFy
IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJuYW1lIiwgInZhbHVlIl1dKTsKKyAgYXNzZXJ0X3Ro
cm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBoZWFkZXJzLmZvckVhY2goKTsgfSk7Cisg
IGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgaGVhZGVycy5mb3JFYWNo
KHVuZGVmaW5lZCk7IH0pOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7IGhlYWRlcnMuZm9yRWFjaCgxKTsgfSk7Cit9LCAiSGVhZGVycyBmb3JFYWNoIHRocm93cyBp
ZiBhcmd1bWVudCBpcyBub3QgY2FsbGFibGUiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFy
IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJuYW1lMSIsICJ2YWx1ZTEiXSwgWyJuYW1lMiIsICJ2
YWx1ZTIiXSwgWyJuYW1lMyIsICJ2YWx1ZTMiXV0pOworICB2YXIgY291bnRlciA9IDA7CisgIHRy
eSB7CisgICAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHsKKyAgICAg
ICAgICBjb3VudGVyKys7CisgICAgICAgICAgaWYgKG5hbWUgPT0gIm5hbWUyIikKKyAgICAgICAg
ICAgICAgICB0aHJvdyAiZXJyb3IiOworICAgICAgfSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
IGFzc2VydF9lcXVhbHMoY291bnRlciwgMik7CisgICAgICBhc3NlcnRfZXF1YWxzKGUsICJlcnJv
ciIpOworICAgICAgcmV0dXJuOworICB9CisgIGFzc2VydF91bnJlYWNoZWQoKTsKK30sICJIZWFk
ZXJzIGZvckVhY2ggbG9vcCBzaG91bGQgc3RvcCBpZiBjYWxsYmFjayBpcyB0aHJvd2luZyBleGNl
cHRpb24iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA2YjhlYjA2N2NkODZiNDdhMzhhYWE0YjU3NjE4ZTM3OTdiOWFmZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjAgQEAKKworUEFTUyBDcmVhdGUgaGVhZGVycyBnaXZpbmcgYW4gYXJyYXkg
aGF2aW5nIG9uZSBzdHJpbmcgYXMgaW5pdCBhcmd1bWVudAorUEFTUyBDcmVhdGUgaGVhZGVycyBn
aXZpbmcgYW4gYXJyYXkgaGF2aW5nIHRocmVlIHN0cmluZ3MgYXMgaW5pdCBhcmd1bWVudAorUEFT
UyBDcmVhdGUgaGVhZGVycyBnaXZpbmcgYmFkIGhlYWRlciBuYW1lIGFzIGluaXQgYXJndW1lbnQK
K1BBU1MgQ3JlYXRlIGhlYWRlcnMgZ2l2aW5nIGJhZCBoZWFkZXIgdmFsdWUgYXMgaW5pdCBhcmd1
bWVudAorUEFTUyBDaGVjayBoZWFkZXJzIGdldCB3aXRoIGFuIGludmFsaWQgbmFtZSBpbnZhbGlk
xIAKK1BBU1MgQ2hlY2sgaGVhZGVycyBnZXQgd2l0aCBhbiBpbnZhbGlkIG5hbWUgW29iamVjdCBP
YmplY3RdCitQQVNTIENoZWNrIGhlYWRlcnMgZGVsZXRlIHdpdGggYW4gaW52YWxpZCBuYW1lIGlu
dmFsaWTEgAorUEFTUyBDaGVjayBoZWFkZXJzIGRlbGV0ZSB3aXRoIGFuIGludmFsaWQgbmFtZSBb
b2JqZWN0IE9iamVjdF0KK1BBU1MgQ2hlY2sgaGVhZGVycyBoYXMgd2l0aCBhbiBpbnZhbGlkIG5h
bWUgaW52YWxpZMSACitQQVNTIENoZWNrIGhlYWRlcnMgaGFzIHdpdGggYW4gaW52YWxpZCBuYW1l
IFtvYmplY3QgT2JqZWN0XQorUEFTUyBDaGVjayBoZWFkZXJzIHNldCB3aXRoIGFuIGludmFsaWQg
bmFtZSBpbnZhbGlkxIAKK1BBU1MgQ2hlY2sgaGVhZGVycyBzZXQgd2l0aCBhbiBpbnZhbGlkIG5h
bWUgW29iamVjdCBPYmplY3RdCitQQVNTIENoZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4gaW52YWxp
ZCB2YWx1ZSBpbnZhbGlkxIAKK1BBU1MgQ2hlY2sgaGVhZGVycyBhcHBlbmQgd2l0aCBhbiBpbnZh
bGlkIG5hbWUgaW52YWxpZMSACitQQVNTIENoZWNrIGhlYWRlcnMgYXBwZW5kIHdpdGggYW4gaW52
YWxpZCBuYW1lIFtvYmplY3QgT2JqZWN0XQorUEFTUyBDaGVjayBoZWFkZXJzIGFwcGVuZCB3aXRo
IGFuIGludmFsaWQgdmFsdWUgaW52YWxpZMSACitQQVNTIEhlYWRlcnMgZm9yRWFjaCB0aHJvd3Mg
aWYgYXJndW1lbnQgaXMgbm90IGNhbGxhYmxlCitQQVNTIEhlYWRlcnMgZm9yRWFjaCBsb29wIHNo
b3VsZCBzdG9wIGlmIGNhbGxiYWNrIGlzIHRocm93aW5nIGV4Y2VwdGlvbgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9o
ZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1lcnJv
cnMuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBh
NDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmFu
eS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBm
b3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAt
LT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMt
ZXJyb3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtZXJyb3JzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDdmOTkxNmQ4N2ZlMmFjMTI1OTUzZWIyNWYwZTI3OGFhMzEwNzNiM2UuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJz
LWVycm9ycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAKLTwhZG9jdHlwZSBo
dG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8
dGl0bGU+SGVhZGVycyBlcnJvcnM8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNoZWFkZXJzIj4KLSAgICA8bWV0YSBuYW1l
PSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3
LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotCi0g
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJv
ciwgZnVuY3Rpb24oKSB7IG5ldyBIZWFkZXJzKFtbIm5hbWUiXV0pOyB9KTsKLSAgICAgIH0sICJD
cmVhdGUgaGVhZGVycyBnaXZpbmcgYW4gYXJyYXkgaGF2aW5nIG9uZSBzdHJpbmcgYXMgaW5pdCBh
cmd1bWVudCIpOwotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRfdGhy
b3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBIZWFkZXJzKFtbImludmFsaWQiLCAi
aW52YWxpZFZhbHVlMSIsICJpbnZhbGlkVmFsdWUyIl1dKTsgfSk7Ci0gICAgICB9LCAiQ3JlYXRl
IGhlYWRlcnMgZ2l2aW5nIGFuIGFycmF5IGhhdmluZyB0aHJlZSBzdHJpbmdzIGFzIGluaXQgYXJn
dW1lbnQiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3Rocm93
c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcgSGVhZGVycyhbWyJpbnZhbGlkxIAiLCAi
VmFsdWUxIl1dKTsgfSk7Ci0gICAgICB9LCAiQ3JlYXRlIGhlYWRlcnMgZ2l2aW5nIGJhZCBoZWFk
ZXIgbmFtZSBhcyBpbml0IGFyZ3VtZW50Iik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgbmV3IEhlYWRl
cnMoW1sibmFtZSIsICJpbnZhbGlkVmFsdWXEgCJdXSk7IH0pOwotICAgICAgfSwgIkNyZWF0ZSBo
ZWFkZXJzIGdpdmluZyBiYWQgaGVhZGVyIHZhbHVlIGFzIGluaXQgYXJndW1lbnQiKTsKLQotICAg
ICAgdmFyIGJhZE5hbWVzID0gWyJpbnZhbGlkxIAiLCB7fV07Ci0gICAgICB2YXIgYmFkVmFsdWVz
ID0gWyJpbnZhbGlkxIAiXTsKLQotICAgICAgYmFkTmFtZXMuZm9yRWFjaChmdW5jdGlvbihuYW1l
KSB7Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGhlYWRlcnMgPSBu
ZXcgSGVhZGVycygpOwotICAgICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5j
dGlvbigpIHsgaGVhZGVycy5nZXQobmFtZSk7IH0pOwotICAgICAgICB9LCAiQ2hlY2sgaGVhZGVy
cyBnZXQgd2l0aCBhbiBpbnZhbGlkIG5hbWUgIiArIG5hbWUpOwotICAgICAgfSk7Ci0KLSAgICAg
IGJhZE5hbWVzLmZvckVhY2goZnVuY3Rpb24obmFtZSkgewotICAgICAgICB0ZXN0KGZ1bmN0aW9u
KCkgewotICAgICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKLSAgICAgICAgICBh
c3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhlYWRlcnMuZGVsZXRlKG5h
bWUpOyB9KTsKLSAgICAgICAgfSwgIkNoZWNrIGhlYWRlcnMgZGVsZXRlIHdpdGggYW4gaW52YWxp
ZCBuYW1lICIgKyBuYW1lKTsKLSAgICAgIH0pOwotCi0gICAgICBiYWROYW1lcy5mb3JFYWNoKGZ1
bmN0aW9uKG5hbWUpIHsKLSAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIg
aGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7Ci0gICAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBl
RXJyb3IsIGZ1bmN0aW9uKCkgeyBoZWFkZXJzLmhhcyhuYW1lKTsgfSk7Ci0gICAgICAgIH0sICJD
aGVjayBoZWFkZXJzIGhhcyB3aXRoIGFuIGludmFsaWQgbmFtZSAiICsgbmFtZSk7Ci0gICAgICB9
KTsKLQotICAgICAgYmFkTmFtZXMuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7Ci0gICAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwot
ICAgICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgaGVhZGVy
cy5zZXQobmFtZSwgIlZhbHVlMSIpOyB9KTsKLSAgICAgICAgfSwgIkNoZWNrIGhlYWRlcnMgc2V0
IHdpdGggYW4gaW52YWxpZCBuYW1lICIgKyBuYW1lKTsKLSAgICAgIH0pOwotCi0gICAgICBiYWRW
YWx1ZXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkg
ewotICAgICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKLSAgICAgICAgICBhc3Nl
cnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhlYWRlcnMuc2V0KCJuYW1lIiwg
dmFsdWUpOyB9KTsKLSAgICAgICAgfSwgIkNoZWNrIGhlYWRlcnMgc2V0IHdpdGggYW4gaW52YWxp
ZCB2YWx1ZSAiICsgdmFsdWUpOwotICAgICAgfSk7Ci0KLSAgICAgIGJhZE5hbWVzLmZvckVhY2go
ZnVuY3Rpb24obmFtZSkgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZh
ciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKLSAgICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5
cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhlYWRlcnMuYXBwZW5kKCJpbnZhbGlkxIAiLCAiVmFsdWUx
Iik7IH0pOwotICAgICAgICB9LCAiQ2hlY2sgaGVhZGVycyBhcHBlbmQgd2l0aCBhbiBpbnZhbGlk
IG5hbWUgIiArIG5hbWUpOwotICAgICAgfSk7Ci0KLSAgICAgIGJhZFZhbHVlcy5mb3JFYWNoKGZ1
bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFy
IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwotICAgICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlw
ZUVycm9yLCBmdW5jdGlvbigpIHsgaGVhZGVycy5hcHBlbmQoIm5hbWUiLCB2YWx1ZSk7IH0pOwot
ICAgICAgICB9LCAiQ2hlY2sgaGVhZGVycyBhcHBlbmQgd2l0aCBhbiBpbnZhbGlkIHZhbHVlICIg
KyB2YWx1ZSk7Ci0gICAgICB9KTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAg
dmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJuYW1lIiwgInZhbHVlIl1dKTsKLSAgICAgICAg
YXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBoZWFkZXJzLmZvckVhY2go
KTsgfSk7Ci0gICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsg
aGVhZGVycy5mb3JFYWNoKHVuZGVmaW5lZCk7IH0pOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pz
KFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGhlYWRlcnMuZm9yRWFjaCgxKTsgfSk7Ci0gICAgICB9
LCAiSGVhZGVycyBmb3JFYWNoIHRocm93cyBpZiBhcmd1bWVudCBpcyBub3QgY2FsbGFibGUiKTsK
LQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVh
ZGVycyhbWyJuYW1lMSIsICJ2YWx1ZTEiXSwgWyJuYW1lMiIsICJ2YWx1ZTIiXSwgWyJuYW1lMyIs
ICJ2YWx1ZTMiXV0pOwotICAgICAgICB2YXIgY291bnRlciA9IDA7Ci0gICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHsKLSAgICAg
ICAgICAgICAgICBjb3VudGVyKys7Ci0gICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gIm5hbWUy
IikKLSAgICAgICAgICAgICAgICAgICAgIHRocm93ICJlcnJvciI7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudGVy
LCAyKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZSwgImVycm9yIik7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgpOwotICAgICAg
fSwgIkhlYWRlcnMgZm9yRWFjaCBsb29wIHNob3VsZCBzdG9wIGlmIGNhbGxiYWNrIGlzIHRocm93
aW5nIGV4Y2VwdGlvbiIpOwotICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
cnMtbm8tY29ycy5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4OThiMjdlMGY0ZjY1ZDdh
ZDUwMDAyMTczOGVlNmRiNjdmYTc5OGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMt
bm8tY29ycy5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKKworUEFTUyBMb2FkaW5n
IGRhdGHigKYKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGFjY2Vw
dCBzZXQgdG8gc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcywgLCBzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzCitQQVNTICJuby1jb3JzIiBI
ZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQtbGFuZ3VhZ2Ugc2V0IHRvIHNzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3MsICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcworUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fu
bm90IGhhdmUgY29udGVudC1sYW5ndWFnZSBzZXQgdG8gc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcywgLCBzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3NzCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQg
c2V0IHRvICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcworUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fu
bm90IGhhdmUgYWNjZXB0LWxhbmd1YWdlIHNldCB0byAsIHNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MKK1BBU1MgIm5v
LWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRlbnQtbGFuZ3VhZ2Ugc2V0IHRv
ICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3NzcworUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhh
dmUgY29udGVudC10eXBlIHNldCB0byB0ZXh0L3BsYWluO3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzLCB0ZXh0L3BsYWluCitQQVNTICJu
by1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQvIiBhcyBoZWFkZXIKK1BB
U1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGFjY2VwdC8wMTIzNDU2Nzg5
MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2
Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIz
NDU2NzggYXMgaGVhZGVyCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2
ZSBhY2NlcHQtbGFuZ3VhZ2UvASBhcyBoZWFkZXIKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2Jq
ZWN0IGNhbm5vdCBoYXZlIGFjY2VwdC1sYW5ndWFnZS9AIGFzIGhlYWRlcgorUEFTUyAibm8tY29y
cyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVudC1sYW5ndWFnZS8BIGFzIGhlYWRl
cgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVudC1sYW5n
dWFnZS9AIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhh
dmUgY29udGVudC10eXBlL3RleHQvaHRtbCBhcyBoZWFkZXIKK1BBU1MgIm5vLWNvcnMiIEhlYWRl
cnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRlbnQtdHlwZS90ZXh0L3BsYWluOyBsb25nPTAxMjM0
NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx
MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEgYXMgaGVh
ZGVyCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSB0ZXN0L2hpIGFz
IGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgZHByLzIg
YXMgaGVhZGVyCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBkb3du
bGluay8xIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhh
dmUgc2F2ZS1kYXRhL29uIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3Qg
Y2Fubm90IGhhdmUgdmlld3BvcnQtd2lkdGgvMTAwIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIg
SGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgd2lkdGgvMTAwIGFzIGhlYWRlcgorUEFTUyAibm8t
Y29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgdW5rbm93bi9kb2VzaXRtYXR0ZXIgYXMg
aGVhZGVyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLmFueS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVy
cy9oZWFkZXJzLW5vLWNvcnMuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1
ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1u
by1jb3JzLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0
IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVy
cy1uby1jb3JzLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLmFueS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMDk2NThlNjQxZWNkZjE0Mzc3OGRmM2IwMmI1Y2E1NDljNWI0YzE5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvaGVhZGVycy9oZWFkZXJzLW5vLWNvcnMuYW55LmpzCkBAIC0wLDAgKzEsNTUgQEAKKy8vIE1F
VEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisKK3Byb21pc2VfdGVzdCgoKSA9PiBmZXRjaCgiLi4v
Y29ycy9yZXNvdXJjZXMvbm90LWNvcnMtc2FmZWxpc3RlZC5qc29uIikudGhlbihyZXMgPT4gcmVz
Lmpzb24oKS50aGVuKHJ1blRlc3RzKSksICJMb2FkaW5nIGRhdGHigKYiKTsKKworY29uc3QgbG9u
Z1ZhbHVlID0gInMiLnJlcGVhdCgxMjcpOworCitbCisgIHsKKyAgICAiaGVhZGVycyI6IFsiYWNj
ZXB0IiwgImFjY2VwdC1sYW5ndWFnZSIsICJjb250ZW50LWxhbmd1YWdlIl0sCisgICAgInZhbHVl
cyI6IFtsb25nVmFsdWUsICIiLCBsb25nVmFsdWVdCisgIH0sCisgIHsKKyAgICAiaGVhZGVycyI6
IFsiYWNjZXB0IiwgImFjY2VwdC1sYW5ndWFnZSIsICJjb250ZW50LWxhbmd1YWdlIl0sCisgICAg
InZhbHVlcyI6IFsiIiwgbG9uZ1ZhbHVlXQorICB9LAorICB7CisgICAgImhlYWRlcnMiOiBbImNv
bnRlbnQtdHlwZSJdLAorICAgICJ2YWx1ZXMiOiBbInRleHQvcGxhaW47IiArICJzIi5yZXBlYXQo
MTE2KSwgInRleHQvcGxhaW4iXQorICB9CitdLmZvckVhY2godGVzdEl0ZW0gPT4geworICB0ZXN0
SXRlbS5oZWFkZXJzLmZvckVhY2goaGVhZGVyID0+IHsKKyAgICB0ZXN0KCgpID0+IHsKKyAgICAg
IGNvbnN0IG5vQ29yc0hlYWRlcnMgPSBuZXcgUmVxdWVzdCgiYWJvdXQ6YmxhbmsiLCB7IG1vZGU6
ICJuby1jb3JzIiB9KS5oZWFkZXJzOworICAgICAgdGVzdEl0ZW0udmFsdWVzLmZvckVhY2goKHZh
bHVlKSA9PiB7CisgICAgICAgIG5vQ29yc0hlYWRlcnMuYXBwZW5kKGhlYWRlciwgdmFsdWUpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKG5vQ29yc0hlYWRlcnMuZ2V0KGhlYWRlciksIHRlc3RJdGVt
LnZhbHVlc1swXSwgJzEnKTsKKyAgICAgIH0pOworICAgICAgbm9Db3JzSGVhZGVycy5zZXQoaGVh
ZGVyLCB0ZXN0SXRlbS52YWx1ZXMuam9pbigiLCAiKSk7CisgICAgICBhc3NlcnRfZXF1YWxzKG5v
Q29yc0hlYWRlcnMuZ2V0KGhlYWRlciksIHRlc3RJdGVtLnZhbHVlc1swXSwgJzInKTsKKyAgICAg
IG5vQ29yc0hlYWRlcnMuZGVsZXRlKGhlYWRlcik7CisgICAgICBhc3NlcnRfZmFsc2Uobm9Db3Jz
SGVhZGVycy5oYXMoaGVhZGVyKSk7CisgICAgfSwgIlwibm8tY29yc1wiIEhlYWRlcnMgb2JqZWN0
IGNhbm5vdCBoYXZlICIgKyBoZWFkZXIgKyAiIHNldCB0byAiICsgdGVzdEl0ZW0udmFsdWVzLmpv
aW4oIiwgIikpOworICB9KTsKK30pOworCitmdW5jdGlvbiBydW5UZXN0cyh0ZXN0QXJyYXkpIHsK
KyAgdGVzdEFycmF5ID0gdGVzdEFycmF5LmNvbmNhdChbCisgICAgWyJkcHIiLCAiMiJdLAorICAg
IFsiZG93bmxpbmsiLCAiMSJdLAorICAgIFsic2F2ZS1kYXRhIiwgIm9uIl0sCisgICAgWyJ2aWV3
cG9ydC13aWR0aCIsICIxMDAiXSwKKyAgICBbIndpZHRoIiwgIjEwMCJdLAorICAgIFsidW5rbm93
biIsICJkb2VzaXRtYXR0ZXIiXQorICBdKTsKKyAgdGVzdEFycmF5LmZvckVhY2godGVzdEl0ZW0g
PT4geworICAgIGNvbnN0IFtoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZV0gPSB0ZXN0SXRlbTsKKyAg
ICB0ZXN0KCgpID0+IHsKKyAgICAgIGNvbnN0IG5vQ29yc0hlYWRlcnMgPSBuZXcgUmVxdWVzdCgi
YWJvdXQ6YmxhbmsiLCB7IG1vZGU6ICJuby1jb3JzIiB9KS5oZWFkZXJzOworICAgICAgbm9Db3Jz
SGVhZGVycy5hcHBlbmQoaGVhZGVyTmFtZSwgaGVhZGVyVmFsdWUpOworICAgICAgYXNzZXJ0X2Zh
bHNlKG5vQ29yc0hlYWRlcnMuaGFzKGhlYWRlck5hbWUpKTsKKyAgICAgIG5vQ29yc0hlYWRlcnMu
c2V0KGhlYWRlck5hbWUsIGhlYWRlclZhbHVlKTsKKyAgICAgIGFzc2VydF9mYWxzZShub0NvcnNI
ZWFkZXJzLmhhcyhoZWFkZXJOYW1lKSk7CisgICAgfSwgIlwibm8tY29yc1wiIEhlYWRlcnMgb2Jq
ZWN0IGNhbm5vdCBoYXZlICIgKyBoZWFkZXJOYW1lICsgIi8iICsgaGVhZGVyVmFsdWUgKyAiIGFz
IGhlYWRlciIpOworICB9KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vLWNvcnMuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg5OGIyN2UwZjRmNjVkN2FkNTAwMDIxNzM4ZWU2ZGI2
N2ZhNzk4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKKworUEFTUyBMb2FkaW5nIGRhdGHigKYK
K1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGFjY2VwdCBzZXQgdG8g
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3NzcywgLCBzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9i
amVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQtbGFuZ3VhZ2Ugc2V0IHRvIHNzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MsICwg
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3NzcworUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUg
Y29udGVudC1sYW5ndWFnZSBzZXQgdG8gc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcywgLCBzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzCitQ
QVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQgc2V0IHRvICwg
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3NzcworUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUg
YWNjZXB0LWxhbmd1YWdlIHNldCB0byAsIHNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MKK1BBU1MgIm5vLWNvcnMiIEhl
YWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRlbnQtbGFuZ3VhZ2Ugc2V0IHRvICwgc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3NzcworUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVu
dC10eXBlIHNldCB0byB0ZXh0L3BsYWluO3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzLCB0ZXh0L3BsYWluCitQQVNTICJuby1jb3JzIiBI
ZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQvIiBhcyBoZWFkZXIKK1BBU1MgIm5vLWNv
cnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGFjY2VwdC8wMTIzNDU2Nzg5MDEyMzQ1Njc4
OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1
Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2NzggYXMg
aGVhZGVyCitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQt
bGFuZ3VhZ2UvASBhcyBoZWFkZXIKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5v
dCBoYXZlIGFjY2VwdC1sYW5ndWFnZS9AIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVy
cyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVudC1sYW5ndWFnZS8BIGFzIGhlYWRlcgorUEFTUyAi
bm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVudC1sYW5ndWFnZS9AIGFz
IGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgY29udGVu
dC10eXBlL3RleHQvaHRtbCBhcyBoZWFkZXIKK1BBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0
IGNhbm5vdCBoYXZlIGNvbnRlbnQtdHlwZS90ZXh0L3BsYWluOyBsb25nPTAxMjM0NTY3ODkwMTIz
NDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkw
MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEgYXMgaGVhZGVyCitQQVNT
ICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSB0ZXN0L2hpIGFzIGhlYWRlcgor
UEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgZHByLzIgYXMgaGVhZGVy
CitQQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBkb3dubGluay8xIGFz
IGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgc2F2ZS1k
YXRhL29uIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhh
dmUgdmlld3BvcnQtd2lkdGgvMTAwIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVhZGVycyBv
YmplY3QgY2Fubm90IGhhdmUgd2lkdGgvMTAwIGFzIGhlYWRlcgorUEFTUyAibm8tY29ycyIgSGVh
ZGVycyBvYmplY3QgY2Fubm90IGhhdmUgdW5rbm93bi9kb2VzaXRtYXR0ZXIgYXMgaGVhZGVyCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLmFueS53b3JrZXIuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMv
aGVhZGVycy1uby1jb3JzLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5
M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFk
ZXJzLW5vLWNvcnMuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRl
bXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1uby1jb3JzLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMt
bm8tY29ycy53aW5kb3ctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5ODk4YjI3ZTBmNGY2NWQ3YWQ1MDAwMjE3MzhlZTZkYjY3ZmE3OThmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLndp
bmRvdy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0KLVBBU1Mg
TG9hZGluZyBkYXRh4oCmCi1QQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2
ZSBhY2NlcHQgc2V0IHRvIHNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MsICwgc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcwotUEFTUyAibm8t
Y29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgYWNjZXB0LWxhbmd1YWdlIHNldCB0byBz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3NzLCAsIHNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2Jq
ZWN0IGNhbm5vdCBoYXZlIGNvbnRlbnQtbGFuZ3VhZ2Ugc2V0IHRvIHNzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MsICwg
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3NzcwotUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUg
YWNjZXB0IHNldCB0byAsIHNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2Jq
ZWN0IGNhbm5vdCBoYXZlIGFjY2VwdC1sYW5ndWFnZSBzZXQgdG8gLCBzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzCi1Q
QVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBjb250ZW50LWxhbmd1YWdl
IHNldCB0byAsIHNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNh
bm5vdCBoYXZlIGNvbnRlbnQtdHlwZSBzZXQgdG8gdGV4dC9wbGFpbjtzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nz
c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcywgdGV4dC9wbGFpbgot
UEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgYWNjZXB0LyIgYXMgaGVh
ZGVyCi1QQVNTICJuby1jb3JzIiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQvMDEy
MzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5
MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2
Nzg5MDEyMzQ1Njc4IGFzIGhlYWRlcgotUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fu
bm90IGhhdmUgYWNjZXB0LWxhbmd1YWdlLwEgYXMgaGVhZGVyCi1QQVNTICJuby1jb3JzIiBIZWFk
ZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBhY2NlcHQtbGFuZ3VhZ2UvQCBhcyBoZWFkZXIKLVBBU1Mg
Im5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRlbnQtbGFuZ3VhZ2UvASBh
cyBoZWFkZXIKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIGNvbnRl
bnQtbGFuZ3VhZ2UvQCBhcyBoZWFkZXIKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNh
bm5vdCBoYXZlIGNvbnRlbnQtdHlwZS90ZXh0L2h0bWwgYXMgaGVhZGVyCi1QQVNTICJuby1jb3Jz
IiBIZWFkZXJzIG9iamVjdCBjYW5ub3QgaGF2ZSBjb250ZW50LXR5cGUvdGV4dC9wbGFpbjsgbG9u
Zz0wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0
NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx
IGFzIGhlYWRlcgotUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhhdmUgdGVz
dC9oaSBhcyBoZWFkZXIKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZl
IGRwci8yIGFzIGhlYWRlcgotUEFTUyAibm8tY29ycyIgSGVhZGVycyBvYmplY3QgY2Fubm90IGhh
dmUgZG93bmxpbmsvMSBhcyBoZWFkZXIKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNh
bm5vdCBoYXZlIHNhdmUtZGF0YS9vbiBhcyBoZWFkZXIKLVBBU1MgIm5vLWNvcnMiIEhlYWRlcnMg
b2JqZWN0IGNhbm5vdCBoYXZlIHZpZXdwb3J0LXdpZHRoLzEwMCBhcyBoZWFkZXIKLVBBU1MgIm5v
LWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIHdpZHRoLzEwMCBhcyBoZWFkZXIKLVBB
U1MgIm5vLWNvcnMiIEhlYWRlcnMgb2JqZWN0IGNhbm5vdCBoYXZlIHVua25vd24vZG9lc2l0bWF0
dGVyIGFzIGhlYWRlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm8tY29ycy53aW5kb3cu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLndpbmRvdy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVy
cy1uby1jb3JzLndpbmRvdy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotPCEtLSBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1
biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vLWNvcnMud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5v
LWNvcnMud2luZG93LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjNhODE5YmEx
YTZkMWNiNzQxOGIwNTA3ZTZmODEzMDQ1OGJhOTg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLndpbmRvdy5qcworKysg
L2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLXByb21pc2VfdGVzdCgoKSA9PiBmZXRjaCgiLi4v
Y29ycy9yZXNvdXJjZXMvbm90LWNvcnMtc2FmZWxpc3RlZC5qc29uIikudGhlbihyZXMgPT4gcmVz
Lmpzb24oKS50aGVuKHJ1blRlc3RzKSksICJMb2FkaW5nIGRhdGHigKYiKTsKLQotY29uc3QgbG9u
Z1ZhbHVlID0gInMiLnJlcGVhdCgxMjcpOwotCi1bCi0gIHsKLSAgICAiaGVhZGVycyI6IFsiYWNj
ZXB0IiwgImFjY2VwdC1sYW5ndWFnZSIsICJjb250ZW50LWxhbmd1YWdlIl0sCi0gICAgInZhbHVl
cyI6IFtsb25nVmFsdWUsICIiLCBsb25nVmFsdWVdCi0gIH0sCi0gIHsKLSAgICAiaGVhZGVycyI6
IFsiYWNjZXB0IiwgImFjY2VwdC1sYW5ndWFnZSIsICJjb250ZW50LWxhbmd1YWdlIl0sCi0gICAg
InZhbHVlcyI6IFsiIiwgbG9uZ1ZhbHVlXQotICB9LAotICB7Ci0gICAgImhlYWRlcnMiOiBbImNv
bnRlbnQtdHlwZSJdLAotICAgICJ2YWx1ZXMiOiBbInRleHQvcGxhaW47IiArICJzIi5yZXBlYXQo
MTE2KSwgInRleHQvcGxhaW4iXQotICB9Ci1dLmZvckVhY2godGVzdEl0ZW0gPT4gewotICB0ZXN0
SXRlbS5oZWFkZXJzLmZvckVhY2goaGVhZGVyID0+IHsKLSAgICB0ZXN0KCgpID0+IHsKLSAgICAg
IGNvbnN0IG5vQ29yc0hlYWRlcnMgPSBuZXcgUmVxdWVzdCgiYWJvdXQ6YmxhbmsiLCB7IG1vZGU6
ICJuby1jb3JzIiB9KS5oZWFkZXJzOwotICAgICAgdGVzdEl0ZW0udmFsdWVzLmZvckVhY2goKHZh
bHVlKSA9PiB7Ci0gICAgICAgIG5vQ29yc0hlYWRlcnMuYXBwZW5kKGhlYWRlciwgdmFsdWUpOwot
ICAgICAgICBhc3NlcnRfZXF1YWxzKG5vQ29yc0hlYWRlcnMuZ2V0KGhlYWRlciksIHRlc3RJdGVt
LnZhbHVlc1swXSwgJzEnKTsKLSAgICAgIH0pOwotICAgICAgbm9Db3JzSGVhZGVycy5zZXQoaGVh
ZGVyLCB0ZXN0SXRlbS52YWx1ZXMuam9pbigiLCAiKSk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKG5v
Q29yc0hlYWRlcnMuZ2V0KGhlYWRlciksIHRlc3RJdGVtLnZhbHVlc1swXSwgJzInKTsKLSAgICAg
IG5vQ29yc0hlYWRlcnMuZGVsZXRlKGhlYWRlcik7Ci0gICAgICBhc3NlcnRfZmFsc2Uobm9Db3Jz
SGVhZGVycy5oYXMoaGVhZGVyKSk7Ci0gICAgfSwgIlwibm8tY29yc1wiIEhlYWRlcnMgb2JqZWN0
IGNhbm5vdCBoYXZlICIgKyBoZWFkZXIgKyAiIHNldCB0byAiICsgdGVzdEl0ZW0udmFsdWVzLmpv
aW4oIiwgIikpOwotICB9KTsKLX0pOwotCi1mdW5jdGlvbiBydW5UZXN0cyh0ZXN0QXJyYXkpIHsK
LSAgdGVzdEFycmF5ID0gdGVzdEFycmF5LmNvbmNhdChbCi0gICAgWyJkcHIiLCAiMiJdLAotICAg
IFsiZG93bmxpbmsiLCAiMSJdLAotICAgIFsic2F2ZS1kYXRhIiwgIm9uIl0sCi0gICAgWyJ2aWV3
cG9ydC13aWR0aCIsICIxMDAiXSwKLSAgICBbIndpZHRoIiwgIjEwMCJdLAotICAgIFsidW5rbm93
biIsICJkb2VzaXRtYXR0ZXIiXQotICBdKTsKLSAgdGVzdEFycmF5LmZvckVhY2godGVzdEl0ZW0g
PT4gewotICAgIGNvbnN0IFtoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZV0gPSB0ZXN0SXRlbTsKLSAg
ICB0ZXN0KCgpID0+IHsKLSAgICAgIGNvbnN0IG5vQ29yc0hlYWRlcnMgPSBuZXcgUmVxdWVzdCgi
YWJvdXQ6YmxhbmsiLCB7IG1vZGU6ICJuby1jb3JzIiB9KS5oZWFkZXJzOwotICAgICAgbm9Db3Jz
SGVhZGVycy5hcHBlbmQoaGVhZGVyTmFtZSwgaGVhZGVyVmFsdWUpOwotICAgICAgYXNzZXJ0X2Zh
bHNlKG5vQ29yc0hlYWRlcnMuaGFzKGhlYWRlck5hbWUpKTsKLSAgICAgIG5vQ29yc0hlYWRlcnMu
c2V0KGhlYWRlck5hbWUsIGhlYWRlclZhbHVlKTsKLSAgICAgIGFzc2VydF9mYWxzZShub0NvcnNI
ZWFkZXJzLmhhcyhoZWFkZXJOYW1lKSk7Ci0gICAgfSwgIlwibm8tY29yc1wiIEhlYWRlcnMgb2Jq
ZWN0IGNhbm5vdCBoYXZlICIgKyBoZWFkZXJOYW1lICsgIi8iICsgaGVhZGVyVmFsdWUgKyAiIGFz
IGhlYWRlciIpOwotICB9KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxpemUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vcm1hbGl6ZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwZDkwZTRkMGFlOThjZTQ2YjRlMDA5ZDdjNTFkZDMw
ZjM0NzNjZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVh
ZGVycy9oZWFkZXJzLW5vcm1hbGl6ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1
ICswLDAgQEAKLQotUEFTUyBDcmVhdGUgaGVhZGVycyB3aXRoIG5vdCBub3JtYWxpemVkIHZhbHVl
cwotUEFTUyBDaGVjayBhcHBlbmQgbWV0aG9kIHdpdGggbm90IG5vcm1hbGl6ZWQgdmFsdWVzCi1Q
QVNTIENoZWNrIHNldCBtZXRob2Qgd2l0aCBub3Qgbm9ybWFsaXplZCB2YWx1ZXMKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvaGVhZGVycy9oZWFkZXJzLW5vcm1hbGl6ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFk
ZXJzLW5vcm1hbGl6ZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwZDkwZTRkMGFlOThj
ZTQ2YjRlMDA5ZDdjNTFkZDMwZjM0NzNjZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
cnMtbm9ybWFsaXplLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgQ3Jl
YXRlIGhlYWRlcnMgd2l0aCBub3Qgbm9ybWFsaXplZCB2YWx1ZXMKK1BBU1MgQ2hlY2sgYXBwZW5k
IG1ldGhvZCB3aXRoIG5vdCBub3JtYWxpemVkIHZhbHVlcworUEFTUyBDaGVjayBzZXQgbWV0aG9k
IHdpdGggbm90IG5vcm1hbGl6ZWQgdmFsdWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1u
b3JtYWxpemUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9ybWFsaXplLmFueS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9ybWFsaXplLmFueS5odG1sCkBAIC0wLDAgKzEgQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVy
ZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxpemUuYW55LmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFk
ZXJzLW5vcm1hbGl6ZS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWViZDdhZTllYTk4OTg5MTdmZTNkN2Ex
NjYwNDc1ZjAyNGM1MWQxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxp
emUuYW55LmpzCkBAIC0wLDAgKzEsMzUgQEAKKy8vIE1FVEE6IHRpdGxlPUhlYWRlcnMgbm9ybWFs
aXplIHZhbHVlcworLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKwordmFyIGhlYWRlckRp
Y3RXUyA9IHsibmFtZTEiOiAiIHNwYWNlICIsCisgICAgICAgICAgICAgICAgICAgICJuYW1lMiI6
ICJcdHRhYlx0IiwKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUzIjogIiBzcGFjZUFuZFRhYlx0
IiwKKyAgICAgICAgICAgICAgICAgICAgIm5hbWU0IjogIlxyXG4gbmV3TGluZSIsIC8vb2JzLWZv
bGQgY2FzZXMKKyAgICAgICAgICAgICAgICAgICAgIm5hbWU1IjogIm5ld0xpbmVcclxuICIsCisg
ICAgICAgICAgICAgICAgICAgICJuYW1lNiI6ICJcclxuXHRuZXdMaW5lIiwKKyAgICAgICAgICAg
ICAgICAgICAgfTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVh
ZGVycyhoZWFkZXJEaWN0V1MpOworICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdFdTKQorICAgIGFz
c2VydF9lcXVhbHMoaGVhZGVycy5nZXQobmFtZSksIGhlYWRlckRpY3RXU1tuYW1lXS50cmltKCks
CisgICAgICAibmFtZTogIiArIG5hbWUgKyAiIGhhcyBub3JtYWxpemVkIHZhbHVlOiAiICsgaGVh
ZGVyRGljdFdTW25hbWVdLnRyaW0oKSk7Cit9LCAiQ3JlYXRlIGhlYWRlcnMgd2l0aCBub3Qgbm9y
bWFsaXplZCB2YWx1ZXMiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBu
ZXcgSGVhZGVycygpOworICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdFdTKSB7CisgICAgaGVhZGVy
cy5hcHBlbmQobmFtZSwgaGVhZGVyRGljdFdTW25hbWVdKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhl
YWRlcnMuZ2V0KG5hbWUpLCBoZWFkZXJEaWN0V1NbbmFtZV0udHJpbSgpLAorICAgICAgIm5hbWU6
ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBoZWFkZXJEaWN0V1NbbmFtZV0udHJpbSgpKTsK
KyAgfQorfSwgIkNoZWNrIGFwcGVuZCBtZXRob2Qgd2l0aCBub3Qgbm9ybWFsaXplZCB2YWx1ZXMi
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwor
ICBmb3IgKG5hbWUgaW4gaGVhZGVyRGljdFdTKSB7CisgICAgaGVhZGVycy5zZXQobmFtZSwgaGVh
ZGVyRGljdFdTW25hbWVdKTsKKyAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCBo
ZWFkZXJEaWN0V1NbbmFtZV0udHJpbSgpLAorICAgICAgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMg
dmFsdWU6ICIgKyBoZWFkZXJEaWN0V1NbbmFtZV0udHJpbSgpKTsKKyAgfQorfSwgIkNoZWNrIHNl
dCBtZXRob2Qgd2l0aCBub3Qgbm9ybWFsaXplZCB2YWx1ZXMiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMv
aGVhZGVycy1ub3JtYWxpemUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMt
bm9ybWFsaXplLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwZDkwZTRkMGFl
OThjZTQ2YjRlMDA5ZDdjNTFkZDMwZjM0NzNjZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hl
YWRlcnMtbm9ybWFsaXplLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
CitQQVNTIENyZWF0ZSBoZWFkZXJzIHdpdGggbm90IG5vcm1hbGl6ZWQgdmFsdWVzCitQQVNTIENo
ZWNrIGFwcGVuZCBtZXRob2Qgd2l0aCBub3Qgbm9ybWFsaXplZCB2YWx1ZXMKK1BBU1MgQ2hlY2sg
c2V0IG1ldGhvZCB3aXRoIG5vdCBub3JtYWxpemVkIHZhbHVlcworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJz
L2hlYWRlcnMtbm9ybWFsaXplLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxp
emUuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBh
NDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9ybWFsaXpl
LmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJl
ZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVz
dCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
cnMtbm9ybWFsaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtbm9ybWFsaXplLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkZmNmOWQ4MTk0Nzc2NDc5ZDUwMGE2ZjZjNmE1ODUxNDI0
ZDllZmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVy
cy9oZWFkZXJzLW5vcm1hbGl6ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAot
PCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotICAgIDx0aXRsZT5IZWFkZXJzIG5vcm1hbGl6ZSB2YWx1ZXM8L3RpdGxlPgotICAgIDxt
ZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25j
ZXB0LWhlYWRlci12YWx1ZS1ub3JtYWxpemUiPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0
bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZy
Ij4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgICB2YXIgaGVhZGVy
RGljdFdTID0geyJuYW1lMSI6ICIgc3BhY2UgIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
Im5hbWUyIjogIlx0dGFiXHQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZTMiOiAi
IHNwYWNlQW5kVGFiXHQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZTQiOiAiXHJc
biBuZXdMaW5lIiwgLy9vYnMtZm9sZCBjYXNlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAi
bmFtZTUiOiAibmV3TGluZVxyXG4gIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWU2
IjogIlxyXG5cdG5ld0xpbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0KLSAgICAg
IHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVh
ZGVyRGljdFdTKTsKLSAgICAgICAgZm9yIChuYW1lIGluIGhlYWRlckRpY3RXUykKLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCBoZWFkZXJEaWN0V1NbbmFtZV0udHJp
bSgpLAotICAgICAgICAgICAgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgbm9ybWFsaXplZCB2YWx1
ZTogIiArIGhlYWRlckRpY3RXU1tuYW1lXS50cmltKCkpOwotICAgICAgfSwgIkNyZWF0ZSBoZWFk
ZXJzIHdpdGggbm90IG5vcm1hbGl6ZWQgdmFsdWVzIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24o
KSB7Ci0gICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKLSAgICAgICAgZm9yIChu
YW1lIGluIGhlYWRlckRpY3RXUykgewotICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKG5hbWUsIGhl
YWRlckRpY3RXU1tuYW1lXSk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChu
YW1lKSwgaGVhZGVyRGljdFdTW25hbWVdLnRyaW0oKSwKLSAgICAgICAgICAgICJuYW1lOiAiICsg
bmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVhZGVyRGljdFdTW25hbWVdLnRyaW0oKSk7Ci0gICAg
ICAgIH0KLSAgICAgIH0sICJDaGVjayBhcHBlbmQgbWV0aG9kIHdpdGggbm90IG5vcm1hbGl6ZWQg
dmFsdWVzIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBoZWFkZXJz
ID0gbmV3IEhlYWRlcnMoKTsKLSAgICAgICAgZm9yIChuYW1lIGluIGhlYWRlckRpY3RXUykgewot
ICAgICAgICAgIGhlYWRlcnMuc2V0KG5hbWUsIGhlYWRlckRpY3RXU1tuYW1lXSk7Ci0gICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldChuYW1lKSwgaGVhZGVyRGljdFdTW25hbWVdLnRy
aW0oKSwKLSAgICAgICAgICAgICJuYW1lOiAiICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVh
ZGVyRGljdFdTW25hbWVdLnRyaW0oKSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJDaGVjayBzZXQg
bWV0aG9kIHdpdGggbm90IG5vcm1hbGl6ZWQgdmFsdWVzIik7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1yZWNvcmQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMmU2MjE1MjFmM2RhODUyYzU0N2JmMThhMmU2ZWUwZTY0ZDc4NzMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJz
LXJlY29yZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0KLVBB
U1MgUGFzc2luZyBub3RoaW5nIHRvIEhlYWRlcnMgY29uc3RydWN0b3IKLVBBU1MgUGFzc2luZyB1
bmRlZmluZWQgdG8gSGVhZGVycyBjb25zdHJ1Y3RvcgotUEFTUyBQYXNzaW5nIG51bGwgdG8gSGVh
ZGVycyBjb25zdHJ1Y3RvcgotUEFTUyBCYXNpYyBvcGVyYXRpb24gd2l0aCBvbmUgcHJvcGVydHkK
LVBBU1MgQmFzaWMgb3BlcmF0aW9uIHdpdGggb25lIHByb3BlcnR5IGFuZCBhIHByb3RvCi1QQVNT
IENvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggdHdvIHByb3BlcnRpZXMKLVBBU1MgQ29y
cmVjdCBvcGVyYXRpb24gb3JkZXJpbmcgd2l0aCB0d28gcHJvcGVydGllcyBvbmUgb2Ygd2hpY2gg
aGFzIGFuIGludmFsaWQgbmFtZQotUEFTUyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRo
IHR3byBwcm9wZXJ0aWVzIG9uZSBvZiB3aGljaCBoYXMgYW4gaW52YWxpZCB2YWx1ZQotUEFTUyBD
b3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIG5vbi1lbnVtZXJhYmxlIHByb3BlcnRpZXMK
LVBBU1MgQ29ycmVjdCBvcGVyYXRpb24gb3JkZXJpbmcgd2l0aCB1bmRlZmluZWQgZGVzY3JpcHRv
cnMKLVBBU1MgQ29ycmVjdCBvcGVyYXRpb24gb3JkZXJpbmcgd2l0aCByZXBlYXRlZCBrZXlzCi1Q
QVNTIEJhc2ljIG9wZXJhdGlvbiB3aXRoIFN5bWJvbCBrZXlzCi1QQVNTIE9wZXJhdGlvbiB3aXRo
IG5vbi1lbnVtZXJhYmxlIFN5bWJvbCBrZXlzCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1y
ZWNvcmQuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1yZWNvcmQuYW55LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMDJlNjIxNTIxZjNkYTg1MmM1NDdiZjE4YTJlNmVlMGU2NGQ3ODcz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC5hbnktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTUgQEAKKworUEFTUyBQYXNzaW5nIG5vdGhpbmcgdG8gSGVhZGVycyBjb25z
dHJ1Y3RvcgorUEFTUyBQYXNzaW5nIHVuZGVmaW5lZCB0byBIZWFkZXJzIGNvbnN0cnVjdG9yCitQ
QVNTIFBhc3NpbmcgbnVsbCB0byBIZWFkZXJzIGNvbnN0cnVjdG9yCitQQVNTIEJhc2ljIG9wZXJh
dGlvbiB3aXRoIG9uZSBwcm9wZXJ0eQorUEFTUyBCYXNpYyBvcGVyYXRpb24gd2l0aCBvbmUgcHJv
cGVydHkgYW5kIGEgcHJvdG8KK1BBU1MgQ29ycmVjdCBvcGVyYXRpb24gb3JkZXJpbmcgd2l0aCB0
d28gcHJvcGVydGllcworUEFTUyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHR3byBw
cm9wZXJ0aWVzIG9uZSBvZiB3aGljaCBoYXMgYW4gaW52YWxpZCBuYW1lCitQQVNTIENvcnJlY3Qg
b3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggdHdvIHByb3BlcnRpZXMgb25lIG9mIHdoaWNoIGhhcyBh
biBpbnZhbGlkIHZhbHVlCitQQVNTIENvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggbm9u
LWVudW1lcmFibGUgcHJvcGVydGllcworUEFTUyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3
aXRoIHVuZGVmaW5lZCBkZXNjcmlwdG9ycworUEFTUyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmlu
ZyB3aXRoIHJlcGVhdGVkIGtleXMKK1BBU1MgQmFzaWMgb3BlcmF0aW9uIHdpdGggU3ltYm9sIGtl
eXMKK1BBU1MgT3BlcmF0aW9uIHdpdGggbm9uLWVudW1lcmFibGUgU3ltYm9sIGtleXMKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1yZWNv
cmQuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4
MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1yZWNvcmQuYW55Lmh0bWwK
QEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0
IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC5hbnkuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9o
ZWFkZXJzL2hlYWRlcnMtcmVjb3JkLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTAzNmMyZGE0YzA3Njg4
NGRlYmQ2NzNmZGVhMjNhYmI3YTlhMmJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJz
LXJlY29yZC5hbnkuanMKQEAgLTAsMCArMSwzNTUgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3cs
d29ya2VyCisKK3ZhciBsb2cgPSBbXTsKK2Z1bmN0aW9uIGNsZWFyTG9nKCkgeworICBsb2cgPSBb
XTsKK30KK2Z1bmN0aW9uIGFkZExvZ0VudHJ5KG5hbWUsIGFyZ3MpIHsKKyAgbG9nLnB1c2goWyBu
YW1lLCAuLi5hcmdzIF0pOworfQorCit2YXIgbG9nZ2luZ0hhbmRsZXIgPSB7Cit9OworCitzZXR1
cChmdW5jdGlvbigpIHsKKyAgZm9yIChsZXQgcHJvcCBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlO
YW1lcyhSZWZsZWN0KSkgeworICAgIGxvZ2dpbmdIYW5kbGVyW3Byb3BdID0gZnVuY3Rpb24oLi4u
YXJncykgeworICAgICAgYWRkTG9nRW50cnkocHJvcCwgYXJncyk7CisgICAgICByZXR1cm4gUmVm
bGVjdFtwcm9wXSguLi5hcmdzKTsKKyAgICB9CisgIH0KK30pOworCit0ZXN0KGZ1bmN0aW9uKCkg
eworICB2YXIgaCA9IG5ldyBIZWFkZXJzKCk7CisgIGFzc2VydF9lcXVhbHMoWy4uLmhdLmxlbmd0
aCwgMCk7Cit9LCAiUGFzc2luZyBub3RoaW5nIHRvIEhlYWRlcnMgY29uc3RydWN0b3IiKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGggPSBuZXcgSGVhZGVycyh1bmRlZmluZWQpOworICBh
c3NlcnRfZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDApOworfSwgIlBhc3NpbmcgdW5kZWZpbmVkIHRv
IEhlYWRlcnMgY29uc3RydWN0b3IiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X3Ro
cm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICAgIHZhciBoID0gbmV3IEhlYWRlcnMo
bnVsbCk7CisgIH0pOworfSwgIlBhc3NpbmcgbnVsbCB0byBIZWFkZXJzIGNvbnN0cnVjdG9yIik7
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHRoaXMuYWRkX2NsZWFudXAoY2xlYXJMb2cpOworICB2
YXIgcmVjb3JkID0geyBhOiAiYiIgfTsKKyAgdmFyIHByb3h5ID0gbmV3IFByb3h5KHJlY29yZCwg
bG9nZ2luZ0hhbmRsZXIpOworICB2YXIgaCA9IG5ldyBIZWFkZXJzKHByb3h5KTsKKworICBhc3Nl
cnRfZXF1YWxzKGxvZy5sZW5ndGgsIDQpOworICAvLyBUaGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtb
R2V0XV0gb2YgU3ltYm9sLml0ZXJhdG9yIHRvIGZpZ3VyZSBvdXQgd2hldGhlcgorICAvLyB3ZSdy
ZSBhIHNlcXVlbmNlLCBkdXJpbmcgb3ZlcmxvYWQgcmVzb2x1dGlvbi4KKyAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2dbMF0sIFsiZ2V0IiwgcmVjb3JkLCBTeW1ib2wuaXRlcmF0b3IsIHByb3h5XSk7
CisgIC8vIFRoZW4gd2UgaGF2ZSB0aGUgW1tPd25Qcm9wZXJ0eUtleXNdXSBmcm9tCisgIC8vIGh0
dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2VzLXRvLXJlY29yZCBzdGVwIDQuCisgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbIm93bktleXMiLCByZWNvcmRdKTsKKyAgLy8gVGhl
biB0aGUgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzJdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImEiXSk7
CisgIC8vIFRoZW4gdGhlIFtbR2V0XV0gZnJvbSBzdGVwIDUuMi4KKyAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbM10sIFsiZ2V0IiwgcmVjb3JkLCAiYSIsIHByb3h5XSk7CisKKyAgLy8gQ2hlY2sg
dGhlIHJlc3VsdHMuCisgIGFzc2VydF9lcXVhbHMoWy4uLmhdLmxlbmd0aCwgMSk7CisgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoWy4uLmgua2V5cygpXSwgWyJhIl0pOworICBhc3NlcnRfdHJ1ZShoLmhh
cygiYSIpKTsKKyAgYXNzZXJ0X2VxdWFscyhoLmdldCgiYSIpLCAiYiIpOworfSwgIkJhc2ljIG9w
ZXJhdGlvbiB3aXRoIG9uZSBwcm9wZXJ0eSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB0aGlz
LmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKKyAgdmFyIHJlY29yZFByb3RvID0geyBjOiAiZCIgfTsK
KyAgdmFyIHJlY29yZCA9IE9iamVjdC5jcmVhdGUocmVjb3JkUHJvdG8sIHsgYTogeyB2YWx1ZTog
ImIiLCBlbnVtZXJhYmxlOiB0cnVlIH0gfSk7CisgIHZhciBwcm94eSA9IG5ldyBQcm94eShyZWNv
cmQsIGxvZ2dpbmdIYW5kbGVyKTsKKyAgdmFyIGggPSBuZXcgSGVhZGVycyhwcm94eSk7CisKKyAg
YXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA0KTsKKyAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRo
ZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKKyAgLy8g
d2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCisgIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94
eV0pOworICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQorICAv
LyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0Lgor
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7CisgIC8v
IFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgorICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJh
Il0pOworICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJlY29yZCwgImEiLCBwcm94eV0pOworCisgIC8vIENo
ZWNrIHRoZSByZXN1bHRzLgorICBhc3NlcnRfZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDEpOworICBh
c3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5oLmtleXMoKV0sIFsiYSJdKTsKKyAgYXNzZXJ0X3RydWUo
aC5oYXMoImEiKSk7CisgIGFzc2VydF9lcXVhbHMoaC5nZXQoImEiKSwgImIiKTsKK30sICJCYXNp
YyBvcGVyYXRpb24gd2l0aCBvbmUgcHJvcGVydHkgYW5kIGEgcHJvdG8iKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgdGhpcy5hZGRfY2xlYW51cChjbGVhckxvZyk7CisgIHZhciByZWNvcmQgPSB7
IGE6ICJiIiwgYzogImQiIH07CisgIHZhciBwcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dp
bmdIYW5kbGVyKTsKKyAgdmFyIGggPSBuZXcgSGVhZGVycyhwcm94eSk7CisKKyAgYXNzZXJ0X2Vx
dWFscyhsb2cubGVuZ3RoLCA2KTsKKyAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1d
IG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKKyAgLy8gd2UncmUgYSBz
ZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCisgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOworICAv
LyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQorICAvLyBodHRwczov
L2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgorICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7CisgIC8vIFRoZW4gdGhl
IFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgorICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOworICAv
LyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzNdLCBbImdldCIsIHJlY29yZCwgImEiLCBwcm94eV0pOworICAvLyBUaGVuIHRoZSBzZWNv
bmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzRdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImMiXSk7Cisg
IC8vIFRoZW4gdGhlIHNlY29uZCBbW0dldF1dIGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nWzVdLCBbImdldCIsIHJlY29yZCwgImMiLCBwcm94eV0pOworCisgIC8vIENo
ZWNrIHRoZSByZXN1bHRzLgorICBhc3NlcnRfZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDIpOworICBh
c3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5oLmtleXMoKV0sIFsiYSIsICJjIl0pOworICBhc3NlcnRf
dHJ1ZShoLmhhcygiYSIpKTsKKyAgYXNzZXJ0X2VxdWFscyhoLmdldCgiYSIpLCAiYiIpOworICBh
c3NlcnRfdHJ1ZShoLmhhcygiYyIpKTsKKyAgYXNzZXJ0X2VxdWFscyhoLmdldCgiYyIpLCAiZCIp
OworfSwgIkNvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggdHdvIHByb3BlcnRpZXMiKTsK
KwordGVzdChmdW5jdGlvbigpIHsKKyAgdGhpcy5hZGRfY2xlYW51cChjbGVhckxvZyk7CisgIHZh
ciByZWNvcmQgPSB7IGE6ICJiIiwgIlx1RkZGRiI6ICJkIiB9OworICB2YXIgcHJveHkgPSBuZXcg
UHJveHkocmVjb3JkLCBsb2dnaW5nSGFuZGxlcik7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVy
cm9yLCBmdW5jdGlvbigpIHsKKyAgICB2YXIgaCA9IG5ldyBIZWFkZXJzKHByb3h5KTsKKyAgfSk7
CisKKyAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA1KTsKKyAgLy8gVGhlIGZpcnN0IHRoaW5n
IGlzIHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIK
KyAgLy8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCisgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9y
LCBwcm94eV0pOworICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJv
bQorICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3Rl
cCA0LgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7
CisgIC8vIFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgorICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNv
cmQsICJhIl0pOworICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCisgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJlY29yZCwgImEiLCBwcm94eV0pOworICAv
LyBUaGVuIHRoZSBzZWNvbmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCisgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJl
Y29yZCwgIlx1RkZGRiJdKTsKKyAgLy8gVGhlIHNlY29uZCBbW0dldF1dIG5ldmVyIGhhcHBlbnMs
IGJlY2F1c2Ugd2UgY29udmVydCB0aGUgaW52YWxpZCBuYW1lIHRvIGEKKyAgLy8gQnl0ZVN0cmlu
ZyBmaXJzdCBhbmQgdGhyb3cuCit9LCAiQ29ycmVjdCBvcGVyYXRpb24gb3JkZXJpbmcgd2l0aCB0
d28gcHJvcGVydGllcyBvbmUgb2Ygd2hpY2ggaGFzIGFuIGludmFsaWQgbmFtZSIpOworCit0ZXN0
KGZ1bmN0aW9uKCkgeworICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKKyAgdmFyIHJlY29y
ZCA9IHsgYTogIlx1RkZGRiIsIGM6ICJkIiB9CisgIHZhciBwcm94eSA9IG5ldyBQcm94eShyZWNv
cmQsIGxvZ2dpbmdIYW5kbGVyKTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0
aW9uKCkgeworICAgIHZhciBoID0gbmV3IEhlYWRlcnMocHJveHkpOworICB9KTsKKworICBhc3Nl
cnRfZXF1YWxzKGxvZy5sZW5ndGgsIDQpOworICAvLyBUaGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtb
R2V0XV0gb2YgU3ltYm9sLml0ZXJhdG9yIHRvIGZpZ3VyZSBvdXQgd2hldGhlcgorICAvLyB3ZSdy
ZSBhIHNlcXVlbmNlLCBkdXJpbmcgb3ZlcmxvYWQgcmVzb2x1dGlvbi4KKyAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2dbMF0sIFsiZ2V0IiwgcmVjb3JkLCBTeW1ib2wuaXRlcmF0b3IsIHByb3h5XSk7
CisgIC8vIFRoZW4gd2UgaGF2ZSB0aGUgW1tPd25Qcm9wZXJ0eUtleXNdXSBmcm9tCisgIC8vIGh0
dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2VzLXRvLXJlY29yZCBzdGVwIDQuCisgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nWzFdLCBbIm93bktleXMiLCByZWNvcmRdKTsKKyAgLy8gVGhl
biB0aGUgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzJdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImEiXSk7
CisgIC8vIFRoZW4gdGhlIFtbR2V0XV0gZnJvbSBzdGVwIDUuMi4KKyAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbM10sIFsiZ2V0IiwgcmVjb3JkLCAiYSIsIHByb3h5XSk7CisgIC8vIE5vdGhpbmcg
ZWxzZSBhZnRlciB0aGlzLCBiZWNhdXNlIGNvbnZlcnRpbmcgdGhlIHJlc3VsdCBvZiB0aGF0IFtb
R2V0XV0gdG8gYQorICAvLyBCeXRlU3RyaW5nIHRocm93cy4KK30sICJDb3JyZWN0IG9wZXJhdGlv
biBvcmRlcmluZyB3aXRoIHR3byBwcm9wZXJ0aWVzIG9uZSBvZiB3aGljaCBoYXMgYW4gaW52YWxp
ZCB2YWx1ZSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFy
TG9nKTsKKyAgdmFyIHJlY29yZCA9IHt9OworICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVjb3Jk
LCAiYSIsIHsgdmFsdWU6ICJiIiwgZW51bWVyYWJsZTogZmFsc2UgfSk7CisgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShyZWNvcmQsICJjIiwgeyB2YWx1ZTogImQiLCBlbnVtZXJhYmxlOiB0cnVlIH0p
OworICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVjb3JkLCAiZSIsIHsgdmFsdWU6ICJmIiwgZW51
bWVyYWJsZTogZmFsc2UgfSk7CisgIHZhciBwcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dp
bmdIYW5kbGVyKTsKKyAgdmFyIGggPSBuZXcgSGVhZGVycyhwcm94eSk7CisKKyAgYXNzZXJ0X2Vx
dWFscyhsb2cubGVuZ3RoLCA2KTsKKyAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1d
IG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKKyAgLy8gd2UncmUgYSBz
ZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCisgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOworICAv
LyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQorICAvLyBodHRwczov
L2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgorICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7CisgIC8vIFRoZW4gdGhl
IFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgorICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOworICAv
LyBObyBbW0dldF1dIGJlY2F1c2Ugbm90IGVudW1lcmFibGUKKyAgLy8gVGhlbiB0aGUgc2Vjb25k
IFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgorICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ1szXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJjIl0pOworICAv
LyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzRdLCBbImdldCIsIHJlY29yZCwgImMiLCBwcm94eV0pOworICAvLyBUaGVuIHRoZSB0aGly
ZCBbW0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KKyAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbNV0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLCAiZSJdKTsKKyAg
Ly8gTm8gW1tHZXRdXSBiZWNhdXNlIG5vdCBlbnVtZXJhYmxlCisKKyAgLy8gQ2hlY2sgdGhlIHJl
c3VsdHMuCisgIGFzc2VydF9lcXVhbHMoWy4uLmhdLmxlbmd0aCwgMSk7CisgIGFzc2VydF9hcnJh
eV9lcXVhbHMoWy4uLmgua2V5cygpXSwgWyJjIl0pOworICBhc3NlcnRfdHJ1ZShoLmhhcygiYyIp
KTsKKyAgYXNzZXJ0X2VxdWFscyhoLmdldCgiYyIpLCAiZCIpOworfSwgIkNvcnJlY3Qgb3BlcmF0
aW9uIG9yZGVyaW5nIHdpdGggbm9uLWVudW1lcmFibGUgcHJvcGVydGllcyIpOworCit0ZXN0KGZ1
bmN0aW9uKCkgeworICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKKyAgdmFyIHJlY29yZCA9
IHthOiAiYiIsIGM6ICJkIiwgZTogImYifTsKKyAgdmFyIGx5aW5nSGFuZGxlciA9IHsKKyAgICBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IGZ1bmN0aW9uKHRhcmdldCwgbmFtZSkgeworICAgICAg
aWYgKG5hbWUgPT0gImEiIHx8IG5hbWUgPT0gImUiKSB7CisgICAgICAgIHJldHVybiB1bmRlZmlu
ZWQ7CisgICAgICB9CisgICAgICByZXR1cm4gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IodGFyZ2V0LCBuYW1lKTsKKyAgICB9CisgIH07CisgIHZhciBseWluZ1Byb3h5ID0gbmV3IFBy
b3h5KHJlY29yZCwgbHlpbmdIYW5kbGVyKTsKKyAgdmFyIHByb3h5ID0gbmV3IFByb3h5KGx5aW5n
UHJveHksIGxvZ2dpbmdIYW5kbGVyKTsKKyAgdmFyIGggPSBuZXcgSGVhZGVycyhwcm94eSk7CisK
KyAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA2KTsKKyAgLy8gVGhlIGZpcnN0IHRoaW5nIGlz
IHRoZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKKyAg
Ly8gd2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCisgIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIGx5aW5nUHJveHksIFN5bWJvbC5pdGVyYXRv
ciwgcHJveHldKTsKKyAgLy8gVGhlbiB3ZSBoYXZlIHRoZSBbW093blByb3BlcnR5S2V5c11dIGZy
b20KKyAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtdG8tcmVjb3JkIHN0
ZXAgNC4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMV0sIFsib3duS2V5cyIsIGx5aW5nUHJv
eHldKTsKKyAgLy8gVGhlbiB0aGUgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCisg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzJdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIs
IGx5aW5nUHJveHksICJhIl0pOworICAvLyBObyBbW0dldF1dIGJlY2F1c2Ugbm8gZGVzY3JpcHRv
cgorICAvLyBUaGVuIHRoZSBzZWNvbmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEu
CisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRv
ciIsIGx5aW5nUHJveHksICJjIl0pOworICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1
LjIuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbImdldCIsIGx5aW5nUHJveHksICJj
IiwgcHJveHldKTsKKyAgLy8gVGhlbiB0aGUgdGhpcmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20g
c3RlcCA1LjEuCisgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzVdLCBbImdldE93blByb3BlcnR5
RGVzY3JpcHRvciIsIGx5aW5nUHJveHksICJlIl0pOworICAvLyBObyBbW0dldF1dIGJlY2F1c2Ug
bm8gZGVzY3JpcHRvcgorCisgIC8vIENoZWNrIHRoZSByZXN1bHRzLgorICBhc3NlcnRfZXF1YWxz
KFsuLi5oXS5sZW5ndGgsIDEpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5oLmtleXMoKV0s
IFsiYyJdKTsKKyAgYXNzZXJ0X3RydWUoaC5oYXMoImMiKSk7CisgIGFzc2VydF9lcXVhbHMoaC5n
ZXQoImMiKSwgImQiKTsKK30sICJDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHVuZGVm
aW5lZCBkZXNjcmlwdG9ycyIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB0aGlzLmFkZF9jbGVh
bnVwKGNsZWFyTG9nKTsKKyAgdmFyIHJlY29yZCA9IHthOiAiYiIsIGM6ICJkIn07CisgIHZhciBs
eWluZ0hhbmRsZXIgPSB7CisgICAgb3duS2V5czogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4g
WyAiYSIsICJjIiwgImEiLCAiYyIgXTsKKyAgICB9LAorICB9OworICB2YXIgbHlpbmdQcm94eSA9
IG5ldyBQcm94eShyZWNvcmQsIGx5aW5nSGFuZGxlcik7CisgIHZhciBwcm94eSA9IG5ldyBQcm94
eShseWluZ1Byb3h5LCBsb2dnaW5nSGFuZGxlcik7CisKKyAgLy8gUmV0dXJuaW5nIGR1cGxpY2F0
ZSBrZXlzIGZyb20gb3duS2V5cygpIHRocm93cyBhIFR5cGVFcnJvci4KKyAgYXNzZXJ0X3Rocm93
c19qcyhUeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHZhciBoID0g
bmV3IEhlYWRlcnMocHJveHkpOyB9KTsKKworICBhc3NlcnRfZXF1YWxzKGxvZy5sZW5ndGgsIDIp
OworICAvLyBUaGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtbR2V0XV0gb2YgU3ltYm9sLml0ZXJhdG9y
IHRvIGZpZ3VyZSBvdXQgd2hldGhlcgorICAvLyB3ZSdyZSBhIHNlcXVlbmNlLCBkdXJpbmcgb3Zl
cmxvYWQgcmVzb2x1dGlvbi4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFsiZ2V0Iiwg
bHlpbmdQcm94eSwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOworICAvLyBUaGVuIHdlIGhhdmUg
dGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQorICAvLyBodHRwczovL2hleWNhbS5naXRodWIu
aW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxv
Z1sxXSwgWyJvd25LZXlzIiwgbHlpbmdQcm94eV0pOworfSwgIkNvcnJlY3Qgb3BlcmF0aW9uIG9y
ZGVyaW5nIHdpdGggcmVwZWF0ZWQga2V5cyIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB0aGlz
LmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKKyAgdmFyIHJlY29yZCA9IHsKKyAgICBhOiAiYiIsCisg
ICAgW1N5bWJvbC50b1N0cmluZ1RhZ106IHsKKyAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgVG9TdHJp
bmcgY29udmVyc2lvbiBvZiB0aGUgdmFsdWUgaGFwcGVucworICAgICAgLy8gYWZ0ZXIgdGhlIFRv
U3RyaW5nIGNvbnZlcnNpb24gb2YgdGhlIGtleS4KKyAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAo
KSB7IGFkZExvZ0VudHJ5KCJ0b1N0cmluZyIsIFt0aGlzXSk7IHJldHVybiAibm9wZSI7IH0KKyAg
ICB9LAorICAgIGM6ICJkIiB9OworICB2YXIgcHJveHkgPSBuZXcgUHJveHkocmVjb3JkLCBsb2dn
aW5nSGFuZGxlcik7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLAorICAgICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uKCkgeyB2YXIgaCA9IG5ldyBIZWFkZXJzKHByb3h5KTsgfSk7CisKKyAg
YXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA3KTsKKyAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRo
ZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKKyAgLy8g
d2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCisgIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94
eV0pOworICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQorICAv
LyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0Lgor
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7CisgIC8v
IFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgorICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJh
Il0pOworICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCisgIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJlY29yZCwgImEiLCBwcm94eV0pOworICAvLyBUaGVu
IHRoZSBzZWNvbmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCisgIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzRdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwg
ImMiXSk7CisgIC8vIFRoZW4gdGhlIHNlY29uZCBbW0dldF1dIGZyb20gc3RlcCA1LjIuCisgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nWzVdLCBbImdldCIsIHJlY29yZCwgImMiLCBwcm94eV0pOwor
ICAvLyBUaGVuIHRoZSB0aGlyZCBbW0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KKyAg
YXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNl0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwg
cmVjb3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbC50b1N0cmluZ1Rh
Z10pOworICAvLyBUaGVuIHdlIHRocm93IGFuIGV4Y2VwdGlvbiBjb252ZXJ0aW5nIHRoZSBTeW1i
b2wgdG8gYSBzdHJpbmcsIGJlZm9yZSB3ZSBkbworICAvLyB0aGUgdGhpcmQgW1tHZXRdXS4KK30s
ICJCYXNpYyBvcGVyYXRpb24gd2l0aCBTeW1ib2wga2V5cyIpOworCit0ZXN0KGZ1bmN0aW9uKCkg
eworICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKKyAgdmFyIHJlY29yZCA9IHsKKyAgICBh
OiB7CisgICAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7IGFkZExvZ0VudHJ5KCJ0b1N0cmluZyIs
IFt0aGlzXSk7IHJldHVybiAiYiI7IH0KKyAgICB9LAorICAgIFtTeW1ib2wudG9TdHJpbmdUYWdd
OiB7CisgICAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyBhZGRMb2dFbnRyeSgidG9TdHJpbmci
LCBbdGhpc10pOyByZXR1cm4gIm5vcGUiOyB9CisgICAgfSwKKyAgICBjOiB7CisgICAgICB0b1N0
cmluZzogZnVuY3Rpb24oKSB7IGFkZExvZ0VudHJ5KCJ0b1N0cmluZyIsIFt0aGlzXSk7IHJldHVy
biAiZCI7IH0KKyAgICB9CisgIH07CisgIC8vIE5vdyBtYWtlIHRoYXQgU3ltYm9sLW5hbWVkIHBy
b3BlcnR5IG5vdCBlbnVtZXJhYmxlLgorICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVjb3JkLCBT
eW1ib2wudG9TdHJpbmdUYWcsIHsgZW51bWVyYWJsZTogZmFsc2UgfSk7CisgIGFzc2VydF9hcnJh
eV9lcXVhbHMoUmVmbGVjdC5vd25LZXlzKHJlY29yZCksCisgICAgICAgICAgICAgICAgICAgICAg
WyJhIiwgImMiLCBTeW1ib2wudG9TdHJpbmdUYWddKTsKKworICB2YXIgcHJveHkgPSBuZXcgUHJv
eHkocmVjb3JkLCBsb2dnaW5nSGFuZGxlcik7CisgIHZhciBoID0gbmV3IEhlYWRlcnMocHJveHkp
OworCisgIGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgOSk7CisgIC8vIFRoZSBmaXJzdCB0aGlu
ZyBpcyB0aGUgW1tHZXRdXSBvZiBTeW1ib2wuaXRlcmF0b3IgdG8gZmlndXJlIG91dCB3aGV0aGVy
CisgIC8vIHdlJ3JlIGEgc2VxdWVuY2UsIGR1cmluZyBvdmVybG9hZCByZXNvbHV0aW9uLgorICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1swXSwgWyJnZXQiLCByZWNvcmQsIFN5bWJvbC5pdGVyYXRv
ciwgcHJveHldKTsKKyAgLy8gVGhlbiB3ZSBoYXZlIHRoZSBbW093blByb3BlcnR5S2V5c11dIGZy
b20KKyAgLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtdG8tcmVjb3JkIHN0
ZXAgNC4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMV0sIFsib3duS2V5cyIsIHJlY29yZF0p
OworICAvLyBUaGVuIHRoZSBbW0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KKyAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhsb2dbMl0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVj
b3JkLCAiYSJdKTsKKyAgLy8gVGhlbiB0aGUgW1tHZXRdXSBmcm9tIHN0ZXAgNS4yLgorICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGxvZ1szXSwgWyJnZXQiLCByZWNvcmQsICJhIiwgcHJveHldKTsKKyAg
Ly8gVGhlbiB0aGUgVG9TdHJpbmcgb24gdGhlIHZhbHVlLgorICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ1s0XSwgWyJ0b1N0cmluZyIsIHJlY29yZC5hXSk7CisgIC8vIFRoZW4gdGhlIHNlY29uZCBb
W0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhs
b2dbNV0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLCAiYyJdKTsKKyAgLy8g
VGhlbiB0aGUgc2Vjb25kIFtbR2V0XV0gZnJvbSBzdGVwIDUuMi4KKyAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dbNl0sIFsiZ2V0IiwgcmVjb3JkLCAiYyIsIHByb3h5XSk7CisgIC8vIFRoZW4gdGhl
IFRvU3RyaW5nIG9uIHRoZSB2YWx1ZS4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbN10sIFsi
dG9TdHJpbmciLCByZWNvcmQuY10pOworICAvLyBUaGVuIHRoZSB0aGlyZCBbW0dldE93blByb3Bl
cnR5XV0gZnJvbSBzdGVwIDUuMS4KKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbOF0sIFsiZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFN5bWJvbC50b1N0cmluZ1RhZ10pOworICAvLyBObyBbW0dldF1dIGJlY2F1c2Ugbm90
IGVudW1lcmFibGUuCisKKyAgLy8gQ2hlY2sgdGhlIHJlc3VsdHMuCisgIGFzc2VydF9lcXVhbHMo
Wy4uLmhdLmxlbmd0aCwgMik7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLmgua2V5cygpXSwg
WyJhIiwgImMiXSk7CisgIGFzc2VydF90cnVlKGguaGFzKCJhIikpOworICBhc3NlcnRfZXF1YWxz
KGguZ2V0KCJhIiksICJiIik7CisgIGFzc2VydF90cnVlKGguaGFzKCJjIikpOworICBhc3NlcnRf
ZXF1YWxzKGguZ2V0KCJjIiksICJkIik7Cit9LCAiT3BlcmF0aW9uIHdpdGggbm9uLWVudW1lcmFi
bGUgU3ltYm9sIGtleXMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1yZWNvcmQuYW55Lndv
cmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtcmVjb3JkLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAwMmU2MjE1MjFmM2RhODUyYzU0N2JmMThhMmU2ZWUwZTY0ZDc4
NzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtcmVjb3JkLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKKworUEFTUyBQYXNzaW5nIG5vdGhpbmcgdG8gSGVh
ZGVycyBjb25zdHJ1Y3RvcgorUEFTUyBQYXNzaW5nIHVuZGVmaW5lZCB0byBIZWFkZXJzIGNvbnN0
cnVjdG9yCitQQVNTIFBhc3NpbmcgbnVsbCB0byBIZWFkZXJzIGNvbnN0cnVjdG9yCitQQVNTIEJh
c2ljIG9wZXJhdGlvbiB3aXRoIG9uZSBwcm9wZXJ0eQorUEFTUyBCYXNpYyBvcGVyYXRpb24gd2l0
aCBvbmUgcHJvcGVydHkgYW5kIGEgcHJvdG8KK1BBU1MgQ29ycmVjdCBvcGVyYXRpb24gb3JkZXJp
bmcgd2l0aCB0d28gcHJvcGVydGllcworUEFTUyBDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3
aXRoIHR3byBwcm9wZXJ0aWVzIG9uZSBvZiB3aGljaCBoYXMgYW4gaW52YWxpZCBuYW1lCitQQVNT
IENvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggdHdvIHByb3BlcnRpZXMgb25lIG9mIHdo
aWNoIGhhcyBhbiBpbnZhbGlkIHZhbHVlCitQQVNTIENvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5n
IHdpdGggbm9uLWVudW1lcmFibGUgcHJvcGVydGllcworUEFTUyBDb3JyZWN0IG9wZXJhdGlvbiBv
cmRlcmluZyB3aXRoIHVuZGVmaW5lZCBkZXNjcmlwdG9ycworUEFTUyBDb3JyZWN0IG9wZXJhdGlv
biBvcmRlcmluZyB3aXRoIHJlcGVhdGVkIGtleXMKK1BBU1MgQmFzaWMgb3BlcmF0aW9uIHdpdGgg
U3ltYm9sIGtleXMKK1BBU1MgT3BlcmF0aW9uIHdpdGggbm9uLWVudW1lcmFibGUgU3ltYm9sIGtl
eXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC5hbnkud29ya2VyLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFk
ZXJzL2hlYWRlcnMtcmVjb3JkLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4
ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLXJlY29yZC5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZp
bGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUg
dGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aGVhZGVycy9oZWFkZXJzLXJlY29yZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXJlY29yZC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2Q4ZDk5YTcwOTVlYmI2YjVkM2UzMTU0YWM2
OTEwOGU4MTk2OThmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVycy1yZWNvcmQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2MCArMCww
IEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+PC90aXRs
ZT4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlw
dD4KLXZhciBsb2cgPSBbXTsKLWZ1bmN0aW9uIGNsZWFyTG9nKCkgewotICBsb2cgPSBbXTsKLX0K
LWZ1bmN0aW9uIGFkZExvZ0VudHJ5KG5hbWUsIGFyZ3MpIHsKLSAgbG9nLnB1c2goWyBuYW1lLCAu
Li5hcmdzIF0pOwotfQotCi12YXIgbG9nZ2luZ0hhbmRsZXIgPSB7Ci19OwotCi1zZXR1cChmdW5j
dGlvbigpIHsKLSAgZm9yIChsZXQgcHJvcCBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhS
ZWZsZWN0KSkgewotICAgIGxvZ2dpbmdIYW5kbGVyW3Byb3BdID0gZnVuY3Rpb24oLi4uYXJncykg
ewotICAgICAgYWRkTG9nRW50cnkocHJvcCwgYXJncyk7Ci0gICAgICByZXR1cm4gUmVmbGVjdFtw
cm9wXSguLi5hcmdzKTsKLSAgICB9Ci0gIH0KLX0pOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB2
YXIgaCA9IG5ldyBIZWFkZXJzKCk7Ci0gIGFzc2VydF9lcXVhbHMoWy4uLmhdLmxlbmd0aCwgMCk7
Ci19LCAiUGFzc2luZyBub3RoaW5nIHRvIEhlYWRlcnMgY29uc3RydWN0b3IiKTsKLQotdGVzdChm
dW5jdGlvbigpIHsKLSAgdmFyIGggPSBuZXcgSGVhZGVycyh1bmRlZmluZWQpOwotICBhc3NlcnRf
ZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDApOwotfSwgIlBhc3NpbmcgdW5kZWZpbmVkIHRvIEhlYWRl
cnMgY29uc3RydWN0b3IiKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIHZhciBoID0gbmV3IEhlYWRlcnMobnVsbCk7
Ci0gIH0pOwotfSwgIlBhc3NpbmcgbnVsbCB0byBIZWFkZXJzIGNvbnN0cnVjdG9yIik7Ci0KLXRl
c3QoZnVuY3Rpb24oKSB7Ci0gIHRoaXMuYWRkX2NsZWFudXAoY2xlYXJMb2cpOwotICB2YXIgcmVj
b3JkID0geyBhOiAiYiIgfTsKLSAgdmFyIHByb3h5ID0gbmV3IFByb3h5KHJlY29yZCwgbG9nZ2lu
Z0hhbmRsZXIpOwotICB2YXIgaCA9IG5ldyBIZWFkZXJzKHByb3h5KTsKLQotICBhc3NlcnRfZXF1
YWxzKGxvZy5sZW5ndGgsIDQpOwotICAvLyBUaGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtbR2V0XV0g
b2YgU3ltYm9sLml0ZXJhdG9yIHRvIGZpZ3VyZSBvdXQgd2hldGhlcgotICAvLyB3ZSdyZSBhIHNl
cXVlbmNlLCBkdXJpbmcgb3ZlcmxvYWQgcmVzb2x1dGlvbi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbMF0sIFsiZ2V0IiwgcmVjb3JkLCBTeW1ib2wuaXRlcmF0b3IsIHByb3h5XSk7Ci0gIC8v
IFRoZW4gd2UgaGF2ZSB0aGUgW1tPd25Qcm9wZXJ0eUtleXNdXSBmcm9tCi0gIC8vIGh0dHBzOi8v
aGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2VzLXRvLXJlY29yZCBzdGVwIDQuCi0gIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzFdLCBbIm93bktleXMiLCByZWNvcmRdKTsKLSAgLy8gVGhlbiB0aGUg
W1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzJdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImEiXSk7Ci0gIC8v
IFRoZW4gdGhlIFtbR2V0XV0gZnJvbSBzdGVwIDUuMi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhs
b2dbM10sIFsiZ2V0IiwgcmVjb3JkLCAiYSIsIHByb3h5XSk7Ci0KLSAgLy8gQ2hlY2sgdGhlIHJl
c3VsdHMuCi0gIGFzc2VydF9lcXVhbHMoWy4uLmhdLmxlbmd0aCwgMSk7Ci0gIGFzc2VydF9hcnJh
eV9lcXVhbHMoWy4uLmgua2V5cygpXSwgWyJhIl0pOwotICBhc3NlcnRfdHJ1ZShoLmhhcygiYSIp
KTsKLSAgYXNzZXJ0X2VxdWFscyhoLmdldCgiYSIpLCAiYiIpOwotfSwgIkJhc2ljIG9wZXJhdGlv
biB3aXRoIG9uZSBwcm9wZXJ0eSIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB0aGlzLmFkZF9j
bGVhbnVwKGNsZWFyTG9nKTsKLSAgdmFyIHJlY29yZFByb3RvID0geyBjOiAiZCIgfTsKLSAgdmFy
IHJlY29yZCA9IE9iamVjdC5jcmVhdGUocmVjb3JkUHJvdG8sIHsgYTogeyB2YWx1ZTogImIiLCBl
bnVtZXJhYmxlOiB0cnVlIH0gfSk7Ci0gIHZhciBwcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxv
Z2dpbmdIYW5kbGVyKTsKLSAgdmFyIGggPSBuZXcgSGVhZGVycyhwcm94eSk7Ci0KLSAgYXNzZXJ0
X2VxdWFscyhsb2cubGVuZ3RoLCA0KTsKLSAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dl
dF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKLSAgLy8gd2UncmUg
YSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCi0gIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOwot
ICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQotICAvLyBodHRw
czovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgotICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7Ci0gIC8vIFRoZW4g
dGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgotICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOwot
ICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzNdLCBbImdldCIsIHJlY29yZCwgImEiLCBwcm94eV0pOwotCi0gIC8vIENoZWNrIHRo
ZSByZXN1bHRzLgotICBhc3NlcnRfZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDEpOwotICBhc3NlcnRf
YXJyYXlfZXF1YWxzKFsuLi5oLmtleXMoKV0sIFsiYSJdKTsKLSAgYXNzZXJ0X3RydWUoaC5oYXMo
ImEiKSk7Ci0gIGFzc2VydF9lcXVhbHMoaC5nZXQoImEiKSwgImIiKTsKLX0sICJCYXNpYyBvcGVy
YXRpb24gd2l0aCBvbmUgcHJvcGVydHkgYW5kIGEgcHJvdG8iKTsKLQotdGVzdChmdW5jdGlvbigp
IHsKLSAgdGhpcy5hZGRfY2xlYW51cChjbGVhckxvZyk7Ci0gIHZhciByZWNvcmQgPSB7IGE6ICJi
IiwgYzogImQiIH07Ci0gIHZhciBwcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dpbmdIYW5k
bGVyKTsKLSAgdmFyIGggPSBuZXcgSGVhZGVycyhwcm94eSk7Ci0KLSAgYXNzZXJ0X2VxdWFscyhs
b2cubGVuZ3RoLCA2KTsKLSAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5
bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKLSAgLy8gd2UncmUgYSBzZXF1ZW5j
ZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
WzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOwotICAvLyBUaGVu
IHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQotICAvLyBodHRwczovL2hleWNh
bS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgotICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7Ci0gIC8vIFRoZW4gdGhlIFtbR2V0
T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sy
XSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOwotICAvLyBUaGVu
IHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzNd
LCBbImdldCIsIHJlY29yZCwgImEiLCBwcm94eV0pOwotICAvLyBUaGVuIHRoZSBzZWNvbmQgW1tH
ZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
WzRdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImMiXSk7Ci0gIC8vIFRo
ZW4gdGhlIHNlY29uZCBbW0dldF1dIGZyb20gc3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzVdLCBbImdldCIsIHJlY29yZCwgImMiLCBwcm94eV0pOwotCi0gIC8vIENoZWNrIHRo
ZSByZXN1bHRzLgotICBhc3NlcnRfZXF1YWxzKFsuLi5oXS5sZW5ndGgsIDIpOwotICBhc3NlcnRf
YXJyYXlfZXF1YWxzKFsuLi5oLmtleXMoKV0sIFsiYSIsICJjIl0pOwotICBhc3NlcnRfdHJ1ZSho
LmhhcygiYSIpKTsKLSAgYXNzZXJ0X2VxdWFscyhoLmdldCgiYSIpLCAiYiIpOwotICBhc3NlcnRf
dHJ1ZShoLmhhcygiYyIpKTsKLSAgYXNzZXJ0X2VxdWFscyhoLmdldCgiYyIpLCAiZCIpOwotfSwg
IkNvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5nIHdpdGggdHdvIHByb3BlcnRpZXMiKTsKLQotdGVz
dChmdW5jdGlvbigpIHsKLSAgdGhpcy5hZGRfY2xlYW51cChjbGVhckxvZyk7Ci0gIHZhciByZWNv
cmQgPSB7IGE6ICJiIiwgIlx1RkZGRiI6ICJkIiB9OwotICB2YXIgcHJveHkgPSBuZXcgUHJveHko
cmVjb3JkLCBsb2dnaW5nSGFuZGxlcik7Ci0gIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBm
dW5jdGlvbigpIHsKLSAgICB2YXIgaCA9IG5ldyBIZWFkZXJzKHByb3h5KTsKLSAgfSk7Ci0KLSAg
YXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA1KTsKLSAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRo
ZSBbW0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKLSAgLy8g
d2UncmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCi0gIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94
eV0pOwotICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQotICAv
LyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0Lgot
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7Ci0gIC8v
IFRoZW4gdGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgotICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJh
Il0pOwotICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCi0gIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nWzNdLCBbImdldCIsIHJlY29yZCwgImEiLCBwcm94eV0pOwotICAvLyBUaGVu
IHRoZSBzZWNvbmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzRdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwg
Ilx1RkZGRiJdKTsKLSAgLy8gVGhlIHNlY29uZCBbW0dldF1dIG5ldmVyIGhhcHBlbnMsIGJlY2F1
c2Ugd2UgY29udmVydCB0aGUgaW52YWxpZCBuYW1lIHRvIGEKLSAgLy8gQnl0ZVN0cmluZyBmaXJz
dCBhbmQgdGhyb3cuCi19LCAiQ29ycmVjdCBvcGVyYXRpb24gb3JkZXJpbmcgd2l0aCB0d28gcHJv
cGVydGllcyBvbmUgb2Ygd2hpY2ggaGFzIGFuIGludmFsaWQgbmFtZSIpOwotCi10ZXN0KGZ1bmN0
aW9uKCkgewotICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKLSAgdmFyIHJlY29yZCA9IHsg
YTogIlx1RkZGRiIsIGM6ICJkIiB9Ci0gIHZhciBwcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxv
Z2dpbmdIYW5kbGVyKTsKLSAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkg
ewotICAgIHZhciBoID0gbmV3IEhlYWRlcnMocHJveHkpOwotICB9KTsKLQotICBhc3NlcnRfZXF1
YWxzKGxvZy5sZW5ndGgsIDQpOwotICAvLyBUaGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtbR2V0XV0g
b2YgU3ltYm9sLml0ZXJhdG9yIHRvIGZpZ3VyZSBvdXQgd2hldGhlcgotICAvLyB3ZSdyZSBhIHNl
cXVlbmNlLCBkdXJpbmcgb3ZlcmxvYWQgcmVzb2x1dGlvbi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhsb2dbMF0sIFsiZ2V0IiwgcmVjb3JkLCBTeW1ib2wuaXRlcmF0b3IsIHByb3h5XSk7Ci0gIC8v
IFRoZW4gd2UgaGF2ZSB0aGUgW1tPd25Qcm9wZXJ0eUtleXNdXSBmcm9tCi0gIC8vIGh0dHBzOi8v
aGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2VzLXRvLXJlY29yZCBzdGVwIDQuCi0gIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzFdLCBbIm93bktleXMiLCByZWNvcmRdKTsKLSAgLy8gVGhlbiB0aGUg
W1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMo
bG9nWzJdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImEiXSk7Ci0gIC8v
IFRoZW4gdGhlIFtbR2V0XV0gZnJvbSBzdGVwIDUuMi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhs
b2dbM10sIFsiZ2V0IiwgcmVjb3JkLCAiYSIsIHByb3h5XSk7Ci0gIC8vIE5vdGhpbmcgZWxzZSBh
ZnRlciB0aGlzLCBiZWNhdXNlIGNvbnZlcnRpbmcgdGhlIHJlc3VsdCBvZiB0aGF0IFtbR2V0XV0g
dG8gYQotICAvLyBCeXRlU3RyaW5nIHRocm93cy4KLX0sICJDb3JyZWN0IG9wZXJhdGlvbiBvcmRl
cmluZyB3aXRoIHR3byBwcm9wZXJ0aWVzIG9uZSBvZiB3aGljaCBoYXMgYW4gaW52YWxpZCB2YWx1
ZSIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsK
LSAgdmFyIHJlY29yZCA9IHt9OwotICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVjb3JkLCAiYSIs
IHsgdmFsdWU6ICJiIiwgZW51bWVyYWJsZTogZmFsc2UgfSk7Ci0gIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShyZWNvcmQsICJjIiwgeyB2YWx1ZTogImQiLCBlbnVtZXJhYmxlOiB0cnVlIH0pOwotICBP
YmplY3QuZGVmaW5lUHJvcGVydHkocmVjb3JkLCAiZSIsIHsgdmFsdWU6ICJmIiwgZW51bWVyYWJs
ZTogZmFsc2UgfSk7Ci0gIHZhciBwcm94eSA9IG5ldyBQcm94eShyZWNvcmQsIGxvZ2dpbmdIYW5k
bGVyKTsKLSAgdmFyIGggPSBuZXcgSGVhZGVycyhwcm94eSk7Ci0KLSAgYXNzZXJ0X2VxdWFscyhs
b2cubGVuZ3RoLCA2KTsKLSAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dldF1dIG9mIFN5
bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKLSAgLy8gd2UncmUgYSBzZXF1ZW5j
ZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
WzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOwotICAvLyBUaGVu
IHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQotICAvLyBodHRwczovL2hleWNh
bS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgotICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7Ci0gIC8vIFRoZW4gdGhlIFtbR2V0
T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sy
XSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOwotICAvLyBObyBb
W0dldF1dIGJlY2F1c2Ugbm90IGVudW1lcmFibGUKLSAgLy8gVGhlbiB0aGUgc2Vjb25kIFtbR2V0
T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sz
XSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJjIl0pOwotICAvLyBUaGVu
IHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRd
LCBbImdldCIsIHJlY29yZCwgImMiLCBwcm94eV0pOwotICAvLyBUaGVuIHRoZSB0aGlyZCBbW0dl
dE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2db
NV0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLCAiZSJdKTsKLSAgLy8gTm8g
W1tHZXRdXSBiZWNhdXNlIG5vdCBlbnVtZXJhYmxlCi0KLSAgLy8gQ2hlY2sgdGhlIHJlc3VsdHMu
Ci0gIGFzc2VydF9lcXVhbHMoWy4uLmhdLmxlbmd0aCwgMSk7Ci0gIGFzc2VydF9hcnJheV9lcXVh
bHMoWy4uLmgua2V5cygpXSwgWyJjIl0pOwotICBhc3NlcnRfdHJ1ZShoLmhhcygiYyIpKTsKLSAg
YXNzZXJ0X2VxdWFscyhoLmdldCgiYyIpLCAiZCIpOwotfSwgIkNvcnJlY3Qgb3BlcmF0aW9uIG9y
ZGVyaW5nIHdpdGggbm9uLWVudW1lcmFibGUgcHJvcGVydGllcyIpOwotCi10ZXN0KGZ1bmN0aW9u
KCkgewotICB0aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKLSAgdmFyIHJlY29yZCA9IHthOiAi
YiIsIGM6ICJkIiwgZTogImYifTsKLSAgdmFyIGx5aW5nSGFuZGxlciA9IHsKLSAgICBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3I6IGZ1bmN0aW9uKHRhcmdldCwgbmFtZSkgewotICAgICAgaWYgKG5h
bWUgPT0gImEiIHx8IG5hbWUgPT0gImUiKSB7Ci0gICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0g
ICAgICB9Ci0gICAgICByZXR1cm4gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFy
Z2V0LCBuYW1lKTsKLSAgICB9Ci0gIH07Ci0gIHZhciBseWluZ1Byb3h5ID0gbmV3IFByb3h5KHJl
Y29yZCwgbHlpbmdIYW5kbGVyKTsKLSAgdmFyIHByb3h5ID0gbmV3IFByb3h5KGx5aW5nUHJveHks
IGxvZ2dpbmdIYW5kbGVyKTsKLSAgdmFyIGggPSBuZXcgSGVhZGVycyhwcm94eSk7Ci0KLSAgYXNz
ZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCA2KTsKLSAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBb
W0dldF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKLSAgLy8gd2Un
cmUgYSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCi0gIGFzc2VydF9hcnJh
eV9lcXVhbHMobG9nWzBdLCBbImdldCIsIGx5aW5nUHJveHksIFN5bWJvbC5pdGVyYXRvciwgcHJv
eHldKTsKLSAgLy8gVGhlbiB3ZSBoYXZlIHRoZSBbW093blByb3BlcnR5S2V5c11dIGZyb20KLSAg
Ly8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtdG8tcmVjb3JkIHN0ZXAgNC4K
LSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMV0sIFsib3duS2V5cyIsIGx5aW5nUHJveHldKTsK
LSAgLy8gVGhlbiB0aGUgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFzc2Vy
dF9hcnJheV9lcXVhbHMobG9nWzJdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIGx5aW5n
UHJveHksICJhIl0pOwotICAvLyBObyBbW0dldF1dIGJlY2F1c2Ugbm8gZGVzY3JpcHRvcgotICAv
LyBUaGVuIHRoZSBzZWNvbmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nWzNdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIGx5
aW5nUHJveHksICJjIl0pOwotICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCi0g
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzRdLCBbImdldCIsIGx5aW5nUHJveHksICJjIiwgcHJv
eHldKTsKLSAgLy8gVGhlbiB0aGUgdGhpcmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1
LjEuCi0gIGFzc2VydF9hcnJheV9lcXVhbHMobG9nWzVdLCBbImdldE93blByb3BlcnR5RGVzY3Jp
cHRvciIsIGx5aW5nUHJveHksICJlIl0pOwotICAvLyBObyBbW0dldF1dIGJlY2F1c2Ugbm8gZGVz
Y3JpcHRvcgotCi0gIC8vIENoZWNrIHRoZSByZXN1bHRzLgotICBhc3NlcnRfZXF1YWxzKFsuLi5o
XS5sZW5ndGgsIDEpOwotICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5oLmtleXMoKV0sIFsiYyJd
KTsKLSAgYXNzZXJ0X3RydWUoaC5oYXMoImMiKSk7Ci0gIGFzc2VydF9lcXVhbHMoaC5nZXQoImMi
KSwgImQiKTsKLX0sICJDb3JyZWN0IG9wZXJhdGlvbiBvcmRlcmluZyB3aXRoIHVuZGVmaW5lZCBk
ZXNjcmlwdG9ycyIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB0aGlzLmFkZF9jbGVhbnVwKGNs
ZWFyTG9nKTsKLSAgdmFyIHJlY29yZCA9IHthOiAiYiIsIGM6ICJkIn07Ci0gIHZhciBseWluZ0hh
bmRsZXIgPSB7Ci0gICAgb3duS2V5czogZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gWyAiYSIs
ICJjIiwgImEiLCAiYyIgXTsKLSAgICB9LAotICB9OwotICB2YXIgbHlpbmdQcm94eSA9IG5ldyBQ
cm94eShyZWNvcmQsIGx5aW5nSGFuZGxlcik7Ci0gIHZhciBwcm94eSA9IG5ldyBQcm94eShseWlu
Z1Byb3h5LCBsb2dnaW5nSGFuZGxlcik7Ci0KLSAgLy8gUmV0dXJuaW5nIGR1cGxpY2F0ZSBrZXlz
IGZyb20gb3duS2V5cygpIHRocm93cyBhIFR5cGVFcnJvci4KLSAgYXNzZXJ0X3Rocm93c19qcyhU
eXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHZhciBoID0gbmV3IEhl
YWRlcnMocHJveHkpOyB9KTsKLQotICBhc3NlcnRfZXF1YWxzKGxvZy5sZW5ndGgsIDIpOwotICAv
LyBUaGUgZmlyc3QgdGhpbmcgaXMgdGhlIFtbR2V0XV0gb2YgU3ltYm9sLml0ZXJhdG9yIHRvIGZp
Z3VyZSBvdXQgd2hldGhlcgotICAvLyB3ZSdyZSBhIHNlcXVlbmNlLCBkdXJpbmcgb3ZlcmxvYWQg
cmVzb2x1dGlvbi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMF0sIFsiZ2V0IiwgbHlpbmdQ
cm94eSwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOwotICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtb
T3duUHJvcGVydHlLZXlzXV0gZnJvbQotICAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2Vi
aWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwg
WyJvd25LZXlzIiwgbHlpbmdQcm94eV0pOwotfSwgIkNvcnJlY3Qgb3BlcmF0aW9uIG9yZGVyaW5n
IHdpdGggcmVwZWF0ZWQga2V5cyIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB0aGlzLmFkZF9j
bGVhbnVwKGNsZWFyTG9nKTsKLSAgdmFyIHJlY29yZCA9IHsKLSAgICBhOiAiYiIsCi0gICAgW1N5
bWJvbC50b1N0cmluZ1RhZ106IHsKLSAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgVG9TdHJpbmcgY29u
dmVyc2lvbiBvZiB0aGUgdmFsdWUgaGFwcGVucwotICAgICAgLy8gYWZ0ZXIgdGhlIFRvU3RyaW5n
IGNvbnZlcnNpb24gb2YgdGhlIGtleS4KLSAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7IGFk
ZExvZ0VudHJ5KCJ0b1N0cmluZyIsIFt0aGlzXSk7IHJldHVybiAibm9wZSI7IH0KLSAgICB9LAot
ICAgIGM6ICJkIiB9OwotICB2YXIgcHJveHkgPSBuZXcgUHJveHkocmVjb3JkLCBsb2dnaW5nSGFu
ZGxlcik7Ci0gIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAg
IGZ1bmN0aW9uKCkgeyB2YXIgaCA9IG5ldyBIZWFkZXJzKHByb3h5KTsgfSk7Ci0KLSAgYXNzZXJ0
X2VxdWFscyhsb2cubGVuZ3RoLCA3KTsKLSAgLy8gVGhlIGZpcnN0IHRoaW5nIGlzIHRoZSBbW0dl
dF1dIG9mIFN5bWJvbC5pdGVyYXRvciB0byBmaWd1cmUgb3V0IHdoZXRoZXIKLSAgLy8gd2UncmUg
YSBzZXF1ZW5jZSwgZHVyaW5nIG92ZXJsb2FkIHJlc29sdXRpb24uCi0gIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzBdLCBbImdldCIsIHJlY29yZCwgU3ltYm9sLml0ZXJhdG9yLCBwcm94eV0pOwot
ICAvLyBUaGVuIHdlIGhhdmUgdGhlIFtbT3duUHJvcGVydHlLZXlzXV0gZnJvbQotICAvLyBodHRw
czovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy10by1yZWNvcmQgc3RlcCA0LgotICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGxvZ1sxXSwgWyJvd25LZXlzIiwgcmVjb3JkXSk7Ci0gIC8vIFRoZW4g
dGhlIFtbR2V0T3duUHJvcGVydHldXSBmcm9tIHN0ZXAgNS4xLgotICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGxvZ1syXSwgWyJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCByZWNvcmQsICJhIl0pOwot
ICAvLyBUaGVuIHRoZSBbW0dldF1dIGZyb20gc3RlcCA1LjIuCi0gIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nWzNdLCBbImdldCIsIHJlY29yZCwgImEiLCBwcm94eV0pOwotICAvLyBUaGVuIHRoZSBz
ZWNvbmQgW1tHZXRPd25Qcm9wZXJ0eV1dIGZyb20gc3RlcCA1LjEuCi0gIGFzc2VydF9hcnJheV9l
cXVhbHMobG9nWzRdLCBbImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIHJlY29yZCwgImMiXSk7
Ci0gIC8vIFRoZW4gdGhlIHNlY29uZCBbW0dldF1dIGZyb20gc3RlcCA1LjIuCi0gIGFzc2VydF9h
cnJheV9lcXVhbHMobG9nWzVdLCBbImdldCIsIHJlY29yZCwgImMiLCBwcm94eV0pOwotICAvLyBU
aGVuIHRoZSB0aGlyZCBbW0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KLSAgYXNzZXJ0
X2FycmF5X2VxdWFscyhsb2dbNl0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3Jk
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbC50b1N0cmluZ1RhZ10pOwot
ICAvLyBUaGVuIHdlIHRocm93IGFuIGV4Y2VwdGlvbiBjb252ZXJ0aW5nIHRoZSBTeW1ib2wgdG8g
YSBzdHJpbmcsIGJlZm9yZSB3ZSBkbwotICAvLyB0aGUgdGhpcmQgW1tHZXRdXS4KLX0sICJCYXNp
YyBvcGVyYXRpb24gd2l0aCBTeW1ib2wga2V5cyIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICB0
aGlzLmFkZF9jbGVhbnVwKGNsZWFyTG9nKTsKLSAgdmFyIHJlY29yZCA9IHsKLSAgICBhOiB7Ci0g
ICAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7IGFkZExvZ0VudHJ5KCJ0b1N0cmluZyIsIFt0aGlz
XSk7IHJldHVybiAiYiI7IH0KLSAgICB9LAotICAgIFtTeW1ib2wudG9TdHJpbmdUYWddOiB7Ci0g
ICAgICB0b1N0cmluZzogZnVuY3Rpb24gKCkgeyBhZGRMb2dFbnRyeSgidG9TdHJpbmciLCBbdGhp
c10pOyByZXR1cm4gIm5vcGUiOyB9Ci0gICAgfSwKLSAgICBjOiB7Ci0gICAgICB0b1N0cmluZzog
ZnVuY3Rpb24oKSB7IGFkZExvZ0VudHJ5KCJ0b1N0cmluZyIsIFt0aGlzXSk7IHJldHVybiAiZCI7
IH0KLSAgICB9Ci0gIH07Ci0gIC8vIE5vdyBtYWtlIHRoYXQgU3ltYm9sLW5hbWVkIHByb3BlcnR5
IG5vdCBlbnVtZXJhYmxlLgotICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVjb3JkLCBTeW1ib2wu
dG9TdHJpbmdUYWcsIHsgZW51bWVyYWJsZTogZmFsc2UgfSk7Ci0gIGFzc2VydF9hcnJheV9lcXVh
bHMoUmVmbGVjdC5vd25LZXlzKHJlY29yZCksCi0gICAgICAgICAgICAgICAgICAgICAgWyJhIiwg
ImMiLCBTeW1ib2wudG9TdHJpbmdUYWddKTsKLQotICB2YXIgcHJveHkgPSBuZXcgUHJveHkocmVj
b3JkLCBsb2dnaW5nSGFuZGxlcik7Ci0gIHZhciBoID0gbmV3IEhlYWRlcnMocHJveHkpOwotCi0g
IGFzc2VydF9lcXVhbHMobG9nLmxlbmd0aCwgOSk7Ci0gIC8vIFRoZSBmaXJzdCB0aGluZyBpcyB0
aGUgW1tHZXRdXSBvZiBTeW1ib2wuaXRlcmF0b3IgdG8gZmlndXJlIG91dCB3aGV0aGVyCi0gIC8v
IHdlJ3JlIGEgc2VxdWVuY2UsIGR1cmluZyBvdmVybG9hZCByZXNvbHV0aW9uLgotICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGxvZ1swXSwgWyJnZXQiLCByZWNvcmQsIFN5bWJvbC5pdGVyYXRvciwgcHJv
eHldKTsKLSAgLy8gVGhlbiB3ZSBoYXZlIHRoZSBbW093blByb3BlcnR5S2V5c11dIGZyb20KLSAg
Ly8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtdG8tcmVjb3JkIHN0ZXAgNC4K
LSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbMV0sIFsib3duS2V5cyIsIHJlY29yZF0pOwotICAv
LyBUaGVuIHRoZSBbW0dldE93blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KLSAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhsb2dbMl0sIFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLCAi
YSJdKTsKLSAgLy8gVGhlbiB0aGUgW1tHZXRdXSBmcm9tIHN0ZXAgNS4yLgotICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGxvZ1szXSwgWyJnZXQiLCByZWNvcmQsICJhIiwgcHJveHldKTsKLSAgLy8gVGhl
biB0aGUgVG9TdHJpbmcgb24gdGhlIHZhbHVlLgotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ1s0
XSwgWyJ0b1N0cmluZyIsIHJlY29yZC5hXSk7Ci0gIC8vIFRoZW4gdGhlIHNlY29uZCBbW0dldE93
blByb3BlcnR5XV0gZnJvbSBzdGVwIDUuMS4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbNV0s
IFsiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLCAiYyJdKTsKLSAgLy8gVGhlbiB0
aGUgc2Vjb25kIFtbR2V0XV0gZnJvbSBzdGVwIDUuMi4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhs
b2dbNl0sIFsiZ2V0IiwgcmVjb3JkLCAiYyIsIHByb3h5XSk7Ci0gIC8vIFRoZW4gdGhlIFRvU3Ry
aW5nIG9uIHRoZSB2YWx1ZS4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbN10sIFsidG9TdHJp
bmciLCByZWNvcmQuY10pOwotICAvLyBUaGVuIHRoZSB0aGlyZCBbW0dldE93blByb3BlcnR5XV0g
ZnJvbSBzdGVwIDUuMS4KLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dbOF0sIFsiZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yIiwgcmVjb3JkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFN5bWJvbC50b1N0cmluZ1RhZ10pOwotICAvLyBObyBbW0dldF1dIGJlY2F1c2Ugbm90IGVudW1l
cmFibGUuCi0KLSAgLy8gQ2hlY2sgdGhlIHJlc3VsdHMuCi0gIGFzc2VydF9lcXVhbHMoWy4uLmhd
Lmxlbmd0aCwgMik7Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLmgua2V5cygpXSwgWyJhIiwg
ImMiXSk7Ci0gIGFzc2VydF90cnVlKGguaGFzKCJhIikpOwotICBhc3NlcnRfZXF1YWxzKGguZ2V0
KCJhIiksICJiIik7Ci0gIGFzc2VydF90cnVlKGguaGFzKCJjIikpOwotICBhc3NlcnRfZXF1YWxz
KGguZ2V0KCJjIiksICJkIik7Ci19LCAiT3BlcmF0aW9uIHdpdGggbm9uLWVudW1lcmFibGUgU3lt
Ym9sIGtleXMiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVy
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtc3RydWN0dXJlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmUyYzJiNDRlNWMxMDk5YjU5YmY3N2ZkNTU3ZjYy
NzA2OTM5MmMyNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9o
ZWFkZXJzL2hlYWRlcnMtc3RydWN0dXJlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDEwICswLDAgQEAKLQotUEFTUyBIZWFkZXJzIGhhcyBhcHBlbmQgbWV0aG9kCi1QQVNTIEhlYWRl
cnMgaGFzIGRlbGV0ZSBtZXRob2QKLVBBU1MgSGVhZGVycyBoYXMgZ2V0IG1ldGhvZAotUEFTUyBI
ZWFkZXJzIGhhcyBoYXMgbWV0aG9kCi1QQVNTIEhlYWRlcnMgaGFzIHNldCBtZXRob2QKLVBBU1Mg
SGVhZGVycyBoYXMgZW50cmllcyBtZXRob2QKLVBBU1MgSGVhZGVycyBoYXMga2V5cyBtZXRob2QK
LVBBU1MgSGVhZGVycyBoYXMgdmFsdWVzIG1ldGhvZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
cnMtc3RydWN0dXJlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtc3RydWN0dXJlLmFu
eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmUyYzJiNDRlNWMxMDk5YjU5YmY3N2ZkNTU3ZjYy
NzA2OTM5MmMyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1zdHJ1Y3R1cmUuYW55
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgSGVhZGVycyBoYXMgYXBwZW5k
IG1ldGhvZAorUEFTUyBIZWFkZXJzIGhhcyBkZWxldGUgbWV0aG9kCitQQVNTIEhlYWRlcnMgaGFz
IGdldCBtZXRob2QKK1BBU1MgSGVhZGVycyBoYXMgaGFzIG1ldGhvZAorUEFTUyBIZWFkZXJzIGhh
cyBzZXQgbWV0aG9kCitQQVNTIEhlYWRlcnMgaGFzIGVudHJpZXMgbWV0aG9kCitQQVNTIEhlYWRl
cnMgaGFzIGtleXMgbWV0aG9kCitQQVNTIEhlYWRlcnMgaGFzIHZhbHVlcyBtZXRob2QKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1z
dHJ1Y3R1cmUuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0
NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1zdHJ1Y3R1cmUu
YW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVj
dHVyZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtc3RydWN0dXJlLmFueS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NDcyOTBlYjIwOThiMzdhNjdlMmIxODliMzEwMTY2YmExYTZhODI4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
aGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5hbnkuanMKQEAgLTAsMCArMSwxOCBAQAorLy8gTUVU
QTogdGl0bGU9SGVhZGVycyBiYXNpYworLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKwor
dmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwordmFyIG1ldGhvZHMgPSBbImFwcGVuZCIsCisg
ICAgICAgICAgICAgICAgImRlbGV0ZSIsCisgICAgICAgICAgICAgICAgImdldCIsCisgICAgICAg
ICAgICAgICAgImhhcyIsCisgICAgICAgICAgICAgICAgInNldCIsCisgICAgICAgICAgICAgICAg
Ly9IZWFkZXJzIGlzIGl0ZXJhYmxlCisgICAgICAgICAgICAgICAgImVudHJpZXMiLAorICAgICAg
ICAgICAgICAgICJrZXlzIiwKKyAgICAgICAgICAgICAgICAidmFsdWVzIgorICAgICAgICAgICAg
ICAgIF07Citmb3IgKHZhciBpZHggaW4gbWV0aG9kcykKKyAgdGVzdChmdW5jdGlvbigpIHsKKyAg
ICBhc3NlcnRfdHJ1ZShtZXRob2RzW2lkeF0gaW4gaGVhZGVycywgImhlYWRlcnMgaGFzICIgKyBt
ZXRob2RzW2lkeF0gKyAiIG1ldGhvZCIpOworICB9LCAiSGVhZGVycyBoYXMgIiArIG1ldGhvZHNb
aWR4XSArICIgbWV0aG9kIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtc3RydWN0dXJlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTJjMmI0NGU1YzEwOTliNTliZjc3ZmQ1NTdmNjI3
MDY5MzkyYzI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgSGVhZGVycyBoYXMg
YXBwZW5kIG1ldGhvZAorUEFTUyBIZWFkZXJzIGhhcyBkZWxldGUgbWV0aG9kCitQQVNTIEhlYWRl
cnMgaGFzIGdldCBtZXRob2QKK1BBU1MgSGVhZGVycyBoYXMgaGFzIG1ldGhvZAorUEFTUyBIZWFk
ZXJzIGhhcyBzZXQgbWV0aG9kCitQQVNTIEhlYWRlcnMgaGFzIGVudHJpZXMgbWV0aG9kCitQQVNT
IEhlYWRlcnMgaGFzIGtleXMgbWV0aG9kCitQQVNTIEhlYWRlcnMgaGFzIHZhbHVlcyBtZXRob2QK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5hbnkud29ya2VyLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFk
ZXJzL2hlYWRlcnMtc3RydWN0dXJlLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEz
NTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVy
cy9oZWFkZXJzLXN0cnVjdHVyZS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1
biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVjdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLXN0cnVj
dHVyZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDQ4ZTQ1MGM5YjgwZTUz
ZmZmN2M1MzcyODQ3YTk1ZWNiNTUzZjI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1zdHJ1Y3R1cmUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDMxICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+SGVhZGVycyBiYXNpYzwvdGl0bGU+
Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5v
cmcvI2hlYWRlcnMiPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaGV5Y2Ft
LmdpdGh1Yi5pby93ZWJpZGwvI2lkbC1pdGVyYWJsZSI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0aG9y
IiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fu
b24uZnIiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgdmFy
IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpOwotICAgICAgICB2YXIgbWV0aG9kcyA9IFsiYXBwZW5k
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICJnZXQiLAotICAgICAgICAgICAgICAgICAgICAgICAiaGFzIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgInNldCIsCi0gICAgICAgICAgICAgICAgICAgICAgIC8vSGVhZGVycyBpcyBpdGVy
YWJsZQotICAgICAgICAgICAgICAgICAgICAgICAiZW50cmllcyIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICJrZXlzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlcyIKLSAgICAgICAg
ICAgICAgICAgICAgICAgXTsKLSAgICAgICAgZm9yICh2YXIgaWR4IGluIG1ldGhvZHMpCi0gICAg
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKG1ldGhvZHNb
aWR4XSBpbiBoZWFkZXJzLCAiaGVhZGVycyBoYXMgIiArIG1ldGhvZHNbaWR4XSArICIgbWV0aG9k
Iik7Ci0gICAgICAgICAgfSwgIkhlYWRlcnMgaGFzICIgKyBtZXRob2RzW2lkeF0gKyAiIG1ldGhv
ZCIpOwotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJz
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy93M2MtaW1wb3J0LmxvZwppbmRleCAxZTQxYmFlMzBmNzg4
NDg1NTAxMTIwMTQ5YzU3NmI1M2RkN2ViNTdmLi41ZjY5ZmZmOWQ5NGI1MzRkNGI3MWI0ZDlmOGJi
OTg0OGI2Yzc4ZWZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMv
dzNjLWltcG9ydC5sb2cKQEAgLTE0LDEzICsxNCwxMyBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXplLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1
ZXMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWNhc2luZy5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvaGVhZGVycy9oZWFkZXJzLWNvbWJpbmUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1lcnJvcnMuaHRt
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVycy1uby1jb3JzLndpbmRvdy5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1ub3JtYWxp
emUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1yZWNvcmQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1zdHJ1Y3R1
cmUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy1ub3JtYWxpemUuYW55LmpzCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFk
ZXItdmFsdWVzLmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5hbnkuanMKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
cnMtY2FzaW5nLmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1jb21iaW5lLmFueS5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVh
ZGVycy1lcnJvcnMuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLW5vLWNvcnMuYW55LmpzCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLW5vcm1hbGl6ZS5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtcmVjb3JkLmFueS5qcworL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRl
cnMvaGVhZGVycy1zdHJ1Y3R1cmUuYW55LmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1i
YWNrLXRvLW9yaWdpbmFsLW9yaWdpbi5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1iYWNrLXRvLW9y
aWdpbmFsLW9yaWdpbi5hbnkuanMKaW5kZXggMzJkNDEzY2IyZjE2ZGI2NzUzYmQ3MWNmYTAzOTVm
ZjhiZDdlZmVhOS4uNzRkNzMxZjI0MjUxYzE2YjIwNGM1MGU5ZmE4MTUyN2VlZWNjODhjYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtYmFjay10by1vcmlnaW5hbC1vcmlnaW4uYW55LmpzCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlZGlyZWN0L3JlZGlyZWN0LWJhY2stdG8tb3JpZ2luYWwtb3JpZ2luLmFueS5qcwpAQCAtMSwz
ICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9
L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcwogCiBjb25zdCBCQVNFID0gbG9jYXRpb24uaHJl
ZjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LWNvdW50LmFueS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRp
cmVjdC9yZWRpcmVjdC1jb3VudC5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDE3NTE4MTc1N2M0OTY3
NmRmMTE5MzgyNzM5ZGU3MDI1YThkNDI3MDAuLjFiMjY2MDMyMmFlN2E3N2ExOWVlZjJhNDllNjNl
ZjIzNTg2NzBkYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LWNvdW50LmFueS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtY291bnQuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwx
MiArMSwxMiBAQAogCi1GQUlMIFJlZGlyZWN0IDMwMSAyMCB0aW1lcyBhc3NlcnRfZXF1YWxzOiBS
ZXNwb25zZSdzIHN0YXR1cyBpcyAyMDAgZXhwZWN0ZWQgMjAwIGJ1dCBnb3QgMzAxCi1GQUlMIFJl
ZGlyZWN0IDMwMSAyMSB0aW1lcyBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3Rl
ZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBSZWRpcmVjdCAzMDIg
MjAgdGltZXMgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UncyBzdGF0dXMgaXMgMjAwIGV4cGVjdGVk
IDIwMCBidXQgZ290IDMwMgotRkFJTCBSZWRpcmVjdCAzMDIgMjEgdGltZXMgYXNzZXJ0X3VucmVh
Y2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKLUZBSUwgUmVkaXJlY3QgMzAzIDIwIHRpbWVzIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNl
J3Mgc3RhdHVzIGlzIDIwMCBleHBlY3RlZCAyMDAgYnV0IGdvdCAzMDMKLUZBSUwgUmVkaXJlY3Qg
MzAzIDIxIHRpbWVzIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRl
ZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIFJlZGlyZWN0IDMwNyAyMCB0aW1l
cyBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSdzIHN0YXR1cyBpcyAyMDAgZXhwZWN0ZWQgMjAwIGJ1
dCBnb3QgMzA3Ci1GQUlMIFJlZGlyZWN0IDMwNyAyMSB0aW1lcyBhc3NlcnRfdW5yZWFjaGVkOiBT
aG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQot
RkFJTCBSZWRpcmVjdCAzMDggMjAgdGltZXMgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UncyBzdGF0
dXMgaXMgMjAwIGV4cGVjdGVkIDIwMCBidXQgZ290IDMwOAorUEFTUyBSZWRpcmVjdCAzMDEgMjAg
dGltZXMKK1BBU1MgUmVkaXJlY3QgMzAxIDIxIHRpbWVzCitQQVNTIFJlZGlyZWN0IDMwMiAyMCB0
aW1lcworUEFTUyBSZWRpcmVjdCAzMDIgMjEgdGltZXMKK1BBU1MgUmVkaXJlY3QgMzAzIDIwIHRp
bWVzCitQQVNTIFJlZGlyZWN0IDMwMyAyMSB0aW1lcworUEFTUyBSZWRpcmVjdCAzMDcgMjAgdGlt
ZXMKK1BBU1MgUmVkaXJlY3QgMzA3IDIxIHRpbWVzCitQQVNTIFJlZGlyZWN0IDMwOCAyMCB0aW1l
cwogUEFTUyBSZWRpcmVjdCAzMDggMjEgdGltZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJl
Y3QtY291bnQuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtY291bnQuYW55LmpzCmluZGV4IDRjZTA4
MGU2OTAyN2JjMTJmMTgwZGM5M2QwMGYwZTdjOTY4MzAyMmMuLmRkYTVkN2Y1MjkwMWFlNGY3MzZl
OGRlZmJkNzY5NjNiZGViODYyNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LWNvdW50LmFu
eS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1jb3VudC5hbnkuanMKQEAgLTEsMyArMSw0IEBACisv
LyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNl
cy91dGlscy5qcwogLy8gTUVUQTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKIC8vIE1FVEE6IHRp
bWVvdXQ9bG9uZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtY291bnQuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1jb3VudC5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dAppbmRleCBkMDAzZDRhMmI3ZjdlNTYwNjM5YWM1MjYzYTYxOTA2MGMzYjQ3OGRjLi4xYjI2NjAz
MjJhZTdhNzdhMTllZWYyYTQ5ZTYzZWYyMzU4NjcwZGE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRp
cmVjdC1jb3VudC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1j
b3VudC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAogCi1GQUlMIFJl
ZGlyZWN0IDMwMSAyMCB0aW1lcyBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSdzIHN0YXR1cyBpcyAy
MDAgZXhwZWN0ZWQgMjAwIGJ1dCBnb3QgMzAxCi1GQUlMIFJlZGlyZWN0IDMwMSAyMSB0aW1lcyBh
c3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQg
dW5yZWFjaGFibGUgY29kZQotRkFJTCBSZWRpcmVjdCAzMDIgMjAgdGltZXMgYXNzZXJ0X2VxdWFs
czogUmVzcG9uc2UncyBzdGF0dXMgaXMgMjAwIGV4cGVjdGVkIDIwMCBidXQgZ290IDMwMgotRkFJ
TCBSZWRpcmVjdCAzMDIgMjEgdGltZXMgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVq
ZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgUmVkaXJlY3Qg
MzAzIDIwIHRpbWVzIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNlJ3Mgc3RhdHVzIGlzIDIwMCBleHBl
Y3RlZCAyMDAgYnV0IGdvdCAzMDMKLUZBSUwgUmVkaXJlY3QgMzAzIDIxIHRpbWVzIGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCi1GQUlMIFJlZGlyZWN0IDMwNyAyMCB0aW1lcyBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHRvbyBtYW55IEhU
VFAgcmVkaXJlY3RzIgotRkFJTCBSZWRpcmVjdCAzMDcgMjEgdGltZXMgYXNzZXJ0X3VucmVhY2hl
ZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNv
ZGUKLUZBSUwgUmVkaXJlY3QgMzA4IDIwIHRpbWVzIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNlJ3Mg
c3RhdHVzIGlzIDIwMCBleHBlY3RlZCAyMDAgYnV0IGdvdCAzMDgKLUZBSUwgUmVkaXJlY3QgMzA4
IDIxIHRpbWVzIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmlu
ZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIFJlZGlyZWN0IDMwMSAyMCB0aW1lcwor
UEFTUyBSZWRpcmVjdCAzMDEgMjEgdGltZXMKK1BBU1MgUmVkaXJlY3QgMzAyIDIwIHRpbWVzCitQ
QVNTIFJlZGlyZWN0IDMwMiAyMSB0aW1lcworUEFTUyBSZWRpcmVjdCAzMDMgMjAgdGltZXMKK1BB
U1MgUmVkaXJlY3QgMzAzIDIxIHRpbWVzCitQQVNTIFJlZGlyZWN0IDMwNyAyMCB0aW1lcworUEFT
UyBSZWRpcmVjdCAzMDcgMjEgdGltZXMKK1BBU1MgUmVkaXJlY3QgMzA4IDIwIHRpbWVzCitQQVNT
IFJlZGlyZWN0IDMwOCAyMSB0aW1lcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1lbXB0
eS1sb2NhdGlvbi5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1lbXB0eS1sb2NhdGlvbi5hbnkuanMK
aW5kZXggNzliMDRmNWM1ZWMyNzFmMWZkM2IxNzM3OGNjYzk3MGNhMWMzZmFiMy4uNDg3ZjRkNDJl
OTIzOWYxMzE5YmZmNmE4Y2JjNDZiYjExMjMxYmU2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJl
Y3QtZW1wdHktbG9jYXRpb24uYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LWVtcHR5LWxvY2F0
aW9uLmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2Vy
CiAvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIC8vIFRlc3RzIHJlY2Vp
dmluZyBhIHJlZGlyZWN0IHJlc3BvbnNlIHdpdGggYSBMb2NhdGlvbiBoZWFkZXIgd2l0aCBhbiBl
bXB0eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtbG9jYXRpb24tZXNjYXBlLnRlbnRhdGl2
ZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1sb2NhdGlvbi1lc2NhcGUudGVudGF0aXZlLmFueS5q
cwppbmRleCAyOTc1ZTVmZTFhOTc1OGU0NWQ0YWJmN2ZlZWNlYjBiMmI1OGUyNTdkLi43NzlhZDcw
NTc5MzdmNjNjMDJjN2FkYzg5ZjM5Yjg5MGM2OGQ0ODk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRp
cmVjdC1sb2NhdGlvbi1lc2NhcGUudGVudGF0aXZlLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVj
dC1sb2NhdGlvbi1lc2NhcGUudGVudGF0aXZlLmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1F
VEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0
aWxzLmpzCiAKIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2ZldGNoL2lzc3Vlcy84
ODMgZm9yIHRoZSBiZWhhdmlvciBjb3ZlcmVkIGJ5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVj
dC1sb2NhdGlvbi5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1sb2NhdGlvbi5hbnkuanMKaW5kZXgg
OTFkYTI2MDIxZDA5YTAyNTRiN2U1NzFiOWVlMTEyZmUxMDgwZDYwZi4uNWNiNmNjMjgwYzRjZDVm
ZGRiNjJmZDhiYTI5ZDk0Mjg5NDQ2MGQ0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtbG9j
YXRpb24uYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LWxvY2F0aW9uLmFueS5qcwpAQCAtMSwz
ICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9
Li4vcmVzb3VyY2VzL3V0aWxzLmpzCiAKIGZ1bmN0aW9uIHJlZGlyZWN0TG9jYXRpb24oZGVzYywg
cmVkaXJlY3RVcmwsIHJlZGlyZWN0TG9jYXRpb24sIHJlZGlyZWN0U3RhdHVzLCByZWRpcmVjdE1v
ZGUsIHNob3VsZFBhc3MpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LW1ldGhvZC5hbnku
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZWRpcmVjdC9yZWRpcmVjdC1tZXRob2QuYW55LmpzCmluZGV4IGIyNGJiMDkyYzYwM2EyZjJj
Njk0MmE5YzZiM2FiNTkzNmE3ZTE2ODcuLjlmZTA4NmE5ZGI3MThhNWRlODc1NmU0YjhhMzgzMGFl
NDExODcxZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LW1ldGhvZC5hbnkuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVk
aXJlY3QvcmVkaXJlY3QtbWV0aG9kLmFueS5qcwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGds
b2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpz
CiAKIC8vIENyZWF0ZXMgYSBwcm9taXNlX3Rlc3QgdGhhdCBmZXRjaGVzIGEgVVJMIHRoYXQgcmV0
dXJucyBhIHJlZGlyZWN0IHJlc3BvbnNlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtcmVm
ZXJyZXItb3ZlcnJpZGUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXJlZmVycmVy
LW92ZXJyaWRlLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTRlYTI4ODM1NTEyNGFjMTNl
ZWJjNGE5YzE2YTQ2YmFlNzkzYmEwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0
LXJlZmVycmVyLW92ZXJyaWRlLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMzAgQEAKKwor
UEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgbm8tcmVmZXJy
ZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVm
ZXJyZXIgaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2lu
IHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFk
ZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZl
cnJlciBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BB
U1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIG9yaWdpbiByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBp
bml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9u
LCBuby1yZWZlcnJlciBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVh
ZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiBy
ZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVy
CitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgc2FtZS1v
cmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1y
ZWZlcnJlciBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBv
cmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJl
Y3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0
LCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBD
cm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIHN0cmljdC1vcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGly
ZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFT
UyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIHVuc2FmZS11cmwg
cmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJl
ci13aGVuLWRvd25ncmFkZSBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1Mg
Q3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0
LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rp
b24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93
bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5v
LXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRl
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJy
ZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9z
cyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIG9y
aWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJl
ZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13
aGVuLWRvd25ncmFkZSBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVh
ZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25n
cmFkZSBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2lu
IHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0LCBzYW1lLW9yaWdp
biByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVy
cmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQ
QVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUg
aW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVk
aXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIHN0cmljdC1vcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRp
cmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgc3RyaWN0LW9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJl
Y3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIHVuc2FmZS11cmwgcmVkaXJl
Y3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUgaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBv
cmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFk
ZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgbm8tcmVmZXJy
ZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4g
aW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENy
b3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93
bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3Jp
Z2luIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGly
ZWN0aW9uLCBvcmlnaW4gaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9y
aWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBy
ZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5p
dCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9y
aWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCBzYW1lLW9yaWdp
biByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBp
bml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVk
aXJlY3Rpb24sIG9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFT
UyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVj
dGlvbiwgb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJl
Y3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgdW5z
YWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBv
cmlnaW4gaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4g
cmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlciBy
ZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNh
bWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgbm8t
cmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdp
biByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVy
LXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVj
dGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFk
ZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4gaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVj
dGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmln
aW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGly
ZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jv
c3Mtb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBv
cmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBzYW1lLW9y
aWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgor
UEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBp
bml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRp
cmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVj
dGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1j
cm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9u
LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFk
ZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4gaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVk
aXJlY3Rpb24sIHNhbWUtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgor
UEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2luIGluaXQsIG5vLXJlZmVy
cmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1v
cmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQ
QVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgbm8tcmVmZXJy
ZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGly
ZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENy
b3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgb3JpZ2luIHJlZGlyZWN0
IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwg
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmln
aW4gcmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2luIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdp
biByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUtb3Jp
Z2luIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4g
cmVkaXJlY3Rpb24sIHNhbWUtb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgc3RyaWN0
LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBz
YW1lLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1l
IG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0
aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4g
aW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGly
ZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFT
UyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCBuby1yZWZlcnJl
ciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qt
b3JpZ2luIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdp
biByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25n
cmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJp
Y3Qtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCBvcmln
aW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0
LW9yaWdpbiBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJl
ZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBy
ZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3Jp
Z2luIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1Mg
U2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwgc2FtZS1vcmlnaW4g
cmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9y
aWdpbiBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4g
cmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQs
IHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0
aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4g
cmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9y
aWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCB1bnNh
ZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0
cmljdC1vcmlnaW4gaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBv
cmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwg
bm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlv
biwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlciByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJl
Y3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVj
dCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4gaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBv
cmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwg
b3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3Ry
aWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0
LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4g
cmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgor
UEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4gaW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2lu
IHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHN0cmlj
dC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwg
c3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGly
ZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmln
aW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdp
biByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIK
K1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luIGluaXQsIHVuc2FmZS11cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2lu
IHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgbm8tcmVm
ZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNh
ZmUtdXJsIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgor
UEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgbm8tcmVmZXJy
ZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGly
ZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jv
c3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIG9yaWdpbiByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4g
cmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBp
bml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGly
ZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFT
UyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCBzdHJpY3Qtb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11
cmwgaW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4g
cmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNh
ZmUtdXJsIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVh
ZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIHVuc2Fm
ZS11cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgdW5z
YWZlLXVybCBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRp
cmVjdC9yZWRpcmVjdC1yZWZlcnJlci1vdmVycmlkZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0
LXJlZmVycmVyLW92ZXJyaWRlLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVj
dC1yZWZlcnJlci1vdmVycmlkZS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZWRpcmVjdC9yZWRpcmVjdC1yZWZlcnJlci1vdmVycmlkZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVj
dC1yZWZlcnJlci1vdmVycmlkZS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZlNTVkNzllMTQxZmQ5MDEy
NGMyZDVlYTRjZWY0MTllZThhOWNiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0
LXJlZmVycmVyLW92ZXJyaWRlLmFueS5qcwpAQCAtMCwwICsxLDEwNCBAQAorLy8gTUVUQTogdGlt
ZW91dD1sb25nCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcworLy8gTUVUQTogc2Ny
aXB0PS4uL3Jlc291cmNlcy91dGlscy5qcworLy8gTUVUQTogc2NyaXB0PS9jb21tb24vZ2V0LWhv
c3QtaW5mby5zdWIuanMKKworZnVuY3Rpb24gZ2V0RXhwZWN0YXRpb24oZXhwZWN0YXRpb25zLCBp
bml0LCBpbml0U2NlbmFyaW8sIHJlZGlyZWN0UG9saWN5LCByZWRpcmVjdFNjZW5hcmlvKSB7Cisg
IGxldCBwb2xpY2llcyA9IFsKKyAgICBleHBlY3RhdGlvbnNbaW5pdFBvbGljeV1baW5pdFNjZW5h
cmlvXSwKKyAgICBleHBlY3RhdGlvbnNbcmVkaXJlY3RQb2xpY3ldW3JlZGlyZWN0U2NlbmFyaW9d
CisgIF07CisKKyAgaWYgKHBvbGljaWVzLmluY2x1ZGVzKCJvbWl0dGVkIikpIHsKKyAgICByZXR1
cm4gbnVsbDsKKyAgfSBlbHNlIGlmIChwb2xpY2llcy5pbmNsdWRlcygib3JpZ2luIikpIHsKKyAg
ICByZXR1cm4gcmVmZXJyZXJPcmlnaW47CisgIH0gZWxzZSB7CisgICAgLy8gInN0cmlwcGVkLXJl
ZmVycmVyIgorICAgIHJldHVybiByZWZlcnJlclVybDsKKyAgfQorfQorCitmdW5jdGlvbiB0ZXN0
UmVmZXJyZXJBZnRlclJlZGlyZWN0aW9uKGRlc2MsIHJlZGlyZWN0VXJsLCByZWRpcmVjdExvY2F0
aW9uLCByZWZlcnJlclBvbGljeSwgcmVkaXJlY3RSZWZlcnJlclBvbGljeSwgZXhwZWN0ZWRSZWZl
cnJlcikgeworICB2YXIgdXJsID0gcmVkaXJlY3RVcmw7CisgIHZhciB1cmxQYXJhbWV0ZXJzID0g
Ij9sb2NhdGlvbj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHJlZGlyZWN0TG9jYXRpb24pOworICB2
YXIgZGVzY3JpcHRpb24gPSBkZXNjICsgIiwgIiArIHJlZmVycmVyUG9saWN5ICsgIiBpbml0LCAi
ICsgcmVkaXJlY3RSZWZlcnJlclBvbGljeSArICIgcmVkaXJlY3QgaGVhZGVyICI7CisKKyAgaWYg
KHJlZGlyZWN0UmVmZXJyZXJQb2xpY3kpCisgICAgdXJsUGFyYW1ldGVycyArPSAiJnJlZGlyZWN0
X3JlZmVycmVycG9saWN5PSIgKyByZWRpcmVjdFJlZmVycmVyUG9saWN5OworCisgIHZhciByZXF1
ZXN0SW5pdCA9IHsicmVkaXJlY3QiOiAiZm9sbG93IiwgInJlZmVycmVyUG9saWN5IjogcmVmZXJy
ZXJQb2xpY3l9OworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICByZXR1
cm4gZmV0Y2godXJsICsgdXJsUGFyYW1ldGVycywgcmVxdWVzdEluaXQpLnRoZW4oZnVuY3Rpb24o
cmVzcG9uc2UpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5zdGF0dXMsIDIwMCwg
Ikluc3BlY3QgaGVhZGVyIHJlc3BvbnNlJ3Mgc3RhdHVzIGlzIDIwMCIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJ4LXJlcXVlc3QtcmVmZXJlciIpLCBleHBl
Y3RlZFJlZmVycmVyID8gZXhwZWN0ZWRSZWZlcnJlciA6IG51bGwsICJDaGVjayByZWZlcnJlciBo
ZWFkZXIiKTsKKyAgICAgIH0pOworICAgIH0sIGRlc2NyaXB0aW9uKTsKK30KKwordmFyIHJlZmVy
cmVyT3JpZ2luID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBfT1JJR0lOICsgIi8iOwordmFyIHJlZmVy
cmVyVXJsID0gbG9jYXRpb24uaHJlZjsKKwordmFyIHJlZGlyZWN0VXJsID0gUkVTT1VSQ0VTX0RJ
UiArICJyZWRpcmVjdC5weSI7Cit2YXIgbG9jYXRpb25VcmwgPSBnZXRfaG9zdF9pbmZvKCkuSFRU
UF9PUklHSU4gKyBkaXJuYW1lKGxvY2F0aW9uLnBhdGhuYW1lKSArIFJFU09VUkNFU19ESVIgKyAi
aW5zcGVjdC1oZWFkZXJzLnB5P2hlYWRlcnM9cmVmZXJlciI7Cit2YXIgY3Jvc3NMb2NhdGlvblVy
bCA9IGdldF9ob3N0X2luZm8oKS5IVFRQX1JFTU9URV9PUklHSU4gKyBkaXJuYW1lKGxvY2F0aW9u
LnBhdGhuYW1lKSArIFJFU09VUkNFU19ESVIgKyAiaW5zcGVjdC1oZWFkZXJzLnB5P2NvcnMmaGVh
ZGVycz1yZWZlcmVyIjsKKwordmFyIGV4cGVjdGF0aW9ucyA9IHsKKyAgIm5vLXJlZmVycmVyIjog
eworICAgICJzYW1lLW9yaWdpbiI6ICJvbWl0dGVkIiwKKyAgICAiY3Jvc3Mtb3JpZ2luIjogIm9t
aXR0ZWQiCisgIH0sCisgICJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSI6IHsKKyAgICAic2Ft
ZS1vcmlnaW4iOiAic3RyaXBwZWQtcmVmZXJyZXIiLAorICAgICJjcm9zcy1vcmlnaW4iOiAic3Ry
aXBwZWQtcmVmZXJyZXIiCisgIH0sCisgICJvcmlnaW4iOiB7CisgICAgInNhbWUtb3JpZ2luIjog
Im9yaWdpbiIsCisgICAgImNyb3NzLW9yaWdpbiI6ICJvcmlnaW4iCisgIH0sCisgICJvcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4iOiB7CisgICAgInNhbWUtb3JpZ2luIjogInN0cmlwcGVkLXJlZmVy
cmVyIiwKKyAgICAiY3Jvc3Mtb3JpZ2luIjogIm9yaWdpbiIsCisgIH0sCisgICJzYW1lLW9yaWdp
biI6IHsKKyAgICAic2FtZS1vcmlnaW4iOiAic3RyaXBwZWQtcmVmZXJyZXIiLAorICAgICJjcm9z
cy1vcmlnaW4iOiAib21pdHRlZCIKKyAgfSwKKyAgInN0cmljdC1vcmlnaW4iOiB7CisgICAgInNh
bWUtb3JpZ2luIjogIm9yaWdpbiIsCisgICAgImNyb3NzLW9yaWdpbiI6ICJvcmlnaW4iCisgIH0s
CisgICJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIjogeworICAgICJzYW1lLW9yaWdp
biI6ICJzdHJpcHBlZC1yZWZlcnJlciIsCisgICAgImNyb3NzLW9yaWdpbiI6ICJvcmlnaW4iCisg
IH0sCisgICJ1bnNhZmUtdXJsIjogeworICAgICJzYW1lLW9yaWdpbiI6ICJzdHJpcHBlZC1yZWZl
cnJlciIsCisgICAgImNyb3NzLW9yaWdpbiI6ICJzdHJpcHBlZC1yZWZlcnJlciIKKyAgfQorfTsK
KworZm9yICh2YXIgaW5pdFBvbGljeSBpbiBleHBlY3RhdGlvbnMpIHsKKyAgZm9yICh2YXIgcmVk
aXJlY3RQb2xpY3kgaW4gZXhwZWN0YXRpb25zKSB7CisKKyAgICAvLyBSZWRpcmVjdCB0byBzYW1l
LW9yaWdpbiBVUkwKKyAgICB0ZXN0UmVmZXJyZXJBZnRlclJlZGlyZWN0aW9uKAorICAgICAgIlNh
bWUgb3JpZ2luIHJlZGlyZWN0aW9uIiwKKyAgICAgIHJlZGlyZWN0VXJsLAorICAgICAgbG9jYXRp
b25VcmwsCisgICAgICBpbml0UG9saWN5LAorICAgICAgcmVkaXJlY3RQb2xpY3ksCisgICAgICBn
ZXRFeHBlY3RhdGlvbihleHBlY3RhdGlvbnMsIGluaXRQb2xpY3ksICJzYW1lLW9yaWdpbiIsIHJl
ZGlyZWN0UG9saWN5LCAic2FtZS1vcmlnaW4iKSk7CisKKyAgICAvLyBSZWRpcmVjdCB0byBjcm9z
cy1vcmlnaW4gVVJMCisgICAgdGVzdFJlZmVycmVyQWZ0ZXJSZWRpcmVjdGlvbigKKyAgICAgICJD
cm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24iLAorICAgICAgcmVkaXJlY3RVcmwsCisgICAgICBjcm9z
c0xvY2F0aW9uVXJsLAorICAgICAgaW5pdFBvbGljeSwKKyAgICAgIHJlZGlyZWN0UG9saWN5LAor
ICAgICAgZ2V0RXhwZWN0YXRpb24oZXhwZWN0YXRpb25zLCBpbml0UG9saWN5LCAic2FtZS1vcmln
aW4iLCByZWRpcmVjdFBvbGljeSwgImNyb3NzLW9yaWdpbiIpKTsKKyAgfQorfQorCitkb25lKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1yZWZlcnJlci1vdmVycmlkZS5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXJlZmVycmVyLW92ZXJyaWRlLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZWEyODgzNTUxMjRhYzEzZWViYzRhOWMxNmE0
NmJhZTc5M2JhMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1yZWZlcnJlci1v
dmVycmlkZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzMCBAQAorCitQQVNT
IFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBuby1yZWZlcnJlciBy
ZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJl
ciBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVk
aXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVy
IGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBT
YW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgb3JpZ2luIHJlZGlyZWN0
IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQs
IG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5v
LXJlZmVycmVyIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIK
K1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBvcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGly
ZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BB
U1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlciBpbml0LCBzYW1lLW9yaWdp
biByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVy
cmVyIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdp
biByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyIGluaXQsIHN0
cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3Nz
IG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rp
b24sIG5vLXJlZmVycmVyIGluaXQsIHVuc2FmZS11cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENy
b3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIgaW5pdCwgdW5zYWZlLXVybCByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdo
ZW4tZG93bmdyYWRlIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9z
cyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIG5v
LXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwg
bm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3Jh
ZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVm
ZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVk
aXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13
aGVuLWRvd25ncmFkZSBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9y
aWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJy
ZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0
IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4t
ZG93bmdyYWRlIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIK
K1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRl
IGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVk
aXJlY3Rpb24sIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGluaXQsIHNhbWUtb3JpZ2luIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgbm8tcmVmZXJyZXIt
d2hlbi1kb3duZ3JhZGUgaW5pdCwgc3RyaWN0LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1Mg
Q3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0
LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVj
dGlvbiwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0
aW9uLCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBpbml0LCBzdHJpY3Qtb3JpZ2luLXdoZW4t
Y3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlv
biwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBuby1yZWZlcnJlci13aGVuLWRv
d25ncmFkZSBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdp
biByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0IGhlYWRlcgor
UEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCBuby1yZWZlcnJlciBy
ZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0
LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mg
b3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3Jh
ZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4g
aW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rp
b24sIG9yaWdpbiBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2lu
IHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGly
ZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCBv
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2lu
IHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQ
QVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2luIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luIGluaXQs
IHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVj
dGlvbiwgb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNh
bWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNy
b3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9u
LCBvcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbiBpbml0LCB1bnNhZmUt
dXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdp
biBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRp
cmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyIHJlZGly
ZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNy
b3NzLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBv
cmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBuby1yZWZl
cnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJl
ZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9u
LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgor
UEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBp
bml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9u
LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3Qg
aGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4gaW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdp
biByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHNhbWUtb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdo
ZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNT
IENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQs
IHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0
aW9uLCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNy
b3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9u
LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIG9y
aWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgor
UEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBp
bml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVj
dGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNT
IENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgbm8tcmVmZXJyZXIg
cmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdp
biBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1Mg
Q3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlci13
aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rp
b24sIHNhbWUtb3JpZ2luIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mg
b3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVh
ZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBvcmln
aW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiBy
ZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc2FtZS1vcmlnaW4g
aW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRp
cmVjdGlvbiwgc2FtZS1vcmlnaW4gaW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQ
QVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3Jp
Z2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHNhbWUt
b3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3Jp
Z2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jv
c3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24s
IHNhbWUtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJl
Y3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzYW1lLW9yaWdpbiBpbml0
LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rp
b24sIHNhbWUtb3JpZ2luIGluaXQsIHVuc2FmZS11cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNh
bWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmln
aW4gaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJl
ZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRl
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1v
cmlnaW4gaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQ
QVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIG9yaWdpbiBy
ZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3Jp
Z2luIGluaXQsIG9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJl
Y3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGly
ZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4g
aW5pdCwgb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1l
IG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCBzYW1lLW9yaWdpbiByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2lu
IGluaXQsIHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRp
cmVjdGlvbiwgc3RyaWN0LW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4gaW5pdCwgc3Ry
aWN0LW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24s
IHN0cmljdC1vcmlnaW4gaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2lu
IGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQ
QVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luIGluaXQsIHVuc2FmZS11
cmwgcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0
LW9yaWdpbiBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdp
biByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBuby1y
ZWZlcnJlciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBz
dHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyIHJlZGlyZWN0
IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbiBpbml0LCBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWRpcmVjdCBo
ZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4t
Y3Jvc3Mtb3JpZ2luIGluaXQsIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZGlyZWN0IGhl
YWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNy
b3NzLW9yaWdpbiBpbml0LCBvcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdp
biByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBvcmln
aW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qt
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBy
ZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRp
cmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNT
IENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdp
biBpbml0LCBzYW1lLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVk
aXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gaW5pdCwgc3RyaWN0LW9y
aWdpbiByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJp
Y3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4gcmVkaXJlY3Qg
aGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCBzdHJpY3Qtb3JpZ2luLXdoZW4t
Y3Jvc3Mtb3JpZ2luIGluaXQsIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJl
Y3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbiBpbml0LCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJl
ZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgc3RyaWN0LW9yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbiBpbml0LCB1bnNhZmUtdXJsIHJlZGlyZWN0IGhlYWRlcgorUEFT
UyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4gaW5pdCwgdW5zYWZlLXVybCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVk
aXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgbm8tcmVmZXJyZXIgcmVkaXJlY3QgaGVhZGVyCitQ
QVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCBuby1yZWZlcnJl
ciByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11
cmwgaW5pdCwgbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVkaXJlY3QgaGVhZGVyCitQQVNT
IENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCBuby1yZWZlcnJlci13
aGVuLWRvd25ncmFkZSByZWRpcmVjdCBoZWFkZXIKK1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rp
b24sIHVuc2FmZS11cmwgaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBv
cmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgb3JpZ2luIHJlZGlyZWN0IGhlYWRl
cgorUEFTUyBTYW1lIG9yaWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCBvcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRp
cmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVkaXJl
Y3QgaGVhZGVyCitQQVNTIFNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQs
IHNhbWUtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rp
b24sIHVuc2FmZS11cmwgaW5pdCwgc2FtZS1vcmlnaW4gcmVkaXJlY3QgaGVhZGVyCitQQVNTIFNh
bWUgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUtdXJsIGluaXQsIHN0cmljdC1vcmlnaW4gcmVk
aXJlY3QgaGVhZGVyCitQQVNTIENyb3NzIG9yaWdpbiByZWRpcmVjdGlvbiwgdW5zYWZlLXVybCBp
bml0LCBzdHJpY3Qtb3JpZ2luIHJlZGlyZWN0IGhlYWRlcgorUEFTUyBTYW1lIG9yaWdpbiByZWRp
cmVjdGlvbiwgdW5zYWZlLXVybCBpbml0LCBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
IHJlZGlyZWN0IGhlYWRlcgorUEFTUyBDcm9zcyBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11
cmwgaW5pdCwgc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWRpcmVjdCBoZWFkZXIK
K1BBU1MgU2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24sIHVuc2FmZS11cmwgaW5pdCwgdW5zYWZlLXVy
bCByZWRpcmVjdCBoZWFkZXIKK1BBU1MgQ3Jvc3Mgb3JpZ2luIHJlZGlyZWN0aW9uLCB1bnNhZmUt
dXJsIGluaXQsIHVuc2FmZS11cmwgcmVkaXJlY3QgaGVhZGVyCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0
L3JlZGlyZWN0LXJlZmVycmVyLW92ZXJyaWRlLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGly
ZWN0LXJlZmVycmVyLW92ZXJyaWRlLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEz
NTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJl
Y3QvcmVkaXJlY3QtcmVmZXJyZXItb3ZlcnJpZGUuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEg
QEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVj
dHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXNjaGVtZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVk
aXJlY3QvcmVkaXJlY3Qtc2NoZW1lcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZlMTBjNjU1ZjkyYzVhOGFiOGRlYzljNDFkNjFmNGY0MzhkZGU3NGEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qt
c2NoZW1lcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotUEFT
UyBGZXRjaDogaGFuZGxpbmcgZGlmZmVyZW50IHNjaGVtZXMgaW4gcmVkaXJlY3RzCi1QQVNTIEZl
dGNoOiBoYW5kbGluZyBkaWZmZXJlbnQgc2NoZW1lcyBpbiByZWRpcmVjdHMgMQotUEFTUyBGZXRj
aDogaGFuZGxpbmcgZGlmZmVyZW50IHNjaGVtZXMgaW4gcmVkaXJlY3RzIDIKLVBBU1MgRmV0Y2g6
IGhhbmRsaW5nIGRpZmZlcmVudCBzY2hlbWVzIGluIHJlZGlyZWN0cyAzCi1QQVNTIEZldGNoOiBo
YW5kbGluZyBkaWZmZXJlbnQgc2NoZW1lcyBpbiByZWRpcmVjdHMgNAotUEFTUyBGZXRjaDogaGFu
ZGxpbmcgZGlmZmVyZW50IHNjaGVtZXMgaW4gcmVkaXJlY3RzIDUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJl
Y3QvcmVkaXJlY3Qtc2NoZW1lcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qtc2No
ZW1lcy5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlMTBjNjU1ZjkyYzVhOGFiOGRlYzlj
NDFkNjFmNGY0MzhkZGU3NGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hl
bWVzLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BBU1MgRmV0Y2g6IGhhbmRs
aW5nIGRpZmZlcmVudCBzY2hlbWVzIGluIHJlZGlyZWN0cworUEFTUyBGZXRjaDogaGFuZGxpbmcg
ZGlmZmVyZW50IHNjaGVtZXMgaW4gcmVkaXJlY3RzIDEKK1BBU1MgRmV0Y2g6IGhhbmRsaW5nIGRp
ZmZlcmVudCBzY2hlbWVzIGluIHJlZGlyZWN0cyAyCitQQVNTIEZldGNoOiBoYW5kbGluZyBkaWZm
ZXJlbnQgc2NoZW1lcyBpbiByZWRpcmVjdHMgMworUEFTUyBGZXRjaDogaGFuZGxpbmcgZGlmZmVy
ZW50IHNjaGVtZXMgaW4gcmVkaXJlY3RzIDQKK1BBU1MgRmV0Y2g6IGhhbmRsaW5nIGRpZmZlcmVu
dCBzY2hlbWVzIGluIHJlZGlyZWN0cyA1CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXNj
aGVtZXMuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hlbWVzLmFueS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hlbWVzLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwh
LS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0
byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXNjaGVtZXMuYW55LmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJl
Y3Qtc2NoZW1lcy5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlYzEyNGZkNmEzZWRhNjBiMTY0MWZiM2Ni
YTk4M2NmMjMxN2ZjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXNjaGVtZXMu
YW55LmpzCkBAIC0wLDAgKzEsMTkgQEAKKy8vIE1FVEE6IHRpdGxlPUZldGNoOiBoYW5kbGluZyBk
aWZmZXJlbnQgc2NoZW1lcyBpbiByZWRpcmVjdHMKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29y
a2VyCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworCisvLyBB
bGwgbm9uLUhUVFAoUykgc2NoZW1lcyBjYW5ub3Qgc3Vydml2ZSByZWRpcmVjdHMKK3ZhciB1cmwg
PSAiLi4vcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPSI7Cit2YXIgdGVzdHMgPSBbCisg
IHVybCArICJtYWlsdG86YUBhLmNvbSIsCisgIHVybCArICJkYXRhOixISSIsCisgIHVybCArICJm
YWNldGltZTphQGEub3JnIiwKKyAgdXJsICsgImFib3V0OmJsYW5rIiwKKyAgdXJsICsgImFib3V0
OnVuaWNvcm4iLAorICB1cmwgKyAiYmxvYjpkamZrc2ZqcyIKK107Cit0ZXN0cy5mb3JFYWNoKGZ1
bmN0aW9uKHVybCkgeworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHJldHVy
biBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCBmZXRjaCh1cmwpKQorICB9KQor
fSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlZGlyZWN0L3JlZGlyZWN0LXNjaGVtZXMuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hlbWVzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZlMTBjNjU1ZjkyYzVhOGFiOGRlYzljNDFkNjFmNGY0MzhkZGU3NGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hlbWVzLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOCBAQAorCitQQVNTIEZldGNoOiBoYW5kbGluZyBkaWZmZXJlbnQgc2No
ZW1lcyBpbiByZWRpcmVjdHMKK1BBU1MgRmV0Y2g6IGhhbmRsaW5nIGRpZmZlcmVudCBzY2hlbWVz
IGluIHJlZGlyZWN0cyAxCitQQVNTIEZldGNoOiBoYW5kbGluZyBkaWZmZXJlbnQgc2NoZW1lcyBp
biByZWRpcmVjdHMgMgorUEFTUyBGZXRjaDogaGFuZGxpbmcgZGlmZmVyZW50IHNjaGVtZXMgaW4g
cmVkaXJlY3RzIDMKK1BBU1MgRmV0Y2g6IGhhbmRsaW5nIGRpZmZlcmVudCBzY2hlbWVzIGluIHJl
ZGlyZWN0cyA0CitQQVNTIEZldGNoOiBoYW5kbGluZyBkaWZmZXJlbnQgc2NoZW1lcyBpbiByZWRp
cmVjdHMgNQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hlbWVzLmFueS53b3JrZXIu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlZGlyZWN0L3JlZGlyZWN0LXNjaGVtZXMuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hlbWVzLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1
cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC1zY2hlbWVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRp
cmVjdC1zY2hlbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhYTdiY2Vh
Njk1NTg4MmZhZDM0ZjUyOWZjMjU0NGMyNGM1NjBmM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qtc2NoZW1lcy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Ci08dGl0bGU+RmV0Y2g6IGhhbmRsaW5nIGRpZmZlcmVudCBzY2hlbWVzIGluIHJl
ZGlyZWN0czwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08ZGl2IGlkPWxvZz48L2Rpdj4KLTxzY3JpcHQ+Ci0gIC8vIEFsbCBub24tSFRU
UChTKSBzY2hlbWVzIGNhbm5vdCBzdXJ2aXZlIHJlZGlyZWN0cwotICB2YXIgdXJsID0gIi4uL3Jl
c291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0iOwotICB2YXIgdGVzdHMgPSBbCi0gICAgdXJs
ICsgIm1haWx0bzphQGEuY29tIiwKLSAgICB1cmwgKyAiZGF0YTosSEkiLAotICAgIHVybCArICJm
YWNldGltZTphQGEub3JnIiwKLSAgICB1cmwgKyAiYWJvdXQ6YmxhbmsiLAotICAgIHVybCArICJh
Ym91dDp1bmljb3JuIiwKLSAgICB1cmwgKyAiYmxvYjpkamZrc2ZqcyIKLSAgXTsKLSAgdGVzdHMu
Zm9yRWFjaChmdW5jdGlvbih1cmwpIHsKLSAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkg
ewotICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIGZldGNo
KHVybCkpCi0gICAgfSkKLSAgfSkKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJl
Y3QtdG8tZGF0YXVybC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC10by1kYXRhdXJsLmFueS5qcwpp
bmRleCAyZjM2ZjBiOWQyMWIyMjNjNGYyMGU5YWUyY2MxNjIwZmIwODIxMmYzLi45ZDBmMTQ3MzQ5
YzQ4ODcwYWFlMDBjOGMyYmU0YWEzZTM3NmQzNmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVj
dC10by1kYXRhdXJsLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRpcmVjdC9yZWRpcmVjdC10by1kYXRhdXJsLmFueS5q
cwpAQCAtMSwzICsxLDQgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCiAvLyBNRVRB
OiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcwogCiB2YXIgZGF0YVVSTCA9ICJk
YXRhOnRleHQvcGxhaW47YmFzZTY0LGNtVnpjRzl1YzJVbmN5QmliMlI1IjsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
ZGlyZWN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvdzNjLWltcG9ydC5sb2cKaW5kZXggM2IyOTE3
MjA3Y2RiNTliYjgyMjliODRlMWZiYWMyZjU4ZjQxYWMzZC4uMDI1MTc0ZGFiYmFkOTkwODY0MmRk
Nzc3ZDc5ZmZkN2ExODkyMjE2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvdzNjLWltcG9ydC5sb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVkaXJlY3QvdzNjLWltcG9ydC5sb2cKQEAgLTIyLDYgKzIyLDcgQEAgTGlzdCBvZiBmaWxlczoK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZWRpcmVjdC9yZWRpcmVjdC1tZXRob2QuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtbW9kZS5hbnku
anMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZWRpcmVjdC9yZWRpcmVjdC1vcmlnaW4uYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtcmVmZXJy
ZXItb3ZlcnJpZGUuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3QtcmVmZXJyZXIuYW55LmpzCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJl
Y3QvcmVkaXJlY3Qtc2NoZW1lcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJlY3QvcmVkaXJlY3Qtc2NoZW1lcy5hbnkuanMK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZWRpcmVjdC9yZWRpcmVjdC10by1kYXRhdXJsLmFueS5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9kZXN0
aW5hdGlvbi9mZXRjaC1kZXN0aW5hdGlvbi1wcmVmZXRjaC5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L2Rlc3RpbmF0aW9uL2ZldGNoLWRlc3RpbmF0aW9uLXByZWZldGNoLmh0dHBzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmRjNTRiOTEwYjNkMTg4OTllZWFh
ZTg3NjExNTdmY2Q0NmM5MTY2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uL2ZldGNoLWRlc3RpbmF0aW9uLXByZWZldGNoLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1IYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotUEFTUyBJbml0aWFsaXplIGdsb2Jh
bCBzdGF0ZQotVElNRU9VVCBIVE1MTGlua0VsZW1lbnQgd2l0aCByZWw9cHJlZmV0Y2ggZmV0Y2hl
cyB3aXRoIGFuIGVtcHR5IHN0cmluZyBSZXF1ZXN0LmRlc3RpbmF0aW9uIFRlc3QgdGltZWQgb3V0
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1iYWQtcG9ydC5hbnktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWJhZC1wb3J0LmFueS1leHBlY3RlZC50eHQKaW5kZXggOTAxYTBiMDk4Y2Uw
OGQ3ODA5ODU1MGU3YjYyNTI0ZjhhYTlkNTVmZi4uMGQwYmQzNDg3MWMyMzY1MDc5YjYzYTNmYjZj
NzJhN2M1NzFmZGZlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWJhZC1wb3J0LmFueS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWJhZC1wb3J0LmFueS1leHBlY3RlZC50eHQKQEAg
LTE2LDcgKzE2LDYgQEAgUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDM3IHNob3VsZCB0aHJvdyBU
eXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNDIgc2hvdWxkIHRocm93IFR5cGVF
cnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA0MyBzaG91bGQgdGhyb3cgVHlwZUVycm9y
LgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDUzIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCi1Q
QVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNjkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1Mg
UmVxdWVzdCBvbiBiYWQgcG9ydCA3NyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1
ZXN0IG9uIGJhZCBwb3J0IDc5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qg
b24gYmFkIHBvcnQgODcgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KQEAgLTM0LDEwICszMyw4IEBA
IFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxMTcgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBB
U1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxMTkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1Mg
UmVxdWVzdCBvbiBiYWQgcG9ydCAxMjMgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVx
dWVzdCBvbiBiYWQgcG9ydCAxMzUgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KLVBBU1MgUmVxdWVz
dCBvbiBiYWQgcG9ydCAxMzcgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBv
biBiYWQgcG9ydCAxMzkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBi
YWQgcG9ydCAxNDMgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KLVBBU1MgUmVxdWVzdCBvbiBiYWQg
cG9ydCAxNjEgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9y
dCAxNzkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAz
ODkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA0Mjcg
c2hvdWxkIHRocm93IFR5cGVFcnJvci4KQEAgLTUyLDcgKzQ5LDYgQEAgUEFTUyBSZXF1ZXN0IG9u
IGJhZCBwb3J0IDUzMSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJh
ZCBwb3J0IDUzMiBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBw
b3J0IDU0MCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0
IDU0OCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgotUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDU1
NCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDU1NiBz
aG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDU2MyBzaG91
bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDU4NyBzaG91bGQg
dGhyb3cgVHlwZUVycm9yLgpAQCAtNjAsMjEgKzU2LDE4IEBAIFBBU1MgUmVxdWVzdCBvbiBiYWQg
cG9ydCA2MDEgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9y
dCA2MzYgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA5
OTMgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA5OTUg
c2hvdWxkIHRocm93IFR5cGVFcnJvci4KLVBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAyMDQ5IHNo
b3VsZCB0aHJvdyBUeXBlRXJyb3IuCi1QQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgMTcxOSBzaG91
bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDE3MjAgc2hvdWxk
IHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxNzIzIHNob3VsZCB0
aHJvdyBUeXBlRXJyb3IuCitQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgMjA0OSBzaG91bGQgdGhy
b3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDM2NTkgc2hvdWxkIHRocm93
IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA0MDQ1IHNob3VsZCB0aHJvdyBU
eXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTA2MCBzaG91bGQgdGhyb3cgVHlw
ZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDUwNjEgc2hvdWxkIHRocm93IFR5cGVF
cnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2MDAwIHNob3VsZCB0aHJvdyBUeXBlRXJy
b3IuCi1QQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNjU2NiBzaG91bGQgdGhyb3cgVHlwZUVycm9y
LgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDY2NjUgc2hvdWxkIHRocm93IFR5cGVFcnJvci4K
IFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2NjY2IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQ
QVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNjY2NyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFT
UyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDY2Njggc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1Mg
UmVxdWVzdCBvbiBiYWQgcG9ydCA2NjY5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJl
cXVlc3Qgb24gYmFkIHBvcnQgNjY5NyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgotUEFTUyBSZXF1
ZXN0IG9uIGJhZCBwb3J0IDEwMDgwIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1iYWQtcG9ydC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtYmFkLXBvcnQu
YW55LmpzCmluZGV4IGYxNjc4OGQ4YWY0YzhhZDU3MjA5NTRjOWFiZTI5OGY4YzhiNWYxYWQuLjMx
YTA4ZWFhOTI5YmVhNDliNzVjZWU5NzFlMGY5MzQyMDQ1ZGNkOGYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1iYWQtcG9ydC5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWJhZC1wb3J0LmFueS5q
cwpAQCAtMjAsNyArMjAsNiBAQCB2YXIgQkxPQ0tFRF9QT1JUU19MSVNUID0gWwogICAgIDQyLCAg
IC8vIG5hbWUKICAgICA0MywgICAvLyBuaWNuYW1lCiAgICAgNTMsICAgLy8gZG9tYWluCi0gICAg
NjksICAgLy8gVEZUUAogICAgIDc3LCAgIC8vIHByaXYtcmpzCiAgICAgNzksICAgLy8gZmluZ2Vy
CiAgICAgODcsICAgLy8gdHR5bGluawpAQCAtMzgsMTAgKzM3LDggQEAgdmFyIEJMT0NLRURfUE9S
VFNfTElTVCA9IFsKICAgICAxMTksICAvLyBubnRwCiAgICAgMTIzLCAgLy8gbnRwCiAgICAgMTM1
LCAgLy8gbG9jLXNydiAvIGVwbWFwCi0gICAgMTM3LCAgLy8gbmV0YmlvcwogICAgIDEzOSwgIC8v
IG5ldGJpb3MKICAgICAxNDMsICAvLyBpbWFwMgotICAgIDE2MSwgIC8vIFNOTVAKICAgICAxNzks
ICAvLyBiZ3AKICAgICAzODksICAvLyBsZGFwCiAgICAgNDI3LCAgLy8gYWZwIChhbHRlcm5hdGUp
CkBAIC01Niw3ICs1Myw2IEBAIHZhciBCTE9DS0VEX1BPUlRTX0xJU1QgPSBbCiAgICAgNTMyLCAg
Ly8gbmV0bmV3cwogICAgIDU0MCwgIC8vIHV1Y3AKICAgICA1NDgsICAvLyBhZnAKLSAgICA1NTQs
ICAvLyBydHNwCiAgICAgNTU2LCAgLy8gcmVtb3RlZnMKICAgICA1NjMsICAvLyBubnRwK3NzbAog
ICAgIDU4NywgIC8vIHNtdHAgKG91dGdvaW5nKQpAQCAtNjQsMjMgKzYwLDIwIEBAIHZhciBCTE9D
S0VEX1BPUlRTX0xJU1QgPSBbCiAgICAgNjM2LCAgLy8gbGRhcCtzc2wKICAgICA5OTMsICAvLyBs
ZGFwK3NzbAogICAgIDk5NSwgIC8vIHBvcDMrc3NsCisgICAgMTcyMCwgLy8gaDMyM2hvc3RjYWxs
CisgICAgMTcyMywgLy8gcHB0cAogICAgIDIwNDksIC8vIG5mcwotICAgIDE3MTksIC8vIEgzMjMg
KFJBUykKLSAgICAxNzIwLCAvLyBIMzIzIChROTMxKQotICAgIDE3MjMsIC8vIEgzMjMgKEgyNDUp
CiAgICAgMzY1OSwgLy8gYXBwbGUtc2FzbAogICAgIDQwNDUsIC8vIGxvY2tkCiAgICAgNTA2MCwg
Ly8gc2lwCiAgICAgNTA2MSwgLy8gc2lwcwogICAgIDYwMDAsIC8vIHgxMQotICAgIDY1NjYsIC8v
IFNBTkUKICAgICA2NjY1LCAvLyBpcmMgKGFsdGVybmF0ZSkKICAgICA2NjY2LCAvLyBpcmMgKGFs
dGVybmF0ZSkKICAgICA2NjY3LCAvLyBpcmMgKGRlZmF1bHQpCiAgICAgNjY2OCwgLy8gaXJjIChh
bHRlcm5hdGUpCiAgICAgNjY2OSwgLy8gaXJjIChhbHRlcm5hdGUpCiAgICAgNjY5NywgLy8gaXJj
K3RscwotICAgIDEwMDgwLCAvLyBhbWFuZGEKIF07CiAKIEJMT0NLRURfUE9SVFNfTElTVC5tYXAo
ZnVuY3Rpb24oYSl7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtYmFkLXBvcnQuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtYmFkLXBvcnQuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKaW5kZXggOTAxYTBiMDk4Y2UwOGQ3ODA5ODU1MGU3YjYyNTI0ZjhhYTlkNTVmZi4uMGQw
YmQzNDg3MWMyMzY1MDc5YjYzYTNmYjZjNzJhN2M1NzFmZGZlNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWJhZC1wb3J0LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1iYWQtcG9ydC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTYsNyArMTYsNiBAQCBQQVNT
IFJlcXVlc3Qgb24gYmFkIHBvcnQgMzcgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVx
dWVzdCBvbiBiYWQgcG9ydCA0MiBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0
IG9uIGJhZCBwb3J0IDQzIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24g
YmFkIHBvcnQgNTMgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KLVBBU1MgUmVxdWVzdCBvbiBiYWQg
cG9ydCA2OSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0
IDc3IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNzkg
c2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA4NyBzaG91
bGQgdGhyb3cgVHlwZUVycm9yLgpAQCAtMzQsMTAgKzMzLDggQEAgUEFTUyBSZXF1ZXN0IG9uIGJh
ZCBwb3J0IDExNyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBw
b3J0IDExOSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0
IDEyMyBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDEz
NSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgotUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDEzNyBz
aG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDEzOSBzaG91
bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDE0MyBzaG91bGQg
dGhyb3cgVHlwZUVycm9yLgotUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDE2MSBzaG91bGQgdGhy
b3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDE3OSBzaG91bGQgdGhyb3cg
VHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDM4OSBzaG91bGQgdGhyb3cgVHlw
ZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDQyNyBzaG91bGQgdGhyb3cgVHlwZUVy
cm9yLgpAQCAtNTIsNyArNDksNiBAQCBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTMxIHNob3Vs
ZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTMyIHNob3VsZCB0
aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTQwIHNob3VsZCB0aHJv
dyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTQ4IHNob3VsZCB0aHJvdyBU
eXBlRXJyb3IuCi1QQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTU0IHNob3VsZCB0aHJvdyBUeXBl
RXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTU2IHNob3VsZCB0aHJvdyBUeXBlRXJy
b3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTYzIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
CiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgNTg3IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCkBA
IC02MCwyMSArNTYsMTggQEAgUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDYwMSBzaG91bGQgdGhy
b3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDYzNiBzaG91bGQgdGhyb3cg
VHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDk5MyBzaG91bGQgdGhyb3cgVHlw
ZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDk5NSBzaG91bGQgdGhyb3cgVHlwZUVy
cm9yLgotUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDIwNDkgc2hvdWxkIHRocm93IFR5cGVFcnJv
ci4KLVBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAxNzE5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
CiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgMTcyMCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgog
UEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0IDE3MjMgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KK1BB
U1MgUmVxdWVzdCBvbiBiYWQgcG9ydCAyMDQ5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNT
IFJlcXVlc3Qgb24gYmFkIHBvcnQgMzY1OSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBS
ZXF1ZXN0IG9uIGJhZCBwb3J0IDQwNDUgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVx
dWVzdCBvbiBiYWQgcG9ydCA1MDYwIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVl
c3Qgb24gYmFkIHBvcnQgNTA2MSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0
IG9uIGJhZCBwb3J0IDYwMDAgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KLVBBU1MgUmVxdWVzdCBv
biBiYWQgcG9ydCA2NTY2IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24g
YmFkIHBvcnQgNjY2NSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJh
ZCBwb3J0IDY2NjYgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQg
cG9ydCA2NjY3IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCiBQQVNTIFJlcXVlc3Qgb24gYmFkIHBv
cnQgNjY2OCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLgogUEFTUyBSZXF1ZXN0IG9uIGJhZCBwb3J0
IDY2Njkgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIFBBU1MgUmVxdWVzdCBvbiBiYWQgcG9ydCA2
Njk3IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuCi1QQVNTIFJlcXVlc3Qgb24gYmFkIHBvcnQgMTAw
ODAgc2hvdWxkIHRocm93IFR5cGVFcnJvci4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNh
Y2hlLWRlZmF1bHQtY29uZGl0aW9uYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hl
LWRlZmF1bHQtY29uZGl0aW9uYWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4ZDA5NGZjYzljNzY1NjczMjBiNWRiMzdjYjAwZWU5NzJjMzFlNmVkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1kZWZhdWx0LWNvbmRpdGlvbmFsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQy
ICswLDAgQEAKLQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1N
b2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlv
bmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFn
IGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0
aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91
dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIg
d2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUg
ImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2lu
ZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxh
cmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1
ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIg
KGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0
ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCBy
ZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Nb2Rp
ZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRo
IEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9k
ZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0
byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1Mg
UmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVh
ZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVz
aCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1N
b2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3
aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAi
ZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSBy
ZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0
byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENh
Y2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgKGZvbGxvd2lu
ZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxh
cmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQot
UEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhl
YWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMg
dHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3Bv
bnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0
Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJz
KSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBh
bmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGgg
YW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3Jl
IiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVs
dCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5
IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFT
UyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRl
ciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2gg
cmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9u
ZS1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExh
c3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVs
dCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSBy
ZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0
byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENh
Y2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgKGZv
bGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQg
c2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNw
b25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlm
aWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwg
aGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5k
IGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFu
IElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQg
YWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdp
dGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJk
ZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCi1Q
QVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2lu
Y2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1v
ZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1v
ZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJs
eSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVz
dENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIg
aXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5k
IGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFu
IElmLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwg
aGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5k
IHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFu
IElmLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwg
aGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9k
aWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9k
ZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFk
ZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRo
IEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9k
ZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFk
ZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRo
IExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVm
YXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0
byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENh
Y2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2lt
aWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25z
ZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFk
ZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNo
IHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1h
dGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1N
b2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBt
b2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQg
YWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdp
dGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBt
b2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQg
YWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdp
dGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJk
ZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0
IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8t
c3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJk
ZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0
IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8t
c3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVz
dENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQg
c2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFT
UyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgaXMg
dHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0
YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElm
LVJhbmdlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRh
ZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdp
dGggYW4gSWYtUmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIg
d2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC1jb25kaXRpb25hbC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ZDA5NGZjYzljNzY1NjczMjBiNWRiMzdjYjAwZWU5NzJjMzFlNmVkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQyIEBACisKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0
IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1
ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAi
bm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hl
ICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dp
bmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2lu
Y2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJz
KSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2gg
cmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9k
aWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25h
bCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1N
b2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBt
b2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5
IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0
Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMg
dHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0
YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElm
LU1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUi
IHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0
IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxh
cmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQor
UEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhl
YWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMg
dHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3Bv
bnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0
Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJz
KSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBh
bmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGgg
YW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRp
dGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBF
dGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUg
d2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0
IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3
aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAi
ZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2lt
aWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBS
ZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciBp
cyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQg
c3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4g
SWYtTm9uZS1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3
aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIg
bW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRv
ICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBS
ZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhl
YWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMg
dHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3Bv
bnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZp
ZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBo
ZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2Rp
ZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2Rl
IHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qg
d2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1z
dG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRl
ZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5n
IGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFy
bHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQ
QVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2lu
Y2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFu
ZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8t
c3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVz
dENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIg
aXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJl
c3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9k
aWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0
aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRl
ZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qg
d2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1z
dG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRl
ZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qg
d2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1z
dG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0
Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBh
IHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5
IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0
Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBh
IHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5
IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFT
UyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgaXMg
dHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3Bv
bnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhl
YWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmll
ZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdp
dGggYW4gSWYtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIg
d2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQi
IG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5v
LXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVl
c3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciAoZm9sbG93aW5n
IGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFy
bHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVl
c3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciAoZm9sbG93aW5n
IGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFy
bHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQ
QVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciAo
Zm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQ
QVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciAo
Zm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJl
c3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdl
IGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQg
c3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4g
SWYtUmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBM
YXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1
bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8g
Im5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNo
ZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC1jb25kaXRpb25hbC5hbnkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55
Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktp
dCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRl
ZmF1bHQtY29uZGl0aW9uYWwuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29u
ZGl0aW9uYWwuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1YjIwMDFjYzhmNmIwMjM3MmY0YzFmMTMwNmFi
NzdkODM2NTQxNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVs
dC1jb25kaXRpb25hbC5hbnkuanMKQEAgLTAsMCArMSwxNzAgQEAKKy8vIE1FVEE6IGdsb2JhbD13
aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGNhY2hlIC0gZGVmYXVsdCB3aXRo
IGNvbmRpdGlvbmFsIHJlcXVlc3RzCisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKKy8vIE1FVEE6IHNj
cmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1p
bmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0PXJlcXVlc3QtY2FjaGUuanMKKwordmFyIHRlc3Rz
ID0gWworICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFu
IElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFk
ZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCisg
ICAgc3RhdGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1
bHQiXSwKKyAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwgeyJJZi1Nb2RpZmllZC1TaW5jZSI6IG5v
dy50b0dNVFN0cmluZygpfV0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFs
c2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVd
LAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRo
IGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0
IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIics
CisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRl
ZmF1bHQiXSwKKyAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwgeyJJZi1Nb2RpZmllZC1TaW5jZSI6
IG5vdy50b0dNVFN0cmluZygpfV0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBb
ZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRy
dWVdLAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3
aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAi
bm8tc3RvcmUiJywKKyAgICBzdGF0ZTogInN0YWxlIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRl
ZmF1bHQiLCAiZGVmYXVsdCJdLAorICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYtTW9kaWZpZWQt
U2luY2UiOiBub3cudG9HTVRTdHJpbmcoKX0sIHt9XSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9u
X2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6
IFt0cnVlLCBmYWxzZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZh
dWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2lt
aWxhcmx5IHRvICJuby1zdG9yZSInLAorICAgIHN0YXRlOiAiZnJlc2giLAorICAgIHJlcXVlc3Rf
Y2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJ
Zi1Nb2RpZmllZC1TaW5jZSI6IG5vdy50b0dNVFN0cmluZygpfSwge31dLAorICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2Fj
aGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0
Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciAoZm9sbG93
aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1p
bGFybHkgdG8gIm5vLXN0b3JlIicsCisgICAgc3RhdGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9j
YWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKKyAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwg
eyJJZi1Ob25lLU1hdGNoIjogJyJmb28iJ31dLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVh
ZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2Zh
bHNlLCB0cnVlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQi
IG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3
aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0
b3JlIicsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0
IiwgImRlZmF1bHQiXSwKKyAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwgeyJJZi1Ob25lLU1hdGNo
IjogJyJmb28iJ31dLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBm
YWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAg
fSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJ
Zi1Ob25lLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywK
KyAgICBzdGF0ZTogInN0YWxlIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVm
YXVsdCJdLAorICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYtTm9uZS1NYXRjaCI6ICciZm9vIid9
LCB7fV0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwK
KyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1ZSwgZmFsc2VdLAorICB9LAorICB7
CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUt
TWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAorICAgIHN0
YXRlOiAiZnJlc2giLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0s
CisgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJZi1Ob25lLU1hdGNoIjogJyJmb28iJ30sIHt9XSwK
KyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4
cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCisgIH0sCisgIHsKKyAgICBu
YW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1T
aW5jZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRl
cnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAorICAgIHN0YXRlOiAic3Rh
bGUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisgICAgcmVx
dWVzdF9oZWFkZXJzOiBbe30sIHsiSWYtVW5tb2RpZmllZC1TaW5jZSI6IG5vdy50b0dNVFN0cmlu
ZygpfV0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwK
KyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAorICB9LAorICB7
CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9k
aWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25h
bCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKKyAgICBzdGF0
ZTogImZyZXNoIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAor
ICAgIHJlcXVlc3RfaGVhZGVyczogW3t9LCB7IklmLVVubW9kaWZpZWQtU2luY2UiOiBub3cudG9H
TVRTdHJpbmcoKX1dLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBm
YWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAg
fSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJ
Zi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3Rv
cmUiJywKKyAgICBzdGF0ZTogInN0YWxlIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQi
LCAiZGVmYXVsdCJdLAorICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYtVW5tb2RpZmllZC1TaW5j
ZSI6IG5vdy50b0dNVFN0cmluZygpfSwge31dLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVh
ZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3Ry
dWUsIGZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQi
IG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiJywKKyAgICBzdGF0ZTogImZyZXNoIiwKKyAgICByZXF1ZXN0X2Nh
Y2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAorICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYt
VW5tb2RpZmllZC1TaW5jZSI6IG5vdy50b0dNVFN0cmluZygpfSwge31dLAorICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2Fj
aGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0
Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBh
IHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5
IHRvICJuby1zdG9yZSInLAorICAgIHN0YXRlOiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2FjaGU6
IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisgICAgcmVxdWVzdF9oZWFkZXJzOiBbe30sIHsiSWYt
TWF0Y2giOiAnImZvbyInfV0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFs
c2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVd
LAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRo
IGFuIElmLU1hdGNoIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9u
YWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCisgICAgc3Rh
dGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwK
KyAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwgeyJJZi1NYXRjaCI6ICciZm9vIid9XSwKKyAgICBl
eHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVk
X25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAn
UmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIGlzIHRy
ZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAorICAgIHN0YXRlOiAic3RhbGUiLAorICAg
IHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisgICAgcmVxdWVzdF9oZWFk
ZXJzOiBbeyJJZi1NYXRjaCI6ICciZm9vIid9LCB7fV0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlv
bl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJz
OiBbdHJ1ZSwgZmFsc2VdLAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVm
YXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0
byAibm8tc3RvcmUiJywKKyAgICBzdGF0ZTogImZyZXNoIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBb
ImRlZmF1bHQiLCAiZGVmYXVsdCJdLAorICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYtTWF0Y2gi
OiAnImZvbyInfSwge31dLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNl
LCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwK
KyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1SYW5nZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFs
IGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAorICAgIHN0YXRl
OiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCisg
ICAgcmVxdWVzdF9oZWFkZXJzOiBbe30sIHsiSWYtUmFuZ2UiOiAnImZvbyInfV0sCisgICAgZXhw
ZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9u
b19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAorICB9LAorICB7CisgICAgbmFtZTogJ1Jl
cXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciAoZm9sbG93
aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1p
bGFybHkgdG8gIm5vLXN0b3JlIicsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9j
YWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKKyAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwg
eyJJZi1SYW5nZSI6ICciZm9vIid9XSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6
IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwg
dHJ1ZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2Rl
IHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9y
ZSInLAorICAgIHN0YXRlOiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIs
ICJkZWZhdWx0Il0sCisgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJZi1SYW5nZSI6ICciZm9vIid9
LCB7fV0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwK
KyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1ZSwgZmFsc2VdLAorICB9LAorICB7
CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdl
IGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKKyAgICBzdGF0ZTog
ImZyZXNoIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAorICAg
IHJlcXVlc3RfaGVhZGVyczogW3siSWYtUmFuZ2UiOiAnImZvbyInfSwge31dLAorICAgIGV4cGVj
dGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9f
Y2FjaGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwKKyAgfSwKK107CitydW5fdGVzdHModGVzdHMp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55
Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC1jb25kaXRp
b25hbC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDA5NGZjYzljNzY1Njcz
MjBiNWRiMzdjYjAwZWU5NzJjMzFlNmVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0MiBAQAorCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElm
LU1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0
aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0
YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3
aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRo
b3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3Jl
IiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNo
ZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRlciAoZm9sbG93
aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1p
bGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJl
cXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNlIGhlYWRl
ciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJl
YXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNo
IHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1v
ZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdp
dGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBt
b2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5
IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFT
UyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Nb2RpZmllZC1TaW5jZSBo
ZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIGZy
ZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElm
LU1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUi
IHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hl
ICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgKGZvbGxvd2luZyBh
IHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5
IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0
Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciAoZm9sbG93
aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRlZCBzaW1p
bGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNl
CitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2gg
aGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBp
cyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVz
cG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1N
YXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRl
cnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVk
IGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0
aCBhbiBJZi1Ob25lLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3Rv
cmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZh
dWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFy
bHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQ
QVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVh
ZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVz
aCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1O
b25lLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGgg
TGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZh
dWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2luZyBh
IHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5
IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0
Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciAo
Zm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJl
c3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9k
aWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25h
bCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBh
bmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGgg
YW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91
dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIg
d2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUg
ImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRlciBpcyB0cmVh
dGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtVW5tb2RpZmllZC1T
aW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3Qt
TW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIg
bW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxh
cmx5IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1
ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1Vbm1vZGlmaWVkLVNpbmNlIGhlYWRl
ciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBh
bmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGgg
YW4gSWYtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25h
bCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBh
bmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGgg
YW4gSWYtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25h
bCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1N
b2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBt
b2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQg
YWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdp
dGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBt
b2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQg
YWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdp
dGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJk
ZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5
IHRvICJuby1zdG9yZSIgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0
Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1NYXRjaCBoZWFkZXIgaXMgdHJlYXRlZCBz
aW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3Bv
bnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhl
YWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggRXRhZyBhbmQgZnJl
c2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYt
TWF0Y2ggaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBMYXN0
LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQi
IG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91
dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIg
d2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQi
IG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91
dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIg
d2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUg
ImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVl
c3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJu
by1zdG9yZSIgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUg
ImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVl
c3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJu
by1zdG9yZSIgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1
ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIiB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQ
QVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciBp
cyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQg
c3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4g
SWYtUmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSIgd2l0aCBF
dGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUg
d2l0aCBhbiBJZi1SYW5nZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3Jl
IiB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LWNvbmRpdGlvbmFsLmFueS53b3JrZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LWNvbmRpdGlvbmFsLmFueS53b3JrZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55Lndv
cmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBX
ZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1kZWZhdWx0LWNvbmRpdGlvbmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC1j
b25kaXRpb25hbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNDViMzAyNjJk
YWJhMDBlMzMxOGQ3OGI5YzM2MTdhOGJkOTRmM2JjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LWNvbmRpdGlv
bmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxODEgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+
Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRs
ZT5SZXF1ZXN0IGNhY2hlIC0gZGVmYXVsdCB3aXRoIGNvbmRpdGlvbmFsIHJlcXVlc3RzPC90aXRs
ZT4KLSAgICA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KLSAgICA8bWV0YSBu
YW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+
Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSJyZXF1ZXN0LWNhY2hlLmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9k
eT4KLSAgICA8c2NyaXB0PgotICAgIHZhciB0ZXN0cyA9IFsKLSAgICAgIHsKLSAgICAgICAgbmFt
ZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1vZGlmaWVkLVNpbmNl
IGhlYWRlciAoZm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykg
aXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCi0gICAgICAgIHN0YXRlOiAic3Rh
bGUiLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAotICAg
ICAgICByZXF1ZXN0X2hlYWRlcnM6IFt7fSwgeyJJZi1Nb2RpZmllZC1TaW5jZSI6IG5vdy50b0dN
VFN0cmluZygpfV0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNl
LCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1
ZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZh
dWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSBy
ZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0
byAibm8tc3RvcmUiJywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHJlcXVlc3Rf
Y2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVhZGVyczog
W3t9LCB7IklmLU1vZGlmaWVkLVNpbmNlIjogbm93LnRvR01UU3RyaW5nKCl9XSwKLSAgICAgICAg
ZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgICAgZXhw
ZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAgIH0sCi0gICAgICB7
Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1N
b2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIics
Ci0gICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1
bHQiLCAiZGVmYXVsdCJdLAotICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFt7IklmLU1vZGlmaWVk
LVNpbmNlIjogbm93LnRvR01UU3RyaW5nKCl9LCB7fV0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlk
YXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hl
X2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1l
OiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTW9kaWZpZWQtU2luY2Ug
aGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAotICAgICAgICBzdGF0
ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQi
XSwKLSAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJZi1Nb2RpZmllZC1TaW5jZSI6IG5vdy50
b0dNVFN0cmluZygpfSwge31dLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6
IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1
ZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNo
ZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU5vbmUtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcg
YSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJs
eSB0byAibm8tc3RvcmUiJywKLSAgICAgICAgc3RhdGU6ICJzdGFsZSIsCi0gICAgICAgIHJlcXVl
c3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVhZGVy
czogW3t9LCB7IklmLU5vbmUtTWF0Y2giOiAnImZvbyInfV0sCi0gICAgICAgIGV4cGVjdGVkX3Zh
bGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2Nh
Y2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBu
YW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBo
ZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlz
IHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAotICAgICAgICBzdGF0ZTogImZyZXNo
IiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAg
ICAgcmVxdWVzdF9oZWFkZXJzOiBbe30sIHsiSWYtTm9uZS1NYXRjaCI6ICciZm9vIid9XSwKLSAg
ICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAg
ICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAgIH0sCi0g
ICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBh
biBJZi1Ob25lLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUi
JywKLSAgICAgICAgc3RhdGU6ICJzdGFsZSIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVm
YXVsdCIsICJkZWZhdWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYtTm9uZS1N
YXRjaCI6ICciZm9vIid9LCB7fV0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVy
czogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0
cnVlLCBmYWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENh
Y2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYtTm9uZS1NYXRjaCBoZWFkZXIgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCi0gICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAg
ICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAotICAgICAgICByZXF1
ZXN0X2hlYWRlcnM6IFt7IklmLU5vbmUtTWF0Y2giOiAnImZvbyInfSwge31dLAotICAgICAgICBl
eHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBl
Y3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1ZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICAgIHsK
LSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVu
bW9kaWZpZWQtU2luY2UgaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRp
b25hbCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKLSAgICAg
ICAgc3RhdGU6ICJzdGFsZSIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJk
ZWZhdWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVhZGVyczogW3t9LCB7IklmLVVubW9kaWZpZWQt
U2luY2UiOiBub3cudG9HTVRTdHJpbmcoKX1dLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9u
X2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFk
ZXJzOiBbZmFsc2UsIHRydWVdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1Jl
cXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVh
ZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25hbCBoZWFkZXJzKSBpcyB0
cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIs
Ci0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCi0gICAgICAg
IHJlcXVlc3RfaGVhZGVyczogW3t9LCB7IklmLVVubW9kaWZpZWQtU2luY2UiOiBub3cudG9HTVRT
dHJpbmcoKX1dLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwg
ZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVd
LAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVs
dCIgbW9kZSB3aXRoIGFuIElmLVVubW9kaWZpZWQtU2luY2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2lt
aWxhcmx5IHRvICJuby1zdG9yZSInLAotICAgICAgICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAg
cmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAgICAgcmVxdWVzdF9o
ZWFkZXJzOiBbeyJJZi1Vbm1vZGlmaWVkLVNpbmNlIjogbm93LnRvR01UU3RyaW5nKCl9LCB7fV0s
Ci0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0g
ICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCi0gICAgICB9
LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdp
dGggYW4gSWYtVW5tb2RpZmllZC1TaW5jZSBoZWFkZXIgaXMgdHJlYXRlZCBzaW1pbGFybHkgdG8g
Im5vLXN0b3JlIicsCi0gICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAgICAgICByZXF1ZXN0X2Nh
Y2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAotICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFt7
IklmLVVubW9kaWZpZWQtU2luY2UiOiBub3cudG9HTVRTdHJpbmcoKX0sIHt9XSwKLSAgICAgICAg
ZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgICAgZXhw
ZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwKLSAgICAgIH0sCi0gICAgICB7
Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1N
YXRjaCBoZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRl
cnMpIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAotICAgICAgICBzdGF0ZTog
InN0YWxlIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwK
LSAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbe30sIHsiSWYtTWF0Y2giOiAnImZvbyInfV0sCi0g
ICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAg
ICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCi0gICAgICB9LAot
ICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGgg
YW4gSWYtTWF0Y2ggaGVhZGVyIChmb2xsb3dpbmcgYSByZXF1ZXN0IHdpdGhvdXQgYWRkaXRpb25h
bCBoZWFkZXJzKSBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3RvcmUiJywKLSAgICAgICAg
c3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZh
dWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVhZGVyczogW3t9LCB7IklmLU1hdGNoIjogJyJmb28i
J31dLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2Vd
LAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAotICAg
ICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9k
ZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWlsYXJseSB0byAibm8tc3Rv
cmUiJywKLSAgICAgICAgc3RhdGU6ICJzdGFsZSIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsi
ZGVmYXVsdCIsICJkZWZhdWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVhZGVyczogW3siSWYtTWF0
Y2giOiAnImZvbyInfSwge31dLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6
IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1
ZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNo
ZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLU1hdGNoIGhlYWRlciBpcyB0cmVhdGVkIHNpbWls
YXJseSB0byAibm8tc3RvcmUiJywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHJl
cXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0Il0sCi0gICAgICAgIHJlcXVlc3RfaGVh
ZGVyczogW3siSWYtTWF0Y2giOiAnImZvbyInfSwge31dLAotICAgICAgICBleHBlY3RlZF92YWxp
ZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNo
ZV9oZWFkZXJzOiBbdHJ1ZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFt
ZTogJ1JlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSB3aXRoIGFuIElmLVJhbmdlIGhlYWRlciAo
Zm9sbG93aW5nIGEgcmVxdWVzdCB3aXRob3V0IGFkZGl0aW9uYWwgaGVhZGVycykgaXMgdHJlYXRl
ZCBzaW1pbGFybHkgdG8gIm5vLXN0b3JlIicsCi0gICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAg
ICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAotICAgICAgICByZXF1
ZXN0X2hlYWRlcnM6IFt7fSwgeyJJZi1SYW5nZSI6ICciZm9vIid9XSwKLSAgICAgICAgZXhwZWN0
ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRf
bm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAg
ICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgd2l0aCBhbiBJZi1SYW5nZSBo
ZWFkZXIgKGZvbGxvd2luZyBhIHJlcXVlc3Qgd2l0aG91dCBhZGRpdGlvbmFsIGhlYWRlcnMpIGlz
IHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAotICAgICAgICBzdGF0ZTogImZyZXNo
IiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAg
ICAgcmVxdWVzdF9oZWFkZXJzOiBbe30sIHsiSWYtUmFuZ2UiOiAnImZvbyInfV0sCi0gICAgICAg
IGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4
cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCi0gICAgICB9LAotICAgICAg
ewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIHdpdGggYW4gSWYt
UmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1zdG9yZSInLAotICAgICAg
ICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRl
ZmF1bHQiXSwKLSAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJZi1SYW5nZSI6ICciZm9vIid9
LCB7fV0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxz
ZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCi0g
ICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBt
b2RlIHdpdGggYW4gSWYtUmFuZ2UgaGVhZGVyIGlzIHRyZWF0ZWQgc2ltaWxhcmx5IHRvICJuby1z
dG9yZSInLAotICAgICAgICBzdGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTog
WyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbeyJJZi1S
YW5nZSI6ICciZm9vIid9LCB7fV0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVy
czogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0
cnVlLCBmYWxzZV0sCi0gICAgICB9LAotICAgIF07Ci0gICAgcnVuX3Rlc3RzKHRlc3RzKTsKLSAg
ICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNhY2hlLWRlZmF1bHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MDQxZDc0ZWM4ZGJi
MTNhMzI3M2U5YTk2ZmU0Y2ExNzFjYzQ1NmYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRl
ZmF1bHQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVu
dCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBmb3Igc3RhbGUgcmVzcG9uc2VzIHdpdGggRXRhZyBh
bmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIGNoZWNr
cyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhl
IG5ldHdvcmsgZm9yIHN0YWxlIHJlc3BvbnNlcyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxl
IHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSBjaGVja3MgdGhlIGNh
Y2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZHMgZ29pbmcgdG8gdGhl
IG5ldHdvcmsgaWYgYSBmcmVzaCByZXNwb25zZSBleGlzdHMgd2l0aCBFdGFnIGFuZCBmcmVzaCBy
ZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgY2hlY2tzIHRoZSBjYWNo
ZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWRzIGdvaW5nIHRvIHRoZSBu
ZXR3b3JrIGlmIGEgZnJlc2ggcmVzcG9uc2UgZXhpc3RzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQg
ZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVzcG9uc2VzIHdpdGggdGhlICJDYWNoZS1Db250cm9sOiBu
by1zdG9yZSIgaGVhZGVyIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5k
IHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlc3BvbnNlcyB3aXRoIHRoZSAiQ2FjaGUtQ29udHJvbDog
bm8tc3RvcmUiIGhlYWRlciBhcmUgbm90IHN0b3JlZCBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1v
ZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXNwb25zZXMgd2l0aCB0aGUgIkNhY2hl
LUNvbnRyb2w6IG5vLXN0b3JlIiBoZWFkZXIgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIHdp
dGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVzcG9uc2VzIHdpdGggdGhlICJDYWNo
ZS1Db250cm9sOiBuby1zdG9yZSIgaGVhZGVyIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNoZSB3
aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jYWNoZS1kZWZhdWx0LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2Fj
aGUtZGVmYXVsdC5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwNDFkNzRlYzhkYmIxM2Ez
MjczZTlhOTZmZTRjYTE3MWNjNDU2ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y2FjaGUtZGVmYXVsdC5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworUEFTUyBS
ZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNs
eSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBmb3Igc3RhbGUgcmVzcG9u
c2VzIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJkZWZh
dWx0IiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQg
YW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgZm9yIHN0YWxlIHJlc3BvbnNlcyB3aXRoIExhc3QtTW9k
aWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9k
ZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9p
ZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgYSBmcmVzaCByZXNwb25zZSBleGlzdHMgd2l0aCBF
dGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUg
Y2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWRz
IGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGEgZnJlc2ggcmVzcG9uc2UgZXhpc3RzIHdpdGggTGFz
dC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVzcG9uc2VzIHdpdGggdGhlICJD
YWNoZS1Db250cm9sOiBuby1zdG9yZSIgaGVhZGVyIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNo
ZSB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlc3BvbnNlcyB3aXRoIHRoZSAi
Q2FjaGUtQ29udHJvbDogbm8tc3RvcmUiIGhlYWRlciBhcmUgbm90IHN0b3JlZCBpbiB0aGUgY2Fj
aGUgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXNwb25zZXMg
d2l0aCB0aGUgIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlIiBoZWFkZXIgYXJlIG5vdCBzdG9yZWQg
aW4gdGhlIGNhY2hlIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVzcG9uc2Vz
IHdpdGggdGhlICJDYWNoZS1Db250cm9sOiBuby1zdG9yZSIgaGVhZGVyIGFyZSBub3Qgc3RvcmVk
IGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0LmFueS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWNhY2hlLWRlZmF1bHQuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1
ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1j
YWNoZS1kZWZhdWx0LmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRl
ZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jYWNoZS1kZWZhdWx0LmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0
LmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kZmE4MzY5YzlhMzcxOThjZWVjMzMzZTdkM2YxNzQ4ZGFhODE1
MDU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuYW55Lmpz
CkBAIC0wLDAgKzEsMzkgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRB
OiB0aXRsZT1SZXF1ZXN0IGNhY2hlIC0gZGVmYXVsdAorLy8gTUVUQTogc2NyaXB0PS9jb21tb24v
dXRpbHMuanMKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzCisv
LyBNRVRBOiBzY3JpcHQ9cmVxdWVzdC1jYWNoZS5qcworCit2YXIgdGVzdHMgPSBbCisgIHsKKyAg
ICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9y
IHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgZm9yIHN0
YWxlIHJlc3BvbnNlcycsCisgICAgc3RhdGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNoZTog
WyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6
IFtmYWxzZSwgdHJ1ZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCBm
YWxzZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2Rl
IGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lk
cyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBhIGZyZXNoIHJlc3BvbnNlIGV4aXN0cycsCisgICAg
c3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQi
XSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZV0sCisgICAgZXhwZWN0
ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXNw
b25zZXMgd2l0aCB0aGUgIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlIiBoZWFkZXIgYXJlIG5vdCBz
dG9yZWQgaW4gdGhlIGNhY2hlJywKKyAgICBzdGF0ZTogInN0YWxlIiwKKyAgICBjYWNoZV9jb250
cm9sOiAibm8tc3RvcmUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJkZWZhdWx0
Il0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAg
ICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgfSwKKyAgewor
ICAgIG5hbWU6ICdSZXNwb25zZXMgd2l0aCB0aGUgIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlIiBo
ZWFkZXIgYXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlJywKKyAgICBzdGF0ZTogImZyZXNoIiwK
KyAgICBjYWNoZV9jb250cm9sOiAibm8tc3RvcmUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVm
YXVsdCIsICJkZWZhdWx0Il0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFs
c2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNl
XSwKKyAgfSwKK107CitydW5fdGVzdHModGVzdHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNhY2hlLWRlZmF1bHQuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2Fj
aGUtZGVmYXVsdC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDQxZDc0ZWM4
ZGJiMTNhMzI3M2U5YTk2ZmU0Y2ExNzFjYzQ1NmYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWNhY2hlLWRlZmF1bHQuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorCitQQVNTIFJlcXVlc3RDYWNoZSAiZGVmYXVsdCIgbW9kZSBjaGVja3MgdGhlIGNhY2hl
IGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGZv
ciBzdGFsZSByZXNwb25zZXMgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1
ZXN0Q2FjaGUgImRlZmF1bHQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBj
YWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBmb3Igc3RhbGUgcmVzcG9uc2Vz
IHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hl
ICJkZWZhdWx0IiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNv
bnRlbnQgYW5kIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBhIGZyZXNoIHJlc3BvbnNl
IGV4aXN0cyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAi
ZGVmYXVsdCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250
ZW50IGFuZCBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgYSBmcmVzaCByZXNwb25zZSBl
eGlzdHMgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXNwb25z
ZXMgd2l0aCB0aGUgIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlIiBoZWFkZXIgYXJlIG5vdCBzdG9y
ZWQgaW4gdGhlIGNhY2hlIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVzcG9u
c2VzIHdpdGggdGhlICJDYWNoZS1Db250cm9sOiBuby1zdG9yZSIgaGVhZGVyIGFyZSBub3Qgc3Rv
cmVkIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQ
QVNTIFJlc3BvbnNlcyB3aXRoIHRoZSAiQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUiIGhlYWRlciBh
cmUgbm90IHN0b3JlZCBpbiB0aGUgY2FjaGUgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQor
UEFTUyBSZXNwb25zZXMgd2l0aCB0aGUgIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlIiBoZWFkZXIg
YXJlIG5vdCBzdG9yZWQgaW4gdGhlIGNhY2hlIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2gg
cmVzcG9uc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuYW55Lndv
cmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQuYW55Lndvcmtlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC5hbnkud29ya2VyLmh0bWwK
QEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0
IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWRlZmF1bHQu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1kZWZhdWx0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGMwZTM3YjJkMGM5YjYzODJkZmM3MmIxYzZiOTAxOTdiM2U1ZTAxNWQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNhY2hlLWRlZmF1bHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLTwhZG9j
dHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
LSAgICA8dGl0bGU+UmVxdWVzdCBjYWNoZSAtIGRlZmF1bHQ8L3RpdGxlPgotICAgIDxtZXRhIG5h
bWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4K
LSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9InJlcXVlc3QtY2FjaGUuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5
PgotICAgIDxzY3JpcHQ+Ci0gICAgdmFyIHRlc3RzID0gWwotICAgICAgewotICAgICAgICBuYW1l
OiAnUmVxdWVzdENhY2hlICJkZWZhdWx0IiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZp
b3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgZm9yIHN0YWxlIHJl
c3BvbnNlcycsCi0gICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAgICByZXF1ZXN0X2NhY2hl
OiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hl
YWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6
IFtmYWxzZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVl
c3RDYWNoZSAiZGVmYXVsdCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNh
Y2hlZCBjb250ZW50IGFuZCBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgYSBmcmVzaCBy
ZXNwb25zZSBleGlzdHMnLAotICAgICAgICBzdGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVz
dF9jYWNoZTogWyJkZWZhdWx0IiwgImRlZmF1bHQiXSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRh
dGlvbl9oZWFkZXJzOiBbZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJz
OiBbZmFsc2VdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1Jlc3BvbnNlcyB3
aXRoIHRoZSAiQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUiIGhlYWRlciBhcmUgbm90IHN0b3JlZCBp
biB0aGUgY2FjaGUnLAotICAgICAgICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAgY2FjaGVfY29u
dHJvbDogIm5vLXN0b3JlIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImRl
ZmF1bHQiXSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZh
bHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0s
Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVzcG9uc2VzIHdpdGggdGhlICJD
YWNoZS1Db250cm9sOiBuby1zdG9yZSIgaGVhZGVyIGFyZSBub3Qgc3RvcmVkIGluIHRoZSBjYWNo
ZScsCi0gICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAgICAgICBjYWNoZV9jb250cm9sOiAibm8t
c3RvcmUiLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZGVmYXVsdCJdLAot
ICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAg
ICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgIH0s
Ci0gICAgXTsKLSAgICBydW5fdGVzdHModGVzdHMpOwotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZm9yY2UtY2FjaGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTNhMjUzYmY2MzViNmMxOGY2OGI2NjQzM2Y5
Mzk5MDZjZGQwMjM2OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZm9yY2UtY2FjaGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTggKzAsMCBAQAotCi1QQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUi
IG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQg
YXZvaWQgcmV2YWxpZGF0aW9uIGZvciBzdGFsZSByZXNwb25zZXMgd2l0aCBFdGFnIGFuZCBzdGFs
ZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0
aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkIHJldmFsaWRh
dGlvbiBmb3Igc3RhbGUgcmVzcG9uc2VzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVz
cG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNh
Y2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZCByZXZhbGlkYXRpb24g
Zm9yIGZyZXNoIHJlc3BvbnNlcyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJl
cXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlv
dXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWQgcmV2YWxpZGF0aW9uIGZvciBmcmVzaCByZXNw
b25zZXMgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0
Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkg
Y2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9u
c2UgaXMgbm90IGZvdW5kIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVz
dENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5
IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3Bv
bnNlIGlzIG5vdCBmb3VuZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1Q
QVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3Ig
cHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNh
Y2hlZCByZXNwb25zZSBpcyBub3QgZm91bmQgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQot
UEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9y
IHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBj
YWNoZWQgcmVzcG9uc2UgaXMgbm90IGZvdW5kIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2gg
cmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhl
IGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3
b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIHdvdWxkIHZhcnkgd2l0aCBFdGFnIGFuZCBzdGFsZSBy
ZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUg
Y2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdv
cmsgaWYgYSBjYWNoZWQgcmVzcG9uc2Ugd291bGQgdmFyeSB3aXRoIExhc3QtTW9kaWZpZWQgYW5k
IHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hl
Y2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0
aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSB3b3VsZCB2YXJ5IHdpdGggRXRhZyBhbmQg
ZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVj
a3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRo
ZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIHdvdWxkIHZhcnkgd2l0aCBMYXN0LU1vZGlm
aWVkIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBz
dG9yZXMgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBpZiBpdCBnb2VzIHRvIHRoZSBuZXR3b3Jr
IHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1j
YWNoZSIgc3RvcmVzIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgaWYgaXQgZ29lcyB0byB0aGUg
bmV0d29yayB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVl
c3RDYWNoZSAiZm9yY2UtY2FjaGUiIHN0b3JlcyB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGlm
IGl0IGdvZXMgdG8gdGhlIG5ldHdvcmsgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQotUEFT
UyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBzdG9yZXMgdGhlIHJlc3BvbnNlIGluIHRoZSBj
YWNoZSBpZiBpdCBnb2VzIHRvIHRoZSBuZXR3b3JrIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJl
c2ggcmVzcG9uc2UKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hl
LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZm9yY2UtY2FjaGUuYW55LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2EyNTNiZjYzNWI2YzE4ZjY4YjY2NDMzZjkzOTkwNmNk
ZDAyMzY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hl
LmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorCitQQVNTIFJlcXVlc3RDYWNoZSAi
Zm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQg
Y29udGVudCBhbmQgYXZvaWQgcmV2YWxpZGF0aW9uIGZvciBzdGFsZSByZXNwb25zZXMgd2l0aCBF
dGFnIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBt
b2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2
b2lkIHJldmFsaWRhdGlvbiBmb3Igc3RhbGUgcmVzcG9uc2VzIHdpdGggTGFzdC1Nb2RpZmllZCBh
bmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBj
aGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZCBy
ZXZhbGlkYXRpb24gZm9yIGZyZXNoIHJlc3BvbnNlcyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3Bv
bnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNo
ZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWQgcmV2YWxpZGF0aW9uIGZv
ciBmcmVzaCByZXNwb25zZXMgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQor
UEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9y
IHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBj
YWNoZWQgcmVzcG9uc2UgaXMgbm90IGZvdW5kIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UK
K1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZv
ciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEg
Y2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3VuZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxl
IHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRo
ZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0
d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSBpcyBub3QgZm91bmQgd2l0aCBFdGFnIGFuZCBmcmVz
aCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0
aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5l
dHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2UgaXMgbm90IGZvdW5kIHdpdGggTGFzdC1Nb2RpZmll
ZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9k
ZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2Vz
IHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIHdvdWxkIHZhcnkgd2l0aCBFdGFn
IGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2Rl
IGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMg
dG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2Ugd291bGQgdmFyeSB3aXRoIExhc3Qt
TW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2Fj
aGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBh
bmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSB3b3VsZCB2YXJ5IHdp
dGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNo
ZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFu
ZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIHdvdWxkIHZhcnkgd2l0
aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZv
cmNlLWNhY2hlIiBzdG9yZXMgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBpZiBpdCBnb2VzIHRv
IHRoZSBuZXR3b3JrIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENh
Y2hlICJmb3JjZS1jYWNoZSIgc3RvcmVzIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgaWYgaXQg
Z29lcyB0byB0aGUgbmV0d29yayB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNl
CitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIHN0b3JlcyB0aGUgcmVzcG9uc2UgaW4g
dGhlIGNhY2hlIGlmIGl0IGdvZXMgdG8gdGhlIG5ldHdvcmsgd2l0aCBFdGFnIGFuZCBmcmVzaCBy
ZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBzdG9yZXMgdGhlIHJlc3Bv
bnNlIGluIHRoZSBjYWNoZSBpZiBpdCBnb2VzIHRvIHRoZSBuZXR3b3JrIHdpdGggTGFzdC1Nb2Rp
ZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hl
LWZvcmNlLWNhY2hlLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmFu
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4
YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZm9yY2UtY2FjaGUuYW55
Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktp
dCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZv
cmNlLWNhY2hlLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1mb3JjZS1jYWNoZS5hbnkuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDBkY2UwOTZjNzI5MjQ5NTYwNmQ4NjA2Yzg2NDllMDk2YmNhYzgxZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1mb3JjZS1jYWNoZS5hbnkuanMKQEAg
LTAsMCArMSw2NyBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRp
dGxlPVJlcXVlc3QgY2FjaGUgLSBmb3JjZS1jYWNoZQorLy8gTUVUQTogc2NyaXB0PS9jb21tb24v
dXRpbHMuanMKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzCisv
LyBNRVRBOiBzY3JpcHQ9cmVxdWVzdC1jYWNoZS5qcworCit2YXIgdGVzdHMgPSBbCisgIHsKKyAg
ICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hl
IGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZCByZXZhbGlkYXRpb24gZm9y
IHN0YWxlIHJlc3BvbnNlcycsCisgICAgc3RhdGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNo
ZTogWyJkZWZhdWx0IiwgImZvcmNlLWNhY2hlIl0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9o
ZWFkZXJzOiBbZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0s
CisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBj
aGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZCBy
ZXZhbGlkYXRpb24gZm9yIGZyZXNoIHJlc3BvbnNlcycsCisgICAgc3RhdGU6ICJmcmVzaCIsCisg
ICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImZvcmNlLWNhY2hlIl0sCisgICAgZXhwZWN0
ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hl
YWRlcnM6IFtmYWxzZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3Jj
ZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250
ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBm
b3VuZCcsCisgICAgc3RhdGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJmb3JjZS1j
YWNoZSJdLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlXSwKKyAgICBl
eHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2VdLAorICB9LAorICB7CisgICAgbmFtZTog
J1JlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJl
dmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hl
ZCByZXNwb25zZSBpcyBub3QgZm91bmQnLAorICAgIHN0YXRlOiAiZnJlc2giLAorICAgIHJlcXVl
c3RfY2FjaGU6IFsiZm9yY2UtY2FjaGUiXSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRl
cnM6IFtmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlXSwKKyAg
fSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNr
cyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhl
IG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2Ugd291bGQgdmFyeScsCisgICAgc3RhdGU6ICJz
dGFsZSIsCisgICAgdmFyeTogIioiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJm
b3JjZS1jYWNoZSJdLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0
cnVlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAg
fSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNr
cyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhl
IG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2Ugd291bGQgdmFyeScsCisgICAgc3RhdGU6ICJm
cmVzaCIsCisgICAgdmFyeTogIioiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJm
b3JjZS1jYWNoZSJdLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0
cnVlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAg
fSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBzdG9yZXMgdGhl
IHJlc3BvbnNlIGluIHRoZSBjYWNoZSBpZiBpdCBnb2VzIHRvIHRoZSBuZXR3b3JrJywKKyAgICBz
dGF0ZTogInN0YWxlIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImZvcmNlLWNhY2hlIiwgImRlZmF1
bHQiXSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCisg
ICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgIH0sCisgIHsK
KyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgc3RvcmVzIHRoZSByZXNwb25z
ZSBpbiB0aGUgY2FjaGUgaWYgaXQgZ29lcyB0byB0aGUgbmV0d29yaycsCisgICAgc3RhdGU6ICJm
cmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJmb3JjZS1jYWNoZSIsICJkZWZhdWx0Il0sCisg
ICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2VdLAorICAgIGV4cGVjdGVkX25v
X2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0sCisgIH0sCitdOworcnVuX3Rlc3RzKHRlc3RzKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1mb3JjZS1jYWNoZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1mb3JjZS1jYWNoZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xM2EyNTNiZjYzNWI2YzE4ZjY4YjY2NDMzZjkzOTkwNmNkZDAy
MzY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKKworUEFTUyBSZXF1ZXN0Q2Fj
aGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2Fj
aGVkIGNvbnRlbnQgYW5kIGF2b2lkIHJldmFsaWRhdGlvbiBmb3Igc3RhbGUgcmVzcG9uc2VzIHdp
dGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNo
ZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFu
ZCBhdm9pZCByZXZhbGlkYXRpb24gZm9yIHN0YWxlIHJlc3BvbnNlcyB3aXRoIExhc3QtTW9kaWZp
ZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1v
ZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZv
aWQgcmV2YWxpZGF0aW9uIGZvciBmcmVzaCByZXNwb25zZXMgd2l0aCBFdGFnIGFuZCBmcmVzaCBy
ZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUg
Y2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkIHJldmFsaWRhdGlv
biBmb3IgZnJlc2ggcmVzcG9uc2VzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9u
c2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hl
IGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIGlm
IGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3VuZCB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3Bv
bnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNo
ZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBp
ZiBhIGNhY2hlZCByZXNwb25zZSBpcyBub3QgZm91bmQgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBz
dGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNr
cyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhl
IG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2UgaXMgbm90IGZvdW5kIHdpdGggRXRhZyBhbmQg
ZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVj
a3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRo
ZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3VuZCB3aXRoIExhc3QtTW9k
aWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUi
IG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQg
Z29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSB3b3VsZCB2YXJ5IHdpdGgg
RXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIg
bW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBn
b2VzIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIHdvdWxkIHZhcnkgd2l0aCBM
YXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNl
LWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRl
bnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2Ugd291bGQgdmFy
eSB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAiZm9yY2Ut
Y2FjaGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVu
dCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSB3b3VsZCB2YXJ5
IHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hl
ICJmb3JjZS1jYWNoZSIgc3RvcmVzIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgaWYgaXQgZ29l
cyB0byB0aGUgbmV0d29yayB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVl
c3RDYWNoZSAiZm9yY2UtY2FjaGUiIHN0b3JlcyB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGlm
IGl0IGdvZXMgdG8gdGhlIG5ldHdvcmsgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNw
b25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBzdG9yZXMgdGhlIHJlc3BvbnNl
IGluIHRoZSBjYWNoZSBpZiBpdCBnb2VzIHRvIHRoZSBuZXR3b3JrIHdpdGggRXRhZyBhbmQgZnJl
c2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgc3RvcmVzIHRoZSBy
ZXNwb25zZSBpbiB0aGUgY2FjaGUgaWYgaXQgZ29lcyB0byB0aGUgbmV0d29yayB3aXRoIExhc3Qt
TW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1j
YWNoZS1mb3JjZS1jYWNoZS5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZm9y
Y2UtY2FjaGUuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1
NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2Fj
aGUtZm9yY2UtY2FjaGUuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBm
aWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhl
IHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1mb3JjZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNh
Y2hlLWZvcmNlLWNhY2hlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkNDU3
MjZmNTVlNjUyMzA2Yjc4MjYxMjlmNGJjZWU5ODQwM2UzMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxo
dG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJl
cXVlc3QgY2FjaGUgLSBmb3JjZS1jYWNoZTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIv
Y29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
cmVxdWVzdC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNj
cmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0
Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkg
Y2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkIHJldmFsaWRhdGlvbiBmb3Igc3RhbGUgcmVzcG9uc2Vz
JywKLSAgICAgICAgc3RhdGU6ICJzdGFsZSIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVm
YXVsdCIsICJmb3JjZS1jYWNoZSJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRl
cnM6IFtmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0s
Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3JjZS1j
YWNoZSIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50
IGFuZCBhdm9pZCByZXZhbGlkYXRpb24gZm9yIGZyZXNoIHJlc3BvbnNlcycsCi0gICAgICAgIHN0
YXRlOiAiZnJlc2giLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAiZm9yY2Ut
Y2FjaGUiXSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2VdLAot
ICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2VdLAotICAgICAgfSwKLSAg
ICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZm9yY2UtY2FjaGUiIG1vZGUgY2hl
Y2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0
aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSBpcyBub3QgZm91bmQnLAotICAgICAgICBz
dGF0ZTogInN0YWxlIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJmb3JjZS1jYWNoZSJdLAot
ICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZV0sCi0gICAgICAgIGV4
cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAg
ICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgbW9kZSBjaGVja3MgdGhlIGNh
Y2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3Jr
IGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3VuZCcsCi0gICAgICAgIHN0YXRlOiAiZnJl
c2giLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImZvcmNlLWNhY2hlIl0sCi0gICAgICAgIGV4
cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9f
Y2FjaGVfaGVhZGVyczogW2ZhbHNlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6
ICdSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHBy
ZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNo
ZWQgcmVzcG9uc2Ugd291bGQgdmFyeScsCi0gICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAg
ICB2YXJ5OiAiKiIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJmb3JjZS1j
YWNoZSJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgdHJ1
ZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAot
ICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAiZm9yY2UtY2Fj
aGUiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBh
bmQgZ29lcyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSB3b3VsZCB2YXJ5JywK
LSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHZhcnk6ICIqIiwKLSAgICAgICAgcmVx
dWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgImZvcmNlLWNhY2hlIl0sCi0gICAgICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9f
Y2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAg
ICBuYW1lOiAnUmVxdWVzdENhY2hlICJmb3JjZS1jYWNoZSIgc3RvcmVzIHRoZSByZXNwb25zZSBp
biB0aGUgY2FjaGUgaWYgaXQgZ29lcyB0byB0aGUgbmV0d29yaycsCi0gICAgICAgIHN0YXRlOiAi
c3RhbGUiLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImZvcmNlLWNhY2hlIiwgImRlZmF1bHQi
XSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAot
ICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAg
IH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgImZvcmNlLWNhY2hlIiBz
dG9yZXMgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBpZiBpdCBnb2VzIHRvIHRoZSBuZXR3b3Jr
JywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZm9y
Y2UtY2FjaGUiLCAiZGVmYXVsdCJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRl
cnM6IFtmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0s
Ci0gICAgICB9LAotICAgIF07Ci0gICAgcnVuX3Rlc3RzKHRlc3RzKTsKLSAgICA8L3NjcmlwdD4K
LSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLWNh
Y2hlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjOWY3ZDViYTU1MGJlOGFhNTVjYzhh
ZmFkNmVhMDdkOWFiNjEwMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLWNhY2hlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1QQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1v
ZGUgcmV2YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIEV0
YWcgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUg
cmV2YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIExhc3Qt
TW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUi
IG1vZGUgcmV2YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRo
IEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1v
ZGUgcmV2YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIExh
c3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1jYWNoZS1uby1jYWNoZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5v
LWNhY2hlLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM5ZjdkNWJhNTUwYmU4YWE1NWNj
OGFmYWQ2ZWEwN2Q5YWI2MTAyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1uby1jYWNoZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFJlcXVl
c3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZvdW5k
IGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RD
YWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZvdW5kIGlu
IHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJl
cXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2VzIGZv
dW5kIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVl
c3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2VzIGZvdW5k
IGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5hbnkuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1jYWNoZS1uby1jYWNoZS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2Iz
YTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNhY2hlLW5vLWNhY2hlLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBs
YXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8t
Y2FjaGUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZmMyMmJhZjIzZGRkM2Y4MzJhMzhjODUzYTIwMzky
MGEzODA2MmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tY2FjaGUu
YW55LmpzCkBAIC0wLDAgKzEsMjUgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisv
LyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGNhY2hlIDogbm8tY2FjaGUKKy8vIE1FVEE6IHNjcmlwdD0v
Y29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1
Yi5qcworLy8gTUVUQTogc2NyaXB0PXJlcXVlc3QtY2FjaGUuanMKKwordmFyIHRlc3RzID0gWwor
ICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMg
c3RhbGUgcmVzcG9uc2VzIGZvdW5kIGluIHRoZSBjYWNoZScsCisgICAgc3RhdGU6ICJzdGFsZSIs
CisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm5vLWNhY2hlIl0sCisgICAgZXhwZWN0
ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAorICAgIGV4cGVjdGVkX25vX2Nh
Y2hlX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX21heF9hZ2VfaGVhZGVy
czogW2ZhbHNlLCB0cnVlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm5v
LWNhY2hlIiBtb2RlIHJldmFsaWRhdGVzIGZyZXNoIHJlc3BvbnNlcyBmb3VuZCBpbiB0aGUgY2Fj
aGUnLAorICAgIHN0YXRlOiAiZnJlc2giLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIs
ICJuby1jYWNoZSJdLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0
cnVlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAg
ICBleHBlY3RlZF9tYXhfYWdlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCisgIH0sCitdOworcnVu
X3Rlc3RzKHRlc3RzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzlmN2Q1YmE1NTBiZThhYTU1Y2M4YWZh
ZDZlYTA3ZDlhYjYxMDIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5v
LWNhY2hlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFJl
cXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZv
dW5kIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVl
c3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgc3RhbGUgcmVzcG9uc2VzIGZvdW5k
IGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNT
IFJlcXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2Vz
IGZvdW5kIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJl
cXVlc3RDYWNoZSAibm8tY2FjaGUiIG1vZGUgcmV2YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2VzIGZv
dW5kIGluIHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5hbnkud29ya2VyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tY2FjaGUuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tY2FjaGUuYW55Lndvcmtlci5odG1sCkBAIC0wLDAg
KzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0
cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWNhY2hlLW5vLWNhY2hlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQzMGVkMTYyNjk2ODZhZTcxNjM4NTNhNzk1ZDUyOWZiNGQ4NjliNDEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hl
LW5vLWNhY2hlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IWRvY3R5cGUg
aHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAg
PHRpdGxlPlJlcXVlc3QgY2FjaGUgOiBuby1jYWNoZTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0icmVxdWVzdC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0g
ICAgPHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdS
ZXF1ZXN0Q2FjaGUgIm5vLWNhY2hlIiBtb2RlIHJldmFsaWRhdGVzIHN0YWxlIHJlc3BvbnNlcyBm
b3VuZCBpbiB0aGUgY2FjaGUnLAotICAgICAgICBzdGF0ZTogInN0YWxlIiwKLSAgICAgICAgcmVx
dWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm5vLWNhY2hlIl0sCi0gICAgICAgIGV4cGVjdGVkX3Zh
bGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2Fj
aGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX21heF9hZ2VfaGVh
ZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdS
ZXF1ZXN0Q2FjaGUgIm5vLWNhY2hlIiBtb2RlIHJldmFsaWRhdGVzIGZyZXNoIHJlc3BvbnNlcyBm
b3VuZCBpbiB0aGUgY2FjaGUnLAotICAgICAgICBzdGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVx
dWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm5vLWNhY2hlIl0sCi0gICAgICAgIGV4cGVjdGVkX3Zh
bGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2Fj
aGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX21heF9hZ2VfaGVh
ZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAgIH0sCi0gICAgXTsKLSAgICBydW5fdGVzdHModGVz
dHMpOwotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hl
LW5vLXN0b3JlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI0
MTFlZjVmYWZmOTE3N2VlM2U5MDQ3MjY0ZWVkYTI1ZTE1MDg4MC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotCi1QQVNTIFJlcXVl
c3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2
aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mg
d2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3Jl
IiBtb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29u
dGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNzIHdpdGggTGFzdC1Nb2RpZmll
ZCBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBk
b2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5k
IGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3Bv
bnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhl
IGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3
b3JrIHJlZ2FyZGxlc3Mgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQotUEFT
UyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMgbm90IHN0b3JlIHRoZSByZXNwb25z
ZSBpbiB0aGUgY2FjaGUgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0
Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMgbm90IHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUg
Y2FjaGUgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0
Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMgbm90IHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUg
Y2FjaGUgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm5v
LXN0b3JlIiBtb2RlIGRvZXMgbm90IHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0
aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtY2FjaGUtbm8tc3RvcmUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1uby1zdG9yZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyNDExZWY1ZmFmZjkxNzdl
ZTNlOTA0NzI2NGVlZGEyNWUxNTA4ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y2FjaGUtbm8tc3RvcmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1Mg
UmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9y
IHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJk
bGVzcyB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8t
c3RvcmUiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hl
ZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBMYXN0LU1v
ZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBt
b2RlIGRvZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVu
dCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNzIHdpdGggRXRhZyBhbmQgZnJlc2gg
cmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBjaGVj
ayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhl
IG5ldHdvcmsgcmVnYXJkbGVzcyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNl
CitQQVNTIFJlcXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3Qgc3RvcmUgdGhlIHJl
c3BvbnNlIGluIHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJl
cXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3Qgc3RvcmUgdGhlIHJlc3BvbnNlIGlu
IHRoZSBjYWNoZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJl
cXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3Qgc3RvcmUgdGhlIHJlc3BvbnNlIGlu
IHRoZSBjYWNoZSB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNo
ZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3Qgc3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNo
ZSB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1u
by1zdG9yZS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1
MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLXN0
b3JlLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0t
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1j
YWNoZS1uby1zdG9yZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUuYW55Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjlhMjg3MThiZjIyOTJkZjVjMGY5YjcyOTBkZmUyNzRlZjBlMDE1ZDgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUuYW55LmpzCkBAIC0w
LDAgKzEsMzcgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRs
ZT1SZXF1ZXN0IGNhY2hlIC0gbm8gc3RvcmUKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxz
LmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVU
QTogc2NyaXB0PXJlcXVlc3QtY2FjaGUuanMKKwordmFyIHRlc3RzID0gWworICB7CisgICAgbmFt
ZTogJ1JlcXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hl
IGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJl
Z2FyZGxlc3MnLAorICAgIHN0YXRlOiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVm
YXVsdCIsICJuby1zdG9yZSJdLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2Zh
bHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVl
XSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRv
ZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQg
Z29lcyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNzJywKKyAgICBzdGF0ZTogImZyZXNoIiwKKyAg
ICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAibm8tc3RvcmUiXSwKKyAgICBleHBlY3RlZF92
YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hl
X2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENh
Y2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNh
Y2hlJywKKyAgICBzdGF0ZTogInN0YWxlIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbIm5vLXN0b3Jl
IiwgImRlZmF1bHQiXSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwg
ZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCisg
IH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5v
dCBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlJywKKyAgICBzdGF0ZTogImZyZXNoIiwK
KyAgICByZXF1ZXN0X2NhY2hlOiBbIm5vLXN0b3JlIiwgImRlZmF1bHQiXSwKKyAgICBleHBlY3Rl
ZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2Nh
Y2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCisgIH0sCitdOworcnVuX3Rlc3RzKHRlc3RzKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMjQxMWVmNWZhZmY5MTc3ZWUzZTkwNDcyNjRlZWRhMjVlMTUwODgw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW5vLXN0b3JlLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworUEFTUyBSZXF1ZXN0Q2FjaGUgIm5v
LXN0b3JlIiBtb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNo
ZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNzIHdpdGggRXRhZyBh
bmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2Vz
IG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdv
ZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxl
IHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9lcyBub3QgY2hl
Y2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRo
ZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBS
ZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3Ig
cHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayByZWdhcmRs
ZXNzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENh
Y2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNh
Y2hlIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJuby1z
dG9yZSIgbW9kZSBkb2VzIG5vdCBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGgg
TGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJuby1z
dG9yZSIgbW9kZSBkb2VzIG5vdCBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGgg
RXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9k
ZSBkb2VzIG5vdCBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGggTGFzdC1Nb2Rp
ZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hl
LW5vLXN0b3JlLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5h
bnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2
MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9y
ZS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRl
c3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWNhY2hlLW5vLXN0b3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzk2YjZhNjUwOTA1ZGVmNDAzYTA2MmEy
MzdmYzc2MGRkY2RhNzBhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtbm8tc3RvcmUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQ4ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVxdWVzdCBjYWNoZSAtIG5vIHN0b3Jl
PC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMu
d2hhdHdnLm9yZy8jcmVxdWVzdCI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXF1ZXN0LWNhY2hlLmpzIj48L3Njcmlw
dD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgIHZhciB0ZXN0cyA9IFsK
LSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAibm8tc3RvcmUiIG1vZGUgZG9l
cyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBn
b2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3MnLAotICAgICAgICBzdGF0ZTogInN0YWxlIiwK
LSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm5vLXN0b3JlIl0sCi0gICAgICAg
IGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4
cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0sCi0gICAgICB9LAotICAgICAg
ewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBj
aGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8g
dGhlIG5ldHdvcmsgcmVnYXJkbGVzcycsCi0gICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAgICAg
ICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAibm8tc3RvcmUiXSwKLSAgICAgICAgZXhwZWN0
ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRf
bm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAg
ICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm5vLXN0b3JlIiBtb2RlIGRvZXMgbm90IHN0b3JlIHRo
ZSByZXNwb25zZSBpbiB0aGUgY2FjaGUnLAotICAgICAgICBzdGF0ZTogInN0YWxlIiwKLSAgICAg
ICAgcmVxdWVzdF9jYWNoZTogWyJuby1zdG9yZSIsICJkZWZhdWx0Il0sCi0gICAgICAgIGV4cGVj
dGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVk
X25vX2NhY2hlX2hlYWRlcnM6IFt0cnVlLCBmYWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAg
ICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJuby1zdG9yZSIgbW9kZSBkb2VzIG5vdCBzdG9yZSB0
aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlJywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0gICAg
ICAgIHJlcXVlc3RfY2FjaGU6IFsibm8tc3RvcmUiLCAiZGVmYXVsdCJdLAotICAgICAgICBleHBl
Y3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3Rl
ZF9ub19jYWNoZV9oZWFkZXJzOiBbdHJ1ZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICBdOwotICAg
IHJ1bl90ZXN0cyh0ZXN0cyk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNhY2hlZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25seS1pZi1jYWNoZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjU5MGZjNjkxMzZkMmY3YzE4OWIwNjc3MjA5YWY5ZDRm
YTg5MTY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNhY2hlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxNiArMCwwIEBACi0KLVBBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIg
bW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBh
dm9pZHMgcmV2YWxpZGF0aW9uIGZvciBzdGFsZSByZXNwb25zZXMgd2l0aCBFdGFnIGFuZCBzdGFs
ZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNr
cyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkcyByZXZh
bGlkYXRpb24gZm9yIHN0YWxlIHJlc3BvbnNlcyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxl
IHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiIG1vZGUgY2hlY2tz
IHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWRzIHJldmFs
aWRhdGlvbiBmb3IgZnJlc2ggcmVzcG9uc2VzIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UK
LVBBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgbW9kZSBjaGVja3MgdGhlIGNhY2hl
IGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZHMgcmV2YWxpZGF0aW9uIGZv
ciBmcmVzaCByZXNwb25zZXMgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQot
UEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUg
Zm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGRvZXMgbm90IGdvIHRvIHRoZSBuZXR3
b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3VuZCB3aXRoIEV0YWcgYW5kIGZyZXNo
IHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiIG1vZGUgY2hlY2tz
IHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZG9lcyBub3QgZ28g
dG8gdGhlIG5ldHdvcmsgaWYgYSBjYWNoZWQgcmVzcG9uc2UgaXMgbm90IGZvdW5kIHdpdGggTGFz
dC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlm
LWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgdXNlcyBjYWNoZWQgc2FtZS1vcmlnaW4gcmVk
aXJlY3RzIHRvIHNhbWUtb3JpZ2luIGNvbnRlbnQgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25z
ZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4i
KSB1c2VzIGNhY2hlZCBzYW1lLW9yaWdpbiByZWRpcmVjdHMgdG8gc2FtZS1vcmlnaW4gY29udGVu
dCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNo
ZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUt
b3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9yaWdpbiBjb250ZW50IHdpdGggRXRhZyBhbmQgc3Rh
bGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNh
bWUtb3JpZ2luIikgdXNlcyBjYWNoZWQgc2FtZS1vcmlnaW4gcmVkaXJlY3RzIHRvIHNhbWUtb3Jp
Z2luIGNvbnRlbnQgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBS
ZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4iKSBkb2VzIG5v
dCBmb2xsb3cgcmVkaXJlY3RzIGFjcm9zcyBvcmlnaW5zIGFuZCByZWplY3RzIHdpdGggRXRhZyBh
bmQgZnJlc2ggcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdp
dGggInNhbWUtb3JpZ2luIikgZG9lcyBub3QgZm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3JpZ2lu
cyBhbmQgcmVqZWN0cyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCi1QQVNT
IFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIGRvZXMg
bm90IGZvbGxvdyByZWRpcmVjdHMgYWNyb3NzIG9yaWdpbnMgYW5kIHJlamVjdHMgd2l0aCBFdGFn
IGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiAo
d2l0aCAic2FtZS1vcmlnaW4iKSBkb2VzIG5vdCBmb2xsb3cgcmVkaXJlY3RzIGFjcm9zcyBvcmln
aW5zIGFuZCByZWplY3RzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9uc2UKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmFueS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25seS1pZi1jYWNoZWQuYW55LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NjU5MGZjNjkxMzZkMmY3YzE4OWIwNjc3MjA5YWY5ZDRmYTg5MTY0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmFueS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1p
Zi1jYWNoZWQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29u
dGVudCBhbmQgYXZvaWRzIHJldmFsaWRhdGlvbiBmb3Igc3RhbGUgcmVzcG9uc2VzIHdpdGggRXRh
ZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIg
bW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBh
dm9pZHMgcmV2YWxpZGF0aW9uIGZvciBzdGFsZSByZXNwb25zZXMgd2l0aCBMYXN0LU1vZGlmaWVk
IGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBt
b2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2
b2lkcyByZXZhbGlkYXRpb24gZm9yIGZyZXNoIHJlc3BvbnNlcyB3aXRoIEV0YWcgYW5kIGZyZXNo
IHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiIG1vZGUgY2hlY2tz
IHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWRzIHJldmFs
aWRhdGlvbiBmb3IgZnJlc2ggcmVzcG9uc2VzIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2gg
cmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgbW9kZSBjaGVja3Mg
dGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBkb2VzIG5vdCBnbyB0
byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSBpcyBub3QgZm91bmQgd2l0aCBFdGFn
IGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBt
b2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGRv
ZXMgbm90IGdvIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlzIG5vdCBmb3Vu
ZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNo
ZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUt
b3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9yaWdpbiBjb250ZW50IHdpdGggRXRhZyBhbmQgZnJl
c2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNh
bWUtb3JpZ2luIikgdXNlcyBjYWNoZWQgc2FtZS1vcmlnaW4gcmVkaXJlY3RzIHRvIHNhbWUtb3Jp
Z2luIGNvbnRlbnQgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBS
ZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4iKSB1c2VzIGNh
Y2hlZCBzYW1lLW9yaWdpbiByZWRpcmVjdHMgdG8gc2FtZS1vcmlnaW4gY29udGVudCB3aXRoIEV0
YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQi
ICh3aXRoICJzYW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUtb3JpZ2luIHJlZGlyZWN0cyB0
byBzYW1lLW9yaWdpbiBjb250ZW50IHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgc3RhbGUgcmVzcG9u
c2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2lu
IikgZG9lcyBub3QgZm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3JpZ2lucyBhbmQgcmVqZWN0cyB3
aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1j
YWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIGRvZXMgbm90IGZvbGxvdyByZWRpcmVjdHMgYWNy
b3NzIG9yaWdpbnMgYW5kIHJlamVjdHMgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNw
b25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmln
aW4iKSBkb2VzIG5vdCBmb2xsb3cgcmVkaXJlY3RzIGFjcm9zcyBvcmlnaW5zIGFuZCByZWplY3Rz
IHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlm
LWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgZG9lcyBub3QgZm9sbG93IHJlZGlyZWN0cyBh
Y3Jvc3Mgb3JpZ2lucyBhbmQgcmVqZWN0cyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJl
c3BvbnNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNhY2hlZC5h
bnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNhY2hlZC5hbnkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmFueS5odG1sCkBA
IC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBp
bmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNh
Y2hlZC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25seS1pZi1jYWNoZWQuYW55LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjEzMDU3ODdjN2MxZDY2NDFlZDllYjExYmYwMTUxY2EzOTE4NzdhMWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25seS1pZi1jYWNoZWQuYW55LmpzCkBA
IC0wLDAgKzEsNjYgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csZGVkaWNhdGVkd29ya2VyLHNo
YXJlZHdvcmtlcgorLy8gTUVUQTogdGl0bGU9UmVxdWVzdCBjYWNoZSAtIG9ubHktaWYtY2FjaGVk
CisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcworLy8gTUVUQTogc2NyaXB0PS9jb21t
b24vZ2V0LWhvc3QtaW5mby5zdWIuanMKKy8vIE1FVEE6IHNjcmlwdD1yZXF1ZXN0LWNhY2hlLmpz
CisKKy8vIEZJWE1FOiBhdm9pZCBtaXhlZCBjb250ZW50IHJlcXVlc3RzIHRvIGVuYWJsZSBzZXJ2
aWNlIHdvcmtlciBnbG9iYWwKK3ZhciB0ZXN0cyA9IFsKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0
Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3Vz
bHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkcyByZXZhbGlkYXRpb24gZm9yIHN0YWxlIHJlc3Bv
bnNlcycsCisgICAgc3RhdGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0
IiwgIm9ubHktaWYtY2FjaGVkIl0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBb
ZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZV0KKyAgfSwKKyAg
eworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0
aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkcyByZXZhbGlk
YXRpb24gZm9yIGZyZXNoIHJlc3BvbnNlcycsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVx
dWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgIm9ubHktaWYtY2FjaGVkIl0sCisgICAgZXhwZWN0ZWRf
dmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2VdLAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRl
cnM6IFtmYWxzZV0KKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm9ubHktaWYt
Y2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRl
bnQgYW5kIGRvZXMgbm90IGdvIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJlc3BvbnNlIGlz
IG5vdCBmb3VuZCcsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJv
bmx5LWlmLWNhY2hlZCJdLAorICAgIHJlc3BvbnNlOiBbImVycm9yIl0sCisgICAgZXhwZWN0ZWRf
dmFsaWRhdGlvbl9oZWFkZXJzOiBbXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBb
XQorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3
aXRoICJzYW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUtb3JpZ2luIHJlZGlyZWN0cyB0byBz
YW1lLW9yaWdpbiBjb250ZW50JywKKyAgICBzdGF0ZTogImZyZXNoIiwKKyAgICByZXF1ZXN0X2Nh
Y2hlOiBbImRlZmF1bHQiLCAib25seS1pZi1jYWNoZWQiXSwKKyAgICByZWRpcmVjdDogInNhbWUt
b3JpZ2luIiwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2Vd
LAorICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICB9LAor
ICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1l
LW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUtb3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9yaWdp
biBjb250ZW50JywKKyAgICBzdGF0ZTogInN0YWxlIiwKKyAgICByZXF1ZXN0X2NhY2hlOiBbImRl
ZmF1bHQiLCAib25seS1pZi1jYWNoZWQiXSwKKyAgICByZWRpcmVjdDogInNhbWUtb3JpZ2luIiwK
KyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICAgIGV4
cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAorICB9LAorICB7CisgICAg
bmFtZTogJ1JlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIp
IGRvZXMgbm90IGZvbGxvdyByZWRpcmVjdHMgYWNyb3NzIG9yaWdpbnMgYW5kIHJlamVjdHMnLAor
ICAgIHN0YXRlOiAiZnJlc2giLAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJvbmx5
LWlmLWNhY2hlZCJdLAorICAgIHJlZGlyZWN0OiAiY3Jvc3Mtb3JpZ2luIiwKKyAgICByZXNwb25z
ZTogW251bGwsICJlcnJvciJdLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2Zh
bHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCBmYWxz
ZV0sCisgIH0sCisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIg
KHdpdGggInNhbWUtb3JpZ2luIikgZG9lcyBub3QgZm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3Jp
Z2lucyBhbmQgcmVqZWN0cycsCisgICAgc3RhdGU6ICJzdGFsZSIsCisgICAgcmVxdWVzdF9jYWNo
ZTogWyJkZWZhdWx0IiwgIm9ubHktaWYtY2FjaGVkIl0sCisgICAgcmVkaXJlY3Q6ICJjcm9zcy1v
cmlnaW4iLAorICAgIHJlc3BvbnNlOiBbbnVsbCwgImVycm9yIl0sCisgICAgZXhwZWN0ZWRfdmFs
aWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9o
ZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgfSwKK107CitydW5fdGVzdHModGVzdHMpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NTkwZmM2OTEzNmQyZjdjMTg5YjA2NzcyMDlhZjlk
NGZhODkxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25seS1pZi1j
YWNoZWQuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorCitQQVNTIFJl
cXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJl
dmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgYXZvaWRzIHJldmFsaWRhdGlvbiBmb3Igc3RhbGUg
cmVzcG9uc2VzIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hl
ICJvbmx5LWlmLWNhY2hlZCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNh
Y2hlZCBjb250ZW50IGFuZCBhdm9pZHMgcmV2YWxpZGF0aW9uIGZvciBzdGFsZSByZXNwb25zZXMg
d2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUg
Im9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2Fj
aGVkIGNvbnRlbnQgYW5kIGF2b2lkcyByZXZhbGlkYXRpb24gZm9yIGZyZXNoIHJlc3BvbnNlcyB3
aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1j
YWNoZWQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVu
dCBhbmQgYXZvaWRzIHJldmFsaWRhdGlvbiBmb3IgZnJlc2ggcmVzcG9uc2VzIHdpdGggTGFzdC1N
b2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNh
Y2hlZCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50
IGFuZCBkb2VzIG5vdCBnbyB0byB0aGUgbmV0d29yayBpZiBhIGNhY2hlZCByZXNwb25zZSBpcyBu
b3QgZm91bmQgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUg
Im9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2Fj
aGVkIGNvbnRlbnQgYW5kIGRvZXMgbm90IGdvIHRvIHRoZSBuZXR3b3JrIGlmIGEgY2FjaGVkIHJl
c3BvbnNlIGlzIG5vdCBmb3VuZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNl
CitQQVNTIFJlcXVlc3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIp
IHVzZXMgY2FjaGVkIHNhbWUtb3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9yaWdpbiBjb250ZW50
IHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlm
LWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgdXNlcyBjYWNoZWQgc2FtZS1vcmlnaW4gcmVk
aXJlY3RzIHRvIHNhbWUtb3JpZ2luIGNvbnRlbnQgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVz
aCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2Ft
ZS1vcmlnaW4iKSB1c2VzIGNhY2hlZCBzYW1lLW9yaWdpbiByZWRpcmVjdHMgdG8gc2FtZS1vcmln
aW4gY29udGVudCB3aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNo
ZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUt
b3JpZ2luIHJlZGlyZWN0cyB0byBzYW1lLW9yaWdpbiBjb250ZW50IHdpdGggTGFzdC1Nb2RpZmll
ZCBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIg
KHdpdGggInNhbWUtb3JpZ2luIikgZG9lcyBub3QgZm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3Jp
Z2lucyBhbmQgcmVqZWN0cyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJlcXVl
c3RDYWNoZSAib25seS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIGRvZXMgbm90IGZv
bGxvdyByZWRpcmVjdHMgYWNyb3NzIG9yaWdpbnMgYW5kIHJlamVjdHMgd2l0aCBMYXN0LU1vZGlm
aWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVk
IiAod2l0aCAic2FtZS1vcmlnaW4iKSBkb2VzIG5vdCBmb2xsb3cgcmVkaXJlY3RzIGFjcm9zcyBv
cmlnaW5zIGFuZCByZWplY3RzIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVx
dWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikgZG9lcyBub3Qg
Zm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3JpZ2lucyBhbmQgcmVqZWN0cyB3aXRoIExhc3QtTW9k
aWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1vbmx5LWlmLWNhY2hlZC5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25s
eS1pZi1jYWNoZWQuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y2FjaGUtb25seS1pZi1jYWNoZWQuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0g
VGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBy
dW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNhY2hlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGFkYjMxYTM5N2E3NTljNDNmOTE4YzBmODhhN2YyMDY3YmZhYzMzYTguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hl
LW9ubHktaWYtY2FjaGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi08IWRv
Y3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci0gICAgPHRpdGxlPlJlcXVlc3QgY2FjaGUgLSBvbmx5LWlmLWNhY2hlZDwvdGl0bGU+Ci0gICAg
PG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jl
cXVlc3QiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0icmVxdWVzdC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4K
LSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbCi0gICAgICB7Ci0gICAg
ICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiBtb2RlIGNoZWNrcyB0aGUg
Y2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGF2b2lkcyByZXZhbGlkYXRp
b24gZm9yIHN0YWxlIHJlc3BvbnNlcycsCi0gICAgICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAg
ICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAib25seS1pZi1jYWNoZWQiXSwKLSAgICAgICAg
ZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9u
b19jYWNoZV9oZWFkZXJzOiBbZmFsc2VdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1l
OiAnUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgbW9kZSBjaGVja3MgdGhlIGNhY2hlIGZv
ciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBhdm9pZHMgcmV2YWxpZGF0aW9uIGZvciBm
cmVzaCByZXNwb25zZXMnLAotICAgICAgICBzdGF0ZTogImZyZXNoIiwKLSAgICAgICAgcmVxdWVz
dF9jYWNoZTogWyJkZWZhdWx0IiwgIm9ubHktaWYtY2FjaGVkIl0sCi0gICAgICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVf
aGVhZGVyczogW2ZhbHNlXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVl
c3RDYWNoZSAib25seS1pZi1jYWNoZWQiIG1vZGUgY2hlY2tzIHRoZSBjYWNoZSBmb3IgcHJldmlv
dXNseSBjYWNoZWQgY29udGVudCBhbmQgZG9lcyBub3QgZ28gdG8gdGhlIG5ldHdvcmsgaWYgYSBj
YWNoZWQgcmVzcG9uc2UgaXMgbm90IGZvdW5kJywKLSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0g
ICAgICAgIHJlcXVlc3RfY2FjaGU6IFsib25seS1pZi1jYWNoZWQiXSwKLSAgICAgICAgcmVzcG9u
c2U6IFsiZXJyb3IiXSwKLSAgICAgICAgZXhwZWN0ZWRfdmFsaWRhdGlvbl9oZWFkZXJzOiBbXSwK
LSAgICAgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW10KLSAgICAgIH0sCi0gICAgICB7
Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2Ft
ZS1vcmlnaW4iKSB1c2VzIGNhY2hlZCBzYW1lLW9yaWdpbiByZWRpcmVjdHMgdG8gc2FtZS1vcmln
aW4gY29udGVudCcsCi0gICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAgICAgICByZXF1ZXN0X2Nh
Y2hlOiBbImRlZmF1bHQiLCAib25seS1pZi1jYWNoZWQiXSwKLSAgICAgICAgcmVkaXJlY3Q6ICJz
YW1lLW9yaWdpbiIsCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNl
LCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgZmFs
c2VdLAotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAib25s
eS1pZi1jYWNoZWQiICh3aXRoICJzYW1lLW9yaWdpbiIpIHVzZXMgY2FjaGVkIHNhbWUtb3JpZ2lu
IHJlZGlyZWN0cyB0byBzYW1lLW9yaWdpbiBjb250ZW50JywKLSAgICAgICAgc3RhdGU6ICJzdGFs
ZSIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJvbmx5LWlmLWNhY2hlZCJd
LAotICAgICAgICByZWRpcmVjdDogInNhbWUtb3JpZ2luIiwKLSAgICAgICAgZXhwZWN0ZWRfdmFs
aWRhdGlvbl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgICAgZXhwZWN0ZWRfbm9fY2Fj
aGVfaGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICB9LAotICAgICAgewotICAgICAgICBu
YW1lOiAnUmVxdWVzdENhY2hlICJvbmx5LWlmLWNhY2hlZCIgKHdpdGggInNhbWUtb3JpZ2luIikg
ZG9lcyBub3QgZm9sbG93IHJlZGlyZWN0cyBhY3Jvc3Mgb3JpZ2lucyBhbmQgcmVqZWN0cycsCi0g
ICAgICAgIHN0YXRlOiAiZnJlc2giLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQi
LCAib25seS1pZi1jYWNoZWQiXSwKLSAgICAgICAgcmVkaXJlY3Q6ICJjcm9zcy1vcmlnaW4iLAot
ICAgICAgICByZXNwb25zZTogW251bGwsICJlcnJvciJdLAotICAgICAgICBleHBlY3RlZF92YWxp
ZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNo
ZV9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5h
bWU6ICdSZXF1ZXN0Q2FjaGUgIm9ubHktaWYtY2FjaGVkIiAod2l0aCAic2FtZS1vcmlnaW4iKSBk
b2VzIG5vdCBmb2xsb3cgcmVkaXJlY3RzIGFjcm9zcyBvcmlnaW5zIGFuZCByZWplY3RzJywKLSAg
ICAgICAgc3RhdGU6ICJzdGFsZSIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIs
ICJvbmx5LWlmLWNhY2hlZCJdLAotICAgICAgICByZWRpcmVjdDogImNyb3NzLW9yaWdpbiIsCi0g
ICAgICAgIHJlc3BvbnNlOiBbbnVsbCwgImVycm9yIl0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlk
YXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hl
X2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgfSwKLSAgICBdOwotICAgIHJ1bl90ZXN0
cyh0ZXN0cyk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1jYWNoZS1yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNh
Y2hlLXJlbG9hZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3
NGUxZGFhZmU2ZGUxOTNiOWUxZjYwNmI2MGYxOWRmYmQ4ZjZkMDguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0KLVBBU1MgUmVxdWVz
dENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91
c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0
aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9k
ZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQg
YW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcyB3aXRoIExhc3QtTW9kaWZpZWQgYW5k
IHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgbm90
IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0
byB0aGUgbmV0d29yayByZWdhcmRsZXNzIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKLVBB
U1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZv
ciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2Fy
ZGxlc3Mgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1ZXN0
Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUg
d2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIg
bW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1vZGlm
aWVkIGFuZCBzdGFsZSByZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBk
b2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBFdGFnIGFuZCBmcmVzaCBy
ZXNwb25zZQotUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSBy
ZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25z
ZQotUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25z
ZSBpbiB0aGUgY2FjaGUgZXZlbiBpZiBhIHByZXZpb3VzIHJlc3BvbnNlIGlzIGFscmVhZHkgc3Rv
cmVkIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKLVBBU1MgUmVxdWVzdENhY2hlICJyZWxv
YWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGV2ZW4gaWYgYSBw
cmV2aW91cyByZXNwb25zZSBpcyBhbHJlYWR5IHN0b3JlZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5k
IHN0YWxlIHJlc3BvbnNlCi1QQVNTIFJlcXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgc3Rv
cmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBldmVuIGlmIGEgcHJldmlvdXMgcmVzcG9uc2Ug
aXMgYWxyZWFkeSBzdG9yZWQgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQotUEFTUyBSZXF1
ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2Fj
aGUgZXZlbiBpZiBhIHByZXZpb3VzIHJlc3BvbnNlIGlzIGFscmVhZHkgc3RvcmVkIHdpdGggTGFz
dC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNhY2hlLXJlbG9hZC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9h
ZC5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3NGUxZGFhZmU2ZGUxOTNiOWUxZjYwNmI2
MGYxOWRmYmQ4ZjZkMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtcmVs
b2FkLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCitQQVNTIFJlcXVlc3RDYWNo
ZSAicmVsb2FkIiBtb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlvdXNseSBj
YWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNzIHdpdGggRXRh
ZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9l
cyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBn
b2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFs
ZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIG5vdCBjaGVj
ayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhl
IG5ldHdvcmsgcmVnYXJkbGVzcyB3aXRoIEV0YWcgYW5kIGZyZXNoIHJlc3BvbnNlCitQQVNTIFJl
cXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJl
dmlvdXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNz
IHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hl
ICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGgg
RXRhZyBhbmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUg
ZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGggTGFzdC1Nb2RpZmllZCBh
bmQgc3RhbGUgcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBz
dG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9u
c2UKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9u
c2UgaW4gdGhlIGNhY2hlIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9uc2UKK1BB
U1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4g
dGhlIGNhY2hlIGV2ZW4gaWYgYSBwcmV2aW91cyByZXNwb25zZSBpcyBhbHJlYWR5IHN0b3JlZCB3
aXRoIEV0YWcgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVlc3RDYWNoZSAicmVsb2FkIiBt
b2RlIGRvZXMgc3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBldmVuIGlmIGEgcHJldmlv
dXMgcmVzcG9uc2UgaXMgYWxyZWFkeSBzdG9yZWQgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFs
ZSByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRo
ZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgZXZlbiBpZiBhIHByZXZpb3VzIHJlc3BvbnNlIGlzIGFs
cmVhZHkgc3RvcmVkIHdpdGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENh
Y2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGV2
ZW4gaWYgYSBwcmV2aW91cyByZXNwb25zZSBpcyBhbHJlYWR5IHN0b3JlZCB3aXRoIExhc3QtTW9k
aWZpZWQgYW5kIGZyZXNoIHJlc3BvbnNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1yZWxvYWQuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtcmVsb2FkLmFueS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtcmVsb2FkLmFueS5odG1sCkBAIC0wLDAg
KzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0
cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1yZWxvYWQuYW55LmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdiZmZmYjM5ODg5
MGQ0NzhkMGE5OTU1YTY0MmE2NjViYzE4ZGYzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1jYWNoZS1yZWxvYWQuYW55LmpzCkBAIC0wLDAgKzEsNTEgQEAKKy8vIE1FVEE6IGdsb2Jh
bD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGNhY2hlIC0gcmVsb2FkCisv
LyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcworLy8gTUVUQTogc2NyaXB0PS9jb21tb24v
Z2V0LWhvc3QtaW5mby5zdWIuanMKKy8vIE1FVEE6IHNjcmlwdD1yZXF1ZXN0LWNhY2hlLmpzCisK
K3ZhciB0ZXN0cyA9IFsKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9k
ZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQg
YW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcycsCisgICAgc3RhdGU6ICJzdGFsZSIs
CisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgInJlbG9hZCJdLAorICAgIGV4cGVjdGVk
X3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2Fj
aGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0
Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3Vz
bHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcycsCisg
ICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgInJlbG9h
ZCJdLAorICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZV0sCisg
ICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKKyAgfSwKKyAgewor
ICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNw
b25zZSBpbiB0aGUgY2FjaGUnLAorICAgIHN0YXRlOiAic3RhbGUiLAorICAgIHJlcXVlc3RfY2Fj
aGU6IFsicmVsb2FkIiwgImRlZmF1bHQiXSwKKyAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRl
cnM6IFtmYWxzZSwgdHJ1ZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3RydWUs
IGZhbHNlXSwKKyAgfSwKKyAgeworICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9k
ZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUnLAorICAgIHN0YXRlOiAiZnJl
c2giLAorICAgIHJlcXVlc3RfY2FjaGU6IFsicmVsb2FkIiwgImRlZmF1bHQiXSwKKyAgICBleHBl
Y3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZV0sCisgICAgZXhwZWN0ZWRfbm9fY2FjaGVf
aGVhZGVyczogW3RydWVdLAorICB9LAorICB7CisgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAicmVs
b2FkIiBtb2RlIGRvZXMgc3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZSBldmVuIGlmIGEg
cHJldmlvdXMgcmVzcG9uc2UgaXMgYWxyZWFkeSBzdG9yZWQnLAorICAgIHN0YXRlOiAic3RhbGUi
LAorICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJyZWxvYWQiLCAiZGVmYXVsdCJdLAor
ICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBmYWxzZSwgdHJ1ZV0sCisg
ICAgZXhwZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW2ZhbHNlLCB0cnVlLCBmYWxzZV0sCisgIH0s
CisgIHsKKyAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0
aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlIGV2ZW4gaWYgYSBwcmV2aW91cyByZXNwb25zZSBpcyBh
bHJlYWR5IHN0b3JlZCcsCisgICAgc3RhdGU6ICJmcmVzaCIsCisgICAgcmVxdWVzdF9jYWNoZTog
WyJkZWZhdWx0IiwgInJlbG9hZCIsICJkZWZhdWx0Il0sCisgICAgZXhwZWN0ZWRfdmFsaWRhdGlv
bl9oZWFkZXJzOiBbZmFsc2UsIGZhbHNlXSwKKyAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJz
OiBbZmFsc2UsIHRydWVdLAorICB9LAorXTsKK3J1bl90ZXN0cyh0ZXN0cyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY2FjaGUtcmVsb2FkLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NzRlMWRhYWZlNmRlMTkzYjllMWY2MDZiNjBmMTlkZmJkOGY2ZDA4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE0IEBACisKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBu
b3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50IGFuZCBnb2Vz
IHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25zZQor
UEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUg
Zm9yIHByZXZpb3VzbHkgY2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVn
YXJkbGVzcyB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVl
c3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgbm90IGNoZWNrIHRoZSBjYWNoZSBmb3IgcHJldmlv
dXNseSBjYWNoZWQgY29udGVudCBhbmQgZ29lcyB0byB0aGUgbmV0d29yayByZWdhcmRsZXNzIHdp
dGggRXRhZyBhbmQgZnJlc2ggcmVzcG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1v
ZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250ZW50
IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3Mgd2l0aCBMYXN0LU1vZGlmaWVkIGFu
ZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0
b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBFdGFnIGFuZCBzdGFsZSByZXNwb25z
ZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25z
ZSBpbiB0aGUgY2FjaGUgd2l0aCBMYXN0LU1vZGlmaWVkIGFuZCBzdGFsZSByZXNwb25zZQorUEFT
UyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0
aGUgY2FjaGUgd2l0aCBFdGFnIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUg
InJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgd2l0aCBM
YXN0LU1vZGlmaWVkIGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9h
ZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgZXZlbiBpZiBhIHBy
ZXZpb3VzIHJlc3BvbnNlIGlzIGFscmVhZHkgc3RvcmVkIHdpdGggRXRhZyBhbmQgc3RhbGUgcmVz
cG9uc2UKK1BBU1MgUmVxdWVzdENhY2hlICJyZWxvYWQiIG1vZGUgZG9lcyBzdG9yZSB0aGUgcmVz
cG9uc2UgaW4gdGhlIGNhY2hlIGV2ZW4gaWYgYSBwcmV2aW91cyByZXNwb25zZSBpcyBhbHJlYWR5
IHN0b3JlZCB3aXRoIExhc3QtTW9kaWZpZWQgYW5kIHN0YWxlIHJlc3BvbnNlCitQQVNTIFJlcXVl
c3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMgc3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNo
ZSBldmVuIGlmIGEgcHJldmlvdXMgcmVzcG9uc2UgaXMgYWxyZWFkeSBzdG9yZWQgd2l0aCBFdGFn
IGFuZCBmcmVzaCByZXNwb25zZQorUEFTUyBSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2Vz
IHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2FjaGUgZXZlbiBpZiBhIHByZXZpb3VzIHJlc3Bv
bnNlIGlzIGFscmVhZHkgc3RvcmVkIHdpdGggTGFzdC1Nb2RpZmllZCBhbmQgZnJlc2ggcmVzcG9u
c2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5hbnkud29ya2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtcmVsb2FkLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCAr
MSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3Ry
dWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNhY2hlLXJlbG9hZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0NWZmNTgzMjQ4MmRkOTcxYjQwNjIxMDA0MTRkMGIyMTg3ZTQ3OGUwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1yZWxv
YWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgot
PGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+
UmVxdWVzdCBjYWNoZSAtIHJlbG9hZDwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29t
bW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVx
dWVzdC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlw
dD4KLSAgICB2YXIgdGVzdHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2Fj
aGUgInJlbG9hZCIgbW9kZSBkb2VzIG5vdCBjaGVjayB0aGUgY2FjaGUgZm9yIHByZXZpb3VzbHkg
Y2FjaGVkIGNvbnRlbnQgYW5kIGdvZXMgdG8gdGhlIG5ldHdvcmsgcmVnYXJkbGVzcycsCi0gICAg
ICAgIHN0YXRlOiAic3RhbGUiLAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbImRlZmF1bHQiLCAi
cmVsb2FkIl0sCi0gICAgICAgIGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCBm
YWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hlX2hlYWRlcnM6IFtmYWxzZSwgdHJ1ZV0s
Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnUmVxdWVzdENhY2hlICJyZWxvYWQi
IG1vZGUgZG9lcyBub3QgY2hlY2sgdGhlIGNhY2hlIGZvciBwcmV2aW91c2x5IGNhY2hlZCBjb250
ZW50IGFuZCBnb2VzIHRvIHRoZSBuZXR3b3JrIHJlZ2FyZGxlc3MnLAotICAgICAgICBzdGF0ZTog
ImZyZXNoIiwKLSAgICAgICAgcmVxdWVzdF9jYWNoZTogWyJkZWZhdWx0IiwgInJlbG9hZCJdLAot
ICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAg
ICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJzOiBbZmFsc2UsIHRydWVdLAotICAgICAgfSwK
LSAgICAgIHsKLSAgICAgICAgbmFtZTogJ1JlcXVlc3RDYWNoZSAicmVsb2FkIiBtb2RlIGRvZXMg
c3RvcmUgdGhlIHJlc3BvbnNlIGluIHRoZSBjYWNoZScsCi0gICAgICAgIHN0YXRlOiAic3RhbGUi
LAotICAgICAgICByZXF1ZXN0X2NhY2hlOiBbInJlbG9hZCIsICJkZWZhdWx0Il0sCi0gICAgICAg
IGV4cGVjdGVkX3ZhbGlkYXRpb25faGVhZGVyczogW2ZhbHNlLCB0cnVlXSwKLSAgICAgICAgZXhw
ZWN0ZWRfbm9fY2FjaGVfaGVhZGVyczogW3RydWUsIGZhbHNlXSwKLSAgICAgIH0sCi0gICAgICB7
Ci0gICAgICAgIG5hbWU6ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRo
ZSByZXNwb25zZSBpbiB0aGUgY2FjaGUnLAotICAgICAgICBzdGF0ZTogImZyZXNoIiwKLSAgICAg
ICAgcmVxdWVzdF9jYWNoZTogWyJyZWxvYWQiLCAiZGVmYXVsdCJdLAotICAgICAgICBleHBlY3Rl
ZF92YWxpZGF0aW9uX2hlYWRlcnM6IFtmYWxzZV0sCi0gICAgICAgIGV4cGVjdGVkX25vX2NhY2hl
X2hlYWRlcnM6IFt0cnVlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdSZXF1
ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0aGUgY2Fj
aGUgZXZlbiBpZiBhIHByZXZpb3VzIHJlc3BvbnNlIGlzIGFscmVhZHkgc3RvcmVkJywKLSAgICAg
ICAgc3RhdGU6ICJzdGFsZSIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVsdCIsICJy
ZWxvYWQiLCAiZGVmYXVsdCJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hlYWRlcnM6
IFtmYWxzZSwgZmFsc2UsIHRydWVdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJz
OiBbZmFsc2UsIHRydWUsIGZhbHNlXSwKLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6
ICdSZXF1ZXN0Q2FjaGUgInJlbG9hZCIgbW9kZSBkb2VzIHN0b3JlIHRoZSByZXNwb25zZSBpbiB0
aGUgY2FjaGUgZXZlbiBpZiBhIHByZXZpb3VzIHJlc3BvbnNlIGlzIGFscmVhZHkgc3RvcmVkJywK
LSAgICAgICAgc3RhdGU6ICJmcmVzaCIsCi0gICAgICAgIHJlcXVlc3RfY2FjaGU6IFsiZGVmYXVs
dCIsICJyZWxvYWQiLCAiZGVmYXVsdCJdLAotICAgICAgICBleHBlY3RlZF92YWxpZGF0aW9uX2hl
YWRlcnM6IFtmYWxzZSwgZmFsc2VdLAotICAgICAgICBleHBlY3RlZF9ub19jYWNoZV9oZWFkZXJz
OiBbZmFsc2UsIHRydWVdLAotICAgICAgfSwKLSAgICBdOwotICAgIHJ1bl90ZXN0cyh0ZXN0cyk7
Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1jb25zdW1lLWVtcHR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVt
cHR5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWI3ZWIzMWE3
MTBhMTNlYzJiZjRiNDYxM2Y0YmVkNWZlMDM4YzBjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0KLVBBU1MgQ29uc3VtZSByZXF1
ZXN0J3MgYm9keSBhcyB0ZXh0Ci1QQVNTIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgot
UEFTUyBDb25zdW1lIHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCi1QQVNTIENvbnN1bWUg
cmVxdWVzdCdzIGJvZHkgYXMganNvbiAoZXJyb3IgY2FzZSkKLUZBSUwgQ29uc3VtZSByZXF1ZXN0
J3MgYm9keSBhcyBmb3JtRGF0YSB3aXRoIGNvcnJlY3QgbXVsdGlwYXJ0IHR5cGUgKGVycm9yIGNh
c2UpIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9
IiB0aHJldyB1bmRlZmluZWQgd2l0aCB0eXBlICJ1bmRlZmluZWQiLCBub3QgYW4gb2JqZWN0Ci1G
QUlMIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgZm9ybURhdGEgd2l0aCBjb3JyZWN0IHVybGVu
Y29kZWQgdHlwZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
dW5kZWZpbmVkCi1GQUlMIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgZm9ybURhdGEgd2l0aG91
dCBjb3JyZWN0IHR5cGUgKGVycm9yIGNhc2UpIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyB1bmRlZmluZWQgd2l0aCB0eXBlICJ1bmRl
ZmluZWQiLCBub3QgYW4gb2JqZWN0Ci1QQVNTIENvbnN1bWUgZW1wdHkgYmxvYiByZXF1ZXN0IGJv
ZHkgYXMgYXJyYXlCdWZmZXIKLVBBU1MgQ29uc3VtZSBlbXB0eSB0ZXh0IHJlcXVlc3QgYm9keSBh
cyBhcnJheUJ1ZmZlcgotUEFTUyBDb25zdW1lIGVtcHR5IGJsb2IgcmVxdWVzdCBib2R5IGFzIHRl
eHQKLVBBU1MgQ29uc3VtZSBlbXB0eSB0ZXh0IHJlcXVlc3QgYm9keSBhcyB0ZXh0Ci1QQVNTIENv
bnN1bWUgZW1wdHkgVVJMU2VhcmNoUGFyYW1zIHJlcXVlc3QgYm9keSBhcyB0ZXh0Ci1GQUlMIENv
bnN1bWUgZW1wdHkgRm9ybURhdGEgcmVxdWVzdCBib2R5IGFzIHRleHQgYXNzZXJ0X2VxdWFsczog
UmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5IGV4cGVjdGVkIDAgYnV0IGdvdCA0NAotUEFT
UyBDb25zdW1lIGVtcHR5IEFycmF5QnVmZmVyIHJlcXVlc3QgYm9keSBhcyB0ZXh0Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5LmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY29uc3VtZS1lbXB0eS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViN2Vi
MzFhNzEwYTEzZWMyYmY0YjQ2MTNmNGJlZDVmZTAzOGMwYzQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYg
QEAKKworUEFTUyBDb25zdW1lIHJlcXVlc3QncyBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBy
ZXF1ZXN0J3MgYm9keSBhcyBibG9iCitQQVNTIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgYXJy
YXlCdWZmZXIKK1BBU1MgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBqc29uIChlcnJvciBjYXNl
KQorRkFJTCBDb25zdW1lIHJlcXVlc3QncyBib2R5IGFzIGZvcm1EYXRhIHdpdGggY29ycmVjdCBt
dWx0aXBhcnQgdHlwZSAoZXJyb3IgY2FzZSkgcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IHVuZGVmaW5lZCB3aXRoIHR5cGUgInVuZGVm
aW5lZCIsIG5vdCBhbiBvYmplY3QKK0ZBSUwgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBmb3Jt
RGF0YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2RlZCB0eXBlIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKK0ZBSUwgQ29uc3VtZSByZXF1ZXN0J3Mg
Ym9keSBhcyBmb3JtRGF0YSB3aXRob3V0IGNvcnJlY3QgdHlwZSAoZXJyb3IgY2FzZSkgcHJvbWlz
ZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IHVu
ZGVmaW5lZCB3aXRoIHR5cGUgInVuZGVmaW5lZCIsIG5vdCBhbiBvYmplY3QKK1BBU1MgQ29uc3Vt
ZSBlbXB0eSBibG9iIHJlcXVlc3QgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25zdW1lIGVt
cHR5IHRleHQgcmVxdWVzdCBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgZW1wdHkg
YmxvYiByZXF1ZXN0IGJvZHkgYXMgdGV4dAorUEFTUyBDb25zdW1lIGVtcHR5IHRleHQgcmVxdWVz
dCBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBlbXB0eSBVUkxTZWFyY2hQYXJhbXMgcmVxdWVz
dCBib2R5IGFzIHRleHQKK0ZBSUwgQ29uc3VtZSBlbXB0eSBGb3JtRGF0YSByZXF1ZXN0IGJvZHkg
YXMgdGV4dCBhc3NlcnRfZXF1YWxzOiBSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkgZXhw
ZWN0ZWQgMCBidXQgZ290IDQ0CitQQVNTIENvbnN1bWUgZW1wdHkgQXJyYXlCdWZmZXIgcmVxdWVz
dCBib2R5IGFzIHRleHQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHku
YW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS5hbnkuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJl
IHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuYW55LmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWNvbnN1bWUtZW1wdHkuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzNGE4NjA0MWE3NGY1OGM0
ZDAzMTBlZjgwOWY2MTcwYjA5ZGJiMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y29uc3VtZS1lbXB0eS5hbnkuanMKQEAgLTAsMCArMSwxMDEgQEAKKy8vIE1FVEE6IGdsb2JhbD13
aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGNvbnN1bWUgZW1wdHkgYm9kaWVz
CisKK2Z1bmN0aW9uIGNoZWNrQm9keVRleHQodGVzdCwgcmVxdWVzdCkgeworICByZXR1cm4gcmVx
dWVzdC50ZXh0KCkudGhlbihmdW5jdGlvbihib2R5QXNUZXh0KSB7CisgICAgYXNzZXJ0X2VxdWFs
cyhib2R5QXNUZXh0LCAiIiwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOworICAg
IGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGNo
ZWNrQm9keUJsb2IodGVzdCwgcmVxdWVzdCkgeworICByZXR1cm4gcmVxdWVzdC5ibG9iKCkudGhl
bihmdW5jdGlvbihib2R5QXNCbG9iKSB7CisgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJl
YWRlcigpOworICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKGV2dCkgeworICAgICAgICBy
ZXNvbHZlKHJlYWRlci5yZXN1bHQpCisgICAgICB9OworICAgICAgcmVhZGVyLm9uZXJyb3IgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgcmVqZWN0KCJCbG9iJ3MgcmVhZGVyIGZhaWxlZCIpOworICAg
ICAgfTsKKyAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGJvZHlBc0Jsb2IpOworICAgIH0pOworICAg
IHJldHVybiBwcm9taXNlLnRoZW4oZnVuY3Rpb24oYm9keSkgeworICAgICAgYXNzZXJ0X2VxdWFs
cyhib2R5LCAiIiwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOworICAgICAgYXNz
ZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQpOworICAgIH0pOworICB9KTsKK30KKworZnVuY3Rp
b24gY2hlY2tCb2R5QXJyYXlCdWZmZXIodGVzdCwgcmVxdWVzdCkgeworICByZXR1cm4gcmVxdWVz
dC5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oYm9keUFzQXJyYXlCdWZmZXIpIHsKKyAgICBh
c3NlcnRfZXF1YWxzKGJvZHlBc0FycmF5QnVmZmVyLmJ5dGVMZW5ndGgsIDAsICJSZXNvbHZlZCB2
YWx1ZSBzaG91bGQgYmUgZW1wdHkiKTsKKyAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNl
ZCk7CisgIH0pOworfQorCitmdW5jdGlvbiBjaGVja0JvZHlKU09OKHRlc3QsIHJlcXVlc3QpIHsK
KyAgcmV0dXJuIHJlcXVlc3QuanNvbigpLnRoZW4oCisgICAgZnVuY3Rpb24oYm9keUFzSlNPTikg
eworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiSlNPTiBwYXJzaW5nIHNob3VsZCBmYWlsIik7Cisg
ICAgfSwKKyAgICBmdW5jdGlvbigpIHsKKyAgICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlV
c2VkKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY2hlY2tCb2R5Rm9ybURhdGEodGVzdCwgcmVx
dWVzdCkgeworICByZXR1cm4gcmVxdWVzdC5mb3JtRGF0YSgpLnRoZW4oZnVuY3Rpb24oYm9keUFz
Rm9ybURhdGEpIHsKKyAgICBhc3NlcnRfdHJ1ZShib2R5QXNGb3JtRGF0YSBpbnN0YW5jZW9mIEZv
cm1EYXRhLCAiU2hvdWxkIHJlY2VpdmUgYSBGb3JtRGF0YSIpOworICAgIGFzc2VydF9mYWxzZShy
ZXF1ZXN0LmJvZHlVc2VkKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrQm9keUZvcm1EYXRh
RXJyb3IodGVzdCwgcmVxdWVzdCkgeworICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3Qs
IFR5cGVFcnJvciwgcmVxdWVzdC5mb3JtRGF0YSgpKS50aGVuKGZ1bmN0aW9uKCkgeworICAgIGFz
c2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNr
UmVxdWVzdFdpdGhOb0JvZHkoYm9keVR5cGUsIGNoZWNrRnVuY3Rpb24sIGhlYWRlcnMgPSBbXSkg
eworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZhciByZXF1ZXN0ID0gbmV3
IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiaGVhZGVycyI6IGhlYWRlcnN9KTsKKyAg
ICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNlZCk7CisgICAgcmV0dXJuIGNoZWNrRnVuY3Rp
b24odGVzdCwgcmVxdWVzdCk7CisgIH0sICJDb25zdW1lIHJlcXVlc3QncyBib2R5IGFzICIgKyBi
b2R5VHlwZSk7Cit9CisKK2NoZWNrUmVxdWVzdFdpdGhOb0JvZHkoInRleHQiLCBjaGVja0JvZHlU
ZXh0KTsKK2NoZWNrUmVxdWVzdFdpdGhOb0JvZHkoImJsb2IiLCBjaGVja0JvZHlCbG9iKTsKK2No
ZWNrUmVxdWVzdFdpdGhOb0JvZHkoImFycmF5QnVmZmVyIiwgY2hlY2tCb2R5QXJyYXlCdWZmZXIp
OworY2hlY2tSZXF1ZXN0V2l0aE5vQm9keSgianNvbiAoZXJyb3IgY2FzZSkiLCBjaGVja0JvZHlK
U09OKTsKK2NoZWNrUmVxdWVzdFdpdGhOb0JvZHkoImZvcm1EYXRhIHdpdGggY29ycmVjdCBtdWx0
aXBhcnQgdHlwZSAoZXJyb3IgY2FzZSkiLCBjaGVja0JvZHlGb3JtRGF0YUVycm9yLCBbWyJDb250
ZW50LVR5cGUiLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9ImJvdW5kYXJ5IiddXSk7
CitjaGVja1JlcXVlc3RXaXRoTm9Cb2R5KCJmb3JtRGF0YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2Rl
ZCB0eXBlIiwgY2hlY2tCb2R5Rm9ybURhdGEsIFtbIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlv
bi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCJdXSk7CitjaGVja1JlcXVlc3RX
aXRoTm9Cb2R5KCJmb3JtRGF0YSB3aXRob3V0IGNvcnJlY3QgdHlwZSAoZXJyb3IgY2FzZSkiLCBj
aGVja0JvZHlGb3JtRGF0YUVycm9yKTsKKworZnVuY3Rpb24gY2hlY2tSZXF1ZXN0V2l0aEVtcHR5
Qm9keShib2R5VHlwZSwgYm9keSwgYXNUZXh0KSB7CisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0
ZXN0KSB7CisgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9T
VCIsICJib2R5IjogYm9keX0pOworICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkLCAi
Ym9keVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOworICAgIGlmIChhc1RleHQpIHsKKyAgICAgIHJl
dHVybiByZXF1ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc1N0cmluZykgeworICAgICAg
ICBhc3NlcnRfZXF1YWxzKGJvZHlBc1N0cmluZy5sZW5ndGgsIDAsICJSZXNvbHZlZCB2YWx1ZSBz
aG91bGQgYmUgZW1wdHkiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwg
ImJvZHlVc2VkIGlzIHRydWUgYWZ0ZXIgYmVpbmcgY29uc3VtZWQiKTsKKyAgICAgIH0pOworICAg
IH0KKyAgICByZXR1cm4gcmVxdWVzdC5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oYm9keUFz
QXJyYXlCdWZmZXIpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMoYm9keUFzQXJyYXlCdWZmZXIuYnl0
ZUxlbmd0aCwgMCwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOworICAgICAgYXNz
ZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIHRydWUgYWZ0ZXIgYmVpbmcg
Y29uc3VtZWQiKTsKKyAgICB9KTsKKyAgfSwgIkNvbnN1bWUgZW1wdHkgIiArIGJvZHlUeXBlICsg
IiByZXF1ZXN0IGJvZHkgYXMgIiArIChhc1RleHQgPyAidGV4dCIgOiAiYXJyYXlCdWZmZXIiKSk7
Cit9CisKKy8vIEZJWE1FOiBBZGQgQnVmZmVyU291cmNlLCBGb3JtRGF0YSBhbmQgVVJMU2VhcmNo
UGFyYW1zLgorY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgiYmxvYiIsIG5ldyBCbG9iKFtdLCB7
ICJ0eXBlIiA6ICJ0ZXh0L3BsYWluIiB9KSwgZmFsc2UpOworY2hlY2tSZXF1ZXN0V2l0aEVtcHR5
Qm9keSgidGV4dCIsICIiLCBmYWxzZSk7CitjaGVja1JlcXVlc3RXaXRoRW1wdHlCb2R5KCJibG9i
IiwgbmV3IEJsb2IoW10sIHsgInR5cGUiIDogInRleHQvcGxhaW4iIH0pLCB0cnVlKTsKK2NoZWNr
UmVxdWVzdFdpdGhFbXB0eUJvZHkoInRleHQiLCAiIiwgdHJ1ZSk7CitjaGVja1JlcXVlc3RXaXRo
RW1wdHlCb2R5KCJVUkxTZWFyY2hQYXJhbXMiLCBuZXcgVVJMU2VhcmNoUGFyYW1zKCIiKSwgdHJ1
ZSk7CisvLyBGSVhNRTogVGhpcyB0ZXN0IGFzc3VtZXMgdGhhdCB0aGUgZW1wdHkgc3RyaW5nIGJl
IHJldHVybmVkIGJ1dCBpdCBpcyBub3QgY2xlYXIgd2hldGhlciB0aGF0IGlzIHJpZ2h0LiBTZWUg
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8zOTUwLgorY2hl
Y2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgiRm9ybURhdGEiLCBuZXcgRm9ybURhdGEoKSwgdHJ1ZSk7
CitjaGVja1JlcXVlc3RXaXRoRW1wdHlCb2R5KCJBcnJheUJ1ZmZlciIsIG5ldyBBcnJheUJ1ZmZl
cigpLCB0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5LmFueS53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI3ZWIzMWE3MTBhMTNlYzJiZjRiNDYxM2Y0YmVk
NWZlMDM4YzBjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKKworUEFTUyBDb25zdW1l
IHJlcXVlc3QncyBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBi
bG9iCitQQVNTIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgYXJyYXlCdWZmZXIKK1BBU1MgQ29u
c3VtZSByZXF1ZXN0J3MgYm9keSBhcyBqc29uIChlcnJvciBjYXNlKQorRkFJTCBDb25zdW1lIHJl
cXVlc3QncyBib2R5IGFzIGZvcm1EYXRhIHdpdGggY29ycmVjdCBtdWx0aXBhcnQgdHlwZSAoZXJy
b3IgY2FzZSkgcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJv
dyBlIH0iIHRocmV3IHVuZGVmaW5lZCB3aXRoIHR5cGUgInVuZGVmaW5lZCIsIG5vdCBhbiBvYmpl
Y3QKK0ZBSUwgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBmb3JtRGF0YSB3aXRoIGNvcnJlY3Qg
dXJsZW5jb2RlZCB0eXBlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiB1bmRlZmluZWQKK0ZBSUwgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBmb3JtRGF0YSB3
aXRob3V0IGNvcnJlY3QgdHlwZSAoZXJyb3IgY2FzZSkgcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IHVuZGVmaW5lZCB3aXRoIHR5cGUg
InVuZGVmaW5lZCIsIG5vdCBhbiBvYmplY3QKK1BBU1MgQ29uc3VtZSBlbXB0eSBibG9iIHJlcXVl
c3QgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25zdW1lIGVtcHR5IHRleHQgcmVxdWVzdCBi
b2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgZW1wdHkgYmxvYiByZXF1ZXN0IGJvZHkg
YXMgdGV4dAorUEFTUyBDb25zdW1lIGVtcHR5IHRleHQgcmVxdWVzdCBib2R5IGFzIHRleHQKK1BB
U1MgQ29uc3VtZSBlbXB0eSBVUkxTZWFyY2hQYXJhbXMgcmVxdWVzdCBib2R5IGFzIHRleHQKK0ZB
SUwgQ29uc3VtZSBlbXB0eSBGb3JtRGF0YSByZXF1ZXN0IGJvZHkgYXMgdGV4dCBhc3NlcnRfZXF1
YWxzOiBSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkgZXhwZWN0ZWQgMCBidXQgZ290IDQ0
CitQQVNTIENvbnN1bWUgZW1wdHkgQXJyYXlCdWZmZXIgcmVxdWVzdCBib2R5IGFzIHRleHQKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuYW55Lndvcmtlci5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIz
ODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBA
QAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0
dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jb25zdW1lLWVtcHR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQxNTk5NTg4ZWVkM2Q0MTJhMzA2YWQ1M2ZkNmVhNWY3YTQ3NGEyYjYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1w
dHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExNCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4K
LTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxl
PlJlcXVlc3QgY29uc3VtZSBlbXB0eSBib2RpZXM8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KLSAgICA8
bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9k
eS1taXhpbiI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2gg
RnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgotICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAg
PGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICBmdW5jdGlvbiBjaGVja0JvZHlUZXh0KHRlc3QsIHJl
cXVlc3QpIHsKLSAgICAgIHJldHVybiByZXF1ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlB
c1RleHQpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhib2R5QXNUZXh0LCAiIiwgIlJlc29sdmVk
IHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5i
b2R5VXNlZCk7Ci0gICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVja0JvZHlCbG9i
KHRlc3QsIHJlcXVlc3QpIHsKLSAgICAgIHJldHVybiByZXF1ZXN0LmJsb2IoKS50aGVuKGZ1bmN0
aW9uKGJvZHlBc0Jsb2IpIHsKLSAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVS
ZWFkZXIoKTsKLSAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZXZ0KSB7Ci0gICAg
ICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQpCi0gICAgICAgICAgfTsKLSAgICAgICAgICBy
ZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcmVqZWN0KCJCbG9iJ3Mg
cmVhZGVyIGZhaWxlZCIpOwotICAgICAgICAgIH07Ci0gICAgICAgICAgcmVhZGVyLnJlYWRBc1Rl
eHQoYm9keUFzQmxvYik7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVu
KGZ1bmN0aW9uKGJvZHkpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJvZHksICIiLCAiUmVz
b2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7Ci0gICAgICAgICAgYXNzZXJ0X2ZhbHNlKHJl
cXVlc3QuYm9keVVzZWQpOwotICAgICAgICB9KTsKLSAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIGNoZWNrQm9keUFycmF5QnVmZmVyKHRlc3QsIHJlcXVlc3QpIHsKLSAgICAgIHJldHVy
biByZXF1ZXN0LmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbihib2R5QXNBcnJheUJ1ZmZlcikg
ewotICAgICAgICBhc3NlcnRfZXF1YWxzKGJvZHlBc0FycmF5QnVmZmVyLmJ5dGVMZW5ndGgsIDAs
ICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNl
KHJlcXVlc3QuYm9keVVzZWQpOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY2hl
Y2tCb2R5SlNPTih0ZXN0LCByZXF1ZXN0KSB7Ci0gICAgICByZXR1cm4gcmVxdWVzdC5qc29uKCku
dGhlbigKLSAgICAgICAgZnVuY3Rpb24oYm9keUFzSlNPTikgewotICAgICAgICAgIGFzc2VydF91
bnJlYWNoZWQoIkpTT04gcGFyc2luZyBzaG91bGQgZmFpbCIpOwotICAgICAgICB9LAotICAgICAg
ICBmdW5jdGlvbigpIHsKLSAgICAgICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNlZCk7
Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNoZWNrQm9keUZvcm1EYXRhKHRl
c3QsIHJlcXVlc3QpIHsKLSAgICAgIHJldHVybiByZXF1ZXN0LmZvcm1EYXRhKCkudGhlbihmdW5j
dGlvbihib2R5QXNGb3JtRGF0YSkgewotICAgICAgICBhc3NlcnRfdHJ1ZShib2R5QXNGb3JtRGF0
YSBpbnN0YW5jZW9mIEZvcm1EYXRhLCAiU2hvdWxkIHJlY2VpdmUgYSBGb3JtRGF0YSIpOwotICAg
ICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNlZCk7Ci0gICAgIH0pOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIGNoZWNrQm9keUZvcm1EYXRhRXJyb3IodGVzdCwgcmVxdWVzdCkgewotICAg
ICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlcXVlc3QuZm9y
bURhdGEoKSkudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3Qu
Ym9keVVzZWQpOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY2hlY2tSZXF1ZXN0
V2l0aE5vQm9keShib2R5VHlwZSwgY2hlY2tGdW5jdGlvbiwgaGVhZGVycyA9IFtdKSB7Ci0gICAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgICAgICB2YXIgcmVxdWVzdCA9IG5l
dyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQT1NUIiwgImhlYWRlcnMiOiBoZWFkZXJzfSk7Ci0g
ICAgICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkKTsKLSAgICAgICAgcmV0dXJuIGNo
ZWNrRnVuY3Rpb24odGVzdCwgcmVxdWVzdCk7Ci0gICAgICB9LCAiQ29uc3VtZSByZXF1ZXN0J3Mg
Ym9keSBhcyAiICsgYm9keVR5cGUpOwotICAgIH0KLQotICAgIGNoZWNrUmVxdWVzdFdpdGhOb0Jv
ZHkoInRleHQiLCBjaGVja0JvZHlUZXh0KTsKLSAgICBjaGVja1JlcXVlc3RXaXRoTm9Cb2R5KCJi
bG9iIiwgY2hlY2tCb2R5QmxvYik7Ci0gICAgY2hlY2tSZXF1ZXN0V2l0aE5vQm9keSgiYXJyYXlC
dWZmZXIiLCBjaGVja0JvZHlBcnJheUJ1ZmZlcik7Ci0gICAgY2hlY2tSZXF1ZXN0V2l0aE5vQm9k
eSgianNvbiAoZXJyb3IgY2FzZSkiLCBjaGVja0JvZHlKU09OKTsKLSAgICBjaGVja1JlcXVlc3RX
aXRoTm9Cb2R5KCJmb3JtRGF0YSB3aXRoIGNvcnJlY3QgbXVsdGlwYXJ0IHR5cGUgKGVycm9yIGNh
c2UpIiwgY2hlY2tCb2R5Rm9ybURhdGFFcnJvciwgW1siQ29udGVudC1UeXBlIiwgJ211bHRpcGFy
dC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSJib3VuZGFyeSInXV0pOwotICAgIGNoZWNrUmVxdWVzdFdp
dGhOb0JvZHkoImZvcm1EYXRhIHdpdGggY29ycmVjdCB1cmxlbmNvZGVkIHR5cGUiLCBjaGVja0Jv
ZHlGb3JtRGF0YSwgW1siQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJs
ZW5jb2RlZDtjaGFyc2V0PVVURi04Il1dKTsKLSAgICBjaGVja1JlcXVlc3RXaXRoTm9Cb2R5KCJm
b3JtRGF0YSB3aXRob3V0IGNvcnJlY3QgdHlwZSAoZXJyb3IgY2FzZSkiLCBjaGVja0JvZHlGb3Jt
RGF0YUVycm9yKTsKLQotICAgIGZ1bmN0aW9uIGNoZWNrUmVxdWVzdFdpdGhFbXB0eUJvZHkoYm9k
eVR5cGUsIGJvZHksIGFzVGV4dCkgewotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3Qp
IHsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9T
VCIsICJib2R5IjogYm9keX0pOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNl
ZCwgImJvZHlVc2VkIGlzIGZhbHNlIGF0IGluaXQiKTsKLSAgICAgICAgaWYgKGFzVGV4dCkgewot
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc1N0cmlu
ZykgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhib2R5QXNTdHJpbmcubGVuZ3RoLCAwLCAi
UmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1
ZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgdHJ1ZSBhZnRlciBiZWluZyBjb25zdW1l
ZCIpOwotICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXF1ZXN0LmFy
cmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbihib2R5QXNBcnJheUJ1ZmZlcikgewotICAgICAgICAg
IGFzc2VydF9lcXVhbHMoYm9keUFzQXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCwgMCwgIlJlc29sdmVk
IHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOwotICAgICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3Qu
Ym9keVVzZWQsICJib2R5VXNlZCBpcyB0cnVlIGFmdGVyIGJlaW5nIGNvbnN1bWVkIik7Ci0gICAg
ICAgIH0pOwotICAgICAgfSwgIkNvbnN1bWUgZW1wdHkgIiArIGJvZHlUeXBlICsgIiByZXF1ZXN0
IGJvZHkgYXMgIiArIChhc1RleHQgPyAidGV4dCIgOiAiYXJyYXlCdWZmZXIiKSk7Ci0gICAgfQot
Ci0gICAgLy8gRklYTUU6IEFkZCBCdWZmZXJTb3VyY2UsIEZvcm1EYXRhIGFuZCBVUkxTZWFyY2hQ
YXJhbXMuCi0gICAgY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgiYmxvYiIsIG5ldyBCbG9iKFtd
LCB7ICJ0eXBlIiA6ICJ0ZXh0L3BsYWluIiB9KSwgZmFsc2UpOwotICAgIGNoZWNrUmVxdWVzdFdp
dGhFbXB0eUJvZHkoInRleHQiLCAiIiwgZmFsc2UpOwotICAgIGNoZWNrUmVxdWVzdFdpdGhFbXB0
eUJvZHkoImJsb2IiLCBuZXcgQmxvYihbXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSksIHRy
dWUpOwotICAgIGNoZWNrUmVxdWVzdFdpdGhFbXB0eUJvZHkoInRleHQiLCAiIiwgdHJ1ZSk7Ci0g
ICAgY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgiVVJMU2VhcmNoUGFyYW1zIiwgbmV3IFVSTFNl
YXJjaFBhcmFtcygiIiksIHRydWUpOwotICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgYXNzdW1lcyB0
aGF0IHRoZSBlbXB0eSBzdHJpbmcgYmUgcmV0dXJuZWQgYnV0IGl0IGlzIG5vdCBjbGVhciB3aGV0
aGVyIHRoYXQgaXMgcmlnaHQuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9wdWxsLzM5NTAuCi0gICAgY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgiRm9ybURh
dGEiLCBuZXcgRm9ybURhdGEoKSwgdHJ1ZSk7Ci0gICAgY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9k
eSgiQXJyYXlCdWZmZXIiLCBuZXcgQXJyYXlCdWZmZXIoKSwgdHJ1ZSk7Ci0gICAgPC9zY3JpcHQ+
Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzM3NjhjOWJjNTc1MGMwMzhiZTFlYmZmNWVlNmEyNzhmZDNm
MTcyYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY29uc3VtZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCww
IEBACi0KLVBBU1MgQ29uc3VtZSBTdHJpbmcgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dAotUEFTUyBD
b25zdW1lIFN0cmluZyByZXF1ZXN0J3MgYm9keSBhcyBibG9iCi1QQVNTIENvbnN1bWUgU3RyaW5n
IHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCi1QQVNTIENvbnN1bWUgU3RyaW5nIHJlcXVl
c3QncyBib2R5IGFzIEpTT04KLVBBU1MgQ29uc3VtZSBBcnJheUJ1ZmZlciByZXF1ZXN0J3MgYm9k
eSBhcyB0ZXh0Ci1QQVNTIENvbnN1bWUgQXJyYXlCdWZmZXIgcmVxdWVzdCdzIGJvZHkgYXMgYmxv
YgotUEFTUyBDb25zdW1lIEFycmF5QnVmZmVyIHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVy
Ci1QQVNTIENvbnN1bWUgQXJyYXlCdWZmZXIgcmVxdWVzdCdzIGJvZHkgYXMgSlNPTgotUEFTUyBD
b25zdW1lIFVpbnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dAotUEFTUyBDb25zdW1lIFVp
bnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgotUEFTUyBDb25zdW1lIFVpbnQ4QXJyYXkg
cmVxdWVzdCdzIGJvZHkgYXMgYXJyYXlCdWZmZXIKLVBBU1MgQ29uc3VtZSBVaW50OEFycmF5IHJl
cXVlc3QncyBib2R5IGFzIEpTT04KLVBBU1MgQ29uc3VtZSBJbnQ4QXJyYXkgcmVxdWVzdCdzIGJv
ZHkgYXMgdGV4dAotUEFTUyBDb25zdW1lIEludDhBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBibG9i
Ci1QQVNTIENvbnN1bWUgSW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCi1Q
QVNTIENvbnN1bWUgSW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIEpTT04KLVBBU1MgQ29uc3Vt
ZSBGbG9hdDMyQXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dAotUEFTUyBDb25zdW1lIEZsb2F0
MzJBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBibG9iCi1QQVNTIENvbnN1bWUgRmxvYXQzMkFycmF5
IHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCi1QQVNTIENvbnN1bWUgRmxvYXQzMkFycmF5
IHJlcXVlc3QncyBib2R5IGFzIEpTT04KLVBBU1MgQ29uc3VtZSBEYXRhVmlldyByZXF1ZXN0J3Mg
Ym9keSBhcyB0ZXh0Ci1QQVNTIENvbnN1bWUgRGF0YVZpZXcgcmVxdWVzdCdzIGJvZHkgYXMgYmxv
YgotUEFTUyBDb25zdW1lIERhdGFWaWV3IHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCi1Q
QVNTIENvbnN1bWUgRGF0YVZpZXcgcmVxdWVzdCdzIGJvZHkgYXMgSlNPTgotUEFTUyBDb25zdW1l
IEZvcm1EYXRhIHJlcXVlc3QncyBib2R5IGFzIEZvcm1EYXRhCi1QQVNTIENvbnN1bWUgYmxvYiBy
ZXNwb25zZSdzIGJvZHkgYXMgYmxvYgotUEFTUyBDb25zdW1lIGJsb2IgcmVzcG9uc2UncyBib2R5
IGFzIHRleHQKLVBBU1MgQ29uc3VtZSBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyBqc29uCi1QQVNT
IENvbnN1bWUgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMgYXJyYXlCdWZmZXIKLVBBU1MgQ29uc3Vt
ZSBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyBibG9iIChlbXB0eSBibG9iIGFzIGlucHV0KQotUEFT
UyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAnIm51bGwiJwotUEFTUyBDb25zdW1lIEpTT04gZnJv
bSB0ZXh0OiAnIjEiJwotUEFTUyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAnInRydWUiJwotUEFT
UyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAnIlwic3RyaW5nXCIiJwotRkFJTCBUcnlpbmcgdG8g
Y29uc3VtZSBiYWQgSlNPTiB0ZXh0IGFzIEpTT046ICd1bmRlZmluZWQnIHByb21pc2VfcmVqZWN0
c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlN5
bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4u
IiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9u
IFN5bnRheEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiU3ludGF4RXJyb3IiKQot
RkFJTCBUcnlpbmcgdG8gY29uc3VtZSBiYWQgSlNPTiB0ZXh0IGFzIEpTT046ICd7JyBwcm9taXNl
X3JlamVjdHNfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2Jq
ZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBw
YXR0ZXJuLiIgKCJTeW50YXhFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJm
dW5jdGlvbiBTeW50YXhFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlN5bnRheEVy
cm9yIikKLUZBSUwgVHJ5aW5nIHRvIGNvbnN1bWUgYmFkIEpTT04gdGV4dCBhcyBKU09OOiAnYScg
cHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRo
cmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhw
ZWN0ZWQgcGF0dGVybi4iICgiU3ludGF4RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5j
dGlvbiAiZnVuY3Rpb24gU3ludGF4RXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJT
eW50YXhFcnJvciIpCi1GQUlMIFRyeWluZyB0byBjb25zdW1lIGJhZCBKU09OIHRleHQgYXMgSlNP
TjogJ1snIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cg
ZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2gg
dGhlIGV4cGVjdGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ug
b2YgZnVuY3Rpb24gImZ1bmN0aW9uIFN5bnRheEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0K
LX0iICgiU3ludGF4RXJyb3IiKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5h
bnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuYW55LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43Mzc2OGM5YmM1NzUwYzAzOGJlMWViZmY1ZWU2YTI3OGZkM2YxNzJiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuYW55LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQ4IEBACisKK1BBU1MgQ29uc3VtZSBTdHJpbmcgcmVxdWVzdCdzIGJvZHkgYXMgdGV4
dAorUEFTUyBDb25zdW1lIFN0cmluZyByZXF1ZXN0J3MgYm9keSBhcyBibG9iCitQQVNTIENvbnN1
bWUgU3RyaW5nIHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgU3Ry
aW5nIHJlcXVlc3QncyBib2R5IGFzIEpTT04KK1BBU1MgQ29uc3VtZSBBcnJheUJ1ZmZlciByZXF1
ZXN0J3MgYm9keSBhcyB0ZXh0CitQQVNTIENvbnN1bWUgQXJyYXlCdWZmZXIgcmVxdWVzdCdzIGJv
ZHkgYXMgYmxvYgorUEFTUyBDb25zdW1lIEFycmF5QnVmZmVyIHJlcXVlc3QncyBib2R5IGFzIGFy
cmF5QnVmZmVyCitQQVNTIENvbnN1bWUgQXJyYXlCdWZmZXIgcmVxdWVzdCdzIGJvZHkgYXMgSlNP
TgorUEFTUyBDb25zdW1lIFVpbnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dAorUEFTUyBD
b25zdW1lIFVpbnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgorUEFTUyBDb25zdW1lIFVp
bnQ4QXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgYXJyYXlCdWZmZXIKK1BBU1MgQ29uc3VtZSBVaW50
OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIEpTT04KK1BBU1MgQ29uc3VtZSBJbnQ4QXJyYXkgcmVx
dWVzdCdzIGJvZHkgYXMgdGV4dAorUEFTUyBDb25zdW1lIEludDhBcnJheSByZXF1ZXN0J3MgYm9k
eSBhcyBibG9iCitQQVNTIENvbnN1bWUgSW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIGFycmF5
QnVmZmVyCitQQVNTIENvbnN1bWUgSW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIEpTT04KK1BB
U1MgQ29uc3VtZSBGbG9hdDMyQXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dAorUEFTUyBDb25z
dW1lIEZsb2F0MzJBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBibG9iCitQQVNTIENvbnN1bWUgRmxv
YXQzMkFycmF5IHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgRmxv
YXQzMkFycmF5IHJlcXVlc3QncyBib2R5IGFzIEpTT04KK1BBU1MgQ29uc3VtZSBEYXRhVmlldyBy
ZXF1ZXN0J3MgYm9keSBhcyB0ZXh0CitQQVNTIENvbnN1bWUgRGF0YVZpZXcgcmVxdWVzdCdzIGJv
ZHkgYXMgYmxvYgorUEFTUyBDb25zdW1lIERhdGFWaWV3IHJlcXVlc3QncyBib2R5IGFzIGFycmF5
QnVmZmVyCitQQVNTIENvbnN1bWUgRGF0YVZpZXcgcmVxdWVzdCdzIGJvZHkgYXMgSlNPTgorUEFT
UyBDb25zdW1lIEZvcm1EYXRhIHJlcXVlc3QncyBib2R5IGFzIEZvcm1EYXRhCitQQVNTIENvbnN1
bWUgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMgYmxvYgorUEFTUyBDb25zdW1lIGJsb2IgcmVzcG9u
c2UncyBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyBq
c29uCitQQVNTIENvbnN1bWUgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMgYXJyYXlCdWZmZXIKK1BB
U1MgQ29uc3VtZSBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyBibG9iIChlbXB0eSBibG9iIGFzIGlu
cHV0KQorUEFTUyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAnIm51bGwiJworUEFTUyBDb25zdW1l
IEpTT04gZnJvbSB0ZXh0OiAnIjEiJworUEFTUyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAnInRy
dWUiJworUEFTUyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAnIlwic3RyaW5nXCIiJworRkFJTCBU
cnlpbmcgdG8gY29uc3VtZSBiYWQgSlNPTiB0ZXh0IGFzIEpTT046ICd1bmRlZmluZWQnIHByb21p
c2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVk
IHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24g
ImZ1bmN0aW9uIFN5bnRheEVycm9yKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iICgiU3ludGF4
RXJyb3IiKQorRkFJTCBUcnlpbmcgdG8gY29uc3VtZSBiYWQgSlNPTiB0ZXh0IGFzIEpTT046ICd7
JyBwcm9taXNlX3JlamVjdHNfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIg
dGhyZXcgb2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBl
eHBlY3RlZCBwYXR0ZXJuLiIgKCJTeW50YXhFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1
bmN0aW9uICJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiAo
IlN5bnRheEVycm9yIikKK0ZBSUwgVHJ5aW5nIHRvIGNvbnN1bWUgYmFkIEpTT04gdGV4dCBhcyBK
U09OOiAnYScgcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJv
dyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBtYXRj
aCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iICgiU3ludGF4RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5j
ZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gU3ludGF4RXJyb3IoKSB7CisgICAgW25hdGl2ZSBjb2Rl
XQorfSIgKCJTeW50YXhFcnJvciIpCitGQUlMIFRyeWluZyB0byBjb25zdW1lIGJhZCBKU09OIHRl
eHQgYXMgSlNPTjogJ1snIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRpZCBu
b3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQg
aW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFN5bnRheEVycm9yKCkgeworICAgIFtuYXRp
dmUgY29kZV0KK30iICgiU3ludGF4RXJyb3IiKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y29uc3VtZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLmFueS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0t
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8g
cnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29u
c3VtZS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZmNWQ2NTI0NGExNWU5ZmI3Y2JkZWQxODBiY2RiNTVl
ZjY1YmUyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLmFueS5qcwpA
QCAtMCwwICsxLDE0NSBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6
IHRpdGxlPVJlcXVlc3QgY29uc3VtZQorLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGls
cy5qcworCitmdW5jdGlvbiBjaGVja0JvZHlUZXh0KHJlcXVlc3QsIGV4cGVjdGVkQm9keSkgewor
ICByZXR1cm4gcmVxdWVzdC50ZXh0KCkudGhlbihmdW5jdGlvbihib2R5QXNUZXh0KSB7CisgICAg
YXNzZXJ0X2VxdWFscyhib2R5QXNUZXh0LCBleHBlY3RlZEJvZHksICJSZXRyaWV2ZSBhbmQgdmVy
aWZ5IHJlcXVlc3QncyBib2R5Iik7CisgICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwg
ImJvZHkgYXMgdGV4dDogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgfSk7Cit9CisKK2Z1bmN0
aW9uIGNoZWNrQm9keUJsb2IocmVxdWVzdCwgZXhwZWN0ZWRCb2R5LCBjaGVja0NvbnRlbnRUeXBl
KSB7CisgIHJldHVybiByZXF1ZXN0LmJsb2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2IpIHsK
KyAgICBpZiAoY2hlY2tDb250ZW50VHlwZSkKKyAgICAgIGFzc2VydF9lcXVhbHMoYm9keUFzQmxv
Yi50eXBlLCAidGV4dC9wbGFpbiIsICJCbG9iIGJvZHkgdHlwZSBzaG91bGQgYmUgY29tcHV0ZWQg
ZnJvbSB0aGUgcmVxdWVzdCBDb250ZW50LVR5cGUiKTsKKworICAgIHZhciBwcm9taXNlID0gbmV3
IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIHJlYWRlciA9
IG5ldyBGaWxlUmVhZGVyKCk7CisgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZXZ0KSB7
CisgICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCkKKyAgICAgIH07CisgICAgICByZWFkZXIu
b25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICByZWplY3QoIkJsb2IncyByZWFkZXIgZmFp
bGVkIik7CisgICAgICB9OworICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYm9keUFzQmxvYik7Cisg
ICAgfSk7CisgICAgcmV0dXJuIHByb21pc2UudGhlbihmdW5jdGlvbihib2R5KSB7CisgICAgICBh
c3NlcnRfZXF1YWxzKGJvZHksIGV4cGVjdGVkQm9keSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVx
dWVzdCdzIGJvZHkiKTsKKyAgICAgIGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5
IGFzIGJsb2I6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgICAgfSk7CisgIH0pOworfQorCitm
dW5jdGlvbiBjaGVja0JvZHlBcnJheUJ1ZmZlcihyZXF1ZXN0LCBleHBlY3RlZEJvZHkpIHsKKyAg
cmV0dXJuIHJlcXVlc3QuYXJyYXlCdWZmZXIoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0FycmF5QnVm
ZmVyKSB7CisgICAgdmFsaWRhdGVCdWZmZXJGcm9tU3RyaW5nKGJvZHlBc0FycmF5QnVmZmVyLCBl
eHBlY3RlZEJvZHksICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlcXVlc3QncyBib2R5Iik7CisgICAg
YXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwgImJvZHkgYXMgYXJyYXlCdWZmZXI6IGJvZHlV
c2VkIHR1cm5lZCB0cnVlIik7CisgIH0pOworfQorCitmdW5jdGlvbiBjaGVja0JvZHlKU09OKHJl
cXVlc3QsIGV4cGVjdGVkQm9keSkgeworICByZXR1cm4gcmVxdWVzdC5qc29uKCkudGhlbihmdW5j
dGlvbihib2R5QXNKU09OKSB7CisgICAgdmFyIHN0ckJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5
QXNKU09OKQorICAgIGFzc2VydF9lcXVhbHMoc3RyQm9keSwgZXhwZWN0ZWRCb2R5LCAiUmV0cmll
dmUgYW5kIHZlcmlmeSByZXF1ZXN0J3MgYm9keSIpOworICAgIGFzc2VydF90cnVlKHJlcXVlc3Qu
Ym9keVVzZWQsICJib2R5IGFzIGpzb246IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgIH0pOwor
fQorCitmdW5jdGlvbiBjaGVja0JvZHlGb3JtRGF0YShyZXF1ZXN0LCBleHBlY3RlZEJvZHkpIHsK
KyAgcmV0dXJuIHJlcXVlc3QuZm9ybURhdGEoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Zvcm1EYXRh
KSB7CisgICAgYXNzZXJ0X3RydWUoYm9keUFzRm9ybURhdGEgaW5zdGFuY2VvZiBGb3JtRGF0YSwg
IlNob3VsZCByZWNlaXZlIGEgRm9ybURhdGEiKTsKKyAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJv
ZHlVc2VkLCAiYm9keSBhcyBmb3JtRGF0YTogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgfSk7
Cit9CisKK2Z1bmN0aW9uIGNoZWNrUmVxdWVzdEJvZHkoYm9keSwgZXhwZWN0ZWQsIGJvZHlUeXBl
KSB7CisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIHJlcXVlc3QgPSBu
ZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogYm9keSwgImhlYWRlcnMi
OiBbWyJDb250ZW50LVR5cGUiLCAidGV4dC9QTEFJTiJdXSB9KTsKKyAgICBhc3NlcnRfZmFsc2Uo
cmVxdWVzdC5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIGZhbHNlIGF0IGluaXQiKTsKKyAgICByZXR1
cm4gY2hlY2tCb2R5VGV4dChyZXF1ZXN0LCBleHBlY3RlZCk7CisgIH0sICJDb25zdW1lICIgKyBi
b2R5VHlwZSAgKyAiIHJlcXVlc3QncyBib2R5IGFzIHRleHQiKTsKKyAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhv
ZCI6ICJQT1NUIiwgImJvZHkiOiBib2R5IH0pOworICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJv
ZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOworICAgIHJldHVybiBjaGVja0Jv
ZHlCbG9iKHJlcXVlc3QsIGV4cGVjdGVkKTsKKyAgfSwgIkNvbnN1bWUgIiArIGJvZHlUeXBlICAr
ICIgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYiIpOworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVz
dCkgeworICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1Qi
LCAiYm9keSI6IGJvZHkgfSk7CisgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQsICJi
b2R5VXNlZCBpcyBmYWxzZSBhdCBpbml0Iik7CisgICAgcmV0dXJuIGNoZWNrQm9keUFycmF5QnVm
ZmVyKHJlcXVlc3QsIGV4cGVjdGVkKTsKKyAgfSwgIkNvbnN1bWUgIiArIGJvZHlUeXBlICArICIg
cmVxdWVzdCdzIGJvZHkgYXMgYXJyYXlCdWZmZXIiKTsKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHRlc3QpIHsKKyAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQ
T1NUIiwgImJvZHkiOiBib2R5IH0pOworICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2Vk
LCAiYm9keVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOworICAgIHJldHVybiBjaGVja0JvZHlKU09O
KHJlcXVlc3QsIGV4cGVjdGVkKTsKKyAgfSwgIkNvbnN1bWUgIiArIGJvZHlUeXBlICArICIgcmVx
dWVzdCdzIGJvZHkgYXMgSlNPTiIpOworfQorCit2YXIgdGV4dERhdGEgPSBKU09OLnN0cmluZ2lm
eSgiVGhpcyBpcyByZXNwb25zZSdzIGJvZHkiKTsKK3ZhciBibG9iID0gbmV3IEJsb2IoW3RleHRE
YXRhXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSk7CisKK2NoZWNrUmVxdWVzdEJvZHkodGV4
dERhdGEsIHRleHREYXRhLCAiU3RyaW5nIik7CisKK3ZhciBzdHJpbmcgPSAiXCIxMjM0NTZcIiI7
CitmdW5jdGlvbiBnZXRBcnJheUJ1ZmZlcigpIHsKKyAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcg
QXJyYXlCdWZmZXIoOCk7CisgICAgdmFyIGludDhBcnJheSA9IG5ldyBJbnQ4QXJyYXkoYXJyYXlC
dWZmZXIpOworICAgIGZvciAodmFyIGNwdHIgPSAwOyBjcHRyIDwgODsgY3B0cisrKQorICAgICAg
ICBpbnQ4QXJyYXlbY3B0cl0gPSBzdHJpbmcuY2hhckNvZGVBdChjcHRyKTsKKyAgICByZXR1cm4g
YXJyYXlCdWZmZXI7Cit9CisKK2Z1bmN0aW9uIGdldEFycmF5QnVmZmVyV2l0aFplcm9zKCkgewor
ICAgIHZhciBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigxMCk7CisgICAgdmFyIGludDhB
cnJheSA9IG5ldyBJbnQ4QXJyYXkoYXJyYXlCdWZmZXIpOworICAgIGZvciAodmFyIGNwdHIgPSAw
OyBjcHRyIDwgODsgY3B0cisrKQorICAgICAgICBpbnQ4QXJyYXlbY3B0ciArIDFdID0gc3RyaW5n
LmNoYXJDb2RlQXQoY3B0cik7CisgICAgcmV0dXJuIGFycmF5QnVmZmVyOworfQorCitjaGVja1Jl
cXVlc3RCb2R5KGdldEFycmF5QnVmZmVyKCksIHN0cmluZywgIkFycmF5QnVmZmVyIik7CitjaGVj
a1JlcXVlc3RCb2R5KG5ldyBVaW50OEFycmF5KGdldEFycmF5QnVmZmVyKCkpLCBzdHJpbmcsICJV
aW50OEFycmF5Iik7CitjaGVja1JlcXVlc3RCb2R5KG5ldyBJbnQ4QXJyYXkoZ2V0QXJyYXlCdWZm
ZXJXaXRoWmVyb3MoKSwgMSwgOCksIHN0cmluZywgIkludDhBcnJheSIpOworY2hlY2tSZXF1ZXN0
Qm9keShuZXcgRmxvYXQzMkFycmF5KGdldEFycmF5QnVmZmVyKCkpLCBzdHJpbmcsICJGbG9hdDMy
QXJyYXkiKTsKK2NoZWNrUmVxdWVzdEJvZHkobmV3IERhdGFWaWV3KGdldEFycmF5QnVmZmVyV2l0
aFplcm9zKCksIDEsIDgpLCBzdHJpbmcsICJEYXRhVmlldyIpOworCitwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odGVzdCkgeworICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKKyAgZm9ybURh
dGEuYXBwZW5kKCJuYW1lIiwgInZhbHVlIikKKyAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgi
IiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogZm9ybURhdGEgfSk7CisgIGFzc2VydF9mYWxz
ZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOworICByZXR1
cm4gY2hlY2tCb2R5Rm9ybURhdGEocmVxdWVzdCwgZm9ybURhdGEpOworfSwgIkNvbnN1bWUgRm9y
bURhdGEgcmVxdWVzdCdzIGJvZHkgYXMgRm9ybURhdGEiKTsKKworZnVuY3Rpb24gY2hlY2tCbG9i
UmVzcG9uc2VCb2R5KGJsb2JCb2R5LCBibG9iRGF0YSwgYm9keVR5cGUsIGNoZWNrRnVuY3Rpb24p
IHsKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVzcG9uc2UgPSBu
ZXcgUmVzcG9uc2UoYmxvYkJvZHkpOworICAgIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNl
ZCwgImJvZHlVc2VkIGlzIGZhbHNlIGF0IGluaXQiKTsKKyAgICByZXR1cm4gY2hlY2tGdW5jdGlv
bihyZXNwb25zZSwgYmxvYkRhdGEpOworICB9LCAiQ29uc3VtZSBibG9iIHJlc3BvbnNlJ3MgYm9k
eSBhcyAiICsgYm9keVR5cGUpOworfQorCitjaGVja0Jsb2JSZXNwb25zZUJvZHkoYmxvYiwgdGV4
dERhdGEsICJibG9iIiwgY2hlY2tCb2R5QmxvYik7CitjaGVja0Jsb2JSZXNwb25zZUJvZHkoYmxv
YiwgdGV4dERhdGEsICJ0ZXh0IiwgY2hlY2tCb2R5VGV4dCk7CitjaGVja0Jsb2JSZXNwb25zZUJv
ZHkoYmxvYiwgdGV4dERhdGEsICJqc29uIiwgY2hlY2tCb2R5SlNPTik7CitjaGVja0Jsb2JSZXNw
b25zZUJvZHkoYmxvYiwgdGV4dERhdGEsICJhcnJheUJ1ZmZlciIsIGNoZWNrQm9keUFycmF5QnVm
ZmVyKTsKK2NoZWNrQmxvYlJlc3BvbnNlQm9keShuZXcgQmxvYihbIiJdKSwgIiIsICJibG9iIChl
bXB0eSBibG9iIGFzIGlucHV0KSIsIGNoZWNrQm9keUJsb2IpOworCit2YXIgZ29vZEpTT05WYWx1
ZXMgPSBbIm51bGwiLCAiMSIsICJ0cnVlIiwgIlwic3RyaW5nXCIiXTsKK2dvb2RKU09OVmFsdWVz
LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHsKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3Qp
IHsKKyAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQT1NUIiwg
ImJvZHkiOiB2YWx1ZX0pOworICAgIHJldHVybiByZXF1ZXN0Lmpzb24oKS50aGVuKGZ1bmN0aW9u
KHYpIHsKKyAgICAgIGFzc2VydF9lcXVhbHModiwgSlNPTi5wYXJzZSh2YWx1ZSkpOworICAgIH0p
OworICB9LCAiQ29uc3VtZSBKU09OIGZyb20gdGV4dDogJyIgKyBKU09OLnN0cmluZ2lmeSh2YWx1
ZSkgKyAiJyIpOworfSk7CisKK3ZhciBiYWRKU09OVmFsdWVzID0gWyJ1bmRlZmluZWQiLCAieyIs
ICJhIiwgIlsiXTsKK2JhZEpTT05WYWx1ZXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkgeworICBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6IHZhbHVlfSk7CisgICAgcmV0dXJuIHBy
b21pc2VfcmVqZWN0c19qcyh0ZXN0LCBTeW50YXhFcnJvciwgcmVxdWVzdC5qc29uKCkpOworICB9
LCAiVHJ5aW5nIHRvIGNvbnN1bWUgYmFkIEpTT04gdGV4dCBhcyBKU09OOiAnIiArIHZhbHVlICsg
IiciKTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43Mzc2OGM5YmM1NzUwYzAzOGJlMWViZmY1ZWU2YTI3OGZkM2YxNzJiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0OCBAQAorCitQQVNTIENvbnN1bWUgU3RyaW5nIHJlcXVlc3QncyBi
b2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBTdHJpbmcgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgor
UEFTUyBDb25zdW1lIFN0cmluZyByZXF1ZXN0J3MgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBD
b25zdW1lIFN0cmluZyByZXF1ZXN0J3MgYm9keSBhcyBKU09OCitQQVNTIENvbnN1bWUgQXJyYXlC
dWZmZXIgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dAorUEFTUyBDb25zdW1lIEFycmF5QnVmZmVyIHJl
cXVlc3QncyBib2R5IGFzIGJsb2IKK1BBU1MgQ29uc3VtZSBBcnJheUJ1ZmZlciByZXF1ZXN0J3Mg
Ym9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25zdW1lIEFycmF5QnVmZmVyIHJlcXVlc3QncyBi
b2R5IGFzIEpTT04KK1BBU1MgQ29uc3VtZSBVaW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIHRl
eHQKK1BBU1MgQ29uc3VtZSBVaW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIGJsb2IKK1BBU1Mg
Q29uc3VtZSBVaW50OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENv
bnN1bWUgVWludDhBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBKU09OCitQQVNTIENvbnN1bWUgSW50
OEFycmF5IHJlcXVlc3QncyBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBJbnQ4QXJyYXkgcmVx
dWVzdCdzIGJvZHkgYXMgYmxvYgorUEFTUyBDb25zdW1lIEludDhBcnJheSByZXF1ZXN0J3MgYm9k
eSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25zdW1lIEludDhBcnJheSByZXF1ZXN0J3MgYm9keSBh
cyBKU09OCitQQVNTIENvbnN1bWUgRmxvYXQzMkFycmF5IHJlcXVlc3QncyBib2R5IGFzIHRleHQK
K1BBU1MgQ29uc3VtZSBGbG9hdDMyQXJyYXkgcmVxdWVzdCdzIGJvZHkgYXMgYmxvYgorUEFTUyBD
b25zdW1lIEZsb2F0MzJBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBD
b25zdW1lIEZsb2F0MzJBcnJheSByZXF1ZXN0J3MgYm9keSBhcyBKU09OCitQQVNTIENvbnN1bWUg
RGF0YVZpZXcgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dAorUEFTUyBDb25zdW1lIERhdGFWaWV3IHJl
cXVlc3QncyBib2R5IGFzIGJsb2IKK1BBU1MgQ29uc3VtZSBEYXRhVmlldyByZXF1ZXN0J3MgYm9k
eSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBDb25zdW1lIERhdGFWaWV3IHJlcXVlc3QncyBib2R5IGFz
IEpTT04KK1BBU1MgQ29uc3VtZSBGb3JtRGF0YSByZXF1ZXN0J3MgYm9keSBhcyBGb3JtRGF0YQor
UEFTUyBDb25zdW1lIGJsb2IgcmVzcG9uc2UncyBib2R5IGFzIGJsb2IKK1BBU1MgQ29uc3VtZSBi
bG9iIHJlc3BvbnNlJ3MgYm9keSBhcyB0ZXh0CitQQVNTIENvbnN1bWUgYmxvYiByZXNwb25zZSdz
IGJvZHkgYXMganNvbgorUEFTUyBDb25zdW1lIGJsb2IgcmVzcG9uc2UncyBib2R5IGFzIGFycmF5
QnVmZmVyCitQQVNTIENvbnN1bWUgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMgYmxvYiAoZW1wdHkg
YmxvYiBhcyBpbnB1dCkKK1BBU1MgQ29uc3VtZSBKU09OIGZyb20gdGV4dDogJyJudWxsIicKK1BB
U1MgQ29uc3VtZSBKU09OIGZyb20gdGV4dDogJyIxIicKK1BBU1MgQ29uc3VtZSBKU09OIGZyb20g
dGV4dDogJyJ0cnVlIicKK1BBU1MgQ29uc3VtZSBKU09OIGZyb20gdGV4dDogJyJcInN0cmluZ1wi
IicKK0ZBSUwgVHJ5aW5nIHRvIGNvbnN1bWUgYmFkIEpTT04gdGV4dCBhcyBKU09OOiAndW5kZWZp
bmVkJyBwcm9taXNlX3JlamVjdHNfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUg
fSIgdGhyZXcgb2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRo
ZSBleHBlY3RlZCBwYXR0ZXJuLiIgKCJTeW50YXhFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9m
IGZ1bmN0aW9uICJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9
IiAoIlN5bnRheEVycm9yIikKK0ZBSUwgVHJ5aW5nIHRvIGNvbnN1bWUgYmFkIEpTT04gdGV4dCBh
cyBKU09OOiAneycgcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0
aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFRoZSBzdHJpbmcgZGlkIG5vdCBt
YXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iICgiU3ludGF4RXJyb3IiKSBleHBlY3RlZCBpbnN0
YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gU3ludGF4RXJyb3IoKSB7CisgICAgW25hdGl2ZSBj
b2RlXQorfSIgKCJTeW50YXhFcnJvciIpCitGQUlMIFRyeWluZyB0byBjb25zdW1lIGJhZCBKU09O
IHRleHQgYXMgSlNPTjogJ2EnIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVycm9yOiBUaGUgc3RyaW5nIGRp
ZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHBhdHRlcm4uIiAoIlN5bnRheEVycm9yIikgZXhwZWN0
ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFN5bnRheEVycm9yKCkgeworICAgIFtu
YXRpdmUgY29kZV0KK30iICgiU3ludGF4RXJyb3IiKQorRkFJTCBUcnlpbmcgdG8gY29uc3VtZSBi
YWQgSlNPTiB0ZXh0IGFzIEpTT046ICdbJyBwcm9taXNlX3JlamVjdHNfanM6IGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTeW50YXhFcnJvcjogVGhlIHN0
cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLiIgKCJTeW50YXhFcnJvciIp
IGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsK
KyAgICBbbmF0aXZlIGNvZGVdCit9IiAoIlN5bnRheEVycm9yIikKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNvbnN1bWUuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUu
YW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUw
NjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5hbnku
d29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNv
bnN1bWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDA2ZWY4YTdkMzZkYjg5OTkyN2U1ZDc2NDQ3ODgwZGViNjgyNTBmZmQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNvbnN1bWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1OCArMCwwIEBACi08IWRvY3R5cGUg
aHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAg
PHRpdGxlPlJlcXVlc3QgY29uc3VtZTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxtZXRhIG5h
bWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGlu
Ij4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2Ui
IGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3V0aWxzLmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8
c2NyaXB0PgotICAgIGZ1bmN0aW9uIGNoZWNrQm9keVRleHQocmVxdWVzdCwgZXhwZWN0ZWRCb2R5
KSB7Ci0gICAgICByZXR1cm4gcmVxdWVzdC50ZXh0KCkudGhlbihmdW5jdGlvbihib2R5QXNUZXh0
KSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYm9keUFzVGV4dCwgZXhwZWN0ZWRCb2R5LCAiUmV0
cmlldmUgYW5kIHZlcmlmeSByZXF1ZXN0J3MgYm9keSIpOwotICAgICAgICBhc3NlcnRfdHJ1ZShy
ZXF1ZXN0LmJvZHlVc2VkLCAiYm9keSBhcyB0ZXh0OiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOwot
ICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY2hlY2tCb2R5QmxvYihyZXF1ZXN0LCBl
eHBlY3RlZEJvZHksIGNoZWNrQ29udGVudFR5cGUpIHsKLSAgICAgIHJldHVybiByZXF1ZXN0LmJs
b2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2IpIHsKLSAgICAgICAgaWYgKGNoZWNrQ29udGVu
dFR5cGUpCi0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhib2R5QXNCbG9iLnR5cGUsICJ0ZXh0L3Bs
YWluIiwgIkJsb2IgYm9keSB0eXBlIHNob3VsZCBiZSBjb21wdXRlZCBmcm9tIHRoZSByZXF1ZXN0
IENvbnRlbnQtVHlwZSIpOwotCi0gICAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVu
Y3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmls
ZVJlYWRlcigpOwotICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldnQpIHsKLSAg
ICAgICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCkKLSAgICAgICAgICB9OwotICAgICAgICAg
IHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICByZWplY3QoIkJsb2In
cyByZWFkZXIgZmFpbGVkIik7Ci0gICAgICAgICAgfTsKLSAgICAgICAgICByZWFkZXIucmVhZEFz
VGV4dChib2R5QXNCbG9iKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBwcm9taXNlLnRo
ZW4oZnVuY3Rpb24oYm9keSkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoYm9keSwgZXhwZWN0
ZWRCb2R5LCAiUmV0cmlldmUgYW5kIHZlcmlmeSByZXF1ZXN0J3MgYm9keSIpOwotICAgICAgICAg
IGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5IGFzIGJsb2I6IGJvZHlVc2VkIHR1
cm5lZCB0cnVlIik7Ci0gICAgICAgIH0pOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gY2hlY2tCb2R5QXJyYXlCdWZmZXIocmVxdWVzdCwgZXhwZWN0ZWRCb2R5KSB7Ci0gICAgICBy
ZXR1cm4gcmVxdWVzdC5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oYm9keUFzQXJyYXlCdWZm
ZXIpIHsKLSAgICAgICAgdmFsaWRhdGVCdWZmZXJGcm9tU3RyaW5nKGJvZHlBc0FycmF5QnVmZmVy
LCBleHBlY3RlZEJvZHksICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlcXVlc3QncyBib2R5Iik7Ci0g
ICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5IGFzIGFycmF5QnVmZmVy
OiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gY2hlY2tCb2R5SlNPTihyZXF1ZXN0LCBleHBlY3RlZEJvZHkpIHsKLSAgICAgIHJldHVybiBy
ZXF1ZXN0Lmpzb24oKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0pTT04pIHsKLSAgICAgICAgdmFyIHN0
ckJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5QXNKU09OKQotICAgICAgICBhc3NlcnRfZXF1YWxz
KHN0ckJvZHksIGV4cGVjdGVkQm9keSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVxdWVzdCdzIGJv
ZHkiKTsKLSAgICAgICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwgImJvZHkgYXMganNv
bjogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKLSAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIGNoZWNrQm9keUZvcm1EYXRhKHJlcXVlc3QsIGV4cGVjdGVkQm9keSkgewotICAgICAgcmV0
dXJuIHJlcXVlc3QuZm9ybURhdGEoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Zvcm1EYXRhKSB7Ci0g
ICAgICAgIGFzc2VydF90cnVlKGJvZHlBc0Zvcm1EYXRhIGluc3RhbmNlb2YgRm9ybURhdGEsICJT
aG91bGQgcmVjZWl2ZSBhIEZvcm1EYXRhIik7Ci0gICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3Qu
Ym9keVVzZWQsICJib2R5IGFzIGZvcm1EYXRhOiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOwotICAg
ICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVja1JlcXVlc3RCb2R5KGJvZHksIGV4cGVj
dGVkLCBib2R5VHlwZSkgewotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAg
ICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJi
b2R5IjogYm9keSwgImhlYWRlcnMiOiBbWyJDb250ZW50LVR5cGUiLCAidGV4dC9QTEFJTiJdXSB9
KTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5VXNlZCBpcyBm
YWxzZSBhdCBpbml0Iik7Ci0gICAgICAgIHJldHVybiBjaGVja0JvZHlUZXh0KHJlcXVlc3QsIGV4
cGVjdGVkKTsKLSAgICAgIH0sICJDb25zdW1lICIgKyBib2R5VHlwZSAgKyAiIHJlcXVlc3QncyBi
b2R5IGFzIHRleHQiKTsKLSAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAg
ICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9k
eSI6IGJvZHkgfSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9k
eVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOwotICAgICAgICByZXR1cm4gY2hlY2tCb2R5QmxvYihy
ZXF1ZXN0LCBleHBlY3RlZCk7Ci0gICAgICB9LCAiQ29uc3VtZSAiICsgYm9keVR5cGUgICsgIiBy
ZXF1ZXN0J3MgYm9keSBhcyBibG9iIik7Ci0gICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVz
dCkgewotICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQ
T1NUIiwgImJvZHkiOiBib2R5IH0pOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5
VXNlZCwgImJvZHlVc2VkIGlzIGZhbHNlIGF0IGluaXQiKTsKLSAgICAgICAgcmV0dXJuIGNoZWNr
Qm9keUFycmF5QnVmZmVyKHJlcXVlc3QsIGV4cGVjdGVkKTsKLSAgICAgIH0sICJDb25zdW1lICIg
KyBib2R5VHlwZSAgKyAiIHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyIik7Ci0gICAgICBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBS
ZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQT1NUIiwgImJvZHkiOiBib2R5IH0pOwotICAgICAgICBh
c3NlcnRfZmFsc2UocmVxdWVzdC5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIGZhbHNlIGF0IGluaXQi
KTsKLSAgICAgICAgcmV0dXJuIGNoZWNrQm9keUpTT04ocmVxdWVzdCwgZXhwZWN0ZWQpOwotICAg
ICAgfSwgIkNvbnN1bWUgIiArIGJvZHlUeXBlICArICIgcmVxdWVzdCdzIGJvZHkgYXMgSlNPTiIp
OwotICAgIH0KLQotICAgIHZhciB0ZXh0RGF0YSA9IEpTT04uc3RyaW5naWZ5KCJUaGlzIGlzIHJl
c3BvbnNlJ3MgYm9keSIpOwotICAgIHZhciBibG9iID0gbmV3IEJsb2IoW3RleHREYXRhXSwgeyAi
dHlwZSIgOiAidGV4dC9wbGFpbiIgfSk7Ci0KLSAgICBjaGVja1JlcXVlc3RCb2R5KHRleHREYXRh
LCB0ZXh0RGF0YSwgIlN0cmluZyIpOwotCi0gICAgdmFyIHN0cmluZyA9ICJcIjEyMzQ1NlwiIjsK
LSAgICBmdW5jdGlvbiBnZXRBcnJheUJ1ZmZlcigpIHsKLSAgICAgICAgdmFyIGFycmF5QnVmZmVy
ID0gbmV3IEFycmF5QnVmZmVyKDgpOwotICAgICAgICB2YXIgaW50OEFycmF5ID0gbmV3IEludDhB
cnJheShhcnJheUJ1ZmZlcik7Ci0gICAgICAgIGZvciAodmFyIGNwdHIgPSAwOyBjcHRyIDwgODsg
Y3B0cisrKQotICAgICAgICAgICAgaW50OEFycmF5W2NwdHJdID0gc3RyaW5nLmNoYXJDb2RlQXQo
Y3B0cik7Ci0gICAgICAgIHJldHVybiBhcnJheUJ1ZmZlcjsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBnZXRBcnJheUJ1ZmZlcldpdGhaZXJvcygpIHsKLSAgICAgICAgdmFyIGFycmF5QnVmZmVyID0g
bmV3IEFycmF5QnVmZmVyKDEwKTsKLSAgICAgICAgdmFyIGludDhBcnJheSA9IG5ldyBJbnQ4QXJy
YXkoYXJyYXlCdWZmZXIpOwotICAgICAgICBmb3IgKHZhciBjcHRyID0gMDsgY3B0ciA8IDg7IGNw
dHIrKykKLSAgICAgICAgICAgIGludDhBcnJheVtjcHRyICsgMV0gPSBzdHJpbmcuY2hhckNvZGVB
dChjcHRyKTsKLSAgICAgICAgcmV0dXJuIGFycmF5QnVmZmVyOwotICAgIH0KLQotICAgIGNoZWNr
UmVxdWVzdEJvZHkoZ2V0QXJyYXlCdWZmZXIoKSwgc3RyaW5nLCAiQXJyYXlCdWZmZXIiKTsKLSAg
ICBjaGVja1JlcXVlc3RCb2R5KG5ldyBVaW50OEFycmF5KGdldEFycmF5QnVmZmVyKCkpLCBzdHJp
bmcsICJVaW50OEFycmF5Iik7Ci0gICAgY2hlY2tSZXF1ZXN0Qm9keShuZXcgSW50OEFycmF5KGdl
dEFycmF5QnVmZmVyV2l0aFplcm9zKCksIDEsIDgpLCBzdHJpbmcsICJJbnQ4QXJyYXkiKTsKLSAg
ICBjaGVja1JlcXVlc3RCb2R5KG5ldyBGbG9hdDMyQXJyYXkoZ2V0QXJyYXlCdWZmZXIoKSksIHN0
cmluZywgIkZsb2F0MzJBcnJheSIpOwotICAgIGNoZWNrUmVxdWVzdEJvZHkobmV3IERhdGFWaWV3
KGdldEFycmF5QnVmZmVyV2l0aFplcm9zKCksIDEsIDgpLCBzdHJpbmcsICJEYXRhVmlldyIpOwot
Ci0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgIHZhciBmb3JtRGF0YSA9
IG5ldyBGb3JtRGF0YSgpOwotICAgICAgZm9ybURhdGEuYXBwZW5kKCJuYW1lIiwgInZhbHVlIikK
LSAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAi
Ym9keSI6IGZvcm1EYXRhIH0pOwotICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQs
ICJib2R5VXNlZCBpcyBmYWxzZSBhdCBpbml0Iik7Ci0gICAgICByZXR1cm4gY2hlY2tCb2R5Rm9y
bURhdGEocmVxdWVzdCwgZm9ybURhdGEpOwotICAgIH0sICJDb25zdW1lIEZvcm1EYXRhIHJlcXVl
c3QncyBib2R5IGFzIEZvcm1EYXRhIik7Ci0KLSAgICBmdW5jdGlvbiBjaGVja0Jsb2JSZXNwb25z
ZUJvZHkoYmxvYkJvZHksIGJsb2JEYXRhLCBib2R5VHlwZSwgY2hlY2tGdW5jdGlvbikgewotICAg
ICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJlc3BvbnNlID0g
bmV3IFJlc3BvbnNlKGJsb2JCb2R5KTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJv
ZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOwotICAgICAgICByZXR1cm4gY2hl
Y2tGdW5jdGlvbihyZXNwb25zZSwgYmxvYkRhdGEpOwotICAgICAgfSwgIkNvbnN1bWUgYmxvYiBy
ZXNwb25zZSdzIGJvZHkgYXMgIiArIGJvZHlUeXBlKTsKLSAgICB9Ci0KLSAgICBjaGVja0Jsb2JS
ZXNwb25zZUJvZHkoYmxvYiwgdGV4dERhdGEsICJibG9iIiwgY2hlY2tCb2R5QmxvYik7Ci0gICAg
Y2hlY2tCbG9iUmVzcG9uc2VCb2R5KGJsb2IsIHRleHREYXRhLCAidGV4dCIsIGNoZWNrQm9keVRl
eHQpOwotICAgIGNoZWNrQmxvYlJlc3BvbnNlQm9keShibG9iLCB0ZXh0RGF0YSwgImpzb24iLCBj
aGVja0JvZHlKU09OKTsKLSAgICBjaGVja0Jsb2JSZXNwb25zZUJvZHkoYmxvYiwgdGV4dERhdGEs
ICJhcnJheUJ1ZmZlciIsIGNoZWNrQm9keUFycmF5QnVmZmVyKTsKLSAgICBjaGVja0Jsb2JSZXNw
b25zZUJvZHkobmV3IEJsb2IoWyIiXSksICIiLCAiYmxvYiAoZW1wdHkgYmxvYiBhcyBpbnB1dCki
LCBjaGVja0JvZHlCbG9iKTsKLQotICAgIHZhciBnb29kSlNPTlZhbHVlcyA9IFsibnVsbCIsICIx
IiwgInRydWUiLCAiXCJzdHJpbmdcIiJdOwotICAgIGdvb2RKU09OVmFsdWVzLmZvckVhY2goZnVu
Y3Rpb24odmFsdWUpIHsKLSAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAg
ICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9k
eSI6IHZhbHVlfSk7Ci0gICAgICAgIHJldHVybiByZXF1ZXN0Lmpzb24oKS50aGVuKGZ1bmN0aW9u
KHYpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHYsIEpTT04ucGFyc2UodmFsdWUpKTsKLSAg
ICAgICAgfSk7Ci0gICAgICB9LCAiQ29uc3VtZSBKU09OIGZyb20gdGV4dDogJyIgKyBKU09OLnN0
cmluZ2lmeSh2YWx1ZSkgKyAiJyIpOwotICAgIH0pOwotCi0gICAgdmFyIGJhZEpTT05WYWx1ZXMg
PSBbInVuZGVmaW5lZCIsICJ7IiwgImEiLCAiWyJdOwotICAgIGJhZEpTT05WYWx1ZXMuZm9yRWFj
aChmdW5jdGlvbih2YWx1ZSkgewotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsK
LSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIs
ICJib2R5IjogdmFsdWV9KTsKLSAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0
LCBTeW50YXhFcnJvciwgcmVxdWVzdC5qc29uKCkpOwotICAgICAgfSwgIlRyeWluZyB0byBjb25z
dW1lIGJhZCBKU09OIHRleHQgYXMgSlNPTjogJyIgKyB2YWx1ZSArICInIik7Ci0gICAgfSk7Ci0g
ICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1kaXN0dXJiZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZWI4NzlkYjE1YWYxNmZiMTc4
Zjg3N2ZjOTc4MDAzM2M4ZjM3MmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMSArMCwwIEBACi0KLVBBU1MgUmVxdWVzdCdzIGJvZHk6IGluaXRpYWwgc3Rh
dGUKLVBBU1MgUmVxdWVzdCB3aXRob3V0IGJvZHkgY2Fubm90IGJlIGRpc3R1cmJlZAotUEFTUyBD
aGVjayBjbG9uaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QKLVBBU1MgQ2hlY2sgY3JlYXRpbmcgYSBu
ZXcgcmVxdWVzdCBmcm9tIGEgZGlzdHVyYmVkIHJlcXVlc3QKLVBBU1MgQ2hlY2sgY3JlYXRpbmcg
YSBuZXcgcmVxdWVzdCB3aXRoIGEgbmV3IGJvZHkgZnJvbSBhIGRpc3R1cmJlZCByZXF1ZXN0Ci1G
QUlMIElucHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRp
c3R1cmJlZCBhc3NlcnRfZXF1YWxzOiBib2R5IHNob3VsZCBub3QgY2hhbmdlIGV4cGVjdGVkIG9i
amVjdCAiW29iamVjdCBSZWFkYWJsZVN0cmVhbV0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJl
YWRhYmxlU3RyZWFtXSIKLUZBSUwgSW5wdXQgcmVxdWVzdCB1c2VkIGZvciBjcmVhdGluZyBuZXcg
cmVxdWVzdCBiZWNhbWUgZGlzdHVyYmVkIGV2ZW4gaWYgYm9keSBpcyBub3QgdXNlZCBhc3NlcnRf
dHJ1ZTogYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1QQVNTIENoZWNrIGNvbnN1bWluZyBhIGRpc3R1cmJlZCByZXF1ZXN0
Ci1QQVNTIFJlcXVlc3QgY29uc3RydWN0aW9uIGZhaWx1cmUgc2hvdWxkIG5vdCBzZXQgImJvZHlV
c2VkIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmFueS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmFlYjg3OWRiMTVhZjE2ZmIxNzhmODc3ZmM5NzgwMDMzYzhmMzcyYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
IEBACisKK1BBU1MgUmVxdWVzdCdzIGJvZHk6IGluaXRpYWwgc3RhdGUKK1BBU1MgUmVxdWVzdCB3
aXRob3V0IGJvZHkgY2Fubm90IGJlIGRpc3R1cmJlZAorUEFTUyBDaGVjayBjbG9uaW5nIGEgZGlz
dHVyYmVkIHJlcXVlc3QKK1BBU1MgQ2hlY2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCBmcm9tIGEg
ZGlzdHVyYmVkIHJlcXVlc3QKK1BBU1MgQ2hlY2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCB3aXRo
IGEgbmV3IGJvZHkgZnJvbSBhIGRpc3R1cmJlZCByZXF1ZXN0CitGQUlMIElucHV0IHJlcXVlc3Qg
dXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRpc3R1cmJlZCBhc3NlcnRfZXF1
YWxzOiBib2R5IHNob3VsZCBub3QgY2hhbmdlIGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBSZWFk
YWJsZVN0cmVhbV0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJlYWRhYmxlU3RyZWFtXSIKK0ZB
SUwgSW5wdXQgcmVxdWVzdCB1c2VkIGZvciBjcmVhdGluZyBuZXcgcmVxdWVzdCBiZWNhbWUgZGlz
dHVyYmVkIGV2ZW4gaWYgYm9keSBpcyBub3QgdXNlZCBhc3NlcnRfdHJ1ZTogYm9keVVzZWQgaXMg
dHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQ
QVNTIENoZWNrIGNvbnN1bWluZyBhIGRpc3R1cmJlZCByZXF1ZXN0CitQQVNTIFJlcXVlc3QgY29u
c3RydWN0aW9uIGZhaWx1cmUgc2hvdWxkIG5vdCBzZXQgImJvZHlVc2VkIgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJl
ZC5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgw
YjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC5hbnkuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmFu
eS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMTFkZTc4
ZmY2ZTBlZDhhOTcwYTI0MzI1YjFjMTI2ZWJlYmNkOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtZGlzdHVyYmVkLmFueS5qcwpAQCAtMCwwICsxLDEwOSBAQAorLy8gTUVUQTogZ2xv
YmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPVJlcXVlc3QgZGlzdHVyYmVkCisvLyBN
RVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCisKK3ZhciBpbml0VmFsdWVzRGljdCA9
IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAgICAgICAgICAgICAgICAgICAgICAiYm9keSIgOiAiUmVx
dWVzdCdzIGJvZHkiCit9OworCit2YXIgbm9Cb2R5Q29uc3VtZWQgPSBuZXcgUmVxdWVzdCgiIik7
Cit2YXIgYm9keUNvbnN1bWVkID0gbmV3IFJlcXVlc3QoIiIsIGluaXRWYWx1ZXNEaWN0KTsKKwor
dGVzdCgoKSA9PiB7CisgIGFzc2VydF9lcXVhbHMobm9Cb2R5Q29uc3VtZWQuYm9keSwgbnVsbCwg
ImJvZHkncyBkZWZhdWx0IHZhbHVlIGlzIG51bGwiKTsKKyAgYXNzZXJ0X2ZhbHNlKG5vQm9keUNv
bnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3Qg
ZGlzdHVyYmVkIik7CisgIGFzc2VydF9ub3RfZXF1YWxzKGJvZHlDb25zdW1lZC5ib2R5LCBudWxs
LCAibm9uLW51bGwgYm9keSIpOworICBhc3NlcnRfdHJ1ZShib2R5Q29uc3VtZWQuYm9keSBpbnN0
YW5jZW9mIFJlYWRhYmxlU3RyZWFtLCAibm9uLW51bGwgYm9keSB0eXBlIik7CisgIGFzc2VydF9m
YWxzZShub0JvZHlDb25zdW1lZC5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVx
dWVzdCBpcyBub3QgZGlzdHVyYmVkIik7Cit9LCAiUmVxdWVzdCdzIGJvZHk6IGluaXRpYWwgc3Rh
dGUiKTsKKworbm9Cb2R5Q29uc3VtZWQuYmxvYigpOworYm9keUNvbnN1bWVkLmJsb2IoKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X2ZhbHNlKG5vQm9keUNvbnN1bWVkLmJvZHlVc2Vk
ICwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3QgZGlzdHVyYmVkIik7Cisg
IHRyeSB7CisgICAgbm9Cb2R5Q29uc3VtZWQuY2xvbmUoKTsKKyAgfSBjYXRjaCAoZSkgeworICAg
IGFzc2VydF91bnJlYWNoZWQoIkNhbiB1c2UgcmVxdWVzdCBub3QgZGlzdHVyYmVkIGZvciBjcmVh
dGluZyBvciBjbG9uaW5nIHJlcXVlc3QiKTsKKyAgfQorfSwgIlJlcXVlc3Qgd2l0aG91dCBib2R5
IGNhbm5vdCBiZSBkaXN0dXJiZWQiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X3Ry
dWUoYm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0
IGlzIGRpc3R1cmJlZCIpOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7IGJvZHlDb25zdW1lZC5jbG9uZSgpOyB9KTsKK30sICJDaGVjayBjbG9uaW5nIGEgZGlzdHVy
YmVkIHJlcXVlc3QiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X3RydWUoYm9keUNv
bnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1
cmJlZCIpOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBS
ZXF1ZXN0KGJvZHlDb25zdW1lZCk7IH0pOworfSwgIkNoZWNrIGNyZWF0aW5nIGEgbmV3IHJlcXVl
c3QgZnJvbSBhIGRpc3R1cmJlZCByZXF1ZXN0Iik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigp
IHsKKyAgYXNzZXJ0X3RydWUoYm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIHRy
dWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOworICBjb25zdCBvcmlnaW5hbEJvZHkgPSBi
b2R5Q29uc3VtZWQuYm9keTsKKyAgY29uc3QgYm9keVJlcGxhY2VkID0gbmV3IFJlcXVlc3QoYm9k
eUNvbnN1bWVkLCB7IGJvZHk6ICJSZXBsYWNlZCBib2R5IiB9KTsKKyAgYXNzZXJ0X25vdF9lcXVh
bHMoYm9keVJlcGxhY2VkLmJvZHksIG9yaWdpbmFsQm9keSwgIm5ldyByZXF1ZXN0J3MgYm9keSBp
cyBuZXciKTsKKyAgYXNzZXJ0X2ZhbHNlKGJvZHlSZXBsYWNlZC5ib2R5VXNlZCwgImJvZHlVc2Vk
IGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3QgZGlzdHVyYmVkIik7CisgIHJldHVybiBib2R5
UmVwbGFjZWQudGV4dCgpLnRoZW4odGV4dCA9PiB7CisgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCAi
UmVwbGFjZWQgYm9keSIpOworICB9KTsKK30sICJDaGVjayBjcmVhdGluZyBhIG5ldyByZXF1ZXN0
IHdpdGggYSBuZXcgYm9keSBmcm9tIGEgZGlzdHVyYmVkIHJlcXVlc3QiKTsKKworcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgYm9keVJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgaW5p
dFZhbHVlc0RpY3QpOworICBjb25zdCBvcmlnaW5hbEJvZHkgPSBib2R5UmVxdWVzdC5ib2R5Owor
ICBhc3NlcnRfZmFsc2UoYm9keVJlcXVlc3QuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgZmFsc2Ug
d2hlbiByZXF1ZXN0IGlzIG5vdCBkaXN0dXJiZWQiKTsKKyAgdmFyIHJlcXVlc3RGcm9tUmVxdWVz
dCA9IG5ldyBSZXF1ZXN0KGJvZHlSZXF1ZXN0KTsKKyAgYXNzZXJ0X3RydWUoYm9keVJlcXVlc3Qu
Ym9keVVzZWQgLCAiYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIik7
CisgIGFzc2VydF9lcXVhbHMoYm9keVJlcXVlc3QuYm9keSwgb3JpZ2luYWxCb2R5LCAiYm9keSBz
aG91bGQgbm90IGNoYW5nZSIpOworICBhc3NlcnRfbm90X2VxdWFscyhvcmlnaW5hbEJvZHksIHVu
ZGVmaW5lZCwgImJvZHkgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQiKTsKKyAgYXNzZXJ0X25vdF9l
cXVhbHMob3JpZ2luYWxCb2R5LCBudWxsLCAiYm9keSBzaG91bGQgbm90IGJlIG51bGwiKTsKKyAg
YXNzZXJ0X25vdF9lcXVhbHMocmVxdWVzdEZyb21SZXF1ZXN0LmJvZHksIG9yaWdpbmFsQm9keSwg
Im5ldyByZXF1ZXN0J3MgYm9keSBpcyBuZXciKTsKKyAgcmV0dXJuIHJlcXVlc3RGcm9tUmVxdWVz
dC50ZXh0KCkudGhlbih0ZXh0ID0+IHsKKyAgICBhc3NlcnRfZXF1YWxzKHRleHQsICJSZXF1ZXN0
J3MgYm9keSIpOworICB9KTsKK30sICJJbnB1dCByZXF1ZXN0IHVzZWQgZm9yIGNyZWF0aW5nIG5l
dyByZXF1ZXN0IGJlY2FtZSBkaXN0dXJiZWQiKTsKKworcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAg
Y29uc3QgYm9keVJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgaW5pdFZhbHVlc0RpY3QpOworICBj
b25zdCBvcmlnaW5hbEJvZHkgPSBib2R5UmVxdWVzdC5ib2R5OworICBhc3NlcnRfZmFsc2UoYm9k
eVJlcXVlc3QuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5v
dCBkaXN0dXJiZWQiKTsKKyAgY29uc3QgcmVxdWVzdEZyb21SZXF1ZXN0ID0gbmV3IFJlcXVlc3Qo
Ym9keVJlcXVlc3QsIHsgYm9keSA6ICJpbml0IGJvZHkiIH0pOworICBhc3NlcnRfdHJ1ZShib2R5
UmVxdWVzdC5ib2R5VXNlZCAsICJib2R5VXNlZCBpcyB0cnVlIHdoZW4gcmVxdWVzdCBpcyBkaXN0
dXJiZWQiKTsKKyAgYXNzZXJ0X2VxdWFscyhib2R5UmVxdWVzdC5ib2R5LCBvcmlnaW5hbEJvZHks
ICJib2R5IHNob3VsZCBub3QgY2hhbmdlIik7CisgIGFzc2VydF9ub3RfZXF1YWxzKG9yaWdpbmFs
Qm9keSwgdW5kZWZpbmVkLCAiYm9keSBzaG91bGQgbm90IGJlIHVuZGVmaW5lZCIpOworICBhc3Nl
cnRfbm90X2VxdWFscyhvcmlnaW5hbEJvZHksIG51bGwsICJib2R5IHNob3VsZCBub3QgYmUgbnVs
bCIpOworICBhc3NlcnRfbm90X2VxdWFscyhyZXF1ZXN0RnJvbVJlcXVlc3QuYm9keSwgb3JpZ2lu
YWxCb2R5LCAibmV3IHJlcXVlc3QncyBib2R5IGlzIG5ldyIpOworCisgIHJldHVybiByZXF1ZXN0
RnJvbVJlcXVlc3QudGV4dCgpLnRoZW4odGV4dCA9PiB7CisgICAgYXNzZXJ0X2VxdWFscyh0ZXh0
LCAiaW5pdCBib2R5Iik7CisgIH0pOworfSwgIklucHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRp
bmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRpc3R1cmJlZCBldmVuIGlmIGJvZHkgaXMgbm90IHVzZWQi
KTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgYXNzZXJ0X3RydWUoYm9keUNv
bnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1
cmJlZCIpOworICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgYm9k
eUNvbnN1bWVkLmJsb2IoKSk7Cit9LCAiQ2hlY2sgY29uc3VtaW5nIGEgZGlzdHVyYmVkIHJlcXVl
c3QiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIHJlcSA9IG5ldyBSZXF1ZXN0KFVSTCwg
e21ldGhvZDogJ1BPU1QnLCBib2R5OiAnaGVsbG8nfSk7CisgIGFzc2VydF9mYWxzZShyZXEuYm9k
eVVzZWQsCisgICAgICAgICAgICAgICAgJ1JlcXVlc3Qgc2hvdWxkIG5vdCBiZSBmbGFnZ2VkIGFz
IHVzZWQgaWYgaXQgaGFzIG5vdCBiZWVuICcgKworICAgICAgICAgICAgICAgICdjb25zdW1lZC4n
KTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsCisgICAgZnVuY3Rpb24oKSB7IG5ldyBS
ZXF1ZXN0KHJlcSwge21ldGhvZDogJ0dFVCd9KTsgfSwKKyAgICAnQSBnZXQgcmVxdWVzdCBtYXkg
bm90IGhhdmUgYm9keS4nKTsKKworICBhc3NlcnRfZmFsc2UocmVxLmJvZHlVc2VkLCAnQWZ0ZXIg
dGhlIEdFVCBjYXNlJyk7CisKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsCisgICAgZnVu
Y3Rpb24oKSB7IG5ldyBSZXF1ZXN0KHJlcSwge21ldGhvZDogJ0NPTk5FQ1QnfSk7IH0sCisgICAg
J1JlcXVlc3QoKSB3aXRoIGEgZm9yYmlkZGVuIG1ldGhvZCBtdXN0IHRocm93LicpOworCisgIGFz
c2VydF9mYWxzZShyZXEuYm9keVVzZWQsICdBZnRlciB0aGUgZm9yYmlkZGVuIG1ldGhvZCBjYXNl
Jyk7CisKKyAgdmFyIHJlcTIgPSBuZXcgUmVxdWVzdChyZXEpOworICBhc3NlcnRfdHJ1ZShyZXEu
Ym9keVVzZWQsCisgICAgICAgICAgICAgICdSZXF1ZXN0IHNob3VsZCBiZSBmbGFnZ2VkIGFzIHVz
ZWQgaWYgaXQgaGFzIGJlZW4gY29uc3VtZWQuJyk7Cit9LCAnUmVxdWVzdCBjb25zdHJ1Y3Rpb24g
ZmFpbHVyZSBzaG91bGQgbm90IHNldCAiYm9keVVzZWQiJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtZGlzdHVyYmVkLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRp
c3R1cmJlZC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWViODc5ZGIxNWFm
MTZmYjE3OGY4NzdmYzk3ODAwMzNjOGYzNzJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWRpc3R1cmJlZC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACisK
K1BBU1MgUmVxdWVzdCdzIGJvZHk6IGluaXRpYWwgc3RhdGUKK1BBU1MgUmVxdWVzdCB3aXRob3V0
IGJvZHkgY2Fubm90IGJlIGRpc3R1cmJlZAorUEFTUyBDaGVjayBjbG9uaW5nIGEgZGlzdHVyYmVk
IHJlcXVlc3QKK1BBU1MgQ2hlY2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCBmcm9tIGEgZGlzdHVy
YmVkIHJlcXVlc3QKK1BBU1MgQ2hlY2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCB3aXRoIGEgbmV3
IGJvZHkgZnJvbSBhIGRpc3R1cmJlZCByZXF1ZXN0CitGQUlMIElucHV0IHJlcXVlc3QgdXNlZCBm
b3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRpc3R1cmJlZCBhc3NlcnRfZXF1YWxzOiBi
b2R5IHNob3VsZCBub3QgY2hhbmdlIGV4cGVjdGVkIG9iamVjdCAiW29iamVjdCBSZWFkYWJsZVN0
cmVhbV0iIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJlYWRhYmxlU3RyZWFtXSIKK0ZBSUwgSW5w
dXQgcmVxdWVzdCB1c2VkIGZvciBjcmVhdGluZyBuZXcgcmVxdWVzdCBiZWNhbWUgZGlzdHVyYmVk
IGV2ZW4gaWYgYm9keSBpcyBub3QgdXNlZCBhc3NlcnRfdHJ1ZTogYm9keVVzZWQgaXMgdHJ1ZSB3
aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIENo
ZWNrIGNvbnN1bWluZyBhIGRpc3R1cmJlZCByZXF1ZXN0CitQQVNTIFJlcXVlc3QgY29uc3RydWN0
aW9uIGZhaWx1cmUgc2hvdWxkIG5vdCBzZXQgImJvZHlVc2VkIgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtZGlzdHVyYmVkLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJi
ZWQuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBh
NDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVk
LmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJl
ZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVz
dCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtZGlzdHVyYmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4ZDhhMzM0NzhlYWQ3YWY5NDA4ZTE1YTQxZmNmNzNmMTc1
Mjc2MmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWRpc3R1cmJlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAK
LTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLSAgICA8dGl0bGU+UmVxdWVzdCBkaXN0dXJiZWQ8L3RpdGxlPgotICAgIDxtZXRhIG5h
bWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4K
LSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9y
Zy8jYm9keS1taXhpbiI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVz
ZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgotICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVh
ZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICAgIHZhciBpbml0VmFsdWVzRGljdCA9IHsi
bWV0aG9kIiA6ICJQT1NUIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9keSIgOiAi
UmVxdWVzdCdzIGJvZHkiCi0gICAgICB9OwotCi0gICAgICB2YXIgbm9Cb2R5Q29uc3VtZWQgPSBu
ZXcgUmVxdWVzdCgiIik7Ci0gICAgICB2YXIgYm9keUNvbnN1bWVkID0gbmV3IFJlcXVlc3QoIiIs
IGluaXRWYWx1ZXNEaWN0KTsKLQotICAgICAgdGVzdCgoKSA9PiB7Ci0gICAgICAgIGFzc2VydF9l
cXVhbHMobm9Cb2R5Q29uc3VtZWQuYm9keSwgbnVsbCwgImJvZHkncyBkZWZhdWx0IHZhbHVlIGlz
IG51bGwiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKG5vQm9keUNvbnN1bWVkLmJvZHlVc2VkICwg
ImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3QgZGlzdHVyYmVkIik7Ci0gICAg
ICAgIGFzc2VydF9ub3RfZXF1YWxzKGJvZHlDb25zdW1lZC5ib2R5LCBudWxsLCAibm9uLW51bGwg
Ym9keSIpOwotICAgICAgICBhc3NlcnRfdHJ1ZShib2R5Q29uc3VtZWQuYm9keSBpbnN0YW5jZW9m
IFJlYWRhYmxlU3RyZWFtLCAibm9uLW51bGwgYm9keSB0eXBlIik7Ci0gICAgICAgIGFzc2VydF9m
YWxzZShub0JvZHlDb25zdW1lZC5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVx
dWVzdCBpcyBub3QgZGlzdHVyYmVkIik7Ci0gICAgICB9LCAiUmVxdWVzdCdzIGJvZHk6IGluaXRp
YWwgc3RhdGUiKTsKLQotICAgICAgbm9Cb2R5Q29uc3VtZWQuYmxvYigpOwotICAgICAgYm9keUNv
bnN1bWVkLmJsb2IoKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0
X2ZhbHNlKG5vQm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4g
cmVxdWVzdCBpcyBub3QgZGlzdHVyYmVkIik7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbm9C
b2R5Q29uc3VtZWQuY2xvbmUoKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoIkNhbiB1c2UgcmVxdWVzdCBub3QgZGlzdHVyYmVkIGZvciBjcmVhdGlu
ZyBvciBjbG9uaW5nIHJlcXVlc3QiKTsKLSAgICAgICAgfQotICAgICAgfSwgIlJlcXVlc3Qgd2l0
aG91dCBib2R5IGNhbm5vdCBiZSBkaXN0dXJiZWQiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigp
IHsKLSAgICAgICAgYXNzZXJ0X3RydWUoYm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2Vk
IGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOwotICAgICAgICBhc3NlcnRfdGhy
b3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGJvZHlDb25zdW1lZC5jbG9uZSgpOyB9KTsK
LSAgICAgIH0sICJDaGVjayBjbG9uaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QiKTsKLQotICAgICAg
dGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUoYm9keUNvbnN1bWVkLmJvZHlV
c2VkICwgImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOwotICAg
ICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0
KGJvZHlDb25zdW1lZCk7IH0pOwotICAgICAgfSwgIkNoZWNrIGNyZWF0aW5nIGEgbmV3IHJlcXVl
c3QgZnJvbSBhIGRpc3R1cmJlZCByZXF1ZXN0Iik7Ci0KLSAgICAgIHByb21pc2VfdGVzdChmdW5j
dGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUoYm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJv
ZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOwotICAgICAgICBjb25z
dCBvcmlnaW5hbEJvZHkgPSBib2R5Q29uc3VtZWQuYm9keTsKLSAgICAgICAgY29uc3QgYm9keVJl
cGxhY2VkID0gbmV3IFJlcXVlc3QoYm9keUNvbnN1bWVkLCB7IGJvZHk6ICJSZXBsYWNlZCBib2R5
IiB9KTsKLSAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoYm9keVJlcGxhY2VkLmJvZHksIG9yaWdp
bmFsQm9keSwgIm5ldyByZXF1ZXN0J3MgYm9keSBpcyBuZXciKTsKLSAgICAgICAgYXNzZXJ0X2Zh
bHNlKGJvZHlSZXBsYWNlZC5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVz
dCBpcyBub3QgZGlzdHVyYmVkIik7Ci0gICAgICAgIHJldHVybiBib2R5UmVwbGFjZWQudGV4dCgp
LnRoZW4odGV4dCA9PiB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCAiUmVwbGFjZWQg
Ym9keSIpOwotICAgICAgICB9KTsKLSAgICAgIH0sICJDaGVjayBjcmVhdGluZyBhIG5ldyByZXF1
ZXN0IHdpdGggYSBuZXcgYm9keSBmcm9tIGEgZGlzdHVyYmVkIHJlcXVlc3QiKTsKLQotICAgICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgYm9keVJlcXVlc3QgPSBuZXcg
UmVxdWVzdCgiIiwgaW5pdFZhbHVlc0RpY3QpOwotICAgICAgICBjb25zdCBvcmlnaW5hbEJvZHkg
PSBib2R5UmVxdWVzdC5ib2R5OwotICAgICAgICBhc3NlcnRfZmFsc2UoYm9keVJlcXVlc3QuYm9k
eVVzZWQgLCAiYm9keVVzZWQgaXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5vdCBkaXN0dXJiZWQi
KTsKLSAgICAgICAgdmFyIHJlcXVlc3RGcm9tUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGJvZHlSZXF1
ZXN0KTsKLSAgICAgICAgYXNzZXJ0X3RydWUoYm9keVJlcXVlc3QuYm9keVVzZWQgLCAiYm9keVVz
ZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIik7Ci0gICAgICAgIGFzc2VydF9l
cXVhbHMoYm9keVJlcXVlc3QuYm9keSwgb3JpZ2luYWxCb2R5LCAiYm9keSBzaG91bGQgbm90IGNo
YW5nZSIpOwotICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhvcmlnaW5hbEJvZHksIHVuZGVmaW5l
ZCwgImJvZHkgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQiKTsKLSAgICAgICAgYXNzZXJ0X25vdF9l
cXVhbHMob3JpZ2luYWxCb2R5LCBudWxsLCAiYm9keSBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAg
ICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVxdWVzdEZyb21SZXF1ZXN0LmJvZHksIG9yaWdpbmFs
Qm9keSwgIm5ldyByZXF1ZXN0J3MgYm9keSBpcyBuZXciKTsKLSAgICAgICAgcmV0dXJuIHJlcXVl
c3RGcm9tUmVxdWVzdC50ZXh0KCkudGhlbih0ZXh0ID0+IHsKLSAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHRleHQsICJSZXF1ZXN0J3MgYm9keSIpOwotICAgICAgICB9KTsKLSAgICAgIH0sICJJbnB1
dCByZXF1ZXN0IHVzZWQgZm9yIGNyZWF0aW5nIG5ldyByZXF1ZXN0IGJlY2FtZSBkaXN0dXJiZWQi
KTsKLQotICAgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKLSAgICAgICAgY29uc3QgYm9keVJlcXVl
c3QgPSBuZXcgUmVxdWVzdCgiIiwgaW5pdFZhbHVlc0RpY3QpOwotICAgICAgICBjb25zdCBvcmln
aW5hbEJvZHkgPSBib2R5UmVxdWVzdC5ib2R5OwotICAgICAgICBhc3NlcnRfZmFsc2UoYm9keVJl
cXVlc3QuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5vdCBk
aXN0dXJiZWQiKTsKLSAgICAgICAgY29uc3QgcmVxdWVzdEZyb21SZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoYm9keVJlcXVlc3QsIHsgYm9keSA6ICJpbml0IGJvZHkiIH0pOwotICAgICAgICBhc3NlcnRf
dHJ1ZShib2R5UmVxdWVzdC5ib2R5VXNlZCAsICJib2R5VXNlZCBpcyB0cnVlIHdoZW4gcmVxdWVz
dCBpcyBkaXN0dXJiZWQiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhib2R5UmVxdWVzdC5ib2R5
LCBvcmlnaW5hbEJvZHksICJib2R5IHNob3VsZCBub3QgY2hhbmdlIik7Ci0gICAgICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKG9yaWdpbmFsQm9keSwgdW5kZWZpbmVkLCAiYm9keSBzaG91bGQgbm90IGJl
IHVuZGVmaW5lZCIpOwotICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhvcmlnaW5hbEJvZHksIG51
bGwsICJib2R5IHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAgICAgICBhc3NlcnRfbm90X2VxdWFs
cyhyZXF1ZXN0RnJvbVJlcXVlc3QuYm9keSwgb3JpZ2luYWxCb2R5LCAibmV3IHJlcXVlc3QncyBi
b2R5IGlzIG5ldyIpOwotCi0gICAgICAgIHJldHVybiByZXF1ZXN0RnJvbVJlcXVlc3QudGV4dCgp
LnRoZW4odGV4dCA9PiB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCAiaW5pdCBib2R5
Iik7Ci0gICAgICAgIH0pOwotICAgICAgfSwgIklucHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRp
bmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRpc3R1cmJlZCBldmVuIGlmIGJvZHkgaXMgbm90IHVzZWQi
KTsKLQotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgYXNzZXJ0
X3RydWUoYm9keUNvbnN1bWVkLmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1
ZXN0IGlzIGRpc3R1cmJlZCIpOwotICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRl
c3QsIFR5cGVFcnJvciwgYm9keUNvbnN1bWVkLmJsb2IoKSk7Ci0gICAgICB9LCAiQ2hlY2sgY29u
c3VtaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsK
LSAgICAgICAgdmFyIHJlcSA9IG5ldyBSZXF1ZXN0KFVSTCwge21ldGhvZDogJ1BPU1QnLCBib2R5
OiAnaGVsbG8nfSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShyZXEuYm9keVVzZWQsCi0gICAgICAg
ICAgICAgICAgICAgICAnUmVxdWVzdCBzaG91bGQgbm90IGJlIGZsYWdnZWQgYXMgdXNlZCBpZiBp
dCBoYXMgbm90IGJlZW4gJyArCi0gICAgICAgICAgICAgICAgICAgICAnY29uc3VtZWQuJyk7Ci0g
ICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLAotICAgICAgICAgIGZ1bmN0aW9uKCkg
eyBuZXcgUmVxdWVzdChyZXEsIHttZXRob2Q6ICdHRVQnfSk7IH0sCi0gICAgICAgICAgJ0EgZ2V0
IHJlcXVlc3QgbWF5IG5vdCBoYXZlIGJvZHkuJyk7Ci0KLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJl
cS5ib2R5VXNlZCwgJ0FmdGVyIHRoZSBHRVQgY2FzZScpOwotCi0gICAgICAgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLAotICAgICAgICAgIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdChyZXEs
IHttZXRob2Q6ICdDT05ORUNUJ30pOyB9LAotICAgICAgICAgICdSZXF1ZXN0KCkgd2l0aCBhIGZv
cmJpZGRlbiBtZXRob2QgbXVzdCB0aHJvdy4nKTsKLQotICAgICAgICBhc3NlcnRfZmFsc2UocmVx
LmJvZHlVc2VkLCAnQWZ0ZXIgdGhlIGZvcmJpZGRlbiBtZXRob2QgY2FzZScpOwotCi0gICAgICAg
IHZhciByZXEyID0gbmV3IFJlcXVlc3QocmVxKTsKLSAgICAgICAgYXNzZXJ0X3RydWUocmVxLmJv
ZHlVc2VkLAotICAgICAgICAgICAgICAgICAgICAnUmVxdWVzdCBzaG91bGQgYmUgZmxhZ2dlZCBh
cyB1c2VkIGlmIGl0IGhhcyBiZWVuIGNvbnN1bWVkLicpOwotICAgICAgfSwgJ1JlcXVlc3QgY29u
c3RydWN0aW9uIGZhaWx1cmUgc2hvdWxkIG5vdCBzZXQgImJvZHlVc2VkIicpOwotICAgIDwvc2Ny
aXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3Iu
YW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5hbnktZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjUwNzI5ZWY5MWFmYThlNTI1OWQyM2JiYTQyMzdlMmE1NWMyMThkZjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuYW55LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIzIEBACisKK1BBU1MgUmVxdWVzdEluaXQncyB3aW5kb3cgaXMgbm90IG51bGwKK1BBU1Mg
SW5wdXQgVVJMIGlzIG5vdCB2YWxpZAorUEFTUyBJbnB1dCBVUkwgaGFzIGNyZWRlbnRpYWxzCitQ
QVNTIFJlcXVlc3RJbml0J3MgbW9kZSBpcyBuYXZpZ2F0ZQorUEFTUyBSZXF1ZXN0SW5pdCdzIHJl
ZmVycmVyIGlzIGludmFsaWQKK1BBU1MgUmVxdWVzdEluaXQncyBtZXRob2QgaXMgaW52YWxpZAor
UEFTUyBSZXF1ZXN0SW5pdCdzIG1ldGhvZCBpcyBmb3JiaWRkZW4KK1BBU1MgUmVxdWVzdEluaXQn
cyBtb2RlIGlzIG5vLWNvcnMgYW5kIG1ldGhvZCBpcyBub3Qgc2ltcGxlCitQQVNTIFJlcXVlc3RJ
bml0J3MgY2FjaGUgbW9kZSBpcyBvbmx5LWlmLWNhY2hlZCBhbmQgbW9kZSBpcyBub3Qgc2FtZS1v
cmlnaW4KK1BBU1MgUmVxdWVzdCB3aXRoIGNhY2hlIG1vZGU6IG9ubHktaWYtY2FjaGVkIGFuZCBm
ZXRjaCBtb2RlIGNvcnMKK1BBU1MgUmVxdWVzdCB3aXRoIGNhY2hlIG1vZGU6IG9ubHktaWYtY2Fj
aGVkIGFuZCBmZXRjaCBtb2RlIG5vLWNvcnMKK1BBU1MgQmFkIHJlZmVycmVyUG9saWN5IGluaXQg
cGFyYW1ldGVyIHZhbHVlCitQQVNTIEJhZCBtb2RlIGluaXQgcGFyYW1ldGVyIHZhbHVlCitQQVNT
IEJhZCBjcmVkZW50aWFscyBpbml0IHBhcmFtZXRlciB2YWx1ZQorUEFTUyBCYWQgY2FjaGUgaW5p
dCBwYXJhbWV0ZXIgdmFsdWUKK1BBU1MgQmFkIHJlZGlyZWN0IGluaXQgcGFyYW1ldGVyIHZhbHVl
CitQQVNTIFJlcXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQg
cmVxdWVzdAorUEFTUyBSZXF1ZXN0IHNob3VsZCBub3QgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJv
bSB0aGUgaW5pdCByZXF1ZXN0IGlmIGluaXQgaGVhZGVycyBhcmUgcHJvdmlkZWQKK1BBU1MgUmVx
dWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgYm9keSBpZiBub25lIGlz
IHByb3ZpZGVkCitQQVNTIFJlcXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20g
aW5pdCBoZWFkZXJzIGlmIG9uZSBpcyBwcm92aWRlZAorUEFTUyBSZXF1ZXN0IHdpdGggY2FjaGUg
bW9kZTogb25seS1pZi1jYWNoZWQgYW5kIGZldGNoIG1vZGU6IHNhbWUtb3JpZ2luCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5h
bnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0
OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9yLmFueS5odG1sCkBAIC0w
LDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZy
YXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5hbnkuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtZXJyb3IuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3ZWQ3MGM1ZGIyZjA5YWFlZDNhOTdm
YzI0OTAyMmIyMGQ0Yjk0MWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3Iu
YW55LmpzCkBAIC0wLDAgKzEsNDggQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisv
LyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGVycm9yCisvLyBNRVRBOiBzY3JpcHQ9cmVxdWVzdC1lcnJv
ci5qcworCisvLyBiYWRSZXF1ZXN0QXJnVGVzdHMgaXMgZnJvbSByZXNwb25zZS1lcnJvci5qcwor
Zm9yIChjb25zdCB7IGFyZ3MsIHRlc3ROYW1lIH0gb2YgYmFkUmVxdWVzdEFyZ1Rlc3RzKSB7Cisg
IHRlc3QoKCkgPT4geworICAgIGFzc2VydF90aHJvd3NfanMoCisgICAgICBUeXBlRXJyb3IsCisg
ICAgICAoKSA9PiBuZXcgUmVxdWVzdCguLi5hcmdzKSwKKyAgICAgICJFeHBlY3QgVHlwZUVycm9y
IGV4Y2VwdGlvbiIKKyAgICApOworICB9LCB0ZXN0TmFtZSk7Cit9CisKK3Rlc3QoZnVuY3Rpb24o
KSB7CisgIHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIs
ICJwb3RhdG8iXV0pOworICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJo
ZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzfSk7CisgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3Qo
aW5pdGlhbFJlcXVlc3QpOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNv
bnRlbnQtVHlwZSIpLCAicG90YXRvIik7Cit9LCAiUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250
ZW50LXR5cGUgZnJvbSB0aGUgaW5pdCByZXF1ZXN0Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
IHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3Rh
dG8iXV0pOworICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJz
IiA6IGluaXRpYWxIZWFkZXJzfSk7CisgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoW10pOwor
ICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0LCB7ImhlYWRlcnMiIDog
aGVhZGVyc30pOworICBhc3NlcnRfZmFsc2UocmVxdWVzdC5oZWFkZXJzLmhhcygiQ29udGVudC1U
eXBlIikpOworfSwgIlJlcXVlc3Qgc2hvdWxkIG5vdCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9t
IHRoZSBpbml0IHJlcXVlc3QgaWYgaW5pdCBoZWFkZXJzIGFyZSBwcm92aWRlZCIpOworCit0ZXN0
KGZ1bmN0aW9uKCkgeworICB2YXIgaW5pdGlhbEhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb250
ZW50LVR5cGUtRXh0cmEiLCAicG90YXRvIl1dKTsKKyAgdmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3
IFJlcXVlc3QoIiIsIHsiaGVhZGVycyIgOiBpbml0aWFsSGVhZGVycywgImJvZHkiIDogInRoaXMg
aXMgbXkgcGxhdGUiLCAibWV0aG9kIiA6ICJQT1NUIn0pOworICB2YXIgcmVxdWVzdCA9IG5ldyBS
ZXF1ZXN0KGluaXRpYWxSZXF1ZXN0KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMu
Z2V0KCJDb250ZW50LVR5cGUiKSwgInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIpOworfSwgIlJl
cXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGJvZHkgaWYgbm9uZSBp
cyBwcm92aWRlZCIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaW5pdGlhbEhlYWRlcnMg
PSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKKyAgdmFyIGluaXRp
YWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyIgOiBpbml0aWFsSGVhZGVycywg
ImJvZHkiIDogInRoaXMgaXMgbXkgcGxhdGUiLCAibWV0aG9kIiA6ICJQT1NUIn0pOworICB2YXIg
cmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0KTsKKyAgYXNzZXJ0X2VxdWFscyhy
ZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSwgInBvdGF0byIpOworfSwgIlJlcXVl
c3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gaW5pdCBoZWFkZXJzIGlmIG9uZSBp
cyBwcm92aWRlZCIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgb3B0aW9ucyA9IHsiY2Fj
aGUiOiAib25seS1pZi1jYWNoZWQiLCAibW9kZSI6ICJzYW1lLW9yaWdpbiJ9OworICBuZXcgUmVx
dWVzdCgidGVzdCIsIG9wdGlvbnMpOworfSwgIlJlcXVlc3Qgd2l0aCBjYWNoZSBtb2RlOiBvbmx5
LWlmLWNhY2hlZCBhbmQgZmV0Y2ggbW9kZTogc2FtZS1vcmlnaW4iKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1lcnJvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1l
cnJvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDcyOWVmOTFhZmE4ZTUy
NTlkMjNiYmE0MjM3ZTJhNTVjMjE4ZGYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWVycm9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKKworUEFTUyBS
ZXF1ZXN0SW5pdCdzIHdpbmRvdyBpcyBub3QgbnVsbAorUEFTUyBJbnB1dCBVUkwgaXMgbm90IHZh
bGlkCitQQVNTIElucHV0IFVSTCBoYXMgY3JlZGVudGlhbHMKK1BBU1MgUmVxdWVzdEluaXQncyBt
b2RlIGlzIG5hdmlnYXRlCitQQVNTIFJlcXVlc3RJbml0J3MgcmVmZXJyZXIgaXMgaW52YWxpZAor
UEFTUyBSZXF1ZXN0SW5pdCdzIG1ldGhvZCBpcyBpbnZhbGlkCitQQVNTIFJlcXVlc3RJbml0J3Mg
bWV0aG9kIGlzIGZvcmJpZGRlbgorUEFTUyBSZXF1ZXN0SW5pdCdzIG1vZGUgaXMgbm8tY29ycyBh
bmQgbWV0aG9kIGlzIG5vdCBzaW1wbGUKK1BBU1MgUmVxdWVzdEluaXQncyBjYWNoZSBtb2RlIGlz
IG9ubHktaWYtY2FjaGVkIGFuZCBtb2RlIGlzIG5vdCBzYW1lLW9yaWdpbgorUEFTUyBSZXF1ZXN0
IHdpdGggY2FjaGUgbW9kZTogb25seS1pZi1jYWNoZWQgYW5kIGZldGNoIG1vZGUgY29ycworUEFT
UyBSZXF1ZXN0IHdpdGggY2FjaGUgbW9kZTogb25seS1pZi1jYWNoZWQgYW5kIGZldGNoIG1vZGUg
bm8tY29ycworUEFTUyBCYWQgcmVmZXJyZXJQb2xpY3kgaW5pdCBwYXJhbWV0ZXIgdmFsdWUKK1BB
U1MgQmFkIG1vZGUgaW5pdCBwYXJhbWV0ZXIgdmFsdWUKK1BBU1MgQmFkIGNyZWRlbnRpYWxzIGlu
aXQgcGFyYW1ldGVyIHZhbHVlCitQQVNTIEJhZCBjYWNoZSBpbml0IHBhcmFtZXRlciB2YWx1ZQor
UEFTUyBCYWQgcmVkaXJlY3QgaW5pdCBwYXJhbWV0ZXIgdmFsdWUKK1BBU1MgUmVxdWVzdCBzaG91
bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgaW5pdCByZXF1ZXN0CitQQVNTIFJlcXVl
c3Qgc2hvdWxkIG5vdCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3Qg
aWYgaW5pdCBoZWFkZXJzIGFyZSBwcm92aWRlZAorUEFTUyBSZXF1ZXN0IHNob3VsZCBnZXQgaXRz
IGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBib2R5IGlmIG5vbmUgaXMgcHJvdmlkZWQKK1BBU1MgUmVx
dWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSBpbml0IGhlYWRlcnMgaWYgb25l
IGlzIHByb3ZpZGVkCitQQVNTIFJlcXVlc3Qgd2l0aCBjYWNoZSBtb2RlOiBvbmx5LWlmLWNhY2hl
ZCBhbmQgZmV0Y2ggbW9kZTogc2FtZS1vcmlnaW4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWVycm9yLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5hbnkud29ya2VyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5hbnkud29ya2VyLmh0bWwKQEAg
LTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGlu
ZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9yLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtZXJyb3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjIyYmEz
ZjRjMjhjNmQ1NTJmMjA1YjM0OTIwMjZhOWU3MzFiZDRhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDYxICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFk
PgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVxdWVzdCBlcnJvcjwv
dGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndo
YXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KLSAgICA8bWV0YSBuYW1lPSJhdXRo
b3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5j
YW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVxdWVzdC1lcnJvci5qcyI+PC9zY3JpcHQ+
Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICAgIC8vIGJhZFJlcXVlc3RB
cmdUZXN0cyBpcyBmcm9tIHJlc3BvbnNlLWVycm9yLmpzCi0gICAgICBmb3IgKGNvbnN0IHsgYXJn
cywgdGVzdE5hbWUgfSBvZiBiYWRSZXF1ZXN0QXJnVGVzdHMpIHsKLSAgICAgICAgdGVzdCgoKSA9
PiB7Ci0gICAgICAgICAgYXNzZXJ0X3Rocm93c19qcygKLSAgICAgICAgICAgIFR5cGVFcnJvciwK
LSAgICAgICAgICAgICgpID0+IG5ldyBSZXF1ZXN0KC4uLmFyZ3MpLAotICAgICAgICAgICAgIkV4
cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIgotICAgICAgICAgICk7Ci0gICAgICAgIH0sIHRlc3RO
YW1lKTsKLSAgICAgIH0KLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGlu
aXRpYWxIZWFkZXJzID0gbmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7
Ci0gICAgICAgIHZhciBpbml0aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMi
IDogaW5pdGlhbEhlYWRlcnN9KTsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChp
bml0aWFsUmVxdWVzdCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdl
dCgiQ29udGVudC1UeXBlIiksICJwb3RhdG8iKTsKLSAgICAgIH0sICJSZXF1ZXN0IHNob3VsZCBn
ZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QiKTsKLQotICAgICAgdGVz
dChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhlYWRlcnMo
W1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7Ci0gICAgICAgIHZhciBpbml0aWFsUmVxdWVz
dCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRlcnN9KTsKLSAgICAg
ICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbXSk7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0g
bmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QsIHsiaGVhZGVycyIgOiBoZWFkZXJzfSk7Ci0gICAg
ICAgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKSk7Ci0g
ICAgICB9LCAiUmVxdWVzdCBzaG91bGQgbm90IGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhl
IGluaXQgcmVxdWVzdCBpZiBpbml0IGhlYWRlcnMgYXJlIHByb3ZpZGVkIik7Ci0KLSAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJz
KFtbIkNvbnRlbnQtVHlwZS1FeHRyYSIsICJwb3RhdG8iXV0pOwotICAgICAgICB2YXIgaW5pdGlh
bFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzLCAi
Ym9keSIgOiAidGhpcyBpcyBteSBwbGF0ZSIsICJtZXRob2QiIDogIlBPU1QifSk7Ci0gICAgICAg
IHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOwotICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAidGV4dC9wbGFp
bjtjaGFyc2V0PVVURi04Iik7Ci0gICAgICB9LCAiUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250
ZW50LXR5cGUgZnJvbSB0aGUgYm9keSBpZiBub25lIGlzIHByb3ZpZGVkIik7Ci0KLSAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJz
KFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOwotICAgICAgICB2YXIgaW5pdGlhbFJlcXVl
c3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzLCAiYm9keSIg
OiAidGhpcyBpcyBteSBwbGF0ZSIsICJtZXRob2QiIDogIlBPU1QifSk7Ci0gICAgICAgIHZhciBy
ZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOwotICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAicG90YXRvIik7Ci0gICAg
ICB9LCAiUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSBpbml0IGhlYWRl
cnMgaWYgb25lIGlzIHByb3ZpZGVkIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIHZhciBvcHRpb25zID0geyJjYWNoZSI6ICJvbmx5LWlmLWNhY2hlZCIsICJtb2RlIjogInNh
bWUtb3JpZ2luIn07Ci0gICAgICAgIG5ldyBSZXF1ZXN0KCJ0ZXN0Iiwgb3B0aW9ucyk7Ci0gICAg
ICB9LCAiUmVxdWVzdCB3aXRoIGNhY2hlIG1vZGU6IG9ubHktaWYtY2FjaGVkIGFuZCBmZXRjaCBt
b2RlOiBzYW1lLW9yaWdpbiIpOwotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtaGVhZGVycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUx
MTdhMThjMTFhYzYyNzFlNzZjMGI0M2E1YmFiMmFjOTgzMzY2YjMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotCi1QQVNTIEFkZGluZyB2YWxp
ZCByZXF1ZXN0IGhlYWRlciAiQ29udGVudC1UeXBlOiBPSyIKLVBBU1MgQWRkaW5nIHZhbGlkIHJl
cXVlc3QgaGVhZGVyICJQb3RhdG86IE9LIgotUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFk
ZXIgInByb3h5OiBPSyIKLVBBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJwcm94eWE6
IE9LIgotUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgInNlYzogT0siCi1QQVNTIEFk
ZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAic2VjYjogT0siCi1QQVNTIEFkZGluZyBpbnZhbGlk
IHJlcXVlc3QgaGVhZGVyICJBY2NlcHQtQ2hhcnNldDogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlk
IHJlcXVlc3QgaGVhZGVyICJhY2NlcHQtY2hhcnNldDogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlk
IHJlcXVlc3QgaGVhZGVyICJBQ0NFUFQtRU5DT0RJTkc6IEtPIgotUEFTUyBBZGRpbmcgaW52YWxp
ZCByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUVuY29kaW5nOiBLTyIKLVBBU1MgQWRkaW5nIGludmFs
aWQgcmVxdWVzdCBoZWFkZXIgIkFjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVyczogS08iCi1Q
QVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0
LU1ldGhvZDogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJDb25uZWN0
aW9uOiBLTyIKLVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkNvbnRlbnQtTGVu
Z3RoOiBLTyIKLVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkNvb2tpZTogS08i
Ci1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJDb29raWUyOiBLTyIKLVBBU1Mg
QWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkRhdGU6IEtPIgotUEFTUyBBZGRpbmcgaW52
YWxpZCByZXF1ZXN0IGhlYWRlciAiRE5UOiBLTyIKLVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVz
dCBoZWFkZXIgIkV4cGVjdDogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVy
ICJIb3N0OiBLTyIKLVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIktlZXAtQWxp
dmU6IEtPIgotUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiT3JpZ2luOiBLTyIK
LVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlJlZmVyZXI6IEtPIgotUEFTUyBB
ZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVEU6IEtPIgotUEFTUyBBZGRpbmcgaW52YWxp
ZCByZXF1ZXN0IGhlYWRlciAiVHJhaWxlcjogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVl
c3QgaGVhZGVyICJUcmFuc2Zlci1FbmNvZGluZzogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJl
cXVlc3QgaGVhZGVyICJVcGdyYWRlOiBLTyIKLVBBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBo
ZWFkZXIgIlZpYTogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJQcm94
eS06IEtPIgotUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAicHJveHktYTogS08i
Ci1QQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJTZWMtOiBLTyIKLVBBU1MgQWRk
aW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgInNlYy1iOiBLTyIKLVBBU1MgQWRkaW5nIHZhbGlk
IG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgIkFjY2VwdDogT0siCi1QQVNTIEFkZGluZyB2YWxpZCBu
by1jb3JzIHJlcXVlc3QgaGVhZGVyICJBY2NlcHQtTGFuZ3VhZ2U6IE9LIgotUEFTUyBBZGRpbmcg
dmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiY29udGVudC1sYW5ndWFnZTogT0siCi1QQVNT
IEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6IGFwcGxp
Y2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKLVBBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMg
cmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxl
bmNvZGVkO2NoYXJzZXQ9VVRGLTgiCi1QQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3Qg
aGVhZGVyICJjb250ZW50LXR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGEiCi1QQVNTIEFkZGluZyB2
YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6IG11bHRpcGFydC9mb3Jt
LWRhdGE7Y2hhcnNldD1VVEYtOCIKLVBBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBo
ZWFkZXIgImNvbnRlbnQtVFlQRTogdGV4dC9wbGFpbiIKLVBBU1MgQWRkaW5nIHZhbGlkIG5vLWNv
cnMgcmVxdWVzdCBoZWFkZXIgIkNPTlRFTlQtdHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04
IgotUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJDb250ZW50LVR5
cGU6IEtPIgotUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJQb3Rh
dG86IEtPIgotUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJwcm94
eTogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInByb3h5
YTogS08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInNlYzog
S08iCi1QQVNTIEFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInNlY2I6IEtP
IgotUEFTUyBDaGVjayB0aGF0IHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRl
cnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIKLVBBU1MgQ2hlY2sgdGhhdCBuby1jb3JzIHJl
cXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBw
YXJhbWV0ZXIKLVBBU1MgQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3QgY29uc3RydWN0b3IgaXMg
ZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgcGFydCBvZiByZXF1ZXN0IHBhcmFtZXRlcgot
UEFTUyBSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJl
cXVlc3QKLVBBU1MgUmVxdWVzdCBzaG91bGQgbm90IGdldCBpdHMgY29udGVudC10eXBlIGZyb20g
dGhlIGluaXQgcmVxdWVzdCBpZiBpbml0IGhlYWRlcnMgYXJlIHByb3ZpZGVkCi1QQVNTIFJlcXVl
c3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGJvZHkgaWYgbm9uZSBpcyBw
cm92aWRlZAotUEFTUyBSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIGlu
aXQgaGVhZGVycyBpZiBvbmUgaXMgcHJvdmlkZWQKLVBBU1MgVGVzdGluZyByZXF1ZXN0IGhlYWRl
ciBjcmVhdGlvbnMgd2l0aCB2YXJpb3VzIG9iamVjdHMKLVBBU1MgVGVzdGluZyBlbXB0eSBSZXF1
ZXN0IENvbnRlbnQtVHlwZSBoZWFkZXIKLVBBU1MgVGVzdCB0aGF0IFJlcXVlc3QuaGVhZGVycyBo
YXMgdGhlIFtTYW1lT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWhlYWRlcnMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJz
LmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTExN2ExOGMxMWFjNjI3MWU3NmMwYjQzYTVi
YWIyYWM5ODMzNjZiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmFu
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1OSBAQAorCitQQVNTIEFkZGluZyB2YWxpZCByZXF1
ZXN0IGhlYWRlciAiQ29udGVudC1UeXBlOiBPSyIKK1BBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3Qg
aGVhZGVyICJQb3RhdG86IE9LIgorUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgInBy
b3h5OiBPSyIKK1BBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJwcm94eWE6IE9LIgor
UEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgInNlYzogT0siCitQQVNTIEFkZGluZyB2
YWxpZCByZXF1ZXN0IGhlYWRlciAic2VjYjogT0siCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVl
c3QgaGVhZGVyICJBY2NlcHQtQ2hhcnNldDogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVl
c3QgaGVhZGVyICJhY2NlcHQtY2hhcnNldDogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVl
c3QgaGVhZGVyICJBQ0NFUFQtRU5DT0RJTkc6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1
ZXN0IGhlYWRlciAiQWNjZXB0LUVuY29kaW5nOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVx
dWVzdCBoZWFkZXIgIkFjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVyczogS08iCitQQVNTIEFk
ZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhv
ZDogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJDb25uZWN0aW9uOiBL
TyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkNvbnRlbnQtTGVuZ3RoOiBL
TyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkNvb2tpZTogS08iCitQQVNT
IEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJDb29raWUyOiBLTyIKK1BBU1MgQWRkaW5n
IGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkRhdGU6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCBy
ZXF1ZXN0IGhlYWRlciAiRE5UOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFk
ZXIgIkV4cGVjdDogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJIb3N0
OiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIktlZXAtQWxpdmU6IEtP
IgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiT3JpZ2luOiBLTyIKK1BBU1Mg
QWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlJlZmVyZXI6IEtPIgorUEFTUyBBZGRpbmcg
aW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVEU6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1
ZXN0IGhlYWRlciAiVHJhaWxlcjogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVh
ZGVyICJUcmFuc2Zlci1FbmNvZGluZzogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3Qg
aGVhZGVyICJVcGdyYWRlOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIg
IlZpYTogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJQcm94eS06IEtP
IgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAicHJveHktYTogS08iCitQQVNT
IEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJTZWMtOiBLTyIKK1BBU1MgQWRkaW5nIGlu
dmFsaWQgcmVxdWVzdCBoZWFkZXIgInNlYy1iOiBLTyIKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNv
cnMgcmVxdWVzdCBoZWFkZXIgIkFjY2VwdDogT0siCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3Jz
IHJlcXVlc3QgaGVhZGVyICJBY2NlcHQtTGFuZ3VhZ2U6IE9LIgorUEFTUyBBZGRpbmcgdmFsaWQg
bm8tY29ycyByZXF1ZXN0IGhlYWRlciAiY29udGVudC1sYW5ndWFnZTogT0siCitQQVNTIEFkZGlu
ZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9u
L3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVz
dCBoZWFkZXIgImNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk
O2NoYXJzZXQ9VVRGLTgiCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVy
ICJjb250ZW50LXR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGEiCitQQVNTIEFkZGluZyB2YWxpZCBu
by1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGE7
Y2hhcnNldD1VVEYtOCIKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIg
ImNvbnRlbnQtVFlQRTogdGV4dC9wbGFpbiIKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVx
dWVzdCBoZWFkZXIgIkNPTlRFTlQtdHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04IgorUEFT
UyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJDb250ZW50LVR5cGU6IEtP
IgorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJQb3RhdG86IEtP
IgorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJwcm94eTogS08i
CitQQVNTIEFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInByb3h5YTogS08i
CitQQVNTIEFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInNlYzogS08iCitQ
QVNTIEFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInNlY2I6IEtPIgorUEFT
UyBDaGVjayB0aGF0IHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJv
dmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIKK1BBU1MgQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3Qg
Y29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0
ZXIKK1BBU1MgQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVy
aW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgcGFydCBvZiByZXF1ZXN0IHBhcmFtZXRlcgorUEFTUyBS
ZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QK
K1BBU1MgUmVxdWVzdCBzaG91bGQgbm90IGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGlu
aXQgcmVxdWVzdCBpZiBpbml0IGhlYWRlcnMgYXJlIHByb3ZpZGVkCitQQVNTIFJlcXVlc3Qgc2hv
dWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGJvZHkgaWYgbm9uZSBpcyBwcm92aWRl
ZAorUEFTUyBSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIGluaXQgaGVh
ZGVycyBpZiBvbmUgaXMgcHJvdmlkZWQKK1BBU1MgVGVzdGluZyByZXF1ZXN0IGhlYWRlciBjcmVh
dGlvbnMgd2l0aCB2YXJpb3VzIG9iamVjdHMKK1BBU1MgVGVzdGluZyBlbXB0eSBSZXF1ZXN0IENv
bnRlbnQtVHlwZSBoZWFkZXIKK1BBU1MgVGVzdCB0aGF0IFJlcXVlc3QuaGVhZGVycyBoYXMgdGhl
IFtTYW1lT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWhlYWRlcnMuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy5hbnkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJl
IHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMuYW55LmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWhlYWRlcnMuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0OGUyNGU1YmM2M2Y2NGM3MDUzMTUyMTQ5ZWVl
NmUxNzIzNGVmNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy5hbnku
anMKQEAgLTAsMCArMSwxNzMgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBN
RVRBOiB0aXRsZT1SZXF1ZXN0IEhlYWRlcnMKKwordmFyIHZhbGlkUmVxdWVzdEhlYWRlcnMgPSBb
CisgIFsiQ29udGVudC1UeXBlIiwgIk9LIl0sCisgIFsiUG90YXRvIiwgIk9LIl0sCisgIFsicHJv
eHkiLCAiT0siXSwKKyAgWyJwcm94eWEiLCAiT0siXSwKKyAgWyJzZWMiLCAiT0siXSwKKyAgWyJz
ZWNiIiwgIk9LIl0sCitdOwordmFyIGludmFsaWRSZXF1ZXN0SGVhZGVycyA9IFsKKyAgWyJBY2Nl
cHQtQ2hhcnNldCIsICJLTyJdLAorICBbImFjY2VwdC1jaGFyc2V0IiwgIktPIl0sCisgIFsiQUND
RVBULUVOQ09ESU5HIiwgIktPIl0sCisgIFsiQWNjZXB0LUVuY29kaW5nIiwgIktPIl0sCisgIFsi
QWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzIiwgIktPIl0sCisgIFsiQWNjZXNzLUNvbnRy
b2wtUmVxdWVzdC1NZXRob2QiLCAiS08iXSwKKyAgWyJDb25uZWN0aW9uIiwgIktPIl0sCisgIFsi
Q29udGVudC1MZW5ndGgiLCAiS08iXSwKKyAgWyJDb29raWUiLCAiS08iXSwKKyAgWyJDb29raWUy
IiwgIktPIl0sCisgIFsiRGF0ZSIsICJLTyJdLAorICBbIkROVCIsICJLTyJdLAorICBbIkV4cGVj
dCIsICJLTyJdLAorICBbIkhvc3QiLCAiS08iXSwKKyAgWyJLZWVwLUFsaXZlIiwgIktPIl0sCisg
IFsiT3JpZ2luIiwgIktPIl0sCisgIFsiUmVmZXJlciIsICJLTyJdLAorICBbIlRFIiwgIktPIl0s
CisgIFsiVHJhaWxlciIsICJLTyJdLAorICBbIlRyYW5zZmVyLUVuY29kaW5nIiwgIktPIl0sCisg
IFsiVXBncmFkZSIsICJLTyJdLAorICBbIlZpYSIsICJLTyJdLAorICBbIlByb3h5LSIsICJLTyJd
LAorICBbInByb3h5LWEiLCAiS08iXSwKKyAgWyJTZWMtIiwgIktPIl0sCisgIFsic2VjLWIiLCAi
S08iXSwKK107CisKK3ZhciB2YWxpZFJlcXVlc3ROb0NvcnNIZWFkZXJzID0gWworICBbIkFjY2Vw
dCIsICJPSyJdLAorICBbIkFjY2VwdC1MYW5ndWFnZSIsICJPSyJdLAorICBbImNvbnRlbnQtbGFu
Z3VhZ2UiLCAiT0siXSwKKyAgWyJjb250ZW50LXR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9y
bS11cmxlbmNvZGVkIl0sCisgIFsiY29udGVudC10eXBlIiwgImFwcGxpY2F0aW9uL3gtd3d3LWZv
cm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Il0sCisgIFsiY29udGVudC10eXBlIiwgIm11bHRp
cGFydC9mb3JtLWRhdGEiXSwKKyAgWyJjb250ZW50LXR5cGUiLCAibXVsdGlwYXJ0L2Zvcm0tZGF0
YTtjaGFyc2V0PVVURi04Il0sCisgIFsiY29udGVudC1UWVBFIiwgInRleHQvcGxhaW4iXSwKKyAg
WyJDT05URU5ULXR5cGUiLCAidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Il0sCitdOwordmFyIGlu
dmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycyA9IFsKKyAgWyJDb250ZW50LVR5cGUiLCAiS08iXSwK
KyAgWyJQb3RhdG8iLCAiS08iXSwKKyAgWyJwcm94eSIsICJLTyJdLAorICBbInByb3h5YSIsICJL
TyJdLAorICBbInNlYyIsICJLTyJdLAorICBbInNlY2IiLCAiS08iXSwKK107CisKK3ZhbGlkUmVx
dWVzdEhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHsKKyAgdGVzdChmdW5jdGlvbigp
IHsKKyAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiKTsKKyAgICByZXF1ZXN0LmhlYWRl
cnMuc2V0KGhlYWRlclswXSwgaGVhZGVyWzFdKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Qu
aGVhZGVycy5nZXQoaGVhZGVyWzBdKSwgaGVhZGVyWzFdKTsKKyAgfSwgIkFkZGluZyB2YWxpZCBy
ZXF1ZXN0IGhlYWRlciBcIiIgKyBoZWFkZXJbMF0gKyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7
Cit9KTsKK2ludmFsaWRSZXF1ZXN0SGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgewor
ICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIpOwor
ICAgIHJlcXVlc3QuaGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOworICAgIGFzc2Vy
dF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldChoZWFkZXJbMF0pLCBudWxsKTsKKyAgfSwgIkFk
ZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyIFwiIiArIGhlYWRlclswXSArICI6ICIgKyBoZWFk
ZXJbMV0gKyAiXCIiKTsKK30pOworCit2YWxpZFJlcXVlc3ROb0NvcnNIZWFkZXJzLmZvckVhY2go
ZnVuY3Rpb24oaGVhZGVyKSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlcXVlc3RO
b0NvcnMgPSBuZXcgUmVxdWVzdCgiIiwgeyJtb2RlIjogIm5vLWNvcnMifSk7CisgICAgcmVxdWVz
dE5vQ29ycy5oZWFkZXJzLnNldChoZWFkZXJbMF0sIGhlYWRlclsxXSk7CisgICAgYXNzZXJ0X2Vx
dWFscyhyZXF1ZXN0Tm9Db3JzLmhlYWRlcnMuZ2V0KGhlYWRlclswXSksIGhlYWRlclsxXSk7Cisg
IH0sICJBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciBcIiIgKyBoZWFkZXJbMF0g
KyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7Cit9KTsKK2ludmFsaWRSZXF1ZXN0Tm9Db3JzSGVh
ZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgeworICB0ZXN0KGZ1bmN0aW9uKCkgeworICAg
IHZhciByZXF1ZXN0Tm9Db3JzID0gbmV3IFJlcXVlc3QoIiIsIHsibW9kZSI6ICJuby1jb3JzIn0p
OworICAgIHJlcXVlc3ROb0NvcnMuaGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOwor
ICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdE5vQ29ycy5oZWFkZXJzLmdldChoZWFkZXJbMF0pLCBu
dWxsKTsKKyAgfSwgIkFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgXCIiICsg
aGVhZGVyWzBdICsgIjogIiArIGhlYWRlclsxXSArICJcIiIpOworfSk7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoW1siQ29va2llMiIsICJwb3RhdG8i
XV0pOworICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiOiBoZWFkZXJz
fSk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29va2llMiIpLCBudWxs
KTsKK30sICJDaGVjayB0aGF0IHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRl
cnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
dmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsK
KyAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogaGVhZGVycywgIm1v
ZGUiOiAibm8tY29ycyJ9KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJD
b250ZW50LVR5cGUiKSwgbnVsbCk7Cit9LCAiQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3QgY29u
c3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIi
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJD
b250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKKyAgdmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJl
cXVlc3QoIiIsIHsiaGVhZGVycyI6IGhlYWRlcnN9KTsKKyAgdmFyIHJlcXVlc3QgPSBuZXcgUmVx
dWVzdChpbml0aWFsUmVxdWVzdCwgeyJtb2RlIjogIm5vLWNvcnMifSk7CisgIGFzc2VydF9lcXVh
bHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiksIG51bGwpOworfSwgIkNoZWNr
IHRoYXQgbm8tY29ycyByZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHBy
b3ZpZGVkIGFzIHBhcnQgb2YgcmVxdWVzdCBwYXJhbWV0ZXIiKTsKKwordGVzdChmdW5jdGlvbigp
IHsKKyAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwg
InBvdGF0byJdXSk7CisgIHZhciBpbml0aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7Imhl
YWRlcnMiIDogaW5pdGlhbEhlYWRlcnN9KTsKKyAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChp
bml0aWFsUmVxdWVzdCk7CisgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29u
dGVudC1UeXBlIiksICJwb3RhdG8iKTsKK30sICJSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRl
bnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
dmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0
byJdXSk7CisgIHZhciBpbml0aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMi
IDogaW5pdGlhbEhlYWRlcnN9KTsKKyAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbXSk7Cisg
IHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QsIHsiaGVhZGVycyIgOiBo
ZWFkZXJzfSk7CisgIGFzc2VydF9mYWxzZShyZXF1ZXN0LmhlYWRlcnMuaGFzKCJDb250ZW50LVR5
cGUiKSk7Cit9LCAiUmVxdWVzdCBzaG91bGQgbm90IGdldCBpdHMgY29udGVudC10eXBlIGZyb20g
dGhlIGluaXQgcmVxdWVzdCBpZiBpbml0IGhlYWRlcnMgYXJlIHByb3ZpZGVkIik7CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgIHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRl
bnQtVHlwZS1FeHRyYSIsICJwb3RhdG8iXV0pOworICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcg
UmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzLCAiYm9keSIgOiAidGhpcyBp
cyBteSBwbGF0ZSIsICJtZXRob2QiIDogIlBPU1QifSk7CisgIHZhciByZXF1ZXN0ID0gbmV3IFJl
cXVlc3QoaW5pdGlhbFJlcXVlc3QpOworICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5n
ZXQoIkNvbnRlbnQtVHlwZSIpLCAidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Iik7Cit9LCAiUmVx
dWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgYm9keSBpZiBub25lIGlz
IHByb3ZpZGVkIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBpbml0aWFsSGVhZGVycyA9
IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOworICB2YXIgaW5pdGlh
bFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzLCAi
Ym9keSIgOiAidGhpcyBpcyBteSBwbGF0ZSIsICJtZXRob2QiIDogIlBPU1QifSk7CisgIHZhciBy
ZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOworICBhc3NlcnRfZXF1YWxzKHJl
cXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAicG90YXRvIik7Cit9LCAiUmVxdWVz
dCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSBpbml0IGhlYWRlcnMgaWYgb25lIGlz
IHByb3ZpZGVkIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBhcnJheSA9IFtbImhlbGxv
IiwgIndvcmxkQUhIIl1dOworICB2YXIgb2JqZWN0ID0geyJoZWxsbyI6ICd3b3JsZE9PSCd9Owor
ICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGFycmF5KTsKKworICBhc3NlcnRfZXF1YWxzKGhl
YWRlcnMuZ2V0KCJoZWxsbyIpLCAid29ybGRBSEgiKTsKKworICB2YXIgcmVxdWVzdDEgPSBuZXcg
UmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogaGVhZGVyc30pOworICB2YXIgcmVxdWVzdDIgPSBuZXcg
UmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogYXJyYXl9KTsKKyAgdmFyIHJlcXVlc3QzID0gbmV3IFJl
cXVlc3QoIiIsIHsiaGVhZGVycyI6IG9iamVjdH0pOworCisgIGFzc2VydF9lcXVhbHMocmVxdWVz
dDEuaGVhZGVycy5nZXQoImhlbGxvIiksICJ3b3JsZEFISCIpOworICBhc3NlcnRfZXF1YWxzKHJl
cXVlc3QyLmhlYWRlcnMuZ2V0KCJoZWxsbyIpLCAid29ybGRBSEgiKTsKKyAgYXNzZXJ0X2VxdWFs
cyhyZXF1ZXN0My5oZWFkZXJzLmdldCgiaGVsbG8iKSwgIndvcmxkT09IIik7Cit9LCAiVGVzdGlu
ZyByZXF1ZXN0IGhlYWRlciBjcmVhdGlvbnMgd2l0aCB2YXJpb3VzIG9iamVjdHMiKTsKKworcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgi
IiwgeyJoZWFkZXJzIiA6IFtbIkNvbnRlbnQtVHlwZSIsICIiXV0sICJib2R5IiA6ICJ0aGlzIGlz
IG15IHBsYXRlIiwgIm1ldGhvZCIgOiAiUE9TVCJ9KTsKKyAgcmV0dXJuIHJlcXVlc3QuYmxvYigp
LnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCAiIiwg
IkJsb2IgdHlwZSBzaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZyIpOworICB9KTsKK30sICJUZXN0
aW5nIGVtcHR5IFJlcXVlc3QgQ29udGVudC1UeXBlIGhlYWRlciIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICBjb25zdCByZXF1ZXN0MSA9IG5ldyBSZXF1ZXN0KCIiKTsKKyAgYXNzZXJ0X2VxdWFs
cyhyZXF1ZXN0MS5oZWFkZXJzLCByZXF1ZXN0MS5oZWFkZXJzKTsKKworICBjb25zdCByZXF1ZXN0
MiA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiOiB7IlgtRm9vIjogImJhciJ9fSk7CisgIGFz
c2VydF9lcXVhbHMocmVxdWVzdDIuaGVhZGVycywgcmVxdWVzdDIuaGVhZGVycyk7CisgIGNvbnN0
IGhlYWRlcnMgPSByZXF1ZXN0Mi5oZWFkZXJzOworICByZXF1ZXN0Mi5oZWFkZXJzLnNldCgiWC1G
b28iLCAicXV1eCIpOworICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMsIHJlcXVlc3QyLmhlYWRlcnMp
OworICBoZWFkZXJzLnNldCgiWC1PdGhlci1IZWFkZXIiLCAiYmF6Iik7CisgIGFzc2VydF9lcXVh
bHMoaGVhZGVycywgcmVxdWVzdDIuaGVhZGVycyk7Cit9LCAiVGVzdCB0aGF0IFJlcXVlc3QuaGVh
ZGVycyBoYXMgdGhlIFtTYW1lT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWhlYWRlcnMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTExN2Ex
OGMxMWFjNjI3MWU3NmMwYjQzYTViYWIyYWM5ODMzNjZiMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1oZWFkZXJzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTkg
QEAKKworUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgIkNvbnRlbnQtVHlwZTogT0si
CitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAiUG90YXRvOiBPSyIKK1BBU1MgQWRk
aW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJwcm94eTogT0siCitQQVNTIEFkZGluZyB2YWxpZCBy
ZXF1ZXN0IGhlYWRlciAicHJveHlhOiBPSyIKK1BBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVh
ZGVyICJzZWM6IE9LIgorUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgInNlY2I6IE9L
IgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUNoYXJzZXQ6IEtP
IgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiYWNjZXB0LWNoYXJzZXQ6IEtP
IgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQUNDRVBULUVOQ09ESU5HOiBL
TyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkFjY2VwdC1FbmNvZGluZzog
S08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBY2Nlc3MtQ29udHJvbC1S
ZXF1ZXN0LUhlYWRlcnM6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAi
QWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2Q6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCBy
ZXF1ZXN0IGhlYWRlciAiQ29ubmVjdGlvbjogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVl
c3QgaGVhZGVyICJDb250ZW50LUxlbmd0aDogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVl
c3QgaGVhZGVyICJDb29raWU6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRl
ciAiQ29va2llMjogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJEYXRl
OiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkROVDogS08iCitQQVNT
IEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJFeHBlY3Q6IEtPIgorUEFTUyBBZGRpbmcg
aW52YWxpZCByZXF1ZXN0IGhlYWRlciAiSG9zdDogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJl
cXVlc3QgaGVhZGVyICJLZWVwLUFsaXZlOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVz
dCBoZWFkZXIgIk9yaWdpbjogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVy
ICJSZWZlcmVyOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlRFOiBL
TyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlRyYWlsZXI6IEtPIgorUEFT
UyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVHJhbnNmZXItRW5jb2Rpbmc6IEtPIgor
UEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVXBncmFkZTogS08iCitQQVNTIEFk
ZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJWaWE6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxp
ZCByZXF1ZXN0IGhlYWRlciAiUHJveHktOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVz
dCBoZWFkZXIgInByb3h5LWE6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRl
ciAiU2VjLTogS08iCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJzZWMtYjog
S08iCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJBY2NlcHQ6IE9L
IgorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUxhbmd1
YWdlOiBPSyIKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRl
bnQtbGFuZ3VhZ2U6IE9LIgorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRl
ciAiY29udGVudC10eXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiCitQQVNT
IEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6IGFwcGxp
Y2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IgorUEFTUyBBZGRpbmcg
dmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiY29udGVudC10eXBlOiBtdWx0aXBhcnQvZm9y
bS1kYXRhIgorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiY29udGVu
dC10eXBlOiBtdWx0aXBhcnQvZm9ybS1kYXRhO2NoYXJzZXQ9VVRGLTgiCitQQVNTIEFkZGluZyB2
YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LVRZUEU6IHRleHQvcGxhaW4iCitQ
QVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJDT05URU5ULXR5cGU6IHRl
eHQvcGxhaW47Y2hhcnNldD1VVEYtOCIKK1BBU1MgQWRkaW5nIGludmFsaWQgbm8tY29ycyByZXF1
ZXN0IGhlYWRlciAiQ29udGVudC1UeXBlOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgbm8tY29y
cyByZXF1ZXN0IGhlYWRlciAiUG90YXRvOiBLTyIKK1BBU1MgQWRkaW5nIGludmFsaWQgbm8tY29y
cyByZXF1ZXN0IGhlYWRlciAicHJveHk6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3Jz
IHJlcXVlc3QgaGVhZGVyICJwcm94eWE6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3Jz
IHJlcXVlc3QgaGVhZGVyICJzZWM6IEtPIgorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJl
cXVlc3QgaGVhZGVyICJzZWNiOiBLTyIKK1BBU1MgQ2hlY2sgdGhhdCByZXF1ZXN0IGNvbnN0cnVj
dG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIGluaXQgcGFyYW1ldGVyCitQQVNT
IENoZWNrIHRoYXQgbm8tY29ycyByZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFk
ZXJzIHByb3ZpZGVkIGFzIGluaXQgcGFyYW1ldGVyCitQQVNTIENoZWNrIHRoYXQgbm8tY29ycyBy
ZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIHBhcnQg
b2YgcmVxdWVzdCBwYXJhbWV0ZXIKK1BBU1MgUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50
LXR5cGUgZnJvbSB0aGUgaW5pdCByZXF1ZXN0CitQQVNTIFJlcXVlc3Qgc2hvdWxkIG5vdCBnZXQg
aXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QgaWYgaW5pdCBoZWFkZXJzIGFy
ZSBwcm92aWRlZAorUEFTUyBSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9t
IHRoZSBib2R5IGlmIG5vbmUgaXMgcHJvdmlkZWQKK1BBU1MgUmVxdWVzdCBzaG91bGQgZ2V0IGl0
cyBjb250ZW50LXR5cGUgZnJvbSBpbml0IGhlYWRlcnMgaWYgb25lIGlzIHByb3ZpZGVkCitQQVNT
IFRlc3RpbmcgcmVxdWVzdCBoZWFkZXIgY3JlYXRpb25zIHdpdGggdmFyaW91cyBvYmplY3RzCitQ
QVNTIFRlc3RpbmcgZW1wdHkgUmVxdWVzdCBDb250ZW50LVR5cGUgaGVhZGVyCitQQVNTIFRlc3Qg
dGhhdCBSZXF1ZXN0LmhlYWRlcnMgaGFzIHRoZSBbU2FtZU9iamVjdF0gZXh0ZW5kZWQgYXR0cmli
dXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmFueS53b3JrZXIuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1oZWFkZXJzLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEz
NTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWhlYWRlcnMuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4g
dGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTRmMmZiMmQ1ODYxNjY5NjIzNjk3
M2I1NTE5Y2JmN2Q5ZWI2ZTNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
ODYgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5SZXF1ZXN0IEhlYWRlcnM8L3RpdGxlPgotICAg
IDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNy
ZXF1ZXN0Ij4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBG
cmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8
Ym9keT4KLSAgICA8c2NyaXB0PgotICAgICAgdmFyIHZhbGlkUmVxdWVzdEhlYWRlcnMgPSBbCi0g
ICAgICAgIFsiQ29udGVudC1UeXBlIiwgIk9LIl0sCi0gICAgICAgIFsiUG90YXRvIiwgIk9LIl0s
Ci0gICAgICAgIFsicHJveHkiLCAiT0siXSwKLSAgICAgICAgWyJwcm94eWEiLCAiT0siXSwKLSAg
ICAgICAgWyJzZWMiLCAiT0siXSwKLSAgICAgICAgWyJzZWNiIiwgIk9LIl0sCi0gICAgICBdOwot
ICAgICAgdmFyIGludmFsaWRSZXF1ZXN0SGVhZGVycyA9IFsKLSAgICAgICAgWyJBY2NlcHQtQ2hh
cnNldCIsICJLTyJdLAotICAgICAgICBbImFjY2VwdC1jaGFyc2V0IiwgIktPIl0sCi0gICAgICAg
IFsiQUNDRVBULUVOQ09ESU5HIiwgIktPIl0sCi0gICAgICAgIFsiQWNjZXB0LUVuY29kaW5nIiwg
IktPIl0sCi0gICAgICAgIFsiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzIiwgIktPIl0s
Ci0gICAgICAgIFsiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QiLCAiS08iXSwKLSAgICAg
ICAgWyJDb25uZWN0aW9uIiwgIktPIl0sCi0gICAgICAgIFsiQ29udGVudC1MZW5ndGgiLCAiS08i
XSwKLSAgICAgICAgWyJDb29raWUiLCAiS08iXSwKLSAgICAgICAgWyJDb29raWUyIiwgIktPIl0s
Ci0gICAgICAgIFsiRGF0ZSIsICJLTyJdLAotICAgICAgICBbIkROVCIsICJLTyJdLAotICAgICAg
ICBbIkV4cGVjdCIsICJLTyJdLAotICAgICAgICBbIkhvc3QiLCAiS08iXSwKLSAgICAgICAgWyJL
ZWVwLUFsaXZlIiwgIktPIl0sCi0gICAgICAgIFsiT3JpZ2luIiwgIktPIl0sCi0gICAgICAgIFsi
UmVmZXJlciIsICJLTyJdLAotICAgICAgICBbIlRFIiwgIktPIl0sCi0gICAgICAgIFsiVHJhaWxl
ciIsICJLTyJdLAotICAgICAgICBbIlRyYW5zZmVyLUVuY29kaW5nIiwgIktPIl0sCi0gICAgICAg
IFsiVXBncmFkZSIsICJLTyJdLAotICAgICAgICBbIlZpYSIsICJLTyJdLAotICAgICAgICBbIlBy
b3h5LSIsICJLTyJdLAotICAgICAgICBbInByb3h5LWEiLCAiS08iXSwKLSAgICAgICAgWyJTZWMt
IiwgIktPIl0sCi0gICAgICAgIFsic2VjLWIiLCAiS08iXSwKLSAgICAgIF07Ci0KLSAgICAgIHZh
ciB2YWxpZFJlcXVlc3ROb0NvcnNIZWFkZXJzID0gWwotICAgICAgICBbIkFjY2VwdCIsICJPSyJd
LAotICAgICAgICBbIkFjY2VwdC1MYW5ndWFnZSIsICJPSyJdLAotICAgICAgICBbImNvbnRlbnQt
bGFuZ3VhZ2UiLCAiT0siXSwKLSAgICAgICAgWyJjb250ZW50LXR5cGUiLCAiYXBwbGljYXRpb24v
eC13d3ctZm9ybS11cmxlbmNvZGVkIl0sCi0gICAgICAgIFsiY29udGVudC10eXBlIiwgImFwcGxp
Y2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Il0sCi0gICAgICAgIFsi
Y29udGVudC10eXBlIiwgIm11bHRpcGFydC9mb3JtLWRhdGEiXSwKLSAgICAgICAgWyJjb250ZW50
LXR5cGUiLCAibXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04Il0sCi0gICAgICAgIFsi
Y29udGVudC1UWVBFIiwgInRleHQvcGxhaW4iXSwKLSAgICAgICAgWyJDT05URU5ULXR5cGUiLCAi
dGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Il0sCi0gICAgICBdOwotICAgICAgdmFyIGludmFsaWRS
ZXF1ZXN0Tm9Db3JzSGVhZGVycyA9IFsKLSAgICAgICAgWyJDb250ZW50LVR5cGUiLCAiS08iXSwK
LSAgICAgICAgWyJQb3RhdG8iLCAiS08iXSwKLSAgICAgICAgWyJwcm94eSIsICJLTyJdLAotICAg
ICAgICBbInByb3h5YSIsICJLTyJdLAotICAgICAgICBbInNlYyIsICJLTyJdLAotICAgICAgICBb
InNlY2IiLCAiS08iXSwKLSAgICAgIF07Ci0KLSAgICAgIHZhbGlkUmVxdWVzdEhlYWRlcnMuZm9y
RWFjaChmdW5jdGlvbihoZWFkZXIpIHsKLSAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAg
ICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiKTsKLSAgICAgICAgICByZXF1ZXN0Lmhl
YWRlcnMuc2V0KGhlYWRlclswXSwgaGVhZGVyWzFdKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlcXVlc3QuaGVhZGVycy5nZXQoaGVhZGVyWzBdKSwgaGVhZGVyWzFdKTsKLSAgICAgICAgfSwg
IkFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciBcIiIgKyBoZWFkZXJbMF0gKyAiOiAiICsgaGVh
ZGVyWzFdICsgIlwiIik7Ci0gICAgICB9KTsKLSAgICAgIGludmFsaWRSZXF1ZXN0SGVhZGVycy5m
b3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIpOwotICAgICAgICAgIHJlcXVlc3Qu
aGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOwotICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVxdWVzdC5oZWFkZXJzLmdldChoZWFkZXJbMF0pLCBudWxsKTsKLSAgICAgICAgfSwgIkFk
ZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyIFwiIiArIGhlYWRlclswXSArICI6ICIgKyBoZWFk
ZXJbMV0gKyAiXCIiKTsKLSAgICAgIH0pOwotCi0gICAgICB2YWxpZFJlcXVlc3ROb0NvcnNIZWFk
ZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgdmFyIHJlcXVlc3ROb0NvcnMgPSBuZXcgUmVxdWVzdCgiIiwgeyJtb2RlIjog
Im5vLWNvcnMifSk7Ci0gICAgICAgICAgcmVxdWVzdE5vQ29ycy5oZWFkZXJzLnNldChoZWFkZXJb
MF0sIGhlYWRlclsxXSk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0Tm9Db3JzLmhl
YWRlcnMuZ2V0KGhlYWRlclswXSksIGhlYWRlclsxXSk7Ci0gICAgICAgIH0sICJBZGRpbmcgdmFs
aWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciBcIiIgKyBoZWFkZXJbMF0gKyAiOiAiICsgaGVhZGVy
WzFdICsgIlwiIik7Ci0gICAgICB9KTsKLSAgICAgIGludmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVy
cy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewot
ICAgICAgICAgIHZhciByZXF1ZXN0Tm9Db3JzID0gbmV3IFJlcXVlc3QoIiIsIHsibW9kZSI6ICJu
by1jb3JzIn0pOwotICAgICAgICAgIHJlcXVlc3ROb0NvcnMuaGVhZGVycy5zZXQoaGVhZGVyWzBd
LCBoZWFkZXJbMV0pOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdE5vQ29ycy5oZWFk
ZXJzLmdldChoZWFkZXJbMF0pLCBudWxsKTsKLSAgICAgICAgfSwgIkFkZGluZyBpbnZhbGlkIG5v
LWNvcnMgcmVxdWVzdCBoZWFkZXIgXCIiICsgaGVhZGVyWzBdICsgIjogIiArIGhlYWRlclsxXSAr
ICJcIiIpOwotICAgICAgfSk7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZh
ciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoW1siQ29va2llMiIsICJwb3RhdG8iXV0pOwotICAgICAg
ICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiOiBoZWFkZXJzfSk7Ci0g
ICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29va2llMiIpLCBudWxs
KTsKLSAgICAgIH0sICJDaGVjayB0aGF0IHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5n
IGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIiKTsKLQotICAgICAgdGVzdChmdW5j
dGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5
cGUiLCAicG90YXRvIl1dKTsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwg
eyJoZWFkZXJzIjogaGVhZGVycywgIm1vZGUiOiAibm8tY29ycyJ9KTsKLSAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSwgbnVsbCk7Ci0gICAg
ICB9LCAiQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5n
IGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIiKTsKLQotICAgICAgdGVzdChmdW5j
dGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5
cGUiLCAicG90YXRvIl1dKTsKLSAgICAgICAgdmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoIiIsIHsiaGVhZGVycyI6IGhlYWRlcnN9KTsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcg
UmVxdWVzdChpbml0aWFsUmVxdWVzdCwgeyJtb2RlIjogIm5vLWNvcnMifSk7Ci0gICAgICAgIGFz
c2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiksIG51bGwpOwot
ICAgICAgfSwgIkNoZWNrIHRoYXQgbm8tY29ycyByZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRl
cmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIHBhcnQgb2YgcmVxdWVzdCBwYXJhbWV0ZXIiKTsKLQot
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3
IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7Ci0gICAgICAgIHZhciBpbml0
aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRlcnN9
KTsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCk7Ci0g
ICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiks
ICJwb3RhdG8iKTsKLSAgICAgIH0sICJSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlw
ZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAg
ICAgICAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwg
InBvdGF0byJdXSk7Ci0gICAgICAgIHZhciBpbml0aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIi
LCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRlcnN9KTsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBu
ZXcgSGVhZGVycyhbXSk7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlh
bFJlcXVlc3QsIHsiaGVhZGVycyIgOiBoZWFkZXJzfSk7Ci0gICAgICAgIGFzc2VydF9mYWxzZShy
ZXF1ZXN0LmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKSk7Ci0gICAgICB9LCAiUmVxdWVzdCBz
aG91bGQgbm90IGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdCBpZiBp
bml0IGhlYWRlcnMgYXJlIHByb3ZpZGVkIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZS1F
eHRyYSIsICJwb3RhdG8iXV0pOwotICAgICAgICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVx
dWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzLCAiYm9keSIgOiAidGhpcyBpcyBt
eSBwbGF0ZSIsICJtZXRob2QiIDogIlBPU1QifSk7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3
IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Qu
aGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Iik7
Ci0gICAgICB9LCAiUmVxdWVzdCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUg
Ym9keSBpZiBub25lIGlzIHByb3ZpZGVkIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIs
ICJwb3RhdG8iXV0pOwotICAgICAgICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgi
IiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzLCAiYm9keSIgOiAidGhpcyBpcyBteSBwbGF0
ZSIsICJtZXRob2QiIDogIlBPU1QifSk7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoaW5pdGlhbFJlcXVlc3QpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVy
cy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAicG90YXRvIik7Ci0gICAgICB9LCAiUmVxdWVzdCBzaG91
bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSBpbml0IGhlYWRlcnMgaWYgb25lIGlzIHByb3Zp
ZGVkIik7Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBhcnJheSA9IFtb
ImhlbGxvIiwgIndvcmxkQUhIIl1dOwotICAgICAgICB2YXIgb2JqZWN0ID0geyJoZWxsbyI6ICd3
b3JsZE9PSCd9OwotICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGFycmF5KTsKLQot
ICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCJoZWxsbyIpLCAid29ybGRBSEgiKTsK
LQotICAgICAgICB2YXIgcmVxdWVzdDEgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogaGVh
ZGVyc30pOwotICAgICAgICB2YXIgcmVxdWVzdDIgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJz
IjogYXJyYXl9KTsKLSAgICAgICAgdmFyIHJlcXVlc3QzID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVh
ZGVycyI6IG9iamVjdH0pOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdDEuaGVhZGVy
cy5nZXQoImhlbGxvIiksICJ3b3JsZEFISCIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVl
c3QyLmhlYWRlcnMuZ2V0KCJoZWxsbyIpLCAid29ybGRBSEgiKTsKLSAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyZXF1ZXN0My5oZWFkZXJzLmdldCgiaGVsbG8iKSwgIndvcmxkT09IIik7Ci0gICAgICB9
LCAiVGVzdGluZyByZXF1ZXN0IGhlYWRlciBjcmVhdGlvbnMgd2l0aCB2YXJpb3VzIG9iamVjdHMi
KTsKLQotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJl
cXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IFtbIkNvbnRlbnQtVHlwZSIsICIi
XV0sICJib2R5IiA6ICJ0aGlzIGlzIG15IHBsYXRlIiwgIm1ldGhvZCIgOiAiUE9TVCJ9KTsKLSAg
ICAgICAgcmV0dXJuIHJlcXVlc3QuYmxvYigpLnRoZW4oZnVuY3Rpb24oYmxvYikgewotICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCAiIiwgIkJsb2IgdHlwZSBzaG91bGQgYmUgdGhl
IGVtcHR5IHN0cmluZyIpOwotICAgICAgICB9KTsKLSAgICAgIH0sICJUZXN0aW5nIGVtcHR5IFJl
cXVlc3QgQ29udGVudC1UeXBlIGhlYWRlciIpOwotCi0gICAgICB0ZXN0KGZ1bmN0aW9uKCkgewot
ICAgICAgICBjb25zdCByZXF1ZXN0MSA9IG5ldyBSZXF1ZXN0KCIiKTsKLSAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZXF1ZXN0MS5oZWFkZXJzLCByZXF1ZXN0MS5oZWFkZXJzKTsKLQotICAgICAgICBj
b25zdCByZXF1ZXN0MiA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiOiB7IlgtRm9vIjogImJh
ciJ9fSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdDIuaGVhZGVycywgcmVxdWVzdDIu
aGVhZGVycyk7Ci0gICAgICAgIGNvbnN0IGhlYWRlcnMgPSByZXF1ZXN0Mi5oZWFkZXJzOwotICAg
ICAgICByZXF1ZXN0Mi5oZWFkZXJzLnNldCgiWC1Gb28iLCAicXV1eCIpOwotICAgICAgICBhc3Nl
cnRfZXF1YWxzKGhlYWRlcnMsIHJlcXVlc3QyLmhlYWRlcnMpOwotICAgICAgICBoZWFkZXJzLnNl
dCgiWC1PdGhlci1IZWFkZXIiLCAiYmF6Iik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoaGVhZGVy
cywgcmVxdWVzdDIuaGVhZGVycyk7Ci0gICAgICB9LCAiVGVzdCB0aGF0IFJlcXVlc3QuaGVhZGVy
cyBoYXMgdGhlIFtTYW1lT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKLQotICAgIDwvc2Ny
aXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0w
MDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTFiOWIwYTNlMDgyZmRiMWRjZDEwZThhMzE5NWU2
NDAyNWFjY2QyZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTAgKzAsMCBAQAotCi1QQVNTIEluaXRpYWxpemUgUmVxdWVzdCB3aXRoIGhlYWRlcnMgdmFsdWVz
Ci1QQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCAidW5kZWZpbmVkIiwgdW5kZWZp
bmVkCi1QQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCAibnVsbCIsIG51bGwKLVBB
U1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJbb2JqZWN0IEJsb2JdIiwgYXBwbGlj
YXRpb24vb2N0ZXQtYmluYXJ5Ci1QQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCAi
W29iamVjdCBGb3JtRGF0YV0iLCBtdWx0aXBhcnQvZm9ybS1kYXRhCi1QQVNTIEluaXRpYWxpemUg
UmVxdWVzdCdzIGJvZHkgd2l0aCAiVGhpcyBpcyBhIFVTVlN0cmluZyIsIHRleHQvcGxhaW47Y2hh
cnNldD1VVEYtOAotUEFTUyBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggImhpISIsIHRl
eHQvcGxhaW47Y2hhcnNldD1VVEYtOAotUEFTUyBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdp
dGggIm5hbWU9dmFsdWUiLCBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNl
dD1VVEYtOAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuYW55LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUxYjliMGEzZTA4MmZkYjFkY2QxMGU4YTMxOTVlNjQwMjVhY2NkMmUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACisKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0IHdpdGggaGVhZGVycyB2YWx1ZXMKK1BBU1Mg
SW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJ1bmRlZmluZWQiLCB1bmRlZmluZWQKK1BB
U1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJudWxsIiwgbnVsbAorUEFTUyBJbml0
aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggIltvYmplY3QgQmxvYl0iLCBhcHBsaWNhdGlvbi9v
Y3RldC1iaW5hcnkKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJbb2JqZWN0
IEZvcm1EYXRhXSIsIG11bHRpcGFydC9mb3JtLWRhdGEKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0
J3MgYm9keSB3aXRoICJUaGlzIGlzIGEgVVNWU3RyaW5nIiwgdGV4dC9wbGFpbjtjaGFyc2V0PVVU
Ri04CitQQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCAiaGkhIiwgdGV4dC9wbGFp
bjtjaGFyc2V0PVVURi04CitQQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCAibmFt
ZT12YWx1ZSIsIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5hbnkuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1pbml0LTAwMi5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZj
NjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQt
MDAyLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0t
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1p
bml0LTAwMi5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuYW55LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFiYjY2ODlmMWU4NDRhY2I1MDc5MjlmNzAxZjNmODg1MmMwOTk0ZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuYW55LmpzCkBAIC0wLDAgKzEsNjAgQEAKKy8vIE1F
VEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGluaXQ6IGhl
YWRlcnMgYW5kIGJvZHkKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGhlYWRlckRpY3QgPSB7
Im5hbWUxIjogInZhbHVlMSIsCisgICAgICAgICAgICAgICAgICAgICJuYW1lMiI6ICJ2YWx1ZTIi
LAorICAgICAgICAgICAgICAgICAgICAibmFtZTMiOiAidmFsdWUzIgorICAgICAgICAgICAgICAg
ICAgICB9OworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckRpY3QpOworICB2YXIg
cmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ICJoZWFkZXJzIiA6IGhlYWRlcnMgfSkKKyAgZm9y
ICh2YXIgbmFtZSBpbiBoZWFkZXJEaWN0KSB7CisgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0Lmhl
YWRlcnMuZ2V0KG5hbWUpLCBoZWFkZXJEaWN0W25hbWVdLAorICAgICAgInJlcXVlc3QncyBoZWFk
ZXJzIGhhcyAiICsgbmFtZSArICIgOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7CisgIH0KK30sICJJ
bml0aWFsaXplIFJlcXVlc3Qgd2l0aCBoZWFkZXJzIHZhbHVlcyIpOworCitmdW5jdGlvbiBtYWtl
UmVxdWVzdEluaXQoYm9keSwgbWV0aG9kKSB7CisgIHJldHVybiB7Im1ldGhvZCI6IG1ldGhvZCwg
ImJvZHkiOiBib2R5fTsKK30KKworZnVuY3Rpb24gY2hlY2tSZXF1ZXN0SW5pdChib2R5LCBib2R5
VHlwZSwgZXhwZWN0ZWRUZXh0Qm9keSkgeworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkg
eworICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIG1ha2VSZXF1ZXN0SW5pdChib2R5
LCAiUE9TVCIpKTsKKyAgICBpZiAoYm9keSkgeworICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBl
RXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdCgiIiwgbWFrZVJlcXVlc3RJbml0KGJvZHks
ICJHRVQiKSk7IH0pOworICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9u
KCkgeyBuZXcgUmVxdWVzdCgiIiwgbWFrZVJlcXVlc3RJbml0KGJvZHksICJIRUFEIikpOyB9KTsK
KyAgICB9IGVsc2UgeworICAgICAgbmV3IFJlcXVlc3QoIiIsIG1ha2VSZXF1ZXN0SW5pdChib2R5
LCAiR0VUIikpOyAvLyBzaG91bGQgbm90IHRocm93CisgICAgfQorICAgIHZhciByZXFIZWFkZXJz
ID0gcmVxdWVzdC5oZWFkZXJzOworICAgIHZhciBtaW1lID0gcmVxSGVhZGVycy5nZXQoIkNvbnRl
bnQtVHlwZSIpOworICAgIGFzc2VydF90cnVlKCFib2R5IHx8IChtaW1lICYmIG1pbWUuc2VhcmNo
KGJvZHlUeXBlKSA+IC0xKSwgIkNvbnRlbnQtVHlwZSBoZWFkZXIgc2hvdWxkIGJlIFwiIiArIGJv
ZHlUeXBlICsgIlwiLCBub3QgXCIiICsgbWltZSArICJcIiIpOworICAgIHJldHVybiByZXF1ZXN0
LnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsKKyAgICAgIC8vbm90IGVxdWFsczog
Y2Fubm90IGd1ZXNzIGZvcm1EYXRhIGV4YWN0IHZhbHVlCisgICAgICBhc3NlcnRfdHJ1ZSggYm9k
eUFzVGV4dC5zZWFyY2goZXhwZWN0ZWRUZXh0Qm9keSkgPiAtMSwgIlJldHJpZXZlIGFuZCB2ZXJp
ZnkgcmVxdWVzdCBib2R5Iik7CisgICAgfSk7CisgIH0sIGBJbml0aWFsaXplIFJlcXVlc3QncyBi
b2R5IHdpdGggIiR7Ym9keX0iLCAke2JvZHlUeXBlfWApOworfQorCit2YXIgYmxvYiA9IG5ldyBC
bG9iKFsiVGhpcyBpcyBhIGJsb2IiXSwge3R5cGU6ICJhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnki
fSk7Cit2YXIgZm9ybWFEYXRhID0gbmV3IEZvcm1EYXRhKCk7Citmb3JtYURhdGEuYXBwZW5kKCJu
YW1lIiwgInZhbHVlIik7Cit2YXIgdXN2U3RyaW5nID0gIlRoaXMgaXMgYSBVU1ZTdHJpbmciCisK
K2NoZWNrUmVxdWVzdEluaXQodW5kZWZpbmVkLCB1bmRlZmluZWQsICIiKTsKK2NoZWNrUmVxdWVz
dEluaXQobnVsbCwgbnVsbCwgIiIpOworY2hlY2tSZXF1ZXN0SW5pdChibG9iLCAiYXBwbGljYXRp
b24vb2N0ZXQtYmluYXJ5IiwgIlRoaXMgaXMgYSBibG9iIik7CitjaGVja1JlcXVlc3RJbml0KGZv
cm1hRGF0YSwgIm11bHRpcGFydC9mb3JtLWRhdGEiLCAibmFtZT1cIm5hbWVcIlxyXG5cclxudmFs
dWUiKTsKK2NoZWNrUmVxdWVzdEluaXQodXN2U3RyaW5nLCAidGV4dC9wbGFpbjtjaGFyc2V0PVVU
Ri04IiwgIlRoaXMgaXMgYSBVU1ZTdHJpbmciKTsKK2NoZWNrUmVxdWVzdEluaXQoe3RvU3RyaW5n
OiAoKSA9PiAiaGkhIn0sICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiLCAiaGkhIik7CisKKy8v
IEVuc3VyZSB0ZXN0IGRvZXMgbm90IHRpbWUgb3V0IGluIGNhc2Ugb2YgbWlzc2luZyBVUkxTZWFy
Y2hQYXJhbXMgc3VwcG9ydC4KK2lmIChzZWxmLlVSTFNlYXJjaFBhcmFtcykgeworICB2YXIgdXJs
U2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygibmFtZT12YWx1ZSIpOworICBjaGVj
a1JlcXVlc3RJbml0KHVybFNlYXJjaFBhcmFtcywgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJs
ZW5jb2RlZDtjaGFyc2V0PVVURi04IiwgIm5hbWU9dmFsdWUiKTsKK30gZWxzZSB7CisgIHByb21p
c2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJVUkxT
ZWFyY2hQYXJhbXMgbm90IHN1cHBvcnRlZCIpOworICB9LCAiSW5pdGlhbGl6ZSBSZXF1ZXN0J3Mg
Ym9keSB3aXRoIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04
Iik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTFiOWIwYTNlMDgyZmRiMWRjZDEwZThhMzE5NWU2NDAyNWFjY2QyZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0IHdpdGggaGVh
ZGVycyB2YWx1ZXMKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJ1bmRlZmlu
ZWQiLCB1bmRlZmluZWQKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJudWxs
IiwgbnVsbAorUEFTUyBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggIltvYmplY3QgQmxv
Yl0iLCBhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3Mg
Ym9keSB3aXRoICJbb2JqZWN0IEZvcm1EYXRhXSIsIG11bHRpcGFydC9mb3JtLWRhdGEKK1BBU1Mg
SW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoICJUaGlzIGlzIGEgVVNWU3RyaW5nIiwgdGV4
dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0
aCAiaGkhIiwgdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIEluaXRpYWxpemUgUmVxdWVz
dCdzIGJvZHkgd2l0aCAibmFtZT12YWx1ZSIsIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5j
b2RlZDtjaGFyc2V0PVVURi04CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5h
bnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuYW55Lndvcmtlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuYW55Lndvcmtlci5odG1sCkBAIC0w
LDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZy
YXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWluaXQtMDAyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0
YmUyNzc0MjIwOGJlZmZlN2Y3MTIzNzcxODEyZGUwNzNjZmYxZDEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgot
ICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJlcXVlc3Qg
aW5pdDogaGVhZGVycyBhbmQgYm9keTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxtZXRhIG5h
bWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93
d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0g
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgaGVhZGVyRGljdCA9IHsibmFtZTEi
OiAidmFsdWUxIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUyIjogInZhbHVlMiIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lMyI6ICJ2YWx1ZTMiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgfTsKLSAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFk
ZXJEaWN0KTsKLSAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyAiaGVhZGVy
cyIgOiBoZWFkZXJzIH0pCi0gICAgICAgIGZvciAodmFyIG5hbWUgaW4gaGVhZGVyRGljdCkgewot
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldChuYW1lKSwgaGVhZGVy
RGljdFtuYW1lXSwKLSAgICAgICAgICAgInJlcXVlc3QncyBoZWFkZXJzIGhhcyAiICsgbmFtZSAr
ICIgOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJJbml0aWFs
aXplIFJlcXVlc3Qgd2l0aCBoZWFkZXJzIHZhbHVlcyIpOwotCi0gICAgICBmdW5jdGlvbiBtYWtl
UmVxdWVzdEluaXQoYm9keSwgbWV0aG9kKSB7Ci0gICAgICAgIHJldHVybiB7Im1ldGhvZCI6IG1l
dGhvZCwgImJvZHkiOiBib2R5fTsKLSAgICAgIH0KLQotICAgICAgZnVuY3Rpb24gY2hlY2tSZXF1
ZXN0SW5pdChib2R5LCBib2R5VHlwZSwgZXhwZWN0ZWRUZXh0Qm9keSkgewotICAgICAgICBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJl
cXVlc3QoIiIsIG1ha2VSZXF1ZXN0SW5pdChib2R5LCAiUE9TVCIpKTsKLSAgICAgICAgICBpZiAo
Ym9keSkgewotICAgICAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9u
KCkgeyBuZXcgUmVxdWVzdCgiIiwgbWFrZVJlcXVlc3RJbml0KGJvZHksICJHRVQiKSk7IH0pOwot
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBuZXcg
UmVxdWVzdCgiIiwgbWFrZVJlcXVlc3RJbml0KGJvZHksICJIRUFEIikpOyB9KTsKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgbmV3IFJlcXVlc3QoIiIsIG1ha2VSZXF1ZXN0SW5pdChi
b2R5LCAiR0VUIikpOyAvLyBzaG91bGQgbm90IHRocm93Ci0gICAgICAgICAgfQotICAgICAgICAg
IHZhciByZXFIZWFkZXJzID0gcmVxdWVzdC5oZWFkZXJzOwotICAgICAgICAgIHZhciBtaW1lID0g
cmVxSGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpOwotICAgICAgICAgIGFzc2VydF90cnVlKCFi
b2R5IHx8IChtaW1lICYmIG1pbWUuc2VhcmNoKGJvZHlUeXBlKSA+IC0xKSwgIkNvbnRlbnQtVHlw
ZSBoZWFkZXIgc2hvdWxkIGJlIFwiIiArIGJvZHlUeXBlICsgIlwiLCBub3QgXCIiICsgbWltZSAr
ICJcIiIpOwotICAgICAgICAgIHJldHVybiByZXF1ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKGJv
ZHlBc1RleHQpIHsKLSAgICAgICAgICAgIC8vbm90IGVxdWFsczogY2Fubm90IGd1ZXNzIGZvcm1E
YXRhIGV4YWN0IHZhbHVlCi0gICAgICAgICAgICBhc3NlcnRfdHJ1ZSggYm9keUFzVGV4dC5zZWFy
Y2goZXhwZWN0ZWRUZXh0Qm9keSkgPiAtMSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVxdWVzdCBi
b2R5Iik7Ci0gICAgICAgICAgfSk7Ci0gICAgICAgIH0sIGBJbml0aWFsaXplIFJlcXVlc3QncyBi
b2R5IHdpdGggIiR7Ym9keX0iLCAke2JvZHlUeXBlfWApOwotICAgICAgfQotCi0gICAgICB2YXIg
YmxvYiA9IG5ldyBCbG9iKFsiVGhpcyBpcyBhIGJsb2IiXSwge3R5cGU6ICJhcHBsaWNhdGlvbi9v
Y3RldC1iaW5hcnkifSk7Ci0gICAgICB2YXIgZm9ybWFEYXRhID0gbmV3IEZvcm1EYXRhKCk7Ci0g
ICAgICBmb3JtYURhdGEuYXBwZW5kKCJuYW1lIiwgInZhbHVlIik7Ci0gICAgICB2YXIgdXN2U3Ry
aW5nID0gIlRoaXMgaXMgYSBVU1ZTdHJpbmciCi0KLSAgICAgIGNoZWNrUmVxdWVzdEluaXQodW5k
ZWZpbmVkLCB1bmRlZmluZWQsICIiKTsKLSAgICAgIGNoZWNrUmVxdWVzdEluaXQobnVsbCwgbnVs
bCwgIiIpOwotICAgICAgY2hlY2tSZXF1ZXN0SW5pdChibG9iLCAiYXBwbGljYXRpb24vb2N0ZXQt
YmluYXJ5IiwgIlRoaXMgaXMgYSBibG9iIik7Ci0gICAgICBjaGVja1JlcXVlc3RJbml0KGZvcm1h
RGF0YSwgIm11bHRpcGFydC9mb3JtLWRhdGEiLCAibmFtZT1cIm5hbWVcIlxyXG5cclxudmFsdWUi
KTsKLSAgICAgIGNoZWNrUmVxdWVzdEluaXQodXN2U3RyaW5nLCAidGV4dC9wbGFpbjtjaGFyc2V0
PVVURi04IiwgIlRoaXMgaXMgYSBVU1ZTdHJpbmciKTsKLSAgICAgIGNoZWNrUmVxdWVzdEluaXQo
e3RvU3RyaW5nOiAoKSA9PiAiaGkhIn0sICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiLCAiaGkh
Iik7Ci0KLSAgICAgIC8vIEVuc3VyZSB0ZXN0IGRvZXMgbm90IHRpbWUgb3V0IGluIGNhc2Ugb2Yg
bWlzc2luZyBVUkxTZWFyY2hQYXJhbXMgc3VwcG9ydC4KLSAgICAgIGlmICh3aW5kb3cuVVJMU2Vh
cmNoUGFyYW1zKSB7Ci0gICAgICAgIHZhciB1cmxTZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNo
UGFyYW1zKCJuYW1lPXZhbHVlIik7Ci0gICAgICAgIGNoZWNrUmVxdWVzdEluaXQodXJsU2VhcmNo
UGFyYW1zLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgi
LCAibmFtZT12YWx1ZSIpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoIlVSTFNlYXJj
aFBhcmFtcyBub3Qgc3VwcG9ydGVkIik7Ci0gICAgICAgIH0sICJJbml0aWFsaXplIFJlcXVlc3Qn
cyBib2R5IHdpdGggYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRG
LTgiKTsKLSAgICAgIH0KLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtc3RyZWFtLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtaW5pdC1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dAppbmRleCBiZjY1MjVjODNjNDYyMzZm
N2RmMzZhNmEzYjMzN2ZmZmY3MTkwMjMyLi5kYTVkYmY1ZTNjZjMwY2I2OTNjODRkMGExOTQ2NGM3
MTM3ODczNzY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC1zdHJlYW0uYW55LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDUgQEAKIAorUEFTUyBDb25zdHJ1Y3RpbmcgYSBSZXF1ZXN0IHdpdGggYSBzdHJl
YW0gaG9sZHMgdGhlIG9yaWdpbmFsIG9iamVjdC4KIFBBU1MgQ29uc3RydWN0aW5nIGEgUmVxdWVz
dCB3aXRoIGEgc3RyZWFtIG9uIHdoaWNoIGdldFJlYWRlcigpIGlzIGNhbGxlZAogUEFTUyBDb25z
dHJ1Y3RpbmcgYSBSZXF1ZXN0IHdpdGggYSBzdHJlYW0gb24gd2hpY2ggcmVhZCgpIGlzIGNhbGxl
ZAogUEFTUyBDb25zdHJ1Y3RpbmcgYSBSZXF1ZXN0IHdpdGggYSBzdHJlYW0gb24gd2hpY2ggcmVh
ZCgpIGFuZCByZWxlYXNlTG9jaygpIGFyZSBjYWxsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1pbml0LXN0cmVhbS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC1zdHJlYW0uYW55LmpzCmlu
ZGV4IGU3ZmZhNzI5ZDE1Yjg0MWUzMDdkNDljYmRjNzk5NGNlNzhiMmYwNTkuLjhjNTBjNDkyOWU3
NWRhY2I2MWEzYTc0MDU0YTE2OWFlMjM0NmJiZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1p
bml0LXN0cmVhbS5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtc3RyZWFtLmFueS5qcwpA
QCAtMiw2ICsyLDEyIEBACiAKICJ1c2Ugc3RyaWN0IjsKIAordGVzdCgoKSA9PiB7CisgIGNvbnN0
IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSgpOworICBjb25zdCByZXF1ZXN0ID0gbmV3IFJl
cXVlc3QoIi4uLiIsIHsgbWV0aG9kOiJQT1NUIiwgYm9keTogc3RyZWFtIH0pOworICBhc3NlcnRf
ZXF1YWxzKHJlcXVlc3QuYm9keSwgc3RyZWFtKTsKK30sICJDb25zdHJ1Y3RpbmcgYSBSZXF1ZXN0
IHdpdGggYSBzdHJlYW0gaG9sZHMgdGhlIG9yaWdpbmFsIG9iamVjdC4iKTsKKwogYXN5bmMgZnVu
Y3Rpb24gYXNzZXJ0X3JlcXVlc3QodGVzdCwgaW5wdXQsIGluaXQpIHsKICAgYXNzZXJ0X3Rocm93
c19qcyhUeXBlRXJyb3IsICgpID0+IG5ldyBSZXF1ZXN0KGlucHV0LCBpbml0KSwgIm5ldyBSZXF1
ZXN0KCkiKTsKICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgZmV0
Y2goaW5wdXQsIGluaXQpLCAiZmV0Y2goKSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlu
aXQtc3RyZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtc3Ry
ZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGJmNjUyNWM4M2M0NjIzNmY3ZGYzNmE2
YTNiMzM3ZmZmZjcxOTAyMzIuLmRhNWRiZjVlM2NmMzBjYjY5M2M4NGQwYTE5NDY0YzcxMzc4NzM3
NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LXN0cmVhbS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC1zdHJlYW0uYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTEsNCArMSw1IEBACiAKK1BBU1MgQ29uc3RydWN0aW5nIGEgUmVxdWVzdCB3aXRo
IGEgc3RyZWFtIGhvbGRzIHRoZSBvcmlnaW5hbCBvYmplY3QuCiBQQVNTIENvbnN0cnVjdGluZyBh
IFJlcXVlc3Qgd2l0aCBhIHN0cmVhbSBvbiB3aGljaCBnZXRSZWFkZXIoKSBpcyBjYWxsZWQKIFBB
U1MgQ29uc3RydWN0aW5nIGEgUmVxdWVzdCB3aXRoIGEgc3RyZWFtIG9uIHdoaWNoIHJlYWQoKSBp
cyBjYWxsZWQKIFBBU1MgQ29uc3RydWN0aW5nIGEgUmVxdWVzdCB3aXRoIGEgc3RyZWFtIG9uIHdo
aWNoIHJlYWQoKSBhbmQgcmVsZWFzZUxvY2soKSBhcmUgY2FsbGVkCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3Qta2VlcGFsaXZlLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qta2VlcGFs
aXZlLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJhNWI2ZGM0OGFlNDdhNTdmOTZmNWUy
ODU3ZTRmOTYyYmVkZGY0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVwYWxp
dmUuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBrZWVwYWxpdmUgZmxh
ZworUEFTUyBrZWVwYWxpdmUgZmxhZyB3aXRoIHN0cmVhbSBib2R5CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1rZWVwYWxpdmUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qta2VlcGFsaXZlLmFu
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4
YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qta2VlcGFsaXZlLmFueS5odG1sCkBA
IC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBp
bmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUuYW55Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWtlZXBhbGl2ZS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I0NTA2ZGI0NmM5
MzFjYTM0N2IwNWE3Y2FhMTA4MjkyZTQ4MGZjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1rZWVwYWxpdmUuYW55LmpzCkBAIC0wLDAgKzEsMTcgQEAKKy8vIE1FVEE6IGdsb2JhbD13
aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXF1ZXN0IGtlZXBhbGl2ZQorLy8gTUVUQTog
c2NyaXB0PS9jb21tb24vdXRpbHMuanMKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL2dldC1ob3N0
LWluZm8uc3ViLmpzCisKK3Rlc3QoKCkgPT4geworICBhc3NlcnRfZmFsc2UobmV3IFJlcXVlc3Qo
Jy8nKS5rZWVwYWxpdmUsICdkZWZhdWx0Jyk7CisgIGFzc2VydF90cnVlKG5ldyBSZXF1ZXN0KCcv
Jywge2tlZXBhbGl2ZTogdHJ1ZX0pLmtlZXBhbGl2ZSwgJ3RydWUnKTsKKyAgYXNzZXJ0X2ZhbHNl
KG5ldyBSZXF1ZXN0KCcvJywge2tlZXBhbGl2ZTogZmFsc2V9KS5rZWVwYWxpdmUsICdmYWxzZScp
OworICBhc3NlcnRfdHJ1ZShuZXcgUmVxdWVzdCgnLycsIHtrZWVwYWxpdmU6IDF9KS5rZWVwYWxp
dmUsICd0cnVpc2gnKTsKKyAgYXNzZXJ0X2ZhbHNlKG5ldyBSZXF1ZXN0KCcvJywge2tlZXBhbGl2
ZTogMH0pLmtlZXBhbGl2ZSwgJ2ZhbHN5Jyk7Cit9LCAna2VlcGFsaXZlIGZsYWcnKTsKKwordGVz
dCgoKSA9PiB7CisgIGNvbnN0IGluaXQgPSB7bWV0aG9kOiAnUE9TVCcsIGtlZXBhbGl2ZTogdHJ1
ZSwgYm9keTogbmV3IFJlYWRhYmxlU3RyZWFtKCl9OworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwgKCkgPT4ge25ldyBSZXF1ZXN0KCcvJywgaW5pdCl9KTsKK30sICdrZWVwYWxpdmUgZmxh
ZyB3aXRoIHN0cmVhbSBib2R5Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qta2VlcGFsaXZl
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWtlZXBhbGl2ZS5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmE1YjZkYzQ4YWU0N2E1N2Y5NmY1ZTI4NTdl
NGY5NjJiZWRkZjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWtlZXBhbGl2ZS5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBrZWVwYWxpdmUg
ZmxhZworUEFTUyBrZWVwYWxpdmUgZmxhZyB3aXRoIHN0cmVhbSBib2R5CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWtl
ZXBhbGl2ZS5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2
YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVw
YWxpdmUuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRl
ZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1rZWVwYWxpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1rZWVwYWxpdmUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE2NTQyMjE2NmU5NTMxYjY4OTIwODI3MWY0YzI2
OTFlMTQxNWNmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3Qta2VlcGFsaXZlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCww
IEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Ci08dGl0bGU+UmVxdWVzdCBrZWVwYWxpdmU8L3RpdGxlPgotPG1ldGEgbmFtZT0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9j
b21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3Qt
aW5mby5zdWIuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotdGVzdCgo
KSA9PiB7Ci0gIGFzc2VydF9mYWxzZShuZXcgUmVxdWVzdCgnLycpLmtlZXBhbGl2ZSwgJ2RlZmF1
bHQnKTsKLSAgYXNzZXJ0X3RydWUobmV3IFJlcXVlc3QoJy8nLCB7a2VlcGFsaXZlOiB0cnVlfSku
a2VlcGFsaXZlLCAndHJ1ZScpOwotICBhc3NlcnRfZmFsc2UobmV3IFJlcXVlc3QoJy8nLCB7a2Vl
cGFsaXZlOiBmYWxzZX0pLmtlZXBhbGl2ZSwgJ2ZhbHNlJyk7Ci0gIGFzc2VydF90cnVlKG5ldyBS
ZXF1ZXN0KCcvJywge2tlZXBhbGl2ZTogMX0pLmtlZXBhbGl2ZSwgJ3RydWlzaCcpOwotICBhc3Nl
cnRfZmFsc2UobmV3IFJlcXVlc3QoJy8nLCB7a2VlcGFsaXZlOiAwfSkua2VlcGFsaXZlLCAnZmFs
c3knKTsKLX0sICdrZWVwYWxpdmUgZmxhZycpOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgaW5p
dCA9IHttZXRob2Q6ICdQT1NUJywga2VlcGFsaXZlOiB0cnVlLCBib2R5OiBuZXcgUmVhZGFibGVT
dHJlYW0oKX07Ci0gIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiB7bmV3IFJlcXVl
c3QoJy8nLCBpbml0KX0pOwotfSwgJ2tlZXBhbGl2ZSBmbGFnIHdpdGggc3RyZWFtIGJvZHknKTsK
LTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0
cnVjdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWFlZWRmZTk2YjY0NTE3MzdlN2RhYzY2
N2E5YmRjZmNjYzVmYzE3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIyICswLDAgQEAKLQotUEFTUyBSZXF1ZXN0IGhhcyBjbG9uZSBtZXRob2QKLVBBU1Mg
UmVxdWVzdCBoYXMgYXJyYXlCdWZmZXIgbWV0aG9kCi1QQVNTIFJlcXVlc3QgaGFzIGJsb2IgbWV0
aG9kCi1QQVNTIFJlcXVlc3QgaGFzIGZvcm1EYXRhIG1ldGhvZAotUEFTUyBSZXF1ZXN0IGhhcyBq
c29uIG1ldGhvZAotUEFTUyBSZXF1ZXN0IGhhcyB0ZXh0IG1ldGhvZAotUEFTUyBDaGVjayBtZXRo
b2QgYXR0cmlidXRlCi1QQVNTIENoZWNrIHVybCBhdHRyaWJ1dGUKLVBBU1MgQ2hlY2sgaGVhZGVy
cyBhdHRyaWJ1dGUKLUZBSUwgQ2hlY2sgZGVzdGluYXRpb24gYXR0cmlidXRlIGFzc2VydF9lcXVh
bHM6IEF0dHJpYnV0ZSBkZXN0aW5hdGlvbiBpcyByZWFkIG9ubHkuIERlZmF1bHQgdmFsdWUgaXMg
ZW1wdHkgZXhwZWN0ZWQgImVtcHR5IiBidXQgZ290ICIiCi1QQVNTIENoZWNrIHJlZmVycmVyIGF0
dHJpYnV0ZQotUEFTUyBDaGVjayByZWZlcnJlclBvbGljeSBhdHRyaWJ1dGUKLVBBU1MgQ2hlY2sg
bW9kZSBhdHRyaWJ1dGUKLVBBU1MgQ2hlY2sgY3JlZGVudGlhbHMgYXR0cmlidXRlCi1QQVNTIENo
ZWNrIGNhY2hlIGF0dHJpYnV0ZQotUEFTUyBDaGVjayByZWRpcmVjdCBhdHRyaWJ1dGUKLVBBU1Mg
Q2hlY2sgaW50ZWdyaXR5IGF0dHJpYnV0ZQotRkFJTCBDaGVjayBpc1JlbG9hZE5hdmlnYXRpb24g
YXR0cmlidXRlIGFzc2VydF90cnVlOiByZXF1ZXN0IGhhcyBpc1JlbG9hZE5hdmlnYXRpb24gYXR0
cmlidXRlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIENoZWNrIGlzSGlzdG9yeU5hdmln
YXRpb24gYXR0cmlidXRlIGFzc2VydF90cnVlOiByZXF1ZXN0IGhhcyBpc0hpc3RvcnlOYXZpZ2F0
aW9uIGF0dHJpYnV0ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotUEFTUyBDaGVjayBib2R5VXNl
ZCBhdHRyaWJ1dGUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk0OTU5YjNiNzljZGQwNjYyMTMzMTgxYTM5MjFjYjY1MGRjYzEwYjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmFueS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyMiBAQAorCitQQVNTIFJlcXVlc3QgaGFzIGNsb25lIG1ldGhvZAorUEFTUyBSZXF1ZXN0
IGhhcyBhcnJheUJ1ZmZlciBtZXRob2QKK1BBU1MgUmVxdWVzdCBoYXMgYmxvYiBtZXRob2QKK1BB
U1MgUmVxdWVzdCBoYXMgZm9ybURhdGEgbWV0aG9kCitQQVNTIFJlcXVlc3QgaGFzIGpzb24gbWV0
aG9kCitQQVNTIFJlcXVlc3QgaGFzIHRleHQgbWV0aG9kCitQQVNTIENoZWNrIG1ldGhvZCBhdHRy
aWJ1dGUKK1BBU1MgQ2hlY2sgdXJsIGF0dHJpYnV0ZQorUEFTUyBDaGVjayBoZWFkZXJzIGF0dHJp
YnV0ZQorUEFTUyBDaGVjayBkZXN0aW5hdGlvbiBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgcmVmZXJy
ZXIgYXR0cmlidXRlCitQQVNTIENoZWNrIHJlZmVycmVyUG9saWN5IGF0dHJpYnV0ZQorUEFTUyBD
aGVjayBtb2RlIGF0dHJpYnV0ZQorUEFTUyBDaGVjayBjcmVkZW50aWFscyBhdHRyaWJ1dGUKK1BB
U1MgQ2hlY2sgY2FjaGUgYXR0cmlidXRlCitQQVNTIENoZWNrIHJlZGlyZWN0IGF0dHJpYnV0ZQor
UEFTUyBDaGVjayBpbnRlZ3JpdHkgYXR0cmlidXRlCitGQUlMIENoZWNrIGlzUmVsb2FkTmF2aWdh
dGlvbiBhdHRyaWJ1dGUgYXNzZXJ0X3RydWU6IHJlcXVlc3QgaGFzIGlzUmVsb2FkTmF2aWdhdGlv
biBhdHRyaWJ1dGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgQ2hlY2sgaXNIaXN0b3J5
TmF2aWdhdGlvbiBhdHRyaWJ1dGUgYXNzZXJ0X3RydWU6IHJlcXVlc3QgaGFzIGlzSGlzdG9yeU5h
dmlnYXRpb24gYXR0cmlidXRlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIENoZWNrIGJv
ZHlVc2VkIGF0dHJpYnV0ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmFu
eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgy
OTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRo
ZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1
cmUuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZjFiOTZiMmI5MDQyY2Q5Zjk2NTZmMTI1Yzc1NmU5YjRl
NWZmODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmFueS5qcwpA
QCAtMCwwICsxLDEyOCBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6
IHRpdGxlPVJlcXVlc3Qgc3RydWN0dXJlCisKK3ZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIp
OwordmFyIG1ldGhvZHMgPSBbImNsb25lIiwKKyAgICAgICAgICAgICAgICAvL1JlcXVlc3QgaW1w
bGVtZW50cyBCb2R5CisgICAgICAgICAgICAgICAgImFycmF5QnVmZmVyIiwKKyAgICAgICAgICAg
ICAgICAiYmxvYiIsCisgICAgICAgICAgICAgICAgImZvcm1EYXRhIiwKKyAgICAgICAgICAgICAg
ICAianNvbiIsCisgICAgICAgICAgICAgICAgInRleHQiCisgICAgICAgICAgICAgIF07Cit2YXIg
YXR0cmlidXRlcyA9IFsibWV0aG9kIiwKKyAgICAgICAgICAgICAgICAgICJ1cmwiLAorICAgICAg
ICAgICAgICAgICAgImhlYWRlcnMiLAorICAgICAgICAgICAgICAgICAgImRlc3RpbmF0aW9uIiwK
KyAgICAgICAgICAgICAgICAgICJyZWZlcnJlciIsCisgICAgICAgICAgICAgICAgICAicmVmZXJy
ZXJQb2xpY3kiLAorICAgICAgICAgICAgICAgICAgIm1vZGUiLAorICAgICAgICAgICAgICAgICAg
ImNyZWRlbnRpYWxzIiwKKyAgICAgICAgICAgICAgICAgICJjYWNoZSIsCisgICAgICAgICAgICAg
ICAgICAicmVkaXJlY3QiLAorICAgICAgICAgICAgICAgICAgImludGVncml0eSIsCisgICAgICAg
ICAgICAgICAgICAiaXNSZWxvYWROYXZpZ2F0aW9uIiwKKyAgICAgICAgICAgICAgICAgICJpc0hp
c3RvcnlOYXZpZ2F0aW9uIiwKKyAgICAgICAgICAgICAgICAgIC8vUmVxdWVzdCBpbXBsZW1lbnRz
IEJvZHkKKyAgICAgICAgICAgICAgICAgICJib2R5VXNlZCIKKyAgICAgICAgICAgICAgICAgIF07
CisKK2Z1bmN0aW9uIElzcmVhZE9ubHkocmVxdWVzdCwgYXR0cmlidXRlVG9DaGVjaykgeworICB2
YXIgZGVmYXVsdFZhbHVlID0gdW5kZWZpbmVkOworICB2YXIgbmV3VmFsdWUgPSB1bmRlZmluZWQ7
CisgIHN3aXRjaCAoYXR0cmlidXRlVG9DaGVjaykgeworICAgIGNhc2UgIm1ldGhvZCI6CisgICAg
ICBkZWZhdWx0VmFsdWUgPSAiR0VUIjsKKyAgICAgIG5ld1ZhbHVlID0gIlBPU1QiOworICAgICAg
YnJlYWs7CisKKyAgICBjYXNlICJ1cmwiOgorICAgICAgLy9kZWZhdWx0IHZhbHVlIGlzIGJhc2Ug
dXJsCisgICAgICAvL2kuZSBodHRwOi8vZXhhbXBsZS5jb20vZmV0Y2gvYXBpL3JlcXVlc3Qtc3Ry
dWN0dXJlLmh0bWwKKyAgICAgIG5ld1ZhbHVlID0gImh0dHA6Ly91cmwudGVzdCI7CisgICAgICBi
cmVhazsKKworICAgIGNhc2UgImhlYWRlcnMiOgorICAgICAgcmVxdWVzdC5oZWFkZXJzID0gbmV3
IEhlYWRlcnMgKHsibmFtZSI6InZhbHVlIn0pOworICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3Qu
aGVhZGVycy5oYXMoIm5hbWUiKSwgIkhlYWRlcnMgYXR0cmlidXRlIGlzIHJlYWQgb25seSIpOwor
ICAgICAgcmV0dXJuOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlICJkZXN0aW5hdGlvbiI6Cisg
ICAgICBkZWZhdWx0VmFsdWUgPSAiIjsKKyAgICAgIG5ld1ZhbHVlID0gIndvcmtlciI7CisgICAg
ICBicmVhazsKKworICAgIGNhc2UgInJlZmVycmVyIjoKKyAgICAgIGRlZmF1bHRWYWx1ZSA9ICJh
Ym91dDpjbGllbnQiOworICAgICAgbmV3VmFsdWUgPSAiaHR0cDovL3VybC50ZXN0IjsKKyAgICAg
IGJyZWFrOworCisgICAgY2FzZSAicmVmZXJyZXJQb2xpY3kiOgorICAgICAgZGVmYXVsdFZhbHVl
ID0gIiI7CisgICAgICBuZXdWYWx1ZSA9ICJ1bnNhZmUtdXJsIjsKKyAgICAgIGJyZWFrOworCisg
ICAgY2FzZSAibW9kZSI6CisgICAgICBkZWZhdWx0VmFsdWUgPSAiY29ycyI7CisgICAgICBuZXdW
YWx1ZSA9ICJuYXZpZ2F0ZSI7CisgICAgICBicmVhazsKKworICAgIGNhc2UgImNyZWRlbnRpYWxz
IjoKKyAgICAgIGRlZmF1bHRWYWx1ZSA9ICJzYW1lLW9yaWdpbiI7CisgICAgICBuZXdWYWx1ZSA9
ICJjb3JzIjsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSAiY2FjaGUiOgorICAgICAgZGVmYXVs
dFZhbHVlID0gImRlZmF1bHQiOworICAgICAgbmV3VmFsdWUgPSAicmVsb2FkIjsKKyAgICAgIGJy
ZWFrOworCisgICAgY2FzZSAicmVkaXJlY3QiOgorICAgICAgZGVmYXVsdFZhbHVlID0gImZvbGxv
dyI7CisgICAgICBuZXdWYWx1ZSA9ICJtYW51YWwiOworICAgICAgYnJlYWs7CisKKyAgICBjYXNl
ICJpbnRlZ3JpdHkiOgorICAgICAgbmV3VmFsdWUgPSAiQ2Fubm90V3JpdGVJbnRlZ3JpdHkiOwor
ICAgICAgYnJlYWs7CisKKyAgICBjYXNlICJib2R5VXNlZCI6CisgICAgICBkZWZhdWx0VmFsdWUg
PSBmYWxzZTsKKyAgICAgIG5ld1ZhbHVlID0gdHJ1ZTsKKyAgICAgIGJyZWFrOworCisgICAgY2Fz
ZSAiaXNSZWxvYWROYXZpZ2F0aW9uIjoKKyAgICAgIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOworICAg
ICAgbmV3VmFsdWUgPSB0cnVlOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlICJpc0hpc3RvcnlO
YXZpZ2F0aW9uIjoKKyAgICAgIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOworICAgICAgbmV3VmFsdWUg
PSB0cnVlOworICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuOworICB9
CisKKyAgcmVxdWVzdFthdHRyaWJ1dGVUb0NoZWNrXSA9IG5ld1ZhbHVlOworICBpZiAoZGVmYXVs
dFZhbHVlID09PSB1bmRlZmluZWQpCisgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVxdWVzdFthdHRy
aWJ1dGVUb0NoZWNrXSwgbmV3VmFsdWUsICJBdHRyaWJ1dGUgIiArIGF0dHJpYnV0ZVRvQ2hlY2sg
KyAiIGlzIHJlYWQgb25seSIpOworICBlbHNlCisgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0W2F0
dHJpYnV0ZVRvQ2hlY2tdLCBkZWZhdWx0VmFsdWUsCisgICAgICAiQXR0cmlidXRlICIgKyBhdHRy
aWJ1dGVUb0NoZWNrICsgIiBpcyByZWFkIG9ubHkuIERlZmF1bHQgdmFsdWUgaXMgIiArIGRlZmF1
bHRWYWx1ZSk7Cit9CisKK2ZvciAodmFyIGlkeCBpbiBtZXRob2RzKSB7CisgIHRlc3QoZnVuY3Rp
b24oKSB7CisgICAgYXNzZXJ0X3RydWUobWV0aG9kc1tpZHhdIGluIHJlcXVlc3QsICJyZXF1ZXN0
IGhhcyAiICsgbWV0aG9kc1tpZHhdICsgIiBtZXRob2QiKTsKKyAgfSwgIlJlcXVlc3QgaGFzICIg
KyBtZXRob2RzW2lkeF0gKyAiIG1ldGhvZCIpOworfQorCitmb3IgKHZhciBpZHggaW4gYXR0cmli
dXRlcykgeworICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzc2VydF90cnVlKGF0dHJpYnV0ZXNb
aWR4XSBpbiByZXF1ZXN0LCAicmVxdWVzdCBoYXMgIiArIGF0dHJpYnV0ZXNbaWR4XSArICIgYXR0
cmlidXRlIik7CisgICAgSXNyZWFkT25seShyZXF1ZXN0LCBhdHRyaWJ1dGVzW2lkeF0pOworICB9
LCAiQ2hlY2sgIiArIGF0dHJpYnV0ZXNbaWR4XSArICIgYXR0cmlidXRlIik7Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
NDk1OWIzYjc5Y2RkMDY2MjEzMzE4MWEzOTIxY2I2NTBkY2MxMGIzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIyIEBACisKK1BBU1MgUmVxdWVzdCBoYXMgY2xvbmUgbWV0aG9kCitQQVNTIFJlcXVlc3Qg
aGFzIGFycmF5QnVmZmVyIG1ldGhvZAorUEFTUyBSZXF1ZXN0IGhhcyBibG9iIG1ldGhvZAorUEFT
UyBSZXF1ZXN0IGhhcyBmb3JtRGF0YSBtZXRob2QKK1BBU1MgUmVxdWVzdCBoYXMganNvbiBtZXRo
b2QKK1BBU1MgUmVxdWVzdCBoYXMgdGV4dCBtZXRob2QKK1BBU1MgQ2hlY2sgbWV0aG9kIGF0dHJp
YnV0ZQorUEFTUyBDaGVjayB1cmwgYXR0cmlidXRlCitQQVNTIENoZWNrIGhlYWRlcnMgYXR0cmli
dXRlCitQQVNTIENoZWNrIGRlc3RpbmF0aW9uIGF0dHJpYnV0ZQorUEFTUyBDaGVjayByZWZlcnJl
ciBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgcmVmZXJyZXJQb2xpY3kgYXR0cmlidXRlCitQQVNTIENo
ZWNrIG1vZGUgYXR0cmlidXRlCitQQVNTIENoZWNrIGNyZWRlbnRpYWxzIGF0dHJpYnV0ZQorUEFT
UyBDaGVjayBjYWNoZSBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgcmVkaXJlY3QgYXR0cmlidXRlCitQ
QVNTIENoZWNrIGludGVncml0eSBhdHRyaWJ1dGUKK0ZBSUwgQ2hlY2sgaXNSZWxvYWROYXZpZ2F0
aW9uIGF0dHJpYnV0ZSBhc3NlcnRfdHJ1ZTogcmVxdWVzdCBoYXMgaXNSZWxvYWROYXZpZ2F0aW9u
IGF0dHJpYnV0ZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBDaGVjayBpc0hpc3RvcnlO
YXZpZ2F0aW9uIGF0dHJpYnV0ZSBhc3NlcnRfdHJ1ZTogcmVxdWVzdCBoYXMgaXNIaXN0b3J5TmF2
aWdhdGlvbiBhdHRyaWJ1dGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgQ2hlY2sgYm9k
eVVzZWQgYXR0cmlidXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUuYW55
Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnkud29ya2VyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUuYW55Lndvcmtlci5odG1sCkBAIC0w
LDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZy
YXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODA2NjA2Y2Y2MjdjMTE1YWFkNGMzZmQ4OWQ0Y2MyMzc3YTNjOGE2MS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRt
bD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5SZXF1
ZXN0IHN0cnVjdHVyZTwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxtZXRhIG5hbWU9ImF1dGhv
ciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNh
bm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgICB2YXIg
cmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiKTsKLSAgICAgIHZhciBtZXRob2RzID0gWyJjbG9uZSIs
Ci0gICAgICAgICAgICAgICAgICAgICAvL1JlcXVlc3QgaW1wbGVtZW50cyBCb2R5Ci0gICAgICAg
ICAgICAgICAgICAgICAiYXJyYXlCdWZmZXIiLAotICAgICAgICAgICAgICAgICAgICAgImJsb2Ii
LAotICAgICAgICAgICAgICAgICAgICAgImZvcm1EYXRhIiwKLSAgICAgICAgICAgICAgICAgICAg
ICJqc29uIiwKLSAgICAgICAgICAgICAgICAgICAgICJ0ZXh0IgotICAgICAgICAgICAgICAgICAg
ICBdOwotICAgICAgdmFyIGF0dHJpYnV0ZXMgPSBbIm1ldGhvZCIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAidXJsIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJoZWFkZXJzIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJkZXN0aW5hdGlvbiIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAicmVmZXJyZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVyUG9saWN5IiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJtb2RlIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJjcmVkZW50aWFscyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiY2FjaGUiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgInJlZGlyZWN0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJp
bnRlZ3JpdHkiLAotICAgICAgICAgICAgICAgICAgICAgICAgImlzUmVsb2FkTmF2aWdhdGlvbiIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAiaXNIaXN0b3J5TmF2aWdhdGlvbiIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAvL1JlcXVlc3QgaW1wbGVtZW50cyBCb2R5Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAiYm9keVVzZWQiCi0gICAgICAgICAgICAgICAgICAgICAgIF07Ci0KLSAgICAg
IGZ1bmN0aW9uIElzcmVhZE9ubHkocmVxdWVzdCwgYXR0cmlidXRlVG9DaGVjaykgewotICAgICAg
ICB2YXIgZGVmYXVsdFZhbHVlID0gdW5kZWZpbmVkOwotICAgICAgICB2YXIgbmV3VmFsdWUgPSB1
bmRlZmluZWQ7Ci0gICAgICAgIHN3aXRjaCAoYXR0cmlidXRlVG9DaGVjaykgewotICAgICAgICAg
IGNhc2UgIm1ldGhvZCI6Ci0gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiR0VUIjsKLSAgICAg
ICAgICAgIG5ld1ZhbHVlID0gIlBPU1QiOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAg
ICBjYXNlICJ1cmwiOgotICAgICAgICAgICAgLy9kZWZhdWx0IHZhbHVlIGlzIGJhc2UgdXJsCi0g
ICAgICAgICAgICAvL2kuZSBodHRwOi8vZXhhbXBsZS5jb20vZmV0Y2gvYXBpL3JlcXVlc3Qtc3Ry
dWN0dXJlLmh0bWwKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gImh0dHA6Ly91cmwudGVzdCI7Ci0g
ICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgIGNhc2UgImhlYWRlcnMiOgotICAgICAgICAg
ICAgcmVxdWVzdC5oZWFkZXJzID0gbmV3IEhlYWRlcnMgKHsibmFtZSI6InZhbHVlIn0pOwotICAg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuaGVhZGVycy5oYXMoIm5hbWUiKSwgIkhlYWRl
cnMgYXR0cmlidXRlIGlzIHJlYWQgb25seSIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBjYXNlICJkZXN0aW5hdGlvbiI6Ci0gICAgICAgICAg
ICBkZWZhdWx0VmFsdWUgPSAiZW1wdHkiOwotICAgICAgICAgICAgbmV3VmFsdWUgPSAid29ya2Vy
IjsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgY2FzZSAicmVmZXJyZXIiOgotICAg
ICAgICAgICAgZGVmYXVsdFZhbHVlID0gImFib3V0OmNsaWVudCI7Ci0gICAgICAgICAgICBuZXdW
YWx1ZSA9ICJodHRwOi8vdXJsLnRlc3QiOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAg
ICBjYXNlICJyZWZlcnJlclBvbGljeSI6Ci0gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiIjsK
LSAgICAgICAgICAgIG5ld1ZhbHVlID0gInVuc2FmZS11cmwiOwotICAgICAgICAgICAgYnJlYWs7
Ci0KLSAgICAgICAgICBjYXNlICJtb2RlIjoKLSAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJj
b3JzIjsKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gIm5hdmlnYXRlIjsKLSAgICAgICAgICAgIGJy
ZWFrOwotCi0gICAgICAgICAgY2FzZSAiY3JlZGVudGlhbHMiOgotICAgICAgICAgICAgZGVmYXVs
dFZhbHVlID0gInNhbWUtb3JpZ2luIjsKLSAgICAgICAgICAgIG5ld1ZhbHVlID0gImNvcnMiOwot
ICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBjYXNlICJjYWNoZSI6Ci0gICAgICAgICAg
ICBkZWZhdWx0VmFsdWUgPSAiZGVmYXVsdCI7Ci0gICAgICAgICAgICBuZXdWYWx1ZSA9ICJyZWxv
YWQiOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBjYXNlICJyZWRpcmVjdCI6Ci0g
ICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiZm9sbG93IjsKLSAgICAgICAgICAgIG5ld1ZhbHVl
ID0gIm1hbnVhbCI7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgIGNhc2UgImludGVn
cml0eSI6Ci0gICAgICAgICAgICBuZXdWYWx1ZSA9ICJDYW5ub3RXcml0ZUludGVncml0eSI7Ci0g
ICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgIGNhc2UgImJvZHlVc2VkIjoKLSAgICAgICAg
ICAgIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOwotICAgICAgICAgICAgbmV3VmFsdWUgPSB0cnVlOwot
ICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICBjYXNlICJpc1JlbG9hZE5hdmlnYXRpb24i
OgotICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gZmFsc2U7Ci0gICAgICAgICAgICBuZXdWYWx1
ZSA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgIGNhc2UgImlzSGlzdG9y
eU5hdmlnYXRpb24iOgotICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gZmFsc2U7Ci0gICAgICAg
ICAgICBuZXdWYWx1ZSA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICByZXF1ZXN0
W2F0dHJpYnV0ZVRvQ2hlY2tdID0gbmV3VmFsdWU7Ci0gICAgICAgIGlmIChkZWZhdWx0VmFsdWUg
PT09IHVuZGVmaW5lZCkKLSAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhyZXF1ZXN0W2F0dHJp
YnV0ZVRvQ2hlY2tdLCBuZXdWYWx1ZSwgIkF0dHJpYnV0ZSAiICsgYXR0cmlidXRlVG9DaGVjayAr
ICIgaXMgcmVhZCBvbmx5Iik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlcXVlc3RbYXR0cmlidXRlVG9DaGVja10sIGRlZmF1bHRWYWx1ZSwKLSAgICAgICAgICAgIkF0
dHJpYnV0ZSAiICsgYXR0cmlidXRlVG9DaGVjayArICIgaXMgcmVhZCBvbmx5LiBEZWZhdWx0IHZh
bHVlIGlzICIgKyBkZWZhdWx0VmFsdWUpOwotICAgICAgfQotCi0gICAgICBmb3IgKHZhciBpZHgg
aW4gbWV0aG9kcykgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIGFzc2Vy
dF90cnVlKG1ldGhvZHNbaWR4XSBpbiByZXF1ZXN0LCAicmVxdWVzdCBoYXMgIiArIG1ldGhvZHNb
aWR4XSArICIgbWV0aG9kIik7Ci0gICAgICAgIH0sICJSZXF1ZXN0IGhhcyAiICsgbWV0aG9kc1tp
ZHhdICsgIiBtZXRob2QiKTsKLSAgICAgIH0KLQotICAgICAgZm9yICh2YXIgaWR4IGluIGF0dHJp
YnV0ZXMpIHsKLSAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAgICAgICAgICBhc3NlcnRfdHJ1
ZShhdHRyaWJ1dGVzW2lkeF0gaW4gcmVxdWVzdCwgInJlcXVlc3QgaGFzICIgKyBhdHRyaWJ1dGVz
W2lkeF0gKyAiIGF0dHJpYnV0ZSIpOwotICAgICAgICAgIElzcmVhZE9ubHkocmVxdWVzdCwgYXR0
cmlidXRlc1tpZHhdKTsKLSAgICAgICAgfSwgIkNoZWNrICIgKyBhdHRyaWJ1dGVzW2lkeF0gKyAi
IGF0dHJpYnV0ZSIpOwotICAgICAgfQotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3Jlc291cmNlcy9jYWNoZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVzb3VyY2VzL2Nh
Y2hlLnB5CmluZGV4IDEwMTIyZjY0Mzk2MTVjODQwZTMzZDUyMzE0YmRjMTRiZmI0NDM0MjAuLmNh
MGJkNjQ0YjRmNzk4YzRmYTY0ZDEwNDFiNjI4YTM3NDBiYzBiYWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVzb3VyY2VzL2NhY2hlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVzb3VyY2VzL2NhY2hlLnB5CkBAIC0xLDI0
ICsxLDI2IEBACitmcm9tIHdwdHNlcnZlLnV0aWxzIGltcG9ydCBpc29tb3JwaGljX2RlY29kZQor
CiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgdG9rZW4gPSByZXF1ZXN0LkdFVC5m
aXJzdCgidG9rZW4iLCBOb25lKQotICAgIGlmICJxdWVyeXN0YXRlIiBpbiByZXF1ZXN0LkdFVDoK
KyAgICB0b2tlbiA9IHJlcXVlc3QuR0VULmZpcnN0KGIidG9rZW4iLCBOb25lKQorICAgIGlmIGIi
cXVlcnlzdGF0ZSIgaW4gcmVxdWVzdC5HRVQ6CiAgICAgICAgIGZyb20ganNvbiBpbXBvcnQgSlNP
TkVuY29kZXIKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJ0
ZXh0L3BsYWluIikKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUi
LCBiInRleHQvcGxhaW4iKQogICAgICAgICByZXR1cm4gSlNPTkVuY29kZXIoKS5lbmNvZGUocmVx
dWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZSh0b2tlbikpCi0gICAgY29udGVudCA9IHJlcXVlc3QuR0VU
LmZpcnN0KCJjb250ZW50IiwgTm9uZSkKLSAgICB0YWcgPSByZXF1ZXN0LkdFVC5maXJzdCgidGFn
IiwgTm9uZSkKLSAgICBkYXRlID0gcmVxdWVzdC5HRVQuZmlyc3QoImRhdGUiLCBOb25lKQotICAg
IGV4cGlyZXMgPSByZXF1ZXN0LkdFVC5maXJzdCgiZXhwaXJlcyIsIE5vbmUpCi0gICAgdmFyeSA9
IHJlcXVlc3QuR0VULmZpcnN0KCJ2YXJ5IiwgTm9uZSkKLSAgICBjYyA9IHJlcXVlc3QuR0VULmZp
cnN0KCJjYWNoZV9jb250cm9sIiwgTm9uZSkKLSAgICByZWRpcmVjdCA9IHJlcXVlc3QuR0VULmZp
cnN0KCJyZWRpcmVjdCIsIE5vbmUpCi0gICAgaW5tID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiSWYt
Tm9uZS1NYXRjaCIsIE5vbmUpCi0gICAgaW1zID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiSWYtTW9k
aWZpZWQtU2luY2UiLCBOb25lKQotICAgIHByYWdtYSA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIlBy
YWdtYSIsIE5vbmUpCi0gICAgY2FjaGVfY29udHJvbCA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIkNh
Y2hlLUNvbnRyb2wiLCBOb25lKQotICAgIGlnbm9yZSA9ICJpZ25vcmUiIGluIHJlcXVlc3QuR0VU
CisgICAgY29udGVudCA9IHJlcXVlc3QuR0VULmZpcnN0KGIiY29udGVudCIsIE5vbmUpCisgICAg
dGFnID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJ0YWciLCBOb25lKQorICAgIGRhdGUgPSByZXF1ZXN0
LkdFVC5maXJzdChiImRhdGUiLCBOb25lKQorICAgIGV4cGlyZXMgPSByZXF1ZXN0LkdFVC5maXJz
dChiImV4cGlyZXMiLCBOb25lKQorICAgIHZhcnkgPSByZXF1ZXN0LkdFVC5maXJzdChiInZhcnki
LCBOb25lKQorICAgIGNjID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJjYWNoZV9jb250cm9sIiwgTm9u
ZSkKKyAgICByZWRpcmVjdCA9IHJlcXVlc3QuR0VULmZpcnN0KGIicmVkaXJlY3QiLCBOb25lKQor
ICAgIGlubSA9IHJlcXVlc3QuaGVhZGVycy5nZXQoYiJJZi1Ob25lLU1hdGNoIiwgTm9uZSkKKyAg
ICBpbXMgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIiSWYtTW9kaWZpZWQtU2luY2UiLCBOb25lKQor
ICAgIHByYWdtYSA9IHJlcXVlc3QuaGVhZGVycy5nZXQoYiJQcmFnbWEiLCBOb25lKQorICAgIGNh
Y2hlX2NvbnRyb2wgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIiQ2FjaGUtQ29udHJvbCIsIE5vbmUp
CisgICAgaWdub3JlID0gYiJpZ25vcmUiIGluIHJlcXVlc3QuR0VUCiAKICAgICBpZiB0YWc6Ci0g
ICAgICAgIHRhZyA9ICciJXMiJyAlIHRhZworICAgICAgICB0YWcgPSBiJyIlcyInICUgdGFnCiAK
ICAgICBzZXJ2ZXJfc3RhdGUgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKHRva2VuKQogICAg
IGlmIG5vdCBzZXJ2ZXJfc3RhdGU6CkBAIC0yNiw0MCArMjgsNDAgQEAgZGVmIG1haW4ocmVxdWVz
dCwgcmVzcG9uc2UpOgogICAgIHN0YXRlID0gZGljdCgpCiAgICAgaWYgbm90IGlnbm9yZToKICAg
ICAgICAgaWYgaW5tOgotICAgICAgICAgICAgc3RhdGVbIklmLU5vbmUtTWF0Y2giXSA9IGlubQor
ICAgICAgICAgICAgc3RhdGVbdSJJZi1Ob25lLU1hdGNoIl0gPSBpc29tb3JwaGljX2RlY29kZShp
bm0pCiAgICAgICAgIGlmIGltczoKLSAgICAgICAgICAgIHN0YXRlWyJJZi1Nb2RpZmllZC1TaW5j
ZSJdID0gaW1zCisgICAgICAgICAgICBzdGF0ZVt1IklmLU1vZGlmaWVkLVNpbmNlIl0gPSBpc29t
b3JwaGljX2RlY29kZShpbXMpCiAgICAgICAgIGlmIHByYWdtYToKLSAgICAgICAgICAgIHN0YXRl
WyJQcmFnbWEiXSA9IHByYWdtYQorICAgICAgICAgICAgc3RhdGVbdSJQcmFnbWEiXSA9IGlzb21v
cnBoaWNfZGVjb2RlKHByYWdtYSkKICAgICAgICAgaWYgY2FjaGVfY29udHJvbDoKLSAgICAgICAg
ICAgIHN0YXRlWyJDYWNoZS1Db250cm9sIl0gPSBjYWNoZV9jb250cm9sCisgICAgICAgICAgICBz
dGF0ZVt1IkNhY2hlLUNvbnRyb2wiXSA9IGlzb21vcnBoaWNfZGVjb2RlKGNhY2hlX2NvbnRyb2wp
CiAgICAgc2VydmVyX3N0YXRlLmFwcGVuZChzdGF0ZSkKICAgICByZXF1ZXN0LnNlcnZlci5zdGFz
aC5wdXQodG9rZW4sIHNlcnZlcl9zdGF0ZSkKIAogICAgIGlmIHRhZzoKLSAgICAgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoIkVUYWciLCAnJXMnICUgdGFnKQorICAgICAgICByZXNwb25zZS5oZWFk
ZXJzLnNldChiIkVUYWciLCBiJyVzJyAlIHRhZykKICAgICBlbGlmIGRhdGU6Ci0gICAgICAgIHJl
c3BvbnNlLmhlYWRlcnMuc2V0KCJMYXN0LU1vZGlmaWVkIiwgZGF0ZSkKKyAgICAgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoYiJMYXN0LU1vZGlmaWVkIiwgZGF0ZSkKICAgICBpZiBleHBpcmVzOgot
ICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiRXhwaXJlcyIsIGV4cGlyZXMpCisgICAgICAg
IHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiRXhwaXJlcyIsIGV4cGlyZXMpCiAgICAgaWYgdmFyeToK
LSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIlZhcnkiLCB2YXJ5KQorICAgICAgICByZXNw
b25zZS5oZWFkZXJzLnNldChiIlZhcnkiLCB2YXJ5KQogICAgIGlmIGNjOgotICAgICAgICByZXNw
b25zZS5oZWFkZXJzLnNldCgiQ2FjaGUtQ29udHJvbCIsIGNjKQorICAgICAgICByZXNwb25zZS5o
ZWFkZXJzLnNldChiIkNhY2hlLUNvbnRyb2wiLCBjYykKIAogICAgICMgVGhlIG9ubHktaWYtY2Fj
aGVkIHJlZGlyZWN0IHRlc3RzIHdhbnRzIENPUlMgdG8gYmUgb2theSwgdGhlIG90aGVyIHRlc3Rz
CiAgICAgIyBhcmUgYWxsIHNhbWUtb3JpZ2luIGFueXdheXMgYW5kIGRvbid0IGNhcmUuCi0gICAg
cmVzcG9uc2UuaGVhZGVycy5zZXQoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIikK
KyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIs
IGIiKiIpCiAKICAgICBpZiByZWRpcmVjdDoKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQo
IkxvY2F0aW9uIiwgcmVkaXJlY3QpCi0gICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgzMDIsICJS
ZWRpcmVjdCIpCi0gICAgICAgIHJldHVybiAiIgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNl
dChiIkxvY2F0aW9uIiwgcmVkaXJlY3QpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgzMDIs
IGIiUmVkaXJlY3QiKQorICAgICAgICByZXR1cm4gYiIiCiAgICAgZWxpZiAoKGlubSBpcyBub3Qg
Tm9uZSBhbmQgaW5tID09IHRhZykgb3IKICAgICAgICAgICAoaW1zIGlzIG5vdCBOb25lIGFuZCBp
bXMgPT0gZGF0ZSkpOgotICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAoMzA0LCAiTm90IE1vZGlm
aWVkIikKLSAgICAgICAgcmV0dXJuICIiCisgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgzMDQs
IGIiTm90IE1vZGlmaWVkIikKKyAgICAgICAgcmV0dXJuIGIiIgogICAgIGVsc2U6Ci0gICAgICAg
IHJlc3BvbnNlLnN0YXR1cyA9ICgyMDAsICJPSyIpCi0gICAgICAgIHJlc3BvbnNlLmhlYWRlcnMu
c2V0KCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1
cyA9ICgyMDAsIGIiT0siKQorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQt
VHlwZSIsIGIidGV4dC9wbGFpbiIpCiAgICAgICAgIHJldHVybiBjb250ZW50CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC93M2MtaW1wb3J0LmxvZwppbmRleCA5NTMyZGY2
Y2ZkOTUzZDQxOTJiYmVhN2ZhNTJiZTk3OGY1MjVjYzdiLi4wMzEwMDFlMGJiMzQ4ZGE4YjliODQz
YTRiYmVkMWZmZWE5ZDMwZGNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3czYy1pbXBvcnQubG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDI4ICsxNCwyOCBAQCBQcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtYmFkLXBvcnQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNo
ZS1kZWZhdWx0LWNvbmRpdGlvbmFsLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y2FjaGUtbm8tY2FjaGUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1uby1zdG9yZS5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2Fj
aGUtcmVsb2FkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtYmFkLXBvcnQuYW55LmpzCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hl
LWRlZmF1bHQuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmFueS5qcwor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1jYWNoZS1uby1jYWNoZS5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUt
bm8tc3RvcmUuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmFueS5q
cworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1yZWxvYWQuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hl
LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUt
ZW1wdHkuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlz
dHVyYmVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25z
dW1lLWVtcHR5LmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLmFueS5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1kaXN0dXJiZWQuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9yLmFueS5qcwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1lcnJvci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtaGVhZGVycy5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEuc3ViLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtaW5pdC0wMDIuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5hbnkuanMKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtaW5pdC0wMDMuc3ViLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC1zdHJlYW0u
YW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWtlZXBhbGl2ZS1xdW90YS5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWtlZXBhbGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWtlZXBhbGl2ZS5hbnkuanMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtcmVzZXQtYXR0cmlidXRlcy5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVy
ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3VybC1lbmNvZGlu
Zy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvYXV0aGVudGljYXRpb24ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvYXV0
aGVudGljYXRpb24ucHkKaW5kZXggYjY1MDQ3ZDc2NTcwM2I4ZTQ0MDAzOTZhMzA2YjAyNjMxNmZj
NmQwOS4uOGI2YjAwYjA4NzNiMzhlNTdlNTc5ZjNkN2YyNjUxZmI5NzkxN2I4MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzb3VyY2VzL2F1dGhlbnRpY2F0aW9uLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9hdXRoZW50aWNhdGlvbi5w
eQpAQCAtMiwxMyArMiwxMyBAQCBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgdXNl
ciA9IHJlcXVlc3QuYXV0aC51c2VybmFtZQogICAgIHBhc3N3b3JkID0gcmVxdWVzdC5hdXRoLnBh
c3N3b3JkCiAKLSAgICBpZiB1c2VyID09ICJ1c2VyIiBhbmQgcGFzc3dvcmQgPT0gInBhc3N3b3Jk
IjoKLSAgICAgICAgcmV0dXJuICJBdXRoZW50aWNhdGlvbiBkb25lIgorICAgIGlmIHVzZXIgPT0g
YiJ1c2VyIiBhbmQgcGFzc3dvcmQgPT0gYiJwYXNzd29yZCI6CisgICAgICAgIHJldHVybiBiIkF1
dGhlbnRpY2F0aW9uIGRvbmUiCiAKLSAgICByZWFsbSA9ICJ0ZXN0IgotICAgIGlmICJyZWFsbSIg
aW4gcmVxdWVzdC5HRVQ6Ci0gICAgICAgIHJlYWxtID0gcmVxdWVzdC5HRVQuZmlyc3QoInJlYWxt
IikKKyAgICByZWFsbSA9IGIidGVzdCIKKyAgICBpZiBiInJlYWxtIiBpbiByZXF1ZXN0LkdFVDoK
KyAgICAgICAgcmVhbG0gPSByZXF1ZXN0LkdFVC5maXJzdChiInJlYWxtIikKIAotICAgIHJldHVy
biAoKDQwMSwgIlVuYXV0aG9yaXplZCIpLAotICAgICAgICAgICAgWygiV1dXLUF1dGhlbnRpY2F0
ZSIsICdCYXNpYyByZWFsbT0iJyArIHJlYWxtICsgJyInKV0sCi0gICAgICAgICAgICAiUGxlYXNl
IGxvZ2luIHdpdGggY3JlZGVudGlhbHMgJ3VzZXInIGFuZCAncGFzc3dvcmQnIikKKyAgICByZXR1
cm4gKCg0MDEsIGIiVW5hdXRob3JpemVkIiksCisgICAgICAgICAgICBbKGIiV1dXLUF1dGhlbnRp
Y2F0ZSIsIGInQmFzaWMgcmVhbG09IicgKyByZWFsbSArIGInIicpXSwKKyAgICAgICAgICAgIGIi
UGxlYXNlIGxvZ2luIHdpdGggY3JlZGVudGlhbHMgJ3VzZXInIGFuZCAncGFzc3dvcmQnIikKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9iYWQtY2h1bmstZW5jb2RpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvYmFkLWNodW5r
LWVuY29kaW5nLnB5CmluZGV4IDIzYzdiM2Y0N2M0ZDExZjUxYzUxNzRiODY1NDFlZmM1OTg4YmEx
NTUuLjk0YTc3YWRlYWQ4NThiNDgxMzdlMzk4OGQwYzY3NGNkOTQ1YTQyNzAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c291cmNlcy9iYWQtY2h1bmstZW5jb2RpbmcucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2JhZC1jaHVuay1lbmNv
ZGluZy5weQpAQCAtMSwxMyArMSwxMyBAQAogaW1wb3J0IHRpbWUKIAogZGVmIG1haW4ocmVxdWVz
dCwgcmVzcG9uc2UpOgotICAgIGRlbGF5ID0gZmxvYXQocmVxdWVzdC5HRVQuZmlyc3QoIm1zIiwg
MTAwMCkpIC8gMUUzCi0gICAgY291bnQgPSBpbnQocmVxdWVzdC5HRVQuZmlyc3QoImNvdW50Iiwg
NTApKQorICAgIGRlbGF5ID0gZmxvYXQocmVxdWVzdC5HRVQuZmlyc3QoYiJtcyIsIDEwMDApKSAv
IDFFMworICAgIGNvdW50ID0gaW50KHJlcXVlc3QuR0VULmZpcnN0KGIiY291bnQiLCA1MCkpCiAg
ICAgdGltZS5zbGVlcChkZWxheSkKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiVHJhbnNmZXIt
RW5jb2RpbmciLCAiY2h1bmtlZCIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJUcmFuc2Zl
ci1FbmNvZGluZyIsIGIiY2h1bmtlZCIpCiAgICAgcmVzcG9uc2Uud3JpdGVfc3RhdHVzX2hlYWRl
cnMoKQogICAgIHRpbWUuc2xlZXAoZGVsYXkpCi0gICAgZm9yIGkgaW4geHJhbmdlKGNvdW50KToK
LSAgICAgICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX2NvbnRlbnQoImFcclxuVEVTVF9DSFVOS1xy
XG4iKQorICAgIGZvciBpIGluIHJhbmdlKGNvdW50KToKKyAgICAgICAgcmVzcG9uc2Uud3JpdGVy
LndyaXRlX2NvbnRlbnQoYiJhXHJcblRFU1RfQ0hVTktcclxuIikKICAgICAgICAgdGltZS5zbGVl
cChkZWxheSkKLSAgICByZXNwb25zZS53cml0ZXIud3JpdGVfY29udGVudCgiZ2FyYmFnZSIpCisg
ICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX2NvbnRlbnQoYiJnYXJiYWdlIikKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c291cmNlcy9jYWNoZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9jYWNoZS5weQppbmRleCA4OTk2Mzg3MTZhMTAwYTY2
YzA2Y2ViYmY5MmMzMWRlN2M3MDU0OThiLi40ZGU3NTFlMzBiZmM2YTVmNmE4YjAyY2QzZWQ0N2Fh
NjY2ZDE5M2U2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvY2FjaGUucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2NhY2hl
LnB5CkBAIC0xLDE4ICsxLDE4IEBACi1FVEFHID0gJyIxMjNhYmMiJwotQ09OVEVOVF9UWVBFID0g
InRleHQvcGxhaW4iCi1DT05URU5UID0gImxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0IgorRVRB
RyA9IGInIjEyM2FiYyInCitDT05URU5UX1RZUEUgPSBiInRleHQvcGxhaW4iCitDT05URU5UID0g
YiJsb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCIKIAogCiBkZWYgbWFpbihyZXF1ZXN0LCByZXNw
b25zZSk6CiAgICAgIyBsZXQgY2FjaGluZyBraWNrIGluIGlmIHBvc3NpYmxlIChjb25kaXRpb25h
bCBHRVQpCi0gICAgZXRhZyA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIklmLU5vbmUtTWF0Y2giLCBO
b25lKQorICAgIGV0YWcgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIiSWYtTm9uZS1NYXRjaCIsIE5v
bmUpCiAgICAgaWYgZXRhZyA9PSBFVEFHOgotICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgi
WC1IVFRQLVNUQVRVUyIsIDMwNCkKLSAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gKDMwNCwgIk5v
dCBNb2RpZmllZCIpCi0gICAgICAgIHJldHVybiAiIgorICAgICAgICByZXNwb25zZS5oZWFkZXJz
LnNldChiIlgtSFRUUC1TVEFUVVMiLCAzMDQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICgz
MDQsIGIiTm90IE1vZGlmaWVkIikKKyAgICAgICAgcmV0dXJuIGIiIgogCiAgICAgIyBjYWNoZSBt
aXNzLCBzbyByZXNwb25kIHdpdGggdGhlIGFjdHVhbCBjb250ZW50Ci0gICAgcmVzcG9uc2Uuc3Rh
dHVzID0gKDIwMCwgIk9LIikKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiRVRhZyIsIEVUQUcp
Ci0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsIENPTlRFTlRfVFlQRSkK
KyAgICByZXNwb25zZS5zdGF0dXMgPSAoMjAwLCBiIk9LIikKKyAgICByZXNwb25zZS5oZWFkZXJz
LnNldChiIkVUYWciLCBFVEFHKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1U
eXBlIiwgQ09OVEVOVF9UWVBFKQogICAgIHJldHVybiBDT05URU5UCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJj
ZXMvY2xlYW4tc3Rhc2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvY2xlYW4tc3Rhc2gucHkKaW5kZXggM2FlNzMxMDUy
NjkyZTA0OGEwN2Q2NWE2ZTAxNWZlNWE3NjM2MjA5OC4uZWU4YzY5YWM0NDZlYTk3OWY2M2MwZjgy
YWZkMzA2MTYxMGI0YjUyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2NsZWFuLXN0YXNoLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c291cmNlcy9jbGVhbi1zdGFzaC5weQpAQCAtMSw2ICsxLDYgQEAKIGRlZiBtYWluKHJlcXVlc3Qs
IHJlc3BvbnNlKToKLSAgICB0b2tlbiA9IHJlcXVlc3QuR0VULmZpcnN0KCJ0b2tlbiIpCisgICAg
dG9rZW4gPSByZXF1ZXN0LkdFVC5maXJzdChiInRva2VuIikKICAgICBpZiByZXF1ZXN0LnNlcnZl
ci5zdGFzaC50YWtlKHRva2VuKSBpcyBub3QgTm9uZToKLSAgICAgICAgcmV0dXJuICIxIgorICAg
ICAgICByZXR1cm4gYiIxIgogICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiAiMCIKKyAgICAgICAg
cmV0dXJuIGIiMCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9lY2hvLWNvbnRlbnQucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMv
ZWNoby1jb250ZW50LnB5CmluZGV4IDlhMDM4ZjMyOWM4N2U0ZTlkYWI5NmNhYThkNmZkYTk3Mzg4
MGQ3MzIuLjVlMTM3ZTE1ZDdkM2IwZjY4NGI3YTFhMmFhMGIyN2E3MTk3MzBlYjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc291cmNlcy9lY2hvLWNvbnRlbnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2VjaG8tY29udGVudC5weQpA
QCAtMSwxMCArMSwxMiBAQAorZnJvbSB3cHRzZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19l
bmNvZGUKKwogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogCi0gICAgaGVhZGVycyA9IFso
IlgtUmVxdWVzdC1NZXRob2QiLCByZXF1ZXN0Lm1ldGhvZCksCi0gICAgICAgICAgICAgICAoIlgt
UmVxdWVzdC1Db250ZW50LUxlbmd0aCIsIHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVu
Z3RoIiwgIk5PIikpLAotICAgICAgICAgICAgICAgKCJYLVJlcXVlc3QtQ29udGVudC1UeXBlIiwg
cmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiwgIk5PIikpLAorICAgIGhlYWRlcnMg
PSBbKGIiWC1SZXF1ZXN0LU1ldGhvZCIsIGlzb21vcnBoaWNfZW5jb2RlKHJlcXVlc3QubWV0aG9k
KSksCisgICAgICAgICAgICAgICAoYiJYLVJlcXVlc3QtQ29udGVudC1MZW5ndGgiLCByZXF1ZXN0
LmhlYWRlcnMuZ2V0KGIiQ29udGVudC1MZW5ndGgiLCBiIk5PIikpLAorICAgICAgICAgICAgICAg
KGIiWC1SZXF1ZXN0LUNvbnRlbnQtVHlwZSIsIHJlcXVlc3QuaGVhZGVycy5nZXQoYiJDb250ZW50
LVR5cGUiLCBiIk5PIikpLAogICAgICAgICAgICAgICAgIyBBdm9pZCBhbnkga2luZCBvZiBjb250
ZW50IHNuaWZmaW5nIG9uIHRoZSByZXNwb25zZS4KLSAgICAgICAgICAgICAgICgiQ29udGVudC1U
eXBlIiwgInRleHQvcGxhaW4iKV0KKyAgICAgICAgICAgICAgIChiIkNvbnRlbnQtVHlwZSIsIGIi
dGV4dC9wbGFpbiIpXQogICAgIGNvbnRlbnQgPSByZXF1ZXN0LmJvZHkKIAogICAgIHJldHVybiBo
ZWFkZXJzLCBjb250ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvaW5maW5pdGUtc2xvdy1yZXNwb25z
ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc291cmNlcy9pbmZpbml0ZS1zbG93LXJlc3BvbnNlLnB5CmluZGV4IGZhMmM0ODJlYzE5
ZDk0MzM2ZjcyOWNiZDUyNjczODIwODczZDQyNjguLmEyNmNkODA2NGM4ODUzMWU2ODc3ZDI1NjFj
ZDE2ZGY5NjRlYjdmNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbmZpbml0ZS1zbG93LXJlc3BvbnNl
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9pbmZpbml0ZS1zbG93LXJlc3BvbnNlLnB5CkBAIC0yLDcgKzIsNyBA
QCBpbXBvcnQgdGltZQogCiAKIGRlZiB1cmxfZGlyKHJlcXVlc3QpOgotICAgIHJldHVybiAnLycu
am9pbihyZXF1ZXN0LnVybF9wYXJ0cy5wYXRoLnNwbGl0KCcvJylbOi0xXSkgKyAnLycKKyAgICBy
ZXR1cm4gdScvJy5qb2luKHJlcXVlc3QudXJsX3BhcnRzLnBhdGguc3BsaXQodScvJylbOi0xXSkg
KyB1Jy8nCiAKIAogZGVmIHN0YXNoX3dyaXRlKHJlcXVlc3QsIGtleSwgdmFsdWUpOgpAQCAtMTIs
MjQgKzEyLDIzIEBAIGRlZiBzdGFzaF93cml0ZShyZXF1ZXN0LCBrZXksIHZhbHVlKToKIAogCiBk
ZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgc3RhdGVLZXkgPSByZXF1ZXN0LkdFVC5m
aXJzdCgic3RhdGVLZXkiLCAiIikKLSAgICBhYm9ydEtleSA9IHJlcXVlc3QuR0VULmZpcnN0KCJh
Ym9ydEtleSIsICIiKQorICAgIHN0YXRlS2V5ID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJzdGF0ZUtl
eSIsIGIiIikKKyAgICBhYm9ydEtleSA9IHJlcXVlc3QuR0VULmZpcnN0KGIiYWJvcnRLZXkiLCBi
IiIpCiAKICAgICBpZiBzdGF0ZUtleToKICAgICAgICAgc3Rhc2hfd3JpdGUocmVxdWVzdCwgc3Rh
dGVLZXksICdvcGVuJykKIAotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LXR5cGUi
LCAidGV4dC9wbGFpbiIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LXR5cGUi
LCBiInRleHQvcGxhaW4iKQogICAgIHJlc3BvbnNlLndyaXRlX3N0YXR1c19oZWFkZXJzKCkKIAog
ICAgICMgV3JpdGluZyBhbiBpbml0aWFsIDJrIHNvIGJyb3dzZXJzIHJlYWxpc2UgaXQncyB0aGVy
ZS4gKnNocnVnKgotICAgIHJlc3BvbnNlLndyaXRlci53cml0ZSgiLiIgKiAyMDQ4KQorICAgIHJl
c3BvbnNlLndyaXRlci53cml0ZShiIi4iICogMjA0OCkKIAogICAgIHdoaWxlIFRydWU6Ci0gICAg
ICAgIGlmIG5vdCByZXNwb25zZS53cml0ZXIuZmx1c2goKToKKyAgICAgICAgaWYgbm90IHJlc3Bv
bnNlLndyaXRlci53cml0ZShiIi4iKToKICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgIGlmIGFi
b3J0S2V5IGFuZCByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKGFib3J0S2V5LCB1cmxfZGlyKHJl
cXVlc3QpKToKICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIHJlc3BvbnNlLndyaXRlci53cml0
ZSgiLiIpCiAgICAgICAgIHRpbWUuc2xlZXAoMC4wMSkKIAogICAgIGlmIHN0YXRlS2V5OgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzb3VyY2VzL2luc3BlY3QtaGVhZGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRl
cnMucHkKaW5kZXggMTBhMTJlYjg4M2ExN2M3MDFkOTA5Y2RlNjUwNzk5ZjIxZWM4OThjMS4uOWVk
NTY2ZTYwN2IwZTA3ZDcwYWM2YTE4M2MwYTlhMDI1YmNhZGU1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2Vz
L2luc3BlY3QtaGVhZGVycy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5CkBAIC0x
LDI0ICsxLDI0IEBACiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgaGVhZGVycyA9
IFtdCi0gICAgaWYgImhlYWRlcnMiIGluIHJlcXVlc3QuR0VUOgotICAgICAgICBjaGVja2VkX2hl
YWRlcnMgPSByZXF1ZXN0LkdFVC5maXJzdCgiaGVhZGVycyIpLnNwbGl0KCJ8IikKKyAgICBpZiBi
ImhlYWRlcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBjaGVja2VkX2hlYWRlcnMgPSByZXF1
ZXN0LkdFVC5maXJzdChiImhlYWRlcnMiKS5zcGxpdChiInwiKQogICAgICAgICBmb3IgaGVhZGVy
IGluIGNoZWNrZWRfaGVhZGVyczoKICAgICAgICAgICAgIGlmIGhlYWRlciBpbiByZXF1ZXN0Lmhl
YWRlcnM6Ci0gICAgICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJ4LXJlcXVlc3QtIiArIGhl
YWRlciwgcmVxdWVzdC5oZWFkZXJzLmdldChoZWFkZXIsICIiKSkpCisgICAgICAgICAgICAgICAg
aGVhZGVycy5hcHBlbmQoKGIieC1yZXF1ZXN0LSIgKyBoZWFkZXIsIHJlcXVlc3QuaGVhZGVycy5n
ZXQoaGVhZGVyLCBiIiIpKSkKIAotICAgIGlmICJjb3JzIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAg
ICAgaWYgIk9yaWdpbiIgaW4gcmVxdWVzdC5oZWFkZXJzOgotICAgICAgICAgICAgaGVhZGVycy5h
cHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCByZXF1ZXN0LmhlYWRlcnMuZ2V0
KCJPcmlnaW4iLCAiIikpKQorICAgIGlmIGIiY29ycyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAg
IGlmIGIiT3JpZ2luIiBpbiByZXF1ZXN0LmhlYWRlcnM6CisgICAgICAgICAgICBoZWFkZXJzLmFw
cGVuZCgoYiJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCByZXF1ZXN0LmhlYWRlcnMuZ2V0
KGIiT3JpZ2luIiwgYiIiKSkpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBoZWFkZXJzLmFw
cGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIikpCi0gICAgICAgIGhlYWRl
cnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMiLCAidHJ1ZSIpKQot
ICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCAi
R0VULCBQT1NULCBIRUFEIikpCi0gICAgICAgIGV4cG9zZWRfaGVhZGVycyA9IFsieC1yZXF1ZXN0
LSIgKyBoZWFkZXIgZm9yIGhlYWRlciBpbiBjaGVja2VkX2hlYWRlcnNdCi0gICAgICAgIGhlYWRl
cnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAiLCAiLmpvaW4oZXhw
b3NlZF9oZWFkZXJzKSkpCi0gICAgICAgIGlmICJhbGxvd19oZWFkZXJzIiBpbiByZXF1ZXN0LkdF
VDoKLSAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVh
ZGVycyIsIHJlcXVlc3QuR0VUWydhbGxvd19oZWFkZXJzJ10pKQorICAgICAgICAgICAgaGVhZGVy
cy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgYiIqIikpCisgICAgICAg
IGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIiwgYiJ0
cnVlIikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1Db250cm9sLUFsbG93LU1l
dGhvZHMiLCBiIkdFVCwgUE9TVCwgSEVBRCIpKQorICAgICAgICBleHBvc2VkX2hlYWRlcnMgPSBb
YiJ4LXJlcXVlc3QtIiArIGhlYWRlciBmb3IgaGVhZGVyIGluIGNoZWNrZWRfaGVhZGVyc10KKyAg
ICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCBi
IiwgIi5qb2luKGV4cG9zZWRfaGVhZGVycykpKQorICAgICAgICBpZiBiImFsbG93X2hlYWRlcnMi
IGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNzLUNv
bnRyb2wtQWxsb3ctSGVhZGVycyIsIHJlcXVlc3QuR0VUW2InYWxsb3dfaGVhZGVycyddKSkKICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wt
QWxsb3ctSGVhZGVycyIsICIsICIuam9pbihyZXF1ZXN0LmhlYWRlcnMpKSkKKyAgICAgICAgICAg
IGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiLCBiIiwgIi5q
b2luKHJlcXVlc3QuaGVhZGVycykpKQogCi0gICAgaGVhZGVycy5hcHBlbmQoKCJjb250ZW50LXR5
cGUiLCAidGV4dC9wbGFpbiIpKQotICAgIHJldHVybiBoZWFkZXJzLCAiIgorICAgIGhlYWRlcnMu
YXBwZW5kKChiImNvbnRlbnQtdHlwZSIsIGIidGV4dC9wbGFpbiIpKQorICAgIHJldHVybiBoZWFk
ZXJzLCBiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9tZXRob2QucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvbWV0aG9kLnB5
CmluZGV4IDc5NWFkMWZmMTFkMDg1ZDgyY2IwMTBiOTY5NzUzYjk0Y2JlMDZiNTMuLmMxYTExMWI0
Y2RmOThkYzZkOGRiNzAyYjBjYzIwZDQzODI1Nzc5YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9tZXRo
b2QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzb3VyY2VzL21ldGhvZC5weQpAQCAtMSwxNiArMSwxOCBAQAorZnJvbSB3cHRz
ZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19lbmNvZGUKKwogZGVmIG1haW4ocmVxdWVzdCwg
cmVzcG9uc2UpOgogICAgIGhlYWRlcnMgPSBbXQotICAgIGlmICJjb3JzIiBpbiByZXF1ZXN0LkdF
VDoKLSAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4i
LCAiKiIpKQotICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUNy
ZWRlbnRpYWxzIiwgInRydWUiKSkKLSAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1NZXRob2RzIiwgIkdFVCwgUE9TVCwgUFVULCBGT08iKSkKLSAgICAgICAgaGVh
ZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIiwgIngtdGVzdCwgeC1m
b28iKSkKLSAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVh
ZGVycyIsICJ4LXJlcXVlc3QtbWV0aG9kIikpCisgICAgaWYgYiJjb3JzIiBpbiByZXF1ZXN0LkdF
VDoKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
IiwgYiIqIikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1Db250cm9sLUFsbG93
LUNyZWRlbnRpYWxzIiwgYiJ0cnVlIikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vz
cy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCBiIkdFVCwgUE9TVCwgUFVULCBGT08iKSkKKyAgICAg
ICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIGIieC10
ZXN0LCB4LWZvbyIpKQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoYiJBY2Nlc3MtQ29udHJvbC1F
eHBvc2UtSGVhZGVycyIsIGIieC1yZXF1ZXN0LW1ldGhvZCIpKQogCi0gICAgaGVhZGVycy5hcHBl
bmQoKCJ4LXJlcXVlc3QtbWV0aG9kIiwgcmVxdWVzdC5tZXRob2QpKQotICAgIGhlYWRlcnMuYXBw
ZW5kKCgieC1yZXF1ZXN0LWNvbnRlbnQtdHlwZSIsIHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRl
bnQtVHlwZSIsICJOTyIpKSkKLSAgICBoZWFkZXJzLmFwcGVuZCgoIngtcmVxdWVzdC1jb250ZW50
LWxlbmd0aCIsIHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIiwgIk5PIikpKQot
ICAgIGhlYWRlcnMuYXBwZW5kKCgieC1yZXF1ZXN0LWNvbnRlbnQtZW5jb2RpbmciLCByZXF1ZXN0
LmhlYWRlcnMuZ2V0KCJDb250ZW50LUVuY29kaW5nIiwgIk5PIikpKQotICAgIGhlYWRlcnMuYXBw
ZW5kKCgieC1yZXF1ZXN0LWNvbnRlbnQtbGFuZ3VhZ2UiLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJD
b250ZW50LUxhbmd1YWdlIiwgIk5PIikpKQotICAgIGhlYWRlcnMuYXBwZW5kKCgieC1yZXF1ZXN0
LWNvbnRlbnQtbG9jYXRpb24iLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LUxvY2F0aW9u
IiwgIk5PIikpKQorICAgIGhlYWRlcnMuYXBwZW5kKChiIngtcmVxdWVzdC1tZXRob2QiLCBpc29t
b3JwaGljX2VuY29kZShyZXF1ZXN0Lm1ldGhvZCkpKQorICAgIGhlYWRlcnMuYXBwZW5kKChiIngt
cmVxdWVzdC1jb250ZW50LXR5cGUiLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIiQ29udGVudC1UeXBl
IiwgYiJOTyIpKSkKKyAgICBoZWFkZXJzLmFwcGVuZCgoYiJ4LXJlcXVlc3QtY29udGVudC1sZW5n
dGgiLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIiQ29udGVudC1MZW5ndGgiLCBiIk5PIikpKQorICAg
IGhlYWRlcnMuYXBwZW5kKChiIngtcmVxdWVzdC1jb250ZW50LWVuY29kaW5nIiwgcmVxdWVzdC5o
ZWFkZXJzLmdldChiIkNvbnRlbnQtRW5jb2RpbmciLCBiIk5PIikpKQorICAgIGhlYWRlcnMuYXBw
ZW5kKChiIngtcmVxdWVzdC1jb250ZW50LWxhbmd1YWdlIiwgcmVxdWVzdC5oZWFkZXJzLmdldChi
IkNvbnRlbnQtTGFuZ3VhZ2UiLCBiIk5PIikpKQorICAgIGhlYWRlcnMuYXBwZW5kKChiIngtcmVx
dWVzdC1jb250ZW50LWxvY2F0aW9uIiwgcmVxdWVzdC5oZWFkZXJzLmdldChiIkNvbnRlbnQtTG9j
YXRpb24iLCBiIk5PIikpKQogICAgIHJldHVybiBoZWFkZXJzLCByZXF1ZXN0LmJvZHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc291cmNlcy9wcmVmbGlnaHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcHJlZmxpZ2h0LnB5CmluZGV4IGEy
NTUyYzI1NjVhZDliZTZkMTdkZWExY2I2YTkwZmY5ZWIyMTExOTAuLmY5ODNlZjk1MjI3MmE3NWE2
NzA2ZDNjZGZhYmIwOGFjZWQ3ZWZjN2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9wcmVmbGlnaHQucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzb3VyY2VzL3ByZWZsaWdodC5weQpAQCAtMSw1OCArMSw1OCBAQAogZGVmIG1haW4ocmVx
dWVzdCwgcmVzcG9uc2UpOgotICAgIGhlYWRlcnMgPSBbKCJDb250ZW50LVR5cGUiLCAidGV4dC9w
bGFpbiIpXQotICAgIHN0YXNoZWRfZGF0YSA9IHsnY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnOiAi
IiwgJ3ByZWZsaWdodCc6ICIwIiwgJ3ByZWZsaWdodF9yZWZlcnJlcic6ICIifQorICAgIGhlYWRl
cnMgPSBbKGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L3BsYWluIildCisgICAgc3Rhc2hlZF9kYXRh
ID0ge2InY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnOiBiIiIsIGIncHJlZmxpZ2h0JzogYiIwIiwg
YidwcmVmbGlnaHRfcmVmZXJyZXInOiBiIiJ9CiAKICAgICB0b2tlbiA9IE5vbmUKLSAgICBpZiAi
dG9rZW4iIGluIHJlcXVlc3QuR0VUOgotICAgICAgICB0b2tlbiA9IHJlcXVlc3QuR0VULmZpcnN0
KCJ0b2tlbiIpCisgICAgaWYgYiJ0b2tlbiIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIHRva2Vu
ID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJ0b2tlbiIpCiAKLSAgICBpZiAib3JpZ2luIiBpbiByZXF1
ZXN0LkdFVDoKLSAgICAgICAgZm9yIG9yaWdpbiBpbiByZXF1ZXN0LkdFVFsnb3JpZ2luJ10uc3Bs
aXQoIiwgIik6Ci0gICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFs
bG93LU9yaWdpbiIsIG9yaWdpbikpCisgICAgaWYgYiJvcmlnaW4iIGluIHJlcXVlc3QuR0VUOgor
ICAgICAgICBmb3Igb3JpZ2luIGluIHJlcXVlc3QuR0VUW2Inb3JpZ2luJ10uc3BsaXQoYiIsICIp
OgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3Jp
Z2luIiwgb3JpZ2luKSkKICAgICBlbHNlOgotICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKChi
IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsIGIiKiIpKQogCi0gICAgaWYgImNsZWFyLXN0
YXNoIiBpbiByZXF1ZXN0LkdFVDoKKyAgICBpZiBiImNsZWFyLXN0YXNoIiBpbiByZXF1ZXN0LkdF
VDoKICAgICAgICAgaWYgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZSh0b2tlbikgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICByZXR1cm4gaGVhZGVycywgIjEiCisgICAgICAgICAgICByZXR1cm4g
aGVhZGVycywgYiIxIgogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIGhlYWRlcnMs
ICIwIgorICAgICAgICAgICAgcmV0dXJuIGhlYWRlcnMsIGIiMCIKIAotICAgIGlmICJjcmVkZW50
aWFscyIgaW4gcmVxdWVzdC5HRVQ6Ci0gICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNv
bnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMiLCAidHJ1ZSIpKQorICAgIGlmIGIiY3JlZGVudGlhbHMi
IGluIHJlcXVlc3QuR0VUOgorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoYiJBY2Nlc3MtQ29udHJv
bC1BbGxvdy1DcmVkZW50aWFscyIsIGIidHJ1ZSIpKQogCi0gICAgaWYgcmVxdWVzdC5tZXRob2Qg
PT0gIk9QVElPTlMiOgotICAgICAgICBpZiBub3QgIkFjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0
aG9kIiBpbiByZXF1ZXN0LmhlYWRlcnM6Ci0gICAgICAgICAgICByZXNwb25zZS5zZXRfZXJyb3Io
NDAwLCAiTm8gQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QgaGVhZGVyIikKLSAgICAgICAg
ICAgIHJldHVybiAiRVJST1I6IE5vIGFjY2Vzcy1jb250cm9sLXJlcXVlc3QtbWV0aG9kIGluIHBy
ZWZsaWdodCEiCisgICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gdSJPUFRJT05TIjoKKyAgICAgICAg
aWYgbm90IGIiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QiIGluIHJlcXVlc3QuaGVhZGVy
czoKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldF9lcnJvcig0MDAsIHUiTm8gQWNjZXNzLUNvbnRy
b2wtUmVxdWVzdC1NZXRob2QgaGVhZGVyIikKKyAgICAgICAgICAgIHJldHVybiBiIkVSUk9SOiBO
byBhY2Nlc3MtY29udHJvbC1yZXF1ZXN0LW1ldGhvZCBpbiBwcmVmbGlnaHQhIgogCi0gICAgICAg
IGlmIHJlcXVlc3QuaGVhZGVycy5nZXQoIkFjY2VwdCIsICIiKSAhPSAiKi8qIjoKLSAgICAgICAg
ICAgIHJlc3BvbnNlLnNldF9lcnJvcig0MDAsICJSZXF1ZXN0IGRvZXMgbm90IGhhdmUgJ0FjY2Vw
dDogKi8qJyBoZWFkZXIiKQotICAgICAgICAgICAgcmV0dXJuICJFUlJPUjogSW52YWxpZCBhY2Nl
c3MgaW4gcHJlZmxpZ2h0ISIKKyAgICAgICAgaWYgcmVxdWVzdC5oZWFkZXJzLmdldChiIkFjY2Vw
dCIsIGIiIikgIT0gYiIqLyoiOgorICAgICAgICAgICAgcmVzcG9uc2Uuc2V0X2Vycm9yKDQwMCwg
dSJSZXF1ZXN0IGRvZXMgbm90IGhhdmUgJ0FjY2VwdDogKi8qJyBoZWFkZXIiKQorICAgICAgICAg
ICAgcmV0dXJuIGIiRVJST1I6IEludmFsaWQgYWNjZXNzIGluIHByZWZsaWdodCEiCiAKLSAgICAg
ICAgaWYgImNvbnRyb2xfcmVxdWVzdF9oZWFkZXJzIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAgICAg
ICAgIHN0YXNoZWRfZGF0YVsnY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnXSA9IHJlcXVlc3QuaGVh
ZGVycy5nZXQoIkFjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVycyIsIE5vbmUpCisgICAgICAg
IGlmIGIiY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAg
ICAgc3Rhc2hlZF9kYXRhW2InY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnXSA9IHJlcXVlc3QuaGVh
ZGVycy5nZXQoYiJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnMiLCBOb25lKQogCi0gICAg
ICAgIGlmICJtYXhfYWdlIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAgICAgICAgIGhlYWRlcnMuYXBw
ZW5kKCgiQWNjZXNzLUNvbnRyb2wtTWF4LUFnZSIsIHJlcXVlc3QuR0VUWydtYXhfYWdlJ10pKQor
ICAgICAgICBpZiBiIm1heF9hZ2UiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgaGVhZGVy
cy5hcHBlbmQoKGIiQWNjZXNzLUNvbnRyb2wtTWF4LUFnZSIsIHJlcXVlc3QuR0VUW2InbWF4X2Fn
ZSddKSkKIAotICAgICAgICBpZiAiYWxsb3dfaGVhZGVycyIgaW4gcmVxdWVzdC5HRVQ6Ci0gICAg
ICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiLCBy
ZXF1ZXN0LkdFVFsnYWxsb3dfaGVhZGVycyddKSkKKyAgICAgICAgaWYgYiJhbGxvd19oZWFkZXJz
IiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1D
b250cm9sLUFsbG93LUhlYWRlcnMiLCByZXF1ZXN0LkdFVFtiJ2FsbG93X2hlYWRlcnMnXSkpCiAK
LSAgICAgICAgaWYgImFsbG93X21ldGhvZHMiIGluIHJlcXVlc3QuR0VUOgotICAgICAgICAgICAg
aGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIiwgcmVxdWVzdC5H
RVRbJ2FsbG93X21ldGhvZHMnXSkpCisgICAgICAgIGlmIGIiYWxsb3dfbWV0aG9kcyIgaW4gcmVx
dWVzdC5HRVQ6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoYiJBY2Nlc3MtQ29udHJvbC1B
bGxvdy1NZXRob2RzIiwgcmVxdWVzdC5HRVRbYidhbGxvd19tZXRob2RzJ10pKQogCiAgICAgICAg
IHByZWZsaWdodF9zdGF0dXMgPSAyMDAKLSAgICAgICAgaWYgInByZWZsaWdodF9zdGF0dXMiIGlu
IHJlcXVlc3QuR0VUOgotICAgICAgICAgICAgcHJlZmxpZ2h0X3N0YXR1cyA9IGludChyZXF1ZXN0
LkdFVC5maXJzdCgicHJlZmxpZ2h0X3N0YXR1cyIpKQorICAgICAgICBpZiBiInByZWZsaWdodF9z
dGF0dXMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgcHJlZmxpZ2h0X3N0YXR1cyA9IGlu
dChyZXF1ZXN0LkdFVC5maXJzdChiInByZWZsaWdodF9zdGF0dXMiKSkKIAotICAgICAgICBzdGFz
aGVkX2RhdGFbJ3ByZWZsaWdodCddID0gIjEiCi0gICAgICAgIHN0YXNoZWRfZGF0YVsncHJlZmxp
Z2h0X3JlZmVycmVyJ10gPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJSZWZlcmVyIiwgIiIpCi0gICAg
ICAgIHN0YXNoZWRfZGF0YVsncHJlZmxpZ2h0X3VzZXJfYWdlbnQnXSA9IHJlcXVlc3QuaGVhZGVy
cy5nZXQoIlVzZXItQWdlbnQiLCAiIikKKyAgICAgICAgc3Rhc2hlZF9kYXRhW2IncHJlZmxpZ2h0
J10gPSBiIjEiCisgICAgICAgIHN0YXNoZWRfZGF0YVtiJ3ByZWZsaWdodF9yZWZlcnJlciddID0g
cmVxdWVzdC5oZWFkZXJzLmdldChiIlJlZmVyZXIiLCBiIiIpCisgICAgICAgIHN0YXNoZWRfZGF0
YVtiJ3ByZWZsaWdodF91c2VyX2FnZW50J10gPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIiVXNlci1B
Z2VudCIsIGIiIikKICAgICAgICAgaWYgdG9rZW46CiAgICAgICAgICAgICByZXF1ZXN0LnNlcnZl
ci5zdGFzaC5wdXQodG9rZW4sIHN0YXNoZWRfZGF0YSkKIAotICAgICAgICByZXR1cm4gcHJlZmxp
Z2h0X3N0YXR1cywgaGVhZGVycywgIiIKKyAgICAgICAgcmV0dXJuIHByZWZsaWdodF9zdGF0dXMs
IGhlYWRlcnMsIGIiIgogCiAKICAgICBpZiB0b2tlbjoKQEAgLTYwLDE5ICs2MCwxOSBAQCBkZWYg
bWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgICAgIGlmIGRhdGE6CiAgICAgICAgICAgICBz
dGFzaGVkX2RhdGEgPSBkYXRhCiAKLSAgICBpZiAiY2hlY2tVc2VyQWdlbnRIZWFkZXJJblByZWZs
aWdodCIgaW4gcmVxdWVzdC5HRVQgYW5kIHJlcXVlc3QuaGVhZGVycy5nZXQoIlVzZXItQWdlbnQi
KSAhPSBzdGFzaGVkX2RhdGFbJ3ByZWZsaWdodF91c2VyX2FnZW50J106Ci0gICAgICAgIHJldHVy
biA0MDAsIGhlYWRlcnMsICJFUlJPUjogTm8gdXNlci1hZ2VudCBoZWFkZXIgaW4gcHJlZmxpZ2h0
IgorICAgIGlmIGIiY2hlY2tVc2VyQWdlbnRIZWFkZXJJblByZWZsaWdodCIgaW4gcmVxdWVzdC5H
RVQgYW5kIHJlcXVlc3QuaGVhZGVycy5nZXQoYiJVc2VyLUFnZW50IikgIT0gc3Rhc2hlZF9kYXRh
W2IncHJlZmxpZ2h0X3VzZXJfYWdlbnQnXToKKyAgICAgICAgcmV0dXJuIDQwMCwgaGVhZGVycywg
YiJFUlJPUjogTm8gdXNlci1hZ2VudCBoZWFkZXIgaW4gcHJlZmxpZ2h0IgogCiAgICAgI3VzZSB4
LSogaGVhZGVycyBmb3IgcmV0dXJuaW5nIHZhbHVlIHRvIGJvZHlsZXNzIHJlc3BvbnNlcwotICAg
IGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAieC1kaWQt
cHJlZmxpZ2h0LCB4LWNvbnRyb2wtcmVxdWVzdC1oZWFkZXJzLCB4LXJlZmVycmVyLCB4LXByZWZs
aWdodC1yZWZlcnJlciwgeC1vcmlnaW4iKSkKLSAgICBoZWFkZXJzLmFwcGVuZCgoIngtZGlkLXBy
ZWZsaWdodCIsIHN0YXNoZWRfZGF0YVsncHJlZmxpZ2h0J10pKQotICAgIGlmIHN0YXNoZWRfZGF0
YVsnY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnXSAhPSBOb25lOgotICAgICAgICBoZWFkZXJzLmFw
cGVuZCgoIngtY29udHJvbC1yZXF1ZXN0LWhlYWRlcnMiLCBzdGFzaGVkX2RhdGFbJ2NvbnRyb2xf
cmVxdWVzdF9oZWFkZXJzJ10pKQotICAgIGhlYWRlcnMuYXBwZW5kKCgieC1wcmVmbGlnaHQtcmVm
ZXJyZXIiLCBzdGFzaGVkX2RhdGFbJ3ByZWZsaWdodF9yZWZlcnJlciddKSkKLSAgICBoZWFkZXJz
LmFwcGVuZCgoIngtcmVmZXJyZXIiLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJSZWZlcmVyIiwgIiIp
KSkKLSAgICBoZWFkZXJzLmFwcGVuZCgoIngtb3JpZ2luIiwgcmVxdWVzdC5oZWFkZXJzLmdldCgi
T3JpZ2luIiwgIiIpKSkKKyAgICBoZWFkZXJzLmFwcGVuZCgoYiJBY2Nlc3MtQ29udHJvbC1FeHBv
c2UtSGVhZGVycyIsIGIieC1kaWQtcHJlZmxpZ2h0LCB4LWNvbnRyb2wtcmVxdWVzdC1oZWFkZXJz
LCB4LXJlZmVycmVyLCB4LXByZWZsaWdodC1yZWZlcnJlciwgeC1vcmlnaW4iKSkKKyAgICBoZWFk
ZXJzLmFwcGVuZCgoYiJ4LWRpZC1wcmVmbGlnaHQiLCBzdGFzaGVkX2RhdGFbYidwcmVmbGlnaHQn
XSkpCisgICAgaWYgc3Rhc2hlZF9kYXRhW2InY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnXSAhPSBO
b25lOgorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoYiJ4LWNvbnRyb2wtcmVxdWVzdC1oZWFkZXJz
Iiwgc3Rhc2hlZF9kYXRhW2InY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnXSkpCisgICAgaGVhZGVy
cy5hcHBlbmQoKGIieC1wcmVmbGlnaHQtcmVmZXJyZXIiLCBzdGFzaGVkX2RhdGFbYidwcmVmbGln
aHRfcmVmZXJyZXInXSkpCisgICAgaGVhZGVycy5hcHBlbmQoKGIieC1yZWZlcnJlciIsIHJlcXVl
c3QuaGVhZGVycy5nZXQoYiJSZWZlcmVyIiwgYiIiKSkpCisgICAgaGVhZGVycy5hcHBlbmQoKGIi
eC1vcmlnaW4iLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KGIiT3JpZ2luIiwgYiIiKSkpCiAKICAgICBp
ZiB0b2tlbjoKICAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHRva2VuLCBzdGFzaGVk
X2RhdGEpCiAKLSAgICByZXR1cm4gaGVhZGVycywgIiIKKyAgICByZXR1cm4gaGVhZGVycywgYiIi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNvdXJjZXMvcmVkaXJlY3QtZW1wdHktbG9jYXRpb24ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMv
cmVkaXJlY3QtZW1wdHktbG9jYXRpb24ucHkKaW5kZXggMmJhYWJhZTAzYjBiZjM2OGJiY2Q5YjI2
YTAxZDIyZWNkOGU4NjQ3MC4uMWE1ZjdmZWIyYTRiMzI5NDczZDI5ZDQ1YzFiMjQ1YzY2MjU4ZDhk
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3JlZGlyZWN0LWVtcHR5LWxvY2F0aW9uLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291
cmNlcy9yZWRpcmVjdC1lbXB0eS1sb2NhdGlvbi5weQpAQCAtMSwzICsxLDMgQEAKIGRlZiBtYWlu
KHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBoZWFkZXJzID0gWygiTG9jYXRpb24iLCAiIildCi0g
ICAgcmV0dXJuIDMwMiwgaGVhZGVycywgIiIKKyAgICBoZWFkZXJzID0gWyhiIkxvY2F0aW9uIiwg
YiIiKV0KKyAgICByZXR1cm4gMzAyLCBoZWFkZXJzLCBiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9z
Y3JpcHQtd2l0aC1oZWFkZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvc2NyaXB0LXdpdGgtaGVhZGVyLnB5CmluZGV4
IDUzMzdjYzk3YmRkNzczN2U0MDM5OGNiMDY2YTk4YTUyNDZiYTQzOTIuLjlhOWM3MGVmNWNmMDBk
N2YxNjk2MzAwNGU3N2ZmMTM1ZWQ5MmFmYjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9zY3JpcHQtd2l0
aC1oZWFkZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3NjcmlwdC13aXRoLWhlYWRlci5weQpAQCAtMSw3ICsx
LDcgQEAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBoZWFkZXJzID0gWygiQ29u
dGVudC10eXBlIiwgcmVxdWVzdC5HRVQuZmlyc3QoIm1pbWUiKSldCi0gICAgaWYgImNvbnRlbnQi
IGluIHJlcXVlc3QuR0VUIGFuZCByZXF1ZXN0LkdFVC5maXJzdCgiY29udGVudCIpID09ICJlbXB0
eSI6Ci0gICAgICAgIGNvbnRlbnQgPSAnJworICAgIGhlYWRlcnMgPSBbKGIiQ29udGVudC10eXBl
IiwgcmVxdWVzdC5HRVQuZmlyc3QoYiJtaW1lIikpXQorICAgIGlmIGIiY29udGVudCIgaW4gcmVx
dWVzdC5HRVQgYW5kIHJlcXVlc3QuR0VULmZpcnN0KGIiY29udGVudCIpID09IGIiZW1wdHkiOgor
ICAgICAgICBjb250ZW50ID0gYicnCiAgICAgZWxzZToKLSAgICAgICAgY29udGVudCA9ICJjb25z
b2xlLmxvZygnU2NyaXB0IGxvYWRlZCcpIgorICAgICAgICBjb250ZW50ID0gYiJjb25zb2xlLmxv
ZygnU2NyaXB0IGxvYWRlZCcpIgogICAgIHJldHVybiAyMDAsIGhlYWRlcnMsIGNvbnRlbnQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9zdGFzaC1wdXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvc3Rhc2gtcHV0LnB5CmluZGV4
IDM2NTI3Yjk4YjcxNzg1ODA5Y2Q2YTQ5MDE5NmRkOTExMmZlZjkxODEuLmRiYzdjZWViYjg4MmVi
Yjc3YTAyMDJiM2M5YTgyOGUyYzcwZGMzYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9zdGFzaC1wdXQu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzb3VyY2VzL3N0YXNoLXB1dC5weQpAQCAtMSwxNCArMSwxNyBAQAorZnJvbSB3cHRz
ZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19kZWNvZGUKKwogZGVmIG1haW4ocmVxdWVzdCwg
cmVzcG9uc2UpOgotICAgIGlmIHJlcXVlc3QubWV0aG9kID09ICdPUFRJT05TJzoKKyAgICBpZiBy
ZXF1ZXN0Lm1ldGhvZCA9PSB1J09QVElPTlMnOgogICAgICAgICAjIENPUlMgcHJlZmxpZ2h0Ci0g
ICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4n
LCAnKicpCi0gICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCdBY2Nlc3MtQ29udHJvbC1BbGxv
dy1NZXRob2RzJywgJyonKQotICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgnQWNjZXNzLUNv
bnRyb2wtQWxsb3ctSGVhZGVycycsICcqJykKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQo
YidBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCBiJyonKQorICAgICAgICByZXNwb25zZS5o
ZWFkZXJzLnNldChiJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnLCBiJyonKQorICAgICAg
ICByZXNwb25zZS5oZWFkZXJzLnNldChiJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnLCBi
JyonKQogICAgICAgICByZXR1cm4gJ2RvbmUnCiAKLSAgICB1cmxfZGlyID0gJy8nLmpvaW4ocmVx
dWVzdC51cmxfcGFydHMucGF0aC5zcGxpdCgnLycpWzotMV0pICsgJy8nCi0gICAga2V5ID0gcmVx
dWVzdC5HRVQuZmlyc3QoImtleSIpCi0gICAgdmFsdWUgPSByZXF1ZXN0LkdFVC5maXJzdCgidmFs
dWUiKQotICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dChrZXksIHZhbHVlLCB1cmxfZGlyKQot
ICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAn
KicpCisgICAgdXJsX2RpciA9IHUnLycuam9pbihyZXF1ZXN0LnVybF9wYXJ0cy5wYXRoLnNwbGl0
KHUnLycpWzotMV0pICsgdScvJworICAgIGtleSA9IHJlcXVlc3QuR0VULmZpcnN0KGIia2V5IikK
KyAgICB2YWx1ZSA9IHJlcXVlc3QuR0VULmZpcnN0KGIidmFsdWUiKQorICAgICMgdmFsdWUgaGVy
ZSBtdXN0IGJlIGEgdGV4dCBzdHJpbmcuIEl0IHdpbGwgYmUganNvbi5kdW1wKCknZWQgaW4gc3Rh
c2gtdGFrZS5weS4KKyAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQoa2V5LCBpc29tb3JwaGlj
X2RlY29kZSh2YWx1ZSksIHVybF9kaXIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYidBY2Nl
c3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCBiJyonKQogICAgIHJldHVybiAiZG9uZSIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc291cmNlcy9zdGFzaC10YWtlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3N0YXNoLXRha2UucHkKaW5kZXgg
ZmNhZjk2Yzk2YTY0MTFmNTM5MTI3NmU5ODRhYWEyMjZjOGNiMTViNi4uZTZkYjgwZGQ4NmRmMWU1
YTgwZTE3N2I3OGJkNDBhNTkyMzQ4ODViMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3N0YXNoLXRha2Uu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzb3VyY2VzL3N0YXNoLXRha2UucHkKQEAgLTMsNyArMyw3IEBAIGZyb20gd3B0c2Vy
dmUuaGFuZGxlcnMgaW1wb3J0IGpzb25faGFuZGxlcgogCiBAanNvbl9oYW5kbGVyCiBkZWYgbWFp
bihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgZGlyID0gJy8nLmpvaW4ocmVxdWVzdC51cmxfcGFy
dHMucGF0aC5zcGxpdCgnLycpWzotMV0pICsgJy8nCi0gICAga2V5ID0gcmVxdWVzdC5HRVQuZmly
c3QoImtleSIpCi0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoJ0FjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbicsICcqJykKKyAgICBkaXIgPSB1Jy8nLmpvaW4ocmVxdWVzdC51cmxfcGFydHMucGF0
aC5zcGxpdCh1Jy8nKVs6LTFdKSArIHUnLycKKyAgICBrZXkgPSByZXF1ZXN0LkdFVC5maXJzdChi
ImtleSIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYidBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4nLCBiJyonKQogICAgIHJldHVybiByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKGtleSwg
ZGlyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3N0YXR1cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9zdGF0dXMucHkKaW5k
ZXggNWQ3MmUxMGIyNGJmZDVhMzZkNzE5OTQwMzg4YmI1NWQ0NDQzMzU0Ni4uMDVhNTlkNWE2Mzdl
ZGRlOGZiMDQ5NjI3ZmRjZThhM2EwZTgzNjcxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3N0YXR1cy5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNvdXJjZXMvc3RhdHVzLnB5CkBAIC0xLDkgKzEsMTEgQEAKK2Zyb20gd3B0c2VydmUu
dXRpbHMgaW1wb3J0IGlzb21vcnBoaWNfZW5jb2RlCisKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3Bv
bnNlKToKLSAgICBjb2RlID0gaW50KHJlcXVlc3QuR0VULmZpcnN0KCJjb2RlIiwgMjAwKSkKLSAg
ICB0ZXh0ID0gcmVxdWVzdC5HRVQuZmlyc3QoInRleHQiLCAiT01HIikKLSAgICBjb250ZW50ID0g
cmVxdWVzdC5HRVQuZmlyc3QoImNvbnRlbnQiLCAiIikKLSAgICB0eXBlID0gcmVxdWVzdC5HRVQu
Zmlyc3QoInR5cGUiLCAiIikKKyAgICBjb2RlID0gaW50KHJlcXVlc3QuR0VULmZpcnN0KGIiY29k
ZSIsIDIwMCkpCisgICAgdGV4dCA9IHJlcXVlc3QuR0VULmZpcnN0KGIidGV4dCIsIGIiT01HIikK
KyAgICBjb250ZW50ID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJjb250ZW50IiwgYiIiKQorICAgIHR5
cGUgPSByZXF1ZXN0LkdFVC5maXJzdChiInR5cGUiLCBiIiIpCiAgICAgc3RhdHVzID0gKGNvZGUs
IHRleHQpCi0gICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlwZSIsIHR5cGUpLAotICAgICAgICAg
ICAgICAgKCJYLVJlcXVlc3QtTWV0aG9kIiwgcmVxdWVzdC5tZXRob2QpXQorICAgIGhlYWRlcnMg
PSBbKGIiQ29udGVudC1UeXBlIiwgdHlwZSksCisgICAgICAgICAgICAgICAoYiJYLVJlcXVlc3Qt
TWV0aG9kIiwgaXNvbW9ycGhpY19lbmNvZGUocmVxdWVzdC5tZXRob2QpKV0KICAgICByZXR1cm4g
c3RhdHVzLCBoZWFkZXJzLCBjb250ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdHJpY2tsZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c291cmNlcy90cmlja2xlLnB5CmluZGV4IDliM2FhMzdiMjVjOWM5OWZlMWZjNmE5ODhjZDc5ZWE2
Yzc5M2MyODcuLjUwOTFhMmIzZmRkY2U3ZTlhNDRjZjZlZjk0ZTkyMmY3OWQ5MTM2OTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc291cmNlcy90cmlja2xlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90cmlja2xlLnB5CkBAIC0xMiw1
ICsxMiw1IEBAIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICByZXNwb25zZS53cml0
ZV9zdGF0dXNfaGVhZGVycygpCiAgICAgdGltZS5zbGVlcChkZWxheSkKICAgICBmb3IgaSBpbiB4
cmFuZ2UoY291bnQpOgotICAgICAgICByZXNwb25zZS53cml0ZXIud3JpdGVfY29udGVudCh1IlRF
U1RfVFJJQ0tMRVxuIikKKyAgICAgICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX2NvbnRlbnQoYiJU
RVNUX1RSSUNLTEVcbiIpCiAgICAgICAgIHRpbWUuc2xlZXAoZGVsYXkpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1ib2R5LXJlYWQtdGFzay1oYW5kbGluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1ib2R5LXJlYWQtdGFzay1oYW5kbGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZThkNjdkMjkyNzYyYzQyZWU3NmE3NTRlNjExNzM1YzkwM2QwN2Y1YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWJvZHktcmVhZC10YXNrLWhhbmRsaW5nLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyByZWFkaW5nIGZyb20gYSBib2R5IHN0cmVhbSBzaG91
bGQgb2NjdXIgaW4gYSBtaWNyb3Rhc2sgc2NvcGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtYm9keS1yZWFkLXRhc2staGFuZGxpbmcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWJvZHktcmVh
ZC10YXNrLWhhbmRsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzJjOTBlYWE4YmQ5NTFjZjdkNTE2OGU3
Nzk2ZGQxY2I4ZGNmOWNkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWJvZHkt
cmVhZC10YXNrLWhhbmRsaW5nLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgIDx0aXRsZT48L3Rp
dGxlPgorICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0PgorZnVuY3Rpb24gcGVyZm9ybU1pY3JvdGFz
a0NoZWNrcG9pbnQoKSB7CisgICAgZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50
LCAtMSwgeworICAgICAgICBhY2NlcHROb2RlKCkgeworICAgICAgICAgICAgcmV0dXJuIE5vZGVG
aWx0ZXIuRklMVEVSX0FDQ0VQVDsKKyAgICAgICAgfQorICAgIH0pLm5leHROb2RlKCk7Cit9CisK
K3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNl
cy9kYXRhLmpzb24iKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIC8vIEFkZCBh
IGdldHRlciBmb3IgInRoZW4iIHRoYXQgd2lsbCBpbmNpZGVudGFsbHkgYmUgaW52b2tlZAorICAg
ICAgICAvLyBkdXJpbmcgcHJvbWlzZSByZXNvbHV0aW9uLgorICAgICAgICBPYmplY3QucHJvdG90
eXBlLl9fZGVmaW5lR2V0dGVyX18oJ3RoZW4nLCAoKSA9PiB7CisgICAgICAgICAgICAvLyBDbGVh
biB1cCBiZWhpbmQgb3Vyc2VsdmVzLgorICAgICAgICAgICAgZGVsZXRlIE9iamVjdC5wcm90b3R5
cGUudGhlbjsKKworICAgICAgICAgICAgLy8gVGhpcyBwcm9taXNlIHNob3VsZCAobGlrZSBhbGwg
cHJvbWlzZXMpIGJlIHJlc29sdmVkCisgICAgICAgICAgICAvLyBhc3luY2hyb25vdXNseS4KKyAg
ICAgICAgICAgIHZhciBleGVjdXRlZCA9IGZhbHNlOworICAgICAgICAgICAgUHJvbWlzZS5yZXNv
bHZlKCkudGhlbihfID0+IHsgZXhlY3V0ZWQgPSB0cnVlOyB9KTsKKworICAgICAgICAgICAgLy8g
VGhpcyBzaG91bGRuJ3QgcnVuIG1pY3JvdGFza3MhICBUaGV5IHNob3VsZCBvbmx5IHJ1bgorICAg
ICAgICAgICAgLy8gYWZ0ZXIgdGhlIGZldGNoIGlzIHJlc29sdmVkLgorICAgICAgICAgICAgcGVy
Zm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKKworICAgICAgICAgICAgLy8gVGhlIGZ1bGZpbGwg
aGFuZGxlciBhYm92ZSBzaG91bGRuJ3QgaGF2ZSBydW4geWV0LiAgSWYgaXQgaGFzIHJ1biwKKyAg
ICAgICAgICAgIC8vIHRocm93IHRvIHJlamVjdCB0aGlzIHByb21pc2UgYW5kIGZhaWwgdGhlIHRl
c3QuCisgICAgICAgICAgICBpZiAoZXhlY3V0ZWQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyAi
c2hvdWxkbid0IGhhdmUgcnVuIG1pY3JvdGFza3MgeWV0IjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLy8gT3RoZXJ3aXNlIGFjdCBhcyBpZiB0aGVyZSdzIG5vICJ0aGVuIiBwcm9wZXJ0
eSBzbyB0aGUgcHJvbWlzZQorICAgICAgICAgICAgLy8gZnVsZmlsbHMgYW5kIHRoZSB0ZXN0IHBh
c3Nlcy4KKyAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisgICAgICAgIH0pOworCisgICAg
ICAgIC8vIENyZWF0ZSBhIHJlYWQgcmVxdWVzdCwgaW5jaWRlbnRhbGx5IHJlc29sdmluZyBhIHBy
b21pc2Ugd2l0aCBhbgorICAgICAgICAvLyBvYmplY3QgdmFsdWUsIHRoZXJlYnkgaW52b2tpbmcg
dGhlIGdldHRlciBpbnN0YWxsZWQgYWJvdmUuCisgICAgICAgIHJldHVybiByZXNwb25zZS5ib2R5
LmdldFJlYWRlcigpLnJlYWQoKTsKKyAgICB9KTsKK30sICJyZWFkaW5nIGZyb20gYSBib2R5IHN0
cmVhbSBzaG91bGQgb2NjdXIgaW4gYSBtaWNyb3Rhc2sgc2NvcGUiKTsKKyAgPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jYW5jZWwtc3RyZWFt
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNhbmNlbC1zdHJlYW0tZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWM0MjhjMzEzZGQxMWQ3MzM1MDAwMmZm
ZDUyYWRlNjEwMjg4OGU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNhbmNlbC1zdHJlYW0tZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsOCArMCwwIEBACi0KLVBBU1MgQ2FuY2VsbGluZyBhIHN0YXJ0aW5nIGJsb2Ig
UmVzcG9uc2Ugc3RyZWFtCi1QQVNTIENhbmNlbGxpbmcgYSBsb2FkaW5nIGJsb2IgUmVzcG9uc2Ug
c3RyZWFtCi1QQVNTIENhbmNlbGxpbmcgYSBjbG9zZWQgYmxvYiBSZXNwb25zZSBzdHJlYW0KLVBB
U1MgQ2FuY2VsbGluZyBhIHN0YXJ0aW5nIFJlc3BvbnNlIHN0cmVhbQotUEFTUyBDYW5jZWxsaW5n
IGEgbG9hZGluZyBSZXNwb25zZSBzdHJlYW0KLVBBU1MgQ2FuY2VsbGluZyBhIGNsb3NlZCBSZXNw
b25zZSBzdHJlYW0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5h
bnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIxYzQyOGMzMTNkZDExZDczMzUwMDAyZmZkNTJhZGU2MTAyODg4
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jYW5jZWwtc3RyZWFtLmFueS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BBU1MgQ2FuY2VsbGluZyBhIHN0YXJ0aW5n
IGJsb2IgUmVzcG9uc2Ugc3RyZWFtCitQQVNTIENhbmNlbGxpbmcgYSBsb2FkaW5nIGJsb2IgUmVz
cG9uc2Ugc3RyZWFtCitQQVNTIENhbmNlbGxpbmcgYSBjbG9zZWQgYmxvYiBSZXNwb25zZSBzdHJl
YW0KK1BBU1MgQ2FuY2VsbGluZyBhIHN0YXJ0aW5nIFJlc3BvbnNlIHN0cmVhbQorUEFTUyBDYW5j
ZWxsaW5nIGEgbG9hZGluZyBSZXNwb25zZSBzdHJlYW0KK1BBU1MgQ2FuY2VsbGluZyBhIGNsb3Nl
ZCBSZXNwb25zZSBzdHJlYW0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0
cmVhbS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNhbmNlbC1zdHJlYW0uYW55Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNhbmNlbC1zdHJlYW0uYW55Lmh0bWwKQEAgLTAs
MCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJh
c3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnku
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1jYW5jZWwtc3RyZWFtLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWE0
NmRlNDAzOWIxNzZjMzBlMGU4YTQ5ZWU3NWFjYmQyMGU2NDUwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnkuanMKQEAgLTAsMCArMSw1NyBAQAorLy8g
TUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPVJlc3BvbnNlIGNvbnN1
bWUgYmxvYiBhbmQgaHR0cCBib2RpZXMKKy8vIE1FVEE6IHNjcmlwdD0uLi9yZXNvdXJjZXMvdXRp
bHMuanMKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICByZXR1cm4gbmV3IFJl
c3BvbnNlKG5ldyBCbG9iKFtdLCB7ICJ0eXBlIiA6ICJ0ZXh0L3BsYWluIiB9KSkuYm9keS5jYW5j
ZWwoKTsKK30sICJDYW5jZWxsaW5nIGEgc3RhcnRpbmcgYmxvYiBSZXNwb25zZSBzdHJlYW0iKTsK
KworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcg
UmVzcG9uc2UobmV3IEJsb2IoWyJUaGlzIGlzIGRhdGEiXSwgeyAidHlwZSIgOiAidGV4dC9wbGFp
biIgfSkpOworICAgIHZhciByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOworICAg
IHJlYWRlci5yZWFkKCk7CisgICAgcmV0dXJuIHJlYWRlci5jYW5jZWwoKTsKK30sICJDYW5jZWxs
aW5nIGEgbG9hZGluZyBibG9iIFJlc3BvbnNlIHN0cmVhbSIpOworCitwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odGVzdCkgeworICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZShuZXcgQmxvYihb
IlQiXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSkpOworICAgIHZhciByZWFkZXIgPSByZXNw
b25zZS5ib2R5LmdldFJlYWRlcigpOworCisgICAgdmFyIGNsb3NlZFByb21pc2UgPSByZWFkZXIu
Y2xvc2VkLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiByZWFkZXIuY2FuY2VsKCk7
CisgICAgfSk7CisgICAgcmVhZGVyLnJlYWQoKS50aGVuKGZ1bmN0aW9uIHJlYWRNb3JlKHtkb25l
LCB2YWx1ZX0pIHsKKyAgICAgIGlmICghZG9uZSkgcmV0dXJuIHJlYWRlci5yZWFkKCkudGhlbihy
ZWFkTW9yZSk7CisgICAgfSk7CisgICAgcmV0dXJuIGNsb3NlZFByb21pc2U7Cit9LCAiQ2FuY2Vs
bGluZyBhIGNsb3NlZCBibG9iIFJlc3BvbnNlIHN0cmVhbSIpOworCitwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odGVzdCkgeworICAgIHJldHVybiBmZXRjaChSRVNPVVJDRVNfRElSICsgInRyaWNrbGUu
cHk/bXM9MzAmY291bnQ9MTAwIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICBy
ZXR1cm4gcmVzcG9uc2UuYm9keS5jYW5jZWwoKTsKKyAgICB9KTsKK30sICJDYW5jZWxsaW5nIGEg
c3RhcnRpbmcgUmVzcG9uc2Ugc3RyZWFtIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsK
KyAgICByZXR1cm4gZmV0Y2goUkVTT1VSQ0VTX0RJUiArICJ0cmlja2xlLnB5P21zPTMwJmNvdW50
PTEwMCIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgdmFyIHJlYWRlciA9IHJl
c3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7CisgICAgICAgIHJldHVybiByZWFkZXIucmVhZCgpLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gcmVhZGVyLmNhbmNlbCgpOworICAg
ICAgICB9KTsKKyAgICB9KTsKK30sICJDYW5jZWxsaW5nIGEgbG9hZGluZyBSZXNwb25zZSBzdHJl
YW0iKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICAgIGFzeW5jIGZ1bmN0aW9uIHJl
YWRBbGwocmVhZGVyKSB7CisgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBjb25zdCB7dmFs
dWUsIGRvbmV9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTsKKyAgICAgICAgaWYgKGRvbmUpCisgICAg
ICAgICAgcmV0dXJuOworICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmZXRjaChSRVNPVVJD
RVNfRElSICsgInRvcC50eHQiKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHZh
ciByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOworICAgICAgICByZXR1cm4gcmVh
ZEFsbChyZWFkZXIpLnRoZW4oKCkgPT4gcmVhZGVyLmNhbmNlbCgpKTsKKyAgICB9KTsKK30sICJD
YW5jZWxsaW5nIGEgY2xvc2VkIFJlc3BvbnNlIHN0cmVhbSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLWNhbmNlbC1zdHJlYW0uYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjFjNDI4YzMxM2RkMTFkNzMzNTAwMDJmZmQ1MmFkZTYxMDI4ODhlOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLWNhbmNlbC1zdHJlYW0uYW55Lndvcmtlci1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw4IEBACisKK1BBU1MgQ2FuY2VsbGluZyBhIHN0YXJ0aW5nIGJsb2IgUmVzcG9u
c2Ugc3RyZWFtCitQQVNTIENhbmNlbGxpbmcgYSBsb2FkaW5nIGJsb2IgUmVzcG9uc2Ugc3RyZWFt
CitQQVNTIENhbmNlbGxpbmcgYSBjbG9zZWQgYmxvYiBSZXNwb25zZSBzdHJlYW0KK1BBU1MgQ2Fu
Y2VsbGluZyBhIHN0YXJ0aW5nIFJlc3BvbnNlIHN0cmVhbQorUEFTUyBDYW5jZWxsaW5nIGEgbG9h
ZGluZyBSZXNwb25zZSBzdHJlYW0KK1BBU1MgQ2FuY2VsbGluZyBhIGNsb3NlZCBSZXNwb25zZSBz
dHJlYW0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnkud29y
a2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jYW5jZWwtc3RyZWFtLmFueS53b3JrZXIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5hbnkud29ya2VyLmh0
bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0
ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0
cmVhbS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2FuY2VsLXN0cmVhbS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmY2FlZDA0ZDgzZTMxYTQzNzY5NWI1NWI1MGJlYjc0MjVhNWEz
ZmI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLWNhbmNlbC1zdHJlYW0uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAg
QEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVzcG9uc2UgY29uc3VtZSBibG9iIGFuZCBodHRwIGJvZGll
czwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVj
LndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRw
czovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keS1taXhpbiI+Ci0gICAgPG1ldGEgbmFtZT0i
YXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5j
cmYuY2Fub24uZnIiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy91dGlscy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdD4KLXByb21pc2VfdGVz
dChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgcmV0dXJuIG5ldyBSZXNwb25zZShuZXcgQmxvYihbXSwg
eyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSkpLmJvZHkuY2FuY2VsKCk7Ci19LCAiQ2FuY2VsbGlu
ZyBhIHN0YXJ0aW5nIGJsb2IgUmVzcG9uc2Ugc3RyZWFtIik7Ci0KLXByb21pc2VfdGVzdChmdW5j
dGlvbih0ZXN0KSB7Ci0gICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG5ldyBCbG9iKFsi
VGhpcyBpcyBkYXRhIl0sIHsgInR5cGUiIDogInRleHQvcGxhaW4iIH0pKTsKLSAgICB2YXIgcmVh
ZGVyID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsKLSAgICByZWFkZXIucmVhZCgpOwotICAg
IHJldHVybiByZWFkZXIuY2FuY2VsKCk7Ci19LCAiQ2FuY2VsbGluZyBhIGxvYWRpbmcgYmxvYiBS
ZXNwb25zZSBzdHJlYW0iKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICB2
YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UobmV3IEJsb2IoWyJUIl0sIHsgInR5cGUiIDogInRl
eHQvcGxhaW4iIH0pKTsKLSAgICB2YXIgcmVhZGVyID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIo
KTsKLQotICAgIHZhciBjbG9zZWRQcm9taXNlID0gcmVhZGVyLmNsb3NlZC50aGVuKGZ1bmN0aW9u
KCkgewotICAgICAgICByZXR1cm4gcmVhZGVyLmNhbmNlbCgpOwotICAgIH0pOwotICAgIHJlYWRl
ci5yZWFkKCkudGhlbihmdW5jdGlvbiByZWFkTW9yZSh7ZG9uZSwgdmFsdWV9KSB7Ci0gICAgICBp
ZiAoIWRvbmUpIHJldHVybiByZWFkZXIucmVhZCgpLnRoZW4ocmVhZE1vcmUpOwotICAgIH0pOwot
ICAgIHJldHVybiBjbG9zZWRQcm9taXNlOwotfSwgIkNhbmNlbGxpbmcgYSBjbG9zZWQgYmxvYiBS
ZXNwb25zZSBzdHJlYW0iKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICBy
ZXR1cm4gZmV0Y2goUkVTT1VSQ0VTX0RJUiArICJ0cmlja2xlLnB5P21zPTMwJmNvdW50PTEwMCIp
LnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJvZHku
Y2FuY2VsKCk7Ci0gICAgfSk7Ci19LCAiQ2FuY2VsbGluZyBhIHN0YXJ0aW5nIFJlc3BvbnNlIHN0
cmVhbSIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGZldGNoKFJF
U09VUkNFU19ESVIgKyAidHJpY2tsZS5weT9tcz0zMCZjb3VudD0xMDAiKS50aGVuKGZ1bmN0aW9u
KHJlc3BvbnNlKSB7Ci0gICAgICAgIHZhciByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRl
cigpOwotICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWQoKS50aGVuKGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgcmV0dXJuIHJlYWRlci5jYW5jZWwoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19
LCAiQ2FuY2VsbGluZyBhIGxvYWRpbmcgUmVzcG9uc2Ugc3RyZWFtIik7Ci0KLXByb21pc2VfdGVz
dChmdW5jdGlvbigpIHsKLSAgICBhc3luYyBmdW5jdGlvbiByZWFkQWxsKHJlYWRlcikgewotICAg
ICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgY29uc3Qge3ZhbHVlLCBkb25lfSA9IGF3YWl0IHJl
YWRlci5yZWFkKCk7Ci0gICAgICAgIGlmIChkb25lKQotICAgICAgICAgIHJldHVybjsKLSAgICAg
IH0KLSAgICB9Ci0KLSAgICByZXR1cm4gZmV0Y2goUkVTT1VSQ0VTX0RJUiArICJ0b3AudHh0Iiku
dGhlbihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICB2YXIgcmVhZGVyID0gcmVzcG9uc2Uu
Ym9keS5nZXRSZWFkZXIoKTsKLSAgICAgICAgcmV0dXJuIHJlYWRBbGwocmVhZGVyKS50aGVuKCgp
ID0+IHJlYWRlci5jYW5jZWwoKSk7Ci0gICAgfSk7Ci19LCAiQ2FuY2VsbGluZyBhIGNsb3NlZCBS
ZXNwb25zZSBzdHJlYW0iKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY2xvbmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNmU4
OTQ1NjNkZjYyZjFiMmI2ZGFkYmMwYWFkZjI2YmM1MGNiYjM0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25lLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLQotUEFTUyBDaGVjayBSZXNwb25z
ZSdzIGNsb25lIHdpdGggZGVmYXVsdCB2YWx1ZXMsIHdpdGhvdXQgYm9keQotUEFTUyBDaGVjayBS
ZXNwb25zZSdzIGNsb25lIGhhcyB0aGUgZXhwZWN0ZWQgYXR0cmlidXRlIHZhbHVlcwotUEFTUyBD
aGVjayBvcmdpbmFsIHJlc3BvbnNlJ3MgYm9keSBhZnRlciBjbG9uaW5nCi1QQVNTIENoZWNrIGNs
b25lZCByZXNwb25zZSdzIGJvZHkKLVBBU1MgQ2Fubm90IGNsb25lIGEgZGlzdHVyYmVkIHJlc3Bv
bnNlCi1QQVNTIENsb25lZCByZXNwb25zZXMgc2hvdWxkIHByb3ZpZGUgdGhlIHNhbWUgZGF0YQot
UEFTUyBDYW5jZWxsaW5nIHN0cmVhbSBzaG91bGQgbm90IGFmZmVjdCBjbG9uZWQgb25lCi1QQVNT
IENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJs
ZVN0cmVhbXMgKEludDhBcnJheWNodW5rKQotUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ug
c3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChJbnQxNkFycmF5Y2h1bmsp
Ci1QQVNTIENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBS
ZWFkYWJsZVN0cmVhbXMgKEludDMyQXJyYXljaHVuaykKLUZBSUwgQ2hlY2sgcmVzcG9uc2UgY2xv
bmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoQXJyYXlCdWZm
ZXJjaHVuaykgYXNzZXJ0X2FycmF5X2VxdWFsczogQ2xvbmVkIGJ1ZmZlciBjaHVua3MgaGF2ZSB0
aGUgc2FtZSBjb250ZW50IHZhbHVlIGlzIG9iamVjdCAiW29iamVjdCBBcnJheUJ1ZmZlcl0iLCBl
eHBlY3RlZCBhcnJheQotUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xv
bmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChVaW50OEFycmF5Y2h1bmspCi1QQVNTIENoZWNr
IHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVh
bXMgKFVpbnQ4Q2xhbXBlZEFycmF5Y2h1bmspCi1QQVNTIENoZWNrIHJlc3BvbnNlIGNsb25lIHVz
ZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKFVpbnQxNkFycmF5Y2h1
bmspCi1QQVNTIENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVl
ZCBSZWFkYWJsZVN0cmVhbXMgKFVpbnQzMkFycmF5Y2h1bmspCi1QQVNTIENoZWNrIHJlc3BvbnNl
IGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKEZsb2F0
MzJBcnJheWNodW5rKQotUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xv
bmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChGbG9hdDY0QXJyYXljaHVuaykKLUZBSUwgQ2hl
Y2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxlU3Ry
ZWFtcyAoRGF0YVZpZXdjaHVuaykgYXNzZXJ0X2FycmF5X2VxdWFsczogQ2xvbmVkIGJ1ZmZlciBj
aHVua3MgaGF2ZSB0aGUgc2FtZSBjb250ZW50IHZhbHVlIGlzIG9iamVjdCAiW29iamVjdCBEYXRh
Vmlld10iLCBleHBlY3RlZCBhcnJheQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9u
ZS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuYW55LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNmU4OTQ1NjNkZjYyZjFiMmI2ZGFkYmMwYWFkZjI2YmM1MGNiYjM0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuYW55LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIwIEBACisKK1BBU1MgQ2hlY2sgUmVzcG9uc2UncyBjbG9uZSB3aXRoIGRlZmF1
bHQgdmFsdWVzLCB3aXRob3V0IGJvZHkKK1BBU1MgQ2hlY2sgUmVzcG9uc2UncyBjbG9uZSBoYXMg
dGhlIGV4cGVjdGVkIGF0dHJpYnV0ZSB2YWx1ZXMKK1BBU1MgQ2hlY2sgb3JnaW5hbCByZXNwb25z
ZSdzIGJvZHkgYWZ0ZXIgY2xvbmluZworUEFTUyBDaGVjayBjbG9uZWQgcmVzcG9uc2UncyBib2R5
CitQQVNTIENhbm5vdCBjbG9uZSBhIGRpc3R1cmJlZCByZXNwb25zZQorUEFTUyBDbG9uZWQgcmVz
cG9uc2VzIHNob3VsZCBwcm92aWRlIHRoZSBzYW1lIGRhdGEKK1BBU1MgQ2FuY2VsbGluZyBzdHJl
YW0gc2hvdWxkIG5vdCBhZmZlY3QgY2xvbmVkIG9uZQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9u
ZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChJbnQ4QXJyYXlj
aHVuaykKK1BBU1MgQ2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0
ZWVkIFJlYWRhYmxlU3RyZWFtcyAoSW50MTZBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25z
ZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChJbnQz
MkFycmF5Y2h1bmspCitGQUlMIENoZWNrIHJlc3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9u
ZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKEFycmF5QnVmZmVyY2h1bmspIGFzc2VydF9hcnJh
eV9lcXVhbHM6IENsb25lZCBidWZmZXIgY2h1bmtzIGhhdmUgdGhlIHNhbWUgY29udGVudCB2YWx1
ZSBpcyBvYmplY3QgIltvYmplY3QgQXJyYXlCdWZmZXJdIiwgZXhwZWN0ZWQgYXJyYXkKK1BBU1Mg
Q2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxl
U3RyZWFtcyAoVWludDhBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ug
c3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChVaW50OENsYW1wZWRBcnJh
eWNodW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9y
IHRlZWQgUmVhZGFibGVTdHJlYW1zIChVaW50MTZBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNw
b25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChV
aW50MzJBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJl
Q2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChGbG9hdDMyQXJyYXljaHVuaykKK1BBU1Mg
Q2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxl
U3RyZWFtcyAoRmxvYXQ2NEFycmF5Y2h1bmspCitGQUlMIENoZWNrIHJlc3BvbnNlIGNsb25lIHVz
ZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKERhdGFWaWV3Y2h1bmsp
IGFzc2VydF9hcnJheV9lcXVhbHM6IENsb25lZCBidWZmZXIgY2h1bmtzIGhhdmUgdGhlIHNhbWUg
Y29udGVudCB2YWx1ZSBpcyBvYmplY3QgIltvYmplY3QgRGF0YVZpZXddIiwgZXhwZWN0ZWQgYXJy
YXkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuYW55Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1jbG9uZS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZj
NjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xv
bmUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
Y2xvbmUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuYW55LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdj
YzhmMjA1ZmE1NWQzNWU0MzNhMWFiOGJjMDhmNjJhZjhiZmI2OTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1jbG9uZS5hbnkuanMKQEAgLTAsMCArMSwxMjQgQEAKKy8vIE1FVEE6
IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXNwb25zZSBjbG9uZQorLy8g
TUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5qcworCit2YXIgZGVmYXVsdFZhbHVlcyA9
IHsgInR5cGUiIDogImRlZmF1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICJ1cmwiIDogIiIs
CisgICAgICAgICAgICAgICAgICAgICAgIm9rIiA6IHRydWUsCisgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyIgOiAyMDAsCisgICAgICAgICAgICAgICAgICAgICAgInN0YXR1c1RleHQiIDog
IiIKK307CisKK3ZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpOwordmFyIGNsb25lZFJlc3Bv
bnNlID0gcmVzcG9uc2UuY2xvbmUoKTsKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGZvciAodmFyIGF0
dHJpYnV0ZU5hbWUgaW4gZGVmYXVsdFZhbHVlcykgeworICAgICAgdmFyIGV4cGVjdGVkVmFsdWUg
PSBkZWZhdWx0VmFsdWVzW2F0dHJpYnV0ZU5hbWVdOworICAgICAgYXNzZXJ0X2VxdWFscyhjbG9u
ZWRSZXNwb25zZVthdHRyaWJ1dGVOYW1lXSwgZXhwZWN0ZWRWYWx1ZSwKKyAgICAgICAgIkV4cGVj
dCBkZWZhdWx0IHJlc3BvbnNlLiIgKyBhdHRyaWJ1dGVOYW1lICsgIiBpcyAiICsgZXhwZWN0ZWRW
YWx1ZSk7CisgIH0KK30sICJDaGVjayBSZXNwb25zZSdzIGNsb25lIHdpdGggZGVmYXVsdCB2YWx1
ZXMsIHdpdGhvdXQgYm9keSIpOworCit2YXIgYm9keSA9ICJUaGlzIGlzIHJlc3BvbnNlIGJvZHki
OwordmFyIGhlYWRlcnNJbml0ID0geyAibmFtZSIgOiAidmFsdWUiIH07Cit2YXIgcmVzcG9uc2VJ
bml0ICA9IHsgInN0YXR1cyIgOiAyMDAsCisgICAgICAgICAgICAgICAgICAgICAgInN0YXR1c1Rl
eHQiIDogIkdPT0QiLAorICAgICAgICAgICAgICAgICAgICAgICJoZWFkZXJzIiA6IGhlYWRlcnNJ
bml0Cit9OwordmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKGJvZHksIHJlc3BvbnNlSW5pdCk7
Cit2YXIgY2xvbmVkUmVzcG9uc2UgPSByZXNwb25zZS5jbG9uZSgpOwordGVzdChmdW5jdGlvbigp
IHsKKyAgYXNzZXJ0X2VxdWFscyhjbG9uZWRSZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlSW5pdFsi
c3RhdHVzIl0sCisgICAgIkV4cGVjdCByZXNwb25zZS5zdGF0dXMgaXMgIiArIHJlc3BvbnNlSW5p
dFsic3RhdHVzIl0pOworICBhc3NlcnRfZXF1YWxzKGNsb25lZFJlc3BvbnNlLnN0YXR1c1RleHQs
IHJlc3BvbnNlSW5pdFsic3RhdHVzVGV4dCJdLAorICAgICJFeHBlY3QgcmVzcG9uc2Uuc3RhdHVz
VGV4dCBpcyAiICsgcmVzcG9uc2VJbml0WyJzdGF0dXNUZXh0Il0pOworICBhc3NlcnRfZXF1YWxz
KGNsb25lZFJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJuYW1lIiksICJ2YWx1ZSIsCisgICAgIkV4cGVj
dCByZXNwb25zZS5oZWFkZXJzIGhhcyBuYW1lOnZhbHVlIGhlYWRlciIpOworfSwgIkNoZWNrIFJl
c3BvbnNlJ3MgY2xvbmUgaGFzIHRoZSBleHBlY3RlZCBhdHRyaWJ1dGUgdmFsdWVzIik7CisKK3By
b21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21T
dHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgYm9keSk7Cit9LCAiQ2hlY2sgb3JnaW5h
bCByZXNwb25zZSdzIGJvZHkgYWZ0ZXIgY2xvbmluZyIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odGVzdCkgeworICByZXR1cm4gdmFsaWRhdGVTdHJlYW1Gcm9tU3RyaW5nKGNsb25lZFJlc3Bv
bnNlLmJvZHkuZ2V0UmVhZGVyKCksIGJvZHkpOworfSwgIkNoZWNrIGNsb25lZCByZXNwb25zZSdz
IGJvZHkiKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgdmFyIGRpc3R1cmJl
ZFJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCJkYXRhIik7CisgIHJldHVybiBkaXN0dXJiZWRSZXNw
b25zZS50ZXh0KCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgIGFzc2VydF90cnVlKGRpc3R1cmJl
ZFJlc3BvbnNlLmJvZHlVc2VkLCAicmVzcG9uc2UgaXMgZGlzdHVyYmVkIik7CisgICAgICBhc3Nl
cnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGRpc3R1cmJlZFJlc3BvbnNlLmNs
b25lKCk7IH0sCisgICAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICB9KTsK
K30sICJDYW5ub3QgY2xvbmUgYSBkaXN0dXJiZWQgcmVzcG9uc2UiKTsKKworcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgY2xvbmU7CisgICAgdmFyIHJlc3VsdDsKKyAgICB2YXIg
cmVzcG9uc2U7CisgICAgcmV0dXJuIGZldGNoKCcuLi9yZXNvdXJjZXMvdHJpY2tsZS5weT9jb3Vu
dD0yJmRlbGF5PTEwMCcpLnRoZW4oZnVuY3Rpb24ocmVzKSB7CisgICAgICAgIGNsb25lID0gcmVz
LmNsb25lKCk7CisgICAgICAgIHJlc3BvbnNlID0gcmVzOworICAgICAgICByZXR1cm4gY2xvbmUu
dGV4dCgpOworICAgIH0pLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAgICBhc3NlcnRfZXF1YWxz
KHIubGVuZ3RoLCAyNik7CisgICAgICAgIHJlc3VsdCA9IHI7CisgICAgICAgIHJldHVybiByZXNw
b25zZS50ZXh0KCk7CisgICAgfSkudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgIGFzc2VydF9l
cXVhbHMociwgcmVzdWx0LCAiY2xvbmVkIHJlc3BvbnNlcyBzaG91bGQgcHJvdmlkZSB0aGUgc2Ft
ZSBkYXRhIik7CisgICAgfSk7CisgIH0sICdDbG9uZWQgcmVzcG9uc2VzIHNob3VsZCBwcm92aWRl
IHRoZSBzYW1lIGRhdGEnKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIg
Y2xvbmU7CisgICAgcmV0dXJuIGZldGNoKCcuLi9yZXNvdXJjZXMvdHJpY2tsZS5weT9jb3VudD0y
JmRlbGF5PTEwMCcpLnRoZW4oZnVuY3Rpb24ocmVzKSB7CisgICAgICAgIGNsb25lID0gcmVzLmNs
b25lKCk7CisgICAgICAgIHJlcy5ib2R5LmNhbmNlbCgpOworICAgICAgICBhc3NlcnRfdHJ1ZShy
ZXMuYm9keVVzZWQpOworICAgICAgICBhc3NlcnRfZmFsc2UoY2xvbmUuYm9keVVzZWQpOworICAg
ICAgICByZXR1cm4gY2xvbmUuYXJyYXlCdWZmZXIoKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uKHIp
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyLmJ5dGVMZW5ndGgsIDI2KTsKKyAgICAgICAgYXNz
ZXJ0X3RydWUoY2xvbmUuYm9keVVzZWQpOworICAgIH0pOworfSwgJ0NhbmNlbGxpbmcgc3RyZWFt
IHNob3VsZCBub3QgYWZmZWN0IGNsb25lZCBvbmUnKTsKKworZnVuY3Rpb24gdGVzdFJlYWRhYmxl
U3RyZWFtQ2xvbmUoaW5pdGlhbEJ1ZmZlciwgYnVmZmVyVHlwZSkKK3sKKyAgICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2Uo
bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydCA6IGZ1bmN0aW9uKGNvbnRyb2xsZXIpIHsKKyAgICAg
ICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShpbml0aWFsQnVmZmVyKTsKKyAgICAgICAgICAgIGNv
bnRyb2xsZXIuY2xvc2UoKTsKKyAgICAgICAgfX0pKTsKKworICAgICAgICB2YXIgY2xvbmUgPSBy
ZXNwb25zZS5jbG9uZSgpOworICAgICAgICB2YXIgc3RyZWFtMSA9IHJlc3BvbnNlLmJvZHk7Cisg
ICAgICAgIHZhciBzdHJlYW0yID0gY2xvbmUuYm9keTsKKworICAgICAgICB2YXIgYnVmZmVyOwor
ICAgICAgICByZXR1cm4gc3RyZWFtMS5nZXRSZWFkZXIoKS5yZWFkKCkudGhlbihmdW5jdGlvbihk
YXRhKSB7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoZGF0YS5kb25lKTsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZGF0YS52YWx1ZSwgaW5pdGlhbEJ1ZmZlciwgIkJ1ZmZlciBvZiBiZWlu
Zy1jbG9uZWQgcmVzcG9uc2Ugc3RyZWFtIGlzIHRoZSBzYW1lIGFzIHRoZSBvcmlnaW5hbCBidWZm
ZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBzdHJlYW0yLmdldFJlYWRlcigpLnJlYWQoKTsKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2Uo
ZGF0YS5kb25lKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZGF0YS52YWx1ZSwg
aW5pdGlhbEJ1ZmZlciwgIkNsb25lZCBidWZmZXIgY2h1bmtzIGhhdmUgdGhlIHNhbWUgY29udGVu
dCIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YoZGF0
YS52YWx1ZSksIE9iamVjdC5nZXRQcm90b3R5cGVPZihpbml0aWFsQnVmZmVyKSwgIkNsb25lZCBi
dWZmZXJzIGhhdmUgdGhlIHNhbWUgdHlwZSIpOworICAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVh
bHMoZGF0YS52YWx1ZSwgaW5pdGlhbEJ1ZmZlciwgIkJ1ZmZlciBvZiBjbG9uZWQgcmVzcG9uc2Ug
c3RyZWFtIGlzIGEgY2xvbmUgb2YgdGhlIG9yaWdpbmFsIGJ1ZmZlciIpOworICAgICAgICB9KTsK
KyAgICB9LCAiQ2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZvciB0ZWVk
IFJlYWRhYmxlU3RyZWFtcyAoIiArIGJ1ZmZlclR5cGUgICsgImNodW5rKSIpOworfQorCit2YXIg
YXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoMTYpOwordGVzdFJlYWRhYmxlU3RyZWFtQ2xv
bmUobmV3IEludDhBcnJheShhcnJheUJ1ZmZlciwgMSksICJJbnQ4QXJyYXkiKTsKK3Rlc3RSZWFk
YWJsZVN0cmVhbUNsb25lKG5ldyBJbnQxNkFycmF5KGFycmF5QnVmZmVyLCAyLCAyKSwgIkludDE2
QXJyYXkiKTsKK3Rlc3RSZWFkYWJsZVN0cmVhbUNsb25lKG5ldyBJbnQzMkFycmF5KGFycmF5QnVm
ZmVyKSwgIkludDMyQXJyYXkiKTsKK3Rlc3RSZWFkYWJsZVN0cmVhbUNsb25lKGFycmF5QnVmZmVy
LCAiQXJyYXlCdWZmZXIiKTsKK3Rlc3RSZWFkYWJsZVN0cmVhbUNsb25lKG5ldyBVaW50OEFycmF5
KGFycmF5QnVmZmVyKSwgIlVpbnQ4QXJyYXkiKTsKK3Rlc3RSZWFkYWJsZVN0cmVhbUNsb25lKG5l
dyBVaW50OENsYW1wZWRBcnJheShhcnJheUJ1ZmZlciksICJVaW50OENsYW1wZWRBcnJheSIpOwor
dGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUobmV3IFVpbnQxNkFycmF5KGFycmF5QnVmZmVyLCAyKSwg
IlVpbnQxNkFycmF5Iik7Cit0ZXN0UmVhZGFibGVTdHJlYW1DbG9uZShuZXcgVWludDMyQXJyYXko
YXJyYXlCdWZmZXIpLCAiVWludDMyQXJyYXkiKTsKK3Rlc3RSZWFkYWJsZVN0cmVhbUNsb25lKG5l
dyBGbG9hdDMyQXJyYXkoYXJyYXlCdWZmZXIpLCAiRmxvYXQzMkFycmF5Iik7Cit0ZXN0UmVhZGFi
bGVTdHJlYW1DbG9uZShuZXcgRmxvYXQ2NEFycmF5KGFycmF5QnVmZmVyKSwgIkZsb2F0NjRBcnJh
eSIpOwordGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUobmV3IERhdGFWaWV3KGFycmF5QnVmZmVyLCAy
LCA4KSwgIkRhdGFWaWV3Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25lLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2ZTg5NDU2M2RmNjJmMWIyYjZkYWRiYzBhYWRmMjZiYzUw
Y2JiMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACisKK1BBU1MgQ2hlY2sgUmVzcG9uc2UncyBj
bG9uZSB3aXRoIGRlZmF1bHQgdmFsdWVzLCB3aXRob3V0IGJvZHkKK1BBU1MgQ2hlY2sgUmVzcG9u
c2UncyBjbG9uZSBoYXMgdGhlIGV4cGVjdGVkIGF0dHJpYnV0ZSB2YWx1ZXMKK1BBU1MgQ2hlY2sg
b3JnaW5hbCByZXNwb25zZSdzIGJvZHkgYWZ0ZXIgY2xvbmluZworUEFTUyBDaGVjayBjbG9uZWQg
cmVzcG9uc2UncyBib2R5CitQQVNTIENhbm5vdCBjbG9uZSBhIGRpc3R1cmJlZCByZXNwb25zZQor
UEFTUyBDbG9uZWQgcmVzcG9uc2VzIHNob3VsZCBwcm92aWRlIHRoZSBzYW1lIGRhdGEKK1BBU1Mg
Q2FuY2VsbGluZyBzdHJlYW0gc2hvdWxkIG5vdCBhZmZlY3QgY2xvbmVkIG9uZQorUEFTUyBDaGVj
ayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJl
YW1zIChJbnQ4QXJyYXljaHVuaykKK1BBU1MgQ2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVj
dHVyZUNsb25lIGZvciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoSW50MTZBcnJheWNodW5rKQorUEFT
UyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFi
bGVTdHJlYW1zIChJbnQzMkFycmF5Y2h1bmspCitGQUlMIENoZWNrIHJlc3BvbnNlIGNsb25lIHVz
ZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMgKEFycmF5QnVmZmVyY2h1
bmspIGFzc2VydF9hcnJheV9lcXVhbHM6IENsb25lZCBidWZmZXIgY2h1bmtzIGhhdmUgdGhlIHNh
bWUgY29udGVudCB2YWx1ZSBpcyBvYmplY3QgIltvYmplY3QgQXJyYXlCdWZmZXJdIiwgZXhwZWN0
ZWQgYXJyYXkKK1BBU1MgQ2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZv
ciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoVWludDhBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNw
b25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChV
aW50OENsYW1wZWRBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3Ry
dWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChVaW50MTZBcnJheWNodW5rKQor
UEFTUyBDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVh
ZGFibGVTdHJlYW1zIChVaW50MzJBcnJheWNodW5rKQorUEFTUyBDaGVjayByZXNwb25zZSBjbG9u
ZSB1c2Ugc3RydWN0dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zIChGbG9hdDMyQXJy
YXljaHVuaykKK1BBU1MgQ2hlY2sgcmVzcG9uc2UgY2xvbmUgdXNlIHN0cnVjdHVyZUNsb25lIGZv
ciB0ZWVkIFJlYWRhYmxlU3RyZWFtcyAoRmxvYXQ2NEFycmF5Y2h1bmspCitGQUlMIENoZWNrIHJl
c3BvbnNlIGNsb25lIHVzZSBzdHJ1Y3R1cmVDbG9uZSBmb3IgdGVlZCBSZWFkYWJsZVN0cmVhbXMg
KERhdGFWaWV3Y2h1bmspIGFzc2VydF9hcnJheV9lcXVhbHM6IENsb25lZCBidWZmZXIgY2h1bmtz
IGhhdmUgdGhlIHNhbWUgY29udGVudCB2YWx1ZSBpcyBvYmplY3QgIltvYmplY3QgRGF0YVZpZXdd
IiwgZXhwZWN0ZWQgYXJyYXkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuYW55
Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuYW55Lndvcmtlci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCAr
MSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3Ry
dWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLWNsb25lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyMjUxNDE2
ODQ3NmY1ZTI5N2ZmMzkwMWFiYTJkZmE1YTYzM2RmZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDEzNyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVh
ZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJlc3BvbnNlIGNsb25l
PC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KLSAgICA8
bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVz
cG9uc2UiPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZy
YW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxi
b2R5PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdXRpbHMuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQ+Ci0gICAgICB2YXIgZGVmYXVsdFZhbHVlcyA9IHsgInR5cGUiIDogImRlZmF1
bHQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwiIDogIiIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm9rIiA6IHRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyIgOiAyMDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1c1Rl
eHQiIDogIiIKLSAgICAgIH07Ci0KLSAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSgp
OwotICAgICAgdmFyIGNsb25lZFJlc3BvbnNlID0gcmVzcG9uc2UuY2xvbmUoKTsKLSAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGZvciAodmFyIGF0dHJpYnV0ZU5hbWUgaW4gZGVmYXVs
dFZhbHVlcykgewotICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBkZWZhdWx0VmFsdWVz
W2F0dHJpYnV0ZU5hbWVdOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjbG9uZWRSZXNwb25z
ZVthdHRyaWJ1dGVOYW1lXSwgZXhwZWN0ZWRWYWx1ZSwKLSAgICAgICAgICAgICAgIkV4cGVjdCBk
ZWZhdWx0IHJlc3BvbnNlLiIgKyBhdHRyaWJ1dGVOYW1lICsgIiBpcyAiICsgZXhwZWN0ZWRWYWx1
ZSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJDaGVjayBSZXNwb25zZSdzIGNsb25lIHdpdGggZGVm
YXVsdCB2YWx1ZXMsIHdpdGhvdXQgYm9keSIpOwotCi0gICAgICB2YXIgYm9keSA9ICJUaGlzIGlz
IHJlc3BvbnNlIGJvZHkiOwotICAgICAgdmFyIGhlYWRlcnNJbml0ID0geyAibmFtZSIgOiAidmFs
dWUiIH07Ci0gICAgICB2YXIgcmVzcG9uc2VJbml0ICA9IHsgInN0YXR1cyIgOiAyMDAsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1c1RleHQiIDogIkdPT0QiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJoZWFkZXJzIiA6IGhlYWRlcnNJbml0Ci0gICAgICB9OwotICAg
ICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKGJvZHksIHJlc3BvbnNlSW5pdCk7Ci0gICAg
ICB2YXIgY2xvbmVkUmVzcG9uc2UgPSByZXNwb25zZS5jbG9uZSgpOwotICAgICAgdGVzdChmdW5j
dGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhjbG9uZWRSZXNwb25zZS5zdGF0dXMsIHJl
c3BvbnNlSW5pdFsic3RhdHVzIl0sCi0gICAgICAgICAgIkV4cGVjdCByZXNwb25zZS5zdGF0dXMg
aXMgIiArIHJlc3BvbnNlSW5pdFsic3RhdHVzIl0pOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGNs
b25lZFJlc3BvbnNlLnN0YXR1c1RleHQsIHJlc3BvbnNlSW5pdFsic3RhdHVzVGV4dCJdLAotICAg
ICAgICAgICJFeHBlY3QgcmVzcG9uc2Uuc3RhdHVzVGV4dCBpcyAiICsgcmVzcG9uc2VJbml0WyJz
dGF0dXNUZXh0Il0pOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGNsb25lZFJlc3BvbnNlLmhlYWRl
cnMuZ2V0KCJuYW1lIiksICJ2YWx1ZSIsCi0gICAgICAgICAgIkV4cGVjdCByZXNwb25zZS5oZWFk
ZXJzIGhhcyBuYW1lOnZhbHVlIGhlYWRlciIpOwotICAgICAgfSwgIkNoZWNrIFJlc3BvbnNlJ3Mg
Y2xvbmUgaGFzIHRoZSBleHBlY3RlZCBhdHRyaWJ1dGUgdmFsdWVzIik7Ci0KLSAgICAgIHByb21p
c2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgICAgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZy
b21TdHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgYm9keSk7Ci0gICAgICB9LCAiQ2hl
Y2sgb3JnaW5hbCByZXNwb25zZSdzIGJvZHkgYWZ0ZXIgY2xvbmluZyIpOwotCi0gICAgICBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgICAgICByZXR1cm4gdmFsaWRhdGVTdHJlYW1G
cm9tU3RyaW5nKGNsb25lZFJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCksIGJvZHkpOwotICAgICAg
fSwgIkNoZWNrIGNsb25lZCByZXNwb25zZSdzIGJvZHkiKTsKLQotICAgICAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIGRpc3R1cmJlZFJlc3BvbnNlID0gbmV3IFJl
c3BvbnNlKCJkYXRhIik7Ci0gICAgICAgIHJldHVybiBkaXN0dXJiZWRSZXNwb25zZS50ZXh0KCku
dGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKGRpc3R1cmJlZFJlc3Bv
bnNlLmJvZHlVc2VkLCAicmVzcG9uc2UgaXMgZGlzdHVyYmVkIik7Ci0gICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IGRpc3R1cmJlZFJlc3BvbnNlLmNs
b25lKCk7IH0sCi0gICAgICAgICAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOwot
ICAgICAgICB9KTsKLSAgICAgIH0sICJDYW5ub3QgY2xvbmUgYSBkaXN0dXJiZWQgcmVzcG9uc2Ui
KTsKLQotICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgICAgIHZhciBjbG9uZTsK
LSAgICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgdmFyIHJlc3BvbnNlOwotICAgICAgICByZXR1
cm4gZmV0Y2goJy4uL3Jlc291cmNlcy90cmlja2xlLnB5P2NvdW50PTImZGVsYXk9MTAwJykudGhl
bihmdW5jdGlvbihyZXMpIHsKLSAgICAgICAgICAgIGNsb25lID0gcmVzLmNsb25lKCk7Ci0gICAg
ICAgICAgICByZXNwb25zZSA9IHJlczsKLSAgICAgICAgICAgIHJldHVybiBjbG9uZS50ZXh0KCk7
Ci0gICAgICAgIH0pLnRoZW4oZnVuY3Rpb24ocikgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyLmxlbmd0aCwgMjYpOwotICAgICAgICAgICAgcmVzdWx0ID0gcjsKLSAgICAgICAgICAgIHJl
dHVybiByZXNwb25zZS50ZXh0KCk7Ci0gICAgICAgIH0pLnRoZW4oZnVuY3Rpb24ocikgewotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyLCByZXN1bHQsICJjbG9uZWQgcmVzcG9uc2VzIHNob3Vs
ZCBwcm92aWRlIHRoZSBzYW1lIGRhdGEiKTsKLSAgICAgICAgfSk7Ci0gICAgIH0sICdDbG9uZWQg
cmVzcG9uc2VzIHNob3VsZCBwcm92aWRlIHRoZSBzYW1lIGRhdGEnKTsKLQotICAgIHByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Ci0gICAgICAgIHZhciBjbG9uZTsKLSAgICAgICAgcmV0dXJuIGZl
dGNoKCcuLi9yZXNvdXJjZXMvdHJpY2tsZS5weT9jb3VudD0yJmRlbGF5PTEwMCcpLnRoZW4oZnVu
Y3Rpb24ocmVzKSB7Ci0gICAgICAgICAgICBjbG9uZSA9IHJlcy5jbG9uZSgpOwotICAgICAgICAg
ICAgcmVzLmJvZHkuY2FuY2VsKCk7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShyZXMuYm9keVVz
ZWQpOwotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGNsb25lLmJvZHlVc2VkKTsKLSAgICAgICAg
ICAgIHJldHVybiBjbG9uZS5hcnJheUJ1ZmZlcigpOwotICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
KHIpIHsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoci5ieXRlTGVuZ3RoLCAyNik7Ci0gICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShjbG9uZS5ib2R5VXNlZCk7Ci0gICAgICAgIH0pOwotICAgIH0s
ICdDYW5jZWxsaW5nIHN0cmVhbSBzaG91bGQgbm90IGFmZmVjdCBjbG9uZWQgb25lJyk7Ci0KLWZ1
bmN0aW9uIHRlc3RSZWFkYWJsZVN0cmVhbUNsb25lKGluaXRpYWxCdWZmZXIsIGJ1ZmZlclR5cGUp
Ci17Ci0gICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJlc3Bv
bnNlID0gbmV3IFJlc3BvbnNlKG5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQgOiBmdW5jdGlvbihj
b250cm9sbGVyKSB7Ci0gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoaW5pdGlhbEJ1ZmZl
cik7Ci0gICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7Ci0gICAgICAgIH19KSk7Ci0KLSAg
ICAgICAgdmFyIGNsb25lID0gcmVzcG9uc2UuY2xvbmUoKTsKLSAgICAgICAgdmFyIHN0cmVhbTEg
PSByZXNwb25zZS5ib2R5OwotICAgICAgICB2YXIgc3RyZWFtMiA9IGNsb25lLmJvZHk7Ci0KLSAg
ICAgICAgdmFyIGJ1ZmZlcjsKLSAgICAgICAgcmV0dXJuIHN0cmVhbTEuZ2V0UmVhZGVyKCkucmVh
ZCgpLnRoZW4oZnVuY3Rpb24oZGF0YSkgewotICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRhdGEu
ZG9uZSk7Ci0gICAgICAgICAgICBhc3NlcnRfdHJ1ZShkYXRhLnZhbHVlID09PSBpbml0aWFsQnVm
ZmVyLCAiQnVmZmVyIG9mIGJlaW5nLWNsb25lZCByZXNwb25zZSBzdHJlYW0gaXMgdGhlIHNhbWUg
YXMgdGhlIG9yaWdpbmFsIGJ1ZmZlciIpOwotICAgICAgICAgICAgcmV0dXJuIHN0cmVhbTIuZ2V0
UmVhZGVyKCkucmVhZCgpOwotICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAg
ICAgICAgIGFzc2VydF9mYWxzZShkYXRhLmRvbmUpOwotICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhkYXRhLnZhbHVlLCBpbml0aWFsQnVmZmVyLCAiQ2xvbmVkIGJ1ZmZlciBjaHVua3Mg
aGF2ZSB0aGUgc2FtZSBjb250ZW50Iik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKE9iamVj
dC5nZXRQcm90b3R5cGVPZihkYXRhLnZhbHVlKSwgT2JqZWN0LmdldFByb3RvdHlwZU9mKGluaXRp
YWxCdWZmZXIpLCAiQ2xvbmVkIGJ1ZmZlcnMgaGF2ZSB0aGUgc2FtZSB0eXBlIik7Ci0gICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShkYXRhLnZhbHVlICE9PSBpbml0aWFsQnVmZmVyLCAiQnVmZmVyIG9m
IGNsb25lZCByZXNwb25zZSBzdHJlYW0gaXMgYSBjbG9uZSBvZiB0aGUgb3JpZ2luYWwgYnVmZmVy
Iik7Ci0gICAgICAgIH0pOwotICAgIH0sICJDaGVjayByZXNwb25zZSBjbG9uZSB1c2Ugc3RydWN0
dXJlQ2xvbmUgZm9yIHRlZWQgUmVhZGFibGVTdHJlYW1zICgiICsgYnVmZmVyVHlwZSAgKyAiY2h1
bmspIik7Ci19Ci0KLXZhciBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigxNik7Ci10ZXN0
UmVhZGFibGVTdHJlYW1DbG9uZShuZXcgSW50OEFycmF5KGFycmF5QnVmZmVyLCAxKSwgIkludDhB
cnJheSIpOwotdGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUobmV3IEludDE2QXJyYXkoYXJyYXlCdWZm
ZXIsIDIsIDIpLCAiSW50MTZBcnJheSIpOwotdGVzdFJlYWRhYmxlU3RyZWFtQ2xvbmUobmV3IElu
dDMyQXJyYXkoYXJyYXlCdWZmZXIpLCAiSW50MzJBcnJheSIpOwotdGVzdFJlYWRhYmxlU3RyZWFt
Q2xvbmUoYXJyYXlCdWZmZXIsICJBcnJheUJ1ZmZlciIpOwotdGVzdFJlYWRhYmxlU3RyZWFtQ2xv
bmUobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpLCAiVWludDhBcnJheSIpOwotdGVzdFJlYWRh
YmxlU3RyZWFtQ2xvbmUobmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGFycmF5QnVmZmVyKSwgIlVpbnQ4
Q2xhbXBlZEFycmF5Iik7Ci10ZXN0UmVhZGFibGVTdHJlYW1DbG9uZShuZXcgVWludDE2QXJyYXko
YXJyYXlCdWZmZXIsIDIpLCAiVWludDE2QXJyYXkiKTsKLXRlc3RSZWFkYWJsZVN0cmVhbUNsb25l
KG5ldyBVaW50MzJBcnJheShhcnJheUJ1ZmZlciksICJVaW50MzJBcnJheSIpOwotdGVzdFJlYWRh
YmxlU3RyZWFtQ2xvbmUobmV3IEZsb2F0MzJBcnJheShhcnJheUJ1ZmZlciksICJGbG9hdDMyQXJy
YXkiKTsKLXRlc3RSZWFkYWJsZVN0cmVhbUNsb25lKG5ldyBGbG9hdDY0QXJyYXkoYXJyYXlCdWZm
ZXIpLCAiRmxvYXQ2NEFycmF5Iik7Ci10ZXN0UmVhZGFibGVTdHJlYW1DbG9uZShuZXcgRGF0YVZp
ZXcoYXJyYXlCdWZmZXIsIDIsIDgpLCAiRGF0YVZpZXciKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1lbXB0eS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk2OWU4MjU3Mzg4MjVjZjAwNDUyOTRlMDVl
MjllYmRiYTExNDhkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDE2ICswLDAgQEAKLQotUEFTUyBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keSBhcyB0
ZXh0Ci1QQVNTIENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGJsb2IKLVBBU1MgQ29uc3VtZSBy
ZXNwb25zZSdzIGJvZHkgYXMgYXJyYXlCdWZmZXIKLVBBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJv
ZHkgYXMganNvbiAoZXJyb3IgY2FzZSkKLUZBSUwgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMg
Zm9ybURhdGEgd2l0aCBjb3JyZWN0IG11bHRpcGFydCB0eXBlIChlcnJvciBjYXNlKSBwcm9taXNl
X3JlamVjdHNfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgdW5k
ZWZpbmVkIHdpdGggdHlwZSAidW5kZWZpbmVkIiwgbm90IGFuIG9iamVjdAotRkFJTCBDb25zdW1l
IHJlc3BvbnNlJ3MgYm9keSBhcyBmb3JtRGF0YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2RlZCB0eXBl
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQK
LUZBSUwgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgZm9ybURhdGEgd2l0aG91dCBjb3JyZWN0
IHR5cGUgKGVycm9yIGNhc2UpIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsgdGhyb3cgZSB9IiB0aHJldyB1bmRlZmluZWQgd2l0aCB0eXBlICJ1bmRlZmluZWQiLCBu
b3QgYW4gb2JqZWN0Ci1QQVNTIENvbnN1bWUgZW1wdHkgYmxvYiByZXNwb25zZSBib2R5IGFzIGFy
cmF5QnVmZmVyCi1QQVNTIENvbnN1bWUgZW1wdHkgdGV4dCByZXNwb25zZSBib2R5IGFzIGFycmF5
QnVmZmVyCi1QQVNTIENvbnN1bWUgZW1wdHkgYmxvYiByZXNwb25zZSBib2R5IGFzIHRleHQKLVBB
U1MgQ29uc3VtZSBlbXB0eSB0ZXh0IHJlc3BvbnNlIGJvZHkgYXMgdGV4dAotUEFTUyBDb25zdW1l
IGVtcHR5IFVSTFNlYXJjaFBhcmFtcyByZXNwb25zZSBib2R5IGFzIHRleHQKLUZBSUwgQ29uc3Vt
ZSBlbXB0eSBGb3JtRGF0YSByZXNwb25zZSBib2R5IGFzIHRleHQgYXNzZXJ0X2VxdWFsczogUmVz
b2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5IGV4cGVjdGVkIDAgYnV0IGdvdCA0NAotUEFTUyBD
b25zdW1lIGVtcHR5IEFycmF5QnVmZmVyIHJlc3BvbnNlIGJvZHkgYXMgdGV4dAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk2
OWU4MjU3Mzg4MjVjZjAwNDUyOTRlMDVlMjllYmRiYTExNDhkMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1wdHkuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE2IEBACisKK1BBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgdGV4dAorUEFTUyBDb25z
dW1lIHJlc3BvbnNlJ3MgYm9keSBhcyBibG9iCitQQVNTIENvbnN1bWUgcmVzcG9uc2UncyBib2R5
IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGpzb24gKGVy
cm9yIGNhc2UpCitGQUlMIENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGZvcm1EYXRhIHdpdGgg
Y29ycmVjdCBtdWx0aXBhcnQgdHlwZSAoZXJyb3IgY2FzZSkgcHJvbWlzZV9yZWplY3RzX2pzOiBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IHVuZGVmaW5lZCB3aXRoIHR5
cGUgInVuZGVmaW5lZCIsIG5vdCBhbiBvYmplY3QKK0ZBSUwgQ29uc3VtZSByZXNwb25zZSdzIGJv
ZHkgYXMgZm9ybURhdGEgd2l0aCBjb3JyZWN0IHVybGVuY29kZWQgdHlwZSBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCitGQUlMIENvbnN1bWUg
cmVzcG9uc2UncyBib2R5IGFzIGZvcm1EYXRhIHdpdGhvdXQgY29ycmVjdCB0eXBlIChlcnJvciBj
YXNlKSBwcm9taXNlX3JlamVjdHNfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUg
fSIgdGhyZXcgdW5kZWZpbmVkIHdpdGggdHlwZSAidW5kZWZpbmVkIiwgbm90IGFuIG9iamVjdAor
UEFTUyBDb25zdW1lIGVtcHR5IGJsb2IgcmVzcG9uc2UgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFT
UyBDb25zdW1lIGVtcHR5IHRleHQgcmVzcG9uc2UgYm9keSBhcyBhcnJheUJ1ZmZlcgorUEFTUyBD
b25zdW1lIGVtcHR5IGJsb2IgcmVzcG9uc2UgYm9keSBhcyB0ZXh0CitQQVNTIENvbnN1bWUgZW1w
dHkgdGV4dCByZXNwb25zZSBib2R5IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBlbXB0eSBVUkxTZWFy
Y2hQYXJhbXMgcmVzcG9uc2UgYm9keSBhcyB0ZXh0CitGQUlMIENvbnN1bWUgZW1wdHkgRm9ybURh
dGEgcmVzcG9uc2UgYm9keSBhcyB0ZXh0IGFzc2VydF9lcXVhbHM6IFJlc29sdmVkIHZhbHVlIHNo
b3VsZCBiZSBlbXB0eSBleHBlY3RlZCAwIGJ1dCBnb3QgNDQKK1BBU1MgQ29uc3VtZSBlbXB0eSBB
cnJheUJ1ZmZlciByZXNwb25zZSBib2R5IGFzIHRleHQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtY29uc3VtZS1lbXB0eS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1w
dHkuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4
MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1wdHku
YW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29u
c3VtZS1lbXB0eS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LmFueS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wZmE4NWVjYmNiMmQ3YjkwOTMzMDdiMTg5YzM5MmFhOWM1MjhkOWM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1lbXB0eS5hbnkuanMKQEAgLTAs
MCArMSw5OSBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxl
PVJlc3BvbnNlIGNvbnN1bWUgZW1wdHkgYm9kaWVzCisKK2Z1bmN0aW9uIGNoZWNrQm9keVRleHQo
dGVzdCwgcmVzcG9uc2UpIHsKKyAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKGZ1bmN0aW9u
KGJvZHlBc1RleHQpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGJvZHlBc1RleHQsICIiLCAiUmVzb2x2
ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7CisgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJv
ZHlVc2VkKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrQm9keUJsb2IodGVzdCwgcmVzcG9u
c2UpIHsKKyAgcmV0dXJuIHJlc3BvbnNlLmJsb2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2Ip
IHsKKyAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CisgICAgICByZWFkZXIu
b25sb2FkID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCkK
KyAgICAgIH07CisgICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICBy
ZWplY3QoIkJsb2IncyByZWFkZXIgZmFpbGVkIik7CisgICAgICB9OworICAgICAgcmVhZGVyLnJl
YWRBc1RleHQoYm9keUFzQmxvYik7CisgICAgfSk7CisgICAgcmV0dXJuIHByb21pc2UudGhlbihm
dW5jdGlvbihib2R5KSB7CisgICAgICBhc3NlcnRfZXF1YWxzKGJvZHksICIiLCAiUmVzb2x2ZWQg
dmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7CisgICAgICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9k
eVVzZWQpOworICAgIH0pOworICB9KTsKK30KKworZnVuY3Rpb24gY2hlY2tCb2R5QXJyYXlCdWZm
ZXIodGVzdCwgcmVzcG9uc2UpIHsKKyAgcmV0dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCkudGhl
bihmdW5jdGlvbihib2R5QXNBcnJheUJ1ZmZlcikgeworICAgIGFzc2VydF9lcXVhbHMoYm9keUFz
QXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCwgMCwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0
eSIpOworICAgIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCk7CisgIH0pOworfQorCitm
dW5jdGlvbiBjaGVja0JvZHlKU09OKHRlc3QsIHJlc3BvbnNlKSB7CisgIHJldHVybiByZXNwb25z
ZS5qc29uKCkudGhlbigKKyAgICBmdW5jdGlvbihib2R5QXNKU09OKSB7CisgICAgICBhc3NlcnRf
dW5yZWFjaGVkKCJKU09OIHBhcnNpbmcgc2hvdWxkIGZhaWwiKTsKKyAgICB9LAorICAgIGZ1bmN0
aW9uKCkgeworICAgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkKTsKKyAgICB9KTsK
K30KKworZnVuY3Rpb24gY2hlY2tCb2R5Rm9ybURhdGEodGVzdCwgcmVzcG9uc2UpIHsKKyAgcmV0
dXJuIHJlc3BvbnNlLmZvcm1EYXRhKCkudGhlbihmdW5jdGlvbihib2R5QXNGb3JtRGF0YSkgewor
ICAgIGFzc2VydF90cnVlKGJvZHlBc0Zvcm1EYXRhIGluc3RhbmNlb2YgRm9ybURhdGEsICJTaG91
bGQgcmVjZWl2ZSBhIEZvcm1EYXRhIik7CisgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlV
c2VkKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrQm9keUZvcm1EYXRhRXJyb3IodGVzdCwg
cmVzcG9uc2UpIHsKKyAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3Is
IHJlc3BvbnNlLmZvcm1EYXRhKCkpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X2ZhbHNl
KHJlc3BvbnNlLmJvZHlVc2VkKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrUmVzcG9uc2VX
aXRoTm9Cb2R5KGJvZHlUeXBlLCBjaGVja0Z1bmN0aW9uLCBoZWFkZXJzID0gW10pIHsKKyAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9u
c2UodW5kZWZpbmVkLCB7ICJoZWFkZXJzIjogaGVhZGVycyB9KTsKKyAgICBhc3NlcnRfZmFsc2Uo
cmVzcG9uc2UuYm9keVVzZWQpOworICAgIHJldHVybiBjaGVja0Z1bmN0aW9uKHRlc3QsIHJlc3Bv
bnNlKTsKKyAgfSwgIkNvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzICIgKyBib2R5VHlwZSk7Cit9
CisKK2NoZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KCJ0ZXh0IiwgY2hlY2tCb2R5VGV4dCk7CitjaGVj
a1Jlc3BvbnNlV2l0aE5vQm9keSgiYmxvYiIsIGNoZWNrQm9keUJsb2IpOworY2hlY2tSZXNwb25z
ZVdpdGhOb0JvZHkoImFycmF5QnVmZmVyIiwgY2hlY2tCb2R5QXJyYXlCdWZmZXIpOworY2hlY2tS
ZXNwb25zZVdpdGhOb0JvZHkoImpzb24gKGVycm9yIGNhc2UpIiwgY2hlY2tCb2R5SlNPTik7Citj
aGVja1Jlc3BvbnNlV2l0aE5vQm9keSgiZm9ybURhdGEgd2l0aCBjb3JyZWN0IG11bHRpcGFydCB0
eXBlIChlcnJvciBjYXNlKSIsIGNoZWNrQm9keUZvcm1EYXRhRXJyb3IsIFtbIkNvbnRlbnQtVHlw
ZSIsICdtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iYm91bmRhcnkiJ11dKTsKK2NoZWNr
UmVzcG9uc2VXaXRoTm9Cb2R5KCJmb3JtRGF0YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2RlZCB0eXBl
IiwgY2hlY2tCb2R5Rm9ybURhdGEsIFtbIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi94LXd3
dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCJdXSk7CitjaGVja1Jlc3BvbnNlV2l0aE5v
Qm9keSgiZm9ybURhdGEgd2l0aG91dCBjb3JyZWN0IHR5cGUgKGVycm9yIGNhc2UpIiwgY2hlY2tC
b2R5Rm9ybURhdGFFcnJvcik7CisKK2Z1bmN0aW9uIGNoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5
KGJvZHlUeXBlLCBib2R5LCBhc1RleHQpIHsKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3Qp
IHsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSk7CisgICAgYXNzZXJ0X2Zh
bHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOworICAg
IGlmIChhc1RleHQpIHsKKyAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlv
bihib2R5QXNTdHJpbmcpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhib2R5QXNTdHJpbmcubGVu
Z3RoLCAwLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7CisgICAgICAgIGFzc2Vy
dF90cnVlKHJlc3BvbnNlLmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgdHJ1ZSBhZnRlciBiZWluZyBj
b25zdW1lZCIpOworICAgICAgfSk7CisgICAgfQorICAgIHJldHVybiByZXNwb25zZS5hcnJheUJ1
ZmZlcigpLnRoZW4oZnVuY3Rpb24oYm9keUFzQXJyYXlCdWZmZXIpIHsKKyAgICAgIGFzc2VydF9l
cXVhbHMoYm9keUFzQXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCwgMCwgIlJlc29sdmVkIHZhbHVlIHNo
b3VsZCBiZSBlbXB0eSIpOworICAgICAgYXNzZXJ0X3RydWUocmVzcG9uc2UuYm9keVVzZWQsICJi
b2R5VXNlZCBpcyB0cnVlIGFmdGVyIGJlaW5nIGNvbnN1bWVkIik7CisgICAgfSk7CisgIH0sICJD
b25zdW1lIGVtcHR5ICIgKyBib2R5VHlwZSArICIgcmVzcG9uc2UgYm9keSBhcyAiICsgKGFzVGV4
dCA/ICJ0ZXh0IiA6ICJhcnJheUJ1ZmZlciIpKTsKK30KKworY2hlY2tSZXNwb25zZVdpdGhFbXB0
eUJvZHkoImJsb2IiLCBuZXcgQmxvYihbXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSksIGZh
bHNlKTsKK2NoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJ0ZXh0IiwgIiIsIGZhbHNlKTsKK2No
ZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJibG9iIiwgbmV3IEJsb2IoW10sIHsgInR5cGUiIDog
InRleHQvcGxhaW4iIH0pLCB0cnVlKTsKK2NoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJ0ZXh0
IiwgIiIsIHRydWUpOworY2hlY2tSZXNwb25zZVdpdGhFbXB0eUJvZHkoIlVSTFNlYXJjaFBhcmFt
cyIsIG5ldyBVUkxTZWFyY2hQYXJhbXMoIiIpLCB0cnVlKTsKK2NoZWNrUmVzcG9uc2VXaXRoRW1w
dHlCb2R5KCJGb3JtRGF0YSIsIG5ldyBGb3JtRGF0YSgpLCB0cnVlKTsKK2NoZWNrUmVzcG9uc2VX
aXRoRW1wdHlCb2R5KCJBcnJheUJ1ZmZlciIsIG5ldyBBcnJheUJ1ZmZlcigpLCB0cnVlKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1wdHkuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU5NjllODI1NzM4ODI1Y2YwMDQ1Mjk0ZTA1ZTI5ZWJkYmExMTQ4ZDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKKworUEFTUyBDb25zdW1lIHJlc3BvbnNl
J3MgYm9keSBhcyB0ZXh0CitQQVNTIENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGJsb2IKK1BB
U1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgYXJyYXlCdWZmZXIKK1BBU1MgQ29uc3VtZSBy
ZXNwb25zZSdzIGJvZHkgYXMganNvbiAoZXJyb3IgY2FzZSkKK0ZBSUwgQ29uc3VtZSByZXNwb25z
ZSdzIGJvZHkgYXMgZm9ybURhdGEgd2l0aCBjb3JyZWN0IG11bHRpcGFydCB0eXBlIChlcnJvciBj
YXNlKSBwcm9taXNlX3JlamVjdHNfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUg
fSIgdGhyZXcgdW5kZWZpbmVkIHdpdGggdHlwZSAidW5kZWZpbmVkIiwgbm90IGFuIG9iamVjdAor
RkFJTCBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keSBhcyBmb3JtRGF0YSB3aXRoIGNvcnJlY3QgdXJs
ZW5jb2RlZCB0eXBlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiB1bmRlZmluZWQKK0ZBSUwgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgZm9ybURhdGEgd2l0
aG91dCBjb3JyZWN0IHR5cGUgKGVycm9yIGNhc2UpIHByb21pc2VfcmVqZWN0c19qczogZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyB1bmRlZmluZWQgd2l0aCB0eXBlICJ1
bmRlZmluZWQiLCBub3QgYW4gb2JqZWN0CitQQVNTIENvbnN1bWUgZW1wdHkgYmxvYiByZXNwb25z
ZSBib2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgZW1wdHkgdGV4dCByZXNwb25zZSBi
b2R5IGFzIGFycmF5QnVmZmVyCitQQVNTIENvbnN1bWUgZW1wdHkgYmxvYiByZXNwb25zZSBib2R5
IGFzIHRleHQKK1BBU1MgQ29uc3VtZSBlbXB0eSB0ZXh0IHJlc3BvbnNlIGJvZHkgYXMgdGV4dAor
UEFTUyBDb25zdW1lIGVtcHR5IFVSTFNlYXJjaFBhcmFtcyByZXNwb25zZSBib2R5IGFzIHRleHQK
K0ZBSUwgQ29uc3VtZSBlbXB0eSBGb3JtRGF0YSByZXNwb25zZSBib2R5IGFzIHRleHQgYXNzZXJ0
X2VxdWFsczogUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5IGV4cGVjdGVkIDAgYnV0IGdv
dCA0NAorUEFTUyBDb25zdW1lIGVtcHR5IEFycmF5QnVmZmVyIHJlc3BvbnNlIGJvZHkgYXMgdGV4
dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LmFueS53b3JrZXIu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1wdHkuYW55Lndvcmtlci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LmFueS53b3JrZXIuaHRtbApA
QCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3Qg
aW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGY1ODdlNjM1YzY1NWExM2M0Y2I3MDVkY2I5NzU2YzYwMzYzMmE1OTcu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtY29uc3VtZS1lbXB0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAK
LTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KLSAgICA8dGl0bGU+UmVzcG9uc2UgY29uc3VtZSBlbXB0eSBib2RpZXM8L3RpdGxlPgot
ICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3Jn
LyNyZXNwb25zZSI+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5z
cGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0
bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZy
Ij4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gY2hl
Y2tCb2R5VGV4dCh0ZXN0LCByZXNwb25zZSkgewotICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQo
KS50aGVuKGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhib2R5
QXNUZXh0LCAiIiwgIlJlc29sdmVkIHZhbHVlIHNob3VsZCBiZSBlbXB0eSIpOwotICAgICAgICBh
c3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQpOwotICAgICAgfSk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gY2hlY2tCb2R5QmxvYih0ZXN0LCByZXNwb25zZSkgewotICAgICAgcmV0dXJuIHJl
c3BvbnNlLmJsb2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2IpIHsKLSAgICAgICAgdmFyIHBy
b21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAg
ICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKLSAgICAgICAgICByZWFkZXIub25sb2Fk
ID0gZnVuY3Rpb24oZXZ0KSB7Ci0gICAgICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQpCi0g
ICAgICAgICAgfTsKLSAgICAgICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgcmVqZWN0KCJCbG9iJ3MgcmVhZGVyIGZhaWxlZCIpOwotICAgICAgICAgIH07Ci0g
ICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYm9keUFzQmxvYik7Ci0gICAgICAgIH0pOwotICAg
ICAgICByZXR1cm4gcHJvbWlzZS50aGVuKGZ1bmN0aW9uKGJvZHkpIHsKLSAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGJvZHksICIiLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIGVtcHR5Iik7Ci0g
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkKTsKLSAgICAgICAgfSk7Ci0g
ICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVja0JvZHlBcnJheUJ1ZmZlcih0ZXN0
LCByZXNwb25zZSkgewotICAgICAgcmV0dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCkudGhlbihm
dW5jdGlvbihib2R5QXNBcnJheUJ1ZmZlcikgewotICAgICAgICBhc3NlcnRfZXF1YWxzKGJvZHlB
c0FycmF5QnVmZmVyLmJ5dGVMZW5ndGgsIDAsICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1w
dHkiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkKTsKLSAgICAgIH0p
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNoZWNrQm9keUpTT04odGVzdCwgcmVzcG9uc2UpIHsK
LSAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCkudGhlbigKLSAgICAgICAgZnVuY3Rpb24oYm9k
eUFzSlNPTikgewotICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIkpTT04gcGFyc2luZyBzaG91
bGQgZmFpbCIpOwotICAgICAgICB9LAotICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICBh
c3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBjaGVja0JvZHlGb3JtRGF0YSh0ZXN0LCByZXNwb25zZSkgewotICAgICAgcmV0
dXJuIHJlc3BvbnNlLmZvcm1EYXRhKCkudGhlbihmdW5jdGlvbihib2R5QXNGb3JtRGF0YSkgewot
ICAgICAgICBhc3NlcnRfdHJ1ZShib2R5QXNGb3JtRGF0YSBpbnN0YW5jZW9mIEZvcm1EYXRhLCAi
U2hvdWxkIHJlY2VpdmUgYSBGb3JtRGF0YSIpOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVzcG9u
c2UuYm9keVVzZWQpOwotICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVja0JvZHlG
b3JtRGF0YUVycm9yKHRlc3QsIHJlc3BvbnNlKSB7Ci0gICAgICByZXR1cm4gcHJvbWlzZV9yZWpl
Y3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcmVzcG9uc2UuZm9ybURhdGEoKSkudGhlbihmdW5jdGlv
bigpIHsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkKTsKLSAgICAgIH0p
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNoZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KGJvZHlUeXBl
LCBjaGVja0Z1bmN0aW9uLCBoZWFkZXJzID0gW10pIHsKLSAgICAgIHByb21pc2VfdGVzdChmdW5j
dGlvbih0ZXN0KSB7Ci0gICAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSh1bmRlZmlu
ZWQsIHsgImhlYWRlcnMiOiBoZWFkZXJzIH0pOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVzcG9u
c2UuYm9keVVzZWQpOwotICAgICAgICByZXR1cm4gY2hlY2tGdW5jdGlvbih0ZXN0LCByZXNwb25z
ZSk7Ci0gICAgICB9LCAiQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgIiArIGJvZHlUeXBlKTsK
LSAgICB9Ci0KLSAgICBjaGVja1Jlc3BvbnNlV2l0aE5vQm9keSgidGV4dCIsIGNoZWNrQm9keVRl
eHQpOwotICAgIGNoZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KCJibG9iIiwgY2hlY2tCb2R5QmxvYik7
Ci0gICAgY2hlY2tSZXNwb25zZVdpdGhOb0JvZHkoImFycmF5QnVmZmVyIiwgY2hlY2tCb2R5QXJy
YXlCdWZmZXIpOwotICAgIGNoZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KCJqc29uIChlcnJvciBjYXNl
KSIsIGNoZWNrQm9keUpTT04pOwotICAgIGNoZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KCJmb3JtRGF0
YSB3aXRoIGNvcnJlY3QgbXVsdGlwYXJ0IHR5cGUgKGVycm9yIGNhc2UpIiwgY2hlY2tCb2R5Rm9y
bURhdGFFcnJvciwgW1siQ29udGVudC1UeXBlIiwgJ211bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5k
YXJ5PSJib3VuZGFyeSInXV0pOwotICAgIGNoZWNrUmVzcG9uc2VXaXRoTm9Cb2R5KCJmb3JtRGF0
YSB3aXRoIGNvcnJlY3QgdXJsZW5jb2RlZCB0eXBlIiwgY2hlY2tCb2R5Rm9ybURhdGEsIFtbIkNv
bnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1V
VEYtOCJdXSk7Ci0gICAgY2hlY2tSZXNwb25zZVdpdGhOb0JvZHkoImZvcm1EYXRhIHdpdGhvdXQg
Y29ycmVjdCB0eXBlIChlcnJvciBjYXNlKSIsIGNoZWNrQm9keUZvcm1EYXRhRXJyb3IpOwotCi0g
ICAgZnVuY3Rpb24gY2hlY2tSZXNwb25zZVdpdGhFbXB0eUJvZHkoYm9keVR5cGUsIGJvZHksIGFz
VGV4dCkgewotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICAgICAgdmFy
IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKGJvZHkpOwotICAgICAgICBhc3NlcnRfZmFsc2UocmVz
cG9uc2UuYm9keVVzZWQsICJib2R5VXNlZCBpcyBmYWxzZSBhdCBpbml0Iik7Ci0gICAgICAgIGlm
IChhc1RleHQpIHsKLSAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rp
b24oYm9keUFzU3RyaW5nKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJvZHlBc1N0cmlu
Zy5sZW5ndGgsIDAsICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkiKTsKLSAgICAgICAg
ICAgIGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgdHJ1ZSBhZnRl
ciBiZWluZyBjb25zdW1lZCIpOwotICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiByZXNwb25zZS5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oYm9keUFzQXJyYXlCdWZm
ZXIpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJvZHlBc0FycmF5QnVmZmVyLmJ5dGVMZW5n
dGgsIDAsICJSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUgZW1wdHkiKTsKLSAgICAgICAgICBhc3Nl
cnRfdHJ1ZShyZXNwb25zZS5ib2R5VXNlZCwgImJvZHlVc2VkIGlzIHRydWUgYWZ0ZXIgYmVpbmcg
Y29uc3VtZWQiKTsKLSAgICAgICAgfSk7Ci0gICAgICB9LCAiQ29uc3VtZSBlbXB0eSAiICsgYm9k
eVR5cGUgKyAiIHJlc3BvbnNlIGJvZHkgYXMgIiArIChhc1RleHQgPyAidGV4dCIgOiAiYXJyYXlC
dWZmZXIiKSk7Ci0gICAgfQotCi0gICAgY2hlY2tSZXNwb25zZVdpdGhFbXB0eUJvZHkoImJsb2Ii
LCBuZXcgQmxvYihbXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSksIGZhbHNlKTsKLSAgICBj
aGVja1Jlc3BvbnNlV2l0aEVtcHR5Qm9keSgidGV4dCIsICIiLCBmYWxzZSk7Ci0gICAgY2hlY2tS
ZXNwb25zZVdpdGhFbXB0eUJvZHkoImJsb2IiLCBuZXcgQmxvYihbXSwgeyAidHlwZSIgOiAidGV4
dC9wbGFpbiIgfSksIHRydWUpOwotICAgIGNoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJ0ZXh0
IiwgIiIsIHRydWUpOwotICAgIGNoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJVUkxTZWFyY2hQ
YXJhbXMiLCBuZXcgVVJMU2VhcmNoUGFyYW1zKCIiKSwgdHJ1ZSk7Ci0gICAgY2hlY2tSZXNwb25z
ZVdpdGhFbXB0eUJvZHkoIkZvcm1EYXRhIiwgbmV3IEZvcm1EYXRhKCksIHRydWUpOwotICAgIGNo
ZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJBcnJheUJ1ZmZlciIsIG5ldyBBcnJheUJ1ZmZlcigp
LCB0cnVlKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY29uc3VtZS1zdHJlYW0tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4NGE2OWQ3NWM1MWFlNjVhMzIwNjgzOWJmMDBkOWNlYTI4ODVhNmY3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1
bWUtc3RyZWFtLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLQot
UEFTUyBSZWFkIGVtcHR5IHRleHQgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCi1Q
QVNTIFJlYWQgZW1wdHkgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KLVBB
U1MgUmVhZCBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQotUEFTUyBSZWFk
IHRleHQgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCi1QQVNTIFJlYWQgVVJMU2Vh
cmNoUGFyYW1zIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQotUEFTUyBSZWFkIGFy
cmF5IGJ1ZmZlciByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KLUZBSUwgUmVhZCBm
b3JtIGRhdGEgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9y
OiBOb3QgaW1wbGVtZW50ZWQiCi1QQVNTIEdldHRpbmcgYW4gZXJyb3IgUmVzcG9uc2Ugc3RyZWFt
Ci1QQVNTIEdldHRpbmcgYSByZWRpcmVjdCBSZXNwb25zZSBzdHJlYW0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODRhNjlk
NzVjNTFhZTY1YTMyMDY4MzliZjAwZDljZWEyODg1YTZmNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MSBAQAorCitQQVNTIFJlYWQgZW1wdHkgdGV4dCByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVT
dHJlYW0KK1BBU1MgUmVhZCBlbXB0eSBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0
cmVhbQorUEFTUyBSZWFkIGJsb2IgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCitQ
QVNTIFJlYWQgdGV4dCByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KK1BBU1MgUmVh
ZCBVUkxTZWFyY2hQYXJhbXMgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCitQQVNT
IFJlYWQgYXJyYXkgYnVmZmVyIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQorRkFJ
TCBSZWFkIGZvcm0gZGF0YSByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9y
dGVkRXJyb3I6IE5vdCBpbXBsZW1lbnRlZCIKK1BBU1MgR2V0dGluZyBhbiBlcnJvciBSZXNwb25z
ZSBzdHJlYW0KK1BBU1MgR2V0dGluZyBhIHJlZGlyZWN0IFJlc3BvbnNlIHN0cmVhbQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS5hbnkuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkz
YjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1jb25zdW1lLXN0cmVhbS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1j
b25zdW1lLXN0cmVhbS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDViMGMzODhjYzc1YjZlZDVmY2UzZGYy
MWYzZWNjZWI4YWM2MDZkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1
bWUtc3RyZWFtLmFueS5qcwpAQCAtMCwwICsxLDU5IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93
LHdvcmtlcgorLy8gTUVUQTogdGl0bGU9UmVzcG9uc2UgY29uc3VtZQorLy8gTUVUQTogc2NyaXB0
PS4uL3Jlc291cmNlcy91dGlscy5qcworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewor
ICAgIHZhciBib2R5ID0gIiI7CisgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCIiKTsK
KyAgICByZXR1cm4gdmFsaWRhdGVTdHJlYW1Gcm9tU3RyaW5nKHJlc3BvbnNlLmJvZHkuZ2V0UmVh
ZGVyKCksICIiKTsKK30sICJSZWFkIGVtcHR5IHRleHQgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRh
YmxlU3RyZWFtIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIHJl
c3BvbnNlID0gbmV3IFJlc3BvbnNlKG5ldyBCbG9iKFtdLCB7ICJ0eXBlIiA6ICJ0ZXh0L3BsYWlu
IiB9KSk7CisgICAgcmV0dXJuIHZhbGlkYXRlU3RyZWFtRnJvbVN0cmluZyhyZXNwb25zZS5ib2R5
LmdldFJlYWRlcigpLCAiIik7Cit9LCAiUmVhZCBlbXB0eSBibG9iIHJlc3BvbnNlJ3MgYm9keSBh
cyByZWFkYWJsZVN0cmVhbSIpOworCit2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKK2Zv
cm1EYXRhLmFwcGVuZCgibmFtZSIsICJ2YWx1ZSIpOwordmFyIHRleHREYXRhID0gSlNPTi5zdHJp
bmdpZnkoIlRoaXMgaXMgcmVzcG9uc2UncyBib2R5Iik7Cit2YXIgYmxvYiA9IG5ldyBCbG9iKFt0
ZXh0RGF0YV0sIHsgInR5cGUiIDogInRleHQvcGxhaW4iIH0pOwordmFyIHVybFNlYXJjaFBhcmFt
c0RhdGEgPSAibmFtZT12YWx1ZSI7Cit2YXIgdXJsU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJj
aFBhcmFtcyh1cmxTZWFyY2hQYXJhbXNEYXRhKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRl
c3QpIHsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYmxvYik7CisgICAgcmV0dXJu
IHZhbGlkYXRlU3RyZWFtRnJvbVN0cmluZyhyZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLCB0ZXh0
RGF0YSk7Cit9LCAiUmVhZCBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSIp
OworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZhciByZXNwb25zZSA9IG5l
dyBSZXNwb25zZSh0ZXh0RGF0YSk7CisgICAgcmV0dXJuIHZhbGlkYXRlU3RyZWFtRnJvbVN0cmlu
ZyhyZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLCB0ZXh0RGF0YSk7Cit9LCAiUmVhZCB0ZXh0IHJl
c3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odGVzdCkgeworICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSh1cmxTZWFyY2hQYXJh
bXMpOworICAgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmcocmVzcG9uc2UuYm9keS5n
ZXRSZWFkZXIoKSwgdXJsU2VhcmNoUGFyYW1zRGF0YSk7Cit9LCAiUmVhZCBVUkxTZWFyY2hQYXJh
bXMgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIik7CisKK3Byb21pc2VfdGVzdChm
dW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHRl
eHREYXRhLmxlbmd0aCk7CisgICAgdmFyIGludDhBcnJheSA9IG5ldyBJbnQ4QXJyYXkoYXJyYXlC
dWZmZXIpOworICAgIGZvciAodmFyIGNwdHIgPSAwOyBjcHRyIDwgdGV4dERhdGEubGVuZ3RoOyBj
cHRyKyspCisgICAgICAgIGludDhBcnJheVtjcHRyXSA9IHRleHREYXRhLmNoYXJDb2RlQXQoY3B0
cik7CisKKyAgICByZXR1cm4gdmFsaWRhdGVTdHJlYW1Gcm9tU3RyaW5nKG5ldyBSZXNwb25zZShh
cnJheUJ1ZmZlcikuYm9keS5nZXRSZWFkZXIoKSwgdGV4dERhdGEpOworfSwgIlJlYWQgYXJyYXkg
YnVmZmVyIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSIpOworCitwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odGVzdCkgeworICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZShmb3Jt
RGF0YSk7CisgICAgcmV0dXJuIHZhbGlkYXRlU3RyZWFtRnJvbVBhcnRpYWxTdHJpbmcocmVzcG9u
c2UuYm9keS5nZXRSZWFkZXIoKSwKKyAgICAgICJDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRh
dGE7IG5hbWU9XCJuYW1lXCJcclxuXHJcbnZhbHVlIik7Cit9LCAiUmVhZCBmb3JtIGRhdGEgcmVz
cG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgYXNzZXJ0X2VxdWFscyhSZXNwb25zZS5lcnJvcigpLmJvZHksIG51bGwpOworfSwgIkdldHRp
bmcgYW4gZXJyb3IgUmVzcG9uc2Ugc3RyZWFtIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAg
YXNzZXJ0X2VxdWFscyhSZXNwb25zZS5yZWRpcmVjdCgiLyIpLmJvZHksIG51bGwpOworfSwgIkdl
dHRpbmcgYSByZWRpcmVjdCBSZXNwb25zZSBzdHJlYW0iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtY29uc3VtZS1zdHJlYW0uYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODRhNjlkNzVjNTFhZTY1YTMyMDY4MzliZjAwZDljZWEyODg1YTZmNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKKworUEFTUyBSZWFkIGVtcHR5IHRleHQgcmVzcG9uc2UncyBib2R5
IGFzIHJlYWRhYmxlU3RyZWFtCitQQVNTIFJlYWQgZW1wdHkgYmxvYiByZXNwb25zZSdzIGJvZHkg
YXMgcmVhZGFibGVTdHJlYW0KK1BBU1MgUmVhZCBibG9iIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFk
YWJsZVN0cmVhbQorUEFTUyBSZWFkIHRleHQgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3Ry
ZWFtCitQQVNTIFJlYWQgVVJMU2VhcmNoUGFyYW1zIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJs
ZVN0cmVhbQorUEFTUyBSZWFkIGFycmF5IGJ1ZmZlciByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFi
bGVTdHJlYW0KK0ZBSUwgUmVhZCBmb3JtIGRhdGEgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxl
U3RyZWFtIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIk5vdFN1cHBvcnRlZEVycm9yOiBOb3QgaW1wbGVtZW50ZWQiCitQQVNTIEdldHRpbmcgYW4g
ZXJyb3IgUmVzcG9uc2Ugc3RyZWFtCitQQVNTIEdldHRpbmcgYSByZWRpcmVjdCBSZXNwb25zZSBz
dHJlYW0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55Lndv
cmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55Lndvcmtlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS5hbnkud29ya2Vy
Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktp
dCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3Vt
ZS1zdHJlYW0uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhOTdmYTBjOTBmNDhiZGFjMDhiMGFkYjI3ZTJkOGE2
MTllOTc2MjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc0
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+UmVzcG9uc2UgY29uc3VtZTwvdGl0bGU+Ci0gICAg
PG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jl
c3BvbnNlIj4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMu
d2hhdHdnLm9yZy8jYm9keS1taXhpbiI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0i
Q2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgot
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91dGlscy5qcyI+PC9zY3JpcHQ+Ci0gIDwv
aGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRl
c3QpIHsKLSAgICB2YXIgYm9keSA9ICIiOwotICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25z
ZSgiIik7Ci0gICAgcmV0dXJuIHZhbGlkYXRlU3RyZWFtRnJvbVN0cmluZyhyZXNwb25zZS5ib2R5
LmdldFJlYWRlcigpLCAiIik7Ci19LCAiUmVhZCBlbXB0eSB0ZXh0IHJlc3BvbnNlJ3MgYm9keSBh
cyByZWFkYWJsZVN0cmVhbSIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAg
IHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZShuZXcgQmxvYihbXSwgeyAidHlwZSIgOiAidGV4
dC9wbGFpbiIgfSkpOwotICAgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmcocmVzcG9u
c2UuYm9keS5nZXRSZWFkZXIoKSwgIiIpOwotfSwgIlJlYWQgZW1wdHkgYmxvYiByZXNwb25zZSdz
IGJvZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsKLQotdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRh
KCk7Ci1mb3JtRGF0YS5hcHBlbmQoIm5hbWUiLCAidmFsdWUiKTsKLXZhciB0ZXh0RGF0YSA9IEpT
T04uc3RyaW5naWZ5KCJUaGlzIGlzIHJlc3BvbnNlJ3MgYm9keSIpOwotdmFyIGJsb2IgPSBuZXcg
QmxvYihbdGV4dERhdGFdLCB7ICJ0eXBlIiA6ICJ0ZXh0L3BsYWluIiB9KTsKLXZhciB1cmxTZWFy
Y2hQYXJhbXNEYXRhID0gIm5hbWU9dmFsdWUiOwotdmFyIHVybFNlYXJjaFBhcmFtcyA9IG5ldyBV
UkxTZWFyY2hQYXJhbXModXJsU2VhcmNoUGFyYW1zRGF0YSk7Ci0KLXByb21pc2VfdGVzdChmdW5j
dGlvbih0ZXN0KSB7Ci0gICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKGJsb2IpOwotICAg
IHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIo
KSwgdGV4dERhdGEpOwotfSwgIlJlYWQgYmxvYiByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVT
dHJlYW0iKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICB2YXIgcmVzcG9u
c2UgPSBuZXcgUmVzcG9uc2UodGV4dERhdGEpOwotICAgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZy
b21TdHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgdGV4dERhdGEpOwotfSwgIlJlYWQg
dGV4dCByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsKLQotcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UodXJsU2Vh
cmNoUGFyYW1zKTsKLSAgICByZXR1cm4gdmFsaWRhdGVTdHJlYW1Gcm9tU3RyaW5nKHJlc3BvbnNl
LmJvZHkuZ2V0UmVhZGVyKCksIHVybFNlYXJjaFBhcmFtc0RhdGEpOwotfSwgIlJlYWQgVVJMU2Vh
cmNoUGFyYW1zIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSIpOwotCi1wcm9taXNl
X3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgIHZhciBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1
ZmZlcih0ZXh0RGF0YS5sZW5ndGgpOwotICAgIHZhciBpbnQ4QXJyYXkgPSBuZXcgSW50OEFycmF5
KGFycmF5QnVmZmVyKTsKLSAgICBmb3IgKHZhciBjcHRyID0gMDsgY3B0ciA8IHRleHREYXRhLmxl
bmd0aDsgY3B0cisrKQotICAgICAgICBpbnQ4QXJyYXlbY3B0cl0gPSB0ZXh0RGF0YS5jaGFyQ29k
ZUF0KGNwdHIpOwotCi0gICAgcmV0dXJuIHZhbGlkYXRlU3RyZWFtRnJvbVN0cmluZyhuZXcgUmVz
cG9uc2UoYXJyYXlCdWZmZXIpLmJvZHkuZ2V0UmVhZGVyKCksIHRleHREYXRhKTsKLX0sICJSZWFk
IGFycmF5IGJ1ZmZlciByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsKLQotcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9u
c2UoZm9ybURhdGEpOwotICAgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21QYXJ0aWFsU3RyaW5n
KHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCksCi0gICAgICAiQ29udGVudC1EaXNwb3NpdGlvbjog
Zm9ybS1kYXRhOyBuYW1lPVwibmFtZVwiXHJcblxyXG52YWx1ZSIpOwotfSwgIlJlYWQgZm9ybSBk
YXRhIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSIpOwotCi10ZXN0KGZ1bmN0aW9u
KCkgewotICAgIGFzc2VydF9lcXVhbHMoUmVzcG9uc2UuZXJyb3IoKS5ib2R5LCBudWxsKTsKLX0s
ICJHZXR0aW5nIGFuIGVycm9yIFJlc3BvbnNlIHN0cmVhbSIpOwotCi10ZXN0KGZ1bmN0aW9uKCkg
ewotICAgIGFzc2VydF9lcXVhbHMoUmVzcG9uc2UucmVkaXJlY3QoIi8iKS5ib2R5LCBudWxsKTsK
LX0sICJHZXR0aW5nIGEgcmVkaXJlY3QgUmVzcG9uc2Ugc3RyZWFtIik7Ci0KLSAgICA8L3Njcmlw
dD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3It
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTUwZTcyNDhlOTk3MjgwNDM5YjZmNzk1OTc0YzNjZDhl
MmUyMGVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLWVycm9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICsw
LDAgQEAKLQotUEFTUyBUaHJvd3MgUmFuZ2VFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1
cyBpcyAwCi1QQVNTIFRocm93cyBSYW5nZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVz
IGlzIDEwMAotUEFTUyBUaHJvd3MgUmFuZ2VFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1
cyBpcyAxOTkKLVBBU1MgVGhyb3dzIFJhbmdlRXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0
dXMgaXMgNjAwCi1QQVNTIFRocm93cyBSYW5nZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3Rh
dHVzIGlzIDEwMDAKLVBBU1MgVGhyb3dzIFR5cGVFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0
YXR1c1RleHQgaXMKLQotUEFTUyBUaHJvd3MgVHlwZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mg
c3RhdHVzVGV4dCBpcyDEgAotUEFTUyBUaHJvd3MgVHlwZUVycm9yIHdoZW4gYnVpbGRpbmcgYSBy
ZXNwb25zZSB3aXRoIGJvZHkgYW5kIGEgYm9keSBzdGF0dXMgb2YgMjA0Ci1QQVNTIFRocm93cyBU
eXBlRXJyb3Igd2hlbiBidWlsZGluZyBhIHJlc3BvbnNlIHdpdGggYm9keSBhbmQgYSBib2R5IHN0
YXR1cyBvZiAyMDUKLVBBU1MgVGhyb3dzIFR5cGVFcnJvciB3aGVuIGJ1aWxkaW5nIGEgcmVzcG9u
c2Ugd2l0aCBib2R5IGFuZCBhIGJvZHkgc3RhdHVzIG9mIDMwNAotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0cmVhbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25z
ZS1lcnJvci1mcm9tLXN0cmVhbS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU3MjQ0OTQ0MDY4Yjc4MTYyMDJmMjMxNzJhOTk3OTllNWM5YWE1OTEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJy
b3ItZnJvbS1zdHJlYW0tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBA
QAotCi1QQVNTIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBQcm9taXNlIHJlY2VpdmVzIFJl
YWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IKLVBBU1MgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVh
ZGVyIFByb21pc2UgcmVjZWl2ZXMgUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVycm9yCi1GQUlMIFJl
YWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5hcnJheUJ1
ZmZlcigpIFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBz
aG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcg
b2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBTdGFydCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0
IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFN0YXJ0IGVycm9yIgotRkFJTCBSZWFkYWJsZVN0cmVh
bSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuYmxvYigpIFByb21pc2UgcHJv
bWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6
IEVycm9yOiBTdGFydCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAi
RXJyb3I6IFN0YXJ0IGVycm9yIgotRkFJTCBSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHBy
b3BhZ2F0ZXMgdG8gUmVzcG9uc2UuZm9ybURhdGEoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19l
eGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogU3RhcnQg
ZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBTdGFydCBl
cnJvciIKLUZBSUwgUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJl
c3BvbnNlLmpzb24oKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0
RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0i
IHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogU3RhcnQgZXJyb3IiIGJ1dCB3ZSBleHBl
Y3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBTdGFydCBlcnJvciIKLUZBSUwgUmVhZGFi
bGVTdHJlYW0gc3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLnRleHQoKSBQcm9t
aXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3Bh
Z2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlw
ZUVycm9yOiBFcnJvcjogU3RhcnQgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBv
YmplY3QgIkVycm9yOiBTdGFydCBlcnJvciIKLUZBSUwgUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVy
cm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuYXJyYXlCdWZmZXIoKSBQcm9taXNlIHByb21pc2Vf
cmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJv
cjogUHVsbCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6
IFB1bGwgZXJyb3IiCi1GQUlMIFJlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVz
IHRvIFJlc3BvbnNlLmJsb2IoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0
b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJv
dyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogUHVsbCBlcnJvciIgYnV0IHdl
IGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFB1bGwgZXJyb3IiCi1GQUlMIFJl
YWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmZvcm1EYXRh
KCkgUHJvbWlzZSBwcm9taXNlX3JlamVjdHNfZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNob3Vs
ZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmpl
Y3QgIlR5cGVFcnJvcjogRXJyb3I6IFB1bGwgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0
aHJvdyBvYmplY3QgIkVycm9yOiBQdWxsIGVycm9yIgotRkFJTCBSZWFkYWJsZVN0cmVhbSBwdWxs
KCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5qc29uKCkgUHJvbWlzZSBwcm9taXNlX3Jl
amVjdHNfZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogRXJyb3I6
IFB1bGwgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBQ
dWxsIGVycm9yIgotRkFJTCBSZWFkYWJsZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRlcyB0
byBSZXNwb25zZS50ZXh0KCkgUHJvbWlzZSBwcm9taXNlX3JlamVjdHNfZXhhY3RseTogQ3VzdG9t
VGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cg
ZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogRXJyb3I6IFB1bGwgZXJyb3IiIGJ1dCB3ZSBl
eHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBQdWxsIGVycm9yIgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0cmVhbS5hbnktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NzI0NDk0NDA2OGI3ODE2MjAyZjIzMTcyYTk5Nzk5ZTVjOWFhNTkxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1zdHJlYW0uYW55LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACisKK1BBU1MgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIFBy
b21pc2UgcmVjZWl2ZXMgUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvcgorUEFTUyBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXIgUHJvbWlzZSByZWNlaXZlcyBSZWFkYWJsZVN0cmVhbSBwdWxs
KCkgRXJyb3IKK0ZBSUwgUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRv
IFJlc3BvbnNlLmFycmF5QnVmZmVyKCkgUHJvbWlzZSBwcm9taXNlX3JlamVjdHNfZXhhY3RseTog
Q3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsg
dGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogRXJyb3I6IFN0YXJ0IGVycm9yIiBi
dXQgd2UgZXhwZWN0ZWQgaXQgdG8gdGhyb3cgb2JqZWN0ICJFcnJvcjogU3RhcnQgZXJyb3IiCitG
QUlMIFJlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5i
bG9iKCkgUHJvbWlzZSBwcm9taXNlX3JlamVjdHNfZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNo
b3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlR5cGVFcnJvcjogRXJyb3I6IFN0YXJ0IGVycm9yIiBidXQgd2UgZXhwZWN0ZWQgaXQg
dG8gdGhyb3cgb2JqZWN0ICJFcnJvcjogU3RhcnQgZXJyb3IiCitGQUlMIFJlYWRhYmxlU3RyZWFt
IHN0YXJ0KCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5mb3JtRGF0YSgpIFByb21pc2Ug
cHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRl
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJy
b3I6IEVycm9yOiBTdGFydCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVj
dCAiRXJyb3I6IFN0YXJ0IGVycm9yIgorRkFJTCBSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9y
IHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuanNvbigpIFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4
YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBTdGFydCBl
cnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFN0YXJ0IGVy
cm9yIgorRkFJTCBSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVz
cG9uc2UudGV4dCgpIFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RF
cnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIg
dGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBTdGFydCBlcnJvciIgYnV0IHdlIGV4cGVj
dGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFN0YXJ0IGVycm9yIgorRkFJTCBSZWFkYWJs
ZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5hcnJheUJ1ZmZlcigp
IFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91bGQg
cHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0
ICJUeXBlRXJyb3I6IEVycm9yOiBQdWxsIGVycm9yIiBidXQgd2UgZXhwZWN0ZWQgaXQgdG8gdGhy
b3cgb2JqZWN0ICJFcnJvcjogUHVsbCBlcnJvciIKK0ZBSUwgUmVhZGFibGVTdHJlYW0gcHVsbCgp
IEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuYmxvYigpIFByb21pc2UgcHJvbWlzZV9yZWpl
Y3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBQ
dWxsIGVycm9yIiBidXQgd2UgZXhwZWN0ZWQgaXQgdG8gdGhyb3cgb2JqZWN0ICJFcnJvcjogUHVs
bCBlcnJvciIKK0ZBSUwgUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8g
UmVzcG9uc2UuZm9ybURhdGEoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0
b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJv
dyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogUHVsbCBlcnJvciIgYnV0IHdl
IGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFB1bGwgZXJyb3IiCitGQUlMIFJl
YWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmpzb24oKSBQ
cm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHBy
b3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAi
VHlwZUVycm9yOiBFcnJvcjogUHVsbCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93
IG9iamVjdCAiRXJyb3I6IFB1bGwgZXJyb3IiCitGQUlMIFJlYWRhYmxlU3RyZWFtIHB1bGwoKSBF
cnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLnRleHQoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0
c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogUHVs
bCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFB1bGwg
ZXJyb3IiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLWZyb20tc3RyZWFtLmFu
eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1zdHJlYW0uYW55Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLWZyb20tc3RyZWFtLmFueS5odG1sCkBAIC0w
LDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZy
YXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLWZyb20tc3RyZWFt
LmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLWZyb20tc3RyZWFtLmFueS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xMThlYjdkNWNiMzk4YzFhMjdhZWZiMmU4YzIzNThhODUxYzNiZmFmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1zdHJlYW0uYW55LmpzCkBAIC0wLDAg
KzEsNTkgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1S
ZXNwb25zZSBSZWNlaXZlcyBQcm9wYWdhdGVkIEVycm9yIGZyb20gUmVhZGFibGVTdHJlYW0KKwor
ZnVuY3Rpb24gbmV3U3RyZWFtV2l0aFN0YXJ0RXJyb3IoKSB7CisgIHZhciBlcnIgPSBuZXcgRXJy
b3IoIlN0YXJ0IGVycm9yIik7CisgIHJldHVybiBbbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAg
ICAgICAgIHN0YXJ0KGNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVy
cm9yKGVycik7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSksCisgICAgICAgICAgZXJyXQor
fQorCitmdW5jdGlvbiBuZXdTdHJlYW1XaXRoUHVsbEVycm9yKCkgeworICB2YXIgZXJyID0gbmV3
IEVycm9yKCJQdWxsIGVycm9yIik7CisgIHJldHVybiBbbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAg
ICAgICAgICAgIHB1bGwoY29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIu
ZXJyb3IoZXJyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9KSwKKyAgICAgICAgICBlcnJd
Cit9CisKK2Z1bmN0aW9uIHJ1blJlcXVlc3RQcm9taXNlVGVzdChbc3RyZWFtLCBlcnJdLCByZXNw
b25zZVJlYWRlck1ldGhvZCwgdGVzdERlc2NyaXB0aW9uKSB7CisgIHByb21pc2VfdGVzdCh0ZXN0
ID0+IHsKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2V4YWN0bHkoCisgICAgICB0ZXN0LAor
ICAgICAgZXJyLAorICAgICAgbmV3IFJlc3BvbnNlKHN0cmVhbSlbcmVzcG9uc2VSZWFkZXJNZXRo
b2RdKCksCisgICAgICAnQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUnCisgICAgKQor
ICB9LCB0ZXN0RGVzY3JpcHRpb24pCit9CisKKworcHJvbWlzZV90ZXN0KHRlc3QgPT4geworICB2
YXIgW3N0cmVhbSwgZXJyXSA9IG5ld1N0cmVhbVdpdGhTdGFydEVycm9yKCk7CisgIHJldHVybiBw
cm9taXNlX3JlamVjdHNfZXhhY3RseSh0ZXN0LCBlcnIsIHN0cmVhbS5nZXRSZWFkZXIoKS5yZWFk
KCksICdDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZScpCit9LCAiUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyIFByb21pc2UgcmVjZWl2ZXMgUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBF
cnJvciIpCisKK3Byb21pc2VfdGVzdCh0ZXN0ID0+IHsKKyAgdmFyIFtzdHJlYW0sIGVycl0gPSBu
ZXdTdHJlYW1XaXRoUHVsbEVycm9yKCk7CisgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZXhhY3Rs
eSh0ZXN0LCBlcnIsIHN0cmVhbS5nZXRSZWFkZXIoKS5yZWFkKCksICdDdXN0b21UZXN0RXJyb3Ig
c2hvdWxkIHByb3BhZ2F0ZScpCit9LCAiUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIFByb21p
c2UgcmVjZWl2ZXMgUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVycm9yIikKKworCisvLyB0ZXN0IHN0
YXJ0KCkgZXJyb3JzIGZvciBhbGwgQm9keSByZWFkZXIgbWV0aG9kcworcnVuUmVxdWVzdFByb21p
c2VUZXN0KG5ld1N0cmVhbVdpdGhTdGFydEVycm9yKCksICdhcnJheUJ1ZmZlcicsICdSZWFkYWJs
ZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuYXJyYXlCdWZmZXIo
KSBQcm9taXNlJyk7CitydW5SZXF1ZXN0UHJvbWlzZVRlc3QobmV3U3RyZWFtV2l0aFN0YXJ0RXJy
b3IoKSwgJ2Jsb2InLCAgICAgICAgJ1JlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IgcHJvcGFn
YXRlcyB0byBSZXNwb25zZS5ibG9iKCkgUHJvbWlzZScpOworcnVuUmVxdWVzdFByb21pc2VUZXN0
KG5ld1N0cmVhbVdpdGhTdGFydEVycm9yKCksICdmb3JtRGF0YScsICAgICdSZWFkYWJsZVN0cmVh
bSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuZm9ybURhdGEoKSBQcm9taXNl
Jyk7CitydW5SZXF1ZXN0UHJvbWlzZVRlc3QobmV3U3RyZWFtV2l0aFN0YXJ0RXJyb3IoKSwgJ2pz
b24nLCAgICAgICAgJ1JlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IgcHJvcGFnYXRlcyB0byBS
ZXNwb25zZS5qc29uKCkgUHJvbWlzZScpOworcnVuUmVxdWVzdFByb21pc2VUZXN0KG5ld1N0cmVh
bVdpdGhTdGFydEVycm9yKCksICd0ZXh0JywgICAgICAgICdSZWFkYWJsZVN0cmVhbSBzdGFydCgp
IEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UudGV4dCgpIFByb21pc2UnKTsKKworLy8gdGVz
dCBwdWxsKCkgZXJyb3JzIGZvciBhbGwgQm9keSByZWFkZXIgbWV0aG9kcworcnVuUmVxdWVzdFBy
b21pc2VUZXN0KG5ld1N0cmVhbVdpdGhQdWxsRXJyb3IoKSwgJ2FycmF5QnVmZmVyJywgJ1JlYWRh
YmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmFycmF5QnVmZmVy
KCkgUHJvbWlzZScpOworcnVuUmVxdWVzdFByb21pc2VUZXN0KG5ld1N0cmVhbVdpdGhQdWxsRXJy
b3IoKSwgJ2Jsb2InLCAgICAgICAgJ1JlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdh
dGVzIHRvIFJlc3BvbnNlLmJsb2IoKSBQcm9taXNlJyk7CitydW5SZXF1ZXN0UHJvbWlzZVRlc3Qo
bmV3U3RyZWFtV2l0aFB1bGxFcnJvcigpLCAnZm9ybURhdGEnLCAgICAnUmVhZGFibGVTdHJlYW0g
cHVsbCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuZm9ybURhdGEoKSBQcm9taXNlJyk7
CitydW5SZXF1ZXN0UHJvbWlzZVRlc3QobmV3U3RyZWFtV2l0aFB1bGxFcnJvcigpLCAnanNvbics
ICAgICAgICAnUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9u
c2UuanNvbigpIFByb21pc2UnKTsKK3J1blJlcXVlc3RQcm9taXNlVGVzdChuZXdTdHJlYW1XaXRo
UHVsbEVycm9yKCksICd0ZXh0JywgICAgICAgICdSZWFkYWJsZVN0cmVhbSBwdWxsKCkgRXJyb3Ig
cHJvcGFnYXRlcyB0byBSZXNwb25zZS50ZXh0KCkgUHJvbWlzZScpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1zdHJlYW0uYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0cmVhbS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NzI0NDk0NDA2OGI3ODE2MjAyZjIzMTcyYTk5Nzk5ZTVjOWFhNTkxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1zdHJlYW0uYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCitQQVNTIFJlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlciBQcm9taXNlIHJlY2VpdmVzIFJlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3IK
K1BBU1MgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIFByb21pc2UgcmVjZWl2ZXMgUmVhZGFi
bGVTdHJlYW0gcHVsbCgpIEVycm9yCitGQUlMIFJlYWRhYmxlU3RyZWFtIHN0YXJ0KCkgRXJyb3Ig
cHJvcGFnYXRlcyB0byBSZXNwb25zZS5hcnJheUJ1ZmZlcigpIFByb21pc2UgcHJvbWlzZV9yZWpl
Y3RzX2V4YWN0bHk6IEN1c3RvbVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBT
dGFydCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFN0
YXJ0IGVycm9yIgorRkFJTCBSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMg
dG8gUmVzcG9uc2UuYmxvYigpIFByb21pc2UgcHJvbWlzZV9yZWplY3RzX2V4YWN0bHk6IEN1c3Rv
bVRlc3RFcnJvciBzaG91bGQgcHJvcGFnYXRlIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93
IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IEVycm9yOiBTdGFydCBlcnJvciIgYnV0IHdl
IGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFN0YXJ0IGVycm9yIgorRkFJTCBS
ZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2UuZm9ybURh
dGEoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hv
dWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9i
amVjdCAiVHlwZUVycm9yOiBFcnJvcjogU3RhcnQgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0
byB0aHJvdyBvYmplY3QgIkVycm9yOiBTdGFydCBlcnJvciIKK0ZBSUwgUmVhZGFibGVTdHJlYW0g
c3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmpzb24oKSBQcm9taXNlIHByb21p
c2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBF
cnJvcjogU3RhcnQgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVy
cm9yOiBTdGFydCBlcnJvciIKK0ZBSUwgUmVhZGFibGVTdHJlYW0gc3RhcnQoKSBFcnJvciBwcm9w
YWdhdGVzIHRvIFJlc3BvbnNlLnRleHQoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5
OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogU3RhcnQgZXJyb3Ii
IGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBTdGFydCBlcnJvciIK
K0ZBSUwgUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVycm9yIHByb3BhZ2F0ZXMgdG8gUmVzcG9uc2Uu
YXJyYXlCdWZmZXIoKSBQcm9taXNlIHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0
RXJyb3Igc2hvdWxkIHByb3BhZ2F0ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0i
IHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBFcnJvcjogUHVsbCBlcnJvciIgYnV0IHdlIGV4cGVj
dGVkIGl0IHRvIHRocm93IG9iamVjdCAiRXJyb3I6IFB1bGwgZXJyb3IiCitGQUlMIFJlYWRhYmxl
U3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmJsb2IoKSBQcm9taXNl
IHByb21pc2VfcmVqZWN0c19leGFjdGx5OiBDdXN0b21UZXN0RXJyb3Igc2hvdWxkIHByb3BhZ2F0
ZSBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVy
cm9yOiBFcnJvcjogUHVsbCBlcnJvciIgYnV0IHdlIGV4cGVjdGVkIGl0IHRvIHRocm93IG9iamVj
dCAiRXJyb3I6IFB1bGwgZXJyb3IiCitGQUlMIFJlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBw
cm9wYWdhdGVzIHRvIFJlc3BvbnNlLmZvcm1EYXRhKCkgUHJvbWlzZSBwcm9taXNlX3JlamVjdHNf
ZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogRXJyb3I6IFB1bGwg
ZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBQdWxsIGVy
cm9yIgorRkFJTCBSZWFkYWJsZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNw
b25zZS5qc29uKCkgUHJvbWlzZSBwcm9taXNlX3JlamVjdHNfZXhhY3RseTogQ3VzdG9tVGVzdEVy
cm9yIHNob3VsZCBwcm9wYWdhdGUgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0
aHJldyBvYmplY3QgIlR5cGVFcnJvcjogRXJyb3I6IFB1bGwgZXJyb3IiIGJ1dCB3ZSBleHBlY3Rl
ZCBpdCB0byB0aHJvdyBvYmplY3QgIkVycm9yOiBQdWxsIGVycm9yIgorRkFJTCBSZWFkYWJsZVN0
cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS50ZXh0KCkgUHJvbWlzZSBw
cm9taXNlX3JlamVjdHNfZXhhY3RseTogQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJv
cjogRXJyb3I6IFB1bGwgZXJyb3IiIGJ1dCB3ZSBleHBlY3RlZCBpdCB0byB0aHJvdyBvYmplY3Qg
IkVycm9yOiBQdWxsIGVycm9yIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1m
cm9tLXN0cmVhbS5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0
cmVhbS5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2
MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9y
LWZyb20tc3RyZWFtLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0cmVhbS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
ZXJyb3ItZnJvbS1zdHJlYW0uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzcw
ZjZiYTc4ZDczNDFhZDdiZTU5YmQ2MTE1MDQ5YWMwMzQyOGUxZi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0
cmVhbS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+
Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRs
ZT5SZXNwb25zZSBSZWNlaXZlcyBQcm9wYWdhdGVkIEVycm9yIGZyb20gUmVhZGFibGVTdHJlYW08
L3RpdGxlPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICAgIGZ1bmN0
aW9uIG5ld1N0cmVhbVdpdGhTdGFydEVycm9yKCkgewotICAgICAgICB2YXIgZXJyID0gbmV3IEVy
cm9yKCJTdGFydCBlcnJvciIpOwotICAgICAgICByZXR1cm4gW25ldyBSZWFkYWJsZVN0cmVhbSh7
Ci0gICAgICAgICAgICAgICAgICBzdGFydChjb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgY29udHJvbGxlci5lcnJvcihlcnIpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0pLAotICAgICAgICAgICAgICAgIGVycl0KLSAgICAgIH0KLQotICAgICAgZnVu
Y3Rpb24gbmV3U3RyZWFtV2l0aFB1bGxFcnJvcigpIHsKLSAgICAgICAgdmFyIGVyciA9IG5ldyBF
cnJvcigiUHVsbCBlcnJvciIpOwotICAgICAgICByZXR1cm4gW25ldyBSZWFkYWJsZVN0cmVhbSh7
Ci0gICAgICAgICAgICAgICAgICBwdWxsKGNvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICBjb250cm9sbGVyLmVycm9yKGVycik7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfSksCi0gICAgICAgICAgICAgICAgZXJyXQotICAgICAgfQotCi0gICAgICBmdW5j
dGlvbiBydW5SZXF1ZXN0UHJvbWlzZVRlc3QoW3N0cmVhbSwgZXJyXSwgcmVzcG9uc2VSZWFkZXJN
ZXRob2QsIHRlc3REZXNjcmlwdGlvbikgewotICAgICAgICBwcm9taXNlX3Rlc3QodGVzdCA9PiB7
Ci0gICAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19leGFjdGx5KAotICAgICAgICAgICAg
dGVzdCwKLSAgICAgICAgICAgIGVyciwKLSAgICAgICAgICAgIG5ldyBSZXNwb25zZShzdHJlYW0p
W3Jlc3BvbnNlUmVhZGVyTWV0aG9kXSgpLAotICAgICAgICAgICAgJ0N1c3RvbVRlc3RFcnJvciBz
aG91bGQgcHJvcGFnYXRlJwotICAgICAgICAgICkKLSAgICAgICAgfSwgdGVzdERlc2NyaXB0aW9u
KQotICAgICAgfQotCi0KLSAgICAgIHByb21pc2VfdGVzdCh0ZXN0ID0+IHsKLSAgICAgICAgdmFy
IFtzdHJlYW0sIGVycl0gPSBuZXdTdHJlYW1XaXRoU3RhcnRFcnJvcigpOwotICAgICAgICByZXR1
cm4gcHJvbWlzZV9yZWplY3RzX2V4YWN0bHkodGVzdCwgZXJyLCBzdHJlYW0uZ2V0UmVhZGVyKCku
cmVhZCgpLCAnQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUnKQotICAgICAgfSwgIlJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBQcm9taXNlIHJlY2VpdmVzIFJlYWRhYmxlU3RyZWFt
IHN0YXJ0KCkgRXJyb3IiKQotCi0gICAgICBwcm9taXNlX3Rlc3QodGVzdCA9PiB7Ci0gICAgICAg
IHZhciBbc3RyZWFtLCBlcnJdID0gbmV3U3RyZWFtV2l0aFB1bGxFcnJvcigpOwotICAgICAgICBy
ZXR1cm4gcHJvbWlzZV9yZWplY3RzX2V4YWN0bHkodGVzdCwgZXJyLCBzdHJlYW0uZ2V0UmVhZGVy
KCkucmVhZCgpLCAnQ3VzdG9tVGVzdEVycm9yIHNob3VsZCBwcm9wYWdhdGUnKQotICAgICAgfSwg
IlJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBQcm9taXNlIHJlY2VpdmVzIFJlYWRhYmxlU3Ry
ZWFtIHB1bGwoKSBFcnJvciIpCi0KLQotICAgICAgLy8gdGVzdCBzdGFydCgpIGVycm9ycyBmb3Ig
YWxsIEJvZHkgcmVhZGVyIG1ldGhvZHMKLSAgICAgIHJ1blJlcXVlc3RQcm9taXNlVGVzdChuZXdT
dHJlYW1XaXRoU3RhcnRFcnJvcigpLCAnYXJyYXlCdWZmZXInLCAnUmVhZGFibGVTdHJlYW0gc3Rh
cnQoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmFycmF5QnVmZmVyKCkgUHJvbWlzZScp
OwotICAgICAgcnVuUmVxdWVzdFByb21pc2VUZXN0KG5ld1N0cmVhbVdpdGhTdGFydEVycm9yKCks
ICdibG9iJywgICAgICAgICdSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0ZXMg
dG8gUmVzcG9uc2UuYmxvYigpIFByb21pc2UnKTsKLSAgICAgIHJ1blJlcXVlc3RQcm9taXNlVGVz
dChuZXdTdHJlYW1XaXRoU3RhcnRFcnJvcigpLCAnZm9ybURhdGEnLCAgICAnUmVhZGFibGVTdHJl
YW0gc3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmZvcm1EYXRhKCkgUHJvbWlz
ZScpOwotICAgICAgcnVuUmVxdWVzdFByb21pc2VUZXN0KG5ld1N0cmVhbVdpdGhTdGFydEVycm9y
KCksICdqc29uJywgICAgICAgICdSZWFkYWJsZVN0cmVhbSBzdGFydCgpIEVycm9yIHByb3BhZ2F0
ZXMgdG8gUmVzcG9uc2UuanNvbigpIFByb21pc2UnKTsKLSAgICAgIHJ1blJlcXVlc3RQcm9taXNl
VGVzdChuZXdTdHJlYW1XaXRoU3RhcnRFcnJvcigpLCAndGV4dCcsICAgICAgICAnUmVhZGFibGVT
dHJlYW0gc3RhcnQoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLnRleHQoKSBQcm9taXNl
Jyk7Ci0KLSAgICAgIC8vIHRlc3QgcHVsbCgpIGVycm9ycyBmb3IgYWxsIEJvZHkgcmVhZGVyIG1l
dGhvZHMKLSAgICAgIHJ1blJlcXVlc3RQcm9taXNlVGVzdChuZXdTdHJlYW1XaXRoUHVsbEVycm9y
KCksICdhcnJheUJ1ZmZlcicsICdSZWFkYWJsZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRl
cyB0byBSZXNwb25zZS5hcnJheUJ1ZmZlcigpIFByb21pc2UnKTsKLSAgICAgIHJ1blJlcXVlc3RQ
cm9taXNlVGVzdChuZXdTdHJlYW1XaXRoUHVsbEVycm9yKCksICdibG9iJywgICAgICAgICdSZWFk
YWJsZVN0cmVhbSBwdWxsKCkgRXJyb3IgcHJvcGFnYXRlcyB0byBSZXNwb25zZS5ibG9iKCkgUHJv
bWlzZScpOwotICAgICAgcnVuUmVxdWVzdFByb21pc2VUZXN0KG5ld1N0cmVhbVdpdGhQdWxsRXJy
b3IoKSwgJ2Zvcm1EYXRhJywgICAgJ1JlYWRhYmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdh
dGVzIHRvIFJlc3BvbnNlLmZvcm1EYXRhKCkgUHJvbWlzZScpOwotICAgICAgcnVuUmVxdWVzdFBy
b21pc2VUZXN0KG5ld1N0cmVhbVdpdGhQdWxsRXJyb3IoKSwgJ2pzb24nLCAgICAgICAgJ1JlYWRh
YmxlU3RyZWFtIHB1bGwoKSBFcnJvciBwcm9wYWdhdGVzIHRvIFJlc3BvbnNlLmpzb24oKSBQcm9t
aXNlJyk7Ci0gICAgICBydW5SZXF1ZXN0UHJvbWlzZVRlc3QobmV3U3RyZWFtV2l0aFB1bGxFcnJv
cigpLCAndGV4dCcsICAgICAgICAnUmVhZGFibGVTdHJlYW0gcHVsbCgpIEVycm9yIHByb3BhZ2F0
ZXMgdG8gUmVzcG9uc2UudGV4dCgpIFByb21pc2UnKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3IuYW55LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWU1MGU3MjQ4ZTk5NzI4MDQzOWI2Zjc5NTk3NGMzY2Q4ZTJlMjBlZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBA
QAorCitQQVNTIFRocm93cyBSYW5nZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzIGlz
IDAKK1BBU1MgVGhyb3dzIFJhbmdlRXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0dXMgaXMg
MTAwCitQQVNTIFRocm93cyBSYW5nZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzIGlz
IDE5OQorUEFTUyBUaHJvd3MgUmFuZ2VFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1cyBp
cyA2MDAKK1BBU1MgVGhyb3dzIFJhbmdlRXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0dXMg
aXMgMTAwMAorUEFTUyBUaHJvd3MgVHlwZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVz
VGV4dCBpcworCitQQVNTIFRocm93cyBUeXBlRXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0
dXNUZXh0IGlzIMSACitQQVNTIFRocm93cyBUeXBlRXJyb3Igd2hlbiBidWlsZGluZyBhIHJlc3Bv
bnNlIHdpdGggYm9keSBhbmQgYSBib2R5IHN0YXR1cyBvZiAyMDQKK1BBU1MgVGhyb3dzIFR5cGVF
cnJvciB3aGVuIGJ1aWxkaW5nIGEgcmVzcG9uc2Ugd2l0aCBib2R5IGFuZCBhIGJvZHkgc3RhdHVz
IG9mIDIwNQorUEFTUyBUaHJvd3MgVHlwZUVycm9yIHdoZW4gYnVpbGRpbmcgYSByZXNwb25zZSB3
aXRoIGJvZHkgYW5kIGEgYm9keSBzdGF0dXMgb2YgMzA0CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLWVycm9yLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3IuYW55Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS5odG1sCkBAIC0wLDAgKzEgQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVy
ZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWVycm9yLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzZiYzQzODAyODZmYWM0N2I5NjQyNWFiYWE2
MjE3ZWQ1MjkxZTUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3IuYW55
LmpzCkBAIC0wLDAgKzEsMjcgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBN
RVRBOiB0aXRsZT1SZXNwb25zZSBlcnJvcgorCit2YXIgaW52YWxpZFN0YXR1cyA9IFswLCAxMDAs
IDE5OSwgNjAwLCAxMDAwXTsKK2ludmFsaWRTdGF0dXMuZm9yRWFjaChmdW5jdGlvbihzdGF0dXMp
IHsKKyAgdGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFJhbmdlRXJyb3Is
IGZ1bmN0aW9uKCkgeyBuZXcgUmVzcG9uc2UoIiIsIHsgInN0YXR1cyIgOiBzdGF0dXMgfSk7IH0s
CisgICAgICAiRXhwZWN0IFJhbmdlRXJyb3IgZXhjZXB0aW9uIHdoZW4gc3RhdHVzIGlzICIgKyBz
dGF0dXMpOworICB9LCJUaHJvd3MgUmFuZ2VFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1
cyBpcyAiICsgc3RhdHVzKTsKK30pOworCit2YXIgaW52YWxpZFN0YXR1c1RleHQgPSBbIlxuIiwg
IsSAIl07CitpbnZhbGlkU3RhdHVzVGV4dC5mb3JFYWNoKGZ1bmN0aW9uKHN0YXR1c1RleHQpIHsK
KyAgdGVzdChmdW5jdGlvbigpIHsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVu
Y3Rpb24oKSB7IG5ldyBSZXNwb25zZSgiIiwgeyAic3RhdHVzVGV4dCIgOiBzdGF0dXNUZXh0IH0p
OyB9LAorICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uICIgKyBzdGF0dXNUZXh0KTsK
KyAgfSwiVGhyb3dzIFR5cGVFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1c1RleHQgaXMg
IiArIHN0YXR1c1RleHQpOworfSk7CisKK3ZhciBudWxsQm9keVN0YXR1cyA9IFsyMDQsIDIwNSwg
MzA0XTsKK251bGxCb2R5U3RhdHVzLmZvckVhY2goZnVuY3Rpb24oc3RhdHVzKSB7CisgIHRlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsCisgICAgICBmdW5j
dGlvbigpIHsgbmV3IFJlc3BvbnNlKCJib2R5IiwgeyJzdGF0dXMiIDogc3RhdHVzIH0pOyB9LAor
ICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uICIpOworICB9LCJUaHJvd3MgVHlwZUVy
cm9yIHdoZW4gYnVpbGRpbmcgYSByZXNwb25zZSB3aXRoIGJvZHkgYW5kIGEgYm9keSBzdGF0dXMg
b2YgIiArIHN0YXR1cyk7Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3IuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU1MGU3MjQ4ZTk5NzI4MDQzOWI2Zjc5NTk3NGMzY2Q4
ZTJlMjBlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKworUEFTUyBUaHJvd3MgUmFuZ2VFcnJv
ciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1cyBpcyAwCitQQVNTIFRocm93cyBSYW5nZUVycm9y
IHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzIGlzIDEwMAorUEFTUyBUaHJvd3MgUmFuZ2VFcnJv
ciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1cyBpcyAxOTkKK1BBU1MgVGhyb3dzIFJhbmdlRXJy
b3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0dXMgaXMgNjAwCitQQVNTIFRocm93cyBSYW5nZUVy
cm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzIGlzIDEwMDAKK1BBU1MgVGhyb3dzIFR5cGVF
cnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1c1RleHQgaXMKKworUEFTUyBUaHJvd3MgVHlw
ZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzVGV4dCBpcyDEgAorUEFTUyBUaHJvd3Mg
VHlwZUVycm9yIHdoZW4gYnVpbGRpbmcgYSByZXNwb25zZSB3aXRoIGJvZHkgYW5kIGEgYm9keSBz
dGF0dXMgb2YgMjA0CitQQVNTIFRocm93cyBUeXBlRXJyb3Igd2hlbiBidWlsZGluZyBhIHJlc3Bv
bnNlIHdpdGggYm9keSBhbmQgYSBib2R5IHN0YXR1cyBvZiAyMDUKK1BBU1MgVGhyb3dzIFR5cGVF
cnJvciB3aGVuIGJ1aWxkaW5nIGEgcmVzcG9uc2Ugd2l0aCBib2R5IGFuZCBhIGJvZHkgc3RhdHVz
IG9mIDMwNAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci5hbnkud29ya2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4
MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLWVycm9yLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0t
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8g
cnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJy
b3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2NiYjEzODM0NTk2NGY1NDhh
ZGQ2N2E5YjI5MDY1N2RlM2FlY2ViZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzkgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5SZXNwb25zZSBlcnJvcjwvdGl0bGU+Ci0g
ICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcv
I3Jlc3BvbnNlIj4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJj
aCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgot
ICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgICAgdmFyIGludmFsaWRTdGF0dXMgPSBbMCwgMTAw
LCAxOTksIDYwMCwgMTAwMF07Ci0gICAgICBpbnZhbGlkU3RhdHVzLmZvckVhY2goZnVuY3Rpb24o
c3RhdHVzKSB7Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0X3Ro
cm93c19qcyhSYW5nZUVycm9yLCBmdW5jdGlvbigpIHsgbmV3IFJlc3BvbnNlKCIiLCB7ICJzdGF0
dXMiIDogc3RhdHVzIH0pOyB9LAotICAgICAgICAgICAgIkV4cGVjdCBSYW5nZUVycm9yIGV4Y2Vw
dGlvbiB3aGVuIHN0YXR1cyBpcyAiICsgc3RhdHVzKTsKLSAgICAgICAgfSwiVGhyb3dzIFJhbmdl
RXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0dXMgaXMgIiArIHN0YXR1cyk7Ci0gICAgICB9
KTsKLQotICAgICAgdmFyIGludmFsaWRTdGF0dXNUZXh0ID0gWyJcbiIsICLEgCJdOwotICAgICAg
aW52YWxpZFN0YXR1c1RleHQuZm9yRWFjaChmdW5jdGlvbihzdGF0dXNUZXh0KSB7Ci0gICAgICAg
IHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3Is
IGZ1bmN0aW9uKCkgeyBuZXcgUmVzcG9uc2UoIiIsIHsgInN0YXR1c1RleHQiIDogc3RhdHVzVGV4
dCB9KTsgfSwKLSAgICAgICAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiAiICsgc3Rh
dHVzVGV4dCk7Ci0gICAgICAgIH0sIlRocm93cyBUeXBlRXJyb3Igd2hlbiByZXNwb25zZUluaXQn
cyBzdGF0dXNUZXh0IGlzICIgKyBzdGF0dXNUZXh0KTsKLSAgICAgIH0pOwotCi0gICAgICB2YXIg
bnVsbEJvZHlTdGF0dXMgPSBbMjA0LCAyMDUsIDMwNF07Ci0gICAgICBudWxsQm9keVN0YXR1cy5m
b3JFYWNoKGZ1bmN0aW9uKHN0YXR1cykgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLAotICAgICAgICAgICAgZnVuY3Rpb24o
KSB7IG5ldyBSZXNwb25zZSgiYm9keSIsIHsic3RhdHVzIiA6IHN0YXR1cyB9KTsgfSwKLSAgICAg
ICAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiAiKTsKLSAgICAgICAgfSwiVGhyb3dz
IFR5cGVFcnJvciB3aGVuIGJ1aWxkaW5nIGEgcmVzcG9uc2Ugd2l0aCBib2R5IGFuZCBhIGJvZHkg
c3RhdHVzIG9mICIgKyBzdGF0dXMpOwotICAgICAgfSk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2QxMzAxYzg0NmU5NGQ1YWQ0MTg3MTg3NDNkN2U0NjRiZTBlZGZl
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1pbml0LTAwMS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCww
IEBACi0KLVBBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3IgdHlwZSBhdHRyaWJ1dGUKLVBBU1Mg
Q2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3IgdXJsIGF0dHJpYnV0ZQotUEFTUyBDaGVjayBkZWZhdWx0
IHZhbHVlIGZvciBvayBhdHRyaWJ1dGUKLVBBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3Igc3Rh
dHVzIGF0dHJpYnV0ZQotUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZvciBzdGF0dXNUZXh0IGF0
dHJpYnV0ZQotUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZvciBib2R5IGF0dHJpYnV0ZQotUEFT
UyBDaGVjayBzdGF0dXMgaW5pdCB2YWx1ZXMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyCi1QQVNTIENo
ZWNrIHN0YXR1c1RleHQgaW5pdCB2YWx1ZXMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyCi1QQVNTIFRl
c3QgdGhhdCBSZXNwb25zZS5oZWFkZXJzIGhhcyB0aGUgW1NhbWVPYmplY3RdIGV4dGVuZGVkIGF0
dHJpYnV0ZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEuYW55LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zZDEzMDFjODQ2ZTk0ZDVhZDQxODcxODc0M2Q3ZTQ2NGJlMGVkZmUzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEuYW55LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACisKK1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3IgdHlwZSBhdHRyaWJ1dGUK
K1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3IgdXJsIGF0dHJpYnV0ZQorUEFTUyBDaGVjayBk
ZWZhdWx0IHZhbHVlIGZvciBvayBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBm
b3Igc3RhdHVzIGF0dHJpYnV0ZQorUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZvciBzdGF0dXNU
ZXh0IGF0dHJpYnV0ZQorUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZvciBib2R5IGF0dHJpYnV0
ZQorUEFTUyBDaGVjayBzdGF0dXMgaW5pdCB2YWx1ZXMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyCitQ
QVNTIENoZWNrIHN0YXR1c1RleHQgaW5pdCB2YWx1ZXMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyCitQ
QVNTIFRlc3QgdGhhdCBSZXNwb25zZS5oZWFkZXJzIGhhcyB0aGUgW1NhbWVPYmplY3RdIGV4dGVu
ZGVkIGF0dHJpYnV0ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnku
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5
MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRo
ZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0
LTAwMS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU5ZTQ5YWQxMWZmZTEzYTdhMjkxOTM1ZjY1NDBiNmEx
NzdlNGM5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLmFueS5q
cwpAQCAtMCwwICsxLDY0IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVU
QTogdGl0bGU9UmVzcG9uc2UgaW5pdDogc2ltcGxlIGNhc2VzCisKK3ZhciBkZWZhdWx0VmFsdWVz
ID0geyAidHlwZSIgOiAiZGVmYXVsdCIsCisgICAgICAgICAgICAgICAgICAgICAgInVybCIgOiAi
IiwKKyAgICAgICAgICAgICAgICAgICAgICAib2siIDogdHJ1ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAic3RhdHVzIiA6IDIwMCwKKyAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzVGV4dCIg
OiAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAiYm9keSIgOiBudWxsCit9OworCit2YXIgc3Rh
dHVzQ29kZXMgPSB7ICJnaXZlblZhbHVlcyIgOiBbMjAwLCAzMDAsIDQwMCwgNTAwLCA1OTldLAor
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWzIwMCwgMzAwLCA0MDAsIDUw
MCwgNTk5XQorfTsKK3ZhciBzdGF0dXNUZXh0cyA9IHsgImdpdmVuVmFsdWVzIiA6IFsiIiwgIk9L
IiwgIndpdGggc3BhY2UiLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ODApXSwKKyAgICAgICAgICAg
ICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsiIiwgIk9LIiwgIndpdGggc3BhY2UiLCBTdHJp
bmcuZnJvbUNoYXJDb2RlKDB4ODApXQorfTsKK3ZhciBpbml0VmFsdWVzRGljdCA9IHsgInN0YXR1
cyIgOiBzdGF0dXNDb2RlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXNUZXh0IiA6
IHN0YXR1c1RleHRzCit9OworCitmdW5jdGlvbiBpc09rU3RhdHVzKHN0YXR1cykgeworICByZXR1
cm4gMjAwIDw9IHN0YXR1cyAmJiAgMjk5ID49IHN0YXR1czsKK30KKwordmFyIHJlc3BvbnNlID0g
bmV3IFJlc3BvbnNlKCk7Citmb3IgKHZhciBhdHRyaWJ1dGVOYW1lIGluIGRlZmF1bHRWYWx1ZXMp
IHsKKyAgdGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGRlZmF1bHRW
YWx1ZXNbYXR0cmlidXRlTmFtZV07CisgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZVthdHRyaWJ1
dGVOYW1lXSwgZXhwZWN0ZWRWYWx1ZSwKKyAgICAgICJFeHBlY3QgZGVmYXVsdCByZXNwb25zZS4i
ICsgYXR0cmlidXRlTmFtZSArICIgaXMgIiArIGV4cGVjdGVkVmFsdWUpOworICB9LCAiQ2hlY2sg
ZGVmYXVsdCB2YWx1ZSBmb3IgIiArIGF0dHJpYnV0ZU5hbWUgKyAiIGF0dHJpYnV0ZSIpOworfQor
Citmb3IgKHZhciBhdHRyaWJ1dGVOYW1lIGluIGluaXRWYWx1ZXNEaWN0KSB7CisgIHRlc3QoZnVu
Y3Rpb24oKSB7CisgICAgdmFyIHZhbHVlc1RvVGVzdCA9IGluaXRWYWx1ZXNEaWN0W2F0dHJpYnV0
ZU5hbWVdOworICAgIGZvciAodmFyIHZhbHVlSWR4IGluIHZhbHVlc1RvVGVzdFsiZ2l2ZW5WYWx1
ZXMiXSkgeworICAgICAgdmFyIGdpdmVuVmFsdWUgPSB2YWx1ZXNUb1Rlc3RbImdpdmVuVmFsdWVz
Il1bdmFsdWVJZHhdOworICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSB2YWx1ZXNUb1Rlc3RbImV4
cGVjdGVkVmFsdWVzIl1bdmFsdWVJZHhdOworICAgICAgdmFyIHJlc3BvbnNlSW5pdCA9IHt9Owor
ICAgICAgcmVzcG9uc2VJbml0W2F0dHJpYnV0ZU5hbWVdID0gZ2l2ZW5WYWx1ZTsKKyAgICAgIHZh
ciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSgiIiwgcmVzcG9uc2VJbml0KTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMocmVzcG9uc2VbYXR0cmlidXRlTmFtZV0sIGV4cGVjdGVkVmFsdWUsCisgICAgICAg
ICJFeHBlY3QgcmVzcG9uc2UuIiArIGF0dHJpYnV0ZU5hbWUgKyAiIGlzICIgKyBleHBlY3RlZFZh
bHVlICsKKyAgICAgICAgIiB3aGVuIGluaXRpYWxpemVkIHdpdGggIiArIGdpdmVuVmFsdWUpOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5vaywgaXNPa1N0YXR1cyhyZXNwb25zZS5zdGF0
dXMpLAorICAgICAgICAiRXhwZWN0IHJlc3BvbnNlLm9rIGlzICIgKyBpc09rU3RhdHVzKHJlc3Bv
bnNlLnN0YXR1cykpOworICAgIH0KKyAgfSwgIkNoZWNrICIgKyBhdHRyaWJ1dGVOYW1lICsgIiBp
bml0IHZhbHVlcyBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIiKTsKK30KKwordGVzdChmdW5jdGlvbigp
IHsKKyAgY29uc3QgcmVzcG9uc2UxID0gbmV3IFJlc3BvbnNlKCIiKTsKKyAgYXNzZXJ0X2VxdWFs
cyhyZXNwb25zZTEuaGVhZGVycywgcmVzcG9uc2UxLmhlYWRlcnMpOworCisgIGNvbnN0IHJlc3Bv
bnNlMiA9IG5ldyBSZXNwb25zZSgiIiwgeyJoZWFkZXJzIjogeyJYLUZvbyI6ICJiYXIifX0pOwor
ICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlMi5oZWFkZXJzLCByZXNwb25zZTIuaGVhZGVycyk7Cisg
IGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZTIuaGVhZGVyczsKKyAgcmVzcG9uc2UyLmhlYWRlcnMu
c2V0KCJYLUZvbyIsICJxdXV4Iik7CisgIGFzc2VydF9lcXVhbHMoaGVhZGVycywgcmVzcG9uc2Uy
LmhlYWRlcnMpOworICBoZWFkZXJzLnNldCgiWC1PdGhlci1IZWFkZXIiLCAiYmF6Iik7CisgIGFz
c2VydF9lcXVhbHMoaGVhZGVycywgcmVzcG9uc2UyLmhlYWRlcnMpOworfSwgIlRlc3QgdGhhdCBS
ZXNwb25zZS5oZWFkZXJzIGhhcyB0aGUgW1NhbWVPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZSIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zZDEzMDFjODQ2ZTk0ZDVhZDQxODcxODc0M2Q3ZTQ2NGJlMGVkZmUzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorCitQQVNTIENoZWNrIGRlZmF1bHQgdmFsdWUgZm9yIHR5
cGUgYXR0cmlidXRlCitQQVNTIENoZWNrIGRlZmF1bHQgdmFsdWUgZm9yIHVybCBhdHRyaWJ1dGUK
K1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3Igb2sgYXR0cmlidXRlCitQQVNTIENoZWNrIGRl
ZmF1bHQgdmFsdWUgZm9yIHN0YXR1cyBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1
ZSBmb3Igc3RhdHVzVGV4dCBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3Ig
Ym9keSBhdHRyaWJ1dGUKK1BBU1MgQ2hlY2sgc3RhdHVzIGluaXQgdmFsdWVzIGFuZCBhc3NvY2lh
dGVkIGdldHRlcgorUEFTUyBDaGVjayBzdGF0dXNUZXh0IGluaXQgdmFsdWVzIGFuZCBhc3NvY2lh
dGVkIGdldHRlcgorUEFTUyBUZXN0IHRoYXQgUmVzcG9uc2UuaGVhZGVycyBoYXMgdGhlIFtTYW1l
T2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
aW5pdC0wMDEuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEuYW55Lndv
cmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBi
NTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5hbnkud29y
a2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5p
dC0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDdhZjIzZDMxMGYxYWNlOWFkOTgyN2I4ZGQ0ZTllNWNhMTdkMjZiNWUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtaW5pdC0wMDEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTwhZG9j
dHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
LSAgICA8dGl0bGU+UmVzcG9uc2UgaW5pdDogc2ltcGxlIGNhc2VzPC90aXRsZT4KLSAgICA8bWV0
YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9u
c2UiPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0
d2cub3JnLyNjb25jZXB0LXJlc3BvbnNlIj4KLSAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxl
PSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+
Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgICAgdmFyIGRlZmF1bHRW
YWx1ZXMgPSB7ICJ0eXBlIiA6ICJkZWZhdWx0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidXJsIiA6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvayIgOiB0cnVlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiIDogMjAwLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzdGF0dXNUZXh0IiA6ICIiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJib2R5IiA6IG51bGwKLSAgICAgIH07Ci0KLSAgICAgIHZhciBzdGF0dXNDb2RlcyA9
IHsgImdpdmVuVmFsdWVzIiA6IFsyMDAsIDMwMCwgNDAwLCA1MDAsIDU5OV0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICJleHBlY3RlZFZhbHVlcyIgOiBbMjAwLCAzMDAsIDQwMCwgNTAwLCA1
OTldCi0gICAgICB9OwotICAgICAgdmFyIHN0YXR1c1RleHRzID0geyAiZ2l2ZW5WYWx1ZXMiIDog
WyIiLCAiT0siLCAid2l0aCBzcGFjZSIsIFN0cmluZy5mcm9tQ2hhckNvZGUoMHg4MCldLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWyIiLCAiT0siLCAid2l0
aCBzcGFjZSIsIFN0cmluZy5mcm9tQ2hhckNvZGUoMHg4MCldCi0gICAgICB9OwotICAgICAgdmFy
IGluaXRWYWx1ZXNEaWN0ID0geyAic3RhdHVzIiA6IHN0YXR1c0NvZGVzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3RhdHVzVGV4dCIgOiBzdGF0dXNUZXh0cwotICAgICAgfTsKLQot
ICAgICAgZnVuY3Rpb24gaXNPa1N0YXR1cyhzdGF0dXMpIHsKLSAgICAgICAgcmV0dXJuIDIwMCA8
PSBzdGF0dXMgJiYgIDI5OSA+PSBzdGF0dXM7Ci0gICAgICB9Ci0KLSAgICAgIHZhciByZXNwb25z
ZSA9IG5ldyBSZXNwb25zZSgpOwotICAgICAgZm9yICh2YXIgYXR0cmlidXRlTmFtZSBpbiBkZWZh
dWx0VmFsdWVzKSB7Ci0gICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGV4
cGVjdGVkVmFsdWUgPSBkZWZhdWx0VmFsdWVzW2F0dHJpYnV0ZU5hbWVdOwotICAgICAgICAgIGFz
c2VydF9lcXVhbHMocmVzcG9uc2VbYXR0cmlidXRlTmFtZV0sIGV4cGVjdGVkVmFsdWUsCi0gICAg
ICAgICAgICAiRXhwZWN0IGRlZmF1bHQgcmVzcG9uc2UuIiArIGF0dHJpYnV0ZU5hbWUgKyAiIGlz
ICIgKyBleHBlY3RlZFZhbHVlKTsKLSAgICAgICAgfSwgIkNoZWNrIGRlZmF1bHQgdmFsdWUgZm9y
ICIgKyBhdHRyaWJ1dGVOYW1lICsgIiBhdHRyaWJ1dGUiKTsKLSAgICAgIH0KLQotICAgICAgZm9y
ICh2YXIgYXR0cmlidXRlTmFtZSBpbiBpbml0VmFsdWVzRGljdCkgewotICAgICAgICB0ZXN0KGZ1
bmN0aW9uKCkgewotICAgICAgICAgIHZhciB2YWx1ZXNUb1Rlc3QgPSBpbml0VmFsdWVzRGljdFth
dHRyaWJ1dGVOYW1lXTsKLSAgICAgICAgICBmb3IgKHZhciB2YWx1ZUlkeCBpbiB2YWx1ZXNUb1Rl
c3RbImdpdmVuVmFsdWVzIl0pIHsKLSAgICAgICAgICAgIHZhciBnaXZlblZhbHVlID0gdmFsdWVz
VG9UZXN0WyJnaXZlblZhbHVlcyJdW3ZhbHVlSWR4XTsKLSAgICAgICAgICAgIHZhciBleHBlY3Rl
ZFZhbHVlID0gdmFsdWVzVG9UZXN0WyJleHBlY3RlZFZhbHVlcyJdW3ZhbHVlSWR4XTsKLSAgICAg
ICAgICAgIHZhciByZXNwb25zZUluaXQgPSB7fTsKLSAgICAgICAgICAgIHJlc3BvbnNlSW5pdFth
dHRyaWJ1dGVOYW1lXSA9IGdpdmVuVmFsdWU7Ci0gICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBu
ZXcgUmVzcG9uc2UoIiIsIHJlc3BvbnNlSW5pdCk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlc3BvbnNlW2F0dHJpYnV0ZU5hbWVdLCBleHBlY3RlZFZhbHVlLAotICAgICAgICAgICAgICAi
RXhwZWN0IHJlc3BvbnNlLiIgKyBhdHRyaWJ1dGVOYW1lICsgIiBpcyAiICsgZXhwZWN0ZWRWYWx1
ZSArCi0gICAgICAgICAgICAgICIgd2hlbiBpbml0aWFsaXplZCB3aXRoICIgKyBnaXZlblZhbHVl
KTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2Uub2ssIGlzT2tTdGF0dXMocmVz
cG9uc2Uuc3RhdHVzKSwKLSAgICAgICAgICAgICAgIkV4cGVjdCByZXNwb25zZS5vayBpcyAiICsg
aXNPa1N0YXR1cyhyZXNwb25zZS5zdGF0dXMpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0sICJD
aGVjayAiICsgYXR0cmlidXRlTmFtZSArICIgaW5pdCB2YWx1ZXMgYW5kIGFzc29jaWF0ZWQgZ2V0
dGVyIik7Ci0gICAgICB9Ci0KLSAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGNvbnN0
IHJlc3BvbnNlMSA9IG5ldyBSZXNwb25zZSgiIik7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVz
cG9uc2UxLmhlYWRlcnMsIHJlc3BvbnNlMS5oZWFkZXJzKTsKLQotICAgICAgICBjb25zdCByZXNw
b25zZTIgPSBuZXcgUmVzcG9uc2UoIiIsIHsiaGVhZGVycyI6IHsiWC1Gb28iOiAiYmFyIn19KTsK
LSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZTIuaGVhZGVycywgcmVzcG9uc2UyLmhlYWRl
cnMpOwotICAgICAgICBjb25zdCBoZWFkZXJzID0gcmVzcG9uc2UyLmhlYWRlcnM7Ci0gICAgICAg
IHJlc3BvbnNlMi5oZWFkZXJzLnNldCgiWC1Gb28iLCAicXV1eCIpOwotICAgICAgICBhc3NlcnRf
ZXF1YWxzKGhlYWRlcnMsIHJlc3BvbnNlMi5oZWFkZXJzKTsKLSAgICAgICAgaGVhZGVycy5zZXQo
IlgtT3RoZXItSGVhZGVyIiwgImJheiIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMs
IHJlc3BvbnNlMi5oZWFkZXJzKTsKLSAgICAgIH0sICJUZXN0IHRoYXQgUmVzcG9uc2UuaGVhZGVy
cyBoYXMgdGhlIFtTYW1lT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUiKTsKLSAgICA8L3Njcmlw
dD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0w
MDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDItZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMGE1YjZiYWFkNTdiMWIwYmU5ODAyN2YwOWQ4
ZDgxOWFhMWJhZTJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDEwICswLDAgQEAKLQotUEFTUyBJbml0aWFsaXplIFJlc3BvbnNlIHdpdGggaGVhZGVycyB2
YWx1ZXMKLVBBU1MgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCBhcHBsaWNhdGlvbi9v
Y3RldC1iaW5hcnkKLVBBU1MgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCBtdWx0aXBh
cnQvZm9ybS1kYXRhCi1QQVNTIEluaXRpYWxpemUgUmVzcG9uc2UncyBib2R5IHdpdGggYXBwbGlj
YXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgKLVBBU1MgSW5pdGlhbGl6
ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgKLVBBU1MgUmVh
ZCBSZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KLVBBU1MgVGVzdGluZyBlbXB0eSBS
ZXNwb25zZSBDb250ZW50LVR5cGUgaGVhZGVyCi1QQVNTIFRlc3RpbmcgbnVsbCBSZXNwb25zZSBi
b2R5Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmFueS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjAwYTViNmJhYWQ1N2IxYjBiZTk4MDI3ZjA5ZDhkODE5YWExYmFlMmIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKKworUEFTUyBJbml0aWFsaXplIFJlc3BvbnNlIHdpdGggaGVhZGVycyB2YWx1ZXMKK1BB
U1MgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCBhcHBsaWNhdGlvbi9vY3RldC1iaW5h
cnkKK1BBU1MgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCBtdWx0aXBhcnQvZm9ybS1k
YXRhCitQQVNTIEluaXRpYWxpemUgUmVzcG9uc2UncyBib2R5IHdpdGggYXBwbGljYXRpb24veC13
d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgKK1BBU1MgSW5pdGlhbGl6ZSBSZXNwb25z
ZSdzIGJvZHkgd2l0aCB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgKK1BBU1MgUmVhZCBSZXNwb25z
ZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KK1BBU1MgVGVzdGluZyBlbXB0eSBSZXNwb25zZSBD
b250ZW50LVR5cGUgaGVhZGVyCitQQVNTIFRlc3RpbmcgbnVsbCBSZXNwb25zZSBib2R5CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmFueS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtaW5pdC0wMDIuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2
MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQt
MDAyLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0t
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LWluaXQtMDAyLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmFueS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YzBhNDZlNDgwNDA2YzM1OWFiY2M3Y2MzMTU4MTBhODQ0ZmZmNmVjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDIuYW55LmpzCkBAIC0wLDAgKzEsNjEgQEAK
Ky8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXNwb25zZSBp
bml0OiBib2R5IGFuZCBoZWFkZXJzCisvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxz
LmpzCisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBoZWFkZXJEaWN0ID0geyJuYW1lMSI6ICJ2
YWx1ZTEiLAorICAgICAgICAgICAgICAgICAgICAibmFtZTIiOiAidmFsdWUyIiwKKyAgICAgICAg
ICAgICAgICAgICAgIm5hbWUzIjogInZhbHVlMyIKKyAgfTsKKyAgdmFyIGhlYWRlcnMgPSBuZXcg
SGVhZGVycyhoZWFkZXJEaWN0KTsKKyAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCIiLCB7
ICJoZWFkZXJzIiA6IGhlYWRlcnMgfSkKKyAgZm9yICh2YXIgbmFtZSBpbiBoZWFkZXJEaWN0KSB7
CisgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5oZWFkZXJzLmdldChuYW1lKSwgaGVhZGVyRGlj
dFtuYW1lXSwKKyAgICAgICJyZXNwb25zZSdzIGhlYWRlcnMgaGFzICIgKyBuYW1lICsgIiA6ICIg
KyBoZWFkZXJEaWN0W25hbWVdKTsKKyAgfQorfSwgIkluaXRpYWxpemUgUmVzcG9uc2Ugd2l0aCBo
ZWFkZXJzIHZhbHVlcyIpOworCitmdW5jdGlvbiBjaGVja1Jlc3BvbnNlSW5pdChib2R5LCBib2R5
VHlwZSwgZXhwZWN0ZWRUZXh0Qm9keSkgeworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkg
eworICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZShib2R5KTsKKyAgICB2YXIgcmVzSGVh
ZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7CisgICAgdmFyIG1pbWUgPSByZXNIZWFkZXJzLmdldCgi
Q29udGVudC1UeXBlIik7CisgICAgYXNzZXJ0X3RydWUobWltZSAmJiBtaW1lLnNlYXJjaChib2R5
VHlwZSkgPiAtMSwgIkNvbnRlbnQtVHlwZSBoZWFkZXIgc2hvdWxkIGJlIFwiIiArIGJvZHlUeXBl
ICsgIlwiICIpOworICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbihib2R5
QXNUZXh0KSB7CisgICAgICAvL25vdCBlcXVhbHM6IGNhbm5vdCBndWVzcyBmb3JtRGF0YSBleGFj
dCB2YWx1ZQorICAgICAgYXNzZXJ0X3RydWUoYm9keUFzVGV4dC5zZWFyY2goZXhwZWN0ZWRUZXh0
Qm9keSkgPiAtMSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVzcG9uc2UgYm9keSIpOworICAgIH0p
OworICB9LCAiSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCAiICsgYm9keVR5cGUpOwor
fQorCit2YXIgYmxvYiA9IG5ldyBCbG9iKFsiVGhpcyBpcyBhIGJsb2IiXSwge3R5cGU6ICJhcHBs
aWNhdGlvbi9vY3RldC1iaW5hcnkifSk7Cit2YXIgZm9ybWFEYXRhID0gbmV3IEZvcm1EYXRhKCk7
Citmb3JtYURhdGEuYXBwZW5kKCJuYW1lIiwgInZhbHVlIik7Cit2YXIgdXJsU2VhcmNoUGFyYW1z
ID0gIlVSTFNlYXJjaFBhcmFtcyBhcmUgbm90IHN1cHBvcnRlZCI7CisvL2F2b2lkIHRlc3QgdGlt
ZW91dCBpZiBub3QgaW1wbGVtZW50ZWQKK2lmIChzZWxmLlVSTFNlYXJjaFBhcmFtcykKKyAgdXJs
U2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygibmFtZT12YWx1ZSIpOwordmFyIHVz
dlN0cmluZyA9ICJUaGlzIGlzIGEgVVNWU3RyaW5nIgorCitjaGVja1Jlc3BvbnNlSW5pdChibG9i
LCAiYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5IiwgIlRoaXMgaXMgYSBibG9iIik7CitjaGVja1Jl
c3BvbnNlSW5pdChmb3JtYURhdGEsICJtdWx0aXBhcnQvZm9ybS1kYXRhIiwgIm5hbWU9XCJuYW1l
XCJcclxuXHJcbnZhbHVlIik7CitjaGVja1Jlc3BvbnNlSW5pdCh1cmxTZWFyY2hQYXJhbXMsICJh
cHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIsICJuYW1lPXZh
bHVlIik7CitjaGVja1Jlc3BvbnNlSW5pdCh1c3ZTdHJpbmcsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9
VVRGLTgiLCAiVGhpcyBpcyBhIFVTVlN0cmluZyIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dGVzdCkgeworICB2YXIgYm9keSA9ICJUaGlzIGlzIHJlc3BvbnNlIGJvZHkiOworICB2YXIgcmVz
cG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSk7CisgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21T
dHJpbmcocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgYm9keSk7Cit9LCAiUmVhZCBSZXNwb25z
ZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRl
c3QpIHsKKyAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCJUaGlzIGlzIG15IGZvcmsiLCB7
ImhlYWRlcnMiIDogW1siQ29udGVudC1UeXBlIiwgIiJdXX0pOworICByZXR1cm4gcmVzcG9uc2Uu
YmxvYigpLnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAgIGFzc2VydF9lcXVhbHMoYmxvYi50eXBl
LCAiIiwgIkJsb2IgdHlwZSBzaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZyIpOworICB9KTsKK30s
ICJUZXN0aW5nIGVtcHR5IFJlc3BvbnNlIENvbnRlbnQtVHlwZSBoZWFkZXIiKTsKKwordGVzdChm
dW5jdGlvbigpIHsKKyAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6
IDIwNH0pOworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmJvZHksIG51bGwpOworfSwgIlRlc3Rp
bmcgbnVsbCBSZXNwb25zZSBib2R5Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0
LTAwMi5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwYTViNmJhYWQ1N2IxYjBiZTk4MDI3
ZjA5ZDhkODE5YWExYmFlMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0
LTAwMi5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgSW5p
dGlhbGl6ZSBSZXNwb25zZSB3aXRoIGhlYWRlcnMgdmFsdWVzCitQQVNTIEluaXRpYWxpemUgUmVz
cG9uc2UncyBib2R5IHdpdGggYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5CitQQVNTIEluaXRpYWxp
emUgUmVzcG9uc2UncyBib2R5IHdpdGggbXVsdGlwYXJ0L2Zvcm0tZGF0YQorUEFTUyBJbml0aWFs
aXplIFJlc3BvbnNlJ3MgYm9keSB3aXRoIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl
ZDtjaGFyc2V0PVVURi04CitQQVNTIEluaXRpYWxpemUgUmVzcG9uc2UncyBib2R5IHdpdGggdGV4
dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIFJlYWQgUmVzcG9uc2UncyBib2R5IGFzIHJlYWRh
YmxlU3RyZWFtCitQQVNTIFRlc3RpbmcgZW1wdHkgUmVzcG9uc2UgQ29udGVudC1UeXBlIGhlYWRl
cgorUEFTUyBUZXN0aW5nIG51bGwgUmVzcG9uc2UgYm9keQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1pbml0LTAwMi5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAw
Mi5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0
NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAy
LmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJl
ZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVz
dCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1pbml0LTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDIuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQ4YWY4MzM2NDRlZmVhNTM3Mzk2M2ZjMWNlMThhMjAy
ZGQ0NTRjNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1pbml0LTAwMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBA
QAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotICAgIDx0aXRsZT5SZXNwb25zZSBpbml0OiBib2R5IGFuZCBoZWFkZXJzPC90aXRs
ZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdn
Lm9yZy8jcmVzcG9uc2UiPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0
Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LXJlc3BvbnNlIj4KLSAgICA8bWV0YSBuYW1lPSJh
dXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNy
Zi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3V0aWxzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0PgotICAgICAgdGVzdChm
dW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGhlYWRlckRpY3QgPSB7Im5hbWUxIjogInZhbHVlMSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lMiI6ICJ2YWx1ZTIiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAibmFtZTMiOiAidmFsdWUzIgotICAgICAgICB9OwotICAgICAgICB2
YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlckRpY3QpOwotICAgICAgICB2YXIgcmVzcG9u
c2UgPSBuZXcgUmVzcG9uc2UoIiIsIHsgImhlYWRlcnMiIDogaGVhZGVycyB9KQotICAgICAgICBm
b3IgKHZhciBuYW1lIGluIGhlYWRlckRpY3QpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
c3BvbnNlLmhlYWRlcnMuZ2V0KG5hbWUpLCBoZWFkZXJEaWN0W25hbWVdLAotICAgICAgICAgICAi
cmVzcG9uc2UncyBoZWFkZXJzIGhhcyAiICsgbmFtZSArICIgOiAiICsgaGVhZGVyRGljdFtuYW1l
XSk7Ci0gICAgICAgIH0KLSAgICAgIH0sICJJbml0aWFsaXplIFJlc3BvbnNlIHdpdGggaGVhZGVy
cyB2YWx1ZXMiKTsKLQotICAgICAgZnVuY3Rpb24gY2hlY2tSZXNwb25zZUluaXQoYm9keSwgYm9k
eVR5cGUsIGV4cGVjdGVkVGV4dEJvZHkpIHsKLSAgICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHRlc3QpIHsKLSAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSk7Ci0g
ICAgICAgICAgdmFyIHJlc0hlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOwotICAgICAgICAgIHZh
ciBtaW1lID0gcmVzSGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpOwotICAgICAgICAgIGFzc2Vy
dF90cnVlKG1pbWUgJiYgbWltZS5zZWFyY2goYm9keVR5cGUpID4gLTEsICJDb250ZW50LVR5cGUg
aGVhZGVyIHNob3VsZCBiZSBcIiIgKyBib2R5VHlwZSArICJcIiAiKTsKLSAgICAgICAgICByZXR1
cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24oYm9keUFzVGV4dCkgewotICAgICAgICAg
ICAgLy9ub3QgZXF1YWxzOiBjYW5ub3QgZ3Vlc3MgZm9ybURhdGEgZXhhY3QgdmFsdWUKLSAgICAg
ICAgICAgIGFzc2VydF90cnVlKGJvZHlBc1RleHQuc2VhcmNoKGV4cGVjdGVkVGV4dEJvZHkpID4g
LTEsICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlc3BvbnNlIGJvZHkiKTsKLSAgICAgICAgICB9KTsK
LSAgICAgICAgfSwgIkluaXRpYWxpemUgUmVzcG9uc2UncyBib2R5IHdpdGggIiArIGJvZHlUeXBl
KTsKLSAgICAgIH0KLQotICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbIlRoaXMgaXMgYSBibG9i
Il0sIHt0eXBlOiAiYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5In0pOwotICAgICAgdmFyIGZvcm1h
RGF0YSA9IG5ldyBGb3JtRGF0YSgpOwotICAgICAgZm9ybWFEYXRhLmFwcGVuZCgibmFtZSIsICJ2
YWx1ZSIpOwotICAgICAgdmFyIHVybFNlYXJjaFBhcmFtcyA9ICJVUkxTZWFyY2hQYXJhbXMgYXJl
IG5vdCBzdXBwb3J0ZWQiOwotICAgICAgLy9hdm9pZCB0ZXN0IHRpbWVvdXQgaWYgbm90IGltcGxl
bWVudGVkCi0gICAgICBpZiAod2luZG93LlVSTFNlYXJjaFBhcmFtcykKLSAgICAgICAgdXJsU2Vh
cmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygibmFtZT12YWx1ZSIpOwotICAgICAgdmFy
IHVzdlN0cmluZyA9ICJUaGlzIGlzIGEgVVNWU3RyaW5nIgotCi0gICAgICBjaGVja1Jlc3BvbnNl
SW5pdChibG9iLCAiYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5IiwgIlRoaXMgaXMgYSBibG9iIik7
Ci0gICAgICBjaGVja1Jlc3BvbnNlSW5pdChmb3JtYURhdGEsICJtdWx0aXBhcnQvZm9ybS1kYXRh
IiwgIm5hbWU9XCJuYW1lXCJcclxuXHJcbnZhbHVlIik7Ci0gICAgICBjaGVja1Jlc3BvbnNlSW5p
dCh1cmxTZWFyY2hQYXJhbXMsICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hh
cnNldD1VVEYtOCIsICJuYW1lPXZhbHVlIik7Ci0gICAgICBjaGVja1Jlc3BvbnNlSW5pdCh1c3ZT
dHJpbmcsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiLCAiVGhpcyBpcyBhIFVTVlN0cmluZyIp
OwotCi0gICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgICAgICB2YXIgYm9k
eSA9ICJUaGlzIGlzIHJlc3BvbnNlIGJvZHkiOwotICAgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcg
UmVzcG9uc2UoYm9keSk7Ci0gICAgICAgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmco
cmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgYm9keSk7Ci0gICAgICB9LCAiUmVhZCBSZXNwb25z
ZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsKLQotICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHRlc3QpIHsKLSAgICAgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCJUaGlzIGlz
IG15IGZvcmsiLCB7ImhlYWRlcnMiIDogW1siQ29udGVudC1UeXBlIiwgIiJdXX0pOwotICAgICAg
ICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4oZnVuY3Rpb24oYmxvYikgewotICAgICAgICAg
IGFzc2VydF9lcXVhbHMoYmxvYi50eXBlLCAiIiwgIkJsb2IgdHlwZSBzaG91bGQgYmUgdGhlIGVt
cHR5IHN0cmluZyIpOwotICAgICAgICB9KTsKLSAgICAgIH0sICJUZXN0aW5nIGVtcHR5IFJlc3Bv
bnNlIENvbnRlbnQtVHlwZSBoZWFkZXIiKTsKLQotICAgICAgdGVzdChmdW5jdGlvbigpIHsKLSAg
ICAgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IDIwNH0pOwot
ICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmJvZHksIG51bGwpOwotICAgICAgfSwgIlRl
c3RpbmcgbnVsbCBSZXNwb25zZSBib2R5Iik7Ci0KLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZGNmNTEzZGMwZjFlYjMwZTM3N2Y5MTEyNTEwZWE3NWI3
NjZjYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDQgKzAsMCBAQAotCi1QQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRo
b2QgZXJyb3IoKQotUEFTUyB0aGUgJ2d1YXJkJyBvZiB0aGUgSGVhZGVycyBpbnN0YW5jZSBzaG91
bGQgYmUgaW1tdXRhYmxlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJv
ci5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLmFueS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFkY2Y1MTNkYzBmMWViMzBlMzc3ZjkxMTI1MTBlYTc1Yjc2
NmNiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5hbnkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVy
bmVkIGJ5IHN0YXRpYyBtZXRob2QgZXJyb3IoKQorUEFTUyB0aGUgJ2d1YXJkJyBvZiB0aGUgSGVh
ZGVycyBpbnN0YW5jZSBzaG91bGQgYmUgaW1tdXRhYmxlCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLXN0YXRpYy1lcnJvci5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJv
ci5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgw
YjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLmFu
eS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJL
aXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRp
Yy1lcnJvci5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtZXJyb3IuYW55LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQwOTdlYWIzN2I0YzkwZThjNDUzMDI3Yjk5ZmJmNGVkMzFhMDhiNDIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtZXJyb3IuYW55LmpzCkBAIC0wLDAgKzEs
MjIgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1SZXNw
b25zZTogZXJyb3Igc3RhdGljIG1ldGhvZAorCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgcmVz
cG9uc2VFcnJvciA9IFJlc3BvbnNlLmVycm9yKCk7CisgIGFzc2VydF9lcXVhbHMocmVzcG9uc2VF
cnJvci50eXBlLCAiZXJyb3IiLCAiTmV0d29yayBlcnJvciByZXNwb25zZSdzIHR5cGUgaXMgZXJy
b3IiKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZUVycm9yLnN0YXR1cywgMCwgIk5ldHdvcmsg
ZXJyb3IgcmVzcG9uc2UncyBzdGF0dXMgaXMgMCIpOworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNl
RXJyb3Iuc3RhdHVzVGV4dCwgIiIsICJOZXR3b3JrIGVycm9yIHJlc3BvbnNlJ3Mgc3RhdHVzVGV4
dCBpcyBlbXB0eSIpOworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlRXJyb3IuYm9keSwgbnVsbCwg
Ik5ldHdvcmsgZXJyb3IgcmVzcG9uc2UncyBib2R5IGlzIG51bGwiKTsKKworICBhc3NlcnRfdHJ1
ZShyZXNwb25zZUVycm9yLmhlYWRlcnMuZW50cmllcygpLm5leHQoKS5kb25lLCAiSGVhZGVycyBz
aG91bGQgYmUgZW1wdHkiKTsKK30sICJDaGVjayByZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMg
bWV0aG9kIGVycm9yKCkiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY29uc3QgaGVhZGVycyA9
IFJlc3BvbnNlLmVycm9yKCkuaGVhZGVyczsKKworICAvLyBBdm9pZCBmYWxzZSBwb3NpdGl2ZXMg
aWYgZXhwZWN0ZWQgQVBJIGlzIG5vdCBhdmFpbGFibGUKKyAgYXNzZXJ0X3RydWUoISFoZWFkZXJz
KTsKKyAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgaGVhZGVycy5hcHBlbmQsICdmdW5jdGlvbicpOwor
CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbiAoKSB7IGhlYWRlcnMuYXBw
ZW5kKCduYW1lJywgJ3ZhbHVlJyk7IH0pOworfSwgInRoZSAnZ3VhcmQnIG9mIHRoZSBIZWFkZXJz
IGluc3RhbmNlIHNob3VsZCBiZSBpbW11dGFibGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0YXRpYy1lcnJvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LXN0YXRpYy1lcnJvci5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWRjZjUx
M2RjMGYxZWIzMGUzNzdmOTExMjUxMGVhNzViNzY2Y2IwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorCitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2Qg
ZXJyb3IoKQorUEFTUyB0aGUgJ2d1YXJkJyBvZiB0aGUgSGVhZGVycyBpbnN0YW5jZSBzaG91bGQg
YmUgaW1tdXRhYmxlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5h
bnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtZXJyb3IuYW55Lndvcmtlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtZXJyb3IuYW55Lndvcmtl
ci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJL
aXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRp
Yy1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyZDZlODJkNDI3OWI3YzkxMWYzOGU0ZmU4Mjk0ZDAzYjUx
ZWM5ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCww
IEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPlJlc3BvbnNlOiBlcnJvciBzdGF0aWMgbWV0aG9kPC90aXRs
ZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdn
Lm9yZy8jcmVzcG9uc2UiPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0
Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LW5ldHdvcmstZXJyb3IiPgotICAgIDxtZXRhIG5h
bWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93
d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0g
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgcmVzcG9uc2VFcnJvciA9IFJlc3Bv
bnNlLmVycm9yKCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2VFcnJvci50eXBlLCAi
ZXJyb3IiLCAiTmV0d29yayBlcnJvciByZXNwb25zZSdzIHR5cGUgaXMgZXJyb3IiKTsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZUVycm9yLnN0YXR1cywgMCwgIk5ldHdvcmsgZXJyb3Ig
cmVzcG9uc2UncyBzdGF0dXMgaXMgMCIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNl
RXJyb3Iuc3RhdHVzVGV4dCwgIiIsICJOZXR3b3JrIGVycm9yIHJlc3BvbnNlJ3Mgc3RhdHVzVGV4
dCBpcyBlbXB0eSIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlRXJyb3IuYm9keSwg
bnVsbCwgIk5ldHdvcmsgZXJyb3IgcmVzcG9uc2UncyBib2R5IGlzIG51bGwiKTsKLQotICAgICAg
ICBhc3NlcnRfdHJ1ZShyZXNwb25zZUVycm9yLmhlYWRlcnMuZW50cmllcygpLm5leHQoKS5kb25l
LCAiSGVhZGVycyBzaG91bGQgYmUgZW1wdHkiKTsKLSAgICAgIH0sICJDaGVjayByZXNwb25zZSBy
ZXR1cm5lZCBieSBzdGF0aWMgbWV0aG9kIGVycm9yKCkiKTsKLQotICAgICAgdGVzdChmdW5jdGlv
bigpIHsKLSAgICAgICAgY29uc3QgaGVhZGVycyA9IFJlc3BvbnNlLmVycm9yKCkuaGVhZGVyczsK
LQotICAgICAgICAvLyBBdm9pZCBmYWxzZSBwb3NpdGl2ZXMgaWYgZXhwZWN0ZWQgQVBJIGlzIG5v
dCBhdmFpbGFibGUKLSAgICAgICAgYXNzZXJ0X3RydWUoISFoZWFkZXJzKTsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscyh0eXBlb2YgaGVhZGVycy5hcHBlbmQsICdmdW5jdGlvbicpOwotCi0gICAgICAg
IGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbiAoKSB7IGhlYWRlcnMuYXBwZW5k
KCduYW1lJywgJ3ZhbHVlJyk7IH0pOwotICAgICAgfSwgInRoZSAnZ3VhcmQnIG9mIHRoZSBIZWFk
ZXJzIGluc3RhbmNlIHNob3VsZCBiZSBpbW11dGFibGUiKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4OWNhNjk3NDNiN2ZiMjI4NWFhOGQ5
ZWFjNGVmZDQ4OTk5MDQwYmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLQotUEFTUyBDaGVjayBkZWZhdWx0IHJlZGlyZWN0
IHJlc3BvbnNlCi1QQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2Qg
cmVkaXJlY3QoKSwgc3RhdHVzID0gMzAxCi1QQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5
IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzAyCi1QQVNTIENoZWNrIHJlc3Bv
bnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzAzCi1Q
QVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwg
c3RhdHVzID0gMzA3Ci1QQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRo
b2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzA4Ci1QQVNTIENoZWNrIGVycm9yIHJldHVybmVkIHdo
ZW4gZ2l2aW5nIGludmFsaWQgdXJsIHRvIHJlZGlyZWN0KCkKLVBBU1MgQ2hlY2sgZXJyb3IgcmV0
dXJuZWQgd2hlbiBnaXZpbmcgaW52YWxpZCBzdGF0dXMgdG8gcmVkaXJlY3QoKSwgc3RhdHVzID0g
MjAwCi1QQVNTIENoZWNrIGVycm9yIHJldHVybmVkIHdoZW4gZ2l2aW5nIGludmFsaWQgc3RhdHVz
IHRvIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMwOQotUEFTUyBDaGVjayBlcnJvciByZXR1cm5lZCB3
aGVuIGdpdmluZyBpbnZhbGlkIHN0YXR1cyB0byByZWRpcmVjdCgpLCBzdGF0dXMgPSA0MDAKLVBB
U1MgQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hlbiBnaXZpbmcgaW52YWxpZCBzdGF0dXMgdG8gcmVk
aXJlY3QoKSwgc3RhdHVzID0gNTAwCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRp
Yy1yZWRpcmVjdC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGly
ZWN0LmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg5Y2E2OTc0M2I3ZmIyMjg1YWE4ZDll
YWM0ZWZkNDg5OTkwNDBiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRp
Yy1yZWRpcmVjdC5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKworUEFTUyBDaGVj
ayBkZWZhdWx0IHJlZGlyZWN0IHJlc3BvbnNlCitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVk
IGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzAxCitQQVNTIENoZWNrIHJl
c3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzAy
CitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3Qo
KSwgc3RhdHVzID0gMzAzCitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBt
ZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzA3CitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVy
bmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVkaXJlY3QoKSwgc3RhdHVzID0gMzA4CitQQVNTIENoZWNr
IGVycm9yIHJldHVybmVkIHdoZW4gZ2l2aW5nIGludmFsaWQgdXJsIHRvIHJlZGlyZWN0KCkKK1BB
U1MgQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hlbiBnaXZpbmcgaW52YWxpZCBzdGF0dXMgdG8gcmVk
aXJlY3QoKSwgc3RhdHVzID0gMjAwCitQQVNTIENoZWNrIGVycm9yIHJldHVybmVkIHdoZW4gZ2l2
aW5nIGludmFsaWQgc3RhdHVzIHRvIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMwOQorUEFTUyBDaGVj
ayBlcnJvciByZXR1cm5lZCB3aGVuIGdpdmluZyBpbnZhbGlkIHN0YXR1cyB0byByZWRpcmVjdCgp
LCBzdGF0dXMgPSA0MDAKK1BBU1MgQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hlbiBnaXZpbmcgaW52
YWxpZCBzdGF0dXMgdG8gcmVkaXJlY3QoKSwgc3RhdHVzID0gNTAwCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0
YXRpYy1yZWRpcmVjdC5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZj
NjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3Rh
dGljLXJlZGlyZWN0LmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRl
ZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMt
cmVkaXJlY3QuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3MWJhZWM0OTA5ZGU2N2I3ZmU4MDAxZTYwMGM3
ZDc3YzFkZjIzZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVk
aXJlY3QuYW55LmpzCkBAIC0wLDAgKzEsNDAgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29y
a2VyCisvLyBNRVRBOiB0aXRsZT1SZXNwb25zZTogcmVkaXJlY3Qgc3RhdGljIG1ldGhvZAorCit2
YXIgdXJsID0gImh0dHA6Ly90ZXN0LnVybDoxMjM0LyI7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICBy
ZWRpcmVjdFJlc3BvbnNlID0gUmVzcG9uc2UucmVkaXJlY3QodXJsKTsKKyAgYXNzZXJ0X2VxdWFs
cyhyZWRpcmVjdFJlc3BvbnNlLnR5cGUsICJkZWZhdWx0Iik7CisgIGFzc2VydF9mYWxzZShyZWRp
cmVjdFJlc3BvbnNlLnJlZGlyZWN0ZWQpOworICBhc3NlcnRfZmFsc2UocmVkaXJlY3RSZXNwb25z
ZS5vayk7CisgIGFzc2VydF9lcXVhbHMocmVkaXJlY3RSZXNwb25zZS5zdGF0dXMsIDMwMiwgIkRl
ZmF1bHQgcmVkaXJlY3Qgc3RhdHVzIGlzIDMwMiIpOworICBhc3NlcnRfZXF1YWxzKHJlZGlyZWN0
UmVzcG9uc2UuaGVhZGVycy5nZXQoIkxvY2F0aW9uIiksIHVybCwKKyAgICAicmVkaXJlY3RlZCBy
ZXNwb25zZSBoYXMgTG9jYXRpb24gaGVhZGVyIHdpdGggdGhlIGNvcnJlY3QgdXJsIik7CisgIGFz
c2VydF9lcXVhbHMocmVkaXJlY3RSZXNwb25zZS5zdGF0dXNUZXh0LCAiIik7Cit9LCAiQ2hlY2sg
ZGVmYXVsdCByZWRpcmVjdCByZXNwb25zZSIpOworCitbMzAxLCAzMDIsIDMwMywgMzA3LCAzMDhd
LmZvckVhY2goZnVuY3Rpb24oc3RhdHVzKSB7CisgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgcmVk
aXJlY3RSZXNwb25zZSA9IFJlc3BvbnNlLnJlZGlyZWN0KHVybCwgc3RhdHVzKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2UudHlwZSwgImRlZmF1bHQiKTsKKyAgICBhc3NlcnRf
ZmFsc2UocmVkaXJlY3RSZXNwb25zZS5yZWRpcmVjdGVkKTsKKyAgICBhc3NlcnRfZmFsc2UocmVk
aXJlY3RSZXNwb25zZS5vayk7CisgICAgYXNzZXJ0X2VxdWFscyhyZWRpcmVjdFJlc3BvbnNlLnN0
YXR1cywgc3RhdHVzLCAiUmVkaXJlY3Qgc3RhdHVzIGlzICIgKyBzdGF0dXMpOworICAgIGFzc2Vy
dF9lcXVhbHMocmVkaXJlY3RSZXNwb25zZS5oZWFkZXJzLmdldCgiTG9jYXRpb24iKSwgdXJsKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2Uuc3RhdHVzVGV4dCwgIiIpOworICB9
LCAiQ2hlY2sgcmVzcG9uc2UgcmV0dXJuZWQgYnkgc3RhdGljIG1ldGhvZCByZWRpcmVjdCgpLCBz
dGF0dXMgPSAiICsgc3RhdHVzKTsKK30pOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaW52
YWxpZFVybCA9ICJodHRwOi8vOlRoaXMgaXMgbm90IGFuIHVybCI7CisgIGFzc2VydF90aHJvd3Nf
anMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgUmVzcG9uc2UucmVkaXJlY3QoaW52YWxpZFVybCk7
IH0sCisgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7Cit9LCAiQ2hlY2sgZXJyb3Ig
cmV0dXJuZWQgd2hlbiBnaXZpbmcgaW52YWxpZCB1cmwgdG8gcmVkaXJlY3QoKSIpOworCit2YXIg
aW52YWxpZFJlZGlyZWN0U3RhdHVzID0gWzIwMCwgMzA5LCA0MDAsIDUwMF07CitpbnZhbGlkUmVk
aXJlY3RTdGF0dXMuZm9yRWFjaChmdW5jdGlvbihpbnZhbGlkU3RhdHVzKSB7CisgIHRlc3QoZnVu
Y3Rpb24oKSB7CisgICAgYXNzZXJ0X3Rocm93c19qcyhSYW5nZUVycm9yLCBmdW5jdGlvbigpIHsg
UmVzcG9uc2UucmVkaXJlY3QodXJsLCBpbnZhbGlkU3RhdHVzKTsgfSwKKyAgICAgICAgIkV4cGVj
dCBSYW5nZUVycm9yIGV4Y2VwdGlvbiIpOworICB9LCAiQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hl
biBnaXZpbmcgaW52YWxpZCBzdGF0dXMgdG8gcmVkaXJlY3QoKSwgc3RhdHVzID0gIiArIGludmFs
aWRTdGF0dXMpOworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJl
Y3QuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJl
Y3QuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg5Y2E2OTc0M2I3ZmIyMjg1
YWE4ZDllYWM0ZWZkNDg5OTkwNDBiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LXN0YXRpYy1yZWRpcmVjdC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBA
CisKK1BBU1MgQ2hlY2sgZGVmYXVsdCByZWRpcmVjdCByZXNwb25zZQorUEFTUyBDaGVjayByZXNw
b25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0aG9kIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMwMQor
UEFTUyBDaGVjayByZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0aG9kIHJlZGlyZWN0KCks
IHN0YXR1cyA9IDMwMgorUEFTUyBDaGVjayByZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0
aG9kIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMwMworUEFTUyBDaGVjayByZXNwb25zZSByZXR1cm5l
ZCBieSBzdGF0aWMgbWV0aG9kIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMwNworUEFTUyBDaGVjayBy
ZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0aG9kIHJlZGlyZWN0KCksIHN0YXR1cyA9IDMw
OAorUEFTUyBDaGVjayBlcnJvciByZXR1cm5lZCB3aGVuIGdpdmluZyBpbnZhbGlkIHVybCB0byBy
ZWRpcmVjdCgpCitQQVNTIENoZWNrIGVycm9yIHJldHVybmVkIHdoZW4gZ2l2aW5nIGludmFsaWQg
c3RhdHVzIHRvIHJlZGlyZWN0KCksIHN0YXR1cyA9IDIwMAorUEFTUyBDaGVjayBlcnJvciByZXR1
cm5lZCB3aGVuIGdpdmluZyBpbnZhbGlkIHN0YXR1cyB0byByZWRpcmVjdCgpLCBzdGF0dXMgPSAz
MDkKK1BBU1MgQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hlbiBnaXZpbmcgaW52YWxpZCBzdGF0dXMg
dG8gcmVkaXJlY3QoKSwgc3RhdHVzID0gNDAwCitQQVNTIENoZWNrIGVycm9yIHJldHVybmVkIHdo
ZW4gZ2l2aW5nIGludmFsaWQgc3RhdHVzIHRvIHJlZGlyZWN0KCksIHN0YXR1cyA9IDUwMAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QuYW55Lndvcmtlci5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0LmFueS53b3JrZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0LmFueS53b3JrZXIuaHRtbApA
QCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3Qg
aW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJl
Y3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmNjQ3YjZkZWJlYjg5MzBmOTg4NjhiMTA2NTJjZDhlMmNhNTI3
Mzg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAs
MCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotICAgIDx0aXRsZT5SZXNwb25zZTogcmVkaXJlY3Qgc3RhdGljIG1ldGhvZDwv
dGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndo
YXR3Zy5vcmcvI3Jlc3BvbnNlIj4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVkaXJlY3Qtc3RhdHVzIj4KLSAgICA8bWV0YSBuYW1l
PSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3
LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAg
ICAgdmFyIHVybCA9ICJodHRwOi8vdGVzdC51cmw6MTIzNC8iOwotICAgICAgdGVzdChmdW5jdGlv
bigpIHsKLSAgICAgICAgcmVkaXJlY3RSZXNwb25zZSA9IFJlc3BvbnNlLnJlZGlyZWN0KHVybCk7
Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocmVkaXJlY3RSZXNwb25zZS50eXBlLCAiZGVmYXVsdCIp
OwotICAgICAgICBhc3NlcnRfZmFsc2UocmVkaXJlY3RSZXNwb25zZS5yZWRpcmVjdGVkKTsKLSAg
ICAgICAgYXNzZXJ0X2ZhbHNlKHJlZGlyZWN0UmVzcG9uc2Uub2spOwotICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2Uuc3RhdHVzLCAzMDIsICJEZWZhdWx0IHJlZGlyZWN0IHN0
YXR1cyBpcyAzMDIiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWRpcmVjdFJlc3BvbnNlLmhl
YWRlcnMuZ2V0KCJMb2NhdGlvbiIpLCB1cmwsCi0gICAgICAgICAgInJlZGlyZWN0ZWQgcmVzcG9u
c2UgaGFzIExvY2F0aW9uIGhlYWRlciB3aXRoIHRoZSBjb3JyZWN0IHVybCIpOwotICAgICAgICBh
c3NlcnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2Uuc3RhdHVzVGV4dCwgIiIpOwotICAgICAgfSwg
IkNoZWNrIGRlZmF1bHQgcmVkaXJlY3QgcmVzcG9uc2UiKTsKLQotICAgICAgWzMwMSwgMzAyLCAz
MDMsIDMwNywgMzA4XS5mb3JFYWNoKGZ1bmN0aW9uKHN0YXR1cykgewotICAgICAgICB0ZXN0KGZ1
bmN0aW9uKCkgewotICAgICAgICAgIHJlZGlyZWN0UmVzcG9uc2UgPSBSZXNwb25zZS5yZWRpcmVj
dCh1cmwsIHN0YXR1cyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWRpcmVjdFJlc3BvbnNl
LnR5cGUsICJkZWZhdWx0Iik7Ci0gICAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlZGlyZWN0UmVzcG9u
c2UucmVkaXJlY3RlZCk7Ci0gICAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlZGlyZWN0UmVzcG9uc2Uu
b2spOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVkaXJlY3RSZXNwb25zZS5zdGF0dXMsIHN0
YXR1cywgIlJlZGlyZWN0IHN0YXR1cyBpcyAiICsgc3RhdHVzKTsKLSAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2UuaGVhZGVycy5nZXQoIkxvY2F0aW9uIiksIHVybCk7Ci0g
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWRpcmVjdFJlc3BvbnNlLnN0YXR1c1RleHQsICIiKTsK
LSAgICAgICAgfSwgIkNoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgcmVk
aXJlY3QoKSwgc3RhdHVzID0gIiArIHN0YXR1cyk7Ci0gICAgICB9KTsKLQotICAgICAgdGVzdChm
dW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGludmFsaWRVcmwgPSAiaHR0cDovLzpUaGlzIGlzIG5v
dCBhbiB1cmwiOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7IFJlc3BvbnNlLnJlZGlyZWN0KGludmFsaWRVcmwpOyB9LAotICAgICAgICAgICJFeHBlY3Qg
VHlwZUVycm9yIGV4Y2VwdGlvbiIpOwotICAgICAgfSwgIkNoZWNrIGVycm9yIHJldHVybmVkIHdo
ZW4gZ2l2aW5nIGludmFsaWQgdXJsIHRvIHJlZGlyZWN0KCkiKTsKLQotICAgICAgdmFyIGludmFs
aWRSZWRpcmVjdFN0YXR1cyA9IFsyMDAsIDMwOSwgNDAwLCA1MDBdOwotICAgICAgaW52YWxpZFJl
ZGlyZWN0U3RhdHVzLmZvckVhY2goZnVuY3Rpb24oaW52YWxpZFN0YXR1cykgewotICAgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgewotICAgICAgICAgIGFzc2VydF90aHJvd3NfanMoUmFuZ2VFcnJvciwg
ZnVuY3Rpb24oKSB7IFJlc3BvbnNlLnJlZGlyZWN0KHVybCwgaW52YWxpZFN0YXR1cyk7IH0sCi0g
ICAgICAgICAgICAgICJFeHBlY3QgUmFuZ2VFcnJvciBleGNlcHRpb24iKTsKLSAgICAgICAgfSwg
IkNoZWNrIGVycm9yIHJldHVybmVkIHdoZW4gZ2l2aW5nIGludmFsaWQgc3RhdHVzIHRvIHJlZGly
ZWN0KCksIHN0YXR1cyA9ICIgKyBpbnZhbGlkU3RhdHVzKTsKLSAgICAgIH0pOwotICAgIDwvc2Ny
aXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJl
YW0tZGlzdHVyYmVkLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1
cmJlZC0xLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDkxOTIy
MTE1NWM2Yzk0OGJhYWU5Y2Y4ZjNhMWExOTIwNzRkMDZmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVk
LTEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0KLVBBU1MgR2V0
dGluZyBibG9iIGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVk
LCBub3QgbG9ja2VkCi1QQVNTIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIHRoZSBSZXNwb25z
ZSBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZAotUEFTUyBHZXR0aW5nIGpzb24gYWZ0
ZXIgZ2V0dGluZyB0aGUgUmVzcG9uc2UgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQK
LVBBU1MgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBnZXR0aW5nIHRoZSBSZXNwb25zZSBib2R5
IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25z
ZS1zdHJlYW0tZGlzdHVyYmVkLTEuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0
cmVhbS1kaXN0dXJiZWQtMS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MTkyMjExNTVj
NmM5NDhiYWFlOWNmOGYzYTFhMTkyMDc0ZDA2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKKworUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVzcG9uc2UgYm9keSAt
IG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQKK1BBU1MgR2V0dGluZyB0ZXh0IGFmdGVyIGdldHRp
bmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkCitQQVNTIEdl
dHRpbmcganNvbiBhZnRlciBnZXR0aW5nIHRoZSBSZXNwb25zZSBib2R5IC0gbm90IGRpc3R1cmJl
ZCwgbm90IGxvY2tlZAorUEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgdGhl
IFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMS5hbnkuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0cmVhbS1kaXN0dXJiZWQtMS5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5
M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0xLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhp
cyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4g
dGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMS5hbnkuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4MDA0OWEyYTQ1
NWUxYWZjOWExZGYyNDQzMTliMTY0MTQxZjk5NWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEuYW55LmpzCkBAIC0wLDAgKzEsNDIgQEAKKy8vIE1F
VEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1Db25zdW1pbmcgUmVzcG9u
c2UgYm9keSBhZnRlciBnZXR0aW5nIGEgUmVhZGFibGVTdHJlYW0KKworZnVuY3Rpb24gY3JlYXRl
UmVzcG9uc2VXaXRoUmVhZGFibGVTdHJlYW0oY2FsbGJhY2spIHsKKyAgICByZXR1cm4gZmV0Y2go
Ii4uL3Jlc291cmNlcy9kYXRhLmpzb24iKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAg
ICAgIHZhciByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOworICAgICAgICByZWFk
ZXIucmVsZWFzZUxvY2soKTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHJlc3BvbnNlKTsKKyAg
ICB9KTsKK30KKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBjcmVhdGVS
ZXNwb25zZVdpdGhSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICBy
ZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAgICAgICAgICAg
YXNzZXJ0X3RydWUoYmxvYiBpbnN0YW5jZW9mIEJsb2IpOworICAgICAgICB9KTsKKyAgICB9KTsK
K30sICJHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVzcG9uc2UgYm9keSAtIG5vdCBk
aXN0dXJiZWQsIG5vdCBsb2NrZWQiKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICAg
IHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25z
ZSkgeworICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24odGV4dCkg
eworICAgICAgICAgICAgYXNzZXJ0X3RydWUodGV4dC5sZW5ndGggPiAwKTsKKyAgICAgICAgfSk7
CisgICAgfSk7Cit9LCAiR2V0dGluZyB0ZXh0IGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNlIGJv
ZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlv
bigpIHsKKyAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoUmVhZGFibGVTdHJlYW0oZnVuY3Rp
b24ocmVzcG9uc2UpIHsKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKS50aGVuKGZ1bmN0
aW9uKGpzb24pIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGpzb24sICJvYmpl
Y3QiKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9LCAiR2V0dGluZyBqc29uIGFmdGVyIGdldHRp
bmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIik7CisKK3By
b21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoUmVh
ZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNl
LmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbihhcnJheUJ1ZmZlcikgeworICAgICAgICAgICAg
YXNzZXJ0X3RydWUoYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCA+IDApOworICAgICAgICB9KTsKKyAg
ICB9KTsKK30sICJHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNl
IGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDkxOTIyMTE1NWM2Yzk0OGJhYWU5Y2Y4ZjNhMWExOTIwNzRkMDZmMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMS5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIg
Z2V0dGluZyB0aGUgUmVzcG9uc2UgYm9keSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQKK1BB
U1MgR2V0dGluZyB0ZXh0IGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3QgZGlz
dHVyYmVkLCBub3QgbG9ja2VkCitQQVNTIEdldHRpbmcganNvbiBhZnRlciBnZXR0aW5nIHRoZSBS
ZXNwb25zZSBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZAorUEFTUyBHZXR0aW5nIGFy
cmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgdGhlIFJlc3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVk
LCBub3QgbG9ja2VkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJi
ZWQtMS5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTEu
YW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUw
NjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTEuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBs
YXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3Ry
ZWFtLWRpc3R1cmJlZC0xLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5ZGI4
Zjc3YjliYWRjMzQ0OGQ1Y2U2MDk5ZWYyYmE4MjA1N2ExNDguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJl
ZC0xLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4K
LTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPHRpdGxl
PkNvbnN1bWluZyBSZXNwb25zZSBib2R5IGFmdGVyIGdldHRpbmcgYSBSZWFkYWJsZVN0cmVhbTwv
dGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndo
YXR3Zy5vcmcvI3Jlc3BvbnNlIj4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keS1taXhpbiI+Ci0gICAgPG1ldGEgbmFtZT0iYXV0
aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYu
Y2Fub24uZnIiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLQotZnVuY3Rp
b24gY3JlYXRlUmVzcG9uc2VXaXRoUmVhZGFibGVTdHJlYW0oY2FsbGJhY2spIHsKLSAgICByZXR1
cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRhLmpzb24iKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNl
KSB7Ci0gICAgICAgIHZhciByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOwotICAg
ICAgICByZWFkZXIucmVsZWFzZUxvY2soKTsKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHJlc3Bv
bnNlKTsKLSAgICB9KTsKLX0KLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgewotICAgIHJldHVy
biBjcmVhdGVSZXNwb25zZVdpdGhSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgewot
ICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4oZnVuY3Rpb24oYmxvYikgewotICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoYmxvYiBpbnN0YW5jZW9mIEJsb2IpOwotICAgICAgICB9KTsK
LSAgICB9KTsKLX0sICJHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyB0aGUgUmVzcG9uc2UgYm9k
eSAtIG5vdCBkaXN0dXJiZWQsIG5vdCBsb2NrZWQiKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KCkgewotICAgIHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhSZWFkYWJsZVN0cmVhbShmdW5jdGlv
bihyZXNwb25zZSkgewotICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rp
b24odGV4dCkgewotICAgICAgICAgICAgYXNzZXJ0X3RydWUodGV4dC5sZW5ndGggPiAwKTsKLSAg
ICAgICAgfSk7Ci0gICAgfSk7Ci19LCAiR2V0dGluZyB0ZXh0IGFmdGVyIGdldHRpbmcgdGhlIFJl
c3BvbnNlIGJvZHkgLSBub3QgZGlzdHVyYmVkLCBub3QgbG9ja2VkIik7Ci0KLXByb21pc2VfdGVz
dChmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoUmVhZGFibGVTdHJl
YW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKS50
aGVuKGZ1bmN0aW9uKGpzb24pIHsKLSAgICAgICAgICAgIGFzc2VydF90cnVlKHR5cGVvZiBqc29u
ID09PSAib2JqZWN0Iik7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSwgIkdldHRpbmcganNvbiBh
ZnRlciBnZXR0aW5nIHRoZSBSZXNwb25zZSBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tl
ZCIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlc3Bv
bnNlV2l0aFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgIHJldHVy
biByZXNwb25zZS5hcnJheUJ1ZmZlcigpLnRoZW4oZnVuY3Rpb24oYXJyYXlCdWZmZXIpIHsKLSAg
ICAgICAgICAgIGFzc2VydF90cnVlKGFycmF5QnVmZmVyLmJ5dGVMZW5ndGggPiAwKTsKLSAgICAg
ICAgfSk7Ci0gICAgfSk7Ci19LCAiR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBnZXR0aW5nIHRo
ZSBSZXNwb25zZSBib2R5IC0gbm90IGRpc3R1cmJlZCwgbm90IGxvY2tlZCIpOwotCi0gICAgPC9z
Y3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0
cmVhbS1kaXN0dXJiZWQtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMmVl
YjFmMTcyMjY5MzQ3ZDVhNTI4NWMyN2NiZDJiYTVjZGVjNjAwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJi
ZWQtMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLQotUEFTUyBH
ZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXNwb25zZSBib2R5Ci1QQVNTIEdl
dHRpbmcgdGV4dCBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlc3BvbnNlIGJvZHkKLVBBU1MgR2V0
dGluZyBqc29uIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVzcG9uc2UgYm9keQotUEFTUyBHZXR0
aW5nIGFycmF5QnVmZmVyIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVzcG9uc2UgYm9keQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMi5hbnktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjEyZWViMWYxNzIyNjkzNDdkNWE1Mjg1YzI3Y2JkMmJhNWNkZWM2MDAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgZ2V0
dGluZyBhIGxvY2tlZCBSZXNwb25zZSBib2R5CitQQVNTIEdldHRpbmcgdGV4dCBhZnRlciBnZXR0
aW5nIGEgbG9ja2VkIFJlc3BvbnNlIGJvZHkKK1BBU1MgR2V0dGluZyBqc29uIGFmdGVyIGdldHRp
bmcgYSBsb2NrZWQgUmVzcG9uc2UgYm9keQorUEFTUyBHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVy
IGdldHRpbmcgYSBsb2NrZWQgUmVzcG9uc2UgYm9keQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0t
ZGlzdHVyYmVkLTIuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2
MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVh
bS1kaXN0dXJiZWQtMi5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0
ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3Ry
ZWFtLWRpc3R1cmJlZC0yLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2ZmNTQ3NTU2ZTcyNGRiMGUxYjYy
ZGEzNmY3MDQxZTUwMzM5MWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3Ry
ZWFtLWRpc3R1cmJlZC0yLmFueS5qcwpAQCAtMCwwICsxLDMzIEBACisvLyBNRVRBOiBnbG9iYWw9
d2luZG93LHdvcmtlcgorLy8gTUVUQTogdGl0bGU9Q29uc3VtaW5nIFJlc3BvbnNlIGJvZHkgYWZ0
ZXIgZ2V0dGluZyBhIFJlYWRhYmxlU3RyZWFtCisKK2Z1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlV2l0
aExvY2tlZFJlYWRhYmxlU3RyZWFtKGNhbGxiYWNrKSB7CisgICAgcmV0dXJuIGZldGNoKCIuLi9y
ZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICB2
YXIgcmVhZGVyID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsKKyAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKHJlc3BvbnNlKTsKKyAgICB9KTsKK30KKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRl
c3QpIHsKKyAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoTG9ja2VkUmVhZGFibGVTdHJlYW0o
ZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0
ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNlLmJsb2IoKSk7CisgICAgfSk7Cit9LCAiR2V0dGluZyBi
bG9iIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVzcG9uc2UgYm9keSIpOworCitwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odGVzdCkgeworICAgIHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhMb2NrZWRS
ZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICByZXR1cm4gcHJvbWlz
ZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcmVzcG9uc2UudGV4dCgpKTsKKyAgICB9KTsK
K30sICJHZXR0aW5nIHRleHQgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXNwb25zZSBib2R5Iik7
CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3Bv
bnNlV2l0aExvY2tlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAg
IHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5qc29u
KCkpOworICAgIH0pOworfSwgIkdldHRpbmcganNvbiBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJl
c3BvbnNlIGJvZHkiKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICByZXR1
cm4gY3JlYXRlUmVzcG9uc2VXaXRoTG9ja2VkUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9u
c2UpIHsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3Is
IHJlc3BvbnNlLmFycmF5QnVmZmVyKCkpOworICAgIH0pOworfSwgIkdldHRpbmcgYXJyYXlCdWZm
ZXIgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXNwb25zZSBib2R5Iik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55Lndvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55Lndvcmtlci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTJlZWIxZjE3MjI2OTM0N2Q1YTUyODVjMjdjYmQyYmE1Y2RlYzYwMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMi5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBHZXR0aW5nIGJsb2Ig
YWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXNwb25zZSBib2R5CitQQVNTIEdldHRpbmcgdGV4dCBh
ZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlc3BvbnNlIGJvZHkKK1BBU1MgR2V0dGluZyBqc29uIGFm
dGVyIGdldHRpbmcgYSBsb2NrZWQgUmVzcG9uc2UgYm9keQorUEFTUyBHZXR0aW5nIGFycmF5QnVm
ZmVyIGFmdGVyIGdldHRpbmcgYSBsb2NrZWQgUmVzcG9uc2UgYm9keQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0yLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0yLmFueS53b3JrZXIuaHRtbApAQCAt
MCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVk
LTIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMi5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NWNjNGE1OTcwNjI1OWU2ZTViZjk1YTgwMzIzMjhkNjQ0
YjcxZTY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NDggKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5Db25zdW1pbmcgUmVzcG9uc2UgYm9keSBhZnRl
ciBnZXR0aW5nIGEgUmVhZGFibGVTdHJlYW08L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZSI+Ci0gICAgPG1l
dGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2JvZHkt
bWl4aW4iPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZy
YW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxi
b2R5PgotICAgIDxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlV2l0aExvY2tlZFJl
YWRhYmxlU3RyZWFtKGNhbGxiYWNrKSB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMv
ZGF0YS5qc29uIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICB2YXIgcmVhZGVy
ID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHJl
c3BvbnNlKTsKLSAgICB9KTsKLX0KLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAg
ICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoTG9ja2VkUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24o
cmVzcG9uc2UpIHsKLSAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBl
RXJyb3IsIHJlc3BvbnNlLmJsb2IoKSk7Ci0gICAgfSk7Ci19LCAiR2V0dGluZyBibG9iIGFmdGVy
IGdldHRpbmcgYSBsb2NrZWQgUmVzcG9uc2UgYm9keSIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rp
b24odGVzdCkgewotICAgIHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhMb2NrZWRSZWFkYWJsZVN0
cmVhbShmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3Rz
X2pzKHRlc3QsIFR5cGVFcnJvciwgcmVzcG9uc2UudGV4dCgpKTsKLSAgICB9KTsKLX0sICJHZXR0
aW5nIHRleHQgYWZ0ZXIgZ2V0dGluZyBhIGxvY2tlZCBSZXNwb25zZSBib2R5Iik7Ci0KLXByb21p
c2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7Ci0gICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aExv
Y2tlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgIHJldHVybiBw
cm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5qc29uKCkpOwotICAg
IH0pOwotfSwgIkdldHRpbmcganNvbiBhZnRlciBnZXR0aW5nIGEgbG9ja2VkIFJlc3BvbnNlIGJv
ZHkiKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICByZXR1cm4gY3JlYXRl
UmVzcG9uc2VXaXRoTG9ja2VkUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAg
ICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNl
LmFycmF5QnVmZmVyKCkpOwotICAgIH0pOwotfSwgIkdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIg
Z2V0dGluZyBhIGxvY2tlZCBSZXNwb25zZSBib2R5Iik7Ci0KLSAgICA8L3NjcmlwdD4KLSAgPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJl
ZC0zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiNWMxZmJhYTBjNTAyMTY2
ZjgyODM0NmIwYjlmYjM2ZTEyZjU2MTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0zLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1QQVNTIEdldHRpbmcgYmxvYiBh
ZnRlciByZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5Ci1QQVNTIEdldHRpbmcgdGV4dCBhZnRlciBy
ZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5Ci1QQVNTIEdldHRpbmcganNvbiBhZnRlciByZWFkaW5n
IHRoZSBSZXNwb25zZSBib2R5Ci1QQVNTIEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgcmVhZGlu
ZyB0aGUgUmVzcG9uc2UgYm9keQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0t
ZGlzdHVyYmVkLTMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0
dXJiZWQtMy5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNWMxZmJhYTBjNTAyMTY2Zjgy
ODM0NmIwYjlmYjM2ZTEyZjU2MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1z
dHJlYW0tZGlzdHVyYmVkLTMuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFT
UyBHZXR0aW5nIGJsb2IgYWZ0ZXIgcmVhZGluZyB0aGUgUmVzcG9uc2UgYm9keQorUEFTUyBHZXR0
aW5nIHRleHQgYWZ0ZXIgcmVhZGluZyB0aGUgUmVzcG9uc2UgYm9keQorUEFTUyBHZXR0aW5nIGpz
b24gYWZ0ZXIgcmVhZGluZyB0aGUgUmVzcG9uc2UgYm9keQorUEFTUyBHZXR0aW5nIGFycmF5QnVm
ZmVyIGFmdGVyIHJlYWRpbmcgdGhlIFJlc3BvbnNlIGJvZHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0zLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3Ry
ZWFtLWRpc3R1cmJlZC0zLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1
NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1z
dHJlYW0tZGlzdHVyYmVkLTMuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUg
aXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVt
cGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0zLmFueS5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LXN0cmVhbS1kaXN0dXJiZWQtMy5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJjMTE2MjVlYjQ1NDIzN2Y0
Mjk2ZWFhY2Q5YzIxMzE5MjE0NmYzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LXN0cmVhbS1kaXN0dXJiZWQtMy5hbnkuanMKQEAgLTAsMCArMSwzNCBAQAorLy8gTUVUQTogZ2xv
YmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPUNvbnN1bWluZyBSZXNwb25zZSBib2R5
IGFmdGVyIGdldHRpbmcgYSBSZWFkYWJsZVN0cmVhbQorCitmdW5jdGlvbiBjcmVhdGVSZXNwb25z
ZVdpdGhEaXN0dXJiZWRSZWFkYWJsZVN0cmVhbShjYWxsYmFjaykgeworICAgIHJldHVybiBmZXRj
aCgiLi4vcmVzb3VyY2VzL2RhdGEuanNvbiIpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAg
ICAgICAgdmFyIHJlYWRlciA9IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7CisgICAgICAgIHJl
YWRlci5yZWFkKCk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhyZXNwb25zZSk7CisgICAgfSk7
Cit9CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJl
c3BvbnNlV2l0aERpc3R1cmJlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Cisg
ICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25z
ZS5ibG9iKCkpOworICAgIH0pOworfSwgIkdldHRpbmcgYmxvYiBhZnRlciByZWFkaW5nIHRoZSBS
ZXNwb25zZSBib2R5Iik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0
dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aERpc3R1cmJlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJl
c3BvbnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVy
cm9yLCByZXNwb25zZS50ZXh0KCkpOworICAgIH0pOworfSwgIkdldHRpbmcgdGV4dCBhZnRlciBy
ZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5Iik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0
KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aERpc3R1cmJlZFJlYWRhYmxlU3RyZWFt
KGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanMo
dGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5qc29uKCkpOworICAgIH0pOworfSwgIkdldHRpbmcg
anNvbiBhZnRlciByZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5Iik7CisKK3Byb21pc2VfdGVzdChm
dW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aERpc3R1cmJlZFJl
YWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNl
X3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5hcnJheUJ1ZmZlcigpKTsKKyAg
ICB9KTsKK30sICJHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIHJlYWRpbmcgdGhlIFJlc3BvbnNl
IGJvZHkiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQt
My5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjVjMWZiYWEwYzUwMjE2NmY4
MjgzNDZiMGI5ZmIzNmUxMmY1NjE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
c3RyZWFtLWRpc3R1cmJlZC0zLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorCitQQVNTIEdldHRpbmcgYmxvYiBhZnRlciByZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5CitQ
QVNTIEdldHRpbmcgdGV4dCBhZnRlciByZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5CitQQVNTIEdl
dHRpbmcganNvbiBhZnRlciByZWFkaW5nIHRoZSBSZXNwb25zZSBib2R5CitQQVNTIEdldHRpbmcg
YXJyYXlCdWZmZXIgYWZ0ZXIgcmVhZGluZyB0aGUgUmVzcG9uc2UgYm9keQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTMuYW55Lndvcmtlci5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0zLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0zLmFueS53b3JrZXIuaHRtbApA
QCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3Qg
aW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVy
YmVkLTMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTUzNTdlNmZkZGNhODY4NTA3YTE3YTI5NTVkZWE0
YWJjYjU1ZjFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNDkgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5Db25zdW1pbmcgUmVzcG9uc2UgYm9keSBh
ZnRlciBnZXR0aW5nIGEgUmVhZGFibGVTdHJlYW08L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZSI+Ci0gICAg
PG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2Jv
ZHktbWl4aW4iPgotICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNo
IEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0g
IDxib2R5PgotICAgIDxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlV2l0aERpc3R1
cmJlZFJlYWRhYmxlU3RyZWFtKGNhbGxiYWNrKSB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNv
dXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICB2YXIg
cmVhZGVyID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsKLSAgICAgICAgcmVhZGVyLnJlYWQo
KTsKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHJlc3BvbnNlKTsKLSAgICB9KTsKLX0KLQotcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRo
RGlzdHVyYmVkUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgcmV0
dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNlLmJsb2IoKSk7
Ci0gICAgfSk7Ci19LCAiR2V0dGluZyBibG9iIGFmdGVyIHJlYWRpbmcgdGhlIFJlc3BvbnNlIGJv
ZHkiKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICByZXR1cm4gY3JlYXRl
UmVzcG9uc2VXaXRoRGlzdHVyYmVkUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsK
LSAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3Bv
bnNlLnRleHQoKSk7Ci0gICAgfSk7Ci19LCAiR2V0dGluZyB0ZXh0IGFmdGVyIHJlYWRpbmcgdGhl
IFJlc3BvbnNlIGJvZHkiKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICBy
ZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoRGlzdHVyYmVkUmVhZGFibGVTdHJlYW0oZnVuY3Rpb24o
cmVzcG9uc2UpIHsKLSAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBl
RXJyb3IsIHJlc3BvbnNlLmpzb24oKSk7Ci0gICAgfSk7Ci19LCAiR2V0dGluZyBqc29uIGFmdGVy
IHJlYWRpbmcgdGhlIFJlc3BvbnNlIGJvZHkiKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRl
c3QpIHsKLSAgICByZXR1cm4gY3JlYXRlUmVzcG9uc2VXaXRoRGlzdHVyYmVkUmVhZGFibGVTdHJl
YW0oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19q
cyh0ZXN0LCBUeXBlRXJyb3IsIHJlc3BvbnNlLmFycmF5QnVmZmVyKCkpOwotICAgIH0pOwotfSwg
IkdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgcmVhZGluZyB0aGUgUmVzcG9uc2UgYm9keSIpOwot
Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1z
dHJlYW0tZGlzdHVyYmVkLTQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4OTdkYTM0ZjMyMTRhMDBkNmFjNmM1MmIzOGUwMDcxMWE3NTQ1MDg4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVh
bS1kaXN0dXJiZWQtNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAK
LQotUEFTUyBHZXR0aW5nIGJsb2IgYWZ0ZXIgY2FuY2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keQot
UEFTUyBHZXR0aW5nIHRleHQgYWZ0ZXIgY2FuY2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keQotUEFT
UyBHZXR0aW5nIGpzb24gYWZ0ZXIgY2FuY2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keQotUEFTUyBH
ZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGNhbmNlbGxpbmcgdGhlIFJlc3BvbnNlIGJvZHkKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC00LmFueS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTQuYW55LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44OTdkYTM0ZjMyMTRhMDBkNmFjNmM1MmIzOGUwMDcxMWE3NTQ1MDg4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC00LmFueS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgR2V0dGluZyBibG9iIGFmdGVyIGNh
bmNlbGxpbmcgdGhlIFJlc3BvbnNlIGJvZHkKK1BBU1MgR2V0dGluZyB0ZXh0IGFmdGVyIGNhbmNl
bGxpbmcgdGhlIFJlc3BvbnNlIGJvZHkKK1BBU1MgR2V0dGluZyBqc29uIGFmdGVyIGNhbmNlbGxp
bmcgdGhlIFJlc3BvbnNlIGJvZHkKK1BBU1MgR2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBjYW5j
ZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0
cmVhbS1kaXN0dXJiZWQtNC5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJi
ZWQtNC5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYw
OTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1
cmJlZC00LmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0
IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0cmVhbS1kaXN0dXJiZWQtNC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTQuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4MzMxYWUxZDBjOGE3ZTUyZWNiNzFjOGM1MTMx
ODE4YzE3ZTEwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTQuYW55LmpzCkBAIC0wLDAgKzEsMzMgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3cs
d29ya2VyCisvLyBNRVRBOiB0aXRsZT1Db25zdW1pbmcgUmVzcG9uc2UgYm9keSBhZnRlciBnZXR0
aW5nIGEgUmVhZGFibGVTdHJlYW0KKworZnVuY3Rpb24gY3JlYXRlUmVzcG9uc2VXaXRoQ2FuY2Vs
bGVkUmVhZGFibGVTdHJlYW0oY2FsbGJhY2spIHsKKyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291
cmNlcy9kYXRhLmpzb24iKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJlc3Bv
bnNlLmJvZHkuY2FuY2VsKCk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhyZXNwb25zZSk7Cisg
ICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGNy
ZWF0ZVJlc3BvbnNlV2l0aENhbmNlbGxlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNl
KSB7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCBy
ZXNwb25zZS5ibG9iKCkpOworICAgIH0pOworfSwgIkdldHRpbmcgYmxvYiBhZnRlciBjYW5jZWxs
aW5nIHRoZSBSZXNwb25zZSBib2R5Iik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7
CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aENhbmNlbGxlZFJlYWRhYmxlU3RyZWFtKGZ1
bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVz
dCwgVHlwZUVycm9yLCByZXNwb25zZS50ZXh0KCkpOworICAgIH0pOworfSwgIkdldHRpbmcgdGV4
dCBhZnRlciBjYW5jZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5Iik7CisKK3Byb21pc2VfdGVzdChm
dW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNlV2l0aENhbmNlbGxlZFJl
YWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiBwcm9taXNl
X3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5qc29uKCkpOworICAgIH0pOwor
fSwgIkdldHRpbmcganNvbiBhZnRlciBjYW5jZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5Iik7CisK
K3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGNyZWF0ZVJlc3BvbnNl
V2l0aENhbmNlbGxlZFJlYWRhYmxlU3RyZWFtKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAg
IHJldHVybiBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZXNwb25zZS5hcnJh
eUJ1ZmZlcigpKTsKKyAgICB9KTsKK30sICJHZXR0aW5nIGFycmF5QnVmZmVyIGFmdGVyIGNhbmNl
bGxpbmcgdGhlIFJlc3BvbnNlIGJvZHkiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0
cmVhbS1kaXN0dXJiZWQtNC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LXN0cmVhbS1kaXN0dXJiZWQtNC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
OTdkYTM0ZjMyMTRhMDBkNmFjNmM1MmIzOGUwMDcxMWE3NTQ1MDg4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC00LmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIEdldHRpbmcgYmxvYiBhZnRlciBjYW5jZWxsaW5n
IHRoZSBSZXNwb25zZSBib2R5CitQQVNTIEdldHRpbmcgdGV4dCBhZnRlciBjYW5jZWxsaW5nIHRo
ZSBSZXNwb25zZSBib2R5CitQQVNTIEdldHRpbmcganNvbiBhZnRlciBjYW5jZWxsaW5nIHRoZSBS
ZXNwb25zZSBib2R5CitQQVNTIEdldHRpbmcgYXJyYXlCdWZmZXIgYWZ0ZXIgY2FuY2VsbGluZyB0
aGUgUmVzcG9uc2UgYm9keQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTQuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJl
ZC00LmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYw
YTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFt
LWRpc3R1cmJlZC00LmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTQuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LXN0cmVhbS1kaXN0dXJiZWQtNC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
YzM4NzY5OTM1MzMyMGZkMDI1NjA2MjZkYTU0NTJhYzcxNTYxZmRlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0
dXJiZWQtNC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPCFkb2N0eXBlIGh0
bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0
aXRsZT5Db25zdW1pbmcgUmVzcG9uc2UgYm9keSBhZnRlciBnZXR0aW5nIGEgUmVhZGFibGVTdHJl
YW08L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3Bl
Yy53aGF0d2cub3JnLyNyZXNwb25zZSI+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgotICAgIDxtZXRhIG5hbWU9
ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cu
Y3JmLmNhbm9uLmZyIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIGNyZWF0ZVJlc3BvbnNlV2l0aENhbmNlbGxlZFJlYWRhYmxlU3RyZWFtKGNhbGxiYWNr
KSB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgewotICAgICAgICByZXNwb25zZS5ib2R5LmNhbmNlbCgpOwotICAgICAg
ICByZXR1cm4gY2FsbGJhY2socmVzcG9uc2UpOwotICAgIH0pOwotfQotCi1wcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odGVzdCkgewotICAgIHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhDYW5jZWxsZWRS
ZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICByZXR1cm4gcHJvbWlz
ZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcmVzcG9uc2UuYmxvYigpKTsKLSAgICB9KTsK
LX0sICJHZXR0aW5nIGJsb2IgYWZ0ZXIgY2FuY2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keSIpOwot
Ci1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgIHJldHVybiBjcmVhdGVSZXNwb25z
ZVdpdGhDYW5jZWxsZWRSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAg
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcmVzcG9uc2UudGV4
dCgpKTsKLSAgICB9KTsKLX0sICJHZXR0aW5nIHRleHQgYWZ0ZXIgY2FuY2VsbGluZyB0aGUgUmVz
cG9uc2UgYm9keSIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewotICAgIHJldHVy
biBjcmVhdGVSZXNwb25zZVdpdGhDYW5jZWxsZWRSZWFkYWJsZVN0cmVhbShmdW5jdGlvbihyZXNw
b25zZSkgewotICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJv
ciwgcmVzcG9uc2UuanNvbigpKTsKLSAgICB9KTsKLX0sICJHZXR0aW5nIGpzb24gYWZ0ZXIgY2Fu
Y2VsbGluZyB0aGUgUmVzcG9uc2UgYm9keSIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVz
dCkgewotICAgIHJldHVybiBjcmVhdGVSZXNwb25zZVdpdGhDYW5jZWxsZWRSZWFkYWJsZVN0cmVh
bShmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pz
KHRlc3QsIFR5cGVFcnJvciwgcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSk7Ci0gICAgfSk7Ci19LCAi
R2V0dGluZyBhcnJheUJ1ZmZlciBhZnRlciBjYW5jZWxsaW5nIHRoZSBSZXNwb25zZSBib2R5Iik7
Ci0KLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LXN0cmVhbS1kaXN0dXJiZWQtNS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEwY2YwYTJkZThmZDU5Yzg4NDgxNmU5NjI0OWYwZDdjY2JjZTM0YjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3Ry
ZWFtLWRpc3R1cmJlZC01LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBA
QAotCi1QQVNTIEdldHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25zdW1pbmcgYXMgYmxvYgot
UEFTUyBHZXR0aW5nIGEgYm9keSByZWFkZXIgYWZ0ZXIgY29uc3VtaW5nIGFzIHRleHQKLVBBU1Mg
R2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVyIGNvbnN1bWluZyBhcyBqc29uCi1QQVNTIEdldHRp
bmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25zdW1pbmcgYXMgYXJyYXlCdWZmZXIKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01LmFueS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTUuYW55LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMGNmMGEyZGU4ZmQ1OWM4ODQ4MTZlOTYyNDlmMGQ3Y2NiY2UzNGI3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01LmFueS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgR2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVy
IGNvbnN1bWluZyBhcyBibG9iCitQQVNTIEdldHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25z
dW1pbmcgYXMgdGV4dAorUEFTUyBHZXR0aW5nIGEgYm9keSByZWFkZXIgYWZ0ZXIgY29uc3VtaW5n
IGFzIGpzb24KK1BBU1MgR2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVyIGNvbnN1bWluZyBhcyBh
cnJheUJ1ZmZlcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVk
LTUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTUuYW55Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNS5hbnkuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLTUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01LmFueS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YmUwYzkzZjM1YTA3YmM4ZDJhM2M4Y2EyYTgzZGFlMzVlOTI2NTE1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01LmFueS5q
cwpAQCAtMCwwICsxLDM0IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVU
QTogdGl0bGU9Q29uc3VtaW5nIFJlc3BvbnNlIGJvZHkgYWZ0ZXIgZ2V0dGluZyBhIFJlYWRhYmxl
U3RyZWFtCisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gZmV0Y2goIi4u
L3Jlc291cmNlcy9kYXRhLmpzb24iKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAg
IHJlc3BvbnNlLmJsb2IoKTsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVzcG9uc2UuYm9k
eSwgbnVsbCk7CisgICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigp
IHsgcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsgfSk7CisgICAgfSk7Cit9LCAiR2V0dGluZyBh
IGJvZHkgcmVhZGVyIGFmdGVyIGNvbnN1bWluZyBhcyBibG9iIik7CisKK3Byb21pc2VfdGVzdChm
dW5jdGlvbigpIHsKKyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRhLmpzb24iKS50
aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJlc3BvbnNlLnRleHQoKTsKKyAgICAg
ICAgYXNzZXJ0X25vdF9lcXVhbHMocmVzcG9uc2UuYm9keSwgbnVsbCk7CisgICAgICAgIGFzc2Vy
dF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgcmVzcG9uc2UuYm9keS5nZXRSZWFk
ZXIoKTsgfSk7CisgICAgfSk7Cit9LCAiR2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVyIGNvbnN1
bWluZyBhcyB0ZXh0Iik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1cm4g
ZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRhLmpzb24iKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7
CisgICAgICAgIHJlc3BvbnNlLmpzb24oKTsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVz
cG9uc2UuYm9keSwgbnVsbCk7CisgICAgICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBm
dW5jdGlvbigpIHsgcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsgfSk7CisgICAgfSk7Cit9LCAi
R2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVyIGNvbnN1bWluZyBhcyBqc29uIik7CisKK3Byb21p
c2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gZmV0Y2goIi4uL3Jlc291cmNlcy9kYXRh
Lmpzb24iKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJlc3BvbnNlLmFycmF5
QnVmZmVyKCk7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlc3BvbnNlLmJvZHksIG51bGwp
OworICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IHJlc3Bv
bnNlLmJvZHkuZ2V0UmVhZGVyKCk7IH0pOworICAgIH0pOworfSwgIkdldHRpbmcgYSBib2R5IHJl
YWRlciBhZnRlciBjb25zdW1pbmcgYXMgYXJyYXlCdWZmZXIiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMGNmMGEyZGU4ZmQ1OWM4ODQ4MTZlOTYyNDlmMGQ3Y2NiY2UzNGI3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01LmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIEdldHRpbmcgYSBib2R5IHJl
YWRlciBhZnRlciBjb25zdW1pbmcgYXMgYmxvYgorUEFTUyBHZXR0aW5nIGEgYm9keSByZWFkZXIg
YWZ0ZXIgY29uc3VtaW5nIGFzIHRleHQKK1BBU1MgR2V0dGluZyBhIGJvZHkgcmVhZGVyIGFmdGVy
IGNvbnN1bWluZyBhcyBqc29uCitQQVNTIEdldHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25z
dW1pbmcgYXMgYXJyYXlCdWZmZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFt
LWRpc3R1cmJlZC01LmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0
dXJiZWQtNS5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2
YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0
cmVhbS1kaXN0dXJiZWQtNS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0
aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC01Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1zdHJlYW0tZGlzdHVyYmVkLTUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggODMwYTQxYmM4MDk2MjA1ZTdkYWUzYzhiNTZjYWQyOTM3OGE1MzQwZi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0t
ZGlzdHVyYmVkLTUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhZG9jdHlw
ZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAg
ICA8dGl0bGU+Q29uc3VtaW5nIFJlc3BvbnNlIGJvZHkgYWZ0ZXIgZ2V0dGluZyBhIFJlYWRhYmxl
U3RyZWFtPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNo
LnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2UiPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KLSAgICA8bWV0YSBu
YW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8v
d3d3LmNyZi5jYW5vbi5mciI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0Pgot
Ci1wcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJj
ZXMvZGF0YS5qc29uIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICByZXNwb25z
ZS5ibG9iKCk7Ci0gICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlc3BvbnNlLmJvZHksIG51bGwp
OwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IHJlc3Bv
bnNlLmJvZHkuZ2V0UmVhZGVyKCk7IH0pOwotICAgIH0pOwotfSwgIkdldHRpbmcgYSBib2R5IHJl
YWRlciBhZnRlciBjb25zdW1pbmcgYXMgYmxvYiIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24o
KSB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgewotICAgICAgICByZXNwb25zZS50ZXh0KCk7Ci0gICAgICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKHJlc3BvbnNlLmJvZHksIG51bGwpOwotICAgICAgICBhc3NlcnRfdGhyb3dz
X2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7IH0p
OwotICAgIH0pOwotfSwgIkdldHRpbmcgYSBib2R5IHJlYWRlciBhZnRlciBjb25zdW1pbmcgYXMg
dGV4dCIpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGZldGNoKCIu
Li9yZXNvdXJjZXMvZGF0YS5qc29uIikudGhlbihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAg
ICByZXNwb25zZS5qc29uKCk7Ci0gICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlc3BvbnNlLmJv
ZHksIG51bGwpOwotICAgICAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7IH0pOwotICAgIH0pOwotfSwgIkdldHRpbmcg
YSBib2R5IHJlYWRlciBhZnRlciBjb25zdW1pbmcgYXMganNvbiIpOwotCi1wcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIGZldGNoKCIuLi9yZXNvdXJjZXMvZGF0YS5qc29uIiku
dGhlbihmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICByZXNwb25zZS5hcnJheUJ1ZmZlcigp
OwotICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhyZXNwb25zZS5ib2R5LCBudWxsKTsKLSAgICAg
ICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyByZXNwb25zZS5ib2R5
LmdldFJlYWRlcigpOyB9KTsKLSAgICB9KTsKLX0sICJHZXR0aW5nIGEgYm9keSByZWFkZXIgYWZ0
ZXIgY29uc3VtaW5nIGFzIGFycmF5QnVmZmVyIik7Ci0KLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNi1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmNWRmMDRjMDk2YmU4ZGNkN2Ex
YWNhYjdlOGMwN2QzOTUwODEyOTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotCi1QQVNTIEEgbm9uLWNsb3NlZCBzdHJl
YW0gb24gd2hpY2ggcmVhZCgpIGhhcyBiZWVuIGNhbGxlZAotUEFTUyBBIG5vbi1jbG9zZWQgc3Ry
ZWFtIG9uIHdoaWNoIGNhbmNlbCgpIGhhcyBiZWVuIGNhbGxlZAotUEFTUyBBIGNsb3NlZCBzdHJl
YW0gb24gd2hpY2ggcmVhZCgpIGhhcyBiZWVuIGNhbGxlZAotUEFTUyBBbiBlcnJvcmVkIHN0cmVh
bSBvbiB3aGljaCByZWFkKCkgaGFzIGJlZW4gY2FsbGVkCi1QQVNTIEFuIGVycm9yZWQgc3RyZWFt
IG9uIHdoaWNoIGNhbmNlbCgpIGhhcyBiZWVuIGNhbGxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTYuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0cmVhbS1kaXN0dXJiZWQtNi5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNWRm
MDRjMDk2YmU4ZGNkN2ExYWNhYjdlOGMwN2QzOTUwODEyOTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTYuYW55LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKKworUEFTUyBBIG5vbi1jbG9zZWQgc3RyZWFtIG9uIHdoaWNoIHJlYWQoKSBoYXMg
YmVlbiBjYWxsZWQKK1BBU1MgQSBub24tY2xvc2VkIHN0cmVhbSBvbiB3aGljaCBjYW5jZWwoKSBo
YXMgYmVlbiBjYWxsZWQKK1BBU1MgQSBjbG9zZWQgc3RyZWFtIG9uIHdoaWNoIHJlYWQoKSBoYXMg
YmVlbiBjYWxsZWQKK1BBU1MgQW4gZXJyb3JlZCBzdHJlYW0gb24gd2hpY2ggcmVhZCgpIGhhcyBi
ZWVuIGNhbGxlZAorUEFTUyBBbiBlcnJvcmVkIHN0cmVhbSBvbiB3aGljaCBjYW5jZWwoKSBoYXMg
YmVlbiBjYWxsZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJl
ZC02LmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02LmFueS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTYuYW55Lmh0
bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0
ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRp
c3R1cmJlZC02LmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNi5hbnku
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjFkODU0NGYwNzg2YzgwM2YyNzkzZDQ2MzM5MDUzN2ZmN2Q3OGZjYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNi5hbnku
anMKQEAgLTAsMCArMSw3NiBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1F
VEE6IHRpdGxlPVJlYWRhYmxlU3RyZWFtIGRpc3R1cmJlZCB0ZXN0cywgdmlhIFJlc3BvbnNlJ3Mg
Ym9keVVzZWQgcHJvcGVydHkKKworInVzZSBzdHJpY3QiOworCit0ZXN0KCgpID0+IHsKKyAgY29u
c3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKCk7CisgIGNvbnN0IHJlc3BvbnNlID0gbmV3
IFJlc3BvbnNlKHN0cmVhbSk7CisgIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgIk9u
IGNvbnN0cnVjdGlvbiIpOworCisgIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTsK
KyAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAiQWZ0ZXIgZ2V0dGluZyBhIHJlYWRl
ciIpOworCisgIHJlYWRlci5yZWFkKCk7CisgIGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2Vk
LCAiQWZ0ZXIgY2FsbGluZyBzdHJlYW0ucmVhZCgpIik7Cit9LCAiQSBub24tY2xvc2VkIHN0cmVh
bSBvbiB3aGljaCByZWFkKCkgaGFzIGJlZW4gY2FsbGVkIik7CisKK3Rlc3QoKCkgPT4geworICBj
b25zdCBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oKTsKKyAgY29uc3QgcmVzcG9uc2UgPSBu
ZXcgUmVzcG9uc2Uoc3RyZWFtKTsKKyAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAi
T24gY29uc3RydWN0aW9uIik7CisKKyAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigp
OworICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQsICJBZnRlciBnZXR0aW5nIGEgcmVh
ZGVyIik7CisKKyAgcmVhZGVyLmNhbmNlbCgpOworICBhc3NlcnRfdHJ1ZShyZXNwb25zZS5ib2R5
VXNlZCwgIkFmdGVyIGNhbGxpbmcgc3RyZWFtLmNhbmNlbCgpIik7Cit9LCAiQSBub24tY2xvc2Vk
IHN0cmVhbSBvbiB3aGljaCBjYW5jZWwoKSBoYXMgYmVlbiBjYWxsZWQiKTsKKwordGVzdCgoKSA9
PiB7CisgIGNvbnN0IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CisgICAgc3RhcnQoYykg
eworICAgICAgYy5jbG9zZSgpOworICAgIH0KKyAgfSk7CisgIGNvbnN0IHJlc3BvbnNlID0gbmV3
IFJlc3BvbnNlKHN0cmVhbSk7CisgIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgIk9u
IGNvbnN0cnVjdGlvbiIpOworCisgIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTsK
KyAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAiQWZ0ZXIgZ2V0dGluZyBhIHJlYWRl
ciIpOworCisgIHJlYWRlci5yZWFkKCk7CisgIGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2Vk
LCAiQWZ0ZXIgY2FsbGluZyBzdHJlYW0ucmVhZCgpIik7Cit9LCAiQSBjbG9zZWQgc3RyZWFtIG9u
IHdoaWNoIHJlYWQoKSBoYXMgYmVlbiBjYWxsZWQiKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0
IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CisgICAgc3RhcnQoYykgeworICAgICAgYy5l
cnJvcihuZXcgRXJyb3IoInNvbWUgZXJyb3IiKSk7CisgICAgfQorICB9KTsKKyAgY29uc3QgcmVz
cG9uc2UgPSBuZXcgUmVzcG9uc2Uoc3RyZWFtKTsKKyAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJv
ZHlVc2VkLCAiT24gY29uc3RydWN0aW9uIik7CisKKyAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdl
dFJlYWRlcigpOworICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQsICJBZnRlciBnZXR0
aW5nIGEgcmVhZGVyIik7CisKKyAgcmVhZGVyLnJlYWQoKS50aGVuKCgpID0+IHsgfSwgKCkgPT4g
eyB9KTsKKyAgYXNzZXJ0X3RydWUocmVzcG9uc2UuYm9keVVzZWQsICJBZnRlciBjYWxsaW5nIHN0
cmVhbS5yZWFkKCkiKTsKK30sICJBbiBlcnJvcmVkIHN0cmVhbSBvbiB3aGljaCByZWFkKCkgaGFz
IGJlZW4gY2FsbGVkIik7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBzdHJlYW0gPSBuZXcgUmVh
ZGFibGVTdHJlYW0oeworICAgIHN0YXJ0KGMpIHsKKyAgICAgIGMuZXJyb3IobmV3IEVycm9yKCJz
b21lIGVycm9yIikpOworICAgIH0KKyAgfSk7CisgIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3Bv
bnNlKHN0cmVhbSk7CisgIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgIk9uIGNvbnN0
cnVjdGlvbiIpOworCisgIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTsKKyAgYXNz
ZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAiQWZ0ZXIgZ2V0dGluZyBhIHJlYWRlciIpOwor
CisgIHJlYWRlci5jYW5jZWwoKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgYXNzZXJ0
X3RydWUocmVzcG9uc2UuYm9keVVzZWQsICJBZnRlciBjYWxsaW5nIHN0cmVhbS5jYW5jZWwoKSIp
OworfSwgIkFuIGVycm9yZWQgc3RyZWFtIG9uIHdoaWNoIGNhbmNlbCgpIGhhcyBiZWVuIGNhbGxl
ZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02LmFueS53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02LmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNWRmMDRjMDk2YmU4ZGNkN2ExYWNh
YjdlOGMwN2QzOTUwODEyOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJl
YW0tZGlzdHVyYmVkLTYuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisK
K1BBU1MgQSBub24tY2xvc2VkIHN0cmVhbSBvbiB3aGljaCByZWFkKCkgaGFzIGJlZW4gY2FsbGVk
CitQQVNTIEEgbm9uLWNsb3NlZCBzdHJlYW0gb24gd2hpY2ggY2FuY2VsKCkgaGFzIGJlZW4gY2Fs
bGVkCitQQVNTIEEgY2xvc2VkIHN0cmVhbSBvbiB3aGljaCByZWFkKCkgaGFzIGJlZW4gY2FsbGVk
CitQQVNTIEFuIGVycm9yZWQgc3RyZWFtIG9uIHdoaWNoIHJlYWQoKSBoYXMgYmVlbiBjYWxsZWQK
K1BBU1MgQW4gZXJyb3JlZCBzdHJlYW0gb24gd2hpY2ggY2FuY2VsKCkgaGFzIGJlZW4gY2FsbGVk
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNi5hbnkud29y
a2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTYuYW55Lndvcmtlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTYuYW55
Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0t
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LXN0cmVhbS1kaXN0dXJiZWQtNi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJl
ZC02Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwNDkyZDQ3MmZlZTYyMWE3
NWQ1N2UyOGNlY2E3YmQ3ZWE3ZDFmZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KLTx0aXRsZT5SZWFkYWJsZVN0cmVhbSBkaXN0dXJiZWQgdGVzdHMsIHZpYSBS
ZXNwb25zZSdzIGJvZHlVc2VkIHByb3BlcnR5PC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iRG9tZW5pYyBEZW5pY29sYSIgaHJlZj0ibWFpbHRvOmRAZG9tZW5pYy5tZSI+Ci08bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IlRha2VzaGkgWW9zaGlubyIgaHJlZj0ibWFpbHRvOnR5b3No
aW5vQGNocm9taXVtLm9yZyI+Ci0KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zdHJl
YW1zLnNwZWMud2hhdHdnLm9yZy8jaXMtcmVhZGFibGUtc3RyZWFtLWRpc3R1cmJlZCI+Ci08bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNkb20tYm9k
eS1ib2R5dXNlZCI+Ci0KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLQotPHNjcmlwdD4KLSJ1c2Ugc3RyaWN0IjsKLQotdGVzdCgoKSA9PiB7Ci0gIGNv
bnN0IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSgpOwotICBjb25zdCByZXNwb25zZSA9IG5l
dyBSZXNwb25zZShzdHJlYW0pOwotICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQsICJP
biBjb25zdHJ1Y3Rpb24iKTsKLQotICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7
Ci0gIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgIkFmdGVyIGdldHRpbmcgYSByZWFk
ZXIiKTsKLQotICByZWFkZXIucmVhZCgpOwotICBhc3NlcnRfdHJ1ZShyZXNwb25zZS5ib2R5VXNl
ZCwgIkFmdGVyIGNhbGxpbmcgc3RyZWFtLnJlYWQoKSIpOwotfSwgIkEgbm9uLWNsb3NlZCBzdHJl
YW0gb24gd2hpY2ggcmVhZCgpIGhhcyBiZWVuIGNhbGxlZCIpOwotCi10ZXN0KCgpID0+IHsKLSAg
Y29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKCk7Ci0gIGNvbnN0IHJlc3BvbnNlID0g
bmV3IFJlc3BvbnNlKHN0cmVhbSk7Ci0gIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwg
Ik9uIGNvbnN0cnVjdGlvbiIpOwotCi0gIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIo
KTsKLSAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAiQWZ0ZXIgZ2V0dGluZyBhIHJl
YWRlciIpOwotCi0gIHJlYWRlci5jYW5jZWwoKTsKLSAgYXNzZXJ0X3RydWUocmVzcG9uc2UuYm9k
eVVzZWQsICJBZnRlciBjYWxsaW5nIHN0cmVhbS5jYW5jZWwoKSIpOwotfSwgIkEgbm9uLWNsb3Nl
ZCBzdHJlYW0gb24gd2hpY2ggY2FuY2VsKCkgaGFzIGJlZW4gY2FsbGVkIik7Ci0KLXRlc3QoKCkg
PT4gewotICBjb25zdCBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oewotICAgIHN0YXJ0KGMp
IHsKLSAgICAgIGMuY2xvc2UoKTsKLSAgICB9Ci0gIH0pOwotICBjb25zdCByZXNwb25zZSA9IG5l
dyBSZXNwb25zZShzdHJlYW0pOwotICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQsICJP
biBjb25zdHJ1Y3Rpb24iKTsKLQotICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7
Ci0gIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgIkFmdGVyIGdldHRpbmcgYSByZWFk
ZXIiKTsKLQotICByZWFkZXIucmVhZCgpOwotICBhc3NlcnRfdHJ1ZShyZXNwb25zZS5ib2R5VXNl
ZCwgIkFmdGVyIGNhbGxpbmcgc3RyZWFtLnJlYWQoKSIpOwotfSwgIkEgY2xvc2VkIHN0cmVhbSBv
biB3aGljaCByZWFkKCkgaGFzIGJlZW4gY2FsbGVkIik7Ci0KLXRlc3QoKCkgPT4gewotICBjb25z
dCBzdHJlYW0gPSBuZXcgUmVhZGFibGVTdHJlYW0oewotICAgIHN0YXJ0KGMpIHsKLSAgICAgIGMu
ZXJyb3IobmV3IEVycm9yKCJzb21lIGVycm9yIikpOwotICAgIH0KLSAgfSk7Ci0gIGNvbnN0IHJl
c3BvbnNlID0gbmV3IFJlc3BvbnNlKHN0cmVhbSk7Ci0gIGFzc2VydF9mYWxzZShyZXNwb25zZS5i
b2R5VXNlZCwgIk9uIGNvbnN0cnVjdGlvbiIpOwotCi0gIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5n
ZXRSZWFkZXIoKTsKLSAgYXNzZXJ0X2ZhbHNlKHJlc3BvbnNlLmJvZHlVc2VkLCAiQWZ0ZXIgZ2V0
dGluZyBhIHJlYWRlciIpOwotCi0gIHJlYWRlci5yZWFkKCkudGhlbigoKSA9PiB7IH0sICgpID0+
IHsgfSk7Ci0gIGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2VkLCAiQWZ0ZXIgY2FsbGluZyBz
dHJlYW0ucmVhZCgpIik7Ci19LCAiQW4gZXJyb3JlZCBzdHJlYW0gb24gd2hpY2ggcmVhZCgpIGhh
cyBiZWVuIGNhbGxlZCIpOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3Qgc3RyZWFtID0gbmV3IFJl
YWRhYmxlU3RyZWFtKHsKLSAgICBzdGFydChjKSB7Ci0gICAgICBjLmVycm9yKG5ldyBFcnJvcigi
c29tZSBlcnJvciIpKTsKLSAgICB9Ci0gIH0pOwotICBjb25zdCByZXNwb25zZSA9IG5ldyBSZXNw
b25zZShzdHJlYW0pOwotICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQsICJPbiBjb25z
dHJ1Y3Rpb24iKTsKLQotICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7Ci0gIGFz
c2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgIkFmdGVyIGdldHRpbmcgYSByZWFkZXIiKTsK
LQotICByZWFkZXIuY2FuY2VsKCkudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7Ci0gIGFzc2Vy
dF90cnVlKHJlc3BvbnNlLmJvZHlVc2VkLCAiQWZ0ZXIgY2FsbGluZyBzdHJlYW0uY2FuY2VsKCki
KTsKLX0sICJBbiBlcnJvcmVkIHN0cmVhbSBvbiB3aGljaCBjYW5jZWwoKSBoYXMgYmVlbiBjYWxs
ZWQiKTsKLQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlz
dHVyYmVkLWJ5LXBpcGUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC1i
eS1waXBlLmFueS5qcwppbmRleCBmMDA2NmMyMzMzYTFjMTAzOGE1MDZmYjkxMGFlOWMyODA1ODNj
OTZlLi41MzQxYjc1MjcxZWFkNTliZTUwMjJhZmQ5OWZmYmUyMmEyNjYyOGZiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLWJ5LXBpcGUuYW55LmpzCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtYnktcGlwZS5hbnkuanMKQEAgLTEsMyArMSw1
IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorCiB0ZXN0KCgpID0+IHsKICAgY29u
c3QgciA9IG5ldyBSZXNwb25zZShuZXcgUmVhZGFibGVTdHJlYW0oKSk7CiAgIC8vIGhpZ2hXYXRl
ck1hcms6IDAgbWVhbnMgdGhhdCBub3RoaW5nIHdpbGwgYWN0dWFsbHkgYmUgcmVhZCBmcm9tIHRo
ZSBib2R5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLXdpdGgtYnJva2VuLXRo
ZW4uYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLXdpdGgtYnJva2VuLXRoZW4uYW55Lmpz
CmluZGV4IGI4MzM2NWQ3M2FmNWY0MzBlNTg5YWRiZTRlMWVhMTY1NDE5ZjA0N2MuLjhmZWY2NmM4
YTI4MWM2MjQ4ZmQzNjc2Mzg4OWJjOTVhYTg5OWY3Y2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0cmVhbS13aXRoLWJyb2tlbi10aGVuLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1z
dHJlYW0td2l0aC1icm9rZW4tdGhlbi5hbnkuanMKQEAgLTEsMyArMSw0IEBACisvLyBNRVRBOiBn
bG9iYWw9d2luZG93LHdvcmtlcgogLy8gTUVUQTogc2NyaXB0PS4uL3Jlc291cmNlcy91dGlscy5q
cwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS93M2MtaW1wb3J0LmxvZwppbmRleCA1OTI5MDk5OTczNzcyOWM4Zjg4
MjQ0NzUzMWFlNWNiNmEzOGM0MjRjLi4xODQ2Yzc4MTBkY2FkMmQzZTY4MzIxYjQ4N2E2ZTYwMzlj
ODFiOGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS93M2Mt
aW1wb3J0LmxvZwpAQCAtMTQsMjQgKzE0LDI1IEBAIFByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgogTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLWNhbmNlbC1zdHJlYW0uaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWJvZHkt
cmVhZC10YXNrLWhhbmRsaW5nLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jYW5jZWwtc3RyZWFtLmFu
eS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25lLWlmcmFtZS53aW5kb3cuanMKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1jbG9uZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1lbXB0eS5odG1sCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25lLmFu
eS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1wdHkuYW55LmpzCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY29uc3VtZS1zdHJlYW0uYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtZXJyb3ItZnJvbS1zdHJlYW0uaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVy
cm9yLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1mcm9tLXN0cmVhbS5hbnkuanMKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1lcnJvci5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1mcm9tLXN0cmVhbS5hbnku
anMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0w
MDIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2Utc3RhdGljLXJlZGlyZWN0Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVk
LTEuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMi5odG1sCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC0zLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0t
ZGlzdHVyYmVkLTQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtNS5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02Lmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25z
ZS1pbml0LTAwMS5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi5hbnkuanMKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1zdGF0aWMtZXJyb3IuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJl
ZGlyZWN0LmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0dXJiZWQtMS5hbnkuanMK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTIuYW55LmpzCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2Utc3RyZWFtLWRpc3R1cmJlZC0zLmFueS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0cmVhbS1kaXN0
dXJiZWQtNC5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJlYW0tZGlzdHVyYmVkLTUuYW55Lmpz
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2Utc3RyZWFtLWRpc3R1cmJlZC02LmFueS5qcwogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLXN0cmVhbS1kaXN0dXJiZWQtYnktcGlwZS5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdHJl
YW0td2l0aC1icm9rZW4tdGhlbi5hbnkuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL25ldHdvcmst
cGFydGl0aW9uLWtleS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9uZXR3b3JrLXBhcnRpdGlvbi1r
ZXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmNjQ2ZmY0ZGRmMzg3NDViYmY0MTA5ZjIyZTgx
OWRkYmU1NDk0NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9uZXR3b3JrLXBhcnRpdGlv
bi1rZXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKworCitQQVNTIFdpdGggY3JlZGVu
dGlhbHMKK1BBU1MgV2l0aG91dCBjcmVkZW50aWFscworUEFTUyBDcm9zcy1zaXRlIHJlc291cmNl
cyB3aXRoIGNyZWRlbnRpYWxzCitQQVNTIENyb3NzLXNpdGUgcmVzb3VyY2VzIHdpdGhvdXQgY3Jl
ZGVudGlhbHMKK1BBU1MgSWZyYW1lcworUEFTUyBXb3JrZXJzCitQQVNTIFdvcmtlcnMgd2l0aCBj
cm9zcy1zaXRlIHJlc291cmNlcworRkFJTCBDU1Agc2FuZGJveCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogImFzc2VydF9lcXVhbHM6IFNvY2tldCB1bmV4cGVj
dGVkbHkgcmV1c2VkIGV4cGVjdGVkIFwib2tcIiBidXQgZ290IFwiTXVsdGlwbGUgcGFydGl0aW9u
IElEcyB1c2VkIG9uIGEgc29ja2V0XCIiCitGQUlMIGFib3V0OmJsYW5rIGZyb20gb3BhcXVlIG9y
aWdpbiBpZnJhbWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
ICJhc3NlcnRfZXF1YWxzOiBTb2NrZXQgdW5leHBlY3RlZGx5IHJldXNlZCBleHBlY3RlZCBcIm9r
XCIgYnV0IGdvdCBcIk11bHRpcGxlIHBhcnRpdGlvbiBJRHMgdXNlZCBvbiBhIHNvY2tldFwiIgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9uZXR3b3JrLXBhcnRpdGlvbi1rZXkuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1w
b29sL25ldHdvcmstcGFydGl0aW9uLWtleS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwYTc4NGNkODRlZDky
YmJjZDM0YWFlMDUwMjg5YTI2NzZlZDQ1YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9u
ZXR3b3JrLXBhcnRpdGlvbi1rZXkuaHRtbApAQCAtMCwwICsxLDI2NCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgIDx0aXRsZT5D
b25uZWN0aW9uIHBhcnRpdGlvbmluZyBieSBzaXRlPC90aXRsZT4KKyAgPG1ldGEgbmFtZT0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI25ldHdvcmstcGFydGl0aW9u
LWtleXMiPgorICA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKyAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQg
c3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii9jb21tb24v
Z2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8IS0tIFVz
ZWQgdG8gb3BlbiBhYm91dDpibGFuayB0YWJzIGZyb20gb3BhcXVlIG9yaWdpbnMgLS0+Cis8aWZy
YW1lIGlkPSJpZnJhbWUwIiBzYW5kYm94PSJhbGxvdy1wb3B1cHMgYWxsb3ctc2NyaXB0cyBhbGxv
dy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3giPjwvaWZyYW1lPgorPGlmcmFtZSBpZD0iaWZyYW1l
MSIgc2FuZGJveD0iYWxsb3ctcG9wdXBzIGFsbG93LXNjcmlwdHMgYWxsb3ctcG9wdXBzLXRvLWVz
Y2FwZS1zYW5kYm94Ij48L2lmcmFtZT4KKzxzY3JpcHQ+Citjb25zdCBob3N0ID0gZ2V0X2hvc3Rf
aW5mbygpOworCisvLyBUaGVzZSB0d28gb3JpZ2lucyBtdXN0IGNvcnJlc3BvbmQgdG8gZGlmZmVy
ZW50IHNpdGVzIGZvciB0aGlzIHRlc3QgdG8gcGFzcy4KK2NvbnN0IFBPUFVQX09SSUdJTlMgPSBb
CisgIGhvc3QuT1JJR0lOLAorICBob3N0LkhUVFBfTk9UU0FNRVNJVEVfT1JJR0lOCitdOworCisv
LyBUaGlzIG9yaWdpbiBzaG91bGQgaWRlYWxseSBjb3JyZXNwb25kIHRvIGEgZGlmZmVyZW50IHNp
dGUgZnJvbSB0aGUgdHdvIGFib3ZlLCBidXQgdGhlCisvLyB0ZXN0cyB3aWxsIHN0aWxsIHBhc3Mg
aWYgaXQgbWF0Y2hlcyB0aGUgc2l0ZSBvZiBvbmUgb2YgdGhlIG90aGVyIHR3byBvcmlnaW5zLgor
Y29uc3QgT1RIRVJfT1JJR0lOID0gaG9zdC5SRU1PVEVfT1JJR0lOOworCisvLyBFeGNlcHQgZm9y
IHRoZSBjc3Bfc2FuZGJveCBhbmQgYWJvdXQ6YmxhbmtzLCBlYWNoIHRlc3Qgb3BlbnMgdXAgdHdv
IHdpbmRvd3MsIG9uZSBhdAorLy8gUE9QVVBfT1JJR0lOU1swXSwgb25lIGF0IFBPUFVQX09SSUdJ
TlNbMV0sIGFuZCBoYXMgdGhlbSByZXF1ZXN0IHN1YnJlc291cmNlcyBmcm9tCisvLyBzdWJyZXNv
dXJjZV9vcmlnaW4uIEFsbCByZXF1ZXN0cyAoSFRNTCwgSlMsIGFuZCBmZXRjaCByZXF1ZXN0cykg
Zm9yIGVhY2ggd2luZG93IGdvCisvLyB0aHJvdWdoIG5ldHdvcmstcGFydGl0aW9uLWtleS5weSBh
bmQgaGF2ZSBhIHBhcnRpdGlvbl9pZCBwYXJhbWV0ZXIsIHdoaWNoIGlzIHVzZWQKKy8vIHRvIGNo
ZWNrIGlmIGFueSByZXF1ZXN0IGZvciBvbmUgd2luZG93IHVzZXMgdGhlIHNhbWUgc29ja2V0IGFz
IGEgcmVxdWVzdCBmb3IgdGhlCisvLyBvdGhlciB3aW5kb3cuCisvLworLy8gV2hlbmV2ZXIgcmVx
dWVzdHMgZnJvbSB0aGUgdHdvIGRpZmZlcmVudCBwb3B1cCB3aW5kb3dzIHVzZSB0aGUgc2FtZSBj
b25uZWN0aW9uLCB0aGUKKy8vIGZldGNoIHJlcXVlc3RzIGFsbCBzdGFydCByZXR1cm5pbmcgNDAw
IGVycm9ycywgYnV0IG90aGVyIHJlcXVlc3RzIHdpbGwgY29udGludWUgdG8KKy8vIHN1Y2NlZWQs
IHRvIG1ha2UgZm9yIGNsZWFyZXIgZXJyb3JzLgorLy8KKy8vIGluY2x1ZGVfY3JlZGVudGlhbHMg
aW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZldGNoIHJlcXVlc3RzIHVzZSBjcmVkZW50aWFscyBvciBu
b3QsCisvLyB3aGljaCBpcyBpbnRlcmVzdGluZyBhcyB1bmNyZWRlbnRpYWxlZCBzb2NrZXRzIGhh
dmUgc2VwYXJhdGUgY29ubmVjdGlvbiBwb29scy4KK2NvbnN0IHRlc3RzID0gWworICB7CisgICAg
bmFtZTogJ1dpdGggY3JlZGVudGlhbHMnLAorICAgIHN1YnJlc291cmNlX29yaWdpbjogUE9QVVBf
T1JJR0lOU1swXSwKKyAgICBpbmNsdWRlX2NyZWRlbnRpYWxzOiB0cnVlLAorICAgIHBvcHVwX3Bh
cmFtczogWworICAgICAge3R5cGU6ICdtYWluX2ZyYW1lJ30sCisgICAgICB7dHlwZTogJ21haW5f
ZnJhbWUnfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICdXaXRob3V0IGNyZWRlbnRpYWxz
JywKKyAgICBzdWJyZXNvdXJjZV9vcmlnaW46IFBPUFVQX09SSUdJTlNbMF0sCisgICAgaW5jbHVk
ZV9jcmVkZW50aWFsczogZmFsc2UsCisgICAgcG9wdXBfcGFyYW1zOiBbCisgICAgICB7dHlwZTog
J21haW5fZnJhbWUnfSwKKyAgICAgIHt0eXBlOiAnbWFpbl9mcmFtZSd9CisgICAgXQorICB9LAor
ICB7CisgICAgbmFtZTogJ0Nyb3NzLXNpdGUgcmVzb3VyY2VzIHdpdGggY3JlZGVudGlhbHMnLAor
ICAgIHN1YnJlc291cmNlX29yaWdpbjogT1RIRVJfT1JJR0lOLAorICAgIGluY2x1ZGVfY3JlZGVu
dGlhbHM6IHRydWUsCisgICAgcG9wdXBfcGFyYW1zOiBbCisgICAgICB7dHlwZTogJ21haW5fZnJh
bWUnfSwKKyAgICAgIHt0eXBlOiAnbWFpbl9mcmFtZSd9CisgICAgXQorICB9LAorICB7CisgICAg
bmFtZTogJ0Nyb3NzLXNpdGUgcmVzb3VyY2VzIHdpdGhvdXQgY3JlZGVudGlhbHMnLAorICAgIHN1
YnJlc291cmNlX29yaWdpbjogT1RIRVJfT1JJR0lOLAorICAgIGluY2x1ZGVfY3JlZGVudGlhbHM6
IGZhbHNlLAorICAgIHBvcHVwX3BhcmFtczogWworICAgICAge3R5cGU6ICdtYWluX2ZyYW1lJ30s
CisgICAgICB7dHlwZTogJ21haW5fZnJhbWUnfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6
ICdJZnJhbWVzJywKKyAgICBzdWJyZXNvdXJjZV9vcmlnaW46IE9USEVSX09SSUdJTiwKKyAgICBp
bmNsdWRlX2NyZWRlbnRpYWxzOiB0cnVlLAorICAgIHBvcHVwX3BhcmFtczogWworICAgICAgewor
ICAgICAgICB0eXBlOiAnaWZyYW1lJywKKyAgICAgICAgaWZyYW1lX29yaWdpbjogT1RIRVJfT1JJ
R0lOCisgICAgICB9LAorICAgICAgeworICAgICAgICB0eXBlOiAnaWZyYW1lJywKKyAgICAgICAg
aWZyYW1lX29yaWdpbjogT1RIRVJfT1JJR0lOCisgICAgICB9CisgICAgXQorICB9LAorICB7Cisg
ICAgbmFtZTogJ1dvcmtlcnMnLAorICAgIHN1YnJlc291cmNlX29yaWdpbjogUE9QVVBfT1JJR0lO
U1swXSwKKyAgICBpbmNsdWRlX2NyZWRlbnRpYWxzOiB0cnVlLAorICAgIHBvcHVwX3BhcmFtczog
WworICAgICAge3R5cGU6ICd3b3JrZXInfSwKKyAgICAgIHt0eXBlOiAnd29ya2VyJ30KKyAgICBd
CisgIH0sCisgIHsKKyAgICBuYW1lOiAnV29ya2VycyB3aXRoIGNyb3NzLXNpdGUgcmVzb3VyY2Vz
JywKKyAgICBzdWJyZXNvdXJjZV9vcmlnaW46IE9USEVSX09SSUdJTiwKKyAgICBpbmNsdWRlX2Ny
ZWRlbnRpYWxzOiB0cnVlLAorICAgIHBvcHVwX3BhcmFtczogWworICAgICAge3R5cGU6ICd3b3Jr
ZXInfSwKKyAgICAgIHt0eXBlOiAnd29ya2VyJ30KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1l
OiAnQ1NQIHNhbmRib3gnLAorICAgIHN1YnJlc291cmNlX29yaWdpbjogUE9QVVBfT1JJR0lOU1sw
XSwKKyAgICBpbmNsdWRlX2NyZWRlbnRpYWxzOiB0cnVlLAorICAgIHBvcHVwX3BhcmFtczogWwor
ICAgICAge3R5cGU6ICdjc3Bfc2FuZGJveCd9LAorICAgICAge3R5cGU6ICdjc3Bfc2FuZGJveCd9
CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogJ2Fib3V0OmJsYW5rIGZyb20gb3BhcXVlIG9y
aWdpbiBpZnJhbWUnLAorICAgIHN1YnJlc291cmNlX29yaWdpbjogT1RIRVJfT1JJR0lOLAorICAg
IGluY2x1ZGVfY3JlZGVudGlhbHM6IHRydWUsCisgICAgcG9wdXBfcGFyYW1zOiBbCisgICAgICB7
dHlwZTogJ29wYXF1ZV9hYm91dF9ibGFuayd9LAorICAgICAge3R5cGU6ICdvcGFxdWVfYWJvdXRf
YmxhbmsnfQorICAgIF0KKyAgfSwKK107CisKK2NvbnN0IEJBU0VfUEFUSCA9IHdpbmRvdy5sb2Nh
dGlvbi5wYXRobmFtZS5yZXBsYWNlKC9cL1teXC9dKiQvLCAnLycpOworCitmdW5jdGlvbiBjcmVh
dGVfc2NyaXB0X3VybChvcmlnaW4sIHV1aWQsIHBhcnRpdGlvbl9pZCwgZGlzcGF0Y2gpIHsKKyAg
cmV0dXJuIGAke29yaWdpbn0ke0JBU0VfUEFUSH1yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24t
a2V5LnB5P3V1aWQ9JHt1dWlkfSZwYXJ0aXRpb25faWQ9JHtwYXJ0aXRpb25faWR9JmRpc3BhdGNo
PSR7ZGlzcGF0Y2h9YAorfQorCitmdW5jdGlvbiBydW5fdGVzdCh0ZXN0KSB7CisgIHZhciB1dWlk
ID0gdG9rZW4oKTsKKworICAvLyBVc2VkIHRvIHRyYWNrIHRoZSBvcGVuZWQgcG9wdXAgd2luZG93
cywgc28gdGhleSBjYW4gYmUgY2xvc2VkIGF0IHRoZSBlbmQgb2YgdGhlIHRlc3QuCisgIC8vIFRo
ZXkgY291bGQgYmUgY2xvc2VkIGltbWVkaWF0ZWx5IGFmdGVyIHVzZSwgYnV0IHNhZmVzdCB0byBr
ZWVwIHRoZW0gb3BlbiwgYXMgYnJvd3NlcnMKKyAgLy8gY291bGQgdXNlIGNsb3NpbmcgYSB3aW5k
b3cgYXMgYSBoaW50IHRvIGNsb3NlIGlkbGUgc29ja2V0cyB0aGF0IHRoZSB3aW5kb3cgdXNlZC4K
KyAgdmFyIHBvcHVwX3dpbmRvd3MgPSBbXTsKKworICAvLyBDcmVhdGVzIGEgcG9wdXAgd2luZG93
IGF0IHx1cmx8IGFuZCB3YWl0cyBmb3IgYSB0ZXN0IHJlc3VsdC4gUmV0dXJucyBhIHByb21pc2Uu
CisgIGZ1bmN0aW9uIGNyZWF0ZV9wb3B1cF9hbmRfd2FpdF9mb3JfcmVzdWx0KHVybCkgeworICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHBv
cHVwX3dpbmRvd3MucHVzaCh3aW5kb3cub3Blbih1cmwpKTsKKyAgICAgIC8vIExpc3RlbiBmb3Ig
dGhlIHJlc3VsdAorICAgICAgZnVuY3Rpb24gbWVzc2FnZV9saXN0ZW5lcihldmVudCkgeworICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5yZXN1bHQgPT09ICdzdWNjZXNzJykgeworICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLnJlc3VsdCA9PT0gJ2Vycm9y
JykgeworICAgICAgICAgIHJlamVjdChldmVudC5kYXRhLmRldGFpbHMpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgIHJlamVjdCgnVW5leHBlY3RlZCBtZXNzYWdlLicpOworICAgICAgICB9
CisgICAgICB9CisgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG1lc3Nh
Z2VfbGlzdGVuZXIsIHtvbmNlOiAndHJ1ZSd9KTsKKyAgICB9KTsKKyAgfQorCisgIC8vIE5hdmln
YXRlcyBpZnJhbWUgdG8gdXJsIGFuZCB3YWl0cyBmb3IgYSB0ZXN0IHJlc3VsdC4gUmV0dXJucyBh
IHByb21pc2UuCisgIGZ1bmN0aW9uIG5hdmlnYXRlX2lmcmFtZV9hbmRfd2FpdF9mb3JfcmVzdWx0
KGlmcmFtZSwgdXJsKSB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgaWZyYW1lLnNyYyA9IHVybDsKKyAgICAgIC8vIExpc3RlbiBmb3Ig
dGhlIHJlc3VsdAorICAgICAgZnVuY3Rpb24gbWVzc2FnZV9saXN0ZW5lcihldmVudCkgeworICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5yZXN1bHQgPT09ICdzdWNjZXNzJykgeworICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLnJlc3VsdCA9PT0gJ2Vycm9y
JykgeworICAgICAgICAgIHJlamVjdChldmVudC5kYXRhLmRldGFpbHMpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgIHJlamVjdCgnVW5leHBlY3RlZCBtZXNzYWdlLicpOworICAgICAgICB9
CisgICAgICB9CisgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG1lc3Nh
Z2VfbGlzdGVuZXIsIHtvbmNlOiAndHJ1ZSd9KTsKKyAgICB9KTsKKyAgfQorCisgIGZ1bmN0aW9u
IG1ha2VfdGVzdF9mdW5jdGlvbih0ZXN0LCBpbmRleCkgeworICAgIHZhciBwb3B1cF9wYXJhbXMg
PSB0ZXN0LnBvcHVwX3BhcmFtc1tpbmRleF07CisgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeworICAg
ICAgdmFyIHBvcHVwX3BhdGg7CisgICAgICB2YXIgYWRkaXRpb25hbF91cmxfcGFyYW1zID0gJyc7
CisgICAgICB2YXIgb3JpZ2luID0gUE9QVVBfT1JJR0lOU1tpbmRleF07CisgICAgICB2YXIgcGFy
dGl0aW9uX2lkID0gUE9QVVBfT1JJR0lOU1tpbmRleF07CisgICAgICBpZiAocG9wdXBfcGFyYW1z
LnR5cGUgPT0gJ21haW5fZnJhbWUnKSB7CisgICAgICAgIHBvcHVwX3BhdGggPSAncmVzb3VyY2Vz
L25ldHdvcmstcGFydGl0aW9uLWNoZWNrZXIuaHRtbCc7CisgICAgICB9IGVsc2UgaWYgKHBvcHVw
X3BhcmFtcy50eXBlID09ICdpZnJhbWUnKSB7CisgICAgICAgIHBvcHVwX3BhdGggPSAncmVzb3Vy
Y2VzL25ldHdvcmstcGFydGl0aW9uLWlmcmFtZS1jaGVja2VyLmh0bWwnOworICAgICAgICBhZGRp
dGlvbmFsX3VybF9wYXJhbXMgPSBgJm90aGVyX29yaWdpbj0ke3BvcHVwX3BhcmFtcy5pZnJhbWVf
b3JpZ2lufWA7CisgICAgICB9IGVsc2UgaWYgKHBvcHVwX3BhcmFtcy50eXBlID09ICd3b3JrZXIn
KSB7CisgICAgICAgIHBvcHVwX3BhdGggPSAncmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLXdv
cmtlci1jaGVja2VyLmh0bWwnOworICAgICAgICAvLyBUaGUgb3JpZ2luIG9mIHRoZSBkZWRpY2F0
ZWQgd29ya2VyIG11c3QgbXV0Y2ggdGhlIHBhZ2UgdGhhdCBsb2FkcyBpdC4KKyAgICAgICAgYWRk
aXRpb25hbF91cmxfcGFyYW1zID0gYCZvdGhlcl9vcmlnaW49JHtQT1BVUF9PUklHSU5TW2luZGV4
XX1gOworICAgICAgfSBlbHNlIGlmIChwb3B1cF9wYXJhbXMudHlwZSA9PSAnY3NwX3NhbmRib3gn
KSB7CisgICAgICAgIC8vIEZvciB0aGUgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgc2FuZGJveCB0
ZXN0LCBhbGwgcmVxdWVzdHMgYXJlIGZyb20gdGhlIHNhbWUgb3JpZ2luLCBidXQKKyAgICAgICAg
Ly8gdGhlIG9yaWdpbiBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbiBvcGFxdWUgb3JpZ2luLCBzbyBz
b2NrZXRzIHNob3VsZCBub3QgYmUgcmV1c2VkLgorICAgICAgICBvcmlnaW4gPSB0ZXN0LnN1YnJl
c291cmNlX29yaWdpbjsKKyAgICAgICAgcGFydGl0aW9uX2lkID0gaW5kZXg7CisgICAgICAgIHBv
cHVwX3BhdGggPSAncmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWNoZWNrZXIuaHRtbCc7Cisg
ICAgICAgIC8vIERvbid0IGNoZWNrIHBhcnRpdGlvbiBvZiByb290IGRvY3VtZW50LCBzaW5jZSB0
aGUgZG9jdW1lbnQgaXNuJ3Qgc2FuZGJveGVkIHVudGlsIHRoZQorICAgICAgICAvLyByb290IGRv
Y3VtZW50IGlzIGZldGNoZWQuCisgICAgICAgIGFkZGl0aW9uYWxfdXJsX3BhcmFtcyA9ICcmc2Fu
ZGJveD10cnVlJm5vY2hlY2tfcGFydGl0aW9uPXRydWUnCisgICAgICB9IGVsc2UgaWYgKHBvcHVw
X3BhcmFtcy50eXBlPT0nb3BhcXVlX2Fib3V0X2JsYW5rJykgeworICAgICAgICBwb3B1cF9wYXRo
ID0gJ3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1hYm91dC1ibGFuay1jaGVja2VyLmh0bWwn
OworICAgICAgfSBlbHNlIGlmIChwb3B1cF9wYXJhbXMudHlwZSA9PSAnaWZyYW1lJykgeworICAg
ICAgICB0aHJvdyAnVW5yZWNvZ25pemVkIHBvcHVwX3BhcmFtcy50eXBlLic7CisgICAgICB9Cisg
ICAgICB2YXIgdXJsID0gY3JlYXRlX3NjcmlwdF91cmwob3JpZ2luLCB1dWlkLCBwYXJ0aXRpb25f
aWQsICdmZXRjaF9maWxlJyk7CisgICAgICB1cmwgKz0gYCZzdWJyZXNvdXJjZV9vcmlnaW49JHt0
ZXN0LnN1YnJlc291cmNlX29yaWdpbn1gCisgICAgICB1cmwgKz0gYCZpbmNsdWRlX2NyZWRlbnRp
YWxzPSR7dGVzdC5pbmNsdWRlX2NyZWRlbnRpYWxzfWAKKyAgICAgIHVybCArPSBgJnBhdGg9JHtC
QVNFX1BBVEguc3Vic3RyaW5nKDEpfSR7cG9wdXBfcGF0aH1gOworICAgICAgdXJsICs9IGFkZGl0
aW9uYWxfdXJsX3BhcmFtczsKKworICAgICAgaWYgKHBvcHVwX3BhcmFtcy50eXBlPT0nb3BhcXVl
X2Fib3V0X2JsYW5rJykgeworICAgICAgICByZXR1cm4gbmF2aWdhdGVfaWZyYW1lX2FuZF93YWl0
X2Zvcl9yZXN1bHQoaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScgKyBp
bmRleCksIHVybCk7CisgICAgICB9CisKKyAgICAgIHJldHVybiBjcmVhdGVfcG9wdXBfYW5kX3dh
aXRfZm9yX3Jlc3VsdCh1cmwpOworICAgIH0KKyAgfQorCisgIC8vIFRha2VzIGEgUHJvbWlzZSwg
YW5kIGNsZWFucyB1cCBzdGF0ZSB3aGVuIHRoZSBwcm9taXNlIGhhcyBjb21wbGV0ZWQsIHN1Y2Nl
c3NmdWxseSBvciBub3QsIHJlLXRocm93aW5nCisgIC8vIGFueSBleGNlcHRpb24gZnJvbSB0aGUg
cGFzc2VkIGluIFByb21pc2UuCisgIGFzeW5jIGZ1bmN0aW9uIGNsZWFuX3VwX3doZW5fZG9uZShw
cm9taXNlKSB7CisgICAgdmFyIGVycm9yOworICAgIHRyeSB7CisgICAgICBhd2FpdCBwcm9taXNl
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBwb3B1
cF93aW5kb3dzLm1hcChmdW5jdGlvbiAod2luKSB7IHdpbi5jbG9zZSgpOyB9KTsKKworICAgIHRy
eSB7CisgICAgICB2YXIgY2xlYW51cF91cmwgPSBjcmVhdGVfc2NyaXB0X3VybChob3N0Lk9SSUdJ
TiwgdXVpZCwgaG9zdC5PUklHSU4sICdjbGVhbl91cCcpOworICAgICAgdmFyIHJlc3BvbnNlID0g
YXdhaXQgZmV0Y2goY2xlYW51cF91cmwsIHtjcmVkZW50aWFsczogJ29taXQnLCBtb2RlOiAnY29y
cyd9KTsKKyAgICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgcmVzcG9uc2UudGV4dCgpLCAnY2xlYW51
cCBjb21wbGV0ZScsIGBTZXZlciBzdGF0ZSBjbGVhbnVwIGZhaWxlZGApOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgIC8vIFByZWZlciBlcnJvciBmcm9tIHRoZSBwYXNzZWQgaW4gUHJvbWlzZSBv
dmVyIGVycm9ycyBmcm9tIHRoZSBmZXRjaCByZXF1ZXN0IHRvIGNsZWFuIHVwIHNlcnZlciBzdGF0
ZS4KKyAgICAgIGVycm9yID0gZXJyb3IgfHwgZTsKKyAgICB9CisgICAgaWYgKGVycm9yKQorICAg
ICAgdGhyb3cgZXJyb3I7CisgIH0KKworICByZXR1cm4gY2xlYW5fdXBfd2hlbl9kb25lKAorICAg
ICAgbWFrZV90ZXN0X2Z1bmN0aW9uKHRlc3QsIDApKCkKKyAgICAgIC50aGVuKG1ha2VfdGVzdF9m
dW5jdGlvbih0ZXN0LCAxKSkpOworfQorCit0ZXN0cy5mb3JFYWNoKGZ1bmN0aW9uICh0ZXN0KSB7
CisgIHByb21pc2VfdGVzdCgKKyAgICAgIGZ1bmN0aW9uKCkgeyByZXR1cm4gcnVuX3Rlc3QodGVz
dCk7IH0sCisgICAgICB0ZXN0Lm5hbWUpOworfSkKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24tYWJv
dXQtYmxhbmstY2hlY2tlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0
aW9uLWFib3V0LWJsYW5rLWNoZWNrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YThiNjEzMjM3NTJkMmJl
MGU3NmY3MGZmMzUyNDk4NmFkOWY2OGViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVz
b3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWFib3V0LWJsYW5rLWNoZWNrZXIuaHRtbApAQCAtMCww
ICsxLDM1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKyAgPHRpdGxlPmFib3V0OmJsYW5rIE5ldHdvcmsgUGFydGl0aW9uIENoZWNr
ZXI8L3RpdGxlPgorICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMu
d2hhdHdnLm9yZy8jbmV0d29yay1wYXJ0aXRpb24ta2V5cyI+CisgIDxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9Im5vcm1hbCI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgIGFzeW5j
IGZ1bmN0aW9uIGZldGNoX2FuZF9yZXBseSgpIHsKKyAgICAvLyBMb2FkIGFib3V0OmJsYW5rIGlu
IGEgbmV3IHRhYiwgYW5kIGluamVjdCB0aGUgbmV0d29yayBwYXJ0aXRpb24gY2hlY2tpbmcgY29k
ZSBpbnRvIGl0LgorICAgIHZhciB3aW47CisgICAgdHJ5IHsKKyAgICAgIHdpbiA9IHdpbmRvdy5v
cGVuKCk7CisgICAgICB2YXIgdXJsID0gJ1NVQlJFU09VUkNFX1BSRUZJWDomZGlzcGF0Y2g9ZmV0
Y2hfZmlsZSZwYXRoPWZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0
aXRpb24tY2hlY2tlci5odG1sJnNhbmRib3g9dHJ1ZSc7CisgICAgICB2YXIgcmVzcG9uc2UgPSBh
d2FpdCBmZXRjaCh1cmwsIHtjcmVkZW50aWFsczogJ29taXQnLCBtb2RlOiAnY29ycyd9KTsKKyAg
ICAgIHdpbi5kb2N1bWVudC53cml0ZShhd2FpdCByZXNwb25zZS50ZXh0KCkpOworICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgIHdpbi5jbG9zZSgpOworICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVz
c2FnZSh7cmVzdWx0OiAnZXJyb3InLCBkZXRhaWxzOiBlLm1lc3NhZ2V9LCAnKicpOworICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIExpc3RlbiBmb3IgZmlyc3QgbWVzc2FnZSBmcm9tIHRo
ZSBuZXcgd2luZG93IGFuZCBwYXNzIGl0IGJhY2sgdG8gdGhlIHBhcmVudC4KKyAgICBmdW5jdGlv
biBtZXNzYWdlX2xpc3RlbmVyKGV2ZW50KSB7CisgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNz
YWdlKGV2ZW50LmRhdGEsICcqJyk7CisgICAgICB3aW4uY2xvc2UoKTsKKyAgICB9CisgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBtZXNzYWdlX2xpc3RlbmVyLCB7b25jZTog
dHJ1ZX0pOworICB9CisgIGZldGNoX2FuZF9yZXBseSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24t
Y2hlY2tlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWNoZWNr
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMDU4ZjYxMTI0MmJiOGNjZTQ1NzE0MDllZjMwYzhlYTBkN2Vk
MjJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0
aW9uLWNoZWNrZXIuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgPHRpdGxlPk5ldHdvcmsgUGFy
dGl0aW9uIENoZWNrZXI8L3RpdGxlPgorICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jbmV0d29yay1wYXJ0aXRpb24ta2V5cyI+CisgIDxtZXRh
IG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Im5vcm1hbCI+CisgIDxzY3JpcHQgc3JjPSJTVUJSRVNP
VVJDRV9QUkVGSVg6JmRpc3BhdGNoPWZldGNoX2ZpbGUmcGF0aD1jb21tb24vdXRpbHMuanMiPjwv
c2NyaXB0PgorICA8c2NyaXB0IHNyYz0iU1VCUkVTT1VSQ0VfUFJFRklYOiZkaXNwYXRjaD1mZXRj
aF9maWxlJnBhdGg9cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlw
dCBzcmM9IlNVQlJFU09VUkNFX1BSRUZJWDomZGlzcGF0Y2g9ZmV0Y2hfZmlsZSZwYXRoPWZldGNo
L2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24ta2V5LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgYXN5bmMgZnVuY3Rpb24gZmV0Y2hf
YW5kX3JlcGx5KCkgeworICAgIC8vIElmIHRoaXMgaXMgYSB0b3AgbGV2ZWwgd2luZG93LCByZXBv
cnQgdG8gdGhlIG9wZW5lci4gT3RoZXJ3aXNlLCB0aGlzIGlzIGFuIGlmcmFtZSwKKyAgICAvLyBz
byByZXBvcnQgdG8gdGhlIHBhcmVudC4KKyAgICB2YXIgcmVwb3J0X3RvID0gd2luZG93Lm9wZW5l
cjsKKyAgICBpZiAoIXJlcG9ydF90bykKKyAgICAgIHJlcG9ydF90byA9IHdpbmRvdy5wYXJlbnQ7
CisgICAgdHJ5IHsKKyAgICAgICBhd2FpdCBjaGVja19wYXJ0aXRpb25faWRzKCk7CisgICAgICAg
cmVwb3J0X3RvLnBvc3RNZXNzYWdlKHtyZXN1bHQ6ICdzdWNjZXNzJ30sICcqJyk7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICByZXBvcnRfdG8ucG9zdE1lc3NhZ2Uoe3Jlc3VsdDogJ2Vycm9yJywg
ZGV0YWlsczogZS5tZXNzYWdlfSwgJyonKTsKKyAgICB9CisgIH0KKyAgZmV0Y2hfYW5kX3JlcGx5
KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jl
c291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1pZnJhbWUtY2hlY2tlci5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wv
cmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWlmcmFtZS1jaGVja2VyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjc2ZWQxODQ0NzE5YzlmODhiNTNlNWYyZDM1ZjdhODZkODY2M2MzYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
Y29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1pZnJhbWUtY2hlY2tl
ci5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICA8dGl0bGU+SWZyYW1lIE5ldHdvcmsgUGFydGl0
aW9uIENoZWNrZXI8L3RpdGxlPgorICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2Zl
dGNoLnNwZWMud2hhdHdnLm9yZy8jbmV0d29yay1wYXJ0aXRpb24ta2V5cyI+CisgIDxtZXRhIG5h
bWU9InRpbWVvdXQiIGNvbnRlbnQ9Im5vcm1hbCI+CisgIDxzY3JpcHQgc3JjPSJTVUJSRVNPVVJD
RV9QUkVGSVg6JmRpc3BhdGNoPWZldGNoX2ZpbGUmcGF0aD1jb21tb24vdXRpbHMuanMiPjwvc2Ny
aXB0PgorICA8c2NyaXB0IHNyYz0iU1VCUkVTT1VSQ0VfUFJFRklYOiZkaXNwYXRjaD1mZXRjaF9m
aWxlJnBhdGg9cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBz
cmM9IlNVQlJFU09VUkNFX1BSRUZJWDomZGlzcGF0Y2g9ZmV0Y2hfZmlsZSZwYXRoPWZldGNoL2Nv
bm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24ta2V5LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgLy8gTGlzdGVuIGZvciBmaXJzdCBtZXNz
YWdlIGZyb20gdGhlIGlmcmFtZSwgYW5kIHBhc3MgaXQgYmFjayB0byB0aGUgb3BlbmVyLgorICBm
dW5jdGlvbiBtZXNzYWdlX2xpc3RlbmVyKGV2ZW50KSB7CisgICAgd2luZG93Lm9wZW5lci5wb3N0
TWVzc2FnZShldmVudC5kYXRhLCAnKicpOworICB9CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtZXNzYWdlJywgbWVzc2FnZV9saXN0ZW5lciwge29uY2U6ICd0cnVlJ30pOworPC9zY3JpcHQ+
Cis8aWZyYW1lIHNyYz0iU1VCUkVTT1VSQ0VfUFJFRklYOiZkaXNwYXRjaD1mZXRjaF9maWxlJnBh
dGg9ZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1jaGVj
a2VyLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBv
b2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWtleS5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNl
cy9uZXR3b3JrLXBhcnRpdGlvbi1rZXkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ2NjEwOTM4MGYyMWVmMTcx
Y2I5MGY2YzdhMWRkYWZkN2RkOTIxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291
cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1rZXkuanMKQEAgLTAsMCArMSw0NyBAQAorLy8gUnVucyBt
dWx0aXBsZSBmZXRjaGVzIHRoYXQgdmFsaWRhdGUgY29ubmVjdGlvbnMgc2VlIG9ubHkgYSBzaW5n
bGUgcGFydGl0aW9uX2lkLgorLy8gUmVxdWVzdHMgYXJlIHJ1biBpbiBwYXJhbGxlbCBzbyB0aGF0
IHRoZXkgdXNlIG11bHRpcGxlIGNvbm5lY3Rpb25zIHRvIG1heGltaXplIHRoZQorLy8gY2hhbmNl
IG9mIGV4ZXJjaXNpbmcgYWxsIG1hdGNoaW5nIGNvbm5lY3Rpb25zIGluIHRoZSBjb25uZWN0aW9u
IHBvb2wuIE9ubHkgcmV0dXJucworLy8gb25jZSBhbGwgcmVxdWVzdHMgaGF2ZSBjb21wbGV0ZWQg
dG8gbWFrZSBjbGVhbmluZyB1cCBzZXJ2ZXIgc3RhdGUgbm9uLXJhY3kuCitmdW5jdGlvbiBjaGVj
a19wYXJ0aXRpb25faWRzKGxvY2F0aW9uKSB7CisgIGNvbnN0IE5VTV9GRVRDSEVTID0gMjA7CisK
KyAgdmFyIGJhc2VfdXJsID0gJ1NVQlJFU09VUkNFX1BSRUZJWDomZGlzcGF0Y2g9Y2hlY2tfcGFy
dGl0aW9uJzsKKworICAvLyBOb3QgYSBwZXJmZWN0IHBhcnNlIG9mIHRoZSBxdWVyeSBzdHJpbmcs
IGJ1dCBnb29kIGVub3VnaCBmb3IgdGhpcyB0ZXN0LgorICB2YXIgaW5jbHVkZV9jcmVkZW50aWFs
cyA9IGJhc2VfdXJsLnNlYXJjaCgnaW5jbHVkZV9jcmVkZW50aWFscz10cnVlJykgIT0gLTE7Cisg
IHZhciBleGNsdWRlX2NyZWRlbnRpYWxzID0gYmFzZV91cmwuc2VhcmNoKCdpbmNsdWRlX2NyZWRl
bnRpYWxzPWZhbHNlJykgIT0gLTE7CisgIGlmIChpbmNsdWRlX2NyZWRlbnRpYWxzICE9ICFleGNs
dWRlX2NyZWRlbnRpYWxzKQorICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0NyZWRlbnRpYWxzIG1v
ZGUgbm90IHNwZWNpZmllZCcpOworCisKKyAgLy8gUnVuIE5VTV9GRVRDSEVTIGluIHBhcmFsbGVs
LgorICB2YXIgZmV0Y2hlcyA9IFtdOworICBmb3IgKGkgPSAwOyBpIDwgTlVNX0ZFVENIRVM7ICsr
aSkgeworICAgIHZhciBmZXRjaF9wYXJhbXMgPSB7CisgICAgICBjcmVkZW50aWFsczogJ29taXQn
LAorICAgICAgbW9kZTogJ2NvcnMnLAorICAgICAgaGVhZGVyczogeworICAgICAgICAnSGVhZGVy
LVRvLUZvcmNlLUNPUlMnOiAnY29ycycKKyAgICAgIH0sCisgICAgfTsKKworICAgIC8vIFVzZSBh
IHVuaXF1ZSBVUkwgZm9yIGVhY2ggcmVxdWVzdCwgaW4gY2FzZSB0aGUgY2FjaGluZyBsYXllciBz
ZXJpYWxpemVzIG11bHRpcGxlCisgICAgLy8gcmVxdWVzdHMgZm9yIHRoZSBzYW1lIFVSTC4KKyAg
ICB2YXIgdXJsID0gYCR7YmFzZV91cmx9JiR7dG9rZW4oKX1gOworCisgICAgZmV0Y2hlcy5wdXNo
KGZldGNoKHVybCwgZmV0Y2hfcGFyYW1zKS50aGVuKAorICAgICAgICBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKKyAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24odGV4
dCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCAnb2snLCBgU29ja2V0IHVuZXhw
ZWN0ZWRseSByZXVzZWRgKTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSkpOworICB9CisKKyAg
Ly8gV2FpdCBmb3IgYWxsIHByb21pc2VzIHRvIGNvbXBsZXRlLgorICByZXR1cm4gUHJvbWlzZS5h
bGxTZXR0bGVkKGZldGNoZXMpLnRoZW4oZnVuY3Rpb24gKHJlc3VsdHMpIHsKKyAgICByZXN1bHRz
LmZvckVhY2goZnVuY3Rpb24gKHJlc3VsdCkgeworICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgIT0g
J2Z1bGZpbGxlZCcpCisgICAgICAgIHRocm93IHJlc3VsdC5yZWFzb247CisgICAgfSk7CisgIH0p
OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLWtl
eS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
Y29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1rZXkucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjFlMDQ5NmZjYTM1ZDM1OTAwOGExMWYyYjU4MTU1NWNiNmQ5NDAyNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi1rZXkucHkKQEAg
LTAsMCArMSwxMTYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorCitpbXBvcnQgbWltZXR5cGVz
CitpbXBvcnQgb3MKKworZnJvbSB3cHRzZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19kZWNv
ZGUsIGlzb21vcnBoaWNfZW5jb2RlCisKKyMgVGVzdCBzZXJ2ZXIgdGhhdCB0cmFja3MgdGhlIGxh
c3QgcGFydGl0aW9uX2lkIHdhcyB1c2VkIHdpdGggZWFjaCBjb25uZWN0aW9uIGZvciBlYWNoIHV1
aWQsIGFuZAorIyBsZXRzIGNvbnN1bWVycyBxdWVyeSBpZiBtdWx0aXBsZSBkaWZmZXJlbnQgcGFy
dGl0aW9uX2lkcyBoYXZlIGJlZW4gYmVlbiB1c2VkIGZvciBhbnkgc29ja2V0LgorIworIyBTZXJ2
ZXIgYXNzdW1lcyB0aGF0IHBvcnRzIGFyZW4ndCByZXVzZWQsIHNvIGEgY2xpZW50IGFkZHJlc3Mg
YW5kIGEgc2VydmVyIHBvcnQgdW5pcXVlbHkgaWRlbnRpZnkKKyMgYSBjb25uZWN0aW9uLiBJZiB0
aGF0IGNvbnN0cmFpbnQgaXMgZXZlciB2aW9sYXRlZCwgdGhlIHRlc3Qgd2lsbCBiZSBmbGFreS4g
Tm8gc29ja2V0cyBiZWluZworIyBjbG9zZWQgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgdGVzdCBp
cyBzdWZmaWNpZW50IHRvIGVuc3VyZSB0aGF0LCB0aG91Z2ggZXZlbiBpZiBzb2NrZXRzIGFyZQor
IyBjbG9zZWQsIHRoZSBPUyBzaG91bGQgZ2VuZXJhbGx5IHByZWZlciB0byB1c2UgbmV3IHBvcnRz
IGZvciBuZXcgY29ubmVjdGlvbnMsIGlmIGFueSBhcmUKKyMgYXZhaWxhYmxlLgorZGVmIG1haW4o
cmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ2FjaGUtQ29u
dHJvbCIsIGIibm8tc3RvcmUiKQorICAgIGRpc3BhdGNoID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJk
aXNwYXRjaCIsIE5vbmUpCisgICAgdXVpZCA9IHJlcXVlc3QuR0VULmZpcnN0KGIidXVpZCIsIE5v
bmUpCisgICAgcGFydGl0aW9uX2lkID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJwYXJ0aXRpb25faWQi
LCBOb25lKQorCisgICAgaWYgbm90IHV1aWQgb3Igbm90IGRpc3BhdGNoIG9yIG5vdCBwYXJ0aXRp
b25faWQ6CisgICAgICAgIHJldHVybiBzaW1wbGVfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2Us
IDQwNCwgYiJOb3QgZm91bmQiLCBiIkludmFsaWQgcXVlcnkgcGFyYW1ldGVycyIpCisKKyAgICAj
IFVubGVzcyBub2NoZWNrX3BhcnRpdGlvbiBpcyB0cnVlLCBjaGVjayBwYXJ0aXRpb25faWQgYWdh
aW5zdCBzZXJ2ZXJfc3RhdGUsIGFuZCB1cGRhdGUgc2VydmVyX3N0YXRlLgorICAgIHN0YXNoID0g
cmVxdWVzdC5zZXJ2ZXIuc3Rhc2gKKyAgICB0ZXN0X2ZhaWxlZCA9IEZhbHNlCisgICAgaWYgcmVx
dWVzdC5HRVQuZmlyc3QoYiJub2NoZWNrX3BhcnRpdGlvbiIsIE5vbmUpICE9IGIiVHJ1ZSI6Cisg
ICAgICAgICMgTmVlZCB0byBncmFiIHRoZSBsb2NrIHRvIGFjY2VzcyB0aGUgU3Rhc2gsIHNpbmNl
IHJlcXVlc3RzIGFyZSBtYWRlIGluIHBhcmFsbGVsLgorICAgICAgICB3aXRoIHN0YXNoLmxvY2s6
CisgICAgICAgICAgICAjIERvbid0IHVzZSBzZXJ2ZXIgaG9zdG5hbWUgaGVyZSwgc2luY2UgSDIg
YWxsb3dzIG11bHRpcGxlIGhvc3RzIHRvIHJldXNlIGEgY29ubmVjdGlvbi4KKyAgICAgICAgICAg
ICMgU2VydmVyIElQIGlzIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxlLCB1bmZvcnR1bmF0ZWx5Lgor
ICAgICAgICAgICAgYWRkcmVzc19rZXkgPSBpc29tb3JwaGljX2VuY29kZShzdHIocmVxdWVzdC5j
bGllbnRfYWRkcmVzcykgKyB1InwiICsgc3RyKHJlcXVlc3QudXJsX3BhcnRzLnBvcnQpKQorICAg
ICAgICAgICAgc2VydmVyX3N0YXRlID0gc3Rhc2gudGFrZSh1dWlkKSBvciB7YiJ0ZXN0X2ZhaWxl
ZCI6IEZhbHNlfQorICAgICAgICAgICAgaWYgYWRkcmVzc19rZXkgaW4gc2VydmVyX3N0YXRlIGFu
ZCBzZXJ2ZXJfc3RhdGVbYWRkcmVzc19rZXldICE9IHBhcnRpdGlvbl9pZDoKKyAgICAgICAgICAg
ICAgICBzZXJ2ZXJfc3RhdGVbYiJ0ZXN0X2ZhaWxlZCJdID0gVHJ1ZQorICAgICAgICAgICAgc2Vy
dmVyX3N0YXRlW2FkZHJlc3Nfa2V5XSA9IHBhcnRpdGlvbl9pZAorICAgICAgICAgICAgdGVzdF9m
YWlsZWQgPSBzZXJ2ZXJfc3RhdGVbYiJ0ZXN0X2ZhaWxlZCJdCisgICAgICAgICAgICBzdGFzaC5w
dXQodXVpZCwgc2VydmVyX3N0YXRlKQorCisgICAgb3JpZ2luID0gcmVxdWVzdC5oZWFkZXJzLmdl
dChiIk9yaWdpbiIpCisgICAgaWYgb3JpZ2luOgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNl
dChiIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsIG9yaWdpbikKKyAgICAgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoYiJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscyIsIGIidHJ1
ZSIpCisKKyAgICBpZiByZXF1ZXN0Lm1ldGhvZCA9PSB1Ik9QVElPTlMiOgorICAgICAgICByZXR1
cm4gaGFuZGxlX3ByZWZsaWdodChyZXF1ZXN0LCByZXNwb25zZSkKKworICAgIGlmIGRpc3BhdGNo
ID09IGIiZmV0Y2hfZmlsZSI6CisgICAgICAgIHJldHVybiBoYW5kbGVfZmV0Y2hfZmlsZShyZXF1
ZXN0LCByZXNwb25zZSwgcGFydGl0aW9uX2lkLCB1dWlkKQorCisgICAgaWYgZGlzcGF0Y2ggPT0g
YiJjaGVja19wYXJ0aXRpb24iOgorICAgICAgICBpZiB0ZXN0X2ZhaWxlZDoKKyAgICAgICAgICAg
IHJldHVybiBzaW1wbGVfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIDIwMCwgYiJPSyIsIGIi
TXVsdGlwbGUgcGFydGl0aW9uIElEcyB1c2VkIG9uIGEgc29ja2V0IikKKyAgICAgICAgcmV0dXJu
IHNpbXBsZV9yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZSwgMjAwLCBiIk9LIiwgYiJvayIpCisK
KyAgICBpZiBkaXNwYXRjaCA9PSBiImNsZWFuX3VwIjoKKyAgICAgICAgc3Rhc2gudGFrZSh1dWlk
KQorICAgICAgICBpZiB0ZXN0X2ZhaWxlZDoKKyAgICAgICAgICAgIHJldHVybiBzaW1wbGVfcmVz
cG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIDIwMCwgYiJPSyIsIGIiVGVzdCBmYWlsZWQsIGJ1dCBj
bGVhbnVwIGNvbXBsZXRlZC4iKQorICAgICAgICByZXR1cm4gc2ltcGxlX3Jlc3BvbnNlKHJlcXVl
c3QsIHJlc3BvbnNlLCAyMDAsIGIiT0siLCBiImNsZWFudXAgY29tcGxldGUiKQorCisgICAgcmV0
dXJuIHNpbXBsZV9yZXNwb25zZShyZXF1ZXN0LCByZXNwb25zZSwgNDA0LCBiIk5vdCBGb3VuZCIs
IGIiVW5yZWNvZ25pemVkIGRpc3BhdGNoIHBhcmFtZXRlcjogIiArIGRpc3BhdGNoKQorCitkZWYg
aGFuZGxlX3ByZWZsaWdodChyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgcmVzcG9uc2Uuc3RhdHVz
ID0gKDIwMCwgYiJPSyIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJBY2Nlc3MtQ29udHJv
bC1BbGxvdy1NZXRob2RzIiwgYiJHRVQiKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIGIiaGVhZGVyLXRvLWZvcmNlLWNvcnMiKQorICAg
IHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQWNjZXNzLUNvbnRyb2wtTWF4LUFnZSIsIGIiODY0MDAi
KQorICAgIHJldHVybiBiIlByZWZsaWdodCByZXF1ZXN0IgorCitkZWYgc2ltcGxlX3Jlc3BvbnNl
KHJlcXVlc3QsIHJlc3BvbnNlLCBzdGF0dXNfY29kZSwgc3RhdHVzX21lc3NhZ2UsIGJvZHksIGNv
bnRlbnRfdHlwZT1iInRleHQvcGxhaW4iKToKKyAgICByZXNwb25zZS5zdGF0dXMgPSAoc3RhdHVz
X2NvZGUsIHN0YXR1c19tZXNzYWdlKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVu
dC1UeXBlIiwgY29udGVudF90eXBlKQorICAgIHJldHVybiBib2R5CisKK2RlZiBoYW5kbGVfZmV0
Y2hfZmlsZShyZXF1ZXN0LCByZXNwb25zZSwgcGFydGl0aW9uX2lkLCB1dWlkKToKKyAgICBzdWJy
ZXNvdXJjZV9vcmlnaW4gPSByZXF1ZXN0LkdFVC5maXJzdChiInN1YnJlc291cmNlX29yaWdpbiIs
IE5vbmUpCisgICAgcmVsX3BhdGggPSByZXF1ZXN0LkdFVC5maXJzdChiInBhdGgiLCBOb25lKQor
CisgICAgIyBUaGlzIG5lZWRzIHRvIGJlIHBhc3NlZCBvbiB0byBzdWJyZXNvdXJjZXMgc28gdGhl
eSBhbGwgaGF2ZSBhY2Nlc3MgdG8gaXQuCisgICAgaW5jbHVkZV9jcmVkZW50aWFscyA9IHJlcXVl
c3QuR0VULmZpcnN0KGIiaW5jbHVkZV9jcmVkZW50aWFscyIsIE5vbmUpCisgICAgaWYgbm90IHN1
YnJlc291cmNlX29yaWdpbiBvciBub3QgcmVsX3BhdGggb3Igbm90IGluY2x1ZGVfY3JlZGVudGlh
bHM6CisgICAgICAgIHJldHVybiBzaW1wbGVfcmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIDQw
NCwgYiJOb3QgZm91bmQiLCBiIkludmFsaWQgcXVlcnkgcGFyYW1ldGVycyIpCisKKyAgICBjdXJf
cGF0aCA9IG9zLnBhdGgucmVhbHBhdGgoaXNvbW9ycGhpY19kZWNvZGUoX19maWxlX18pKQorICAg
IGJhc2VfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1l
KGN1cl9wYXRoKSwgb3MucGFyZGlyLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCisgICAgcGF0aCA9
IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oYmFzZV9wYXRoLCBpc29tb3JwaGljX2RlY29k
ZShyZWxfcGF0aCkpKQorCisgICAgIyBCYXNpYyBzZWN1cml0eSBjaGVjay4KKyAgICBpZiBub3Qg
cGF0aC5zdGFydHN3aXRoKGJhc2VfcGF0aCk6CisgICAgICAgIHJldHVybiBzaW1wbGVfcmVzcG9u
c2UocmVxdWVzdCwgcmVzcG9uc2UsIDQwNCwgYiJOb3QgZm91bmQiLCBiIkludmFsaWQgcGF0aCIp
CisKKyAgICBzYW5kYm94ID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJzYW5kYm94IiwgTm9uZSkKKyAg
ICBpZiBzYW5kYm94ID09IGIidHJ1ZSI6CisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIi
Q29udGVudC1TZWN1cml0eS1Qb2xpY3kiLCBiInNhbmRib3ggYWxsb3ctc2NyaXB0cyIpCisKKyAg
ICBmaWxlID0gb3BlbihwYXRoLCBtb2RlPSJyYiIpCisgICAgYm9keSA9IGZpbGUucmVhZCgpCisg
ICAgZmlsZS5jbG9zZSgpCisKKyAgICBzdWJyZXNvdXJjZV9wYXRoID0gYiIvIiArIGlzb21vcnBo
aWNfZW5jb2RlKG9zLnBhdGgucmVscGF0aChpc29tb3JwaGljX2RlY29kZShfX2ZpbGVfXyksIGJh
c2VfcGF0aCkpLnJlcGxhY2UoYidcXCcsIGInLycpCisgICAgc3VicmVzb3VyY2VfcGFyYW1zID0g
YiI/cGFydGl0aW9uX2lkPSIgKyBwYXJ0aXRpb25faWQgKyBiIiZ1dWlkPSIgKyB1dWlkICsgYiIm
c3VicmVzb3VyY2Vfb3JpZ2luPSIgKyBzdWJyZXNvdXJjZV9vcmlnaW4gKyBiIiZpbmNsdWRlX2Ny
ZWRlbnRpYWxzPSIgKyBpbmNsdWRlX2NyZWRlbnRpYWxzCisgICAgYm9keSA9IGJvZHkucmVwbGFj
ZShiIlNVQlJFU09VUkNFX1BSRUZJWDoiLCBzdWJyZXNvdXJjZV9vcmlnaW4gKyBzdWJyZXNvdXJj
ZV9wYXRoICsgc3VicmVzb3VyY2VfcGFyYW1zKQorCisgICAgb3RoZXJfb3JpZ2luID0gcmVxdWVz
dC5HRVQuZmlyc3QoYiJvdGhlcl9vcmlnaW4iLCBOb25lKQorICAgIGlmIG90aGVyX29yaWdpbjoK
KyAgICAgICAgYm9keSA9IGJvZHkucmVwbGFjZShiIk9USEVSX1BSRUZJWDoiLCBvdGhlcl9vcmln
aW4gKyBzdWJyZXNvdXJjZV9wYXRoICsgc3VicmVzb3VyY2VfcGFyYW1zKQorCisgICAgbWltZXR5
cGVzLmluaXQoKQorICAgIG1pbWV0eXBlX3BhaXIgPSBtaW1ldHlwZXMuZ3Vlc3NfdHlwZShwYXRo
KQorICAgIG1pbWV0eXBlID0gbWltZXR5cGVfcGFpclswXQorCisgICAgaWYgbWltZXR5cGUgPT0g
Tm9uZSBvciBtaW1ldHlwZV9wYWlyWzFdICE9IE5vbmU6CisgICAgICAgIHJldHVybiBzaW1wbGVf
cmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2UsIDUwMCwgYiJTZXJ2ZXIgRXJyb3IiLCBiIlVua25v
d24gTUlNRSB0eXBlIikKKyAgICByZXR1cm4gc2ltcGxlX3Jlc3BvbnNlKHJlcXVlc3QsIHJlc3Bv
bnNlLCAyMDAsIGIiT0siLCBib2R5LCBtaW1ldHlwZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jl
c291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi13b3JrZXItY2hlY2tlci5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wv
cmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLXdvcmtlci1jaGVja2VyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTZiN2VhNzY3M2ZlNzk4YjJlNWE3MzcwNTYwMDdiNWEyNWUzYzc5MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
Y29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3JrLXBhcnRpdGlvbi13b3JrZXItY2hlY2tl
ci5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICA8dGl0bGU+V29ya2VyIE5ldHdvcmsgUGFydGl0
aW9uIENoZWNrZXI8L3RpdGxlPgorICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2Zl
dGNoLnNwZWMud2hhdHdnLm9yZy8jbmV0d29yay1wYXJ0aXRpb24ta2V5cyI+CisgIDxtZXRhIG5h
bWU9InRpbWVvdXQiIGNvbnRlbnQ9Im5vcm1hbCI+CisgIDxzY3JpcHQgc3JjPSJTVUJSRVNPVVJD
RV9QUkVGSVg6JmRpc3BhdGNoPWZldGNoX2ZpbGUmcGF0aD1jb21tb24vdXRpbHMuanMiPjwvc2Ny
aXB0PgorICA8c2NyaXB0IHNyYz0iU1VCUkVTT1VSQ0VfUFJFRklYOiZkaXNwYXRjaD1mZXRjaF9m
aWxlJnBhdGg9cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBz
cmM9IlNVQlJFU09VUkNFX1BSRUZJWDomZGlzcGF0Y2g9ZmV0Y2hfZmlsZSZwYXRoPWZldGNoL2Nv
bm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24ta2V5LmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICAvLyBXb3JrZXJzIG11c3QgYmUgc2Ft
ZSBvcmlnaW4gYXMgdGhlIHBhZ2UgbG9hZGluZyB0aGVtLCBidXQgaXQncyBzaW1wbGVyIHRvIHJl
dXNlIHRoZQorICAgIC8vIE9USEVSX1BSRUZJWCBtZWNoYW5pc20gaW4gdGhlIFB5dGhvbiBjb2Rl
IHRoYW4gdG8gY3JhZnQgdGhlIFVSTCBpbiBKYXZhc2NyaXB0IGhlcmUuCisgICAgdmFyIHdvcmtl
ciA9IG5ldyBXb3JrZXIoJ09USEVSX1BSRUZJWDomZGlzcGF0Y2g9ZmV0Y2hfZmlsZSZwYXRoPWZl
dGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24td29ya2VyLmpz
Jyk7CisgICAgZnVuY3Rpb24gbWVzc2FnZV9saXN0ZW5lcihldmVudCkgeworICAgICAgd2luZG93
Lm9wZW5lci5wb3N0TWVzc2FnZShldmVudC5kYXRhLCAnKicpOworICAgICAgd29ya2VyLnRlcm1p
bmF0ZSgpOworICAgIH0KKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG1l
c3NhZ2VfbGlzdGVuZXIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5l
Y3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24td29ya2VyLmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBv
b2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzQ1
ZWRmYWNiMTMwZjVhMGMxNzcyOTZmYTYzMjRhY2M0NWFiOWY1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0
aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLXdvcmtlci5qcwpAQCAtMCwwICsx
LDE1IEBACisvLyBUaGlzIHRlc3RzIHRoZSBwYXJ0aXRpb24ga2V5IG9mIGZldGNoZXMgdG8gc3Vi
cmVzb3VjZV9vcmlnaW4gbWFkZSBieSB0aGUgd29ya2VyIGFuZAorLy8gaW1wb3J0ZWQgc2NyaXB0
cyBmcm9tIHN1YnJlc291cmNlX29yaWdpbi4KK2ltcG9ydFNjcmlwdHMoJ1NVQlJFU09VUkNFX1BS
RUZJWDomZGlzcGF0Y2g9ZmV0Y2hfZmlsZSZwYXRoPWNvbW1vbi91dGlscy5qcycpOworaW1wb3J0
U2NyaXB0cygnU1VCUkVTT1VSQ0VfUFJFRklYOiZkaXNwYXRjaD1mZXRjaF9maWxlJnBhdGg9cmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzJyk7CitpbXBvcnRTY3JpcHRzKCdTVUJSRVNPVVJDRV9QUkVG
SVg6JmRpc3BhdGNoPWZldGNoX2ZpbGUmcGF0aD1mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3Vy
Y2VzL25ldHdvcmstcGFydGl0aW9uLWtleS5qcycpOworCithc3luYyBmdW5jdGlvbiBmZXRjaF9h
bmRfcmVwbHkoKSB7CisgIHRyeSB7CisgICAgIGF3YWl0IGNoZWNrX3BhcnRpdGlvbl9pZHMoKTsK
KyAgICAgc2VsZi5wb3N0TWVzc2FnZSh7cmVzdWx0OiAnc3VjY2Vzcyd9KTsKKyAgfSBjYXRjaCAo
ZSkgeworICAgIHNlbGYucG9zdE1lc3NhZ2Uoe3Jlc3VsdDogJ2Vycm9yJywgZGV0YWlsczogZS5t
ZXNzYWdlfSk7CisgIH0KK30KK2ZldGNoX2FuZF9yZXBseSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBv
b2wvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMwZTU2NzMwMDVhOTczM2VhZjY4ZjNjMzNkYWU4YTExYTE5ZTdh
ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cK
QEAgLTAsMCArMSwyMyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAor
CitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFy
dGl0aW9uLWFib3V0LWJsYW5rLWNoZWNrZXIuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3
b3JrLXBhcnRpdGlvbi1jaGVja2VyLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1w
YXJ0aXRpb24taWZyYW1lLWNoZWNrZXIuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3Jlc291cmNlcy9uZXR3b3Jr
LXBhcnRpdGlvbi1rZXkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24t
a2V5LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9jb25uZWN0aW9uLXBvb2wvcmVzb3VyY2VzL25ldHdvcmstcGFydGl0aW9uLXdvcmtlci1jaGVj
a2VyLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2Nvbm5lY3Rpb24tcG9vbC9yZXNvdXJjZXMvbmV0d29yay1wYXJ0aXRpb24td29ya2VyLmpz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFiNzAxNTBkZTJmNGY0ZTk3NGYxZjA2OThkNTJjMTVkMGRmZDhh
MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9uZXR3b3JrLXBhcnRpdGlvbi1rZXkuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9jb250ZW50LWVuY29kaW5nL2JhZC1nemlwLWJvZHkuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb250ZW50LWVuY29kaW5nL2JhZC1n
emlwLWJvZHkuYW55LmpzCmluZGV4IGY4MjAzMjI2NjhjMWNkNzlmMTQ1M2NiYTkxOGYxY2YzOGJm
OGExYmIuLjE3YmMxMjYxYTNmNWMzNmE5Nzk3YzVhMTcxOTkwYzUyMmNmZTc1OTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29u
dGVudC1lbmNvZGluZy9iYWQtZ3ppcC1ib2R5LmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvbnRlbnQtZW5jb2RpbmcvYmFkLWd6
aXAtYm9keS5hbnkuanMKQEAgLTEsMyArMSw1IEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdv
cmtlcgorCiBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICByZXR1cm4gZmV0Y2goInJlc291
cmNlcy9iYWQtZ3ppcC1ib2R5LnB5IikudGhlbihyZXMgPT4gewogICAgICAgYXNzZXJ0X2VxdWFs
cyhyZXMuc3RhdHVzLCAyMDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb250ZW50LWVuY29kaW5nL3Jlc291cmNlcy9iYWQt
Z3ppcC1ib2R5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9jb250ZW50LWVuY29kaW5nL3Jlc291cmNlcy9iYWQtZ3ppcC1ib2R5LnB5CmluZGV4
IGIyZjhjZmVmZDdlNDkxMjYwNjQ4ZTMzYWRmZTlmYmQzZjhmNzJmZTYuLmE3OWI5NGVkMDQxZDBl
MDg1MmU3MWJkZDVjZGJhNTc4OTdhMWYxOTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29udGVudC1lbmNvZGluZy9yZXNvdXJj
ZXMvYmFkLWd6aXAtYm9keS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2NvbnRlbnQtZW5jb2RpbmcvcmVzb3VyY2VzL2JhZC1nemlwLWJv
ZHkucHkKQEAgLTEsMyArMSwzIEBACiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAg
aGVhZGVycyA9IFsoIkNvbnRlbnQtRW5jb2RpbmciLCAiZ3ppcCIpXQotICAgIHJldHVybiBoZWFk
ZXJzLCAibm90IGFjdHVhbGx5IGd6aXAiCisgICAgaGVhZGVycyA9IFsoYiJDb250ZW50LUVuY29k
aW5nIiwgYiJnemlwIildCisgICAgcmV0dXJuIGhlYWRlcnMsIGIibm90IGFjdHVhbGx5IGd6aXAi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2NvbnRlbnQtdHlwZS9yZXNvdXJjZXMvY29udGVudC10eXBlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb250ZW50LXR5cGUvcmVz
b3VyY2VzL2NvbnRlbnQtdHlwZS5weQppbmRleCAwYjVlOTNiOTM3YzI5MzI1MGIzM2FlMmNiMmU1
Y2JlNDNlMzgxYTg2Li45MWZjZDk3YTdjYjY3ZDg1OTZjMDIxZDgyYmNjZTA3ZWU4NWIzMTQ5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2NvbnRlbnQtdHlwZS9yZXNvdXJjZXMvY29udGVudC10eXBlLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29udGVudC10eXBlL3Jl
c291cmNlcy9jb250ZW50LXR5cGUucHkKQEAgLTEsMTUgKzEsMTcgQEAKK2Zyb20gd3B0c2VydmUu
dXRpbHMgaW1wb3J0IGlzb21vcnBoaWNfZW5jb2RlCisKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3Bv
bnNlKToKLSAgICB2YWx1ZXMgPSByZXF1ZXN0LkdFVC5nZXRfbGlzdCgidmFsdWUiKQotICAgIGNv
bnRlbnQgPSByZXF1ZXN0LkdFVC5maXJzdCgiY29udGVudCIsICI8Yj5oaTwvYj5cbiIpCi0gICAg
b3V0cHV0ID0gICJIVFRQLzEuMSAyMDAgT0tcclxuIgotICAgIG91dHB1dCArPSAiWC1Db250ZW50
LVR5cGUtT3B0aW9uczogbm9zbmlmZlxyXG4iCi0gICAgaWYgInNpbmdsZV9oZWFkZXIiIGluIHJl
cXVlc3QuR0VUOgotICAgICAgICBvdXRwdXQgKz0gIkNvbnRlbnQtVHlwZTogIiArICIsIi5qb2lu
KHZhbHVlcykgKyAiXHJcbiIKKyAgICB2YWx1ZXMgPSByZXF1ZXN0LkdFVC5nZXRfbGlzdChiInZh
bHVlIikKKyAgICBjb250ZW50ID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJjb250ZW50IiwgYiI8Yj5o
aTwvYj5cbiIpCisgICAgb3V0cHV0ID0gYiJIVFRQLzEuMSAyMDAgT0tcclxuIgorICAgIG91dHB1
dCArPSBiIlgtQ29udGVudC1UeXBlLU9wdGlvbnM6IG5vc25pZmZcclxuIgorICAgIGlmIGIic2lu
Z2xlX2hlYWRlciIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIG91dHB1dCArPSBiIkNvbnRlbnQt
VHlwZTogIiArIGIiLCIuam9pbih2YWx1ZXMpICsgYiJcclxuIgogICAgIGVsc2U6CiAgICAgICAg
IGZvciB2YWx1ZSBpbiB2YWx1ZXM6Ci0gICAgICAgICAgICBvdXRwdXQgKz0gIkNvbnRlbnQtVHlw
ZTogIiArIHZhbHVlICsgIlxyXG4iCi0gICAgb3V0cHV0ICs9ICJDb250ZW50LUxlbmd0aDogIiAr
IHN0cihsZW4oY29udGVudCkpICsgIlxyXG4iCi0gICAgb3V0cHV0ICs9ICJcclxuIgorICAgICAg
ICAgICAgb3V0cHV0ICs9IGIiQ29udGVudC1UeXBlOiAiICsgdmFsdWUgKyBiIlxyXG4iCisgICAg
b3V0cHV0ICs9IGIiQ29udGVudC1MZW5ndGg6ICIgKyBpc29tb3JwaGljX2VuY29kZShzdHIobGVu
KGNvbnRlbnQpKSkgKyBiIlxyXG4iCisgICAgb3V0cHV0ICs9IGIiXHJcbiIKICAgICBvdXRwdXQg
Kz0gY29udGVudAogICAgIHJlc3BvbnNlLndyaXRlci53cml0ZShvdXRwdXQpCiAgICAgcmVzcG9u
c2UuY2xvc2VfY29ubmVjdGlvbiA9IFRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29udGVudC10eXBlL3Jlc3BvbnNlLndp
bmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2NvbnRlbnQtdHlwZS9yZXNwb25zZS53aW5kb3ctZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjhiY2JkY2YwYjIxODA4ZTZmZmZlMzdjM2Ix
OTg1ZDEzNTU0MmE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29u
dGVudC10eXBlL3Jlc3BvbnNlLndpbmRvdy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxMjUgKzAsMCBAQAotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwK
LQotUEFTUyBMb2FkaW5nIEpTT07igKYKLVBBU1MgPGlmcmFtZT46IHNlcGFyYXRlIHJlc3BvbnNl
IENvbnRlbnQtVHlwZTogIHRleHQvcGxhaW4KLVBBU1MgPGlmcmFtZT46IGNvbWJpbmVkIHJlc3Bv
bnNlIENvbnRlbnQtVHlwZTogIHRleHQvcGxhaW4KLVBBU1MgZmV0Y2goKTogc2VwYXJhdGUgcmVz
cG9uc2UgQ29udGVudC1UeXBlOiAgdGV4dC9wbGFpbgotRkFJTCBmZXRjaCgpOiBjb21iaW5lZCBy
ZXNwb25zZSBDb250ZW50LVR5cGU6ICB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVkIHJlc3BvbnNl
IENvbnRlbnQtVHlwZTogIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQv
cGxhaW4iIGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRl
bnQtVHlwZTogIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW4i
IGJ1dCBnb3QgIiIKLVRJTUVPVVQgPGlmcmFtZT46IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbiAgVGVzdCB0aW1lZCBvdXQKLVBBU1MgPGlmcmFtZT46IGNvbWJpbmVk
IHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgotRkFJTCBmZXRjaCgpOiBzZXBhcmF0
ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1QQVNTIGZldGNoKCk6IGNvbWJpbmVkIHJlc3Bv
bnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgotRkFJTCBSZXF1ZXN0OiBjb21iaW5lZCByZXNw
b25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0
ZXh0L3BsYWluIiBidXQgZ290ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5lZCByZXNwb25zZSBD
b250ZW50LVR5cGU6IHRleHQvcGxhaW4gIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3Bs
YWluIiBidXQgZ290ICIiCi1QQVNTIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50
LVR5cGU6IHRleHQvaHRtbCB0ZXh0L3BsYWluCi1GQUlMIDxpZnJhbWU+OiBjb21iaW5lZCByZXNw
b25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbCB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICI8Yj5oaTwvYj5cbiIgYnV0IGdvdCAiaGlcbiIKLVBBU1MgZmV0Y2goKTogc2VwYXJh
dGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWwgdGV4dC9wbGFpbgotRkFJTCBmZXRj
aCgpOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbCB0ZXh0L3BsYWlu
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICJ0ZXh0L2h0bWwi
Ci1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1s
IHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBnb3Qg
IiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9o
dG1sIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBn
b3QgIiIKLVBBU1MgPGlmcmFtZT46IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4
dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L2h0bWwKLUZBSUwgPGlmcmFtZT46IGNvbWJpbmVkIHJl
c3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L2h0bWwgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlVURi04IiBidXQgZ290ICJHQksiCi1QQVNTIGZldGNoKCk6
IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0
ZXh0L2h0bWwKLUZBSUwgZmV0Y2goKTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0
ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIHRleHQvaHRtbCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
dGV4dC9odG1sIiBidXQgZ290ICJ0ZXh0L3BsYWluIgotRkFJTCBSZXF1ZXN0OiBjb21iaW5lZCBy
ZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYmsgdGV4dC9odG1sIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9u
c2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdi
ayB0ZXh0L2h0bWwgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbCIgYnV0IGdvdCAi
IgotUEFTUyA8aWZyYW1lPjogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3Bs
YWluO2NoYXJzZXQ9Z2JrIHRleHQvaHRtbDtjaGFyc2V0PXdpbmRvd3MtMTI1NAotRkFJTCA8aWZy
YW1lPjogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9
Z2JrIHRleHQvaHRtbDtjaGFyc2V0PXdpbmRvd3MtMTI1NCBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiV0lORE9XUy0xMjU0IiBidXQgZ290ICJHQksiCi1GQUlMIGZldGNoKCk6IHNlcGFyYXRlIHJl
c3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L2h0bWw7Y2hh
cnNldD13aW5kb3dzLTEyNTQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbDtjaGFy
c2V0PXdpbmRvd3MtMTI1NCIgYnV0IGdvdCAidGV4dC9odG1sIgotRkFJTCBmZXRjaCgpOiBjb21i
aW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYmsgdGV4dC9o
dG1sO2NoYXJzZXQ9d2luZG93cy0xMjU0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0
bWw7Y2hhcnNldD13aW5kb3dzLTEyNTQiIGJ1dCBnb3QgInRleHQvcGxhaW4iCi1GQUlMIFJlcXVl
c3Q6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdi
ayB0ZXh0L2h0bWw7Y2hhcnNldD13aW5kb3dzLTEyNTQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
InRleHQvaHRtbDtjaGFyc2V0PXdpbmRvd3MtMTI1NCIgYnV0IGdvdCAiIgotRkFJTCBSZXNwb25z
ZTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2Jr
IHRleHQvaHRtbDtjaGFyc2V0PXdpbmRvd3MtMTI1NCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
dGV4dC9odG1sO2NoYXJzZXQ9d2luZG93cy0xMjU0IiBidXQgZ290ICIiCi1GQUlMIDxpZnJhbWU+
OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYmsg
dGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiR0JLIiBidXQgZ290ICJVVEYtOCIK
LVBBU1MgPGlmcmFtZT46IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjtjaGFyc2V0PWdiayB0ZXh0L3BsYWluCi1GQUlMIGZldGNoKCk6IHNlcGFyYXRlIHJlc3BvbnNl
IENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L3BsYWluIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIiBidXQgZ290ICJ0ZXh0L3Bs
YWluIgotRkFJTCBmZXRjaCgpOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQv
cGxhaW47Y2hhcnNldD1nYmsgdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4
dC9wbGFpbjtjaGFyc2V0PWdiayIgYnV0IGdvdCAidGV4dC9wbGFpbiIKLUZBSUwgUmVxdWVzdDog
Y29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIHRl
eHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW47Y2hhcnNldD1nYmsi
IGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlw
ZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIiBidXQgZ290ICIiCi1QQVNTIDxpZnJhbWU+OiBz
ZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYmsgdGV4
dC9wbGFpbjtjaGFyc2V0PXdpbmRvd3MtMTI1MgotRkFJTCA8aWZyYW1lPjogY29tYmluZWQgcmVz
cG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIHRleHQvcGxhaW47Y2hh
cnNldD13aW5kb3dzLTEyNTIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIldJTkRPV1MtMTI1MiIg
YnV0IGdvdCAiR0JLIgotRkFJTCBmZXRjaCgpOiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5
cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYmsgdGV4dC9wbGFpbjtjaGFyc2V0PXdpbmRvd3MtMTI1
MiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9wbGFpbjtjaGFyc2V0PXdpbmRvd3MtMTI1
MiIgYnV0IGdvdCAidGV4dC9wbGFpbiIKLUZBSUwgZmV0Y2goKTogY29tYmluZWQgcmVzcG9uc2Ug
Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIHRleHQvcGxhaW47Y2hhcnNldD13
aW5kb3dzLTEyNTIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW47Y2hhcnNldD13
aW5kb3dzLTEyNTIiIGJ1dCBnb3QgInRleHQvcGxhaW4iCi1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVk
IHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiayB0ZXh0L3BsYWlu
O2NoYXJzZXQ9d2luZG93cy0xMjUyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWlu
O2NoYXJzZXQ9d2luZG93cy0xMjUyIiBidXQgZ290ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5l
ZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYmsgdGV4dC9wbGFp
bjtjaGFyc2V0PXdpbmRvd3MtMTI1MiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9wbGFp
bjtjaGFyc2V0PXdpbmRvd3MtMTI1MiIgYnV0IGdvdCAiIgotRkFJTCA8aWZyYW1lPjogc2VwYXJh
dGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7Y2hhcnNldD1nYmsgdGV4dC9odG1s
O3g9Iix0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJHQksiIGJ1dCBnb3QgIlVU
Ri04IgotUEFTUyA8aWZyYW1lPjogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0
L2h0bWw7Y2hhcnNldD1nYmsgdGV4dC9odG1sO3g9Iix0ZXh0L3BsYWluCi1GQUlMIGZldGNoKCk6
IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sO2NoYXJzZXQ9Z2JrIHRl
eHQvaHRtbDt4PSIsdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1s
O3g9XCIsdGV4dC9wbGFpblwiO2NoYXJzZXQ9Z2JrIiBidXQgZ290ICJ0ZXh0L2h0bWwiCi1GQUlM
IGZldGNoKCk6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sO2NoYXJz
ZXQ9Z2JrIHRleHQvaHRtbDt4PSIsdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
dGV4dC9odG1sO3g9XCIsdGV4dC9wbGFpblwiO2NoYXJzZXQ9Z2JrIiBidXQgZ290ICJ0ZXh0L2h0
bWwiCi1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9o
dG1sO2NoYXJzZXQ9Z2JrIHRleHQvaHRtbDt4PSIsdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAidGV4dC9odG1sO3g9XCIsdGV4dC9wbGFpblwiO2NoYXJzZXQ9Z2JrIiBidXQgZ290
ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQv
aHRtbDtjaGFyc2V0PWdiayB0ZXh0L2h0bWw7eD0iLHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgInRleHQvaHRtbDt4PVwiLHRleHQvcGxhaW5cIjtjaGFyc2V0PWdiayIgYnV0IGdv
dCAiIgotRkFJTCA8aWZyYW1lPjogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0
L3BsYWluO2NoYXJzZXQ9Z2JrO3g9Zm9vIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIkdCSyIgYnV0IGdvdCAiVVRGLTgiCi1QQVNTIDxpZnJhbWU+OiBjb21iaW5lZCByZXNwb25z
ZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1nYms7eD1mb28gdGV4dC9wbGFpbgot
RkFJTCBmZXRjaCgpOiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47
Y2hhcnNldD1nYms7eD1mb28gdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4
dC9wbGFpbjtjaGFyc2V0PWdiayIgYnV0IGdvdCAidGV4dC9wbGFpbiIKLUZBSUwgZmV0Y2goKTog
Y29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrO3g9
Zm9vIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW47Y2hhcnNl
dD1nYmsiIGJ1dCBnb3QgInRleHQvcGxhaW4iCi1GQUlMIFJlcXVlc3Q6IGNvbWJpbmVkIHJlc3Bv
bnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PWdiazt4PWZvbyB0ZXh0L3BsYWlu
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluO2NoYXJzZXQ9Z2JrIiBidXQgZ290
ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQv
cGxhaW47Y2hhcnNldD1nYms7eD1mb28gdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAidGV4dC9wbGFpbjtjaGFyc2V0PWdiayIgYnV0IGdvdCAiIgotUEFTUyA8aWZyYW1lPjogc2Vw
YXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7Y2hhcnNldD1nYmsgdGV4dC9w
bGFpbiB0ZXh0L2h0bWwKLUZBSUwgPGlmcmFtZT46IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQt
VHlwZTogdGV4dC9odG1sO2NoYXJzZXQ9Z2JrIHRleHQvcGxhaW4gdGV4dC9odG1sIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJVVEYtOCIgYnV0IGdvdCAiR0JLIgotUEFTUyBmZXRjaCgpOiBzZXBh
cmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDtjaGFyc2V0PWdiayB0ZXh0L3Bs
YWluIHRleHQvaHRtbAotUEFTUyBmZXRjaCgpOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5
cGU6IHRleHQvaHRtbDtjaGFyc2V0PWdiayB0ZXh0L3BsYWluIHRleHQvaHRtbAotRkFJTCBSZXF1
ZXN0OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDtjaGFyc2V0PWdi
ayB0ZXh0L3BsYWluIHRleHQvaHRtbCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1s
IiBidXQgZ290ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5
cGU6IHRleHQvaHRtbDtjaGFyc2V0PWdiayB0ZXh0L3BsYWluIHRleHQvaHRtbCBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAidGV4dC9odG1sIiBidXQgZ290ICIiCi1USU1FT1VUIDxpZnJhbWU+OiBz
ZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gKi8qIFRlc3QgdGltZWQg
b3V0Ci1USU1FT1VUIDxpZnJhbWU+OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRl
eHQvcGxhaW4gKi8qIFRlc3QgdGltZWQgb3V0Ci1GQUlMIGZldGNoKCk6IHNlcGFyYXRlIHJlc3Bv
bnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbiAqLyogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
InRleHQvcGxhaW4iIGJ1dCBnb3QgIiovKiIKLVBBU1MgZmV0Y2goKTogY29tYmluZWQgcmVzcG9u
c2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluICovKgotRkFJTCBSZXF1ZXN0OiBjb21iaW5lZCBy
ZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gKi8qIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5lZCByZXNw
b25zZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gKi8qIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1USU1FT1VUIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNw
b25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbCAqLyogVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQg
PGlmcmFtZT46IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sICovKiBU
ZXN0IHRpbWVkIG91dAotRkFJTCBmZXRjaCgpOiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5
cGU6IHRleHQvaHRtbCAqLyogYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbCIgYnV0
IGdvdCAiKi8qIgotUEFTUyBmZXRjaCgpOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6
IHRleHQvaHRtbCAqLyoKLUZBSUwgUmVxdWVzdDogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1U
eXBlOiB0ZXh0L2h0bWwgKi8qIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWwiIGJ1
dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTog
dGV4dC9odG1sICovKiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sIiBidXQgZ290
ICIiCi1QQVNTIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6ICovKiB0
ZXh0L2h0bWwKLVRJTUVPVVQgPGlmcmFtZT46IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlw
ZTogKi8qIHRleHQvaHRtbCBUZXN0IHRpbWVkIG91dAotUEFTUyBmZXRjaCgpOiBzZXBhcmF0ZSBy
ZXNwb25zZSBDb250ZW50LVR5cGU6ICovKiB0ZXh0L2h0bWwKLUZBSUwgZmV0Y2goKTogY29tYmlu
ZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiAqLyogdGV4dC9odG1sIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgIiovKiIKLUZBSUwgUmVxdWVzdDogY29tYmluZWQg
cmVzcG9uc2UgQ29udGVudC1UeXBlOiAqLyogdGV4dC9odG1sIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3Bv
bnNlIENvbnRlbnQtVHlwZTogKi8qIHRleHQvaHRtbCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
dGV4dC9odG1sIiBidXQgZ290ICIiCi1USU1FT1VUIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25z
ZSBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4gKi8qO2NoYXJzZXQ9Z2JrIFRlc3QgdGltZWQgb3V0
Ci1USU1FT1VUIDxpZnJhbWU+OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQv
cGxhaW4gKi8qO2NoYXJzZXQ9Z2JrIFRlc3QgdGltZWQgb3V0Ci1GQUlMIGZldGNoKCk6IHNlcGFy
YXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbiAqLyo7Y2hhcnNldD1nYmsgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBnb3QgIiovKiIKLVBBU1MgZmV0
Y2goKTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluICovKjtjaGFy
c2V0PWdiawotRkFJTCBSZXF1ZXN0OiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRl
eHQvcGxhaW4gKi8qO2NoYXJzZXQ9Z2JrIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3Bs
YWluIiBidXQgZ290ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50
LVR5cGU6IHRleHQvcGxhaW4gKi8qO2NoYXJzZXQ9Z2JrIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi1USU1FT1VUIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNw
b25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbCAqLyo7Y2hhcnNldD1nYmsgVGVzdCB0aW1lZCBv
dXQKLVRJTUVPVVQgPGlmcmFtZT46IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4
dC9odG1sICovKjtjaGFyc2V0PWdiayBUZXN0IHRpbWVkIG91dAotRkFJTCBmZXRjaCgpOiBzZXBh
cmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbCAqLyo7Y2hhcnNldD1nYmsgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbCIgYnV0IGdvdCAiKi8qIgotUEFTUyBmZXRj
aCgpOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbCAqLyo7Y2hhcnNl
dD1nYmsKLUZBSUwgUmVxdWVzdDogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0
L2h0bWwgKi8qO2NoYXJzZXQ9Z2JrIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWwi
IGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlw
ZTogdGV4dC9odG1sICovKjtjaGFyc2V0PWdiayBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4
dC9odG1sIiBidXQgZ290ICIiCi1GQUlMIDxpZnJhbWU+OiBzZXBhcmF0ZSByZXNwb25zZSBDb250
ZW50LVR5cGU6IHRleHQvaHRtbDt4PSIgdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiYiIgYnV0IGdvdCAicHJlIgotUEFTUyA8aWZyYW1lPjogY29tYmluZWQgcmVzcG9uc2UgQ29u
dGVudC1UeXBlOiB0ZXh0L2h0bWw7eD0iIHRleHQvcGxhaW4KLUZBSUwgZmV0Y2goKTogc2VwYXJh
dGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7eD0iIHRleHQvcGxhaW4gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRtbDt4PVwiLCB0ZXh0L3BsYWluXCIiIGJ1dCBnb3Qg
InRleHQvcGxhaW4iCi1GQUlMIGZldGNoKCk6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlw
ZTogdGV4dC9odG1sO3g9IiB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0
L2h0bWw7eD1cIiwgdGV4dC9wbGFpblwiIiBidXQgZ290ICJ0ZXh0L2h0bWwiCi1GQUlMIFJlcXVl
c3Q6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sO3g9IiB0ZXh0L3Bs
YWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWw7eD1cIiwgdGV4dC9wbGFpblwi
IiBidXQgZ290ICIiCi1GQUlMIFJlc3BvbnNlOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5
cGU6IHRleHQvaHRtbDt4PSIgdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4
dC9odG1sO3g9XCIsIHRleHQvcGxhaW5cIiIgYnV0IGdvdCAiIgotRkFJTCA8aWZyYW1lPjogc2Vw
YXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiB0ZXh0L3BsYWluIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJiIiBidXQgZ290ICJwcmUiCi1QQVNTIDxpZnJhbWU+OiBjb21i
aW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDsiIHRleHQvcGxhaW4KLUZBSUwg
ZmV0Y2goKTogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiB0ZXh0
L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgInRleHQv
cGxhaW4iCi1QQVNTIGZldGNoKCk6IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4
dC9odG1sOyIgdGV4dC9wbGFpbgotRkFJTCBSZXF1ZXN0OiBjb21iaW5lZCByZXNwb25zZSBDb250
ZW50LVR5cGU6IHRleHQvaHRtbDsiIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
InRleHQvaHRtbCIgYnV0IGdvdCAiIgotRkFJTCBSZXNwb25zZTogY29tYmluZWQgcmVzcG9uc2Ug
Q29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgIiIKLUZBSUwgPGlmcmFtZT46IHNlcGFyYXRlIHJlc3Bv
bnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyIgXCIgdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiYiIgYnV0IGdvdCAicHJlIgotUEFTUyA8aWZyYW1lPjogY29tYmluZWQgcmVz
cG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiBcIiB0ZXh0L3BsYWluCi1GQUlMIGZldGNo
KCk6IHNlcGFyYXRlIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyIgXCIgdGV4dC9w
bGFpbiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dC9odG1sIiBidXQgZ290ICJ0ZXh0L3Bs
YWluIgotUEFTUyBmZXRjaCgpOiBjb21iaW5lZCByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQv
aHRtbDsiIFwiIHRleHQvcGxhaW4KLUZBSUwgUmVxdWVzdDogY29tYmluZWQgcmVzcG9uc2UgQ29u
dGVudC1UeXBlOiB0ZXh0L2h0bWw7IiBcIiB0ZXh0L3BsYWluIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0L2h0bWwiIGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVkIHJlc3Bv
bnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyIgXCIgdGV4dC9wbGFpbiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAidGV4dC9odG1sIiBidXQgZ290ICIiCi1USU1FT1VUIDxpZnJhbWU+OiBzZXBh
cmF0ZSByZXNwb25zZSBDb250ZW50LVR5cGU6IHRleHQvaHRtbDsiIFwiIHRleHQvcGxhaW4gIjtj
aGFyc2V0PUdCSyBUZXN0IHRpbWVkIG91dAotUEFTUyA8aWZyYW1lPjogY29tYmluZWQgcmVzcG9u
c2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiBcIiB0ZXh0L3BsYWluICI7Y2hhcnNldD1HQksK
LUZBSUwgZmV0Y2goKTogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7
IiBcIiB0ZXh0L3BsYWluICI7Y2hhcnNldD1HQksgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRl
eHQvaHRtbDtjaGFyc2V0PUdCSyIgYnV0IGdvdCAiXCIiCi1GQUlMIGZldGNoKCk6IGNvbWJpbmVk
IHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyIgXCIgdGV4dC9wbGFpbiAiO2NoYXJz
ZXQ9R0JLIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0L2h0bWw7Y2hhcnNldD1HQksiIGJ1
dCBnb3QgInRleHQvaHRtbCIKLUZBSUwgUmVxdWVzdDogY29tYmluZWQgcmVzcG9uc2UgQ29udGVu
dC1UeXBlOiB0ZXh0L2h0bWw7IiBcIiB0ZXh0L3BsYWluICI7Y2hhcnNldD1HQksgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgInRleHQvaHRtbDtjaGFyc2V0PUdCSyIgYnV0IGdvdCAiIgotRkFJTCBS
ZXNwb25zZTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiBcIiB0
ZXh0L3BsYWluICI7Y2hhcnNldD1HQksgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQvaHRt
bDtjaGFyc2V0PUdCSyIgYnV0IGdvdCAiIgotUEFTUyA8aWZyYW1lPjogc2VwYXJhdGUgcmVzcG9u
c2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiAiIHRleHQvcGxhaW4KLUZBSUwgPGlmcmFtZT46
IGNvbWJpbmVkIHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyIgIiB0ZXh0L3BsYWlu
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICI8Yj5oaTwvYj5cbiIgYnV0IGdvdCAiaGlcbiIKLVBB
U1MgZmV0Y2goKTogc2VwYXJhdGUgcmVzcG9uc2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiAi
IHRleHQvcGxhaW4KLUZBSUwgZmV0Y2goKTogY29tYmluZWQgcmVzcG9uc2UgQ29udGVudC1UeXBl
OiB0ZXh0L2h0bWw7IiAiIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQv
cGxhaW4iIGJ1dCBnb3QgInRleHQvaHRtbCIKLUZBSUwgUmVxdWVzdDogY29tYmluZWQgcmVzcG9u
c2UgQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IiAiIHRleHQvcGxhaW4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgInRleHQvcGxhaW4iIGJ1dCBnb3QgIiIKLUZBSUwgUmVzcG9uc2U6IGNvbWJpbmVk
IHJlc3BvbnNlIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyIgIiB0ZXh0L3BsYWluIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJ0ZXh0L3BsYWluIiBidXQgZ290ICIiCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29udGVudC10
eXBlL3NjcmlwdC53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb250ZW50LXR5cGUvc2NyaXB0LndpbmRvdy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0NDMxY2M4ODY1NGVlNzIy
NmYzYzg4MGVmZWZlZmE2ZjA0NjYxOWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9jb250ZW50LXR5cGUvc2NyaXB0LndpbmRvdy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzMyArMCwwIEBACi0KLVBBU1MgTG9hZGluZyBKU09O4oCmCi1QQVNTIHNlcGFy
YXRlIHRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXdpbmRvd3MtMTI1MgotUEFTUyBzZXBhcmF0ZSB0
ZXh0L2phdmFzY3JpcHQ7IjtjaGFyc2V0PXdpbmRvd3MtMTI1MgotRkFJTCBzZXBhcmF0ZSB0ZXh0
L2phdmFzY3JpcHQMIGFzc2VydF91bnJlYWNoZWQ6IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQot
UEFTUyBzZXBhcmF0ZSAidGV4dC9qYXZhc2NyaXB0IgotUEFTUyBzZXBhcmF0ZSB0ZXh0LyBqYXZh
c2NyaXB0Ci1QQVNTIHNlcGFyYXRlIHRleHQgL2phdmFzY3JpcHQKLVBBU1Mgc2VwYXJhdGUgeC94
IHRleHQvamF2YXNjcmlwdAotRkFJTCBjb21iaW5lZCB4L3ggdGV4dC9qYXZhc2NyaXB0IGFzc2Vy
dF91bnJlYWNoZWQ6IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotUEFTUyBzZXBhcmF0ZSB4L3g7
Y2hhcnNldD13aW5kb3dzLTEyNTIgdGV4dC9qYXZhc2NyaXB0Ci1GQUlMIGNvbWJpbmVkIHgveDtj
aGFyc2V0PXdpbmRvd3MtMTI1MiB0ZXh0L2phdmFzY3JpcHQgYXNzZXJ0X3VucmVhY2hlZDogUmVh
Y2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1QQVNTIHNlcGFyYXRlIHRleHQvamF2YXNjcmlwdCB4L3gK
LUZBSUwgY29tYmluZWQgdGV4dC9qYXZhc2NyaXB0IHgveCBhc3NlcnRfdW5yZWFjaGVkOiBSZWFj
aGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgc2VwYXJhdGUgdGV4dC9qYXZhc2NyaXB0OyBjaGFy
c2V0PXdpbmRvd3MtMTI1MiB0ZXh0L2phdmFzY3JpcHQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
IsOi4oCawqwiIGJ1dCBnb3QgIuKCrCIKLVBBU1MgY29tYmluZWQgdGV4dC9qYXZhc2NyaXB0OyBj
aGFyc2V0PXdpbmRvd3MtMTI1MiB0ZXh0L2phdmFzY3JpcHQKLUZBSUwgc2VwYXJhdGUgdGV4dC9q
YXZhc2NyaXB0OyIgeC94IGFzc2VydF91bnJlYWNoZWQ6IFJlYWNoZWQgdW5yZWFjaGFibGUgY29k
ZQotUEFTUyBjb21iaW5lZCB0ZXh0L2phdmFzY3JpcHQ7IiB4L3gKLUZBSUwgc2VwYXJhdGUgdGV4
dC9qYXZhc2NyaXB0ICBhc3NlcnRfdW5yZWFjaGVkOiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUK
LVBBU1MgY29tYmluZWQgdGV4dC9qYXZhc2NyaXB0Ci1GQUlMIHNlcGFyYXRlIHRleHQvamF2YXNj
cmlwdCBlcnJvciBhc3NlcnRfdW5yZWFjaGVkOiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLVBB
U1MgY29tYmluZWQgdGV4dC9qYXZhc2NyaXB0IGVycm9yCi1QQVNTIHNlcGFyYXRlIHRleHQvamF2
YXNjcmlwdDtjaGFyc2V0PXdpbmRvd3MtMTI1MiB4L3ggdGV4dC9qYXZhc2NyaXB0Ci1GQUlMIGNv
bWJpbmVkIHRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXdpbmRvd3MtMTI1MiB4L3ggdGV4dC9qYXZh
c2NyaXB0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICLigqwiIGJ1dCBnb3QgIsOi4oCawqwiCi1G
QUlMIHNlcGFyYXRlIHRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXdpbmRvd3MtMTI1MiBlcnJvciB0
ZXh0L2phdmFzY3JpcHQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIsOi4oCawqwiIGJ1dCBnb3Qg
IuKCrCIKLVBBU1MgY29tYmluZWQgdGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9d2luZG93cy0xMjUy
IGVycm9yIHRleHQvamF2YXNjcmlwdAotRkFJTCBzZXBhcmF0ZSB0ZXh0L2phdmFzY3JpcHQ7Y2hh
cnNldD13aW5kb3dzLTEyNTIgIHRleHQvamF2YXNjcmlwdCBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiw6LigJrCrCIgYnV0IGdvdCAi4oKsIgotUEFTUyBjb21iaW5lZCB0ZXh0L2phdmFzY3JpcHQ7
Y2hhcnNldD13aW5kb3dzLTEyNTIgIHRleHQvamF2YXNjcmlwdAotRkFJTCBzZXBhcmF0ZSB0ZXh0
L2phdmFzY3JpcHQ7Y2hhcnNldD13aW5kb3dzLTEyNTI7IiBcIiB4L3ggYXNzZXJ0X3VucmVhY2hl
ZDogUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1QQVNTIGNvbWJpbmVkIHRleHQvamF2YXNjcmlw
dDtjaGFyc2V0PXdpbmRvd3MtMTI1MjsiIFwiIHgveAotUEFTUyBzZXBhcmF0ZSB4L3g7IiB4L3k7
XCIgdGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9d2luZG93cy0xMjUyOyIgdGV4dC9qYXZhc2NyaXB0
Ci1GQUlMIGNvbWJpbmVkIHgveDsiIHgveTtcIiB0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD13aW5k
b3dzLTEyNTI7IiB0ZXh0L2phdmFzY3JpcHQgYXNzZXJ0X3VucmVhY2hlZDogUmVhY2hlZCB1bnJl
YWNoYWJsZSBjb2RlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29yYi9zY3JpcHQtcmVzb3VyY2Utd2l0aC1qc29uLXBhcnNl
ci1icmVha2VyLnRlbnRhdGl2ZS5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JiL3NjcmlwdC1yZXNvdXJjZS13aXRo
LWpzb24tcGFyc2VyLWJyZWFrZXIudGVudGF0aXZlLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkZDUwNzQ4NWJkZmYyZmRmNTVmMTkzM2IyYzcwYTIyYmI3
NzU4ZmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JiL3Njcmlw
dC1yZXNvdXJjZS13aXRoLWpzb24tcGFyc2VyLWJyZWFrZXIudGVudGF0aXZlLnN1Yi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJj
ZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9dGV4dC9odG1sJmJvZHk9KSU1RCU3RCUyNwot
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cxLmxvY2FsaG9zdDo4ODAw
L2ZldGNoL2NvcmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNvdXJjZS5weT90eXBlPXRleHQvaHRt
bCZib2R5PSU3QiU3RCUyNiUyNgotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6
Ly93d3cxLmxvY2FsaG9zdDo4ODAwL2ZldGNoL2NvcmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNv
dXJjZS5weT90eXBlPXRleHQvaHRtbCZib2R5PSU3QiU3RCUyMCUyNiUyNgotQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cxLmxvY2FsaG9zdDo4ODAwL2ZldGNoL2NvcmIv
cmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNvdXJjZS5weT90eXBlPXRleHQveG1sJmJvZHk9KSU1RCU3
RCUyNwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cxLmxvY2FsaG9z
dDo4ODAwL2ZldGNoL2NvcmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNvdXJjZS5weT90eXBlPXRl
eHQveG1sJmJvZHk9JTdCJTdEJTI2JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxl
LXJlc291cmNlLnB5P3R5cGU9dGV4dC94bWwmYm9keT0lN0IlN0QlMjAlMjYlMjYKLUJsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9j
b3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVzb3VyY2UucHk/dHlwZT10ZXh0L2pzb24mYm9keT0p
JTVEJTdEJTI3Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9j
YWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5
cGU9dGV4dC9qc29uJmJvZHk9JTdCJTdEJTI2JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5h
bCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25p
ZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9dGV4dC9qc29uJmJvZHk9JTdCJTdEJTIwJTI2JTI2Ci1C
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAv
ZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9dGV4dC9wbGFp
biZib2R5PSklNUQlN0QlMjcKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8v
d3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9jb3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVzb3Vy
Y2UucHk/dHlwZT10ZXh0L3BsYWluJmJvZHk9JTdCJTdEJTI2JTI2Ci1CbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNv
dXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9dGV4dC9wbGFpbiZib2R5PSU3QiU3RCUy
MCUyNiUyNgotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cxLmxvY2Fs
aG9zdDo4ODAwL2ZldGNoL2NvcmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNvdXJjZS5weT90eXBl
PWFwcGxpY2F0aW9uL2phdmFzY3JpcHQmYm9keT0pJTVEJTdEJTI3Ci1CbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNv
dXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9YXBwbGljYXRpb24vamF2YXNjcmlwdCZi
b2R5PSU3QiU3RCUyNiUyNgotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93
d3cxLmxvY2FsaG9zdDo4ODAwL2ZldGNoL2NvcmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1yZXNvdXJj
ZS5weT90eXBlPWFwcGxpY2F0aW9uL2phdmFzY3JpcHQmYm9keT0lN0IlN0QlMjAlMjYlMjYKLUJs
b2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9m
ZXRjaC9jb3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVzb3VyY2UucHk/dHlwZT1pbWFnZS9wbmcm
Ym9keT0pJTVEJTdEJTI3Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3
dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNl
LnB5P3R5cGU9aW1hZ2UvcG5nJmJvZHk9JTdCJTdEJTI2JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJj
ZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9aW1hZ2UvcG5nJmJvZHk9JTdCJTdEJTIwJTI2
JTI2Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0
Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9aW1h
Z2Uvc3ZnK3htbCZib2R5PSklNUQlN0QlMjcKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9jb3JiL3Jlc291cmNlcy9zbmlmZmFi
bGUtcmVzb3VyY2UucHk/dHlwZT1pbWFnZS9zdmcreG1sJmJvZHk9JTdCJTdEJTI2JTI2Ci1CbG9j
a2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0
Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9aW1hZ2Uvc3ZnK3ht
bCZib2R5PSU3QiU3RCUyMCUyNiUyNgotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHA6Ly93d3cxLmxvY2FsaG9zdDo4ODAwL2ZldGNoL2NvcmIvcmVzb3VyY2VzL3NuaWZmYWJsZS1y
ZXNvdXJjZS5weT90eXBlPWFwcGxpY2F0aW9uL3BkZiZib2R5PSklNUQlN0QlMjcKLUJsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9j
b3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVzb3VyY2UucHk/dHlwZT1hcHBsaWNhdGlvbi9wZGYm
Ym9keT0lN0IlN0QlMjYlMjYKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8v
d3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9jb3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVzb3Vy
Y2UucHk/dHlwZT1hcHBsaWNhdGlvbi9wZGYmYm9keT0lN0IlN0QlMjAlMjYlMjYKLUJsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3MS5sb2NhbGhvc3Q6ODgwMC9mZXRjaC9j
b3JiL3Jlc291cmNlcy9zbmlmZmFibGUtcmVzb3VyY2UucHk/dHlwZT1hcHBsaWNhdGlvbi96aXAm
Ym9keT0pJTVEJTdEJTI3Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3
dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9yZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNl
LnB5P3R5cGU9YXBwbGljYXRpb24vemlwJmJvZHk9JTdCJTdEJTI2JTI2Ci1CbG9ja2VkIGFjY2Vz
cyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzEubG9jYWxob3N0Ojg4MDAvZmV0Y2gvY29yYi9y
ZXNvdXJjZXMvc25pZmZhYmxlLXJlc291cmNlLnB5P3R5cGU9YXBwbGljYXRpb24vemlwJmJvZHk9
JTdCJTdEJTIwJTI2JTI2Ci0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVs
bAotCi1USU1FT1VUIENPUkItYmxvY2tzICd0ZXh0L2h0bWwnIHRoYXQgc3RhcnRzIHdpdGggdGhl
IGZvbGxvd2luZyBKU09OIHBhcnNlciBicmVha2VyOiApXX0nIFRlc3QgdGltZWQgb3V0Ci1USU1F
T1VUIENPUkItYmxvY2tzICd0ZXh0L2h0bWwnIHRoYXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2lu
ZyBKU09OIHBhcnNlciBicmVha2VyOiB7fSYmIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIENPUkIt
YmxvY2tzICd0ZXh0L2h0bWwnIHRoYXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2luZyBKU09OIHBh
cnNlciBicmVha2VyOiB7fSAmJiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBDT1JCLWJsb2NrcyAn
dGV4dC94bWwnIHRoYXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2luZyBKU09OIHBhcnNlciBicmVh
a2VyOiApXX0nIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIENPUkItYmxvY2tzICd0ZXh0L3htbCcg
dGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9JiYg
VGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ3RleHQveG1sJyB0aGF0IHN0YXJ0
cyB3aXRoIHRoZSBmb2xsb3dpbmcgSlNPTiBwYXJzZXIgYnJlYWtlcjoge30gJiYgVGVzdCB0aW1l
ZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ3RleHQvanNvbicgdGhhdCBzdGFydHMgd2l0aCB0
aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6ICldfScgVGVzdCB0aW1lZCBvdXQKLVRJ
TUVPVVQgQ09SQi1ibG9ja3MgJ3RleHQvanNvbicgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93
aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9JiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09S
Qi1ibG9ja3MgJ3RleHQvanNvbicgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04g
cGFyc2VyIGJyZWFrZXI6IHt9ICYmIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIENPUkItYmxvY2tz
ICd0ZXh0L3BsYWluJyB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgSlNPTiBwYXJzZXIg
YnJlYWtlcjogKV19JyBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBDT1JCLWJsb2NrcyAndGV4dC9w
bGFpbicgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6
IHt9JiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ3RleHQvcGxhaW4nIHRo
YXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2luZyBKU09OIHBhcnNlciBicmVha2VyOiB7fSAmJiBU
ZXN0IHRpbWVkIG91dAotVElNRU9VVCBDT1JCLWJsb2NrcyAnYXBwbGljYXRpb24vamF2YXNjcmlw
dCcgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6ICld
fScgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2FwcGxpY2F0aW9uL2phdmFz
Y3JpcHQnIHRoYXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2luZyBKU09OIHBhcnNlciBicmVha2Vy
OiB7fSYmIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIENPUkItYmxvY2tzICdhcHBsaWNhdGlvbi9q
YXZhc2NyaXB0JyB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgSlNPTiBwYXJzZXIgYnJl
YWtlcjoge30gJiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2ltYWdlL3Bu
ZycgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6ICld
fScgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2ltYWdlL3BuZycgdGhhdCBz
dGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9JiYgVGVzdCB0
aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2ltYWdlL3BuZycgdGhhdCBzdGFydHMgd2l0
aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9ICYmIFRlc3QgdGltZWQgb3V0
Ci1USU1FT1VUIENPUkItYmxvY2tzICdpbWFnZS9zdmcreG1sJyB0aGF0IHN0YXJ0cyB3aXRoIHRo
ZSBmb2xsb3dpbmcgSlNPTiBwYXJzZXIgYnJlYWtlcjogKV19JyBUZXN0IHRpbWVkIG91dAotVElN
RU9VVCBDT1JCLWJsb2NrcyAnaW1hZ2Uvc3ZnK3htbCcgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9s
bG93aW5nIEpTT04gcGFyc2VyIGJyZWFrZXI6IHt9JiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQg
Q09SQi1ibG9ja3MgJ2ltYWdlL3N2Zyt4bWwnIHRoYXQgc3RhcnRzIHdpdGggdGhlIGZvbGxvd2lu
ZyBKU09OIHBhcnNlciBicmVha2VyOiB7fSAmJiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBDT1JC
LWJsb2NrcyAnYXBwbGljYXRpb24vcGRmJyB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcg
SlNPTiBwYXJzZXIgYnJlYWtlcjogKV19JyBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBDT1JCLWJs
b2NrcyAnYXBwbGljYXRpb24vcGRmJyB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgSlNP
TiBwYXJzZXIgYnJlYWtlcjoge30mJiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBDT1JCLWJsb2Nr
cyAnYXBwbGljYXRpb24vcGRmJyB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcgSlNPTiBw
YXJzZXIgYnJlYWtlcjoge30gJiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3Mg
J2FwcGxpY2F0aW9uL3ppcCcgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFy
c2VyIGJyZWFrZXI6ICldfScgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2Fw
cGxpY2F0aW9uL3ppcCcgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2Vy
IGJyZWFrZXI6IHt9JiYgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ09SQi1ibG9ja3MgJ2FwcGxp
Y2F0aW9uL3ppcCcgdGhhdCBzdGFydHMgd2l0aCB0aGUgZm9sbG93aW5nIEpTT04gcGFyc2VyIGJy
ZWFrZXI6IHt9ICYmIFRlc3QgdGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29yYi9zY3JpcHQtcmVzb3VyY2Ut
d2l0aC1qc29uLXBhcnNlci1icmVha2VyLnRlbnRhdGl2ZS5zdWIuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29yYi9zY3JpcHQtcmVzb3Vy
Y2Utd2l0aC1qc29uLXBhcnNlci1icmVha2VyLnRlbnRhdGl2ZS5zdWIuaHRtbAppbmRleCBkNDY5
NDQ3MjdmOGVlOWZjMTQ0Y2FlYzQzN2E1NTA1YmU3NWUzZDRiLi4xYTgwOTVlYzY1ODE5NzgzM2Nm
MDdmMWYwODQwN2FjOTk3MGYzM2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcmIvc2NyaXB0LXJlc291cmNlLXdpdGgtanNv
bi1wYXJzZXItYnJlYWtlci50ZW50YXRpdmUuc3ViLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JiL3NjcmlwdC1yZXNvdXJjZS13
aXRoLWpzb24tcGFyc2VyLWJyZWFrZXIudGVudGF0aXZlLnN1Yi5odG1sCkBAIC0xLDQgKzEsNSBA
QAogPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8IS0tIFRlc3QgdmVy
aWZpZXMgQ09SQiB3aWxsIGJsb2NrIHJlc3BvbnNlcyBiZWdpbm5pbmcgd2l0aCBhIEpTT04gcGFy
c2VyCiAgIGJyZWFrZXIgcmVnYXJkbGVzcyBvZiB0aGVpciBNSU1FIHR5cGUgKGV4Y2x1ZGluZyB0
ZXh0L2NzcyAtIHNlZSBiZWxvdykuCiAKQEAgLTE4LDcgKzE5LDYgQEAKICAgc3R5bGUtY3NzLXdp
dGgtanNvbi1wYXJzZXItYnJlYWtlci5zdWIuaHRtbCkgY2FuIHBhcnNlIGFzIHZhbGlkIHN0eWxl
c2hlZXQKICAgZXZlbiBpbiBwcmVzZW5jZSBvZiBhIEpTT04gcGFyc2VyIGJyZWFrZXIuCiAtLT4K
LTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KIDxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JiL3NjcmlwdC1y
ZXNvdXJjZS13aXRoLW5vbnNuaWZmYWJsZS10eXBlcy50ZW50YXRpdmUuc3ViLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcmIvc2NyaXB0
LXJlc291cmNlLXdpdGgtbm9uc25pZmZhYmxlLXR5cGVzLnRlbnRhdGl2ZS5zdWIuaHRtbAppbmRl
eCA4MWUyNTYwMDNiNjg1MzA1NTUxZmI1NGJmNzI5NDYxMDI0ODUzY2Y0Li42ZDQ5MGQ1NWJjZTI1
ZjgwN2IyZmU4NGFkMTEwY2ViMTY2ZjMwZjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcmIvc2NyaXB0LXJlc291cmNlLXdp
dGgtbm9uc25pZmZhYmxlLXR5cGVzLnRlbnRhdGl2ZS5zdWIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcmIvc2NyaXB0LXJlc291
cmNlLXdpdGgtbm9uc25pZmZhYmxlLXR5cGVzLnRlbnRhdGl2ZS5zdWIuaHRtbApAQCAtNDIsMTIg
KzQyLDcgQEAgZnVuY3Rpb24gdGVzdChtaW1lX3R5cGUsIGlzX2Jsb2NraW5nX2V4cGVjdGVkKSB7
CiAgICAgfSk7CiAKICAgICAvLyB3d3cxIGlzIGNyb3NzLW9yaWdpbiwgc28gdGhlIEhUVFAgcmVz
cG9uc2UgaXMgQ09SQi1lbGlnaWJsZS4KLSAgICAvLwotICAgIC8vIFRPRE8obHVrYXN6YUBjaHJv
bWl1bS5vcmcpOiBPbmNlIGh0dHBzOi8vY3JidWcuY29tLzg4ODA3OSBhbmQKLSAgICAvLyBodHRw
czovL2NyYnVnLmNvbS8xMDk4OTM4IGFyZSBmaXhlZCwgd2Ugc2hvdWxkIHVzZSBhIGNyb3NzLSpv
cmlnaW4qCi0gICAgLy8gcmF0aGVyIHRoYW4gY3Jvc3MtKnNpdGUqIFVSTCBiZWxvdyAoZS5nLiBz
L2hvc3RzW2FsdF0vZG9tYWlucy9nKS4KLSAgICAvLyBTZWUgYWxzbyBodHRwczovL2NyYnVnLmNv
bS85MTg2NjAgZm9yIG1vcmUgY29udGV4dC4KLSAgICB2YXIgc3JjX3ByZWZpeCA9ICJodHRwOi8v
e3tob3N0c1thbHRdW3d3dzFdfX06e3twb3J0c1todHRwXVswXX19L2ZldGNoL2NvcmIvcmVzb3Vy
Y2VzL3NuaWZmYWJsZS1yZXNvdXJjZS5weSI7CisgICAgdmFyIHNyY19wcmVmaXggPSAiaHR0cDov
L3t7ZG9tYWluc1t3d3cxXX19Ont7cG9ydHNbaHR0cF1bMF19fS9mZXRjaC9jb3JiL3Jlc291cmNl
cy9zbmlmZmFibGUtcmVzb3VyY2UucHkiOwogICAgIGJvZHkgPSBgd2luZG93Wycke3NjcmlwdF9o
YXNfcnVuX3Rva2VufSddID0gdHJ1ZTtgCiAgICAgc2NyaXB0LnNyYyA9IHNyY19wcmVmaXggKyAi
P3R5cGU9IiArIG1pbWVfdHlwZSArICImYm9keT0iICsgZW5jb2RlVVJJQ29tcG9uZW50KGJvZHkp
OwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5
MTgvbm9uLXNlY3VyZS1jb250ZXh0LndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9ub24tc2Vj
dXJlLWNvbnRleHQud2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjIwNmM5OWEwOTBi
ZDM3MTQyNzRlNGQ4MTFiMjkwZjdiN2YyNWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvbm9u
LXNlY3VyZS1jb250ZXh0LndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0hh
cm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gRXJyb3I6IGFzc2VydF9mYWxzZTogZXhwZWN0
ZWQgZmFsc2UgZ290IHRydWUKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9ub24tc2VjdXJlLWNvbnRl
eHQud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9ub24tc2VjdXJlLWNvbnRleHQud2luZG93Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29ycy1yZmMxOTE4L25vbi1zZWN1cmUtY29udGV4dC53aW5kb3cuaHRtbApAQCAtMCww
ICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9ub24tc2VjdXJlLWNvbnRleHQud2luZG93Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3Jz
LXJmYzE5MTgvbm9uLXNlY3VyZS1jb250ZXh0LndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjQ5YTVj
YmVkZGE3ZWNlOGE1OThjYjFjNjY4YWJkOTAwNTFmZTY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5
MTgvbm9uLXNlY3VyZS1jb250ZXh0LndpbmRvdy5qcwpAQCAtMCwwICsxLDMxIEBACisvLyBNRVRB
OiBzY3JpcHQ9cmVzb3VyY2VzL3N1cHBvcnQuanMKKy8vCisvLyBTcGVjOiBodHRwczovL3dpY2cu
Z2l0aHViLmlvL2NvcnMtcmZjMTkxOC8jaW50ZWdyYXRpb24tZmV0Y2gKKy8vCisvLyBUaGlzIGZp
bGUgY292ZXJzIG9ubHkgdGhvc2UgdGVzdHMgdGhhdCBtdXN0IGV4ZWN1dGUgaW4gYSBub24gc2Vj
dXJlIGNvbnRleHQuCisvLyBPdGhlciB0ZXN0cyBhcmUgZGVmaW5lZCBpbjogc2VjdXJlLWNvbnRl
eHQud2luZG93LmpzCisKK3NldHVwKCgpID0+IHsKKyAgLy8gTWFraW5nIHN1cmUgd2UgYXJlIGlu
IGEgbm9uIHNlY3VyZSBjb250ZXh0LCBhcyBleHBlY3RlZC4KKyAgYXNzZXJ0X2ZhbHNlKHdpbmRv
dy5pc1NlY3VyZUNvbnRleHQpOworfSk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
cmV0dXJuIGZldGNoKCIvY29tbW9uL2JsYW5rLmh0bWwiKQorICAgICAgLmNhdGNoKHJlYXNvbiA9
PiB7dW5yZWFjaGVkX2Z1bmMocmVhc29uKX0pOworfSwgIkxvY2FsIG5vbiBzZWN1cmUgcGFnZSBm
ZXRjaGVzIGxvY2FsIHBhZ2UuIik7CisKKy8vIEZvciB0aGUgZm9sbG93aW5nIHRlc3RzLCB3ZSBn
byB0aHJvdWdoIGFuIGlmcmFtZSwgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUKKy8vIHRvIGRp
cmVjdGx5IGltcG9ydCB0aGUgdGVzdCBoYXJuZXNzIGZyb20gYSBzZWN1cmVkIHB1YmxpYyBwYWdl
LgorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBsZXQgaWZyYW1lID0gYXdhaXQgYXBwZW5k
SWZyYW1lKHQsIGRvY3VtZW50LAorICAgICAgInJlc291cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRk
cmVzcy5odG1sIik7CisgIGxldCByZXBseSA9IGZ1dHVyZU1lc3NhZ2UoKTsKKyAgaWZyYW1lLmNv
bnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoIi9jb21tb24vYmxhbmsuaHRtbCIsICIqIik7CisgIGFz
c2VydF9lcXVhbHMoYXdhaXQgcmVwbHksICJmYWlsdXJlIik7Cit9LCAiUHVibGljIG5vbiBzZWN1
cmUgcGFnZSBmZXRjaGVzIGxvY2FsIHBhZ2UuIik7CisKKy8vIFRPRE8oaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzI2MTY2KToKKy8vIEFkZCB0ZXN0cyBm
b3IgcHVibGljIHZhcmlhdGlvbnMgd2hlbiB3ZSBhcmUgYWJsZSB0byBmZXRjaCByZXNvdXJjZXMg
dXNpbmcgYQorLy8gbWVjaGFuaXNtIGNvbXBhdGlibGUgd2l0aCBXUFQgZ3VpZGVsaW5lcyByZWdh
cmRpbmcgYmVpbmcgc2VsZi1jb250YWluZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNl
cy9zdXBwb3J0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVzb3VyY2VzL3N1cHBvcnQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU0
OWM1MTVlZjU0MjI3NDNlNjE4ZTY3YTQyMGJkMDQ4YWJjZTg5YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1y
ZmMxOTE4L3Jlc291cmNlcy9zdXBwb3J0LmpzCkBAIC0wLDAgKzEsMzQgQEAKKy8vIENyZWF0ZXMg
YSBuZXcgaWZyYW1lIGluIHxkb2N8LCBjYWxscyB8ZnVuY3wgb24gaXQgYW5kIGFwcGVuZHMgaXQg
YXMgYSBjaGlsZAorLy8gb2YgfGRvY3wuCisvLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29s
dmVzIHRvIHRoZSBpZnJhbWUgb25jZSBsb2FkZWQgKHN1Y2Nlc3NmdWxseSBvcgorLy8gbm90KS4K
Ky8vIFRoZSBpZnJhbWUgaXMgcmVtb3ZlZCBmcm9tIHxkb2N8IG9uY2UgdGVzdCB8dHwgaXMgZG9u
ZSBydW5uaW5nLgorLy8KKy8vIE5PVEU6IEJlY2F1c2UgaWZyYW1lIGVsZW1lbnRzIGFsd2F5cyBp
bnZva2UgdGhlIG9ubG9hZCBldmVudCBoYW5kbGVyLCBldmVuCisvLyBpbiBjYXNlIG9mIGVycm9y
LCB3ZSBjYW5ub3Qgd2lyZSBvbmVycm9yIHRvIGEgcHJvbWlzZSByZWplY3Rpb24uIFRoZSBQcm9t
aXNlCisvLyBjb25zdHJ1Y3RvciByZXF1aXJlcyB1c2VycyB0byByZXNvbHZlIFhPUiByZWplY3Qg
dGhlIHByb21pc2UuCitmdW5jdGlvbiBhcHBlbmRJZnJhbWVXaXRoKHQsIGRvYywgZnVuYykgewor
ICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICBjb25zdCBjaGlsZCA9IGRv
Yy5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgIGZ1bmMoY2hpbGQpOworICAgICAgY2hp
bGQub25sb2FkID0gKCkgPT4geyByZXNvbHZlKGNoaWxkKTsgfTsKKyAgICAgIGRvYy5ib2R5LmFw
cGVuZENoaWxkKGNoaWxkKTsKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4geyBkb2MuYm9keS5y
ZW1vdmVDaGlsZChjaGlsZCk7IH0pOworICAgIH0pOworfQorCisvLyBBcHBlbmRzIGEgY2hpbGQg
aWZyYW1lIHRvIHxkb2N8IHNvdXJjZWQgZnJvbSB8c3JjfC4KKy8vCisvLyBTZWUgYXBwZW5kX2No
aWxkX2ZyYW1lX3dpdGgoKSBmb3IgbW9yZSBkZXRhaWxzLgorZnVuY3Rpb24gYXBwZW5kSWZyYW1l
KHQsIGRvYywgc3JjKSB7CisgIHJldHVybiBhcHBlbmRJZnJhbWVXaXRoKHQsIGRvYywgY2hpbGQg
PT4geyBjaGlsZC5zcmMgPSBzcmM7IH0pOworfQorCisvLyBSZWdpc3RlciBhbiBldmVudCBsaXN0
ZW5lciB0aGF0IHdpbGwgcmVzb2x2ZSB0aGlzIHByb21pc2Ugd2hlbiB0aGlzCisvLyB3aW5kb3cg
cmVjZWl2ZXMgYSBtZXNzYWdlIHBvc3RlZCB0byBpdC4KK2Z1bmN0aW9uIGZ1dHVyZU1lc3NhZ2Uo
KSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZSA9PiByZXNvbHZlKGUuZGF0YSkpOworICB9KTsKK307
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9j
b3JzLXJmYzE5MTgvcmVzb3VyY2VzL3RyZWF0LWFzLXB1YmxpYy1hZGRyZXNzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2E4ZjZmMDlhNTE3ZjBkYjY5NWE1NTQzNjg3MDc5MGE3NzYzODcwZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5odG1sCkBA
IC0wLDAgKzEsOCBAQAorPHNjcmlwdD4KKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICBmZXRjaChldmVudC5kYXRhKQorICAgICAgICAu
dGhlbihyZXNwb25zZSA9PiB7cGFyZW50LnBvc3RNZXNzYWdlKCJzdWNjZXNzIiwgIioiKX0pCisg
ICAgICAgIC5jYXRjaChlcnJvciA9PiB7cGFyZW50LnBvc3RNZXNzYWdlKCJmYWlsdXJlIiwgIioi
KX0pOworICB9KTsKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9yZXNvdXJjZXMvdHJl
YXQtYXMtcHVibGljLWFkZHJlc3MuaHRtbC5oZWFkZXJzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVzb3VyY2VzL3RyZWF0
LWFzLXB1YmxpYy1hZGRyZXNzLmh0bWwuaGVhZGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjM3MWM2MjA5ZTQ2
ZjI0ZTYxMWE2Njg5ZDI2YjZmMWJiZmFmZjljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVz
b3VyY2VzL3RyZWF0LWFzLXB1YmxpYy1hZGRyZXNzLmh0bWwuaGVhZGVycwpAQCAtMCwwICsxIEBA
CitDb250ZW50LVNlY3VyaXR5LVBvbGljeTogdHJlYXQtYXMtcHVibGljLWFkZHJlc3M7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2NvcnMtcmZjMTkxOC9yZXNvdXJjZXMvdHJlYXQtYXMtcHVibGljLWFkZHJlc3MuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29y
cy1yZmMxOTE4L3Jlc291cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdhOGY2ZjA5YTUxN2YwZGI2OTVhNTU0MzY4NzA3OTBhNzc2Mzg3MGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2NvcnMtcmZjMTkxOC9yZXNvdXJjZXMvdHJlYXQtYXMtcHVibGljLWFkZHJlc3MuaHR0
cHMuaHRtbApAQCAtMCwwICsxLDggQEAKKzxzY3JpcHQ+CisgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgZmV0Y2goZXZlbnQuZGF0YSkK
KyAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge3BhcmVudC5wb3N0TWVzc2FnZSgic3VjY2VzcyIs
ICIqIil9KQorICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge3BhcmVudC5wb3N0TWVzc2FnZSgiZmFp
bHVyZSIsICIqIil9KTsKKyAgfSk7Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVz
b3VyY2VzL3RyZWF0LWFzLXB1YmxpYy1hZGRyZXNzLmh0dHBzLmh0bWwuaGVhZGVycyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4
L3Jlc291cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5odHRwcy5odG1sLmhlYWRlcnMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzYzNzFjNjIwOWU0NmYyNGU2MTFhNjY4OWQyNmI2ZjFiYmZhZmY5YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5odHRw
cy5odG1sLmhlYWRlcnMKQEAgLTAsMCArMSBAQAorQ29udGVudC1TZWN1cml0eS1Qb2xpY3k6IHRy
ZWF0LWFzLXB1YmxpYy1hZGRyZXNzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvcmVzb3VyY2VzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9jb3JzLXJmYzE5MTgvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2
ZGNlNWMyMjk0MjFiZjJlMjQwMmFiNGJlYzc0YzY4NmQwY2M0ZjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMt
cmZjMTkxOC9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMSBAQAorVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3Jz
LXJmYzE5MTgvcmVzb3VyY2VzL3N1cHBvcnQuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9yZXNvdXJjZXMvdHJlYXQtYXMt
cHVibGljLWFkZHJlc3MuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRk
cmVzcy5odG1sLmhlYWRlcnMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9yZXNvdXJjZXMvdHJlYXQtYXMtcHVibGljLWFkZHJl
c3MuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY29ycy1yZmMxOTE4L3Jlc291cmNlcy90cmVhdC1hcy1wdWJsaWMtYWRkcmVzcy5o
dHRwcy5odG1sLmhlYWRlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3NlY3VyZS1jb250ZXh0Lmh0dHBz
LndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9zZWN1cmUtY29udGV4dC5odHRwcy53aW5kb3ct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyOTUyMTNmZWZlZDI2NjkwMmQzMjI0NDA4NjEzY2Yy
NTE2YTZiNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9zZWN1cmUtY29udGV4dC5odHRwcy53
aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIExvY2FsIHNlY3VyZSBw
YWdlIGZldGNoZXMgbG9jYWwgcGFnZS4KK1BBU1MgUHVibGljIHNlY3VyZSBwYWdlIGZldGNoZXMg
bG9jYWwgcGFnZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvc2VjdXJlLWNvbnRleHQuaHR0cHMud2lu
ZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2NvcnMtcmZjMTkxOC9zZWN1cmUtY29udGV4dC5odHRwcy53aW5kb3cuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9jb3JzLXJmYzE5MTgvc2VjdXJlLWNvbnRleHQuaHR0cHMud2luZG93Lmh0bWwKQEAgLTAsMCAr
MSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3Ry
dWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvc2VjdXJlLWNvbnRleHQuaHR0cHMud2luZG93Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3Jz
LXJmYzE5MTgvc2VjdXJlLWNvbnRleHQuaHR0cHMud2luZG93LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlZDAy
OGEzOTBjMTljZGRmNzU1ODc5MTA3MThiMmQ1ODY3YzMxOGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZj
MTkxOC9zZWN1cmUtY29udGV4dC5odHRwcy53aW5kb3cuanMKQEAgLTAsMCArMSwzMSBAQAorLy8g
TUVUQTogc2NyaXB0PXJlc291cmNlcy9zdXBwb3J0LmpzCisvLworLy8gU3BlYzogaHR0cHM6Ly93
aWNnLmdpdGh1Yi5pby9jb3JzLXJmYzE5MTgvI2ludGVncmF0aW9uLWZldGNoCisvLworLy8gVGhp
cyBmaWxlIGNvdmVycyBvbmx5IHRob3NlIHRlc3RzIHRoYXQgbXVzdCBleGVjdXRlIGluIGEgc2Vj
dXJlIGNvbnRleHQuCisvLyBPdGhlciB0ZXN0cyBhcmUgZGVmaW5lZCBpbjogbm9uLXNlY3VyZS1j
b250ZXh0LndpbmRvdy5qcworCitzZXR1cCgoKSA9PiB7CisgIC8vIE1ha2luZyBzdXJlIHdlIGFy
ZSBpbiBhIHNlY3VyZSBjb250ZXh0LCBhcyBleHBlY3RlZC4KKyAgYXNzZXJ0X3RydWUod2luZG93
LmlzU2VjdXJlQ29udGV4dCk7Cit9KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBy
ZXR1cm4gZmV0Y2goIi9jb21tb24vYmxhbmsuaHRtbCIpCisgICAgICAuY2F0Y2gocmVhc29uID0+
IHt1bnJlYWNoZWRfZnVuYyhyZWFzb24pfSk7Cit9LCAiTG9jYWwgc2VjdXJlIHBhZ2UgZmV0Y2hl
cyBsb2NhbCBwYWdlLiIpOworCisvLyBGb3IgdGhlIGZvbGxvd2luZyB0ZXN0cywgd2UgZ28gdGhy
b3VnaCBhbiBpZnJhbWUsIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlCisvLyB0byBkaXJlY3Rs
eSBpbXBvcnQgdGhlIHRlc3QgaGFybmVzcyBmcm9tIGEgc2VjdXJlZCBwdWJsaWMgcGFnZS4KK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgbGV0IGlmcmFtZSA9IGF3YWl0IGFwcGVuZElmcmFt
ZSh0LCBkb2N1bWVudCwKKyAgICAgICJyZXNvdXJjZXMvdHJlYXQtYXMtcHVibGljLWFkZHJlc3Mu
aHR0cHMuaHRtbCIpOworICBsZXQgcmVwbHkgPSBmdXR1cmVNZXNzYWdlKCk7CisgIGlmcmFtZS5j
b250ZW50V2luZG93LnBvc3RNZXNzYWdlKCIvY29tbW9uL2JsYW5rLmh0bWwiLCAiKiIpOworICBh
c3NlcnRfZXF1YWxzKGF3YWl0IHJlcGx5LCAic3VjY2VzcyIpOworfSwgIlB1YmxpYyBzZWN1cmUg
cGFnZSBmZXRjaGVzIGxvY2FsIHBhZ2UuIik7CisKKy8vIFRPRE8oaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzI2MTY2KToKKy8vIEFkZCB0ZXN0cyBmb3Ig
cHVibGljIHZhcmlhdGlvbnMgd2hlbiB3ZSBhcmUgYWJsZSB0byBmZXRjaCByZXNvdXJjZXMgdXNp
bmcgYQorLy8gbWVjaGFuaXNtIGNvbXBhdGlibGUgd2l0aCBXUFQgZ3VpZGVsaW5lcyByZWdhcmRp
bmcgYmVpbmcgc2VsZi1jb250YWluZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9j
b3JzLXJmYzE5MTgvdzNjLWltcG9ydC5sb2cKaW5kZXggYmY0OWVjYjEzMjY5NzVhZDIyZTNmNjE3
NDYwZGIzNWU0ZDdmOWE3MS4uNThmMGE4NTFhMjQ2MjI4MDJlMGJmNTU4OWRlOTAwOWVkYTRiMjAx
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9jb3JzLXJmYzE5MTgvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb3JzLXJmYzE5MTgvdzNjLWltcG9y
dC5sb2cKQEAgLTE1LDMgKzE1LDUgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZp
bGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
Y29ycy1yZmMxOTE4L2lkbGhhcm5lc3MudGVudGF0aXZlLmFueS5qcworL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ycy1yZmMxOTE4L25vbi1zZWN1
cmUtY29udGV4dC53aW5kb3cuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2NvcnMtcmZjMTkxOC9zZWN1cmUtY29udGV4dC5odHRwcy53aW5kb3cu
anMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeS9mZXRjaC1pbi1zZXJ2aWNlLXdv
cmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kvZmV0Y2gtaW4tc2Vydmlj
ZS13b3JrZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MmZj
ODlmYTZmMTc5YTVjODRiNWRhZjY3ODkzMTRmNjg4MDBmNTMzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeS9mZXRjaC1p
bi1zZXJ2aWNlLXdvcmtlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCww
IEBACi0KLVBBU1MgZmV0Y2guYW55LmpzIHRlc3QKLVBBU1MgU2FtZS1vcmlnaW4gZmV0Y2ggd2l0
aCBhICdDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5OiBzYW1lLW9yaWdpbicgcmVzcG9uc2Ug
aGVhZGVyLgotUEFTUyBTYW1lLW9yaWdpbiBmZXRjaCB3aXRoIGEgJ0Nyb3NzLU9yaWdpbi1SZXNv
dXJjZS1Qb2xpY3k6IHNhbWUtc2l0ZScgcmVzcG9uc2UgaGVhZGVyLgotUEFTUyBDcm9zcy1vcmln
aW4gY29ycyBmZXRjaCB3aXRoIGEgJ0Nyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3k6IHNhbWUt
b3JpZ2luJyByZXNwb25zZSBoZWFkZXIuCi1QQVNTIENyb3NzLW9yaWdpbiBjb3JzIGZldGNoIHdp
dGggYSAnQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeTogc2FtZS1zaXRlJyByZXNwb25zZSBo
ZWFkZXIuCi1QQVNTIENyb3NzLW9yaWdpbiBuby1jb3JzIGZldGNoIHdpdGggYSAnQ3Jvc3MtT3Jp
Z2luLVJlc291cmNlLVBvbGljeTogc2FtZS1vcmlnaW4nIHJlc3BvbnNlIGhlYWRlci4KLVBBU1Mg
Q3Jvc3Mtb3JpZ2luIG5vLWNvcnMgZmV0Y2ggd2l0aCBhICdDcm9zcy1PcmlnaW4tUmVzb3VyY2Ut
UG9saWN5OiBzYW1lLXNpdGUnIHJlc3BvbnNlIGhlYWRlci4KLVBBU1MgQ3Jvc3Mtc2NoZW1lIChI
VFRQIHRvIEhUVFBTKSBuby1jb3JzIGZldGNoIHRvIGEgc2FtZS1zaXRlIFVSTCB3aXRoIGEgJ0Ny
b3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3k6IHNhbWUtc2l0ZScgcmVzcG9uc2UgaGVhZGVyLgot
UEFTUyBDcm9zcy1vcmlnaW4gbm8tY29ycyBmZXRjaCB0byBhIHNhbWUtc2l0ZSBVUkwgd2l0aCBh
ICdDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5OiBzYW1lLW9yaWdpbicgcmVzcG9uc2UgaGVh
ZGVyLgotUEFTUyBWYWxpZCBjcm9zcy1vcmlnaW4gbm8tY29ycyBmZXRjaCB3aXRoIGEgJ0Nyb3Nz
LU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3k6IHNhbWUtc2l0ZScgcmVzcG9uc2UgaGVhZGVyLgotUEFT
UyBDcm9zcy1vcmlnaW4gbm8tY29ycyBmZXRjaCB3aXRoIGEgJ0Nyb3NzLU9yaWdpbi1SZXNvdXJj
ZS1Qb2xpY3k6IHNhbWUtb3JpZ2luJyByZXNwb25zZSBoZWFkZXIgYWZ0ZXIgYSByZWRpcmVjdGlv
bi4KLVBBU1MgQ3Jvc3Mtb3JpZ2luIG5vLWNvcnMgZmV0Y2ggd2l0aCBhICdDcm9zcy1PcmlnaW4t
UmVzb3VyY2UtUG9saWN5OiBzYW1lLW9yaWdpbicgcmVzcG9uc2UgaGVhZGVyIGFmdGVyIGEgY3Jv
c3Mtb3JpZ2luIHJlZGlyZWN0aW9uLgotUEFTUyBDcm9zcy1vcmlnaW4gbm8tY29ycyBmZXRjaCB3
aXRoIGEgJ0Nyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3k6IHNhbWUtb3JpZ2luJyByZWRpcmVj
dCByZXNwb25zZSBoZWFkZXIuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeS9m
ZXRjaC1pbi1zZXJ2aWNlLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5L2ZldGNo
LWluLXNlcnZpY2Utd29ya2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1
NDY4YzAwZTRhNzE2MTRjMTJjMzdmMTA1YWQ0NzkwMWVmNzlhZjkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5L2ZldGNo
LWluLXNlcnZpY2Utd29ya2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTx0aXRsZT5Dcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IGluIFNl
cnZpY2UgV29ya2VyPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LXNlcnZpY2Vfd29ya2VyX3Rlc3QoCi0gICAgJ2ZldGNoLmFueS53b3JrZXIuanMnLAotICAgICdm
ZXRjaC5hbnkuanMgdGVzdCcpOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvZGF0YS11cmxzL2Jhc2U2NC5h
bnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2RhdGEtdXJscy9iYXNlNjQuYW55LmpzCmluZGV4IGM0MDgwNTM2NGU5ZDNlNGIxMTI4M2I4MDkw
MmM5NTYyYmQyNjJhNjIuLjgzZjM0ZGIxNzc3ZDk5ZDZjMTIxMmE3NWFiNGRiNDRkY2JkNzA3MjAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvZGF0YS11cmxzL2Jhc2U2NC5hbnkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9kYXRhLXVybHMvYmFzZTY0LmFueS5qcwpAQCAt
MSwzICsxLDUgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisKIHByb21pc2VfdGVz
dCgoKSA9PiBmZXRjaCgicmVzb3VyY2VzL2Jhc2U2NC5qc29uIikudGhlbihyZXMgPT4gcmVzLmpz
b24oKSkudGhlbihydW5CYXNlNjRUZXN0cyksICJTZXR1cC4iKTsKIGZ1bmN0aW9uIHJ1bkJhc2U2
NFRlc3RzKHRlc3RzKSB7CiAgIGZvcihsZXQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9kYXRhLXVybHMvcHJvY2Vzc2luZy5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2RhdGEtdXJscy9wcm9jZXNzaW5nLmFueS5q
cwppbmRleCA5NDBlNWNlYTM4NzhiOTQ2MWUwNGNkNjRlMGY1YmRlNmIyMmUwM2QyLi5jZWM5N2Jk
NmJlMmIyZTNmMWIzOWM3YTVlODEyOGVlNDhkN2FjM2Q0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2RhdGEtdXJscy9wcm9jZXNz
aW5nLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2RhdGEtdXJscy9wcm9jZXNzaW5nLmFueS5qcwpAQCAtMSwzICsxLDUgQEAKKy8v
IE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisKIHByb21pc2VfdGVzdCgoKSA9PiBmZXRjaCgi
cmVzb3VyY2VzL2RhdGEtdXJscy5qc29uIikudGhlbihyZXMgPT4gcmVzLmpzb24oKSkudGhlbihy
dW5EYXRhVVJMVGVzdHMpLCAiU2V0dXAuIik7CiBmdW5jdGlvbiBydW5EYXRhVVJMVGVzdHModGVz
dHMpIHsKICAgZm9yKGxldCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2gx
LXBhcnNpbmcvcmVzb3VyY2VzL2RvY3VtZW50LXdpdGgtMHgwMC1pbi1oZWFkZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2gxLXBhcnNpbmcv
cmVzb3VyY2VzL2RvY3VtZW50LXdpdGgtMHgwMC1pbi1oZWFkZXIucHkKaW5kZXggNmU4ZGI2MTk1
OTEwZWY0Yzg1ZGNlZDhiMjQ1NDFlY2RlODNjNTQwNS4uMjIzYjNjNDAyNzgyNmYyYmJhMTM5NGRi
NDY1YzkzZWM3Y2JiZTAwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9oMS1wYXJzaW5nL3Jlc291cmNlcy9kb2N1bWVudC13aXRo
LTB4MDAtaW4taGVhZGVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvaDEtcGFyc2luZy9yZXNvdXJjZXMvZG9jdW1lbnQtd2l0aC0weDAw
LWluLWhlYWRlci5weQpAQCAtMSw0ICsxLDQgQEAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNl
KToKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIp
Ci0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkN1c3RvbSIsICJcMCIpCi0gICAgcmV0dXJuICI8
IWRvY3R5cGUgaHRtbD48Yj5UaGlzIGlzIGEgZG9jdW1lbnQuPC9iPiIKKyAgICByZXNwb25zZS5o
ZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9odG1sIikKKyAgICByZXNwb25zZS5o
ZWFkZXJzLnNldChiIkN1c3RvbSIsIGIiXDAiKQorICAgIHJldHVybiBiIjwhZG9jdHlwZSBodG1s
PjxiPlRoaXMgaXMgYSBkb2N1bWVudC48L2I+IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9oMS1wYXJzaW5nL3Jlc291cmNlcy9z
Y3JpcHQtd2l0aC0weDAwLWluLWhlYWRlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaDEtcGFyc2luZy9yZXNvdXJjZXMvc2NyaXB0LXdpdGgt
MHgwMC1pbi1oZWFkZXIucHkKaW5kZXggZjRhMDE2YTM2OTgzMWVlNWRjZGIzNTYzNDY4Y2NmOGRk
MGIwOTgyYi4uMzlmNThkODI3MGU3NjcxYmY3NGU0MGFjODRlMDVhNzU1OGRmNGY2OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
MS1wYXJzaW5nL3Jlc291cmNlcy9zY3JpcHQtd2l0aC0weDAwLWluLWhlYWRlci5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2gxLXBhcnNp
bmcvcmVzb3VyY2VzL3NjcmlwdC13aXRoLTB4MDAtaW4taGVhZGVyLnB5CkBAIC0xLDQgKzEsNCBA
QAogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KCJDb250ZW50LVR5cGUiLCAidGV4dC9qYXZhc2NyaXB0IikKLSAgICByZXNwb25zZS5oZWFkZXJz
LnNldCgiQ3VzdG9tIiwgIlwwIikKLSAgICByZXR1cm4gInZhciB0aGlzSXNKYXZhU2NyaXB0ID0g
MCIKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9qYXZh
c2NyaXB0IikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkN1c3RvbSIsIGIiXDAiKQorICAg
IHJldHVybiBiInZhciB0aGlzSXNKYXZhU2NyaXB0ID0gMCIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS8zMDQt
dXBkYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS8zMDQtdXBkYXRlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdlOWFiMzZjN2M1N2JmNGMyNzVmNTVjMjJjYWFiMzRj
NDM4ZmY0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2Fj
aGUvMzA0LXVwZGF0ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAK
LQotUEFTUyBIVFRQIGNhY2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVhZGVycyBmcm9tIGEgTGFzdC1N
b2RpZmllZCAzMDQKLVBBU1MgSFRUUCBjYWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJzIGZyb20g
YSBMYXN0LU1vZGlmaWVkIDMwNAotUEFTUyBIVFRQIGNhY2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVh
ZGVycyBmcm9tIGEgRVRhZyAzMDQKLVBBU1MgSFRUUCBjYWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFk
ZXJzIGZyb20gYSBFVGFnIDMwNAotRkFJTCBDb250ZW50LSogaGVhZGVyIGFzc2VydF9lcXVhbHM6
IFJlc3BvbnNlIDIgaGVhZGVyIENvbnRlbnQtVGVzdC1IZWFkZXIgaXMgIkEiLCBub3QgIkIiIGV4
cGVjdGVkICJCIiBidXQgZ290ICJBIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9odHRwLWNhY2hlLzMwNC11cGRhdGUuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kN2U5YWIzNmM3YzU3YmY0YzI3NWY1NWMyMmNhYWIzNGM0MzhmZjRmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
dHRwLWNhY2hlLzMwNC11cGRhdGUuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKwor
UEFTUyBIVFRQIGNhY2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVhZGVycyBmcm9tIGEgTGFzdC1Nb2Rp
ZmllZCAzMDQKK1BBU1MgSFRUUCBjYWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJzIGZyb20gYSBM
YXN0LU1vZGlmaWVkIDMwNAorUEFTUyBIVFRQIGNhY2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVhZGVy
cyBmcm9tIGEgRVRhZyAzMDQKK1BBU1MgSFRUUCBjYWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJz
IGZyb20gYSBFVGFnIDMwNAorRkFJTCBDb250ZW50LSogaGVhZGVyIGFzc2VydF9lcXVhbHM6IFJl
c3BvbnNlIDIgaGVhZGVyIENvbnRlbnQtVGVzdC1IZWFkZXIgaXMgIkEiLCBub3QgIkIiIGV4cGVj
dGVkICJCIiBidXQgZ290ICJBIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0
cC1jYWNoZS8zMDQtdXBkYXRlLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0
ZS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3Ig
V2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5h
bnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU0ODRmMDFlYjMyYmUz
MTRmMDUzNzY5NGJiMWE4NWE3M2JjMmJhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS8zMDQtdXBk
YXRlLmFueS5qcwpAQCAtMCwwICsxLDE0NiBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3Jr
ZXIKKy8vIE1FVEE6IHRpdGxlPUhUVFAgQ2FjaGUgLSAzMDQgVXBkYXRlcworLy8gTUVUQTogdGlt
ZW91dD1sb25nCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcworLy8gTUVUQTogc2Ny
aXB0PS9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMKKy8vIE1FVEE6IHNjcmlwdD1odHRwLWNh
Y2hlLmpzCisKK3ZhciB0ZXN0cyA9IFsKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHVwZGF0
ZXMgcmV0dXJuZWQgaGVhZGVycyBmcm9tIGEgTGFzdC1Nb2RpZmllZCAzMDQiLAorICAgIHJlcXVl
c3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBb
IkV4cGlyZXMiLCAtNTAwMF0sCisgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAor
ICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQSJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAg
ICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCAt
MzAwMF0sCisgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAgIFsi
VGVzdC1IZWFkZXIiLCAiQiJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJs
bV92YWxpZGF0ZWQiLAorICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9oZWFkZXJzOiBbCisgICAg
ICAgICAgWyJUZXN0LUhlYWRlciIsICJCIl0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAg
fSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHVwZGF0ZXMgc3RvcmVkIGhlYWRlcnMgZnJv
bSBhIExhc3QtTW9kaWZpZWQgMzA0IiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAg
ICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwgLTUwMDBdLAorICAg
ICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKKyAgICAgICAgICBbIlRlc3QtSGVhZGVy
IiwgIkEiXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXNwb25zZV9o
ZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwgMzAwMF0sCisgICAgICAgICAgWyJMYXN0
LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCisgICAg
ICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJsbV92YWxpZGF0ZWQiLAorICAgICAgICBl
eHBlY3RlZF9yZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJC
Il0KKyAgICAgICAgXSwKKyAgICAgICAgcGF1c2VfYWZ0ZXI6IHRydWUKKyAgICAgIH0sCisgICAg
ICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiLAorICAgICAgICBleHBlY3RlZF9y
ZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJCIl0KKyAgICAg
ICAgXQorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHVw
ZGF0ZXMgcmV0dXJuZWQgaGVhZGVycyBmcm9tIGEgRVRhZyAzMDQiLAorICAgIHJlcXVlc3RzOiBb
CisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGly
ZXMiLCAtNTAwMF0sCisgICAgICAgICAgWyJFVGFnIiwgIkFCQyJdLAorICAgICAgICAgIFsiVGVz
dC1IZWFkZXIiLCAiQSJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJl
c3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCAtMzAwMF0sCisgICAgICAg
ICAgWyJFVGFnIiwgIkFCQyJdLAorICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCisgICAg
ICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJldGFnX3ZhbGlkYXRlZCIsCisgICAgICAg
IGV4cGVjdGVkX3Jlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIlRlc3QtSGVhZGVyIiwg
IkIiXQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhU
VFAgY2FjaGUgdXBkYXRlcyBzdG9yZWQgaGVhZGVycyBmcm9tIGEgRVRhZyAzMDQiLAorICAgIHJl
cXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAg
ICBbIkV4cGlyZXMiLCAtNTAwMF0sCisgICAgICAgICAgWyJFVGFnIiwgIkRFRiJdLAorICAgICAg
ICAgIFsiVGVzdC1IZWFkZXIiLCAiQSJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7Cisg
ICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCAzMDAwXSwK
KyAgICAgICAgICBbIkVUYWciLCAiREVGIl0sCisgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJC
Il0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImV0YWdfdmFsaWRhdGVkIiwK
KyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiVGVzdC1I
ZWFkZXIiLCAiQiJdCisgICAgICAgIF0sCisgICAgICAgIHBhdXNlX2FmdGVyOiB0cnVlCisgICAg
ICB9LAorICAgICAgeworICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIiwKKyAgICAgICAg
ZXhwZWN0ZWRfcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAi
QiJdCisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiQ29u
dGVudC0qIGhlYWRlciIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVzcG9u
c2VfaGVhZGVyczogWworICAgICAgICAgIFsiRXhwaXJlcyIsIC01MDAwXSwKKyAgICAgICAgICBb
IkVUYWciLCAiR0hJIl0sCisgICAgICAgICAgWyJDb250ZW50LVRlc3QtSGVhZGVyIiwgIkEiXQor
ICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBb
CisgICAgICAgICAgWyJFeHBpcmVzIiwgMzAwMF0sCisgICAgICAgICAgWyJFVGFnIiwgIkdISSJd
LAorICAgICAgICAgIFsiQ29udGVudC1UZXN0LUhlYWRlciIsICJCIl0KKyAgICAgICAgXSwKKyAg
ICAgICAgZXhwZWN0ZWRfdHlwZTogImV0YWdfdmFsaWRhdGVkIiwKKyAgICAgICAgZXhwZWN0ZWRf
cmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiQ29udGVudC1UZXN0LUhlYWRlciIsICJC
Il0KKyAgICAgICAgXSwKKyAgICAgICAgcGF1c2VfYWZ0ZXI6IHRydWUKKyAgICAgIH0sCisgICAg
ICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiLAorICAgICAgICBleHBlY3RlZF9y
ZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDb250ZW50LVRlc3QtSGVhZGVyIiwgIkIi
XQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICB9LAorXTsKK3J1bl90ZXN0cyh0ZXN0cyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNo
ZS8zMDQtdXBkYXRlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3ZTlhYjM2
YzdjNTdiZjRjMjc1ZjU1YzIyY2FhYjM0YzQzOGZmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
MzA0LXVwZGF0ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworUEFT
UyBIVFRQIGNhY2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVhZGVycyBmcm9tIGEgTGFzdC1Nb2RpZmll
ZCAzMDQKK1BBU1MgSFRUUCBjYWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJzIGZyb20gYSBMYXN0
LU1vZGlmaWVkIDMwNAorUEFTUyBIVFRQIGNhY2hlIHVwZGF0ZXMgcmV0dXJuZWQgaGVhZGVycyBm
cm9tIGEgRVRhZyAzMDQKK1BBU1MgSFRUUCBjYWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJzIGZy
b20gYSBFVGFnIDMwNAorRkFJTCBDb250ZW50LSogaGVhZGVyIGFzc2VydF9lcXVhbHM6IFJlc3Bv
bnNlIDIgaGVhZGVyIENvbnRlbnQtVGVzdC1IZWFkZXIgaXMgIkEiLCBub3QgIkIiIGV4cGVjdGVk
ICJCIiBidXQgZ290ICJBIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkud29ya2Vy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4Mjkx
MzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNo
ZS8zMDQtdXBkYXRlLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAt
Y2FjaGUvMzA0LXVwZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlLzMwNC11cGRhdGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDZkODQ4MWU4NzQyNzgxNjExMzM5N2JiZWQ0OWYzMGIzZTQzYzMz
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvMzA0
LXVwZGF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTU3ICswLDAgQEAKLTwhZG9jdHlwZSBo
dG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8
dGl0bGU+SFRUUCBDYWNoZSAtIDMwNCBVcGRhdGVzPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJo
ZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+Ci0gICAg
PG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
L2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0
LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJodHRwLWNhY2hl
LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgIHZh
ciB0ZXN0cyA9IFsKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgdXBkYXRlcyBy
ZXR1cm5lZCBoZWFkZXJzIGZyb20gYSBMYXN0LU1vZGlmaWVkIDMwNCIsCi0gICAgICAgIHJlcXVl
c3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAg
ICAgICAgICAgICBbIkV4cGlyZXMiLCAtNTAwMF0sCi0gICAgICAgICAgICAgIFsiTGFzdC1Nb2Rp
ZmllZCIsIC0zMDAwXSwKLSAgICAgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJBIl0KLSAgICAg
ICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNl
X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwgLTMwMDBdLAotICAgICAgICAg
ICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCi0gICAgICAgICAgICAgIFsiVGVzdC1IZWFk
ZXIiLCAiQiJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImxt
X3ZhbGlkYXRlZCIsCi0gICAgICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9oZWFkZXJzOiBbCi0g
ICAgICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJdCi0gICAgICAgICAgICBdCi0gICAgICAg
ICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBj
YWNoZSB1cGRhdGVzIHN0b3JlZCBoZWFkZXJzIGZyb20gYSBMYXN0LU1vZGlmaWVkIDMwNCIsCi0g
ICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVh
ZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCAtNTAwMF0sCi0gICAgICAgICAgICAg
IFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKLSAgICAgICAgICAgICAgWyJUZXN0LUhlYWRlciIs
ICJBIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwgMzAwMF0s
Ci0gICAgICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKLSAgICAgICAgICAgICAg
WyJUZXN0LUhlYWRlciIsICJCIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3Rl
ZF90eXBlOiAibG1fdmFsaWRhdGVkIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2hl
YWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJCIl0KLSAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICBwYXVzZV9hZnRlcjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAg
ICAgewotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIsCi0gICAgICAgICAgICBl
eHBlY3RlZF9yZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiVGVzdC1IZWFkZXIi
LCAiQiJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAot
ICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSB1cGRhdGVzIHJldHVybmVkIGhlYWRl
cnMgZnJvbSBhIEVUYWcgMzA0IiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0g
ICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRXhwaXJlcyIs
IC01MDAwXSwKLSAgICAgICAgICAgICAgWyJFVGFnIiwgIkFCQyJdLAotICAgICAgICAgICAgICBb
IlRlc3QtSGVhZGVyIiwgIkEiXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAg
ICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4
cGlyZXMiLCAtMzAwMF0sCi0gICAgICAgICAgICAgIFsiRVRhZyIsICJBQkMiXSwKLSAgICAgICAg
ICAgICAgWyJUZXN0LUhlYWRlciIsICJCIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBl
eHBlY3RlZF90eXBlOiAiZXRhZ192YWxpZGF0ZWQiLAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVz
cG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIlRlc3QtSGVhZGVyIiwgIkIiXQotICAg
ICAgICAgICAgXQotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAg
ICAgICAgbmFtZTogIkhUVFAgY2FjaGUgdXBkYXRlcyBzdG9yZWQgaGVhZGVycyBmcm9tIGEgRVRh
ZyAzMDQiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
c3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwgLTUwMDBdLAotICAg
ICAgICAgICAgICBbIkVUYWciLCAiREVGIl0sCi0gICAgICAgICAgICAgIFsiVGVzdC1IZWFkZXIi
LCAiQSJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAg
ICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRXhwaXJlcyIsIDMwMDBd
LAotICAgICAgICAgICAgICBbIkVUYWciLCAiREVGIl0sCi0gICAgICAgICAgICAgIFsiVGVzdC1I
ZWFkZXIiLCAiQiJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTog
ImV0YWdfdmFsaWRhdGVkIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2hlYWRlcnM6
IFsKLSAgICAgICAgICAgICAgWyJUZXN0LUhlYWRlciIsICJCIl0KLSAgICAgICAgICAgIF0sCi0g
ICAgICAgICAgICBwYXVzZV9hZnRlcjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAgewot
ICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIsCi0gICAgICAgICAgICBleHBlY3Rl
ZF9yZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiVGVzdC1IZWFkZXIiLCAiQiJd
Ci0gICAgICAgICAgICBdCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAg
ewotICAgICAgICBuYW1lOiAiQ29udGVudC0qIGhlYWRlciIsCi0gICAgICAgIHJlcXVlc3RzOiBb
Ci0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAg
ICAgICBbIkV4cGlyZXMiLCAtNTAwMF0sCi0gICAgICAgICAgICAgIFsiRVRhZyIsICJHSEkiXSwK
LSAgICAgICAgICAgICAgWyJDb250ZW50LVRlc3QtSGVhZGVyIiwgIkEiXQotICAgICAgICAgICAg
XQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVy
czogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCAzMDAwXSwKLSAgICAgICAgICAgICAgWyJF
VGFnIiwgIkdISSJdLAotICAgICAgICAgICAgICBbIkNvbnRlbnQtVGVzdC1IZWFkZXIiLCAiQiJd
Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImV0YWdfdmFsaWRh
dGVkIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAg
ICAgICAgWyJDb250ZW50LVRlc3QtSGVhZGVyIiwgIkIiXQotICAgICAgICAgICAgXSwKLSAgICAg
ICAgICAgIHBhdXNlX2FmdGVyOiB0cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jl
c3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDb250ZW50LVRlc3QtSGVhZGVyIiwg
IkIiXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAg
ICBdOwotICAgIHJ1bl90ZXN0cyh0ZXN0cyk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYWNoZS1tb2RlLmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
Y2FjaGUtbW9kZS5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjYmM1ZGE4NWRlNmIzODk4
NTQ0MGQ3MjQ4NDVjMjM4MTFmYmU0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2FjaGUtbW9k
ZS5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIEZldGNoIHNlbmRzIENh
Y2hlLUNvbnRyb2w6IG1heC1hZ2U9MCB3aGVuIGNhY2hlIG1vZGUgaXMgbm8tY2FjaGUKK1BBU1Mg
RmV0Y2ggZG9lc24ndCB0b3VjaCBDYWNoZS1Db250cm9sIHdoZW4gY2FjaGUgbW9kZSBpcyBuby1j
YWNoZSBhbmQgQ2FjaGUtQ29udHJvbCBpcyBhbHJlYWR5IHByZXNlbnQKK1BBU1MgRmV0Y2ggc2Vu
ZHMgQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUgYW5kIFByYWdtYTogbm8tY2FjaGUgd2hlbiBjYWNo
ZSBtb2RlIGlzIG5vLXN0b3JlCitQQVNTIEZldGNoIGRvZXNuJ3QgdG91Y2ggQ2FjaGUtQ29udHJv
bCB3aGVuIGNhY2hlIG1vZGUgaXMgbm8tc3RvcmUgYW5kIENhY2hlLUNvbnRyb2wgaXMgYWxyZWFk
eSBwcmVzZW50CitQQVNTIEZldGNoIGRvZXNuJ3QgdG91Y2ggUHJhZ21hIHdoZW4gY2FjaGUgbW9k
ZSBpcyBuby1zdG9yZSBhbmQgUHJhZ21hIGlzIGFscmVhZHkgcHJlc2VudAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAt
Y2FjaGUvY2FjaGUtbW9kZS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYWNoZS1tb2RlLmFueS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRo
aXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVu
IHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnkuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGY0MDZkNWE2YTUwMDM0NmZlYmRjNWNkNWFjNDBmZjYxM2Q1MTQ3NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9jYWNoZS1tb2RlLmFueS5qcwpAQCAtMCwwICsxLDYxIEBACisvLyBN
RVRBOiBnbG9iYWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogdGl0bGU9RmV0Y2ggLSBDYWNoZSBN
b2RlCisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxz
LmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVU
QTogc2NyaXB0PWh0dHAtY2FjaGUuanMKKwordmFyIHRlc3RzID0gWworICB7CisgICAgbmFtZTog
IkZldGNoIHNlbmRzIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCB3aGVuIGNhY2hlIG1vZGUgaXMg
bm8tY2FjaGUiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIGNhY2hlOiAibm8t
Y2FjaGUiLAorICAgICAgICBleHBlY3RlZF9yZXF1ZXN0X2hlYWRlcnM6IFtbJ2NhY2hlLWNvbnRy
b2wnLCAnbWF4LWFnZT0wJ11dCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTog
IkZldGNoIGRvZXNuJ3QgdG91Y2ggQ2FjaGUtQ29udHJvbCB3aGVuIGNhY2hlIG1vZGUgaXMgbm8t
Y2FjaGUgYW5kIENhY2hlLUNvbnRyb2wgaXMgYWxyZWFkeSBwcmVzZW50IiwKKyAgICByZXF1ZXN0
czogWworICAgICAgeworICAgICAgICBjYWNoZTogIm5vLWNhY2hlIiwKKyAgICAgICAgcmVxdWVz
dF9oZWFkZXJzOiBbWydjYWNoZS1jb250cm9sJywgJ2ZvbyddXSwKKyAgICAgICAgZXhwZWN0ZWRf
cmVxdWVzdF9oZWFkZXJzOiBbWydjYWNoZS1jb250cm9sJywgJ2ZvbyddXQorICAgICAgfQorICAg
IF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJGZXRjaCBzZW5kcyBDYWNoZS1Db250cm9sOiBuby1j
YWNoZSBhbmQgUHJhZ21hOiBuby1jYWNoZSB3aGVuIGNhY2hlIG1vZGUgaXMgbm8tc3RvcmUiLAor
ICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIGNhY2hlOiAibm8tc3RvcmUiLAorICAg
ICAgICBleHBlY3RlZF9yZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbJ2NhY2hlLWNvbnRy
b2wnLCAnbm8tY2FjaGUnXSwKKyAgICAgICAgICBbJ3ByYWdtYScsICduby1jYWNoZSddCisgICAg
ICAgIF0KKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiRmV0Y2ggZG9lc24n
dCB0b3VjaCBDYWNoZS1Db250cm9sIHdoZW4gY2FjaGUgbW9kZSBpcyBuby1zdG9yZSBhbmQgQ2Fj
aGUtQ29udHJvbCBpcyBhbHJlYWR5IHByZXNlbnQiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7
CisgICAgICAgIGNhY2hlOiAibm8tc3RvcmUiLAorICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFtb
J2NhY2hlLWNvbnRyb2wnLCAnZm9vJ11dLAorICAgICAgICBleHBlY3RlZF9yZXF1ZXN0X2hlYWRl
cnM6IFtbJ2NhY2hlLWNvbnRyb2wnLCAnZm9vJ11dCisgICAgICB9CisgICAgXQorICB9LAorICB7
CisgICAgbmFtZTogIkZldGNoIGRvZXNuJ3QgdG91Y2ggUHJhZ21hIHdoZW4gY2FjaGUgbW9kZSBp
cyBuby1zdG9yZSBhbmQgUHJhZ21hIGlzIGFscmVhZHkgcHJlc2VudCIsCisgICAgcmVxdWVzdHM6
IFsKKyAgICAgIHsKKyAgICAgICAgY2FjaGU6ICJuby1zdG9yZSIsCisgICAgICAgIHJlcXVlc3Rf
aGVhZGVyczogW1sncHJhZ21hJywgJ2ZvbyddXSwKKyAgICAgICAgZXhwZWN0ZWRfcmVxdWVzdF9o
ZWFkZXJzOiBbWydwcmFnbWEnLCAnZm9vJ11dCisgICAgICB9CisgICAgXQorICB9CitdOworcnVu
X3Rlc3RzKHRlc3RzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYWNoZS1tb2RlLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlL2NhY2hlLW1vZGUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGNiYzVkYTg1ZGU2YjM4OTg1NDQwZDcyNDg0NWMyMzgxMWZiZTRjNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvaHR0cC1jYWNoZS9jYWNoZS1tb2RlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorCitQQVNTIEZldGNoIHNlbmRzIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCB3aGVu
IGNhY2hlIG1vZGUgaXMgbm8tY2FjaGUKK1BBU1MgRmV0Y2ggZG9lc24ndCB0b3VjaCBDYWNoZS1D
b250cm9sIHdoZW4gY2FjaGUgbW9kZSBpcyBuby1jYWNoZSBhbmQgQ2FjaGUtQ29udHJvbCBpcyBh
bHJlYWR5IHByZXNlbnQKK1BBU1MgRmV0Y2ggc2VuZHMgQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUg
YW5kIFByYWdtYTogbm8tY2FjaGUgd2hlbiBjYWNoZSBtb2RlIGlzIG5vLXN0b3JlCitQQVNTIEZl
dGNoIGRvZXNuJ3QgdG91Y2ggQ2FjaGUtQ29udHJvbCB3aGVuIGNhY2hlIG1vZGUgaXMgbm8tc3Rv
cmUgYW5kIENhY2hlLUNvbnRyb2wgaXMgYWxyZWFkeSBwcmVzZW50CitQQVNTIEZldGNoIGRvZXNu
J3QgdG91Y2ggUHJhZ21hIHdoZW4gY2FjaGUgbW9kZSBpcyBuby1zdG9yZSBhbmQgUHJhZ21hIGlz
IGFscmVhZHkgcHJlc2VudAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnkud29ya2Vy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvY2FjaGUtbW9kZS5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4Mjkx
MzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNo
ZS9jYWNoZS1tb2RlLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAt
Y2FjaGUvY2MtcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2MtcmVxdWVzdC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlMzQ2NjljZGRjZjIxOWU4MjM1NjJm
MDM3ZGYxYTQ2NjU3MWI2ZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9odHRwLWNhY2hlL2NjLXJlcXVlc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTQgKzAsMCBAQAotCi1QQVNTIEhUVFAgY2FjaGUgZG9lc24ndCB1c2UgYWdlZCBidXQgZnJlc2gg
cmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MAot
RkFJTCBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIGFnZWQgYnV0IGZyZXNoIHJlc3BvbnNlIHdoZW4g
cmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBtYXgtYWdlPTEgYXNzZXJ0X2VxdWFsczog
UmVzcG9uc2UgMiBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1GQUlMIEhU
VFAgY2FjaGUgZG9lc24ndCB1c2UgZnJlc2ggcmVzcG9uc2Ugd2l0aCBBZ2UgaGVhZGVyIHdoZW4g
cmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBtYXgtYWdlIHRoYXQgaXMgZ3JlYXRlciB0
aGFuIHJlbWFpbmluZyBmcmVzaG5lc3MgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMiBjb21lcyBm
cm9tIGNhY2hlIGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1QQVNTIEhUVFAgY2FjaGUgZG9lcyB1c2Ug
YWdlZCBzdGFsZSByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDog
bWF4LXN0YWxlIHRoYXQgcGVybWl0cyBpdHMgdXNlCi1QQVNTIEhUVFAgY2FjaGUgZG9lcyByZXVz
ZSBzdGFsZSByZXNwb25zZSB3aXRoIEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENh
Y2hlLUNvbnRyb2w6IG1heC1zdGFsZSB0aGF0IHBlcm1pdHMgaXRzIHVzZQotRkFJTCBIVFRQIGNh
Y2hlIGRvZXNuJ3QgcmV1c2UgZnJlc2ggcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENh
Y2hlLUNvbnRyb2w6IG1pbi1mcmVzaCB0aGF0IHdhbnRzIGl0IGZyZXNoZXIgYXNzZXJ0X2VxdWFs
czogUmVzcG9uc2UgMiBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDIgYnV0IGdvdCAxCi1GQUlM
IEhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3aXRoIEFnZSBoZWFkZXIg
d2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1pbi1mcmVzaCB0aGF0IHdhbnRz
IGl0IGZyZXNoZXIgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMiBjb21lcyBmcm9tIGNhY2hlIGV4
cGVjdGVkIDIgYnV0IGdvdCAxCi1QQVNTIEhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCBy
ZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUKLVBB
U1MgSFRUUCBjYWNoZSB2YWxpZGF0ZXMgZnJlc2ggcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVk
IHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBuby1jYWNoZQotUEFTUyBIVFRQ
IGNhY2hlIHZhbGlkYXRlcyBmcmVzaCByZXNwb25zZSB3aXRoIEVUYWcgd2hlbiByZXF1ZXN0IGNv
bnRhaW5zIENhY2hlLUNvbnRyb2w6IG5vLWNhY2hlCi1GQUlMIEhUVFAgY2FjaGUgZG9lc24ndCBy
ZXVzZSBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDog
bm8tc3RvcmUgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMiBjb21lcyBmcm9tIGNhY2hlIGV4cGVj
dGVkIDIgYnV0IGdvdCAxCi1GQUlMIEhUVFAgY2FjaGUgZ2VuZXJhdGVzIDUwNCBzdGF0dXMgY29k
ZSB3aGVuIG5vdGhpbmcgaXMgaW4gY2FjaGUgYW5kIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29u
dHJvbDogb25seS1pZi1jYWNoZWQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBjYW7igJl0IGxvYWQgZnJvbSBuZXR3b3JrIgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2h0dHAtY2FjaGUvY2MtcmVxdWVzdC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJl
cXVlc3QuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTM0NjY5Y2RkY2YyMTllODIzNTYy
ZjAzN2RmMWE0NjY1NzFiNmQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJlcXVlc3QuYW55
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0
IHVzZSBhZ2VkIGJ1dCBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUt
Q29udHJvbDogbWF4LWFnZT0wCitGQUlMIEhUVFAgY2FjaGUgZG9lc24ndCB1c2UgYWdlZCBidXQg
ZnJlc2ggcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1h
Z2U9MSBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQg
MiBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBmcmVzaCByZXNwb25zZSB3
aXRoIEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1h
Z2UgdGhhdCBpcyBncmVhdGVyIHRoYW4gcmVtYWluaW5nIGZyZXNobmVzcyBhc3NlcnRfZXF1YWxz
OiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK1BBU1Mg
SFRUUCBjYWNoZSBkb2VzIHVzZSBhZ2VkIHN0YWxlIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250
YWlucyBDYWNoZS1Db250cm9sOiBtYXgtc3RhbGUgdGhhdCBwZXJtaXRzIGl0cyB1c2UKK1BBU1Mg
SFRUUCBjYWNoZSBkb2VzIHJldXNlIHN0YWxlIHJlc3BvbnNlIHdpdGggQWdlIGhlYWRlciB3aGVu
IHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWF4LXN0YWxlIHRoYXQgcGVybWl0cyBp
dHMgdXNlCitGQUlMIEhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3aGVu
IHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWluLWZyZXNoIHRoYXQgd2FudHMgaXQg
ZnJlc2hlciBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0
ZWQgMiBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBkb2Vzbid0IHJldXNlIGZyZXNoIHJlc3Bv
bnNlIHdpdGggQWdlIGhlYWRlciB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDog
bWluLWZyZXNoIHRoYXQgd2FudHMgaXQgZnJlc2hlciBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAy
IGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK1BBU1MgSFRUUCBjYWNoZSBk
b2Vzbid0IHJldXNlIGZyZXNoIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1D
b250cm9sOiBuby1jYWNoZQorUEFTUyBIVFRQIGNhY2hlIHZhbGlkYXRlcyBmcmVzaCByZXNwb25z
ZSB3aXRoIExhc3QtTW9kaWZpZWQgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6
IG5vLWNhY2hlCitQQVNTIEhUVFAgY2FjaGUgdmFsaWRhdGVzIGZyZXNoIHJlc3BvbnNlIHdpdGgg
RVRhZyB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUKK0ZBSUwg
SFRUUCBjYWNoZSBkb2Vzbid0IHJldXNlIGZyZXNoIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250
YWlucyBDYWNoZS1Db250cm9sOiBuby1zdG9yZSBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNv
bWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBnZW5l
cmF0ZXMgNTA0IHN0YXR1cyBjb2RlIHdoZW4gbm90aGluZyBpcyBpbiBjYWNoZSBhbmQgcmVxdWVz
dCBjb250YWlucyBDYWNoZS1Db250cm9sOiBvbmx5LWlmLWNhY2hlZCBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGNhbuKAmXQg
bG9hZCBmcm9tIG5ldHdvcmsiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0LmFueS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL2NjLXJlcXVlc3QuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1
ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0
LmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBX
ZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0LmFu
eS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
aHR0cC1jYWNoZS9jYy1yZXF1ZXN0LmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTU2NTY2ODQxNDRmODk3
MThjYWQxOWQ5YmY1Y2U3ZmM2ODI2OGE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJlcXVl
c3QuYW55LmpzCkBAIC0wLDAgKzEsMjAyIEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdvcmtl
cgorLy8gTUVUQTogdGl0bGU9SFRUUCBDYWNoZSAtIENhY2hlLUNvbnRyb2wgUmVxdWVzdCBEaXJl
Y3RpdmVzCisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0
aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8g
TUVUQTogc2NyaXB0PWh0dHAtY2FjaGUuanMKKwordmFyIHRlc3RzID0gWworICB7CisgICAgbmFt
ZTogIkhUVFAgY2FjaGUgZG9lc24ndCB1c2UgYWdlZCBidXQgZnJlc2ggcmVzcG9uc2Ugd2hlbiBy
ZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCIsCisgICAgcmVxdWVzdHM6
IFsKKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU6ICJmcmVzaCIsCisgICAgICAgIHBhdXNlX2Fm
dGVyOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsK
KyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0wIl0KKyAgICAgICAgXSwKKyAg
ICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAor
ICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCB1c2UgYWdlZCBidXQgZnJlc2ggcmVz
cG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MSIsCisg
ICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU6ICJmcmVzaCIsCisgICAg
ICAgIHBhdXNlX2FmdGVyOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXF1ZXN0
X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0xIl0KKyAg
ICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9Cisg
ICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCB1c2UgZnJlc2gg
cmVzcG9uc2Ugd2l0aCBBZ2UgaGVhZGVyIHdoZW4gcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250
cm9sOiBtYXgtYWdlIHRoYXQgaXMgZ3JlYXRlciB0aGFuIHJlbWFpbmluZyBmcmVzaG5lc3MiLAor
ICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAg
ICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCisgICAgICAgICAgWyJB
Z2UiLCAiMTgwMCJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVl
c3RfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTYwMCJd
CisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAg
fQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXMgdXNlIGFnZWQg
c3RhbGUgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1heC1z
dGFsZSB0aGF0IHBlcm1pdHMgaXRzIHVzZSIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAg
ICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJt
YXgtYWdlPTEiXQorICAgICAgICBdLAorICAgICAgICBwYXVzZV9hZnRlcjogdHJ1ZQorICAgICAg
fSwKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNo
ZS1Db250cm9sIiwgIm1heC1zdGFsZT0xMDAwIl0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0
ZWRfdHlwZTogImNhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAi
SFRUUCBjYWNoZSBkb2VzIHJldXNlIHN0YWxlIHJlc3BvbnNlIHdpdGggQWdlIGhlYWRlciB3aGVu
IHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWF4LXN0YWxlIHRoYXQgcGVybWl0cyBp
dHMgdXNlIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFk
ZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MTUwMCJdLAorICAg
ICAgICAgIFsiQWdlIiwgIjIwMDAiXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAg
ICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4
LXN0YWxlPTEwMDAiXQorICAgICAgICBdLAorICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVk
IgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXNu
J3QgcmV1c2UgZnJlc2ggcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRy
b2w6IG1pbi1mcmVzaCB0aGF0IHdhbnRzIGl0IGZyZXNoZXIiLAorICAgIHJlcXVlc3RzOiBbCisg
ICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNv
bnRyb2wiLCAibWF4LWFnZT0xNTAwIl0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAg
ICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1p
bi1mcmVzaD0yMDAwIl0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9j
YWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUg
ZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3aXRoIEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0
IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG1pbi1mcmVzaCB0aGF0IHdhbnRzIGl0IGZyZXNoZXIi
LAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsK
KyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0xNTAwIl0sCisgICAgICAgICAg
WyJBZ2UiLCAiMTAwMCJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJl
cXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtaW4tZnJlc2g9
MTAwMCJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgor
ICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXNuJ3Qg
cmV1c2UgZnJlc2ggcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6
IG5vLWNhY2hlIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9o
ZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdCisg
ICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwor
ICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSJdCisgICAgICAgIF0sCisgICAg
ICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAg
eworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHZhbGlkYXRlcyBmcmVzaCByZXNwb25zZSB3aXRoIExh
c3QtTW9kaWZpZWQgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG5vLWNhY2hl
IiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBb
CisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAorICAgICAgICAg
IFsiTGFzdC1Nb2RpZmllZCIsIC0xMDAwMF0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsK
KyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwg
Im5vLWNhY2hlIl0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImxtX3ZhbGlk
YXRlIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHZh
bGlkYXRlcyBmcmVzaCByZXNwb25zZSB3aXRoIEVUYWcgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENh
Y2hlLUNvbnRyb2w6IG5vLWNhY2hlIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAg
ICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1h
Z2U9MzYwMCJdLAorICAgICAgICAgIFsiRVRhZyIsIGh0dHBfY29udGVudCgiYWJjIildCisgICAg
ICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAg
ICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSJdCisgICAgICAgIF0sCisgICAgICAg
IGV4cGVjdGVkX3R5cGU6ICJldGFnX3ZhbGlkYXRlIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAg
eworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXNuJ3QgcmV1c2UgZnJlc2ggcmVzcG9uc2Ugd2hl
biByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG5vLXN0b3JlIiwKKyAgICByZXF1ZXN0
czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJD
YWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAg
ICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29udHJv
bCIsICJuby1zdG9yZSJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3Rf
Y2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hl
IGdlbmVyYXRlcyA1MDQgc3RhdHVzIGNvZGUgd2hlbiBub3RoaW5nIGlzIGluIGNhY2hlIGFuZCBy
ZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRyb2w6IG9ubHktaWYtY2FjaGVkIiwKKyAgICByZXF1
ZXN0czogWworICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBb
IkNhY2hlLUNvbnRyb2wiLCAib25seS1pZi1jYWNoZWQiXQorICAgICAgICBdLAorICAgICAgICBl
eHBlY3RlZF9zdGF0dXM6IDUwNCwKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogbnVs
bAorICAgICAgfQorICAgIF0KKyAgfQorXTsKK3J1bl90ZXN0cyh0ZXN0cyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAt
Y2FjaGUvY2MtcmVxdWVzdC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlMzQ2NjljZGRjZjIxOWU4MjM1
NjJmMDM3ZGYxYTQ2NjU3MWI2ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2MtcmVxdWVzdC5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKK1BBU1MgSFRUUCBjYWNo
ZSBkb2Vzbid0IHVzZSBhZ2VkIGJ1dCBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFp
bnMgQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0wCitGQUlMIEhUVFAgY2FjaGUgZG9lc24ndCB1c2Ug
YWdlZCBidXQgZnJlc2ggcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRy
b2w6IG1heC1hZ2U9MSBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUg
ZXhwZWN0ZWQgMiBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBmcmVzaCBy
ZXNwb25zZSB3aXRoIEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNvbnRy
b2w6IG1heC1hZ2UgdGhhdCBpcyBncmVhdGVyIHRoYW4gcmVtYWluaW5nIGZyZXNobmVzcyBhc3Nl
cnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290
IDEKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIHVzZSBhZ2VkIHN0YWxlIHJlc3BvbnNlIHdoZW4gcmVx
dWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBtYXgtc3RhbGUgdGhhdCBwZXJtaXRzIGl0cyB1
c2UKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIHJldXNlIHN0YWxlIHJlc3BvbnNlIHdpdGggQWdlIGhl
YWRlciB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWF4LXN0YWxlIHRoYXQg
cGVybWl0cyBpdHMgdXNlCitGQUlMIEhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBmcmVzaCByZXNw
b25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWluLWZyZXNoIHRoYXQg
d2FudHMgaXQgZnJlc2hlciBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAyIGNvbWVzIGZyb20gY2Fj
aGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBkb2Vzbid0IHJldXNlIGZy
ZXNoIHJlc3BvbnNlIHdpdGggQWdlIGhlYWRlciB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUt
Q29udHJvbDogbWluLWZyZXNoIHRoYXQgd2FudHMgaXQgZnJlc2hlciBhc3NlcnRfZXF1YWxzOiBS
ZXNwb25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK1BBU1MgSFRU
UCBjYWNoZSBkb2Vzbid0IHJldXNlIGZyZXNoIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlu
cyBDYWNoZS1Db250cm9sOiBuby1jYWNoZQorUEFTUyBIVFRQIGNhY2hlIHZhbGlkYXRlcyBmcmVz
aCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hl
LUNvbnRyb2w6IG5vLWNhY2hlCitQQVNTIEhUVFAgY2FjaGUgdmFsaWRhdGVzIGZyZXNoIHJlc3Bv
bnNlIHdpdGggRVRhZyB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbm8tY2Fj
aGUKK0ZBSUwgSFRUUCBjYWNoZSBkb2Vzbid0IHJldXNlIGZyZXNoIHJlc3BvbnNlIHdoZW4gcmVx
dWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBuby1zdG9yZSBhc3NlcnRfZXF1YWxzOiBSZXNw
b25zZSAyIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMiBidXQgZ290IDEKK0ZBSUwgSFRUUCBj
YWNoZSBnZW5lcmF0ZXMgNTA0IHN0YXR1cyBjb2RlIHdoZW4gbm90aGluZyBpcyBpbiBjYWNoZSBh
bmQgcmVxdWVzdCBjb250YWlucyBDYWNoZS1Db250cm9sOiBvbmx5LWlmLWNhY2hlZCBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IGNhbuKAmXQgbG9hZCBmcm9tIG5ldHdvcmsiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0
LmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0LmFueS53b3JrZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9odHRwLWNhY2hlL2NjLXJlcXVlc3QuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwh
LS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0
byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9jYy1yZXF1ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2MtcmVxdWVzdC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzMyNjgzZDdkZTFjYjkxNGU2ODdlMjViOTAy
YTM0ZTVlNDYyYzBjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0
cC1jYWNoZS9jYy1yZXF1ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTMgKzAsMCBAQAot
PCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotICAgIDx0aXRsZT5IVFRQIENhY2hlIC0gQ2FjaGUtQ29udHJvbCBSZXF1ZXN0IERpcmVj
dGl2ZXM8L3RpdGxlPgotICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2gu
c3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KLSAgICA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250
ZW50PSJsb25nIj4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9Imh0dHAtY2FjaGUuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+
Ci0gIDxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgdmFyIHRlc3RzID0gWwotICAgICAgewotICAg
ICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBhZ2VkIGJ1dCBmcmVzaCByZXNwb25z
ZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0wIiwKLSAgICAg
ICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImZyZXNo
IiwKLSAgICAgICAgICAgIHBhdXNlX2FmdGVyOiB0cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAg
ICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNo
ZS1Db250cm9sIiwgIm1heC1hZ2U9MCJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhw
ZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9
LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBhZ2VkIGJ1
dCBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWF4
LWFnZT0xIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICB0
ZW1wbGF0ZTogImZyZXNoIiwKLSAgICAgICAgICAgIHBhdXNlX2FmdGVyOiB0cnVlCi0gICAgICAg
ICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAg
ICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MSJdCi0gICAgICAgICAgICBdLAot
ICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAg
ICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vz
bid0IHVzZSBmcmVzaCByZXNwb25zZSB3aXRoIEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0IGNvbnRh
aW5zIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UgdGhhdCBpcyBncmVhdGVyIHRoYW4gcmVtYWluaW5n
IGZyZXNobmVzcyIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAg
ICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAi
bWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAgICAgIFsiQWdlIiwgIjE4MDAiXQotICAgICAgICAg
ICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFk
ZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTYwMCJdCi0g
ICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0g
ICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAi
SFRUUCBjYWNoZSBkb2VzIHVzZSBhZ2VkIHN0YWxlIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250
YWlucyBDYWNoZS1Db250cm9sOiBtYXgtc3RhbGUgdGhhdCBwZXJtaXRzIGl0cyB1c2UiLAotICAg
ICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRl
cnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MSJdCi0gICAg
ICAgICAgICBdLAotICAgICAgICAgICAgcGF1c2VfYWZ0ZXI6IHRydWUKLSAgICAgICAgICB9LAot
ICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAg
ICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LXN0YWxlPTEwMDAiXQotICAgICAgICAgICAgXSwKLSAg
ICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBd
Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIHJldXNl
IHN0YWxlIHJlc3BvbnNlIHdpdGggQWdlIGhlYWRlciB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2Fj
aGUtQ29udHJvbDogbWF4LXN0YWxlIHRoYXQgcGVybWl0cyBpdHMgdXNlIiwKLSAgICAgICAgcmVx
dWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0g
ICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTE1MDAiXSwKLSAgICAgICAg
ICAgICAgWyJBZ2UiLCAiMjAwMCJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJD
YWNoZS1Db250cm9sIiwgIm1heC1zdGFsZT0xMDAwIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAg
ICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCByZXVzZSBm
cmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbWluLWZy
ZXNoIHRoYXQgd2FudHMgaXQgZnJlc2hlciIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAg
ICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNh
Y2hlLUNvbnRyb2wiLCAibWF4LWFnZT0xNTAwIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9
LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAg
ICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWluLWZyZXNoPTIwMDAiXQotICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAg
ICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9l
c24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3aXRoIEFnZSBoZWFkZXIgd2hlbiByZXF1ZXN0IGNv
bnRhaW5zIENhY2hlLUNvbnRyb2w6IG1pbi1mcmVzaCB0aGF0IHdhbnRzIGl0IGZyZXNoZXIiLAot
ICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hl
YWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MTUwMCJd
LAotICAgICAgICAgICAgICBbIkFnZSIsICIxMDAwIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAg
ICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAg
ICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWluLWZyZXNoPTEwMDAiXQotICAgICAgICAgICAg
XSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0K
LSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUg
ZG9lc24ndCByZXVzZSBmcmVzaCByZXNwb25zZSB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUt
Q29udHJvbDogbm8tY2FjaGUiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250
cm9sIiwgIm1heC1hZ2U9MzYwMCJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJD
YWNoZS1Db250cm9sIiwgIm5vLWNhY2hlIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBl
eHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAg
IH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHZhbGlkYXRlcyBmcmVzaCBy
ZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgd2hlbiByZXF1ZXN0IGNvbnRhaW5zIENhY2hlLUNv
bnRyb2w6IG5vLWNhY2hlIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJv
bCIsICJtYXgtYWdlPTM2MDAiXSwKLSAgICAgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTEw
MDAwXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAg
ICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJu
by1jYWNoZSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImxt
X3ZhbGlkYXRlIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAg
ICAgICAgbmFtZTogIkhUVFAgY2FjaGUgdmFsaWRhdGVzIGZyZXNoIHJlc3BvbnNlIHdpdGggRVRh
ZyB3aGVuIHJlcXVlc3QgY29udGFpbnMgQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUiLAotICAgICAg
ICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6
IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAotICAg
ICAgICAgICAgICBbIkVUYWciLCBodHRwX2NvbnRlbnQoImFiYyIpXQotICAgICAgICAgICAgXQot
ICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBb
Ci0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSJdCi0gICAgICAgICAg
ICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImV0YWdfdmFsaWRhdGUiCi0gICAgICAg
ICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBj
YWNoZSBkb2Vzbid0IHJldXNlIGZyZXNoIHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBjb250YWlucyBD
YWNoZS1Db250cm9sOiBuby1zdG9yZSIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAg
ewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hl
LUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAot
ICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAg
ICBbIkNhY2hlLUNvbnRyb2wiLCAibm8tc3RvcmUiXQotICAgICAgICAgICAgXSwKLSAgICAgICAg
ICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQot
ICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZ2VuZXJhdGVzIDUw
NCBzdGF0dXMgY29kZSB3aGVuIG5vdGhpbmcgaXMgaW4gY2FjaGUgYW5kIHJlcXVlc3QgY29udGFp
bnMgQ2FjaGUtQ29udHJvbDogb25seS1pZi1jYWNoZWQiLAotICAgICAgICByZXF1ZXN0czogWwot
ICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAg
ICBbIkNhY2hlLUNvbnRyb2wiLCAib25seS1pZi1jYWNoZWQiXQotICAgICAgICAgICAgXSwKLSAg
ICAgICAgICAgIGV4cGVjdGVkX3N0YXR1czogNTA0LAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVz
cG9uc2VfdGV4dDogbnVsbAotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF07
Ci0gICAgcnVuX3Rlc3RzKHRlc3RzKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZjZGIxMmFjMjQ1
MGZjMmFhMmE3NDA4YWExYmQwMjU0MWY3Y2EyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDE3ICswLDAgQEAKLQotUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3BvbnNl
IHdpdGggYSBmdXR1cmUgRXhwaXJlcwotUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEg
cmVzcG9uc2Ugd2l0aCBhIHBhc3QgRXhwaXJlcwotUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHJl
dXNlIGEgcmVzcG9uc2Ugd2l0aCBhIHByZXNlbnQgRXhwaXJlcwotUEFTUyBIVFRQIGNhY2hlIGRv
ZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBhbiBpbnZhbGlkIEV4cGlyZXMKLVBBU1MgSFRU
UCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3aXRoIHBvc2l0aXZlIENhY2hlLUNvbnRyb2w6IG1h
eC1hZ2UKLVBBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggQ2Fj
aGUtQ29udHJvbDogbWF4LWFnZT0wCi1QQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgcmVzcG9uc2Ug
d2l0aCBwb3NpdGl2ZSBDYWNoZS1Db250cm9sOiBtYXgtYWdlIGFuZCBhIHBhc3QgRXhwaXJlcwot
UEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3BvbnNlIHdpdGggcG9zaXRpdmUgQ2FjaGUtQ29u
dHJvbDogbWF4LWFnZSBhbmQgYW4gaW52YWxpZCBFeHBpcmVzCi1QQVNTIEhUVFAgY2FjaGUgZG9l
cyBub3QgcmV1c2UgYSByZXNwb25zZSB3aXRoIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCBhbmQg
YSBmdXR1cmUgRXhwaXJlcwotUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHByZWZlciBDYWNoZS1D
b250cm9sOiBzLW1heGFnZSBvdmVyIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UKLVBBU1MgSFRUUCBj
YWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdoZW4gdGhlIEFnZSBoZWFkZXIgaXMgZ3Jl
YXRlciB0aGFuIGl0cyBmcmVzaG5lc3MgbGlmZXRpbWUKLVBBU1MgSFRUUCBjYWNoZSBkb2VzIG5v
dCBzdG9yZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUKLVBBU1MgSFRU
UCBjYWNoZSBkb2VzIG5vdCBzdG9yZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbm8t
c3RvcmUsIGV2ZW4gd2l0aCBtYXgtYWdlIGFuZCBFeHBpcmVzCi1QQVNTIEhUVFAgY2FjaGUgc3Rv
cmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBuby1jYWNoZSwgYnV0IHJldmFsaWRh
dGVzIHVwb24gdXNlCi1QQVNTIEhUVFAgY2FjaGUgc3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNo
ZS1Db250cm9sOiBuby1jYWNoZSwgYnV0IHJldmFsaWRhdGVzIHVwb24gdXNlLCBldmVuIHdpdGgg
bWF4LWFnZSBhbmQgRXhwaXJlcwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLmFueS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Zj
ZGIxMmFjMjQ1MGZjMmFhMmE3NDA4YWExYmQwMjU0MWY3Y2EyMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1j
YWNoZS9mcmVzaG5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACisKK1BBU1Mg
SFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3aXRoIGEgZnV0dXJlIEV4cGlyZXMKK1BBU1Mg
SFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggYSBwYXN0IEV4cGlyZXMK
K1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggYSBwcmVzZW50
IEV4cGlyZXMKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGgg
YW4gaW52YWxpZCBFeHBpcmVzCitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgcmVzcG9uc2Ugd2l0
aCBwb3NpdGl2ZSBDYWNoZS1Db250cm9sOiBtYXgtYWdlCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBu
b3QgcmV1c2UgYSByZXNwb25zZSB3aXRoIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MAorUEFTUyBI
VFRQIGNhY2hlIHJldXNlcyBhIHJlc3BvbnNlIHdpdGggcG9zaXRpdmUgQ2FjaGUtQ29udHJvbDog
bWF4LWFnZSBhbmQgYSBwYXN0IEV4cGlyZXMKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSByZXNw
b25zZSB3aXRoIHBvc2l0aXZlIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UgYW5kIGFuIGludmFsaWQg
RXhwaXJlcworUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBD
YWNoZS1Db250cm9sOiBtYXgtYWdlPTAgYW5kIGEgZnV0dXJlIEV4cGlyZXMKK1BBU1MgSFRUUCBj
YWNoZSBkb2VzIG5vdCBwcmVmZXIgQ2FjaGUtQ29udHJvbDogcy1tYXhhZ2Ugb3ZlciBDYWNoZS1D
b250cm9sOiBtYXgtYWdlCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2UgYSByZXNwb25z
ZSB3aGVuIHRoZSBBZ2UgaGVhZGVyIGlzIGdyZWF0ZXIgdGhhbiBpdHMgZnJlc2huZXNzIGxpZmV0
aW1lCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3Qgc3RvcmUgYSByZXNwb25zZSB3aXRoIENhY2hl
LUNvbnRyb2w6IG5vLXN0b3JlCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3Qgc3RvcmUgYSByZXNw
b25zZSB3aXRoIENhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBldmVuIHdpdGggbWF4LWFnZSBhbmQg
RXhwaXJlcworUEFTUyBIVFRQIGNhY2hlIHN0b3JlcyBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29u
dHJvbDogbm8tY2FjaGUsIGJ1dCByZXZhbGlkYXRlcyB1cG9uIHVzZQorUEFTUyBIVFRQIGNhY2hl
IHN0b3JlcyBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIGJ1dCByZXZh
bGlkYXRlcyB1cG9uIHVzZSwgZXZlbiB3aXRoIG1heC1hZ2UgYW5kIEV4cGlyZXMKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
dHRwLWNhY2hlL2ZyZXNobmVzcy5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9mcmVzaG5lc3MuYW55Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9mcmVzaG5lc3MuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1
biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9odHRwLWNhY2hlL2ZyZXNobmVzcy5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLmFueS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42Yjk3YzgyNDRmNjQ3YzlkY2JiOTVjY2QyYTllMDY3OTZlNzA0NDRhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVzcy5hbnkuanMKQEAgLTAsMCArMSwyMTUgQEAKKy8vIE1F
VEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1IVFRQIENhY2hlIC0gRnJl
c2huZXNzCisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0
aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8g
TUVUQTogc2NyaXB0PWh0dHAtY2FjaGUuanMKKwordmFyIHRlc3RzID0gWworICAvLyByZXNwb25z
ZSBkaXJlY3RpdmVzCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25z
ZSB3aXRoIGEgZnV0dXJlIEV4cGlyZXMiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAg
ICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCAoMzAgKiAyNCAq
IDYwICogNjApXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICBleHBlY3Rl
ZF90eXBlOiAiY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJI
VFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBhIHBhc3QgRXhwaXJlcyIs
CisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwor
ICAgICAgICAgIFsiRXhwaXJlcyIsICgtMzAgKiAyNCAqIDYwICogNjApXQorICAgICAgICBdCisg
ICAgICB9LAorICAgICAgeworICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKKyAg
ICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5vdCBy
ZXVzZSBhIHJlc3BvbnNlIHdpdGggYSBwcmVzZW50IEV4cGlyZXMiLAorICAgIHJlcXVlc3RzOiBb
CisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGly
ZXMiLCAwXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICBleHBlY3RlZF90
eXBlOiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAi
SFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggYW4gaW52YWxpZCBFeHBp
cmVzIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJz
OiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwgIjAiXQorICAgICAgICBdCisgICAgICB9LAorICAg
ICAgeworICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBd
CisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3aXRo
IHBvc2l0aXZlIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UiLAorICAgIHJlcXVlc3RzOiBbCisgICAg
ICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRy
b2wiLCAibWF4LWFnZT0zNjAwIl0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAg
ICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAg
ICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUt
Q29udHJvbDogbWF4LWFnZT0wIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICBy
ZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9
MCJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6
ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQ
IGNhY2hlIHJldXNlcyBhIHJlc3BvbnNlIHdpdGggcG9zaXRpdmUgQ2FjaGUtQ29udHJvbDogbWF4
LWFnZSBhbmQgYSBwYXN0IEV4cGlyZXMiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAg
ICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4
LWFnZT0zNjAwIl0sCisgICAgICAgICAgWyJFeHBpcmVzIiwgLTEwMDAwXQorICAgICAgICBdCisg
ICAgICB9LAorICAgICAgeworICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgorICAgICAg
fQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3Bv
bnNlIHdpdGggcG9zaXRpdmUgQ2FjaGUtQ29udHJvbDogbWF4LWFnZSBhbmQgYW4gaW52YWxpZCBF
eHBpcmVzIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFk
ZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAorICAg
ICAgICAgIFsiRXhwaXJlcyIsICIwIl0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAg
ICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsK
KyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggQ2Fj
aGUtQ29udHJvbDogbWF4LWFnZT0wIGFuZCBhIGZ1dHVyZSBFeHBpcmVzIiwKKyAgICByZXF1ZXN0
czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJD
YWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MCJdLAorICAgICAgICAgIFsiRXhwaXJlcyIsIDEwMDAw
XQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICBleHBlY3RlZF90eXBlOiAi
bm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBj
YWNoZSBkb2VzIG5vdCBwcmVmZXIgQ2FjaGUtQ29udHJvbDogcy1tYXhhZ2Ugb3ZlciBDYWNoZS1D
b250cm9sOiBtYXgtYWdlIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXNw
b25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MSwg
cy1tYXhhZ2U9MzYwMCJdCisgICAgICAgIF0sCisgICAgICAgIHBhdXNlX2FmdGVyOiB0cnVlLAor
ICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisg
ICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lcyBub3Qg
cmV1c2UgYSByZXNwb25zZSB3aGVuIHRoZSBBZ2UgaGVhZGVyIGlzIGdyZWF0ZXIgdGhhbiBpdHMg
ZnJlc2huZXNzIGxpZmV0aW1lIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICBy
ZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9
MzYwMCJdLAorICAgICAgICAgIFsiQWdlIiwgIjEyMDAwIl0KKyAgICAgICAgXSwKKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQor
ICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXMgbm90IHN0b3JlIGEg
cmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBuby1zdG9yZSIsCisgICAgcmVxdWVzdHM6IFsK
KyAgICAgIHsKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUt
Q29udHJvbCIsICJuby1zdG9yZSJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAg
ICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAg
eworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXMgbm90IHN0b3JlIGEgcmVzcG9uc2Ugd2l0aCBD
YWNoZS1Db250cm9sOiBuby1zdG9yZSwgZXZlbiB3aXRoIG1heC1hZ2UgYW5kIEV4cGlyZXMiLAor
ICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAg
ICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0xMDAwMCwgbm8tc3RvcmUiXSwKKyAg
ICAgICAgICBbIkV4cGlyZXMiLCAxMDAwMF0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsK
KyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9
LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgc3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNo
ZS1Db250cm9sOiBuby1jYWNoZSwgYnV0IHJldmFsaWRhdGVzIHVwb24gdXNlIiwKKyAgICByZXF1
ZXN0czogWworICAgICAgeworICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAg
WyJDYWNoZS1Db250cm9sIiwgIm5vLWNhY2hlIl0sCisgICAgICAgICAgWyJFVGFnIiwgImFiY2Qi
XQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICBleHBlY3RlZF90eXBlOiAi
ZXRhZ192YWxpZGF0ZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhU
VFAgY2FjaGUgc3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBuby1jYWNoZSwg
YnV0IHJldmFsaWRhdGVzIHVwb24gdXNlLCBldmVuIHdpdGggbWF4LWFnZSBhbmQgRXhwaXJlcyIs
CisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwor
ICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTEwMDAwLCBuby1jYWNoZSJdLAor
ICAgICAgICAgIFsiRXhwaXJlcyIsIDEwMDAwXSwKKyAgICAgICAgICBbIkVUYWciLCAiYWJjZCJd
CisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJl
dGFnX3ZhbGlkYXRlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCitdOworcnVuX3Rlc3RzKHRlc3Rz
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvaHR0cC1jYWNoZS9mcmVzaG5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2Fj
aGUvZnJlc2huZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmY2RiMTJh
YzI0NTBmYzJhYTJhNzQwOGFhMWJkMDI1NDFmN2NhMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
ZnJlc2huZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKworUEFT
UyBIVFRQIGNhY2hlIHJldXNlcyBhIHJlc3BvbnNlIHdpdGggYSBmdXR1cmUgRXhwaXJlcworUEFT
UyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBhIHBhc3QgRXhwaXJl
cworUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBhIHByZXNl
bnQgRXhwaXJlcworUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0
aCBhbiBpbnZhbGlkIEV4cGlyZXMKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3
aXRoIHBvc2l0aXZlIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UKK1BBU1MgSFRUUCBjYWNoZSBkb2Vz
IG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0wCitQQVNT
IEhUVFAgY2FjaGUgcmV1c2VzIGEgcmVzcG9uc2Ugd2l0aCBwb3NpdGl2ZSBDYWNoZS1Db250cm9s
OiBtYXgtYWdlIGFuZCBhIHBhc3QgRXhwaXJlcworUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIHJl
c3BvbnNlIHdpdGggcG9zaXRpdmUgQ2FjaGUtQ29udHJvbDogbWF4LWFnZSBhbmQgYW4gaW52YWxp
ZCBFeHBpcmVzCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2UgYSByZXNwb25zZSB3aXRo
IENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCBhbmQgYSBmdXR1cmUgRXhwaXJlcworUEFTUyBIVFRQ
IGNhY2hlIGRvZXMgbm90IHByZWZlciBDYWNoZS1Db250cm9sOiBzLW1heGFnZSBvdmVyIENhY2hl
LUNvbnRyb2w6IG1heC1hZ2UKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCByZXVzZSBhIHJlc3Bv
bnNlIHdoZW4gdGhlIEFnZSBoZWFkZXIgaXMgZ3JlYXRlciB0aGFuIGl0cyBmcmVzaG5lc3MgbGlm
ZXRpbWUKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCBzdG9yZSBhIHJlc3BvbnNlIHdpdGggQ2Fj
aGUtQ29udHJvbDogbm8tc3RvcmUKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCBzdG9yZSBhIHJl
c3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIGV2ZW4gd2l0aCBtYXgtYWdlIGFu
ZCBFeHBpcmVzCitQQVNTIEhUVFAgY2FjaGUgc3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1D
b250cm9sOiBuby1jYWNoZSwgYnV0IHJldmFsaWRhdGVzIHVwb24gdXNlCitQQVNTIEhUVFAgY2Fj
aGUgc3RvcmVzIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBuby1jYWNoZSwgYnV0IHJl
dmFsaWRhdGVzIHVwb24gdXNlLCBldmVuIHdpdGggbWF4LWFnZSBhbmQgRXhwaXJlcworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvZnJlc2huZXNzLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9mcmVzaG5lc3MuYW55
Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5
ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLmFueS53b3JrZXIuaHRt
bApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRl
c3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvZnJlc2huZXNzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUv
ZnJlc2huZXNzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4YTQ1N2NiZWJh
YjZjNWFjNmQ0OGJlYjljMThhODU0ZTFlYThjYmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVzcy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjI2ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+SFRUUCBDYWNoZSAtIEZyZXNobmVzczwv
dGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndo
YXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxv
bmciPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iaHR0cC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJv
ZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbCi0gICAgICAvLyByZXNwb25zZSBk
aXJlY3RpdmVzCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyBhIHJl
c3BvbnNlIHdpdGggYSBmdXR1cmUgRXhwaXJlcyIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAg
ICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBb
IkV4cGlyZXMiLCAoMzAgKiAyNCAqIDYwICogNjApXQotICAgICAgICAgICAgXQotICAgICAgICAg
IH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKLSAg
ICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJI
VFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBhIHBhc3QgRXhwaXJlcyIs
Ci0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2Vf
aGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCAoLTMwICogMjQgKiA2MCAqIDYw
KV0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAg
IGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAg
ICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2Ug
YSByZXNwb25zZSB3aXRoIGEgcHJlc2VudCBFeHBpcmVzIiwKLSAgICAgICAgcmVxdWVzdHM6IFsK
LSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAg
ICAgIFsiRXhwaXJlcyIsIDBdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAg
ICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9
Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hl
IGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2l0aCBhbiBpbnZhbGlkIEV4cGlyZXMiLAotICAg
ICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRl
cnM6IFsKLSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwgIjAiXQotICAgICAgICAgICAgXQotICAg
ICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9j
YWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAg
ICBuYW1lOiAiSFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3aXRoIHBvc2l0aXZlIENhY2hl
LUNvbnRyb2w6IG1heC1hZ2UiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250
cm9sIiwgIm1heC1hZ2U9MzYwMCJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0K
LSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUg
ZG9lcyBub3QgcmV1c2UgYSByZXNwb25zZSB3aXRoIENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCIs
Ci0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2Vf
aGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0wIl0K
LSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGV4
cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAg
fSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgcmV1c2VzIGEgcmVzcG9uc2Ug
d2l0aCBwb3NpdGl2ZSBDYWNoZS1Db250cm9sOiBtYXgtYWdlIGFuZCBhIHBhc3QgRXhwaXJlcyIs
Ci0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2Vf
aGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAw
Il0sCi0gICAgICAgICAgICAgIFsiRXhwaXJlcyIsIC0xMDAwMF0KLSAgICAgICAgICAgIF0KLSAg
ICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNo
ZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBu
YW1lOiAiSFRUUCBjYWNoZSByZXVzZXMgYSByZXNwb25zZSB3aXRoIHBvc2l0aXZlIENhY2hlLUNv
bnRyb2w6IG1heC1hZ2UgYW5kIGFuIGludmFsaWQgRXhwaXJlcyIsCi0gICAgICAgIHJlcXVlc3Rz
OiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAg
ICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAgICAg
IFsiRXhwaXJlcyIsICIwIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAg
IHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiCi0gICAgICAgICAgfQotICAg
ICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vz
IG5vdCByZXVzZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0wIGFuZCBh
IGZ1dHVyZSBFeHBpcmVzIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJv
bCIsICJtYXgtYWdlPTAiXSwKLSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwgMTAwMDBdCi0gICAg
ICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3Rl
ZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0g
ICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXMgbm90IHByZWZlciBDYWNoZS1D
b250cm9sOiBzLW1heGFnZSBvdmVyIENhY2hlLUNvbnRyb2w6IG1heC1hZ2UiLAotICAgICAgICBy
ZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsK
LSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MSwgcy1tYXhhZ2U9MzYw
MCJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcGF1c2VfYWZ0ZXI6IHRydWUsCi0gICAg
ICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2Nh
Y2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAg
IG5hbWU6ICJIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGEgcmVzcG9uc2Ugd2hlbiB0aGUgQWdl
IGhlYWRlciBpcyBncmVhdGVyIHRoYW4gaXRzIGZyZXNobmVzcyBsaWZldGltZSIsCi0gICAgICAg
IHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczog
WwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCi0gICAg
ICAgICAgICAgIFsiQWdlIiwgIjEyMDAwIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgfSwK
LSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAg
ICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJI
VFRQIGNhY2hlIGRvZXMgbm90IHN0b3JlIGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBu
by1zdG9yZSIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAg
cmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibm8t
c3RvcmUiXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAg
ICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBd
Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2VzIG5vdCBz
dG9yZSBhIHJlc3BvbnNlIHdpdGggQ2FjaGUtQ29udHJvbDogbm8tc3RvcmUsIGV2ZW4gd2l0aCBt
YXgtYWdlIGFuZCBFeHBpcmVzIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0g
ICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29u
dHJvbCIsICJtYXgtYWdlPTEwMDAwLCBuby1zdG9yZSJdLAotICAgICAgICAgICAgICBbIkV4cGly
ZXMiLCAxMDAwMF0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAg
ICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAg
ICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgc3RvcmVz
IGEgcmVzcG9uc2Ugd2l0aCBDYWNoZS1Db250cm9sOiBuby1jYWNoZSwgYnV0IHJldmFsaWRhdGVz
IHVwb24gdXNlIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAg
ICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJu
by1jYWNoZSJdLAotICAgICAgICAgICAgICBbIkVUYWciLCAiYWJjZCJdCi0gICAgICAgICAgICBd
Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAi
ZXRhZ192YWxpZGF0ZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAg
ewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBzdG9yZXMgYSByZXNwb25zZSB3aXRoIENhY2hl
LUNvbnRyb2w6IG5vLWNhY2hlLCBidXQgcmV2YWxpZGF0ZXMgdXBvbiB1c2UsIGV2ZW4gd2l0aCBt
YXgtYWdlIGFuZCBFeHBpcmVzIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0g
ICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiQ2FjaGUtQ29u
dHJvbCIsICJtYXgtYWdlPTEwMDAwLCBuby1jYWNoZSJdLAotICAgICAgICAgICAgICBbIkV4cGly
ZXMiLCAxMDAwMF0sCi0gICAgICAgICAgICAgIFsiRVRhZyIsICJhYmNkIl0KLSAgICAgICAgICAg
IF0KLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6
ICJldGFnX3ZhbGlkYXRlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAg
XTsKLSAgICBydW5fdGVzdHModGVzdHMpOwotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0
aWMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMmQ3OWVjYTQ0
ZWEwNGExNTBlNWJlODg3NzI2Y2MwYWVjNzY3MzY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTggKzAsMCBAQAotCi1GQUlMIEhUVFAgY2FjaGUgcmV1c2VzIGFuIHVua25v
d24gcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNo
bmVzcyB3aGVuIENhY2hlLUNvbnRyb2w6IHB1YmxpYyBpcyBwcmVzZW50IGFzc2VydF9sZXNzX3Ro
YW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgotUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHJldXNlIGFu
IHVua25vd24gcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGlj
IGZyZXNobmVzcyB3aGVuIENhY2hlLUNvbnRyb2w6IHB1YmxpYyBpcyBub3QgcHJlc2VudAotUEFT
UyBIVFRQIGNhY2hlIHJldXNlcyBhIDIwMCBPSyByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQg
YmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCi1QQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEg
MjAzIE5vbi1BdXRob3JpdGF0aXZlIEluZm9ybWF0aW9uIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2Rp
ZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKLVBBU1MgSFRUUCBjYWNoZSByZXVz
ZXMgYSAyMDQgTm8gQ29udGVudCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBv
biBoZXVyaXN0aWMgZnJlc2huZXNzCi1QQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgNDA0IE5vdCBG
b3VuZCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJl
c2huZXNzCi1QQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgNDA1IE1ldGhvZCBOb3QgQWxsb3dlZCBy
ZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNz
Ci1QQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgNDEwIEdvbmUgcmVzcG9uc2Ugd2l0aCBMYXN0LU1v
ZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcwotUEFTUyBIVFRQIGNhY2hlIHJl
dXNlcyBhIDQxNCBVUkkgVG9vIExvbmcgcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2Vk
IHVwb24gaGV1cmlzdGljIGZyZXNobmVzcwotUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIDUwMSBO
b3QgSW1wbGVtZW50ZWQgcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1
cmlzdGljIGZyZXNobmVzcwotUEFTUyBIVFRQIGNhY2hlIGRvZXMgbm90IHVzZSBhIDIwMSBDcmVh
dGVkIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVz
aG5lc3MKLVBBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCB1c2UgYSAyMDIgQWNjZXB0ZWQgcmVzcG9u
c2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcwotUEFT
UyBIVFRQIGNhY2hlIGRvZXMgbm90IHVzZSBhIDQwMyBGb3JiaWRkZW4gcmVzcG9uc2Ugd2l0aCBM
YXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcwotUEFTUyBIVFRQIGNh
Y2hlIGRvZXMgbm90IHVzZSBhIDUwMiBCYWQgR2F0ZXdheSByZXNwb25zZSB3aXRoIExhc3QtTW9k
aWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCi1QQVNTIEhUVFAgY2FjaGUgZG9l
cyBub3QgdXNlIGEgNTAzIFNlcnZpY2UgVW5hdmFpbGFibGUgcmVzcG9uc2Ugd2l0aCBMYXN0LU1v
ZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcwotUEFTUyBIVFRQIGNhY2hlIGRv
ZXMgbm90IHVzZSBhIDUwNCBHYXRld2F5IFRpbWVvdXQgcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlm
aWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcwotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1
cmlzdGljLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLmFueS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjJkNzllY2E0NGVhMDRhMTUwZTViZTg4NzcyNmNjMGFlYzc2NzM2NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE4IEBACisKK0ZBSUwgSFRUUCBjYWNoZSByZXVzZXMgYW4gdW5rbm93biByZXNwb25zZSB3aXRo
IExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzIHdoZW4gQ2FjaGUt
Q29udHJvbDogcHVibGljIGlzIHByZXNlbnQgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBk
b2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0
IGdvdCAyCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2UgYW4gdW5rbm93biByZXNwb25z
ZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzIHdoZW4g
Q2FjaGUtQ29udHJvbDogcHVibGljIGlzIG5vdCBwcmVzZW50CitQQVNTIEhUVFAgY2FjaGUgcmV1
c2VzIGEgMjAwIE9LIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJp
c3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSAyMDMgTm9uLUF1dGhvcml0
YXRpdmUgSW5mb3JtYXRpb24gcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24g
aGV1cmlzdGljIGZyZXNobmVzcworUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIDIwNCBObyBDb250
ZW50IHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVz
aG5lc3MKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSA0MDQgTm90IEZvdW5kIHJlc3BvbnNlIHdp
dGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRU
UCBjYWNoZSByZXVzZXMgYSA0MDUgTWV0aG9kIE5vdCBBbGxvd2VkIHJlc3BvbnNlIHdpdGggTGFz
dC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNo
ZSByZXVzZXMgYSA0MTAgR29uZSByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBv
biBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgNDE0IFVSSSBU
b28gTG9uZyByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMg
ZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgNTAxIE5vdCBJbXBsZW1lbnRlZCBy
ZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNz
CitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgMjAxIENyZWF0ZWQgcmVzcG9uc2Ugd2l0
aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcworUEFTUyBIVFRQ
IGNhY2hlIGRvZXMgbm90IHVzZSBhIDIwMiBBY2NlcHRlZCByZXNwb25zZSB3aXRoIExhc3QtTW9k
aWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgZG9l
cyBub3QgdXNlIGEgNDAzIEZvcmJpZGRlbiByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFz
ZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgdXNl
IGEgNTAyIEJhZCBHYXRld2F5IHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9u
IGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCB1c2UgYSA1MDMg
U2VydmljZSBVbmF2YWlsYWJsZSByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBv
biBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgNTA0
IEdhdGV3YXkgVGltZW91dCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBo
ZXVyaXN0aWMgZnJlc2huZXNzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMuYW55Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAt
Y2FjaGUvaGV1cmlzdGljLmFueS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1
NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLmFu
eS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJL
aXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMuYW55Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL2hldXJpc3RpYy5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg0NjEzMTg4ODI4OGNiODYzMzA4
MDgxZWVlOTI3MWNhYTEwOGEwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMuYW55
LmpzCkBAIC0wLDAgKzEsOTMgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBN
RVRBOiB0aXRsZT1IVFRQIENhY2hlIC0gSGV1cmlzdGljIEZyZXNobmVzcworLy8gTUVUQTogdGlt
ZW91dD1sb25nCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcworLy8gTUVUQTogc2Ny
aXB0PS9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMKKy8vIE1FVEE6IHNjcmlwdD1odHRwLWNh
Y2hlLmpzCisKK3ZhciB0ZXN0cyA9IFsKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNl
cyBhbiB1bmtub3duIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJp
c3RpYyBmcmVzaG5lc3Mgd2hlbiBDYWNoZS1Db250cm9sOiBwdWJsaWMgaXMgcHJlc2VudCIsCisg
ICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjk5LCAi
V2hhdGV2ZXIiXSwKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiTGFz
dC1Nb2RpZmllZCIsICgtMyAqIDEwMCldLAorICAgICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJw
dWJsaWMiXQorICAgICAgICBdLAorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZXhwZWN0ZWRf
dHlwZTogImNhY2hlZCIsCisgICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzI5OSwgIldoYXRldmVy
Il0KKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vz
IG5vdCByZXVzZSBhbiB1bmtub3duIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1
cG9uIGhldXJpc3RpYyBmcmVzaG5lc3Mgd2hlbiBDYWNoZS1Db250cm9sOiBwdWJsaWMgaXMgbm90
IHByZXNlbnQiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlc3BvbnNlX3N0
YXR1czogWzI5OSwgIldoYXRldmVyIl0sCisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAg
ICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAoLTMgKiAxMDApXQorICAgICAgICBdLAorICAgICAg
fSwKKyAgICAgIHsKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9
CisgICAgXQorICB9CitdOworCitmdW5jdGlvbiBjaGVja19zdGF0dXMoc3RhdHVzKSB7CisgIHZh
ciBzdWNjZWVkID0gc3RhdHVzWzBdOworICB2YXIgY29kZSA9IHN0YXR1c1sxXTsKKyAgdmFyIHBo
cmFzZSA9IHN0YXR1c1syXTsKKyAgdmFyIGJvZHkgPSBzdGF0dXNbM107CisgIGlmIChib2R5ID09
PSB1bmRlZmluZWQpIHsKKyAgICBib2R5ID0gaHR0cF9jb250ZW50KGNvZGUpOworICB9CisgIHZh
ciBleHBlY3RlZF90eXBlID0gIm5vdF9jYWNoZWQiOworICB2YXIgZGVzaXJlZCA9ICJkb2VzIG5v
dCB1c2UiCisgIGlmIChzdWNjZWVkID09PSB0cnVlKSB7CisgICAgZXhwZWN0ZWRfdHlwZSA9ICJj
YWNoZWQiOworICAgIGRlc2lyZWQgPSAicmV1c2VzIjsKKyAgfQorICB0ZXN0cy5wdXNoKAorICAg
IHsKKyAgICAgIG5hbWU6ICJIVFRQIGNhY2hlICIgKyBkZXNpcmVkICsgIiBhICIgKyBjb2RlICsg
IiAiICsgcGhyYXNlICsgIiByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBo
ZXVyaXN0aWMgZnJlc2huZXNzIiwKKyAgICAgIHJlcXVlc3RzOiBbCisgICAgICAgIHsKKyAgICAg
ICAgICByZXNwb25zZV9zdGF0dXM6IFtjb2RlLCBwaHJhc2VdLAorICAgICAgICAgIHJlc3BvbnNl
X2hlYWRlcnM6IFsKKyAgICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsICgtMyAqIDEwMCldCisg
ICAgICAgICAgXSwKKyAgICAgICAgICByZXNwb25zZV9ib2R5OiBib2R5CisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICBleHBlY3RlZF90eXBlOiBleHBlY3RlZF90eXBlLAorICAgICAg
ICAgIHJlc3BvbnNlX3N0YXR1czogW2NvZGUsIHBocmFzZV0sCisgICAgICAgICAgcmVzcG9uc2Vf
Ym9keTogYm9keQorICAgICAgICB9CisgICAgICBdCisgICAgfQorICApCit9CitbCisgIFt0cnVl
LCAyMDAsICJPSyJdLAorICBbdHJ1ZSwgMjAzLCAiTm9uLUF1dGhvcml0YXRpdmUgSW5mb3JtYXRp
b24iXSwKKyAgW3RydWUsIDIwNCwgIk5vIENvbnRlbnQiLCAiIl0sCisgIFt0cnVlLCA0MDQsICJO
b3QgRm91bmQiXSwKKyAgW3RydWUsIDQwNSwgIk1ldGhvZCBOb3QgQWxsb3dlZCJdLAorICBbdHJ1
ZSwgNDEwLCAiR29uZSJdLAorICBbdHJ1ZSwgNDE0LCAiVVJJIFRvbyBMb25nIl0sCisgIFt0cnVl
LCA1MDEsICJOb3QgSW1wbGVtZW50ZWQiXQorXS5mb3JFYWNoKGNoZWNrX3N0YXR1cyk7CitbCisg
IFtmYWxzZSwgMjAxLCAiQ3JlYXRlZCJdLAorICBbZmFsc2UsIDIwMiwgIkFjY2VwdGVkIl0sCisg
IFtmYWxzZSwgNDAzLCAiRm9yYmlkZGVuIl0sCisgIFtmYWxzZSwgNTAyLCAiQmFkIEdhdGV3YXki
XSwKKyAgW2ZhbHNlLCA1MDMsICJTZXJ2aWNlIFVuYXZhaWxhYmxlIl0sCisgIFtmYWxzZSwgNTA0
LCAiR2F0ZXdheSBUaW1lb3V0Il0sCitdLmZvckVhY2goY2hlY2tfc3RhdHVzKTsKK3J1bl90ZXN0
cyh0ZXN0cyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
dHRwLWNhY2hlL2hldXJpc3RpYy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MmQ3OWVjYTQ0ZWEwNGExNTBlNWJlODg3NzI2Y2MwYWVjNzY3MzY1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL2hldXJpc3RpYy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBA
CisKK0ZBSUwgSFRUUCBjYWNoZSByZXVzZXMgYW4gdW5rbm93biByZXNwb25zZSB3aXRoIExhc3Qt
TW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzIHdoZW4gQ2FjaGUtQ29udHJv
bDogcHVibGljIGlzIHByZXNlbnQgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5v
dCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAy
CitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgcmV1c2UgYW4gdW5rbm93biByZXNwb25zZSB3aXRo
IExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzIHdoZW4gQ2FjaGUt
Q29udHJvbDogcHVibGljIGlzIG5vdCBwcmVzZW50CitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEg
MjAwIE9LIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBm
cmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSAyMDMgTm9uLUF1dGhvcml0YXRpdmUg
SW5mb3JtYXRpb24gcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlz
dGljIGZyZXNobmVzcworUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBhIDIwNCBObyBDb250ZW50IHJl
c3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MK
K1BBU1MgSFRUUCBjYWNoZSByZXVzZXMgYSA0MDQgTm90IEZvdW5kIHJlc3BvbnNlIHdpdGggTGFz
dC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNo
ZSByZXVzZXMgYSA0MDUgTWV0aG9kIE5vdCBBbGxvd2VkIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2Rp
ZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSByZXVz
ZXMgYSA0MTAgR29uZSByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVy
aXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgNDE0IFVSSSBUb28gTG9u
ZyByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2hu
ZXNzCitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIGEgNTAxIE5vdCBJbXBsZW1lbnRlZCByZXNwb25z
ZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNT
IEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgMjAxIENyZWF0ZWQgcmVzcG9uc2Ugd2l0aCBMYXN0
LU1vZGlmaWVkIGJhc2VkIHVwb24gaGV1cmlzdGljIGZyZXNobmVzcworUEFTUyBIVFRQIGNhY2hl
IGRvZXMgbm90IHVzZSBhIDIwMiBBY2NlcHRlZCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQg
YmFzZWQgdXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3Qg
dXNlIGEgNDAzIEZvcmJpZGRlbiByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBv
biBoZXVyaXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgNTAy
IEJhZCBHYXRld2F5IHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJp
c3RpYyBmcmVzaG5lc3MKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCB1c2UgYSA1MDMgU2Vydmlj
ZSBVbmF2YWlsYWJsZSByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVy
aXN0aWMgZnJlc2huZXNzCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgdXNlIGEgNTA0IEdhdGV3
YXkgVGltZW91dCByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQgdXBvbiBoZXVyaXN0
aWMgZnJlc2huZXNzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMuYW55Lndvcmtlci5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL2hldXJpc3RpYy5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2
OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVy
aXN0aWMuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRl
ZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9o
ZXVyaXN0aWMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvaHR0cC1jYWNoZS9oZXVyaXN0aWMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzIzMzNjZDlmMDVjZjA5NmJkZGRiN2E0YzlkNTYwMTI1YmNiMmRlNi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGljLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRt
bD4KLSAgPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5IVFRQ
IENhY2hlIC0gSGV1cmlzdGljIEZyZXNobmVzczwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgotICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9j
b21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1o
b3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iaHR0cC1jYWNoZS5q
cyI+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIg
dGVzdHMgPSBbCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyBhbiB1
bmtub3duIHJlc3BvbnNlIHdpdGggTGFzdC1Nb2RpZmllZCBiYXNlZCB1cG9uIGhldXJpc3RpYyBm
cmVzaG5lc3Mgd2hlbiBDYWNoZS1Db250cm9sOiBwdWJsaWMgaXMgcHJlc2VudCIsCi0gICAgICAg
IHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBb
Mjk5LCAiV2hhdGV2ZXIiXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAg
ICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgKC0zICogMTAwKV0sCi0gICAgICAgICAgICAgIFsi
Q2FjaGUtQ29udHJvbCIsICJwdWJsaWMiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICB9LAot
ICAgICAgICAgIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiLAotICAgICAg
ICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjk5LCAiV2hhdGV2ZXIiXQotICAgICAgICAgIH0KLSAg
ICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9l
cyBub3QgcmV1c2UgYW4gdW5rbm93biByZXNwb25zZSB3aXRoIExhc3QtTW9kaWZpZWQgYmFzZWQg
dXBvbiBoZXVyaXN0aWMgZnJlc2huZXNzIHdoZW4gQ2FjaGUtQ29udHJvbDogcHVibGljIGlzIG5v
dCBwcmVzZW50IiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAg
ICByZXNwb25zZV9zdGF0dXM6IFsyOTksICJXaGF0ZXZlciJdLAotICAgICAgICAgICAgcmVzcG9u
c2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAoLTMgKiAxMDAp
XQotICAgICAgICAgICAgXSwKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAg
IGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAg
ICAgfQotICAgIF07Ci0KLSAgICBmdW5jdGlvbiBjaGVja19zdGF0dXMoc3RhdHVzKSB7Ci0gICAg
ICB2YXIgc3VjY2VlZCA9IHN0YXR1c1swXTsKLSAgICAgIHZhciBjb2RlID0gc3RhdHVzWzFdOwot
ICAgICAgdmFyIHBocmFzZSA9IHN0YXR1c1syXTsKLSAgICAgIHZhciBib2R5ID0gc3RhdHVzWzNd
OwotICAgICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCkgewotICAgICAgICBib2R5ID0gaHR0cF9j
b250ZW50KGNvZGUpOwotICAgICAgfQotICAgICAgdmFyIGV4cGVjdGVkX3R5cGUgPSAibm90X2Nh
Y2hlZCI7Ci0gICAgICB2YXIgZGVzaXJlZCA9ICJkb2VzIG5vdCB1c2UiCi0gICAgICBpZiAoc3Vj
Y2VlZCA9PT0gdHJ1ZSkgewotICAgICAgICBleHBlY3RlZF90eXBlID0gImNhY2hlZCI7Ci0gICAg
ICAgIGRlc2lyZWQgPSAicmV1c2VzIjsKLSAgICAgIH0KLSAgICAgIHRlc3RzLnB1c2goCi0gICAg
ICAgIHsKLSAgICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSAiICsgZGVzaXJlZCArICIgYSAiICsg
Y29kZSArICIgIiArIHBocmFzZSArICIgcmVzcG9uc2Ugd2l0aCBMYXN0LU1vZGlmaWVkIGJhc2Vk
IHVwb24gaGV1cmlzdGljIGZyZXNobmVzcyIsCi0gICAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbY29kZSwgcGhyYXNlXSwK
LSAgICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICAgIFsiTGFz
dC1Nb2RpZmllZCIsICgtMyAqIDEwMCldCi0gICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAg
IHJlc3BvbnNlX2JvZHk6IGJvZHkKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgIGV4cGVjdGVkX3R5cGU6IGV4cGVjdGVkX3R5cGUsCi0gICAgICAgICAgICAgIHJl
c3BvbnNlX3N0YXR1czogW2NvZGUsIHBocmFzZV0sCi0gICAgICAgICAgICAgIHJlc3BvbnNlX2Jv
ZHk6IGJvZHkKLSAgICAgICAgICAgIH0KLSAgICAgICAgICBdCi0gICAgICAgIH0KLSAgICAgICkK
LSAgICB9Ci0gICAgWwotICAgICAgW3RydWUsIDIwMCwgIk9LIl0sCi0gICAgICBbdHJ1ZSwgMjAz
LCAiTm9uLUF1dGhvcml0YXRpdmUgSW5mb3JtYXRpb24iXSwKLSAgICAgIFt0cnVlLCAyMDQsICJO
byBDb250ZW50IiwgIiJdLAotICAgICAgW3RydWUsIDQwNCwgIk5vdCBGb3VuZCJdLAotICAgICAg
W3RydWUsIDQwNSwgIk1ldGhvZCBOb3QgQWxsb3dlZCJdLAotICAgICAgW3RydWUsIDQxMCwgIkdv
bmUiXSwKLSAgICAgIFt0cnVlLCA0MTQsICJVUkkgVG9vIExvbmciXSwKLSAgICAgIFt0cnVlLCA1
MDEsICJOb3QgSW1wbGVtZW50ZWQiXQotICAgIF0uZm9yRWFjaChjaGVja19zdGF0dXMpOwotICAg
IFsKLSAgICAgIFtmYWxzZSwgMjAxLCAiQ3JlYXRlZCJdLAotICAgICAgW2ZhbHNlLCAyMDIsICJB
Y2NlcHRlZCJdLAotICAgICAgW2ZhbHNlLCA0MDMsICJGb3JiaWRkZW4iXSwKLSAgICAgIFtmYWxz
ZSwgNTAyLCAiQmFkIEdhdGV3YXkiXSwKLSAgICAgIFtmYWxzZSwgNTAzLCAiU2VydmljZSBVbmF2
YWlsYWJsZSJdLAotICAgICAgW2ZhbHNlLCA1MDQsICJHYXRld2F5IFRpbWVvdXQiXSwKLSAgICBd
LmZvckVhY2goY2hlY2tfc3RhdHVzKTsKLSAgICBydW5fdGVzdHModGVzdHMpOwotICAgIDwvc2Ny
aXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaW52YWxpZGF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2h0dHAtY2FjaGUvaW52YWxpZGF0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGFjM2I1MWZjMjkyNzQ0ZTc3N2NmYjgzMjc2ZDY3NjE0ZGRiZTdlZjAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRh
dGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotCi1QQVNTIEhU
VFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBQ
T1NUCi1GQUlMIEhUVFAgY2FjaGUgZG9lcyBub3QgaW52YWxpZGF0ZSBhZnRlciBhIGZhaWxlZCBy
ZXNwb25zZSBmcm9tIGFuIHVuc2FmZSByZXF1ZXN0IGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNl
IDMgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAz
IGJ1dCBnb3QgMwotUEFTUyBIVFRQIGNhY2hlIGludmFsaWRhdGVzIGFmdGVyIGEgc3VjY2Vzc2Z1
bCByZXNwb25zZSBmcm9tIGEgUFVUCi1QQVNTIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIg
YSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBERUxFVEUKLVBBU1MgSFRUUCBjYWNoZSBpbnZh
bGlkYXRlcyBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhbiB1bmtub3duIG1ldGhv
ZAotRkFJTCBIVFRQIGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nl
c3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBPU1QgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMyBjb21l
cyBmcm9tIGNhY2hlIGV4cGVjdGVkIDMgYnV0IGdvdCAxCi1QQVNTIEhUVFAgY2FjaGUgZG9lcyBu
b3QgaW52YWxpZGF0ZSBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBh
biB1bnNhZmUgcmVxdWVzdAotRkFJTCBIVFRQIGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9uIFVS
TCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBVVCBhc3NlcnRfZXF1YWxzOiBS
ZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKLUZBSUwgSFRU
UCBjYWNoZSBpbnZhbGlkYXRlcyBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3Bv
bnNlIGZyb20gYSBERUxFVEUgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMyBjb21lcyBmcm9tIGNh
Y2hlIGV4cGVjdGVkIDMgYnV0IGdvdCAxCi1GQUlMIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgTG9j
YXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGFuIHVua25vd24gbWV0
aG9kIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNlIDMgY29tZXMgZnJvbSBjYWNoZSBleHBlY3RlZCAz
IGJ1dCBnb3QgMQotRkFJTCBIVFRQIGNhY2hlIGludmFsaWRhdGVzIENvbnRlbnQtTG9jYXRpb24g
VVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgUE9TVCBhc3NlcnRfZXF1YWxz
OiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKLVBBU1Mg
SFRUUCBjYWNoZSBkb2VzIG5vdCBpbnZhbGlkYXRlIENvbnRlbnQtTG9jYXRpb24gVVJMIGFmdGVy
IGEgZmFpbGVkIHJlc3BvbnNlIGZyb20gYW4gdW5zYWZlIHJlcXVlc3QKLUZBSUwgSFRUUCBjYWNo
ZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVz
cG9uc2UgZnJvbSBhIFBVVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2Fj
aGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKLUZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250
ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIERFTEVU
RSBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBi
dXQgZ290IDEKLUZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVS
TCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhbiB1bmtub3duIG1ldGhvZCBhc3Nl
cnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290
IDEKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9p
bnZhbGlkYXRlLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMzYjUxZmMyOTI3NDRlNzc3
Y2ZiODMyNzZkNjc2MTRkZGJlN2VmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9pbnZhbGlkYXRl
LmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCitQQVNTIEhUVFAgY2FjaGUgaW52
YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBQT1NUCitGQUlMIEhU
VFAgY2FjaGUgZG9lcyBub3QgaW52YWxpZGF0ZSBhZnRlciBhIGZhaWxlZCByZXNwb25zZSBmcm9t
IGFuIHVuc2FmZSByZXF1ZXN0IGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDMgZG9lcyBub3Qg
Y29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAzIGJ1dCBnb3QgMwor
UEFTUyBIVFRQIGNhY2hlIGludmFsaWRhdGVzIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBm
cm9tIGEgUFVUCitQQVNTIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVs
IHJlc3BvbnNlIGZyb20gYSBERUxFVEUKK1BBU1MgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBhZnRl
ciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhbiB1bmtub3duIG1ldGhvZAorRkFJTCBIVFRQ
IGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9u
c2UgZnJvbSBhIFBPU1QgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMyBjb21lcyBmcm9tIGNhY2hl
IGV4cGVjdGVkIDMgYnV0IGdvdCAxCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgaW52YWxpZGF0
ZSBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVx
dWVzdAorRkFJTCBIVFRQIGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1
Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBVVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNv
bWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBpbnZh
bGlkYXRlcyBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBE
RUxFVEUgYXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMyBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVk
IDMgYnV0IGdvdCAxCitGQUlMIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgTG9jYXRpb24gVVJMIGFm
dGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGFuIHVua25vd24gbWV0aG9kIGFzc2VydF9l
cXVhbHM6IFJlc3BvbnNlIDMgY29tZXMgZnJvbSBjYWNoZSBleHBlY3RlZCAzIGJ1dCBnb3QgMQor
RkFJTCBIVFRQIGNhY2hlIGludmFsaWRhdGVzIENvbnRlbnQtTG9jYXRpb24gVVJMIGFmdGVyIGEg
c3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgUE9TVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAz
IGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK1BBU1MgSFRUUCBjYWNoZSBk
b2VzIG5vdCBpbnZhbGlkYXRlIENvbnRlbnQtTG9jYXRpb24gVVJMIGFmdGVyIGEgZmFpbGVkIHJl
c3BvbnNlIGZyb20gYW4gdW5zYWZlIHJlcXVlc3QKK0ZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRl
cyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBh
IFBVVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQg
MyBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9u
IFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIERFTEVURSBhc3NlcnRfZXF1
YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK0ZB
SUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1
Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhbiB1bmtub3duIG1ldGhvZCBhc3NlcnRfZXF1YWxzOiBS
ZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
dHRwLWNhY2hlL2ludmFsaWRhdGUuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaW52YWxpZGF0ZS5hbnkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRv
IHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjlmODA5MGFjZTY1OWQyYjljYzQ0Mjc0YjAzNzlhMzBmMDhkOTQ5ZWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvaW52YWxpZGF0ZS5hbnkuanMKQEAgLTAsMCArMSwyMzUgQEAK
Ky8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2VyCisvLyBNRVRBOiB0aXRsZT1IVFRQIENhY2hl
IC0gSW52YWxpZGF0aW9uCisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKKy8vIE1FVEE6IHNjcmlwdD0v
Y29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1
Yi5qcworLy8gTUVUQTogc2NyaXB0PWh0dHAtY2FjaGUuanMKKwordmFyIHRlc3RzID0gWworICB7
CisgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJl
c3BvbnNlIGZyb20gYSBQT1NUJywKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICB0
ZW1wbGF0ZTogImZyZXNoIgorICAgICAgfSwgeworICAgICAgICByZXF1ZXN0X21ldGhvZDogIlBP
U1QiLAorICAgICAgICByZXF1ZXN0X2JvZHk6ICJhYmMiCisgICAgICB9LCB7CisgICAgICAgIGV4
cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAg
IG5hbWU6ICdIVFRQIGNhY2hlIGRvZXMgbm90IGludmFsaWRhdGUgYWZ0ZXIgYSBmYWlsZWQgcmVz
cG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVxdWVzdCcsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsK
KyAgICAgICAgdGVtcGxhdGU6ICJmcmVzaCIKKyAgICAgIH0sIHsKKyAgICAgICAgcmVxdWVzdF9t
ZXRob2Q6ICJQT1NUIiwKKyAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIiwKKyAgICAgICAgcmVz
cG9uc2Vfc3RhdHVzOiBbNTAwLCAiSW50ZXJuYWwgU2VydmVyIEVycm9yIl0KKyAgICAgIH0sIHsK
KyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisg
IHsKKyAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBhZnRlciBhIHN1Y2Nlc3NmdWwg
cmVzcG9uc2UgZnJvbSBhIFBVVCcsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAg
dGVtcGxhdGU6ICJmcmVzaCIKKyAgICAgIH0sIHsKKyAgICAgICAgdGVtcGxhdGU6ICJmcmVzaCIs
CisgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiUFVUIiwKKyAgICAgICAgcmVxdWVzdF9ib2R5OiAi
YWJjIgorICAgICAgfSwgeworICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKKyAg
ICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRl
cyBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIERFTEVURScsCisgICAgcmVxdWVz
dHM6IFsKKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU6ICJmcmVzaCIKKyAgICAgIH0sIHsKKyAg
ICAgICAgcmVxdWVzdF9tZXRob2Q6ICJERUxFVEUiLAorICAgICAgICByZXF1ZXN0X2JvZHk6ICJh
YmMiCisgICAgICB9LCB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAg
ICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICdIVFRQIGNhY2hlIGludmFsaWRhdGVz
IGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGFuIHVua25vd24gbWV0aG9kJywKKyAg
ICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICB0ZW1wbGF0ZTogImZyZXNoIgorICAgICAg
fSwgeworICAgICAgICByZXF1ZXN0X21ldGhvZDogIkZPTyIsCisgICAgICAgIHJlcXVlc3RfYm9k
eTogImFiYyIKKyAgICAgIH0sIHsKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQi
CisgICAgICB9CisgICAgXQorICB9LAorCisKKyAgeworICAgIG5hbWU6ICdIVFRQIGNhY2hlIGlu
dmFsaWRhdGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBh
IFBPU1QnLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAibG9j
YXRpb24iCisgICAgICB9LCB7CisgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiUE9TVCIsCisgICAg
ICAgIHJlcXVlc3RfYm9keTogImFiYyIsCisgICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNl
IgorICAgICAgfSwgeworICAgICAgICB0ZW1wbGF0ZTogImxvY2F0aW9uIiwKKyAgICAgICAgZXhw
ZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAg
bmFtZTogJ0hUVFAgY2FjaGUgZG9lcyBub3QgaW52YWxpZGF0ZSBMb2NhdGlvbiBVUkwgYWZ0ZXIg
YSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVxdWVzdCcsCisgICAgcmVxdWVzdHM6
IFsKKyAgICAgIHsKKyAgICAgICAgdGVtcGxhdGU6ICJsb2NhdGlvbiIKKyAgICAgIH0sIHsKKyAg
ICAgICAgdGVtcGxhdGU6ICJsY2xfcmVzcG9uc2UiLAorICAgICAgICByZXF1ZXN0X21ldGhvZDog
IlBPU1QiLAorICAgICAgICByZXF1ZXN0X2JvZHk6ICJhYmMiLAorICAgICAgICByZXNwb25zZV9z
dGF0dXM6IFs1MDAsICJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IiXQorICAgICAgfSwgeworICAgICAg
ICB0ZW1wbGF0ZTogImxvY2F0aW9uIiwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIK
KyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlk
YXRlcyBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBQVVQn
LAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAibG9jYXRpb24i
CisgICAgICB9LCB7CisgICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNlIiwKKyAgICAgICAg
cmVxdWVzdF9tZXRob2Q6ICJQVVQiLAorICAgICAgICByZXF1ZXN0X2JvZHk6ICJhYmMiCisgICAg
ICB9LCB7CisgICAgICAgIHRlbXBsYXRlOiAibG9jYXRpb24iLAorICAgICAgICBleHBlY3RlZF90
eXBlOiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAn
SFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJl
c3BvbnNlIGZyb20gYSBERUxFVEUnLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAg
IHRlbXBsYXRlOiAibG9jYXRpb24iCisgICAgICB9LCB7CisgICAgICAgIHRlbXBsYXRlOiAibGNs
X3Jlc3BvbnNlIiwKKyAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJERUxFVEUiLAorICAgICAgICBy
ZXF1ZXN0X2JvZHk6ICJhYmMiCisgICAgICB9LCB7CisgICAgICAgIHRlbXBsYXRlOiAibG9jYXRp
b24iLAorICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBd
CisgIH0sCisgIHsKKyAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBMb2NhdGlvbiBV
UkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYW4gdW5rbm93biBtZXRob2QnLAor
ICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAibG9jYXRpb24iCisg
ICAgICB9LCB7CisgICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNlIiwKKyAgICAgICAgcmVx
dWVzdF9tZXRob2Q6ICJGT08iLAorICAgICAgICByZXF1ZXN0X2JvZHk6ICJhYmMiCisgICAgICB9
LCB7CisgICAgICAgIHRlbXBsYXRlOiAibG9jYXRpb24iLAorICAgICAgICBleHBlY3RlZF90eXBl
OiAibm90X2NhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisKKworCisgIHsKKyAgICBuYW1l
OiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1
Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBPU1QnLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7
CisgICAgICAgIHRlbXBsYXRlOiAiY29udGVudF9sb2NhdGlvbiIKKyAgICAgIH0sIHsKKyAgICAg
ICAgcmVxdWVzdF9tZXRob2Q6ICJQT1NUIiwKKyAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIiwK
KyAgICAgICAgdGVtcGxhdGU6ICJsY2xfcmVzcG9uc2UiCisgICAgICB9LCB7CisgICAgICAgIHRl
bXBsYXRlOiAiY29udGVudF9sb2NhdGlvbiIsCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3Rf
Y2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICdIVFRQIGNhY2hl
IGRvZXMgbm90IGludmFsaWRhdGUgQ29udGVudC1Mb2NhdGlvbiBVUkwgYWZ0ZXIgYSBmYWlsZWQg
cmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVxdWVzdCcsCisgICAgcmVxdWVzdHM6IFsKKyAgICAg
IHsKKyAgICAgICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9uIgorICAgICAgfSwgeworICAg
ICAgICB0ZW1wbGF0ZTogImxjbF9yZXNwb25zZSIsCisgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAi
UE9TVCIsCisgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIsCisgICAgICAgIHJlc3BvbnNlX3N0
YXR1czogWzUwMCwgIkludGVybmFsIFNlcnZlciBFcnJvciJdCisgICAgICB9LCB7CisgICAgICAg
IHRlbXBsYXRlOiAiY29udGVudF9sb2NhdGlvbiIsCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJj
YWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogJ0hUVFAgY2FjaGUg
aW52YWxpZGF0ZXMgQ29udGVudC1Mb2NhdGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3Bv
bnNlIGZyb20gYSBQVVQnLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHRlbXBs
YXRlOiAiY29udGVudF9sb2NhdGlvbiIKKyAgICAgIH0sIHsKKyAgICAgICAgdGVtcGxhdGU6ICJs
Y2xfcmVzcG9uc2UiLAorICAgICAgICByZXF1ZXN0X21ldGhvZDogIlBVVCIsCisgICAgICAgIHJl
cXVlc3RfYm9keTogImFiYyIKKyAgICAgIH0sIHsKKyAgICAgICAgdGVtcGxhdGU6ICJjb250ZW50
X2xvY2F0aW9uIiwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9
CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgQ29u
dGVudC1Mb2NhdGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBERUxF
VEUnLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAiY29udGVu
dF9sb2NhdGlvbiIKKyAgICAgIH0sIHsKKyAgICAgICAgdGVtcGxhdGU6ICJsY2xfcmVzcG9uc2Ui
LAorICAgICAgICByZXF1ZXN0X21ldGhvZDogIkRFTEVURSIsCisgICAgICAgIHJlcXVlc3RfYm9k
eTogImFiYyIKKyAgICAgIH0sIHsKKyAgICAgICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9u
IiwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQor
ICB9LAorICB7CisgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgQ29udGVudC1Mb2Nh
dGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYW4gdW5rbm93biBtZXRo
b2QnLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAiY29udGVu
dF9sb2NhdGlvbiIKKyAgICAgIH0sIHsKKyAgICAgICAgdGVtcGxhdGU6ICJsY2xfcmVzcG9uc2Ui
LAorICAgICAgICByZXF1ZXN0X21ldGhvZDogIkZPTyIsCisgICAgICAgIHJlcXVlc3RfYm9keTog
ImFiYyIKKyAgICAgIH0sIHsKKyAgICAgICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9uIiwK
KyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9
CisKK107CitydW5fdGVzdHModGVzdHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55
Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaW52YWxpZGF0ZS5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYzNiNTFmYzI5Mjc0NGU3NzdjZmI4MzI3NmQ2NzYxNGRkYmU3ZWYw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55Lndvcmtlci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNyBAQAorCitQQVNTIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIg
YSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBQT1NUCitGQUlMIEhUVFAgY2FjaGUgZG9lcyBu
b3QgaW52YWxpZGF0ZSBhZnRlciBhIGZhaWxlZCByZXNwb25zZSBmcm9tIGFuIHVuc2FmZSByZXF1
ZXN0IGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDMgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hl
IGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAzIGJ1dCBnb3QgMworUEFTUyBIVFRQIGNhY2hl
IGludmFsaWRhdGVzIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgUFVUCitQQVNT
IEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20g
YSBERUxFVEUKK1BBU1MgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBhZnRlciBhIHN1Y2Nlc3NmdWwg
cmVzcG9uc2UgZnJvbSBhbiB1bmtub3duIG1ldGhvZAorRkFJTCBIVFRQIGNhY2hlIGludmFsaWRh
dGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBPU1Qg
YXNzZXJ0X2VxdWFsczogUmVzcG9uc2UgMyBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDMgYnV0
IGdvdCAxCitQQVNTIEhUVFAgY2FjaGUgZG9lcyBub3QgaW52YWxpZGF0ZSBMb2NhdGlvbiBVUkwg
YWZ0ZXIgYSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUgcmVxdWVzdAorRkFJTCBIVFRQ
IGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9u
c2UgZnJvbSBhIFBVVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUg
ZXhwZWN0ZWQgMyBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBMb2NhdGlv
biBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSBERUxFVEUgYXNzZXJ0X2Vx
dWFsczogUmVzcG9uc2UgMyBjb21lcyBmcm9tIGNhY2hlIGV4cGVjdGVkIDMgYnV0IGdvdCAxCitG
QUlMIEhUVFAgY2FjaGUgaW52YWxpZGF0ZXMgTG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1
bCByZXNwb25zZSBmcm9tIGFuIHVua25vd24gbWV0aG9kIGFzc2VydF9lcXVhbHM6IFJlc3BvbnNl
IDMgY29tZXMgZnJvbSBjYWNoZSBleHBlY3RlZCAzIGJ1dCBnb3QgMQorRkFJTCBIVFRQIGNhY2hl
IGludmFsaWRhdGVzIENvbnRlbnQtTG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNw
b25zZSBmcm9tIGEgUE9TVCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2Fj
aGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK1BBU1MgSFRUUCBjYWNoZSBkb2VzIG5vdCBpbnZhbGlk
YXRlIENvbnRlbnQtTG9jYXRpb24gVVJMIGFmdGVyIGEgZmFpbGVkIHJlc3BvbnNlIGZyb20gYW4g
dW5zYWZlIHJlcXVlc3QKK0ZBSUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0
aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBVVCBhc3NlcnRfZXF1
YWxzOiBSZXNwb25zZSAzIGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK0ZB
SUwgSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1
Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIERFTEVURSBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAz
IGNvbWVzIGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKK0ZBSUwgSFRUUCBjYWNoZSBp
bnZhbGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9u
c2UgZnJvbSBhbiB1bmtub3duIG1ldGhvZCBhc3NlcnRfZXF1YWxzOiBSZXNwb25zZSAzIGNvbWVz
IGZyb20gY2FjaGUgZXhwZWN0ZWQgMyBidXQgZ290IDEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFs
aWRhdGUuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuYW55Lndvcmtlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2h0dHAtY2FjaGUvaW52YWxpZGF0ZS5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBA
QAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0
dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9pbnZhbGlkYXRlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiZjcyN2MwZWFhZTllODYxMDVlNTBl
Zjg1OGY5NTM0NDQ4MDE4OTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9odHRwLWNhY2hlL2ludmFsaWRhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0NiArMCww
IEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Ci0gICAgPHRpdGxlPkhUVFAgQ2FjaGUgLSBJbnZhbGlkYXRpb248L3RpdGxlPgot
ICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3Jn
LyNyZXF1ZXN0Ij4KLSAgICA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KLSAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Imh0dHAtY2FjaGUuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAg
IDxzY3JpcHQ+Ci0gICAgdmFyIHRlc3RzID0gWwotICAgICAgewotICAgICAgICBuYW1lOiAnSFRU
UCBjYWNoZSBpbnZhbGlkYXRlcyBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBP
U1QnLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHRlbXBs
YXRlOiAiZnJlc2giCi0gICAgICAgICAgfSwgewotICAgICAgICAgICAgcmVxdWVzdF9tZXRob2Q6
ICJQT1NUIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKLSAgICAgICAgICB9LCB7
Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0g
ICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdIVFRQIGNhY2hlIGRv
ZXMgbm90IGludmFsaWRhdGUgYWZ0ZXIgYSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNhZmUg
cmVxdWVzdCcsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAg
dGVtcGxhdGU6ICJmcmVzaCIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICByZXF1ZXN0X21l
dGhvZDogIlBPU1QiLAotICAgICAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIiwKLSAgICAgICAg
ICAgIHJlc3BvbnNlX3N0YXR1czogWzUwMCwgIkludGVybmFsIFNlcnZlciBFcnJvciJdCi0gICAg
ICAgICAgfSwgewotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKLSAgICAgICAg
ICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICdIVFRQIGNh
Y2hlIGludmFsaWRhdGVzIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgUFVUJywK
LSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTog
ImZyZXNoIgotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAiZnJlc2giLAot
ICAgICAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJQVVQiLAotICAgICAgICAgICAgcmVxdWVzdF9i
b2R5OiAiYWJjIgotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJu
b3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAg
ICAgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJl
c3BvbnNlIGZyb20gYSBERUxFVEUnLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsK
LSAgICAgICAgICAgIHRlbXBsYXRlOiAiZnJlc2giCi0gICAgICAgICAgfSwgewotICAgICAgICAg
ICAgcmVxdWVzdF9tZXRob2Q6ICJERUxFVEUiLAotICAgICAgICAgICAgcmVxdWVzdF9ib2R5OiAi
YWJjIgotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2Fj
aGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAg
bmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbnNl
IGZyb20gYW4gdW5rbm93biBtZXRob2QnLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAg
IHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAiZnJlc2giCi0gICAgICAgICAgfSwgewotICAgICAg
ICAgICAgcmVxdWVzdF9tZXRob2Q6ICJGT08iLAotICAgICAgICAgICAgcmVxdWVzdF9ib2R5OiAi
YWJjIgotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2Fj
aGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLQotCi0gICAgICB7Ci0gICAg
ICAgIG5hbWU6ICdIVFRQIGNhY2hlIGludmFsaWRhdGVzIExvY2F0aW9uIFVSTCBhZnRlciBhIHN1
Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIFBPU1QnLAotICAgICAgICByZXF1ZXN0czogWwotICAg
ICAgICAgIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAibG9jYXRpb24iCi0gICAgICAgICAgfSwg
ewotICAgICAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJQT1NUIiwKLSAgICAgICAgICAgIHJlcXVl
c3RfYm9keTogImFiYyIsCi0gICAgICAgICAgICB0ZW1wbGF0ZTogImxjbF9yZXNwb25zZSIKLSAg
ICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImxvY2F0aW9uIiwKLSAgICAgICAg
ICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQot
ICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ0hUVFAgY2FjaGUgZG9lcyBub3QgaW52
YWxpZGF0ZSBMb2NhdGlvbiBVUkwgYWZ0ZXIgYSBmYWlsZWQgcmVzcG9uc2UgZnJvbSBhbiB1bnNh
ZmUgcmVxdWVzdCcsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAg
ICAgdGVtcGxhdGU6ICJsb2NhdGlvbiIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1w
bGF0ZTogImxjbF9yZXNwb25zZSIsCi0gICAgICAgICAgICByZXF1ZXN0X21ldGhvZDogIlBPU1Qi
LAotICAgICAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIiwKLSAgICAgICAgICAgIHJlc3BvbnNl
X3N0YXR1czogWzUwMCwgIkludGVybmFsIFNlcnZlciBFcnJvciJdCi0gICAgICAgICAgfSwgewot
ICAgICAgICAgICAgdGVtcGxhdGU6ICJsb2NhdGlvbiIsCi0gICAgICAgICAgICBleHBlY3RlZF90
eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsK
LSAgICAgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgTG9jYXRpb24gVVJMIGFmdGVy
IGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgUFVUJywKLSAgICAgICAgcmVxdWVzdHM6IFsK
LSAgICAgICAgICB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImxvY2F0aW9uIgotICAgICAgICAg
IH0sIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNlIiwKLSAgICAgICAgICAg
IHJlcXVlc3RfbWV0aG9kOiAiUFVUIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIK
LSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImxvY2F0aW9uIiwKLSAgICAg
ICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAg
XQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0
ZXMgTG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgREVMRVRF
JywKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICB0ZW1wbGF0
ZTogImxvY2F0aW9uIgotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAibGNs
X3Jlc3BvbnNlIiwKLSAgICAgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiREVMRVRFIiwKLSAgICAg
ICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0
ZW1wbGF0ZTogImxvY2F0aW9uIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2Fj
aGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAg
bmFtZTogJ0hUVFAgY2FjaGUgaW52YWxpZGF0ZXMgTG9jYXRpb24gVVJMIGFmdGVyIGEgc3VjY2Vz
c2Z1bCByZXNwb25zZSBmcm9tIGFuIHVua25vd24gbWV0aG9kJywKLSAgICAgICAgcmVxdWVzdHM6
IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImxvY2F0aW9uIgotICAgICAg
ICAgIH0sIHsKLSAgICAgICAgICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNlIiwKLSAgICAgICAg
ICAgIHJlcXVlc3RfbWV0aG9kOiAiRk9PIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFi
YyIKLSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImxvY2F0aW9uIiwKLSAg
ICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAg
ICAgXQotICAgICAgfSwKLQotCi0KLSAgICAgIHsKLSAgICAgICAgbmFtZTogJ0hUVFAgY2FjaGUg
aW52YWxpZGF0ZXMgQ29udGVudC1Mb2NhdGlvbiBVUkwgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3Bv
bnNlIGZyb20gYSBQT1NUJywKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICB0ZW1wbGF0ZTogImNvbnRlbnRfbG9jYXRpb24iCi0gICAgICAgICAgfSwgewotICAg
ICAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJQT1NUIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9k
eTogImFiYyIsCi0gICAgICAgICAgICB0ZW1wbGF0ZTogImxjbF9yZXNwb25zZSIKLSAgICAgICAg
ICB9LCB7Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImNvbnRlbnRfbG9jYXRpb24iLAotICAgICAg
ICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBd
Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnSFRUUCBjYWNoZSBkb2VzIG5vdCBp
bnZhbGlkYXRlIENvbnRlbnQtTG9jYXRpb24gVVJMIGFmdGVyIGEgZmFpbGVkIHJlc3BvbnNlIGZy
b20gYW4gdW5zYWZlIHJlcXVlc3QnLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsK
LSAgICAgICAgICAgIHRlbXBsYXRlOiAiY29udGVudF9sb2NhdGlvbiIKLSAgICAgICAgICB9LCB7
Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImxjbF9yZXNwb25zZSIsCi0gICAgICAgICAgICByZXF1
ZXN0X21ldGhvZDogIlBPU1QiLAotICAgICAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIiwKLSAg
ICAgICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzUwMCwgIkludGVybmFsIFNlcnZlciBFcnJvciJd
Ci0gICAgICAgICAgfSwgewotICAgICAgICAgICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9u
IiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiCi0gICAgICAgICAgfQotICAg
ICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZh
bGlkYXRlcyBDb250ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2Ug
ZnJvbSBhIFBVVCcsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAg
ICAgdGVtcGxhdGU6ICJjb250ZW50X2xvY2F0aW9uIgotICAgICAgICAgIH0sIHsKLSAgICAgICAg
ICAgIHRlbXBsYXRlOiAibGNsX3Jlc3BvbnNlIiwKLSAgICAgICAgICAgIHJlcXVlc3RfbWV0aG9k
OiAiUFVUIiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKLSAgICAgICAgICB9LCB7
Ci0gICAgICAgICAgICB0ZW1wbGF0ZTogImNvbnRlbnRfbG9jYXRpb24iLAotICAgICAgICAgICAg
ZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAg
ICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250
ZW50LUxvY2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIERFTEVU
RScsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgdGVtcGxh
dGU6ICJjb250ZW50X2xvY2F0aW9uIgotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIHRlbXBs
YXRlOiAibGNsX3Jlc3BvbnNlIiwKLSAgICAgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiREVMRVRF
IiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKLSAgICAgICAgICB9LCB7Ci0gICAg
ICAgICAgICB0ZW1wbGF0ZTogImNvbnRlbnRfbG9jYXRpb24iLAotICAgICAgICAgICAgZXhwZWN0
ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAot
ICAgICAgewotICAgICAgICBuYW1lOiAnSFRUUCBjYWNoZSBpbnZhbGlkYXRlcyBDb250ZW50LUxv
Y2F0aW9uIFVSTCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhbiB1bmtub3duIG1l
dGhvZCcsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgdGVt
cGxhdGU6ICJjb250ZW50X2xvY2F0aW9uIgotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIHRl
bXBsYXRlOiAibGNsX3Jlc3BvbnNlIiwKLSAgICAgICAgICAgIHJlcXVlc3RfbWV0aG9kOiAiRk9P
IiwKLSAgICAgICAgICAgIHJlcXVlc3RfYm9keTogImFiYyIKLSAgICAgICAgICB9LCB7Ci0gICAg
ICAgICAgICB0ZW1wbGF0ZTogImNvbnRlbnRfbG9jYXRpb24iLAotICAgICAgICAgICAgZXhwZWN0
ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9Ci0K
LSAgICBdOwotICAgIHJ1bl90ZXN0cyh0ZXN0cyk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0aWFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0
aWFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjE4NWI4M2Fl
YzVmZTBkNzg0MTM0M2YxYjUyZWU4N2FhY2ExOWM1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi0KLVBBU1MgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBj
b250ZW50IGFuZCByZXVzZXMgaXQKLUZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgY29tcGxldGUgcmVz
cG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChieXRlLXJhbmdlLXNwZWMp
IGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgotRkFJTCBIVFRQIGNhY2hlIHN0
b3JlcyBjb21wbGV0ZSByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQg
KGFic2VudCBsYXN0LWJ5dGUtcG9zKSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMg
bm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290
IDIKLUZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgY29tcGxldGUgcmVzcG9uc2UgYW5kIHNlcnZlcyBz
bWFsbGVyIHJhbmdlcyBmcm9tIGl0IChzdWZmaXgtYnl0ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVz
c190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKLUZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlh
bCByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGJ5dGUtcmFuZ2Ut
c3BlYykgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2Fj
aGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCi1GQUlMIEhUVFAgY2Fj
aGUgc3RvcmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9t
IGl0IChhYnNlbnQgbGFzdC1ieXRlLXBvcykgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBk
b2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0
IGdvdCAyCi1GQUlMIEhUVFAgY2FjaGUgc3RvcmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZl
cyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChzdWZmaXgtYnl0ZS1yYW5nZS1zcGVjKSBhc3NlcnRf
bGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKLUZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgcGFy
dGlhbCBjb250ZW50IGFuZCBjb21wbGV0ZXMgaXQgYXNzZXJ0X2VxdWFsczogcmVxdWVzdCAyIGhl
YWRlciByYW5nZSB2YWx1ZSBpcyAidW5kZWZpbmVkIiwgbm90ICJieXRlcz01LSIgZXhwZWN0ZWQg
KHN0cmluZykgImJ5dGVzPTUtIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvcGFydGlhbC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3BhcnRpYWwuYW55LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTg1YjgzYWVjNWZlMGQ3ODQxMzQzZjFiNTJlZTg3YWFj
YTE5YzVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3BhcnRpYWwuYW55LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACisKK1BBU1MgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBjb250ZW50
IGFuZCByZXVzZXMgaXQKK0ZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgY29tcGxldGUgcmVzcG9uc2Ug
YW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChieXRlLXJhbmdlLXNwZWMpIGFzc2Vy
dF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgorRkFJTCBIVFRQIGNhY2hlIHN0b3JlcyBj
b21wbGV0ZSByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGFic2Vu
dCBsYXN0LWJ5dGUtcG9zKSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNv
bWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZB
SUwgSFRUUCBjYWNoZSBzdG9yZXMgY29tcGxldGUgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVy
IHJhbmdlcyBmcm9tIGl0IChzdWZmaXgtYnl0ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVzc190aGFu
OiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCByZXNw
b25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGJ5dGUtcmFuZ2Utc3BlYykg
YXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitGQUlMIEhUVFAgY2FjaGUgc3Rv
cmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChh
YnNlbnQgbGFzdC1ieXRlLXBvcykgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5v
dCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAy
CitGQUlMIEhUVFAgY2FjaGUgc3RvcmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFs
bGVyIHJhbmdlcyBmcm9tIGl0IChzdWZmaXgtYnl0ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVzc190
aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJl
ciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBj
b250ZW50IGFuZCBjb21wbGV0ZXMgaXQgYXNzZXJ0X2VxdWFsczogcmVxdWVzdCAyIGhlYWRlciBy
YW5nZSB2YWx1ZSBpcyAidW5kZWZpbmVkIiwgbm90ICJieXRlcz01LSIgZXhwZWN0ZWQgKHN0cmlu
ZykgImJ5dGVzPTUtIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAt
Y2FjaGUvcGFydGlhbC5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0aWFsLmFueS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvcGFydGlhbC5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBp
cyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1w
bGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2Fj
aGUvcGFydGlhbC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc1Yjgx
MTVmNWNiNTRjZTYyZjlhZjQ0NTEwZmM1MWI2OTgyNmI4OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNo
ZS9wYXJ0aWFsLmFueS5qcwpAQCAtMCwwICsxLDE4NyBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRv
dyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPUhUVFAgQ2FjaGUgLSBQYXJ0aWFsIENvbnRlbnQKKy8v
IE1FVEE6IHRpbWVvdXQ9bG9uZworLy8gTUVUQTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKKy8v
IE1FVEE6IHNjcmlwdD0vY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzCisvLyBNRVRBOiBzY3Jp
cHQ9aHR0cC1jYWNoZS5qcworCit2YXIgdGVzdHMgPSBbCisgIHsKKyAgICBuYW1lOiAiSFRUUCBj
YWNoZSBzdG9yZXMgcGFydGlhbCBjb250ZW50IGFuZCByZXVzZXMgaXQiLAorICAgIHJlcXVlc3Rz
OiBbCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsnUmFu
Z2UnLCAiYnl0ZXM9LTUiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9zdGF0dXM6IFsy
MDYsICJQYXJ0aWFsIENvbnRlbnQiXSwKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAg
ICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTM2MDAiXSwKKyAgICAgICAgICBbIkNv
bnRlbnQtUmFuZ2UiLCAiYnl0ZXMgNC05LzEwIl0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9u
c2VfYm9keTogIjAxMjM0IiwKKyAgICAgICAgZXhwZWN0ZWRfcmVxdWVzdF9oZWFkZXJzOiBbCisg
ICAgICAgICAgWyJSYW5nZSIsICJieXRlcz0tNSJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAg
ICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiUmFuZ2UiLCAiYnl0
ZXM9LTUiXQorICAgICAgICBdLAorICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIiwKKyAg
ICAgICAgZXhwZWN0ZWRfc3RhdHVzOiAyMDYsCisgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX3Rl
eHQ6ICIwMTIzNCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBj
YWNoZSBzdG9yZXMgY29tcGxldGUgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBm
cm9tIGl0IChieXRlLXJhbmdlLXNwZWMpIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAg
ICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1h
eC1hZ2U9MzYwMCJdCisgICAgICAgIF0sCisgICAgICAgIHJlc3BvbnNlX2JvZHk6ICIwMTIzNDU2
Nzg5MCIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAg
ICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9MC0xIl0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0
ZWRfdHlwZTogImNhY2hlZCIsCisgICAgICAgIGV4cGVjdGVkX3N0YXR1czogMjA2LAorICAgICAg
ICBleHBlY3RlZF9yZXNwb25zZV90ZXh0OiAiMDEiCisgICAgICB9LAorICAgIF0KKyAgfSwKKyAg
eworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0b3JlcyBjb21wbGV0ZSByZXNwb25zZSBhbmQgc2Vy
dmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGFic2VudCBsYXN0LWJ5dGUtcG9zKSIsCisgICAg
cmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAg
ICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTM2MDAiXSwKKyAgICAgICAgXSwKKyAgICAg
ICAgcmVzcG9uc2VfYm9keTogIjAxMjM0NTY3ODkwIgorICAgICAgfSwKKyAgICAgIHsKKyAgICAg
ICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWydSYW5nZScsICJieXRlcz0xLSJdCisg
ICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiLAorICAgICAgICBleHBl
Y3RlZF9zdGF0dXM6IDIwNiwKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogIjEyMzQ1
Njc4OTAiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUg
c3RvcmVzIGNvbXBsZXRlIHJlc3BvbnNlIGFuZCBzZXJ2ZXMgc21hbGxlciByYW5nZXMgZnJvbSBp
dCAoc3VmZml4LWJ5dGUtcmFuZ2Utc3BlYykiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7Cisg
ICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAi
bWF4LWFnZT0zNjAwIl0sCisgICAgICAgIF0sCisgICAgICAgIHJlc3BvbnNlX2JvZHk6ICIwMTIz
NDU2Nzg5QSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwor
ICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9LTEiXQorICAgICAgICBdLAorICAgICAgICBleHBl
Y3RlZF90eXBlOiAiY2FjaGVkIiwKKyAgICAgICAgZXhwZWN0ZWRfc3RhdHVzOiAyMDYsCisgICAg
ICAgIGV4cGVjdGVkX3Jlc3BvbnNlX3RleHQ6ICJBIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAg
eworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0b3JlcyBwYXJ0aWFsIHJlc3BvbnNlIGFuZCBzZXJ2
ZXMgc21hbGxlciByYW5nZXMgZnJvbSBpdCAoYnl0ZS1yYW5nZS1zcGVjKSIsCisgICAgcmVxdWVz
dHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWydS
YW5nZScsICJieXRlcz0tNSJdCisgICAgICAgIF0sCisgICAgICAgIHJlc3BvbnNlX3N0YXR1czog
WzIwNiwgIlBhcnRpYWwgQ29udGVudCJdLAorICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisg
ICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAorICAgICAgICAgIFsi
Q29udGVudC1SYW5nZSIsICJieXRlcyA0LTkvMTAiXQorICAgICAgICBdLAorICAgICAgICByZXNw
b25zZV9ib2R5OiAiMDEyMzQiCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXF1ZXN0X2hl
YWRlcnM6IFsKKyAgICAgICAgICBbJ1JhbmdlJywgImJ5dGVzPTYtOCJdCisgICAgICAgIF0sCisg
ICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiLAorICAgICAgICBleHBlY3RlZF9zdGF0dXM6
IDIwNiwKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogIjIzNCIKKyAgICAgIH0KKyAg
ICBdCisgIH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCByZXNw
b25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGFic2VudCBsYXN0LWJ5dGUt
cG9zKSIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJz
OiBbCisgICAgICAgICAgWydSYW5nZScsICJieXRlcz0tNSJdCisgICAgICAgIF0sCisgICAgICAg
IHJlc3BvbnNlX3N0YXR1czogWzIwNiwgIlBhcnRpYWwgQ29udGVudCJdLAorICAgICAgICByZXNw
b25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYw
MCJdLAorICAgICAgICAgIFsiQ29udGVudC1SYW5nZSIsICJieXRlcyA0LTkvMTAiXQorICAgICAg
ICBdLAorICAgICAgICByZXNwb25zZV9ib2R5OiAiMDEyMzQiCisgICAgICB9LAorICAgICAgewor
ICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIlJhbmdlIiwgImJ5dGVzPTYt
Il0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIsCisgICAgICAg
IGV4cGVjdGVkX3N0YXR1czogMjA2LAorICAgICAgICBleHBlY3RlZF9yZXNwb25zZV90ZXh0OiAi
MjM0IgorICAgICAgfQorICAgIF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0
b3JlcyBwYXJ0aWFsIHJlc3BvbnNlIGFuZCBzZXJ2ZXMgc21hbGxlciByYW5nZXMgZnJvbSBpdCAo
c3VmZml4LWJ5dGUtcmFuZ2Utc3BlYykiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAg
ICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9LTUiXQor
ICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9zdGF0dXM6IFsyMDYsICJQYXJ0aWFsIENvbnRl
bnQiXSwKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiQ2FjaGUtQ29u
dHJvbCIsICJtYXgtYWdlPTM2MDAiXSwKKyAgICAgICAgICBbIkNvbnRlbnQtUmFuZ2UiLCAiYnl0
ZXMgNC05LzEwIl0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9uc2VfYm9keTogIjAxMjM0Igor
ICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAg
WydSYW5nZScsICJieXRlcz0tMSJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6
ICJjYWNoZWQiLAorICAgICAgICBleHBlY3RlZF9zdGF0dXM6IDIwNiwKKyAgICAgICAgZXhwZWN0
ZWRfcmVzcG9uc2VfdGV4dDogIjQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFt
ZTogIkhUVFAgY2FjaGUgc3RvcmVzIHBhcnRpYWwgY29udGVudCBhbmQgY29tcGxldGVzIGl0IiwK
KyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAg
ICAgICAgICBbJ1JhbmdlJywgImJ5dGVzPS01Il0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9u
c2Vfc3RhdHVzOiBbMjA2LCAiUGFydGlhbCBDb250ZW50Il0sCisgICAgICAgIHJlc3BvbnNlX2hl
YWRlcnM6IFsKKyAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCisg
ICAgICAgICAgWyJDb250ZW50LVJhbmdlIiwgImJ5dGVzIDAtNC8xMCJdCisgICAgICAgIF0sCisg
ICAgICAgIHJlc3BvbnNlX2JvZHk6ICIwMTIzNCIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAg
IGV4cGVjdGVkX3JlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsicmFuZ2UiLCAiYnl0ZXM9
NS0iXQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICB9LAorXTsKK3J1bl90ZXN0cyh0ZXN0
cyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNo
ZS9wYXJ0aWFsLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxODViODNhZWM1
ZmUwZDc4NDEzNDNmMWI1MmVlODdhYWNhMTljNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFy
dGlhbC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgSFRU
UCBjYWNoZSBzdG9yZXMgcGFydGlhbCBjb250ZW50IGFuZCByZXVzZXMgaXQKK0ZBSUwgSFRUUCBj
YWNoZSBzdG9yZXMgY29tcGxldGUgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBm
cm9tIGl0IChieXRlLXJhbmdlLXNwZWMpIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9l
cyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBn
b3QgMgorRkFJTCBIVFRQIGNhY2hlIHN0b3JlcyBjb21wbGV0ZSByZXNwb25zZSBhbmQgc2VydmVz
IHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGFic2VudCBsYXN0LWJ5dGUtcG9zKSBhc3NlcnRfbGVz
c190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZBSUwgSFRUUCBjYWNoZSBzdG9yZXMgY29tcGxl
dGUgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChzdWZmaXgtYnl0
ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUg
ZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZBSUwg
SFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFu
Z2VzIGZyb20gaXQgKGJ5dGUtcmFuZ2Utc3BlYykgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2Ug
MiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIg
YnV0IGdvdCAyCitGQUlMIEhUVFAgY2FjaGUgc3RvcmVzIHBhcnRpYWwgcmVzcG9uc2UgYW5kIHNl
cnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChhYnNlbnQgbGFzdC1ieXRlLXBvcykgYXNzZXJ0
X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQg
YSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitGQUlMIEhUVFAgY2FjaGUgc3RvcmVzIHBh
cnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChzdWZmaXgt
Ynl0ZS1yYW5nZS1zcGVjKSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNv
bWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZB
SUwgSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBjb250ZW50IGFuZCBjb21wbGV0ZXMgaXQgYXNz
ZXJ0X2VxdWFsczogcmVxdWVzdCAyIGhlYWRlciByYW5nZSB2YWx1ZSBpcyAidW5kZWZpbmVkIiwg
bm90ICJieXRlcz01LSIgZXhwZWN0ZWQgKHN0cmluZykgImJ5dGVzPTUtIiBidXQgZ290ICh1bmRl
ZmluZWQpIHVuZGVmaW5lZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5hbnkud29ya2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvcGFydGlhbC5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2
OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0
aWFsLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1
aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQg
dGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFy
dGlhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlL3BhcnRpYWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOGYwYjUyOGU4Y2UzOTZjOTBhODdmYzc2YjY0ZjkzMGU5OTcwMDA2OC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcGFydGlhbC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTk4ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxo
ZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+SFRUUCBDYWNoZSAt
IFBhcnRpYWwgQ29udGVudDwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxtZXRhIG5hbWU9InRp
bWVvdXQiIGNvbnRlbnQ9ImxvbmciPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3Vi
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iaHR0cC1jYWNoZS5qcyI+PC9zY3JpcHQ+
Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbCi0g
ICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0b3JlcyBwYXJ0aWFsIGNvbnRlbnQg
YW5kIHJldXNlcyBpdCIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAg
ICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9
LTUiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzIwNiwg
IlBhcnRpYWwgQ29udGVudCJdLAotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAg
ICAgICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAg
ICAgIFsiQ29udGVudC1SYW5nZSIsICJieXRlcyA0LTkvMTAiXQotICAgICAgICAgICAgXSwKLSAg
ICAgICAgICAgIHJlc3BvbnNlX2JvZHk6ICIwMTIzNCIsCi0gICAgICAgICAgICBleHBlY3RlZF9y
ZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJSYW5nZSIsICJieXRlcz0tNSJdCi0g
ICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1
ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJSYW5nZSIsICJieXRlcz0tNSJdCi0gICAg
ICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIsCi0gICAgICAg
ICAgICBleHBlY3RlZF9zdGF0dXM6IDIwNiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNl
X3RleHQ6ICIwMTIzNCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7
Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0b3JlcyBjb21wbGV0ZSByZXNwb25zZSBhbmQg
c2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZyb20gaXQgKGJ5dGUtcmFuZ2Utc3BlYykiLAotICAgICAg
ICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6
IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdCi0gICAg
ICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2VfYm9keTogIjAxMjM0NTY3ODkwIgotICAg
ICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0g
ICAgICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9MC0xIl0KLSAgICAgICAgICAgIF0sCi0gICAg
ICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3N0
YXR1czogMjA2LAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogIjAxIgotICAg
ICAgICAgIH0sCi0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJI
VFRQIGNhY2hlIHN0b3JlcyBjb21wbGV0ZSByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFu
Z2VzIGZyb20gaXQgKGFic2VudCBsYXN0LWJ5dGUtcG9zKSIsCi0gICAgICAgIHJlcXVlc3RzOiBb
Ci0gICAgICAgICAgewotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAg
ICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAgICBdLAot
ICAgICAgICAgICAgcmVzcG9uc2VfYm9keTogIjAxMjM0NTY3ODkwIgotICAgICAgICAgIH0sCi0g
ICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAg
IFsnUmFuZ2UnLCAiYnl0ZXM9MS0iXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVj
dGVkX3R5cGU6ICJjYWNoZWQiLAotICAgICAgICAgICAgZXhwZWN0ZWRfc3RhdHVzOiAyMDYsCi0g
ICAgICAgICAgICBleHBlY3RlZF9yZXNwb25zZV90ZXh0OiAiMTIzNDU2Nzg5MCIKLSAgICAgICAg
ICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNh
Y2hlIHN0b3JlcyBjb21wbGV0ZSByZXNwb25zZSBhbmQgc2VydmVzIHNtYWxsZXIgcmFuZ2VzIGZy
b20gaXQgKHN1ZmZpeC1ieXRlLXJhbmdlLXNwZWMpIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAg
ICAgICAgICB7Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAg
IFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTM2MDAiXSwKLSAgICAgICAgICAgIF0sCi0gICAg
ICAgICAgICByZXNwb25zZV9ib2R5OiAiMDEyMzQ1Njc4OUEiCi0gICAgICAgICAgfSwKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWydS
YW5nZScsICJieXRlcz0tMSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRf
dHlwZTogImNhY2hlZCIsCi0gICAgICAgICAgICBleHBlY3RlZF9zdGF0dXM6IDIwNiwKLSAgICAg
ICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX3RleHQ6ICJBIgotICAgICAgICAgIH0KLSAgICAgICAg
XQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgc3RvcmVzIHBh
cnRpYWwgcmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChieXRlLXJh
bmdlLXNwZWMpIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAg
ICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWydSYW5nZScsICJieXRlcz0tNSJd
Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjA2LCAiUGFy
dGlhbCBDb250ZW50Il0sCi0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAg
ICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTM2MDAiXSwKLSAgICAgICAgICAgICAg
WyJDb250ZW50LVJhbmdlIiwgImJ5dGVzIDQtOS8xMCJdCi0gICAgICAgICAgICBdLAotICAgICAg
ICAgICAgcmVzcG9uc2VfYm9keTogIjAxMjM0IgotICAgICAgICAgIH0sCi0gICAgICAgICAgewot
ICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsnUmFuZ2UnLCAi
Ynl0ZXM9Ni04Il0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAi
Y2FjaGVkIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3N0YXR1czogMjA2LAotICAgICAgICAgICAg
ZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogIjIzNCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAg
ICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHN0b3JlcyBwYXJ0aWFs
IHJlc3BvbnNlIGFuZCBzZXJ2ZXMgc21hbGxlciByYW5nZXMgZnJvbSBpdCAoYWJzZW50IGxhc3Qt
Ynl0ZS1wb3MpIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAg
ICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWydSYW5nZScsICJieXRlcz0tNSJd
Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbMjA2LCAiUGFy
dGlhbCBDb250ZW50Il0sCi0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAg
ICAgICAgIFsiQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTM2MDAiXSwKLSAgICAgICAgICAgICAg
WyJDb250ZW50LVJhbmdlIiwgImJ5dGVzIDQtOS8xMCJdCi0gICAgICAgICAgICBdLAotICAgICAg
ICAgICAgcmVzcG9uc2VfYm9keTogIjAxMjM0IgotICAgICAgICAgIH0sCi0gICAgICAgICAgewot
ICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiUmFuZ2UiLCAi
Ynl0ZXM9Ni0iXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJj
YWNoZWQiLAotICAgICAgICAgICAgZXhwZWN0ZWRfc3RhdHVzOiAyMDYsCi0gICAgICAgICAgICBl
eHBlY3RlZF9yZXNwb25zZV90ZXh0OiAiMjM0IgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAg
ICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgc3RvcmVzIHBhcnRpYWwg
cmVzcG9uc2UgYW5kIHNlcnZlcyBzbWFsbGVyIHJhbmdlcyBmcm9tIGl0IChzdWZmaXgtYnl0ZS1y
YW5nZS1zcGVjKSIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAg
ICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsnUmFuZ2UnLCAiYnl0ZXM9LTUi
XQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX3N0YXR1czogWzIwNiwgIlBh
cnRpYWwgQ29udGVudCJdLAotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAg
ICAgICAgICBbIkNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT0zNjAwIl0sCi0gICAgICAgICAgICAg
IFsiQ29udGVudC1SYW5nZSIsICJieXRlcyA0LTkvMTAiXQotICAgICAgICAgICAgXSwKLSAgICAg
ICAgICAgIHJlc3BvbnNlX2JvZHk6ICIwMTIzNCIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsK
LSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbJ1JhbmdlJywg
ImJ5dGVzPS0xIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAi
Y2FjaGVkIiwKLSAgICAgICAgICAgIGV4cGVjdGVkX3N0YXR1czogMjA2LAotICAgICAgICAgICAg
ZXhwZWN0ZWRfcmVzcG9uc2VfdGV4dDogIjQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAg
ICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBzdG9yZXMgcGFydGlhbCBj
b250ZW50IGFuZCBjb21wbGV0ZXMgaXQiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAg
IHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbJ1Jhbmdl
JywgImJ5dGVzPS01Il0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25zZV9zdGF0
dXM6IFsyMDYsICJQYXJ0aWFsIENvbnRlbnQiXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRl
cnM6IFsKLSAgICAgICAgICAgICAgWyJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MzYwMCJdLAot
ICAgICAgICAgICAgICBbIkNvbnRlbnQtUmFuZ2UiLCAiYnl0ZXMgMC00LzEwIl0KLSAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICByZXNwb25zZV9ib2R5OiAiMDEyMzQiCi0gICAgICAgICAgfSwK
LSAgICAgICAgICB7Ci0gICAgICAgICAgICBleHBlY3RlZF9yZXF1ZXN0X2hlYWRlcnM6IFsKLSAg
ICAgICAgICAgICAgWyJyYW5nZSIsICJieXRlcz01LSJdCi0gICAgICAgICAgICBdCi0gICAgICAg
ICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgIF07Ci0gICAgcnVuX3Rlc3RzKHRlc3RzKTsK
LSAgICA8L3NjcmlwdD4KLSAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3Qt
cGF0Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Y2JjNzVhYzk1Y2E0ZjA0NWU4ZTMzMGNlMDBlZTQ1Yjky
OWVhMzg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNo
ZS9wb3N0LXBhdGNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAot
Ci1GQUlMIEhUVFAgY2FjaGUgdXNlcyBjb250ZW50IGFmdGVyIFBBVENIIHJlcXVlc3Qgd2l0aCBy
ZXNwb25zZSBjb250YWluaW5nIENvbnRlbnQtTG9jYXRpb24gYW5kIGNhY2hlLWFsbG93aW5nIGhl
YWRlciBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNo
ZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKLUZBSUwgSFRUUCBjYWNo
ZSB1c2VzIGNvbnRlbnQgYWZ0ZXIgUE9TVCByZXF1ZXN0IHdpdGggcmVzcG9uc2UgY29udGFpbmlu
ZyBDb250ZW50LUxvY2F0aW9uIGFuZCBjYWNoZS1hbGxvd2luZyBoZWFkZXIgYXNzZXJ0X2xlc3Nf
dGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNoLmFu
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvcG9zdC1wYXRjaC5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdjYmM3NWFjOTVjYTRmMDQ1ZThlMzMwY2UwMGVlNDViOTI5ZWEzODcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvcG9zdC1wYXRjaC5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
CitGQUlMIEhUVFAgY2FjaGUgdXNlcyBjb250ZW50IGFmdGVyIFBBVENIIHJlcXVlc3Qgd2l0aCBy
ZXNwb25zZSBjb250YWluaW5nIENvbnRlbnQtTG9jYXRpb24gYW5kIGNhY2hlLWFsbG93aW5nIGhl
YWRlciBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNo
ZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK0ZBSUwgSFRUUCBjYWNo
ZSB1c2VzIGNvbnRlbnQgYWZ0ZXIgUE9TVCByZXF1ZXN0IHdpdGggcmVzcG9uc2UgY29udGFpbmlu
ZyBDb250ZW50LUxvY2F0aW9uIGFuZCBjYWNoZS1hbGxvd2luZyBoZWFkZXIgYXNzZXJ0X2xlc3Nf
dGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNoLmFu
eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2
OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wb3N0
LXBhdGNoLmFueS5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0
IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBh
dGNoLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9wb3N0LXBhdGNoLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTY5YmFhNWM2
NjQ2YzUzMzk3NjE4YThmNjgxMGJhN2Y3MDNlZjkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bv
c3QtcGF0Y2guYW55LmpzCkBAIC0wLDAgKzEsNDYgQEAKKy8vIE1FVEE6IGdsb2JhbD13aW5kb3cs
d29ya2VyCisvLyBNRVRBOiB0aXRsZT1IVFRQIENhY2hlIC0gQ2FjaGluZyBQT1NUIGFuZCBQQVRD
SCByZXNwb25zZXMKKy8vIE1FVEE6IHRpbWVvdXQ9bG9uZworLy8gTUVUQTogc2NyaXB0PS9jb21t
b24vdXRpbHMuanMKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpz
CisvLyBNRVRBOiBzY3JpcHQ9aHR0cC1jYWNoZS5qcworCit2YXIgdGVzdHMgPSBbCisgIHsKKyAg
ICBuYW1lOiAiSFRUUCBjYWNoZSB1c2VzIGNvbnRlbnQgYWZ0ZXIgUEFUQ0ggcmVxdWVzdCB3aXRo
IHJlc3BvbnNlIGNvbnRhaW5pbmcgQ29udGVudC1Mb2NhdGlvbiBhbmQgY2FjaGUtYWxsb3dpbmcg
aGVhZGVyIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXF1ZXN0X21ldGhv
ZDogIlBBVENIIiwKKyAgICAgICAgcmVxdWVzdF9ib2R5OiAiYWJjIiwKKyAgICAgICAgcmVzcG9u
c2Vfc3RhdHVzOiBbMjAwLCAiT0siXSwKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAg
ICAgICAgIFsnQ2FjaGUtQ29udHJvbCcsICJwcml2YXRlLCBtYXgtYWdlPTEwMDAiXSwKKyAgICAg
ICAgICBbJ0NvbnRlbnQtTG9jYXRpb24nLCAiIl0KKyAgICAgICAgXSwKKyAgICAgICAgcmVzcG9u
c2VfYm9keTogImFiYyIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6
ICJjYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2Fj
aGUgdXNlcyBjb250ZW50IGFmdGVyIFBPU1QgcmVxdWVzdCB3aXRoIHJlc3BvbnNlIGNvbnRhaW5p
bmcgQ29udGVudC1Mb2NhdGlvbiBhbmQgY2FjaGUtYWxsb3dpbmcgaGVhZGVyIiwKKyAgICByZXF1
ZXN0czogWworICAgICAgeworICAgICAgICByZXF1ZXN0X21ldGhvZDogIlBPU1QiLAorICAgICAg
ICByZXF1ZXN0X2JvZHk6ICJhYmMiLAorICAgICAgICByZXNwb25zZV9zdGF0dXM6IFsyMDAsICJP
SyJdLAorICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWydDYWNoZS1Db250
cm9sJywgInByaXZhdGUsIG1heC1hZ2U9MTAwMCJdLAorICAgICAgICAgIFsnQ29udGVudC1Mb2Nh
dGlvbicsICIiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9ib2R5OiAiYWJjIgorICAg
ICAgfSwKKyAgICAgIHsKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKKyAgICAgIH0K
KyAgICBdCisgIH0KK107CitydW5fdGVzdHModGVzdHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3Qt
cGF0Y2guYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcG9zdC1wYXRjaC5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2JjNzVhYzk1Y2E0ZjA0NWU4ZTMzMGNlMDBlZTQ1
YjkyOWVhMzg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0ZBSUwgSFRUUCBjYWNoZSB1c2VzIGNvbnRl
bnQgYWZ0ZXIgUEFUQ0ggcmVxdWVzdCB3aXRoIHJlc3BvbnNlIGNvbnRhaW5pbmcgQ29udGVudC1M
b2NhdGlvbiBhbmQgY2FjaGUtYWxsb3dpbmcgaGVhZGVyIGFzc2VydF9sZXNzX3RoYW46IFJlc3Bv
bnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhh
biAyIGJ1dCBnb3QgMgorRkFJTCBIVFRQIGNhY2hlIHVzZXMgY29udGVudCBhZnRlciBQT1NUIHJl
cXVlc3Qgd2l0aCByZXNwb25zZSBjb250YWluaW5nIENvbnRlbnQtTG9jYXRpb24gYW5kIGNhY2hl
LWFsbG93aW5nIGhlYWRlciBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNv
bWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0
Y2guYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBh
NDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcG9zdC1wYXRjaC5hbnkud29y
a2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdl
YktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0
cC1jYWNoZS9wb3N0LXBhdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkw
MjVhOTZlNGUzNTAzODMwZDNkZjY5ZTZlMDAzNWUzMjE3ZGYxZWIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDU3ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFk
PgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+SFRUUCBDYWNoZSAtIENh
Y2hpbmcgUE9TVCBhbmQgUEFUQ0ggcmVzcG9uc2VzPC90aXRsZT4KLSAgICA8bWV0YSBuYW1lPSJo
ZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+Ci0gICAg
PG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Ci0gICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
L2NvbW1vbi91dGlscy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0
LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJodHRwLWNhY2hl
LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0PgotICAgIHZh
ciB0ZXN0cyA9IFsKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgdXNlcyBjb250
ZW50IGFmdGVyIFBBVENIIHJlcXVlc3Qgd2l0aCByZXNwb25zZSBjb250YWluaW5nIENvbnRlbnQt
TG9jYXRpb24gYW5kIGNhY2hlLWFsbG93aW5nIGhlYWRlciIsCi0gICAgICAgIHJlcXVlc3RzOiBb
Ci0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJQQVRDSCIsCi0gICAg
ICAgICAgICByZXF1ZXN0X2JvZHk6ICJhYmMiLAotICAgICAgICAgICAgcmVzcG9uc2Vfc3RhdHVz
OiBbMjAwLCAiT0siXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAg
ICAgICAgWydDYWNoZS1Db250cm9sJywgInByaXZhdGUsIG1heC1hZ2U9MTAwMCJdLAotICAgICAg
ICAgICAgICBbJ0NvbnRlbnQtTG9jYXRpb24nLCAiIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICByZXNwb25zZV9ib2R5OiAiYWJjIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAg
ICAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0K
LSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHVzZXMgY29udGVu
dCBhZnRlciBQT1NUIHJlcXVlc3Qgd2l0aCByZXNwb25zZSBjb250YWluaW5nIENvbnRlbnQtTG9j
YXRpb24gYW5kIGNhY2hlLWFsbG93aW5nIGhlYWRlciIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0g
ICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9tZXRob2Q6ICJQT1NUIiwKLSAgICAgICAg
ICAgIHJlcXVlc3RfYm9keTogImFiYyIsCi0gICAgICAgICAgICByZXNwb25zZV9zdGF0dXM6IFsy
MDAsICJPSyJdLAotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAg
ICBbJ0NhY2hlLUNvbnRyb2wnLCAicHJpdmF0ZSwgbWF4LWFnZT0xMDAwIl0sCi0gICAgICAgICAg
ICAgIFsnQ29udGVudC1Mb2NhdGlvbicsICIiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
IHJlc3BvbnNlX2JvZHk6ICJhYmMiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAg
ICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAg
ICAgfQotICAgIF07Ci0gICAgcnVuX3Rlc3RzKHRlc3RzKTsKLSAgICA8L3NjcmlwdD4KLSAgPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Jlc291cmNlcy9odHRwLWNhY2hlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNh
Y2hlL3Jlc291cmNlcy9odHRwLWNhY2hlLnB5CmluZGV4IDM1MWIyZWIzYzllZWMwMDZkODk3NmRj
NWZhZDFmNmRiOTkwY2Q3MzMuLmMxNzZiMjU1YTNmMjU2NzM4ZDUxNGUzNzkwNWVkNzczNzM5ODZi
MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvaHR0cC1jYWNoZS9yZXNvdXJjZXMvaHR0cC1jYWNoZS5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcmVz
b3VyY2VzL2h0dHAtY2FjaGUucHkKQEAgLTUsOTggKzUsMTAwIEBAIGltcG9ydCBqc29uCiBpbXBv
cnQgdGltZQogZnJvbSBiYXNlNjQgaW1wb3J0IGI2NGRlY29kZQogCi1OT1RFSERSUyA9IHNldChb
J2NvbnRlbnQtdHlwZScsICdhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4nLCAnbGFzdC1tb2Rp
ZmllZCcsICdldGFnJ10pCitmcm9tIHdwdHNlcnZlLnV0aWxzIGltcG9ydCBpc29tb3JwaGljX2Rl
Y29kZSwgaXNvbW9ycGhpY19lbmNvZGUKKworTk9URUhEUlMgPSBzZXQoW3UnY29udGVudC10eXBl
JywgdSdhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4nLCB1J2xhc3QtbW9kaWZpZWQnLCB1J2V0
YWcnXSkKIE5PQk9EWVNUQVRVUyA9IHNldChbMjA0LCAzMDRdKQotTE9DQVRJT05IRFJTID0gc2V0
KFsnbG9jYXRpb24nLCAnY29udGVudC1sb2NhdGlvbiddKQotREFURUhEUlMgPSBzZXQoWydkYXRl
JywgJ2V4cGlyZXMnLCAnbGFzdC1tb2RpZmllZCddKQorTE9DQVRJT05IRFJTID0gc2V0KFt1J2xv
Y2F0aW9uJywgdSdjb250ZW50LWxvY2F0aW9uJ10pCitEQVRFSERSUyA9IHNldChbdSdkYXRlJywg
dSdleHBpcmVzJywgdSdsYXN0LW1vZGlmaWVkJ10pCiAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3Bv
bnNlKToKLSAgICBkaXNwYXRjaCA9IHJlcXVlc3QuR0VULmZpcnN0KCJkaXNwYXRjaCIsIE5vbmUp
Ci0gICAgdXVpZCA9IHJlcXVlc3QuR0VULmZpcnN0KCJ1dWlkIiwgTm9uZSkKKyAgICBkaXNwYXRj
aCA9IHJlcXVlc3QuR0VULmZpcnN0KGIiZGlzcGF0Y2giLCBOb25lKQorICAgIHV1aWQgPSByZXF1
ZXN0LkdFVC5maXJzdChiInV1aWQiLCBOb25lKQogCi0gICAgaWYgcmVxdWVzdC5tZXRob2QgPT0g
Ik9QVElPTlMiOgorICAgIGlmIHJlcXVlc3QubWV0aG9kID09IHUiT1BUSU9OUyI6CiAgICAgICAg
IHJldHVybiBoYW5kbGVfcHJlZmxpZ2h0KHV1aWQsIHJlcXVlc3QsIHJlc3BvbnNlKQogICAgIGlm
IG5vdCB1dWlkOgotICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAoNDA0LCAiTm90IEZvdW5kIikK
LSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWlu
IikKLSAgICAgICAgcmV0dXJuICJVVUlEIG5vdCBmb3VuZCIKLSAgICBpZiBkaXNwYXRjaCA9PSAn
dGVzdCc6CisgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9ICg0MDQsIGIiTm90IEZvdW5kIikKKyAg
ICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQvcGxhaW4i
KQorICAgICAgICByZXR1cm4gYiJVVUlEIG5vdCBmb3VuZCIKKyAgICBpZiBkaXNwYXRjaCA9PSBi
J3Rlc3QnOgogICAgICAgICByZXR1cm4gaGFuZGxlX3Rlc3QodXVpZCwgcmVxdWVzdCwgcmVzcG9u
c2UpCi0gICAgZWxpZiBkaXNwYXRjaCA9PSAnc3RhdGUnOgorICAgIGVsaWYgZGlzcGF0Y2ggPT0g
YidzdGF0ZSc6CiAgICAgICAgIHJldHVybiBoYW5kbGVfc3RhdGUodXVpZCwgcmVxdWVzdCwgcmVz
cG9uc2UpCi0gICAgcmVzcG9uc2Uuc3RhdHVzID0gKDQwNCwgIk5vdCBGb3VuZCIpCi0gICAgcmVz
cG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIikKLSAgICByZXR1
cm4gIkZhbGx0aHJvdWdoIgorICAgIHJlc3BvbnNlLnN0YXR1cyA9ICg0MDQsIGIiTm90IEZvdW5k
IikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9wbGFp
biIpCisgICAgcmV0dXJuIGIiRmFsbHRocm91Z2giCiAKIGRlZiBoYW5kbGVfcHJlZmxpZ2h0KHV1
aWQsIHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICByZXNwb25zZS5zdGF0dXMgPSAoMjAwLCAiT0si
KQotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4i
LCAiKiIpCi0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkFjY2Vzcy1Db250cm9sLUFsbG93LU1l
dGhvZHMiLCAiR0VUIikKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQWNjZXNzLUNvbnRyb2wt
QWxsb3ctSGVhZGVycyIsICIqIikKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQWNjZXNzLUNv
bnRyb2wtTWF4LUFnZSIsICI4NjQwMCIpCi0gICAgcmV0dXJuICJQcmVmbGlnaHQgcmVxdWVzdCIK
KyAgICByZXNwb25zZS5zdGF0dXMgPSAoMjAwLCBiIk9LIikKKyAgICByZXNwb25zZS5oZWFkZXJz
LnNldChiIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsIGIiKiIpCisgICAgcmVzcG9uc2Uu
aGVhZGVycy5zZXQoYiJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIiwgYiJHRVQiKQorICAg
IHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIGIi
KiIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlIiwg
YiI4NjQwMCIpCisgICAgcmV0dXJuIGIiUHJlZmxpZ2h0IHJlcXVlc3QiCiAKIGRlZiBoYW5kbGVf
c3RhdGUodXVpZCwgcmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQo
YiJDb250ZW50LVR5cGUiLCBiInRleHQvcGxhaW4iKQogICAgIHJldHVybiBqc29uLmR1bXBzKHJl
cXVlc3Quc2VydmVyLnN0YXNoLnRha2UodXVpZCkpCiAKIGRlZiBoYW5kbGVfdGVzdCh1dWlkLCBy
ZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgc2VydmVyX3N0YXRlID0gcmVxdWVzdC5zZXJ2ZXIuc3Rh
c2gudGFrZSh1dWlkKSBvciBbXQogICAgIHRyeToKLSAgICAgICAgcmVxdWVzdHMgPSBqc29uLmxv
YWRzKGI2NGRlY29kZShyZXF1ZXN0LmhlYWRlcnMuZ2V0KCdUZXN0LVJlcXVlc3RzJywgIiIpKSkK
KyAgICAgICAgcmVxdWVzdHMgPSBqc29uLmxvYWRzKGI2NGRlY29kZShyZXF1ZXN0LmhlYWRlcnMu
Z2V0KGInVGVzdC1SZXF1ZXN0cycsIGIiIikpKQogICAgIGV4Y2VwdDoKLSAgICAgICAgcmVzcG9u
c2Uuc3RhdHVzID0gKDQwMCwgIkJhZCBSZXF1ZXN0IikKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVy
cy5zZXQoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIikKLSAgICAgICAgcmV0dXJuICJObyBv
ciBiYWQgVGVzdC1SZXF1ZXN0cyByZXF1ZXN0IGhlYWRlciIKKyAgICAgICAgcmVzcG9uc2Uuc3Rh
dHVzID0gKDQwMCwgYiJCYWQgUmVxdWVzdCIpCisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L3BsYWluIikKKyAgICAgICAgcmV0dXJuIGIiTm8gb3Ig
YmFkIFRlc3QtUmVxdWVzdHMgcmVxdWVzdCBoZWFkZXIiCiAgICAgY29uZmlnID0gcmVxdWVzdHNb
bGVuKHNlcnZlcl9zdGF0ZSldCiAgICAgaWYgbm90IGNvbmZpZzoKLSAgICAgICAgcmVzcG9uc2Uu
c3RhdHVzID0gKDQwNCwgIk5vdCBGb3VuZCIpCi0gICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpCi0gICAgICAgIHJldHVybiAiQ29uZmlnIG5v
dCBmb3VuZCIKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gKDQwNCwgYiJOb3QgRm91bmQiKQor
ICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9wbGFp
biIpCisgICAgICAgIHJldHVybiBiIkNvbmZpZyBub3QgZm91bmQiCiAgICAgbm90ZWRfaGVhZGVy
cyA9IHt9CiAgICAgbm93ID0gdGltZS50aW1lKCkKLSAgICBmb3IgaGVhZGVyIGluIGNvbmZpZy5n
ZXQoJ3Jlc3BvbnNlX2hlYWRlcnMnLCBbXSk6CisgICAgZm9yIGhlYWRlciBpbiBjb25maWcuZ2V0
KHUncmVzcG9uc2VfaGVhZGVycycsIFtdKToKICAgICAgICAgaWYgaGVhZGVyWzBdLmxvd2VyKCkg
aW4gTE9DQVRJT05IRFJTOiAjIG1hZ2ljIGxvY2F0aW9ucwogICAgICAgICAgICAgaWYgKGxlbiho
ZWFkZXJbMV0pID4gMCk6Ci0gICAgICAgICAgICAgICAgaGVhZGVyWzFdID0gIiVzJnRhcmdldD0l
cyIgJSAocmVxdWVzdC51cmwsIGhlYWRlclsxXSkKKyAgICAgICAgICAgICAgICBoZWFkZXJbMV0g
PSB1IiVzJnRhcmdldD0lcyIgJSAocmVxdWVzdC51cmwsIGhlYWRlclsxXSkKICAgICAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICAgICAgaGVhZGVyWzFdID0gcmVxdWVzdC51cmwKICAgICAgICAg
aWYgaGVhZGVyWzBdLmxvd2VyKCkgaW4gREFURUhEUlMgYW5kIGlzaW5zdGFuY2UoaGVhZGVyWzFd
LCBpbnQpOiAgIyBtYWdpYyBkYXRlcwogICAgICAgICAgICAgaGVhZGVyWzFdID0gaHR0cF9kYXRl
KG5vdywgaGVhZGVyWzFdKQotICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChoZWFkZXJbMF0s
IGhlYWRlclsxXSkKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoaXNvbW9ycGhpY19lbmNv
ZGUoaGVhZGVyWzBdKSwgaXNvbW9ycGhpY19lbmNvZGUoaGVhZGVyWzFdKSkKICAgICAgICAgaWYg
aGVhZGVyWzBdLmxvd2VyKCkgaW4gTk9URUhEUlM6CiAgICAgICAgICAgICBub3RlZF9oZWFkZXJz
W2hlYWRlclswXS5sb3dlcigpXSA9IGhlYWRlclsxXQogICAgIHN0YXRlID0gewotICAgICAgICAn
bm93Jzogbm93LAotICAgICAgICAncmVxdWVzdF9tZXRob2QnOiByZXF1ZXN0Lm1ldGhvZCwKLSAg
ICAgICAgJ3JlcXVlc3RfaGVhZGVycyc6IGRpY3QoW1toLmxvd2VyKCksIHJlcXVlc3QuaGVhZGVy
c1toXV0gZm9yIGggaW4gcmVxdWVzdC5oZWFkZXJzXSksCi0gICAgICAgICdyZXNwb25zZV9oZWFk
ZXJzJzogbm90ZWRfaGVhZGVycworICAgICAgICB1J25vdyc6IG5vdywKKyAgICAgICAgdSdyZXF1
ZXN0X21ldGhvZCc6IHJlcXVlc3QubWV0aG9kLAorICAgICAgICB1J3JlcXVlc3RfaGVhZGVycyc6
IGRpY3QoW1tpc29tb3JwaGljX2RlY29kZShoLmxvd2VyKCkpLCBpc29tb3JwaGljX2RlY29kZShy
ZXF1ZXN0LmhlYWRlcnNbaF0pXSBmb3IgaCBpbiByZXF1ZXN0LmhlYWRlcnNdKSwKKyAgICAgICAg
dSdyZXNwb25zZV9oZWFkZXJzJzogbm90ZWRfaGVhZGVycwogICAgIH0KICAgICBzZXJ2ZXJfc3Rh
dGUuYXBwZW5kKHN0YXRlKQogICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh1dWlkLCBzZXJ2
ZXJfc3RhdGUpCiAKLSAgICBpZiAiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiBub3QgaW4g
bm90ZWRfaGVhZGVyczoKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkFjY2Vzcy1Db250
cm9sLUFsbG93LU9yaWdpbiIsICIqIikKLSAgICBpZiAiY29udGVudC10eXBlIiBub3QgaW4gbm90
ZWRfaGVhZGVyczoKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIs
ICJ0ZXh0L3BsYWluIikKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiU2VydmVyLVJlcXVlc3Qt
Q291bnQiLCBsZW4oc2VydmVyX3N0YXRlKSkKKyAgICBpZiB1ImFjY2Vzcy1jb250cm9sLWFsbG93
LW9yaWdpbiIgbm90IGluIG5vdGVkX2hlYWRlcnM6CisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMu
c2V0KGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgYiIqIikKKyAgICBpZiB1ImNvbnRl
bnQtdHlwZSIgbm90IGluIG5vdGVkX2hlYWRlcnM6CisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMu
c2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L3BsYWluIikKKyAgICByZXNwb25zZS5oZWFkZXJz
LnNldChiIlNlcnZlci1SZXF1ZXN0LUNvdW50IiwgbGVuKHNlcnZlcl9zdGF0ZSkpCiAKLSAgICBj
b2RlLCBwaHJhc2UgPSBjb25maWcuZ2V0KCJyZXNwb25zZV9zdGF0dXMiLCBbMjAwLCAiT0siXSkK
LSAgICBpZiBjb25maWcuZ2V0KCJleHBlY3RlZF90eXBlIiwgIiIpLmVuZHN3aXRoKCd2YWxpZGF0
ZWQnKToKLSAgICAgICAgcmVmX2hkcnMgPSBzZXJ2ZXJfc3RhdGVbMF1bJ3Jlc3BvbnNlX2hlYWRl
cnMnXQotICAgICAgICBwcmV2aW91c19sbSA9IHJlZl9oZHJzLmdldCgnbGFzdC1tb2RpZmllZCcs
IEZhbHNlKQotICAgICAgICBpZiBwcmV2aW91c19sbSBhbmQgcmVxdWVzdC5oZWFkZXJzLmdldCgi
SWYtTW9kaWZpZWQtU2luY2UiLCBGYWxzZSkgPT0gcHJldmlvdXNfbG06Ci0gICAgICAgICAgICBj
b2RlLCBwaHJhc2UgPSBbMzA0LCAiTm90IE1vZGlmaWVkIl0KLSAgICAgICAgcHJldmlvdXNfZXRh
ZyA9IHJlZl9oZHJzLmdldCgnZXRhZycsIEZhbHNlKQotICAgICAgICBpZiBwcmV2aW91c19ldGFn
IGFuZCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJJZi1Ob25lLU1hdGNoIiwgRmFsc2UpID09IHByZXZp
b3VzX2V0YWc6Ci0gICAgICAgICAgICBjb2RlLCBwaHJhc2UgPSBbMzA0LCAiTm90IE1vZGlmaWVk
Il0KKyAgICBjb2RlLCBwaHJhc2UgPSBjb25maWcuZ2V0KHUicmVzcG9uc2Vfc3RhdHVzIiwgWzIw
MCwgYiJPSyJdKQorICAgIGlmIGNvbmZpZy5nZXQodSJleHBlY3RlZF90eXBlIiwgdSIiKS5lbmRz
d2l0aCh1J3ZhbGlkYXRlZCcpOgorICAgICAgICByZWZfaGRycyA9IHNlcnZlcl9zdGF0ZVswXVt1
J3Jlc3BvbnNlX2hlYWRlcnMnXQorICAgICAgICBwcmV2aW91c19sbSA9IHJlZl9oZHJzLmdldCh1
J2xhc3QtbW9kaWZpZWQnLCBGYWxzZSkKKyAgICAgICAgaWYgcHJldmlvdXNfbG0gYW5kIHJlcXVl
c3QuaGVhZGVycy5nZXQoYiJJZi1Nb2RpZmllZC1TaW5jZSIsIEZhbHNlKSA9PSBpc29tb3JwaGlj
X2VuY29kZShwcmV2aW91c19sbSk6CisgICAgICAgICAgICBjb2RlLCBwaHJhc2UgPSBbMzA0LCBi
Ik5vdCBNb2RpZmllZCJdCisgICAgICAgIHByZXZpb3VzX2V0YWcgPSByZWZfaGRycy5nZXQodSdl
dGFnJywgRmFsc2UpCisgICAgICAgIGlmIHByZXZpb3VzX2V0YWcgYW5kIHJlcXVlc3QuaGVhZGVy
cy5nZXQoYiJJZi1Ob25lLU1hdGNoIiwgRmFsc2UpID09IGlzb21vcnBoaWNfZW5jb2RlKHByZXZp
b3VzX2V0YWcpOgorICAgICAgICAgICAgY29kZSwgcGhyYXNlID0gWzMwNCwgYiJOb3QgTW9kaWZp
ZWQiXQogICAgICAgICBpZiBjb2RlICE9IDMwNDoKLSAgICAgICAgICAgIGNvZGUsIHBocmFzZSA9
IFs5OTksICczMDQgTm90IEdlbmVyYXRlZCddCisgICAgICAgICAgICBjb2RlLCBwaHJhc2UgPSBb
OTk5LCBiJzMwNCBOb3QgR2VuZXJhdGVkJ10KICAgICByZXNwb25zZS5zdGF0dXMgPSAoY29kZSwg
cGhyYXNlKQogCi0gICAgY29udGVudCA9IGNvbmZpZy5nZXQoInJlc3BvbnNlX2JvZHkiLCB1dWlk
KQorICAgIGNvbnRlbnQgPSBjb25maWcuZ2V0KHUicmVzcG9uc2VfYm9keSIsIHV1aWQpCiAgICAg
aWYgY29kZSBpbiBOT0JPRFlTVEFUVVM6Ci0gICAgICAgIHJldHVybiAiIgorICAgICAgICByZXR1
cm4gYiIiCiAgICAgcmV0dXJuIGNvbnRlbnQKIAogCkBAIC0xMDcsMTMgKzEwOSwxMyBAQCBkZWYg
Z2V0X2hlYWRlcihoZWFkZXJzLCBoZWFkZXJfbmFtZSk6CiAgICAgICAgICAgICByZXN1bHQgPSBo
ZWFkZXJbMV0KICAgICByZXR1cm4gcmVzdWx0CiAKLVdFRUtEQVlTID0gWydNb24nLCAnVHVlJywg
J1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nXQotTU9OVEhTID0gW05vbmUsICdKYW4n
LCAnRmViJywgJ01hcicsICdBcHInLCAnTWF5JywgJ0p1bicsICdKdWwnLAotICAgICAgICAgICdB
dWcnLCAnU2VwJywgJ09jdCcsICdOb3YnLCAnRGVjJ10KK1dFRUtEQVlTID0gW3UnTW9uJywgdSdU
dWUnLCB1J1dlZCcsIHUnVGh1JywgdSdGcmknLCB1J1NhdCcsIHUnU3VuJ10KK01PTlRIUyA9IFtO
b25lLCB1J0phbicsIHUnRmViJywgdSdNYXInLCB1J0FwcicsIHUnTWF5JywgdSdKdW4nLCB1J0p1
bCcsCisgICAgICAgICAgdSdBdWcnLCB1J1NlcCcsIHUnT2N0JywgdSdOb3YnLCB1J0RlYyddCiAK
IGRlZiBodHRwX2RhdGUobm93LCBkZWx0YV9zZWNzPTApOgogICAgIGRhdGUgPSBkYXRldGltZS5k
YXRldGltZS51dGNmcm9tdGltZXN0YW1wKG5vdyArIGRlbHRhX3NlY3MpCi0gICAgcmV0dXJuICIl
cywgJS4yZCAlcyAlLjRkICUuMmQ6JS4yZDolLjJkIEdNVCIgJSAoCisgICAgcmV0dXJuIHUiJXMs
ICUuMmQgJXMgJS40ZCAlLjJkOiUuMmQ6JS4yZCBHTVQiICUgKAogICAgICAgICBXRUVLREFZU1tk
YXRlLndlZWtkYXkoKV0sCiAgICAgICAgIGRhdGUuZGF5LAogICAgICAgICBNT05USFNbZGF0ZS5t
b250aF0sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcmVzb3VyY2VzL3NlY3VyZWRpbWFnZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9y
ZXNvdXJjZXMvc2VjdXJlZGltYWdlLnB5CmluZGV4IDQ0NWIwYmRkMmVjOTVhMWFjOWJlMDgyMjg1
MDM0NzViMzg2Y2Y5NjEuLmNhYzljZmVkZDI3ZWE4MTExNDcxNTBiNDJmZjg5YzU4Y2JjYWVkMTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9yZXNvdXJjZXMvc2VjdXJlZGltYWdlLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9yZXNv
dXJjZXMvc2VjdXJlZGltYWdlLnB5CkBAIC0xLDE3ICsxLDE5IEBACiAjIC0qLSBjb2Rpbmc6IHV0
Zi04IC0KIAorZnJvbSB3cHRzZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19kZWNvZGUsIGlz
b21vcnBoaWNfZW5jb2RlCisKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBpbWFn
ZV91cmwgPSBzdHIucmVwbGFjZShyZXF1ZXN0LnVybCwgImZldGNoL2h0dHAtY2FjaGUvcmVzb3Vy
Y2VzL3NlY3VyZWRpbWFnZS5weSIsICJpbWFnZXMvZ3JlZW4ucG5nIikKKyAgICBpbWFnZV91cmwg
PSBzdHIucmVwbGFjZShyZXF1ZXN0LnVybCwgdSJmZXRjaC9odHRwLWNhY2hlL3Jlc291cmNlcy9z
ZWN1cmVkaW1hZ2UucHkiLCB1ImltYWdlcy9ncmVlbi5wbmciKQogCi0gICAgaWYgImF1dGhvcml6
YXRpb24iIG5vdCBpbiByZXF1ZXN0LmhlYWRlcnM6CisgICAgaWYgYiJhdXRob3JpemF0aW9uIiBu
b3QgaW4gcmVxdWVzdC5oZWFkZXJzOgogICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA0MDEKLSAg
ICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIldXVy1BdXRoZW50aWNhdGUiLCAiQmFzaWMiKQor
ICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIldXVy1BdXRoZW50aWNhdGUiLCBiIkJhc2lj
IikKICAgICAgICAgcmV0dXJuCiAgICAgZWxzZToKLSAgICAgICAgYXV0aCA9IHJlcXVlc3QuaGVh
ZGVycy5nZXQoIkF1dGhvcml6YXRpb24iKQotICAgICAgICBpZiBhdXRoICE9ICJCYXNpYyBkR1Z6
ZEhWelpYSTZkR1Z6ZEhCaGMzTT0iOgotICAgICAgICAgICAgcmVzcG9uc2Uuc2V0X2Vycm9yKDQw
MywgIkludmFsaWQgdXNlcm5hbWUgb3IgcGFzc3dvcmQgLSAiICsgYXV0aCkKKyAgICAgICAgYXV0
aCA9IHJlcXVlc3QuaGVhZGVycy5nZXQoYiJBdXRob3JpemF0aW9uIikKKyAgICAgICAgaWYgYXV0
aCAhPSBiIkJhc2ljIGRHVnpkSFZ6WlhJNmRHVnpkSEJoYzNNPSI6CisgICAgICAgICAgICByZXNw
b25zZS5zZXRfZXJyb3IoNDAzLCB1IkludmFsaWQgdXNlcm5hbWUgb3IgcGFzc3dvcmQgLSAiICsg
aXNvbW9ycGhpY19kZWNvZGUoYXV0aCkpCiAgICAgICAgICAgICByZXR1cm4KIAogICAgIHJlc3Bv
bnNlLnN0YXR1cyA9IDMwMQotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJMb2NhdGlvbiIsIGlt
YWdlX3VybCkKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkxvY2F0aW9uIiwgaXNvbW9ycGhp
Y19lbmNvZGUoaW1hZ2VfdXJsKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9zdGF0dXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL3N0YXR1cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDljYjkzY2Y3N2EwNWI5Y2Q2NzNmZmVjM2ZhMjM3ZjA4MjkxYjUzMjcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0KLVBBU1MgSFRUUCBjYWNoZSBnb2VzIHRv
IHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDIwMCByZXNwb25zZQotUEFTUyBIVFRQIGNh
Y2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyMDAgcmVz
cG9uc2UKLVBBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0
YWxlIDIwMyByZXNwb25zZQotUEFTUyBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0
d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyMDMgcmVzcG9uc2UKLVBBU1MgSFRUUCBjYWNoZSBnb2Vz
IHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDIwNCByZXNwb25zZQotUEFTUyBIVFRQ
IGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyMDQg
cmVzcG9uc2UKLVBBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBh
IHN0YWxlIDI5OSByZXNwb25zZQotRkFJTCBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUg
bmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyOTkgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjog
UmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVz
cyB0aGFuIDIgYnV0IGdvdCAyCi1QQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBp
ZiBpdCBoYXMgYSBzdGFsZSA0MDAgcmVzcG9uc2UKLUZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29p
bmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggNDAwIHJlc3BvbnNlIGFzc2VydF9s
ZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgotUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhl
IG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNDA0IHJlc3BvbnNlCi1QQVNTIEhUVFAgY2FjaGUg
YXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDQwNCByZXNwb25z
ZQotUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUg
NDEwIHJlc3BvbnNlCi1QQVNTIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3Jr
IGlmIGl0IGhhcyBhIGZyZXNoIDQxMCByZXNwb25zZQotUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8g
dGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNDk5IHJlc3BvbnNlCi1GQUlMIEhUVFAgY2Fj
aGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDQ5OSByZXNw
b25zZSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNo
ZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKLVBBU1MgSFRUUCBjYWNo
ZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDUwMCByZXNwb25zZQotRkFJ
TCBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVz
aCA1MDAgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21l
IGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCi1QQVNT
IEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSA1MDIgcmVz
cG9uc2UKLUZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQg
aGFzIGEgZnJlc2ggNTAyIHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9l
cyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBn
b3QgMgotUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3Rh
bGUgNTAzIHJlc3BvbnNlCi1GQUlMIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3
b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDUwMyByZXNwb25zZSBhc3NlcnRfbGVzc190aGFuOiBSZXNw
b25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRo
YW4gMiBidXQgZ290IDIKLVBBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0
IGhhcyBhIHN0YWxlIDUwNCByZXNwb25zZQotRkFJTCBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0
byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCA1MDQgcmVzcG9uc2UgYXNzZXJ0X2xlc3Nf
dGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCi1QQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0
d29yayBpZiBpdCBoYXMgYSBzdGFsZSA1OTkgcmVzcG9uc2UKLUZBSUwgSFRUUCBjYWNoZSBhdm9p
ZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggNTk5IHJlc3BvbnNlIGFz
c2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVj
dGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvc3Rh
dHVzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvc3RhdHVzLmFueS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWNiOTNjZjc3YTA1YjljZDY3M2ZmZWMzZmEyMzdmMDgyOTFiNTMyNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvaHR0cC1jYWNoZS9zdGF0dXMuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACisK
K1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDIw
MCByZXNwb25zZQorUEFTUyBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBp
ZiBpdCBoYXMgYSBmcmVzaCAyMDAgcmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRo
ZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDIwMyByZXNwb25zZQorUEFTUyBIVFRQIGNhY2hl
IGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyMDMgcmVzcG9u
c2UKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxl
IDIwNCByZXNwb25zZQorUEFTUyBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29y
ayBpZiBpdCBoYXMgYSBmcmVzaCAyMDQgcmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRv
IHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDI5OSByZXNwb25zZQorRkFJTCBIVFRQIGNh
Y2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAyOTkgcmVz
cG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2Fj
aGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitQQVNTIEhUVFAgY2Fj
aGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSA0MDAgcmVzcG9uc2UKK0ZB
SUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJl
c2ggNDAwIHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29t
ZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgorUEFT
UyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNDA0IHJl
c3BvbnNlCitQQVNTIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0
IGhhcyBhIGZyZXNoIDQwNCByZXNwb25zZQorUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5l
dHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNDEwIHJlc3BvbnNlCitQQVNTIEhUVFAgY2FjaGUgYXZv
aWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDQxMCByZXNwb25zZQor
UEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNDk5
IHJlc3BvbnNlCitGQUlMIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlm
IGl0IGhhcyBhIGZyZXNoIDQ5OSByZXNwb25zZSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAy
IGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBi
dXQgZ290IDIKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBh
IHN0YWxlIDUwMCByZXNwb25zZQorRkFJTCBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUg
bmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCA1MDAgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjog
UmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVz
cyB0aGFuIDIgYnV0IGdvdCAyCitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBp
ZiBpdCBoYXMgYSBzdGFsZSA1MDIgcmVzcG9uc2UKK0ZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29p
bmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggNTAyIHJlc3BvbnNlIGFzc2VydF9s
ZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgorUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhl
IG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNTAzIHJlc3BvbnNlCitGQUlMIEhUVFAgY2FjaGUg
YXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDUwMyByZXNwb25z
ZSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK1BBU1MgSFRUUCBjYWNoZSBn
b2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDUwNCByZXNwb25zZQorRkFJTCBI
VFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCA1
MDQgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZy
b20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitQQVNTIEhU
VFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSA1OTkgcmVzcG9u
c2UKK0ZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFz
IGEgZnJlc2ggNTk5IHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBu
b3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3Qg
MgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvc3RhdHVzLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy5hbnkuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0t
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8g
cnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2h0dHAtY2FjaGUvc3RhdHVzLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9zdGF0dXMuYW55LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEwYzgzYTI1YTI2ZGMwNDQxZjUwYWViZTY0NmU4YWM2ODcwMGUyNDEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2h0dHAtY2FjaGUvc3RhdHVzLmFueS5qcwpAQCAtMCwwICsxLDYwIEBACisvLyBNRVRBOiBnbG9i
YWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogdGl0bGU9SFRUUCBDYWNoZSAtIFN0YXR1cyBDb2Rl
cworLy8gTUVUQTogdGltZW91dD1sb25nCisvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5q
cworLy8gTUVUQTogc2NyaXB0PS9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMKKy8vIE1FVEE6
IHNjcmlwdD1odHRwLWNhY2hlLmpzCisKK3ZhciB0ZXN0cyA9IFtdOworZnVuY3Rpb24gY2hlY2tf
c3RhdHVzKHN0YXR1cykgeworICB2YXIgY29kZSA9IHN0YXR1c1swXTsKKyAgdmFyIHBocmFzZSA9
IHN0YXR1c1sxXTsKKyAgdmFyIGJvZHkgPSBzdGF0dXNbMl07CisgIGlmIChib2R5ID09PSB1bmRl
ZmluZWQpIHsKKyAgICBib2R5ID0gaHR0cF9jb250ZW50KGNvZGUpOworICB9CisgIHRlc3RzLnB1
c2goeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFz
IGEgc3RhbGUgIiArIGNvZGUgKyAiIHJlc3BvbnNlIiwKKyAgICByZXF1ZXN0czogWworICAgICAg
eworICAgICAgICB0ZW1wbGF0ZTogInN0YWxlIiwKKyAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBb
Y29kZSwgcGhyYXNlXSwKKyAgICAgICAgcmVzcG9uc2VfYm9keTogYm9keQorICAgICAgfSwgewor
ICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIsCisgICAgICAgIHJlc3BvbnNlX3N0
YXR1czogW2NvZGUsIHBocmFzZV0sCisgICAgICAgIHJlc3BvbnNlX2JvZHk6IGJvZHkKKyAgICAg
IH0KKyAgICBdCisgIH0pCisgIHRlc3RzLnB1c2goeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGF2
b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAiICsgY29kZSArICIg
cmVzcG9uc2UiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHRlbXBsYXRlOiAi
ZnJlc2giLAorICAgICAgICByZXNwb25zZV9zdGF0dXM6IFtjb2RlLCBwaHJhc2VdLAorICAgICAg
ICByZXNwb25zZV9ib2R5OiBib2R5CisgICAgICB9LCB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6
ICJjYWNoZWQiLAorICAgICAgICByZXNwb25zZV9zdGF0dXM6IFtjb2RlLCBwaHJhc2VdLAorICAg
ICAgICByZXNwb25zZV9ib2R5OiBib2R5CisgICAgICB9CisgICAgXQorICB9KQorfQorWworICBb
MjAwLCAiT0siXSwKKyAgWzIwMywgIk5vbi1BdXRob3JpdGF0aXZlIEluZm9ybWF0aW9uIl0sCisg
IFsyMDQsICJObyBDb250ZW50IiwgbnVsbF0sCisgIFsyOTksICJXaGF0ZXZlciJdLAorICBbNDAw
LCAiQmFkIFJlcXVlc3QiXSwKKyAgWzQwNCwgIk5vdCBGb3VuZCJdLAorICBbNDEwLCAiR29uZSJd
LAorICBbNDk5LCAiV2hhdGV2ZXIiXSwKKyAgWzUwMCwgIkludGVybmFsIFNlcnZlciBFcnJvciJd
LAorICBbNTAyLCAiQmFkIEdhdGV3YXkiXSwKKyAgWzUwMywgIlNlcnZpY2UgVW5hdmFpbGFibGUi
XSwKKyAgWzUwNCwgIkdhdGV3YXkgVGltZW91dCJdLAorICBbNTk5LCAiV2hhdGV2ZXIiXQorXS5m
b3JFYWNoKGNoZWNrX3N0YXR1cyk7CitydW5fdGVzdHModGVzdHMpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hl
L3N0YXR1cy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9zdGF0dXMuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNiOTNjZjc3YTA1YjljZDY3M2ZmZWMzZmEyMzdmMDgy
OTFiNTMyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9zdGF0dXMuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyOCBAQAorCitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0
d29yayBpZiBpdCBoYXMgYSBzdGFsZSAyMDAgcmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBhdm9p
ZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggMjAwIHJlc3BvbnNlCitQ
QVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSAyMDMg
cmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYg
aXQgaGFzIGEgZnJlc2ggMjAzIHJlc3BvbnNlCitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUg
bmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSAyMDQgcmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBh
dm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggMjA0IHJlc3BvbnNl
CitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSAy
OTkgcmVzcG9uc2UKK0ZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsg
aWYgaXQgaGFzIGEgZnJlc2ggMjk5IHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNl
IDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAy
IGJ1dCBnb3QgMgorUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFz
IGEgc3RhbGUgNDAwIHJlc3BvbnNlCitGQUlMIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRo
ZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDQwMCByZXNwb25zZSBhc3NlcnRfbGVzc190aGFu
OiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gMiBidXQgZ290IDIKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3Jr
IGlmIGl0IGhhcyBhIHN0YWxlIDQwNCByZXNwb25zZQorUEFTUyBIVFRQIGNhY2hlIGF2b2lkcyBn
b2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCA0MDQgcmVzcG9uc2UKK1BBU1Mg
SFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDQxMCByZXNw
b25zZQorUEFTUyBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBo
YXMgYSBmcmVzaCA0MTAgcmVzcG9uc2UKK1BBU1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3
b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDQ5OSByZXNwb25zZQorRkFJTCBIVFRQIGNhY2hlIGF2b2lk
cyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCA0OTkgcmVzcG9uc2UgYXNz
ZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0
ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0IGdvdCAyCitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0
byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBzdGFsZSA1MDAgcmVzcG9uc2UKK0ZBSUwgSFRUUCBj
YWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggNTAwIHJl
c3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNh
Y2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyIGJ1dCBnb3QgMgorUEFTUyBIVFRQIGNh
Y2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYgaXQgaGFzIGEgc3RhbGUgNTAyIHJlc3BvbnNlCitG
QUlMIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5nIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZy
ZXNoIDUwMiByZXNwb25zZSBhc3NlcnRfbGVzc190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNv
bWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKK1BB
U1MgSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0YWxlIDUwMyBy
ZXNwb25zZQorRkFJTCBIVFRQIGNhY2hlIGF2b2lkcyBnb2luZyB0byB0aGUgbmV0d29yayBpZiBp
dCBoYXMgYSBmcmVzaCA1MDMgcmVzcG9uc2UgYXNzZXJ0X2xlc3NfdGhhbjogUmVzcG9uc2UgMiBk
b2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIDIgYnV0
IGdvdCAyCitQQVNTIEhUVFAgY2FjaGUgZ29lcyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBz
dGFsZSA1MDQgcmVzcG9uc2UKK0ZBSUwgSFRUUCBjYWNoZSBhdm9pZHMgZ29pbmcgdG8gdGhlIG5l
dHdvcmsgaWYgaXQgaGFzIGEgZnJlc2ggNTA0IHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJl
c3BvbnNlIDIgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiAyIGJ1dCBnb3QgMgorUEFTUyBIVFRQIGNhY2hlIGdvZXMgdG8gdGhlIG5ldHdvcmsgaWYg
aXQgaGFzIGEgc3RhbGUgNTk5IHJlc3BvbnNlCitGQUlMIEhUVFAgY2FjaGUgYXZvaWRzIGdvaW5n
IHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIGZyZXNoIDU5OSByZXNwb25zZSBhc3NlcnRfbGVz
c190aGFuOiBSZXNwb25zZSAyIGRvZXMgbm90IGNvbWUgZnJvbSBjYWNoZSBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gMiBidXQgZ290IDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy5hbnku
d29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2h0dHAtY2FjaGUvc3RhdHVzLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgy
OTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNh
Y2hlL3N0YXR1cy5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUg
aXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVt
cGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNh
Y2hlL3N0YXR1cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3N0YXR1cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkNTVkOWUzY2YyNGE0OTYzMTY2NzdhOGJlOWQxZDU0ZDIxZDljM2I4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9zdGF0dXMuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0g
IDxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+SFRUUCBDYWNo
ZSAtIFN0YXR1cyBDb2RlczwvdGl0bGU+Ci0gICAgPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyI+Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVj
LndoYXR3Zy5vcmcvI3JlcXVlc3QiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3Vi
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iaHR0cC1jYWNoZS5qcyI+PC9zY3JpcHQ+
Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbXTsK
LSAgICBmdW5jdGlvbiBjaGVja19zdGF0dXMoc3RhdHVzKSB7Ci0gICAgICB2YXIgY29kZSA9IHN0
YXR1c1swXTsKLSAgICAgIHZhciBwaHJhc2UgPSBzdGF0dXNbMV07Ci0gICAgICB2YXIgYm9keSA9
IHN0YXR1c1syXTsKLSAgICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgYm9k
eSA9IGh0dHBfY29udGVudChjb2RlKTsKLSAgICAgIH0KLSAgICAgIHRlc3RzLnB1c2goewotICAg
ICAgICBuYW1lOiAiSFRUUCBjYWNoZSBnb2VzIHRvIHRoZSBuZXR3b3JrIGlmIGl0IGhhcyBhIHN0
YWxlICIgKyBjb2RlICsgIiByZXNwb25zZSIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAg
ICAgewotICAgICAgICAgICAgdGVtcGxhdGU6ICJzdGFsZSIsCi0gICAgICAgICAgICByZXNwb25z
ZV9zdGF0dXM6IFtjb2RlLCBwaHJhc2VdLAotICAgICAgICAgICAgcmVzcG9uc2VfYm9keTogYm9k
eQotICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVk
IiwKLSAgICAgICAgICAgIHJlc3BvbnNlX3N0YXR1czogW2NvZGUsIHBocmFzZV0sCi0gICAgICAg
ICAgICByZXNwb25zZV9ib2R5OiBib2R5Ci0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9
KQotICAgICAgdGVzdHMucHVzaCh7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIGF2b2lkcyBn
b2luZyB0byB0aGUgbmV0d29yayBpZiBpdCBoYXMgYSBmcmVzaCAiICsgY29kZSArICIgcmVzcG9u
c2UiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHRlbXBs
YXRlOiAiZnJlc2giLAotICAgICAgICAgICAgcmVzcG9uc2Vfc3RhdHVzOiBbY29kZSwgcGhyYXNl
XSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2JvZHk6IGJvZHkKLSAgICAgICAgICB9LCB7Ci0gICAg
ICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIiwKLSAgICAgICAgICAgIHJlc3BvbnNlX3N0
YXR1czogW2NvZGUsIHBocmFzZV0sCi0gICAgICAgICAgICByZXNwb25zZV9ib2R5OiBib2R5Ci0g
ICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9KQotICAgIH0KLSAgICBbCi0gICAgICBbMjAw
LCAiT0siXSwKLSAgICAgIFsyMDMsICJOb24tQXV0aG9yaXRhdGl2ZSBJbmZvcm1hdGlvbiJdLAot
ICAgICAgWzIwNCwgIk5vIENvbnRlbnQiLCBudWxsXSwKLSAgICAgIFsyOTksICJXaGF0ZXZlciJd
LAotICAgICAgWzQwMCwgIkJhZCBSZXF1ZXN0Il0sCi0gICAgICBbNDA0LCAiTm90IEZvdW5kIl0s
Ci0gICAgICBbNDEwLCAiR29uZSJdLAotICAgICAgWzQ5OSwgIldoYXRldmVyIl0sCi0gICAgICBb
NTAwLCAiSW50ZXJuYWwgU2VydmVyIEVycm9yIl0sCi0gICAgICBbNTAyLCAiQmFkIEdhdGV3YXki
XSwKLSAgICAgIFs1MDMsICJTZXJ2aWNlIFVuYXZhaWxhYmxlIl0sCi0gICAgICBbNTA0LCAiR2F0
ZXdheSBUaW1lb3V0Il0sCi0gICAgICBbNTk5LCAiV2hhdGV2ZXIiXQotICAgIF0uZm9yRWFjaChj
aGVja19zdGF0dXMpOwotICAgIHJ1bl90ZXN0cyh0ZXN0cyk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92
YXJ5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ4MTM4N2Nh
NzQwZmYzYjE0ZmU0N2M1ZWQwYzY4YWEyZmEyYjY4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFyeS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxNSArMCwwIEBACi0KLVBBU1MgSFRUUCBjYWNoZSByZXVzZXMgVmFyeSByZXNwb25z
ZSB3aGVuIHJlcXVlc3QgbWF0Y2hlcwotUEFTUyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZhcnkg
cmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2gKLVBBU1MgSFRUUCBjYWNoZSBkb2Vz
bid0IHVzZSBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBvbWl0cyB2YXJpYW50IGhlYWRlcgot
RkFJTCBIVFRQIGNhY2hlIGRvZXNuJ3QgaW52YWxpZGF0ZSBleGlzdGluZyBWYXJ5IHJlc3BvbnNl
IGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNlIDMgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4
cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAzIGJ1dCBnb3QgMwotUEFTUyBIVFRQIGNhY2hlIGRv
ZXNuJ3QgcGF5IGF0dGVudGlvbiB0byBoZWFkZXJzIG5vdCBsaXN0ZWQgaW4gVmFyeQotUEFTUyBI
VFRQIGNhY2hlIHJldXNlcyB0d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG1hdGNo
ZXMKLVBBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hl
biByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2gKLVBBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0d28t
d2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG9taXRzIHZhcmlhbnQgaGVhZGVyCi1QQVNT
IEhUVFAgY2FjaGUgcmV1c2VzIHRocmVlLXdheSBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBt
YXRjaGVzCi1QQVNTIEhUVFAgY2FjaGUgZG9lc24ndCB1c2UgdGhyZWUtd2F5IFZhcnkgcmVzcG9u
c2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2gKLVBBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVz
ZSB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaCwgcmVn
YXJkbGVzcyBvZiBoZWFkZXIgb3JkZXIKLVBBU1MgSFRUUCBjYWNoZSB1c2VzIHRocmVlLXdheSBW
YXJ5IHJlc3BvbnNlIHdoZW4gYm90aCByZXF1ZXN0IGFuZCB0aGUgb3JpZ2luYWwgcmVxdWVzdCBv
bWl0ZWQgYSB2YXJpYW50IGhlYWRlcgotUEFTUyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZhcnkg
cmVzcG9uc2Ugd2l0aCBhIGZpZWxkIHZhbHVlIG9mICcqJwotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFy
eS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3ZhcnkuYW55LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZDgxMzg3Y2E3NDBmZjNiMTRmZTQ3YzVlZDBjNjhhYTJmYTJiNjg5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9o
dHRwLWNhY2hlL3ZhcnkuYW55LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACisKK1BBU1Mg
SFRUUCBjYWNoZSByZXVzZXMgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgbWF0Y2hlcworUEFT
UyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNu
J3QgbWF0Y2gKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBWYXJ5IHJlc3BvbnNlIHdoZW4g
cmVxdWVzdCBvbWl0cyB2YXJpYW50IGhlYWRlcgorRkFJTCBIVFRQIGNhY2hlIGRvZXNuJ3QgaW52
YWxpZGF0ZSBleGlzdGluZyBWYXJ5IHJlc3BvbnNlIGFzc2VydF9sZXNzX3RoYW46IFJlc3BvbnNl
IDMgZG9lcyBub3QgY29tZSBmcm9tIGNhY2hlIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiAz
IGJ1dCBnb3QgMworUEFTUyBIVFRQIGNhY2hlIGRvZXNuJ3QgcGF5IGF0dGVudGlvbiB0byBoZWFk
ZXJzIG5vdCBsaXN0ZWQgaW4gVmFyeQorUEFTUyBIVFRQIGNhY2hlIHJldXNlcyB0d28td2F5IFZh
cnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG1hdGNoZXMKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0
IHVzZSB0d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2gKK1BB
U1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1
ZXN0IG9taXRzIHZhcmlhbnQgaGVhZGVyCitQQVNTIEhUVFAgY2FjaGUgcmV1c2VzIHRocmVlLXdh
eSBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBtYXRjaGVzCitQQVNTIEhUVFAgY2FjaGUgZG9l
c24ndCB1c2UgdGhyZWUtd2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0
Y2gKK1BBU1MgSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3
aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaCwgcmVnYXJkbGVzcyBvZiBoZWFkZXIgb3JkZXIKK1BB
U1MgSFRUUCBjYWNoZSB1c2VzIHRocmVlLXdheSBWYXJ5IHJlc3BvbnNlIHdoZW4gYm90aCByZXF1
ZXN0IGFuZCB0aGUgb3JpZ2luYWwgcmVxdWVzdCBvbWl0ZWQgYSB2YXJpYW50IGhlYWRlcgorUEFT
UyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZhcnkgcmVzcG9uc2Ugd2l0aCBhIGZpZWxkIHZhbHVl
IG9mICcqJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFyeS5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LmFueS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFyeS5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8IS0t
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8g
cnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2h0dHAtY2FjaGUvdmFyeS5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFyeS5hbnkuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmNmZDIyNmFmODExNzM5NjM3YTE3M2RlZGQ5ZjVkNWM4MWZmYjY2MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0
cC1jYWNoZS92YXJ5LmFueS5qcwpAQCAtMCwwICsxLDMxMyBAQAorLy8gTUVUQTogZ2xvYmFsPXdp
bmRvdyx3b3JrZXIKKy8vIE1FVEE6IHRpdGxlPUhUVFAgQ2FjaGUgLSBWYXJ5CisvLyBNRVRBOiB0
aW1lb3V0PWxvbmcKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBz
Y3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworLy8gTUVUQTogc2NyaXB0PWh0dHAt
Y2FjaGUuanMKKwordmFyIHRlc3RzID0gWworICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgcmV1
c2VzIFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG1hdGNoZXMiLAorICAgIHJlcXVlc3RzOiBb
CisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwg
IjEiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAg
WyJFeHBpcmVzIiwgNTAwMF0sCisgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAor
ICAgICAgICAgIFsiVmFyeSIsICJGb28iXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgewor
ICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkZvbyIsICIxIl0KKyAgICAg
ICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKKyAgICAgIH0KKyAgICBdCisg
IH0sCisgIHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSBWYXJ5IHJlc3BvbnNl
IHdoZW4gcmVxdWVzdCBkb2Vzbid0IG1hdGNoIiwKKyAgICByZXF1ZXN0czogWworICAgICAgewor
ICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkZvbyIsICIxIl0KKyAgICAg
ICAgXSwKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiRXhwaXJlcyIs
IDUwMDBdLAorICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKKyAgICAgICAgICBb
IlZhcnkiLCAiRm9vIl0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgcmVx
dWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJGb28iLCAiMiJdCisgICAgICAgIF0sCisgICAg
ICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAg
eworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZhcnkgcmVzcG9uc2Ugd2hlbiBy
ZXF1ZXN0IG9taXRzIHZhcmlhbnQgaGVhZGVyIiwKKyAgICByZXF1ZXN0czogWworICAgICAgewor
ICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkZvbyIsICIxIl0KKyAgICAg
ICAgXSwKKyAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiRXhwaXJlcyIs
IDUwMDBdLAorICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKKyAgICAgICAgICBb
IlZhcnkiLCAiRm9vIl0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgZXhw
ZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAg
bmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCBpbnZhbGlkYXRlIGV4aXN0aW5nIFZhcnkgcmVzcG9u
c2UiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczog
WworICAgICAgICAgIFsiRm9vIiwgIjEiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9o
ZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0sCisgICAgICAgICAgWyJMYXN0
LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAgIFsiVmFyeSIsICJGb28iXQorICAgICAgICBd
LAorICAgICAgICByZXNwb25zZV9ib2R5OiBodHRwX2NvbnRlbnQoJ2Zvb18xJykKKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwg
IjIiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAg
WyJFeHBpcmVzIiwgNTAwMF0sCisgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAor
ICAgICAgICAgIFsiVmFyeSIsICJGb28iXQorICAgICAgICBdLAorICAgICAgICBleHBlY3RlZF90
eXBlOiAibm90X2NhY2hlZCIsCisgICAgICAgIHJlc3BvbnNlX2JvZHk6IGh0dHBfY29udGVudCgn
Zm9vXzInKSwKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwor
ICAgICAgICAgIFsiRm9vIiwgIjEiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9ib2R5
OiBodHRwX2NvbnRlbnQoJ2Zvb18xJyksCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQi
CisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24n
dCBwYXkgYXR0ZW50aW9uIHRvIGhlYWRlcnMgbm90IGxpc3RlZCBpbiBWYXJ5IiwKKyAgICByZXF1
ZXN0czogWworICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBb
IkZvbyIsICIxIl0sCisgICAgICAgICAgWyJPdGhlciIsICIyIl0KKyAgICAgICAgXSwKKyAgICAg
ICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAorICAg
ICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKKyAgICAgICAgICBbIlZhcnkiLCAiRm9v
Il0KKyAgICAgICAgXSwKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVy
czogWworICAgICAgICAgIFsiRm9vIiwgIjEiXSwKKyAgICAgICAgICBbIk90aGVyIiwgIjMiXQor
ICAgICAgICBdLAorICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgorICAgICAgfQorICAg
IF0KKyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyB0d28td2F5IFZhcnkg
cmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG1hdGNoZXMiLAorICAgIHJlcXVlc3RzOiBbCisgICAgICB7
CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwgIjEiXSwKKyAg
ICAgICAgICBbIkJhciIsICJhYmMiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9oZWFk
ZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0sCisgICAgICAgICAgWyJMYXN0LU1v
ZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAgIFsiVmFyeSIsICJGb28sIEJhciJdCisgICAgICAg
IF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAg
ICAgIFsiRm9vIiwgIjEiXSwKKyAgICAgICAgICBbIkJhciIsICJhYmMiXQorICAgICAgICBdLAor
ICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwKKyAg
eworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIHR3by13YXkgVmFyeSByZXNwb25z
ZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaCIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsK
KyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJGb28iLCAiMSJdLAorICAg
ICAgICAgIFsiQmFyIiwgImFiYyJdCisgICAgICAgIF0sCisgICAgICAgIHJlc3BvbnNlX2hlYWRl
cnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKKyAgICAgICAgICBbIkxhc3QtTW9k
aWZpZWQiLCAtMzAwMF0sCisgICAgICAgICAgWyJWYXJ5IiwgIkZvbywgQmFyIl0KKyAgICAgICAg
XQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAg
ICAgWyJGb28iLCAiMiJdLAorICAgICAgICAgIFsiQmFyIiwgImFiYyJdCisgICAgICAgIF0sCisg
ICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0KKyAgfSwK
KyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIHR3by13YXkgVmFyeSByZXNw
b25zZSB3aGVuIHJlcXVlc3Qgb21pdHMgdmFyaWFudCBoZWFkZXIiLAorICAgIHJlcXVlc3RzOiBb
CisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAgICAgIFsiRm9vIiwg
IjEiXQorICAgICAgICBdLAorICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAg
WyJFeHBpcmVzIiwgNTAwMF0sCisgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAor
ICAgICAgICAgIFsiVmFyeSIsICJGb28sIEJhciJdCisgICAgICAgIF0KKyAgICAgIH0sCisgICAg
ICB7CisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgorICAgICAgfQorICAgIF0K
KyAgfSwKKyAgeworICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyB0aHJlZS13YXkgVmFyeSBy
ZXNwb25zZSB3aGVuIHJlcXVlc3QgbWF0Y2hlcyIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAgIHsK
KyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJGb28iLCAiMSJdLAorICAg
ICAgICAgIFsiQmFyIiwgImFiYyJdLAorICAgICAgICAgIFsiQmF6IiwgIjc4OSJdCisgICAgICAg
IF0sCisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCA1
MDAwXSwKKyAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCisgICAgICAgICAgWyJW
YXJ5IiwgIkZvbywgQmFyLCBCYXoiXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAg
ICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkZvbyIsICIxIl0sCisgICAgICAg
ICAgWyJCYXIiLCAiYWJjIl0sCisgICAgICAgICAgWyJCYXoiLCAiNzg5Il0KKyAgICAgICAgXSwK
KyAgICAgICAgZXhwZWN0ZWRfdHlwZTogImNhY2hlZCIKKyAgICAgIH0KKyAgICBdCisgIH0sCisg
IHsKKyAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0aHJlZS13YXkgVmFyeSByZXNw
b25zZSB3aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaCIsCisgICAgcmVxdWVzdHM6IFsKKyAgICAg
IHsKKyAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJGb28iLCAiMSJdLAor
ICAgICAgICAgIFsiQmFyIiwgImFiYyJdLAorICAgICAgICAgIFsiQmF6IiwgIjc4OSJdCisgICAg
ICAgIF0sCisgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMi
LCA1MDAwXSwKKyAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCisgICAgICAgICAg
WyJWYXJ5IiwgIkZvbywgQmFyLCBCYXoiXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgewor
ICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkZvbyIsICIyIl0sCisgICAg
ICAgICAgWyJCYXIiLCAiYWJjIl0sCisgICAgICAgICAgWyJCYXoiLCAiNzg5Il0KKyAgICAgICAg
XSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQor
ICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCB1c2UgdGhyZWUtd2F5IFZh
cnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2gsIHJlZ2FyZGxlc3Mgb2YgaGVh
ZGVyIG9yZGVyIiwKKyAgICByZXF1ZXN0czogWworICAgICAgeworICAgICAgICByZXF1ZXN0X2hl
YWRlcnM6IFsKKyAgICAgICAgICBbIkZvbyIsICIxIl0sCisgICAgICAgICAgWyJCYXIiLCAiYWJj
NCJdLAorICAgICAgICAgIFsiQmF6IiwgIjc4OSJdCisgICAgICAgIF0sCisgICAgICAgIHJlc3Bv
bnNlX2hlYWRlcnM6IFsKKyAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKKyAgICAgICAgICBb
Ikxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCisgICAgICAgICAgWyJWYXJ5IiwgIkZvbywgQmFyLCBC
YXoiXQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRl
cnM6IFsKKyAgICAgICAgICBbIkZvbyIsICIxIl0sCisgICAgICAgICAgWyJCYXIiLCAiYWJjIl0s
CisgICAgICAgICAgWyJCYXoiLCAiNzg5Il0KKyAgICAgICAgXSwKKyAgICAgICAgZXhwZWN0ZWRf
dHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTog
IkhUVFAgY2FjaGUgdXNlcyB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3aGVuIGJvdGggcmVxdWVz
dCBhbmQgdGhlIG9yaWdpbmFsIHJlcXVlc3Qgb21pdGVkIGEgdmFyaWFudCBoZWFkZXIiLAorICAg
IHJlcXVlc3RzOiBbCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWworICAgICAg
ICAgIFsiRm9vIiwgIjEiXSwKKyAgICAgICAgICBbIkJheiIsICI3ODkiXQorICAgICAgICBdLAor
ICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCisgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0s
CisgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAorICAgICAgICAgIFsiVmFyeSIs
ICJGb28sIEJhciwgQmF6Il0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAg
cmVxdWVzdF9oZWFkZXJzOiBbCisgICAgICAgICAgWyJGb28iLCAiMSJdLAorICAgICAgICAgIFsi
QmF6IiwgIjc4OSJdCisgICAgICAgIF0sCisgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQi
CisgICAgICB9CisgICAgXQorICB9LAorICB7CisgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24n
dCB1c2UgVmFyeSByZXNwb25zZSB3aXRoIGEgZmllbGQgdmFsdWUgb2YgJyonIiwKKyAgICByZXF1
ZXN0czogWworICAgICAgeworICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKKyAgICAgICAgICBb
IkZvbyIsICIxIl0sCisgICAgICAgICAgWyJCYXoiLCAiNzg5Il0KKyAgICAgICAgXSwKKyAgICAg
ICAgcmVzcG9uc2VfaGVhZGVyczogWworICAgICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAorICAg
ICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKKyAgICAgICAgICBbIlZhcnkiLCAiKiJd
CisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIHJlcXVlc3RfaGVhZGVyczog
WworICAgICAgICAgIFsiKiIsICIxIl0sCisgICAgICAgICAgWyJCYXoiLCAiNzg5Il0KKyAgICAg
ICAgXSwKKyAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCisgICAgICB9CisgICAg
XQorICB9CitdOworcnVuX3Rlc3RzKHRlc3RzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LmFueS53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3ZhcnkuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmQ4MTM4N2NhNzQwZmYzYjE0ZmU0N2M1ZWQwYzY4YWEyZmEyYjY4OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTUgQEAKKworUEFTUyBIVFRQIGNhY2hlIHJldXNlcyBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVz
dCBtYXRjaGVzCitQQVNTIEhUVFAgY2FjaGUgZG9lc24ndCB1c2UgVmFyeSByZXNwb25zZSB3aGVu
IHJlcXVlc3QgZG9lc24ndCBtYXRjaAorUEFTUyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIFZhcnkg
cmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG9taXRzIHZhcmlhbnQgaGVhZGVyCitGQUlMIEhUVFAgY2Fj
aGUgZG9lc24ndCBpbnZhbGlkYXRlIGV4aXN0aW5nIFZhcnkgcmVzcG9uc2UgYXNzZXJ0X2xlc3Nf
dGhhbjogUmVzcG9uc2UgMyBkb2VzIG5vdCBjb21lIGZyb20gY2FjaGUgZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIDMgYnV0IGdvdCAzCitQQVNTIEhUVFAgY2FjaGUgZG9lc24ndCBwYXkgYXR0
ZW50aW9uIHRvIGhlYWRlcnMgbm90IGxpc3RlZCBpbiBWYXJ5CitQQVNTIEhUVFAgY2FjaGUgcmV1
c2VzIHR3by13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgbWF0Y2hlcworUEFTUyBIVFRQ
IGNhY2hlIGRvZXNuJ3QgdXNlIHR3by13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgZG9l
c24ndCBtYXRjaAorUEFTUyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIHR3by13YXkgVmFyeSByZXNw
b25zZSB3aGVuIHJlcXVlc3Qgb21pdHMgdmFyaWFudCBoZWFkZXIKK1BBU1MgSFRUUCBjYWNoZSBy
ZXVzZXMgdGhyZWUtd2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IG1hdGNoZXMKK1BBU1Mg
SFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVl
c3QgZG9lc24ndCBtYXRjaAorUEFTUyBIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIHRocmVlLXdheSBW
YXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBkb2Vzbid0IG1hdGNoLCByZWdhcmRsZXNzIG9mIGhl
YWRlciBvcmRlcgorUEFTUyBIVFRQIGNhY2hlIHVzZXMgdGhyZWUtd2F5IFZhcnkgcmVzcG9uc2Ug
d2hlbiBib3RoIHJlcXVlc3QgYW5kIHRoZSBvcmlnaW5hbCByZXF1ZXN0IG9taXRlZCBhIHZhcmlh
bnQgaGVhZGVyCitQQVNTIEhUVFAgY2FjaGUgZG9lc24ndCB1c2UgVmFyeSByZXNwb25zZSB3aXRo
IGEgZmllbGQgdmFsdWUgb2YgJyonCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5LmFueS53b3JrZXIu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
aHR0cC1jYWNoZS92YXJ5LmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5
M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Zhcnku
YW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0
IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0
dHAtY2FjaGUvdmFyeS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjFkNmU3
OWI1MjQ4ZWQ3YTQzMzRkNzU0YjgwMzljMzY2MDkwMDUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS92YXJ5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzMjMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgPGhlYWQ+Ci0gICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotICAgIDx0aXRsZT5IVFRQIENhY2hlIC0gVmFyeTwvdGl0bGU+
Ci0gICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5v
cmcvI3JlcXVlc3QiPgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iaHR0cC1jYWNoZS5qcyI+PC9zY3JpcHQ+Ci0gIDwvaGVh
ZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAgICB2YXIgdGVzdHMgPSBbCi0gICAgICB7Ci0g
ICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVz
dCBtYXRjaGVzIiwKLSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAg
ICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJGb28iLCAiMSJdCi0gICAgICAg
ICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBb
IkV4cGlyZXMiLCA1MDAwXSwKLSAgICAgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBd
LAotICAgICAgICAgICAgICBbIlZhcnkiLCAiRm9vIl0KLSAgICAgICAgICAgIF0KLSAgICAgICAg
ICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAg
ICAgICAgICBbIkZvbyIsICIxIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3Rl
ZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAg
IHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCB1c2UgVmFyeSByZXNwb25zZSB3
aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaCIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAg
ICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRm9v
IiwgIjEiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsK
LSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0sCi0gICAgICAgICAgICAgIFsiTGFzdC1N
b2RpZmllZCIsIC0zMDAwXSwKLSAgICAgICAgICAgICAgWyJWYXJ5IiwgIkZvbyJdCi0gICAgICAg
ICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hl
YWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJGb28iLCAiMiJdCi0gICAgICAgICAgICBdLAotICAg
ICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9jYWNoZWQiCi0gICAgICAgICAgfQotICAgICAg
ICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0
IHVzZSBWYXJ5IHJlc3BvbnNlIHdoZW4gcmVxdWVzdCBvbWl0cyB2YXJpYW50IGhlYWRlciIsCi0g
ICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFk
ZXJzOiBbCi0gICAgICAgICAgICAgIFsiRm9vIiwgIjEiXQotICAgICAgICAgICAgXSwKLSAgICAg
ICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwgNTAw
MF0sCi0gICAgICAgICAgICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKLSAgICAgICAgICAg
ICAgWyJWYXJ5IiwgIkZvbyJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAg
ICB7Ci0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9
Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hl
IGRvZXNuJ3QgaW52YWxpZGF0ZSBleGlzdGluZyBWYXJ5IHJlc3BvbnNlIiwKLSAgICAgICAgcmVx
dWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAg
ICAgICAgICAgICAgWyJGb28iLCAiMSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVz
cG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKLSAgICAg
ICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAotICAgICAgICAgICAgICBbIlZhcnki
LCAiRm9vIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25zZV9ib2R5OiBodHRw
X2NvbnRlbnQoJ2Zvb18xJykKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAg
IHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIsICIyIl0KLSAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsi
RXhwaXJlcyIsIDUwMDBdLAotICAgICAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAwMF0s
Ci0gICAgICAgICAgICAgIFsiVmFyeSIsICJGb28iXQotICAgICAgICAgICAgXSwKLSAgICAgICAg
ICAgIGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIiwKLSAgICAgICAgICAgIHJlc3BvbnNlX2Jv
ZHk6IGh0dHBfY29udGVudCgnZm9vXzInKSwKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIsICIxIl0K
LSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25zZV9ib2R5OiBodHRwX2NvbnRlbnQo
J2Zvb18xJyksCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAiY2FjaGVkIgotICAgICAgICAg
IH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2Fj
aGUgZG9lc24ndCBwYXkgYXR0ZW50aW9uIHRvIGhlYWRlcnMgbm90IGxpc3RlZCBpbiBWYXJ5IiwK
LSAgICAgICAgcmVxdWVzdHM6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hl
YWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJGb28iLCAiMSJdLAotICAgICAgICAgICAgICBbIk90
aGVyIiwgIjIiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnM6
IFsKLSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0sCi0gICAgICAgICAgICAgIFsiTGFz
dC1Nb2RpZmllZCIsIC0zMDAwXSwKLSAgICAgICAgICAgICAgWyJWYXJ5IiwgIkZvbyJdCi0gICAg
ICAgICAgICBdLAotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVz
dF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRm9vIiwgIjEiXSwKLSAgICAgICAgICAgICAg
WyJPdGhlciIsICIzIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBl
OiAiY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAg
ICAgICAgbmFtZTogIkhUVFAgY2FjaGUgcmV1c2VzIHR3by13YXkgVmFyeSByZXNwb25zZSB3aGVu
IHJlcXVlc3QgbWF0Y2hlcyIsCi0gICAgICAgIHJlcXVlc3RzOiBbCi0gICAgICAgICAgewotICAg
ICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRm9vIiwgIjEiXSwK
LSAgICAgICAgICAgICAgWyJCYXIiLCAiYWJjIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAot
ICAgICAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCi0gICAgICAgICAgICAgIFsi
VmFyeSIsICJGb28sIEJhciJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAg
ICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJGb28i
LCAiMSJdLAotICAgICAgICAgICAgICBbIkJhciIsICJhYmMiXQotICAgICAgICAgICAgXSwKLSAg
ICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBd
Ci0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHVz
ZSB0d28td2F5IFZhcnkgcmVzcG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2giLAotICAg
ICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVy
czogWwotICAgICAgICAgICAgICBbIkZvbyIsICIxIl0sCi0gICAgICAgICAgICAgIFsiQmFyIiwg
ImFiYyJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwot
ICAgICAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKLSAgICAgICAgICAgICAgWyJMYXN0LU1v
ZGlmaWVkIiwgLTMwMDBdLAotICAgICAgICAgICAgICBbIlZhcnkiLCAiRm9vLCBCYXIiXQotICAg
ICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVz
dF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRm9vIiwgIjIiXSwKLSAgICAgICAgICAgICAg
WyJCYXIiLCAiYWJjIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBl
OiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7
Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIGRvZXNuJ3QgdXNlIHR3by13YXkgVmFyeSByZXNw
b25zZSB3aGVuIHJlcXVlc3Qgb21pdHMgdmFyaWFudCBoZWFkZXIiLAotICAgICAgICByZXF1ZXN0
czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAg
ICAgICAgICBbIkZvbyIsICIxIl0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICByZXNwb25z
ZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRXhwaXJlcyIsIDUwMDBdLAotICAgICAgICAg
ICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCi0gICAgICAgICAgICAgIFsiVmFyeSIsICJG
b28sIEJhciJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICBleHBlY3RlZF90eXBlOiAibm90X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAg
IF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgIG5hbWU6ICJIVFRQIGNhY2hlIHJldXNlcyB0
aHJlZS13YXkgVmFyeSByZXNwb25zZSB3aGVuIHJlcXVlc3QgbWF0Y2hlcyIsCi0gICAgICAgIHJl
cXVlc3RzOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0g
ICAgICAgICAgICAgIFsiRm9vIiwgIjEiXSwKLSAgICAgICAgICAgICAgWyJCYXIiLCAiYWJjIl0s
Ci0gICAgICAgICAgICAgIFsiQmF6IiwgIjc4OSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAg
ICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwK
LSAgICAgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAotICAgICAgICAgICAgICBb
IlZhcnkiLCAiRm9vLCBCYXIsIEJheiJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAgfSwKLSAg
ICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAg
WyJGb28iLCAiMSJdLAotICAgICAgICAgICAgICBbIkJhciIsICJhYmMiXSwKLSAgICAgICAgICAg
ICAgWyJCYXoiLCAiNzg5Il0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90
eXBlOiAiY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsK
LSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgZG9lc24ndCB1c2UgdGhyZWUtd2F5IFZhcnkgcmVz
cG9uc2Ugd2hlbiByZXF1ZXN0IGRvZXNuJ3QgbWF0Y2giLAotICAgICAgICByZXF1ZXN0czogWwot
ICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAg
ICBbIkZvbyIsICIxIl0sCi0gICAgICAgICAgICAgIFsiQmFyIiwgImFiYyJdLAotICAgICAgICAg
ICAgICBbIkJheiIsICI3ODkiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHJlc3BvbnNl
X2hlYWRlcnM6IFsKLSAgICAgICAgICAgICAgWyJFeHBpcmVzIiwgNTAwMF0sCi0gICAgICAgICAg
ICAgIFsiTGFzdC1Nb2RpZmllZCIsIC0zMDAwXSwKLSAgICAgICAgICAgICAgWyJWYXJ5IiwgIkZv
bywgQmFyLCBCYXoiXQotICAgICAgICAgICAgXQotICAgICAgICAgIH0sCi0gICAgICAgICAgewot
ICAgICAgICAgICAgcmVxdWVzdF9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRm9vIiwgIjIi
XSwKLSAgICAgICAgICAgICAgWyJCYXIiLCAiYWJjIl0sCi0gICAgICAgICAgICAgIFsiQmF6Iiwg
Ijc4OSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZXhwZWN0ZWRfdHlwZTogIm5vdF9j
YWNoZWQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAg
ICBuYW1lOiAiSFRUUCBjYWNoZSBkb2Vzbid0IHVzZSB0aHJlZS13YXkgVmFyeSByZXNwb25zZSB3
aGVuIHJlcXVlc3QgZG9lc24ndCBtYXRjaCwgcmVnYXJkbGVzcyBvZiBoZWFkZXIgb3JkZXIiLAot
ICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVh
ZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIsICIxIl0sCi0gICAgICAgICAgICAgIFsiQmFy
IiwgImFiYzQiXSwKLSAgICAgICAgICAgICAgWyJCYXoiLCAiNzg5Il0KLSAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXJzOiBbCi0gICAgICAgICAgICAgIFsiRXhwaXJl
cyIsIDUwMDBdLAotICAgICAgICAgICAgICBbIkxhc3QtTW9kaWZpZWQiLCAtMzAwMF0sCi0gICAg
ICAgICAgICAgIFsiVmFyeSIsICJGb28sIEJhciwgQmF6Il0KLSAgICAgICAgICAgIF0KLSAgICAg
ICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAg
ICAgICAgICAgICBbIkZvbyIsICIxIl0sCi0gICAgICAgICAgICAgIFsiQmFyIiwgImFiYyJdLAot
ICAgICAgICAgICAgICBbIkJheiIsICI3ODkiXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
IGV4cGVjdGVkX3R5cGU6ICJub3RfY2FjaGVkIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAg
ICAgfSwKLSAgICAgIHsKLSAgICAgICAgbmFtZTogIkhUVFAgY2FjaGUgdXNlcyB0aHJlZS13YXkg
VmFyeSByZXNwb25zZSB3aGVuIGJvdGggcmVxdWVzdCBhbmQgdGhlIG9yaWdpbmFsIHJlcXVlc3Qg
b21pdGVkIGEgdmFyaWFudCBoZWFkZXIiLAotICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAg
IHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIs
ICIxIl0sCi0gICAgICAgICAgICAgIFsiQmF6IiwgIjc4OSJdCi0gICAgICAgICAgICBdLAotICAg
ICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczogWwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCA1
MDAwXSwKLSAgICAgICAgICAgICAgWyJMYXN0LU1vZGlmaWVkIiwgLTMwMDBdLAotICAgICAgICAg
ICAgICBbIlZhcnkiLCAiRm9vLCBCYXIsIEJheiJdCi0gICAgICAgICAgICBdCi0gICAgICAgICAg
fSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnM6IFsKLSAgICAgICAg
ICAgICAgWyJGb28iLCAiMSJdLAotICAgICAgICAgICAgICBbIkJheiIsICI3ODkiXQotICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3R5cGU6ICJjYWNoZWQiCi0gICAgICAgICAg
fQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICBuYW1lOiAiSFRUUCBjYWNo
ZSBkb2Vzbid0IHVzZSBWYXJ5IHJlc3BvbnNlIHdpdGggYSBmaWVsZCB2YWx1ZSBvZiAnKiciLAot
ICAgICAgICByZXF1ZXN0czogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIHJlcXVlc3RfaGVh
ZGVyczogWwotICAgICAgICAgICAgICBbIkZvbyIsICIxIl0sCi0gICAgICAgICAgICAgIFsiQmF6
IiwgIjc4OSJdCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyczog
WwotICAgICAgICAgICAgICBbIkV4cGlyZXMiLCA1MDAwXSwKLSAgICAgICAgICAgICAgWyJMYXN0
LU1vZGlmaWVkIiwgLTMwMDBdLAotICAgICAgICAgICAgICBbIlZhcnkiLCAiKiJdCi0gICAgICAg
ICAgICBdCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICByZXF1ZXN0X2hl
YWRlcnM6IFsKLSAgICAgICAgICAgICAgWyIqIiwgIjEiXSwKLSAgICAgICAgICAgICAgWyJCYXoi
LCAiNzg5Il0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBleHBlY3RlZF90eXBlOiAibm90
X2NhY2hlZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0KLSAgICBdOwotICAgIHJ1
bl90ZXN0cyh0ZXN0cyk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
aHR0cC1jYWNoZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS93M2MtaW1wb3J0LmxvZwppbmRleCBlODE1
NzU4ZmFkOGYyNDFiOGFkNWFiYjk3NjgxNGQwNDI1YjUxNmFiLi5hYTE4OWM1NTU5YTQ3MDMyZGZm
YWViNmY5YjhlZDlmZDFjYjc0MjU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdzNjLWltcG9ydC5sb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL3czYy1pbXBvcnQubG9nCkBAIC0xNCwxNyArMTQsMTggQEAgUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9odHRwLWNhY2hlLzMwNC11cGRhdGUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS8zMDQtdXBkYXRlLmFueS5qcwog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1j
YWNoZS9SRUFETUUubWQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2h0dHAtY2FjaGUvYmFzaWMtYXV0aC1jYWNoZS10ZXN0LWV4cGVjdGVkLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAt
Y2FjaGUvYmFzaWMtYXV0aC1jYWNoZS10ZXN0Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvY2MtcmVxdWVzdC5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNh
Y2hlL2ZyZXNobmVzcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2hldXJpc3RpYy5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NhY2hlLW1vZGUu
YW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9odHRwLWNhY2hlL2NjLXJlcXVlc3QuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ZyZXNobmVzcy5hbnkuanMKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2Fj
aGUvaGV1cmlzdGljLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9odHRwLWNhY2hlLmpzCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUu
aHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
aHR0cC1jYWNoZS9wYXJ0aWFsLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvcG9zdC1wYXRjaC5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFs
aWRhdGUuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9odHRwLWNhY2hlL3BhcnRpYWwuYW55LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL3Bvc3QtcGF0Y2guYW55Lmpz
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL3NwbGl0LWNhY2hlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvc3RhdHVzLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFyeS5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL3N0YXR1cy5hbnkuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvdmFyeS5hbnkuanMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvTUVU
QS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL01FVEEueW1sCmluZGV4IDRlN2ExM2EwYjdmM2JlZmU5NmY2OTNiOTg4YzZmZGZm
OTNiODgwNWQuLjg1ZjBhN2QyZWUxMjYxNmFhN2E1Njk4YjM0Njk1NDgyOWQ4YThiYjAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvTUVUQS55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9NRVRBLnltbApAQCAtMSw0ICsxLDQgQEAKK3NwZWM6
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtZmV0Y2gtbWV0YWRhdGEvCiBzdWdnZXN0
ZWRfcmV2aWV3ZXJzOgotICAtIHpjb3JwYW4KICAgLSBtaWtld2VzdAogICAtIGlWYW5sSXNoCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL21ldGFkYXRhL2Rvd25sb2FkLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2Rvd25sb2Fk
Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQx
ODc5ZTAyYTdmMDk3MjdjODM1NWIwMzRlZjJkMDI5MzI5Y2ZkZjEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9kb3dubG9hZC5odHRwcy5zdWItZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0yNzIwYTdmYy04OGMxLTRlNDct
ODBmZS1kMGI2NGQzOTM2OWUKLQotUEFTUyBsb2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgZG93
bmxvYWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9lbWJlZC5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9l
bWJlZC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhOTE5OTkyMzkyYTAzYmMwNGVjMGZlM2NlOTQxYmVkNjlhN2JkZjMwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZW1iZWQuaHR0cHMuc3ViLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9y
ZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPWVtYmVkLXNhbWUtc2l0ZS05NjUyNjY4Yy0z
YjA3LTQwODktYTk1Zi1kOWE1MzI4MjZhMWIKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVj
b3JkLWhlYWRlci5weT9maWxlPXBvc3QtZW1iZWQtc2FtZS1zaXRlLTk2NTI2NjhjLTNiMDctNDA4
OS1hOTVmLWQ5YTUzMjgyNmExYgotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVh
ZGVyLnB5P2ZpbGU9ZW1iZWQtY3Jvc3Mtc2l0ZS05NjUyNjY4Yy0zYjA3LTQwODktYTk1Zi1kOWE1
MzI4MjZhMWIKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy4xMjcu
MC4wLjE6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxl
PXBvc3QtZW1iZWQtY3Jvc3Mtc2l0ZS05NjUyNjY4Yy0zYjA3LTQwODktYTk1Zi1kOWE1MzI4MjZh
MWIKLQotCi1QQVNTIFdyYXBwZXI6IHNhbWUtb3JpZ2luIGVtYmVkCi1QQVNTIFdyYXBwZXI6IE5h
dmlnYXRlIHRvIHNhbWUtb3JpZ2luIGVtYmVkCi1GQUlMIFdyYXBwZXI6IHNhbWUtc2l0ZSBlbWJl
ZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRlciBoYXMg
YmVlbiByZWNvcmRlZCIKLUZBSUwgV3JhcHBlcjogTmF2aWdhdGUgdG8gc2FtZS1zaXRlIGVtYmVk
IGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiTm8gaGVhZGVyIGhhcyBi
ZWVuIHJlY29yZGVkIgotRkFJTCBXcmFwcGVyOiBjcm9zcy1zaXRlIGVtYmVkIGFzc2VydF9ub3Rf
ZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVk
IgotRkFJTCBXcmFwcGVyOiBOYXZpZ2F0ZSB0byBjcm9zcy1zaXRlIGVtYmVkIGFzc2VydF9ub3Rf
ZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVk
IgotRkFJTCBzYW1lLW9yaWdpbiBlbWJlZDogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgImVtYmVkIiBidXQgZ290ICIiCi1GQUlMIHNhbWUtb3JpZ2luIGVtYmVkOiBzZWMt
ZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIK
LUZBSUwgc2FtZS1vcmlnaW4gZW1iZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyBzYW1lLW9yaWdpbiBlbWJlZDog
c2VjLWZldGNoLXVzZXIKLUZBSUwgTmF2aWdhdGUgdG8gc2FtZS1vcmlnaW4gZW1iZWQ6IHNlYy1m
ZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJlbWJlZCIgYnV0IGdvdCAiIgotRkFJ
TCBOYXZpZ2F0ZSB0byBzYW1lLW9yaWdpbiBlbWJlZDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIm5hdmlnYXRlIiBidXQgZ290ICIiCi1GQUlMIE5hdmlnYXRlIHRvIHNh
bWUtb3JpZ2luIGVtYmVkOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
c2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1MgTmF2aWdhdGUgdG8gc2FtZS1vcmlnaW4gZW1i
ZWQ6IHNlYy1mZXRjaC11c2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZW1iZWQuaHR0cHMuc3ViLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFk
YXRhL2VtYmVkLmh0dHBzLnN1Yi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
YTU5YjgyMWI0NTU0NDg0ODI3OTAzNTkyMWRmMDQxYjlkNjNjMDMzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZW1iZWQuaHR0cHMuc3ViLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ii8+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibXRyem9zQGdvb2dsZS5jb20i
IHRpdGxlPSJNYWNpZWsgVHJ6b3MiPgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBl
ci5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9jb21tb24vdXRpbHMuanM+PC9zY3JpcHQ+Ci08
Ym9keT4KLTxzY3JpcHQ+Ci0gIGNvbnN0IG5vbmNlID0gdG9rZW4oKTsKLQotICBjb25zdCBvcmln
aW5zID0gewotICAgICJzYW1lLW9yaWdpbiI6ICJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0
cHNdWzBdfX0iLAotICAgICJzYW1lLXNpdGUiOiAgICJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06
e3twb3J0c1todHRwc11bMF19fSIsCi0gICAgImNyb3NzLXNpdGUiOiAgImh0dHBzOi8ve3tob3N0
c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19IiwKLSAgfTsKLQotICBmb3IgKGxldCBz
aXRlIGluIG9yaWdpbnMpIHsKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICBsZXQga2V5ID0gImVt
YmVkLSIgKyBzaXRlICsgIi0iICsgbm9uY2U7Ci0KLSAgICAgICAgbGV0IGVsID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZW1iZWQnKTsKLSAgICAgICAgZWwuc3JjID0gb3JpZ2luc1tzaXRlXSAr
ICIvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5
OwotICAgICAgICBlbC5vbmxvYWQgPSBfID0+IHsKLSAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSB7
ImRlc3QiOiAiZW1iZWQiLCAic2l0ZSI6IHNpdGUsICJ1c2VyIjogIiIsICJtb2RlIjogIm5hdmln
YXRlIn07Ci0gICAgICAgICAgdmFsaWRhdGVfZXhwZWN0YXRpb25zKGtleSwgZXhwZWN0ZWQsIHNp
dGUgKyAiIGVtYmVkIikKLSAgICAgICAgICAgIC50aGVuKHJlc29sdmUpCi0gICAgICAgICAgICAu
Y2F0Y2gocmVqZWN0KTsKLSAgICAgICAgfTsKLQotICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGVsKTsKLSAgICAgIH0pCi0gICAgfSwgIldyYXBwZXI6ICIgKyBzaXRlICsgIiBlbWJl
ZCIpOwotCi0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAgICAgbGV0IGtleSA9ICJwb3N0LWVtYmVkLSIg
KyBzaXRlICsgIi0iICsgbm9uY2U7Ci0KLSAgICAgICAgbGV0IGVsID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZW1iZWQnKTsKLSAgICAgICAgZWwuc3JjID0gIi9jb21tb24vYmxhbmsuaHRtbCI7
Ci0gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBfID0+IHsKLSAgICAgICAgICBl
bC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgXyA9PiB7Ci0gICAgICAgICAgICBsZXQgZXhwZWN0
ZWQgPSB7ImRlc3QiOiAiZW1iZWQiLCAic2l0ZSI6IHNpdGUsICJ1c2VyIjoiIiwgIm1vZGUiOiJu
YXZpZ2F0ZSJ9OwotICAgICAgICAgICAgdmFsaWRhdGVfZXhwZWN0YXRpb25zKGtleSwgZXhwZWN0
ZWQsICJOYXZpZ2F0ZSB0byAiICsgc2l0ZSArICIgZW1iZWQiKQotICAgICAgICAgICAgICAudGhl
bihyZXNvbHZlKQotICAgICAgICAgICAgICAuY2F0Y2gocmVqZWN0KTsKLSAgICAgICAgICB9LCB7
IG9uY2U6IHRydWUgfSk7Ci0KLSAgICAgICAgICAvLyBOYXZpZ2F0ZSB0aGUgZXhpc3RpbmcgYDxl
bWJlZD5gCi0gICAgICAgICAgd2luZG93LmZyYW1lc1t3aW5kb3cubGVuZ3RoIC0gMV0ubG9jYXRp
b24gPSBvcmlnaW5zW3NpdGVdICsgIi9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhl
YWRlci5weT9maWxlPSIgKyBrZXk7Ci0gICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKLQotICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKTsKLSAgICAgIH0pCi0gICAgfSwgIldy
YXBwZXI6IE5hdmlnYXRlIHRvICIgKyBzaXRlICsgIiBlbWJlZCIpOwotICB9Ci08L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvbWV0YWRhdGEvZW1iZWQuaHR0cHMuc3ViLnRlbnRhdGl2ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9lbWJlZC5o
dHRwcy5zdWIudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkwMGRiZGYwODEzOWMwMDgyMmY0
NTQ1NDI1Y2JlNTJkMzVlZjU2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZW1iZWQuaHR0cHMuc3Vi
LnRlbnRhdGl2ZS5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiLz4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtdHJ6b3NAZ29vZ2xl
LmNvbSIgdGl0bGU9Ik1hY2llayBUcnpvcyI+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMv
aGVscGVyLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L2NvbW1vbi91dGlscy5qcz48L3Njcmlw
dD4KKzxib2R5PgorCis8cD5SZWxldmFudCBpc3N1ZTogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIu
Y29tL3doYXR3Zy9odG1sL2lzc3Vlcy81MTMiPgorJmx0O2VtYmVkPiBzaG91bGQgc3VwcG9ydCBs
b2FkaW5nIHJhbmRvbSBIVE1MIGRvY3VtZW50cywgbGlrZSAmbHQ7b2JqZWN0PgorPC9hPjwvcD4K
KworPHNjcmlwdD4KKyAgY29uc3Qgbm9uY2UgPSB0b2tlbigpOworCisgIGNvbnN0IG9yaWdpbnMg
PSB7CisgICAgInNhbWUtb3JpZ2luIjogImh0dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11b
MF19fSIsCisgICAgInNhbWUtc2l0ZSI6ICAgImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3Bv
cnRzW2h0dHBzXVswXX19IiwKKyAgICAiY3Jvc3Mtc2l0ZSI6ICAiaHR0cHM6Ly97e2hvc3RzW2Fs
dF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0iLAorICB9OworCisgIGZvciAobGV0IHNpdGUg
aW4gb3JpZ2lucykgeworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCBrZXkgPSAiZW1iZWQt
IiArIHNpdGUgKyAiLSIgKyBub25jZTsKKworICAgICAgICBsZXQgZWwgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdlbWJlZCcpOworICAgICAgICBlbC5zcmMgPSBvcmlnaW5zW3NpdGVdICsgIi9m
ZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Cisg
ICAgICAgIGVsLm9ubG9hZCA9IF8gPT4geworICAgICAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVz
dCI6ICJlbWJlZCIsICJzaXRlIjogc2l0ZSwgInVzZXIiOiAiIiwgIm1vZGUiOiAibmF2aWdhdGUi
fTsKKyAgICAgICAgICB2YWxpZGF0ZV9leHBlY3RhdGlvbnMoa2V5LCBleHBlY3RlZCwgc2l0ZSAr
ICIgZW1iZWQiKQorICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSkKKyAgICAgICAgICAgIC5jYXRj
aChyZWplY3QpOworICAgICAgICB9OworCisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZWwpOworICAgICAgfSkKKyAgICB9LCAiV3JhcHBlcjogIiArIHNpdGUgKyAiIGVtYmVkIik7
CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBsZXQga2V5ID0gInBvc3QtZW1iZWQtIiArIHNp
dGUgKyAiLSIgKyBub25jZTsKKworICAgICAgICBsZXQgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdlbWJlZCcpOworICAgICAgICBlbC5zcmMgPSAiL2NvbW1vbi9ibGFuay5odG1sIjsKKyAg
ICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIF8gPT4geworICAgICAgICAgIGVsLmFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBfID0+IHsKKyAgICAgICAgICAgIGxldCBleHBlY3RlZCA9
IHsiZGVzdCI6ICJlbWJlZCIsICJzaXRlIjogc2l0ZSwgInVzZXIiOiIiLCAibW9kZSI6Im5hdmln
YXRlIn07CisgICAgICAgICAgICB2YWxpZGF0ZV9leHBlY3RhdGlvbnMoa2V5LCBleHBlY3RlZCwg
Ik5hdmlnYXRlIHRvICIgKyBzaXRlICsgIiBlbWJlZCIpCisgICAgICAgICAgICAgIC50aGVuKHJl
c29sdmUpCisgICAgICAgICAgICAgIC5jYXRjaChyZWplY3QpOworICAgICAgICAgIH0sIHsgb25j
ZTogdHJ1ZSB9KTsKKworICAgICAgICAgIC8vIE5hdmlnYXRlIHRoZSBleGlzdGluZyBgPGVtYmVk
PmAKKyAgICAgICAgICB3aW5kb3cuZnJhbWVzW3dpbmRvdy5sZW5ndGggLSAxXS5sb2NhdGlvbiA9
IG9yaWdpbnNbc2l0ZV0gKyAiL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVy
LnB5P2ZpbGU9IiArIGtleTsKKyAgICAgICAgfSwgeyBvbmNlOiB0cnVlIH0pOworCisgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpOworICAgICAgfSkKKyAgICB9LCAiV3JhcHBl
cjogTmF2aWdhdGUgdG8gIiArIHNpdGUgKyAiIGVtYmVkIik7CisgIH0KKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS9mYXZpY29uLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2Zhdmljb24uaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY3NGIx
OTY0MGFjMTBmYWNjNmIzZDc3MGQ4MzA1ZjM4NjEwM2JjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2Zhdmljb24uaHR0cHMuc3ViLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi1GQUlMIFNhbWUtT3JpZ2luIGZhdmlj
b24gYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFz
IGJlZW4gcmVjb3JkZWQiCi1GQUlMIFNhbWUtU2l0ZSBmYXZpY29uIGFzc2VydF9ub3RfZXF1YWxz
OiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIgotRkFJ
TCBDcm9zcy1TaXRlIGZhdmljb24gYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZh
bHVlICJObyBoZWFkZXIgaGFzIGJlZW4gcmVjb3JkZWQiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gt
cHJlZmxpZ2h0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLXByZWZsaWdodC5odHRw
cy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDUyYzZj
NGE5NDY4YmZjMjZlOWY3NDY1YTg0NTkwMWVmMTI4YzZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gtcHJlZmxpZ2h0Lmh0dHBzLnN1Yi1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9y
ZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8t
YXMtanNvbi5weQotCi1GQUlMIFNhbWUtc2l0ZSBmZXRjaCB3aXRoIHByZWZsaWdodCBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IFR5cGUgZXJyb3IiCi1GQUlMIENyb3NzLXNpdGUgZmV0Y2ggd2l0aCBwcmVmbGlnaHQgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiBUeXBlIGVycm9yIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLXByZWZsaWdodC5odHRwcy5zdWIu
YW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL21ldGFkYXRhL2ZldGNoLXByZWZsaWdodC5odHRwcy5zdWIuYW55Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvZmV0Y2gtcHJlZmxpZ2h0Lmh0dHBzLnN1Yi5hbnkuaHRtbApAQCAtMCwwICsxIEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1
cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLXByZWZsaWdodC5odHRwcy5zdWIuYW55LmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9m
ZXRjaC1wcmVmbGlnaHQuaHR0cHMuc3ViLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTI0NzQzNTNiYTU1
NzNlZTQ1YTQwMDU2NzNjYWY1NjY3ZmQ4OGY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC1w
cmVmbGlnaHQuaHR0cHMuc3ViLmFueS5qcwpAQCAtMCwwICsxLDI5IEBACisvLyBNRVRBOiBnbG9i
YWw9d2luZG93LHdvcmtlcgorLy8gTUVUQTogc2NyaXB0PS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJj
ZXMvaGVscGVyLmpzCisKKy8vIFNpdGUKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgcmV0dXJuIHZh
bGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0b21fdXJsKCJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06
e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29u
LnB5IiwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBtb2RlOiAiY29ycyIs
CisgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICd4LXRlc3QnOiAndGVzdGluZycgfQorICAg
ICAgICAgICAgICAgIH0sIHsKKyAgICAgICAgICAic2l0ZSI6ICJzYW1lLXNpdGUiLAorICAgICAg
ICAgICJ1c2VyIjogIiIsCisgICAgICAgICAgIm1vZGUiOiAiY29ycyIsCisgICAgICAgICAgImRl
c3QiOiAiZW1wdHkiCisgICAgICAgIH0sICJTYW1lLXNpdGUgZmV0Y2ggd2l0aCBwcmVmbGlnaHQi
KTsKK30sICJTYW1lLXNpdGUgZmV0Y2ggd2l0aCBwcmVmbGlnaHQiKTsKKworcHJvbWlzZV90ZXN0
KHQgPT4geworICByZXR1cm4gdmFsaWRhdGVfZXhwZWN0YXRpb25zX2N1c3RvbV91cmwoImh0dHBz
Oi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFkYXRh
L3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkiLAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgIG1vZGU6ICJjb3JzIiwKKyAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ3gt
dGVzdCc6ICd0ZXN0aW5nJyB9CisgICAgICAgICAgICAgICAgfSwgeworICAgICAgICAgICJzaXRl
IjogImNyb3NzLXNpdGUiLAorICAgICAgICAgICJ1c2VyIjogIiIsCisgICAgICAgICAgIm1vZGUi
OiAiY29ycyIsCisgICAgICAgICAgImRlc3QiOiAiZW1wdHkiCisgICAgICAgIH0sICJDcm9zcy1z
aXRlIGZldGNoIHdpdGggcHJlZmxpZ2h0Iik7Cit9LCAiQ3Jvc3Mtc2l0ZSBmZXRjaCB3aXRoIHBy
ZWZsaWdodCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC1wcmVmbGlnaHQuaHR0cHMuc3ViLmFueS53
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvbWV0YWRhdGEvZmV0Y2gtcHJlZmxpZ2h0Lmh0dHBzLnN1Yi5hbnkud29ya2VyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gtcHJlZmxpZ2h0Lmh0dHBzLnN1Yi5hbnkud29ya2VyLmh0
bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0
ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC1wcmVmbGlnaHQuaHR0cHMu
c3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL21ldGFkYXRhL2ZldGNoLXByZWZsaWdodC5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZWM5ODdlMWNhNGI4YjIzMmU0NWQ4ZTY0OWIzYjFiN2FkNjMxZDFh
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNo
LXByZWZsaWdodC5odHRwcy5zdWIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcz48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gIC8vIFNpdGUKLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAg
IHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hvc3Rz
W11bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2Vj
aG8tYXMtanNvbi5weSIsCi0gICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICBt
b2RlOiAiY29ycyIsCi0gICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyAneC10ZXN0JzogJ3Rl
c3RpbmcnIH0KLSAgICAgICAgICAgICAgICAgfSwgewotICAgICAgICAgICAgInNpdGUiOiAic2Ft
ZS1zaXRlIiwKLSAgICAgICAgICAgICJ1c2VyIjogIiIsCi0gICAgICAgICAgICAibW9kZSI6ICJj
b3JzIiwKLSAgICAgICAgICAgICJkZXN0IjogImVtcHR5IgotICAgICAgICAgIH0sICJTYW1lLXNp
dGUgZmV0Y2ggd2l0aCBwcmVmbGlnaHQiKTsKLSAgfSwgIlNhbWUtc2l0ZSBmZXRjaCB3aXRoIHBy
ZWZsaWdodCIpOwotCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gdmFsaWRhdGVf
ZXhwZWN0YXRpb25zX2N1c3RvbV91cmwoImh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3Bv
cnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHki
LAotICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgbW9kZTogImNvcnMiLAot
ICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ3gtdGVzdCc6ICd0ZXN0aW5nJyB9Ci0gICAg
ICAgICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgICJzaXRlIjogImNyb3NzLXNpdGUiLAotICAg
ICAgICAgICAgInVzZXIiOiAiIiwKLSAgICAgICAgICAgICJtb2RlIjogImNvcnMiLAotICAgICAg
ICAgICAgImRlc3QiOiAiZW1wdHkiCi0gICAgICAgICAgfSwgIkNyb3NzLXNpdGUgZmV0Y2ggd2l0
aCBwcmVmbGlnaHQiKTsKLSAgfSwgIkNyb3NzLXNpdGUgZmV0Y2ggd2l0aCBwcmVmbGlnaHQiKTsK
LTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC12aWEtc2VydmljZXdvcmtlci0tZmFsbGJh
Y2suaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gtdmlhLXNlcnZpY2V3b3JrZXItLWZh
bGxiYWNrLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGEyZjBkYjEwZGM0OGJiYzhlM2Y3NzZlOGQ5MmM2MGExYmQwZTVhZTcuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC12aWEtc2VydmljZXdv
cmtlci0tZmFsbGJhY2suaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDcgKzAsMCBAQAotCi1QQVNTIFNlYy1GZXRjaCBoZWFkZXJzIGFmdGVyIFNXIGZhbGxiYWNrCi1G
QUlMIHVuZGVmaW5lZDogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImVt
cHR5IiBidXQgZ290ICIiCi1GQUlMIHVuZGVmaW5lZDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIm5vLWNvcnMiIGJ1dCBnb3QgIiIKLUZBSUwgdW5kZWZpbmVkOiBzZWMt
ZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3Qg
IiIKLVBBU1MgdW5kZWZpbmVkOiBzZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNo
LXZpYS1zZXJ2aWNld29ya2VyLS1yZXNwb25kV2l0aC5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0
YS9mZXRjaC12aWEtc2VydmljZXdvcmtlci0tcmVzcG9uZFdpdGguaHR0cHMuc3ViLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTJmMGRiMTBkYzQ4YmJjOGUzZjc3
NmU4ZDkyYzYwYTFiZDBlNWFlNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL21ldGFkYXRhL2ZldGNoLXZpYS1zZXJ2aWNld29ya2VyLS1yZXNwb25kV2l0aC5odHRwcy5z
dWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0KLVBBU1MgU2Vj
LUZldGNoIGhlYWRlcnMgYWZ0ZXIgU1cgZmFsbGJhY2sKLUZBSUwgdW5kZWZpbmVkOiBzZWMtZmV0
Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZW1wdHkiIGJ1dCBnb3QgIiIKLUZBSUwg
dW5kZWZpbmVkOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibm8tY29y
cyIgYnV0IGdvdCAiIgotRkFJTCB1bmRlZmluZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyB1bmRlZmluZWQ6IHNl
Yy1mZXRjaC11c2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2guaHR0cHMuc3ViLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0
YWRhdGEvZmV0Y2guaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmQyNDMyZDk0NmM5ZGJlY2Q2ZjhlYjY1ZmM1ZmJjMjk1MjcwM2NiOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0dHBzLnN1
Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1CbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0
YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNl
cy9lY2hvLWFzLWpzb24ucHkKLQotUEFTUyBTYW1lLW9yaWdpbiBmZXRjaAotRkFJTCBTYW1lLXNp
dGUgZmV0Y2ggcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBDcm9zcy1zaXRlIGZldGNoIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogVHlwZSBlcnJvciIKLVBBU1MgU2FtZS1vcmlnaW4gbW9kZQotUEFTUyBDT1JTIG1vZGUKLVBB
U1Mgbm8tQ09SUyBtb2RlCi1GQUlMIFNhbWUtb3JpZ2luIGZldGNoOiBzZWMtZmV0Y2gtZGVzdCBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZW1wdHkiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1vcmln
aW4gZmV0Y2g6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjb3JzIiBi
dXQgZ290ICIiCi1GQUlMIFNhbWUtb3JpZ2luIGZldGNoOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1MgU2FtZS1vcmln
aW4gZmV0Y2g6IHNlYy1mZXRjaC11c2VyCi1GQUlMIFNhbWUtb3JpZ2luIG1vZGU6IHNlYy1mZXRj
aC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJlbXB0eSIgYnV0IGdvdCAiIgotRkFJTCBT
YW1lLW9yaWdpbiBtb2RlOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
c2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1vcmlnaW4gbW9kZTogc2VjLWZldGNo
LXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1Q
QVNTIFNhbWUtb3JpZ2luIG1vZGU6IHNlYy1mZXRjaC11c2VyCi1GQUlMIENPUlMgbW9kZTogc2Vj
LWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImVtcHR5IiBidXQgZ290ICIiCi1G
QUlMIENPUlMgbW9kZTogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNv
cnMiIGJ1dCBnb3QgIiIKLUZBSUwgQ09SUyBtb2RlOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1MgQ09SUyBtb2RlOiBz
ZWMtZmV0Y2gtdXNlcgotRkFJTCBuby1DT1JTIG1vZGU6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJlbXB0eSIgYnV0IGdvdCAiIgotRkFJTCBuby1DT1JTIG1vZGU6IHNl
Yy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJuby1jb3JzIiBidXQgZ290ICIi
Ci1GQUlMIG5vLUNPUlMgbW9kZTogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIG5vLUNPUlMgbW9kZTogc2VjLWZldGNo
LXVzZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC5odHRwcy5zdWIuYW55Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNo
Lmh0dHBzLnN1Yi5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYw
YTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC5odHRwcy5zdWIuYW55
Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktp
dCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC5odHRwcy5zdWIuYW55
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9t
ZXRhZGF0YS9mZXRjaC5odHRwcy5zdWIuYW55LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlZWM1Y2RmMmRjMTFk
ZTEzN2NkNGE1ZWViYmE5MzFjZDE2YTkzN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0
dHBzLnN1Yi5hbnkuanMKQEAgLTAsMCArMSw1OCBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3
b3JrZXIKKy8vIE1FVEE6IHNjcmlwdD0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5q
cworCisvLyBTaXRlCitwcm9taXNlX3Rlc3QodCA9PiB7CisgIHJldHVybiB2YWxpZGF0ZV9leHBl
Y3RhdGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19
L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkiLCB7fSwgeworICAgICAg
ICAgICJzaXRlIjogInNhbWUtb3JpZ2luIiwKKyAgICAgICAgICAidXNlciI6ICIiLAorICAgICAg
ICAgICJtb2RlIjogImNvcnMiLAorICAgICAgICAgICJkZXN0IjogImVtcHR5IgorICAgICAgICB9
LCAiU2FtZS1vcmlnaW4gZmV0Y2giKTsKK30sICJTYW1lLW9yaWdpbiBmZXRjaCIpOworCitwcm9t
aXNlX3Rlc3QodCA9PiB7CisgIHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3Vy
bCgiaHR0cHM6Ly97e2hvc3RzW11bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0
YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weSIsIHt9LCB7CisgICAgICAgICAgInNpdGUi
OiAic2FtZS1zaXRlIiwKKyAgICAgICAgICAidXNlciI6ICIiLAorICAgICAgICAgICJtb2RlIjog
ImNvcnMiLAorICAgICAgICAgICJkZXN0IjogImVtcHR5IgorICAgICAgICB9LCAiU2FtZS1zaXRl
IGZldGNoIik7Cit9LCAiU2FtZS1zaXRlIGZldGNoIik7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsK
KyAgcmV0dXJuIHZhbGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0b21fdXJsKCJodHRwczovL3t7aG9z
dHNbYWx0XVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJj
ZXMvZWNoby1hcy1qc29uLnB5Iiwge30sIHsKKyAgICAgICAgICAic2l0ZSI6ICJjcm9zcy1zaXRl
IiwKKyAgICAgICAgICAidXNlciI6ICIiLAorICAgICAgICAgICJtb2RlIjogImNvcnMiLAorICAg
ICAgICAgICJkZXN0IjogImVtcHR5IgorICAgICAgICB9LCAiQ3Jvc3Mtc2l0ZSBmZXRjaCIpOwor
fSwgIkNyb3NzLXNpdGUgZmV0Y2giKTsKKworLy8gTW9kZQorcHJvbWlzZV90ZXN0KHQgPT4gewor
ICByZXR1cm4gdmFsaWRhdGVfZXhwZWN0YXRpb25zX2N1c3RvbV91cmwoImh0dHBzOi8ve3tob3N0
fX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1q
c29uLnB5Iiwge21vZGU6ICJzYW1lLW9yaWdpbiJ9LCB7CisgICAgICAgICAgInNpdGUiOiAic2Ft
ZS1vcmlnaW4iLAorICAgICAgICAgICJ1c2VyIjogIiIsCisgICAgICAgICAgIm1vZGUiOiAic2Ft
ZS1vcmlnaW4iLAorICAgICAgICAgICJkZXN0IjogImVtcHR5IgorICAgICAgICB9LCAiU2FtZS1v
cmlnaW4gbW9kZSIpOworfSwgIlNhbWUtb3JpZ2luIG1vZGUiKTsKKworcHJvbWlzZV90ZXN0KHQg
PT4geworICByZXR1cm4gdmFsaWRhdGVfZXhwZWN0YXRpb25zX2N1c3RvbV91cmwoImh0dHBzOi8v
e3tob3N0fX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNo
by1hcy1qc29uLnB5Iiwge21vZGU6ICJjb3JzIn0sIHsKKyAgICAgICAgICAic2l0ZSI6ICJzYW1l
LW9yaWdpbiIsCisgICAgICAgICAgInVzZXIiOiAiIiwKKyAgICAgICAgICAibW9kZSI6ICJjb3Jz
IiwKKyAgICAgICAgICAiZGVzdCI6ICJlbXB0eSIKKyAgICAgICAgfSwgIkNPUlMgbW9kZSIpOwor
fSwgIkNPUlMgbW9kZSIpOworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgIHJldHVybiB2YWxpZGF0
ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBz
XVswXX19L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkiLCB7bW9kZTog
Im5vLWNvcnMifSwgeworICAgICAgICAgICJzaXRlIjogInNhbWUtb3JpZ2luIiwKKyAgICAgICAg
ICAidXNlciI6ICIiLAorICAgICAgICAgICJtb2RlIjogIm5vLWNvcnMiLAorICAgICAgICAgICJk
ZXN0IjogImVtcHR5IgorICAgICAgICB9LCAibm8tQ09SUyBtb2RlIik7Cit9LCAibm8tQ09SUyBt
b2RlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0dHBzLnN1Yi5hbnkud29ya2VyLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRh
L2ZldGNoLmh0dHBzLnN1Yi5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2
OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gu
aHR0cHMuc3ViLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBp
cyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1w
bGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRh
L2ZldGNoLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYmI3ZDIwMDA5NDQyYWMwMmM1ZTgwMTFkMjhiNjdjYzAwMTQz
MzljNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2Zl
dGNoLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0
PgotPHNjcmlwdD4KLSAgLy8gU2l0ZQotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJu
IHZhbGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0b21fdXJsKCJodHRwczovL3t7aG9zdH19Ont7cG9y
dHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weSIs
IHt9LCB7Ci0gICAgICAgICAgICAic2l0ZSI6ICJzYW1lLW9yaWdpbiIsCi0gICAgICAgICAgICAi
dXNlciI6ICIiLAotICAgICAgICAgICAgIm1vZGUiOiAiY29ycyIsCi0gICAgICAgICAgICAiZGVz
dCI6ICJlbXB0eSIKLSAgICAgICAgICB9LCAiU2FtZS1vcmlnaW4gZmV0Y2giKTsKLSAgfSwgIlNh
bWUtb3JpZ2luIGZldGNoIik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiB2
YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hvc3RzW11bd3d3XX19
Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNv
bi5weSIsIHt9LCB7Ci0gICAgICAgICAgICAic2l0ZSI6ICJzYW1lLXNpdGUiLAotICAgICAgICAg
ICAgInVzZXIiOiAiIiwKLSAgICAgICAgICAgICJtb2RlIjogImNvcnMiLAotICAgICAgICAgICAg
ImRlc3QiOiAiZW1wdHkiCi0gICAgICAgICAgfSwgIlNhbWUtc2l0ZSBmZXRjaCIpOwotICB9LCAi
U2FtZS1zaXRlIGZldGNoIik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiB2
YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3
XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMt
anNvbi5weSIsIHt9LCB7Ci0gICAgICAgICAgICAic2l0ZSI6ICJjcm9zcy1zaXRlIiwKLSAgICAg
ICAgICAgICJ1c2VyIjogIiIsCi0gICAgICAgICAgICAibW9kZSI6ICJjb3JzIiwKLSAgICAgICAg
ICAgICJkZXN0IjogImVtcHR5IgotICAgICAgICAgIH0sICJDcm9zcy1zaXRlIGZldGNoIik7Ci0g
IH0sICJDcm9zcy1zaXRlIGZldGNoIik7Ci0KLSAgLy8gTW9kZQotICBwcm9taXNlX3Rlc3QodCA9
PiB7Ci0gICAgcmV0dXJuIHZhbGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0b21fdXJsKCJodHRwczov
L3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2Vj
aG8tYXMtanNvbi5weSIsIHttb2RlOiAic2FtZS1vcmlnaW4ifSwgewotICAgICAgICAgICAgInNp
dGUiOiAic2FtZS1vcmlnaW4iLAotICAgICAgICAgICAgInVzZXIiOiAiIiwKLSAgICAgICAgICAg
ICJtb2RlIjogInNhbWUtb3JpZ2luIiwKLSAgICAgICAgICAgICJkZXN0IjogImVtcHR5IgotICAg
ICAgICAgIH0sICJTYW1lLW9yaWdpbiBtb2RlIik7Ci0gIH0sICJTYW1lLW9yaWdpbiBtb2RlIik7
Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlv
bnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNo
L21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkiLCB7bW9kZTogImNvcnMifSwgewot
ICAgICAgICAgICAgInNpdGUiOiAic2FtZS1vcmlnaW4iLAotICAgICAgICAgICAgInVzZXIiOiAi
IiwKLSAgICAgICAgICAgICJtb2RlIjogImNvcnMiLAotICAgICAgICAgICAgImRlc3QiOiAiZW1w
dHkiCi0gICAgICAgICAgfSwgIkNPUlMgbW9kZSIpOwotICB9LCAiQ09SUyBtb2RlIik7Ci0KLSAg
cHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3Vz
dG9tX3VybCgiaHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFk
YXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkiLCB7bW9kZTogIm5vLWNvcnMifSwgewotICAg
ICAgICAgICAgInNpdGUiOiAic2FtZS1vcmlnaW4iLAotICAgICAgICAgICAgInVzZXIiOiAiIiwK
LSAgICAgICAgICAgICJtb2RlIjogIm5vLWNvcnMiLAotICAgICAgICAgICAgImRlc3QiOiAiZW1w
dHkiCi0gICAgICAgICAgfSwgIm5vLUNPUlMgbW9kZSIpOwotICB9LCAibm8tQ09SUyBtb2RlIik7
Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2guc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0
Y2guc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWFlMGQy
MDJiZDExYmNmNWFlMzEyOWE0MzY3Y2UwNjM4YTA5NTJiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLnN1Yi1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0KLVBBU1MgaHR0cC0+aHR0cHMgZmV0Y2ggKGNyb3Nz
LXNjaGVtZSA9PiBjcm9zcy1zaXRlKQotUEFTUyBodHRwLT5odHRwIGZldGNoIChub24tdHJ1c3R3
b3J0aHkgZGVzdGluYXRpb24gPT4gbm8gbWV0YWRhdGEpCi1GQUlMIGh0dHAtPmh0dHBzIGZldGNo
IChjcm9zcy1zY2hlbWUgPT4gY3Jvc3Mtc2l0ZSk6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJlbXB0eSIgYnV0IGdvdCAiIgotRkFJTCBodHRwLT5odHRwcyBmZXRjaCAo
Y3Jvc3Mtc2NoZW1lID0+IGNyb3NzLXNpdGUpOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiY29ycyIgYnV0IGdvdCAiIgotRkFJTCBodHRwLT5odHRwcyBmZXRjaCAoY3Jv
c3Mtc2NoZW1lID0+IGNyb3NzLXNpdGUpOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiY3Jvc3Mtc2l0ZSIgYnV0IGdvdCAiIgotUEFTUyBodHRwLT5odHRwcyBmZXRjaCAo
Y3Jvc3Mtc2NoZW1lID0+IGNyb3NzLXNpdGUpOiBzZWMtZmV0Y2gtdXNlcgotUEFTUyBodHRwLT5o
dHRwIGZldGNoIChub24tdHJ1c3R3b3J0aHkgZGVzdGluYXRpb24gPT4gbm8gbWV0YWRhdGEpOiBz
ZWMtZmV0Y2gtZGVzdAotUEFTUyBodHRwLT5odHRwIGZldGNoIChub24tdHJ1c3R3b3J0aHkgZGVz
dGluYXRpb24gPT4gbm8gbWV0YWRhdGEpOiBzZWMtZmV0Y2gtbW9kZQotUEFTUyBodHRwLT5odHRw
IGZldGNoIChub24tdHJ1c3R3b3J0aHkgZGVzdGluYXRpb24gPT4gbm8gbWV0YWRhdGEpOiBzZWMt
ZmV0Y2gtc2l0ZQotUEFTUyBodHRwLT5odHRwIGZldGNoIChub24tdHJ1c3R3b3J0aHkgZGVzdGlu
YXRpb24gPT4gbm8gbWV0YWRhdGEpOiBzZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2Zv
bnQuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZm9udC5odHRwcy5zdWItZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjkyMDBlZGZlOTI2ZjJlZWFkZGRlY2Mx
YmZiOWZjNWE1MGU5ZmIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvZm9udC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTQgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3Lmxv
Y2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2Zp
bGU9Zm9udC1zYW1lLXNpdGUKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczov
L3d3dy4xMjcuMC4wLjE6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRl
ci5weT9maWxlPWZvbnQtY3Jvc3Mtc2l0ZQotMQotMgotMwotCi1QQVNTIFNhbWUtT3JpZ2luIGZv
bnQKLUZBSUwgU2FtZS1TaXRlIGZvbnQgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2Vk
IHZhbHVlICJObyBoZWFkZXIgaGFzIGJlZW4gcmVjb3JkZWQiCi1GQUlMIENyb3NzLVNpdGUgZm9u
dCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRlciBoYXMg
YmVlbiByZWNvcmRlZCIKLUZBSUwgU2FtZS1PcmlnaW4gZm9udDogc2VjLWZldGNoLWRlc3QgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgImZvbnQiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1PcmlnaW4g
Zm9udDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNvcnMiIGJ1dCBn
b3QgIiIKLUZBSUwgU2FtZS1PcmlnaW4gZm9udDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIFNhbWUtT3JpZ2luIGZv
bnQ6IHNlYy1mZXRjaC11c2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZm9ybS5odHRwcy5zdWItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS9mb3JtLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQyNDYyMjBkMjIzOGUxY2I3NWMzMDE5YTVmNDJkOGI3YTMwZjUwM2UuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mb3JtLmh0dHBz
LnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0KLQotCi0K
LUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1QQVNTIGxvY2FsaG9z
dCAtPiBsb2NhbGhvc3Q6OTQ0MyBpZnJhbWU6IGZvcmNlZAotVElNRU9VVCBsb2NhbGhvc3QgLT4g
d3d3LmxvY2FsaG9zdDo5NDQzIGlmcmFtZTogZm9yY2VkIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VU
IGxvY2FsaG9zdCAtPiB3d3cuMTI3LjAuMC4xOjk0NDMgaWZyYW1lOiBmb3JjZWQgVGVzdCB0aW1l
ZCBvdXQKLVBBU1MgbG9jYWxob3N0IC0+IGxvY2FsaG9zdDo5NDQzIGlmcmFtZTogdXNlci1hY3Rp
dmF0ZWQKLVRJTUVPVVQgbG9jYWxob3N0IC0+IHd3dy5sb2NhbGhvc3Q6OTQ0MyBpZnJhbWU6IHVz
ZXItYWN0aXZhdGVkIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGxvY2FsaG9zdCAtPiB3d3cuMTI3
LjAuMC4xOjk0NDMgaWZyYW1lOiB1c2VyLWFjdGl2YXRlZCBUZXN0IHRpbWVkIG91dAotRkFJTCBs
b2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZyYW1lOiBmb3JjZWQ6IHNlYy1mZXRjaC1kZXN0
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJkb2N1bWVudCIgYnV0IGdvdCAiIgotRkFJTCBsb2Nh
bGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZyYW1lOiBmb3JjZWQ6IHNlYy1mZXRjaC1tb2RlIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJuYXZpZ2F0ZSIgYnV0IGdvdCAiIgotRkFJTCBsb2NhbGhv
c3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZyYW1lOiBmb3JjZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyBsb2NhbGhv
c3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZyYW1lOiBmb3JjZWQ6IHNlYy1mZXRjaC11c2VyCi1GQUlM
IGxvY2FsaG9zdCAtPiBsb2NhbGhvc3Q6OTQ0MyBpZnJhbWU6IHVzZXItYWN0aXZhdGVkOiBzZWMt
ZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZG9jdW1lbnQiIGJ1dCBnb3QgIiIK
LUZBSUwgbG9jYWxob3N0IC0+IGxvY2FsaG9zdDo5NDQzIGlmcmFtZTogdXNlci1hY3RpdmF0ZWQ6
IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJuYXZpZ2F0ZSIgYnV0IGdv
dCAiIgotRkFJTCBsb2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZyYW1lOiB1c2VyLWFjdGl2
YXRlZDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2lu
IiBidXQgZ290ICIiCi1GQUlMIGxvY2FsaG9zdCAtPiBsb2NhbGhvc3Q6OTQ0MyBpZnJhbWU6IHVz
ZXItYWN0aXZhdGVkOiBzZWMtZmV0Y2gtdXNlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiPzEi
IGJ1dCBnb3QgIiIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9oaXN0b3J5Lmh0dHBzLnN1Yi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21l
dGFkYXRhL2hpc3RvcnkuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOWJkZDMyNWFjYTE1NDU1MTk3NTQ5MDRhNmY5MDAwZmJkNmE1MjdmNC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2hpc3RvcnkuaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLUJsb2Nr
ZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRj
aC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weQotQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jl
c291cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2dvLWJh
Y2suaHRtbAotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElN
RU9VVCBiYWNrIHRvIHNhbWUtb3JpZ2luLWluaXRpYXRlZCBuYXZpZ2F0aW9uIFRlc3QgdGltZWQg
b3V0Ci1USU1FT1VUIGJhY2sgdG8gc2FtZS1zaXRlLWluaXRpYXRlZCBuYXZpZ2F0aW9uIFRlc3Qg
dGltZWQgb3V0Ci1USU1FT1VUIGJhY2sgdG8gY3Jvc3Mtc2l0ZS1pbml0aWF0ZWQgbmF2aWdhdGlv
biBUZXN0IHRpbWVkIG91dAotRkFJTCBiYWNrIHRvIHNhbWUtb3JpZ2luLWluaXRpYXRlZCBuYXZp
Z2F0aW9uIDE6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJkb2N1bWVu
dCIgYnV0IGdvdCAiIgotRkFJTCBiYWNrIHRvIHNhbWUtb3JpZ2luLWluaXRpYXRlZCBuYXZpZ2F0
aW9uIDE6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJuYXZpZ2F0ZSIg
YnV0IGdvdCAiIgotRkFJTCBiYWNrIHRvIHNhbWUtb3JpZ2luLWluaXRpYXRlZCBuYXZpZ2F0aW9u
IDE6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIg
YnV0IGdvdCAiIgotUEFTUyBiYWNrIHRvIHNhbWUtb3JpZ2luLWluaXRpYXRlZCBuYXZpZ2F0aW9u
IDE6IHNlYy1mZXRjaC11c2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvaGlzdG9yeS5odHRwcy5zdWIuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0
YWRhdGEvaGlzdG9yeS5odHRwcy5zdWIuaHRtbAppbmRleCAwYTEwZjMyYmVhZjU4ZjIyMmQwNDZk
MTJmZTQ1MmE1YzRmMTEzNWM3Li5mMDExOWU2Yzc1NGQzNjNmMmFjZDJkMjc5NDA0M2RmOTFiNzg4
YTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL21ldGFkYXRhL2hpc3RvcnkuaHR0cHMuc3ViLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9oaXN0b3J5
Lmh0dHBzLnN1Yi5odG1sCkBAIC05LDggKzksOCBAQAogLy8vIGhlYWRlcnMpIGFyZSB1c2VkIGlu
IG5hdmlnYXRpb25zIHRyaWdnZXJlZCBieSB8aGlzdG9yeS5iYWNrKCl8LgogZnVuY3Rpb24gYWRk
X3Rlc3QoZGVzY3JpcHRpb24sIHJlcG9ydF9ob3N0LCBnb19iYWNrX2hvc3QsIGV4cGVjdGF0aW9u
cykgewogICBhc3luY190ZXN0KHQgPT4gewotICAgIC8vIFNURVAxOiBOYXZpZ2F0ZSBhIG5ldyB3
aW5kb3cgdG8gcmVwb3J0X2hvc3QvcG9zdC10by1vd25lci5weQotICAgIGNvbnN0IHVybF9zdWZm
aXggPSAnL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5JzsKKyAgICAv
LyBTVEVQMTogTmF2aWdhdGUgYSBuZXcgd2luZG93IHRvIHJlcG9ydF9ob3N0L3Bvc3QtdG8tb3du
ZXItb25sb2FkLnB5CisgICAgY29uc3QgdXJsX3N1ZmZpeCA9ICcvZmV0Y2gvbWV0YWRhdGEvcmVz
b3VyY2VzL3Bvc3QtdG8tb3duZXItb25sb2FkLnB5JzsKICAgICBjb25zdCB1cmwgPSBgaHR0cHM6
Ly8ke3JlcG9ydF9ob3N0fSR7dXJsX3N1ZmZpeH1gOwogICAgIGNvbnN0IHcgPSB3aW5kb3cub3Bl
bih1cmwsICdfYmxhbmsnKTsKIApAQCAtMjQsMTUgKzI0LDEwIEBAIGZ1bmN0aW9uIGFkZF90ZXN0
KGRlc2NyaXB0aW9uLCByZXBvcnRfaG9zdCwgZ29fYmFja19ob3N0LCBleHBlY3RhdGlvbnMpIHsK
ICAgICAgICAgLy8gaGVhZGVycyBhcmUgdXNlZCBoZXJlIGFuZCBpbiBTVEVQNSkuCiAgICAgICAg
IGFzc2VydF9oZWFkZXJfZXF1YWxzKGUuZGF0YSwgZXhwZWN0YXRpb25zLCBkZXNjcmlwdGlvbiAr
ICIgMSIpOwogCi0gICAgICAgIC8vIFNURVAzOiBHbyB0byBnb19iYWNrX2hvc3QvZ28tYmFjay5o
dG1sIChwb3N0cG9uaW5nIHRoaXMgdmlhCi0gICAgICAgIC8vIHN0ZXBfdGltZW91dCBlbnN1cmVz
IHRoYXQgZ28tYmFjay5odG1sIHdpbGwgZ2V0IGEgc2VwYXJhdGUKLSAgICAgICAgLy8gaGlzdG9y
eSBlbnRyeSAtIG90aGVyd2lzZSBpdCBtaWdodCBiZSB0cmVhdGVkIGFzIGEgY2xpZW50LXNpZGUK
LSAgICAgICAgLy8gcmVkaXJlY3QgYW5kIHdlIG1pZ2h0IGVuZCB1cCB3aXRoIG5vd2hlcmUgdG8g
Z28gYmFjayB0bykuCi0gICAgICAgIHQuc3RlcF90aW1lb3V0KCgpID0+IHsKLSAgICAgICAgICBj
b25zdCB1cmxfc3VmZml4ID0gJy9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZ28tYmFjay5odG1s
JzsKLSAgICAgICAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly8ke2dvX2JhY2tfaG9zdH0ke3VybF9z
dWZmaXh9YDsKLSAgICAgICAgICB3LmxvY2F0aW9uID0gdXJsOwotICAgICAgICB9KTsKKyAgICAg
ICAgLy8gU1RFUDM6IEdvIHRvIGdvX2JhY2tfaG9zdC9nby1iYWNrLmh0bWwKKyAgICAgICAgY29u
c3QgdXJsX3N1ZmZpeCA9ICcvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2dvLWJhY2suaHRtbCc7
CisgICAgICAgIGNvbnN0IHVybCA9IGBodHRwczovLyR7Z29fYmFja19ob3N0fSR7dXJsX3N1ZmZp
eH1gOworICAgICAgICB3LmxvY2F0aW9uID0gdXJsOwogCiAgICAgICAgIC8vIFNURVA0IChlbHNl
d2hlcmUgLSBpbnNpZGUgZ28tYmFjay5odG1sKTogQ2FsbCBoaXN0b3J5LmJhY2soKS4KICAgICAg
IH0gZWxzZSBpZiAobXNnX2NvdW50ZXIgPT0gMikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9pZnJhbWUuaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvaWZyYW1lLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExYjEwYTA0Zjk3OWZhZmFkNGJmNzY2MTcwNjk2
OGQ0NTIzYWU1ZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRh
ZGF0YS9pZnJhbWUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIz
ICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2Nh
bGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weQotQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2Zl
dGNoL21ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci1CbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0YWRhdGEv
cmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9z
dC10by1vd25lci5weQotVGhpcyBpcyBhIGxpbmshVGhpcyBpcyBhIGxpbmshVGhpcyBpcyBhIGxp
bmshCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1QQVNTIGxv
Y2FsaG9zdCAtPiBsb2NhbGhvc3Q6OTQ0MyBpZnJhbWU6IGZvcmNlZAotVElNRU9VVCBsb2NhbGhv
c3QgLT4gd3d3LmxvY2FsaG9zdDo5NDQzIGlmcmFtZTogZm9yY2VkIFRlc3QgdGltZWQgb3V0Ci1U
SU1FT1VUIGxvY2FsaG9zdCAtPiB3d3cuMTI3LjAuMC4xOjk0NDMgaWZyYW1lOiBmb3JjZWQgVGVz
dCB0aW1lZCBvdXQKLVBBU1MgbG9jYWxob3N0IC0+IGxvY2FsaG9zdDo5NDQzIGlmcmFtZTogdXNl
ci1hY3RpdmF0ZWQKLVRJTUVPVVQgbG9jYWxob3N0IC0+IHd3dy5sb2NhbGhvc3Q6OTQ0MyBpZnJh
bWU6IHVzZXItYWN0aXZhdGVkIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGxvY2FsaG9zdCAtPiB3
d3cuMTI3LjAuMC4xOjk0NDMgaWZyYW1lOiB1c2VyLWFjdGl2YXRlZCBUZXN0IHRpbWVkIG91dAot
RkFJTCBsb2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZyYW1lOiBmb3JjZWQ6IHNlYy1mZXRj
aC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJpZnJhbWUiIGJ1dCBnb3QgIiIKLUZBSUwg
bG9jYWxob3N0IC0+IGxvY2FsaG9zdDo5NDQzIGlmcmFtZTogZm9yY2VkOiBzZWMtZmV0Y2gtbW9k
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgbG9j
YWxob3N0IC0+IGxvY2FsaG9zdDo5NDQzIGlmcmFtZTogZm9yY2VkOiBzZWMtZmV0Y2gtc2l0ZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1MgbG9j
YWxob3N0IC0+IGxvY2FsaG9zdDo5NDQzIGlmcmFtZTogZm9yY2VkOiBzZWMtZmV0Y2gtdXNlcgot
RkFJTCBsb2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZyYW1lOiB1c2VyLWFjdGl2YXRlZDog
c2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImlmcmFtZSIgYnV0IGdvdCAi
IgotRkFJTCBsb2NhbGhvc3QgLT4gbG9jYWxob3N0Ojk0NDMgaWZyYW1lOiB1c2VyLWFjdGl2YXRl
ZDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5hdmlnYXRlIiBidXQg
Z290ICIiCi1GQUlMIGxvY2FsaG9zdCAtPiBsb2NhbGhvc3Q6OTQ0MyBpZnJhbWU6IHVzZXItYWN0
aXZhdGVkOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmln
aW4iIGJ1dCBnb3QgIiIKLUZBSUwgbG9jYWxob3N0IC0+IGxvY2FsaG9zdDo5NDQzIGlmcmFtZTog
dXNlci1hY3RpdmF0ZWQ6IHNlYy1mZXRjaC11c2VyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICI/
MSIgYnV0IGdvdCAiIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2lmcmFtZS5zdWItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0
YS9pZnJhbWUuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmY5ZGRiOTg2NDlkZWUwM2YyZjAxMGFmZDhmMTlkYWVhNTA1YTVmNS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL2lmcmFtZS5zdWItZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHA6Ly93d3cubG9jYWxob3N0Ojg4MDAvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2Vz
L3Bvc3QtdG8tb3duZXIucHkKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8v
d3d3LjEyNy4wLjAuMTo4ODAwL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVy
LnB5Ci0KLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVBBU1Mg
Tm9uLXNlY3VyZSBzYW1lLW9yaWdpbiBpZnJhbWUgPT4gTm8gaGVhZGVycwotVElNRU9VVCBOb24t
c2VjdXJlIHNhbWUtc2l0ZSBpZnJhbWUgPT4gTm8gaGVhZGVycyBUZXN0IHRpbWVkIG91dAotVElN
RU9VVCBOb24tc2VjdXJlIGNyb3NzLXNpdGUgaWZyYW1lID0+IE5vIGhlYWRlcnMuIFRlc3QgdGlt
ZWQgb3V0Ci1QQVNTIFNlY3VyZSwgY3Jvc3Mtc2l0ZSAoY3Jvc3Mtc2NoZW1lLCBzYW1lLWhvc3Qp
IGlmcmFtZQotUEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2luIGlmcmFtZSA9PiBObyBoZWFkZXJz
OiBzZWMtZmV0Y2gtZGVzdAotUEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2luIGlmcmFtZSA9PiBO
byBoZWFkZXJzOiBzZWMtZmV0Y2gtbW9kZQotUEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2luIGlm
cmFtZSA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtc2l0ZQotUEFTUyBOb24tc2VjdXJlIHNhbWUt
b3JpZ2luIGlmcmFtZSA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtdXNlcgotRkFJTCBTZWN1cmUs
IGNyb3NzLXNpdGUgKGNyb3NzLXNjaGVtZSwgc2FtZS1ob3N0KSBpZnJhbWU6IHNlYy1mZXRjaC1k
ZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJpZnJhbWUiIGJ1dCBnb3QgIiIKLUZBSUwgU2Vj
dXJlLCBjcm9zcy1zaXRlIChjcm9zcy1zY2hlbWUsIHNhbWUtaG9zdCkgaWZyYW1lOiBzZWMtZmV0
Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZB
SUwgU2VjdXJlLCBjcm9zcy1zaXRlIChjcm9zcy1zY2hlbWUsIHNhbWUtaG9zdCkgaWZyYW1lOiBz
ZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY3Jvc3Mtc2l0ZSIgYnV0IGdv
dCAiIgotUEFTUyBTZWN1cmUsIGNyb3NzLXNpdGUgKGNyb3NzLXNjaGVtZSwgc2FtZS1ob3N0KSBp
ZnJhbWU6IHNlYy1mZXRjaC11c2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvaW1nLmh0dHBzLnN1Yi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL21ldGFkYXRhL2ltZy5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyZDY0ZjRhNzY2YjQ1NGUyOTVkYzkxMGU4YmNkMjcwM2I5MzE4NTc0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvaW1nLmh0dHBz
LnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1CbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvY29tbW9u
L3NlY3VyaXR5LWZlYXR1cmVzL3N1YnJlc291cmNlL2ltYWdlLnB5Ci1CbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvY29tbW9uL3NlY3VyaXR5
LWZlYXR1cmVzL3N1YnJlc291cmNlL2ltYWdlLnB5Ci0KLQotUEFTUyBTYW1lLW9yaWdpbiBpbWFn
ZQotRkFJTCBTYW1lLXNpdGUgaW1hZ2UgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiW29iamVjdCBFdmVudF0iCi1GQUlMIENyb3NzLXNpdGUgaW1h
Z2UgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
W29iamVjdCBFdmVudF0iCi1GQUlMIFNhbWUtb3JpZ2luIGltYWdlOiBzZWMtZmV0Y2gtZGVzdCBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiaW1hZ2UiIGJ1dCBnb3QgKHVuZGVmaW5l
ZCkgdW5kZWZpbmVkCi1GQUlMIFNhbWUtb3JpZ2luIGltYWdlOiBzZWMtZmV0Y2gtbW9kZSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAiY29ycyIgYnV0IGdvdCAodW5kZWZpbmVkKSB1
bmRlZmluZWQKLUZBSUwgU2FtZS1vcmlnaW4gaW1hZ2U6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAodW5kZWZpbmVk
KSB1bmRlZmluZWQKLVBBU1MgU2FtZS1vcmlnaW4gaW1hZ2U6IHNlYy1mZXRjaC11c2VyCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbWV0YWRhdGEvb2JqZWN0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL29iamVjdC5odHRw
cy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmFmODli
YWY1NTU1Zjc4NDJkZmU3MGFlYTQ1NTFjZDI4ODdjODFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvb2JqZWN0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5h
bCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2Vz
L3JlY29yZC1oZWFkZXIucHk/ZmlsZT1vYmplY3Qtc2FtZS1zaXRlMTFiZmFmNTEtNTQxNS00ZjA2
LWIzYjItYTZlOGMwYTc0OTIyCi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6
Ly93d3cuMTI3LjAuMC4xOjk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFk
ZXIucHk/ZmlsZT1vYmplY3QtY3Jvc3Mtc2l0ZTExYmZhZjUxLTU0MTUtNGYwNi1iM2IyLWE2ZThj
MGE3NDkyMgotCi0KLVBBU1MgU2FtZS1PcmlnaW4gb2JqZWN0Ci1GQUlMIFNhbWUtU2l0ZSBvYmpl
Y3QgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFz
IGJlZW4gcmVjb3JkZWQiCi1GQUlMIENyb3NzLVNpdGUgb2JqZWN0IGFzc2VydF9ub3RfZXF1YWxz
OiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIgotRkFJ
TCBTYW1lLU9yaWdpbiBvYmplY3Q6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJvYmplY3QiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1PcmlnaW4gb2JqZWN0OiBzZWMtZmV0
Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZB
SUwgU2FtZS1PcmlnaW4gb2JqZWN0OiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1MgU2FtZS1PcmlnaW4gb2JqZWN0OiBz
ZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3BvcnRhbC5odHRwcy5zdWItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9t
ZXRhZGF0YS9wb3J0YWwuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTAzMWJiZDQ0MjdhN2E1OTI0NzkxYmI2ZjhlZGRhNjZkM2JiMDBlNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3BvcnRhbC5odHRw
cy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLUZBSUwg
bG9jYWxob3N0IC0+IGxvY2FsaG9zdDo5NDQzIHBvcnRhbCBhc3NlcnRfaW1wbGVtZW50czogUG9y
dGFscyBhcmUgbm90IHN1cHBvcnRlZC4gdW5kZWZpbmVkCi1GQUlMIGxvY2FsaG9zdCAtPiB3d3cu
bG9jYWxob3N0Ojk0NDMgcG9ydGFsIGFzc2VydF9pbXBsZW1lbnRzOiBQb3J0YWxzIGFyZSBub3Qg
c3VwcG9ydGVkLiB1bmRlZmluZWQKLUZBSUwgbG9jYWxob3N0IC0+IHd3dy4xMjcuMC4wLjE6OTQ0
MyBwb3J0YWwgYXNzZXJ0X2ltcGxlbWVudHM6IFBvcnRhbHMgYXJlIG5vdCBzdXBwb3J0ZWQuIHVu
ZGVmaW5lZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3BvcnRhbC5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcG9ydGFs
Lmh0dHBzLnN1Yi5odG1sCmluZGV4IDg0MDNhMjk2ZmUxMjc4NmJmNzU2NzVjZGU0N2Y0ZDQxYjY4
NGNkYWYuLjU1YjU1NWExYjhlYzQ0OThmOWRjODk3ZTNmNjRmMDlhMmQ2MWRmOTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0
YWRhdGEvcG9ydGFsLmh0dHBzLnN1Yi5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcG9ydGFsLmh0dHBzLnN1Yi5odG1s
CkBAIC01LDYgKzUsNyBAQAogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRv
ci5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvaGVs
cGVyLmpzPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9L2NvbW1vbi91dGlscy5qcz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPS9wb3J0YWxzL3Jlc291cmNlcy9zdGFzaC11dGlscy5zdWIuanM+PC9zY3Jp
cHQ+CiA8Ym9keT4KIDxzY3JpcHQ+CiAgIGNvbnN0IFVTRVIgPSB0cnVlOwpAQCAtMTUsMTIgKzE2
LDEyIEBACiAgICAgICBhc3NlcnRfaW1wbGVtZW50cygiSFRNTFBvcnRhbEVsZW1lbnQiIGluIHdp
bmRvdywgIlBvcnRhbHMgYXJlIG5vdCBzdXBwb3J0ZWQuIik7CiAKICAgICAgIGxldCBwID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgncG9ydGFsJyk7Ci0gICAgICBwLmFkZEV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhlID0+IHsKLSAgICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVh
bHMoZS5kYXRhLCBleHBlY3RhdGlvbnMsIGB7e2hvc3R9fSAtPiAke2hvc3R9IHBvcnRhbGApOwot
ICAgICAgICB0LmRvbmUoKTsKKyAgICAgIGNvbnN0IGtleSA9IHRva2VuKCk7CisgICAgICBTdGFz
aFV0aWxzLnRha2VWYWx1ZShrZXkpLnRoZW4odC5zdGVwX2Z1bmNfZG9uZSh2YWx1ZSA9PiB7Cisg
ICAgICAgIGFzc2VydF9oZWFkZXJfZXF1YWxzKHZhbHVlLCBleHBlY3RhdGlvbnMsIGB7e2hvc3R9
fSAtPiAke2hvc3R9IHBvcnRhbGApOwogICAgICAgfSkpOwogCi0gICAgICBsZXQgdXJsID0gYGh0
dHBzOi8vJHtob3N0fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weWA7
CisgICAgICBsZXQgdXJsID0gYGh0dHBzOi8vJHtob3N0fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJj
ZXMvcG9zdC10by1vd25lci5weT9rZXk9JHtrZXl9YDsKICAgICAgIHAuc3JjID0gdXJsOwogICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwKTsKICAgICB9LCBge3tob3N0fX0gLT4gJHto
b3N0fSBwb3J0YWxgKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcHJlZmV0Y2guaHR0cHMuc3ViLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvcHJlZmV0Y2guaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDc3NDhmNzk4ZjdhMjAzNDljYzM4MjY2YzM5ZWIxNmQ2NGVkZmMxOC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3ByZWZldGNo
Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1C
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMv
ZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1wcmVmZXRjaGZi
NzBhM2ZlLWUwMWMtNDM0OC04NjdmLWVmMThhYWU2MTkxYQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291
cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cHJlZmV0Y2hhZTJkNjIxYS1jZGVhLTQ0ZDMtOTFh
NC01ZDA0NzI1MjczMWUKLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxs
Ci0KLVBBU1MgQnJvd3NlciBzdXBwb3J0cyBwcmVmZXRjaC4KLVRJTUVPVVQgPGxpbmsgcmVsPSdw
cmVmZXRjaCcgaHJlZj0naHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91
dAotVElNRU9VVCA8bGluayByZWw9J3ByZWZldGNoJyBocmVmPSdodHRwczovL3d3dy5sb2NhbGhv
c3Q6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCA8bGluayByZWw9J3ByZWZldGNo
JyBocmVmPSdodHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91dAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL21ldGFkYXRhL3ByZWxvYWQuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcHJlbG9h
ZC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
ZjcxZDRiNmM0OWM4MDZhODM2NDkzMzc1MWYwNDc4ZDU0YjBjNWMxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcHJlbG9hZC5odHRwcy5zdWItZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jl
c291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9ZmV0Y2gxZDA1YTlhNi04YjhlLTQ4YjQtYTVm
ZS1mZTVhMzIyMTg3YzAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3
dy4xMjcuMC4wLjE6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5w
eT9maWxlPWZldGNoMzBlM2U4Y2EtN2I5ZS00N2Q4LTg1YjctM2NkMzlhNjk4MzkzCi1CbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gv
bWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1mb250MmQ5MjU4MTgtYmVk
My00YjU4LThjOTQtODc2MmRjYTA0YzIyCi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29y
ZC1oZWFkZXIucHk/ZmlsZT1mb250MzdlNGE3MmQtZDY2Zi00NDJmLThhZGUtOWNlY2Y1YmM4NTZl
Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0
NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1pbWFnZTY3
ZDFiZjU4LTMyOTItNDQzNy1iZjUyLWQ1ZmY1NWFkZmI4NwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291
cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9aW1hZ2VjMzBmZmVjZS02MjYwLTQ3ZjItODlmMS1m
NGU5MTZlYjM0NjgKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5s
b2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9m
aWxlPXNjcmlwdDBkZGM2MGZmLWI2YjEtNDQ5OC04ZTQ0LWExNTAwOWRlOTVhMAotQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21l
dGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9c2NyaXB0NWE4NWY0ZjQtZWMw
ZS00NzZmLWJlMGQtOWZhYjlmMzRlN2I0Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29y
ZC1oZWFkZXIucHk/ZmlsZT1zdHlsZTdlZWUxMDQ5LWJkMzItNDU3NC04MGJhLWQ2ZGRkY2I3ZDEw
ZAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5
NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9c3R5bGVj
ZjJlMjA3ZC1hZDI5LTQ2YzAtYWUxMS1jOWZlMzYyNzc3YWUKLUJsb2NrZWQgYWNjZXNzIHRvIGV4
dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNv
dXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXRyYWNrODJlNDljMmEtZmI0Ni00YmU2LTlhMmMt
ZjVjNjgyOWRlYjQ4Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cu
MTI3LjAuMC4xOjk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/
ZmlsZT10cmFja2NjMjE1ZjRmLTJmZmItNDllMS04NzZlLTIzODg2MGEyODk0NwotCi1IYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotUEFTUyBCcm93c2VyIHN1cHBvcnRz
IHByZWxvYWQuCi1QQVNTIDxsaW5rIHJlbD0ncHJlbG9hZCcgYXM9J2ZldGNoJyBocmVmPSdodHRw
czovL2xvY2FsaG9zdDo5NDQzLy4uLic+Ci1USU1FT1VUIDxsaW5rIHJlbD0ncHJlbG9hZCcgYXM9
J2ZldGNoJyBocmVmPSdodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My8uLi4nPiBUZXN0IHRpbWVk
IG91dAotVElNRU9VVCA8bGluayByZWw9J3ByZWxvYWQnIGFzPSdmZXRjaCcgaHJlZj0naHR0cHM6
Ly93d3cuMTI3LjAuMC4xOjk0NDMvLi4uJz4gVGVzdCB0aW1lZCBvdXQKLVBBU1MgPGxpbmsgcmVs
PSdwcmVsb2FkJyBhcz0nZm9udCcgaHJlZj0naHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My8uLi4nPgot
RkFJTCA8bGluayByZWw9J3ByZWxvYWQnIGFzPSdmb250JyBocmVmPSdodHRwczovL3d3dy5sb2Nh
bGhvc3Q6OTQ0My8uLi4nPiBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUg
Ik5vIGhlYWRlciBoYXMgYmVlbiByZWNvcmRlZCIKLUZBSUwgPGxpbmsgcmVsPSdwcmVsb2FkJyBh
cz0nZm9udCcgaHJlZj0naHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvLi4uJz4gYXNzZXJ0X25v
dF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFzIGJlZW4gcmVjb3Jk
ZWQiCi1QQVNTIDxsaW5rIHJlbD0ncHJlbG9hZCcgYXM9J2ltYWdlJyBocmVmPSdodHRwczovL2xv
Y2FsaG9zdDo5NDQzLy4uLic+Ci1USU1FT1VUIDxsaW5rIHJlbD0ncHJlbG9hZCcgYXM9J2ltYWdl
JyBocmVmPSdodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91dAot
VElNRU9VVCA8bGluayByZWw9J3ByZWxvYWQnIGFzPSdpbWFnZScgaHJlZj0naHR0cHM6Ly93d3cu
MTI3LjAuMC4xOjk0NDMvLi4uJz4gVGVzdCB0aW1lZCBvdXQKLVBBU1MgPGxpbmsgcmVsPSdwcmVs
b2FkJyBhcz0nc2NyaXB0JyBocmVmPSdodHRwczovL2xvY2FsaG9zdDo5NDQzLy4uLic+Ci1USU1F
T1VUIDxsaW5rIHJlbD0ncHJlbG9hZCcgYXM9J3NjcmlwdCcgaHJlZj0naHR0cHM6Ly93d3cubG9j
YWxob3N0Ojk0NDMvLi4uJz4gVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgPGxpbmsgcmVsPSdwcmVs
b2FkJyBhcz0nc2NyaXB0JyBocmVmPSdodHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0My8uLi4nPiBU
ZXN0IHRpbWVkIG91dAotUEFTUyA8bGluayByZWw9J3ByZWxvYWQnIGFzPSdzdHlsZScgaHJlZj0n
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My8uLi4nPgotVElNRU9VVCA8bGluayByZWw9J3ByZWxvYWQn
IGFzPSdzdHlsZScgaHJlZj0naHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvLi4uJz4gVGVzdCB0
aW1lZCBvdXQKLVRJTUVPVVQgPGxpbmsgcmVsPSdwcmVsb2FkJyBhcz0nc3R5bGUnIGhyZWY9J2h0
dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzLy4uLic+IFRlc3QgdGltZWQgb3V0Ci1QQVNTIDxsaW5r
IHJlbD0ncHJlbG9hZCcgYXM9J3RyYWNrJyBocmVmPSdodHRwczovL2xvY2FsaG9zdDo5NDQzLy4u
Lic+Ci1USU1FT1VUIDxsaW5rIHJlbD0ncHJlbG9hZCcgYXM9J3RyYWNrJyBocmVmPSdodHRwczov
L3d3dy5sb2NhbGhvc3Q6OTQ0My8uLi4nPiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCA8bGluayBy
ZWw9J3ByZWxvYWQnIGFzPSd0cmFjaycgaHJlZj0naHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMv
Li4uJz4gVGVzdCB0aW1lZCBvdXQKLUZBSUwgcHJlbG9hZCBmb250IGxvY2FsaG9zdDo5NDQzOiBz
ZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZm9udCIgYnV0IGdvdCAiIgot
RkFJTCBwcmVsb2FkIGZvbnQgbG9jYWxob3N0Ojk0NDM6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJjb3JzIiBidXQgZ290ICIiCi1GQUlMIHByZWxvYWQgZm9udCBsb2Nh
bGhvc3Q6OTQ0Mzogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUt
b3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIHByZWxvYWQgZm9udCBsb2NhbGhvc3Q6OTQ0Mzogc2Vj
LWZldGNoLXVzZXIKLUZBSUwgcHJlbG9hZCBzdHlsZSBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNo
LWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInN0eWxlIiBidXQgZ290ICIiCi1GQUlMIHBy
ZWxvYWQgc3R5bGUgbG9jYWxob3N0Ojk0NDM6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJjb3JzIiBidXQgZ290ICIiCi1GQUlMIHByZWxvYWQgc3R5bGUgbG9jYWxob3N0
Ojk0NDM6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdp
biIgYnV0IGdvdCAiIgotUEFTUyBwcmVsb2FkIHN0eWxlIGxvY2FsaG9zdDo5NDQzOiBzZWMtZmV0
Y2gtdXNlcgotRkFJTCBwcmVsb2FkIHRyYWNrIGxvY2FsaG9zdDo5NDQzOiBzZWMtZmV0Y2gtZGVz
dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidHJhY2siIGJ1dCBnb3QgIiIKLUZBSUwgcHJlbG9h
ZCB0cmFjayBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgImNvcnMiIGJ1dCBnb3QgIiIKLUZBSUwgcHJlbG9hZCB0cmFjayBsb2NhbGhvc3Q6OTQ0
Mzogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBi
dXQgZ290ICIiCi1QQVNTIHByZWxvYWQgdHJhY2sgbG9jYWxob3N0Ojk0NDM6IHNlYy1mZXRjaC11
c2VyCi1GQUlMIHByZWxvYWQgZmV0Y2ggbG9jYWxob3N0Ojk0NDM6IHNlYy1mZXRjaC1kZXN0IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJlbXB0eSIgYnV0IGdvdCAiIgotRkFJTCBwcmVsb2FkIGZl
dGNoIGxvY2FsaG9zdDo5NDQzOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiY29ycyIgYnV0IGdvdCAiIgotRkFJTCBwcmVsb2FkIGZldGNoIGxvY2FsaG9zdDo5NDQzOiBz
ZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBn
b3QgIiIKLVBBU1MgcHJlbG9hZCBmZXRjaCBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLXVzZXIK
LUZBSUwgcHJlbG9hZCBpbWFnZSBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLWRlc3QgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImltYWdlIiBidXQgZ290ICIiCi1GQUlMIHByZWxvYWQgaW1hZ2Ug
bG9jYWxob3N0Ojk0NDM6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJj
b3JzIiBidXQgZ290ICIiCi1GQUlMIHByZWxvYWQgaW1hZ2UgbG9jYWxob3N0Ojk0NDM6IHNlYy1m
ZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAi
IgotUEFTUyBwcmVsb2FkIGltYWdlIGxvY2FsaG9zdDo5NDQzOiBzZWMtZmV0Y2gtdXNlcgotRkFJ
TCBwcmVsb2FkIHNjcmlwdCBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgInNjcmlwdCIgYnV0IGdvdCAiIgotRkFJTCBwcmVsb2FkIHNjcmlwdCBs
b2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNv
cnMiIGJ1dCBnb3QgIiIKLUZBSUwgcHJlbG9hZCBzY3JpcHQgbG9jYWxob3N0Ojk0NDM6IHNlYy1m
ZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAi
IgotUEFTUyBwcmVsb2FkIHNjcmlwdCBsb2NhbGhvc3Q6OTQ0Mzogc2VjLWZldGNoLXVzZXIKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9jcm9zcy1zaXRlLXJlZGlyZWN0Lmh0dHBzLnN1Yi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL21ldGFkYXRhL3JlZGlyZWN0L2Nyb3NzLXNpdGUtcmVkaXJlY3QuaHR0cHMuc3ViLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTM2MGU2NTkxOWQ0OWJkMmJh
NThiZDk5NDk4MGEyODdmNjQwZTU0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L2Nyb3NzLXNpdGUtcmVkaXJlY3QuaHR0cHMuc3ViLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL3hoci9yZXNvdXJjZXMv
cmVkaXJlY3QucHk/bG9jYXRpb249aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0
YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXJlZGlyZWN0LWNyb3NzLXNpdGUtc2Ft
ZS1vcmlnaW5lNzdiN2NiMi1iYjFiLTRiYjEtODkzNy0yMWY4ODBiNmQ5NTMKLUJsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0My94aHIvcmVzb3Vy
Y2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNo
L21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3QtY3Jvc3Mt
c2l0ZS1zYW1lLXNpdGVlNzdiN2NiMi1iYjFiLTRiYjEtODkzNy0yMWY4ODBiNmQ5NTMKLUJsb2Nr
ZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy4xMjcuMC4wLjE6OTQ0My94aHIv
cmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQz
L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3Qt
Y3Jvc3Mtc2l0ZS1jcm9zcy1zaXRlZTc3YjdjYjItYmIxYi00YmIxLTg5MzctMjFmODgwYjZkOTUz
Ci0KLQotRkFJTCBDcm9zcy1TaXRlIC0+IFNhbWUtT3JpZ2luIHJlZGlyZWN0IGFzc2VydF9ub3Rf
ZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVk
IgotRkFJTCBDcm9zcy1TaXRlIC0+IFNhbWUtU2l0ZSByZWRpcmVjdCBhc3NlcnRfbm90X2VxdWFs
czogZ290IGRpc2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRlciBoYXMgYmVlbiByZWNvcmRlZCIKLUZB
SUwgQ3Jvc3MtU2l0ZSAtPiBDcm9zcy1TaXRlIHJlZGlyZWN0IGFzc2VydF9ub3RfZXF1YWxzOiBn
b3QgZGlzYWxsb3dlZCB2YWx1ZSAiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL3JlZGlyZWN0L211bHRpcGxlLXJlZGlyZWN0LWNyb3NzLXNpdGUuaHR0cHMuc3Vi
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtY3Jvc3Mtc2l0ZS5o
dHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTc0
NTI0MTNjNWI0MjVjNDU5NmIxNmYyNDkzYzdkYWJlOGMxZTE2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3Qt
Y3Jvc3Mtc2l0ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyAr
MCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAu
MC4xOjk0NDMveGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1odHRwczovL2xvY2Fs
aG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9
cmVkaXJlY3QtbXVsdGlwbGUtY3Jvc3Mtc2l0ZTVhNDBlYjNjLTk2YWMtNDllYy04M2Y1LTRkMDYz
ZGE2OTUxNgotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1U
SU1FT1VUIFNhbWUtT3JpZ2luIC0+IENyb3NzLVNpdGUgLT4gU2FtZS1PcmlnaW4gcmVkaXJlY3Qg
VGVzdCB0aW1lZCBvdXQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVj
dC1odHRwcy1kb3duZ3JhZGUtdXBncmFkZS1wcmVmZXRjaC5vcHRpb25hbC5zdWItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9t
ZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1odHRwcy1kb3duZ3JhZGUtdXBncmFk
ZS1wcmVmZXRjaC5vcHRpb25hbC5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhMWViMDY4YzQxNzBmM2ZkOGQ0ZTJiMzEzMTMxODdlNTY5MGIwZjJjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvbXVs
dGlwbGUtcmVkaXJlY3QtaHR0cHMtZG93bmdyYWRlLXVwZ3JhZGUtcHJlZmV0Y2gub3B0aW9uYWwu
c3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi1IYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElNRU9VVCBIdHRwcyBkb3duZ3Jh
ZGUtdXBncmFkZSBwcmVmZXRjaCA9PiBObyBoZWFkZXJzIFRlc3QgdGltZWQgb3V0Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtaHR0cHMtZG93bmdyYWRlLXVwZ3Jh
ZGUuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtaHR0cHMt
ZG93bmdyYWRlLXVwZ3JhZGUuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggN2ViN2QxMDA5NmI1N2I4MmY3ZDRiNGM2MmQwMzliMThjOTY5ZWQ4Yy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L211bHRp
cGxlLXJlZGlyZWN0LWh0dHBzLWRvd25ncmFkZS11cGdyYWRlLnN1Yi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1Eb3duZ3JhZGVkIHRoZW4gdXBncmFkZWQgZm9u
dAotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1QQVNTIEh0
dHBzIGRvd25ncmFkZS11cGdyYWRlIGlmcmFtZQotUEFTUyBIdHRwcyBkb3duZ3JhZGUtdXBncmFk
ZSB0b3AgbGV2ZWwgbmF2aWdhdGlvbgotUEFTUyBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBlbWJl
ZAotUEFTUyBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBmZXRjaCgpIGFwaQotUEFTUyBIdHRwcyBk
b3duZ3JhZGUtdXBncmFkZSBvYmplY3QKLVBBU1MgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgcHJl
bG9hZAotUEFTUyBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBzdHlsZXNoZWV0Ci1USU1FT1VUIEh0
dHBzIGRvd25ncmFkZS11cGdyYWRlIHRyYWNrIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gSHR0cHMg
ZG93bmdyYWRlLXVwZ3JhZGUgaW1hZ2UgPT4gTm8gaGVhZGVycwotUEFTUyBIdHRwcyBkb3duZ3Jh
ZGUtdXBncmFkZSBzY3JpcHQgPT4gTm8gaGVhZGVycwotRkFJTCBIdHRwcyBkb3duZ3JhZGUtdXBn
cmFkZSBzY3JpcHQgPT4gTm8gaGVhZGVyczogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgInNjcmlwdCIgYnV0IGdvdCAiIgotRkFJTCBIdHRwcyBkb3duZ3JhZGUtdXBncmFk
ZSBzY3JpcHQgPT4gTm8gaGVhZGVyczogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgIm5vLWNvcnMiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUg
c2NyaXB0ID0+IE5vIGhlYWRlcnM6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJjcm9zcy1zaXRlIiBidXQgZ290ICIiCi1QQVNTIEh0dHBzIGRvd25ncmFkZS11cGdyYWRl
IHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtdXNlcgotRkFJTCBIdHRwcyBkb3duZ3Jh
ZGUtdXBncmFkZSBpZnJhbWU6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJpZnJhbWUiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgaWZyYW1l
OiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBn
b3QgIiIKLUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgaWZyYW1lOiBzZWMtZmV0Y2gtc2l0
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY3Jvc3Mtc2l0ZSIgYnV0IGdvdCAiIgotUEFTUyBI
dHRwcyBkb3duZ3JhZGUtdXBncmFkZSBpZnJhbWU6IHNlYy1mZXRjaC11c2VyCi1GQUlMIEh0dHBz
IGRvd25ncmFkZS11cGdyYWRlIHRvcCBsZXZlbCBuYXZpZ2F0aW9uOiBzZWMtZmV0Y2gtZGVzdCBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZG9jdW1lbnQiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMg
ZG93bmdyYWRlLXVwZ3JhZGUgdG9wIGxldmVsIG5hdmlnYXRpb246IHNlYy1mZXRjaC1tb2RlIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJuYXZpZ2F0ZSIgYnV0IGdvdCAiIgotRkFJTCBIdHRwcyBk
b3duZ3JhZGUtdXBncmFkZSB0b3AgbGV2ZWwgbmF2aWdhdGlvbjogc2VjLWZldGNoLXNpdGUgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNyb3NzLXNpdGUiIGJ1dCBnb3QgIiIKLVBBU1MgSHR0cHMg
ZG93bmdyYWRlLXVwZ3JhZGUgdG9wIGxldmVsIG5hdmlnYXRpb246IHNlYy1mZXRjaC11c2VyCi1O
T1RSVU4gSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgZm9udCA9PiBObyBoZWFkZXJzCi1GQUlMIEh0
dHBzIGRvd25ncmFkZS11cGdyYWRlIGVtYmVkOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiZW1iZWQiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3Jh
ZGUgZW1iZWQ6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJuYXZpZ2F0
ZSIgYnV0IGdvdCAiIgotRkFJTCBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBlbWJlZDogc2VjLWZl
dGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNyb3NzLXNpdGUiIGJ1dCBnb3QgIiIK
LVBBU1MgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgZW1iZWQ6IHNlYy1mZXRjaC11c2VyCi1GQUlM
IEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIGZldGNoKCkgYXBpOiBzZWMtZmV0Y2gtZGVzdCBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiZW1wdHkiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMgZG93bmdy
YWRlLXVwZ3JhZGUgZmV0Y2goKSBhcGk6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJjb3JzIiBidXQgZ290ICIiCi1GQUlMIEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIGZl
dGNoKCkgYXBpOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY3Jvc3Mt
c2l0ZSIgYnV0IGdvdCAiIgotUEFTUyBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBmZXRjaCgpIGFw
aTogc2VjLWZldGNoLXVzZXIKLUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgb2JqZWN0OiBz
ZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICIi
Ci1GQUlMIEh0dHBzIGRvd25ncmFkZS11cGdyYWRlIG9iamVjdDogc2VjLWZldGNoLW1vZGUgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5hdmlnYXRlIiBidXQgZ290ICIiCi1GQUlMIEh0dHBzIGRv
d25ncmFkZS11cGdyYWRlIG9iamVjdDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgImNyb3NzLXNpdGUiIGJ1dCBnb3QgIiIKLVBBU1MgSHR0cHMgZG93bmdyYWRlLXVwZ3Jh
ZGUgb2JqZWN0OiBzZWMtZmV0Y2gtdXNlcgotRkFJTCBIdHRwcyBkb3duZ3JhZGUtdXBncmFkZSBz
dHlsZXNoZWV0OiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic3R5bGUi
IGJ1dCBnb3QgIiIKLUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgc3R5bGVzaGVldDogc2Vj
LWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5vLWNvcnMiIGJ1dCBnb3QgIiIK
LUZBSUwgSHR0cHMgZG93bmdyYWRlLXVwZ3JhZGUgc3R5bGVzaGVldDogc2VjLWZldGNoLXNpdGUg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNyb3NzLXNpdGUiIGJ1dCBnb3QgIiIKLVBBU1MgSHR0
cHMgZG93bmdyYWRlLXVwZ3JhZGUgc3R5bGVzaGVldDogc2VjLWZldGNoLXVzZXIKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9t
ZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1zYW1lLXNpdGUuaHR0cHMuc3ViLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3Qtc2FtZS1zaXRlLmh0dHBz
LnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5YWUxZmIz
ZjcxNDFhODdmNTg4YWI4YTNhMDkxZTBkNjliMjc1ZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1zYW1l
LXNpdGUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBA
QAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5
NDQzL3hoci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249aHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXJlZGly
ZWN0LW11bHRpcGxlLXNhbWUtc2l0ZTM2ZTBiY2ZmLTZmNWMtNDkzNS1iZDFlLTllNmFlNzBhY2Yy
NwotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VU
IFNhbWUtT3JpZ2luIC0+IFNhbWUtU2l0ZSAtPiBTYW1lLU9yaWdpbiByZWRpcmVjdCBUZXN0IHRp
bWVkIG91dAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L3JlZGlyZWN0LWh0dHAtdXBncmFkZS1w
cmVmZXRjaC5vcHRpb25hbC5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVjdC9yZWRpcmVjdC1o
dHRwLXVwZ3JhZGUtcHJlZmV0Y2gub3B0aW9uYWwuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmYwNzc5YmZmMWZlODFjMDczM2VlNzc1YmU3NWZlNzAwNDFl
MzgzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jl
ZGlyZWN0L3JlZGlyZWN0LWh0dHAtdXBncmFkZS1wcmVmZXRjaC5vcHRpb25hbC5zdWItZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLUhhcm5lc3MgRXJyb3IgKFRJ
TUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIEh0dHAgdXBncmFkZSBwcmVmZXRjaCA9
PiBObyBoZWFkZXJzIFRlc3QgdGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvcmVk
aXJlY3QtaHR0cC11cGdyYWRlLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L3JlZGlyZWN0
LWh0dHAtdXBncmFkZS5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlNDliYjI0MGNmNjYxZjI1NWFjNWNjMTAwY2M2NmMxOWY3MDZmZjAzLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvcmVkaXJlY3Qt
aHR0cC11cGdyYWRlLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCww
IEBACi1VcGdyYWRlZCBmb250Ci0KLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2Ug
PSBudWxsCi0KLVBBU1MgSHR0cCB1cGdyYWRlIGlmcmFtZQotUEFTUyBIdHRwIHVwZ3JhZGUgdG9w
IGxldmVsIG5hdmlnYXRpb24KLVBBU1MgSHR0cCB1cGdyYWRlIGVtYmVkCi1QQVNTIEh0dHAgdXBn
cmFkZSBmZXRjaCgpIGFwaQotUEFTUyBIdHRwIHVwZ3JhZGUgb2JqZWN0Ci1QQVNTIEh0dHAgdXBn
cmFkZSBwcmVsb2FkCi1QQVNTIEh0dHAgdXBncmFkZSBzdHlsZXNoZWV0Ci1USU1FT1VUIEh0dHAg
dXBncmFkZSB0cmFjayBUZXN0IHRpbWVkIG91dAotTk9UUlVOIEh0dHAgdXBncmFkZSBpbWFnZSA9
PiBObyBoZWFkZXJzCi1QQVNTIEh0dHAgdXBncmFkZSBzY3JpcHQgPT4gTm8gaGVhZGVycwotRkFJ
TCBIdHRwIHVwZ3JhZGUgc2NyaXB0ID0+IE5vIGhlYWRlcnM6IHNlYy1mZXRjaC1kZXN0IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJzY3JpcHQiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRl
IHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAibm8tY29ycyIgYnV0IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3JhZGUgc2NyaXB0ID0+IE5v
IGhlYWRlcnM6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjcm9zcy1z
aXRlIiBidXQgZ290ICIiCi1QQVNTIEh0dHAgdXBncmFkZSBzY3JpcHQgPT4gTm8gaGVhZGVyczog
c2VjLWZldGNoLXVzZXIKLUZBSUwgSHR0cCB1cGdyYWRlIGlmcmFtZTogc2VjLWZldGNoLWRlc3Qg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImlmcmFtZSIgYnV0IGdvdCAiIgotRkFJTCBIdHRwIHVw
Z3JhZGUgaWZyYW1lOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2
aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRlIGlmcmFtZTogc2VjLWZldGNoLXNp
dGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNyb3NzLXNpdGUiIGJ1dCBnb3QgIiIKLVBBU1Mg
SHR0cCB1cGdyYWRlIGlmcmFtZTogc2VjLWZldGNoLXVzZXIKLUZBSUwgSHR0cCB1cGdyYWRlIHRv
cCBsZXZlbCBuYXZpZ2F0aW9uOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiZG9jdW1lbnQiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRlIHRvcCBsZXZlbCBuYXZp
Z2F0aW9uOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUi
IGJ1dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRlIHRvcCBsZXZlbCBuYXZpZ2F0aW9uOiBzZWMt
ZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY3Jvc3Mtc2l0ZSIgYnV0IGdvdCAi
IgotUEFTUyBIdHRwIHVwZ3JhZGUgdG9wIGxldmVsIG5hdmlnYXRpb246IHNlYy1mZXRjaC11c2Vy
Ci1OT1RSVU4gSHR0cCB1cGdyYWRlIGZvbnQgPT4gTm8gaGVhZGVycwotRkFJTCBIdHRwIHVwZ3Jh
ZGUgZW1iZWQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJlbWJlZCIg
YnV0IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3JhZGUgZW1iZWQ6IHNlYy1mZXRjaC1tb2RlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJuYXZpZ2F0ZSIgYnV0IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3Jh
ZGUgZW1iZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjcm9zcy1z
aXRlIiBidXQgZ290ICIiCi1QQVNTIEh0dHAgdXBncmFkZSBlbWJlZDogc2VjLWZldGNoLXVzZXIK
LUZBSUwgSHR0cCB1cGdyYWRlIGZldGNoKCkgYXBpOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAiZW1wdHkiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRlIGZldGNo
KCkgYXBpOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY29ycyIgYnV0
IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3JhZGUgZmV0Y2goKSBhcGk6IHNlYy1mZXRjaC1zaXRlIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJjcm9zcy1zaXRlIiBidXQgZ290ICIiCi1QQVNTIEh0dHAg
dXBncmFkZSBmZXRjaCgpIGFwaTogc2VjLWZldGNoLXVzZXIKLUZBSUwgSHR0cCB1cGdyYWRlIG9i
amVjdDogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm9iamVjdCIgYnV0
IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3JhZGUgb2JqZWN0OiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRl
IG9iamVjdDogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImNyb3NzLXNp
dGUiIGJ1dCBnb3QgIiIKLVBBU1MgSHR0cCB1cGdyYWRlIG9iamVjdDogc2VjLWZldGNoLXVzZXIK
LUZBSUwgSHR0cCB1cGdyYWRlIHN0eWxlc2hlZXQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJzdHlsZSIgYnV0IGdvdCAiIgotRkFJTCBIdHRwIHVwZ3JhZGUgc3R5bGVz
aGVldDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5vLWNvcnMiIGJ1
dCBnb3QgIiIKLUZBSUwgSHR0cCB1cGdyYWRlIHN0eWxlc2hlZXQ6IHNlYy1mZXRjaC1zaXRlIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJjcm9zcy1zaXRlIiBidXQgZ290ICIiCi1QQVNTIEh0dHAg
dXBncmFkZSBzdHlsZXNoZWV0OiBzZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGly
ZWN0L3JlZGlyZWN0LWh0dHBzLWRvd25ncmFkZS1wcmVmZXRjaC5vcHRpb25hbC5zdWItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS9yZWRpcmVjdC9yZWRpcmVjdC1odHRwcy1kb3duZ3JhZGUtcHJlZmV0Y2gub3B0
aW9uYWwuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWJl
MzNkMTFlY2ZhNjBmODliNWY0NTgwZDNiMjdlZWYyMjI3YTg2Yi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L3JlZGlyZWN0LWh0dHBzLWRv
d25ncmFkZS1wcmVmZXRjaC5vcHRpb25hbC5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNSArMCwwIEBACi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVs
bAotCi1USU1FT1VUIEh0dHBzIGRvd25ncmFkZSBwcmVmZXRjaCA9PiBObyBoZWFkZXJzIFRlc3Qg
dGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvcmVkaXJlY3QtaHR0cHMtZG93bmdy
YWRlLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3JlZGlyZWN0L3JlZGlyZWN0LWh0dHBzLWRvd25ncmFk
ZS5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjk2Njc5
YjgxYjk4OTkyNzRmYjI4OWM5MjBjZjQxNjE4ZjQ5NTQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3QvcmVkaXJlY3QtaHR0cHMtZG93bmdy
YWRlLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1Eb3du
Z3JhZGVkIGZvbnQKLQotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwK
LQotUEFTUyBIdHRwcyBkb3duZ3JhZGUgaWZyYW1lCi1QQVNTIEh0dHBzIGRvd25ncmFkZSB0b3Ag
bGV2ZWwgbmF2aWdhdGlvbgotUEFTUyBIdHRwcyBkb3duZ3JhZGUgZW1iZWQKLVBBU1MgSHR0cHMg
ZG93bmdyYWRlIGZldGNoKCkgYXBpCi1QQVNTIEh0dHBzIGRvd25ncmFkZSBvYmplY3QKLVBBU1Mg
SHR0cHMgZG93bmdyYWRlIHByZWxvYWQKLVBBU1MgSHR0cHMgZG93bmdyYWRlIHN0eWxlc2hlZXQK
LVRJTUVPVVQgSHR0cHMgZG93bmdyYWRlIHRyYWNrIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gSHR0
cHMgZG93bmdyYWRlIGltYWdlID0+IE5vIGhlYWRlcnMKLVBBU1MgSHR0cHMgZG93bmdyYWRlIHNj
cmlwdCA9PiBObyBoZWFkZXJzCi1QQVNTIEh0dHBzIGRvd25ncmFkZSBzY3JpcHQgPT4gTm8gaGVh
ZGVyczogc2VjLWZldGNoLW1vZGUKLVBBU1MgSHR0cHMgZG93bmdyYWRlIHNjcmlwdCA9PiBObyBo
ZWFkZXJzOiBzZWMtZmV0Y2gtc2l0ZQotUEFTUyBIdHRwcyBkb3duZ3JhZGUgc2NyaXB0ID0+IE5v
IGhlYWRlcnM6IHNlYy1mZXRjaC11c2VyCi1QQVNTIEh0dHBzIGRvd25ncmFkZSBzY3JpcHQgPT4g
Tm8gaGVhZGVyczogc2VjLWZldGNoLWRlc3QKLVBBU1MgSHR0cHMgZG93bmdyYWRlIGlmcmFtZTog
c2VjLWZldGNoLWRlc3QKLVBBU1MgSHR0cHMgZG93bmdyYWRlIGlmcmFtZTogc2VjLWZldGNoLW1v
ZGUKLVBBU1MgSHR0cHMgZG93bmdyYWRlIGlmcmFtZTogc2VjLWZldGNoLXNpdGUKLVBBU1MgSHR0
cHMgZG93bmdyYWRlIGlmcmFtZTogc2VjLWZldGNoLXVzZXIKLVBBU1MgSHR0cHMgZG93bmdyYWRl
IHRvcCBsZXZlbCBuYXZpZ2F0aW9uOiBzZWMtZmV0Y2gtZGVzdAotUEFTUyBIdHRwcyBkb3duZ3Jh
ZGUgdG9wIGxldmVsIG5hdmlnYXRpb246IHNlYy1mZXRjaC1tb2RlCi1QQVNTIEh0dHBzIGRvd25n
cmFkZSB0b3AgbGV2ZWwgbmF2aWdhdGlvbjogc2VjLWZldGNoLXNpdGUKLVBBU1MgSHR0cHMgZG93
bmdyYWRlIHRvcCBsZXZlbCBuYXZpZ2F0aW9uOiBzZWMtZmV0Y2gtdXNlcgotTk9UUlVOIEh0dHBz
IGRvd25ncmFkZSBmb250ID0+IE5vIGhlYWRlcnMKLVBBU1MgSHR0cHMgZG93bmdyYWRlIGVtYmVk
OiBzZWMtZmV0Y2gtZGVzdAotUEFTUyBIdHRwcyBkb3duZ3JhZGUgZW1iZWQ6IHNlYy1mZXRjaC1t
b2RlCi1QQVNTIEh0dHBzIGRvd25ncmFkZSBlbWJlZDogc2VjLWZldGNoLXNpdGUKLVBBU1MgSHR0
cHMgZG93bmdyYWRlIGVtYmVkOiBzZWMtZmV0Y2gtdXNlcgotUEFTUyBIdHRwcyBkb3duZ3JhZGUg
ZmV0Y2goKSBhcGk6IHNlYy1mZXRjaC1kZXN0Ci1QQVNTIEh0dHBzIGRvd25ncmFkZSBmZXRjaCgp
IGFwaTogc2VjLWZldGNoLW1vZGUKLVBBU1MgSHR0cHMgZG93bmdyYWRlIGZldGNoKCkgYXBpOiBz
ZWMtZmV0Y2gtc2l0ZQotUEFTUyBIdHRwcyBkb3duZ3JhZGUgZmV0Y2goKSBhcGk6IHNlYy1mZXRj
aC11c2VyCi1QQVNTIEh0dHBzIGRvd25ncmFkZSBvYmplY3Q6IHNlYy1mZXRjaC1kZXN0Ci1QQVNT
IEh0dHBzIGRvd25ncmFkZSBvYmplY3Q6IHNlYy1mZXRjaC1tb2RlCi1QQVNTIEh0dHBzIGRvd25n
cmFkZSBvYmplY3Q6IHNlYy1mZXRjaC1zaXRlCi1QQVNTIEh0dHBzIGRvd25ncmFkZSBvYmplY3Q6
IHNlYy1mZXRjaC11c2VyCi1QQVNTIEh0dHBzIGRvd25ncmFkZSBzdHlsZXNoZWV0OiBzZWMtZmV0
Y2gtZGVzdAotUEFTUyBIdHRwcyBkb3duZ3JhZGUgc3R5bGVzaGVldDogc2VjLWZldGNoLW1vZGUK
LVBBU1MgSHR0cHMgZG93bmdyYWRlIHN0eWxlc2hlZXQ6IHNlYy1mZXRjaC1zaXRlCi1QQVNTIEh0
dHBzIGRvd25ncmFkZSBzdHlsZXNoZWV0OiBzZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRh
L3JlZGlyZWN0L3NhbWUtb3JpZ2luLXJlZGlyZWN0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRh
L3JlZGlyZWN0L3NhbWUtb3JpZ2luLXJlZGlyZWN0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyYTYzN2E1ODhiYTMwYzAxOTMxZmZmZGY4MmI1
NmNkZmU3YWQxYjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRh
ZGF0YS9yZWRpcmVjdC9zYW1lLW9yaWdpbi1yZWRpcmVjdC5odHRwcy5zdWItZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNl
cy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3Qtc2FtZS1vcmlnaW4tc2FtZS1zaXRlZTYy
NmZlNWQtMTQyYi00M2ZmLWFmYzMtMTNmNWI4Y2U1NDQ0Ci0KLQotSGFybmVzcyBFcnJvciAoVElN
RU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVBBU1MgU2FtZS1PcmlnaW4gLT4gU2FtZS1PcmlnaW4g
cmVkaXJlY3QKLVRJTUVPVVQgU2FtZS1PcmlnaW4gLT4gU2FtZS1TaXRlIHJlZGlyZWN0IFRlc3Qg
dGltZWQgb3V0Ci1OT1RSVU4gU2FtZS1PcmlnaW4gLT4gQ3Jvc3MtU2l0ZSByZWRpcmVjdAotRkFJ
TCB1bmRlZmluZWQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJpbWFn
ZSIgYnV0IGdvdCAiIgotRkFJTCB1bmRlZmluZWQ6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJuby1jb3JzIiBidXQgZ290ICIiCi1GQUlMIHVuZGVmaW5lZDogc2VjLWZl
dGNoLXNpdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIi
Ci1QQVNTIHVuZGVmaW5lZDogc2VjLWZldGNoLXVzZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVj
dC9zYW1lLXNpdGUtcmVkaXJlY3QuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVkaXJlY3Qv
c2FtZS1zaXRlLXJlZGlyZWN0Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGM5MGQ5YTA1ZWFkZjdjOWM3ZmVmNDg5Mzk3MjUwNDQ5NDJkNTc3M2Qu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZWRpcmVj
dC9zYW1lLXNpdGUtcmVkaXJlY3QuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDkgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3LmxvY2FsaG9zdDo5NDQzL3hoci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249aHR0
cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRl
ci5weT9maWxlPXJlZGlyZWN0LXNhbWUtc2l0ZS1zYW1lLW9yaWdpbjQ4OTRjZjIyLTRkM2UtNDVm
Ny1iOWQyLWE0YzllMjRlNjFlNwotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3LmxvY2FsaG9zdDo5NDQzL3hoci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhl
YWRlci5weT9maWxlPXJlZGlyZWN0LXNhbWUtc2l0ZS1zYW1lLXNpdGU0ODk0Y2YyMi00ZDNlLTQ1
ZjctYjlkMi1hNGM5ZTI0ZTYxZTcKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
czovL3d3dy5sb2NhbGhvc3Q6OTQ0My94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9u
PWh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNv
cmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3Qtc2FtZS1zaXRlLWNyb3NzLXNpdGU0ODk0Y2YyMi00
ZDNlLTQ1ZjctYjlkMi1hNGM5ZTI0ZTYxZTcKLQotCi1GQUlMIFNhbWUtU2l0ZSAtPiBTYW1lLU9y
aWdpbiByZWRpcmVjdCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgIk5v
IGhlYWRlciBoYXMgYmVlbiByZWNvcmRlZCIKLUZBSUwgU2FtZS1TaXRlIC0+IFNhbWUtU2l0ZSBy
ZWRpcmVjdCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRl
ciBoYXMgYmVlbiByZWNvcmRlZCIKLUZBSUwgU2FtZS1TaXRlIC0+IENyb3NzLVNpdGUgcmVkaXJl
Y3QgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFz
IGJlZW4gcmVjb3JkZWQiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVwb3J0Lmh0dHBzLnN1Yi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL3JlcG9ydC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1YjQ3ZDM2NzMwMGY3NDE4ZDAyODg1OTI0OTJlZTdmYWMyODZmZTU1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVwb3J0Lmh0
dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1CbG9j
a2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0
Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1yZXBvcnQtc2FtZS1z
aXRlCi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAuMC4x
Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1yZXBv
cnQtY3Jvc3Mtc2l0ZQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3
LmxvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5
P2ZpbGU9cmVwb3J0LXNhbWUtc2l0ZQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQt
aGVhZGVyLnB5P2ZpbGU9cmVwb3J0LWNyb3NzLXNpdGUKLQotSGFybmVzcyBFcnJvciAoRkFJTCks
IG1lc3NhZ2UgPSBVbmhhbmRsZWQgcmVqZWN0aW9uOiBhc3NlcnRfbm90X2VxdWFsczogZ290IGRp
c2FsbG93ZWQgdmFsdWUgIk5vIGhlYWRlciBoYXMgYmVlbiByZWNvcmRlZCIKLQotUEFTUyBzYW1l
LW9yaWdpbiByZXBvcnQKLVRJTUVPVVQgc2FtZS1zaXRlIHJlcG9ydCBUZXN0IHRpbWVkIG91dAot
VElNRU9VVCBjcm9zcy1zaXRlIHJlcG9ydCBUZXN0IHRpbWVkIG91dAotRkFJTCBzYW1lLW9yaWdp
biByZXBvcnQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZXBvcnQi
IGJ1dCBnb3QgIiIKLUZBSUwgc2FtZS1vcmlnaW4gcmVwb3J0OiBzZWMtZmV0Y2gtbW9kZSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAibm8tY29ycyIgYnV0IGdvdCAiIgotRkFJTCBzYW1lLW9yaWdp
biByZXBvcnQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9y
aWdpbiIgYnV0IGdvdCAiIgotUEFTUyBzYW1lLW9yaWdpbiByZXBvcnQ6IHNlYy1mZXRjaC11c2Vy
Ci0KLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gVW5oYW5kbGVkIHJlamVjdGlvbjog
YXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlICJObyBoZWFkZXIgaGFzIGJl
ZW4gcmVjb3JkZWQiCi0KLVBBU1Mgc2FtZS1vcmlnaW4gcmVwb3J0Ci1USU1FT1VUIHNhbWUtc2l0
ZSByZXBvcnQgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgY3Jvc3Mtc2l0ZSByZXBvcnQgVGVzdCB0
aW1lZCBvdXQKLUZBSUwgc2FtZS1vcmlnaW4gcmVwb3J0OiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAicmVwb3J0IiBidXQgZ290ICIiCi1GQUlMIHNhbWUtb3JpZ2luIHJl
cG9ydDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5vLWNvcnMiIGJ1
dCBnb3QgIiIKLUZBSUwgc2FtZS1vcmlnaW4gcmVwb3J0OiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1Mgc2FtZS1vcmln
aW4gcmVwb3J0OiBzZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hv
LWFzLWpzb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkKaW5kZXggNzY0NGE4NTA3
ZDk3ZjlmNGQzMDEwNmRjMzhmZDIyY2ZjNmIxMDc5Ni4uNDRmNjhlOGZlOWUyMDI1YjI5NDBlZjJh
NmNkODM5MGJlNjM3NjU4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weQpAQCAtMSwyNyArMSwyOSBAQAogaW1w
b3J0IGpzb24KIAorZnJvbSB3cHRzZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19kZWNvZGUK
KwogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGhlYWRlcnMgPSBbKCJDb250ZW50
LVR5cGUiLCAiYXBwbGljYXRpb24vanNvbiIpLAotICAgICAgICAgICAgICAgKCJBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1DcmVkZW50aWFscyIsICJ0cnVlIildCisgICAgaGVhZGVycyA9IFsoYiJDb250
ZW50LVR5cGUiLCBiImFwcGxpY2F0aW9uL2pzb24iKSwKKyAgICAgICAgICAgICAgIChiIkFjY2Vz
cy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIiwgYiJ0cnVlIildCiAKLSAgICBpZiAib3JpZ2lu
IiBpbiByZXF1ZXN0LmhlYWRlcnM6Ci0gICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luIiwgcmVxdWVzdC5oZWFkZXJzWyJvcmlnaW4iXSkpCisgICAgaWYg
YiJvcmlnaW4iIGluIHJlcXVlc3QuaGVhZGVyczoKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIi
QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgcmVxdWVzdC5oZWFkZXJzW2Iib3JpZ2luIl0p
KQogCi0gICAgYm9keSA9ICIiCisgICAgYm9keSA9IHUiIgogCiAgICAgIyBJZiB3ZSdyZSBpbiBh
IHByZWZsaWdodCwgdmVyaWZ5IHRoYXQgYFNlYy1GZXRjaC1Nb2RlYCBpcyBgY29yc2AuCi0gICAg
aWYgcmVxdWVzdC5tZXRob2QgPT0gJ09QVElPTlMnOgotICAgICAgICBpZiByZXF1ZXN0LmhlYWRl
cnMuZ2V0KCJzZWMtZmV0Y2gtbW9kZSIpICE9ICJjb3JzIjoKLSAgICAgICAgICAgIHJldHVybiAo
NDAzLCAiRmFpbGVkIiksIFtdLCBib2R5CisgICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gdSdPUFRJ
T05TJzoKKyAgICAgICAgaWYgcmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC1tb2RlIikg
IT0gYiJjb3JzIjoKKyAgICAgICAgICAgIHJldHVybiAoNDAzLCBiIkZhaWxlZCIpLCBbXSwgYm9k
eQogCi0gICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9k
cyIsICIqIikpCi0gICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ct
SGVhZGVycyIsICIqIikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKChiIkFjY2Vzcy1Db250cm9s
LUFsbG93LU1ldGhvZHMiLCBiIioiKSkKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIiQWNjZXNz
LUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIGIiKiIpKQogICAgIGVsc2U6CiAgICAgICAgIGJvZHkg
PSBqc29uLmR1bXBzKHsKLSAgICAgICAgICAgICJkZXN0IjogcmVxdWVzdC5oZWFkZXJzLmdldCgi
c2VjLWZldGNoLWRlc3QiLCAiIiksCi0gICAgICAgICAgICAibW9kZSI6IHJlcXVlc3QuaGVhZGVy
cy5nZXQoInNlYy1mZXRjaC1tb2RlIiwgIiIpLAotICAgICAgICAgICAgInNpdGUiOiByZXF1ZXN0
LmhlYWRlcnMuZ2V0KCJzZWMtZmV0Y2gtc2l0ZSIsICIiKSwKLSAgICAgICAgICAgICJ1c2VyIjog
cmVxdWVzdC5oZWFkZXJzLmdldCgic2VjLWZldGNoLXVzZXIiLCAiIiksCisgICAgICAgICAgICB1
ImRlc3QiOiBpc29tb3JwaGljX2RlY29kZShyZXF1ZXN0LmhlYWRlcnMuZ2V0KGIic2VjLWZldGNo
LWRlc3QiLCBiIiIpKSwKKyAgICAgICAgICAgIHUibW9kZSI6IGlzb21vcnBoaWNfZGVjb2RlKHJl
cXVlc3QuaGVhZGVycy5nZXQoYiJzZWMtZmV0Y2gtbW9kZSIsIGIiIikpLAorICAgICAgICAgICAg
dSJzaXRlIjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRj
aC1zaXRlIiwgYiIiKSksCisgICAgICAgICAgICB1InVzZXIiOiBpc29tb3JwaGljX2RlY29kZShy
ZXF1ZXN0LmhlYWRlcnMuZ2V0KGIic2VjLWZldGNoLXVzZXIiLCBiIiIpKSwKICAgICAgICAgICAg
IH0pCiAKICAgICByZXR1cm4gaGVhZGVycywgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMv
ZWNoby1hcy1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlwdC5weQppbmRleCA3
ODg0YjA5NmQ5OTRiNDFhMzY1Y2RiYzE5OTc5NjMzZTljZjY1NDE5Li4xZTdiYzkxMTg0ZmRkNmRl
OWZkZjk5ODIxNDZlMDA5MjExNzM3YzljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFz
LXNjcmlwdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlwdC5weQpAQCAtMSwxMyAr
MSwxNCBAQAogaW1wb3J0IGpzb24KIAotZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAg
IGhlYWRlcnMgPSBbKCJDb250ZW50LVR5cGUiLCAidGV4dC9qYXZhc2NyaXB0IildCitmcm9tIHdw
dHNlcnZlLnV0aWxzIGltcG9ydCBpc29tb3JwaGljX2RlY29kZQogCi0gICAgYm9keSA9ICJ2YXIg
aGVhZGVyID0gJXM7IiAlIGpzb24uZHVtcHMoewotICAgICAgICAiZGVzdCI6IHJlcXVlc3QuaGVh
ZGVycy5nZXQoInNlYy1mZXRjaC1kZXN0IiwgIiIpLAotICAgICAgICAibW9kZSI6IHJlcXVlc3Qu
aGVhZGVycy5nZXQoInNlYy1mZXRjaC1tb2RlIiwgIiIpLAotICAgICAgICAic2l0ZSI6IHJlcXVl
c3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC1zaXRlIiwgIiIpLAotICAgICAgICAidXNlciI6IHJl
cXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC11c2VyIiwgIiIpLAotICAgICAgICB9KTsKK2Rl
ZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBoZWFkZXJzID0gWyhiIkNvbnRlbnQtVHlw
ZSIsIGIidGV4dC9qYXZhc2NyaXB0IildCisgICAgYm9keSA9IHUidmFyIGhlYWRlciA9ICVzOyIg
JSBqc29uLmR1bXBzKHsKKyAgICAgICAgdSJkZXN0IjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVz
dC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC1kZXN0IiwgYiIiKSksCisgICAgICAgIHUibW9kZSI6
IGlzb21vcnBoaWNfZGVjb2RlKHJlcXVlc3QuaGVhZGVycy5nZXQoYiJzZWMtZmV0Y2gtbW9kZSIs
IGIiIikpLAorICAgICAgICB1InNpdGUiOiBpc29tb3JwaGljX2RlY29kZShyZXF1ZXN0LmhlYWRl
cnMuZ2V0KGIic2VjLWZldGNoLXNpdGUiLCBiIiIpKSwKKyAgICAgICAgdSJ1c2VyIjogaXNvbW9y
cGhpY19kZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC11c2VyIiwgYiIiKSks
CisgICAgICAgIH0pCiAKICAgICByZXR1cm4gaGVhZGVycywgYm9keQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9y
ZXNvdXJjZXMvcG9zdC10by1vd25lci1vbmxvYWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93
bmVyLW9ubG9hZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDU5ZWRiZDY4YTA4NWYxNWNkYTVmZDViMzNiZTZh
ODAyMDJhODExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci1v
bmxvYWQucHkKQEAgLTAsMCArMSwzNCBAQAoraW1wb3J0IGpzb24KKworZnJvbSB3cHRzZXJ2ZS51
dGlscyBpbXBvcnQgaXNvbW9ycGhpY19kZWNvZGUKKworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9u
c2UpOgorICAgIGhlYWRlcnMgPSBbCisgICAgICAgIChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9o
dG1sIiksCisgICAgICAgIChiIkNhY2hlLUNvbnRyb2wiLCBiIm5vLWNhY2hlLCBuby1zdG9yZSwg
bXVzdC1yZXZhbGlkYXRlIikKKyAgICBdCisgICAga2V5ID0gcmVxdWVzdC5HRVQuZmlyc3QoYiJr
ZXkiLCBOb25lKQorCisgICAgYm9keSA9IHUiIiIKKyAgICAgICAgPCFET0NUWVBFIGh0bWw+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIvcG9ydGFscy9yZXNvdXJjZXMvc3Rhc2gtdXRpbHMuc3ViLmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICB3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgZGF0YSA9ICVzOworICAgICAgICAgICAgaWYg
KHdpbmRvdy5vcGVuZXIpCisgICAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2Fn
ZShkYXRhLCAiKiIpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50b3AgIT0gd2luZG93KQorICAg
ICAgICAgICAgICAgIHdpbmRvdy50b3AucG9zdE1lc3NhZ2UoZGF0YSwgIioiKTsKKworICAgICAg
ICAgICAgY29uc3Qga2V5ID0gJXM7CisgICAgICAgICAgICBpZiAoa2V5KQorICAgICAgICAgICAg
ICAgIFN0YXNoVXRpbHMucHV0VmFsdWUoa2V5LCBkYXRhKTsKKyAgICAgICAgICB9CisgICAgICAg
IDwvc2NyaXB0PgorICAgICIiIiAlIChqc29uLmR1bXBzKHsKKyAgICAgICAgdSJkZXN0IjogaXNv
bW9ycGhpY19kZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC1kZXN0IiwgYiIi
KSksCisgICAgICAgIHUibW9kZSI6IGlzb21vcnBoaWNfZGVjb2RlKHJlcXVlc3QuaGVhZGVycy5n
ZXQoYiJzZWMtZmV0Y2gtbW9kZSIsIGIiIikpLAorICAgICAgICB1InNpdGUiOiBpc29tb3JwaGlj
X2RlY29kZShyZXF1ZXN0LmhlYWRlcnMuZ2V0KGIic2VjLWZldGNoLXNpdGUiLCBiIiIpKSwKKyAg
ICAgICAgdSJ1c2VyIjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNl
Yy1mZXRjaC11c2VyIiwgYiIiKSksCisgICAgICAgIH0pLCBqc29uLmR1bXBzKGtleSkpCisgICAg
cmV0dXJuIGhlYWRlcnMsIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3du
ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5CmluZGV4IDA5NmYzM2IwNGEyMmYz
NGVjY2JjZjk5ODEwMTBmZjZlNDNjOGVhNzkuLjI1NmRkNmU0OWRjY2E5MGQ1MDNiOWI3YzJhNGQx
Y2YwNGNiMzMwZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRh
ZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weQpAQCAtMSwyNiArMSwzNiBAQAogaW1wb3J0
IGpzb24KIAorZnJvbSB3cHRzZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19kZWNvZGUKKwog
ZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgIGhlYWRlcnMgPSBbCi0gICAgICAgICgi
Q29udGVudC1UeXBlIiwgInRleHQvaHRtbCIpLAotICAgICAgICAoIkNhY2hlLUNvbnRyb2wiLCAi
bm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKQorICAgICAgICAoYiJDb250ZW50
LVR5cGUiLCBiInRleHQvaHRtbCIpLAorICAgICAgICAoYiJDYWNoZS1Db250cm9sIiwgYiJuby1j
YWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZSIpCiAgICAgXQorICAgIGtleSA9IHJlcXVl
c3QuR0VULmZpcnN0KGIia2V5IiwgTm9uZSkKKworICAgICMgV2Ugc2VyaWFsaXplIHRoZSBrZXkg
aW50byBKU09OLCBzbyBoYXZlIHRvIGRlY29kZSBpdCBmaXJzdC4KKyAgICBpZiBrZXkgaXMgbm90
IE5vbmU6CisgICAgICBrZXkgPSBrZXkuZGVjb2RlKCd1dGYtOCcpCiAKLSAgICBib2R5ID0gIiIi
CisgICAgYm9keSA9IHUiIiIKICAgICAgICAgPCFET0NUWVBFIGh0bWw+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIvcG9ydGFscy9yZXNvdXJjZXMvc3Rhc2gtdXRpbHMuc3ViLmpzIj48L3NjcmlwdD4K
ICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgIHZhciBkYXRhID0gJXM7CiAgICAgICAgICAg
ICBpZiAod2luZG93Lm9wZW5lcikKICAgICAgICAgICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RN
ZXNzYWdlKGRhdGEsICIqIik7CiAgICAgICAgICAgICBpZiAod2luZG93LnRvcCAhPSB3aW5kb3cp
CiAgICAgICAgICAgICAgICAgd2luZG93LnRvcC5wb3N0TWVzc2FnZShkYXRhLCAiKiIpOwotICAg
ICAgICAgICAgaWYgKHdpbmRvdy5wb3J0YWxIb3N0KQotICAgICAgICAgICAgICAgIHdpbmRvdy5w
b3J0YWxIb3N0LnBvc3RNZXNzYWdlKGRhdGEsICIqIik7CisKKyAgICAgICAgICAgIGNvbnN0IGtl
eSA9ICVzOworICAgICAgICAgICAgaWYgKGtleSkKKyAgICAgICAgICAgICAgICBTdGFzaFV0aWxz
LnB1dFZhbHVlKGtleSwgZGF0YSk7CiAgICAgICAgIDwvc2NyaXB0PgotICAgICIiIiAlIGpzb24u
ZHVtcHMoewotICAgICAgICAiZGVzdCI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRjaC1k
ZXN0IiwgIiIpLAotICAgICAgICAibW9kZSI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1mZXRj
aC1tb2RlIiwgIiIpLAotICAgICAgICAic2l0ZSI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1m
ZXRjaC1zaXRlIiwgIiIpLAotICAgICAgICAidXNlciI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNl
Yy1mZXRjaC11c2VyIiwgIiIpLAotICAgICAgICB9KQorICAgICIiIiAlIChqc29uLmR1bXBzKHsK
KyAgICAgICAgdSJkZXN0IjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChi
InNlYy1mZXRjaC1kZXN0IiwgYiIiKSksCisgICAgICAgIHUibW9kZSI6IGlzb21vcnBoaWNfZGVj
b2RlKHJlcXVlc3QuaGVhZGVycy5nZXQoYiJzZWMtZmV0Y2gtbW9kZSIsIGIiIikpLAorICAgICAg
ICB1InNpdGUiOiBpc29tb3JwaGljX2RlY29kZShyZXF1ZXN0LmhlYWRlcnMuZ2V0KGIic2VjLWZl
dGNoLXNpdGUiLCBiIiIpKSwKKyAgICAgICAgdSJ1c2VyIjogaXNvbW9ycGhpY19kZWNvZGUocmVx
dWVzdC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC11c2VyIiwgYiIiKSksCisgICAgICAgIH0pLCBq
c29uLmR1bXBzKGtleSkpCiAgICAgcmV0dXJuIGhlYWRlcnMsIGJvZHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
cmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5
CmluZGV4IDM2NGM4MDBhMTljZTZmMjA2MGE5NzAxOWQyMjJhY2JmNzEwNDVlOTMuLjA1YjYwZWJh
MTNiMWNmNDYxNTU1NzZmOTEwNTgwYjFkYjhhZmZlYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2Vz
L3JlY29yZC1oZWFkZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weQpAQCAt
MSwyOSArMSwyOSBAQAogaW1wb3J0IG9zCi1pbXBvcnQgdXVpZAogaW1wb3J0IGhhc2hsaWIKLWlt
cG9ydCB0aW1lCiBpbXBvcnQganNvbgogCitmcm9tIHdwdHNlcnZlLnV0aWxzIGltcG9ydCBpc29t
b3JwaGljX2RlY29kZQorCiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICMjIEdldCB0
aGUgcXVlcnkgcGFyYW1ldGVyIChrZXkpIGZyb20gVVJMICMjCiAgICMjIFRlc3RzIHdpbGwgcmVj
b3JkIFBPU1QgcmVxdWVzdHMgKENTUCBSZXBvcnQpIGFuZCBHRVQgKHJlc3QpICMjCiAgIGlmIHJl
cXVlc3QuR0VUOgotICAgIGtleSA9IHJlcXVlc3QuR0VUWydmaWxlJ10KKyAgICBrZXkgPSByZXF1
ZXN0LkdFVFtiJ2ZpbGUnXQogICBlbGlmIHJlcXVlc3QuUE9TVDoKLSAgICBrZXkgPSByZXF1ZXN0
LlBPU1RbJ2ZpbGUnXQorICAgIGtleSA9IHJlcXVlc3QuUE9TVFtiJ2ZpbGUnXQogCiAgICMjIENv
bnZlcnQgdGhlIGtleSBmcm9tIFN0cmluZyB0byBVVUlEIHZhbGlkIFN0cmluZyAjIwogICB0ZXN0
SWQgPSBoYXNobGliLm1kNShrZXkpLmhleGRpZ2VzdCgpCiAKICAgIyMgSGFuZGxlIHRoZSBoZWFk
ZXIgcmV0cmlldmFsIHJlcXVlc3QgIyMKLSAgaWYgJ3JldHJpZXZlJyBpbiByZXF1ZXN0LkdFVDoK
KyAgaWYgYidyZXRyaWV2ZScgaW4gcmVxdWVzdC5HRVQ6CiAgICAgcmVzcG9uc2Uud3JpdGVyLndy
aXRlX3N0YXR1cygyMDApCiAgICAgcmVzcG9uc2Uud3JpdGVyLmVuZF9oZWFkZXJzKCkKICAgICB0
cnk6CiAgICAgICBoZWFkZXJfdmFsdWUgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKHRlc3RJ
ZCkKICAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZShoZWFkZXJfdmFsdWUpCiAgICAgZXhjZXB0
IChLZXlFcnJvciwgVmFsdWVFcnJvcikgYXMgZToKLSAgICAgIHJlc3BvbnNlLndyaXRlci53cml0
ZSgiTm8gaGVhZGVyIGhhcyBiZWVuIHJlY29yZGVkIikKKyAgICAgIHJlc3BvbnNlLndyaXRlci53
cml0ZSh1Ik5vIGhlYWRlciBoYXMgYmVlbiByZWNvcmRlZCIpCiAgICAgICBwYXNzCiAKICAgICBy
ZXNwb25zZS5jbG9zZV9jb25uZWN0aW9uID0gVHJ1ZQpAQCAtMzQsMTAgKzM0LDEwIEBAIGRlZiBt
YWluKHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICAgICMjIFJldHVybiBhIHNlcmlhbGl6ZWQgSlNP
TiBvYmplY3Qgd2l0aCBvbmUgbWVtYmVyIHBlciBoZWFkZXIuIElmIHRoZSAjIwogICAgICAgIyMg
aGVhZGVyIGlzbid0IHByZXNlbnQsIHRoZSBtZW1iZXIgd2lsbCBjb250YWluIGFuIGVtcHR5IHN0
cmluZy4gICAgICMjCiAgICAgICBoZWFkZXIgPSBqc29uLmR1bXBzKHsKLSAgICAgICAgImRlc3Qi
OiByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJzZWMtZmV0Y2gtZGVzdCIsICIiKSwKLSAgICAgICAgIm1v
ZGUiOiByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJzZWMtZmV0Y2gtbW9kZSIsICIiKSwKLSAgICAgICAg
InNpdGUiOiByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJzZWMtZmV0Y2gtc2l0ZSIsICIiKSwKLSAgICAg
ICAgInVzZXIiOiByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJzZWMtZmV0Y2gtdXNlciIsICIiKSwKKyAg
ICAgICAgdSJkZXN0IjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVzdC5oZWFkZXJzLmdldChiInNl
Yy1mZXRjaC1kZXN0IiwgYiIiKSksCisgICAgICAgIHUibW9kZSI6IGlzb21vcnBoaWNfZGVjb2Rl
KHJlcXVlc3QuaGVhZGVycy5nZXQoYiJzZWMtZmV0Y2gtbW9kZSIsIGIiIikpLAorICAgICAgICB1
InNpdGUiOiBpc29tb3JwaGljX2RlY29kZShyZXF1ZXN0LmhlYWRlcnMuZ2V0KGIic2VjLWZldGNo
LXNpdGUiLCBiIiIpKSwKKyAgICAgICAgdSJ1c2VyIjogaXNvbW9ycGhpY19kZWNvZGUocmVxdWVz
dC5oZWFkZXJzLmdldChiInNlYy1mZXRjaC11c2VyIiwgYiIiKSksCiAgICAgICB9KQogICAgICAg
cmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHRlc3RJZCwgaGVhZGVyKQogICAgIGV4Y2VwdCBLZXlF
cnJvcjoKQEAgLTQ1LDEwMSArNDUsMTAxIEBAIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToK
ICAgICAgIHBhc3MKIAogICAgICMjIFByZXZlbnQgdGhlIGJyb3dzZXIgZnJvbSBjYWNoaW5nIHJl
dHVybmVkIHJlc3BvbnNlcyBhbmQgYWxsb3cgQ09SUyAjIwotICAgIHJlc3BvbnNlLmhlYWRlcnMu
c2V0KCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAiKiIpCi0gICAgcmVzcG9uc2UuaGVh
ZGVycy5zZXQoIkNhY2hlLUNvbnRyb2wiLCAibm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFs
aWRhdGUiKQotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJQcmFnbWEiLCAibm8tY2FjaGUiKQot
ICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJFeHBpcmVzIiwgIjAiKQorICAgIHJlc3BvbnNlLmhl
YWRlcnMuc2V0KGIiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgYiIqIikKKyAgICByZXNw
b25zZS5oZWFkZXJzLnNldChiIkNhY2hlLUNvbnRyb2wiLCBiIm5vLWNhY2hlLCBuby1zdG9yZSwg
bXVzdC1yZXZhbGlkYXRlIikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIlByYWdtYSIsIGIi
bm8tY2FjaGUiKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiRXhwaXJlcyIsIGIiMCIpCiAK
ICAgICAjIyBBZGQgYSB2YWxpZCBTZXJ2aWNlV29ya2VyIENvbnRlbnQtVHlwZSAjIwotICAgIGlm
IGtleS5zdGFydHN3aXRoKCJzZXJ2aWNld29ya2VyIik6Ci0gICAgICByZXNwb25zZS5oZWFkZXJz
LnNldCgiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiKQorICAgIGlmIGtl
eS5zdGFydHN3aXRoKGIic2VydmljZXdvcmtlciIpOgorICAgICAgcmVzcG9uc2UuaGVhZGVycy5z
ZXQoYiJDb250ZW50LVR5cGUiLCBiImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiKQogCiAgICAgIyMg
QWRkIGEgdmFsaWQgaW1hZ2UgQ29udGVudC1UeXBlICMjCi0gICAgaWYga2V5LnN0YXJ0c3dpdGgo
ImltYWdlIik6Ci0gICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgImlt
YWdlL3BuZyIpCi0gICAgICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9v
dCwgIm1lZGlhIiwgIjF4MS1ncmVlbi5wbmciKSwgInIiKQorICAgIGlmIGtleS5zdGFydHN3aXRo
KGIiaW1hZ2UiKToKKyAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwg
YiJpbWFnZS9wbmciKQorICAgICAgZmlsZSA9IG9wZW4ob3MucGF0aC5qb2luKHJlcXVlc3QuZG9j
X3Jvb3QsIHUibWVkaWEiLCB1IjF4MS1ncmVlbi5wbmciKSwgdSJyYiIpCiAgICAgICBpbWFnZSA9
IGZpbGUucmVhZCgpCiAgICAgICBmaWxlLmNsb3NlKCkKICAgICAgIHJldHVybiBpbWFnZQogCiAg
ICAgIyMgUmV0dXJuIGEgdmFsaWQgLnZ0dCBjb250ZW50IGZvciB0aGUgPHRyYWNrPiB0YWcgIyMK
LSAgICBpZiBrZXkuc3RhcnRzd2l0aCgidHJhY2siKToKLSAgICAgIHJldHVybiAiV0VCVlRUIgor
ICAgIGlmIGtleS5zdGFydHN3aXRoKGIidHJhY2siKToKKyAgICAgIHJldHVybiBiIldFQlZUVCIK
IAogICAgICMjIFJldHVybiBhIHZhbGlkIFNoYXJlZFdvcmtlciAjIwotICAgIGlmIGtleS5zdGFy
dHN3aXRoKCJzaGFyZWR3b3JrZXIiKToKLSAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250
ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpCi0gICAgICBmaWxlID0gb3Blbihv
cy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwgImZldGNoIiwgIm1ldGFkYXRhIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2VzIiwgInNoYXJlZFdvcmtlci5qcyIp
LCAiciIpCisgICAgaWYga2V5LnN0YXJ0c3dpdGgoYiJzaGFyZWR3b3JrZXIiKToKKyAgICAgIHJl
c3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJhcHBsaWNhdGlvbi9qYXZhc2Ny
aXB0IikKKyAgICAgIGZpbGUgPSBvcGVuKG9zLnBhdGguam9pbihyZXF1ZXN0LmRvY19yb290LCB1
ImZldGNoIiwgdSJtZXRhZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSJy
ZXNvdXJjZXMiLCB1InNoYXJlZFdvcmtlci5qcyIpLCB1InJiIikKICAgICAgIHNoYXJlZF93b3Jr
ZXIgPSBmaWxlLnJlYWQoKQogICAgICAgZmlsZS5jbG9zZSgpCiAgICAgICByZXR1cm4gc2hhcmVk
X3dvcmtlcgogCiAgICAgIyMgUmV0dXJuIGEgdmFsaWQgZm9udCBjb250ZW50IGFuZCBDb250ZW50
LVR5cGUgIyMKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgiZm9udCIpOgotICAgICAgcmVzcG9uc2Uu
aGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi94LWZvbnQtdHRmIikKLSAg
ICAgIGZpbGUgPSBvcGVuKG9zLnBhdGguam9pbihyZXF1ZXN0LmRvY19yb290LCAiZm9udHMiLCAi
QWhlbS50dGYiKSwgInIiKQorICAgIGlmIGtleS5zdGFydHN3aXRoKGIiZm9udCIpOgorICAgICAg
cmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiImFwcGxpY2F0aW9uL3gtZm9u
dC10dGYiKQorICAgICAgZmlsZSA9IG9wZW4ob3MucGF0aC5qb2luKHJlcXVlc3QuZG9jX3Jvb3Qs
IHUiZm9udHMiLCB1IkFoZW0udHRmIiksIHUicmIiKQogICAgICAgZm9udCA9IGZpbGUucmVhZCgp
CiAgICAgICBmaWxlLmNsb3NlKCkKICAgICAgIHJldHVybiBmb250CiAKICAgICAjIyBSZXR1cm4g
YSB2YWxpZCBhdWRpbyBjb250ZW50IGFuZCBDb250ZW50LVR5cGUgIyMKLSAgICBpZiBrZXkuc3Rh
cnRzd2l0aCgiYXVkaW8iKToKLSAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5
cGUiLCAiYXVkaW8vbXBlZyIpCi0gICAgICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVz
dC5kb2Nfcm9vdCwgIm1lZGlhIiwgInNvdW5kXzUubXAzIiksICJyIikKKyAgICBpZiBrZXkuc3Rh
cnRzd2l0aChiImF1ZGlvIik6CisgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQt
VHlwZSIsIGIiYXVkaW8vbXBlZyIpCisgICAgICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVx
dWVzdC5kb2Nfcm9vdCwgdSJtZWRpYSIsIHUic291bmRfNS5tcDMiKSwgdSJyYiIpCiAgICAgICBh
dWRpbyA9IGZpbGUucmVhZCgpCiAgICAgICBmaWxlLmNsb3NlKCkKICAgICAgIHJldHVybiBhdWRp
bwogCiAgICAgIyMgUmV0dXJuIGEgdmFsaWQgdmlkZW8gY29udGVudCBhbmQgQ29udGVudC1UeXBl
ICMjCi0gICAgaWYga2V5LnN0YXJ0c3dpdGgoInZpZGVvIik6Ci0gICAgICByZXNwb25zZS5oZWFk
ZXJzLnNldCgiQ29udGVudC1UeXBlIiwgInZpZGVvL21wNCIpCi0gICAgICBmaWxlID0gb3Blbihv
cy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwgIm1lZGlhIiwgIkE0Lm1wNCIpLCAiciIpCisg
ICAgaWYga2V5LnN0YXJ0c3dpdGgoYiJ2aWRlbyIpOgorICAgICAgcmVzcG9uc2UuaGVhZGVycy5z
ZXQoYiJDb250ZW50LVR5cGUiLCBiInZpZGVvL21wNCIpCisgICAgICBmaWxlID0gb3Blbihvcy5w
YXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwgdSJtZWRpYSIsIHUiQTQubXA0IiksIHUicmIiKQog
ICAgICAgdmlkZW8gPSBmaWxlLnJlYWQoKQogICAgICAgZmlsZS5jbG9zZSgpCiAgICAgICByZXR1
cm4gdmlkZW8KIAogICAgICMjIFJldHVybiB2YWxpZCBzdHlsZSBjb250ZW50IGFuZCBDb250ZW50
LVR5cGUgIyMKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgic3R5bGUiKToKLSAgICAgIHJlc3BvbnNl
LmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAidGV4dC9jc3MiKQotICAgICAgcmV0dXJuICJk
aXYgeyB9IgorICAgIGlmIGtleS5zdGFydHN3aXRoKGIic3R5bGUiKToKKyAgICAgIHJlc3BvbnNl
LmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2NzcyIpCisgICAgICByZXR1cm4g
YiJkaXYgeyB9IgogCiAgICAgIyMgUmV0dXJuIGEgdmFsaWQgZW1iZWQvb2JqZWN0IGNvbnRlbnQg
YW5kIENvbnRlbnQtVHlwZSAjIwotICAgIGlmIGtleS5zdGFydHN3aXRoKCJlbWJlZCIpIG9yIGtl
eS5zdGFydHN3aXRoKCJvYmplY3QiKToKLSAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250
ZW50LVR5cGUiLCAidGV4dC9odG1sIikKLSAgICAgIHJldHVybiAiPGh0bWw+RU1CRUQhPC9odG1s
PiIKKyAgICBpZiBrZXkuc3RhcnRzd2l0aChiImVtYmVkIikgb3Iga2V5LnN0YXJ0c3dpdGgoYiJv
YmplY3QiKToKKyAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0
ZXh0L2h0bWwiKQorICAgICAgcmV0dXJuIGIiPGh0bWw+RU1CRUQhPC9odG1sPiIKIAogICAgICMj
IFJldHVybiBhIHZhbGlkIGltYWdlIGNvbnRlbnQgYW5kIENvbnRlbnQtVHlwZSBmb3IgcmVkaXJl
Y3QgcmVxdWVzdHMgIyMKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgicmVkaXJlY3QiKToKLSAgICAg
IHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAiaW1hZ2UvanBlZyIpCi0gICAg
ICBmaWxlID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwgIm1lZGlhIiwgIjF4
MS1ncmVlbi5wbmciKSwgInIiKQorICAgIGlmIGtleS5zdGFydHN3aXRoKGIicmVkaXJlY3QiKToK
KyAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJpbWFnZS9qcGVn
IikKKyAgICAgIGZpbGUgPSBvcGVuKG9zLnBhdGguam9pbihyZXF1ZXN0LmRvY19yb290LCB1Im1l
ZGlhIiwgdSIxeDEtZ3JlZW4ucG5nIiksIHUicmIiKQogICAgICAgaW1hZ2UgPSBmaWxlLnJlYWQo
KQogICAgICAgZmlsZS5jbG9zZSgpCiAgICAgICByZXR1cm4gaW1hZ2UKIAogICAgICMjIFJldHVy
biBhIHZhbGlkIGRlZGljYXRlZCB3b3JrZXIKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgid29ya2Vy
Iik6Ci0gICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0
aW9uL2phdmFzY3JpcHQiKQotICAgICAgcmV0dXJuICJzZWxmLnBvc3RNZXNzYWdlKCdsb2FkZWQn
KTsiCisgICAgaWYga2V5LnN0YXJ0c3dpdGgoYiJ3b3JrZXIiKToKKyAgICAgIHJlc3BvbnNlLmhl
YWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IikKKyAg
ICAgIHJldHVybiBiInNlbGYucG9zdE1lc3NhZ2UoJ2xvYWRlZCcpOyIKIAogICAgICMjIFJldHVy
biBhbiBhcHBjYWNoZSBtYW5pZmVzdAotICAgIGlmIGtleS5zdGFydHN3aXRoKCJhcHBjYWNoZS1t
YW5pZmVzdCIpOgotICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJ0
ZXh0L2NhY2hlLW1hbmlmZXN0IikKLSAgICAgIHJldHVybiAiIiJDQUNIRSBNQU5JRkVTVAorICAg
IGlmIGtleS5zdGFydHN3aXRoKGIiYXBwY2FjaGUtbWFuaWZlc3QiKToKKyAgICAgIHJlc3BvbnNl
LmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2NhY2hlLW1hbmlmZXN0IikKKyAg
ICAgIHJldHVybiBiIiIiQ0FDSEUgTUFOSUZFU1QKIC9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMv
cmVjb3JkLWhlYWRlci5weT9maWxlPWFwcGNhY2hlLXJlc291cmNlJXMKIAogTkVUV09SSzoKICoi
IiIgJSBrZXlbMTc6XQogCiAgICAgIyMgUmV0dXJuIGFuIGFwcGNhY2hlIHJlc291cmNlCi0gICAg
aWYga2V5LnN0YXJ0c3dpdGgoImFwcGNhY2hlLXJlc291cmNlIik6Ci0gICAgICByZXNwb25zZS5o
ZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgInRleHQvaHRtbCIpCi0gICAgICByZXR1cm4gIjxo
dG1sPkFwcGNhY2hlITwvaHRtbD4iCisgICAgaWYga2V5LnN0YXJ0c3dpdGgoYiJhcHBjYWNoZS1y
ZXNvdXJjZSIpOgorICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBi
InRleHQvaHRtbCIpCisgICAgICByZXR1cm4gYiI8aHRtbD5BcHBjYWNoZSE8L2h0bWw+IgogCiAg
ICAgIyMgUmV0dXJuIGEgdmFsaWQgWFNMVAotICAgIGlmIGtleS5zdGFydHN3aXRoKCJ4c2x0Iik6
Ci0gICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC1UeXBlIiwgInRleHQveHNsIikK
LSAgICAgIHJldHVybiAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgor
ICAgIGlmIGtleS5zdGFydHN3aXRoKGIieHNsdCIpOgorICAgICAgcmVzcG9uc2UuaGVhZGVycy5z
ZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQveHNsIikKKyAgICAgIHJldHVybiBiIiIiPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDx4c2w6c3R5bGVzaGVldCB4bWxuczp4
c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIgdmVyc2lvbj0iMS4wIj4K
ICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iQCp8bm9kZSgpIj4KICAgICA8eHNsOmNvcHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3czYy1pbXBv
cnQubG9nCmluZGV4IGNiODQ3OGJiYWFhYjRiMzBhOWZkYWVjZDZlOGZmNjA1ODcyYzUxNWIuLjVm
NDc0OTdkODk5YTgxNmQxZjNmYjY5NTk4MTU0OGNjZTA0OTZjOTIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVz
b3VyY2VzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCkBA
IC0yMyw2ICsyMyw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZmV0Y2gtdmlhLXNl
cnZpY2V3b3JrZXItLXJlc3BvbmRXaXRoLS1zdy5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2dvLWJhY2suaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0
YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXItb25s
b2FkLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weQogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29y
ZC1oZWFkZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWRpcmVjdFRlc3RIZWxwZXIuc3ViLmpzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL3NjcmlwdC5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9zY3JpcHQuaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmYxYmU2NWE2
M2ZjNWYzYzY3OGZhYWUwNzM5ZjQ0NDM2ZWZjZTNhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3NjcmlwdC5odHRwcy5zdWItZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9l
Y2hvLWFzLXNjcmlwdC5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlw
dC5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9z
dDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlwdC5weQotQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNo
L21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlwdC5weQotCi1QQVNTIFNhbWUtb3JpZ2lu
IHNjcmlwdAotRkFJTCBTYW1lLW9yaWdpbiBzY3JpcHQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJzY3JpcHQiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1vcmlnaW4gc2Ny
aXB0OiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibm8tY29ycyIgYnV0
IGdvdCAiIgotRkFJTCBTYW1lLW9yaWdpbiBzY3JpcHQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAiIgotUEFTUyBTYW1lLW9yaWdp
biBzY3JpcHQ6IHNlYy1mZXRjaC11c2VyCi1QQVNTIFNhbWUtc2l0ZSBzY3JpcHQKLUZBSUwgU2Ft
ZS1zaXRlIHNjcmlwdDogc2VjLWZldGNoLWRlc3QgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFs
dWF0aW5nICd2YWx1ZS5kZXN0JykKLUZBSUwgU2FtZS1zaXRlIHNjcmlwdDogc2VjLWZldGNoLW1v
ZGUgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1ZS5tb2RlJykKLUZBSUwg
U2FtZS1zaXRlIHNjcmlwdDogc2VjLWZldGNoLXNpdGUgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICd2YWx1ZS5zaXRlJykKLUZBSUwgU2FtZS1zaXRlIHNjcmlwdDogc2VjLWZldGNo
LXVzZXIgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1ZS51c2VyJykKLVBB
U1MgQ3Jvc3Mtc2l0ZSBzY3JpcHQKLUZBSUwgQ3Jvc3Mtc2l0ZSBzY3JpcHQ6IHNlYy1mZXRjaC1k
ZXN0IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndmFsdWUuZGVzdCcpCi1GQUlM
IENyb3NzLXNpdGUgc2NyaXB0OiBzZWMtZmV0Y2gtbW9kZSBudWxsIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ3ZhbHVlLm1vZGUnKQotRkFJTCBDcm9zcy1zaXRlIHNjcmlwdDogc2VjLWZl
dGNoLXNpdGUgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1ZS5zaXRlJykK
LUZBSUwgQ3Jvc3Mtc2l0ZSBzY3JpcHQ6IHNlYy1mZXRjaC11c2VyIG51bGwgaXMgbm90IGFuIG9i
amVjdCAoZXZhbHVhdGluZyAndmFsdWUudXNlcicpCi1QQVNTIFNhbWUtb3JpZ2luIENPUlMgc2Ny
aXB0Ci1GQUlMIFNhbWUtb3JpZ2luIENPUlMgc2NyaXB0OiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAic2NyaXB0IiBidXQgZ290ICIiCi1GQUlMIFNhbWUtb3JpZ2luIENP
UlMgc2NyaXB0OiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiY29ycyIg
YnV0IGdvdCAiIgotRkFJTCBTYW1lLW9yaWdpbiBDT1JTIHNjcmlwdDogc2VjLWZldGNoLXNpdGUg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIFNh
bWUtb3JpZ2luIENPUlMgc2NyaXB0OiBzZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3Nj
cmlwdC5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9zY3JpcHQuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjc0MjUxNThmNGVkZjAxYTczNGE0ZDRhOGU2N2FmMzNj
ZGE1NDBlMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRh
L3NjcmlwdC5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAot
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cubG9jYWxob3N0Ojg4MDAv
ZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtc2NyaXB0LnB5Ci1CbG9ja2VkIGFjY2Vz
cyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dy4xMjcuMC4wLjE6ODgwMC9mZXRjaC9tZXRhZGF0
YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQucHkKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFs
IFVSTCBodHRwOi8vd3d3LmxvY2FsaG9zdDo4ODAwL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9l
Y2hvLWFzLXNjcmlwdC5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93
d3cuMTI3LjAuMC4xOjg4MDAvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtc2NyaXB0
LnB5Ci0KLVBBU1MgTm9uLXNlY3VyZSBzYW1lLW9yaWdpbiBzY3JpcHQgPT4gTm8gaGVhZGVycwot
UEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2luIHNjcmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0
Y2gtZGVzdAotUEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2luIHNjcmlwdCA9PiBObyBoZWFkZXJz
OiBzZWMtZmV0Y2gtbW9kZQotUEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2luIHNjcmlwdCA9PiBO
byBoZWFkZXJzOiBzZWMtZmV0Y2gtc2l0ZQotUEFTUyBOb24tc2VjdXJlIHNhbWUtb3JpZ2luIHNj
cmlwdCA9PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtdXNlcgotUEFTUyBOb24tc2VjdXJlIHNhbWUt
c2l0ZSBzY3JpcHQgPT4gTm8gaGVhZGVycwotRkFJTCBOb24tc2VjdXJlIHNhbWUtc2l0ZSBzY3Jp
cHQgPT4gTm8gaGVhZGVyczogc2VjLWZldGNoLWRlc3QgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICd2YWx1ZS5kZXN0JykKLUZBSUwgTm9uLXNlY3VyZSBzYW1lLXNpdGUgc2NyaXB0
ID0+IE5vIGhlYWRlcnM6IHNlYy1mZXRjaC1tb2RlIG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAndmFsdWUubW9kZScpCi1GQUlMIE5vbi1zZWN1cmUgc2FtZS1zaXRlIHNjcmlwdCA9
PiBObyBoZWFkZXJzOiBzZWMtZmV0Y2gtc2l0ZSBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ3ZhbHVlLnNpdGUnKQotRkFJTCBOb24tc2VjdXJlIHNhbWUtc2l0ZSBzY3JpcHQgPT4g
Tm8gaGVhZGVyczogc2VjLWZldGNoLXVzZXIgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICd2YWx1ZS51c2VyJykKLVBBU1MgTm9uLXNlY3VyZSBjcm9zcy1zaXRlIHNjcmlwdCA9PiBO
byBoZWFkZXJzCi1GQUlMIE5vbi1zZWN1cmUgY3Jvc3Mtc2l0ZSBzY3JpcHQgPT4gTm8gaGVhZGVy
czogc2VjLWZldGNoLWRlc3QgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1
ZS5kZXN0JykKLUZBSUwgTm9uLXNlY3VyZSBjcm9zcy1zaXRlIHNjcmlwdCA9PiBObyBoZWFkZXJz
OiBzZWMtZmV0Y2gtbW9kZSBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3ZhbHVl
Lm1vZGUnKQotRkFJTCBOb24tc2VjdXJlIGNyb3NzLXNpdGUgc2NyaXB0ID0+IE5vIGhlYWRlcnM6
IHNlYy1mZXRjaC1zaXRlIG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndmFsdWUu
c2l0ZScpCi1GQUlMIE5vbi1zZWN1cmUgY3Jvc3Mtc2l0ZSBzY3JpcHQgPT4gTm8gaGVhZGVyczog
c2VjLWZldGNoLXVzZXIgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd2YWx1ZS51
c2VyJykKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9zZXJ2aWNld29ya2VyLmh0dHBzLnN1Yi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21l
dGFkYXRhL3NlcnZpY2V3b3JrZXIuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDBhMzBhNjMzMjYxYmFlZWVmMTkzZjFkMTI5N2NmNjkxZWUzYWMx
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3NlcnZp
Y2V3b3JrZXIuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICsw
LDAgQEAKLQotUEFTUyBtZXRhZGF0YSBmb3Igc2VydmljZSB3b3JrZXIgc2NyaXB0cwotRkFJTCBS
ZWdpc3RlciBzZXJ2aWNlIHdvcmtlcjogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgInNlcnZpY2V3b3JrZXIiIGJ1dCBnb3QgIiIKLUZBSUwgUmVnaXN0ZXIgc2VydmljZSB3
b3JrZXI6IHNlYy1mZXRjaC1tb2RlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdp
biIgYnV0IGdvdCAiIgotRkFJTCBSZWdpc3RlciBzZXJ2aWNlIHdvcmtlcjogc2VjLWZldGNoLXNp
dGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNT
IFJlZ2lzdGVyIHNlcnZpY2Ugd29ya2VyOiBzZWMtZmV0Y2gtdXNlcgotRkFJTCBVcGRhdGUgc2Vy
dmljZSB3b3JrZXI6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzZXJ2
aWNld29ya2VyIiBidXQgZ290ICIiCi1GQUlMIFVwZGF0ZSBzZXJ2aWNlIHdvcmtlcjogc2VjLWZl
dGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIi
Ci1GQUlMIFVwZGF0ZSBzZXJ2aWNlIHdvcmtlcjogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIFVwZGF0ZSBzZXJ2aWNl
IHdvcmtlcjogc2VjLWZldGNoLXVzZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9zaGFyZWR3b3JrZXIuaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvc2hhcmVkd29ya2VyLmh0dHBzLnN1Yi1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlNzMyNjgxYTVhOWFiMjc1MTY5YzJm
NzA3MGM1MWZjNzFjZjc2MDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS9zaGFyZWR3b3JrZXIuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDQgKzAsMCBAQAotCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFJl
ZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKLQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L21ldGFkYXRhL3N0eWxlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3N0eWxlLmh0dHBzLnN1
Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmYjAzNDg5ZGFi
MzIxNDdlNzNlZDU5MWRmMTkzN2FlOWZlMWNlNTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9zdHlsZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9yZWNv
cmQtaGVhZGVyLnB5P2ZpbGU9c3R5bGUtc2FtZS1zaXRlNjFmNTNmNzAtMjRhZS00N2E3LTg2ODMt
NzllMjc0MGM1M2U1Ci0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAot
Ci1QQVNTIFNhbWUtT3JpZ2luIHN0eWxlCi1USU1FT1VUIFNhbWUtU2l0ZSBzdHlsZSBUZXN0IHRp
bWVkIG91dAotTk9UUlVOIENyb3NzLVNpdGUgc3R5bGUKLU5PVFJVTiBTYW1lLU9yaWdpbiwgY29y
cyBzdHlsZQotRkFJTCBTYW1lLU9yaWdpbiBzdHlsZTogc2VjLWZldGNoLWRlc3QgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgInN0eWxlIiBidXQgZ290ICIiCi1GQUlMIFNhbWUtT3JpZ2luIHN0eWxl
OiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibm8tY29ycyIgYnV0IGdv
dCAiIgotRkFJTCBTYW1lLU9yaWdpbiBzdHlsZTogc2VjLWZldGNoLXNpdGUgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIFNhbWUtT3JpZ2luIHN0
eWxlOiBzZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3RyYWNrLmh0dHBzLnN1Yi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL21ldGFkYXRhL3RyYWNrLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDMxZmVlNzY4NDM2MGZlMTI3NzE5MWMyNDg0ZDEzMzBmZGZiZmI3NWEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS90cmFjay5o
dHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0KLQot
SGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgU2FtZS1P
cmlnaW4gdHJhY2sgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBTYW1lLVNpdGUgdHJhY2sKLU5PVFJV
TiBDcm9zcy1TaXRlIHRyYWNrCi1OT1RSVU4gU2FtZS1PcmlnaW4sIENPUlMgdHJhY2sKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS90cmFpbGluZy1kb3QuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdHJhaWxp
bmctZG90Lmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdkYmNiNjI0MDEyOGNmM2YyZDdjY2FkNzhlMzZjOWUyZjRmY2FhNDEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS90cmFpbGluZy1kb3QuaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vbG9jYWxob3N0Ljo5NDQzL2ZldGNoL21ldGFk
YXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFs
IFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3QuOjk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2Vz
L2VjaG8tYXMtanNvbi5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3LjEyNy4wLjAuMS46OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29u
LnB5Ci0KLUZBSUwgRmV0Y2hpbmcgYSByZXNvdXJjZSBmcm9tIHRoZSBzYW1lIG9yaWdpbiwgYnV0
IHNwZWxsZWQgd2l0aCBhIHRyYWlsaW5nIGRvdC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBG
ZXRjaGluZyBhIHJlc291cmNlIGZyb20gdGhlIHNhbWUgc2l0ZSwgYnV0IHNwZWxsZWQgd2l0aCBh
IHRyYWlsaW5nIGRvdC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBGZXRjaGluZyBhIHJlc291
cmNlIGZyb20gYSBjcm9zcy1zaXRlIGhvc3QsIHNwZWxsZWQgd2l0aCBhIHRyYWlsaW5nIGRvdC4g
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiBUeXBlIGVycm9yIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3RyYWlsaW5nLWRvdC5odHRwcy5z
dWIuYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL21ldGFkYXRhL3RyYWlsaW5nLWRvdC5odHRwcy5zdWIuYW55Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvdHJhaWxpbmctZG90Lmh0dHBzLnN1Yi5hbnkuaHRtbApAQCAtMCwwICsxIEBACis8
IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUg
dG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL21ldGFkYXRhL3RyYWlsaW5nLWRvdC5odHRwcy5zdWIuYW55LmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS90cmFpbGlu
Zy1kb3QuaHR0cHMuc3ViLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTMyZmM0ZTdmNmE0NGQyNjQ2ZTA5
M2NjOTk0NWZhMDFkYTc3ZWRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS90cmFpbGluZy1kb3QuaHR0
cHMuc3ViLmFueS5qcwpAQCAtMCwwICsxLDMwIEBACisvLyBNRVRBOiBnbG9iYWw9d2luZG93LHdv
cmtlcgorLy8gTUVUQTogc2NyaXB0PS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpz
CisKKy8vIFNpdGUKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgcmV0dXJuIHZhbGlkYXRlX2V4cGVj
dGF0aW9uc19jdXN0b21fdXJsKCJodHRwczovL3t7aG9zdH19Ljp7e3BvcnRzW2h0dHBzXVswXX19
L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkiLCB7fSwgeworICAgICAg
ICAgICJzaXRlIjogImNyb3NzLXNpdGUiLAorICAgICAgICAgICJ1c2VyIjogIiIsCisgICAgICAg
ICAgIm1vZGUiOiAiY29ycyIsCisgICAgICAgICAgImRlc3QiOiAiZW1wdHkiCisgICAgICAgIH0s
ICJGZXRjaGluZyBhIHJlc291cmNlIGZyb20gdGhlIHNhbWUgb3JpZ2luLCBidXQgc3BlbGxlZCB3
aXRoIGEgdHJhaWxpbmcgZG90LiIpOworfSwgIkZldGNoaW5nIGEgcmVzb3VyY2UgZnJvbSB0aGUg
c2FtZSBvcmlnaW4sIGJ1dCBzcGVsbGVkIHdpdGggYSB0cmFpbGluZyBkb3QuIik7CisKK3Byb21p
c2VfdGVzdCh0ID0+IHsKKyAgcmV0dXJuIHZhbGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0b21fdXJs
KCJodHRwczovL3t7aG9zdHNbXVt3d3ddfX0uOnt7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0
YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weSIsIHt9LCB7CisgICAgICAgICAgInNpdGUi
OiAiY3Jvc3Mtc2l0ZSIsCisgICAgICAgICAgInVzZXIiOiAiIiwKKyAgICAgICAgICAibW9kZSI6
ICJjb3JzIiwKKyAgICAgICAgICAiZGVzdCI6ICJlbXB0eSIKKyAgICAgICAgfSwgIkZldGNoaW5n
IGEgcmVzb3VyY2UgZnJvbSB0aGUgc2FtZSBzaXRlLCBidXQgc3BlbGxlZCB3aXRoIGEgdHJhaWxp
bmcgZG90LiIpOworfSwgIkZldGNoaW5nIGEgcmVzb3VyY2UgZnJvbSB0aGUgc2FtZSBzaXRlLCBi
dXQgc3BlbGxlZCB3aXRoIGEgdHJhaWxpbmcgZG90LiIpOworCitwcm9taXNlX3Rlc3QodCA9PiB7
CisgIHJldHVybiB2YWxpZGF0ZV9leHBlY3RhdGlvbnNfY3VzdG9tX3VybCgiaHR0cHM6Ly97e2hv
c3RzW2FsdF1bd3d3XX19Ljp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL21ldGFkYXRhL3Jlc291
cmNlcy9lY2hvLWFzLWpzb24ucHkiLCB7fSwgeworICAgICAgICAgICJzaXRlIjogImNyb3NzLXNp
dGUiLAorICAgICAgICAgICJ1c2VyIjogIiIsCisgICAgICAgICAgIm1vZGUiOiAiY29ycyIsCisg
ICAgICAgICAgImRlc3QiOiAiZW1wdHkiCisgICAgICAgIH0sICJGZXRjaGluZyBhIHJlc291cmNl
IGZyb20gYSBjcm9zcy1zaXRlIGhvc3QsIHNwZWxsZWQgd2l0aCBhIHRyYWlsaW5nIGRvdC4iKTsK
K30sICJGZXRjaGluZyBhIHJlc291cmNlIGZyb20gYSBjcm9zcy1zaXRlIGhvc3QsIHNwZWxsZWQg
d2l0aCBhIHRyYWlsaW5nIGRvdC4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdHJhaWxpbmctZG90Lmh0dHBz
LnN1Yi5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3RyYWlsaW5nLWRvdC5odHRwcy5zdWIuYW55Lndvcmtl
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4
YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3RyYWlsaW5nLWRvdC5odHRwcy5zdWIuYW55Lndvcmtl
ci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJL
aXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdHJhaWxpbmctZG90Lmh0dHBz
LnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9tZXRhZGF0YS90cmFpbGluZy1kb3QuaHR0cHMuc3ViLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGFmZDg3NmYwNTI0ZGQ0MGEwZjc3Yjc0MzQwOWU4OTY4YTg5ZjgxZGMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS90cmFpbGlu
Zy1kb3QuaHR0cHMuc3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9L2ZldGNoL21ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotICAvLyBTaXRlCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1
cm4gdmFsaWRhdGVfZXhwZWN0YXRpb25zX2N1c3RvbV91cmwoImh0dHBzOi8ve3tob3N0fX0uOnt7
cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5w
eSIsIHt9LCB7Ci0gICAgICAgICAgICAic2l0ZSI6ICJjcm9zcy1zaXRlIiwKLSAgICAgICAgICAg
ICJ1c2VyIjogIiIsCi0gICAgICAgICAgICAibW9kZSI6ICJjb3JzIiwKLSAgICAgICAgICAgICJk
ZXN0IjogImVtcHR5IgotICAgICAgICAgIH0sICJGZXRjaGluZyBhIHJlc291cmNlIGZyb20gdGhl
IHNhbWUgb3JpZ2luLCBidXQgc3BlbGxlZCB3aXRoIGEgdHJhaWxpbmcgZG90LiIpOwotICB9LCAi
RmV0Y2hpbmcgYSByZXNvdXJjZSBmcm9tIHRoZSBzYW1lIG9yaWdpbiwgYnV0IHNwZWxsZWQgd2l0
aCBhIHRyYWlsaW5nIGRvdC4iKTsKLQotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJu
IHZhbGlkYXRlX2V4cGVjdGF0aW9uc19jdXN0b21fdXJsKCJodHRwczovL3t7aG9zdHNbXVt3d3dd
fX0uOnt7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMt
anNvbi5weSIsIHt9LCB7Ci0gICAgICAgICAgICAic2l0ZSI6ICJjcm9zcy1zaXRlIiwKLSAgICAg
ICAgICAgICJ1c2VyIjogIiIsCi0gICAgICAgICAgICAibW9kZSI6ICJjb3JzIiwKLSAgICAgICAg
ICAgICJkZXN0IjogImVtcHR5IgotICAgICAgICAgIH0sICJGZXRjaGluZyBhIHJlc291cmNlIGZy
b20gdGhlIHNhbWUgc2l0ZSwgYnV0IHNwZWxsZWQgd2l0aCBhIHRyYWlsaW5nIGRvdC4iKTsKLSAg
fSwgIkZldGNoaW5nIGEgcmVzb3VyY2UgZnJvbSB0aGUgc2FtZSBzaXRlLCBidXQgc3BlbGxlZCB3
aXRoIGEgdHJhaWxpbmcgZG90LiIpOwotCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1
cm4gdmFsaWRhdGVfZXhwZWN0YXRpb25zX2N1c3RvbV91cmwoImh0dHBzOi8ve3tob3N0c1thbHRd
W3d3d119fS46e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvZWNo
by1hcy1qc29uLnB5Iiwge30sIHsKLSAgICAgICAgICAgICJzaXRlIjogImNyb3NzLXNpdGUiLAot
ICAgICAgICAgICAgInVzZXIiOiAiIiwKLSAgICAgICAgICAgICJtb2RlIjogImNvcnMiLAotICAg
ICAgICAgICAgImRlc3QiOiAiZW1wdHkiCi0gICAgICAgICAgfSwgIkZldGNoaW5nIGEgcmVzb3Vy
Y2UgZnJvbSBhIGNyb3NzLXNpdGUgaG9zdCwgc3BlbGxlZCB3aXRoIGEgdHJhaWxpbmcgZG90LiIp
OwotICB9LCAiRmV0Y2hpbmcgYSByZXNvdXJjZSBmcm9tIGEgY3Jvc3Mtc2l0ZSBob3N0LCBzcGVs
bGVkIHdpdGggYSB0cmFpbGluZyBkb3QuIik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdW5s
b2FkLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3VubG9hZC5odHRwcy5zdWItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZDBhN2QzMTUwYWIwNTdlY2M4Y2Fl
ZmRiODI1ZDFjYTRkYmEzN2ZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbWV0YWRhdGEvdW5sb2FkLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw4ICswLDAgQEAKLQotCi1QQVNTIEZldGNoIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIKLUZB
SUwgdW5kZWZpbmVkOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZW1w
dHkiIGJ1dCBnb3QgIiIKLUZBSUwgdW5kZWZpbmVkOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAibm8tY29ycyIgYnV0IGdvdCAiIgotRkFJTCB1bmRlZmluZWQ6IHNlYy1m
ZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIgYnV0IGdvdCAi
IgotUEFTUyB1bmRlZmluZWQ6IHNlYy1mZXRjaC11c2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL21ldGFkYXRhL3czYy1pbXBvcnQubG9nCmluZGV4IDBiNTE1MjA4OWE3NTg4NDkzMDY1OTBi
NGQxNTUxYTE0ZTk4ZWJhZTUuLjUyYTM4YTQ3YWNkZGQ1NjhhNWY0MjMyOTRhYjFjZWQxZTcxMGQ3
ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvbWV0YWRhdGEvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS93M2MtaW1wb3J0LmxvZwpA
QCAtMTcsMTIgKzE3LDEyIEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9NRVRBLnltbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvUkVBRE1F
Lm1kCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9t
ZXRhZGF0YS9kb3dubG9hZC5odHRwcy5zdWIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZW1iZWQuaHR0cHMuc3ViLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFk
YXRhL2VtYmVkLmh0dHBzLnN1Yi50ZW50YXRpdmUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmF2aWNvbi5odHRwcy5zdWIu
aHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
bWV0YWRhdGEvZmV0Y2gtcHJlZmxpZ2h0Lmh0dHBzLnN1Yi5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC1wcmVmbGln
aHQuaHR0cHMuc3ViLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZmV0Y2gtdmlhLXNlcnZpY2V3b3JrZXItLWZhbGxiYWNr
Lmh0dHBzLnN1Yi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC12aWEtc2VydmljZXdvcmtlci0tcmVzcG9uZFdpdGgu
aHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL21ldGFkYXRhL2ZldGNoLmh0dHBzLnN1Yi5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9mZXRjaC5odHRwcy5z
dWIuYW55LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9tZXRhZGF0YS9mZXRjaC5zdWIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvZm9udC5odHRwcy5zdWIuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
Zm9ybS5odHRwcy5zdWIuaHRtbApAQCAtNDMsNyArNDMsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
c2hhcmVkd29ya2VyLmh0dHBzLnN1Yi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS9zdHlsZS5odHRwcy5zdWIuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
dHJhY2suaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3RyYWlsaW5nLWRvdC5odHRwcy5zdWIuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
dHJhaWxpbmctZG90Lmh0dHBzLnN1Yi5hbnkuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3VubG9hZC5odHRwcy5zdWIuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRh
dGEvd2luZG93LW9wZW4uaHR0cHMuc3ViLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRhL3dvcmtlci5odHRwcy5zdWIuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9tZXRhZGF0YS93aW5kb3ctb3Blbi5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS93aW5k
b3ctb3Blbi5odHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiYzE1YmI5YzNiYjgyNDVlNTE0ZWY4MTlkNWU5YjJjNDMxMTdjYzY3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvd2luZG93LW9wZW4uaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLUJsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9t
ZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LjEyNy4wLjAuMTo5NDQzL2ZldGNoL21ldGFkYXRhL3Jlc291
cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8t
b3duZXIucHkKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy4xMjcu
MC4wLjE6OTQ0My9mZXRjaC9tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weQotQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2Zl
dGNoL21ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci1CbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cuMTI3LjAuMC4xOjk0NDMvZmV0Y2gvbWV0YWRhdGEv
cmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkKLQotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwg
bWVzc2FnZSA9IG51bGwKLQotUEFTUyBTYW1lLW9yaWdpbiB3aW5kb3csIGZvcmNlZAotVElNRU9V
VCBTYW1lLXNpdGUgd2luZG93LCBmb3JjZWQgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgQ3Jvc3Mt
c2l0ZSB3aW5kb3csIGZvcmNlZCBUZXN0IHRpbWVkIG91dAotUEFTUyBTYW1lLW9yaWdpbiB3aW5k
b3csIGZvcmNlZCwgcmVsb2FkZWQKLVRJTUVPVVQgU2FtZS1zaXRlIHdpbmRvdywgZm9yY2VkLCBy
ZWxvYWRlZCBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBDcm9zcy1zaXRlIHdpbmRvdywgZm9yY2Vk
LCByZWxvYWRlZCBUZXN0IHRpbWVkIG91dAotUEFTUyBTYW1lLW9yaWdpbiB3aW5kb3csIHVzZXIt
YWN0aXZhdGVkCi1USU1FT1VUIFNhbWUtc2l0ZSB3aW5kb3csIHVzZXItYWN0aXZhdGVkIFRlc3Qg
dGltZWQgb3V0Ci1USU1FT1VUIENyb3NzLXNpdGUgd2luZG93LCB1c2VyLWFjdGl2YXRlZCBUZXN0
IHRpbWVkIG91dAotRkFJTCBTYW1lLW9yaWdpbiB3aW5kb3csIGZvcmNlZDogc2VjLWZldGNoLWRl
c3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImRvY3VtZW50IiBidXQgZ290ICIiCi1GQUlMIFNh
bWUtb3JpZ2luIHdpbmRvdywgZm9yY2VkOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1vcmlnaW4gd2luZG93LCBm
b3JjZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdp
biIgYnV0IGdvdCAiIgotUEFTUyBTYW1lLW9yaWdpbiB3aW5kb3csIGZvcmNlZDogc2VjLWZldGNo
LXVzZXIKLUZBSUwgU2FtZS1vcmlnaW4gd2luZG93LCBmb3JjZWQsIHJlbG9hZGVkOiBzZWMtZmV0
Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZG9jdW1lbnQiIGJ1dCBnb3QgIiIKLUZB
SUwgU2FtZS1vcmlnaW4gd2luZG93LCBmb3JjZWQsIHJlbG9hZGVkOiBzZWMtZmV0Y2gtbW9kZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAibmF2aWdhdGUiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1v
cmlnaW4gd2luZG93LCBmb3JjZWQsIHJlbG9hZGVkOiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLVBBU1MgU2FtZS1vcmlnaW4g
d2luZG93LCBmb3JjZWQsIHJlbG9hZGVkOiBzZWMtZmV0Y2gtdXNlcgotRkFJTCBTYW1lLW9yaWdp
biB3aW5kb3csIHVzZXItYWN0aXZhdGVkOiBzZWMtZmV0Y2gtZGVzdCBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiZG9jdW1lbnQiIGJ1dCBnb3QgIiIKLUZBSUwgU2FtZS1vcmlnaW4gd2luZG93LCB1
c2VyLWFjdGl2YXRlZDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm5h
dmlnYXRlIiBidXQgZ290ICIiCi1GQUlMIFNhbWUtb3JpZ2luIHdpbmRvdywgdXNlci1hY3RpdmF0
ZWQ6IHNlYy1mZXRjaC1zaXRlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJzYW1lLW9yaWdpbiIg
YnV0IGdvdCAiIgotRkFJTCBTYW1lLW9yaWdpbiB3aW5kb3csIHVzZXItYWN0aXZhdGVkOiBzZWMt
ZmV0Y2gtdXNlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiPzEiIGJ1dCBnb3QgIiIKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9tZXRhZGF0YS93b3JrZXIuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEvd29ya2VyLmh0dHBz
LnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkOGUwOGVm
ZTFhMDAxMWZlMzU0NjhlOTA5MDM2MmUwOTA2NGE2YzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9tZXRhZGF0YS93b3JrZXIuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotCi1QQVNTIFNhbWUtT3JpZ2luIHdvcmtlcgot
RkFJTCB1bmRlZmluZWQ6IHNlYy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ3
b3JrZXIiIGJ1dCBnb3QgIiIKLUZBSUwgdW5kZWZpbmVkOiBzZWMtZmV0Y2gtbW9kZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1dCBnb3QgIiIKLUZBSUwgdW5kZWZpbmVk
OiBzZWMtZmV0Y2gtc2l0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAic2FtZS1vcmlnaW4iIGJ1
dCBnb3QgIiIKLVBBU1MgdW5kZWZpbmVkOiBzZWMtZmV0Y2gtdXNlcgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL21ldGFkYXRh
L3hzbHQuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEveHNsdC5odHRwcy5zdWItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWVhMmYzZTE5ZjMxZWQ4MGIyOTk4
Nzk4MTU1YTJiZWFjYmYyZDliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvbWV0YWRhdGEveHNsdC5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi0KLVBBU1MgU2FtZS1PcmlnaW4geHNsdAotRkFJTCB1bmRlZmluZWQ6IHNl
Yy1mZXRjaC1kZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ4c2x0IiBidXQgZ290ICIiCi1G
QUlMIHVuZGVmaW5lZDogc2VjLWZldGNoLW1vZGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNh
bWUtb3JpZ2luIiBidXQgZ290ICIiCi1GQUlMIHVuZGVmaW5lZDogc2VjLWZldGNoLXNpdGUgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgInNhbWUtb3JpZ2luIiBidXQgZ290ICIiCi1QQVNTIHVuZGVm
aW5lZDogc2VjLWZldGNoLXVzZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL3BhcnNpbmctbm9zbmlmZi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL25vc25pZmYvcGFyc2luZy1ub3NuaWZmLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNWQ5Y2Q5MjhhZmI2M2QzN2JhMTk1ZDg1M2FjYzk1ZWQwZDU0MzA2NC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvcGFyc2luZy1u
b3NuaWZmLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi1QQVNT
IFVSTCBxdWVyeTogZmlyc3QKLVBBU1MgVVJMIHF1ZXJ5OiB1cHBlcmNhc2UKLVBBU1MgVVJMIHF1
ZXJ5OiBsYXN0Ci1QQVNTIFVSTCBxdWVyeTogcXVvdGVkCi1QQVNTIFVSTCBxdWVyeTogcXVvdGVk
LXNpbmdsZQotUEFTUyBVUkwgcXVlcnk6IG5vLXgKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL3BhcnNpbmctbm9z
bmlmZi53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL3BhcnNpbmctbm9zbmlmZi53aW5kb3ctZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2M2U1YWI2Y2EyMjlhMWMzMWYz
NGZmNjE2ZjEzYzMzMzFiMGQxMjhmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvbm9zbmlmZi9wYXJzaW5nLW5vc25pZmYud2luZG93LWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE3ICswLDAgQEAKLQotUEFTUyBMb2FkaW5nIEpTT07igKYKLVBBU1MgWC1D
b250ZW50LVR5cGUtT3B0aW9ucyUzQSUyME5PU05JRkYKLVBBU1MgeC1jb250ZW50LXR5cGUtT1BU
SU9OUyUzQSUyMG5vc25pZmYKLVBBU1MgWC1Db250ZW50LVR5cGUtT3B0aW9ucyUzQSUyMG5vc25p
ZmYlMkMlMkMlNDAlMjMlMjQlMjMlMjUlMjUlMjYlNUUlMjYlNUUqKCkoKTExIQotUEFTUyBYLUNv
bnRlbnQtVHlwZS1PcHRpb25zJTNBJTIwJTQwJTIzJTI0JTIzJTI1JTI1JTI2JTVFJTI2JTVFKigp
KCkxMSElMkNub3NuaWZmCi1QQVNTIFgtQ29udGVudC1UeXBlLU9wdGlvbnMlM0ElMjBub3NuaWZm
JTBEJTBBWC1Db250ZW50LVR5cGUtT3B0aW9ucyUzQSUyMG5vCi1QQVNTIFgtQ29udGVudC1UeXBl
LU9wdGlvbnMlM0ElMjBubyUwRCUwQVgtQ29udGVudC1UeXBlLU9wdGlvbnMlM0ElMjBub3NuaWZm
Ci1QQVNTIFgtQ29udGVudC1UeXBlLU9wdGlvbnMlM0ElMEQlMEFYLUNvbnRlbnQtVHlwZS1PcHRp
b25zJTNBJTIwbm9zbmlmZgotUEFTUyBYLUNvbnRlbnQtVHlwZS1PcHRpb25zJTNBJTIwJTJDbm9z
bmlmZgotRkFJTCBYLUNvbnRlbnQtVHlwZS1PcHRpb25zJTNBJTIwbm9zbmlmZiUwQyBhc3NlcnRf
dW5yZWFjaGVkOiBTY3JpcHQgc2hvdWxkIGhhdmUgbG9hZGVkIFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQotRkFJTCBYLUNvbnRlbnQtVHlwZS1PcHRpb25zJTNBJTIwbm9zbmlmZiUwQiBhc3NlcnRf
dW5yZWFjaGVkOiBTY3JpcHQgc2hvdWxkIGhhdmUgbG9hZGVkIFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQotUEFTUyBYLUNvbnRlbnQtVHlwZS1PcHRpb25zJTNBJTIwbm9zbmlmZiUwQiUyQ25vc25p
ZmYKLVBBU1MgWC1Db250ZW50LVR5cGUtT3B0aW9ucyUzQSUyMCdOb3NuaUZGJwotUEFTUyBYLUNv
bnRlbnQtVHlwZS1PcHRpb25zJTNBJTIwJTIybm9zbmlGRiUyMgotUEFTUyBDb250ZW50LVR5cGUt
T3B0aW9ucyUzQSUyMG5vc25pZmYKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9vcmlnaW4vcmVzb3VyY2VzL3JlZGlyZWN0LWFu
ZC1zdGFzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvb3JpZ2luL3Jlc291cmNlcy9yZWRpcmVjdC1hbmQtc3Rhc2gucHkKaW5kZXggYWE5ZWIz
NWRiMmJkZGI1OWFjYjFjN2ViY2JiOTcxYWIzOGQzNDRiOS4uOWJmOWUxZjE4YzJiMTcxYmQ4OTFi
OTI3NmUxYzQwZDU0OWI4NTM5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9vcmlnaW4vcmVzb3VyY2VzL3JlZGlyZWN0LWFuZC1z
dGFzaC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL29yaWdpbi9yZXNvdXJjZXMvcmVkaXJlY3QtYW5kLXN0YXNoLnB5CkBAIC0xLDMwICsx
LDMyIEBACiBpbXBvcnQganNvbgogCitmcm9tIHdwdHNlcnZlLnV0aWxzIGltcG9ydCBpc29tb3Jw
aGljX2RlY29kZQorCiBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAga2V5ID0gcmVx
dWVzdC5HRVQuZmlyc3QoInN0YXNoIikKLSAgICBvcmlnaW4gPSByZXF1ZXN0LmhlYWRlcnMuZ2V0
KCJvcmlnaW4iKQorICAgIGtleSA9IHJlcXVlc3QuR0VULmZpcnN0KGIic3Rhc2giKQorICAgIG9y
aWdpbiA9IHJlcXVlc3QuaGVhZGVycy5nZXQoYiJvcmlnaW4iKQogICAgIGlmIG9yaWdpbiBpcyBO
b25lOgotICAgICAgICBvcmlnaW4gPSAibm8gT3JpZ2luIGhlYWRlciIKKyAgICAgICAgb3JpZ2lu
ID0gYiJubyBPcmlnaW4gaGVhZGVyIgogCiAgICAgb3JpZ2luX2xpc3QgPSByZXF1ZXN0LnNlcnZl
ci5zdGFzaC50YWtlKGtleSkKIAotICAgIGlmICJkdW1wIiBpbiByZXF1ZXN0LkdFVDoKLSAgICAg
ICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qc29u
IikKKyAgICBpZiBiImR1bXAiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICByZXNwb25zZS5oZWFk
ZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIiYXBwbGljYXRpb24vanNvbiIpCiAgICAgICAgIHJl
c3BvbnNlLmNvbnRlbnQgPSBqc29uLmR1bXBzKG9yaWdpbl9saXN0KQogICAgICAgICByZXR1cm4K
IAogICAgIGlmIG9yaWdpbl9saXN0IGlzIE5vbmU6Ci0gICAgICAgIG9yaWdpbl9saXN0ID0gW29y
aWdpbl0KKyAgICAgICAgb3JpZ2luX2xpc3QgPSBbaXNvbW9ycGhpY19kZWNvZGUob3JpZ2luKV0K
ICAgICBlbHNlOgotICAgICAgICBvcmlnaW5fbGlzdC5hcHBlbmQob3JpZ2luKQorICAgICAgICBv
cmlnaW5fbGlzdC5hcHBlbmQoaXNvbW9ycGhpY19kZWNvZGUob3JpZ2luKSkKIAogICAgIHJlcXVl
c3Quc2VydmVyLnN0YXNoLnB1dChrZXksIG9yaWdpbl9saXN0KQogCi0gICAgaWYgImxvY2F0aW9u
IiBpbiByZXF1ZXN0LkdFVDoKKyAgICBpZiBiImxvY2F0aW9uIiBpbiByZXF1ZXN0LkdFVDoKICAg
ICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gMzA4Ci0gICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KCJMb2NhdGlvbiIsIHJlcXVlc3QuR0VULmZpcnN0KCJsb2NhdGlvbiIpKQorICAgICAgICByZXNw
b25zZS5oZWFkZXJzLnNldChiIkxvY2F0aW9uIiwgcmVxdWVzdC5HRVQuZmlyc3QoYiJsb2NhdGlv
biIpKQogICAgICAgICByZXR1cm4KIAotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50
LVR5cGUiLCAidGV4dC9odG1sIikKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luIiwgIioiKQotICAgIHJlc3BvbnNlLmNvbnRlbnQgPSAiPG1ldGEg
Y2hhcnNldD11dGYtOD5cbjxib2R5PjxzY3JpcHQ+cGFyZW50LnBvc3RNZXNzYWdlKCdsb2FkZWQn
LCcqJyk8L3NjcmlwdD48L2JvZHk+IgorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVu
dC1UeXBlIiwgYiJ0ZXh0L2h0bWwiKQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQWNjZXNz
LUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgYiIqIikKKyAgICByZXNwb25zZS5jb250ZW50ID0gYiI8
bWV0YSBjaGFyc2V0PXV0Zi04PlxuPGJvZHk+PHNjcmlwdD5wYXJlbnQucG9zdE1lc3NhZ2UoJ2xv
YWRlZCcsJyonKTwvc2NyaXB0PjwvYm9keT4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL29yaWdpbi9yZXNvdXJjZXMvcmVmZXJy
ZXItcG9saWN5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9vcmlnaW4vcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS5weQppbmRleCAyMmI3MWUz
M2I1NDE2MGM0NTFmMWJiZmM4YTE1NzYwMGVlYjcwNTlmLi4xNTcxNmUwNjhiOWUzZmQzNzZiOTk1
MzczYmNkOWM0YWY2ZmU3NTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL29yaWdpbi9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvb3JpZ2luL3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3kucHkKQEAgLTEsNyArMSw3IEBACiBk
ZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgaWYgInJlZmVycmVyUG9saWN5IiBpbiBy
ZXF1ZXN0LkdFVDoKLSAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIlJlZmVycmVyLVBvbGlj
eSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuR0VULmZpcnN0KCJyZWZl
cnJlclBvbGljeSIpKQorICAgIGlmIGIicmVmZXJyZXJQb2xpY3kiIGluIHJlcXVlc3QuR0VUOgor
ICAgICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIlJlZmVycmVyLVBvbGljeSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuR0VULmZpcnN0KGIicmVmZXJyZXJQb2xpY3ki
KSkKICAgICByZXNwb25zZS5zdGF0dXMgPSAyMDAKLSAgICByZXNwb25zZS5oZWFkZXJzLnNldCgi
Q29udGVudC1UeXBlIiwgInRleHQvaHRtbCIpCi0gICAgcmVzcG9uc2UuY29udGVudCA9ICI8bWV0
YSBjaGFyc2V0PXV0Zi04PlxuPGJvZHk+PHNjcmlwdD5wYXJlbnQucG9zdE1lc3NhZ2UoJ2FjdGlv
bicsJyonKTwvc2NyaXB0PjwvYm9keT4iCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250
ZW50LVR5cGUiLCBiInRleHQvaHRtbCIpCisgICAgcmVzcG9uc2UuY29udGVudCA9IGIiPG1ldGEg
Y2hhcnNldD11dGYtOD5cbjxib2R5PjxzY3JpcHQ+cGFyZW50LnBvc3RNZXNzYWdlKCdhY3Rpb24n
LCcqJyk8L3NjcmlwdD48L2JvZHk+IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5lcmFsLmFueS5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvZ2VuZXJh
bC5hbnkuanMKaW5kZXggNjU2YWMxY2VlYTI1MTFkOTYwY2RiMjFiMjVhMjg0NmViMDkyYjhjNC4u
ODA3OTFjMzg0N2VhYzc1MDExOTFiNDRlNTQxZDg1ZjViOGYyOTNiNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9nZW5l
cmFsLmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3JhbmdlL2dlbmVyYWwuYW55LmpzCkBAIC0xLDMgKzEsNCBAQAorLy8gTUVUQTog
Z2xvYmFsPXdpbmRvdyx3b3JrZXIKIC8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCiAK
IC8vIEhlbHBlcnMgdGhhdCByZXR1cm4gaGVhZGVycyBvYmplY3RzIHdpdGggYSBwYXJ0aWN1bGFy
IGd1YXJkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3JhbmdlL3Jlc291cmNlcy9sb25nLXdhdi5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL2xvbmct
d2F2LnB5CmluZGV4IDhhZjJhY2E4YTk1OWIzOWM3Y2JkOTE3MDRlOTIyOGExMTlmMmIyZDguLmJl
N2RmN2I4M2Q4NzIzZmZkOGM5NzdkM2Y0YjVjNDJhMjNkNzkxOGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3Vy
Y2VzL2xvbmctd2F2LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvcmFuZ2UvcmVzb3VyY2VzL2xvbmctd2F2LnB5CkBAIC0xMTgsMTIgKzEx
OCwxMSBAQCBkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgYnl0ZXNfcmVtYWluaW5n
X3RvX3NlbmQgLT0gbGVuKGluaXRpYWxfd3JpdGUpCiAKICAgICB3aGlsZSBieXRlc19yZW1haW5p
bmdfdG9fc2VuZCA+IDA6Ci0gICAgICAgIGlmIG5vdCByZXNwb25zZS53cml0ZXIuZmx1c2goKToK
LSAgICAgICAgICAgIGJyZWFrCi0KICAgICAgICAgdG9fc2VuZCA9IGInXHgwMCcgKiBtaW4oYnl0
ZXNfcmVtYWluaW5nX3RvX3NlbmQsIHNhbXBsZV9yYXRlKQogICAgICAgICBieXRlc19yZW1haW5p
bmdfdG9fc2VuZCAtPSBsZW4odG9fc2VuZCkKIAotICAgICAgICByZXNwb25zZS53cml0ZXIud3Jp
dGUodG9fc2VuZCkKKyAgICAgICAgaWYgbm90IHJlc3BvbnNlLndyaXRlci53cml0ZSh0b19zZW5k
KToKKyAgICAgICAgICAgIGJyZWFrCisKICAgICAgICAgIyBUaHJvdHRsZSB0aGUgc3RyZWFtCiAg
ICAgICAgIHRpbWUuc2xlZXAoMC41KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS8zMDItZm91bmQt
cG9zdC1oYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS8zMDItZm91bmQtcG9zdC1oYW5kbGVyLnB5Cmlu
ZGV4IDIzYmY0YjJjNTIyYjdjMDBhYjZiZDBmYzNlYjk5ZjA3MzdkNTEyZWMuLjQwYTIyNGY2NTY1
YmFlM2UyYzRiMzJmNzdlMmJmNGZkNWQ1NDUxZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvMzAy
LWZvdW5kLXBvc3QtaGFuZGxlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JlZGlyZWN0LW5hdmlnYXRlLzMwMi1mb3VuZC1wb3N0LWhh
bmRsZXIucHkKQEAgLTEsMTMgKzEsMTUgQEAKK2Zyb20gd3B0c2VydmUudXRpbHMgaW1wb3J0IGlz
b21vcnBoaWNfZW5jb2RlCisKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICBpZiBy
ZXF1ZXN0Lm1ldGhvZCA9PSAiUE9TVCI6CisgICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gdSJQT1NU
IjoKICAgICAgICAgcmVzcG9uc2UuYWRkX3JlcXVpcmVkX2hlYWRlcnMgPSBGYWxzZQogICAgICAg
ICByZXNwb25zZS53cml0ZXIud3JpdGVfc3RhdHVzKDMwMikKLSAgICAgICAgcmVzcG9uc2Uud3Jp
dGVyLndyaXRlX2hlYWRlcigiTG9jYXRpb24iLCByZXF1ZXN0LnVybCkKKyAgICAgICAgcmVzcG9u
c2Uud3JpdGVyLndyaXRlX2hlYWRlcihiIkxvY2F0aW9uIiwgaXNvbW9ycGhpY19lbmNvZGUocmVx
dWVzdC51cmwpKQogICAgICAgICByZXNwb25zZS53cml0ZXIuZW5kX2hlYWRlcnMoKQotICAgICAg
ICByZXNwb25zZS53cml0ZXIud3JpdGUoIiIpCi0gICAgZWxpZiByZXF1ZXN0Lm1ldGhvZCA9PSAi
R0VUIjoKLSAgICAgICAgcmV0dXJuIChbKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpXSwK
LSAgICAgICAgICAgICAgICAiT0siKQorICAgICAgICByZXNwb25zZS53cml0ZXIud3JpdGUoYiIi
KQorICAgIGVsaWYgcmVxdWVzdC5tZXRob2QgPT0gdSJHRVQiOgorICAgICAgICByZXR1cm4gKFso
YiJDb250ZW50LVR5cGUiLCBiInRleHQvcGxhaW4iKV0sCisgICAgICAgICAgICAgICAgYiJPSyIp
CiAgICAgZWxzZToKLSAgICAgICAgcmV0dXJuIChbKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFp
biIpXSwKLSAgICAgICAgICAgICAgICAiRkFJTCIpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQorICAgICAgICByZXR1cm4gKFsoYiJDb250ZW50LVR5cGUiLCBiInRleHQvcGxhaW4iKV0sCisg
ICAgICAgICAgICAgICAgYiJGQUlMIikKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3JlZGlyZWN0LW5hdmlnYXRlL3ByZXNlcnZlLWZyYWdtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmVkaXJlY3QtbmF2
aWdhdGUvcHJlc2VydmUtZnJhZ21lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5MjQ1YTc0MjA3YTA4NzRjZDRkNTM5YmZiYzFiNjliMDBiOTAyMTkwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvcHJl
c2VydmUtZnJhZ21lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAg
QEAKLQotCi1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzAx
IHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4g
MzAyIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQg
aW4gMzAzIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21l
bnQgaW4gMzA3IHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJh
Z21lbnQgaW4gMzA4IHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUmVkaXJlY3Qg
VVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzAxIHJlZGlyZWN0Ci1QQVNTIFtIVFRQ
IC0gU2FtZU9yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4g
MzAyIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdt
ZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzAzIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9y
aWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzA3IHJlZGly
ZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2Vz
IHByZWNlZGVuY2UgaW4gMzA4IHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJl
c2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAxIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNh
bWVPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMKLVBB
U1MgW0hUVFAgLSBTYW1lT3JpZ2luXSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAzMDMg
cmVkaXJlY3RzCi1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4g
bXVsdGlwbGUgMzA3IHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNhbWVPcmlnaW5dIFByZXNlcnZl
IGZyYWdtZW50IGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMKLVBBU1MgW0hUVFAgLSBTYW1lT3Jp
Z2luXSBEZXN0aW5hdGlvbiBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiBtdWx0aXBs
ZSAzMDEgcmVkaXJlY3RzCi1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gRGVzdGluYXRpb24gVVJM
IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzAyIHJlZGlyZWN0cwotUEFT
UyBbSFRUUCAtIFNhbWVPcmlnaW5dIERlc3RpbmF0aW9uIFVSTCBmcmFnbWVudCB0YWtlcyBwcmVj
ZWRlbmNlIGluIG11bHRpcGxlIDMwMyByZWRpcmVjdHMKLVBBU1MgW0hUVFAgLSBTYW1lT3JpZ2lu
XSBEZXN0aW5hdGlvbiBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiBtdWx0aXBsZSAz
MDcgcmVkaXJlY3RzCi1QQVNTIFtIVFRQIC0gU2FtZU9yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZy
YWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzA4IHJlZGlyZWN0cwotUEFTUyBb
SFRUUCAtIFNhbWVPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVu
Y2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzAxIHJlZGlyZWN0cwotUEFTUyBbSFRU
UCAtIFNhbWVPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ug
b3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzAyIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAt
IFNhbWVPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3Zl
ciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzAzIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNh
bWVPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBp
bnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzA3IHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIFNhbWVP
cmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRl
cm1lZGlhdGUgaW4gbXVsdGlwbGUgMzA4IHJlZGlyZWN0cwotRkFJTCBbSFRUUCAtIFNhbWVPcmln
aW5dIFByZXNlcnZlIGludGVybWVkaWF0ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAzMDEgcmVkaXJl
Y3RzIGFzc2VydF90cnVlOiBVbmV4cGVjdGVkIGZyYWdtZW50OiBodHRwOi8vbG9jYWxob3N0Ojg4
MDAvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvcmVzb3VyY2VzL2Rlc3RpbmF0aW9uLmh0bWwjdGFy
Z2V0IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJl
c2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMgYXNz
ZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9mZXRj
aC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgW0hUVFAgLSBTYW1lT3JpZ2luXSBQcmVzZXJ2ZSBp
bnRlcm1lZGlhdGUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAzIHJlZGlyZWN0cyBhc3NlcnRfdHJ1
ZTogVW5leHBlY3RlZCBmcmFnbWVudDogaHR0cDovL2xvY2FsaG9zdDo4ODAwL2ZldGNoL3JlZGly
ZWN0LW5hdmlnYXRlL3Jlc291cmNlcy9kZXN0aW5hdGlvbi5odG1sI3RhcmdldCBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBbSFRUUCAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGludGVybWVk
aWF0ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAzMDcgcmVkaXJlY3RzIGFzc2VydF90cnVlOiBVbmV4
cGVjdGVkIGZyYWdtZW50OiBodHRwOi8vbG9jYWxob3N0Ojg4MDAvZmV0Y2gvcmVkaXJlY3QtbmF2
aWdhdGUvcmVzb3VyY2VzL2Rlc3RpbmF0aW9uLmh0bWwjdGFyZ2V0IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCi1GQUlMIFtIVFRQIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZy
YWdtZW50IGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQg
ZnJhZ21lbnQ6IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9y
ZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
LVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzAxIHJlZGly
ZWN0Ci1QQVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIDMwMiBy
ZWRpcmVjdAotUEFTUyBbSFRUUFMgLSBTYW1lT3JpZ2luXSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiAz
MDMgcmVkaXJlY3QKLVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQg
aW4gMzA3IHJlZGlyZWN0Ci1QQVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGZyYWdt
ZW50IGluIDMwOCByZWRpcmVjdAotUEFTUyBbSFRUUFMgLSBTYW1lT3JpZ2luXSBSZWRpcmVjdCBV
UkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiAzMDEgcmVkaXJlY3QKLVBBU1MgW0hUVFBT
IC0gU2FtZU9yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4g
MzAyIHJlZGlyZWN0Ci1QQVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIFJlZGlyZWN0IFVSTCBmcmFn
bWVudCB0YWtlcyBwcmVjZWRlbmNlIGluIDMwMyByZWRpcmVjdAotUEFTUyBbSFRUUFMgLSBTYW1l
T3JpZ2luXSBSZWRpcmVjdCBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiAzMDcgcmVk
aXJlY3QKLVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRh
a2VzIHByZWNlZGVuY2UgaW4gMzA4IHJlZGlyZWN0Ci1QQVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5d
IFByZXNlcnZlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwMSByZWRpcmVjdHMKLVBBU1MgW0hUVFBT
IC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAyIHJlZGlyZWN0
cwotUEFTUyBbSFRUUFMgLSBTYW1lT3JpZ2luXSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiBtdWx0aXBs
ZSAzMDMgcmVkaXJlY3RzCi1QQVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIFByZXNlcnZlIGZyYWdt
ZW50IGluIG11bHRpcGxlIDMwNyByZWRpcmVjdHMKLVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0g
UHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzA4IHJlZGlyZWN0cwotUEFTUyBbSFRUUFMg
LSBTYW1lT3JpZ2luXSBEZXN0aW5hdGlvbiBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBp
biBtdWx0aXBsZSAzMDEgcmVkaXJlY3RzCi1QQVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIERlc3Rp
bmF0aW9uIFVSTCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGluIG11bHRpcGxlIDMwMiByZWRp
cmVjdHMKLVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50
IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzAzIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMg
LSBTYW1lT3JpZ2luXSBEZXN0aW5hdGlvbiBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBp
biBtdWx0aXBsZSAzMDcgcmVkaXJlY3RzCi1QQVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIERlc3Rp
bmF0aW9uIFVSTCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGluIG11bHRpcGxlIDMwOCByZWRp
cmVjdHMKLVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0gRmluYWwgcmVkaXJlY3QgZnJhZ21lbnQg
dGFrZXMgcHJlY2VkZW5jZSBvdmVyIGludGVybWVkaWF0ZSBpbiBtdWx0aXBsZSAzMDEgcmVkaXJl
Y3RzCi1QQVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRh
a2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzAyIHJlZGlyZWN0
cwotUEFTUyBbSFRUUFMgLSBTYW1lT3JpZ2luXSBGaW5hbCByZWRpcmVjdCBmcmFnbWVudCB0YWtl
cyBwcmVjZWRlbmNlIG92ZXIgaW50ZXJtZWRpYXRlIGluIG11bHRpcGxlIDMwMyByZWRpcmVjdHMK
LVBBU1MgW0hUVFBTIC0gU2FtZU9yaWdpbl0gRmluYWwgcmVkaXJlY3QgZnJhZ21lbnQgdGFrZXMg
cHJlY2VkZW5jZSBvdmVyIGludGVybWVkaWF0ZSBpbiBtdWx0aXBsZSAzMDcgcmVkaXJlY3RzCi1Q
QVNTIFtIVFRQUyAtIFNhbWVPcmlnaW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHBy
ZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlwbGUgMzA4IHJlZGlyZWN0cwotRkFJ
TCBbSFRUUFMgLSBTYW1lT3JpZ2luXSBQcmVzZXJ2ZSBpbnRlcm1lZGlhdGUgZnJhZ21lbnQgaW4g
bXVsdGlwbGUgMzAxIHJlZGlyZWN0cyBhc3NlcnRfdHJ1ZTogVW5leHBlY3RlZCBmcmFnbWVudDog
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMv
ZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgW0hU
VFBTIC0gU2FtZU9yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRp
cGxlIDMwMiByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHBz
Oi8vbG9jYWxob3N0Ojk0NDMvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvcmVzb3VyY2VzL2Rlc3Rp
bmF0aW9uLmh0bWwjdGFyZ2V0IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFtIVFRQUyAt
IFNhbWVPcmlnaW5dIFByZXNlcnZlIGludGVybWVkaWF0ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAz
MDMgcmVkaXJlY3RzIGFzc2VydF90cnVlOiBVbmV4cGVjdGVkIGZyYWdtZW50OiBodHRwczovL2xv
Y2FsaG9zdDo5NDQzL2ZldGNoL3JlZGlyZWN0LW5hdmlnYXRlL3Jlc291cmNlcy9kZXN0aW5hdGlv
bi5odG1sI3RhcmdldCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBbSFRUUFMgLSBTYW1l
T3JpZ2luXSBQcmVzZXJ2ZSBpbnRlcm1lZGlhdGUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzA3IHJl
ZGlyZWN0cyBhc3NlcnRfdHJ1ZTogVW5leHBlY3RlZCBmcmFnbWVudDogaHR0cHM6Ly9sb2NhbGhv
c3Q6OTQ0My9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRt
bCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgW0hUVFBTIC0gU2FtZU9yaWdp
bl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwOCByZWRpcmVj
dHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvcmVzb3VyY2VzL2Rlc3RpbmF0aW9uLmh0bWwjdGFy
Z2V0IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIFBy
ZXNlcnZlIGZyYWdtZW50IGluIDMwMSByZWRpcmVjdAotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2lu
XSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiAzMDIgcmVkaXJlY3QKLVBBU1MgW0hUVFAgLSBDcm9zc09y
aWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzAzIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gQ3Jv
c3NPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIDMwNyByZWRpcmVjdAotUEFTUyBbSFRUUCAt
IENyb3NzT3JpZ2luXSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiAzMDggcmVkaXJlY3QKLVBBU1MgW0hU
VFAgLSBDcm9zc09yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ug
aW4gMzAxIHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIFJlZGlyZWN0IFVSTCBm
cmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGluIDMwMiByZWRpcmVjdAotUEFTUyBbSFRUUCAtIENy
b3NzT3JpZ2luXSBSZWRpcmVjdCBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiAzMDMg
cmVkaXJlY3QKLVBBU1MgW0hUVFAgLSBDcm9zc09yaWdpbl0gUmVkaXJlY3QgVVJMIGZyYWdtZW50
IHRha2VzIHByZWNlZGVuY2UgaW4gMzA3IHJlZGlyZWN0Ci1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmln
aW5dIFJlZGlyZWN0IFVSTCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGluIDMwOCByZWRpcmVj
dAotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2luXSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiBtdWx0aXBs
ZSAzMDEgcmVkaXJlY3RzCi1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIFByZXNlcnZlIGZyYWdt
ZW50IGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMKLVBBU1MgW0hUVFAgLSBDcm9zc09yaWdpbl0g
UHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAzIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAt
IENyb3NzT3JpZ2luXSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAzMDcgcmVkaXJlY3Rz
Ci1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIG11bHRpcGxl
IDMwOCByZWRpcmVjdHMKLVBBU1MgW0hUVFAgLSBDcm9zc09yaWdpbl0gRGVzdGluYXRpb24gVVJM
IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzAxIHJlZGlyZWN0cwotUEFT
UyBbSFRUUCAtIENyb3NzT3JpZ2luXSBEZXN0aW5hdGlvbiBVUkwgZnJhZ21lbnQgdGFrZXMgcHJl
Y2VkZW5jZSBpbiBtdWx0aXBsZSAzMDIgcmVkaXJlY3RzCi1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmln
aW5dIERlc3RpbmF0aW9uIFVSTCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGluIG11bHRpcGxl
IDMwMyByZWRpcmVjdHMKLVBBU1MgW0hUVFAgLSBDcm9zc09yaWdpbl0gRGVzdGluYXRpb24gVVJM
IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzA3IHJlZGlyZWN0cwotUEFT
UyBbSFRUUCAtIENyb3NzT3JpZ2luXSBEZXN0aW5hdGlvbiBVUkwgZnJhZ21lbnQgdGFrZXMgcHJl
Y2VkZW5jZSBpbiBtdWx0aXBsZSAzMDggcmVkaXJlY3RzCi1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmln
aW5dIEZpbmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1l
ZGlhdGUgaW4gbXVsdGlwbGUgMzAxIHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2lu
XSBGaW5hbCByZWRpcmVjdCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaW50ZXJtZWRp
YXRlIGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMKLVBBU1MgW0hUVFAgLSBDcm9zc09yaWdpbl0g
RmluYWwgcmVkaXJlY3QgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGludGVybWVkaWF0
ZSBpbiBtdWx0aXBsZSAzMDMgcmVkaXJlY3RzCi1QQVNTIFtIVFRQIC0gQ3Jvc3NPcmlnaW5dIEZp
bmFsIHJlZGlyZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUg
aW4gbXVsdGlwbGUgMzA3IHJlZGlyZWN0cwotUEFTUyBbSFRUUCAtIENyb3NzT3JpZ2luXSBGaW5h
bCByZWRpcmVjdCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaW50ZXJtZWRpYXRlIGlu
IG11bHRpcGxlIDMwOCByZWRpcmVjdHMKLUZBSUwgW0hUVFAgLSBDcm9zc09yaWdpbl0gUHJlc2Vy
dmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwMSByZWRpcmVjdHMgYXNzZXJ0
X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHA6Ly8xMjcuMC4wLjE6ODgwMC9mZXRjaC9y
ZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgW0hUVFAgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgaW50
ZXJtZWRpYXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMgYXNzZXJ0X3RydWU6
IFVuZXhwZWN0ZWQgZnJhZ21lbnQ6IGh0dHA6Ly8xMjcuMC4wLjE6ODgwMC9mZXRjaC9yZWRpcmVj
dC1uYXZpZ2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKLUZBSUwgW0hUVFAgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRp
YXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwMyByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhw
ZWN0ZWQgZnJhZ21lbnQ6IGh0dHA6Ly8xMjcuMC4wLjE6ODgwMC9mZXRjaC9yZWRpcmVjdC1uYXZp
Z2F0ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgW0hUVFAgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZy
YWdtZW50IGluIG11bHRpcGxlIDMwNyByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQg
ZnJhZ21lbnQ6IGh0dHA6Ly8xMjcuMC4wLjE6ODgwMC9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9y
ZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
LUZBSUwgW0hUVFAgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50
IGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21l
bnQ6IGh0dHA6Ly8xMjcuMC4wLjE6ODgwMC9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9yZXNvdXJj
ZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLVBBU1Mg
W0hUVFBTIC0gQ3Jvc3NPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGluIDMwMSByZWRpcmVjdAot
UEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gMzAyIHJlZGly
ZWN0Ci1QQVNTIFtIVFRQUyAtIENyb3NzT3JpZ2luXSBQcmVzZXJ2ZSBmcmFnbWVudCBpbiAzMDMg
cmVkaXJlY3QKLVBBU1MgW0hUVFBTIC0gQ3Jvc3NPcmlnaW5dIFByZXNlcnZlIGZyYWdtZW50IGlu
IDMwNyByZWRpcmVjdAotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgZnJhZ21l
bnQgaW4gMzA4IHJlZGlyZWN0Ci1QQVNTIFtIVFRQUyAtIENyb3NzT3JpZ2luXSBSZWRpcmVjdCBV
UkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiAzMDEgcmVkaXJlY3QKLVBBU1MgW0hUVFBT
IC0gQ3Jvc3NPcmlnaW5dIFJlZGlyZWN0IFVSTCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIGlu
IDMwMiByZWRpcmVjdAotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUmVkaXJlY3QgVVJMIGZy
YWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gMzAzIHJlZGlyZWN0Ci1QQVNTIFtIVFRQUyAtIENy
b3NzT3JpZ2luXSBSZWRpcmVjdCBVUkwgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBpbiAzMDcg
cmVkaXJlY3QKLVBBU1MgW0hUVFBTIC0gQ3Jvc3NPcmlnaW5dIFJlZGlyZWN0IFVSTCBmcmFnbWVu
dCB0YWtlcyBwcmVjZWRlbmNlIGluIDMwOCByZWRpcmVjdAotUEFTUyBbSFRUUFMgLSBDcm9zc09y
aWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAxIHJlZGlyZWN0cwotUEFTUyBb
SFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAyIHJl
ZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4g
bXVsdGlwbGUgMzAzIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2Vy
dmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzA3IHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9z
c09yaWdpbl0gUHJlc2VydmUgZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzA4IHJlZGlyZWN0cwotUEFT
UyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHBy
ZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzAxIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09y
aWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlw
bGUgMzAyIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gRGVzdGluYXRpb24g
VVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzAzIHJlZGlyZWN0cwot
UEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2Vz
IHByZWNlZGVuY2UgaW4gbXVsdGlwbGUgMzA3IHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9z
c09yaWdpbl0gRGVzdGluYXRpb24gVVJMIGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2UgaW4gbXVs
dGlwbGUgMzA4IHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gRmluYWwgcmVk
aXJlY3QgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGludGVybWVkaWF0ZSBpbiBtdWx0
aXBsZSAzMDEgcmVkaXJlY3RzCi1QQVNTIFtIVFRQUyAtIENyb3NzT3JpZ2luXSBGaW5hbCByZWRp
cmVjdCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaW50ZXJtZWRpYXRlIGluIG11bHRp
cGxlIDMwMiByZWRpcmVjdHMKLVBBU1MgW0hUVFBTIC0gQ3Jvc3NPcmlnaW5dIEZpbmFsIHJlZGly
ZWN0IGZyYWdtZW50IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBpbnRlcm1lZGlhdGUgaW4gbXVsdGlw
bGUgMzAzIHJlZGlyZWN0cwotUEFTUyBbSFRUUFMgLSBDcm9zc09yaWdpbl0gRmluYWwgcmVkaXJl
Y3QgZnJhZ21lbnQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGludGVybWVkaWF0ZSBpbiBtdWx0aXBs
ZSAzMDcgcmVkaXJlY3RzCi1QQVNTIFtIVFRQUyAtIENyb3NzT3JpZ2luXSBGaW5hbCByZWRpcmVj
dCBmcmFnbWVudCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgaW50ZXJtZWRpYXRlIGluIG11bHRpcGxl
IDMwOCByZWRpcmVjdHMKLUZBSUwgW0hUVFBTIC0gQ3Jvc3NPcmlnaW5dIFByZXNlcnZlIGludGVy
bWVkaWF0ZSBmcmFnbWVudCBpbiBtdWx0aXBsZSAzMDEgcmVkaXJlY3RzIGFzc2VydF90cnVlOiBV
bmV4cGVjdGVkIGZyYWdtZW50OiBodHRwczovLzEyNy4wLjAuMTo5NDQzL2ZldGNoL3JlZGlyZWN0
LW5hdmlnYXRlL3Jlc291cmNlcy9kZXN0aW5hdGlvbi5odG1sI3RhcmdldCBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRp
YXRlIGZyYWdtZW50IGluIG11bHRpcGxlIDMwMiByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhw
ZWN0ZWQgZnJhZ21lbnQ6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvZmV0Y2gvcmVkaXJlY3QtbmF2
aWdhdGUvcmVzb3VyY2VzL2Rlc3RpbmF0aW9uLmh0bWwjdGFyZ2V0IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCi1GQUlMIFtIVFRQUyAtIENyb3NzT3JpZ2luXSBQcmVzZXJ2ZSBpbnRlcm1lZGlhdGUg
ZnJhZ21lbnQgaW4gbXVsdGlwbGUgMzAzIHJlZGlyZWN0cyBhc3NlcnRfdHJ1ZTogVW5leHBlY3Rl
ZCBmcmFnbWVudDogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0
ZS9yZXNvdXJjZXMvZGVzdGluYXRpb24uaHRtbCN0YXJnZXQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgW0hUVFBTIC0gQ3Jvc3NPcmlnaW5dIFByZXNlcnZlIGludGVybWVkaWF0ZSBmcmFn
bWVudCBpbiBtdWx0aXBsZSAzMDcgcmVkaXJlY3RzIGFzc2VydF90cnVlOiBVbmV4cGVjdGVkIGZy
YWdtZW50OiBodHRwczovLzEyNy4wLjAuMTo5NDQzL2ZldGNoL3JlZGlyZWN0LW5hdmlnYXRlL3Jl
c291cmNlcy9kZXN0aW5hdGlvbi5odG1sI3RhcmdldCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCBbSFRUUFMgLSBDcm9zc09yaWdpbl0gUHJlc2VydmUgaW50ZXJtZWRpYXRlIGZyYWdtZW50
IGluIG11bHRpcGxlIDMwOCByZWRpcmVjdHMgYXNzZXJ0X3RydWU6IFVuZXhwZWN0ZWQgZnJhZ21l
bnQ6IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvZmV0Y2gvcmVkaXJlY3QtbmF2aWdhdGUvcmVzb3Vy
Y2VzL2Rlc3RpbmF0aW9uLmh0bWwjdGFyZ2V0IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc2VjLW1ldGFkYXRhL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL1JFQURNRS5tZApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYzQ2MGFhMWVjYjk0MTExOGI2OTk5MjA5YmE0NjAxZWIxNDVhNjFi
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9S
RUFETUUubWQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1gU2VjLU1ldGFkYXRhYCBU
ZXN0cwotPT09PT09PT09PT09PT09PT09PT0KLQotVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgdGVz
dHMgcmVsYXRlZCB0byB0aGUgYFNlYy1NZXRhZGF0YWAgcHJvcG9zYWw6Ci0KLTogICBFeHBsYWlu
ZXIKLTo6ICA8aHR0cHM6Ly9naXRodWIuY29tL21pa2V3ZXN0L3NlYy1tZXRhZGF0YT4KLTogICAi
U3BlYyIKLTo6ICA8aHR0cHM6Ly9taWtld2VzdC5naXRodWIuaW8vc2VjLW1ldGFkYXRhLz4KLQot
Tm90ZTogQWxsIG9mIHRoaXMgaXMgdGVudGF0aXZlLCBhbmQgd2lsbCBjaGFuZ2UgKHJhcGlkbHkp
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9zZWMtbWV0YWRhdGEvZW1iZWQudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Nl
Yy1tZXRhZGF0YS9lbWJlZC50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTAwMzYxM2IyYzljZGExZmU4ODA4NjMxNTBmZmZlZTA4
ZjkzYjIzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRh
ZGF0YS9lbWJlZC50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDggKzAsMCBAQAotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0g
bnVsbAotCi1USU1FT1VUIFNhbWUtT3JpZ2luIGVtYmVkIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4g
U2FtZS1TaXRlIGVtYmVkCi1OT1RSVU4gQ3Jvc3MtU2l0ZSBlbWJlZAotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRh
ZGF0YS9lbWJlZC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9lbWJlZC50ZW50YXRp
dmUuaHR0cHMuc3ViLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0NWVmNDJk
NDg0ZjUyNThmNDZmZmM2ZWU5NDQ3ZmU1ZDhkM2MxNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvZW1iZWQudGVudGF0aXZlLmh0dHBzLnN1Yi5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0
YSBjaGFyc2V0PSJ1dGYtOCIvPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im10cnpvc0Bnb29n
bGUuY29tIiB0aXRsZT0iTWFjaWVrIFRyem9zIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNv
dXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0PgotICBwcm9taXNlX3Rl
c3QodCA9PiB7Ci0gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
LSAgICAgIGxldCBrZXkgPSAiZW1iZWQtc2FtZS1vcmlnaW4iOwotCi0gICAgICBsZXQgZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2VtYmVkJyk7Ci0gICAgICBlLnNyYyA9ICJodHRwczovL3t7
aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9y
ZWNvcmQtaGVhZGVyLnB5P2ZpbGU9IiArIGtleTsKLSAgICAgIGUub25sb2FkID0gZSA9PiB7Ci0g
ICAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJlbWJlZCIsICJzaXRlIjoic2Ft
ZS1vcmlnaW4ifTsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2Vz
L3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAg
LnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQg
PT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVu
KF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAg
ICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0gIH0s
ICJTYW1lLU9yaWdpbiBlbWJlZCIpOwotCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJl
bWJlZC1zYW1lLXNpdGUiOwotCi0gICAgICBsZXQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2VtYmVkJyk7Ci0gICAgICBlLnNyYyA9ICJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0
c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIu
cHk/ZmlsZT0iICsga2V5OwotICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAgICAgICAgbGV0IGV4
cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6ImVtYmVkIiwgInNpdGUiOiJzYW1lLXNpdGUifTsKLSAg
ICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIu
cHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2Ug
PT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRl
cl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgp
KQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotCi0gICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0gIH0sICJTYW1lLVNpdGUgZW1i
ZWQiKTsKLQotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAgIGxldCBrZXkgPSAiZW1iZWQtY3Jvc3Mtc2l0ZSI7
Ci0KLSAgICAgIGxldCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZW1iZWQnKTsKLSAgICAg
IGUuc3JjID0gImh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBr
ZXk7Ci0gICAgICBlLm9ubG9hZCA9IGUgPT4gewotICAgICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRl
c3RpbmF0aW9uIjoiZW1iZWQiLCAic2l0ZSI6ImNyb3NzLXNpdGUifTsKLSAgICAgICAgZmV0Y2go
Ii9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9
dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2Uu
dGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4
dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAg
IC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0gIH0sICJDcm9zcy1TaXRlIGVtYmVkIik7Ci08L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2ZldGNoLnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zZWMtbWV0YWRhdGEvZmV0Y2gudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1Y2Y5OGRjN2Q5Y2Q2MzBhODg4ZDYxY2FmNjM3
N2IzMjdmNTUzYjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMt
bWV0YWRhdGEvZmV0Y2gudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw5ICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
czovL3d3dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8t
YXMtanNvbi5weQotQ09OU09MRSBNRVNTQUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6
Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFz
LWpzb24ucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Q6OTQ0My9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weQotQ09OU09MRSBNRVNTQUdF
OiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly93d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0
Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkgZHVlIHRv
IGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLQotRkFJTCBTYW1lLW9yaWdpbiBmZXRjaCBhc3NlcnRf
bm90X2VxdWFsczogRW1wdHkgU2VjLU1ldGFkYXRhIGhlYWRlci4gZ290IGRpc2FsbG93ZWQgdmFs
dWUgIiIKLUZBSUwgU2FtZS1zaXRlIGZldGNoIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgQ3Jv
c3Mtc2l0ZSBmZXRjaCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2Zl
dGNoLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2ZldGNoLnRlbnRhdGl2ZS5odHRw
cy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDE4MDQyY2E5OGIwODNj
YjdlYmU3YjQyMDcwYWZlNDdkYWE0YjQ3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9mZXRjaC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3Nl
Yy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAgcHJv
bWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBmZXRjaCgiaHR0cHM6Ly97e2hvc3R9fTp7e3Bv
cnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29u
LnB5IikKLSAgICAgICAgLnRoZW4ociA9PiByLmpzb24oKSkKLSAgICAgICAgLnRoZW4oaiA9PiB7
Ci0gICAgICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoai5oZWFkZXIsIHsKLSAgICAgICAgICAg
ICJjYXVzZSI6IHVuZGVmaW5lZCwKLSAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICJlbXB0eSIs
Ci0gICAgICAgICAgICAic2l0ZSI6ICJzYW1lLW9yaWdpbiIKLSAgICAgICAgICB9KTsKLSAgICAg
ICAgfSk7Ci0gIH0sICJTYW1lLW9yaWdpbiBmZXRjaCIpOwotCi0gIHByb21pc2VfdGVzdCh0ID0+
IHsKLSAgICByZXR1cm4gZmV0Y2goImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0
dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1qc29uLnB5IikK
LSAgICAgICAgLnRoZW4ociA9PiByLmpzb24oKSkKLSAgICAgICAgLnRoZW4oaiA9PiB7Ci0gICAg
ICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoai5oZWFkZXIsIHsKLSAgICAgICAgICAgICJjYXVz
ZSI6IHVuZGVmaW5lZCwKLSAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICJlbXB0eSIsCi0gICAg
ICAgICAgICAic2l0ZSI6ICJzYW1lLXNpdGUiCi0gICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwot
ICB9LCAiU2FtZS1zaXRlIGZldGNoIik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJl
dHVybiBmZXRjaCgiaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBd
fX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLWpzb24ucHkiKQotICAgICAg
ICAudGhlbihyID0+IHIuanNvbigpKQotICAgICAgICAudGhlbihqID0+IHsKLSAgICAgICAgICBh
c3NlcnRfaGVhZGVyX2VxdWFscyhqLmhlYWRlciwgewotICAgICAgICAgICAgImNhdXNlIjogdW5k
ZWZpbmVkLAotICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogImVtcHR5IiwKLSAgICAgICAgICAg
ICJzaXRlIjogImNyb3NzLXNpdGUiCi0gICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICB9LCAi
Q3Jvc3Mtc2l0ZSBmZXRjaCIpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9mb250LnRl
bnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvZm9udC50ZW50YXRpdmUuaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDYxZDU3
MWVmOTUzMjM1YWY1MWU3MzQ3MGE0ZmMzMjRhNmI0MjNmZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9mb250LnRlbnRhdGl2ZS5odHRwcy5zdWIt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL3NlYy1t
ZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPWZvbnQtc2FtZS1zaXRlCi1C
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubm90LXdlYi1wbGF0Zm9y
bS50ZXN0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5
P2ZpbGU9Zm9udC1jcm9zcy1zaXRlCi0xCi0yCi0zCi0KLUZBSUwgU2FtZS1PcmlnaW4gZm9udCBh
c3NlcnRfZXF1YWxzOiBkZXN0aW5hdGlvbiBleHBlY3RlZCAoc3RyaW5nKSAiZm9udCIgYnV0IGdv
dCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgU2FtZS1TaXRlIGZvbnQgYXNzZXJ0X2VxdWFs
czogZGVzdGluYXRpb24gZXhwZWN0ZWQgKHN0cmluZykgImZvbnQiIGJ1dCBnb3QgKHVuZGVmaW5l
ZCkgdW5kZWZpbmVkCi1GQUlMIENyb3NzLVNpdGUgZm9udCBhc3NlcnRfZXF1YWxzOiBkZXN0aW5h
dGlvbiBleHBlY3RlZCAoc3RyaW5nKSAiZm9udCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmlu
ZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvZm9udC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRh
ZGF0YS9mb250LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMGE3NTUzMWM0MDVmYzZkYjMzMjBjYWVjNTU2N2JlYzFhYzM4Yzc2My4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9mb250LnRlbnRh
dGl2ZS5odHRwcy5zdWIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibXRyem9zQGdvb2ds
ZS5jb20iIHRpdGxlPSJNYWNpZWsgVHJ6b3MiPgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291
cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci08Ym9keT4KLSAgPGRpdiBpZD0idGVzdDEiPjE8L2Rp
dj4KLSAgPGRpdiBpZD0idGVzdDIiPjI8L2Rpdj4KLSAgPGRpdiBpZD0idGVzdDMiPjM8L2Rpdj4K
LSAgPCEtLSBTYW1lLU9yaWdpbiByZXF1ZXN0IC0tPgotICA8c3R5bGU+Ci0gICAgQGZvbnQtZmFj
ZSB7Ci0gICAgICBmb250LWZhbWlseTogbXlGaXJzdEZvbnQ7Ci0gICAgICBzcmM6IHVybChodHRw
czovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291
cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9Zm9udC1zYW1lLW9yaWdpbik7Ci0gICAgfQotICAg
ICN0ZXN0MSB7Ci0gICAgICBmb250LWZhbWlseTogbXlGaXJzdEZvbnQ7Ci0gICAgfQotICA8L3N0
eWxlPgotCi0gIDwhLS0gU2FtZS1TaXRlIHJlcXVlc3QgLS0+Ci0gIDxzdHlsZT4KLSAgICBAZm9u
dC1mYWNlIHsKLSAgICAgIGZvbnQtZmFtaWx5OiBteVNlY29uZEZvbnQ7Ci0gICAgICBzcmM6IHVy
bChodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMt
bWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1mb250LXNhbWUtc2l0ZSk7
Ci0gICAgfQotICAgICN0ZXN0MiB7Ci0gICAgICBmb250LWZhbWlseTogbXlTZWNvbmRGb250Owot
ICAgIH0KLSAgPC9zdHlsZT4KLQotICA8IS0tIENyb3NzLVNpdGUgcmVxdWVzdCAtLT4KLSAgPHN0
eWxlPgotICAgIEBmb250LWZhY2UgewotICAgICAgZm9udC1mYW1pbHk6IG15VGhpcmRGb250Owot
ICAgICAgc3JjOiB1cmwoaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNd
WzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9
Zm9udC1jcm9zcy1zaXRlKTsKLSAgICB9Ci0gICAgI3Rlc3QzIHsKLSAgICAgIGZvbnQtZmFtaWx5
OiBteVRoaXJkRm9udDsKLSAgICB9Ci0gIDwvc3R5bGU+Ci08L2JvZHk+Ci08c2NyaXB0PgotICBk
b2N1bWVudC5mb250cy5yZWFkeS50aGVuKGZ1bmN0aW9uICgpIHsKLSAgICBwcm9taXNlX3Rlc3Qo
dCA9PiB7Ci0gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewot
ICAgICAgICBsZXQga2V5ID0gImZvbnQtc2FtZS1vcmlnaW4iOwotICAgICAgICBsZXQgZXhwZWN0
ZWQgPSB7ImRlc3RpbmF0aW9uIjoiZm9udCIsICJzaXRlIjoic2FtZS1vcmlnaW4ifTsKLSAgICAg
ICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/
cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4g
cmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9l
cXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQot
ICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICAgIH0pOwotICAgIH0sICJT
YW1lLU9yaWdpbiBmb250Iik7Ci0KLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICBsZXQga2V5ID0g
ImZvbnQtc2FtZS1zaXRlIjsKLSAgICAgICAgbGV0IGV4cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6
ImZvbnQiLCAic2l0ZSI6InNhbWUtc2l0ZSJ9OwotICAgICAgICBmZXRjaCgiL2ZldGNoL3NlYy1t
ZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9IiAr
IGtleSkKLSAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0gICAg
ICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkp
Ci0gICAgICAgICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAgICAgICAgLmNhdGNoKGUgPT4g
cmVqZWN0KGUpKTsKLSAgICAgICAgfSk7Ci0gICAgfSwgIlNhbWUtU2l0ZSBmb250Iik7Ci0KLSAg
ICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4gewotICAgICAgICBsZXQga2V5ID0gImZvbnQtY3Jvc3Mtc2l0ZSI7Ci0gICAg
ICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJmb250IiwgInNpdGUiOiJjcm9zcy1z
aXRlIn07Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNv
cmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVu
KHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFz
c2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+
IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgICB9
KTsKLSAgICB9LCAiQ3Jvc3MtU2l0ZSBmb250Iik7Ci0KLSAgfSk7Ci08L3NjcmlwdD4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2lmcmFtZS50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
c2VjLW1ldGFkYXRhL2lmcmFtZS50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA0MzAwNmMwNTIwZDkyNzgwNWFhMDc4YTg2ZmY5
MWRkNGQ1OGI4MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1t
ZXRhZGF0YS9pZnJhbWUudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0
LXRvLW93bmVyLnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9w
b3N0LXRvLW93bmVyLnB5Ci0KLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBu
dWxsCi0KLUZBSUwgU2FtZS1vcmlnaW4gaWZyYW1lIGFzc2VydF9ub3RfZXF1YWxzOiBFbXB0eSBT
ZWMtTWV0YWRhdGEgaGVhZGVyLiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotVElNRU9VVCBTYW1l
LXNpdGUgaWZyYW1lIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIENyb3NzLXNpdGUgaWZyYW1lIFRl
c3QgdGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2lmcmFtZS50ZW50YXRpdmUuaHR0cHMu
c3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3NlYy1tZXRhZGF0YS9pZnJhbWUudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDg5Y2RhODkzNmNjMzNhMjJlMDg5OWEyYzhiMzU2MGI3
ZWYyMGJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFk
YXRhL2lmcmFtZS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2
MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJj
ZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0PgotICBhc3luY190ZXN0KHQg
PT4gewotICAgIGxldCBpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Ci0gICAg
aS5zcmMgPSAiaHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1t
ZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weSI7Ci0gICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhlID0+IHsKLSAgICAgIGlmIChlLnNvdXJj
ZSAhPSBpLmNvbnRlbnRXaW5kb3cpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgYXNzZXJ0X2hl
YWRlcl9lcXVhbHMoZS5kYXRhLCB7Ci0gICAgICAgICJjYXVzZSI6ICJmb3JjZWQiLAotICAgICAg
ICAiZGVzdGluYXRpb24iOiAibmVzdGVkLWRvY3VtZW50IiwKLSAgICAgICAgInNpdGUiOiAic2Ft
ZS1vcmlnaW4iCi0gICAgICB9KTsKLSAgICAgIHQuZG9uZSgpOwotICAgIH0pKTsKLQotICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7Ci0gIH0sICJTYW1lLW9yaWdpbiBpZnJhbWUiKTsK
LQotICBhc3luY190ZXN0KHQgPT4gewotICAgIGxldCBpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaWZyYW1lJyk7Ci0gICAgaS5zcmMgPSAiaHR0cHM6Ly97e2hvc3RzW11bd3d3XX19Ont7cG9y
dHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVy
LnB5IjsKLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5j
KGUgPT4gewotICAgICAgaWYgKGUuc291cmNlICE9IGkuY29udGVudFdpbmRvdykKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgICBhc3NlcnRfaGVhZGVyX2VxdWFscyhlLmRhdGEsIHsKLSAgICAgICAg
ImNhdXNlIjogImZvcmNlZCIsCi0gICAgICAgICJkZXN0aW5hdGlvbiI6ICJuZXN0ZWQtZG9jdW1l
bnQiLAotICAgICAgICAic2l0ZSI6ICJzYW1lLXNpdGUiCi0gICAgICB9KTsKLSAgICAgIHQuZG9u
ZSgpOwotICAgIH0pKTsKLQotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7Ci0gIH0s
ICJTYW1lLXNpdGUgaWZyYW1lIik7Ci0KLSAgYXN5bmNfdGVzdCh0ID0+IHsKLSAgICBsZXQgaSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwotICAgIGkuc3JjID0gImh0dHBzOi8v
e3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weSI7Ci0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhlID0+IHsKLSAgICAgIGlmIChlLnNvdXJjZSAhPSBp
LmNvbnRlbnRXaW5kb3cpCi0gICAgICAgIHJldHVybjsKLQotICAgICAgYXNzZXJ0X2hlYWRlcl9l
cXVhbHMoZS5kYXRhLCB7Ci0gICAgICAgICJjYXVzZSI6ICJmb3JjZWQiLAotICAgICAgICAiZGVz
dGluYXRpb24iOiAibmVzdGVkLWRvY3VtZW50IiwKLSAgICAgICAgInNpdGUiOiAiY3Jvc3Mtc2l0
ZSIKLSAgICAgIH0pOwotICAgICAgdC5kb25lKCk7Ci0gICAgfSkpOwotCi0gICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChpKTsKLSAgfSwgIkNyb3NzLXNpdGUgaWZyYW1lIik7Ci08L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc2VjLW1ldGFkYXRhL2ltZy50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2Vj
LW1ldGFkYXRhL2ltZy50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTA1OWM3ZDliNmUxMTIwYWRhZDA1ZjlhZTc2MzkxMTgwYzJh
NzMwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YS9pbWcudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw1ICswLDAgQEAKLQotRkFJTCBTYW1lLW9yaWdpbiBpbWFnZSBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBsb2FkSW1hZ2VJbldpbmRvdwotRkFJTCBTYW1lLXNpdGUgaW1hZ2UgQ2FuJ3QgZmluZCB2YXJp
YWJsZTogbG9hZEltYWdlSW5XaW5kb3cKLUZBSUwgQ3Jvc3Mtc2l0ZSBpbWFnZSBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBsb2FkSW1hZ2VJbldpbmRvdwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9pbWcudGVu
dGF0aXZlLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvaW1nLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA3MDFhNjUxNDY1M2Y4NmUzM2IzY2Rm
NzAwZWNkMDYyODA5N2Q2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3NlYy1tZXRhZGF0YS9pbWcudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZWZlcnJlci1wb2xpY3kvZ2Vu
ZXJpYy9jb21tb24uanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRh
L3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0gIC8vIFRo
ZXNlIHRlc3RzIHJldXNlIHRoZSBgcmVmZXJyZXItcG9saWN5YCBpbmZyYXN0cnVjdHVyZSB0byBs
b2FkIGltYWdlcyB0aGF0Ci0gIC8vIGVuY29kZSB0aGVpciByZXF1ZXN0IGhlYWRlcnMgaW4gdGhl
aXIgcGl4ZWxzLiBGdW4gc3R1ZmYhCi0gIGFzeW5jX3Rlc3QodCA9PiB7Ci0gICAgbG9hZEltYWdl
SW5XaW5kb3coCi0gICAgICAiaHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L3Jl
ZmVycmVyLXBvbGljeS9nZW5lcmljL3N1YnJlc291cmNlL2ltYWdlLnB5IiwKLSAgICAgIHQuc3Rl
cF9mdW5jX2RvbmUoaW1nID0+IHsKLSAgICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoZGVjb2Rl
SW1hZ2VEYXRhKGV4dHJhY3RJbWFnZURhdGEoaW1nKSkuaGVhZGVyc1sic2VjLW1ldGFkYXRhIl0s
IHsKLSAgICAgICAgICAiY2F1c2UiOiB1bmRlZmluZWQsCi0gICAgICAgICAgImRlc3RpbmF0aW9u
IjogImltYWdlIiwKLSAgICAgICAgICAic2l0ZSI6ICJzYW1lLW9yaWdpbiIKLSAgICAgICAgfSk7
Ci0gICAgICB9KSwKLSAgICAgIFtdLAotICAgICAgd2luZG93KTsKLSAgfSwgIlNhbWUtb3JpZ2lu
IGltYWdlIik7Ci0KLSAgYXN5bmNfdGVzdCh0ID0+IHsKLSAgICBsb2FkSW1hZ2VJbldpbmRvdygK
LSAgICAgICJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9yZWZl
cnJlci1wb2xpY3kvZ2VuZXJpYy9zdWJyZXNvdXJjZS9pbWFnZS5weSIsCi0gICAgICB0LnN0ZXBf
ZnVuY19kb25lKGltZyA9PiB7Ci0gICAgICAgIGFzc2VydF9oZWFkZXJfZXF1YWxzKGRlY29kZUlt
YWdlRGF0YShleHRyYWN0SW1hZ2VEYXRhKGltZykpLmhlYWRlcnNbInNlYy1tZXRhZGF0YSJdLCB7
Ci0gICAgICAgICAgImNhdXNlIjogdW5kZWZpbmVkLAotICAgICAgICAgICJkZXN0aW5hdGlvbiI6
ICJpbWFnZSIsCi0gICAgICAgICAgInNpdGUiOiAic2FtZS1zaXRlIgotICAgICAgICB9KTsKLSAg
ICAgIH0pLAotICAgICAgW10sCi0gICAgICB3aW5kb3cpOwotICB9LCAiU2FtZS1zaXRlIGltYWdl
Iik7Ci0KLSAgYXN5bmNfdGVzdCh0ID0+IHsKLSAgICBsb2FkSW1hZ2VJbldpbmRvdygKLSAgICAg
ICJodHRwczovL3t7aG9zdHNbYWx0XVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9yZWZlcnJl
ci1wb2xpY3kvZ2VuZXJpYy9zdWJyZXNvdXJjZS9pbWFnZS5weSIsCi0gICAgICB0LnN0ZXBfZnVu
Y19kb25lKGltZyA9PiB7Ci0gICAgICAgIGFzc2VydF9oZWFkZXJfZXF1YWxzKGRlY29kZUltYWdl
RGF0YShleHRyYWN0SW1hZ2VEYXRhKGltZykpLmhlYWRlcnNbInNlYy1tZXRhZGF0YSJdLCB7Ci0g
ICAgICAgICAgImNhdXNlIjogdW5kZWZpbmVkLAotICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICJp
bWFnZSIsCi0gICAgICAgICAgInNpdGUiOiAiY3Jvc3Mtc2l0ZSIKLSAgICAgICAgfSk7Ci0gICAg
ICB9KSwKLSAgICAgIFtdLAotICAgICAgd2luZG93KTsKLSAgfSwgIkNyb3NzLXNpdGUgaW1hZ2Ui
KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvb2JqZWN0LnRlbnRhdGl2ZS5odHRwcy5z
dWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvb2JqZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmJlMTNlNWJjNTRmNjdmNDZj
MzNjNTk3NTQ1MDk5ODUzZTU0NmQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvc2VjLW1ldGFkYXRhL29iamVjdC50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1FT1VUIFNhbWUtT3JpZ2luIG9iamVjdCBUZXN0IHRp
bWVkIG91dAotTk9UUlVOIFNhbWUtU2l0ZSBvYmplY3QKLU5PVFJVTiBDcm9zcy1TaXRlIG9iamVj
dAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9vYmplY3QudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0
YWRhdGEvb2JqZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTFhYzUzMTU3ZTAyM2E5YzZiYzQ4MDZmZWRhMmU3ODJlZjRlZWZhNS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9vYmplY3Qu
dGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPgotPGxpbmsgcmVsPSJhdXRo
b3IiIGhyZWY9Im10cnpvc0Bnb29nbGUuY29tIiB0aXRsZT0iTWFjaWVrIFRyem9zIj4KLTxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2Zl
dGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPGJvZHk+Ci08
c2NyaXB0PgotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAgIGxldCBrZXkgPSAib2JqZWN0LXNhbWUtb3JpZ2lu
IjsKLQotICAgICAgbGV0IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvYmplY3QnKTsKLSAg
ICAgIGUuZGF0YSA9ICJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gv
c2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9IiArIGtleTsKLSAg
ICAgIGUub25sb2FkID0gZSA9PiB7Ci0gICAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRp
b24iOiJvYmplY3QiLCAic2l0ZSI6InNhbWUtb3JpZ2luIn07Ci0gICAgICAgIGZldGNoKCIvZmV0
Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUm
ZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQo
KSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4
cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0
Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChlKTsKLSAgICB9KQotICB9LCAiU2FtZS1PcmlnaW4gb2JqZWN0Iik7Ci0KLSAgcHJv
bWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gIm9iamVjdC1zYW1lLXNpdGUiOwotCi0gICAgICBsZXQg
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29iamVjdCcpOwotICAgICAgZS5kYXRhID0gImh0
dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRh
ZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ci0gICAgICBlLm9u
bG9hZCA9IGUgPT4gewotICAgICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoib2Jq
ZWN0IiwgInNpdGUiOiJzYW1lLXNpdGUifTsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0
YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBr
ZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAg
ICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQot
ICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJl
amVjdChlKSk7Ci0gICAgICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUp
OwotICAgIH0pCi0gIH0sICJTYW1lLVNpdGUgb2JqZWN0Iik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQg
PT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAg
ICBsZXQga2V5ID0gIm9iamVjdC1jcm9zcy1zaXRlIjsKLQotICAgICAgbGV0IGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdvYmplY3QnKTsKLSAgICAgIGUuZGF0YSA9ICJodHRwczovL3t7aG9z
dHNbYWx0XVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVz
b3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5OwotICAgICAgZS5vbmxvYWQgPSBl
ID0+IHsKLSAgICAgICAgbGV0IGV4cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6Im9iamVjdCIsICJz
aXRlIjoiY3Jvc3Mtc2l0ZSJ9OwotICAgICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9y
ZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAg
ICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAgLnRo
ZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAg
ICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAgICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0KGUp
KTsKLSAgICAgIH07Ci0KLSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7Ci0gICAg
fSkKLSAgfSwgIkNyb3NzLVNpdGUgb2JqZWN0Iik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFk
YXRhL3JlZGlyZWN0L2Nyb3NzLXNpdGUtcmVkaXJlY3QudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9jcm9zcy1zaXRlLXJlZGlyZWN0LnRlbnRhdGl2ZS5o
dHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTFh
MWI0MGIxZjQ3MmJjNWRmY2M2NmMwMGIxMTY4YWJjOTNjZGEyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L2Nyb3NzLXNpdGUtcmVk
aXJlY3QudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw5ICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3Q6OTQ0My94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0
aW9uPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9y
ZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVkaXJlY3QtY3Jvc3Mtc2l0ZS1zYW1lLW9yaWdpbgotQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3Lm5vdC13ZWItcGxhdGZvcm0u
dGVzdDo5NDQzL3hoci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249aHR0cHM6Ly93d3cu
bG9jYWxob3N0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVy
LnB5P2ZpbGU9cmVkaXJlY3QtY3Jvc3Mtc2l0ZS1zYW1lLXNpdGUKLUJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Q6OTQ0My94aHIv
cmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8vd3d3Lm5vdC13ZWItcGxhdGZv
cm0udGVzdDo5NDQzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5w
eT9maWxlPXJlZGlyZWN0LWNyb3NzLXNpdGUtY3Jvc3Mtc2l0ZQotCi0KLUZBSUwgQ3Jvc3MtU2l0
ZSAtPiBTYW1lLU9yaWdpbiByZWRpcmVjdCBhc3NlcnRfZXF1YWxzOiBkZXN0aW5hdGlvbiBleHBl
Y3RlZCAoc3RyaW5nKSAiaW1hZ2UiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlM
IENyb3NzLVNpdGUgLT4gU2FtZS1TaXRlIHJlZGlyZWN0IGFzc2VydF9lcXVhbHM6IGRlc3RpbmF0
aW9uIGV4cGVjdGVkIChzdHJpbmcpICJpbWFnZSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmlu
ZWQKLUZBSUwgQ3Jvc3MtU2l0ZSAtPiBDcm9zcy1TaXRlIHJlZGlyZWN0IGFzc2VydF9lcXVhbHM6
IGRlc3RpbmF0aW9uIGV4cGVjdGVkIChzdHJpbmcpICJpbWFnZSIgYnV0IGdvdCAodW5kZWZpbmVk
KSB1bmRlZmluZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3QvY3Jvc3Mtc2l0ZS1yZWRp
cmVjdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9jcm9zcy1zaXRl
LXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOWY0OTdhOWI2MmI4MGRhNGVmZjJlMzUyMjBjMWQ2MzE3ZTBlMjgxNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9j
cm9zcy1zaXRlLXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDg2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotCi08bGluayByZWw9ImF1dGhvciIg
aHJlZj0ibXRyem9zQGdvb2dsZS5jb20iIHRpdGxlPSJNYWNpZWsgVHJ6b3MiPgotPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gv
c2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci08Ym9keT48L2JvZHk+
Ci08c2NyaXB0PgotcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gInJlZGlyZWN0LWNyb3NzLXNp
dGUtc2FtZS1vcmlnaW4iOwotCi0gICAgICBsZXQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2ltZycpOwotICAgICAgZS5zcmMgPSAiaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9y
dHNbaHR0cHNdWzBdfX0veGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1odHRwczov
L3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNl
cy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9IiArIGtleTsKLSAgICAgIGxldCBleHBlY3RlZCA9IHsi
ZGVzdGluYXRpb24iOiJpbWFnZSIsICJzaXRlIjoiY3Jvc3Mtc2l0ZSJ9OwotICAgICAgZS5vbmxv
YWQgPSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2Vz
L3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAg
LnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQg
PT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVu
KF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAg
ICB9OwotICAgICAgZS5vbmVycm9yID0gZSA9PiB7Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2Vj
LW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0i
ICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAg
ICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVk
KSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9
PiByZWplY3QoZSkpOwotICAgICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChlKTsKLSAgICB9KQotICB9LCAiQ3Jvc3MtU2l0ZSAtPiBTYW1lLU9yaWdpbiByZWRpcmVjdCIp
OwotCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJyZWRpcmVjdC1jcm9zcy1zaXRlLXNh
bWUtc2l0ZSI7Ci0KLSAgICAgIGxldCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7
Ci0gICAgICBlLnNyYyA9ICJodHRwczovL3t7aG9zdHNbYWx0XVt3d3ddfX06e3twb3J0c1todHRw
c11bMF19fS94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8ve3tob3N0
c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJj
ZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ci0gICAgICBsZXQgZXhwZWN0ZWQgPSB7
ImRlc3RpbmF0aW9uIjoiaW1hZ2UiLCAic2l0ZSI6ImNyb3NzLXNpdGUifTsKLSAgICAgIGUub25s
b2FkID0gZSA9PiB7Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNl
cy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAg
IC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0
ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhl
bihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAg
ICAgfTsKLSAgICAgIGUub25lcnJvciA9IGUgPT4gewotICAgICAgICBmZXRjaCgiL2ZldGNoL3Nl
Yy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9
IiArIGtleSkKLSAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0g
ICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3Rl
ZCkpCi0gICAgICAgICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAgICAgICAgLmNhdGNoKGUg
PT4gcmVqZWN0KGUpKTsKLSAgICAgIH07Ci0KLSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZSk7Ci0gICAgfSkKLSAgfSwgIkNyb3NzLVNpdGUgLT4gU2FtZS1TaXRlIHJlZGlyZWN0Iik7
Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gInJlZGlyZWN0LWNyb3NzLXNpdGUtY3Jv
c3Mtc2l0ZSI7Ci0KLSAgICAgIGxldCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7
Ci0gICAgICBlLnNyYyA9ICJodHRwczovL3t7aG9zdHNbYWx0XVt3d3ddfX06e3twb3J0c1todHRw
c11bMF19fS94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8ve3tob3N0
c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNv
dXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ci0gICAgICBsZXQgZXhwZWN0ZWQg
PSB7ImRlc3RpbmF0aW9uIjoiaW1hZ2UiLCAic2l0ZSI6ImNyb3NzLXNpdGUifTsKLSAgICAgIGUu
b25sb2FkID0gZSA9PiB7Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291
cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAg
ICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0
ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAu
dGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwot
ICAgICAgfTsKLSAgICAgIGUub25lcnJvciA9IGUgPT4gewotICAgICAgICBmZXRjaCgiL2ZldGNo
L3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZp
bGU9IiArIGtleSkKLSAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkp
Ci0gICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBl
Y3RlZCkpCi0gICAgICAgICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAgICAgICAgLmNhdGNo
KGUgPT4gcmVqZWN0KGUpKTsKLSAgICAgIH07Ci0KLSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZSk7Ci0gICAgfSkKLSAgfSwgIkNyb3NzLVNpdGUgLT4gQ3Jvc3MtU2l0ZSByZWRpcmVj
dCIpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRp
cmVjdC1jcm9zcy1zaXRlLnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEv
cmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtY3Jvc3Mtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3Vi
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDYwYzVmYTA2MmRl
MjIwYWE0ZjE4NzdhYmM4NGJkZDQ1ZWQ5NzhmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1jcm9z
cy1zaXRlLnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0Ojk0NDMveGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2Nh
dGlvbj1odHRwczovL2xvY2FsaG9zdDo5NDQzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMv
cmVjb3JkLWhlYWRlci5weT9maWxlPXJlZGlyZWN0LW11bHRpcGxlLWNyb3NzLXNpdGUKLQotCi1I
YXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQotVElNRU9VVCBTYW1lLU9y
aWdpbiAtPiBDcm9zcy1TaXRlIC0+IFNhbWUtT3JpZ2luIHJlZGlyZWN0IFRlc3QgdGltZWQgb3V0
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L211bHRpcGxlLXJlZGlyZWN0LWNyb3NzLXNp
dGUudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3QvbXVsdGlwbGUtcmVk
aXJlY3QtY3Jvc3Mtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZkZDg3MzNiYTZkNjgyYjFmNmI1NWZiNGUzNzM4ZDAzYTFmYmJiNTAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVk
aXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtY3Jvc3Mtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGxp
bmsgcmVsPSJhdXRob3IiIGhyZWY9Im10cnpvc0Bnb29nbGUuY29tIiB0aXRsZT0iTWFjaWVrIFRy
em9zIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0
PgotPGJvZHk+PC9ib2R5PgotPHNjcmlwdD4KLXByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJy
ZWRpcmVjdC1tdWx0aXBsZS1jcm9zcy1zaXRlIjsKLQotICAgICAgbGV0IGUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdpbWcnKTsKLSAgICAgIGUuc3JjID0gImh0dHBzOi8ve3tob3N0fX06e3tw
b3J0c1todHRwc11bMF19fS94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPSIgKy8v
IHNhbWUtb3JpZ2luCi0gICAgICAiaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9ydHNb
aHR0cHNdWzBdfX0veGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj0iICsvLyBjcm9z
cy1zaXRlCi0gICAgICAiaHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNo
L3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ly8g
c2FtZS1vcmlnaW4KLSAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJpbWFnZSIs
ICJzaXRlIjoiY3Jvc3Mtc2l0ZSJ9OwotCi0gICAgICBlLm9ubG9hZCA9IGUgPT4gewotICAgICAg
ICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9y
ZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiBy
ZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2Vx
dWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0g
ICAgICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsKLSAgICAgIH07Ci0gICAgICBlLm9uZXJy
b3IgPSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2Vz
L3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAg
LnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQg
PT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVu
KF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAg
ICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0gIH0s
ICJTYW1lLU9yaWdpbiAtPiBDcm9zcy1TaXRlIC0+IFNhbWUtT3JpZ2luIHJlZGlyZWN0Iik7Ci08
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L211bHRpcGxlLXJlZGlyZWN0LXNh
bWUtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0
L211bHRpcGxlLXJlZGlyZWN0LXNhbWUtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM0NWI1ZjEyOWY2NmIyM2YxOWQx
OGM1NTQ2ZTBmOTk2MTFkYmU5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1zYW1lLXNpdGUudGVu
dGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAg
QEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5sb2NhbGhvc3Q6
OTQ0My94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8vbG9jYWxob3N0
Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9
cmVkaXJlY3QtbXVsdGlwbGUtc2FtZS1zaXRlCi0KLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCks
IG1lc3NhZ2UgPSBudWxsCi0KLVRJTUVPVVQgU2FtZS1PcmlnaW4gLT4gU2FtZS1TaXRlIC0+IFNh
bWUtT3JpZ2luIHJlZGlyZWN0IFRlc3QgdGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jl
ZGlyZWN0L211bHRpcGxlLXJlZGlyZWN0LXNhbWUtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Nl
Yy1tZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1zYW1lLXNpdGUudGVudGF0aXZl
Lmh0dHBzLnN1Yi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmRjOTQzZjRj
OTZjMDYxNjc3OGMzMzE2NTg3ZjNjYzU5ODYwNmViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L211bHRpcGxlLXJlZGlyZWN0LXNh
bWUtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im10cnpv
c0Bnb29nbGUuY29tIiB0aXRsZT0iTWFjaWVrIFRyem9zIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPGJvZHk+PC9ib2R5PgotPHNjcmlwdD4K
LXByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJyZWRpcmVjdC1tdWx0aXBsZS1zYW1lLXNpdGUi
OwotCi0gICAgICBsZXQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwotICAgICAg
ZS5zcmMgPSAiaHR0cHM6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L3hoci9yZXNvdXJj
ZXMvcmVkaXJlY3QucHk/bG9jYXRpb249IiArLy8gc2FtZS1vcmlnaW4KLSAgICAgICJodHRwczov
L3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS94aHIvcmVzb3VyY2VzL3JlZGly
ZWN0LnB5P2xvY2F0aW9uPSIgKy8vIHNhbWUtc2l0ZQotICAgICAgImh0dHBzOi8ve3tob3N0fX06
e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1o
ZWFkZXIucHk/ZmlsZT0iICsga2V5Oy8vIHNhbWUtb3JpZ2luCi0gICAgICBsZXQgZXhwZWN0ZWQg
PSB7ImRlc3RpbmF0aW9uIjoiaW1hZ2UiLCAic2l0ZSI6InNhbWUtc2l0ZSJ9OwotCi0gICAgICBl
Lm9ubG9hZCA9IGUgPT4gewotICAgICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNv
dXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAgICAg
ICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAgLnRoZW4o
dGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAg
LnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAgICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsK
LSAgICAgIH07Ci0gICAgICBlLm9uZXJyb3IgPSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZm
aWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgp
KQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhw
ZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRj
aChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGUpOwotICAgIH0pCi0gIH0sICJTYW1lLU9yaWdpbiAtPiBTYW1lLVNpdGUgLT4gU2Ft
ZS1PcmlnaW4gcmVkaXJlY3QiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJl
Y3Qvc2FtZS1vcmlnaW4tcmVkaXJlY3QudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1t
ZXRhZGF0YS9yZWRpcmVjdC9zYW1lLW9yaWdpbi1yZWRpcmVjdC50ZW50YXRpdmUuaHR0cHMuc3Vi
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODRmNjQ2NWJjNTQw
NmIzZWEyOTliYzQwYThjYjJmZmQ0NTdmNWY3OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9zYW1lLW9yaWdpbi1yZWRpcmVjdC50
ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAs
MCBAQAotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9z
dDo5NDQzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxl
PXJlZGlyZWN0LXNhbWUtb3JpZ2luLXNhbWUtc2l0ZQotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCi1GQUlMIFNhbWUtT3JpZ2luIC0+IFNhbWUtT3JpZ2luIHJl
ZGlyZWN0IGFzc2VydF9ub3RfZXF1YWxzOiBFbXB0eSBTZWMtTWV0YWRhdGEgaGVhZGVyLiBnb3Qg
ZGlzYWxsb3dlZCB2YWx1ZSAiIgotVElNRU9VVCBTYW1lLU9yaWdpbiAtPiBTYW1lLVNpdGUgcmVk
aXJlY3QgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBTYW1lLU9yaWdpbiAtPiBDcm9zcy1TaXRlIHJl
ZGlyZWN0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L3NhbWUtb3JpZ2luLXJlZGlyZWN0
LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGlyZWN0L3NhbWUtb3JpZ2luLXJl
ZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZGVhNzFjM2Y2N2RjYTY5NGUwNWYzYzAwZGIxZDJkN2FlYTVmMzc0NC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9zYW1l
LW9yaWdpbi1yZWRpcmVjdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw4OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGxpbmsgcmVsPSJhdXRob3IiIGhy
ZWY9Im10cnpvc0Bnb29nbGUuY29tIiB0aXRsZT0iTWFjaWVrIFRyem9zIj4KLTxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3Nl
Yy1tZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPGJvZHk+PC9ib2R5Pgot
PHNjcmlwdD4KLXByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJyZWRpcmVjdC1zYW1lLW9yaWdp
bi1zYW1lLW9yaWdpbiI7Ci0KLSAgICAgIGxldCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aW1nJyk7Ci0gICAgICBlLnNyYyA9ICIveGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlv
bj1odHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRh
L3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9IiArIGtleTsKLSAgICAgIGxldCBleHBl
Y3RlZCA9IHsiZGVzdGluYXRpb24iOiJpbWFnZSIsICJzaXRlIjoic2FtZS1vcmlnaW4ifTsKLQot
ICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRh
dGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkp
Ci0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAg
IC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAg
ICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVj
dChlKSk7Ci0gICAgICB9OwotICAgICAgZS5vbmVycm9yID0gZSA9PiB7Ci0gICAgICAgIGZldGNo
KCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZl
PXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNl
LnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRl
eHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAg
ICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQotICB9LCAiU2FtZS1PcmlnaW4gLT4gU2FtZS1Pcmln
aW4gcmVkaXJlY3QiKTsKLQotcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gInJlZGlyZWN0LXNh
bWUtb3JpZ2luLXNhbWUtc2l0ZSI7Ci0KLSAgICAgIGxldCBlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnaW1nJyk7Ci0gICAgICBlLnNyYyA9ICIveGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9s
b2NhdGlvbj1odHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5Owot
ICAgICAgbGV0IGV4cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6ImltYWdlIiwgInNpdGUiOiJzYW1l
LXNpdGUifTsKLQotICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZm
aWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgp
KQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhw
ZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRj
aChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotICAgICAgZS5vbmVycm9yID0gZSA9PiB7Ci0g
ICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVy
LnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNl
ID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFk
ZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUo
KSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLQotICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQotICB9LCAiU2FtZS1PcmlnaW4g
LT4gU2FtZS1TaXRlIHJlZGlyZWN0Iik7Ci0KLXByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJy
ZWRpcmVjdC1zYW1lLW9yaWdpbi1jcm9zcy1zaXRlIjsKLQotICAgICAgbGV0IGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKLSAgICAgIGUuc3JjID0gIi94aHIvcmVzb3VyY2VzL3Jl
ZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0
dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9m
aWxlPSIgKyBrZXk7Ci0gICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoiaW1hZ2Ui
LCAic2l0ZSI6ImNyb3NzLXNpdGUifTsKLQotICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAgICAg
ICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/
cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4g
cmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9l
cXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQot
ICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9OwotICAgICAgZS5vbmVy
cm9yID0gZSA9PiB7Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNl
cy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAg
IC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0
ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhl
bihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAg
ICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQotICB9
LCAiU2FtZS1PcmlnaW4gLT4gQ3Jvc3MtU2l0ZSByZWRpcmVjdCIpOwotPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9zYW1lLXNpdGUtcmVkaXJlY3QudGVudGF0aXZlLmh0dHBz
LnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9zYW1lLXNpdGUtcmVkaXJlY3QudGVu
dGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGVmY2EwMTNhOTczOTJmYzBlNzE1NTQyM2QxNjg5YzhkOTQ4OWJjOWEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3Qvc2FtZS1z
aXRlLXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsOSArMCwwIEBACi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6
Ly93d3cubG9jYWxob3N0Ojk0NDMveGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1o
dHRwczovL2xvY2FsaG9zdDo5NDQzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3Jk
LWhlYWRlci5weT9maWxlPXJlZGlyZWN0LXNhbWUtc2l0ZS1zYW1lLW9yaWdpbgotQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL3hoci9yZXNv
dXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9mZXRjaC9z
ZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1yZWRpcmVjdC1zYW1l
LXNpdGUtc2FtZS1zaXRlCi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93
d3cubG9jYWxob3N0Ojk0NDMveGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj1odHRw
czovL3d3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Q6OTQ0My9mZXRjaC9zZWMtbWV0YWRhdGEvcmVz
b3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT1yZWRpcmVjdC1zYW1lLXNpdGUtY3Jvc3Mtc2l0
ZQotCi0KLUZBSUwgU2FtZS1TaXRlIC0+IFNhbWUtT3JpZ2luIHJlZGlyZWN0IGFzc2VydF9lcXVh
bHM6IGRlc3RpbmF0aW9uIGV4cGVjdGVkIChzdHJpbmcpICJpbWFnZSIgYnV0IGdvdCAodW5kZWZp
bmVkKSB1bmRlZmluZWQKLUZBSUwgU2FtZS1TaXRlIC0+IFNhbWUtU2l0ZSByZWRpcmVjdCBhc3Nl
cnRfZXF1YWxzOiBkZXN0aW5hdGlvbiBleHBlY3RlZCAoc3RyaW5nKSAiaW1hZ2UiIGJ1dCBnb3Qg
KHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIFNhbWUtU2l0ZSAtPiBDcm9zcy1TaXRlIHJlZGly
ZWN0IGFzc2VydF9lcXVhbHM6IGRlc3RpbmF0aW9uIGV4cGVjdGVkIChzdHJpbmcpICJpbWFnZSIg
YnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJl
Y3Qvc2FtZS1zaXRlLXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jl
ZGlyZWN0L3NhbWUtc2l0ZS1yZWRpcmVjdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3MTE2M2ExYmZjYjA5MTk2MDgzZGQxYTM4ZjRhNjg2
M2Y0NmVjYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0
YWRhdGEvcmVkaXJlY3Qvc2FtZS1zaXRlLXJlZGlyZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotCi08bGlu
ayByZWw9ImF1dGhvciIgaHJlZj0ibXRyem9zQGdvb2dsZS5jb20iIHRpdGxlPSJNYWNpZWsgVHJ6
b3MiPgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+
Ci08Ym9keT48L2JvZHk+Ci08c2NyaXB0PgotcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gInJl
ZGlyZWN0LXNhbWUtc2l0ZS1zYW1lLW9yaWdpbiI7Ci0KLSAgICAgIGxldCBlID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gICAgICBlLnNyYyA9ICJodHRwczovL3t7aG9zdHNbXVt3
d3ddfX06e3twb3J0c1todHRwc11bMF19fS94aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0
aW9uPWh0dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRh
dGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5OwotICAgICAgbGV0IGV4
cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6ImltYWdlIiwgInNpdGUiOiJzYW1lLXNpdGUifTsKLQot
ICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRh
dGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkp
Ci0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAg
IC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAg
ICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVj
dChlKSk7Ci0gICAgICB9OwotICAgICAgZS5vbmVycm9yID0gZSA9PiB7Ci0gICAgICAgIGZldGNo
KCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZl
PXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNl
LnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRl
eHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAg
ICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQotICB9LCAiU2FtZS1TaXRlIC0+IFNhbWUtT3JpZ2lu
IHJlZGlyZWN0Iik7Ci0KLXByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJyZWRpcmVjdC1zYW1l
LXNpdGUtc2FtZS1zaXRlIjsKLQotICAgICAgbGV0IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpbWcnKTsKLSAgICAgIGUuc3JjID0gImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRz
W2h0dHBzXVswXX19L3hoci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249aHR0cHM6Ly97
e2hvc3R9fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMv
cmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ci0gICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRl
c3RpbmF0aW9uIjoiaW1hZ2UiLCAic2l0ZSI6InNhbWUtc2l0ZSJ9OwotCi0gICAgICBlLm9ubG9h
ZCA9IGUgPT4gewotICAgICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMv
cmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAgICAu
dGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkpCi0gICAgICAgICAgLnRoZW4odGV4dCA9
PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAgICAgICAgLnRoZW4o
XyA9PiByZXNvbHZlKCkpCi0gICAgICAgICAgLmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsKLSAgICAg
IH07Ci0gICAgICBlLm9uZXJyb3IgPSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMt
bWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIg
KyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAg
ICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQp
KQotICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+
IHJlamVjdChlKSk7Ci0gICAgICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGUpOwotICAgIH0pCi0gIH0sICJTYW1lLVNpdGUgLT4gU2FtZS1TaXRlIHJlZGlyZWN0Iik7Ci0K
LXByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4gewotICAgICAgbGV0IGtleSA9ICJyZWRpcmVjdC1zYW1lLXNpdGUtY3Jvc3Mtc2l0
ZSI7Ci0KLSAgICAgIGxldCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci0gICAg
ICBlLnNyYyA9ICJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19fS94
aHIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5P2xvY2F0aW9uPWh0dHBzOi8ve3tob3N0c1thbHRdW3d3
d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVj
b3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ci0gICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3Rp
bmF0aW9uIjoiaW1hZ2UiLCAic2l0ZSI6ImNyb3NzLXNpdGUifTsKLQotICAgICAgZS5vbmxvYWQg
PSBlID0+IHsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3Jl
Y29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRo
ZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4g
YXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8g
PT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9
OwotICAgICAgZS5vbmVycm9yID0gZSA9PiB7Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1l
dGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsg
a2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAg
ICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkK
LSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiBy
ZWplY3QoZSkpOwotICAgICAgfTsKLQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChl
KTsKLSAgICB9KQotICB9LCAiU2FtZS1TaXRlIC0+IENyb3NzLVNpdGUgcmVkaXJlY3QiKTsKLTwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3QvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YS9yZWRpcmVjdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDMwMTVmNTdlOTk4Y2Q1ZTQ1YWU3NDlhNGU3YjQ2M2M5Nzc5NjI1NC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZWRpcmVjdC93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlZGly
ZWN0L2Nyb3NzLXNpdGUtcmVkaXJlY3QudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEv
cmVkaXJlY3QvbXVsdGlwbGUtcmVkaXJlY3QtY3Jvc3Mtc2l0ZS50ZW50YXRpdmUuaHR0cHMuc3Vi
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3NlYy1tZXRhZGF0YS9yZWRpcmVjdC9tdWx0aXBsZS1yZWRpcmVjdC1zYW1lLXNpdGUudGVudGF0
aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3Qvc2FtZS1vcmlnaW4tcmVkaXJlY3Qu
dGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVkaXJlY3Qvc2FtZS1zaXRlLXJlZGly
ZWN0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVwb3J0LnRl
bnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVwb3J0LnRlbnRhdGl2ZS5o
dHRwcy5zdWItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDgy
YzVlMWI0ZThjMDhlMWIyNmQ4NWY2OGQ4Yzc5ZmVhYmQyNjExLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlcG9ydC50ZW50YXRpdmUuaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotQ09OU09MRSBN
RVNTQUdFOiBSZWZ1c2VkIHRvIGxvYWQgaHR0cHM6Ly9mb28uYmFyLyBiZWNhdXNlIGl0IGRvZXMg
bm90IGFwcGVhciBpbiB0aGUgc3R5bGUtc3JjIGRpcmVjdGl2ZSBvZiB0aGUgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kuCi1DT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9hZCBodHRwczovL2Zv
by5iYXIvIGJlY2F1c2UgaXQgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBzdHlsZS1zcmMgZGlyZWN0
aXZlIG9mIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KLUNPTlNPTEUgTUVTU0FHRTogUmVm
dXNlZCB0byBsb2FkIGh0dHBzOi8vZm9vLmJhci8gYmVjYXVzZSBpdCBkb2VzIG5vdCBhcHBlYXIg
aW4gdGhlIHN0eWxlLXNyYyBkaXJlY3RpdmUgb2YgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5
LgotQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGxvYWQgaHR0cHM6Ly9mb28uYmFyLyBiZWNh
dXNlIGl0IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgc3R5bGUtc3JjIGRpcmVjdGl2ZSBvZiB0aGUg
Q29udGVudCBTZWN1cml0eSBQb2xpY3kuCi1DT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9h
ZCBodHRwczovL2Zvby5iYXIvIGJlY2F1c2UgaXQgZG9lcyBub3QgYXBwZWFyIGluIHRoZSBzdHls
ZS1zcmMgZGlyZWN0aXZlIG9mIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KLUNPTlNPTEUg
TUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIGh0dHBzOi8vZm9vLmJhci8gYmVjYXVzZSBpdCBkb2Vz
IG5vdCBhcHBlYXIgaW4gdGhlIHN0eWxlLXNyYyBkaXJlY3RpdmUgb2YgdGhlIENvbnRlbnQgU2Vj
dXJpdHkgUG9saWN5LgotCi1QQVNTIEluaXRpYWxpemF0aW9uLgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXBvcnQudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVwb3J0LnRlbnRhdGl2
ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc0ZGE2YTdh
N2Q2MGZjZGMzNWRkMzI4NzNlYTI1Y2Y1ZTM1NmRlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXBvcnQudGVudGF0aXZlLmh0dHBzLnN1Yi5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bGlu
ayByZWw9ImF1dGhvciIgaHJlZj0ibXRyem9zQGdvb2dsZS5jb20iIHRpdGxlPSJNYWNpZWsgVHJ6
b3MiPgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+
Ci08bGluayBpZD0ic3R5bGUiIGhyZWY9Imh0dHBzOi8vZm9vLmJhciIgcmVsPSJzdHlsZXNoZWV0
Ij4KLTxib2R5PjwvYm9keT4KLTxzY3JpcHQ+Ci0gIGZ1bmN0aW9uIGdlbmVyYXRlX3Rlc3QoZXhw
ZWN0ZWQsIG5hbWUpIHsKLSAgICBhc3luY190ZXN0KHQgPT4gewotICAgICAgdC5zdGVwX3RpbWVv
dXQoXyA9PiB7Ci0gICAgICAgIHJldHVybiBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNv
dXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZpbGU9cmVwb3J0LSIgKyBuYW1l
KQotICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAg
ICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkp
Ci0gICAgICAgICAgICAudGhlbihfID0+IHQuZG9uZSgpKTsKLSAgICAgIH0sIDEwMDApOwotICAg
IH0sIG5hbWUgKyAiIHJlcG9ydCIpOwotICB9Ci0KLSAgdGVzdChfID0+IHsKLSAgICBsZXQgY291
bnRlciA9IDA7Ci0gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VjdXJpdHlwb2xpY3l2
aW9sYXRpb24iLCAoZSkgPT4gewotICAgICAgY291bnRlcisrOwotICAgICAgaWYgKGNvdW50ZXIg
PT0gMykgewotICAgICAgICBnZW5lcmF0ZV90ZXN0KHsiZGVzdGluYXRpb24iOiJyZXBvcnQiLCAi
c2l0ZSI6InNhbWUtb3JpZ2luIn0sICJzYW1lLW9yaWdpbiIpOwotICAgICAgICBnZW5lcmF0ZV90
ZXN0KHsiZGVzdGluYXRpb24iOiJyZXBvcnQiLCAic2l0ZSI6InNhbWUtc2l0ZSJ9LCAic2FtZS1z
aXRlIik7Ci0gICAgICAgIGdlbmVyYXRlX3Rlc3QoeyJkZXN0aW5hdGlvbiI6InJlcG9ydCIsICJz
aXRlIjoiY3Jvc3Mtc2l0ZSJ9LCAiY3Jvc3Mtc2l0ZSIpOwotICAgICAgfQotICAgIH0pOwotICB9
LCAiSW5pdGlhbGl6YXRpb24uIik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlcG9y
dC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwuc3ViLmhlYWRlcnMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXBvcnQudGVu
dGF0aXZlLmh0dHBzLnN1Yi5odG1sLnN1Yi5oZWFkZXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1YzhiYzU4YWQ0NzJlZDlkZTg0MTQ5MWRmNGUzZTllMjZlMmUxYzcwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3JlcG9ydC50ZW50
YXRpdmUuaHR0cHMuc3ViLmh0bWwuc3ViLmhlYWRlcnMKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLUNvbnRlbnQtU2VjdXJpdHktUG9saWN5OiBzdHlsZS1zcmMgJ3NlbGYnICd1bnNhZmUt
aW5saW5lJzsgcmVwb3J0LXVyaSAvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQt
aGVhZGVyLnB5P2ZpbGU9cmVwb3J0LXNhbWUtb3JpZ2luCi1Db250ZW50LVNlY3VyaXR5LVBvbGlj
eTogc3R5bGUtc3JjICdzZWxmJyAndW5zYWZlLWlubGluZSc7IHJlcG9ydC11cmkgaHR0cHM6Ly97
e2hvc3RzW11bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jl
c291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9cmVwb3J0LXNhbWUtc2l0ZQotQ29udGVudC1T
ZWN1cml0eS1Qb2xpY3k6IHN0eWxlLXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnOyByZXBvcnQt
dXJpIGh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNo
L3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXJlcG9ydC1jcm9z
cy1zaXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZGVkaWNhdGVkV29ya2VyLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0
YWRhdGEvcmVzb3VyY2VzL2RlZGljYXRlZFdvcmtlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTg2MjZkM2Q4NDU4Yjk2NzgyOWI3MjRmYWJlYmMxMGU5MzliNjJhOS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMv
ZGVkaWNhdGVkV29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotc2VsZi5wb3N0
TWVzc2FnZSgiTG9hZGVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1q
c29uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtanNvbi5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTZjYzY3Nzc0Zjc2MzQ3ZTVjNzEyMjBmNTkwYTgyYTM3MzAyY2ZmMC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNv
dXJjZXMvZWNoby1hcy1qc29uLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotaW1w
b3J0IGpzb24KLQotZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGhlYWRlcnMgPSBb
KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vanNvbiIpLAotICAgICAgICAgICAgICAgKCJB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscyIsICJ0cnVlIildCi0KLSAgICBpZiAib3Jp
Z2luIiBpbiByZXF1ZXN0LmhlYWRlcnM6Ci0gICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNz
LUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgcmVxdWVzdC5oZWFkZXJzWyJvcmlnaW4iXSkpCi0KLQot
ICAgIGJvZHkgPSBqc29uLmR1bXBzKHsgImhlYWRlciI6IHJlcXVlc3QuaGVhZGVycy5nZXQoInNl
Yy1tZXRhZGF0YSIsICIiKSB9KQotICAgIHJldHVybiBoZWFkZXJzLCBib2R5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1t
ZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNo
by1hcy1zY3JpcHQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxYzZhNDY3M2Fj
ZmJkYTE3ZTJhNzA0NWEzMDRhMzAwODIyODhkMWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtc2NyaXB0LnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1pbXBvcnQganNvbgotCi1kZWYgbWFpbihyZXF1
ZXN0LCByZXNwb25zZSk6Ci0gICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2ph
dmFzY3JpcHQiKV0KLQotICAgIGJvZHkgPSAidmFyIGhlYWRlciA9ICVzOyIgJSBqc29uLmR1bXBz
KHJlcXVlc3QuaGVhZGVycy5nZXQoInNlYy1tZXRhZGF0YSIsICIiKSk7Ci0KLSAgICByZXR1cm4g
aGVhZGVycywgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFk
YXRhL3Jlc291cmNlcy9oZWxwZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAz
N2Y3ZTFlMWRlYjkyOTMyMmIyNmVlNTQzNjEyM2E3YjI0ZGI5MmYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLWZ1bmN0aW9uIHBhcnNlX21ldGFkYXRhKHZh
bHVlKSB7Ci0gIGxldCByZXN1bHQgPSB7fTsKLSAgdmFsdWUuc3BsaXQoJywnKS5mb3JFYWNoKGl0
ZW0gPT4gewotICAgIGxldCBwYXJzZWQgPSBpdGVtLnRyaW0oKS5zcGxpdCgnPScpOwotICAgIHJl
c3VsdFtwYXJzZWRbMF1dID0gcGFyc2VkWzFdOwotICB9KTsKLSAgcmV0dXJuIHJlc3VsdDsKLX0K
LQotZnVuY3Rpb24gYXNzZXJ0X2hlYWRlcl9lcXVhbHModmFsdWUsIGV4cGVjdGVkKSB7Ci0gIC8v
IGNoZWNrIHRoYXQgdGhlIHJldHVybmVkIHZhbHVlIGlzIGFuIG9iamVjdCwgbm90IGEgU3RyaW5n
Ci0gIGFzc2VydF9ub3RfZXF1YWxzKHZhbHVlLCAiIiwgIkVtcHR5IFNlYy1NZXRhZGF0YSBoZWFk
ZXIuIik7Ci0gIGxldCByZXN1bHQgPSBwYXJzZV9tZXRhZGF0YSh2YWx1ZSk7Ci0gIGFzc2VydF9l
cXVhbHMocmVzdWx0LmNhdXNlLCBleHBlY3RlZC5jYXVzZSwgImNhdXNlIik7Ci0gIGFzc2VydF9l
cXVhbHMocmVzdWx0LmRlc3RpbmF0aW9uLCBleHBlY3RlZC5kZXN0aW5hdGlvbiwgImRlc3RpbmF0
aW9uIik7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LnRhcmdldCwgZXhwZWN0ZWQudGFyZ2V0LCAi
dGFyZ2V0Iik7Ci0gIGFzc2VydF9lcXVhbHMocmVzdWx0LnNpdGUsIGV4cGVjdGVkLnNpdGUsICJz
aXRlIik7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1l
dGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1NDcyYWE1YjQ3ZTQyNGJiNjU5MGQ2Yzc1N2RmNjM1ZWI0YjZkZDFmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9w
b3N0LXRvLW93bmVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotaW1wb3J0IGpz
b24KLQotZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGhlYWRlcnMgPSBbKCJDb250
ZW50LVR5cGUiLCAidGV4dC9odG1sIildCi0KLSAgICBib2R5ID0gIiIiCi0gICAgICAgIDwhRE9D
VFlQRSBodG1sPgotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgdmFyIGRhdGEgPSAlczsK
LSAgICAgICAgICAgIGlmICh3aW5kb3cub3BlbmVyKQotICAgICAgICAgICAgICAgIHdpbmRvdy5v
cGVuZXIucG9zdE1lc3NhZ2UoZGF0YSwgIioiKTsKLSAgICAgICAgICAgIGlmICh3aW5kb3cudG9w
ICE9IHdpbmRvdykKLSAgICAgICAgICAgICAgICB3aW5kb3cudG9wLnBvc3RNZXNzYWdlKGRhdGEs
ICIqIik7Ci0gICAgICAgIDwvc2NyaXB0PgotICAgICIiIiAlIGpzb24uZHVtcHMocmVxdWVzdC5o
ZWFkZXJzLmdldCgiU2VjLU1ldGFkYXRhIiwgIiIpKQotICAgIHJldHVybiBoZWFkZXJzLCBib2R5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jl
c291cmNlcy9yZWNvcmQtaGVhZGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
ZGY5YTUzZmExNzAyNDUzN2I4ZmNlNDgwMjNhNTJiNjJkODUzYTEyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVh
ZGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTE2ICswLDAgQEAKLWltcG9ydCBvcwotaW1wb3J0
IHV1aWQKLWltcG9ydCBoYXNobGliCi1pbXBvcnQgdGltZQotCi1kZWYgbWFpbihyZXF1ZXN0LCBy
ZXNwb25zZSk6Ci0gICMjIEdldCB0aGUgcXVlcnkgcGFyYW1ldGVyIChrZXkpIGZyb20gVVJMICMj
Ci0gICMjIFRlc3RzIHdpbGwgcmVjb3JkIFBPU1QgcmVxdWVzdHMgKENTUCBSZXBvcnQpIGFuZCBH
RVQgKHJlc3QpICMjCi0gIGlmIHJlcXVlc3QuR0VUOgotICAgIGtleSA9IHJlcXVlc3QuR0VUWydm
aWxlJ10KLSAgZWxpZiByZXF1ZXN0LlBPU1Q6Ci0gICAga2V5ID0gcmVxdWVzdC5QT1NUWydmaWxl
J10KLQotICAjIyBDb252ZXJ0IHRoZSBrZXkgZnJvbSBTdHJpbmcgdG8gVVVJRCB2YWxpZCBTdHJp
bmcgIyMKLSAgdGVzdElkID0gaGFzaGxpYi5tZDUoa2V5KS5oZXhkaWdlc3QoKQotCi0gICMjIEhh
bmRsZSB0aGUgaGVhZGVyIHJldHJpZXZhbCByZXF1ZXN0ICMjCi0gIGlmICdyZXRyaWV2ZScgaW4g
cmVxdWVzdC5HRVQ6Ci0gICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX3N0YXR1cygyMDApCi0gICAg
cmVzcG9uc2Uud3JpdGVyLmVuZF9oZWFkZXJzKCkKLSAgICB0cnk6Ci0gICAgICBoZWFkZXJfdmFs
dWUgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKHRlc3RJZCkKLSAgICAgIHJlc3BvbnNlLndy
aXRlci53cml0ZShoZWFkZXJfdmFsdWUpCi0gICAgZXhjZXB0IChLZXlFcnJvciwgVmFsdWVFcnJv
cikgYXMgZToKLSAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZSgiTm8gaGVhZGVyIGhhcyBiZWVu
IHJlY29yZGVkIikKLSAgICAgIHBhc3MKLQotICAgIHJlc3BvbnNlLmNsb3NlX2Nvbm5lY3Rpb24g
PSBUcnVlCi0KLSAgIyMgUmVjb3JkIGluY29taW5nIFNlYy1NZXRhZGF0YSBoZWFkZXIgdmFsdWUK
LSAgZWxzZToKLSAgICB0cnk6Ci0gICAgICAjIyBSZXR1cm4gZW1wdHkgc3RyaW5nIGFzIGEgZGVm
YXVsdCB2YWx1ZSAjIwotICAgICAgaGVhZGVyID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiU2VjLU1l
dGFkYXRhIiwgIiIpCi0gICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQodGVzdElkLCBoZWFk
ZXIpCi0gICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgIyMgVGhlIGhlYWRlciBpcyBhbHJlYWR5
IHJlY29yZGVkIG9yIGl0IGRvZXNuJ3QgZXhpc3QKLSAgICAgIHBhc3MKLQotICAgICMjIFByZXZl
bnQgdGhlIGJyb3dzZXIgZnJvbSBjYWNoaW5nIHJldHVybmVkIHJlc3BvbnNlcyBhbmQgYWxsb3cg
Q09SUyAjIwotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4iLCAiKiIpCi0gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNhY2hlLUNvbnRyb2wiLCAi
bm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUiKQotICAgIHJlc3BvbnNlLmhlYWRl
cnMuc2V0KCJQcmFnbWEiLCAibm8tY2FjaGUiKQotICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJF
eHBpcmVzIiwgIjAiKQotCi0gICAgIyMgQWRkIGEgdmFsaWQgU2VydmljZVdvcmtlciBDb250ZW50
LVR5cGUgIyMKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgic2VydmljZXdvcmtlciIpOgotICAgICAg
cmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2Ny
aXB0IikKLQotICAgICMjIFJldHVybiBhIHZhbGlkIC52dHQgY29udGVudCBmb3IgdGhlIDx0cmFj
az4gdGFnICMjCi0gICAgaWYga2V5LnN0YXJ0c3dpdGgoInRyYWNrIik6Ci0gICAgICByZXR1cm4g
IldFQlZUVCIKLQotICAgICMjIFJldHVybiBhIHZhbGlkIFNoYXJlZFdvcmtlciAjIwotICAgIGlm
IGtleS5zdGFydHN3aXRoKCJzaGFyZWR3b3JrZXIiKToKLSAgICAgIHJlc3BvbnNlLmhlYWRlcnMu
c2V0KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpCi0gICAgICBmaWxl
ID0gb3Blbihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwgImZldGNoIiwgInNlYy1tZXRh
ZGF0YSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlc291cmNlcyIsICJzaGFy
ZWRXb3JrZXIuanMiKSwgInIiKQotICAgICAgc2hhcmVkX3dvcmtlciA9IGZpbGUucmVhZCgpCi0g
ICAgICBmaWxlLmNsb3NlKCkKLSAgICAgIHJldHVybiBzaGFyZWRfd29ya2VyCi0KLSAgICAjIyBS
ZXR1cm4gYSB2YWxpZCBmb250IGNvbnRlbnQgYW5kIENvbnRlbnQtVHlwZSAjIwotICAgIGlmIGtl
eS5zdGFydHN3aXRoKCJmb250Iik6Ci0gICAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVu
dC1UeXBlIiwgImFwcGxpY2F0aW9uL3gtZm9udC10dGYiKQotICAgICAgZmlsZSA9IG9wZW4ob3Mu
cGF0aC5qb2luKHJlcXVlc3QuZG9jX3Jvb3QsICJmb250cyIsICJBaGVtLnR0ZiIpLCAiciIpCi0g
ICAgICBmb250ID0gZmlsZS5yZWFkKCkKLSAgICAgIGZpbGUuY2xvc2UoKQotICAgICAgcmV0dXJu
IGZvbnQKLQotICAgICMjIFJldHVybiBhIHZhbGlkIGF1ZGlvIGNvbnRlbnQgYW5kIENvbnRlbnQt
VHlwZSAjIwotICAgIGlmIGtleS5zdGFydHN3aXRoKCJhdWRpbyIpOgotICAgICAgcmVzcG9uc2Uu
aGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJhdWRpby9tcGVnIikKLSAgICAgIGZpbGUgPSBv
cGVuKG9zLnBhdGguam9pbihyZXF1ZXN0LmRvY19yb290LCAibWVkaWEiLCAic291bmRfNS5tcDMi
KSwgInIiKQotICAgICAgYXVkaW8gPSBmaWxlLnJlYWQoKQotICAgICAgZmlsZS5jbG9zZSgpCi0g
ICAgICByZXR1cm4gYXVkaW8KLQotICAgICMjIFJldHVybiBhIHZhbGlkIHZpZGVvIGNvbnRlbnQg
YW5kIENvbnRlbnQtVHlwZSAjIwotICAgIGlmIGtleS5zdGFydHN3aXRoKCJ2aWRlbyIpOgotICAg
ICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtVHlwZSIsICJ2aWRlby9tcDQiKQotICAg
ICAgZmlsZSA9IG9wZW4ob3MucGF0aC5qb2luKHJlcXVlc3QuZG9jX3Jvb3QsICJtZWRpYSIsICJB
NC5tcDQiKSwgInIiKQotICAgICAgdmlkZW8gPSBmaWxlLnJlYWQoKQotICAgICAgZmlsZS5jbG9z
ZSgpCi0gICAgICByZXR1cm4gdmlkZW8KLQotICAgICMjIFJldHVybiBhIHZhbGlkIHN0eWxlIGNv
bnRlbnQgYW5kIENvbnRlbnQtVHlwZSAjIwotICAgIGlmIGtleS5zdGFydHN3aXRoKCJzdHlsZSIp
IG9yIGtleS5zdGFydHN3aXRoKCJlbWJlZCIpIG9yIGtleS5zdGFydHN3aXRoKCJvYmplY3QiKToK
LSAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIikK
LSAgICAgIHJldHVybiAiPGh0bWw+RU1CRUQhPC9odG1sPiIKLQotICAgICMjIFJldHVybiBhIHZh
bGlkIGltYWdlIGNvbnRlbnQgYW5kIENvbnRlbnQtVHlwZSBmb3IgcmVkaXJlY3QgcmVxdWVzdHMg
IyMKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgicmVkaXJlY3QiKToKLSAgICAgIHJlc3BvbnNlLmhl
YWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAiaW1hZ2UvanBlZyIpCi0gICAgICBmaWxlID0gb3Bl
bihvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwgIm1lZGlhIiwgIjF4MS1ncmVlbi5wbmci
KSwgInIiKQotICAgICAgaW1hZ2UgPSBmaWxlLnJlYWQoKQotICAgICAgZmlsZS5jbG9zZSgpCi0g
ICAgICByZXR1cm4gaW1hZ2UKLQotICAgICMjIFJldHVybiBhIHZhbGlkIGRlZGljYXRlZCB3b3Jr
ZXIKLSAgICBpZiBrZXkuc3RhcnRzd2l0aCgid29ya2VyIik6Ci0gICAgICByZXNwb25zZS5oZWFk
ZXJzLnNldCgiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiKQotICAgICAg
cmV0dXJuICJzZWxmLnBvc3RNZXNzYWdlKCdsb2FkZWQnKTsiCi0KLSAgICAjIyBSZXR1cm4gYSB2
YWxpZCBYU0xUCi0gICAgaWYga2V5LnN0YXJ0c3dpdGgoInhzbHQiKToKLSAgICAgIHJlc3BvbnNl
LmhlYWRlcnMuc2V0KCJDb250ZW50LVR5cGUiLCAidGV4dC94c2wiKQotICAgICAgcmV0dXJuICIi
Ijw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08eHNsOnN0eWxlc2hlZXQg
eG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIHZlcnNpb249
IjEuMCI+Ci0gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9IkAqfG5vZGUoKSI+Ci0gICAgPHhzbDpjb3B5
PgotICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAKnxub2RlKCkiLz4KLSAgICA8
L3hzbDpjb3B5PgotICA8L3hzbDp0ZW1wbGF0ZT4KLTwveHNsOnN0eWxlc2hlZXQ+IiIiCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9zaGFyZWRXb3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJj
ZXMvc2hhcmVkV29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZWI4OWNi
NGY2OGEwOTgxNTRjZjM2MDVmNTMzMThhZjJmNWU1NmYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9zaGFyZWRXb3JrZXIuanMK
KysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLW9uY29ubmVjdCA9IGZ1bmN0aW9uKGUpIHsK
LSAgdmFyIHBvcnQgPSBlLnBvcnRzWzBdOwotCi0gIHBvcnQuYWRkRXZlbnRMaXN0ZW5lcignbWVz
c2FnZScsIGZ1bmN0aW9uKGUpIHsKLSAgICBwb3J0LnBvc3RNZXNzYWdlKCJSZWFkeSIpOwotICB9
KTsKLQotICBwb3J0LnN0YXJ0KCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGY4YTJhODAzZTFkMTE5NGRhNjAxMWY2YzY3NDZkOGJlZjQzMGIz
ZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEv
cmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2RlZGljYXRlZFdvcmtlci5qcwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291
cmNlcy9lY2hvLWFzLWpzb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1t
ZXRhZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3du
ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNl
cy9zaGFyZWRXb3JrZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMveHNsdC10ZXN0LnN1Yi54bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy94c2x0LXRlc3Quc3ViLnhtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291
cmNlcy94c2x0LXRlc3Quc3ViLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJl
YjlhZjhkMjgyZjI2NzJhYjA4YzRjMzY5ZDFmZTBiMDYxZTgwZi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMveHNsdC10ZXN0LnN1
Yi54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAi
IGVuY29kaW5nPSJVVEYtOCI/PgotPD94bWwtc3R5bGVzaGVldCBocmVmPSJodHRwczovL3t7aG9z
dH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNv
cmQtaGVhZGVyLnB5P2ZpbGU9eHNsdC1zYW1lLW9yaWdpbiIgdHlwZT0idGV4dC94c2wiID8+Ci08
P3htbC1zdHlsZXNoZWV0IGhyZWY9Imh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0
dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9m
aWxlPXhzbHQtc2FtZS1zaXRlIiB0eXBlPSJ0ZXh0L3hzbCIgPz4KLTw/eG1sLXN0eWxlc2hlZXQg
aHJlZj0iaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0
Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9eHNsdC1jcm9z
cy1zaXRlIiB0eXBlPSJ0ZXh0L3hzbCIgPz4KLQotPCEtLSBwb3N0TWVzc2FnZSBwYXJlbnQgYmFj
ayB3aGVuIHRoZSByZXNvdXJjZXMgYXJlIGxvYWRlZCAtLT4KLTxzY3JpcHQgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjwhW0NEQVRBWwotICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCl7Ci0gICAgaWYgKHdpbmRvdy5vcGVuZXIpCi0gICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1l
c3NhZ2UoIiIsICIqIik7Ci0gICAgaWYgKHdpbmRvdy50b3AgIT0gd2luZG93KQotICAgICAgICB3
aW5kb3cudG9wLnBvc3RNZXNzYWdlKCIiLCAiKiIpO30sIDEwMCk7Ci1dXT48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc2VjLW1ldGFkYXRhL3NjcmlwdC50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1l
dGFkYXRhL3NjcmlwdC50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzkwYzE0NThiZjZmOTJkMTY5ZWRlNmJlY2NlZDEyYjVmMzI4
MzEyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YS9zY3JpcHQudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw5ICswLDAgQEAKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3
dy5sb2NhbGhvc3Q6OTQ0My9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtc2Ny
aXB0LnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFz
LXNjcmlwdC5weQotQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3Lmxv
Y2FsaG9zdDo5NDQzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQu
cHkKLUJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3Q6OTQ0My9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtc2Ny
aXB0LnB5Ci0KLUZBSUwgU2FtZS1vcmlnaW4gc2NyaXB0IGFzc2VydF9ub3RfZXF1YWxzOiBFbXB0
eSBTZWMtTWV0YWRhdGEgaGVhZGVyLiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAiIgotRkFJTCBTYW1l
LXNpdGUgc2NyaXB0IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndmFsdWUuc3Bs
aXQnKQotRkFJTCBDcm9zcy1zaXRlIHNjcmlwdCBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ3ZhbHVlLnNwbGl0JykKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc2NyaXB0LnRlbnRhdGl2
ZS5odHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NjcmlwdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0M2UxMTgyN2Y1NjVhZDExNDE2NTg5YWU2
MDFkMThjZDgwMDgyMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9z
ZWMtbWV0YWRhdGEvc2NyaXB0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDQ2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRh
L3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci0KLTwhLS0gU2FtZS1vcmlnaW4gc2NyaXB0
IC0tPgotPHNjcmlwdCBzcmM9Imh0dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11bMF19fS9m
ZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2VjaG8tYXMtc2NyaXB0LnB5Ij48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0gIHRlc3QodCA9PiB7Ci0gICAgdC5hZGRfY2xlYW51cChfID0+IHsgaGVhZGVy
ID0gbnVsbDsgfSk7Ci0KLSAgICBhc3NlcnRfaGVhZGVyX2VxdWFscyhoZWFkZXIsIHsKLSAgICAg
ICJjYXVzZSI6IHVuZGVmaW5lZCwKLSAgICAgICJkZXN0aW5hdGlvbiI6ICJzY3JpcHQiLAotICAg
ICAgInNpdGUiOiAic2FtZS1vcmlnaW4iCi0gICAgfSk7Ci0gIH0sICJTYW1lLW9yaWdpbiBzY3Jp
cHQiKTsKLTwvc2NyaXB0PgotCi08IS0tIFNhbWUtc2l0ZSBzY3JpcHQgLS0+Ci08c2NyaXB0IHNy
Yz0iaHR0cHM6Ly97e2hvc3RzW11bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2Vj
LW1ldGFkYXRhL3Jlc291cmNlcy9lY2hvLWFzLXNjcmlwdC5weSI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotICB0ZXN0KHQgPT4gewotICAgIHQuYWRkX2NsZWFudXAoXyA9PiB7IGhlYWRlciA9IG51bGw7
IH0pOwotCi0gICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoaGVhZGVyLCB7Ci0gICAgICAiY2F1c2Ui
OiB1bmRlZmluZWQsCi0gICAgICAiZGVzdGluYXRpb24iOiAic2NyaXB0IiwKLSAgICAgICJzaXRl
IjogInNhbWUtc2l0ZSIKLSAgICB9KTsKLSAgfSwgIlNhbWUtc2l0ZSBzY3JpcHQiKTsKLTwvc2Ny
aXB0PgotCi08IS0tIENyb3NzLXNpdGUgc2NyaXB0IC0tPgotPHNjcmlwdCBzcmM9Imh0dHBzOi8v
e3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0
YS9yZXNvdXJjZXMvZWNoby1hcy1zY3JpcHQucHkiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAgdGVz
dCh0ID0+IHsKLSAgICB0LmFkZF9jbGVhbnVwKF8gPT4geyBoZWFkZXIgPSBudWxsOyB9KTsKLQot
ICAgIGFzc2VydF9oZWFkZXJfZXF1YWxzKGhlYWRlciwgewotICAgICAgImNhdXNlIjogdW5kZWZp
bmVkLAotICAgICAgImRlc3RpbmF0aW9uIjogInNjcmlwdCIsCi0gICAgICAic2l0ZSI6ICJjcm9z
cy1zaXRlIgotICAgIH0pOwotICB9LCAiQ3Jvc3Mtc2l0ZSBzY3JpcHQiKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zZWMtbWV0YWRhdGEvc2VydmljZXdvcmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc2VjLW1ldGFkYXRhL3NlcnZpY2V3b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2ODJiYzllNDUyOTAwMzFlYTJh
MjE5MDg0NGRiMzM0ZmMyNjNjOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zZWMtbWV0YWRhdGEvc2VydmljZXdvcmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1GQUlMIFVudGl0bGVkIGFz
c2VydF9ub3RfZXF1YWxzOiBFbXB0eSBTZWMtTWV0YWRhdGEgaGVhZGVyLiBnb3QgZGlzYWxsb3dl
ZCB2YWx1ZSAiIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9zZXJ2aWNld29ya2VyLnRlbnRhdGl2ZS5o
dHRwcy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NlcnZpY2V3b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1Yi5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWZhYmIyMGFhYTQwYzkxZjVkOTBk
MTgwZjUyZDU5NjA4NmE1NWNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc2VjLW1ldGFkYXRhL3NlcnZpY2V3b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCIvPgotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im10cnpvc0Bnb29nbGUuY29t
IiB0aXRsZT0iTWFjaWVrIFRyem9zIj4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMv
aGVscGVyLmpzPjwvc2NyaXB0PgotPGJvZHk+Ci0gIDxzY3JpcHQ+Ci0gICAgICBpZiAoJ3NlcnZp
Y2VXb3JrZXInIGluIG5hdmlnYXRvcikgewotICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsIGZ1bmN0aW9uKCkgewotICAgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKCdodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2Vj
LW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9c2VydmljZXdvcmtlci1z
YW1lLW9yaWdpbicpLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgICB0
ZXN0X3NhbWVfb3JpZ2luKCk7Ci0KLSAgICAgICAgICAgIC8vIHVuaW5zdGFsbCB0aGUgc2Vydmlj
ZXdvcmtlciBhZnRlciB0aGUgdGVzdAotICAgICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIuZ2V0UmVnaXN0cmF0aW9ucygpLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9ucykgewotICAg
ICAgICAgICAgICBmb3IobGV0IHJlZ2lzdHJhdGlvbiBvZiByZWdpc3RyYXRpb25zKSB7Ci0gICAg
ICAgICAgICAgICAgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKQotICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9KQotICAgICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewotICAgICAgICAgICAg
Ly8gcmVnaXN0cmF0aW9uIGZhaWxlZAotICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICAg
IH0KLSAgICAgIGVsc2UgewotICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
ICAgZG9uZSgpOwotICAgICAgICAgICAgfSwgIkJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBzZXJ2
aWNld29ya2VyIik7Ci0gICAgICB9Ci0gIDwvc2NyaXB0PgotPC9ib2R5PgotCi08c2NyaXB0Pgot
ICBmdW5jdGlvbiB0ZXN0X3NhbWVfb3JpZ2luKCl7Ci0gICAgcHJvbWlzZV90ZXN0KHQgPT4gewot
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQg
a2V5ID0gInNlcnZpY2V3b3JrZXItc2FtZS1vcmlnaW4iOwotICAgICAgbGV0IGV4cGVjdGVkID0g
eyJkZXN0aW5hdGlvbiI6InNlcnZpY2V3b3JrZXIiLCAic2l0ZSI6InNhbWUtb3JpZ2luIn07Ci0g
ICAgICBmZXRjaCgiL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5w
eT9yZXRyaWV2ZT10cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4g
cmVzcG9uc2UudGV4dCgpKQotICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1
YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAg
ICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9KQotICAgIH0pCi0gIH0KLTwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc2hhcmVkd29ya2VyLnRlbnRhdGl2ZS5odHRwcy5zdWIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9zZWMtbWV0YWRhdGEvc2hhcmVkd29ya2VyLnRlbnRhdGl2ZS5odHRwcy5zdWItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDBmMTEwNTY3MjViMWMz
ZmQzNjJiYzNmOTEwNTM5OGIyMTRjYWIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NoYXJlZHdvcmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdF
OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCi0KLUZB
SUwgVW50aXRsZWQgUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdv
cmtlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9zaGFyZWR3b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1
Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zZWMtbWV0YWRhdGEvc2hhcmVkd29ya2VyLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDkwMTdjY2JiM2EyYjFiODc4ZDE1ZTQxOTlkNTlj
YWQyOWEyMjc3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1t
ZXRhZGF0YS9zaGFyZWR3b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxsaW5rIHJlbD0iYXV0aG9y
IiBocmVmPSJtdHJ6b3NAZ29vZ2xlLmNvbSIgdGl0bGU9Ik1hY2llayBUcnpvcyI+Ci08c2NyaXB0
IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9mZXRj
aC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcz48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LSAgLy8gVEVTVFMgLy8KLSAgaWYgKHdpbmRvdy5Xb3JrZXIpIHsKLQotICAgICAgLy8gIFNhbWUt
T3JpZ2luIHRlc3QKLSAgICAgIHZhciBzaGFyZWRXb3JrZXIgPSBuZXcgU2hhcmVkV29ya2VyKCcv
ZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9c2hhcmVk
d29ya2VyLXNhbWUtb3JpZ2luJyk7Ci0gICAgICBzaGFyZWRXb3JrZXIucG9ydC5zdGFydCgpOwot
Ci0gICAgICBzaGFyZWRXb3JrZXIub25lcnJvciA9IGZ1bmN0aW9uKCl7Ci0gICAgICAgIHRlc3Rf
c2FtZV9vcmlnaW4oKTsKLSAgICAgIH0KLSAgICAgIHNoYXJlZFdvcmtlci5wb3J0Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdGVzdF9zYW1lX29yaWdpbigpOwotICAgICAgfQot
ICAgICAgc2hhcmVkV29ya2VyLnBvcnQucG9zdE1lc3NhZ2UoIlJlYWR5Iik7Ci0gICAgfQotCi0g
IGZ1bmN0aW9uIHRlc3Rfc2FtZV9vcmlnaW4oKXsKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0g
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICBs
ZXQga2V5ID0gInNoYXJlZHdvcmtlci1zYW1lLW9yaWdpbiI7Ci0gICAgICAgIGxldCBleHBlY3Rl
ZCA9IHsiZGVzdGluYXRpb24iOiJzaGFyZWR3b3JrZXIiLCAic2l0ZSI6InNhbWUtb3JpZ2luIn07
Ci0KLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1o
ZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAgICAgLnRoZW4ocmVz
cG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0
X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50aGVuKF8gPT4gcmVz
b2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0gICAgICB9KQotICAg
IH0sICJTYW1lLU9yaWdpbiBzaGFyZWR3b3JrZXIiKQotICB9Ci08L3NjcmlwdD4KLTxib2R5Pjwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3N0eWxlLnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zZWMtbWV0YWRhdGEvc3R5bGUudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlOTY1MDE4OTZhYTYyZmNkZDEyMWUxYWIwNmI3
MjM1M2NiYWQ5NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMt
bWV0YWRhdGEvc3R5bGUudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogRGlkIG5vdCBwYXJzZSBzdHls
ZXNoZWV0IGF0ICdodHRwczovL2xvY2FsaG9zdDo5NDQzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNv
dXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXN0eWxlLXNhbWUtb3JpZ2luJyBiZWNhdXNlIG5v
biBDU1MgTUlNRSB0eXBlcyBhcmUgbm90IGFsbG93ZWQgaW4gc3RyaWN0IG1vZGUuCi1CbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gv
c2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9c3R5bGUtc2FtZS1z
aXRlCi1CbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubm90LXdlYi1w
bGF0Zm9ybS50ZXN0Ojk0NDMvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVh
ZGVyLnB5P2ZpbGU9c3R5bGUtY3Jvc3Mtc2l0ZQotCi1GQUlMIFNhbWUtT3JpZ2luIHN0eWxlIGFz
c2VydF9ub3RfZXF1YWxzOiBFbXB0eSBTZWMtTWV0YWRhdGEgaGVhZGVyLiBnb3QgZGlzYWxsb3dl
ZCB2YWx1ZSAiIgotRkFJTCBTYW1lLVNpdGUgc3R5bGUgYXNzZXJ0X2VxdWFsczogZGVzdGluYXRp
b24gZXhwZWN0ZWQgKHN0cmluZykgInN0eWxlIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5l
ZAotRkFJTCBDcm9zcy1TaXRlIHN0eWxlIGFzc2VydF9lcXVhbHM6IGRlc3RpbmF0aW9uIGV4cGVj
dGVkIChzdHJpbmcpICJzdHlsZSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zZWMtbWV0YWRhdGEvc3R5bGUudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvc3R5
bGUudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2MDlkNTc2NGYwOGNhNWIzMjQyNjkyZjRiZGQ5NGYyYjM2NDQ4MWIzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3N0eWxlLnRlbnRhdGl2ZS5o
dHRwcy5zdWIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08bGluayByZWw9ImF1dGhvciIgaHJlZj0ibXRyem9zQGdvb2dsZS5jb20i
IHRpdGxlPSJNYWNpZWsgVHJ6b3MiPgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9o
ZWxwZXIuanM+PC9zY3JpcHQ+Ci08Ym9keT48L2JvZHk+Ci08c2NyaXB0PgotICBwcm9taXNlX3Rl
c3QodCA9PiB7Ci0gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
LSAgICAgIGxldCBrZXkgPSAic3R5bGUtc2FtZS1vcmlnaW4iOwotCi0gICAgICBsZXQgZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLSAgICAgIGUucmVsID0gInN0eWxlc2hlZXQi
OwotICAgICAgZS5ocmVmID0gImh0dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11bMF19fS9m
ZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/ZmlsZT0iICsga2V5
OwotICAgICAgZS5vbmxvYWQgPSBlID0+IHsKLSAgICAgICAgbGV0IGV4cGVjdGVkID0geyJkZXN0
aW5hdGlvbiI6InN0eWxlIiwgInNpdGUiOiJzYW1lLW9yaWdpbiJ9OwotICAgICAgICBmZXRjaCgi
L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10
cnVlJmZpbGU9IiArIGtleSkKLSAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50
ZXh0KCkpCi0gICAgICAgICAgLnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0
LCBleHBlY3RlZCkpCi0gICAgICAgICAgLnRoZW4oXyA9PiByZXNvbHZlKCkpCi0gICAgICAgICAg
LmNhdGNoKGUgPT4gcmVqZWN0KGUpKTsKLSAgICAgIH07Ci0KLSAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZSk7Ci0gICAgfSkKLSAgfSwgIlNhbWUtT3JpZ2luIHN0eWxlIik7Ci0KLSAg
cHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVq
ZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gInN0eWxlLXNhbWUtc2l0ZSI7Ci0KLSAgICAgIGxl
dCBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpOwotICAgICAgZS5yZWwgPSAic3R5
bGVzaGVldCI7Ci0gICAgICBlLmhyZWYgPSAiaHR0cHM6Ly97e2hvc3RzW11bd3d3XX19Ont7cG9y
dHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVy
LnB5P2ZpbGU9IiArIGtleTsKLSAgICAgIGUub25sb2FkID0gZSA9PiB7Ci0gICAgICAgIGxldCBl
eHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJzdHlsZSIsICJzaXRlIjoic2FtZS1zaXRlIn07Ci0g
ICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVy
LnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3BvbnNl
ID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFk
ZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29sdmUo
KSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLQotICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTsKLSAgICB9KQotICB9LCAiU2FtZS1TaXRlIHN0
eWxlIik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQga2V5ID0gInN0eWxlLWNyb3NzLXNpdGUi
OwotCi0gICAgICBsZXQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKLSAgICAg
IGUucmVsID0gInN0eWxlc2hlZXQiOwotICAgICAgZS5ocmVmID0gImh0dHBzOi8ve3tob3N0c1th
bHRdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJj
ZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPSIgKyBrZXk7Ci0gICAgICBlLm9ubG9hZCA9IGUgPT4g
ewotICAgICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoic3R5bGUiLCAic2l0ZSI6
ImNyb3NzLXNpdGUifTsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3Vy
Y2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPSIgKyBrZXkpCi0gICAgICAg
ICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRl
eHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgIC50
aGVuKF8gPT4gcmVzb2x2ZSgpKQotICAgICAgICAgIC5jYXRjaChlID0+IHJlamVjdChlKSk7Ci0g
ICAgICB9OwotCi0gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwotICAgIH0pCi0g
IH0sICJDcm9zcy1TaXRlIHN0eWxlIik7Ci08L3NjcmlwdD4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMt
bWV0YWRhdGEvdHJhY2sudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS90
cmFjay50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMGJhZTZjZjMzN2I5YTE0Yjk4ZTQwNTEzMWQwYmU1NzI1NmY0YTdmZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS90cmFjay50
ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAs
MCBAQAotCi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCi1USU1F
T1VUIFNhbWUtT3JpZ2luIHRyYWNrIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gU2FtZS1TaXRlIHRy
YWNrCi1OT1RSVU4gQ3Jvc3MtU2l0ZSB0cmFjawotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS90cmFjay50
ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS90cmFjay50ZW50YXRpdmUuaHR0cHMuc3Vi
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4OWQ0NzQ1ZmYyZGIyMzRlM2U0
OWVlMjhkZDhhZjE1YWNiYzk3MzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zZWMtbWV0YWRhdGEvdHJhY2sudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtdHJ6b3NAZ29vZ2xlLmNvbSIgdGl0bGU9Ik1hY2llayBUcnpvcyI+Ci08c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9m
ZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL2hlbHBlci5qcz48L3NjcmlwdD4KLTxib2R5Pgot
PC9ib2R5PgotPHNjcmlwdD4KLSAgZnVuY3Rpb24gY3JlYXRlVmlkZW9FbGVtZW50KCkgewotICAg
IGxldCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7Ci0gICAgZWwuc3JjID0g
Ii9tZWRpYS9tb3ZpZV81Lm1wNCI7Ci0gICAgZWwuc2V0QXR0cmlidXRlKCJjb250cm9scyIsICIi
KTsKLSAgICBlbC5zZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIiwgIiIpOwotICAgIHJldHVybiBl
bDsKLSAgfQotCi0gIGZ1bmN0aW9uIGNyZWF0ZVRyYWNrKCkgewotICAgIGxldCBlbCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInRyYWNrIik7Ci0gICAgZWwuc2V0QXR0cmlidXRlKCJkZWZhdWx0
IiwgIiIpOwotICAgIGVsLnNldEF0dHJpYnV0ZSgia2luZCIsICJjYXB0aW9ucyIpOwotICAgIGVs
LnNldEF0dHJpYnV0ZSgic3JjbGFuZyIsICJlbiIpOwotICAgIHJldHVybiBlbDsKLSAgfQotCi0g
IHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4gewotICAgICAgbGV0IHZpZGVvID0gY3JlYXRlVmlkZW9FbGVtZW50KCk7Ci0gICAg
ICBsZXQgZWwgPSBjcmVhdGVUcmFjaygpOwotICAgICAgZWwuc3JjID0gImh0dHBzOi8ve3tob3N0
fX06e3twb3J0c1todHRwc11bMF19fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29y
ZC1oZWFkZXIucHk/ZmlsZT10cmFjay1zYW1lLW9yaWdpbiI7Ci0gICAgICBlbC5vbmxvYWQgPSB0
LnN0ZXBfZnVuYyhfID0+IHsKLSAgICAgICAgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoidHJh
Y2siLCAic2l0ZSI6InNhbWUtb3JpZ2luIn07Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1l
dGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT10cmFj
ay1zYW1lLW9yaWdpbiIpCi0gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50
ZXh0KCkpCi0gICAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9oZWFkZXJfZXF1YWxzKHRl
eHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAgIC50aGVuKF8gPT4gcmVzb2x2ZSgpKTsKLSAgICAg
IH0pOwotICAgICAgdmlkZW8uYXBwZW5kQ2hpbGQoZWwpOwotICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZCh2aWRlbyk7Ci0gICAgfSk7Ci0gIH0sICJTYW1lLU9yaWdpbiB0cmFjayIpOwot
Ci0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4gewotICAgICAgbGV0IHZpZGVvID0gY3JlYXRlVmlkZW9FbGVtZW50KCk7Ci0g
ICAgICBsZXQgZWwgPSBjcmVhdGVUcmFjaygpOwotICAgICAgZWwuc3JjID0gImh0dHBzOi8ve3to
b3N0c1tdW3d3d119fTp7e3BvcnRzW2h0dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNv
dXJjZXMvcmVjb3JkLWhlYWRlci5weT9maWxlPXRyYWNrLXNhbWUtc2l0ZSI7Ci0gICAgICBlbC5v
bmxvYWQgPSB0LnN0ZXBfZnVuYyhfID0+IHsKLSAgICAgICAgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0
aW9uIjoidHJhY2siLCAic2l0ZSI6InNhbWUtc2l0ZSJ9OwotICAgICAgICBmZXRjaCgiL2ZldGNo
L3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVlJmZp
bGU9dHJhY2stc2FtZS1zaXRlIikKLSAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3Bv
bnNlLnRleHQoKSkKLSAgICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVh
bHModGV4dCwgZXhwZWN0ZWQpKQotICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSkKLSAgICAgICAg
ICAgIC5jYXRjaChyZWplY3QpOwotCi0gICAgICB9KTsKLSAgICAgIHZpZGVvLmFwcGVuZENoaWxk
KGVsKTsKLSAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOwotICAgIH0pOwot
ICB9LCAiU2FtZS1TaXRlIHRyYWNrIik7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICBsZXQgdmlkZW8g
PSBjcmVhdGVWaWRlb0VsZW1lbnQoKTsKLSAgICAgIGxldCBlbCA9IGNyZWF0ZVRyYWNrKCk7Ci0g
ICAgICBlbC5zcmMgPSAiaHR0cHM6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNd
WzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P2ZpbGU9
dHJhY2stY3Jvc3Mtc2l0ZSI7Ci0gICAgICBlbC5vbmxvYWQgPSB0LnN0ZXBfZnVuYyhfID0+IHsK
LSAgICAgICAgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9uIjoidHJhY2siLCAic2l0ZSI6ImNyb3Nz
LXNpdGUifTsKLSAgICAgICAgZmV0Y2goIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3Jl
Y29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPXRyYWNrLWNyb3NzLXNpdGUiKQotICAg
ICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKQotICAgICAgICAgICAg
LnRoZW4odGV4dCA9PiBhc3NlcnRfaGVhZGVyX2VxdWFscyh0ZXh0LCBleHBlY3RlZCkpCi0gICAg
ICAgICAgICAudGhlbihyZXNvbHZlKQotICAgICAgICAgICAgLmNhdGNoKHJlamVjdCk7Ci0gICAg
ICB9KTsKLSAgICAgIHZpZGVvLmFwcGVuZENoaWxkKGVsKTsKLSAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQodmlkZW8pOwotICAgIH0pOwotICB9LCAiQ3Jvc3MtU2l0ZSB0cmFjayIpOwot
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjllZWIxMjNmZGRmYTcw
ZGRjNDgzYzA3NDY4NGU2YzgyNzllMDk5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MzMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvUkVBRE1FLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvZW1iZWQudGVudGF0
aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvZmV0Y2gudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMt
bWV0YWRhdGEvZm9udC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9pZnJhbWUudGVu
dGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvaW1nLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRt
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2Vj
LW1ldGFkYXRhL29iamVjdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXBvcnQu
dGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvcmVwb3J0LnRlbnRhdGl2ZS5odHRwcy5z
dWIuaHRtbC5zdWIuaGVhZGVycwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3NjcmlwdC50ZW50YXRpdmUuaHR0cHMuc3ViLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Nl
Yy1tZXRhZGF0YS9zZXJ2aWNld29ya2VyLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRh
L3NoYXJlZHdvcmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS9zdHlsZS50ZW50
YXRpdmUuaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS90cmFjay50ZW50YXRpdmUuaHR0cHMuc3ViLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3Nl
Yy1tZXRhZGF0YS93aW5kb3ctb3Blbi50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS93
b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEveHNsdC50ZW50YXRpdmUuaHR0
cHMuc3ViLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3dpbmRvdy1vcGVuLnRlbnRhdGl2ZS5odHRw
cy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvd2luZG93LW9wZW4udGVudGF0aXZlLmh0dHBzLnN1
Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2OGI4OTYzMWI0
ZGQ3NDhjODdlNjJjZTQzMjI2NGM0NjRkNjE5MWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEvd2luZG93LW9wZW4udGVudGF0aXZlLmh0dHBzLnN1
Yi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1CbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubG9jYWxob3N0Ojk0NDMvZmV0Y2gvc2Vj
LW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci1CbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0Ojk0NDMvZmV0Y2gv
c2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Ci0KLQotSGFybmVzcyBFcnJv
ciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KLUZBSUwgU2FtZS1vcmlnaW4gd2luZG93LCBm
b3JjZWQgYXNzZXJ0X25vdF9lcXVhbHM6IEVtcHR5IFNlYy1NZXRhZGF0YSBoZWFkZXIuIGdvdCBk
aXNhbGxvd2VkIHZhbHVlICIiCi1USU1FT1VUIFNhbWUtc2l0ZSB3aW5kb3csIGZvcmNlZCBUZXN0
IHRpbWVkIG91dAotVElNRU9VVCBDcm9zcy1zaXRlIHdpbmRvdywgZm9yY2VkIFRlc3QgdGltZWQg
b3V0Ci1GQUlMIFNhbWUtb3JpZ2luIHdpbmRvdywgdXNlci1hY3RpdmF0ZWQgQ2FuJ3QgZmluZCB2
YXJpYWJsZTogdGVzdF9kcml2ZXIKLUZBSUwgU2FtZS1zaXRlIHdpbmRvdywgdXNlci1hY3RpdmF0
ZWQgQ2FuJ3QgZmluZCB2YXJpYWJsZTogdGVzdF9kcml2ZXIKLUZBSUwgQ3Jvc3Mtc2l0ZSB3aW5k
b3csIHVzZXItYWN0aXZhdGVkIENhbid0IGZpbmQgdmFyaWFibGU6IHRlc3RfZHJpdmVyCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvc2VjLW1ldGFkYXRhL3dpbmRvdy1vcGVuLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFk
YXRhL3dpbmRvdy1vcGVuLnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggM2NkNjE5MGY5NDQ4MTYyNThiMjk1NDZlZjg5ZWM1OTQ3ZmFhMDM1ZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0YS93aW5k
b3ctb3Blbi50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanM+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+
PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0gIC8vIEZvcmNlZCBuYXZpZ2F0aW9uczoKLSAg
YXN5bmNfdGVzdCh0ID0+IHsKLSAgICBsZXQgdyA9IHdpbmRvdy5vcGVuKCJodHRwczovL3t7aG9z
dH19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0
LXRvLW93bmVyLnB5Iik7Ci0gICAgdC5hZGRfY2xlYW51cChfID0+IHcuY2xvc2UoKSk7Ci0gICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhlID0+IHsKLSAg
ICAgIGlmIChlLnNvdXJjZSAhPSB3KQotICAgICAgICByZXR1cm47Ci0KLSAgICAgIGFzc2VydF9o
ZWFkZXJfZXF1YWxzKGUuZGF0YSwgewotICAgICAgICAiY2F1c2UiOiAiZm9yY2VkIiwKLSAgICAg
ICAgImRlc3RpbmF0aW9uIjogImRvY3VtZW50IiwKLSAgICAgICAgInNpdGUiOiAic2FtZS1vcmln
aW4iCi0gICAgICB9KTsKLSAgICAgIHQuZG9uZSgpOwotICAgIH0pKTsKLSAgfSwgIlNhbWUtb3Jp
Z2luIHdpbmRvdywgZm9yY2VkIik7Ci0KLSAgYXN5bmNfdGVzdCh0ID0+IHsKLSAgICBsZXQgdyA9
IHdpbmRvdy5vcGVuKCJodHRwczovL3t7aG9zdHNbXVt3d3ddfX06e3twb3J0c1todHRwc11bMF19
fS9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3Bvc3QtdG8tb3duZXIucHkiKTsKLSAgICB0
LmFkZF9jbGVhbnVwKF8gPT4gdy5jbG9zZSgpKTsKLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIHQuc3RlcF9mdW5jKGUgPT4gewotICAgICAgaWYgKGUuc291cmNlICE9IHcp
Ci0gICAgICAgIHJldHVybjsKLQotICAgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoZS5kYXRhLCB7
Ci0gICAgICAgICJjYXVzZSI6ICJmb3JjZWQiLAotICAgICAgICAiZGVzdGluYXRpb24iOiAiZG9j
dW1lbnQiLAotICAgICAgICAic2l0ZSI6ICJzYW1lLXNpdGUiCi0gICAgICB9KTsKLSAgICAgIHQu
ZG9uZSgpOwotICAgIH0pKTsKLSAgfSwgIlNhbWUtc2l0ZSB3aW5kb3csIGZvcmNlZCIpOwotCi0g
IGFzeW5jX3Rlc3QodCA9PiB7Ci0gICAgbGV0IHcgPSB3aW5kb3cub3BlbigiaHR0cHM6Ly97e2hv
c3RzW2FsdF1bd3d3XX19Ont7cG9ydHNbaHR0cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jl
c291cmNlcy9wb3N0LXRvLW93bmVyLnB5Iik7Ci0gICAgdC5hZGRfY2xlYW51cChfID0+IHcuY2xv
c2UoKSk7Ci0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVu
YyhlID0+IHsKLSAgICAgIGlmIChlLnNvdXJjZSAhPSB3KQotICAgICAgICByZXR1cm47Ci0KLSAg
ICAgIGFzc2VydF9oZWFkZXJfZXF1YWxzKGUuZGF0YSwgewotICAgICAgICAiY2F1c2UiOiAiZm9y
Y2VkIiwKLSAgICAgICAgImRlc3RpbmF0aW9uIjogImRvY3VtZW50IiwKLSAgICAgICAgInNpdGUi
OiAiY3Jvc3Mtc2l0ZSIKLSAgICAgIH0pOwotICAgICAgdC5kb25lKCk7Ci0gICAgfSkpOwotICB9
LCAiQ3Jvc3Mtc2l0ZSB3aW5kb3csIGZvcmNlZCIpOwotCi0gIC8vIFVzZXItYWN0aXZhdGVkIG5h
dmlnYXRpb25zOgotICBhc3luY190ZXN0KHQgPT4gewotICAgIGxldCBiID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnYnV0dG9uJyk7Ci0gICAgYi5vbmNsaWNrID0gdC5zdGVwX2Z1bmMoXyA9PiB7
Ci0gICAgICBsZXQgdyA9IHdpbmRvdy5vcGVuKCJodHRwczovL3t7aG9zdH19Ont7cG9ydHNbaHR0
cHNdWzBdfX0vZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9wb3N0LXRvLW93bmVyLnB5Iik7
Ci0gICAgICB0LmFkZF9jbGVhbnVwKF8gPT4gdy5jbG9zZSgpKTsKLSAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmMoZSA9PiB7Ci0gICAgICAgIGlmIChl
LnNvdXJjZSAhPSB3KQotICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBhc3NlcnRfaGVhZGVy
X2VxdWFscyhlLmRhdGEsIHsKLSAgICAgICAgICAiY2F1c2UiOiAidXNlci1hY3RpdmF0ZWQiLAot
ICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICJkb2N1bWVudCIsCi0gICAgICAgICAgInNpdGUiOiAi
c2FtZS1vcmlnaW4iCi0gICAgICAgIH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICAgIH0pKTsK
LSAgICB9KTsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGIpOwotICAgIHRlc3RfZHJp
dmVyLmNsaWNrKGIpOwotICB9LCAiU2FtZS1vcmlnaW4gd2luZG93LCB1c2VyLWFjdGl2YXRlZCIp
OwotCi0gIGFzeW5jX3Rlc3QodCA9PiB7Ci0gICAgbGV0IGIgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdidXR0b24nKTsKLSAgICBiLm9uY2xpY2sgPSB0LnN0ZXBfZnVuYyhfID0+IHsKLSAgICAg
IGxldCB3ID0gd2luZG93Lm9wZW4oImh0dHBzOi8ve3tob3N0c1tdW3d3d119fTp7e3BvcnRzW2h0
dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weSIp
OwotICAgICAgdC5hZGRfY2xlYW51cChfID0+IHcuY2xvc2UoKSk7Ci0gICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jKGUgPT4gewotICAgICAgICBpZiAo
ZS5zb3VyY2UgIT0gdykKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXNzZXJ0X2hlYWRl
cl9lcXVhbHMoZS5kYXRhLCB7Ci0gICAgICAgICAgImNhdXNlIjogInVzZXItYWN0aXZhdGVkIiwK
LSAgICAgICAgICAiZGVzdGluYXRpb24iOiAiZG9jdW1lbnQiLAotICAgICAgICAgICJzaXRlIjog
InNhbWUtc2l0ZSIKLSAgICAgICAgfSk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgICAgfSkpOwot
ICAgIH0pOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYik7Ci0gICAgdGVzdF9kcml2
ZXIuY2xpY2soYik7Ci0gIH0sICJTYW1lLXNpdGUgd2luZG93LCB1c2VyLWFjdGl2YXRlZCIpOwot
Ci0gIGFzeW5jX3Rlc3QodCA9PiB7Ci0gICAgbGV0IGIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdidXR0b24nKTsKLSAgICBiLm9uY2xpY2sgPSB0LnN0ZXBfZnVuYyhfID0+IHsKLSAgICAgIGxl
dCB3ID0gd2luZG93Lm9wZW4oImh0dHBzOi8ve3tob3N0c1thbHRdW3d3d119fTp7e3BvcnRzW2h0
dHBzXVswXX19L2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcG9zdC10by1vd25lci5weSIp
OwotICAgICAgdC5hZGRfY2xlYW51cChfID0+IHcuY2xvc2UoKSk7Ci0gICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jKGUgPT4gewotICAgICAgICBpZiAo
ZS5zb3VyY2UgIT0gdykKLSAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXNzZXJ0X2hlYWRl
cl9lcXVhbHMoZS5kYXRhLCB7Ci0gICAgICAgICAgImNhdXNlIjogInVzZXItYWN0aXZhdGVkIiwK
LSAgICAgICAgICAiZGVzdGluYXRpb24iOiAiZG9jdW1lbnQiLAotICAgICAgICAgICJzaXRlIjog
ImNyb3NzLXNpdGUiCi0gICAgICAgIH0pOwotICAgICAgICB0LmRvbmUoKTsKLSAgICAgIH0pKTsK
LSAgICB9KTsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGIpOwotICAgIHRlc3RfZHJp
dmVyLmNsaWNrKGIpOwotICB9LCAiQ3Jvc3Mtc2l0ZSB3aW5kb3csIHVzZXItYWN0aXZhdGVkIik7
Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3dvcmtlci50ZW50YXRpdmUuaHR0cHMuc3Vi
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3dvcmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNkOTIyZTA3MTQzOGE2OWMwZDY3
MjExYjI2YjQ0ZjE5YTcwOTZmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3NlYy1tZXRhZGF0YS93b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotRkFJTCBTYW1lLU9yaWdpbiB3b3JrZXIg
YXNzZXJ0X25vdF9lcXVhbHM6IEVtcHR5IFNlYy1NZXRhZGF0YSBoZWFkZXIuIGdvdCBkaXNhbGxv
d2VkIHZhbHVlICIiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFkYXRhL3dvcmtlci50ZW50YXRpdmUuaHR0cHMu
c3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3NlYy1tZXRhZGF0YS93b3JrZXIudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZmY2NmZjYzc4MTFkOWFhY2NlZDc5OWQ2NzA3ZjhmOWVk
Y2FmYTliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2VjLW1ldGFk
YXRhL3dvcmtlci50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im10
cnpvc0Bnb29nbGUuY29tIiB0aXRsZT0iTWFjaWVrIFRyem9zIj4KLTxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9L2ZldGNoL3NlYy1tZXRh
ZGF0YS9yZXNvdXJjZXMvaGVscGVyLmpzPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAgcHJvbWlzZV90
ZXN0KHQgPT4gewotICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7
Ci0gICAgICBsZXQga2V5ID0gIndvcmtlci1zYW1lLW9yaWdpbiI7Ci0gICAgICBsZXQgdyA9IG5l
dyBXb3JrZXIoIi9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/
ZmlsZT0iICsga2V5KTsKLSAgICAgIHcub25tZXNzYWdlID0gZSA9PiB7Ci0gICAgICAgIGxldCBl
eHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJ3b3JrZXIiLCAic2l0ZSI6InNhbWUtb3JpZ2luIn07
Ci0gICAgICAgIGZldGNoKCIvZmV0Y2gvc2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVh
ZGVyLnB5P3JldHJpZXZlPXRydWUmZmlsZT0iICsga2V5KQotICAgICAgICAgIC50aGVuKHJlc3Bv
bnNlID0+IHJlc3BvbnNlLnRleHQoKSkKLSAgICAgICAgICAudGhlbih0ZXh0ID0+IGFzc2VydF9o
ZWFkZXJfZXF1YWxzKHRleHQsIGV4cGVjdGVkKSkKLSAgICAgICAgICAudGhlbihfID0+IHJlc29s
dmUoKSkKLSAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpOwotICAgICAgfTsKLSAgICB9
KTsKLSAgfSwgIlNhbWUtT3JpZ2luIHdvcmtlciIpOwotPC9zY3JpcHQ+Ci08Ym9keT48L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL3NlYy1tZXRhZGF0YS94c2x0LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMt
bWV0YWRhdGEveHNsdC50ZW50YXRpdmUuaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ2Yjk4ZjlmZjY0NzMwNDZjYTg2NTZhNDBmY2JkOTAzMTI5
YjI2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1tZXRhZGF0
YS94c2x0LnRlbnRhdGl2ZS5odHRwcy5zdWItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFVuc2FmZSBhdHRlbXB0IHRvIGxvYWQgVVJM
IGh0dHBzOi8vd3d3LmxvY2FsaG9zdDo5NDQzL2ZldGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMv
cmVjb3JkLWhlYWRlci5weT9maWxlPXhzbHQtc2FtZS1zaXRlIGZyb20gb3JpZ2luIGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMuIERvbWFpbnMsIHByb3RvY29scyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4K
LQotQ09OU09MRSBNRVNTQUdFOiBVbnNhZmUgYXR0ZW1wdCB0byBsb2FkIFVSTCBodHRwczovL3d3
dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Q6OTQ0My9mZXRjaC9zZWMtbWV0YWRhdGEvcmVzb3VyY2Vz
L3JlY29yZC1oZWFkZXIucHk/ZmlsZT14c2x0LWNyb3NzLXNpdGUgZnJvbSBvcmlnaW4gaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0My4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgotCi0KLUZBSUwgU2FtZS1PcmlnaW4geHNsdCBhc3NlcnRfbm90X2VxdWFsczogRW1wdHkgU2Vj
LU1ldGFkYXRhIGhlYWRlci4gZ290IGRpc2FsbG93ZWQgdmFsdWUgIiIKLUZBSUwgU2FtZS1zaXRl
IHhzbHQgYXNzZXJ0X2VxdWFsczogZGVzdGluYXRpb24gZXhwZWN0ZWQgKHN0cmluZykgInhzbHQi
IGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIENyb3NzLXNpdGUgeHNsdCBhc3Nl
cnRfZXF1YWxzOiBkZXN0aW5hdGlvbiBleHBlY3RlZCAoc3RyaW5nKSAieHNsdCIgYnV0IGdvdCAo
dW5kZWZpbmVkKSB1bmRlZmluZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWMtbWV0YWRhdGEveHNsdC50ZW50YXRpdmUu
aHR0cHMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3NlYy1tZXRhZGF0YS94c2x0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZmOTk2Njc5ZmY5MDBjZjNlM2ZlODIzODFlZjI5
ZWE1ZjU4ODliNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlYy1t
ZXRhZGF0YS94c2x0LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDM4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotCi08bGluayByZWw9ImF1dGhvciIgaHJlZj0i
bXRyem9zQGdvb2dsZS5jb20iIHRpdGxlPSJNYWNpZWsgVHJ6b3MiPgotPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0vZmV0Y2gvc2VjLW1l
dGFkYXRhL3Jlc291cmNlcy9oZWxwZXIuanM+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAvLyBPcGVu
IGEgd2luZG93IHdpdGggWE1MIGRvY3VtZW50IHdoaWNoIGxvYWRzIHJlc291cmNlcyB2aWEgPD94
bWwtc3R5bGVzaGVldC8+IHRhZwotICBsZXQgdyA9IHdpbmRvdy5vcGVuKCJyZXNvdXJjZXMveHNs
dC10ZXN0LnN1Yi54bWwiKTsKLSAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBm
dW5jdGlvbihlKSB7Ci0gICAgaWYgKGUuc291cmNlICE9IHcpCi0gICAgICByZXR1cm47Ci0KLSAg
ICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICBsZXQgZXhwZWN0ZWQgPSB7ImRlc3RpbmF0aW9u
IjoieHNsdCIsICJzaXRlIjoic2FtZS1vcmlnaW4ifTsKLSAgICAgIHJldHVybiBmZXRjaCgiL2Zl
dGNoL3NlYy1tZXRhZGF0YS9yZXNvdXJjZXMvcmVjb3JkLWhlYWRlci5weT9yZXRyaWV2ZT10cnVl
JmZpbGU9eHNsdC1zYW1lLW9yaWdpbiIpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVz
cG9uc2UudGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVh
bHModGV4dCwgZXhwZWN0ZWQpKTsKLSAgICB9LCAiU2FtZS1PcmlnaW4geHNsdCIpOwotCi0gICAg
cHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgbGV0IGV4cGVjdGVkID0geyJkZXN0aW5hdGlvbiI6
InhzbHQiLCAic2l0ZSI6InNhbWUtc2l0ZSJ9OwotICAgICAgcmV0dXJuIGZldGNoKCIvZmV0Y2gv
c2VjLW1ldGFkYXRhL3Jlc291cmNlcy9yZWNvcmQtaGVhZGVyLnB5P3JldHJpZXZlPXRydWUmZmls
ZT14c2x0LXNhbWUtc2l0ZSIpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2Uu
dGV4dCgpKQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4
dCwgZXhwZWN0ZWQpKTsKLSAgICB9LCAiU2FtZS1zaXRlIHhzbHQiKTsKLQotICAgIHByb21pc2Vf
dGVzdCh0ID0+IHsKLSAgICAgIGxldCBleHBlY3RlZCA9IHsiZGVzdGluYXRpb24iOiJ4c2x0Iiwg
InNpdGUiOiJjcm9zcy1zaXRlIn07Ci0gICAgICByZXR1cm4gZmV0Y2goIi9mZXRjaC9zZWMtbWV0
YWRhdGEvcmVzb3VyY2VzL3JlY29yZC1oZWFkZXIucHk/cmV0cmlldmU9dHJ1ZSZmaWxlPXhzbHQt
Y3Jvc3Mtc2l0ZSIpCi0gICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgp
KQotICAgICAgICAgIC50aGVuKHRleHQgPT4gYXNzZXJ0X2hlYWRlcl9lcXVhbHModGV4dCwgZXhw
ZWN0ZWQpKTsKLSAgICB9LCAiQ3Jvc3Mtc2l0ZSB4c2x0Iik7Ci0KLSAgICB3LmNsb3NlKCk7Ci0g
IH0pOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZmV0Y2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3NmIxMTEzNDM0MjlmY2Y2OTYzM2YzOTdkNDM5ZmFmMTI2MDJm
NDU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUt
cmV2YWxpZGF0ZS9mZXRjaC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLQotUEFTUyBTZWNvbmQgZmV0Y2ggcmV0dXJucyBzYW1lIHJlc3BvbnNlCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3Rh
bGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlk
YXRlL2ZldGNoLmFueS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZiMTExMzQzNDI5ZmNmNjk2
MzNmMzk3ZDQzOWZhZjEyNjAyZjQ1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0
ZS9mZXRjaC5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFNlY29uZCBm
ZXRjaCByZXR1cm5zIHNhbWUgcmVzcG9uc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRl
L2ZldGNoLmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZldGNoLmFueS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZmV0Y2guYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRv
IHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZldGNoLmFueS5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0
ZS9mZXRjaC5hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4MmI5ZDJjMzE3NmVhZTg1ZmYyZjJhMzQxOTQ4
YjM3YjhmNjc5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC5hbnku
anMKQEAgLTAsMCArMSwzMiBAQAorLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1F
VEE6IHRpdGxlPVRlc3RzIFN0YWxlIFdoaWxlIFJldmFsaWRhdGUgaXMgZXhlY3V0ZWQgZm9yIGZl
dGNoIEFQSQorLy8gTUVUQTogc2NyaXB0PS9jb21tb24vdXRpbHMuanMKKworZnVuY3Rpb24gd2Fp
dDI1bXModGVzdCkgeworICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgdGVz
dC5zdGVwX3RpbWVvdXQoKCkgPT4geworICAgICAgcmVzb2x2ZSgpOworICAgIH0sIDI1KTsKKyAg
fSk7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICB2YXIgcmVxdWVzdF90
b2tlbiA9IHRva2VuKCk7CisKKyAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgcmVzb3Vy
Y2VzL3N0YWxlLXNjcmlwdC5weT90b2tlbj1gICsgcmVxdWVzdF90b2tlbik7CisgIC8vIFdhaXQg
dW50aWwgcmVzb3VyY2UgaXMgY29tcGxldGVseSBmZXRjaGVkIHRvIGFsbG93IGNhY2hpbmcgYmVm
b3JlIG5leHQgZmV0Y2guCisgIGNvbnN0IGJvZHkgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7Cisg
IGNvbnN0IHJlc3BvbnNlMiA9IGF3YWl0IGZldGNoKGByZXNvdXJjZXMvc3RhbGUtc2NyaXB0LnB5
P3Rva2VuPWAgKyByZXF1ZXN0X3Rva2VuKTsKKworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhl
YWRlcnMuZ2V0KCdVbmlxdWUtSWQnKSwgcmVzcG9uc2UyLmhlYWRlcnMuZ2V0KCdVbmlxdWUtSWQn
KSk7CisgIGNvbnN0IGJvZHkyID0gYXdhaXQgcmVzcG9uc2UyLnRleHQoKTsKKyAgYXNzZXJ0X2Vx
dWFscyhib2R5LCBib2R5Mik7CisKKyAgd2hpbGUodHJ1ZSkgeworICAgIGNvbnN0IHJldmFsaWRh
dGlvbl9jaGVjayA9IGF3YWl0IGZldGNoKGByZXNvdXJjZXMvc3RhbGUtc2NyaXB0LnB5P3F1ZXJ5
JnRva2VuPWAgKyByZXF1ZXN0X3Rva2VuKTsKKyAgICBpZiAocmV2YWxpZGF0aW9uX2NoZWNrLmhl
YWRlcnMuZ2V0KCdDb3VudCcpID09ICcyJykgeworICAgICAgYnJlYWs7CisgICAgfQorICAgIGF3
YWl0IHdhaXQyNW1zKHRlc3QpOworICB9Cit9LCAnU2Vjb25kIGZldGNoIHJldHVybnMgc2FtZSBy
ZXNwb25zZScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZldGNoLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZldGNoLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc2YjExMTM0MzQyOWZjZjY5NjMzZjM5N2Q0MzlmYWYxMjYwMmY0NTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZmV0Y2guYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgU2Vjb25kIGZldGNoIHJldHVybnMgc2Ft
ZSByZXNwb25zZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZmV0Y2guYW55Lndvcmtl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZldGNoLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9z
dGFsZS13aGlsZS1yZXZhbGlkYXRlL2ZldGNoLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1
cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZmV0Y2guaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxp
ZGF0ZS9mZXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjg3MDgwMTlm
YTQ2NThhNDVlNjYzN2YwNDUwNzc1ODViYjA1NjA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Ci08dGl0bGU+VGVzdHMgU3RhbGUgV2hpbGUgUmV2YWxpZGF0ZSBpcyBleGVjdXRlZCBm
b3IgZmV0Y2ggQVBJPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1mdW5jdGlvbiB3YWl0MjVtcyh0ZXN0KSB7Ci0gIHJldHVybiBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHsKLSAgICB0ZXN0LnN0ZXBfdGltZW91dCgoKSA9PiB7Ci0gICAgICByZXNv
bHZlKCk7Ci0gICAgfSwgMjUpOwotICB9KTsKLX0KLQotcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0
KSA9PiB7Ci0gIHZhciByZXF1ZXN0X3Rva2VuID0gdG9rZW4oKTsKLQotICBjb25zdCByZXNwb25z
ZSA9IGF3YWl0IGZldGNoKGByZXNvdXJjZXMvc3RhbGUtc2NyaXB0LnB5P3Rva2VuPWAgKyByZXF1
ZXN0X3Rva2VuKTsKLSAgLy8gV2FpdCB1bnRpbCByZXNvdXJjZSBpcyBjb21wbGV0ZWx5IGZldGNo
ZWQgdG8gYWxsb3cgY2FjaGluZyBiZWZvcmUgbmV4dCBmZXRjaC4KLSAgY29uc3QgYm9keSA9IGF3
YWl0IHJlc3BvbnNlLnRleHQoKTsKLSAgY29uc3QgcmVzcG9uc2UyID0gYXdhaXQgZmV0Y2goYHJl
c291cmNlcy9zdGFsZS1zY3JpcHQucHk/dG9rZW49YCArIHJlcXVlc3RfdG9rZW4pOwotCi0gIGFz
c2VydF9lcXVhbHMocmVzcG9uc2UuaGVhZGVycy5nZXQoJ1VuaXF1ZS1JZCcpLCByZXNwb25zZTIu
aGVhZGVycy5nZXQoJ1VuaXF1ZS1JZCcpKTsKLSAgY29uc3QgYm9keTIgPSBhd2FpdCByZXNwb25z
ZTIudGV4dCgpOwotICBhc3NlcnRfZXF1YWxzKGJvZHksIGJvZHkyKTsKLQotICB3aGlsZSh0cnVl
KSB7Ci0gICAgY29uc3QgcmV2YWxpZGF0aW9uX2NoZWNrID0gYXdhaXQgZmV0Y2goYHJlc291cmNl
cy9zdGFsZS1zY3JpcHQucHk/cXVlcnkmdG9rZW49YCArIHJlcXVlc3RfdG9rZW4pOwotICAgIGlm
IChyZXZhbGlkYXRpb25fY2hlY2suaGVhZGVycy5nZXQoJ0NvdW50JykgPT0gJzInKSB7Ci0gICAg
ICBicmVhazsKLSAgICB9Ci0gICAgYXdhaXQgd2FpdDI1bXModGVzdCk7Ci0gIH0KLX0sICdTZWNv
bmQgZmV0Y2ggcmV0dXJucyBzYW1lIHJlc3BvbnNlJyk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxp
ZGF0ZS9mcmFtZS1yZW1vdmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzE3YmEyMDgyZmFkYmNjN2U3OWYyYTBmZTlmYjBmOTY5Y2RiMWUxMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJh
bWUtcmVtb3ZhbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQot
Ci1QQVNTIEZyYW1lIHJlbW92YWwgc2hvdWxkIGNhbmNlbCBpdHMgcmV2YWxpZGF0aW9ucwotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVtb3ZhbC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZh
bGlkYXRlL2ZyYW1lLXJlbW92YWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
N2E0MGVhZjQ4OTA3NDgxZTU5M2I3ZjMzY2RlMjE2YjMzYzU3ZjZjYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvZnJhbWUtcmVt
b3ZhbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08dGl0bGU+VGVzdCB0aGF0IGZyYW1lIHJlbW92YWwg
Y2FuY2VscyBpdHMgcmV2YWxpZGF0aW9uczwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5q
cyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB3YWl0MjVtcyh0ZXN0KSB7
Ci0gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICB0ZXN0LnN0ZXBfdGltZW91
dCgoKSA9PiB7Ci0gICAgICByZXNvbHZlKCk7Ci0gICAgfSwgMjUpOwotICB9KTsKLX0KLQotYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHZhciByZXF1ZXN0X3Rva2VuID0gdG9rZW4oKTsKLSAg
Y29uc3QgdXJsID0gYHJlc291cmNlcy9zdGFsZS1mcmFtZS5weT90b2tlbj1gICsgcmVxdWVzdF90
b2tlbgotCi0gIC8vIGZpcnN0IGZyYW1lIGxvYWQKLSAgbGV0IGZyYW1lID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gIGZyYW1lLnNyYyA9IHVybDsKLSAgZnJhbWUub25sb2Fk
ID0gKCkgPT4gewotICAgIC8vIHNlY29uZCBmcmFtZSBsb2FkLCB0cmlnZ2VycyByZXZhbGlkYXRp
b24KLSAgICBsZXQgZnJhbWUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0g
ICAgZnJhbWUyLnNyYyA9IHVybDsKLSAgICBmcmFtZTIub25sb2FkID0gYXN5bmMgKCkgPT4gewot
ICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgY29uc3QgcmV2YWxpZGF0aW9uX2NoZWNrID0g
YXdhaXQgZmV0Y2goYHJlc291cmNlcy9zdGFsZS1mcmFtZS5weT9xdWVyeSZ0b2tlbj1gICsgcmVx
dWVzdF90b2tlbik7Ci0gICAgICAgIGlmIChyZXZhbGlkYXRpb25fY2hlY2suaGVhZGVycy5nZXQo
J0NvdW50JykgPT0gJzEnKQotICAgICAgICAgIGJyZWFrOwotICAgICAgICBhd2FpdCB3YWl0MjVt
cyh0KTsKLSAgICAgIH0KLSAgICAgIC8vIHJlbW92ZSBmcmFtZSwgY2FuY2VsaW5nIHJldmFsaWRh
dGlvbgotICAgICAgZnJhbWUyLnJlbW92ZSgpOwotICAgICAgLy8gdGhpcmQgZnJhbWUgbG9hZCwg
dHJpZ2dlcnMgbmV3IHJldmFsaWRhdGlvbgotICAgICAgbGV0IGZyYW1lMyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgZnJhbWUzLnNyYyA9IHVybDsKLSAgICAgIGZy
YW1lMy5vbmxvYWQgPSBhc3luYyAoKSA9PiB7Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgICAgY29uc3QgcmV2YWxpZGF0aW9uX2NoZWNrID0gYXdhaXQgZmV0Y2goYHJlc291cmNlcy9z
dGFsZS1mcmFtZS5weT9xdWVyeSZ0b2tlbj1gICsgcmVxdWVzdF90b2tlbik7Ci0gICAgICAgICAg
aWYgKHJldmFsaWRhdGlvbl9jaGVjay5oZWFkZXJzLmdldCgnQ291bnQnKSA9PSAnMicpCi0gICAg
ICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgICBhd2FpdCB3YWl0MjVtcyh0KTsKLSAgICAgICAg
fQotICAgICAgfQotICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZTMpOwotICAg
IH0KLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lMik7Ci0gIH0KLSAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7Ci19LCAnRnJhbWUgcmVtb3ZhbCBzaG91bGQgY2Fu
Y2VsIGl0cyByZXZhbGlkYXRpb25zJyk7Ci08L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUt
d2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJjZXMvc3RhbGUtZnJhbWUucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRh
dGUvcmVzb3VyY2VzL3N0YWxlLWZyYW1lLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5OWE1OWZhZTg3MmE0NjBjMGFlYzkyNzE4ZjQzOWFhOWZkYjdkNWFjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXNvdXJj
ZXMvc3RhbGUtZnJhbWUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi1pbXBvcnQg
cmFuZG9tLCBzdHJpbmcsIGRhdGV0aW1lLCB0aW1lCi0KLWRlZiBpZF90b2tlbigpOgotICAgbGV0
dGVycyA9IHN0cmluZy5hc2NpaV9sb3dlcmNhc2UKLSAgIHJldHVybiAnJy5qb2luKHJhbmRvbS5j
aG9pY2UobGV0dGVycykgZm9yIGkgaW4gcmFuZ2UoMjApKQotCi1kZWYgbWFpbihyZXF1ZXN0LCBy
ZXNwb25zZSk6Ci0gICAgaXNfcmV2YWxpZGF0aW9uID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiSWYt
Tm9uZS1NYXRjaCIsIE5vbmUpCi0gICAgdG9rZW4gPSByZXF1ZXN0LkdFVC5maXJzdCgidG9rZW4i
LCBOb25lKQotICAgIGlzX3F1ZXJ5ID0gcmVxdWVzdC5HRVQuZmlyc3QoInF1ZXJ5IiwgTm9uZSkg
IT0gTm9uZQotICAgIHdpdGggcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gubG9jazoKLSAgICAgIHZhbHVl
ID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZSh0b2tlbikKLSAgICAgIGNvdW50ID0gMAotICAg
ICAgaWYgdmFsdWUgIT0gTm9uZToKLSAgICAgICAgY291bnQgPSBpbnQodmFsdWUpCi0gICAgICBp
ZiBpc19xdWVyeToKLSAgICAgICAgaWYgY291bnQgPCAyOgotICAgICAgICAgIHJlcXVlc3Quc2Vy
dmVyLnN0YXNoLnB1dCh0b2tlbiwgY291bnQpCi0gICAgICBlbHNlOgotICAgICAgICBpZiBpc19y
ZXZhbGlkYXRpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgY291bnQgPSBjb3VudCArIDEKLSAg
ICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHRva2VuLCBjb3VudCkKLQotICAgIGlmIGlz
X3F1ZXJ5OgotICAgICAgaGVhZGVycyA9IFsoIkNvdW50IiwgY291bnQpLCAoIlRlc3QiLCBzdHIo
cmVxdWVzdC5yYXdfaGVhZGVycykpXQotICAgICAgY29udGVudCA9ICIiCi0gICAgICByZXR1cm4g
MjAwLCBoZWFkZXJzLCBjb250ZW50Ci0gICAgZWxzZToKLSAgICAgIHVuaXF1ZV9pZCA9IGlkX3Rv
a2VuKCkKLSAgICAgIGhlYWRlcnMgPSBbKCJDb250ZW50LVR5cGUiLCAidGV4dC9odG1sIiksCi0g
ICAgICAgICAgICAgICAgICgiQ2FjaGUtQ29udHJvbCIsICJwcml2YXRlLCBtYXgtYWdlPTAsIHN0
YWxlLXdoaWxlLXJldmFsaWRhdGU9NjAiKSwKLSAgICAgICAgICAgICAgICAgKCJFVGFnIiwgJyJz
d3IiJyksCi0gICAgICAgICAgICAgICAgICgiVW5pcXVlLUlkIiwgdW5pcXVlX2lkKV0KLSAgICAg
IGNvbnRlbnQgPSAiPGJvZHk+e308L2JvZHk+Ii5mb3JtYXQodW5pcXVlX2lkKQotICAgICAgcmV0
dXJuIDIwMCwgaGVhZGVycywgY29udGVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3N0
YWxlLWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvc3RhbGUtaW1hZ2UuaHRtbAppbmRleCBl
NThlYjhmNTBmOTk5ODA5ZDBmYjExZmUzMTU5YWVlNGU0MzBjMzAzLi5kODZiZGZiZGUyY2Y4NGJh
NmVjNWI3NDEwYWRiYTA0OTdiMGJhM2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvc3Rh
bGUtaW1hZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvc3RhbGUtaW1hZ2UuaHRtbApAQCAt
MTAsMTEgKzEwLDggQEAgVXNlIGEgY2hpbGQgZG9jdW1lbnQgdG8gbG9hZCB0aGUgc2Vjb25kIHN0
YWxlIGltYWdlIGludG8gYmVjYXVzZQogYW4gaW1hZ2UgbG9hZGVkIGludG8gdGhlIHNhbWUgZG9j
dW1lbnQgd2lsbCBza2lwIGNhY2hlLWNvbnRyb2wgaGVhZGVycy4KIFNlZTogaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jdGhlLWxpc3Qtb2YtYXZhaWxhYmxlLWltYWdlcwogLS0+Ci08ZGl2
IGlkPSJmcmFtZXMiPgogPGlmcmFtZSBpZD0iY2hpbGQxIiBzcmNkb2M9IiI+PC9pZnJhbWU+CiA8
aWZyYW1lIGlkPSJjaGlsZDIiIHNyY2RvYz0iIj48L2lmcmFtZT4KLTxpZnJhbWUgaWQ9ImNoaWxk
MyIgc3JjZG9jPSIiPjwvaWZyYW1lPgotPC9kaXY+CiA8c2NyaXB0PgogCiB2YXIgcmVxdWVzdF90
b2tlbiA9IHRva2VuKCk7CkBAIC0zMiwxMCArMjksMTAgQEAgbGV0IGxvYWRJbWFnZSA9IGFzeW5j
IChkb2N1bWVudCkgPT4gewogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBhd2FpdCBuZXcg
UHJvbWlzZShyID0+IHdpbmRvdy5vbmxvYWQgPSByKTsKIAotICBsZXQgaW1nMSA9IGF3YWl0IGxv
YWRJbWFnZShjaGlsZDEuY29udGVudERvY3VtZW50KTsKKyAgbGV0IGltZzEgPSBhd2FpdCBsb2Fk
SW1hZ2UoZG9jdW1lbnQpOwogICBhc3NlcnRfZXF1YWxzKGltZzEud2lkdGgsIDE2LCAiKGluaXRp
YWwgdmVyc2lvbiBsb2FkZWQpIik7CiAKLSAgbGV0IGltZzIgPSBhd2FpdCBsb2FkSW1hZ2UoY2hp
bGQyLmNvbnRlbnREb2N1bWVudCk7CisgIGxldCBpbWcyID0gYXdhaXQgbG9hZEltYWdlKGNoaWxk
MS5jb250ZW50RG9jdW1lbnQpOwogICBhc3NlcnRfZXF1YWxzKGltZzIud2lkdGgsIDE2LCAiKHN0
YWxlIHZlcnNpb24gbG9hZGVkKSIpOwogCiAgIC8vIFF1ZXJ5IHRoZSBzZXJ2ZXIgYWdhaW4gYW5k
IGFnYWluLiBBdCBzb21lIHBvaW50IGl0IG11c3QgaGF2ZSByZWNlaXZlZCB0aGUKQEAgLTQ5LDEw
ICs0Niw5IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICAgIGJyZWFrOwogICB9CiAK
LSAgbGV0IGltZzMgPSBhd2FpdCBsb2FkSW1hZ2UoY2hpbGQzLmNvbnRlbnREb2N1bWVudCk7Cisg
IGxldCBpbWczID0gYXdhaXQgbG9hZEltYWdlKGNoaWxkMi5jb250ZW50RG9jdW1lbnQpOwogICBh
c3NlcnRfZXF1YWxzKGltZzMud2lkdGgsIDI1NiwgIihyZXZhbGlkYXRlZCB2ZXJzaW9uIGxvYWRl
ZCkiKTsKIAotICBmcmFtZXMuaW5uZXJIVE1MID0gIiI7CiB9LCAnQ2FjaGUgcmV0dXJucyBzdGFs
ZSByZXNvdXJjZScpOwogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS93M2MtaW1wb3J0LmxvZwppbmRleCBmMWRi
NGExYjYwZTUxYzE1ZmQ5ZjkzMWU3ZmFkMmQ3YWI1MGUzZDYyLi43NGU0ZmE5ZDRlZmE3NmM2MTA4
ODNhYzVkNzk4OTg2MjE2YjNlZDE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFsaWRhdGUvdzNjLWlt
cG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3czYy1pbXBvcnQubG9nCkBAIC0xNSw3ICsx
NSw3IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3N0YWxlLXdoaWxlLXJldmFs
aWRhdGUvZmV0Y2gtc3cuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9mZXRjaC5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13
aGlsZS1yZXZhbGlkYXRlL2ZldGNoLmFueS5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZS9yZXZhbGlkYXRl
LW5vdC1ibG9ja2VkLWJ5LWNzcC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFsZS13aGlsZS1yZXZhbGlkYXRlL3N0YWxlLWNzcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zdGFs
ZS13aGlsZS1yZXZhbGlkYXRlL3N0YWxlLWltYWdlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvTUVUQS55bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL01FVEEueW1sCmlu
ZGV4IDNlYjg5M2Y0ZTY1YzNjMGU1NTY3Njg4YmQzMDcyNWJjMjFlYjQwY2IuLmJiOGVkMDM5ZGMz
OWVkNDEwNWRlMzA2MzAyMzk4YmUyNWUwMzdmMDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvTUVUQS55bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9NRVRBLnltbApAQCAt
MSw1ICsxLDQgQEAKIHN1Z2dlc3RlZF9yZXZpZXdlcnM6CiAgIC0gamdyYWhhbQotICAtIEhleGNs
ZXMKICAgLSBzdGVwaGVubWNncnVlcgogICAtIEx1a2VaaWVsaW5za2kKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2Fj
ZXJ0LmtleSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2VydHMvY2FjZXJ0LmtleQppbmRleCAzYTNlNDg3YTgzZGUwZjU2NzZlNDgxZTcyNDBiNjgx
MDdiN2VlMzRlLi42YjI0MGU1MmIyMzdjMTdhNDYwZWFlOTBmZjMxODYwZjdiNTU3ZGJhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NlcnRzL2NhY2VydC5rZXkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jYWNlcnQua2V5CkBAIC0xLDMwICsxLDMwIEBACiAtLS0t
LUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlGSERCT0Jna3Foa2lHOXcwQkJR
MHdRVEFwQmdrcWhraUc5dzBCQlF3d0hBUUlSdTdzY0krVjVaUUNBZ2dBCi1NQXdHQ0NxR1NJYjNE
UUlKQlFBd0ZBWUlLb1pJaHZjTkF3Y0VDTkRwam5jb01lazBCSUlFeU5kU0V6ZUdnRlRjCi0ybWRs
anNwZzIwMjhFRnBENndBSzdYYmNvQThXSE44MXFrSkE0YTRYUVFGZ3A0UklEN0RRYzk1RUxzNGF3
TUx1Ci1Ta1kxOUY0VkVUclMwUnZqUFlJUWtjT1FNdVBpY1ZHcm1IOWNEcHRYditJTTI0QnVCWGZq
NjkyQjFaTmhFOEdkCi10SGxScFNpU2dhN2phMTYzNW1KNGxjWnNOSkhpRFZwRUkvYUl5K1h5L0c1
aEhGY2crUzIydzc5N3R1S3hHMk1aCi1QRzltbkkxUy9QRjFLWmJiSkpaZVpFMnU2MEd4R1FZaXYz
c09VT2Q0dE5acU1MdDJOem8wSnJqUUpDd3hGZ0ZLCi03RXpSck40MUcySXVTdVNNU3JuOUNFQURi
dkIxaGdEV0VnYzh0VzRqRTI4ZDlOaG9pSStMd3pxMzNXQk42dHlHCi1vSmx5MzZ3OEowVk5CcWhx
UVNMendBUStDaFQyL2E1OUdKNFI1THZGQ1AyQXhER2thZzFpTjVGZFE5NmFJb0NBCi16QWV2SHRE
Tm1Hdmo0NHFwa0FpUmxBQ2lGallYSzd2UjlaaUIrQ0loZTBkeG05a1lDY2U5UzJEdTM1NDFhLy9Q
Ci0yWXRmalNjVjNtbWEyMWUreFVNUHpnTlIrcDhPOU9ZMkRTTWkzbTU2Y1hGZlI1ZW9LQUZ2QlVh
bE9Cakp1OVdwCi1rOWRwTFpsYkU4cUJkOHBsRWpucTNpZTMrRFNrV09hcThLSTRPZUJhMFp5RTZr
Um5DKzJxWVEyYWFmR3EveTVkCi1vOFYvUDl4cHZaSmZIL1FzRnBhUU05VFAzYmlJOHdkTjF3K3VV
NVpYL2c5enBna1ZTQlI0alZXYmptU2RwY044Ci1JZFZOSW9oTFpEdFNTR0RBK3l6RytULzN0bG9T
N3VCM2RJUWdqcUlOY0pxcDNsNlc4Y2hialpvZTJXREFKSDZ1Ci1GK1Z0aENvODJkVGdEcG4reVBX
c0tOVHlKYzlCNGJiQ2dIa1pDalgwRU5rc0p0MjJPaTlCcTIrdUNVOVJkS1o4Ci1LeEwzN09scUF3
THZEZzhYZ1Yvb3gzbHpjTW1TUi9ZMXhZNVhkVVM0Y3JzWGNTWk10YWtFSGxZdDlVMnM4U3NICi1X
cWRpVXJkVEM3WUpIUmVKL0Zob29FbzlUazRiZnhKdFNlT0pNdnpIa0UxNGpSVy9vdnkxdFlDcHlK
STdRK0R5Ci05eisraGkvRHVOdXNXb0hqdzNLTE90UFNUMm8vWWR1QlBHQks4OHNQRVZVSVpYZEov
SkxlMUNRR2IrMUl1S3h3Ci1YQURoTk1JR1czMWk1dW9hTTdlVmdSTTVvWjZGVWhLMzU2dkJnSlZ1
MzlxU3RCdWM4ZHExOWx1MGlPZmd0VldZCi1XRVFkN1B1d0puWnJjcHo2WWlQSFRydENEQXBQVDUz
Um51WUpnUGxER2tXL3lVa2paazhRemNnNHllczR6WmFUCi1aa3RzL0JpR3RRNGJnVGtPWnR3RTh4
Q0krTlpUbmhXeUl5TWsrdXMyZlN2SkpHRXNuQnRKOFBPNVh3b1p2SHhRCi1ETVA0TW9hWnQxL1RW
NVRYTVllbC9zaHZwQ1dJYktGVkc5bnBrM2JvbUMyQXBVSmJObHJ2T0tyeFM1dmFWZDFpCi1iWlhp
Z1laY3luRFlTc1k0Ukk4akszblNwMnVSOEM0WUNhQlUxd3MwdWowWkF2WStTeHVZU1FURXMxZVFk
MHJhCi1RTU9saG1VQXlkSGtQK2tUMnpVVFlhNHVGbjJGL0tNaFEvcjJuQXRwZ0cvd1Q2Z1llT3o1
Ymk4YkdsNitkZnZVCi05SFQ2SldGTk9LYUZWVFZ2bHUzMlZHcGU0bmJVc3pWUWxnWEx1KzF0SEw0
SzB5UmdMTDZuR3BMSDMxVTRNOVlWCi1UK2FKR2pDQkVzSDU2aXBNTXkwS2UvTmZKeWZ3RytIRWtn
OUVYSytyZSsxenNtNHZXSTVBcnU0ZUFwTjNJbStOCi1UbklFN3k1T1pDUUVZZ29sWm90enZQb1hE
QWVzb2ZScHQyUm9BTU5JTC9wUlpaR0tHKzZib2pxMEFJcktpNnJwCi02eTJuRjNOalNqR0JNOEsy
RklzajJPUmNoYkd6dzN6dTRRT0JzTWZMTzMyL1NoZU1oYXl0cVBWdDNQa3NzNXhiCi1pdkJJMUZO
Vk1jR0pZQTlTKzRaRjNRPT0KK01JSUZIREJPQmdrcWhraUc5dzBCQlEwd1FUQXBCZ2txaGtpRzl3
MEJCUXd3SEFRSTY2Nm8rdG1CZ1hZQ0FnZ0EKK01Bd0dDQ3FHU0liM0RRSUpCUUF3RkFZSUtvWklo
dmNOQXdjRUNJTFpnaDBLcEU5TUJJSUV5Q2dNQ0NGa1NsRG0KK3dQRHBRMHJGQ3lReUFjZFA1SE1u
TE0vVysyejVUWURxZGh0TGQrWHFEMmxHcXI0bENkMzNDb0R1YlJ4Wm9VL3QKK1ZRMFR1RFFjZmhD
ejhIRzZuWE1wYWkyTkRyYzVPdDI5ZlZGZE1Ga2s4bmExN1JoTUtVYzZHYW4vVERpK0U0aTgKK2Uy
WWFrSjVKZ2FCVUZCZi9qeXFKZkxzWUplek5GaG41K25Dc3orS2JaQm9odDJCK1cvcnEvRkFVendQ
R0orWWMKKzhKMmdWY3VSVWN0WHdTNDd5SThha2xYaElod21MODlJb2FkM3JweXBlRFgzdHU1VGVH
Mm52L2QxdVYzL0ZuZ0MKKy8xOGI0ZUp6NmRwcWRUVk41VW9hM05qSGpZOGE4bWNCdldLQkw2bVd5
MmRUVmw5Vzh3ZGd0Vmt2YzBQc0YzUHUKK29KeTVvZVdoUDZkU3FBdkRIVERYYTM4cnQzSDlJUm1U
c0lYZDBWVk9JaEZqZzh0RFFUQlIvQ3lKS3A0Sk84T3kKK3kvUkdac2RxY08wM3Vqb2xXT2xEWTRQ
aThlN0pwSEsrMWt5aEdPVGltaS85SnVXdGlTcDQwZ0tEenlsTDFvYXcKK2hyMVVhUEhsL2tBL2dK
Z3BEQktUK1BYUXQyR205cWplOStCL1U2emozMWJWZDByMVMwcU1sWHo4MXQvSytCY0gKK3UvNU5h
WnNEWHlFOHJ1Znl4QUhQQktQeFhNWk9ORzd5NkViRjg2OEVIVXJDQUtsRWxmSHRUbnZQL2s2OFYz
ZUgKK0duVnpzSWQ4ZWlyenV0clJkdWdQWFM3UGcxVWoxQ0w2R2E4aWE5TWZFSWJTeC9nMkZROVNN
bnVyWFZlV3YxcU0KK3VNTlpiUlpVa2tKRDhUL1ZxQjdlenJJNTUzaVRxWkZHcjZmUTBkeVhCUzBt
MXBoUFNrbVBjcUU0MnNZQ0laY3kKK0taR1llV1MxTGtGUm9UeG9Bd1JTOGNmMTROam1vRytBYnk0
aXlCM1FpTURPbXN5bFpERjB2c1llVWJVSWt4eXoKK0duU24yTGFWcFQzWmV1emlMbk5uM0phZUl5
OTQ2akVnWkVUdkNEcnV1clY1QW9BYjlwWEcyWHV5c2V2eC9BdVYKK093eno4MlBxRzMwOGtxNnho
Y0dOSyt2OUZSYmFnSGFHWjVFRytpVlVUak4zNDhOakpJcmlEVmRySDA2ZkJxZSsKK1VGRDlmQW5O
L0tqNGRJSktVQ3VuNFVaaXoyakhlTm5BbWtMd09abi9lVEsxTGJVcm1UMEorM2V1cGFGN3p6eG8K
K0NlZG5BUnpIdkFpRVZBWDhXZDVEYXVJamN6ZXNqZHJPOXlzN2RUTWVaZXlWNXQvczhXNjZUQjZ0
VkRJUXdUSXAKKzNza2RoYncyMnpJMmxjckRoWmJiWWh3TzlSNmQ0bGlFTlVaL1c1SVNMRFhuK3c4
a3FxaDFxWG9FOHZSMGx4cHkKK096MjdrZzVEQnF5VWZseDk5SHdMajhlcE1OcEd6ZXBNQWVGWFRk
K2dMRktrN2dXdFUvNW1KSXRURWZCdThJaWgKK0ZUMy9lZXNDbHh4ekJtMk1rMXZpdi9pS3NwVEg5
MittS0V6Mm5nNmpPTld4SFhrZnV4TldlNHdYK0ttTzdzN1AKK3BsenhuYnIyVGxOVGV3YnVZcXlL
TXdlOUtPaVhvc2RmeFVrSnE2RDhSMGJmK0E2OU0vZGdnTzdCVmR4TmZGNzEKKyt4ZGZxaldqbGwv
NThsUTE1S2RseWNmVmxZajZpRHZLMUNocks0VUgybXlHYm1oVGhJSXRlelBtOE9vNGkzSTYKK2lQ
azhucy9CcWZGSDJyYUU3Y3c3RzNVZzZjRUpyYzhPRzRjMW1mQnVIUEFlRHJDV051N3RFcXdLckdH
SlZBM2IKKzFHaUJvNzJ6NVhWT2lQN2xrdTcwOFpFZnJ6aDJVR3VTdngwZ2JwVzNhTUROblZxMk82
ZXVJcXVadWdlZXdja3EKKzJPeDlDMXZBRElBOHVnUmRIYlNWUlFFMzNZaVUxUVMzTXZROVRZVy9a
djdCdXVocmRrMlMxV0xScGtXdytxUjYKKzYyRUZGQXc2d2pwSy92Y2lHdWNyVjhHeXliZHhQRnFa
UE10UWtnaGFPUFVPODRRc3gyclpYQVIrNC9nWnVIR20KK3YyTDN0WVNERW1RKzZrRXluV3RYL3c9
PQogLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0
LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2VydHMvY2FjZXJ0LnBlbQppbmRleCBlOWI1ZmRhNTVjMzgwY2Y4ODUwZjRiOTQ1MjRiNjIwNTVj
OWNhMzYwLi5mY2M5NzdiZTA1OWQ2ODgwMzI0Y2M1MjdmOWExZGJiYWJmMzY1NzdiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Nl
cnRzL2NhY2VydC5wZW0KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jZXJ0cy9jYWNlcnQucGVtCkBAIC0xLDE2ICsxLDE2IEBACiAtLS0tLUJF
R0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSkFoekNDUDIrZ0F3SUJBZ0lERGV1Zk1BMEdDU3FHU0li
M0RRRUJDd1VBTUIweEd6QVpCZ05WQkFNTUVuZGwKLVlpMXdiR0YwWm05eWJTMTBaWE4wY3pBZUZ3
MHlNREV3TVRJd01ETXdORGRhRncweU1URXdNVEl3TURNd05EZGEKK01JSkFoekNDUDIrZ0F3SUJB
Z0lEQmxWRk1BMEdDU3FHU0liM0RRRUJDd1VBTUIweEd6QVpCZ05WQkFNTUVuZGwKK1lpMXdiR0Yw
Wm05eWJTMTBaWE4wY3pBZUZ3MHlNVEF4TVRJeE5qRXpNamhhRncweU1qQXhNVEl4TmpFek1qaGEK
IE1CMHhHekFaQmdOVkJBTU1FbmRsWWkxd2JHRjBabTl5YlMxMFpYTjBjekNDQVNJd0RRWUpLb1pJ
aHZjTkFRRUIKLUJRQURnZ0VQQURDQ0FRb0NnZ0VCQU9Ha1Avd0R1WmFCNUYrZHlETkQzeWVnUjAr
dUEvUHNQektjcEFMd2pyNkcKLUFrRVdTcU9wMUg1cEx0VjBMK1Z1RkpNN2s5T2hpaHJYOWdRRjNO
RzJvVmlVbzhGWTB1OTBOUVVPRk9wS2Fpb2wKLXBRRXRDMG5XN1JKTUU5aTZPcUhwOG9FVkVVbVRO
M3NnWG5tTHpuTy9FVnBianM3Z0VWOGJkdklVZWcyMjRJOUQKLUx5N1FjRjkwR0hXSGpwOVNJN0Vi
T0RoYkU3b0IwN2w1NS9kZFRzakNRRTMyS0FkekxNTHJvd0l2Zk1IdEdJRzcKLURLdEV6TTRtdVhh
SEpJbURKZGlYTGR2NjRabGJwd2p3cWhFek5CZGZHaFBuRXFDcURLMC9HcW41VmZTK1V6Y0QKLS91
UXJNV3NvTC9vVXJ3VHp0azJ1SSt6Y0tZQ1hvb0tsRXZ6QVFtTmxYbWNDQXdFQUFhT0NQYzR3Z2oz
S01Bd0cKLUExVWRFd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGSUZ1d0JWQlFIY1BERG9laSsrbHRD
TTBLdFFQTUVjR0ExVWQKLUl3UkFNRDZBRklGdXdCVkJRSGNQRERvZWkrK2x0Q00wS3RRUG9TR2tI
ekFkTVJzd0dRWURWUVFEREJKM1pXSXQKLWNHeGhkR1p2Y20wdGRHVnpkSE9DQXczcm56QUxCZ05W
SFE4RUJBTUNBZ1F3Z2grYkJnTlZIUjRFZ2grU01JSWYKK0JRQURnZ0VQQURDQ0FRb0NnZ0VCQUts
QWMrNTJRa0ZHczN4alQwT2lUM3Q3SGFqcUZxZWxOcDV0b1ZaZkwvU0YKK2NYcXZobGR2V3psS3Mz
WFc0K09LbkdRUDFuQjdxbVpaOEdqU1kwMk5obzM2VnErWWR6bUhJSFlQWmNBbGZtTk8KKzZpWS9u
Y2E3QzlNRUlWSnZ4UXNHL0M1WlVUa0tKOTNpRGVoR2F5NVlGOHdpSWIrazZjbWFWNWNEcytvQndt
d3UKK1gzaHhzRGpPa2xVWUNWWTRXdmQ0ZlUvelIvTGRJM1FaVEFsTmE0ZUx1N3YvOHowdm84dkc3
VDhWUzA5bWM2ZWgKK0JqQjB4MUw3WEU2bis0djNnR0U4UmJ4ZWFJcFpidjh2VldLMUxMTFEwMWdD
T2lORmp1dUQzVmNCcW5aVGJWOS8KK3Y0TXFIclBGZlptMU14ZXNCL2t5Yk1UdmU0WTZQalQxVTN6
Z0pzclYwVWNDQXdFQUFhT0NQYzR3Z2ozS01Bd0cKK0ExVWRFd1FGTUFNQkFmOHdIUVlEVlIwT0JC
WUVGTnh0aldMZFZKaklZQmZDMDFHenYzTmJYSkM1TUVjR0ExVWQKK0l3UkFNRDZBRk54dGpXTGRW
SmpJWUJmQzAxR3p2M05iWEpDNW9TR2tIekFkTVJzd0dRWURWUVFEREJKM1pXSXQKK2NHeGhkR1p2
Y20wdGRHVnpkSE9DQXdaVlJUQUxCZ05WSFE4RUJBTUNBZ1F3Z2grYkJnTlZIUjRFZ2grU01JSWYK
IGpxQ0NING93RTRJUmQyVmlMWEJzWVhSbWIzSnRMblJsYzNRd0Y0SVZiM0E0TG5kbFlpMXdiR0Yw
Wm05eWJTNTAKIFpYTjBNQmVDRlc5d055NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemREQVhnaFZ2Y0Rr
dWQyVmlMWEJzWVhSbWIzSnQKIExuUmxjM1F3RjRJVmIzQTBMbmRsWWkxd2JHRjBabTl5YlM1MFpY
TjBNQmVDRlc1dmRDMTNaV0l0Y0d4aGRHWnYKQEAgLTMzNywxMSArMzM3LDExIEBAIGQyVmlMWEJz
WVhSbWIzSnRMblJsYzNTQ09uaHVMUzFzZG1VdE5teGhaQzU0YmkwdGJqaHFObVJ6TlROc2QzZHIK
IGNuRm9kakk0WVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NRWGh1TFMxdU9HbzJaSE0x
TTJ4M2QydHkKIGNXaDJNamhoTG5odUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmRsWWkx
d2JHRjBabTl5YlM1MFpYTjAKIGdrVjRiaTB0YmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1NGJp
MHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTQKLVlTNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxj
M1F3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUJWMEZkZDQKLW1CWWNwZXBJRHN3MFJnOWtWQTF4
cnVzdUNCdkpCbUhFQWlCVDBCalB1UHFLbVZuU0hlS0tOOXlQYitNb1pwVlYKLXA5c1lLMWRzdmc3
azdQczluL2tVUjVEYVlYRlMwTDZDMTNhaTliOEtTWGJmY0lwT1JqN2todHczcTJjN21YQlQKLVdK
Rzc3M3JsOWQ0SktnelVIeE14T3NzcVdnRnlWREk2aVZJSUt0d1RjUGdrd2pJa3ptU0RYbXpLRzNV
M3krRzEKLXV1c1g4T0lUejJZYm1FL2dQVU5Fd1VVYjh3RzJZdlN4bHFsNW9UbHRBbU8wQjdPTEt4
VEo2eGI4MC8zTld0MTQKLUExcGU3NDJwN2Z6MkVDUEJ4L3dIanZiRmYyamtNZ3RSeldLMStBOWFY
QUpuWm5aaEtCZlcvTU5QNUo0QWlSblkKLXNzVkUrcnA4cjhSZEhYZz0KK1lTNXViM1F0ZDJWaUxY
QnNZWFJtYjNKdExuUmxjM1F3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUhPR3AySmkKK3hLdnZx
TnVjTDJncEZCSXBzVDhhYm1LQkxCbTRMc1NCR0VGUHkxMmZEenRrV0JWVEVOL1dpeUhSTDkzUFBu
bjIKK1lGbjMvalN1QWdxMExrU3g4VkIvWG4yQ1pnWTkrV3pMNCsrR042STZrWUF1dXZHNC9QNml3
d0RDd1g3eTJjb0QKK0Q3NUU0V1ZWVGpFc0tHMnZSaVZXemNjbWcvQlRtdlhRSlU4RFNQaHpQUXRV
L0Q4cUhVSWUvTWNIbUVXOXN4cEcKK2t0SlNYcUFlMFZudndQWGhKL3NjT2l5SmFYdkM4bVJqTTUw
blVHbnkwbjlOeXdsdG0zb3hPQVZBWklhaFphN2cKK0tNblJ5d29qTnFsa2NjWGVIQ2pIMXdYT2h6
dXlRWCtNdnZCcXE5Njh0dElWL2hiVVhoK0QvU3U5TTBxUWNsYkEKKzA5dmRYZWxkK3JTeFA4cz0K
IC0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3Qu
a2V5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
ZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5rZXkKaW5kZXggOTU3ZGZiMjM0ZjhiOTBlYmI0MGExZmI0
OGQ1ODYyMzg3NWYyZTAzZC4uYjY5ZWQyYTk5OWQ2NWJkYjdhNDY4NTRjZGIwMWEwMzAxNzU2M2Iw
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5rZXkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVz
dC5rZXkKQEAgLTEsMjggKzEsMjggQEAKIC0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQotTUlJ
RXZnSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2d3Z2dTa0FnRUFBb0lCQVFDcnU4djBINUth
Mk5QRwotV1ZWNVkwaDlFUi85eW5DTExTbXkvakhqY3ZZdHdOcEFmU2dIdW0xQ2JXemU5eUU3Yk5h
UTlGWGJBMzNWM2NuaAotMGd6VXlPSzgxeXhjVTVWa0tweU5KY1lGQi9wak9NQjY2clMyUURSMlBF
ckpUZHVoMXkzc1g2SmJLMWFBUThhYwotU25GWE16MkwyOHN3bVhnbUZZbUN4V0hCOHhWc1BSNXhx
SWF2NWNualF5VmZpN0JsY1pDVWFqRXh2dWdrRXRqdAotY2tTWnpCS215TFlXSWpWY0VJd1VhYXBF
eXRzMW1FSkwycVFIUm9FSFZza293MTJWdVBPYW5JaHBCY21yRElSbAotcG5UaFp1SFpPL2FPZUtX
RzlzS0ZWZkNPUkFVcnUrMy91ZFhSYkJMUUxtcEJaaVdPOEYxRXVMTnFVaHNXeC9iRgotc245NjMw
RVBBZ01CQUFFQ2dnRUFRYWQvTnFwbll2bW9KUGw4T3ZjZy9HZHlvcFVsWjUveGhETzRJT3VQZ0Ro
dAotZUNBaEVLdE9JQW96aUI1VXZ5SkIrWkxmeStaTzBsZURXZWp5N05xTURJUDZ1cVZkeExpaHR6
aU10dG13K1FQMgotV2tlbXBOSncvQTdhekpFT2VaWUpRWWZpU3hhTGNHZjQ0MEYyaVU3V3BjUjJy
dkxOUTBvU2swTWd0NFJXV1ZWNAotRlU0QTljZ0o0KytLaEF0bEN5c2tERytab0ZFajRPOTNXWHFh
Ty9vRjhZLyttakQ3eG9Md201bzhVMUUwMEZaUQotT1FrSjI2b2JMZk9RUmNiczNadExjcXNiWmw0
NkR6bW1HOERkcGRzdDJZOGhrZU1QZkk4M2k0eHUyYjV1ait3TwotU1pxd2NIbzRvUkdFUUVVajRX
R25OOVpqVmE5QVdjRE5BWTYzL0Z2VDBRS0JnUURXT3dmWXpzZEczL1IzVFEwWAotN1ZxN3RnWUxE
b1dWRlJzMk8xdmJFKy8rZjZ6UnlDbzg0SXZLZDRLRkcvbWxjWnI2T2RvNkgySFNuUWlSWDQvdwot
TEdqRytwckFxbDkwSU9EWmxqZ1lYRUt1UWVzZUh6NmhIQUwvazlnS0hTT1NtR213NU1tT3c0VFV1
SUkwK29jKwotNWVBclhqdXU5U1gyQUM5MzVpcjN2WUVRbHdLQmdRRE5ONWp4SE9SR2R0SjkyWXIv
cmtWVVNSaXI1LzdPaEJqegotczJLNjAvaFNIYldmZWptV2dHcHFFRXA5cUhCWXVYR1B1T1JXUi9B
MzdxcDYxdzNIaTMvV3A3bkpjam43c1VRSwotOXBoWjhCbW1XMkZJdkMyMko4dWkzM2ZqWC9WYmJk
NGloZEJvbmY2RzlmdnBaMWtrVS9uOGNvM2RSZFFrR056SQotSVE2a0pNVnFTUUtCZ1FDOGhqdzBq
bHVOd24zM0VzWm4vUWR3MHhGa1g0WXNtT05XaVV3ZmNkOHNQcDBPQzdFbgotMjQ4SlFMeUtlUURy
bUJzREF6QkpIOTdOSWtZczhFVFIzYkxqRUJ4cFdrVWdBK0w3ZUJlclVGMlp6Z2FqZm1sMgotREJt
VFlqNm5QOWRUSlc4MUxWRTJvbGJkZi9XTnU3NlRHbVo0bzdld0Vxb3lYeDFtelJXWTZKcVF4d0tC
Z1FEQwotMEovaGJTTUwvYXNQaStCWG54SHoxTHlXSFZRWXF2Q2hFVStOdXNMRythczhyU1JVU3E0
NjZDSS9MaE1STjJLbQotSk1pblcvMmdxM0t0ME5Baytib3ZoZVJxWjRUQittTjA0T3A2bnVOS3VQ
OGV0SDNVcWV5NFB0cXFRS05FMjRVQQotVXZZcENxdmhaVTF6SXdoTjQyYXpEL0M2K1pwTmRrakp1
QkFWSlU4LytRS0JnQWdyMzlzNjhadzhlc1B2M0FtUAotN1F4K0Q5aGxlRDA3eG0zaUhEMEVVL1dL
M0lXMlRxVU4yVnBMM2xwa3VjSDNNMHYxZG00OStUM05RdzUyNE5KSwotbmZ5dGdDYStSRVJtbzh0
L2VwSkc2ZFdaZ2VzVW5paVN2QWNrR3JpWmpjc2dPRXhZeUhlN3Z1MWRIT0xlVTJTLwotTkRLUjdm
cmdFVTdFaUd0TlFFYTh1Y0xECitNSUlFdmdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLZ3dn
Z1NrQWdFQUFvSUJBUURjd2hkemlFdjJXQWt2CitLL3dwZWNuNUxSQXByYldSamFvdGFjWHZrdG94
UzBhSzJmZjM0d2lWN0dyQnVjeHhVODFpM0xDdWNuZDgyZEdUCis0dkhmelRLS2FiNS8rdnV0MUZO
b0c1QkttR1laQ3BPbzZNWk9XQUpKNHpYWVFCQUVlS3VyU2pnbHpPWFdtalNwCitBRXpNOVRxVUc2
Nmxwb1NLNTh6djdnbmVEYmpEbkpoYktZWlF1ck5PbTNQTE1kMGVwMy95eHF3cVZpYTFuT24rCit4
YTRab0ZyV3dndVdES3gwOXloQktFVkRIWHRBR2ZacDlFV0FUcXVFc3FGU29lTHF5UUR2ZmU1SGVm
aTRkUG1ZCiszMk9pSkc0QXJTS2VneHlSZWtRWjhFNHgzbW5sdDNwckM2blpGZXhMRzYwVU9peC9B
TjNSaWZwSERleThacS9MCitwR3N5K05UN0FnTUJBQUVDZ2dFQkFKcmtPQTRoQUtOczY2ekVZTjQ5
REtDZnBLcUpyazdkSmgxTkRNdG1yMTlNCis0TWNGM3IxMzk0c3g0VW5oOG5kRmhHTXNVMjlpODBH
UGwwUDdSUmh4WWxmSmtCYzk0NTc0empqS3RqZ1FxL28vCisrSkRZR21QWHptdEhWMzFPbmE1MWVJ
WHJ3bStMVDJ4K3NCb3dFckx3RVZUZ0EyOUk0ZENRaWJPQ3dqdWlSeFEvCittbjJBNFE2ME9sbElS
Q3dTRTMvdUE5K21VcGVNcDVqZ0pkK29OM3VUNThUbWUvU1JOWHhPS2dDaWU4V1JVbnVlCitYL2Nn
aEtZU05tQXlEU2tiSjBLWTRvYXZiNVlSS1hOcEF0MmhOVzlKc04wcWQzK2o2SloyMW9kaHlkRGJ0
cVNxCitteGpQVFVGUU5GZUxWdkRUYVJZdyt6SytJL25vWklybFFzUzZKUE5mWGtFQ2dZRUErbTNM
OWpMZTJsejBTSm1HCitObkZ1WThyd3dZVkptNFRMaGpZRG1kbVliR2NZQ1BvOUNISEtoUjZaWHJt
Tnp4Y1h2d2FaazhaVHNwQVoyQnp3CisxQU01Mm1oR1plalI3eVY1RkVDaCtVS3J4L0F1ZCtqbTBX
aFB0d1lqaXh6OElobUdHODFvcll1ZXV4NTBIVWNPCitRL0s1TnFvMWVzQkJDK1g1WWEycmIzalNo
R0VDZ1lFQTRhdFJuNlA1RENqNHVnM1NTbFVOSVMzZEp4YmUzUWhCCitsVGtDdFhVUUMrcCtWSVVJ
MG1WazZOZ040ZHJnVmlLT2xoek1LWURNdGlWWTJYTFhRTlZQRUo0bmdNU0MxdXpyCit0R2VmTXVM
L1dScHN5c3h3ak4wYiswZkRWZVh0TTE2Q3RYT3Bxbm9ZaTNYWC9SNmFJcVozelZpL3R0d0VPeTZH
CitUZGduWk5jSlZ0c0NnWUFXNzB0SXB1d0Y3NUZudkxldjhMOTlZQzZnYW9hTk9hSXlEbXhTQUwy
VzMvSXhrRWxhCitwcUUzZzgvai92WmZ5dXVmMFFqcm9iUTBuRUhocXZUYlZkaE1pbFE0TFJSYzVI
K3NQU2NZWHVUQWtOeVFtc0hZCisxOGJGS2tqRENzcUVqUFhkUWZpZVBEVXpTZHkwZWJkeXZaMzh4
YVhVTWh0QzdiTGpJVGFjSk9LU3dRS0JnR2xKCisxa1ptYWI4cnFvaWNCRDVjR2trZHJlNGI5SlVw
MGZkK1p1NGtsUDBLUmpERzlRdTg5T3pTU1AvVWNCQ2dCT2l5Cit2T3FzUmxiQmJBZmdWZC9RNWhl
NXduS0l2UWJyK1RqdGs5QlpLb3YzRVVVNVIxWGhuN21JalBHWjJpYTZkTCtXCitIRllHcTBiK0Qy
endoemVkZFkzZ1YycElrc3pOOHltRXJUU1dRNnc3QW9HQkFJRUNCTXdFM1lMMFRHV1BkVTlBCitS
VjNhNUc5c2x1bnFoVkdRQ3d2QmZXd2o2dElwbGh0T0xBcDR5NDAwREhidzRKd2k1WitoRFF1OVB6
TUdoaHd1CitxWkxNSlpKNEJBVWFWSG9FY3VvMXNhYjI1VUg2YTBwZEdmN0JnQ21qS2pQQUh0dnpN
eWZ3ZktwanU3Wk9icHF4CitZZXQxRE1wdm1QbFgxa1pzRWgwNzJ6QnMKIC0tLS0tRU5EIFBSSVZB
VEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3QucGVtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZv
cm0udGVzdC5wZW0KaW5kZXggNjFkN2U0ZDE4OTI2NjUwMGVmYjM3OWRhOTYwZWFmYmIzOGFjYTUz
MC4uZTc5MzIzZDY2ZmQ3ZTZkNDdhNzk1MWEyMDFhYmExYjlmNGFhOTYyMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93
ZWItcGxhdGZvcm0udGVzdC5wZW0KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5wZW0KQEAgLTEsNDMg
KzEsNDMgQEAKIENlcnRpZmljYXRlOgogICAgIERhdGE6CiAgICAgICAgIFZlcnNpb246IDMgKDB4
MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogOTEyMjg4ICgweGRlYmEwKQorICAgICAgICBTZXJp
YWwgTnVtYmVyOiA0MTUwNDYgKDB4NjU1NDYpCiAgICAgICAgIFNpZ25hdHVyZSBBbGdvcml0aG06
IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCiAgICAgICAgIElzc3VlcjogQ049d2ViLXBsYXRmb3Jt
LXRlc3RzCiAgICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBPY3QgMTIg
MDA6MzA6NDcgMjAyMCBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IE9jdCAxMiAwMDozMDo0
NyAyMDIxIEdNVAorICAgICAgICAgICAgTm90IEJlZm9yZTogSmFuIDEyIDE2OjEzOjI4IDIwMjEg
R01UCisgICAgICAgICAgICBOb3QgQWZ0ZXIgOiBKYW4gMTIgMTY6MTM6MjggMjAyMiBHTVQKICAg
ICAgICAgU3ViamVjdDogQ049d2ViLXBsYXRmb3JtLnRlc3QKICAgICAgICAgU3ViamVjdCBQdWJs
aWMgS2V5IEluZm86CiAgICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlw
dGlvbgogICAgICAgICAgICAgICAgIFJTQSBQdWJsaWMtS2V5OiAoMjA0OCBiaXQpCiAgICAgICAg
ICAgICAgICAgTW9kdWx1czoKLSAgICAgICAgICAgICAgICAgICAgMDA6YWI6YmI6Y2I6ZjQ6MWY6
OTI6OWE6ZDg6ZDM6YzY6NTk6NTU6Nzk6NjM6Ci0gICAgICAgICAgICAgICAgICAgIDQ4OjdkOjEx
OjFmOmZkOmNhOjcwOjhiOjJkOjI5OmIyOmZlOjMxOmUzOjcyOgotICAgICAgICAgICAgICAgICAg
ICBmNjoyZDpjMDpkYTo0MDo3ZDoyODowNzpiYTo2ZDo0Mjo2ZDo2YzpkZTpmNzoKLSAgICAgICAg
ICAgICAgICAgICAgMjE6M2I6NmM6ZDY6OTA6ZjQ6NTU6ZGI6MDM6N2Q6ZDU6ZGQ6Yzk6ZTE6ZDI6
Ci0gICAgICAgICAgICAgICAgICAgIDBjOmQ0OmM4OmUyOmJjOmQ3OjJjOjVjOjUzOjk1OjY0OjJh
OjljOjhkOjI1OgotICAgICAgICAgICAgICAgICAgICBjNjowNTowNzpmYTo2MzozODpjMDo3YTpl
YTpiNDpiNjo0MDozNDo3NjozYzoKLSAgICAgICAgICAgICAgICAgICAgNGE6Yzk6NGQ6ZGI6YTE6
ZDc6MmQ6ZWM6NWY6YTI6NWI6MmI6NTY6ODA6NDM6Ci0gICAgICAgICAgICAgICAgICAgIGM2Ojlj
OjRhOjcxOjU3OjMzOjNkOjhiOmRiOmNiOjMwOjk5Ojc4OjI2OjE1OgotICAgICAgICAgICAgICAg
ICAgICA4OTo4MjpjNTo2MTpjMTpmMzoxNTo2YzozZDoxZTo3MTphODo4NjphZjplNToKLSAgICAg
ICAgICAgICAgICAgICAgYzk6ZTM6NDM6MjU6NWY6OGI6YjA6NjU6NzE6OTA6OTQ6NmE6MzE6MzE6
YmU6Ci0gICAgICAgICAgICAgICAgICAgIGU4OjI0OjEyOmQ4OmVkOjcyOjQ0Ojk5OmNjOjEyOmE2
OmM4OmI2OjE2OjIyOgotICAgICAgICAgICAgICAgICAgICAzNTo1YzoxMDo4YzoxNDo2OTphYTo0
NDpjYTpkYjozNTo5ODo0Mjo0YjpkYToKLSAgICAgICAgICAgICAgICAgICAgYTQ6MDc6NDY6ODE6
MDc6NTY6Yzk6Mjg6YzM6NWQ6OTU6Yjg6ZjM6OWE6OWM6Ci0gICAgICAgICAgICAgICAgICAgIDg4
OjY5OjA1OmM5OmFiOjBjOjg0OjY1OmE2Ojc0OmUxOjY2OmUxOmQ5OjNiOgotICAgICAgICAgICAg
ICAgICAgICBmNjo4ZTo3ODphNTo4NjpmNjpjMjo4NTo1NTpmMDo4ZTo0NDowNToyYjpiYjoKLSAg
ICAgICAgICAgICAgICAgICAgZWQ6ZmY6Yjk6ZDU6ZDE6NmM6MTI6ZDA6MmU6NmE6NDE6NjY6MjU6
OGU6ZjA6Ci0gICAgICAgICAgICAgICAgICAgIDVkOjQ0OmI4OmIzOjZhOjUyOjFiOjE2OmM3OmY2
OmM1OmIyOjdmOjdhOmRmOgotICAgICAgICAgICAgICAgICAgICA0MTowZgorICAgICAgICAgICAg
ICAgICAgICAwMDpkYzpjMjoxNzo3Mzo4ODo0YjpmNjo1ODowOToyZjoyYjpmYzoyOTo3OToKKyAg
ICAgICAgICAgICAgICAgICAgYzk6Zjk6MmQ6MTA6Mjk6YWQ6YjU6OTE6OGQ6YWE6MmQ6Njk6YzU6
ZWY6OTI6CisgICAgICAgICAgICAgICAgICAgIGRhOjMxOjRiOjQ2OjhhOmQ5OmY3OmY3OmUzOjA4
Ojk1OmVjOjZhOmMxOmI5OgorICAgICAgICAgICAgICAgICAgICBjYzo3MTo1MzpjZDo2MjpkYzpi
MDphZTo3Mjo3Nzo3YzpkOTpkMTo5MzplMjoKKyAgICAgICAgICAgICAgICAgICAgZjE6ZGY6Y2Q6
MzI6OGE6Njk6YmU6N2Y6ZmE6ZmI6YWQ6ZDQ6NTM6Njg6MWI6CisgICAgICAgICAgICAgICAgICAg
IDkwOjRhOjk4OjY2OjE5OjBhOjkzOmE4OmU4OmM2OjRlOjU4OjAyOjQ5OmUzOgorICAgICAgICAg
ICAgICAgICAgICAzNTpkODo0MDoxMDowNDo3ODphYjphYjo0YTozODoyNTpjYzplNTpkNjo5YToK
KyAgICAgICAgICAgICAgICAgICAgMzQ6YTk6MDA6NGM6Y2M6ZjU6M2E6OTQ6MWI6YWU6YTU6YTY6
ODQ6OGE6ZTc6CisgICAgICAgICAgICAgICAgICAgIGNjOmVmOmVlOjA5OmRlOjBkOmI4OmMzOjlj
Ojk4OjViOjI5Ojg2OjUwOmJhOgorICAgICAgICAgICAgICAgICAgICBiMzo0ZTo5Yjo3MzpjYjoz
MTpkZDoxZTphNzo3ZjpmMjpjNjphYzoyYTo1NjoKKyAgICAgICAgICAgICAgICAgICAgMjY6YjU6
OWM6ZTk6ZmU6YzU6YWU6MTk6YTA6NWE6ZDY6YzI6MGI6OTY6MGM6CisgICAgICAgICAgICAgICAg
ICAgIGFjOjc0OmY3OjI4OjQxOjI4OjQ1OjQzOjFkOjdiOjQwOjE5OmY2OjY5OmY0OgorICAgICAg
ICAgICAgICAgICAgICA0NTo4MDo0ZTphYjo4NDpiMjphMTo1MjphMTplMjplYTpjOTowMDplZjo3
ZDoKKyAgICAgICAgICAgICAgICAgICAgZWU6NDc6Nzk6Zjg6Yjg6NzQ6Zjk6OTg6ZGY6NjM6YTI6
MjQ6NmU6MDA6YWQ6CisgICAgICAgICAgICAgICAgICAgIDIyOjllOjgzOjFjOjkxOjdhOjQ0OjE5
OmYwOjRlOjMxOmRlOjY5OmU1OmI3OgorICAgICAgICAgICAgICAgICAgICA3YTo2YjowYjphOTpk
OToxNTplYzo0YjoxYjphZDoxNDozYToyYzo3ZjowMDoKKyAgICAgICAgICAgICAgICAgICAgZGQ6
ZDE6ODk6ZmE6NDc6MGQ6ZWM6YmM6NjY6YWY6Y2I6YTQ6NmI6MzI6Zjg6CisgICAgICAgICAgICAg
ICAgICAgIGQ0OmZiCiAgICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQog
ICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKICAgICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25z
dHJhaW50czogCiAgICAgICAgICAgICAgICAgQ0E6RkFMU0UKICAgICAgICAgICAgIFg1MDl2MyBT
dWJqZWN0IEtleSBJZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICA4QzpENDo0ODowMToxQjpG
Rjo5Rjo0MjowRDo4MTpEMjowNToyRDo0NzpDQTo4RTpGNDpEQjoxODowNworICAgICAgICAgICAg
ICAgIENEOkYxOkM4OjYyOkQxOkVDOkE1OjNEOkU0OjFBOjkxOjcwOkYxOjAyOkU2OjZFOkJDOjJG
OkUyOjA1CiAgICAgICAgICAgICBYNTA5djMgQXV0aG9yaXR5IEtleSBJZGVudGlmaWVyOiAKLSAg
ICAgICAgICAgICAgICBrZXlpZDo4MTo2RTpDMDoxNTo0MTo0MDo3NzowRjowQzozQToxRTo4QjpF
RjpBNTpCNDoyMzozNDoyQTpENDowRgorICAgICAgICAgICAgICAgIGtleWlkOkRDOjZEOjhEOjYy
OkREOjU0Ojk4OkM4OjYwOjE3OkMyOkQzOjUxOkIzOkJGOjczOjVCOjVDOjkwOkI5CiAKICAgICAg
ICAgICAgIFg1MDl2MyBLZXkgVXNhZ2U6IAogICAgICAgICAgICAgICAgIERpZ2l0YWwgU2lnbmF0
dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnQKQEAgLTQ2LDMzICs0NiwzMyBA
QCBDZXJ0aWZpY2F0ZToKICAgICAgICAgICAgIFg1MDl2MyBTdWJqZWN0IEFsdGVybmF0aXZlIE5h
bWU6IAogICAgICAgICAgICAgICAgIEROUzp3ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOC53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wNy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOS53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wNC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wNi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMy53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wMi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMS53ZWItcGxhdGZvcm0udGVz
dCwgRE5TOnd3dy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNS53ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wODgud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk4LndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A4NS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODkud2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDY2LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wMjQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3A3OS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDU5LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzOS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
NjAud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDU4LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3Ay
OC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDE0
LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2OS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDAu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDc0LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzMS53
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTgud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDczLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3Ny53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTIud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDU0LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2My53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wNzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk1LndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3AxNi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzYud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDI3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyOS53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wOTQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQ0LndlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3AzMy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODQud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDMyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2MS53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wNzAud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A0My53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzgud2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpvcDI2LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3Ni53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wNTIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk5LndlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A4Ni53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDYud2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDE3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5MC53ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wOTMud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDEwLndlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3A1NS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDcud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDUxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0NS53ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wODAud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDY4LndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A0OS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTcud2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDM1LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2Ny53ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wOTIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDE1LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3AxMy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzUud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDY0LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5Ny53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
Mzcud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDU2LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2
Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI1
LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxMS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTAu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM4LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4My53
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDIwLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyMS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjMud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDQyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyMi53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wNjUud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk2LndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3A4Ny53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTkud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDUzLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzMC53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wNDgud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM0LndlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3A2Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMy5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1Lm5v
dC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3
d3cud3d3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wNC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDgubm90LXdlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A5Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMS5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDM2Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTMubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI0
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A5NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDgzLm5vdC13ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3My5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDE5Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjEubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDcwLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3A0MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI1Lm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wNjUubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnd3dzIud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDgwLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTIu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2OC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDQ1Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzEubm90LXdlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDkwLm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wODkubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0OS5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDc3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
Nzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp3d3cud3d3MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTIubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3AzOS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQ0Lm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1OC5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDE0Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wMzAubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDYxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTIubm90LXdlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3AyOS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk4Lm5vdC13
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3Ay
Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDIyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wOTQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzOC5ub3Qtd2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpvcDMzLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjMubm90LXdlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3A1Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDU0Lm5v
dC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODUubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3A0Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk3Lm5vdC13ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wMzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2MC5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDk2Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTEubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM1
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A0Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDY3Lm5vdC13ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wMzcubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0OC5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDU1Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTYubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDM0Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjkubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3AxMS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDkzLm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4Ni5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDEzLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjAu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDI3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTcubm90LXdlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A3NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDE1Lm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wNDcubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxOC5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDYzLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
Mjgubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDY2Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIud3d3LndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A5MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDc0Lm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wNTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4OC5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDg3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wMTAubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxNi5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3QsIEROUzp3d3cxLnd3dzIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnd3dzIud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzp3d3cyLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3
dzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwg
RE5TOnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEud3d3Lm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOnd3dy53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3
dzIud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy53d3cxLm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnd3dzIud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnd3
dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS53d3cxLm5vdC13ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOnd3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZs
YWQud3d3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cy
LnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53d3cyLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dzEud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp3d3cxLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxh
ZC53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3QsIEROUzp3d3cyLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cx
LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud3d3
Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzp3d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4
bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnhu
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUz
bHd3a3JxaHYyOGEud3d3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2ty
cWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnhuLS1uOGo2ZHM1M2x3d2ty
cWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnhuLS1sdmUtNmxhZC5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Lm5vdC13
ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEubm90LXdlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2ZS02bGFkLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnhuLS1uOGo2ZHM1M2x3d2tycWh2Mjhh
LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2ZS02
bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNs
d3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFo
djI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1u
OGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZv
cm0udGVzdAogICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9u
Ci0gICAgICAgICA3OTpjYjphMToxNzoxNDpmOTozNDo4YjpmNTplZjpjYjoyMToyMjo0NzpkYzpi
MTozMjoxNzoKLSAgICAgICAgIDBmOjE0OmQzOmQ3OjAzOjc2OmRmOjQxOjIwOjg0OjUwOjYzOmEy
OjdjOmI3OjMxOmZlOmEwOgotICAgICAgICAgZjI6Yzk6MzA6Nzk6MmM6MzA6NmI6Zjc6ZWI6MzY6
MTM6YWM6Mjc6NWU6NGE6MDY6NDk6NmM6Ci0gICAgICAgICBjMjo5YzpmNjpiMDo1NjphOTo2ZToy
NTplMjo4Mjo5MTplOTphYzozYjoyZDo5ZjpjZDphNDoKLSAgICAgICAgIGY5OmMxOjc0OjRjOjE1
OmI3OjY4OmVmOjAxOjZmOmUwOmYyOjliOmJlOjBjOjQ4Ojk2OjNmOgotICAgICAgICAgNmU6NDI6
NzE6ZTk6Zjc6ZDg6MDg6YmE6M2Q6ZTY6YWI6YzA6Y2Y6NDQ6YzA6YTg6Y2E6NjI6Ci0gICAgICAg
ICA4NDoxYzpjMjo0NjowMjpiMDo3Nzo5ODoxNTpiYTo3ZDo2MDpiOTplNTplOTpmZjpkOTo3ODoK
LSAgICAgICAgIDYyOmNkOjViOjBhOjhlOjI1OmZlOmEzOjI1OjEwOjgzOjRlOjg0Ojc0OjI1OjYx
OjU0OjMzOgotICAgICAgICAgNDU6ZDQ6ODQ6Y2I6NzY6OTE6YmI6YWI6NDE6ZDU6OTg6YjE6NDQ6
OTE6NGI6ZTI6ZDI6YTU6Ci0gICAgICAgICA3NToxNTpmYjo1ZjpkNzo3Mzo2ZDo2ZDpjNjo0Yjo5
Nzo3NDozYjowYjpmMzpmMTpmYTpkYToKLSAgICAgICAgIDE5OjZkOjZiOjI3OjdjOjhkOmYxOjk5
Ojg2OmYxOjExOmIxOjgxOjJmOmEwOjJjOmZiOmZlOgotICAgICAgICAgOWQ6Njc6ZDI6NDk6NWQ6
ZjU6MGQ6ZGI6MDM6MjY6ZmM6YzE6NGI6YWI6ZGQ6MTg6ZDU6N2U6Ci0gICAgICAgICA3YTo2NDo2
MTo2OTozYjo5MDo0ZjoyZDphZDoyMTo0MDowNzpkMTo1YTpmMDozMDo2YTplZDoKLSAgICAgICAg
IDBjOjg0OjU4OmExOjU1OjNjOjAwOmUxOjIzOjNlOjYwOmNiOmQ0OjU3OjFhOjY5OjJkOjJlOgot
ICAgICAgICAgNTY6M2E6NTE6MTQKKyAgICAgICAgIDM4OmE3OmVmOmViOjU1OjMwOmU4OjZmOmJm
OjUxOmE5OmViOjUyOjlhOjY2OmVjOjNkOjE5OgorICAgICAgICAgNWQ6ZjQ6MWQ6ODQ6MTc6YzA6
ZjI6MjY6M2U6MmI6NjY6NWQ6N2E6YTk6NDQ6ODY6YzM6YmE6CisgICAgICAgICBkNzpmMDo5ZTpl
NzpiMjpiMzowNTowYzoyNTplZjplMTpiNzo5NDo4Yzo0NDoxYzpkMjo1NzoKKyAgICAgICAgIDRj
OjMwOjUxOjk2OjI5Ojk2OjJlOmIzOmUzOjFjOmY4OjljOmU2OjdkOjk2OjE0OjNmOjNmOgorICAg
ICAgICAgM2U6YTY6OTY6NGI6MDE6ZGM6ZjI6ZWQ6YmY6ZmM6ZTM6NjQ6OTM6NDk6ODE6YmU6Yzk6
ZGQ6CisgICAgICAgICBkZDoxYjpjZTpkYTo3Mjo0NTpkMToyZDpjYTo5OTpjZDpkMTo3ZDpmOTox
NzplMTplZToxMjoKKyAgICAgICAgIGY0OmVkOjc2OjQxOmNhOjZmOmE1OjVjOjcyOjAwOjRhOjhk
Ojc2OmM1OjJiOmI3OjE4OjdiOgorICAgICAgICAgY2U6ZTg6YWI6NzY6OWE6NzU6ZTk6MWQ6NTM6
OWI6NzU6OTM6NmQ6MGI6MmU6NDk6M2Y6YmY6CisgICAgICAgICA4NDoxZjo3MTpiZTo0OToyMzph
YjoyYzpmODphNjphMjoyODo5Mzo4MjowNDo2Yzo4ZTo4NToKKyAgICAgICAgIDIyOjBlOmI2OjZk
OmM1OjFlOjgyOmQxOjBkOmM2OjA4OjlhOjg2OmExOjI5OjVjOjc5OjUzOgorICAgICAgICAgZDM6
YWU6ZDY6YzQ6MzM6NGI6ZDI6MDQ6NWE6ZDk6YTA6YzM6NmQ6MjY6ZWM6ZTg6MzU6MDY6CisgICAg
ICAgICBlNzo4ODoxMjowMzo3YzpjNTo4MzoyNjpiMjpiNTozMjphMzo0MTo1MTpiNDo5NDpiMDo4
NDoKKyAgICAgICAgIDBkOjRhOjA1OjUyOjAyOjI5OjQxOjViOjAzOjA0OmYwOmMzOmU1OjI0OmU2
OjVhOmVmOjcwOgorICAgICAgICAgNDU6NDU6NTg6MjU6MmI6NWU6YmU6N2Q6Y2E6NzM6MDI6MmI6
MWQ6NGY6M2M6NGI6MDA6ZjQ6CisgICAgICAgICA2OTo1ZjoxYTo2ZQogLS0tLS1CRUdJTiBDRVJU
SUZJQ0FURS0tLS0tCi1NSUlndkRDQ0g2U2dBd0lCQWdJRERldWdNQTBHQ1NxR1NJYjNEUUVCQ3dV
QU1CMHhHekFaQmdOVkJBTU1FbmRsCi1ZaTF3YkdGMFptOXliUzEwWlhOMGN6QWVGdzB5TURFd01U
SXdNRE13TkRkYUZ3MHlNVEV3TVRJd01ETXdORGRhCitNSUlndkRDQ0g2U2dBd0lCQWdJREJsVkdN
QTBHQ1NxR1NJYjNEUUVCQ3dVQU1CMHhHekFaQmdOVkJBTU1FbmRsCitZaTF3YkdGMFptOXliUzEw
WlhOMGN6QWVGdzB5TVRBeE1USXhOakV6TWpoYUZ3MHlNakF4TVRJeE5qRXpNamhhCiBNQnd4R2pB
WUJnTlZCQU1NRVhkbFlpMXdiR0YwWm05eWJTNTBaWE4wTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVG
Ci1BQU9DQVE4QU1JSUJDZ0tDQVFFQXE3dkw5QitTbXRqVHhsbFZlV05JZlJFZi9jcHdpeTBwc3Y0
eDQzTDJMY0RhCi1RSDBvQjdwdFFtMXMzdmNoTzJ6V2tQUlYyd045MWQzSjRkSU0xTWppdk5jc1hG
T1ZaQ3FjalNYR0JRZjZZempBCi1ldXEwdGtBMGRqeEt5VTNib2RjdDdGK2lXeXRXZ0VQR25FcHhW
ek05aTl2TE1KbDRKaFdKZ3NWaHdmTVZiRDBlCi1jYWlHcitYSjQwTWxYNHV3WlhHUWxHb3hNYjdv
SkJMWTdYSkVtY3dTcHNpMkZpSTFYQkNNRkdtcVJNcmJOWmhDCi1TOXFrQjBhQkIxYkpLTU5kbGJq
em1weUlhUVhKcXd5RVphWjA0V2JoMlR2MmpuaWxodmJDaFZYd2prUUZLN3Z0Ci0vN25WMFd3UzBD
NXFRV1lsanZCZFJMaXphbEliRnNmMnhiSi9ldDlCRHdJREFRQUJvNEllQkRDQ0hnQXdDUVlECi1W
UjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVqTlJJQVJ2L24wSU5nZElGTFVmS2p2VGJHQWN3SHdZRFZS
MGpCQmd3Ci1Gb0FVZ1c3QUZVRkFkdzhNT2g2TDc2VzBJelFxMUE4d0N3WURWUjBQQkFRREFnWGdN
Qk1HQTFVZEpRUU1NQW9HCitBQU9DQVE4QU1JSUJDZ0tDQVFFQTNNSVhjNGhMOWxnSkx5djhLWG5K
K1MwUUthMjFrWTJxTFduRjc1TGFNVXRHCitpdG4zOStNSWxleHF3Ym5NY1ZQTll0eXdybkozZk5u
UmsrTHgzODB5aW1tK2YvcjdyZFJUYUJ1UVNwaG1HUXFUCitxT2pHVGxnQ1NlTTEyRUFRQkhpcnEw
bzRKY3psMXBvMHFRQk16UFU2bEJ1dXBhYUVpdWZNNys0SjNnMjR3NXlZCitXeW1HVUxxelRwdHp5
ekhkSHFkLzhzYXNLbFltdFp6cC9zV3VHYUJhMXNJTGxneXNkUGNvUVNoRlF4MTdRQm4yCithZlJG
Z0U2cmhMS2hVcUhpNnNrQTczM3VSM240dUhUNW1OOWpvaVJ1QUswaW5vTWNrWHBFR2ZCT01kNXA1
YmQ2Cithd3VwMlJYc1N4dXRGRG9zZndEZDBZbjZSdzNzdkdhdnk2UnJNdmpVK3dJREFRQUJvNEll
QkRDQ0hnQXdDUVlECitWUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVV6ZkhJWXRIc3BUM2tHcEZ3OFFM
bWJyd3Y0Z1V3SHdZRFZSMGpCQmd3CitGb0FVM0cyTll0MVVtTWhnRjhMVFViTy9jMXRja0xrd0N3
WURWUjBQQkFRREFnWGdNQk1HQTFVZEpRUU1NQW9HCiBDQ3NHQVFVRkJ3TUJNSUlkandZRFZSMFJC
SUlkaGpDQ0hZS0NFWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaFZ2CiBjRGd1ZDJWaUxYQnNZWFJt
YjNKdExuUmxjM1NDRlc5d055NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVZiM0E1CiBMbmRsWWkx
d2JHRjBabTl5YlM1MFpYTjBnaFZ2Y0RRdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0ZXNXZkQzEz
CkBAIC0yMzEsMTAgKzIzMSwxMCBAQCBObXhoWkM1NGJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2Rq
STRZUzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsCiBjM1NDUVhodUxTMXVPR28yWkhNMU0yeDNk
MnR5Y1doMk1qaGhMbmh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyCiBNamhoTG5kbFlpMXdiR0Yw
Wm05eWJTNTBaWE4wZ2tWNGJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzU0CiBiaTB0Ympo
cU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdEUVlK
Ci1Lb1pJaHZjTkFRRUxCUUFEZ2dFQkFIbkxvUmNVK1RTTDllL0xJU0pIM0xFeUZ3OFUwOWNEZHQ5
QklJUlFZNko4Ci10ekgrb1BMSk1Ia3NNR3YzNnpZVHJDZGVTZ1pKYk1LYzlyQldxVzRsNG9LUjZh
dzdMWi9OcFBuQmRFd1Z0Mmp2Ci1BVy9nOHB1K0RFaVdQMjVDY2VuMzJBaTZQZWFyd005RXdLaktZ
b1Fjd2tZQ3NIZVlGYnA5WUxubDZmL1plR0xOCi1Xd3FPSmY2akpSQ0RUb1IwSldGVU0wWFVoTXQy
a2J1clFkV1lzVVNSUytMU3BYVVYrMS9YYzIxdHhrdVhkRHNMCi04L0g2MmhsdGF5ZDhqZkdaaHZF
UnNZRXZvQ3o3L3AxbjBrbGQ5UTNiQXliOHdVdXIzUmpWZm5wa1lXazdrRTh0Ci1yU0ZBQjlGYThE
QnE3UXlFV0tGVlBBRGhJejVneTlSWEdta3RMbFk2VVJRPQorS29aSWh2Y05BUUVMQlFBRGdnRUJB
RGluNyt0Vk1PaHZ2MUdwNjFLYVp1dzlHVjMwSFlRWHdQSW1QaXRtWFhxcAorUkliRHV0ZndudWV5
c3dVTUplL2h0NVNNUkJ6U1Ywd3dVWllwbGk2ejR4ejRuT1o5bGhRL1B6Nm1sa3NCM1BMdAordi96
alpKTkpnYjdKM2QwYnp0cHlSZEV0eXBuTjBYMzVGK0h1RXZUdGRrSEtiNlZjY2dCS2pYYkZLN2NZ
ZTg3bworcTNhYWRla2RVNXQxazIwTExray92NFFmY2I1Skk2c3MrS2FpS0pPQ0JHeU9oU0lPdG0z
RkhvTFJEY1lJbW9haAorS1Z4NVU5T3Uxc1F6UzlJRVd0bWd3MjBtN09nMUJ1ZUlFZ044eFlNbXNy
VXlvMEZSdEpTd2hBMUtCVklDS1VGYgorQXdUd3crVWs1bHJ2Y0VWRldDVXJYcjU5eW5NQ0t4MVBQ
RXNBOUdsZkdtND0KIC0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5z
dGFsbF9jaHJvbWUueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2Nocm9tZS55bWwKaW5kZXggZmQ2NTBlODBhYWFk
MzA5YzhlOTgzMjc0ZDJiODIzYmJhOTFiMWZiMS4uOWNjZGM0OWJhMGVlMWZhNDM4MmNmNWUwNmM5
OGExNDk4OTM4YTMzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2Nocm9tZS55bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9p
bnN0YWxsX2Nocm9tZS55bWwKQEAgLTIsOCArMiw5IEBAIHN0ZXBzOgogIyBUaGUgY29uZmxpY3Rp
bmcgZ29vZ2xlLWNocm9tZSBhbmQgY2hyb21lZHJpdmVyIGNhc2tzIGFyZSBmaXJzdCB1bmluc3Rh
bGxlZC4KICMgVGhlIHJhdyBnb29nbGUtY2hyb21lLWRldiBjYXNrIFVSTCBpcyB1c2VkIHRvIGJ5
cGFzcyBjYWNoaW5nLgogLSBzY3JpcHQ6IHwKLSAgICBIT01FQlJFV19OT19BVVRPX1VQREFURT0x
IGJyZXcgY2FzayB1bmluc3RhbGwgZ29vZ2xlLWNocm9tZSB8fCB0cnVlCi0gICAgSE9NRUJSRVdf
Tk9fQVVUT19VUERBVEU9MSBicmV3IGNhc2sgdW5pbnN0YWxsIGNocm9tZWRyaXZlciB8fCB0cnVl
Ci0gICAgSE9NRUJSRVdfTk9fQVVUT19VUERBVEU9MSBicmV3IGNhc2sgaW5zdGFsbCBodHRwczov
L3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vSG9tZWJyZXcvaG9tZWJyZXctY2Fzay12ZXJzaW9u
cy9tYXN0ZXIvQ2Fza3MvZ29vZ2xlLWNocm9tZS1kZXYucmIKKyAgICBIT01FQlJFV19OT19BVVRP
X1VQREFURT0xIGJyZXcgdW5pbnN0YWxsIC0tY2FzayBnb29nbGUtY2hyb21lIHx8IHRydWUKKyAg
ICBIT01FQlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcgdW5pbnN0YWxsIC0tY2FzayBjaHJvbWVk
cml2ZXIgfHwgdHJ1ZQorICAgIGN1cmwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29t
L0hvbWVicmV3L2hvbWVicmV3LWNhc2stdmVyc2lvbnMvbWFzdGVyL0Nhc2tzL2dvb2dsZS1jaHJv
bWUtZGV2LnJiID4gZ29vZ2xlLWNocm9tZS1kZXYucmIKKyAgICBIT01FQlJFV19OT19BVVRPX1VQ
REFURT0xIGJyZXcgaW5zdGFsbCAtLWNhc2sgZ29vZ2xlLWNocm9tZS1kZXYucmIKICAgZGlzcGxh
eU5hbWU6ICdJbnN0YWxsIENocm9tZSBEZXYnCiAgIGNvbmRpdGlvbjogYW5kKHN1Y2NlZWRlZCgp
LCBlcSh2YXJpYWJsZXNbJ0FnZW50Lk9TJ10sICdEYXJ3aW4nKSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5z
dGFsbF9maXJlZm94LnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9maXJlZm94LnltbAppbmRleCBkZTZkMDMzNWYy
MjFmNmQyMjE1ZWJkYzhlZjVkMmVlMjY5ZmRmZGYzLi43YjhjN2JlMDVmZWU5YmM2ZDZkYjk2MDlh
MjFhNzFiOGNjOTNiMjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZmlyZWZveC55bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS9pbnN0YWxsX2ZpcmVmb3gueW1sCkBAIC0xLDYgKzEsOCBAQAogc3RlcHM6CiAjIFRoaXMgaXMg
ZXF1aXZhbGVudCB0byBgSG9tZWJyZXcvaG9tZWJyZXctY2Fzay12ZXJzaW9ucy9maXJlZm94LW5p
Z2h0bHlgLAogIyBidXQgdGhlIHJhdyBVUkwgaXMgdXNlZCB0byBieXBhc3MgY2FjaGluZy4KLS0g
c2NyaXB0OiBIT01FQlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcgY2FzayBpbnN0YWxsIGh0dHBz
Oi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9Ib21lYnJldy9ob21lYnJldy1jYXNrLXZlcnNp
b25zL21hc3Rlci9DYXNrcy9maXJlZm94LW5pZ2h0bHkucmIKKy0gc2NyaXB0OiB8CisgICAgY3Vy
bCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vSG9tZWJyZXcvaG9tZWJyZXctY2Fz
ay12ZXJzaW9ucy9tYXN0ZXIvQ2Fza3MvZmlyZWZveC1uaWdodGx5LnJiID4gZmlyZWZveC1uaWdo
dGx5LnJiCisgICAgSE9NRUJSRVdfTk9fQVVUT19VUERBVEU9MSBicmV3IGluc3RhbGwgLS1jYXNr
IGZpcmVmb3gtbmlnaHRseS5yYgogICBkaXNwbGF5TmFtZTogJ0luc3RhbGwgRmlyZWZveCBOaWdo
dGx5JwogICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQoKSwgZXEodmFyaWFibGVzWydBZ2VudC5P
UyddLCAnRGFyd2luJykpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfcHl0aG9uLnltbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5z
dGFsbF9weXRob24ueW1sCmluZGV4IDY1ODUyMzliYzhjY2Q5NjU0ZGYxODgwNDIzYzc2MTFlNmRi
YmVhNjIuLjYyNTcxNzIwMjFkNWE4YTA0MzQ2OWY5MzgwMGQ5ZWQ4Zjc5ZWZjNzggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
YXp1cmUvaW5zdGFsbF9weXRob24ueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9weXRob24ueW1sCkBAIC0x
LDE1ICsxLDM2IEBACiBzdGVwczoKIC0gcG93ZXJzaGVsbDogfAotICAgIFN0YXJ0LUJpdHNUcmFu
c2ZlciAtU291cmNlIGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZnRwL3B5dGhvbi8yLjcuMTUvcHl0
aG9uLTIuNy4xNS5hbWQ2NC5tc2kgLURlc3RpbmF0aW9uIHB5dGhvbi5tc2kKLSAgICAkaGFzaCA9
IChHZXQtRmlsZUhhc2ggcHl0aG9uLm1zaSkuSGFzaC5Ub0xvd2VyKCkKLSAgICAkZXhwZWN0ZWRI
YXNoID0gIjVlODVmM2M0YzIwOWRlOTg0ODBhY2JmMmJhMmU3MWE5MDdmZDU1NjdhODM4YWQ0YjY3
NDhjNzZkZWIyODZhZDciCisgICAgJHB5dGhvblBhdGggPSAnQzpcUHl0aG9uMzgnCisgICAgJHB5
dGhvbkluc3RhbGxlckxvZ1BhdGggPSAncHl0aG9uX2luc3RhbGxlci5sb2cnCisgICAgJGluc3Rh
bGxBcmdzID0gIi9wYXNzaXZlIC9sb2cgJHB5dGhvbkluc3RhbGxlckxvZ1BhdGggVGFyZ2V0RGly
PSRweXRob25QYXRoIgorCisgICAgV3JpdGUtSG9zdCAiRG93bmxvYWRpbmcgcHl0aG9uIGluc3Rh
bGxlciBleGUiCisgICAgJGRvd25sb2FkUGF0aCA9ICdweXRob25faW5zdGFsbGVyLmV4ZScKKyAg
ICBTdGFydC1CaXRzVHJhbnNmZXIgLVNvdXJjZSBodHRwczovL3d3dy5weXRob24ub3JnL2Z0cC9w
eXRob24vMy44LjUvcHl0aG9uLTMuOC41LWFtZDY0LmV4ZSAgLURlc3RpbmF0aW9uICRkb3dubG9h
ZFBhdGgKKyAgICAkaGFzaCA9IChHZXQtRmlsZUhhc2ggJGRvd25sb2FkUGF0aCkuSGFzaC5Ub0xv
d2VyKCkKKyAgICAkZXhwZWN0ZWRIYXNoID0gImNkNDI3YzdiMTczMzdkN2MxMzc2MWNhMjA4Nzdk
MmQ4YmU2NjFiZDMwNDE1ZGRjMTcwNzJhMzFhNjVhOTFiNjQiCiAgICAgaWYgKCRoYXNoLkVxdWFs
cygkZXhwZWN0ZWRIYXNoKSkgewotICAgICAgV3JpdGUtSG9zdCAicHl0aG9uLm1zaSBoYXNoIHZl
cmlmaWVkIgorICAgICAgV3JpdGUtSG9zdCAiJGRvd25sb2FkUGF0aCBoYXNoIHZlcmlmaWVkIgog
ICAgIH0gZWxzZSB7Ci0gICAgICBUaHJvdyAicHl0aG9uLm1zaSBoYXNoIG1pc21hdGNoLCBnb3Qg
JGhhc2gsIGV4cGVjdGVkICRleHBlY3RlZEhhc2giCisgICAgICBUaHJvdyAiJGRvd25sb2FkUGF0
aCBoYXNoIG1pc21hdGNoLCBnb3QgJGhhc2gsIGV4cGVjdGVkICRleHBlY3RlZEhhc2giCiAgICAg
fQotICAgIG1zaWV4ZWMgL2kgcHl0aG9uLm1zaSBUQVJHRVRESVI9QzpcUHl0aG9uMjcgL3EKLSAg
ICBXcml0ZS1Ib3N0ICIjI3Zzb1t0YXNrLnByZXBlbmRwYXRoXUM6XFB5dGhvbjI3IgotICAgIFdy
aXRlLUhvc3QgIiMjdnNvW3Rhc2sucHJlcGVuZHBhdGhdQzpcUHl0aG9uMjdcU2NyaXB0cyIKKwor
ICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRweXRob25QYXRoKSB7CisgICAgICAgIFdy
aXRlLUhvc3QgIiRweXRob25QYXRoIGFscmVhZHkgZXhpc3RzLCB1bmluc3RhbGwgaXQiCisgICAg
ICAgICR1bmluc3RhbGxBcmdzID0gJGluc3RhbGxBcmdzICsgIiAvdW5pbnN0YWxsIC9xdWlldCIK
KyAgICAgICAgJHAgPSBTdGFydC1Qcm9jZXNzIC1GaWxlUGF0aCAkZG93bmxvYWRQYXRoIC1WZXJi
IFJ1bkFzIC1Bcmd1bWVudExpc3QgJHVuaW5zdGFsbEFyZ3MgLVBhc3NUaHJ1IC1XYWl0CisgICAg
ICAgIFdyaXRlLUhvc3QgIlVuaW5zdGFsbCBmaW5pc2hlZC4gRXhpdCBjb2RlIHdhczogJCgkcC5F
eGl0Q29kZSkiCisgICAgfQorCisgICAgV3JpdGUtSG9zdCAiUnVubmluZyAkZG93bmxvYWRQYXRo
IHdpdGggYXJncyAkaW5zdGFsbEFyZ3MiCisgICAgJHAgPSBTdGFydC1Qcm9jZXNzIC1GaWxlUGF0
aCAkZG93bmxvYWRQYXRoIC1WZXJiIFJ1bkFzIC1Bcmd1bWVudExpc3QgJGluc3RhbGxBcmdzIC1Q
YXNzVGhydSAtV2FpdAorICAgIFdyaXRlLUhvc3QgIiRkb3dubG9hZFBhdGggZmluaXNoZWQuIEV4
aXQgY29kZSB3YXM6ICQoJHAuRXhpdENvZGUpIgorCisgICAgV3JpdGUtSG9zdCAiQWRkaW5nIFB5
dGhvbiBkaXJzIHRvIHBhdGgiCisgICAgV3JpdGUtSG9zdCAiIyN2c29bdGFzay5wcmVwZW5kcGF0
aF1DOlxQeXRob24zOCIKKyAgICBXcml0ZS1Ib3N0ICIjI3Zzb1t0YXNrLnByZXBlbmRwYXRoXUM6
XFB5dGhvbjM4XFNjcmlwdHMiCisKKyAgICBXcml0ZS1Ib3N0ICJEdW1waW5nIGluc3RhbGwgbG9n
IGZpbGU6IgorICAgIEdldC1Db250ZW50IC1QYXRoICJweXRob25faW5zdGFsbGVyLmxvZyIKICAg
ZGlzcGxheU5hbWU6ICdJbnN0YWxsIFB5dGhvbiAoV2luZG93cyknCiAgIGNvbmRpdGlvbjogYW5k
KHN1Y2NlZWRlZCgpLCBlcSh2YXJpYWJsZXNbJ0FnZW50Lk9TJ10sICdXaW5kb3dzX05UJykpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2F6dXJlL2luc3RhbGxfc2FmYXJpLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZhcmkueW1sCmlu
ZGV4IDZjMWI1NjJkNDExYTJhZWVjYzMwZDNmYmMxYWVkNjM2MmYzNTI2ZTUuLjE2MzZiOGU3NDc0
MzJkN2YwMTYyODc5ZTg2ODAxNmRmOTlkN2QyNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZh
cmkueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZhcmkueW1sCkBAIC04LDcgKzgsNyBAQCBzdGVwczoK
ICAgY29uZGl0aW9uOiBlcSh2YXJpYWJsZXNbJ3NhZmFyaWRyaXZlcl9kaWFnbm9zZSddLCB0cnVl
KQogLSAke3sgaWYgZXEocGFyYW1ldGVycy5jaGFubmVsLCAncHJldmlldycpIH19OgogICAtIHNj
cmlwdDogfAotICAgICAgSE9NRUJSRVdfTk9fQVVUT19VUERBVEU9MSBicmV3IGNhc2sgaW5zdGFs
bCB0b29scy9jaS9henVyZS9zYWZhcmktdGVjaG5vbG9neS1wcmV2aWV3LnJiCisgICAgICBIT01F
QlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcgaW5zdGFsbCAtLWNhc2sgdG9vbHMvY2kvYXp1cmUv
c2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYgogICAgICAgIyBXb3JrYXJvdW5kIGZvciBgc3Vk
byBzYWZhcmRyaXZlciAtLWVuYWJsZWAgbm90IHdvcmtpbmcgb24gQ2F0YWxpbmE6CiAgICAgICAj
IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yMTc1MQog
ICAgICAgbWtkaXIgLXAgfi9MaWJyYXJ5L1dlYkRyaXZlci8KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJp
LXRlY2hub2xvZ3ktcHJldmlldy5yYiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYgpp
bmRleCAxMTVkZDFiOGYyMTBiNjM5YTY5YThmM2NmYTIxZjRlZGY3NTc5MjQzLi43MTQ5ZTZiMmYw
ZmQyOTAwZTg4NWRjODBmMWVkMWQ5ZWNiYzExOGIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3NhZmFyaS10ZWNo
bm9sb2d5LXByZXZpZXcucmIKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9zYWZhcmktdGVjaG5vbG9neS1wcmV2aWV3LnJiCkBA
IC0xLDEwICsxLDEwIEBACiBjYXNrICJzYWZhcmktdGVjaG5vbG9neS1wcmV2aWV3IiBkbwogICBp
ZiBNYWNPUy52ZXJzaW9uIDw9IDpjYXRhbGluYQotICAgIHZlcnNpb24gIjExNSwwMDEtNjI2NTEt
MjAyMDEwMjItNmNkOTJlMTgtYmZiZS00OGNjLTkzODUtZDg0ZGE4ZjNjMjRjIgotICAgIHNoYTI1
NiAiZTRiMjlhYzJhMGQ2MGU0OGJhZTdkOWM2MzU4NTNmZjdkYWRjNTlhODJkZDUzZjM0MGI2MjNl
ZWI1NTM4ZjY1NyIKKyAgICB2ZXJzaW9uICIxMTksMDAxLTk3NzkzLTIwMjEwMTI2LTdhYTQ5Y2Vk
LWMyZjItNDE1ZC1hNTY0LTZmYWIyNWZjYjhlNiIKKyAgICBzaGEyNTYgImY1Y2E2YWNjMjNkNjVl
MjNhYWYwZGY1ZmYzNWZiM2UyOGM5YWU3YTQwZTQ2MzMxMTIyZDI5YTNlNzg4Y2EyYzEiCiAgIGVs
c2UKLSAgICB2ZXJzaW9uICIxMTUsMDAxLTYyNjc5LTIwMjAxMDIyLTQyZTBkNjNhLTUyN2EtNDVh
Zi1iZWIxLTAyY2Q0MDk1ZTM0MSIKLSAgICBzaGEyNTYgIjgxNTI3NmNhODE0ZTQ5YTZiMmU4ZWI4
NDI5ZDZlNjY0NGRlMmRiODk1MjdmYmJjZTgzY2I5ZDY5ZjU0NzgzZjciCisgICAgdmVyc2lvbiAi
MTE5LDAwMS05ODg3NS0yMDIxMDEyNi03Njk5Zjc2ZS1lM2E1LTRmNDUtODBmOS04OTc1YzIzNmQz
MzciCisgICAgc2hhMjU2ICIwNDhlNWFjMWU3NjFkZjc1NzA3NTEzNGZhM2QxZjgwYWU3ZGE1NmQ1
ZWVmMjUxMTk3MGFlYWMzNGY1ZWQwMDI3IgogICBlbmQKIAogICB1cmwgImh0dHBzOi8vc2VjdXJl
LWFwcGxkbmxkLmFwcGxlLmNvbS9TVFAvI3t2ZXJzaW9uLmFmdGVyX2NvbW1hfS9TYWZhcmlUZWNo
bm9sb2d5UHJldmlldy5kbWciCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3VwZGF0ZV9ob3N0cy55bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3Vw
ZGF0ZV9ob3N0cy55bWwKaW5kZXggNjNjN2U0NTgxMTI5N2EyZGQ1MzQyYjNiM2FiOTA5M2FjYWI2
ZjVjZC4uNjRhZmY3Y2Y0NmE4M2UwYWQwMDQ1MDY1YjVlYzJlNzhkZWI2NTA2ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9h
enVyZS91cGRhdGVfaG9zdHMueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX2hvc3RzLnltbApAQCAtMSwzICsx
LDYgQEAKK3BhcmFtZXRlcnM6CisgIHB5ZmxhZzogLS1weTMKKwogc3RlcHM6CiAtIHNjcmlwdDog
Li93cHQgbWFrZS1ob3N0cy1maWxlIHwgc3VkbyB0ZWUgLWEgL2V0Yy9ob3N0cwogICBkaXNwbGF5
TmFtZTogJ1VwZGF0ZSBob3N0cyAobWFjT1MpJwpAQCAtNSw2ICs4LDYgQEAgc3RlcHM6CiAtIHBv
d2Vyc2hlbGw6IHwKICAgICAkaG9zdEZpbGUgPSAiJGVudjpzeXN0ZW1yb290XFN5c3RlbTMyXGRy
aXZlcnNcZXRjXGhvc3RzIgogICAgIENvcHktSXRlbSAtUGF0aCAkaG9zdEZpbGUgLURlc3RpbmF0
aW9uICIkaG9zdEZpbGUuYmFjayIgLUZvcmNlCi0gICAgcHl0aG9uIHdwdCBtYWtlLWhvc3RzLWZp
bGUgfCBPdXQtRmlsZSAkZW52OnN5c3RlbXJvb3RcU3lzdGVtMzJcZHJpdmVyc1xldGNcaG9zdHMg
LUVuY29kaW5nIGFzY2lpIC1BcHBlbmQKKyAgICBweXRob24gd3B0ICR7eyBwYXJhbWV0ZXJzLnB5
ZmxhZyB9fSBtYWtlLWhvc3RzLWZpbGUgfCBPdXQtRmlsZSAkZW52OnN5c3RlbXJvb3RcU3lzdGVt
MzJcZHJpdmVyc1xldGNcaG9zdHMgLUVuY29kaW5nIGFzY2lpIC1BcHBlbmQKICAgZGlzcGxheU5h
bWU6ICdVcGRhdGUgaG9zdHMgKFdpbmRvd3MpJwogICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQo
KSwgZXEodmFyaWFibGVzWydBZ2VudC5PUyddLCAnV2luZG93c19OVCcpKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS91cGRhdGVfbWFuaWZlc3QueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91cGRhdGVfbWFuaWZlc3QueW1sCmluZGV4IDQ1M2Fj
MmFjM2MwNWNmODczYmNmNjZkMWJlOTkwMzI0YmQyMDAzNmUuLmU4ZjI4MjE3ZjFlYWE5YWYzZWM2
N2UyYjFhNjQzNjVjOGFhODdhODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX21hbmlmZXN0LnltbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L2F6dXJlL3VwZGF0ZV9tYW5pZmVzdC55bWwKQEAgLTEsNCArMSw3IEBACitwYXJhbWV0ZXJzOgor
ICBweWZsYWc6IC0tcHkzCisKIHN0ZXBzOgogIyBgcHl0aG9uIHdwdGAgaW5zdGVhZCBvZiBgLi93
cHRgIGlzIHRvIG1ha2UgdGhpcyB3b3JrIG9uIFdpbmRvd3M6Ci0tIHNjcmlwdDogcHl0aG9uIHdw
dCBtYW5pZmVzdAorLSBzY3JpcHQ6IHB5dGhvbiB3cHQgJHt7IHBhcmFtZXRlcnMucHlmbGFnIH19
IG1hbmlmZXN0CiAgIGRpc3BsYXlOYW1lOiAnVXBkYXRlIG1hbmlmZXN0JwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93
cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaApp
bmRleCAwNzA5Mjk1ZjRhMjA0ZmFkYmZkZjAwYWIxMjllOWZiOTBjY2VkMjE0Li45N2FjMTdjZGYy
ZTE0MmNiMzU4MjZkOWI2YTQwODNjOWU0ZjM3MmFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZy
YXN0cnVjdHVyZS5zaAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaApAQCAtNiwyMiAr
NiwxOCBAQCBXUFRfUk9PVD0kU0NSSVBUX0RJUi8uLi8uLgogY2QgJFdQVF9ST09UCiAKIHRlc3Rf
aW5mcmFzdHJ1Y3R1cmUoKSB7Ci0gICAgUFkzX0ZMQUc9IiQyIgotICAgIFRFUk09ZHVtYiAuL3dw
dCAkUFkzX0ZMQUcgcnVuIC0tbG9nLW1hY2ggLSAtLXllcyAtLW1hbmlmZXN0IH4vbWV0YS9NQU5J
RkVTVC5qc29uIC0tbWV0YWRhdGEgaW5mcmFzdHJ1Y3R1cmUvbWV0YWRhdGEvIC0taW5zdGFsbC1m
b250cyAtLWluc3RhbGwtd2ViZHJpdmVyICQxICRQUk9EVUNUIGluZnJhc3RydWN0dXJlLworICAg
IFBZMl9GTEFHPSIkMiIKKyAgICBURVJNPWR1bWIgLi93cHQgJFBZMl9GTEFHIHJ1biAtLWxvZy1t
YWNoIC0gLS15ZXMgLS1tYW5pZmVzdCB+L21ldGEvTUFOSUZFU1QuanNvbiAtLW1ldGFkYXRhIGlu
ZnJhc3RydWN0dXJlL21ldGFkYXRhLyAtLWluc3RhbGwtZm9udHMgLS1pbnN0YWxsLXdlYmRyaXZl
ciAkMSAkUFJPRFVDVCBpbmZyYXN0cnVjdHVyZS8KIH0KIAogbWFpbigpIHsKLSAgICBpZiBbWyAk
IyAtZXEgMSAmJiAiJDEiID0gIi0tcHkzIiBdXTsgdGhlbgotICAgICAgICBQUk9EVUNUUz0oICJj
aHJvbWUiICkKLSAgICBlbHNlCi0gICAgICAgIFBST0RVQ1RTPSggImZpcmVmb3giICJjaHJvbWUi
ICkKLSAgICBmaQorICAgIFBST0RVQ1RTPSggImZpcmVmb3giICJjaHJvbWUiICkKICAgICAuL3dw
dCBtYW5pZmVzdCAtLXJlYnVpbGQgLXAgfi9tZXRhL01BTklGRVNULmpzb24KICAgICBmb3IgUFJP
RFVDVCBpbiAiJHtQUk9EVUNUU1tAXX0iOyBkbwogICAgICAgICBpZiBbWyAiJFBST0RVQ1QiID09
ICJjaHJvbWUiIF1dOyB0aGVuCiAgICAgICAgICAgICB0ZXN0X2luZnJhc3RydWN0dXJlICItLWJp
bmFyeT0kKHdoaWNoIGdvb2dsZS1jaHJvbWUtdW5zdGFibGUpIC0tY2hhbm5lbCBkZXYiICIkMSIK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGVzdF9pbmZyYXN0cnVjdHVyZSAiLS1iaW5hcnk9
fi9idWlsZC9maXJlZm94L2ZpcmVmb3giCisgICAgICAgICAgICB0ZXN0X2luZnJhc3RydWN0dXJl
ICItLWJpbmFyeT1+L2J1aWxkL2ZpcmVmb3gvZmlyZWZveCIgIiQxIgogICAgICAgICBmaQogICAg
IGRvbmUKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvcHJfcHJldmlldy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcHJfcHJldmlldy5weQppbmRleCAyMzk2ZTli
OGFlZThhMTY2YzNiOTMyMWM3ZTllYzJlOGY5YjU0OWMwLi5jNjkzMmRhYjI1NTQ1NjU4OTdlODY1
ZmY3NWRiZmIwMzc0ZDZlZTE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3ByX3ByZXZpZXcucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9wcl9wcmV2aWV3LnB5
CkBAIC0xMiw3ICsxMiw2IEBAIGltcG9ydCBhcmdwYXJzZQogaW1wb3J0IGpzb24KIGltcG9ydCBs
b2dnaW5nCiBpbXBvcnQgb3MKLWltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgdGltZQogCiBpbXBv
cnQgcmVxdWVzdHMKQEAgLTI1LDcgKzI0LDcgQEAgQVBJX1JBVEVfTElNSVRfVEhSRVNIT0xEID0g
MC4yCiBMQUJFTCA9ICdzYWZlIGZvciBwcmV2aWV3JwogIyBUaGUgbnVtYmVyIG9mIHNlY29uZHMg
dG8gd2FpdCBiZXR3ZWVuIGF0dGVtcHRzIHRvIHZlcmlmeSB0aGF0IGEgc3VibWlzc2lvbgogIyBw
cmV2aWV3IGlzIGF2YWlsYWJsZSBvbiB0aGUgUHVsbCBSZXF1ZXN0IHByZXZpZXcgc2VydmVyCi1Q
T0xMSU5HX1BFUklPRCA9IDUKK1BPTExJTkdfUEVSSU9EID0gMTUKICMgUHVsbCBSZXF1ZXN0cyBm
cm9tIGF1dGhvcnMgd2l0aCB0aGUgZm9sbG93aW5nIGFzc29jaWF0aW9ucyB0byB0aGUgcHJvamVj
dAogIyBzaG91bGQgYXV0b21hdGljYWxseSByZWNlaXZlIHByZXZpZXdzCiAjCkBAIC00NCw3ICs0
Myw3IEBAIGxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2luZy5JTkZPKQogbG9nZ2VyID0g
bG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIGRlZiBnaF9yZXF1ZXN0KG1ldGhvZF9uYW1l
LCB1cmwsIGJvZHk9Tm9uZSwgbWVkaWFfdHlwZT1Ob25lKToKLSAgICBnaXRodWJfdG9rZW4gPSBv
cy5lbnZpcm9uWydERVBMT1lfVE9LRU4nXQorICAgIGdpdGh1Yl90b2tlbiA9IG9zLmVudmlyb25b
J0dJVEhVQl9UT0tFTiddCiAKICAgICBrd2FyZ3MgPSB7CiAgICAgICAgICdoZWFkZXJzJzogewpA
QCAtNjMsMTAgKzYyLDIxIEBAIGRlZiBnaF9yZXF1ZXN0KG1ldGhvZF9uYW1lLCB1cmwsIGJvZHk9
Tm9uZSwgbWVkaWFfdHlwZT1Ob25lKToKIAogICAgIGxvZ2dlci5pbmZvKCdSZXNwb25zZSBzdGF0
dXMgY29kZTogJXMnLCByZXNwLnN0YXR1c19jb2RlKQogCisgICAgIyBJZiBHaXRIdWIgdGhpbmtz
IHRoZSBmaWVsZHMgYXJlIGludmFsaWQsIGl0IHdpbGwgc2VuZCBhIDQyMiBiYWNrIGFuZAorICAg
ICMgaW5jbHVkZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gaW4gdGhlIGJvZHkuIFNlZQorICAgICMg
aHR0cHM6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbS92My8jY2xpZW50LWVycm9ycworICAgIGlmIHJl
c3Auc3RhdHVzX2NvZGUgPT0gNDIyOgorICAgICAgICBsb2dnZXIuZXJyb3IocmVzcC5qc29uKCkp
CisKICAgICByZXNwLnJhaXNlX2Zvcl9zdGF0dXMoKQogCisgICAgaWYgcmVzcC5zdGF0dXNfY29k
ZSA9PSAyMDQ6CisgICAgICAgIHJldHVybiBOb25lCiAgICAgcmV0dXJuIHJlc3AuanNvbigpCiAK
K2NsYXNzIEdpdEh1YlJhdGVMaW1pdEV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgIHBhc3MKKwog
ZGVmIGd1YXJkKHJlc291cmNlKToKICAgICAnJydEZWNvcmF0ZSBhIGBQcm9qZWN0YCBpbnN0YW5j
ZSBtZXRob2Qgd2hpY2ggaW50ZXJhY3RzIHdpdGggdGhlIEdpdEh1YgogICAgIEFQSSwgZW5zdXJp
bmcgdGhhdCB0aGUgc3Vic2VxdWVudCByZXF1ZXN0IHdpbGwgbm90IGRlcGxldGUgdGhlIHJlbGV2
YW50CkBAIC05MCw3ICsxMDAsNyBAQCBkZWYgZ3VhcmQocmVzb3VyY2UpOgogICAgICAgICAgICAg
KQogCiAgICAgICAgICAgICBpZiBsaW1pdCBhbmQgZmxvYXQocmVtYWluaW5nKSAvIGxpbWl0IDwg
QVBJX1JBVEVfTElNSVRfVEhSRVNIT0xEOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bigKKyAgICAgICAgICAgICAgICByYWlzZSBHaXRIdWJSYXRlTGltaXRFeGNlcHRpb24oCiAgICAg
ICAgICAgICAgICAgICAgICdFeGl0aW5nIHRvIGF2b2lkIEdpdEh1Yi5jb20gQVBJIHJlcXVlc3Qg
dGhyb3R0bGluZy4nCiAgICAgICAgICAgICAgICAgKQogCkBAIC0xMDMsNTQgKzExMyw2IEBAIGNs
YXNzIFByb2plY3Qob2JqZWN0KToKICAgICAgICAgc2VsZi5faG9zdCA9IGhvc3QKICAgICAgICAg
c2VsZi5fZ2l0aHViX3Byb2plY3QgPSBnaXRodWJfcHJvamVjdAogCi0gICAgQGd1YXJkKCdjb3Jl
JykKLSAgICBkZWYgZ2V0X3B1bGxfcmVxdWVzdChzZWxmLCBudW1iZXIpOgotICAgICAgICB1cmwg
PSAne30vcmVwb3Mve30vcHVsbHMve30nLmZvcm1hdCgKLSAgICAgICAgICAgIHNlbGYuX2hvc3Qs
IHNlbGYuX2dpdGh1Yl9wcm9qZWN0LCBudW1iZXIKLSAgICAgICAgKQotCi0gICAgICAgIGxvZ2dl
ci5pbmZvKCdGZXRjaGluZyBQdWxsIFJlcXVlc3QgJXMnLCBudW1iZXIpCi0gICAgICAgIHJldHVy
biBnaF9yZXF1ZXN0KCdHRVQnLCB1cmwpCi0KLSAgICBAZ3VhcmQoJ3NlYXJjaCcpCi0gICAgZGVm
IGdldF9wdWxsX3JlcXVlc3RzKHNlbGYsIHVwZGF0ZWRfc2luY2UpOgotICAgICAgICB3aW5kb3df
c3RhcnQgPSB0aW1lLnN0cmZ0aW1lKCclWS0lbS0lZFQlSDolTTolU1onLCB1cGRhdGVkX3NpbmNl
KQotICAgICAgICB1cmwgPSAne30vc2VhcmNoL2lzc3Vlcz9xPXJlcG86e30raXM6cHIrdXBkYXRl
ZDo+e30nLmZvcm1hdCgKLSAgICAgICAgICAgIHNlbGYuX2hvc3QsIHNlbGYuX2dpdGh1Yl9wcm9q
ZWN0LCB3aW5kb3dfc3RhcnQKLSAgICAgICAgKQotCi0gICAgICAgIGxvZ2dlci5pbmZvKAotICAg
ICAgICAgICAgJ1NlYXJjaGluZyBmb3IgUHVsbCBSZXF1ZXN0cyB1cGRhdGVkIHNpbmNlICVzJywg
d2luZG93X3N0YXJ0Ci0gICAgICAgICkKLQotICAgICAgICBkYXRhID0gZ2hfcmVxdWVzdCgnR0VU
JywgdXJsKQotCi0gICAgICAgIGxvZ2dlci5pbmZvKCdGb3VuZCAlZCBQdWxsIFJlcXVlc3RzJywg
bGVuKGRhdGFbJ2l0ZW1zJ10pKQotCi0gICAgICAgIGlmIGRhdGFbJ2luY29tcGxldGVfcmVzdWx0
cyddOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbmNvbXBsZXRlIHJlc3VsdHMnKQot
Ci0gICAgICAgIHJldHVybiB7cHJbJ251bWJlciddOiBwciBmb3IgcHIgaW4gZGF0YVsnaXRlbXMn
XX0KLQotICAgIGRlZiBwdWxsX3JlcXVlc3RfaXNfZnJvbV9mb3JrKHNlbGYsIHB1bGxfcmVxdWVz
dCk6Ci0gICAgICAgIHByX251bWJlciA9IHB1bGxfcmVxdWVzdFsnbnVtYmVyJ10KLSAgICAgICAg
bG9nZ2VyLmluZm8oJ0NoZWNraW5nIGlmIHB1bGwgcmVxdWVzdCAlcyBpcyBmcm9tIGEgZm9yaycs
IHByX251bWJlcikKLQotICAgICAgICAjIFdlIG1heSBhbHJlYWR5IGhhdmUgdGhpcyBpbmZvcm1h
dGlvbjsgaWYgc28gbm8gbmVlZCB0byBtYWtlIGFub3RoZXIKLSAgICAgICAgIyBBUEkgY2FsbC4K
LSAgICAgICAgaWYgJ2hlYWQnIG5vdCBpbiBwdWxsX3JlcXVlc3Q6Ci0gICAgICAgICAgICBwdWxs
X3JlcXVlc3QgPSBzZWxmLmdldF9wdWxsX3JlcXVlc3QocHJfbnVtYmVyKQotCi0gICAgICAgIHJl
cG9fbmFtZSA9IHB1bGxfcmVxdWVzdFsnaGVhZCddWydyZXBvJ11bJ2Z1bGxfbmFtZSddCi0gICAg
ICAgIGlzX2ZvcmsgPSByZXBvX25hbWUgIT0gc2VsZi5fZ2l0aHViX3Byb2plY3QKLQotICAgICAg
ICBsb2dnZXIuaW5mbygKLSAgICAgICAgICAgICdQdWxsIHJlcXVlc3QgJXMgaXMgZnJvbSBcJyVz
XCcuIElzIGEgZm9yazogJXMnLAotICAgICAgICAgICAgcHJfbnVtYmVyLCByZXBvX25hbWUsIGlz
X2ZvcmsKLSAgICAgICAgKQotCi0gICAgICAgIHJldHVybiBpc19mb3JrCi0KICAgICBAZ3VhcmQo
J2NvcmUnKQogICAgIGRlZiBjcmVhdGVfcmVmKHNlbGYsIHJlZnNwZWMsIHJldmlzaW9uKToKICAg
ICAgICAgdXJsID0gJ3t9L3JlcG9zL3t9L2dpdC9yZWZzJy5mb3JtYXQoc2VsZi5faG9zdCwgc2Vs
Zi5fZ2l0aHViX3Byb2plY3QpCkBAIC0xNjIsNiArMTI0LDIzIEBAIGNsYXNzIFByb2plY3Qob2Jq
ZWN0KToKICAgICAgICAgICAgICdzaGEnOiByZXZpc2lvbgogICAgICAgICB9KQogCisgICAgQGd1
YXJkKCdjb3JlJykKKyAgICBkZWYgZ2V0X3JlZl9yZXZpc2lvbihzZWxmLCByZWZzcGVjKToKKyAg
ICAgICAgdXJsID0gJ3t9L3JlcG9zL3t9L2dpdC9yZWZzL3t9Jy5mb3JtYXQoCisgICAgICAgICAg
ICBzZWxmLl9ob3N0LCBzZWxmLl9naXRodWJfcHJvamVjdCwgcmVmc3BlYworICAgICAgICApCisK
KyAgICAgICAgbG9nZ2VyLmluZm8oJ0ZldGNoaW5nIHJlZiAiJXMiJywgcmVmc3BlYykKKworICAg
ICAgICB0cnk6CisgICAgICAgICAgICBib2R5ID0gZ2hfcmVxdWVzdCgnR0VUJywgdXJsKQorICAg
ICAgICAgICAgbG9nZ2VyLmluZm8oJ1JlZiBkYXRhOiAlcycsIGpzb24uZHVtcHMoYm9keSwgaW5k
ZW50PTIpKQorICAgICAgICAgICAgcmV0dXJuIGJvZHlbJ29iamVjdCddWydzaGEnXQorICAgICAg
ICBleGNlcHQgcmVxdWVzdHMuZXhjZXB0aW9ucy5IVFRQRXJyb3IgYXMgZToKKyAgICAgICAgICAg
IGlmIGUucmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gNDA0OgorICAgICAgICAgICAgICAgIHJldHVy
biBOb25lCisgICAgICAgICAgICByYWlzZSBlCisKICAgICBAZ3VhcmQoJ2NvcmUnKQogICAgIGRl
ZiB1cGRhdGVfcmVmKHNlbGYsIHJlZnNwZWMsIHJldmlzaW9uKToKICAgICAgICAgdXJsID0gJ3t9
L3JlcG9zL3t9L2dpdC9yZWZzL3t9Jy5mb3JtYXQoCkBAIC0xNzIsNiArMTUxLDE2IEBAIGNsYXNz
IFByb2plY3Qob2JqZWN0KToKIAogICAgICAgICBnaF9yZXF1ZXN0KCdQQVRDSCcsIHVybCwgeydz
aGEnOiByZXZpc2lvbn0pCiAKKyAgICBAZ3VhcmQoJ2NvcmUnKQorICAgIGRlZiBkZWxldGVfcmVm
KHNlbGYsIHJlZnNwZWMpOgorICAgICAgICB1cmwgPSAne30vcmVwb3Mve30vZ2l0L3JlZnMve30n
LmZvcm1hdCgKKyAgICAgICAgICAgIHNlbGYuX2hvc3QsIHNlbGYuX2dpdGh1Yl9wcm9qZWN0LCBy
ZWZzcGVjCisgICAgICAgICkKKworICAgICAgICBsb2dnZXIuaW5mbygnRGVsZXRpbmcgcmVmICIl
cyInLCByZWZzcGVjKQorCisgICAgICAgIGdoX3JlcXVlc3QoJ0RFTEVURScsIHVybCkKKwogICAg
IEBndWFyZCgnY29yZScpCiAgICAgZGVmIGNyZWF0ZV9kZXBsb3ltZW50KHNlbGYsIHB1bGxfcmVx
dWVzdCwgcmV2aXNpb24pOgogICAgICAgICB1cmwgPSAne30vcmVwb3Mve30vZGVwbG95bWVudHMn
LmZvcm1hdCgKQEAgLTIwNiw3ICsxOTUsNyBAQCBjbGFzcyBQcm9qZWN0KG9iamVjdCk6CiAgICAg
ICAgIHJldHVybiBkZXBsb3ltZW50cy5wb3AoKSBpZiBsZW4oZGVwbG95bWVudHMpIGVsc2UgTm9u
ZQogCiAgICAgQGd1YXJkKCdjb3JlJykKLSAgICBkZWYgdXBkYXRlX2RlcGxveW1lbnQoc2VsZiwg
dGFyZ2V0LCBkZXBsb3ltZW50LCBzdGF0ZSwgZGVzY3JpcHRpb249JycpOgorICAgIGRlZiBhZGRf
ZGVwbG95bWVudF9zdGF0dXMoc2VsZiwgdGFyZ2V0LCBkZXBsb3ltZW50LCBzdGF0ZSwgZGVzY3Jp
cHRpb249JycpOgogICAgICAgICBpZiBzdGF0ZSBpbiAoJ3BlbmRpbmcnLCAnc3VjY2VzcycpOgog
ICAgICAgICAgICAgcHJfbnVtYmVyID0gZGVwbG95bWVudFsnZW52aXJvbm1lbnQnXVtsZW4oREVQ
TE9ZTUVOVF9QUkVGSVgpOl0KICAgICAgICAgICAgIGVudmlyb25tZW50X3VybCA9ICd7fS97fScu
Zm9ybWF0KHRhcmdldCwgcHJfbnVtYmVyKQpAQCAtMjIyLDczICsyMTEsNiBAQCBjbGFzcyBQcm9q
ZWN0KG9iamVjdCk6CiAgICAgICAgICAgICAnZW52aXJvbm1lbnRfdXJsJzogZW52aXJvbm1lbnRf
dXJsCiAgICAgICAgIH0sICdhcHBsaWNhdGlvbi92bmQuZ2l0aHViLmFudC1tYW4tcHJldmlldytq
c29uJykKIAotY2xhc3MgUmVtb3RlKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGdp
dGh1Yl9wcm9qZWN0KToKLSAgICAgICAgIyBUaGUgcmVwb3NpdG9yeSBpbiB0aGUgR2l0SHViIEFj
dGlvbnMgZW52aXJvbm1lbnQgaXMgY29uZmlndXJlZCB3aXRoCi0gICAgICAgICMgYSByZW1vdGUg
d2hvc2UgVVJMIHVzZXMgdW5hdXRoZW50aWNhdGVkIEhUVFBTLCBtYWtpbmcgaXQgdW5zdWl0YWJs
ZQotICAgICAgICAjIGZvciBwdXNoaW5nIGNoYW5nZXMuCi0gICAgICAgIHNlbGYuX3Rva2VuID0g
b3MuZW52aXJvblsnREVQTE9ZX1RPS0VOJ10KLQotICAgIGRlZiBfZ2l0KHNlbGYsIGNvbW1hbmQp
OgotICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWwotICAgICAgICAgICAg
J2dpdCcsCi0gICAgICAgICAgICAnLWMnLAotICAgICAgICAgICAgJ2NyZWRlbnRpYWwudXNlcm5h
bWU9e30nLmZvcm1hdChzZWxmLl90b2tlbiksCi0gICAgICAgICAgICAnLWMnLAotICAgICAgICAg
ICAgJ2NvcmUuYXNrUGFzcz10cnVlJywKLSAgICAgICAgXSArIGNvbW1hbmQpCi0KLSAgICBkZWYg
Z2V0X3JldmlzaW9uKHNlbGYsIHJlZnNwZWMpOgotICAgICAgICBvdXRwdXQgPSBzZWxmLl9naXQo
WwotICAgICAgICAgICAgJ2xzLXJlbW90ZScsCi0gICAgICAgICAgICAnb3JpZ2luJywKLSAgICAg
ICAgICAgICdyZWZzL3t9Jy5mb3JtYXQocmVmc3BlYykKLSAgICAgICAgXSkKLQotICAgICAgICBp
ZiBub3Qgb3V0cHV0OgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICByZXR1cm4g
b3V0cHV0LmRlY29kZSgndXRmLTgnKS5zcGxpdCgpWzBdCi0KLSAgICBkZWYgZGVsZXRlX3JlZihz
ZWxmLCByZWZzcGVjKToKLSAgICAgICAgZnVsbF9yZWYgPSAncmVmcy97fScuZm9ybWF0KHJlZnNw
ZWMpCi0KLSAgICAgICAgbG9nZ2VyLmluZm8oJ0RlbGV0aW5nIHJlZiAiJXMiJywgcmVmc3BlYykK
LQotICAgICAgICBzZWxmLl9naXQoWwotICAgICAgICAgICAgJ3B1c2gnLAotICAgICAgICAgICAg
J29yaWdpbicsCi0gICAgICAgICAgICAnLS1kZWxldGUnLAotICAgICAgICAgICAgZnVsbF9yZWYK
LSAgICAgICAgXSkKLQotICAgIGRlZiBnZXRfcHVsbF9yZXF1ZXN0c193aXRoX29wZW5fcmVmKHNl
bGYpOgotICAgICAgICAnJydSZXR1cm5zIHB1bGwgcmVxdWVzdHMgdGhhdCBoYXZlIGFuIG9wZW4g
cmVmLgotCi0gICAgICAgIFRoaXMgY2hlY2tzIGZvciBhbGwgcmVmcyB0aGF0IG1hdGNoIHRoZSBw
YXR0ZXJuICdyZWZzL3Bycy1vcGVuL3twcn0nLAotICAgICAgICBhbmQgdGhlbiByZXR1cm5zIHRo
ZW0gYXMgYSBsaXN0IG9mIHB1bGwgcmVxdWVzdCBudW1iZXJzLiBOb3RlIHRoYXQgdGhpcwotICAg
ICAgICBtZXRob2QgZG9lcyBub3QgcXVlcnkgZ2l0aHViOyB0aGlzIGlzIG9ubHkgdGhlIG9wZW4g
cHVsbCByZXF1ZXN0cyBhcwotICAgICAgICBmYXIgYXMgV1BUIGtub3dzLgotICAgICAgICAnJycK
LQotICAgICAgICByZWZzcGVjID0gJ3JlZnMvcHJzLW9wZW4vKicKLQotICAgICAgICBsb2dnZXIu
aW5mbygnRmV0Y2hpbmcgYWxsIHJlZiBuYW1lcyBtYXRjaGluZyAiJXMiJywgcmVmc3BlYykKLQot
ICAgICAgICBvdXRwdXQgPSBzZWxmLl9naXQoWwotICAgICAgICAgICAgJ2xzLXJlbW90ZScsCi0g
ICAgICAgICAgICAnb3JpZ2luJywKLSAgICAgICAgICAgIHJlZnNwZWMsCi0gICAgICAgIF0pCi0K
LSAgICAgICAgaWYgbm90IG91dHB1dDoKLSAgICAgICAgICAgIHJldHVybiBbXQotCi0gICAgICAg
IHJlZl9uYW1lcyA9IFtsaW5lLnNwbGl0KClbMV0gZm9yIGxpbmUgaW4gb3V0cHV0LmRlY29kZSgn
dXRmLTgnKS5zcGxpdGxpbmVzKCldCi0gICAgICAgIGxvZ2dlci5pbmZvKCclcyByZWYgbmFtZXMg
Zm91bmQnLCBsZW4ocmVmX25hbWVzKSkKLSAgICAgICAgcmV0dXJuIFtpbnQocmVmX25hbWUuc3Bs
aXQoJy8nKVsyXSkgZm9yIHJlZl9uYW1lIGluIHJlZl9uYW1lc10KLQotCiBkZWYgaXNfb3Blbihw
dWxsX3JlcXVlc3QpOgogICAgIHJldHVybiBub3QgcHVsbF9yZXF1ZXN0WydjbG9zZWRfYXQnXQog
CkBAIC0zMDYsMTMxICsyMjgsMTI4IEBAIGRlZiBzaG91bGRfYmVfbWlycm9yZWQocHJvamVjdCwg
cHVsbF9yZXF1ZXN0KToKICAgICAgICAgICAgICAgICBwdWxsX3JlcXVlc3RbJ3VzZXInXVsnbG9n
aW4nXSBub3QgaW4gQVVUT01BVElPTl9HSVRIVUJfVVNFUlMgYW5kCiAgICAgICAgICAgICAgICAg
cHVsbF9yZXF1ZXN0WydhdXRob3JfYXNzb2NpYXRpb24nXSBpbiBUUlVTVEVEX0FVVEhPUl9BU1NP
Q0lBVElPTlMKICAgICAgICAgICAgICkKLSAgICAgICAgKSBhbmQKLSAgICAgICAgIyBRdWVyeSB0
aGlzIGxhc3QgYXMgaXQgcmVxdWlyZXMgYW5vdGhlciBBUEkgY2FsbCB0byB2ZXJpZnkKLSAgICAg
ICAgbm90IHByb2plY3QucHVsbF9yZXF1ZXN0X2lzX2Zyb21fZm9yayhwdWxsX3JlcXVlc3QpCisg
ICAgICAgICkKICAgICApCiAKIGRlZiBpc19kZXBsb3llZChob3N0LCBkZXBsb3ltZW50KToKICAg
ICB3b3JrdHJlZV9uYW1lID0gZGVwbG95bWVudFsnZW52aXJvbm1lbnQnXVtsZW4oREVQTE9ZTUVO
VF9QUkVGSVgpOl0KLSAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldCgKLSAgICAgICAgJ3t9Ly5n
aXQvd29ya3RyZWVzL3t9L0hFQUQnLmZvcm1hdChob3N0LCB3b3JrdHJlZV9uYW1lKQotICAgICkK
KyAgICB1cmwgPSAne30vLmdpdC93b3JrdHJlZXMve30vSEVBRCcuZm9ybWF0KGhvc3QsIHdvcmt0
cmVlX25hbWUpCisgICAgbG9nZ2VyLmluZm8oJ0lzc3VpbmcgcmVxdWVzdDogR0VUICVzJywgdXJs
KQorICAgIHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KHVybCkKIAorICAgIGxvZ2dlci5pbmZvKCdS
ZXNwb25zZSBzdGF0dXMgY29kZTogJXMnLCByZXNwb25zZS5zdGF0dXNfY29kZSkKICAgICBpZiBy
ZXNwb25zZS5zdGF0dXNfY29kZSAhPSAyMDA6CiAgICAgICAgIHJldHVybiBGYWxzZQogCisgICAg
bG9nZ2VyLmluZm8oJ1Jlc3BvbnNlIHRleHQ6ICVzJywgcmVzcG9uc2UudGV4dC5zdHJpcCgpKQog
ICAgIHJldHVybiByZXNwb25zZS50ZXh0LnN0cmlwKCkgPT0gZGVwbG95bWVudFsnc2hhJ10KIAot
ZGVmIHN5bmNocm9uaXplKGhvc3QsIGdpdGh1Yl9wcm9qZWN0LCB3aW5kb3cpOgotICAgICcnJ0lu
c3BlY3QgYWxsIFB1bGwgUmVxdWVzdHMgd2hpY2ggaGF2ZSBiZWVuIG1vZGlmaWVkIGluIGEgZ2l2
ZW4gd2luZG93IG9mCi0gICAgdGltZS4gQWRkIG9yIHJlbW92ZSB0aGUgInByZXZpZXciIGxhYmVs
IGFuZCB1cGRhdGUgb3IgZGVsZXRlIHRoZSByZWxldmFudAotICAgIGdpdCByZWZzIGFjY29yZGlu
ZyB0byB0aGUgc3RhdHVzIG9mIGVhY2ggUHVsbCBSZXF1ZXN0LicnJworZGVmIHVwZGF0ZV9taXJy
b3JfcmVmcyhwcm9qZWN0LCBwdWxsX3JlcXVlc3QpOgorICAgICcnJ1VwZGF0ZSB0aGUgV1BUIHJl
ZnMgdGhhdCBjb250cm9sIG1pcnJvcmluZyBvZiB0aGlzIHB1bGwgcmVxdWVzdC4KIAotICAgIHBy
b2plY3QgPSBQcm9qZWN0KGhvc3QsIGdpdGh1Yl9wcm9qZWN0KQotICAgIHJlbW90ZSA9IFJlbW90
ZShnaXRodWJfcHJvamVjdCkKKyAgICBUd28gc2V0cyBvZiByZWZzIGFyZSB1c2VkIHRvIGNvbnRy
b2wgd3B0cHIubGl2ZSdzIG1pcnJvcmluZyBvZiBwdWxsCisgICAgcmVxdWVzdHM6CiAKLSAgICBw
dWxsX3JlcXVlc3RzID0gcHJvamVjdC5nZXRfcHVsbF9yZXF1ZXN0cygKLSAgICAgICAgdGltZS5n
bXRpbWUodGltZS50aW1lKCkgLSB3aW5kb3cpCi0gICAgKQorICAgICAgICAxLiByZWZzL3Bycy10
cnVzdGVkLWZvci1wcmV2aWV3L3tudW1iZXJ9CisgICAgICAgIDIuIHJlZnMvcHJzLW9wZW4ve251
bWJlcn0KIAotICAgICMgSXQgaXMgcG9zc2libGUgd2UgbWF5IG1pc3Mgc29tZSBwdWxsIHJlcXVl
c3RzIGlmIHRoaXMgc2NyaXB0IGJyZWFrcyBvciBpcwotICAgICMgbm90IHJ1biBmb3IgYSB3aGls
ZSBhbmQgdGhlIFBSIGZhbGxzIG91dHNpZGUgdGhlIGNoZWNrZWQgd2luZG93LiBUbwotICAgICMg
ZW5zdXJlIHRoYXQgY2xvc2VkIHB1bGwgcmVxdWVzdHMgYXJlIGRlbGV0ZWQsIGV4dGVuZCB0aGUg
bGlzdCBvZiBwdWxsCi0gICAgIyByZXF1ZXN0cyB0byBsb29rIGF0IHdpdGggYW55IHRoYXQgaGF2
ZSBhbiBleGlzdGluZyByZWZzL3Bycy1vcGVuL3twcn0gcmVmCi0gICAgIyBpbiB0aGUgcmVwby4K
LSAgICBleGlzdGluZ19wcl9udW1iZXJzID0gcmVtb3RlLmdldF9wdWxsX3JlcXVlc3RzX3dpdGhf
b3Blbl9yZWYoKQotICAgIGZvciBwcl9udW1iZXIgaW4gZXhpc3RpbmdfcHJfbnVtYmVyczoKLSAg
ICAgICAgaWYgcHJfbnVtYmVyIGluIHB1bGxfcmVxdWVzdHM6Ci0gICAgICAgICAgICBjb250aW51
ZQotICAgICAgICBwdWxsX3JlcXVlc3QgPSBwcm9qZWN0LmdldF9wdWxsX3JlcXVlc3QocHJfbnVt
YmVyKQotICAgICAgICBwdWxsX3JlcXVlc3RzW3B1bGxfcmVxdWVzdFsnbnVtYmVyJ11dID0gcHVs
bF9yZXF1ZXN0Ci0KLSAgICBmb3IgcHVsbF9yZXF1ZXN0IGluIHB1bGxfcmVxdWVzdHMudmFsdWVz
KCk6Ci0gICAgICAgIGxvZ2dlci5pbmZvKCdQcm9jZXNzaW5nIFB1bGwgUmVxdWVzdCAjJShudW1i
ZXIpZCcsIHB1bGxfcmVxdWVzdCkKLQotICAgICAgICByZWZzcGVjX3RydXN0ZWQgPSAncHJzLXRy
dXN0ZWQtZm9yLXByZXZpZXcve251bWJlcn0nLmZvcm1hdCgKLSAgICAgICAgICAgICoqcHVsbF9y
ZXF1ZXN0Ci0gICAgICAgICkKLSAgICAgICAgcmVmc3BlY19vcGVuID0gJ3Bycy1vcGVuL3tudW1i
ZXJ9Jy5mb3JtYXQoKipwdWxsX3JlcXVlc3QpCi0gICAgICAgIHJldmlzaW9uX2xhdGVzdCA9IHJl
bW90ZS5nZXRfcmV2aXNpb24oCi0gICAgICAgICAgICAncHVsbC97bnVtYmVyfS9oZWFkJy5mb3Jt
YXQoKipwdWxsX3JlcXVlc3QpCi0gICAgICAgICkKLSAgICAgICAgcmV2aXNpb25fdHJ1c3RlZCA9
IHJlbW90ZS5nZXRfcmV2aXNpb24ocmVmc3BlY190cnVzdGVkKQotICAgICAgICByZXZpc2lvbl9v
cGVuID0gcmVtb3RlLmdldF9yZXZpc2lvbihyZWZzcGVjX29wZW4pCisgICAgd3B0cHIubGl2ZSB3
aWxsIG9ubHkgbWlycm9yIGEgcHVsbCByZXF1ZXN0IGlmIGJvdGggZXhpc3QgZm9yIHRoZSBnaXZl
biBwdWxsCisgICAgcmVxdWVzdCBudW1iZXI7IG90aGVyd2lzZSB0aGUgcHVsbCByZXF1ZXN0IGlz
IGVpdGhlciBub3Qgb3BlbiBvciBpcyBub3QKKyAgICB0cnVzdHdvcnRoeSAoZS5nLiBjYW1lIGZy
b20gc29tZW9uZSB3aG8gZG9lc24ndCBoYXZlIHB1c2ggYWNjZXNzIGFueXdheS4pCiAKLSAgICAg
ICAgaWYgc2hvdWxkX2JlX21pcnJvcmVkKHByb2plY3QsIHB1bGxfcmVxdWVzdCk6Ci0gICAgICAg
ICAgICBsb2dnZXIuaW5mbygnUHVsbCBSZXF1ZXN0IHNob3VsZCBiZSBtaXJyb3JlZCcpCisgICAg
VGhpcyBtZXRob2QgcmV0dXJucyB0aGUgcmV2aXNpb24gdGhhdCBpcyBiZWluZyBtaXJyb3JlZCwg
b3IgTm9uZSBpZiB0aGUKKyAgICBwdWxsIHJlcXVlc3Qgc2hvdWxkIG5vdCBiZSBtaXJyb3JlZC4K
KyAgICAnJycKIAotICAgICAgICAgICAgaWYgcmV2aXNpb25fdHJ1c3RlZCBpcyBOb25lOgotICAg
ICAgICAgICAgICAgIHByb2plY3QuY3JlYXRlX3JlZihyZWZzcGVjX3RydXN0ZWQsIHJldmlzaW9u
X2xhdGVzdCkKLSAgICAgICAgICAgIGVsaWYgcmV2aXNpb25fdHJ1c3RlZCAhPSByZXZpc2lvbl9s
YXRlc3Q6Ci0gICAgICAgICAgICAgICAgcHJvamVjdC51cGRhdGVfcmVmKHJlZnNwZWNfdHJ1c3Rl
ZCwgcmV2aXNpb25fbGF0ZXN0KQorICAgIHJlZnNwZWNfdHJ1c3RlZCA9ICdwcnMtdHJ1c3RlZC1m
b3ItcHJldmlldy97bnVtYmVyfScuZm9ybWF0KAorICAgICAgICAqKnB1bGxfcmVxdWVzdAorICAg
ICkKKyAgICByZWZzcGVjX29wZW4gPSAncHJzLW9wZW4ve251bWJlcn0nLmZvcm1hdCgqKnB1bGxf
cmVxdWVzdCkKIAotICAgICAgICAgICAgaWYgcmV2aXNpb25fb3BlbiBpcyBOb25lOgotICAgICAg
ICAgICAgICAgIHByb2plY3QuY3JlYXRlX3JlZihyZWZzcGVjX29wZW4sIHJldmlzaW9uX2xhdGVz
dCkKLSAgICAgICAgICAgIGVsaWYgcmV2aXNpb25fb3BlbiAhPSByZXZpc2lvbl9sYXRlc3Q6Ci0g
ICAgICAgICAgICAgICAgcHJvamVjdC51cGRhdGVfcmVmKHJlZnNwZWNfb3BlbiwgcmV2aXNpb25f
bGF0ZXN0KQorICAgIHJldmlzaW9uX2xhdGVzdCA9IHB1bGxfcmVxdWVzdFsnaGVhZCddWydzaGEn
XQorICAgIHJldmlzaW9uX3RydXN0ZWQgPSBwcm9qZWN0LmdldF9yZWZfcmV2aXNpb24ocmVmc3Bl
Y190cnVzdGVkKQorICAgIHJldmlzaW9uX29wZW4gPSBwcm9qZWN0LmdldF9yZWZfcmV2aXNpb24o
cmVmc3BlY19vcGVuKQogCi0gICAgICAgICAgICBpZiBwcm9qZWN0LmdldF9kZXBsb3ltZW50KHJl
dmlzaW9uX2xhdGVzdCkgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBwcm9qZWN0LmNyZWF0ZV9k
ZXBsb3ltZW50KAotICAgICAgICAgICAgICAgICAgICBwdWxsX3JlcXVlc3QsIHJldmlzaW9uX2xh
dGVzdAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxvZ2dl
ci5pbmZvKCdQdWxsIFJlcXVlc3Qgc2hvdWxkIG5vdCBiZSBtaXJyb3JlZCcpCisgICAgaWYgc2hv
dWxkX2JlX21pcnJvcmVkKHByb2plY3QsIHB1bGxfcmVxdWVzdCk6CisgICAgICAgIGxvZ2dlci5p
bmZvKCdQdWxsIFJlcXVlc3Qgc2hvdWxkIGJlIG1pcnJvcmVkJykKIAotICAgICAgICAgICAgaWYg
bm90IGhhc19taXJyb3JpbmdfbGFiZWwocHVsbF9yZXF1ZXN0KSBhbmQgcmV2aXNpb25fdHJ1c3Rl
ZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICByZW1vdGUuZGVsZXRlX3JlZihyZWZzcGVj
X3RydXN0ZWQpCisgICAgICAgIGlmIHJldmlzaW9uX3RydXN0ZWQgaXMgTm9uZToKKyAgICAgICAg
ICAgIHByb2plY3QuY3JlYXRlX3JlZihyZWZzcGVjX3RydXN0ZWQsIHJldmlzaW9uX2xhdGVzdCkK
KyAgICAgICAgZWxpZiByZXZpc2lvbl90cnVzdGVkICE9IHJldmlzaW9uX2xhdGVzdDoKKyAgICAg
ICAgICAgIHByb2plY3QudXBkYXRlX3JlZihyZWZzcGVjX3RydXN0ZWQsIHJldmlzaW9uX2xhdGVz
dCkKIAotICAgICAgICAgICAgaWYgcmV2aXNpb25fb3BlbiBpcyBub3QgTm9uZSBhbmQgbm90IGlz
X29wZW4ocHVsbF9yZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZW1vdGUuZGVsZXRlX3JlZihy
ZWZzcGVjX29wZW4pCisgICAgICAgIGlmIHJldmlzaW9uX29wZW4gaXMgTm9uZToKKyAgICAgICAg
ICAgIHByb2plY3QuY3JlYXRlX3JlZihyZWZzcGVjX29wZW4sIHJldmlzaW9uX2xhdGVzdCkKKyAg
ICAgICAgZWxpZiByZXZpc2lvbl9vcGVuICE9IHJldmlzaW9uX2xhdGVzdDoKKyAgICAgICAgICAg
IHByb2plY3QudXBkYXRlX3JlZihyZWZzcGVjX29wZW4sIHJldmlzaW9uX2xhdGVzdCkKIAotZGVm
IGRldGVjdChob3N0LCBnaXRodWJfcHJvamVjdCwgdGFyZ2V0LCB0aW1lb3V0KToKLSAgICAnJydN
YW5hZ2UgdGhlIHN0YXR1cyBvZiBhIEdpdEh1YiBEZXBsb3ltZW50IGJ5IHBvbGxpbmcgdGhlIFB1
bGwgUmVxdWVzdAotICAgIHByZXZpZXcgd2Vic2l0ZSB1bnRpbCB0aGUgRGVwbG95bWVudCBpcyBj
b21wbGV0ZSBvciBhIHRpbWVvdXQgaXMKLSAgICByZWFjaGVkLicnJworICAgICAgICByZXR1cm4g
cmV2aXNpb25fbGF0ZXN0CiAKLSAgICBwcm9qZWN0ID0gUHJvamVjdChob3N0LCBnaXRodWJfcHJv
amVjdCkKKyAgICBsb2dnZXIuaW5mbygnUHVsbCBSZXF1ZXN0IHNob3VsZCBub3QgYmUgbWlycm9y
ZWQnKQogCi0gICAgd2l0aCBvcGVuKG9zLmVudmlyb25bJ0dJVEhVQl9FVkVOVF9QQVRIJ10pIGFz
IGhhbmRsZToKLSAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMoaGFuZGxlLnJlYWQoKSkKKyAgICBp
ZiBub3QgaGFzX21pcnJvcmluZ19sYWJlbChwdWxsX3JlcXVlc3QpIGFuZCByZXZpc2lvbl90cnVz
dGVkIGlzIG5vdCBOb25lOgorICAgICAgICBwcm9qZWN0LmRlbGV0ZV9yZWYocmVmc3BlY190cnVz
dGVkKQogCi0gICAgbG9nZ2VyLmluZm8oJ0V2ZW50IGRhdGE6ICVzJywganNvbi5kdW1wcyhkYXRh
LCBpbmRlbnQ9MikpCisgICAgaWYgcmV2aXNpb25fb3BlbiBpcyBub3QgTm9uZSBhbmQgbm90IGlz
X29wZW4ocHVsbF9yZXF1ZXN0KToKKyAgICAgICAgcHJvamVjdC5kZWxldGVfcmVmKHJlZnNwZWNf
b3BlbikKIAotICAgIGRlcGxveW1lbnQgPSBkYXRhWydkZXBsb3ltZW50J10KKyAgICAjIE5vIHJl
dmlzaW9uIHRvIGJlIGRlcGxveWVkIHRvIHdwdHByLmxpdmUKKyAgICByZXR1cm4gTm9uZQogCi0g
ICAgaWYgbm90IGRlcGxveW1lbnRbJ2Vudmlyb25tZW50J10uc3RhcnRzd2l0aChERVBMT1lNRU5U
X1BSRUZJWCk6Ci0gICAgICAgIGxvZ2dlci5pbmZvKAotICAgICAgICAgICAgJ0RlcGxveW1lbnQg
ZW52aXJvbm1lbnQgIiVzIiBpcyB1bnJlY29nbml6ZWQuIEV4aXRpbmcuJywKLSAgICAgICAgICAg
IGRlcGxveW1lbnRbJ2Vudmlyb25tZW50J10KLSAgICAgICAgKQorY2xhc3MgRGVwbG95bWVudEZh
aWxlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgIHBhc3MKKworZGVmIGRlcGxveShwcm9qZWN0
LCB0YXJnZXQsIHB1bGxfcmVxdWVzdCwgcmV2aXNpb24sIHRpbWVvdXQpOgorICAgICcnJ0NyZWF0
ZSBhIEdpdEh1YiBkZXBsb3ltZW50IGZvciB0aGUgZ2l2ZW4gcHVsbCByZXF1ZXN0IGFuZCByZXZp
c2lvbi4KKworICAgIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBwZW5kaW5nIEdpdEh1YiBkZXBsb3lt
ZW50LCB3YWl0cyBmb3IgdGhlCisgICAgY29ycmVzcG9uZGluZyByZXZpc2lvbiB0byBiZSBhdmFp
bGFibGUgb24gd3B0cHIubGl2ZSBhbmQgbWFya3MgdGhlCisgICAgZGVwbG95bWVudCBhcyBzdWNj
ZXNzZnVsLiBJZiB0aGUgcmV2aXNpb24gZG9lcyBub3QgYXBwZWFyIGluIHRoZSBnaXZlbgorICAg
IHRpbWVvdXQsIHRoZSBkZXBsb3ltZW50IGlzIG1hcmtlZCBhcyBlcnJvcmVkIGluc3RlYWQuJycn
CisgICAgaWYgcHJvamVjdC5nZXRfZGVwbG95bWVudChyZXZpc2lvbikgaXMgbm90IE5vbmU6CiAg
ICAgICAgIHJldHVybgogCisgICAgZGVwbG95bWVudCA9IHByb2plY3QuY3JlYXRlX2RlcGxveW1l
bnQocHVsbF9yZXF1ZXN0LCByZXZpc2lvbikKKwogICAgIG1lc3NhZ2UgPSAnV2FpdGluZyB1cCB0
byB7fSBzZWNvbmRzIGZvciBEZXBsb3ltZW50IHt9IHRvIGJlIGF2YWlsYWJsZSBvbiB7fScuZm9y
bWF0KAogICAgICAgICB0aW1lb3V0LCBkZXBsb3ltZW50WydlbnZpcm9ubWVudCddLCB0YXJnZXQK
ICAgICApCiAgICAgbG9nZ2VyLmluZm8obWVzc2FnZSkKLSAgICBwcm9qZWN0LnVwZGF0ZV9kZXBs
b3ltZW50KHRhcmdldCwgZGVwbG95bWVudCwgJ3BlbmRpbmcnLCBtZXNzYWdlKQorICAgIHByb2pl
Y3QuYWRkX2RlcGxveW1lbnRfc3RhdHVzKHRhcmdldCwgZGVwbG95bWVudCwgJ3BlbmRpbmcnLCBt
ZXNzYWdlKQogCiAgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQotCiAgICAgd2hpbGUgbm90IGlzX2Rl
cGxveWVkKHRhcmdldCwgZGVwbG95bWVudCk6CiAgICAgICAgIGlmIHRpbWUudGltZSgpIC0gc3Rh
cnQgPiB0aW1lb3V0OgogICAgICAgICAgICAgbWVzc2FnZSA9ICdEZXBsb3ltZW50IGRpZCBub3Qg
YmVjb21lIGF2YWlsYWJsZSBhZnRlciB7fSBzZWNvbmRzJy5mb3JtYXQodGltZW91dCkKLSAgICAg
ICAgICAgIHByb2plY3QudXBkYXRlX2RlcGxveW1lbnQodGFyZ2V0LCBkZXBsb3ltZW50LCAnZXJy
b3InLCBtZXNzYWdlKQotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKG1lc3NhZ2UpCisgICAg
ICAgICAgICBwcm9qZWN0LmFkZF9kZXBsb3ltZW50X3N0YXR1cyh0YXJnZXQsIGRlcGxveW1lbnQs
ICdlcnJvcicsIG1lc3NhZ2UpCisgICAgICAgICAgICByYWlzZSBEZXBsb3ltZW50RmFpbGVkRXhj
ZXB0aW9uKG1lc3NhZ2UpCiAKICAgICAgICAgdGltZS5zbGVlcChQT0xMSU5HX1BFUklPRCkKIAot
ICAgIHJlc3VsdCA9IHByb2plY3QudXBkYXRlX2RlcGxveW1lbnQodGFyZ2V0LCBkZXBsb3ltZW50
LCAnc3VjY2VzcycpCisgICAgcmVzdWx0ID0gcHJvamVjdC5hZGRfZGVwbG95bWVudF9zdGF0dXMo
dGFyZ2V0LCBkZXBsb3ltZW50LCAnc3VjY2VzcycpCiAgICAgbG9nZ2VyLmluZm8oanNvbi5kdW1w
cyhyZXN1bHQsIGluZGVudD0yKSkKIAorZGVmIG1haW4oaG9zdCwgZ2l0aHViX3Byb2plY3QsIHRh
cmdldCwgdGltZW91dCk6CisgICAgcHJvamVjdCA9IFByb2plY3QoaG9zdCwgZ2l0aHViX3Byb2pl
Y3QpCisKKyAgICB3aXRoIG9wZW4ob3MuZW52aXJvblsnR0lUSFVCX0VWRU5UX1BBVEgnXSkgYXMg
aGFuZGxlOgorICAgICAgICBkYXRhID0ganNvbi5sb2FkKGhhbmRsZSkKKworICAgIGxvZ2dlci5p
bmZvKCdFdmVudCBkYXRhOiAlcycsIGpzb24uZHVtcHMoZGF0YSwgaW5kZW50PTIpKQorCisgICAg
cHVsbF9yZXF1ZXN0ID0gZGF0YVsncHVsbF9yZXF1ZXN0J10KKworICAgIGxvZ2dlci5pbmZvKCdQ
cm9jZXNzaW5nIFB1bGwgUmVxdWVzdCAjJShudW1iZXIpZCcsIHB1bGxfcmVxdWVzdCkKKworICAg
IHJldmlzaW9uX3RvX21pcnJvciA9IHVwZGF0ZV9taXJyb3JfcmVmcyhwcm9qZWN0LCBwdWxsX3Jl
cXVlc3QpCisgICAgaWYgcmV2aXNpb25fdG9fbWlycm9yOgorICAgICAgICBkZXBsb3kocHJvamVj
dCwgdGFyZ2V0LCBwdWxsX3JlcXVlc3QsIHJldmlzaW9uX3RvX21pcnJvciwgdGltZW91dCkKKwog
aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcigKLSAgICAgICAgZGVzY3JpcHRpb249JycnU3luY2hyb25pemUgdGhlIHN0YXRlIG9m
IGEgR2l0SHViLmNvbSBwcm9qZWN0IHdpdGggdGhlCi0gICAgICAgICAgICB1bmRlcmx5aW5nIGdp
dCByZXBvc2l0b3J5IGluIG9yZGVyIHRvIHN1cHBvcnQgYSBleHRlcm5hbGx5LWhvc3RlZAotICAg
ICAgICAgICAgUHVsbCBSZXF1ZXN0IHByZXZpZXcgc3lzdGVtLiBDb21tdW5pY2F0ZSB0aGUgc3Rh
dGUgb2YgdGhhdCBzeXN0ZW0KLSAgICAgICAgICAgIHZpYSBHaXRIdWIgRGVwbG95bWVudHMgYXNz
b2NpYXRlZCB3aXRoIGVhY2ggUHVsbCBSZXF1ZXN0LicnJworICAgICAgICBkZXNjcmlwdGlvbj0n
JydNaXJyb3IgYSBwdWxsIHJlcXVlc3QgdG8gYW4gZXh0ZXJuYWxseS1ob3N0ZWQgcHJldmlldwor
ICAgICAgICAgICAgc3lzdGVtLCBhbmQgY3JlYXRlIGEgR2l0SHViIERlcGxveW1lbnQgYXNzb2Np
YXRlZCB3aXRoIHRoZSBwdWxsCisgICAgICAgICAgICByZXF1ZXN0IHBvaW50aW5nIGF0IHRoZSBw
cmV2aWV3LicnJwogICAgICkKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAnLS1o
b3N0JywgcmVxdWlyZWQ9VHJ1ZSwgaGVscD0ndGhlIGxvY2F0aW9uIG9mIHRoZSBHaXRIdWIgQVBJ
IHNlcnZlcicKQEAgLTQ0MSwzNiArMzYwLDE5IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
CiAgICAgICAgIGhlbHA9JycndGhlIEdpdEh1YiBvcmdhbml6YXRpb24gYW5kIEdpdEh1YiBwcm9q
ZWN0IG5hbWUsIHNlcGFyYXRlZCBieQogICAgICAgICAgICAgYSBmb3J3YXJkIHNsYXNoIChlLmcu
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiknJycKICAgICApCi0gICAgc3VicGFyc2VycyA9IHBh
cnNlci5hZGRfc3VicGFyc2Vycyh0aXRsZT0nc3ViY29tbWFuZHMnKQotCi0gICAgcGFyc2VyX3N5
bmMgPSBzdWJwYXJzZXJzLmFkZF9wYXJzZXIoCi0gICAgICAgICdzeW5jaHJvbml6ZScsIGhlbHA9
c3luY2hyb25pemUuX19kb2NfXwotICAgICkKLSAgICBwYXJzZXJfc3luYy5hZGRfYXJndW1lbnQo
Ci0gICAgICAgICctLXdpbmRvdycsCi0gICAgICAgIHR5cGU9aW50LAotICAgICAgICByZXF1aXJl
ZD1UcnVlLAotICAgICAgICBoZWxwPScnJ3RoZSBudW1iZXIgb2Ygc2Vjb25kcyBwcmlvciB0byB0
aGUgY3VycmVudCBtb21lbnQgd2l0aGluIHdoaWNoCi0gICAgICAgICAgICB0byBzZWFyY2ggZm9y
IEdpdEh1YiBQdWxsIFJlcXVlc3RzLiBBbnkgUHVsbCBSZXF1ZXN0cyB1cGRhdGVkIGluCi0gICAg
ICAgICAgICB0aGlzIHRpbWUgZnJhbWUgd2lsbCBiZSBjb25zaWRlcmVkIGZvciBzeW5jaHJvbml6
YXRpb24uJycnCi0gICAgKQotICAgIHBhcnNlcl9zeW5jLnNldF9kZWZhdWx0cyhmdW5jPXN5bmNo
cm9uaXplKQotCi0gICAgcGFyc2VyX2RldGVjdCA9IHN1YnBhcnNlcnMuYWRkX3BhcnNlcignZGV0
ZWN0JywgaGVscD1kZXRlY3QuX19kb2NfXykKLSAgICBwYXJzZXJfZGV0ZWN0LmFkZF9hcmd1bWVu
dCgKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAnLS10YXJnZXQnLAogICAgICAg
ICByZXF1aXJlZD1UcnVlLAogICAgICAgICBoZWxwPScnJ3RoZSBVUkwgb2YgdGhlIHdlYnNpdGUg
dG8gd2hpY2ggc3VibWlzc2lvbiBwcmV2aWV3cyBhcmUKICAgICAgICAgICAgIGV4cGVjdGVkIHRv
IGJlY29tZSBhdmFpbGFibGUnJycKICAgICApCi0gICAgcGFyc2VyX2RldGVjdC5hZGRfYXJndW1l
bnQoCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKICAgICAgICAgJy0tdGltZW91dCcsCiAgICAg
ICAgIHR5cGU9aW50LAogICAgICAgICByZXF1aXJlZD1UcnVlLAogICAgICAgICBoZWxwPScnJ3Ro
ZSBudW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0IGZvciBhIHN1Ym1pc3Npb24gcHJldmlldyB0bwog
ICAgICAgICAgICAgYmVjb21lIGF2YWlsYWJsZSBiZWZvcmUgcmVwb3J0aW5nIGEgR2l0SHViIERl
cGxveW1lbnQgZmFpbHVyZScnJwogICAgICkKLSAgICBwYXJzZXJfZGV0ZWN0LnNldF9kZWZhdWx0
cyhmdW5jPWRldGVjdCkKIAogICAgIHZhbHVlcyA9IGRpY3QodmFycyhwYXJzZXIucGFyc2VfYXJn
cygpKSkKLSAgICB2YWx1ZXMucG9wKCdmdW5jJykoKip2YWx1ZXMpCisgICAgbWFpbigqKnZhbHVl
cykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90YXNrY2x1c3Rlci1ydW4ucHkKaW5kZXggNDlh
N2QxNjMzODU2MjgzMjBiZTg1ZDZlNjFjMjdjNDEzMTRkN2Y4OS4uMzU2MDIyMDM0YjE0NDhlMDdk
YmZiNmFmNzFhNzBjNmNkZjg2YmM0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90YXNrY2x1c3Rlci1ydW4ucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90YXNr
Y2x1c3Rlci1ydW4ucHkKQEAgLTYyLDcgKzYyLDcgQEAgZGVmIG1haW4ocHJvZHVjdCwgY2hhbm5l
bCwgY29tbWl0X3JhbmdlLCB3cHRfYXJncyk6CiAgICAgKQogICAgIGxvZ2dlci5hZGRIYW5kbGVy
KGhhbmRsZXIpCiAKLSAgICBzdWJwcm9jZXNzLmNhbGwoWydweXRob24nLCAnLi93cHQnLCAnbWFu
aWZlc3QtZG93bmxvYWQnXSkKKyAgICBzdWJwcm9jZXNzLmNhbGwoWydweXRob24zJywgJy4vd3B0
JywgJ21hbmlmZXN0LWRvd25sb2FkJ10pCiAKICAgICBpZiBjb21taXRfcmFuZ2U6CiAgICAgICAg
IGxvZ2dlci5pbmZvKApAQCAtODgsNyArODgsNyBAQCBkZWYgbWFpbihwcm9kdWN0LCBjaGFubmVs
LCBjb21taXRfcmFuZ2UsIHdwdF9hcmdzKToKICAgICBpZiBwcm9kdWN0ID09ICJzZXJ2byIgYW5k
ICItLXRlc3QtdHlwZT13ZHNwZWMiIGluIHdwdF9hcmdzOgogICAgICAgICB3cHRfYXJncyA9IFtp
dGVtIGZvciBpdGVtIGluIHdwdF9hcmdzIGlmIG5vdCBpdGVtLnN0YXJ0c3dpdGgoIi0tcHJvY2Vz
c2VzIildCiAKLSAgICBjb21tYW5kID0gWyJweXRob24iLCAiLi93cHQiLCAicnVuIl0gKyB3cHRf
YXJncyArIFtwcm9kdWN0XQorICAgIGNvbW1hbmQgPSBbInB5dGhvbjMiLCAiLi93cHQiLCAicnVu
Il0gKyB3cHRfYXJncyArIFtwcm9kdWN0XQogCiAgICAgbG9nZ2VyLmluZm8oIkV4ZWN1dGluZyBj
b21tYW5kOiAlcyIgJSAiICIuam9pbihjb21tYW5kKSkKICAgICB3aXRoIG9wZW4oIi9ob21lL3Rl
c3QvYXJ0aWZhY3RzL2NoZWNrcnVuLm1kIiwgImEiKSBhcyBmOgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kZWNpc2lv
bi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdGMvZGVjaXNpb24ucHkKaW5kZXggZjUyZjViMDkzZjBmNDE2MzI2MTM1NzhmNDQ5MTg4Zjgy
YmMwM2FiOS4uYjA4OTA3NzUwNmM2MjkxMjIzNTNmNGEyZWI1ZDEyMzg0NWU5YzY3ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90Yy9kZWNpc2lvbi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3RjL2RlY2lzaW9uLnB5CkBAIC0xMzgsNyArMTM4LDcgQEAgZGVm
IGdldF9mZXRjaF9yZXYoZXZlbnQpOgogICAgICAgICAgICAgICAgIGlmIG5vdCBvdXRwdXQ6CiAg
ICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcigiRmFpbGVkIHRvIGdldCBjb21taXQgZm9y
ICVzIiAlIHJlZikKICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBz
aGEgPSBvdXRwdXQuc3BsaXQoKVswXQorICAgICAgICAgICAgICAgICAgICBzaGEgPSBvdXRwdXQu
ZGVjb2RlKCJ1dGYtOCIpLnNwbGl0KClbMF0KICAgICAgICAgICAgIHJ2LmFwcGVuZChzaGEpCiAg
ICAgICAgIHJ2ID0gdHVwbGUocnYpCiAgICAgZWxzZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGFza3MvdGVzdC55
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3RjL3Rhc2tzL3Rlc3QueW1sCmluZGV4IDU3OGI3Njk0NTViMmFmYmFlNDNmYTFkNmFkMDZmOWY0
NDc0MzUzMzUuLmIzYTM5NjA2ODkzMzY2MTg0OWU2MjhjZWVlYmIxMGY2YTkwYmU1MzggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdGMvdGFza3MvdGVzdC55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90YXNrcy90ZXN0LnltbApAQCAtNTgxLDcgKzU4MSw3
IEBAIHRhc2tzOgogICAgICAgICAtIHdwdC1iYXNlCiAgICAgICAgIC0gdHJpZ2dlci1wcgogICAg
ICAgICAtIGJyb3dzZXItZmlyZWZveAotICAgICAgY29tbWFuZDogLi90b29scy9jaS9jaV93cHRy
dW5uZXJfaW5mcmFzdHJ1Y3R1cmUuc2gKKyAgICAgIGNvbW1hbmQ6IC4vdG9vbHMvY2kvY2lfd3B0
cnVubmVyX2luZnJhc3RydWN0dXJlLnNoIC0tcHkyCiAgICAgICBpbnN0YWxsOgogICAgICAgICAt
IGxpYm5zczMtdG9vbHMKICAgICAgICAgLSBsaWJhcHBpbmRpY2F0b3IxCkBAIC02MDYsNyArNjA2
LDggQEAgdGFza3M6CiAgICAgICB1c2U6CiAgICAgICAgIC0gd3B0LWJhc2UKICAgICAgICAgLSB0
cmlnZ2VyLXByCi0gICAgICBjb21tYW5kOiAuL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0
cnVjdHVyZS5zaCAtLXB5MworICAgICAgICAtIGJyb3dzZXItZmlyZWZveAorICAgICAgY29tbWFu
ZDogLi90b29scy9jaS9jaV93cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUuc2gKICAgICAgIGluc3Rh
bGw6CiAgICAgICAgIC0gcHl0aG9uMy1waXAKICAgICAgICAgLSBsaWJuc3MzLXRvb2xzCkBAIC02
MTUsNiArNjE2LDcgQEAgdGFza3M6CiAgICAgICBvcHRpb25zOgogICAgICAgICBvb20ta2lsbGVy
OiB0cnVlCiAgICAgICAgIGJyb3dzZXI6CisgICAgICAgICAgLSBmaXJlZm94CiAgICAgICAgICAg
LSBjaHJvbWUKICAgICAgICAgY2hhbm5lbDogZXhwZXJpbWVudGFsCiAgICAgICAgIHh2ZmI6IHRy
dWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF9kZWNpc2lvbi5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF9kZWNpc2lv
bi5weQppbmRleCA0MjViNTgyOWVkZDM2MGIxNDVhY2ViZjI0OWY0YjFhYzNmNmQxMzk2Li4xZGNj
MzVjZjY5NDgzN2M2MjY4OTMyMzUxN2Y1MzJlZmNmZWFlNDVjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rl
c3RfZGVjaXNpb24ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X2RlY2lzaW9uLnB5CkBAIC0xLDkgKzEsMTYg
QEAKIGltcG9ydCBtb2NrCiBpbXBvcnQgcHl0ZXN0CitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKIAot
ZnJvbSB0b29scy5jaS50YyBpbXBvcnQgZGVjaXNpb24KIGZyb20gc2l4IGltcG9ydCBpdGVyaXRl
bXMKIAoraGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRoLmFi
c3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIuLiIsICIuLiIsICIuLiIpKQorc3lzLnBh
dGguaW5zZXJ0KDAsIHJvb3QpCisKK2Zyb20gdG9vbHMuY2kudGMgaW1wb3J0IGRlY2lzaW9uCisK
IAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJydW5fam9icyx0YXNrcyxleHBlY3RlZCIsIFsK
ICAgICAoW10sIHsidGFzay1uby1zY2hlZHVsZS1pZiI6IHt9fSwgWyJ0YXNrLW5vLXNjaGVkdWxl
LWlmIl0pLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3Rhc2tncmFwaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF90
YXNrZ3JhcGgucHkKaW5kZXggZGQ4NTM1YmI2NDcwZmY5MTkyNTE5NzNiMDczZDI0NDg5ZWRmZmY4
Yi4uNTg1MDkzMmZhMGNkNGQzY2E5NGU0ZmEyNTBlZDExMjJkNDkzZTcxZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90
ZXN0cy90ZXN0X3Rhc2tncmFwaC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdGFza2dyYXBoLnB5CkBAIC0x
LDYgKzEsMTIgQEAKK2ltcG9ydCBvcwogaW1wb3J0IHB5dGVzdAoraW1wb3J0IHN5cwogaW1wb3J0
IHlhbWwKIAoraGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIuLiIsICIuLiIsICIuLiIpKQorc3lz
LnBhdGguaW5zZXJ0KDAsIHJvb3QpCisKIGZyb20gdG9vbHMuY2kudGMgaW1wb3J0IHRhc2tncmFw
aAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImRhdGEsIHVwZGF0ZV9kYXRhLCBleHBlY3Rl
ZCIsIFsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF92YWxpZC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF92YWxpZC5w
eQppbmRleCA0ZjZiY2MyZjBhOGQ0YzQwNGI0MjNiNmM2MGMyOGM5ZDI4YjgxODNhLi4zMGZkZmRj
MTNkODhlZTA1YWEwMTVmYjc1MjlmNGEzZTY3YWFlZGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3Rf
dmFsaWQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3ZhbGlkLnB5CkBAIC0xLDYgKzEsNyBAQAogaW1wb3J0
IGpzb24KIGltcG9ydCBvcwogZnJvbSBpbyBpbXBvcnQgb3BlbgoraW1wb3J0IHN5cwogCiBpbXBv
cnQganNvbmUKIGltcG9ydCBtb2NrCkBAIC05LDEwICsxMCwxMSBAQCBpbXBvcnQgcmVxdWVzdHMK
IGltcG9ydCB5YW1sCiBmcm9tIGpzb25zY2hlbWEgaW1wb3J0IHZhbGlkYXRlCiAKLWZyb20gdG9v
bHMuY2kudGMgaW1wb3J0IGRlY2lzaW9uCi0KIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pCiByb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCAiLi4iLCAiLi4i
LCAiLi4iLCAiLi4iKSkKK3N5cy5wYXRoLmluc2VydCgwLCByb290KQorCitmcm9tIHRvb2xzLmNp
LnRjIGltcG9ydCBkZWNpc2lvbgogCiAKIGRlZiBkYXRhX3BhdGgoZmlsZW5hbWUpOgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90ZXN0cy90ZXN0X2pvYnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9icy5weQppbmRleCBhYTEyNzM4MjA0ZjM2
NTJlMmRmOTY0NDQ0NjkzNjhlMGU2MjYxOTIzLi45NmViZThiZjI4OTIxMmRlY2M4YWM0NmM2NjNh
NWQzNjdhZDk2YzZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9icy5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9i
cy5weQpAQCAtMSwzICsxLDEwIEBACitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworaGVyZSA9IG9z
LnBhdGguZGlybmFtZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5q
b2luKGhlcmUsICIuLiIsICIuLiIsICIuLiIpKQorc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3QpCisK
IGZyb20gdG9vbHMuY2kgaW1wb3J0IGpvYnMKIAogYWxsX2pvYnMgPSB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3Rz
L3Rlc3RfcHJfcHJldmlldy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9wcl9wcmV2aWV3LnB5CmluZGV4IGVkNjMxMGMx
ZWExMjliMTlmMzEzYzI5Yzk4ZTUyMzhhODU1NDZlNDIuLmEyNjgzODNlZDBiMTIxODYzNjIzY2Nh
OTQ2OWFhYTBjMDBiYTI2NmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9wcl9wcmV2aWV3LnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVz
dHMvdGVzdF9wcl9wcmV2aWV3LnB5CkBAIC0xNCwxMCArMTQsMTEgQEAgaW1wb3J0IHN5cwogaW1w
b3J0IHRlbXBmaWxlCiBpbXBvcnQgdGhyZWFkaW5nCiAKLXN1YmplY3QgPSBvcy5wYXRoLmpvaW4o
Ci0gICAgb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpLCAnLi4nLCAn
cHJfcHJldmlldy5weScKLSkKLXRlc3RfaG9zdCA9ICdsb2NhbGhvc3QnCitzeXMucGF0aC5pbnNl
cnQoMCwgb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pLCAnLi4nKSkpCitpbXBvcnQgcHJfcHJldmlldworCisKK1RFU1RfSE9TVCA9ICdsb2NhbGhv
c3QnCiAKIAogZGVmIHNhbWVfbWVtYmVycyhhLCBiKToKQEAgLTgxLDcgKzgyLDEwIEBAIGNsYXNz
IE1vY2tIYW5kbGVyKEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIsIG9iamVjdCk6CiAgICAgICAgIHNl
bGYuc2VydmVyLmFjdHVhbF90cmFmZmljLmFwcGVuZCgocmVxdWVzdCwgcmVzcG9uc2UpKQogICAg
ICAgICBzZWxmLnNlbmRfcmVzcG9uc2UocmVzcG9uc2VbMF0pCiAgICAgICAgIHNlbGYuZW5kX2hl
YWRlcnMoKQotICAgICAgICBzZWxmLndmaWxlLndyaXRlKGpzb24uZHVtcHMocmVzcG9uc2VbMV0p
LmVuY29kZSgndXRmLTgnKSkKKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXIucmVwb25zZV9ib2R5X2lz
X2pzb246CisgICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKGpzb24uZHVtcHMocmVzcG9uc2Vb
MV0pLmVuY29kZSgndXRmLTgnKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYud2Zp
bGUud3JpdGUocmVzcG9uc2VbMV0uZW5jb2RlKCd1dGYtOCcpKQogCiAgICAgZGVmIGRvX0RFTEVU
RShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuZG9fYWxsKCkKQEAgLTEwMCwxMCArMTA0LDEx
IEBAIGNsYXNzIE1vY2tTZXJ2ZXIoSFRUUFNlcnZlciwgb2JqZWN0KToKICAgICAnJydIVFRQIHNl
cnZlciB0aGF0IHJlc3BvbmRzIHRvIGFsbCByZXF1ZXN0cyB3aXRoIHN0YXR1cyBjb2RlIDIwMCBh
bmQgYm9keQogICAgICd7fScgdW5sZXNzIGFuIGFsdGVybmF0aXZlIHN0YXR1cyBjb2RlIGFuZCBi
b2R5IGFyZSBzcGVjaWZpZWQgZm9yIHRoZSBnaXZlbgogICAgIG1ldGhvZCBhbmQgcGF0aCBpbiB0
aGUgYHJlc3BvbnNlc2AgcGFyYW1ldGVyLicnJwotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRy
ZXNzLCBleHBlY3RlZF90cmFmZmljKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYWRkcmVzcywg
ZXhwZWN0ZWRfdHJhZmZpYywgcmVwb25zZV9ib2R5X2lzX2pzb249VHJ1ZSk6CiAgICAgICAgIHN1
cGVyKE1vY2tTZXJ2ZXIsIHNlbGYpLl9faW5pdF9fKGFkZHJlc3MsIE1vY2tIYW5kbGVyKQogICAg
ICAgICBzZWxmLmV4cGVjdGVkX3RyYWZmaWMgPSBleHBlY3RlZF90cmFmZmljCiAgICAgICAgIHNl
bGYuYWN0dWFsX3RyYWZmaWMgPSBbXQorICAgICAgICBzZWxmLnJlcG9uc2VfYm9keV9pc19qc29u
ID0gcmVwb25zZV9ib2R5X2lzX2pzb24KIAogICAgIGRlZiBfX2VudGVyX18oc2VsZik6CiAgICAg
ICAgIHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWxhbWJkYTogc2VsZi5zZXJ2ZV9mb3JldmVyKCkp
LnN0YXJ0KCkKQEAgLTExNSwyMSArMTIwLDMxIEBAIGNsYXNzIE1vY2tTZXJ2ZXIoSFRUUFNlcnZl
ciwgb2JqZWN0KToKIAogY2xhc3MgUmVxdWVzdHMob2JqZWN0KToKICAgICBnZXRfcmF0ZSA9ICgn
R0VUJywgJy9yYXRlX2xpbWl0Jywge30pCi0gICAgc2VhcmNoID0gKCdHRVQnLCAnL3NlYXJjaC9p
c3N1ZXMnLCB7fSkKLSAgICBwcl9kZXRhaWxzID0gKCdHRVQnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rl
c3QtcmVwby9wdWxscy8yMycsIHt9KQogICAgIHJlZl9jcmVhdGVfb3BlbiA9ICgKLSAgICAgICAg
J1BPU1QnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9naXQvcmVmcycsIHsncmVmJzoncmVm
cy9wcnMtb3Blbi8yMyd9CisgICAgICAgICdQT1NUJywgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJl
cG8vZ2l0L3JlZnMnLCB7J3JlZic6J3JlZnMvcHJzLW9wZW4vNDUnfQogICAgICkKICAgICByZWZf
Y3JlYXRlX3RydXN0ZWQgPSAoCiAgICAgICAgICdQT1NUJywKICAgICAgICAgJy9yZXBvcy90ZXN0
LW9yZy90ZXN0LXJlcG8vZ2l0L3JlZnMnLAotICAgICAgICB7J3JlZic6J3JlZnMvcHJzLXRydXN0
ZWQtZm9yLXByZXZpZXcvMjMnfQorICAgICAgICB7J3JlZic6J3JlZnMvcHJzLXRydXN0ZWQtZm9y
LXByZXZpZXcvNDUnfQorICAgICkKKyAgICByZWZfZ2V0X29wZW4gPSAoCisgICAgICAgICdHRVQn
LCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9naXQvcmVmcy9wcnMtb3Blbi80NScsIHt9Cisg
ICAgKQorICAgIHJlZl9nZXRfdHJ1c3RlZCA9ICgKKyAgICAgICAgJ0dFVCcsICcvcmVwb3MvdGVz
dC1vcmcvdGVzdC1yZXBvL2dpdC9yZWZzL3Bycy10cnVzdGVkLWZvci1wcmV2aWV3LzQ1Jywge30K
ICAgICApCiAgICAgcmVmX3VwZGF0ZV9vcGVuID0gKAotICAgICAgICAnUEFUQ0gnLCAnL3JlcG9z
L3Rlc3Qtb3JnL3Rlc3QtcmVwby9naXQvcmVmcy9wcnMtb3Blbi8yMycsIHt9CisgICAgICAgICdQ
QVRDSCcsICcvcmVwb3MvdGVzdC1vcmcvdGVzdC1yZXBvL2dpdC9yZWZzL3Bycy1vcGVuLzQ1Jywg
e30KICAgICApCiAgICAgcmVmX3VwZGF0ZV90cnVzdGVkID0gKAotICAgICAgICAnUEFUQ0gnLCAn
L3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9naXQvcmVmcy9wcnMtdHJ1c3RlZC1mb3ItcHJldmll
dy8yMycsIHt9CisgICAgICAgICdQQVRDSCcsICcvcmVwb3MvdGVzdC1vcmcvdGVzdC1yZXBvL2dp
dC9yZWZzL3Bycy10cnVzdGVkLWZvci1wcmV2aWV3LzQ1Jywge30KKyAgICApCisgICAgcmVmX2Rl
bGV0ZV9vcGVuID0gKAorICAgICAgICAnREVMRVRFJywgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJl
cG8vZ2l0L3JlZnMvcHJzLW9wZW4vNDUnLCB7fQorICAgICkKKyAgICByZWZfZGVsZXRlX3RydXN0
ZWQgPSAoCisgICAgICAgICdERUxFVEUnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9naXQv
cmVmcy9wcnMtdHJ1c3RlZC1mb3ItcHJldmlldy80NScsIHt9CiAgICAgKQogICAgIGRlcGxveW1l
bnRfZ2V0ID0gKCdHRVQnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9kZXBsb3ltZW50cycs
IHt9KQogICAgIGRlcGxveW1lbnRfY3JlYXRlID0gKCdQT1NUJywgJy9yZXBvcy90ZXN0LW9yZy90
ZXN0LXJlcG8vZGVwbG95bWVudHMnLCB7fSkKQEAgLTE2OCw3ICsxODMsOSBAQCBjbGFzcyBSZXNw
b25zZXMob2JqZWN0KToKIAogQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKIGRlZiB0ZW1wX3Jl
cG8oKToKKyAgICBvcmlnaW5hbF9kaXIgPSBvcy5nZXRjd2QoKQogICAgIGRpcmVjdG9yeSA9IHRl
bXBmaWxlLm1rZHRlbXAoKQorICAgIG9zLmNoZGlyKGRpcmVjdG9yeSkKIAogICAgIHRyeToKICAg
ICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsnZ2l0JywgJ2luaXQnXSwgY3dkPWRpcmVjdG9y
eSkKQEAgLTE5MiwxMzUgKzIwOSw3NyBAQCBkZWYgdGVtcF9yZXBvKCk6CiAKICAgICAgICAgeWll
bGQgZGlyZWN0b3J5CiAgICAgZmluYWxseToKKyAgICAgICAgb3MuY2hkaXIob3JpZ2luYWxfZGly
KQogICAgICAgICBzaHV0aWwucm10cmVlKAogICAgICAgICAgICAgZGlyZWN0b3J5LCBpZ25vcmVf
ZXJyb3JzPUZhbHNlLCBvbmVycm9yPWhhbmRsZV9yZW1vdmVfcmVhZG9ubHkKICAgICAgICAgKQog
Ci1kZWYgc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYywgcmVmcz17fSk6Ci0gICAgZW52ID0g
ewotICAgICAgICAnREVQTE9ZX1RPS0VOJzogJ2MwZmZlZScKLSAgICB9Ci0gICAgZW52LnVwZGF0
ZShvcy5lbnZpcm9uKQotICAgIHNlcnZlciA9IE1vY2tTZXJ2ZXIoKHRlc3RfaG9zdCwgMCksIGV4
cGVjdGVkX3RyYWZmaWMpCi0gICAgdGVzdF9wb3J0ID0gc2VydmVyLnNlcnZlcl9hZGRyZXNzWzFd
Ci0gICAgcmVtb3RlX3JlZnMgPSB7fQotCi0gICAgd2l0aCB0ZW1wX3JlcG8oKSBhcyBsb2NhbF9y
ZXBvLCB0ZW1wX3JlcG8oKSBhcyByZW1vdGVfcmVwbywgc2VydmVyOgotICAgICAgICBzdWJwcm9j
ZXNzLmNoZWNrX2NhbGwoCi0gICAgICAgICAgICBbJ2dpdCcsICdjb21taXQnLCAnLS1hbGxvdy1l
bXB0eScsICctbScsICdmaXJzdCddLAotICAgICAgICAgICAgY3dkPXJlbW90ZV9yZXBvCi0gICAg
ICAgICkKLSAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKAotICAgICAgICAgICAgWydnaXQn
LCAnY29tbWl0JywgJy0tYWxsb3ctZW1wdHknLCAnLW0nLCAnc2Vjb25kJ10sCi0gICAgICAgICAg
ICBjd2Q9cmVtb3RlX3JlcG8KLSAgICAgICAgKQotICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2Nh
bGwoCi0gICAgICAgICAgICBbJ2dpdCcsICdyZW1vdGUnLCAnYWRkJywgJ29yaWdpbicsIHJlbW90
ZV9yZXBvXSwgY3dkPWxvY2FsX3JlcG8KLSAgICAgICAgKQorZGVmIHVwZGF0ZV9taXJyb3JfcmVm
cyhwdWxsX3JlcXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMpOgorICAgIG9zLmVudmlyb25bJ0dJVEhV
Ql9UT0tFTiddID0gJ2MwZmZlZScKIAotICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gcmVmcy5p
dGVtcygpOgotICAgICAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKAotICAgICAgICAgICAg
ICAgIFsnZ2l0JywgJ3VwZGF0ZS1yZWYnLCBuYW1lLCB2YWx1ZV0sCi0gICAgICAgICAgICAgICAg
Y3dkPXJlbW90ZV9yZXBvCi0gICAgICAgICAgICApCi0KLSAgICAgICAgY2hpbGQgPSBzdWJwcm9j
ZXNzLlBvcGVuKAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIHN5cy5leGVjdXRhYmxl
LAotICAgICAgICAgICAgICAgIHN1YmplY3QsCi0gICAgICAgICAgICAgICAgJy0taG9zdCcsCi0g
ICAgICAgICAgICAgICAgJ2h0dHA6Ly97fTp7fScuZm9ybWF0KHRlc3RfaG9zdCwgdGVzdF9wb3J0
KSwKLSAgICAgICAgICAgICAgICAnLS1naXRodWItcHJvamVjdCcsCi0gICAgICAgICAgICAgICAg
J3Rlc3Qtb3JnL3Rlc3QtcmVwbycsCi0gICAgICAgICAgICAgICAgJ3N5bmNocm9uaXplJywKLSAg
ICAgICAgICAgICAgICAnLS13aW5kb3cnLAotICAgICAgICAgICAgICAgICczMDAwJwotICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgIGN3ZD1sb2NhbF9yZXBvLAotICAgICAgICAgICAgZW52PWVu
dgotICAgICAgICApCisgICAgZ2l0aHViX3NlcnZlciA9IE1vY2tTZXJ2ZXIoKFRFU1RfSE9TVCwg
MCksIGV4cGVjdGVkX3RyYWZmaWMpCisgICAgZ2l0aHViX3BvcnQgPSBnaXRodWJfc2VydmVyLnNl
cnZlcl9hZGRyZXNzWzFdCiAKLSAgICAgICAgY2hpbGQuY29tbXVuaWNhdGUoKQotICAgICAgICBs
aW5lcyA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KAotICAgICAgICAgICAgWydnaXQnLCAnbHMt
cmVtb3RlJywgJ29yaWdpbiddLCBjd2Q9bG9jYWxfcmVwbworICAgIG1ldGhvZF90aHJldyA9IEZh
bHNlCisgICAgd2l0aCB0ZW1wX3JlcG8oKSwgZ2l0aHViX3NlcnZlcjoKKyAgICAgICAgcHJvamVj
dCA9IHByX3ByZXZpZXcuUHJvamVjdCgKKyAgICAgICAgICAgICdodHRwOi8ve306e30nLmZvcm1h
dChURVNUX0hPU1QsIGdpdGh1Yl9wb3J0KSwKKyAgICAgICAgICAgICd0ZXN0LW9yZy90ZXN0LXJl
cG8nLAogICAgICAgICApCi0gICAgICAgIGZvciBsaW5lIGluIGxpbmVzLmRlY29kZSgndXRmLTgn
KS5zdHJpcCgpLnNwbGl0KCdcbicpOgotICAgICAgICAgICAgcmV2aXNpb24sIHJlZiA9IGxpbmUu
c3BsaXQoKQotCi0gICAgICAgICAgICBpZiBub3QgcmVmIG9yIHJlZiBpbiAoJ0hFQUQnLCAncmVm
cy9oZWFkcy9tYXN0ZXInKToKLSAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICB0cnk6
CisgICAgICAgICAgICBwcl9wcmV2aWV3LnVwZGF0ZV9taXJyb3JfcmVmcyhwcm9qZWN0LCBwdWxs
X3JlcXVlc3QpCisgICAgICAgIGV4Y2VwdCBwcl9wcmV2aWV3LkdpdEh1YlJhdGVMaW1pdEV4Y2Vw
dGlvbjoKKyAgICAgICAgICAgIG1ldGhvZF90aHJldyA9IFRydWUKIAotICAgICAgICAgICAgcmVt
b3RlX3JlZnNbcmVmXSA9IHJldmlzaW9uCisgICAgcmV0dXJuICgKKyAgICAgICAgbWV0aG9kX3Ro
cmV3LAorICAgICAgICBnaXRodWJfc2VydmVyLmFjdHVhbF90cmFmZmljLAorICAgICkKIAotICAg
IHJldHVybiBjaGlsZC5yZXR1cm5jb2RlLCBzZXJ2ZXIuYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9y
ZWZzCiAKK2RlZiBkZXBsb3kocHJfbnVtLCByZXZpc2lvbiwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZm
aWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyk6CisgICAgb3MuZW52aXJvblsnR0lUSFVCX1RP
S0VOJ10gPSAnYzBmZmVlJwogCi1kZWYgZGV0ZWN0KGV2ZW50LCBleHBlY3RlZF9naXRodWJfdHJh
ZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFmZmljKToKLSAgICBlbnYgPSB7Ci0gICAgICAgICdE
RVBMT1lfVE9LRU4nOiAnYzBmZmVlJwotICAgIH0KLSAgICBlbnYudXBkYXRlKG9zLmVudmlyb24p
Ci0gICAgZ2l0aHViX3NlcnZlciA9IE1vY2tTZXJ2ZXIoKHRlc3RfaG9zdCwgMCksIGV4cGVjdGVk
X2dpdGh1Yl90cmFmZmljKQorICAgIGdpdGh1Yl9zZXJ2ZXIgPSBNb2NrU2VydmVyKChURVNUX0hP
U1QsIDApLCBleHBlY3RlZF9naXRodWJfdHJhZmZpYykKICAgICBnaXRodWJfcG9ydCA9IGdpdGh1
Yl9zZXJ2ZXIuc2VydmVyX2FkZHJlc3NbMV0KLSAgICBwcmV2aWV3X3NlcnZlciA9IE1vY2tTZXJ2
ZXIoKHRlc3RfaG9zdCwgMCksIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYykKKyAgICBwcmV2aWV3
X3NlcnZlciA9IE1vY2tTZXJ2ZXIoKFRFU1RfSE9TVCwgMCksIGV4cGVjdGVkX3ByZXZpZXdfdHJh
ZmZpYywgcmVwb25zZV9ib2R5X2lzX2pzb249RmFsc2UpCiAgICAgcHJldmlld19wb3J0ID0gcHJl
dmlld19zZXJ2ZXIuc2VydmVyX2FkZHJlc3NbMV0KIAotICAgIHdpdGggdGVtcF9yZXBvKCkgYXMg
cmVwbywgZ2l0aHViX3NlcnZlciwgcHJldmlld19zZXJ2ZXI6Ci0gICAgICAgIGVudlsnR0lUSFVC
X0VWRU5UX1BBVEgnXSA9IHJlcG8gKyAnL2V2ZW50Lmpzb24nCi0KLSAgICAgICAgd2l0aCBvcGVu
KGVudlsnR0lUSFVCX0VWRU5UX1BBVEgnXSwgJ3cnKSBhcyBoYW5kbGU6Ci0gICAgICAgICAgICBo
YW5kbGUud3JpdGUoanNvbi5kdW1wcyhldmVudCkpCi0KLSAgICAgICAgY2hpbGQgPSBzdWJwcm9j
ZXNzLlBvcGVuKAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIHN5cy5leGVjdXRhYmxl
LAotICAgICAgICAgICAgICAgIHN1YmplY3QsCi0gICAgICAgICAgICAgICAgJy0taG9zdCcsCi0g
ICAgICAgICAgICAgICAgJ2h0dHA6Ly97fTp7fScuZm9ybWF0KHRlc3RfaG9zdCwgZ2l0aHViX3Bv
cnQpLAotICAgICAgICAgICAgICAgICctLWdpdGh1Yi1wcm9qZWN0JywKLSAgICAgICAgICAgICAg
ICAndGVzdC1vcmcvdGVzdC1yZXBvJywKLSAgICAgICAgICAgICAgICAnZGV0ZWN0JywKLSAgICAg
ICAgICAgICAgICAnLS10YXJnZXQnLAotICAgICAgICAgICAgICAgICdodHRwOi8ve306e30nLmZv
cm1hdCh0ZXN0X2hvc3QsIHByZXZpZXdfcG9ydCksCi0gICAgICAgICAgICAgICAgJy0tdGltZW91
dCcsCi0gICAgICAgICAgICAgICAgJzEnCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgY3dk
PXJlcG8sCi0gICAgICAgICAgICBlbnY9ZW52CisgICAgbWV0aG9kX3RocmV3ID0gRmFsc2UKKyAg
ICB3aXRoIGdpdGh1Yl9zZXJ2ZXIsIHByZXZpZXdfc2VydmVyOgorICAgICAgICBwcm9qZWN0ID0g
cHJfcHJldmlldy5Qcm9qZWN0KAorICAgICAgICAgICAgJ2h0dHA6Ly97fTp7fScuZm9ybWF0KFRF
U1RfSE9TVCwgZ2l0aHViX3BvcnQpLAorICAgICAgICAgICAgJ3Rlc3Qtb3JnL3Rlc3QtcmVwbycs
CiAgICAgICAgICkKLSAgICAgICAgY2hpbGQuY29tbXVuaWNhdGUoKQorICAgICAgICB0YXJnZXQg
PSAnaHR0cDovL3t9Ont9Jy5mb3JtYXQoVEVTVF9IT1NULCBwcmV2aWV3X3BvcnQpCisgICAgICAg
IHB1bGxfcmVxdWVzdCA9IHsnbnVtYmVyJzogcHJfbnVtfQorICAgICAgICB0aW1lb3V0ID0gMQor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBwcl9wcmV2aWV3LmRlcGxveShwcm9qZWN0LCB0YXJn
ZXQsIHB1bGxfcmVxdWVzdCwgcmV2aXNpb24sIHRpbWVvdXQpCisgICAgICAgIGV4Y2VwdCAocHJf
cHJldmlldy5HaXRIdWJSYXRlTGltaXRFeGNlcHRpb24sIHByX3ByZXZpZXcuRGVwbG95bWVudEZh
aWxlZEV4Y2VwdGlvbik6CisgICAgICAgICAgICBtZXRob2RfdGhyZXcgPSBUcnVlCiAKICAgICBy
ZXR1cm4gKAotICAgICAgICBjaGlsZC5yZXR1cm5jb2RlLAorICAgICAgICBtZXRob2RfdGhyZXcs
CiAgICAgICAgIGdpdGh1Yl9zZXJ2ZXIuYWN0dWFsX3RyYWZmaWMsCiAgICAgICAgIHByZXZpZXdf
c2VydmVyLmFjdHVhbF90cmFmZmljCiAgICAgKQogCi0KLWRlZiB0ZXN0X3N5bmNocm9uaXplX3pl
cm9fcmVzdWx0cygpOgotICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBbCi0gICAgICAgIChSZXF1ZXN0
cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLnNlYXJj
aCwgKAotICAgICAgICAgICAgMjAwLAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdp
dGVtcyc6IFtdLAotICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQot
ICAgICAgICAgICAgfQotICAgICAgICApKQotICAgIF0KLQotICAgIHJldHVybmNvZGUsIGFjdHVh
bF90cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMpCi0K
LSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0gICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBl
Y3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKLQotZGVmIHRlc3Rfc3luY2hyb25pemVfZmFp
bF9zZWFyY2hfdGhyb3R0bGVkKCk6CitkZWYgdGVzdF91cGRhdGVfbWlycm9yX3JlZnNfZmFpbF9y
YXRlX2xpbWl0ZWQoKToKKyAgICBwdWxsX3JlcXVlc3QgPSB7CisgICAgICAgICdudW1iZXInOiA0
NSwKKyAgICAgICAgJ2hlYWQnOiB7J3NoYSc6ICdhYmMxMjMnfSwKKyAgICAgICAgJ2xhYmVscyc6
IFtdLAorICAgICAgICAndXNlcic6IHsnbG9naW4nOiAnc3RlcGhlbm1jZ3J1ZXInfSwKKyAgICAg
ICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT0xMQUJPUkFUT1InLAorICAgICAgICAnY2xvc2Vk
X2F0JzogTm9uZSwKKyAgICB9CiAgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKICAgICAgICAgKFJl
cXVlc3RzLmdldF9yYXRlLCAoCiAgICAgICAgICAgICAyMDAsCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgJ3Jlc291cmNlcyc6IHsKLSAgICAgICAgICAgICAgICAgICAgJ3NlYXJjaCc6
IHsKKyAgICAgICAgICAgICAgICAgICAgJ2NvcmUnOiB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAncmVtYWluaW5nJzogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICdsaW1pdCc6IDEwCiAg
ICAgICAgICAgICAgICAgICAgIH0KQEAgLTMyOSw0NTEgKzI4OCwyODAgQEAgZGVmIHRlc3Rfc3lu
Y2hyb25pemVfZmFpbF9zZWFyY2hfdGhyb3R0bGVkKCk6CiAgICAgICAgICkpCiAgICAgXQogCi0g
ICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUo
ZXhwZWN0ZWRfdHJhZmZpYykKLQotICAgIGFzc2VydCByZXR1cm5jb2RlICE9IDAKLSAgICBhc3Nl
cnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQotCi1kZWYg
dGVzdF9zeW5jaHJvbml6ZV9mYWlsX2luY29tcGxldGVfcmVzdWx0cygpOgotICAgIGV4cGVjdGVk
X3RyYWZmaWMgPSBbCi0gICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xp
bWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAotICAgICAgICAgICAgMjAwLAotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICdpdGVtcyc6IFtdLAotICAgICAgICAgICAgICAg
ICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBUcnVlCi0gICAgICAgICAgICB9Ci0gICAgICAgICkpCi0g
ICAgXQotCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW92ZV9yZWZzID0gc3lu
Y2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKKyAgICBtZXRob2RfdGhyZXcsIGFjdHVhbF90cmFm
ZmljID0gdXBkYXRlX21pcnJvcl9yZWZzKAorICAgICAgICBwdWxsX3JlcXVlc3QsIGV4cGVjdGVk
X3RyYWZmaWMKKyAgICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29kZSAhPSAwCisgICAgYXNzZXJ0
IG1ldGhvZF90aHJldwogICAgIGFzc2VydCBzYW1lX21lbWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywg
YWN0dWFsX3RyYWZmaWMpCiAKIGRlZiB0ZXN0X3N5bmNocm9uaXplX2lnbm9yZV9jbG9zZWQoKToK
KyAgICAjIE5vIGV4aXN0aW5nIHJlZnMsIGJ1dCBhIGNsb3NlZCBQUiBldmVudCBjb21lcyBpbi4g
Tm90aGluZyBzaG91bGQgaGFwcGVuLgorICAgIHB1bGxfcmVxdWVzdCA9IHsKKyAgICAgICAgJ251
bWJlcic6IDQ1LAorICAgICAgICAnaGVhZCc6IHsnc2hhJzogJ2FiYzEyMyd9LAorICAgICAgICAn
bGFiZWxzJzogW10sCisgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdzdGVwaGVubWNncnVlcid9
LAorICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9SQVRPUicsCisgICAgICAg
ICdjbG9zZWRfYXQnOiAnMjAxOS0xMC0yOCcsCisgICAgfQogICAgIGV4cGVjdGVkX3RyYWZmaWMg
PSBbCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAg
ICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAotICAgICAgICAgICAgMjAwLAotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICdpdGVtcyc6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICAgICAgJ251bWJlcic6IDIzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgJ2xhYmVscyc6IFtdLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6ICcy
MDE5LTEwLTI4JywKLSAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdn
cmFjZSd9LAotICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdD
T0xMQUJPUkFUT1InCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAot
ICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQotICAgICAgICAgICAg
fQotICAgICAgICApKQorICAgICAgICAoUmVxdWVzdHMucmVmX2dldF90cnVzdGVkLCAoNDA0LCB7
fSkpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisg
ICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0X29wZW4sICg0MDQsIHt9KSksCiAgICAgXQogCi0gICAg
cmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhw
ZWN0ZWRfdHJhZmZpYykKKyAgICBtZXRob2RfdGhyZXcsIGFjdHVhbF90cmFmZmljID0gdXBkYXRl
X21pcnJvcl9yZWZzKAorICAgICAgICBwdWxsX3JlcXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMKKyAg
ICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IG5vdCBtZXRob2Rf
dGhyZXcKICAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90
cmFmZmljKQogCi1kZWYgdGVzdF9zeW5jaHJvbml6ZV9zeW5jX2NvbGxhYm9yYXRvcigpOgorZGVm
IHRlc3RfdXBkYXRlX21pcnJvcl9yZWZzX2NvbGxhYm9yYXRvcigpOgorICAgIHB1bGxfcmVxdWVz
dCA9IHsKKyAgICAgICAgJ251bWJlcic6IDQ1LAorICAgICAgICAnaGVhZCc6IHsnc2hhJzogJ2Fi
YzEyMyd9LAorICAgICAgICAnbGFiZWxzJzogW10sCisgICAgICAgICd1c2VyJzogeydsb2dpbic6
ICdzdGVwaGVubWNncnVlcid9LAorICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExB
Qk9SQVRPUicsCisgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAorICAgIH0KICAgICBleHBlY3Rl
ZF90cmFmZmljID0gWwogICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19s
aW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0X3RydXN0ZWQsICg0MDQsIHt9KSksCiAg
ICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAg
KFJlcXVlc3RzLnJlZl9nZXRfb3BlbiwgKDQwNCwge30pKSwKICAgICAgICAgKFJlcXVlc3RzLmdl
dF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUs
IFJlc3BvbnNlcy5ub19saW1pdCksCi0gICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9u
c2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9f
bGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuc2VhcmNoLCAoCi0gICAgICAgICAgICAyMDAsCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2l0ZW1zJzogWwotICAgICAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnbnVtYmVyJzogMjMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAnbGFiZWxzJzogW10sCi0gICAgICAgICAgICAgICAgICAgICAgICAnY2xv
c2VkX2F0JzogTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6
ICdncmFjZSd9LAotICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6
ICdDT0xMQUJPUkFUT1InCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBd
LAotICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQotICAgICAgICAg
ICAgfQotICAgICAgICApKSwKLSAgICAgICAgKFJlcXVlc3RzLnByX2RldGFpbHMsICgyMDAsCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2hlYWQnOiB7Ci0gICAgICAgICAgICAgICAg
ICAgICdyZXBvJzogewotICAgICAgICAgICAgICAgICAgICAgICAgJ2Z1bGxfbmFtZSc6ICd0ZXN0
LW9yZy90ZXN0LXJlcG8nCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICkpLAogICAgICAgICAoUmVxdWVzdHMucmVmX2NyZWF0
ZV9vcGVuLCAoMjAwLCB7fSkpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNl
cy5ub19saW1pdCksCiAgICAgICAgIChSZXF1ZXN0cy5yZWZfY3JlYXRlX3RydXN0ZWQsICgyMDAs
IHt9KSksCi0gICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X2dldCwgKDIwMCwge30pKSwKLSAg
ICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfY3JlYXRlLCAoMjAwLCB7fSkpCiAgICAgXQogCi0g
ICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUo
ZXhwZWN0ZWRfdHJhZmZpYykKKyAgICBtZXRob2RfdGhyZXcsIGFjdHVhbF90cmFmZmljLCA9IHVw
ZGF0ZV9taXJyb3JfcmVmcygKKyAgICAgICAgcHVsbF9yZXF1ZXN0LCBleHBlY3RlZF90cmFmZmlj
CisgICAgKQogCi0gICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBub3QgbWV0
aG9kX3RocmV3CiAgICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1
YWxfdHJhZmZpYykKIAotZGVmIHRlc3Rfc3luY2hyb25pemVfaWdub3JlX2NvbGxhYm9yYXRvcl9i
b3QoKToKK2RlZiB0ZXN0X3VwZGF0ZV9taXJyb3JfcmVmc19pZ25vcmVfY29sbGFib3JhdG9yX2Jv
dCgpOgorICAgIHB1bGxfcmVxdWVzdCA9IHsKKyAgICAgICAgJ251bWJlcic6IDQ1LAorICAgICAg
ICAnaGVhZCc6IHsnc2hhJzogJ2FiYzEyMyd9LAorICAgICAgICAnbGFiZWxzJzogW10sCisgICAg
ICAgICd1c2VyJzogeydsb2dpbic6ICdjaHJvbWl1bS13cHQtZXhwb3J0LWJvdCd9LAorICAgICAg
ICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9SQVRPUicsCisgICAgICAgICdjbG9zZWRf
YXQnOiBOb25lLAorICAgIH0KICAgICBleHBlY3RlZF90cmFmZmljID0gWwogICAgICAgICAoUmVx
dWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCi0gICAgICAgIChSZXF1ZXN0cy5z
ZWFyY2gsICgKLSAgICAgICAgICAgIDIwMCwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAnaXRlbXMnOiBbCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICdudW1iZXInOiAyMywKLSAgICAgICAgICAgICAgICAgICAgICAgICdsYWJlbHMnOiBbXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2luJzogJ2Nocm9taXVtLXdwdC1leHBvcnQtYm90J30s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9S
QVRPUicKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICAgICAgJ2luY29tcGxldGVfcmVzdWx0cyc6IEZhbHNlCi0gICAgICAgICAgICB9Ci0gICAg
ICAgICkpCi0gICAgXQotCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9y
ZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKLQotICAgIGFzc2VydCByZXR1cm5j
b2RlID09IDAKLSAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVh
bF90cmFmZmljKQotCi1kZWYgdGVzdF9zeW5jaHJvbml6ZV9pZ25vcmVfdW50cnVzdGVkX2NvbnRy
aWJ1dG9yKCk6Ci0gICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLnJl
Zl9nZXRfdHJ1c3RlZCwgKDQwNCwge30pKSwKICAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBS
ZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuc2VhcmNoLCAoCi0gICAgICAg
ICAgICAyMDAsCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2l0ZW1zJzogWwotICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnbnVtYmVyJzogMjMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWxzJzogW10sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICd1c2Vy
Jzogeydsb2dpbic6ICdncmFjZSd9LAotICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9h
c3NvY2lhdGlvbic6ICdDT05UUklCVVRPUicKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgJ2luY29tcGxldGVfcmVzdWx0cyc6IEZhbHNl
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICkpCisgICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0X29w
ZW4sICg0MDQsIHt9KSksCiAgICAgXQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMs
IHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKKyAgICBtZXRob2Rf
dGhyZXcsIGFjdHVhbF90cmFmZmljID0gdXBkYXRlX21pcnJvcl9yZWZzKAorICAgICAgICBwdWxs
X3JlcXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMKKyAgICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29k
ZSA9PSAwCisgICAgYXNzZXJ0IG5vdCBtZXRob2RfdGhyZXcKICAgICBhc3NlcnQgc2FtZV9tZW1i
ZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQogCi1kZWYgdGVzdF9zeW5jaHJv
bml6ZV9pZ25vcmVfcHVsbF9yZXF1ZXN0X2Zyb21fZm9yaygpOgorZGVmIHRlc3RfdXBkYXRlX21p
cnJvcl9yZWZzX2lnbm9yZV91bnRydXN0ZWRfY29udHJpYnV0b3IoKToKKyAgICBwdWxsX3JlcXVl
c3QgPSB7CisgICAgICAgICdudW1iZXInOiA0NSwKKyAgICAgICAgJ2hlYWQnOiB7J3NoYSc6ICdh
YmMxMjMnfSwKKyAgICAgICAgJ2xhYmVscyc6IFtdLAorICAgICAgICAndXNlcic6IHsnbG9naW4n
OiAnc3RlcGhlbm1jZ3J1ZXInfSwKKyAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT05U
UklCVVRPUicsCisgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAorICAgIH0KICAgICBleHBlY3Rl
ZF90cmFmZmljID0gWwogICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19s
aW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0X3RydXN0ZWQsICg0MDQsIHt9KSksCiAg
ICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAg
KFJlcXVlc3RzLnNlYXJjaCwgKAotICAgICAgICAgICAgMjAwLAotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICdpdGVtcyc6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgJ251bWJlcic6IDIzLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2xh
YmVscyc6IFtdLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6IE5vbmUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAndXNlcic6IHsnbG9naW4nOiAnZ3JhY2UnfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICdhdXRob3JfYXNzb2NpYXRpb24nOiAnQ09MTEFCT1JBVE9SJwot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAg
ICAnaW5jb21wbGV0ZV9yZXN1bHRzJzogRmFsc2UKLSAgICAgICAgICAgIH0KLSAgICAgICAgKSks
Ci0gICAgICAgIChSZXF1ZXN0cy5wcl9kZXRhaWxzLCAoMjAwLAotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICdoZWFkJzogewotICAgICAgICAgICAgICAgICAgICAncmVwbyc6IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICdmdWxsX25hbWUnOiAnc29tZS1vdGhlci1vcmcvdGVzdC1y
ZXBvJwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICApKSwKKyAgICAgICAgKFJlcXVlc3RzLnJlZl9nZXRfb3BlbiwgKDQwNCwg
e30pKSwKICAgICBdCiAKLSAgICByZXR1cm5jb2RlLCBhY3R1YWxfdHJhZmZpYywgcmVtb3RlX3Jl
ZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmljKQorICAgIG1ldGhvZF90aHJldywgYWN0
dWFsX3RyYWZmaWMgPSB1cGRhdGVfbWlycm9yX3JlZnMoCisgICAgICAgIHB1bGxfcmVxdWVzdCwg
ZXhwZWN0ZWRfdHJhZmZpYworICAgICkKIAotICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKKyAg
ICBhc3NlcnQgbm90IG1ldGhvZF90aHJldwogICAgIGFzc2VydCBzYW1lX21lbWJlcnMoZXhwZWN0
ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMpCiAKLWRlZiB0ZXN0X3N5bmNocm9uaXplX3N5bmNf
dHJ1c3RlZF9jb250cmlidXRvcigpOgorZGVmIHRlc3RfdXBkYXRlX21pcnJvcl9yZWZzX3RydXN0
ZWRfY29udHJpYnV0b3IoKToKKyAgICBwdWxsX3JlcXVlc3QgPSB7CisgICAgICAgICdudW1iZXIn
OiA0NSwKKyAgICAgICAgJ2hlYWQnOiB7J3NoYSc6ICdhYmMxMjMnfSwKKyAgICAgICAgIyB1c2Vy
IGhlcmUgaXMgYSBjb250cmlidXRvciAodW50cnVzdGVkKSwgYnV0IHRoZSBpc3N1ZQorICAgICAg
ICAjIGhhcyBiZWVuIGxhYmVsbGVkIGFzIHNhZmUuCisgICAgICAgICdsYWJlbHMnOiBbeyduYW1l
JzogJ3NhZmUgZm9yIHByZXZpZXcnfV0sCisgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdIZXhj
bGVzJ30sCisgICAgICAgICdhdXRob3JfYXNzb2NpYXRpb24nOiAnQ09OVFJJQlVUT1InLAorICAg
ICAgICAnY2xvc2VkX2F0JzogTm9uZSwKKyAgICB9CiAgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsK
ICAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAg
ICAoUmVxdWVzdHMucmVmX2dldF90cnVzdGVkLCAoNDA0LCB7fSkpLAogICAgICAgICAoUmVxdWVz
dHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5yZWZf
Z2V0X29wZW4sICg0MDQsIHt9KSksCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9u
c2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9f
bGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCks
Ci0gICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAg
ICAgKFJlcXVlc3RzLnNlYXJjaCwgKAotICAgICAgICAgICAgMjAwLAotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICdpdGVtcyc6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgJ251bWJlcic6IDIzLAotICAgICAgICAgICAgICAgICAgICAgICAg
IyB1c2VyIGhlcmUgaXMgYSBjb250cmlidXRvciAodW50cnVzdGVkKSwgYnV0IHRoZSBpc3N1ZQot
ICAgICAgICAgICAgICAgICAgICAgICAgIyBoYXMgYmVlbiBsYWJlbGxlZCBhcyBzYWZlLgotICAg
ICAgICAgICAgICAgICAgICAgICAgJ2xhYmVscyc6IFt7J25hbWUnOiAnc2FmZSBmb3IgcHJldmll
dyd9XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAotICAgICAg
ICAgICAgICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2luJzogJ0hleGNsZXMnfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICdhdXRob3JfYXNzb2NpYXRpb24nOiAnQ09OVFJJQlVUT1InCi0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICdp
bmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQotICAgICAgICAgICAgfQotICAgICAgICApKSwKLSAg
ICAgICAgKFJlcXVlc3RzLnByX2RldGFpbHMsICgyMDAsCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgJ2hlYWQnOiB7Ci0gICAgICAgICAgICAgICAgICAgICdyZXBvJzogewotICAgICAg
ICAgICAgICAgICAgICAgICAgJ2Z1bGxfbmFtZSc6ICd0ZXN0LW9yZy90ZXN0LXJlcG8nCi0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICkpLAogICAgICAgICAoUmVxdWVzdHMucmVmX2NyZWF0ZV9vcGVuLCAoMjAwLCB7fSkpLAor
ICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCiAgICAgICAg
IChSZXF1ZXN0cy5yZWZfY3JlYXRlX3RydXN0ZWQsICgyMDAsIHt9KSksCi0gICAgICAgIChSZXF1
ZXN0cy5kZXBsb3ltZW50X2dldCwgKDIwMCwgW10pKSwKLSAgICAgICAgKFJlcXVlc3RzLmRlcGxv
eW1lbnRfY3JlYXRlLCAoMjAwLCB7fSkpCiAgICAgXQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFs
X3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKKyAg
ICBtZXRob2RfdGhyZXcsIGFjdHVhbF90cmFmZmljID0gdXBkYXRlX21pcnJvcl9yZWZzKAorICAg
ICAgICBwdWxsX3JlcXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMKKyAgICApCiAKLSAgICBhc3NlcnQg
cmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IG5vdCBtZXRob2RfdGhyZXcKICAgICBhc3NlcnQg
c2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQogCiBkZWYgdGVz
dF9zeW5jaHJvbml6ZV9zeW5jX2JvdF93aXRoX2xhYmVsKCk6CisgICAgcHVsbF9yZXF1ZXN0ID0g
eworICAgICAgICAnbnVtYmVyJzogNDUsCisgICAgICAgICdoZWFkJzogeydzaGEnOiAnYWJjMTIz
J30sCisgICAgICAgICMgdXNlciBoZXJlIGlzIGEgYm90IHdoaWNoIGlzIG5vcm1hbGx5IG5vdCBt
aXJyb3JlZCwKKyAgICAgICAgIyBidXQgdGhlIGlzc3VlIGhhcyBiZWVuIGxhYmVsbGVkIGFzIHNh
ZmUuCisgICAgICAgICdsYWJlbHMnOiBbeyduYW1lJzogJ3NhZmUgZm9yIHByZXZpZXcnfV0sCisg
ICAgICAgICd1c2VyJzogeydsb2dpbic6ICdjaHJvbWl1bS13cHQtZXhwb3J0LWJvdCd9LAorICAg
ICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9SQVRPUicsCisgICAgICAgICdjbG9z
ZWRfYXQnOiBOb25lLAorICAgIH0KICAgICBleHBlY3RlZF90cmFmZmljID0gWwogICAgICAgICAo
UmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0
cy5yZWZfZ2V0X3RydXN0ZWQsICg0MDQsIHt9KSksCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0
ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLnJlZl9nZXRfb3Blbiwg
KDQwNCwge30pKSwKICAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGlt
aXQpLAotICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCi0g
ICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAg
KFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVz
dHMuc2VhcmNoLCAoCi0gICAgICAgICAgICAyMDAsCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgJ2l0ZW1zJzogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAnbnVtYmVyJzogMjMsCi0gICAgICAgICAgICAgICAgICAgICAgICAjIHVzZXIgaGVy
ZSBpcyBhIGJvdCB3aGljaCBpcyBub3JtYWxseSBub3QgbWlycm9yZWQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAjIGJ1dCB0aGUgaXNzdWUgaGFzIGJlZW4gbGFiZWxsZWQgYXMgc2FmZS4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICdsYWJlbHMnOiBbeyduYW1lJzogJ3NhZmUgZm9yIHByZXZp
ZXcnfV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdjaHJvbWl1bS13cHQtZXhwb3J0
LWJvdCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdD
T0xMQUJPUkFUT1InCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdLAot
ICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQotICAgICAgICAgICAg
fQotICAgICAgICApKSwKLSAgICAgICAgKFJlcXVlc3RzLnByX2RldGFpbHMsICgyMDAsCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2hlYWQnOiB7Ci0gICAgICAgICAgICAgICAgICAg
ICdyZXBvJzogewotICAgICAgICAgICAgICAgICAgICAgICAgJ2Z1bGxfbmFtZSc6ICd0ZXN0LW9y
Zy90ZXN0LXJlcG8nCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICkpLAogICAgICAgICAoUmVxdWVzdHMucmVmX2NyZWF0ZV9v
cGVuLCAoMjAwLCB7fSkpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5u
b19saW1pdCksCiAgICAgICAgIChSZXF1ZXN0cy5yZWZfY3JlYXRlX3RydXN0ZWQsICgyMDAsIHt9
KSksCi0gICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X2dldCwgKDIwMCwgW10pKSwKLSAgICAg
ICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfY3JlYXRlLCAoMjAwLCB7fSkpCiAgICAgXQogCi0gICAg
cmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhw
ZWN0ZWRfdHJhZmZpYykKKyAgICBtZXRob2RfdGhyZXcsIGFjdHVhbF90cmFmZmljID0gdXBkYXRl
X21pcnJvcl9yZWZzKAorICAgICAgICBwdWxsX3JlcXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMKKyAg
ICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IG5vdCBtZXRob2Rf
dGhyZXcKICAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90
cmFmZmljKQogCi1kZWYgdGVzdF9zeW5jaHJvbml6ZV91cGRhdGVfY29sbGFib3JhdG9yKCk6Citk
ZWYgdGVzdF91cGRhdGVfbWlycm9yX3JlZnNfdXBkYXRlX2NvbGxhYm9yYXRvcigpOgorICAgIHB1
bGxfcmVxdWVzdCA9IHsKKyAgICAgICAgJ251bWJlcic6IDQ1LAorICAgICAgICAnaGVhZCc6IHsn
c2hhJzogJ2FiYzEyMyd9LAorICAgICAgICAnbGFiZWxzJzogW10sCisgICAgICAgICd1c2VyJzog
eydsb2dpbic6ICdzdGVwaGVubWNncnVlcid9LAorICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9u
JzogJ0NPTExBQk9SQVRPUicsCisgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAorICAgIH0KICAg
ICBleHBlY3RlZF90cmFmZmljID0gWwogICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3Bv
bnNlcy5ub19saW1pdCksCi0gICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5v
X2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQp
LAotICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCi0gICAg
ICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJl
cXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMu
c2VhcmNoLCAoMjAwLAorICAgICAgICAoUmVxdWVzdHMucmVmX2dldF90cnVzdGVkLCAoCisgICAg
ICAgICAgICAyMDAsCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2l0ZW1zJzogWwot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnbnVtYmVyJzog
MjMsCi0gICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWxzJzogW10sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICd1
c2VyJzogeydsb2dpbic6ICdncmFjZSd9LAotICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhv
cl9hc3NvY2lhdGlvbic6ICdDT0xMQUJPUkFUT1InCi0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBG
YWxzZQorICAgICAgICAgICAgICAgICdvYmplY3QnOiB7J3NoYSc6ICdkZWYyMzQnfSwKICAgICAg
ICAgICAgIH0KICAgICAgICAgKSksCi0gICAgICAgIChSZXF1ZXN0cy5wcl9kZXRhaWxzLCAoMjAw
LAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAg
ICAgIChSZXF1ZXN0cy5yZWZfZ2V0X29wZW4sICgKKyAgICAgICAgICAgIDIwMCwKICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAnaGVhZCc6IHsKLSAgICAgICAgICAgICAgICAgICAgJ3Jl
cG8nOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnZnVsbF9uYW1lJzogJ3Rlc3Qtb3JnL3Rl
c3QtcmVwbycKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAnb2JqZWN0JzogeydzaGEnOiAnZGVmMjM0J30sCiAgICAgICAgICAgICB9CiAg
ICAgICAgICkpLAotICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9nZXQsICgyMDAsIFtdKSks
CisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKICAgICAg
ICAgKFJlcXVlc3RzLnJlZl91cGRhdGVfb3BlbiwgKDIwMCwge30pKSwKKyAgICAgICAgKFJlcXVl
c3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAogICAgICAgICAoUmVxdWVzdHMucmVm
X3VwZGF0ZV90cnVzdGVkLCAoMjAwLCB7fSkpLAotICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVu
dF9jcmVhdGUsICgyMDAsIHt9KSkKICAgICBdCi0gICAgcmVmcyA9IHsKLSAgICAgICAgJ3JlZnMv
cHVsbC8yMy9oZWFkJzogJ0hFQUQnLAotICAgICAgICAncmVmcy9wcnMtb3Blbi8yMyc6ICdIRUFE
ficsCi0gICAgICAgICdyZWZzL3Bycy10cnVzdGVkLWZvci1wcmV2aWV3LzIzJzogJ0hFQUR+Jwot
ICAgIH0KIAotICAgIHJldHVybmNvZGUsIGFjdHVhbF90cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5
bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMsIHJlZnMpCisgICAgbWV0aG9kX3RocmV3LCBhY3R1
YWxfdHJhZmZpYyA9IHVwZGF0ZV9taXJyb3JfcmVmcygKKyAgICAgICAgcHVsbF9yZXF1ZXN0LCBl
eHBlY3RlZF90cmFmZmljCisgICAgKQogCi0gICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAorICAg
IGFzc2VydCBub3QgbWV0aG9kX3RocmV3CiAgICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3Rl
ZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKIAogZGVmIHRlc3Rfc3luY2hyb25pemVfdXBkYXRl
X21lbWJlcigpOgorICAgIHB1bGxfcmVxdWVzdCA9IHsKKyAgICAgICAgJ251bWJlcic6IDQ1LAor
ICAgICAgICAnaGVhZCc6IHsnc2hhJzogJ2FiYzEyMyd9LAorICAgICAgICAnbGFiZWxzJzogW10s
CisgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdqZ3JhaGFtJ30sCisgICAgICAgICdhdXRob3Jf
YXNzb2NpYXRpb24nOiAnTUVNQkVSJywKKyAgICAgICAgJ2Nsb3NlZF9hdCc6IE5vbmUsCisgICAg
fQogICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBbCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwg
UmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25z
ZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19s
aW1pdCksCi0gICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwK
LSAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAotICAgICAg
ICAoUmVxdWVzdHMuc2VhcmNoLCAoMjAwLAorICAgICAgICAoUmVxdWVzdHMucmVmX2dldF90cnVz
dGVkLCAoCisgICAgICAgICAgICAyMDAsCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
J2l0ZW1zJzogWwotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAnbnVtYmVyJzogMjMsCi0gICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWxzJzogW10sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdncmFjZSd9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdNRU1CRVInCi0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3Vs
dHMnOiBGYWxzZQorICAgICAgICAgICAgICAgICdvYmplY3QnOiB7J3NoYSc6ICdkZWYyMzQnfSwK
ICAgICAgICAgICAgIH0KICAgICAgICAgKSksCi0gICAgICAgIChSZXF1ZXN0cy5wcl9kZXRhaWxz
LCAoMjAwLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCks
CisgICAgICAgIChSZXF1ZXN0cy5yZWZfZ2V0X29wZW4sICgKKyAgICAgICAgICAgIDIwMCwKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAnaGVhZCc6IHsKLSAgICAgICAgICAgICAgICAg
ICAgJ3JlcG8nOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnZnVsbF9uYW1lJzogJ3Rlc3Qt
b3JnL3Rlc3QtcmVwbycKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAnb2JqZWN0JzogeydzaGEnOiAnZGVmMjM0J30sCiAgICAgICAgICAg
ICB9CiAgICAgICAgICkpLAotICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9nZXQsICgyMDAs
IFt7J3NvbWUnOiAnZGVwbG95bWVudCd9XSkpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUs
IFJlc3BvbnNlcy5ub19saW1pdCksCiAgICAgICAgIChSZXF1ZXN0cy5yZWZfdXBkYXRlX29wZW4s
ICgyMDAsIHt9KSksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xp
bWl0KSwKICAgICAgICAgKFJlcXVlc3RzLnJlZl91cGRhdGVfdHJ1c3RlZCwgKDIwMCwge30pKQog
ICAgIF0KLSAgICByZWZzID0gewotICAgICAgICAncmVmcy9wdWxsLzIzL2hlYWQnOiAnSEVBRCcs
Ci0gICAgICAgICdyZWZzL3Bycy1vcGVuLzIzJzogJ0hFQUR+JywKLSAgICAgICAgJ3JlZnMvcHJz
LXRydXN0ZWQtZm9yLXByZXZpZXcvMjMnOiAnSEVBRH4nCi0gICAgfQogCi0gICAgcmV0dXJuY29k
ZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJh
ZmZpYywgcmVmcykKKyAgICBtZXRob2RfdGhyZXcsIGFjdHVhbF90cmFmZmljID0gdXBkYXRlX21p
cnJvcl9yZWZzKAorICAgICAgICBwdWxsX3JlcXVlc3QsIGV4cGVjdGVkX3RyYWZmaWMKKyAgICAp
CiAKLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IG5vdCBtZXRob2RfdGhy
ZXcKICAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFm
ZmljKQogCi1kZWYgdGVzdF9zeW5jaHJvbml6ZV9kZWxldGVfY29sbGFib3JhdG9yKCk6Ci0gICAg
ZXhwZWN0ZWRfdHJhZmZpYyA9IFsKLSAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25z
ZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuc2VhcmNoLCAoMjAwLAotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICdpdGVtcyc6IFsKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgJ251bWJlcic6IDIzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ2xhYmVscyc6IFtdLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6
ICcyMDE5LTEwLTMwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6
ICdncmFjZSd9LAotICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6
ICdDT0xMQUJPUkFUT1InCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBd
LAotICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQotICAgICAgICAg
ICAgfQotICAgICAgICApKQotICAgIF0KLSAgICByZWZzID0gewotICAgICAgICAncmVmcy9wdWxs
LzIzL2hlYWQnOiAnSEVBRCcsCi0gICAgICAgICdyZWZzL3Bycy1vcGVuLzIzJzogJ0hFQUR+JywK
LSAgICAgICAgJ3JlZnMvcHJzLXRydXN0ZWQtZm9yLXByZXZpZXcvMjMnOiAnSEVBRH4nCitkZWYg
dGVzdF91cGRhdGVfbWlycm9yX3JlZnNfZGVsZXRlX2NvbGxhYm9yYXRvcigpOgorICAgIHB1bGxf
cmVxdWVzdCA9IHsKKyAgICAgICAgJ251bWJlcic6IDQ1LAorICAgICAgICAnaGVhZCc6IHsnc2hh
JzogJ2FiYzEyMyd9LAorICAgICAgICAnbGFiZWxzJzogW10sCisgICAgICAgICd1c2VyJzogeyds
b2dpbic6ICdzdGVwaGVubWNncnVlcid9LAorICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzog
J0NPTExBQk9SQVRPUicsCisgICAgICAgICdjbG9zZWRfYXQnOiAyMDE5LTEwLTMwLAogICAgIH0K
LQotICAgIHJldHVybmNvZGUsIGFjdHVhbF90cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9u
aXplKGV4cGVjdGVkX3RyYWZmaWMsIHJlZnMpCi0KLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAw
Ci0gICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZp
YykKLSAgICBhc3NlcnQgbGlzdChyZW1vdGVfcmVmcykgPT0gWydyZWZzL3B1bGwvMjMvaGVhZCdd
Ci0KLQotZGVmIHRlc3Rfc3luY2hyb25pemVfZGVsZXRlX29sZF9wcigpOgotICAgICMgTm8gcHVs
bCByZXF1ZXN0cyBmcm9tIHRoZSBzZWFyY2gsIGJ1dCBvbmUgb3V0c3RhbmRpbmcgY2xvc2VkIFBS
LgogICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBbCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwg
UmVzcG9uc2VzLm5vX2xpbWl0KSwKLSAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25z
ZXMubm9fbGltaXQpLAotICAgICAgICAoUmVxdWVzdHMuc2VhcmNoLCAoMjAwLAorICAgICAgICAo
UmVxdWVzdHMucmVmX2dldF90cnVzdGVkLCAoCisgICAgICAgICAgICAyMDAsCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgJ2l0ZW1zJzogW10sCi0gICAgICAgICAgICAgICAgJ2luY29t
cGxldGVfcmVzdWx0cyc6IEZhbHNlCisgICAgICAgICAgICAgICAgJ29iamVjdCc6IHsnc2hhJzog
J2RlZjIzNCd9LAogICAgICAgICAgICAgfQogICAgICAgICApKSwKLSAgICAgICAgKFJlcXVlc3Rz
LnByX2RldGFpbHMsICgyMDAsCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2Vz
Lm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLnJlZl9nZXRfb3BlbiwgKAorICAgICAgICAg
ICAgMjAwLAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdudW1iZXInOiAyMywKLSAg
ICAgICAgICAgICAgICAnbGFiZWxzJzogW10sCi0gICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6
ICcyMDE5LTEwLTI4JywKLSAgICAgICAgICAgICAgICAnaGVhZCc6IHsKLSAgICAgICAgICAgICAg
ICAgICAgJ3JlcG8nOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAnZnVsbF9uYW1lJzogJ3Rl
c3Qtb3JnL3Rlc3QtcmVwbycKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAnb2JqZWN0JzogeydzaGEnOiAnZGVmMjM0J30sCiAgICAgICAg
ICAgICB9CiAgICAgICAgICkpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNl
cy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfZGVsZXRlX3RydXN0ZWQsICgyMDQs
IE5vbmUpKSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQp
LAorICAgICAgICAoUmVxdWVzdHMucmVmX2RlbGV0ZV9vcGVuLCAoMjA0LCBOb25lKSksCiAgICAg
XQotICAgIHJlZnMgPSB7Ci0gICAgICAgICdyZWZzL3B1bGwvMjMvaGVhZCc6ICdIRUFEJywKLSAg
ICAgICAgJ3JlZnMvcHJzLW9wZW4vMjMnOiAnSEVBRH4nLAotICAgICAgICAncmVmcy9wcnMtdHJ1
c3RlZC1mb3ItcHJldmlldy8yMyc6ICdIRUFEficKLSAgICB9CiAKLSAgICByZXR1cm5jb2RlLCBh
Y3R1YWxfdHJhZmZpYywgcmVtb3RlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmlj
LCByZWZzKQotCi0gICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotICAgIGFzc2VydCBzYW1lX21l
bWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMpCi0gICAgYXNzZXJ0IGxpc3Qo
cmVtb3RlX3JlZnMpID09IFsncmVmcy9wdWxsLzIzL2hlYWQnXQotCi0KLWRlZiB0ZXN0X2RldGVj
dF9pZ25vcmVfdW5rbm93bl9lbnYoKToKLSAgICBleHBlY3RlZF9naXRodWJfdHJhZmZpYyA9IFtd
Ci0gICAgZXhwZWN0ZWRfcHJldmlld190cmFmZmljID0gW10KLSAgICBldmVudCA9IHsKLSAgICAg
ICAgJ2RlcGxveW1lbnQnOiB7Ci0gICAgICAgICAgICAnaWQnOiAyNDYwMSwKLSAgICAgICAgICAg
ICdlbnZpcm9ubWVudCc6ICdnaG9zdHMnLAotICAgICAgICAgICAgJ3NoYSc6ICczMjMyJwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuY29kZSwgYWN0dWFsX2dpdGh1Yl90cmFmZmljLCBh
Y3R1YWxfcHJldmlld190cmFmZmljID0gZGV0ZWN0KAotICAgICAgICBldmVudCwgZXhwZWN0ZWRf
Z2l0aHViX3RyYWZmaWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYworICAgIG1ldGhvZF90aHJl
dywgYWN0dWFsX3RyYWZmaWMgPSB1cGRhdGVfbWlycm9yX3JlZnMoCisgICAgICAgIHB1bGxfcmVx
dWVzdCwgZXhwZWN0ZWRfdHJhZmZpYwogICAgICkKIAotICAgIGFzc2VydCByZXR1cm5jb2RlID09
IDAKLSAgICBhc3NlcnQgbGVuKGFjdHVhbF9naXRodWJfdHJhZmZpYykgPT0gMAotICAgIGFzc2Vy
dCBsZW4oYWN0dWFsX3ByZXZpZXdfdHJhZmZpYykgPT0gMAorICAgIGFzc2VydCBub3QgbWV0aG9k
X3RocmV3CisgICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxf
dHJhZmZpYykKIAotZGVmIHRlc3RfZGV0ZWN0X2ZhaWxfc2VhcmNoX3Rocm90dGxlZCgpOgorZGVm
IHRlc3RfZGVwbG95X2ZhaWxfcmF0ZV9saW1pdGVkKCk6CiAgICAgZXhwZWN0ZWRfZ2l0aHViX3Ry
YWZmaWMgPSBbCiAgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgKAogICAgICAgICAgICAgMjAw
LApAQCAtNzg4LDk5ICs1NzYsMTA3IEBAIGRlZiB0ZXN0X2RldGVjdF9mYWlsX3NlYXJjaF90aHJv
dHRsZWQoKToKICAgICAgICAgKSkKICAgICBdCiAgICAgZXhwZWN0ZWRfcHJldmlld190cmFmZmlj
ID0gW10KLSAgICBldmVudCA9IHsKLSAgICAgICAgJ2RlcGxveW1lbnQnOiB7Ci0gICAgICAgICAg
ICAnaWQnOiAyNDYwMSwKLSAgICAgICAgICAgICdlbnZpcm9ubWVudCc6ICd3cHQtcHJldmlldy00
NScsCi0gICAgICAgICAgICAnc2hhJzogJzMyMzInCi0gICAgICAgIH0KLSAgICB9CiAKLSAgICBy
ZXR1cm5jb2RlLCBhY3R1YWxfZ2l0aHViX3RyYWZmaWMsIGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMg
PSBkZXRlY3QoCi0gICAgICAgIGV2ZW50LCBleHBlY3RlZF9naXRodWJfdHJhZmZpYywgZXhwZWN0
ZWRfcHJldmlld190cmFmZmljCisgICAgcHJfbnVtID0gNDUKKyAgICByZXZpc2lvbiA9ICJhYmNk
ZWYxMjMiCisgICAgbWV0aG9kX3RocmV3LCBhY3R1YWxfZ2l0aHViX3RyYWZmaWMsIGFjdHVhbF9w
cmV2aWV3X3RyYWZmaWMgPSBkZXBsb3koCisgICAgICAgIHByX251bSwgcmV2aXNpb24sIGV4cGVj
dGVkX2dpdGh1Yl90cmFmZmljLCBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMKICAgICApCiAKLSAg
ICBhc3NlcnQgcmV0dXJuY29kZSA9PSAxCisgICAgYXNzZXJ0IG1ldGhvZF90aHJldwogICAgIGFz
c2VydCBhY3R1YWxfZ2l0aHViX3RyYWZmaWMgPT0gZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMKICAg
ICBhc3NlcnQgYWN0dWFsX3ByZXZpZXdfdHJhZmZpYyA9PSBleHBlY3RlZF9wcmV2aWV3X3RyYWZm
aWMKIAotZGVmIHRlc3RfZGV0ZWN0X3N1Y2Nlc3MoKToKK2RlZiB0ZXN0X2RlcGxveV9zdWNjZXNz
KCk6CisgICAgcHJfbnVtID0gNDUKKyAgICByZXZpc2lvbiA9ICdhYmNkZWYxMjMnCisKICAgICBl
eHBlY3RlZF9naXRodWJfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBS
ZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9nZXQsICgy
MDAsIFtdKSksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0
KSwKKyAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfY3JlYXRlLCAoMjAwLCB7CisgICAgICAg
ICAgICAnaWQnOiAyNDYwMSwKKyAgICAgICAgICAgICdzaGEnOiByZXZpc2lvbiwKKyAgICAgICAg
ICAgICdlbnZpcm9ubWVudCc6ICd3cHQtcHJldmlldy00NScsCisgICAgICAgIH0pKSwKICAgICAg
ICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAogICAgICAgICAoUmVx
dWVzdHMuZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX3BlbmRpbmcsICgyMDAsIHt9KSksCiAgICAg
ICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKICAgICAgICAgKFJl
cXVlc3RzLmRlcGxveW1lbnRfc3RhdHVzX2NyZWF0ZV9zdWNjZXNzLCAoMjAwLCB7fSkpCiAgICAg
XQogICAgIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyA9IFsKLSAgICAgICAgKFJlcXVlc3RzLnBy
ZXZpZXcsICgyMDAsIDMyMzIpKQorICAgICAgICAoUmVxdWVzdHMucHJldmlldywgKDIwMCwgcmV2
aXNpb24pKQogICAgIF0KLSAgICBldmVudCA9IHsKLSAgICAgICAgJ2RlcGxveW1lbnQnOiB7Ci0g
ICAgICAgICAgICAnaWQnOiAyNDYwMSwKLSAgICAgICAgICAgICdlbnZpcm9ubWVudCc6ICd3cHQt
cHJldmlldy00NScsCi0gICAgICAgICAgICAnc2hhJzogJzMyMzInCi0gICAgICAgIH0KLSAgICB9
CiAKLSAgICByZXR1cm5jb2RlLCBhY3R1YWxfZ2l0aHViX3RyYWZmaWMsIGFjdHVhbF9wcmV2aWV3
X3RyYWZmaWMgPSBkZXRlY3QoCi0gICAgICAgIGV2ZW50LCBleHBlY3RlZF9naXRodWJfdHJhZmZp
YywgZXhwZWN0ZWRfcHJldmlld190cmFmZmljCisgICAgbWV0aG9kX3RocmV3LCBhY3R1YWxfZ2l0
aHViX3RyYWZmaWMsIGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMgPSBkZXBsb3koCisgICAgICAgIHBy
X251bSwgcmV2aXNpb24sIGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljLCBleHBlY3RlZF9wcmV2aWV3
X3RyYWZmaWMKICAgICApCiAKLSAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0
IG5vdCBtZXRob2RfdGhyZXcKICAgICBhc3NlcnQgYWN0dWFsX2dpdGh1Yl90cmFmZmljID09IGV4
cGVjdGVkX2dpdGh1Yl90cmFmZmljCiAgICAgYXNzZXJ0IGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMg
PT0gZXhwZWN0ZWRfcHJldmlld190cmFmZmljCiAKLWRlZiB0ZXN0X2RldGVjdF90aW1lb3V0X21p
c3NpbmcoKToKK2RlZiB0ZXN0X2RlcGxveV90aW1lb3V0X21pc3NpbmcoKToKKyAgICBwcl9udW0g
PSA0NQorICAgIHJldmlzaW9uID0gJ2FiY2RlZjEyMycKKwogICAgIGV4cGVjdGVkX2dpdGh1Yl90
cmFmZmljID0gWworICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1p
dCksCisgICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X2dldCwgKDIwMCwgW10pKSwKKyAgICAg
ICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVx
dWVzdHMuZGVwbG95bWVudF9jcmVhdGUsICgyMDAsIHsKKyAgICAgICAgICAgICdpZCc6IDI0NjAx
LAorICAgICAgICAgICAgJ3NoYSc6IHJldmlzaW9uLAorICAgICAgICAgICAgJ2Vudmlyb25tZW50
JzogJ3dwdC1wcmV2aWV3LTQ1JywKKyAgICAgICAgfSkpLAogICAgICAgICAoUmVxdWVzdHMuZ2V0
X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCiAgICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50
X3N0YXR1c19jcmVhdGVfcGVuZGluZywgKDIwMCwge30pKSwKICAgICAgICAgKFJlcXVlc3RzLmdl
dF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAogICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVu
dF9zdGF0dXNfY3JlYXRlX2Vycm9yLCAoMjAwLCB7fSkpCiAgICAgXQogICAgIGV4cGVjdGVkX3By
ZXZpZXdfdHJhZmZpYyA9IFsKLSAgICAgICAgKFJlcXVlc3RzLnByZXZpZXcsICg0MDQsIHt9KSkK
KyAgICAgICAgKFJlcXVlc3RzLnByZXZpZXcsICg0MDQsICIiKSkKICAgICBdCi0gICAgZXZlbnQg
PSB7Ci0gICAgICAgICdkZXBsb3ltZW50JzogewotICAgICAgICAgICAgJ2lkJzogMjQ2MDEsCi0g
ICAgICAgICAgICAnZW52aXJvbm1lbnQnOiAnd3B0LXByZXZpZXctNDUnLAotICAgICAgICAgICAg
J3NoYSc6ICczMjMyJwotICAgICAgICB9Ci0gICAgfQogCi0gICAgcmV0dXJuY29kZSwgYWN0dWFs
X2dpdGh1Yl90cmFmZmljLCBhY3R1YWxfcHJldmlld190cmFmZmljID0gZGV0ZWN0KAotICAgICAg
ICBldmVudCwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZp
YworICAgIG1ldGhvZF90aHJldywgYWN0dWFsX2dpdGh1Yl90cmFmZmljLCBhY3R1YWxfcHJldmll
d190cmFmZmljID0gZGVwbG95KAorICAgICAgICBwcl9udW0sIHJldmlzaW9uLCBleHBlY3RlZF9n
aXRodWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFmZmljCiAgICAgKQogCi0gICAgYXNz
ZXJ0IHJldHVybmNvZGUgPT0gMQorICAgIGFzc2VydCBtZXRob2RfdGhyZXcKICAgICBhc3NlcnQg
ZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMgPT0gYWN0dWFsX2dpdGh1Yl90cmFmZmljCiAgICAgcGlu
Z19jb3VudCA9IGxlbihhY3R1YWxfcHJldmlld190cmFmZmljKQogICAgIGFzc2VydCBwaW5nX2Nv
dW50ID4gMAogICAgIGFzc2VydCBhY3R1YWxfcHJldmlld190cmFmZmljID09IGV4cGVjdGVkX3By
ZXZpZXdfdHJhZmZpYyAqIHBpbmdfY291bnQKIAotZGVmIHRlc3RfZGV0ZWN0X3RpbWVvdXRfd3Jv
bmdfcmV2aXNpb24oKToKK2RlZiB0ZXN0X2RlcGxveV90aW1lb3V0X3dyb25nX3JldmlzaW9uKCk6
CisgICAgcHJfbnVtID0gNDUKKyAgICByZXZpc2lvbiA9ICdhYmNkZWYxMjMnCisKICAgICBleHBl
Y3RlZF9naXRodWJfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNw
b25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9nZXQsICgyMDAs
IFtdKSksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwK
KyAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfY3JlYXRlLCAoMjAwLCB7CisgICAgICAgICAg
ICAnaWQnOiAyNDYwMSwKKyAgICAgICAgICAgICdzaGEnOiByZXZpc2lvbiwKKyAgICAgICAgICAg
ICdlbnZpcm9ubWVudCc6ICd3cHQtcHJldmlldy00NScsCisgICAgICAgIH0pKSwKICAgICAgICAg
KFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAogICAgICAgICAoUmVxdWVz
dHMuZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX3BlbmRpbmcsICgyMDAsIHt9KSksCiAgICAgICAg
IChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKICAgICAgICAgKFJlcXVl
c3RzLmRlcGxveW1lbnRfc3RhdHVzX2NyZWF0ZV9lcnJvciwgKDIwMCwge30pKQogICAgIF0KICAg
ICBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMgPSBbCi0gICAgICAgIChSZXF1ZXN0cy5wcmV2aWV3
LCAoMjAwLCAxMjM0KSkKKyAgICAgICAgIyB3cHRwci5saXZlIGhhcyB0aGUgd3JvbmcgcmV2aXNp
b24gZGVwbG95ZWQKKyAgICAgICAgKFJlcXVlc3RzLnByZXZpZXcsICgyMDAsICdnaGlqa2w0NTYn
KSkKICAgICBdCi0gICAgZXZlbnQgPSB7Ci0gICAgICAgICdkZXBsb3ltZW50JzogewotICAgICAg
ICAgICAgJ2lkJzogMjQ2MDEsCi0gICAgICAgICAgICAnZW52aXJvbm1lbnQnOiAnd3B0LXByZXZp
ZXctNDUnLAotICAgICAgICAgICAgJ3NoYSc6ICczMjMyJwotICAgICAgICB9Ci0gICAgfQogCi0g
ICAgcmV0dXJuY29kZSwgYWN0dWFsX2dpdGh1Yl90cmFmZmljLCBhY3R1YWxfcHJldmlld190cmFm
ZmljID0gZGV0ZWN0KAotICAgICAgICBldmVudCwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMsIGV4
cGVjdGVkX3ByZXZpZXdfdHJhZmZpYworICAgIG1ldGhvZF90aHJldywgYWN0dWFsX2dpdGh1Yl90
cmFmZmljLCBhY3R1YWxfcHJldmlld190cmFmZmljID0gZGVwbG95KAorICAgICAgICBwcl9udW0s
IHJldmlzaW9uLCBleHBlY3RlZF9naXRodWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFm
ZmljCiAgICAgKQogCi0gICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMQorICAgIGFzc2VydCBtZXRo
b2RfdGhyZXcKICAgICBhc3NlcnQgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMgPT0gYWN0dWFsX2dp
dGh1Yl90cmFmZmljCiAgICAgcGluZ19jb3VudCA9IGxlbihhY3R1YWxfcHJldmlld190cmFmZmlj
KQogICAgIGFzc2VydCBwaW5nX2NvdW50ID4gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93ZWJzaXRlX2J1aWxkLnNoIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93ZWJz
aXRlX2J1aWxkLnNoCmluZGV4IGY2YjI2MzEwYWFiY2UyMDBmYzBkNzc4NDRmNWYzYWQyOGRlMGJi
N2YuLmZjMjU1YWU4M2YyMjE5ZDNlMzJhODU5ZjBkNjM3NDVlZDY4MmI0MzYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvd2Vi
c2l0ZV9idWlsZC5zaAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL3dlYnNpdGVfYnVpbGQuc2gKQEAgLTE0LDcgKzE0LDcgQEAgcmVtb3Rl
X3VybD1odHRwczovLyR7REVQTE9ZX1RPS0VOfUBnaXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQuZ2l0CiAKIGZ1bmN0aW9uIGpzb25fcHJvcGVydHkgewogICBjYXQgJHsxfSB8IFwKLSAg
ICBweXRob24gLWMgImltcG9ydCBqc29uLCBzeXM7IHByaW50IGpzb24ubG9hZChzeXMuc3RkaW4p
LmdldChcIiR7Mn1cIiwgXCJcIikiCisgICAgcHl0aG9uIC1jICJpbXBvcnQganNvbiwgc3lzOyBw
cmludChqc29uLmxvYWQoc3lzLnN0ZGluKS5nZXQoXCIkezJ9XCIsIFwiXCIpKSIKIH0KIAogZnVu
Y3Rpb24gaXNfcHVsbF9yZXF1ZXN0IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24vRG9ja2Vy
ZmlsZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
ZG9ja2VyL2RvY3VtZW50YXRpb24vRG9ja2VyZmlsZQppbmRleCBlMDFmOThlNGQ0ZGYwZTdmNzUw
MWJiNWQ3MDU3ZDFkNTI4MjIxYmRlLi4wMWVhMGJkOTViZjZkMTQ2OGQ0YTM4YWZhMTIxZjlmY2Ew
MWYzZTk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2RvY2tlci9kb2N1bWVudGF0aW9uL0RvY2tlcmZpbGUKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvZG9jdW1l
bnRhdGlvbi9Eb2NrZXJmaWxlCkBAIC0xLDMgKzEsMyBAQAotRlJPTSBweXRob246Mi1zdHJldGNo
CitGUk9NIHB5dGhvbjozLjgtYnVzdGVyCiAKLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0
IGluc3RhbGwgLS15ZXMgZ2l0CitSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxs
IC0teWVzIGdpdCB2aXJ0dWFsZW52CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9naXRpZ25vcmUucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9n
aXRpZ25vcmUucHkKaW5kZXggMmEyNzYxNTE4NjYzY2E5NDkwMTFmYTNkYzdkZDdmYzM5MGY3OTM2
Yy4uZGJlODNjMjdlZWU3OGQ0YmUyNDg4ZmFhYjRlMGY3MTY2ZTJjOTliYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25v
cmUvZ2l0aWdub3JlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL2dpdGlnbm9yZS5weQpAQCAtMTU1LDcgKzE1NSwxMCBA
QCBjbGFzcyBQYXRoRmlsdGVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYubGl0ZXJhbHNfZGlyID0g
ZGVmYXVsdGRpY3QoZGljdCkgICMgdHlwZTogRGljdFtPcHRpb25hbFtieXRlc10sIERpY3RbYnl0
ZXMsIExpc3RbVHVwbGVbYm9vbCwgUGF0dGVybltieXRlc11dXV1dCiAgICAgICAgIHNlbGYucGF0
dGVybnNfZmlsZSA9IFtdICAjIHR5cGU6IExpc3RbVHVwbGVbVHVwbGVbYm9vbCwgUGF0dGVyblti
eXRlc11dLCBMaXN0W1R1cGxlW2Jvb2wsIFBhdHRlcm5bYnl0ZXNdXV1dXQogICAgICAgICBzZWxm
LnBhdHRlcm5zX2RpciA9IFtdICAjIHR5cGU6IExpc3RbVHVwbGVbVHVwbGVbYm9vbCwgUGF0dGVy
bltieXRlc11dLCBMaXN0W1R1cGxlW2Jvb2wsIFBhdHRlcm5bYnl0ZXNdXV1dXQotICAgICAgICBz
ZWxmLmNhY2hlID0gY2FjaGUgb3Ige30gICMgdHlwZTogTXV0YWJsZU1hcHBpbmdbYnl0ZXMsIGJv
b2xdCisKKyAgICAgICAgaWYgY2FjaGUgaXMgTm9uZToKKyAgICAgICAgICAgIGNhY2hlID0ge30K
KyAgICAgICAgc2VsZi5jYWNoZSA9IGNhY2hlICAjIHR5cGU6IE11dGFibGVNYXBwaW5nW2J5dGVz
LCBib29sXQogCiAgICAgICAgIGlmIGV4dHJhcyBpcyBOb25lOgogICAgICAgICAgICAgZXh0cmFz
ID0gW10KQEAgLTI0Niw3ICsyNDksNyBAQCBjbGFzcyBQYXRoRmlsdGVyKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5jYWNoZVtwYXRoXToKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKGl0ZW0pCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICBmb3IgcnVsZV9kaXIgaW4gW05vbmUs
IGRpcnBhdGhdOgorICAgICAgICAgICAgICAgICAgICBmb3IgcnVsZV9kaXIgaW4gW05vbmUsIGRp
cnBhdGggaWYgZGlycGF0aCAhPSBiIi4iIGVsc2UgYiIiXToKICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIG5hbWUgaW4gbGl0ZXJhbHMuZ2V0KHJ1bGVfZGlyLCBlbXB0eSk6CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXhjbHVkZSA9IGxpdGVyYWxzW3J1bGVfZGlyXVtuYW1lXQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBhbnkocnVsZS5tYXRjaChuYW1lIGlmIG5h
bWVfb25seSBlbHNlIHBhdGgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvbGludC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9saW50LnB5CmluZGV4IDM4MjI1
ZWM5NTg4NjJlYzc5MzY1NjAxMzIyNmNjMDNkNDY5Yjg1M2QuLjE4NzJlNjI3MjU5OTNiZDE2ZWU3
YzU3MjM2YjQwZGQwMDA3MzFlNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9saW50LnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9saW50LnB5CkBAIC02
NTUsNiArNjU1LDE2IEBAIGRlZiBjaGVja19wYXJzZWQocmVwb19yb290LCBwYXRoLCBmKToKICAg
ICAgICAgaWYgaW5jb3JyZWN0X3BhdGgoInRlc3Rkcml2ZXItdmVuZG9yLmpzIiwgc3JjKToKICAg
ICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuVGVzdGRyaXZlclZlbmRvclBhdGguZXJyb3Io
cGF0aCkpCiAKKyAgICAgICAgc2NyaXB0X3BhdGggPSBOb25lCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHNjcmlwdF9wYXRoID0gdXJsc3BsaXQodXJsam9pbihzb3VyY2VfZmlsZS51cmwsIHNy
YykpLnBhdGgKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAjIFRoaXMg
aGFwcGVucyBpZiB0aGUgY29udGVudHMgb2Ygc3JjIGlzbid0IHNvbWV0aGluZyB0aGF0IGxvb2tz
IGxpa2UgYSBVUkwgdG8gUHl0aG9uCisgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIChzY3Jp
cHRfcGF0aCA9PSAiL2NvbW1vbi9yZWZ0ZXN0LXdhaXQuanMiIGFuZAorICAgICAgICAgICAgInJl
ZnRlc3Qtd2FpdCIgbm90IGluIHNvdXJjZV9maWxlLnJvb3QuYXR0cmliLmdldCgiY2xhc3MiLCAi
Iikuc3BsaXQoKSk6CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLk1pc3NpbmdSZWZ0
ZXN0V2FpdC5lcnJvcihwYXRoKSkKKwogICAgIHJldHVybiBlcnJvcnMKIAogY2xhc3MgQVNUQ2hl
Y2sod2l0aF9tZXRhY2xhc3MoYWJjLkFCQ01ldGEpKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9ydWxlcy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9ydWxl
cy5weQppbmRleCBmNmUyM2FlZjU4YWQzYTk3YTBiYThiZjU1MTRjYjgwMmYyZTBmMzFiLi5iMzg5
ZTNkOGYwODU0Y2MzNGM4NGU3Y2M5OGM3MDk2ZmVmZDJmMmVlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvcnVsZXMucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3J1bGVzLnB5CkBAIC0xOTcsNiArMTk3LDE0IEBAIGNsYXNzIE11bHRpcGxlVGVzdGhhcm5l
c3MoUnVsZSk6CiAgICAgIiIiCiAKIAorY2xhc3MgTWlzc2luZ1JlZnRlc3RXYWl0KFJ1bGUpOgor
ICAgIG5hbWUgPSAiTUlTU0lORy1SRUZURVNUV0FJVCIKKyAgICBkZXNjcmlwdGlvbiA9ICJNaXNz
aW5nIGBjbGFzcz1yZWZ0ZXN0LXdhaXRgIgorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICBlbnN1
cmUgdGVzdHMgdGhhdCBpbmNsdWRlIHJlZnRlc3Qtd2FpdC5qcyBhbHNvIHVzZSBjbGFzcz1yZWZ0
ZXN0LXdhaXQgb24gdGhlIHJvb3QgZWxlbWVudC4KKyAgICAiIiIKKworCiBjbGFzcyBNaXNzaW5n
VGVzdGhhcm5lc3NSZXBvcnQoUnVsZSk6CiAgICAgbmFtZSA9ICJNSVNTSU5HLVRFU1RIQVJORVNT
UkVQT1JUIgogICAgIGRlc2NyaXB0aW9uID0gIk1pc3NpbmcgYDxzY3JpcHQgc3JjPScvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz5gIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfbGludC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy90ZXN0X2xpbnQucHkKaW5kZXggNTVkYmJlOTJkZmMzZjRkZjg4YzU5NGNhMTYxMTZl
YjI3MTRlZGY3Zi4uNzk4ZGQ3Yjk0MzFkN2ZmNTI1NjgxYmNmMTRiZmUzNzU0Nzc5ODQwZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9saW50L3Rlc3RzL3Rlc3RfbGludC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9saW50LnB5CkBAIC02LDkg
KzYsMTMgQEAgaW1wb3J0IHN5cwogaW1wb3J0IG1vY2sKIGltcG9ydCBzaXgKIAotZnJvbSAuLi5s
b2NhbHBhdGhzIGltcG9ydCByZXBvX3Jvb3QKLWZyb20gLi4gaW1wb3J0IGxpbnQgYXMgbGludF9t
b2QKLWZyb20gLi5saW50IGltcG9ydCBmaWx0ZXJfaWdub3JlbGlzdF9lcnJvcnMsIHBhcnNlX2ln
bm9yZWxpc3QsIGxpbnQsIGNyZWF0ZV9wYXJzZXIKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19m
aWxlX18pCityb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCAiLi4iLCAi
Li4iLCAiLi4iKSkKK3N5cy5wYXRoLmluc2VydCgwLCByb290KQorCitmcm9tIHRvb2xzLmxvY2Fs
cGF0aHMgaW1wb3J0IHJlcG9fcm9vdAorZnJvbSB0b29scy5saW50IGltcG9ydCBsaW50IGFzIGxp
bnRfbW9kCitmcm9tIHRvb2xzLmxpbnQubGludCBpbXBvcnQgZmlsdGVyX2lnbm9yZWxpc3RfZXJy
b3JzLCBwYXJzZV9pZ25vcmVsaXN0LCBsaW50LCBjcmVhdGVfcGFyc2VyCiAKIF9kdW1teV9yZXBv
ID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICJkdW1teSIpCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbG9jYWxwYXRocy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbG9jYWxwYXRocy5weQppbmRleCA1MWFlY2VhNzcxMmEyZjkwYWIxNzc4ZDYy
ZmU4Yjc0ZDcyMjc4NWU2Li5hNzlhY2I4MmE1MGM1NWVjZTU4YmI2MDQwZjZiOWExOTgwOGM4YTJh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xvY2FscGF0aHMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9sb2NhbHBhdGhzLnB5CkBAIC0xMCw4ICsxMCwxMSBAQCBzeXMu
cGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJhdG9taWN3
cml0ZXMiKSkKIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgInRoaXJkX3Bh
cnR5IiwgImF0dHJzIiwgInNyYyIpKQogc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbiho
ZXJlLCAidGhpcmRfcGFydHkiLCAiZnVuY3NpZ3MiKSkKIHN5cy5wYXRoLmluc2VydCgwLCBvcy5w
YXRoLmpvaW4oaGVyZSwgInRoaXJkX3BhcnR5IiwgImh0bWw1bGliIikpCitzeXMucGF0aC5pbnNl
cnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJ6aXBwIikpCiBzeXMucGF0
aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJtb3JlLWl0ZXJ0
b29scyIpKQotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihoZXJlLCAidGhpcmRfcGFy
dHkiLCAicGx1Z2d5IikpCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0
aGlyZF9wYXJ0eSIsICJwYWNrYWdpbmciKSkKK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpv
aW4oaGVyZSwgInRoaXJkX3BhcnR5IiwgInBhdGhsaWIyIikpCitzeXMucGF0aC5pbnNlcnQoMCwg
b3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJwbHVnZ3kiLCAic3JjIikpCiBzeXMu
cGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJweSIpKQog
c3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihoZXJlLCAidGhpcmRfcGFydHkiLCAicHl0
ZXN0IikpCiBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0
eSIsICJweXRlc3QiLCAic3JjIikpCkBAIC0yMiw2ICsyNSw4IEBAIHN5cy5wYXRoLmluc2VydCgw
LCBvcy5wYXRoLmpvaW4oaGVyZSwgInRoaXJkX3BhcnR5IiwgImhwYWNrIikpCiBzeXMucGF0aC5p
bnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJoeXBlcmZyYW1lIikp
CiBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJj
ZXJ0aWZpIikpCiBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9w
YXJ0eSIsICJoeXBlciIpKQoraWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCA4KToKKyAgICBzeXMu
cGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJpbXBvcnRs
aWJfbWV0YWRhdGEiKSkKIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgIndl
YmRyaXZlciIpKQogc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihoZXJlLCAid3B0cnVu
bmVyIikpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvaXRlbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvaXRlbS5weQppbmRleCA5YTQzYTY4
ZjFmYmNjOTc3MTVjNTQ0NmI4MjNmMDIyNTk2ZDZjYjAxLi44NTdjODQ4NWRkMDI1NTIyOThlNDhm
YTlmYWUxNzY0NmM0YzAyZjQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2l0ZW0ucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9pdGVtLnB5
CkBAIC0xLDcgKzEsNyBAQAogaW1wb3J0IG9zLnBhdGgKIGZyb20gaW5zcGVjdCBpbXBvcnQgaXNh
YnN0cmFjdAogZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcywgd2l0aF9tZXRhY2xhc3MKLWZyb20g
c2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJscGFyc2UKK2Zyb20gc2l4
Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJscGFyc2UsIHBhcnNlX3FzCiBm
cm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3Rwcm9wZXJ0eQogCiBmcm9tIC51dGlscyBp
bXBvcnQgdG9fb3NfcGF0aApAQCAtMTA0LDcgKzEwNCw3IEBAIGNsYXNzIE1hbmlmZXN0SXRlbSh3
aXRoX21ldGFjbGFzcyhNYW5pZmVzdEl0ZW1NZXRhKSk6CiAKIAogY2xhc3MgVVJMTWFuaWZlc3RJ
dGVtKE1hbmlmZXN0SXRlbSk6Ci0gICAgX19zbG90c19fID0gKCJ1cmxfYmFzZSIsICJfdXJsIiwg
Il9leHRyYXMiKQorICAgIF9fc2xvdHNfXyA9ICgidXJsX2Jhc2UiLCAiX3VybCIsICJfZXh0cmFz
IiwgIl9mbGFncyIpCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwKICAgICAgICAgICAgICAgICAg
dGVzdHNfcm9vdCwgICMgdHlwZTogVGV4dApAQCAtMTIwLDYgKzEyMCw5IEBAIGNsYXNzIFVSTE1h
bmlmZXN0SXRlbShNYW5pZmVzdEl0ZW0pOgogICAgICAgICBhc3NlcnQgdXJsIGlzIE5vbmUgb3Ig
dXJsWzBdICE9ICIvIgogICAgICAgICBzZWxmLl91cmwgPSB1cmwKICAgICAgICAgc2VsZi5fZXh0
cmFzID0gZXh0cmFzCisgICAgICAgIHBhcnNlZF91cmwgPSB1cmxwYXJzZShzZWxmLnVybCkKKyAg
ICAgICAgc2VsZi5fZmxhZ3MgPSAoc2V0KHBhcnNlZF91cmwucGF0aC5yc3BsaXQoIi8iLCAxKVsx
XS5zcGxpdCgiLiIpWzE6LTFdKSB8CisgICAgICAgICAgICAgICAgICAgICAgIHNldChwYXJzZV9x
cyhwYXJzZWRfdXJsLnF1ZXJ5KS5nZXQoIndwdF9mbGFncyIsIFtdKSkpCiAKICAgICBAcHJvcGVy
dHkKICAgICBkZWYgaWQoc2VsZik6CkBAIC0xMzgsMjIgKzE0MSwxOSBAQCBjbGFzcyBVUkxNYW5p
ZmVzdEl0ZW0oTWFuaWZlc3RJdGVtKToKICAgICBAcHJvcGVydHkKICAgICBkZWYgaHR0cHMoc2Vs
Zik6CiAgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAotICAgICAgICBmbGFncyA9IHNldCh1cmxw
YXJzZShzZWxmLnVybCkucGF0aC5yc3BsaXQoIi8iLCAxKVsxXS5zcGxpdCgiLiIpWzE6LTFdKQot
ICAgICAgICByZXR1cm4gImh0dHBzIiBpbiBmbGFncyBvciAic2VydmljZXdvcmtlciIgaW4gZmxh
Z3MKKyAgICAgICAgcmV0dXJuICJodHRwcyIgaW4gc2VsZi5fZmxhZ3Mgb3IgInNlcnZpY2V3b3Jr
ZXIiIGluIHNlbGYuX2ZsYWdzCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaDIoc2VsZik6CiAg
ICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAotICAgICAgICBmbGFncyA9IHNldCh1cmxwYXJzZShz
ZWxmLnVybCkucGF0aC5yc3BsaXQoIi8iLCAxKVsxXS5zcGxpdCgiLiIpWzE6LTFdKQotICAgICAg
ICByZXR1cm4gImgyIiBpbiBmbGFncworICAgICAgICByZXR1cm4gImgyIiBpbiBzZWxmLl9mbGFn
cwogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHN1YmRvbWFpbihzZWxmKToKICAgICAgICAgIyB0
eXBlOiAoKSAtPiBib29sCi0gICAgICAgIGZsYWdzID0gc2V0KHVybHBhcnNlKHNlbGYudXJsKS5w
YXRoLnJzcGxpdCgiLyIsIDEpWzFdLnNwbGl0KCIuIilbMTotMV0pCiAgICAgICAgICMgTm90ZTog
dGhpcyBpcyBjdXJyZW50bHkgaGFyZC1jb2RlZCB0byBjaGVjayBmb3IgYHd3d2AsIHJhdGhlciB0
aGFuCiAgICAgICAgICMgYWxsIHBvc3NpYmxlIHZhbGlkIHN1YmRvbWFpbnMuIEl0IGNhbiBiZSBl
eHRlbmRlZCBpZiBuZWVkZWQuCi0gICAgICAgIHJldHVybiAid3d3IiBpbiBmbGFncworICAgICAg
ICByZXR1cm4gInd3dyIgaW4gc2VsZi5fZmxhZ3MKIAogICAgIGRlZiB0b19qc29uKHNlbGYpOgog
ICAgICAgICAjIHR5cGU6ICgpIC0+IFR1cGxlW09wdGlvbmFsW1RleHRdLCBEaWN0W0FueSwgQW55
XV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvanNvbmxpYi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvanNvbmxpYi5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
N2YwN2MzYWQyYTJkZDQzNTY3NThhYzg0YWQ1NGNmMTk4Yjc2Mjk2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC9qc29ubGliLnB5CkBAIC0wLDAgKzEsMTQ0IEBACitpbXBvcnQgcmUKK2ltcG9ydCBqc29u
CisKK2Zyb20gc2l4IGltcG9ydCBQWTMKKworCitNWVBZID0gRmFsc2UKK2lmIE1ZUFk6CisgICAg
IyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVuZGVyIE15cHkuCisgICAgZnJvbSB0eXBp
bmcgaW1wb3J0IEFueSwgQW55U3RyLCBDYWxsYWJsZSwgRGljdCwgSU8sIFRleHQKKworCitfX2Fs
bF9fID0gWyJsb2FkIiwgImR1bXBfbG9jYWwiLCAiZHVtcF9sb2NhbCIsICJkdW1wX2Rpc3QiLCAi
ZHVtcHNfZGlzdCJdCisKKwordHJ5OgorICAgIGltcG9ydCB1anNvbgorZXhjZXB0IEltcG9ydEVy
cm9yOgorICAgIGhhc191anNvbiA9IEZhbHNlCitlbHNlOgorICAgIGhhc191anNvbiA9IFRydWUK
KworIworIyBsb2FkCisjCisKK2lmIGhhc191anNvbjoKKyAgICBsb2FkID0gdWpzb24ubG9hZCAg
IyB0eXBlOiBDYWxsYWJsZVtbSU9bQW55U3RyXV0sIEFueV0KKworZWxzZToKKyAgICBsb2FkID0g
anNvbi5sb2FkCisKKworIworIyBsb2FkcworIworCitpZiBoYXNfdWpzb246CisgICAgbG9hZHMg
PSB1anNvbi5sb2FkcyAgIyB0eXBlOiBDYWxsYWJsZVtbQW55U3RyXSwgQW55XQorCitlbHNlOgor
ICAgIGxvYWRzID0ganNvbi5sb2FkcworCisKKyMKKyMgZHVtcC9kdW1wc19sb2NhbCBvcHRpb25z
IGZvciBzb21lIGxpYnJhcmllcworIworX3Vqc29uX2R1bXBfbG9jYWxfa3dhcmdzID0geworICAg
ICdlbnN1cmVfYXNjaWknOiBGYWxzZSwKKyAgICAnZXNjYXBlX2ZvcndhcmRfc2xhc2hlcyc6IEZh
bHNlLAorICAgICdpbmRlbnQnOiAxLAorfSAgIyB0eXBlOiBEaWN0W3N0ciwgQW55XQorCitpZiBQ
WTM6CisgICAgX3Vqc29uX2R1bXBfbG9jYWxfa3dhcmdzWydyZWplY3RfYnl0ZXMnXSA9IFRydWUK
KworCitfanNvbl9kdW1wX2xvY2FsX2t3YXJncyA9IHsKKyAgICAnZW5zdXJlX2FzY2lpJzogRmFs
c2UsCisgICAgJ2luZGVudCc6IDEsCisgICAgJ3NlcGFyYXRvcnMnOiAoJywnLCAnOiAnKSwKK30g
ICMgdHlwZTogRGljdFtzdHIsIEFueV0KKworCisjCisjIGR1bXBfbG9jYWwgKGZvciBsb2NhbCwg
bm9uLWRpc3RyaWJ1dGVkIHVzYWdlIG9mIEpTT04pCisjCisKK2lmIGhhc191anNvbjoKKyAgICBk
ZWYgZHVtcF9sb2NhbChvYmosIGZwKToKKyAgICAgICAgIyB0eXBlOiAoQW55LCBJT1tzdHJdKSAt
PiBOb25lCisgICAgICAgIHJldHVybiB1anNvbi5kdW1wKG9iaiwgZnAsICoqX3Vqc29uX2R1bXBf
bG9jYWxfa3dhcmdzKQorCitlbHNlOgorICAgIGRlZiBkdW1wX2xvY2FsKG9iaiwgZnApOgorICAg
ICAgICAjIHR5cGU6IChBbnksIElPW3N0cl0pIC0+IE5vbmUKKyAgICAgICAgcmV0dXJuIGpzb24u
ZHVtcChvYmosIGZwLCAqKl9qc29uX2R1bXBfbG9jYWxfa3dhcmdzKQorCisKKyMKKyMgZHVtcHNf
bG9jYWwgKGZvciBsb2NhbCwgbm9uLWRpc3RyaWJ1dGVkIHVzYWdlIG9mIEpTT04pCisjCisKK2lm
IGhhc191anNvbjoKKyAgICBkZWYgZHVtcHNfbG9jYWwob2JqKToKKyAgICAgICAgIyB0eXBlOiAo
QW55KSAtPiBUZXh0CisgICAgICAgIHJldHVybiB1anNvbi5kdW1wcyhvYmosICoqX3Vqc29uX2R1
bXBfbG9jYWxfa3dhcmdzKQorCitlbHNlOgorICAgIGRlZiBkdW1wc19sb2NhbChvYmopOgorICAg
ICAgICAjIHR5cGU6IChBbnkpIC0+IFRleHQKKyAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMob2Jq
LCAqKl9qc29uX2R1bXBfbG9jYWxfa3dhcmdzKQorCisKKyMKKyMgZHVtcC9kdW1wc19kaXN0IChm
b3IgZGlzdHJpYnV0ZWQgdXNhZ2Ugb2YgSlNPTiB3aGVyZSBmaWxlcyBzaG91bGQgc2FmZWx5IHJv
dW5kdHJpcCkKKyMKKworX3Vqc29uX2R1bXBfZGlzdF9rd2FyZ3MgPSB7CisgICAgJ3NvcnRfa2V5
cyc6IFRydWUsCisgICAgJ2luZGVudCc6IDEsCit9ICAjIHR5cGU6IERpY3Rbc3RyLCBBbnldCisK
K2lmIFBZMzoKKyAgICBfdWpzb25fZHVtcF9kaXN0X2t3YXJnc1sncmVqZWN0X2J5dGVzJ10gPSBU
cnVlCisKK19qc29uX2R1bXBfZGlzdF9rd2FyZ3MgPSB7CisgICAgJ3NvcnRfa2V5cyc6IFRydWUs
CisgICAgJ2luZGVudCc6IDEsCisgICAgJ3NlcGFyYXRvcnMnOiAoJywnLCAnOiAnKSwKK30gICMg
dHlwZTogRGljdFtzdHIsIEFueV0KKworCitpZiBoYXNfdWpzb246CisgICAgaWYgdWpzb24uZHVt
cHMoW10sIGluZGVudD0xKSA9PSAiW10iOgorICAgICAgICAjIG9wdGltaXN0aWNhbGx5IHNlZSBp
ZiBodHRwczovL2dpdGh1Yi5jb20vdWx0cmFqc29uL3VsdHJhanNvbi9pc3N1ZXMvNDI5IGlzIGZp
eGVkCisgICAgICAgIGRlZiBfdWpzb25fZml4dXAocyk6CisgICAgICAgICAgICAjIHR5cGU6IChz
dHIpIC0+IHN0cgorICAgICAgICAgICAgcmV0dXJuIHMKKyAgICBlbHNlOgorICAgICAgICBfdWpz
b25fZml4dXBfcmUgPSByZS5jb21waWxlKHIiKFtcW3tdKVtcblx4MjBdKyhbfVxdXSkiKQorCisg
ICAgICAgIGRlZiBfdWpzb25fZml4dXAocyk6CisgICAgICAgICAgICAjIHR5cGU6IChzdHIpIC0+
IHN0cgorICAgICAgICAgICAgcmV0dXJuIF91anNvbl9maXh1cF9yZS5zdWIoCisgICAgICAgICAg
ICAgICAgbGFtYmRhIG06IG0uZ3JvdXAoMSkgKyBtLmdyb3VwKDIpLAorICAgICAgICAgICAgICAg
IHMKKyAgICAgICAgICAgICkKKworICAgIGRlZiBkdW1wX2Rpc3Qob2JqLCBmcCk6CisgICAgICAg
ICMgdHlwZTogKEFueSwgSU9bc3RyXSkgLT4gTm9uZQorICAgICAgICBmcC53cml0ZShfdWpzb25f
Zml4dXAodWpzb24uZHVtcHMob2JqLCAqKl91anNvbl9kdW1wX2Rpc3Rfa3dhcmdzKSkpCisKKyAg
ICBkZWYgZHVtcHNfZGlzdChvYmopOgorICAgICAgICAjIHR5cGU6IChBbnkpIC0+IFRleHQKKyAg
ICAgICAgcmV0dXJuIF91anNvbl9maXh1cCh1anNvbi5kdW1wcyhvYmosICoqX3Vqc29uX2R1bXBf
ZGlzdF9rd2FyZ3MpKQorZWxzZToKKyAgICBkZWYgZHVtcF9kaXN0KG9iaiwgZnApOgorICAgICAg
ICAjIHR5cGU6IChBbnksIElPW3N0cl0pIC0+IE5vbmUKKyAgICAgICAganNvbi5kdW1wKG9iaiwg
ZnAsICoqX2pzb25fZHVtcF9kaXN0X2t3YXJncykKKworICAgIGRlZiBkdW1wc19kaXN0KG9iaik6
CisgICAgICAgICMgdHlwZTogKEFueSkgLT4gVGV4dAorICAgICAgICByZXR1cm4ganNvbi5kdW1w
cyhvYmosICoqX2pzb25fZHVtcF9kaXN0X2t3YXJncykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbG9nLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVz
dC9sb2cucHkKaW5kZXggOWUyYWQ3NDA4MWU0YTFiMzhiOWMzYzNiYTYxZDQ5YmUyZTgxNTFmZC4u
NjU1MWMyYjVmN2NjMGY2MWE4NWVmNWZmYjRiYmM0NjZhNTg1YjFhYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9s
b2cucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC9sb2cucHkKQEAgLTEsMTUgKzEsMTAgQEAKIGltcG9ydCBsb2dnaW5nCi1p
bXBvcnQgc3lzCiAKIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJtYW5pZmVzdCIpCiAKLWRl
ZiBzZXR1cCgpOgorZGVmIGVuYWJsZV9kZWJ1Z19sb2dnaW5nKCk6CiAgICAgIyB0eXBlOiAoKSAt
PiBOb25lCiAgICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuREVCVUcpCi0gICAgaGFuZGxlciA9
IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcihzeXMuc3Rkb3V0KQotICAgIGZvcm1hdHRlciA9IGxvZ2dp
bmcuRm9ybWF0dGVyKGxvZ2dpbmcuQkFTSUNfRk9STUFULCBOb25lKQotICAgIGhhbmRsZXIuc2V0
Rm9ybWF0dGVyKGZvcm1hdHRlcikKLSAgICBsb2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQogCiBk
ZWYgZ2V0X2xvZ2dlcigpOgogICAgICMgdHlwZTogKCkgLT4gbG9nZ2luZy5Mb2dnZXIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvbWFuaWZlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L21hbmlmZXN0LnB5CmluZGV4IDQ0OWNkMjQ1YWNiYzU5
OTM4OWE3NmNkNzFmMWY4YWUyOTMyMzA2NmIuLjEyM2YwNDUxODc0Yzk0OGUzODQ1YjExZjAwNGZi
ZWE1N2Q3ODg5OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbWFuaWZlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5w
eQpAQCAtMSw3ICsxLDcgQEAKIGltcG9ydCBpbwogaW1wb3J0IGl0ZXJ0b29scwotaW1wb3J0IGpz
b24KIGltcG9ydCBvcworaW1wb3J0IHN5cwogZnJvbSBhdG9taWN3cml0ZXMgaW1wb3J0IGF0b21p
Y193cml0ZQogZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQogZnJvbSBtdWx0aXByb2Nlc3Npbmcg
aW1wb3J0IFBvb2wsIGNwdV9jb3VudApAQCAtMTMsNiArMTMsNyBAQCBmcm9tIHNpeCBpbXBvcnQg
KAogICAgIHN0cmluZ190eXBlcywKICkKIAorZnJvbSAuIGltcG9ydCBqc29ubGliCiBmcm9tIC4g
aW1wb3J0IHZjcwogZnJvbSAuaXRlbSBpbXBvcnQgKENvbmZvcm1hbmNlQ2hlY2tlclRlc3QsCiAg
ICAgICAgICAgICAgICAgICAgQ3Jhc2hUZXN0LApAQCAtNDUsMTEgKzQ2LDYgQEAgaWYgTVlQWToK
ICAgICBmcm9tIHR5cGluZyBpbXBvcnQgVHlwZQogICAgIGZyb20gdHlwaW5nIGltcG9ydCBVbmlv
bgogCi10cnk6Ci0gICAgaW1wb3J0IHVqc29uCi0gICAgZmFzdF9qc29uID0gdWpzb24KLWV4Y2Vw
dCBJbXBvcnRFcnJvcjoKLSAgICBmYXN0X2pzb24gPSBqc29uICAjIHR5cGU6IGlnbm9yZQogCiBD
VVJSRU5UX1ZFUlNJT04gPSA4ICAjIHR5cGU6IGludAogCkBAIC0xNzgsNiArMTc0LDggQEAgY2xh
c3MgTWFuaWZlc3Qob2JqZWN0KToKICAgICAgICAgY29uc3RydWN0ZWQgaW4gdGhlIGNhc2Ugd2Ug
YXJlIG5vdCB1cGRhdGluZyBhIHBhdGgsIGJ1dCB0aGUgYWJzZW5jZSBvZiBhbiBpdGVtIGZyb20K
ICAgICAgICAgdGhlIGl0ZXJhdG9yIG1heSBiZSB1c2VkIHRvIHJlbW92ZSBkZWZ1bmN0IGVudHJp
ZXMgZnJvbSB0aGUgbWFuaWZlc3QuIiIiCiAKKyAgICAgICAgbG9nZ2VyID0gZ2V0X2xvZ2dlcigp
CisKICAgICAgICAgY2hhbmdlZCA9IEZhbHNlCiAKICAgICAgICAgIyBDcmVhdGUgbG9jYWwgdmFy
aWFibGUgcmVmZXJlbmNlcyB0byB0aGVzZSBkaWN0cyBzbyB3ZSBhdm9pZCB0aGUKQEAgLTIyNiwy
MCArMjI0LDM0IEBAIGNsYXNzIE1hbmlmZXN0KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAg
IHRvX3VwZGF0ZS5hcHBlbmQoc291cmNlX2ZpbGUpCiAKICAgICAgICAgaWYgdG9fdXBkYXRlOgor
ICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJDb21wdXRpbmcgbWFuaWZlc3QgdXBkYXRlIGZvciAl
cyBpdGVtcyIgJSBsZW4odG9fdXBkYXRlKSkKICAgICAgICAgICAgIGNoYW5nZWQgPSBUcnVlCiAK
KworICAgICAgICAjIDI1IGl0ZW1zIHdhcyBkZXJpdmVkIGV4cGVyaW1lbnRhbGx5ICgyMDIwLTAx
KSB0byBiZSBhcHByb3hpbWF0ZWx5IHRoZQorICAgICAgICAjIHBvaW50IGF0IHdoaWNoIGl0IGlz
IHF1aWNrZXIgdG8gY3JlYXRlIGEgUG9vbCBhbmQgcGFyYWxsZWxpemUgdXBkYXRlLgorICAgICAg
ICBwb29sID0gTm9uZQogICAgICAgICBpZiBwYXJhbGxlbCBhbmQgbGVuKHRvX3VwZGF0ZSkgPiAy
NSBhbmQgY3B1X2NvdW50KCkgPiAxOgotICAgICAgICAgICAgIyAyNSBkZXJpdmVkIGV4cGVyaW1l
bnRhbGx5ICgyMDIwLTAxKSB0byBiZSBhcHByb3hpbWF0ZWx5Ci0gICAgICAgICAgICAjIHRoZSBw
b2ludCBhdCB3aGljaCBpdCBpcyBxdWlja2VyIHRvIGNyZWF0ZSBQb29sIGFuZAotICAgICAgICAg
ICAgIyBwYXJhbGxlbGl6ZSB0aGlzCi0gICAgICAgICAgICBwb29sID0gUG9vbCgpCisgICAgICAg
ICAgICAjIE9uIFB5dGhvbiAzIG9uIFdpbmRvd3MsIHVzaW5nID49IE1BWElNVU1fV0FJVF9PQkpF
Q1RTIHByb2Nlc3NlcworICAgICAgICAgICAgIyBjYXVzZXMgYSBjcmFzaCBpbiB0aGUgbXVsdGlw
cm9jZXNzaW5nIG1vZHVsZS4gV2hpbHN0IHRoaXMgZW51bQorICAgICAgICAgICAgIyBjYW4gdGVj
aG5pY2FsbHkgaGF2ZSBhbnkgdmFsdWUsIGl0IGlzIHVzdWFsbHkgNjQuIEZvciBzYWZldHksCisg
ICAgICAgICAgICAjIHJlc3RyaWN0IG1hbmlmZXN0IHJlZ2VuZXJhdGlvbiB0byA0OCBwcm9jZXNz
ZXMgb24gV2luZG93cy4KKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICMgU2VlIGh0dHBzOi8v
YnVncy5weXRob24ub3JnL2lzc3VlMjY5MDMgYW5kIGh0dHBzOi8vYnVncy5weXRob24ub3JnL2lz
c3VlNDAyNjMKKyAgICAgICAgICAgIHByb2Nlc3NlcyA9IGNwdV9jb3VudCgpCisgICAgICAgICAg
ICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIiBhbmQgcHJvY2Vzc2VzID4gNDg6CisgICAgICAg
ICAgICAgICAgcHJvY2Vzc2VzID0gNDgKKyAgICAgICAgICAgIHBvb2wgPSBQb29sKHByb2Nlc3Nl
cykKIAogICAgICAgICAgICAgIyBjaHVua3NpemUgc2V0ID4gMSB3aGVuIG1vcmUgdGhhbiAxMDAw
MCB0ZXN0cywgYmVjYXVzZQogICAgICAgICAgICAgIyBjaHVua2luZyBpcyBhIG5ldC1nYWluIG9u
Y2Ugd2UgZ2V0IHRvIHZlcnkgbGFyZ2UgbnVtYmVycwogICAgICAgICAgICAgIyBvZiBpdGVtcyAo
YWdhaW4sIGV4cGVyaW1lbnRhbGx5LCAyMDIwLTAxKQorICAgICAgICAgICAgY2h1bmtzaXplID0g
bWF4KDEsIGxlbih0b191cGRhdGUpIC8vIDEwMDAwKQorICAgICAgICAgICAgbG9nZ2VyLmRlYnVn
KCJEb2luZyBhIG11bHRpcHJvY2Vzc2VkIHVwZGF0ZS4gQ1BVIGNvdW50OiAlcywgIgorICAgICAg
ICAgICAgICAgICJwcm9jZXNzZXM6ICVzLCBjaHVua3NpemU6ICVzIiAlIChjcHVfY291bnQoKSwg
cHJvY2Vzc2VzLCBjaHVua3NpemUpKQogICAgICAgICAgICAgcmVzdWx0cyA9IHBvb2wuaW1hcF91
bm9yZGVyZWQoY29tcHV0ZV9tYW5pZmVzdF9pdGVtcywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRvX3VwZGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNodW5rc2l6ZT1tYXgoMSwgbGVuKHRvX3VwZGF0ZSkgLy8gMTAwMDAp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVua3NpemU9Y2h1
bmtzaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICAjIHR5
cGU6IEl0ZXJhdG9yW1R1cGxlW1R1cGxlW1RleHQsIC4uLl0sIFRleHQsIFNldFtNYW5pZmVzdEl0
ZW1dLCBUZXh0XV0KICAgICAgICAgZWxpZiBQWTM6CiAgICAgICAgICAgICByZXN1bHRzID0gbWFw
KGNvbXB1dGVfbWFuaWZlc3RfaXRlbXMsIHRvX3VwZGF0ZSkKQEAgLTI1MSw2ICsyNjMsMTEgQEAg
Y2xhc3MgTWFuaWZlc3Qob2JqZWN0KToKICAgICAgICAgICAgIGRhdGFbbmV3X3R5cGVdW3JlbF9w
YXRoX3BhcnRzXSA9IG1hbmlmZXN0X2l0ZW1zCiAgICAgICAgICAgICBkYXRhW25ld190eXBlXS5o
YXNoZXNbcmVsX3BhdGhfcGFydHNdID0gZmlsZV9oYXNoCiAKKyAgICAgICAgIyBNYWtlIHN1cmUg
dG8gdGVybWluYXRlIHRoZSBQb29sLCB0byBhdm9pZCBoYW5ncyBvbiBQeXRob24gMy4KKyAgICAg
ICAgIyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLmh0
bWwjbXVsdGlwcm9jZXNzaW5nLnBvb2wuUG9vbAorICAgICAgICBpZiBwb29sIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgcG9vbC50ZXJtaW5hdGUoKQorCiAgICAgICAgIGlmIHJlbWFpbmluZ19t
YW5pZmVzdF9wYXRoczoKICAgICAgICAgICAgIGNoYW5nZWQgPSBUcnVlCiAgICAgICAgICAgICBm
b3IgcmVsX3BhdGhfcGFydHMgaW4gcmVtYWluaW5nX21hbmlmZXN0X3BhdGhzOgpAQCAtMzU0LDcg
KzM3MSw3IEBAIGRlZiBfbG9hZChsb2dnZXIsICAjIHR5cGU6IExvZ2dlcgogICAgICAgICB0cnk6
CiAgICAgICAgICAgICB3aXRoIGlvLm9wZW4obWFuaWZlc3QsICJyIiwgZW5jb2Rpbmc9InV0Zi04
IikgYXMgZjoKICAgICAgICAgICAgICAgICBydiA9IE1hbmlmZXN0LmZyb21fanNvbih0ZXN0c19y
b290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhc3RfanNvbi5s
b2FkKGYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb25saWIu
bG9hZChmKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlcz10
eXBlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsZWVfb3du
c19vYmo9VHJ1ZSkKICAgICAgICAgZXhjZXB0IElPRXJyb3I6CkBAIC0zNjQsNyArMzgxLDcgQEAg
ZGVmIF9sb2FkKGxvZ2dlciwgICMgdHlwZTogTG9nZ2VyCiAgICAgICAgICAgICByZXR1cm4gTm9u
ZQogICAgIGVsc2U6CiAgICAgICAgIHJ2ID0gTWFuaWZlc3QuZnJvbV9qc29uKHRlc3RzX3Jvb3Qs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhc3RfanNvbi5sb2FkKG1hbmlmZXN0
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbmxpYi5sb2FkKG1hbmlmZXN0
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZXM9dHlwZXMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxlZV9vd25zX29iaj1UcnVlKQogCkBAIC00NDks
NiArNDY2LDcgQEAgZGVmIF9sb2FkX2FuZF91cGRhdGUodGVzdHNfcm9vdCwgICMgdHlwZTogVGV4
dAogICAgICAgICB1cGRhdGUgPSBUcnVlCiAKICAgICBpZiByZWJ1aWxkIG9yIHVwZGF0ZToKKyAg
ICAgICAgbG9nZ2VyLmluZm8oIlVwZGF0aW5nIG1hbmlmZXN0IikKICAgICAgICAgZm9yIHJldHJ5
IGluIHJhbmdlKDIpOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHRyZWUgPSB2
Y3MuZ2V0X3RyZWUodGVzdHNfcm9vdCwgbWFuaWZlc3QsIG1hbmlmZXN0X3BhdGgsIGNhY2hlX3Jv
b3QsCkBAIC00NzYsNiArNDk0LDUgQEAgZGVmIHdyaXRlKG1hbmlmZXN0LCBtYW5pZmVzdF9wYXRo
KToKICAgICB3aXRoIGF0b21pY193cml0ZShtYW5pZmVzdF9wYXRoLCBvdmVyd3JpdGU9VHJ1ZSkg
YXMgZjoKICAgICAgICAgIyBVc2UgJywnIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgJywgJyBzZXBh
cmF0b3IgdG8gcHJldmVudCB0cmFpbGluZwogICAgICAgICAjIHNwYWNlczogaHR0cHM6Ly9kb2Nz
LnB5dGhvbi5vcmcvMi9saWJyYXJ5L2pzb24uaHRtbCNqc29uLmR1bXAKLSAgICAgICAganNvbi5k
dW1wKG1hbmlmZXN0LnRvX2pzb24oY2FsbGVyX293bnNfb2JqPVRydWUpLCBmLAotICAgICAgICAg
ICAgICAgICAgc29ydF9rZXlzPVRydWUsIGluZGVudD0xLCBzZXBhcmF0b3JzPSgnLCcsICc6ICcp
KQorICAgICAgICBqc29ubGliLmR1bXBfZGlzdChtYW5pZmVzdC50b19qc29uKGNhbGxlcl9vd25z
X29iaj1UcnVlKSwgZikKICAgICAgICAgZi53cml0ZSgiXG4iKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9zb3Vy
Y2VmaWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC9zb3VyY2VmaWxlLnB5CmluZGV4IDZlOTBhYzA1NDc1ZmM2NTZkZTIyYmVm
YzVhZGRjM2ZkNWY1MWU5MTMuLmNlODFjNjI1YmI4MDVhMzI5ZDljMWE5Yjc2NGIxNWQ5OGE1N2Ey
NmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3Qvc291cmNlZmlsZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHkKQEAg
LTE2NywyNyArMTY3LDI3IEBAIGRlZiBnbG9iYWxfdmFyaWFudF91cmwodXJsLCBzdWZmaXgpOgog
CiAKIGRlZiBfcGFyc2VfaHRtbChmKToKLSAgICAjIHR5cGU6IChCaW5hcnlJTykgLT4gRWxlbWVu
dFRyZWUuRWxlbWVudFRyZWUKKyAgICAjIHR5cGU6IChCaW5hcnlJTykgLT4gRWxlbWVudFRyZWUu
RWxlbWVudAogICAgIGRvYyA9IGh0bWw1bGliLnBhcnNlKGYsIHRyZWVidWlsZGVyPSJldHJlZSIs
IHVzZUNoYXJkZXQ9RmFsc2UpCiAgICAgaWYgTVlQWToKLSAgICAgICAgcmV0dXJuIGNhc3QoRWxl
bWVudFRyZWUuRWxlbWVudFRyZWUsIGRvYykKKyAgICAgICAgcmV0dXJuIGNhc3QoRWxlbWVudFRy
ZWUuRWxlbWVudCwgZG9jKQogICAgIHJldHVybiBkb2MKIAogZGVmIF9wYXJzZV94bWwoZik6Ci0g
ICAgIyB0eXBlOiAoQmluYXJ5SU8pIC0+IEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlCisgICAgIyB0
eXBlOiAoQmluYXJ5SU8pIC0+IEVsZW1lbnRUcmVlLkVsZW1lbnQKICAgICB0cnk6CiAgICAgICAg
ICMgcmFpc2VzIFZhbHVlRXJyb3Igd2l0aCBhbiB1bnN1cHBvcnRlZCBlbmNvZGluZywKICAgICAg
ICAgIyBQYXJzZUVycm9yIHdoZW4gdGhlcmUncyBhbiB1bmRlZmluZWQgZW50aXR5Ci0gICAgICAg
IHJldHVybiBFbGVtZW50VHJlZS5wYXJzZShmKQorICAgICAgICByZXR1cm4gRWxlbWVudFRyZWUu
cGFyc2UoZikuZ2V0cm9vdCgpCiAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBFbGVtZW50VHJlZS5Q
YXJzZUVycm9yKToKICAgICAgICAgZi5zZWVrKDApCi0gICAgICAgIHJldHVybiBFbGVtZW50VHJl
ZS5wYXJzZShmLCBYTUxQYXJzZXIuWE1MUGFyc2VyKCkpICAjIHR5cGU6IGlnbm9yZQorICAgICAg
ICByZXR1cm4gRWxlbWVudFRyZWUucGFyc2UoZiwgWE1MUGFyc2VyLlhNTFBhcnNlcigpKS5nZXRy
b290KCkgICMgdHlwZTogaWdub3JlCiAKIAogY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogICAg
IHBhcnNlcnMgPSB7dSJodG1sIjpfcGFyc2VfaHRtbCwKICAgICAgICAgICAgICAgIHUieGh0bWwi
Ol9wYXJzZV94bWwsCi0gICAgICAgICAgICAgICB1InN2ZyI6X3BhcnNlX3htbH0gICMgdHlwZTog
RGljdFtUZXh0LCBDYWxsYWJsZVtbQmluYXJ5SU9dLCBFbGVtZW50VHJlZS5FbGVtZW50VHJlZV1d
CisgICAgICAgICAgICAgICB1InN2ZyI6X3BhcnNlX3htbH0gICMgdHlwZTogRGljdFtUZXh0LCBD
YWxsYWJsZVtbQmluYXJ5SU9dLCBFbGVtZW50VHJlZS5FbGVtZW50XV0KIAogICAgIHJvb3RfZGly
X25vbl90ZXN0ID0ge3UiY29tbW9uIn0KIApAQCAtNDQ3LDcgKzQ0Nyw3IEBAIGNsYXNzIFNvdXJj
ZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgcm9vdChzZWxm
KToKLSAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtVbmlvbltFbGVtZW50VHJlZS5FbGVt
ZW50LCBFbGVtZW50VHJlZS5FbGVtZW50VHJlZV1dCisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0
aW9uYWxbRWxlbWVudFRyZWUuRWxlbWVudF0KICAgICAgICAgIiIiUmV0dXJuIGFuIEVsZW1lbnRU
cmVlIEVsZW1lbnQgZm9yIHRoZSByb290IG5vZGUgb2YgdGhlIGZpbGUgaWYgaXQgY29udGFpbnMK
ICAgICAgICAgbWFya3VwLCBvciBOb25lIGlmIGl0IGRvZXMgbm90IiIiCiAgICAgICAgIGlmIG5v
dCBzZWxmLm1hcmt1cF90eXBlOgpAQCAtNDYxLDEyICs0NjEsNyBAQCBjbGFzcyBTb3VyY2VGaWxl
KG9iamVjdCk6CiAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgICAg
IHJldHVybiBOb25lCiAKLSAgICAgICAgaWYgaGFzYXR0cih0cmVlLCAiZ2V0cm9vdCIpOgotICAg
ICAgICAgICAgcm9vdCA9IHRyZWUuZ2V0cm9vdCgpICAjIHR5cGU6IFVuaW9uW0VsZW1lbnRUcmVl
LkVsZW1lbnQsIEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlXQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgcm9vdCA9IHRyZWUKLQotICAgICAgICByZXR1cm4gcm9vdAorICAgICAgICByZXR1cm4g
dHJlZQogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiB0aW1lb3V0X25vZGVzKHNlbGYp
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X2l0ZW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfaXRlbS5w
eQppbmRleCA0ZjJmYzhmMDNmMmQ2MTFmMzVlMGEzNTJjNzA4MDYwNjA2ZmQxYTc3Li5kZDFjNGUy
MDA0ZGFjOWYyNTg0ZGRmMzRlN2UyNDA4Zjk4NzkxNGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rl
c3RfaXRlbS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfaXRlbS5weQpAQCAtMTM0LDMgKzEzNCwyNSBA
QCBkZWYgdGVzdF9pdGVtX3R5cGVzKCk6CiAgICAgZm9yIGtleSwgdmFsdWUgaW4gaXRlbV90eXBl
cy5pdGVtcygpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShrZXksIHN0cikKICAgICAgICAg
YXNzZXJ0IG5vdCBpbnNwZWN0LmlzYWJzdHJhY3QodmFsdWUpCisKKworZGVmIHRlc3Rfd3B0X2Zs
YWdzKCk6CisgICAgbTEgPSBIYXJuZXNzVGVzdCgiL2ZvbyIsICJiYXIiLCAiLyIsICJiYXIiICsg
Ij93cHRfZmxhZ3M9d3d3IikKKyAgICBhc3NlcnQgbTEuc3ViZG9tYWluIGlzIFRydWUKKyAgICBh
c3NlcnQgbTEuaHR0cHMgaXMgRmFsc2UKKyAgICBhc3NlcnQgbTEuaDIgaXMgRmFsc2UKKworICAg
IG0yID0gSGFybmVzc1Rlc3QoIi9mb28iLCAiYmFyIiwgIi8iLCAiYmFyIiArICI/d3B0X2ZsYWdz
PWh0dHBzIikKKyAgICBhc3NlcnQgbTIuc3ViZG9tYWluIGlzIEZhbHNlCisgICAgYXNzZXJ0IG0y
Lmh0dHBzIGlzIFRydWUKKyAgICBhc3NlcnQgbTIuaDIgaXMgRmFsc2UKKworICAgIG0zID0gSGFy
bmVzc1Rlc3QoIi9mb28iLCAiYmFyIiwgIi8iLCAiYmFyIiArICI/d3B0X2ZsYWdzPWgyIikKKyAg
ICBhc3NlcnQgbTMuc3ViZG9tYWluIGlzIEZhbHNlCisgICAgYXNzZXJ0IG0zLmh0dHBzIGlzIEZh
bHNlCisgICAgYXNzZXJ0IG0zLmgyIGlzIFRydWUKKworICAgIG00ID0gSGFybmVzc1Rlc3QoIi9m
b28iLCAiYmFyIiwgIi8iLCAiYmFyIiArICI/d3B0X2ZsYWdzPWh0dHBzJndwdF9mbGFncz13d3ci
KQorICAgIGFzc2VydCBtNC5zdWJkb21haW4gaXMgVHJ1ZQorICAgIGFzc2VydCBtNC5odHRwcyBp
cyBUcnVlCisgICAgYXNzZXJ0IG00LmgyIGlzIEZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rl
c3RfbWFuaWZlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfbWFuaWZlc3QucHkKaW5kZXggMjZhOGZkYzE3
NjMzZGIxYzQ5MTgzZmI1NDk4ZGEzOTc5Y2RkNTRlMC4uMjkzYWUwZWJjYzczNDVlM2I3M2JiMTI4
Y2ZjMWZmZWIyMjdhMmEyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X21hbmlmZXN0LnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFu
aWZlc3QvdGVzdHMvdGVzdF9tYW5pZmVzdC5weQpAQCAtMSw0ICsxLDUgQEAKIGltcG9ydCBvcwor
aW1wb3J0IHN5cwogCiBpbXBvcnQgbW9jawogCkBAIC03LDcgKzgsMTEgQEAgaW1wb3J0IGh5cG90
aGVzaXMuc3RyYXRlZ2llcyBhcyBocwogCiBmcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCiAKLWZy
b20gLi4gaW1wb3J0IG1hbmlmZXN0LCBzb3VyY2VmaWxlLCBpdGVtLCB1dGlscworaGVyZSA9IG9z
LnBhdGguZGlybmFtZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5q
b2luKGhlcmUsICIuLiIsICIuLiIsICIuLiIpKQorc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3QpCisK
K2Zyb20gdG9vbHMubWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0LCBzb3VyY2VmaWxlLCBpdGVtLCB1
dGlscwogCiBNWVBZID0gRmFsc2UKIGlmIE1ZUFk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3VwZGF0ZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZl
c3QvdXBkYXRlLnB5CmluZGV4IDI5NjUzM2E2YmFiZjE3NmU0NTE0YmNmM2YyOWUxNjNmZGY5YTlm
ZGYuLmE4NmVmN2M4YWEyOGYxZjIwOWYxMGI3MjU0ZDFjYTA3Y2IxN2RmNTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZl
c3QvdXBkYXRlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRlLnB5CkBAIC00LDcgKzQsNyBAQCBpbXBvcnQgb3MK
IAogZnJvbSAuIGltcG9ydCBtYW5pZmVzdAogZnJvbSAuIGltcG9ydCB2Y3MKLWZyb20gLmxvZyBp
bXBvcnQgZ2V0X2xvZ2dlcgorZnJvbSAubG9nIGltcG9ydCBnZXRfbG9nZ2VyLCBlbmFibGVfZGVi
dWdfbG9nZ2luZwogZnJvbSAuZG93bmxvYWQgaW1wb3J0IGRvd25sb2FkX2Zyb21fZ2l0aHViCiAK
IGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCkBAIC02NCw2ICs2NCw5IEBAIGRlZiBh
YnNfcGF0aChwYXRoKToKIGRlZiBjcmVhdGVfcGFyc2VyKCk6CiAgICAgIyB0eXBlOiAoKSAtPiBh
cmdwYXJzZS5Bcmd1bWVudFBhcnNlcgogICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFy
c2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLXYiLCAiLS12ZXJib3Nl
IiwgZGVzdD0idmVyYm9zZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisg
ICAgICAgIGhlbHA9IlR1cm4gb24gdmVyYm9zZSBsb2dnaW5nIikKICAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KAogICAgICAgICAiLXAiLCAiLS1wYXRoIiwgdHlwZT1hYnNfcGF0aCwgaGVscD0iUGF0
aCB0byBtYW5pZmVzdCBmaWxlLiIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKQEAgLTkwLDYg
KzkzLDggQEAgZGVmIHJ1bigqYXJncywgKiprd2FyZ3MpOgogICAgICMgdHlwZTogKCpBbnksICoq
QW55KSAtPiBOb25lCiAgICAgaWYga3dhcmdzWyJwYXRoIl0gaXMgTm9uZToKICAgICAgICAga3dh
cmdzWyJwYXRoIl0gPSBvcy5wYXRoLmpvaW4oa3dhcmdzWyJ0ZXN0c19yb290Il0sICJNQU5JRkVT
VC5qc29uIikKKyAgICBpZiBrd2FyZ3NbInZlcmJvc2UiXToKKyAgICAgICAgZW5hYmxlX2RlYnVn
X2xvZ2dpbmcoKQogICAgIHVwZGF0ZV9mcm9tX2NsaSgqKmt3YXJncykKIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlm
ZXN0L3Zjcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3QvdmNzLnB5CmluZGV4IDM0NDU3NTI3NmI0MmNiMzNlYmIxZDgxZjVlMWEy
MWVhYzM5ZGIyZTYuLjRmM2JmZGFmMTI0NDAyYjFhNzE3NTBmOWU5OWUxMzczMDM0YjI4ODEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbWFuaWZlc3QvdmNzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdmNzLnB5CkBAIC0xLDUgKzEsNCBAQAogaW1wb3J0
IGFiYwotaW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHN0YXQKIGZyb20gY29sbGVjdGlv
bnMgaW1wb3J0IGRlcXVlCkBAIC03LDYgKzYsNyBAQCBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBk
ZXF1ZQogZnJvbSBzaXggaW1wb3J0IHdpdGhfbWV0YWNsYXNzLCBQWTIKIGZyb20gc2l4Lm1vdmVz
LmNvbGxlY3Rpb25zX2FiYyBpbXBvcnQgTXV0YWJsZU1hcHBpbmcKIAorZnJvbSAuIGltcG9ydCBq
c29ubGliCiBmcm9tIC51dGlscyBpbXBvcnQgZ2l0CiAKICMgQ2Fubm90IGRvIGBmcm9tIC4uZ2l0
aWdub3JlIGltcG9ydCBnaXRpZ25vcmVgIGJlY2F1c2UKQEAgLTI0LDYgKzI0LDEwIEBAIGlmIE1Z
UFk6CiAgICAgZWxzZToKICAgICAgICAgc3RhdF9yZXN1bHQgPSBvcy5zdGF0X3Jlc3VsdAogCisg
ICAgR2l0SWdub3JlQ2FjaGVUeXBlID0gTXV0YWJsZU1hcHBpbmdbYnl0ZXMsIGJvb2xdCitlbHNl
OgorICAgIEdpdElnbm9yZUNhY2hlVHlwZSA9IE11dGFibGVNYXBwaW5nCisKIAogZGVmIGdldF90
cmVlKHRlc3RzX3Jvb3QsIG1hbmlmZXN0LCBtYW5pZmVzdF9wYXRoLCBjYWNoZV9yb290LAogICAg
ICAgICAgICAgIHdvcmtpbmdfY29weT1UcnVlLCByZWJ1aWxkPUZhbHNlKToKQEAgLTE0OCw3ICsx
NTIsNyBAQCBjbGFzcyBDYWNoZUZpbGUod2l0aF9tZXRhY2xhc3MoYWJjLkFCQ01ldGEpKToKICAg
ICAgICAgaWYgbm90IHNlbGYubW9kaWZpZWQ6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAg
d2l0aCBvcGVuKHNlbGYucGF0aCwgJ3cnKSBhcyBmOgotICAgICAgICAgICAganNvbi5kdW1wKHNl
bGYuZGF0YSwgZiwgaW5kZW50PTEpCisgICAgICAgICAgICBqc29ubGliLmR1bXBfbG9jYWwoc2Vs
Zi5kYXRhLCBmKQogCiAgICAgZGVmIGxvYWQoc2VsZiwgcmVidWlsZD1GYWxzZSk6CiAgICAgICAg
ICMgdHlwZTogKGJvb2wpIC0+IERpY3RbVGV4dCwgQW55XQpAQCAtMTU3LDcgKzE2MSw3IEBAIGNs
YXNzIENhY2hlRmlsZSh3aXRoX21ldGFjbGFzcyhhYmMuQUJDTWV0YSkpOgogICAgICAgICAgICAg
aWYgbm90IHJlYnVpbGQ6CiAgICAgICAgICAgICAgICAgd2l0aCBvcGVuKHNlbGYucGF0aCwgJ3In
KSBhcyBmOgogICAgICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBkYXRhID0ganNvbi5sb2FkKGYpCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0ganNv
bmxpYi5sb2FkKGYpCiAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgogICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLmNo
ZWNrX3ZhbGlkKGRhdGEpCkBAIC0yMjAsOCArMjI0LDggQEAgY2xhc3MgTXRpbWVDYWNoZShDYWNo
ZUZpbGUpOgogICAgICAgICBzdXBlcihNdGltZUNhY2hlLCBzZWxmKS5kdW1wKCkKIAogCi1jbGFz
cyBHaXRJZ25vcmVDYWNoZShDYWNoZUZpbGUsIE11dGFibGVNYXBwaW5nKTogICMgdHlwZTogaWdu
b3JlCi0gICAgZmlsZV9uYW1lID0gImdpdGlnbm9yZS5qc29uIgorY2xhc3MgR2l0SWdub3JlQ2Fj
aGUoQ2FjaGVGaWxlLCBHaXRJZ25vcmVDYWNoZVR5cGUpOgorICAgIGZpbGVfbmFtZSA9ICJnaXRp
Z25vcmUyLmpzb24iCiAKICAgICBkZWYgY2hlY2tfdmFsaWQoc2VsZiwgZGF0YSk6CiAgICAgICAg
ICMgdHlwZTogKERpY3RbQW55LCBBbnldKSAtPiBEaWN0W0FueSwgQW55XQpAQCAtMjM1LDI3ICsy
MzksMzUgQEAgY2xhc3MgR2l0SWdub3JlQ2FjaGUoQ2FjaGVGaWxlLCBNdXRhYmxlTWFwcGluZyk6
ICAjIHR5cGU6IGlnbm9yZQogCiAgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBrZXkpOgogICAg
ICAgICAjIHR5cGU6IChBbnkpIC0+IGJvb2wKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAga2V5
ID0ga2V5LmRlY29kZSgidXRmLTgiKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisKICAgICAgICAgcmV0dXJuIGtleSBpbiBzZWxmLmRhdGEKIAog
ICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgotICAgICAgICAjIHR5cGU6IChUZXh0KSAt
PiBib29sCi0gICAgICAgIHYgPSBzZWxmLmRhdGFba2V5XQorICAgICAgICAjIHR5cGU6IChieXRl
cykgLT4gYm9vbAorICAgICAgICByZWFsX2tleSA9IGtleS5kZWNvZGUoInV0Zi04IikKKyAgICAg
ICAgdiA9IHNlbGYuZGF0YVtyZWFsX2tleV0KICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uodiwg
Ym9vbCkKICAgICAgICAgcmV0dXJuIHYKIAogICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXks
IHZhbHVlKToKLSAgICAgICAgIyB0eXBlOiAoVGV4dCwgYm9vbCkgLT4gTm9uZQotICAgICAgICBp
ZiBzZWxmLmRhdGEuZ2V0KGtleSkgIT0gdmFsdWU6CisgICAgICAgICMgdHlwZTogKGJ5dGVzLCBi
b29sKSAtPiBOb25lCisgICAgICAgIHJlYWxfa2V5ID0ga2V5LmRlY29kZSgidXRmLTgiKQorICAg
ICAgICBpZiBzZWxmLmRhdGEuZ2V0KHJlYWxfa2V5KSAhPSB2YWx1ZToKICAgICAgICAgICAgIHNl
bGYubW9kaWZpZWQgPSBUcnVlCi0gICAgICAgICAgICBzZWxmLmRhdGFba2V5XSA9IHZhbHVlCisg
ICAgICAgICAgICBzZWxmLmRhdGFbcmVhbF9rZXldID0gdmFsdWUKIAogICAgIGRlZiBfX2RlbGl0
ZW1fXyhzZWxmLCBrZXkpOgotICAgICAgICAjIHR5cGU6IChUZXh0KSAtPiBOb25lCi0gICAgICAg
IGRlbCBzZWxmLmRhdGFba2V5XQorICAgICAgICAjIHR5cGU6IChieXRlcykgLT4gTm9uZQorICAg
ICAgICByZWFsX2tleSA9IGtleS5kZWNvZGUoInV0Zi04IikKKyAgICAgICAgZGVsIHNlbGYuZGF0
YVtyZWFsX2tleV0KIAogICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAgICAgICAgIyB0eXBlOiAo
KSAtPiBJdGVyYXRvcltUZXh0XQotICAgICAgICByZXR1cm4gaXRlcihzZWxmLmRhdGEpCisgICAg
ICAgICMgdHlwZTogKCkgLT4gSXRlcmF0b3JbYnl0ZXNdCisgICAgICAgIHJldHVybiAoa2V5LmVu
Y29kZSgidXRmLTgiKSBmb3Iga2V5IGluIHNlbGYuZGF0YSkKIAogICAgIGRlZiBfX2xlbl9fKHNl
bGYpOgogICAgICAgICAjIHR5cGU6ICgpIC0+IGludApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvdzNjLWltcG9ydC5sb2cKaW5kZXggMzg4ZmJiMTFlZDlkOGRhMDE0M2Y4MmVkYzAy
ZDEwYzk3OWJlMzcyZC4uZGY3NTlmZWY5MDM1YjAwNmRiNGM3MDk3NjU2NTdjMmU0NjI2YWY4MyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3czYy1pbXBvcnQubG9nCkBAIC0x
OSw2ICsxOSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9jb21tYW5kcy5qc29uCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9kb3dubG9h
ZC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvaXRlbS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvanNvbmxpYi5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbG9nLnB5CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5w
eQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFu
aWZlc3Qvc291cmNlZmlsZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9teXB5LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbXlweS5pbmkKaW5kZXggYjk0M2I2ZDA4OWE0
YjhmODFlOWI2ZTIzYzc2ODgwZmI5M2NmNjY1YS4uNGQzNTIzMDJkODBlMzIwN2QyYTMzZDMxMzBh
MzU5ZGUzZTUzZGYwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9teXB5LmluaQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL215cHkuaW5pCkBAIC0yMiw2ICsyMiw5IEBAIGln
bm9yZV9taXNzaW5nX2ltcG9ydHMgPSBUcnVlCiBbbXlweS1weXRlc3QuKl0KIGlnbm9yZV9taXNz
aW5nX2ltcG9ydHMgPSBUcnVlCiAKK1tteXB5LXVqc29uLipdCitpZ25vcmVfbWlzc2luZ19pbXBv
cnRzID0gVHJ1ZQorCiBbbXlweS16c3RhbmRhcmQuKl0KIGlnbm9yZV9taXNzaW5nX2ltcG9ydHMg
PSBUcnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvQ09OVFJJQlVUSU5HIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9DT05UUklCVVRJ
TkcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MTVmNWQwMTFmM2UyMmJlNTU0ZmY3
NTVjMDc4MDUyMjEzYWZhOTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9DT05UUklCVVRJTkcKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBA
Ci1Gb3IgaW5zdHJ1Y3Rpb25zIGZvciBjb250cmlidXRpbmcgY29kZSwgcGxlYXNlIHJlYWQ6Ci1o
dHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3B5d2Vic29ja2V0L3dpa2kvQ29kZVJldmlld0luc3Ry
dWN0aW9uCi0KLVlvdSBtdXN0IGNvbXBsZXRlIHRoZSBJbmRpdmlkdWFsIENvbnRyaWJ1dG9yIExp
Y2Vuc2UgQWdyZWVtZW50LgotaHR0cHM6Ly9jbGEuZGV2ZWxvcGVycy5nb29nbGUuY29tL2Fib3V0
L2dvb2dsZS1pbmRpdmlkdWFsCi1Zb3UgY2FuIGRvIHRoaXMgb25saW5lLCBhbmQgaXQgb25seSB0
YWtlcyBhIG1pbnV0ZS4KLQotSWYgeW91IGFyZSBjb250cmlidXRpbmcgb24gYmVoYWxmIG9mIGEg
Y29ycG9yYXRpb24sIHlvdSBtdXN0IGZpbGwgb3V0IHRoZQotQ29ycG9yYXRlIENvbnRyaWJ1dG9y
IExpY2Vuc2UgQWdyZWVtZW50Ci1odHRwczovL2NsYS5kZXZlbG9wZXJzLmdvb2dsZS5jb20vYWJv
dXQvZ29vZ2xlLWNvcnBvcmF0ZQotYW5kIHNlbmQgaXQgdG8gdXMgYXMgZGVzY3JpYmVkIG9uIHRo
YXQgcGFnZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvTElDRU5TRSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvTElDRU5TRQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTg5ZDAyZTRjZDA5MjM3ODA2ZjdkZjhiZWFlY2M2OTE1
MjczNDI4ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L0xJQ0VOU0UKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1Db3B5cmlnaHQgMjAx
MiwgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L01BTklGRVNULmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9NQU5JRkVTVC5pbgpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkyNTY4ODJjNTZmZWI3MjgxMmM5OWM4YTgz
Nzk5NzllNjNlNGEwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L01BTklGRVNULmluCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1pbmNs
dWRlIENPUFlJTkcKLWluY2x1ZGUgTUFOSUZFU1QuaW4KLWluY2x1ZGUgUkVBRE1FCi1yZWN1cnNp
dmUtaW5jbHVkZSBleGFtcGxlICoucHkKLXJlY3Vyc2l2ZS1pbmNsdWRlIG1vZF9weXdlYnNvY2tl
dCAqLnB5Ci1yZWN1cnNpdmUtaW5jbHVkZSB0ZXN0ICoucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVB
RE1FIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9SRUFETUUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4Yzc1OGY1
ZWVmNGM3MzE4OTI2NDFkZTMzM2U1ZDc1ZDEwYTNlNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSwx
NyArMCwwIEBACi1JTlNUQUxMCi0KLVRvIGluc3RhbGwgdGhpcyBwYWNrYWdlIHRvIHRoZSBzeXN0
ZW0sIHJ1biB0aGlzOgotJCBweXRob24gc2V0dXAucHkgYnVpbGQKLSQgc3VkbyBweXRob24gc2V0
dXAucHkgaW5zdGFsbAotCi1UbyBpbnN0YWxsIHRoaXMgcGFja2FnZSBhcyBhIG5vcm1hbCB1c2Vy
LCBydW4gdGhpcyBpbnN0ZWFkOgotJCBweXRob24gc2V0dXAucHkgYnVpbGQKLSQgcHl0aG9uIHNl
dHVwLnB5IGluc3RhbGwgLS11c2VyCi0KLUxBVU5DSAotCi1UbyB1c2UgcHl3ZWJzb2NrZXQgYXMg
QXBhY2hlIG1vZHVsZSwgcnVuIHRoaXMgdG8gcmVhZCB0aGUgZG9jdW1lbnQ6Ci0kIHB5ZG9jIG1v
ZF9weXdlYnNvY2tldAotCi1UbyB1c2UgcHl3ZWJzb2NrZXQgYXMgc3RhbmRhbG9uZSBzZXJ2ZXIs
IHJ1biB0aGlzIHRvIHJlYWQgdGhlIGRvY3VtZW50OgotJCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQu
c3RhbmRhbG9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFETUUubWQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L1JFQURNRS5tZApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU4ZTkxMGE4NGVmOTk1NjY5ZWEwNzIzZjFi
YzdmMjk5MzQ2NjU4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L1JFQURNRS5tZAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi0jIHB5
d2Vic29ja2V0ICMKLQotVGhlIHB5d2Vic29ja2V0IHByb2plY3QgYWltcyB0byBwcm92aWRlIGEg
W1dlYlNvY2tldF0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUpIHN0YW5kYWxv
bmUgc2VydmVyIGFuZCBhIFdlYlNvY2tldCBleHRlbnNpb24gZm9yIFtBcGFjaGUgSFRUUCBTZXJ2
ZXJdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy8pLCBtb2RcX3B5d2Vic29ja2V0LgotCi1weXdl
YnNvY2tldCBpcyBpbnRlbmRlZCBmb3IgKip0ZXN0aW5nKiogb3IgKipleHBlcmltZW50YWwqKiBw
dXJwb3Nlcy4KLQotUGxlYXNlIHNlZSBbV2lraV0oLi4vLi4vd2lraSkgZm9yIG1vcmUgZGV0YWls
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwODAyM2ExZmU5MWUyZjI5NzdiMTYzZjk3N2RhZTY4NTAwMDlhYTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0
X2hhbmRzaGFrZV93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0jIENvcHly
aWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0j
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi0KLQot
ZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHJhaXNlIGhh
bmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uKAotICAgICAgICAiQWJvcnRlZCBpbiB3ZWJf
c29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSIpCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0X3dzaC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJiZjAwNWY2YTM3YzYwOWUxNmFiZGU0
ZGY5NDAyNDI2OGQwZGFlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDMg
KzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3Ry
aWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGhhbmRzaGFrZQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0
KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToK
LSAgICByYWlzZSBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbigKLSAgICAgICAgIkFi
b3J0ZWQgaW4gd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhIikKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODY5Y2Q3ZTFlZTY1M2Q1OWYwNGI4MDJmZjM0YzhkMDgxMzE3Y2E4OS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvYXJyYXlidWZmZXJfYmVuY2htYXJrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAs
MCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2Vy
dmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLW1ldDoKLQotICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLWNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLWluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi10aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi1TUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08
dGl0bGU+QXJyYXlCdWZmZXIgYmVuY2htYXJrPC90aXRsZT4KLTxzY3JpcHQgc3JjPSJ1dGlsLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgUFJJTlRfU0laRSA9IHRydWU7Ci0KLS8vIEluaXRp
YWwgc2l6ZSBvZiBhcnJheXMuCi12YXIgU1RBUlRfU0laRSA9IDEwICogMTAyNDsKLS8vIFN0b3Bz
IGJlbmNobWFyayB3aGVuIHRoZSBzaXplIG9mIGFuIGFycmF5IGV4Y2VlZHMgdGhpcyB0aHJlc2hv
bGQuCi12YXIgU1RPUF9USFJFU0hPTEQgPSAxMDAwMDAgKiAxMDI0OwotLy8gSWYgdGhlIHNpemUg
b2YgZWFjaCBhcnJheSBpcyBzbWFsbCwgd3JpdGUvcmVhZCB0aGUgYXJyYXkgbXVsdGlwbGUgdGlt
ZXMKLS8vIHVudGlsIHRoZSBzdW0gb2Ygc2l6ZXMgcmVhY2hlcyB0aGlzIHRocmVzaG9sZC4KLXZh
ciBNSU5fVE9UQUwgPSAxMDAwMDAgKiAxMDI0OwotdmFyIE1VTFRJUExJRVJTID0gWzUsIDJdOwot
Ci0vLyBSZXBlYXQgYmVuY2htYXJrIGZvciBzZXZlcmFsIHRpbWVzIHRvIG1lYXN1cmUgcGVyZm9y
bWFuY2Ugb2Ygb3B0aW1pemVkCi0vLyAoc3VjaCBhcyBKSVQpIHJ1bi4KLXZhciBSRVBFQVRfRk9S
X1dBUk1VUCA9IDM7Ci0KLWZ1bmN0aW9uIHdyaXRlQmVuY2htYXJrKHNpemUsIG1pblRvdGFsKSB7
Ci0gIHZhciB0b3RhbFNpemUgPSAwOwotICB3aGlsZSAodG90YWxTaXplIDwgbWluVG90YWwpIHsK
LSAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICAvLyBX
cml0ZSAnYSdzLgotICAgIGZpbGxBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlciwgMHg2MSk7Ci0KLSAg
ICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAgfQotICByZXR1cm4gdG90YWxTaXplOwotfQotCi1mdW5j
dGlvbiByZWFkQmVuY2htYXJrKHNpemUsIG1pblRvdGFsKSB7Ci0gIHZhciB0b3RhbFNpemUgPSAw
OwotICB3aGlsZSAodG90YWxTaXplIDwgbWluVG90YWwpIHsKLSAgICB2YXIgYXJyYXlCdWZmZXIg
PSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICBpZiAoIXZlcmlmeUFycmF5QnVmZmVyKGFy
cmF5QnVmZmVyLCAweDAwKSkgewotICAgICAgcXVldWVMb2coJ1ZlcmlmaWNhdGlvbiBmYWlsZWQn
KTsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0KLSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAg
fQotICByZXR1cm4gdG90YWxTaXplOwotfQotCi1mdW5jdGlvbiBydW5CZW5jaG1hcmsoYmVuY2ht
YXJrRnVuY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgc2l6ZSwKLSAgICAgICAgICAgICAg
ICAgICAgICBzdG9wVGhyZXNob2xkLAotICAgICAgICAgICAgICAgICAgICAgIG1pblRvdGFsLAot
ICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXJzLAotICAgICAgICAgICAgICAgICAgICAg
IG11bHRpcGxpZXJJbmRleCkgewotICB3aGlsZSAoc2l6ZSA8PSBzdG9wVGhyZXNob2xkKSB7Ci0g
ICAgdmFyIG1heFNwZWVkID0gMDsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgUkVQRUFUX0ZP
Ul9XQVJNVVA7ICsraSkgewotICAgICAgdmFyIHN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAo
KTsKLQotICAgICAgdmFyIHRvdGFsU2l6ZSA9IGJlbmNobWFya0Z1bmN0aW9uKHNpemUsIG1pblRv
dGFsKTsKLQotICAgICAgbWF4U3BlZWQgPSBNYXRoLm1heChtYXhTcGVlZCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2FsY3VsYXRlU3BlZWRJbktCKHRvdGFsU2l6ZSwgc3RhcnRUaW1lSW5N
cykpOwotICAgIH0KLSAgICBxdWV1ZUxvZyhmb3JtYXRSZXN1bHRJbktpQihzaXplLCBtYXhTcGVl
ZCwgUFJJTlRfU0laRSkpOwotCi0gICAgc2l6ZSAqPSBtdWx0aXBsaWVyc1ttdWx0aXBsaWVySW5k
ZXhdOwotICAgIG11bHRpcGxpZXJJbmRleCA9IChtdWx0aXBsaWVySW5kZXggKyAxKSAlIG11bHRp
cGxpZXJzLmxlbmd0aDsKLSAgfQotfQotCi1mdW5jdGlvbiBydW5CZW5jaG1hcmtzKCkgewotICBx
dWV1ZUxvZygnTWVzc2FnZSBzaXplIGluIEtpQiwgU3BlZWQgaW4ga0IvcycpOwotCi0gIHF1ZXVl
TG9nKCdXcml0ZSBiZW5jaG1hcmsnKTsKLSAgcnVuQmVuY2htYXJrKAotICAgICAgd3JpdGVCZW5j
aG1hcmssIFNUQVJUX1NJWkUsIFNUT1BfVEhSRVNIT0xELCBNSU5fVE9UQUwsIE1VTFRJUExJRVJT
LCAwKTsKLSAgcXVldWVMb2coJ0ZpbmlzaGVkJyk7Ci0KLSAgcXVldWVMb2coJ1JlYWQgYmVuY2ht
YXJrJyk7Ci0gIHJ1bkJlbmNobWFyaygKLSAgICAgIHJlYWRCZW5jaG1hcmssIFNUQVJUX1NJWkUs
IFNUT1BfVEhSRVNIT0xELCBNSU5fVE9UQUwsIE1VTFRJUExJRVJTLCAwKTsKLSAgYWRkVG9Mb2co
J0ZpbmlzaGVkJyk7Ci19Ci0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIGxvZ0JveCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKLQotICBxdWV1ZUxvZyh3aW5kb3cubmF2aWdhdG9yLnVz
ZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLQotICBhZGRUb0xvZygnU3RhcnRlZC4uLicpOwotCi0g
IHNldFRpbWVvdXQocnVuQmVuY2htYXJrcywgMCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJpbml0KCkiPgotPHRleHRhcmVhCi0gICAgaWQ9ImxvZyIgcm93cz0iNTAi
IHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaF93c2gucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
YmVuY2hfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDY3Y2E3ZDg5NTVm
YzE2M2Q1MDAxY2Q4ODEyZTZhZTIwYzE2MjkzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaF93c2gucHkKKysrIC9kZXYvbnVs
bApAQCAtMSw2MCArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6
Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJBIHNpbXBsZSBsb2Fk
IHRlc3RlciBmb3IgV2ViU29ja2V0IGNsaWVudHMuCi0KLUEgY2xpZW50IHByb2dyYW0gc2VuZHMg
YSBtZXNzYWdlIGZvcm1hdHRlZCBhcyAiPHRpbWU+IDxjb3VudD4gPG1lc3NhZ2U+IiB0bwotdGhp
cyBoYW5kbGVyLiBUaGlzIGhhbmRsZXIgc3RhcnRzIHNlbmRpbmcgdG90YWwgPGNvdW50PiBXZWJT
b2NrZXQgbWVzc2FnZXMKLWNvbnRhaW5pbmcgPG1lc3NhZ2U+IGV2ZXJ5IDx0aW1lPiBzZWNvbmRz
LiA8dGltZT4gY2FuIGJlIGEgZmxvYXRpbmcgcG9pbnQKLXZhbHVlLiA8Y291bnQ+IG11c3QgYmUg
YW4gaW50ZWdlciB2YWx1ZS4KLSIiIgotCi0KLWltcG9ydCB0aW1lCi0KLQotZGVmIHdlYl9zb2Nr
ZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MgICMgQWx3YXlzIGFjY2Vw
dC4KLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIGxpbmUg
PSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgIHBhcnRzID0gbGluZS5z
cGxpdCgnICcpCi0gICAgaWYgbGVuKHBhcnRzKSAhPSAzOgotICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdCYWQgcGFyYW1ldGVyIGZvcm1hdCcpCi0gICAgd2FpdCA9IGZsb2F0KHBhcnRzWzBdKQot
ICAgIGNvdW50ID0gaW50KHBhcnRzWzFdKQotICAgIG1lc3NhZ2UgPSBwYXJ0c1syXQotICAgIGZv
ciBpIGluIHhyYW5nZShjb3VudCk6Ci0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVz
c2FnZShtZXNzYWdlKQotICAgICAgICB0aW1lLnNsZWVwKHdhaXQpCi0KLQotIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvYmVuY2htYXJrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MjM4
NjNhOTk1Njk3NjNhYjc5NzZhN2RlNzgyMDVjYTYxOTJhMmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFyay5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTc1ICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAyMDEzLCBHb29n
bGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1k
aXN0cmlidXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPldlYlNvY2tldCBiZW5jaG1hcms8L3RpdGxl
PgotPHNjcmlwdCBzcmM9InV0aWxfbWFpbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0idXRp
bC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iYmVuY2htYXJrLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci12YXIgYWRkcmVzc0JveCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGdldENvbmZpZygpIHsK
LSAgcmV0dXJuIHsKLSAgICBwcmVmaXhVcmw6IGFkZHJlc3NCb3gudmFsdWUsCi0gICAgcHJpbnRT
aXplOiBnZXRCb29sRnJvbUNoZWNrQm94KCdwcmludHNpemUnKSwKLSAgICBudW1Tb2NrZXRzOiBn
ZXRJbnRGcm9tSW5wdXQoJ251bXNvY2tldHMnKSwKLSAgICAvLyBJbml0aWFsIHNpemUgb2YgbWVz
c2FnZXMuCi0gICAgbnVtSXRlcmF0aW9uczogZ2V0SW50RnJvbUlucHV0KCdudW1pdGVyYXRpb25z
JyksCi0gICAgbnVtV2FybVVwSXRlcmF0aW9uczogZ2V0SW50RnJvbUlucHV0KCdudW13YXJtdXBp
dGVyYXRpb25zJyksCi0gICAgc3RhcnRTaXplOiBnZXRJbnRGcm9tSW5wdXQoJ3N0YXJ0c2l6ZScp
LAotICAgIC8vIFN0b3BzIGJlbmNobWFyayB3aGVuIHRoZSBzaXplIG9mIG1lc3NhZ2UgZXhjZWVk
cyB0aGlzIHRocmVzaG9sZC4KLSAgICBzdG9wVGhyZXNob2xkOiBnZXRJbnRGcm9tSW5wdXQoJ3N0
b3B0aHJlc2hvbGQnKSwKLSAgICAvLyBJZiB0aGUgc2l6ZSBvZiBlYWNoIG1lc3NhZ2UgaXMgc21h
bGwsIHNlbmQvcmVjZWl2ZSBtdWx0aXBsZSBtZXNzYWdlcwotICAgIC8vIHVudGlsIHRoZSBzdW0g
b2Ygc2l6ZXMgcmVhY2hlcyB0aGlzIHRocmVzaG9sZC4KLSAgICBtaW5Ub3RhbDogZ2V0SW50RnJv
bUlucHV0KCdtaW50b3RhbCcpLAotICAgIG11bHRpcGxpZXJzOiBnZXRGbG9hdEFycmF5RnJvbUlu
cHV0KCdtdWx0aXBsaWVycycpLAotICAgIHZlcmlmeURhdGE6IGdldEJvb2xGcm9tQ2hlY2tCb3go
J3ZlcmlmeWRhdGEnKSwKLSAgICBhZGRUb0xvZzogYWRkVG9Mb2csCi0gICAgYWRkVG9TdW1tYXJ5
OiBhZGRUb1N1bW1hcnksCi0gICAgbWVhc3VyZVZhbHVlOiBtZWFzdXJlVmFsdWUsCi0gICAgbm90
aWZ5QWJvcnQ6IG5vdGlmeUFib3J0Ci0gIH07Ci19Ci0KLWZ1bmN0aW9uIG9uU2VuZEJlbmNobWFy
aygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBkb0FjdGlvbihjb25maWcsIGdl
dEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc2VuZEJlbmNobWFyaycpOwotfQotCi1mdW5j
dGlvbiBvblJlY2VpdmVCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsK
LSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ3JlY2Vp
dmVCZW5jaG1hcmsnKTsKLX0KLQotZnVuY3Rpb24gb25CYXRjaEJlbmNobWFyaygpIHsKLSAgdmFy
IGNvbmZpZyA9IGdldENvbmZpZygpOwotICBkb0FjdGlvbihjb25maWcsIGdldEJvb2xGcm9tQ2hl
Y2tCb3goJ3dvcmtlcicpLCAnYmF0Y2hCZW5jaG1hcmsnKTsKLX0KLQotZnVuY3Rpb24gb25TdG9w
KCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0
Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdzdG9wJyk7Ci19Ci0KLWZ1bmN0aW9uIGluaXQo
KSB7Ci0gIGFkZHJlc3NCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkcmVzcycpOwot
ICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0KLSAgc3VtbWFyeUJv
eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdW1tYXJ5Jyk7Ci0KLSAgdmFyIHNjaGVtZSA9
IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9PSAnaHR0cHM6JyA/ICd3c3M6Ly8nIDogJ3dzOi8v
JzsKLSAgdmFyIGRlZmF1bHRBZGRyZXNzID0gc2NoZW1lICsgd2luZG93LmxvY2F0aW9uLmhvc3Qg
KyAnL2JlbmNobWFya19oZWxwZXInOwotCi0gIGFkZHJlc3NCb3gudmFsdWUgPSBkZWZhdWx0QWRk
cmVzczsKLQotICBhZGRUb0xvZyh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2Fz
ZSgpKTsKLSAgYWRkVG9TdW1tYXJ5KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJD
YXNlKCkpOwotCi0gIGlmICghKCdXZWJTb2NrZXQnIGluIHdpbmRvdykpIHsKLSAgICBhZGRUb0xv
ZygnV2ViU29ja2V0IGlzIG5vdCBhdmFpbGFibGUnKTsKLSAgfQotCi0gIGluaXRXb3JrZXIoJ1dl
YlNvY2tldCcsICcnKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0
KCkiPgotCi08ZGl2IGlkPSJiZW5jaG1hcmtfZGl2Ij4KLSAgdXJsIDxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iYWRkcmVzcyIgc2l6ZT0iNDAiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i
c2VuZCIgb25jbGljaz0ib25TZW5kQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9u
IiB2YWx1ZT0icmVjZWl2ZSIgb25jbGljaz0ib25SZWNlaXZlQmVuY2htYXJrKCkiPgotICA8aW5w
dXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iYmF0Y2giIG9uY2xpY2s9Im9uQmF0Y2hCZW5jaG1hcmso
KSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJzdG9wIiBvbmNsaWNrPSJvblN0b3Ao
KSI+Ci0KLSAgPGJyLz4KLQotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJwcmludHNpemUi
IGNoZWNrZWQ+Ci0gIDxsYWJlbCBmb3I9InByaW50c2l6ZSI+UHJpbnQgc2l6ZSBhbmQgdGltZSBw
ZXIgbWVzc2FnZTwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InZlcmlmeWRh
dGEiIGNoZWNrZWQ+Ci0gIDxsYWJlbCBmb3I9InZlcmlmeWRhdGEiPlZlcmlmeSBkYXRhPC9sYWJl
bD4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0id29ya2VyIj4KLSAgPGxhYmVsIGZvcj0i
d29ya2VyIj5SdW4gb24gd29ya2VyPC9sYWJlbD4KLQotICA8YnIvPgotCi0gIFBhcmFtZXRlcnM6
Ci0KLSAgPGJyLz4KLQotICA8dGFibGU+Ci0gICAgPHRyPgotICAgICAgPHRkPk51bSBzb2NrZXRz
PC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bXNvY2tldHMiIHZhbHVl
PSIxIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk51bWJlciBvZiBpdGVy
YXRpb25zPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bWl0ZXJhdGlv
bnMiIHZhbHVlPSIxIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk51bWJl
ciBvZiB3YXJtLXVwIGl0ZXJhdGlvbnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0ibnVtd2FybXVwaXRlcmF0aW9ucyIgdmFsdWU9IjAiPjwvdGQ+Ci0gICAgPC90cj4KLSAg
ICA8dHI+Ci0gICAgICA8dGQ+U3RhcnQgc2l6ZTwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9
InRleHQiIGlkPSJzdGFydHNpemUiIHZhbHVlPSIxMDI0MCI+PC90ZD4KLSAgICA8L3RyPgotICAg
IDx0cj4KLSAgICAgIDx0ZD5TdG9wIHRocmVzaG9sZDwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5
cGU9InRleHQiIGlkPSJzdG9wdGhyZXNob2xkIiB2YWx1ZT0iMTAyNDAwMDAwIj48L3RkPgotICAg
IDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk1pbmltdW0gdG90YWw8L3RkPgotICAgICAgPHRk
PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibWludG90YWwiIHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+
Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TXVsdGlwbGllcnM8L3RkPgotICAgICAg
PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibXVsdGlwbGllcnMiIHZhbHVlPSI1LCAyIj48L3Rk
PgotICAgIDwvdHI+Ci0gIDwvdGFibGU+Ci08L2Rpdj4KLQotPGRpdiBpZD0ibG9nX2RpdiI+Ci0g
IDx0ZXh0YXJlYQotICAgICAgaWQ9ImxvZyIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIg
cmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvZGl2PgotPGRpdiBpZD0ic3VtbWFyeV9kaXYiPgotICBT
dW1tYXJ5Ci0gIDx0ZXh0YXJlYQotICAgICAgaWQ9InN1bW1hcnkiIHJvd3M9IjIwIiBzdHlsZT0i
d2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08L2Rpdj4KLQotTm90ZTogRWZmZWN0
IG9mIFJUVCBpcyBub3QgZWxpbWluYXRlZC4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL2JlbmNobWFyay5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1NjQzNWQxZDBkZDc4ZDk3OTRhYTg0YzAy
OWM4YWI0ZjczMzllYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFyay5qcworKysgL2Rldi9udWxsCkBAIC0xLDIxNCAr
MCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotLy8KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0
eWxlCi0vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3Ig
YXQKLS8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2Vz
L2JzZAotCi1pZiAodHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiKSB7Ci0gIC8v
IFJ1bm5pbmcgb24gYSB3b3JrZXIKLSAgaW1wb3J0U2NyaXB0cygndXRpbC5qcycsICd1dGlsX3dv
cmtlci5qcycpOwotfQotCi0vLyBOYW1lc3BhY2UgZm9yIGhvbGRpbmcgZ2xvYmFscy4KLXZhciBi
ZW5jaG1hcmsgPSB7c3RhcnRUaW1lSW5NczogMH07Ci0KLXZhciBzb2NrZXRzID0gW107Ci12YXIg
bnVtRXN0YWJsaXNoZWRTb2NrZXRzID0gMDsKLQotdmFyIHRpbWVySUQgPSBudWxsOwotCi1mdW5j
dGlvbiBkZXN0cm95U29ja2V0KHNvY2tldCkgewotICBzb2NrZXQub25vcGVuID0gbnVsbDsKLSAg
c29ja2V0Lm9ubWVzc2FnZSA9IG51bGw7Ci0gIHNvY2tldC5vbmVycm9yID0gbnVsbDsKLSAgc29j
a2V0Lm9uY2xvc2UgPSBudWxsOwotICBzb2NrZXQuY2xvc2UoKTsKLX0KLQotZnVuY3Rpb24gZGVz
dHJveUFsbFNvY2tldHMoKSB7Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgc29ja2V0cy5sZW5ndGg7
ICsraSkgewotICAgIGRlc3Ryb3lTb2NrZXQoc29ja2V0c1tpXSk7Ci0gIH0KLSAgc29ja2V0cyA9
IFtdOwotfQotCi1mdW5jdGlvbiBzZW5kQmVuY2htYXJrU3RlcChzaXplLCBjb25maWcsIGlzV2Fy
bVVwKSB7Ci0gIHRpbWVySUQgPSBudWxsOwotCi0gIHZhciB0b3RhbFNpemUgPSAwOwotICB2YXIg
dG90YWxSZXBsaWVkID0gMDsKLQotICB2YXIgb25NZXNzYWdlSGFuZGxlciA9IGZ1bmN0aW9uKGV2
ZW50KSB7Ci0gICAgaWYgKCF2ZXJpZnlBY2tub3dsZWRnZW1lbnQoY29uZmlnLCBldmVudC5kYXRh
LCBzaXplKSkgewotICAgICAgZGVzdHJveUFsbFNvY2tldHMoKTsKLSAgICAgIGNvbmZpZy5ub3Rp
ZnlBYm9ydCgpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHRvdGFsUmVwbGllZCArPSBz
aXplOwotCi0gICAgaWYgKHRvdGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkgewotICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNo
bWFyay5zdGFydFRpbWVJbk1zLCB0b3RhbFNpemUsCi0gICAgICAgIGlzV2FybVVwKTsKLQotICAg
IHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH07Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb2Nr
ZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgdmFyIHNvY2tldCA9IHNvY2tldHNbaV07Ci0gICAgc29j
a2V0Lm9ubWVzc2FnZSA9IG9uTWVzc2FnZUhhbmRsZXI7Ci0gIH0KLQotICB2YXIgZGF0YUFycmF5
ID0gW107Ci0KLSAgd2hpbGUgKHRvdGFsU2l6ZSA8IGNvbmZpZy5taW5Ub3RhbCkgewotICAgIHZh
ciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICBmaWxsQXJyYXlCdWZmZXIo
YnVmZmVyLCAweDYxKTsKLQotICAgIGRhdGFBcnJheS5wdXNoKGJ1ZmZlcik7Ci0gICAgdG90YWxT
aXplICs9IHNpemU7Ci0gIH0KLQotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVT
dGFtcCgpOwotCi0gIHRvdGFsU2l6ZSA9IDA7Ci0KLSAgdmFyIHNvY2tldEluZGV4ID0gMDsKLSAg
dmFyIGRhdGFJbmRleCA9IDA7Ci0gIHdoaWxlICh0b3RhbFNpemUgPCBjb25maWcubWluVG90YWwp
IHsKLSAgICB2YXIgY29tbWFuZCA9IFsnc2VuZCddOwotICAgIGNvbW1hbmQucHVzaChjb25maWcu
dmVyaWZ5RGF0YSA/ICcxJyA6ICcwJyk7Ci0gICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZChj
b21tYW5kLmpvaW4oJyAnKSk7Ci0gICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZChkYXRhQXJy
YXlbZGF0YUluZGV4XSk7Ci0gICAgc29ja2V0SW5kZXggPSAoc29ja2V0SW5kZXggKyAxKSAlIHNv
Y2tldHMubGVuZ3RoOwotCi0gICAgdG90YWxTaXplICs9IHNpemU7Ci0gICAgKytkYXRhSW5kZXg7
Ci0gIH0KLX0KLQotZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBp
c1dhcm1VcCkgewotICB0aW1lcklEID0gbnVsbDsKLQotICB2YXIgdG90YWxTaXplID0gMDsKLSAg
dmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0KLSAgdmFyIG9uTWVzc2FnZUhhbmRsZXIgPSBmdW5jdGlv
bihldmVudCkgewotICAgIHZhciBieXRlc1JlY2VpdmVkID0gZXZlbnQuZGF0YS5ieXRlTGVuZ3Ro
OwotICAgIGlmIChieXRlc1JlY2VpdmVkICE9IHNpemUpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xv
ZygnRXhwZWN0ZWQgJyArIHNpemUgKyAnQiBidXQgcmVjZWl2ZWQgJyArCi0gICAgICAgICAgYnl0
ZXNSZWNlaXZlZCArICdCJyk7Ci0gICAgICBkZXN0cm95QWxsU29ja2V0cygpOwotICAgICAgY29u
ZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGNvbmZp
Zy52ZXJpZnlEYXRhICYmICF2ZXJpZnlBcnJheUJ1ZmZlcihldmVudC5kYXRhLCAweDYxKSkgewot
ICAgICAgY29uZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7Ci0g
ICAgICBkZXN0cm95QWxsU29ja2V0cygpOwotICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0g
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdG90YWxSZXBsaWVkICs9IGJ5dGVzUmVjZWl2ZWQ7
Ci0KLSAgICBpZiAodG90YWxSZXBsaWVkIDwgdG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJr
LnN0YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSwKLSAgICAgICAgaXNXYXJtVXApOwotCi0gICAgcnVu
TmV4dFRhc2soY29uZmlnKTsKLSAgfTsKLQotICBmb3IgKHZhciBpID0gMDsgaSA8IHNvY2tldHMu
bGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgc29ja2V0ID0gc29ja2V0c1tpXTsKLSAgICBzb2NrZXQu
YmluYXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7Ci0gICAgc29ja2V0Lm9ubWVzc2FnZSA9IG9uTWVz
c2FnZUhhbmRsZXI7Ci0gIH0KLQotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVT
dGFtcCgpOwotCi0gIHZhciBzb2NrZXRJbmRleCA9IDA7Ci0gIHdoaWxlICh0b3RhbFNpemUgPCBj
b25maWcubWluVG90YWwpIHsKLSAgICBzb2NrZXRzW3NvY2tldEluZGV4XS5zZW5kKCdyZWNlaXZl
ICcgKyBzaXplKTsKLSAgICBzb2NrZXRJbmRleCA9IChzb2NrZXRJbmRleCArIDEpICUgc29ja2V0
cy5sZW5ndGg7Ci0KLSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAgfQotfQotCi1mdW5jdGlvbiBj
cmVhdGVTb2NrZXQoY29uZmlnKSB7Ci0gIC8vIFRPRE8odHlvc2hpbm8pOiBBZGQgVENQIHdhcm0g
dXAuCi0gIHZhciB1cmwgPSBjb25maWcucHJlZml4VXJsOwotCi0gIGNvbmZpZy5hZGRUb0xvZygn
Q29ubmVjdCAnICsgdXJsKTsKLQotICB2YXIgc29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmwpOwot
ICBzb2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBjb25maWcuYWRkVG9M
b2coJ1VuZXhwZWN0ZWQgbWVzc2FnZSByZWNlaXZlZC4gQWJvcnRpbmcuJyk7Ci0gIH07Ci0gIHNv
Y2tldC5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdFcnJvcicp
OwotICB9OwotICBzb2NrZXQub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgY29uZmln
LmFkZFRvTG9nKCdDbG9zZWQnKTsKLSAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAgfTsKLSAg
cmV0dXJuIHNvY2tldDsKLX0KLQotZnVuY3Rpb24gc3RhcnRCZW5jaG1hcmsoY29uZmlnKSB7Ci0g
IGNsZWFyVGltZW91dCh0aW1lcklEKTsKLSAgZGVzdHJveUFsbFNvY2tldHMoKTsKLQotICBudW1F
c3RhYmxpc2hlZFNvY2tldHMgPSAwOwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51
bVNvY2tldHM7ICsraSkgewotICAgIHZhciBzb2NrZXQgPSBjcmVhdGVTb2NrZXQoY29uZmlnKTsK
LSAgICBzb2NrZXQub25vcGVuID0gZnVuY3Rpb24oKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2co
J09wZW5lZCcpOwotCi0gICAgICArK251bUVzdGFibGlzaGVkU29ja2V0czsKLQotICAgICAgaWYg
KG51bUVzdGFibGlzaGVkU29ja2V0cyA9PSBzb2NrZXRzLmxlbmd0aCkgewotICAgICAgICBydW5O
ZXh0VGFzayhjb25maWcpOwotICAgICAgfQotICAgIH07Ci0gICAgc29ja2V0cy5wdXNoKHNvY2tl
dCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykgewotICByZXR1
cm4gJyhXZWJTb2NrZXQnICsKLSAgICAnLCAnICsgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAi
dW5kZWZpbmVkIiA/ICdXb3JrZXInIDogJ01haW4nKSArCi0gICAgJywgbnVtU29ja2V0cz0nICsg
Y29uZmlnLm51bVNvY2tldHMgKwotICAgICcsIG51bUl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1J
dGVyYXRpb25zICsKLSAgICAnLCB2ZXJpZnlEYXRhPScgKyBjb25maWcudmVyaWZ5RGF0YSArCi0g
ICAgJywgbWluVG90YWw9JyArIGNvbmZpZy5taW5Ub3RhbCArCi0gICAgJywgbnVtV2FybVVwSXRl
cmF0aW9ucz0nICsgY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMgKwotICAgICcpJzsKLX0KLQot
ZnVuY3Rpb24gYmF0Y2hCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNvbmZpZy5hZGRUb0xvZygnQmF0
Y2ggYmVuY2htYXJrJyk7Ci0gIGNvbmZpZy5hZGRUb0xvZyhidWlsZExlZ2VuZFN0cmluZyhjb25m
aWcpKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gIGFkZFRhc2tz
KGNvbmZpZywgc2VuZEJlbmNobWFya1N0ZXApOwotICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNv
bmZpZywgJ1NlbmQgQmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0gIGFk
ZFRhc2tzKGNvbmZpZywgcmVjZWl2ZUJlbmNobWFya1N0ZXApOwotICBhZGRSZXN1bHRSZXBvcnRp
bmdUYXNrKGNvbmZpZywgJ1JlY2VpdmUgQmVuY2htYXJrICcgKwotICAgICAgZ2V0Q29uZmlnU3Ry
aW5nKGNvbmZpZykpOwotICBzdGFydEJlbmNobWFyayhjb25maWcpOwotfQotCi1mdW5jdGlvbiBj
bGVhbnVwKCkgewotICBkZXN0cm95QWxsU29ja2V0cygpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFya19o
ZWxwZXJfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGFkMGJmZWVmYzZm
NDQzMDU3MWI3YjUzMjMzZmI3OTUwNjE0Y2YyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5weQor
KysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkhh
bmRsZXIgZm9yIGJlbmNobWFyay5odG1sLiIiIgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJh
X2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICAjIFR1cm4gb2ZmIGNvbXByZXNzaW9uLgotICAgIHJl
cXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBbXQotCi0KLWRlZiB3ZWJfc29ja2V0X3Ry
YW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgZGF0YSA9ICcnCi0KLSAgICB3aGlsZSBUcnVlOgot
ICAgICAgICBjb21tYW5kID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAg
ICAgICAgaWYgY29tbWFuZCBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAg
aWYgbm90IGlzaW5zdGFuY2UoY29tbWFuZCwgdW5pY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQgZGF0YTonICsgY29tbWFuZCkKLSAgICAgICAgY29t
bWFuZHMgPSBjb21tYW5kLnNwbGl0KCcgJykKLSAgICAgICAgaWYgbGVuKGNvbW1hbmRzKSA9PSAw
OgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjb21tYW5kIGRhdGE6ICcg
KyBjb21tYW5kKQotCi0gICAgICAgIGlmIGNvbW1hbmRzWzBdID09ICdyZWNlaXZlJzoKLSAgICAg
ICAgICAgIGlmIGxlbihjb21tYW5kcykgIT0gMjoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ0lsbGVnYWwgbnVtYmVyIG9mIGFyZ3Vt
ZW50cyBmb3Igc2VuZCBjb21tYW5kJyArCi0gICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5k
KQotICAgICAgICAgICAgc2l6ZSA9IGludChjb21tYW5kc1sxXSkKLQotICAgICAgICAgICAgIyBS
ZXVzZSBkYXRhIGlmIHBvc3NpYmxlLgotICAgICAgICAgICAgaWYgbGVuKGRhdGEpICE9IHNpemU6
Ci0gICAgICAgICAgICAgICAgZGF0YSA9ICdhJyAqIHNpemUKLSAgICAgICAgICAgIHJlcXVlc3Qu
d3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShkYXRhLCBiaW5hcnk9VHJ1ZSkKLSAgICAgICAgZWxpZiBj
b21tYW5kc1swXSA9PSAnc2VuZCc6Ci0gICAgICAgICAgICBpZiBsZW4oY29tbWFuZHMpICE9IDI6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAg
ICAgICdJbGxlZ2FsIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHJlY2VpdmUgY29tbWFuZCcgKwot
ICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZCkKLSAgICAgICAgICAgIHZlcmlmeV9kYXRh
ID0gY29tbWFuZHNbMV0gPT0gJzEnCi0KLSAgICAgICAgICAgIGRhdGEgPSByZXF1ZXN0LndzX3N0
cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICAgICAgaWYgZGF0YSBpcyBOb25lOgotICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1BheWxvYWQgbm90IHJlY2VpdmVkJykKLSAg
ICAgICAgICAgIHNpemUgPSBsZW4oZGF0YSkKLQotICAgICAgICAgICAgaWYgdmVyaWZ5X2RhdGE6
Ci0gICAgICAgICAgICAgICAgaWYgZGF0YSAhPSAnYScgKiBzaXplOgotICAgICAgICAgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCdQYXlsb2FkIHZlcmlmaWNhdGlvbiBmYWlsZWQnKQotCi0g
ICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2Uoc3RyKHNpemUpKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjb21tYW5k
OiAnICsgY29tbWFuZHNbMF0pCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvY2xvc2Vfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nsb3NlX3dzaC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZiMDgzODQwODEyNDUzOTc5NzY1N2Q0MGQ2NDI3
OGYxYTY0ODFjMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvY2xvc2Vfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBA
QAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBzdHJ1Y3QKLQotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHN0cmVhbQotCi0K
LWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0K
LQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICB3aGlsZSBUcnVl
OgotICAgICAgICBsaW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAg
ICAgICAgaWYgbGluZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGNvZGUs
IHJlYXNvbiA9IGxpbmUuc3BsaXQoJyAnLCAxKQotICAgICAgICBpZiBjb2RlIGlzIE5vbmUgb3Ig
cmVhc29uIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcmVxdWVzdC53c19z
dHJlYW0uY2xvc2VfY29ubmVjdGlvbihpbnQoY29kZSksIHJlYXNvbikKLSAgICAgICAgIyBjbG9z
ZV9jb25uZWN0aW9uKCkgaW5pdGlhdGVzIGNsb3NpbmcgaGFuZHNoYWtlLiBJdCB2YWxpZGF0ZXMg
Y29kZQotICAgICAgICAjIGFuZCByZWFzb24uIElmIHlvdSB3YW50IHRvIHNlbmQgYSBicm9rZW4g
Y2xvc2UgZnJhbWUgZm9yIGEgdGVzdCwKLSAgICAgICAgIyBmb2xsb3dpbmcgY29kZSB3aWxsIGJl
IHVzZWZ1bC4KLSAgICAgICAgIyA+IGRhdGEgPSBzdHJ1Y3QucGFjaygnIUgnLCBpbnQoY29kZSkp
ICsgcmVhc29uLmVuY29kZSgnVVRGLTgnKQotICAgICAgICAjID4gcmVxdWVzdC5jb25uZWN0aW9u
LndyaXRlKHN0cmVhbS5jcmVhdGVfY2xvc2VfZnJhbWUoZGF0YSkpCi0gICAgICAgICMgPiAjIFN1
cHByZXNzIHRvIHJlLXJlc3BvbmQgY2xpZW50IHJlc3BvbmRpbmcgY2xvc2UgZnJhbWUuCi0gICAg
ICAgICMgPiByYWlzZSBFeGNlcHRpb24oImN1c3RvbWl6ZWQgc2VydmVyIGluaXRpYXRlZCBjbG9z
aW5nIGhhbmRzaGFrZSIpCi0KLQotZGVmIHdlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRz
aGFrZShyZXF1ZXN0KToKLSAgICAjIFNpbXBseSBlY2hvIGEgY2xvc2Ugc3RhdHVzIGNvZGUKLSAg
ICBjb2RlLCByZWFzb24gPSByZXF1ZXN0LndzX2Nsb3NlX2NvZGUsIHJlcXVlc3Qud3NfY2xvc2Vf
cmVhc29uCi0KLSAgICAjIHB5d2Vic29ja2V0IHNldHMgcHNldWRvIGNvZGUgZm9yIHJlY2Vpdmlu
ZyBhbiBlbXB0eSBib2R5IGNsb3NlIGZyYW1lLgotICAgIGlmIGNvZGUgPT0gY29tbW9uLlNUQVRV
U19OT19TVEFUVVNfUkVDRUlWRUQ6Ci0gICAgICAgIGNvZGUgPSBOb25lCi0gICAgICAgIHJlYXNv
biA9ICcnCi0gICAgcmV0dXJuIGNvZGUsIHJlYXNvbgotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL2NvbnNvbGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb25z
b2xlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjZDZkOGY4MDY3NmI5OTkx
ZTIyZGZjN2VjODUwODM0MTFkZGQwYjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2NvbnNvbGUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDMxNyArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLUFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgot
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPCEtLQot
QSBzaW1wbGUgY29uc29sZSBmb3IgdGVzdGluZyBXZWJTb2NrZXQgc2VydmVyLgotCi1UeXBlIGFu
IGFkZHJlc3MgaW50byB0aGUgdG9wIHRleHQgaW5wdXQgYW5kIGNsaWNrIGNvbm5lY3QgdG8gZXN0
YWJsaXNoCi1XZWJTb2NrZXQuIFRoZW4sIHR5cGUgc29tZSBtZXNzYWdlIGludG8gdGhlIGJvdHRv
bSB0ZXh0IGlucHV0IGFuZCBjbGljayBzZW5kCi10byBzZW5kIHRoZSBtZXNzYWdlLiBSZWNlaXZl
ZC9zZW50IG1lc3NhZ2VzIGFuZCBjb25uZWN0aW9uIHN0YXRlIHdpbGwgYmUgc2hvd24KLW9uIHRo
ZSBtaWRkbGUgdGV4dGFyZWEuCi0tLT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5XZWJTb2Nr
ZXQgY29uc29sZTwvdGl0bGU+Ci08c2NyaXB0PgotdmFyIHNvY2tldCA9IG51bGw7Ci0KLXZhciBz
aG93VGltZVN0YW1wID0gZmFsc2U7Ci0KLXZhciBhZGRyZXNzQm94ID0gbnVsbDsKLXZhciBwcm90
b2NvbHNCb3ggPSBudWxsOwotdmFyIGxvZ0JveCA9IG51bGw7Ci12YXIgbWVzc2FnZUJveCA9IG51
bGw7Ci12YXIgZmlsZUJveCA9IG51bGw7Ci12YXIgY29kZUJveCA9IG51bGw7Ci12YXIgcmVhc29u
Qm94ID0gbnVsbDsKLQotZnVuY3Rpb24gZ2V0VGltZVN0YW1wKCkgewotICByZXR1cm4gbmV3IERh
dGUoKS5nZXRUaW1lKCk7Ci19Ci0KLWZ1bmN0aW9uIGFkZFRvTG9nKGxvZykgewotICBpZiAoc2hv
d1RpbWVTdGFtcCkgewotICAgIGxvZ0JveC52YWx1ZSArPSAnWycgKyBnZXRUaW1lU3RhbXAoKSAr
ICddICc7Ci0gIH0KLSAgbG9nQm94LnZhbHVlICs9IGxvZyArICdcbicKLSAgLy8gTGFyZ2UgZW5v
dWdoIHRvIGtlZXAgc2hvd2luZyB0aGUgbGF0ZXN0IG1lc3NhZ2UuCi0gIGxvZ0JveC5zY3JvbGxU
b3AgPSAxMDAwMDAwOwotfQotCi1mdW5jdGlvbiBzZXRiaW5hcnl0eXBlKGJpbmFyeVR5cGUpIHsK
LSAgaWYgKCFzb2NrZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwotICAgIHJl
dHVybjsKLSAgfQotCi0gIHNvY2tldC5iaW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKLSAgYWRkVG9M
b2coJ1NldCBiaW5hcnlUeXBlIHRvICcgKyBiaW5hcnlUeXBlKTsKLX0KLQotZnVuY3Rpb24gc2Vu
ZCgpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwot
ICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5zZW5kKG1lc3NhZ2VCb3gudmFsdWUpOwotICBh
ZGRUb0xvZygnPiAnICsgbWVzc2FnZUJveC52YWx1ZSk7Ci0gIG1lc3NhZ2VCb3gudmFsdWUgPSAn
JzsKLX0KLQotZnVuY3Rpb24gc2VuZGZpbGUoKSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRk
VG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICB2YXIgZmlsZXMg
PSBmaWxlQm94LmZpbGVzOwotCi0gIGlmIChmaWxlcy5sZW5ndGggPT0gMCkgewotICAgIGFkZFRv
TG9nKCdGaWxlIG5vdCBzZWxlY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5z
ZW5kKGZpbGVzWzBdKTsKLSAgYWRkVG9Mb2coJz4gU2VuZCAnICsgZmlsZXNbMF0ubmFtZSk7Ci19
Ci0KLWZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xzKHByb3RvY29sc1RleHQpIHsKLSAgdmFyIHByb3Rv
Y29scyA9IHByb3RvY29sc1RleHQuc3BsaXQoJywnKTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBw
cm90b2NvbHMubGVuZ3RoOyArK2kpIHsKLSAgICBwcm90b2NvbHNbaV0gPSBwcm90b2NvbHNbaV0u
dHJpbSgpOwotICB9Ci0KLSAgaWYgKHByb3RvY29scy5sZW5ndGggPT0gMCkgewotICAgIC8vIERv
bid0IHBhc3MuCi0gICAgcHJvdG9jb2xzID0gbnVsbDsKLSAgfSBlbHNlIGlmIChwcm90b2NvbHMu
bGVuZ3RoID09IDEpIHsKLSAgICBpZiAocHJvdG9jb2xzWzBdLmxlbmd0aCA9PSAwKSB7Ci0gICAg
ICAvLyBEb24ndCBwYXNzLgotICAgICAgcHJvdG9jb2xzID0gbnVsbDsKLSAgICB9IGVsc2Ugewot
ICAgICAgLy8gUGFzcyBhcyBhIHN0cmluZy4KLSAgICAgIHByb3RvY29scyA9IHByb3RvY29sc1sw
XTsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gcHJvdG9jb2xzOwotfQotCi1mdW5jdGlvbiBjb25u
ZWN0KCkgewotICB2YXIgdXJsID0gYWRkcmVzc0JveC52YWx1ZTsKLSAgdmFyIHByb3RvY29scyA9
IHBhcnNlUHJvdG9jb2xzKHByb3RvY29sc0JveC52YWx1ZSk7Ci0KLSAgaWYgKCdXZWJTb2NrZXQn
IGluIHdpbmRvdykgewotICAgIGlmIChwcm90b2NvbHMpIHsKLSAgICAgIHNvY2tldCA9IG5ldyBX
ZWJTb2NrZXQodXJsLCBwcm90b2NvbHMpOwotICAgIH0gZWxzZSB7Ci0gICAgICBzb2NrZXQgPSBu
ZXcgV2ViU29ja2V0KHVybCk7Ci0gICAgfQotICB9IGVsc2UgewotICAgIHJldHVybjsKLSAgfQot
Ci0gIHNvY2tldC5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGV4dHJhSW5mbyA9IFtd
OwotICAgIGlmICgoJ3Byb3RvY29sJyBpbiBzb2NrZXQpICYmIHNvY2tldC5wcm90b2NvbCkgewot
ICAgICAgZXh0cmFJbmZvLnB1c2goJ3Byb3RvY29sID0gJyArIHNvY2tldC5wcm90b2NvbCk7Ci0g
ICAgfQotICAgIGlmICgoJ2V4dGVuc2lvbnMnIGluIHNvY2tldCkgJiYgc29ja2V0LmV4dGVuc2lv
bnMpIHsKLSAgICAgIGV4dHJhSW5mby5wdXNoKCdleHRlbnNpb25zID0gJyArIHNvY2tldC5leHRl
bnNpb25zKTsKLSAgICB9Ci0KLSAgICB2YXIgbG9nTWVzc2FnZSA9ICdPcGVuZWQnOwotICAgIGlm
IChleHRyYUluZm8ubGVuZ3RoID4gMCkgewotICAgICAgbG9nTWVzc2FnZSArPSAnICgnICsgZXh0
cmFJbmZvLmpvaW4oJywgJykgKyAnKSc7Ci0gICAgfQotICAgIGFkZFRvTG9nKGxvZ01lc3NhZ2Up
OwotICB9OwotICBzb2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgaWYg
KCgnQXJyYXlCdWZmZXInIGluIHdpbmRvdykgJiYgKGV2ZW50LmRhdGEgaW5zdGFuY2VvZiBBcnJh
eUJ1ZmZlcikpIHsKLSAgICAgIGFkZFRvTG9nKCc8IFJlY2VpdmVkIGFuIEFycmF5QnVmZmVyIG9m
ICcgKyBldmVudC5kYXRhLmJ5dGVMZW5ndGggKwotICAgICAgICAgICAgICAgJyBieXRlcycpCi0g
ICAgfSBlbHNlIGlmICgoJ0Jsb2InIGluIHdpbmRvdykgJiYgKGV2ZW50LmRhdGEgaW5zdGFuY2Vv
ZiBCbG9iKSkgewotICAgICAgYWRkVG9Mb2coJzwgUmVjZWl2ZWQgYSBCbG9iIG9mICcgKyBldmVu
dC5kYXRhLnNpemUgKyAnIGJ5dGVzJykKLSAgICB9IGVsc2UgewotICAgICAgYWRkVG9Mb2coJzwg
JyArIGV2ZW50LmRhdGEpOwotICAgIH0KLSAgfTsKLSAgc29ja2V0Lm9uZXJyb3IgPSBmdW5jdGlv
biAoKSB7Ci0gICAgYWRkVG9Mb2coJ0Vycm9yJyk7Ci0gIH07Ci0gIHNvY2tldC5vbmNsb3NlID0g
ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgdmFyIGxvZ01lc3NhZ2UgPSAnQ2xvc2VkICgnOwotICAg
IGlmICgoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSAmJiAoJ0Nsb3NlRXZlbnQnIGluIHdpbmRvdykg
JiYKLSAgICAgICAgKGV2ZW50IGluc3RhbmNlb2YgQ2xvc2VFdmVudCkpIHsKLSAgICAgIGxvZ01l
c3NhZ2UgKz0gJ3dhc0NsZWFuID0gJyArIGV2ZW50Lndhc0NsZWFuOwotICAgICAgLy8gY29kZSBh
bmQgcmVhc29uIGFyZSBwcmVzZW50IG9ubHkgZm9yCi0gICAgICAvLyBkcmFmdC1pZXRmLWh5Ymkt
dGhld2Vic29ja2V0cHJvdG9jb2wtMDYgYW5kIGxhdGVyCi0gICAgICBpZiAoJ2NvZGUnIGluIGV2
ZW50KSB7Ci0gICAgICAgIGxvZ01lc3NhZ2UgKz0gJywgY29kZSA9ICcgKyBldmVudC5jb2RlOwot
ICAgICAgfQotICAgICAgaWYgKCdyZWFzb24nIGluIGV2ZW50KSB7Ci0gICAgICAgIGxvZ01lc3Nh
Z2UgKz0gJywgcmVhc29uID0gJyArIGV2ZW50LnJlYXNvbjsKLSAgICAgIH0KLSAgICB9IGVsc2Ug
ewotICAgICAgbG9nTWVzc2FnZSArPSAnQ2xvc2VFdmVudCBpcyBub3QgYXZhaWxhYmxlJzsKLSAg
ICB9Ci0gICAgYWRkVG9Mb2cobG9nTWVzc2FnZSArICcpJyk7Ci0gIH07Ci0KLSAgaWYgKHByb3Rv
Y29scykgewotICAgIGFkZFRvTG9nKCdDb25uZWN0ICcgKyB1cmwgKyAnIChwcm90b2NvbHMgPSAn
ICsgcHJvdG9jb2xzICsgJyknKTsKLSAgfSBlbHNlIHsKLSAgICBhZGRUb0xvZygnQ29ubmVjdCAn
ICsgdXJsKTsKLSAgfQotfQotCi1mdW5jdGlvbiBjbG9zZVNvY2tldCgpIHsKLSAgaWYgKCFzb2Nr
ZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQot
Ci0gIGlmIChjb2RlQm94LnZhbHVlIHx8IHJlYXNvbkJveC52YWx1ZSkgewotICAgIHNvY2tldC5j
bG9zZShjb2RlQm94LnZhbHVlLCByZWFzb25Cb3gudmFsdWUpOwotICB9IGVsc2UgewotICAgIHNv
Y2tldC5jbG9zZSgpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHByaW50U3RhdGUoKSB7Ci0gIGlmICgh
c29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0g
IH0KLQotICBhZGRUb0xvZygKLSAgICAgICd1cmwgPSAnICsgc29ja2V0LnVybCArCi0gICAgICAn
LCByZWFkeVN0YXRlID0gJyArIHNvY2tldC5yZWFkeVN0YXRlICsKLSAgICAgICcsIGJ1ZmZlcmVk
QW1vdW50ID0gJyArIHNvY2tldC5idWZmZXJlZEFtb3VudCk7Ci19Ci0KLWZ1bmN0aW9uIGluaXQo
KSB7Ci0gIHZhciBzY2hlbWUgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicg
PyAnd3NzOi8vJyA6ICd3czovLyc7Ci0gIHZhciBkZWZhdWx0QWRkcmVzcyA9IHNjaGVtZSArIHdp
bmRvdy5sb2NhdGlvbi5ob3N0ICsgJy9lY2hvJzsKLQotICBhZGRyZXNzQm94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2FkZHJlc3MnKTsKLSAgcHJvdG9jb2xzQm94ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Byb3RvY29scycpOwotICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbG9nJyk7Ci0gIG1lc3NhZ2VCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVz
c2FnZScpOwotICBmaWxlQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGUnKTsKLSAg
Y29kZUJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb2RlJyk7Ci0gIHJlYXNvbkJveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWFzb24nKTsKLQotICBhZGRyZXNzQm94LnZhbHVl
ID0gZGVmYXVsdEFkZHJlc3M7Ci0KLSAgaWYgKCEoJ1dlYlNvY2tldCcgaW4gd2luZG93KSkgewot
ICAgIGFkZFRvTG9nKCdXZWJTb2NrZXQgaXMgbm90IGF2YWlsYWJsZScpOwotICB9Ci19Ci08L3Nj
cmlwdD4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci1mb3JtIHsKLSAgbWFyZ2luOiAwcHg7Ci19
Ci0KLSNjb25uZWN0X2RpdiwgI2xvZ19kaXYsICNzZW5kX2RpdiwgI3NlbmRmaWxlX2RpdiwgI2Ns
b3NlX2RpdiwgI3ByaW50c3RhdGVfZGl2IHsKLSAgcGFkZGluZzogNXB4OwotICBtYXJnaW46IDVw
eDsKLSAgYm9yZGVyLXdpZHRoOiAwcHggMHB4IDBweCAxMHB4OwotICBib3JkZXItc3R5bGU6IHNv
bGlkOwotICBib3JkZXItY29sb3I6IHNpbHZlcjsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9ImluaXQoKSI+Ci0KLTxkaXY+Ci0KLTxkaXYgaWQ9ImNvbm5lY3RfZGl2Ij4KLSAg
PGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0iY29ubmVjdCgpOyByZXR1cm4gZmFsc2U7Ij4KLSAg
ICB1cmwgPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+Ci0gICAgPGlu
cHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ImNvbm5lY3QiPgotICAgIDxici8+Ci0gICAgcHJvdG9j
b2xzIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icHJvdG9jb2xzIiBzaXplPSIyMCI+Ci0gIDwvZm9y
bT4KLTwvZGl2PgotCi08ZGl2IGlkPSJsb2dfZGl2Ij4KLSAgPHRleHRhcmVhIGlkPSJsb2ciIHJv
d3M9IjEwIiBjb2xzPSI0MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLSAgPGJyLz4KLSAgPGlucHV0
IHR5cGU9ImNoZWNrYm94IgotICAgICAgICAgbmFtZT0ic2hvd3RpbWVzdGFtcCIKLSAgICAgICAg
IHZhbHVlPSJzaG93dGltZXN0YW1wIgotICAgICAgICAgb25jbGljaz0ic2hvd1RpbWVTdGFtcCA9
IHRoaXMuY2hlY2tlZCI+U2hvdyB0aW1lIHN0YW1wCi08L2Rpdj4KLQotPGRpdiBpZD0ic2VuZF9k
aXYiPgotICA8Zm9ybSBhY3Rpb249IiMiIG9uc3VibWl0PSJzZW5kKCk7IHJldHVybiBmYWxzZTsi
PgotICAgIGRhdGEgPGlucHV0IHR5cGU9InRleHQiIGlkPSJtZXNzYWdlIiBzaXplPSI0MCI+Ci0g
ICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9InNlbmQiPgotICA8L2Zvcm0+Ci08L2Rpdj4K
LQotPGRpdiBpZD0ic2VuZGZpbGVfZGl2Ij4KLSAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0i
c2VuZGZpbGUoKTsgcmV0dXJuIGZhbHNlOyI+Ci0gICAgPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJm
aWxlIiBzaXplPSI0MCI+Ci0gICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9InNlbmQgZmls
ZSI+Ci0gIDwvZm9ybT4KLQotICBTZXQgYmluYXJ5VHlwZQotICA8aW5wdXQgdHlwZT0icmFkaW8i
Ci0gICAgICAgICBuYW1lPSJiaW5hcnl0eXBlIgotICAgICAgICAgdmFsdWU9ImJsb2IiCi0gICAg
ICAgICBvbmNsaWNrPSJzZXRiaW5hcnl0eXBlKCdibG9iJykiIGNoZWNrZWQ+YmxvYgotICA8aW5w
dXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJiaW5hcnl0eXBlIgotICAgICAgICAgdmFs
dWU9ImFycmF5YnVmZmVyIgotICAgICAgICAgb25jbGljaz0ic2V0YmluYXJ5dHlwZSgnYXJyYXli
dWZmZXInKSI+YXJyYXlidWZmZXIKLTwvZGl2PgotCi08ZGl2IGlkPSJjbG9zZV9kaXYiPgotICA8
Zm9ybSBhY3Rpb249IiMiIG9uc3VibWl0PSJjbG9zZVNvY2tldCgpOyByZXR1cm4gZmFsc2U7Ij4K
LSAgICBjb2RlIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY29kZSIgc2l6ZT0iMTAiPgotICAgIHJl
YXNvbiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlYXNvbiIgc2l6ZT0iMjAiPgotICAgIDxpbnB1
dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJjbG9zZSI+Ci0gIDwvZm9ybT4KLTwvZGl2PgotCi08ZGl2
IGlkPSJwcmludHN0YXRlX2RpdiI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJwcmlu
dCBzdGF0ZSIgb25jbGljaz0icHJpbnRTdGF0ZSgpOyI+Ci08L2Rpdj4KLQotPC9kaXY+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb29raWVfd3NoLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL2Nvb2tpZV93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhiMzI3MTUyZTcwMWY3ZDIwMzFkN2M5Y2UwNDYyNGNmYTg0YWMxNmQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nvb2tpZV93c2gu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0jIENvcHlyaWdodCAyMDE0IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0jIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQg
aW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotIyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNv
bS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotCi1pbXBvcnQgdXJscGFyc2UKLQotCi1kZWYg
X2FkZF9zZXRfY29va2llKHJlcXVlc3QsIHZhbHVlKToKLSAgICByZXF1ZXN0LmV4dHJhX2hlYWRl
cnMuYXBwZW5kKCgnU2V0LUNvb2tpZScsIHZhbHVlKSkKLQotCi1kZWYgd2ViX3NvY2tldF9kb19l
eHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgY29tcG9uZW50cyA9IHVybHBhcnNlLnVybHBh
cnNlKHJlcXVlc3QudXJpKQotICAgIGNvbW1hbmQgPSBjb21wb25lbnRzWzRdCi0KLSAgICBPTkVf
REFZX0xJRkUgPSAnTWF4LUFnZT04NjQwMCcKLQotICAgIGlmIGNvbW1hbmQgPT0gJ3NldCc6Ci0g
ICAgICAgIF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCAnOyAnLmpvaW4oWydmb289YmFyJywgT05F
X0RBWV9MSUZFXSkpCi0gICAgZWxpZiBjb21tYW5kID09ICdzZXRfaHR0cG9ubHknOgotICAgICAg
ICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwKLSAgICAgICAgICAgICc7ICcuam9pbihbJ2h0dHBP
bmx5Rm9vPWJhcicsIE9ORV9EQVlfTElGRSwgJ2h0dHBPbmx5J10pKQotICAgIGVsaWYgY29tbWFu
ZCA9PSAnY2xlYXInOgotICAgICAgICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwgJ2Zvbz0wOyBN
YXgtQWdlPTAnKQotICAgICAgICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwgJ2h0dHBPbmx5Rm9v
PTA7IE1heC1BZ2U9MCcpCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0
KToKLSAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19jbGllbnQucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvZWNob19jbGllbnQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhhYzc0MGU3MDU4YmQzMWE3OGJjZjFiMWI4OTdkM2JkZjNmYzdkNGIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTEyOSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRo
b24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmli
dXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlNpbXBsZSBXZWJTb2NrZXQgY2xpZW50IG5h
bWVkIGVjaG9fY2xpZW50IGp1c3QgYmVjYXVzZSBvZiBoaXN0b3JpY2FsIHJlYXNvbi4KLQotbW9k
X3B5d2Vic29ja2V0IGRpcmVjdG9yeSBtdXN0IGJlIGluIFBZVEhPTlBBVEguCi0KLUV4YW1wbGUg
VXNhZ2U6Ci0KLSMgc2VydmVyIHNldHVwCi0gJSBjZCAkcHl3ZWJzb2NrZXQKLSAlIFBZVEhPTlBB
VEg9JGN3ZC9zcmMgcHl0aG9uIC4vbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgLXAgODg4
MCBcCi0gICAgLWQgJGN3ZC9zcmMvZXhhbXBsZQotCi0jIHJ1biBjbGllbnQKLSAlIFBZVEhPTlBB
VEg9JGN3ZC9zcmMgcHl0aG9uIC4vc3JjL2V4YW1wbGUvZWNob19jbGllbnQucHkgLXAgODg4MCBc
Ci0gICAgIC1zIGxvY2FsaG9zdCBcCi0gICAgIC1vIGh0dHA6Ly9sb2NhbGhvc3QgLXIgL2VjaG8g
LW0gdGVzdAotCi1vcgotCi0jIHJ1biBlY2hvIGNsaWVudCB0byB0ZXN0IElFVEYgSHlCaSAwMCBw
cm90b2NvbAotIHJ1biB3aXRoIC0tcHJvdG9jb2wtdmVyc2lvbj1oeWJpMDAKLSIiIgotZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgotCi0KLWltcG9ydCBiYXNlNjQKLWltcG9y
dCBjb2RlY3MKLWltcG9ydCBsb2dnaW5nCi1mcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJz
ZXIKLWltcG9ydCBvcwotaW1wb3J0IHJhbmRvbQotaW1wb3J0IHJlCi1pbXBvcnQgc29ja2V0Ci1p
bXBvcnQgc3RydWN0Ci1pbXBvcnQgc3lzCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBj
b21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IERlZmxhdGVGcmFt
ZUV4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBv
cnQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IKLWZyb20gbW9kX3B5d2Vic29j
a2V0LmV4dGVuc2lvbnMgaW1wb3J0IF9QZXJNZXNzYWdlRGVmbGF0ZUZyYW1lcgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgX3BhcnNlX3dpbmRvd19iaXRzCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
c3RyZWFtIGltcG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0g
aW1wb3J0IFN0cmVhbU9wdGlvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0K
LQotX1RJTUVPVVRfU0VDID0gMTAKLV9VTkRFRklORURfUE9SVCA9IC0xCi0KLV9VUEdSQURFX0hF
QURFUiA9ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwotX1VQR1JBREVfSEVBREVSX0hJWElFNzUg
PSAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLV9DT05ORUNUSU9OX0hFQURFUiA9ICdDb25uZWN0
aW9uOiBVcGdyYWRlXHJcbicKLQotIyBTcGVjaWFsIG1lc3NhZ2UgdGhhdCB0ZWxscyB0aGUgZWNo
byBzZXJ2ZXIgdG8gc3RhcnQgY2xvc2luZyBoYW5kc2hha2UKLV9HT09EQllFX01FU1NBR0UgPSAn
R29vZGJ5ZScKLQotX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzID0gJ2h5YmkxMycKLV9QUk9UT0NP
TF9WRVJTSU9OX0hZQkkwOCA9ICdoeWJpMDgnCi1fUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDAgPSAn
aHliaTAwJwotX1BST1RPQ09MX1ZFUlNJT05fSElYSUU3NSA9ICdoaXhpZTc1JwotCi0jIENvbnN0
YW50cyBmb3IgdGhlIC0tdGxzX21vZHVsZSBmbGFnLgotX1RMU19CWV9TVEFOREFSRF9NT0RVTEUg
PSAnc3NsJwotX1RMU19CWV9QWU9QRU5TU0wgPSAncHlvcGVuc3NsJwotCi0jIFZhbHVlcyB1c2Vk
IGJ5IHRoZSAtLXRscy12ZXJzaW9uIGZsYWcuCi1fVExTX1ZFUlNJT05fU1NMMjMgPSAnc3NsMjMn
Ci1fVExTX1ZFUlNJT05fU1NMMyA9ICdzc2wzJwotX1RMU19WRVJTSU9OX1RMUzEgPSAndGxzMScK
LQotCi1jbGFzcyBDbGllbnRIYW5kc2hha2VFcnJvcihFeGNlcHRpb24pOgotICAgIHBhc3MKLQot
Ci1kZWYgX2J1aWxkX21ldGhvZF9saW5lKHJlc291cmNlKToKLSAgICByZXR1cm4gJ0dFVCAlcyBI
VFRQLzEuMVxyXG4nICUgcmVzb3VyY2UKLQotCi1kZWYgX29yaWdpbl9oZWFkZXIoaGVhZGVyLCBv
cmlnaW4pOgotICAgICMgNC4xIDEzLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgIk9yaWdp
bjoiLCBhIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIsCi0gICAgIyBhbmQgdGhlIC9vcmlnaW4vIHZh
bHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0byAvZmllbGRzLy4KLSAgICByZXR1
cm4gJyVzOiAlc1xyXG4nICUgKGhlYWRlciwgb3JpZ2luLmxvd2VyKCkpCi0KLQotZGVmIF9mb3Jt
YXRfaG9zdF9oZWFkZXIoaG9zdCwgcG9ydCwgc2VjdXJlKToKLSAgICAjIDQuMSA5LiBMZXQgL2hv
c3Rwb3J0LyBiZSBhbiBlbXB0eSBzdHJpbmcuCi0gICAgIyA0LjEgMTAuIEFwcGVuZCB0aGUgL2hv
c3QvIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0bwotICAgICMgL2hvc3Rw
b3J0LwotICAgIGhvc3Rwb3J0ID0gaG9zdC5sb3dlcigpCi0gICAgIyA0LjEgMTEuIElmIC9zZWN1
cmUvIGlzIGZhbHNlLCBhbmQgL3BvcnQvIGlzIG5vdCA4MCwgb3IgaWYgL3NlY3VyZS8KLSAgICAj
IGlzIHRydWUsIGFuZCAvcG9ydC8gaXMgbm90IDQ0MywgdGhlbiBhcHBlbmQgYSBVKzAwM0EgQ09M
T04gY2hhcmFjdGVyCi0gICAgIyAoOikgZm9sbG93ZWQgYnkgdGhlIHZhbHVlIG9mIC9wb3J0Lywg
ZXhwcmVzc2VkIGFzIGEgYmFzZS10ZW4gaW50ZWdlciwKLSAgICAjIHRvIC9ob3N0cG9ydC8KLSAg
ICBpZiAoKG5vdCBzZWN1cmUgYW5kIHBvcnQgIT0gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9Q
T1JUKSBvcgotICAgICAgICAoc2VjdXJlIGFuZCBwb3J0ICE9IGNvbW1vbi5ERUZBVUxUX1dFQl9T
T0NLRVRfU0VDVVJFX1BPUlQpKToKLSAgICAgICAgaG9zdHBvcnQgKz0gJzonICsgc3RyKHBvcnQp
Ci0gICAgIyA0LjEgMTIuIGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZyAiSG9zdDoiLCBhIFUr
MDAyMCBTUEFDRQotICAgICMgY2hhcmFjdGVyLCBhbmQgL2hvc3Rwb3J0LywgdG8gL2ZpZWxkcy8u
Ci0gICAgcmV0dXJuICclczogJXNcclxuJyAlIChjb21tb24uSE9TVF9IRUFERVIsIGhvc3Rwb3J0
KQotCi0KLWRlZiBfcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIGxlbmd0aCk6Ci0gICAgYnl0ZXMgPSBb
XQotICAgIHJlbWFpbmluZyA9IGxlbmd0aAotICAgIHdoaWxlIHJlbWFpbmluZyA+IDA6Ci0gICAg
ICAgIHJlY2VpdmVkX2J5dGVzID0gc29ja2V0LnJlY3YocmVtYWluaW5nKQotICAgICAgICBpZiBu
b3QgcmVjZWl2ZWRfYnl0ZXM6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKAotICAgICAgICAg
ICAgICAgICdDb25uZWN0aW9uIGNsb3NlZCBiZWZvcmUgcmVjZWl2aW5nIHJlcXVlc3RlZCBsZW5n
dGggJwotICAgICAgICAgICAgICAgICcocmVxdWVzdGVkICVkIGJ5dGVzIGJ1dCByZWNlaXZlZCBv
bmx5ICVkIGJ5dGVzKScgJQotICAgICAgICAgICAgICAgIChsZW5ndGgsIGxlbmd0aCAtIHJlbWFp
bmluZykpCi0gICAgICAgIGJ5dGVzLmFwcGVuZChyZWNlaXZlZF9ieXRlcykKLSAgICAgICAgcmVt
YWluaW5nIC09IGxlbihyZWNlaXZlZF9ieXRlcykKLSAgICByZXR1cm4gJycuam9pbihieXRlcykK
LQotCi1kZWYgX2dldF9tYW5kYXRvcnlfaGVhZGVyKGZpZWxkcywgbmFtZSk6Ci0gICAgIiIiR2V0
cyB0aGUgdmFsdWUgb2YgdGhlIGhlYWRlciBzcGVjaWZpZWQgYnkgbmFtZSBmcm9tIGZpZWxkcy4K
LQotICAgIFRoaXMgZnVuY3Rpb24gZXhwZWN0cyB0aGF0IHRoZXJlJ3Mgb25seSBvbmUgaGVhZGVy
IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lCi0gICAgaW4gZmllbGRzLiBPdGhlcndpc2UsIHJhaXNl
cyBhbiBDbGllbnRIYW5kc2hha2VFcnJvci4KLSAgICAiIiIKLQotICAgIHZhbHVlcyA9IGZpZWxk
cy5nZXQobmFtZS5sb3dlcigpKQotICAgIGlmIHZhbHVlcyBpcyBOb25lIG9yIGxlbih2YWx1ZXMp
ID09IDA6Ci0gICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAg
JyVzIGhlYWRlciBub3QgZm91bmQ6ICVyJyAlIChuYW1lLCB2YWx1ZXMpKQotICAgIGlmIGxlbih2
YWx1ZXMpID4gMToKLSAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAg
ICAgICAnTXVsdGlwbGUgJXMgaGVhZGVycyBmb3VuZDogJXInICUgKG5hbWUsIHZhbHVlcykpCi0g
ICAgcmV0dXJuIHZhbHVlc1swXQotCi0KLWRlZiBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcihm
aWVsZHMsIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdmFs
dWUsIGNhc2Vfc2Vuc2l0aXZlPUZhbHNlKToKLSAgICAiIiJHZXRzIGFuZCB2YWxpZGF0ZXMgdGhl
IHZhbHVlIG9mIHRoZSBoZWFkZXIgc3BlY2lmaWVkIGJ5IG5hbWUgZnJvbQotICAgIGZpZWxkcy4K
LQotICAgIElmIGV4cGVjdGVkX3ZhbHVlIGlzIHNwZWNpZmllZCwgY29tcGFyZXMgZXhwZWN0ZWQg
dmFsdWUgYW5kIGFjdHVhbCB2YWx1ZQotICAgIGFuZCByYWlzZXMgYW4gQ2xpZW50SGFuZHNoYWtl
RXJyb3Igb24gZmFpbHVyZS4gWW91IGNhbiBzcGVjaWZ5IGNhc2UKLSAgICBzZW5zaXRpdmVuZXNz
IGluIHRoaXMgY29tcGFyaXNvbiBieSBjYXNlX3NlbnNpdGl2ZSBwYXJhbWV0ZXIuIFRoaXMgZnVu
Y3Rpb24KLSAgICBleHBlY3RzIHRoYXQgdGhlcmUncyBvbmx5IG9uZSBoZWFkZXIgd2l0aCB0aGUg
c3BlY2lmaWVkIG5hbWUgaW4gZmllbGRzLgotICAgIE90aGVyd2lzZSwgcmFpc2VzIGFuIENsaWVu
dEhhbmRzaGFrZUVycm9yLgotICAgICIiIgotCi0gICAgdmFsdWUgPSBfZ2V0X21hbmRhdG9yeV9o
ZWFkZXIoZmllbGRzLCBuYW1lKQotCi0gICAgaWYgKChjYXNlX3NlbnNpdGl2ZSBhbmQgdmFsdWUg
IT0gZXhwZWN0ZWRfdmFsdWUpIG9yCi0gICAgICAgIChub3QgY2FzZV9zZW5zaXRpdmUgYW5kIHZh
bHVlLmxvd2VyKCkgIT0gZXhwZWN0ZWRfdmFsdWUubG93ZXIoKSkpOgotICAgICAgICByYWlzZSBD
bGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICdJbGxlZ2FsIHZhbHVlIGZvciBoZWFk
ZXIgJXM6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgIChuYW1l
LCBleHBlY3RlZF92YWx1ZSwgdmFsdWUpKQotCi0KLWNsYXNzIF9UTFNTb2NrZXQob2JqZWN0KToK
LSAgICAiIiJXcmFwcGVyIGZvciBhIFRMUyBjb25uZWN0aW9uLiIiIgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsCi0gICAgICAgICAgICAgICAgIHJhd19zb2NrZXQsIHRsc19tb2R1bGUsIHRsc192
ZXJzaW9uLCBkaXNhYmxlX3Rsc19jb21wcmVzc2lvbik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9
IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIGlmIHRsc19tb2R1bGUgPT0g
X1RMU19CWV9TVEFOREFSRF9NT0RVTEU6Ci0gICAgICAgICAgICBpZiB0bHNfdmVyc2lvbiA9PSBf
VExTX1ZFUlNJT05fU1NMMjM6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9IHNzbC5QUk9UT0NP
TF9TU0x2MjMKLSAgICAgICAgICAgIGVsaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1NT
TDM6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9IHNzbC5QUk9UT0NPTF9TU0x2MwotICAgICAg
ICAgICAgZWxpZiB0bHNfdmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fVExTMToKLSAgICAgICAgICAg
ICAgICB2ZXJzaW9uID0gc3NsLlBST1RPQ09MX1RMU3YxCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdJbnZh
bGlkIC0tdGxzLXZlcnNpb24gZmxhZzogJXInICUgdGxzX3ZlcnNpb24pCi0KLSAgICAgICAgICAg
IGlmIGRpc2FibGVfdGxzX2NvbXByZXNzaW9uOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICctLWRpc2FibGUtdGxzLWNvbXByZXNzaW9uIGlz
IG5vdCBhdmFpbGFibGUgZm9yIHNzbCAnCi0gICAgICAgICAgICAgICAgICAgICdtb2R1bGUnKQot
Ci0gICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0ID0gc3NsLndyYXBfc29ja2V0KHJhd19zb2Nr
ZXQsIHNzbF92ZXJzaW9uPXZlcnNpb24pCi0KLSAgICAgICAgICAgICMgUHJpbnQgY2lwaGVyIGlu
IHVzZS4gSGFuZHNoYWtlIGlzIGRvbmUgb24gd3JhcF9zb2NrZXQgY2FsbC4KLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5pbmZvKCJDaXBoZXI6ICVzIiwgc2VsZi5fdGxzX3NvY2tldC5jaXBoZXIo
KSkKLSAgICAgICAgZWxpZiB0bHNfbW9kdWxlID09IF9UTFNfQllfUFlPUEVOU1NMOgotICAgICAg
ICAgICAgaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1NTTDIzOgotICAgICAgICAgICAg
ICAgIHZlcnNpb24gPSBPcGVuU1NMLlNTTC5TU0x2MjNfTUVUSE9ECi0gICAgICAgICAgICBlbGlm
IHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9TU0wzOgotICAgICAgICAgICAgICAgIHZlcnNp
b24gPSBPcGVuU1NMLlNTTC5TU0x2M19NRVRIT0QKLSAgICAgICAgICAgIGVsaWYgdGxzX3ZlcnNp
b24gPT0gX1RMU19WRVJTSU9OX1RMUzE6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9IE9wZW5T
U0wuU1NMLlRMU3YxX01FVEhPRAotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCAtLXRscy12ZXJz
aW9uIGZsYWc6ICVyJyAlIHRsc192ZXJzaW9uKQotCi0gICAgICAgICAgICBjb250ZXh0ID0gT3Bl
blNTTC5TU0wuQ29udGV4dCh2ZXJzaW9uKQotCi0gICAgICAgICAgICBpZiBkaXNhYmxlX3Rsc19j
b21wcmVzc2lvbjoKLSAgICAgICAgICAgICAgICAjIE9QX05PX0NPTVBSRVNTSU9OIGlzIG5vdCBk
ZWZpbmVkIGluIE9wZW5TU0wgbW9kdWxlLgotICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0X29w
dGlvbnMoMHgwMDAyMDAwMCkKLQotICAgICAgICAgICAgc2VsZi5fdGxzX3NvY2tldCA9IE9wZW5T
U0wuU1NMLkNvbm5lY3Rpb24oY29udGV4dCwgcmF3X3NvY2tldCkKLSAgICAgICAgICAgICMgQ2xp
ZW50IG1vZGUuCi0gICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0LnNldF9jb25uZWN0X3N0YXRl
KCkKLSAgICAgICAgICAgIHNlbGYuX3Rsc19zb2NrZXQuc2V0YmxvY2tpbmcoVHJ1ZSkKLQotICAg
ICAgICAgICAgIyBEbyBoYW5kc2hha2Ugbm93IChub3QgbmVjZXNzYXJ5KS4KLSAgICAgICAgICAg
IHNlbGYuX3Rsc19zb2NrZXQuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoJ05vIFRMUyBzdXBwb3J0IG1vZHVsZSBpcyBhdmFpbGFibGUn
KQotCi0gICAgZGVmIHNlbmQoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNf
c29ja2V0LndyaXRlKGRhdGEpCi0KLSAgICBkZWYgc2VuZGFsbChzZWxmLCBkYXRhKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX3Rsc19zb2NrZXQuc2VuZGFsbChkYXRhKQotCi0gICAgZGVmIHJlY3Yo
c2VsZiwgc2l6ZT0tMSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNfc29ja2V0LnJlYWQoc2l6
ZSkKLQotICAgIGRlZiBjbG9zZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19zb2Nr
ZXQuY2xvc2UoKQotCi0gICAgZGVmIGdldHBlZXJuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4g
c2VsZi5fdGxzX3NvY2tldC5nZXRwZWVybmFtZSgpCi0KLQotY2xhc3MgQ2xpZW50SGFuZHNoYWtl
QmFzZShvYmplY3QpOgotICAgICIiIkEgYmFzZSBjbGFzcyBmb3IgV2ViU29ja2V0IG9wZW5pbmcg
aGFuZHNoYWtlIHByb2Nlc3NvcnMgZm9yIGVhY2gKLSAgICBwcm90b2NvbCB2ZXJzaW9uLgotICAg
ICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgIGRlZiBfcmVhZF9maWVsZHMoc2VsZik6
Ci0gICAgICAgICMgNC4xIDMyLiBsZXQgL2ZpZWxkcy8gYmUgYSBsaXN0IG9mIG5hbWUtdmFsdWUg
cGFpcnMsIGluaXRpYWxseSBlbXB0eS4KLSAgICAgICAgZmllbGRzID0ge30KLSAgICAgICAgd2hp
bGUgVHJ1ZTogICMgIkZpZWxkIgotICAgICAgICAgICAgIyA0LjEgMzMuIGxldCAvbmFtZS8gYW5k
IC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAgICAgICAgICAgIG5hbWUgPSAnJwotICAg
ICAgICAgICAgdmFsdWUgPSAnJwotICAgICAgICAgICAgIyA0LjEgMzQuIHJlYWQgL25hbWUvCi0g
ICAgICAgICAgICBuYW1lID0gc2VsZi5fcmVhZF9uYW1lKCkKLSAgICAgICAgICAgIGlmIG5hbWUg
aXMgTm9uZToKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgIyA0LjEgMzUuIHJl
YWQgc3BhY2VzCi0gICAgICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBTa2lwIG9ubHkgb25lIHNw
YWNlIGFzIGRlc2NyaWJlZCBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNoID0gc2VsZi5fc2tp
cF9zcGFjZXMoKQotICAgICAgICAgICAgIyA0LjEgMzYuIHJlYWQgL3ZhbHVlLwotICAgICAgICAg
ICAgdmFsdWUgPSBzZWxmLl9yZWFkX3ZhbHVlKGNoKQotICAgICAgICAgICAgIyA0LjEgMzcuIHJl
YWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgotICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRl
cyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0g
ICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAg
ICAgICAgICdFeHBlY3RlZCBMRiBidXQgZm91bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBm
b3IgJwotICAgICAgICAgICAgICAgICAgICAnaGVhZGVyICVyJyAlIChjaCwgdmFsdWUsIG5hbWUp
KQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCAlciBoZWFkZXInLCBu
YW1lKQotICAgICAgICAgICAgIyA0LjEgMzguIGFwcGVuZCBhbiBlbnRyeSB0byB0aGUgL2ZpZWxk
cy8gbGlzdCB0aGF0IGhhcyB0aGUgbmFtZQotICAgICAgICAgICAgIyBnaXZlbiBieSB0aGUgc3Ry
aW5nIG9idGFpbmVkIGJ5IGludGVycHJldGluZyB0aGUgL25hbWUvIGJ5dGUKLSAgICAgICAgICAg
ICMgYXJyYXkgYXMgYSBVVEYtOCBzdHJlYW0gYW5kIHRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgc3Ry
aW5nCi0gICAgICAgICAgICAjIG9idGFpbmVkIGJ5IGludGVycHJldGluZyB0aGUgL3ZhbHVlLyBi
eXRlIGFycmF5IGFzIGEgVVRGLTggYnl0ZQotICAgICAgICAgICAgIyBzdHJlYW0uCi0gICAgICAg
ICAgICBmaWVsZHMuc2V0ZGVmYXVsdChuYW1lLCBbXSkuYXBwZW5kKHZhbHVlKQotICAgICAgICAg
ICAgIyA0LjEgMzkuIHJldHVybiB0byB0aGUgIkZpZWxkIiBzdGVwIGFib3ZlCi0gICAgICAgIHJl
dHVybiBmaWVsZHMKLQotICAgIGRlZiBfcmVhZF9uYW1lKHNlbGYpOgotICAgICAgICAjIDQuMSAz
My4gbGV0IC9uYW1lLyBiZSBlbXB0eSBieXRlIGFycmF5cwotICAgICAgICBuYW1lID0gJycKLSAg
ICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICMgNC4xIDM0LiByZWFkIGEgYnl0ZSBmcm9t
IHRoZSBzZXJ2ZXIKLSAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0
LCAxKQotICAgICAgICAgICAgaWYgY2ggPT0gJ1xyJzogICMgMHgwRAotICAgICAgICAgICAgICAg
IHJldHVybiBOb25lCi0gICAgICAgICAgICBlbGlmIGNoID09ICdcbic6ICAjIDB4MEEKLSAgICAg
ICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAg
ICAgJ1VuZXhwZWN0ZWQgTEYgd2hlbiByZWFkaW5nIGhlYWRlciBuYW1lICVyJyAlIG5hbWUpCi0g
ICAgICAgICAgICBlbGlmIGNoID09ICc6JzogICMgMHgzQQotICAgICAgICAgICAgICAgIHJldHVy
biBuYW1lCi0gICAgICAgICAgICBlbGlmIGNoID49ICdBJyBhbmQgY2ggPD0gJ1onOiAgIyBSYW5n
ZSAweDMxIHRvIDB4NUEKLSAgICAgICAgICAgICAgICBjaCA9IGNocihvcmQoY2gpICsgMHgyMCkK
LSAgICAgICAgICAgICAgICBuYW1lICs9IGNoCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIG5hbWUgKz0gY2gKLQotICAgIGRlZiBfc2tpcF9zcGFjZXMoc2VsZik6Ci0gICAgICAg
ICMgNC4xIDM1LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAgICAgd2hpbGUgVHJ1
ZToKLSAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAg
ICAgICAgICAgaWYgY2ggPT0gJyAnOiAgIyAweDIwCi0gICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgICAgIHJldHVybiBjaAotCi0gICAgZGVmIF9yZWFkX3ZhbHVlKHNlbGYsIGNoKToK
LSAgICAgICAgIyA0LjEgMzMuIGxldCAvdmFsdWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAg
ICAgIHZhbHVlID0gJycKLSAgICAgICAgIyA0LjEgMzYuIHJlYWQgYSBieXRlIGZyb20gc2VydmVy
LgotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYgY2ggPT0gJ1xyJzogICMgMHgw
RAotICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZQotICAgICAgICAgICAgZWxpZiBjaCA9PSAn
XG4nOiAgIyAweDBBCi0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3Io
Ci0gICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIExGIHdoZW4gcmVhZGluZyBoZWFkZXIg
dmFsdWUgJXInICUgdmFsdWUpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHZh
bHVlICs9IGNoCi0gICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwg
MSkKLQotCi1kZWYgX2dldF9wZXJtZXNzYWdlX2RlZmxhdGVfZnJhbWVyKGV4dGVuc2lvbl9yZXNw
b25zZSk6Ci0gICAgIiIiVmFsaWRhdGUgdGhlIHJlc3BvbnNlIGFuZCByZXR1cm4gYSBmcmFtZXIg
b2JqZWN0IHVzaW5nIHRoZSBwYXJhbWV0ZXJzIGluCi0gICAgdGhlIHJlc3BvbnNlLiBUaGlzIG1l
dGhvZCBkb2Vzbid0IGFjY2VwdCB0aGUgc2VydmVyXy4qIHBhcmFtZXRlcnMuCi0gICAgIiIiCi0K
LSAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRzID0gTm9uZQotICAgIGNsaWVudF9ub19jb250ZXh0
X3Rha2VvdmVyID0gTm9uZQotCi0gICAgY2xpZW50X21heF93aW5kb3dfYml0c19uYW1lID0gKAot
ICAgICAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuCi0gICAgICAg
ICAgICAgICAgICAgIF9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKQotICAgIGNsaWVudF9u
b19jb250ZXh0X3Rha2VvdmVyX25hbWUgPSAoCi0gICAgICAgICAgICBQZXJNZXNzYWdlRGVmbGF0
ZUV4dGVuc2lvblByb2Nlc3Nvci4KLSAgICAgICAgICAgICAgICAgICAgX0NMSUVOVF9OT19DT05U
RVhUX1RBS0VPVkVSX1BBUkFNKQotCi0gICAgIyBXZSBkaWRuJ3Qgc2VuZCBhbnkgc2VydmVyXy4q
IHBhcmFtZXRlci4KLSAgICAjIEhhbmRsZSB0aG9zZSBwYXJhbWV0ZXJzIGFzIGludmFsaWQgaWYg
Zm91bmQgaW4gdGhlIHJlc3BvbnNlLgotCi0gICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVl
IGluIGV4dGVuc2lvbl9yZXNwb25zZS5nZXRfcGFyYW1ldGVycygpOgotICAgICAgICBpZiBwYXJh
bV9uYW1lID09IGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZToKLSAgICAgICAgICAgIGlmIGNs
aWVudF9tYXhfd2luZG93X2JpdHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
Q2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGlwbGUg
JXMgZm91bmQnICUgY2xpZW50X21heF93aW5kb3dfYml0c19uYW1lKQotCi0gICAgICAgICAgICBw
YXJzZWRfdmFsdWUgPSBfcGFyc2Vfd2luZG93X2JpdHMocGFyYW1fdmFsdWUpCi0gICAgICAgICAg
ICBpZiBwYXJzZWRfdmFsdWUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBDbGllbnRI
YW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICdCYWQgJXM6ICVyJyAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAoY2xpZW50X21heF93aW5kb3dfYml0c19uYW1lLCBwYXJh
bV92YWx1ZSkpCi0gICAgICAgICAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRzID0gcGFyc2VkX3Zh
bHVlCi0gICAgICAgIGVsaWYgcGFyYW1fbmFtZSA9PSBjbGllbnRfbm9fY29udGV4dF90YWtlb3Zl
cl9uYW1lOgotICAgICAgICAgICAgaWYgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnTXVsdGlwbGUgJXMgZm91bmQnICUgY2xpZW50X25vX2NvbnRl
eHRfdGFrZW92ZXJfbmFtZSkKLQotICAgICAgICAgICAgaWYgcGFyYW1fdmFsdWUgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAnQmFkICVzOiBIYXMgdmFsdWUgJXInICUKLSAgICAgICAgICAgICAg
ICAgICAgICAgIChjbGllbnRfbm9fY29udGV4dF90YWtlb3Zlcl9uYW1lLCBwYXJhbV92YWx1ZSkp
Ci0gICAgICAgICAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IFRydWUKLQotICAgIGlm
IGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyIGlzIE5vbmU6Ci0gICAgICAgIGNsaWVudF9ub19j
b250ZXh0X3Rha2VvdmVyID0gRmFsc2UKLQotICAgIHJldHVybiBfUGVyTWVzc2FnZURlZmxhdGVG
cmFtZXIoY2xpZW50X21heF93aW5kb3dfYml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0KLWNsYXNzIENsaWVudEhh
bmRzaGFrZVByb2Nlc3NvcihDbGllbnRIYW5kc2hha2VCYXNlKToKLSAgICAiIiJXZWJTb2NrZXQg
b3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvcgotICAgIGRyYWZ0LWlldGYtaHliaS10aGV3
ZWJzb2NrZXRwcm90b2NvbC0wNiBhbmQgbGF0ZXIuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgc29ja2V0LCBvcHRpb25zKToKLSAgICAgICAgc3VwZXIoQ2xpZW50SGFuZHNoYWtl
UHJvY2Vzc29yLCBzZWxmKS5fX2luaXRfXygpCi0KLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29j
a2V0Ci0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0KLSAgICAgICAgc2VsZi5fbG9n
Z2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICBkZWYgaGFuZHNoYWtlKHNl
bGYpOgotICAgICAgICAiIiJQZXJmb3JtcyBvcGVuaW5nIGhhbmRzaGFrZSBvbiB0aGUgc3BlY2lm
aWVkIHNvY2tldC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDbGllbnRIYW5kc2hh
a2VFcnJvcjogaGFuZHNoYWtlIGZhaWxlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmVxdWVz
dF9saW5lID0gX2J1aWxkX21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMucmVzb3VyY2UpCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlIFJlcXVl
c3QtTGluZTogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9saW5lKQot
ICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCi0KLSAgICAgICAgZmll
bGRzID0gW10KLSAgICAgICAgZmllbGRzLmFwcGVuZChfZm9ybWF0X2hvc3RfaGVhZGVyKAotICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYuX29w
dGlvbnMuc2VydmVyX3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpKQot
ICAgICAgICBmaWVsZHMuYXBwZW5kKF9VUEdSQURFX0hFQURFUikKLSAgICAgICAgZmllbGRzLmFw
cGVuZChfQ09OTkVDVElPTl9IRUFERVIpCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMub3JpZ2lu
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5wcm90b2NvbF92ZXJz
aW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwODoKLSAgICAgICAgICAgICAgICBmaWVsZHMu
YXBwZW5kKF9vcmlnaW5faGVhZGVyKAotICAgICAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dF
QlNPQ0tFVF9PUklHSU5fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
Lm9yaWdpbikpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGZpZWxkcy5hcHBl
bmQoX29yaWdpbl9oZWFkZXIoY29tbW9uLk9SSUdJTl9IRUFERVIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLm9yaWdpbikpCi0KLSAg
ICAgICAgb3JpZ2luYWxfa2V5ID0gb3MudXJhbmRvbSgxNikKLSAgICAgICAgc2VsZi5fa2V5ID0g
YmFzZTY0LmI2NGVuY29kZShvcmlnaW5hbF9rZXkpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKLSAgICAgICAgICAgICclczogJXIgKCVzKScsCi0gICAgICAgICAgICBjb21tb24uU0VDX1dF
QlNPQ0tFVF9LRVlfSEVBREVSLAotICAgICAgICAgICAgc2VsZi5fa2V5LAotICAgICAgICAgICAg
dXRpbC5oZXhpZnkob3JpZ2luYWxfa2V5KSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgKLSAgICAg
ICAgICAgICclczogJXNcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSLCBz
ZWxmLl9rZXkpKQotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyc2lvbl9oZWFkZXIgPiAw
OgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnJXM6ICVkXHJcbicgJSAoY29tbW9uLlNFQ19X
RUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLnZlcnNpb25faGVhZGVyKSkKLSAgICAgICAgZWxpZiBz
ZWxmLl9vcHRpb25zLnByb3RvY29sX3ZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTA4
OgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnJXM6ICVkXHJcbicgJSAoY29tbW9uLlNFQ19X
RUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21tb24uVkVSU0lPTl9IWUJJMDgpKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgZmllbGRzLmFwcGVuZCgnJXM6ICVkXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRf
VkVSU0lPTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVCkpCi0KLSAgICAgICAgZXh0ZW5zaW9uc190b19y
ZXF1ZXN0ID0gW10KLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWU6Ci0g
ICAgICAgICAgICBleHRlbnNpb25zX3RvX3JlcXVlc3QuYXBwZW5kKAotICAgICAgICAgICAgICAg
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9O
KSkKLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGU6Ci0g
ICAgICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAg
ICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAg
ICAgICAgICMgQWNjZXB0IHRoZSBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGV4dGVuc2lvbiBwYXJh
bWV0ZXIgYnkgZGVmYXVsdC4KLSAgICAgICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKAot
ICAgICAgICAgICAgICAgICAgICBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nvci4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJB
TSwKLSAgICAgICAgICAgICAgICAgICAgTm9uZSkKLSAgICAgICAgICAgIGV4dGVuc2lvbnNfdG9f
cmVxdWVzdC5hcHBlbmQoZXh0ZW5zaW9uKQotCi0gICAgICAgIGlmIGxlbihleHRlbnNpb25zX3Rv
X3JlcXVlc3QpICE9IDA6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKAotICAgICAgICAgICAg
ICAgICclczogJXNcclxuJyAlCi0gICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VU
X0VYVEVOU0lPTlNfSEVBREVSLAotICAgICAgICAgICAgICAgICBjb21tb24uZm9ybWF0X2V4dGVu
c2lvbnMoZXh0ZW5zaW9uc190b19yZXF1ZXN0KSkpCi0KLSAgICAgICAgZm9yIGZpZWxkIGluIGZp
ZWxkczoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxkKQotCi0gICAgICAg
IHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxuJykKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ1NlbnQgY2xpZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlIGhlYWRlcnM6ICVyJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdTdGFydCByZWFkaW5nIFN0YXR1cy1MaW5lJykKLQotICAgICAgICBzdGF0dXNfbGluZSA9ICcn
Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNl
bGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIHN0YXR1c19saW5lICs9IGNoCi0gICAgICAgICAg
ICBpZiBjaCA9PSAnXG4nOgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgbSA9IHJl
Lm1hdGNoKCdIVFRQL1xcZCtcXC5cXGQrIChcXGRcXGRcXGQpIC4qXHJcbicsIHN0YXR1c19saW5l
KQotICAgICAgICBpZiBtIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hh
a2VFcnJvcigKLSAgICAgICAgICAgICAgICAnV3Jvbmcgc3RhdHVzIGxpbmUgZm9ybWF0OiAlcicg
JSBzdGF0dXNfbGluZSkKLSAgICAgICAgc3RhdHVzX2NvZGUgPSBtLmdyb3VwKDEpCi0gICAgICAg
IGlmIHN0YXR1c19jb2RlICE9ICcxMDEnOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdVbmV4cGVjdGVkIHN0YXR1cyBjb2RlICVzIHdpdGggZm9sbG93aW5nICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnaGVhZGVyczogJXInLCBzdGF0dXNfY29kZSwgc2VsZi5fcmVh
ZF9maWVsZHMoKSkKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAg
ICAgICAgICAgICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXIn
ICUgc3RhdHVzX2NvZGUpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCB2
YWxpZCBTdGF0dXMtTGluZScpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3RhcnQgcmVh
ZGluZyBoZWFkZXJzIHVudGlsIHdlIHNlZSBhbiBlbXB0eSBsaW5lJykKLQotICAgICAgICBmaWVs
ZHMgPSBzZWxmLl9yZWFkX2ZpZWxkcygpCi0KLSAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhz
ZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAg
ICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdFeHBlY3Rl
ZCBMRiBidXQgZm91bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3IgaGVhZGVyICcKLSAg
ICAgICAgICAgICAgICAnbmFtZSAlcicgJSAoY2gsIHZhbHVlLCBuYW1lKSkKLQotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkIGFuIGVtcHR5IGxpbmUnKQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ1NlcnZlclwncyBvcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcics
IGZpZWxkcykKLQotICAgICAgICBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAg
ICAgIGZpZWxkcywKLSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwKLSAgICAgICAg
ICAgIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFLAotICAgICAgICAgICAgRmFsc2UpCi0K
LSAgICAgICAgX3ZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMs
Ci0gICAgICAgICAgICBjb21tb24uQ09OTkVDVElPTl9IRUFERVIsCi0gICAgICAgICAgICBjb21t
b24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUsCi0gICAgICAgICAgICBGYWxzZSkKLQotICAgICAg
ICBhY2NlcHQgPSBfZ2V0X21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsIGNv
bW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIpCi0KLSAgICAgICAgIyBWYWxpZGF0ZQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBiaW5hcnlfYWNjZXB0ID0gYmFzZTY0LmI2NGRlY29k
ZShhY2NlcHQpCi0gICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBI
YW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVy
ICVzOiAlcicgJQotICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRf
SEVBREVSLCBhY2NlcHQpKQotCi0gICAgICAgIGlmIGxlbihiaW5hcnlfYWNjZXB0KSAhPSAyMDoK
LSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAg
ICdEZWNvZGVkIHZhbHVlIG9mICVzIGlzIG5vdCAyMC1ieXRlIGxvbmcnICUKLSAgICAgICAgICAg
ICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSKQotCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdSZXNwb25zZSBmb3IgY2hhbGxlbmdlIDogJXIg
KCVzKScsCi0gICAgICAgICAgICBhY2NlcHQsIHV0aWwuaGV4aWZ5KGJpbmFyeV9hY2NlcHQpKQot
Ci0gICAgICAgIGJpbmFyeV9leHBlY3RlZF9hY2NlcHQgPSB1dGlsLnNoYTFfaGFzaCgKLSAgICAg
ICAgICAgIHNlbGYuX2tleSArIGNvbW1vbi5XRUJTT0NLRVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgp
Ci0gICAgICAgIGV4cGVjdGVkX2FjY2VwdCA9IGJhc2U2NC5iNjRlbmNvZGUoYmluYXJ5X2V4cGVj
dGVkX2FjY2VwdCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAn
RXhwZWN0ZWQgcmVzcG9uc2UgZm9yIGNoYWxsZW5nZTogJXIgKCVzKScsCi0gICAgICAgICAgICBl
eHBlY3RlZF9hY2NlcHQsIHV0aWwuaGV4aWZ5KGJpbmFyeV9leHBlY3RlZF9hY2NlcHQpKQotCi0g
ICAgICAgIGlmIGFjY2VwdCAhPSBleHBlY3RlZF9hY2NlcHQ6Ci0gICAgICAgICAgICByYWlzZSBD
bGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnSW52YWxpZCAlcyBoZWFkZXI6
ICVyIChleHBlY3RlZDogJXMpJyAlCi0gICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09D
S0VUX0FDQ0VQVF9IRUFERVIsIGFjY2VwdCwgZXhwZWN0ZWRfYWNjZXB0KSkKLQotICAgICAgICBk
ZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gRmFsc2UKLSAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRl
X2FjY2VwdGVkID0gRmFsc2UKLQotICAgICAgICBleHRlbnNpb25zX2hlYWRlciA9IGZpZWxkcy5n
ZXQoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUi5s
b3dlcigpKQotICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gW10KLSAgICAgICAgaWYgZXh0
ZW5zaW9uc19oZWFkZXIgaXMgbm90IE5vbmUgYW5kIGxlbihleHRlbnNpb25zX2hlYWRlcikgIT0g
MDoKLSAgICAgICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5z
aW9ucyhleHRlbnNpb25zX2hlYWRlclswXSkKLQotICAgICAgICAjIFRPRE8oYmFzaGkpOiBTdXBw
b3J0IHRoZSBuZXcgc3R5bGUgcGVyZnJhbWUgY29tcHJlc3Npb24gZXh0ZW5zaW9uLgotICAgICAg
ICBmb3IgZXh0ZW5zaW9uIGluIGFjY2VwdGVkX2V4dGVuc2lvbnM6Ci0gICAgICAgICAgICBleHRl
bnNpb25fbmFtZSA9IGV4dGVuc2lvbi5uYW1lKCkKLSAgICAgICAgICAgIGlmIChleHRlbnNpb25f
bmFtZSA9PSBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04gYW5kCi0gICAgICAgICAgICAg
ICAgc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lKToKLSAgICAgICAgICAgICAgICBkZWZsYXRl
X2ZyYW1lX2FjY2VwdGVkID0gVHJ1ZQotICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9IERlZmxh
dGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgICAgICAgICAgdW51
c2VkX2V4dGVuc2lvbl9yZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNl
KCkKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgPSBwcm9jZXNz
b3IKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxpZiAoZXh0ZW5zaW9u
X25hbWUgPT0gY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04gYW5kCi0gICAgICAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUpOgotICAgICAg
ICAgICAgICAgIHBlcm1lc3NhZ2VfZGVmbGF0ZV9hY2NlcHRlZCA9IFRydWUKLQotICAgICAgICAg
ICAgICAgIGZyYW1lciA9IF9nZXRfcGVybWVzc2FnZV9kZWZsYXRlX2ZyYW1lcihleHRlbnNpb24p
Ci0gICAgICAgICAgICAgICAgZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRy
dWUpCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRl
ID0gZnJhbWVyCi0gICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgcmFpc2Ug
Q2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXh0ZW5z
aW9uICVyJyAlIGV4dGVuc2lvbl9uYW1lKQotCi0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLmRl
ZmxhdGVfZnJhbWUgYW5kIG5vdCBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkKToKLSAgICAgICAgICAg
IHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQg
JXMsIGJ1dCB0aGUgc2VydmVyIHJlamVjdGVkIGl0JyAlCi0gICAgICAgICAgICAgICAgY29tbW9u
LkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotCi0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLnVz
ZV9wZXJtZXNzYWdlX2RlZmxhdGUgYW5kCi0gICAgICAgICAgICBub3QgcGVybWVzc2FnZV9kZWZs
YXRlX2FjY2VwdGVkKToKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAot
ICAgICAgICAgICAgICAgICAgICAnUmVxdWVzdGVkICVzLCBidXQgdGhlIHNlcnZlciByZWplY3Rl
ZCBpdCcgJQotICAgICAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VY
VEVOU0lPTikKLQotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBIYW5kbGUgU2VjLVdlYlNvY2tl
dC1Qcm90b2NvbAotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBIYW5kbGUgQ29va2llLCBldGMu
Ci0KLQotY2xhc3MgQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29ySHliaTAwKENsaWVudEhhbmRzaGFr
ZUJhc2UpOgotICAgICIiIldlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9y
Ci0gICAgZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTAwIChlcXVpdmFsZW50
IHRvCi0gICAgZHJhZnQtaGl4aWUtdGhld2Vic29ja2V0cHJvdG9jb2wtNzYpLgotICAgICIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCwgb3B0aW9ucyk6Ci0gICAgICAgIHN1cGVy
KENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvckh5YmkwMCwgc2VsZikuX19pbml0X18oKQotCi0gICAg
ICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9u
cwotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQot
Ci0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgb3IKLSAgICAgICAgICAg
IHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSk6Ci0gICAgICAgICAgICBsb2dn
aW5nLmNyaXRpY2FsKCdIeUJpIDAwIGRvZXNuXCd0IHN1cHBvcnQgZXh0ZW5zaW9ucy4nKQotICAg
ICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGRlZiBoYW5kc2hha2Uoc2VsZik6Ci0gICAgICAg
ICIiIlBlcmZvcm1zIG9wZW5pbmcgaGFuZHNoYWtlIG9uIHRoZSBzcGVjaWZpZWQgc29ja2V0Lgot
Ci0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENsaWVudEhhbmRzaGFrZUVycm9yOiBoYW5k
c2hha2UgZmFpbGVkLgotICAgICAgICAiIiIKLQotICAgICAgICAjIDQuMSA1LiBzZW5kIHJlcXVl
c3QgbGluZS4KLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoX2J1aWxkX21ldGhvZF9saW5l
KHNlbGYuX29wdGlvbnMucmVzb3VyY2UpKQotICAgICAgICAjIDQuMSA2LiBMZXQgL2ZpZWxkcy8g
YmUgYW4gZW1wdHkgbGlzdCBvZiBzdHJpbmdzLgotICAgICAgICBmaWVsZHMgPSBbXQotICAgICAg
ICAjIDQuMSA3LiBBZGQgdGhlIHN0cmluZyAiVXBncmFkZTogV2ViU29ja2V0IiB0byAvZmllbGRz
Ly4KLSAgICAgICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVJfSElYSUU3NSkKLSAgICAg
ICAgIyA0LjEgOC4gQWRkIHRoZSBzdHJpbmcgIkNvbm5lY3Rpb246IFVwZ3JhZGUiIHRvIC9maWVs
ZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9DT05ORUNUSU9OX0hFQURFUikKLSAgICAgICAg
IyA0LjEgOS0xMi4gQWRkIEhvc3Q6IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMu
YXBwZW5kKF9mb3JtYXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNl
cnZlcl9ob3N0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAg
ICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykpCi0gICAgICAgICMgNC4xIDEzLiBBZGQgT3Jp
Z2luOiBmaWVsZCB0byAvZmllbGRzLy4KLSAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMub3Jp
Z2luOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAg
ICAgICAgJ1NwZWNpZnkgdGhlIG9yaWdpbiBvZiB0aGUgY29ubmVjdGlvbiBieSAtLW9yaWdpbiBm
bGFnJykKLSAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcihjb21tb24uT1JJR0lO
X0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLm9yaWdpbikpCi0gICAgICAgICMgVE9ETzogNC4xIDE0IEFkZCBTZWMtV2ViU29ja2V0LVBy
b3RvY29sOiBmaWVsZCB0byAvZmllbGRzLy4KLSAgICAgICAgIyBUT0RPOiA0LjEgMTUgQWRkIGNv
b2tpZSBoZWFkZXJzIHRvIC9maWVsZHMvLgotCi0gICAgICAgICMgNC4xIDE2LTIzLiBBZGQgU2Vj
LVdlYlNvY2tldC1LZXk8bj4gdG8gL2ZpZWxkcy8uCi0gICAgICAgIHNlbGYuX251bWJlcjEsIGtl
eTEgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnTnVtYmVyMTogJWQnLCBzZWxmLl9udW1iZXIxKQotICAgICAgICBmaWVsZHMu
YXBwZW5kKCclczogJXNcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkxX0hFQURFUiwg
a2V5MSkpCi0gICAgICAgIHNlbGYuX251bWJlcjIsIGtleTIgPSBzZWxmLl9nZW5lcmF0ZV9zZWNf
d2Vic29ja2V0X2tleSgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMjogJWQn
LCBzZWxmLl9udW1iZXIyKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCclczogJXNcclxuJyAlIChj
b21tb24uU0VDX1dFQlNPQ0tFVF9LRVkyX0hFQURFUiwga2V5MikpCi0KLSAgICAgICAgZmllbGRz
LmFwcGVuZCgnJXM6IDBcclxuJyAlIGNvbW1vbi5TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUikK
LQotICAgICAgICAjIDQuMSAyNC4gRm9yIGVhY2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBhIHJh
bmRvbSBvcmRlcjogc2VuZCB0aGUKLSAgICAgICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRGLTgs
IGZvbGxvd2VkIGJ5IGEgVVRGLTggZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UKLSAgICAgICAgIyBS
RVRVUk4gVSswMDBBIExJTkUgRkVFRCBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAgIHJh
bmRvbS5zaHVmZmxlKGZpZWxkcykKLSAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKLSAgICAg
ICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxkKQotICAgICAgICAjIDQuMSAyNS4gc2Vu
ZCBhIFVURi04LWVuY29kZWQgVSswMDBEIENBUlJJQUdFIFJFVFVSTiBVKzAwMEEgTElORSBGRUVE
Ci0gICAgICAgICMgY2hhcmFjdGVyIHBhaXIgKENSTEYpLgotICAgICAgICBzZWxmLl9zb2NrZXQu
c2VuZGFsbCgnXHJcbicpCi0gICAgICAgICMgNC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5n
IGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxl
bnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3Jk
ZXIpLgotICAgICAgICBzZWxmLl9rZXkzID0gc2VsZi5fZ2VuZXJhdGVfa2V5MygpCi0gICAgICAg
ICMgNC4xIDI3LiBzZW5kIC9rZXkzLyB0byB0aGUgc2VydmVyLgotICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbChzZWxmLl9rZXkzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAg
ICAgICAgICAnS2V5MzogJXIgKCVzKScsIHNlbGYuX2tleTMsIHV0aWwuaGV4aWZ5KHNlbGYuX2tl
eTMpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IGhhbmRzaGFrZScpCi0KLSAg
ICAgICAgIyA0LjEgMjguIFJlYWQgYnl0ZXMgZnJvbSB0aGUgc2VydmVyIHVudGlsIGVpdGhlciB0
aGUgY29ubmVjdGlvbgotICAgICAgICAjIGNsb3Nlcywgb3IgYSAweDBBIGJ5dGUgaXMgcmVhZC4g
bGV0IC9maWVsZC8gYmUgdGhlc2UgYnl0ZXMsIGluY2x1ZGluZwotICAgICAgICAjIHRoZSAweDBB
IGJ5dGVzLgotICAgICAgICBmaWVsZCA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAg
ICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGZp
ZWxkICs9IGNoCi0gICAgICAgICAgICBpZiBjaCA9PSAnXG4nOgotICAgICAgICAgICAgICAgIGJy
ZWFrCi0gICAgICAgICMgaWYgL2ZpZWxkLyBpcyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0ZXMgbG9u
Zywgb3IgaWYgdGhlIGxhc3QKLSAgICAgICAgIyB0d28gYnl0ZXMgYXJlbid0IDB4MEQgYW5kIDB4
MEEgcmVzcGVjdGl2ZWx5LCBvciBpZiBpdCBkb2VzIG5vdAotICAgICAgICAjIGNvbnRhaW4gYXQg
bGVhc3QgdHdvIDB4MjAgYnl0ZXMsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24K
LSAgICAgICAgIyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIGxlbihmaWVsZCkg
PCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgotICAgICAgICAgICAgcmFpc2UgQ2xp
ZW50SGFuZHNoYWtlRXJyb3IoJ1dyb25nIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAg
ICAgbSA9IHJlLm1hdGNoKCdbXiBdKiAoW14gXSopIC4qJywgZmllbGQpCi0gICAgICAgIGlmIG0g
aXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAg
ICAgICAgICAgICdObyBIVFRQIHN0YXR1cyBjb2RlIGZvdW5kIGluIHN0YXR1cyBsaW5lOiAlcicg
JSBmaWVsZCkKLSAgICAgICAgIyA0LjEgMjkuIGxldCAvY29kZS8gYmUgdGhlIHN1YnN0cmluZyBv
ZiAvZmllbGQvIHRoYXQgc3RhcnRzIGZyb20gdGhlCi0gICAgICAgICMgYnl0ZSBhZnRlciB0aGUg
Zmlyc3QgMHgyMCBieXRlLCBhbmQgZW5kcyB3aXRoIHRoZSBieXRlIGJlZm9yZSB0aGUKLSAgICAg
ICAgIyBzZWNvbmQgMHgyMCBieXRlLgotICAgICAgICBjb2RlID0gbS5ncm91cCgxKQotICAgICAg
ICAjIDQuMSAzMC4gaWYgL2NvZGUvIGlzIG5vdCB0aHJlZSBieXRlcyBsb25nLCBvciBpZiBhbnkg
b2YgdGhlIGJ5dGVzIGluCi0gICAgICAgICMgL2NvZGUvIGFyZSBub3QgaW4gdGhlIHJhbmdlIDB4
MzAgdG8gMHg5MCwgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQKLSAgICAgICAgIyBjb25uZWN0aW9u
IGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVsw
LTldWzAtOV0nLCBjb2RlKToKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9y
KAotICAgICAgICAgICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdp
dCBpbiBzdGF0dXMgbGluZTogJXInICUKLSAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQot
ICAgICAgICAjIDQuMSAzMS4gaWYgL2NvZGUvLCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEw
MSIsIHRoZW4gbW92ZSB0byB0aGUKLSAgICAgICAgIyBuZXh0IHN0ZXAuCi0gICAgICAgIGlmIGNv
ZGUgIT0gJzEwMSc6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAg
ICAgICAgICAgICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0dXMgY29kZSAxMDEgYnV0IGZvdW5kICVy
IGluIHN0YXR1cyBsaW5lOiAnCi0gICAgICAgICAgICAgICAgJyVyJyAlIChjb2RlLCBmaWVsZCkp
Ci0gICAgICAgICMgNC4xIDMyLTM5LiByZWFkIGZpZWxkcyBpbnRvIC9maWVsZHMvCi0gICAgICAg
IGZpZWxkcyA9IHNlbGYuX3JlYWRfZmllbGRzKCkKLSAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMg
cHJvY2Vzc2luZ18KLSAgICAgICAgIyByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlcgotICAgICAgICBj
aCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0gJ1xu
JzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoJ0V4cGVj
dGVkIExGIGJ1dCBmb3VuZCAlcicgJSBjaCkKLSAgICAgICAgIyA0LjEgNDEuIGNoZWNrIC9maWVs
ZHMvCi0gICAgICAgICMgVE9ETyh1a2FpKTogcHJvdG9jb2wKLSAgICAgICAgIyBpZiB0aGUgZW50
cnkncyBuYW1lIGlzICJ1cGdyYWRlIgotICAgICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4
YWN0bHkgZXF1YWwgdG8gdGhlIHN0cmluZyAiV2ViU29ja2V0IiwKLSAgICAgICAgIyAgdGhlbiBm
YWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAg
ICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLAotICAg
ICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVSLAotICAgICAgICAgICAgY29tbW9uLldFQlNP
Q0tFVF9VUEdSQURFX1RZUEVfSElYSUU3NSwKLSAgICAgICAgICAgIFRydWUpCi0gICAgICAgICMg
aWYgdGhlIGVudHJ5J3MgbmFtZSBpcyAiY29ubmVjdGlvbiIKLSAgICAgICAgIyAgaWYgdGhlIHZh
bHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCBpcyBub3QgZXhhY3RseSBlcXVhbAot
ICAgICAgICAjICB0byB0aGUgc3RyaW5nICJ1cGdyYWRlIiwgdGhlbiBmYWlsIHRoZSBXZWJTb2Nr
ZXQgY29ubmVjdGlvbiBhbmQKLSAgICAgICAgIyAgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAg
IF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLAotICAgICAg
ICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLAotICAgICAgICAgICAgY29tbW9uLlVQR1JB
REVfQ09OTkVDVElPTl9UWVBFLAotICAgICAgICAgICAgRmFsc2UpCi0KLSAgICAgICAgb3JpZ2lu
ID0gX2dldF9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLCBjb21tb24uU0VD
X1dFQlNPQ0tFVF9PUklHSU5fSEVBREVSKQotCi0gICAgICAgIGxvY2F0aW9uID0gX2dldF9tYW5k
YXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9M
T0NBVElPTl9IRUFERVIpCi0KLSAgICAgICAgIyBUT0RPKHVrYWkpOiBjaGVjayBvcmlnaW4sIGxv
Y2F0aW9uLCBjb29raWUsIC4uCi0KLSAgICAgICAgIyA0LjEgNDIuIGxldCAvY2hhbGxlbmdlLyBi
ZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiAvbnVtYmVyXzEvLAotICAgICAgICAjIGV4cHJlc3NlZCBh
cyBhIGJpZyBlbmRpYW4gMzIgYml0IGludGVnZXIsIC9udW1iZXJfMi8sIGV4cHJlc3NlZAotICAg
ICAgICAjIGFzIGJpZyBlbmRpYW4gMzIgYml0IGludGVnZXIsIGFuZCB0aGUgZWlnaHQgYnl0ZXMg
b2YgL2tleV8zLyBpbiB0aGUKLSAgICAgICAgIyBvcmRlciB0aGV5IHdlcmUgc2VudCBvbiB0aGUg
d2lyZS4KLSAgICAgICAgY2hhbGxlbmdlID0gc3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVtYmVy
MSkKLSAgICAgICAgY2hhbGxlbmdlICs9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjIp
Ci0gICAgICAgIGNoYWxsZW5nZSArPSBzZWxmLl9rZXkzCi0KLSAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKAotICAgICAgICAgICAgJ0NoYWxsZW5nZTogJXIgKCVzKScsIGNoYWxsZW5nZSwgdXRp
bC5oZXhpZnkoY2hhbGxlbmdlKSkKLQotICAgICAgICAjIDQuMSA0My4gbGV0IC9leHBlY3RlZC8g
YmUgdGhlIE1ENSBmaW5nZXJwcmludCBvZiAvY2hhbGxlbmdlLyBhcyBhCi0gICAgICAgICMgYmln
LWVuZGlhbiAxMjggYml0IHN0cmluZy4KLSAgICAgICAgZXhwZWN0ZWQgPSB1dGlsLm1kNV9oYXNo
KGNoYWxsZW5nZSkuZGlnZXN0KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAg
ICAgICAgJ0V4cGVjdGVkIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsCi0gICAgICAgICAg
ICBleHBlY3RlZCwgdXRpbC5oZXhpZnkoZXhwZWN0ZWQpKQotCi0gICAgICAgICMgNC4xIDQ0LiBy
ZWFkIHNpeHRlZW4gYnl0ZXMgZnJvbSB0aGUgc2VydmVyLgotICAgICAgICAjIGxldCAvcmVwbHkv
IGJlIHRob3NlIGJ5dGVzLgotICAgICAgICByZXBseSA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3Nv
Y2tldCwgMTYpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdBY3R1
YWwgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5
KSkKLQotICAgICAgICAjIDQuMSA0NS4gaWYgL3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFs
IC9leHBlY3RlZC8sIHRoZW4gZmFpbAotICAgICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlv
biBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5Ogot
ICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAg
J0JhZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyIChleHBlY3RlZCkgIT0gJXIgKGFjdHVhbCknICUK
LSAgICAgICAgICAgICAgICAoZXhwZWN0ZWQsIHJlcGx5KSkKLSAgICAgICAgIyA0LjEgNDYuIFRo
ZSAqV2ViU29ja2V0IGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQqLgotCi0gICAgZGVmIF9nZW5l
cmF0ZV9zZWNfd2Vic29ja2V0X2tleShzZWxmKToKLSAgICAgICAgIyA0LjEgMTYuIGxldCAvc3Bh
Y2VzX24vIGJlIGEgcmFuZG9tIGludGVnZXIgZnJvbSAxIHRvIDEyIGluY2x1c2l2ZS4KLSAgICAg
ICAgc3BhY2VzID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCi0gICAgICAgICMgNC4xIDE3LiBsZXQg
L21heF9uLyBiZSB0aGUgbGFyZ2VzdCBpbnRlZ2VyIG5vdCBncmVhdGVyIHRoYW4KLSAgICAgICAg
IyAgNCwyOTQsOTY3LDI5NSBkaXZpZGVkIGJ5IC9zcGFjZXNfbi8uCi0gICAgICAgIG1heG51bSA9
IDQyOTQ5NjcyOTUgLyBzcGFjZXMKLSAgICAgICAgIyA0LjEgMTguIGxldCAvbnVtYmVyX24vIGJl
IGEgcmFuZG9tIGludGVnZXIgZnJvbSAwIHRvIC9tYXhfbi8KLSAgICAgICAgIyBpbmNsdXNpdmUu
Ci0gICAgICAgIG51bWJlciA9IHJhbmRvbS5yYW5kaW50KDAsIG1heG51bSkKLSAgICAgICAgIyA0
LjEgMTkuIGxldCAvcHJvZHVjdF9uLyBiZSB0aGUgcmVzdWx0IG9mIG11bHRpcGx5aW5nIC9udW1i
ZXJfbi8gYW5kCi0gICAgICAgICMgL3NwYWNlc19uLyB0b2dldGhlci4KLSAgICAgICAgcHJvZHVj
dCA9IG51bWJlciAqIHNwYWNlcwotICAgICAgICAjIDQuMSAyMC4gbGV0IC9rZXlfbi8gYmUgYSBz
dHJpbmcgY29uc2lzdGluZyBvZiAvcHJvZHVjdF9uLywgZXhwcmVzc2VkCi0gICAgICAgICMgaW4g
YmFzZSB0ZW4gdXNpbmcgdGhlIG51bWVyYWxzIGluIHRoZSByYW5nZSBVKzAwMzAgRElHSVQgWkVS
TyAoMCkgdG8KLSAgICAgICAgIyBVKzAwMzkgRElHSVQgTklORSAoOSkuCi0gICAgICAgIGtleSA9
IHN0cihwcm9kdWN0KQotICAgICAgICAjIDQuMSAyMS4gaW5zZXJ0IGJldHdlZW4gb25lIGFuZCB0
d2VsdmUgcmFuZG9tIGNoYXJhY3RlcnMgZnJvbSB0aGUKLSAgICAgICAgIyByYW5nZSBVKzAwMjEg
dG8gVSswMDJGIGFuZCBVKzAwM0EgdG8gVSswMDdFIGludG8gL2tleV9uLyBhdCByYW5kb20KLSAg
ICAgICAgIyBwb3NpdGlvbnMuCi0gICAgICAgIGF2YWlsYWJsZV9jaGFycyA9IHJhbmdlKDB4MjEs
IDB4MmYgKyAxKSArIHJhbmdlKDB4M2EsIDB4N2UgKyAxKQotICAgICAgICBuID0gcmFuZG9tLnJh
bmRpbnQoMSwgMTIpCi0gICAgICAgIGZvciBfIGluIHhyYW5nZShuKToKLSAgICAgICAgICAgIGNo
ID0gcmFuZG9tLmNob2ljZShhdmFpbGFibGVfY2hhcnMpCi0gICAgICAgICAgICBwb3MgPSByYW5k
b20ucmFuZGludCgwLCBsZW4oa2V5KSkKLSAgICAgICAgICAgIGtleSA9IGtleVswOnBvc10gKyBj
aHIoY2gpICsga2V5W3BvczpdCi0gICAgICAgICMgNC4xIDIyLiBpbnNlcnQgL3NwYWNlc19uLyBV
KzAwMjAgU1BBQ0UgY2hhcmFjdGVycyBpbnRvIC9rZXlfbi8gYXQKLSAgICAgICAgIyByYW5kb20g
cG9zaXRpb25zIG90aGVyIHRoYW4gc3RhcnQgb3IgZW5kIG9mIHRoZSBzdHJpbmcuCi0gICAgICAg
IGZvciBfIGluIHhyYW5nZShzcGFjZXMpOgotICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRp
bnQoMSwgbGVuKGtleSkgLSAxKQotICAgICAgICAgICAga2V5ID0ga2V5WzA6cG9zXSArICcgJyAr
IGtleVtwb3M6XQotICAgICAgICByZXR1cm4gbnVtYmVyLCBrZXkKLQotICAgIGRlZiBfZ2VuZXJh
dGVfa2V5MyhzZWxmKToKLSAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5My8gYmUgYSBzdHJpbmcg
Y29uc2lzdGluZyBvZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCi0gICAgICAgICMgZXF1aXZhbGVu
dGx5LCBhIHJhbmRvbSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEgYmlnLWVuZGlhbiBvcmRl
cikuCi0gICAgICAgIHJldHVybiAnJy5qb2luKFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkg
Zm9yIF8gaW4geHJhbmdlKDgpXSkKLQotCi1jbGFzcyBDbGllbnRDb25uZWN0aW9uKG9iamVjdCk6
Ci0gICAgIiIiQSB3cmFwcGVyIGZvciBzb2NrZXQgb2JqZWN0IHRvIHByb3ZpZGUgdGhlIG1wX2Nv
bm4gaW50ZXJmYWNlLgotICAgIG1vZF9weXdlYnNvY2tldCBsaWJyYXJ5IGlzIGRlc2lnbmVkIHRv
IGJlIHdvcmtpbmcgb24gQXBhY2hlIG1vZF9weXRob24ncwotICAgIG1wX2Nvbm4gb2JqZWN0Lgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCk6Ci0gICAgICAgIHNlbGYu
X3NvY2tldCA9IHNvY2tldAotCi0gICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAgICBz
ZWxmLl9zb2NrZXQuc2VuZGFsbChkYXRhKQotCi0gICAgZGVmIHJlYWQoc2VsZiwgbik6Ci0gICAg
ICAgIHJldHVybiBzZWxmLl9zb2NrZXQucmVjdihuKQotCi0gICAgZGVmIGdldF9yZW1vdGVfYWRk
cihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3NvY2tldC5nZXRwZWVybmFtZSgpCi0gICAg
cmVtb3RlX2FkZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2FkZHIpCi0KLQotY2xhc3MgQ2xpZW50
UmVxdWVzdChvYmplY3QpOgotICAgICIiIkEgd3JhcHBlciBjbGFzcyBqdXN0IHRvIG1ha2UgaXQg
YWJsZSB0byBwYXNzIGEgc29ja2V0IG9iamVjdCB0bwotICAgIGZ1bmN0aW9ucyB0aGF0IGV4cGVj
dCBhIG1wX3JlcXVlc3Qgb2JqZWN0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHNvY2tldCk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihz
ZWxmKQotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotICAgICAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBDbGllbnRDb25uZWN0aW9uKHNvY2tldCkKLQotCi1kZWYgX2ltcG9ydF9zc2woKToK
LSAgICBnbG9iYWwgc3NsCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgc3NsCi0gICAgICAgIHJl
dHVybiBUcnVlCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICByZXR1cm4gRmFsc2UK
LQotCi1kZWYgX2ltcG9ydF9weW9wZW5zc2woKToKLSAgICBnbG9iYWwgT3BlblNTTAotICAgIHRy
eToKLSAgICAgICAgaW1wb3J0IE9wZW5TU0wuU1NMCi0gICAgICAgIHJldHVybiBUcnVlCi0gICAg
ZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1jbGFzcyBFY2hv
Q2xpZW50KG9iamVjdCk6Ci0gICAgIiIiV2ViU29ja2V0IGVjaG8gY2xpZW50LiIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0
aW9ucwotICAgICAgICBzZWxmLl9zb2NrZXQgPSBOb25lCi0KLSAgICAgICAgc2VsZi5fbG9nZ2Vy
ID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAg
ICAgICAiIiJSdW4gdGhlIGNsaWVudC4KLQotICAgICAgICBTaGFrZSBoYW5kcyBhbmQgdGhlbiBy
ZXBlYXQgc2VuZGluZyBtZXNzYWdlIGFuZCByZWNlaXZpbmcgaXRzIGVjaG8uCi0gICAgICAgICIi
IgotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldC5zb2NrZXQoKQotICAgICAgICBzZWxm
Ll9zb2NrZXQuc2V0dGltZW91dChzZWxmLl9vcHRpb25zLnNvY2tldF90aW1lb3V0KQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXQuY29ubmVjdCgoc2VsZi5fb3B0aW9ucy5z
ZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLnNlcnZlcl9wb3J0KSkKLSAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX3RsczoK
LSAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQgPSBfVExTU29ja2V0KAotICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9zb2NrZXQsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
dGxzX21vZHVsZSwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy50bHNfdmVyc2lv
biwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kaXNhYmxlX3Rsc19jb21wcmVz
c2lvbikKLQotICAgICAgICAgICAgdmVyc2lvbiA9IHNlbGYuX29wdGlvbnMucHJvdG9jb2xfdmVy
c2lvbgotCi0gICAgICAgICAgICBpZiAodmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJ
MDggb3IKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkx
Myk6Ci0gICAgICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gQ2xpZW50SGFuZHNoYWtlUHJv
Y2Vzc29yKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQsIHNlbGYuX29wdGlvbnMp
Ci0gICAgICAgICAgICBlbGlmIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwOgot
ICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IENsaWVudEhhbmRzaGFrZVByb2Nlc3Nv
ckh5YmkwMCgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc29ja2V0LCBzZWxmLl9vcHRpb25z
KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAot
ICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCAtLXByb3RvY29sLXZlcnNpb24gZmxhZzogJXIn
ICUgdmVyc2lvbikKLQotICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlLmhhbmRzaGFrZSgpCi0K
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykK
LQotICAgICAgICAgICAgcmVxdWVzdCA9IENsaWVudFJlcXVlc3Qoc2VsZi5fc29ja2V0KQotCi0g
ICAgICAgICAgICB2ZXJzaW9uX21hcCA9IHsKLSAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVS
U0lPTl9IWUJJMDg6IGNvbW1vbi5WRVJTSU9OX0hZQkkwOCwKLSAgICAgICAgICAgICAgICBfUFJP
VE9DT0xfVkVSU0lPTl9IWUJJMTM6IGNvbW1vbi5WRVJTSU9OX0hZQkkxMywKLSAgICAgICAgICAg
ICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDA6IGNvbW1vbi5WRVJTSU9OX0hZQkkwMH0KLSAg
ICAgICAgICAgIHJlcXVlc3Qud3NfdmVyc2lvbiA9IHZlcnNpb25fbWFwW3ZlcnNpb25dCi0KLSAg
ICAgICAgICAgIGlmICh2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCBvcgotICAg
ICAgICAgICAgICAgIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzKToKLSAgICAg
ICAgICAgICAgICBzdHJlYW1fb3B0aW9uID0gU3RyZWFtT3B0aW9ucygpCi0gICAgICAgICAgICAg
ICAgc3RyZWFtX29wdGlvbi5tYXNrX3NlbmQgPSBUcnVlCi0gICAgICAgICAgICAgICAgc3RyZWFt
X29wdGlvbi51bm1hc2tfcmVjZWl2ZSA9IEZhbHNlCi0KLSAgICAgICAgICAgICAgICBpZiBzZWxm
Ll9vcHRpb25zLmRlZmxhdGVfZnJhbWUgaXMgbm90IEZhbHNlOgotICAgICAgICAgICAgICAgICAg
ICBwcm9jZXNzb3IgPSBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUKLSAgICAgICAgICAgICAg
ICAgICAgcHJvY2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb24pCi0KLSAg
ICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUgaXMg
bm90IEZhbHNlOgotICAgICAgICAgICAgICAgICAgICBmcmFtZXIgPSBzZWxmLl9vcHRpb25zLnVz
ZV9wZXJtZXNzYWdlX2RlZmxhdGUKLSAgICAgICAgICAgICAgICAgICAgZnJhbWVyLnNldHVwX3N0
cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb24pCi0KLSAgICAgICAgICAgICAgICBzZWxmLl9zdHJl
YW0gPSBTdHJlYW0ocmVxdWVzdCwgc3RyZWFtX29wdGlvbikKLSAgICAgICAgICAgIGVsaWYgdmVy
c2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
c3RyZWFtID0gU3RyZWFtSGl4aWU3NShyZXF1ZXN0LCBUcnVlKQotCi0gICAgICAgICAgICBmb3Ig
bGluZSBpbiBzZWxmLl9vcHRpb25zLm1lc3NhZ2Uuc3BsaXQoJywnKToKLSAgICAgICAgICAgICAg
ICBzZWxmLl9zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUpCi0gICAgICAgICAgICAgICAgaWYgc2Vs
Zi5fb3B0aW9ucy52ZXJib3NlOgotICAgICAgICAgICAgICAgICAgICBwcmludCgnU2VuZDogJXMn
ICUgbGluZSkKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHJlY2Vp
dmVkID0gc2VsZi5fc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0KLSAgICAgICAgICAgICAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3NlOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnQoJ1JlY3Y6ICVzJyAlIHJlY2VpdmVkKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRp
b24gYXMgZToKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3NlOgot
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ0Vycm9yOiAlcycgJSBlKQotICAgICAgICAg
ICAgICAgICAgICByYWlzZQotCi0gICAgICAgICAgICBzZWxmLl9kb19jbG9zaW5nX2hhbmRzaGFr
ZSgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXQuY2xvc2UoKQot
Ci0gICAgZGVmIF9kb19jbG9zaW5nX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgIiIiUGVyZm9y
bSBjbG9zaW5nIGhhbmRzaGFrZSB1c2luZyB0aGUgc3BlY2lmaWVkIGNsb3NpbmcgZnJhbWUuIiIi
Ci0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5tZXNzYWdlLnNwbGl0KCcsJylbLTFdID09IF9H
T09EQllFX01FU1NBR0U6Ci0gICAgICAgICAgICAjIHJlcXVlc3RlZCBzZXJ2ZXIgaW5pdGlhdGVk
IGNsb3NpbmcgaGFuZHNoYWtlLCBzbwotICAgICAgICAgICAgIyBleHBlY3RpbmcgY2xvc2luZyBo
YW5kc2hha2UgbWVzc2FnZSBmcm9tIHNlcnZlci4KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKCdXYWl0IGZvciBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAg
ICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAg
ICAgIGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBwcmludCgnUmVjdiBjbG9z
ZScpCi0gICAgICAgICAgICAgICAgcHJpbnQoJ1NlbmQgYWNrJykKLSAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuaW5mbygKLSAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGNsb3Npbmcg
aGFuZHNoYWtlIGFuZCBzZW50IGFjaycpCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAg
IHByaW50KCdTZW5kIGNsb3NlJykKLSAgICAgICAgc2VsZi5fc3RyZWFtLmNsb3NlX2Nvbm5lY3Rp
b24oKQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2VudCBjbG9zaW5nIGhhbmRzaGFrZScp
Ci0gICAgICAgIHByaW50KCdSZWN2IGFjaycpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdS
ZWNlaXZlZCBhY2snKQotCi0KLWRlZiBtYWluKCk6Ci0gICAgc3lzLnN0ZG91dCA9IGNvZGVjcy5n
ZXR3cml0ZXIoJ3V0Zi04Jykoc3lzLnN0ZG91dCkKLQotICAgIHBhcnNlciA9IE9wdGlvblBhcnNl
cigpCi0gICAgIyBXZSBhY2NlcHQgLS1jb21tYW5kX2xpbmVfZmxhZyBzdHlsZSBmbGFncyB3aGlj
aCBpcyB0aGUgc2FtZSBhcyBHb29nbGUKLSAgICAjIGdmbGFncyBpbiBhZGRpdGlvbiB0byBjb21t
b24gLS1jb21tYW5kLWxpbmUtZmxhZyBzdHlsZSBmbGFncy4KLSAgICBwYXJzZXIuYWRkX29wdGlv
bignLXMnLCAnLS1zZXJ2ZXItaG9zdCcsICctLXNlcnZlcl9ob3N0JywKLSAgICAgICAgICAgICAg
ICAgICAgICBkZXN0PSdzZXJ2ZXJfaG9zdCcsIHR5cGU9J3N0cmluZycsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdD0nbG9jYWxob3N0JywgaGVscD0nc2VydmVyIGhvc3QnKQotICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctcCcsICctLXNlcnZlci1wb3J0JywgJy0tc2VydmVyX3BvcnQnLAot
ICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3NlcnZlcl9wb3J0JywgdHlwZT0naW50JywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9VTkRFRklORURfUE9SVCwgaGVscD0nc2VydmVy
IHBvcnQnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbycsICctLW9yaWdpbicsIGRlc3Q9J29y
aWdpbicsIHR5cGU9J3N0cmluZycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25l
LCBoZWxwPSdvcmlnaW4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcicsICctLXJlc291cmNl
JywgZGVzdD0ncmVzb3VyY2UnLCB0eXBlPSdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9Jy9lY2hvJywgaGVscD0ncmVzb3VyY2UgcGF0aCcpCi0gICAgcGFyc2VyLmFkZF9v
cHRpb24oJy1tJywgJy0tbWVzc2FnZScsIGRlc3Q9J21lc3NhZ2UnLCB0eXBlPSdzdHJpbmcnLAot
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdjb21tYS1zZXBhcmF0ZWQgbWVzc2FnZXMgdG8g
c2VuZC4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgJyVzIHdpbGwgZm9yY2UgY2xvc2Ug
dGhlIGNvbm5lY3Rpb24gZnJvbSBzZXJ2ZXIuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgX0dPT0RCWUVfTUVTU0FHRSkpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVp
ZXQnLCBkZXN0PSd2ZXJib3NlJywgYWN0aW9uPSdzdG9yZV9mYWxzZScsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdD1UcnVlLCBoZWxwPSdzdXBwcmVzcyBtZXNzYWdlcycpCi0gICAgcGFy
c2VyLmFkZF9vcHRpb24oJy10JywgJy0tdGxzJywgZGVzdD0ndXNlX3RscycsIGFjdGlvbj0nc3Rv
cmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNl
IFRMUyAod3NzOi8vKS4gQnkgZGVmYXVsdCwgJwotICAgICAgICAgICAgICAgICAgICAgICdpdCBs
b29rcyBmb3Igc3NsIGFuZCBweU9wZW5TU0wgbW9kdWxlIGFuZCB1c2VzIGZvdW5kICcKLSAgICAg
ICAgICAgICAgICAgICAgICAnb25lLiBVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiB0byBzcGVjaWZ5
IHdoaWNoIG1vZHVsZSAnCi0gICAgICAgICAgICAgICAgICAgICAgJ3RvIHVzZScpCi0gICAgcGFy
c2VyLmFkZF9vcHRpb24oJy0tdGxzLW1vZHVsZScsICctLXRsc19tb2R1bGUnLCBkZXN0PSd0bHNf
bW9kdWxlJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdjaG9pY2UnLAotICAgICAgICAg
ICAgICAgICAgICAgIGNob2ljZXM9W19UTFNfQllfU1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZ
T1BFTlNTTF0sCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNlIHNzbCBtb2R1bGUgaWYg
IiVzIiBpcyBzcGVjaWZpZWQuICcKLSAgICAgICAgICAgICAgICAgICAgICAnVXNlIHB5T3BlblNT
TCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAo
X1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNfQllfUFlPUEVOU1NMKSkKLSAgICBwYXJzZXIu
YWRkX29wdGlvbignLS10bHMtdmVyc2lvbicsICctLXRsc192ZXJzaW9uJywKLSAgICAgICAgICAg
ICAgICAgICAgICBkZXN0PSd0bHNfdmVyc2lvbicsCi0gICAgICAgICAgICAgICAgICAgICAgdHlw
ZT0nc3RyaW5nJywgZGVmYXVsdD1fVExTX1ZFUlNJT05fU1NMMjMsCi0gICAgICAgICAgICAgICAg
ICAgICAgaGVscD0nVExTL1NTTCB2ZXJzaW9uIHRvIHVzZS4gT25lIG9mIFwnJyArCi0gICAgICAg
ICAgICAgICAgICAgICAgX1RMU19WRVJTSU9OX1NTTDIzICsgJ1wnIChTU0wgdmVyc2lvbiAyIG9y
IDMpLCBcJycgKwotICAgICAgICAgICAgICAgICAgICAgIF9UTFNfVkVSU0lPTl9TU0wzICsgJ1wn
IChTU0wgdmVyc2lvbiAzKSwgXCcnICsKLSAgICAgICAgICAgICAgICAgICAgICBfVExTX1ZFUlNJ
T05fVExTMSArICdcJyAoVExTIHZlcnNpb24gMSknKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
LWRpc2FibGUtdGxzLWNvbXByZXNzaW9uJywgJy0tZGlzYWJsZV90bHNfY29tcHJlc3Npb24nLAot
ICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2Rpc2FibGVfdGxzX2NvbXByZXNzaW9uJywKLSAg
ICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0Rpc2FibGUgVExTIGNvbXByZXNzaW9uLiBBdmFp
bGFibGUgb25seSB3aGVuICcKLSAgICAgICAgICAgICAgICAgICAgICAncHlPcGVuU1NMIG1vZHVs
ZSBpcyB1c2VkLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1rJywgJy0tc29ja2V0LXRpbWVv
dXQnLCAnLS1zb2NrZXRfdGltZW91dCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc29j
a2V0X3RpbWVvdXQnLCB0eXBlPSdpbnQnLCBkZWZhdWx0PV9USU1FT1VUX1NFQywKLSAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSdUaW1lb3V0KHNlYykgZm9yIHNvY2tldHMnKQotICAgIHBhcnNl
ci5hZGRfb3B0aW9uKCctLWRyYWZ0NzUnLCBkZXN0PSdkcmFmdDc1JywKLSAgICAgICAgICAgICAg
ICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J09ic29sZXRlIG9wdGlvbi4gRG9uXCd0IHVzZSB0aGlzLicpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy0tcHJvdG9jb2wtdmVyc2lvbicsICctLXByb3RvY29sX3ZlcnNp
b24nLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3Byb3RvY29sX3ZlcnNpb24nLAotICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU9J3N0cmluZycsIGRlZmF1bHQ9X1BST1RPQ09MX1ZFUlNJ
T05fSFlCSTEzLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1dlYlNvY2tldCBwcm90b2Nv
bCB2ZXJzaW9uIHRvIHVzZS4gT25lIG9mIFwnJyArCi0gICAgICAgICAgICAgICAgICAgICAgX1BS
T1RPQ09MX1ZFUlNJT05fSFlCSTEzICsgJ1wnLCBcJycgKwotICAgICAgICAgICAgICAgICAgICAg
IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCArICdcJywgXCcnICsKLSAgICAgICAgICAgICAgICAg
ICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDAgKyAnXCcnKQotICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctLXZlcnNpb24taGVhZGVyJywgJy0tdmVyc2lvbl9oZWFkZXInLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9J3ZlcnNpb25faGVhZGVyJywKLSAgICAgICAgICAgICAgICAgICAgICB0
eXBlPSdpbnQnLCBkZWZhdWx0PS0xLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1NwZWNp
ZnkgU2VjLVdlYlNvY2tldC1WZXJzaW9uIGhlYWRlciB2YWx1ZScpCi0gICAgcGFyc2VyLmFkZF9v
cHRpb24oJy0tZGVmbGF0ZS1mcmFtZScsICctLWRlZmxhdGVfZnJhbWUnLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9J2RlZmxhdGVfZnJhbWUnLAotICAgICAgICAgICAgICAgICAgICAgIGFj
dGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAg
aGVscD0nVXNlIHRoZSBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbi4nKQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctLXVzZS1wZXJtZXNzYWdlLWRlZmxhdGUnLCAnLS11c2VfcGVybWVzc2FnZV9kZWZs
YXRlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd1c2VfcGVybWVzc2FnZV9kZWZsYXRl
JywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZh
bHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1VzZSB0aGUgcGVybWVzc2FnZS1kZWZs
YXRlIGV4dGVuc2lvbi4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1sZXZlbCcsICct
LWxvZ19sZXZlbCcsIHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0n
bG9nX2xldmVsJywgZGVmYXVsdD0nd2FybicsCi0gICAgICAgICAgICAgICAgICAgICAgY2hvaWNl
cz1bJ2RlYnVnJywgJ2luZm8nLCAnd2FybicsICdlcnJvcicsICdjcml0aWNhbCddLAotICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBsZXZlbC4nKQotCi0gICAgKG9wdGlvbnMsIHVudXNl
ZF9hcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQotICAgIGxvZ2dpbmcuYmFzaWNDb25maWco
bGV2ZWw9bG9nZ2luZy5nZXRMZXZlbE5hbWUob3B0aW9ucy5sb2dfbGV2ZWwudXBwZXIoKSkpCi0K
LSAgICBpZiBvcHRpb25zLmRyYWZ0NzU6Ci0gICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJy0tZHJh
ZnQ3NSBvcHRpb24gaXMgb2Jzb2xldGUuJykKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlm
IG9wdGlvbnMucHJvdG9jb2xfdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9ISVhJRTc1Ogot
ICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAgICAgICAgJ1ZhbHVlICVzIGlzIG9ic29s
ZXRlIGZvciAtLXByb3RvY29sX3ZlcnNpb24gb3B0aW9ucycgJQotICAgICAgICAgICAgX1BST1RP
Q09MX1ZFUlNJT05fSElYSUU3NSkKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIG9wdGlv
bnMudXNlX3RsczoKLSAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIE5vbmU6Ci0gICAg
ICAgICAgICBpZiBfaW1wb3J0X3NzbCgpOgotICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21v
ZHVsZSA9IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFCi0gICAgICAgICAgICAgICAgbG9nZ2luZy5k
ZWJ1ZygnVXNpbmcgc3NsIG1vZHVsZScpCi0gICAgICAgICAgICBlbGlmIF9pbXBvcnRfcHlvcGVu
c3NsKCk6Ci0gICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9QWU9Q
RU5TU0wKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBweU9wZW5TU0wgbW9k
dWxlJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNh
bCgKLSAgICAgICAgICAgICAgICAgICAgICAgICdUTFMgc3VwcG9ydCByZXF1aXJlcyBzc2wgb3Ig
cHlPcGVuU1NMIG1vZHVsZS4nKQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAg
IGVsaWYgb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAg
ICAgICAgICAgaWYgbm90IF9pbXBvcnRfc3NsKCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5j
cml0aWNhbCgnc3NsIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKLSAgICAgICAgICAgICAgICBz
eXMuZXhpdCgxKQotICAgICAgICBlbGlmIG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZ
T1BFTlNTTDoKLSAgICAgICAgICAgIGlmIG5vdCBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgICAg
ICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ3B5T3BlblNTTCBtb2R1bGUgaXMgbm90IGF2YWls
YWJsZScpCi0gICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ0ludmFsaWQgLS10bHMtbW9kdWxlIG9wdGlvbjogJXIn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUpCi0gICAg
ICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIChvcHRpb25zLmRpc2FibGVfdGxzX2Nv
bXByZXNzaW9uIGFuZAotICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlICE9IF9UTFNfQllf
UFlPUEVOU1NMKToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1lvdSBjYW4gZGlzYWJs
ZSBUTFMgY29tcHJlc3Npb24gb25seSB3aGVuICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3B5T3BlblNTTCBtb2R1bGUgaXMgdXNlZC4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkK
LSAgICBlbHNlOgotICAgICAgICBpZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiBvbmx5
IHRvZ2V0aGVyIHdpdGggJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS11c2UtdGxz
IG9wdGlvbi4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBpZiBvcHRpb25z
LmRpc2FibGVfdGxzX2NvbXByZXNzaW9uOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgn
VXNlIC0tZGlzYWJsZS10bHMtY29tcHJlc3Npb24gb25seSB0b2dldGhlciAnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICd3aXRoIC0tdXNlLXRscyBvcHRpb24uJykKLSAgICAgICAgICAg
IHN5cy5leGl0KDEpCi0KLSAgICAjIERlZmF1bHQgcG9ydCBudW1iZXIgZGVwZW5kcyBvbiB3aGV0
aGVyIFRMUyBpcyB1c2VkLgotICAgIGlmIG9wdGlvbnMuc2VydmVyX3BvcnQgPT0gX1VOREVGSU5F
RF9QT1JUOgotICAgICAgICBpZiBvcHRpb25zLnVzZV90bHM6Ci0gICAgICAgICAgICBvcHRpb25z
LnNlcnZlcl9wb3J0ID0gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9TRUNVUkVfUE9SVAotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9IGNvbW1vbi5ERUZB
VUxUX1dFQl9TT0NLRVRfUE9SVAotCi0gICAgIyBvcHRwYXJzZSBkb2Vzbid0IHNlZW0gdG8gaGFu
ZGxlIG5vbi1hc2NpaSBkZWZhdWx0IHZhbHVlcy4KLSAgICAjIFNldCBkZWZhdWx0IG1lc3NhZ2Ug
aGVyZS4KLSAgICBpZiBub3Qgb3B0aW9ucy5tZXNzYWdlOgotICAgICAgICBvcHRpb25zLm1lc3Nh
Z2UgPSB1J0hlbGxvLFx1NjVlNVx1NjcyYycgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKLQotICAg
IEVjaG9DbGllbnQob3B0aW9ucykucnVuKCkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgotICAgIG1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGY1MTUxMjI3MTExZTExNDQyNGM1NTg2
YTE0MmE5YWRiN2Q2MDRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX25vZXh0X3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDYxICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLV9HT09EQllFX01FU1NBR0UgPSB1J0dv
b2RieWUnCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgot
ICAgICIiIlJlY2VpdmVkIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIgdmFsdWUgaXMg
cGFyc2VkIGludG8KLSAgICByZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zLiBweXdlYnNv
Y2tldCBjcmVhdGVzIGV4dGVuc2lvbgotICAgIHByb2Nlc3NvcnMgdXNpbmcgaXQgYmVmb3JlIGRv
X2V4dHJhX2hhbmRzaGFrZSBjYWxsIGFuZCBuZXZlciBsb29rcyBhdCBpdAotICAgIGFmdGVyIHRo
ZSBjYWxsLgotCi0gICAgVG8gcmVqZWN0IHJlcXVlc3RlZCBleHRlbnNpb25zLCBjbGVhciB0aGUg
cHJvY2Vzc29yIGxpc3QuCi0gICAgIiIiCi0KLSAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9j
ZXNzb3JzID0gW10KLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgot
ICAgICIiIkVjaG8uIFNhbWUgYXMgZWNob193c2gucHkuIiIiCi0KLSAgICB3aGlsZSBUcnVlOgot
ICAgICAgICBsaW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAg
ICAgaWYgbGluZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIGlzaW5z
dGFuY2UobGluZSwgdW5pY29kZSk6Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5k
X21lc3NhZ2UobGluZSwgYmluYXJ5PUZhbHNlKQotICAgICAgICAgICAgaWYgbGluZSA9PSBfR09P
REJZRV9NRVNTQUdFOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUsIGJpbmFyeT1UcnVl
KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9f
d3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzODY0NmMzMmNlYjUxNWYxNWRkNTcyNjIyNjg5Yzc5ZWU2MWU1NDNmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hv
X3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEs
IEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0j
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0KLV9HT09EQllFX01FU1NBR0UgPSB1J0dvb2RieWUnCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9f
ZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgICMgVGhpcyBleGFtcGxlIGhhbmRsZXIgYWNj
ZXB0cyBhbnkgcmVxdWVzdC4gU2VlIG9yaWdpbl9jaGVja193c2gucHkgZm9yIGhvdwotICAgICMg
dG8gcmVqZWN0IGFjY2VzcyBmcm9tIHVudHJ1c3RlZCBzY3JpcHRzIGJhc2VkIG9uIG9yaWdpbiB2
YWx1ZS4KLQotICAgIHBhc3MgICMgQWx3YXlzIGFjY2VwdC4KLQotCi1kZWYgd2ViX3NvY2tldF90
cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGxpbmUgPSBy
ZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBsaW5lIGlzIE5v
bmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCB1bmlj
b2RlKToKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5lLCBi
aW5hcnk9RmFsc2UpCi0gICAgICAgICAgICBpZiBsaW5lID09IF9HT09EQllFX01FU1NBR0U6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXF1ZXN0
LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PVRydWUpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dpIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2V2ZW50c291cmNlLmNnaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWRkZGYyMzdjZjdkNDc2NDk3MzQ3ZDA5NWExMjI5OTQxNzdlMTQwOS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2Uu
Y2dpCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotIyEvdXNyL2Jpbi9weXRob24KLQot
IyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBDR0kgc2NyaXB0IGdlbmVyYXRlcyB0ZXh0L2V2
ZW50LXN0cmVhbSB0eXBlIGRhdGEgc3RyZWFtIGZvciB0ZXN0aW5nCi10aGUgU2VydmVyLVNlbnQg
RXZlbnRzLgotCi1JdCB3aWxsIG9ubHkgd29yayBjb3JyZWN0bHkgd2l0aCBIVFRQIHNlcnZlcnMg
dGhhdCBkbyBub3QgYnVmZmVyIHRoZSBvdXRwdXQgb2YKLUNHSSBzY3JpcHRzLgotIiIiCi0KLQot
aW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKLQotc3lzLnN0ZG91dC53cml0ZSgnQ29udGVudC10eXBl
OiB0ZXh0L2V2ZW50LXN0cmVhbVxyXG5cclxuJykKLQotaWQgPSAwCi0KLXdoaWxlIFRydWU6Ci0g
IHN5cy5zdGRvdXQud3JpdGUoJ2RhdGE6IEhlbGxvXHJcbmlkOiAlZFxyXG5cclxuJyAlIGlkKQot
ICBzeXMuc3Rkb3V0LmZsdXNoKCkKLQotICBpZCA9IGlkICsgMQotCi0gIHRpbWUuc2xlZXAoMSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2V2ZW50c291cmNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1OThhODgw
N2QxZmZjY2VjZjU4NWYxYmI2NTZmZDJkOTAyZmNkMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2V2ZW50c291cmNlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgMjAxMywgR29vZ2xl
IEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
bWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlz
dHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0t
LT4KLQotPCEtLQotU2ltcGxlIGV4YW1wbGUgb2YgdGhlIFNlcnZlci1TZW50IEV2ZW50cwotaHR0
cDovL2Rldi53My5vcmcvaHRtbDUvZXZlbnRzb3VyY2UvCi0KLUZvciBjb21wYXJpc29uIHdpdGgg
dGhlIFdlYlNvY2tldCBQcm90b2NvbCAmIEFQSS4KLQotUnVuIHRoZSBweXdlYnNvY2tldCB3aXRo
IHRoZSAtLWNnaV9wYXRoIHBhcmFtZXRlci4KLS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxl
PlNlcnZlci1TZW50IEV2ZW50cyBFeGFtcGxlPC90aXRsZT4KLTxzY3JpcHQ+Ci12YXIgZXZlbnRT
b3VyY2UgPSBudWxsOwotCi1mdW5jdGlvbiBhZGRUb0xvZyhkYXRhKSB7Ci0gIGxvZ0JveC52YWx1
ZSArPSBkYXRhICsgJ1xuJzsKLSAgbG9nQm94LnNjcm9sbFRvcCA9IDEwMDAwMDA7Ci19Ci0KLWZ1
bmN0aW9uIGluaXQoKSB7Ci0gIGxvZ0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cn
KTsKLQotICBldmVudFNvdXJjZSAgPSBuZXcgRXZlbnRTb3VyY2UoJy9ldmVudHNvdXJjZS5jZ2kn
KTsKLSAgZXZlbnRTb3VyY2Uub25vcGVuID0gZnVuY3Rpb24oKSB7Ci0gICAgYWRkVG9Mb2coJ29u
b3BlbiAocmVhZHlTdGF0ZSA9ICcgKyBldmVudFNvdXJjZS5yZWFkeVN0YXRlICsgJyknKTsKLSAg
fQotICBldmVudFNvdXJjZS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewotICAgIGFkZFRv
TG9nKGV2ZW50LmRhdGEpOwotICB9Ci0gIGV2ZW50U291cmNlLm9uZXJyb3IgPSBmdW5jdGlvbihl
dmVudCkgewotICAgIGFkZFRvTG9nKCdvbmVycm9yIChyZWFkeVN0YXRlID0gJyArIGV2ZW50U291
cmNlLnJlYWR5U3RhdGUgKyAnKScpOwotICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
IG9ubG9hZD0iaW5pdCgpIj4KLTx0ZXh0YXJlYSBpZD0ibG9nIiByb3dzPSIxMCIgY29scz0iNDAi
IHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08cCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbCI+Ci0gIE1h
a2Ugc3VyZSB0aGF0IHB5d2Vic29ja2V0IGlzIHJ1biB3aXRoIC0tY2dpX3BhdGggcGFyYW1ldGVy
LgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNo
X2JlbmNobWFyay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX2JlbmNobWFyay5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTA1ZWI2N2E1NTMyYjc2YmM5N2JmODMxMDhhMTll
MDQzZTU0ZjMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5jaG1hcmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2
MyArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1z
dHlsZQotbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0
Ci1odHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QK
LS0tPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5GZXRjaCBBUEkgYmVuY2htYXJrPC90aXRsZT4K
LTxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InV0aWwu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImZldGNoX2JlbmNobWFyay5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotdmFyIGFkZHJlc3NCb3ggPSBudWxsOwotCi1mdW5jdGlvbiBnZXRDb25maWco
KSB7Ci0gIHJldHVybiB7Ci0gICAgcHJlZml4VXJsOiBhZGRyZXNzQm94LnZhbHVlLAotICAgIHBy
aW50U2l6ZTogZ2V0Qm9vbEZyb21DaGVja0JveCgncHJpbnRzaXplJyksCi0gICAgbnVtRmV0Y2hl
czogZ2V0SW50RnJvbUlucHV0KCdudW1GZXRjaGVzJyksCi0gICAgLy8gSW5pdGlhbCBzaXplIG9m
IG1lc3NhZ2VzLgotICAgIG51bUl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtaXRlcmF0
aW9ucycpLAotICAgIG51bVdhcm1VcEl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtd2Fy
bXVwaXRlcmF0aW9ucycpLAotICAgIHN0YXJ0U2l6ZTogZ2V0SW50RnJvbUlucHV0KCdzdGFydHNp
emUnKSwKLSAgICAvLyBTdG9wcyBiZW5jaG1hcmsgd2hlbiB0aGUgc2l6ZSBvZiBtZXNzYWdlIGV4
Y2VlZHMgdGhpcyB0aHJlc2hvbGQuCi0gICAgc3RvcFRocmVzaG9sZDogZ2V0SW50RnJvbUlucHV0
KCdzdG9wdGhyZXNob2xkJyksCi0gICAgbXVsdGlwbGllcnM6IGdldEZsb2F0QXJyYXlGcm9tSW5w
dXQoJ211bHRpcGxpZXJzJyksCi0gICAgdmVyaWZ5RGF0YTogZ2V0Qm9vbEZyb21DaGVja0JveCgn
dmVyaWZ5ZGF0YScpLAotICAgIGFkZFRvTG9nOiBhZGRUb0xvZywKLSAgICBhZGRUb1N1bW1hcnk6
IGFkZFRvU3VtbWFyeSwKLSAgICBtZWFzdXJlVmFsdWU6IG1lYXN1cmVWYWx1ZSwKLSAgICBub3Rp
ZnlBYm9ydDogbm90aWZ5QWJvcnQKLSAgfTsKLX0KLQotZnVuY3Rpb24gb25TZW5kQmVuY2htYXJr
KCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGNvbmZpZy5kYXRhVHlwZSA9IGdl
dFN0cmluZ0Zyb21SYWRpb0JveCgnZGF0YXR5cGVyYWRpbycpOwotICBkb0FjdGlvbihjb25maWcs
IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc2VuZEJlbmNobWFyaycpOwotfQotCi1m
dW5jdGlvbiBvblJlY2VpdmVCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWco
KTsKLSAgY29uZmlnLmRhdGFUeXBlID0gZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdkYXRhdHlwZXJh
ZGlvJyk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyks
ICdyZWNlaXZlQmVuY2htYXJrJyk7Ci19Ci0KLWZ1bmN0aW9uIG9uQmF0Y2hCZW5jaG1hcmsoKSB7
Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29s
RnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ2JhdGNoQmVuY2htYXJrJyk7Ci19Ci0KLWZ1bmN0aW9u
IG9uU3RvcCgpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBkb0FjdGlvbihjb25m
aWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc3RvcCcpOwotfQotCi1mdW5jdGlv
biBpbml0KCkgewotICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZHJl
c3MnKTsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwotCi0gIHN1
bW1hcnlCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VtbWFyeScpOwotCi0gIC8vIFNw
ZWNpYWwgYWRkcmVzcyBvZiBweXdlYnNvY2tldCBmb3IgWEhSL0ZldGNoIEFQSSBiZW5jaG1hcmsu
Ci0gIGFkZHJlc3NCb3gudmFsdWUgPSAnLzA3M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFjMjQ1
JzsKLQotICBhZGRUb0xvZyh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgp
KTsKLSAgYWRkVG9TdW1tYXJ5KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNl
KCkpOwotCi0gIGluaXRXb3JrZXIoJ2ZldGNoJywgJycpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci0KLTxmb3JtIGlkPSJiZW5jaG1hcmtfZm9ybSI+Ci0g
IHVybCBwcmVmaXggPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+Ci0g
IDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJzZW5kIiBvbmNsaWNrPSJvblNlbmRCZW5jaG1h
cmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJyZWNlaXZlIiBvbmNsaWNrPSJv
blJlY2VpdmVCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJiYXRj
aCIgb25jbGljaz0ib25CYXRjaEJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIg
dmFsdWU9InN0b3AiIG9uY2xpY2s9Im9uU3RvcCgpIj4KLQotICA8YnIvPgotCi0gIDxpbnB1dCB0
eXBlPSJjaGVja2JveCIgaWQ9InByaW50c2l6ZSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0icHJp
bnRzaXplIj5QcmludCBzaXplIGFuZCB0aW1lIHBlciBtZXNzYWdlPC9sYWJlbD4KLSAgPGlucHV0
IHR5cGU9ImNoZWNrYm94IiBpZD0idmVyaWZ5ZGF0YSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0i
dmVyaWZ5ZGF0YSI+VmVyaWZ5IGRhdGE8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3gi
IGlkPSJ3b3JrZXIiPgotICA8bGFiZWwgZm9yPSJ3b3JrZXIiPlJ1biBvbiB3b3JrZXI8L2xhYmVs
PgotCi0gIDxici8+Ci0KLSAgUGFyYW1ldGVyczoKLQotICA8YnIvPgotCi0gIDx0YWJsZT4KLSAg
ICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVyIG9mIGZldGNoKCkgcmVxdWVzdHM8L3RkPgotICAgICAg
PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtRmV0Y2hlcyIgdmFsdWU9IjEiPjwvdGQ+Ci0g
ICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVyIG9mIGl0ZXJhdGlvbnM8L3RkPgot
ICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtaXRlcmF0aW9ucyIgdmFsdWU9IjEi
PjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVyIG9mIHdhcm0tdXAg
aXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW13YXJt
dXBpdGVyYXRpb25zIiB2YWx1ZT0iMCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAg
IDx0ZD5TdGFydCBzaXplPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InN0
YXJ0c2l6ZSIgdmFsdWU9IjEwMjQwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAg
PHRkPlN0b3AgdGhyZXNob2xkPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9
InN0b3B0aHJlc2hvbGQiIHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8
dHI+Ci0gICAgICA8dGQ+TXVsdGlwbGllcnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0
ZXh0IiBpZD0ibXVsdGlwbGllcnMiIHZhbHVlPSI1LCAyIj48L3RkPgotICAgIDwvdHI+Ci0gIDwv
dGFibGU+Ci0KLSAgU2V0IGRhdGEgdHlwZQotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAg
ICBuYW1lPSJkYXRhdHlwZXJhZGlvIgotICAgICAgICAgaWQ9ImRhdGF0eXBlcmFkaW90ZXh0Igot
ICAgICAgICAgdmFsdWU9InRleHQiCi0gICAgICAgICBjaGVja2VkPjxsYWJlbCBmb3I9ImRhdGF0
eXBlcmFkaW90ZXh0Ij50ZXh0PC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9InJhZGlvIgotICAgICAg
ICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKLSAgICAgICAgIGlkPSJkYXRhdHlwZXJhZGlvYmxvYiIK
LSAgICAgICAgIHZhbHVlPSJibG9iIgotICAgICAgICAgPjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFk
aW9ibG9iIj5ibG9iPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFt
ZT0iZGF0YXR5cGVyYWRpbyIKLSAgICAgICAgIGlkPSJkYXRhdHlwZXJhZGlvYXJyYXlidWZmZXIi
Ci0gICAgICAgICB2YWx1ZT0iYXJyYXlidWZmZXIiCi0gICAgICAgICA+PGxhYmVsIGZvcj0iZGF0
YXR5cGVyYWRpb2FycmF5YnVmZmVyIj5hcnJheWJ1ZmZlcjwvbGFiZWw+Ci08L2Zvcm0+Ci0KLTxk
aXYgaWQ9ImxvZ19kaXYiPgotICA8dGV4dGFyZWEKLSAgICAgIGlkPSJsb2ciIHJvd3M9IjIwIiBz
dHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08L2Rpdj4KLTxkaXYgaWQ9
InN1bW1hcnlfZGl2Ij4KLSAgU3VtbWFyeQotICA8dGV4dGFyZWEKLSAgICAgIGlkPSJzdW1tYXJ5
IiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9k
aXY+Ci0KLTxkaXYgaWQ9Im5vdGVfZGl2Ij4KLSAgTm90ZToKLSAgPHVsPgotICAgIDxsaT5FZmZl
Y3Qgb2YgUlRUIGFuZCB0aW1lIHNwZW50IGZvciBBcnJheUJ1ZmZlciBjcmVhdGlvbiBpbiByZWNl
aXZlIGJlbmNobWFya3MgYXJlIG5vdCBlbGltaW5hdGVkLjwvbGk+Ci0gICAgPGxpPlRoZSBTdGRk
ZXYgY29sdW1uIHNob3dzIE5hTiB3aGVuIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBpcyBzZXQg
dG8gMS48L2xpPgotICA8L3VsPgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5jaG1hcmsuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hf
YmVuY2htYXJrLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzk1MjE5MGE4ZTA3
MzllM2EwZjJhNDhjYjgzZGJlOWIzMDE1Mzk2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5jaG1hcmsuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMjUgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0
aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9v
cGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotdmFyIGlzV29ya2VyID0gdHlwZW9mIGltcG9ydFNj
cmlwdHMgIT09ICJ1bmRlZmluZWQiOwotCi1pZiAoaXNXb3JrZXIpIHsKLSAgLy8gUnVubmluZyBv
biBhIHdvcmtlcgotICBpbXBvcnRTY3JpcHRzKCd1dGlsLmpzJywgJ3V0aWxfd29ya2VyLmpzJyk7
Ci19Ci0KLS8vIE5hbWVzcGFjZSBmb3IgaG9sZGluZyBnbG9iYWxzLgotdmFyIGJlbmNobWFyayA9
IHt9OwotYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSAwOwotCi12YXIgdGltZXJJRCA9IG51bGw7
Ci0KLWZ1bmN0aW9uIHNlbmRCZW5jaG1hcmtTdGVwKHNpemUsIGNvbmZpZywgaXNXYXJtVXApIHsK
LSAgdGltZXJJRCA9IG51bGw7Ci0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gbnVsbDsKLQot
ICAvLyBQcmVwYXJlIGRhdGEuCi0gIHZhciBkYXRhQXJyYXkgPSBbXTsKLSAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjb25maWcubnVtRmV0Y2hlczsgKytpKSB7Ci0gICAgdmFyIGRhdGEgPSBudWxsOwot
ICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT0gJ2FycmF5YnVmZmVyJyB8fAotICAgICAgICBjb25m
aWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAgICBkYXRhID0gbmV3IEFycmF5QnVmZmVyKHNp
emUpOwotCi0gICAgICBmaWxsQXJyYXlCdWZmZXIoZGF0YSwgMHg2MSk7Ci0KLSAgICAgIGlmIChj
b25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAgICAgIGRhdGEgPSBuZXcgQmxvYihbZGF0
YV0pOwotICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICBkYXRhID0gcmVwZWF0U3RyaW5nKCdh
Jywgc2l6ZSk7Ci0gICAgfQotCi0gICAgZGF0YUFycmF5LnB1c2goZGF0YSk7Ci0gIH0KLQotICAv
LyBTdGFydCB0aW1lIG1lYXN1cmluZy4KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRU
aW1lU3RhbXAoKTsKLQotICAvLyBTdGFydCBmZXRjaC4KLSAgdmFyIHByb21pc2VzID0gW107Ci0g
IGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bUZldGNoZXM7ICsraSkgewotICAgIHZhciBk
YXRhID0gZGF0YUFycmF5W2ldOwotICAgIHZhciBwcm9taXNlID0gZmV0Y2goY29uZmlnLnByZWZp
eFVybCArICdfc2VuZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnUE9TVCcs
IGJvZHk6IGRhdGF9KQotICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKLSAgICAg
ICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCkgewotICAgICAgICAgICAgY29uZmlnLmFk
ZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0nICsgcmVzcG9uc2Uuc3RhdHVzICsgJyknKTsKLSAgICAg
ICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOwotICAgICAgICAgIH0KLSAgICAgICAgICAv
LyBDaGVjayBhbmQgd2FybiBpZiBwcm94eSBpcyBlbmFibGVkLgotICAgICAgICAgIGlmIChyZXNw
b25zZS5oZWFkZXJzLmdldCgnVmlhJykgIT09IG51bGwpIHsKLSAgICAgICAgICAgIGNvbmZpZy5h
ZGRUb0xvZygnV0FSTklORzogcHJveHkgc2VlbXMgZW5hYmxlZC4nKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVz
cG9uc2UudGV4dCgpCi0gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24odGV4dCkgewotICAg
ICAgICAgICAgICAgICAgaWYgKCF2ZXJpZnlBY2tub3dsZWRnZW1lbnQoY29uZmlnLCB0ZXh0LCBz
aXplKSkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTsKLSAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICB9Ci0gICAg
ICAgIH0pOwotICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7Ci0gIH0KLQotICAvLyBGaW5pc2gg
YW5kIHJlcG9ydCB0aW1lIG1lYXN1cmluZy4KLSAgUHJvbWlzZS5hbGwocHJvbWlzZXMpCi0gICAg
ICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKGJlbmNobWFyay5zdGFydFRpbWVJbk1z
ID09IG51bGwpIHsKLSAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90
IHNldCcpOwotICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOwotICAgICAgICB9Ci0g
ICAgICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFy
dFRpbWVJbk1zLAotICAgICAgICAgIHNpemUgKiBjb25maWcubnVtRmV0Y2hlcywgaXNXYXJtVXAp
OwotICAgICAgICBydW5OZXh0VGFzayhjb25maWcpOwotICAgICAgfSkKLSAgICAgIC5jYXRjaChm
dW5jdGlvbihlKSB7Ci0gICAgICAgIGNvbmZpZy5hZGRUb0xvZygiRVJST1I6ICIgKyBlKTsKLSAg
ICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICB9KTsKLX0KLQotZnVuY3Rpb24gcmVj
ZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBpc1dhcm1VcCkgewotICB0aW1lcklEID0g
bnVsbDsKLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBudWxsOwotCi0gIC8vIFN0YXJ0IHRp
bWUgbWVhc3VyaW5nLgotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgp
OwotCi0gIC8vIFN0YXJ0IGZldGNoLgotICB2YXIgcHJvbWlzZXMgPSBbXTsKLSAgZm9yICh2YXIg
aSA9IDA7IGkgPCBjb25maWcubnVtRmV0Y2hlczsgKytpKSB7Ci0gICAgdmFyIHJlcXVlc3Q7Ci0g
ICAgaWYgKGNvbmZpZy5tZXRob2RBbmRDYWNoZSA9PT0gJ0dFVC1OT0NBQ0hFJykgewotICAgICAg
cmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmVfZ2V0bm9j
YWNoZT8nICsgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnR0VU
J30pOwotICAgIH0gZWxzZSBpZiAoY29uZmlnLm1ldGhvZEFuZENhY2hlID09PSAnR0VULUNBQ0hF
JykgewotICAgICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGNvbmZpZy5wcmVmaXhVcmwgKyAnX3Jl
Y2VpdmVfZ2V0Y2FjaGU/JyArIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge21l
dGhvZDogJ0dFVCd9KTsKLSAgICB9IGVsc2UgewotICAgICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0
KGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmUnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHttZXRob2Q6ICdQT1NUJywgYm9keTogc2l6ZSArICcgbm9uZSd9KTsKLSAgICB9Ci0gICAg
dmFyIHByb21pc2UgPSBmZXRjaChyZXF1ZXN0KQotICAgICAgICAudGhlbihmdW5jdGlvbihyZXNw
b25zZSkgewotICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwKSB7Ci0gICAgICAg
ICAgICBjb25maWcuYWRkVG9Mb2coJ0ZhaWxlZCAoc3RhdHVzPScgKyB0aGlzLnN0YXR1cyArICcp
Jyk7Ci0gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgLy8gQ2hlY2sgYW5kIHdhcm4gaWYgcHJveHkgaXMgZW5hYmxlZC4KLSAgICAgICAg
ICBpZiAocmVzcG9uc2UuaGVhZGVycy5nZXQoJ1ZpYScpICE9PSBudWxsKSB7Ci0gICAgICAgICAg
ICBjb25maWcuYWRkVG9Mb2coJ1dBUk5JTkc6IHByb3h5IHNlZW1zIGVuYWJsZWQuJyk7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT09ICdhcnJheWJ1ZmZlcicp
IHsKLSAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5hcnJheUJ1ZmZlcigpCi0gICAgICAgICAg
ICAgICAgLnRoZW4oZnVuY3Rpb24oYXJyYXlCdWZmZXIpIHsKLSAgICAgICAgICAgICAgICAgIHJl
dHVybiBbYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
KCFjb25maWcudmVyaWZ5RGF0YSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5
QXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIsIDB4NjEpKV07Ci0gICAgICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgfSBlbHNlIGlmIChjb25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAgICAg
ICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpCi0gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rp
b24oYmxvYikgewotICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25maWcudmVy
aWZ5RGF0YSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5QmxvYihjb25maWcsIGJs
b2IsIDB4NjEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24ocmVjZWl2ZWRT
aXplLCB2ZXJpZmljYXRpb25SZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc29sdmUoW3JlY2VpdmVkU2l6ZSwgdmVyaWZpY2F0aW9uUmVzdWx0XSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW2Jsb2Iuc2l6ZSwgdHJ1ZV0pOwotICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50
ZXh0KCkKLSAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbih0ZXh0KSB7Ci0gICAgICAgICAg
ICAgICAgICByZXR1cm4gW3RleHQubGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAo
IWNvbmZpZy52ZXJpZnlEYXRhIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID09
IHJlcGVhdFN0cmluZygnYScsIHRleHQubGVuZ3RoKSldOwotICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgIH0KLSAgICAgICAgfSkKLSAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVjZWl2ZWRT
aXplQW5kVmVyaWZpY2F0aW9uUmVzdWx0KSB7Ci0gICAgICAgICAgdmFyIHJlY2VpdmVkU2l6ZSA9
IHJlY2VpdmVkU2l6ZUFuZFZlcmlmaWNhdGlvblJlc3VsdFswXTsKLSAgICAgICAgICB2YXIgdmVy
aWZpY2F0aW9uUmVzdWx0ID0gcmVjZWl2ZWRTaXplQW5kVmVyaWZpY2F0aW9uUmVzdWx0WzFdOwot
ICAgICAgICAgIGlmIChyZWNlaXZlZFNpemUgIT09IHNpemUpIHsKLSAgICAgICAgICAgIGNvbmZp
Zy5hZGRUb0xvZygnRXhwZWN0ZWQgJyArIHNpemUgKwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdCIGJ1dCByZWNlaXZlZCAnICsgcmVjZWl2ZWRTaXplICsgJ0InKTsKLSAgICAgICAgICAg
IHJldHVybiBQcm9taXNlLnJlamVjdCgpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoIXZl
cmlmaWNhdGlvblJlc3VsdCkgewotICAgICAgICAgICAgY29uZmlnLmFkZFRvTG9nKCdSZXNwb25z
ZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7Ci0gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWpl
Y3QoKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIHByb21pc2VzLnB1c2gocHJvbWlz
ZSk7Ci0gIH0KLQotICAvLyBGaW5pc2ggYW5kIHJlcG9ydCB0aW1lIG1lYXN1cmluZy4KLSAgUHJv
bWlzZS5hbGwocHJvbWlzZXMpCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgaWYg
KGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsKLSAgICAgICAgICBjb25maWcuYWRk
VG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90IHNldCcpOwotICAgICAgICAgIHJldHVybiBQcm9taXNl
LnJlamVjdCgpOwotICAgICAgICB9Ci0gICAgICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25m
aWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1zLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZSAqIGNvbmZpZy5udW1GZXRjaGVzLCBpc1dhcm1VcCk7Ci0gICAgICAgIHJ1
bk5leHRUYXNrKGNvbmZpZyk7Ci0gICAgICB9KQotICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgY29uZmlnLmFkZFRvTG9nKCJFUlJPUjogIiArIGUpOwotICAgICAgICBjb25maWcu
bm90aWZ5QWJvcnQoKTsKLSAgICAgIH0pOwotfQotCi0KLWZ1bmN0aW9uIGdldENvbmZpZ1N0cmlu
Zyhjb25maWcpIHsKLSAgcmV0dXJuICcoJyArIGNvbmZpZy5kYXRhVHlwZSArCi0gICAgJywgdmVy
aWZ5RGF0YT0nICsgY29uZmlnLnZlcmlmeURhdGEgKwotICAgICcsICcgKyAoaXNXb3JrZXIgPyAn
V29ya2VyJyA6ICdNYWluJykgKwotICAgICcsIG51bUZldGNoZXM9JyArIGNvbmZpZy5udW1GZXRj
aGVzICsKLSAgICAnLCBudW1JdGVyYXRpb25zPScgKyBjb25maWcubnVtSXRlcmF0aW9ucyArCi0g
ICAgJywgbnVtV2FybVVwSXRlcmF0aW9ucz0nICsgY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMg
KwotICAgICcpJzsKLX0KLQotZnVuY3Rpb24gc3RhcnRCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNs
ZWFyVGltZW91dCh0aW1lcklEKTsKLQotICBydW5OZXh0VGFzayhjb25maWcpOwotfQotCi1mdW5j
dGlvbiBiYXRjaEJlbmNobWFyayhvcmlnaW5hbENvbmZpZykgewotICBvcmlnaW5hbENvbmZpZy5h
ZGRUb0xvZygnQmF0Y2ggYmVuY2htYXJrJyk7Ci0KLSAgdGFza3MgPSBbXTsKLSAgY2xlYXJBdmVy
YWdlRGF0YSgpOwotCi0gIHZhciBkYXRhVHlwZXMgPSBbJ3RleHQnLCAnYmxvYicsICdhcnJheWJ1
ZmZlciddOwotICB2YXIgc3RlcEZ1bmNzID0gW3NlbmRCZW5jaG1hcmtTdGVwLCByZWNlaXZlQmVu
Y2htYXJrU3RlcF07Ci0gIHZhciBuYW1lcyA9IFsnU2VuZCcsICdSZWNlaXZlJ107Ci0gIGZvciAo
dmFyIGkgPSAwOyBpIDwgc3RlcEZ1bmNzLmxlbmd0aDsgKytpKSB7Ci0gICAgZm9yICh2YXIgaiA9
IDA7IGogPCBkYXRhVHlwZXMubGVuZ3RoOyArK2opIHsKLSAgICAgIHZhciBjb25maWcgPSBjbG9u
ZUNvbmZpZyhvcmlnaW5hbENvbmZpZyk7Ci0gICAgICBjb25maWcuZGF0YVR5cGUgPSBkYXRhVHlw
ZXNbal07Ci0gICAgICBhZGRUYXNrcyhjb25maWcsIHN0ZXBGdW5jc1tpXSk7Ci0gICAgICBhZGRS
ZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywKLSAgICAgICAgICBuYW1lc1tpXSArICcgYmVuY2ht
YXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0gICAgfQotICB9Ci0KLSAgc3RhcnRC
ZW5jaG1hcmsoY29uZmlnKTsKLX0KLQotZnVuY3Rpb24gY2xlYW51cCgpIHsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2ZldGNoX3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGUxMmRmMmU3ZGY0ZDNlYTYyZGMyYTBiZDVlODFiZThiZjViNWRi
YzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL2ZldGNoX3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0idXRp
bC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImZldGNoX2JlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL2hhbmRsZXJfbWFwLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjFj
NGMwOWFhMDA5MWQ4YmFmMjkwODk1OTkwNTg2Nzg0MmFlYjg2NS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotIyB3ZWJzb2NrZXQgaGFuZGxlciBtYXAg
ZmlsZSwgdXNlZCBieSBzdGFuZGFsb25lLnB5IC1tIG9wdGlvbi4KLSMgQSBsaW5lIHN0YXJ0aW5n
IHdpdGggJyMnIGlzIGEgY29tbWVudCBsaW5lLgotIyBFYWNoIGxpbmUgY29uc2lzdHMgb2YgJ2Fs
aWFzX3Jlc291cmNlX3BhdGgnIGFuZCAnZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCcKLSMgc2VwYXJh
dGVkIGJ5IHNwYWNlcy4KLSMgQWxpYXNpbmcgaXMgcHJvY2Vzc2VkIGZyb20gdGhlIHRvcCB0byB0
aGUgYm90dG9tIG9mIHRoZSBsaW5lLCBhbmQKLSMgJ2V4aXN0aW5nX3Jlc291cmNlX3BhdGgnIG11
c3QgZXhpc3QgYmVmb3JlIGl0IGlzIGFsaWFzZWQuCi0jIEZvciBleGFtcGxlLAotIyAgLyAvZWNo
bwotIyBtZWFucyB0aGF0IGEgcmVxdWVzdCB0byAnLycgd2lsbCBiZSBoYW5kbGVkIGJ5IGhhbmRs
ZXJzIGZvciAnL2VjaG8nLgotLyAvZWNobwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaHN0
c193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaHN0c193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU4NjE5NDY5MjFhZjA0NTk0ZDYyMDI2YjQ2ZjA3NzU4ZGRmZTQwMmEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2hz
dHNfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAx
MywgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHJl
cXVlc3QuZXh0cmFfaGVhZGVycy5hcHBlbmQoCi0gICAgICAgICgnU3RyaWN0LVRyYW5zcG9ydC1T
ZWN1cml0eScsICdtYXgtYWdlPTg2NDAwJykpCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ0hlbGxv
JywgYmluYXJ5PUZhbHNlKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9pbnRlcm5hbF9l
cnJvcl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlNTgxYjU0YTY0OGMw
OWEyMmYyNTQ1MTI3ZDcwZGYwNTEzNDkyMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dzaC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFf
aGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zl
cl9kYXRhKHJlcXVlc3QpOgotICAgIHJhaXNlIG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9u
KCdJbnRlbnRpb25hbCcpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvb3JpZ2luX2NoZWNrX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9vcmlnaW5fY2hlY2tf
d3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDU3NjdhYjkzMmZiNTgyODI0
YWFmMWE1N2Q5MjQ5YzMwNGJkNTFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsNDQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0
OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSMgVGhpcyBleGFtcGxlIGlz
IGRlcml2ZWQgZnJvbSB0ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHku
Ci0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIGlm
IHJlcXVlc3Qud3Nfb3JpZ2luID09ICdodHRwOi8vZXhhbXBsZS5jb20nOgotICAgICAgICByZXR1
cm4KLSAgICByYWlzZSBWYWx1ZUVycm9yKCdVbmFjY2VwdGFibGUgb3JpZ2luOiAlcicgJSByZXF1
ZXN0LndzX29yaWdpbikKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3Qp
OgotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgnb3JpZ2luX2NoZWNrX3dzaC5weSBpcyBj
YWxsZWQgZm9yICVzLCAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVxdWVz
dC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00
IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3OGFlZGU5N2ExNDMwNDI4NTRlNTU1NzI4OTM3MjI4ZmVhYzdi
ZWIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InV0aWwuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InBlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJiZW5jaG1hcmsuanMiPjwvc2NyaXB0PgotPC9oZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwNjViMjViZDFmZmQ2Mzc1OTNlZjNmN2YwNmYwYTRmZTY2MGFkMGU4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9wZXJm
b3JtYW5jZV90ZXN0X2lmcmFtZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLWZ1
bmN0aW9uIHBlcmZUZXN0QWRkVG9Mb2codGV4dCkgewotICBwYXJlbnQucG9zdE1lc3NhZ2Uoeydj
b21tYW5kJzogJ2xvZycsICd2YWx1ZSc6IHRleHR9LCAnKicpOwotfQotCi1mdW5jdGlvbiBwZXJm
VGVzdEFkZFRvU3VtbWFyeSh0ZXh0KSB7Ci19Ci0KLWZ1bmN0aW9uIHBlcmZUZXN0TWVhc3VyZVZh
bHVlKHZhbHVlKSB7Ci0gIHBhcmVudC5wb3N0TWVzc2FnZSh7J2NvbW1hbmQnOiAnbWVhc3VyZVZh
bHVlJywgJ3ZhbHVlJzogdmFsdWV9LCAnKicpOwotfQotCi1mdW5jdGlvbiBwZXJmVGVzdE5vdGlm
eUFib3J0KCkgewotICBwYXJlbnQucG9zdE1lc3NhZ2Uoeydjb21tYW5kJzogJ25vdGlmeUFib3J0
J30sICcqJyk7Ci19Ci0KLWZ1bmN0aW9uIGdldENvbmZpZ0ZvclBlcmZvcm1hbmNlVGVzdChjb25u
ZWN0aW9uVHlwZSwgZGF0YVR5cGUsIGFzeW5jLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZlcmlmeURhdGEsIG51bUl0ZXJhdGlvbnMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbnVtV2FybVVwSXRlcmF0aW9ucykgewotICB2YXIgcHJlZml4VXJs
OwotICBpZiAoY29ubmVjdGlvblR5cGUgPT09ICdXZWJTb2NrZXQnKSB7Ci0gICAgcHJlZml4VXJs
ID0gJ3dzOi8vJyArIGxvY2F0aW9uLmhvc3QgKyAnL2JlbmNobWFya19oZWxwZXInOwotICB9IGVs
c2UgewotICAgIC8vIFhIUiBvciBmZXRjaAotICAgIHByZWZpeFVybCA9ICdodHRwOi8vJyArIGxv
Y2F0aW9uLmhvc3QgKyAnLzA3M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFjMjQ1JzsKLSAgfQot
Ci0gIHJldHVybiB7Ci0gICAgcHJlZml4VXJsOiBwcmVmaXhVcmwsCi0gICAgcHJpbnRTaXplOiB0
cnVlLAotICAgIG51bVhIUnM6IDEsCi0gICAgbnVtRmV0Y2hlczogMSwKLSAgICBudW1Tb2NrZXRz
OiAxLAotICAgIC8vICsgMSBpcyBmb3IgYSB3YXJtdXAgaXRlcmF0aW9uIGJ5IHRoZSBUZWxlbWV0
cnkgZnJhbWV3b3JrLgotICAgIG51bUl0ZXJhdGlvbnM6IG51bUl0ZXJhdGlvbnMgKyBudW1XYXJt
VXBJdGVyYXRpb25zICsgMSwKLSAgICBudW1XYXJtVXBJdGVyYXRpb25zOiBudW1XYXJtVXBJdGVy
YXRpb25zLAotICAgIG1pblRvdGFsOiAxMDI0MDAwMCwKLSAgICBzdGFydFNpemU6IDEwMjQwMDAw
LAotICAgIHN0b3BUaHJlc2hvbGQ6IDEwMjQwMDAwLAotICAgIG11bHRpcGxpZXJzOiBbMl0sCi0g
ICAgdmVyaWZ5RGF0YTogdmVyaWZ5RGF0YSwKLSAgICBkYXRhVHlwZTogZGF0YVR5cGUsCi0gICAg
YXN5bmM6IGFzeW5jLAotICAgIGFkZFRvTG9nOiBwZXJmVGVzdEFkZFRvTG9nLAotICAgIGFkZFRv
U3VtbWFyeTogcGVyZlRlc3RBZGRUb1N1bW1hcnksCi0gICAgbWVhc3VyZVZhbHVlOiBwZXJmVGVz
dE1lYXN1cmVWYWx1ZSwKLSAgICBub3RpZnlBYm9ydDogcGVyZlRlc3ROb3RpZnlBYm9ydAotICB9
OwotfQotCi12YXIgZGF0YTsKLW9ubWVzc2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKLSAgdmFy
IGFjdGlvbjsKLSAgaWYgKG1lc3NhZ2UuZGF0YS5jb21tYW5kID09PSAnc3RhcnQnKSB7Ci0gICAg
ZGF0YSA9IG1lc3NhZ2UuZGF0YTsKLSAgICBpbml0V29ya2VyKGRhdGEuY29ubmVjdGlvblR5cGUs
ICdodHRwOi8vJyArIGxvY2F0aW9uLmhvc3QpOwotICAgIGFjdGlvbiA9IGRhdGEuYmVuY2htYXJr
TmFtZTsKLSAgfSBlbHNlIHsKLSAgICBhY3Rpb24gPSAnc3RvcCc7Ci0gIH0KLQotICB2YXIgY29u
ZmlnID0gZ2V0Q29uZmlnRm9yUGVyZm9ybWFuY2VUZXN0KGRhdGEuY29ubmVjdGlvblR5cGUsIGRh
dGEuZGF0YVR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGF0YS5hc3luYywgZGF0YS52ZXJpZnlEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGEubnVtSXRlcmF0aW9ucywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkYXRhLm51bVdhcm1VcEl0ZXJhdGlvbnMpOwotICBkb0Fj
dGlvbihjb25maWcsIGRhdGEuaXNXb3JrZXIsIGFjdGlvbik7Ci19OwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL3B5d2Vic29ja2V0LmNvbmYgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29u
ZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM1ZDEzMGE1Yzg0ZjY5ZGU0ZjgxZDM1
OGZiMmNkYjViZGU0YWY2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29uZgorKysgL2Rldi9udWxsCkBAIC0x
LDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jCi0jIFNhbXBsZSBjb25maWd1cmF0aW9u
IGZpbGUgZm9yIGFwYWNoZTIKLSMKLUxvZ0xldmVsIGRlYnVnCi08SWZNb2R1bGUgcHl0aG9uX21v
ZHVsZT4KLSAgUHl0aG9uUGF0aCAic3lzLnBhdGgrWycvbW9kX3B5d2Vic29ja2V0J10iCi0gIFB5
dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9yb290IC92YXIvd3d3Ci0gIFB5dGhv
bk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9zY2FuIC92YXIvd3d3L3dzCi0gICNQeXRo
b25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmFsbG93X2RyYWZ0NzUgT24KLSAgPExvY2F0aW9uIC93
cz4KLSAgICBQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVyIG1vZF9weXdlYnNvY2tldC5oZWFkZXJw
YXJzZXJoYW5kbGVyCi0gIDwvTG9jYXRpb24+Ci08L0lmTW9kdWxlPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvc3BlY2lhbF9oZWFk
ZXJzLmNnaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWE1MDgwZjFmMWFlYTNhMzdh
N2U3MjljNjc4ZDZhMTIzMzdiZWRiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvc3BlY2lhbF9oZWFkZXJzLmNnaQorKysgL2Rldi9u
dWxsCkBAIC0xLDI4ICswLDAgQEAKLSMhL3Vzci9iaW4vcHl0aG9uCi0KLSMgQ29weXJpZ2h0IDIw
MTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLSMgbGljZW5zZSB0aGF0IGNhbiBi
ZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0jIGh0dHBzOi8vZGV2ZWxvcGVycy5n
b29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi0iIiJDR0kgc2NyaXB0IHNhbXBs
ZSBmb3IgdGVzdGluZyBlZmZlY3Qgb2YgSFRUUCBoZWFkZXJzIG9uIHRoZSBvcmlnaW4gcGFnZS4K
LQotTm90ZSB0aGF0IENHSSBzY3JpcHRzIGRvbid0IHdvcmsgb24gdGhlIHN0YW5kYWxvbmUgcHl3
ZWJzb2NrZXQgcnVubmluZyBpbiBUTFMKLW1vZGUuCi0iIiIKLQotCi1wcmludCAiIiJDb250ZW50
LXR5cGU6IHRleHQvaHRtbAotQ29udGVudC1TZWN1cml0eS1Qb2xpY3k6IGNvbm5lY3Qtc3JjIHNl
bGYKLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT48L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci08
c2NyaXB0PgotdmFyIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQoIndzOi8vZXhhbXBsZS5jb20iKTsK
LTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPiIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L3V0aWwuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOWVjMDAwN2IxZWRkNWEwYzU3MTdhMjhkYTA1NTIxODdhNjdkYTlhNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDMyNyArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxMywgR29v
Z2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8v
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8v
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotLy8gVXRpbGl0aWVzIGZvciBleGFtcGxlIGFwcGxp
Y2F0aW9ucyAoZm9yIGJvdGggbWFpbiBhbmQgd29ya2VyIHRocmVhZCkuCi0KLXZhciByZXN1bHRz
ID0ge307Ci0KLWZ1bmN0aW9uIGdldFRpbWVTdGFtcCgpIHsKLSAgcmV0dXJuIERhdGUubm93KCk7
Ci19Ci0KLWZ1bmN0aW9uIGZvcm1hdFJlc3VsdEluS2lCKHNpemUsIHRpbWVQZXJNZXNzYWdlSW5N
cywgc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1zLAotICAgIHNwZWVkLCBwcmludFNpemUpIHsKLSAg
aWYgKHByaW50U2l6ZSkgewotICAgIHJldHVybiAoc2l6ZSAvIDEwMjQpICsKLSAgICAgICAgJ1x0
JyArIHRpbWVQZXJNZXNzYWdlSW5Ncy50b0ZpeGVkKDMpICsKLSAgICAgICAgKHN0ZGRldlRpbWVQ
ZXJNZXNzYWdlSW5NcyA9PSAtMSA/Ci0gICAgICAgICAgICAnJyA6Ci0gICAgICAgICAgICAnXHQn
ICsgc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1zLnRvRml4ZWQoMykpICsKLSAgICAgICAgJ1x0JyAr
IHNwZWVkLnRvRml4ZWQoMyk7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIHNwZWVkLnRvU3RyaW5n
KCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gY2xlYXJBdmVyYWdlRGF0YSgpIHsKLSAgcmVzdWx0cyA9
IHt9OwotfQotCi1mdW5jdGlvbiByZXBvcnRBdmVyYWdlRGF0YShjb25maWcpIHsKLSAgY29uZmln
LmFkZFRvU3VtbWFyeSgKLSAgICAgICdTaXplW0tpQl1cdEF2ZXJhZ2UgdGltZVttc11cdFN0ZGRl
diB0aW1lW21zXVx0U3BlZWRbS0Ivc10nKTsKLSAgZm9yICh2YXIgc2l6ZSBpbiByZXN1bHRzKSB7
Ci0gICAgdmFyIGF2ZXJhZ2VUaW1lUGVyTWVzc2FnZUluTXMgPSByZXN1bHRzW3NpemVdLnN1bV90
IC8gcmVzdWx0c1tzaXplXS5uOwotICAgIHZhciBzcGVlZCA9IGNhbGN1bGF0ZVNwZWVkSW5LQihz
aXplLCBhdmVyYWdlVGltZVBlck1lc3NhZ2VJbk1zKTsKLSAgICAvLyBDYWxjdWxhdGUgc2FtcGxl
IHN0YW5kYXJkIGRldmlhdGlvbgotICAgIHZhciBzdGRkZXZUaW1lUGVyTWVzc2FnZUluTXMgPSBN
YXRoLnNxcnQoCi0gICAgICAgIChyZXN1bHRzW3NpemVdLnN1bV90MiAvIHJlc3VsdHNbc2l6ZV0u
biAtCi0gICAgICAgICAgICBhdmVyYWdlVGltZVBlck1lc3NhZ2VJbk1zICogYXZlcmFnZVRpbWVQ
ZXJNZXNzYWdlSW5NcykgKgotICAgICAgICByZXN1bHRzW3NpemVdLm4gLwotICAgICAgICAocmVz
dWx0c1tzaXplXS5uIC0gMSkpOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkoZm9ybWF0UmVzdWx0
SW5LaUIoCi0gICAgICAgIHNpemUsIGF2ZXJhZ2VUaW1lUGVyTWVzc2FnZUluTXMsIHN0ZGRldlRp
bWVQZXJNZXNzYWdlSW5Ncywgc3BlZWQsCi0gICAgICAgIHRydWUpKTsKLSAgfQotfQotCi1mdW5j
dGlvbiBjYWxjdWxhdGVTcGVlZEluS0Ioc2l6ZSwgdGltZVNwZW50SW5NcykgewotICByZXR1cm4g
TWF0aC5yb3VuZChzaXplIC8gdGltZVNwZW50SW5NcyAqIDEwMDApIC8gMTAwMDsKLX0KLQotZnVu
Y3Rpb24gY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgc3RhcnRUaW1lSW5Ncywg
dG90YWxTaXplLAotICAgIGlzV2FybVVwKSB7Ci0gIHZhciB0aW1lU3BlbnRJbk1zID0gZ2V0VGlt
ZVN0YW1wKCkgLSBzdGFydFRpbWVJbk1zOwotICB2YXIgc3BlZWQgPSBjYWxjdWxhdGVTcGVlZElu
S0IodG90YWxTaXplLCB0aW1lU3BlbnRJbk1zKTsKLSAgdmFyIHRpbWVQZXJNZXNzYWdlSW5NcyA9
IHRpbWVTcGVudEluTXMgLyAodG90YWxTaXplIC8gc2l6ZSk7Ci0gIGlmICghaXNXYXJtVXApIHsK
LSAgICBjb25maWcubWVhc3VyZVZhbHVlKHRpbWVQZXJNZXNzYWdlSW5Ncyk7Ci0gICAgaWYgKCFy
ZXN1bHRzW3NpemVdKSB7Ci0gICAgICByZXN1bHRzW3NpemVdID0ge246IDAsIHN1bV90OiAwLCBz
dW1fdDI6IDB9OwotICAgIH0KLSAgICByZXN1bHRzW3NpemVdLm4gKys7Ci0gICAgcmVzdWx0c1tz
aXplXS5zdW1fdCArPSB0aW1lUGVyTWVzc2FnZUluTXM7Ci0gICAgcmVzdWx0c1tzaXplXS5zdW1f
dDIgKz0gdGltZVBlck1lc3NhZ2VJbk1zICogdGltZVBlck1lc3NhZ2VJbk1zOwotICB9Ci0gIGNv
bmZpZy5hZGRUb0xvZyhmb3JtYXRSZXN1bHRJbktpQihzaXplLCB0aW1lUGVyTWVzc2FnZUluTXMs
IC0xLCBzcGVlZCwKLSAgICAgIGNvbmZpZy5wcmludFNpemUpKTsKLX0KLQotZnVuY3Rpb24gcmVw
ZWF0U3RyaW5nKHN0ciwgY291bnQpIHsKLSAgdmFyIGRhdGEgPSAnJzsKLSAgdmFyIGV4cENodW5r
ID0gc3RyOwotICB2YXIgcmVtYWluID0gY291bnQ7Ci0gIHdoaWxlICh0cnVlKSB7Ci0gICAgaWYg
KHJlbWFpbiAlIDIpIHsKLSAgICAgIGRhdGEgKz0gZXhwQ2h1bms7Ci0gICAgICByZW1haW4gPSAo
cmVtYWluIC0gMSkgLyAyOwotICAgIH0gZWxzZSB7Ci0gICAgICByZW1haW4gLz0gMjsKLSAgICB9
Ci0KLSAgICBpZiAocmVtYWluID09IDApCi0gICAgICBicmVhazsKLQotICAgIGV4cENodW5rID0g
ZXhwQ2h1bmsgKyBleHBDaHVuazsKLSAgfQotICByZXR1cm4gZGF0YTsKLX0KLQotZnVuY3Rpb24g
ZmlsbEFycmF5QnVmZmVyKGJ1ZmZlciwgYykgewotICB2YXIgaTsKLQotICB2YXIgdTMyQ29udGVu
dCA9IGMgKiAweDAxMDEwMTAxOwotCi0gIHZhciB1MzJCbG9ja3MgPSBNYXRoLmZsb29yKGJ1ZmZl
ci5ieXRlTGVuZ3RoIC8gNCk7Ci0gIHZhciB1MzJWaWV3ID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZl
ciwgMCwgdTMyQmxvY2tzKTsKLSAgLy8gbGVuZ3RoIGF0dHJpYnV0ZSBpcyBzbG93IG9uIENocm9t
ZS4gRG9uJ3QgdXNlIGl0IGZvciBsb29wIGNvbmRpdGlvbi4KLSAgZm9yIChpID0gMDsgaSA8IHUz
MkJsb2NrczsgKytpKSB7Ci0gICAgdTMyVmlld1tpXSA9IHUzMkNvbnRlbnQ7Ci0gIH0KLQotICAv
LyBGcmFjdGlvbgotICB2YXIgdThCbG9ja3MgPSBidWZmZXIuYnl0ZUxlbmd0aCAtIHUzMkJsb2Nr
cyAqIDQ7Ci0gIHZhciB1OFZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIsIHUzMkJsb2NrcyAq
IDQsIHU4QmxvY2tzKTsKLSAgZm9yIChpID0gMDsgaSA8IHU4QmxvY2tzOyArK2kpIHsKLSAgICB1
OFZpZXdbaV0gPSBjOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHZlcmlmeUFycmF5QnVmZmVyKGJ1ZmZl
ciwgZXhwZWN0ZWRDaGFyKSB7Ci0gIHZhciBpOwotCi0gIHZhciBleHBlY3RlZFUzMlZhbHVlID0g
ZXhwZWN0ZWRDaGFyICogMHgwMTAxMDEwMTsKLQotICB2YXIgdTMyQmxvY2tzID0gTWF0aC5mbG9v
cihidWZmZXIuYnl0ZUxlbmd0aCAvIDQpOwotICB2YXIgdTMyVmlldyA9IG5ldyBVaW50MzJBcnJh
eShidWZmZXIsIDAsIHUzMkJsb2Nrcyk7Ci0gIGZvciAoaSA9IDA7IGkgPCB1MzJCbG9ja3M7ICsr
aSkgewotICAgIGlmICh1MzJWaWV3W2ldICE9IGV4cGVjdGVkVTMyVmFsdWUpIHsKLSAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0gIH0KLQotICB2YXIgdThCbG9ja3MgPSBidWZmZXIuYnl0ZUxl
bmd0aCAtIHUzMkJsb2NrcyAqIDQ7Ci0gIHZhciB1OFZpZXcgPSBuZXcgVWludDhBcnJheShidWZm
ZXIsIHUzMkJsb2NrcyAqIDQsIHU4QmxvY2tzKTsKLSAgZm9yIChpID0gMDsgaSA8IHU4QmxvY2tz
OyArK2kpIHsKLSAgICBpZiAodThWaWV3W2ldICE9IGV4cGVjdGVkQ2hhcikgewotICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIH0KLSAgfQotCi0gIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiB2
ZXJpZnlCbG9iKGNvbmZpZywgYmxvYiwgZXhwZWN0ZWRDaGFyLCBkb25lQ2FsbGJhY2spIHsKLSAg
dmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKGJsb2IpOwotICByZWFkZXIub25lcnJvciA9IGZ1
bmN0aW9uKCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnRmlsZVJlYWRlciBFcnJvcjogJyArIHJl
YWRlci5lcnJvci5tZXNzYWdlKTsKLSAgICBkb25lQ2FsbGJhY2soYmxvYi5zaXplLCBmYWxzZSk7
Ci0gIH0KLSAgcmVhZGVyLm9ubG9hZGVuZCA9IGZ1bmN0aW9uKCkgewotICAgIHZhciByZXN1bHQg
PSB2ZXJpZnlBcnJheUJ1ZmZlcihyZWFkZXIucmVzdWx0LCBleHBlY3RlZENoYXIpOwotICAgIGRv
bmVDYWxsYmFjayhibG9iLnNpemUsIHJlc3VsdCk7Ci0gIH0KLSAgcmVhZGVyLnJlYWRBc0FycmF5
QnVmZmVyKGJsb2IpOwotfQotCi1mdW5jdGlvbiB2ZXJpZnlBY2tub3dsZWRnZW1lbnQoY29uZmln
LCBtZXNzYWdlLCBzaXplKSB7Ci0gIGlmICh0eXBlb2YgbWVzc2FnZSAhPSAnc3RyaW5nJykgewot
ICAgIGNvbmZpZy5hZGRUb0xvZygnSW52YWxpZCBhY2sgdHlwZTogJyArIHR5cGVvZiBtZXNzYWdl
KTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgdmFyIHBhcnNlZEFjayA9IHBhcnNlSW50KG1l
c3NhZ2UpOwotICBpZiAoaXNOYU4ocGFyc2VkQWNrKSkgewotICAgIGNvbmZpZy5hZGRUb0xvZygn
SW52YWxpZCBhY2sgdmFsdWU6ICcgKyBtZXNzYWdlKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0K
LSAgaWYgKHBhcnNlZEFjayAhPSBzaXplKSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKAotICAgICAg
ICAnRXhwZWN0ZWQgYWNrIGZvciAnICsgc2l6ZSArICdCIGJ1dCByZWNlaXZlZCBvbmUgZm9yICcg
KyBwYXJzZWRBY2sgKwotICAgICAgICAnQicpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0g
IHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiBjbG9uZUNvbmZpZyhvYmopIHsKLSAgdmFyIG5l
d09iaiA9IHt9OwotICBmb3IgKGtleSBpbiBvYmopIHsKLSAgICBuZXdPYmpba2V5XSA9IG9ialtr
ZXldOwotICB9Ci0gIHJldHVybiBuZXdPYmo7Ci19Ci0KLXZhciB0YXNrcyA9IFtdOwotCi1mdW5j
dGlvbiBydW5OZXh0VGFzayhjb25maWcpIHsKLSAgdmFyIHRhc2sgPSB0YXNrcy5zaGlmdCgpOwot
ICBpZiAodGFzayA9PSB1bmRlZmluZWQpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ0ZpbmlzaGVk
Jyk7Ci0gICAgY2xlYW51cCgpOwotICAgIHJldHVybjsKLSAgfQotICB0aW1lcklEID0gc2V0VGlt
ZW91dCh0YXNrLCAwKTsKLX0KLQotZnVuY3Rpb24gYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSB7
Ci0gIHZhciBsZWdlbmQgPSAnJwotICBpZiAoY29uZmlnLnByaW50U2l6ZSkKLSAgICBsZWdlbmQg
PSAnTWVzc2FnZSBzaXplIGluIEtpQiwgVGltZS9tZXNzYWdlIGluIG1zLCAnOwotICBsZWdlbmQg
Kz0gJ1NwZWVkIGluIGtCL3MnOwotICByZXR1cm4gbGVnZW5kOwotfQotCi1mdW5jdGlvbiBhZGRU
YXNrcyhjb25maWcsIHN0ZXBGdW5jKSB7Ci0gIGZvciAodmFyIGkgPSAwOwotICAgICAgaSA8IGNv
bmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsgY29uZmlnLm51bUl0ZXJhdGlvbnM7ICsraSkgewot
ICAgIHZhciBtdWx0aXBsaWVySW5kZXggPSAwOwotICAgIGZvciAodmFyIHNpemUgPSBjb25maWcu
c3RhcnRTaXplOwotICAgICAgICAgc2l6ZSA8PSBjb25maWcuc3RvcFRocmVzaG9sZDsKLSAgICAg
ICAgICsrbXVsdGlwbGllckluZGV4KSB7Ci0gICAgICB2YXIgdGFzayA9IHN0ZXBGdW5jLmJpbmQo
Ci0gICAgICAgICAgbnVsbCwKLSAgICAgICAgICBzaXplLAotICAgICAgICAgIGNvbmZpZywKLSAg
ICAgICAgICBpIDwgY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMpOwotICAgICAgdGFza3MucHVz
aCh0YXNrKTsKLSAgICAgIHZhciBtdWx0aXBsaWVyID0gY29uZmlnLm11bHRpcGxpZXJzWwotICAg
ICAgICBtdWx0aXBsaWVySW5kZXggJSBjb25maWcubXVsdGlwbGllcnMubGVuZ3RoXTsKLSAgICAg
IGlmIChtdWx0aXBsaWVyIDw9IDEpIHsKLSAgICAgICAgY29uZmlnLmFkZFRvTG9nKCdJbnZhbGlk
IG11bHRpcGxpZXIgJyArIG11bHRpcGxpZXIpOwotICAgICAgICBjb25maWcubm90aWZ5QWJvcnQo
KTsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG11bHRpcGxlcicpOwotICAgICAg
fQotICAgICAgc2l6ZSA9IE1hdGguY2VpbChzaXplICogbXVsdGlwbGllcik7Ci0gICAgfQotICB9
Ci19Ci0KLWZ1bmN0aW9uIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLCB0aXRsZSkgewot
ICB0YXNrcy5wdXNoKGZ1bmN0aW9uKCl7Ci0gICAgICB0aW1lcklEID0gbnVsbDsKLSAgICAgIGNv
bmZpZy5hZGRUb1N1bW1hcnkodGl0bGUpOwotICAgICAgcmVwb3J0QXZlcmFnZURhdGEoY29uZmln
KTsKLSAgICAgIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7
Ci0gIH0pOwotfQotCi1mdW5jdGlvbiBzZW5kQmVuY2htYXJrKGNvbmZpZykgewotICBjb25maWcu
YWRkVG9Mb2coJ1NlbmQgYmVuY2htYXJrJyk7Ci0gIGNvbmZpZy5hZGRUb0xvZyhidWlsZExlZ2Vu
ZFN0cmluZyhjb25maWcpKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJhZ2VEYXRhKCk7
Ci0gIGFkZFRhc2tzKGNvbmZpZywgc2VuZEJlbmNobWFya1N0ZXApOwotICBhZGRSZXN1bHRSZXBv
cnRpbmdUYXNrKGNvbmZpZywgJ1NlbmQgQmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29u
ZmlnKSk7Ci0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIHJlY2VpdmVC
ZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNvbmZpZy5hZGRUb0xvZygnUmVjZWl2ZSBiZW5jaG1hcmsn
KTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5kU3RyaW5nKGNvbmZpZykpOwotCi0gIHRh
c2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgYWRkVGFza3MoY29uZmlnLCByZWNl
aXZlQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLAotICAg
ICAgJ1JlY2VpdmUgQmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0gIHN0
YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIHN0b3AoY29uZmlnKSB7Ci0gIGNs
ZWFyVGltZW91dCh0aW1lcklEKTsKLSAgdGltZXJJRCA9IG51bGw7Ci0gIHRhc2tzID0gW107Ci0g
IGNvbmZpZy5hZGRUb0xvZygnU3RvcHBlZCcpOwotICBjbGVhbnVwKCk7Ci19Ci0KLXZhciB3b3Jr
ZXI7Ci0KLWZ1bmN0aW9uIGluaXRXb3JrZXIoY29ubmVjdGlvblR5cGUsIG9yaWdpbikgewotICB2
YXIgc2NyaXB0UGF0aCA9Ci0gICAgY29ubmVjdGlvblR5cGUgPT09ICdXZWJTb2NrZXQnID8gJy9i
ZW5jaG1hcmsuanMnIDoKLSAgICBjb25uZWN0aW9uVHlwZSA9PT0gJ1hIUicgPyAnL3hocl9iZW5j
aG1hcmsuanMnIDoKLSAgICAnL2ZldGNoX2JlbmNobWFyay5qcyc7IC8vIGNvbm5lY3Rpb25UeXBl
ID09PSAnZmV0Y2gnCi0gIHdvcmtlciA9IG5ldyBXb3JrZXIob3JpZ2luICsgc2NyaXB0UGF0aCk7
Ci19Ci0KLWZ1bmN0aW9uIGRvQWN0aW9uKGNvbmZpZywgaXNXaW5kb3dUb1dvcmtlciwgYWN0aW9u
KSB7Ci0gIGlmIChpc1dpbmRvd1RvV29ya2VyKSB7Ci0gICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1
bmN0aW9uKGFkZFRvTG9nLCBhZGRUb1N1bW1hcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lYXN1cmVWYWx1ZSwgbm90aWZ5QWJvcnQsIG1lc3NhZ2UpIHsKLSAgICAgIGlmICht
ZXNzYWdlLmRhdGEudHlwZSA9PT0gJ2FkZFRvTG9nJykKLSAgICAgICAgYWRkVG9Mb2cobWVzc2Fn
ZS5kYXRhLmRhdGEpOwotICAgICAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdhZGRU
b1N1bW1hcnknKQotICAgICAgICBhZGRUb1N1bW1hcnkobWVzc2FnZS5kYXRhLmRhdGEpOwotICAg
ICAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdtZWFzdXJlVmFsdWUnKQotICAgICAg
ICBtZWFzdXJlVmFsdWUobWVzc2FnZS5kYXRhLmRhdGEpOwotICAgICAgZWxzZSBpZiAobWVzc2Fn
ZS5kYXRhLnR5cGUgPT09ICdub3RpZnlBYm9ydCcpCi0gICAgICAgIG5vdGlmeUFib3J0KCk7Ci0g
ICAgfS5iaW5kKHVuZGVmaW5lZCwgY29uZmlnLmFkZFRvTG9nLCBjb25maWcuYWRkVG9TdW1tYXJ5
LAotICAgICAgICAgICBjb25maWcubWVhc3VyZVZhbHVlLCBjb25maWcubm90aWZ5QWJvcnQpOwot
ICAgIGNvbmZpZy5hZGRUb0xvZyA9IHVuZGVmaW5lZDsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5
ID0gdW5kZWZpbmVkOwotICAgIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSB1bmRlZmluZWQ7Ci0gICAg
Y29uZmlnLm5vdGlmeUFib3J0ID0gdW5kZWZpbmVkOwotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7
dHlwZTogYWN0aW9uLCBjb25maWc6IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAgIGlmIChhY3Rp
b24gPT09ICdzZW5kQmVuY2htYXJrJykKLSAgICAgIHNlbmRCZW5jaG1hcmsoY29uZmlnKTsKLSAg
ICBlbHNlIGlmIChhY3Rpb24gPT09ICdyZWNlaXZlQmVuY2htYXJrJykKLSAgICAgIHJlY2VpdmVC
ZW5jaG1hcmsoY29uZmlnKTsKLSAgICBlbHNlIGlmIChhY3Rpb24gPT09ICdiYXRjaEJlbmNobWFy
aycpCi0gICAgICBiYXRjaEJlbmNobWFyayhjb25maWcpOwotICAgIGVsc2UgaWYgKGFjdGlvbiA9
PT0gJ3N0b3AnKQotICAgICAgc3RvcChjb25maWcpOwotICB9Ci19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvdXRpbF9tYWluLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWxfbWFpbi5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDcxZWQ2M2ZiNWQ3NDlkMGVkMjE4MWI1YWFiY2NlMmU5
MzY1Yjg3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvdXRpbF9tYWluLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAot
Ly8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0v
LyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8g
bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBo
dHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQot
Ly8gVXRpbGl0aWVzIGZvciBleGFtcGxlIGFwcGxpY2F0aW9ucyAoZm9yIHRoZSBtYWluIHRocmVh
ZCBvbmx5KS4KLQotdmFyIGxvZ0JveCA9IG51bGw7Ci12YXIgcXVldWVkTG9nID0gJyc7Ci0KLXZh
ciBzdW1tYXJ5Qm94ID0gbnVsbDsKLQotZnVuY3Rpb24gcXVldWVMb2cobG9nKSB7Ci0gIHF1ZXVl
ZExvZyArPSBsb2cgKyAnXG4nOwotfQotCi1mdW5jdGlvbiBhZGRUb0xvZyhsb2cpIHsKLSAgbG9n
Qm94LnZhbHVlICs9IHF1ZXVlZExvZzsKLSAgcXVldWVkTG9nID0gJyc7Ci0gIGxvZ0JveC52YWx1
ZSArPSBsb2cgKyAnXG4nOwotICBsb2dCb3guc2Nyb2xsVG9wID0gMTAwMDAwMDsKLX0KLQotZnVu
Y3Rpb24gYWRkVG9TdW1tYXJ5KGxvZykgewotICBzdW1tYXJ5Qm94LnZhbHVlICs9IGxvZyArICdc
bic7Ci0gIHN1bW1hcnlCb3guc2Nyb2xsVG9wID0gMTAwMDAwMDsKLX0KLQotLy8gdmFsdWU6IGV4
ZWN1dGlvbiB0aW1lIGluIG1pbGxpc2Vjb25kcy4KLS8vIGNvbmZpZy5tZWFzdXJlVmFsdWUgaXMg
aW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBQZXJmb3JtYW5jZSBUZXN0cy4KLS8vIERvIG5vdGhpbmcg
aGVyZSBpbiBub24tUGVyZm9ybWFuY2VUZXN0LgotZnVuY3Rpb24gbWVhc3VyZVZhbHVlKHZhbHVl
KSB7Ci19Ci0KLS8vIGNvbmZpZy5ub3RpZnlBYm9ydCBpcyBjYWxsZWQgd2hlbiB0aGUgYmVuY2ht
YXJrIGZhaWxlZCBhbmQgYWJvcnRlZCwgYW5kCi0vLyBpbnRlbmRlZCB0byBiZSB1c2VkIGluIFBl
cmZvcm1hbmNlIFRlc3RzLgotLy8gRG8gbm90aGluZyBoZXJlIGluIG5vbi1QZXJmb3JtYW5jZVRl
c3QuCi1mdW5jdGlvbiBub3RpZnlBYm9ydCgpIHsKLX0KLQotZnVuY3Rpb24gZ2V0SW50RnJvbUlu
cHV0KGlkKSB7Ci0gIHJldHVybiBwYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCku
dmFsdWUpOwotfQotCi1mdW5jdGlvbiBnZXRTdHJpbmdGcm9tUmFkaW9Cb3gobmFtZSkgewotICB2
YXIgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZW5jaG1hcmtfZm9ybScpW25hbWVd
OwotICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpCi0gICAgaWYgKGxpc3Qu
aXRlbShpKS5jaGVja2VkKQotICAgICAgcmV0dXJuIGxpc3QuaXRlbShpKS52YWx1ZTsKLSAgcmV0
dXJuIHVuZGVmaW5lZDsKLX0KLWZ1bmN0aW9uIGdldEJvb2xGcm9tQ2hlY2tCb3goaWQpIHsKLSAg
cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGVja2VkOwotfQotCi1mdW5jdGlv
biBnZXRJbnRBcnJheUZyb21JbnB1dChpZCkgewotICB2YXIgc3RyQXJyYXkgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZCkudmFsdWUuc3BsaXQoJywnKTsKLSAgcmV0dXJuIHN0ckFycmF5Lm1h
cChmdW5jdGlvbihzdHIpIHsgcmV0dXJuIHBhcnNlSW50KHN0ciwgMTApOyB9KTsKLX0KLQotZnVu
Y3Rpb24gZ2V0RmxvYXRBcnJheUZyb21JbnB1dChpZCkgewotICB2YXIgc3RyQXJyYXkgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChpZCkudmFsdWUuc3BsaXQoJywnKTsKLSAgcmV0dXJuIHN0ckFy
cmF5Lm1hcChwYXJzZUZsb2F0KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsX3dv
cmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsX3dvcmtlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOThkY2Y0NDE3Mjk5ZjljOWQ2MWRlZWZjYjFhNTk1YWVhYjA1ZDU2Yy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
dXRpbF93b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0vLyBDb3B5cmln
aHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFVzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0vLyBsaWNlbnNlIHRo
YXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2
ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi0vLyBVdGlsaXRp
ZXMgZm9yIGV4YW1wbGUgYXBwbGljYXRpb25zIChmb3IgdGhlIHdvcmtlciB0aHJlYWRzIG9ubHkp
LgotCi1vbm1lc3NhZ2UgPSBmdW5jdGlvbiAobWVzc2FnZSkgewotICB2YXIgY29uZmlnID0gbWVz
c2FnZS5kYXRhLmNvbmZpZzsKLSAgY29uZmlnLmFkZFRvTG9nID0gZnVuY3Rpb24odGV4dCkgewot
ICAgICAgcG9zdE1lc3NhZ2Uoe3R5cGU6ICdhZGRUb0xvZycsIGRhdGE6IHRleHR9KTsgfTsKLSAg
Y29uZmlnLmFkZFRvU3VtbWFyeSA9IGZ1bmN0aW9uKHRleHQpIHsKLSAgICAgIHBvc3RNZXNzYWdl
KHt0eXBlOiAnYWRkVG9TdW1tYXJ5JywgZGF0YTogdGV4dH0pOyB9OwotICBjb25maWcubWVhc3Vy
ZVZhbHVlID0gZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgIHBvc3RNZXNzYWdlKHt0eXBlOiAnbWVh
c3VyZVZhbHVlJywgZGF0YTogdmFsdWV9KTsgfTsKLSAgY29uZmlnLm5vdGlmeUFib3J0ID0gZnVu
Y3Rpb24oKSB7IHBvc3RNZXNzYWdlKHt0eXBlOiAnbm90aWZ5QWJvcnQnfSk7IH07Ci0KLSAgZG9B
Y3Rpb24oY29uZmlnLCBmYWxzZSwgbWVzc2FnZS5kYXRhLnR5cGUpOwotfTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGY5M2I4YjY5NTViMDYyNWE2MTE0N2Qz
YzMzYjI3ZTllOWI1NWQ3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSw0
OSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRfaGFuZHNoYWtlX3dzaC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9hYm9ydF93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYXJyYXlidWZmZXJfYmVu
Y2htYXJrLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2hfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Jl
bmNobWFyay5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFyay5qcwotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9i
ZW5jaG1hcmtfaGVscGVyX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jbG9zZV93c2gucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvY29uc29sZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nvb2tpZV93c2gucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvZWNob19jbGllbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19ub2V4dF93c2gucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvZWNob193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dp
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL2V2ZW50c291cmNlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVu
Y2htYXJrLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmpzCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2ZldGNoX3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaGFu
ZGxlcl9tYXAudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2hzdHNfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2lu
dGVybmFsX2Vycm9yX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
cGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29u
ZgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWwu
anMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvdXRpbF9tYWluLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWxfd29ya2Vy
LmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJf
YmVuY2htYXJrLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9ldmVudF9sb2dnZXIuaHRtbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS94aHJfcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfYmVuY2htYXJr
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwMGQyMGM5Y2NiNGFiZWNmMjM5
Yzc1YjE4NTc3YjBkMWZmMTFjOTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDIxMiArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLUFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9u
LgotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPGh0
bWw+Ci08aGVhZD4KLTx0aXRsZT5YTUxIdHRwUmVxdWVzdCBiZW5jaG1hcms8L3RpdGxlPgotPHNj
cmlwdCBzcmM9InV0aWxfbWFpbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ieGhyX2JlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotdmFyIGFkZHJlc3NCb3ggPSBudWxsOwotCi1mdW5jdGlvbiBnZXRDb25maWcoKSB7Ci0g
IHJldHVybiB7Ci0gICAgcHJlZml4VXJsOiBhZGRyZXNzQm94LnZhbHVlLAotICAgIHByaW50U2l6
ZTogZ2V0Qm9vbEZyb21DaGVja0JveCgncHJpbnRzaXplJyksCi0gICAgbnVtWEhSczogZ2V0SW50
RnJvbUlucHV0KCdudW1YSFJzJyksCi0gICAgYXN5bmM6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ2Fz
eW5jJyksCi0gICAgLy8gSW5pdGlhbCBzaXplIG9mIG1lc3NhZ2VzLgotICAgIG51bUl0ZXJhdGlv
bnM6IGdldEludEZyb21JbnB1dCgnbnVtaXRlcmF0aW9ucycpLAotICAgIG51bVdhcm1VcEl0ZXJh
dGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtd2FybXVwaXRlcmF0aW9ucycpLAotICAgIHN0YXJ0
U2l6ZTogZ2V0SW50RnJvbUlucHV0KCdzdGFydHNpemUnKSwKLSAgICAvLyBTdG9wcyBiZW5jaG1h
cmsgd2hlbiB0aGUgc2l6ZSBvZiBtZXNzYWdlIGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQuCi0gICAg
c3RvcFRocmVzaG9sZDogZ2V0SW50RnJvbUlucHV0KCdzdG9wdGhyZXNob2xkJyksCi0gICAgbXVs
dGlwbGllcnM6IGdldEZsb2F0QXJyYXlGcm9tSW5wdXQoJ211bHRpcGxpZXJzJyksCi0gICAgdmVy
aWZ5RGF0YTogZ2V0Qm9vbEZyb21DaGVja0JveCgndmVyaWZ5ZGF0YScpLAotICAgIG1ldGhvZEFu
ZENhY2hlOiBnZXRTdHJpbmdGcm9tUmFkaW9Cb3goJ21ldGhvZGFuZGNhY2hlJyksCi0gICAgYWRk
VG9Mb2c6IGFkZFRvTG9nLAotICAgIGFkZFRvU3VtbWFyeTogYWRkVG9TdW1tYXJ5LAotICAgIG1l
YXN1cmVWYWx1ZTogbWVhc3VyZVZhbHVlLAotICAgIG5vdGlmeUFib3J0OiBub3RpZnlBYm9ydAot
ICB9OwotfQotCi1mdW5jdGlvbiBvblNlbmRCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBn
ZXRDb25maWcoKTsKLSAgY29uZmlnLmRhdGFUeXBlID0gZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdk
YXRhdHlwZXJhZGlvJyk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgn
d29ya2VyJyksICdzZW5kQmVuY2htYXJrJyk7Ci19Ci0KLWZ1bmN0aW9uIG9uUmVjZWl2ZUJlbmNo
bWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBjb25maWcuZGF0YVR5cGUg
PSBnZXRTdHJpbmdGcm9tUmFkaW9Cb3goJ2RhdGF0eXBlcmFkaW8nKTsKLSAgZG9BY3Rpb24oY29u
ZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ3JlY2VpdmVCZW5jaG1hcmsnKTsK
LX0KLQotZnVuY3Rpb24gb25CYXRjaEJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENv
bmZpZygpOwotICBkb0FjdGlvbihjb25maWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicp
LCAnYmF0Y2hCZW5jaG1hcmsnKTsKLX0KLQotZnVuY3Rpb24gb25TdG9wKCkgewotICB2YXIgY29u
ZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0Jv
eCgnd29ya2VyJyksICdzdG9wJyk7Ci19Ci0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIGFkZHJlc3NC
b3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkcmVzcycpOwotICBsb2dCb3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0KLSAgc3VtbWFyeUJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdzdW1tYXJ5Jyk7Ci0KLSAgLy8gU3BlY2lhbCBhZGRyZXNzIG9mIHB5d2Vi
c29ja2V0IGZvciBYSFIgYmVuY2htYXJrLgotICBhZGRyZXNzQm94LnZhbHVlID0gJy8wNzNiZTAw
MWUxMDk1MDY5MmNjYmYzYTJhZDIxYzI0NSc7Ci0KLSAgYWRkVG9Mb2cod2luZG93Lm5hdmlnYXRv
ci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0gIGFkZFRvU3VtbWFyeSh3aW5kb3cubmF2aWdh
dG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLQotICBpbml0V29ya2VyKCdYSFInLCAnJyk7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLQotPGZvcm0g
aWQ9ImJlbmNobWFya19mb3JtIj4KLSAgdXJsIHByZWZpeCA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9
ImFkZHJlc3MiIHNpemU9IjQwIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InNlbmQi
IG9uY2xpY2s9Im9uU2VuZEJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFs
dWU9InJlY2VpdmUiIG9uY2xpY2s9Im9uUmVjZWl2ZUJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5
cGU9ImJ1dHRvbiIgdmFsdWU9ImJhdGNoIiBvbmNsaWNrPSJvbkJhdGNoQmVuY2htYXJrKCkiPgot
ICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic3RvcCIgb25jbGljaz0ib25TdG9wKCkiPgot
Ci0gIDxici8+Ci0KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0icHJpbnRzaXplIiBjaGVj
a2VkPgotICA8bGFiZWwgZm9yPSJwcmludHNpemUiPlByaW50IHNpemUgYW5kIHRpbWUgcGVyIG1l
c3NhZ2U8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ2ZXJpZnlkYXRhIiBj
aGVja2VkPgotICA8bGFiZWwgZm9yPSJ2ZXJpZnlkYXRhIj5WZXJpZnkgZGF0YTwvbGFiZWw+Ci0g
IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IndvcmtlciI+Ci0gIDxsYWJlbCBmb3I9Indvcmtl
ciI+UnVuIG9uIHdvcmtlcjwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImFz
eW5jIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJhc3luYyI+QXN5bmM8L2xhYmVsPjxicj4KLSAg
KFJlY2VpdmUgJmFtcDsmYW1wOyBOb24tV29ya2VyICZhbXA7JmFtcDsgU3luYyBpcyBub3Qgc3Vw
cG9ydGVkIGJ5IHNwZWMpCi0KLSAgPGJyLz4KLQotICBQYXJhbWV0ZXJzOgotCi0gIDxici8+Ci0K
LSAgPHRhYmxlPgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW0gWEhSczwvdGQ+Ci0gICAgICA8dGQ+
PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1YSFJzIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3Ry
PgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW1iZXIgb2YgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8
dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1pdGVyYXRpb25zIiB2YWx1ZT0iMSI+PC90ZD4K
LSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW1iZXIgb2Ygd2FybS11cCBpdGVyYXRp
b25zPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bXdhcm11cGl0ZXJh
dGlvbnMiIHZhbHVlPSIwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPlN0
YXJ0IHNpemU8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RhcnRzaXpl
IiB2YWx1ZT0iMTAyNDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3Rv
cCB0aHJlc2hvbGQ8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RvcHRo
cmVzaG9sZCIgdmFsdWU9IjEwMjQwMDAwMCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAg
ICAgIDx0ZD5NdWx0aXBsaWVyczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlk
PSJtdWx0aXBsaWVycyIgdmFsdWU9IjUsIDIiPjwvdGQ+Ci0gICAgPC90cj4KLSAgPC90YWJsZT4K
LQotICBTZXQgZGF0YSB0eXBlCi0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9
ImRhdGF0eXBlcmFkaW8iCi0gICAgICAgICBpZD0iZGF0YXR5cGVyYWRpb3RleHQiCi0gICAgICAg
ICB2YWx1ZT0idGV4dCIKLSAgICAgICAgIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRp
b3RleHQiPnRleHQ8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1l
PSJkYXRhdHlwZXJhZGlvIgotICAgICAgICAgaWQ9ImRhdGF0eXBlcmFkaW9ibG9iIgotICAgICAg
ICAgdmFsdWU9ImJsb2IiCi0gICAgICAgICA+PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb2Jsb2Ii
PmJsb2I8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJkYXRh
dHlwZXJhZGlvIgotICAgICAgICAgaWQ9ImRhdGF0eXBlcmFkaW9hcnJheWJ1ZmZlciIKLSAgICAg
ICAgIHZhbHVlPSJhcnJheWJ1ZmZlciIKLSAgICAgICAgID48bGFiZWwgZm9yPSJkYXRhdHlwZXJh
ZGlvYXJyYXlidWZmZXIiPmFycmF5YnVmZmVyPC9sYWJlbD4KLQotICA8YnI+Ci0gIFNldCBIVFRQ
IG1ldGhvZCBhbmQgY2FjaGUgY29udHJvbAotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAg
ICBuYW1lPSJtZXRob2RhbmRjYWNoZSIKLSAgICAgICAgIGlkPSJtZXRob2RhbmRjYWNoZVBPU1Qi
Ci0gICAgICAgICB2YWx1ZT0iUE9TVCIKLSAgICAgICAgIGNoZWNrZWQ+PGxhYmVsIGZvcj0ibWV0
aG9kYW5kY2FjaGVQT1NUIj5QT1NUIChObyBDYWNoZSk8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0i
cmFkaW8iCi0gICAgICAgICBuYW1lPSJtZXRob2RhbmRjYWNoZSIKLSAgICAgICAgIGlkPSJtZXRo
b2RhbmRjYWNoZUdFVE5PQ0FDSEUiCi0gICAgICAgICB2YWx1ZT0iR0VULU5PQ0FDSEUiCi0gICAg
ICAgICA+PGxhYmVsIGZvcj0ibWV0aG9kYW5kY2FjaGVHRVROT0NBQ0hFIj5HRVQgKE5vIENhY2hl
KTwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9Im1ldGhvZGFu
ZGNhY2hlIgotICAgICAgICAgaWQ9Im1ldGhvZGFuZGNhY2hlR0VUQ0FDSEUiCi0gICAgICAgICB2
YWx1ZT0iR0VULUNBQ0hFIgotICAgICAgICAgPjxsYWJlbCBmb3I9Im1ldGhvZGFuZGNhY2hlR0VU
Q0FDSEUiPkdFVCAoQ2FjaGUpPC9sYWJlbD4KLSAgPGJyPgotICA8c3BhbiBzdHlsZT0iZm9udC1z
aXplOiA4MCUiPihDYWNoZSBjb250cm9sOiByZWNlaXZlIG9ubHkuIENhY2hlIGlzIHZhbGlkIGZv
ciAxMCBzZWNvbmRzLiBUaGlzIGNvbmZpZyBjb250cm9scyBDYWNoZS1jb250cm9sIEhUVFAgcmVz
cG9uc2UgaGVhZGVyLiBCcm93c2VycyBtaWdodCBub3QgY2FjaGUgZGF0YSBlLmcuIHdoZW4gaXQg
aXMgbGFyZ2UpPC9zcGFuPgotPC9mb3JtPgotCi08ZGl2IGlkPSJsb2dfZGl2Ij4KLSAgPHRleHRh
cmVhCi0gICAgICBpZD0ibG9nIiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25s
eT48L3RleHRhcmVhPgotPC9kaXY+Ci08ZGl2IGlkPSJzdW1tYXJ5X2RpdiI+Ci0gIFN1bW1hcnkK
LSAgPHRleHRhcmVhCi0gICAgICBpZD0ic3VtbWFyeSIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDog
MTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvZGl2PgotCi08ZGl2IGlkPSJub3RlX2RpdiI+
Ci0gIE5vdGU6Ci0gIDx1bD4KLSAgICA8bGk+RWZmZWN0IG9mIFJUVCBhbmQgdGltZSBzcGVudCBm
b3IgQXJyYXlCdWZmZXIgY3JlYXRpb24gaW4gcmVjZWl2ZSBiZW5jaG1hcmtzIGFyZSBub3QgZWxp
bWluYXRlZC48L2xpPgotICAgIDxsaT5UaGUgU3RkZGV2IGNvbHVtbiBzaG93cyBOYU4gd2hlbiB0
aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgaXMgc2V0IHRvIDEuPC9saT4KLSAgPC91bD4KLTwvZGl2
PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2JlbmNo
bWFyay5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfYmVuY2htYXJrLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxNGE5N2U4ZmI4M2U5NDhjODVmOWYwMjEwMjFkYzc0NzkzMDVlNmMwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS94aHJfYmVuY2htYXJrLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjkyICswLDAgQEAKLS8vIENv
cHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vu
c2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0cHM6
Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLXZhciBp
c1dvcmtlciA9IHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAidW5kZWZpbmVkIjsKLQotaWYgKGlz
V29ya2VyKSB7Ci0gIC8vIFJ1bm5pbmcgb24gYSB3b3JrZXIKLSAgaW1wb3J0U2NyaXB0cygndXRp
bC5qcycsICd1dGlsX3dvcmtlci5qcycpOwotfQotCi0vLyBOYW1lc3BhY2UgZm9yIGhvbGRpbmcg
Z2xvYmFscy4KLXZhciBiZW5jaG1hcmsgPSB7fTsKLWJlbmNobWFyay5zdGFydFRpbWVJbk1zID0g
MDsKLQotdmFyIHhocnMgPSBbXTsKLQotdmFyIHRpbWVySUQgPSBudWxsOwotCi1mdW5jdGlvbiBk
ZXN0cm95QWxsWEhScygpIHsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCB4aHJzLmxlbmd0aDsgKytp
KSB7Ci0gICAgeGhyc1tpXS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsOwotICAgIC8vIEFib3J0
IFhIUnMgaWYgdGhleSBhcmUgbm90IHlldCBET05FIHN0YXRlLgotICAgIC8vIENhbGxpbmcgYWJv
cnQoKSBoZXJlIChpLmUuIGluIG9ucmVhZHlzdGF0ZWNoYW5nZSBoYW5kbGVyKSAKLSAgICAvLyBj
YXVzZXMgIk5ldHdvcmtFcnJvciIgbWVzc2FnZXMgaW4gRGV2VG9vbHMgaW4gc3luYyBtb2RlLAot
ICAgIC8vIGV2ZW4gaWYgaXQgaXMgYWZ0ZXIgdHJhbnNpdGlvbiB0byBET05FIHN0YXRlLgotICAg
IGlmICh4aHJzW2ldLnJlYWR5U3RhdGUgIT0gWE1MSHR0cFJlcXVlc3QuRE9ORSkKLSAgICAgIHho
cnNbaV0uYWJvcnQoKTsKLSAgfQotICB4aHJzID0gW107Ci0gIC8vIGdjKCkgbWlnaHQgYmUgbmVl
ZGVkIGZvciBDaHJvbWUvQmxvYgotfQotCi1mdW5jdGlvbiBzZW5kQmVuY2htYXJrU3RlcChzaXpl
LCBjb25maWcsIGlzV2FybVVwKSB7Ci0gIHRpbWVySUQgPSBudWxsOwotCi0gIGJlbmNobWFyay5z
dGFydFRpbWVJbk1zID0gbnVsbDsKLSAgdmFyIHRvdGFsU2l6ZSA9IDA7Ci0gIHZhciB0b3RhbFJl
cGxpZWQgPSAwOwotCi0gIHZhciBvblJlYWR5U3RhdGVDaGFuZ2VIYW5kbGVyID0gZnVuY3Rpb24g
KCkgewotICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgIT0gdGhpcy5ET05FKSB7Ci0gICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgaWYgKHRoaXMuc3RhdHVzICE9IDIwMCkgewotICAgICAgY29uZmln
LmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0nICsgdGhpcy5zdGF0dXMgKyAnKScpOwotICAgICAg
ZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOwotICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSAmJgotICAgICAgICAhdmVy
aWZ5QWNrbm93bGVkZ2VtZW50KGNvbmZpZywgdGhpcy5yZXNwb25zZSwgc2l6ZSkpIHsKLSAgICAg
IGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICB0b3RhbFJlcGxpZWQgKz0gc2l6ZTsKLQotICAgIGlmICh0b3Rh
bFJlcGxpZWQgPCB0b3RhbFNpemUpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
YmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPT0gbnVsbCkgewotICAgICAgY29uZmlnLmFkZFRvTG9n
KCdzdGFydFRpbWVJbk1zIG5vdCBzZXQnKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAg
ICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBD
aGVjayBhbmQgd2FybiBpZiBwcm94eSBpcyBlbmFibGVkLgotICAgIGlmICh0aGlzLmdldFJlc3Bv
bnNlSGVhZGVyKCdWaWEnKSAhPT0gbnVsbCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdXQVJO
SU5HOiBwcm94eSBzZWVtcyBlbmFibGVkLicpOwotICAgIH0KLQotICAgIGNhbGN1bGF0ZUFuZExv
Z1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1zLCB0b3RhbFNpemUs
Ci0gICAgICAgIGlzV2FybVVwKTsKLQotICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0KLSAgICBydW5O
ZXh0VGFzayhjb25maWcpOwotICB9OwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51
bVhIUnM7ICsraSkgewotICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4
aHIub25yZWFkeXN0YXRlY2hhbmdlID0gb25SZWFkeVN0YXRlQ2hhbmdlSGFuZGxlcjsKLSAgICB4
aHJzLnB1c2goeGhyKTsKLSAgfQotCi0gIHZhciBkYXRhQXJyYXkgPSBbXTsKLQotICBmb3IgKHZh
ciBpID0gMDsgaSA8IHhocnMubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgZGF0YSA9IG51bGw7Ci0g
ICAgaWYgKGNvbmZpZy5kYXRhVHlwZSA9PSAnYXJyYXlidWZmZXInIHx8Ci0gICAgICAgIGNvbmZp
Zy5kYXRhVHlwZSA9PSAnYmxvYicpIHsKLSAgICAgIGRhdGEgPSBuZXcgQXJyYXlCdWZmZXIoc2l6
ZSk7Ci0KLSAgICAgIGZpbGxBcnJheUJ1ZmZlcihkYXRhLCAweDYxKTsKLQotICAgICAgaWYgKGNv
bmZpZy5kYXRhVHlwZSA9PSAnYmxvYicpIHsKLSAgICAgICAgZGF0YSA9IG5ldyBCbG9iKFtkYXRh
XSk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGRhdGEgPSByZXBlYXRTdHJpbmcoJ2En
LCBzaXplKTsKLSAgICB9Ci0KLSAgICBkYXRhQXJyYXkucHVzaChkYXRhKTsKLSAgfQotCi0KLSAg
YmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLSAgdG90YWxTaXplID0g
c2l6ZSAqIHhocnMubGVuZ3RoOwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgeGhycy5sZW5ndGg7
ICsraSkgewotICAgIHZhciBkYXRhID0gZGF0YUFycmF5W2ldOwotICAgIHZhciB4aHIgPSB4aHJz
W2ldOwotICAgIHhoci5vcGVuKCdQT1NUJywgY29uZmlnLnByZWZpeFVybCArICdfc2VuZCcsIGNv
bmZpZy5hc3luYyk7Ci0gICAgeGhyLnNlbmQoZGF0YSk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcmVj
ZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBpc1dhcm1VcCkgewotICB0aW1lcklEID0g
bnVsbDsKLQotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IG51bGw7Ci0gIHZhciB0b3RhbFNp
emUgPSAwOwotICB2YXIgdG90YWxSZXBsaWVkID0gMDsKLQotICB2YXIgY2hlY2tSZXN1bHRBbmRD
b250aW51ZSA9IGZ1bmN0aW9uIChieXRlc1JlY2VpdmVkLCB2ZXJpZmljYXRpb25SZXN1bHQpIHsK
LSAgICBpZiAoIXZlcmlmaWNhdGlvblJlc3VsdCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdS
ZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwot
ICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
dG90YWxSZXBsaWVkICs9IGJ5dGVzUmVjZWl2ZWQ7Ci0KLSAgICBpZiAodG90YWxSZXBsaWVkIDwg
dG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGJlbmNobWFyay5z
dGFydFRpbWVJbk1zID09IG51bGwpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnc3RhcnRUaW1l
SW5NcyBub3Qgc2V0Jyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwotICAgICAgY29uZmlnLm5v
dGlmeUFib3J0KCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY2FsY3VsYXRlQW5kTG9n
UmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSwK
LSAgICAgICAgaXNXYXJtVXApOwotCi0gICAgZGVzdHJveUFsbFhIUnMoKTsKLQotICAgIHJ1bk5l
eHRUYXNrKGNvbmZpZyk7Ci0gIH0KLQotICB2YXIgb25SZWFkeVN0YXRlQ2hhbmdlSGFuZGxlciA9
IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAodGhpcy5yZWFkeVN0YXRlICE9IHRoaXMuRE9ORSkgewot
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh0aGlzLnN0YXR1cyAhPSAyMDApIHsKLSAg
ICAgIGNvbmZpZy5hZGRUb0xvZygnRmFpbGVkIChzdGF0dXM9JyArIHRoaXMuc3RhdHVzICsgJykn
KTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsK
LSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBDaGVjayBhbmQgd2FybiBpZiBwcm94eSBp
cyBlbmFibGVkLgotICAgIGlmICh0aGlzLmdldFJlc3BvbnNlSGVhZGVyKCdWaWEnKSAhPT0gbnVs
bCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdXQVJOSU5HOiBwcm94eSBzZWVtcyBlbmFibGVk
LicpOwotICAgIH0KLQotICAgIHZhciBieXRlc1JlY2VpdmVkID0gLTE7Ci0gICAgaWYgKHRoaXMu
cmVzcG9uc2VUeXBlID09ICdhcnJheWJ1ZmZlcicpIHsKLSAgICAgIGJ5dGVzUmVjZWl2ZWQgPSB0
aGlzLnJlc3BvbnNlLmJ5dGVMZW5ndGg7Ci0gICAgfSBlbHNlIGlmICh0aGlzLnJlc3BvbnNlVHlw
ZSA9PSAnYmxvYicpIHsKLSAgICAgIGJ5dGVzUmVjZWl2ZWQgPSB0aGlzLnJlc3BvbnNlLnNpemU7
Ci0gICAgfSBlbHNlIHsKLSAgICAgIGJ5dGVzUmVjZWl2ZWQgPSB0aGlzLnJlc3BvbnNlLmxlbmd0
aDsKLSAgICB9Ci0gICAgaWYgKGJ5dGVzUmVjZWl2ZWQgIT0gc2l6ZSkgewotICAgICAgY29uZmln
LmFkZFRvTG9nKCdFeHBlY3RlZCAnICsgc2l6ZSArCi0gICAgICAgICAgJ0IgYnV0IHJlY2VpdmVk
ICcgKyBieXRlc1JlY2VpdmVkICsgJ0InKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAg
ICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
dGhpcy5yZXNwb25zZVR5cGUgPT0gJ2FycmF5YnVmZmVyJykgewotICAgICAgY2hlY2tSZXN1bHRB
bmRDb250aW51ZShieXRlc1JlY2VpdmVkLAotICAgICAgICAgICFjb25maWcudmVyaWZ5RGF0YSB8
fCB2ZXJpZnlBcnJheUJ1ZmZlcih0aGlzLnJlc3BvbnNlLCAweDYxKSk7Ci0gICAgfSBlbHNlIGlm
ICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYmxvYicpIHsKLSAgICAgIGlmIChjb25maWcudmVyaWZ5
RGF0YSkKLSAgICAgICAgdmVyaWZ5QmxvYihjb25maWcsIHRoaXMucmVzcG9uc2UsIDB4NjEsIGNo
ZWNrUmVzdWx0QW5kQ29udGludWUpOwotICAgICAgZWxzZQotICAgICAgICBjaGVja1Jlc3VsdEFu
ZENvbnRpbnVlKGJ5dGVzUmVjZWl2ZWQsIHRydWUpOwotICAgIH0gZWxzZSB7Ci0gICAgICBjaGVj
a1Jlc3VsdEFuZENvbnRpbnVlKAotICAgICAgICAgIGJ5dGVzUmVjZWl2ZWQsCi0gICAgICAgICAg
IWNvbmZpZy52ZXJpZnlEYXRhIHx8Ci0gICAgICAgICAgICAgIHRoaXMucmVzcG9uc2UgPT0gcmVw
ZWF0U3RyaW5nKCdhJywgdGhpcy5yZXNwb25zZS5sZW5ndGgpKTsKLSAgICB9Ci0gIH07Ci0KLSAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtWEhSczsgKytpKSB7Ci0gICAgdmFyIHhociA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBvblJl
YWR5U3RhdGVDaGFuZ2VIYW5kbGVyOwotICAgIHhocnMucHVzaCh4aHIpOwotICB9Ci0KLSAgYmVu
Y2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLSAgdG90YWxTaXplID0gc2l6
ZSAqIHhocnMubGVuZ3RoOwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgeGhycy5sZW5ndGg7ICsr
aSkgewotICAgIHZhciB4aHIgPSB4aHJzW2ldOwotICAgIGlmIChjb25maWcubWV0aG9kQW5kQ2Fj
aGUgPT09ICdHRVQtTk9DQUNIRScpIHsKLSAgICAgIHhoci5vcGVuKCdHRVQnLCBjb25maWcucHJl
Zml4VXJsICsgJ19yZWNlaXZlX2dldG5vY2FjaGU/JyArIHNpemUsCi0gICAgICAgICAgY29uZmln
LmFzeW5jKTsKLSAgICAgIHhoci5yZXNwb25zZVR5cGUgPSBjb25maWcuZGF0YVR5cGU7Ci0gICAg
ICB4aHIuc2VuZCgpOwotICAgIH0gZWxzZSBpZiAoY29uZmlnLm1ldGhvZEFuZENhY2hlID09PSAn
R0VULUNBQ0hFJykgewotICAgICAgeGhyLm9wZW4oJ0dFVCcsIGNvbmZpZy5wcmVmaXhVcmwgKyAn
X3JlY2VpdmVfZ2V0Y2FjaGU/JyArIHNpemUsCi0gICAgICAgICAgY29uZmlnLmFzeW5jKTsKLSAg
ICAgIHhoci5yZXNwb25zZVR5cGUgPSBjb25maWcuZGF0YVR5cGU7Ci0gICAgICB4aHIuc2VuZCgp
OwotICAgIH0gZWxzZSB7Ci0gICAgICB4aHIub3BlbignUE9TVCcsIGNvbmZpZy5wcmVmaXhVcmwg
KyAnX3JlY2VpdmUnLCBjb25maWcuYXN5bmMpOwotICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9IGNv
bmZpZy5kYXRhVHlwZTsKLSAgICAgIHhoci5zZW5kKHNpemUgKyAnIG5vbmUnKTsKLSAgICB9Ci0g
IH0KLX0KLQotCi1mdW5jdGlvbiBnZXRDb25maWdTdHJpbmcoY29uZmlnKSB7Ci0gIHJldHVybiAn
KCcgKyBjb25maWcuZGF0YVR5cGUgKwotICAgICcsIHZlcmlmeURhdGE9JyArIGNvbmZpZy52ZXJp
ZnlEYXRhICsKLSAgICAnLCAnICsgKGlzV29ya2VyID8gJ1dvcmtlcicgOiAnTWFpbicpICsKLSAg
ICAnLCAnICsgKGNvbmZpZy5hc3luYyA/ICdBc3luYycgOiAnU3luYycpICsKLSAgICAnLCBudW1Y
SFJzPScgKyBjb25maWcubnVtWEhScyArCi0gICAgJywgbnVtSXRlcmF0aW9ucz0nICsgY29uZmln
Lm51bUl0ZXJhdGlvbnMgKwotICAgICcsIG51bVdhcm1VcEl0ZXJhdGlvbnM9JyArIGNvbmZpZy5u
dW1XYXJtVXBJdGVyYXRpb25zICsKLSAgICAnKSc7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0QmVuY2ht
YXJrKGNvbmZpZykgewotICBjbGVhclRpbWVvdXQodGltZXJJRCk7Ci0gIGRlc3Ryb3lBbGxYSFJz
KCk7Ci0KLSAgcnVuTmV4dFRhc2soY29uZmlnKTsKLX0KLQotZnVuY3Rpb24gYmF0Y2hCZW5jaG1h
cmsob3JpZ2luYWxDb25maWcpIHsKLSAgb3JpZ2luYWxDb25maWcuYWRkVG9Mb2coJ0JhdGNoIGJl
bmNobWFyaycpOwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLQotICB2
YXIgZGF0YVR5cGVzID0gWyd0ZXh0JywgJ2Jsb2InLCAnYXJyYXlidWZmZXInXTsKLSAgdmFyIHN0
ZXBGdW5jcyA9IFtzZW5kQmVuY2htYXJrU3RlcCwgcmVjZWl2ZUJlbmNobWFya1N0ZXBdOwotICB2
YXIgbmFtZXMgPSBbJ1NlbmQnLCAnUmVjZWl2ZSddOwotICB2YXIgYXN5bmMgPSBbdHJ1ZSwgZmFs
c2VdOwotICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ZXBGdW5jcy5sZW5ndGg7ICsraSkgewotICAg
IGZvciAodmFyIGogPSAwOyBqIDwgZGF0YVR5cGVzLmxlbmd0aDsgKytqKSB7Ci0gICAgICBmb3Ig
KHZhciBrID0gMDsgayA8IGFzeW5jLmxlbmd0aDsgKytrKSB7Ci0gICAgICAgIHZhciBjb25maWcg
PSBjbG9uZUNvbmZpZyhvcmlnaW5hbENvbmZpZyk7Ci0gICAgICAgIGNvbmZpZy5kYXRhVHlwZSA9
IGRhdGFUeXBlc1tqXTsKLSAgICAgICAgY29uZmlnLmFzeW5jID0gYXN5bmNba107Ci0KLSAgICAg
ICAgLy8gUmVjZWl2ZSAmJiBOb24tV29ya2VyICYmIFN5bmMgaXMgbm90IHN1cHBvcnRlZCBieSB0
aGUgc3BlYwotICAgICAgICBpZiAoc3RlcEZ1bmNzW2ldID09PSByZWNlaXZlQmVuY2htYXJrU3Rl
cCAmJiAhaXNXb3JrZXIgJiYKLSAgICAgICAgICAgICFjb25maWcuYXN5bmMpCi0gICAgICAgICAg
Y29udGludWU7Ci0KLSAgICAgICAgYWRkVGFza3MoY29uZmlnLCBzdGVwRnVuY3NbaV0pOwotICAg
ICAgICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywKLSAgICAgICAgICAgIG5hbWVzW2ld
ICsgJyBiZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgICAgIH0KLSAg
ICB9Ci0gIH0KLQotICBzdGFydEJlbmNobWFyayhjb25maWcpOwotfQotCi1mdW5jdGlvbiBjbGVh
bnVwKCkgewotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9ldmVudF9sb2dnZXIuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS94aHJfZXZlbnRfbG9nZ2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDUwZGIwZmJlYzQ5NDY1MDkxMzI5YmRhZjQ3MTdkNzIxOTg4NmFkNmYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L3hocl9ldmVudF9sb2dnZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBACi08
IS0tCi1Db3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1V
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotbGljZW5z
ZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci1odHRwczovL2Rl
dmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLS0tPgotCi08aHRt
bD4KLTxoZWFkPgotPHRpdGxlPlhIUiBldmVudCBsb2dnZXI8L3RpdGxlPgotPHNjcmlwdCBzcmM9
InV0aWxfbWFpbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGV2ZW50cyA9IFtdOwotdmFy
IHN0YXJ0VGltZSA9IDA7Ci0KLWZ1bmN0aW9uIHJ1bigpIHsKLSAgZXZlbnRzID0gW107Ci0gIHN0
YXJ0VGltZSA9IERhdGUubm93KCk7Ci0KLSAgZnVuY3Rpb24gcHVzaFRvTG9nKHR5cGUpIHsKLSAg
ICB2YXIgdGltZSA9IERhdGUubm93KCk7Ci0gICAgaWYgKGV2ZW50cy5sZW5ndGggIT0gMCAmJiB0
eXBlID09PSBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLnR5cGUpIHsKLSAgICAgIGV2ZW50c1tl
dmVudHMubGVuZ3RoIC0gMV0uY291bnQgKz0gMTsKLSAgICAgIGV2ZW50c1tldmVudHMubGVuZ3Ro
IC0gMV0ubGFzdCA9IHRpbWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGV2ZW50cy5wdXNoKHt0eXBl
OiB0eXBlLCBjb3VudDogMSwgZmlyc3Q6IHRpbWUsIGxhc3Q6IHRpbWV9KTsKLSAgICB9Ci0gIH0K
LQotICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0KLSAgZnVuY3Rpb24gZ2V0UHJv
Z3Jlc3NFdmVudER1bXAoZSkgewotICAgIHJldHVybiAnKCcgKyBlLmxlbmd0aENvbXB1dGFibGUg
KyAnLCAnICsgZS5sb2FkZWQgKyAnLCAnICsgZS50b3RhbCArICcpJzsKLSAgfQotCi0gIHZhciBk
dW1wUHJvZ3Jlc3NFdmVudCA9IGdldEJvb2xGcm9tQ2hlY2tCb3goJ2R1bXBwcm9ncmVzc2V2ZW50
Jyk7Ci0KLSAgZnVuY3Rpb24gbG9nKGUpIHsKLSAgICB2YXIgdHlwZSA9IGUudHlwZTsKLSAgICBp
ZiAodHlwZSA9PT0gJ3JlYWR5c3RhdGVjaGFuZ2UnKSB7Ci0gICAgICB0eXBlICs9IGUudGFyZ2V0
LnJlYWR5U3RhdGU7Ci0gICAgfQotICAgIGlmIChkdW1wUHJvZ3Jlc3NFdmVudCAmJiAoZSBpbnN0
YW5jZW9mIFByb2dyZXNzRXZlbnQpKSB7Ci0gICAgICB0eXBlICs9IGdldFByb2dyZXNzRXZlbnRE
dW1wKGUpOwotICAgIH0KLSAgICBwdXNoVG9Mb2codHlwZSk7Ci0gIH07Ci0KLSAgZnVuY3Rpb24g
bG9nVXBsb2FkKGUpIHsKLSAgICB2YXIgdHlwZSA9IGUudHlwZTsKLSAgICBpZiAoZHVtcFByb2dy
ZXNzRXZlbnQgJiYgKGUgaW5zdGFuY2VvZiBQcm9ncmVzc0V2ZW50KSkgewotICAgICAgdHlwZSAr
PSBnZXRQcm9ncmVzc0V2ZW50RHVtcChlKTsKLSAgICB9Ci0gICAgcHVzaFRvTG9nKCd1cGxvYWQn
ICsgdHlwZSk7Ci0gIH0KLQotICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgndXBsb2FkJykpIHsK
LSAgICB2YXIgdXBsb2FkID0geGhyLnVwbG9hZDsKLSAgICB1cGxvYWQub25sb2Fkc3RhcnQgPSBs
b2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9ucHJvZ3Jlc3MgPSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2Fk
Lm9uYWJvcnQgPSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9uZXJyb3IgPSBsb2dVcGxvYWQ7Ci0g
ICAgdXBsb2FkLm9ubG9hZCA9IGxvZ1VwbG9hZDsKLSAgICB1cGxvYWQub250aW1lb3V0ID0gbG9n
VXBsb2FkOwotICAgIHVwbG9hZC5vbmxvYWRlbmQgPSBsb2dVcGxvYWQ7Ci0gIH0KLQotICB4aHIu
b25yZWFkeXN0YXRlY2hhbmdlID0gbG9nOwotICB4aHIub25sb2Fkc3RhcnQgPSBsb2c7Ci0gIHho
ci5vbnByb2dyZXNzID0gbG9nOwotICB4aHIub25hYm9ydCA9IGxvZzsKLSAgeGhyLm9uZXJyb3Ig
PSBsb2c7Ci0gIHhoci5vbmxvYWQgPSBsb2c7Ci0gIHhoci5vbnRpbWVvdXQgPSBsb2c7Ci0gIHho
ci5vbmxvYWRlbmQgPSBsb2c7Ci0KLSAgeGhyLm9wZW4oJ1BPU1QnLCAnLzA3M2JlMDAxZTEwOTUw
NjkyY2NiZjNhMmFkMjFjMjQ1X3JlY2VpdmUnLAotICAgICAgICAgICBnZXRCb29sRnJvbUNoZWNr
Qm94KCdhc3luYycpKTsKLSAgdmFyIHNpemUgPSBnZXRJbnRGcm9tSW5wdXQoJ3NpemUnKTsKLSAg
dmFyIGNodW5rZWRNb2RlID0gJ25vbmUnOwotICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnY2h1
bmtlZHJlc3BvbnNlJykpIHsKLSAgICBjaHVua2VkTW9kZSA9ICdjaHVua2VkJzsKLSAgfQotICB4
aHIuc2VuZChzaXplICsgJyAnICsgY2h1bmtlZE1vZGUpOwotfQotCi1mdW5jdGlvbiBwcmludCgp
IHsKLSAgdmFyIHJlc3VsdCA9ICcnOwotICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50cy5sZW5n
dGg7ICsraSkgewotICAgIHZhciBldmVudCA9IGV2ZW50c1tpXTsKLSAgICB2YXIgbGluZSA9ICcn
OwotICAgIGxpbmUgKz0gKGV2ZW50LmZpcnN0IC0gc3RhcnRUaW1lKSArICJtcyI7Ci0gICAgaWYg
KGV2ZW50LmNvdW50ID4gMSkKLSAgICAgIGxpbmUgKz0gIi0iICsgKGV2ZW50Lmxhc3QgLSBzdGFy
dFRpbWUpICsgIm1zIjsKLSAgICBlbHNlCi0gICAgICBsaW5lICs9ICIgICAgICAgICI7Ci0gICAg
d2hpbGUobGluZS5sZW5ndGggPCAxNSkKLSAgICAgIGxpbmUgKz0gIiAiOwotICAgIGxpbmUgKz0g
IjogIiArIGV2ZW50LnR5cGUgKyAnICogJyArIGV2ZW50LmNvdW50ICsgJ1xuJzsKLSAgICByZXN1
bHQgKz0gbGluZTsKLSAgfQotICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJykudmFsdWUg
PSByZXN1bHQ7Ci19Ci08L3NjcmlwdD4KLQotPGJvZHk+Ci0gIDx0ZXh0YXJlYSBpZD0ibG9nIiBy
b3dzPSIxMCIgY29scz0iNzAiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci0gIDxici8+Ci0gIFNpemU6
IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic2l6ZSIgdmFsdWU9IjY1NTM2Ij48YnIvPgotICA8aW5w
dXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaHVua2VkcmVzcG9uc2UiPgotICA8bGFiZWwgZm9yPSJj
aHVua2VkcmVzcG9uc2UiPlVzZSBDaHVua2VkIFQtRSBmb3IgcmVzcG9uc2U8L2xhYmVsPjxici8+
Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InVwbG9hZCI+Ci0gIDxsYWJlbCBmb3I9InVw
bG9hZCI+VXBsb2FkIHByb2dyZXNzPC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2ti
b3giIGlkPSJkdW1wcHJvZ3Jlc3NldmVudCI+Ci0gIDxsYWJlbCBmb3I9ImR1bXBwcm9ncmVzc2V2
ZW50Ij4KLSAgICBEdW1wIGxlbmd0aENvbXB1dGFibGUvbG9hZGVkL3RvdGFsPC9sYWJlbD48YnIv
PgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJhc3luYyIgY2hlY2tlZD4KLSAgPGxhYmVs
IGZvcj0iYXN5bmMiPkFzeW5jPC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBv
bmNsaWNrPSJydW4oKSIgdmFsdWU9IlJ1biBYSFIiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBv
bmNsaWNrPSJwcmludCgpIiB2YWx1ZT0iUHJpbnQgbG9nIj4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS94aHJfcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYWIwMmM5ZWE1NmY2YzEwZDAzYmVjMTAzOGQ2NzIyZGU2ZThk
MzFlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUveGhyX3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0idXRp
bC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Inhocl9iZW5jaG1hcmsuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzA5MzNhMjIwNDUxZmFkYjZhMDFhNWMxZDQ1YzI1NTE0NjhkN2Q4NS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9f
X2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDIyNCArMCwwIEBACi0jIENvcHlyaWdodCAy
MDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0j
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotCi0iIiJXZWJTb2NrZXQgZXh0ZW5zaW9uIGZvciBBcGFjaGUgSFRUUCBTZXJ2ZXIuCi0K
LW1vZF9weXdlYnNvY2tldCBpcyBhIFdlYlNvY2tldCBleHRlbnNpb24gZm9yIEFwYWNoZSBIVFRQ
IFNlcnZlcgotaW50ZW5kZWQgZm9yIHRlc3Rpbmcgb3IgZXhwZXJpbWVudGFsIHB1cnBvc2VzLiBt
b2RfcHl0aG9uIGlzIHJlcXVpcmVkLgotCi0KLUluc3RhbGxhdGlvbgotPT09PT09PT09PT09Ci0K
LTAuIFByZXBhcmUgYW4gQXBhY2hlIEhUVFAgU2VydmVyIGZvciB3aGljaCBtb2RfcHl0aG9uIGlz
IGVuYWJsZWQuCi0KLTEuIFNwZWNpZnkgdGhlIGZvbGxvd2luZyBBcGFjaGUgSFRUUCBTZXJ2ZXIg
ZGlyZWN0aXZlcyB0byBzdWl0IHlvdXIKLSAgIGNvbmZpZ3VyYXRpb24uCi0KLSAgIElmIG1vZF9w
eXdlYnNvY2tldCBpcyBub3QgaW4gdGhlIFB5dGhvbiBwYXRoLCBzcGVjaWZ5IHRoZSBmb2xsb3dp
bmcuCi0gICA8d2Vic29ja19saWI+IGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgbW9kX3B5d2Vic29j
a2V0IGlzIGluc3RhbGxlZC4KLQotICAgICAgIFB5dGhvblBhdGggInN5cy5wYXRoK1snPHdlYnNv
Y2tfbGliPiddIgotCi0gICBBbHdheXMgc3BlY2lmeSB0aGUgZm9sbG93aW5nLiA8d2Vic29ja19o
YW5kbGVycz4gaXMgdGhlIGRpcmVjdG9yeSB3aGVyZQotICAgdXNlci13cml0dGVuIFdlYlNvY2tl
dCBoYW5kbGVycyBhcmUgcGxhY2VkLgotCi0gICAgICAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNv
Y2tldC5oYW5kbGVyX3Jvb3QgPHdlYnNvY2tfaGFuZGxlcnM+Ci0gICAgICAgUHl0aG9uSGVhZGVy
UGFyc2VySGFuZGxlciBtb2RfcHl3ZWJzb2NrZXQuaGVhZGVycGFyc2VyaGFuZGxlcgotCi0gICBU
byBsaW1pdCB0aGUgc2VhcmNoIGZvciBXZWJTb2NrZXQgaGFuZGxlcnMgdG8gYSBkaXJlY3Rvcnkg
PHNjYW5fZGlyPgotICAgdW5kZXIgPHdlYnNvY2tfaGFuZGxlcnM+LCBjb25maWd1cmUgYXMgZm9s
bG93czoKLQotICAgICAgIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9zY2Fu
IDxzY2FuX2Rpcj4KLQotICAgPHNjYW5fZGlyPiBpcyB1c2VmdWwgaW4gc2F2aW5nIHNjYW4gdGlt
ZSB3aGVuIDx3ZWJzb2NrX2hhbmRsZXJzPgotICAgY29udGFpbnMgbWFueSBub24tV2ViU29ja2V0
IGhhbmRsZXIgZmlsZXMuCi0KLSAgIElmIHlvdSB3YW50IHRvIGFsbG93IGhhbmRsZXJzIHdob3Nl
IGNhbm9uaWNhbCBwYXRoIGlzIG5vdCB1bmRlciB0aGUgcm9vdAotICAgZGlyZWN0b3J5IChpLmUu
IHN5bWJvbGljIGxpbmsgaXMgaW4gcm9vdCBkaXJlY3RvcnkgYnV0IGl0cyB0YXJnZXQgaXMgbm90
KSwKLSAgIGNvbmZpZ3VyZSBhcyBmb2xsb3dzOgotCi0gICAgICAgUHl0aG9uT3B0aW9uIG1vZF9w
eXdlYnNvY2tldC5hbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyIE9uCi0KLSAgIEV4YW1w
bGUgc25pcHBldCBvZiBodHRwZC5jb25mOgotICAgKG1vZF9weXdlYnNvY2tldCBpcyBpbiAvd2Vi
c29ja19saWIsIFdlYlNvY2tldCBoYW5kbGVycyBhcmUgaW4KLSAgIC93ZWJzb2NrX2hhbmRsZXJz
LCBwb3J0IGlzIDgwIGZvciB3cywgNDQzIGZvciB3c3MuKQotCi0gICAgICAgPElmTW9kdWxlIHB5
dGhvbl9tb2R1bGU+Ci0gICAgICAgICBQeXRob25QYXRoICJzeXMucGF0aCtbJy93ZWJzb2NrX2xp
YiddIgotICAgICAgICAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5oYW5kbGVyX3Jvb3Qg
L3dlYnNvY2tfaGFuZGxlcnMKLSAgICAgICAgIFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIgbW9k
X3B5d2Vic29ja2V0LmhlYWRlcnBhcnNlcmhhbmRsZXIKLSAgICAgICA8L0lmTW9kdWxlPgotCi0y
LiBUdW5lIEFwYWNoZSBwYXJhbWV0ZXJzIGZvciBzZXJ2aW5nIFdlYlNvY2tldC4gV2UnZCBsaWtl
IHRvIG5vdGUgdGhhdCBhdAotICAgbGVhc3QgVGltZU91dCBkaXJlY3RpdmUgZnJvbSBjb3JlIGZl
YXR1cmVzIGFuZCBSZXF1ZXN0UmVhZFRpbWVvdXQKLSAgIGRpcmVjdGl2ZSBmcm9tIG1vZF9yZXF0
aW1lb3V0IHNob3VsZCBiZSBtb2RpZmllZCBub3QgdG8ga2lsbCBjb25uZWN0aW9ucwotICAgaW4g
b25seSBhIGZldyBzZWNvbmRzIG9mIGlkbGUgdGltZS4KLQotMy4gVmVyaWZ5IGluc3RhbGxhdGlv
bi4gWW91IGNhbiB1c2UgZXhhbXBsZS9jb25zb2xlLmh0bWwgdG8gcG9rZSB0aGUgc2VydmVyLgot
Ci0KLVdyaXRpbmcgV2ViU29ja2V0IGhhbmRsZXJzCi09PT09PT09PT09PT09PT09PT09PT09PT09
PQotCi1XaGVuIGEgV2ViU29ja2V0IHJlcXVlc3QgY29tZXMgaW4sIHRoZSByZXNvdXJjZSBuYW1l
Ci1zcGVjaWZpZWQgaW4gdGhlIGhhbmRzaGFrZSBpcyBjb25zaWRlcmVkIGFzIGlmIGl0IGlzIGEg
ZmlsZSBwYXRoIHVuZGVyCi08d2Vic29ja19oYW5kbGVycz4gYW5kIHRoZSBoYW5kbGVyIGRlZmlu
ZWQgaW4KLTx3ZWJzb2NrX2hhbmRsZXJzPi88cmVzb3VyY2VfbmFtZT5fd3NoLnB5IGlzIGludm9r
ZWQuCi0KLUZvciBleGFtcGxlLCBpZiB0aGUgcmVzb3VyY2UgbmFtZSBpcyAvZXhhbXBsZS9jaGF0
LCB0aGUgaGFuZGxlciBkZWZpbmVkIGluCi08d2Vic29ja19oYW5kbGVycz4vZXhhbXBsZS9jaGF0
X3dzaC5weSBpcyBpbnZva2VkLgotCi1BIFdlYlNvY2tldCBoYW5kbGVyIGlzIGNvbXBvc2VkIG9m
IHRoZSBmb2xsb3dpbmcgdGhyZWUgZnVuY3Rpb25zOgotCi0gICAgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCkKLSAgICB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCkKLSAgICB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVxdWVzdCkKLQot
d2hlcmU6Ci0gICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotCi13ZWJfc29ja2V0X2Rv
X2V4dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQgZHVyaW5nIHRoZSBoYW5kc2hha2UgYWZ0ZXIgdGhl
Ci1oZWFkZXJzIGFyZSBzdWNjZXNzZnVsbHkgcGFyc2VkIGFuZCBXZWJTb2NrZXQgcHJvcGVydGll
cyAod3NfbG9jYXRpb24sCi13c19vcmlnaW4sIGFuZCB3c19yZXNvdXJjZSkgYXJlIGFkZGVkIHRv
IHJlcXVlc3QuIEEgaGFuZGxlcgotY2FuIHJlamVjdCB0aGUgcmVxdWVzdCBieSByYWlzaW5nIGFu
IGV4Y2VwdGlvbi4KLQotQSByZXF1ZXN0IG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0
aWVzIHRoYXQgeW91IGNhbiB1c2UgZHVyaW5nIHRoZQotZXh0cmEgaGFuZHNoYWtlICh3ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZSk6Ci0tIHdzX3Jlc291cmNlCi0tIHdzX29yaWdpbgotLSB3
c192ZXJzaW9uCi0tIHdzX2xvY2F0aW9uIChIeUJpIDAwIG9ubHkpCi0tIHdzX2V4dGVuc2lvbnMg
KEh5QmkgMDYgYW5kIGxhdGVyKQotLSB3c19kZWZsYXRlIChIeUJpIDA2IGFuZCBsYXRlcikKLS0g
d3NfcHJvdG9jb2wKLS0gd3NfcmVxdWVzdGVkX3Byb3RvY29scyAoSHlCaSAwNiBhbmQgbGF0ZXIp
Ci0KLVRoZSBsYXN0IHR3byBhcmUgYSBiaXQgdHJpY2t5LiBTZWUgdGhlIG5leHQgc3Vic2VjdGlv
bi4KLQotCi1TdWJwcm90b2NvbCBOZWdvdGlhdGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotRm9yIEh5QmkgMDYgYW5kIGxhdGVyLCB3c19wcm90b2NvbCBpcyBhbHdheXMgc2V0IHRvIE5v
bmUgd2hlbgotd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgY2FsbGVkLiBJZiB3c19y
ZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdAotTm9uZSwgeW91IG11c3QgY2hvb3NlIG9uZSBzdWJw
cm90b2NvbCBmcm9tIHRoaXMgbGlzdCBhbmQgc2V0IGl0IHRvCi13c19wcm90b2NvbC4KLQotRm9y
IEh5QmkgMDAsIHdoZW4gd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgY2FsbGVkLAot
d3NfcHJvdG9jb2wgaXMgc2V0IHRvIHRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgY2xpZW50IGluCi1T
ZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlciBvciBOb25lIGlmCi1zdWNoIGhlYWRlciB3YXMg
bm90IGZvdW5kIGluIHRoZSBvcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0LiBGaW5pc2ggZXh0cmEK
LWhhbmRzaGFrZSB3aXRoIHdzX3Byb3RvY29sIHVudG91Y2hlZCB0byBhY2NlcHQgdGhlIHJlcXVl
c3Qgc3VicHJvdG9jb2wuCi1UaGVuLCBTZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlciB3aWxs
IGJlIHNlbnQgdG8KLXRoZSBjbGllbnQgaW4gcmVzcG9uc2Ugd2l0aCB0aGUgc2FtZSB2YWx1ZSBh
cyByZXF1ZXN0ZWQuIFJhaXNlIGFuIGV4Y2VwdGlvbgotaW4gd2ViX3NvY2tldF9kb19leHRyYV9o
YW5kc2hha2UgdG8gcmVqZWN0IHRoZSByZXF1ZXN0ZWQgc3VicHJvdG9jb2wuCi0KLQotRGF0YSBU
cmFuc2ZlcgotLS0tLS0tLS0tLS0tLQotCi13ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEgaXMgY2Fs
bGVkIGFmdGVyIHRoZSBoYW5kc2hha2UgY29tcGxldGVkCi1zdWNjZXNzZnVsbHkuIEEgaGFuZGxl
ciBjYW4gcmVjZWl2ZS9zZW5kIG1lc3NhZ2VzIGZyb20vdG8gdGhlIGNsaWVudAotdXNpbmcgcmVx
dWVzdC4gbW9kX3B5d2Vic29ja2V0Lm1zZ3V0aWwgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdGllcwot
Zm9yIGRhdGEgdHJhbnNmZXIuCi0KLVlvdSBjYW4gcmVjZWl2ZSBhIG1lc3NhZ2UgYnkgdGhlIGZv
bGxvd2luZyBzdGF0ZW1lbnQuCi0KLSAgICBtZXNzYWdlID0gcmVxdWVzdC53c19zdHJlYW0ucmVj
ZWl2ZV9tZXNzYWdlKCkKLQotVGhpcyBjYWxsIGJsb2NrcyB1bnRpbCBhbnkgY29tcGxldGUgdGV4
dCBmcmFtZSBhcnJpdmVzLCBhbmQgdGhlIHBheWxvYWQgZGF0YQotb2YgdGhlIGluY29taW5nIGZy
YW1lIHdpbGwgYmUgc3RvcmVkIGludG8gbWVzc2FnZS4gV2hlbiB5b3UncmUgdXNpbmcgSUVURgot
SHlCaSAwMCBvciBsYXRlciBwcm90b2NvbCwgcmVjZWl2ZV9tZXNzYWdlKCkgd2lsbCByZXR1cm4g
Tm9uZSBvbiByZWNlaXZpbmcKLWNsaWVudC1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UuIFdo
ZW4gYW55IGVycm9yIG9jY3VycywgcmVjZWl2ZV9tZXNzYWdlKCkKLXdpbGwgcmFpc2Ugc29tZSBl
eGNlcHRpb24uCi0KLVlvdSBjYW4gc2VuZCBhIG1lc3NhZ2UgYnkgdGhlIGZvbGxvd2luZyBzdGF0
ZW1lbnQuCi0KLSAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobWVzc2FnZSkKLQot
Ci1DbG9zaW5nIENvbm5lY3Rpb24KLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1FeGVjdXRpbmcgdGhl
IGZvbGxvd2luZyBzdGF0ZW1lbnQgb3IganVzdCByZXR1cm4taW5nIGZyb20KLXdlYl9zb2NrZXRf
dHJhbnNmZXJfZGF0YSBjYXVzZSBjb25uZWN0aW9uIGNsb3NlLgotCi0gICAgcmVxdWVzdC53c19z
dHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCi0KLWNsb3NlX2Nvbm5lY3Rpb24gd2lsbCB3YWl0Ci1m
b3IgY2xvc2luZyBoYW5kc2hha2UgYWNrbm93bGVkZ2VtZW50IGNvbWluZyBmcm9tIHRoZSBjbGll
bnQuIFdoZW4gaXQKLWNvdWxkbid0IHJlY2VpdmUgYSB2YWxpZCBhY2tub3dsZWRnZW1lbnQsIHJh
aXNlcyBhbiBleGNlcHRpb24uCi0KLXdlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFr
ZSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIHNlcnZlciByZWNlaXZlcwotaW5jb21pbmcgY2xvc2luZyBm
cmFtZSBmcm9tIHRoZSBjbGllbnQgcGVlciBpbW1lZGlhdGVseS4gWW91IGNhbiBzcGVjaWZ5Ci1j
b2RlIGFuZCByZWFzb24gYnkgcmV0dXJuIHZhbHVlcy4gVGhleSBhcmUgc2VudCBhcyBhIG91dGdv
aW5nIGNsb3NpbmcgZnJhbWUKLWZyb20gdGhlIHNlcnZlci4gQSByZXF1ZXN0IG9iamVjdCBoYXMg
dGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHRoYXQgeW91IGNhbgotdXNlIGluIHdlYl9zb2NrZXRf
cGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZS4KLS0gd3NfY2xvc2VfY29kZQotLSB3c19jbG9zZV9y
ZWFzb24KLQotCi1UaHJlYWRpbmcKLS0tLS0tLS0tLQotCi1BIFdlYlNvY2tldCBoYW5kbGVyIG11
c3QgYmUgdGhyZWFkLXNhZmUgaWYgdGhlIHNlcnZlciAoQXBhY2hlIG9yCi1zdGFuZGFsb25lLnB5
KSBpcyBjb25maWd1cmVkIHRvIHVzZSB0aHJlYWRzLgotCi0KLUNvbmZpZ3VyaW5nIFdlYlNvY2tl
dCBFeHRlbnNpb24gUHJvY2Vzc29ycwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLVNlZSBleHRlbnNpb25zLnB5IGZvciBzdXBwb3J0ZWQgV2ViU29ja2V0IGV4
dGVuc2lvbnMuIE5vdGUgdGhhdCB0aGV5IGFyZQotdW5zdGFibGUgYW5kIHRoZWlyIEFQSXMgYXJl
IHN1YmplY3QgdG8gY2hhbmdlIHN1YnN0YW50aWFsbHkuCi0KLUEgcmVxdWVzdCBvYmplY3QgaGFz
IHRoZXNlIGV4dGVuc2lvbiBwcm9jZXNzaW5nIHJlbGF0ZWQgYXR0cmlidXRlcy4KLQotLSB3c19y
ZXF1ZXN0ZWRfZXh0ZW5zaW9uczoKLQotICBBIGxpc3Qgb2YgY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlciBpbnN0YW5jZXMgcmVwcmVzZW50aW5nIGV4dGVuc2lvbgotICBwYXJhbWV0ZXJzIHJlY2Vp
dmVkIGZyb20gdGhlIGNsaWVudCBpbiB0aGUgY2xpZW50J3Mgb3BlbmluZyBoYW5kc2hha2UuCi0g
IFlvdSBzaG91bGRuJ3QgbW9kaWZ5IGl0IG1hbnVhbGx5LgotCi0tIHdzX2V4dGVuc2lvbnM6Ci0K
LSAgQSBsaXN0IG9mIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIgaW5zdGFuY2VzIHJlcHJlc2Vu
dGluZyBleHRlbnNpb24KLSAgcGFyYW1ldGVycyB0byBzZW5kIGJhY2sgdG8gdGhlIGNsaWVudCBp
biB0aGUgc2VydmVyJ3Mgb3BlbmluZyBoYW5kc2hha2UuCi0gIFlvdSBzaG91bGRuJ3QgdG91Y2gg
aXQgZGlyZWN0bHkuIEluc3RlYWQsIGNhbGwgbWV0aG9kcyBvbiBleHRlbnNpb24KLSAgcHJvY2Vz
c29ycy4KLQotLSB3c19leHRlbnNpb25fcHJvY2Vzc29yczoKLQotICBBIGxpc3Qgb2YgbG9hZGVk
IGV4dGVuc2lvbiBwcm9jZXNzb3JzLiBGaW5kIHRoZSBwcm9jZXNzb3IgZm9yIHRoZQotICBleHRl
bnNpb24geW91IHdhbnQgdG8gY29uZmlndXJlIGZyb20gaXQsIGFuZCBjYWxsIGl0cyBtZXRob2Rz
LgotIiIiCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0IHR3PTcyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3Ry
ZWFtX2Jhc2UucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxYTEyNTRhZTZkMGUz
NmZiNWU5Nzk4MTI4M2M1N2IxNWRmNmYzZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9iYXNlLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMTgxICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkJh
c2Ugc3RyZWFtIGNsYXNzLgotIiIiCi0KLQotIyBOb3RlOiByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dGUvcmVhZCBhcmUgdXNlZCBpbiB0aGlzIG1vZHVsZSwgZXZlbiB0aG91Z2gKLSMgbW9kX3B5dGhv
biBkb2N1bWVudCBzYXlzIHRoYXQgdGhleSBzaG91bGQgYmUgdXNlZCBvbmx5IGluIGNvbm5lY3Rp
b24KLSMgaGFuZGxlcnMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9ucy4g
Rm9yIGV4YW1wbGUsCi0jIHJlcXVlc3Qud3JpdGUvcmVhZCBhcmUgbm90IHN1aXRhYmxlIGJlY2F1
c2UgdGhleSBkb24ndCBhbGxvdyBkaXJlY3QgcmF3IGJ5dGVzCi0jIHdyaXRpbmcvcmVhZGluZy4K
LQotCi1pbXBvcnQgc29ja2V0Ci0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0K
LQotIyBFeGNlcHRpb25zCi0KLQotY2xhc3MgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24o
RXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIGEg
Y29ubmVjdGlvbiBpcyB0ZXJtaW5hdGVkCi0gICAgdW5leHBlY3RlZGx5LgotICAgICIiIgotCi0g
ICAgcGFzcwotCi0KLWNsYXNzIEludmFsaWRGcmFtZUV4Y2VwdGlvbihDb25uZWN0aW9uVGVybWlu
YXRlZEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hl
biB3ZSByZWNlaXZlZCBhbiBpbnZhbGlkIGZyYW1lIHdlCi0gICAgY2Fubm90IHBhcnNlLgotICAg
ICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbihFeGNlcHRp
b24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gc2VuZF9tZXNz
YWdlKCkgaXMgY2FsbGVkIG9uCi0gICAgc2VydmVyLXRlcm1pbmF0ZWQgY29ubmVjdGlvbiBvciBy
ZWNlaXZlX21lc3NhZ2UoKSBpcyBjYWxsZWQgb24KLSAgICBjbGllbnQtdGVybWluYXRlZCBjb25u
ZWN0aW9uLgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIFVuc3VwcG9ydGVkRnJhbWVF
eGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNl
ZCB3aGVuIHdlIHJlY2VpdmUgYSBmcmFtZSB3aXRoIGZsYWcsIG9wY29kZQotICAgIHdlIGNhbm5v
dCBoYW5kbGUuIEhhbmRsZXJzIGNhbiBqdXN0IGNhdGNoIGFuZCBpZ25vcmUgdGhpcyBleGNlcHRp
b24gYW5kCi0gICAgY2FsbCByZWNlaXZlX21lc3NhZ2UoKSBhZ2FpbiB0byBjb250aW51ZSBwcm9j
ZXNzaW5nIHRoZSBuZXh0IGZyYW1lLgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIElu
dmFsaWRVVEY4RXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2ls
bCBiZSByYWlzZWQgd2hlbiB3ZSByZWNlaXZlIGEgdGV4dCBmcmFtZSB3aGljaAotICAgIGNvbnRh
aW5zIGludmFsaWQgVVRGLTggc3RyaW5ncy4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFz
cyBTdHJlYW1CYXNlKG9iamVjdCk6Ci0gICAgIiIiQmFzZSBzdHJlYW0gY2xhc3MuIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBp
bnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhv
biByZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdl
dF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAot
Ci0gICAgZGVmIF9yZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIlJlYWRzIGxlbmd0aCBi
eXRlcyBmcm9tIGNvbm5lY3Rpb24uIEluIGNhc2Ugd2UgY2F0Y2ggYW55IGV4Y2VwdGlvbiwKLSAg
ICAgICAgcHJlcGVuZHMgcmVtb3RlIGFkZHJlc3MgdG8gdGhlIGV4Y2VwdGlvbiBtZXNzYWdlIGFu
ZCByYWlzZSBhZ2Fpbi4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9u
VGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkgc3RyaW5nLgotICAg
ICAgICAiIiIKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZWFkX2J5dGVzID0gc2VsZi5f
cmVxdWVzdC5jb25uZWN0aW9uLnJlYWQobGVuZ3RoKQotICAgICAgICAgICAgaWYgbm90IHJlYWRf
Ynl0ZXM6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgICAgICdSZWNlaXZpbmcgJWQgYnl0ZSBmYWlsZWQuIFBlZXIg
KCVyKSBjbG9zZWQgY29ubmVjdGlvbicgJQotICAgICAgICAgICAgICAgICAgICAobGVuZ3RoLCAo
c2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJlbW90ZV9hZGRyLCkpKQotICAgICAgICAgICAgcmV0
dXJuIHJlYWRfYnl0ZXMKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgotICAgICAg
ICAgICAgIyBDYXRjaCBhIHNvY2tldC5lcnJvci4gQmVjYXVzZSBpdCdzIG5vdCBhIGNoaWxkIGNs
YXNzIG9mIHRoZQotICAgICAgICAgICAgIyBJT0Vycm9yIHByaW9yIHRvIFB5dGhvbiAyLjYsIHdl
IGNhbm5vdCBvbWl0IHRoaXMgZXhjZXB0IGNsYXVzZS4KLSAgICAgICAgICAgICMgVXNlICVzIHJh
dGhlciB0aGFuICVyIGZvciB0aGUgZXhjZXB0aW9uIHRvIHVzZSBodW1hbiBmcmllbmRseQotICAg
ICAgICAgICAgIyBmb3JtYXQuCi0gICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRl
ZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBz
b2NrZXQuZXJyb3IgKCVzKSBvY2N1cnJlZCcgJQotICAgICAgICAgICAgICAgIChsZW5ndGgsIGUp
KQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgotICAgICAgICAgICAgIyBBbHNvIGNhdGNo
IGFuIElPRXJyb3IgYmVjYXVzZSBtb2RfcHl0aG9uIHRocm93cyBpdC4KLSAgICAgICAgICAgIHJh
aXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZWNl
aXZpbmcgJWQgYnl0ZSBmYWlsZWQuIElPRXJyb3IgKCVzKSBvY2N1cnJlZCcgJQotICAgICAgICAg
ICAgICAgIChsZW5ndGgsIGUpKQotCi0gICAgZGVmIF93cml0ZShzZWxmLCBieXRlc190b193cml0
ZSk6Ci0gICAgICAgICIiIldyaXRlcyBnaXZlbiBieXRlcyB0byBjb25uZWN0aW9uLiBJbiBjYXNl
IHdlIGNhdGNoIGFueSBleGNlcHRpb24sCi0gICAgICAgIHByZXBlbmRzIHJlbW90ZSBhZGRyZXNz
IHRvIHRoZSBleGNlcHRpb24gbWVzc2FnZSBhbmQgcmFpc2UgYWdhaW4uCi0gICAgICAgICIiIgot
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0
ZShieXRlc190b193cml0ZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAg
ICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICAgICAnRmFpbGVkIHRvIHNlbmQgbWVzc2FnZSB0byAlcjogJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZW1vdGVfYWRkciwpLAotICAg
ICAgICAgICAgICAgICAgICBlKQotICAgICAgICAgICAgcmFpc2UKLQotICAgIGRlZiByZWNlaXZl
X2J5dGVzKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIlJlY2VpdmVzIG11bHRpcGxlIGJ5dGVz
LiBSZXRyaWVzIHJlYWQgd2hlbiB3ZSBjb3VsZG4ndCByZWNlaXZlIHRoZQotICAgICAgICBzcGVj
aWZpZWQgYW1vdW50LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eSBzdHJpbmcuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHJlYWRfYnl0ZXMgPSBbXQotICAgICAgICB3aGlsZSBsZW5ndGgg
PiAwOgotICAgICAgICAgICAgbmV3X3JlYWRfYnl0ZXMgPSBzZWxmLl9yZWFkKGxlbmd0aCkKLSAg
ICAgICAgICAgIHJlYWRfYnl0ZXMuYXBwZW5kKG5ld19yZWFkX2J5dGVzKQotICAgICAgICAgICAg
bGVuZ3RoIC09IGxlbihuZXdfcmVhZF9ieXRlcykKLSAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVh
ZF9ieXRlcykKLQotICAgIGRlZiBfcmVhZF91bnRpbChzZWxmLCBkZWxpbV9jaGFyKToKLSAgICAg
ICAgIiIiUmVhZHMgYnl0ZXMgdW50aWwgd2UgZW5jb3VudGVyIGRlbGltX2NoYXIuIFRoZSByZXN1
bHQgd2lsbCBub3QKLSAgICAgICAgY29udGFpbiBkZWxpbV9jaGFyLgotCi0gICAgICAgIFJhaXNl
czoKLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQg
cmV0dXJucyBlbXB0eSBzdHJpbmcuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJlYWRfYnl0ZXMg
PSBbXQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgY2ggPSBzZWxmLl9yZWFkKDEp
Ci0gICAgICAgICAgICBpZiBjaCA9PSBkZWxpbV9jaGFyOgotICAgICAgICAgICAgICAgIGJyZWFr
Ci0gICAgICAgICAgICByZWFkX2J5dGVzLmFwcGVuZChjaCkKLSAgICAgICAgcmV0dXJuICcnLmpv
aW4ocmVhZF9ieXRlcykKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L19zdHJlYW1faGl4aWU3NS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L19zdHJlYW1faGl4aWU3NS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjZjVi
MzFiYTBmYzNjM2EzNDc3ZGU4MjI5N2EwYzI2ZGExYzQ4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2hp
eGllNzUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAx
MSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIGEgY2xhc3MgZm9yIHBhcnNpbmcvYnVpbGRpbmcg
ZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQKLXByb3RvY29sIHZlcnNpb24gSHlCaSAwMCBhbmQgSGl4
aWUgNzUuCi0KLVNwZWNpZmljYXRpb246Ci0tIEh5QmkgMDAgaHR0cDovL3Rvb2xzLmlldGYub3Jn
L2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTAwCi0tIEhpeGllIDc1
IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWhpeGllLXRoZXdlYnNvY2tldHByb3Rv
Y29sLTc1Ci0iIiIKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlv
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVy
bWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9y
dCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFz
ZSBpbXBvcnQgU3RyZWFtQmFzZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGlt
cG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBv
cnQgdXRpbAotCi0KLWNsYXNzIFN0cmVhbUhpeGllNzUoU3RyZWFtQmFzZSk6Ci0gICAgIiIiQSBj
bGFzcyBmb3IgcGFyc2luZy9idWlsZGluZyBmcmFtZXMgb2YgdGhlIFdlYlNvY2tldCBwcm90b2Nv
bCB2ZXJzaW9uCi0gICAgSHlCaSAwMCBhbmQgSGl4aWUgNzUuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcmVxdWVzdCwgZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlPUZhbHNlKToK
LSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgICAgICBlbmFibGVf
Y2xvc2luZ19oYW5kc2hha2U6IHRvIGxldCBTdHJlYW1IaXhpZTc1IHBlcmZvcm0gY2xvc2luZwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kc2hha2UgYXMgc3BlY2lm
aWVkIGluIEh5QmkgMDAsIHNldAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzIG9wdGlvbiB0byBUcnVlLgotICAgICAgICAiIiIKLQotICAgICAgICBTdHJlYW1CYXNl
Ll9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5n
ZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fZW5hYmxlX2Nsb3NpbmdfaGFu
ZHNoYWtlID0gZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlCi0KLSAgICAgICAgc2VsZi5fcmVxdWVz
dC5jbGllbnRfdGVybWluYXRlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVy
X3Rlcm1pbmF0ZWQgPSBGYWxzZQotCi0gICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdl
LCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgIiIiU2VuZCBtZXNzYWdlLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtZXNzYWdlOiB1bmljb2RlIHN0cmluZyB0byBzZW5k
LgotICAgICAgICAgICAgYmluYXJ5OiBub3QgdXNlZCBpbiBoaXhpZTc1LgotCi0gICAgICAgIFJh
aXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgb24g
YSBzZXJ2ZXItdGVybWluYXRlZAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uCi0gICAgICAg
ICIiIgotCi0gICAgICAgIGlmIG5vdCBlbmQ6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRp
b25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1N0cmVhbUhpeGllNzUgZG9lc25cJ3Qgc3Vw
cG9ydCBzZW5kX21lc3NhZ2Ugd2l0aCBlbmQ9RmFsc2UnKQotCi0gICAgICAgIGlmIGJpbmFyeToK
LSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnU3RyZWFtSGl4aWU3NSBkb2VzblwndCBzdXBwb3J0IHNlbmRfbWVzc2FnZSB3aXRoIGJpbmFy
eT1UcnVlJykKLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgot
ICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICdSZXF1ZXN0ZWQgc2VuZF9tZXNzYWdlIGFmdGVyIHNlbmRpbmcgb3V0IGEgY2xvc2luZyBoYW5k
c2hha2UnKQotCi0gICAgICAgIHNlbGYuX3dyaXRlKCcnLmpvaW4oWydceDAwJywgbWVzc2FnZS5l
bmNvZGUoJ3V0Zi04JyksICdceGZmJ10pKQotCi0gICAgZGVmIF9yZWFkX3BheWxvYWRfbGVuZ3Ro
X2hpeGllNzUoc2VsZik6Ci0gICAgICAgICIiIlJlYWRzIGEgbGVuZ3RoIGhlYWRlciBpbiBhIEhp
eGllNzUgdmVyc2lvbiBmcmFtZSB3aXRoIGxlbmd0aC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAg
ICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMg
ZW1wdHkgc3RyaW5nLgotICAgICAgICAiIiIKLQotICAgICAgICBsZW5ndGggPSAwCi0gICAgICAg
IHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBiX3N0ciA9IHNlbGYuX3JlYWQoMSkKLSAgICAgICAg
ICAgIGIgPSBvcmQoYl9zdHIpCi0gICAgICAgICAgICBsZW5ndGggPSBsZW5ndGggKiAxMjggKyAo
YiAmIDB4N2YpCi0gICAgICAgICAgICBpZiAoYiAmIDB4ODApID09IDA6Ci0gICAgICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgcmV0dXJuIGxlbmd0aAotCi0gICAgZGVmIHJlY2VpdmVfbWVzc2Fn
ZShzZWxmKToKLSAgICAgICAgIiIiUmVjZWl2ZSBhIFdlYlNvY2tldCBmcmFtZSBhbmQgcmV0dXJu
IGl0cyBwYXlsb2FkIGFuIHVuaWNvZGUgc3RyaW5nLgotCi0gICAgICAgIFJldHVybnM6Ci0gICAg
ICAgICAgICBwYXlsb2FkIHVuaWNvZGUgc3RyaW5nIGluIGEgV2ViU29ja2V0IGZyYW1lLgotCi0g
ICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9u
OiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eQotICAgICAgICAgICAgICAgIHN0cmluZy4KLSAgICAg
ICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgb24gYSBjbGllbnQtdGVy
bWluYXRlZAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uCi0gICAgICAgICIiIgotCi0gICAg
ICAgIGlmIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICByYWlz
ZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCByZWNl
aXZlX21lc3NhZ2UgYWZ0ZXIgcmVjZWl2aW5nIGEgY2xvc2luZyAnCi0gICAgICAgICAgICAgICAg
J2hhbmRzaGFrZScpCi0KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICMgUmVhZCAx
IGJ5dGUuCi0gICAgICAgICAgICAjIG1wX2Nvbm4ucmVhZCB3aWxsIGJsb2NrIGlmIG5vIGJ5dGVz
IGFyZSBhdmFpbGFibGUuCi0gICAgICAgICAgICAjIFRpbWVvdXQgaXMgY29udHJvbGxlZCBieSBU
aW1lT3V0IGRpcmVjdGl2ZSBvZiBBcGFjaGUuCi0gICAgICAgICAgICBmcmFtZV90eXBlX3N0ciA9
IHNlbGYucmVjZWl2ZV9ieXRlcygxKQotICAgICAgICAgICAgZnJhbWVfdHlwZSA9IG9yZChmcmFt
ZV90eXBlX3N0cikKLSAgICAgICAgICAgIGlmIChmcmFtZV90eXBlICYgMHg4MCkgPT0gMHg4MDoK
LSAgICAgICAgICAgICAgICAjIFRoZSBwYXlsb2FkIGxlbmd0aCBpcyBzcGVjaWZpZWQgaW4gdGhl
IGZyYW1lLgotICAgICAgICAgICAgICAgICMgUmVhZCBhbmQgZGlzY2FyZC4KLSAgICAgICAgICAg
ICAgICBsZW5ndGggPSBzZWxmLl9yZWFkX3BheWxvYWRfbGVuZ3RoX2hpeGllNzUoKQotICAgICAg
ICAgICAgICAgIGlmIGxlbmd0aCA+IDA6Ci0gICAgICAgICAgICAgICAgICAgIF8gPSBzZWxmLnJl
Y2VpdmVfYnl0ZXMobGVuZ3RoKQotICAgICAgICAgICAgICAgICMgNS4zIDMuIDEyLiBpZiAvdHlw
ZS8gaXMgMHhGRiBhbmQgL2xlbmd0aC8gaXMgMCwgdGhlbiBzZXQgdGhlCi0gICAgICAgICAgICAg
ICAgIyAvY2xpZW50IHRlcm1pbmF0ZWQvIGZsYWcgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAg
ICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9lbmFibGVfY2xvc2luZ19oYW5kc2hha2U6Ci0gICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICBpZiBmcmFtZV90eXBl
ID09IDB4RkYgYW5kIGxlbmd0aCA9PSAwOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LmNsaWVudF90ZXJtaW5hdGVkID0gVHJ1ZQotCi0gICAgICAgICAgICAgICAgICAgIGlmIHNl
bGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVk
IGFjayBmb3Igc2VydmVyLWluaXRpYXRlZCBjbG9zaW5nICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnaGFuZHNoYWtlJykKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25l
Ci0KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAg
ICAgICAgICAgICAgJ1JlY2VpdmVkIGNsaWVudC1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2Un
KQotCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY2xvc2luZ19oYW5kc2hha2UoKQot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnU2VudCBhY2sgZm9yIGNsaWVudC1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2Un
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICAjIFRoZSBwYXlsb2FkIGlzIGRlbGltaXRlZCB3aXRoIFx4ZmYuCi0gICAg
ICAgICAgICAgICAgYnl0ZXMgPSBzZWxmLl9yZWFkX3VudGlsKCdceGZmJykKLSAgICAgICAgICAg
ICAgICAjIFRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgc2VjdGlvbiA0LjQgc3BlY2lmaWVzIHRoYXQg
aW52YWxpZAotICAgICAgICAgICAgICAgICMgY2hhcmFjdGVycyBtdXN0IGJlIHJlcGxhY2VkIHdp
dGggVStmZmZkIFJFUExBQ0VNRU5UCi0gICAgICAgICAgICAgICAgIyBDSEFSQUNURVIuCi0gICAg
ICAgICAgICAgICAgbWVzc2FnZSA9IGJ5dGVzLmRlY29kZSgndXRmLTgnLCAncmVwbGFjZScpCi0g
ICAgICAgICAgICAgICAgaWYgZnJhbWVfdHlwZSA9PSAweDAwOgotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbWVzc2FnZQotICAgICAgICAgICAgICAgICMgRGlzY2FyZCBkYXRhIG9mIG90aGVy
IHR5cGVzLgotCi0gICAgZGVmIF9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKHNlbGYpOgotICAgICAg
ICBpZiBub3Qgc2VsZi5fZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlOgotICAgICAgICAgICAgcmFp
c2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdDbG9zaW5nIGhhbmRz
aGFrZSBpcyBub3Qgc3VwcG9ydGVkIGluIEhpeGllIDc1IHByb3RvY29sJykKLQotICAgICAgICBz
ZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQotCi0gICAgICAgICMgNS4zIHRo
ZSBzZXJ2ZXIgbWF5IGRlY2lkZSB0byB0ZXJtaW5hdGUgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9u
IGJ5Ci0gICAgICAgICMgcnVubmluZyB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAg
ICAgICMgMS4gc2VuZCBhIDB4RkYgYnl0ZSBhbmQgYSAweDAwIGJ5dGUgdG8gdGhlIGNsaWVudCB0
byBpbmRpY2F0ZSB0aGUKLSAgICAgICAgIyBzdGFydCBvZiB0aGUgY2xvc2luZyBoYW5kc2hha2Uu
Ci0gICAgICAgIHNlbGYuX3dyaXRlKCdceGZmXHgwMCcpCi0KLSAgICBkZWYgY2xvc2VfY29ubmVj
dGlvbihzZWxmLCB1bnVzZWRfY29kZT0nJywgdW51c2VkX3JlYXNvbj0nJyk6Ci0gICAgICAgICIi
IkNsb3NlcyBhIFdlYlNvY2tldCBjb25uZWN0aW9uLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAg
ICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIGNsb3NpbmcgaGFuZHNo
YWtlIHdhcwotICAgICAgICAgICAgICAgIG5vdCBzdWNjZXNzZnVsbC4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIGNsb3NlX2Nv
bm5lY3Rpb24gYnV0IHNlcnZlciBpcyBhbHJlYWR5IHRlcm1pbmF0ZWQnKQotICAgICAgICAgICAg
cmV0dXJuCi0KLSAgICAgICAgaWYgbm90IHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZToK
LSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCi0gICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Nvbm5lY3Rpb24gY2xvc2VkJykKLSAgICAgICAg
ICAgIHJldHVybgotCi0gICAgICAgIHNlbGYuX3NlbmRfY2xvc2luZ19oYW5kc2hha2UoKQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbnQgc2VydmVyLWluaXRpYXRlZCBjbG9zaW5nIGhh
bmRzaGFrZScpCi0KLSAgICAgICAgIyBUT0RPKHVrYWkpOiAyLiB3YWl0IHVudGlsIHRoZSAvY2xp
ZW50IHRlcm1pbmF0ZWQvIGZsYWcgaGFzIGJlZW4gc2V0LAotICAgICAgICAjIG9yIHVudGlsIGEg
c2VydmVyLWRlZmluZWQgdGltZW91dCBleHBpcmVzLgotICAgICAgICAjCi0gICAgICAgICMgRm9y
IG5vdywgd2UgZXhwZWN0IHJlY2VpdmluZyBjbG9zaW5nIGhhbmRzaGFrZSByaWdodCBhZnRlciBz
ZW5kaW5nCi0gICAgICAgICMgb3V0IGNsb3NpbmcgaGFuZHNoYWtlLCBhbmQgaWYgd2UgY291bGRu
J3QgcmVjZWl2ZSBub24taGFuZHNoYWtlCi0gICAgICAgICMgZnJhbWUsIHdlIHRha2UgaXQgYXMg
Q29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24uCi0gICAgICAgIG1lc3NhZ2UgPSBzZWxmLnJl
Y2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIG1lc3NhZ2UgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnRGlkblwndCByZWNlaXZlIHZhbGlkIGFjayBmb3IgY2xvc2luZyBoYW5kc2hha2UnKQotICAg
ICAgICAjIFRPRE86IDMuIGNsb3NlIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbi4KLSAgICAgICAg
IyBub3RlOiBtb2RfcHl0aG9uIENvbm5lY3Rpb24gKG1wX2Nvbm4pIGRvZXNuJ3QgaGF2ZSBjbG9z
ZSBtZXRob2QuCi0KLSAgICBkZWYgc2VuZF9waW5nKHNlbGYsIGJvZHkpOgotICAgICAgICByYWlz
ZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAnU3RyZWFtSGl4aWU3NSBkb2Vz
blwndCBzdXBwb3J0IHNlbmRfcGluZycpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2h5YmkucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC9fc3RyZWFtX2h5YmkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcx
OGU4ZmZhMzk1NWQ1YWY1YzNiN2M1MTZiY2ZhOTgwZWZlNmRkODguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVh
bV9oeWJpLnB5CisrKyAvZGV2L251bGwKQEAgLTEsODk0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIw
MTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0KLSIiIlRoaXMgZmlsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCBoZWxwZXIgZnVuY3Rpb25z
IGZvciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1lcwotb2YgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAo
UkZDIDY0NTUpLgotCi1TcGVjaWZpY2F0aW9uOgotaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwv
cmZjNjQ1NQotIiIiCi0KLQotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUKLWltcG9ydCBs
b2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCB0aW1lCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1
dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25u
ZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9i
YXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZFVURjhFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29j
a2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgU3RyZWFtQmFzZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
X3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uCi0KLQotX05PT1Bf
TUFTS0VSID0gdXRpbC5Ob29wTWFza2VyKCkKLQotCi1jbGFzcyBGcmFtZShvYmplY3QpOgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbj0xLCByc3YxPTAsIHJzdjI9MCwgcnN2Mz0wLAotICAg
ICAgICAgICAgICAgICBvcGNvZGU9Tm9uZSwgcGF5bG9hZD0nJyk6Ci0gICAgICAgIHNlbGYuZmlu
ID0gZmluCi0gICAgICAgIHNlbGYucnN2MSA9IHJzdjEKLSAgICAgICAgc2VsZi5yc3YyID0gcnN2
MgotICAgICAgICBzZWxmLnJzdjMgPSByc3YzCi0gICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2Rl
Ci0gICAgICAgIHNlbGYucGF5bG9hZCA9IHBheWxvYWQKLQotCi0jIEhlbHBlciBmdW5jdGlvbnMg
bWFkZSBwdWJsaWMgdG8gYmUgdXNlZCBmb3Igd3JpdGluZyB1bml0dGVzdHMgZm9yIFdlYlNvY2tl
dAotIyBjbGllbnRzLgotCi0KLWRlZiBjcmVhdGVfbGVuZ3RoX2hlYWRlcihsZW5ndGgsIG1hc2sp
OgotICAgICIiIkNyZWF0ZXMgYSBsZW5ndGggaGVhZGVyLgotCi0gICAgQXJnczoKLSAgICAgICAg
bGVuZ3RoOiBGcmFtZSBsZW5ndGguIE11c3QgYmUgbGVzcyB0aGFuIDJeNjMuCi0gICAgICAgIG1h
c2s6IE1hc2sgYml0LiBNdXN0IGJlIGJvb2xlYW4uCi0KLSAgICBSYWlzZXM6Ci0gICAgICAgIFZh
bHVlRXJyb3I6IHdoZW4gYmFkIGRhdGEgaXMgZ2l2ZW4uCi0gICAgIiIiCi0KLSAgICBpZiBtYXNr
OgotICAgICAgICBtYXNrX2JpdCA9IDEgPDwgNwotICAgIGVsc2U6Ci0gICAgICAgIG1hc2tfYml0
ID0gMAotCi0gICAgaWYgbGVuZ3RoIDwgMDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignbGVu
Z3RoIG11c3QgYmUgbm9uIG5lZ2F0aXZlIGludGVnZXInKQotICAgIGVsaWYgbGVuZ3RoIDw9IDEy
NToKLSAgICAgICAgcmV0dXJuIGNocihtYXNrX2JpdCB8IGxlbmd0aCkKLSAgICBlbGlmIGxlbmd0
aCA8ICgxIDw8IDE2KToKLSAgICAgICAgcmV0dXJuIGNocihtYXNrX2JpdCB8IDEyNikgKyBzdHJ1
Y3QucGFjaygnIUgnLCBsZW5ndGgpCi0gICAgZWxpZiBsZW5ndGggPCAoMSA8PCA2Myk6Ci0gICAg
ICAgIHJldHVybiBjaHIobWFza19iaXQgfCAxMjcpICsgc3RydWN0LnBhY2soJyFRJywgbGVuZ3Ro
KQotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1BheWxvYWQgaXMgdG9vIGJp
ZyBmb3Igb25lIGZyYW1lJykKLQotCi1kZWYgY3JlYXRlX2hlYWRlcihvcGNvZGUsIHBheWxvYWRf
bGVuZ3RoLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG1hc2spOgotICAgICIiIkNyZWF0ZXMgYSBm
cmFtZSBoZWFkZXIuCi0KLSAgICBSYWlzZXM6Ci0gICAgICAgIEV4Y2VwdGlvbjogd2hlbiBiYWQg
ZGF0YSBpcyBnaXZlbi4KLSAgICAiIiIKLQotICAgIGlmIG9wY29kZSA8IDAgb3IgMHhmIDwgb3Bj
b2RlOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdPcGNvZGUgb3V0IG9mIHJhbmdlJykKLQot
ICAgIGlmIHBheWxvYWRfbGVuZ3RoIDwgMCBvciAoMSA8PCA2MykgPD0gcGF5bG9hZF9sZW5ndGg6
Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3BheWxvYWRfbGVuZ3RoIG91dCBvZiByYW5nZScp
Ci0KLSAgICBpZiAoZmluIHwgcnN2MSB8IHJzdjIgfCByc3YzKSAmIH4xOgotICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdGSU4gYml0IGFuZCBSZXNlcnZlZCBiaXQgcGFyYW1ldGVyIG11c3QgYmUg
MCBvciAxJykKLQotICAgIGhlYWRlciA9ICcnCi0KLSAgICBmaXJzdF9ieXRlID0gKChmaW4gPDwg
NykKLSAgICAgICAgICAgICAgICAgIHwgKHJzdjEgPDwgNikgfCAocnN2MiA8PCA1KSB8IChyc3Yz
IDw8IDQpCi0gICAgICAgICAgICAgICAgICB8IG9wY29kZSkKLSAgICBoZWFkZXIgKz0gY2hyKGZp
cnN0X2J5dGUpCi0gICAgaGVhZGVyICs9IGNyZWF0ZV9sZW5ndGhfaGVhZGVyKHBheWxvYWRfbGVu
Z3RoLCBtYXNrKQotCi0gICAgcmV0dXJuIGhlYWRlcgotCi0KLWRlZiBfYnVpbGRfZnJhbWUoaGVh
ZGVyLCBib2R5LCBtYXNrKToKLSAgICBpZiBub3QgbWFzazoKLSAgICAgICAgcmV0dXJuIGhlYWRl
ciArIGJvZHkKLQotICAgIG1hc2tpbmdfbm9uY2UgPSBvcy51cmFuZG9tKDQpCi0gICAgbWFza2Vy
ID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcihtYXNraW5nX25vbmNlKQotCi0gICAgcmV0dXJuIGhl
YWRlciArIG1hc2tpbmdfbm9uY2UgKyBtYXNrZXIubWFzayhib2R5KQotCi0KLWRlZiBfZmlsdGVy
X2FuZF9mb3JtYXRfZnJhbWVfb2JqZWN0KGZyYW1lLCBtYXNrLCBmcmFtZV9maWx0ZXJzKToKLSAg
ICBmb3IgZnJhbWVfZmlsdGVyIGluIGZyYW1lX2ZpbHRlcnM6Ci0gICAgICAgIGZyYW1lX2ZpbHRl
ci5maWx0ZXIoZnJhbWUpCi0KLSAgICBoZWFkZXIgPSBjcmVhdGVfaGVhZGVyKAotICAgICAgICBm
cmFtZS5vcGNvZGUsIGxlbihmcmFtZS5wYXlsb2FkKSwgZnJhbWUuZmluLAotICAgICAgICBmcmFt
ZS5yc3YxLCBmcmFtZS5yc3YyLCBmcmFtZS5yc3YzLCBtYXNrKQotICAgIHJldHVybiBfYnVpbGRf
ZnJhbWUoaGVhZGVyLCBmcmFtZS5wYXlsb2FkLCBtYXNrKQotCi0KLWRlZiBjcmVhdGVfYmluYXJ5
X2ZyYW1lKAotICAgIG1lc3NhZ2UsIG9wY29kZT1jb21tb24uT1BDT0RFX0JJTkFSWSwgZmluPTEs
IG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9W10pOgotICAgICIiIkNyZWF0ZXMgYSBzaW1wbGUg
YmluYXJ5IGZyYW1lIHdpdGggbm8gZXh0ZW5zaW9uLCByZXNlcnZlZCBiaXQuIiIiCi0KLSAgICBm
cmFtZSA9IEZyYW1lKGZpbj1maW4sIG9wY29kZT1vcGNvZGUsIHBheWxvYWQ9bWVzc2FnZSkKLSAg
ICByZXR1cm4gX2ZpbHRlcl9hbmRfZm9ybWF0X2ZyYW1lX29iamVjdChmcmFtZSwgbWFzaywgZnJh
bWVfZmlsdGVycykKLQotCi1kZWYgY3JlYXRlX3RleHRfZnJhbWUoCi0gICAgbWVzc2FnZSwgb3Bj
b2RlPWNvbW1vbi5PUENPREVfVEVYVCwgZmluPTEsIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9
W10pOgotICAgICIiIkNyZWF0ZXMgYSBzaW1wbGUgdGV4dCBmcmFtZSB3aXRoIG5vIGV4dGVuc2lv
biwgcmVzZXJ2ZWQgYml0LiIiIgotCi0gICAgZW5jb2RlZF9tZXNzYWdlID0gbWVzc2FnZS5lbmNv
ZGUoJ3V0Zi04JykKLSAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZShlbmNvZGVkX21lc3Nh
Z2UsIG9wY29kZSwgZmluLCBtYXNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy
YW1lX2ZpbHRlcnMpCi0KLQotZGVmIHBhcnNlX2ZyYW1lKHJlY2VpdmVfYnl0ZXMsIGxvZ2dlcj1O
b25lLAotICAgICAgICAgICAgICAgIHdzX3ZlcnNpb249Y29tbW9uLlZFUlNJT05fSFlCSV9MQVRF
U1QsCi0gICAgICAgICAgICAgICAgdW5tYXNrX3JlY2VpdmU9VHJ1ZSk6Ci0gICAgIiIiUGFyc2Vz
IGEgZnJhbWUuIFJldHVybnMgYSB0dXBsZSBjb250YWluaW5nIGVhY2ggaGVhZGVyIGZpZWxkIGFu
ZAotICAgIHBheWxvYWQuCi0KLSAgICBBcmdzOgotICAgICAgICByZWNlaXZlX2J5dGVzOiBhIGZ1
bmN0aW9uIHRoYXQgcmVhZHMgZnJhbWUgZGF0YSBmcm9tIGEgc3RyZWFtIG9yCi0gICAgICAgICAg
ICBzb21ldGhpbmcgc2ltaWxhci4gVGhlIGZ1bmN0aW9uIHRha2VzIGxlbmd0aCBvZiB0aGUgYnl0
ZXMgdG8gYmUKLSAgICAgICAgICAgIHJlYWQuIFRoZSBmdW5jdGlvbiBtdXN0IHJhaXNlIENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uIGlmCi0gICAgICAgICAgICB0aGVyZSBpcyBub3QgZW5v
dWdoIGRhdGEgdG8gYmUgcmVhZC4KLSAgICAgICAgbG9nZ2VyOiBhIGxvZ2dpbmcgb2JqZWN0Lgot
ICAgICAgICB3c192ZXJzaW9uOiB0aGUgdmVyc2lvbiBvZiBXZWJTb2NrZXQgcHJvdG9jb2wuCi0g
ICAgICAgIHVubWFza19yZWNlaXZlOiB1bm1hc2sgcmVjZWl2ZWQgZnJhbWVzLiBXaGVuIHJlY2Vp
dmVkIHVubWFza2VkCi0gICAgICAgICAgICBmcmFtZSwgcmFpc2VzIEludmFsaWRGcmFtZUV4Y2Vw
dGlvbi4KLQotICAgIFJhaXNlczoKLSAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRp
b246IHdoZW4gcmVjZWl2ZV9ieXRlcyByYWlzZXMgaXQuCi0gICAgICAgIEludmFsaWRGcmFtZUV4
Y2VwdGlvbjogd2hlbiB0aGUgZnJhbWUgY29udGFpbnMgaW52YWxpZCBkYXRhLgotICAgICIiIgot
Ci0gICAgaWYgbm90IGxvZ2dlcjoKLSAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIo
KQotCi0gICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ1JlY2VpdmUgdGhlIGZp
cnN0IDIgb2N0ZXRzIG9mIGEgZnJhbWUnKQotCi0gICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVz
KDIpCi0KLSAgICBmaXJzdF9ieXRlID0gb3JkKHJlY2VpdmVkWzBdKQotICAgIGZpbiA9IChmaXJz
dF9ieXRlID4+IDcpICYgMQotICAgIHJzdjEgPSAoZmlyc3RfYnl0ZSA+PiA2KSAmIDEKLSAgICBy
c3YyID0gKGZpcnN0X2J5dGUgPj4gNSkgJiAxCi0gICAgcnN2MyA9IChmaXJzdF9ieXRlID4+IDQp
ICYgMQotICAgIG9wY29kZSA9IGZpcnN0X2J5dGUgJiAweGYKLQotICAgIHNlY29uZF9ieXRlID0g
b3JkKHJlY2VpdmVkWzFdKQotICAgIG1hc2sgPSAoc2Vjb25kX2J5dGUgPj4gNykgJiAxCi0gICAg
cGF5bG9hZF9sZW5ndGggPSBzZWNvbmRfYnl0ZSAmIDB4N2YKLQotICAgIGxvZ2dlci5sb2coY29t
bW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAgICAnRklOPSVzLCBSU1YxPSVzLCBSU1Yy
PSVzLCBSU1YzPSVzLCBvcGNvZGU9JXMsICcKLSAgICAgICAgICAgICAgICdNYXNrPSVzLCBQYXls
b2FkX2xlbmd0aD0lcycsCi0gICAgICAgICAgICAgICBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9w
Y29kZSwgbWFzaywgcGF5bG9hZF9sZW5ndGgpCi0KLSAgICBpZiAobWFzayA9PSAxKSAhPSB1bm1h
c2tfcmVjZWl2ZToKLSAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAg
ICAgICAgJ01hc2sgYml0IG9uIHRoZSByZWNlaXZlZCBmcmFtZSBkaWRcJ250IG1hdGNoIG1hc2tp
bmcgJwotICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmVkIGZyYW1lcycpCi0K
LSAgICAjIFRoZSBIeUJpIGFuZCBsYXRlciBzcGVjcyBkaXNhbGxvdyBwdXR0aW5nIGEgdmFsdWUg
aW4gMHgwLTB4RkZGRgotICAgICMgaW50byB0aGUgOC1vY3RldCBleHRlbmRlZCBwYXlsb2FkIGxl
bmd0aCBmaWVsZCAob3IgMHgwLTB4RkQgaW4KLSAgICAjIDItb2N0ZXQgZmllbGQpLgotICAgIHZh
bGlkX2xlbmd0aF9lbmNvZGluZyA9IFRydWUKLSAgICBsZW5ndGhfZW5jb2RpbmdfYnl0ZXMgPSAx
Ci0gICAgaWYgcGF5bG9hZF9sZW5ndGggPT0gMTI3OgotICAgICAgICBsb2dnZXIubG9nKGNvbW1v
bi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgICAgICAgICdSZWNlaXZlIDgtb2N0ZXQgZXh0
ZW5kZWQgcGF5bG9hZCBsZW5ndGgnKQotCi0gICAgICAgIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3Ro
ID0gcmVjZWl2ZV9ieXRlcyg4KQotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBh
Y2soCi0gICAgICAgICAgICAnIVEnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KLSAgICAg
ICAgaWYgcGF5bG9hZF9sZW5ndGggPiAweDdGRkZGRkZGRkZGRkZGRkY6Ci0gICAgICAgICAgICBy
YWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0V4dGVuZGVkIHBh
eWxvYWQgbGVuZ3RoID49IDJeNjMnKQotICAgICAgICBpZiB3c192ZXJzaW9uID49IDEzIGFuZCBw
YXlsb2FkX2xlbmd0aCA8IDB4MTAwMDA6Ci0gICAgICAgICAgICB2YWxpZF9sZW5ndGhfZW5jb2Rp
bmcgPSBGYWxzZQotICAgICAgICAgICAgbGVuZ3RoX2VuY29kaW5nX2J5dGVzID0gOAotCi0gICAg
ICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAgICAgICAg
J0RlY29kZWRfcGF5bG9hZF9sZW5ndGg9JXMnLCBwYXlsb2FkX2xlbmd0aCkKLSAgICBlbGlmIHBh
eWxvYWRfbGVuZ3RoID09IDEyNjoKLSAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxf
RklORSwKLSAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZSAyLW9jdGV0IGV4dGVuZGVkIHBheWxv
YWQgbGVuZ3RoJykKLQotICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVf
Ynl0ZXMoMikKLSAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAotICAgICAg
ICAgICAgJyFIJywgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGgpWzBdCi0gICAgICAgIGlmIHdzX3Zl
cnNpb24gPj0gMTMgYW5kIHBheWxvYWRfbGVuZ3RoIDwgMTI2OgotICAgICAgICAgICAgdmFsaWRf
bGVuZ3RoX2VuY29kaW5nID0gRmFsc2UKLSAgICAgICAgICAgIGxlbmd0aF9lbmNvZGluZ19ieXRl
cyA9IDIKLQotICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAg
ICAgICAgICAgICAgICdEZWNvZGVkX3BheWxvYWRfbGVuZ3RoPSVzJywgcGF5bG9hZF9sZW5ndGgp
Ci0KLSAgICBpZiBub3QgdmFsaWRfbGVuZ3RoX2VuY29kaW5nOgotICAgICAgICBsb2dnZXIud2Fy
bmluZygKLSAgICAgICAgICAgICdQYXlsb2FkIGxlbmd0aCBpcyBub3QgZW5jb2RlZCB1c2luZyB0
aGUgbWluaW1hbCBudW1iZXIgb2YgJwotICAgICAgICAgICAgJ2J5dGVzICglZCBpcyBlbmNvZGVk
IHVzaW5nICVkIGJ5dGVzKScsCi0gICAgICAgICAgICBwYXlsb2FkX2xlbmd0aCwKLSAgICAgICAg
ICAgIGxlbmd0aF9lbmNvZGluZ19ieXRlcykKLQotICAgIGlmIG1hc2sgPT0gMToKLSAgICAgICAg
bG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ1JlY2VpdmUgbWFzaycpCi0KLSAgICAg
ICAgbWFza2luZ19ub25jZSA9IHJlY2VpdmVfYnl0ZXMoNCkKLSAgICAgICAgbWFza2VyID0gdXRp
bC5SZXBlYXRlZFhvck1hc2tlcihtYXNraW5nX25vbmNlKQotCi0gICAgICAgIGxvZ2dlci5sb2co
Y29tbW9uLkxPR0xFVkVMX0ZJTkUsICdNYXNrPSVyJywgbWFza2luZ19ub25jZSkKLSAgICBlbHNl
OgotICAgICAgICBtYXNrZXIgPSBfTk9PUF9NQVNLRVIKLQotICAgIGxvZ2dlci5sb2coY29tbW9u
LkxPR0xFVkVMX0ZJTkUsICdSZWNlaXZlIHBheWxvYWQgZGF0YScpCi0gICAgaWYgbG9nZ2VyLmlz
RW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6Ci0gICAgICAgIHJlY2VpdmVfc3RhcnQg
PSB0aW1lLnRpbWUoKQotCi0gICAgcmF3X3BheWxvYWRfYnl0ZXMgPSByZWNlaXZlX2J5dGVzKHBh
eWxvYWRfbGVuZ3RoKQotCi0gICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVW
RUxfRklORSk6Ci0gICAgICAgIGxvZ2dlci5sb2coCi0gICAgICAgICAgICBjb21tb24uTE9HTEVW
RUxfRklORSwKLSAgICAgICAgICAgICdEb25lIHJlY2VpdmluZyBwYXlsb2FkIGRhdGEgYXQgJXMg
TUIvcycsCi0gICAgICAgICAgICBwYXlsb2FkX2xlbmd0aCAvICh0aW1lLnRpbWUoKSAtIHJlY2Vp
dmVfc3RhcnQpIC8gMTAwMCAvIDEwMDApCi0gICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxf
RklORSwgJ1VubWFzayBwYXlsb2FkIGRhdGEnKQotCi0gICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZv
cihjb21tb24uTE9HTEVWRUxfRklORSk6Ci0gICAgICAgIHVubWFza19zdGFydCA9IHRpbWUudGlt
ZSgpCi0KLSAgICB1bm1hc2tlZF9ieXRlcyA9IG1hc2tlci5tYXNrKHJhd19wYXlsb2FkX2J5dGVz
KQotCi0gICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6Ci0g
ICAgICAgIGxvZ2dlci5sb2coCi0gICAgICAgICAgICBjb21tb24uTE9HTEVWRUxfRklORSwKLSAg
ICAgICAgICAgICdEb25lIHVubWFza2luZyBwYXlsb2FkIGRhdGEgYXQgJXMgTUIvcycsCi0gICAg
ICAgICAgICBwYXlsb2FkX2xlbmd0aCAvICh0aW1lLnRpbWUoKSAtIHVubWFza19zdGFydCkgLyAx
MDAwIC8gMTAwMCkKLQotICAgIHJldHVybiBvcGNvZGUsIHVubWFza2VkX2J5dGVzLCBmaW4sIHJz
djEsIHJzdjIsIHJzdjMKLQotCi1jbGFzcyBGcmFnbWVudGVkRnJhbWVCdWlsZGVyKG9iamVjdCk6
Ci0gICAgIiIiQSBzdGF0ZWZ1bCBjbGFzcyB0byBzZW5kIGEgbWVzc2FnZSBhcyBmcmFnbWVudHMu
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWFzaywgZnJhbWVfZmlsdGVycz1bXSwgZW5j
b2RlX3V0Zjg9VHJ1ZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuIiIiCi0K
LSAgICAgICAgc2VsZi5fbWFzayA9IG1hc2sKLSAgICAgICAgc2VsZi5fZnJhbWVfZmlsdGVycyA9
IGZyYW1lX2ZpbHRlcnMKLSAgICAgICAgIyBUaGlzIGlzIGZvciBza2lwcGluZyBVVEYtOCBlbmNv
ZGluZyB3aGVuIGJ1aWxkaW5nIHRleHQgdHlwZSBmcmFtZXMKLSAgICAgICAgIyBmcm9tIGNvbXBy
ZXNzZWQgZGF0YS4KLSAgICAgICAgc2VsZi5fZW5jb2RlX3V0ZjggPSBlbmNvZGVfdXRmOAotCi0g
ICAgICAgIHNlbGYuX3N0YXJ0ZWQgPSBGYWxzZQotCi0gICAgICAgICMgSG9sZCBvcGNvZGUgb2Yg
dGhlIGZpcnN0IGZyYW1lIGluIG1lc3NhZ2VzIHRvIHZlcmlmeSB0eXBlcyBvZiBvdGhlcgotICAg
ICAgICAjIGZyYW1lcyBpbiB0aGUgbWVzc2FnZSBhcmUgYWxsIHRoZSBzYW1lLgotICAgICAgICBz
ZWxmLl9vcGNvZGUgPSBjb21tb24uT1BDT0RFX1RFWFQKLQotICAgIGRlZiBidWlsZChzZWxmLCBw
YXlsb2FkX2RhdGEsIGVuZCwgYmluYXJ5KToKLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAg
ICAgZnJhbWVfdHlwZSA9IGNvbW1vbi5PUENPREVfQklOQVJZCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBmcmFtZV90eXBlID0gY29tbW9uLk9QQ09ERV9URVhUCi0gICAgICAgIGlmIHNlbGYu
X3N0YXJ0ZWQ6Ci0gICAgICAgICAgICBpZiBzZWxmLl9vcGNvZGUgIT0gZnJhbWVfdHlwZToKLSAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdNZXNzYWdlIHR5cGVzIGFyZSBkaWZmZXJl
bnQgaW4gZnJhbWVzIGZvciAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhl
IHNhbWUgbWVzc2FnZScpCi0gICAgICAgICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0NPTlRJ
TlVBVElPTgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3Bjb2RlID0gZnJhbWVfdHlwZQot
ICAgICAgICAgICAgc2VsZi5fb3Bjb2RlID0gZnJhbWVfdHlwZQotCi0gICAgICAgIGlmIGVuZDoK
LSAgICAgICAgICAgIHNlbGYuX3N0YXJ0ZWQgPSBGYWxzZQotICAgICAgICAgICAgZmluID0gMQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fc3RhcnRlZCA9IFRydWUKLSAgICAgICAg
ICAgIGZpbiA9IDAKLQotICAgICAgICBpZiBiaW5hcnkgb3Igbm90IHNlbGYuX2VuY29kZV91dGY4
OgotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCi0gICAgICAgICAgICAg
ICAgcGF5bG9hZF9kYXRhLCBvcGNvZGUsIGZpbiwgc2VsZi5fbWFzaywgc2VsZi5fZnJhbWVfZmls
dGVycykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVfdGV4dF9mcmFt
ZSgKLSAgICAgICAgICAgICAgICBwYXlsb2FkX2RhdGEsIG9wY29kZSwgZmluLCBzZWxmLl9tYXNr
LCBzZWxmLl9mcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUob3Bj
b2RlLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0ZXJzKToKLSAgICBmcmFtZSA9IEZyYW1lKG9wY29k
ZT1vcGNvZGUsIHBheWxvYWQ9Ym9keSkKLQotICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gZnJhbWVf
ZmlsdGVyczoKLSAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFtZSkKLQotICAgIGlmIGxl
bihmcmFtZS5wYXlsb2FkKSA+IDEyNToKLSAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0
aW9uKAotICAgICAgICAgICAgJ1BheWxvYWQgZGF0YSBzaXplIG9mIGNvbnRyb2wgZnJhbWVzIG11
c3QgYmUgMTI1IGJ5dGVzIG9yIGxlc3MnKQotCi0gICAgaGVhZGVyID0gY3JlYXRlX2hlYWRlcigK
LSAgICAgICAgZnJhbWUub3Bjb2RlLCBsZW4oZnJhbWUucGF5bG9hZCksIGZyYW1lLmZpbiwKLSAg
ICAgICAgZnJhbWUucnN2MSwgZnJhbWUucnN2MiwgZnJhbWUucnN2MywgbWFzaykKLSAgICByZXR1
cm4gX2J1aWxkX2ZyYW1lKGhlYWRlciwgZnJhbWUucGF5bG9hZCwgbWFzaykKLQotCi1kZWYgY3Jl
YXRlX3BpbmdfZnJhbWUoYm9keSwgbWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAg
cmV0dXJuIF9jcmVhdGVfY29udHJvbF9mcmFtZShjb21tb24uT1BDT0RFX1BJTkcsIGJvZHksIG1h
c2ssIGZyYW1lX2ZpbHRlcnMpCi0KLQotZGVmIGNyZWF0ZV9wb25nX2ZyYW1lKGJvZHksIG1hc2s9
RmFsc2UsIGZyYW1lX2ZpbHRlcnM9W10pOgotICAgIHJldHVybiBfY3JlYXRlX2NvbnRyb2xfZnJh
bWUoY29tbW9uLk9QQ09ERV9QT05HLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0ZXJzKQotCi0KLWRl
ZiBjcmVhdGVfY2xvc2VfZnJhbWUoYm9keSwgbWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6
Ci0gICAgcmV0dXJuIF9jcmVhdGVfY29udHJvbF9mcmFtZSgKLSAgICAgICAgY29tbW9uLk9QQ09E
RV9DTE9TRSwgYm9keSwgbWFzaywgZnJhbWVfZmlsdGVycykKLQotCi1kZWYgY3JlYXRlX2Nsb3Np
bmdfaGFuZHNoYWtlX2JvZHkoY29kZSwgcmVhc29uKToKLSAgICBib2R5ID0gJycKLSAgICBpZiBj
b2RlIGlzIG5vdCBOb25lOgotICAgICAgICBpZiAoY29kZSA+IGNvbW1vbi5TVEFUVVNfVVNFUl9Q
UklWQVRFX01BWCBvcgotICAgICAgICAgICAgY29kZSA8IGNvbW1vbi5TVEFUVVNfTk9STUFMX0NM
T1NVUkUpOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdTdGF0dXMg
Y29kZSBpcyBvdXQgb2YgcmFuZ2UnKQotICAgICAgICBpZiAoY29kZSA9PSBjb21tb24uU1RBVFVT
X05PX1NUQVRVU19SRUNFSVZFRCBvcgotICAgICAgICAgICAgY29kZSA9PSBjb21tb24uU1RBVFVT
X0FCTk9STUFMX0NMT1NVUkUgb3IKLSAgICAgICAgICAgIGNvZGUgPT0gY29tbW9uLlNUQVRVU19U
TFNfSEFORFNIQUtFKToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbign
U3RhdHVzIGNvZGUgaXMgcmVzZXJ2ZWQgcHNldWRvICcKLSAgICAgICAgICAgICAgICAnY29kZScp
Ci0gICAgICAgIGVuY29kZWRfcmVhc29uID0gcmVhc29uLmVuY29kZSgndXRmLTgnKQotICAgICAg
ICBib2R5ID0gc3RydWN0LnBhY2soJyFIJywgY29kZSkgKyBlbmNvZGVkX3JlYXNvbgotICAgIHJl
dHVybiBib2R5Ci0KLQotY2xhc3MgU3RyZWFtT3B0aW9ucyhvYmplY3QpOgotICAgICIiIkhvbGRz
IG9wdGlvbiB2YWx1ZXMgdG8gY29uZmlndXJlIFN0cmVhbSBvYmplY3RzLiIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYpOgotICAgICAgICAiIiJDb25zdHJ1Y3RzIFN0cmVhbU9wdGlvbnMuIiIi
Ci0KLSAgICAgICAgIyBGaWx0ZXJzIGFwcGxpZWQgdG8gZnJhbWVzLgotICAgICAgICBzZWxmLm91
dGdvaW5nX2ZyYW1lX2ZpbHRlcnMgPSBbXQotICAgICAgICBzZWxmLmluY29taW5nX2ZyYW1lX2Zp
bHRlcnMgPSBbXQotCi0gICAgICAgICMgRmlsdGVycyBhcHBsaWVkIHRvIG1lc3NhZ2VzLiBDb250
cm9sIGZyYW1lcyBhcmUgbm90IGFmZmVjdGVkIGJ5IHRoZW0uCi0gICAgICAgIHNlbGYub3V0Z29p
bmdfbWVzc2FnZV9maWx0ZXJzID0gW10KLSAgICAgICAgc2VsZi5pbmNvbWluZ19tZXNzYWdlX2Zp
bHRlcnMgPSBbXQotCi0gICAgICAgIHNlbGYuZW5jb2RlX3RleHRfbWVzc2FnZV90b191dGY4ID0g
VHJ1ZQotICAgICAgICBzZWxmLm1hc2tfc2VuZCA9IEZhbHNlCi0gICAgICAgIHNlbGYudW5tYXNr
X3JlY2VpdmUgPSBUcnVlCi0KLQotY2xhc3MgU3RyZWFtKFN0cmVhbUJhc2UpOgotICAgICIiIkEg
Y2xhc3MgZm9yIHBhcnNpbmcvYnVpbGRpbmcgZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQgcHJvdG9j
b2wKLSAgICAoUkZDIDY0NTUpLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJl
cXVlc3QsIG9wdGlvbnMpOgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIFN0cmVhbUJhc2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkK
LQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQot
ICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qu
Y2xpZW50X3Rlcm1pbmF0ZWQgPSBGYWxzZQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90
ZXJtaW5hdGVkID0gRmFsc2UKLQotICAgICAgICAjIEhvbGRzIGJvZHkgb2YgcmVjZWl2ZWQgZnJh
Z21lbnRzLgotICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMgPSBbXQotICAgICAgICAj
IEhvbGRzIHRoZSBvcGNvZGUgb2YgdGhlIGZpcnN0IGZyYWdtZW50LgotICAgICAgICBzZWxmLl9v
cmlnaW5hbF9vcGNvZGUgPSBOb25lCi0KLSAgICAgICAgc2VsZi5fd3JpdGVyID0gRnJhZ21lbnRl
ZEZyYW1lQnVpbGRlcigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMubWFza19zZW5kLCBzZWxm
Ll9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMsCi0gICAgICAgICAgICBzZWxmLl9vcHRp
b25zLmVuY29kZV90ZXh0X21lc3NhZ2VfdG9fdXRmOCkKLQotICAgICAgICBzZWxmLl9waW5nX3F1
ZXVlID0gZGVxdWUoKQotCi0gICAgZGVmIF9yZWNlaXZlX2ZyYW1lKHNlbGYpOgotICAgICAgICAi
IiJSZWNlaXZlcyBhIGZyYW1lIGFuZCByZXR1cm4gZGF0YSBpbiB0aGUgZnJhbWUgYXMgYSB0dXBs
ZSBjb250YWluaW5nCi0gICAgICAgIGVhY2ggaGVhZGVyIGZpZWxkIGFuZCBwYXlsb2FkIHNlcGFy
YXRlbHkuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5Ci0gICAgICAgICAgICAgICAgc3Ry
aW5nLgotICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBj
b250YWlucyBpbnZhbGlkIGRhdGEuCi0gICAgICAgICIiIgotCi0gICAgICAgIGRlZiBfcmVjZWl2
ZV9ieXRlcyhsZW5ndGgpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVjZWl2ZV9ieXRlcyhs
ZW5ndGgpCi0KLSAgICAgICAgcmV0dXJuIHBhcnNlX2ZyYW1lKHJlY2VpdmVfYnl0ZXM9X3JlY2Vp
dmVfYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXI9c2VsZi5fbG9nZ2Vy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgd3NfdmVyc2lvbj1zZWxmLl9yZXF1ZXN0Lndz
X3ZlcnNpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bm1hc2tfcmVjZWl2ZT1zZWxm
Ll9vcHRpb25zLnVubWFza19yZWNlaXZlKQotCi0gICAgZGVmIF9yZWNlaXZlX2ZyYW1lX2FzX2Zy
YW1lX29iamVjdChzZWxmKToKLSAgICAgICAgb3Bjb2RlLCB1bm1hc2tlZF9ieXRlcywgZmluLCBy
c3YxLCByc3YyLCByc3YzID0gc2VsZi5fcmVjZWl2ZV9mcmFtZSgpCi0KLSAgICAgICAgcmV0dXJu
IEZyYW1lKGZpbj1maW4sIHJzdjE9cnN2MSwgcnN2Mj1yc3YyLCByc3YzPXJzdjMsCi0gICAgICAg
ICAgICAgICAgICAgICBvcGNvZGU9b3Bjb2RlLCBwYXlsb2FkPXVubWFza2VkX2J5dGVzKQotCi0g
ICAgZGVmIHJlY2VpdmVfZmlsdGVyZWRfZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIlJlY2VpdmVz
IGEgZnJhbWUgYW5kIGFwcGxpZXMgZnJhbWUgZmlsdGVycyBhbmQgbWVzc2FnZSBmaWx0ZXJzLgot
ICAgICAgICBUaGUgZnJhbWUgdG8gYmUgcmVjZWl2ZWQgbXVzdCBzYXRpc2Z5IGZvbGxvd2luZyBj
b25kaXRpb25zOgotICAgICAgICAtIFRoZSBmcmFtZSBpcyBub3QgZnJhZ21lbnRlZC4KLSAgICAg
ICAgLSBUaGUgb3Bjb2RlIG9mIHRoZSBmcmFtZSBpcyBURVhUIG9yIEJJTkFSWS4KLQotICAgICAg
ICBETyBOT1QgVVNFIHRoaXMgbWV0aG9kIGV4Y2VwdCBmb3IgdGVzdGluZyBwdXJwb3NlLgotICAg
ICAgICAiIiIKLQotICAgICAgICBmcmFtZSA9IHNlbGYuX3JlY2VpdmVfZnJhbWVfYXNfZnJhbWVf
b2JqZWN0KCkKLSAgICAgICAgaWYgbm90IGZyYW1lLmZpbjoKLSAgICAgICAgICAgIHJhaXNlIElu
dmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnU2VnbWVudGVkIGZyYW1lcyBt
dXN0IG5vdCBiZSByZWNlaXZlZCB2aWEgJwotICAgICAgICAgICAgICAgICdyZWNlaXZlX2ZpbHRl
cmVkX2ZyYW1lKCknKQotICAgICAgICBpZiAoZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVf
VEVYVCBhbmQKLSAgICAgICAgICAgIGZyYW1lLm9wY29kZSAhPSBjb21tb24uT1BDT0RFX0JJTkFS
WSk6Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ0NvbnRyb2wgZnJhbWVzIG11c3Qgbm90IGJlIHJlY2VpdmVkIHZpYSAnCi0gICAgICAg
ICAgICAgICAgJ3JlY2VpdmVfZmlsdGVyZWRfZnJhbWUoKScpCi0KLSAgICAgICAgZm9yIGZyYW1l
X2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmluY29taW5nX2ZyYW1lX2ZpbHRlcnM6Ci0gICAgICAg
ICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZyYW1lKQotICAgICAgICBmb3IgbWVzc2FnZV9maWx0
ZXIgaW4gc2VsZi5fb3B0aW9ucy5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAgICAg
ICBmcmFtZS5wYXlsb2FkID0gbWVzc2FnZV9maWx0ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCi0g
ICAgICAgIHJldHVybiBmcmFtZQotCi0gICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdl
LCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgIiIiU2VuZCBtZXNzYWdlLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtZXNzYWdlOiB0ZXh0IGluIHVuaWNvZGUgb3IgYmlu
YXJ5IGluIHN0ciB0byBzZW5kLgotICAgICAgICAgICAgYmluYXJ5OiBzZW5kIG1lc3NhZ2UgYXMg
YmluYXJ5IGZyYW1lLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgb24gYSBzZXJ2ZXItdGVybWluYXRlZAotICAgICAgICAg
ICAgICAgIGNvbm5lY3Rpb24gb3IgY2FsbGVkIHdpdGggaW5jb25zaXN0ZW50IG1lc3NhZ2UgdHlw
ZSBvcgotICAgICAgICAgICAgICAgIGJpbmFyeSBwYXJhbWV0ZXIuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICBy
YWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBz
ZW5kX21lc3NhZ2UgYWZ0ZXIgc2VuZGluZyBvdXQgYSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAg
ICAgICAgaWYgYmluYXJ5IGFuZCBpc2luc3RhbmNlKG1lc3NhZ2UsIHVuaWNvZGUpOgotICAgICAg
ICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNZXNz
YWdlIGZvciBiaW5hcnkgZnJhbWUgbXVzdCBiZSBpbnN0YW5jZSBvZiBzdHInKQotCi0gICAgICAg
IGZvciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLm91dGdvaW5nX21lc3NhZ2VfZmls
dGVyczoKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIobWVzc2Fn
ZSwgZW5kLCBiaW5hcnkpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBTZXQgdGhpcyB0
byBhbnkgcG9zaXRpdmUgaW50ZWdlciB0byBsaW1pdCBtYXhpbXVtIHNpemUgb2YgZGF0YSBpbgot
ICAgICAgICAgICAgIyBwYXlsb2FkIGRhdGEgb2YgZWFjaCBmcmFtZS4KLSAgICAgICAgICAgIE1B
WF9QQVlMT0FEX0RBVEFfU0laRSA9IC0xCi0KLSAgICAgICAgICAgIGlmIE1BWF9QQVlMT0FEX0RB
VEFfU0laRSA8PSAwOgotICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlKHNlbGYuX3dyaXRlci5i
dWlsZChtZXNzYWdlLCBlbmQsIGJpbmFyeSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAg
ICAgICAgICAgIGJ5dGVzX3dyaXR0ZW4gPSAwCi0gICAgICAgICAgICB3aGlsZSBUcnVlOgotICAg
ICAgICAgICAgICAgIGVuZF9mb3JfdGhpc19mcmFtZSA9IGVuZAotICAgICAgICAgICAgICAgIGJ5
dGVzX3RvX3dyaXRlID0gbGVuKG1lc3NhZ2UpIC0gYnl0ZXNfd3JpdHRlbgotICAgICAgICAgICAg
ICAgIGlmIChNQVhfUEFZTE9BRF9EQVRBX1NJWkUgPiAwIGFuZAotICAgICAgICAgICAgICAgICAg
ICBieXRlc190b193cml0ZSA+IE1BWF9QQVlMT0FEX0RBVEFfU0laRSk6Ci0gICAgICAgICAgICAg
ICAgICAgIGVuZF9mb3JfdGhpc19mcmFtZSA9IEZhbHNlCi0gICAgICAgICAgICAgICAgICAgIGJ5
dGVzX3RvX3dyaXRlID0gTUFYX1BBWUxPQURfREFUQV9TSVpFCi0KLSAgICAgICAgICAgICAgICBm
cmFtZSA9IHNlbGYuX3dyaXRlci5idWlsZCgKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVti
eXRlc193cml0dGVuOmJ5dGVzX3dyaXR0ZW4gKyBieXRlc190b193cml0ZV0sCi0gICAgICAgICAg
ICAgICAgICAgIGVuZF9mb3JfdGhpc19mcmFtZSwKLSAgICAgICAgICAgICAgICAgICAgYmluYXJ5
KQotICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQotCi0gICAgICAgICAgICAgICAg
Ynl0ZXNfd3JpdHRlbiArPSBieXRlc190b193cml0ZQotCi0gICAgICAgICAgICAgICAgIyBUaGlz
IGlmIG11c3QgYmUgcGxhY2VkIGhlcmUgKHRoZSBlbmQgb2Ygd2hpbGUgYmxvY2spIHNvIHRoYXQK
LSAgICAgICAgICAgICAgICAjIGF0IGxlYXN0IG9uZSBmcmFtZSBpcyBzZW50LgotICAgICAgICAg
ICAgICAgIGlmIGxlbihtZXNzYWdlKSA8PSBieXRlc193cml0dGVuOgotICAgICAgICAgICAgICAg
ICAgICBicmVhawotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgICAg
cmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKGUpCi0KLSAgICBkZWYgX2dldF9tZXNzYWdlX2Zy
b21fZnJhbWUoc2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJHZXRzIGEgbWVzc2FnZSBmcm9tIGZy
YW1lLiBJZiB0aGUgbWVzc2FnZSBpcyBjb21wb3NlZCBvZiBmcmFnbWVudGVkCi0gICAgICAgIGZy
YW1lcyBhbmQgdGhlIGZyYW1lIGlzIG5vdCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lLCB0aGlz
IG1ldGhvZAotICAgICAgICByZXR1cm5zIE5vbmUuIFRoZSB3aG9sZSBtZXNzYWdlIHdpbGwgYmUg
cmV0dXJuZWQgd2hlbiB0aGUgbGFzdAotICAgICAgICBmcmFnbWVudGVkIGZyYW1lIGlzIHBhc3Nl
ZCB0byB0aGlzIG1ldGhvZC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBJbnZhbGlk
RnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIGZyYW1lIGRvZXNuJ3QgbWF0Y2ggZGVmcmFnbWVudGF0
aW9uCi0gICAgICAgICAgICAgICAgY29udGV4dCwgb3IgdGhlIGZyYW1lIGNvbnRhaW5zIGludmFs
aWQgZGF0YS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgZnJhbWUub3Bjb2RlID09IGNvbW1v
bi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuX3JlY2VpdmVk
X2ZyYWdtZW50czoKLSAgICAgICAgICAgICAgICBpZiBmcmFtZS5maW46Ci0gICAgICAgICAgICAg
ICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAg
ICAgICdSZWNlaXZlZCBhIHRlcm1pbmF0aW9uIGZyYW1lIGJ1dCBmcmFnbWVudGF0aW9uICcKLSAg
ICAgICAgICAgICAgICAgICAgICAgICdub3Qgc3RhcnRlZCcpCi0gICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGFuIGludGVybWVkaWF0ZSBmcmFtZSBidXQg
JwotICAgICAgICAgICAgICAgICAgICAgICAgJ2ZyYWdtZW50YXRpb24gbm90IHN0YXJ0ZWQnKQot
Ci0gICAgICAgICAgICBpZiBmcmFtZS5maW46Ci0gICAgICAgICAgICAgICAgIyBFbmQgb2YgZnJh
Z21lbnRhdGlvbiBmcmFtZQotICAgICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50
cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gJycuam9p
bihzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMpCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVjZWl2
ZWRfZnJhZ21lbnRzID0gW10KLSAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIEludGVybWVkaWF0ZSBmcmFtZQotICAgICAg
ICAgICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkK
LSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
aWYgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzOgotICAgICAgICAgICAgICAgIGlmIGZyYW1lLmZp
bjoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGFuIHVuZnJhZ21lbnRlZCBmcmFtZSB3aXRo
b3V0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICd0ZXJtaW5hdGluZyBleGlzdGluZyBmcmFn
bWVudGF0aW9uJykKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBy
YWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAnTmV3
IGZyYWdtZW50YXRpb24gc3RhcnRlZCB3aXRob3V0IHRlcm1pbmF0aW5nICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICdleGlzdGluZyBmcmFnbWVudGF0aW9uJykKLQotICAgICAgICAgICAgaWYg
ZnJhbWUuZmluOgotICAgICAgICAgICAgICAgICMgVW5mcmFnbWVudGVkIGZyYW1lCi0KLSAgICAg
ICAgICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPSBmcmFtZS5vcGNvZGUKLSAgICAgICAg
ICAgICAgICByZXR1cm4gZnJhbWUucGF5bG9hZAotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICAjIFN0YXJ0IG9mIGZyYWdtZW50YXRpb24gZnJhbWUKLQotICAgICAgICAgICAgICAg
IGlmIGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAg
ICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAg
ICAgICAnQ29udHJvbCBmcmFtZXMgbXVzdCBub3QgYmUgZnJhZ21lbnRlZCcpCi0KLSAgICAgICAg
ICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPSBmcmFtZS5vcGNvZGUKLSAgICAgICAgICAg
ICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBfcHJvY2Vzc19jbG9zZV9tZXNzYWdl
KHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJQcm9jZXNzZXMgY2xvc2UgbWVzc2FnZS4KLQot
ICAgICAgICBBcmdzOgotICAgICAgICAgICAgbWVzc2FnZTogY2xvc2UgbWVzc2FnZS4KLQotICAg
ICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhl
IG1lc3NhZ2UgaXMgaW52YWxpZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fcmVxdWVz
dC5jbGllbnRfdGVybWluYXRlZCA9IFRydWUKLQotICAgICAgICAjIFN0YXR1cyBjb2RlIGlzIG9w
dGlvbmFsLiBXZSBjYW4gaGF2ZSBzdGF0dXMgcmVhc29uIG9ubHkgaWYgd2UKLSAgICAgICAgIyBo
YXZlIHN0YXR1cyBjb2RlLiBTdGF0dXMgcmVhc29uIGNhbiBiZSBlbXB0eSBzdHJpbmcuIFNvLAot
ICAgICAgICAjIGFsbG93ZWQgY2FzZXMgYXJlCi0gICAgICAgICMgLSBubyBhcHBsaWNhdGlvbiBk
YXRhOiBubyBjb2RlIG5vIHJlYXNvbgotICAgICAgICAjIC0gMiBvY3RldCBvZiBhcHBsaWNhdGlv
biBkYXRhOiBoYXMgY29kZSBidXQgbm8gcmVhc29uCi0gICAgICAgICMgLSAzIG9yIG1vcmUgb2N0
ZXQgb2YgYXBwbGljYXRpb24gZGF0YTogYm90aCBjb2RlIGFuZCByZWFzb24KLSAgICAgICAgaWYg
bGVuKG1lc3NhZ2UpID09IDA6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2Vp
dmVkIGNsb3NlIGZyYW1lIChlbXB0eSBib2R5KScpCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX2Nsb3NlX2NvZGUgPSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNUQVRVU19OT19TVEFU
VVNfUkVDRUlWRUQpCi0gICAgICAgIGVsaWYgbGVuKG1lc3NhZ2UpID09IDE6Ci0gICAgICAgICAg
ICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0lmIGEgY2xv
c2UgZnJhbWUgaGFzIHN0YXR1cyBjb2RlLCB0aGUgbGVuZ3RoIG9mICcKLSAgICAgICAgICAgICAg
ICAnc3RhdHVzIGNvZGUgbXVzdCBiZSAyIG9jdGV0JykKLSAgICAgICAgZWxpZiBsZW4obWVzc2Fn
ZSkgPj0gMjoKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSA9IHN0cnVj
dC51bnBhY2soCi0gICAgICAgICAgICAgICAgJyFIJywgbWVzc2FnZVswOjJdKVswXQotICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9yZWFzb24gPSBtZXNzYWdlWzI6XS5kZWNvZGUo
Ci0gICAgICAgICAgICAgICAgJ3V0Zi04JywgJ3JlcGxhY2UnKQotICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICdSZWNlaXZlZCBjbG9zZSBmcmFtZSAoY29k
ZT0lZCwgcmVhc29uPSVyKScsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9z
ZV9jb2RlLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfcmVhc29uKQot
Ci0gICAgICAgICMgQXMgd2UndmUgcmVjZWl2ZWQgYSBjbG9zZSBmcmFtZSwgbm8gbW9yZSBkYXRh
IGlzIGNvbWluZyBvdmVyIHRoZQotICAgICAgICAjIHNvY2tldC4gV2UgY2FuIG5vdyBzYWZlbHkg
Y2xvc2UgdGhlIHNvY2tldCB3aXRob3V0IHdvcnJ5aW5nIGFib3V0Ci0gICAgICAgICMgUlNUIHNl
bmRpbmcuCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAnUmVjZWl2ZWQg
YWNrIGZvciBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgICAg
IHJldHVybgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdSZWNl
aXZlZCBjbGllbnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKLQotICAgICAgICBjb2Rl
ID0gY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRQotICAgICAgICByZWFzb24gPSAnJwotICAg
ICAgICBpZiBoYXNhdHRyKHNlbGYuX3JlcXVlc3QsICdfZGlzcGF0Y2hlcicpOgotICAgICAgICAg
ICAgZGlzcGF0Y2hlciA9IHNlbGYuX3JlcXVlc3QuX2Rpc3BhdGNoZXIKLSAgICAgICAgICAgIGNv
ZGUsIHJlYXNvbiA9IGRpc3BhdGNoZXIucGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSgKLSAgICAg
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0KQotICAgICAgICAgICAgaWYgY29kZSBpcyBOb25lIGFu
ZCByZWFzb24gaXMgbm90IE5vbmUgYW5kIGxlbihyZWFzb24pID4gMDoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIud2FybmluZygKLSAgICAgICAgICAgICAgICAgICAgJ0hhbmRsZXIgc3Bl
Y2lmaWVkIHJlYXNvbiBkZXNwaXRlIGNvZGUgYmVpbmcgTm9uZScpCi0gICAgICAgICAgICAgICAg
cmVhc29uID0gJycKLSAgICAgICAgICAgIGlmIHJlYXNvbiBpcyBOb25lOgotICAgICAgICAgICAg
ICAgIHJlYXNvbiA9ICcnCi0gICAgICAgIHNlbGYuX3NlbmRfY2xvc2luZ19oYW5kc2hha2UoY29k
ZSwgcmVhc29uKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnQWNr
bm93bGVkZ2VkIGNsb3NpbmcgaGFuZHNoYWtlIGluaXRpYXRlZCBieSB0aGUgcGVlciAnCi0gICAg
ICAgICAgICAnKGNvZGU9JXIsIHJlYXNvbj0lciknLCBjb2RlLCByZWFzb24pCi0KLSAgICBkZWYg
X3Byb2Nlc3NfcGluZ19tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJQcm9jZXNz
ZXMgcGluZyBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtZXNzYWdlOiBw
aW5nIG1lc3NhZ2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhh
bmRsZXIgPSBzZWxmLl9yZXF1ZXN0Lm9uX3BpbmdfaGFuZGxlcgotICAgICAgICAgICAgaWYgaGFu
ZGxlcjoKLSAgICAgICAgICAgICAgICBoYW5kbGVyKHNlbGYuX3JlcXVlc3QsIG1lc3NhZ2UpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciBhcyBl
OgotICAgICAgICAgICAgcGFzcwotICAgICAgICBzZWxmLl9zZW5kX3BvbmcobWVzc2FnZSkKLQot
ICAgIGRlZiBfcHJvY2Vzc19wb25nX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIi
IlByb2Nlc3NlcyBwb25nIG1lc3NhZ2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1l
c3NhZ2U6IHBvbmcgbWVzc2FnZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBUT0RPKHR5b3No
aW5vKTogQWRkIHBpbmcgdGltZW91dCBoYW5kbGluZy4KLQotICAgICAgICBpbmZsaWdodF9waW5n
cyA9IGRlcXVlKCkKLQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX2JvZHkgPSBzZWxmLl9waW5nX3F1ZXVlLnBvcGxlZnQoKQot
ICAgICAgICAgICAgICAgIGlmIGV4cGVjdGVkX2JvZHkgPT0gbWVzc2FnZToKLSAgICAgICAgICAg
ICAgICAgICAgIyBpbmZsaWdodF9waW5ncyBjb250YWlucyBwaW5ncyBpZ25vcmVkIGJ5IHRoZQot
ICAgICAgICAgICAgICAgICAgICAjIG90aGVyIHBlZXIuIEp1c3QgZm9yZ2V0IHRoZW0uCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAg
ICAgICdQaW5nICVyIGlzIGFja2VkICglZCBwaW5ncyB3ZXJlIGlnbm9yZWQpJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX2JvZHksIGxlbihpbmZsaWdodF9waW5ncykpCi0gICAg
ICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICAgICAgaW5mbGlnaHRfcGluZ3MuYXBwZW5kKGV4cGVjdGVkX2JvZHkpCi0gICAgICAgICAg
ICBleGNlcHQgSW5kZXhFcnJvciBhcyBlOgotICAgICAgICAgICAgICAgICMgVGhlIHJlY2VpdmVk
IHBvbmcgd2FzIHVuc29saWNpdGVkIHBvbmcuIEtlZXAgdGhlCi0gICAgICAgICAgICAgICAgIyBw
aW5nIHF1ZXVlIGFzIGlzLgotICAgICAgICAgICAgICAgIHNlbGYuX3BpbmdfcXVldWUgPSBpbmZs
aWdodF9waW5ncwotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQg
YSB1bnNvbGljaXRlZCBwb25nJykKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIGhhbmRsZXIgPSBzZWxmLl9yZXF1ZXN0Lm9uX3BvbmdfaGFuZGxlcgot
ICAgICAgICAgICAgaWYgaGFuZGxlcjoKLSAgICAgICAgICAgICAgICBoYW5kbGVyKHNlbGYuX3Jl
cXVlc3QsIG1lc3NhZ2UpCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciBhcyBlOgotICAg
ICAgICAgICAgcGFzcwotCi0gICAgZGVmIHJlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAg
IiIiUmVjZWl2ZSBhIFdlYlNvY2tldCBmcmFtZSBhbmQgcmV0dXJuIGl0cyBwYXlsb2FkIGFzIGEg
dGV4dCBpbgotICAgICAgICB1bmljb2RlIG9yIGEgYmluYXJ5IGluIHN0ci4KLQotICAgICAgICBS
ZXR1cm5zOgotICAgICAgICAgICAgcGF5bG9hZCBkYXRhIG9mIHRoZSBmcmFtZQotICAgICAgICAg
ICAgLSBhcyB1bmljb2RlIGluc3RhbmNlIGlmIHJlY2VpdmVkIHRleHQgZnJhbWUKLSAgICAgICAg
ICAgIC0gYXMgc3RyIGluc3RhbmNlIGlmIHJlY2VpdmVkIGJpbmFyeSBmcmFtZQotICAgICAgICAg
ICAgb3IgTm9uZSBpZmYgcmVjZWl2ZWQgY2xvc2luZyBoYW5kc2hha2UuCi0gICAgICAgIFJhaXNl
czoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgb24gYSBj
bGllbnQtdGVybWluYXRlZAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uCi0gICAgICAgICAg
ICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkK
LSAgICAgICAgICAgICAgICBzdHJpbmcuCi0gICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRp
b246IHdoZW4gdGhlIGZyYW1lIGNvbnRhaW5zIGludmFsaWQKLSAgICAgICAgICAgICAgICBkYXRh
LgotICAgICAgICAgICAgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUgcmVjZWl2
ZWQgZnJhbWUgaGFzCi0gICAgICAgICAgICAgICAgZmxhZ3MsIG9wY29kZSB3ZSBjYW5ub3QgaGFu
ZGxlLiBZb3UgY2FuIGlnbm9yZSB0aGlzCi0gICAgICAgICAgICAgICAgZXhjZXB0aW9uIGFuZCBj
b250aW51ZSByZWNlaXZpbmcgdGhlIG5leHQgZnJhbWUuCi0gICAgICAgICIiIgotCi0gICAgICAg
IGlmIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBC
YWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCByZWNlaXZl
X21lc3NhZ2UgYWZ0ZXIgcmVjZWl2aW5nIGEgY2xvc2luZyAnCi0gICAgICAgICAgICAgICAgJ2hh
bmRzaGFrZScpCi0KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICMgbXBfY29ubi5y
ZWFkIHdpbGwgYmxvY2sgaWYgbm8gYnl0ZXMgYXJlIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICMg
VGltZW91dCBpcyBjb250cm9sbGVkIGJ5IFRpbWVPdXQgZGlyZWN0aXZlIG9mIEFwYWNoZS4KLQot
ICAgICAgICAgICAgZnJhbWUgPSBzZWxmLl9yZWNlaXZlX2ZyYW1lX2FzX2ZyYW1lX29iamVjdCgp
Ci0KLSAgICAgICAgICAgICMgQ2hlY2sgdGhlIGNvbnN0cmFpbnQgb24gdGhlIHBheWxvYWQgc2l6
ZSBmb3IgY29udHJvbCBmcmFtZXMKLSAgICAgICAgICAgICMgYmVmb3JlIGV4dGVuc2lvbiBwcm9j
ZXNzZXMgdGhlIGZyYW1lLgotICAgICAgICAgICAgIyBTZWUgYWxzbyBodHRwOi8vdG9vbHMuaWV0
Zi5vcmcvaHRtbC9yZmM2NDU1I3NlY3Rpb24tNS41Ci0gICAgICAgICAgICBpZiAoY29tbW9uLmlz
X2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSkgYW5kCi0gICAgICAgICAgICAgICAgbGVuKGZy
YW1lLnBheWxvYWQpID4gMTI1KToKLSAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdQYXlsb2FkIGRhdGEgc2l6ZSBvZiBjb250
cm9sIGZyYW1lcyBtdXN0IGJlIDEyNSBieXRlcyBvciAnCi0gICAgICAgICAgICAgICAgICAgICds
ZXNzJykKLQotICAgICAgICAgICAgZm9yIGZyYW1lX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmlu
Y29taW5nX2ZyYW1lX2ZpbHRlcnM6Ci0gICAgICAgICAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRl
cihmcmFtZSkKLQotICAgICAgICAgICAgaWYgZnJhbWUucnN2MSBvciBmcmFtZS5yc3YyIG9yIGZy
YW1lLnJzdjM6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAgICAgJ1Vuc3VwcG9ydGVkIGZsYWcgaXMgc2V0IChyc3YgPSAl
ZCVkJWQpJyAlCi0gICAgICAgICAgICAgICAgICAgIChmcmFtZS5yc3YxLCBmcmFtZS5yc3YyLCBm
cmFtZS5yc3YzKSkKLQotICAgICAgICAgICAgbWVzc2FnZSA9IHNlbGYuX2dldF9tZXNzYWdlX2Zy
b21fZnJhbWUoZnJhbWUpCi0gICAgICAgICAgICBpZiBtZXNzYWdlIGlzIE5vbmU6Ci0gICAgICAg
ICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgZm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNl
bGYuX29wdGlvbnMuaW5jb21pbmdfbWVzc2FnZV9maWx0ZXJzOgotICAgICAgICAgICAgICAgIG1l
c3NhZ2UgPSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIobWVzc2FnZSkKLQotICAgICAgICAgICAgaWYg
c2VsZi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfVEVYVDoKLSAgICAgICAgICAg
ICAgICAjIFRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgc2VjdGlvbiA0LjQgc3BlY2lmaWVzIHRoYXQg
aW52YWxpZAotICAgICAgICAgICAgICAgICMgY2hhcmFjdGVycyBtdXN0IGJlIHJlcGxhY2VkIHdp
dGggVStmZmZkIFJFUExBQ0VNRU5UCi0gICAgICAgICAgICAgICAgIyBDSEFSQUNURVIuCi0gICAg
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZS5kZWNv
ZGUoJ3V0Zi04JykKLSAgICAgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yIGFz
IGU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRVVEY4RXhjZXB0aW9uKGUpCi0g
ICAgICAgICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RFX0JJ
TkFSWToKLSAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotICAgICAgICAgICAgZWxpZiBz
ZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9DTE9TRToKLSAgICAgICAgICAg
ICAgICBzZWxmLl9wcm9jZXNzX2Nsb3NlX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gTm9uZQotICAgICAgICAgICAgZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0g
Y29tbW9uLk9QQ09ERV9QSU5HOgotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfcGluZ19t
ZXNzYWdlKG1lc3NhZ2UpCi0gICAgICAgICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9
PSBjb21tb24uT1BDT0RFX1BPTkc6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19wb25n
X21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ09wY29k
ZSAlZCBpcyBub3Qgc3VwcG9ydGVkJyAlIHNlbGYuX29yaWdpbmFsX29wY29kZSkKLQotICAgIGRl
ZiBfc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShzZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAgICBi
b2R5ID0gY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkoY29kZSwgcmVhc29uKQotICAgICAg
ICBmcmFtZSA9IGNyZWF0ZV9jbG9zZV9mcmFtZSgKLSAgICAgICAgICAgIGJvZHksIG1hc2s9c2Vs
Zi5fb3B0aW9ucy5tYXNrX3NlbmQsCi0gICAgICAgICAgICBmcmFtZV9maWx0ZXJzPXNlbGYuX29w
dGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycykKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNl
cnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQotCi0gICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQotCi0g
ICAgZGVmIGNsb3NlX2Nvbm5lY3Rpb24oc2VsZiwgY29kZT1jb21tb24uU1RBVFVTX05PUk1BTF9D
TE9TVVJFLCByZWFzb249JycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgd2FpdF9yZXNwb25z
ZT1UcnVlKToKLSAgICAgICAgIiIiQ2xvc2VzIGEgV2ViU29ja2V0IGNvbm5lY3Rpb24uIE5vdGUg
dGhhdCB0aGlzIG1ldGhvZCBibG9ja3MgdW50aWwKLSAgICAgICAgaXQgcmVjZWl2ZXMgYWNrbm93
bGVkZ2VtZW50IHRvIHRoZSBjbG9zaW5nIGhhbmRzaGFrZS4KLQotICAgICAgICBBcmdzOgotICAg
ICAgICAgICAgY29kZTogU3RhdHVzIGNvZGUgZm9yIGNsb3NlIGZyYW1lLiBJZiBjb2RlIGlzIE5v
bmUsIGEgY2xvc2UKLSAgICAgICAgICAgICAgICBmcmFtZSB3aXRoIGVtcHR5IGJvZHkgd2lsbCBi
ZSBzZW50LgotICAgICAgICAgICAgcmVhc29uOiBzdHJpbmcgcmVwcmVzZW50aW5nIGNsb3NlIHJl
YXNvbi4KLSAgICAgICAgICAgIHdhaXRfcmVzcG9uc2U6IFRydWUgd2hlbiBjYWxsZXIgd2FudCB0
byB3YWl0IHRoZSByZXNwb25zZS4KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uOiB3aGVuIHJlYXNvbiBpcyBzcGVjaWZpZWQgd2l0aCBjb2RlIE5vbmUK
LSAgICAgICAgICAgIG9yIHJlYXNvbiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgYm90aCBzdHIgYW5k
IHVuaWNvZGUuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVy
X3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAg
ICAgICAgJ1JlcXVlc3RlZCBjbG9zZV9jb25uZWN0aW9uIGJ1dCBzZXJ2ZXIgaXMgYWxyZWFkeSB0
ZXJtaW5hdGVkJykKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgV2hlbiB3ZSByZWNl
aXZlIGEgY2xvc2UgZnJhbWUsIHdlIGNhbGwgX3Byb2Nlc3NfY2xvc2VfbWVzc2FnZSgpLgotICAg
ICAgICAjIF9wcm9jZXNzX2Nsb3NlX21lc3NhZ2UoKSBpbW1lZGlhdGVseSBhY2tub3dsZWRnZXMg
dG8gdGhlCi0gICAgICAgICMgc2VydmVyLWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZSBhbmQg
c2V0cyBzZXJ2ZXJfdGVybWluYXRlZCB0bwotICAgICAgICAjIFRydWUuIFNvLCBoZXJlIHdlIGNh
biBhc3N1bWUgdGhhdCB3ZSBoYXZlbid0IHJlY2VpdmVkIGFueSBjbG9zZQotICAgICAgICAjIGZy
YW1lLiBXZSdyZSBpbml0aWF0aW5nIGEgY2xvc2luZyBoYW5kc2hha2UuCi0KLSAgICAgICAgaWYg
Y29kZSBpcyBOb25lOgotICAgICAgICAgICAgaWYgcmVhc29uIGlzIG5vdCBOb25lIGFuZCBsZW4o
cmVhc29uKSA+IDA6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICAgICAnY2xvc2UgcmVhc29uIG11c3Qgbm90IGJlIHNwZWNpZmll
ZCBpZiBjb2RlIGlzIE5vbmUnKQotICAgICAgICAgICAgcmVhc29uID0gJycKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlYXNvbiwgc3RyKSBhbmQgbm90IGlz
aW5zdGFuY2UocmVhc29uLCB1bmljb2RlKToKLSAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVy
YXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdjbG9zZSByZWFzb24gbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiBzdHIgb3IgdW5pY29kZScpCi0KLSAgICAgICAgc2VsZi5fc2VuZF9j
bG9zaW5nX2hhbmRzaGFrZShjb2RlLCByZWFzb24pCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKLSAgICAgICAgICAgICdJbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UgKGNvZGU9JXIsIHJl
YXNvbj0lciknLAotICAgICAgICAgICAgY29kZSwgcmVhc29uKQotCi0gICAgICAgIGlmIChjb2Rl
ID09IGNvbW1vbi5TVEFUVVNfR09JTkdfQVdBWSBvcgotICAgICAgICAgICAgY29kZSA9PSBjb21t
b24uU1RBVFVTX1BST1RPQ09MX0VSUk9SKSBvciBub3Qgd2FpdF9yZXNwb25zZToKLSAgICAgICAg
ICAgICMgSXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHdhaXQgZm9yIGEgY2xvc2UgZnJhbWUgaWYg
dGhlIHJlYXNvbiBpcwotICAgICAgICAgICAgIyBwcm90b2NvbCBlcnJvciBvciB0aGF0IHRoZSBz
ZXJ2ZXIgaXMgZ29pbmcgYXdheS4gRm9yIHNvbWUgb2YKLSAgICAgICAgICAgICMgb3RoZXIgcmVh
c29ucywgaXQgbWlnaHQgbm90IG1ha2Ugc2Vuc2UgdG8gd2FpdCBmb3IgYSBjbG9zZSBmcmFtZSwK
LSAgICAgICAgICAgICMgYnV0IGl0J3Mgbm90IGNsZWFyLCB5ZXQuCi0gICAgICAgICAgICByZXR1
cm4KLQotICAgICAgICAjIFRPRE8odWthaSk6IDIuIHdhaXQgdW50aWwgdGhlIC9jbGllbnQgdGVy
bWluYXRlZC8gZmxhZyBoYXMgYmVlbiBzZXQsCi0gICAgICAgICMgb3IgdW50aWwgYSBzZXJ2ZXIt
ZGVmaW5lZCB0aW1lb3V0IGV4cGlyZXMuCi0gICAgICAgICMKLSAgICAgICAgIyBGb3Igbm93LCB3
ZSBleHBlY3QgcmVjZWl2aW5nIGNsb3NpbmcgaGFuZHNoYWtlIHJpZ2h0IGFmdGVyIHNlbmRpbmcK
LSAgICAgICAgIyBvdXQgY2xvc2luZyBoYW5kc2hha2UuCi0gICAgICAgIG1lc3NhZ2UgPSBzZWxm
LnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIG1lc3NhZ2UgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnRGlkblwndCByZWNlaXZlIHZhbGlkIGFjayBmb3IgY2xvc2luZyBoYW5kc2hha2UnKQot
ICAgICAgICAjIFRPRE86IDMuIGNsb3NlIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbi4KLSAgICAg
ICAgIyBub3RlOiBtb2RfcHl0aG9uIENvbm5lY3Rpb24gKG1wX2Nvbm4pIGRvZXNuJ3QgaGF2ZSBj
bG9zZSBtZXRob2QuCi0KLSAgICBkZWYgc2VuZF9waW5nKHNlbGYsIGJvZHk9JycpOgotICAgICAg
ICBmcmFtZSA9IGNyZWF0ZV9waW5nX2ZyYW1lKAotICAgICAgICAgICAgYm9keSwKLSAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMubWFza19zZW5kLAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5v
dXRnb2luZ19mcmFtZV9maWx0ZXJzKQotICAgICAgICBzZWxmLl93cml0ZShmcmFtZSkKLQotICAg
ICAgICBzZWxmLl9waW5nX3F1ZXVlLmFwcGVuZChib2R5KQotCi0gICAgZGVmIF9zZW5kX3Bvbmco
c2VsZiwgYm9keSk6Ci0gICAgICAgIGZyYW1lID0gY3JlYXRlX3BvbmdfZnJhbWUoCi0gICAgICAg
ICAgICBib2R5LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5tYXNrX3NlbmQsCi0gICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMpCi0gICAgICAgIHNlbGYu
X3dyaXRlKGZyYW1lKQotCi0gICAgZGVmIGdldF9sYXN0X3JlY2VpdmVkX29wY29kZShzZWxmKToK
LSAgICAgICAgIiIiUmV0dXJucyB0aGUgb3Bjb2RlIG9mIHRoZSBXZWJTb2NrZXQgbWVzc2FnZSB3
aGljaCB0aGUgbGFzdCByZWNlaXZlZAotICAgICAgICBmcmFtZSBiZWxvbmdzIHRvLiBUaGUgcmV0
dXJuIHZhbHVlIGlzIHZhbGlkIGlmZiBpbW1lZGlhdGVseSBhZnRlcgotICAgICAgICByZWNlaXZl
X21lc3NhZ2UgY2FsbC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX29yaWdp
bmFsX29wY29kZQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvY29tbW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvY29tbW9uLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjczZDY2NTYwZDY0NDE1NWVlMGY1ZjJhNTUw
OTg4OTg3MTMwZDliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2NvbW1vbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDMw
NiArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUgbXVzdCBub3QgZGVw
ZW5kIG9uIGFueSBtb2R1bGUgc3BlY2lmaWMgdG8gdGhlIFdlYlNvY2tldCBwcm90b2NvbC4KLSIi
IgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBodHRwX2hlYWRlcl91dGlsCi0KLQot
IyBBZGRpdGlvbmFsIGxvZyBsZXZlbCBkZWZpbml0aW9ucy4KLUxPR0xFVkVMX0ZJTkUgPSA5Ci0K
LSMgQ29uc3RhbnRzIGluZGljYXRpbmcgV2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24uCi1WRVJT
SU9OX0hJWElFNzUgPSAtMQotVkVSU0lPTl9IWUJJMDAgPSAwCi1WRVJTSU9OX0hZQkkwMSA9IDEK
LVZFUlNJT05fSFlCSTAyID0gMgotVkVSU0lPTl9IWUJJMDMgPSAyCi1WRVJTSU9OX0hZQkkwNCA9
IDQKLVZFUlNJT05fSFlCSTA1ID0gNQotVkVSU0lPTl9IWUJJMDYgPSA2Ci1WRVJTSU9OX0hZQkkw
NyA9IDcKLVZFUlNJT05fSFlCSTA4ID0gOAotVkVSU0lPTl9IWUJJMDkgPSA4Ci1WRVJTSU9OX0hZ
QkkxMCA9IDgKLVZFUlNJT05fSFlCSTExID0gOAotVkVSU0lPTl9IWUJJMTIgPSA4Ci1WRVJTSU9O
X0hZQkkxMyA9IDEzCi1WRVJTSU9OX0hZQkkxNCA9IDEzCi1WRVJTSU9OX0hZQkkxNSA9IDEzCi1W
RVJTSU9OX0hZQkkxNiA9IDEzCi1WRVJTSU9OX0hZQkkxNyA9IDEzCi0KLSMgQ29uc3RhbnRzIGlu
ZGljYXRpbmcgV2ViU29ja2V0IHByb3RvY29sIGxhdGVzdCB2ZXJzaW9uLgotVkVSU0lPTl9IWUJJ
X0xBVEVTVCA9IFZFUlNJT05fSFlCSTEzCi0KLSMgUG9ydCBudW1iZXJzCi1ERUZBVUxUX1dFQl9T
T0NLRVRfUE9SVCA9IDgwCi1ERUZBVUxUX1dFQl9TT0NLRVRfU0VDVVJFX1BPUlQgPSA0NDMKLQot
IyBTY2hlbWVzCi1XRUJfU09DS0VUX1NDSEVNRSA9ICd3cycKLVdFQl9TT0NLRVRfU0VDVVJFX1ND
SEVNRSA9ICd3c3MnCi0KLSMgRnJhbWUgb3Bjb2RlcyBkZWZpbmVkIGluIHRoZSBzcGVjLgotT1BD
T0RFX0NPTlRJTlVBVElPTiA9IDB4MAotT1BDT0RFX1RFWFQgPSAweDEKLU9QQ09ERV9CSU5BUlkg
PSAweDIKLU9QQ09ERV9DTE9TRSA9IDB4OAotT1BDT0RFX1BJTkcgPSAweDkKLU9QQ09ERV9QT05H
ID0gMHhhCi0KLSMgVVVJRHMgdXNlZCBieSBIeUJpIDA0IGFuZCBsYXRlciBvcGVuaW5nIGhhbmRz
aGFrZSBhbmQgZnJhbWUgbWFza2luZy4KLVdFQlNPQ0tFVF9BQ0NFUFRfVVVJRCA9ICcyNThFQUZB
NS1FOTE0LTQ3REEtOTVDQS1DNUFCMERDODVCMTEnCi0KLSMgT3BlbmluZyBoYW5kc2hha2UgaGVh
ZGVyIG5hbWVzIGFuZCBleHBlY3RlZCB2YWx1ZXMuCi1VUEdSQURFX0hFQURFUiA9ICdVcGdyYWRl
JwotV0VCU09DS0VUX1VQR1JBREVfVFlQRSA9ICd3ZWJzb2NrZXQnCi1XRUJTT0NLRVRfVVBHUkFE
RV9UWVBFX0hJWElFNzUgPSAnV2ViU29ja2V0JwotQ09OTkVDVElPTl9IRUFERVIgPSAnQ29ubmVj
dGlvbicKLVVQR1JBREVfQ09OTkVDVElPTl9UWVBFID0gJ1VwZ3JhZGUnCi1IT1NUX0hFQURFUiA9
ICdIb3N0JwotT1JJR0lOX0hFQURFUiA9ICdPcmlnaW4nCi1TRUNfV0VCU09DS0VUX09SSUdJTl9I
RUFERVIgPSAnU2VjLVdlYlNvY2tldC1PcmlnaW4nCi1TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIg
PSAnU2VjLVdlYlNvY2tldC1LZXknCi1TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIgPSAnU2Vj
LVdlYlNvY2tldC1BY2NlcHQnCi1TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSID0gJ1NlYy1X
ZWJTb2NrZXQtVmVyc2lvbicKLVNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSID0gJ1NlYy1X
ZWJTb2NrZXQtUHJvdG9jb2wnCi1TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSID0gJ1Nl
Yy1XZWJTb2NrZXQtRXh0ZW5zaW9ucycKLVNFQ19XRUJTT0NLRVRfRFJBRlRfSEVBREVSID0gJ1Nl
Yy1XZWJTb2NrZXQtRHJhZnQnCi1TRUNfV0VCU09DS0VUX0tFWTFfSEVBREVSID0gJ1NlYy1XZWJT
b2NrZXQtS2V5MScKLVNFQ19XRUJTT0NLRVRfS0VZMl9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1L
ZXkyJwotU0VDX1dFQlNPQ0tFVF9MT0NBVElPTl9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1Mb2Nh
dGlvbicKLQotIyBFeHRlbnNpb25zCi1ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiA9ICdkZWZsYXRl
LWZyYW1lJwotUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTiA9ICdwZXJtZXNzYWdlLWRlZmxh
dGUnCi1YX1dFQktJVF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiA9ICd4LXdlYmtpdC1kZWZsYXRl
LWZyYW1lJwotTVVYX0VYVEVOU0lPTiA9ICdtdXhfRE9fTk9UX1VTRScKLQotIyBTdGF0dXMgY29k
ZXMKLSMgQ29kZSBTVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVELCBTVEFUVVNfQUJOT1JNQUxfQ0xP
U1VSRSwgYW5kCi0jIFNUQVRVU19UTFNfSEFORFNIQUtFIGFyZSBwc2V1ZG8gY29kZXMgdG8gaW5k
aWNhdGUgc3BlY2lmaWMgZXJyb3IgY2FzZXMuCi0jIENvdWxkIG5vdCBiZSB1c2VkIGZvciBjb2Rl
cyBpbiBhY3R1YWwgY2xvc2luZyBmcmFtZXMuCi0jIEFwcGxpY2F0aW9uIGxldmVsIGVycm9ycyBt
dXN0IHVzZSBjb2RlcyBpbiB0aGUgcmFuZ2UKLSMgU1RBVFVTX1VTRVJfUkVHSVNURVJFRF9CQVNF
IHRvIFNUQVRVU19VU0VSX1BSSVZBVEVfTUFYLiBUaGUgY29kZXMgaW4gdGhlCi0jIHJhbmdlIFNU
QVRVU19VU0VSX1JFR0lTVEVSRURfQkFTRSB0byBTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX01BWCBh
cmUgbWFuYWdlZAotIyBieSBJQU5BLiBVc3VhbGx5IGFwcGxpY2F0aW9uIG11c3QgZGVmaW5lIHVz
ZXIgcHJvdG9jb2wgbGV2ZWwgZXJyb3JzIGluIHRoZQotIyByYW5nZSBTVEFUVVNfVVNFUl9QUklW
QVRFX0JBU0UgdG8gU1RBVFVTX1VTRVJfUFJJVkFURV9NQVguCi1TVEFUVVNfTk9STUFMX0NMT1NV
UkUgPSAxMDAwCi1TVEFUVVNfR09JTkdfQVdBWSA9IDEwMDEKLVNUQVRVU19QUk9UT0NPTF9FUlJP
UiA9IDEwMDIKLVNUQVRVU19VTlNVUFBPUlRFRF9EQVRBID0gMTAwMwotU1RBVFVTX05PX1NUQVRV
U19SRUNFSVZFRCA9IDEwMDUKLVNUQVRVU19BQk5PUk1BTF9DTE9TVVJFID0gMTAwNgotU1RBVFVT
X0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBID0gMTAwNwotU1RBVFVTX1BPTElDWV9WSU9MQVRJ
T04gPSAxMDA4Ci1TVEFUVVNfTUVTU0FHRV9UT09fQklHID0gMTAwOQotU1RBVFVTX01BTkRBVE9S
WV9FWFRFTlNJT04gPSAxMDEwCi1TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IgPSAxMDEx
Ci1TVEFUVVNfVExTX0hBTkRTSEFLRSA9IDEwMTUKLVNUQVRVU19VU0VSX1JFR0lTVEVSRURfQkFT
RSA9IDMwMDAKLVNUQVRVU19VU0VSX1JFR0lTVEVSRURfTUFYID0gMzk5OQotU1RBVFVTX1VTRVJf
UFJJVkFURV9CQVNFID0gNDAwMAotU1RBVFVTX1VTRVJfUFJJVkFURV9NQVggPSA0OTk5Ci0jIEZv
bGxvd2luZyBkZWZpbml0aW9ucyBhcmUgYWxpYXNlcyB0byBrZWVwIGNvbXBhdGliaWxpdHkuIEFw
cGxpY2F0aW9ucyBtdXN0Ci0jIG5vdCB1c2UgdGhlc2Ugb2Jzb2xldGVkIGRlZmluaXRpb25zIGFu
eW1vcmUuCi1TVEFUVVNfTk9STUFMID0gU1RBVFVTX05PUk1BTF9DTE9TVVJFCi1TVEFUVVNfVU5T
VVBQT1JURUQgPSBTVEFUVVNfVU5TVVBQT1JURURfREFUQQotU1RBVFVTX0NPREVfTk9UX0FWQUlM
QUJMRSA9IFNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQKLVNUQVRVU19BQk5PUk1BTF9DTE9TRSA9
IFNUQVRVU19BQk5PUk1BTF9DTE9TVVJFCi1TVEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlMT0FEID0g
U1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBCi1TVEFUVVNfTUFOREFUT1JZX0VYVCA9
IFNUQVRVU19NQU5EQVRPUllfRVhURU5TSU9OCi0KLSMgSFRUUCBzdGF0dXMgY29kZXMKLUhUVFBf
U1RBVFVTX0JBRF9SRVFVRVNUID0gNDAwCi1IVFRQX1NUQVRVU19GT1JCSURERU4gPSA0MDMKLUhU
VFBfU1RBVFVTX05PVF9GT1VORCA9IDQwNAotCi0KLWRlZiBpc19jb250cm9sX29wY29kZShvcGNv
ZGUpOgotICAgIHJldHVybiAob3Bjb2RlID4+IDMpID09IDEKLQotCi1jbGFzcyBFeHRlbnNpb25Q
YXJhbWV0ZXIob2JqZWN0KToKLQotICAgICIiIlRoaXMgaXMgZXhjaGFuZ2VkIG9uIGV4dGVuc2lv
biBuZWdvdGlhdGlvbiBpbiBvcGVuaW5nIGhhbmRzaGFrZS4iIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBuYW1lKToKLSAgICAgICAgc2VsZi5fbmFtZSA9IG5hbWUKLSAgICAgICAgIyBUT0RP
KHR5b3NoaW5vKTogQ2hhbmdlIHRoZSBkYXRhIHN0cnVjdHVyZSB0byBtb3JlIGVmZmljaWVudCBv
bmUgc3VjaAotICAgICAgICAjIGFzIGRpY3Qgd2hlbiB0aGUgc3BlYyBjaGFuZ2VzIHRvIHNheSBs
aWtlCi0gICAgICAgICMgLSBQYXJhbWV0ZXIgbmFtZXMgbXVzdCBiZSB1bmlxdWUKLSAgICAgICAg
IyAtIFRoZSBvcmRlciBvZiBwYXJhbWV0ZXJzIGlzIG5vdCBzaWduaWZpY2FudAotICAgICAgICBz
ZWxmLl9wYXJhbWV0ZXJzID0gW10KLQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICAiIiJS
ZXR1cm4gdGhlIGV4dGVuc2lvbiBuYW1lLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fbmFtZQot
Ci0gICAgZGVmIGFkZF9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICAiIiJB
ZGQgYSBwYXJhbWV0ZXIuIiIiCi0gICAgICAgIHNlbGYuX3BhcmFtZXRlcnMuYXBwZW5kKChuYW1l
LCB2YWx1ZSkpCi0KLSAgICBkZWYgZ2V0X3BhcmFtZXRlcnMoc2VsZik6Ci0gICAgICAgICIiIlJl
dHVybiB0aGUgcGFyYW1ldGVycy4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmFtZXRlcnMK
LQotICAgIGRlZiBnZXRfcGFyYW1ldGVyX25hbWVzKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4g
dGhlIG5hbWVzIG9mIHRoZSBwYXJhbWV0ZXJzLiIiIgotICAgICAgICByZXR1cm4gW25hbWUgZm9y
IG5hbWUsIHVudXNlZF92YWx1ZSBpbiBzZWxmLl9wYXJhbWV0ZXJzXQotCi0gICAgZGVmIGhhc19w
YXJhbWV0ZXIoc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIlRlc3QgaWYgYSBwYXJhbWV0ZXIgZXhp
c3RzLiIiIgotICAgICAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW1fdmFsdWUgaW4gc2VsZi5fcGFy
YW1ldGVyczoKLSAgICAgICAgICAgIGlmIHBhcmFtX25hbWUgPT0gbmFtZToKLSAgICAgICAgICAg
ICAgICByZXR1cm4gVHJ1ZQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBnZXRfcGFy
YW1ldGVyX3ZhbHVlKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiJHZXQgdGhlIHZhbHVlIG9mIGEg
c3BlY2lmaWMgcGFyYW1ldGVyLiIiIgotICAgICAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW1fdmFs
dWUgaW4gc2VsZi5fcGFyYW1ldGVyczoKLSAgICAgICAgICAgIGlmIHBhcmFtX25hbWUgPT0gbmFt
ZToKLSAgICAgICAgICAgICAgICByZXR1cm4gcGFyYW1fdmFsdWUKLQotCi1jbGFzcyBFeHRlbnNp
b25QYXJzaW5nRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0KLSAgICAiIiJFeGNlcHRpb24gdG8gaGFu
ZGxlIGVycm9ycyBpbiBleHRlbnNpb24gcGFyc2luZy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBuYW1lKToKLSAgICAgICAgc3VwZXIoRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbiwgc2Vs
ZikuX19pbml0X18obmFtZSkKLQotCi1kZWYgX3BhcnNlX2V4dGVuc2lvbl9wYXJhbShzdGF0ZSwg
ZGVmaW5pdGlvbik6Ci0gICAgcGFyYW1fbmFtZSA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90
b2tlbihzdGF0ZSkKLQotICAgIGlmIHBhcmFtX25hbWUgaXMgTm9uZToKLSAgICAgICAgcmFpc2Ug
RXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbignTm8gdmFsaWQgcGFyYW1ldGVyIG5hbWUgZm91bmQn
KQotCi0gICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgaWYg
bm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJpbmcoc3RhdGUsICc9Jyk6Ci0gICAgICAg
IGRlZmluaXRpb24uYWRkX3BhcmFtZXRlcihwYXJhbV9uYW1lLCBOb25lKQotICAgICAgICByZXR1
cm4KLQotICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICMg
VE9ETyh0eW9zaGlubyk6IEFkZCBjb2RlIHRvIHZhbGlkYXRlIHRoYXQgcGFyc2VkIHBhcmFtX3Zh
bHVlIGlzIHRva2VuCi0gICAgcGFyYW1fdmFsdWUgPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVf
dG9rZW5fb3JfcXVvdGVkX3N0cmluZyhzdGF0ZSkKLSAgICBpZiBwYXJhbV92YWx1ZSBpcyBOb25l
OgotICAgICAgICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKAotICAgICAgICAgICAg
J05vIHZhbGlkIHBhcmFtZXRlciB2YWx1ZSBmb3VuZCBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlIG9m
ICcKLSAgICAgICAgICAgICdwYXJhbWV0ZXIgJXInICUgcGFyYW1fbmFtZSkKLQotICAgIGRlZmlu
aXRpb24uYWRkX3BhcmFtZXRlcihwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSkKLQotCi1kZWYgX3Bh
cnNlX2V4dGVuc2lvbihzdGF0ZSk6Ci0gICAgZXh0ZW5zaW9uX3Rva2VuID0gaHR0cF9oZWFkZXJf
dXRpbC5jb25zdW1lX3Rva2VuKHN0YXRlKQotICAgIGlmIGV4dGVuc2lvbl90b2tlbiBpcyBOb25l
OgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZXh0ZW5zaW9uID0gRXh0ZW5zaW9uUGFyYW1l
dGVyKGV4dGVuc2lvbl90b2tlbikKLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGh0dHBfaGVh
ZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICAgICBpZiBub3QgaHR0cF9oZWFk
ZXJfdXRpbC5jb25zdW1lX3N0cmluZyhzdGF0ZSwgJzsnKToKLSAgICAgICAgICAgIGJyZWFrCi0K
LSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIF9wYXJzZV9leHRlbnNpb25fcGFyYW0oc3RhdGUsIGV4dGVuc2lv
bikKLSAgICAgICAgZXhjZXB0IEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24gYXMgZToKLSAgICAg
ICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J0ZhaWxlZCB0byBwYXJzZSBwYXJhbWV0ZXIgZm9yICVyICglciknICUKLSAgICAgICAgICAgICAg
ICAoZXh0ZW5zaW9uX3Rva2VuLCBlKSkKLQotICAgIHJldHVybiBleHRlbnNpb24KLQotCi1kZWYg
cGFyc2VfZXh0ZW5zaW9ucyhkYXRhKToKLSAgICAiIiJQYXJzZSBTZWMtV2ViU29ja2V0LUV4dGVu
c2lvbnMgaGVhZGVyIHZhbHVlLgotCi0gICAgUmV0dXJucyBhIGxpc3Qgb2YgRXh0ZW5zaW9uUGFy
YW1ldGVyIG9iamVjdHMuCi0gICAgTGVhZGluZyBMV1NlcyBtdXN0IGJlIHRyaW1tZWQuCi0gICAg
IiIiCi0gICAgc3RhdGUgPSBodHRwX2hlYWRlcl91dGlsLlBhcnNpbmdTdGF0ZShkYXRhKQotCi0g
ICAgZXh0ZW5zaW9uX2xpc3QgPSBbXQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGV4dGVuc2lv
biA9IF9wYXJzZV9leHRlbnNpb24oc3RhdGUpCi0gICAgICAgIGlmIGV4dGVuc2lvbiBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIGV4dGVuc2lvbl9saXN0LmFwcGVuZChleHRlbnNpb24pCi0KLSAg
ICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgICAgIGlm
IGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkgaXMgTm9uZToKLSAgICAgICAgICAgIGJyZWFr
Ci0KLSAgICAgICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJpbmcoc3RhdGUs
ICcsJyk6Ci0gICAgICAgICAgICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICdGYWlsZWQgdG8gcGFyc2UgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhl
YWRlcjogJwotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBhIGNvbW1hIGJ1dCBmb3VuZCAlcicg
JQotICAgICAgICAgICAgICAgIGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkpCi0KLSAgICAg
ICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgaWYgbGVuKGV4
dGVuc2lvbl9saXN0KSA9PSAwOgotICAgICAgICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0
aW9uKAotICAgICAgICAgICAgJ05vIHZhbGlkIGV4dGVuc2lvbiBlbnRyeSBmb3VuZCcpCi0KLSAg
ICByZXR1cm4gZXh0ZW5zaW9uX2xpc3QKLQotCi1kZWYgZm9ybWF0X2V4dGVuc2lvbihleHRlbnNp
b24pOgotICAgICIiIkZvcm1hdCBhbiBFeHRlbnNpb25QYXJhbWV0ZXIgb2JqZWN0LiIiIgotICAg
IGZvcm1hdHRlZF9wYXJhbXMgPSBbZXh0ZW5zaW9uLm5hbWUoKV0KLSAgICBmb3IgcGFyYW1fbmFt
ZSwgcGFyYW1fdmFsdWUgaW4gZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJzKCk6Ci0gICAgICAgIGlm
IHBhcmFtX3ZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAgICBmb3JtYXR0ZWRfcGFyYW1zLmFwcGVu
ZChwYXJhbV9uYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcXVvdGVkX3ZhbHVlID0g
aHR0cF9oZWFkZXJfdXRpbC5xdW90ZV9pZl9uZWNlc3NhcnkocGFyYW1fdmFsdWUpCi0gICAgICAg
ICAgICBmb3JtYXR0ZWRfcGFyYW1zLmFwcGVuZCgnJXM9JXMnICUgKHBhcmFtX25hbWUsIHF1b3Rl
ZF92YWx1ZSkpCi0gICAgcmV0dXJuICc7ICcuam9pbihmb3JtYXR0ZWRfcGFyYW1zKQotCi0KLWRl
ZiBmb3JtYXRfZXh0ZW5zaW9ucyhleHRlbnNpb25fbGlzdCk6Ci0gICAgIiIiRm9ybWF0IGEgbGlz
dCBvZiBFeHRlbnNpb25QYXJhbWV0ZXIgb2JqZWN0cy4iIiIKLSAgICBmb3JtYXR0ZWRfZXh0ZW5z
aW9uX2xpc3QgPSBbXQotICAgIGZvciBleHRlbnNpb24gaW4gZXh0ZW5zaW9uX2xpc3Q6Ci0gICAg
ICAgIGZvcm1hdHRlZF9leHRlbnNpb25fbGlzdC5hcHBlbmQoZm9ybWF0X2V4dGVuc2lvbihleHRl
bnNpb24pKQotICAgIHJldHVybiAnLCAnLmpvaW4oZm9ybWF0dGVkX2V4dGVuc2lvbl9saXN0KQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
ZGlzcGF0Y2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjU5MWZlOGI5ZTllYWYyZThlYjRkNmQ4YmNmY2JhNzJlMDMw
YmI0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDM5MyArMCww
IEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJEaXNwYXRjaCBXZWJTb2NrZXQgcmVxdWVzdC4K
LSIiIgotCi0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCByZQotCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
aGFuZHNoYWtlCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRpbAotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IG11eAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHN0cmVh
bQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1fU09VUkNFX1BBVEhfUEFU
VEVSTiA9IHJlLmNvbXBpbGUocicoP2kpX3dzaFwucHkkJykKLV9TT1VSQ0VfU1VGRklYID0gJ193
c2gucHknCi1fRE9fRVhUUkFfSEFORFNIQUtFX0hBTkRMRVJfTkFNRSA9ICd3ZWJfc29ja2V0X2Rv
X2V4dHJhX2hhbmRzaGFrZScKLV9UUkFOU0ZFUl9EQVRBX0hBTkRMRVJfTkFNRSA9ICd3ZWJfc29j
a2V0X3RyYW5zZmVyX2RhdGEnCi1fUEFTU0lWRV9DTE9TSU5HX0hBTkRTSEFLRV9IQU5ETEVSX05B
TUUgPSAoCi0gICAgJ3dlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZScpCi0KLQot
Y2xhc3MgRGlzcGF0Y2hFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJFeGNlcHRpb24gaW4g
ZGlzcGF0Y2hpbmcgV2ViU29ja2V0IHJlcXVlc3QuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbmFtZSwgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19OT1RfRk9VTkQpOgotICAgICAgICBz
dXBlcihEaXNwYXRjaEV4Y2VwdGlvbiwgc2VsZikuX19pbml0X18obmFtZSkKLSAgICAgICAgc2Vs
Zi5zdGF0dXMgPSBzdGF0dXMKLQotCi1kZWYgX2RlZmF1bHRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRz
aGFrZV9oYW5kbGVyKHJlcXVlc3QpOgotICAgICIiIkRlZmF1bHQgd2ViX3NvY2tldF9wYXNzaXZl
X2Nsb3NpbmdfaGFuZHNoYWtlIGhhbmRsZXIuIiIiCi0KLSAgICByZXR1cm4gY29tbW9uLlNUQVRV
U19OT1JNQUxfQ0xPU1VSRSwgJycKLQotCi1kZWYgX25vcm1hbGl6ZV9wYXRoKHBhdGgpOgotICAg
ICIiIk5vcm1hbGl6ZSBwYXRoLgotCi0gICAgQXJnczoKLSAgICAgICAgcGF0aDogdGhlIHBhdGgg
dG8gbm9ybWFsaXplLgotCi0gICAgUGF0aCBpcyBjb252ZXJ0ZWQgdG8gdGhlIGFic29sdXRlIHBh
dGguCi0gICAgVGhlIGlucHV0IHBhdGggY2FuIHVzZSBlaXRoZXIgJ1xcJyBvciAnLycgYXMgdGhl
IHNlcGFyYXRvci4KLSAgICBUaGUgbm9ybWFsaXplZCBwYXRoIGFsd2F5cyB1c2VzICcvJyByZWdh
cmRsZXNzIG9mIHRoZSBwbGF0Zm9ybS4KLSAgICAiIiIKLQotICAgIHBhdGggPSBwYXRoLnJlcGxh
Y2UoJ1xcJywgb3MucGF0aC5zZXApCi0gICAgcGF0aCA9IG9zLnBhdGgucmVhbHBhdGgocGF0aCkK
LSAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCdcXCcsICcvJykKLSAgICByZXR1cm4gcGF0aAotCi0K
LWRlZiBfY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKGJhc2VfZGlyKToKLSAgICAi
IiJSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBjb252ZXJ0cyB0aGUgcGF0aCBvZiBhIFdlYlNvY2tl
dCBoYW5kbGVyIHNvdXJjZQotICAgIGZpbGUgdG8gYSByZXNvdXJjZSBzdHJpbmcgYnkgcmVtb3Zp
bmcgdGhlIHBhdGggdG8gdGhlIGJhc2UgZGlyZWN0b3J5IGZyb20KLSAgICBpdHMgaGVhZCwgcmVt
b3ZpbmcgX1NPVVJDRV9TVUZGSVggZnJvbSBpdHMgdGFpbCwgYW5kIHJlcGxhY2luZyBwYXRoCi0g
ICAgc2VwYXJhdG9ycyBpbiBpdCB3aXRoICcvJy4KLQotICAgIEFyZ3M6Ci0gICAgICAgIGJhc2Vf
ZGlyOiB0aGUgcGF0aCB0byB0aGUgYmFzZSBkaXJlY3RvcnkuCi0gICAgIiIiCi0KLSAgICBiYXNl
X2RpciA9IF9ub3JtYWxpemVfcGF0aChiYXNlX2RpcikKLQotICAgIGJhc2VfbGVuID0gbGVuKGJh
c2VfZGlyKQotICAgIHN1ZmZpeF9sZW4gPSBsZW4oX1NPVVJDRV9TVUZGSVgpCi0KLSAgICBkZWYg
Y29udmVydGVyKHBhdGgpOgotICAgICAgICBpZiBub3QgcGF0aC5lbmRzd2l0aChfU09VUkNFX1NV
RkZJWCk6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAjIF9ub3JtYWxpemVfcGF0
aCBtdXN0IG5vdCBiZSB1c2VkIGJlY2F1c2UgcmVzb2x2aW5nIHN5bWxpbmsgYnJlYWtzCi0gICAg
ICAgICMgZm9sbG93aW5nIHBhdGggY2hlY2suCi0gICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2Uo
J1xcJywgJy8nKQotICAgICAgICBpZiBub3QgcGF0aC5zdGFydHN3aXRoKGJhc2VfZGlyKToKLSAg
ICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBwYXRoW2Jhc2VfbGVuOi1zdWZm
aXhfbGVuXQotCi0gICAgcmV0dXJuIGNvbnZlcnRlcgotCi0KLWRlZiBfZW51bWVyYXRlX2hhbmRs
ZXJfZmlsZV9wYXRocyhkaXJlY3RvcnkpOgotICAgICIiIlJldHVybnMgYSBnZW5lcmF0b3IgdGhh
dCBlbnVtZXJhdGVzIFdlYlNvY2tldCBIYW5kbGVyIHNvdXJjZSBmaWxlIG5hbWVzCi0gICAgaW4g
dGhlIGdpdmVuIGRpcmVjdG9yeS4KLSAgICAiIiIKLQotICAgIGZvciByb290LCB1bnVzZWRfZGly
cywgZmlsZXMgaW4gb3Mud2FsayhkaXJlY3RvcnkpOgotICAgICAgICBmb3IgYmFzZSBpbiBmaWxl
czoKLSAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4ocm9vdCwgYmFzZSkKLSAgICAgICAg
ICAgIGlmIF9TT1VSQ0VfUEFUSF9QQVRURVJOLnNlYXJjaChwYXRoKToKLSAgICAgICAgICAgICAg
ICB5aWVsZCBwYXRoCi0KLQotY2xhc3MgX0hhbmRsZXJTdWl0ZShvYmplY3QpOgotICAgICIiIkEg
aGFuZGxlciBzdWl0ZSBob2xkZXIgY2xhc3MuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
ZG9fZXh0cmFfaGFuZHNoYWtlLCB0cmFuc2Zlcl9kYXRhLAotICAgICAgICAgICAgICAgICBwYXNz
aXZlX2Nsb3NpbmdfaGFuZHNoYWtlKToKLSAgICAgICAgc2VsZi5kb19leHRyYV9oYW5kc2hha2Ug
PSBkb19leHRyYV9oYW5kc2hha2UKLSAgICAgICAgc2VsZi50cmFuc2Zlcl9kYXRhID0gdHJhbnNm
ZXJfZGF0YQotICAgICAgICBzZWxmLnBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UgPSBwYXNzaXZl
X2Nsb3NpbmdfaGFuZHNoYWtlCi0KLQotZGVmIF9zb3VyY2VfaGFuZGxlcl9maWxlKGhhbmRsZXJf
ZGVmaW5pdGlvbik6Ci0gICAgIiIiU291cmNlIGEgaGFuZGxlciBkZWZpbml0aW9uIHN0cmluZy4K
LQotICAgIEFyZ3M6Ci0gICAgICAgIGhhbmRsZXJfZGVmaW5pdGlvbjogYSBzdHJpbmcgY29udGFp
bmluZyBQeXRob24gc3RhdGVtZW50cyB0aGF0IGRlZmluZQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhhbmRsZXIgZnVuY3Rpb25zLgotICAgICIiIgotCi0gICAgZ2xvYmFsX2RpYyA9IHt9
Ci0gICAgdHJ5OgotICAgICAgICBleGVjKGhhbmRsZXJfZGVmaW5pdGlvbiwgZ2xvYmFsX2RpYykK
LSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbign
RXJyb3IgaW4gc291cmNpbmcgaGFuZGxlcjonICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKLSAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNo
YWtlX2hhbmRsZXIgPSBOb25lCi0gICAgdHJ5OgotICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFu
ZHNoYWtlX2hhbmRsZXIgPSBfZXh0cmFjdF9oYW5kbGVyKAotICAgICAgICAgICAgZ2xvYmFsX2Rp
YywgX1BBU1NJVkVfQ0xPU0lOR19IQU5EU0hBS0VfSEFORExFUl9OQU1FKQotICAgIGV4Y2VwdCBF
eGNlcHRpb246Ci0gICAgICAgIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlciA9ICgK
LSAgICAgICAgICAgIF9kZWZhdWx0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcikK
LSAgICByZXR1cm4gX0hhbmRsZXJTdWl0ZSgKLSAgICAgICAgX2V4dHJhY3RfaGFuZGxlcihnbG9i
YWxfZGljLCBfRE9fRVhUUkFfSEFORFNIQUtFX0hBTkRMRVJfTkFNRSksCi0gICAgICAgIF9leHRy
YWN0X2hhbmRsZXIoZ2xvYmFsX2RpYywgX1RSQU5TRkVSX0RBVEFfSEFORExFUl9OQU1FKSwKLSAg
ICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyKQotCi0KLWRlZiBfZXh0cmFj
dF9oYW5kbGVyKGRpYywgbmFtZSk6Ci0gICAgIiIiRXh0cmFjdHMgYSBjYWxsYWJsZSB3aXRoIHRo
ZSBzcGVjaWZpZWQgbmFtZSBmcm9tIHRoZSBnaXZlbiBkaWN0aW9uYXJ5Ci0gICAgZGljLgotICAg
ICIiIgotCi0gICAgaWYgbmFtZSBub3QgaW4gZGljOgotICAgICAgICByYWlzZSBEaXNwYXRjaEV4
Y2VwdGlvbignJXMgaXMgbm90IGRlZmluZWQuJyAlIG5hbWUpCi0gICAgaGFuZGxlciA9IGRpY1tu
YW1lXQotICAgIGlmIG5vdCBjYWxsYWJsZShoYW5kbGVyKToKLSAgICAgICAgcmFpc2UgRGlzcGF0
Y2hFeGNlcHRpb24oJyVzIGlzIG5vdCBjYWxsYWJsZS4nICUgbmFtZSkKLSAgICByZXR1cm4gaGFu
ZGxlcgotCi0KLWNsYXNzIERpc3BhdGNoZXIob2JqZWN0KToKLSAgICAiIiJEaXNwYXRjaGVzIFdl
YlNvY2tldCByZXF1ZXN0cy4KLQotICAgIFRoaXMgY2xhc3MgbWFpbnRhaW5zIGEgbWFwIGZyb20g
cmVzb3VyY2UgbmFtZSB0byBoYW5kbGVycy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXygK
LSAgICAgICAgc2VsZiwgcm9vdF9kaXIsIHNjYW5fZGlyPU5vbmUsCi0gICAgICAgIGFsbG93X2hh
bmRsZXJzX291dHNpZGVfcm9vdF9kaXI9VHJ1ZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBp
bnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcm9vdF9kaXI6IFRoZSBkaXJl
Y3Rvcnkgd2hlcmUgaGFuZGxlciBkZWZpbml0aW9uIGZpbGVzIGFyZQotICAgICAgICAgICAgICAg
ICAgICAgIHBsYWNlZC4KLSAgICAgICAgICAgIHNjYW5fZGlyOiBUaGUgZGlyZWN0b3J5IHdoZXJl
IGhhbmRsZXIgZGVmaW5pdGlvbiBmaWxlcyBhcmUKLSAgICAgICAgICAgICAgICAgICAgICBzZWFy
Y2hlZC4gc2Nhbl9kaXIgbXVzdCBiZSBhIGRpcmVjdG9yeSB1bmRlciByb290X2RpciwKLSAgICAg
ICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgcm9vdF9kaXIgaXRzZWxmLiAgSWYgc2Nhbl9kaXIg
aXMgTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICByb290X2RpciBpcyB1c2VkIGFzIHNjYW5f
ZGlyLiBzY2FuX2RpciBjYW4gYmUgdXNlZnVsCi0gICAgICAgICAgICAgICAgICAgICAgaW4gc2F2
aW5nIHNjYW4gdGltZSB3aGVuIHJvb3RfZGlyIGNvbnRhaW5zIG1hbnkKLSAgICAgICAgICAgICAg
ICAgICAgICBzdWJkaXJlY3Rvcmllcy4KLSAgICAgICAgICAgIGFsbG93X2hhbmRsZXJzX291dHNp
ZGVfcm9vdF9kaXI6IFNjYW5zIGhhbmRsZXIgZmlsZXMgZXZlbiBpZiB0aGVpcgotICAgICAgICAg
ICAgICAgICAgICAgIGNhbm9uaWNhbCBwYXRoIGlzIG5vdCB1bmRlciByb290X2Rpci4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNl
bGYpCi0KLSAgICAgICAgc2VsZi5faGFuZGxlcl9zdWl0ZV9tYXAgPSB7fQotICAgICAgICBzZWxm
Ll9zb3VyY2Vfd2FybmluZ3MgPSBbXQotICAgICAgICBpZiBzY2FuX2RpciBpcyBOb25lOgotICAg
ICAgICAgICAgc2Nhbl9kaXIgPSByb290X2RpcgotICAgICAgICBpZiBub3Qgb3MucGF0aC5yZWFs
cGF0aChzY2FuX2Rpcikuc3RhcnRzd2l0aCgKLSAgICAgICAgICAgICAgICBvcy5wYXRoLnJlYWxw
YXRoKHJvb3RfZGlyKSk6Ci0gICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignc2Nh
bl9kaXI6JXMgbXVzdCBiZSBhIGRpcmVjdG9yeSB1bmRlciAnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAncm9vdF9kaXI6JXMuJyAlIChzY2FuX2Rpciwgcm9vdF9kaXIpKQot
ICAgICAgICBzZWxmLl9zb3VyY2VfaGFuZGxlcl9maWxlc19pbl9kaXIoCi0gICAgICAgICAgICBy
b290X2Rpciwgc2Nhbl9kaXIsIGFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIpCi0KLSAg
ICBkZWYgYWRkX3Jlc291cmNlX3BhdGhfYWxpYXMoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYWxpYXNfcmVzb3VyY2VfcGF0aCwgZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCk6
Ci0gICAgICAgICIiIkFkZCByZXNvdXJjZSBwYXRoIGFsaWFzLgotCi0gICAgICAgIE9uY2UgYWRk
ZWQsIHJlcXVlc3QgdG8gYWxpYXNfcmVzb3VyY2VfcGF0aCB3b3VsZCBiZSBoYW5kbGVkIGJ5Ci0g
ICAgICAgIGhhbmRsZXIgcmVnaXN0ZXJlZCBmb3IgZXhpc3RpbmdfcmVzb3VyY2VfcGF0aC4KLQot
ICAgICAgICBBcmdzOgotICAgICAgICAgICAgYWxpYXNfcmVzb3VyY2VfcGF0aDogYWxpYXMgcmVz
b3VyY2UgcGF0aAotICAgICAgICAgICAgZXhpc3RpbmdfcmVzb3VyY2VfcGF0aDogZXhpc3Rpbmcg
cmVzb3VyY2UgcGF0aAotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaGFu
ZGxlcl9zdWl0ZSA9IHNlbGYuX2hhbmRsZXJfc3VpdGVfbWFwW2V4aXN0aW5nX3Jlc291cmNlX3Bh
dGhdCi0gICAgICAgICAgICBzZWxmLl9oYW5kbGVyX3N1aXRlX21hcFthbGlhc19yZXNvdXJjZV9w
YXRoXSA9IGhhbmRsZXJfc3VpdGUKLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAg
ICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ05vIGhhbmRsZXIgZm9yOiAlcicgJQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCkKLQot
ICAgIGRlZiBzb3VyY2Vfd2FybmluZ3Moc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB3YXJuaW5n
cyBpbiBzb3VyY2luZyBoYW5kbGVycy4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fc291cmNl
X3dhcm5pbmdzCi0KLSAgICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYsIHJlcXVlc3QpOgot
ICAgICAgICAiIiJEbyBleHRyYSBjaGVja2luZyBpbiBXZWJTb2NrZXQgaGFuZHNoYWtlLgotCi0g
ICAgICAgIFNlbGVjdCBhIGhhbmRsZXIgYmFzZWQgb24gcmVxdWVzdC51cmkgYW5kIGNhbGwgaXRz
Ci0gICAgICAgIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIGZ1bmN0aW9uLgotCi0gICAg
ICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0KLSAg
ICAgICAgUmFpc2VzOgotICAgICAgICAgICAgRGlzcGF0Y2hFeGNlcHRpb246IHdoZW4gaGFuZGxl
ciB3YXMgbm90IGZvdW5kCi0gICAgICAgICAgICBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uOiB3aGVu
IHVzZXIgaGFuZGxlciBhYm9ydCBjb25uZWN0aW9uCi0gICAgICAgICAgICBIYW5kc2hha2VFeGNl
cHRpb246IHdoZW4gb3BlbmluZyBoYW5kc2hha2UgZmFpbGVkCi0gICAgICAgICIiIgotCi0gICAg
ICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxmLmdldF9oYW5kbGVyX3N1aXRlKHJlcXVlc3Qud3NfcmVz
b3VyY2UpCi0gICAgICAgIGlmIGhhbmRsZXJfc3VpdGUgaXMgTm9uZToKLSAgICAgICAgICAgIHJh
aXNlIERpc3BhdGNoRXhjZXB0aW9uKCdObyBoYW5kbGVyIGZvcjogJXInICUgcmVxdWVzdC53c19y
ZXNvdXJjZSkKLSAgICAgICAgZG9fZXh0cmFfaGFuZHNoYWtlXyA9IGhhbmRsZXJfc3VpdGUuZG9f
ZXh0cmFfaGFuZHNoYWtlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRvX2V4dHJhX2hhbmRz
aGFrZV8ocmVxdWVzdCkKLSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhj
ZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAjIFJlLXJhaXNlIHRvIHRlbGwgdGhlIGNhbGxlciBv
ZiB0aGlzIGZ1bmN0aW9uIHRvIGZpbmlzaCB0aGlzCi0gICAgICAgICAgICAjIGNvbm5lY3Rpb24g
d2l0aG91dCBzZW5kaW5nIGFueSBlcnJvci4KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnJXMnLCB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAgICAgICAgcmFpc2UKLSAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgdXRpbC5wcmVwZW5kX21lc3Nh
Z2VfdG9fZXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnJXMgcmFpc2VkIGV4Y2VwdGlv
biBmb3IgJXM6ICcgJSAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgX0RPX0VYVFJBX0hB
TkRTSEFLRV9IQU5ETEVSX05BTUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dC53c19yZXNvdXJjZSksCi0gICAgICAgICAgICAgICAgICAgIGUpCi0gICAgICAgICAgICByYWlz
ZSBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uKGUsIGNvbW1vbi5IVFRQX1NUQVRVU19GT1JC
SURERU4pCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShzZWxmLCByZXF1ZXN0KToKLSAgICAgICAg
IiIiTGV0IGEgaGFuZGxlciB0cmFuc2Zlcl9kYXRhIHdpdGggYSBXZWJTb2NrZXQgY2xpZW50Lgot
Ci0gICAgICAgIFNlbGVjdCBhIGhhbmRsZXIgYmFzZWQgb24gcmVxdWVzdC53c19yZXNvdXJjZSBh
bmQgY2FsbCBpdHMKLSAgICAgICAgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhIGZ1bmN0aW9uLgot
Ci0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3Qu
Ci0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgRGlzcGF0Y2hFeGNlcHRpb246IHdoZW4g
aGFuZGxlciB3YXMgbm90IGZvdW5kCi0gICAgICAgICAgICBBYm9ydGVkQnlVc2VyRXhjZXB0aW9u
OiB3aGVuIHVzZXIgaGFuZGxlciBhYm9ydCBjb25uZWN0aW9uCi0gICAgICAgICIiIgotCi0gICAg
ICAgICMgVE9ETyh0eW9zaGlubyk6IFRlcm1pbmF0ZSB1bmRlcmx5aW5nIFRDUCBjb25uZWN0aW9u
IGlmIHBvc3NpYmxlLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpZiBtdXgudXNlX211eChy
ZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBtdXguc3RhcnQocmVxdWVzdCwgc2VsZikKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0X2hh
bmRsZXJfc3VpdGUocmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAgICAgICAgICBpZiBoYW5k
bGVyX3N1aXRlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIERpc3BhdGNoRXhj
ZXB0aW9uKCdObyBoYW5kbGVyIGZvcjogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAgICAgICAgICB0
cmFuc2Zlcl9kYXRhXyA9IGhhbmRsZXJfc3VpdGUudHJhbnNmZXJfZGF0YQotICAgICAgICAgICAg
ICAgIHRyYW5zZmVyX2RhdGFfKHJlcXVlc3QpCi0KLSAgICAgICAgICAgIGlmIG5vdCByZXF1ZXN0
LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNs
b3NlX2Nvbm5lY3Rpb24oKQotICAgICAgICAjIENhdGNoIG5vbi1jcml0aWNhbCBleGNlcHRpb25z
IHRoZSBoYW5kbGVyIGRpZG4ndCBoYW5kbGUuCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJv
cnRlZEJ5VXNlckV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCclcycsIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAgICAgICAgICByYWlzZQotICAgICAg
ICBleGNlcHQgbXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJl
YW0uY2xvc2VfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICBjb21tb24uU1RBVFVTX0lOVEVS
TkFMX0VORFBPSU5UX0VSUk9SKQotICAgICAgICBleGNlcHQgbXNndXRpbC5JbnZhbGlkRnJhbWVF
eGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICMgSW52YWxpZEZyYW1lRXhjZXB0aW9uIG11c3Qg
YmUgY2F1Z2h0IGJlZm9yZQotICAgICAgICAgICAgIyBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2Vw
dGlvbiB0aGF0IGNhdGNoZXMgSW52YWxpZEZyYW1lRXhjZXB0aW9uLgotICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5j
bG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFUVVNfUFJPVE9DT0xfRVJST1IpCi0gICAgICAgIGV4
Y2VwdCBtc2d1dGlsLlVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJl
YW0uY2xvc2VfY29ubmVjdGlvbihjb21tb24uU1RBVFVTX1VOU1VQUE9SVEVEX0RBVEEpCi0gICAg
ICAgIGV4Y2VwdCBzdHJlYW0uSW52YWxpZFVURjhFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJl
YW0uY2xvc2VfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICBjb21tb24uU1RBVFVTX0lOVkFM
SURfRlJBTUVfUEFZTE9BRF9EQVRBKQotICAgICAgICBleGNlcHQgbXNndXRpbC5Db25uZWN0aW9u
VGVybWluYXRlZEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCclcycsIGUpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICMg
QW55IG90aGVyIGV4Y2VwdGlvbnMgYXJlIGZvcndhcmRlZCB0byB0aGUgY2FsbGVyIG9mIHRoaXMK
LSAgICAgICAgICAgICMgZnVuY3Rpb24uCi0gICAgICAgICAgICB1dGlsLnByZXBlbmRfbWVzc2Fn
ZV90b19leGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJyVzIHJhaXNlZCBleGNlcHRpb24gZm9y
ICVzOiAnICUgKAotICAgICAgICAgICAgICAgICAgICBfVFJBTlNGRVJfREFUQV9IQU5ETEVSX05B
TUUsIHJlcXVlc3Qud3NfcmVzb3VyY2UpLAotICAgICAgICAgICAgICAgIGUpCi0gICAgICAgICAg
ICByYWlzZQotCi0gICAgZGVmIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2Uoc2VsZiwgcmVxdWVz
dCk6Ci0gICAgICAgICIiIlByZXBhcmUgY29kZSBhbmQgcmVhc29uIGZvciByZXNwb25kaW5nIGNs
aWVudCBpbml0aWF0ZWQgY2xvc2luZwotICAgICAgICBoYW5kc2hha2UuCi0gICAgICAgICIiIgot
Ci0gICAgICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxmLmdldF9oYW5kbGVyX3N1aXRlKHJlcXVlc3Qu
d3NfcmVzb3VyY2UpCi0gICAgICAgIGlmIGhhbmRsZXJfc3VpdGUgaXMgTm9uZToKLSAgICAgICAg
ICAgIHJldHVybiBfZGVmYXVsdF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIocmVx
dWVzdCkKLSAgICAgICAgcmV0dXJuIGhhbmRsZXJfc3VpdGUucGFzc2l2ZV9jbG9zaW5nX2hhbmRz
aGFrZShyZXF1ZXN0KQotCi0gICAgZGVmIGdldF9oYW5kbGVyX3N1aXRlKHNlbGYsIHJlc291cmNl
KToKLSAgICAgICAgIiIiUmV0cmlldmVzIHR3byBoYW5kbGVycyAob25lIGZvciBleHRyYSBoYW5k
c2hha2UgcHJvY2Vzc2luZywgYW5kIG9uZQotICAgICAgICBmb3IgZGF0YSB0cmFuc2ZlcikgZm9y
IHRoZSBnaXZlbiByZXF1ZXN0IGFzIGEgSGFuZGxlclN1aXRlIG9iamVjdC4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgZnJhZ21lbnQgPSBOb25lCi0gICAgICAgIGlmICcjJyBpbiByZXNvdXJjZToK
LSAgICAgICAgICAgIHJlc291cmNlLCBmcmFnbWVudCA9IHJlc291cmNlLnNwbGl0KCcjJywgMSkK
LSAgICAgICAgaWYgJz8nIGluIHJlc291cmNlOgotICAgICAgICAgICAgcmVzb3VyY2UgPSByZXNv
dXJjZS5zcGxpdCgnPycsIDEpWzBdCi0gICAgICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxmLl9oYW5k
bGVyX3N1aXRlX21hcC5nZXQocmVzb3VyY2UpCi0gICAgICAgIGlmIGhhbmRsZXJfc3VpdGUgYW5k
IGZyYWdtZW50OgotICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ0ZyYWdtZW50
IGlkZW50aWZpZXJzIE1VU1QgTk9UIGJlIHVzZWQgb24gJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ1dlYlNvY2tldCBVUklzJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKLSAgICAgICAgcmV0
dXJuIGhhbmRsZXJfc3VpdGUKLQotICAgIGRlZiBfc291cmNlX2hhbmRsZXJfZmlsZXNfaW5fZGly
KAotICAgICAgICBzZWxmLCByb290X2Rpciwgc2Nhbl9kaXIsIGFsbG93X2hhbmRsZXJzX291dHNp
ZGVfcm9vdF9kaXIpOgotICAgICAgICAiIiJTb3VyY2UgYWxsIHRoZSBoYW5kbGVyIHNvdXJjZSBm
aWxlcyBpbiB0aGUgc2Nhbl9kaXIgZGlyZWN0b3J5LgotCi0gICAgICAgIFRoZSByZXNvdXJjZSBw
YXRoIGlzIGRldGVybWluZWQgcmVsYXRpdmUgdG8gcm9vdF9kaXIuCi0gICAgICAgICIiIgotCi0g
ICAgICAgICMgV2UgYnVpbGQgYSBtYXAgZnJvbSByZXNvdXJjZSB0byBoYW5kbGVyIGNvZGUgYXNz
dW1pbmcgdGhhdCB0aGVyZSdzCi0gICAgICAgICMgb25seSBvbmUgcGF0aCBmcm9tIHJvb3RfZGly
IHRvIHNjYW5fZGlyIGFuZCBpdCBjYW4gYmUgb2J0YWluZWQgYnkKLSAgICAgICAgIyBjb21wYXJp
bmcgcmVhbHBhdGggb2YgdGhlbS4KLQotICAgICAgICAjIEhlcmUgd2UgY2Fubm90IHVzZSBhYnNw
YXRoLiBTZWUKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzE2MDMKLQotICAgICAgICBjb252ZXJ0ID0gX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2Nv
bnZlcnRlcihyb290X2RpcikKLSAgICAgICAgc2Nhbl9yZWFscGF0aCA9IG9zLnBhdGgucmVhbHBh
dGgoc2Nhbl9kaXIpCi0gICAgICAgIHJvb3RfcmVhbHBhdGggPSBvcy5wYXRoLnJlYWxwYXRoKHJv
b3RfZGlyKQotICAgICAgICBmb3IgcGF0aCBpbiBfZW51bWVyYXRlX2hhbmRsZXJfZmlsZV9wYXRo
cyhzY2FuX3JlYWxwYXRoKToKLSAgICAgICAgICAgIGlmIChub3QgYWxsb3dfaGFuZGxlcnNfb3V0
c2lkZV9yb290X2RpciBhbmQKLSAgICAgICAgICAgICAgICAobm90IG9zLnBhdGgucmVhbHBhdGgo
cGF0aCkuc3RhcnRzd2l0aChyb290X3JlYWxwYXRoKSkpOgotICAgICAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgJ0Nhbm9uaWNhbCBwYXRoIG9mICVz
IGlzIG5vdCB1bmRlciByb290IGRpcmVjdG9yeScgJQotICAgICAgICAgICAgICAgICAgICBwYXRo
KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICAgICAgaGFuZGxlcl9zdWl0ZSA9IF9zb3VyY2VfaGFuZGxlcl9maWxlKG9wZW4ocGF0aCkucmVh
ZCgpKQotICAgICAgICAgICAgZXhjZXB0IERpc3BhdGNoRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fc291cmNlX3dhcm5pbmdzLmFwcGVuZCgnJXM6ICVzJyAlIChwYXRoLCBl
KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgcmVzb3VyY2UgPSBjb252
ZXJ0KHBhdGgpCi0gICAgICAgICAgICBpZiByZXNvdXJjZSBpcyBOb25lOgotICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgJ1BhdGggdG8gcmVz
b3VyY2UgY29udmVyc2lvbiBvbiAlcyBmYWlsZWQnICUgcGF0aCkKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlcl9zdWl0ZV9tYXBbY29udmVydChwYXRoKV0g
PSBoYW5kbGVyX3N1aXRlCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZXh0
ZW5zaW9ucy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFiZTc0OWZmZjU5ODk2
NTE3ZmM1MTU3MTc0NmM3ZjFjMmE3ZWIwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsNzUwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1
dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldC5odHRwX2hlYWRlcl91dGlsIGltcG9ydCBxdW90ZV9p
Zl9uZWNlc3NhcnkKLQotCi0jIFRoZSBsaXN0IG9mIGF2YWlsYWJsZSBzZXJ2ZXIgc2lkZSBleHRl
bnNpb24gcHJvY2Vzc29yIGNsYXNzZXMuCi1fYXZhaWxhYmxlX3Byb2Nlc3NvcnMgPSB7fQotX2Nv
bXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcyA9IFtdCi0KLQotY2xhc3MgRXh0ZW5zaW9uUHJvY2Vz
c29ySW50ZXJmYWNlKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6
Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0g
ICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX2FjdGl2ZSA9IFRy
dWUKLQotICAgIGRlZiByZXF1ZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVz
dAotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYg
Y2hlY2tfY29uc2lzdGVuY3lfd2l0aF9vdGhlcl9wcm9jZXNzb3JzKHNlbGYsIHByb2Nlc3NvcnMp
OgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgc2V0X2FjdGl2ZShzZWxmLCBhY3RpdmUpOgotICAg
ICAgICBzZWxmLl9hY3RpdmUgPSBhY3RpdmUKLQotICAgIGRlZiBpc19hY3RpdmUoc2VsZik6Ci0g
ICAgICAgIHJldHVybiBzZWxmLl9hY3RpdmUKLQotICAgIGRlZiBfZ2V0X2V4dGVuc2lvbl9yZXNw
b25zZV9pbnRlcm5hbChzZWxmKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBnZXRf
ZXh0ZW5zaW9uX3Jlc3BvbnNlKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5fYWN0aXZlOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdFeHRlbnNpb24gJXMgaXMgZGVhY3RpdmF0
ZWQnLCBzZWxmLm5hbWUoKSkKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgcmVz
cG9uc2UgPSBzZWxmLl9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKCkKLSAgICAgICAg
aWYgcmVzcG9uc2UgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2FjdGl2ZSA9IEZhbHNlCi0g
ICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19p
bnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBz
ZXR1cF9zdHJlYW1fb3B0aW9ucyhzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIGlmIHNl
bGYuX2FjdGl2ZToKLSAgICAgICAgICAgIHNlbGYuX3NldHVwX3N0cmVhbV9vcHRpb25zX2ludGVy
bmFsKHN0cmVhbV9vcHRpb25zKQotCi0KLWRlZiBfbG9nX291dGdvaW5nX2NvbXByZXNzaW9uX3Jh
dGlvKAotICAgICAgICBsb2dnZXIsIG9yaWdpbmFsX2J5dGVzLCBmaWx0ZXJlZF9ieXRlcywgYXZl
cmFnZV9yYXRpbyk6Ci0gICAgIyBQcmludCBpbmYgd2hlbiByYXRpbyBpcyBub3QgYXZhaWxhYmxl
LgotICAgIHJhdGlvID0gZmxvYXQoJ2luZicpCi0gICAgaWYgb3JpZ2luYWxfYnl0ZXMgIT0gMDoK
LSAgICAgICAgcmF0aW8gPSBmbG9hdChmaWx0ZXJlZF9ieXRlcykgLyBvcmlnaW5hbF9ieXRlcwot
Ci0gICAgbG9nZ2VyLmRlYnVnKCdPdXRnb2luZyBjb21wcmVzc2lvbiByYXRpbzogJWYgKGF2ZXJh
Z2U6ICVmKScgJQotICAgICAgICAgICAgKHJhdGlvLCBhdmVyYWdlX3JhdGlvKSkKLQotCi1kZWYg
X2xvZ19pbmNvbWluZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgbG9nZ2VyLCByZWNlaXZl
ZF9ieXRlcywgZmlsdGVyZWRfYnl0ZXMsIGF2ZXJhZ2VfcmF0aW8pOgotICAgICMgUHJpbnQgaW5m
IHdoZW4gcmF0aW8gaXMgbm90IGF2YWlsYWJsZS4KLSAgICByYXRpbyA9IGZsb2F0KCdpbmYnKQot
ICAgIGlmIGZpbHRlcmVkX2J5dGVzICE9IDA6Ci0gICAgICAgIHJhdGlvID0gZmxvYXQocmVjZWl2
ZWRfYnl0ZXMpIC8gZmlsdGVyZWRfYnl0ZXMKLQotICAgIGxvZ2dlci5kZWJ1ZygnSW5jb21pbmcg
Y29tcHJlc3Npb24gcmF0aW86ICVmIChhdmVyYWdlOiAlZiknICUKLSAgICAgICAgICAgIChyYXRp
bywgYXZlcmFnZV9yYXRpbykpCi0KLQotZGVmIF9wYXJzZV93aW5kb3dfYml0cyhiaXRzKToKLSAg
ICAiIiJSZXR1cm4gcGFyc2VkIGludGVnZXIgdmFsdWUgaWZmIHRoZSBnaXZlbiBzdHJpbmcgY29u
Zm9ybXMgdG8gdGhlCi0gICAgZ3JhbW1hciBvZiB0aGUgd2luZG93IGJpdHMgZXh0ZW5zaW9uIHBh
cmFtZXRlcnMuCi0gICAgIiIiCi0KLSAgICBpZiBiaXRzIGlzIE5vbmU6Ci0gICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ1ZhbHVlIGlzIHJlcXVpcmVkJykKLQotICAgICMgRm9yIG5vbiBpbnRlZ2Vy
IHZhbHVlcyBzdWNoIGFzICIxMC4wIiwgVmFsdWVFcnJvciB3aWxsIGJlIHJhaXNlZC4KLSAgICBp
bnRfYml0cyA9IGludChiaXRzKQotCi0gICAgIyBGaXJzdCBjb25kaXRpb24gaXMgdG8gZHJvcCBs
ZWFkaW5nIHplcm8gY2FzZSBlLmcuICIwOCIuCi0gICAgaWYgYml0cyAhPSBzdHIoaW50X2JpdHMp
IG9yIGludF9iaXRzIDwgOCBvciBpbnRfYml0cyA+IDE1OgotICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdJbnZhbGlkIHZhbHVlOiAlcicgJSBiaXRzKQotCi0gICAgcmV0dXJuIGludF9iaXRzCi0K
LQotY2xhc3MgX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3Iob2JqZWN0KToKLSAgICAiIiJTdG9yZXMg
dG90YWwgYnl0ZXMgb2Ygb3JpZ2luYWwgYW5kIHJlc3VsdCBkYXRhLCBhbmQgY2FsY3VsYXRlcyBh
dmVyYWdlCi0gICAgcmVzdWx0IC8gb3JpZ2luYWwgcmF0aW8uCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5dGVzID0gMAot
ICAgICAgICBzZWxmLl90b3RhbF9yZXN1bHRfYnl0ZXMgPSAwCi0KLSAgICBkZWYgYWRkX29yaWdp
bmFsX2J5dGVzKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0
ZXMgKz0gdmFsdWUKLQotICAgIGRlZiBhZGRfcmVzdWx0X2J5dGVzKHNlbGYsIHZhbHVlKToKLSAg
ICAgICAgc2VsZi5fdG90YWxfcmVzdWx0X2J5dGVzICs9IHZhbHVlCi0KLSAgICBkZWYgZ2V0X2F2
ZXJhZ2VfcmF0aW8oc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5dGVz
ICE9IDA6Ci0gICAgICAgICAgICByZXR1cm4gKGZsb2F0KHNlbGYuX3RvdGFsX3Jlc3VsdF9ieXRl
cykgLwotICAgICAgICAgICAgICAgICAgICBzZWxmLl90b3RhbF9vcmlnaW5hbF9ieXRlcykKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBmbG9hdCgnaW5mJykKLQotCi1jbGFzcyBE
ZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNl
KToKLSAgICAiIiJkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiBwcm9jZXNzb3IuCi0KLSAgICBTcGVj
aWZpY2F0aW9uOgotICAgIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXR5b3NoaW5v
LWh5Ymktd2Vic29ja2V0LXBlcmZyYW1lLWRlZmxhdGUKLSAgICAiIiIKLQotICAgIF9XSU5ET1df
QklUU19QQVJBTSA9ICdtYXhfd2luZG93X2JpdHMnCi0gICAgX05PX0NPTlRFWFRfVEFLRU9WRVJf
UEFSQU0gPSAnbm9fY29udGV4dF90YWtlb3ZlcicKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZXF1ZXN0KToKLSAgICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNl
bGYsIHJlcXVlc3QpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dl
cihzZWxmKQotCi0gICAgICAgIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzID0gTm9uZQotICAg
ICAgICBzZWxmLl9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyID0gRmFsc2UKLSAgICAgICAg
c2VsZi5fYmZpbmFsID0gRmFsc2UKLQotICAgICAgICAjIENhbGN1bGF0ZXMKLSAgICAgICAgIyAg
ICAgKFRvdGFsIG91dGdvaW5nIGJ5dGVzIHN1cHBsaWVkIHRvIHRoaXMgZmlsdGVyKSAvCi0gICAg
ICAgICMgICAgIChUb3RhbCBieXRlcyBzZW50IHRvIHRoZSBuZXR3b3JrIGFmdGVyIGFwcGx5aW5n
IHRoaXMgZmlsdGVyKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1
bGF0b3IgPSBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcigpCi0KLSAgICAgICAgIyBDYWxjdWxhdGVz
Ci0gICAgICAgICMgICAgIChUb3RhbCBieXRlcyByZWNlaXZlZCBmcm9tIHRoZSBuZXR3b3JrKSAv
Ci0gICAgICAgICMgICAgIChUb3RhbCBpbmNvbWluZyBieXRlcyBvYnRhaW5lZCBhZnRlciBhcHBs
eWluZyB0aGlzIGZpbHRlcikKLSAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19j
YWxjdWxhdG9yID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQotCi0gICAgZGVmIG5hbWUoc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04KLQotICAg
IGRlZiBfZ2V0X2V4dGVuc2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxmKToKLSAgICAgICAgIyBB
bnkgdW5rbm93biBwYXJhbWV0ZXIgd2lsbCBiZSBqdXN0IGlnbm9yZWQuCi0KLSAgICAgICAgd2lu
ZG93X2JpdHMgPSBOb25lCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuaGFzX3BhcmFtZXRlcihz
ZWxmLl9XSU5ET1dfQklUU19QQVJBTSk6Ci0gICAgICAgICAgICB3aW5kb3dfYml0cyA9IHNlbGYu
X3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAgICAgICAgICBzZWxmLl9XSU5E
T1dfQklUU19QQVJBTSkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB3aW5kb3df
Yml0cyA9IF9wYXJzZV93aW5kb3dfYml0cyh3aW5kb3dfYml0cykKLSAgICAgICAgICAgIGV4Y2Vw
dCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAg
ICBub19jb250ZXh0X3Rha2VvdmVyID0gc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAotICAg
ICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkKLSAgICAgICAgaWYgKG5v
X2NvbnRleHRfdGFrZW92ZXIgYW5kCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9wYXJh
bWV0ZXJfdmFsdWUoCi0gICAgICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9Q
QVJBTSkgaXMgbm90IE5vbmUpOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBz
ZWxmLl9yZmMxOTc5X2RlZmxhdGVyID0gdXRpbC5fUkZDMTk3OURlZmxhdGVyKAotICAgICAgICAg
ICAgd2luZG93X2JpdHMsIG5vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICAgICAgc2VsZi5fcmZj
MTk3OV9pbmZsYXRlciA9IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCi0KLSAgICAgICAgc2VsZi5f
Y29tcHJlc3Nfb3V0Z29pbmcgPSBUcnVlCi0KLSAgICAgICAgcmVzcG9uc2UgPSBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKHNlbGYuX3JlcXVlc3QubmFtZSgpKQotCi0gICAgICAgIGlmIHNlbGYu
X3Jlc3BvbnNlX3dpbmRvd19iaXRzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmVzcG9uc2Uu
YWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9XSU5ET1dfQklUU19QQVJBTSwg
c3RyKHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzKSkKLSAgICAgICAgaWYgc2VsZi5fcmVzcG9u
c2Vfbm9fY29udGV4dF90YWtlb3ZlcjoKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0
ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwgTm9u
ZSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRW5hYmxlICVz
IGV4dGVuc2lvbiAoJwotICAgICAgICAgICAgJ3JlcXVlc3Q6IHdpbmRvd19iaXRzPSVzOyBub19j
b250ZXh0X3Rha2VvdmVyPSVyLCAnCi0gICAgICAgICAgICAncmVzcG9uc2U6IHdpbmRvd193Yml0
cz0lczsgbm9fY29udGV4dF90YWtlb3Zlcj0lciknICUKLSAgICAgICAgICAgIChzZWxmLl9yZXF1
ZXN0Lm5hbWUoKSwKLSAgICAgICAgICAgICB3aW5kb3dfYml0cywKLSAgICAgICAgICAgICBub19j
b250ZXh0X3Rha2VvdmVyLAotICAgICAgICAgICAgIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRz
LAotICAgICAgICAgICAgIHNlbGYuX3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIpKQotCi0g
ICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19p
bnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0KLSAgICAgICAgY2xhc3MgX091dGdvaW5n
RmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQp
OgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotCi0gICAgICAgICAgICBk
ZWYgZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuX291
dGdvaW5nX2ZpbHRlcihmcmFtZSkKLQotICAgICAgICBjbGFzcyBfSW5jb21pbmdGaWx0ZXIob2Jq
ZWN0KToKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIo
c2VsZiwgZnJhbWUpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5faW5jb21pbmdfZmls
dGVyKGZyYW1lKQotCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRl
cnMuYXBwZW5kKAotICAgICAgICAgICAgX091dGdvaW5nRmlsdGVyKHNlbGYpKQotICAgICAgICBz
dHJlYW1fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJzLmluc2VydCgKLSAgICAgICAgICAg
IDAsIF9JbmNvbWluZ0ZpbHRlcihzZWxmKSkKLQotICAgIGRlZiBzZXRfcmVzcG9uc2Vfd2luZG93
X2JpdHMoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0cyA9
IHZhbHVlCi0KLSAgICBkZWYgc2V0X3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZiwg
dmFsdWUpOgotICAgICAgICBzZWxmLl9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyID0gdmFs
dWUKLQotICAgIGRlZiBzZXRfYmZpbmFsKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fYmZp
bmFsID0gdmFsdWUKLQotICAgIGRlZiBlbmFibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6
Ci0gICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nID0gVHJ1ZQotCi0gICAgZGVmIGRpc2Fi
bGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6Ci0gICAgICAgIHNlbGYuX2NvbXByZXNzX291
dGdvaW5nID0gRmFsc2UKLQotICAgIGRlZiBfb3V0Z29pbmdfZmlsdGVyKHNlbGYsIGZyYW1lKToK
LSAgICAgICAgIiIiVHJhbnNmb3JtIG91dGdvaW5nIGZyYW1lcy4gVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIG9ubHkgYnkKLSAgICAgICAgYW4gX091dGdvaW5nRmlsdGVyIGluc3RhbmNlLgotICAgICAg
ICAiIiIKLQotICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5bG9h
ZCkKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9v
cmlnaW5hbF9ieXRlcygKLSAgICAgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUpCi0K
LSAgICAgICAgaWYgKG5vdCBzZWxmLl9jb21wcmVzc19vdXRnb2luZyBvcgotICAgICAgICAgICAg
Y29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSkpOgotICAgICAgICAgICAgc2Vs
Zi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCi0g
ICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSkKLSAgICAgICAgICAgIHJl
dHVybgotCi0gICAgICAgIGZyYW1lLnBheWxvYWQgPSBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyLmZp
bHRlcigKLSAgICAgICAgICAgIGZyYW1lLnBheWxvYWQsIGJmaW5hbD1zZWxmLl9iZmluYWwpCi0g
ICAgICAgIGZyYW1lLnJzdjEgPSAxCi0KLSAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0g
bGVuKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9f
Y2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVzKAotICAgICAgICAgICAgICAgIGZpbHRlcmVkX3Bh
eWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9nX291dGdvaW5nX2NvbXByZXNzaW9uX3JhdGlvKAot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAgICAgICBvcmlnaW5hbF9w
YXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAotICAg
ICAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5nZXRf
YXZlcmFnZV9yYXRpbygpKQotCi0gICAgZGVmIF9pbmNvbWluZ19maWx0ZXIoc2VsZiwgZnJhbWUp
OgotICAgICAgICAiIiJUcmFuc2Zvcm0gaW5jb21pbmcgZnJhbWVzLiBUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgb25seSBieQotICAgICAgICBhbiBfSW5jb21pbmdGaWx0ZXIgaW5zdGFuY2UuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSA9IGxlbihmcmFtZS5wYXls
b2FkKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRk
X3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUpCi0K
LSAgICAgICAgaWYgZnJhbWUucnN2MSAhPSAxIG9yIGNvbW1vbi5pc19jb250cm9sX29wY29kZShm
cmFtZS5vcGNvZGUpOgotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19j
YWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRlcygKLSAgICAgICAgICAgICAgICAgICAgcmVjZWl2
ZWRfcGF5bG9hZF9zaXplKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgZnJhbWUucGF5
bG9hZCA9IHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCi0gICAg
ICAgIGZyYW1lLnJzdjEgPSAwCi0KLSAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0gbGVu
KGZyYW1lLnBheWxvYWQpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2Fs
Y3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5
bG9hZF9zaXplKQotCi0gICAgICAgIF9sb2dfaW5jb21pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0g
ICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLAotICAgICAgICAgICAgICAgIHJlY2VpdmVkX3Bh
eWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUsCi0gICAg
ICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmdldF9h
dmVyYWdlX3JhdGlvKCkpCi0KLQotX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5ERUZMQVRF
X0ZSQU1FX0VYVEVOU0lPTl0gPSAoCi0gICAgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29y
KQotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcy5hcHBlbmQoY29tbW9uLkRFRkxBVEVfRlJB
TUVfRVhURU5TSU9OKQotCi1fYXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9uLlhfV0VCS0lUX0RF
RkxBVEVfRlJBTUVfRVhURU5TSU9OXSA9ICgKLSAgICBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9j
ZXNzb3IpCi1fY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzLmFwcGVuZChjb21tb24uWF9XRUJL
SVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0KLQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVF
eHRlbnNpb25Qcm9jZXNzb3IoRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlKToKLSAgICAiIiJw
ZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9uIHByb2Nlc3Nvci4KLQotICAgIFNwZWNpZmljYXRp
b246Ci0gICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXBlcm1l
c3NhZ2UtY29tcHJlc3Npb24tMDgKLSAgICAiIiIKLQotICAgIF9TRVJWRVJfTUFYX1dJTkRPV19C
SVRTX1BBUkFNID0gJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnCi0gICAgX1NFUlZFUl9OT19DT05U
RVhUX1RBS0VPVkVSX1BBUkFNID0gJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJwotICAgIF9D
TElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNID0gJ2NsaWVudF9tYXhfd2luZG93X2JpdHMnCi0g
ICAgX0NMSUVOVF9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNID0gJ2NsaWVudF9ub19jb250ZXh0
X3Rha2VvdmVyJwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAi
IiJDb25zdHJ1Y3QgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuIiIiCi0KLSAg
ICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNlbGYsIHJlcXVlc3Qp
Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0g
ICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzID0gTm9uZQotICAg
ICAgICBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IEZhbHNlCi0KLSAgICBkZWYg
bmFtZShzZWxmKToKLSAgICAgICAgIyBUaGlzIG1ldGhvZCByZXR1cm5zICJkZWZsYXRlIiAobm90
ICJwZXJtZXNzYWdlLWRlZmxhdGUiKSBmb3IKLSAgICAgICAgIyBjb21wYXRpYmlsaXR5LgotICAg
ICAgICByZXR1cm4gJ2RlZmxhdGUnCi0KLSAgICBkZWYgX2dldF9leHRlbnNpb25fcmVzcG9uc2Vf
aW50ZXJuYWwoc2VsZik6Ci0gICAgICAgIGZvciBuYW1lIGluIHNlbGYuX3JlcXVlc3QuZ2V0X3Bh
cmFtZXRlcl9uYW1lcygpOgotICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gW3NlbGYuX1NFUlZF
Ul9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTV06Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdVbmtub3duIHBhcmFtZXRlcjogJXInLCBuYW1lKQot
ICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgc2VydmVyX21heF93aW5kb3df
Yml0cyA9IE5vbmUKLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKHNlbGYu
X1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0pOgotICAgICAgICAgICAgc2VydmVyX21heF93
aW5kb3dfYml0cyA9IHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gX3BhcnNl
X3dpbmRvd19iaXRzKAotICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRz
KQotICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ0JhZCAlcyBwYXJhbWV0ZXI6ICVyJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gTm9uZQotCi0gICAgICAgIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyID0gc2VsZi5f
cmVxdWVzdC5oYXNfcGFyYW1ldGVyKAotICAgICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRF
WFRfVEFLRU9WRVJfUEFSQU0pCi0gICAgICAgIGlmIChzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3Zl
ciBhbmQKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAg
ICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkgaXMg
bm90IE5vbmUpOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcyBwYXJhbWV0ZXIg
bXVzdCBub3QgaGF2ZSBhIHZhbHVlOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIpCi0gICAgICAgICAg
ICByZXR1cm4gTm9uZQotCi0gICAgICAgICMgY2xpZW50X21heF93aW5kb3dfYml0cyBmcm9tIGEg
Y2xpZW50IGluZGljYXRlcyB3aGV0aGVyIHRoZSBjbGllbnQgY2FuCi0gICAgICAgICMgYWNjZXB0
IGNsaWVudF9tYXhfd2luZG93X2JpdHMgZnJvbSBhIHNlcnZlciBvciBub3QuCi0gICAgICAgIGNs
aWVudF9jbGllbnRfbWF4X3dpbmRvd19iaXRzID0gc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVy
KAotICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAg
ICAgaWYgKGNsaWVudF9jbGllbnRfbWF4X3dpbmRvd19iaXRzIGFuZAotICAgICAgICAgICAgc2Vs
Zi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgIHNlbGYuX0NM
SUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0pIGlzIG5vdCBOb25lKToKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnJXMgcGFyYW1ldGVyIG11c3Qgbm90IGhhdmUgYSB2YWx1ZSBpbiBh
ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xpZW50XCdzIG9wZW5pbmcgaGFu
ZHNoYWtlOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5U
X01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
bGllbnRfY2xpZW50X21heF93aW5kb3dfYml0cykKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0K
LSAgICAgICAgc2VsZi5fcmZjMTk3OV9kZWZsYXRlciA9IHV0aWwuX1JGQzE5NzlEZWZsYXRlcigK
LSAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMsIHNlcnZlcl9ub19jb250ZXh0X3Rh
a2VvdmVyKQotCi0gICAgICAgICMgTm90ZSB0aGF0IHdlIHByZXBhcmUgZm9yIGluY29taW5nIG1l
c3NhZ2VzIGNvbXByZXNzZWQgd2l0aCB3aW5kb3cKLSAgICAgICAgIyBiaXRzIHVwdG8gMTUgcmVn
YXJkbGVzcyBvZiB0aGUgY2xpZW50X21heF93aW5kb3dfYml0cyB2YWx1ZSB0byBiZQotICAgICAg
ICAjIHNlbnQgdG8gdGhlIGNsaWVudC4KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9pbmZsYXRlciA9
IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCi0KLSAgICAgICAgc2VsZi5fZnJhbWVyID0gX1Blck1l
c3NhZ2VEZWZsYXRlRnJhbWVyKAotICAgICAgICAgICAgc2VydmVyX21heF93aW5kb3dfYml0cywg
c2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIpCi0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXRfYmZp
bmFsKEZhbHNlKQotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0X2NvbXByZXNzX291dGdvaW5nX2Vu
YWJsZWQoVHJ1ZSkKLQotICAgICAgICByZXNwb25zZSA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIoc2VsZi5fcmVxdWVzdC5uYW1lKCkpCi0KLSAgICAgICAgaWYgc2VydmVyX21heF93aW5kb3df
Yml0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0g
ICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAg
ICAgICAgICAgICBzdHIoc2VydmVyX21heF93aW5kb3dfYml0cykpCi0KLSAgICAgICAgaWYgc2Vy
dmVyX25vX2NvbnRleHRfdGFrZW92ZXI6Ci0gICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1l
dGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BB
UkFNLCBOb25lKQotCi0gICAgICAgIGlmIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRv
d19iaXRzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaWYgbm90IGNsaWVudF9jbGllbnRfbWF4
X3dpbmRvd19iaXRzOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUHJvY2Vz
c29yIGlzIGNvbmZpZ3VyZWQgdG8gdXNlICVzIGJ1dCAnCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICd0aGUgY2xpZW50IGNhbm5vdCBhY2NlcHQgaXQnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFN
KQotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICByZXNwb25zZS5hZGRf
cGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNf
UEFSQU0sCi0gICAgICAgICAgICAgICAgc3RyKHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dp
bmRvd19iaXRzKSkKLQotICAgICAgICBpZiBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtlb3Zl
cjoKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAg
c2VsZi5fQ0xJRU5UX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sIE5vbmUpCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0VuYWJsZSAlcyBleHRlbnNpb24gKCcK
LSAgICAgICAgICAgICdyZXF1ZXN0OiBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPSVzOyAnCi0gICAg
ICAgICAgICAnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXI9JXIsICcKLSAgICAgICAgICAgICdy
ZXNwb25zZTogY2xpZW50X21heF93aW5kb3dfYml0cz0lczsgJwotICAgICAgICAgICAgJ2NsaWVu
dF9ub19jb250ZXh0X3Rha2VvdmVyPSVyKScgJQotICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3Qu
bmFtZSgpLAotICAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMsCi0gICAgICAgICAg
ICAgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIsCi0gICAgICAgICAgICAgc2VsZi5fcHJlZmVy
cmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMsCi0gICAgICAgICAgICAgc2VsZi5fY2xpZW50X25v
X2NvbnRleHRfdGFrZW92ZXIpKQotCi0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgZGVm
IF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0g
ICAgICAgIHNlbGYuX2ZyYW1lci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9ucykK
LQotICAgIGRlZiBzZXRfY2xpZW50X21heF93aW5kb3dfYml0cyhzZWxmLCB2YWx1ZSk6Ci0gICAg
ICAgICIiIklmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhpcyBjbGFzcyBhZGRzIHRoZQot
ICAgICAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGV4dGVuc2lvbiBwYXJhbWV0ZXIgdG8gdGhl
IGhhbmRzaGFrZSByZXNwb25zZSwKLSAgICAgICAgYnV0IGRvZXNuJ3QgcmVkdWNlIHRoZSBMWjc3
IHNsaWRpbmcgd2luZG93IHNpemUgb2YgaXRzIGluZmxhdGVyLgotICAgICAgICBJLmUuLCB5b3Ug
Y2FuIHVzZSB0aGlzIGZvciB0ZXN0aW5nIGNsaWVudCBpbXBsZW1lbnRhdGlvbiBidXQgY2Fubm90
Ci0gICAgICAgIHJlZHVjZSBtZW1vcnkgdXNhZ2Ugb2YgdGhpcyBjbGFzcy4KLQotICAgICAgICBJ
ZiB0aGlzIG1ldGhvZCBoYXMgYmVlbiBjYWxsZWQgd2l0aCBUcnVlIGFuZCBhbiBvZmZlciB3aXRo
b3V0IHRoZQotICAgICAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGV4dGVuc2lvbiBwYXJhbWV0
ZXIgaXMgcmVjZWl2ZWQsCi0gICAgICAgIC0gKFdoZW4gcHJvY2Vzc2luZyB0aGUgcGVybWVzc2Fn
ZS1kZWZsYXRlIGV4dGVuc2lvbikgdGhpcyBwcm9jZXNzb3IKLSAgICAgICAgICBkZWNsaW5lcyB0
aGUgcmVxdWVzdC4KLSAgICAgICAgLSAoV2hlbiBwcm9jZXNzaW5nIHRoZSBwZXJtZXNzYWdlLWNv
bXByZXNzIGV4dGVuc2lvbikgdGhpcyBwcm9jZXNzb3IKLSAgICAgICAgICBhY2NlcHRzIHRoZSBy
ZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21h
eF93aW5kb3dfYml0cyA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X2NsaWVudF9ub19jb250ZXh0X3Rh
a2VvdmVyKHNlbGYsIHZhbHVlKToKLSAgICAgICAgIiIiSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lm
aWVkLCB0aGlzIGNsYXNzIGFkZHMgdGhlCi0gICAgICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2Vv
dmVyIGV4dGVuc2lvbiBwYXJhbWV0ZXIgdG8gdGhlIGhhbmRzaGFrZQotICAgICAgICByZXNwb25z
ZSwgYnV0IGRvZXNuJ3QgcmVzZXQgaW5mbGF0ZXIgZm9yIGVhY2ggbWVzc2FnZS4gSS5lLiwgeW91
IGNhbgotICAgICAgICB1c2UgdGhpcyBmb3IgdGVzdGluZyBjbGllbnQgaW1wbGVtZW50YXRpb24g
YnV0IGNhbm5vdCByZWR1Y2UgbWVtb3J5Ci0gICAgICAgIHVzYWdlIG9mIHRoaXMgY2xhc3MuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0g
dmFsdWUKLQotICAgIGRlZiBzZXRfYmZpbmFsKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5f
ZnJhbWVyLnNldF9iZmluYWwodmFsdWUpCi0KLSAgICBkZWYgZW5hYmxlX291dGdvaW5nX2NvbXBy
ZXNzaW9uKHNlbGYpOgotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0X2NvbXByZXNzX291dGdvaW5n
X2VuYWJsZWQoVHJ1ZSkKLQotICAgIGRlZiBkaXNhYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKHNl
bGYpOgotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0X2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQo
RmFsc2UpCi0KLQotY2xhc3MgX1Blck1lc3NhZ2VEZWZsYXRlRnJhbWVyKG9iamVjdCk6Ci0gICAg
IiIiQSBmcmFtZXIgZm9yIGV4dGVuc2lvbnMgd2l0aCBwZXItbWVzc2FnZSBERUZMQVRFIGZlYXR1
cmUuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZGVmbGF0ZV9tYXhfd2luZG93X2JpdHMs
IGRlZmxhdGVfbm9fY29udGV4dF90YWtlb3Zlcik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfZGVmbGF0
ZXIgPSB1dGlsLl9SRkMxOTc5RGVmbGF0ZXIoCi0gICAgICAgICAgICBkZWZsYXRlX21heF93aW5k
b3dfYml0cywgZGVmbGF0ZV9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgICAgIHNlbGYuX3Jm
YzE5NzlfaW5mbGF0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQotCi0gICAgICAgIHNlbGYu
X2JmaW5hbCA9IEZhbHNlCi0KLSAgICAgICAgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxl
ZCA9IEZhbHNlCi0KLSAgICAgICAgIyBUcnVlIGlmIGEgbWVzc2FnZSBpcyBmcmFnbWVudGVkIGFu
ZCBjb21wcmVzc2lvbiBpcyBvbmdvaW5nLgotICAgICAgICBzZWxmLl9jb21wcmVzc19vbmdvaW5n
ID0gRmFsc2UKLQotICAgICAgICAjIENhbGN1bGF0ZXMKLSAgICAgICAgIyAgICAgKFRvdGFsIG91
dGdvaW5nIGJ5dGVzIHN1cHBsaWVkIHRvIHRoaXMgZmlsdGVyKSAvCi0gICAgICAgICMgICAgIChU
b3RhbCBieXRlcyBzZW50IHRvIHRoZSBuZXR3b3JrIGFmdGVyIGFwcGx5aW5nIHRoaXMgZmlsdGVy
KQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IgPSBfQXZl
cmFnZVJhdGlvQ2FsY3VsYXRvcigpCi0KLSAgICAgICAgIyBDYWxjdWxhdGVzCi0gICAgICAgICMg
ICAgIChUb3RhbCBieXRlcyByZWNlaXZlZCBmcm9tIHRoZSBuZXR3b3JrKSAvCi0gICAgICAgICMg
ICAgIChUb3RhbCBpbmNvbWluZyBieXRlcyBvYnRhaW5lZCBhZnRlciBhcHBseWluZyB0aGlzIGZp
bHRlcikKLSAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yID0g
X0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQotCi0gICAgZGVmIHNldF9iZmluYWwoc2VsZiwgdmFs
dWUpOgotICAgICAgICBzZWxmLl9iZmluYWwgPSB2YWx1ZQotCi0gICAgZGVmIHNldF9jb21wcmVz
c19vdXRnb2luZ19lbmFibGVkKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fY29tcHJlc3Nf
b3V0Z29pbmdfZW5hYmxlZCA9IHZhbHVlCi0KLSAgICBkZWYgX3Byb2Nlc3NfaW5jb21pbmdfbWVz
c2FnZShzZWxmLCBtZXNzYWdlLCBkZWNvbXByZXNzKToKLSAgICAgICAgaWYgbm90IGRlY29tcHJl
c3M6Ci0gICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgICAgIHJlY2VpdmVkX3BheWxv
YWRfc2l6ZSA9IGxlbihtZXNzYWdlKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3Jh
dGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAgICAgICByZWNlaXZl
ZF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3JmYzE5NzlfaW5mbGF0
ZXIuZmlsdGVyKG1lc3NhZ2UpCi0KLSAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0gbGVu
KG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRv
ci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9z
aXplKQotCi0gICAgICAgIF9sb2dfaW5jb21pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAgICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLAotICAgICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxvYWRf
c2l6ZSwKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAg
ICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmdldF9hdmVyYWdl
X3JhdGlvKCkpCi0KLSAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQotICAgIGRlZiBfcHJvY2Vzc19v
dXRnb2luZ19tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVuZCwgYmluYXJ5KToKLSAgICAgICAgaWYg
bm90IGJpbmFyeToKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRmLTgn
KQotCi0gICAgICAgIGlmIG5vdCBzZWxmLl9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkOgotICAg
ICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQotICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUg
PSBsZW4obWVzc2FnZSkKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxj
dWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRlcygKLSAgICAgICAgICAgIG9yaWdpbmFsX3BheWxvYWRf
c2l6ZSkKLQotICAgICAgICBtZXNzYWdlID0gc2VsZi5fcmZjMTk3OV9kZWZsYXRlci5maWx0ZXIo
Ci0gICAgICAgICAgICBtZXNzYWdlLCBlbmQ9ZW5kLCBiZmluYWw9c2VsZi5fYmZpbmFsKQotCi0g
ICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSA9IGxlbihtZXNzYWdlKQotICAgICAgICBzZWxm
Ll9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAg
ICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9nX291dGdvaW5n
X2NvbXByZXNzaW9uX3JhdGlvKAotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKLSAgICAg
ICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgZmlsdGVy
ZWRfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2Vf
cmF0aW9fY2FsY3VsYXRvci5nZXRfYXZlcmFnZV9yYXRpbygpKQotCi0gICAgICAgIGlmIG5vdCBz
ZWxmLl9jb21wcmVzc19vbmdvaW5nOgotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVf
ZmlsdGVyLnNldF9jb21wcmVzc2lvbl9iaXQoKQotICAgICAgICBzZWxmLl9jb21wcmVzc19vbmdv
aW5nID0gbm90IGVuZAotICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgZGVmIF9wcm9jZXNz
X2luY29taW5nX2ZyYW1lKHNlbGYsIGZyYW1lKToKLSAgICAgICAgaWYgZnJhbWUucnN2MSA9PSAx
IGFuZCBub3QgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6Ci0gICAgICAg
ICAgICBzZWxmLl9pbmNvbWluZ19tZXNzYWdlX2ZpbHRlci5kZWNvbXByZXNzX25leHRfbWVzc2Fn
ZSgpCi0gICAgICAgICAgICBmcmFtZS5yc3YxID0gMAotCi0gICAgZGVmIF9wcm9jZXNzX291dGdv
aW5nX2ZyYW1lKHNlbGYsIGZyYW1lLCBjb21wcmVzc2lvbl9iaXQpOgotICAgICAgICBpZiAobm90
IGNvbXByZXNzaW9uX2JpdCBvcgotICAgICAgICAgICAgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2Rl
KGZyYW1lLm9wY29kZSkpOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgZnJhbWUucnN2
MSA9IDEKLQotICAgIGRlZiBzZXR1cF9zdHJlYW1fb3B0aW9ucyhzZWxmLCBzdHJlYW1fb3B0aW9u
cyk6Ci0gICAgICAgICIiIkNyZWF0ZXMgZmlsdGVycyBhbmQgc2V0cyB0aGVtIHRvIHRoZSBTdHJl
YW1PcHRpb25zLiIiIgotCi0gICAgICAgIGNsYXNzIF9PdXRnb2luZ01lc3NhZ2VGaWx0ZXIob2Jq
ZWN0KToKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIo
c2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX3BhcmVudC5fcHJvY2Vzc19vdXRnb2luZ19tZXNzYWdlKAotICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlLCBlbmQsIGJpbmFyeSkKLQotICAgICAgICBjbGFzcyBfSW5jb21p
bmdNZXNzYWdlRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotICAgICAg
ICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlID0gRmFsc2UKLQotICAgICAg
ICAgICAgZGVmIGRlY29tcHJlc3NfbmV4dF9tZXNzYWdlKHNlbGYpOgotICAgICAgICAgICAgICAg
IHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlID0gVHJ1ZQotCi0gICAgICAgICAgICBkZWYg
ZmlsdGVyKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9w
YXJlbnQuX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2FnZSgKLSAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZSwgc2VsZi5fZGVjb21wcmVzc19uZXh0X21lc3NhZ2UpCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fZGVjb21wcmVzc19uZXh0X21lc3NhZ2UgPSBGYWxzZQotICAgICAgICAgICAgICAgIHJldHVy
biBtZXNzYWdlCi0KLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfbWVzc2FnZV9maWx0ZXIgPSBfT3V0
Z29pbmdNZXNzYWdlRmlsdGVyKHNlbGYpCi0gICAgICAgIHNlbGYuX2luY29taW5nX21lc3NhZ2Vf
ZmlsdGVyID0gX0luY29taW5nTWVzc2FnZUZpbHRlcihzZWxmKQotICAgICAgICBzdHJlYW1fb3B0
aW9ucy5vdXRnb2luZ19tZXNzYWdlX2ZpbHRlcnMuYXBwZW5kKAotICAgICAgICAgICAgc2VsZi5f
b3V0Z29pbmdfbWVzc2FnZV9maWx0ZXIpCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLmluY29taW5n
X21lc3NhZ2VfZmlsdGVycy5hcHBlbmQoCi0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19tZXNz
YWdlX2ZpbHRlcikKLQotICAgICAgICBjbGFzcyBfT3V0Z29pbmdGcmFtZUZpbHRlcihvYmplY3Qp
OgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAg
ICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKLSAgICAgICAgICAgICAgICBzZWxmLl9zZXRfY29t
cHJlc3Npb25fYml0ID0gRmFsc2UKLQotICAgICAgICAgICAgZGVmIHNldF9jb21wcmVzc2lvbl9i
aXQoc2VsZik6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9IFRy
dWUKLQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fcGFyZW50Ll9wcm9jZXNzX291dGdvaW5nX2ZyYW1lKAotICAgICAgICAgICAgICAg
ICAgICBmcmFtZSwgc2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCkKLSAgICAgICAgICAgICAgICBz
ZWxmLl9zZXRfY29tcHJlc3Npb25fYml0ID0gRmFsc2UKLQotICAgICAgICBjbGFzcyBfSW5jb21p
bmdGcmFtZUZpbHRlcihvYmplY3QpOgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwg
cGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKLQotICAgICAg
ICAgICAgZGVmIGZpbHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFy
ZW50Ll9wcm9jZXNzX2luY29taW5nX2ZyYW1lKGZyYW1lKQotCi0gICAgICAgIHNlbGYuX291dGdv
aW5nX2ZyYW1lX2ZpbHRlciA9IF9PdXRnb2luZ0ZyYW1lRmlsdGVyKHNlbGYpCi0gICAgICAgIHNl
bGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlciA9IF9JbmNvbWluZ0ZyYW1lRmlsdGVyKHNlbGYpCi0g
ICAgICAgIHN0cmVhbV9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMuYXBwZW5kKAotICAg
ICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyKQotICAgICAgICBzdHJlYW1fb3B0
aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIHNlbGYuX2lu
Y29taW5nX2ZyYW1lX2ZpbHRlcikKLQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5lbmNvZGVfdGV4
dF9tZXNzYWdlX3RvX3V0ZjggPSBGYWxzZQotCi0KLV9hdmFpbGFibGVfcHJvY2Vzc29yc1tjb21t
b24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTl0gPSAoCi0gICAgICAgIFBlck1lc3NhZ2VE
ZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKQotIyBUT0RPKHR5b3NoaW5vKTogUmVvcmdhbml6ZSBj
bGFzcyBuYW1lcy4KLV9jb21wcmVzc2lvbl9leHRlbnNpb25fbmFtZXMuYXBwZW5kKCdkZWZsYXRl
JykKLQotCi1jbGFzcyBNdXhFeHRlbnNpb25Qcm9jZXNzb3IoRXh0ZW5zaW9uUHJvY2Vzc29ySW50
ZXJmYWNlKToKLSAgICAiIiJXZWJTb2NrZXQgbXVsdGlwbGV4aW5nIGV4dGVuc2lvbiBwcm9jZXNz
b3IuIiIiCi0KLSAgICBfUVVPVEFfUEFSQU0gPSAncXVvdGEnCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIEV4dGVuc2lvblByb2Nlc3NvckludGVyZmFjZS5fX2lu
aXRfXyhzZWxmLCByZXF1ZXN0KQotICAgICAgICBzZWxmLl9xdW90YSA9IDAKLSAgICAgICAgc2Vs
Zi5fZXh0ZW5zaW9ucyA9IFtdCi0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJu
IGNvbW1vbi5NVVhfRVhURU5TSU9OCi0KLSAgICBkZWYgY2hlY2tfY29uc2lzdGVuY3lfd2l0aF9v
dGhlcl9wcm9jZXNzb3JzKHNlbGYsIHByb2Nlc3NvcnMpOgotICAgICAgICBiZWZvcmVfbXV4ID0g
VHJ1ZQotICAgICAgICBmb3IgcHJvY2Vzc29yIGluIHByb2Nlc3NvcnM6Ci0gICAgICAgICAgICBu
YW1lID0gcHJvY2Vzc29yLm5hbWUoKQotICAgICAgICAgICAgaWYgbmFtZSA9PSBzZWxmLm5hbWUo
KToKLSAgICAgICAgICAgICAgICBiZWZvcmVfbXV4ID0gRmFsc2UKLSAgICAgICAgICAgICAgICBj
b250aW51ZQotICAgICAgICAgICAgaWYgbm90IHByb2Nlc3Nvci5pc19hY3RpdmUoKToKLSAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgYmVmb3JlX211eDoKLSAgICAgICAg
ICAgICAgICAjIE11eCBleHRlbnNpb24gY2Fubm90IGJlIHVzZWQgYWZ0ZXIgZXh0ZW5zaW9ucwot
ICAgICAgICAgICAgICAgICMgdGhhdCBkZXBlbmQgb24gZnJhbWUgYm91bmRhcnksIGV4dGVuc2lv
biBkYXRhIGZpZWxkLCBvciBhbnkKLSAgICAgICAgICAgICAgICAjIHJlc2VydmVkIGJpdHMgd2hp
Y2ggYXJlIGF0dHJpYnV0ZWQgdG8gZWFjaCBmcmFtZS4KLSAgICAgICAgICAgICAgICBpZiAobmFt
ZSA9PSBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04gb3IKLSAgICAgICAgICAgICAgICAg
ICAgbmFtZSA9PSBjb21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04pOgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLnNldF9hY3RpdmUoRmFsc2UpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybgotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIE11eCBleHRl
bnNpb24gc2hvdWxkIG5vdCBiZSBhcHBsaWVkIGJlZm9yZSBhbnkgaGlzdG9yeS1iYXNlZAotICAg
ICAgICAgICAgICAgICMgY29tcHJlc3Npb24gZXh0ZW5zaW9uLgotICAgICAgICAgICAgICAgIGlm
IChuYW1lID09ICdkZWZsYXRlJyBvcgotICAgICAgICAgICAgICAgICAgICBuYW1lID09IGNvbW1v
bi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiBvcgotICAgICAgICAgICAgICAgICAgICBuYW1lID09
IGNvbW1vbi5YX1dFQktJVF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTik6Ci0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuc2V0X2FjdGl2ZShGYWxzZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
Ci0KLSAgICBkZWYgX2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoc2VsZik6Ci0gICAg
ICAgIHNlbGYuX2FjdGl2ZSA9IEZhbHNlCi0gICAgICAgIHF1b3RhID0gc2VsZi5fcmVxdWVzdC5n
ZXRfcGFyYW1ldGVyX3ZhbHVlKHNlbGYuX1FVT1RBX1BBUkFNKQotICAgICAgICBpZiBxdW90YSBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBxdW90YSA9IGlu
dChxdW90YSkKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIGlmIHF1b3RhIDwgMCBvciBxdW90YSA+PSAy
ICoqIDMyOgotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBzZWxmLl9x
dW90YSA9IHF1b3RhCi0KLSAgICAgICAgc2VsZi5fYWN0aXZlID0gVHJ1ZQotICAgICAgICByZXR1
cm4gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uTVVYX0VYVEVOU0lPTikKLQotICAg
IGRlZiBfc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMp
OgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgc2V0X3F1b3RhKHNlbGYsIHF1b3RhKToKLSAgICAg
ICAgc2VsZi5fcXVvdGEgPSBxdW90YQotCi0gICAgZGVmIHF1b3RhKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5fcXVvdGEKLQotICAgIGRlZiBzZXRfZXh0ZW5zaW9ucyhzZWxmLCBleHRlbnNp
b25zKToKLSAgICAgICAgc2VsZi5fZXh0ZW5zaW9ucyA9IGV4dGVuc2lvbnMKLQotICAgIGRlZiBl
eHRlbnNpb25zKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fZXh0ZW5zaW9ucwotCi0KLV9h
dmFpbGFibGVfcHJvY2Vzc29yc1tjb21tb24uTVVYX0VYVEVOU0lPTl0gPSBNdXhFeHRlbnNpb25Q
cm9jZXNzb3IKLQotCi1kZWYgZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoZXh0ZW5zaW9uX3JlcXVl
c3QpOgotICAgICIiIkdpdmVuIGFuIEV4dGVuc2lvblBhcmFtZXRlciByZXByZXNlbnRpbmcgYW4g
ZXh0ZW5zaW9uIG9mZmVyIHJlY2VpdmVkCi0gICAgZnJvbSBhIGNsaWVudCwgY29uZmlndXJlcyBh
bmQgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiB0aGUgY29ycmVzcG9uZGluZwotICAgIGV4dGVuc2lv
biBwcm9jZXNzb3IgY2xhc3MuCi0gICAgIiIiCi0KLSAgICBwcm9jZXNzb3JfY2xhc3MgPSBfYXZh
aWxhYmxlX3Byb2Nlc3NvcnMuZ2V0KGV4dGVuc2lvbl9yZXF1ZXN0Lm5hbWUoKSkKLSAgICBpZiBw
cm9jZXNzb3JfY2xhc3MgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIE5vbmUKLSAgICByZXR1cm4g
cHJvY2Vzc29yX2NsYXNzKGV4dGVuc2lvbl9yZXF1ZXN0KQotCi0KLWRlZiBpc19jb21wcmVzc2lv
bl9leHRlbnNpb24oZXh0ZW5zaW9uX25hbWUpOgotICAgIHJldHVybiBleHRlbnNpb25fbmFtZSBp
biBfY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tpbmcuaSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9k
X3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkZGFhZDI3ZjUzYzQ2YmUyYTcxYzcwNGM3MDhmYmIzZjQyZjFhM2QxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2Zh
c3RfbWFza2luZy5pCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLy8gQ29weXJpZ2h0
IDIwMTMsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24u
Ci0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
Ly8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSVtb2R1bGUgZmFzdF9tYXNraW5n
Ci0KLSVpbmNsdWRlICJjc3RyaW5nLmkiCi0KLSV7Ci0jaW5jbHVkZSA8Y3N0cmluZz4KLQotI2lm
ZGVmIF9fU1NFMl9fCi0jaW5jbHVkZSA8ZW1taW50cmluLmg+Ci0jZW5kaWYKLSV9Ci0KLSVhcHBs
eSAoY2hhciAqU1RSSU5HLCBpbnQgTEVOR1RIKSB7Ci0gICAgKGNvbnN0IGNoYXIqIHBheWxvYWQs
IGludCBwYXlsb2FkX2xlbmd0aCksCi0gICAgKGNvbnN0IGNoYXIqIG1hc2tpbmdfa2V5LCBpbnQg
bWFza2luZ19rZXlfbGVuZ3RoKSB9OwotJWNzdHJpbmdfb3V0cHV0X2FsbG9jYXRlX3NpemUoCi0g
ICAgY2hhcioqIHJlc3VsdCwgaW50KiByZXN1bHRfbGVuZ3RoLCBkZWxldGUgW10gKiQxKTsKLQot
JWlubGluZSAlewotCi12b2lkIG1hc2soCi0gICAgY29uc3QgY2hhciogcGF5bG9hZCwgaW50IHBh
eWxvYWRfbGVuZ3RoLAotICAgIGNvbnN0IGNoYXIqIG1hc2tpbmdfa2V5LCBpbnQgbWFza2luZ19r
ZXlfbGVuZ3RoLAotICAgIGludCBtYXNraW5nX2tleV9pbmRleCwKLSAgICBjaGFyKiogcmVzdWx0
LCBpbnQqIHJlc3VsdF9sZW5ndGgpIHsKLSAgKnJlc3VsdCA9IG5ldyBjaGFyW3BheWxvYWRfbGVu
Z3RoXTsKLSAgKnJlc3VsdF9sZW5ndGggPSBwYXlsb2FkX2xlbmd0aDsKLSAgbWVtY3B5KCpyZXN1
bHQsIHBheWxvYWQsIHBheWxvYWRfbGVuZ3RoKTsKLQotICBjaGFyKiBjdXJzb3IgPSAqcmVzdWx0
OwotICBjaGFyKiBjdXJzb3JfZW5kID0gKnJlc3VsdCArICpyZXN1bHRfbGVuZ3RoOwotCi0jaWZk
ZWYgX19TU0UyX18KLSAgd2hpbGUgKChjdXJzb3IgPCBjdXJzb3JfZW5kKSAmJgotICAgICAgICAg
KHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihjdXJzb3IpICYgMHhmKSkgewotICAgICpjdXJzb3Ig
Xj0gbWFza2luZ19rZXlbbWFza2luZ19rZXlfaW5kZXhdOwotICAgICsrY3Vyc29yOwotICAgIG1h
c2tpbmdfa2V5X2luZGV4ID0gKG1hc2tpbmdfa2V5X2luZGV4ICsgMSkgJSBtYXNraW5nX2tleV9s
ZW5ndGg7Ci0gIH0KLSAgaWYgKGN1cnNvciA9PSBjdXJzb3JfZW5kKSB7Ci0gICAgcmV0dXJuOwot
ICB9Ci0KLSAgY29uc3QgaW50IGtCbG9ja1NpemUgPSAxNjsKLSAgX19tMTI4aSBtYXNraW5nX2tl
eV9ibG9jazsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCBrQmxvY2tTaXplOyArK2kpIHsKLSAgICAq
KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZtYXNraW5nX2tleV9ibG9jaykgKyBpKSA9Ci0gICAg
ICAgIG1hc2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XTsKLSAgICBtYXNraW5nX2tleV9pbmRl
eCA9IChtYXNraW5nX2tleV9pbmRleCArIDEpICUgbWFza2luZ19rZXlfbGVuZ3RoOwotICB9Ci0K
LSAgd2hpbGUgKGN1cnNvciArIGtCbG9ja1NpemUgPD0gY3Vyc29yX2VuZCkgewotICAgIF9fbTEy
OGkgcGF5bG9hZF9ibG9jayA9Ci0gICAgICAgIF9tbV9sb2FkX3NpMTI4KHJlaW50ZXJwcmV0X2Nh
c3Q8X19tMTI4aSo+KGN1cnNvcikpOwotICAgIF9tbV9zdHJlYW1fc2kxMjgocmVpbnRlcnByZXRf
Y2FzdDxfX20xMjhpKj4oY3Vyc29yKSwKLSAgICAgICAgICAgICAgICAgICAgIF9tbV94b3Jfc2kx
MjgocGF5bG9hZF9ibG9jaywgbWFza2luZ19rZXlfYmxvY2spKTsKLSAgICBjdXJzb3IgKz0ga0Js
b2NrU2l6ZTsKLSAgfQotI2VuZGlmCi0KLSAgd2hpbGUgKGN1cnNvciA8IGN1cnNvcl9lbmQpIHsK
LSAgICAqY3Vyc29yIF49IG1hc2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XTsKLSAgICArK2N1
cnNvcjsKLSAgICBtYXNraW5nX2tleV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRleCArIDEpICUg
bWFza2luZ19rZXlfbGVuZ3RoOwotICB9Ci19Ci0KLSV9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9o
YW5kc2hha2UvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwNzI2
M2E2OWZlOTUxNTZiNWYzYjM5ZDU4ODNkYjk3NTI1OWQzNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtl
L19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAKLSMgQ29weXJpZ2h0
IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLSIiIldlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IuIFRoaXMg
Y2xhc3MgdHJ5IHRvIGFwcGx5IGF2YWlsYWJsZQotb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29y
cyBmb3IgZWFjaCBwcm90b2NvbCB2ZXJzaW9uIHVudGlsIGEgY29ubmVjdGlvbiBpcwotc3VjY2Vz
c2Z1bGx5IGVzdGFibGlzaGVkLgotIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtl
IGltcG9ydCBoeWJpMDAKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZSBpbXBvcnQgaHli
aQotIyBFeHBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgSGFuZHNoYWtlRXhjZXB0aW9uLCBh
bmQgVmVyc2lvbkV4Y2VwdGlvbgotIyBzeW1ib2wgZnJvbSB0aGlzIG1vZHVsZS4KLWZyb20gbW9k
X3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlv
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VF
eGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgVmVy
c2lvbkV4Y2VwdGlvbgotCi0KLV9MT0dHRVIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykK
LQotCi1kZWYgZG9faGFuZHNoYWtlKHJlcXVlc3QsIGRpc3BhdGNoZXIsIGFsbG93RHJhZnQ3NT1G
YWxzZSwgc3RyaWN0PUZhbHNlKToKLSAgICAiIiJQZXJmb3JtcyBXZWJTb2NrZXQgaGFuZHNoYWtl
LgotCi0gICAgQXJnczoKLSAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAg
ICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KLSAgICAg
ICAgYWxsb3dEcmFmdDc1OiBvYnNvbGV0ZSBhcmd1bWVudC4gaWdub3JlZC4KLSAgICAgICAgc3Ry
aWN0OiBvYnNvbGV0ZSBhcmd1bWVudC4gaWdub3JlZC4KLQotICAgIEhhbmRzaGFrZXIgd2lsbCBh
ZGQgYXR0cmlidXRlcyBzdWNoIGFzIHdzX3Jlc291cmNlIGluIHBlcmZvcm1pbmcKLSAgICBoYW5k
c2hha2UuCi0gICAgIiIiCi0KLSAgICBfTE9HR0VSLmRlYnVnKCdDbGllbnRcJ3Mgb3BlbmluZyBo
YW5kc2hha2UgcmVzb3VyY2U6ICVyJywgcmVxdWVzdC51cmkpCi0gICAgIyBUbyBwcmludCBtaW1l
dG9vbHMuTWVzc2FnZSBhcyBlc2NhcGVkIG9uZS1saW5lIHN0cmluZywgd2UgY29udmVydHMKLSAg
ICAjIGhlYWRlcnNfaW4gdG8gZGljdCBvYmplY3QuIFdpdGhvdXQgY29udmVyc2lvbiwgaWYgd2Ug
dXNlICVyLCBpdCBqdXN0Ci0gICAgIyBwcmludHMgdGhlIHR5cGUgYW5kIGFkZHJlc3MsIGFuZCBp
ZiB3ZSB1c2UgJXMsIGl0IHByaW50cyB0aGUgb3JpZ2luYWwKLSAgICAjIGhlYWRlciBzdHJpbmcg
YXMgbXVsdGlwbGUgbGluZXMuCi0gICAgIwotICAgICMgQm90aCBtaW1ldG9vbHMuTWVzc2FnZSBh
bmQgTXBUYWJsZV9UeXBlIG9mIG1vZF9weXRob24gY2FuIGJlCi0gICAgIyBjb252ZXJ0ZWQgdG8g
ZGljdC4KLSAgICAjCi0gICAgIyBtaW1ldG9vbHMuTWVzc2FnZS5fX3N0cl9fIHJldHVybnMgdGhl
IG9yaWdpbmFsIGhlYWRlciBzdHJpbmcuCi0gICAgIyBkaWN0KG1pbWV0b29scy5NZXNzYWdlIG9i
amVjdCkgcmV0dXJucyB0aGUgbWFwIGZyb20gaGVhZGVyIG5hbWVzIHRvCi0gICAgIyBoZWFkZXIg
dmFsdWVzLiBXaGlsZSBNcFRhYmxlX1R5cGUgZG9lc24ndCBoYXZlIHN1Y2ggX19zdHJfXyBidXQg
anVzdAotICAgICMgX19yZXByX18gd2hpY2ggZm9ybWF0cyBpdHNlbGYgYXMgd2VsbCBhcyBkaWN0
aW9uYXJ5IG9iamVjdC4KLSAgICBfTE9HR0VSLmRlYnVnKAotICAgICAgICAnQ2xpZW50XCdzIG9w
ZW5pbmcgaGFuZHNoYWtlIGhlYWRlcnM6ICVyJywgZGljdChyZXF1ZXN0LmhlYWRlcnNfaW4pKQot
Ci0gICAgaGFuZHNoYWtlcnMgPSBbXQotICAgIGhhbmRzaGFrZXJzLmFwcGVuZCgKLSAgICAgICAg
KCdSRkMgNjQ1NScsIGh5YmkuSGFuZHNoYWtlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKSkpCi0gICAg
aGFuZHNoYWtlcnMuYXBwZW5kKAotICAgICAgICAoJ0h5QmkgMDAnLCBoeWJpMDAuSGFuZHNoYWtl
cihyZXF1ZXN0LCBkaXNwYXRjaGVyKSkpCi0KLSAgICBmb3IgbmFtZSwgaGFuZHNoYWtlciBpbiBo
YW5kc2hha2VyczoKLSAgICAgICAgX0xPR0dFUi5kZWJ1ZygnVHJ5aW5nIHByb3RvY29sIHZlcnNp
b24gJXMnLCBuYW1lKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hh
bmRzaGFrZSgpCi0gICAgICAgICAgICBfTE9HR0VSLmluZm8oJ0VzdGFibGlzaGVkICglcyBwcm90
b2NvbCknLCBuYW1lKQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGV4Y2VwdCBIYW5kc2hh
a2VFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIF9MT0dHRVIuZGVidWcoCi0gICAgICAgICAg
ICAgICAgJ0ZhaWxlZCB0byBjb21wbGV0ZSBvcGVuaW5nIGhhbmRzaGFrZSBhcyAlcyBwcm90b2Nv
bDogJXInLAotICAgICAgICAgICAgICAgIG5hbWUsIGUpCi0gICAgICAgICAgICBpZiBlLnN0YXR1
czoKLSAgICAgICAgICAgICAgICByYWlzZSBlCi0gICAgICAgIGV4Y2VwdCBBYm9ydGVkQnlVc2Vy
RXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQgVmVyc2lv
bkV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgcmFpc2UKLQotICAgICMgVE9ETyh0b3lvc2hp
bSk6IEFkZCBhIHRlc3QgdG8gY292ZXIgdGhlIGNhc2UgYWxsIGhhbmRzaGFrZXJzIGZhaWwuCi0g
ICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAnRmFpbGVkIHRvIGNvbXBsZXRl
IG9wZW5pbmcgaGFuZHNoYWtlIGZvciBhbGwgYXZhaWxhYmxlIHByb3RvY29scycsCi0gICAgICAg
IHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0KLQotIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2Uu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBhZjA1MjQyYmZjZDZmYzk2Y2JkODgzOWIwNzAzODQ0MjRhN2Uy
OWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19iYXNlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTgy
ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0
cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkNvbW1vbiBmdW5jdGlvbnMgYW5kIGV4
Y2VwdGlvbnMgdXNlZCBieSBXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hha2UKLXByb2Nlc3NvcnMu
Ci0iIiIKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAotCi0KLWNsYXNzIEFib3J0ZWRCeVVz
ZXJFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJFeGNlcHRpb24gZm9yIGFib3J0aW5nIGEg
Y29ubmVjdGlvbiBpbnRlbnRpb25hbGx5LgotCi0gICAgSWYgdGhpcyBleGNlcHRpb24gaXMgcmFp
c2VkIGluIGRvX2V4dHJhX2hhbmRzaGFrZSBoYW5kbGVyLCB0aGUgY29ubmVjdGlvbgotICAgIHdp
bGwgYmUgYWJhbmRvbmVkLiBObyBvdGhlciBXZWJTb2NrZXQgb3IgSFRUUChTKSBoYW5kbGVyIHdp
bGwgYmUgaW52b2tlZC4KLQotICAgIElmIHRoaXMgZXhjZXB0aW9uIGlzIHJhaXNlZCBpbiB0cmFu
c2Zlcl9kYXRhX2hhbmRsZXIsIHRoZSBjb25uZWN0aW9uIHdpbGwKLSAgICBiZSBjbG9zZWQgd2l0
aG91dCBjbG9zaW5nIGhhbmRzaGFrZS4gTm8gb3RoZXIgV2ViU29ja2V0IG9yIEhUVFAoUykgaGFu
ZGxlcgotICAgIHdpbGwgYmUgaW52b2tlZC4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFz
cyBIYW5kc2hha2VFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3
aWxsIGJlIHJhaXNlZCB3aGVuIGFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcKLSAg
ICBXZWJTb2NrZXQgaW5pdGlhbCBoYW5kc2hha2UuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbmFtZSwgc3RhdHVzPU5vbmUpOgotICAgICAgICBzdXBlcihIYW5kc2hha2VFeGNl
cHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCi0gICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVz
Ci0KLQotY2xhc3MgVmVyc2lvbkV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhj
ZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gYSB2ZXJzaW9uIG9mIGNsaWVudCByZXF1ZXN0IGRv
ZXMgbm90Ci0gICAgbWF0Y2ggd2l0aCB2ZXJzaW9uIHRoZSBzZXJ2ZXIgc3VwcG9ydHMuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc3VwcG9ydGVkX3ZlcnNpb25zPScn
KToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgICBzdXBwb3J0ZWRfdmVyc2lvbjogYSBzdHIgb2JqZWN0IHRvIHNob3cgc3VwcG9y
dGVkIGh5YmkgdmVyc2lvbnMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUuZy4g
JzgsIDEzJykKLSAgICAgICAgIiIiCi0gICAgICAgIHN1cGVyKFZlcnNpb25FeGNlcHRpb24sIHNl
bGYpLl9faW5pdF9fKG5hbWUpCi0gICAgICAgIHNlbGYuc3VwcG9ydGVkX3ZlcnNpb25zID0gc3Vw
cG9ydGVkX3ZlcnNpb25zCi0KLQotZGVmIGdldF9kZWZhdWx0X3BvcnQoaXNfc2VjdXJlKToKLSAg
ICBpZiBpc19zZWN1cmU6Ci0gICAgICAgIHJldHVybiBjb21tb24uREVGQVVMVF9XRUJfU09DS0VU
X1NFQ1VSRV9QT1JUCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuIGNvbW1vbi5ERUZBVUxUX1dF
Ql9TT0NLRVRfUE9SVAotCi0KLWRlZiB2YWxpZGF0ZV9zdWJwcm90b2NvbChzdWJwcm90b2NvbCk6
Ci0gICAgIiIiVmFsaWRhdGUgYSB2YWx1ZSBpbiB0aGUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBm
aWVsZC4KLQotICAgIFNlZSB0aGUgU2VjdGlvbiA0LjEuLCA0LjIuMi4sIGFuZCA0LjMuIG9mIFJG
QyA2NDU1LgotICAgICIiIgotCi0gICAgaWYgbm90IHN1YnByb3RvY29sOgotICAgICAgICByYWlz
ZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFsaWQgc3VicHJvdG9jb2wgbmFtZTogZW1wdHknKQot
Ci0gICAgIyBQYXJhbWV0ZXIgc2hvdWxkIGJlIGVuY29kZWQgSFRUUCB0b2tlbi4KLSAgICBzdGF0
ZSA9IGh0dHBfaGVhZGVyX3V0aWwuUGFyc2luZ1N0YXRlKHN1YnByb3RvY29sKQotICAgIHRva2Vu
ID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuKHN0YXRlKQotICAgIHJlc3QgPSBodHRw
X2hlYWRlcl91dGlsLnBlZWsoc3RhdGUpCi0gICAgIyBJZiB8cmVzdHwgaXMgbm90IE5vbmUsIHxz
dWJwcm90b2NvbHwgaXMgbm90IG9uZSB0b2tlbiBvciBpbnZhbGlkLiBJZgotICAgICMgfHJlc3R8
IGlzIE5vbmUsIHx0b2tlbnwgbXVzdCBub3QgYmUgTm9uZSBiZWNhdXNlIHxzdWJwcm90b2NvbHwg
aXMKLSAgICAjIGNvbmNhdGVuYXRpb24gb2YgfHRva2VufCBhbmQgfHJlc3R8IGFuZCBpcyBub3Qg
Tm9uZS4KLSAgICBpZiByZXN0IGlzIG5vdCBOb25lOgotICAgICAgICByYWlzZSBIYW5kc2hha2VF
eGNlcHRpb24oJ0ludmFsaWQgbm9uLXRva2VuIHN0cmluZyBpbiBzdWJwcm90b2NvbCAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZTogJXInICUgcmVzdCkKLQotCi1kZWYg
cGFyc2VfaG9zdF9oZWFkZXIocmVxdWVzdCk6Ci0gICAgZmllbGRzID0gcmVxdWVzdC5oZWFkZXJz
X2luW2NvbW1vbi5IT1NUX0hFQURFUl0uc3BsaXQoJzonLCAxKQotICAgIGlmIGxlbihmaWVsZHMp
ID09IDE6Ci0gICAgICAgIHJldHVybiBmaWVsZHNbMF0sIGdldF9kZWZhdWx0X3BvcnQocmVxdWVz
dC5pc19odHRwcygpKQotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIGZpZWxkc1swXSwgaW50KGZp
ZWxkc1sxXSkKLSAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICByYWlzZSBIYW5k
c2hha2VFeGNlcHRpb24oJ0ludmFsaWQgcG9ydCBudW1iZXIgZm9ybWF0OiAlcicgJSBlKQotCi0K
LWRlZiBmb3JtYXRfaGVhZGVyKG5hbWUsIHZhbHVlKToKLSAgICByZXR1cm4gJyVzOiAlc1xyXG4n
ICUgKG5hbWUsIHZhbHVlKQotCi0KLWRlZiBnZXRfbWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBr
ZXkpOgotICAgIHZhbHVlID0gcmVxdWVzdC5oZWFkZXJzX2luLmdldChrZXkpCi0gICAgaWYgdmFs
dWUgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdIZWFkZXIgJXMg
aXMgbm90IGRlZmluZWQnICUga2V5KQotICAgIHJldHVybiB2YWx1ZQotCi0KLWRlZiB2YWxpZGF0
ZV9tYW5kYXRvcnlfaGVhZGVyKHJlcXVlc3QsIGtleSwgZXhwZWN0ZWRfdmFsdWUsIGZhaWxfc3Rh
dHVzPU5vbmUpOgotICAgIHZhbHVlID0gZ2V0X21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5
KQotCi0gICAgaWYgdmFsdWUubG93ZXIoKSAhPSBleHBlY3RlZF92YWx1ZS5sb3dlcigpOgotICAg
ICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAnRXhwZWN0ZWQgJXIg
Zm9yIGhlYWRlciAlcyBidXQgZm91bmQgJXIgKGNhc2UtaW5zZW5zaXRpdmUpJyAlCi0gICAgICAg
ICAgICAoZXhwZWN0ZWRfdmFsdWUsIGtleSwgdmFsdWUpLCBzdGF0dXM9ZmFpbF9zdGF0dXMpCi0K
LQotZGVmIGNoZWNrX3JlcXVlc3RfbGluZShyZXF1ZXN0KToKLSAgICAjIDUuMSAxLiBUaGUgdGhy
ZWUgY2hhcmFjdGVyIFVURi04IHN0cmluZyAiR0VUIi4KLSAgICAjIDUuMSAyLiBBIFVURi04LWVu
Y29kZWQgVSswMDIwIFNQQUNFIGNoYXJhY3RlciAoMHgyMCBieXRlKS4KLSAgICBpZiByZXF1ZXN0
Lm1ldGhvZCAhPSAnR0VUJzoKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdNZXRo
b2QgaXMgbm90IEdFVDogJXInICUgcmVxdWVzdC5tZXRob2QpCi0KLSAgICBpZiByZXF1ZXN0LnBy
b3RvY29sICE9ICdIVFRQLzEuMSc6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbign
VmVyc2lvbiBpcyBub3QgSFRUUC8xLjE6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LnByb3RvY29sKQotCi0KLWRlZiBwYXJzZV90b2tlbl9saXN0KGRhdGEp
OgotICAgICIiIlBhcnNlcyBhIGhlYWRlciB2YWx1ZSB3aGljaCBmb2xsb3dzIDEjdG9rZW4gYW5k
IHJldHVybnMgcGFyc2VkIGVsZW1lbnRzCi0gICAgYXMgYSBsaXN0IG9mIHN0cmluZ3MuCi0KLSAg
ICBMZWFkaW5nIExXU2VzIG11c3QgYmUgdHJpbW1lZC4KLSAgICAiIiIKLQotICAgIHN0YXRlID0g
aHR0cF9oZWFkZXJfdXRpbC5QYXJzaW5nU3RhdGUoZGF0YSkKLQotICAgIHRva2VuX2xpc3QgPSBb
XQotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgdG9rZW4gPSBodHRwX2hlYWRlcl91dGlsLmNv
bnN1bWVfdG9rZW4oc3RhdGUpCi0gICAgICAgIGlmIHRva2VuIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgdG9rZW5fbGlzdC5hcHBlbmQodG9rZW4pCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRp
bC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgICAgIGlmIGh0dHBfaGVhZGVyX3V0aWwucGVl
ayhzdGF0ZSkgaXMgTm9uZToKLSAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgbm90IGh0
dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJpbmcoc3RhdGUsICcsJyk6Ci0gICAgICAgICAgICBy
YWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0V4cGVjdGVkIGEgY29t
bWEgYnV0IGZvdW5kICVyJyAlIGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkpCi0KLSAgICAg
ICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgaWYgbGVuKHRv
a2VuX2xpc3QpID09IDA6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignTm8gdmFs
aWQgdG9rZW4gZm91bmQnKQotCi0gICAgcmV0dXJuIHRva2VuX2xpc3QKLQotCi0jIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJp
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDJkYmYyNWExZGNjYTc3Y2Q1ODlkYmE3MDU0ZjRlNjI3MmM2ZGVh
MjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MjAg
KzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3Ry
aWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIHRoZSBv
cGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQKLXByb3RvY29sIChS
RkMgNjQ1NSkuCi0KLVNwZWNpZmljYXRpb246Ci1odHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9y
ZmM2NDU1Ci0iIiIKLQotCi0jIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSBpcyB1c2Vk
IGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaCBtb2RfcHl0aG9uCi0jIGRvY3VtZW50IHNheXMg
dGhhdCBpdCBzaG91bGQgYmUgdXNlZCBvbmx5IGluIGNvbm5lY3Rpb24gaGFuZGxlcnMuCi0jIFVu
Zm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9ucy4gRm9yIGV4YW1wbGUsIHJlcXVl
c3Qud3JpdGUgaXMgbm90Ci0jIHN1aXRhYmxlIGJlY2F1c2UgaXQgZG9lc24ndCBhbGxvdyBkaXJl
Y3QgcmF3IGJ5dGVzIHdyaXRpbmcuCi0KLQotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGxvZ2dpbmcK
LWltcG9ydCBvcwotaW1wb3J0IHJlCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21t
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IGdldF9leHRlbnNpb25f
cHJvY2Vzc29yCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBpc19jb21w
cmVzc2lvbl9leHRlbnNpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBp
bXBvcnQgY2hlY2tfcmVxdWVzdF9saW5lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2Uu
X2Jhc2UgaW1wb3J0IGZvcm1hdF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFr
ZS5fYmFzZSBpbXBvcnQgZ2V0X21hbmRhdG9yeV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0
LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHBhcnNlX3Rva2VuX2xpc3QKLWZyb20gbW9k
X3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVfbWFuZGF0b3J5X2hl
YWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0
ZV9zdWJwcm90b2NvbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9y
dCBWZXJzaW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0
cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1PcHRpb25zCi1m
cm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLSMgVXNlZCB0byB2YWxpZGF0ZSB0
aGUgdmFsdWUgaW4gdGhlIFNlYy1XZWJTb2NrZXQtS2V5IGhlYWRlciBzdHJpY3RseS4gUkZDIDQ2
NDgKLSMgZGlzYWxsb3dzIG5vbi16ZXJvIHBhZGRpbmcsIHNvIHRoZSBjaGFyYWN0ZXIgcmlnaHQg
YmVmb3JlID09IG11c3QgYmUgYW55IG9mCi0jIEEsIFEsIGcgYW5kIHcuCi1fU0VDX1dFQlNPQ0tF
VF9LRVlfUkVHRVggPSByZS5jb21waWxlKCdeWysvMC05QS1aYS16XXsyMX1bQVFnd109PSQnKQot
Ci0jIERlZmluaW5nIGFsaWFzZXMgZm9yIHZhbHVlcyB1c2VkIGZyZXF1ZW50bHkuCi1fVkVSU0lP
Tl9MQVRFU1QgPSBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVAotX1ZFUlNJT05fTEFURVNUX1NU
UklORyA9IHN0cihfVkVSU0lPTl9MQVRFU1QpCi1fU1VQUE9SVEVEX1ZFUlNJT05TID0gWwotICAg
IF9WRVJTSU9OX0xBVEVTVCwKLV0KLQotCi1kZWYgY29tcHV0ZV9hY2NlcHQoa2V5KToKLSAgICAi
IiJDb21wdXRlcyB2YWx1ZSBmb3IgdGhlIFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlciBmcm9t
IHZhbHVlIG9mIHRoZQotICAgIFNlYy1XZWJTb2NrZXQtS2V5IGhlYWRlci4KLSAgICAiIiIKLQot
ICAgIGFjY2VwdF9iaW5hcnkgPSB1dGlsLnNoYTFfaGFzaCgKLSAgICAgICAga2V5ICsgY29tbW9u
LldFQlNPQ0tFVF9BQ0NFUFRfVVVJRCkuZGlnZXN0KCkKLSAgICBhY2NlcHQgPSBiYXNlNjQuYjY0
ZW5jb2RlKGFjY2VwdF9iaW5hcnkpCi0KLSAgICByZXR1cm4gKGFjY2VwdCwgYWNjZXB0X2JpbmFy
eSkKLQotCi1jbGFzcyBIYW5kc2hha2VyKG9iamVjdCk6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hh
a2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIChSRkMgNjQ1NSkuIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcik6Ci0gICAgICAgICIi
IkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVx
dWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0
Y2hlciAoZGlzcGF0Y2guRGlzcGF0Y2hlcikuCi0KLSAgICAgICAgSGFuZHNoYWtlciB3aWxsIGFk
ZCBhdHRyaWJ1dGVzIHN1Y2ggYXMgd3NfcmVzb3VyY2UgZHVyaW5nIGhhbmRzaGFrZS4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNl
bGYpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5fZGlz
cGF0Y2hlciA9IGRpc3BhdGNoZXIKLQotICAgIGRlZiBfdmFsaWRhdGVfY29ubmVjdGlvbl9oZWFk
ZXIoc2VsZik6Ci0gICAgICAgIGNvbm5lY3Rpb24gPSBnZXRfbWFuZGF0b3J5X2hlYWRlcigKLSAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3QsIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUikKLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBjb25uZWN0aW9uX3Rva2VucyA9IHBhcnNlX3Rva2VuX2xp
c3QoY29ubmVjdGlvbikKLSAgICAgICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdG
YWlsZWQgdG8gcGFyc2UgJXM6ICVzJyAlIChjb21tb24uQ09OTkVDVElPTl9IRUFERVIsIGUpKQot
Ci0gICAgICAgIGNvbm5lY3Rpb25faXNfdmFsaWQgPSBGYWxzZQotICAgICAgICBmb3IgdG9rZW4g
aW4gY29ubmVjdGlvbl90b2tlbnM6Ci0gICAgICAgICAgICBpZiB0b2tlbi5sb3dlcigpID09IGNv
bW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRS5sb3dlcigpOgotICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb25faXNfdmFsaWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAg
aWYgbm90IGNvbm5lY3Rpb25faXNfdmFsaWQ6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJyVzIGhlYWRlciBkb2VzblwndCBjb250YWluICIl
cyInICUKLSAgICAgICAgICAgICAgICAoY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24u
VVBHUkFERV9DT05ORUNUSU9OX1RZUEUpKQotCi0gICAgZGVmIGRvX2hhbmRzaGFrZShzZWxmKToK
LSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9jb2RlID0gTm9uZQotICAgICAgICBzZWxm
Ll9yZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbiA9IE5vbmUKLQotICAgICAgICAjIFBhcnNpbmcuCi0K
LSAgICAgICAgY2hlY2tfcmVxdWVzdF9saW5lKHNlbGYuX3JlcXVlc3QpCi0KLSAgICAgICAgdmFs
aWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QsCi0gICAg
ICAgICAgICBjb21tb24uVVBHUkFERV9IRUFERVIsCi0gICAgICAgICAgICBjb21tb24uV0VCU09D
S0VUX1VQR1JBREVfVFlQRSkKLQotICAgICAgICBzZWxmLl92YWxpZGF0ZV9jb25uZWN0aW9uX2hl
YWRlcigpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXNvdXJjZSA9IHNlbGYuX3JlcXVl
c3QudXJpCi0KLSAgICAgICAgdW51c2VkX2hvc3QgPSBnZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxm
Ll9yZXF1ZXN0LCBjb21tb24uSE9TVF9IRUFERVIpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC53
c192ZXJzaW9uID0gc2VsZi5fY2hlY2tfdmVyc2lvbigpCi0KLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgc2VsZi5fZ2V0X29yaWdpbigpCi0gICAgICAgICAgICBzZWxmLl9zZXRfcHJvdG9jb2wo
KQotICAgICAgICAgICAgc2VsZi5fcGFyc2VfZXh0ZW5zaW9ucygpCi0KLSAgICAgICAgICAgICMg
S2V5IHZhbGlkYXRpb24sIHJlc3BvbnNlIGdlbmVyYXRpb24uCi0KLSAgICAgICAgICAgIGtleSA9
IHNlbGYuX2dldF9rZXkoKQotICAgICAgICAgICAgKGFjY2VwdCwgYWNjZXB0X2JpbmFyeSkgPSBj
b21wdXRlX2FjY2VwdChrZXkpCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAg
ICAgICAgICAgICAgJyVzOiAlciAoJXMpJywKLSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dF
QlNPQ0tFVF9BQ0NFUFRfSEVBREVSLAotICAgICAgICAgICAgICAgIGFjY2VwdCwKLSAgICAgICAg
ICAgICAgICB1dGlsLmhleGlmeShhY2NlcHRfYmluYXJ5KSkKLQotICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdQcm90b2NvbCB2ZXJzaW9uIGlzIFJGQyA2NDU1JykKLQotICAgICAgICAg
ICAgIyBTZXR1cCBleHRlbnNpb24gcHJvY2Vzc29ycy4KLQotICAgICAgICAgICAgcHJvY2Vzc29y
cyA9IFtdCi0gICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNp
b25zIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGZvciBleHRlbnNpb25fcmVxdWVzdCBp
biBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zOgotICAgICAgICAgICAgICAg
ICAgICBwcm9jZXNzb3IgPSBnZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcihleHRlbnNpb25fcmVxdWVz
dCkKLSAgICAgICAgICAgICAgICAgICAgIyBVbmtub3duIGV4dGVuc2lvbiByZXF1ZXN0cyBhcmUg
anVzdCBpZ25vcmVkLgotICAgICAgICAgICAgICAgICAgICBpZiBwcm9jZXNzb3IgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3JzLmFwcGVuZChwcm9jZXNzb3Ip
Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gcHJv
Y2Vzc29ycwotCi0gICAgICAgICAgICAjIExpc3Qgb2YgZXh0cmEgaGVhZGVycy4gVGhlIGV4dHJh
IGhhbmRzaGFrZSBoYW5kbGVyIG1heSBhZGQgaGVhZGVyCi0gICAgICAgICAgICAjIGRhdGEgYXMg
bmFtZS92YWx1ZSBwYWlycyB0byB0aGlzIGxpc3QgYW5kIHB5d2Vic29ja2V0IGFwcGVuZHMKLSAg
ICAgICAgICAgICMgdGhlbSB0byB0aGUgV2ViU29ja2V0IGhhbmRzaGFrZS4KLSAgICAgICAgICAg
IHNlbGYuX3JlcXVlc3QuZXh0cmFfaGVhZGVycyA9IFtdCi0KLSAgICAgICAgICAgICMgRXh0cmEg
aGFuZHNoYWtlIGhhbmRsZXIgbWF5IG1vZGlmeS9yZW1vdmUgcHJvY2Vzc29ycy4KLSAgICAgICAg
ICAgIHNlbGYuX2Rpc3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYuX3JlcXVlc3QpCi0g
ICAgICAgICAgICBwcm9jZXNzb3JzID0gZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3Nv
ciBpcyBub3QgTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVx
dWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykKLQotICAgICAgICAgICAgIyBBc2sgZWFjaCBw
cm9jZXNzb3IgaWYgdGhlcmUgYXJlIGV4dGVuc2lvbnMgb24gdGhlIHJlcXVlc3Qgd2hpY2gKLSAg
ICAgICAgICAgICMgY2Fubm90IGNvLWV4aXN0LiBXaGVuIHByb2Nlc3NvciBkZWNpZGVkIG90aGVy
IHByb2Nlc3NvcnMgY2Fubm90Ci0gICAgICAgICAgICAjIGNvLWV4aXN0IHdpdGggaXQsIHRoZSBw
cm9jZXNzb3IgbWFya3MgdGhlbSAob3IgaXRzZWxmKSBhcwotICAgICAgICAgICAgIyAiaW5hY3Rp
dmUiLiBUaGUgZmlyc3QgZXh0ZW5zaW9uIHByb2Nlc3NvciBoYXMgdGhlIHJpZ2h0IHRvCi0gICAg
ICAgICAgICAjIG1ha2UgdGhlIGZpbmFsIGNhbGwuCi0gICAgICAgICAgICBmb3IgcHJvY2Vzc29y
IGluIHJldmVyc2VkKHByb2Nlc3NvcnMpOgotICAgICAgICAgICAgICAgIGlmIHByb2Nlc3Nvci5p
c19hY3RpdmUoKToKLSAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLmNoZWNrX2NvbnNpc3Rl
bmN5X3dpdGhfb3RoZXJfcHJvY2Vzc29ycygKLSAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nl
c3NvcnMpCi0gICAgICAgICAgICBwcm9jZXNzb3JzID0gZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6
IHByb2Nlc3Nvci5pc19hY3RpdmUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJvY2Vzc29ycykKLQotICAgICAgICAgICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IFtdCi0KLSAg
ICAgICAgICAgICMgV2UgbmVlZCB0byB0YWtlIGludG8gYWNjb3VudCBvZiBtdXggZXh0ZW5zaW9u
IGhlcmUuCi0gICAgICAgICAgICAjIElmIG11eCBleHRlbnNpb24gZXhpc3RzOgotICAgICAgICAg
ICAgIyAtIFJlbW92ZSBwcm9jZXNzb3JzIG9mIGV4dGVuc2lvbnMgZm9yIGxvZ2ljYWwgY2hhbm5l
bCwKLSAgICAgICAgICAgICMgICB3aGljaCBhcmUgcHJvY2Vzc29ycyBsb2NhdGVkIGJlZm9yZSB0
aGUgbXV4IHByb2Nlc3NvcgotICAgICAgICAgICAgIyAtIFBhc3MgZXh0ZW5zaW9uIHJlcXVlc3Rz
IGZvciBsb2dpY2FsIGNoYW5uZWwgdG8gbXV4IHByb2Nlc3NvcgotICAgICAgICAgICAgIyAtIEF0
dGFjaCB0aGUgbXV4IHByb2Nlc3NvciB0byB0aGUgcmVxdWVzdC4gSXQgd2lsbCBiZSByZWZlcnJl
ZAotICAgICAgICAgICAgIyAgIGJ5IGRpc3BhdGNoZXIgdG8gc2VlIHdoZXRoZXIgdGhlIGRpc3Bh
dGNoZXIgc2hvdWxkIHVzZSBtdXgKLSAgICAgICAgICAgICMgICBoYW5kbGVyIG9yIG5vdC4KLSAg
ICAgICAgICAgIG11eF9pbmRleCA9IC0xCi0gICAgICAgICAgICBmb3IgaSwgcHJvY2Vzc29yIGlu
IGVudW1lcmF0ZShwcm9jZXNzb3JzKToKLSAgICAgICAgICAgICAgICBpZiBwcm9jZXNzb3IubmFt
ZSgpID09IGNvbW1vbi5NVVhfRVhURU5TSU9OOgotICAgICAgICAgICAgICAgICAgICBtdXhfaW5k
ZXggPSBpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBpZiBtdXhfaW5k
ZXggPj0gMDoKLSAgICAgICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucyA9IFtd
Ci0gICAgICAgICAgICAgICAgZm9yIHByb2Nlc3NvciBpbiBwcm9jZXNzb3JzWzptdXhfaW5kZXhd
OgotICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucy5hcHBlbmQo
cHJvY2Vzc29yLnJlcXVlc3QoKSkKLSAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLnNldF9h
Y3RpdmUoRmFsc2UpCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5tdXhfcHJvY2Vzc29y
ID0gcHJvY2Vzc29yc1ttdXhfaW5kZXhdCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5t
dXhfcHJvY2Vzc29yLnNldF9leHRlbnNpb25zKAotICAgICAgICAgICAgICAgICAgICBsb2dpY2Fs
X2NoYW5uZWxfZXh0ZW5zaW9ucykKLSAgICAgICAgICAgICAgICBwcm9jZXNzb3JzID0gZmlsdGVy
KGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3Nvci5pc19hY3RpdmUoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMpCi0KLSAgICAgICAgICAgIHN0cmVhbV9v
cHRpb25zID0gU3RyZWFtT3B0aW9ucygpCi0KLSAgICAgICAgICAgIGZvciBpbmRleCwgcHJvY2Vz
c29yIGluIGVudW1lcmF0ZShwcm9jZXNzb3JzKToKLSAgICAgICAgICAgICAgICBpZiBub3QgcHJv
Y2Vzc29yLmlzX2FjdGl2ZSgpOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAg
ICAgICAgICAgICAgZXh0ZW5zaW9uX3Jlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKQotICAgICAgICAgICAgICAgIGlmIGV4dGVuc2lvbl9yZXNwb25zZSBpcyBOb25l
OgotICAgICAgICAgICAgICAgICAgICAjIFJlamVjdGVkLgotICAgICAgICAgICAgICAgICAgICBj
b250aW51ZQotCi0gICAgICAgICAgICAgICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucy5hcHBlbmQoZXh0
ZW5zaW9uX3Jlc3BvbnNlKQotCi0gICAgICAgICAgICAgICAgcHJvY2Vzc29yLnNldHVwX3N0cmVh
bV9vcHRpb25zKHN0cmVhbV9vcHRpb25zKQotCi0gICAgICAgICAgICAgICAgaWYgbm90IGlzX2Nv
bXByZXNzaW9uX2V4dGVuc2lvbihwcm9jZXNzb3IubmFtZSgpKToKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWUKLQotICAgICAgICAgICAgICAgICMgSW5hY3RpdmF0ZSBhbGwgb2YgdGhlIGZv
bGxvd2luZyBjb21wcmVzc2lvbiBleHRlbnNpb25zLgotICAgICAgICAgICAgICAgIGZvciBqIGlu
IHhyYW5nZShpbmRleCArIDEsIGxlbihwcm9jZXNzb3JzKSk6Ci0gICAgICAgICAgICAgICAgICAg
IGlmIGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbihwcm9jZXNzb3JzW2pdLm5hbWUoKSk6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3JzW2pdLnNldF9hY3RpdmUoRmFsc2UpCi0KLSAg
ICAgICAgICAgIGlmIGxlbihhY2NlcHRlZF9leHRlbnNpb25zKSA+IDA6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zID0gYWNjZXB0ZWRfZXh0ZW5zaW9ucwotICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgJ0V4
dGVuc2lvbnMgYWNjZXB0ZWQ6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgbWFwKGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIubmFtZSwgYWNjZXB0ZWRfZXh0ZW5zaW9ucykpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyA9IE5v
bmUKLQotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19zdHJlYW0gPSBzZWxmLl9jcmVhdGVf
c3RyZWFtKHN0cmVhbV9vcHRpb25zKQotCi0gICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0Lndz
X3JlcXVlc3RlZF9wcm90b2NvbHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYgc2Vs
Zi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICByYWlz
ZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAnZG9fZXh0cmFf
aGFuZHNoYWtlIG11c3QgY2hvb3NlIG9uZSBzdWJwcm90b2NvbCBmcm9tICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICd3c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGFuZCBzZXQgaXQgdG8gd3NfcHJv
dG9jb2wnKQotICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sKHNlbGYuX3JlcXVl
c3Qud3NfcHJvdG9jb2wpCi0KLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0g
ICAgICAgICAgICAgICAgICAgICdTdWJwcm90b2NvbCBhY2NlcHRlZDogJXInLAotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sKQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgICAgICAgICAnd3NfcHJvdG9jb2wgbXVzdCBiZSBOb25lIHdoZW4gdGhlIGNsaWVu
dCBkaWRuXCd0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICdyZXF1ZXN0IGFueSBzdWJwcm90
b2NvbCcpCi0KLSAgICAgICAgICAgIHNlbGYuX3NlbmRfaGFuZHNoYWtlKGFjY2VwdCkKLSAgICAg
ICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgaWYgbm90IGUu
c3RhdHVzOgotICAgICAgICAgICAgICAgICMgRmFsbGJhY2sgdG8gNDAwIGJhZCByZXF1ZXN0IGJ5
IGRlZmF1bHQuCi0gICAgICAgICAgICAgICAgZS5zdGF0dXMgPSBjb21tb24uSFRUUF9TVEFUVVNf
QkFEX1JFUVVFU1QKLSAgICAgICAgICAgIHJhaXNlIGUKLQotICAgIGRlZiBfZ2V0X29yaWdpbihz
ZWxmKToKLSAgICAgICAgb3JpZ2luX2hlYWRlciA9IGNvbW1vbi5PUklHSU5fSEVBREVSCi0gICAg
ICAgIG9yaWdpbiA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQob3JpZ2luX2hlYWRlcikK
LSAgICAgICAgaWYgb3JpZ2luIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ0NsaWVudCByZXF1ZXN0IGRvZXMgbm90IGhhdmUgb3JpZ2luIGhlYWRlcicpCi0gICAgICAg
IHNlbGYuX3JlcXVlc3Qud3Nfb3JpZ2luID0gb3JpZ2luCi0KLSAgICBkZWYgX2NoZWNrX3ZlcnNp
b24oc2VsZik6Ci0gICAgICAgIHZlcnNpb24gPSBnZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9y
ZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLlNF
Q19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIpCi0gICAgICAgIGlmIHZlcnNpb24gPT0gX1ZFUlNJ
T05fTEFURVNUX1NUUklORzoKLSAgICAgICAgICAgIHJldHVybiBfVkVSU0lPTl9MQVRFU1QKLQot
ICAgICAgICBpZiB2ZXJzaW9uLmZpbmQoJywnKSA+PSAwOgotICAgICAgICAgICAgcmFpc2UgSGFu
ZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSB2ZXJzaW9ucyAoJXIp
IGFyZSBub3QgYWxsb3dlZCBmb3IgaGVhZGVyICVzJyAlCi0gICAgICAgICAgICAgICAgKHZlcnNp
b24sIGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSKSwKLSAgICAgICAgICAgICAg
ICBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotICAgICAgICByYWlzZSBW
ZXJzaW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgJ1Vuc3VwcG9ydGVkIHZlcnNpb24gJXIgZm9y
IGhlYWRlciAlcycgJQotICAgICAgICAgICAgKHZlcnNpb24sIGNvbW1vbi5TRUNfV0VCU09DS0VU
X1ZFUlNJT05fSEVBREVSKSwKLSAgICAgICAgICAgIHN1cHBvcnRlZF92ZXJzaW9ucz0nLCAnLmpv
aW4obWFwKHN0ciwgX1NVUFBPUlRFRF9WRVJTSU9OUykpKQotCi0gICAgZGVmIF9zZXRfcHJvdG9j
b2woc2VsZik6Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgPSBOb25lCi0KLSAg
ICAgICAgcHJvdG9jb2xfaGVhZGVyID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldCgKLSAg
ICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1BST1RPQ09MX0hFQURFUikKLQotICAgICAg
ICBpZiBwcm90b2NvbF9oZWFkZXIgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qu
d3NfcmVxdWVzdGVkX3Byb3RvY29scyA9IE5vbmUKLSAgICAgICAgICAgIHJldHVybgotCi0gICAg
ICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scyA9IHBhcnNlX3Rva2VuX2xp
c3QoCi0gICAgICAgICAgICBwcm90b2NvbF9oZWFkZXIpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnU3VicHJvdG9jb2xzIHJlcXVlc3RlZDogJXInLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzKQotCi0gICAgZGVmIF9w
YXJzZV9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICBleHRlbnNpb25zX2hlYWRlciA9IHNlbGYu
X3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tF
VF9FWFRFTlNJT05TX0hFQURFUikKLSAgICAgICAgaWYgbm90IGV4dGVuc2lvbnNfaGVhZGVyOgot
ICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucyA9IE5vbmUK
LSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucygK
LSAgICAgICAgICAgICAgICBleHRlbnNpb25zX2hlYWRlcikKLSAgICAgICAgZXhjZXB0IGNvbW1v
bi5FeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBIYW5k
c2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBwYXJzZSBTZWMtV2Vi
U29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyOiAlcicgJSBlKQotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygKLSAgICAgICAgICAgICdFeHRlbnNpb25zIHJlcXVlc3RlZDogJXInLAotICAgICAg
ICAgICAgbWFwKGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIubmFtZSwKLSAgICAgICAgICAgICAg
ICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zKSkKLQotICAgIGRlZiBfdmFs
aWRhdGVfa2V5KHNlbGYsIGtleSk6Ci0gICAgICAgIGlmIGtleS5maW5kKCcsJykgPj0gMDoKLSAg
ICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignUmVxdWVzdCBoYXMgbXVsdGlwbGUg
JXMgaGVhZGVyIGxpbmVzIG9yICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXIgXCcsXCc6ICVyJyAlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIs
IGtleSkpCi0KLSAgICAgICAgIyBWYWxpZGF0ZQotICAgICAgICBrZXlfaXNfdmFsaWQgPSBGYWxz
ZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIFZhbGlkYXRlIGtleSBieSBxdWljayByZWdl
eCBtYXRjaCBiZWZvcmUgcGFyc2luZyBieSBiYXNlNjQKLSAgICAgICAgICAgICMgbW9kdWxlLiBC
ZWNhdXNlIGJhc2U2NCBtb2R1bGUgc2tpcHMgaW52YWxpZCBjaGFyYWN0ZXJzLCB3ZSBoYXZlCi0g
ICAgICAgICAgICAjIHRvIGRvIHRoaXMgaW4gYWR2YW5jZSB0byBtYWtlIHRoaXMgc2VydmVyIHN0
cmljdGx5IHJlamVjdCBpbGxlZ2FsCi0gICAgICAgICAgICAjIGtleXMuCi0gICAgICAgICAgICBp
ZiBfU0VDX1dFQlNPQ0tFVF9LRVlfUkVHRVgubWF0Y2goa2V5KToKLSAgICAgICAgICAgICAgICBk
ZWNvZGVkX2tleSA9IGJhc2U2NC5iNjRkZWNvZGUoa2V5KQotICAgICAgICAgICAgICAgIGlmIGxl
bihkZWNvZGVkX2tleSkgPT0gMTY6Ci0gICAgICAgICAgICAgICAgICAgIGtleV9pc192YWxpZCA9
IFRydWUKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJvciBhcyBlOgotICAgICAgICAgICAgcGFzcwot
Ci0gICAgICAgIGlmIG5vdCBrZXlfaXNfdmFsaWQ6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hh
a2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0lsbGVnYWwgdmFsdWUgZm9yIGhlYWRlciAl
czogJXInICUKLSAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURF
Uiwga2V5KSkKLQotICAgICAgICByZXR1cm4gZGVjb2RlZF9rZXkKLQotICAgIGRlZiBfZ2V0X2tl
eShzZWxmKToKLSAgICAgICAga2V5ID0gZ2V0X21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAg
ICBzZWxmLl9yZXF1ZXN0LCBjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSKQotCi0gICAg
ICAgIGRlY29kZWRfa2V5ID0gc2VsZi5fdmFsaWRhdGVfa2V5KGtleSkKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnJXM6ICVyICglcyknLAotICAgICAgICAgICAg
Y29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwKLSAgICAgICAgICAgIGtleSwKLSAgICAg
ICAgICAgIHV0aWwuaGV4aWZ5KGRlY29kZWRfa2V5KSkKLQotICAgICAgICByZXR1cm4ga2V5Ci0K
LSAgICBkZWYgX2NyZWF0ZV9zdHJlYW0oc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICBy
ZXR1cm4gU3RyZWFtKHNlbGYuX3JlcXVlc3QsIHN0cmVhbV9vcHRpb25zKQotCi0gICAgZGVmIF9j
cmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlKHNlbGYsIGFjY2VwdCk6Ci0gICAgICAgIHJlc3BvbnNl
ID0gW10KLQotICAgICAgICByZXNwb25zZS5hcHBlbmQoJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcg
UHJvdG9jb2xzXHJcbicpCi0KLSAgICAgICAgIyBXZWJTb2NrZXQgaGVhZGVycwotICAgICAgICBy
ZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURF
X0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEUpKQotICAgICAgICByZXNwb25z
ZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hF
QURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFKSkKLSAgICAgICAgcmVzcG9uc2Uu
YXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9B
Q0NFUFRfSEVBREVSLCBhY2NlcHQpKQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3Rv
Y29sIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFk
ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVS
LAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpKQotICAgICAgICBp
ZiAoc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zIGlzIG5vdCBOb25lIGFuZAotICAgICAgICAg
ICAgbGVuKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykgIT0gMCk6Ci0gICAgICAgICAgICBy
ZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uU0VD
X1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiwKLSAgICAgICAgICAgICAgICBjb21tb24uZm9y
bWF0X2V4dGVuc2lvbnMoc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zKSkpCi0KLSAgICAgICAg
IyBIZWFkZXJzIG5vdCBzcGVjaWZpYyBmb3IgV2ViU29ja2V0Ci0gICAgICAgIGZvciBuYW1lLCB2
YWx1ZSBpbiBzZWxmLl9yZXF1ZXN0LmV4dHJhX2hlYWRlcnM6Ci0gICAgICAgICAgICByZXNwb25z
ZS5hcHBlbmQoZm9ybWF0X2hlYWRlcihuYW1lLCB2YWx1ZSkpCi0KLSAgICAgICAgcmVzcG9uc2Uu
YXBwZW5kKCdcclxuJykKLQotICAgICAgICByZXR1cm4gJycuam9pbihyZXNwb25zZSkKLQotICAg
IGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZiwgYWNjZXB0KToKLSAgICAgICAgcmF3X3Jlc3BvbnNl
ID0gc2VsZi5fY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZShhY2NlcHQpCi0gICAgICAgIHNlbGYu
X3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShyYXdfcmVzcG9uc2UpCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnU2VudCBzZXJ2ZXJcJ3Mgb3BlbmluZyBoYW5kc2hha2U6ICVyJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJhd19yZXNwb25zZSkKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpMDAucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHliaTAwLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4NzU3NzE3YTYzOWJhYzNkYjA1ZDRjYjMwMjdlMDU1ZmRiZjdmM2Nm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9k
X3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpMDAucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyOTMg
KzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3Ry
aWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIHRoZSBv
cGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQKLXByb3RvY29sIHZl
cnNpb24gSHlCaSAwMC4KLQotU3BlY2lmaWNhdGlvbjoKLWh0dHA6Ly90b29scy5pZXRmLm9yZy9o
dG1sL2RyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wMAotIiIiCi0KLQotIyBO
b3RlOiByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUvcmVhZCBhcmUgdXNlZCBpbiB0aGlzIG1vZHVs
ZSwgZXZlbiB0aG91Z2gKLSMgbW9kX3B5dGhvbiBkb2N1bWVudCBzYXlzIHRoYXQgdGhleSBzaG91
bGQgYmUgdXNlZCBvbmx5IGluIGNvbm5lY3Rpb24KLSMgaGFuZGxlcnMuIFVuZm9ydHVuYXRlbHks
IHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9ucy4gRm9yIGV4YW1wbGUsCi0jIHJlcXVlc3Qud3JpdGUv
cmVhZCBhcmUgbm90IHN1aXRhYmxlIGJlY2F1c2UgdGhleSBkb24ndCBhbGxvdyBkaXJlY3QgcmF3
IGJ5dGVzCi0jIHdyaXRpbmcvcmVhZGluZy4KLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IHJl
Ci1pbXBvcnQgc3RydWN0Ci0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZy
b20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3NQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5f
YmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5k
c2hha2UuX2Jhc2UgaW1wb3J0IGNoZWNrX3JlcXVlc3RfbGluZQotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBmb3JtYXRfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGdldF9kZWZhdWx0X3BvcnQKLWZyb20gbW9kX3B5
d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZ2V0X21hbmRhdG9yeV9oZWFkZXIKLWZy
b20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgcGFyc2VfaG9zdF9oZWFk
ZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVf
bWFuZGF0b3J5X2hlYWRlcgotCi0KLV9NQU5EQVRPUllfSEVBREVSUyA9IFsKLSAgICAjIGtleSwg
ZXhwZWN0ZWQgdmFsdWUgb3IgTm9uZQotICAgIFtjb21tb24uVVBHUkFERV9IRUFERVIsIGNvbW1v
bi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFX0hJWElFNzVdLAotICAgIFtjb21tb24uQ09OTkVDVElP
Tl9IRUFERVIsIGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRV0sCi1dCi0KLQotZGVmIF92
YWxpZGF0ZV9zdWJwcm90b2NvbChzdWJwcm90b2NvbCk6Ci0gICAgIiIiQ2hlY2tzIGlmIGNoYXJh
Y3RlcnMgaW4gc3VicHJvdG9jb2wgYXJlIGluIHJhbmdlIGJldHdlZW4gVSswMDIwIGFuZAotICAg
IFUrMDA3RS4gQSB2YWx1ZSBpbiB0aGUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBmaWVsZCBuZWVk
IHRvIHNhdGlzZnkgdGhpcwotICAgIHJlcXVpcmVtZW50LgotCi0gICAgU2VlIHRoZSBTZWN0aW9u
IDQuMS4gT3BlbmluZyBoYW5kc2hha2Ugb2YgdGhlIHNwZWMuCi0gICAgIiIiCi0KLSAgICBpZiBu
b3Qgc3VicHJvdG9jb2w6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSW52YWxp
ZCBzdWJwcm90b2NvbCBuYW1lOiBlbXB0eScpCi0KLSAgICAjIFBhcmFtZXRlciBzaG91bGQgYmUg
aW4gdGhlIHJhbmdlIFUrMDAyMCB0byBVKzAwN0UuCi0gICAgZm9yIGMgaW4gc3VicHJvdG9jb2w6
Ci0gICAgICAgIGlmIG5vdCAweDIwIDw9IG9yZChjKSA8PSAweDdlOgotICAgICAgICAgICAgcmFp
c2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdJbGxlZ2FsIGNoYXJhY3Rl
ciBpbiBzdWJwcm90b2NvbCBuYW1lOiAlcicgJSBjKQotCi0KLWRlZiBfY2hlY2tfaGVhZGVyX2xp
bmVzKHJlcXVlc3QsIG1hbmRhdG9yeV9oZWFkZXJzKToKLSAgICBjaGVja19yZXF1ZXN0X2xpbmUo
cmVxdWVzdCkKLQotICAgICMgVGhlIGV4cGVjdGVkIGZpZWxkIG5hbWVzLCBhbmQgdGhlIG1lYW5p
bmcgb2YgdGhlaXIgY29ycmVzcG9uZGluZwotICAgICMgdmFsdWVzLCBhcmUgYXMgZm9sbG93cy4K
LSAgICAjICB8VXBncmFkZXwgYW5kIHxDb25uZWN0aW9ufAotICAgIGZvciBrZXksIGV4cGVjdGVk
X3ZhbHVlIGluIG1hbmRhdG9yeV9oZWFkZXJzOgotICAgICAgICB2YWxpZGF0ZV9tYW5kYXRvcnlf
aGVhZGVyKHJlcXVlc3QsIGtleSwgZXhwZWN0ZWRfdmFsdWUpCi0KLQotZGVmIF9idWlsZF9sb2Nh
dGlvbihyZXF1ZXN0KToKLSAgICAiIiJCdWlsZCBXZWJTb2NrZXQgbG9jYXRpb24gZm9yIHJlcXVl
c3QuIiIiCi0KLSAgICBsb2NhdGlvbl9wYXJ0cyA9IFtdCi0gICAgaWYgcmVxdWVzdC5pc19odHRw
cygpOgotICAgICAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQoY29tbW9uLldFQl9TT0NLRVRfU0VD
VVJFX1NDSEVNRSkKLSAgICBlbHNlOgotICAgICAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQoY29t
bW9uLldFQl9TT0NLRVRfU0NIRU1FKQotICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZCgnOi8vJykK
LSAgICBob3N0LCBwb3J0ID0gcGFyc2VfaG9zdF9oZWFkZXIocmVxdWVzdCkKLSAgICBjb25uZWN0
aW9uX3BvcnQgPSByZXF1ZXN0LmNvbm5lY3Rpb24ubG9jYWxfYWRkclsxXQotICAgIGlmIHBvcnQg
IT0gY29ubmVjdGlvbl9wb3J0OgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0hl
YWRlci9jb25uZWN0aW9uIHBvcnQgbWlzbWF0Y2g6ICVkLyVkJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAocG9ydCwgY29ubmVjdGlvbl9wb3J0KSkKLSAgICBsb2NhdGlvbl9w
YXJ0cy5hcHBlbmQoaG9zdCkKLSAgICBpZiAocG9ydCAhPSBnZXRfZGVmYXVsdF9wb3J0KHJlcXVl
c3QuaXNfaHR0cHMoKSkpOgotICAgICAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQoJzonKQotICAg
ICAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQoc3RyKHBvcnQpKQotICAgIGxvY2F0aW9uX3BhcnRz
LmFwcGVuZChyZXF1ZXN0LnVucGFyc2VkX3VyaSkKLSAgICByZXR1cm4gJycuam9pbihsb2NhdGlv
bl9wYXJ0cykKLQotCi1jbGFzcyBIYW5kc2hha2VyKG9iamVjdCk6Ci0gICAgIiIiT3BlbmluZyBo
YW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24gSHlC
aSAwMC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRj
aGVyKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6
Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgICAgICBk
aXNwYXRjaGVyOiBEaXNwYXRjaGVyIChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KLQotICAgICAgICBI
YW5kc2hha2VyIHdpbGwgYWRkIGF0dHJpYnV0ZXMgc3VjaCBhcyB3c19yZXNvdXJjZSBpbiBwZXJm
b3JtaW5nCi0gICAgICAgIGhhbmRzaGFrZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5f
bG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmVx
dWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5fZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXIKLQot
ICAgIGRlZiBkb19oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgICIiIlBlcmZvcm0gV2ViU29ja2V0
IEhhbmRzaGFrZS4KLQotICAgICAgICBPbiBfcmVxdWVzdCwgd2Ugc2V0Ci0gICAgICAgICAgICB3
c19yZXNvdXJjZSwgd3NfcHJvdG9jb2wsIHdzX2xvY2F0aW9uLCB3c19vcmlnaW4sIHdzX2NoYWxs
ZW5nZSwKLSAgICAgICAgICAgIHdzX2NoYWxsZW5nZV9tZDU6IFdlYlNvY2tldCBoYW5kc2hha2Ug
aW5mb3JtYXRpb24uCi0gICAgICAgICAgICB3c19zdHJlYW06IEZyYW1lIGdlbmVyYXRpb24vcGFy
c2luZyBjbGFzcy4KLSAgICAgICAgICAgIHdzX3ZlcnNpb246IFByb3RvY29sIHZlcnNpb24uCi0K
LSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgSGFuZHNoYWtlRXhjZXB0aW9uOiB3aGVuIGFu
eSBlcnJvciBoYXBwZW5lZCBpbiBwYXJzaW5nIHRoZSBvcGVuaW5nCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhhbmRzaGFrZSByZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAg
ICAjIDUuMSBSZWFkaW5nIHRoZSBjbGllbnQncyBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgICAgICAg
IyBkaXNwYXRjaGVyIHNldHMgaXQgaW4gc2VsZi5fcmVxdWVzdC4KLSAgICAgICAgX2NoZWNrX2hl
YWRlcl9saW5lcyhzZWxmLl9yZXF1ZXN0LCBfTUFOREFUT1JZX0hFQURFUlMpCi0gICAgICAgIHNl
bGYuX3NldF9yZXNvdXJjZSgpCi0gICAgICAgIHNlbGYuX3NldF9zdWJwcm90b2NvbCgpCi0gICAg
ICAgIHNlbGYuX3NldF9sb2NhdGlvbigpCi0gICAgICAgIHNlbGYuX3NldF9vcmlnaW4oKQotICAg
ICAgICBzZWxmLl9zZXRfY2hhbGxlbmdlX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5fc2V0X3By
b3RvY29sX3ZlcnNpb24oKQotCi0gICAgICAgIHNlbGYuX2Rpc3BhdGNoZXIuZG9fZXh0cmFfaGFu
ZHNoYWtlKHNlbGYuX3JlcXVlc3QpCi0KLSAgICAgICAgc2VsZi5fc2VuZF9oYW5kc2hha2UoKQot
Ci0gICAgZGVmIF9zZXRfcmVzb3VyY2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nf
cmVzb3VyY2UgPSBzZWxmLl9yZXF1ZXN0LnVyaQotCi0gICAgZGVmIF9zZXRfc3VicHJvdG9jb2wo
c2VsZik6Ci0gICAgICAgICMgfFNlYy1XZWJTb2NrZXQtUHJvdG9jb2x8Ci0gICAgICAgIHN1YnBy
b3RvY29sID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldCgKLSAgICAgICAgICAgIGNvbW1v
bi5TRUNfV0VCU09DS0VUX1BST1RPQ09MX0hFQURFUikKLSAgICAgICAgaWYgc3VicHJvdG9jb2wg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2woc3VicHJvdG9j
b2wpCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgPSBzdWJwcm90b2NvbAotCi0g
ICAgZGVmIF9zZXRfbG9jYXRpb24oc2VsZik6Ci0gICAgICAgICMgfEhvc3R8Ci0gICAgICAgIGhv
c3QgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KGNvbW1vbi5IT1NUX0hFQURFUikKLSAg
ICAgICAgaWYgaG9zdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nf
bG9jYXRpb24gPSBfYnVpbGRfbG9jYXRpb24oc2VsZi5fcmVxdWVzdCkKLSAgICAgICAgIyBUT0RP
KHVrYWkpOiBjaGVjayBob3N0IGlzIHRoaXMgaG9zdC4KLQotICAgIGRlZiBfc2V0X29yaWdpbihz
ZWxmKToKLSAgICAgICAgIyB8T3JpZ2lufAotICAgICAgICBvcmlnaW4gPSBzZWxmLl9yZXF1ZXN0
LmhlYWRlcnNfaW4uZ2V0KGNvbW1vbi5PUklHSU5fSEVBREVSKQotICAgICAgICBpZiBvcmlnaW4g
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX29yaWdpbiA9IG9yaWdp
bgotCi0gICAgZGVmIF9zZXRfcHJvdG9jb2xfdmVyc2lvbihzZWxmKToKLSAgICAgICAgIyB8U2Vj
LVdlYlNvY2tldC1EcmFmdHwKLSAgICAgICAgZHJhZnQgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNf
aW4uZ2V0KGNvbW1vbi5TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUikKLSAgICAgICAgaWYgZHJh
ZnQgaXMgbm90IE5vbmUgYW5kIGRyYWZ0ICE9ICcwJzoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRz
aGFrZUV4Y2VwdGlvbignSWxsZWdhbCB2YWx1ZSBmb3IgJXM6ICVzJyAlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURF
UiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZnQpKQotCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUHJvdG9jb2wgdmVyc2lvbiBpcyBIeUJpIDAwJykKLSAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c192ZXJzaW9uID0gY29tbW9uLlZFUlNJT05fSFlCSTAwCi0g
ICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nfc3RyZWFtID0gU3RyZWFtSGl4aWU3NShzZWxmLl9yZXF1
ZXN0LCBUcnVlKQotCi0gICAgZGVmIF9zZXRfY2hhbGxlbmdlX3Jlc3BvbnNlKHNlbGYpOgotICAg
ICAgICAjIDUuMiA0LTguCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlID0gc2Vs
Zi5fZ2V0X2NoYWxsZW5nZSgpCi0gICAgICAgICMgNS4yIDkuIGxldCAvcmVzcG9uc2UvIGJlIHRo
ZSBNRDUgZmludGVycHJpbnQgb2YgL2NoYWxsZW5nZS8KLSAgICAgICAgc2VsZi5fcmVxdWVzdC53
c19jaGFsbGVuZ2VfbWQ1ID0gdXRpbC5tZDVfaGFzaCgKLSAgICAgICAgICAgIHNlbGYuX3JlcXVl
c3Qud3NfY2hhbGxlbmdlKS5kaWdlc3QoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0g
ICAgICAgICAgICAnQ2hhbGxlbmdlOiAlciAoJXMpJywKLSAgICAgICAgICAgIHNlbGYuX3JlcXVl
c3Qud3NfY2hhbGxlbmdlLAotICAgICAgICAgICAgdXRpbC5oZXhpZnkoc2VsZi5fcmVxdWVzdC53
c19jaGFsbGVuZ2UpKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAn
Q2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMpJywKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qu
d3NfY2hhbGxlbmdlX21kNSwKLSAgICAgICAgICAgIHV0aWwuaGV4aWZ5KHNlbGYuX3JlcXVlc3Qu
d3NfY2hhbGxlbmdlX21kNSkpCi0KLSAgICBkZWYgX2dldF9rZXlfdmFsdWUoc2VsZiwga2V5X2Zp
ZWxkKToKLSAgICAgICAga2V5X3ZhbHVlID0gZ2V0X21hbmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVx
dWVzdCwga2V5X2ZpZWxkKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXM6ICVyJywg
a2V5X2ZpZWxkLCBrZXlfdmFsdWUpCi0KLSAgICAgICAgIyA1LjIgNC4gbGV0IC9rZXktbnVtYmVy
X24vIGJlIHRoZSBkaWdpdHMgKGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlCi0gICAgICAgICMgVSsw
MDMwIERJR0lUIFpFUk8gKDApIHRvIFUrMDAzOSBESUdJVCBOSU5FICg5KSkgaW4gL2tleV9uLywK
LSAgICAgICAgIyBpbnRlcnByZXRlZCBhcyBhIGJhc2UgdGVuIGludGVnZXIsIGlnbm9yaW5nIGFs
bCBvdGhlciBjaGFyYWN0ZXJzCi0gICAgICAgICMgaW4gL2tleV9uLy4KLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAga2V5X251bWJlciA9IGludChyZS5zdWIoIlxcRCIsICIiLCBrZXlfdmFsdWUp
KQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24o
JyVzIGZpZWxkIGNvbnRhaW5zIG5vIGRpZ2l0JyAlIGtleV9maWVsZCkKLSAgICAgICAgIyA1LjIg
NS4gbGV0IC9zcGFjZXNfbi8gYmUgdGhlIG51bWJlciBvZiBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVy
cwotICAgICAgICAjIGluIC9rZXlfbi8uCi0gICAgICAgIHNwYWNlcyA9IHJlLnN1Ym4oIiAiLCAi
Iiwga2V5X3ZhbHVlKVsxXQotICAgICAgICBpZiBzcGFjZXMgPT0gMDoKLSAgICAgICAgICAgIHJh
aXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignJXMgZmllbGQgY29udGFpbnMgbm8gc3BhY2UnICUga2V5
X2ZpZWxkKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICclczog
S2V5LW51bWJlciBpcyAlZCBhbmQgbnVtYmVyIG9mIHNwYWNlcyBpcyAlZCcsCi0gICAgICAgICAg
ICBrZXlfZmllbGQsIGtleV9udW1iZXIsIHNwYWNlcykKLQotICAgICAgICAjIDUuMiA2LiBpZiAv
a2V5LW51bWJlcl9uLyBpcyBub3QgYW4gaW50ZWdyYWwgbXVsdGlwbGUgb2YgL3NwYWNlc19uLwot
ICAgICAgICAjIHRoZW4gYWJvcnQgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLgotICAgICAgICBp
ZiBrZXlfbnVtYmVyICUgc3BhY2VzICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJyVzOiBLZXktbnVtYmVyICglZCkgaXMgbm90IGFu
IGludGVncmFsIG11bHRpcGxlIG9mIHNwYWNlcyAnCi0gICAgICAgICAgICAgICAgJyglZCknICUg
KGtleV9maWVsZCwga2V5X251bWJlciwgc3BhY2VzKSkKLSAgICAgICAgIyA1LjIgNy4gbGV0IC9w
YXJ0X24vIGJlIC9rZXktbnVtYmVyX24vIGRpdmlkZWQgYnkgL3NwYWNlc19uLy4KLSAgICAgICAg
cGFydCA9IGtleV9udW1iZXIgLyBzcGFjZXMKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCcl
czogUGFydCBpcyAlZCcsIGtleV9maWVsZCwgcGFydCkKLSAgICAgICAgcmV0dXJuIHBhcnQKLQot
ICAgIGRlZiBfZ2V0X2NoYWxsZW5nZShzZWxmKToKLSAgICAgICAgIyA1LjIgNC03LgotICAgICAg
ICBrZXkxID0gc2VsZi5fZ2V0X2tleV92YWx1ZShjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkxX0hF
QURFUikKLSAgICAgICAga2V5MiA9IHNlbGYuX2dldF9rZXlfdmFsdWUoY29tbW9uLlNFQ19XRUJT
T0NLRVRfS0VZMl9IRUFERVIpCi0gICAgICAgICMgNS4yIDguIGxldCAvY2hhbGxlbmdlLyBiZSB0
aGUgY29uY2F0ZW5hdGlvbiBvZiAvcGFydF8xLywKLSAgICAgICAgY2hhbGxlbmdlID0gJycKLSAg
ICAgICAgY2hhbGxlbmdlICs9IHN0cnVjdC5wYWNrKCchSScsIGtleTEpICAjIG5ldHdvcmsgYnl0
ZW9yZGVyIGludAotICAgICAgICBjaGFsbGVuZ2UgKz0gc3RydWN0LnBhY2soJyFJJywga2V5Mikg
ICMgbmV0d29yayBieXRlb3JkZXIgaW50Ci0gICAgICAgIGNoYWxsZW5nZSArPSBzZWxmLl9yZXF1
ZXN0LmNvbm5lY3Rpb24ucmVhZCg4KQotICAgICAgICByZXR1cm4gY2hhbGxlbmdlCi0KLSAgICBk
ZWYgX3NlbmRfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICByZXNwb25zZSA9IFtdCi0KLSAgICAg
ICAgIyA1LjIgMTAuIHNlbmQgdGhlIGZvbGxvd2luZyBsaW5lLgotICAgICAgICByZXNwb25zZS5h
cHBlbmQoJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicpCi0K
LSAgICAgICAgIyA1LjIgMTEuIHNlbmQgdGhlIGZvbGxvd2luZyBmaWVsZHMgdG8gdGhlIGNsaWVu
dC4KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBj
b21tb24uVVBHUkFERV9IRUFERVIsIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFX0hJWElF
NzUpKQotICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAg
IGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBF
KSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBj
b21tb24uU0VDX1dFQlNPQ0tFVF9MT0NBVElPTl9IRUFERVIsIHNlbGYuX3JlcXVlc3Qud3NfbG9j
YXRpb24pKQotICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAg
ICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX09SSUdJTl9IRUFERVIsIHNlbGYuX3JlcXVlc3Qud3Nf
b3JpZ2luKSkKLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbDoKLSAgICAgICAg
ICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgICAgIGNvbW1v
bi5TRUNfV0VCU09DS0VUX1BST1RPQ09MX0hFQURFUiwKLSAgICAgICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LndzX3Byb3RvY29sKSkKLSAgICAgICAgIyA1LjIgMTIuIHNlbmQgdHdvIGJ5dGVzIDB4
MEQgMHgwQS4KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdcclxuJykKLSAgICAgICAgIyA1LjIg
MTMuIHNlbmQgL3Jlc3BvbnNlLwotICAgICAgICByZXNwb25zZS5hcHBlbmQoc2VsZi5fcmVxdWVz
dC53c19jaGFsbGVuZ2VfbWQ1KQotCi0gICAgICAgIHJhd19yZXNwb25zZSA9ICcnLmpvaW4ocmVz
cG9uc2UpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShyYXdfcmVzcG9u
c2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VudCBzZXJ2ZXJcJ3Mgb3BlbmluZyBo
YW5kc2hha2U6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd19yZXNwb25zZSkK
LQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFr
ZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjU3YTQ4YzYy
N2JiZDI4MDM2Y2U2YjczN2M2NWFiZDNlZDA2YmVjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNj
LWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNv
Y2tldC9oYW5kc2hha2UvX2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2Uv
aHliaS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpMDAucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwNmU3NjM4NTk3OTg1YTk2YTRjMDBlYTAwNTJhMGQzNzE3ZTQ0MDNjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNTcg
KzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3Ry
aWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxl
ciBmb3IgbW9kX3B5d2Vic29ja2V0LgotCi1BcGFjaGUgSFRUUCBTZXJ2ZXIgYW5kIG1vZF9weXRo
b24gbXVzdCBiZSBjb25maWd1cmVkIHN1Y2ggdGhhdCB0aGlzCi1mdW5jdGlvbiBpcyBjYWxsZWQg
dG8gaGFuZGxlIFdlYlNvY2tldCByZXF1ZXN0LgotIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLQot
ZnJvbSBtb2RfcHl0aG9uIGltcG9ydCBhcGFjaGUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3BhdGNoCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBv
cnQgdXRpbAotCi0KLSMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdGhlIGhhbmRsZXIgcm9vdCBk
aXJlY3RvcnkuCi1fUFlPUFRfSEFORExFUl9ST09UID0gJ21vZF9weXdlYnNvY2tldC5oYW5kbGVy
X3Jvb3QnCi0KLSMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdGhlIGhhbmRsZXIgc2NhbiBkaXJl
Y3RvcnkuCi0jIFRoaXMgbXVzdCBiZSBhIGRpcmVjdG9yeSB1bmRlciB0aGUgcm9vdCBkaXJlY3Rv
cnkuCi0jIFRoZSBkZWZhdWx0IGlzIHRoZSByb290IGRpcmVjdG9yeS4KLV9QWU9QVF9IQU5ETEVS
X1NDQU4gPSAnbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfc2NhbicKLQotIyBQeXRob25PcHRpb24g
dG8gYWxsb3cgaGFuZGxlcnMgd2hvc2UgY2Fub25pY2FsIHBhdGggaXMKLSMgbm90IHVuZGVyIHRo
ZSByb290IGRpcmVjdG9yeS4gSXQncyBkaXNhbGxvd2VkIGJ5IGRlZmF1bHQuCi0jIFNldCB0aGlz
IG9wdGlvbiB3aXRoIHZhbHVlIG9mICd5ZXMnIHRvIGFsbG93LgotX1BZT1BUX0FMTE9XX0hBTkRM
RVJTX09VVFNJREVfUk9PVCA9ICgKLSAgICAnbW9kX3B5d2Vic29ja2V0LmFsbG93X2hhbmRsZXJz
X291dHNpZGVfcm9vdF9kaXInKQotIyBNYXAgZnJvbSB2YWx1ZXMgdG8gdGhlaXIgbWVhbmluZ3Mu
ICdZZXMnIGFuZCAnTm8nIGFyZSBhbGxvd2VkIGp1c3QgZm9yCi0jIGNvbXBhdGliaWxpdHkuCi1f
UFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9ST09UX0RFRklOSVRJT04gPSB7Ci0gICAgJ29m
Zic6IEZhbHNlLCAnbm8nOiBGYWxzZSwgJ29uJzogVHJ1ZSwgJ3llcyc6IFRydWV9Ci0KLSMgKE9i
c29sZXRlIG9wdGlvbi4gSWdub3JlZC4pCi0jIFB5dGhvbk9wdGlvbiB0byBzcGVjaWZ5IHRvIGFs
bG93IGhhbmRzaGFrZSBkZWZpbmVkIGluIEhpeGllIDc1IHZlcnNpb24KLSMgcHJvdG9jb2wuIFRo
ZSBkZWZhdWx0IGlzIE5vbmUgKE9mZikKLV9QWU9QVF9BTExPV19EUkFGVDc1ID0gJ21vZF9weXdl
YnNvY2tldC5hbGxvd19kcmFmdDc1JwotIyBNYXAgZnJvbSB2YWx1ZXMgdG8gdGhlaXIgbWVhbmlu
Z3MuCi1fUFlPUFRfQUxMT1dfRFJBRlQ3NV9ERUZJTklUSU9OID0geydvZmYnOiBGYWxzZSwgJ29u
JzogVHJ1ZX0KLQotCi1jbGFzcyBBcGFjaGVMb2dIYW5kbGVyKGxvZ2dpbmcuSGFuZGxlcik6Ci0K
LSAgICAiIiJXcmFwcGVyIGxvZ2dpbmcuSGFuZGxlciB0byBlbWl0IGxvZyBtZXNzYWdlIHRvIGFw
YWNoZSdzIGVycm9yLmxvZy4iIiIKLQotICAgIF9MRVZFTFMgPSB7Ci0gICAgICAgIGxvZ2dpbmcu
REVCVUc6IGFwYWNoZS5BUExPR19ERUJVRywKLSAgICAgICAgbG9nZ2luZy5JTkZPOiBhcGFjaGUu
QVBMT0dfSU5GTywKLSAgICAgICAgbG9nZ2luZy5XQVJOSU5HOiBhcGFjaGUuQVBMT0dfV0FSTklO
RywKLSAgICAgICAgbG9nZ2luZy5FUlJPUjogYXBhY2hlLkFQTE9HX0VSUiwKLSAgICAgICAgbG9n
Z2luZy5DUklUSUNBTDogYXBhY2hlLkFQTE9HX0NSSVQsCi0gICAgICAgIH0KLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCByZXF1ZXN0PU5vbmUpOgotICAgICAgICBsb2dnaW5nLkhhbmRsZXIuX19p
bml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fbG9nX2Vycm9yID0gYXBhY2hlLmxvZ19lcnJvcgot
ICAgICAgICBpZiByZXF1ZXN0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fbG9nX2Vy
cm9yID0gcmVxdWVzdC5sb2dfZXJyb3IKLQotICAgICAgICAjIFRpbWUgYW5kIGxldmVsIHdpbGwg
YmUgcHJpbnRlZCBieSBBcGFjaGUuCi0gICAgICAgIHNlbGYuX2Zvcm1hdHRlciA9IGxvZ2dpbmcu
Rm9ybWF0dGVyKCclKG5hbWUpczogJShtZXNzYWdlKXMnKQotCi0gICAgZGVmIGVtaXQoc2VsZiwg
cmVjb3JkKToKLSAgICAgICAgYXBhY2hlX2xldmVsID0gYXBhY2hlLkFQTE9HX0RFQlVHCi0gICAg
ICAgIGlmIHJlY29yZC5sZXZlbG5vIGluIEFwYWNoZUxvZ0hhbmRsZXIuX0xFVkVMUzoKLSAgICAg
ICAgICAgIGFwYWNoZV9sZXZlbCA9IEFwYWNoZUxvZ0hhbmRsZXIuX0xFVkVMU1tyZWNvcmQubGV2
ZWxub10KLQotICAgICAgICBtc2cgPSBzZWxmLl9mb3JtYXR0ZXIuZm9ybWF0KHJlY29yZCkKLQot
ICAgICAgICAjICJzZXJ2ZXIiIHBhcmFtZXRlciBtdXN0IGJlIHBhc3NlZCB0byBoYXZlICJsZXZl
bCIgcGFyYW1ldGVyIHdvcmsuCi0gICAgICAgICMgSWYgb25seSAibGV2ZWwiIHBhcmFtZXRlciBp
cyBwYXNzZWQsIG5vdGhpbmcgc2hvd3MgdXAgb24gQXBhY2hlJ3MKLSAgICAgICAgIyBsb2cuIEhv
d2V2ZXIsIGF0IHRoaXMgcG9pbnQsIHdlIGNhbm5vdCBnZXQgdGhlIHNlcnZlciBvYmplY3Qgb2Yg
dGhlCi0gICAgICAgICMgdmlydHVhbCBob3N0IHdoaWNoIHdpbGwgcHJvY2VzcyBXZWJTb2NrZXQg
cmVxdWVzdHMuIFRoZSBvbmx5IHNlcnZlcgotICAgICAgICAjIG9iamVjdCB3ZSBjYW4gZ2V0IGhl
cmUgaXMgYXBhY2hlLm1haW5fc2VydmVyLiBCdXQgV2hlcmV2ZXIgKHNlcnZlcgotICAgICAgICAj
IGNvbmZpZ3VyYXRpb24gY29udGV4dCBvciB2aXJ0dWFsIGhvc3QgY29udGV4dCkgd2UgcHV0Ci0g
ICAgICAgICMgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBkaXJlY3RpdmUsIGFwYWNoZS5tYWlu
X3NlcnZlciBqdXN0IHBvaW50cwotICAgICAgICAjIHRoZSBtYWluIHNlcnZlciBpbnN0YW5jZSAo
bm90IGFueSBvZiB2aXJ0dWFsIHNlcnZlciBpbnN0YW5jZSkuIFRoZW4sCi0gICAgICAgICMgQXBh
Y2hlIGZvbGxvd3MgTG9nTGV2ZWwgZGlyZWN0aXZlIGluIHRoZSBzZXJ2ZXIgY29uZmlndXJhdGlv
biBjb250ZXh0Ci0gICAgICAgICMgdG8gZmlsdGVyIGxvZ3MuIFNvLCB3ZSBuZWVkIHRvIHNwZWNp
ZnkgTG9nTGV2ZWwgaW4gdGhlIHNlcnZlcgotICAgICAgICAjIGNvbmZpZ3VyYXRpb24gY29udGV4
dC4gRXZlbiBpZiB3ZSBzcGVjaWZ5ICJMb2dMZXZlbCBkZWJ1ZyIgaW4gdGhlCi0gICAgICAgICMg
dmlydHVhbCBob3N0IGNvbnRleHQgd2hpY2ggYWN0dWFsbHkgaGFuZGxlcyBXZWJTb2NrZXQgY29u
bmVjdGlvbnMsCi0gICAgICAgICMgREVCVUcgbGV2ZWwgbG9ncyBuZXZlciBzaG93IHVwIHVubGVz
cyAiTG9nTGV2ZWwgZGVidWciIGlzIHNwZWNpZmllZAotICAgICAgICAjIGluIHRoZSBzZXJ2ZXIg
Y29uZmlndXJhdGlvbiBjb250ZXh0LgotICAgICAgICAjCi0gICAgICAgICMgVE9ETyh0eW9zaGlu
byk6IFByb3ZpZGUgbG9nZ2luZyBtZXRob2RzIG9uIHJlcXVlc3Qgb2JqZWN0LiBXaGVuCi0gICAg
ICAgICMgcmVxdWVzdCBpcyBtcF9yZXF1ZXN0IG9iamVjdCAod2hlbiB1c2VkIHRvZ2V0aGVyIHdp
dGggQXBhY2hlKSwgdGhlCi0gICAgICAgICMgbWV0aG9kcyBjYWxsIHJlcXVlc3QubG9nX2Vycm9y
IGluZGlyZWN0bHkuIFdoZW4gcmVxdWVzdCBpcwotICAgICAgICAjIF9TdGFuZGFsb25lUmVxdWVz
dCwgdGhlIG1ldGhvZHMgY2FsbCBQeXRob24ncyBsb2dnaW5nIGZhY2lsaXR5IHdoaWNoCi0gICAg
ICAgICMgd2UgY3JlYXRlIGluIHN0YW5kYWxvbmUucHkuCi0gICAgICAgIHNlbGYuX2xvZ19lcnJv
cihtc2csIGFwYWNoZV9sZXZlbCwgYXBhY2hlLm1haW5fc2VydmVyKQotCi0KLWRlZiBfY29uZmln
dXJlX2xvZ2dpbmcoKToKLSAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCi0gICAgIyBM
b2dzIGFyZSBmaWx0ZXJlZCBieSBBcGFjaGUgYmFzZWQgb24gTG9nTGV2ZWwgZGlyZWN0aXZlIGlu
IEFwYWNoZQotICAgICMgY29uZmlndXJhdGlvbiBmaWxlLiBXZSBtdXN0IGp1c3QgcGFzcyBsb2dz
IGZvciBhbGwgbGV2ZWxzIHRvCi0gICAgIyBBcGFjaGVMb2dIYW5kbGVyLgotICAgIGxvZ2dlci5z
ZXRMZXZlbChsb2dnaW5nLkRFQlVHKQotICAgIGxvZ2dlci5hZGRIYW5kbGVyKEFwYWNoZUxvZ0hh
bmRsZXIoKSkKLQotCi1fY29uZmlndXJlX2xvZ2dpbmcoKQotCi1fTE9HR0VSID0gbG9nZ2luZy5n
ZXRMb2dnZXIoX19uYW1lX18pCi0KLQotZGVmIF9wYXJzZV9vcHRpb24obmFtZSwgdmFsdWUsIGRl
ZmluaXRpb24pOgotICAgICIiIlJldHVybiB0aGUgbWVhbmluZyBvZiBhIG9wdGlvbiB2YWx1ZS4i
IiIKLSAgICBpZiB2YWx1ZSBpcyBOb25lOgotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIG1l
YW5pbmcgPSBkZWZpbml0aW9uLmdldCh2YWx1ZS5sb3dlcigpKQotICAgIGlmIG1lYW5pbmcgaXMg
Tm9uZToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlIGZvciBQeXRob25P
cHRpb24gJXM6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAobmFtZSwgdmFsdWUpKQot
ICAgIHJldHVybiBtZWFuaW5nCi0KLQotZGVmIF9jcmVhdGVfZGlzcGF0Y2hlcigpOgotICAgICIi
IkluaXRpYWxpemUgYSBkaXNwYXRjaC5EaXNwYXRjaGVyLiIiIgotICAgIF9MT0dHRVIuaW5mbygn
SW5pdGlhbGl6aW5nIERpc3BhdGNoZXInKQotCi0gICAgb3B0aW9ucyA9IGFwYWNoZS5tYWluX3Nl
cnZlci5nZXRfb3B0aW9ucygpCi0KLSAgICBoYW5kbGVyX3Jvb3QgPSBvcHRpb25zLmdldChfUFlP
UFRfSEFORExFUl9ST09ULCBOb25lKQotICAgIGlmIG5vdCBoYW5kbGVyX3Jvb3Q6Ci0gICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignUHl0aG9uT3B0aW9uICVzIGlzIG5vdCBkZWZpbmVkJyAlIF9QWU9Q
VF9IQU5ETEVSX1JPT1QsCi0gICAgICAgICAgICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfRVJS
KQotCi0gICAgaGFuZGxlcl9zY2FuID0gb3B0aW9ucy5nZXQoX1BZT1BUX0hBTkRMRVJfU0NBTiwg
aGFuZGxlcl9yb290KQotCi0gICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290ID0gX3BhcnNl
X29wdGlvbigKLSAgICAgICAgX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVCwKLSAg
ICAgICAgb3B0aW9ucy5nZXQoX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVCksCi0g
ICAgICAgIF9QWU9QVF9BTExPV19IQU5ETEVSU19PVVRTSURFX1JPT1RfREVGSU5JVElPTikKLQot
ICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKAotICAgICAgICBoYW5kbGVyX3Jv
b3QsIGhhbmRsZXJfc2NhbiwgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290KQotCi0gICAgZm9y
IHdhcm5pbmcgaW4gZGlzcGF0Y2hlci5zb3VyY2Vfd2FybmluZ3MoKToKLSAgICAgICAgYXBhY2hl
LmxvZ19lcnJvcigKLSAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IFdhcm5pbmcgaW4gc291
cmNlIGxvYWRpbmc6ICVzJyAlIHdhcm5pbmcsCi0gICAgICAgICAgICBhcGFjaGUuQVBMT0dfV0FS
TklORykKLQotICAgIHJldHVybiBkaXNwYXRjaGVyCi0KLQotIyBJbml0aWFsaXplCi1fZGlzcGF0
Y2hlciA9IF9jcmVhdGVfZGlzcGF0Y2hlcigpCi0KLQotZGVmIGhlYWRlcnBhcnNlcmhhbmRsZXIo
cmVxdWVzdCk6Ci0gICAgIiIiSGFuZGxlIHJlcXVlc3QuCi0KLSAgICBBcmdzOgotICAgICAgICBy
ZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0KLSAgICBUaGlzIGZ1bmN0aW9uIGlzIG5hbWVk
IGhlYWRlcnBhcnNlcmhhbmRsZXIgYmVjYXVzZSBpdCBpcyB0aGUgZGVmYXVsdAotICAgIG5hbWUg
Zm9yIGEgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlci4KLSAgICAiIiIKLSAgICBoYW5kc2hha2Vf
aXNfZG9uZSA9IEZhbHNlCi0gICAgdHJ5OgotICAgICAgICAjIEZhbGxiYWNrIHRvIGRlZmF1bHQg
aHR0cCBoYW5kbGVyIGZvciByZXF1ZXN0IHBhdGhzIGZvciB3aGljaAotICAgICAgICAjIHdlIGRv
bid0IGhhdmUgcmVxdWVzdCBoYW5kbGVycy4KLSAgICAgICAgaWYgbm90IF9kaXNwYXRjaGVyLmdl
dF9oYW5kbGVyX3N1aXRlKHJlcXVlc3QudXJpKToKLSAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vy
cm9yKAotICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IE5vIGhhbmRsZXIgZm9yIHJl
c291cmNlOiAlcicgJSByZXF1ZXN0LnVyaSwKLSAgICAgICAgICAgICAgICBhcGFjaGUuQVBMT0df
SU5GTykKLSAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAgICAgICAgICdt
b2RfcHl3ZWJzb2NrZXQ6IEZhbGxiYWNrIHRvIEFwYWNoZScsIGFwYWNoZS5BUExPR19JTkZPKQot
ICAgICAgICAgICAgcmV0dXJuIGFwYWNoZS5ERUNMSU5FRAotICAgIGV4Y2VwdCBkaXNwYXRjaC5E
aXNwYXRjaEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAg
ICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IERpc3BhdGNoIGZhaWxlZCBmb3IgZXJyb3I6ICVzJyAl
IGUsCi0gICAgICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICAgICAgaWYgbm90IGhhbmRz
aGFrZV9pc19kb25lOgotICAgICAgICAgICAgcmV0dXJuIGUuc3RhdHVzCi0KLSAgICB0cnk6Ci0g
ICAgICAgIGFsbG93X2RyYWZ0NzUgPSBfcGFyc2Vfb3B0aW9uKAotICAgICAgICAgICAgX1BZT1BU
X0FMTE9XX0RSQUZUNzUsCi0gICAgICAgICAgICBhcGFjaGUubWFpbl9zZXJ2ZXIuZ2V0X29wdGlv
bnMoKS5nZXQoX1BZT1BUX0FMTE9XX0RSQUZUNzUpLAotICAgICAgICAgICAgX1BZT1BUX0FMTE9X
X0RSQUZUNzVfREVGSU5JVElPTikKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kc2hh
a2UuZG9faGFuZHNoYWtlKAotICAgICAgICAgICAgICAgIHJlcXVlc3QsIF9kaXNwYXRjaGVyLCBh
bGxvd0RyYWZ0NzU9YWxsb3dfZHJhZnQ3NSkKLSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5WZXJz
aW9uRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAg
ICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0OiBIYW5kc2hha2UgZmFpbGVkIGZvciB2ZXJzaW9u
IGVycm9yOiAlcycgJSBlLAotICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAg
ICAgICAgICAgcmVxdWVzdC5lcnJfaGVhZGVyc19vdXQuYWRkKGNvbW1vbi5TRUNfV0VCU09DS0VU
X1ZFUlNJT05fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGUuc3VwcG9ydGVkX3ZlcnNpb25zKQotICAgICAgICAgICAgcmV0dXJuIGFwYWNoZS5IVFRQX0JB
RF9SRVFVRVNUCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uIGFz
IGU6Ci0gICAgICAgICAgICAjIEhhbmRzaGFrZSBmb3Igd3Mvd3NzIGZhaWxlZC4KLSAgICAgICAg
ICAgICMgU2VuZCBodHRwIHJlc3BvbnNlIHdpdGggZXJyb3Igc3RhdHVzLgotICAgICAgICAgICAg
cmVxdWVzdC5sb2dfZXJyb3IoCi0gICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogSGFu
ZHNoYWtlIGZhaWxlZCBmb3IgZXJyb3I6ICVzJyAlIGUsCi0gICAgICAgICAgICAgICAgYXBhY2hl
LkFQTE9HX0lORk8pCi0gICAgICAgICAgICByZXR1cm4gZS5zdGF0dXMKLQotICAgICAgICBoYW5k
c2hha2VfaXNfZG9uZSA9IFRydWUKLSAgICAgICAgcmVxdWVzdC5fZGlzcGF0Y2hlciA9IF9kaXNw
YXRjaGVyCi0gICAgICAgIF9kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICBl
eGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24gYXMgZToKLSAgICAgICAgcmVx
dWVzdC5sb2dfZXJyb3IoJ21vZF9weXdlYnNvY2tldDogQWJvcnRlZDogJXMnICUgZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgZXhjZXB0IEV4Y2Vw
dGlvbiBhcyBlOgotICAgICAgICAjIERpc3BhdGNoRXhjZXB0aW9uIGNhbiBhbHNvIGJlIHRocm93
biBpZiBzb21ldGhpbmcgaXMgd3JvbmcgaW4KLSAgICAgICAgIyBweXdlYnNvY2tldCBjb2RlLiBJ
dCdzIGNhdWdodCBoZXJlLCB0aGVuLgotCi0gICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKCdtb2Rf
cHl3ZWJzb2NrZXQ6IEV4Y2VwdGlvbiBvY2N1cnJlZDogJXNcbiVzJyAlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIChlLCB1dGlsLmdldF9zdGFja190cmFjZSgpKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0VSUikKLSAgICAgICAgIyBVbmtub3duIGV4Y2VwdGlv
bnMgYmVmb3JlIGhhbmRzaGFrZSBtZWFuIEFwYWNoZSBtdXN0IGhhbmRsZSBpdHMKLSAgICAgICAg
IyByZXF1ZXN0IHdpdGggYW5vdGhlciBoYW5kbGVyLgotICAgICAgICBpZiBub3QgaGFuZHNoYWtl
X2lzX2RvbmU6Ci0gICAgICAgICAgICByZXR1cm4gYXBhY2hlLkRFQ0xJTkVECi0gICAgIyBTZXQg
YXNzYmFja3dhcmRzIHRvIHN1cHByZXNzIHJlc3BvbnNlIGhlYWRlciBnZW5lcmF0aW9uIGJ5IEFw
YWNoZS4KLSAgICByZXF1ZXN0LmFzc2JhY2t3YXJkcyA9IDEKLSAgICByZXR1cm4gYXBhY2hlLkRP
TkUgICMgUmV0dXJuIERPTkUgc3VjaCB0aGF0IG5vIG90aGVyIGhhbmRsZXJzIGFyZSBpbnZva2Vk
LgotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvaHR0cF9oZWFkZXJfdXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVhZGVy
X3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlMDU4NGM1ZGFjOGNjNDRj
Nzc2ZjdjY2I0ZTZhNTA0MGNlNTIyMjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJfdXRpbC5weQor
KysgL2Rldi9udWxsCkBAIC0xLDI2MyArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUg
SW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJV
dGlsaXRpZXMgZm9yIHBhcnNpbmcgYW5kIGZvcm1hdHRpbmcgaGVhZGVycyB0aGF0IGZvbGxvdyB0
aGUgZ3JhbW1hciBkZWZpbmVkCi1pbiBIVFRQIFJGQyBodHRwOi8vd3d3LmlldGYub3JnL3JmYy9y
ZmMyNjE2LnR4dC4KLSIiIgotCi0KLWZyb20gc2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKLQotCi1f
U0VQQVJBVE9SUyA9ICcoKTw+QCw7OlxcIi9bXT89e30gXHQnCi0KLQotZGVmIF9pc19jaGFyKGMp
OgotICAgICIiIlJldHVybnMgdHJ1ZSBpZmYgYyBpcyBpbiBDSEFSIGFzIHNwZWNpZmllZCBpbiBI
VFRQIFJGQy4iIiIKLQotICAgIHJldHVybiBvcmQoYykgPD0gMTI3Ci0KLQotZGVmIF9pc19jdGwo
Yyk6Ci0gICAgIiIiUmV0dXJucyB0cnVlIGlmZiBjIGlzIGluIENUTCBhcyBzcGVjaWZpZWQgaW4g
SFRUUCBSRkMuIiIiCi0KLSAgICByZXR1cm4gb3JkKGMpIDw9IDMxIG9yIG9yZChjKSA9PSAxMjcK
LQotCi1jbGFzcyBQYXJzaW5nU3RhdGUob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBkYXRhKToKLSAgICAgICAgc2VsZi5kYXRhID0gZGF0YQotICAgICAgICBzZWxmLmhlYWQgPSAw
Ci0KLQotZGVmIHBlZWsoc3RhdGUsIHBvcz0wKToKLSAgICAiIiJQZWVrcyB0aGUgY2hhcmFjdGVy
IGF0IHBvcyBmcm9tIHRoZSBoZWFkIG9mIGRhdGEuIiIiCi0KLSAgICBpZiBzdGF0ZS5oZWFkICsg
cG9zID49IGxlbihzdGF0ZS5kYXRhKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHJldHVy
biBzdGF0ZS5kYXRhW3N0YXRlLmhlYWQgKyBwb3NdCi0KLQotZGVmIGNvbnN1bWUoc3RhdGUsIGFt
b3VudD0xKToKLSAgICAiIiJDb25zdW1lcyBzcGVjaWZpZWQgYW1vdW50IG9mIGJ5dGVzIGZyb20g
dGhlIGhlYWQgYW5kIHJldHVybnMgdGhlCi0gICAgY29uc3VtZWQgYnl0ZXMuIElmIHRoZXJlJ3Mg
bm90IGVub3VnaCBieXRlcyB0byBjb25zdW1lLCByZXR1cm5zIE5vbmUuCi0gICAgIiIiCi0KLSAg
ICBpZiBzdGF0ZS5oZWFkICsgYW1vdW50ID4gbGVuKHN0YXRlLmRhdGEpOgotICAgICAgICByZXR1
cm4gTm9uZQotCi0gICAgcmVzdWx0ID0gc3RhdGUuZGF0YVtzdGF0ZS5oZWFkOnN0YXRlLmhlYWQg
KyBhbW91bnRdCi0gICAgc3RhdGUuaGVhZCA9IHN0YXRlLmhlYWQgKyBhbW91bnQKLSAgICByZXR1
cm4gcmVzdWx0Ci0KLQotZGVmIGNvbnN1bWVfc3RyaW5nKHN0YXRlLCBleHBlY3RlZCk6Ci0gICAg
IiIiR2l2ZW4gYSBwYXJzaW5nIHN0YXRlIGFuZCBhIGV4cGVjdGVkIHN0cmluZywgY29uc3VtZXMg
dGhlIHN0cmluZyBmcm9tCi0gICAgdGhlIGhlYWQuIFJldHVybnMgVHJ1ZSBpZiBjb25zdW1lZCBz
dWNjZXNzZnVsbHkuIE90aGVyd2lzZSwgcmV0dXJucwotICAgIEZhbHNlLgotICAgICIiIgotCi0g
ICAgcG9zID0gMAotCi0gICAgZm9yIGMgaW4gZXhwZWN0ZWQ6Ci0gICAgICAgIGlmIGMgIT0gcGVl
ayhzdGF0ZSwgcG9zKToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBwb3MgKz0g
MQotCi0gICAgY29uc3VtZShzdGF0ZSwgcG9zKQotICAgIHJldHVybiBUcnVlCi0KLQotZGVmIGNv
bnN1bWVfbHdzKHN0YXRlKToKLSAgICAiIiJDb25zdW1lcyBhIExXUyBmcm9tIHRoZSBoZWFkLiBS
ZXR1cm5zIFRydWUgaWYgYW55IExXUyBpcyBjb25zdW1lZC4KLSAgICBPdGhlcndpc2UsIHJldHVy
bnMgRmFsc2UuCi0KLSAgICBMV1MgPSBbQ1JMRl0gMSooIFNQIHwgSFQgKQotICAgICIiIgotCi0g
ICAgb3JpZ2luYWxfaGVhZCA9IHN0YXRlLmhlYWQKLQotICAgIGNvbnN1bWVfc3RyaW5nKHN0YXRl
LCAnXHJcbicpCi0KLSAgICBwb3MgPSAwCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjID0g
cGVlayhzdGF0ZSwgcG9zKQotICAgICAgICBpZiBjID09ICcgJyBvciBjID09ICdcdCc6Ci0gICAg
ICAgICAgICBwb3MgKz0gMQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgcG9zID09IDA6
Ci0gICAgICAgICAgICAgICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQKLSAgICAgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgY29u
c3VtZShzdGF0ZSwgcG9zKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLQotZGVmIGNv
bnN1bWVfbHdzZXMoc3RhdGUpOgotICAgICIiIkNvbnN1bWVzICpMV1MgZnJvbSB0aGUgaGVhZC4i
IiIKLQotICAgIHdoaWxlIGNvbnN1bWVfbHdzKHN0YXRlKToKLSAgICAgICAgcGFzcwotCi0KLWRl
ZiBjb25zdW1lX3Rva2VuKHN0YXRlKToKLSAgICAiIiJDb25zdW1lcyBhIHRva2VuIGZyb20gdGhl
IGhlYWQuIFJldHVybnMgdGhlIHRva2VuIG9yIE5vbmUgaWYgbm8gdG9rZW4KLSAgICB3YXMgZm91
bmQuCi0gICAgIiIiCi0KLSAgICBwb3MgPSAwCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBj
ID0gcGVlayhzdGF0ZSwgcG9zKQotICAgICAgICBpZiBjIGlzIE5vbmUgb3IgYyBpbiBfU0VQQVJB
VE9SUyBvciBfaXNfY3RsKGMpIG9yIG5vdCBfaXNfY2hhcihjKToKLSAgICAgICAgICAgIGlmIHBv
cyA9PSAwOgotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgICAgIHJldHVy
biBjb25zdW1lKHN0YXRlLCBwb3MpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwb3MgKz0g
MQotCi0KLWRlZiBjb25zdW1lX3Rva2VuX29yX3F1b3RlZF9zdHJpbmcoc3RhdGUpOgotICAgICIi
IkNvbnN1bWVzIGEgdG9rZW4gb3IgYSBxdW90ZWQtc3RyaW5nLCBhbmQgcmV0dXJucyB0aGUgdG9r
ZW4gb3IgdW5xdW90ZWQKLSAgICBzdHJpbmcuIElmIG5vIHRva2VuIG9yIHF1b3RlZC1zdHJpbmcg
d2FzIGZvdW5kLCByZXR1cm5zIE5vbmUuCi0gICAgIiIiCi0KLSAgICBvcmlnaW5hbF9oZWFkID0g
c3RhdGUuaGVhZAotCi0gICAgaWYgbm90IGNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnIicpOgotICAg
ICAgICByZXR1cm4gY29uc3VtZV90b2tlbihzdGF0ZSkKLQotICAgIHJlc3VsdCA9IFtdCi0KLSAg
ICBleHBlY3RfcXVvdGVkX3BhaXIgPSBGYWxzZQotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
aWYgbm90IGV4cGVjdF9xdW90ZWRfcGFpciBhbmQgY29uc3VtZV9sd3Moc3RhdGUpOgotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICcpCi0gICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAg
IGMgPSBjb25zdW1lKHN0YXRlKQotICAgICAgICBpZiBjIGlzIE5vbmU6Ci0gICAgICAgICAgICAj
IHF1b3RlZC1zdHJpbmcgaXMgbm90IGVuY2xvc2VkIHdpdGggZG91YmxlIHF1b3RhdGlvbgotICAg
ICAgICAgICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQKLSAgICAgICAgICAgIHJldHVybiBO
b25lCi0gICAgICAgIGVsaWYgZXhwZWN0X3F1b3RlZF9wYWlyOgotICAgICAgICAgICAgZXhwZWN0
X3F1b3RlZF9wYWlyID0gRmFsc2UKLSAgICAgICAgICAgIGlmIF9pc19jaGFyKGMpOgotICAgICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgIyBOb24gQ0hBUiBjaGFyYWN0ZXIgZm91bmQgaW4gcXVvdGVkLXBhaXIKLSAgICAgICAg
ICAgICAgICBzdGF0ZS5oZWFkID0gb3JpZ2luYWxfaGVhZAotICAgICAgICAgICAgICAgIHJldHVy
biBOb25lCi0gICAgICAgIGVsaWYgYyA9PSAnXFwnOgotICAgICAgICAgICAgZXhwZWN0X3F1b3Rl
ZF9wYWlyID0gVHJ1ZQotICAgICAgICBlbGlmIGMgPT0gJyInOgotICAgICAgICAgICAgcmV0dXJu
ICcnLmpvaW4ocmVzdWx0KQotICAgICAgICBlbGlmIF9pc19jdGwoYyk6Ci0gICAgICAgICAgICAj
IEludmFsaWQgY2hhcmFjdGVyICVyIGZvdW5kIGluIHFkdGV4dAotICAgICAgICAgICAgc3RhdGUu
aGVhZCA9IG9yaWdpbmFsX2hlYWQKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpCi0KLQotZGVmIHF1b3RlX2lmX25lY2Vz
c2FyeShzKToKLSAgICAiIiJRdW90ZXMgYXJiaXRyYXJ5IHN0cmluZyBpbnRvIHF1b3RlZC1zdHJp
bmcuIiIiCi0KLSAgICBxdW90ZSA9IEZhbHNlCi0gICAgaWYgcyA9PSAnJzoKLSAgICAgICAgcmV0
dXJuICciIicKLQotICAgIHJlc3VsdCA9IFtdCi0gICAgZm9yIGMgaW4gczoKLSAgICAgICAgaWYg
YyA9PSAnIicgb3IgYyBpbiBfU0VQQVJBVE9SUyBvciBfaXNfY3RsKGMpIG9yIG5vdCBfaXNfY2hh
cihjKToKLSAgICAgICAgICAgIHF1b3RlID0gVHJ1ZQotCi0gICAgICAgIGlmIGMgPT0gJyInIG9y
IF9pc19jdGwoYyk6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcXCcgKyBjKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKQotCi0gICAgaWYgcXVvdGU6Ci0g
ICAgICAgIHJldHVybiAnIicgKyAnJy5qb2luKHJlc3VsdCkgKyAnIicKLSAgICBlbHNlOgotICAg
ICAgICByZXR1cm4gJycuam9pbihyZXN1bHQpCi0KLQotZGVmIHBhcnNlX3VyaSh1cmkpOgotICAg
ICIiIlBhcnNlIGFic29sdXRlIFVSSSB0aGVuIHJldHVybiBob3N0LCBwb3J0IGFuZCByZXNvdXJj
ZS4iIiIKLQotICAgIHBhcnNlZCA9IHVybGxpYi5wYXJzZS51cmxzcGxpdCh1cmkpCi0gICAgaWYg
cGFyc2VkLnNjaGVtZSAhPSAnd3NzJyBhbmQgcGFyc2VkLnNjaGVtZSAhPSAnd3MnOgotICAgICAg
ICAjIHx1cml8IG11c3QgYmUgYSByZWxhdGl2ZSBVUkkuCi0gICAgICAgICMgVE9ETyh0b3lvc2hp
bSk6IFNob3VsZCB2YWxpZGF0ZSB8dXJpfC4KLSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIHVy
aQotCi0gICAgaWYgcGFyc2VkLmhvc3RuYW1lIGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBOb25l
LCBOb25lLCBOb25lCi0KLSAgICBwb3J0ID0gTm9uZQotICAgIHRyeToKLSAgICAgICAgcG9ydCA9
IHBhcnNlZC5wb3J0Ci0gICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgIyBwb3J0
IHByb3BlcnR5IGNhdXNlIFZhbHVlRXJyb3Igb24gaW52YWxpZCBudWxsIHBvcnQgZGVzY3JpcHRp
b24gbGlrZQotICAgICAgICAjICd3czovL2hvc3Q6L3BhdGgnLgotICAgICAgICByZXR1cm4gTm9u
ZSwgTm9uZSwgTm9uZQotCi0gICAgaWYgcG9ydCBpcyBOb25lOgotICAgICAgICBpZiBwYXJzZWQu
c2NoZW1lID09ICd3cyc6Ci0gICAgICAgICAgICBwb3J0ID0gODAKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHBvcnQgPSA0NDMKLQotICAgIHBhdGggPSBwYXJzZWQucGF0aAotICAgIGlmIG5v
dCBwYXRoOgotICAgICAgICBwYXRoICs9ICcvJwotICAgIGlmIHBhcnNlZC5xdWVyeToKLSAgICAg
ICAgcGF0aCArPSAnPycgKyBwYXJzZWQucXVlcnkKLSAgICBpZiBwYXJzZWQuZnJhZ21lbnQ6Ci0g
ICAgICAgIHBhdGggKz0gJyMnICsgcGFyc2VkLmZyYWdtZW50Ci0KLSAgICByZXR1cm4gcGFyc2Vk
Lmhvc3RuYW1lLCBwb3J0LCBwYXRoCi0KLQotdHJ5OgotICAgIHVybGxpYi5wYXJzZS51c2VzX25l
dGxvYy5pbmRleCgnd3MnKQotZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAjIHVybHBhcnNl
IGluIFB5dGhvbjIuNS4xIGRvZXNuJ3QgaGF2ZSAnd3MnIGFuZCAnd3NzJyBlbnRyaWVzLgotICAg
IHVybGxpYi5wYXJzZS51c2VzX25ldGxvYy5hcHBlbmQoJ3dzJykKLSAgICB1cmxsaWIucGFyc2Uu
dXNlc19uZXRsb2MuYXBwZW5kKCd3c3MnKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzdhZmNjMTU3ZWQ3YTFkOTQyY2JmNDM1OGFmYTA0NTQ4NDZmMDFkNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9t
ZW1vcml6aW5nZmlsZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLSMgQ29weXJp
Z2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotCi0KLSIiIk1lbW9yaXppbmcgZmlsZS4KLQotQSBtZW1vcml6aW5nIGZpbGUgd3Jh
cHMgYSBmaWxlIGFuZCBtZW1vcml6ZXMgbGluZXMgcmVhZCBieSByZWFkbGluZS4KLSIiIgotCi0K
LWNsYXNzIE1lbW9yaXppbmdGaWxlKG9iamVjdCk6Ci0KLSAgICAiIiJNZW1vcml6aW5nRmlsZSB3
cmFwcyBhIGZpbGUgYW5kIG1lbW9yaXplcyBsaW5lcyByZWFkIGJ5IHJlYWRsaW5lLgotCi0gICAg
Tm90ZSB0aGF0IGRhdGEgcmVhZCBieSBvdGhlciBtZXRob2RzIGFyZSBub3QgbWVtb3JpemVkLiBU
aGlzIGJlaGF2aW9yCi0gICAgaXMgZ29vZCBlbm91Z2ggZm9yIG1lbW9yaXppbmcgbGluZXMgU2lt
cGxlSFRUUFNlcnZlciByZWFkcyBiZWZvcmUKLSAgICB0aGUgY29udHJvbCByZWFjaGVzIFdlYlNv
Y2tldFJlcXVlc3RIYW5kbGVyLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZp
bGVfLCBtYXhfbWVtb3JpemVkX2xpbmVzPTB4N0ZGRkZGRkYpOgotICAgICAgICAiIiJDb25zdHJ1
Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGZpbGVfOiB0aGUg
ZmlsZSBvYmplY3QgdG8gd3JhcC4KLSAgICAgICAgICAgIG1heF9tZW1vcml6ZWRfbGluZXM6IHRo
ZSBtYXhpbXVtIG51bWJlciBvZiBsaW5lcyB0byBtZW1vcml6ZS4KLSAgICAgICAgICAgICAgICBP
bmx5IHRoZSBmaXJzdCBtYXhfbWVtb3JpemVkX2xpbmVzIGFyZSBtZW1vcml6ZWQuCi0gICAgICAg
ICAgICAgICAgRGVmYXVsdDogc3lzLm1heGludC4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYu
X2ZpbGUgPSBmaWxlXwotICAgICAgICBzZWxmLl9tZW1vcml6ZWRfbGluZXMgPSBbXQotICAgICAg
ICBzZWxmLl9tYXhfbWVtb3JpemVkX2xpbmVzID0gbWF4X21lbW9yaXplZF9saW5lcwotICAgICAg
ICBzZWxmLl9idWZmZXJlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2J1ZmZlcmVkX2xpbmUgPSBO
b25lCi0KLSAgICBkZWYgX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgIiIi
UmV0dXJuIGEgZmlsZSBhdHRyaWJ1dGUuCi0KLSAgICAgICAgUmV0dXJucyB0aGUgdmFsdWUgb3Zl
cnJpZGRlbiBieSB0aGlzIGNsYXNzIGZvciBzb21lIGF0dHJpYnV0ZXMsCi0gICAgICAgIGFuZCBm
b3J3YXJkcyB0aGUgY2FsbCB0byBfZmlsZSBmb3IgdGhlIG90aGVyIGF0dHJpYnV0ZXMuCi0gICAg
ICAgICIiIgotICAgICAgICBpZiBuYW1lIGluICgnX2ZpbGUnLCAnX21lbW9yaXplZF9saW5lcycs
ICdfbWF4X21lbW9yaXplZF9saW5lcycsCi0gICAgICAgICAgICAgICAgICAgICdfYnVmZmVyZWQn
LCAnX2J1ZmZlcmVkX2xpbmUnLCAncmVhZGxpbmUnLAotICAgICAgICAgICAgICAgICAgICAnZ2V0
X21lbW9yaXplZF9saW5lcycpOgotICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJp
YnV0ZV9fKHNlbGYsIG5hbWUpCi0gICAgICAgIHJldHVybiBzZWxmLl9maWxlLl9fZ2V0YXR0cmli
dXRlX18obmFtZSkKLQotICAgIGRlZiByZWFkbGluZShzZWxmLCBzaXplPS0xKToKLSAgICAgICAg
IiIiT3ZlcnJpZGUgZmlsZS5yZWFkbGluZSBhbmQgbWVtb3JpemUgdGhlIGxpbmUgcmVhZC4KLQot
ICAgICAgICBOb3RlIHRoYXQgZXZlbiBpZiBzaXplIGlzIHNwZWNpZmllZCBhbmQgc21hbGxlciB0
aGFuIGFjdHVhbCBzaXplLAotICAgICAgICB0aGUgd2hvbGUgbGluZSB3aWxsIGJlIHJlYWQgb3V0
IGZyb20gdW5kZXJseWluZyBmaWxlIG9iamVjdCBieQotICAgICAgICBzdWJzZXF1ZW50IHJlYWRs
aW5lIGNhbGxzLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5fYnVmZmVyZWQ6Ci0gICAg
ICAgICAgICBsaW5lID0gc2VsZi5fYnVmZmVyZWRfbGluZQotICAgICAgICAgICAgc2VsZi5fYnVm
ZmVyZWQgPSBGYWxzZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbGluZSA9IHNlbGYuX2Zp
bGUucmVhZGxpbmUoKQotICAgICAgICAgICAgaWYgbGluZSBhbmQgbGVuKHNlbGYuX21lbW9yaXpl
ZF9saW5lcykgPCBzZWxmLl9tYXhfbWVtb3JpemVkX2xpbmVzOgotICAgICAgICAgICAgICAgIHNl
bGYuX21lbW9yaXplZF9saW5lcy5hcHBlbmQobGluZSkKLSAgICAgICAgaWYgc2l6ZSA+PSAwIGFu
ZCBzaXplIDwgbGVuKGxpbmUpOgotICAgICAgICAgICAgc2VsZi5fYnVmZmVyZWQgPSBUcnVlCi0g
ICAgICAgICAgICBzZWxmLl9idWZmZXJlZF9saW5lID0gbGluZVtzaXplOl0KLSAgICAgICAgICAg
IHJldHVybiBsaW5lWzpzaXplXQotICAgICAgICByZXR1cm4gbGluZQotCi0gICAgZGVmIGdldF9t
ZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAgICAgICIiIkdldCBsaW5lcyBtZW1vcml6ZWQgc28g
ZmFyLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fbWVtb3JpemVkX2xpbmVzCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tc2d1dGlsLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZmM2YzViMWRiY2U5N2Q3MmYyNmNiNzdjZGI3Zjg0Njc0MWIxYmIzYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNv
Y2tldC9tc2d1dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjE5ICswLDAgQEAKLSMgQ29weXJp
Z2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotCi0KLSIiIk1lc3NhZ2UgcmVsYXRlZCB1dGlsaXRpZXMuCi0KLU5vdGU6IHJlcXVl
c3QuY29ubmVjdGlvbi53cml0ZS9yZWFkIGFyZSB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRo
b3VnaAotbW9kX3B5dGhvbiBkb2N1bWVudCBzYXlzIHRoYXQgdGhleSBzaG91bGQgYmUgdXNlZCBv
bmx5IGluIGNvbm5lY3Rpb24KLWhhbmRsZXJzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIG90
aGVyIG9wdGlvbnMuIEZvciBleGFtcGxlLAotcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3Vp
dGFibGUgYmVjYXVzZSB0aGV5IGRvbid0IGFsbG93IGRpcmVjdCByYXcKLWJ5dGVzIHdyaXRpbmcv
cmVhZGluZy4KLSIiIgotCi0KLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBxdWV1ZQotaW1wb3J0IHRo
cmVhZGluZwotCi0KLSMgRXhwb3J0IEV4Y2VwdGlvbiBzeW1ib2xzIGZyb20gbXNndXRpbCBmb3Ig
YmFja3dhcmQgY29tcGF0aWJpbGl0eQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNl
IGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNl
cHRpb24KLQotCi0jIEFuIEFQSSBmb3IgaGFuZGxlciB0byBzZW5kL3JlY2VpdmUgV2ViU29ja2V0
IG1lc3NhZ2VzLgotZGVmIGNsb3NlX2Nvbm5lY3Rpb24ocmVxdWVzdCk6Ci0gICAgIiIiQ2xvc2Ug
Y29ubmVjdGlvbi4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVx
dWVzdC4KLSAgICAiIiIKLSAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkK
LQotCi1kZWYgc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWRfZGF0YSwgZW5kPVRydWUsIGJp
bmFyeT1GYWxzZSk6Ci0gICAgIiIiU2VuZCBhIG1lc3NhZ2UgKG9yIHBhcnQgb2YgYSBtZXNzYWdl
KS4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAg
ICAgICAgcGF5bG9hZF9kYXRhOiB1bmljb2RlIHRleHQgb3Igc3RyIGJpbmFyeSB0byBzZW5kLgot
ICAgICAgICBlbmQ6IFRydWUgdG8gdGVybWluYXRlIGEgbWVzc2FnZS4KLSAgICAgICAgICAgICBG
YWxzZSB0byBzZW5kIHBheWxvYWRfZGF0YSBhcyBwYXJ0IG9mIGEgbWVzc2FnZSB0aGF0IGlzIHRv
IGJlCi0gICAgICAgICAgICAgdGVybWluYXRlZCBieSBuZXh0IG9yIGxhdGVyIHNlbmRfbWVzc2Fn
ZSBjYWxsIHdpdGggZW5kPVRydWUuCi0gICAgICAgIGJpbmFyeTogc2VuZCBwYXlsb2FkX2RhdGEg
YXMgYmluYXJ5IGZyYW1lKHMpLgotICAgIFJhaXNlczoKLSAgICAgICAgQmFkT3BlcmF0aW9uRXhj
ZXB0aW9uOiB3aGVuIHNlcnZlciBhbHJlYWR5IHRlcm1pbmF0ZWQuCi0gICAgIiIiCi0gICAgcmVx
dWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKHBheWxvYWRfZGF0YSwgZW5kLCBiaW5hcnkpCi0K
LQotZGVmIHJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KToKLSAgICAiIiJSZWNlaXZlIGEgV2ViU29j
a2V0IGZyYW1lIGFuZCByZXR1cm4gaXRzIHBheWxvYWQgYXMgYSB0ZXh0IGluCi0gICAgdW5pY29k
ZSBvciBhIGJpbmFyeSBpbiBzdHIuCi0KLSAgICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2Rf
cHl0aG9uIHJlcXVlc3QuCi0gICAgUmFpc2VzOgotICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRp
b246ICAgICB3aGVuIGNsaWVudCBzZW5kIGludmFsaWQgZnJhbWUuCi0gICAgICAgIFVuc3VwcG9y
dGVkRnJhbWVFeGNlcHRpb246IHdoZW4gY2xpZW50IHNlbmQgdW5zdXBwb3J0ZWQgZnJhbWUgZS5n
LiBzb21lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHJlc2VydmVkIGJp
dCBpcyBzZXQgYnV0IG5vIGV4dGVuc2lvbiBjYW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjb2duaXplIGl0LgotICAgICAgICBJbnZhbGlkVVRGOEV4Y2VwdGlvbjogICAg
ICB3aGVuIGNsaWVudCBzZW5kIGEgdGV4dCBmcmFtZSBjb250YWluaW5nIGFueQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkIFVURi04IHN0cmluZy4KLSAgICAgICAg
Q29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gdGhlIGNvbm5lY3Rpb24gaXMgY2xv
c2VkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRseS4KLSAg
ICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiAgICAgd2hlbiBjbGllbnQgYWxyZWFkeSB0ZXJt
aW5hdGVkLgotICAgICIiIgotICAgIHJldHVybiByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21l
c3NhZ2UoKQotCi0KLWRlZiBzZW5kX3BpbmcocmVxdWVzdCwgYm9keT0nJyk6Ci0gICAgcmVxdWVz
dC53c19zdHJlYW0uc2VuZF9waW5nKGJvZHkpCi0KLQotY2xhc3MgTWVzc2FnZVJlY2VpdmVyKHRo
cmVhZGluZy5UaHJlYWQpOgotICAgICIiIlRoaXMgY2xhc3MgcmVjZWl2ZXMgbWVzc2FnZXMgZnJv
bSB0aGUgY2xpZW50LgotCi0gICAgVGhpcyBjbGFzcyBwcm92aWRlcyB0aHJlZSB3YXlzIHRvIHJl
Y2VpdmUgbWVzc2FnZXM6IGJsb2NraW5nLAotICAgIG5vbi1ibG9ja2luZywgYW5kIHZpYSBjYWxs
YmFjay4gQ2FsbGJhY2sgaGFzIHRoZSBoaWdoZXN0IHByZWNlZGVuY2UuCi0KLSAgICBOb3RlOiBU
aGlzIGNsYXNzIHNob3VsZCBub3QgYmUgdXNlZCB3aXRoIHRoZSBzdGFuZGFsb25lIHNlcnZlciBm
b3Igd3NzCi0gICAgYmVjYXVzZSBweU9wZW5TU0wgdXNlZCBieSB0aGUgc2VydmVyIHJhaXNlcyBh
IGZhdGFsIGVycm9yIGlmIHRoZSBzb2NrZXQKLSAgICBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxl
IHRocmVhZHMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgb25t
ZXNzYWdlPU5vbmUpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAg
ICAgICAgIG9ubWVzc2FnZTogYSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBhIG1lc3NhZ2Ug
aXMgcmVjZWl2ZWQuCi0gICAgICAgICAgICAgICAgICAgICAgIE1heSBiZSBOb25lLiBJZiBub3Qg
Tm9uZSwgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbgotICAgICAgICAgICAgICAgICAgICAgICBh
bm90aGVyIHRocmVhZC4gSW4gdGhhdCBjYXNlLCBNZXNzYWdlUmVjZWl2ZXIucmVjZWl2ZQotICAg
ICAgICAgICAgICAgICAgICAgICBhbmQgTWVzc2FnZVJlY2VpdmVyLnJlY2VpdmVfbm93YWl0IGFy
ZSB1c2VsZXNzCi0gICAgICAgICAgICAgICAgICAgICAgIGJlY2F1c2UgdGhleSB3aWxsIG5ldmVy
IHJldHVybiBhbnkgbWVzc2FnZXMuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRocmVhZGluZy5U
aHJlYWQuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAg
ICAgICAgc2VsZi5fcXVldWUgPSBxdWV1ZS5RdWV1ZSgpCi0gICAgICAgIHNlbGYuX29ubWVzc2Fn
ZSA9IG9ubWVzc2FnZQotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IEZhbHNlCi0gICAg
ICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0gICAgICAgIHNlbGYuc3RhcnQoKQotCi0gICAgZGVm
IHJ1bihzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0
b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSByZWNlaXZlX21lc3NhZ2Uo
c2VsZi5fcmVxdWVzdCkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vbm1lc3NhZ2U6Ci0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX29ubWVzc2FnZShtZXNzYWdlKQotICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3F1ZXVlLnB1dChtZXNzYWdlKQotICAg
ICAgICBmaW5hbGx5OgotICAgICAgICAgICAgY2xvc2VfY29ubmVjdGlvbihzZWxmLl9yZXF1ZXN0
KQotCi0gICAgZGVmIHJlY2VpdmUoc2VsZik6Ci0gICAgICAgICIiIiBSZWNlaXZlIGEgbWVzc2Fn
ZSBmcm9tIHRoZSBjaGFubmVsLCBibG9ja2luZy4KLQotICAgICAgICBSZXR1cm5zOgotICAgICAg
ICAgICAgbWVzc2FnZSBhcyBhIHVuaWNvZGUgc3RyaW5nLgotICAgICAgICAiIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYuX3F1ZXVlLmdldCgpCi0KLSAgICBkZWYgcmVjZWl2ZV9ub3dhaXQoc2VsZik6
Ci0gICAgICAgICIiIiBSZWNlaXZlIGEgbWVzc2FnZSBmcm9tIHRoZSBjaGFubmVsLCBub24tYmxv
Y2tpbmcuCi0KLSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICAgIG1lc3NhZ2UgYXMgYSB1bmlj
b2RlIHN0cmluZyBpZiBhdmFpbGFibGUuIE5vbmUgb3RoZXJ3aXNlLgotICAgICAgICAiIiIKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3F1ZXVlLmdldF9ub3dhaXQo
KQotICAgICAgICBleGNlcHQgcXVldWUuRW1wdHk6Ci0gICAgICAgICAgICBtZXNzYWdlID0gTm9u
ZQotICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgZGVmIHN0b3Aoc2VsZik6Ci0gICAgICAg
ICIiIlJlcXVlc3QgdG8gc3RvcCB0aGlzIGluc3RhbmNlLgotCi0gICAgICAgIFRoZSBpbnN0YW5j
ZSB3aWxsIGJlIHN0b3BwZWQgYWZ0ZXIgcmVjZWl2aW5nIHRoZSBuZXh0IG1lc3NhZ2UuCi0gICAg
ICAgIFRoaXMgbWV0aG9kIG1heSBub3QgYmUgdmVyeSB1c2VmdWwsIGJ1dCB0aGVyZSBpcyBubyBj
bGVhbiB3YXkKLSAgICAgICAgaW4gUHl0aG9uIHRvIGZvcmNlZnVsbHkgc3RvcCBhIHJ1bm5pbmcg
dGhyZWFkLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBUcnVl
Ci0KLQotY2xhc3MgTWVzc2FnZVNlbmRlcih0aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJUaGlz
IGNsYXNzIHNlbmRzIG1lc3NhZ2VzIHRvIHRoZSBjbGllbnQuCi0KLSAgICBUaGlzIGNsYXNzIHBy
b3ZpZGVzIGJvdGggc3luY2hyb25vdXMgYW5kIGFzeW5jaHJvbm91cyB3YXlzIHRvIHNlbmQKLSAg
ICBtZXNzYWdlcy4KLQotICAgIE5vdGU6IFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSB1c2VkIHdp
dGggdGhlIHN0YW5kYWxvbmUgc2VydmVyIGZvciB3c3MKLSAgICBiZWNhdXNlIHB5T3BlblNTTCB1
c2VkIGJ5IHRoZSBzZXJ2ZXIgcmFpc2VzIGEgZmF0YWwgZXJyb3IgaWYgdGhlIHNvY2tldAotICAg
IGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNl
LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVl
c3QuCi0gICAgICAgICIiIgotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYp
Ci0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX3F1ZXVlID0g
cXVldWUuUXVldWUoKQotICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotICAgICAgICBzZWxm
LnN0YXJ0KCkKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAg
ICAgICAgICBtZXNzYWdlLCBjb25kaXRpb24gPSBzZWxmLl9xdWV1ZS5nZXQoKQotICAgICAgICAg
ICAgY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgc2VuZF9tZXNzYWdlKHNlbGYuX3Jl
cXVlc3QsIG1lc3NhZ2UpCi0gICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAg
ICAgIGNvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBzZW5kKHNlbGYsIG1lc3NhZ2UpOgot
ICAgICAgICAiIiJTZW5kIGEgbWVzc2FnZSwgYmxvY2tpbmcuIiIiCi0KLSAgICAgICAgY29uZGl0
aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0gICAgICAgIGNvbmRpdGlvbi5hY3F1aXJlKCkK
LSAgICAgICAgc2VsZi5fcXVldWUucHV0KChtZXNzYWdlLCBjb25kaXRpb24pKQotICAgICAgICBj
b25kaXRpb24ud2FpdCgpCi0KLSAgICBkZWYgc2VuZF9ub3dhaXQoc2VsZiwgbWVzc2FnZSk6Ci0g
ICAgICAgICIiIlNlbmQgYSBtZXNzYWdlLCBub24tYmxvY2tpbmcuIiIiCi0KLSAgICAgICAgc2Vs
Zi5fcXVldWUucHV0KChtZXNzYWdlLCB0aHJlYWRpbmcuQ29uZGl0aW9uKCkpKQotCi0KLSMgdmk6
c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXV4LnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQvbXV4LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5OTRmOGExNDY0NWM1NGI2NzRiODE0NTgzNjczMTliNjYwMzA0NDdkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L211
eC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE4ODUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIGNsYXNzZXMgYW5kIGhlbHBlciBmdW5jdGlvbnMgZm9y
IG11bHRpcGxleGluZyBleHRlbnNpb24uCi0KLVNwZWNpZmljYXRpb246Ci1odHRwOi8vdG9vbHMu
aWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWh5Ymktd2Vic29ja2V0LW11bHRpcGxleGluZy0wNgot
IiIiCi0KLQotaW1wb3J0IGNvbGxlY3Rpb25zCi1pbXBvcnQgY29weQotaW1wb3J0IGVtYWlsCi1p
bXBvcnQgZW1haWwucGFyc2VyCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG1hdGgKLWltcG9ydCBz
dHJ1Y3QKLWltcG9ydCB0aHJlYWRpbmcKLWltcG9ydCB0cmFjZWJhY2sKLQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRz
aGFrZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZyb20gbW9kX3B5d2Vic29j
a2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0
aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRGcmFt
ZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBGcmFt
ZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0KLWZyb20g
bW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfYmluYXJ5X2ZyYW1lCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9zaW5nX2hh
bmRzaGFrZV9ib2R5Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNy
ZWF0ZV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3Jl
YXRlX2xlbmd0aF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBv
cnQgcGFyc2VfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZSBpbXBvcnQgaHli
aQotCi0KLV9DT05UUk9MX0NIQU5ORUxfSUQgPSAwCi1fREVGQVVMVF9DSEFOTkVMX0lEID0gMQot
Ci1fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUID0gMAotX01VWF9PUENPREVfQUREX0NI
QU5ORUxfUkVTUE9OU0UgPSAxCi1fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wgPSAyCi1fTVVYX09Q
Q09ERV9EUk9QX0NIQU5ORUwgPSAzCi1fTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UID0gNAot
Ci1fTUFYX0NIQU5ORUxfSUQgPSAyICoqIDI5IC0gMQotCi1fSU5JVElBTF9OVU1CRVJfT0ZfQ0hB
Tk5FTF9TTE9UUyA9IDY0Ci1fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UID0gOCAqIDEwMjQKLQot
X0hBTkRTSEFLRV9FTkNPRElOR19JREVOVElUWSA9IDAKLV9IQU5EU0hBS0VfRU5DT0RJTkdfREVM
VEEgPSAxCi0KLSMgV2UgbmVlZCBvbmx5IHRoZXNlIHN0YXR1cyBjb2RlIGZvciBub3cuCi1fSFRU
UF9CQURfUkVTUE9OU0VfTUVTU0FHRVMgPSB7Ci0gICAgY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9S
RVFVRVNUOiAnQmFkIFJlcXVlc3QnLAotfQotCi0jIERyb3BDaGFubmVsIHJlYXNvbiBjb2RlCi0j
IFRPRE8oYmFzaGkpOiBEZWZpbmUgYWxsIHJlYXNvbiBjb2RlIGRlZmluZWQgaW4gLTA1IGRyYWZ0
LgotX0RST1BfQ09ERV9OT1JNQUxfQ0xPU1VSRSA9IDEwMDAKLQotX0RST1BfQ09ERV9JTlZBTElE
X0VOQ0FQU1VMQVRJTkdfTUVTU0FHRSA9IDIwMDEKLV9EUk9QX0NPREVfQ0hBTk5FTF9JRF9UUlVO
Q0FURUQgPSAyMDAyCi1fRFJPUF9DT0RFX0VOQ0FQU1VMQVRFRF9GUkFNRV9JU19UUlVOQ0FURUQg
PSAyMDAzCi1fRFJPUF9DT0RFX1VOS05PV05fTVVYX09QQ09ERSA9IDIwMDQKLV9EUk9QX0NPREVf
SU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSyA9IDIwMDUKLV9EUk9QX0NPREVfQ0hBTk5FTF9BTFJF
QURZX0VYSVNUUyA9IDIwMDYKLV9EUk9QX0NPREVfTkVXX0NIQU5ORUxfU0xPVF9WSU9MQVRJT04g
PSAyMDA3Ci1fRFJPUF9DT0RFX1VOS05PV05fUkVRVUVTVF9FTkNPRElORyA9IDIwMTAKLQotX0RS
T1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElPTiA9IDMwMDUKLV9EUk9QX0NPREVfU0VORF9RVU9U
QV9PVkVSRkxPVyA9IDMwMDYKLV9EUk9QX0NPREVfQUNLTk9XTEVER0VEID0gMzAwOAotX0RST1Bf
Q09ERV9CQURfRlJBR01FTlRBVElPTiA9IDMwMDkKLQotCi1jbGFzcyBNdXhVbmV4cGVjdGVkRXhj
ZXB0aW9uKEV4Y2VwdGlvbik6Ci0KLSAgICAiIiJFeGNlcHRpb24gaW4gaGFuZGxpbmcgbXVsdGlw
bGV4aW5nIGV4dGVuc2lvbi4iIiIKLQotICAgIHBhc3MKLQotCi0jIFRlbXBvcmFyeQotY2xhc3Mg
TXV4Tm90SW1wbGVtZW50ZWRFeGNlcHRpb24oRXhjZXB0aW9uKToKLQotICAgICIiIlJhaXNlZCB3
aGVuIGEgZmxvdyBlbnRlcnMgdW5pbXBsZW1lbnRlZCBjb2RlIHBhdGguIiIiCi0KLSAgICBwYXNz
Ci0KLQotY2xhc3MgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNlcHRpb24oRXhjZXB0aW9uKToK
LQotICAgICIiIlJhaXNlZCB3aGVuIGxvZ2ljYWwgY29ubmVjdGlvbiBpcyBncmFjZWZ1bGx5IGNs
b3NlZC4iIiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihF
eGNlcHRpb24pOgotCi0gICAgIiIiUmFpc2VkIHdoZW4gdGhlcmUgaXMgYSBwaHlzaWNhbCBjb25u
ZWN0aW9uIGVycm9yLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRyb3BfY29kZSwgbWVz
c2FnZT0nJyk6Ci0gICAgICAgIHN1cGVyKFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLCBzZWxmKS5f
X2luaXRfXygKLSAgICAgICAgICAgICdjb2RlPSVkLCBtZXNzYWdlPSVyJyAlIChkcm9wX2NvZGUs
IG1lc3NhZ2UpKQotICAgICAgICBzZWxmLmRyb3BfY29kZSA9IGRyb3BfY29kZQotICAgICAgICBz
ZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCi0KLQotY2xhc3MgTG9naWNhbENoYW5uZWxFcnJvcihFeGNl
cHRpb24pOgotCi0gICAgIiIiUmFpc2VkIHdoZW4gdGhlcmUgaXMgYSBsb2dpY2FsIGNoYW5uZWwg
ZXJyb3IuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgY2hhbm5lbF9pZCwgZHJvcF9jb2Rl
LCBtZXNzYWdlPScnKToKLSAgICAgICAgIiIiSW5pdGlhbGl6ZSB0aGUgZXJyb3Igd2l0aCBhIHN0
YXR1cyBtZXNzYWdlLiIiIgotICAgICAgICBzdXBlcihMb2dpY2FsQ2hhbm5lbEVycm9yLCBzZWxm
KS5fX2luaXRfXygKLSAgICAgICAgICAgICdjaGFubmVsX2lkPSVkLCBjb2RlPSVkLCBtZXNzYWdl
PSVyJyAlICgKLSAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBkcm9wX2NvZGUsIG1lc3NhZ2Up
KQotICAgICAgICBzZWxmLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAgIHNlbGYuZHJv
cF9jb2RlID0gZHJvcF9jb2RlCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKLQotCi1k
ZWYgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpOgotICAgIGlmIGNoYW5uZWxfaWQgPCAw
OgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdDaGFubmVsIGlkICVkIG11c3Qgbm90IGJlIG5l
Z2F0aXZlJyAlIGNoYW5uZWxfaWQpCi0KLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiA3OgotICAg
ICAgICByZXR1cm4gY2hyKGNoYW5uZWxfaWQpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMTQ6
Ci0gICAgICAgIHJldHVybiBzdHJ1Y3QucGFjaygnIUgnLCAweDgwMDAgKyBjaGFubmVsX2lkKQot
ICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDIxOgotICAgICAgICBmaXJzdCA9IGNocigweGMwICsg
KGNoYW5uZWxfaWQgPj4gMTYpKQotICAgICAgICByZXR1cm4gZmlyc3QgKyBzdHJ1Y3QucGFjaygn
IUgnLCBjaGFubmVsX2lkICYgMHhmZmZmKQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDI5Ogot
ICAgICAgICByZXR1cm4gc3RydWN0LnBhY2soJyFMJywgMHhlMDAwMDAwMCArIGNoYW5uZWxfaWQp
Ci0KLSAgICByYWlzZSBWYWx1ZUVycm9yKCdDaGFubmVsIGlkICVkIGlzIHRvbyBsYXJnZScgJSBj
aGFubmVsX2lkKQotCi0KLWRlZiBfZW5jb2RlX251bWJlcihudW1iZXIpOgotICAgIHJldHVybiBj
cmVhdGVfbGVuZ3RoX2hlYWRlcihudW1iZXIsIEZhbHNlKQotCi0KLWRlZiBfY3JlYXRlX2FkZF9j
aGFubmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQsIGVuY29kZWRfaGFuZHNoYWtlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MCwgcmVqZWN0ZWQ9RmFsc2UpOgotICAg
IGlmIGVuY29kaW5nICE9IDAgYW5kIGVuY29kaW5nICE9IDE6Ci0gICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ0ludmFsaWQgZW5jb2RpbmcgJWQnICUgZW5jb2RpbmcpCi0KLSAgICBmaXJzdF9ieXRl
ID0gKChfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRSA8PCA1KSB8Ci0gICAgICAgICAg
ICAgICAgICAocmVqZWN0ZWQgPDwgNCkgfCBlbmNvZGluZykKLSAgICBibG9jayA9IChjaHIoZmly
c3RfYnl0ZSkgKwotICAgICAgICAgICAgIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSAr
Ci0gICAgICAgICAgICAgX2VuY29kZV9udW1iZXIobGVuKGVuY29kZWRfaGFuZHNoYWtlKSkgKwot
ICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlKQotICAgIHJldHVybiBibG9jawotCi0KLWRl
ZiBfY3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkLCBjb2RlPU5vbmUsIG1lc3NhZ2U9Jycp
OgotICAgIGlmIGxlbihtZXNzYWdlKSA+IDAgYW5kIGNvZGUgaXMgTm9uZToKLSAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcignQ29kZSBtdXN0IGJlIHNwZWNpZmllZCBpZiBtZXNzYWdlIGlzIHNwZWNp
ZmllZCcpCi0KLSAgICBmaXJzdF9ieXRlID0gX01VWF9PUENPREVfRFJPUF9DSEFOTkVMIDw8IDUK
LSAgICBibG9jayA9IGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVs
X2lkKQotICAgIGlmIGNvZGUgaXMgTm9uZToKLSAgICAgICAgYmxvY2sgKz0gX2VuY29kZV9udW1i
ZXIoMCkgICMgUmVhc29uIHNpemUKLSAgICBlbHNlOgotICAgICAgICByZWFzb24gPSBzdHJ1Y3Qu
cGFjaygnIUgnLCBjb2RlKSArIG1lc3NhZ2UKLSAgICAgICAgcmVhc29uX3NpemUgPSBfZW5jb2Rl
X251bWJlcihsZW4ocmVhc29uKSkKLSAgICAgICAgYmxvY2sgKz0gcmVhc29uX3NpemUgKyByZWFz
b24KLQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBfY3JlYXRlX2Zsb3dfY29udHJvbChjaGFu
bmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSk6Ci0gICAgZmlyc3RfYnl0ZSA9IF9NVVhfT1BDT0RF
X0ZMT1dfQ09OVFJPTCA8PCA1Ci0gICAgYmxvY2sgPSAoY2hyKGZpcnN0X2J5dGUpICsKLSAgICAg
ICAgICAgICBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKwotICAgICAgICAgICAgIF9l
bmNvZGVfbnVtYmVyKHJlcGxlbmlzaGVkX3F1b3RhKSkKLSAgICByZXR1cm4gYmxvY2sKLQotCi1k
ZWYgX2NyZWF0ZV9uZXdfY2hhbm5lbF9zbG90KHNsb3RzLCBzZW5kX3F1b3RhKToKLSAgICBpZiBz
bG90cyA8IDAgb3Igc2VuZF9xdW90YSA8IDA6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3Ns
b3RzIGFuZCBzZW5kX3F1b3RhIG11c3QgYmUgbm9uLW5lZ2F0aXZlLicpCi0gICAgZmlyc3RfYnl0
ZSA9IF9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1QgPDwgNQotICAgIGJsb2NrID0gKGNocihm
aXJzdF9ieXRlKSArCi0gICAgICAgICAgICAgX2VuY29kZV9udW1iZXIoc2xvdHMpICsKLSAgICAg
ICAgICAgICBfZW5jb2RlX251bWJlcihzZW5kX3F1b3RhKSkKLSAgICByZXR1cm4gYmxvY2sKLQot
Ci1kZWYgX2NyZWF0ZV9mYWxsYmFja19uZXdfY2hhbm5lbF9zbG90KCk6Ci0gICAgZmlyc3RfYnl0
ZSA9IChfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UIDw8IDUpIHwgMSAgIyBTZXQgdGhlIEYg
ZmxhZwotICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfbnVtYmVyKDApICsg
X2VuY29kZV9udW1iZXIoMCkpCi0gICAgcmV0dXJuIGJsb2NrCi0KLQotZGVmIF9wYXJzZV9yZXF1
ZXN0X3RleHQocmVxdWVzdF90ZXh0KToKLSAgICByZXF1ZXN0X2xpbmUsIGhlYWRlcl9saW5lcyA9
IHJlcXVlc3RfdGV4dC5zcGxpdCgnXHJcbicsIDEpCi0KLSAgICB3b3JkcyA9IHJlcXVlc3RfbGlu
ZS5zcGxpdCgnICcpCi0gICAgaWYgbGVuKHdvcmRzKSAhPSAzOgotICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCdCYWQgUmVxdWVzdC1MaW5lIHN5bnRheCAlcicgJSByZXF1ZXN0X2xpbmUpCi0gICAg
W2NvbW1hbmQsIHBhdGgsIHZlcnNpb25dID0gd29yZHMKLSAgICBpZiB2ZXJzaW9uICE9ICdIVFRQ
LzEuMSc6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCByZXF1ZXN0IHZlcnNpb24gJXIn
ICUgdmVyc2lvbikKLQotICAgICMgZW1haWwucGFyc2VyLlBhcnNlcigpIHBhcnNlcyBSRkMgMjgy
MiAoUkZDIDgyMikgc3R5bGUgaGVhZGVycy4KLSAgICAjIFJGQyA2NDU1IHJlZmVycyBSRkMgMjYx
NiBmb3IgaGFuZHNoYWtlIHBhcnNpbmcsIGFuZCBSRkMgMjYxNiByZWZlcnMKLSAgICAjIFJGQyA4
MjIuCi0gICAgaGVhZGVycyA9IGVtYWlsLnBhcnNlci5QYXJzZXIoKS5wYXJzZXN0cihoZWFkZXJf
bGluZXMpCi0gICAgcmV0dXJuIGNvbW1hbmQsIHBhdGgsIHZlcnNpb24sIGhlYWRlcnMKLQotCi1j
bGFzcyBfQ29udHJvbEJsb2NrKG9iamVjdCk6Ci0KLSAgICAiIiJBIHN0cnVjdHVyZSB0aGF0IGhv
bGRzIHBhcnNpbmcgcmVzdWx0IG9mIG11bHRpcGxleGluZyBjb250cm9sIGJsb2NrLgotCi0gICAg
Q29udHJvbCBibG9jayBzcGVjaWZpYyBhdHRyaWJ1dGVzIHdpbGwgYmUgYWRkZWQgYnkgX011eEZy
YW1lUGF5bG9hZFBhcnNlci4KLSAgICAoZS5nLiBlbmNvZGVkX2hhbmRzaGFrZSB3aWxsIGJlIGFk
ZGVkIGZvciBBZGRDaGFubmVsUmVxdWVzdCBhbmQKLSAgICBBZGRDaGFubmVsUmVzcG9uc2UpCi0g
ICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3Bjb2RlKToKLSAgICAgICAgc2VsZi5v
cGNvZGUgPSBvcGNvZGUKLQotCi1jbGFzcyBfTXV4RnJhbWVQYXlsb2FkUGFyc2VyKG9iamVjdCk6
Ci0KLSAgICAiIiJBIGNsYXNzIHRoYXQgcGFyc2VzIG11bHRpcGxleGVkIGZyYW1lIHBheWxvYWQu
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGF5bG9hZCk6Ci0gICAgICAgIHNlbGYuX2Rh
dGEgPSBwYXlsb2FkCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gPSAwCi0gICAgICAgIHNl
bGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgZGVmIHJlYWRf
Y2hhbm5lbF9pZChzZWxmKToKLSAgICAgICAgIiIiUmVhZCBjaGFubmVsIGlkLgotCi0gICAgICAg
IFJhaXNlczoKLSAgICAgICAgICAgIFZhbHVlRXJyb3I6IHdoZW4gdGhlIHBheWxvYWQgZG9lc24n
dCBjb250YWluCi0gICAgICAgICAgICAgICAgdmFsaWQgY2hhbm5lbCBpZC4KLSAgICAgICAgIiIi
Ci0gICAgICAgIHJlbWFpbmluZ19sZW5ndGggPSBsZW4oc2VsZi5fZGF0YSkgLSBzZWxmLl9yZWFk
X3Bvc2l0aW9uCi0gICAgICAgIHBvcyA9IHNlbGYuX3JlYWRfcG9zaXRpb24KLSAgICAgICAgaWYg
cmVtYWluaW5nX2xlbmd0aCA9PSAwOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52
YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0KLSAgICAgICAgY2hhbm5lbF9pZCA9IG9yZChzZWxm
Ll9kYXRhW3Bvc10pCi0gICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gMQotICAgICAgICBpZiBj
aGFubmVsX2lkICYgMHhlMCA9PSAweGUwOgotICAgICAgICAgICAgaWYgcmVtYWluaW5nX2xlbmd0
aCA8IDQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVs
IGlkIGZvcm1hdCcpCi0gICAgICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVucGFjaygnIUwn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZGF0YVtwb3M6
cG9zKzRdKVswXSAmIDB4MWZmZmZmZmYKLSAgICAgICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0g
NAotICAgICAgICBlbGlmIGNoYW5uZWxfaWQgJiAweGMwID09IDB4YzA6Ci0gICAgICAgICAgICBp
ZiByZW1haW5pbmdfbGVuZ3RoIDwgMzoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgICAgIGNoYW5uZWxfaWQgPSAo
KChjaGFubmVsX2lkICYgMHgxZikgPDwgMTYpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0LnVucGFjaygnIUgnLCBzZWxmLl9kYXRhW3BvcysxOnBvcyszXSlbMF0pCi0gICAgICAg
ICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDMKLSAgICAgICAgZWxpZiBjaGFubmVsX2lkICYgMHg4
MCA9PSAweDgwOgotICAgICAgICAgICAgaWYgcmVtYWluaW5nX2xlbmd0aCA8IDI6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0g
ICAgICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVucGFjaygnIUgnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZGF0YVtwb3M6cG9zKzJdKVswXSAmIDB4
M2ZmZgotICAgICAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAyCi0gICAgICAgIHNlbGYuX3Jl
YWRfcG9zaXRpb24gKz0gY2hhbm5lbF9pZF9sZW5ndGgKLQotICAgICAgICByZXR1cm4gY2hhbm5l
bF9pZAotCi0gICAgZGVmIHJlYWRfaW5uZXJfZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIlJlYWQg
YW4gaW5uZXIgZnJhbWUuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgUGh5c2ljYWxD
b25uZWN0aW9uRXJyb3I6IHdoZW4gdGhlIGlubmVyIGZyYW1lIGlzIGludmFsaWQuCi0gICAgICAg
ICIiIgotICAgICAgICBpZiBsZW4oc2VsZi5fZGF0YSkgPT0gc2VsZi5fcmVhZF9wb3NpdGlvbjoK
LSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAg
ICAgIF9EUk9QX0NPREVfRU5DQVBTVUxBVEVEX0ZSQU1FX0lTX1RSVU5DQVRFRCkKLQotICAgICAg
ICBiaXRzID0gb3JkKHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3NpdGlvbl0pCi0gICAgICAgIHNl
bGYuX3JlYWRfcG9zaXRpb24gKz0gMQotICAgICAgICBmaW4gPSAoYml0cyAmIDB4ODApID09IDB4
ODAKLSAgICAgICAgcnN2MSA9IChiaXRzICYgMHg0MCkgPT0gMHg0MAotICAgICAgICByc3YyID0g
KGJpdHMgJiAweDIwKSA9PSAweDIwCi0gICAgICAgIHJzdjMgPSAoYml0cyAmIDB4MTApID09IDB4
MTAKLSAgICAgICAgb3Bjb2RlID0gYml0cyAmIDB4ZgotICAgICAgICBwYXlsb2FkID0gc2VsZi5y
ZW1haW5pbmdfZGF0YSgpCi0gICAgICAgICMgQ29uc3VtZSByZXN0IG9mIHRoZSBtZXNzYWdlIHdo
aWNoIGlzIHBheWxvYWQgZGF0YSBvZiB0aGUgb3JpZ2luYWwKLSAgICAgICAgIyBmcmFtZS4KLSAg
ICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiA9IGxlbihzZWxmLl9kYXRhKQotICAgICAgICByZXR1
cm4gZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWQKLQotICAgIGRlZiBfcmVh
ZF9udW1iZXIoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX3JlYWRfcG9zaXRpb24gKyAxID4gbGVu
KHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAg
ICAgICAnQ2Fubm90IHJlYWQgdGhlIGZpcnN0IGJ5dGUgb2YgbnVtYmVyIGZpZWxkJykKLQotICAg
ICAgICBudW1iZXIgPSBvcmQoc2VsZi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uXSkKLSAgICAg
ICAgaWYgbnVtYmVyICYgMHg4MCA9PSAweDgwOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigKLSAgICAgICAgICAgICAgICAnVGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIHRoZSBmaXJz
dCBieXRlIG9mIG51bWJlciBzaG91bGQgJwotICAgICAgICAgICAgICAgICdiZSB1bnNldCcpCi0g
ICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gMQotICAgICAgICBwb3MgPSBzZWxmLl9yZWFk
X3Bvc2l0aW9uCi0gICAgICAgIGlmIG51bWJlciA9PSAxMjc6Ci0gICAgICAgICAgICBpZiBwb3Mg
KyA4ID4gbGVuKHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
J0ludmFsaWQgbnVtYmVyIGZpZWxkJykKLSAgICAgICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24g
Kz0gOAotICAgICAgICAgICAgbnVtYmVyID0gc3RydWN0LnVucGFjaygnIVEnLCBzZWxmLl9kYXRh
W3Bvczpwb3MrOF0pWzBdCi0gICAgICAgICAgICBpZiBudW1iZXIgPiAweDdGRkZGRkZGRkZGRkZG
RkY6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignRW5jb2RlZCBudW1iZXIoJWQp
ID49IDJeNjMnICUgbnVtYmVyKQotICAgICAgICAgICAgaWYgbnVtYmVyIDw9IDB4RkZGRjoKLSAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnJWQg
c2hvdWxkIG5vdCBiZSBlbmNvZGVkIGJ5IDkgYnl0ZXMgZW5jb2RpbmcnICUgbnVtYmVyKQotICAg
ICAgICAgICAgcmV0dXJuIG51bWJlcgotICAgICAgICBpZiBudW1iZXIgPT0gMTI2OgotICAgICAg
ICAgICAgaWYgcG9zICsgMiA+IGxlbihzZWxmLl9kYXRhKToKLSAgICAgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdJbnZhbGlkIG51bWJlciBmaWVsZCcpCi0gICAgICAgICAgICBzZWxmLl9y
ZWFkX3Bvc2l0aW9uICs9IDIKLSAgICAgICAgICAgIG51bWJlciA9IHN0cnVjdC51bnBhY2soJyFI
Jywgc2VsZi5fZGF0YVtwb3M6cG9zKzJdKVswXQotICAgICAgICAgICAgaWYgbnVtYmVyIDw9IDEy
NToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAg
ICAnJWQgc2hvdWxkIG5vdCBiZSBlbmNvZGVkIGJ5IDMgYnl0ZXMgZW5jb2RpbmcnICUgbnVtYmVy
KQotICAgICAgICByZXR1cm4gbnVtYmVyCi0KLSAgICBkZWYgX3JlYWRfc2l6ZV9hbmRfY29udGVu
dHMoc2VsZik6Ci0gICAgICAgICIiIlJlYWQgZGF0YSB0aGF0IGNvbnNpc3RzIG9mIHRoZSBmb2xs
b3dpbmc6Ci0gICAgICAgICAgICAtIHRoZSBzaXplIG9mIHRoZSBjb250ZW50cyBlbmNvZGVkIHRo
ZSBzYW1lIHdheSBhcyBwYXlsb2FkIGxlbmd0aAotICAgICAgICAgICAgICBvZiB0aGUgV2ViU29j
a2V0IFByb3RvY29sIHdpdGggMSBiaXQgcGFkZGluZyBhdCB0aGUgaGVhZC4KLSAgICAgICAgICAg
IC0gdGhlIGNvbnRlbnRzLgotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
c2l6ZSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMg
ZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVf
SU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0cihlKSkKLSAgICAgICAgcG9zID0gc2VsZi5fcmVhZF9wb3NpdGlvbgot
ICAgICAgICBpZiBwb3MgKyBzaXplID4gbGVuKHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgcmFp
c2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9J
TlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdDYW5ub3QgcmVhZCAl
ZCBieXRlcyBkYXRhJyAlIHNpemUpCi0KLSAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiArPSBz
aXplCi0gICAgICAgIHJldHVybiBzZWxmLl9kYXRhW3Bvczpwb3Mrc2l6ZV0KLQotICAgIGRlZiBf
cmVhZF9hZGRfY2hhbm5lbF9yZXF1ZXN0KHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2sp
OgotICAgICAgICByZXNlcnZlZCA9IChmaXJzdF9ieXRlID4+IDIpICYgMHg3Ci0gICAgICAgIGlm
IHJlc2VydmVkICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJv
cigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ss
Ci0gICAgICAgICAgICAgICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCi0KLSAgICAg
ICAgIyBJbnZhbGlkIGVuY29kaW5nIHdpbGwgYmUgaGFuZGxlZCBieSBNdXhIYW5kbGVyLgotICAg
ICAgICBlbmNvZGluZyA9IGZpcnN0X2J5dGUgJiAweDMKLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lkID0gc2VsZi5yZWFkX2NoYW5uZWxfaWQoKQotICAg
ICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxD
b25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLKQotICAg
ICAgICBjb250cm9sX2Jsb2NrLmVuY29kaW5nID0gZW5jb2RpbmcKLSAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2UgPSBzZWxmLl9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKCkKLSAgICAgICAgY29udHJv
bF9ibG9jay5lbmNvZGVkX2hhbmRzaGFrZSA9IGVuY29kZWRfaGFuZHNoYWtlCi0gICAgICAgIHJl
dHVybiBjb250cm9sX2Jsb2NrCi0KLSAgICBkZWYgX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2Uo
c2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jayk6Ci0gICAgICAgIHJlc2VydmVkID0gKGZp
cnN0X2J5dGUgPj4gMikgJiAweDMKLSAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKLSAgICAgICAg
ICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9Q
X0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAnUmVzZXJ2
ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKLQotICAgICAgICBjb250cm9sX2Jsb2NrLmFjY2VwdGVk
ID0gKGZpcnN0X2J5dGUgPj4gNCkgJiAxCi0gICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2Rpbmcg
PSBmaXJzdF9ieXRlICYgMHgzCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxv
Y2suY2hhbm5lbF9pZCA9IHNlbGYucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0IFZh
bHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9y
KF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSykKLSAgICAgICAgY29udHJvbF9i
bG9jay5lbmNvZGVkX2hhbmRzaGFrZSA9IHNlbGYuX3JlYWRfc2l6ZV9hbmRfY29udGVudHMoKQot
ICAgICAgICByZXR1cm4gY29udHJvbF9ibG9jawotCi0gICAgZGVmIF9yZWFkX2Zsb3dfY29udHJv
bChzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQgPSBm
aXJzdF9ieXRlICYgMHgxZgotICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAgICAg
cmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09E
RV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZXNlcnZlZCBi
aXRzIG11c3QgYmUgdW5zZXQnKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xf
YmxvY2suY2hhbm5lbF9pZCA9IHNlbGYucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgICAgIGNv
bnRyb2xfYmxvY2suc2VuZF9xdW90YSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgZXhj
ZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlv
bkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihlKSkKLQotICAgICAgICByZXR1cm4g
Y29udHJvbF9ibG9jawotCi0gICAgZGVmIF9yZWFkX2Ryb3BfY2hhbm5lbChzZWxmLCBmaXJzdF9i
eXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQgPSBmaXJzdF9ieXRlICYgMHgx
ZgotICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxD
b25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9D
T05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5z
ZXQnKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9p
ZCA9IHNlbGYucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMg
ZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVf
SU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSykKLSAgICAgICAgcmVhc29uID0gc2VsZi5fcmVhZF9z
aXplX2FuZF9jb250ZW50cygpCi0gICAgICAgIGlmIGxlbihyZWFzb24pID09IDA6Ci0gICAgICAg
ICAgICBjb250cm9sX2Jsb2NrLmRyb3BfY29kZSA9IE5vbmUKLSAgICAgICAgICAgIGNvbnRyb2xf
YmxvY2suZHJvcF9tZXNzYWdlID0gJycKLSAgICAgICAgZWxpZiBsZW4ocmVhc29uKSA+PSAyOgot
ICAgICAgICAgICAgY29udHJvbF9ibG9jay5kcm9wX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcs
IHJlYXNvbls6Ml0pWzBdCi0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLmRyb3BfbWVzc2FnZSA9
IHJlYXNvblsyOl0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29u
bmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09O
VFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgRHJvcENoYW5uZWwgdGhhdCBj
b25haW5zIG9ubHkgMS1ieXRlIHJlYXNvbicpCi0gICAgICAgIHJldHVybiBjb250cm9sX2Jsb2Nr
Ci0KLSAgICBkZWYgX3JlYWRfbmV3X2NoYW5uZWxfc2xvdChzZWxmLCBmaXJzdF9ieXRlLCBjb250
cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQgPSBmaXJzdF9ieXRlICYgMHgxZQotICAgICAg
ICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9u
RXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JM
T0NLLAotICAgICAgICAgICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5zZXQnKQotICAg
ICAgICBjb250cm9sX2Jsb2NrLmZhbGxiYWNrID0gZmlyc3RfYnl0ZSAmIDEKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5zbG90cyA9IHNlbGYuX3JlYWRfbnVtYmVyKCkK
LSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suc2VuZF9xdW90YSA9IHNlbGYuX3JlYWRfbnVtYmVy
KCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHJhaXNlIFBo
eXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9D
SywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihlKSkKLSAg
ICAgICAgcmV0dXJuIGNvbnRyb2xfYmxvY2sKLQotICAgIGRlZiByZWFkX2NvbnRyb2xfYmxvY2tz
KHNlbGYpOgotICAgICAgICAiIiJSZWFkIGNvbnRyb2wgYmxvY2socykuCi0KLSAgICAgICAgUmFp
c2VzOgotICAgICAgICAgICBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcjogd2hlbiB0aGUgcGF5bG9h
ZCBjb250YWlucyBpbnZhbGlkIGNvbnRyb2wKLSAgICAgICAgICAgICAgIGJsb2NrKHMpLgotICAg
ICAgICAgICBTdG9wSXRlcmF0aW9uOiB3aGVuIG5vIGNvbnRyb2wgYmxvY2tzIGxlZnQuCi0gICAg
ICAgICIiIgotICAgICAgICB3aGlsZSBzZWxmLl9yZWFkX3Bvc2l0aW9uIDwgbGVuKHNlbGYuX2Rh
dGEpOgotICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IG9yZChzZWxmLl9kYXRhW3NlbGYuX3JlYWRf
cG9zaXRpb25dKQotICAgICAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiArPSAxCi0gICAgICAg
ICAgICBvcGNvZGUgPSAoZmlyc3RfYnl0ZSA+PiA1KSAmIDB4NwotICAgICAgICAgICAgY29udHJv
bF9ibG9jayA9IF9Db250cm9sQmxvY2sob3Bjb2RlPW9wY29kZSkKLSAgICAgICAgICAgIGlmIG9w
Y29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUOgotICAgICAgICAgICAgICAg
IHlpZWxkIHNlbGYuX3JlYWRfYWRkX2NoYW5uZWxfcmVxdWVzdChmaXJzdF9ieXRlLCBjb250cm9s
X2Jsb2NrKQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5O
RUxfUkVTUE9OU0U6Ci0gICAgICAgICAgICAgICAgeWllbGQgc2VsZi5fcmVhZF9hZGRfY2hhbm5l
bF9yZXNwb25zZSgKLSAgICAgICAgICAgICAgICAgICAgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9j
aykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTDoK
LSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX2Zsb3dfY29udHJvbChmaXJzdF9ieXRl
LCBjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVf
RFJPUF9DSEFOTkVMOgotICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuX3JlYWRfZHJvcF9jaGFu
bmVsKGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9
PSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UOgotICAgICAgICAgICAgICAgIHlpZWxkIHNl
bGYuX3JlYWRfbmV3X2NoYW5uZWxfc2xvdChmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25F
cnJvcigKLSAgICAgICAgICAgICAgICAgICAgX0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUs
Ci0gICAgICAgICAgICAgICAgICAgICdJbnZhbGlkIG9wY29kZSAlZCcgJSBvcGNvZGUpCi0KLSAg
ICAgICAgYXNzZXJ0IHNlbGYuX3JlYWRfcG9zaXRpb24gPT0gbGVuKHNlbGYuX2RhdGEpCi0gICAg
ICAgIHJhaXNlIFN0b3BJdGVyYXRpb24KLQotICAgIGRlZiByZW1haW5pbmdfZGF0YShzZWxmKToK
LSAgICAgICAgIiIiUmV0dXJuIHJlbWFpbmluZyBkYXRhLiIiIgotICAgICAgICByZXR1cm4gc2Vs
Zi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uOl0KLQotCi1jbGFzcyBfTG9naWNhbFJlcXVlc3Qo
b2JqZWN0KToKLQotICAgICIiIk1pbWljcyBtb2RfcHl0aG9uIHJlcXVlc3QuIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgY2hhbm5lbF9pZCwgY29tbWFuZCwgcGF0aCwgcHJvdG9jb2wsIGhl
YWRlcnMsCi0gICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24pOgotICAgICAgICAiIiJDb25zdHJ1
Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ6
IHRoZSBjaGFubmVsIGlkIG9mIHRoZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAgICAgICBjb21t
YW5kOiBIVFRQIHJlcXVlc3QgY29tbWFuZC4KLSAgICAgICAgICAgIHBhdGg6IEhUVFAgcmVxdWVz
dCBwYXRoLgotICAgICAgICAgICAgaGVhZGVyczogSFRUUCBoZWFkZXJzLgotICAgICAgICAgICAg
Y29ubmVjdGlvbjogX0xvZ2ljYWxDb25uZWN0aW9uIGluc3RhbmNlLgotICAgICAgICAiIiIKLSAg
ICAgICAgc2VsZi5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICBzZWxmLm1ldGhvZCA9
IGNvbW1hbmQKLSAgICAgICAgc2VsZi51cmkgPSBwYXRoCi0gICAgICAgIHNlbGYucHJvdG9jb2wg
PSBwcm90b2NvbAotICAgICAgICBzZWxmLmhlYWRlcnNfaW4gPSBoZWFkZXJzCi0gICAgICAgIHNl
bGYuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb24KLSAgICAgICAgc2VsZi5zZXJ2ZXJfdGVybWluYXRl
ZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuY2xpZW50X3Rlcm1pbmF0ZWQgPSBGYWxzZQotCi0gICAg
ZGVmIGlzX2h0dHBzKHNlbGYpOgotICAgICAgICAiIiJNaW1pYyByZXF1ZXN0LmlzX2h0dHBzKCku
Ci0KLSAgICAgICAgUmV0dXJucyBGYWxzZSBiZWNhdXNlIHRoaXMgbWV0aG9kIGlzIHVzZWQgb25s
eSBieSBvbGQgcHJvdG9jb2xzCi0gICAgICAgIChoaXhpZSBhbmQgaHliaTAwKS4KLSAgICAgICAg
IiIiCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWNsYXNzIF9Mb2dpY2FsQ29ubmVjdGlvbihv
YmplY3QpOgotCi0gICAgIiIiTWltaWNzIG1vZF9weXRob24gbXBfY29ubi4iIiIKLQotICAgICMg
Rm9yIGRldGFpbHMsIHNlZSB0aGUgY29tbWVudCBvZiBzZXRfcmVhZF9zdGF0ZSgpLgotICAgIFNU
QVRFX0FDVElWRSA9IDEKLSAgICBTVEFURV9HUkFDRUZVTExZX0NMT1NFRCA9IDIKLSAgICBTVEFU
RV9URVJNSU5BVEVEID0gMwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG11eF9oYW5kbGVyLCBj
aGFubmVsX2lkKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAg
IEFyZ3M6Ci0gICAgICAgICAgICBtdXhfaGFuZGxlcjogX011eEhhbmRsZXIgaW5zdGFuY2UuCi0g
ICAgICAgICAgICBjaGFubmVsX2lkOiBjaGFubmVsIGlkIG9mIHRoaXMgY29ubmVjdGlvbi4KLSAg
ICAgICAgIiIiCi0gICAgICAgIHNlbGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIKLSAgICAg
ICAgc2VsZi5fY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgc2VsZi5faW5jb21pbmdf
ZGF0YSA9ICcnCi0KLSAgICAgICAgIyAtIFByb3RlY3RzIF93YWl0aW5nX3dyaXRlX2NvbXBsZXRp
b24KLSAgICAgICAgIyAtIFNpZ25hbHMgdGhlIHRocmVhZCB3YWl0aW5nIGZvciBjb21wbGV0aW9u
IG9mIHdyaXRlIGJ5IG11eCBoYW5kbGVyCi0gICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbiA9
IHRocmVhZGluZy5Db25kaXRpb24oKQotICAgICAgICBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBs
ZXRpb24gPSBGYWxzZQotCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uID0gdGhyZWFkaW5n
LkNvbmRpdGlvbigpCi0gICAgICAgIHNlbGYuX3JlYWRfc3RhdGUgPSBzZWxmLlNUQVRFX0FDVElW
RQotCi0gICAgZGVmIGdldF9sb2NhbF9hZGRyKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8g
bWltaWMgbXBfY29ubi5sb2NhbF9hZGRyLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fbXV4X2hh
bmRsZXIucGh5c2ljYWxfY29ubmVjdGlvbi5nZXRfbG9jYWxfYWRkcigpCi0gICAgbG9jYWxfYWRk
ciA9IHByb3BlcnR5KGdldF9sb2NhbF9hZGRyKQotCi0gICAgZGVmIGdldF9yZW1vdGVfYWRkcihz
ZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ucmVtb3RlX2FkZHIuIiIi
Ci0gICAgICAgIHJldHVybiBzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9jb25uZWN0aW9uLmdl
dF9yZW1vdGVfYWRkcigpCi0gICAgcmVtb3RlX2FkZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2Fk
ZHIpCi0KLSAgICBkZWYgZ2V0X21lbW9yaXplZF9saW5lcyhzZWxmKToKLSAgICAgICAgIiIiR2V0
IG1lbW9yaXplZCBsaW5lcy4gTm90IHN1cHBvcnRlZC4iIiIKLSAgICAgICAgcmFpc2UgTXV4VW5l
eHBlY3RlZEV4Y2VwdGlvbignX0xvZ2ljYWxDb25uZWN0aW9uIGRvZXMgbm90IHN1cHBvcnQgJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfbWVtb3JpemVkX2xpbmVz
JykKLQotICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiV3JpdGUgZGF0YS4g
bXV4X2hhbmRsZXIgc2VuZHMgZGF0YSBhc3luY2hyb25vdXNseS4KLQotICAgICAgICBUaGUgY2Fs
bGVyIHdpbGwgYmUgc3VzcGVuZGVkIHVudGlsIHdyaXRlIGRvbmUuCi0KLSAgICAgICAgQXJnczoK
LSAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgd3JpdHRlbi4KLQotICAgICAgICBSYWlzZXM6
Ci0gICAgICAgICAgICBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBiZWZvcmUg
ZmluaXNoaW5nIHRoZSBwcmV2aW91cwotICAgICAgICAgICAgICAgIHdyaXRlLgotICAgICAgICAi
IiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLmFjcXVp
cmUoKQotICAgICAgICAgICAgaWYgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uOgotICAg
ICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgICAgICdMb2dpY2FsIGNvbm5lY3Rpb24gJWQgaXMgYWxyZWFkeSB3YWl0aW5nIHRoZSBjb21w
bGV0aW9uICcKLSAgICAgICAgICAgICAgICAgICAgJ29mIHdyaXRlJyAlIHNlbGYuX2NoYW5uZWxf
aWQpCi0KLSAgICAgICAgICAgIHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IFRydWUK
LSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLnNlbmRfZGF0YShzZWxmLl9jaGFubmVsX2lk
LCBkYXRhKQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLndhaXQoKQotICAgICAg
ICAgICAgIyBUT0RPKHR5b3NoaW5vKTogUmFpc2UgYW4gZXhjZXB0aW9uIGlmIHdva2UgdXAgYnkg
b25fd3JpdGVyX2RvbmUuCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93cml0
ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgd3JpdGVfY29udHJvbF9kYXRhKHNlbGYs
IGRhdGEpOgotICAgICAgICAiIiJXcml0ZSBkYXRhIHZpYSB0aGUgY29udHJvbCBjaGFubmVsLgot
Ci0gICAgICAgIERvbid0IHdhaXQgZmluaXNoaW5nIHdyaXRlIGJlY2F1c2UgdGhpcyBtZXRob2Qg
Y2FuIGJlIGNhbGxlZCBieQotICAgICAgICBtdXggZGlzcGF0Y2hlci4KLQotICAgICAgICBBcmdz
OgotICAgICAgICAgICAgZGF0YTogZGF0YSB0byBiZSB3cml0dGVuLgotICAgICAgICAiIiIKLSAg
ICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuc2VuZF9jb250cm9sX2RhdGEoZGF0YSkKLQotICAgIGRl
ZiBvbl93cml0ZV9kYXRhX2RvbmUoc2VsZik6Ci0gICAgICAgICIiIkNhbGxlZCB3aGVuIHNlbmRp
bmcgZGF0YSBpcyBjb21wbGV0ZWQuIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYu
X3dyaXRlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl93YWl0
aW5nX3dyaXRlX2NvbXBsZXRpb246Ci0gICAgICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3Rl
ZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ0ludmFsaWQgY2FsbCBvZiBvbl93cml0
ZV9kYXRhX2RvbmUgZm9yIGxvZ2ljYWwgJwotICAgICAgICAgICAgICAgICAgICAnY29ubmVjdGlv
biAlZCcgJSBzZWxmLl9jaGFubmVsX2lkKQotICAgICAgICAgICAgc2VsZi5fd2FpdGluZ193cml0
ZV9jb21wbGV0aW9uID0gRmFsc2UKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5u
b3RpZnkoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0
aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIG9uX3dyaXRlcl9kb25lKHNlbGYpOgotICAgICAgICAi
IiJDYWxsZWQgYnkgdGhlIG11eCBoYW5kbGVyIHdoZW4gdGhlIHdyaXRlciB0aHJlYWQgaGFzIGZp
bmlzaGVkLiIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRp
b24uYWNxdWlyZSgpCi0gICAgICAgICAgICBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24g
PSBGYWxzZQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ucmVsZWFzZSgp
Ci0KLSAgICBkZWYgYXBwZW5kX2ZyYW1lX2RhdGEoc2VsZiwgZnJhbWVfZGF0YSk6Ci0gICAgICAg
ICIiIkFwcGVuZCBpbmNvbWluZyBmcmFtZSBkYXRhLgotCi0gICAgICAgIENhbGxlZCB3aGVuIG11
eF9oYW5kbGVyIGRpc3BhdGNoZXMgZnJhbWUgZGF0YSB0byB0aGUgY29ycmVzcG9uZGluZwotICAg
ICAgICBhcHBsaWNhdGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZnJhbWVfZGF0
YTogaW5jb21pbmcgZnJhbWUgZGF0YS4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX3JlYWRf
Y29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19kYXRhICs9IGZyYW1l
X2RhdGEKLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgc2Vs
Zi5fcmVhZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgcmVhZChzZWxmLCBsZW5ndGgp
OgotICAgICAgICAiIiJSZWFkIGRhdGEuCi0KLSAgICAgICAgQmxvY2tzIHVudGlsIGVub3VnaCBk
YXRhIGhhcyBhcnJpdmVkIHZpYSBwaHlzaWNhbCBjb25uZWN0aW9uLgotCi0gICAgICAgIEFyZ3M6
Ci0gICAgICAgICAgICBsZW5ndGg6IGxlbmd0aCBvZiBkYXRhIHRvIGJlIHJlYWQuCi0gICAgICAg
IFJhaXNlczoKLSAgICAgICAgICAgIExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uOiB3
aGVuIGNsb3NpbmcgaGFuZHNoYWtlIGZvciB0aGlzCi0gICAgICAgICAgICAgICAgbG9naWNhbCBj
aGFubmVsIGhhcyBiZWVuIHJlY2VpdmVkLgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb246IHdoZW4gdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24gaGFzCi0gICAgICAgICAg
ICAgICAgY2xvc2VkLCBvciBhbiBlcnJvciBpcyBjYXVzZWQgb24gdGhlIHJlYWRlciB0aHJlYWQu
Ci0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgd2hpbGUgKHNlbGYuX3JlYWRfc3RhdGUgPT0gc2VsZi5TVEFURV9BQ1RJVkUgYW5kCi0g
ICAgICAgICAgICAgICBsZW4oc2VsZi5faW5jb21pbmdfZGF0YSkgPCBsZW5ndGgpOgotICAgICAg
ICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24ud2FpdCgpCi0KLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgaWYgc2VsZi5fcmVhZF9zdGF0ZSA9PSBzZWxmLlNUQVRFX0dSQUNFRlVMTFlfQ0xPU0VE
OgotICAgICAgICAgICAgICAgIHJhaXNlIExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICAgICAnTG9naWNhbCBjaGFubmVsICVkIGhhcyBjbG9zZWQuJyAl
IHNlbGYuX2NoYW5uZWxfaWQpCi0gICAgICAgICAgICBlbGlmIHNlbGYuX3JlYWRfc3RhdGUgPT0g
c2VsZi5TVEFURV9URVJNSU5BVEVEOgotICAgICAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5
dGUgZmFpbGVkLiBMb2dpY2FsIGNoYW5uZWwgKCVkKSBjbG9zZWQnICUKLSAgICAgICAgICAgICAg
ICAgICAgKGxlbmd0aCwgc2VsZi5fY2hhbm5lbF9pZCkpCi0KLSAgICAgICAgICAgIHZhbHVlID0g
c2VsZi5faW5jb21pbmdfZGF0YVs6bGVuZ3RoXQotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdf
ZGF0YSA9IHNlbGYuX2luY29taW5nX2RhdGFbbGVuZ3RoOl0KLSAgICAgICAgZmluYWxseToKLSAg
ICAgICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgIHJldHVy
biB2YWx1ZQotCi0gICAgZGVmIHNldF9yZWFkX3N0YXRlKHNlbGYsIG5ld19zdGF0ZSk6Ci0gICAg
ICAgICIiIlNldCB0aGUgc3RhdGUgb2YgdGhpcyBjb25uZWN0aW9uLgotCi0gICAgICAgIENhbGxl
ZCB3aGVuIGFuIGV2ZW50IGZvciB0aGlzIGNvbm5lY3Rpb24gaGFzIG9jY3VycmVkLgotICAgICAg
ICBBcmdzOgotICAgICAgICAgICAgbmV3X3N0YXRlOiBzdGF0ZSB0byBiZSBzZXQuIG5ld19zdGF0
ZSBtdXN0IGJlIG9uZSBvZiBmb2xsb3dpbmdzOgotICAgICAgICAgICAgLSBTVEFURV9HUkFDRUZV
TExZX0NMT1NFRDogd2hlbiBjbG9zaW5nIGhhbmRzaGFrZSBmb3IgdGhpcwotICAgICAgICAgICAg
ICAgIGNvbm5lY3Rpb24gaGFzIGJlZW4gcmVjZWl2ZWQuCi0gICAgICAgICAgICAtIFNUQVRFX1RF
Uk1JTkFURUQ6IHdoZW4gdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24gaGFzIGNsb3NlZCBvcgotICAg
ICAgICAgICAgICAgIERyb3BDaGFubmVsIG9mIHRoaXMgY29ubmVjdGlvbiBoYXMgcmVjZWl2ZWQu
Ci0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgc2VsZi5fcmVhZF9zdGF0ZSA9IG5ld19zdGF0ZQotICAgICAgICBzZWxmLl9yZWFkX2Nv
bmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5yZWxlYXNlKCkK
LQotCi1jbGFzcyBfSW5uZXJNZXNzYWdlKG9iamVjdCk6Ci0KLSAgICAiIiJIb2xkIHRoZSByZXN1
bHQgb2YgX0lubmVyTWVzc2FnZUJ1aWxkZXIuYnVpbGQoKS4iIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBvcGNvZGUsIHBheWxvYWQpOgotICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQot
ICAgICAgICBzZWxmLnBheWxvYWQgPSBwYXlsb2FkCi0KLQotY2xhc3MgX0lubmVyTWVzc2FnZUJ1
aWxkZXIob2JqZWN0KToKLQotICAgICIiIkNsYXNzIHRvIGJ1aWxkIGFuIF9Jbm5lck1lc3NhZ2Uu
Ci0KLSAgICBBIGNsYXNzIHRoYXQgaG9sZHMgdGhlIGNvbnRleHQgb2YgaW5uZXIgbWVzc2FnZSBm
cmFnbWVudGF0aW9uIGFuZAotICAgIGJ1aWxkcyBhIG1lc3NhZ2UgZnJvbSBmcmFnbWVudGVkIGlu
bmVyIGZyYW1lKHMpLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAg
ICBzZWxmLl9jb250cm9sX29wY29kZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19jb250
cm9sX2ZyYWdtZW50cyA9IFtdCi0gICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gTm9uZQot
ICAgICAgICBzZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzID0gW10KLSAgICAgICAgc2Vs
Zi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9maXJzdAotCi0gICAgZGVmIF9oYW5kbGVf
Zmlyc3Qoc2VsZiwgZnJhbWUpOgotICAgICAgICBpZiBmcmFtZS5vcGNvZGUgPT0gY29tbW9uLk9Q
Q09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRp
b24oJ1NlbmRpbmcgaW52YWxpZCBjb250aW51YXRpb24gb3Bjb2RlJykKLQotICAgICAgICBpZiBj
b21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKToKLSAgICAgICAgICAgIHJldHVy
biBzZWxmLl9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfY29udHJvbChmcmFtZSkKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRf
bWVzc2FnZShmcmFtZSkKLQotICAgIGRlZiBfcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX2NvbnRy
b2woc2VsZiwgZnJhbWUpOgotICAgICAgICBzZWxmLl9jb250cm9sX29wY29kZSA9IGZyYW1lLm9w
Y29kZQotICAgICAgICBzZWxmLl9wZW5kaW5nX2NvbnRyb2xfZnJhZ21lbnRzLmFwcGVuZChmcmFt
ZS5wYXlsb2FkKQotICAgICAgICBpZiBub3QgZnJhbWUuZmluOgotICAgICAgICAgICAgc2VsZi5f
ZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9mcmFnbWVudGVkX2NvbnRyb2wKLSAgICAgICAg
ICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdtZW50
ZWRfY29udHJvbCgpCi0KLSAgICBkZWYgX3Byb2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9tZXNzYWdl
KHNlbGYsIGZyYW1lKToKLSAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBmcmFtZS5vcGNv
ZGUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUu
cGF5bG9hZCkKLSAgICAgICAgaWYgbm90IGZyYW1lLmZpbjoKLSAgICAgICAgICAgIHNlbGYuX2Zy
YW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZnJhZ21lbnRlZF9tZXNzYWdlCi0gICAgICAgICAg
ICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gc2VsZi5fcmVhc3NlbWJsZV9mcmFnbWVudGVk
X21lc3NhZ2UoKQotCi0gICAgZGVmIF9oYW5kbGVfZnJhZ21lbnRlZF9jb250cm9sKHNlbGYsIGZy
YW1lKToKLSAgICAgICAgaWYgZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFU
SU9OOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICdTZW5kaW5nIGludmFsaWQgb3Bjb2RlICVkIHdoaWxlIHNlbmRpbmcgZnJhZ21lbnRl
ZCBjb250cm9sICcKLSAgICAgICAgICAgICAgICAnbWVzc2FnZScgJSBmcmFtZS5vcGNvZGUpCi0g
ICAgICAgIHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxv
YWQpCi0gICAgICAgIGlmIG5vdCBmcmFtZS5maW46Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQot
ICAgICAgICByZXR1cm4gc2VsZi5fcmVhc3NlbWJsZV9mcmFnbWVudGVkX2NvbnRyb2woKQotCi0g
ICAgZGVmIF9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfY29udHJvbChzZWxmKToKLSAgICAgICAgb3Bj
b2RlID0gc2VsZi5fY29udHJvbF9vcGNvZGUKLSAgICAgICAgcGF5bG9hZCA9ICcnLmpvaW4oc2Vs
Zi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50cykKLSAgICAgICAgc2VsZi5fY29udHJvbF9vcGNv
ZGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMgPSBbXQot
ICAgICAgICBpZiBzZWxmLl9tZXNzYWdlX29wY29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZnJhZ21lbnRlZF9tZXNzYWdlCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFu
ZGxlX2ZpcnN0Ci0gICAgICAgIHJldHVybiBfSW5uZXJNZXNzYWdlKG9wY29kZSwgcGF5bG9hZCkK
LQotICAgIGRlZiBfaGFuZGxlX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmLCBmcmFtZSk6Ci0gICAg
ICAgICMgU2VuZGVyIGNhbiBpbnRlcmxlYXZlIGEgY29udHJvbCBtZXNzYWdlIHdoaWxlIHNlbmRp
bmcgZnJhZ21lbnRlZAotICAgICAgICAjIG1lc3NhZ2VzLgotICAgICAgICBpZiBjb21tb24uaXNf
Y29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKToKLSAgICAgICAgICAgIGlmIHNlbGYuX2NvbnRy
b2xfb3Bjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0
ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdTaG91bGQgbm90IHJlYWNoIGhlcmUo
QnVnIGluIGJ1aWxkZXIpJykKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jZXNzX2ZpcnN0
X2ZyYWdtZW50ZWRfY29udHJvbChmcmFtZSkKLQotICAgICAgICBpZiBmcmFtZS5vcGNvZGUgIT0g
Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJh
bWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1NlbmRpbmcgaW52YWxpZCBvcGNvZGUgJWQg
d2hpbGUgc2VuZGluZyBmcmFnbWVudGVkIG1lc3NhZ2UnICUKLSAgICAgICAgICAgICAgICBmcmFt
ZS5vcGNvZGUpCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfbWVzc2FnZV9mcmFnbWVudHMuYXBwZW5k
KGZyYW1lLnBheWxvYWQpCi0gICAgICAgIGlmIG5vdCBmcmFtZS5maW46Ci0gICAgICAgICAgICBy
ZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gc2VsZi5fcmVhc3NlbWJsZV9mcmFnbWVudGVkX21l
c3NhZ2UoKQotCi0gICAgZGVmIF9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToK
LSAgICAgICAgb3Bjb2RlID0gc2VsZi5fbWVzc2FnZV9vcGNvZGUKLSAgICAgICAgcGF5bG9hZCA9
ICcnLmpvaW4oc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50cykKLSAgICAgICAgc2VsZi5f
bWVzc2FnZV9vcGNvZGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfbWVzc2FnZV9mcmFn
bWVudHMgPSBbXQotICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxlX2Zp
cnN0Ci0gICAgICAgIHJldHVybiBfSW5uZXJNZXNzYWdlKG9wY29kZSwgcGF5bG9hZCkKLQotICAg
IGRlZiBidWlsZChzZWxmLCBmcmFtZSk6Ci0gICAgICAgICIiIkJ1aWxkIGFuIGlubmVyIG1lc3Nh
Z2UuCi0KLSAgICAgICAgUmV0dXJucyBhbiBfSW5uZXJNZXNzYWdlIGluc3RhbmNlIHdoZW4gdGhl
IGdpdmVuIGZyYW1lIGlzIHRoZSBsYXN0Ci0gICAgICAgIGZyYWdtZW50ZWQgZnJhbWUuIFJldHVy
bnMgTm9uZSBvdGhlcndpc2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGZyYW1lOiBh
biBpbm5lciBmcmFtZS4KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgSW52YWxpZEZyYW1l
RXhjZXB0aW9uOiB3aGVuIHJlY2VpdmVkIGludmFsaWQgb3Bjb2RlLiAoZS5nLgotICAgICAgICAg
ICAgICAgIHJlY2VpdmluZyBub24gY29udGludWF0aW9uIGRhdGEgb3Bjb2RlIGJ1dCB0aGUgZmlu
IGZsYWcgb2YKLSAgICAgICAgICAgICAgICB0aGUgcHJldmlvdXMgaW5uZXIgZnJhbWUgd2FzIG5v
dCBzZXQuKQotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZyYW1lX2hhbmRsZXIo
ZnJhbWUpCi0KLQotY2xhc3MgX0xvZ2ljYWxTdHJlYW0oU3RyZWFtKToKLQotICAgICIiIk1pbWlj
cyB0aGUgU3RyZWFtIGNsYXNzLgotCi0gICAgVGhpcyBjbGFzcyBpbnRlcnByZXRzIG11bHRpcGxl
eGVkIFdlYlNvY2tldCBmcmFtZXMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
cmVxdWVzdCwgc3RyZWFtX29wdGlvbnMsIHNlbmRfcXVvdGEsIHJlY2VpdmVfcXVvdGEpOgotICAg
ICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAg
ICAgIHJlcXVlc3Q6IF9Mb2dpY2FsUmVxdWVzdCBpbnN0YW5jZS4KLSAgICAgICAgICAgIHN0cmVh
bV9vcHRpb25zOiBTdHJlYW1PcHRpb25zIGluc3RhbmNlLgotICAgICAgICAgICAgc2VuZF9xdW90
YTogSW5pdGlhbCBzZW5kIHF1b3RhLgotICAgICAgICAgICAgcmVjZWl2ZV9xdW90YTogSW5pdGlh
bCByZWNlaXZlIHF1b3RhLgotICAgICAgICAiIiIKLSAgICAgICAgIyBQaHlzaWNhbCBzdHJlYW0g
aXMgcmVzcG9uc2libGUgZm9yIG1hc2tpbmcuCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLnVubWFz
a19yZWNlaXZlID0gRmFsc2UKLSAgICAgICAgU3RyZWFtLl9faW5pdF9fKHNlbGYsIHJlcXVlc3Qs
IHN0cmVhbV9vcHRpb25zKQotCi0gICAgICAgIHNlbGYuX3NlbmRfY2xvc2VkID0gRmFsc2UKLSAg
ICAgICAgc2VsZi5fc2VuZF9xdW90YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgIyAtIFByb3RlY3Rz
IF9zZW5kX2Nsb3NlZCBhbmQgX3NlbmRfcXVvdGEKLSAgICAgICAgIyAtIFNpZ25hbHMgdGhlIHRo
cmVhZCB3YWl0aW5nIGZvciBzZW5kIHF1b3RhIHJlcGxlbmlzaGVkCi0gICAgICAgIHNlbGYuX3Nl
bmRfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0KLSAgICAgICAgIyBUaGUgb3Bj
b2RlIG9mIHRoZSBmaXJzdCBmcmFtZSBpbiBtZXNzYWdlcy4KLSAgICAgICAgc2VsZi5fbWVzc2Fn
ZV9vcGNvZGUgPSBjb21tb24uT1BDT0RFX1RFWFQKLSAgICAgICAgIyBUcnVlIHdoZW4gdGhlIGxh
c3QgbWVzc2FnZSB3YXMgZnJhZ21lbnRlZC4KLSAgICAgICAgc2VsZi5fbGFzdF9tZXNzYWdlX3dh
c19mcmFnbWVudGVkID0gRmFsc2UKLQotICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhID0gcmVj
ZWl2ZV9xdW90YQotICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZV9zZW1hcGhvcmUgPSB0
aHJlYWRpbmcuU2VtYXBob3JlKCkKLQotICAgICAgICBzZWxmLl9pbm5lcl9tZXNzYWdlX2J1aWxk
ZXIgPSBfSW5uZXJNZXNzYWdlQnVpbGRlcigpCi0KLSAgICBkZWYgX2NyZWF0ZV9pbm5lcl9mcmFt
ZShzZWxmLCBvcGNvZGUsIHBheWxvYWQsIGVuZD1UcnVlKToKLSAgICAgICAgZnJhbWUgPSBGcmFt
ZShmaW49ZW5kLCBvcGNvZGU9b3Bjb2RlLCBwYXlsb2FkPXBheWxvYWQpCi0gICAgICAgIGZvciBm
cmFtZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzOgotICAg
ICAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFtZSkKLQotICAgICAgICBpZiBsZW4ocGF5
bG9hZCkgIT0gbGVuKGZyYW1lLnBheWxvYWQpOgotICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBl
Y3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTXV4IGV4dGVuc2lvbiBtdXN0IG5vdCBi
ZSB1c2VkIGFmdGVyIGV4dGVuc2lvbnMgd2hpY2ggY2hhbmdlICcKLSAgICAgICAgICAgICAgICAn
IGZyYW1lIGJvdW5kYXJ5JykKLQotICAgICAgICBmaXJzdF9ieXRlID0gKChmcmFtZS5maW4gPDwg
NykgfCAoZnJhbWUucnN2MSA8PCA2KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgKGZyYW1lLnJz
djIgPDwgNSkgfCAoZnJhbWUucnN2MyA8PCA0KSB8IGZyYW1lLm9wY29kZSkKLSAgICAgICAgcmV0
dXJuIGNocihmaXJzdF9ieXRlKSArIGZyYW1lLnBheWxvYWQKLQotICAgIGRlZiBfd3JpdGVfaW5u
ZXJfZnJhbWUoc2VsZiwgb3Bjb2RlLCBwYXlsb2FkLCBlbmQ9VHJ1ZSk6Ci0gICAgICAgIHBheWxv
YWRfbGVuZ3RoID0gbGVuKHBheWxvYWQpCi0gICAgICAgIHdyaXRlX3Bvc2l0aW9uID0gMAotCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgICMgQW4gaW5uZXIgZnJhbWUgd2lsbCBiZSBmcmFnbWVu
dGVkIGlmIHRoZXJlIGlzIG5vIGVub3VnaCBzZW5kCi0gICAgICAgICAgICAjIHF1b3RhLiBUaGlz
IHNlbWFwaG9yZSBlbnN1cmVzIHRoYXQgZnJhZ21lbnRlZCBpbm5lciBmcmFtZXMgYXJlCi0gICAg
ICAgICAgICAjIHNlbnQgaW4gb3JkZXIgb24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAg
ICAgICMgTm90ZSB0aGF0IGZyYW1lcyB0aGF0IGNvbWUgZnJvbSBvdGhlciBsb2dpY2FsIGNoYW5u
ZWxzIG9yCi0gICAgICAgICAgICAjIG11bHRpcGxleGluZyBjb250cm9sIGJsb2NrcyBjYW4gYmUg
aW5zZXJ0ZWQgYmV0d2VlbiBmcmFnbWVudGVkCi0gICAgICAgICAgICAjIGlubmVyIGZyYW1lcyBv
biB0aGUgcGh5c2ljYWwgY2hhbm5lbC4KLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2Zy
YW1lX3NlbWFwaG9yZS5hY3F1aXJlKCkKLQotICAgICAgICAgICAgIyBDb25zdW1lIGFuIG9jdGV0
IHF1b3RhIHdoZW4gdGhpcyBpcyB0aGUgZmlyc3QgZnJhZ21lbnRlZCBmcmFtZS4KLSAgICAgICAg
ICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFjcXVp
cmUoKQotICAgICAgICAgICAgICAgICAgICB3aGlsZSAobm90IHNlbGYuX3NlbmRfY2xvc2VkKSBh
bmQgc2VsZi5fc2VuZF9xdW90YSA9PSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
c2VuZF9jb25kaXRpb24ud2FpdCgpCi0KLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2Vu
ZF9jbG9zZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xvZ2ljYWwgY29ubmVjdGlvbiAl
ZCBpcyBjbG9zZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LmNoYW5uZWxfaWQpCi0KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSAtPSAx
Ci0gICAgICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2Vu
ZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgICAgIHdoaWxlIHdyaXRlX3Bvc2l0aW9u
IDwgcGF5bG9hZF9sZW5ndGg6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAgICAgICAg
d2hpbGUgKG5vdCBzZWxmLl9zZW5kX2Nsb3NlZCkgYW5kIHNlbGYuX3NlbmRfcXVvdGEgPT0gMDoK
LSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnTm8gcXVvdGEuIFdhaXRpbmcgRmxvd0NvbnRyb2wgbWVzc2FnZSBm
b3IgJWQuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFu
bmVsX2lkKQotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ud2Fp
dCgpCi0KLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2VuZF9jbG9zZWQ6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ0xvZ2ljYWwgY29ubmVjdGlvbiAlZCBpcyBjbG9zZWQnICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3QuX2NoYW5uZWxfaWQpCi0KLSAg
ICAgICAgICAgICAgICAgICAgcmVtYWluaW5nID0gcGF5bG9hZF9sZW5ndGggLSB3cml0ZV9wb3Np
dGlvbgotICAgICAgICAgICAgICAgICAgICB3cml0ZV9sZW5ndGggPSBtaW4oc2VsZi5fc2VuZF9x
dW90YSwgcmVtYWluaW5nKQotICAgICAgICAgICAgICAgICAgICBpbm5lcl9mcmFtZV9lbmQgPSAo
Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbmQgYW5kCi0gICAgICAgICAgICAgICAgICAgICAg
ICAod3JpdGVfcG9zaXRpb24gKyB3cml0ZV9sZW5ndGggPT0gcGF5bG9hZF9sZW5ndGgpKQotCi0g
ICAgICAgICAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fY3JlYXRlX2lubmVyX2ZyYW1l
KAotICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgcGF5bG9hZFt3cml0ZV9wb3NpdGlvbjp3cml0ZV9wb3NpdGlvbit3cml0ZV9sZW5ndGhdLAot
ICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJfZnJhbWVfZW5kKQotICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9zZW5kX3F1b3RhIC09IHdyaXRlX2xlbmd0aAotICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbnN1bWVkIHF1b3RhPSVkLCByZW1haW5pbmc9JWQnICUK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3cml0ZV9sZW5ndGgsIHNl
bGYuX3NlbmRfcXVvdGEpKQotICAgICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICAgICAgICAg
IyBXcml0aW5nIGRhdGEgd2lsbCBibG9jayB0aGUgd29ya2VyIHNvIHdlIG5lZWQgdG8gcmVsZWFz
ZQotICAgICAgICAgICAgICAgICMgX3NlbmRfY29uZGl0aW9uIGJlZm9yZSB3cml0aW5nLgotICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGluZyBpbm5lciBmcmFtZTogJXIn
ICUgaW5uZXJfZnJhbWUpCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9u
LndyaXRlKGlubmVyX2ZyYW1lKQotICAgICAgICAgICAgICAgIHdyaXRlX3Bvc2l0aW9uICs9IHdy
aXRlX2xlbmd0aAotCi0gICAgICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9DT05U
SU5VQVRJT04KLQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgICAg
cmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKGUpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZV9zZW1hcGhvcmUucmVsZWFzZSgpCi0KLSAgICBk
ZWYgcmVwbGVuaXNoX3NlbmRfcXVvdGEoc2VsZiwgc2VuZF9xdW90YSk6Ci0gICAgICAgICIiIlJl
cGxlbmlzaCBzZW5kIHF1b3RhLiIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9z
ZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIHNlbGYuX3NlbmRfcXVvdGEg
KyBzZW5kX3F1b3RhID4gMHg3RkZGRkZGRkZGRkZGRkZGOgotICAgICAgICAgICAgICAgIHNlbGYu
X3NlbmRfcXVvdGEgPSAwCi0gICAgICAgICAgICAgICAgcmFpc2UgTG9naWNhbENoYW5uZWxFcnJv
cigKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBfRFJPUF9D
T0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1cpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX3F1b3RhICs9
IHNlbmRfcXVvdGEKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVwbGVuaXNoZWQg
c2VuZCBxdW90YSBmb3IgY2hhbm5lbCBpZCAlZDogJWQnICUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBzZWxmLl9zZW5kX3F1b3RhKSkK
LSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLm5vdGlm
eSgpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRl
ZiBjb25zdW1lX3JlY2VpdmVfcXVvdGEoc2VsZiwgYW1vdW50KToKLSAgICAgICAgIiIiQ29uc3Vt
ZSByZWNlaXZlIHF1b3RhLiBSZXR1cm5zIEZhbHNlIG9uIGZhaWx1cmUuIiIiCi0gICAgICAgIGlm
IHNlbGYuX3JlY2VpdmVfcXVvdGEgPCBhbW91bnQ6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ1Zpb2xhdGUgcXVvdGEgb24gY2hhbm5lbCBpZCAlZDogJWQgPCAlZCcgJQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEsIGFtb3VudCkp
Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSAt
PSBhbW91bnQKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2Vs
ZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgICIiIk92ZXJyaWRl
IFN0cmVhbS5zZW5kX21lc3NhZ2UuIiIiCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVy
X3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBzZW5kX21lc3NhZ2UgYWZ0ZXIgc2VuZGluZyBvdXQg
YSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAgICAgICAgaWYgYmluYXJ5IGFuZCBpc2luc3RhbmNl
KG1lc3NhZ2UsIHVuaWNvZGUpOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICdNZXNzYWdlIGZvciBiaW5hcnkgZnJhbWUgbXVzdCBiZSBp
bnN0YW5jZSBvZiBzdHInKQotCi0gICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIG9wY29k
ZSA9IGNvbW1vbi5PUENPREVfQklOQVJZCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcGNv
ZGUgPSBjb21tb24uT1BDT0RFX1RFWFQKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmVu
Y29kZSgndXRmLTgnKQotCi0gICAgICAgIGZvciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRp
b25zLm91dGdvaW5nX21lc3NhZ2VfZmlsdGVyczoKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNz
YWdlX2ZpbHRlci5maWx0ZXIobWVzc2FnZSwgZW5kLCBiaW5hcnkpCi0KLSAgICAgICAgaWYgc2Vs
Zi5fbGFzdF9tZXNzYWdlX3dhc19mcmFnbWVudGVkOgotICAgICAgICAgICAgaWYgb3Bjb2RlICE9
IHNlbGYuX21lc3NhZ2Vfb3Bjb2RlOgotICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbignTWVzc2FnZSB0eXBlcyBhcmUgZGlmZmVyZW50IGluICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZyYW1lcyBmb3IgdGhlIHNhbWUgbWVz
c2FnZScpCi0gICAgICAgICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTgot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBvcGNvZGUK
LQotICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZShvcGNvZGUsIG1lc3NhZ2UsIGVuZCkK
LSAgICAgICAgc2VsZi5fbGFzdF9tZXNzYWdlX3dhc19mcmFnbWVudGVkID0gbm90IGVuZAotCi0g
ICAgZGVmIF9yZWNlaXZlX2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0u
X3JlY2VpdmVfZnJhbWUuCi0KLSAgICAgICAgSW4gYWRkaXRpb24gdG8gY2FsbCBTdHJlYW0uX3Jl
Y2VpdmVfZnJhbWUsIHRoaXMgbWV0aG9kIGFkZHMgdGhlIGFtb3VudAotICAgICAgICBvZiBwYXls
b2FkIHRvIHJlY2VpdmluZyBxdW90YSBhbmQgc2VuZHMgRmxvd0NvbnRyb2wgdG8gdGhlIGNsaWVu
dC4KLSAgICAgICAgV2UgbmVlZCB0byBkbyBpdCBoZXJlIGJlY2F1c2UgU3RyZWFtLnJlY2VpdmVf
bWVzc2FnZSgpIGhhbmRsZXMKLSAgICAgICAgY29udHJvbCBmcmFtZXMgaW50ZXJuYWxseS4KLSAg
ICAgICAgIiIiCi0gICAgICAgIG9wY29kZSwgcGF5bG9hZCwgZmluLCByc3YxLCByc3YyLCByc3Yz
ID0gU3RyZWFtLl9yZWNlaXZlX2ZyYW1lKHNlbGYpCi0gICAgICAgIGFtb3VudCA9IGxlbihwYXls
b2FkKQotICAgICAgICAjIFJlcGxlbmlzaCBleHRyYSBvbmUgb2N0ZXQgd2hlbiByZWNlaXZpbmcg
dGhlIGZpcnN0IGZyYWdtZW50ZWQgZnJhbWUuCi0gICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24u
T1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgIGFtb3VudCArPSAxCi0gICAgICAgIHNl
bGYuX3JlY2VpdmVfcXVvdGEgKz0gYW1vdW50Ci0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRl
X2Zsb3dfY29udHJvbChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnU2VuZGluZyBmbG93IGNvbnRyb2wgZm9yICVkLCByZXBsZW5pc2hlZD0lZCcgJQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgYW1vdW50
KSkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlX2NvbnRyb2xfZGF0YShm
cmFtZV9kYXRhKQotICAgICAgICByZXR1cm4gb3Bjb2RlLCBwYXlsb2FkLCBmaW4sIHJzdjEsIHJz
djIsIHJzdjMKLQotICAgIGRlZiBfZ2V0X21lc3NhZ2VfZnJvbV9mcmFtZShzZWxmLCBmcmFtZSk6
Ci0gICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5fZ2V0X21lc3NhZ2VfZnJvbV9mcmFtZS4iIiIK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW5uZXJfbWVzc2FnZSA9IHNlbGYuX2lubmVyX21l
c3NhZ2VfYnVpbGRlci5idWlsZChmcmFtZSkKLSAgICAgICAgZXhjZXB0IEludmFsaWRGcmFtZUV4
Y2VwdGlvbjoKLSAgICAgICAgICAgIHJhaXNlIExvZ2ljYWxDaGFubmVsRXJyb3IoCi0gICAgICAg
ICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBfRFJPUF9DT0RFX0JBRF9GUkFHTUVO
VEFUSU9OKQotCi0gICAgICAgIGlmIGlubmVyX21lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAg
IHJldHVybiBOb25lCi0gICAgICAgIHNlbGYuX29yaWdpbmFsX29wY29kZSA9IGlubmVyX21lc3Nh
Z2Uub3Bjb2RlCi0gICAgICAgIHJldHVybiBpbm5lcl9tZXNzYWdlLnBheWxvYWQKLQotICAgIGRl
ZiByZWNlaXZlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5yZWNl
aXZlX21lc3NhZ2UuIiIiCi0gICAgICAgICMgSnVzdCBjYWxsIFN0cmVhbS5yZWNlaXZlX21lc3Nh
Z2UoKSwgYnV0IGNhdGNoCi0gICAgICAgICMgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNlcHRp
b24sIHdoaWNoIGlzIHJhaXNlZCB3aGVuIHRoZSBsb2dpY2FsCi0gICAgICAgICMgY29ubmVjdGlv
biBoYXMgY2xvc2VkIGdyYWNlZnVsbHkuCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVy
biBTdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKHNlbGYpCi0gICAgICAgIGV4Y2VwdCBMb2dpY2FsQ29u
bmVjdGlvbkNsb3NlZEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIF9zZW5kX2Ns
b3NpbmdfaGFuZHNoYWtlKHNlbGYsIGNvZGUsIHJlYXNvbik6Ci0gICAgICAgICIiIk92ZXJyaWRl
IFN0cmVhbS5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZS4iIiIKLSAgICAgICAgYm9keSA9IGNyZWF0
ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KGNvZGUsIHJlYXNvbikKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdTZW5kaW5nIGNsb3NpbmcgaGFuZHNoYWtlIGZvciAlZDogKCVyLCAlciknICUK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGNv
ZGUsIHJlYXNvbikpCi0gICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1lKGNvbW1vbi5PUENP
REVfQ0xPU0UsIGJvZHksIGVuZD1UcnVlKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVy
X3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICBkZWYgc2VuZF9waW5nKHNlbGYsIGJvZHk9JycpOgot
ICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0uc2VuZF9waW5nLiIiIgotICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ1NlbmRpbmcgcGluZyBvbiBsb2dpY2FsIGNoYW5uZWwgJWQ6ICVyJyAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBib2R5
KSkKLSAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUoY29tbW9uLk9QQ09ERV9QSU5HLCBi
b2R5LCBlbmQ9VHJ1ZSkKLQotICAgICAgICBzZWxmLl9waW5nX3F1ZXVlLmFwcGVuZChib2R5KQot
Ci0gICAgZGVmIF9zZW5kX3Bvbmcoc2VsZiwgYm9keSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIFN0
cmVhbS5fc2VuZF9wb25nLiIiIgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcg
cG9uZyBvbiBsb2dpY2FsIGNoYW5uZWwgJWQ6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBib2R5KSkKLSAgICAgICAgc2VsZi5fd3Jp
dGVfaW5uZXJfZnJhbWUoY29tbW9uLk9QQ09ERV9QT05HLCBib2R5LCBlbmQ9VHJ1ZSkKLQotICAg
IGRlZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYsIGNvZGU9Y29tbW9uLlNUQVRVU19OT1JNQUxfQ0xP
U1VSRSwgcmVhc29uPScnKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFtLmNsb3NlX2Nvbm5l
Y3Rpb24uIiIiCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IEltcGxlbWVudAotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ0Nsb3NpbmcgbG9naWNhbCBjb25uZWN0aW9uICVkJyAlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgIHNl
bGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICBkZWYgc3RvcF9zZW5k
aW5nKHNlbGYpOgotICAgICAgICAiIiJTdG9wIGFjY2VwdGluZyBuZXcgc2VuZCBvcGVyYXRpb24g
KF93cml0ZV9pbm5lcl9mcmFtZSkuIiIiCi0gICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICBzZWxmLl9zZW5kX2Nsb3NlZCA9IFRydWUKLSAgICAgICAgc2VsZi5f
c2VuZF9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ucmVs
ZWFzZSgpCi0KLQotY2xhc3MgX091dGdvaW5nRGF0YShvYmplY3QpOgotCi0gICAgIiIiU2ltcGxl
IGRhdGEvY2hhbm5lbCBjb250YWluZXIuCi0KLSAgICBBIHN0cnVjdHVyZSB0aGF0IGhvbGRzIGRh
dGEgdG8gYmUgc2VudCB2aWEgcGh5c2ljYWwgY29ubmVjdGlvbiBhbmQKLSAgICBvcmlnaW4gb2Yg
dGhlIGRhdGEuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgY2hhbm5lbF9pZCwg
ZGF0YSk6Ci0gICAgICAgIHNlbGYuY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgc2Vs
Zi5kYXRhID0gZGF0YQotCi0KLWNsYXNzIF9QaHlzaWNhbENvbm5lY3Rpb25Xcml0ZXIodGhyZWFk
aW5nLlRocmVhZCk6Ci0KLSAgICAiIiJBIHRocmVhZCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB3
cml0aW5nIGRhdGEgdG8gcGh5c2ljYWwgY29ubmVjdGlvbi4KLQotICAgIFRPRE8oYmFzaGkpOiBN
YWtlIHN1cmUgdGhlcmUgaXMgbm8gdGhyZWFkLXNhZmV0eSBwcm9ibGVtIHdoZW4gdGhlIHJlYWRl
cgotICAgIHRocmVhZCByZWFkcyBkYXRhIGZyb20gdGhlIHNhbWUgc29ja2V0IGF0IGEgdGltZS4K
LSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXhfaGFuZGxlcik6Ci0gICAgICAg
ICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
bXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAiIiIKLSAgICAgICAg
dGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLSAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBt
dXhfaGFuZGxlcgotICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotCi0gICAgICAgICMgV2hl
biBzZXQsIG1ha2UgdGhpcyB0aHJlYWQgc3RvcCBhY2NlcHRpbmcgbmV3IGRhdGEsIGZsdXNoIHBl
bmRpbmcKLSAgICAgICAgIyBkYXRhIGFuZCBleGl0LgotICAgICAgICBzZWxmLl9zdG9wX3JlcXVl
c3RlZCA9IEZhbHNlCi0gICAgICAgICMgVGhlIGNsb3NlIGNvZGUgb2YgdGhlIHBoeXNpY2FsIGNv
bm5lY3Rpb24uCi0gICAgICAgIHNlbGYuX2Nsb3NlX2NvZGUgPSBjb21tb24uU1RBVFVTX05PUk1B
TF9DTE9TVVJFCi0gICAgICAgICMgRGVxdWUgZm9yIHBhc3Npbmcgd3JpdGUgZGF0YS4gSXQncyBw
cm90ZWN0ZWQgYnkgX2RlcXVlX2NvbmRpdGlvbgotICAgICAgICAjIHVudGlsIF9zdG9wX3JlcXVl
c3RlZCBpcyBzZXQuCi0gICAgICAgIHNlbGYuX2RlcXVlID0gY29sbGVjdGlvbnMuZGVxdWUoKQot
ICAgICAgICAjIC0gUHJvdGVjdHMgX2RlcXVlLCBfc3RvcF9yZXF1ZXN0ZWQgYW5kIF9jbG9zZV9j
b2RlCi0gICAgICAgICMgLSBTaWduYWxzIHRocmVhZHMgd2FpdGluZyBmb3IgdGhlbSB0byBiZSBh
dmFpbGFibGUKLSAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRp
dGlvbigpCi0KLSAgICBkZWYgcHV0X291dGdvaW5nX2RhdGEoc2VsZiwgZGF0YSk6Ci0gICAgICAg
ICIiIlB1dCBvdXRnb2luZyBkYXRhLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBkYXRh
OiBfT3V0Z29pbmdEYXRhIGluc3RhbmNlLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBC
YWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gdGhlIHRocmVhZCBoYXMgYmVlbiByZXF1ZXN0ZWQg
dG8KLSAgICAgICAgICAgICAgICB0ZXJtaW5hdGUuCi0gICAgICAgICIiIgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAg
ICBpZiBzZWxmLl9zdG9wX3JlcXVlc3RlZDoKLSAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVy
YXRpb25FeGNlcHRpb24oJ0Nhbm5vdCB3cml0ZSBkYXRhIGFueW1vcmUnKQotCi0gICAgICAgICAg
ICBzZWxmLl9kZXF1ZS5hcHBlbmQoZGF0YSkKLSAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRp
dGlvbi5ub3RpZnkoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fZGVxdWVf
Y29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIF93cml0ZV9kYXRhKHNlbGYsIG91dGdvaW5n
X2RhdGEpOgotICAgICAgICBtZXNzYWdlID0gKF9lbmNvZGVfY2hhbm5lbF9pZChvdXRnb2luZ19k
YXRhLmNoYW5uZWxfaWQpICsKLSAgICAgICAgICAgICAgICAgICBvdXRnb2luZ19kYXRhLmRhdGEp
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX3N0
cmVhbS5zZW5kX21lc3NhZ2UoCi0gICAgICAgICAgICAgICAgbWVzc2FnZT1tZXNzYWdlLCBlbmQ9
VHJ1ZSwgYmluYXJ5PVRydWUpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAg
ICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnRmFpbGVkIHRvIHNlbmQgbWVzc2FnZSB0byAlcjogJyAlCi0gICAgICAgICAgICAgICAgKHNl
bGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX2Nvbm5lY3Rpb24ucmVtb3RlX2FkZHIsKSwgZSkKLSAg
ICAgICAgICAgIHJhaXNlCi0KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogSXQgd291bGQgYmUgYmV0
dGVyIHRvIGJsb2NrIHRoZSB0aHJlYWQgdGhhdCBzZW5kcwotICAgICAgICAjIGNvbnRyb2wgZGF0
YSBhcyB3ZWxsLgotICAgICAgICBpZiBvdXRnb2luZ19kYXRhLmNoYW5uZWxfaWQgIT0gX0NPTlRS
T0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLm5vdGlmeV93cml0
ZV9kYXRhX2RvbmUob3V0Z29pbmdfZGF0YS5jaGFubmVsX2lkKQotCi0gICAgZGVmIHJ1bihzZWxm
KToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFjcXVp
cmUoKQotICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAg
ICAgICAgICAgIGlmIGxlbihzZWxmLl9kZXF1ZSkgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fZGVxdWVfY29uZGl0aW9uLndhaXQoKQotICAgICAgICAgICAgICAgICAgICBjb250aW51
ZQotCi0gICAgICAgICAgICAgICAgb3V0Z29pbmdfZGF0YSA9IHNlbGYuX2RlcXVlLnBvcGxlZnQo
KQotCi0gICAgICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQotICAg
ICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2RhdGEob3V0Z29pbmdfZGF0YSkKLSAgICAgICAgICAg
ICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0KLSAgICAgICAgICAgICMgRmx1
c2ggZGVxdWUuCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHNl
bGYuX2RlcXVlX2NvbmRpdGlvbiBpcyBhbHdheXMgYWNxdWlyZWQuCi0gICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgd2hpbGUgbGVuKHNlbGYuX2RlcXVlKSA+IDA6Ci0gICAgICAgICAg
ICAgICAgICAgIG91dGdvaW5nX2RhdGEgPSBzZWxmLl9kZXF1ZS5wb3BsZWZ0KCkKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fd3JpdGVfZGF0YShvdXRnb2luZ19kYXRhKQotICAgICAgICAgICAg
ZmluYWxseToKLSAgICAgICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVsZWFzZSgp
Ci0KLSAgICAgICAgICAgICMgQ2xvc2UgcGh5c2ljYWwgY29ubmVjdGlvbi4KLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICAjIERvbid0IHdhaXQgdGhlIHJlc3BvbnNlIGhlcmUuIFRo
ZSByZXNwb25zZSB3aWxsIGJlIHJlYWQKLSAgICAgICAgICAgICAgICAjIGJ5IHRoZSByZWFkZXIg
dGhyZWFkLgotICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX3N0cmVh
bS5jbG9zZV9jb25uZWN0aW9uKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9jbG9zZV9jb2Rl
LCB3YWl0X3Jlc3BvbnNlPUZhbHNlKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl
OgotICAgICAgICAgICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBjbG9zZSB0aGUgcGh5c2ljYWwgY29ubmVjdGlv
bjogJXInICUgZSkKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIubm90aWZ5X3dyaXRlcl9kb25lKCkKLQotICAgIGRl
ZiBzdG9wKHNlbGYsIGNsb3NlX2NvZGU9Y29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSk6Ci0g
ICAgICAgICIiIlN0b3AgdGhlIHdyaXRlciB0aHJlYWQuIiIiCi0gICAgICAgIHNlbGYuX2RlcXVl
X2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBUcnVl
Ci0gICAgICAgIHNlbGYuX2Nsb3NlX2NvZGUgPSBjbG9zZV9jb2RlCi0gICAgICAgIHNlbGYuX2Rl
cXVlX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVs
ZWFzZSgpCi0KLQotY2xhc3MgX1BoeXNpY2FsQ29ubmVjdGlvblJlYWRlcih0aHJlYWRpbmcuVGhy
ZWFkKToKLQotICAgICIiIkEgdGhyZWFkIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHJlYWRpbmcg
ZGF0YSBmcm9tIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbXV4X2hhbmRsZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2Uu
Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBp
bnN0YW5jZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18o
c2VsZikKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYp
Ci0gICAgICAgIHNlbGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIKLSAgICAgICAgc2VsZi5z
ZXREYWVtb24oVHJ1ZSkKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHdoaWxlIFRydWU6
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcGh5c2ljYWxfc3RyZWFtID0gc2Vs
Zi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfc3RyZWFtCi0gICAgICAgICAgICAgICAgbWVzc2FnZSA9
IHBoeXNpY2FsX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICAgICAgICAgIGlmIG1l
c3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAg
ICAjIEJlbG93IGhhcHBlbnMgb25seSB3aGVuIGEgZGF0YSBtZXNzYWdlIGlzIHJlY2VpdmVkLgot
ICAgICAgICAgICAgICAgIG9wY29kZSA9IHBoeXNpY2FsX3N0cmVhbS5nZXRfbGFzdF9yZWNlaXZl
ZF9vcGNvZGUoKQotICAgICAgICAgICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0JJ
TkFSWToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuZmFpbF9waHlzaWNh
bF9jb25uZWN0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElE
X0VOQ0FQU1VMQVRJTkdfTUVTU0FHRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZl
ZCBhIHRleHQgbWVzc2FnZSBvbiBwaHlzaWNhbCBjb25uZWN0aW9uJykKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWsKLQotICAgICAgICAgICAgZXhjZXB0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhj
ZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUp
Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
ICAgIHNlbGYuX211eF9oYW5kbGVyLmRpc3BhdGNoX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAg
ICAgIGV4Y2VwdCBQaHlzaWNhbENvbm5lY3Rpb25FcnJvciBhcyBlOgotICAgICAgICAgICAgICAg
IHNlbGYuX211eF9oYW5kbGVyLmZhaWxfcGh5c2ljYWxfY29ubmVjdGlvbigKLSAgICAgICAgICAg
ICAgICAgICAgZS5kcm9wX2NvZGUsIGUubWVzc2FnZSkKLSAgICAgICAgICAgICAgICBicmVhawot
ICAgICAgICAgICAgZXhjZXB0IExvZ2ljYWxDaGFubmVsRXJyb3IgYXMgZToKLSAgICAgICAgICAg
ICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWlsX2xvZ2ljYWxfY2hhbm5lbCgKLSAgICAgICAgICAg
ICAgICAgICAgZS5jaGFubmVsX2lkLCBlLmRyb3BfY29kZSwgZS5tZXNzYWdlKQotICAgICAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1Zyh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAg
ICAgICAgc2VsZi5fbXV4X2hhbmRsZXIubm90aWZ5X3JlYWRlcl9kb25lKCkKLQotCi1jbGFzcyBf
V29ya2VyKHRocmVhZGluZy5UaHJlYWQpOgotCi0gICAgIiIiQSB0aHJlYWQgdGhhdCBpcyByZXNw
b25zaWJsZSBmb3IgcnVubmluZyB0aGUgY29ycmVzcG9uZGluZyBhcHBsaWNhdGlvbgotICAgIGhh
bmRsZXIuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXV4X2hhbmRsZXIsIHJl
cXVlc3QpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJn
czoKLSAgICAgICAgICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBpbnN0YW5jZS4KLSAgICAg
ICAgICAgIHJlcXVlc3Q6IF9Mb2dpY2FsUmVxdWVzdCBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0g
ICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fbG9n
Z2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNlbGYuX211eF9oYW5k
bGVyID0gbXV4X2hhbmRsZXIKLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAg
ICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnTG9naWNhbCBjaGFubmVsIHdvcmtlciBzdGFydGVkLiAoaWQ9JWQp
JyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQp
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgTm9uLWNyaXRpY2FsIGV4Y2VwdGlvbnMgd2ls
bCBiZSBoYW5kbGVkIGJ5IGRpc3BhdGNoZXIuCi0gICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxl
ci5kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEoc2VsZi5fcmVxdWVzdCkKLSAgICAgICAgZXhjZXB0
IExvZ2ljYWxDaGFubmVsRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVy
LmZhaWxfbG9naWNhbF9jaGFubmVsKAotICAgICAgICAgICAgICAgIGUuY2hhbm5lbF9pZCwgZS5k
cm9wX2NvZGUsIGUubWVzc2FnZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYu
X211eF9oYW5kbGVyLm5vdGlmeV93b3JrZXJfZG9uZShzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQp
Ci0KLQotY2xhc3MgX011eEhhbmRzaGFrZXIoaHliaS5IYW5kc2hha2VyKToKLQotICAgICIiIk9w
ZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgbXVsdGlwbGV4aW5nLiIiIgotCi0gICAgX0RV
TU1ZX1dFQlNPQ0tFVF9LRVkgPSAnZEdobElITmhiWEJzWlNCdWIyNWpaUT09JwotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3BhdGNoZXIsIHNlbmRfcXVvdGEsIHJlY2VpdmVf
cXVvdGEpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJn
czoKLSAgICAgICAgICAgIHJlcXVlc3Q6IF9Mb2dpY2FsUmVxdWVzdCBpbnN0YW5jZS4KLSAgICAg
ICAgICAgIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgaW5zdGFuY2UgKGRpc3BhdGNoLkRpc3BhdGNo
ZXIpLgotICAgICAgICAgICAgc2VuZF9xdW90YTogSW5pdGlhbCBzZW5kIHF1b3RhLgotICAgICAg
ICAgICAgcmVjZWl2ZV9xdW90YTogSW5pdGlhbCByZWNlaXZlIHF1b3RhLgotICAgICAgICAiIiIK
LSAgICAgICAgaHliaS5IYW5kc2hha2VyLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3BhdGNo
ZXIpCi0gICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgIHNlbGYu
X3JlY2VpdmVfcXVvdGEgPSByZWNlaXZlX3F1b3RhCi0KLSAgICAgICAgIyBBcHBlbmQgaGVhZGVy
cyB3aGljaCBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGluIGhhbmRzaGFrZSBmaWVsZCBvZgotICAg
ICAgICAjIEFkZENoYW5uZWxSZXF1ZXN0LgotICAgICAgICAjIFRPRE8oYmFzaGkpOiBNYWtlIHN1
cmUgd2hldGhlciB3ZSBzaG91bGQgcmFpc2UgZXhjZXB0aW9uIHdoZW4KLSAgICAgICAgIyAgICAg
dGhlc2UgaGVhZGVycyBhcmUgaW5jbHVkZWQgYWxyZWFkeS4KLSAgICAgICAgcmVxdWVzdC5oZWFk
ZXJzX2luW2NvbW1vbi5VUEdSQURFX0hFQURFUl0gPSAoCi0gICAgICAgICAgICBjb21tb24uV0VC
U09DS0VUX1VQR1JBREVfVFlQRSkKLSAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luW2NvbW1vbi5T
RUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSXSA9ICgKLSAgICAgICAgICAgIHN0cihjb21tb24u
VkVSU0lPTl9IWUJJX0xBVEVTVCkpCi0gICAgICAgIHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24u
U0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSXSA9ICgKLSAgICAgICAgICAgIHNlbGYuX0RVTU1ZX1dF
QlNPQ0tFVF9LRVkpCi0KLSAgICBkZWYgX2NyZWF0ZV9zdHJlYW0oc2VsZiwgc3RyZWFtX29wdGlv
bnMpOgotICAgICAgICAiIiJPdmVycmlkZSBoeWJpLkhhbmRzaGFrZXIuX2NyZWF0ZV9zdHJlYW0u
IiIiCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ3JlYXRpbmcgbG9naWNhbCBzdHJlYW0g
Zm9yICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5u
ZWxfaWQpCi0gICAgICAgIHJldHVybiBfTG9naWNhbFN0cmVhbSgKLSAgICAgICAgICAgIHNlbGYu
X3JlcXVlc3QsIHN0cmVhbV9vcHRpb25zLCBzZWxmLl9zZW5kX3F1b3RhLAotICAgICAgICAgICAg
c2VsZi5fcmVjZWl2ZV9xdW90YSkKLQotICAgIGRlZiBfY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25z
ZShzZWxmLCBhY2NlcHQpOgotICAgICAgICAiIiJPdmVycmlkZSBoeWJpLl9jcmVhdGVfaGFuZHNo
YWtlX3Jlc3BvbnNlLiIiIgotICAgICAgICByZXNwb25zZSA9IFtdCi0KLSAgICAgICAgcmVzcG9u
c2UuYXBwZW5kKCdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nKQotCi0gICAg
ICAgICMgVXBncmFkZSBhbmQgU2VjLVdlYlNvY2tldC1BY2NlcHQgc2hvdWxkIGJlIGV4Y2x1ZGVk
LgotICAgICAgICByZXNwb25zZS5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKAotICAgICAgICAgICAg
Y29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUp
KQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCclczogJXNcclxuJyAlICgKLSAgICAgICAgICAgICAg
ICBjb21tb24uU0VDX1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIsCi0gICAgICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkpCi0gICAgICAgIGlmIChzZWxmLl9yZXF1ZXN0Lndz
X2V4dGVuc2lvbnMgaXMgbm90IE5vbmUgYW5kCi0gICAgICAgICAgICBsZW4oc2VsZi5fcmVxdWVz
dC53c19leHRlbnNpb25zKSAhPSAwKToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnJXM6
ICVzXHJcbicgJSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5T
SU9OU19IRUFERVIsCi0gICAgICAgICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKHNl
bGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykpKQotICAgICAgICByZXNwb25zZS5hcHBlbmQoJ1xy
XG4nKQotCi0gICAgICAgIHJldHVybiAnJy5qb2luKHJlc3BvbnNlKQotCi0gICAgZGVmIF9zZW5k
X2hhbmRzaGFrZShzZWxmLCBhY2NlcHQpOgotICAgICAgICAiIiJPdmVycmlkZSBoeWJpLkhhbmRz
aGFrZXIuX3NlbmRfaGFuZHNoYWtlLiIiIgotICAgICAgICAjIERvbid0IHNlbmQgaGFuZHNoYWtl
IHJlc3BvbnNlIGZvciB0aGUgZGVmYXVsdCBjaGFubmVsCi0gICAgICAgIGlmIHNlbGYuX3JlcXVl
c3QuY2hhbm5lbF9pZCA9PSBfREVGQVVMVF9DSEFOTkVMX0lEOgotICAgICAgICAgICAgcmV0dXJu
Ci0KLSAgICAgICAgaGFuZHNoYWtlX3Jlc3BvbnNlID0gc2VsZi5fY3JlYXRlX2hhbmRzaGFrZV9y
ZXNwb25zZShhY2NlcHQpCi0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2FkZF9jaGFubmVs
X3Jlc3BvbnNlKAotICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5l
bF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kc2hha2VfcmVzcG9uc2UpCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGluZyBoYW5kc2hha2UgcmVzcG9uc2UgZm9yICVk
OiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5l
bF9pZCwgZnJhbWVfZGF0YSkpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0
ZV9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkKLQotCi1jbGFzcyBfTG9naWNhbENoYW5uZWxEYXRh
KG9iamVjdCk6Ci0KLSAgICAiIiJBIHN0cnVjdHVyZSB0aGF0IGhvbGRzIGluZm9ybWF0aW9uIGFi
b3V0IGxvZ2ljYWwgY2hhbm5lbC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0
LCB3b3JrZXIpOgotICAgICAgICBzZWxmLnJlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYu
d29ya2VyID0gd29ya2VyCi0gICAgICAgIHNlbGYuZHJvcF9jb2RlID0gX0RST1BfQ09ERV9OT1JN
QUxfQ0xPU1VSRQotICAgICAgICBzZWxmLmRyb3BfbWVzc2FnZSA9ICcnCi0KLQotY2xhc3MgX0hh
bmRzaGFrZURlbHRhQmFzZShvYmplY3QpOgotICAgICIiIkEgY2xhc3MgdGhhdCBob2xkcyBpbmZv
cm1hdGlvbiBmb3IgZGVsdGEtZW5jb2RlZCBoYW5kc2hha2UuIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgaGVhZGVycyk6Ci0gICAgICAgIHNlbGYuX2hlYWRlcnMgPSBoZWFkZXJzCi0KLSAg
ICBkZWYgY3JlYXRlX2hlYWRlcnMoc2VsZiwgZGVsdGE9Tm9uZSk6Ci0gICAgICAgICIiIkNyZWF0
ZXMgcmVxdWVzdCBoZWFkZXJzIGZvciBhbiBBZGRDaGFubmVsUmVxdWVzdCB0aGF0IGhhcwotICAg
ICAgICBkZWx0YS1lbmNvZGVkIGhhbmRzaGFrZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAg
ICAgZGVsdGE6IGhlYWRlcnMgc2hvdWxkIGJlIG92ZXJyaWRkZW4uCi0gICAgICAgICIiIgotCi0g
ICAgICAgIGhlYWRlcnMgPSBjb3B5LmNvcHkoc2VsZi5faGVhZGVycykKLSAgICAgICAgaWYgZGVs
dGE6Ci0gICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBkZWx0YS5pdGVtcygpOgotICAgICAg
ICAgICAgICAgICMgVGhlIHNwZWMgcmVxdWlyZXMgdGhhdCBhIGhlYWRlciB3aXRoIGFuIGVtcHR5
IHZhbHVlIGlzCi0gICAgICAgICAgICAgICAgIyByZW1vdmVkIGZyb20gdGhlIGRlbHRhIGJhc2Uu
Ci0gICAgICAgICAgICAgICAgaWYgbGVuKHZhbHVlKSA9PSAwIGFuZCBoZWFkZXJzLmhhc19rZXko
a2V5KToKLSAgICAgICAgICAgICAgICAgICAgZGVsIGhlYWRlcnNba2V5XQotICAgICAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGhlYWRlcnNba2V5XSA9IHZhbHVlCi0gICAg
ICAgIHJldHVybiBoZWFkZXJzCi0KLQotY2xhc3MgX011eEhhbmRsZXIob2JqZWN0KToKLSAgICAi
IiJNdWx0aXBsZXhpbmcgaGFuZGxlci4gV2hlbiBhIGhhbmRsZXIgc3RhcnRzLCBpdCBsYXVuY2hl
cyB0aHJlZQotICAgIHRocmVhZHM7IHRoZSByZWFkZXIgdGhyZWFkLCB0aGUgd3JpdGVyIHRocmVh
ZCwgYW5kIGEgd29ya2VyIHRocmVhZC4KLQotICAgIFRoZSByZWFkZXIgdGhyZWFkIHJlYWRzIGRh
dGEgZnJvbSB0aGUgcGh5c2ljYWwgc3RyZWFtLCBpLmUuLCB0aGUKLSAgICB3c19zdHJlYW0gb2Jq
ZWN0IG9mIHRoZSB1bmRlcmx5aW5nIHdlYnNvY2tldCBjb25uZWN0aW9uLiBUaGUgcmVhZGVyCi0g
ICAgdGhyZWFkIGludGVycHJldHMgbXVsdGlwbGV4ZWQgZnJhbWVzIGFuZCBkaXNwYXRjaGVzIHRo
ZW0gdG8gbG9naWNhbAotICAgIGNoYW5uZWxzLiBNZXRob2RzIG9mIHRoaXMgY2xhc3MgYXJlIG1v
c3RseSBjYWxsZWQgYnkgdGhlIHJlYWRlciB0aHJlYWQuCi0KLSAgICBUaGUgd3JpdGVyIHRocmVh
ZCBzZW5kcyBtdWx0aXBsZXhlZCBmcmFtZXMgd2hpY2ggYXJlIGNyZWF0ZWQgYnkKLSAgICBsb2dp
Y2FsIGNoYW5uZWxzIHZpYSB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KLQotICAgIFRoZSB3b3Jr
ZXIgdGhyZWFkIGxhdW5jaGVkIGF0IHRoZSBzdGFydGluZyBwb2ludCBoYW5kbGVzIHRoZQotICAg
ICJJbXBsaWNpdGx5IE9wZW5lZCBDb25uZWN0aW9uIi4gSWYgbXVsdGlwbGV4aW5nIGhhbmRsZXIg
cmVjZWl2ZXMKLSAgICBhbiBBZGRDaGFubmVsUmVxdWVzdCBhbmQgYWNjZXB0cyBpdCwgdGhlIGhh
bmRsZXIgd2lsbCBsYXVuY2ggYSBuZXcgd29ya2VyCi0gICAgdGhyZWFkIGFuZCBkaXNwYXRjaCB0
aGUgcmVxdWVzdCB0byBpdC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1
ZXN0LCBkaXNwYXRjaGVyKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQot
ICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0IG9m
IHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotICAgICAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0
Y2hlciBpbnN0YW5jZSAoZGlzcGF0Y2guRGlzcGF0Y2hlcikuCi0gICAgICAgICIiIgotCi0gICAg
ICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5kaXNwYXRj
aGVyID0gZGlzcGF0Y2hlcgotICAgICAgICBzZWxmLnBoeXNpY2FsX2Nvbm5lY3Rpb24gPSByZXF1
ZXN0LmNvbm5lY3Rpb24KLSAgICAgICAgc2VsZi5waHlzaWNhbF9zdHJlYW0gPSByZXF1ZXN0Lndz
X3N0cmVhbQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2Vs
ZikKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVscyA9IHt9Ci0gICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0gICAgICAg
ICMgSG9sZHMgY2xpZW50J3MgaW5pdGlhbCBxdW90YQotICAgICAgICBzZWxmLl9jaGFubmVsX3Ns
b3RzID0gY29sbGVjdGlvbnMuZGVxdWUoKQotICAgICAgICBzZWxmLl9oYW5kc2hha2VfYmFzZSA9
IE5vbmUKLSAgICAgICAgc2VsZi5fd29ya2VyX2RvbmVfbm90aWZ5X3JlY2VpdmVkID0gRmFsc2UK
LSAgICAgICAgc2VsZi5fcmVhZGVyID0gTm9uZQotICAgICAgICBzZWxmLl93cml0ZXIgPSBOb25l
Ci0KLSAgICBkZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgICIiIlN0YXJ0cyB0aGUgaGFuZGxlci4K
LQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uOiB3
aGVuIHRoZSBoYW5kbGVyIGFscmVhZHkgc3RhcnRlZCwgb3Igd2hlbgotICAgICAgICAgICAgICAg
IG9wZW5pbmcgaGFuZHNoYWtlIG9mIHRoZSBkZWZhdWx0IGNoYW5uZWwgZmFpbHMuCi0gICAgICAg
ICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlYWRlciBvciBzZWxmLl93cml0ZXI6Ci0gICAgICAg
ICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKCdNdXhIYW5kbGVyIGFscmVhZHkgc3Rh
cnRlZCcpCi0KLSAgICAgICAgc2VsZi5fcmVhZGVyID0gX1BoeXNpY2FsQ29ubmVjdGlvblJlYWRl
cihzZWxmKQotICAgICAgICBzZWxmLl93cml0ZXIgPSBfUGh5c2ljYWxDb25uZWN0aW9uV3JpdGVy
KHNlbGYpCi0gICAgICAgIHNlbGYuX3JlYWRlci5zdGFydCgpCi0gICAgICAgIHNlbGYuX3dyaXRl
ci5zdGFydCgpCi0KLSAgICAgICAgIyBDcmVhdGUgIkltcGxpY2l0bHkgT3BlbmVkIENvbm5lY3Rp
b24iLgotICAgICAgICBsb2dpY2FsX2Nvbm5lY3Rpb24gPSBfTG9naWNhbENvbm5lY3Rpb24oc2Vs
ZiwgX0RFRkFVTFRfQ0hBTk5FTF9JRCkKLSAgICAgICAgaGVhZGVycyA9IGNvcHkuY29weShzZWxm
Lm9yaWdpbmFsX3JlcXVlc3QuaGVhZGVyc19pbikKLSAgICAgICAgIyBBZGQgZXh0ZW5zaW9ucyBm
b3IgbG9naWNhbCBjaGFubmVsLgotICAgICAgICBoZWFkZXJzW2NvbW1vbi5TRUNfV0VCU09DS0VU
X0VYVEVOU0lPTlNfSEVBREVSXSA9ICgKLSAgICAgICAgICAgIGNvbW1vbi5mb3JtYXRfZXh0ZW5z
aW9ucygKLSAgICAgICAgICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QubXV4X3Byb2Nlc3Nv
ci5leHRlbnNpb25zKCkpKQotICAgICAgICBzZWxmLl9oYW5kc2hha2VfYmFzZSA9IF9IYW5kc2hh
a2VEZWx0YUJhc2UoaGVhZGVycykKLSAgICAgICAgbG9naWNhbF9yZXF1ZXN0ID0gX0xvZ2ljYWxS
ZXF1ZXN0KAotICAgICAgICAgICAgX0RFRkFVTFRfQ0hBTk5FTF9JRCwKLSAgICAgICAgICAgIHNl
bGYub3JpZ2luYWxfcmVxdWVzdC5tZXRob2QsCi0gICAgICAgICAgICBzZWxmLm9yaWdpbmFsX3Jl
cXVlc3QudXJpLAotICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9yZXF1ZXN0LnByb3RvY29sLAot
ICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlX2Jhc2UuY3JlYXRlX2hlYWRlcnMoKSwKLSAgICAg
ICAgICAgIGxvZ2ljYWxfY29ubmVjdGlvbikKLSAgICAgICAgIyBDbGllbnQncyBzZW5kIHF1b3Rh
IGZvciB0aGUgaW1wbGljaXRseSBvcGVuZWQgY29ubmVjdGlvbiBpcyB6ZXJvLAotICAgICAgICAj
IGJ1dCB3ZSB3aWxsIHNlbmQgRmxvd0NvbnRyb2wgbGF0ZXIgc28gc2V0IHRoZSBpbml0aWFsIHF1
b3RhIHRvCi0gICAgICAgICMgX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVC4KLSAgICAgICAgc2Vs
Zi5fY2hhbm5lbF9zbG90cy5hcHBlbmQoX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLSAgICAg
ICAgc2VuZF9xdW90YSA9IHNlbGYub3JpZ2luYWxfcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnF1b3Rh
KCkKLSAgICAgICAgaWYgbm90IHNlbGYuX2RvX2hhbmRzaGFrZV9mb3JfbG9naWNhbF9yZXF1ZXN0
KAotICAgICAgICAgICAgbG9naWNhbF9yZXF1ZXN0LCBzZW5kX3F1b3RhPXNlbmRfcXVvdGEpOgot
ICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnRmFpbGVkIGhhbmRzaGFrZSBvbiB0aGUgZGVmYXVsdCBjaGFubmVsIGlkJykKLSAgICAgICAg
c2VsZi5fYWRkX2xvZ2ljYWxfY2hhbm5lbChsb2dpY2FsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBT
ZW5kIEZsb3dDb250cm9sIGZvciB0aGUgaW1wbGljaXRseSBvcGVuZWQgY29ubmVjdGlvbi4KLSAg
ICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfZmxvd19jb250cm9sKF9ERUZBVUxUX0NIQU5ORUxf
SUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfSU5JVElBTF9R
VU9UQV9GT1JfQ0xJRU5UKQotICAgICAgICBsb2dpY2FsX3JlcXVlc3QuY29ubmVjdGlvbi53cml0
ZV9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkKLQotICAgIGRlZiBhZGRfY2hhbm5lbF9zbG90cyhz
ZWxmLCBzbG90cywgc2VuZF9xdW90YSk6Ci0gICAgICAgICIiIkFkZHMgY2hhbm5lbCBzbG90cy4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgc2xvdHM6IG51bWJlciBvZiBzbG90cyB0byBi
ZSBhZGRlZC4KLSAgICAgICAgICAgIHNlbmRfcXVvdGE6IGluaXRpYWwgc2VuZCBxdW90YSBmb3Ig
c2xvdHMuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMuZXh0ZW5k
KFtzZW5kX3F1b3RhXSAqIHNsb3RzKQotICAgICAgICAjIFNlbmQgTmV3Q2hhbm5lbFNsb3QgdG8g
Y2xpZW50LgotICAgICAgICBmcmFtZV9kYXRhID0gX2NyZWF0ZV9uZXdfY2hhbm5lbF9zbG90KHNs
b3RzLCBzZW5kX3F1b3RhKQotICAgICAgICBzZWxmLnNlbmRfY29udHJvbF9kYXRhKGZyYW1lX2Rh
dGEpCi0KLSAgICBkZWYgd2FpdF91bnRpbF9kb25lKHNlbGYsIHRpbWVvdXQ9Tm9uZSk6Ci0gICAg
ICAgICIiIldhaXRzIHVudGlsIGFsbCB3b3JrZXJzIGFyZSBkb25lLiBSZXR1cm5zIEZhbHNlIHdo
ZW4gdGltZW91dCBoYXMKLSAgICAgICAgb2NjdXJyZWQuIFJldHVybnMgVHJ1ZSBvbiBzdWNjZXNz
LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICB0aW1lb3V0OiB0aW1lb3V0IGluIHNlYy4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24u
YWNxdWlyZSgpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdoaWxlIGxlbihzZWxmLl9sb2dp
Y2FsX2NoYW5uZWxzKSA+IDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdX
YWl0aW5nIHdvcmtlcnMoJWQpLi4uJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxlbihzZWxmLl9sb2dpY2FsX2NoYW5uZWxzKSkKLSAgICAgICAgICAgICAgICBzZWxmLl93
b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQgPSBGYWxzZQotICAgICAgICAgICAgICAgIHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLndhaXQodGltZW91dCkKLSAgICAgICAgICAgICAg
ICBpZiBub3Qgc2VsZi5fd29ya2VyX2RvbmVfbm90aWZ5X3JlY2VpdmVkOgotICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dhaXRpbmcgd29ya2VyKHMpIHRpbWVkIG91dCcp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAg
ICAgICAgIyBGbHVzaCBwZW5kaW5nIG91dGdvaW5nIGRhdGEKLSAgICAgICAgc2VsZi5fd3JpdGVy
LnN0b3AoKQotICAgICAgICBzZWxmLl93cml0ZXIuam9pbigpCi0KLSAgICAgICAgcmV0dXJuIFRy
dWUKLQotICAgIGRlZiBub3RpZnlfd3JpdGVfZGF0YV9kb25lKHNlbGYsIGNoYW5uZWxfaWQpOgot
ICAgICAgICAiIiJDYWxsZWQgYnkgdGhlIHdyaXRlciB0aHJlYWQgd2hlbiBhIHdyaXRlIG9wZXJh
dGlvbiBoYXMgZG9uZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY2hhbm5lbF9pZDog
b2JqZWN0aXZlIGNoYW5uZWwgaWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAg
ICAgICAgaWYgY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAg
ICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0K
LSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLm9uX3dyaXRl
X2RhdGFfZG9uZSgpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnU2VlbXMgdGhhdCBsb2dpY2FsIGNoYW5uZWwgZm9yICVkIGhhcyBnb25lJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGNoYW5uZWxfaWQpCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgIGRlZiBzZW5kX2NvbnRyb2xfZGF0YShzZWxmLCBkYXRhKToKLSAgICAg
ICAgIiIiU2VuZHMgZGF0YSB2aWEgdGhlIGNvbnRyb2wgY2hhbm5lbC4KLQotICAgICAgICBBcmdz
OgotICAgICAgICAgICAgZGF0YTogZGF0YSB0byBiZSBzZW50LgotICAgICAgICAiIiIKLQotICAg
ICAgICBzZWxmLl93cml0ZXIucHV0X291dGdvaW5nX2RhdGEoX091dGdvaW5nRGF0YSgKLSAgICAg
ICAgICAgICAgICBjaGFubmVsX2lkPV9DT05UUk9MX0NIQU5ORUxfSUQsIGRhdGE9ZGF0YSkpCi0K
LSAgICBkZWYgc2VuZF9kYXRhKHNlbGYsIGNoYW5uZWxfaWQsIGRhdGEpOgotICAgICAgICAiIiJT
ZW5kcyBkYXRhIHZpYSBnaXZlbiBsb2dpY2FsIGNoYW5uZWwuIFRoaXMgbWV0aG9kIGlzIGNhbGxl
ZCBieQotICAgICAgICB3b3JrZXIgdGhyZWFkcy4KLQotICAgICAgICBBcmdzOgotICAgICAgICAg
ICAgY2hhbm5lbF9pZDogb2JqZWN0aXZlIGNoYW5uZWwgaWQuCi0gICAgICAgICAgICBkYXRhOiBk
YXRhIHRvIGJlIHNlbnQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3dyaXRlci5wdXRf
b3V0Z29pbmdfZGF0YShfT3V0Z29pbmdEYXRhKAotICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQ9
Y2hhbm5lbF9pZCwgZGF0YT1kYXRhKSkKLQotICAgIGRlZiBfc2VuZF9kcm9wX2NoYW5uZWwoc2Vs
ZiwgY2hhbm5lbF9pZCwgY29kZT1Ob25lLCBtZXNzYWdlPScnKToKLSAgICAgICAgZnJhbWVfZGF0
YSA9IF9jcmVhdGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2UpCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdTZW5kaW5nIGRyb3AgY2hhbm5l
bCBmb3IgY2hhbm5lbCBpZCAlZCcgJSBjaGFubmVsX2lkKQotICAgICAgICBzZWxmLnNlbmRfY29u
dHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0KLSAgICBkZWYgX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxf
cmVzcG9uc2Uoc2VsZiwgY2hhbm5lbF9pZCwgc3RhdHVzPU5vbmUpOgotICAgICAgICBpZiBzdGF0
dXMgaXMgTm9uZToKLSAgICAgICAgICAgIHN0YXR1cyA9IGNvbW1vbi5IVFRQX1NUQVRVU19CQURf
UkVRVUVTVAotCi0gICAgICAgIGlmIHN0YXR1cyBpbiBfSFRUUF9CQURfUkVTUE9OU0VfTUVTU0FH
RVM6Ci0gICAgICAgICAgICBtZXNzYWdlID0gX0hUVFBfQkFEX1JFU1BPTlNFX01FU1NBR0VTW3N0
YXR1c10KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVz
cG9uc2UgbWVzc2FnZSBmb3IgJWQgaXMgbm90IGZvdW5kJyAlIHN0YXR1cykKLSAgICAgICAgICAg
IG1lc3NhZ2UgPSAnPz8/JwotCi0gICAgICAgIHJlc3BvbnNlID0gJ0hUVFAvMS4xICVkICVzXHJc
blxyXG4nICUgKHN0YXR1cywgbWVzc2FnZSkKLSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVzcG9uc2UoY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9cmVzcG9uc2UsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5n
PTAsIHJlamVjdGVkPVRydWUpCi0gICAgICAgIHNlbGYuc2VuZF9jb250cm9sX2RhdGEoZnJhbWVf
ZGF0YSkKLQotICAgIGRlZiBfY3JlYXRlX2xvZ2ljYWxfcmVxdWVzdChzZWxmLCBibG9jayk6Ci0g
ICAgICAgIGlmIGJsb2NrLmNoYW5uZWxfaWQgPT0gX0NPTlRST0xfQ0hBTk5FTF9JRDoKLSAgICAg
ICAgICAgICMgVE9ETyhiYXNoaSk6IFJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yIHdpdGgg
Y29kZSAyMDA2Ci0gICAgICAgICAgICAjIGluc3RlYWQgb2YgTXV4VW5leHBlY3RlZEV4Y2VwdGlv
bi4KLSAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ1JlY2VpdmVkIHRoZSBjb250cm9sIGNoYW5uZWwgaWQgKDApIGFzIG9iamVjdGl2ZSBj
aGFubmVsICcKLSAgICAgICAgICAgICAgICAnaWQgZm9yIEFkZENoYW5uZWwnKQotCi0gICAgICAg
IGlmIGJsb2NrLmVuY29kaW5nID4gX0hBTkRTSEFLRV9FTkNPRElOR19ERUxUQToKLSAgICAgICAg
ICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9Q
X0NPREVfVU5LTk9XTl9SRVFVRVNUX0VOQ09ESU5HKQotCi0gICAgICAgIG1ldGhvZCwgcGF0aCwg
dmVyc2lvbiwgaGVhZGVycyA9IF9wYXJzZV9yZXF1ZXN0X3RleHQoCi0gICAgICAgICAgICBibG9j
ay5lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgaWYgYmxvY2suZW5jb2RpbmcgPT0gX0hBTkRT
SEFLRV9FTkNPRElOR19ERUxUQToKLSAgICAgICAgICAgIGhlYWRlcnMgPSBzZWxmLl9oYW5kc2hh
a2VfYmFzZS5jcmVhdGVfaGVhZGVycyhoZWFkZXJzKQotCi0gICAgICAgIGNvbm5lY3Rpb24gPSBf
TG9naWNhbENvbm5lY3Rpb24oc2VsZiwgYmxvY2suY2hhbm5lbF9pZCkKLSAgICAgICAgcmVxdWVz
dCA9IF9Mb2dpY2FsUmVxdWVzdChibG9jay5jaGFubmVsX2lkLCBtZXRob2QsIHBhdGgsIHZlcnNp
b24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywgY29ubmVjdGlv
bikKLSAgICAgICAgcmV0dXJuIHJlcXVlc3QKLQotICAgIGRlZiBfZG9faGFuZHNoYWtlX2Zvcl9s
b2dpY2FsX3JlcXVlc3Qoc2VsZiwgcmVxdWVzdCwgc2VuZF9xdW90YT0wKToKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgcmVjZWl2ZV9xdW90YSA9IHNlbGYuX2NoYW5uZWxfc2xvdHMucG9wbGVm
dCgpCi0gICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgotICAgICAgICAgICAgcmFpc2UgTG9naWNh
bENoYW5uZWxFcnJvcigKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmNoYW5uZWxfaWQsIF9EUk9Q
X0NPREVfTkVXX0NIQU5ORUxfU0xPVF9WSU9MQVRJT04pCi0KLSAgICAgICAgaGFuZHNoYWtlciA9
IF9NdXhIYW5kc2hha2VyKHJlcXVlc3QsIHNlbGYuZGlzcGF0Y2hlciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbmRfcXVvdGEsIHJlY2VpdmVfcXVvdGEpCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgZXhj
ZXB0IGhhbmRzaGFrZS5WZXJzaW9uRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9s
b2dnZXIuaW5mbygnJXMnLCBlKQotICAgICAgICAgICAgc2VsZi5fc2VuZF9lcnJvcl9hZGRfY2hh
bm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmNoYW5uZWxfaWQsIHN0YXR1
cz1jb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0gICAgICAgICAgICByZXR1cm4gRmFs
c2UKLSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24gYXMgZToKLSAg
ICAgICAgICAgICMgVE9ETyhiYXNoaSk6IFNob3VsZCB3ZSBfRmFpbCB0aGUgTG9naWNhbCBDaGFu
bmVsXyB3aXRoIDMwMDEKLSAgICAgICAgICAgICMgaW5zdGVhZD8KLSAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5pbmZvKCclcycsIGUpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9j
aGFubmVsX3Jlc3BvbnNlKHJlcXVlc3QuY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPWUuc3RhdHVzKQotICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4
Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJyVzJywgZSkKLSAg
ICAgICAgICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxfcmVzcG9uc2UocmVxdWVzdC5j
aGFubmVsX2lkKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgcmV0dXJuIFRy
dWUKLQotICAgIGRlZiBfYWRkX2xvZ2ljYWxfY2hhbm5lbChzZWxmLCBsb2dpY2FsX3JlcXVlc3Qp
OgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRp
dGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIGxvZ2ljYWxfcmVxdWVzdC5jaGFubmVsX2lk
IGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdDaGFubmVsIGlkICVkIGFscmVhZHkgZXhpc3RzJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICAg
ICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAg
ICBfRFJPUF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMsCi0gICAgICAgICAgICAgICAgICAg
ICdDaGFubmVsIGlkICVkIGFscmVhZHkgZXhpc3RzJyAlCi0gICAgICAgICAgICAgICAgICAgIGxv
Z2ljYWxfcmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICAgICAgd29ya2VyID0gX1dvcmtlcihz
ZWxmLCBsb2dpY2FsX3JlcXVlc3QpCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBfTG9naWNh
bENoYW5uZWxEYXRhKGxvZ2ljYWxfcmVxdWVzdCwgd29ya2VyKQotICAgICAgICAgICAgc2VsZi5f
bG9naWNhbF9jaGFubmVsc1tsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9pZF0gPSBjaGFubmVsX2Rh
dGEKLSAgICAgICAgICAgIHdvcmtlci5zdGFydCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRl
ZiBfcHJvY2Vzc19hZGRfY2hhbm5lbF9yZXF1ZXN0KHNlbGYsIGJsb2NrKToKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgbG9naWNhbF9yZXF1ZXN0ID0gc2VsZi5fY3JlYXRlX2xvZ2ljYWxfcmVx
dWVzdChibG9jaykKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFpbGVkIHRvIGNyZWF0ZSBsb2dpY2FsIHJlcXVlc3Q6ICVy
JyAlIGUpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNl
KAotICAgICAgICAgICAgICAgIGJsb2NrLmNoYW5uZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9T
VEFUVVNfQkFEX1JFUVVFU1QpCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgc2VsZi5f
ZG9faGFuZHNoYWtlX2Zvcl9sb2dpY2FsX3JlcXVlc3QobG9naWNhbF9yZXF1ZXN0KToKLSAgICAg
ICAgICAgIGlmIGJsb2NrLmVuY29kaW5nID09IF9IQU5EU0hBS0VfRU5DT0RJTkdfSURFTlRJVFk6
Ci0gICAgICAgICAgICAgICAgIyBVcGRhdGUgaGFuZHNoYWtlIGJhc2UuCi0gICAgICAgICAgICAg
ICAgIyBUT0RPKGJhc2hpKTogTWFrZSBzdXJlIHRoaXMgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIHVw
ZGF0ZQotICAgICAgICAgICAgICAgICMgaGFuZHNoYWtlIGJhc2UuCi0gICAgICAgICAgICAgICAg
c2VsZi5faGFuZHNoYWtlX2Jhc2UgPSBfSGFuZHNoYWtlRGVsdGFCYXNlKAotICAgICAgICAgICAg
ICAgICAgICBsb2dpY2FsX3JlcXVlc3QuaGVhZGVyc19pbikKLSAgICAgICAgICAgIHNlbGYuX2Fk
ZF9sb2dpY2FsX2NoYW5uZWwobG9naWNhbF9yZXF1ZXN0KQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgc2VsZi5fc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAg
ICAgICBibG9jay5jaGFubmVsX2lkLCBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFV
RVNUKQotCi0gICAgZGVmIF9wcm9jZXNzX2Zsb3dfY29udHJvbChzZWxmLCBibG9jayk6Ci0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IGJsb2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9n
aWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5u
ZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbYmxvY2suY2hhbm5lbF9pZF0KLSAgICAg
ICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LndzX3N0cmVhbS5yZXBsZW5pc2hfc2VuZF9xdW90
YSgKLSAgICAgICAgICAgICAgICBibG9jay5zZW5kX3F1b3RhKQotICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0K
LSAgICBkZWYgX3Byb2Nlc3NfZHJvcF9jaGFubmVsKHNlbGYsIGJsb2NrKToKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0Ryb3BDaGFubmVsIHJlY2VpdmVkIGZvciAl
ZDogY29kZT0lciwgcmVhc29uPSVyJyAlCi0gICAgICAgICAgICAoYmxvY2suY2hhbm5lbF9pZCwg
YmxvY2suZHJvcF9jb2RlLCBibG9jay5kcm9wX21lc3NhZ2UpKQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAg
ICAgICAgIGlmIG5vdCBibG9jay5jaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzW2Jsb2NrLmNoYW5uZWxfaWRdCi0gICAgICAgICAgICBjaGFubmVs
X2RhdGEuZHJvcF9jb2RlID0gX0RST1BfQ09ERV9BQ0tOT1dMRURHRUQKLQotICAgICAgICAgICAg
IyBDbG9zZSB0aGUgbG9naWNhbCBjaGFubmVsCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEucmVx
dWVzdC5jb25uZWN0aW9uLnNldF9yZWFkX3N0YXRlKAotICAgICAgICAgICAgICAgIF9Mb2dpY2Fs
Q29ubmVjdGlvbi5TVEFURV9URVJNSU5BVEVEKQotICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJl
cXVlc3Qud3Nfc3RyZWFtLnN0b3Bfc2VuZGluZygpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRl
ZiBfcHJvY2Vzc19jb250cm9sX2Jsb2NrcyhzZWxmLCBwYXJzZXIpOgotICAgICAgICBmb3IgY29u
dHJvbF9ibG9jayBpbiBwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpOgotICAgICAgICAgICAg
b3Bjb2RlID0gY29udHJvbF9ibG9jay5vcGNvZGUKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnY29udHJvbCBibG9jayByZWNlaXZlZCwgb3Bjb2RlOiAlZCcgJSBvcGNvZGUpCi0gICAg
ICAgICAgICBpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVDoKLSAg
ICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2FkZF9jaGFubmVsX3JlcXVlc3QoY29udHJvbF9i
bG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVM
X1JFU1BPTlNFOgotICAgICAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9y
KAotICAgICAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxP
Q0ssCi0gICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBBZGRDaGFubmVsUmVzcG9uc2UnKQot
ICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfRkxPV19DT05UUk9MOgotICAg
ICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfZmxvd19jb250cm9sKGNvbnRyb2xfYmxvY2spCi0g
ICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9EUk9QX0NIQU5ORUw6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19kcm9wX2NoYW5uZWwoY29udHJvbF9ibG9jaykKLSAg
ICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1Q6Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAg
ICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAg
ICAgICAgICAgICAgJ1JlY2VpdmVkIE5ld0NoYW5uZWxTbG90JykKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgb3Bjb2RlICVyJyAlIG9wY29kZSkKLQotICAgIGRlZiBf
cHJvY2Vzc19sb2dpY2FsX2ZyYW1lKHNlbGYsIGNoYW5uZWxfaWQsIHBhcnNlcik6Ci0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgYSBmcmFtZS4gY2hhbm5lbCBpZD0lZCcgJSBj
aGFubmVsX2lkKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2lkIGlu
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgIyBXZSBtdXN0IGlnbm9y
ZSB0aGUgbWVzc2FnZSBmb3IgYW4gaW5hY3RpdmUgY2hhbm5lbC4KLSAgICAgICAgICAgICAgICBy
ZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNb
Y2hhbm5lbF9pZF0KLSAgICAgICAgICAgIGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBw
YXlsb2FkID0gcGFyc2VyLnJlYWRfaW5uZXJfZnJhbWUoKQotICAgICAgICAgICAgY29uc3VtaW5n
X2J5dGUgPSBsZW4ocGF5bG9hZCkKLSAgICAgICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BD
T0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgICAgICBjb25zdW1pbmdfYnl0ZSArPSAxCi0g
ICAgICAgICAgICBpZiBub3QgY2hhbm5lbF9kYXRhLnJlcXVlc3Qud3Nfc3RyZWFtLmNvbnN1bWVf
cmVjZWl2ZV9xdW90YSgKLSAgICAgICAgICAgICAgICBjb25zdW1pbmdfYnl0ZSk6Ci0gICAgICAg
ICAgICAgICAgIyBUaGUgY2xpZW50IHZpb2xhdGVzIHF1b3RhLiBDbG9zZSBsb2dpY2FsIGNoYW5u
ZWwuCi0gICAgICAgICAgICAgICAgcmFpc2UgTG9naWNhbENoYW5uZWxFcnJvcigKLSAgICAgICAg
ICAgICAgICAgICAgY2hhbm5lbF9pZCwgX0RST1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElPTikK
LSAgICAgICAgICAgIGhlYWRlciA9IGNyZWF0ZV9oZWFkZXIob3Bjb2RlLCBsZW4ocGF5bG9hZCks
IGZpbiwgcnN2MSwgcnN2MiwgcnN2MywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFzaz1GYWxzZSkKLSAgICAgICAgICAgIGZyYW1lX2RhdGEgPSBoZWFkZXIgKyBwYXlsb2Fk
Ci0gICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLmFwcGVuZF9mcmFt
ZV9kYXRhKGZyYW1lX2RhdGEpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBkaXNwYXRjaF9t
ZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJEaXNwYXRjaGVzIG1lc3NhZ2UuIFRo
ZSByZWFkZXIgdGhyZWFkIGNhbGxzIHRoaXMgbWV0aG9kLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICBtZXNzYWdlOiBhIG1lc3NhZ2UgdGhhdCBjb250YWlucyBlbmNhcHN1bGF0ZWQgZnJh
bWUuCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9y
OiBpZiB0aGUgbWVzc2FnZSBjb250YWlucyBwaHlzaWNhbAotICAgICAgICAgICAgICAgIGNvbm5l
Y3Rpb24gbGV2ZWwgZXJyb3JzLgotICAgICAgICAgICAgTG9naWNhbENoYW5uZWxFcnJvcjogaWYg
dGhlIG1lc3NhZ2UgY29udGFpbnMgbG9naWNhbCBjaGFubmVsCi0gICAgICAgICAgICAgICAgbGV2
ZWwgZXJyb3JzLgotICAgICAgICAiIiIKLQotICAgICAgICBwYXJzZXIgPSBfTXV4RnJhbWVQYXls
b2FkUGFyc2VyKG1lc3NhZ2UpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNoYW5uZWxfaWQg
PSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMg
ZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVf
Q0hBTk5FTF9JRF9UUlVOQ0FURUQpCi0gICAgICAgIGlmIGNoYW5uZWxfaWQgPT0gX0NPTlRST0xf
Q0hBTk5FTF9JRDoKLSAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfY29udHJvbF9ibG9ja3MocGFy
c2VyKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQsIHBhcnNlcikKLQotICAgIGRlZiBub3RpZnlfd29ya2VyX2RvbmUoc2Vs
ZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgICIiIkNhbGxlZCB3aGVuIGEgd29ya2VyIGhhcyBmaW5p
c2hlZC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hhbm5lbCBp
ZCBjb3JyZXNwb25kZWQgd2l0aCB0aGUgd29ya2VyLgotICAgICAgICAiIiIKLQotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ1dvcmtlciBmb3IgY2hhbm5lbCBpZCAlZCB0ZXJtaW5hdGVkJyAl
IGNoYW5uZWxfaWQpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQg
aW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4
cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnQ2hhbm5lbCBpZCAlZCBub3Qg
Zm91bmQnICUgY2hhbm5lbF9pZCkKLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHMucG9wKGNoYW5uZWxfaWQpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzZWxmLl93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQgPSBUcnVlCi0gICAgICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgaWYg
bm90IGNoYW5uZWxfZGF0YS5yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAg
c2VsZi5fc2VuZF9kcm9wX2NoYW5uZWwoCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwgY29k
ZT1jaGFubmVsX2RhdGEuZHJvcF9jb2RlLAotICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y2hhbm5l
bF9kYXRhLmRyb3BfbWVzc2FnZSkKLQotICAgIGRlZiBub3RpZnlfcmVhZGVyX2RvbmUoc2VsZik6
Ci0gICAgICAgICIiIlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSB0aGUgcmVhZGVyIHRocmVhZCB3
aGVuIHRoZSByZWFkZXIgaGFzCi0gICAgICAgIGZpbmlzaGVkLgotICAgICAgICAiIiIKLQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnVGVybWlhdGluZyBhbGwgbG9n
aWNhbCBjb25uZWN0aW9ucyB3YWl0aW5nIGZvciBpbmNvbWluZyBkYXRhICcKLSAgICAgICAgICAg
ICcuLi4nKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJl
KCkKLSAgICAgICAgZm9yIGNoYW5uZWxfZGF0YSBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzLnZh
bHVlcygpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5y
ZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRfc3RhdGUoCi0gICAgICAgICAgICAgICAgICAgIF9M
b2dpY2FsQ29ubmVjdGlvbi5TVEFURV9URVJNSU5BVEVEKQotICAgICAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcodHJhY2ViYWNrLmZv
cm1hdF9leGMoKSkKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVs
ZWFzZSgpCi0KLSAgICBkZWYgbm90aWZ5X3dyaXRlcl9kb25lKHNlbGYpOgotICAgICAgICAiIiJU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgdGhlIHdyaXRlciB0aHJlYWQgd2hlbiB0aGUgd3JpdGVy
IGhhcwotICAgICAgICBmaW5pc2hlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgJ1Rlcm1pYXRpbmcgYWxsIGxvZ2ljYWwgY29ubmVjdGlv
bnMgd2FpdGluZyBmb3Igd3JpdGUgJwotICAgICAgICAgICAgJ2NvbXBsZXRpb24gLi4uJykKLSAg
ICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
IGZvciBjaGFubmVsX2RhdGEgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVscy52YWx1ZXMoKToKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25u
ZWN0aW9uLm9uX3dyaXRlcl9kb25lKCkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkp
Ci0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0g
ICAgZGVmIGZhaWxfcGh5c2ljYWxfY29ubmVjdGlvbihzZWxmLCBjb2RlLCBtZXNzYWdlKToKLSAg
ICAgICAgIiIiRmFpbCB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgY29kZTogZHJvcCByZWFzb24gY29kZS4KLSAgICAgICAgICAgIG1lc3NhZ2U6
IGRyb3AgbWVzc2FnZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdGYWlsaW5nIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLi4uJykKLSAgICAgICAgc2VsZi5fc2Vu
ZF9kcm9wX2NoYW5uZWwoX0NPTlRST0xfQ0hBTk5FTF9JRCwgY29kZSwgbWVzc2FnZSkKLSAgICAg
ICAgc2VsZi5fd3JpdGVyLnN0b3AoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJP
UikKLQotICAgIGRlZiBmYWlsX2xvZ2ljYWxfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkLCBjb2Rl
LCBtZXNzYWdlKToKLSAgICAgICAgIiIiRmFpbCBhIGxvZ2ljYWwgY2hhbm5lbC4KLQotICAgICAg
ICBBcmdzOgotICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hhbm5lbCBpZC4KLSAgICAgICAgICAg
IGNvZGU6IGRyb3AgcmVhc29uIGNvZGUuCi0gICAgICAgICAgICBtZXNzYWdlOiBkcm9wIG1lc3Nh
Z2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFpbGluZyBs
b2dpY2FsIGNoYW5uZWwgJWQuLi4nICUgY2hhbm5lbF9pZCkKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
ICAgICBpZiBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAg
ICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXQot
ICAgICAgICAgICAgICAgICMgQ2xvc2UgdGhlIGxvZ2ljYWwgY2hhbm5lbC4gbm90aWZ5X3dvcmtl
cl9kb25lKCkgd2lsbCBiZQotICAgICAgICAgICAgICAgICMgY2FsbGVkIGxhdGVyIGFuZCBpdCB3
aWxsIHNlbmQgRHJvcENoYW5uZWwuCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLmRyb3Bf
Y29kZSA9IGNvZGUKLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEuZHJvcF9tZXNzYWdlID0g
bWVzc2FnZQotCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVjdGlv
bi5zZXRfcmVhZF9zdGF0ZSgKLSAgICAgICAgICAgICAgICAgICAgX0xvZ2ljYWxDb25uZWN0aW9u
LlNUQVRFX1RFUk1JTkFURUQpCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qu
d3Nfc3RyZWFtLnN0b3Bfc2VuZGluZygpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIHNlbGYuX3NlbmRfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2UpCi0g
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRp
dGlvbi5yZWxlYXNlKCkKLQotCi1kZWYgdXNlX211eChyZXF1ZXN0KToKLSAgICByZXR1cm4gaGFz
YXR0cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpIGFuZCAoCi0gICAgICAgIHJlcXVlc3QubXV4
X3Byb2Nlc3Nvci5pc19hY3RpdmUoKSkKLQotCi1kZWYgc3RhcnQocmVxdWVzdCwgZGlzcGF0Y2hl
cik6Ci0gICAgbXV4X2hhbmRsZXIgPSBfTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQot
ICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKF9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICBtdXhfaGFu
ZGxlci53YWl0X3VudGlsX2RvbmUoKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L3N0YW5kYWxvbmUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjODc4NjA2
NDg4OWU4NGYxMTVhNzU2NzlhYjcxYzc0NDY2YTBjNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDEyMDggKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
Ci0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJTdGFuZGFsb25lIFdlYlNvY2tldCBzZXJ2ZXIu
Ci0KLVVzZSB0aGlzIGZpbGUgdG8gbGF1bmNoIHB5d2Vic29ja2V0IHdpdGhvdXQgQXBhY2hlIEhU
VFAgU2VydmVyLgotCi0KLUJBU0lDIFVTQUdFCi09PT09PT09PT09PQotCi1HbyB0byB0aGUgc3Jj
IGRpcmVjdG9yeSBhbmQgcnVuCi0KLSAgJCBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxv
bmUucHkgWy1wIDx3c19wb3J0Pl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWy13IDx3ZWJzb2NrX2hhbmRsZXJzPl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWy1kIDxkb2N1bWVudF9yb290Pl0KLQotPHdzX3BvcnQ+IGlzIHRoZSBw
b3J0IG51bWJlciB0byB1c2UgZm9yIHdzOi8vIGNvbm5lY3Rpb24uCi0KLTxkb2N1bWVudF9yb290
PiBpcyB0aGUgcGF0aCB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgSFRNTCBmaWxlcy4KLQotPHdl
YnNvY2tfaGFuZGxlcnM+IGlzIHRoZSBwYXRoIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiBXZWJT
b2NrZXQgaGFuZGxlcnMuCi1JZiBub3Qgc3BlY2lmaWVkLCA8ZG9jdW1lbnRfcm9vdD4gd2lsbCBi
ZSB1c2VkLiBTZWUgX19pbml0X18ucHkgKG9yCi1ydW4gJCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQp
IGZvciBob3cgdG8gd3JpdGUgV2ViU29ja2V0IGhhbmRsZXJzLgotCi1Gb3IgbW9yZSBkZXRhaWwg
YW5kIG90aGVyIG9wdGlvbnMsIHJ1bgotCi0gICQgcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFu
ZGFsb25lLnB5IC0taGVscAotCi1vciBzZWUgX2J1aWxkX29wdGlvbl9wYXJzZXIgbWV0aG9kIGJl
bG93LgotCi1Gb3IgdHJvdWJsZSBzaG9vdGluZywgYWRkaW5nICItLWxvZ19sZXZlbCBkZWJ1ZyIg
bWlnaHQgaGVscCB5b3UuCi0KLQotVFJZIERFTU8KLT09PT09PT09Ci0KLUdvIHRvIHRoZSBzcmMg
ZGlyZWN0b3J5IGFuZCBydW4gc3RhbmRhbG9uZS5weSB3aXRoIC1kIG9wdGlvbiB0byBzZXQgdGhl
Ci1kb2N1bWVudCByb290IHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBleGFtcGxlIEhUTUxz
IGFuZCBoYW5kbGVycyBsaWtlIHRoaXM6Ci0KLSAgJCBjZCBzcmMKLSAgJCBQWVRIT05QQVRIPS4g
cHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IC1kIGV4YW1wbGUKLQotdG8gbGF1
bmNoIHB5d2Vic29ja2V0IHdpdGggdGhlIHNhbXBsZSBoYW5kbGVyIGFuZCBodG1sIG9uIHBvcnQg
ODAuIE9wZW4KLWh0dHA6Ly9sb2NhbGhvc3QvY29uc29sZS5odG1sLCBjbGljayB0aGUgY29ubmVj
dCBidXR0b24sIHR5cGUgc29tZXRoaW5nIGludG8KLXRoZSB0ZXh0IGJveCBuZXh0IHRvIHRoZSBz
ZW5kIGJ1dHRvbiBhbmQgY2xpY2sgdGhlIHNlbmQgYnV0dG9uLiBJZiBldmVyeXRoaW5nCi1pcyB3
b3JraW5nLCB5b3UnbGwgc2VlIHRoZSBtZXNzYWdlIHlvdSB0eXBlZCBlY2hvZWQgYnkgdGhlIHNl
cnZlci4KLQotCi1VU0lORyBUTFMKLT09PT09PT09PQotCi1UbyBydW4gdGhlIHN0YW5kYWxvbmUg
c2VydmVyIHdpdGggVExTIHN1cHBvcnQsIHJ1biBpdCB3aXRoIC10LCAtaywgYW5kIC1jCi1vcHRp
b25zLiBXaGVuIFRMUyBpcyBlbmFibGVkLCB0aGUgc3RhbmRhbG9uZSBzZXJ2ZXIgYWNjZXB0cyBv
bmx5IFRMUyBjb25uZWN0aW9uLgotCi1Ob3RlIHRoYXQgd2hlbiBzc2wgbW9kdWxlIGlzIHVzZWQg
YW5kIHRoZSBrZXkvY2VydCBsb2NhdGlvbiBpcyBpbmNvcnJlY3QsCi1UTFMgY29ubmVjdGlvbiBz
aWxlbnRseSBmYWlscyB3aGlsZSBweU9wZW5TU0wgZmFpbHMgb24gc3RhcnR1cC4KLQotRXhhbXBs
ZToKLQotICAkIFBZVEhPTlBBVEg9LiBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUu
cHkgXAotICAgICAgICAtZCBleGFtcGxlIFwKLSAgICAgICAgLXAgMTA0NDMgXAotICAgICAgICAt
dCBcCi0gICAgICAgIC1jIC4uL3Rlc3QvY2VydC9jZXJ0LnBlbSBcCi0gICAgICAgIC1rIC4uL3Rl
c3QvY2VydC9rZXkucGVtIFwKLQotTm90ZSB0aGF0IHdoZW4gcGFzc2luZyBhIHJlbGF0aXZlIHBh
dGggdG8gLWMgYW5kIC1rIG9wdGlvbiwgaXQgd2lsbCBiZSByZXNvbHZlZAotdXNpbmcgdGhlIGRv
Y3VtZW50IHJvb3QgZGlyZWN0b3J5IGFzIHRoZSBiYXNlLgotCi0KLVVTSU5HIENMSUVOVCBBVVRI
RU5USUNBVElPTgotPT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVRvIHJ1biB0aGUgc3Rh
bmRhbG9uZSBzZXJ2ZXIgd2l0aCBUTFMgY2xpZW50IGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQsIHJ1
biBpdCB3aXRoCi0tLXRscy1jbGllbnQtYXV0aCBhbmQgLS10bHMtY2xpZW50LWNhIG9wdGlvbnMg
aW4gYWRkaXRpb24gdG8gb25lcyByZXF1aXJlZCBmb3IKLVRMUyBzdXBwb3J0LgotCi1FeGFtcGxl
OgotCi0gICQgUFlUSE9OUEFUSD0uIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5w
eSAtZCBleGFtcGxlIC1wIDEwNDQzIC10IFwKLSAgICAgICAgLWMgLi4vdGVzdC9jZXJ0L2NlcnQu
cGVtIC1rIC4uL3Rlc3QvY2VydC9rZXkucGVtIFwKLSAgICAgICAgLS10bHMtY2xpZW50LWF1dGgg
XAotICAgICAgICAtLXRscy1jbGllbnQtY2E9Li4vdGVzdC9jZXJ0L2NhY2VydC5wZW0KLQotTm90
ZSB0aGF0IHdoZW4gcGFzc2luZyBhIHJlbGF0aXZlIHBhdGggdG8gLS10bHMtY2xpZW50LWNhIG9w
dGlvbiwgaXQgd2lsbCBiZQotcmVzb2x2ZWQgdXNpbmcgdGhlIGRvY3VtZW50IHJvb3QgZGlyZWN0
b3J5IGFzIHRoZSBiYXNlLgotCi0KLUNPTkZJR1VSQVRJT04gRklMRQotPT09PT09PT09PT09PT09
PT09Ci0KLVlvdSBjYW4gYWxzbyB3cml0ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgdXNlIGl0
IGJ5IHNwZWNpZnlpbmcgdGhlIHBhdGggdG8KLXRoZSBjb25maWd1cmF0aW9uIGZpbGUgYnkgLS1j
b25maWcgb3B0aW9uLiBQbGVhc2Ugd3JpdGUgYSBjb25maWd1cmF0aW9uIGZpbGUKLWZvbGxvd2lu
ZyB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgUHl0aG9uIENvbmZpZ1BhcnNlciBsaWJyYXJ5LiBO
YW1lIG9mIGVhY2gKLWVudHJ5IG11c3QgYmUgdGhlIGxvbmcgdmVyc2lvbiBhcmd1bWVudCBuYW1l
LiBFLmcuIHRvIHNldCBsb2cgbGV2ZWwgdG8gZGVidWcsCi1hZGQgdGhlIGZvbGxvd2luZyBsaW5l
OgotCi1sb2dfbGV2ZWw9ZGVidWcKLQotRm9yIG9wdGlvbnMgd2hpY2ggZG9lc24ndCB0YWtlIHZh
bHVlLCBwbGVhc2UgYWRkIHNvbWUgZmFrZSB2YWx1ZS4gRS5nLiBmb3IKLS0tdGxzIG9wdGlvbiwg
YWRkIHRoZSBmb2xsb3dpbmcgbGluZToKLQotdGxzPVRydWUKLQotTm90ZSB0aGF0IHRscyB3aWxs
IGJlIGVuYWJsZWQgZXZlbiBpZiB5b3Ugd3JpdGUgdGxzPUZhbHNlIGFzIHRoZSB2YWx1ZSBwYXJ0
IGlzCi1mYWtlLgotCi1XaGVuIGJvdGggYSBjb21tYW5kIGxpbmUgYXJndW1lbnQgYW5kIGEgY29u
ZmlndXJhdGlvbiBmaWxlIGVudHJ5IGFyZSBzZXQgZm9yCi10aGUgc2FtZSBjb25maWd1cmF0aW9u
IGl0ZW0sIHRoZSBjb21tYW5kIGxpbmUgdmFsdWUgd2lsbCBvdmVycmlkZSBvbmUgaW4gdGhlCi1j
b25maWd1cmF0aW9uIGZpbGUuCi0KLQotVEhSRUFESU5HCi09PT09PT09PT0KLQotVGhpcyBzZXJ2
ZXIgaXMgZGVyaXZlZCBmcm9tIHNvY2tldHNlcnZlci5UaHJlYWRpbmdNaXhJbi4gSGVuY2UgYSB0
aHJlYWQgaXMKLXVzZWQgZm9yIGVhY2ggcmVxdWVzdC4KLQotCi1TRUNVUklUWSBXQVJOSU5HCi09
PT09PT09PT09PT09PT09Ci0KLVRoaXMgdXNlcyBDR0lIVFRQU2VydmVyIGFuZCBDR0lIVFRQU2Vy
dmVyIGlzIG5vdCBzZWN1cmUuCi1JdCBtYXkgZXhlY3V0ZSBhcmJpdHJhcnkgUHl0aG9uIGNvZGUg
b3IgZXh0ZXJuYWwgcHJvZ3JhbXMuIEl0IHNob3VsZCBub3QgYmUKLXVzZWQgb3V0c2lkZSBhIGZp
cmV3YWxsLgotIiIiCi0KLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBCYXNlSFRUUFNlcnZlcgotZnJv
bSBzaXgubW92ZXMgaW1wb3J0IENHSUhUVFBTZXJ2ZXIKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBT
aW1wbGVIVFRQU2VydmVyCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgc29ja2V0c2VydmVyCi1mcm9t
IHNpeC5tb3ZlcyBpbXBvcnQgY29uZmlncGFyc2VyCi1pbXBvcnQgYmFzZTY0Ci1mcm9tIHNpeC5t
b3ZlcyBpbXBvcnQgaHR0cF9jbGllbnQKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgbG9nZ2luZy5o
YW5kbGVycwotaW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0IHNl
bGVjdAotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN5cwotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0
IHRpbWUKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKLQotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3BhdGNoCi1m
cm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIG1vZF9weXdlYnNvY2tl
dCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1l
bW9yaXppbmdmaWxlCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQueGhyX2JlbmNobWFya19oYW5kbGVyIGltcG9ydCBYSFJCZW5jaG1hcmtIYW5k
bGVyCi0KLQotX0RFRkFVTFRfTE9HX01BWF9CWVRFUyA9IDEwMjQgKiAyNTYKLV9ERUZBVUxUX0xP
R19CQUNLVVBfQ09VTlQgPSA1Ci0KLV9ERUZBVUxUX1JFUVVFU1RfUVVFVUVfU0laRSA9IDEyOAot
Ci0jIDEwMjQgaXMgcHJhY3RpY2FsbHkgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gV2ViU29ja2V0
IGhhbmRzaGFrZSBsaW5lcy4KLV9NQVhfTUVNT1JJWkVEX0xJTkVTID0gMTAyNAotCi0jIENvbnN0
YW50cyBmb3IgdGhlIC0tdGxzX21vZHVsZSBmbGFnLgotX1RMU19CWV9TVEFOREFSRF9NT0RVTEUg
PSAnc3NsJwotX1RMU19CWV9QWU9QRU5TU0wgPSAncHlvcGVuc3NsJwotCi0KLWNsYXNzIF9TdGFu
ZGFsb25lQ29ubmVjdGlvbihvYmplY3QpOgotICAgICIiIk1pbWljIG1vZF9weXRob24gbXBfY29u
bi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0X2hhbmRsZXIpOgotICAgICAg
ICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAg
IHJlcXVlc3RfaGFuZGxlcjogQSBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlciBpbnN0YW5jZS4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdF9oYW5kbGVyID0gcmVxdWVzdF9oYW5k
bGVyCi0KLSAgICBkZWYgZ2V0X2xvY2FsX2FkZHIoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0
byBtaW1pYyBtcF9jb25uLmxvY2FsX2FkZHIuIiIiCi0KLSAgICAgICAgcmV0dXJuIChzZWxmLl9y
ZXF1ZXN0X2hhbmRsZXIuc2VydmVyLnNlcnZlcl9uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYu
X3JlcXVlc3RfaGFuZGxlci5zZXJ2ZXIuc2VydmVyX3BvcnQpCi0gICAgbG9jYWxfYWRkciA9IHBy
b3BlcnR5KGdldF9sb2NhbF9hZGRyKQotCi0gICAgZGVmIGdldF9yZW1vdGVfYWRkcihzZWxmKToK
LSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ucmVtb3RlX2FkZHIuCi0KLSAgICAg
ICAgU2V0dGluZyB0aGUgcHJvcGVydHkgaW4gX19pbml0X18gd29uJ3Qgd29yayBiZWNhdXNlIHRo
ZSByZXF1ZXN0Ci0gICAgICAgIGhhbmRsZXIgaXMgbm90IGluaXRpYWxpemVkIHlldCB0aGVyZS4i
IiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLmNsaWVudF9hZGRyZXNz
Ci0gICAgcmVtb3RlX2FkZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2FkZHIpCi0KLSAgICBkZWYg
d3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIk1pbWljIG1wX2Nvbm4ud3JpdGUoKS4iIiIK
LQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLndmaWxlLndyaXRlKGRhdGEp
Ci0KLSAgICBkZWYgcmVhZChzZWxmLCBsZW5ndGgpOgotICAgICAgICAiIiJNaW1pYyBtcF9jb25u
LnJlYWQoKS4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnJmaWxl
LnJlYWQobGVuZ3RoKQotCi0gICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAg
ICAgICIiIkdldCBtZW1vcml6ZWQgbGluZXMuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jl
cXVlc3RfaGFuZGxlci5yZmlsZS5nZXRfbWVtb3JpemVkX2xpbmVzKCkKLQotCi1jbGFzcyBfU3Rh
bmRhbG9uZVJlcXVlc3Qob2JqZWN0KToKLSAgICAiIiJNaW1pYyBtb2RfcHl0aG9uIHJlcXVlc3Qu
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdF9oYW5kbGVyLCB1c2VfdGxzKToK
LSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICByZXF1ZXN0X2hhbmRsZXI6IEEgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIgaW5zdGFu
Y2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3RfaGFuZGxlciA9IHJlcXVlc3Rf
aGFuZGxlcgotICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBfU3RhbmRhbG9uZUNvbm5lY3Rpb24o
cmVxdWVzdF9oYW5kbGVyKQotICAgICAgICBzZWxmLl91c2VfdGxzID0gdXNlX3RscwotICAgICAg
ICBzZWxmLmhlYWRlcnNfaW4gPSByZXF1ZXN0X2hhbmRsZXIuaGVhZGVycwotCi0gICAgZGVmIGdl
dF91cmkoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyByZXF1ZXN0LnVyaS4KLQot
ICAgICAgICBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSByYXcgZGF0YSBhdCB0aGUgUmVxdWVzdC1V
UkkgcGFydCBvZiB0aGUKLSAgICAgICAgUmVxdWVzdC1MaW5lLCB3aGlsZSB0aGUgdXJpIG1ldGhv
ZCBvbiB0aGUgcmVxdWVzdCBvYmplY3Qgb2YgbW9kX3B5dGhvbgotICAgICAgICByZXR1cm5zIHRo
ZSBwYXRoIHBvcnRpb24gYWZ0ZXIgcGFyc2luZyB0aGUgcmF3IGRhdGEuIFRoaXMgYmVoYXZpb3Ig
aXMKLSAgICAgICAga2VwdCBmb3IgY29tcGF0aWJpbGl0eS4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5wYXRoCi0gICAgdXJpID0gcHJvcGVydHko
Z2V0X3VyaSkKLQotICAgIGRlZiBnZXRfdW5wYXJzZWRfdXJpKHNlbGYpOgotICAgICAgICAiIiJH
ZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC51bnBhcnNlZF91cmkuIiIiCi0KLSAgICAgICAgcmV0dXJu
IHNlbGYuX3JlcXVlc3RfaGFuZGxlci5wYXRoCi0gICAgdW5wYXJzZWRfdXJpID0gcHJvcGVydHko
Z2V0X3VucGFyc2VkX3VyaSkKLQotICAgIGRlZiBnZXRfbWV0aG9kKHNlbGYpOgotICAgICAgICAi
IiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC5tZXRob2QuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNl
bGYuX3JlcXVlc3RfaGFuZGxlci5jb21tYW5kCi0gICAgbWV0aG9kID0gcHJvcGVydHkoZ2V0X21l
dGhvZCkKLQotICAgIGRlZiBnZXRfcHJvdG9jb2woc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0
byBtaW1pYyByZXF1ZXN0LnByb3RvY29sLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1
ZXN0X2hhbmRsZXIucmVxdWVzdF92ZXJzaW9uCi0gICAgcHJvdG9jb2wgPSBwcm9wZXJ0eShnZXRf
cHJvdG9jb2wpCi0KLSAgICBkZWYgaXNfaHR0cHMoc2VsZik6Ci0gICAgICAgICIiIk1pbWljIHJl
cXVlc3QuaXNfaHR0cHMoKS4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fdXNlX3RscwotCi0K
LWRlZiBfaW1wb3J0X3NzbCgpOgotICAgIGdsb2JhbCBzc2wKLSAgICB0cnk6Ci0gICAgICAgIGlt
cG9ydCBzc2wKLSAgICAgICAgcmV0dXJuIFRydWUKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0g
ICAgICAgIHJldHVybiBGYWxzZQotCi0KLWRlZiBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgIGds
b2JhbCBPcGVuU1NMCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgT3BlblNTTC5TU0wKLSAgICAg
ICAgcmV0dXJuIFRydWUKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHJldHVybiBG
YWxzZQotCi0KLWNsYXNzIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbihvYmplY3QpOgotICAgICIi
IkEgd3JhcHBlciBjbGFzcyBmb3IgT3BlblNTTC5TU0wuQ29ubmVjdGlvbiB0bwotICAgIC0gcHJv
dmlkZSBtYWtlZmlsZSBtZXRob2Qgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY2xhc3MK
LSAgICAtIHR3ZWFrIHNodXRkb3duIG1ldGhvZCBzaW5jZSBPcGVuU1NMLlNTTC5Db25uZWN0aW9u
LnNodXRkb3duIGRvZXNuJ3QKLSAgICAgIGFjY2VwdCB0aGUgImhvdyIgYXJndW1lbnQuCi0gICAg
LSBjb252ZXJ0IFN5c0NhbGxFcnJvciBleGNlcHRpb25zIHRoYXQgaXRzIHJlY3YgbWV0aG9kIG1h
eSByYWlzZSBpbnRvIGEKLSAgICAgIHJldHVybiB2YWx1ZSBvZiAnJywgbWVhbmluZyBFT0YuIFdl
IGNhbm5vdCBvdmVyd3JpdGUgdGhlIHJlY3YgbWV0aG9kIG9uCi0gICAgICBzZWxmLl9jb25uZWN0
aW9uIHNpbmNlIGl0J3MgaW1tdXRhYmxlLgotICAgICIiIgotCi0gICAgX09WRVJSSURERU5fQVRU
UklCVVRFUyA9IFsnX2Nvbm5lY3Rpb24nLCAnbWFrZWZpbGUnLCAnc2h1dGRvd24nLCAncmVjdidd
Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29ubmVjdGlvbik6Ci0gICAgICAgIHNlbGYuX2Nv
bm5lY3Rpb24gPSBjb25uZWN0aW9uCi0KLSAgICBkZWYgX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBu
YW1lKToKLSAgICAgICAgaWYgbmFtZSBpbiBfU3RhbmRhbG9uZVNTTENvbm5lY3Rpb24uX09WRVJS
SURERU5fQVRUUklCVVRFUzoKLSAgICAgICAgICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1
dGVfXyhzZWxmLCBuYW1lKQotICAgICAgICByZXR1cm4gc2VsZi5fY29ubmVjdGlvbi5fX2dldGF0
dHJpYnV0ZV9fKG5hbWUpCi0KLSAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUp
OgotICAgICAgICBpZiBuYW1lIGluIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbi5fT1ZFUlJJRERF
Tl9BVFRSSUJVVEVTOgotICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5fX3NldGF0dHJfXyhzZWxm
LCBuYW1lLCB2YWx1ZSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm5lY3Rpb24uX19zZXRhdHRy
X18obmFtZSwgdmFsdWUpCi0KLSAgICBkZWYgbWFrZWZpbGUoc2VsZiwgbW9kZT0ncicsIGJ1ZnNp
emU9LTEpOgotICAgICAgICByZXR1cm4gc29ja2V0Ll9maWxlb2JqZWN0KHNlbGYsIG1vZGUsIGJ1
ZnNpemUpCi0KLSAgICBkZWYgc2h1dGRvd24oc2VsZiwgdW51c2VkX2hvdyk6Ci0gICAgICAgIHNl
bGYuX2Nvbm5lY3Rpb24uc2h1dGRvd24oKQotCi0gICAgZGVmIHJlY3Yoc2VsZiwgYnVmc2l6ZSwg
ZmxhZ3M9MCk6Ci0gICAgICAgIGlmIGZsYWdzICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCdOb24temVybyBmbGFncyBub3QgYWxsb3dlZCcpCi0KLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm5lY3Rpb24ucmVjdihidWZzaXplKQotICAgICAgICBl
eGNlcHQgT3BlblNTTC5TU0wuU3lzQ2FsbEVycm9yIGFzIGU6Ci0gICAgICAgICAgICBpZiBlLmFy
Z3NbMF0gPT0gLTE6Ci0gICAgICAgICAgICAgICAgIyBTdXBwcmVzcyAidW5leHBlY3RlZCBFT0Yi
IGV4Y2VwdGlvbi4gU2VlIHRoZSBPcGVuU1NMIGRvY3VtZW50Ci0gICAgICAgICAgICAgICAgIyBm
b3IgU1NMX2dldF9lcnJvci4KLSAgICAgICAgICAgICAgICByZXR1cm4gJycKLSAgICAgICAgICAg
IHJhaXNlCi0KLQotZGVmIF9hbGlhc19oYW5kbGVycyhkaXNwYXRjaGVyLCB3ZWJzb2NrX2hhbmRs
ZXJzX21hcF9maWxlKToKLSAgICAiIiJTZXQgYWxpYXNlcyBzcGVjaWZpZWQgaW4gd2Vic29ja19o
YW5kbGVyX21hcF9maWxlIGluIGRpc3BhdGNoZXIuCi0KLSAgICBBcmdzOgotICAgICAgICBkaXNw
YXRjaGVyOiBkaXNwYXRjaC5EaXNwYXRjaGVyIGluc3RhbmNlCi0gICAgICAgIHdlYnNvY2tfaGFu
ZGxlcl9tYXBfZmlsZTogYWxpYXMgbWFwIGZpbGUKLSAgICAiIiIKLQotICAgIGZwID0gb3Blbih3
ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlKQotICAgIHRyeToKLSAgICAgICAgZm9yIGxpbmUgaW4g
ZnA6Ci0gICAgICAgICAgICBpZiBsaW5lWzBdID09ICcjJyBvciBsaW5lLmlzc3BhY2UoKToKLSAg
ICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoKHInKFxTKylc
cysoXFMrKScsIGxpbmUpCi0gICAgICAgICAgICBpZiBub3QgbToKLSAgICAgICAgICAgICAgICBs
b2dnaW5nLndhcm5pbmcoJ1dyb25nIGZvcm1hdCBpbiBtYXAgZmlsZTonICsgbGluZSkKLSAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGRp
c3BhdGNoZXIuYWRkX3Jlc291cmNlX3BhdGhfYWxpYXMoCi0gICAgICAgICAgICAgICAgICAgIG0u
Z3JvdXAoMSksIG0uZ3JvdXAoMikpCi0gICAgICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0
Y2hFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmVycm9yKHN0cihlKSkK
LSAgICBmaW5hbGx5OgotICAgICAgICBmcC5jbG9zZSgpCi0KLQotY2xhc3MgV2ViU29ja2V0U2Vy
dmVyKHNvY2tldHNlcnZlci5UaHJlYWRpbmdNaXhJbiwgQmFzZUhUVFBTZXJ2ZXIuSFRUUFNlcnZl
cik6Ci0gICAgIiIiSFRUUFNlcnZlciBzcGVjaWFsaXplZCBmb3IgV2ViU29ja2V0LiIiIgotCi0g
ICAgIyBPdmVycmlkZXMgc29ja2V0c2VydmVyLlRocmVhZGluZ01peEluLmRhZW1vbl90aHJlYWRz
Ci0gICAgZGFlbW9uX3RocmVhZHMgPSBUcnVlCi0gICAgIyBPdmVycmlkZXMgQmFzZUhUVFBTZXJ2
ZXIuSFRUUFNlcnZlci5hbGxvd19yZXVzZV9hZGRyZXNzCi0gICAgYWxsb3dfcmV1c2VfYWRkcmVz
cyA9IFRydWUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgIiIi
T3ZlcnJpZGUgc29ja2V0c2VydmVyLlRDUFNlcnZlci5fX2luaXRfXyB0byBzZXQgU1NMIGVuYWJs
ZWQKLSAgICAgICAgc29ja2V0IG9iamVjdCB0byBzZWxmLnNvY2tldCBiZWZvcmUgc2VydmVyX2Jp
bmQgYW5kIHNlcnZlcl9hY3RpdmF0ZSwKLSAgICAgICAgaWYgbmVjZXNzYXJ5LgotICAgICAgICAi
IiIKLQotICAgICAgICAjIFNoYXJlIGEgRGlzcGF0Y2hlciBhbW9uZyByZXF1ZXN0IGhhbmRsZXJz
IHRvIHNhdmUgdGltZSBmb3IKLSAgICAgICAgIyBpbnN0YW50aWF0aW9uLiAgRGlzcGF0Y2hlciBj
YW4gYmUgc2hhcmVkIGJlY2F1c2UgaXQgaXMgdGhyZWFkLXNhZmUuCi0gICAgICAgIG9wdGlvbnMu
ZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoCi0gICAgICAgICAgICBvcHRpb25zLndl
YnNvY2tfaGFuZGxlcnMsCi0gICAgICAgICAgICBvcHRpb25zLnNjYW5fZGlyLAotICAgICAgICAg
ICAgb3B0aW9ucy5hbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyKQotICAgICAgICBpZiBv
cHRpb25zLndlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGU6Ci0gICAgICAgICAgICBfYWxpYXNfaGFu
ZGxlcnMob3B0aW9ucy5kaXNwYXRjaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
dGlvbnMud2Vic29ja19oYW5kbGVyc19tYXBfZmlsZSkKLSAgICAgICAgd2FybmluZ3MgPSBvcHRp
b25zLmRpc3BhdGNoZXIuc291cmNlX3dhcm5pbmdzKCkKLSAgICAgICAgaWYgd2FybmluZ3M6Ci0g
ICAgICAgICAgICBmb3Igd2FybmluZyBpbiB3YXJuaW5nczoKLSAgICAgICAgICAgICAgICBsb2dn
aW5nLndhcm5pbmcoJ1dhcm5pbmcgaW4gc291cmNlIGxvYWRpbmc6ICVzJyAlIHdhcm5pbmcpCi0K
LSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAg
ICAgICAgc2VsZi5yZXF1ZXN0X3F1ZXVlX3NpemUgPSBvcHRpb25zLnJlcXVlc3RfcXVldWVfc2l6
ZQotICAgICAgICBzZWxmLl9fd3NfaXNfc2h1dF9kb3duID0gdGhyZWFkaW5nLkV2ZW50KCkKLSAg
ICAgICAgc2VsZi5fX3dzX3NlcnZpbmcgPSBGYWxzZQotCi0gICAgICAgIHNvY2tldHNlcnZlci5C
YXNlU2VydmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgKG9wdGlvbnMuc2VydmVyX2hv
c3QsIG9wdGlvbnMucG9ydCksIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKQotCi0gICAgICAgICMg
RXhwb3NlIHRoZSBvcHRpb25zIG9iamVjdCB0byBhbGxvdyBoYW5kbGVyIG9iamVjdHMgYWNjZXNz
IGl0LiBXZSBuYW1lCi0gICAgICAgICMgaXQgd2l0aCB3ZWJzb2NrZXRfIHByZWZpeCB0byBhdm9p
ZCBjb25mbGljdC4KLSAgICAgICAgc2VsZi53ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMgPSBvcHRp
b25zCi0KLSAgICAgICAgc2VsZi5fY3JlYXRlX3NvY2tldHMoKQotICAgICAgICBzZWxmLnNlcnZl
cl9iaW5kKCkKLSAgICAgICAgc2VsZi5zZXJ2ZXJfYWN0aXZhdGUoKQotCi0gICAgZGVmIF9jcmVh
dGVfc29ja2V0cyhzZWxmKToKLSAgICAgICAgc2VsZi5zZXJ2ZXJfbmFtZSwgc2VsZi5zZXJ2ZXJf
cG9ydCA9IHNlbGYuc2VydmVyX2FkZHJlc3MKLSAgICAgICAgc2VsZi5fc29ja2V0cyA9IFtdCi0g
ICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlcl9uYW1lOgotICAgICAgICAgICAgIyBPbiBwbGF0Zm9y
bXMgdGhhdCBkb2Vzbid0IHN1cHBvcnQgSVB2NiwgdGhlIGZpcnN0IGJpbmQgZmFpbHMuCi0gICAg
ICAgICAgICAjIE9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnRzIElQdjYKLSAgICAgICAgICAgICMg
LSBJZiBpdCBiaW5kcyBib3RoIElQdjQgYW5kIElQdjYgb24gY2FsbCB3aXRoIEFGX0lORVQ2LCB0
aGUKLSAgICAgICAgICAgICMgICBmaXJzdCBiaW5kIHN1Y2NlZWRzIGFuZCB0aGUgc2Vjb25kIGZh
aWxzICh3ZSdsbCBzZWUgJ0FkZHJlc3MKLSAgICAgICAgICAgICMgICBhbHJlYWR5IGluIHVzZScg
ZXJyb3IpLgotICAgICAgICAgICAgIyAtIElmIGl0IGJpbmRzIG9ubHkgSVB2NiBvbiBjYWxsIHdp
dGggQUZfSU5FVDYsIGJvdGggY2FsbCBhcmUKLSAgICAgICAgICAgICMgICBleHBlY3RlZCB0byBz
dWNjZWVkIHRvIGxpc3RlbiBib3RoIHByb3RvY29sLgotICAgICAgICAgICAgYWRkcmluZm9fYXJy
YXkgPSBbCi0gICAgICAgICAgICAgICAgKHNvY2tldC5BRl9JTkVUNiwgc29ja2V0LlNPQ0tfU1RS
RUFNLCAnJywgJycsICcnKSwKLSAgICAgICAgICAgICAgICAoc29ja2V0LkFGX0lORVQsIHNvY2tl
dC5TT0NLX1NUUkVBTSwgJycsICcnLCAnJyldCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBh
ZGRyaW5mb19hcnJheSA9IHNvY2tldC5nZXRhZGRyaW5mbyhzZWxmLnNlcnZlcl9uYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf
cG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNv
Y2tldC5BRl9VTlNQRUMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzb2NrZXQuU09DS19TVFJFQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzb2NrZXQuSVBQUk9UT19UQ1ApCi0gICAgICAgIGZvciBhZGRy
aW5mbyBpbiBhZGRyaW5mb19hcnJheToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdD
cmVhdGUgc29ja2V0IG9uOiAlcicsIGFkZHJpbmZvKQotICAgICAgICAgICAgZmFtaWx5LCBzb2Nr
dHlwZSwgcHJvdG8sIGNhbm9ubmFtZSwgc29ja2FkZHIgPSBhZGRyaW5mbwotICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgIHNvY2tldF8gPSBzb2NrZXQuc29ja2V0KGZhbWlseSwgc29j
a3R5cGUpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NraXAgYnkgZmFpbHVyZTogJXInLCBlKQotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYud2Vic29j
a2V0X3NlcnZlcl9vcHRpb25zCi0gICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy51c2VfdGxz
OgotICAgICAgICAgICAgICAgICMgRm9yIHRoZSBjYXNlIG9mIF9IQVNfT1BFTl9TU0wsIHdlIGRv
IHdyYXBwZXIgc2V0dXAgYWZ0ZXIKLSAgICAgICAgICAgICAgICAjIGFjY2VwdC4KLSAgICAgICAg
ICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRf
TU9EVUxFOgotICAgICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50
X2F1dGg6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xp
ZW50X2NlcnRfb3B0aW9uYWw6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Nl
cnRfID0gc3NsLkNFUlRfT1BUSU9OQUwKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X2NlcnRfID0gc3NsLkNFUlRfUkVRVUlS
RUQKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNs
aWVudF9jZXJ0XyA9IHNzbC5DRVJUX05PTkUKLSAgICAgICAgICAgICAgICAgICAgc29ja2V0XyA9
IHNzbC53cmFwX3NvY2tldChzb2NrZXRfLAotICAgICAgICAgICAgICAgICAgICAgICAga2V5Zmls
ZT1zZXJ2ZXJfb3B0aW9ucy5wcml2YXRlX2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNl
cnRmaWxlPXNlcnZlcl9vcHRpb25zLmNlcnRpZmljYXRlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgc3NsX3ZlcnNpb249c3NsLlBST1RPQ09MX1NTTHYyMywKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNhX2NlcnRzPXNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfY2EsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBjZXJ0X3JlcXM9Y2xpZW50X2NlcnRfLAotICAgICAgICAgICAgICAgICAgICAg
ICAgZG9faGFuZHNoYWtlX29uX2Nvbm5lY3Q9RmFsc2UpCi0gICAgICAgICAgICBzZWxmLl9zb2Nr
ZXRzLmFwcGVuZCgoc29ja2V0XywgYWRkcmluZm8pKQotCi0gICAgZGVmIHNlcnZlcl9iaW5kKHNl
bGYpOgotICAgICAgICAiIiJPdmVycmlkZSBzb2NrZXRzZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9i
aW5kIHRvIGVuYWJsZSBtdWx0aXBsZQotICAgICAgICBzb2NrZXRzIGJpbmQuCi0gICAgICAgICIi
IgotCi0gICAgICAgIGZhaWxlZF9zb2NrZXRzID0gW10KLQotICAgICAgICBmb3Igc29ja2V0aW5m
byBpbiBzZWxmLl9zb2NrZXRzOgotICAgICAgICAgICAgc29ja2V0XywgYWRkcmluZm8gPSBzb2Nr
ZXRpbmZvCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQmluZCBvbjogJXInLCBhZGRy
aW5mbykKLSAgICAgICAgICAgIGlmIHNlbGYuYWxsb3dfcmV1c2VfYWRkcmVzczoKLSAgICAgICAg
ICAgICAgICBzb2NrZXRfLnNldHNvY2tvcHQoc29ja2V0LlNPTF9TT0NLRVQsIHNvY2tldC5TT19S
RVVTRUFERFIsIDEpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc29ja2V0Xy5i
aW5kKHNlbGYuc2VydmVyX2FkZHJlc3MpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz
IGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NraXAgYnkgZmFpbHVyZTog
JXInLCBlKQotICAgICAgICAgICAgICAgIHNvY2tldF8uY2xvc2UoKQotICAgICAgICAgICAgICAg
IGZhaWxlZF9zb2NrZXRzLmFwcGVuZChzb2NrZXRpbmZvKQotICAgICAgICAgICAgaWYgc2VsZi5z
ZXJ2ZXJfYWRkcmVzc1sxXSA9PSAwOgotICAgICAgICAgICAgICAgICMgVGhlIG9wZXJhdGluZyBz
eXN0ZW0gYXNzaWducyB0aGUgYWN0dWFsIHBvcnQgbnVtYmVyIGZvciBwb3J0Ci0gICAgICAgICAg
ICAgICAgIyBudW1iZXIgMC4gVGhpcyBjYXNlLCB0aGUgc2Vjb25kIGFuZCBsYXRlciBzb2NrZXRz
IHNob3VsZCB1c2UKLSAgICAgICAgICAgICAgICAjIHRoZSBzYW1lIHBvcnQgbnVtYmVyLiBBbHNv
IHNlbGYuc2VydmVyX3BvcnQgaXMgcmV3cml0dGVuCi0gICAgICAgICAgICAgICAgIyBiZWNhdXNl
IGl0IGlzIGV4cG9ydGVkLCBhbmQgd2lsbCBiZSB1c2VkIGJ5IGV4dGVybmFsIGNvZGUuCi0gICAg
ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfYWRkcmVzcyA9ICgKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5zZXJ2ZXJfbmFtZSwgc29ja2V0Xy5nZXRzb2NrbmFtZSgpWzFdKQotICAgICAgICAgICAg
ICAgIHNlbGYuc2VydmVyX3BvcnQgPSBzZWxmLnNlcnZlcl9hZGRyZXNzWzFdCi0gICAgICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1BvcnQgJXIgaXMgYXNzaWduZWQnLCBzZWxmLnNlcnZl
cl9wb3J0KQotCi0gICAgICAgIGZvciBzb2NrZXRpbmZvIGluIGZhaWxlZF9zb2NrZXRzOgotICAg
ICAgICAgICAgc2VsZi5fc29ja2V0cy5yZW1vdmUoc29ja2V0aW5mbykKLQotICAgIGRlZiBzZXJ2
ZXJfYWN0aXZhdGUoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIHNvY2tldHNlcnZlci5UQ1BT
ZXJ2ZXIuc2VydmVyX2FjdGl2YXRlIHRvIGVuYWJsZSBtdWx0aXBsZQotICAgICAgICBzb2NrZXRz
IGxpc3Rlbi4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZmFpbGVkX3NvY2tldHMgPSBbXQotCi0g
ICAgICAgIGZvciBzb2NrZXRpbmZvIGluIHNlbGYuX3NvY2tldHM6Ci0gICAgICAgICAgICBzb2Nr
ZXRfLCBhZGRyaW5mbyA9IHNvY2tldGluZm8KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCdMaXN0ZW4gb246ICVyJywgYWRkcmluZm8pCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICAgICAgc29ja2V0Xy5saXN0ZW4oc2VsZi5yZXF1ZXN0X3F1ZXVlX3NpemUpCi0gICAgICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmlu
Zm8oJ1NraXAgYnkgZmFpbHVyZTogJXInLCBlKQotICAgICAgICAgICAgICAgIHNvY2tldF8uY2xv
c2UoKQotICAgICAgICAgICAgICAgIGZhaWxlZF9zb2NrZXRzLmFwcGVuZChzb2NrZXRpbmZvKQot
Ci0gICAgICAgIGZvciBzb2NrZXRpbmZvIGluIGZhaWxlZF9zb2NrZXRzOgotICAgICAgICAgICAg
c2VsZi5fc29ja2V0cy5yZW1vdmUoc29ja2V0aW5mbykKLQotICAgICAgICBpZiBsZW4oc2VsZi5f
c29ja2V0cykgPT0gMDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5jcml0aWNhbCgKLSAgICAg
ICAgICAgICAgICAnTm8gc29ja2V0cyBhY3RpdmF0ZWQuIFVzZSBpbmZvIGxvZyBsZXZlbCB0byBz
ZWUgdGhlIHJlYXNvbi4nKQotCi0gICAgZGVmIHNlcnZlcl9jbG9zZShzZWxmKToKLSAgICAgICAg
IiIiT3ZlcnJpZGUgc29ja2V0c2VydmVyLlRDUFNlcnZlci5zZXJ2ZXJfY2xvc2UgdG8gZW5hYmxl
IG11bHRpcGxlCi0gICAgICAgIHNvY2tldHMgY2xvc2UuCi0gICAgICAgICIiIgotCi0gICAgICAg
IGZvciBzb2NrZXRpbmZvIGluIHNlbGYuX3NvY2tldHM6Ci0gICAgICAgICAgICBzb2NrZXRfLCBh
ZGRyaW5mbyA9IHNvY2tldGluZm8KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDbG9z
ZSBvbjogJXInLCBhZGRyaW5mbykKLSAgICAgICAgICAgIHNvY2tldF8uY2xvc2UoKQotCi0gICAg
ZGVmIGZpbGVubyhzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgc29ja2V0c2VydmVyLlRDUFNl
cnZlci5maWxlbm8uIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmNyaXRpY2FsKCdOb3Qgc3Vw
cG9ydGVkOiBmaWxlbm8nKQotICAgICAgICByZXR1cm4gc2VsZi5fc29ja2V0c1swXVswXS5maWxl
bm8oKQotCi0gICAgZGVmIGhhbmRsZV9lcnJvcihzZWxmLCByZXF1ZXN0LCBjbGllbnRfYWRkcmVz
cyk6Ci0gICAgICAgICIiIk92ZXJyaWRlIHNvY2tldHNlcnZlci5oYW5kbGVfZXJyb3IuIiIiCi0K
LSAgICAgICAgc2VsZi5fbG9nZ2VyLmVycm9yKAotICAgICAgICAgICAgJ0V4Y2VwdGlvbiBpbiBw
cm9jZXNzaW5nIHJlcXVlc3QgZnJvbTogJXJcbiVzJywKLSAgICAgICAgICAgIGNsaWVudF9hZGRy
ZXNzLAotICAgICAgICAgICAgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKLSAgICAgICAgIyBOb3Rl
OiBjbGllbnRfYWRkcmVzcyBpcyBhIHR1cGxlLgotCi0gICAgZGVmIGdldF9yZXF1ZXN0KHNlbGYp
OgotICAgICAgICAiIiJPdmVycmlkZSBUQ1BTZXJ2ZXIuZ2V0X3JlcXVlc3QgdG8gd3JhcCBPcGVu
U1NMLlNTTC5Db25uZWN0aW9uCi0gICAgICAgIG9iamVjdCB3aXRoIF9TdGFuZGFsb25lU1NMQ29u
bmVjdGlvbiB0byBwcm92aWRlIG1ha2VmaWxlIG1ldGhvZC4gV2UKLSAgICAgICAgY2Fubm90IHN1
YnN0aXR1dGUgT3BlblNTTC5TU0wuQ29ubmVjdGlvbi5tYWtlZmlsZSBzaW5jZSBpdCdzIHJlYWRv
bmx5Ci0gICAgICAgIGF0dHJpYnV0ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgYWNjZXB0ZWRf
c29ja2V0LCBjbGllbnRfYWRkcmVzcyA9IHNlbGYuc29ja2V0LmFjY2VwdCgpCi0KLSAgICAgICAg
c2VydmVyX29wdGlvbnMgPSBzZWxmLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucwotICAgICAgICBp
ZiBzZXJ2ZXJfb3B0aW9ucy51c2VfdGxzOgotICAgICAgICAgICAgaWYgc2VydmVyX29wdGlvbnMu
dGxzX21vZHVsZSA9PSBfVExTX0JZX1NUQU5EQVJEX01PRFVMRToKLSAgICAgICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgICAgIGFjY2VwdGVkX3NvY2tldC5kb19oYW5kc2hha2UoKQot
ICAgICAgICAgICAgICAgIGV4Y2VwdCBzc2wuU1NMRXJyb3IgYXMgZToKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcicsIGUpCi0gICAgICAgICAgICAgICAgICAgIHJh
aXNlCi0KLSAgICAgICAgICAgICAgICAjIFByaW50IGNpcGhlciBpbiB1c2UuIEhhbmRzaGFrZSBp
cyBkb25lIG9uIGFjY2VwdC4KLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Np
cGhlcjogJXMnLCBhY2NlcHRlZF9zb2NrZXQuY2lwaGVyKCkpCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgY2VydDogJXInLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuZ2V0cGVlcmNlcnQoKSkKLSAgICAgICAgICAg
IGVsaWYgc2VydmVyX29wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAg
ICAgICAgICAgICAgICAjIFdlIGNhbm5vdCBwcmludCB0aGUgY2lwaGVyIGluIHVzZS4gcHlPcGVu
U1NMIGRvZXNuJ3QgcHJvdmlkZQotICAgICAgICAgICAgICAgICMgYW55IG1ldGhvZCB0byBmZXRj
aCB0aGF0LgotCi0gICAgICAgICAgICAgICAgY3R4ID0gT3BlblNTTC5TU0wuQ29udGV4dChPcGVu
U1NMLlNTTC5TU0x2MjNfTUVUSE9EKQotICAgICAgICAgICAgICAgIGN0eC51c2VfcHJpdmF0ZWtl
eV9maWxlKHNlcnZlcl9vcHRpb25zLnByaXZhdGVfa2V5KQotICAgICAgICAgICAgICAgIGN0eC51
c2VfY2VydGlmaWNhdGVfZmlsZShzZXJ2ZXJfb3B0aW9ucy5jZXJ0aWZpY2F0ZSkKLQotICAgICAg
ICAgICAgICAgIGRlZiBkZWZhdWx0X2NhbGxiYWNrKGNvbm4sIGNlcnQsIGVycm51bSwgZXJyZGVw
dGgsIG9rKToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9rID09IDEKLQotICAgICAgICAg
ICAgICAgICMgU2VlIHRoZSBPcGVuU1NMIGRvY3VtZW50IGZvciBTU0xfQ1RYX3NldF92ZXJpZnku
Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9hdXRoOgotICAg
ICAgICAgICAgICAgICAgICB2ZXJpZnlfbW9kZSA9IE9wZW5TU0wuU1NMLlZFUklGWV9QRUVSCi0g
ICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2NlcnRf
b3B0aW9uYWw6Ci0gICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlfbW9kZSB8PSBPcGVuU1NM
LlNTTC5WRVJJRllfRkFJTF9JRl9OT19QRUVSX0NFUlQKLSAgICAgICAgICAgICAgICAgICAgY3R4
LnNldF92ZXJpZnkodmVyaWZ5X21vZGUsIGRlZmF1bHRfY2FsbGJhY2spCi0gICAgICAgICAgICAg
ICAgICAgIGN0eC5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoc2VydmVyX29wdGlvbnMudGxzX2NsaWVu
dF9jYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25l
KQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGN0eC5zZXRfdmVy
aWZ5KE9wZW5TU0wuU1NMLlZFUklGWV9OT05FLCBkZWZhdWx0X2NhbGxiYWNrKQotCi0gICAgICAg
ICAgICAgICAgYWNjZXB0ZWRfc29ja2V0ID0gT3BlblNTTC5TU0wuQ29ubmVjdGlvbihjdHgsIGFj
Y2VwdGVkX3NvY2tldCkKLSAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuc2V0X2FjY2Vw
dF9zdGF0ZSgpCi0KLSAgICAgICAgICAgICAgICAjIENvbnZlcnQgU1NMIHJlbGF0ZWQgZXJyb3Ig
aW50byBzb2NrZXQuZXJyb3Igc28gdGhhdAotICAgICAgICAgICAgICAgICMgU29ja2V0U2VydmVy
IGlnbm9yZXMgdGhlbSBhbmQga2VlcHMgcnVubmluZy4KLSAgICAgICAgICAgICAgICAjCi0gICAg
ICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogQ29udmVydCBhbGwga2luZHMgb2YgZXJyb3Jz
LgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29j
a2V0LmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICAgICAgZXhjZXB0IE9wZW5TU0wuU1NMLkVy
cm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgICAgICMgU2V0IGVycm5vIHBhcnQgdG8gMSAoU1NM
X0VSUk9SX1NTTCkgbGlrZSB0aGUgc3NsIG1vZHVsZQotICAgICAgICAgICAgICAgICAgICAjIGRv
ZXMuCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXInLCBlKQotICAg
ICAgICAgICAgICAgICAgICByYWlzZSBzb2NrZXQuZXJyb3IoMSwgJyVyJyAlIGUpCi0gICAgICAg
ICAgICAgICAgY2VydCA9IGFjY2VwdGVkX3NvY2tldC5nZXRfcGVlcl9jZXJ0aWZpY2F0ZSgpCi0g
ICAgICAgICAgICAgICAgaWYgY2VydCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgY2VydCBzdWJqZWN0OiAlcicsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0LmdldF9zdWJqZWN0KCkuZ2V0X2NvbXBv
bmVudHMoKSkKLSAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQgPSBfU3RhbmRhbG9uZVNT
TENvbm5lY3Rpb24oYWNjZXB0ZWRfc29ja2V0KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBUTFMgc3VwcG9ydCBtb2R1bGUgaXMgYXZhaWxh
YmxlJykKLQotICAgICAgICByZXR1cm4gYWNjZXB0ZWRfc29ja2V0LCBjbGllbnRfYWRkcmVzcwot
Ci0gICAgZGVmIHNlcnZlX2ZvcmV2ZXIoc2VsZiwgcG9sbF9pbnRlcnZhbD0wLjUpOgotICAgICAg
ICAiIiJPdmVycmlkZSBzb2NrZXRzZXJ2ZXIuQmFzZVNlcnZlci5zZXJ2ZV9mb3JldmVyLiIiIgot
Ci0gICAgICAgIHNlbGYuX193c19zZXJ2aW5nID0gVHJ1ZQotICAgICAgICBzZWxmLl9fd3NfaXNf
c2h1dF9kb3duLmNsZWFyKCkKLSAgICAgICAgaGFuZGxlX3JlcXVlc3QgPSBzZWxmLmhhbmRsZV9y
ZXF1ZXN0Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19oYW5kbGVfcmVxdWVzdF9ub2Jsb2Nr
Jyk6Ci0gICAgICAgICAgICBoYW5kbGVfcmVxdWVzdCA9IHNlbGYuX2hhbmRsZV9yZXF1ZXN0X25v
YmxvY2sKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci53YXJuaW5nKCdG
YWxsYmFjayB0byBibG9ja2luZyByZXF1ZXN0IGhhbmRsZXInKQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICB3aGlsZSBzZWxmLl9fd3Nfc2VydmluZzoKLSAgICAgICAgICAgICAgICByLCB3LCBl
ID0gc2VsZWN0LnNlbGVjdCgKLSAgICAgICAgICAgICAgICAgICAgW3NvY2tldF9bMF0gZm9yIHNv
Y2tldF8gaW4gc2VsZi5fc29ja2V0c10sCi0gICAgICAgICAgICAgICAgICAgIFtdLCBbXSwgcG9s
bF9pbnRlcnZhbCkKLSAgICAgICAgICAgICAgICBmb3Igc29ja2V0XyBpbiByOgotICAgICAgICAg
ICAgICAgICAgICBzZWxmLnNvY2tldCA9IHNvY2tldF8KLSAgICAgICAgICAgICAgICAgICAgaGFu
ZGxlX3JlcXVlc3QoKQotICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0ID0gTm9uZQotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fX3dzX2lzX3NodXRfZG93bi5zZXQoKQotCi0g
ICAgZGVmIHNodXRkb3duKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBzb2NrZXRzZXJ2ZXIu
QmFzZVNlcnZlci5zaHV0ZG93bi4iIiIKLQotICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9IEZh
bHNlCi0gICAgICAgIHNlbGYuX193c19pc19zaHV0X2Rvd24ud2FpdCgpCi0KLQotY2xhc3MgV2Vi
U29ja2V0UmVxdWVzdEhhbmRsZXIoQ0dJSFRUUFNlcnZlci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIp
OgotICAgICIiIkNHSUhUVFBSZXF1ZXN0SGFuZGxlciBzcGVjaWFsaXplZCBmb3IgV2ViU29ja2V0
LiIiIgotCi0gICAgIyBVc2UgaHR0cF9jbGllbnQuSFRUUE1lc3NhZ2UgaW5zdGVhZCBvZiBtaW1l
dG9vbHMuTWVzc2FnZS4KLSAgICBNZXNzYWdlQ2xhc3MgPSBodHRwX2NsaWVudC5IVFRQTWVzc2Fn
ZQotCi0gICAgcHJvdG9jb2xfdmVyc2lvbiA9ICJIVFRQLzEuMSIKLQotICAgIGRlZiBzZXR1cChz
ZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgc29ja2V0c2VydmVyLlN0cmVhbVJlcXVlc3RIYW5k
bGVyLnNldHVwIHRvIHdyYXAgcmZpbGUKLSAgICAgICAgd2l0aCBNZW1vcml6aW5nRmlsZS4KLQot
ICAgICAgICBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBieSBCYXNlUmVxdWVzdEhhbmRsZXIn
cyBjb25zdHJ1Y3RvcgotICAgICAgICBiZWZvcmUgY2FsbGluZyBCYXNlSFRUUFJlcXVlc3RIYW5k
bGVyLmhhbmRsZS4KLSAgICAgICAgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGUgd2lsbCBj
YWxsCi0gICAgICAgIEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlX29uZV9yZXF1ZXN0IGFu
ZCBpdCB3aWxsIGNhbGwKLSAgICAgICAgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIucGFyc2VfcmVx
dWVzdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBDYWxsIHN1cGVyY2xhc3MncyBzZXR1cCB0
byBwcmVwYXJlIHJmaWxlLCB3ZmlsZSwgZXRjLiBTZWUgc2V0dXAKLSAgICAgICAgIyBkZWZpbml0
aW9uIG9uIHRoZSByb290IGNsYXNzIHNvY2tldHNlcnZlci5TdHJlYW1SZXF1ZXN0SGFuZGxlciB0
bwotICAgICAgICAjIHVuZGVyc3RhbmQgd2hhdCB0aGlzIGRvZXMuCi0gICAgICAgIENHSUhUVFBT
ZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLnNldHVwKHNlbGYpCi0KLSAgICAgICAgc2VsZi5y
ZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxlKAotICAgICAgICAgICAgc2VsZi5y
ZmlsZSwKLSAgICAgICAgICAgIG1heF9tZW1vcml6ZWRfbGluZXM9X01BWF9NRU1PUklaRURfTElO
RVMpCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgY2xpZW50X2FkZHJlc3MsIHNl
cnZlcik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxm
KQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBzZXJ2ZXIud2Vic29ja2V0X3NlcnZlcl9vcHRp
b25zCi0KLSAgICAgICAgIyBPdmVycmlkZXMgQ0dJSFRUUFNlcnZlclJlcXVlc3RIYW5kbGVyLmNn
aV9kaXJlY3Rvcmllcy4KLSAgICAgICAgc2VsZi5jZ2lfZGlyZWN0b3JpZXMgPSBzZWxmLl9vcHRp
b25zLmNnaV9kaXJlY3RvcmllcwotICAgICAgICAjIFJlcGxhY2UgQ0dJSFRUUFJlcXVlc3RIYW5k
bGVyLmlzX2V4ZWN1dGFibGUgbWV0aG9kLgotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmlzX2V4
ZWN1dGFibGVfbWV0aG9kIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5pc19leGVjdXRh
YmxlID0gc2VsZi5fb3B0aW9ucy5pc19leGVjdXRhYmxlX21ldGhvZAotCi0gICAgICAgICMgVGhp
cyBhY3R1YWxseSBjYWxscyBCYXNlUmVxdWVzdEhhbmRsZXIuX19pbml0X18uCi0gICAgICAgIENH
SUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLl9faW5pdF9fKAotICAgICAgICAgICAg
c2VsZiwgcmVxdWVzdCwgY2xpZW50X2FkZHJlc3MsIHNlcnZlcikKLQotICAgIGRlZiBwYXJzZV9y
ZXF1ZXN0KHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBCYXNlSFRUUFNlcnZlci5CYXNlSFRU
UFJlcXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVlc3QuCi0KLSAgICAgICAgUmV0dXJuIFRydWUgdG8g
Y29udGludWUgcHJvY2Vzc2luZyBmb3IgSFRUUChTKSwgRmFsc2Ugb3RoZXJ3aXNlLgotCi0gICAg
ICAgIFNlZSBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLmhhbmRsZV9vbmVfcmVxdWVzdCBtZXRob2Qg
d2hpY2ggY2FsbHMKLSAgICAgICAgdGhpcyBtZXRob2QgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHJl
dHVybiB2YWx1ZSB3aWxsIGJlIGhhbmRsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgV2Ug
aG9vayBwYXJzZV9yZXF1ZXN0IG1ldGhvZCwgYnV0IGFsc28gY2FsbCB0aGUgb3JpZ2luYWwKLSAg
ICAgICAgIyBDR0lIVFRQUmVxdWVzdEhhbmRsZXIucGFyc2VfcmVxdWVzdCBzaW5jZSB3aGVuIHdl
IHJldHVybiBGYWxzZSwKLSAgICAgICAgIyBDR0lIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlX29u
ZV9yZXF1ZXN0IGNvbnRpbnVlcyBwcm9jZXNzaW5nIGFuZAotICAgICAgICAjIGl0IG5lZWRzIHZh
cmlhYmxlcyBzZXQgYnkgQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVlc3QuCi0gICAg
ICAgICMKLSAgICAgICAgIyBWYXJpYWJsZXMgc2V0IGJ5IHRoaXMgbWV0aG9kIHdpbGwgYmUgYWxz
byB1c2VkIGJ5IFdlYlNvY2tldCByZXF1ZXN0Ci0gICAgICAgICMgaGFuZGxpbmcgKHNlbGYucGF0
aCwgc2VsZi5jb21tYW5kLCBzZWxmLnJlcXVlc3RsaW5lLCBldGMuIFNlZSBhbHNvCi0gICAgICAg
ICMgaG93IF9TdGFuZGFsb25lUmVxdWVzdCdzIG1lbWJlcnMgYXJlIGltcGxlbWVudGVkIHVzaW5n
IHRoZXNlCi0gICAgICAgICMgYXR0cmlidXRlcykuCi0gICAgICAgIGlmIG5vdCBDR0lIVFRQU2Vy
dmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0KHNlbGYpOgotICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgaWYgc2VsZi5jb21tYW5kID09ICJDT05ORUNUIjoK
LSAgICAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSgyMDAsICJDb25uZWN0ZWQiKQotICAgICAg
ICAgICAgc2VsZi5zZW5kX2hlYWRlcigiQ29ubmVjdGlvbiIsICJrZWVwLWFsaXZlIikKLSAgICAg
ICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAg
ICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfYmFzaWNfYXV0aDoKLSAgICAgICAgICAgIGF1dGgg
PSBzZWxmLmhlYWRlcnMuZ2V0aGVhZGVyKCdBdXRob3JpemF0aW9uJykKLSAgICAgICAgICAgIGlm
IGF1dGggIT0gc2VsZi5fb3B0aW9ucy5iYXNpY19hdXRoX2NyZWRlbnRpYWw6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKDQwMSkKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRf
aGVhZGVyKCdXV1ctQXV0aGVudGljYXRlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdCYXNpYyByZWFsbT0iUHl3ZWJzb2NrZXQiJykKLSAgICAgICAgICAgICAgICBzZWxmLmVu
ZF9oZWFkZXJzKCkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnUmVxdWVzdCBi
YXNpYyBhdXRoZW50aWNhdGlvbicpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAg
ICAgICAgIyBTcGVjaWFsIHBhdGhzIGZvciBYTUxIdHRwUmVxdWVzdCBiZW5jaG1hcmsKLSAgICAg
ICAgeGhyX2JlbmNobWFya19oZWxwZXJfcHJlZml4ID0gJy8wNzNiZTAwMWUxMDk1MDY5MmNjYmYz
YTJhZDIxYzI0NScKLSAgICAgICAgcGFyc2VkX3BhdGggPSB1cmxsaWIucGFyc2UudXJsc3BsaXQo
c2VsZi5wYXRoKQotICAgICAgICBpZiBwYXJzZWRfcGF0aC5wYXRoID09ICh4aHJfYmVuY2htYXJr
X2hlbHBlcl9wcmVmaXggKyAnX3NlbmQnKToKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFu
ZGxlciA9IFhIUkJlbmNobWFya0hhbmRsZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5oZWFkZXJz
LCBzZWxmLnJmaWxlLCBzZWxmLndmaWxlKQotICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5k
bGVyLmRvX3NlbmQoKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIHBhcnNl
ZF9wYXRoLnBhdGggPT0gKHhocl9iZW5jaG1hcmtfaGVscGVyX3ByZWZpeCArICdfcmVjZWl2ZScp
OgotICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyID0gWEhSQmVuY2htYXJrSGFuZGxl
cigKLSAgICAgICAgICAgICAgICBzZWxmLmhlYWRlcnMsIHNlbGYucmZpbGUsIHNlbGYud2ZpbGUp
Ci0gICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIuZG9fcmVjZWl2ZV9hbmRfcGFyc2Uo
KQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIHBhcnNlZF9wYXRoLnBhdGgg
PT0gKHhocl9iZW5jaG1hcmtfaGVscGVyX3ByZWZpeCArCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdfcmVjZWl2ZV9nZXRub2NhY2hlJyk6Ci0gICAgICAgICAgICB4aHJfYmVuY2ht
YXJrX2hhbmRsZXIgPSBYSFJCZW5jaG1hcmtIYW5kbGVyKAotICAgICAgICAgICAgICAgIHNlbGYu
aGVhZGVycywgc2VsZi5yZmlsZSwgc2VsZi53ZmlsZSkKLSAgICAgICAgICAgIHhocl9iZW5jaG1h
cmtfaGFuZGxlci5kb19yZWNlaXZlKAotICAgICAgICAgICAgICAgIGludChwYXJzZWRfcGF0aC5x
dWVyeSksIEZhbHNlLCBGYWxzZSkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBp
ZiBwYXJzZWRfcGF0aC5wYXRoID09ICh4aHJfYmVuY2htYXJrX2hlbHBlcl9wcmVmaXggKwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX3JlY2VpdmVfZ2V0Y2FjaGUnKToKLSAgICAg
ICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlciA9IFhIUkJlbmNobWFya0hhbmRsZXIoCi0gICAg
ICAgICAgICAgICAgc2VsZi5oZWFkZXJzLCBzZWxmLnJmaWxlLCBzZWxmLndmaWxlKQotICAgICAg
ICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyLmRvX3JlY2VpdmUoCi0gICAgICAgICAgICAgICAg
aW50KHBhcnNlZF9wYXRoLnF1ZXJ5KSwgRmFsc2UsIFRydWUpCi0gICAgICAgICAgICByZXR1cm4g
RmFsc2UKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwu
cGFyc2VfdXJpKHNlbGYucGF0aCkKLSAgICAgICAgaWYgcmVzb3VyY2UgaXMgTm9uZToKLSAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdJbnZhbGlkIFVSSTogJXInLCBzZWxmLnBhdGgpCi0g
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RI
YW5kbGVyJykKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHNlcnZlcl9vcHRpb25z
ID0gc2VsZi5zZXJ2ZXIud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCi0gICAgICAgIGlmIGhvc3Qg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB2YWxpZGF0aW9uX2hvc3QgPSBzZXJ2ZXJfb3B0aW9u
cy52YWxpZGF0aW9uX2hvc3QKLSAgICAgICAgICAgIGlmIHZhbGlkYXRpb25faG9zdCBpcyBub3Qg
Tm9uZSBhbmQgaG9zdCAhPSB2YWxpZGF0aW9uX2hvc3Q6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmluZm8oJ0ludmFsaWQgaG9zdDogJXIgKGV4cGVjdGVkOiAlciknLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFsaWRhdGlvbl9ob3N0KQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKCdGYWxsYmFjayB0byBDR0lIVFRQUmVxdWVzdEhhbmRsZXInKQotICAgICAgICAgICAgICAg
IHJldHVybiBUcnVlCi0gICAgICAgIGlmIHBvcnQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB2
YWxpZGF0aW9uX3BvcnQgPSBzZXJ2ZXJfb3B0aW9ucy52YWxpZGF0aW9uX3BvcnQKLSAgICAgICAg
ICAgIGlmIHZhbGlkYXRpb25fcG9ydCBpcyBub3QgTm9uZSBhbmQgcG9ydCAhPSB2YWxpZGF0aW9u
X3BvcnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ludmFsaWQgcG9ydDog
JXIgKGV4cGVjdGVkOiAlciknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBv
cnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbl9wb3J0KQot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdGYWxsYmFjayB0byBDR0lIVFRQUmVx
dWVzdEhhbmRsZXInKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHNlbGYu
cGF0aCA9IHJlc291cmNlCi0KLSAgICAgICAgcmVxdWVzdCA9IF9TdGFuZGFsb25lUmVxdWVzdChz
ZWxmLCBzZWxmLl9vcHRpb25zLnVzZV90bHMpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
IyBGYWxsYmFjayB0byBkZWZhdWx0IGh0dHAgaGFuZGxlciBmb3IgcmVxdWVzdCBwYXRocyBmb3Ig
d2hpY2gKLSAgICAgICAgICAgICMgd2UgZG9uJ3QgaGF2ZSByZXF1ZXN0IGhhbmRsZXJzLgotICAg
ICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlci5nZXRfaGFuZGxlcl9zdWl0
ZShzZWxmLnBhdGgpOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdObyBoYW5k
bGVyIGZvciByZXNvdXJjZTogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYucGF0aCkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sg
dG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQot
ICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24gYXMgZToKLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdEaXNwYXRjaCBmYWlsZWQgZm9yIGVycm9yOiAlcycsIGUp
Ci0gICAgICAgICAgICBzZWxmLnNlbmRfZXJyb3IoZS5zdGF0dXMpCi0gICAgICAgICAgICByZXR1
cm4gRmFsc2UKLQotICAgICAgICAjIElmIGFueSBFeGNlcHRpb25zIHdpdGhvdXQgZXhjZXB0IGNs
YXVzZSBzZXR1cCAoaW5jbHVkaW5nCi0gICAgICAgICMgRGlzcGF0Y2hFeGNlcHRpb24pIGlzIHJh
aXNlZCBiZWxvdyB0aGlzIHBvaW50LCBpdCB3aWxsIGJlIGNhdWdodAotICAgICAgICAjIGFuZCBs
b2dnZWQgYnkgV2ViU29ja2V0U2VydmVyLgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICBoYW5kc2hha2UuZG9faGFuZHNoYWtlKAotICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRpc3Bh
dGNoZXIsCi0gICAgICAgICAgICAgICAgICAgIGFsbG93RHJhZnQ3NT1zZWxmLl9vcHRpb25zLmFs
bG93X2RyYWZ0NzUsCi0gICAgICAgICAgICAgICAgICAgIHN0cmljdD1zZWxmLl9vcHRpb25zLnN0
cmljdCkKLSAgICAgICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuVmVyc2lvbkV4Y2VwdGlvbiBhcyBl
OgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdIYW5kc2hha2UgZmFpbGVkIGZv
ciB2ZXJzaW9uIGVycm9yOiAlcycsIGUpCi0gICAgICAgICAgICAgICAgc2VsZi5zZW5kX3Jlc3Bv
bnNlKGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKLSAgICAgICAgICAgICAgICBzZWxm
LnNlbmRfaGVhZGVyKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdXBwb3J0ZWRfdmVyc2lvbnMpCi0gICAgICAg
ICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNl
Ci0gICAgICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgICAgICMgSGFuZHNoYWtlIGZvciB3cyhzKSBmYWlsZWQuCi0gICAgICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0hhbmRzaGFrZSBmYWlsZWQgZm9yIGVycm9yOiAlcycs
IGUpCi0gICAgICAgICAgICAgICAgc2VsZi5zZW5kX2Vycm9yKGUuc3RhdHVzKQotICAgICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICAgICByZXF1ZXN0Ll9kaXNwYXRjaGVyID0g
c2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRpc3Bh
dGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkFi
b3J0ZWRCeVVzZXJFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCdBYm9ydGVkOiAlcycsIGUpCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIGxvZ19y
ZXF1ZXN0KHNlbGYsIGNvZGU9Jy0nLCBzaXplPSctJyk6Ci0gICAgICAgICIiIk92ZXJyaWRlIEJh
c2VIVFRQU2VydmVyLmxvZ19yZXF1ZXN0LiIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCciJXMiICVzICVzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0bGlu
ZSwgc3RyKGNvZGUpLCBzdHIoc2l6ZSkpCi0KLSAgICBkZWYgbG9nX2Vycm9yKHNlbGYsICphcmdz
KToKLSAgICAgICAgIiIiT3ZlcnJpZGUgQmFzZUhUVFBTZXJ2ZXIubG9nX2Vycm9yLiIiIgotCi0g
ICAgICAgICMgRGVzcGl0ZSB0aGUgbmFtZSwgdGhpcyBtZXRob2QgaXMgZm9yIHdhcm5pbmdzIHRo
YW4gZm9yIGVycm9ycy4KLSAgICAgICAgIyBGb3IgZXhhbXBsZSwgSFRUUCBzdGF0dXMgY29kZSBp
cyBsb2dnZWQgYnkgdGhpcyBtZXRob2QuCi0gICAgICAgIHNlbGYuX2xvZ2dlci53YXJuaW5nKCcl
cyAtICVzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hZGRyZXNzX3N0cmlu
ZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzBdICUgYXJnc1sxOl0pCi0K
LSAgICBkZWYgaXNfY2dpKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHdoZXRoZXIgc2VsZi5wYXRo
IGNvcnJlc3BvbmRzIHRvIGEgQ0dJIHNjcmlwdC4KLQotICAgICAgICBBZGQgZXh0cmEgY2hlY2sg
dGhhdCBzZWxmLnBhdGggZG9lc24ndCBjb250YWlucyAuLgotICAgICAgICBBbHNvIGNoZWNrIGlm
IHRoZSBmaWxlIGlzIGEgZXhlY3V0YWJsZSBmaWxlIG9yIG5vdC4KLSAgICAgICAgSWYgdGhlIGZp
bGUgaXMgbm90IGV4ZWN1dGFibGUsIGl0IGlzIGhhbmRsZWQgYXMgc3RhdGljIGZpbGUgb3IgZGly
Ci0gICAgICAgIHJhdGhlciB0aGFuIGEgQ0dJIHNjcmlwdC4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgaWYgQ0dJSFRUUFNlcnZlci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIuaXNfY2dpKHNlbGYpOgot
ICAgICAgICAgICAgaWYgJy4uJyBpbiBzZWxmLnBhdGg6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCi0gICAgICAgICAgICAjIHN0cmlwIHF1ZXJ5IHBhcmFtZXRlciBmcm9tIHJlcXVlc3Qg
cGF0aAotICAgICAgICAgICAgcmVzb3VyY2VfbmFtZSA9IHNlbGYucGF0aC5zcGxpdCgnPycsIDIp
WzBdCi0gICAgICAgICAgICAjIGNvbnZlcnQgcmVzb3VyY2VfbmFtZSBpbnRvIHJlYWwgcGF0aCBu
YW1lIGluIGZpbGVzeXN0ZW0uCi0gICAgICAgICAgICBzY3JpcHRmaWxlID0gc2VsZi50cmFuc2xh
dGVfcGF0aChyZXNvdXJjZV9uYW1lKQotICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxl
KHNjcmlwdGZpbGUpOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAg
aWYgbm90IHNlbGYuaXNfZXhlY3V0YWJsZShzY3JpcHRmaWxlKToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxz
ZQotCi0KLWRlZiBfZ2V0X2xvZ2dlcl9mcm9tX2NsYXNzKGMpOgotICAgIHJldHVybiBsb2dnaW5n
LmdldExvZ2dlcignJXMuJXMnICUgKGMuX19tb2R1bGVfXywgYy5fX25hbWVfXykpCi0KLQotZGVm
IF9jb25maWd1cmVfbG9nZ2luZyhvcHRpb25zKToKLSAgICBsb2dnaW5nLmFkZExldmVsTmFtZShj
b21tb24uTE9HTEVWRUxfRklORSwgJ0ZJTkUnKQotCi0gICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRM
b2dnZXIoKQotICAgIGxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLmdldExldmVsTmFtZShvcHRpb25z
LmxvZ19sZXZlbC51cHBlcigpKSkKLSAgICBpZiBvcHRpb25zLmxvZ19maWxlOgotICAgICAgICBo
YW5kbGVyID0gbG9nZ2luZy5oYW5kbGVycy5Sb3RhdGluZ0ZpbGVIYW5kbGVyKAotICAgICAgICAg
ICAgICAgIG9wdGlvbnMubG9nX2ZpbGUsICdhJywgb3B0aW9ucy5sb2dfbWF4LCBvcHRpb25zLmxv
Z19jb3VudCkKLSAgICBlbHNlOgotICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5k
bGVyKCkKLSAgICBmb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcigKLSAgICAgICAgICAgICdb
JShhc2N0aW1lKXNdIFslKGxldmVsbmFtZSlzXSAlKG5hbWUpczogJShtZXNzYWdlKXMnKQotICAg
IGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKLSAgICBsb2dnZXIuYWRkSGFuZGxlciho
YW5kbGVyKQotCi0gICAgZGVmbGF0ZV9sb2dfbGV2ZWxfbmFtZSA9IGxvZ2dpbmcuZ2V0TGV2ZWxO
YW1lKAotICAgICAgICBvcHRpb25zLmRlZmxhdGVfbG9nX2xldmVsLnVwcGVyKCkpCi0gICAgX2dl
dF9sb2dnZXJfZnJvbV9jbGFzcyh1dGlsLl9EZWZsYXRlcikuc2V0TGV2ZWwoCi0gICAgICAgIGRl
ZmxhdGVfbG9nX2xldmVsX25hbWUpCi0gICAgX2dldF9sb2dnZXJfZnJvbV9jbGFzcyh1dGlsLl9J
bmZsYXRlcikuc2V0TGV2ZWwoCi0gICAgICAgIGRlZmxhdGVfbG9nX2xldmVsX25hbWUpCi0KLQot
ZGVmIF9idWlsZF9vcHRpb25fcGFyc2VyKCk6Ci0gICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9u
UGFyc2VyKCkKLQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWNvbmZpZycsIGRlc3Q9J2NvbmZp
Z19maWxlJywgdHlwZT0nc3RyaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5v
bmUsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1BhdGggdG8gY29uZmlndXJhdGlvbiBm
aWxlLiBTZWUgdGhlIGZpbGUgY29tbWVudCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2F0IHRoZSB0b3Agb2YgdGhpcyBmaWxlIGZvciB0aGUgY29uZmlndXJhdGlvbiAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUgZm9ybWF0JykpCi0gICAgcGFyc2VyLmFkZF9vcHRp
b24oJy1IJywgJy0tc2VydmVyLWhvc3QnLCAnLS1zZXJ2ZXJfaG9zdCcsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVzdD0nc2VydmVyX2hvc3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ9JycsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nc2VydmVyIGhvc3RuYW1lIHRvIGxp
c3RlbiB0bycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1WJywgJy0tdmFsaWRhdGlvbi1ob3N0
JywgJy0tdmFsaWRhdGlvbl9ob3N0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd2YWxp
ZGF0aW9uX2hvc3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSdzZXJ2ZXIgaG9zdG5hbWUgdG8gdmFsaWRhdGUgaW4gYWJz
b2x1dGUgcGF0aC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBvcnQnLCBkZXN0
PSdwb3J0JywgdHlwZT0naW50JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PWNvbW1v
bi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdw
b3J0IHRvIGxpc3RlbiB0bycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1QJywgJy0tdmFsaWRh
dGlvbi1wb3J0JywgJy0tdmFsaWRhdGlvbl9wb3J0JywKLSAgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSd2YWxpZGF0aW9uX3BvcnQnLCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdzZXJ2ZXIgcG9ydCB0
byB2YWxpZGF0ZSBpbiBhYnNvbHV0ZSBwYXRoLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy13
JywgJy0td2Vic29jay1oYW5kbGVycycsICctLXdlYnNvY2tfaGFuZGxlcnMnLAotICAgICAgICAg
ICAgICAgICAgICAgIGRlc3Q9J3dlYnNvY2tfaGFuZGxlcnMnLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9Jy4nLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdUaGUgcm9vdCBk
aXJlY3Rvcnkgb2YgV2ViU29ja2V0IGhhbmRsZXIgZmlsZXMuICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnSWYgdGhlIHBhdGggaXMgcmVsYXRpdmUsIC0tZG9jdW1lbnQtcm9vdCBpcyB1
c2VkICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXMgdGhlIGJhc2UuJykpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1tJywgJy0td2Vic29jay1oYW5kbGVycy1tYXAtZmlsZScsCi0g
ICAgICAgICAgICAgICAgICAgICAgJy0td2Vic29ja19oYW5kbGVyc19tYXBfZmlsZScsCi0gICAg
ICAgICAgICAgICAgICAgICAgZGVzdD0nd2Vic29ja19oYW5kbGVyc19tYXBfZmlsZScsCi0gICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9KCdXZWJTb2NrZXQgaGFuZGxlcnMgbWFwIGZpbGUuICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnRWFjaCBsaW5lIGNvbnNpc3RzIG9mIGFsaWFzX3Jlc291cmNlX3BhdGggYW5kICcK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCwgc2Vw
YXJhdGVkIGJ5IHNwYWNlcy4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zY2Fu
LWRpcicsICctLXNjYW5fZGlyJywgZGVzdD0nc2Nhbl9kaXInLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnTXVzdCBiZSBh
IGRpcmVjdG9yeSB1bmRlciAtLXdlYnNvY2staGFuZGxlcnMuICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnT25seSBoYW5kbGVycyB1bmRlciB0aGlzIGRpcmVjdG9yeSBhcmUgc2Nhbm5l
ZCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FuZCByZWdpc3RlcmVkIHRvIHRoZSBz
ZXJ2ZXIuICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlZnVsIGZvciBzYXZpbmcg
c2NhbiB0aW1lIHdoZW4gdGhlIGhhbmRsZXIgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdyb290IGRpcmVjdG9yeSBjb250YWlucyBsb3RzIG9mIGZpbGVzIHRoYXQgYXJlICcKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnbm90IGhhbmRsZXIgZmlsZSBvciBhcmUgaGFuZGxlciBm
aWxlcyBidXQgeW91ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9uXCd0IHdhbnQg
dGhlbSB0byBiZSByZWdpc3RlcmVkLiAnKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1hbGxv
dy1oYW5kbGVycy1vdXRzaWRlLXJvb3QtZGlyJywKLSAgICAgICAgICAgICAgICAgICAgICAnLS1h
bGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyJywKLSAgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSdhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyJywKLSAgICAgICAgICAgICAgICAg
ICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1NjYW5zIFdlYlNvY2tldCBoYW5k
bGVycyBldmVuIGlmIHRoZWlyIGNhbm9uaWNhbCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3BhdGggaXMgbm90IHVuZGVyIC0td2Vic29jay1oYW5kbGVycy4nKSkKLSAgICBwYXJzZXIu
YWRkX29wdGlvbignLWQnLCAnLS1kb2N1bWVudC1yb290JywgJy0tZG9jdW1lbnRfcm9vdCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgZGVzdD0nZG9jdW1lbnRfcm9vdCcsIGRlZmF1bHQ9Jy4nLAot
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0RvY3VtZW50IHJvb3QgZGlyZWN0b3J5LicpCi0g
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy14JywgJy0tY2dpLXBhdGhzJywgJy0tY2dpX3BhdGhzJywg
ZGVzdD0nY2dpX3BhdGhzJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0g
ICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ0NHSSBwYXRocyByZWxhdGl2ZSB0byBkb2N1bWVu
dF9yb290LicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29tbWEtc2VwYXJhdGVkLiAo
ZS5nIC14IC9jZ2ksL2h0YmluKSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZpbGVz
IHVuZGVyIGRvY3VtZW50X3Jvb3QvY2dpX3BhdGggYXJlIGhhbmRsZWQgJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdhcyBDR0kgcHJvZ3JhbXMuIE11c3QgYmUgZXhlY3V0YWJsZS4nKSkK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLXQnLCAnLS10bHMnLCBkZXN0PSd1c2VfdGxzJywgYWN0
aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBo
ZWxwPSd1c2UgVExTICh3c3M6Ly8pJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtbW9k
dWxlJywgJy0tdGxzX21vZHVsZScsIGRlc3Q9J3Rsc19tb2R1bGUnLAotICAgICAgICAgICAgICAg
ICAgICAgIHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcyA9IFtf
VExTX0JZX1NUQU5EQVJEX01PRFVMRSwgX1RMU19CWV9QWU9QRU5TU0xdLAotICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J1VzZSBzc2wgbW9kdWxlIGlmICIlcyIgaXMgc3BlY2lmaWVkLiAnCi0g
ICAgICAgICAgICAgICAgICAgICAgJ1VzZSBweU9wZW5TU0wgbW9kdWxlIGlmICIlcyIgaXMgc3Bl
Y2lmaWVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgKF9UTFNfQllfU1RBTkRBUkRfTU9EVUxF
LCBfVExTX0JZX1BZT1BFTlNTTCkpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1rJywgJy0tcHJp
dmF0ZS1rZXknLCAnLS1wcml2YXRlX2tleScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0n
cHJpdmF0ZV9rZXknLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RM
UyBwcml2YXRlIGtleSBmaWxlLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1jJywgJy0tY2Vy
dGlmaWNhdGUnLCBkZXN0PSdjZXJ0aWZpY2F0ZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD0nJywgaGVscD0nVExTIGNlcnRpZmljYXRlIGZpbGUuJykKLSAgICBwYXJzZXIuYWRkX29w
dGlvbignLS10bHMtY2xpZW50LWF1dGgnLCBkZXN0PSd0bHNfY2xpZW50X2F1dGgnLAotICAgICAg
ICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgaGVscD0nUmVxdWVzdHMgVExTIGNsaWVudCBhdXRoIG9uIGV2ZXJ5
IGNvbm5lY3Rpb24uJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtY2xpZW50LWNlcnQt
b3B0aW9uYWwnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3Rsc19jbGllbnRfY2VydF9v
cHRpb25hbCcsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVm
YXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnTWFrZXMgY2xpZW50IGNl
cnRpZmljYXRlIG9wdGlvbmFsIGV2ZW4gdGhvdWdoICcKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnVExTIGNsaWVudCBhdXRoIGlzIGVuYWJsZWQuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRp
b24oJy0tdGxzLWNsaWVudC1jYScsIGRlc3Q9J3Rsc19jbGllbnRfY2EnLCBkZWZhdWx0PScnLAot
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdTcGVjaWZpZXMgYSBwZW0gZmlsZSB3aGljaCBj
b250YWlucyBhIHNldCBvZiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVu
YXRlZCBDQSBjZXJ0aWZpY2F0ZXMgd2hpY2ggYXJlIHVzZWQgdG8gJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICd2YWxpZGF0ZSBjZXJ0aWZpY2F0ZXMgcGFzc2VkIGZyb20gY2xpZW50cycp
KQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWJhc2ljLWF1dGgnLCBkZXN0PSd1c2VfYmFzaWNf
YXV0aCcsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVs
dD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdSZXF1aXJlcyBCYXNpYyBhdXRo
ZW50aWNhdGlvbi4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWJhc2ljLWF1dGgtY3JlZGVu
dGlhbCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nYmFzaWNfYXV0aF9jcmVkZW50aWFs
JywgZGVmYXVsdD0ndGVzdDp0ZXN0JywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdTcGVj
aWZpZXMgdGhlIGNyZWRlbnRpYWwgb2YgYmFzaWMgYXV0aGVudGljYXRpb24gJwotICAgICAgICAg
ICAgICAgICAgICAgICdieSB1c2VybmFtZTpwYXNzd29yZCBwYWlyIChlLmcuIHRlc3Q6dGVzdCku
JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWwnLCAnLS1sb2ctZmlsZScsICctLWxvZ19maWxl
JywgZGVzdD0nbG9nX2ZpbGUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhl
bHA9J0xvZyBmaWxlLicpCi0gICAgIyBDdXN0b20gbG9nIGxldmVsOgotICAgICMgLSBGSU5FOiBQ
cmludHMgc3RhdHVzIG9mIGVhY2ggZnJhbWUgcHJvY2Vzc2luZyBzdGVwCi0gICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy0tbG9nLWxldmVsJywgJy0tbG9nX2xldmVsJywgdHlwZT0nY2hvaWNlJywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZXN0PSdsb2dfbGV2ZWwnLCBkZWZhdWx0PSd3YXJuJywKLSAg
ICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZmluZScsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ2RlYnVnJywgJ2luZm8nLCAnd2FybmluZycsICd3YXJuJywgJ2Vycm9yJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3JpdGljYWwnXSwKLSAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSdMb2cgbGV2ZWwuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1k
ZWZsYXRlLWxvZy1sZXZlbCcsICctLWRlZmxhdGVfbG9nX2xldmVsJywKLSAgICAgICAgICAgICAg
ICAgICAgICB0eXBlPSdjaG9pY2UnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2RlZmxh
dGVfbG9nX2xldmVsJywgZGVmYXVsdD0nd2FybicsCi0gICAgICAgICAgICAgICAgICAgICAgY2hv
aWNlcz1bJ2RlYnVnJywgJ2luZm8nLCAnd2FybmluZycsICd3YXJuJywgJ2Vycm9yJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnY3JpdGljYWwnXSwKLSAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdMb2cgbGV2ZWwgZm9yIF9EZWZsYXRlciBhbmQgX0luZmxhdGVyLicpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy0tdGhyZWFkLW1vbml0b3ItaW50ZXJ2YWwtaW4tc2VjJywKLSAg
ICAgICAgICAgICAgICAgICAgICAnLS10aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMnLAot
ICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3RocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3Nl
YycsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0naW50JywgZGVmYXVsdD0tMSwKLSAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSgnSWYgcG9zaXRpdmUgaW50ZWdlciBpcyBzcGVjaWZpZWQs
IHJ1biBhIHRocmVhZCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbml0b3IgdG8g
c2hvdyB0aGUgc3RhdHVzIG9mIHNlcnZlciB0aHJlYWRzICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAncGVyaW9kaWNhbGx5IGluIHRoZSBzcGVjaWZpZWQgaW50ZXZhbCBpbiAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3NlY29uZC4gSWYgbm9uLXBvc2l0aXZlIGludGVnZXIg
aXMgc3BlY2lmaWVkLCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGUgdGhl
IHRocmVhZCBtb25pdG9yLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1tYXgnLCAn
LS1sb2dfbWF4JywgZGVzdD0nbG9nX21heCcsIHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdD1fREVGQVVMVF9MT0dfTUFYX0JZVEVTLAotICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J0xvZyBtYXhpbXVtIGJ5dGVzJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1s
b2ctY291bnQnLCAnLS1sb2dfY291bnQnLCBkZXN0PSdsb2dfY291bnQnLAotICAgICAgICAgICAg
ICAgICAgICAgIHR5cGU9J2ludCcsIGRlZmF1bHQ9X0RFRkFVTFRfTE9HX0JBQ0tVUF9DT1VOVCwK
LSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cgYmFja3VwIGNvdW50JykKLSAgICBwYXJz
ZXIuYWRkX29wdGlvbignLS1hbGxvdy1kcmFmdDc1JywgZGVzdD0nYWxsb3dfZHJhZnQ3NScsCi0g
ICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwK
LSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdPYnNvbGV0ZSBvcHRpb24uIElnbm9yZWQuJykK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1zdHJpY3QnLCBkZXN0PSdzdHJpY3QnLCBhY3Rpb249
J3N0b3JlX3RydWUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9
J09ic29sZXRlIG9wdGlvbi4gSWdub3JlZC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcScs
ICctLXF1ZXVlJywgZGVzdD0ncmVxdWVzdF9xdWV1ZV9zaXplJywgdHlwZT0naW50JywKLSAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PV9ERUZBVUxUX1JFUVVFU1RfUVVFVUVfU0laRSwKLSAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdyZXF1ZXN0IHF1ZXVlIHNpemUnKQotCi0gICAgcmV0
dXJuIHBhcnNlcgotCi0KLWNsYXNzIFRocmVhZE1vbml0b3IodGhyZWFkaW5nLlRocmVhZCk6Ci0g
ICAgZGFlbW9uID0gVHJ1ZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGludGVydmFsX2luX3Nl
Yyk6Ci0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZiwgbmFtZT0nVGhyZWFk
TW9uaXRvcicpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2Vy
KHNlbGYpCi0KLSAgICAgICAgc2VsZi5faW50ZXJ2YWxfaW5fc2VjID0gaW50ZXJ2YWxfaW5fc2Vj
Ci0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAg
dGhyZWFkX25hbWVfbGlzdCA9IFtdCi0gICAgICAgICAgICBmb3IgdGhyZWFkIGluIHRocmVhZGlu
Zy5lbnVtZXJhdGUoKToKLSAgICAgICAgICAgICAgICB0aHJlYWRfbmFtZV9saXN0LmFwcGVuZCh0
aHJlYWQubmFtZSkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKAotICAgICAgICAgICAg
ICAgICIlZCBhY3RpdmUgdGhyZWFkczogJXMiLAotICAgICAgICAgICAgICAgIHRocmVhZGluZy5h
Y3RpdmVfY291bnQoKSwKLSAgICAgICAgICAgICAgICAnLCAnLmpvaW4odGhyZWFkX25hbWVfbGlz
dCkpCi0gICAgICAgICAgICB0aW1lLnNsZWVwKHNlbGYuX2ludGVydmFsX2luX3NlYykKLQotCi1k
ZWYgX3BhcnNlX2FyZ3NfYW5kX2NvbmZpZyhhcmdzKToKLSAgICBwYXJzZXIgPSBfYnVpbGRfb3B0
aW9uX3BhcnNlcigpCi0KLSAgICAjIEZpcnN0LCBwYXJzZSBvcHRpb25zIHdpdGhvdXQgY29uZmln
dXJhdGlvbiBmaWxlLgotICAgIHRlbXBvcmFyeV9vcHRpb25zLCB0ZW1wb3JhcnlfYXJncyA9IHBh
cnNlci5wYXJzZV9hcmdzKGFyZ3M9YXJncykKLSAgICBpZiB0ZW1wb3JhcnlfYXJnczoKLSAgICAg
ICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICdVbnJlY29nbml6ZWQgcG9zaXRpb25h
bCBhcmd1bWVudHM6ICVyJywgdGVtcG9yYXJ5X2FyZ3MpCi0gICAgICAgIHN5cy5leGl0KDEpCi0K
LSAgICBpZiB0ZW1wb3Jhcnlfb3B0aW9ucy5jb25maWdfZmlsZToKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgY29uZmlnX2ZwID0gb3Blbih0ZW1wb3Jhcnlfb3B0aW9ucy5jb25maWdfZmlsZSwg
J3InKQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgotICAgICAgICAgICAgbG9nZ2luZy5j
cml0aWNhbCgKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIG9wZW4gY29uZmlndXJhdGlvbiBm
aWxlICVyOiAlcicsCi0gICAgICAgICAgICAgICAgdGVtcG9yYXJ5X29wdGlvbnMuY29uZmlnX2Zp
bGUsCi0gICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAg
ICAgY29uZmlnX3BhcnNlciA9IGNvbmZpZ3BhcnNlci5TYWZlQ29uZmlnUGFyc2VyKCkKLSAgICAg
ICAgY29uZmlnX3BhcnNlci5yZWFkZnAoY29uZmlnX2ZwKQotICAgICAgICBjb25maWdfZnAuY2xv
c2UoKQotCi0gICAgICAgIGFyZ3NfZnJvbV9jb25maWcgPSBbXQotICAgICAgICBmb3IgbmFtZSwg
dmFsdWUgaW4gY29uZmlnX3BhcnNlci5pdGVtcygncHl3ZWJzb2NrZXQnKToKLSAgICAgICAgICAg
IGFyZ3NfZnJvbV9jb25maWcuYXBwZW5kKCctLScgKyBuYW1lKQotICAgICAgICAgICAgYXJnc19m
cm9tX2NvbmZpZy5hcHBlbmQodmFsdWUpCi0gICAgICAgIGlmIGFyZ3MgaXMgTm9uZToKLSAgICAg
ICAgICAgIGFyZ3MgPSBhcmdzX2Zyb21fY29uZmlnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBhcmdzID0gYXJnc19mcm9tX2NvbmZpZyArIGFyZ3MKLSAgICAgICAgcmV0dXJuIHBhcnNlci5w
YXJzZV9hcmdzKGFyZ3M9YXJncykKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gdGVtcG9yYXJ5
X29wdGlvbnMsIHRlbXBvcmFyeV9hcmdzCi0KLQotZGVmIF9tYWluKGFyZ3M9Tm9uZSk6Ci0gICAg
IiIiWW91IGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24gZnJvbSB5b3VyIG93biBwcm9ncmFtLCBidXQg
cGxlYXNlIG5vdGUgdGhhdAotICAgIHRoaXMgZnVuY3Rpb24gaGFzIHNvbWUgc2lkZS1lZmZlY3Rz
IHRoYXQgbWlnaHQgYWZmZWN0IHlvdXIgcHJvZ3JhbS4gRm9yCi0gICAgZXhhbXBsZSwgdXRpbC53
cmFwX3BvcGVuM19mb3Jfd2luIHVzZSBpbiB0aGlzIG1ldGhvZCByZXBsYWNlcyBpbXBsZW1lbnRh
dGlvbgotICAgIG9mIG9zLnBvcGVuMy4KLSAgICAiIiIKLQotICAgIG9wdGlvbnMsIGFyZ3MgPSBf
cGFyc2VfYXJnc19hbmRfY29uZmlnKGFyZ3M9YXJncykKLQotICAgIG9zLmNoZGlyKG9wdGlvbnMu
ZG9jdW1lbnRfcm9vdCkKLQotICAgIF9jb25maWd1cmVfbG9nZ2luZyhvcHRpb25zKQotCi0gICAg
aWYgb3B0aW9ucy5hbGxvd19kcmFmdDc1OgotICAgICAgICBsb2dnaW5nLndhcm5pbmcoJy0tYWxs
b3dfZHJhZnQ3NSBvcHRpb24gaXMgb2Jzb2xldGUuJykKLQotICAgIGlmIG9wdGlvbnMuc3RyaWN0
OgotICAgICAgICBsb2dnaW5nLndhcm5pbmcoJy0tc3RyaWN0IG9wdGlvbiBpcyBvYnNvbGV0ZS4n
KQotCi0gICAgIyBUT0RPKHR5b3NoaW5vKTogQ2xlYW4gdXAgaW5pdGlhbGl6YXRpb24gb2YgQ0dJ
IHJlbGF0ZWQgdmFsdWVzLiBNb3ZlIHNvbWUKLSAgICAjIG9mIGNvZGUgaGVyZSB0byBXZWJTb2Nr
ZXRSZXF1ZXN0SGFuZGxlciBjbGFzcyBpZiBpdCdzIGJldHRlci4KLSAgICBvcHRpb25zLmNnaV9k
aXJlY3RvcmllcyA9IFtdCi0gICAgb3B0aW9ucy5pc19leGVjdXRhYmxlX21ldGhvZCA9IE5vbmUK
LSAgICBpZiBvcHRpb25zLmNnaV9wYXRoczoKLSAgICAgICAgb3B0aW9ucy5jZ2lfZGlyZWN0b3Jp
ZXMgPSBvcHRpb25zLmNnaV9wYXRocy5zcGxpdCgnLCcpCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9y
bSBpbiAoJ2N5Z3dpbicsICd3aW4zMicpOgotICAgICAgICAgICAgY3lnd2luX3BhdGggPSBOb25l
Ci0gICAgICAgICAgICAjIEZvciBXaW4zMiBQeXRob24sIGl0IGlzIGV4cGVjdGVkIHRoYXQgQ1lH
V0lOX1BBVEgKLSAgICAgICAgICAgICMgaXMgc2V0IHRvIGEgZGlyZWN0b3J5IG9mIGN5Z3dpbiBi
aW5hcmllcy4KLSAgICAgICAgICAgICMgRm9yIGV4YW1wbGUsIHdlYnNvY2tldF9zZXJ2ZXIucHkg
aW4gQ2hyb21pdW0gc2V0cyBDWUdXSU5fUEFUSCB0bwotICAgICAgICAgICAgIyBmdWxsIHBhdGgg
b2YgdGhpcmRfcGFydHkvY3lnd2luL2Jpbi4KLSAgICAgICAgICAgIGlmICdDWUdXSU5fUEFUSCcg
aW4gb3MuZW52aXJvbjoKLSAgICAgICAgICAgICAgICBjeWd3aW5fcGF0aCA9IG9zLmVudmlyb25b
J0NZR1dJTl9QQVRIJ10KLSAgICAgICAgICAgIHV0aWwud3JhcF9wb3BlbjNfZm9yX3dpbihjeWd3
aW5fcGF0aCkKLQotICAgICAgICAgICAgZGVmIF9fY2hlY2tfc2NyaXB0KHNjcmlwdHBhdGgpOgot
ICAgICAgICAgICAgICAgIHJldHVybiB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKHNjcmlwdHBhdGgs
IGN5Z3dpbl9wYXRoKQotCi0gICAgICAgICAgICBvcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9k
ID0gX19jaGVja19zY3JpcHQKLQotICAgIGlmIG9wdGlvbnMudXNlX3RsczoKLSAgICAgICAgaWYg
b3B0aW9ucy50bHNfbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICBpZiBfaW1wb3J0X3NzbCgp
OgotICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9IF9UTFNfQllfU1RBTkRBUkRf
TU9EVUxFCi0gICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNpbmcgc3NsIG1vZHVsZScp
Ci0gICAgICAgICAgICBlbGlmIF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgICAgICAgICAgICAg
b3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9QWU9QRU5TU0wKLSAgICAgICAgICAgICAgICBs
b2dnaW5nLmRlYnVnKCdVc2luZyBweU9wZW5TU0wgbW9kdWxlJykKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICAgICAgICAg
ICAgICdUTFMgc3VwcG9ydCByZXF1aXJlcyBzc2wgb3IgcHlPcGVuU1NMIG1vZHVsZS4nKQotICAg
ICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9kdWxl
ID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAgICAgaWYgbm90IF9pbXBvcnRf
c3NsKCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnc3NsIG1vZHVsZSBpcyBu
b3QgYXZhaWxhYmxlJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgICAgICBlbGlm
IG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAgICAgICAgICAgIGlm
IG5vdCBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGlj
YWwoJ3B5T3BlblNTTCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScpCi0gICAgICAgICAgICAgICAg
c3lzLmV4aXQoMSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwo
J0ludmFsaWQgLS10bHMtbW9kdWxlIG9wdGlvbjogJXInLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0g
ICAgICAgIGlmIG5vdCBvcHRpb25zLnByaXZhdGVfa2V5IG9yIG5vdCBvcHRpb25zLmNlcnRpZmlj
YXRlOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICAgICAgICAg
J1RvIHVzZSBUTFMsIHNwZWNpZnkgcHJpdmF0ZV9rZXkgYW5kIGNlcnRpZmljYXRlLicpCi0gICAg
ICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIChvcHRpb25zLnRsc19jbGllbnRfY2Vy
dF9vcHRpb25hbCBhbmQKLSAgICAgICAgICAgIG5vdCBvcHRpb25zLnRsc19jbGllbnRfYXV0aCk6
Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdDbGllbnQgYXV0aGVudGljYXRpb24gbXVz
dCBiZSBlbmFibGVkIHRvICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWNpZnkg
dGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAg
ZWxzZToKLSAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVXNlIC0tdGxzLW1vZHVsZSBvcHRpb24gb25seSB0b2dl
dGhlciB3aXRoICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tdXNlLXRscyBvcHRp
b24uJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAgICAgaWYgb3B0aW9ucy50bHNf
Y2xpZW50X2F1dGg6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdUTFMgbXVzdCBiZSBl
bmFibGVkIGZvciBjbGllbnQgYXV0aGVudGljYXRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0
KDEpCi0KLSAgICAgICAgaWYgb3B0aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6Ci0gICAg
ICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdUTFMgbXVzdCBiZSBlbmFibGVkIGZvciBjbGllbnQg
YXV0aGVudGljYXRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBpZiBub3Qg
b3B0aW9ucy5zY2FuX2RpcjoKLSAgICAgICAgb3B0aW9ucy5zY2FuX2RpciA9IG9wdGlvbnMud2Vi
c29ja19oYW5kbGVycwotCi0gICAgaWYgb3B0aW9ucy51c2VfYmFzaWNfYXV0aDoKLSAgICAgICAg
b3B0aW9ucy5iYXNpY19hdXRoX2NyZWRlbnRpYWwgPSAnQmFzaWMgJyArIGJhc2U2NC5iNjRlbmNv
ZGUoCi0gICAgICAgICAgICBvcHRpb25zLmJhc2ljX2F1dGhfY3JlZGVudGlhbCkKLQotICAgIHRy
eToKLSAgICAgICAgaWYgb3B0aW9ucy50aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMgPiAw
OgotICAgICAgICAgICAgIyBSdW4gYSB0aHJlYWQgbW9uaXRvciB0byBzaG93IHRoZSBzdGF0dXMg
b2Ygc2VydmVyIHRocmVhZHMgZm9yCi0gICAgICAgICAgICAjIGRlYnVnZ2luZy4KLSAgICAgICAg
ICAgIFRocmVhZE1vbml0b3Iob3B0aW9ucy50aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMp
LnN0YXJ0KCkKLQotICAgICAgICBzZXJ2ZXIgPSBXZWJTb2NrZXRTZXJ2ZXIob3B0aW9ucykKLSAg
ICAgICAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIoKQotICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK
LSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnbW9kX3B5d2Vic29ja2V0OiAlcycgJSBlKQotICAg
ICAgICBsb2dnaW5nLmNyaXRpY2FsKCdtb2RfcHl3ZWJzb2NrZXQ6ICVzJyAlIHV0aWwuZ2V0X3N0
YWNrX3RyYWNlKCkpCi0gICAgICAgIHN5cy5leGl0KDEpCi0KLQotaWYgX19uYW1lX18gPT0gJ19f
bWFpbl9fJzoKLSAgICBfbWFpbihzeXMuYXJndlsxOl0pCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9zdHJlYW0ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3ZDMx
MzZhYzliNDJmNWRmNTY1MmQ5MWYzYzg4NmY4NWVjYmYxZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xl
IEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIi
VGhpcyBmaWxlIGV4cG9ydHMgcHVibGljIHN5bWJvbHMuIiIiCi0KLQotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNl
cHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZy
YW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IElu
dmFsaWRVVEY4RXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1w
b3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1faGl4aWU3NSBpbXBvcnQgU3RyZWFtSGl4aWU3NQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9oeWJpIGltcG9ydCBGcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJp
IGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQg
U3RyZWFtT3B0aW9ucwotCi0jIFRoZXNlIG1ldGhvZHMgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQg
YnkgV2ViU29ja2V0IGNsaWVudCBkZXZlbG9wZXJzIHRvIGhhdmUKLSMgdGhlaXIgaW1wbGVtZW50
YXRpb25zIHJlY2VpdmUgYnJva2VuIGRhdGEgaW4gdGVzdHMuCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9zZV9mcmFtZQotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9sZW5ndGhfaGVhZGVyCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9waW5nX2ZyYW1lCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9wb25nX2ZyYW1lCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9iaW5hcnlfZnJhbWUK
LWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX3RleHRfZnJh
bWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3Np
bmdfaGFuZHNoYWtlX2JvZHkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzgyODRjZDA3NDRjZGUzODRjNTQyYTk2
ZGNjMzBhZWY1YWRlODc0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0
MjQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiV2ViU29ja2V0IHV0aWxpdGllcy4i
IiIKLQotCi1pbXBvcnQgYXJyYXkKLWltcG9ydCBlcnJubwotCi0jIEltcG9ydCBoYXNoIGNsYXNz
ZXMgZnJvbSBhIG1vZHVsZSBhdmFpbGFibGUgYW5kIHJlY29tbWVuZGVkIGZvciBlYWNoIFB5dGhv
bgotIyB2ZXJzaW9uIGFuZCByZS1leHBvcnQgdGhvc2Ugc3ltYm9sLiBVc2Ugc2hhIGFuZCBtZDUg
bW9kdWxlIGluIFB5dGhvbiAyLjQsIGFuZAotIyBoYXNobGliIG1vZHVsZSBpbiBQeXRob24gMi42
LgotdHJ5OgotICAgIGltcG9ydCBoYXNobGliCi0gICAgbWQ1X2hhc2ggPSBoYXNobGliLm1kNQot
ICAgIHNoYTFfaGFzaCA9IGhhc2hsaWIuc2hhMQotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIGlt
cG9ydCBtZDUKLSAgICBpbXBvcnQgc2hhCi0gICAgbWQ1X2hhc2ggPSBtZDUubWQ1Ci0gICAgc2hh
MV9oYXNoID0gc2hhLnNoYQotCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgU3RyaW5nSU8KLWltcG9y
dCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHRy
YWNlYmFjawotaW1wb3J0IHpsaWIKLQotdHJ5OgotICAgIGZyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCBmYXN0X21hc2tpbmcKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBwYXNzCi0KLQotZGVm
IGdldF9zdGFja190cmFjZSgpOgotICAgICIiIkdldCB0aGUgY3VycmVudCBzdGFjayB0cmFjZSBh
cyBzdHJpbmcuCi0KLSAgICBUaGlzIGlzIG5lZWRlZCB0byBzdXBwb3J0IFB5dGhvbiAyLjMuCi0g
ICAgVE9ETzogUmVtb3ZlIHRoaXMgd2hlbiB3ZSBvbmx5IHN1cHBvcnQgUHl0aG9uIDIuNCBhbmQg
YWJvdmUuCi0gICAgICAgICAgVXNlIHRyYWNlYmFjay5mb3JtYXRfZXhjIGluc3RlYWQuCi0gICAg
IiIiCi0gICAgb3V0ID0gU3RyaW5nSU8oKQotICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1v
dXQpCi0gICAgcmV0dXJuIG91dC5nZXR2YWx1ZSgpCi0KLQotZGVmIHByZXBlbmRfbWVzc2FnZV90
b19leGNlcHRpb24obWVzc2FnZSwgZXhjKToKLSAgICAiIiJQcmVwZW5kIG1lc3NhZ2UgdG8gdGhl
IGV4Y2VwdGlvbi4iIiIKLSAgICBleGMuYXJncyA9IChtZXNzYWdlICsgc3RyKGV4YyksKQotICAg
IHJldHVybgotCi0KLWRlZiBfX3RyYW5zbGF0ZV9pbnRlcnAoaW50ZXJwLCBjeWd3aW5fcGF0aCk6
Ci0gICAgIiIiVHJhbnNsYXRlIGludGVycCBwcm9ncmFtIHBhdGggZm9yIFdpbjMyIHB5dGhvbiB0
byBydW4gY3lnd2luIHByb2dyYW0KLSAgICAoZS5nLiBwZXJsKS4gIE5vdGUgdGhhdCBpdCBkb2Vz
bid0IHN1cHBvcnQgcGF0aCB0aGF0IGNvbnRhaW5zIHNwYWNlLAotICAgIHdoaWNoIGlzIHR5cGlj
YWxseSB0cnVlIGZvciBVbml4LCB3aGVyZSAjIS1zY3JpcHQgaXMgd3JpdHRlbi4KLSAgICBGb3Ig
V2luMzIgcHl0aG9uLCBjeWd3aW5fcGF0aCBpcyBhIGRpcmVjdG9yeSBvZiBjeWd3aW4gYmluYXJp
ZXMuCi0KLSAgICBBcmdzOgotICAgICAgaW50ZXJwOiBpbnRlcnAgY29tbWFuZCBsaW5lCi0gICAg
ICBjeWd3aW5fcGF0aDogZGlyZWN0b3J5IG5hbWUgb2YgY3lnd2luIGJpbmFyeSwgb3IgTm9uZQot
ICAgIFJldHVybnM6Ci0gICAgICB0cmFuc2xhdGVkIGludGVycCBjb21tYW5kIGxpbmUuCi0gICAg
IiIiCi0gICAgaWYgbm90IGN5Z3dpbl9wYXRoOgotICAgICAgICByZXR1cm4gaW50ZXJwCi0gICAg
bSA9IHJlLm1hdGNoKCdeW14gXSovKFteIF0rKSggLiopPycsIGludGVycCkKLSAgICBpZiBtOgot
ICAgICAgICBjbWQgPSBvcy5wYXRoLmpvaW4oY3lnd2luX3BhdGgsIG0uZ3JvdXAoMSkpCi0gICAg
ICAgIHJldHVybiBjbWQgKyBtLmdyb3VwKDIpCi0gICAgcmV0dXJuIGludGVycAotCi0KLWRlZiBn
ZXRfc2NyaXB0X2ludGVycChzY3JpcHRfcGF0aCwgY3lnd2luX3BhdGg9Tm9uZSk6Ci0gICAgciIi
IkdldCAjIS1pbnRlcnByZXRlciBjb21tYW5kIGxpbmUgZnJvbSB0aGUgc2NyaXB0LgotCi0gICAg
SXQgYWxzbyBmaXhlcyBjb21tYW5kIHBhdGguICBXaGVuIEN5Z3dpbiBQeXRob24gaXMgdXNlZCwg
ZS5nLiBpbiBXZWJLaXQsCi0gICAgaXQgY291bGQgcnVuICIvdXNyL2Jpbi9wZXJsIC13VCBoZWxs
by5wbCIuCi0gICAgV2hlbiBXaW4zMiBQeXRob24gaXMgdXNlZCwgZS5nLiBpbiBDaHJvbWl1bSwg
aXQgY291bGRuJ3QuICBTbywgZml4Ci0gICAgIi91c3IvYmluL3BlcmwiIHRvICI8Y3lnd2luX3Bh
dGg+XHBlcmwuZXhlIi4KLQotICAgIEFyZ3M6Ci0gICAgICBzY3JpcHRfcGF0aDogcGF0aG5hbWUg
b2YgdGhlIHNjcmlwdAotICAgICAgY3lnd2luX3BhdGg6IGRpcmVjdG9yeSBuYW1lIG9mIGN5Z3dp
biBiaW5hcnksIG9yIE5vbmUKLSAgICBSZXR1cm5zOgotICAgICAgIyEtaW50ZXJwcmV0ZXIgY29t
bWFuZCBsaW5lLCBvciBOb25lIGlmIGl0IGlzIG5vdCAjIS1zY3JpcHQuCi0gICAgIiIiCi0gICAg
ZnAgPSBvcGVuKHNjcmlwdF9wYXRoKQotICAgIGxpbmUgPSBmcC5yZWFkbGluZSgpCi0gICAgZnAu
Y2xvc2UoKQotICAgIG0gPSByZS5tYXRjaCgnXiMhKC4qKScsIGxpbmUpCi0gICAgaWYgbToKLSAg
ICAgICAgcmV0dXJuIF9fdHJhbnNsYXRlX2ludGVycChtLmdyb3VwKDEpLCBjeWd3aW5fcGF0aCkK
LSAgICByZXR1cm4gTm9uZQotCi0KLWRlZiB3cmFwX3BvcGVuM19mb3Jfd2luKGN5Z3dpbl9wYXRo
KToKLSAgICAiIiJXcmFwIHBvcGVuMyB0byBzdXBwb3J0ICMhLXNjcmlwdCBvbiBXaW5kb3dzLgot
Ci0gICAgQXJnczoKLSAgICAgIGN5Z3dpbl9wYXRoOiAgcGF0aCBmb3IgY3lnd2luIGJpbmFyeSBp
ZiBjb21tYW5kIHBhdGggaXMgbmVlZGVkIHRvIGJlCi0gICAgICAgICAgICAgICAgICAgIHRyYW5z
bGF0ZWQuICBOb25lIGlmIG5vIHRyYW5zbGF0aW9uIHJlcXVpcmVkLgotICAgICIiIgotICAgIF9f
b3JpZ19wb3BlbjMgPSBvcy5wb3BlbjMKLQotICAgIGRlZiBfX3dyYXBfcG9wZW4zKGNtZCwgbW9k
ZT0ndCcsIGJ1ZnNpemU9LTEpOgotICAgICAgICBjbWRsaW5lID0gY21kLnNwbGl0KCcgJykKLSAg
ICAgICAgaW50ZXJwID0gZ2V0X3NjcmlwdF9pbnRlcnAoY21kbGluZVswXSwgY3lnd2luX3BhdGgp
Ci0gICAgICAgIGlmIGludGVycDoKLSAgICAgICAgICAgIGNtZCA9IGludGVycCArICcgJyArIGNt
ZAotICAgICAgICByZXR1cm4gX19vcmlnX3BvcGVuMyhjbWQsIG1vZGUsIGJ1ZnNpemUpCi0KLSAg
ICBvcy5wb3BlbjMgPSBfX3dyYXBfcG9wZW4zCi0KLQotZGVmIGhleGlmeShzKToKLSAgICByZXR1
cm4gJyAnLmpvaW4obWFwKGxhbWJkYSB4OiAnJTAyeCcgJSBvcmQoeCksIHMpKQotCi0KLWRlZiBn
ZXRfY2xhc3NfbG9nZ2VyKG8pOgotICAgICIiIlJldHVybiB0aGUgbG9nZ2luZyBjbGFzcyBpbmZv
cm1hdGlvbi4iIiIKLSAgICByZXR1cm4gbG9nZ2luZy5nZXRMb2dnZXIoCi0gICAgICAgICclcy4l
cycgJSAoby5fX2NsYXNzX18uX19tb2R1bGVfXywgby5fX2NsYXNzX18uX19uYW1lX18pKQotCi0K
LWNsYXNzIE5vb3BNYXNrZXIob2JqZWN0KToKLSAgICAiIiJBIE5vT3AgbWFza2luZyBvYmplY3Qu
Ci0KLSAgICBUaGlzIGhhcyB0aGUgc2FtZSBpbnRlcmZhY2UgYXMgUmVwZWF0ZWRYb3JNYXNrZXIg
YnV0IGp1c3QgcmV0dXJucwotICAgIHRoZSBzdHJpbmcgcGFzc2VkIGluIHdpdGhvdXQgbWFraW5n
IGFueSBjaGFuZ2UuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAg
ICIiIk5vT3AuIiIiCi0gICAgICAgIHBhc3MKLQotICAgIGRlZiBtYXNrKHNlbGYsIHMpOgotICAg
ICAgICAiIiJOb09wLiIiIgotICAgICAgICByZXR1cm4gcwotCi0KLWNsYXNzIFJlcGVhdGVkWG9y
TWFza2VyKG9iamVjdCk6Ci0KLSAgICAiIiJBIG1hc2tpbmcgb2JqZWN0IHRoYXQgYXBwbGllcyBY
T1Igb24gdGhlIHN0cmluZy4KLQotICAgIEFwcGxpZXMgWE9SIG9uIHRoZSBzdHJpbmcgZ2l2ZW4g
dG8gbWFzayBtZXRob2Qgd2l0aCB0aGUgbWFza2luZyBieXRlcwotICAgIGdpdmVuIHRvIHRoZSBj
b25zdHJ1Y3RvciByZXBlYXRlZGx5LiBUaGlzIG9iamVjdCByZW1lbWJlcnMgdGhlIHBvc2l0aW9u
Ci0gICAgaW4gdGhlIG1hc2tpbmcgYnl0ZXMgdGhlIGxhc3QgbWFzayBtZXRob2QgY2FsbCBlbmRl
ZCBhbmQgcmVzdW1lcyBmcm9tCi0gICAgdGhhdCBwb2ludCBvbiB0aGUgbmV4dCBtYXNrIG1ldGhv
ZCBjYWxsLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1hc2tpbmdfa2V5KToK
LSAgICAgICAgc2VsZi5fbWFza2luZ19rZXkgPSBtYXNraW5nX2tleQotICAgICAgICBzZWxmLl9t
YXNraW5nX2tleV9pbmRleCA9IDAKLQotICAgIGRlZiBfbWFza191c2luZ19zd2lnKHNlbGYsIHMp
OgotICAgICAgICAiIiJQZXJmb3JtIHRoZSBtYXNrIHZpYSBTV0lHLiIiIgotICAgICAgICBtYXNr
ZWRfZGF0YSA9IGZhc3RfbWFza2luZy5tYXNrKAotICAgICAgICAgICAgICAgIHMsIHNlbGYuX21h
c2tpbmdfa2V5LCBzZWxmLl9tYXNraW5nX2tleV9pbmRleCkKLSAgICAgICAgc2VsZi5fbWFza2lu
Z19rZXlfaW5kZXggPSAoCi0gICAgICAgICAgICAgICAgKHNlbGYuX21hc2tpbmdfa2V5X2luZGV4
ICsgbGVuKHMpKSAlIGxlbihzZWxmLl9tYXNraW5nX2tleSkpCi0gICAgICAgIHJldHVybiBtYXNr
ZWRfZGF0YQotCi0gICAgZGVmIF9tYXNrX3VzaW5nX2FycmF5KHNlbGYsIHMpOgotICAgICAgICAi
IiJQZXJmb3JtIHRoZSBtYXNrIHZpYSBweXRob24uIiIiCi0gICAgICAgIHJlc3VsdCA9IGFycmF5
LmFycmF5KCdCJykKLSAgICAgICAgcmVzdWx0LmZyb21zdHJpbmcocykKLQotICAgICAgICAjIFVz
ZSB0ZW1wb3JhcnkgbG9jYWwgdmFyaWFibGVzIHRvIGVsaW1pbmF0ZSB0aGUgY29zdCB0byBhY2Nl
c3MKLSAgICAgICAgIyBhdHRyaWJ1dGVzCi0gICAgICAgIG1hc2tpbmdfa2V5ID0gbWFwKG9yZCwg
c2VsZi5fbWFza2luZ19rZXkpCi0gICAgICAgIG1hc2tpbmdfa2V5X3NpemUgPSBsZW4obWFza2lu
Z19rZXkpCi0gICAgICAgIG1hc2tpbmdfa2V5X2luZGV4ID0gc2VsZi5fbWFza2luZ19rZXlfaW5k
ZXgKLQotICAgICAgICBmb3IgaSBpbiB4cmFuZ2UobGVuKHJlc3VsdCkpOgotICAgICAgICAgICAg
cmVzdWx0W2ldIF49IG1hc2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XQotICAgICAgICAgICAg
bWFza2luZ19rZXlfaW5kZXggPSAobWFza2luZ19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdfa2V5
X3NpemUKLQotICAgICAgICBzZWxmLl9tYXNraW5nX2tleV9pbmRleCA9IG1hc2tpbmdfa2V5X2lu
ZGV4Ci0KLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b3N0cmluZygpCi0KLSAgICBpZiAnZmFzdF9t
YXNraW5nJyBpbiBnbG9iYWxzKCk6Ci0gICAgICAgIG1hc2sgPSBfbWFza191c2luZ19zd2lnCi0g
ICAgZWxzZToKLSAgICAgICAgbWFzayA9IF9tYXNrX3VzaW5nX2FycmF5Ci0KLQotIyBCeSBtYWtp
bmcgd2JpdHMgb3B0aW9uIG5lZ2F0aXZlLCB3ZSBjYW4gc3VwcHJlc3MgQ01GL0ZMRyAoMiBvY3Rl
dCkgYW5kCi0jIEFETEVSMzIgKDQgb2N0ZXQpIGZpZWxkcyBvZiB6bGliIHNvIHRoYXQgd2UgY2Fu
IHVzZSB6bGliIG1vZHVsZSBqdXN0IGFzCi0jIGRlZmxhdGUgbGlicmFyeS4gRElDVElEIHdvbid0
IGJlIGFkZGVkIGFzIGZhciBhcyB3ZSBkb24ndCBzZXQgZGljdGlvbmFyeS4KLSMgTFo3NyB3aW5k
b3cgb2YgMzJLIHdpbGwgYmUgdXNlZCBmb3IgYm90aCBjb21wcmVzc2lvbiBhbmQgZGVjb21wcmVz
c2lvbi4KLSMgRm9yIGRlY29tcHJlc3Npb24sIHdlIGNhbiBqdXN0IHVzZSAzMksgdG8gY292ZXIg
YW55IHdpbmRvd3Mgc2l6ZS4gRm9yCi0jIGNvbXByZXNzaW9uLCB3ZSB1c2UgMzJLIHNvIHJlY2Vp
dmVycyBtdXN0IHVzZSAzMksuCi0jCi0jIENvbXByZXNzaW9uIGxldmVsIGlzIFpfREVGQVVMVF9D
T01QUkVTU0lPTi4gV2UgZG9uJ3QgaGF2ZSB0byBtYXRjaCBsZXZlbAotIyB0byBkZWNvZGUuCi0j
Ci0jIFNlZSB6Y29uZi5oLCBkZWZsYXRlLmNjLCBpbmZsYXRlLmNjIG9mIHpsaWIgbGlicmFyeSwg
YW5kIHpsaWJtb2R1bGUuYyBvZgotIyBQeXRob24uIFNlZSBhbHNvIFJGQzE5NTAgKFpMSUIgMy4z
KS4KLQotCi1jbGFzcyBfRGVmbGF0ZXIob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCB3aW5kb3dfYml0cyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IGdldF9jbGFzc19sb2dnZXIo
c2VsZikKLQotICAgICAgICBzZWxmLl9jb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAg
ICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXdpbmRv
d19iaXRzKQotCi0gICAgZGVmIGNvbXByZXNzKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgY29tcHJl
c3NlZF9ieXRlcyA9IHNlbGYuX2NvbXByZXNzLmNvbXByZXNzKGJ5dGVzKQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIGlucHV0ICVyJywgYnl0ZXMpCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgcmVzdWx0ICVyJywgY29tcHJlc3NlZF9ieXRlcykKLSAg
ICAgICAgcmV0dXJuIGNvbXByZXNzZWRfYnl0ZXMKLQotICAgIGRlZiBjb21wcmVzc19hbmRfZmx1
c2goc2VsZiwgYnl0ZXMpOgotICAgICAgICBjb21wcmVzc2VkX2J5dGVzID0gc2VsZi5fY29tcHJl
c3MuY29tcHJlc3MoYnl0ZXMpCi0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgKz0gc2VsZi5fY29t
cHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnQ29tcHJlc3MgaW5wdXQgJXInLCBieXRlcykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdDb21wcmVzcyByZXN1bHQgJXInLCBjb21wcmVzc2VkX2J5dGVzKQotICAgICAgICByZXR1cm4g
Y29tcHJlc3NlZF9ieXRlcwotCi0gICAgZGVmIGNvbXByZXNzX2FuZF9maW5pc2goc2VsZiwgYnl0
ZXMpOgotICAgICAgICBjb21wcmVzc2VkX2J5dGVzID0gc2VsZi5fY29tcHJlc3MuY29tcHJlc3Mo
Ynl0ZXMpCi0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgKz0gc2VsZi5fY29tcHJlc3MuZmx1c2go
emxpYi5aX0ZJTklTSCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyBpbnB1
dCAlcicsIGJ5dGVzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIHJlc3Vs
dCAlcicsIGNvbXByZXNzZWRfYnl0ZXMpCi0gICAgICAgIHJldHVybiBjb21wcmVzc2VkX2J5dGVz
Ci0KLQotY2xhc3MgX0luZmxhdGVyKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
d2luZG93X2JpdHMpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSBnZXRfY2xhc3NfbG9nZ2VyKHNl
bGYpCi0gICAgICAgIHNlbGYuX3dpbmRvd19iaXRzID0gd2luZG93X2JpdHMKLQotICAgICAgICBz
ZWxmLl91bmNvbnN1bWVkID0gJycKLQotICAgICAgICBzZWxmLnJlc2V0KCkKLQotICAgIGRlZiBk
ZWNvbXByZXNzKHNlbGYsIHNpemUpOgotICAgICAgICBpZiBub3QgKHNpemUgPT0gLTEgb3Igc2l6
ZSA+IDApOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdzaXplIG11c3QgYmUgLTEgb3Ig
cG9zaXRpdmUnKQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIHdoaWxlIFRydWU6Ci0g
ICAgICAgICAgICBpZiBzaXplID09IC0xOgotICAgICAgICAgICAgICAgIGRhdGEgKz0gc2VsZi5f
ZGVjb21wcmVzcy5kZWNvbXByZXNzKHNlbGYuX3VuY29uc3VtZWQpCi0gICAgICAgICAgICAgICAg
IyBTZWUgUHl0aG9uIGJ1ZyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTIwNTAgdG8KLSAg
ICAgICAgICAgICAgICAjIHVuZGVyc3RhbmQgd2h5IHRoZSBzYW1lIGNvZGUgY2Fubm90IGJlIHVz
ZWQgZm9yIHVwZGF0aW5nCi0gICAgICAgICAgICAgICAgIyBzZWxmLl91bmNvbnN1bWVkIGZvciBo
ZXJlIGFuZCBlbHNlIGJsb2NrLgotICAgICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSAn
JwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBkYXRhICs9IHNlbGYuX2RlY29t
cHJlc3MuZGVjb21wcmVzcygKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCwg
c2l6ZSAtIGxlbihkYXRhKSkKLSAgICAgICAgICAgICAgICBzZWxmLl91bmNvbnN1bWVkID0gc2Vs
Zi5fZGVjb21wcmVzcy51bmNvbnN1bWVkX3RhaWwKLSAgICAgICAgICAgIGlmIHNlbGYuX2RlY29t
cHJlc3MudW51c2VkX2RhdGE6Ci0gICAgICAgICAgICAgICAgIyBFbmNvdW50ZXJlZCBhIGxhc3Qg
YmxvY2sgKGkuZS4gYSBibG9jayB3aXRoIEJGSU5BTCA9IDEpIGFuZAotICAgICAgICAgICAgICAg
ICMgZm91bmQgYSBuZXcgc3RyZWFtICh1bnVzZWRfZGF0YSkuIFdlIGNhbm5vdCB1c2UgdGhlIHNh
bWUKLSAgICAgICAgICAgICAgICAjIHpsaWIuRGVjb21wcmVzcyBvYmplY3QgZm9yIHRoZSBuZXcg
c3RyZWFtLiBDcmVhdGUgYSBuZXcKLSAgICAgICAgICAgICAgICAjIERlY29tcHJlc3Mgb2JqZWN0
IHRvIGRlY29tcHJlc3MgdGhlIG5ldyBvbmUuCi0gICAgICAgICAgICAgICAgIwotICAgICAgICAg
ICAgICAgICMgSXQncyBmaW5lIHRvIGlnbm9yZSB1bmNvbnN1bWVkX3RhaWwgaWYgdW51c2VkX2Rh
dGEgaXMgbm90Ci0gICAgICAgICAgICAgICAgIyBlbXB0eS4KLSAgICAgICAgICAgICAgICBzZWxm
Ll91bmNvbnN1bWVkID0gc2VsZi5fZGVjb21wcmVzcy51bnVzZWRfZGF0YQotICAgICAgICAgICAg
ICAgIHNlbGYucmVzZXQoKQotICAgICAgICAgICAgICAgIGlmIHNpemUgPj0gMCBhbmQgbGVuKGRh
dGEpID09IHNpemU6Ci0gICAgICAgICAgICAgICAgICAgICMgZGF0YSBpcyBmaWxsZWQuIERvbid0
IGNhbGwgZGVjb21wcmVzcyBhZ2Fpbi4KLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAjIFJlLWludm9rZSBEZWNvbXBy
ZXNzLmRlY29tcHJlc3MgdG8gdHJ5IHRvIGRlY29tcHJlc3MgYWxsCi0gICAgICAgICAgICAgICAg
ICAgICMgYXZhaWxhYmxlIGJ5dGVzIGJlZm9yZSBpbnZva2luZyByZWFkIHdoaWNoIGJsb2NrcyB1
bnRpbAotICAgICAgICAgICAgICAgICAgICAjIGFueSBuZXcgYnl0ZSBpcyBhdmFpbGFibGUuCi0g
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgICMgSGVyZSwgc2luY2UgdW51c2VkX2RhdGEgaXMgZW1wdHksIGV2ZW4gaWYgdW5jb25z
dW1lZF90YWlsIGlzCi0gICAgICAgICAgICAgICAgIyBub3QgZW1wdHksIGJ5dGVzIG9mIHJlcXVl
c3RlZCBsZW5ndGggYXJlIGFscmVhZHkgaW4gZGF0YS4gV2UKLSAgICAgICAgICAgICAgICAjIGRv
bid0IGhhdmUgdG8gImNvbnRpbnVlIiBoZXJlLgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAg
ICAgICAgaWYgZGF0YToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRGVjb21wcmVz
c2VkICVyJywgZGF0YSkKLSAgICAgICAgcmV0dXJuIGRhdGEKLQotICAgIGRlZiBhcHBlbmQoc2Vs
ZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQXBwZW5kZWQgJXInLCBkYXRh
KQotICAgICAgICBzZWxmLl91bmNvbnN1bWVkICs9IGRhdGEKLQotICAgIGRlZiByZXNldChzZWxm
KToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXNldCcpCi0gICAgICAgIHNlbGYuX2Rl
Y29tcHJlc3MgPSB6bGliLmRlY29tcHJlc3NvYmooLXNlbGYuX3dpbmRvd19iaXRzKQotCi0KLSMg
Q29tcHJlc3Nlcy9kZWNvbXByZXNzZXMgZ2l2ZW4gb2N0ZXRzIHVzaW5nIHRoZSBtZXRob2QgaW50
cm9kdWNlZCBpbiBSRkMxOTc5LgotCi0KLWNsYXNzIF9SRkMxOTc5RGVmbGF0ZXIob2JqZWN0KToK
LSAgICAiIiJBIGNvbXByZXNzb3IgY2xhc3MgdGhhdCBhcHBsaWVzIERFRkxBVEUgdG8gZ2l2ZW4g
Ynl0ZSBzZXF1ZW5jZSBhbmQKLSAgICBmbHVzaGVzIHVzaW5nIHRoZSBhbGdvcml0aG0gZGVzY3Jp
YmVkIGluIHRoZSBSRkMxOTc5IHNlY3Rpb24gMi4xLgotICAgICIiIgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHdpbmRvd19iaXRzLCBub19jb250ZXh0X3Rha2VvdmVyKToKLSAgICAgICAgc2Vs
Zi5fZGVmbGF0ZXIgPSBOb25lCi0gICAgICAgIGlmIHdpbmRvd19iaXRzIGlzIE5vbmU6Ci0gICAg
ICAgICAgICB3aW5kb3dfYml0cyA9IHpsaWIuTUFYX1dCSVRTCi0gICAgICAgIHNlbGYuX3dpbmRv
d19iaXRzID0gd2luZG93X2JpdHMKLSAgICAgICAgc2VsZi5fbm9fY29udGV4dF90YWtlb3ZlciA9
IG5vX2NvbnRleHRfdGFrZW92ZXIKLQotICAgIGRlZiBmaWx0ZXIoc2VsZiwgYnl0ZXMsIGVuZD1U
cnVlLCBiZmluYWw9RmFsc2UpOgotICAgICAgICBpZiBzZWxmLl9kZWZsYXRlciBpcyBOb25lOgot
ICAgICAgICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBfRGVmbGF0ZXIoc2VsZi5fd2luZG93X2JpdHMp
Ci0KLSAgICAgICAgaWYgYmZpbmFsOgotICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5fZGVmbGF0
ZXIuY29tcHJlc3NfYW5kX2ZpbmlzaChieXRlcykKLSAgICAgICAgICAgICMgQWRkIGEgcGFkZGlu
ZyBibG9jayB3aXRoIEJGSU5BTCA9IDAgYW5kIEJUWVBFID0gMC4KLSAgICAgICAgICAgIHJlc3Vs
dCA9IHJlc3VsdCArIGNocigwKQotICAgICAgICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBOb25lCi0g
ICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0KLSAgICAgICAgcmVzdWx0ID0gc2VsZi5fZGVmbGF0
ZXIuY29tcHJlc3NfYW5kX2ZsdXNoKGJ5dGVzKQotICAgICAgICBpZiBlbmQ6Ci0gICAgICAgICAg
ICAjIFN0cmlwIGxhc3QgNCBvY3RldHMgd2hpY2ggaXMgTEVOIGFuZCBOTEVOIGZpZWxkIG9mIGEK
LSAgICAgICAgICAgICMgbm9uLWNvbXByZXNzZWQgYmxvY2sgYWRkZWQgZm9yIFpfU1lOQ19GTFVT
SC4KLSAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdFs6LTRdCi0KLSAgICAgICAgaWYgc2VsZi5f
bm9fY29udGV4dF90YWtlb3ZlciBhbmQgZW5kOgotICAgICAgICAgICAgc2VsZi5fZGVmbGF0ZXIg
PSBOb25lCi0KLSAgICAgICAgcmV0dXJuIHJlc3VsdAotCi0KLWNsYXNzIF9SRkMxOTc5SW5mbGF0
ZXIob2JqZWN0KToKLSAgICAiIiJBIGRlY29tcHJlc3NvciBjbGFzcyBhIGxhIFJGQzE5NzkuCi0K
LSAgICBBIGRlY29tcHJlc3NvciBjbGFzcyBmb3IgYnl0ZSBzZXF1ZW5jZSBjb21wcmVzc2VkIGFu
ZCBmbHVzaGVkIGZvbGxvd2luZwotICAgIHRoZSBhbGdvcml0aG0gZGVzY3JpYmVkIGluIHRoZSBS
RkMxOTc5IHNlY3Rpb24gMi4xLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHdp
bmRvd19iaXRzPXpsaWIuTUFYX1dCSVRTKToKLSAgICAgICAgc2VsZi5faW5mbGF0ZXIgPSBfSW5m
bGF0ZXIod2luZG93X2JpdHMpCi0KLSAgICBkZWYgZmlsdGVyKHNlbGYsIGJ5dGVzKToKLSAgICAg
ICAgIyBSZXN0b3JlIHN0cmlwcGVkIExFTiBhbmQgTkxFTiBmaWVsZCBvZiBhIG5vbi1jb21wcmVz
c2VkIGJsb2NrIGFkZGVkCi0gICAgICAgICMgZm9yIFpfU1lOQ19GTFVTSC4KLSAgICAgICAgc2Vs
Zi5faW5mbGF0ZXIuYXBwZW5kKGJ5dGVzICsgJ1x4MDBceDAwXHhmZlx4ZmYnKQotICAgICAgICBy
ZXR1cm4gc2VsZi5faW5mbGF0ZXIuZGVjb21wcmVzcygtMSkKLQotCi1jbGFzcyBEZWZsYXRlU29j
a2V0KG9iamVjdCk6Ci0gICAgIiIiQSB3cmFwcGVyIGNsYXNzIGZvciBzb2NrZXQgb2JqZWN0IHRv
IGludGVyY2VwdCBzZW5kIGFuZCByZWN2IHRvIHBlcmZvcm0KLSAgICBkZWZsYXRlIGNvbXByZXNz
aW9uIGFuZCBkZWNvbXByZXNzaW9uIHRyYW5zcGFyZW50bHkuCi0gICAgIiIiCi0KLSAgICAjIFNp
emUgb2YgdGhlIGJ1ZmZlciBwYXNzZWQgdG8gcmVjdiB0byByZWNlaXZlIGNvbXByZXNzZWQgZGF0
YS4KLSAgICBfUkVDVl9TSVpFID0gNDA5NgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tl
dCk6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ciA9IGdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9kZWZsYXRlciA9IF9E
ZWZsYXRlcih6bGliLk1BWF9XQklUUykKLSAgICAgICAgc2VsZi5faW5mbGF0ZXIgPSBfSW5mbGF0
ZXIoemxpYi5NQVhfV0JJVFMpCi0KLSAgICBkZWYgcmVjdihzZWxmLCBzaXplKToKLSAgICAgICAg
IiIiUmVjZWl2ZXMgZGF0YSBmcm9tIHRoZSBzb2NrZXQgc3BlY2lmaWVkIG9uIHRoZSBjb25zdHJ1
Y3Rpb24gdXAKLSAgICAgICAgdG8gdGhlIHNwZWNpZmllZCBzaXplLiBPbmNlIGFueSBkYXRhIGlz
IGF2YWlsYWJsZSwgcmV0dXJucyBpdCBldmVuCi0gICAgICAgIGlmIGl0J3Mgc21hbGxlciB0aGFu
IHRoZSBzcGVjaWZpZWQgc2l6ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBUT0RPKHR5b3No
aW5vKTogQWxsb3cgY2FsbCB3aXRoIHNpemU9MC4gSXQgc2hvdWxkIGJsb2NrIHVudGlsIGFueQot
ICAgICAgICAjIGRlY29tcHJlc3NlZCBkYXRhIGlzIGF2YWlsYWJsZS4KLSAgICAgICAgaWYgc2l6
ZSA8PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdOb24tcG9zaXRpdmUgc2l6ZSBw
YXNzZWQnKQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2lu
ZmxhdGVyLmRlY29tcHJlc3Moc2l6ZSkKLSAgICAgICAgICAgIGlmIGxlbihkYXRhKSAhPSAwOgot
ICAgICAgICAgICAgICAgIHJldHVybiBkYXRhCi0KLSAgICAgICAgICAgIHJlYWRfZGF0YSA9IHNl
bGYuX3NvY2tldC5yZWN2KERlZmxhdGVTb2NrZXQuX1JFQ1ZfU0laRSkKLSAgICAgICAgICAgIGlm
IG5vdCByZWFkX2RhdGE6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICcnCi0gICAgICAgICAgICBz
ZWxmLl9pbmZsYXRlci5hcHBlbmQocmVhZF9kYXRhKQotCi0gICAgZGVmIHNlbmRhbGwoc2VsZiwg
Ynl0ZXMpOgotICAgICAgICBzZWxmLnNlbmQoYnl0ZXMpCi0KLSAgICBkZWYgc2VuZChzZWxmLCBi
eXRlcyk6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHNlbGYuX2RlZmxhdGVyLmNvbXBy
ZXNzX2FuZF9mbHVzaChieXRlcykpCi0gICAgICAgIHJldHVybiBsZW4oYnl0ZXMpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiYzIzYTVkMjhiNzViY2Q5YzRhNWRlMGNkYzhiZDVkNjUzNzg1
NjlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3Ry
ZWFtX2hpeGllNzUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2h5YmkucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC9jb21tb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9kaXNw
YXRjaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2V4dGVuc2lvbnMucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9mYXN0X21hc2tpbmcuaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBh
cnNlcmhhbmRsZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9odHRwX2hlYWRlcl91dGlsLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC9tc2d1dGlsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXV4LnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0cmVh
bS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L3hocl9iZW5jaG1hcmtfaGFuZGxlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3hocl9i
ZW5jaG1hcmtfaGFuZGxlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDNhNWIw
NDkyMjBlZTc5MGVmZWE1MWJkYTZhM2Y5NWQ4ZGNmMDk3NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC94aHJfYmVuY2ht
YXJrX2hhbmRsZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAotIyBDb3B5cmln
aHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotIyBsaWNlbnNlIHRoYXQg
Y2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLSMgaHR0cHM6Ly9kZXZlbG9w
ZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1jbGFzcyBYSFJCZW5jaG1hcmtIYW5kbGVyKG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGhlYWRlcnMsIHJmaWxlLCB3ZmlsZSk6Ci0gICAg
ICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAg
IHNlbGYuaGVhZGVycyA9IGhlYWRlcnMKLSAgICAgICAgc2VsZi5yZmlsZSA9IHJmaWxlCi0gICAg
ICAgIHNlbGYud2ZpbGUgPSB3ZmlsZQotCi0gICAgZGVmIGRvX3NlbmQoc2VsZik6Ci0gICAgICAg
IGNvbnRlbnRfbGVuZ3RoID0gaW50KHNlbGYuaGVhZGVycy5nZXRoZWFkZXIoJ0NvbnRlbnQtTGVu
Z3RoJykpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXF1ZXN0ZWQgdG8gcmVjZWl2
ZSAlcyBieXRlcycsIGNvbnRlbnRfbGVuZ3RoKQotCi0gICAgICAgIFJFQ0VJVkVfQkxPQ0tfU0la
RSA9IDEwMjQgKiAxMDI0Ci0KLSAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZSA9IGNvbnRlbnRfbGVu
Z3RoCi0gICAgICAgIHdoaWxlIGJ5dGVzX3RvX3JlY2VpdmUgPiAwOgotICAgICAgICAgICAgYnl0
ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3AgPSBieXRlc190b19yZWNlaXZlCi0gICAgICAgICAg
ICBpZiBieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCA+IFJFQ0VJVkVfQkxPQ0tfU0laRToK
LSAgICAgICAgICAgICAgICBieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCA9IFJFQ0VJVkVf
QkxPQ0tfU0laRQotICAgICAgICAgICAgcmVjZWl2ZWRfZGF0YSA9IHNlbGYucmZpbGUucmVhZChi
eXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCkKLSAgICAgICAgICAgIGlmIHJlY2VpdmVkX2Rh
dGEgIT0gKCdhJyAqIGJ5dGVzX3RvX3JlY2VpdmVfaW5fdGhpc19sb29wKToKLSAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3QgYm9keSB2ZXJpZmljYXRpb24gZmFpbGVk
JykKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGJ5dGVzX3RvX3JlY2VpdmUg
LT0gbGVuKHJlY2VpdmVkX2RhdGEpCi0gICAgICAgIGlmIGJ5dGVzX3RvX3JlY2VpdmUgPCAwOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCAlZCBtb3JlIGJ5dGVzIHRo
YW4gZXhwZWN0ZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLWJ5dGVzX3Rv
X3JlY2VpdmUpKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBSZXR1cm4gdGhlIG51
bWJlciBvZiByZWNlaXZlZCBieXRlcyBiYWNrIHRvIHRoZSBjbGllbnQuCi0gICAgICAgIHJlc3Bv
bnNlX2JvZHkgPSAnJWQnICUgY29udGVudF9sZW5ndGgKLSAgICAgICAgc2VsZi53ZmlsZS53cml0
ZSgKLSAgICAgICAgICAgICdIVFRQLzEuMSAyMDAgT0tcclxuJwotICAgICAgICAgICAgJ0FjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbjogKlxyXG4nCi0gICAgICAgICAgICAnQ29udGVudC1UeXBl
OiB0ZXh0L2h0bWxcclxuJwotICAgICAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoOiAlZFxyXG4nCi0g
ICAgICAgICAgICAnXHJcbiVzJyAlIChsZW4ocmVzcG9uc2VfYm9keSksIHJlc3BvbnNlX2JvZHkp
KQotICAgICAgICBzZWxmLndmaWxlLmZsdXNoKCkKLQotICAgIGRlZiBkb19yZWNlaXZlX2FuZF9w
YXJzZShzZWxmKToKLSAgICAgICAgY29udGVudF9sZW5ndGggPSBpbnQoc2VsZi5oZWFkZXJzLmdl
dGhlYWRlcignQ29udGVudC1MZW5ndGgnKSkKLSAgICAgICAgcmVxdWVzdF9ib2R5ID0gc2VsZi5y
ZmlsZS5yZWFkKGNvbnRlbnRfbGVuZ3RoKQotCi0gICAgICAgIHJlcXVlc3RfYXJyYXkgPSByZXF1
ZXN0X2JvZHkuc3BsaXQoJyAnKQotICAgICAgICBpZiBsZW4ocmVxdWVzdF9hcnJheSkgPCAyOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdNYWxmb3JtZWQgcmVxdWVzdCBib2R5OiAl
cicsIHJlcXVlc3RfYm9keSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgUGFyc2Ug
dGhlIHNpemUgcGFyYW1ldGVyLgotICAgICAgICBieXRlc190b19zZW5kID0gcmVxdWVzdF9hcnJh
eVswXQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBieXRlc190b19zZW5kID0gaW50KGJ5dGVz
X3RvX3NlbmQpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ01hbGZvcm1lZCBzaXplIHBhcmFtZXRlcjogJXInLCBieXRlc190
b19zZW5kKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBQYXJzZSB0aGUgdHJhbnNm
ZXIgZW5jb2RpbmcgcGFyYW1ldGVyLgotICAgICAgICBjaHVua2VkX21vZGUgPSBGYWxzZQotICAg
ICAgICBtb2RlX3BhcmFtZXRlciA9IHJlcXVlc3RfYXJyYXlbMV0KLSAgICAgICAgaWYgbW9kZV9w
YXJhbWV0ZXIgPT0gJ2NodW5rZWQnOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdS
ZXF1ZXN0ZWQgY2h1bmtlZCB0cmFuc2ZlciBlbmNvZGluZycpCi0gICAgICAgICAgICBjaHVua2Vk
X21vZGUgPSBUcnVlCi0gICAgICAgIGVsaWYgbW9kZV9wYXJhbWV0ZXIgIT0gJ25vbmUnOgotICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdJbnZhbGlkIG1vZGUgcGFyYW1ldGVyOiAlcics
IG1vZGVfcGFyYW1ldGVyKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgc2VsZi5kb19y
ZWNlaXZlKGJ5dGVzX3RvX3NlbmQsIGNodW5rZWRfbW9kZSwgRmFsc2UpCi0KLSAgICBkZWYgZG9f
cmVjZWl2ZShzZWxmLCBieXRlc190b19zZW5kLCBjaHVua2VkX21vZGUsIGVuYWJsZV9jYWNoZSk6
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdSZXF1ZXN0ZWQgdG8g
c2VuZCAlcyBieXRlcyAoY2h1bmtlZDogJXMsIGNhY2hlOiAlcyknLAotICAgICAgICAgICAgYnl0
ZXNfdG9fc2VuZCwgY2h1bmtlZF9tb2RlLCBlbmFibGVfY2FjaGUpCi0gICAgICAgICMgV3JpdGUg
YSBoZWFkZXIKLSAgICAgICAgcmVzcG9uc2VfaGVhZGVyID0gKAotICAgICAgICAgICAgJ0hUVFAv
MS4xIDIwMCBPS1xyXG4nCi0gICAgICAgICAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
OiAqXHJcbicKLSAgICAgICAgICAgICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0
cmVhbVxyXG4nKQotICAgICAgICBpZiBlbmFibGVfY2FjaGU6Ci0gICAgICAgICAgICByZXNwb25z
ZV9oZWFkZXIgKz0gJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUsIG1heC1hZ2U9MTBcclxuJwotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyICs9IFwKLSAgICAgICAgICAg
ICAgICAnQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGVc
clxuJwotICAgICAgICBpZiBjaHVua2VkX21vZGU6Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFk
ZXIgKz0gJ1RyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkXHJcblxyXG4nCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXIgKz0gKAotICAgICAgICAgICAgICAgICdDb250
ZW50LUxlbmd0aDogJWRcclxuXHJcbicgJSBieXRlc190b19zZW5kKQotICAgICAgICBzZWxmLndm
aWxlLndyaXRlKHJlc3BvbnNlX2hlYWRlcikKLSAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgpCi0K
LSAgICAgICAgIyBXcml0ZSBhIGJvZHkKLSAgICAgICAgU0VORF9CTE9DS19TSVpFID0gMTAyNCAq
IDEwMjQKLQotICAgICAgICB3aGlsZSBieXRlc190b19zZW5kID4gMDoKLSAgICAgICAgICAgIGJ5
dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID0gYnl0ZXNfdG9fc2VuZAotICAgICAgICAgICAgaWYg
Ynl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3AgPiBTRU5EX0JMT0NLX1NJWkU6Ci0gICAgICAgICAg
ICAgICAgYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3AgPSBTRU5EX0JMT0NLX1NJWkUKLQotICAg
ICAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgotICAgICAgICAgICAgICAgIHNlbGYud2ZpbGUud3Jp
dGUoJyV4XHJcbicgJSBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCkKLSAgICAgICAgICAgIHNl
bGYud2ZpbGUud3JpdGUoJ2EnICogYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3ApCi0gICAgICAg
ICAgICBpZiBjaHVua2VkX21vZGU6Ci0gICAgICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgn
XHJcbicpCi0gICAgICAgICAgICBzZWxmLndmaWxlLmZsdXNoKCkKLQotICAgICAgICAgICAgYnl0
ZXNfdG9fc2VuZCAtPSBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcAotCi0gICAgICAgIGlmIGNo
dW5rZWRfbW9kZToKLSAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoJzBcclxuXHJcbicpCi0g
ICAgICAgICAgICBzZWxmLndmaWxlLmZsdXNoKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc2V0dXAucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NldHVwLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzVkNmIxMDU4
OTljYTEzNDhkN2Q2ZDY4YmJlMmJkNDllODVkMTE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc2V0dXAucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3
NCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LSIiIlNldCB1cCBzY3JpcHQgZm9yIG1vZF9weXdlYnNvY2tldC4KLSIiIgotCi0KLWZyb20gZGlz
dHV0aWxzLmNvcmUgaW1wb3J0IHNldHVwLCBFeHRlbnNpb24KLWltcG9ydCBzeXMKLQotCi1fUEFD
S0FHRV9OQU1FID0gJ21vZF9weXdlYnNvY2tldCcKLQotIyBCdWlsZCBhbmQgdXNlIGEgQysrIGV4
dGVuc2lvbiBmb3IgZmFzdGVyIG1hc2tpbmcuIFNXSUcgaXMgcmVxdWlyZWQuCi1fVVNFX0ZBU1Rf
TUFTS0lORyA9IEZhbHNlCi0KLWlmIHN5cy52ZXJzaW9uIDwgJzIuMyc6Ci0gICAgcHJpbnQgPj4g
c3lzLnN0ZGVyciwgJyVzIHJlcXVpcmVzIFB5dGhvbiAyLjMgb3IgbGF0ZXIuJyAlIF9QQUNLQUdF
X05BTUUKLSAgICBzeXMuZXhpdCgxKQotCi1pZiBfVVNFX0ZBU1RfTUFTS0lORzoKLSAgICBzZXR1
cChleHRfbW9kdWxlcz1bCi0gICAgICAgICAgICAgICAgICBFeHRlbnNpb24oCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQvX2Zhc3RfbWFza2luZycsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIFsnbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pJ10sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHN3aWdfb3B0cz1bJy1jKysnXSldKQotCi1zZXR1cChh
dXRob3I9J1l1em8gRnVqaXNoaW1hJywKLSAgICAgIGF1dGhvcl9lbWFpbD0neXV6b0BjaHJvbWl1
bS5vcmcnLAotICAgICAgZGVzY3JpcHRpb249J1dlYlNvY2tldCBleHRlbnNpb24gZm9yIEFwYWNo
ZSBIVFRQIFNlcnZlci4nLAotICAgICAgbG9uZ19kZXNjcmlwdGlvbj0oCi0gICAgICAgICAgICAg
ICdtb2RfcHl3ZWJzb2NrZXQgaXMgYW4gQXBhY2hlIEhUVFAgU2VydmVyIGV4dGVuc2lvbiBmb3Ig
JwotICAgICAgICAgICAgICAndGhlIFdlYlNvY2tldCBQcm90b2NvbCAoUkZDIDY0NTUpLiAnCi0g
ICAgICAgICAgICAgICdTZWUgbW9kX3B5d2Vic29ja2V0L19faW5pdF9fLnB5IGZvciBtb3JlIGRl
dGFpbC4nKSwKLSAgICAgIGxpY2Vuc2U9J1NlZSBMSUNFTlNFJywKLSAgICAgIG5hbWU9X1BBQ0tB
R0VfTkFNRSwKLSAgICAgIHBhY2thZ2VzPVtfUEFDS0FHRV9OQU1FLCBfUEFDS0FHRV9OQU1FICsg
Jy5oYW5kc2hha2UnXSwKLSAgICAgIHVybD0naHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3B5d2Vi
c29ja2V0LycsCi0gICAgICAjIFNlZSB0aGUgc291cmNlIG9mIGRpc3R1dGlscy52ZXJzaW9uLCBk
aXN0dXRpbHMudmVyc2lvbnByZWRpY2F0ZSBhbmQKLSAgICAgICMgZGlzdHV0aWxzLmRpc3QgdG8g
dW5kZXJzdGFuZCBob3cgdG8gbmFtZSB2ZXJzaW9uIG51bWJlcnMuCi0gICAgICB2ZXJzaW9uPScw
LjcuOScsCi0gICAgICApCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9DT1BZSU5HIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvQ09QWUlORwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTg5ZDAyZTRjZDA5MjM3ODA2ZjdkZjhiZWFlY2M2OTE1MjczNDI4ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9DT1BZSU5HCisr
KyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMu
Ci1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLW1ldDoK
LQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLW5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLWNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLWluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLWRpc3RyaWJ1
dGlvbi4KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLWNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi10aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi1BIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi1TUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLURB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvTUFOSUZFU1QuaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9NQU5JRkVTVC5pbgpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkyNTY4ODJjNTZmZWI3MjgxMmM5OWM4YTgzNzk5Nzll
NjNlNGEwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9NQU5JRkVTVC5pbgorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotaW5jbHVk
ZSBDT1BZSU5HCi1pbmNsdWRlIE1BTklGRVNULmluCi1pbmNsdWRlIFJFQURNRQotcmVjdXJzaXZl
LWluY2x1ZGUgZXhhbXBsZSAqLnB5Ci1yZWN1cnNpdmUtaW5jbHVkZSBtb2RfcHl3ZWJzb2NrZXQg
Ki5weQotcmVjdXJzaXZlLWluY2x1ZGUgdGVzdCAqLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9S
RUFETUUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9SRUFETUUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4
Yzc1OGY1ZWVmNGM3MzE4OTI2NDFkZTMzM2U1ZDc1ZDEwYTNlNTYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvUkVBRE1FCisrKyAvZGV2L251
bGwKQEAgLTEsMTcgKzAsMCBAQAotSU5TVEFMTAotCi1UbyBpbnN0YWxsIHRoaXMgcGFja2FnZSB0
byB0aGUgc3lzdGVtLCBydW4gdGhpczoKLSQgcHl0aG9uIHNldHVwLnB5IGJ1aWxkCi0kIHN1ZG8g
cHl0aG9uIHNldHVwLnB5IGluc3RhbGwKLQotVG8gaW5zdGFsbCB0aGlzIHBhY2thZ2UgYXMgYSBu
b3JtYWwgdXNlciwgcnVuIHRoaXMgaW5zdGVhZDoKLSQgcHl0aG9uIHNldHVwLnB5IGJ1aWxkCi0k
IHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsIC0tdXNlcgotCi1MQVVOQ0gKLQotVG8gdXNlIHB5d2Vi
c29ja2V0IGFzIEFwYWNoZSBtb2R1bGUsIHJ1biB0aGlzIHRvIHJlYWQgdGhlIGRvY3VtZW50Ogot
JCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQKLQotVG8gdXNlIHB5d2Vic29ja2V0IGFzIHN0YW5kYWxv
bmUgc2VydmVyLCBydW4gdGhpcyB0byByZWFkIHRoZSBkb2N1bWVudDoKLSQgcHlkb2MgbW9kX3B5
d2Vic29ja2V0LnN0YW5kYWxvbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYWJvcnRf
aGFuZHNoYWtlX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYWJvcnRfaGFuZHNoYWtlX3dzaC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA4MDIzYTFmZTkxZTJmMjk3N2IxNjNm
OTc3ZGFlNjg1MDAwOWFhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93c2gucHkKKysrIC9kZXYv
bnVsbApAQCAtMSw0MyArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFu
ZHNoYWtlKHJlcXVlc3QpOgotICAgIHJhaXNlIGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0
aW9uKAotICAgICAgICAiQWJvcnRlZCBpbiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSIp
Ci0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBwYXNzCi0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Fib3J0
X3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYWJvcnRfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyYmJmMDA1ZjZhMzdjNjA5ZTE2YWJkZTRkZjk0MDI0MjY4ZDBkYWVlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4
YW1wbGUvYWJvcnRfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotIyBDb3B5
cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotCi0K
LWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0K
LQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByYWlzZSBoYW5k
c2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbigKLSAgICAgICAgIkFib3J0ZWQgaW4gd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhIikKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL2V4YW1wbGUvYXJyYXlidWZmZXJfYmVuY2htYXJrLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL2FycmF5YnVmZmVyX2JlbmNobWFyay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4NjljZDdlMWVlNjUzZDU5ZjA0YjgwMmZmMzRjOGQwODEzMTdjYTg5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUv
YXJyYXlidWZmZXJfYmVuY2htYXJrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBA
QAotPCEtLQotQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2VydmVk
LgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLW1ldDoKLQotICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLWNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLWluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci10aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi1TUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0
bGU+QXJyYXlCdWZmZXIgYmVuY2htYXJrPC90aXRsZT4KLTxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgUFJJTlRfU0laRSA9IHRydWU7Ci0KLS8vIEluaXRpYWwg
c2l6ZSBvZiBhcnJheXMuCi12YXIgU1RBUlRfU0laRSA9IDEwICogMTAyNDsKLS8vIFN0b3BzIGJl
bmNobWFyayB3aGVuIHRoZSBzaXplIG9mIGFuIGFycmF5IGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQu
Ci12YXIgU1RPUF9USFJFU0hPTEQgPSAxMDAwMDAgKiAxMDI0OwotLy8gSWYgdGhlIHNpemUgb2Yg
ZWFjaCBhcnJheSBpcyBzbWFsbCwgd3JpdGUvcmVhZCB0aGUgYXJyYXkgbXVsdGlwbGUgdGltZXMK
LS8vIHVudGlsIHRoZSBzdW0gb2Ygc2l6ZXMgcmVhY2hlcyB0aGlzIHRocmVzaG9sZC4KLXZhciBN
SU5fVE9UQUwgPSAxMDAwMDAgKiAxMDI0OwotdmFyIE1VTFRJUExJRVJTID0gWzUsIDJdOwotCi0v
LyBSZXBlYXQgYmVuY2htYXJrIGZvciBzZXZlcmFsIHRpbWVzIHRvIG1lYXN1cmUgcGVyZm9ybWFu
Y2Ugb2Ygb3B0aW1pemVkCi0vLyAoc3VjaCBhcyBKSVQpIHJ1bi4KLXZhciBSRVBFQVRfRk9SX1dB
Uk1VUCA9IDM7Ci0KLWZ1bmN0aW9uIHdyaXRlQmVuY2htYXJrKHNpemUsIG1pblRvdGFsKSB7Ci0g
IHZhciB0b3RhbFNpemUgPSAwOwotICB3aGlsZSAodG90YWxTaXplIDwgbWluVG90YWwpIHsKLSAg
ICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICAvLyBXcml0
ZSAnYSdzLgotICAgIGZpbGxBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlciwgMHg2MSk7Ci0KLSAgICB0
b3RhbFNpemUgKz0gc2l6ZTsKLSAgfQotICByZXR1cm4gdG90YWxTaXplOwotfQotCi1mdW5jdGlv
biByZWFkQmVuY2htYXJrKHNpemUsIG1pblRvdGFsKSB7Ci0gIHZhciB0b3RhbFNpemUgPSAwOwot
ICB3aGlsZSAodG90YWxTaXplIDwgbWluVG90YWwpIHsKLSAgICB2YXIgYXJyYXlCdWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICBpZiAoIXZlcmlmeUFycmF5QnVmZmVyKGFycmF5
QnVmZmVyLCAweDAwKSkgewotICAgICAgcXVldWVMb2coJ1ZlcmlmaWNhdGlvbiBmYWlsZWQnKTsK
LSAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0KLSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAgfQot
ICByZXR1cm4gdG90YWxTaXplOwotfQotCi1mdW5jdGlvbiBydW5CZW5jaG1hcmsoYmVuY2htYXJr
RnVuY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgc2l6ZSwKLSAgICAgICAgICAgICAgICAg
ICAgICBzdG9wVGhyZXNob2xkLAotICAgICAgICAgICAgICAgICAgICAgIG1pblRvdGFsLAotICAg
ICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXJzLAotICAgICAgICAgICAgICAgICAgICAgIG11
bHRpcGxpZXJJbmRleCkgewotICB3aGlsZSAoc2l6ZSA8PSBzdG9wVGhyZXNob2xkKSB7Ci0gICAg
dmFyIG1heFNwZWVkID0gMDsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgUkVQRUFUX0ZPUl9X
QVJNVVA7ICsraSkgewotICAgICAgdmFyIHN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsK
LQotICAgICAgdmFyIHRvdGFsU2l6ZSA9IGJlbmNobWFya0Z1bmN0aW9uKHNpemUsIG1pblRvdGFs
KTsKLQotICAgICAgbWF4U3BlZWQgPSBNYXRoLm1heChtYXhTcGVlZCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2FsY3VsYXRlU3BlZWRJbktCKHRvdGFsU2l6ZSwgc3RhcnRUaW1lSW5Ncykp
OwotICAgIH0KLSAgICBxdWV1ZUxvZyhmb3JtYXRSZXN1bHRJbktpQihzaXplLCBtYXhTcGVlZCwg
UFJJTlRfU0laRSkpOwotCi0gICAgc2l6ZSAqPSBtdWx0aXBsaWVyc1ttdWx0aXBsaWVySW5kZXhd
OwotICAgIG11bHRpcGxpZXJJbmRleCA9IChtdWx0aXBsaWVySW5kZXggKyAxKSAlIG11bHRpcGxp
ZXJzLmxlbmd0aDsKLSAgfQotfQotCi1mdW5jdGlvbiBydW5CZW5jaG1hcmtzKCkgewotICBxdWV1
ZUxvZygnTWVzc2FnZSBzaXplIGluIEtpQiwgU3BlZWQgaW4ga0IvcycpOwotCi0gIHF1ZXVlTG9n
KCdXcml0ZSBiZW5jaG1hcmsnKTsKLSAgcnVuQmVuY2htYXJrKAotICAgICAgd3JpdGVCZW5jaG1h
cmssIFNUQVJUX1NJWkUsIFNUT1BfVEhSRVNIT0xELCBNSU5fVE9UQUwsIE1VTFRJUExJRVJTLCAw
KTsKLSAgcXVldWVMb2coJ0ZpbmlzaGVkJyk7Ci0KLSAgcXVldWVMb2coJ1JlYWQgYmVuY2htYXJr
Jyk7Ci0gIHJ1bkJlbmNobWFyaygKLSAgICAgIHJlYWRCZW5jaG1hcmssIFNUQVJUX1NJWkUsIFNU
T1BfVEhSRVNIT0xELCBNSU5fVE9UQUwsIE1VTFRJUExJRVJTLCAwKTsKLSAgYWRkVG9Mb2coJ0Zp
bmlzaGVkJyk7Ci19Ci0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIGxvZ0JveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsb2cnKTsKLQotICBxdWV1ZUxvZyh3aW5kb3cubmF2aWdhdG9yLnVzZXJB
Z2VudC50b0xvd2VyQ2FzZSgpKTsKLQotICBhZGRUb0xvZygnU3RhcnRlZC4uLicpOwotCi0gIHNl
dFRpbWVvdXQocnVuQmVuY2htYXJrcywgMCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJpbml0KCkiPgotPHRleHRhcmVhCi0gICAgaWQ9ImxvZyIgcm93cz0iNTAiIHN0
eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2hfd3NoLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhh
bXBsZS9iZW5jaF93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwNjdjYTdk
ODk1NWZjMTYzZDUwMDFjZDg4MTJlNmFlMjBjMTYyOTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaF93c2gucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5j
LgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJBIHNp
bXBsZSBsb2FkIHRlc3RlciBmb3IgV2ViU29ja2V0IGNsaWVudHMuCi0KLUEgY2xpZW50IHByb2dy
YW0gc2VuZHMgYSBtZXNzYWdlIGZvcm1hdHRlZCBhcyAiPHRpbWU+IDxjb3VudD4gPG1lc3NhZ2U+
IiB0bwotdGhpcyBoYW5kbGVyLiBUaGlzIGhhbmRsZXIgc3RhcnRzIHNlbmRpbmcgdG90YWwgPGNv
dW50PiBXZWJTb2NrZXQgbWVzc2FnZXMKLWNvbnRhaW5pbmcgPG1lc3NhZ2U+IGV2ZXJ5IDx0aW1l
PiBzZWNvbmRzLiA8dGltZT4gY2FuIGJlIGEgZmxvYXRpbmcgcG9pbnQKLXZhbHVlLiA8Y291bnQ+
IG11c3QgYmUgYW4gaW50ZWdlciB2YWx1ZS4KLSIiIgotCi0KLWltcG9ydCB0aW1lCi0KLQotZGVm
IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MgICMgQWx3
YXlzIGFjY2VwdC4KLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgot
ICAgIGxpbmUgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgIHBhcnRz
ID0gbGluZS5zcGxpdCgnICcpCi0gICAgaWYgbGVuKHBhcnRzKSAhPSAzOgotICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdCYWQgcGFyYW1ldGVyIGZvcm1hdCcpCi0gICAgd2FpdCA9IGZsb2F0KHBh
cnRzWzBdKQotICAgIGNvdW50ID0gaW50KHBhcnRzWzFdKQotICAgIG1lc3NhZ2UgPSBwYXJ0c1sy
XQotICAgIGZvciBpIGluIHhyYW5nZShjb3VudCk6Ci0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFt
LnNlbmRfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICB0aW1lLnNsZWVwKHdhaXQpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFyay5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2EyMTgxNzNhMGYxZjMzYTRlZDQ2MmUyMWY4NmMxYjhkNDhiYTYyMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFt
cGxlL2JlbmNobWFyay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAzICswLDAgQEAKLTwhLS0K
LUNvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1j
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmlidXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPldlYlNv
Y2tldCBiZW5jaG1hcms8L3RpdGxlPgotPHNjcmlwdCBzcmM9InV0aWxfbWFpbi5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iYmVuY2ht
YXJrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgYWRkcmVzc0JveCA9IG51bGw7Ci0KLWZ1
bmN0aW9uIGdldENvbmZpZygpIHsKLSAgcmV0dXJuIHsKLSAgICBwcmVmaXhVcmw6IGFkZHJlc3NC
b3gudmFsdWUsCi0gICAgcHJpbnRTaXplOiBnZXRCb29sRnJvbUNoZWNrQm94KCdwcmludHNpemUn
KSwKLSAgICBudW1Tb2NrZXRzOiBnZXRJbnRGcm9tSW5wdXQoJ251bXNvY2tldHMnKSwKLSAgICAv
LyBJbml0aWFsIHNpemUgb2YgbWVzc2FnZXMuCi0gICAgbnVtSXRlcmF0aW9uczogZ2V0SW50RnJv
bUlucHV0KCdudW1pdGVyYXRpb25zJyksCi0gICAgbnVtV2FybVVwSXRlcmF0aW9uczogZ2V0SW50
RnJvbUlucHV0KCdudW13YXJtdXBpdGVyYXRpb25zJyksCi0gICAgc3RhcnRTaXplOiBnZXRJbnRG
cm9tSW5wdXQoJ3N0YXJ0c2l6ZScpLAotICAgIC8vIFN0b3BzIGJlbmNobWFyayB3aGVuIHRoZSBz
aXplIG9mIG1lc3NhZ2UgZXhjZWVkcyB0aGlzIHRocmVzaG9sZC4KLSAgICBzdG9wVGhyZXNob2xk
OiBnZXRJbnRGcm9tSW5wdXQoJ3N0b3B0aHJlc2hvbGQnKSwKLSAgICAvLyBJZiB0aGUgc2l6ZSBv
ZiBlYWNoIG1lc3NhZ2UgaXMgc21hbGwsIHNlbmQvcmVjZWl2ZSBtdWx0aXBsZSBtZXNzYWdlcwot
ICAgIC8vIHVudGlsIHRoZSBzdW0gb2Ygc2l6ZXMgcmVhY2hlcyB0aGlzIHRocmVzaG9sZC4KLSAg
ICBtaW5Ub3RhbDogZ2V0SW50RnJvbUlucHV0KCdtaW50b3RhbCcpLAotICAgIG11bHRpcGxpZXJz
OiBnZXRJbnRBcnJheUZyb21JbnB1dCgnbXVsdGlwbGllcnMnKSwKLSAgICB2ZXJpZnlEYXRhOiBn
ZXRCb29sRnJvbUNoZWNrQm94KCd2ZXJpZnlkYXRhJykKLSAgfTsKLX0KLQotdmFyIHdvcmtlciA9
IG5ldyBXb3JrZXIoJ2JlbmNobWFyay5qcycpOwotd29ya2VyLm9ubWVzc2FnZSA9IG9uTWVzc2Fn
ZTsKLQotZnVuY3Rpb24gb25TZW5kQmVuY2htYXJrKCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29u
ZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpKSB7Ci0gICAgd29y
a2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnc2VuZEJlbmNobWFyaycsIGNvbmZpZzogY29uZmlnfSk7
Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0gYWRkVG9Mb2c7Ci0gICAgY29uZmln
LmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBjb25maWcubWVhc3VyZVZhbHVlID0g
bWVhc3VyZVZhbHVlOwotICAgIHNlbmRCZW5jaG1hcmsoY29uZmlnKTsKLSAgfQotfQotCi1mdW5j
dGlvbiBvblJlY2VpdmVCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsK
LQotICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJykpIHsKLSAgICB3b3JrZXIucG9z
dE1lc3NhZ2Uoe3R5cGU6ICdyZWNlaXZlQmVuY2htYXJrJywgY29uZmlnOiBjb25maWd9KTsKLSAg
fSBlbHNlIHsKLSAgICBjb25maWcuYWRkVG9Mb2cgPSBhZGRUb0xvZzsKLSAgICBjb25maWcuYWRk
VG9TdW1tYXJ5ID0gYWRkVG9TdW1tYXJ5OwotICAgIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSBtZWFz
dXJlVmFsdWU7Ci0gICAgcmVjZWl2ZUJlbmNobWFyayhjb25maWcpOwotICB9Ci19Ci0KLWZ1bmN0
aW9uIG9uQmF0Y2hCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLQot
ICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJykpIHsKLSAgICB3b3JrZXIucG9zdE1l
c3NhZ2Uoe3R5cGU6ICdiYXRjaEJlbmNobWFyaycsIGNvbmZpZzogY29uZmlnfSk7Ci0gIH0gZWxz
ZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0gYWRkVG9Mb2c7Ci0gICAgY29uZmlnLmFkZFRvU3Vt
bWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBjb25maWcubWVhc3VyZVZhbHVlID0gbWVhc3VyZVZh
bHVlOwotICAgIGJhdGNoQmVuY2htYXJrKGNvbmZpZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gb25T
dG9wKCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9t
Q2hlY2tCb3goJ3dvcmtlcicpKSB7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnc3Rv
cCcsIGNvbmZpZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0g
YWRkVG9Mb2c7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBj
b25maWcubWVhc3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwotICAgIHN0b3AoY29uZmlnKTsKLSAg
fQotfQotZnVuY3Rpb24gaW5pdCgpIHsKLSAgYWRkcmVzc0JveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdhZGRyZXNzJyk7Ci0gIGxvZ0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCds
b2cnKTsKLQotICBzdW1tYXJ5Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1bW1hcnkn
KTsKLQotICB2YXIgc2NoZW1lID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sID09ICdodHRwczon
ID8gJ3dzczovLycgOiAnd3M6Ly8nOwotICB2YXIgZGVmYXVsdEFkZHJlc3MgPSBzY2hlbWUgKyB3
aW5kb3cubG9jYXRpb24uaG9zdCArICcvYmVuY2htYXJrX2hlbHBlcic7Ci0KLSAgYWRkcmVzc0Jv
eC52YWx1ZSA9IGRlZmF1bHRBZGRyZXNzOwotCi0gIGFkZFRvTG9nKHdpbmRvdy5uYXZpZ2F0b3Iu
dXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwotICBhZGRUb1N1bW1hcnkod2luZG93Lm5hdmlnYXRv
ci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0KLSAgaWYgKCEoJ1dlYlNvY2tldCcgaW4gd2lu
ZG93KSkgewotICAgIGFkZFRvTG9nKCdXZWJTb2NrZXQgaXMgbm90IGF2YWlsYWJsZScpOwotICB9
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLQotPGRpdiBp
ZD0iYmVuY2htYXJrX2RpdiI+Ci0gIHVybCA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFkZHJlc3Mi
IHNpemU9IjQwIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InNlbmQiIG9uY2xpY2s9
Im9uU2VuZEJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InJlY2Vp
dmUiIG9uY2xpY2s9Im9uUmVjZWl2ZUJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRv
biIgdmFsdWU9ImJhdGNoIiBvbmNsaWNrPSJvbkJhdGNoQmVuY2htYXJrKCkiPgotICA8aW5wdXQg
dHlwZT0iYnV0dG9uIiB2YWx1ZT0ic3RvcCIgb25jbGljaz0ib25TdG9wKCkiPgotCi0gIDxici8+
Ci0KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0icHJpbnRzaXplIiBjaGVja2VkPgotICA8
bGFiZWwgZm9yPSJwcmludHNpemUiPlByaW50IHNpemUgYW5kIHRpbWUgcGVyIG1lc3NhZ2U8L2xh
YmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ2ZXJpZnlkYXRhIiBjaGVja2VkPgot
ICA8bGFiZWwgZm9yPSJ2ZXJpZnlkYXRhIj5WZXJpZnkgZGF0YTwvbGFiZWw+Ci0gIDxpbnB1dCB0
eXBlPSJjaGVja2JveCIgaWQ9IndvcmtlciI+Ci0gIDxsYWJlbCBmb3I9IndvcmtlciI+UnVuIG9u
IHdvcmtlcjwvbGFiZWw+Ci0KLSAgPGJyLz4KLQotICBQYXJhbWV0ZXJzOgotCi0gIDxici8+Ci0K
LSAgPHRhYmxlPgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW0gc29ja2V0czwvdGQ+Ci0gICAgICA8
dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1zb2NrZXRzIiB2YWx1ZT0iMSI+PC90ZD4KLSAg
ICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW1iZXIgb2YgaXRlcmF0aW9uczwvdGQ+Ci0g
ICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1pdGVyYXRpb25zIiB2YWx1ZT0iMSI+
PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW1iZXIgb2Ygd2FybS11cCBp
dGVyYXRpb25zPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bXdhcm11
cGl0ZXJhdGlvbnMiIHZhbHVlPSIwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAg
PHRkPlN0YXJ0IHNpemU8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3Rh
cnRzaXplIiB2YWx1ZT0iMTAyNDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8
dGQ+U3RvcCB0aHJlc2hvbGQ8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
c3RvcHRocmVzaG9sZCIgdmFsdWU9IjEwMjQwMDAwMCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0
cj4KLSAgICAgIDx0ZD5NaW5pbXVtIHRvdGFsPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9Im1pbnRvdGFsIiB2YWx1ZT0iMTAyNDAwMDAwIj48L3RkPgotICAgIDwvdHI+Ci0g
ICAgPHRyPgotICAgICAgPHRkPk11bHRpcGxpZXJzPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9Im11bHRpcGxpZXJzIiB2YWx1ZT0iNSwgMiI+PC90ZD4KLSAgICA8L3RyPgot
ICA8L3RhYmxlPgotPC9kaXY+Ci0KLTxkaXYgaWQ9ImxvZ19kaXYiPgotICA8dGV4dGFyZWEKLSAg
ICAgIGlkPSJsb2ciIHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4
dGFyZWE+Ci08L2Rpdj4KLTxkaXYgaWQ9InN1bW1hcnlfZGl2Ij4KLSAgU3VtbWFyeQotICA8dGV4
dGFyZWEKLSAgICAgIGlkPSJzdW1tYXJ5IiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiBy
ZWFkb25seT48L3RleHRhcmVhPgotPC9kaXY+Ci0KLU5vdGU6IEVmZmVjdCBvZiBSVFQgaXMgbm90
IGVsaW1pbmF0ZWQuCi0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4
YW1wbGUvYmVuY2htYXJrLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmsuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNDdhZTllMTNkZTJmMDVkYTA4NWM0OTIxMWY1NGMw
YjY4NTJhZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmsuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMDkgKzAs
MCBAQAotLy8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LS8vCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls
ZQotLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0
Ci0vLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9i
c2QKLQotaWYgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAidW5kZWZpbmVkIikgewotICAvLyBS
dW5uaW5nIG9uIGEgd29ya2VyCi0gIGltcG9ydFNjcmlwdHMoJ3V0aWwuanMnLCAndXRpbF93b3Jr
ZXIuanMnKTsKLX0KLQotLy8gTmFtZXNwYWNlIGZvciBob2xkaW5nIGdsb2JhbHMuCi12YXIgYmVu
Y2htYXJrID0ge3N0YXJ0VGltZUluTXM6IDB9OwotCi12YXIgc29ja2V0cyA9IFtdOwotdmFyIG51
bUVzdGFibGlzaGVkU29ja2V0cyA9IDA7Ci0KLXZhciB0aW1lcklEID0gbnVsbDsKLQotZnVuY3Rp
b24gZGVzdHJveVNvY2tldChzb2NrZXQpIHsKLSAgc29ja2V0Lm9ub3BlbiA9IG51bGw7Ci0gIHNv
Y2tldC5vbm1lc3NhZ2UgPSBudWxsOwotICBzb2NrZXQub25lcnJvciA9IG51bGw7Ci0gIHNvY2tl
dC5vbmNsb3NlID0gbnVsbDsKLSAgc29ja2V0LmNsb3NlKCk7Ci19Ci0KLWZ1bmN0aW9uIGRlc3Ry
b3lBbGxTb2NrZXRzKCkgewotICBmb3IgKHZhciBpID0gMDsgaSA8IHNvY2tldHMubGVuZ3RoOyAr
K2kpIHsKLSAgICBkZXN0cm95U29ja2V0KHNvY2tldHNbaV0pOwotICB9Ci0gIHNvY2tldHMgPSBb
XTsKLX0KLQotZnVuY3Rpb24gc2VuZEJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnKSB7Ci0gIHRp
bWVySUQgPSBudWxsOwotCi0gIHZhciB0b3RhbFNpemUgPSAwOwotICB2YXIgdG90YWxSZXBsaWVk
ID0gMDsKLQotICB2YXIgb25NZXNzYWdlSGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAg
aWYgKCF2ZXJpZnlBY2tub3dsZWRnZW1lbnQoY29uZmlnLCBldmVudC5kYXRhLCBzaXplKSkgewot
ICAgICAgZGVzdHJveUFsbFNvY2tldHMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB0
b3RhbFJlcGxpZWQgKz0gc2l6ZTsKLQotICAgIGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNpemUp
IHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjYWxjdWxhdGVBbmRMb2dSZXN1bHQoY29u
ZmlnLCBzaXplLCBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcywgdG90YWxTaXplKTsKLQotICAgIHJ1
bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH07Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb2NrZXRz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgdmFyIHNvY2tldCA9IHNvY2tldHNbaV07Ci0gICAgc29ja2V0
Lm9ubWVzc2FnZSA9IG9uTWVzc2FnZUhhbmRsZXI7Ci0gIH0KLQotICB2YXIgZGF0YUFycmF5ID0g
W107Ci0KLSAgd2hpbGUgKHRvdGFsU2l6ZSA8IGNvbmZpZy5taW5Ub3RhbCkgewotICAgIHZhciBi
dWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICBmaWxsQXJyYXlCdWZmZXIoYnVm
ZmVyLCAweDYxKTsKLQotICAgIGRhdGFBcnJheS5wdXNoKGJ1ZmZlcik7Ci0gICAgdG90YWxTaXpl
ICs9IHNpemU7Ci0gIH0KLQotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFt
cCgpOwotCi0gIHRvdGFsU2l6ZSA9IDA7Ci0KLSAgdmFyIHNvY2tldEluZGV4ID0gMDsKLSAgdmFy
IGRhdGFJbmRleCA9IDA7Ci0gIHdoaWxlICh0b3RhbFNpemUgPCBjb25maWcubWluVG90YWwpIHsK
LSAgICB2YXIgY29tbWFuZCA9IFsnc2VuZCddOwotICAgIGNvbW1hbmQucHVzaChjb25maWcudmVy
aWZ5RGF0YSA/ICcxJyA6ICcwJyk7Ci0gICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZChjb21t
YW5kLmpvaW4oJyAnKSk7Ci0gICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZChkYXRhQXJyYXlb
ZGF0YUluZGV4XSk7Ci0gICAgc29ja2V0SW5kZXggPSAoc29ja2V0SW5kZXggKyAxKSAlIHNvY2tl
dHMubGVuZ3RoOwotCi0gICAgdG90YWxTaXplICs9IHNpemU7Ci0gICAgKytkYXRhSW5kZXg7Ci0g
IH0KLX0KLQotZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnKSB7Ci0g
IHRpbWVySUQgPSBudWxsOwotCi0gIHZhciB0b3RhbFNpemUgPSAwOwotICB2YXIgdG90YWxSZXBs
aWVkID0gMDsKLQotICB2YXIgb25NZXNzYWdlSGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0g
ICAgdmFyIGJ5dGVzUmVjZWl2ZWQgPSBldmVudC5kYXRhLmJ5dGVMZW5ndGg7Ci0gICAgaWYgKGJ5
dGVzUmVjZWl2ZWQgIT0gc2l6ZSkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdFeHBlY3RlZCAn
ICsgc2l6ZSArICdCIGJ1dCByZWNlaXZlZCAnICsKLSAgICAgICAgICBieXRlc1JlY2VpdmVkICsg
J0InKTsKLSAgICAgIGRlc3Ryb3lBbGxTb2NrZXRzKCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhICYmICF2ZXJpZnlBcnJheUJ1ZmZlcihldmVudC5k
YXRhLCAweDYxKSkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRp
b24gZmFpbGVkJyk7Ci0gICAgICBkZXN0cm95QWxsU29ja2V0cygpOwotICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIHRvdGFsUmVwbGllZCArPSBieXRlc1JlY2VpdmVkOwotCi0gICAgaWYgKHRv
dGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkgewotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNh
bGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1z
LCB0b3RhbFNpemUpOwotCi0gICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgfTsKLQotICBmb3Ig
KHZhciBpID0gMDsgaSA8IHNvY2tldHMubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgc29ja2V0ID0g
c29ja2V0c1tpXTsKLSAgICBzb2NrZXQuYmluYXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7Ci0gICAg
c29ja2V0Lm9ubWVzc2FnZSA9IG9uTWVzc2FnZUhhbmRsZXI7Ci0gIH0KLQotICBiZW5jaG1hcmsu
c3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotCi0gIHZhciBzb2NrZXRJbmRleCA9IDA7
Ci0gIHdoaWxlICh0b3RhbFNpemUgPCBjb25maWcubWluVG90YWwpIHsKLSAgICBzb2NrZXRzW3Nv
Y2tldEluZGV4XS5zZW5kKCdyZWNlaXZlICcgKyBzaXplKTsKLSAgICBzb2NrZXRJbmRleCA9IChz
b2NrZXRJbmRleCArIDEpICUgc29ja2V0cy5sZW5ndGg7Ci0KLSAgICB0b3RhbFNpemUgKz0gc2l6
ZTsKLSAgfQotfQotCi1mdW5jdGlvbiBjcmVhdGVTb2NrZXQoY29uZmlnKSB7Ci0gIC8vIFRPRE8o
dHlvc2hpbm8pOiBBZGQgVENQIHdhcm0gdXAuCi0gIHZhciB1cmwgPSBjb25maWcucHJlZml4VXJs
OwotCi0gIGNvbmZpZy5hZGRUb0xvZygnQ29ubmVjdCAnICsgdXJsKTsKLQotICB2YXIgc29ja2V0
ID0gbmV3IFdlYlNvY2tldCh1cmwpOwotICBzb2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24oZXZl
bnQpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ1VuZXhwZWN0ZWQgbWVzc2FnZSByZWNlaXZlZC4g
QWJvcnRpbmcuJyk7Ci0gIH07Ci0gIHNvY2tldC5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAg
Y29uZmlnLmFkZFRvTG9nKCdFcnJvcicpOwotICB9OwotICBzb2NrZXQub25jbG9zZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdDbG9zZWQnKTsKLSAgfTsKLSAgcmV0
dXJuIHNvY2tldDsKLX0KLQotdmFyIHRhc2tzID0gW107Ci0KLWZ1bmN0aW9uIHN0YXJ0QmVuY2ht
YXJrKGNvbmZpZykgewotICBjbGVhclRpbWVvdXQodGltZXJJRCk7Ci0gIGRlc3Ryb3lBbGxTb2Nr
ZXRzKCk7Ci0KLSAgbnVtRXN0YWJsaXNoZWRTb2NrZXRzID0gMDsKLQotICBmb3IgKHZhciBpID0g
MDsgaSA8IGNvbmZpZy5udW1Tb2NrZXRzOyArK2kpIHsKLSAgICB2YXIgc29ja2V0ID0gY3JlYXRl
U29ja2V0KGNvbmZpZyk7Ci0gICAgc29ja2V0Lm9ub3BlbiA9IGZ1bmN0aW9uKCkgewotICAgICAg
Y29uZmlnLmFkZFRvTG9nKCdPcGVuZWQnKTsKLQotICAgICAgKytudW1Fc3RhYmxpc2hlZFNvY2tl
dHM7Ci0KLSAgICAgIGlmIChudW1Fc3RhYmxpc2hlZFNvY2tldHMgPT0gc29ja2V0cy5sZW5ndGgp
IHsKLSAgICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgICAgIH0KLSAgICB9OwotICAgIHNv
Y2tldHMucHVzaChzb2NrZXQpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHJ1bk5leHRUYXNrKGNvbmZp
ZykgewotICB2YXIgdGFzayA9IHRhc2tzLnNoaWZ0KCk7Ci0gIGlmICh0YXNrID09IHVuZGVmaW5l
ZCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnRmluaXNoZWQnKTsKLSAgICBkZXN0cm95QWxsU29j
a2V0cygpOwotICAgIHJldHVybjsKLSAgfQotICB0aW1lcklEID0gc2V0VGltZW91dCh0YXNrLCAw
KTsKLX0KLQotZnVuY3Rpb24gYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSB7Ci0gIHZhciBsZWdl
bmQgPSAnJwotICBpZiAoY29uZmlnLnByaW50U2l6ZSkKLSAgICBsZWdlbmQgPSAnTWVzc2FnZSBz
aXplIGluIEtpQiwgVGltZS9tZXNzYWdlIGluIG1zLCAnOwotICBsZWdlbmQgKz0gJ1NwZWVkIGlu
IGtCL3MnOwotICByZXR1cm4gbGVnZW5kOwotfQotCi1mdW5jdGlvbiBnZXRDb25maWdTdHJpbmco
Y29uZmlnKSB7Ci0gIHJldHVybiAnKFdlYlNvY2tldCcgKwotICAgICcsICcgKyAodHlwZW9mIGlt
cG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiID8gJ1dvcmtlcicgOiAnTWFpbicpICsKLSAgICAn
LCBudW1Tb2NrZXRzPScgKyBjb25maWcubnVtU29ja2V0cyArCi0gICAgJywgbnVtSXRlcmF0aW9u
cz0nICsgY29uZmlnLm51bUl0ZXJhdGlvbnMgKwotICAgICcsIHZlcmlmeURhdGE9JyArIGNvbmZp
Zy52ZXJpZnlEYXRhICsKLSAgICAnLCBtaW5Ub3RhbD0nICsgY29uZmlnLm1pblRvdGFsICsKLSAg
ICAnLCBudW1XYXJtVXBJdGVyYXRpb25zPScgKyBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucyAr
Ci0gICAgJyknOwotfQotCi1mdW5jdGlvbiBhZGRUYXNrcyhjb25maWcsIHN0ZXBGdW5jKSB7Ci0g
IGZvciAodmFyIGkgPSAwOwotICAgICAgaSA8IGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsg
Y29uZmlnLm51bUl0ZXJhdGlvbnM7ICsraSkgewotICAgIC8vIElnbm9yZSB0aGUgZmlyc3QgfGNv
bmZpZy5udW1XYXJtVXBJdGVyYXRpb25zfCBpdGVyYXRpb25zLgotICAgIGlmIChpID09IGNvbmZp
Zy5udW1XYXJtVXBJdGVyYXRpb25zKQotICAgICAgYWRkUmVzdWx0Q2xlYXJpbmdUYXNrKGNvbmZp
Zyk7Ci0KLSAgICB2YXIgbXVsdGlwbGllckluZGV4ID0gMDsKLSAgICBmb3IgKHZhciBzaXplID0g
Y29uZmlnLnN0YXJ0U2l6ZTsKLSAgICAgICAgIHNpemUgPD0gY29uZmlnLnN0b3BUaHJlc2hvbGQ7
Ci0gICAgICAgICArK211bHRpcGxpZXJJbmRleCkgewotICAgICAgdmFyIHRhc2sgPSBzdGVwRnVu
Yy5iaW5kKAotICAgICAgICAgIG51bGwsCi0gICAgICAgICAgc2l6ZSwKLSAgICAgICAgICBjb25m
aWcpOwotICAgICAgdGFza3MucHVzaCh0YXNrKTsKLSAgICAgIHNpemUgKj0gY29uZmlnLm11bHRp
cGxpZXJzWwotICAgICAgICAgIG11bHRpcGxpZXJJbmRleCAlIGNvbmZpZy5tdWx0aXBsaWVycy5s
ZW5ndGhdOwotICAgIH0KLSAgfQotfQotCi1mdW5jdGlvbiBhZGRSZXN1bHRSZXBvcnRpbmdUYXNr
KGNvbmZpZywgdGl0bGUpIHsKLSAgdGFza3MucHVzaChmdW5jdGlvbigpewotICAgICAgdGltZXJJ
RCA9IG51bGw7Ci0gICAgICBjb25maWcuYWRkVG9TdW1tYXJ5KHRpdGxlKTsKLSAgICAgIHJlcG9y
dEF2ZXJhZ2VEYXRhKGNvbmZpZyk7Ci0gICAgICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gICAgICBy
dW5OZXh0VGFzayhjb25maWcpOwotICB9KTsKLX0KLQotZnVuY3Rpb24gYWRkUmVzdWx0Q2xlYXJp
bmdUYXNrKGNvbmZpZykgewotICB0YXNrcy5wdXNoKGZ1bmN0aW9uKCl7Ci0gICAgICB0aW1lcklE
ID0gbnVsbDsKLSAgICAgIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgICAgIHJ1bk5leHRUYXNrKGNv
bmZpZyk7Ci0gIH0pOwotfQotCi1mdW5jdGlvbiBzZW5kQmVuY2htYXJrKGNvbmZpZykgewotICBj
b25maWcuYWRkVG9Mb2coJ1NlbmQgYmVuY2htYXJrJyk7Ci0gIGNvbmZpZy5hZGRUb0xvZyhidWls
ZExlZ2VuZFN0cmluZyhjb25maWcpKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJhZ2VE
YXRhKCk7Ci0gIGFkZFRhc2tzKGNvbmZpZywgc2VuZEJlbmNobWFya1N0ZXApOwotICBhZGRSZXN1
bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywgJ1NlbmQgQmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJp
bmcoY29uZmlnKSk7Ci0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIHJl
Y2VpdmVCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNvbmZpZy5hZGRUb0xvZygnUmVjZWl2ZSBiZW5j
aG1hcmsnKTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5kU3RyaW5nKGNvbmZpZykpOwot
Ci0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgYWRkVGFza3MoY29uZmln
LCByZWNlaXZlQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmln
LAotICAgICAgJ1JlY2VpdmUgQmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7
Ci0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIGJhdGNoQmVuY2htYXJr
KGNvbmZpZykgewotICBjb25maWcuYWRkVG9Mb2coJ0JhdGNoIGJlbmNobWFyaycpOwotICBjb25m
aWcuYWRkVG9Mb2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7Ci0KLSAgdGFza3MgPSBbXTsK
LSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICBhZGRUYXNrcyhjb25maWcsIHNlbmRCZW5jaG1hcmtT
dGVwKTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsICdTZW5kIEJlbmNobWFyayAn
ICsgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICBhZGRUYXNrcyhjb25maWcsIHJlY2VpdmVC
ZW5jaG1hcmtTdGVwKTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsICdSZWNlaXZl
IEJlbmNobWFyayAnICsKLSAgICAgIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgc3RhcnRC
ZW5jaG1hcmsoY29uZmlnKTsKLX0KLQotZnVuY3Rpb24gc3RvcChjb25maWcpIHsKLSAgY2xlYXJU
aW1lb3V0KHRpbWVySUQpOwotICB0aW1lcklEID0gbnVsbDsKLSAgY29uZmlnLmFkZFRvTG9nKCdT
dG9wcGVkJyk7Ci0gIGRlc3Ryb3lBbGxTb2NrZXRzKCk7Ci19Ci0KLW9ubWVzc2FnZSA9IGZ1bmN0
aW9uIChtZXNzYWdlKSB7Ci0gIHZhciBjb25maWcgPSBtZXNzYWdlLmRhdGEuY29uZmlnOwotICBj
b25maWcuYWRkVG9Mb2cgPSB3b3JrZXJBZGRUb0xvZzsKLSAgY29uZmlnLmFkZFRvU3VtbWFyeSA9
IHdvcmtlckFkZFRvU3VtbWFyeTsKLSAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IHdvcmtlck1lYXN1
cmVWYWx1ZTsKLSAgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnc2VuZEJlbmNobWFyaycpCi0g
ICAgc2VuZEJlbmNobWFyayhjb25maWcpOwotICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9
PT0gJ3JlY2VpdmVCZW5jaG1hcmsnKQotICAgIHJlY2VpdmVCZW5jaG1hcmsoY29uZmlnKTsKLSAg
ZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdiYXRjaEJlbmNobWFyaycpCi0gICAgYmF0
Y2hCZW5jaG1hcmsoY29uZmlnKTsKLSAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdz
dG9wJykKLSAgICBzdG9wKGNvbmZpZyk7Ci19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJrX2hl
bHBlcl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0YWQwYmZlZWZjNmY0
NDMwNTcxYjdiNTMyMzNmYjc5NTA2MTRjZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTMsIEdvb2ds
ZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIi
IkhhbmRsZXIgZm9yIGJlbmNobWFyay5odG1sLiIiIgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4
dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICAjIFR1cm4gb2ZmIGNvbXByZXNzaW9uLgotICAg
IHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBbXQotCi0KLWRlZiB3ZWJfc29ja2V0
X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgZGF0YSA9ICcnCi0KLSAgICB3aGlsZSBUcnVl
OgotICAgICAgICBjb21tYW5kID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkK
LSAgICAgICAgaWYgY29tbWFuZCBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAg
ICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWFuZCwgdW5pY29kZSk6Ci0gICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQgZGF0YTonICsgY29tbWFuZCkKLSAgICAgICAg
Y29tbWFuZHMgPSBjb21tYW5kLnNwbGl0KCcgJykKLSAgICAgICAgaWYgbGVuKGNvbW1hbmRzKSA9
PSAwOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjb21tYW5kIGRhdGE6
ICcgKyBjb21tYW5kKQotCi0gICAgICAgIGlmIGNvbW1hbmRzWzBdID09ICdyZWNlaXZlJzoKLSAg
ICAgICAgICAgIGlmIGxlbihjb21tYW5kcykgIT0gMjoKLSAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ0lsbGVnYWwgbnVtYmVyIG9mIGFy
Z3VtZW50cyBmb3Igc2VuZCBjb21tYW5kJyArCi0gICAgICAgICAgICAgICAgICAgICAgICBjb21t
YW5kKQotICAgICAgICAgICAgc2l6ZSA9IGludChjb21tYW5kc1sxXSkKLQotICAgICAgICAgICAg
IyBSZXVzZSBkYXRhIGlmIHBvc3NpYmxlLgotICAgICAgICAgICAgaWYgbGVuKGRhdGEpICE9IHNp
emU6Ci0gICAgICAgICAgICAgICAgZGF0YSA9ICdhJyAqIHNpemUKLSAgICAgICAgICAgIHJlcXVl
c3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShkYXRhLCBiaW5hcnk9VHJ1ZSkKLSAgICAgICAgZWxp
ZiBjb21tYW5kc1swXSA9PSAnc2VuZCc6Ci0gICAgICAgICAgICBpZiBsZW4oY29tbWFuZHMpICE9
IDI6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAg
ICAgICAgICdJbGxlZ2FsIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHJlY2VpdmUgY29tbWFuZCcg
KwotICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZCkKLSAgICAgICAgICAgIHZlcmlmeV9k
YXRhID0gY29tbWFuZHNbMV0gPT0gJzEnCi0KLSAgICAgICAgICAgIGRhdGEgPSByZXF1ZXN0Lndz
X3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICAgICAgaWYgZGF0YSBpcyBOb25lOgot
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1BheWxvYWQgbm90IHJlY2VpdmVkJykK
LSAgICAgICAgICAgIHNpemUgPSBsZW4oZGF0YSkKLQotICAgICAgICAgICAgaWYgdmVyaWZ5X2Rh
dGE6Ci0gICAgICAgICAgICAgICAgaWYgZGF0YSAhPSAnYScgKiBzaXplOgotICAgICAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdQYXlsb2FkIHZlcmlmaWNhdGlvbiBmYWlsZWQnKQot
Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2Uoc3RyKHNpemUpKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjb21t
YW5kOiAnICsgY29tbWFuZHNbMF0pCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9leGFtcGxlL2Nsb3NlX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvY2xvc2Vf
d3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNmIwODM4NDA4MTI0NTM5Nzk3
NjU3ZDQwZDY0Mjc4ZjFhNjQ4MWMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvY2xvc2Vfd3NoLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsNjkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0Ogot
IwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBzdHJ1Y3QKLQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IHN0cmVhbQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0
KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToK
LSAgICB3aGlsZSBUcnVlOgotICAgICAgICBsaW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2
ZV9tZXNzYWdlKCkKLSAgICAgICAgaWYgbGluZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIGNvZGUsIHJlYXNvbiA9IGxpbmUuc3BsaXQoJyAnLCAxKQotICAgICAgICBpZiBj
b2RlIGlzIE5vbmUgb3IgcmVhc29uIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAg
ICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbihpbnQoY29kZSksIHJlYXNvbikK
LSAgICAgICAgIyBjbG9zZV9jb25uZWN0aW9uKCkgaW5pdGlhdGVzIGNsb3NpbmcgaGFuZHNoYWtl
LiBJdCB2YWxpZGF0ZXMgY29kZQotICAgICAgICAjIGFuZCByZWFzb24uIElmIHlvdSB3YW50IHRv
IHNlbmQgYSBicm9rZW4gY2xvc2UgZnJhbWUgZm9yIGEgdGVzdCwKLSAgICAgICAgIyBmb2xsb3dp
bmcgY29kZSB3aWxsIGJlIHVzZWZ1bC4KLSAgICAgICAgIyA+IGRhdGEgPSBzdHJ1Y3QucGFjaygn
IUgnLCBpbnQoY29kZSkpICsgcmVhc29uLmVuY29kZSgnVVRGLTgnKQotICAgICAgICAjID4gcmVx
dWVzdC5jb25uZWN0aW9uLndyaXRlKHN0cmVhbS5jcmVhdGVfY2xvc2VfZnJhbWUoZGF0YSkpCi0g
ICAgICAgICMgPiAjIFN1cHByZXNzIHRvIHJlLXJlc3BvbmQgY2xpZW50IHJlc3BvbmRpbmcgY2xv
c2UgZnJhbWUuCi0gICAgICAgICMgPiByYWlzZSBFeGNlcHRpb24oImN1c3RvbWl6ZWQgc2VydmVy
IGluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZSIpCi0KLQotZGVmIHdlYl9zb2NrZXRfcGFzc2l2
ZV9jbG9zaW5nX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICAjIFNpbXBseSBlY2hvIGEgY2xvc2Ug
c3RhdHVzIGNvZGUKLSAgICBjb2RlLCByZWFzb24gPSByZXF1ZXN0LndzX2Nsb3NlX2NvZGUsIHJl
cXVlc3Qud3NfY2xvc2VfcmVhc29uCi0KLSAgICAjIHB5d2Vic29ja2V0IHNldHMgcHNldWRvIGNv
ZGUgZm9yIHJlY2VpdmluZyBhbiBlbXB0eSBib2R5IGNsb3NlIGZyYW1lLgotICAgIGlmIGNvZGUg
PT0gY29tbW9uLlNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQ6Ci0gICAgICAgIGNvZGUgPSBOb25l
Ci0gICAgICAgIHJlYXNvbiA9ICcnCi0gICAgcmV0dXJuIGNvZGUsIHJlYXNvbgotCi0KLSMgdmk6
c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jb25zb2xlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9leGFtcGxlL2NvbnNvbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggY2NkNmQ4ZjgwNjc2Yjk5OTFlMjJkZmM3ZWM4NTA4MzQxMWRkZDBiMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nv
bnNvbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxNyArMCwwIEBACi08IS0tCi1Db3B5cmln
aHQgMjAxMSwgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0tLT4KLQotPCEtLQotQSBzaW1wbGUgY29uc29sZSBmb3IgdGVzdGluZyBX
ZWJTb2NrZXQgc2VydmVyLgotCi1UeXBlIGFuIGFkZHJlc3MgaW50byB0aGUgdG9wIHRleHQgaW5w
dXQgYW5kIGNsaWNrIGNvbm5lY3QgdG8gZXN0YWJsaXNoCi1XZWJTb2NrZXQuIFRoZW4sIHR5cGUg
c29tZSBtZXNzYWdlIGludG8gdGhlIGJvdHRvbSB0ZXh0IGlucHV0IGFuZCBjbGljayBzZW5kCi10
byBzZW5kIHRoZSBtZXNzYWdlLiBSZWNlaXZlZC9zZW50IG1lc3NhZ2VzIGFuZCBjb25uZWN0aW9u
IHN0YXRlIHdpbGwgYmUgc2hvd24KLW9uIHRoZSBtaWRkbGUgdGV4dGFyZWEuCi0tLT4KLQotPGh0
bWw+Ci08aGVhZD4KLTx0aXRsZT5XZWJTb2NrZXQgY29uc29sZTwvdGl0bGU+Ci08c2NyaXB0Pgot
dmFyIHNvY2tldCA9IG51bGw7Ci0KLXZhciBzaG93VGltZVN0YW1wID0gZmFsc2U7Ci0KLXZhciBh
ZGRyZXNzQm94ID0gbnVsbDsKLXZhciBwcm90b2NvbHNCb3ggPSBudWxsOwotdmFyIGxvZ0JveCA9
IG51bGw7Ci12YXIgbWVzc2FnZUJveCA9IG51bGw7Ci12YXIgZmlsZUJveCA9IG51bGw7Ci12YXIg
Y29kZUJveCA9IG51bGw7Ci12YXIgcmVhc29uQm94ID0gbnVsbDsKLQotZnVuY3Rpb24gZ2V0VGlt
ZVN0YW1wKCkgewotICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7Ci19Ci0KLWZ1bmN0aW9u
IGFkZFRvTG9nKGxvZykgewotICBpZiAoc2hvd1RpbWVTdGFtcCkgewotICAgIGxvZ0JveC52YWx1
ZSArPSAnWycgKyBnZXRUaW1lU3RhbXAoKSArICddICc7Ci0gIH0KLSAgbG9nQm94LnZhbHVlICs9
IGxvZyArICdcbicKLSAgLy8gTGFyZ2UgZW5vdWdoIHRvIGtlZXAgc2hvd2luZyB0aGUgbGF0ZXN0
IG1lc3NhZ2UuCi0gIGxvZ0JveC5zY3JvbGxUb3AgPSAxMDAwMDAwOwotfQotCi1mdW5jdGlvbiBz
ZXRiaW5hcnl0eXBlKGJpbmFyeVR5cGUpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAgICBhZGRUb0xv
ZygnTm90IGNvbm5lY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5iaW5hcnlU
eXBlID0gYmluYXJ5VHlwZTsKLSAgYWRkVG9Mb2coJ1NldCBiaW5hcnlUeXBlIHRvICcgKyBiaW5h
cnlUeXBlKTsKLX0KLQotZnVuY3Rpb24gc2VuZCgpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAgICBh
ZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5z
ZW5kKG1lc3NhZ2VCb3gudmFsdWUpOwotICBhZGRUb0xvZygnPiAnICsgbWVzc2FnZUJveC52YWx1
ZSk7Ci0gIG1lc3NhZ2VCb3gudmFsdWUgPSAnJzsKLX0KLQotZnVuY3Rpb24gc2VuZGZpbGUoKSB7
Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAgICBy
ZXR1cm47Ci0gIH0KLQotICB2YXIgZmlsZXMgPSBmaWxlQm94LmZpbGVzOwotCi0gIGlmIChmaWxl
cy5sZW5ndGggPT0gMCkgewotICAgIGFkZFRvTG9nKCdGaWxlIG5vdCBzZWxlY3RlZCcpOwotICAg
IHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5zZW5kKGZpbGVzWzBdKTsKLSAgYWRkVG9Mb2coJz4g
U2VuZCAnICsgZmlsZXNbMF0ubmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xzKHBy
b3RvY29sc1RleHQpIHsKLSAgdmFyIHByb3RvY29scyA9IHByb3RvY29sc1RleHQuc3BsaXQoJywn
KTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm90b2NvbHMubGVuZ3RoOyArK2kpIHsKLSAgICBw
cm90b2NvbHNbaV0gPSBwcm90b2NvbHNbaV0udHJpbSgpOwotICB9Ci0KLSAgaWYgKHByb3RvY29s
cy5sZW5ndGggPT0gMCkgewotICAgIC8vIERvbid0IHBhc3MuCi0gICAgcHJvdG9jb2xzID0gbnVs
bDsKLSAgfSBlbHNlIGlmIChwcm90b2NvbHMubGVuZ3RoID09IDEpIHsKLSAgICBpZiAocHJvdG9j
b2xzWzBdLmxlbmd0aCA9PSAwKSB7Ci0gICAgICAvLyBEb24ndCBwYXNzLgotICAgICAgcHJvdG9j
b2xzID0gbnVsbDsKLSAgICB9IGVsc2UgewotICAgICAgLy8gUGFzcyBhcyBhIHN0cmluZy4KLSAg
ICAgIHByb3RvY29scyA9IHByb3RvY29sc1swXTsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gcHJv
dG9jb2xzOwotfQotCi1mdW5jdGlvbiBjb25uZWN0KCkgewotICB2YXIgdXJsID0gYWRkcmVzc0Jv
eC52YWx1ZTsKLSAgdmFyIHByb3RvY29scyA9IHBhcnNlUHJvdG9jb2xzKHByb3RvY29sc0JveC52
YWx1ZSk7Ci0KLSAgaWYgKCdXZWJTb2NrZXQnIGluIHdpbmRvdykgewotICAgIGlmIChwcm90b2Nv
bHMpIHsKLSAgICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJsLCBwcm90b2NvbHMpOwotICAg
IH0gZWxzZSB7Ci0gICAgICBzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVybCk7Ci0gICAgfQotICB9
IGVsc2UgewotICAgIHJldHVybjsKLSAgfQotCi0gIHNvY2tldC5vbm9wZW4gPSBmdW5jdGlvbiAo
KSB7Ci0gICAgdmFyIGV4dHJhSW5mbyA9IFtdOwotICAgIGlmICgoJ3Byb3RvY29sJyBpbiBzb2Nr
ZXQpICYmIHNvY2tldC5wcm90b2NvbCkgewotICAgICAgZXh0cmFJbmZvLnB1c2goJ3Byb3RvY29s
ID0gJyArIHNvY2tldC5wcm90b2NvbCk7Ci0gICAgfQotICAgIGlmICgoJ2V4dGVuc2lvbnMnIGlu
IHNvY2tldCkgJiYgc29ja2V0LmV4dGVuc2lvbnMpIHsKLSAgICAgIGV4dHJhSW5mby5wdXNoKCdl
eHRlbnNpb25zID0gJyArIHNvY2tldC5leHRlbnNpb25zKTsKLSAgICB9Ci0KLSAgICB2YXIgbG9n
TWVzc2FnZSA9ICdPcGVuZWQnOwotICAgIGlmIChleHRyYUluZm8ubGVuZ3RoID4gMCkgewotICAg
ICAgbG9nTWVzc2FnZSArPSAnICgnICsgZXh0cmFJbmZvLmpvaW4oJywgJykgKyAnKSc7Ci0gICAg
fQotICAgIGFkZFRvTG9nKGxvZ01lc3NhZ2UpOwotICB9OwotICBzb2NrZXQub25tZXNzYWdlID0g
ZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgaWYgKCgnQXJyYXlCdWZmZXInIGluIHdpbmRvdykgJiYg
KGV2ZW50LmRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpIHsKLSAgICAgIGFkZFRvTG9nKCc8
IFJlY2VpdmVkIGFuIEFycmF5QnVmZmVyIG9mICcgKyBldmVudC5kYXRhLmJ5dGVMZW5ndGggKwot
ICAgICAgICAgICAgICAgJyBieXRlcycpCi0gICAgfSBlbHNlIGlmICgoJ0Jsb2InIGluIHdpbmRv
dykgJiYgKGV2ZW50LmRhdGEgaW5zdGFuY2VvZiBCbG9iKSkgewotICAgICAgYWRkVG9Mb2coJzwg
UmVjZWl2ZWQgYSBCbG9iIG9mICcgKyBldmVudC5kYXRhLnNpemUgKyAnIGJ5dGVzJykKLSAgICB9
IGVsc2UgewotICAgICAgYWRkVG9Mb2coJzwgJyArIGV2ZW50LmRhdGEpOwotICAgIH0KLSAgfTsK
LSAgc29ja2V0Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7Ci0gICAgYWRkVG9Mb2coJ0Vycm9yJyk7
Ci0gIH07Ci0gIHNvY2tldC5vbmNsb3NlID0gZnVuY3Rpb24gKGV2ZW50KSB7Ci0gICAgdmFyIGxv
Z01lc3NhZ2UgPSAnQ2xvc2VkICgnOwotICAgIGlmICgoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSAm
JiAoJ0Nsb3NlRXZlbnQnIGluIHdpbmRvdykgJiYKLSAgICAgICAgKGV2ZW50IGluc3RhbmNlb2Yg
Q2xvc2VFdmVudCkpIHsKLSAgICAgIGxvZ01lc3NhZ2UgKz0gJ3dhc0NsZWFuID0gJyArIGV2ZW50
Lndhc0NsZWFuOwotICAgICAgLy8gY29kZSBhbmQgcmVhc29uIGFyZSBwcmVzZW50IG9ubHkgZm9y
Ci0gICAgICAvLyBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDYgYW5kIGxh
dGVyCi0gICAgICBpZiAoJ2NvZGUnIGluIGV2ZW50KSB7Ci0gICAgICAgIGxvZ01lc3NhZ2UgKz0g
JywgY29kZSA9ICcgKyBldmVudC5jb2RlOwotICAgICAgfQotICAgICAgaWYgKCdyZWFzb24nIGlu
IGV2ZW50KSB7Ci0gICAgICAgIGxvZ01lc3NhZ2UgKz0gJywgcmVhc29uID0gJyArIGV2ZW50LnJl
YXNvbjsKLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgbG9nTWVzc2FnZSArPSAnQ2xvc2VF
dmVudCBpcyBub3QgYXZhaWxhYmxlJzsKLSAgICB9Ci0gICAgYWRkVG9Mb2cobG9nTWVzc2FnZSAr
ICcpJyk7Ci0gIH07Ci0KLSAgaWYgKHByb3RvY29scykgewotICAgIGFkZFRvTG9nKCdDb25uZWN0
ICcgKyB1cmwgKyAnIChwcm90b2NvbHMgPSAnICsgcHJvdG9jb2xzICsgJyknKTsKLSAgfSBlbHNl
IHsKLSAgICBhZGRUb0xvZygnQ29ubmVjdCAnICsgdXJsKTsKLSAgfQotfQotCi1mdW5jdGlvbiBj
bG9zZVNvY2tldCgpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNvbm5l
Y3RlZCcpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGlmIChjb2RlQm94LnZhbHVlIHx8IHJlYXNv
bkJveC52YWx1ZSkgewotICAgIHNvY2tldC5jbG9zZShjb2RlQm94LnZhbHVlLCByZWFzb25Cb3gu
dmFsdWUpOwotICB9IGVsc2UgewotICAgIHNvY2tldC5jbG9zZSgpOwotICB9Ci19Ci0KLWZ1bmN0
aW9uIHByaW50U3RhdGUoKSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBj
b25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBhZGRUb0xvZygKLSAgICAgICd1cmwg
PSAnICsgc29ja2V0LnVybCArCi0gICAgICAnLCByZWFkeVN0YXRlID0gJyArIHNvY2tldC5yZWFk
eVN0YXRlICsKLSAgICAgICcsIGJ1ZmZlcmVkQW1vdW50ID0gJyArIHNvY2tldC5idWZmZXJlZEFt
b3VudCk7Ci19Ci0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIHZhciBzY2hlbWUgPSB3aW5kb3cubG9j
YXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicgPyAnd3NzOi8vJyA6ICd3czovLyc7Ci0gIHZhciBk
ZWZhdWx0QWRkcmVzcyA9IHNjaGVtZSArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgJy9lY2hvJzsK
LQotICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZHJlc3MnKTsKLSAg
cHJvdG9jb2xzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb3RvY29scycpOwotICBs
b2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0gIG1lc3NhZ2VCb3ggPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVzc2FnZScpOwotICBmaWxlQm94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ZpbGUnKTsKLSAgY29kZUJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb2RlJyk7Ci0gIHJlYXNvbkJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWFz
b24nKTsKLQotICBhZGRyZXNzQm94LnZhbHVlID0gZGVmYXVsdEFkZHJlc3M7Ci0KLSAgaWYgKCEo
J1dlYlNvY2tldCcgaW4gd2luZG93KSkgewotICAgIGFkZFRvTG9nKCdXZWJTb2NrZXQgaXMgbm90
IGF2YWlsYWJsZScpOwotICB9Ci19Ci08L3NjcmlwdD4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
Ci1mb3JtIHsKLSAgbWFyZ2luOiAwcHg7Ci19Ci0KLSNjb25uZWN0X2RpdiwgI2xvZ19kaXYsICNz
ZW5kX2RpdiwgI3NlbmRmaWxlX2RpdiwgI2Nsb3NlX2RpdiwgI3ByaW50c3RhdGVfZGl2IHsKLSAg
cGFkZGluZzogNXB4OwotICBtYXJnaW46IDVweDsKLSAgYm9yZGVyLXdpZHRoOiAwcHggMHB4IDBw
eCAxMHB4OwotICBib3JkZXItc3R5bGU6IHNvbGlkOwotICBib3JkZXItY29sb3I6IHNpbHZlcjsK
LX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci0KLTxkaXY+Ci0K
LTxkaXYgaWQ9ImNvbm5lY3RfZGl2Ij4KLSAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0iY29u
bmVjdCgpOyByZXR1cm4gZmFsc2U7Ij4KLSAgICB1cmwgPGlucHV0IHR5cGU9InRleHQiIGlkPSJh
ZGRyZXNzIiBzaXplPSI0MCI+Ci0gICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ImNvbm5l
Y3QiPgotICAgIDxici8+Ci0gICAgcHJvdG9jb2xzIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icHJv
dG9jb2xzIiBzaXplPSIyMCI+Ci0gIDwvZm9ybT4KLTwvZGl2PgotCi08ZGl2IGlkPSJsb2dfZGl2
Ij4KLSAgPHRleHRhcmVhIGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xzPSI0MCIgcmVhZG9ubHk+PC90
ZXh0YXJlYT4KLSAgPGJyLz4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IgotICAgICAgICAgbmFt
ZT0ic2hvd3RpbWVzdGFtcCIKLSAgICAgICAgIHZhbHVlPSJzaG93dGltZXN0YW1wIgotICAgICAg
ICAgb25jbGljaz0ic2hvd1RpbWVTdGFtcCA9IHRoaXMuY2hlY2tlZCI+U2hvdyB0aW1lIHN0YW1w
Ci08L2Rpdj4KLQotPGRpdiBpZD0ic2VuZF9kaXYiPgotICA8Zm9ybSBhY3Rpb249IiMiIG9uc3Vi
bWl0PSJzZW5kKCk7IHJldHVybiBmYWxzZTsiPgotICAgIGRhdGEgPGlucHV0IHR5cGU9InRleHQi
IGlkPSJtZXNzYWdlIiBzaXplPSI0MCI+Ci0gICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9
InNlbmQiPgotICA8L2Zvcm0+Ci08L2Rpdj4KLQotPGRpdiBpZD0ic2VuZGZpbGVfZGl2Ij4KLSAg
PGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0ic2VuZGZpbGUoKTsgcmV0dXJuIGZhbHNlOyI+Ci0g
ICAgPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlIiBzaXplPSI0MCI+Ci0gICAgPGlucHV0IHR5
cGU9InN1Ym1pdCIgdmFsdWU9InNlbmQgZmlsZSI+Ci0gIDwvZm9ybT4KLQotICBTZXQgYmluYXJ5
VHlwZQotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJiaW5hcnl0eXBlIgot
ICAgICAgICAgdmFsdWU9ImJsb2IiCi0gICAgICAgICBvbmNsaWNrPSJzZXRiaW5hcnl0eXBlKCdi
bG9iJykiIGNoZWNrZWQ+YmxvYgotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1l
PSJiaW5hcnl0eXBlIgotICAgICAgICAgdmFsdWU9ImFycmF5YnVmZmVyIgotICAgICAgICAgb25j
bGljaz0ic2V0YmluYXJ5dHlwZSgnYXJyYXlidWZmZXInKSI+YXJyYXlidWZmZXIKLTwvZGl2Pgot
Ci08ZGl2IGlkPSJjbG9zZV9kaXYiPgotICA8Zm9ybSBhY3Rpb249IiMiIG9uc3VibWl0PSJjbG9z
ZVNvY2tldCgpOyByZXR1cm4gZmFsc2U7Ij4KLSAgICBjb2RlIDxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0iY29kZSIgc2l6ZT0iMTAiPgotICAgIHJlYXNvbiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJl
YXNvbiIgc2l6ZT0iMjAiPgotICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJjbG9zZSI+
Ci0gIDwvZm9ybT4KLTwvZGl2PgotCi08ZGl2IGlkPSJwcmludHN0YXRlX2RpdiI+Ci0gIDxpbnB1
dCB0eXBlPSJidXR0b24iIHZhbHVlPSJwcmludCBzdGF0ZSIgb25jbGljaz0icHJpbnRTdGF0ZSgp
OyI+Ci08L2Rpdj4KLQotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUvY29va2llX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvY29va2llX3dz
aC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGIzMjcxNTJlNzAxZjdkMjAzMWQ3
YzljZTA0NjI0Y2ZhODRhYzE2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nvb2tpZV93c2gucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwzMiArMCwwIEBACi0jIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg
QlNELXN0eWxlCi0jIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmls
ZSBvciBhdAotIyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNl
bnNlcy9ic2QKLQotCi1pbXBvcnQgdXJscGFyc2UKLQotCi1kZWYgX2FkZF9zZXRfY29va2llKHJl
cXVlc3QsIHZhbHVlKToKLSAgICByZXF1ZXN0LmV4dHJhX2hlYWRlcnMuYXBwZW5kKCgnU2V0LUNv
b2tpZScsIHZhbHVlKSkKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6Ci0gICAgY29tcG9uZW50cyA9IHVybHBhcnNlLnVybHBhcnNlKHJlcXVlc3QudXJpKQot
ICAgIGNvbW1hbmQgPSBjb21wb25lbnRzWzRdCi0KLSAgICBPTkVfREFZX0xJRkUgPSAnTWF4LUFn
ZT04NjQwMCcKLQotICAgIGlmIGNvbW1hbmQgPT0gJ3NldCc6Ci0gICAgICAgIF9hZGRfc2V0X2Nv
b2tpZShyZXF1ZXN0LCAnOyAnLmpvaW4oWydmb289YmFyJywgT05FX0RBWV9MSUZFXSkpCi0gICAg
ZWxpZiBjb21tYW5kID09ICdzZXRfaHR0cG9ubHknOgotICAgICAgICBfYWRkX3NldF9jb29raWUo
cmVxdWVzdCwKLSAgICAgICAgICAgICc7ICcuam9pbihbJ2h0dHBPbmx5Rm9vPWJhcicsIE9ORV9E
QVlfTElGRSwgJ2h0dHBPbmx5J10pKQotICAgIGVsaWYgY29tbWFuZCA9PSAnY2xlYXInOgotICAg
ICAgICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwgJ2Zvbz0wOyBNYXgtQWdlPTAnKQotICAgICAg
ICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwgJ2h0dHBPbmx5Rm9vPTA7IE1heC1BZ2U9MCcpCi0K
LQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBwYXNzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9lY2hvX2NsaWVudC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTQzY2U2NGU4
Yjg4NjU2MmZjNjkyMDk4MzRiZjkyYjEzOTkxNDJmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fY2xpZW50LnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMTEyOCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMK
LSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlNpbXBsZSBXZWJTb2NrZXQgY2xpZW50IG5hbWVkIGVj
aG9fY2xpZW50IGp1c3QgYmVjYXVzZSBvZiBoaXN0b3JpY2FsIHJlYXNvbi4KLQotbW9kX3B5d2Vi
c29ja2V0IGRpcmVjdG9yeSBtdXN0IGJlIGluIFBZVEhPTlBBVEguCi0KLUV4YW1wbGUgVXNhZ2U6
Ci0KLSMgc2VydmVyIHNldHVwCi0gJSBjZCAkcHl3ZWJzb2NrZXQKLSAlIFBZVEhPTlBBVEg9JGN3
ZC9zcmMgcHl0aG9uIC4vbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgLXAgODg4MCBcCi0g
ICAgLWQgJGN3ZC9zcmMvZXhhbXBsZQotCi0jIHJ1biBjbGllbnQKLSAlIFBZVEhPTlBBVEg9JGN3
ZC9zcmMgcHl0aG9uIC4vc3JjL2V4YW1wbGUvZWNob19jbGllbnQucHkgLXAgODg4MCBcCi0gICAg
IC1zIGxvY2FsaG9zdCBcCi0gICAgIC1vIGh0dHA6Ly9sb2NhbGhvc3QgLXIgL2VjaG8gLW0gdGVz
dAotCi1vcgotCi0jIHJ1biBlY2hvIGNsaWVudCB0byB0ZXN0IElFVEYgSHlCaSAwMCBwcm90b2Nv
bAotIHJ1biB3aXRoIC0tcHJvdG9jb2wtdmVyc2lvbj1oeWJpMDAKLSIiIgotCi0KLWltcG9ydCBi
YXNlNjQKLWltcG9ydCBjb2RlY3MKLWltcG9ydCBsb2dnaW5nCi1mcm9tIG9wdHBhcnNlIGltcG9y
dCBPcHRpb25QYXJzZXIKLWltcG9ydCBvcwotaW1wb3J0IHJhbmRvbQotaW1wb3J0IHJlCi1pbXBv
cnQgc29ja2V0Ci1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgc3lzCi0KLWZyb20gbW9kX3B5d2Vic29j
a2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0
IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0
ZW5zaW9ucyBpbXBvcnQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IKLWZyb20g
bW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IF9QZXJNZXNzYWdlRGVmbGF0ZUZyYW1l
cgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgX3BhcnNlX3dpbmRvd19i
aXRzCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9tIG1vZF9weXdlYnNv
Y2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbU9wdGlvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCB1dGlsCi0KLQotX1RJTUVPVVRfU0VDID0gMTAKLV9VTkRFRklORURfUE9SVCA9IC0xCi0K
LV9VUEdSQURFX0hFQURFUiA9ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwotX1VQR1JBREVfSEVB
REVSX0hJWElFNzUgPSAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLV9DT05ORUNUSU9OX0hFQURF
UiA9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLQotIyBTcGVjaWFsIG1lc3NhZ2UgdGhhdCB0
ZWxscyB0aGUgZWNobyBzZXJ2ZXIgdG8gc3RhcnQgY2xvc2luZyBoYW5kc2hha2UKLV9HT09EQllF
X01FU1NBR0UgPSAnR29vZGJ5ZScKLQotX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzID0gJ2h5Ymkx
MycKLV9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCA9ICdoeWJpMDgnCi1fUFJPVE9DT0xfVkVSU0lP
Tl9IWUJJMDAgPSAnaHliaTAwJwotX1BST1RPQ09MX1ZFUlNJT05fSElYSUU3NSA9ICdoaXhpZTc1
JwotCi0jIENvbnN0YW50cyBmb3IgdGhlIC0tdGxzX21vZHVsZSBmbGFnLgotX1RMU19CWV9TVEFO
REFSRF9NT0RVTEUgPSAnc3NsJwotX1RMU19CWV9QWU9QRU5TU0wgPSAncHlvcGVuc3NsJwotCi0j
IFZhbHVlcyB1c2VkIGJ5IHRoZSAtLXRscy12ZXJzaW9uIGZsYWcuCi1fVExTX1ZFUlNJT05fU1NM
MjMgPSAnc3NsMjMnCi1fVExTX1ZFUlNJT05fU1NMMyA9ICdzc2wzJwotX1RMU19WRVJTSU9OX1RM
UzEgPSAndGxzMScKLQotCi1jbGFzcyBDbGllbnRIYW5kc2hha2VFcnJvcihFeGNlcHRpb24pOgot
ICAgIHBhc3MKLQotCi1kZWYgX2J1aWxkX21ldGhvZF9saW5lKHJlc291cmNlKToKLSAgICByZXR1
cm4gJ0dFVCAlcyBIVFRQLzEuMVxyXG4nICUgcmVzb3VyY2UKLQotCi1kZWYgX29yaWdpbl9oZWFk
ZXIoaGVhZGVyLCBvcmlnaW4pOgotICAgICMgNC4xIDEzLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBz
dHJpbmcgIk9yaWdpbjoiLCBhIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIsCi0gICAgIyBhbmQgdGhl
IC9vcmlnaW4vIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0byAvZmllbGRz
Ly4KLSAgICByZXR1cm4gJyVzOiAlc1xyXG4nICUgKGhlYWRlciwgb3JpZ2luLmxvd2VyKCkpCi0K
LQotZGVmIF9mb3JtYXRfaG9zdF9oZWFkZXIoaG9zdCwgcG9ydCwgc2VjdXJlKToKLSAgICAjIDQu
MSA5LiBMZXQgL2hvc3Rwb3J0LyBiZSBhbiBlbXB0eSBzdHJpbmcuCi0gICAgIyA0LjEgMTAuIEFw
cGVuZCB0aGUgL2hvc3QvIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0bwot
ICAgICMgL2hvc3Rwb3J0LwotICAgIGhvc3Rwb3J0ID0gaG9zdC5sb3dlcigpCi0gICAgIyA0LjEg
MTEuIElmIC9zZWN1cmUvIGlzIGZhbHNlLCBhbmQgL3BvcnQvIGlzIG5vdCA4MCwgb3IgaWYgL3Nl
Y3VyZS8KLSAgICAjIGlzIHRydWUsIGFuZCAvcG9ydC8gaXMgbm90IDQ0MywgdGhlbiBhcHBlbmQg
YSBVKzAwM0EgQ09MT04gY2hhcmFjdGVyCi0gICAgIyAoOikgZm9sbG93ZWQgYnkgdGhlIHZhbHVl
IG9mIC9wb3J0LywgZXhwcmVzc2VkIGFzIGEgYmFzZS10ZW4gaW50ZWdlciwKLSAgICAjIHRvIC9o
b3N0cG9ydC8KLSAgICBpZiAoKG5vdCBzZWN1cmUgYW5kIHBvcnQgIT0gY29tbW9uLkRFRkFVTFRf
V0VCX1NPQ0tFVF9QT1JUKSBvcgotICAgICAgICAoc2VjdXJlIGFuZCBwb3J0ICE9IGNvbW1vbi5E
RUZBVUxUX1dFQl9TT0NLRVRfU0VDVVJFX1BPUlQpKToKLSAgICAgICAgaG9zdHBvcnQgKz0gJzon
ICsgc3RyKHBvcnQpCi0gICAgIyA0LjEgMTIuIGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZyAi
SG9zdDoiLCBhIFUrMDAyMCBTUEFDRQotICAgICMgY2hhcmFjdGVyLCBhbmQgL2hvc3Rwb3J0Lywg
dG8gL2ZpZWxkcy8uCi0gICAgcmV0dXJuICclczogJXNcclxuJyAlIChjb21tb24uSE9TVF9IRUFE
RVIsIGhvc3Rwb3J0KQotCi0KLWRlZiBfcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIGxlbmd0aCk6Ci0g
ICAgYnl0ZXMgPSBbXQotICAgIHJlbWFpbmluZyA9IGxlbmd0aAotICAgIHdoaWxlIHJlbWFpbmlu
ZyA+IDA6Ci0gICAgICAgIHJlY2VpdmVkX2J5dGVzID0gc29ja2V0LnJlY3YocmVtYWluaW5nKQot
ICAgICAgICBpZiBub3QgcmVjZWl2ZWRfYnl0ZXM6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9y
KAotICAgICAgICAgICAgICAgICdDb25uZWN0aW9uIGNsb3NlZCBiZWZvcmUgcmVjZWl2aW5nIHJl
cXVlc3RlZCBsZW5ndGggJwotICAgICAgICAgICAgICAgICcocmVxdWVzdGVkICVkIGJ5dGVzIGJ1
dCByZWNlaXZlZCBvbmx5ICVkIGJ5dGVzKScgJQotICAgICAgICAgICAgICAgIChsZW5ndGgsIGxl
bmd0aCAtIHJlbWFpbmluZykpCi0gICAgICAgIGJ5dGVzLmFwcGVuZChyZWNlaXZlZF9ieXRlcykK
LSAgICAgICAgcmVtYWluaW5nIC09IGxlbihyZWNlaXZlZF9ieXRlcykKLSAgICByZXR1cm4gJycu
am9pbihieXRlcykKLQotCi1kZWYgX2dldF9tYW5kYXRvcnlfaGVhZGVyKGZpZWxkcywgbmFtZSk6
Ci0gICAgIiIiR2V0cyB0aGUgdmFsdWUgb2YgdGhlIGhlYWRlciBzcGVjaWZpZWQgYnkgbmFtZSBm
cm9tIGZpZWxkcy4KLQotICAgIFRoaXMgZnVuY3Rpb24gZXhwZWN0cyB0aGF0IHRoZXJlJ3Mgb25s
eSBvbmUgaGVhZGVyIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lCi0gICAgaW4gZmllbGRzLiBPdGhl
cndpc2UsIHJhaXNlcyBhbiBDbGllbnRIYW5kc2hha2VFcnJvci4KLSAgICAiIiIKLQotICAgIHZh
bHVlcyA9IGZpZWxkcy5nZXQobmFtZS5sb3dlcigpKQotICAgIGlmIHZhbHVlcyBpcyBOb25lIG9y
IGxlbih2YWx1ZXMpID09IDA6Ci0gICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAot
ICAgICAgICAgICAgJyVzIGhlYWRlciBub3QgZm91bmQ6ICVyJyAlIChuYW1lLCB2YWx1ZXMpKQot
ICAgIGlmIGxlbih2YWx1ZXMpID4gMToKLSAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJy
b3IoCi0gICAgICAgICAgICAnTXVsdGlwbGUgJXMgaGVhZGVycyBmb3VuZDogJXInICUgKG5hbWUs
IHZhbHVlcykpCi0gICAgcmV0dXJuIHZhbHVlc1swXQotCi0KLWRlZiBfdmFsaWRhdGVfbWFuZGF0
b3J5X2hlYWRlcihmaWVsZHMsIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhwZWN0ZWRfdmFsdWUsIGNhc2Vfc2Vuc2l0aXZlPUZhbHNlKToKLSAgICAiIiJHZXRzIGFuZCB2
YWxpZGF0ZXMgdGhlIHZhbHVlIG9mIHRoZSBoZWFkZXIgc3BlY2lmaWVkIGJ5IG5hbWUgZnJvbQot
ICAgIGZpZWxkcy4KLQotICAgIElmIGV4cGVjdGVkX3ZhbHVlIGlzIHNwZWNpZmllZCwgY29tcGFy
ZXMgZXhwZWN0ZWQgdmFsdWUgYW5kIGFjdHVhbCB2YWx1ZQotICAgIGFuZCByYWlzZXMgYW4gQ2xp
ZW50SGFuZHNoYWtlRXJyb3Igb24gZmFpbHVyZS4gWW91IGNhbiBzcGVjaWZ5IGNhc2UKLSAgICBz
ZW5zaXRpdmVuZXNzIGluIHRoaXMgY29tcGFyaXNvbiBieSBjYXNlX3NlbnNpdGl2ZSBwYXJhbWV0
ZXIuIFRoaXMgZnVuY3Rpb24KLSAgICBleHBlY3RzIHRoYXQgdGhlcmUncyBvbmx5IG9uZSBoZWFk
ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgaW4gZmllbGRzLgotICAgIE90aGVyd2lzZSwgcmFp
c2VzIGFuIENsaWVudEhhbmRzaGFrZUVycm9yLgotICAgICIiIgotCi0gICAgdmFsdWUgPSBfZ2V0
X21hbmRhdG9yeV9oZWFkZXIoZmllbGRzLCBuYW1lKQotCi0gICAgaWYgKChjYXNlX3NlbnNpdGl2
ZSBhbmQgdmFsdWUgIT0gZXhwZWN0ZWRfdmFsdWUpIG9yCi0gICAgICAgIChub3QgY2FzZV9zZW5z
aXRpdmUgYW5kIHZhbHVlLmxvd2VyKCkgIT0gZXhwZWN0ZWRfdmFsdWUubG93ZXIoKSkpOgotICAg
ICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICdJbGxlZ2FsIHZh
bHVlIGZvciBoZWFkZXIgJXM6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAg
ICAgICAgIChuYW1lLCBleHBlY3RlZF92YWx1ZSwgdmFsdWUpKQotCi0KLWNsYXNzIF9UTFNTb2Nr
ZXQob2JqZWN0KToKLSAgICAiIiJXcmFwcGVyIGZvciBhIFRMUyBjb25uZWN0aW9uLiIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsCi0gICAgICAgICAgICAgICAgIHJhd19zb2NrZXQsIHRsc19t
b2R1bGUsIHRsc192ZXJzaW9uLCBkaXNhYmxlX3Rsc19jb21wcmVzc2lvbik6Ci0gICAgICAgIHNl
bGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIGlmIHRs
c19tb2R1bGUgPT0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEU6Ci0gICAgICAgICAgICBpZiB0bHNf
dmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fU1NMMjM6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9
IHNzbC5QUk9UT0NPTF9TU0x2MjMKLSAgICAgICAgICAgIGVsaWYgdGxzX3ZlcnNpb24gPT0gX1RM
U19WRVJTSU9OX1NTTDM6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9IHNzbC5QUk9UT0NPTF9T
U0x2MwotICAgICAgICAgICAgZWxpZiB0bHNfdmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fVExTMToK
LSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gc3NsLlBST1RPQ09MX1RMU3YxCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAg
ICAgICAgICdJbnZhbGlkIC0tdGxzLXZlcnNpb24gZmxhZzogJXInICUgdGxzX3ZlcnNpb24pCi0K
LSAgICAgICAgICAgIGlmIGRpc2FibGVfdGxzX2NvbXByZXNzaW9uOgotICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICctLWRpc2FibGUtdGxzLWNv
bXByZXNzaW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHNzbCAnCi0gICAgICAgICAgICAgICAgICAg
ICdtb2R1bGUnKQotCi0gICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0ID0gc3NsLndyYXBfc29j
a2V0KHJhd19zb2NrZXQsIHNzbF92ZXJzaW9uPXZlcnNpb24pCi0KLSAgICAgICAgICAgICMgUHJp
bnQgY2lwaGVyIGluIHVzZS4gSGFuZHNoYWtlIGlzIGRvbmUgb24gd3JhcF9zb2NrZXQgY2FsbC4K
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCJDaXBoZXI6ICVzIiwgc2VsZi5fdGxzX3Nv
Y2tldC5jaXBoZXIoKSkKLSAgICAgICAgZWxpZiB0bHNfbW9kdWxlID09IF9UTFNfQllfUFlPUEVO
U1NMOgotICAgICAgICAgICAgaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1NTTDIzOgot
ICAgICAgICAgICAgICAgIHZlcnNpb24gPSBPcGVuU1NMLlNTTC5TU0x2MjNfTUVUSE9ECi0gICAg
ICAgICAgICBlbGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9TU0wzOgotICAgICAgICAg
ICAgICAgIHZlcnNpb24gPSBPcGVuU1NMLlNTTC5TU0x2M19NRVRIT0QKLSAgICAgICAgICAgIGVs
aWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1RMUzE6Ci0gICAgICAgICAgICAgICAgdmVy
c2lvbiA9IE9wZW5TU0wuU1NMLlRMU3YxX01FVEhPRAotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnSW52YWxp
ZCAtLXRscy12ZXJzaW9uIGZsYWc6ICVyJyAlIHRsc192ZXJzaW9uKQotCi0gICAgICAgICAgICBj
b250ZXh0ID0gT3BlblNTTC5TU0wuQ29udGV4dCh2ZXJzaW9uKQotCi0gICAgICAgICAgICBpZiBk
aXNhYmxlX3Rsc19jb21wcmVzc2lvbjoKLSAgICAgICAgICAgICAgICAjIE9QX05PX0NPTVBSRVNT
SU9OIGlzIG5vdCBkZWZpbmVkIGluIE9wZW5TU0wgbW9kdWxlLgotICAgICAgICAgICAgICAgIGNv
bnRleHQuc2V0X29wdGlvbnMoMHgwMDAyMDAwMCkKLQotICAgICAgICAgICAgc2VsZi5fdGxzX3Nv
Y2tldCA9IE9wZW5TU0wuU1NMLkNvbm5lY3Rpb24oY29udGV4dCwgcmF3X3NvY2tldCkKLSAgICAg
ICAgICAgICMgQ2xpZW50IG1vZGUuCi0gICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0LnNldF9j
b25uZWN0X3N0YXRlKCkKLSAgICAgICAgICAgIHNlbGYuX3Rsc19zb2NrZXQuc2V0YmxvY2tpbmco
VHJ1ZSkKLQotICAgICAgICAgICAgIyBEbyBoYW5kc2hha2Ugbm93IChub3QgbmVjZXNzYXJ5KS4K
LSAgICAgICAgICAgIHNlbGYuX3Rsc19zb2NrZXQuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ05vIFRMUyBzdXBwb3J0IG1vZHVsZSBp
cyBhdmFpbGFibGUnKQotCi0gICAgZGVmIHNlbmQoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHJldHVy
biBzZWxmLl90bHNfc29ja2V0LndyaXRlKGRhdGEpCi0KLSAgICBkZWYgc2VuZGFsbChzZWxmLCBk
YXRhKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19zb2NrZXQuc2VuZGFsbChkYXRhKQotCi0g
ICAgZGVmIHJlY3Yoc2VsZiwgc2l6ZT0tMSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNfc29j
a2V0LnJlYWQoc2l6ZSkKLQotICAgIGRlZiBjbG9zZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3Rsc19zb2NrZXQuY2xvc2UoKQotCi0gICAgZGVmIGdldHBlZXJuYW1lKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tldC5nZXRwZWVybmFtZSgpCi0KLQotY2xhc3MgQ2xp
ZW50SGFuZHNoYWtlQmFzZShvYmplY3QpOgotICAgICIiIkEgYmFzZSBjbGFzcyBmb3IgV2ViU29j
a2V0IG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvcnMgZm9yIGVhY2gKLSAgICBwcm90b2NvbCB2
ZXJzaW9uLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxm
Ll9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgIGRlZiBfcmVhZF9m
aWVsZHMoc2VsZik6Ci0gICAgICAgICMgNC4xIDMyLiBsZXQgL2ZpZWxkcy8gYmUgYSBsaXN0IG9m
IG5hbWUtdmFsdWUgcGFpcnMsIGluaXRpYWxseSBlbXB0eS4KLSAgICAgICAgZmllbGRzID0ge30K
LSAgICAgICAgd2hpbGUgVHJ1ZTogICMgIkZpZWxkIgotICAgICAgICAgICAgIyA0LjEgMzMuIGxl
dCAvbmFtZS8gYW5kIC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAgICAgICAgICAgIG5h
bWUgPSAnJwotICAgICAgICAgICAgdmFsdWUgPSAnJwotICAgICAgICAgICAgIyA0LjEgMzQuIHJl
YWQgL25hbWUvCi0gICAgICAgICAgICBuYW1lID0gc2VsZi5fcmVhZF9uYW1lKCkKLSAgICAgICAg
ICAgIGlmIG5hbWUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAg
IyA0LjEgMzUuIHJlYWQgc3BhY2VzCi0gICAgICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBTa2lw
IG9ubHkgb25lIHNwYWNlIGFzIGRlc2NyaWJlZCBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNo
ID0gc2VsZi5fc2tpcF9zcGFjZXMoKQotICAgICAgICAgICAgIyA0LjEgMzYuIHJlYWQgL3ZhbHVl
LwotICAgICAgICAgICAgdmFsdWUgPSBzZWxmLl9yZWFkX3ZhbHVlKGNoKQotICAgICAgICAgICAg
IyA0LjEgMzcuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgotICAgICAgICAgICAgY2ggPSBf
cmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBpZiBjaCAhPSAnXG4n
OiAgIyAweDBBCi0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0g
ICAgICAgICAgICAgICAgICAgICdFeHBlY3RlZCBMRiBidXQgZm91bmQgJXIgd2hpbGUgcmVhZGlu
ZyB2YWx1ZSAlciBmb3IgJwotICAgICAgICAgICAgICAgICAgICAnaGVhZGVyICVyJyAlIChjaCwg
dmFsdWUsIG5hbWUpKQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCAl
ciBoZWFkZXInLCBuYW1lKQotICAgICAgICAgICAgIyA0LjEgMzguIGFwcGVuZCBhbiBlbnRyeSB0
byB0aGUgL2ZpZWxkcy8gbGlzdCB0aGF0IGhhcyB0aGUgbmFtZQotICAgICAgICAgICAgIyBnaXZl
biBieSB0aGUgc3RyaW5nIG9idGFpbmVkIGJ5IGludGVycHJldGluZyB0aGUgL25hbWUvIGJ5dGUK
LSAgICAgICAgICAgICMgYXJyYXkgYXMgYSBVVEYtOCBzdHJlYW0gYW5kIHRoZSB2YWx1ZSBnaXZl
biBieSB0aGUgc3RyaW5nCi0gICAgICAgICAgICAjIG9idGFpbmVkIGJ5IGludGVycHJldGluZyB0
aGUgL3ZhbHVlLyBieXRlIGFycmF5IGFzIGEgVVRGLTggYnl0ZQotICAgICAgICAgICAgIyBzdHJl
YW0uCi0gICAgICAgICAgICBmaWVsZHMuc2V0ZGVmYXVsdChuYW1lLCBbXSkuYXBwZW5kKHZhbHVl
KQotICAgICAgICAgICAgIyA0LjEgMzkuIHJldHVybiB0byB0aGUgIkZpZWxkIiBzdGVwIGFib3Zl
Ci0gICAgICAgIHJldHVybiBmaWVsZHMKLQotICAgIGRlZiBfcmVhZF9uYW1lKHNlbGYpOgotICAg
ICAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBiZSBlbXB0eSBieXRlIGFycmF5cwotICAgICAgICBu
YW1lID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICMgNC4xIDM0LiByZWFk
IGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMo
c2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgaWYgY2ggPT0gJ1xyJzogICMgMHgwRAotICAg
ICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBlbGlmIGNoID09ICdcbic6ICAj
IDB4MEEKLSAgICAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAg
ICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgTEYgd2hlbiByZWFkaW5nIGhlYWRlciBuYW1lICVy
JyAlIG5hbWUpCi0gICAgICAgICAgICBlbGlmIGNoID09ICc6JzogICMgMHgzQQotICAgICAgICAg
ICAgICAgIHJldHVybiBuYW1lCi0gICAgICAgICAgICBlbGlmIGNoID49ICdBJyBhbmQgY2ggPD0g
J1onOiAgIyBSYW5nZSAweDMxIHRvIDB4NUEKLSAgICAgICAgICAgICAgICBjaCA9IGNocihvcmQo
Y2gpICsgMHgyMCkKLSAgICAgICAgICAgICAgICBuYW1lICs9IGNoCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIG5hbWUgKz0gY2gKLQotICAgIGRlZiBfc2tpcF9zcGFjZXMoc2Vs
Zik6Ci0gICAgICAgICMgNC4xIDM1LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAg
ICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29j
a2V0LCAxKQotICAgICAgICAgICAgaWYgY2ggPT0gJyAnOiAgIyAweDIwCi0gICAgICAgICAgICAg
ICAgY29udGludWUKLSAgICAgICAgICAgIHJldHVybiBjaAotCi0gICAgZGVmIF9yZWFkX3ZhbHVl
KHNlbGYsIGNoKToKLSAgICAgICAgIyA0LjEgMzMuIGxldCAvdmFsdWUvIGJlIGVtcHR5IGJ5dGUg
YXJyYXlzCi0gICAgICAgIHZhbHVlID0gJycKLSAgICAgICAgIyA0LjEgMzYuIHJlYWQgYSBieXRl
IGZyb20gc2VydmVyLgotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYgY2ggPT0g
J1xyJzogICMgMHgwRAotICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZQotICAgICAgICAgICAg
ZWxpZiBjaCA9PSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFu
ZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIExGIHdoZW4gcmVh
ZGluZyBoZWFkZXIgdmFsdWUgJXInICUgdmFsdWUpCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgIHZhbHVlICs9IGNoCi0gICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNl
bGYuX3NvY2tldCwgMSkKLQotCi1kZWYgX2dldF9wZXJtZXNzYWdlX2RlZmxhdGVfZnJhbWVyKGV4
dGVuc2lvbl9yZXNwb25zZSk6Ci0gICAgIiIiVmFsaWRhdGUgdGhlIHJlc3BvbnNlIGFuZCByZXR1
cm4gYSBmcmFtZXIgb2JqZWN0IHVzaW5nIHRoZSBwYXJhbWV0ZXJzIGluCi0gICAgdGhlIHJlc3Bv
bnNlLiBUaGlzIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCB0aGUgc2VydmVyXy4qIHBhcmFtZXRlcnMu
Ci0gICAgIiIiCi0KLSAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRzID0gTm9uZQotICAgIGNsaWVu
dF9ub19jb250ZXh0X3Rha2VvdmVyID0gTm9uZQotCi0gICAgY2xpZW50X21heF93aW5kb3dfYml0
c19uYW1lID0gKAotICAgICAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNz
b3IuCi0gICAgICAgICAgICAgICAgICAgIF9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKQot
ICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyX25hbWUgPSAoCi0gICAgICAgICAgICBQZXJN
ZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nvci4KLSAgICAgICAgICAgICAgICAgICAgX0NM
SUVOVF9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNKQotCi0gICAgIyBXZSBkaWRuJ3Qgc2VuZCBh
bnkgc2VydmVyXy4qIHBhcmFtZXRlci4KLSAgICAjIEhhbmRsZSB0aG9zZSBwYXJhbWV0ZXJzIGFz
IGludmFsaWQgaWYgZm91bmQgaW4gdGhlIHJlc3BvbnNlLgotCi0gICAgZm9yIHBhcmFtX25hbWUs
IHBhcmFtX3ZhbHVlIGluIGV4dGVuc2lvbl9yZXNwb25zZS5nZXRfcGFyYW1ldGVycygpOgotICAg
ICAgICBpZiBwYXJhbV9uYW1lID09IGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZToKLSAgICAg
ICAgICAgIGlmIGNsaWVudF9tYXhfd2luZG93X2JpdHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAnTXVsdGlwbGUgJXMgZm91bmQnICUgY2xpZW50X21heF93aW5kb3dfYml0c19uYW1lKQotCi0g
ICAgICAgICAgICBwYXJzZWRfdmFsdWUgPSBfcGFyc2Vfd2luZG93X2JpdHMocGFyYW1fdmFsdWUp
Ci0gICAgICAgICAgICBpZiBwYXJzZWRfdmFsdWUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBy
YWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICdCYWQg
JXM6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAoY2xpZW50X21heF93aW5kb3dfYml0
c19uYW1lLCBwYXJhbV92YWx1ZSkpCi0gICAgICAgICAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRz
ID0gcGFyc2VkX3ZhbHVlCi0gICAgICAgIGVsaWYgcGFyYW1fbmFtZSA9PSBjbGllbnRfbm9fY29u
dGV4dF90YWtlb3Zlcl9uYW1lOgotICAgICAgICAgICAgaWYgY2xpZW50X25vX2NvbnRleHRfdGFr
ZW92ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtl
RXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGlwbGUgJXMgZm91bmQnICUgY2xp
ZW50X25vX2NvbnRleHRfdGFrZW92ZXJfbmFtZSkKLQotICAgICAgICAgICAgaWYgcGFyYW1fdmFs
dWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJy
b3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAnQmFkICVzOiBIYXMgdmFsdWUgJXInICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgIChjbGllbnRfbm9fY29udGV4dF90YWtlb3Zlcl9uYW1lLCBw
YXJhbV92YWx1ZSkpCi0gICAgICAgICAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IFRy
dWUKLQotICAgIGlmIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyIGlzIE5vbmU6Ci0gICAgICAg
IGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0gRmFsc2UKLQotICAgIHJldHVybiBfUGVyTWVz
c2FnZURlZmxhdGVGcmFtZXIoY2xpZW50X21heF93aW5kb3dfYml0cywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0KLWNs
YXNzIENsaWVudEhhbmRzaGFrZVByb2Nlc3NvcihDbGllbnRIYW5kc2hha2VCYXNlKToKLSAgICAi
IiJXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvcgotICAgIGRyYWZ0LWll
dGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wNiBhbmQgbGF0ZXIuCi0gICAgIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0LCBvcHRpb25zKToKLSAgICAgICAgc3VwZXIoQ2xp
ZW50SGFuZHNoYWtlUHJvY2Vzc29yLCBzZWxmKS5fX2luaXRfXygpCi0KLSAgICAgICAgc2VsZi5f
c29ja2V0ID0gc29ja2V0Ci0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICBkZWYg
aGFuZHNoYWtlKHNlbGYpOgotICAgICAgICAiIiJQZXJmb3JtcyBvcGVuaW5nIGhhbmRzaGFrZSBv
biB0aGUgc3BlY2lmaWVkIHNvY2tldC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBD
bGllbnRIYW5kc2hha2VFcnJvcjogaGFuZHNoYWtlIGZhaWxlZC4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgcmVxdWVzdF9saW5lID0gX2J1aWxkX21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMucmVz
b3VyY2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50XCdzIG9wZW5pbmcgaGFu
ZHNoYWtlIFJlcXVlc3QtTGluZTogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdF9saW5lKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCi0K
LSAgICAgICAgZmllbGRzID0gW10KLSAgICAgICAgZmllbGRzLmFwcGVuZChfZm9ybWF0X2hvc3Rf
aGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnVzZV90bHMpKQotICAgICAgICBmaWVsZHMuYXBwZW5kKF9VUEdSQURFX0hFQURFUikKLSAgICAg
ICAgZmllbGRzLmFwcGVuZChfQ09OTkVDVElPTl9IRUFERVIpCi0gICAgICAgIGlmIHNlbGYuX29w
dGlvbnMub3JpZ2luIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5w
cm90b2NvbF92ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwODoKLSAgICAgICAgICAg
ICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKAotICAgICAgICAgICAgICAgICAgICBj
b21tb24uU0VDX1dFQlNPQ0tFVF9PUklHSU5fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLm9yaWdpbikpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFkZXIoY29tbW9uLk9SSUdJTl9IRUFERVIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLm9y
aWdpbikpCi0KLSAgICAgICAgb3JpZ2luYWxfa2V5ID0gb3MudXJhbmRvbSgxNikKLSAgICAgICAg
c2VsZi5fa2V5ID0gYmFzZTY0LmI2NGVuY29kZShvcmlnaW5hbF9rZXkpCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICclczogJXIgKCVzKScsCi0gICAgICAgICAgICBj
b21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSLAotICAgICAgICAgICAgc2VsZi5fa2V5LAot
ICAgICAgICAgICAgdXRpbC5oZXhpZnkob3JpZ2luYWxfa2V5KSkKLSAgICAgICAgZmllbGRzLmFw
cGVuZCgKLSAgICAgICAgICAgICclczogJXNcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9L
RVlfSEVBREVSLCBzZWxmLl9rZXkpKQotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyc2lv
bl9oZWFkZXIgPiAwOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnJXM6ICVkXHJcbicgJSAo
Y29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnZlcnNpb25faGVhZGVyKSkKLSAg
ICAgICAgZWxpZiBzZWxmLl9vcHRpb25zLnByb3RvY29sX3ZlcnNpb24gPT0gX1BST1RPQ09MX1ZF
UlNJT05fSFlCSTA4OgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnJXM6ICVkXHJcbicgJSAo
Y29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uVkVSU0lPTl9IWUJJMDgpKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnJXM6ICVkXHJcbicgJSAoY29tbW9uLlNF
Q19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVCkpCi0KLSAgICAgICAgZXh0
ZW5zaW9uc190b19yZXF1ZXN0ID0gW10KLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmRlZmxh
dGVfZnJhbWU6Ci0gICAgICAgICAgICBleHRlbnNpb25zX3RvX3JlcXVlc3QuYXBwZW5kKAotICAg
ICAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJB
TUVfRVhURU5TSU9OKSkKLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdl
X2RlZmxhdGU6Ci0gICAgICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyKAotICAgICAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVO
U0lPTikKLSAgICAgICAgICAgICMgQWNjZXB0IHRoZSBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGV4
dGVuc2lvbiBwYXJhbWV0ZXIgYnkgZGVmYXVsdC4KLSAgICAgICAgICAgIGV4dGVuc2lvbi5hZGRf
cGFyYW1ldGVyKAotICAgICAgICAgICAgICAgICAgICBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lv
blByb2Nlc3Nvci4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfQ0xJRU5UX01BWF9XSU5E
T1dfQklUU19QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgTm9uZSkKLSAgICAgICAgICAgIGV4
dGVuc2lvbnNfdG9fcmVxdWVzdC5hcHBlbmQoZXh0ZW5zaW9uKQotCi0gICAgICAgIGlmIGxlbihl
eHRlbnNpb25zX3RvX3JlcXVlc3QpICE9IDA6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKAot
ICAgICAgICAgICAgICAgICclczogJXNcclxuJyAlCi0gICAgICAgICAgICAgICAgKGNvbW1vbi5T
RUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLAotICAgICAgICAgICAgICAgICBjb21tb24u
Zm9ybWF0X2V4dGVuc2lvbnMoZXh0ZW5zaW9uc190b19yZXF1ZXN0KSkpCi0KLSAgICAgICAgZm9y
IGZpZWxkIGluIGZpZWxkczoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxk
KQotCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxuJykKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ1NlbnQgY2xpZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlIGhlYWRlcnM6
ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcykKLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdTdGFydCByZWFkaW5nIFN0YXR1cy1MaW5lJykKLQotICAgICAgICBzdGF0
dXNfbGluZSA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IF9yZWNl
aXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIHN0YXR1c19saW5lICs9IGNo
Ci0gICAgICAgICAgICBpZiBjaCA9PSAnXG4nOgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAg
ICAgICAgbSA9IHJlLm1hdGNoKCdIVFRQL1xcZCtcLlxcZCsgKFxcZFxcZFxcZCkgLipcclxuJywg
c3RhdHVzX2xpbmUpCi0gICAgICAgIGlmIG0gaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIENs
aWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdXcm9uZyBzdGF0dXMgbGluZSBm
b3JtYXQ6ICVyJyAlIHN0YXR1c19saW5lKQotICAgICAgICBzdGF0dXNfY29kZSA9IG0uZ3JvdXAo
MSkKLSAgICAgICAgaWYgc3RhdHVzX2NvZGUgIT0gJzEwMSc6Ci0gICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ1VuZXhwZWN0ZWQgc3RhdHVzIGNvZGUgJXMgd2l0aCBmb2xsb3dpbmcgJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWFkZXJzOiAlcicsIHN0YXR1c19jb2Rl
LCBzZWxmLl9yZWFkX2ZpZWxkcygpKQotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtl
RXJyb3IoCi0gICAgICAgICAgICAgICAgJ0V4cGVjdGVkIEhUVFAgc3RhdHVzIGNvZGUgMTAxIGJ1
dCBmb3VuZCAlcicgJSBzdGF0dXNfY29kZSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1JlY2VpdmVkIHZhbGlkIFN0YXR1cy1MaW5lJykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdTdGFydCByZWFkaW5nIGhlYWRlcnMgdW50aWwgd2Ugc2VlIGFuIGVtcHR5IGxpbmUnKQotCi0g
ICAgICAgIGZpZWxkcyA9IHNlbGYuX3JlYWRfZmllbGRzKCkKLQotICAgICAgICBjaCA9IF9yZWNl
aXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgw
QQotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAg
ICAgJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlciB3aGlsZSByZWFkaW5nIHZhbHVlICVyIGZvciBo
ZWFkZXIgJwotICAgICAgICAgICAgICAgICduYW1lICVyJyAlIChjaCwgdmFsdWUsIG5hbWUpKQot
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgYW4gZW1wdHkgbGluZScpCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VydmVyXCdzIG9wZW5pbmcgaGFuZHNoYWtlIGhl
YWRlcnM6ICVyJywgZmllbGRzKQotCi0gICAgICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVy
KAotICAgICAgICAgICAgZmllbGRzLAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVS
LAotICAgICAgICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEUsCi0gICAgICAgICAg
ICBGYWxzZSkKLQotICAgICAgICBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAg
ICAgIGZpZWxkcywKLSAgICAgICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwKLSAgICAg
ICAgICAgIGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSwKLSAgICAgICAgICAgIEZhbHNl
KQotCi0gICAgICAgIGFjY2VwdCA9IF9nZXRfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAg
IGZpZWxkcywgY29tbW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUikKLQotICAgICAgICAj
IFZhbGlkYXRlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGJpbmFyeV9hY2NlcHQgPSBiYXNl
NjQuYjY0ZGVjb2RlKGFjY2VwdCkKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJvciwgZToKLSAgICAg
ICAgICAgIHJhaXNlIEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdJbGxlZ2FsIHZh
bHVlIGZvciBoZWFkZXIgJXM6ICVyJyAlCi0gICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VC
U09DS0VUX0FDQ0VQVF9IRUFERVIsIGFjY2VwdCkpCi0KLSAgICAgICAgaWYgbGVuKGJpbmFyeV9h
Y2NlcHQpICE9IDIwOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0g
ICAgICAgICAgICAgICAgJ0RlY29kZWQgdmFsdWUgb2YgJXMgaXMgbm90IDIwLWJ5dGUgbG9uZycg
JQotICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIpCi0K
LSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ1Jlc3BvbnNlIGZvciBj
aGFsbGVuZ2UgOiAlciAoJXMpJywKLSAgICAgICAgICAgIGFjY2VwdCwgdXRpbC5oZXhpZnkoYmlu
YXJ5X2FjY2VwdCkpCi0KLSAgICAgICAgYmluYXJ5X2V4cGVjdGVkX2FjY2VwdCA9IHV0aWwuc2hh
MV9oYXNoKAotICAgICAgICAgICAgc2VsZi5fa2V5ICsgY29tbW9uLldFQlNPQ0tFVF9BQ0NFUFRf
VVVJRCkuZGlnZXN0KCkKLSAgICAgICAgZXhwZWN0ZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGVuY29k
ZShiaW5hcnlfZXhwZWN0ZWRfYWNjZXB0KQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygK
LSAgICAgICAgICAgICdFeHBlY3RlZCByZXNwb25zZSBmb3IgY2hhbGxlbmdlOiAlciAoJXMpJywK
LSAgICAgICAgICAgIGV4cGVjdGVkX2FjY2VwdCwgdXRpbC5oZXhpZnkoYmluYXJ5X2V4cGVjdGVk
X2FjY2VwdCkpCi0KLSAgICAgICAgaWYgYWNjZXB0ICE9IGV4cGVjdGVkX2FjY2VwdDoKLSAgICAg
ICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdJbnZh
bGlkICVzIGhlYWRlcjogJXIgKGV4cGVjdGVkOiAlcyknICUKLSAgICAgICAgICAgICAgICAoY29t
bW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUiwgYWNjZXB0LCBleHBlY3RlZF9hY2NlcHQp
KQotCi0gICAgICAgIGRlZmxhdGVfZnJhbWVfYWNjZXB0ZWQgPSBGYWxzZQotICAgICAgICBwZXJt
ZXNzYWdlX2RlZmxhdGVfYWNjZXB0ZWQgPSBGYWxzZQotCi0gICAgICAgIGV4dGVuc2lvbnNfaGVh
ZGVyID0gZmllbGRzLmdldCgKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVO
U0lPTlNfSEVBREVSLmxvd2VyKCkpCi0gICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBbXQot
ICAgICAgICBpZiBleHRlbnNpb25zX2hlYWRlciBpcyBub3QgTm9uZSBhbmQgbGVuKGV4dGVuc2lv
bnNfaGVhZGVyKSAhPSAwOgotICAgICAgICAgICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1v
bi5wYXJzZV9leHRlbnNpb25zKGV4dGVuc2lvbnNfaGVhZGVyWzBdKQotCi0gICAgICAgICMgVE9E
TyhiYXNoaSk6IFN1cHBvcnQgdGhlIG5ldyBzdHlsZSBwZXJmcmFtZSBjb21wcmVzc2lvbiBleHRl
bnNpb24uCi0gICAgICAgIGZvciBleHRlbnNpb24gaW4gYWNjZXB0ZWRfZXh0ZW5zaW9uczoKLSAg
ICAgICAgICAgIGV4dGVuc2lvbl9uYW1lID0gZXh0ZW5zaW9uLm5hbWUoKQotICAgICAgICAgICAg
aWYgKGV4dGVuc2lvbl9uYW1lID09IGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiBhbmQK
LSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUpOgotICAgICAgICAg
ICAgICAgIGRlZmxhdGVfZnJhbWVfYWNjZXB0ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgcHJv
Y2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAg
ICAgICAgICAgICB1bnVzZWRfZXh0ZW5zaW9uX3Jlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRl
bnNpb25fcmVzcG9uc2UoKQotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9m
cmFtZSA9IHByb2Nlc3NvcgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBl
bGlmIChleHRlbnNpb25fbmFtZSA9PSBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lP
TiBhbmQKLSAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVm
bGF0ZSk6Ci0gICAgICAgICAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRlX2FjY2VwdGVkID0gVHJ1
ZQotCi0gICAgICAgICAgICAgICAgZnJhbWVyID0gX2dldF9wZXJtZXNzYWdlX2RlZmxhdGVfZnJh
bWVyKGV4dGVuc2lvbikKLSAgICAgICAgICAgICAgICBmcmFtZXIuc2V0X2NvbXByZXNzX291dGdv
aW5nX2VuYWJsZWQoVHJ1ZSkKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV9wZXJt
ZXNzYWdlX2RlZmxhdGUgPSBmcmFtZXIKLSAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAg
ICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnVW5l
eHBlY3RlZCBleHRlbnNpb24gJXInICUgZXh0ZW5zaW9uX25hbWUpCi0KLSAgICAgICAgaWYgKHNl
bGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSBhbmQgbm90IGRlZmxhdGVfZnJhbWVfYWNjZXB0ZWQp
OgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAg
ICAgJ1JlcXVlc3RlZCAlcywgYnV0IHRoZSBzZXJ2ZXIgcmVqZWN0ZWQgaXQnICUKLSAgICAgICAg
ICAgICAgICBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0KLSAgICAgICAgaWYgKHNl
bGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSBhbmQKLSAgICAgICAgICAgIG5vdCBw
ZXJtZXNzYWdlX2RlZmxhdGVfYWNjZXB0ZWQpOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFu
ZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgJXMsIGJ1dCB0aGUg
c2VydmVyIHJlamVjdGVkIGl0JyAlCi0gICAgICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNT
QUdFX0RFRkxBVEVfRVhURU5TSU9OKQotCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IEhhbmRs
ZSBTZWMtV2ViU29ja2V0LVByb3RvY29sCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IEhhbmRs
ZSBDb29raWUsIGV0Yy4KLQotCi1jbGFzcyBDbGllbnRIYW5kc2hha2VQcm9jZXNzb3JIeWJpMDAo
Q2xpZW50SGFuZHNoYWtlQmFzZSk6Ci0gICAgIiIiV2ViU29ja2V0IG9wZW5pbmcgaGFuZHNoYWtl
IHByb2Nlc3NvciBmb3IKLSAgICBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wt
MDAgKGVxdWl2YWxlbnQgdG8KLSAgICBkcmFmdC1oaXhpZS10aGV3ZWJzb2NrZXRwcm90b2NvbC03
NikuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0LCBvcHRpb25zKToK
LSAgICAgICAgc3VwZXIoQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29ySHliaTAwLCBzZWxmKS5fX2lu
aXRfXygpCi0KLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0gICAgICAgIHNlbGYuX29w
dGlvbnMgPSBvcHRpb25zCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3Nf
bG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgaWYgKHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSBv
cgotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlKToKLSAg
ICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ0h5QmkgMDAgZG9lc25cJ3Qgc3VwcG9ydCBleHRl
bnNpb25zLicpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgZGVmIGhhbmRzaGFrZShz
ZWxmKToKLSAgICAgICAgIiIiUGVyZm9ybXMgb3BlbmluZyBoYW5kc2hha2Ugb24gdGhlIHNwZWNp
ZmllZCBzb2NrZXQuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ2xpZW50SGFuZHNo
YWtlRXJyb3I6IGhhbmRzaGFrZSBmYWlsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgNC4x
IDUuIHNlbmQgcmVxdWVzdCBsaW5lLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChfYnVp
bGRfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkpCi0gICAgICAgICMgNC4xIDYu
IExldCAvZmllbGRzLyBiZSBhbiBlbXB0eSBsaXN0IG9mIHN0cmluZ3MuCi0gICAgICAgIGZpZWxk
cyA9IFtdCi0gICAgICAgICMgNC4xIDcuIEFkZCB0aGUgc3RyaW5nICJVcGdyYWRlOiBXZWJTb2Nr
ZXQiIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9VUEdSQURFX0hFQURFUl9I
SVhJRTc1KQotICAgICAgICAjIDQuMSA4LiBBZGQgdGhlIHN0cmluZyAiQ29ubmVjdGlvbjogVXBn
cmFkZSIgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVB
REVSKQotICAgICAgICAjIDQuMSA5LTEyLiBBZGQgSG9zdDogZmllbGQgdG8gL2ZpZWxkcy8uCi0g
ICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKLSAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZl
cl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKLSAgICAgICAgIyA0
LjEgMTMuIEFkZCBPcmlnaW46IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAgICBpZiBub3Qgc2Vs
Zi5fb3B0aW9ucy5vcmlnaW46Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJv
cigKLSAgICAgICAgICAgICAgICAnU3BlY2lmeSB0aGUgb3JpZ2luIG9mIHRoZSBjb25uZWN0aW9u
IGJ5IC0tb3JpZ2luIGZsYWcnKQotICAgICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVy
KGNvbW1vbi5PUklHSU5fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLSAgICAgICAgIyBUT0RPOiA0LjEgMTQgQWRkIFNl
Yy1XZWJTb2NrZXQtUHJvdG9jb2w6IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAgICAjIFRPRE86
IDQuMSAxNSBBZGQgY29va2llIGhlYWRlcnMgdG8gL2ZpZWxkcy8uCi0KLSAgICAgICAgIyA0LjEg
MTYtMjMuIEFkZCBTZWMtV2ViU29ja2V0LUtleTxuPiB0byAvZmllbGRzLy4KLSAgICAgICAgc2Vs
Zi5fbnVtYmVyMSwga2V5MSA9IHNlbGYuX2dlbmVyYXRlX3NlY193ZWJzb2NrZXRfa2V5KCkKLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1iZXIxOiAlZCcsIHNlbGYuX251bWJlcjEpCi0g
ICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VU
X0tFWTFfSEVBREVSLCBrZXkxKSkKLSAgICAgICAgc2VsZi5fbnVtYmVyMiwga2V5MiA9IHNlbGYu
X2dlbmVyYXRlX3NlY193ZWJzb2NrZXRfa2V5KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdOdW1iZXIyOiAlZCcsIHNlbGYuX251bWJlcjIpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJyVz
OiAlc1xyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWTJfSEVBREVSLCBrZXkyKSkKLQot
ICAgICAgICBmaWVsZHMuYXBwZW5kKCclczogMFxyXG4nICUgY29tbW9uLlNFQ19XRUJTT0NLRVRf
RFJBRlRfSEVBREVSKQotCi0gICAgICAgICMgNC4xIDI0LiBGb3IgZWFjaCBzdHJpbmcgaW4gL2Zp
ZWxkcy8sIGluIGEgcmFuZG9tIG9yZGVyOiBzZW5kIHRoZQotICAgICAgICAjIHN0cmluZywgZW5j
b2RlZCBhcyBVVEYtOCwgZm9sbG93ZWQgYnkgYSBVVEYtOCBlbmNvZGVkIFUrMDAwRCBDQVJSSUFH
RQotICAgICAgICAjIFJFVFVSTiBVKzAwMEEgTElORSBGRUVEIGNoYXJhY3RlciBwYWlyIChDUkxG
KS4KLSAgICAgICAgcmFuZG9tLnNodWZmbGUoZmllbGRzKQotICAgICAgICBmb3IgZmllbGQgaW4g
ZmllbGRzOgotICAgICAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZmllbGQpCi0gICAgICAg
ICMgNC4xIDI1LiBzZW5kIGEgVVRGLTgtZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIFUr
MDAwQSBMSU5FIEZFRUQKLSAgICAgICAgIyBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAg
IHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxuJykKLSAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5
My8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCi0gICAg
ICAgICMgZXF1aXZhbGVudGx5LCBhIHJhbmRvbSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEg
YmlnLWVuZGlhbiBvcmRlcikuCi0gICAgICAgIHNlbGYuX2tleTMgPSBzZWxmLl9nZW5lcmF0ZV9r
ZXkzKCkKLSAgICAgICAgIyA0LjEgMjcuIHNlbmQgL2tleTMvIHRvIHRoZSBzZXJ2ZXIuCi0gICAg
ICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHNlbGYuX2tleTMpCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygKLSAgICAgICAgICAgICdLZXkzOiAlciAoJXMpJywgc2VsZi5fa2V5MywgdXRpbC5o
ZXhpZnkoc2VsZi5fa2V5MykpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgaGFu
ZHNoYWtlJykKLQotICAgICAgICAjIDQuMSAyOC4gUmVhZCBieXRlcyBmcm9tIHRoZSBzZXJ2ZXIg
dW50aWwgZWl0aGVyIHRoZSBjb25uZWN0aW9uCi0gICAgICAgICMgY2xvc2VzLCBvciBhIDB4MEEg
Ynl0ZSBpcyByZWFkLiBsZXQgL2ZpZWxkLyBiZSB0aGVzZSBieXRlcywgaW5jbHVkaW5nCi0gICAg
ICAgICMgdGhlIDB4MEEgYnl0ZXMuCi0gICAgICAgIGZpZWxkID0gJycKLSAgICAgICAgd2hpbGUg
VHJ1ZToKLSAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQot
ICAgICAgICAgICAgZmllbGQgKz0gY2gKLSAgICAgICAgICAgIGlmIGNoID09ICdcbic6Ci0gICAg
ICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgIyBpZiAvZmllbGQvIGlzIG5vdCBhdCBsZWFzdCBz
ZXZlbiBieXRlcyBsb25nLCBvciBpZiB0aGUgbGFzdAotICAgICAgICAjIHR3byBieXRlcyBhcmVu
J3QgMHgwRCBhbmQgMHgwQSByZXNwZWN0aXZlbHksIG9yIGlmIGl0IGRvZXMgbm90Ci0gICAgICAg
ICMgY29udGFpbiBhdCBsZWFzdCB0d28gMHgyMCBieXRlcywgdGhlbiBmYWlsIHRoZSBXZWJTb2Nr
ZXQgY29ubmVjdGlvbgotICAgICAgICAjIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAg
aWYgbGVuKGZpZWxkKSA8IDcgb3Igbm90IGZpZWxkLmVuZHN3aXRoKCdcclxuJyk6Ci0gICAgICAg
ICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcignV3Jvbmcgc3RhdHVzIGxpbmU6ICVyJyAl
IGZpZWxkKQotICAgICAgICBtID0gcmUubWF0Y2goJ1teIF0qIChbXiBdKikgLionLCBmaWVsZCkK
LSAgICAgICAgaWYgbSBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtl
RXJyb3IoCi0gICAgICAgICAgICAgICAgJ05vIEhUVFAgc3RhdHVzIGNvZGUgZm91bmQgaW4gc3Rh
dHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAgICAgICAjIDQuMSAyOS4gbGV0IC9jb2RlLyBiZSB0
aGUgc3Vic3RyaW5nIG9mIC9maWVsZC8gdGhhdCBzdGFydHMgZnJvbSB0aGUKLSAgICAgICAgIyBi
eXRlIGFmdGVyIHRoZSBmaXJzdCAweDIwIGJ5dGUsIGFuZCBlbmRzIHdpdGggdGhlIGJ5dGUgYmVm
b3JlIHRoZQotICAgICAgICAjIHNlY29uZCAweDIwIGJ5dGUuCi0gICAgICAgIGNvZGUgPSBtLmdy
b3VwKDEpCi0gICAgICAgICMgNC4xIDMwLiBpZiAvY29kZS8gaXMgbm90IHRocmVlIGJ5dGVzIGxv
bmcsIG9yIGlmIGFueSBvZiB0aGUgYnl0ZXMgaW4KLSAgICAgICAgIyAvY29kZS8gYXJlIG5vdCBp
biB0aGUgcmFuZ2UgMHgzMCB0byAweDkwLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldAotICAgICAg
ICAjIGNvbm5lY3Rpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBub3QgcmUu
bWF0Y2goJ1swLTldWzAtOV1bMC05XScsIGNvZGUpOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50
SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0hUVFAgc3RhdHVzIGNvZGUgJXIgaXMg
bm90IHRocmVlIGRpZ2l0IGluIHN0YXR1cyBsaW5lOiAlcicgJQotICAgICAgICAgICAgICAgIChj
b2RlLCBmaWVsZCkpCi0gICAgICAgICMgNC4xIDMxLiBpZiAvY29kZS8sIGludGVycHJldGVkIGFz
IFVURi04LCBpcyAiMTAxIiwgdGhlbiBtb3ZlIHRvIHRoZQotICAgICAgICAjIG5leHQgc3RlcC4K
LSAgICAgICAgaWYgY29kZSAhPSAnMTAxJzoKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRz
aGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEw
MSBidXQgZm91bmQgJXIgaW4gc3RhdHVzIGxpbmU6ICcKLSAgICAgICAgICAgICAgICAnJXInICUg
KGNvZGUsIGZpZWxkKSkKLSAgICAgICAgIyA0LjEgMzItMzkuIHJlYWQgZmllbGRzIGludG8gL2Zp
ZWxkcy8KLSAgICAgICAgZmllbGRzID0gc2VsZi5fcmVhZF9maWVsZHMoKQotICAgICAgICAjIDQu
MSA0MC4gX0ZpZWxkcyBwcm9jZXNzaW5nXwotICAgICAgICAjIHJlYWQgYSBieXRlIGZyb20gc2Vy
dmVyCi0gICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAg
ICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hh
a2VFcnJvcignRXhwZWN0ZWQgTEYgYnV0IGZvdW5kICVyJyAlIGNoKQotICAgICAgICAjIDQuMSA0
MS4gY2hlY2sgL2ZpZWxkcy8KLSAgICAgICAgIyBUT0RPKHVrYWkpOiBwcm90b2NvbAotICAgICAg
ICAjIGlmIHRoZSBlbnRyeSdzIG5hbWUgaXMgInVwZ3JhZGUiCi0gICAgICAgICMgIGlmIHRoZSB2
YWx1ZSBpcyBub3QgZXhhY3RseSBlcXVhbCB0byB0aGUgc3RyaW5nICJXZWJTb2NrZXQiLAotICAg
ICAgICAjICB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVz
ZSBzdGVwcy4KLSAgICAgICAgX3ZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAg
ICBmaWVsZHMsCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9IRUFERVIsCi0gICAgICAgICAg
ICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRV9ISVhJRTc1LAotICAgICAgICAgICAgVHJ1
ZSkKLSAgICAgICAgIyBpZiB0aGUgZW50cnkncyBuYW1lIGlzICJjb25uZWN0aW9uIgotICAgICAg
ICAjICBpZiB0aGUgdmFsdWUsIGNvbnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2UsIGlzIG5vdCBl
eGFjdGx5IGVxdWFsCi0gICAgICAgICMgIHRvIHRoZSBzdHJpbmcgInVwZ3JhZGUiLCB0aGVuIGZh
aWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFuZAotICAgICAgICAjICBhYm9ydCB0aGVzZSBz
dGVwcy4KLSAgICAgICAgX3ZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBm
aWVsZHMsCi0gICAgICAgICAgICBjb21tb24uQ09OTkVDVElPTl9IRUFERVIsCi0gICAgICAgICAg
ICBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUsCi0gICAgICAgICAgICBGYWxzZSkKLQot
ICAgICAgICBvcmlnaW4gPSBfZ2V0X21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVs
ZHMsIGNvbW1vbi5TRUNfV0VCU09DS0VUX09SSUdJTl9IRUFERVIpCi0KLSAgICAgICAgbG9jYXRp
b24gPSBfZ2V0X21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsIGNvbW1vbi5T
RUNfV0VCU09DS0VUX0xPQ0FUSU9OX0hFQURFUikKLQotICAgICAgICAjIFRPRE8odWthaSk6IGNo
ZWNrIG9yaWdpbiwgbG9jYXRpb24sIGNvb2tpZSwgLi4KLQotICAgICAgICAjIDQuMSA0Mi4gbGV0
IC9jaGFsbGVuZ2UvIGJlIHRoZSBjb25jYXRlbmF0aW9uIG9mIC9udW1iZXJfMS8sCi0gICAgICAg
ICMgZXhwcmVzc2VkIGFzIGEgYmlnIGVuZGlhbiAzMiBiaXQgaW50ZWdlciwgL251bWJlcl8yLywg
ZXhwcmVzc2VkCi0gICAgICAgICMgYXMgYmlnIGVuZGlhbiAzMiBiaXQgaW50ZWdlciwgYW5kIHRo
ZSBlaWdodCBieXRlcyBvZiAva2V5XzMvIGluIHRoZQotICAgICAgICAjIG9yZGVyIHRoZXkgd2Vy
ZSBzZW50IG9uIHRoZSB3aXJlLgotICAgICAgICBjaGFsbGVuZ2UgPSBzdHJ1Y3QucGFjaygnIUkn
LCBzZWxmLl9udW1iZXIxKQotICAgICAgICBjaGFsbGVuZ2UgKz0gc3RydWN0LnBhY2soJyFJJywg
c2VsZi5fbnVtYmVyMikKLSAgICAgICAgY2hhbGxlbmdlICs9IHNlbGYuX2tleTMKLQotICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnQ2hhbGxlbmdlOiAlciAoJXMpJywg
Y2hhbGxlbmdlLCB1dGlsLmhleGlmeShjaGFsbGVuZ2UpKQotCi0gICAgICAgICMgNC4xIDQzLiBs
ZXQgL2V4cGVjdGVkLyBiZSB0aGUgTUQ1IGZpbmdlcnByaW50IG9mIC9jaGFsbGVuZ2UvIGFzIGEK
LSAgICAgICAgIyBiaWctZW5kaWFuIDEyOCBiaXQgc3RyaW5nLgotICAgICAgICBleHBlY3RlZCA9
IHV0aWwubWQ1X2hhc2goY2hhbGxlbmdlKS5kaWdlc3QoKQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoCi0gICAgICAgICAgICAnRXhwZWN0ZWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMp
JywKLSAgICAgICAgICAgIGV4cGVjdGVkLCB1dGlsLmhleGlmeShleHBlY3RlZCkpCi0KLSAgICAg
ICAgIyA0LjEgNDQuIHJlYWQgc2l4dGVlbiBieXRlcyBmcm9tIHRoZSBzZXJ2ZXIuCi0gICAgICAg
ICMgbGV0IC9yZXBseS8gYmUgdGhvc2UgYnl0ZXMuCi0gICAgICAgIHJlcGx5ID0gX3JlY2VpdmVf
Ynl0ZXMoc2VsZi5fc29ja2V0LCAxNikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAg
ICAgICAgICAgJ0FjdHVhbCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLCByZXBseSwgdXRp
bC5oZXhpZnkocmVwbHkpKQotCi0gICAgICAgICMgNC4xIDQ1LiBpZiAvcmVwbHkvIGRvZXMgbm90
IGV4YWN0bHkgZXF1YWwgL2V4cGVjdGVkLywgdGhlbiBmYWlsCi0gICAgICAgICMgdGhlIFdlYlNv
Y2tldCBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgZXhwZWN0
ZWQgIT0gcmVwbHk6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAg
ICAgICAgICAgICAgICAnQmFkIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKGV4cGVjdGVkKSAhPSAl
ciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChleHBlY3RlZCwgcmVwbHkpKQotICAgICAg
ICAjIDQuMSA0Ni4gVGhlICpXZWJTb2NrZXQgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCouCi0K
LSAgICBkZWYgX2dlbmVyYXRlX3NlY193ZWJzb2NrZXRfa2V5KHNlbGYpOgotICAgICAgICAjIDQu
MSAxNi4gbGV0IC9zcGFjZXNfbi8gYmUgYSByYW5kb20gaW50ZWdlciBmcm9tIDEgdG8gMTIgaW5j
bHVzaXZlLgotICAgICAgICBzcGFjZXMgPSByYW5kb20ucmFuZGludCgxLCAxMikKLSAgICAgICAg
IyA0LjEgMTcuIGxldCAvbWF4X24vIGJlIHRoZSBsYXJnZXN0IGludGVnZXIgbm90IGdyZWF0ZXIg
dGhhbgotICAgICAgICAjICA0LDI5NCw5NjcsMjk1IGRpdmlkZWQgYnkgL3NwYWNlc19uLy4KLSAg
ICAgICAgbWF4bnVtID0gNDI5NDk2NzI5NSAvIHNwYWNlcwotICAgICAgICAjIDQuMSAxOC4gbGV0
IC9udW1iZXJfbi8gYmUgYSByYW5kb20gaW50ZWdlciBmcm9tIDAgdG8gL21heF9uLwotICAgICAg
ICAjIGluY2x1c2l2ZS4KLSAgICAgICAgbnVtYmVyID0gcmFuZG9tLnJhbmRpbnQoMCwgbWF4bnVt
KQotICAgICAgICAjIDQuMSAxOS4gbGV0IC9wcm9kdWN0X24vIGJlIHRoZSByZXN1bHQgb2YgbXVs
dGlwbHlpbmcgL251bWJlcl9uLyBhbmQKLSAgICAgICAgIyAvc3BhY2VzX24vIHRvZ2V0aGVyLgot
ICAgICAgICBwcm9kdWN0ID0gbnVtYmVyICogc3BhY2VzCi0gICAgICAgICMgNC4xIDIwLiBsZXQg
L2tleV9uLyBiZSBhIHN0cmluZyBjb25zaXN0aW5nIG9mIC9wcm9kdWN0X24vLCBleHByZXNzZWQK
LSAgICAgICAgIyBpbiBiYXNlIHRlbiB1c2luZyB0aGUgbnVtZXJhbHMgaW4gdGhlIHJhbmdlIFUr
MDAzMCBESUdJVCBaRVJPICgwKSB0bwotICAgICAgICAjIFUrMDAzOSBESUdJVCBOSU5FICg5KS4K
LSAgICAgICAga2V5ID0gc3RyKHByb2R1Y3QpCi0gICAgICAgICMgNC4xIDIxLiBpbnNlcnQgYmV0
d2VlbiBvbmUgYW5kIHR3ZWx2ZSByYW5kb20gY2hhcmFjdGVycyBmcm9tIHRoZQotICAgICAgICAj
IHJhbmdlIFUrMDAyMSB0byBVKzAwMkYgYW5kIFUrMDAzQSB0byBVKzAwN0UgaW50byAva2V5X24v
IGF0IHJhbmRvbQotICAgICAgICAjIHBvc2l0aW9ucy4KLSAgICAgICAgYXZhaWxhYmxlX2NoYXJz
ID0gcmFuZ2UoMHgyMSwgMHgyZiArIDEpICsgcmFuZ2UoMHgzYSwgMHg3ZSArIDEpCi0gICAgICAg
IG4gPSByYW5kb20ucmFuZGludCgxLCAxMikKLSAgICAgICAgZm9yIF8gaW4geHJhbmdlKG4pOgot
ICAgICAgICAgICAgY2ggPSByYW5kb20uY2hvaWNlKGF2YWlsYWJsZV9jaGFycykKLSAgICAgICAg
ICAgIHBvcyA9IHJhbmRvbS5yYW5kaW50KDAsIGxlbihrZXkpKQotICAgICAgICAgICAga2V5ID0g
a2V5WzA6cG9zXSArIGNocihjaCkgKyBrZXlbcG9zOl0KLSAgICAgICAgIyA0LjEgMjIuIGluc2Vy
dCAvc3BhY2VzX24vIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXJzIGludG8gL2tleV9uLyBhdAotICAg
ICAgICAjIHJhbmRvbSBwb3NpdGlvbnMgb3RoZXIgdGhhbiBzdGFydCBvciBlbmQgb2YgdGhlIHN0
cmluZy4KLSAgICAgICAgZm9yIF8gaW4geHJhbmdlKHNwYWNlcyk6Ci0gICAgICAgICAgICBwb3Mg
PSByYW5kb20ucmFuZGludCgxLCBsZW4oa2V5KSAtIDEpCi0gICAgICAgICAgICBrZXkgPSBrZXlb
MDpwb3NdICsgJyAnICsga2V5W3BvczpdCi0gICAgICAgIHJldHVybiBudW1iZXIsIGtleQotCi0g
ICAgZGVmIF9nZW5lcmF0ZV9rZXkzKHNlbGYpOgotICAgICAgICAjIDQuMSAyNi4gbGV0IC9rZXkz
LyBiZSBhIHN0cmluZyBjb25zaXN0aW5nIG9mIGVpZ2h0IHJhbmRvbSBieXRlcyAob3IKLSAgICAg
ICAgIyBlcXVpdmFsZW50bHksIGEgcmFuZG9tIDY0IGJpdCBpbnRlZ2VyIGVuY29kZWQgaW4gYSBi
aWctZW5kaWFuIG9yZGVyKS4KLSAgICAgICAgcmV0dXJuICcnLmpvaW4oW2NocihyYW5kb20ucmFu
ZGludCgwLCAyNTUpKSBmb3IgXyBpbiB4cmFuZ2UoOCldKQotCi0KLWNsYXNzIENsaWVudENvbm5l
Y3Rpb24ob2JqZWN0KToKLSAgICAiIiJBIHdyYXBwZXIgZm9yIHNvY2tldCBvYmplY3QgdG8gcHJv
dmlkZSB0aGUgbXBfY29ubiBpbnRlcmZhY2UuCi0gICAgbW9kX3B5d2Vic29ja2V0IGxpYnJhcnkg
aXMgZGVzaWduZWQgdG8gYmUgd29ya2luZyBvbiBBcGFjaGUgbW9kX3B5dGhvbidzCi0gICAgbXBf
Y29ubiBvYmplY3QuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0KToK
LSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0
YSk6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGRhdGEpCi0KLSAgICBkZWYgcmVhZChz
ZWxmLCBuKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3NvY2tldC5yZWN2KG4pCi0KLSAgICBkZWYg
Z2V0X3JlbW90ZV9hZGRyKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fc29ja2V0LmdldHBl
ZXJuYW1lKCkKLSAgICByZW1vdGVfYWRkciA9IHByb3BlcnR5KGdldF9yZW1vdGVfYWRkcikKLQot
Ci1jbGFzcyBDbGllbnRSZXF1ZXN0KG9iamVjdCk6Ci0gICAgIiIiQSB3cmFwcGVyIGNsYXNzIGp1
c3QgdG8gbWFrZSBpdCBhYmxlIHRvIHBhc3MgYSBzb2NrZXQgb2JqZWN0IHRvCi0gICAgZnVuY3Rp
b25zIHRoYXQgZXhwZWN0IGEgbXBfcmVxdWVzdCBvYmplY3QuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgc29ja2V0KToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRf
Y2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0gICAg
ICAgIHNlbGYuY29ubmVjdGlvbiA9IENsaWVudENvbm5lY3Rpb24oc29ja2V0KQotCi0KLWRlZiBf
aW1wb3J0X3NzbCgpOgotICAgIGdsb2JhbCBzc2wKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBz
c2wKLSAgICAgICAgcmV0dXJuIFRydWUKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAg
IHJldHVybiBGYWxzZQotCi0KLWRlZiBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgIGdsb2JhbCBP
cGVuU1NMCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgT3BlblNTTC5TU0wKLSAgICAgICAgcmV0
dXJuIFRydWUKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQot
Ci0KLWNsYXNzIEVjaG9DbGllbnQob2JqZWN0KToKLSAgICAiIiJXZWJTb2NrZXQgZWNobyBjbGll
bnQuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYu
X29wdGlvbnMgPSBvcHRpb25zCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IE5vbmUKLQotICAgICAg
ICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgIGRlZiBy
dW4oc2VsZik6Ci0gICAgICAgICIiIlJ1biB0aGUgY2xpZW50LgotCi0gICAgICAgIFNoYWtlIGhh
bmRzIGFuZCB0aGVuIHJlcGVhdCBzZW5kaW5nIG1lc3NhZ2UgYW5kIHJlY2VpdmluZyBpdHMgZWNo
by4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0LnNvY2tldCgp
Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZXR0aW1lb3V0KHNlbGYuX29wdGlvbnMuc29ja2V0X3Rp
bWVvdXQpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5jb25uZWN0KChz
ZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQpKQotICAgICAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy51c2VfdGxzOgotICAgICAgICAgICAgICAgIHNlbGYuX3NvY2tldCA9IF9UTFNTb2NrZXQo
Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NvY2tldCwKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy50bHNfbW9kdWxlLAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLnRsc192ZXJzaW9uLAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRpc2Fi
bGVfdGxzX2NvbXByZXNzaW9uKQotCi0gICAgICAgICAgICB2ZXJzaW9uID0gc2VsZi5fb3B0aW9u
cy5wcm90b2NvbF92ZXJzaW9uCi0KLSAgICAgICAgICAgIGlmICh2ZXJzaW9uID09IF9QUk9UT0NP
TF9WRVJTSU9OX0hZQkkwOCBvcgotICAgICAgICAgICAgICAgIHZlcnNpb24gPT0gX1BST1RPQ09M
X1ZFUlNJT05fSFlCSTEzKToKLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kc2hha2UgPSBDbGll
bnRIYW5kc2hha2VQcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NvY2tldCwg
c2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAgIGVsaWYgdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVS
U0lPTl9IWUJJMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gQ2xpZW50SGFu
ZHNoYWtlUHJvY2Vzc29ySHliaTAwKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQs
IHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdJbnZhbGlkIC0tcHJvdG9jb2wtdmVy
c2lvbiBmbGFnOiAlcicgJSB2ZXJzaW9uKQotCi0gICAgICAgICAgICBzZWxmLl9oYW5kc2hha2Uu
aGFuZHNoYWtlKCkKLQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Nvbm5lY3Rpb24g
ZXN0YWJsaXNoZWQnKQotCi0gICAgICAgICAgICByZXF1ZXN0ID0gQ2xpZW50UmVxdWVzdChzZWxm
Ll9zb2NrZXQpCi0KLSAgICAgICAgICAgIHZlcnNpb25fbWFwID0gewotICAgICAgICAgICAgICAg
IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwODogY29tbW9uLlZFUlNJT05fSFlCSTA4LAotICAgICAg
ICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMzogY29tbW9uLlZFUlNJT05fSFlCSTEz
LAotICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwMDogY29tbW9uLlZFUlNJ
T05fSFlCSTAwfQotICAgICAgICAgICAgcmVxdWVzdC53c192ZXJzaW9uID0gdmVyc2lvbl9tYXBb
dmVyc2lvbl0KLQotICAgICAgICAgICAgaWYgKHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05f
SFlCSTA4IG9yCi0gICAgICAgICAgICAgICAgdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9I
WUJJMTMpOgotICAgICAgICAgICAgICAgIHN0cmVhbV9vcHRpb24gPSBTdHJlYW1PcHRpb25zKCkK
LSAgICAgICAgICAgICAgICBzdHJlYW1fb3B0aW9uLm1hc2tfc2VuZCA9IFRydWUKLSAgICAgICAg
ICAgICAgICBzdHJlYW1fb3B0aW9uLnVubWFza19yZWNlaXZlID0gRmFsc2UKLQotICAgICAgICAg
ICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSBpcyBub3QgRmFsc2U6Ci0gICAg
ICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9IHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZQot
ICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3Iuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFt
X29wdGlvbikKLQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3Nh
Z2VfZGVmbGF0ZSBpcyBub3QgRmFsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGZyYW1lciA9IHNl
bGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZQotICAgICAgICAgICAgICAgICAgICBm
cmFtZXIuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbikKLQotICAgICAgICAgICAg
ICAgIHNlbGYuX3N0cmVhbSA9IFN0cmVhbShyZXF1ZXN0LCBzdHJlYW1fb3B0aW9uKQotICAgICAg
ICAgICAgZWxpZiB2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwMDoKLSAgICAgICAg
ICAgICAgICBzZWxmLl9zdHJlYW0gPSBTdHJlYW1IaXhpZTc1KHJlcXVlc3QsIFRydWUpCi0KLSAg
ICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuX29wdGlvbnMubWVzc2FnZS5zcGxpdCgnLCcpOgot
ICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSkKLSAgICAgICAg
ICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgICAgIHBy
aW50ICdTZW5kOiAlcycgJSBsaW5lCi0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
ICAgICAgICByZWNlaXZlZCA9IHNlbGYuX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotCi0gICAg
ICAgICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyYm9zZToKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHByaW50ICdSZWN2OiAlcycgJSByZWNlaXZlZAotICAgICAgICAgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
dmVyYm9zZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICdFcnJvcjogJXMnICUgZQot
ICAgICAgICAgICAgICAgICAgICByYWlzZQotCi0gICAgICAgICAgICBzZWxmLl9kb19jbG9zaW5n
X2hhbmRzaGFrZSgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXQu
Y2xvc2UoKQotCi0gICAgZGVmIF9kb19jbG9zaW5nX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAg
IiIiUGVyZm9ybSBjbG9zaW5nIGhhbmRzaGFrZSB1c2luZyB0aGUgc3BlY2lmaWVkIGNsb3Npbmcg
ZnJhbWUuIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5tZXNzYWdlLnNwbGl0KCcsJylb
LTFdID09IF9HT09EQllFX01FU1NBR0U6Ci0gICAgICAgICAgICAjIHJlcXVlc3RlZCBzZXJ2ZXIg
aW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlLCBzbwotICAgICAgICAgICAgIyBleHBlY3Rpbmcg
Y2xvc2luZyBoYW5kc2hha2UgbWVzc2FnZSBmcm9tIHNlcnZlci4KLSAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5pbmZvKCdXYWl0IGZvciBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtl
JykKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkK
LSAgICAgICAgICAgIGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBwcmludCAn
UmVjdiBjbG9zZScKLSAgICAgICAgICAgICAgICBwcmludCAnU2VuZCBhY2snCi0gICAgICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCi0gICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBj
bG9zaW5nIGhhbmRzaGFrZSBhbmQgc2VudCBhY2snKQotICAgICAgICAgICAgICAgIHJldHVybgot
ICAgICAgICBwcmludCAnU2VuZCBjbG9zZScKLSAgICAgICAgc2VsZi5fc3RyZWFtLmNsb3NlX2Nv
bm5lY3Rpb24oKQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2VudCBjbG9zaW5nIGhhbmRz
aGFrZScpCi0gICAgICAgIHByaW50ICdSZWN2IGFjaycKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmlu
Zm8oJ1JlY2VpdmVkIGFjaycpCi0KLQotZGVmIG1haW4oKToKLSAgICBzeXMuc3Rkb3V0ID0gY29k
ZWNzLmdldHdyaXRlcigndXRmLTgnKShzeXMuc3Rkb3V0KQotCi0gICAgcGFyc2VyID0gT3B0aW9u
UGFyc2VyKCkKLSAgICAjIFdlIGFjY2VwdCAtLWNvbW1hbmRfbGluZV9mbGFnIHN0eWxlIGZsYWdz
IHdoaWNoIGlzIHRoZSBzYW1lIGFzIEdvb2dsZQotICAgICMgZ2ZsYWdzIGluIGFkZGl0aW9uIHRv
IGNvbW1vbiAtLWNvbW1hbmQtbGluZS1mbGFnIHN0eWxlIGZsYWdzLgotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctcycsICctLXNlcnZlci1ob3N0JywgJy0tc2VydmVyX2hvc3QnLAotICAgICAgICAg
ICAgICAgICAgICAgIGRlc3Q9J3NlcnZlcl9ob3N0JywgdHlwZT0nc3RyaW5nJywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PSdsb2NhbGhvc3QnLCBoZWxwPSdzZXJ2ZXIgaG9zdCcpCi0g
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tc2VydmVyLXBvcnQnLCAnLS1zZXJ2ZXJfcG9y
dCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc2VydmVyX3BvcnQnLCB0eXBlPSdpbnQn
LAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9X1VOREVGSU5FRF9QT1JULCBoZWxwPSdz
ZXJ2ZXIgcG9ydCcpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1vJywgJy0tb3JpZ2luJywgZGVz
dD0nb3JpZ2luJywgdHlwZT0nc3RyaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PU5vbmUsIGhlbHA9J29yaWdpbicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1yJywgJy0tcmVz
b3VyY2UnLCBkZXN0PSdyZXNvdXJjZScsIHR5cGU9J3N0cmluZycsCi0gICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdD0nL2VjaG8nLCBoZWxwPSdyZXNvdXJjZSBwYXRoJykKLSAgICBwYXJzZXIu
YWRkX29wdGlvbignLW0nLCAnLS1tZXNzYWdlJywgZGVzdD0nbWVzc2FnZScsIHR5cGU9J3N0cmlu
ZycsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ2NvbW1hLXNlcGFyYXRlZCBtZXNzYWdl
cyB0byBzZW5kLiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAnJXMgd2lsbCBmb3JjZSBj
bG9zZSB0aGUgY29ubmVjdGlvbiBmcm9tIHNlcnZlci4nICUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfR09PREJZRV9NRVNTQUdFKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXEnLCAn
LS1xdWlldCcsIGRlc3Q9J3ZlcmJvc2UnLCBhY3Rpb249J3N0b3JlX2ZhbHNlJywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsIGhlbHA9J3N1cHByZXNzIG1lc3NhZ2VzJykKLSAg
ICBwYXJzZXIuYWRkX29wdGlvbignLXQnLCAnLS10bHMnLCBkZXN0PSd1c2VfdGxzJywgYWN0aW9u
PSdzdG9yZV90cnVlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxw
PSd1c2UgVExTICh3c3M6Ly8pLiBCeSBkZWZhdWx0LCAnCi0gICAgICAgICAgICAgICAgICAgICAg
J2l0IGxvb2tzIGZvciBzc2wgYW5kIHB5T3BlblNTTCBtb2R1bGUgYW5kIHVzZXMgZm91bmQgJwot
ICAgICAgICAgICAgICAgICAgICAgICdvbmUuIFVzZSAtLXRscy1tb2R1bGUgb3B0aW9uIHRvIHNw
ZWNpZnkgd2hpY2ggbW9kdWxlICcKLSAgICAgICAgICAgICAgICAgICAgICAndG8gdXNlJykKLSAg
ICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtbW9kdWxlJywgJy0tdGxzX21vZHVsZScsIGRlc3Q9
J3Rsc19tb2R1bGUnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2Nob2ljZScsCi0gICAg
ICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bX1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNf
QllfUFlPUEVOU1NMXSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdVc2Ugc3NsIG1vZHVs
ZSBpZiAiJXMiIGlzIHNwZWNpZmllZC4gJwotICAgICAgICAgICAgICAgICAgICAgICdVc2UgcHlP
cGVuU1NMIG1vZHVsZSBpZiAiJXMiIGlzIHNwZWNpZmllZCcgJQotICAgICAgICAgICAgICAgICAg
ICAgIChfVExTX0JZX1NUQU5EQVJEX01PRFVMRSwgX1RMU19CWV9QWU9QRU5TU0wpKQotICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctLXRscy12ZXJzaW9uJywgJy0tdGxzX3ZlcnNpb24nLAotICAgICAg
ICAgICAgICAgICAgICAgIGRlc3Q9J3Rsc192ZXJzaW9uJywKLSAgICAgICAgICAgICAgICAgICAg
ICB0eXBlPSdzdHJpbmcnLCBkZWZhdWx0PV9UTFNfVkVSU0lPTl9TU0wyMywKLSAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSdUTFMvU1NMIHZlcnNpb24gdG8gdXNlLiBPbmUgb2YgXCcnICsKLSAg
ICAgICAgICAgICAgICAgICAgICBfVExTX1ZFUlNJT05fU1NMMjMgKyAnXCcgKFNTTCB2ZXJzaW9u
IDIgb3IgMyksIFwnJyArCi0gICAgICAgICAgICAgICAgICAgICAgX1RMU19WRVJTSU9OX1NTTDMg
KyAnXCcgKFNTTCB2ZXJzaW9uIDMpLCBcJycgKwotICAgICAgICAgICAgICAgICAgICAgIF9UTFNf
VkVSU0lPTl9UTFMxICsgJ1wnIChUTFMgdmVyc2lvbiAxKScpCi0gICAgcGFyc2VyLmFkZF9vcHRp
b24oJy0tZGlzYWJsZS10bHMtY29tcHJlc3Npb24nLCAnLS1kaXNhYmxlX3Rsc19jb21wcmVzc2lv
bicsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nZGlzYWJsZV90bHNfY29tcHJlc3Npb24n
LAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFs
c2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nRGlzYWJsZSBUTFMgY29tcHJlc3Npb24u
IEF2YWlsYWJsZSBvbmx5IHdoZW4gJwotICAgICAgICAgICAgICAgICAgICAgICdweU9wZW5TU0wg
bW9kdWxlIGlzIHVzZWQuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWsnLCAnLS1zb2NrZXQt
dGltZW91dCcsICctLXNvY2tldF90aW1lb3V0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0
PSdzb2NrZXRfdGltZW91dCcsIHR5cGU9J2ludCcsIGRlZmF1bHQ9X1RJTUVPVVRfU0VDLAotICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9J1RpbWVvdXQoc2VjKSBmb3Igc29ja2V0cycpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy0tZHJhZnQ3NScsIGRlc3Q9J2RyYWZ0NzUnLAotICAgICAgICAg
ICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAg
ICAgICAgICAgICAgICAgaGVscD0nT2Jzb2xldGUgb3B0aW9uLiBEb25cJ3QgdXNlIHRoaXMuJykK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1wcm90b2NvbC12ZXJzaW9uJywgJy0tcHJvdG9jb2xf
dmVyc2lvbicsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ncHJvdG9jb2xfdmVyc2lvbics
Ci0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0nc3RyaW5nJywgZGVmYXVsdD1fUFJPVE9DT0xf
VkVSU0lPTl9IWUJJMTMsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nV2ViU29ja2V0IHBy
b3RvY29sIHZlcnNpb24gdG8gdXNlLiBPbmUgb2YgXCcnICsKLSAgICAgICAgICAgICAgICAgICAg
ICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMTMgKyAnXCcsIFwnJyArCi0gICAgICAgICAgICAgICAg
ICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSFlCSTA4ICsgJ1wnLCBcJycgKwotICAgICAgICAgICAg
ICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwMCArICdcJycpCi0gICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy0tdmVyc2lvbi1oZWFkZXInLCAnLS12ZXJzaW9uX2hlYWRlcicsCi0gICAgICAg
ICAgICAgICAgICAgICAgZGVzdD0ndmVyc2lvbl9oZWFkZXInLAotICAgICAgICAgICAgICAgICAg
ICAgIHR5cGU9J2ludCcsIGRlZmF1bHQ9LTEsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0n
U3BlY2lmeSBTZWMtV2ViU29ja2V0LVZlcnNpb24gaGVhZGVyIHZhbHVlJykKLSAgICBwYXJzZXIu
YWRkX29wdGlvbignLS1kZWZsYXRlLWZyYW1lJywgJy0tZGVmbGF0ZV9mcmFtZScsCi0gICAgICAg
ICAgICAgICAgICAgICAgZGVzdD0nZGVmbGF0ZV9mcmFtZScsCi0gICAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdVc2UgdGhlIGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uLicpCi0gICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy0tdXNlLXBlcm1lc3NhZ2UtZGVmbGF0ZScsICctLXVzZV9wZXJtZXNzYWdl
X2RlZmxhdGUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3VzZV9wZXJtZXNzYWdlX2Rl
ZmxhdGUnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1
bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNlIHRoZSBwZXJtZXNzYWdl
LWRlZmxhdGUgZXh0ZW5zaW9uLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWxldmVs
JywgJy0tbG9nX2xldmVsJywgdHlwZT0nY2hvaWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSdsb2dfbGV2ZWwnLCBkZWZhdWx0PSd3YXJuJywKLSAgICAgICAgICAgICAgICAgICAgICBj
aG9pY2VzPVsnZGVidWcnLCAnaW5mbycsICd3YXJuJywgJ2Vycm9yJywgJ2NyaXRpY2FsJ10sCi0g
ICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIGxldmVsLicpCi0KLSAgICAob3B0aW9ucywg
dW51c2VkX2FyZ3MpID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotCi0gICAgbG9nZ2luZy5iYXNpY0Nv
bmZpZyhsZXZlbD1sb2dnaW5nLmdldExldmVsTmFtZShvcHRpb25zLmxvZ19sZXZlbC51cHBlcigp
KSkKLQotICAgIGlmIG9wdGlvbnMuZHJhZnQ3NToKLSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgn
LS1kcmFmdDc1IG9wdGlvbiBpcyBvYnNvbGV0ZS4nKQotICAgICAgICBzeXMuZXhpdCgxKQotCi0g
ICAgaWYgb3B0aW9ucy5wcm90b2NvbF92ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hJWElF
NzU6Ci0gICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoCi0gICAgICAgICAgICAnVmFsdWUgJXMgaXMg
b2Jzb2xldGUgZm9yIC0tcHJvdG9jb2xfdmVyc2lvbiBvcHRpb25zJyAlCi0gICAgICAgICAgICBf
UFJPVE9DT0xfVkVSU0lPTl9ISVhJRTc1KQotICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgaWYg
b3B0aW9ucy51c2VfdGxzOgotICAgICAgICBpZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgTm9uZToK
LSAgICAgICAgICAgIGlmIF9pbXBvcnRfc3NsKCk6Ci0gICAgICAgICAgICAgICAgb3B0aW9ucy50
bHNfbW9kdWxlID0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEUKLSAgICAgICAgICAgICAgICBsb2dn
aW5nLmRlYnVnKCdVc2luZyBzc2wgbW9kdWxlJykKLSAgICAgICAgICAgIGVsaWYgX2ltcG9ydF9w
eW9wZW5zc2woKToKLSAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUgPSBfVExTX0JZ
X1BZT1BFTlNTTAotICAgICAgICAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ1VzaW5nIHB5T3BlblNT
TCBtb2R1bGUnKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmNy
aXRpY2FsKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1RMUyBzdXBwb3J0IHJlcXVpcmVzIHNz
bCBvciBweU9wZW5TU0wgbW9kdWxlLicpCi0gICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAg
ICAgICAgZWxpZiBvcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEU6
Ci0gICAgICAgICAgICBpZiBub3QgX2ltcG9ydF9zc2woKToKLSAgICAgICAgICAgICAgICBsb2dn
aW5nLmNyaXRpY2FsKCdzc2wgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUnKQotICAgICAgICAgICAg
ICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNf
QllfUFlPUEVOU1NMOgotICAgICAgICAgICAgaWYgbm90IF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0g
ICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgncHlPcGVuU1NMIG1vZHVsZSBpcyBub3Qg
YXZhaWxhYmxlJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnSW52YWxpZCAtLXRscy1tb2R1bGUgb3B0aW9u
OiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSkK
LSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAgICAgaWYgKG9wdGlvbnMuZGlzYWJsZV90
bHNfY29tcHJlc3Npb24gYW5kCi0gICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUgIT0gX1RM
U19CWV9QWU9QRU5TU0wpOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnWW91IGNhbiBk
aXNhYmxlIFRMUyBjb21wcmVzc2lvbiBvbmx5IHdoZW4gJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAncHlPcGVuU1NMIG1vZHVsZSBpcyB1c2VkLicpCi0gICAgICAgICAgICBzeXMuZXhp
dCgxKQotICAgIGVsc2U6Ci0gICAgICAgIGlmIG9wdGlvbnMudGxzX21vZHVsZSBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1VzZSAtLXRscy1tb2R1bGUgb3B0aW9u
IG9ubHkgdG9nZXRoZXIgd2l0aCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLXVz
ZS10bHMgb3B0aW9uLicpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIG9w
dGlvbnMuZGlzYWJsZV90bHNfY29tcHJlc3Npb246Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRp
Y2FsKCdVc2UgLS1kaXNhYmxlLXRscy1jb21wcmVzc2lvbiBvbmx5IHRvZ2V0aGVyICcKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3dpdGggLS11c2UtdGxzIG9wdGlvbi4nKQotICAgICAg
ICAgICAgc3lzLmV4aXQoMSkKLQotICAgICMgRGVmYXVsdCBwb3J0IG51bWJlciBkZXBlbmRzIG9u
IHdoZXRoZXIgVExTIGlzIHVzZWQuCi0gICAgaWYgb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9PSBfVU5E
RUZJTkVEX1BPUlQ6Ci0gICAgICAgIGlmIG9wdGlvbnMudXNlX3RsczoKLSAgICAgICAgICAgIG9w
dGlvbnMuc2VydmVyX3BvcnQgPSBjb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1NFQ1VSRV9QT1JU
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9wb3J0ID0gY29tbW9u
LkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUCi0KLSAgICAjIG9wdHBhcnNlIGRvZXNuJ3Qgc2VlbSB0
byBoYW5kbGUgbm9uLWFzY2lpIGRlZmF1bHQgdmFsdWVzLgotICAgICMgU2V0IGRlZmF1bHQgbWVz
c2FnZSBoZXJlLgotICAgIGlmIG5vdCBvcHRpb25zLm1lc3NhZ2U6Ci0gICAgICAgIG9wdGlvbnMu
bWVzc2FnZSA9IHUnSGVsbG8sXHU2NWU1XHU2NzJjJyAgICMgIkphcGFuIiBpbiBKYXBhbmVzZQot
Ci0gICAgRWNob0NsaWVudChvcHRpb25zKS5ydW4oKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21h
aW5fXyc6Ci0gICAgbWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hv
X25vZXh0X3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRmNTE1MTIyNzEx
MWUxMTQ0MjRjNTU4NmExNDJhOWFkYjdkNjA0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotX0dPT0RC
WUVfTUVTU0FHRSA9IHUnR29vZGJ5ZScKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5k
c2hha2UocmVxdWVzdCk6Ci0gICAgIiIiUmVjZWl2ZWQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25z
IGhlYWRlciB2YWx1ZSBpcyBwYXJzZWQgaW50bwotICAgIHJlcXVlc3Qud3NfcmVxdWVzdGVkX2V4
dGVuc2lvbnMuIHB5d2Vic29ja2V0IGNyZWF0ZXMgZXh0ZW5zaW9uCi0gICAgcHJvY2Vzc29ycyB1
c2luZyBpdCBiZWZvcmUgZG9fZXh0cmFfaGFuZHNoYWtlIGNhbGwgYW5kIG5ldmVyIGxvb2tzIGF0
IGl0Ci0gICAgYWZ0ZXIgdGhlIGNhbGwuCi0KLSAgICBUbyByZWplY3QgcmVxdWVzdGVkIGV4dGVu
c2lvbnMsIGNsZWFyIHRoZSBwcm9jZXNzb3IgbGlzdC4KLSAgICAiIiIKLQotICAgIHJlcXVlc3Qu
d3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBbXQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVy
X2RhdGEocmVxdWVzdCk6Ci0gICAgIiIiRWNoby4gU2FtZSBhcyBlY2hvX3dzaC5weS4iIiIKLQot
ICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGxpbmUgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZl
X21lc3NhZ2UoKQotICAgICAgICBpZiBsaW5lIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCB1bmljb2RlKToKLSAgICAgICAgICAgIHJlcXVl
c3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5lLCBiaW5hcnk9RmFsc2UpCi0gICAgICAgICAg
ICBpZiBsaW5lID09IF9HT09EQllFX01FU1NBR0U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2Uo
bGluZSwgYmluYXJ5PVRydWUpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9leGFtcGxlL2VjaG9fd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX3dzaC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzg2NDZjMzJjZWI1MTVmMTVkZDU3MjYy
MjY4OWM3OWVlNjFlNTQzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
NTQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotX0dPT0RCWUVfTUVTU0FHRSA9IHUnR29v
ZGJ5ZScKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0g
ICAgIyBUaGlzIGV4YW1wbGUgaGFuZGxlciBhY2NlcHRzIGFueSByZXF1ZXN0LiBTZWUgb3JpZ2lu
X2NoZWNrX3dzaC5weSBmb3IgaG93Ci0gICAgIyB0byByZWplY3QgYWNjZXNzIGZyb20gdW50cnVz
dGVkIHNjcmlwdHMgYmFzZWQgb24gb3JpZ2luIHZhbHVlLgotCi0gICAgcGFzcyAgIyBBbHdheXMg
YWNjZXB0LgotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAg
d2hpbGUgVHJ1ZToKLSAgICAgICAgbGluZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVz
c2FnZSgpCi0gICAgICAgIGlmIGxpbmUgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybgotICAg
ICAgICBpZiBpc2luc3RhbmNlKGxpbmUsIHVuaWNvZGUpOgotICAgICAgICAgICAgcmVxdWVzdC53
c19zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUsIGJpbmFyeT1GYWxzZSkKLSAgICAgICAgICAgIGlm
IGxpbmUgPT0gX0dPT0RCWUVfTUVTU0FHRToKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5l
LCBiaW5hcnk9VHJ1ZSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dpIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9ldmVudHNvdXJj
ZS5jZ2kKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkZGRmMjM3Y2Y3ZDQ3NjQ5NzM0
N2QwOTVhMTIyOTk0MTc3ZTE0MDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kKKysrIC9kZXYvbnVs
bApAQCAtMSw1NCArMCwwIEBACi0jIS91c3IvYmluL3B5dGhvbgotCi0jIENvcHlyaWdodCAyMDEz
LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotCi0iIiJUaGlzIENHSSBzY3JpcHQgZ2VuZXJhdGVzIHRleHQvZXZlbnQtc3RyZWFtIHR5cGUg
ZGF0YSBzdHJlYW0gZm9yIHRlc3RpbmcKLXRoZSBTZXJ2ZXItU2VudCBFdmVudHMuCi0KLUl0IHdp
bGwgb25seSB3b3JrIGNvcnJlY3RseSB3aXRoIEhUVFAgc2VydmVycyB0aGF0IGRvIG5vdCBidWZm
ZXIgdGhlIG91dHB1dCBvZgotQ0dJIHNjcmlwdHMuCi0iIiIKLQotCi1pbXBvcnQgc3lzCi1pbXBv
cnQgdGltZQotCi1zeXMuc3Rkb3V0LndyaXRlKCdDb250ZW50LXR5cGU6IHRleHQvZXZlbnQtc3Ry
ZWFtXHJcblxyXG4nKQotCi1pZCA9IDAKLQotd2hpbGUgVHJ1ZToKLSAgc3lzLnN0ZG91dC53cml0
ZSgnZGF0YTogSGVsbG9cclxuaWQ6ICVkXHJcblxyXG4nICUgaWQpCi0gIHN5cy5zdGRvdXQuZmx1
c2goKQotCi0gIGlkID0gaWQgKyAxCi0KLSAgdGltZS5zbGVlcCgxKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS9ldmVudHNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9ldmVudHNv
dXJjZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTk4YTg4MDdkMWZmY2Nl
Y2Y1ODVmMWJiNjU2ZmQyZDkwMmZjZDM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZlbnRzb3VyY2UuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDc0ICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5j
LgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6
Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmli
dXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1E
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgot
Ci08IS0tCi1TaW1wbGUgZXhhbXBsZSBvZiB0aGUgU2VydmVyLVNlbnQgRXZlbnRzCi1odHRwOi8v
ZGV2LnczLm9yZy9odG1sNS9ldmVudHNvdXJjZS8KLQotRm9yIGNvbXBhcmlzb24gd2l0aCB0aGUg
V2ViU29ja2V0IFByb3RvY29sICYgQVBJLgotCi1SdW4gdGhlIHB5d2Vic29ja2V0IHdpdGggdGhl
IC0tY2dpX3BhdGggcGFyYW1ldGVyLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+U2Vy
dmVyLVNlbnQgRXZlbnRzIEV4YW1wbGU8L3RpdGxlPgotPHNjcmlwdD4KLXZhciBldmVudFNvdXJj
ZSA9IG51bGw7Ci0KLWZ1bmN0aW9uIGFkZFRvTG9nKGRhdGEpIHsKLSAgbG9nQm94LnZhbHVlICs9
IGRhdGEgKyAnXG4nOwotICBsb2dCb3guc2Nyb2xsVG9wID0gMTAwMDAwMDsKLX0KLQotZnVuY3Rp
b24gaW5pdCgpIHsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwot
Ci0gIGV2ZW50U291cmNlICA9IG5ldyBFdmVudFNvdXJjZSgnL2V2ZW50c291cmNlLmNnaScpOwot
ICBldmVudFNvdXJjZS5vbm9wZW4gPSBmdW5jdGlvbigpIHsKLSAgICBhZGRUb0xvZygnb25vcGVu
IChyZWFkeVN0YXRlID0gJyArIGV2ZW50U291cmNlLnJlYWR5U3RhdGUgKyAnKScpOwotICB9Ci0g
IGV2ZW50U291cmNlLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgYWRkVG9Mb2co
ZXZlbnQuZGF0YSk7Ci0gIH0KLSAgZXZlbnRTb3VyY2Uub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50
KSB7Ci0gICAgYWRkVG9Mb2coJ29uZXJyb3IgKHJlYWR5U3RhdGUgPSAnICsgZXZlbnRTb3VyY2Uu
cmVhZHlTdGF0ZSArICcpJyk7Ci0gIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJpbml0KCkiPgotPHRleHRhcmVhIGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xzPSI0MCIgcmVh
ZG9ubHk+PC90ZXh0YXJlYT4KLTxwIHN0eWxlPSJmb250LXNpemU6IHNtYWxsIj4KLSAgTWFrZSBz
dXJlIHRoYXQgcHl3ZWJzb2NrZXQgaXMgcnVuIHdpdGggLS1jZ2lfcGF0aCBwYXJhbWV0ZXIuCi08
L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2hhbmRs
ZXJfbWFwLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyMWM0YzA5YWEwMDkxZDhiYWYyOTA4OTU5OTA1ODY3ODQyYWVi
ODY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBA
QAotIyB3ZWJzb2NrZXQgaGFuZGxlciBtYXAgZmlsZSwgdXNlZCBieSBzdGFuZGFsb25lLnB5IC1t
IG9wdGlvbi4KLSMgQSBsaW5lIHN0YXJ0aW5nIHdpdGggJyMnIGlzIGEgY29tbWVudCBsaW5lLgot
IyBFYWNoIGxpbmUgY29uc2lzdHMgb2YgJ2FsaWFzX3Jlc291cmNlX3BhdGgnIGFuZCAnZXhpc3Rp
bmdfcmVzb3VyY2VfcGF0aCcKLSMgc2VwYXJhdGVkIGJ5IHNwYWNlcy4KLSMgQWxpYXNpbmcgaXMg
cHJvY2Vzc2VkIGZyb20gdGhlIHRvcCB0byB0aGUgYm90dG9tIG9mIHRoZSBsaW5lLCBhbmQKLSMg
J2V4aXN0aW5nX3Jlc291cmNlX3BhdGgnIG11c3QgZXhpc3QgYmVmb3JlIGl0IGlzIGFsaWFzZWQu
Ci0jIEZvciBleGFtcGxlLAotIyAgLyAvZWNobwotIyBtZWFucyB0aGF0IGEgcmVxdWVzdCB0byAn
Lycgd2lsbCBiZSBoYW5kbGVkIGJ5IGhhbmRsZXJzIGZvciAnL2VjaG8nLgotLyAvZWNobwotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2hzdHNfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9oc3RzX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTg2MTk0NjkyMWFm
MDQ1OTRkNjIwMjZiNDZmMDc3NThkZGZlNDAyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2hzdHNfd3NoLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNDAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZGVmIHdlYl9zb2Nr
ZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHJlcXVlc3QuZXh0cmFfaGVhZGVy
cy5hcHBlbmQoCi0gICAgICAgICgnU3RyaWN0LVRyYW5zcG9ydC1TZWN1cml0eScsICdtYXgtYWdl
PTg2NDAwJykpCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAg
ICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ0hlbGxvJywgYmluYXJ5PUZhbHNlKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9pbnRl
cm5hbF9lcnJvcl93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dzaC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmU1ODFiNTRhNjQ4YzA5YTIyZjI1NDUx
MjdkNzBkZjA1MTM0OTIzNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dzaC5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1l
dDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBtc2d1dGlsCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNo
YWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRh
KHJlcXVlc3QpOgotICAgIHJhaXNlIG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdJbnRl
bnRpb25hbCcpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL29yaWdpbl9jaGVja193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL29yaWdpbl9jaGVj
a193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwNTc2N2FiOTMyZmI1ODI4
MjRhYWYxYTU3ZDkyNDljMzA0YmQ1MWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4K
LSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0j
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSMgVGhpcyBleGFt
cGxlIGlzIGRlcml2ZWQgZnJvbSB0ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193
c2gucHkuCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgot
ICAgIGlmIHJlcXVlc3Qud3Nfb3JpZ2luID09ICdodHRwOi8vZXhhbXBsZS5jb20nOgotICAgICAg
ICByZXR1cm4KLSAgICByYWlzZSBWYWx1ZUVycm9yKCdVbmFjY2VwdGFibGUgb3JpZ2luOiAlcicg
JSByZXF1ZXN0LndzX29yaWdpbikKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJl
cXVlc3QpOgotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgnb3JpZ2luX2NoZWNrX3dzaC5w
eSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
cmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3B5d2Vic29ja2V0LmNvbmYg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9leGFtcGxlL3B5d2Vic29ja2V0LmNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDMzNWQxMzBhNWM4NGY2OWRlNGY4MWQzNThmYjJjZGI1YmRlNGFmNmQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9weXdlYnNvY2tldC5jb25mCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotIyBDb3B5
cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLSMKLSMgU2FtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgYXBhY2hlMgot
IwotTG9nTGV2ZWwgZGVidWcKLTxJZk1vZHVsZSBweXRob25fbW9kdWxlPgotICBQeXRob25QYXRo
ICJzeXMucGF0aCtbJy9tb2RfcHl3ZWJzb2NrZXQnXSIKLSAgUHl0aG9uT3B0aW9uIG1vZF9weXdl
YnNvY2tldC5oYW5kbGVyX3Jvb3QgL3Zhci93d3cKLSAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNv
Y2tldC5oYW5kbGVyX3NjYW4gL3Zhci93d3cvd3MKLSAgI1B5dGhvbk9wdGlvbiBtb2RfcHl3ZWJz
b2NrZXQuYWxsb3dfZHJhZnQ3NSBPbgotICA8TG9jYXRpb24gL3dzPgotICAgIFB5dGhvbkhlYWRl
clBhcnNlckhhbmRsZXIgbW9kX3B5d2Vic29ja2V0LmhlYWRlcnBhcnNlcmhhbmRsZXIKLSAgPC9M
b2NhdGlvbj4KLTwvSWZNb2R1bGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3NwZWNp
YWxfaGVhZGVycy5jZ2kgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhNTA4MGYxZjFhZWEzYTM3YTdlNzI5YzY3OGQ2
YTEyMzM3YmVkYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpCisrKyAvZGV2L251bGwKQEAg
LTEsMjggKzAsMCBAQAotIyEvdXNyL2Jpbi9weXRob24KLQotIyBDb3B5cmlnaHQgMjAxNCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotIyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5k
IGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLSMgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5j
b20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLSIiIkNHSSBzY3JpcHQgc2FtcGxlIGZvciB0
ZXN0aW5nIGVmZmVjdCBvZiBIVFRQIGhlYWRlcnMgb24gdGhlIG9yaWdpbiBwYWdlLgotCi1Ob3Rl
IHRoYXQgQ0dJIHNjcmlwdHMgZG9uJ3Qgd29yayBvbiB0aGUgc3RhbmRhbG9uZSBweXdlYnNvY2tl
dCBydW5uaW5nIGluIFRMUwotbW9kZS4KLSIiIgotCi0KLXByaW50ICIiIkNvbnRlbnQtdHlwZTog
dGV4dC9odG1sCi1Db250ZW50LVNlY3VyaXR5LVBvbGljeTogY29ubmVjdC1zcmMgc2VsZgotCi08
aHRtbD4KLTxoZWFkPgotPHRpdGxlPjwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+
Ci12YXIgc29ja2V0ID0gbmV3IFdlYlNvY2tldCgid3M6Ly9leGFtcGxlLmNvbSIpOwotPC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+IiIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0
aWwuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0aWwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGExY2FkNDk3NWVlMGNlYWVjNmE4OTgyZTI5NTRjZjk2NGZkZTUyZTkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91
dGlsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTc3ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDEz
LCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8g
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0vLyBVdGlsaXRpZXMgZm9yIGV4YW1wbGUg
YXBwbGljYXRpb25zIChmb3IgYm90aCBtYWluIGFuZCB3b3JrZXIgdGhyZWFkKS4KLQotdmFyIHJl
c3VsdHMgPSB7fTsKLQotZnVuY3Rpb24gZ2V0VGltZVN0YW1wKCkgewotICByZXR1cm4gRGF0ZS5u
b3coKTsKLX0KLQotZnVuY3Rpb24gZm9ybWF0UmVzdWx0SW5LaUIoc2l6ZSwgdGltZVBlck1lc3Nh
Z2VJbk1zLCBzdGRkZXZUaW1lUGVyTWVzc2FnZUluTXMsCi0gICAgc3BlZWQsIHByaW50U2l6ZSkg
ewotICBpZiAocHJpbnRTaXplKSB7Ci0gICAgcmV0dXJuIChzaXplIC8gMTAyNCkgKwotICAgICAg
ICAnXHQnICsgdGltZVBlck1lc3NhZ2VJbk1zLnRvRml4ZWQoMykgKwotICAgICAgICAoc3RkZGV2
VGltZVBlck1lc3NhZ2VJbk1zID09IC0xID8KLSAgICAgICAgICAgICcnIDoKLSAgICAgICAgICAg
ICdcdCcgKyBzdGRkZXZUaW1lUGVyTWVzc2FnZUluTXMudG9GaXhlZCgzKSkgKwotICAgICAgICAn
XHQnICsgc3BlZWQudG9GaXhlZCgzKTsKLSAgfSBlbHNlIHsKLSAgICByZXR1cm4gc3BlZWQudG9T
dHJpbmcoKTsKLSAgfQotfQotCi1mdW5jdGlvbiBjbGVhckF2ZXJhZ2VEYXRhKCkgewotICByZXN1
bHRzID0ge307Ci19Ci0KLWZ1bmN0aW9uIHJlcG9ydEF2ZXJhZ2VEYXRhKGNvbmZpZykgewotICBj
b25maWcuYWRkVG9TdW1tYXJ5KAotICAgICAgJ1NpemVbS2lCXVx0QXZlcmFnZSB0aW1lW21zXVx0
U3RkZGV2IHRpbWVbbXNdXHRTcGVlZFtLQi9zXScpOwotICBmb3IgKHZhciBzaXplIGluIHJlc3Vs
dHMpIHsKLSAgICB2YXIgYXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5NcyA9IHJlc3VsdHNbc2l6ZV0u
c3VtX3QgLyByZXN1bHRzW3NpemVdLm47Ci0gICAgdmFyIHNwZWVkID0gY2FsY3VsYXRlU3BlZWRJ
bktCKHNpemUsIGF2ZXJhZ2VUaW1lUGVyTWVzc2FnZUluTXMpOwotICAgIC8vIENhbGN1bGF0ZSBz
YW1wbGUgc3RhbmRhcmQgZGV2aWF0aW9uCi0gICAgdmFyIHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5N
cyA9IE1hdGguc3FydCgKLSAgICAgICAgKHJlc3VsdHNbc2l6ZV0uc3VtX3QyIC8gcmVzdWx0c1tz
aXplXS5uIC0KLSAgICAgICAgICAgIGF2ZXJhZ2VUaW1lUGVyTWVzc2FnZUluTXMgKiBhdmVyYWdl
VGltZVBlck1lc3NhZ2VJbk1zKSAqCi0gICAgICAgIHJlc3VsdHNbc2l6ZV0ubiAvCi0gICAgICAg
IChyZXN1bHRzW3NpemVdLm4gLSAxKSk7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeShmb3JtYXRS
ZXN1bHRJbktpQigKLSAgICAgICAgc2l6ZSwgYXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5Ncywgc3Rk
ZGV2VGltZVBlck1lc3NhZ2VJbk1zLCBzcGVlZCwKLSAgICAgICAgdHJ1ZSkpOwotICB9Ci19Ci0K
LWZ1bmN0aW9uIGNhbGN1bGF0ZVNwZWVkSW5LQihzaXplLCB0aW1lU3BlbnRJbk1zKSB7Ci0gIHJl
dHVybiBNYXRoLnJvdW5kKHNpemUgLyB0aW1lU3BlbnRJbk1zICogMTAwMCkgLyAxMDAwOwotfQot
Ci1mdW5jdGlvbiBjYWxjdWxhdGVBbmRMb2dSZXN1bHQoY29uZmlnLCBzaXplLCBzdGFydFRpbWVJ
bk1zLCB0b3RhbFNpemUpIHsKLSAgdmFyIHRpbWVTcGVudEluTXMgPSBnZXRUaW1lU3RhbXAoKSAt
IHN0YXJ0VGltZUluTXM7Ci0gIHZhciBzcGVlZCA9IGNhbGN1bGF0ZVNwZWVkSW5LQih0b3RhbFNp
emUsIHRpbWVTcGVudEluTXMpOwotICB2YXIgdGltZVBlck1lc3NhZ2VJbk1zID0gdGltZVNwZW50
SW5NcyAvICh0b3RhbFNpemUgLyBzaXplKTsKLSAgaWYgKCFyZXN1bHRzW3NpemVdKSB7Ci0gICAg
cmVzdWx0c1tzaXplXSA9IHtuOiAwLCBzdW1fdDogMCwgc3VtX3QyOiAwfTsKLSAgfQotICBjb25m
aWcubWVhc3VyZVZhbHVlKHRpbWVQZXJNZXNzYWdlSW5Ncyk7Ci0gIHJlc3VsdHNbc2l6ZV0ubiAr
KzsKLSAgcmVzdWx0c1tzaXplXS5zdW1fdCArPSB0aW1lUGVyTWVzc2FnZUluTXM7Ci0gIHJlc3Vs
dHNbc2l6ZV0uc3VtX3QyICs9IHRpbWVQZXJNZXNzYWdlSW5NcyAqIHRpbWVQZXJNZXNzYWdlSW5N
czsKLSAgY29uZmlnLmFkZFRvTG9nKGZvcm1hdFJlc3VsdEluS2lCKHNpemUsIHRpbWVQZXJNZXNz
YWdlSW5NcywgLTEsIHNwZWVkLAotICAgICAgY29uZmlnLnByaW50U2l6ZSkpOwotfQotCi1mdW5j
dGlvbiBmaWxsQXJyYXlCdWZmZXIoYnVmZmVyLCBjKSB7Ci0gIHZhciBpOwotCi0gIHZhciB1MzJD
b250ZW50ID0gYyAqIDB4MDEwMTAxMDE7Ci0KLSAgdmFyIHUzMkJsb2NrcyA9IE1hdGguZmxvb3Io
YnVmZmVyLmJ5dGVMZW5ndGggLyA0KTsKLSAgdmFyIHUzMlZpZXcgPSBuZXcgVWludDMyQXJyYXko
YnVmZmVyLCAwLCB1MzJCbG9ja3MpOwotICAvLyBsZW5ndGggYXR0cmlidXRlIGlzIHNsb3cgb24g
Q2hyb21lLiBEb24ndCB1c2UgaXQgZm9yIGxvb3AgY29uZGl0aW9uLgotICBmb3IgKGkgPSAwOyBp
IDwgdTMyQmxvY2tzOyArK2kpIHsKLSAgICB1MzJWaWV3W2ldID0gdTMyQ29udGVudDsKLSAgfQot
Ci0gIC8vIEZyYWN0aW9uCi0gIHZhciB1OEJsb2NrcyA9IGJ1ZmZlci5ieXRlTGVuZ3RoIC0gdTMy
QmxvY2tzICogNDsKLSAgdmFyIHU4VmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgdTMyQmxv
Y2tzICogNCwgdThCbG9ja3MpOwotICBmb3IgKGkgPSAwOyBpIDwgdThCbG9ja3M7ICsraSkgewot
ICAgIHU4Vmlld1tpXSA9IGM7Ci0gIH0KLX0KLQotZnVuY3Rpb24gdmVyaWZ5QXJyYXlCdWZmZXIo
YnVmZmVyLCBleHBlY3RlZENoYXIpIHsKLSAgdmFyIGk7Ci0KLSAgdmFyIGV4cGVjdGVkVTMyVmFs
dWUgPSBleHBlY3RlZENoYXIgKiAweDAxMDEwMTAxOwotCi0gIHZhciB1MzJCbG9ja3MgPSBNYXRo
LmZsb29yKGJ1ZmZlci5ieXRlTGVuZ3RoIC8gNCk7Ci0gIHZhciB1MzJWaWV3ID0gbmV3IFVpbnQz
MkFycmF5KGJ1ZmZlciwgMCwgdTMyQmxvY2tzKTsKLSAgZm9yIChpID0gMDsgaSA8IHUzMkJsb2Nr
czsgKytpKSB7Ci0gICAgaWYgKHUzMlZpZXdbaV0gIT0gZXhwZWN0ZWRVMzJWYWx1ZSkgewotICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgfQotCi0gIHZhciB1OEJsb2NrcyA9IGJ1ZmZlci5i
eXRlTGVuZ3RoIC0gdTMyQmxvY2tzICogNDsKLSAgdmFyIHU4VmlldyA9IG5ldyBVaW50OEFycmF5
KGJ1ZmZlciwgdTMyQmxvY2tzICogNCwgdThCbG9ja3MpOwotICBmb3IgKGkgPSAwOyBpIDwgdThC
bG9ja3M7ICsraSkgewotICAgIGlmICh1OFZpZXdbaV0gIT0gZXhwZWN0ZWRDaGFyKSB7Ci0gICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICB9Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1bmN0
aW9uIHZlcmlmeUJsb2IoY29uZmlnLCBibG9iLCBleHBlY3RlZENoYXIsIGRvbmVDYWxsYmFjaykg
ewotICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoYmxvYik7Ci0gIHJlYWRlci5vbmVycm9y
ID0gZnVuY3Rpb24oKSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdGaWxlUmVhZGVyIEVycm9yOiAn
ICsgcmVhZGVyLmVycm9yLm1lc3NhZ2UpOwotICAgIGRvbmVDYWxsYmFjayhibG9iLnNpemUsIGZh
bHNlKTsKLSAgfQotICByZWFkZXIub25sb2FkZW5kID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHJl
c3VsdCA9IHZlcmlmeUFycmF5QnVmZmVyKHJlYWRlci5yZXN1bHQsIGV4cGVjdGVkQ2hhcik7Ci0g
ICAgZG9uZUNhbGxiYWNrKGJsb2Iuc2l6ZSwgcmVzdWx0KTsKLSAgfQotICByZWFkZXIucmVhZEFz
QXJyYXlCdWZmZXIoYmxvYik7Ci19Ci0KLWZ1bmN0aW9uIHZlcmlmeUFja25vd2xlZGdlbWVudChj
b25maWcsIG1lc3NhZ2UsIHNpemUpIHsKLSAgaWYgKHR5cGVvZiBtZXNzYWdlICE9ICdzdHJpbmcn
KSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdJbnZhbGlkIGFjayB0eXBlOiAnICsgdHlwZW9mIG1l
c3NhZ2UpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICB2YXIgcGFyc2VkQWNrID0gcGFyc2VJ
bnQobWVzc2FnZSk7Ci0gIGlmIChpc05hTihwYXJzZWRBY2spKSB7Ci0gICAgY29uZmlnLmFkZFRv
TG9nKCdJbnZhbGlkIGFjayB2YWx1ZTogJyArIG1lc3NhZ2UpOwotICAgIHJldHVybiBmYWxzZTsK
LSAgfQotICBpZiAocGFyc2VkQWNrICE9IHNpemUpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coCi0g
ICAgICAgICdFeHBlY3RlZCBhY2sgZm9yICcgKyBzaXplICsgJ0IgYnV0IHJlY2VpdmVkIG9uZSBm
b3IgJyArIHBhcnNlZEFjayArCi0gICAgICAgICdCJyk7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9
Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1bmN0aW9uIGNsb25lQ29uZmlnKG9iaikgewotICB2
YXIgbmV3T2JqID0ge307Ci0gIGZvciAoa2V5IGluIG9iaikgewotICAgIG5ld09ialtrZXldID0g
b2JqW2tleV07Ci0gIH0KLSAgcmV0dXJuIG5ld09iajsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L2V4YW1wbGUvdXRpbF9tYWluLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGlsX21haW4uanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwM2QxYzJiZGM0NjJjNjU0ZjYwMzViYTk2ZTRl
YjhhMmJhYTdiODQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS91dGlsX21haW4uanMKKysrIC9kZXYvbnVsbApAQCAtMSw2MyAr
MCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotLy8KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0
eWxlCi0vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3Ig
YXQKLS8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2Vz
L2JzZAotCi0vLyBVdGlsaXRpZXMgZm9yIGV4YW1wbGUgYXBwbGljYXRpb25zIChmb3IgdGhlIG1h
aW4gdGhyZWFkIG9ubHkpLgotCi12YXIgbG9nQm94ID0gbnVsbDsKLXZhciBxdWV1ZWRMb2cgPSAn
JzsKLQotdmFyIHN1bW1hcnlCb3ggPSBudWxsOwotCi1mdW5jdGlvbiBxdWV1ZUxvZyhsb2cpIHsK
LSAgcXVldWVkTG9nICs9IGxvZyArICdcbic7Ci19Ci0KLWZ1bmN0aW9uIGFkZFRvTG9nKGxvZykg
ewotICBsb2dCb3gudmFsdWUgKz0gcXVldWVkTG9nOwotICBxdWV1ZWRMb2cgPSAnJzsKLSAgbG9n
Qm94LnZhbHVlICs9IGxvZyArICdcbic7Ci0gIGxvZ0JveC5zY3JvbGxUb3AgPSAxMDAwMDAwOwot
fQotCi1mdW5jdGlvbiBhZGRUb1N1bW1hcnkobG9nKSB7Ci0gIHN1bW1hcnlCb3gudmFsdWUgKz0g
bG9nICsgJ1xuJzsKLSAgc3VtbWFyeUJveC5zY3JvbGxUb3AgPSAxMDAwMDAwOwotfQotCi0vLyB2
YWx1ZTogZXhlY3V0aW9uIHRpbWUgaW4gbWlsbGlzZWNvbmRzLgotLy8gY29uZmlnLm1lYXN1cmVW
YWx1ZSBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGluIFBlcmZvcm1hbmNlIFRlc3RzLgotLy8gRG8g
bm90aGluZyBoZXJlIGluIG5vbi1QZXJmb3JtYW5jZVRlc3QuCi1mdW5jdGlvbiBtZWFzdXJlVmFs
dWUodmFsdWUpIHsKLX0KLQotZnVuY3Rpb24gZ2V0SW50RnJvbUlucHV0KGlkKSB7Ci0gIHJldHVy
biBwYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkudmFsdWUpOwotfQotCi1mdW5j
dGlvbiBnZXRTdHJpbmdGcm9tUmFkaW9Cb3gobmFtZSkgewotICB2YXIgbGlzdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdiZW5jaG1hcmtfZm9ybScpW25hbWVdOwotICBmb3IgKHZhciBpID0g
MDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpCi0gICAgaWYgKGxpc3QuaXRlbShpKS5jaGVja2VkKQot
ICAgICAgcmV0dXJuIGxpc3QuaXRlbShpKS52YWx1ZTsKLSAgcmV0dXJuIHVuZGVmaW5lZDsKLX0K
LWZ1bmN0aW9uIGdldEJvb2xGcm9tQ2hlY2tCb3goaWQpIHsKLSAgcmV0dXJuIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGlkKS5jaGVja2VkOwotfQotCi1mdW5jdGlvbiBnZXRJbnRBcnJheUZyb21J
bnB1dChpZCkgewotICB2YXIgc3RyQXJyYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCku
dmFsdWUuc3BsaXQoJywnKTsKLSAgcmV0dXJuIHN0ckFycmF5Lm1hcChmdW5jdGlvbihzdHIpIHsg
cmV0dXJuIHBhcnNlSW50KHN0ciwgMTApOyB9KTsKLX0KLQotZnVuY3Rpb24gb25NZXNzYWdlKG1l
c3NhZ2UpIHsKLSAgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnYWRkVG9Mb2cnKQotICAgIGFk
ZFRvTG9nKG1lc3NhZ2UuZGF0YS5kYXRhKTsKLSAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUg
PT09ICdhZGRUb1N1bW1hcnknKQotICAgIGFkZFRvU3VtbWFyeShtZXNzYWdlLmRhdGEuZGF0YSk7
Ci0gIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnbWVhc3VyZVZhbHVlJykKLSAgICBt
ZWFzdXJlVmFsdWUobWVzc2FnZS5kYXRhLmRhdGEpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
ZXhhbXBsZS91dGlsX3dvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRpbF93b3JrZXIuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2NGY3ODI5ZDUyZDg1MDY0OTg4OWY5YjBh
Y2U5OTg1YzdiNjIxMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGlsX3dvcmtlci5qcworKysgL2Rldi9udWxsCkBAIC0x
LDE5ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0vLwotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC
U0Qtc3R5bGUKLS8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmls
ZSBvciBhdAotLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGlj
ZW5zZXMvYnNkCi0KLS8vIFV0aWxpdGllcyBmb3IgZXhhbXBsZSBhcHBsaWNhdGlvbnMgKGZvciB0
aGUgd29ya2VyIHRocmVhZHMgb25seSkuCi0KLWZ1bmN0aW9uIHdvcmtlckFkZFRvTG9nKHRleHQp
IHsKLSAgcG9zdE1lc3NhZ2Uoe3R5cGU6ICdhZGRUb0xvZycsIGRhdGE6IHRleHR9KTsKLX0KLQot
ZnVuY3Rpb24gd29ya2VyQWRkVG9TdW1tYXJ5KHRleHQpIHsKLSAgcG9zdE1lc3NhZ2Uoe3R5cGU6
ICdhZGRUb1N1bW1hcnknLCBkYXRhOiB0ZXh0fSk7Ci19Ci0KLWZ1bmN0aW9uIHdvcmtlck1lYXN1
cmVWYWx1ZSh2YWx1ZSkgewotICBwb3N0TWVzc2FnZSh7dHlwZTogJ21lYXN1cmVWYWx1ZScsIGRh
dGE6IHZhbHVlfSk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZGYxZjc5OWJjNDFjNGFjMTBjNTg2YzcxYmNhM2NiYjMwOWMxYjlhNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFt
cGxlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhh
bXBsZS9hYm9ydF93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2FycmF5YnVmZmVyX2JlbmNobWFy
ay5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaF93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxl
L2JlbmNobWFyay5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmsuanMKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jbG9z
ZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2NvbnNvbGUuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUvY29va2llX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZWNob19jbGllbnQucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX3dz
aC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dpCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9ldmVudHNvdXJjZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9leGFtcGxlL2hzdHNfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9pbnRlcm5hbF9l
cnJvcl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL29yaWdpbl9jaGVja193c2gucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9leGFtcGxlL3B5d2Vic29ja2V0LmNvbmYKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3NwZWNpYWxf
aGVhZGVycy5jZ2kKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0aWwuanMKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxl
L3V0aWxfbWFpbi5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRpbF93b3JrZXIuanMKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUveGhyX2JlbmNo
bWFyay5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUveGhyX2V2ZW50X2xvZ2dlci5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUveGhyX2JlbmNobWFyay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODYy
Mjk3NzVmNWFjMDgyYTFmZGQzMjdhNDU5NWRmOTFkMWZiZDUxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUveGhyX2JlbmNobWFy
ay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIyICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAy
MDEzLCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci1pbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi1kaXN0cmlidXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlhNTEh0dHBSZXF1ZXN0IGJl
bmNobWFyazwvdGl0bGU+Ci08c2NyaXB0IHNyYz0idXRpbF9tYWluLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJ4aHJfYmVuY2htYXJr
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgYWRkcmVzc0JveCA9IG51bGw7Ci0KLWZ1bmN0
aW9uIGdldENvbmZpZygpIHsKLSAgcmV0dXJuIHsKLSAgICBwcmVmaXhVcmw6IGFkZHJlc3NCb3gu
dmFsdWUsCi0gICAgcHJpbnRTaXplOiBnZXRCb29sRnJvbUNoZWNrQm94KCdwcmludHNpemUnKSwK
LSAgICBudW1YSFJzOiBnZXRJbnRGcm9tSW5wdXQoJ251bVhIUnMnKSwKLSAgICBhc3luYzogZ2V0
Qm9vbEZyb21DaGVja0JveCgnYXN5bmMnKSwKLSAgICAvLyBJbml0aWFsIHNpemUgb2YgbWVzc2Fn
ZXMuCi0gICAgbnVtSXRlcmF0aW9uczogZ2V0SW50RnJvbUlucHV0KCdudW1pdGVyYXRpb25zJyks
Ci0gICAgbnVtV2FybVVwSXRlcmF0aW9uczogZ2V0SW50RnJvbUlucHV0KCdudW13YXJtdXBpdGVy
YXRpb25zJyksCi0gICAgc3RhcnRTaXplOiBnZXRJbnRGcm9tSW5wdXQoJ3N0YXJ0c2l6ZScpLAot
ICAgIC8vIFN0b3BzIGJlbmNobWFyayB3aGVuIHRoZSBzaXplIG9mIG1lc3NhZ2UgZXhjZWVkcyB0
aGlzIHRocmVzaG9sZC4KLSAgICBzdG9wVGhyZXNob2xkOiBnZXRJbnRGcm9tSW5wdXQoJ3N0b3B0
aHJlc2hvbGQnKSwKLSAgICAvLyBJZiB0aGUgc2l6ZSBvZiBlYWNoIG1lc3NhZ2UgaXMgc21hbGws
IHNlbmQvcmVjZWl2ZSBtdWx0aXBsZSBtZXNzYWdlcwotICAgIC8vIHVudGlsIHRoZSBzdW0gb2Yg
c2l6ZXMgcmVhY2hlcyB0aGlzIHRocmVzaG9sZC4KLSAgICAvLyBtaW5Ub3RhbDogZ2V0SW50RnJv
bUlucHV0KCdtaW50b3RhbCcpLAotICAgIC8vIG1pblRvdGFsIGlzIG5vdCB5ZXQgaW1wbGVtZW50
ZWQgb24gWEhSIGJlbmNobWFyawotICAgIG11bHRpcGxpZXJzOiBnZXRJbnRBcnJheUZyb21JbnB1
dCgnbXVsdGlwbGllcnMnKSwKLSAgICB2ZXJpZnlEYXRhOiBnZXRCb29sRnJvbUNoZWNrQm94KCd2
ZXJpZnlkYXRhJykKLSAgfTsKLX0KLQotdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3hocl9iZW5j
aG1hcmsuanMnKTsKLXdvcmtlci5vbm1lc3NhZ2UgPSBvbk1lc3NhZ2U7Ci0KLWZ1bmN0aW9uIG9u
U2VuZEJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBjb25maWcu
ZGF0YVR5cGUgPSBnZXRTdHJpbmdGcm9tUmFkaW9Cb3goJ2RhdGF0eXBlcmFkaW8nKTsKLQotICBp
ZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJykpIHsKLSAgICB3b3JrZXIucG9zdE1lc3Nh
Z2Uoe3R5cGU6ICdzZW5kQmVuY2htYXJrJywgY29uZmlnOiBjb25maWd9KTsKLSAgfSBlbHNlIHsK
LSAgICBjb25maWcuYWRkVG9Mb2cgPSBhZGRUb0xvZzsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5
ID0gYWRkVG9TdW1tYXJ5OwotICAgIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSBtZWFzdXJlVmFsdWU7
Ci0gICAgc2VuZEJlbmNobWFyayhjb25maWcpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIG9uUmVjZWl2
ZUJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBjb25maWcuZGF0
YVR5cGUgPSBnZXRTdHJpbmdGcm9tUmFkaW9Cb3goJ2RhdGF0eXBlcmFkaW8nKTsKLQotICBpZiAo
Z2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJykpIHsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uo
e3R5cGU6ICdyZWNlaXZlQmVuY2htYXJrJywgY29uZmlnOiBjb25maWd9KTsKLSAgfSBlbHNlIHsK
LSAgICBjb25maWcuYWRkVG9Mb2cgPSBhZGRUb0xvZzsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5
ID0gYWRkVG9TdW1tYXJ5OwotICAgIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSBtZWFzdXJlVmFsdWU7
Ci0gICAgcmVjZWl2ZUJlbmNobWFyayhjb25maWcpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIG9uQmF0
Y2hCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLQotICBpZiAoZ2V0
Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJykpIHsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3R5
cGU6ICdiYXRjaEJlbmNobWFyaycsIGNvbmZpZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAg
Y29uZmlnLmFkZFRvTG9nID0gYWRkVG9Mb2c7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGFk
ZFRvU3VtbWFyeTsKLSAgICBjb25maWcubWVhc3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwotICAg
IGJhdGNoQmVuY2htYXJrKGNvbmZpZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gb25TdG9wKCkgewot
ICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3go
J3dvcmtlcicpKSB7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnc3RvcCcsIGNvbmZp
ZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0gYWRkVG9Mb2c7
Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBjb25maWcubWVh
c3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwotICAgIHN0b3AoY29uZmlnKTsKLSAgfQotfQotCi1m
dW5jdGlvbiBpbml0KCkgewotICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2FkZHJlc3MnKTsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwot
Ci0gIHN1bW1hcnlCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VtbWFyeScpOwotCi0g
IC8vIFNwZWNpYWwgYWRkcmVzcyBvZiBweXdlYnNvY2tldCBmb3IgWEhSIGJlbmNobWFyay4KLSAg
YWRkcmVzc0JveC52YWx1ZSA9ICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnOwot
Ci0gIGFkZFRvTG9nKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwot
ICBhZGRUb1N1bW1hcnkod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLQotPGZvcm0g
aWQ9ImJlbmNobWFya19mb3JtIj4KLSAgdXJsIHByZWZpeCA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9
ImFkZHJlc3MiIHNpemU9IjQwIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InNlbmQi
IG9uY2xpY2s9Im9uU2VuZEJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFs
dWU9InJlY2VpdmUiIG9uY2xpY2s9Im9uUmVjZWl2ZUJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5
cGU9ImJ1dHRvbiIgdmFsdWU9ImJhdGNoIiBvbmNsaWNrPSJvbkJhdGNoQmVuY2htYXJrKCkiPgot
ICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic3RvcCIgb25jbGljaz0ib25TdG9wKCkiPgot
Ci0gIDxici8+Ci0KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0icHJpbnRzaXplIiBjaGVj
a2VkPgotICA8bGFiZWwgZm9yPSJwcmludHNpemUiPlByaW50IHNpemUgYW5kIHRpbWUgcGVyIG1l
c3NhZ2U8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ2ZXJpZnlkYXRhIiBj
aGVja2VkPgotICA8bGFiZWwgZm9yPSJ2ZXJpZnlkYXRhIj5WZXJpZnkgZGF0YTwvbGFiZWw+Ci0g
IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IndvcmtlciI+Ci0gIDxsYWJlbCBmb3I9Indvcmtl
ciI+UnVuIG9uIHdvcmtlcjwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImFz
eW5jIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJhc3luYyI+QXN5bmM8L2xhYmVsPjxicj4KLSAg
KFJlY2VpdmUgJmFtcDsmYW1wOyBOb24tV29ya2VyICZhbXA7JmFtcDsgU3luYyBpcyBub3Qgc3Vw
cG9ydGVkIGJ5IHNwZWMpCi0KLSAgPGJyLz4KLQotICBQYXJhbWV0ZXJzOgotCi0gIDxici8+Ci0K
LSAgPHRhYmxlPgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW0gWEhSczwvdGQ+Ci0gICAgICA8dGQ+
PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1YSFJzIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3Ry
PgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW1iZXIgb2YgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8
dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1pdGVyYXRpb25zIiB2YWx1ZT0iMSI+PC90ZD4K
LSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW1iZXIgb2Ygd2FybS11cCBpdGVyYXRp
b25zPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bXdhcm11cGl0ZXJh
dGlvbnMiIHZhbHVlPSIwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPlN0
YXJ0IHNpemU8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RhcnRzaXpl
IiB2YWx1ZT0iMTAyNDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3Rv
cCB0aHJlc2hvbGQ8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RvcHRo
cmVzaG9sZCIgdmFsdWU9IjEwMjQwMDAwMCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAg
ICAgIDx0ZD5NaW5pbXVtIHRvdGFsPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIg
aWQ9Im1pbnRvdGFsIiB2YWx1ZT0iMTAyNDAwMDAwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRy
PgotICAgICAgPHRkPk11bHRpcGxpZXJzPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4
dCIgaWQ9Im11bHRpcGxpZXJzIiB2YWx1ZT0iNSwgMiI+PC90ZD4KLSAgICA8L3RyPgotICA8L3Rh
YmxlPgotCi0gIFNldCBkYXRhIHR5cGUKLSAgPGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAg
bmFtZT0iZGF0YXR5cGVyYWRpbyIKLSAgICAgICAgIGlkPSJkYXRhdHlwZXJhZGlvdGV4dCIKLSAg
ICAgICAgIHZhbHVlPSJ0ZXh0IgotICAgICAgICAgY2hlY2tlZD48bGFiZWwgZm9yPSJkYXRhdHlw
ZXJhZGlvdGV4dCI+dGV4dDwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAg
IG5hbWU9ImRhdGF0eXBlcmFkaW8iCi0gICAgICAgICBpZD0iZGF0YXR5cGVyYWRpb2Jsb2IiCi0g
ICAgICAgICB2YWx1ZT0iYmxvYiIKLSAgICAgICAgID48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlv
YmxvYiI+YmxvYjwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9
ImRhdGF0eXBlcmFkaW8iCi0gICAgICAgICBpZD0iZGF0YXR5cGVyYWRpb2FycmF5YnVmZmVyIgot
ICAgICAgICAgdmFsdWU9ImFycmF5YnVmZmVyIgotICAgICAgICAgPjxsYWJlbCBmb3I9ImRhdGF0
eXBlcmFkaW9hcnJheWJ1ZmZlciI+YXJyYXlidWZmZXI8L2xhYmVsPgotPC9mb3JtPgotCi08ZGl2
IGlkPSJsb2dfZGl2Ij4KLSAgPHRleHRhcmVhCi0gICAgICBpZD0ibG9nIiByb3dzPSIyMCIgc3R5
bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9kaXY+Ci08ZGl2IGlkPSJz
dW1tYXJ5X2RpdiI+Ci0gIFN1bW1hcnkKLSAgPHRleHRhcmVhCi0gICAgICBpZD0ic3VtbWFyeSIg
cm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvZGl2
PgotCi1Ob3RlOiBFZmZlY3Qgb2YgUlRUIGFuZCB0aW1lIHNwZW50IGZvciBBcnJheUJ1ZmZlciBj
cmVhdGlvbiBpbiByZWNlaXZlIGJlbmNobWFya3MgYXJlIG5vdCBlbGltaW5hdGVkLgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9iZW5jaG1hcmsu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDIzM2M3Y2IzOGM0OWUxNTlkYjVhNDE2ZDlhZmRhMDliMmVmMzg2Y2IuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhh
bXBsZS94aHJfYmVuY2htYXJrLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzg5ICswLDAgQEAKLS8v
IENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8g
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxp
Y2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0
cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLXZh
ciBpc1dvcmtlciA9IHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAidW5kZWZpbmVkIjsKLQotaWYg
KGlzV29ya2VyKSB7Ci0gIC8vIFJ1bm5pbmcgb24gYSB3b3JrZXIKLSAgaW1wb3J0U2NyaXB0cygn
dXRpbC5qcycsICd1dGlsX3dvcmtlci5qcycpOwotfQotCi0vLyBOYW1lc3BhY2UgZm9yIGhvbGRp
bmcgZ2xvYmFscy4KLXZhciBiZW5jaG1hcmsgPSB7fTsKLWJlbmNobWFyay5zdGFydFRpbWVJbk1z
ID0gMDsKLQotdmFyIHhocnMgPSBbXTsKLQotdmFyIHRpbWVySUQgPSBudWxsOwotCi1mdW5jdGlv
biBkZXN0cm95QWxsWEhScygpIHsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCB4aHJzLmxlbmd0aDsg
KytpKSB7Ci0gICAgeGhyc1tpXS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsOwotICAgIC8vIEFi
b3J0IFhIUnMgaWYgdGhleSBhcmUgbm90IHlldCBET05FIHN0YXRlLgotICAgIC8vIENhbGxpbmcg
YWJvcnQoKSBoZXJlIChpLmUuIGluIG9ucmVhZHlzdGF0ZWNoYW5nZSBoYW5kbGVyKSAKLSAgICAv
LyBjYXVzZXMgIk5ldHdvcmtFcnJvciIgbWVzc2FnZXMgaW4gRGV2VG9vbHMgaW4gc3luYyBtb2Rl
LAotICAgIC8vIGV2ZW4gaWYgaXQgaXMgYWZ0ZXIgdHJhbnNpdGlvbiB0byBET05FIHN0YXRlLgot
ICAgIGlmICh4aHJzW2ldLnJlYWR5U3RhdGUgIT0gWE1MSHR0cFJlcXVlc3QuRE9ORSkKLSAgICAg
IHhocnNbaV0uYWJvcnQoKTsKLSAgfQotICB4aHJzID0gW107Ci0gIC8vIGdjKCkgbWlnaHQgYmUg
bmVlZGVkIGZvciBDaHJvbWUvQmxvYgotfQotCi1mdW5jdGlvbiByZXBlYXRTdHJpbmcoc3RyLCBj
b3VudCkgewotICB2YXIgZGF0YSA9ICcnOwotICB2YXIgZXhwQ2h1bmsgPSBzdHI7Ci0gIHZhciBy
ZW1haW4gPSBjb3VudDsKLSAgd2hpbGUgKHRydWUpIHsKLSAgICBpZiAocmVtYWluICUgMikgewot
ICAgICAgZGF0YSArPSBleHBDaHVuazsKLSAgICAgIHJlbWFpbiA9IChyZW1haW4gLSAxKSAvIDI7
Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJlbWFpbiAvPSAyOwotICAgIH0KLQotICAgIGlmIChyZW1h
aW4gPT0gMCkKLSAgICAgIGJyZWFrOwotCi0gICAgZXhwQ2h1bmsgPSBleHBDaHVuayArIGV4cENo
dW5rOwotICB9Ci0gIHJldHVybiBkYXRhOwotfQotCi1mdW5jdGlvbiBzZW5kQmVuY2htYXJrU3Rl
cChzaXplLCBjb25maWcpIHsKLSAgdGltZXJJRCA9IG51bGw7Ci0KLSAgYmVuY2htYXJrLnN0YXJ0
VGltZUluTXMgPSBudWxsOwotICB2YXIgdG90YWxTaXplID0gMDsKLSAgdmFyIHRvdGFsUmVwbGll
ZCA9IDA7Ci0KLSAgdmFyIG9uUmVhZHlTdGF0ZUNoYW5nZUhhbmRsZXIgPSBmdW5jdGlvbiAoKSB7
Ci0gICAgaWYgKHRoaXMucmVhZHlTdGF0ZSAhPSB0aGlzLkRPTkUpIHsKLSAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAodGhpcy5zdGF0dXMgIT0gMjAwKSB7Ci0gICAgICBjb25maWcuYWRk
VG9Mb2coJ0ZhaWxlZCAoc3RhdHVzPScgKyB0aGlzLnN0YXR1cyArICcpJyk7Ci0gICAgICBkZXN0
cm95QWxsWEhScygpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChjb25maWcudmVy
aWZ5RGF0YSAmJgotICAgICAgICAhdmVyaWZ5QWNrbm93bGVkZ2VtZW50KGNvbmZpZywgdGhpcy5y
ZXNwb25zZSwgc2l6ZSkpIHsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgdG90YWxSZXBsaWVkICs9IHNpemU7Ci0KLSAgICBpZiAodG90YWxSZXBs
aWVkIDwgdG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGJlbmNo
bWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnc3Rh
cnRUaW1lSW5NcyBub3Qgc2V0Jyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwotICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJl
bmNobWFyay5zdGFydFRpbWVJbk1zLCB0b3RhbFNpemUpOwotCi0gICAgZGVzdHJveUFsbFhIUnMo
KTsKLQotICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH07Ci0KLSAgZm9yICh2YXIgaSA9IDA7
IGkgPCBjb25maWcubnVtWEhSczsgKytpKSB7Ci0gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVx
dWVzdCgpOwotICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBvblJlYWR5U3RhdGVDaGFuZ2VI
YW5kbGVyOwotICAgIHhocnMucHVzaCh4aHIpOwotICB9Ci0KLSAgdmFyIGRhdGFBcnJheSA9IFtd
OwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgeGhycy5sZW5ndGg7ICsraSkgewotICAgIHZhciBk
YXRhID0gbnVsbDsKLSAgICBpZiAoY29uZmlnLmRhdGFUeXBlID09ICdhcnJheWJ1ZmZlcicgfHwK
LSAgICAgICAgY29uZmlnLmRhdGFUeXBlID09ICdibG9iJykgewotICAgICAgZGF0YSA9IG5ldyBB
cnJheUJ1ZmZlcihzaXplKTsKLQotICAgICAgZmlsbEFycmF5QnVmZmVyKGRhdGEsIDB4NjEpOwot
Ci0gICAgICBpZiAoY29uZmlnLmRhdGFUeXBlID09ICdibG9iJykgewotICAgICAgICBkYXRhID0g
bmV3IEJsb2IoW2RhdGFdKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgZGF0YSA9IHJl
cGVhdFN0cmluZygnYScsIHNpemUpOwotICAgIH0KLQotICAgIGRhdGFBcnJheS5wdXNoKGRhdGEp
OwotICB9Ci0KLQotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwot
ICB0b3RhbFNpemUgPSBzaXplICogeGhycy5sZW5ndGg7Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkg
PCB4aHJzLmxlbmd0aDsgKytpKSB7Ci0gICAgdmFyIGRhdGEgPSBkYXRhQXJyYXlbaV07Ci0gICAg
dmFyIHhociA9IHhocnNbaV07Ci0gICAgeGhyLm9wZW4oJ1BPU1QnLCBjb25maWcucHJlZml4VXJs
ICsgJ19zZW5kJywgY29uZmlnLmFzeW5jKTsKLSAgICB4aHIuc2VuZChkYXRhKTsKLSAgfQotfQot
Ci1mdW5jdGlvbiByZWNlaXZlQmVuY2htYXJrU3RlcChzaXplLCBjb25maWcpIHsKLSAgdGltZXJJ
RCA9IG51bGw7Ci0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBudWxsOwotICB2YXIgdG90
YWxTaXplID0gMDsKLSAgdmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0KLSAgdmFyIGNoZWNrUmVzdWx0
QW5kQ29udGludWUgPSBmdW5jdGlvbiAoYnl0ZXNSZWNlaXZlZCwgdmVyaWZpY2F0aW9uUmVzdWx0
KSB7Ci0gICAgaWYgKCF2ZXJpZmljYXRpb25SZXN1bHQpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xv
ZygnUmVzcG9uc2UgdmVyaWZpY2F0aW9uIGZhaWxlZCcpOwotICAgICAgZGVzdHJveUFsbFhIUnMo
KTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB0b3RhbFJlcGxpZWQgKz0gYnl0ZXNSZWNl
aXZlZDsKLQotICAgIGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNpemUpIHsKLSAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBpZiAoYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPT0gbnVsbCkgewot
ICAgICAgY29uZmlnLmFkZFRvTG9nKCdzdGFydFRpbWVJbk1zIG5vdCBzZXQnKTsKLSAgICAgIGRl
c3Ryb3lBbGxYSFJzKCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY2FsY3VsYXRlQW5k
TG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMsIHRvdGFsU2l6
ZSk7Ci0KLSAgICBkZXN0cm95QWxsWEhScygpOwotCi0gICAgcnVuTmV4dFRhc2soY29uZmlnKTsK
LSAgfQotCi0gIHZhciBvblJlYWR5U3RhdGVDaGFuZ2VIYW5kbGVyID0gZnVuY3Rpb24gKCkgewot
ICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgIT0gdGhpcy5ET05FKSB7Ci0gICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgaWYgKHRoaXMuc3RhdHVzICE9IDIwMCkgewotICAgICAgY29uZmlnLmFkZFRv
TG9nKCdGYWlsZWQgKHN0YXR1cz0nICsgdGhpcy5zdGF0dXMgKyAnKScpOwotICAgICAgZGVzdHJv
eUFsbFhIUnMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB2YXIgYnl0ZXNSZWNlaXZl
ZCA9IC0xOwotICAgIGlmICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYXJyYXlidWZmZXInKSB7Ci0g
ICAgICBieXRlc1JlY2VpdmVkID0gdGhpcy5yZXNwb25zZS5ieXRlTGVuZ3RoOwotICAgIH0gZWxz
ZSBpZiAodGhpcy5yZXNwb25zZVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAgICBieXRlc1JlY2VpdmVk
ID0gdGhpcy5yZXNwb25zZS5zaXplOwotICAgIH0gZWxzZSB7Ci0gICAgICBieXRlc1JlY2VpdmVk
ID0gdGhpcy5yZXNwb25zZS5sZW5ndGg7Ci0gICAgfQotICAgIGlmIChieXRlc1JlY2VpdmVkICE9
IHNpemUpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnRXhwZWN0ZWQgJyArIHNpemUgKwotICAg
ICAgICAgICdCIGJ1dCByZWNlaXZlZCAnICsgYnl0ZXNSZWNlaXZlZCArICdCJyk7Ci0gICAgICBk
ZXN0cm95QWxsWEhScygpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh0aGlzLnJl
c3BvbnNlVHlwZSA9PSAnYXJyYXlidWZmZXInKSB7Ci0gICAgICBjaGVja1Jlc3VsdEFuZENvbnRp
bnVlKGJ5dGVzUmVjZWl2ZWQsCi0gICAgICAgICAgIWNvbmZpZy52ZXJpZnlEYXRhIHx8IHZlcmlm
eUFycmF5QnVmZmVyKHRoaXMucmVzcG9uc2UsIDB4NjEpKTsKLSAgICB9IGVsc2UgaWYgKHRoaXMu
cmVzcG9uc2VUeXBlID09ICdibG9iJykgewotICAgICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhKQot
ICAgICAgICB2ZXJpZnlCbG9iKGNvbmZpZywgdGhpcy5yZXNwb25zZSwgMHg2MSwgY2hlY2tSZXN1
bHRBbmRDb250aW51ZSk7Ci0gICAgICBlbHNlCi0gICAgICAgIGNoZWNrUmVzdWx0QW5kQ29udGlu
dWUoYnl0ZXNSZWNlaXZlZCwgdHJ1ZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGNoZWNrUmVzdWx0
QW5kQ29udGludWUoCi0gICAgICAgICAgYnl0ZXNSZWNlaXZlZCwKLSAgICAgICAgICAhY29uZmln
LnZlcmlmeURhdGEgfHwKLSAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZSA9PSByZXBlYXRTdHJp
bmcoJ2EnLCB0aGlzLnJlc3BvbnNlLmxlbmd0aCkpOwotICAgIH0KLSAgfTsKLQotICBmb3IgKHZh
ciBpID0gMDsgaSA8IGNvbmZpZy5udW1YSFJzOyArK2kpIHsKLSAgICB2YXIgeGhyID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG9uUmVhZHlTdGF0
ZUNoYW5nZUhhbmRsZXI7Ci0gICAgeGhycy5wdXNoKHhocik7Ci0gIH0KLQotICBiZW5jaG1hcmsu
c3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotICB0b3RhbFNpemUgPSBzaXplICogeGhy
cy5sZW5ndGg7Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCB4aHJzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgdmFyIHhociA9IHhocnNbaV07Ci0gICAgeGhyLm9wZW4oJ1BPU1QnLCBjb25maWcucHJlZml4
VXJsICsgJ19yZWNlaXZlJywgY29uZmlnLmFzeW5jKTsKLSAgICB4aHIucmVzcG9uc2VUeXBlID0g
Y29uZmlnLmRhdGFUeXBlOwotICAgIHhoci5zZW5kKHNpemUgKyAnIG5vbmUnKTsKLSAgfQotfQot
Ci0KLWZ1bmN0aW9uIGdldENvbmZpZ1N0cmluZyhjb25maWcpIHsKLSAgcmV0dXJuICcoJyArIGNv
bmZpZy5kYXRhVHlwZSArCi0gICAgJywgdmVyaWZ5RGF0YT0nICsgY29uZmlnLnZlcmlmeURhdGEg
KwotICAgICcsICcgKyAoaXNXb3JrZXIgPyAnV29ya2VyJyA6ICdNYWluJykgKwotICAgICcsICcg
KyAoY29uZmlnLmFzeW5jID8gJ0FzeW5jJyA6ICdTeW5jJykgKwotICAgICcsIG51bVhIUnM9JyAr
IGNvbmZpZy5udW1YSFJzICsKLSAgICAnLCBudW1JdGVyYXRpb25zPScgKyBjb25maWcubnVtSXRl
cmF0aW9ucyArCi0gICAgJywgbnVtV2FybVVwSXRlcmF0aW9ucz0nICsgY29uZmlnLm51bVdhcm1V
cEl0ZXJhdGlvbnMgKwotICAgICcpJzsKLX0KLQotZnVuY3Rpb24gc3RhcnRCZW5jaG1hcmsoY29u
ZmlnKSB7Ci0gIGNsZWFyVGltZW91dCh0aW1lcklEKTsKLSAgZGVzdHJveUFsbFhIUnMoKTsKLQot
ICBydW5OZXh0VGFzayhjb25maWcpOwotfQotCi0vLyBUT0RPKGhpcm9zaGlnZSk6IHRoZSBmb2xs
b3dpbmcgY29kZSBpcyB0aGUgc2FtZSBhcyBiZW5jaG1hcmsuaHRtbAotLy8gYW5kIHNvbWUgb2Yg
dGhlbSBzaG91bGQgYmUgbWVyZ2VkIGludG8gZS5nLiB1dGlsLmpzCi0KLXZhciB0YXNrcyA9IFtd
OwotCi1mdW5jdGlvbiBydW5OZXh0VGFzayhjb25maWcpIHsKLSAgdmFyIHRhc2sgPSB0YXNrcy5z
aGlmdCgpOwotICBpZiAodGFzayA9PSB1bmRlZmluZWQpIHsKLSAgICBjb25maWcuYWRkVG9Mb2co
J0ZpbmlzaGVkJyk7Ci0gICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICByZXR1cm47Ci0gIH0KLSAg
dGltZXJJRCA9IHNldFRpbWVvdXQodGFzaywgMCk7Ci19Ci0KLWZ1bmN0aW9uIGJ1aWxkTGVnZW5k
U3RyaW5nKGNvbmZpZykgewotICB2YXIgbGVnZW5kID0gJycKLSAgaWYgKGNvbmZpZy5wcmludFNp
emUpCi0gICAgbGVnZW5kID0gJ01lc3NhZ2Ugc2l6ZSBpbiBLaUIsIFRpbWUvbWVzc2FnZSBpbiBt
cywgJzsKLSAgbGVnZW5kICs9ICdTcGVlZCBpbiBrQi9zJzsKLSAgcmV0dXJuIGxlZ2VuZDsKLX0K
LQotZnVuY3Rpb24gYWRkVGFza3MoY29uZmlnLCBzdGVwRnVuYykgewotICBmb3IgKHZhciBpID0g
MDsKLSAgICAgIGkgPCBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucyArIGNvbmZpZy5udW1JdGVy
YXRpb25zOyArK2kpIHsKLSAgICAvLyBJZ25vcmUgdGhlIGZpcnN0IHxjb25maWcubnVtV2FybVVw
SXRlcmF0aW9uc3wgaXRlcmF0aW9ucy4KLSAgICBpZiAoaSA9PSBjb25maWcubnVtV2FybVVwSXRl
cmF0aW9ucykKLSAgICAgIGFkZFJlc3VsdENsZWFyaW5nVGFzayhjb25maWcpOwotCi0gICAgdmFy
IG11bHRpcGxpZXJJbmRleCA9IDA7Ci0gICAgZm9yICh2YXIgc2l6ZSA9IGNvbmZpZy5zdGFydFNp
emU7Ci0gICAgICAgICBzaXplIDw9IGNvbmZpZy5zdG9wVGhyZXNob2xkOwotICAgICAgICAgKytt
dWx0aXBsaWVySW5kZXgpIHsKLSAgICAgIHZhciB0YXNrID0gc3RlcEZ1bmMuYmluZCgKLSAgICAg
ICAgICBudWxsLAotICAgICAgICAgIHNpemUsCi0gICAgICAgICAgY29uZmlnKTsKLSAgICAgIHRh
c2tzLnB1c2godGFzayk7Ci0gICAgICBzaXplICo9IGNvbmZpZy5tdWx0aXBsaWVyc1sKLSAgICAg
ICAgICBtdWx0aXBsaWVySW5kZXggJSBjb25maWcubXVsdGlwbGllcnMubGVuZ3RoXTsKLSAgICB9
Ci0gIH0KLX0KLQotZnVuY3Rpb24gYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsIHRpdGxl
KSB7Ci0gIHRhc2tzLnB1c2goZnVuY3Rpb24oKXsKLSAgICAgIHRpbWVySUQgPSBudWxsOwotICAg
ICAgY29uZmlnLmFkZFRvU3VtbWFyeSh0aXRsZSk7Ci0gICAgICByZXBvcnRBdmVyYWdlRGF0YShj
b25maWcpOwotICAgICAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICAgICAgcnVuTmV4dFRhc2soY29u
ZmlnKTsKLSAgfSk7Ci19Ci0KLWZ1bmN0aW9uIGFkZFJlc3VsdENsZWFyaW5nVGFzayhjb25maWcp
IHsKLSAgdGFza3MucHVzaChmdW5jdGlvbigpewotICAgICAgdGltZXJJRCA9IG51bGw7Ci0gICAg
ICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gICAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9KTsK
LX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotZnVuY3Rpb24gc2Vu
ZEJlbmNobWFyayhjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvTG9nKCdTZW5kIGJlbmNobWFyaycp
OwotICBjb25maWcuYWRkVG9Mb2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7Ci0KLSAgdGFz
a3MgPSBbXTsKLSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICBhZGRUYXNrcyhjb25maWcsIHNlbmRC
ZW5jaG1hcmtTdGVwKTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsICdTZW5kIEJl
bmNobWFyayAnICsgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICBzdGFydEJlbmNobWFyayhj
b25maWcpOwotfQotCi1mdW5jdGlvbiByZWNlaXZlQmVuY2htYXJrKGNvbmZpZykgewotICBjb25m
aWcuYWRkVG9Mb2coJ1JlY2VpdmUgYmVuY2htYXJrJyk7Ci0gIGNvbmZpZy5hZGRUb0xvZyhidWls
ZExlZ2VuZFN0cmluZyhjb25maWcpKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJhZ2VE
YXRhKCk7Ci0gIGFkZFRhc2tzKGNvbmZpZywgcmVjZWl2ZUJlbmNobWFya1N0ZXApOwotICBhZGRS
ZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywKLSAgICAgICdSZWNlaXZlIEJlbmNobWFyayAnICsg
Z2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICBzdGFydEJlbmNobWFyayhjb25maWcpOwotfQot
Ci1mdW5jdGlvbiBiYXRjaEJlbmNobWFyayhvcmlnaW5hbENvbmZpZykgewotICBvcmlnaW5hbENv
bmZpZy5hZGRUb0xvZygnQmF0Y2ggYmVuY2htYXJrJyk7Ci0KLSAgdGFza3MgPSBbXTsKLSAgY2xl
YXJBdmVyYWdlRGF0YSgpOwotCi0gIHZhciBkYXRhVHlwZXMgPSBbJ3RleHQnLCAnYmxvYicsICdh
cnJheWJ1ZmZlciddOwotICB2YXIgc3RlcEZ1bmNzID0gW3NlbmRCZW5jaG1hcmtTdGVwLCByZWNl
aXZlQmVuY2htYXJrU3RlcF07Ci0gIHZhciBuYW1lcyA9IFsnU2VuZCcsICdSZWNlaXZlJ107Ci0g
IHZhciBhc3luYyA9IFt0cnVlLCBmYWxzZV07Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RlcEZ1
bmNzLmxlbmd0aDsgKytpKSB7Ci0gICAgZm9yICh2YXIgaiA9IDA7IGogPCBkYXRhVHlwZXMubGVu
Z3RoOyArK2opIHsKLSAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgYXN5bmMubGVuZ3RoOyArK2sp
IHsKLSAgICAgICAgdmFyIGNvbmZpZyA9IGNsb25lQ29uZmlnKG9yaWdpbmFsQ29uZmlnKTsKLSAg
ICAgICAgY29uZmlnLmRhdGFUeXBlID0gZGF0YVR5cGVzW2pdOwotICAgICAgICBjb25maWcuYXN5
bmMgPSBhc3luY1trXTsKLQotICAgICAgICAvLyBSZWNlaXZlICYmIE5vbi1Xb3JrZXIgJiYgU3lu
YyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzcGVjCi0gICAgICAgIGlmIChzdGVwRnVuY3NbaV0g
PT09IHJlY2VpdmVCZW5jaG1hcmtTdGVwICYmICFpc1dvcmtlciAmJgotICAgICAgICAgICAgIWNv
bmZpZy5hc3luYykKLSAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBhZGRUYXNrcyhjb25m
aWcsIHN0ZXBGdW5jc1tpXSk7Ci0gICAgICAgIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmln
LAotICAgICAgICAgICAgbmFtZXNbaV0gKyAnIGJlbmNobWFyayAnICsgZ2V0Q29uZmlnU3RyaW5n
KGNvbmZpZykpOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIHN0YXJ0QmVuY2htYXJrKGNvbmZp
Zyk7Ci19Ci0KLQotZnVuY3Rpb24gc3RvcChjb25maWcpIHsKLSAgZGVzdHJveUFsbFhIUnMoKTsK
LSAgY2xlYXJUaW1lb3V0KHRpbWVySUQpOwotICB0aW1lcklEID0gbnVsbDsKLSAgY29uZmlnLmFk
ZFRvTG9nKCdTdG9wcGVkJyk7Ci19Ci0KLW9ubWVzc2FnZSA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7
Ci0gIHZhciBjb25maWcgPSBtZXNzYWdlLmRhdGEuY29uZmlnOwotICBjb25maWcuYWRkVG9Mb2cg
PSB3b3JrZXJBZGRUb0xvZzsKLSAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IHdvcmtlckFkZFRvU3Vt
bWFyeTsKLSAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IHdvcmtlck1lYXN1cmVWYWx1ZTsKLSAgaWYg
KG1lc3NhZ2UuZGF0YS50eXBlID09PSAnc2VuZEJlbmNobWFyaycpCi0gICAgc2VuZEJlbmNobWFy
ayhjb25maWcpOwotICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ3JlY2VpdmVCZW5j
aG1hcmsnKQotICAgIHJlY2VpdmVCZW5jaG1hcmsoY29uZmlnKTsKLSAgZWxzZSBpZiAobWVzc2Fn
ZS5kYXRhLnR5cGUgPT09ICdiYXRjaEJlbmNobWFyaycpCi0gICAgYmF0Y2hCZW5jaG1hcmsoY29u
ZmlnKTsKLSAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdzdG9wJykKLSAgICBzdG9w
KGNvbmZpZyk7Ci19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfZXZlbnRfbG9n
Z2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9ldmVudF9sb2dnZXIuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjk4MzU1M2I4YWM4MDM1OWVlODViYTk4MWU1MDA1OGVj
ZTQzN2M4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9leGFtcGxlL3hocl9ldmVudF9sb2dnZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDExMCArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotCi1Vc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJT
RC1zdHlsZQotbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9y
IGF0Ci1odHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9i
c2QKLS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlhIUiBldmVudCBsb2dnZXI8L3RpdGxl
PgotPHNjcmlwdCBzcmM9InV0aWxfbWFpbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGV2
ZW50cyA9IFtdOwotCi1mdW5jdGlvbiBydW4oKSB7Ci0gIGV2ZW50cyA9IFtdOwotCi0gIGZ1bmN0
aW9uIHB1c2hUb0xvZyh0eXBlKSB7Ci0gICAgaWYgKGV2ZW50cy5sZW5ndGggIT0gMCAmJiB0eXBl
ID09PSBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLnR5cGUpIHsKLSAgICAgIGV2ZW50c1tldmVu
dHMubGVuZ3RoIC0gMV0uY291bnQgKz0gMTsKLSAgICB9IGVsc2UgewotICAgICAgZXZlbnRzLnB1
c2goe3R5cGU6IHR5cGUsIGNvdW50OiAxfSk7Ci0gICAgfQotICB9Ci0KLSAgdmFyIHhociA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOwotCi0gIGZ1bmN0aW9uIGdldFByb2dyZXNzRXZlbnREdW1wKGUp
IHsKLSAgICByZXR1cm4gJygnICsgZS5sZW5ndGhDb21wdXRhYmxlICsgJywgJyArIGUubG9hZGVk
ICsgJywgJyArIGUudG90YWwgKyAnKSc7Ci0gIH0KLQotICB2YXIgZHVtcFByb2dyZXNzRXZlbnQg
PSBnZXRCb29sRnJvbUNoZWNrQm94KCdkdW1wcHJvZ3Jlc3NldmVudCcpOwotCi0gIGZ1bmN0aW9u
IGxvZyhlKSB7Ci0gICAgdmFyIHR5cGUgPSBlLnR5cGU7Ci0gICAgaWYgKHR5cGUgPT09ICdyZWFk
eXN0YXRlY2hhbmdlJykgewotICAgICAgdHlwZSArPSBlLnRhcmdldC5yZWFkeVN0YXRlOwotICAg
IH0KLSAgICBpZiAoZHVtcFByb2dyZXNzRXZlbnQgJiYgKGUgaW5zdGFuY2VvZiBQcm9ncmVzc0V2
ZW50KSkgewotICAgICAgdHlwZSArPSBnZXRQcm9ncmVzc0V2ZW50RHVtcChlKTsKLSAgICB9Ci0g
ICAgcHVzaFRvTG9nKHR5cGUpOwotICB9OwotCi0gIGZ1bmN0aW9uIGxvZ1VwbG9hZChlKSB7Ci0g
ICAgdmFyIHR5cGUgPSBlLnR5cGU7Ci0gICAgaWYgKGR1bXBQcm9ncmVzc0V2ZW50ICYmIChlIGlu
c3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkpIHsKLSAgICAgIHR5cGUgKz0gZ2V0UHJvZ3Jlc3NFdmVu
dER1bXAoZSk7Ci0gICAgfQotICAgIHB1c2hUb0xvZygndXBsb2FkJyArIHR5cGUpOwotICB9Ci0K
LSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3VwbG9hZCcpKSB7Ci0gICAgdmFyIHVwbG9hZCA9
IHhoci51cGxvYWQ7Ci0gICAgdXBsb2FkLm9ubG9hZHN0YXJ0ID0gbG9nVXBsb2FkOwotICAgIHVw
bG9hZC5vbnByb2dyZXNzID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbmFib3J0ID0gbG9nVXBs
b2FkOwotICAgIHVwbG9hZC5vbmVycm9yID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbmxvYWQg
PSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9udGltZW91dCA9IGxvZ1VwbG9hZDsKLSAgICB1cGxv
YWQub25sb2FkZW5kID0gbG9nVXBsb2FkOwotICB9Ci0KLSAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5n
ZSA9IGxvZzsKLSAgeGhyLm9ubG9hZHN0YXJ0ID0gbG9nOwotICB4aHIub25wcm9ncmVzcyA9IGxv
ZzsKLSAgeGhyLm9uYWJvcnQgPSBsb2c7Ci0gIHhoci5vbmVycm9yID0gbG9nOwotICB4aHIub25s
b2FkID0gbG9nOwotICB4aHIub250aW1lb3V0ID0gbG9nOwotICB4aHIub25sb2FkZW5kID0gbG9n
OwotCi0gIHhoci5vcGVuKCdQT1NUJywgJy8wNzNiZTAwMWUxMDk1MDY5MmNjYmYzYTJhZDIxYzI0
NV9yZWNlaXZlJywKLSAgICAgICAgICAgZ2V0Qm9vbEZyb21DaGVja0JveCgnYXN5bmMnKSk7Ci0g
IHZhciBzaXplID0gZ2V0SW50RnJvbUlucHV0KCdzaXplJyk7Ci0gIHZhciBjaHVua2VkTW9kZSA9
ICdub25lJzsKLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ2NodW5rZWRyZXNwb25zZScpKSB7
Ci0gICAgY2h1bmtlZE1vZGUgPSAnY2h1bmtlZCc7Ci0gIH0KLSAgeGhyLnNlbmQoc2l6ZSArICcg
JyArIGNodW5rZWRNb2RlKTsKLX0KLQotZnVuY3Rpb24gcHJpbnQoKSB7Ci0gIHZhciByZXN1bHQg
PSAnJzsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudHMubGVuZ3RoOyArK2kpIHsKLSAgICB2
YXIgZXZlbnQgPSBldmVudHNbaV07Ci0gICAgcmVzdWx0ICs9IGV2ZW50LnR5cGUgKyAnICogJyAr
IGV2ZW50LmNvdW50ICsgJ1xuJzsKLSAgfQotICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9n
JykudmFsdWUgPSByZXN1bHQ7Ci19Ci08L3NjcmlwdD4KLQotPGJvZHk+Ci0gIDx0ZXh0YXJlYSBp
ZD0ibG9nIiByb3dzPSIxMCIgY29scz0iNDAiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci0gIDxici8+
Ci0gIFNpemU6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic2l6ZSIgdmFsdWU9IjY1NTM2Ij48YnIv
PgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaHVua2VkcmVzcG9uc2UiPgotICA8bGFi
ZWwgZm9yPSJjaHVua2VkcmVzcG9uc2UiPlVzZSBDaHVua2VkIFQtRSBmb3IgcmVzcG9uc2U8L2xh
YmVsPjxici8+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InVwbG9hZCI+Ci0gIDxsYWJl
bCBmb3I9InVwbG9hZCI+VXBsb2FkIHByb2dyZXNzPC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlw
ZT0iY2hlY2tib3giIGlkPSJkdW1wcHJvZ3Jlc3NldmVudCI+Ci0gIDxsYWJlbCBmb3I9ImR1bXBw
cm9ncmVzc2V2ZW50Ij4KLSAgICBEdW1wIGxlbmd0aENvbXB1dGFibGUvbG9hZGVkL3RvdGFsPC9s
YWJlbD48YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJhc3luYyIgY2hlY2tlZD4K
LSAgPGxhYmVsIGZvcj0iYXN5bmMiPkFzeW5jPC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlwZT0i
YnV0dG9uIiBvbmNsaWNrPSJydW4oKSIgdmFsdWU9IlJ1biBYSFIiPgotICA8aW5wdXQgdHlwZT0i
YnV0dG9uIiBvbmNsaWNrPSJwcmludCgpIiB2YWx1ZT0iUHJpbnQgbG9nIj4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fX2luaXRfXy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzA5MzNhMjIwNDUxZmFkYjZhMDFhNWMxZDQ1YzI1NTE0NjhkN2Q4NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2Rf
cHl3ZWJzb2NrZXQvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMjQgKzAsMCBAQAot
IyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiV2ViU29ja2V0IGV4dGVuc2lvbiBmb3IgQXBhY2hlIEhU
VFAgU2VydmVyLgotCi1tb2RfcHl3ZWJzb2NrZXQgaXMgYSBXZWJTb2NrZXQgZXh0ZW5zaW9uIGZv
ciBBcGFjaGUgSFRUUCBTZXJ2ZXIKLWludGVuZGVkIGZvciB0ZXN0aW5nIG9yIGV4cGVyaW1lbnRh
bCBwdXJwb3Nlcy4gbW9kX3B5dGhvbiBpcyByZXF1aXJlZC4KLQotCi1JbnN0YWxsYXRpb24KLT09
PT09PT09PT09PQotCi0wLiBQcmVwYXJlIGFuIEFwYWNoZSBIVFRQIFNlcnZlciBmb3Igd2hpY2gg
bW9kX3B5dGhvbiBpcyBlbmFibGVkLgotCi0xLiBTcGVjaWZ5IHRoZSBmb2xsb3dpbmcgQXBhY2hl
IEhUVFAgU2VydmVyIGRpcmVjdGl2ZXMgdG8gc3VpdCB5b3VyCi0gICBjb25maWd1cmF0aW9uLgot
Ci0gICBJZiBtb2RfcHl3ZWJzb2NrZXQgaXMgbm90IGluIHRoZSBQeXRob24gcGF0aCwgc3BlY2lm
eSB0aGUgZm9sbG93aW5nLgotICAgPHdlYnNvY2tfbGliPiBpcyB0aGUgZGlyZWN0b3J5IHdoZXJl
IG1vZF9weXdlYnNvY2tldCBpcyBpbnN0YWxsZWQuCi0KLSAgICAgICBQeXRob25QYXRoICJzeXMu
cGF0aCtbJzx3ZWJzb2NrX2xpYj4nXSIKLQotICAgQWx3YXlzIHNwZWNpZnkgdGhlIGZvbGxvd2lu
Zy4gPHdlYnNvY2tfaGFuZGxlcnM+IGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUKLSAgIHVzZXItd3Jp
dHRlbiBXZWJTb2NrZXQgaGFuZGxlcnMgYXJlIHBsYWNlZC4KLQotICAgICAgIFB5dGhvbk9wdGlv
biBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9yb290IDx3ZWJzb2NrX2hhbmRsZXJzPgotICAgICAg
IFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIgbW9kX3B5d2Vic29ja2V0LmhlYWRlcnBhcnNlcmhh
bmRsZXIKLQotICAgVG8gbGltaXQgdGhlIHNlYXJjaCBmb3IgV2ViU29ja2V0IGhhbmRsZXJzIHRv
IGEgZGlyZWN0b3J5IDxzY2FuX2Rpcj4KLSAgIHVuZGVyIDx3ZWJzb2NrX2hhbmRsZXJzPiwgY29u
ZmlndXJlIGFzIGZvbGxvd3M6Ci0KLSAgICAgICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0
LmhhbmRsZXJfc2NhbiA8c2Nhbl9kaXI+Ci0KLSAgIDxzY2FuX2Rpcj4gaXMgdXNlZnVsIGluIHNh
dmluZyBzY2FuIHRpbWUgd2hlbiA8d2Vic29ja19oYW5kbGVycz4KLSAgIGNvbnRhaW5zIG1hbnkg
bm9uLVdlYlNvY2tldCBoYW5kbGVyIGZpbGVzLgotCi0gICBJZiB5b3Ugd2FudCB0byBhbGxvdyBo
YW5kbGVycyB3aG9zZSBjYW5vbmljYWwgcGF0aCBpcyBub3QgdW5kZXIgdGhlIHJvb3QKLSAgIGRp
cmVjdG9yeSAoaS5lLiBzeW1ib2xpYyBsaW5rIGlzIGluIHJvb3QgZGlyZWN0b3J5IGJ1dCBpdHMg
dGFyZ2V0IGlzIG5vdCksCi0gICBjb25maWd1cmUgYXMgZm9sbG93czoKLQotICAgICAgIFB5dGhv
bk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpciBP
bgotCi0gICBFeGFtcGxlIHNuaXBwZXQgb2YgaHR0cGQuY29uZjoKLSAgIChtb2RfcHl3ZWJzb2Nr
ZXQgaXMgaW4gL3dlYnNvY2tfbGliLCBXZWJTb2NrZXQgaGFuZGxlcnMgYXJlIGluCi0gICAvd2Vi
c29ja19oYW5kbGVycywgcG9ydCBpcyA4MCBmb3Igd3MsIDQ0MyBmb3Igd3NzLikKLQotICAgICAg
IDxJZk1vZHVsZSBweXRob25fbW9kdWxlPgotICAgICAgICAgUHl0aG9uUGF0aCAic3lzLnBhdGgr
Wycvd2Vic29ja19saWInXSIKLSAgICAgICAgIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQu
aGFuZGxlcl9yb290IC93ZWJzb2NrX2hhbmRsZXJzCi0gICAgICAgICBQeXRob25IZWFkZXJQYXJz
ZXJIYW5kbGVyIG1vZF9weXdlYnNvY2tldC5oZWFkZXJwYXJzZXJoYW5kbGVyCi0gICAgICAgPC9J
Zk1vZHVsZT4KLQotMi4gVHVuZSBBcGFjaGUgcGFyYW1ldGVycyBmb3Igc2VydmluZyBXZWJTb2Nr
ZXQuIFdlJ2QgbGlrZSB0byBub3RlIHRoYXQgYXQKLSAgIGxlYXN0IFRpbWVPdXQgZGlyZWN0aXZl
IGZyb20gY29yZSBmZWF0dXJlcyBhbmQgUmVxdWVzdFJlYWRUaW1lb3V0Ci0gICBkaXJlY3RpdmUg
ZnJvbSBtb2RfcmVxdGltZW91dCBzaG91bGQgYmUgbW9kaWZpZWQgbm90IHRvIGtpbGwgY29ubmVj
dGlvbnMKLSAgIGluIG9ubHkgYSBmZXcgc2Vjb25kcyBvZiBpZGxlIHRpbWUuCi0KLTMuIFZlcmlm
eSBpbnN0YWxsYXRpb24uIFlvdSBjYW4gdXNlIGV4YW1wbGUvY29uc29sZS5odG1sIHRvIHBva2Ug
dGhlIHNlcnZlci4KLQotCi1Xcml0aW5nIFdlYlNvY2tldCBoYW5kbGVycwotPT09PT09PT09PT09
PT09PT09PT09PT09PT0KLQotV2hlbiBhIFdlYlNvY2tldCByZXF1ZXN0IGNvbWVzIGluLCB0aGUg
cmVzb3VyY2UgbmFtZQotc3BlY2lmaWVkIGluIHRoZSBoYW5kc2hha2UgaXMgY29uc2lkZXJlZCBh
cyBpZiBpdCBpcyBhIGZpbGUgcGF0aCB1bmRlcgotPHdlYnNvY2tfaGFuZGxlcnM+IGFuZCB0aGUg
aGFuZGxlciBkZWZpbmVkIGluCi08d2Vic29ja19oYW5kbGVycz4vPHJlc291cmNlX25hbWU+X3dz
aC5weSBpcyBpbnZva2VkLgotCi1Gb3IgZXhhbXBsZSwgaWYgdGhlIHJlc291cmNlIG5hbWUgaXMg
L2V4YW1wbGUvY2hhdCwgdGhlIGhhbmRsZXIgZGVmaW5lZCBpbgotPHdlYnNvY2tfaGFuZGxlcnM+
L2V4YW1wbGUvY2hhdF93c2gucHkgaXMgaW52b2tlZC4KLQotQSBXZWJTb2NrZXQgaGFuZGxlciBp
cyBjb21wb3NlZCBvZiB0aGUgZm9sbG93aW5nIHRocmVlIGZ1bmN0aW9uczoKLQotICAgIHdlYl9z
b2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpCi0gICAgd2ViX3NvY2tldF90cmFuc2Zl
cl9kYXRhKHJlcXVlc3QpCi0gICAgd2ViX3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtl
KHJlcXVlc3QpCi0KLXdoZXJlOgotICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLQot
d2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgY2FsbGVkIGR1cmluZyB0aGUgaGFuZHNo
YWtlIGFmdGVyIHRoZQotaGVhZGVycyBhcmUgc3VjY2Vzc2Z1bGx5IHBhcnNlZCBhbmQgV2ViU29j
a2V0IHByb3BlcnRpZXMgKHdzX2xvY2F0aW9uLAotd3Nfb3JpZ2luLCBhbmQgd3NfcmVzb3VyY2Up
IGFyZSBhZGRlZCB0byByZXF1ZXN0LiBBIGhhbmRsZXIKLWNhbiByZWplY3QgdGhlIHJlcXVlc3Qg
YnkgcmFpc2luZyBhbiBleGNlcHRpb24uCi0KLUEgcmVxdWVzdCBvYmplY3QgaGFzIHRoZSBmb2xs
b3dpbmcgcHJvcGVydGllcyB0aGF0IHlvdSBjYW4gdXNlIGR1cmluZyB0aGUKLWV4dHJhIGhhbmRz
aGFrZSAod2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UpOgotLSB3c19yZXNvdXJjZQotLSB3
c19vcmlnaW4KLS0gd3NfdmVyc2lvbgotLSB3c19sb2NhdGlvbiAoSHlCaSAwMCBvbmx5KQotLSB3
c19leHRlbnNpb25zIChIeUJpIDA2IGFuZCBsYXRlcikKLS0gd3NfZGVmbGF0ZSAoSHlCaSAwNiBh
bmQgbGF0ZXIpCi0tIHdzX3Byb3RvY29sCi0tIHdzX3JlcXVlc3RlZF9wcm90b2NvbHMgKEh5Qmkg
MDYgYW5kIGxhdGVyKQotCi1UaGUgbGFzdCB0d28gYXJlIGEgYml0IHRyaWNreS4gU2VlIHRoZSBu
ZXh0IHN1YnNlY3Rpb24uCi0KLQotU3VicHJvdG9jb2wgTmVnb3RpYXRpb24KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0KLUZvciBIeUJpIDA2IGFuZCBsYXRlciwgd3NfcHJvdG9jb2wgaXMgYWx3
YXlzIHNldCB0byBOb25lIHdoZW4KLXdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIGlzIGNh
bGxlZC4gSWYgd3NfcmVxdWVzdGVkX3Byb3RvY29scyBpcyBub3QKLU5vbmUsIHlvdSBtdXN0IGNo
b29zZSBvbmUgc3VicHJvdG9jb2wgZnJvbSB0aGlzIGxpc3QgYW5kIHNldCBpdCB0bwotd3NfcHJv
dG9jb2wuCi0KLUZvciBIeUJpIDAwLCB3aGVuIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtl
IGlzIGNhbGxlZCwKLXdzX3Byb3RvY29sIGlzIHNldCB0byB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhl
IGNsaWVudCBpbgotU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBoZWFkZXIgb3IgTm9uZSBpZgotc3Vj
aCBoZWFkZXIgd2FzIG5vdCBmb3VuZCBpbiB0aGUgb3BlbmluZyBoYW5kc2hha2UgcmVxdWVzdC4g
RmluaXNoIGV4dHJhCi1oYW5kc2hha2Ugd2l0aCB3c19wcm90b2NvbCB1bnRvdWNoZWQgdG8gYWNj
ZXB0IHRoZSByZXF1ZXN0IHN1YnByb3RvY29sLgotVGhlbiwgU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bCBoZWFkZXIgd2lsbCBiZSBzZW50IHRvCi10aGUgY2xpZW50IGluIHJlc3BvbnNlIHdpdGggdGhl
IHNhbWUgdmFsdWUgYXMgcmVxdWVzdGVkLiBSYWlzZSBhbiBleGNlcHRpb24KLWluIHdlYl9zb2Nr
ZXRfZG9fZXh0cmFfaGFuZHNoYWtlIHRvIHJlamVjdCB0aGUgcmVxdWVzdGVkIHN1YnByb3RvY29s
LgotCi0KLURhdGEgVHJhbnNmZXIKLS0tLS0tLS0tLS0tLS0KLQotd2ViX3NvY2tldF90cmFuc2Zl
cl9kYXRhIGlzIGNhbGxlZCBhZnRlciB0aGUgaGFuZHNoYWtlIGNvbXBsZXRlZAotc3VjY2Vzc2Z1
bGx5LiBBIGhhbmRsZXIgY2FuIHJlY2VpdmUvc2VuZCBtZXNzYWdlcyBmcm9tL3RvIHRoZSBjbGll
bnQKLXVzaW5nIHJlcXVlc3QuIG1vZF9weXdlYnNvY2tldC5tc2d1dGlsIG1vZHVsZSBwcm92aWRl
cyB1dGlsaXRpZXMKLWZvciBkYXRhIHRyYW5zZmVyLgotCi1Zb3UgY2FuIHJlY2VpdmUgYSBtZXNz
YWdlIGJ5IHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50LgotCi0gICAgbWVzc2FnZSA9IHJlcXVlc3Qu
d3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0KLVRoaXMgY2FsbCBibG9ja3MgdW50aWwgYW55
IGNvbXBsZXRlIHRleHQgZnJhbWUgYXJyaXZlcywgYW5kIHRoZSBwYXlsb2FkIGRhdGEKLW9mIHRo
ZSBpbmNvbWluZyBmcmFtZSB3aWxsIGJlIHN0b3JlZCBpbnRvIG1lc3NhZ2UuIFdoZW4geW91J3Jl
IHVzaW5nIElFVEYKLUh5QmkgMDAgb3IgbGF0ZXIgcHJvdG9jb2wsIHJlY2VpdmVfbWVzc2FnZSgp
IHdpbGwgcmV0dXJuIE5vbmUgb24gcmVjZWl2aW5nCi1jbGllbnQtaW5pdGlhdGVkIGNsb3Npbmcg
aGFuZHNoYWtlLiBXaGVuIGFueSBlcnJvciBvY2N1cnMsIHJlY2VpdmVfbWVzc2FnZSgpCi13aWxs
IHJhaXNlIHNvbWUgZXhjZXB0aW9uLgotCi1Zb3UgY2FuIHNlbmQgYSBtZXNzYWdlIGJ5IHRoZSBm
b2xsb3dpbmcgc3RhdGVtZW50LgotCi0gICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdl
KG1lc3NhZ2UpCi0KLQotQ2xvc2luZyBDb25uZWN0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0KLQot
RXhlY3V0aW5nIHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50IG9yIGp1c3QgcmV0dXJuLWluZyBmcm9t
Ci13ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEgY2F1c2UgY29ubmVjdGlvbiBjbG9zZS4KLQotICAg
IHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotCi1jbG9zZV9jb25uZWN0aW9u
IHdpbGwgd2FpdAotZm9yIGNsb3NpbmcgaGFuZHNoYWtlIGFja25vd2xlZGdlbWVudCBjb21pbmcg
ZnJvbSB0aGUgY2xpZW50LiBXaGVuIGl0Ci1jb3VsZG4ndCByZWNlaXZlIGEgdmFsaWQgYWNrbm93
bGVkZ2VtZW50LCByYWlzZXMgYW4gZXhjZXB0aW9uLgotCi13ZWJfc29ja2V0X3Bhc3NpdmVfY2xv
c2luZ19oYW5kc2hha2UgaXMgY2FsbGVkIGFmdGVyIHRoZSBzZXJ2ZXIgcmVjZWl2ZXMKLWluY29t
aW5nIGNsb3NpbmcgZnJhbWUgZnJvbSB0aGUgY2xpZW50IHBlZXIgaW1tZWRpYXRlbHkuIFlvdSBj
YW4gc3BlY2lmeQotY29kZSBhbmQgcmVhc29uIGJ5IHJldHVybiB2YWx1ZXMuIFRoZXkgYXJlIHNl
bnQgYXMgYSBvdXRnb2luZyBjbG9zaW5nIGZyYW1lCi1mcm9tIHRoZSBzZXJ2ZXIuIEEgcmVxdWVz
dCBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB0aGF0IHlvdSBjYW4KLXVzZSBp
biB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UuCi0tIHdzX2Nsb3NlX2NvZGUK
LS0gd3NfY2xvc2VfcmVhc29uCi0KLQotVGhyZWFkaW5nCi0tLS0tLS0tLS0KLQotQSBXZWJTb2Nr
ZXQgaGFuZGxlciBtdXN0IGJlIHRocmVhZC1zYWZlIGlmIHRoZSBzZXJ2ZXIgKEFwYWNoZSBvcgot
c3RhbmRhbG9uZS5weSkgaXMgY29uZmlndXJlZCB0byB1c2UgdGhyZWFkcy4KLQotCi1Db25maWd1
cmluZyBXZWJTb2NrZXQgRXh0ZW5zaW9uIFByb2Nlc3NvcnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1TZWUgZXh0ZW5zaW9ucy5weSBmb3Igc3VwcG9ydGVk
IFdlYlNvY2tldCBleHRlbnNpb25zLiBOb3RlIHRoYXQgdGhleSBhcmUKLXVuc3RhYmxlIGFuZCB0
aGVpciBBUElzIGFyZSBzdWJqZWN0IHRvIGNoYW5nZSBzdWJzdGFudGlhbGx5LgotCi1BIHJlcXVl
c3Qgb2JqZWN0IGhhcyB0aGVzZSBleHRlbnNpb24gcHJvY2Vzc2luZyByZWxhdGVkIGF0dHJpYnV0
ZXMuCi0KLS0gd3NfcmVxdWVzdGVkX2V4dGVuc2lvbnM6Ci0KLSAgQSBsaXN0IG9mIGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIgaW5zdGFuY2VzIHJlcHJlc2VudGluZyBleHRlbnNpb24KLSAgcGFy
YW1ldGVycyByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnQgaW4gdGhlIGNsaWVudCdzIG9wZW5pbmcg
aGFuZHNoYWtlLgotICBZb3Ugc2hvdWxkbid0IG1vZGlmeSBpdCBtYW51YWxseS4KLQotLSB3c19l
eHRlbnNpb25zOgotCi0gIEEgbGlzdCBvZiBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyIGluc3Rh
bmNlcyByZXByZXNlbnRpbmcgZXh0ZW5zaW9uCi0gIHBhcmFtZXRlcnMgdG8gc2VuZCBiYWNrIHRv
IHRoZSBjbGllbnQgaW4gdGhlIHNlcnZlcidzIG9wZW5pbmcgaGFuZHNoYWtlLgotICBZb3Ugc2hv
dWxkbid0IHRvdWNoIGl0IGRpcmVjdGx5LiBJbnN0ZWFkLCBjYWxsIG1ldGhvZHMgb24gZXh0ZW5z
aW9uCi0gIHByb2Nlc3NvcnMuCi0KLS0gd3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnM6Ci0KLSAgQSBs
aXN0IG9mIGxvYWRlZCBleHRlbnNpb24gcHJvY2Vzc29ycy4gRmluZCB0aGUgcHJvY2Vzc29yIGZv
ciB0aGUKLSAgZXh0ZW5zaW9uIHlvdSB3YW50IHRvIGNvbmZpZ3VyZSBmcm9tIGl0LCBhbmQgY2Fs
bCBpdHMgbWV0aG9kcy4KLSIiIgotCi0KLSMgdmk6c3RzPTQgc3c9NCBldCB0dz03MgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1fYmFzZS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDgyMzU2NjZiYmIxZDUxYzEwZGIzZjkxYmRhNGFiY2Q3YWZlYjI2ODIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vi
c29ja2V0L19zdHJlYW1fYmFzZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDE4MSArMCwwIEBACi0j
IENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0iIiJCYXNlIHN0cmVhbSBjbGFzcy4KLSIiIgotCi0KLSMgTm90
ZTogcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlL3JlYWQgYXJlIHVzZWQgaW4gdGhpcyBtb2R1bGUs
IGV2ZW4gdGhvdWdoCi0jIG1vZF9weXRob24gZG9jdW1lbnQgc2F5cyB0aGF0IHRoZXkgc2hvdWxk
IGJlIHVzZWQgb25seSBpbiBjb25uZWN0aW9uCi0jIGhhbmRsZXJzLiBVbmZvcnR1bmF0ZWx5LCB3
ZSBoYXZlIG5vIG90aGVyIG9wdGlvbnMuIEZvciBleGFtcGxlLAotIyByZXF1ZXN0LndyaXRlL3Jl
YWQgYXJlIG5vdCBzdWl0YWJsZSBiZWNhdXNlIHRoZXkgZG9uJ3QgYWxsb3cgZGlyZWN0IHJhdyBi
eXRlcwotIyB3cml0aW5nL3JlYWRpbmcuCi0KLQotaW1wb3J0IHNvY2tldAotCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLSMgRXhjZXB0aW9ucwotCi0KLWNsYXNzIENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRp
b24gd2lsbCBiZSByYWlzZWQgd2hlbiBhIGNvbm5lY3Rpb24gaXMgdGVybWluYXRlZAotICAgIHVu
ZXhwZWN0ZWRseS4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBJbnZhbGlkRnJhbWVF
eGNlcHRpb24oQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhj
ZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gd2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBmcmFtZSB3
ZQotICAgIGNhbm5vdCBwYXJzZS4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBCYWRP
cGVyYXRpb25FeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxs
IGJlIHJhaXNlZCB3aGVuIHNlbmRfbWVzc2FnZSgpIGlzIGNhbGxlZCBvbgotICAgIHNlcnZlci10
ZXJtaW5hdGVkIGNvbm5lY3Rpb24gb3IgcmVjZWl2ZV9tZXNzYWdlKCkgaXMgY2FsbGVkIG9uCi0g
ICAgY2xpZW50LXRlcm1pbmF0ZWQgY29ubmVjdGlvbi4KLSAgICAiIiIKLQotICAgIHBhc3MKLQot
Ci1jbGFzcyBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhp
cyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiB3ZSByZWNlaXZlIGEgZnJhbWUgd2l0aCBm
bGFnLCBvcGNvZGUKLSAgICB3ZSBjYW5ub3QgaGFuZGxlLiBIYW5kbGVycyBjYW4ganVzdCBjYXRj
aCBhbmQgaWdub3JlIHRoaXMgZXhjZXB0aW9uIGFuZAotICAgIGNhbGwgcmVjZWl2ZV9tZXNzYWdl
KCkgYWdhaW4gdG8gY29udGludWUgcHJvY2Vzc2luZyB0aGUgbmV4dCBmcmFtZS4KLSAgICAiIiIK
LQotICAgIHBhc3MKLQotCi1jbGFzcyBJbnZhbGlkVVRGOEV4Y2VwdGlvbihFeGNlcHRpb24pOgot
ICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gd2UgcmVjZWl2ZSBhIHRl
eHQgZnJhbWUgd2hpY2gKLSAgICBjb250YWlucyBpbnZhbGlkIFVURi04IHN0cmluZ3MuCi0gICAg
IiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3MgU3RyZWFtQmFzZShvYmplY3QpOgotICAgICIiIkJh
c2Ugc3RyZWFtIGNsYXNzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgot
ICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAg
c2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLQotICAgIGRlZiBfcmVhZChzZWxmLCBsZW5ndGgpOgot
ICAgICAgICAiIiJSZWFkcyBsZW5ndGggYnl0ZXMgZnJvbSBjb25uZWN0aW9uLiBJbiBjYXNlIHdl
IGNhdGNoIGFueSBleGNlcHRpb24sCi0gICAgICAgIHByZXBlbmRzIHJlbW90ZSBhZGRyZXNzIHRv
IHRoZSBleGNlcHRpb24gbWVzc2FnZSBhbmQgcmFpc2UgYWdhaW4uCi0KLSAgICAgICAgUmFpc2Vz
OgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCBy
ZXR1cm5zIGVtcHR5IHN0cmluZy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgcmVhZF9ieXRlcyA9IHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZWFkKGxlbmd0aCkK
LSAgICAgICAgICAgIGlmIG5vdCByZWFkX2J5dGVzOgotICAgICAgICAgICAgICAgIHJhaXNlIENv
bm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnUmVjZWl2
aW5nICVkIGJ5dGUgZmFpbGVkLiBQZWVyICglcikgY2xvc2VkIGNvbm5lY3Rpb24nICUKLSAgICAg
ICAgICAgICAgICAgICAgKGxlbmd0aCwgKHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZW1vdGVf
YWRkciwpKSkKLSAgICAgICAgICAgIHJldHVybiByZWFkX2J5dGVzCi0gICAgICAgIGV4Y2VwdCBz
b2NrZXQuZXJyb3IsIGU6Ci0gICAgICAgICAgICAjIENhdGNoIGEgc29ja2V0LmVycm9yLiBCZWNh
dXNlIGl0J3Mgbm90IGEgY2hpbGQgY2xhc3Mgb2YgdGhlCi0gICAgICAgICAgICAjIElPRXJyb3Ig
cHJpb3IgdG8gUHl0aG9uIDIuNiwgd2UgY2Fubm90IG9taXQgdGhpcyBleGNlcHQgY2xhdXNlLgot
ICAgICAgICAgICAgIyBVc2UgJXMgcmF0aGVyIHRoYW4gJXIgZm9yIHRoZSBleGNlcHRpb24gdG8g
dXNlIGh1bWFuIGZyaWVuZGx5Ci0gICAgICAgICAgICAjIGZvcm1hdC4KLSAgICAgICAgICAgIHJh
aXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZWNl
aXZpbmcgJWQgYnl0ZSBmYWlsZWQuIHNvY2tldC5lcnJvciAoJXMpIG9jY3VycmVkJyAlCi0gICAg
ICAgICAgICAgICAgKGxlbmd0aCwgZSkpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlOgotICAg
ICAgICAgICAgIyBBbHNvIGNhdGNoIGFuIElPRXJyb3IgYmVjYXVzZSBtb2RfcHl0aG9uIHRocm93
cyBpdC4KLSAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICdSZWNlaXZpbmcgJWQgYnl0ZSBmYWlsZWQuIElPRXJyb3IgKCVzKSBv
Y2N1cnJlZCcgJQotICAgICAgICAgICAgICAgIChsZW5ndGgsIGUpKQotCi0gICAgZGVmIF93cml0
ZShzZWxmLCBieXRlc190b193cml0ZSk6Ci0gICAgICAgICIiIldyaXRlcyBnaXZlbiBieXRlcyB0
byBjb25uZWN0aW9uLiBJbiBjYXNlIHdlIGNhdGNoIGFueSBleGNlcHRpb24sCi0gICAgICAgIHBy
ZXBlbmRzIHJlbW90ZSBhZGRyZXNzIHRvIHRoZSBleGNlcHRpb24gbWVzc2FnZSBhbmQgcmFpc2Ug
YWdhaW4uCi0gICAgICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3QuY29ubmVjdGlvbi53cml0ZShieXRlc190b193cml0ZSkKLSAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBzZW5kIG1lc3NhZ2UgdG8gJXI6ICcg
JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24u
cmVtb3RlX2FkZHIsKSwKLSAgICAgICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAgIHJhaXNl
Ci0KLSAgICBkZWYgcmVjZWl2ZV9ieXRlcyhzZWxmLCBsZW5ndGgpOgotICAgICAgICAiIiJSZWNl
aXZlcyBtdWx0aXBsZSBieXRlcy4gUmV0cmllcyByZWFkIHdoZW4gd2UgY291bGRuJ3QgcmVjZWl2
ZSB0aGUKLSAgICAgICAgc3BlY2lmaWVkIGFtb3VudC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAg
ICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMg
ZW1wdHkgc3RyaW5nLgotICAgICAgICAiIiIKLQotICAgICAgICByZWFkX2J5dGVzID0gW10KLSAg
ICAgICAgd2hpbGUgbGVuZ3RoID4gMDoKLSAgICAgICAgICAgIG5ld19yZWFkX2J5dGVzID0gc2Vs
Zi5fcmVhZChsZW5ndGgpCi0gICAgICAgICAgICByZWFkX2J5dGVzLmFwcGVuZChuZXdfcmVhZF9i
eXRlcykKLSAgICAgICAgICAgIGxlbmd0aCAtPSBsZW4obmV3X3JlYWRfYnl0ZXMpCi0gICAgICAg
IHJldHVybiAnJy5qb2luKHJlYWRfYnl0ZXMpCi0KLSAgICBkZWYgX3JlYWRfdW50aWwoc2VsZiwg
ZGVsaW1fY2hhcik6Ci0gICAgICAgICIiIlJlYWRzIGJ5dGVzIHVudGlsIHdlIGVuY291bnRlciBk
ZWxpbV9jaGFyLiBUaGUgcmVzdWx0IHdpbGwgbm90Ci0gICAgICAgIGNvbnRhaW4gZGVsaW1fY2hh
ci4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4
Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkgc3RyaW5nLgotICAgICAgICAiIiIKLQot
ICAgICAgICByZWFkX2J5dGVzID0gW10KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAg
IGNoID0gc2VsZi5fcmVhZCgxKQotICAgICAgICAgICAgaWYgY2ggPT0gZGVsaW1fY2hhcjoKLSAg
ICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgcmVhZF9ieXRlcy5hcHBlbmQoY2gpCi0g
ICAgICAgIHJldHVybiAnJy5qb2luKHJlYWRfYnl0ZXMpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faGl4aWU3NS5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjZjViMzFiYTBmYzNjM2EzNDc3ZGU4MjI5N2EwYzI2ZGEx
YzQ4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMjI5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBwcm92aWRl
cyBhIGNsYXNzIGZvciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1lcyBvZiB0aGUgV2ViU29ja2V0Ci1w
cm90b2NvbCB2ZXJzaW9uIEh5QmkgMDAgYW5kIEhpeGllIDc1LgotCi1TcGVjaWZpY2F0aW9uOgot
LSBIeUJpIDAwIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaHliaS10aGV3
ZWJzb2NrZXRwcm90b2NvbC0wMAotLSBIaXhpZSA3NSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRt
bC9kcmFmdC1oaXhpZS10aGV3ZWJzb2NrZXRwcm90b2NvbC03NQotIiIiCi0KLQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9i
YXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFN0cmVhbUJhc2UKLWZyb20g
bW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2Vw
dGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1jbGFzcyBTdHJlYW1I
aXhpZTc1KFN0cmVhbUJhc2UpOgotICAgICIiIkEgY2xhc3MgZm9yIHBhcnNpbmcvYnVpbGRpbmcg
ZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lvbgotICAgIEh5QmkgMDAgYW5k
IEhpeGllIDc1LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGVu
YWJsZV9jbG9zaW5nX2hhbmRzaGFrZT1GYWxzZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBp
bnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhv
biByZXF1ZXN0LgotICAgICAgICAgICAgZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlOiB0byBsZXQg
U3RyZWFtSGl4aWU3NSBwZXJmb3JtIGNsb3NpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGFuZHNoYWtlIGFzIHNwZWNpZmllZCBpbiBIeUJpIDAwLCBzZXQKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBvcHRpb24gdG8gVHJ1ZS4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgU3RyZWFtQmFzZS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0KQot
Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0g
ICAgICAgIHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZSA9IGVuYWJsZV9jbG9zaW5nX2hh
bmRzaGFrZQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQgPSBGYWxz
ZQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gRmFsc2UKLQotICAg
IGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6
Ci0gICAgICAgICIiIlNlbmQgbWVzc2FnZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
bWVzc2FnZTogdW5pY29kZSBzdHJpbmcgdG8gc2VuZC4KLSAgICAgICAgICAgIGJpbmFyeTogbm90
IHVzZWQgaW4gaGl4aWU3NS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVy
YXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVkIG9uIGEgc2VydmVyLXRlcm1pbmF0ZWQKLSAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBub3QgZW5k
OgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdTdHJlYW1IaXhpZTc1IGRvZXNuXCd0IHN1cHBvcnQgc2VuZF9tZXNzYWdlIHdpdGggZW5k
PUZhbHNlJykKLQotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVy
YXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1N0cmVhbUhpeGllNzUgZG9lc25cJ3Qg
c3VwcG9ydCBzZW5kX21lc3NhZ2Ugd2l0aCBiaW5hcnk9VHJ1ZScpCi0KLSAgICAgICAgaWYgc2Vs
Zi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJh
dGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIHNlbmRfbWVzc2FnZSBh
ZnRlciBzZW5kaW5nIG91dCBhIGNsb3NpbmcgaGFuZHNoYWtlJykKLQotICAgICAgICBzZWxmLl93
cml0ZSgnJy5qb2luKFsnXHgwMCcsIG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpLCAnXHhmZiddKSkK
LQotICAgIGRlZiBfcmVhZF9wYXlsb2FkX2xlbmd0aF9oaXhpZTc1KHNlbGYpOgotICAgICAgICAi
IiJSZWFkcyBhIGxlbmd0aCBoZWFkZXIgaW4gYSBIaXhpZTc1IHZlcnNpb24gZnJhbWUgd2l0aCBs
ZW5ndGguCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5IHN0cmluZy4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgbGVuZ3RoID0gMAotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAg
Yl9zdHIgPSBzZWxmLl9yZWFkKDEpCi0gICAgICAgICAgICBiID0gb3JkKGJfc3RyKQotICAgICAg
ICAgICAgbGVuZ3RoID0gbGVuZ3RoICogMTI4ICsgKGIgJiAweDdmKQotICAgICAgICAgICAgaWYg
KGIgJiAweDgwKSA9PSAwOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIHJldHVybiBs
ZW5ndGgKLQotICAgIGRlZiByZWNlaXZlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgICIiIlJlY2Vp
dmUgYSBXZWJTb2NrZXQgZnJhbWUgYW5kIHJldHVybiBpdHMgcGF5bG9hZCBhbiB1bmljb2RlIHN0
cmluZy4KLQotICAgICAgICBSZXR1cm5zOgotICAgICAgICAgICAgcGF5bG9hZCB1bmljb2RlIHN0
cmluZyBpbiBhIFdlYlNvY2tldCBmcmFtZS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAg
ICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkK
LSAgICAgICAgICAgICAgICBzdHJpbmcuCi0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRp
b246IHdoZW4gY2FsbGVkIG9uIGEgY2xpZW50LXRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LmNsaWVu
dF90ZXJtaW5hdGVkOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgcmVjZWl2ZV9tZXNzYWdlIGFmdGVyIHJlY2Vpdmlu
ZyBhIGNsb3NpbmcgJwotICAgICAgICAgICAgICAgICdoYW5kc2hha2UnKQotCi0gICAgICAgIHdo
aWxlIFRydWU6Ci0gICAgICAgICAgICAjIFJlYWQgMSBieXRlLgotICAgICAgICAgICAgIyBtcF9j
b25uLnJlYWQgd2lsbCBibG9jayBpZiBubyBieXRlcyBhcmUgYXZhaWxhYmxlLgotICAgICAgICAg
ICAgIyBUaW1lb3V0IGlzIGNvbnRyb2xsZWQgYnkgVGltZU91dCBkaXJlY3RpdmUgb2YgQXBhY2hl
LgotICAgICAgICAgICAgZnJhbWVfdHlwZV9zdHIgPSBzZWxmLnJlY2VpdmVfYnl0ZXMoMSkKLSAg
ICAgICAgICAgIGZyYW1lX3R5cGUgPSBvcmQoZnJhbWVfdHlwZV9zdHIpCi0gICAgICAgICAgICBp
ZiAoZnJhbWVfdHlwZSAmIDB4ODApID09IDB4ODA6Ci0gICAgICAgICAgICAgICAgIyBUaGUgcGF5
bG9hZCBsZW5ndGggaXMgc3BlY2lmaWVkIGluIHRoZSBmcmFtZS4KLSAgICAgICAgICAgICAgICAj
IFJlYWQgYW5kIGRpc2NhcmQuCi0gICAgICAgICAgICAgICAgbGVuZ3RoID0gc2VsZi5fcmVhZF9w
YXlsb2FkX2xlbmd0aF9oaXhpZTc1KCkKLSAgICAgICAgICAgICAgICBpZiBsZW5ndGggPiAwOgot
ICAgICAgICAgICAgICAgICAgICBfID0gc2VsZi5yZWNlaXZlX2J5dGVzKGxlbmd0aCkKLSAgICAg
ICAgICAgICAgICAjIDUuMyAzLiAxMi4gaWYgL3R5cGUvIGlzIDB4RkYgYW5kIC9sZW5ndGgvIGlz
IDAsIHRoZW4gc2V0IHRoZQotICAgICAgICAgICAgICAgICMgL2NsaWVudCB0ZXJtaW5hdGVkLyBm
bGFnIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5f
ZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQot
Ci0gICAgICAgICAgICAgICAgaWYgZnJhbWVfdHlwZSA9PSAweEZGIGFuZCBsZW5ndGggPT0gMDoK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWluYXRlZCA9IFRy
dWUKLQotICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5h
dGVkOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBhY2sgZm9yIHNlcnZlci1pbml0aWF0ZWQg
Y2xvc2luZyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbmRzaGFrZScpCi0gICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBjbGll
bnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKLQotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1NlbnQgYWNrIGZvciBjbGll
bnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIE5vbmUKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBUaGUgcGF5bG9h
ZCBpcyBkZWxpbWl0ZWQgd2l0aCBceGZmLgotICAgICAgICAgICAgICAgIGJ5dGVzID0gc2VsZi5f
cmVhZF91bnRpbCgnXHhmZicpCi0gICAgICAgICAgICAgICAgIyBUaGUgV2ViU29ja2V0IHByb3Rv
Y29sIHNlY3Rpb24gNC40IHNwZWNpZmllcyB0aGF0IGludmFsaWQKLSAgICAgICAgICAgICAgICAj
IGNoYXJhY3RlcnMgbXVzdCBiZSByZXBsYWNlZCB3aXRoIFUrZmZmZCBSRVBMQUNFTUVOVAotICAg
ICAgICAgICAgICAgICMgQ0hBUkFDVEVSLgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBieXRl
cy5kZWNvZGUoJ3V0Zi04JywgJ3JlcGxhY2UnKQotICAgICAgICAgICAgICAgIGlmIGZyYW1lX3R5
cGUgPT0gMHgwMDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLSAgICAgICAg
ICAgICAgICAjIERpc2NhcmQgZGF0YSBvZiBvdGhlciB0eXBlcy4KLQotICAgIGRlZiBfc2VuZF9j
bG9zaW5nX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuX2VuYWJsZV9jbG9z
aW5nX2hhbmRzaGFrZToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnQ2xvc2luZyBoYW5kc2hha2UgaXMgbm90IHN1cHBvcnRlZCBpbiBI
aXhpZSA3NSBwcm90b2NvbCcpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWlu
YXRlZCA9IFRydWUKLQotICAgICAgICAjIDUuMyB0aGUgc2VydmVyIG1heSBkZWNpZGUgdG8gdGVy
bWluYXRlIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBieQotICAgICAgICAjIHJ1bm5pbmcgdGhy
b3VnaCB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAjIDEuIHNlbmQgYSAweEZGIGJ5dGUg
YW5kIGEgMHgwMCBieXRlIHRvIHRoZSBjbGllbnQgdG8gaW5kaWNhdGUgdGhlCi0gICAgICAgICMg
c3RhcnQgb2YgdGhlIGNsb3NpbmcgaGFuZHNoYWtlLgotICAgICAgICBzZWxmLl93cml0ZSgnXHhm
Zlx4MDAnKQotCi0gICAgZGVmIGNsb3NlX2Nvbm5lY3Rpb24oc2VsZiwgdW51c2VkX2NvZGU9Jycs
IHVudXNlZF9yZWFzb249JycpOgotICAgICAgICAiIiJDbG9zZXMgYSBXZWJTb2NrZXQgY29ubmVj
dGlvbi4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRl
ZEV4Y2VwdGlvbjogd2hlbiBjbG9zaW5nIGhhbmRzaGFrZSB3YXMKLSAgICAgICAgICAgICAgICBu
b3Qgc3VjY2Vzc2Z1bGwuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qu
c2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAg
ICAgICAgICAgICAgJ1JlcXVlc3RlZCBjbG9zZV9jb25uZWN0aW9uIGJ1dCBzZXJ2ZXIgaXMgYWxy
ZWFkeSB0ZXJtaW5hdGVkJykKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGlmIG5vdCBz
ZWxmLl9lbmFibGVfY2xvc2luZ19oYW5kc2hha2U6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdDb25uZWN0aW9uIGNsb3NlZCcpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBzZWxm
Ll9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdT
ZW50IHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgICMgVE9E
Tyh1a2FpKTogMi4gd2FpdCB1bnRpbCB0aGUgL2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFnIGhhcyBi
ZWVuIHNldCwKLSAgICAgICAgIyBvciB1bnRpbCBhIHNlcnZlci1kZWZpbmVkIHRpbWVvdXQgZXhw
aXJlcy4KLSAgICAgICAgIwotICAgICAgICAjIEZvciBub3csIHdlIGV4cGVjdCByZWNlaXZpbmcg
Y2xvc2luZyBoYW5kc2hha2UgcmlnaHQgYWZ0ZXIgc2VuZGluZwotICAgICAgICAjIG91dCBjbG9z
aW5nIGhhbmRzaGFrZSwgYW5kIGlmIHdlIGNvdWxkbid0IHJlY2VpdmUgbm9uLWhhbmRzaGFrZQot
ICAgICAgICAjIGZyYW1lLCB3ZSB0YWtlIGl0IGFzIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0
aW9uLgotICAgICAgICBtZXNzYWdlID0gc2VsZi5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBp
ZiBtZXNzYWdlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1p
bmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0RpZG5cJ3QgcmVjZWl2ZSB2YWxpZCBh
Y2sgZm9yIGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgIyBUT0RPOiAzLiBjbG9zZSB0aGUg
V2ViU29ja2V0IGNvbm5lY3Rpb24uCi0gICAgICAgICMgbm90ZTogbW9kX3B5dGhvbiBDb25uZWN0
aW9uIChtcF9jb25uKSBkb2Vzbid0IGhhdmUgY2xvc2UgbWV0aG9kLgotCi0gICAgZGVmIHNlbmRf
cGluZyhzZWxmLCBib2R5KToKLSAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAot
ICAgICAgICAgICAgJ1N0cmVhbUhpeGllNzUgZG9lc25cJ3Qgc3VwcG9ydCBzZW5kX3BpbmcnKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29j
a2V0L19zdHJlYW1faHliaS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2h5
YmkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4YTQ5ZTNjM2RjOTViYTlmN2Zk
NDEyODkzODNmZTA3YWZkZDU3N2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faHliaS5weQorKysg
L2Rldi9udWxsCkBAIC0xLDg4NyArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5j
LgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlz
IGZpbGUgcHJvdmlkZXMgY2xhc3NlcyBhbmQgaGVscGVyIGZ1bmN0aW9ucyBmb3IgcGFyc2luZy9i
dWlsZGluZyBmcmFtZXMKLW9mIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4KLQot
U3BlY2lmaWNhdGlvbjoKLWh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUKLSIiIgot
Ci0KLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0
IG9zCi1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgdGltZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KLWZy
b20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52
YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1w
b3J0IEludmFsaWRVVEY4RXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jh
c2UgaW1wb3J0IFN0cmVhbUJhc2UKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBp
bXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgotCi0KLV9OT09QX01BU0tFUiA9IHV0aWwu
Tm9vcE1hc2tlcigpCi0KLQotY2xhc3MgRnJhbWUob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBmaW49MSwgcnN2MT0wLCByc3YyPTAsIHJzdjM9MCwKLSAgICAgICAgICAgICAgICAg
b3Bjb2RlPU5vbmUsIHBheWxvYWQ9JycpOgotICAgICAgICBzZWxmLmZpbiA9IGZpbgotICAgICAg
ICBzZWxmLnJzdjEgPSByc3YxCi0gICAgICAgIHNlbGYucnN2MiA9IHJzdjIKLSAgICAgICAgc2Vs
Zi5yc3YzID0gcnN2MwotICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQotICAgICAgICBzZWxm
LnBheWxvYWQgPSBwYXlsb2FkCi0KLQotIyBIZWxwZXIgZnVuY3Rpb25zIG1hZGUgcHVibGljIHRv
IGJlIHVzZWQgZm9yIHdyaXRpbmcgdW5pdHRlc3RzIGZvciBXZWJTb2NrZXQKLSMgY2xpZW50cy4K
LQotCi1kZWYgY3JlYXRlX2xlbmd0aF9oZWFkZXIobGVuZ3RoLCBtYXNrKToKLSAgICAiIiJDcmVh
dGVzIGEgbGVuZ3RoIGhlYWRlci4KLQotICAgIEFyZ3M6Ci0gICAgICAgIGxlbmd0aDogRnJhbWUg
bGVuZ3RoLiBNdXN0IGJlIGxlc3MgdGhhbiAyXjYzLgotICAgICAgICBtYXNrOiBNYXNrIGJpdC4g
TXVzdCBiZSBib29sZWFuLgotCi0gICAgUmFpc2VzOgotICAgICAgICBWYWx1ZUVycm9yOiB3aGVu
IGJhZCBkYXRhIGlzIGdpdmVuLgotICAgICIiIgotCi0gICAgaWYgbWFzazoKLSAgICAgICAgbWFz
a19iaXQgPSAxIDw8IDcKLSAgICBlbHNlOgotICAgICAgICBtYXNrX2JpdCA9IDAKLQotICAgIGlm
IGxlbmd0aCA8IDA6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2xlbmd0aCBtdXN0IGJlIG5v
biBuZWdhdGl2ZSBpbnRlZ2VyJykKLSAgICBlbGlmIGxlbmd0aCA8PSAxMjU6Ci0gICAgICAgIHJl
dHVybiBjaHIobWFza19iaXQgfCBsZW5ndGgpCi0gICAgZWxpZiBsZW5ndGggPCAoMSA8PCAxNik6
Ci0gICAgICAgIHJldHVybiBjaHIobWFza19iaXQgfCAxMjYpICsgc3RydWN0LnBhY2soJyFIJywg
bGVuZ3RoKQotICAgIGVsaWYgbGVuZ3RoIDwgKDEgPDwgNjMpOgotICAgICAgICByZXR1cm4gY2hy
KG1hc2tfYml0IHwgMTI3KSArIHN0cnVjdC5wYWNrKCchUScsIGxlbmd0aCkKLSAgICBlbHNlOgot
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdQYXlsb2FkIGlzIHRvbyBiaWcgZm9yIG9uZSBmcmFt
ZScpCi0KLQotZGVmIGNyZWF0ZV9oZWFkZXIob3Bjb2RlLCBwYXlsb2FkX2xlbmd0aCwgZmluLCBy
c3YxLCByc3YyLCByc3YzLCBtYXNrKToKLSAgICAiIiJDcmVhdGVzIGEgZnJhbWUgaGVhZGVyLgot
Ci0gICAgUmFpc2VzOgotICAgICAgICBFeGNlcHRpb246IHdoZW4gYmFkIGRhdGEgaXMgZ2l2ZW4u
Ci0gICAgIiIiCi0KLSAgICBpZiBvcGNvZGUgPCAwIG9yIDB4ZiA8IG9wY29kZToKLSAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignT3Bjb2RlIG91dCBvZiByYW5nZScpCi0KLSAgICBpZiBwYXlsb2Fk
X2xlbmd0aCA8IDAgb3IgKDEgPDwgNjMpIDw9IHBheWxvYWRfbGVuZ3RoOgotICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdwYXlsb2FkX2xlbmd0aCBvdXQgb2YgcmFuZ2UnKQotCi0gICAgaWYgKGZp
biB8IHJzdjEgfCByc3YyIHwgcnN2MykgJiB+MToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcign
RklOIGJpdCBhbmQgUmVzZXJ2ZWQgYml0IHBhcmFtZXRlciBtdXN0IGJlIDAgb3IgMScpCi0KLSAg
ICBoZWFkZXIgPSAnJwotCi0gICAgZmlyc3RfYnl0ZSA9ICgoZmluIDw8IDcpCi0gICAgICAgICAg
ICAgICAgICB8IChyc3YxIDw8IDYpIHwgKHJzdjIgPDwgNSkgfCAocnN2MyA8PCA0KQotICAgICAg
ICAgICAgICAgICAgfCBvcGNvZGUpCi0gICAgaGVhZGVyICs9IGNocihmaXJzdF9ieXRlKQotICAg
IGhlYWRlciArPSBjcmVhdGVfbGVuZ3RoX2hlYWRlcihwYXlsb2FkX2xlbmd0aCwgbWFzaykKLQot
ICAgIHJldHVybiBoZWFkZXIKLQotCi1kZWYgX2J1aWxkX2ZyYW1lKGhlYWRlciwgYm9keSwgbWFz
ayk6Ci0gICAgaWYgbm90IG1hc2s6Ci0gICAgICAgIHJldHVybiBoZWFkZXIgKyBib2R5Ci0KLSAg
ICBtYXNraW5nX25vbmNlID0gb3MudXJhbmRvbSg0KQotICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0
ZWRYb3JNYXNrZXIobWFza2luZ19ub25jZSkKLQotICAgIHJldHVybiBoZWFkZXIgKyBtYXNraW5n
X25vbmNlICsgbWFza2VyLm1hc2soYm9keSkKLQotCi1kZWYgX2ZpbHRlcl9hbmRfZm9ybWF0X2Zy
YW1lX29iamVjdChmcmFtZSwgbWFzaywgZnJhbWVfZmlsdGVycyk6Ci0gICAgZm9yIGZyYW1lX2Zp
bHRlciBpbiBmcmFtZV9maWx0ZXJzOgotICAgICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZyYW1l
KQotCi0gICAgaGVhZGVyID0gY3JlYXRlX2hlYWRlcigKLSAgICAgICAgZnJhbWUub3Bjb2RlLCBs
ZW4oZnJhbWUucGF5bG9hZCksIGZyYW1lLmZpbiwKLSAgICAgICAgZnJhbWUucnN2MSwgZnJhbWUu
cnN2MiwgZnJhbWUucnN2MywgbWFzaykKLSAgICByZXR1cm4gX2J1aWxkX2ZyYW1lKGhlYWRlciwg
ZnJhbWUucGF5bG9hZCwgbWFzaykKLQotCi1kZWYgY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICBt
ZXNzYWdlLCBvcGNvZGU9Y29tbW9uLk9QQ09ERV9CSU5BUlksIGZpbj0xLCBtYXNrPUZhbHNlLCBm
cmFtZV9maWx0ZXJzPVtdKToKLSAgICAiIiJDcmVhdGVzIGEgc2ltcGxlIGJpbmFyeSBmcmFtZSB3
aXRoIG5vIGV4dGVuc2lvbiwgcmVzZXJ2ZWQgYml0LiIiIgotCi0gICAgZnJhbWUgPSBGcmFtZShm
aW49ZmluLCBvcGNvZGU9b3Bjb2RlLCBwYXlsb2FkPW1lc3NhZ2UpCi0gICAgcmV0dXJuIF9maWx0
ZXJfYW5kX2Zvcm1hdF9mcmFtZV9vYmplY3QoZnJhbWUsIG1hc2ssIGZyYW1lX2ZpbHRlcnMpCi0K
LQotZGVmIGNyZWF0ZV90ZXh0X2ZyYW1lKAotICAgIG1lc3NhZ2UsIG9wY29kZT1jb21tb24uT1BD
T0RFX1RFWFQsIGZpbj0xLCBtYXNrPUZhbHNlLCBmcmFtZV9maWx0ZXJzPVtdKToKLSAgICAiIiJD
cmVhdGVzIGEgc2ltcGxlIHRleHQgZnJhbWUgd2l0aCBubyBleHRlbnNpb24sIHJlc2VydmVkIGJp
dC4iIiIKLQotICAgIGVuY29kZWRfbWVzc2FnZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpCi0g
ICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUoZW5jb2RlZF9tZXNzYWdlLCBvcGNvZGUsIGZp
biwgbWFzaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV9maWx0ZXJzKQot
Ci0KLWRlZiBwYXJzZV9mcmFtZShyZWNlaXZlX2J5dGVzLCBsb2dnZXI9Tm9uZSwKLSAgICAgICAg
ICAgICAgICB3c192ZXJzaW9uPWNvbW1vbi5WRVJTSU9OX0hZQklfTEFURVNULAotICAgICAgICAg
ICAgICAgIHVubWFza19yZWNlaXZlPVRydWUpOgotICAgICIiIlBhcnNlcyBhIGZyYW1lLiBSZXR1
cm5zIGEgdHVwbGUgY29udGFpbmluZyBlYWNoIGhlYWRlciBmaWVsZCBhbmQKLSAgICBwYXlsb2Fk
LgotCi0gICAgQXJnczoKLSAgICAgICAgcmVjZWl2ZV9ieXRlczogYSBmdW5jdGlvbiB0aGF0IHJl
YWRzIGZyYW1lIGRhdGEgZnJvbSBhIHN0cmVhbSBvcgotICAgICAgICAgICAgc29tZXRoaW5nIHNp
bWlsYXIuIFRoZSBmdW5jdGlvbiB0YWtlcyBsZW5ndGggb2YgdGhlIGJ5dGVzIHRvIGJlCi0gICAg
ICAgICAgICByZWFkLiBUaGUgZnVuY3Rpb24gbXVzdCByYWlzZSBDb25uZWN0aW9uVGVybWluYXRl
ZEV4Y2VwdGlvbiBpZgotICAgICAgICAgICAgdGhlcmUgaXMgbm90IGVub3VnaCBkYXRhIHRvIGJl
IHJlYWQuCi0gICAgICAgIGxvZ2dlcjogYSBsb2dnaW5nIG9iamVjdC4KLSAgICAgICAgd3NfdmVy
c2lvbjogdGhlIHZlcnNpb24gb2YgV2ViU29ja2V0IHByb3RvY29sLgotICAgICAgICB1bm1hc2tf
cmVjZWl2ZTogdW5tYXNrIHJlY2VpdmVkIGZyYW1lcy4gV2hlbiByZWNlaXZlZCB1bm1hc2tlZAot
ICAgICAgICAgICAgZnJhbWUsIHJhaXNlcyBJbnZhbGlkRnJhbWVFeGNlcHRpb24uCi0KLSAgICBS
YWlzZXM6Ci0gICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlY2Vp
dmVfYnl0ZXMgcmFpc2VzIGl0LgotICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4g
dGhlIGZyYW1lIGNvbnRhaW5zIGludmFsaWQgZGF0YS4KLSAgICAiIiIKLQotICAgIGlmIG5vdCBs
b2dnZXI6Ci0gICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKLQotICAgIGxvZ2dl
ci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdSZWNlaXZlIHRoZSBmaXJzdCAyIG9jdGV0cyBv
ZiBhIGZyYW1lJykKLQotICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcygyKQotCi0gICAgZmly
c3RfYnl0ZSA9IG9yZChyZWNlaXZlZFswXSkKLSAgICBmaW4gPSAoZmlyc3RfYnl0ZSA+PiA3KSAm
IDEKLSAgICByc3YxID0gKGZpcnN0X2J5dGUgPj4gNikgJiAxCi0gICAgcnN2MiA9IChmaXJzdF9i
eXRlID4+IDUpICYgMQotICAgIHJzdjMgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKLSAgICBvcGNv
ZGUgPSBmaXJzdF9ieXRlICYgMHhmCi0KLSAgICBzZWNvbmRfYnl0ZSA9IG9yZChyZWNlaXZlZFsx
XSkKLSAgICBtYXNrID0gKHNlY29uZF9ieXRlID4+IDcpICYgMQotICAgIHBheWxvYWRfbGVuZ3Ro
ID0gc2Vjb25kX2J5dGUgJiAweDdmCi0KLSAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9G
SU5FLAotICAgICAgICAgICAgICAgJ0ZJTj0lcywgUlNWMT0lcywgUlNWMj0lcywgUlNWMz0lcywg
b3Bjb2RlPSVzLCAnCi0gICAgICAgICAgICAgICAnTWFzaz0lcywgUGF5bG9hZF9sZW5ndGg9JXMn
LAotICAgICAgICAgICAgICAgZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIG1hc2ssIHBh
eWxvYWRfbGVuZ3RoKQotCi0gICAgaWYgKG1hc2sgPT0gMSkgIT0gdW5tYXNrX3JlY2VpdmU6Ci0g
ICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICdNYXNrIGJp
dCBvbiB0aGUgcmVjZWl2ZWQgZnJhbWUgZGlkXCdudCBtYXRjaCBtYXNraW5nICcKLSAgICAgICAg
ICAgICdjb25maWd1cmF0aW9uIGZvciByZWNlaXZlZCBmcmFtZXMnKQotCi0gICAgIyBUaGUgSHlC
aSBhbmQgbGF0ZXIgc3BlY3MgZGlzYWxsb3cgcHV0dGluZyBhIHZhbHVlIGluIDB4MC0weEZGRkYK
LSAgICAjIGludG8gdGhlIDgtb2N0ZXQgZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGggZmllbGQgKG9y
IDB4MC0weEZEIGluCi0gICAgIyAyLW9jdGV0IGZpZWxkKS4KLSAgICB2YWxpZF9sZW5ndGhfZW5j
b2RpbmcgPSBUcnVlCi0gICAgbGVuZ3RoX2VuY29kaW5nX2J5dGVzID0gMQotICAgIGlmIHBheWxv
YWRfbGVuZ3RoID09IDEyNzoKLSAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklO
RSwKLSAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZSA4LW9jdGV0IGV4dGVuZGVkIHBheWxvYWQg
bGVuZ3RoJykKLQotICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0
ZXMoOCkKLSAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAg
ICAgJyFRJywgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGgpWzBdCi0gICAgICAgIGlmIHBheWxvYWRf
bGVuZ3RoID4gMHg3RkZGRkZGRkZGRkZGRkZGOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZy
YW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdFeHRlbmRlZCBwYXlsb2FkIGxlbmd0aCA+
PSAyXjYzJykKLSAgICAgICAgaWYgd3NfdmVyc2lvbiA+PSAxMyBhbmQgcGF5bG9hZF9sZW5ndGgg
PCAweDEwMDAwOgotICAgICAgICAgICAgdmFsaWRfbGVuZ3RoX2VuY29kaW5nID0gRmFsc2UKLSAg
ICAgICAgICAgIGxlbmd0aF9lbmNvZGluZ19ieXRlcyA9IDgKLQotICAgICAgICBsb2dnZXIubG9n
KGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgICAgICAgICdEZWNvZGVkX3BheWxv
YWRfbGVuZ3RoPSVzJywgcGF5bG9hZF9sZW5ndGgpCi0gICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA9
PSAxMjY6Ci0gICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAg
ICAgICAgICAgICAgJ1JlY2VpdmUgMi1vY3RldCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCcpCi0K
LSAgICAgICAgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGggPSByZWNlaXZlX2J5dGVzKDIpCi0gICAg
ICAgIHBheWxvYWRfbGVuZ3RoID0gc3RydWN0LnVucGFjaygKLSAgICAgICAgICAgICchSCcsIGV4
dGVuZGVkX3BheWxvYWRfbGVuZ3RoKVswXQotICAgICAgICBpZiB3c192ZXJzaW9uID49IDEzIGFu
ZCBwYXlsb2FkX2xlbmd0aCA8IDEyNjoKLSAgICAgICAgICAgIHZhbGlkX2xlbmd0aF9lbmNvZGlu
ZyA9IEZhbHNlCi0gICAgICAgICAgICBsZW5ndGhfZW5jb2RpbmdfYnl0ZXMgPSAyCi0KLSAgICAg
ICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICAgICAgICAn
RGVjb2RlZF9wYXlsb2FkX2xlbmd0aD0lcycsIHBheWxvYWRfbGVuZ3RoKQotCi0gICAgaWYgbm90
IHZhbGlkX2xlbmd0aF9lbmNvZGluZzoKLSAgICAgICAgbG9nZ2VyLndhcm5pbmcoCi0gICAgICAg
ICAgICAnUGF5bG9hZCBsZW5ndGggaXMgbm90IGVuY29kZWQgdXNpbmcgdGhlIG1pbmltYWwgbnVt
YmVyIG9mICcKLSAgICAgICAgICAgICdieXRlcyAoJWQgaXMgZW5jb2RlZCB1c2luZyAlZCBieXRl
cyknLAotICAgICAgICAgICAgcGF5bG9hZF9sZW5ndGgsCi0gICAgICAgICAgICBsZW5ndGhfZW5j
b2RpbmdfYnl0ZXMpCi0KLSAgICBpZiBtYXNrID09IDE6Ci0gICAgICAgIGxvZ2dlci5sb2coY29t
bW9uLkxPR0xFVkVMX0ZJTkUsICdSZWNlaXZlIG1hc2snKQotCi0gICAgICAgIG1hc2tpbmdfbm9u
Y2UgPSByZWNlaXZlX2J5dGVzKDQpCi0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JN
YXNrZXIobWFza2luZ19ub25jZSkKLQotICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZF
TF9GSU5FLCAnTWFzaz0lcicsIG1hc2tpbmdfbm9uY2UpCi0gICAgZWxzZToKLSAgICAgICAgbWFz
a2VyID0gX05PT1BfTUFTS0VSCi0KLSAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5F
LCAnUmVjZWl2ZSBwYXlsb2FkIGRhdGEnKQotICAgIGlmIGxvZ2dlci5pc0VuYWJsZWRGb3IoY29t
bW9uLkxPR0xFVkVMX0ZJTkUpOgotICAgICAgICByZWNlaXZlX3N0YXJ0ID0gdGltZS50aW1lKCkK
LQotICAgIHJhd19wYXlsb2FkX2J5dGVzID0gcmVjZWl2ZV9ieXRlcyhwYXlsb2FkX2xlbmd0aCkK
LQotICAgIGlmIGxvZ2dlci5pc0VuYWJsZWRGb3IoY29tbW9uLkxPR0xFVkVMX0ZJTkUpOgotICAg
ICAgICBsb2dnZXIubG9nKAotICAgICAgICAgICAgY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAg
ICAgICAgICAnRG9uZSByZWNlaXZpbmcgcGF5bG9hZCBkYXRhIGF0ICVzIE1CL3MnLAotICAgICAg
ICAgICAgcGF5bG9hZF9sZW5ndGggLyAodGltZS50aW1lKCkgLSByZWNlaXZlX3N0YXJ0KSAvIDEw
MDAgLyAxMDAwKQotICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdVbm1hc2sg
cGF5bG9hZCBkYXRhJykKLQotICAgIGlmIGxvZ2dlci5pc0VuYWJsZWRGb3IoY29tbW9uLkxPR0xF
VkVMX0ZJTkUpOgotICAgICAgICB1bm1hc2tfc3RhcnQgPSB0aW1lLnRpbWUoKQotCi0gICAgdW5t
YXNrZWRfYnl0ZXMgPSBtYXNrZXIubWFzayhyYXdfcGF5bG9hZF9ieXRlcykKLQotICAgIGlmIGxv
Z2dlci5pc0VuYWJsZWRGb3IoY29tbW9uLkxPR0xFVkVMX0ZJTkUpOgotICAgICAgICBsb2dnZXIu
bG9nKAotICAgICAgICAgICAgY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAnRG9u
ZSB1bm1hc2tpbmcgcGF5bG9hZCBkYXRhIGF0ICVzIE1CL3MnLAotICAgICAgICAgICAgcGF5bG9h
ZF9sZW5ndGggLyAodGltZS50aW1lKCkgLSB1bm1hc2tfc3RhcnQpIC8gMTAwMCAvIDEwMDApCi0K
LSAgICByZXR1cm4gb3Bjb2RlLCB1bm1hc2tlZF9ieXRlcywgZmluLCByc3YxLCByc3YyLCByc3Yz
Ci0KLQotY2xhc3MgRnJhZ21lbnRlZEZyYW1lQnVpbGRlcihvYmplY3QpOgotICAgICIiIkEgc3Rh
dGVmdWwgY2xhc3MgdG8gc2VuZCBhIG1lc3NhZ2UgYXMgZnJhZ21lbnRzLiIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIG1hc2ssIGZyYW1lX2ZpbHRlcnM9W10sIGVuY29kZV91dGY4PVRydWUp
OgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLiIiIgotCi0gICAgICAgIHNlbGYu
X21hc2sgPSBtYXNrCi0gICAgICAgIHNlbGYuX2ZyYW1lX2ZpbHRlcnMgPSBmcmFtZV9maWx0ZXJz
Ci0gICAgICAgICMgVGhpcyBpcyBmb3Igc2tpcHBpbmcgVVRGLTggZW5jb2Rpbmcgd2hlbiBidWls
ZGluZyB0ZXh0IHR5cGUgZnJhbWVzCi0gICAgICAgICMgZnJvbSBjb21wcmVzc2VkIGRhdGEuCi0g
ICAgICAgIHNlbGYuX2VuY29kZV91dGY4ID0gZW5jb2RlX3V0ZjgKLQotICAgICAgICBzZWxmLl9z
dGFydGVkID0gRmFsc2UKLQotICAgICAgICAjIEhvbGQgb3Bjb2RlIG9mIHRoZSBmaXJzdCBmcmFt
ZSBpbiBtZXNzYWdlcyB0byB2ZXJpZnkgdHlwZXMgb2Ygb3RoZXIKLSAgICAgICAgIyBmcmFtZXMg
aW4gdGhlIG1lc3NhZ2UgYXJlIGFsbCB0aGUgc2FtZS4KLSAgICAgICAgc2VsZi5fb3Bjb2RlID0g
Y29tbW9uLk9QQ09ERV9URVhUCi0KLSAgICBkZWYgYnVpbGQoc2VsZiwgcGF5bG9hZF9kYXRhLCBl
bmQsIGJpbmFyeSk6Ci0gICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIGZyYW1lX3R5cGUg
PSBjb21tb24uT1BDT0RFX0JJTkFSWQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnJhbWVf
dHlwZSA9IGNvbW1vbi5PUENPREVfVEVYVAotICAgICAgICBpZiBzZWxmLl9zdGFydGVkOgotICAg
ICAgICAgICAgaWYgc2VsZi5fb3Bjb2RlICE9IGZyYW1lX3R5cGU6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignTWVzc2FnZSB0eXBlcyBhcmUgZGlmZmVyZW50IGluIGZyYW1lcyBm
b3IgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBzYW1lIG1lc3NhZ2Un
KQotICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04KLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIG9wY29kZSA9IGZyYW1lX3R5cGUKLSAgICAgICAgICAgIHNl
bGYuX29wY29kZSA9IGZyYW1lX3R5cGUKLQotICAgICAgICBpZiBlbmQ6Ci0gICAgICAgICAgICBz
ZWxmLl9zdGFydGVkID0gRmFsc2UKLSAgICAgICAgICAgIGZpbiA9IDEKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHNlbGYuX3N0YXJ0ZWQgPSBUcnVlCi0gICAgICAgICAgICBmaW4gPSAwCi0K
LSAgICAgICAgaWYgYmluYXJ5IG9yIG5vdCBzZWxmLl9lbmNvZGVfdXRmODoKLSAgICAgICAgICAg
IHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAotICAgICAgICAgICAgICAgIHBheWxvYWRfZGF0
YSwgb3Bjb2RlLCBmaW4sIHNlbGYuX21hc2ssIHNlbGYuX2ZyYW1lX2ZpbHRlcnMpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlX3RleHRfZnJhbWUoCi0gICAgICAgICAg
ICAgICAgcGF5bG9hZF9kYXRhLCBvcGNvZGUsIGZpbiwgc2VsZi5fbWFzaywgc2VsZi5fZnJhbWVf
ZmlsdGVycykKLQotCi1kZWYgX2NyZWF0ZV9jb250cm9sX2ZyYW1lKG9wY29kZSwgYm9keSwgbWFz
aywgZnJhbWVfZmlsdGVycyk6Ci0gICAgZnJhbWUgPSBGcmFtZShvcGNvZGU9b3Bjb2RlLCBwYXls
b2FkPWJvZHkpCi0KLSAgICBmb3IgZnJhbWVfZmlsdGVyIGluIGZyYW1lX2ZpbHRlcnM6Ci0gICAg
ICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCi0KLSAgICBpZiBsZW4oZnJhbWUucGF5bG9h
ZCkgPiAxMjU6Ci0gICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICdQYXlsb2FkIGRhdGEgc2l6ZSBvZiBjb250cm9sIGZyYW1lcyBtdXN0IGJlIDEyNSBieXRl
cyBvciBsZXNzJykKLQotICAgIGhlYWRlciA9IGNyZWF0ZV9oZWFkZXIoCi0gICAgICAgIGZyYW1l
Lm9wY29kZSwgbGVuKGZyYW1lLnBheWxvYWQpLCBmcmFtZS5maW4sCi0gICAgICAgIGZyYW1lLnJz
djEsIGZyYW1lLnJzdjIsIGZyYW1lLnJzdjMsIG1hc2spCi0gICAgcmV0dXJuIF9idWlsZF9mcmFt
ZShoZWFkZXIsIGZyYW1lLnBheWxvYWQsIG1hc2spCi0KLQotZGVmIGNyZWF0ZV9waW5nX2ZyYW1l
KGJvZHksIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9W10pOgotICAgIHJldHVybiBfY3JlYXRl
X2NvbnRyb2xfZnJhbWUoY29tbW9uLk9QQ09ERV9QSU5HLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0
ZXJzKQotCi0KLWRlZiBjcmVhdGVfcG9uZ19mcmFtZShib2R5LCBtYXNrPUZhbHNlLCBmcmFtZV9m
aWx0ZXJzPVtdKToKLSAgICByZXR1cm4gX2NyZWF0ZV9jb250cm9sX2ZyYW1lKGNvbW1vbi5PUENP
REVfUE9ORywgYm9keSwgbWFzaywgZnJhbWVfZmlsdGVycykKLQotCi1kZWYgY3JlYXRlX2Nsb3Nl
X2ZyYW1lKGJvZHksIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9W10pOgotICAgIHJldHVybiBf
Y3JlYXRlX2NvbnRyb2xfZnJhbWUoCi0gICAgICAgIGNvbW1vbi5PUENPREVfQ0xPU0UsIGJvZHks
IG1hc2ssIGZyYW1lX2ZpbHRlcnMpCi0KLQotZGVmIGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9i
b2R5KGNvZGUsIHJlYXNvbik6Ci0gICAgYm9keSA9ICcnCi0gICAgaWYgY29kZSBpcyBub3QgTm9u
ZToKLSAgICAgICAgaWYgKGNvZGUgPiBjb21tb24uU1RBVFVTX1VTRVJfUFJJVkFURV9NQVggb3IK
LSAgICAgICAgICAgIGNvZGUgPCBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFKToKLSAgICAg
ICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbignU3RhdHVzIGNvZGUgaXMgb3V0IG9m
IHJhbmdlJykKLSAgICAgICAgaWYgKGNvZGUgPT0gY29tbW9uLlNUQVRVU19OT19TVEFUVVNfUkVD
RUlWRUQgb3IKLSAgICAgICAgICAgIGNvZGUgPT0gY29tbW9uLlNUQVRVU19BQk5PUk1BTF9DTE9T
VVJFIG9yCi0gICAgICAgICAgICBjb2RlID09IGNvbW1vbi5TVEFUVVNfVExTX0hBTkRTSEFLRSk6
Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oJ1N0YXR1cyBjb2RlIGlz
IHJlc2VydmVkIHBzZXVkbyAnCi0gICAgICAgICAgICAgICAgJ2NvZGUnKQotICAgICAgICBlbmNv
ZGVkX3JlYXNvbiA9IHJlYXNvbi5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgYm9keSA9IHN0cnVj
dC5wYWNrKCchSCcsIGNvZGUpICsgZW5jb2RlZF9yZWFzb24KLSAgICByZXR1cm4gYm9keQotCi0K
LWNsYXNzIFN0cmVhbU9wdGlvbnMob2JqZWN0KToKLSAgICAiIiJIb2xkcyBvcHRpb24gdmFsdWVz
IHRvIGNvbmZpZ3VyZSBTdHJlYW0gb2JqZWN0cy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBTdHJlYW1PcHRpb25zLiIiIgotCi0gICAgICAgICMg
RmlsdGVycyBhcHBsaWVkIHRvIGZyYW1lcy4KLSAgICAgICAgc2VsZi5vdXRnb2luZ19mcmFtZV9m
aWx0ZXJzID0gW10KLSAgICAgICAgc2VsZi5pbmNvbWluZ19mcmFtZV9maWx0ZXJzID0gW10KLQot
ICAgICAgICAjIEZpbHRlcnMgYXBwbGllZCB0byBtZXNzYWdlcy4gQ29udHJvbCBmcmFtZXMgYXJl
IG5vdCBhZmZlY3RlZCBieSB0aGVtLgotICAgICAgICBzZWxmLm91dGdvaW5nX21lc3NhZ2VfZmls
dGVycyA9IFtdCi0gICAgICAgIHNlbGYuaW5jb21pbmdfbWVzc2FnZV9maWx0ZXJzID0gW10KLQot
ICAgICAgICBzZWxmLmVuY29kZV90ZXh0X21lc3NhZ2VfdG9fdXRmOCA9IFRydWUKLSAgICAgICAg
c2VsZi5tYXNrX3NlbmQgPSBGYWxzZQotICAgICAgICBzZWxmLnVubWFza19yZWNlaXZlID0gVHJ1
ZQotCi0KLWNsYXNzIFN0cmVhbShTdHJlYW1CYXNlKToKLSAgICAiIiJBIGNsYXNzIGZvciBwYXJz
aW5nL2J1aWxkaW5nIGZyYW1lcyBvZiB0aGUgV2ViU29ja2V0IHByb3RvY29sCi0gICAgKFJGQyA2
NDU1KS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBvcHRpb25z
KToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAiIiIKLQot
ICAgICAgICBTdHJlYW1CYXNlLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0KLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5f
b3B0aW9ucyA9IG9wdGlvbnMKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5h
dGVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IEZh
bHNlCi0KLSAgICAgICAgIyBIb2xkcyBib2R5IG9mIHJlY2VpdmVkIGZyYWdtZW50cy4KLSAgICAg
ICAgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzID0gW10KLSAgICAgICAgIyBIb2xkcyB0aGUgb3Bj
b2RlIG9mIHRoZSBmaXJzdCBmcmFnbWVudC4KLSAgICAgICAgc2VsZi5fb3JpZ2luYWxfb3Bjb2Rl
ID0gTm9uZQotCi0gICAgICAgIHNlbGYuX3dyaXRlciA9IEZyYWdtZW50ZWRGcmFtZUJ1aWxkZXIo
Ci0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLm1hc2tfc2VuZCwgc2VsZi5fb3B0aW9ucy5vdXRn
b2luZ19mcmFtZV9maWx0ZXJzLAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5lbmNvZGVfdGV4
dF9tZXNzYWdlX3RvX3V0ZjgpCi0KLSAgICAgICAgc2VsZi5fcGluZ19xdWV1ZSA9IGRlcXVlKCkK
LQotICAgIGRlZiBfcmVjZWl2ZV9mcmFtZShzZWxmKToKLSAgICAgICAgIiIiUmVjZWl2ZXMgYSBm
cmFtZSBhbmQgcmV0dXJuIGRhdGEgaW4gdGhlIGZyYW1lIGFzIGEgdHVwbGUgY29udGFpbmluZwot
ICAgICAgICBlYWNoIGhlYWRlciBmaWVsZCBhbmQgcGF5bG9hZCBzZXBhcmF0ZWx5LgotCi0gICAg
ICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3
aGVuIHJlYWQgcmV0dXJucyBlbXB0eQotICAgICAgICAgICAgICAgIHN0cmluZy4KLSAgICAgICAg
ICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUgZnJhbWUgY29udGFpbnMgaW52YWxp
ZCBkYXRhLgotICAgICAgICAiIiIKLQotICAgICAgICBkZWYgX3JlY2VpdmVfYnl0ZXMobGVuZ3Ro
KToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlY2VpdmVfYnl0ZXMobGVuZ3RoKQotCi0gICAg
ICAgIHJldHVybiBwYXJzZV9mcmFtZShyZWNlaXZlX2J5dGVzPV9yZWNlaXZlX2J5dGVzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyPXNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdzX3ZlcnNpb249c2VsZi5fcmVxdWVzdC53c192ZXJzaW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5tYXNrX3JlY2VpdmU9c2VsZi5fb3B0aW9ucy51bm1h
c2tfcmVjZWl2ZSkKLQotICAgIGRlZiBfcmVjZWl2ZV9mcmFtZV9hc19mcmFtZV9vYmplY3Qoc2Vs
Zik6Ci0gICAgICAgIG9wY29kZSwgdW5tYXNrZWRfYnl0ZXMsIGZpbiwgcnN2MSwgcnN2MiwgcnN2
MyA9IHNlbGYuX3JlY2VpdmVfZnJhbWUoKQotCi0gICAgICAgIHJldHVybiBGcmFtZShmaW49Zmlu
LCByc3YxPXJzdjEsIHJzdjI9cnN2MiwgcnN2Mz1yc3YzLAotICAgICAgICAgICAgICAgICAgICAg
b3Bjb2RlPW9wY29kZSwgcGF5bG9hZD11bm1hc2tlZF9ieXRlcykKLQotICAgIGRlZiByZWNlaXZl
X2ZpbHRlcmVkX2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJSZWNlaXZlcyBhIGZyYW1lIGFuZCBh
cHBsaWVzIGZyYW1lIGZpbHRlcnMgYW5kIG1lc3NhZ2UgZmlsdGVycy4KLSAgICAgICAgVGhlIGZy
YW1lIHRvIGJlIHJlY2VpdmVkIG11c3Qgc2F0aXNmeSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAg
ICAgICAgLSBUaGUgZnJhbWUgaXMgbm90IGZyYWdtZW50ZWQuCi0gICAgICAgIC0gVGhlIG9wY29k
ZSBvZiB0aGUgZnJhbWUgaXMgVEVYVCBvciBCSU5BUlkuCi0KLSAgICAgICAgRE8gTk9UIFVTRSB0
aGlzIG1ldGhvZCBleGNlcHQgZm9yIHRlc3RpbmcgcHVycG9zZS4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgZnJhbWUgPSBzZWxmLl9yZWNlaXZlX2ZyYW1lX2FzX2ZyYW1lX29iamVjdCgpCi0gICAg
ICAgIGlmIG5vdCBmcmFtZS5maW46Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgJ1NlZ21lbnRlZCBmcmFtZXMgbXVzdCBub3QgYmUgcmVj
ZWl2ZWQgdmlhICcKLSAgICAgICAgICAgICAgICAncmVjZWl2ZV9maWx0ZXJlZF9mcmFtZSgpJykK
LSAgICAgICAgaWYgKGZyYW1lLm9wY29kZSAhPSBjb21tb24uT1BDT0RFX1RFWFQgYW5kCi0gICAg
ICAgICAgICBmcmFtZS5vcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9CSU5BUlkpOgotICAgICAgICAg
ICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdDb250cm9s
IGZyYW1lcyBtdXN0IG5vdCBiZSByZWNlaXZlZCB2aWEgJwotICAgICAgICAgICAgICAgICdyZWNl
aXZlX2ZpbHRlcmVkX2ZyYW1lKCknKQotCi0gICAgICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gc2Vs
Zi5fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJzOgotICAgICAgICAgICAgZnJhbWVfZmls
dGVyLmZpbHRlcihmcmFtZSkKLSAgICAgICAgZm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYuX29w
dGlvbnMuaW5jb21pbmdfbWVzc2FnZV9maWx0ZXJzOgotICAgICAgICAgICAgZnJhbWUucGF5bG9h
ZCA9IG1lc3NhZ2VfZmlsdGVyLmZpbHRlcihmcmFtZS5wYXlsb2FkKQotICAgICAgICByZXR1cm4g
ZnJhbWUKLQotICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJp
bmFyeT1GYWxzZSk6Ci0gICAgICAgICIiIlNlbmQgbWVzc2FnZS4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgbWVzc2FnZTogdGV4dCBpbiB1bmljb2RlIG9yIGJpbmFyeSBpbiBzdHIgdG8g
c2VuZC4KLSAgICAgICAgICAgIGJpbmFyeTogc2VuZCBtZXNzYWdlIGFzIGJpbmFyeSBmcmFtZS4K
LQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdo
ZW4gY2FsbGVkIG9uIGEgc2VydmVyLXRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICBjb25uZWN0
aW9uIG9yIGNhbGxlZCB3aXRoIGluY29uc2lzdGVudCBtZXNzYWdlIHR5cGUgb3IKLSAgICAgICAg
ICAgICAgICBiaW5hcnkgcGFyYW1ldGVyLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBzZWxm
Ll9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0
aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgc2VuZF9tZXNzYWdlIGFm
dGVyIHNlbmRpbmcgb3V0IGEgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgIGlmIGJpbmFy
eSBhbmQgaXNpbnN0YW5jZShtZXNzYWdlLCB1bmljb2RlKToKLSAgICAgICAgICAgIHJhaXNlIEJh
ZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTWVzc2FnZSBmb3IgYmluYXJ5
IGZyYW1lIG11c3QgYmUgaW5zdGFuY2Ugb2Ygc3RyJykKLQotICAgICAgICBmb3IgbWVzc2FnZV9m
aWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5vdXRnb2luZ19tZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAg
ICAgICBtZXNzYWdlID0gbWVzc2FnZV9maWx0ZXIuZmlsdGVyKG1lc3NhZ2UsIGVuZCwgYmluYXJ5
KQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgU2V0IHRoaXMgdG8gYW55IHBvc2l0aXZl
IGludGVnZXIgdG8gbGltaXQgbWF4aW11bSBzaXplIG9mIGRhdGEgaW4KLSAgICAgICAgICAgICMg
cGF5bG9hZCBkYXRhIG9mIGVhY2ggZnJhbWUuCi0gICAgICAgICAgICBNQVhfUEFZTE9BRF9EQVRB
X1NJWkUgPSAtMQotCi0gICAgICAgICAgICBpZiBNQVhfUEFZTE9BRF9EQVRBX1NJWkUgPD0gMDoK
LSAgICAgICAgICAgICAgICBzZWxmLl93cml0ZShzZWxmLl93cml0ZXIuYnVpbGQobWVzc2FnZSwg
ZW5kLCBiaW5hcnkpKQotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICBieXRl
c193cml0dGVuID0gMAotICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICBl
bmRfZm9yX3RoaXNfZnJhbWUgPSBlbmQKLSAgICAgICAgICAgICAgICBieXRlc190b193cml0ZSA9
IGxlbihtZXNzYWdlKSAtIGJ5dGVzX3dyaXR0ZW4KLSAgICAgICAgICAgICAgICBpZiAoTUFYX1BB
WUxPQURfREFUQV9TSVpFID4gMCBhbmQKLSAgICAgICAgICAgICAgICAgICAgYnl0ZXNfdG9fd3Jp
dGUgPiBNQVhfUEFZTE9BRF9EQVRBX1NJWkUpOgotICAgICAgICAgICAgICAgICAgICBlbmRfZm9y
X3RoaXNfZnJhbWUgPSBGYWxzZQotICAgICAgICAgICAgICAgICAgICBieXRlc190b193cml0ZSA9
IE1BWF9QQVlMT0FEX0RBVEFfU0laRQotCi0gICAgICAgICAgICAgICAgZnJhbWUgPSBzZWxmLl93
cml0ZXIuYnVpbGQoCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VbYnl0ZXNfd3JpdHRlbjpi
eXRlc193cml0dGVuICsgYnl0ZXNfdG9fd3JpdGVdLAotICAgICAgICAgICAgICAgICAgICBlbmRf
Zm9yX3RoaXNfZnJhbWUsCi0gICAgICAgICAgICAgICAgICAgIGJpbmFyeSkKLSAgICAgICAgICAg
ICAgICBzZWxmLl93cml0ZShmcmFtZSkKLQotICAgICAgICAgICAgICAgIGJ5dGVzX3dyaXR0ZW4g
Kz0gYnl0ZXNfdG9fd3JpdGUKLQotICAgICAgICAgICAgICAgICMgVGhpcyBpZiBtdXN0IGJlIHBs
YWNlZCBoZXJlICh0aGUgZW5kIG9mIHdoaWxlIGJsb2NrKSBzbyB0aGF0Ci0gICAgICAgICAgICAg
ICAgIyBhdCBsZWFzdCBvbmUgZnJhbWUgaXMgc2VudC4KLSAgICAgICAgICAgICAgICBpZiBsZW4o
bWVzc2FnZSkgPD0gYnl0ZXNfd3JpdHRlbjoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAg
ICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRp
b25FeGNlcHRpb24oZSkKLQotICAgIGRlZiBfZ2V0X21lc3NhZ2VfZnJvbV9mcmFtZShzZWxmLCBm
cmFtZSk6Ci0gICAgICAgICIiIkdldHMgYSBtZXNzYWdlIGZyb20gZnJhbWUuIElmIHRoZSBtZXNz
YWdlIGlzIGNvbXBvc2VkIG9mIGZyYWdtZW50ZWQKLSAgICAgICAgZnJhbWVzIGFuZCB0aGUgZnJh
bWUgaXMgbm90IHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUsIHRoaXMgbWV0aG9kCi0gICAgICAg
IHJldHVybnMgTm9uZS4gVGhlIHdob2xlIG1lc3NhZ2Ugd2lsbCBiZSByZXR1cm5lZCB3aGVuIHRo
ZSBsYXN0Ci0gICAgICAgIGZyYWdtZW50ZWQgZnJhbWUgaXMgcGFzc2VkIHRvIHRoaXMgbWV0aG9k
LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjog
d2hlbiB0aGUgZnJhbWUgZG9lc24ndCBtYXRjaCBkZWZyYWdtZW50YXRpb24KLSAgICAgICAgICAg
ICAgICBjb250ZXh0LCBvciB0aGUgZnJhbWUgY29udGFpbnMgaW52YWxpZCBkYXRhLgotICAgICAg
ICAiIiIKLQotICAgICAgICBpZiBmcmFtZS5vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9DT05USU5V
QVRJT046Ci0gICAgICAgICAgICBpZiBub3Qgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzOgotICAg
ICAgICAgICAgICAgIGlmIGZyYW1lLmZpbjoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52
YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGEg
dGVybWluYXRpb24gZnJhbWUgYnV0IGZyYWdtZW50YXRpb24gJwotICAgICAgICAgICAgICAgICAg
ICAgICAgJ25vdCBzdGFydGVkJykKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAg
ICAgICAnUmVjZWl2ZWQgYW4gaW50ZXJtZWRpYXRlIGZyYW1lIGJ1dCAnCi0gICAgICAgICAgICAg
ICAgICAgICAgICAnZnJhZ21lbnRhdGlvbiBub3Qgc3RhcnRlZCcpCi0KLSAgICAgICAgICAgIGlm
IGZyYW1lLmZpbjoKLSAgICAgICAgICAgICAgICAjIEVuZCBvZiBmcmFnbWVudGF0aW9uIGZyYW1l
Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5w
YXlsb2FkKQotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnJy5qb2luKHNlbGYuX3JlY2VpdmVk
X2ZyYWdtZW50cykKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMgPSBb
XQotICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgICMgSW50ZXJtZWRpYXRlIGZyYW1lCi0gICAgICAgICAgICAgICAgc2VsZi5f
cmVjZWl2ZWRfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAgICAgICAgICAgICAg
IHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBzZWxmLl9yZWNlaXZl
ZF9mcmFnbWVudHM6Ci0gICAgICAgICAgICAgICAgaWYgZnJhbWUuZmluOgotICAgICAgICAgICAg
ICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAg
ICAgICAnUmVjZWl2ZWQgYW4gdW5mcmFnbWVudGVkIGZyYW1lIHdpdGhvdXQgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgJ3Rlcm1pbmF0aW5nIGV4aXN0aW5nIGZyYWdtZW50YXRpb24nKQotICAg
ICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFt
ZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdOZXcgZnJhZ21lbnRhdGlvbiBz
dGFydGVkIHdpdGhvdXQgdGVybWluYXRpbmcgJwotICAgICAgICAgICAgICAgICAgICAgICAgJ2V4
aXN0aW5nIGZyYWdtZW50YXRpb24nKQotCi0gICAgICAgICAgICBpZiBmcmFtZS5maW46Ci0gICAg
ICAgICAgICAgICAgIyBVbmZyYWdtZW50ZWQgZnJhbWUKLQotICAgICAgICAgICAgICAgIHNlbGYu
X29yaWdpbmFsX29wY29kZSA9IGZyYW1lLm9wY29kZQotICAgICAgICAgICAgICAgIHJldHVybiBm
cmFtZS5wYXlsb2FkCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgU3RhcnQg
b2YgZnJhZ21lbnRhdGlvbiBmcmFtZQotCi0gICAgICAgICAgICAgICAgaWYgY29tbW9uLmlzX2Nv
bnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIElu
dmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdDb250cm9sIGZy
YW1lcyBtdXN0IG5vdCBiZSBmcmFnbWVudGVkJykKLQotICAgICAgICAgICAgICAgIHNlbGYuX29y
aWdpbmFsX29wY29kZSA9IGZyYW1lLm9wY29kZQotICAgICAgICAgICAgICAgIHNlbGYuX3JlY2Vp
dmVkX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgICAgICAgICByZXR1
cm4gTm9uZQotCi0gICAgZGVmIF9wcm9jZXNzX2Nsb3NlX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6
Ci0gICAgICAgICIiIlByb2Nlc3NlcyBjbG9zZSBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgICBtZXNzYWdlOiBjbG9zZSBtZXNzYWdlLgotCi0gICAgICAgIFJhaXNlczoKLSAg
ICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUgbWVzc2FnZSBpcyBpbnZh
bGlkLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5h
dGVkID0gVHJ1ZQotCi0gICAgICAgICMgU3RhdHVzIGNvZGUgaXMgb3B0aW9uYWwuIFdlIGNhbiBo
YXZlIHN0YXR1cyByZWFzb24gb25seSBpZiB3ZQotICAgICAgICAjIGhhdmUgc3RhdHVzIGNvZGUu
IFN0YXR1cyByZWFzb24gY2FuIGJlIGVtcHR5IHN0cmluZy4gU28sCi0gICAgICAgICMgYWxsb3dl
ZCBjYXNlcyBhcmUKLSAgICAgICAgIyAtIG5vIGFwcGxpY2F0aW9uIGRhdGE6IG5vIGNvZGUgbm8g
cmVhc29uCi0gICAgICAgICMgLSAyIG9jdGV0IG9mIGFwcGxpY2F0aW9uIGRhdGE6IGhhcyBjb2Rl
IGJ1dCBubyByZWFzb24KLSAgICAgICAgIyAtIDMgb3IgbW9yZSBvY3RldCBvZiBhcHBsaWNhdGlv
biBkYXRhOiBib3RoIGNvZGUgYW5kIHJlYXNvbgotICAgICAgICBpZiBsZW4obWVzc2FnZSkgPT0g
MDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgY2xvc2UgZnJhbWUg
KGVtcHR5IGJvZHkpJykKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSA9
ICgKLSAgICAgICAgICAgICAgICBjb21tb24uU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCkKLSAg
ICAgICAgZWxpZiBsZW4obWVzc2FnZSkgPT0gMToKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRG
cmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSWYgYSBjbG9zZSBmcmFtZSBoYXMgc3Rh
dHVzIGNvZGUsIHRoZSBsZW5ndGggb2YgJwotICAgICAgICAgICAgICAgICdzdGF0dXMgY29kZSBt
dXN0IGJlIDIgb2N0ZXQnKQotICAgICAgICBlbGlmIGxlbihtZXNzYWdlKSA+PSAyOgotICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9jb2RlID0gc3RydWN0LnVucGFjaygKLSAgICAg
ICAgICAgICAgICAnIUgnLCBtZXNzYWdlWzA6Ml0pWzBdCi0gICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LndzX2Nsb3NlX3JlYXNvbiA9IG1lc3NhZ2VbMjpdLmRlY29kZSgKLSAgICAgICAgICAgICAg
ICAndXRmLTgnLCAncmVwbGFjZScpCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0g
ICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGNsb3NlIGZyYW1lIChjb2RlPSVkLCByZWFzb249JXIp
JywKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX2NvZGUsCi0gICAgICAg
ICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9yZWFzb24pCi0KLSAgICAgICAgIyBBcyB3
ZSd2ZSByZWNlaXZlZCBhIGNsb3NlIGZyYW1lLCBubyBtb3JlIGRhdGEgaXMgY29taW5nIG92ZXIg
dGhlCi0gICAgICAgICMgc29ja2V0LiBXZSBjYW4gbm93IHNhZmVseSBjbG9zZSB0aGUgc29ja2V0
IHdpdGhvdXQgd29ycnlpbmcgYWJvdXQKLSAgICAgICAgIyBSU1Qgc2VuZGluZy4KLQotICAgICAg
ICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICdSZWNlaXZlZCBhY2sgZm9yIHNlcnZlci1p
bml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ1JlY2VpdmVkIGNsaWVudC1pbml0
aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgIGNvZGUgPSBjb21tb24uU1RBVFVT
X05PUk1BTF9DTE9TVVJFCi0gICAgICAgIHJlYXNvbiA9ICcnCi0gICAgICAgIGlmIGhhc2F0dHIo
c2VsZi5fcmVxdWVzdCwgJ19kaXNwYXRjaGVyJyk6Ci0gICAgICAgICAgICBkaXNwYXRjaGVyID0g
c2VsZi5fcmVxdWVzdC5fZGlzcGF0Y2hlcgotICAgICAgICAgICAgY29kZSwgcmVhc29uID0gZGlz
cGF0Y2hlci5wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlKAotICAgICAgICAgICAgICAgIHNlbGYu
X3JlcXVlc3QpCi0gICAgICAgICAgICBpZiBjb2RlIGlzIE5vbmUgYW5kIHJlYXNvbiBpcyBub3Qg
Tm9uZSBhbmQgbGVuKHJlYXNvbikgPiAwOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci53
YXJuaW5nKAotICAgICAgICAgICAgICAgICAgICAnSGFuZGxlciBzcGVjaWZpZWQgcmVhc29uIGRl
c3BpdGUgY29kZSBiZWluZyBOb25lJykKLSAgICAgICAgICAgICAgICByZWFzb24gPSAnJwotICAg
ICAgICAgICAgaWYgcmVhc29uIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgcmVhc29uID0gJycK
LSAgICAgICAgc2VsZi5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShjb2RlLCByZWFzb24pCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdBY2tub3dsZWRnZWQgY2xvc2lu
ZyBoYW5kc2hha2UgaW5pdGlhdGVkIGJ5IHRoZSBwZWVyICcKLSAgICAgICAgICAgICcoY29kZT0l
ciwgcmVhc29uPSVyKScsIGNvZGUsIHJlYXNvbikKLQotICAgIGRlZiBfcHJvY2Vzc19waW5nX21l
c3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIlByb2Nlc3NlcyBwaW5nIG1lc3NhZ2Uu
Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6IHBpbmcgbWVzc2FnZS4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaGFuZGxlciA9IHNlbGYuX3Jl
cXVlc3Qub25fcGluZ19oYW5kbGVyCi0gICAgICAgICAgICBpZiBoYW5kbGVyOgotICAgICAgICAg
ICAgICAgIGhhbmRsZXIoc2VsZi5fcmVxdWVzdCwgbWVzc2FnZSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4KLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yLCBlOgotICAgICAgICAgICAgcGFz
cwotICAgICAgICBzZWxmLl9zZW5kX3BvbmcobWVzc2FnZSkKLQotICAgIGRlZiBfcHJvY2Vzc19w
b25nX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIlByb2Nlc3NlcyBwb25nIG1l
c3NhZ2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6IHBvbmcgbWVzc2Fn
ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogQWRkIHBpbmcgdGlt
ZW91dCBoYW5kbGluZy4KLQotICAgICAgICBpbmZsaWdodF9waW5ncyA9IGRlcXVlKCkKLQotICAg
ICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGV4cGVj
dGVkX2JvZHkgPSBzZWxmLl9waW5nX3F1ZXVlLnBvcGxlZnQoKQotICAgICAgICAgICAgICAgIGlm
IGV4cGVjdGVkX2JvZHkgPT0gbWVzc2FnZToKLSAgICAgICAgICAgICAgICAgICAgIyBpbmZsaWdo
dF9waW5ncyBjb250YWlucyBwaW5ncyBpZ25vcmVkIGJ5IHRoZQotICAgICAgICAgICAgICAgICAg
ICAjIG90aGVyIHBlZXIuIEp1c3QgZm9yZ2V0IHRoZW0uCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICdQaW5nICVyIGlzIGFj
a2VkICglZCBwaW5ncyB3ZXJlIGlnbm9yZWQpJywKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4
cGVjdGVkX2JvZHksIGxlbihpbmZsaWdodF9waW5ncykpCi0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgaW5mbGlnaHRf
cGluZ3MuYXBwZW5kKGV4cGVjdGVkX2JvZHkpCi0gICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJv
ciwgZToKLSAgICAgICAgICAgICAgICAjIFRoZSByZWNlaXZlZCBwb25nIHdhcyB1bnNvbGljaXRl
ZCBwb25nLiBLZWVwIHRoZQotICAgICAgICAgICAgICAgICMgcGluZyBxdWV1ZSBhcyBpcy4KLSAg
ICAgICAgICAgICAgICBzZWxmLl9waW5nX3F1ZXVlID0gaW5mbGlnaHRfcGluZ3MKLSAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkIGEgdW5zb2xpY2l0ZWQgcG9uZycp
Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5k
bGVyID0gc2VsZi5fcmVxdWVzdC5vbl9wb25nX2hhbmRsZXIKLSAgICAgICAgICAgIGlmIGhhbmRs
ZXI6Ci0gICAgICAgICAgICAgICAgaGFuZGxlcihzZWxmLl9yZXF1ZXN0LCBtZXNzYWdlKQotICAg
ICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3IsIGU6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICBk
ZWYgcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICAiIiJSZWNlaXZlIGEgV2ViU29ja2V0
IGZyYW1lIGFuZCByZXR1cm4gaXRzIHBheWxvYWQgYXMgYSB0ZXh0IGluCi0gICAgICAgIHVuaWNv
ZGUgb3IgYSBiaW5hcnkgaW4gc3RyLgotCi0gICAgICAgIFJldHVybnM6Ci0gICAgICAgICAgICBw
YXlsb2FkIGRhdGEgb2YgdGhlIGZyYW1lCi0gICAgICAgICAgICAtIGFzIHVuaWNvZGUgaW5zdGFu
Y2UgaWYgcmVjZWl2ZWQgdGV4dCBmcmFtZQotICAgICAgICAgICAgLSBhcyBzdHIgaW5zdGFuY2Ug
aWYgcmVjZWl2ZWQgYmluYXJ5IGZyYW1lCi0gICAgICAgICAgICBvciBOb25lIGlmZiByZWNlaXZl
ZCBjbG9zaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBvbiBhIGNsaWVudC10ZXJtaW5hdGVkCi0gICAg
ICAgICAgICAgICAgY29ubmVjdGlvbi4KLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVk
RXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eQotICAgICAgICAgICAgICAgIHN0cmlu
Zy4KLSAgICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUgZnJhbWUgY29u
dGFpbnMgaW52YWxpZAotICAgICAgICAgICAgICAgIGRhdGEuCi0gICAgICAgICAgICBVbnN1cHBv
cnRlZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSByZWNlaXZlZCBmcmFtZSBoYXMKLSAgICAgICAg
ICAgICAgICBmbGFncywgb3Bjb2RlIHdlIGNhbm5vdCBoYW5kbGUuIFlvdSBjYW4gaWdub3JlIHRo
aXMKLSAgICAgICAgICAgICAgICBleGNlcHRpb24gYW5kIGNvbnRpbnVlIHJlY2VpdmluZyB0aGUg
bmV4dCBmcmFtZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5jbGll
bnRfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIHJlY2VpdmVfbWVzc2FnZSBhZnRlciByZWNlaXZp
bmcgYSBjbG9zaW5nICcKLSAgICAgICAgICAgICAgICAnaGFuZHNoYWtlJykKLQotICAgICAgICB3
aGlsZSBUcnVlOgotICAgICAgICAgICAgIyBtcF9jb25uLnJlYWQgd2lsbCBibG9jayBpZiBubyBi
eXRlcyBhcmUgYXZhaWxhYmxlLgotICAgICAgICAgICAgIyBUaW1lb3V0IGlzIGNvbnRyb2xsZWQg
YnkgVGltZU91dCBkaXJlY3RpdmUgb2YgQXBhY2hlLgotCi0gICAgICAgICAgICBmcmFtZSA9IHNl
bGYuX3JlY2VpdmVfZnJhbWVfYXNfZnJhbWVfb2JqZWN0KCkKLQotICAgICAgICAgICAgIyBDaGVj
ayB0aGUgY29uc3RyYWludCBvbiB0aGUgcGF5bG9hZCBzaXplIGZvciBjb250cm9sIGZyYW1lcwot
ICAgICAgICAgICAgIyBiZWZvcmUgZXh0ZW5zaW9uIHByb2Nlc3NlcyB0aGUgZnJhbWUuCi0gICAg
ICAgICAgICAjIFNlZSBhbHNvIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUjc2Vj
dGlvbi01LjUKLSAgICAgICAgICAgIGlmIChjb21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUu
b3Bjb2RlKSBhbmQKLSAgICAgICAgICAgICAgICBsZW4oZnJhbWUucGF5bG9hZCkgPiAxMjUpOgot
ICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAgICAgJ1BheWxvYWQgZGF0YSBzaXplIG9mIGNvbnRyb2wgZnJhbWVzIG11c3QgYmUgMTI1
IGJ5dGVzIG9yICcKLSAgICAgICAgICAgICAgICAgICAgJ2xlc3MnKQotCi0gICAgICAgICAgICBm
b3IgZnJhbWVfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMuaW5jb21pbmdfZnJhbWVfZmlsdGVyczoK
LSAgICAgICAgICAgICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZyYW1lKQotCi0gICAgICAgICAg
ICBpZiBmcmFtZS5yc3YxIG9yIGZyYW1lLnJzdjIgb3IgZnJhbWUucnN2MzoKLSAgICAgICAgICAg
ICAgICByYWlzZSBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAg
ICAnVW5zdXBwb3J0ZWQgZmxhZyBpcyBzZXQgKHJzdiA9ICVkJWQlZCknICUKLSAgICAgICAgICAg
ICAgICAgICAgKGZyYW1lLnJzdjEsIGZyYW1lLnJzdjIsIGZyYW1lLnJzdjMpKQotCi0gICAgICAg
ICAgICBtZXNzYWdlID0gc2VsZi5fZ2V0X21lc3NhZ2VfZnJvbV9mcmFtZShmcmFtZSkKLSAgICAg
ICAgICAgIGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotCi0g
ICAgICAgICAgICBmb3IgbWVzc2FnZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5pbmNvbWluZ19t
ZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VfZmlsdGVy
LmZpbHRlcihtZXNzYWdlKQotCi0gICAgICAgICAgICBpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUg
PT0gY29tbW9uLk9QQ09ERV9URVhUOgotICAgICAgICAgICAgICAgICMgVGhlIFdlYlNvY2tldCBw
cm90b2NvbCBzZWN0aW9uIDQuNCBzcGVjaWZpZXMgdGhhdCBpbnZhbGlkCi0gICAgICAgICAgICAg
ICAgIyBjaGFyYWN0ZXJzIG11c3QgYmUgcmVwbGFjZWQgd2l0aCBVK2ZmZmQgUkVQTEFDRU1FTlQK
LSAgICAgICAgICAgICAgICAjIENIQVJBQ1RFUi4KLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlLmRlY29kZSgndXRmLTgnKQotICAgICAgICAg
ICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgICAg
IHJhaXNlIEludmFsaWRVVEY4RXhjZXB0aW9uKGUpCi0gICAgICAgICAgICBlbGlmIHNlbGYuX29y
aWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RFX0JJTkFSWToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gbWVzc2FnZQotICAgICAgICAgICAgZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0g
Y29tbW9uLk9QQ09ERV9DTE9TRToKLSAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2Nsb3Nl
X21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAg
ICAgZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9QSU5HOgotICAg
ICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfcGluZ19tZXNzYWdlKG1lc3NhZ2UpCi0gICAgICAg
ICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RFX1BPTkc6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19wb25nX21lc3NhZ2UobWVzc2FnZSkKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVW5zdXBwb3J0ZWRGcmFtZUV4Y2Vw
dGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ09wY29kZSAlZCBpcyBub3Qgc3VwcG9ydGVkJyAl
IHNlbGYuX29yaWdpbmFsX29wY29kZSkKLQotICAgIGRlZiBfc2VuZF9jbG9zaW5nX2hhbmRzaGFr
ZShzZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAgICBib2R5ID0gY3JlYXRlX2Nsb3NpbmdfaGFu
ZHNoYWtlX2JvZHkoY29kZSwgcmVhc29uKQotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9jbG9zZV9m
cmFtZSgKLSAgICAgICAgICAgIGJvZHksIG1hc2s9c2VsZi5fb3B0aW9ucy5tYXNrX3NlbmQsCi0g
ICAgICAgICAgICBmcmFtZV9maWx0ZXJzPXNlbGYuX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmls
dGVycykKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQot
Ci0gICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQotCi0gICAgZGVmIGNsb3NlX2Nvbm5lY3Rpb24o
c2VsZiwgY29kZT1jb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249JycsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgd2FpdF9yZXNwb25zZT1UcnVlKToKLSAgICAgICAgIiIiQ2xv
c2VzIGEgV2ViU29ja2V0IGNvbm5lY3Rpb24uCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAg
IGNvZGU6IFN0YXR1cyBjb2RlIGZvciBjbG9zZSBmcmFtZS4gSWYgY29kZSBpcyBOb25lLCBhIGNs
b3NlCi0gICAgICAgICAgICAgICAgZnJhbWUgd2l0aCBlbXB0eSBib2R5IHdpbGwgYmUgc2VudC4K
LSAgICAgICAgICAgIHJlYXNvbjogc3RyaW5nIHJlcHJlc2VudGluZyBjbG9zZSByZWFzb24uCi0g
ICAgICAgICAgICB3YWl0X3Jlc3BvbnNlOiBUcnVlIHdoZW4gY2FsbGVyIHdhbnQgdG8gd2FpdCB0
aGUgcmVzcG9uc2UuCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4
Y2VwdGlvbjogd2hlbiByZWFzb24gaXMgc3BlY2lmaWVkIHdpdGggY29kZSBOb25lCi0gICAgICAg
ICAgICBvciByZWFzb24gaXMgbm90IGFuIGluc3RhbmNlIG9mIGJvdGggc3RyIGFuZCB1bmljb2Rl
LgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5h
dGVkOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICdS
ZXF1ZXN0ZWQgY2xvc2VfY29ubmVjdGlvbiBidXQgc2VydmVyIGlzIGFscmVhZHkgdGVybWluYXRl
ZCcpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBpZiBjb2RlIGlzIE5vbmU6Ci0gICAg
ICAgICAgICBpZiByZWFzb24gaXMgbm90IE5vbmUgYW5kIGxlbihyZWFzb24pID4gMDoKLSAgICAg
ICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
ICAgICdjbG9zZSByZWFzb24gbXVzdCBub3QgYmUgc3BlY2lmaWVkIGlmIGNvZGUgaXMgTm9uZScp
Ci0gICAgICAgICAgICByZWFzb24gPSAnJwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYg
bm90IGlzaW5zdGFuY2UocmVhc29uLCBzdHIpIGFuZCBub3QgaXNpbnN0YW5jZShyZWFzb24sIHVu
aWNvZGUpOgotICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAgICAgJ2Nsb3NlIHJlYXNvbiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHN0
ciBvciB1bmljb2RlJykKLQotICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKGNv
ZGUsIHJlYXNvbikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0lu
aXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZSAoY29kZT0lciwgcmVhc29uPSVyKScsCi0gICAgICAg
ICAgICBjb2RlLCByZWFzb24pCi0KLSAgICAgICAgaWYgKGNvZGUgPT0gY29tbW9uLlNUQVRVU19H
T0lOR19BV0FZIG9yCi0gICAgICAgICAgICBjb2RlID09IGNvbW1vbi5TVEFUVVNfUFJPVE9DT0xf
RVJST1IpIG9yIG5vdCB3YWl0X3Jlc3BvbnNlOgotICAgICAgICAgICAgIyBJdCBkb2Vzbid0IG1h
a2Ugc2Vuc2UgdG8gd2FpdCBmb3IgYSBjbG9zZSBmcmFtZSBpZiB0aGUgcmVhc29uIGlzCi0gICAg
ICAgICAgICAjIHByb3RvY29sIGVycm9yIG9yIHRoYXQgdGhlIHNlcnZlciBpcyBnb2luZyBhd2F5
LiBGb3Igc29tZSBvZgotICAgICAgICAgICAgIyBvdGhlciByZWFzb25zLCBpdCBtaWdodCBub3Qg
bWFrZSBzZW5zZSB0byB3YWl0IGZvciBhIGNsb3NlIGZyYW1lLAotICAgICAgICAgICAgIyBidXQg
aXQncyBub3QgY2xlYXIsIHlldC4KLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgVE9E
Tyh1a2FpKTogMi4gd2FpdCB1bnRpbCB0aGUgL2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFnIGhhcyBi
ZWVuIHNldCwKLSAgICAgICAgIyBvciB1bnRpbCBhIHNlcnZlci1kZWZpbmVkIHRpbWVvdXQgZXhw
aXJlcy4KLSAgICAgICAgIwotICAgICAgICAjIEZvciBub3csIHdlIGV4cGVjdCByZWNlaXZpbmcg
Y2xvc2luZyBoYW5kc2hha2UgcmlnaHQgYWZ0ZXIgc2VuZGluZwotICAgICAgICAjIG91dCBjbG9z
aW5nIGhhbmRzaGFrZS4KLSAgICAgICAgbWVzc2FnZSA9IHNlbGYucmVjZWl2ZV9tZXNzYWdlKCkK
LSAgICAgICAgaWYgbWVzc2FnZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdEaWRuXCd0IHJlY2Vp
dmUgdmFsaWQgYWNrIGZvciBjbG9zaW5nIGhhbmRzaGFrZScpCi0gICAgICAgICMgVE9ETzogMy4g
Y2xvc2UgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLgotICAgICAgICAjIG5vdGU6IG1vZF9weXRo
b24gQ29ubmVjdGlvbiAobXBfY29ubikgZG9lc24ndCBoYXZlIGNsb3NlIG1ldGhvZC4KLQotICAg
IGRlZiBzZW5kX3Bpbmcoc2VsZiwgYm9keT0nJyk6Ci0gICAgICAgIGZyYW1lID0gY3JlYXRlX3Bp
bmdfZnJhbWUoCi0gICAgICAgICAgICBib2R5LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5t
YXNrX3NlbmQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRl
cnMpCi0gICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQotCi0gICAgICAgIHNlbGYuX3BpbmdfcXVl
dWUuYXBwZW5kKGJvZHkpCi0KLSAgICBkZWYgX3NlbmRfcG9uZyhzZWxmLCBib2R5KToKLSAgICAg
ICAgZnJhbWUgPSBjcmVhdGVfcG9uZ19mcmFtZSgKLSAgICAgICAgICAgIGJvZHksCi0gICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLm1hc2tfc2VuZCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
b3V0Z29pbmdfZnJhbWVfZmlsdGVycykKLSAgICAgICAgc2VsZi5fd3JpdGUoZnJhbWUpCi0KLSAg
ICBkZWYgZ2V0X2xhc3RfcmVjZWl2ZWRfb3Bjb2RlKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm5z
IHRoZSBvcGNvZGUgb2YgdGhlIFdlYlNvY2tldCBtZXNzYWdlIHdoaWNoIHRoZSBsYXN0IHJlY2Vp
dmVkCi0gICAgICAgIGZyYW1lIGJlbG9uZ3MgdG8uIFRoZSByZXR1cm4gdmFsdWUgaXMgdmFsaWQg
aWZmIGltbWVkaWF0ZWx5IGFmdGVyCi0gICAgICAgIHJlY2VpdmVfbWVzc2FnZSBjYWxsLgotICAg
ICAgICAiIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fb3JpZ2luYWxfb3Bjb2RlCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvY29t
bW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2NvbW1vbi5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmZjMmVhZDY0ODFiZTU3YjdhZTRjNjY4YzIyZWNiMWVjNGJiY2Iy
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9tb2RfcHl3ZWJzb2NrZXQvY29tbW9uLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzAzICswLDAg
QEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBtdXN0IG5vdCBkZXBlbmQgb24g
YW55IG1vZHVsZSBzcGVjaWZpYyB0byB0aGUgV2ViU29ja2V0IHByb3RvY29sLgotIiIiCi0KLQot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGh0dHBfaGVhZGVyX3V0aWwKLQotCi0jIEFkZGl0
aW9uYWwgbG9nIGxldmVsIGRlZmluaXRpb25zLgotTE9HTEVWRUxfRklORSA9IDkKLQotIyBDb25z
dGFudHMgaW5kaWNhdGluZyBXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lvbi4KLVZFUlNJT05fSElY
SUU3NSA9IC0xCi1WRVJTSU9OX0hZQkkwMCA9IDAKLVZFUlNJT05fSFlCSTAxID0gMQotVkVSU0lP
Tl9IWUJJMDIgPSAyCi1WRVJTSU9OX0hZQkkwMyA9IDIKLVZFUlNJT05fSFlCSTA0ID0gNAotVkVS
U0lPTl9IWUJJMDUgPSA1Ci1WRVJTSU9OX0hZQkkwNiA9IDYKLVZFUlNJT05fSFlCSTA3ID0gNwot
VkVSU0lPTl9IWUJJMDggPSA4Ci1WRVJTSU9OX0hZQkkwOSA9IDgKLVZFUlNJT05fSFlCSTEwID0g
OAotVkVSU0lPTl9IWUJJMTEgPSA4Ci1WRVJTSU9OX0hZQkkxMiA9IDgKLVZFUlNJT05fSFlCSTEz
ID0gMTMKLVZFUlNJT05fSFlCSTE0ID0gMTMKLVZFUlNJT05fSFlCSTE1ID0gMTMKLVZFUlNJT05f
SFlCSTE2ID0gMTMKLVZFUlNJT05fSFlCSTE3ID0gMTMKLQotIyBDb25zdGFudHMgaW5kaWNhdGlu
ZyBXZWJTb2NrZXQgcHJvdG9jb2wgbGF0ZXN0IHZlcnNpb24uCi1WRVJTSU9OX0hZQklfTEFURVNU
ID0gVkVSU0lPTl9IWUJJMTMKLQotIyBQb3J0IG51bWJlcnMKLURFRkFVTFRfV0VCX1NPQ0tFVF9Q
T1JUID0gODAKLURFRkFVTFRfV0VCX1NPQ0tFVF9TRUNVUkVfUE9SVCA9IDQ0MwotCi0jIFNjaGVt
ZXMKLVdFQl9TT0NLRVRfU0NIRU1FID0gJ3dzJwotV0VCX1NPQ0tFVF9TRUNVUkVfU0NIRU1FID0g
J3dzcycKLQotIyBGcmFtZSBvcGNvZGVzIGRlZmluZWQgaW4gdGhlIHNwZWMuCi1PUENPREVfQ09O
VElOVUFUSU9OID0gMHgwCi1PUENPREVfVEVYVCA9IDB4MQotT1BDT0RFX0JJTkFSWSA9IDB4Mgot
T1BDT0RFX0NMT1NFID0gMHg4Ci1PUENPREVfUElORyA9IDB4OQotT1BDT0RFX1BPTkcgPSAweGEK
LQotIyBVVUlEcyB1c2VkIGJ5IEh5QmkgMDQgYW5kIGxhdGVyIG9wZW5pbmcgaGFuZHNoYWtlIGFu
ZCBmcmFtZSBtYXNraW5nLgotV0VCU09DS0VUX0FDQ0VQVF9VVUlEID0gJzI1OEVBRkE1LUU5MTQt
NDdEQS05NUNBLUM1QUIwREM4NUIxMScKLQotIyBPcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXIgbmFt
ZXMgYW5kIGV4cGVjdGVkIHZhbHVlcy4KLVVQR1JBREVfSEVBREVSID0gJ1VwZ3JhZGUnCi1XRUJT
T0NLRVRfVVBHUkFERV9UWVBFID0gJ3dlYnNvY2tldCcKLVdFQlNPQ0tFVF9VUEdSQURFX1RZUEVf
SElYSUU3NSA9ICdXZWJTb2NrZXQnCi1DT05ORUNUSU9OX0hFQURFUiA9ICdDb25uZWN0aW9uJwot
VVBHUkFERV9DT05ORUNUSU9OX1RZUEUgPSAnVXBncmFkZScKLUhPU1RfSEVBREVSID0gJ0hvc3Qn
Ci1PUklHSU5fSEVBREVSID0gJ09yaWdpbicKLVNFQ19XRUJTT0NLRVRfT1JJR0lOX0hFQURFUiA9
ICdTZWMtV2ViU29ja2V0LU9yaWdpbicKLVNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiA9ICdTZWMt
V2ViU29ja2V0LUtleScKLVNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUiA9ICdTZWMtV2ViU29j
a2V0LUFjY2VwdCcKLVNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIgPSAnU2VjLVdlYlNvY2tl
dC1WZXJzaW9uJwotU0VDX1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIgPSAnU2VjLVdlYlNvY2tl
dC1Qcm90b2NvbCcKLVNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIgPSAnU2VjLVdlYlNv
Y2tldC1FeHRlbnNpb25zJwotU0VDX1dFQlNPQ0tFVF9EUkFGVF9IRUFERVIgPSAnU2VjLVdlYlNv
Y2tldC1EcmFmdCcKLVNFQ19XRUJTT0NLRVRfS0VZMV9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1L
ZXkxJwotU0VDX1dFQlNPQ0tFVF9LRVkyX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUtleTInCi1T
RUNfV0VCU09DS0VUX0xPQ0FUSU9OX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uJwot
Ci0jIEV4dGVuc2lvbnMKLURFRkxBVEVfRlJBTUVfRVhURU5TSU9OID0gJ2RlZmxhdGUtZnJhbWUn
Ci1QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiA9ICdwZXJtZXNzYWdlLWNvbXByZXNz
JwotUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTiA9ICdwZXJtZXNzYWdlLWRlZmxhdGUnCi1Y
X1dFQktJVF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiA9ICd4LXdlYmtpdC1kZWZsYXRlLWZyYW1l
JwotWF9XRUJLSVRfUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04gPSAneC13ZWJraXQt
cGVybWVzc2FnZS1jb21wcmVzcycKLU1VWF9FWFRFTlNJT04gPSAnbXV4X0RPX05PVF9VU0UnCi0K
LSMgU3RhdHVzIGNvZGVzCi0jIENvZGUgU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCwgU1RBVFVT
X0FCTk9STUFMX0NMT1NVUkUsIGFuZAotIyBTVEFUVVNfVExTX0hBTkRTSEFLRSBhcmUgcHNldWRv
IGNvZGVzIHRvIGluZGljYXRlIHNwZWNpZmljIGVycm9yIGNhc2VzLgotIyBDb3VsZCBub3QgYmUg
dXNlZCBmb3IgY29kZXMgaW4gYWN0dWFsIGNsb3NpbmcgZnJhbWVzLgotIyBBcHBsaWNhdGlvbiBs
ZXZlbCBlcnJvcnMgbXVzdCB1c2UgY29kZXMgaW4gdGhlIHJhbmdlCi0jIFNUQVRVU19VU0VSX1JF
R0lTVEVSRURfQkFTRSB0byBTVEFUVVNfVVNFUl9QUklWQVRFX01BWC4gVGhlIGNvZGVzIGluIHRo
ZQotIyByYW5nZSBTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX0JBU0UgdG8gU1RBVFVTX1VTRVJfUkVH
SVNURVJFRF9NQVggYXJlIG1hbmFnZWQKLSMgYnkgSUFOQS4gVXN1YWxseSBhcHBsaWNhdGlvbiBt
dXN0IGRlZmluZSB1c2VyIHByb3RvY29sIGxldmVsIGVycm9ycyBpbiB0aGUKLSMgcmFuZ2UgU1RB
VFVTX1VTRVJfUFJJVkFURV9CQVNFIHRvIFNUQVRVU19VU0VSX1BSSVZBVEVfTUFYLgotU1RBVFVT
X05PUk1BTF9DTE9TVVJFID0gMTAwMAotU1RBVFVTX0dPSU5HX0FXQVkgPSAxMDAxCi1TVEFUVVNf
UFJPVE9DT0xfRVJST1IgPSAxMDAyCi1TVEFUVVNfVU5TVVBQT1JURURfREFUQSA9IDEwMDMKLVNU
QVRVU19OT19TVEFUVVNfUkVDRUlWRUQgPSAxMDA1Ci1TVEFUVVNfQUJOT1JNQUxfQ0xPU1VSRSA9
IDEwMDYKLVNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFUQSA9IDEwMDcKLVNUQVRVU19Q
T0xJQ1lfVklPTEFUSU9OID0gMTAwOAotU1RBVFVTX01FU1NBR0VfVE9PX0JJRyA9IDEwMDkKLVNU
QVRVU19NQU5EQVRPUllfRVhURU5TSU9OID0gMTAxMAotU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5U
X0VSUk9SID0gMTAxMQotU1RBVFVTX1RMU19IQU5EU0hBS0UgPSAxMDE1Ci1TVEFUVVNfVVNFUl9S
RUdJU1RFUkVEX0JBU0UgPSAzMDAwCi1TVEFUVVNfVVNFUl9SRUdJU1RFUkVEX01BWCA9IDM5OTkK
LVNUQVRVU19VU0VSX1BSSVZBVEVfQkFTRSA9IDQwMDAKLVNUQVRVU19VU0VSX1BSSVZBVEVfTUFY
ID0gNDk5OQotIyBGb2xsb3dpbmcgZGVmaW5pdGlvbnMgYXJlIGFsaWFzZXMgdG8ga2VlcCBjb21w
YXRpYmlsaXR5LiBBcHBsaWNhdGlvbnMgbXVzdAotIyBub3QgdXNlIHRoZXNlIG9ic29sZXRlZCBk
ZWZpbml0aW9ucyBhbnltb3JlLgotU1RBVFVTX05PUk1BTCA9IFNUQVRVU19OT1JNQUxfQ0xPU1VS
RQotU1RBVFVTX1VOU1VQUE9SVEVEID0gU1RBVFVTX1VOU1VQUE9SVEVEX0RBVEEKLVNUQVRVU19D
T0RFX05PVF9BVkFJTEFCTEUgPSBTVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVECi1TVEFUVVNfQUJO
T1JNQUxfQ0xPU0UgPSBTVEFUVVNfQUJOT1JNQUxfQ0xPU1VSRQotU1RBVFVTX0lOVkFMSURfRlJB
TUVfUEFZTE9BRCA9IFNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFUQQotU1RBVFVTX01B
TkRBVE9SWV9FWFQgPSBTVEFUVVNfTUFOREFUT1JZX0VYVEVOU0lPTgotCi0jIEhUVFAgc3RhdHVz
IGNvZGVzCi1IVFRQX1NUQVRVU19CQURfUkVRVUVTVCA9IDQwMAotSFRUUF9TVEFUVVNfRk9SQklE
REVOID0gNDAzCi1IVFRQX1NUQVRVU19OT1RfRk9VTkQgPSA0MDQKLQotCi1kZWYgaXNfY29udHJv
bF9vcGNvZGUob3Bjb2RlKToKLSAgICByZXR1cm4gKG9wY29kZSA+PiAzKSA9PSAxCi0KLQotY2xh
c3MgRXh0ZW5zaW9uUGFyYW1ldGVyKG9iamVjdCk6Ci0gICAgIiIiSG9sZHMgaW5mb3JtYXRpb24g
YWJvdXQgYW4gZXh0ZW5zaW9uIHdoaWNoIGlzIGV4Y2hhbmdlZCBvbiBleHRlbnNpb24KLSAgICBu
ZWdvdGlhdGlvbiBpbiBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgc2VsZi5fbmFtZSA9IG5hbWUKLSAgICAgICAgIyBU
T0RPKHR5b3NoaW5vKTogQ2hhbmdlIHRoZSBkYXRhIHN0cnVjdHVyZSB0byBtb3JlIGVmZmljaWVu
dCBvbmUgc3VjaAotICAgICAgICAjIGFzIGRpY3Qgd2hlbiB0aGUgc3BlYyBjaGFuZ2VzIHRvIHNh
eSBsaWtlCi0gICAgICAgICMgLSBQYXJhbWV0ZXIgbmFtZXMgbXVzdCBiZSB1bmlxdWUKLSAgICAg
ICAgIyAtIFRoZSBvcmRlciBvZiBwYXJhbWV0ZXJzIGlzIG5vdCBzaWduaWZpY2FudAotICAgICAg
ICBzZWxmLl9wYXJhbWV0ZXJzID0gW10KLQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5fbmFtZQotCi0gICAgZGVmIGFkZF9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFs
dWUpOgotICAgICAgICBzZWxmLl9wYXJhbWV0ZXJzLmFwcGVuZCgobmFtZSwgdmFsdWUpKQotCi0g
ICAgZGVmIGdldF9wYXJhbWV0ZXJzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcGFyYW1l
dGVycwotCi0gICAgZGVmIGdldF9wYXJhbWV0ZXJfbmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVy
biBbbmFtZSBmb3IgbmFtZSwgdW51c2VkX3ZhbHVlIGluIHNlbGYuX3BhcmFtZXRlcnNdCi0KLSAg
ICBkZWYgaGFzX3BhcmFtZXRlcihzZWxmLCBuYW1lKToKLSAgICAgICAgZm9yIHBhcmFtX25hbWUs
IHBhcmFtX3ZhbHVlIGluIHNlbGYuX3BhcmFtZXRlcnM6Ci0gICAgICAgICAgICBpZiBwYXJhbV9u
YW1lID09IG5hbWU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJu
IEZhbHNlCi0KLSAgICBkZWYgZ2V0X3BhcmFtZXRlcl92YWx1ZShzZWxmLCBuYW1lKToKLSAgICAg
ICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVlIGluIHNlbGYuX3BhcmFtZXRlcnM6Ci0gICAg
ICAgICAgICBpZiBwYXJhbV9uYW1lID09IG5hbWU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHBh
cmFtX3ZhbHVlCi0KLQotY2xhc3MgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbihFeGNlcHRpb24p
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgc3VwZXIoRXh0ZW5zaW9u
UGFyc2luZ0V4Y2VwdGlvbiwgc2VsZikuX19pbml0X18obmFtZSkKLQotCi1kZWYgX3BhcnNlX2V4
dGVuc2lvbl9wYXJhbShzdGF0ZSwgZGVmaW5pdGlvbik6Ci0gICAgcGFyYW1fbmFtZSA9IGh0dHBf
aGVhZGVyX3V0aWwuY29uc3VtZV90b2tlbihzdGF0ZSkKLQotICAgIGlmIHBhcmFtX25hbWUgaXMg
Tm9uZToKLSAgICAgICAgcmFpc2UgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbignTm8gdmFsaWQg
cGFyYW1ldGVyIG5hbWUgZm91bmQnKQotCi0gICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3
c2VzKHN0YXRlKQotCi0gICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJpbmco
c3RhdGUsICc9Jyk6Ci0gICAgICAgIGRlZmluaXRpb24uYWRkX3BhcmFtZXRlcihwYXJhbV9uYW1l
LCBOb25lKQotICAgICAgICByZXR1cm4KLQotICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9s
d3NlcyhzdGF0ZSkKLQotICAgICMgVE9ETyh0eW9zaGlubyk6IEFkZCBjb2RlIHRvIHZhbGlkYXRl
IHRoYXQgcGFyc2VkIHBhcmFtX3ZhbHVlIGlzIHRva2VuCi0gICAgcGFyYW1fdmFsdWUgPSBodHRw
X2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW5fb3JfcXVvdGVkX3N0cmluZyhzdGF0ZSkKLSAgICBp
ZiBwYXJhbV92YWx1ZSBpcyBOb25lOgotICAgICAgICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhj
ZXB0aW9uKAotICAgICAgICAgICAgJ05vIHZhbGlkIHBhcmFtZXRlciB2YWx1ZSBmb3VuZCBvbiB0
aGUgcmlnaHQtaGFuZCBzaWRlIG9mICcKLSAgICAgICAgICAgICdwYXJhbWV0ZXIgJXInICUgcGFy
YW1fbmFtZSkKLQotICAgIGRlZmluaXRpb24uYWRkX3BhcmFtZXRlcihwYXJhbV9uYW1lLCBwYXJh
bV92YWx1ZSkKLQotCi1kZWYgX3BhcnNlX2V4dGVuc2lvbihzdGF0ZSk6Ci0gICAgZXh0ZW5zaW9u
X3Rva2VuID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuKHN0YXRlKQotICAgIGlmIGV4
dGVuc2lvbl90b2tlbiBpcyBOb25lOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZXh0ZW5z
aW9uID0gRXh0ZW5zaW9uUGFyYW1ldGVyKGV4dGVuc2lvbl90b2tlbikKLQotICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAg
ICAgICBpZiBub3QgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3N0cmluZyhzdGF0ZSwgJzsnKToK
LSAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3
c2VzKHN0YXRlKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIF9wYXJzZV9leHRlbnNpb25f
cGFyYW0oc3RhdGUsIGV4dGVuc2lvbikKLSAgICAgICAgZXhjZXB0IEV4dGVuc2lvblBhcnNpbmdF
eGNlcHRpb24sIGU6Ci0gICAgICAgICAgICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gcGFyc2UgcGFyYW1ldGVyIGZvciAlciAoJXIp
JyAlCi0gICAgICAgICAgICAgICAgKGV4dGVuc2lvbl90b2tlbiwgZSkpCi0KLSAgICByZXR1cm4g
ZXh0ZW5zaW9uCi0KLQotZGVmIHBhcnNlX2V4dGVuc2lvbnMoZGF0YSk6Ci0gICAgIiIiUGFyc2Vz
IFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIgdmFsdWUgcmV0dXJucyBhIGxpc3Qgb2YK
LSAgICBFeHRlbnNpb25QYXJhbWV0ZXIgb2JqZWN0cy4KLQotICAgIExlYWRpbmcgTFdTZXMgbXVz
dCBiZSB0cmltbWVkLgotICAgICIiIgotCi0gICAgc3RhdGUgPSBodHRwX2hlYWRlcl91dGlsLlBh
cnNpbmdTdGF0ZShkYXRhKQotCi0gICAgZXh0ZW5zaW9uX2xpc3QgPSBbXQotICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgIGV4dGVuc2lvbiA9IF9wYXJzZV9leHRlbnNpb24oc3RhdGUpCi0gICAgICAg
IGlmIGV4dGVuc2lvbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGV4dGVuc2lvbl9saXN0LmFw
cGVuZChleHRlbnNpb24pCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2Vz
KHN0YXRlKQotCi0gICAgICAgIGlmIGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkgaXMgTm9u
ZToKLSAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwu
Y29uc3VtZV9zdHJpbmcoc3RhdGUsICcsJyk6Ci0gICAgICAgICAgICByYWlzZSBFeHRlbnNpb25Q
YXJzaW5nRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gcGFyc2UgU2VjLVdl
YlNvY2tldC1FeHRlbnNpb25zIGhlYWRlcjogJwotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBh
IGNvbW1hIGJ1dCBmb3VuZCAlcicgJQotICAgICAgICAgICAgICAgIGh0dHBfaGVhZGVyX3V0aWwu
cGVlayhzdGF0ZSkpCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0
YXRlKQotCi0gICAgaWYgbGVuKGV4dGVuc2lvbl9saXN0KSA9PSAwOgotICAgICAgICByYWlzZSBF
eHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKAotICAgICAgICAgICAgJ05vIHZhbGlkIGV4dGVuc2lv
biBlbnRyeSBmb3VuZCcpCi0KLSAgICByZXR1cm4gZXh0ZW5zaW9uX2xpc3QKLQotCi1kZWYgZm9y
bWF0X2V4dGVuc2lvbihleHRlbnNpb24pOgotICAgICIiIkZvcm1hdHMgYW4gRXh0ZW5zaW9uUGFy
YW1ldGVyIG9iamVjdC4iIiIKLQotICAgIGZvcm1hdHRlZF9wYXJhbXMgPSBbZXh0ZW5zaW9uLm5h
bWUoKV0KLSAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW1fdmFsdWUgaW4gZXh0ZW5zaW9uLmdldF9w
YXJhbWV0ZXJzKCk6Ci0gICAgICAgIGlmIHBhcmFtX3ZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICBmb3JtYXR0ZWRfcGFyYW1zLmFwcGVuZChwYXJhbV9uYW1lKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgcXVvdGVkX3ZhbHVlID0gaHR0cF9oZWFkZXJfdXRpbC5xdW90ZV9pZl9uZWNlc3Nh
cnkocGFyYW1fdmFsdWUpCi0gICAgICAgICAgICBmb3JtYXR0ZWRfcGFyYW1zLmFwcGVuZCgnJXM9
JXMnICUgKHBhcmFtX25hbWUsIHF1b3RlZF92YWx1ZSkpCi0gICAgcmV0dXJuICc7ICcuam9pbihm
b3JtYXR0ZWRfcGFyYW1zKQotCi0KLWRlZiBmb3JtYXRfZXh0ZW5zaW9ucyhleHRlbnNpb25fbGlz
dCk6Ci0gICAgIiIiRm9ybWF0cyBhIGxpc3Qgb2YgRXh0ZW5zaW9uUGFyYW1ldGVyIG9iamVjdHMu
IiIiCi0KLSAgICBmb3JtYXR0ZWRfZXh0ZW5zaW9uX2xpc3QgPSBbXQotICAgIGZvciBleHRlbnNp
b24gaW4gZXh0ZW5zaW9uX2xpc3Q6Ci0gICAgICAgIGZvcm1hdHRlZF9leHRlbnNpb25fbGlzdC5h
cHBlbmQoZm9ybWF0X2V4dGVuc2lvbihleHRlbnNpb24pKQotICAgIHJldHVybiAnLCAnLmpvaW4o
Zm9ybWF0dGVkX2V4dGVuc2lvbl9saXN0KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2Rpc3BhdGNoLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9k
X3B5d2Vic29ja2V0L2Rpc3BhdGNoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
NmM5MWUwYzkwZTc0MjlkMGY3NjBjMGU5YzdiOTgxMjA0MDkyYTBhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9k
aXNwYXRjaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDM5MyArMCwwIEBACi0jIENvcHlyaWdodCAy
MDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0j
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotCi0iIiJEaXNwYXRjaCBXZWJTb2NrZXQgcmVxdWVzdC4KLSIiIgotCi0KLWltcG9ydCBs
b2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCByZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBv
cnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IG11eAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHN0cmVhbQotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQgaW1wb3J0IHV0aWwKLQotCi1fU09VUkNFX1BBVEhfUEFUVEVSTiA9IHJlLmNvbXBpbGUo
cicoP2kpX3dzaFwucHkkJykKLV9TT1VSQ0VfU1VGRklYID0gJ193c2gucHknCi1fRE9fRVhUUkFf
SEFORFNIQUtFX0hBTkRMRVJfTkFNRSA9ICd3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZScK
LV9UUkFOU0ZFUl9EQVRBX0hBTkRMRVJfTkFNRSA9ICd3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEn
Ci1fUEFTU0lWRV9DTE9TSU5HX0hBTkRTSEFLRV9IQU5ETEVSX05BTUUgPSAoCi0gICAgJ3dlYl9z
b2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZScpCi0KLQotY2xhc3MgRGlzcGF0Y2hFeGNl
cHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJFeGNlcHRpb24gaW4gZGlzcGF0Y2hpbmcgV2ViU29j
a2V0IHJlcXVlc3QuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc3RhdHVzPWNv
bW1vbi5IVFRQX1NUQVRVU19OT1RfRk9VTkQpOgotICAgICAgICBzdXBlcihEaXNwYXRjaEV4Y2Vw
dGlvbiwgc2VsZikuX19pbml0X18obmFtZSkKLSAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMK
LQotCi1kZWYgX2RlZmF1bHRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyKHJlcXVl
c3QpOgotICAgICIiIkRlZmF1bHQgd2ViX3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtl
IGhhbmRsZXIuIiIiCi0KLSAgICByZXR1cm4gY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwg
JycKLQotCi1kZWYgX25vcm1hbGl6ZV9wYXRoKHBhdGgpOgotICAgICIiIk5vcm1hbGl6ZSBwYXRo
LgotCi0gICAgQXJnczoKLSAgICAgICAgcGF0aDogdGhlIHBhdGggdG8gbm9ybWFsaXplLgotCi0g
ICAgUGF0aCBpcyBjb252ZXJ0ZWQgdG8gdGhlIGFic29sdXRlIHBhdGguCi0gICAgVGhlIGlucHV0
IHBhdGggY2FuIHVzZSBlaXRoZXIgJ1xcJyBvciAnLycgYXMgdGhlIHNlcGFyYXRvci4KLSAgICBU
aGUgbm9ybWFsaXplZCBwYXRoIGFsd2F5cyB1c2VzICcvJyByZWdhcmRsZXNzIG9mIHRoZSBwbGF0
Zm9ybS4KLSAgICAiIiIKLQotICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoJ1xcJywgb3MucGF0aC5z
ZXApCi0gICAgcGF0aCA9IG9zLnBhdGgucmVhbHBhdGgocGF0aCkKLSAgICBwYXRoID0gcGF0aC5y
ZXBsYWNlKCdcXCcsICcvJykKLSAgICByZXR1cm4gcGF0aAotCi0KLWRlZiBfY3JlYXRlX3BhdGhf
dG9fcmVzb3VyY2VfY29udmVydGVyKGJhc2VfZGlyKToKLSAgICAiIiJSZXR1cm5zIGEgZnVuY3Rp
b24gdGhhdCBjb252ZXJ0cyB0aGUgcGF0aCBvZiBhIFdlYlNvY2tldCBoYW5kbGVyIHNvdXJjZQot
ICAgIGZpbGUgdG8gYSByZXNvdXJjZSBzdHJpbmcgYnkgcmVtb3ZpbmcgdGhlIHBhdGggdG8gdGhl
IGJhc2UgZGlyZWN0b3J5IGZyb20KLSAgICBpdHMgaGVhZCwgcmVtb3ZpbmcgX1NPVVJDRV9TVUZG
SVggZnJvbSBpdHMgdGFpbCwgYW5kIHJlcGxhY2luZyBwYXRoCi0gICAgc2VwYXJhdG9ycyBpbiBp
dCB3aXRoICcvJy4KLQotICAgIEFyZ3M6Ci0gICAgICAgIGJhc2VfZGlyOiB0aGUgcGF0aCB0byB0
aGUgYmFzZSBkaXJlY3RvcnkuCi0gICAgIiIiCi0KLSAgICBiYXNlX2RpciA9IF9ub3JtYWxpemVf
cGF0aChiYXNlX2RpcikKLQotICAgIGJhc2VfbGVuID0gbGVuKGJhc2VfZGlyKQotICAgIHN1ZmZp
eF9sZW4gPSBsZW4oX1NPVVJDRV9TVUZGSVgpCi0KLSAgICBkZWYgY29udmVydGVyKHBhdGgpOgot
ICAgICAgICBpZiBub3QgcGF0aC5lbmRzd2l0aChfU09VUkNFX1NVRkZJWCk6Ci0gICAgICAgICAg
ICByZXR1cm4gTm9uZQotICAgICAgICAjIF9ub3JtYWxpemVfcGF0aCBtdXN0IG5vdCBiZSB1c2Vk
IGJlY2F1c2UgcmVzb2x2aW5nIHN5bWxpbmsgYnJlYWtzCi0gICAgICAgICMgZm9sbG93aW5nIHBh
dGggY2hlY2suCi0gICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoJ1xcJywgJy8nKQotICAgICAg
ICBpZiBub3QgcGF0aC5zdGFydHN3aXRoKGJhc2VfZGlyKToKLSAgICAgICAgICAgIHJldHVybiBO
b25lCi0gICAgICAgIHJldHVybiBwYXRoW2Jhc2VfbGVuOi1zdWZmaXhfbGVuXQotCi0gICAgcmV0
dXJuIGNvbnZlcnRlcgotCi0KLWRlZiBfZW51bWVyYXRlX2hhbmRsZXJfZmlsZV9wYXRocyhkaXJl
Y3RvcnkpOgotICAgICIiIlJldHVybnMgYSBnZW5lcmF0b3IgdGhhdCBlbnVtZXJhdGVzIFdlYlNv
Y2tldCBIYW5kbGVyIHNvdXJjZSBmaWxlIG5hbWVzCi0gICAgaW4gdGhlIGdpdmVuIGRpcmVjdG9y
eS4KLSAgICAiIiIKLQotICAgIGZvciByb290LCB1bnVzZWRfZGlycywgZmlsZXMgaW4gb3Mud2Fs
ayhkaXJlY3RvcnkpOgotICAgICAgICBmb3IgYmFzZSBpbiBmaWxlczoKLSAgICAgICAgICAgIHBh
dGggPSBvcy5wYXRoLmpvaW4ocm9vdCwgYmFzZSkKLSAgICAgICAgICAgIGlmIF9TT1VSQ0VfUEFU
SF9QQVRURVJOLnNlYXJjaChwYXRoKToKLSAgICAgICAgICAgICAgICB5aWVsZCBwYXRoCi0KLQot
Y2xhc3MgX0hhbmRsZXJTdWl0ZShvYmplY3QpOgotICAgICIiIkEgaGFuZGxlciBzdWl0ZSBob2xk
ZXIgY2xhc3MuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZG9fZXh0cmFfaGFuZHNoYWtl
LCB0cmFuc2Zlcl9kYXRhLAotICAgICAgICAgICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNo
YWtlKToKLSAgICAgICAgc2VsZi5kb19leHRyYV9oYW5kc2hha2UgPSBkb19leHRyYV9oYW5kc2hh
a2UKLSAgICAgICAgc2VsZi50cmFuc2Zlcl9kYXRhID0gdHJhbnNmZXJfZGF0YQotICAgICAgICBz
ZWxmLnBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UgPSBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtl
Ci0KLQotZGVmIF9zb3VyY2VfaGFuZGxlcl9maWxlKGhhbmRsZXJfZGVmaW5pdGlvbik6Ci0gICAg
IiIiU291cmNlIGEgaGFuZGxlciBkZWZpbml0aW9uIHN0cmluZy4KLQotICAgIEFyZ3M6Ci0gICAg
ICAgIGhhbmRsZXJfZGVmaW5pdGlvbjogYSBzdHJpbmcgY29udGFpbmluZyBQeXRob24gc3RhdGVt
ZW50cyB0aGF0IGRlZmluZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIgZnVu
Y3Rpb25zLgotICAgICIiIgotCi0gICAgZ2xvYmFsX2RpYyA9IHt9Ci0gICAgdHJ5OgotICAgICAg
ICBleGVjIGhhbmRsZXJfZGVmaW5pdGlvbiBpbiBnbG9iYWxfZGljCi0gICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKLSAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ0Vycm9yIGluIHNvdXJjaW5n
IGhhbmRsZXI6JyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWwuZ2V0X3N0
YWNrX3RyYWNlKCkpCi0gICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyID0gTm9u
ZQotICAgIHRyeToKLSAgICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyID0g
X2V4dHJhY3RfaGFuZGxlcigKLSAgICAgICAgICAgIGdsb2JhbF9kaWMsIF9QQVNTSVZFX0NMT1NJ
TkdfSEFORFNIQUtFX0hBTkRMRVJfTkFNRSkKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAg
ICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIgPSAoCi0gICAgICAgICAgICBfZGVm
YXVsdF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIpCi0gICAgcmV0dXJuIF9IYW5k
bGVyU3VpdGUoCi0gICAgICAgIF9leHRyYWN0X2hhbmRsZXIoZ2xvYmFsX2RpYywgX0RPX0VYVFJB
X0hBTkRTSEFLRV9IQU5ETEVSX05BTUUpLAotICAgICAgICBfZXh0cmFjdF9oYW5kbGVyKGdsb2Jh
bF9kaWMsIF9UUkFOU0ZFUl9EQVRBX0hBTkRMRVJfTkFNRSksCi0gICAgICAgIHBhc3NpdmVfY2xv
c2luZ19oYW5kc2hha2VfaGFuZGxlcikKLQotCi1kZWYgX2V4dHJhY3RfaGFuZGxlcihkaWMsIG5h
bWUpOgotICAgICIiIkV4dHJhY3RzIGEgY2FsbGFibGUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUg
ZnJvbSB0aGUgZ2l2ZW4gZGljdGlvbmFyeQotICAgIGRpYy4KLSAgICAiIiIKLQotICAgIGlmIG5h
bWUgbm90IGluIGRpYzoKLSAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJyVzIGlzIG5v
dCBkZWZpbmVkLicgJSBuYW1lKQotICAgIGhhbmRsZXIgPSBkaWNbbmFtZV0KLSAgICBpZiBub3Qg
Y2FsbGFibGUoaGFuZGxlcik6Ci0gICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCclcyBp
cyBub3QgY2FsbGFibGUuJyAlIG5hbWUpCi0gICAgcmV0dXJuIGhhbmRsZXIKLQotCi1jbGFzcyBE
aXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiRGlzcGF0Y2hlcyBXZWJTb2NrZXQgcmVxdWVzdHMu
Ci0KLSAgICBUaGlzIGNsYXNzIG1haW50YWlucyBhIG1hcCBmcm9tIHJlc291cmNlIG5hbWUgdG8g
aGFuZGxlcnMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oCi0gICAgICAgIHNlbGYsIHJv
b3RfZGlyLCBzY2FuX2Rpcj1Ob25lLAotICAgICAgICBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jv
b3RfZGlyPVRydWUpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIHJvb3RfZGlyOiBUaGUgZGlyZWN0b3J5IHdoZXJlIGhhbmRs
ZXIgZGVmaW5pdGlvbiBmaWxlcyBhcmUKLSAgICAgICAgICAgICAgICAgICAgICBwbGFjZWQuCi0g
ICAgICAgICAgICBzY2FuX2RpcjogVGhlIGRpcmVjdG9yeSB3aGVyZSBoYW5kbGVyIGRlZmluaXRp
b24gZmlsZXMgYXJlCi0gICAgICAgICAgICAgICAgICAgICAgc2VhcmNoZWQuIHNjYW5fZGlyIG11
c3QgYmUgYSBkaXJlY3RvcnkgdW5kZXIgcm9vdF9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAg
aW5jbHVkaW5nIHJvb3RfZGlyIGl0c2VsZi4gIElmIHNjYW5fZGlyIGlzIE5vbmUsCi0gICAgICAg
ICAgICAgICAgICAgICAgcm9vdF9kaXIgaXMgdXNlZCBhcyBzY2FuX2Rpci4gc2Nhbl9kaXIgY2Fu
IGJlIHVzZWZ1bAotICAgICAgICAgICAgICAgICAgICAgIGluIHNhdmluZyBzY2FuIHRpbWUgd2hl
biByb290X2RpciBjb250YWlucyBtYW55Ci0gICAgICAgICAgICAgICAgICAgICAgc3ViZGlyZWN0
b3JpZXMuCi0gICAgICAgICAgICBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyOiBTY2Fu
cyBoYW5kbGVyIGZpbGVzIGV2ZW4gaWYgdGhlaXIKLSAgICAgICAgICAgICAgICAgICAgICBjYW5v
bmljYWwgcGF0aCBpcyBub3QgdW5kZXIgcm9vdF9kaXIuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNl
bGYuX2hhbmRsZXJfc3VpdGVfbWFwID0ge30KLSAgICAgICAgc2VsZi5fc291cmNlX3dhcm5pbmdz
ID0gW10KLSAgICAgICAgaWYgc2Nhbl9kaXIgaXMgTm9uZToKLSAgICAgICAgICAgIHNjYW5fZGly
ID0gcm9vdF9kaXIKLSAgICAgICAgaWYgbm90IG9zLnBhdGgucmVhbHBhdGgoc2Nhbl9kaXIpLnN0
YXJ0c3dpdGgoCi0gICAgICAgICAgICAgICAgb3MucGF0aC5yZWFscGF0aChyb290X2RpcikpOgot
ICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ3NjYW5fZGlyOiVzIG11c3QgYmUg
YSBkaXJlY3RvcnkgdW5kZXIgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3Jvb3RfZGlyOiVzLicgJSAoc2Nhbl9kaXIsIHJvb3RfZGlyKSkKLSAgICAgICAgc2VsZi5fc291
cmNlX2hhbmRsZXJfZmlsZXNfaW5fZGlyKAotICAgICAgICAgICAgcm9vdF9kaXIsIHNjYW5fZGly
LCBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyKQotCi0gICAgZGVmIGFkZF9yZXNvdXJj
ZV9wYXRoX2FsaWFzKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFz
X3Jlc291cmNlX3BhdGgsIGV4aXN0aW5nX3Jlc291cmNlX3BhdGgpOgotICAgICAgICAiIiJBZGQg
cmVzb3VyY2UgcGF0aCBhbGlhcy4KLQotICAgICAgICBPbmNlIGFkZGVkLCByZXF1ZXN0IHRvIGFs
aWFzX3Jlc291cmNlX3BhdGggd291bGQgYmUgaGFuZGxlZCBieQotICAgICAgICBoYW5kbGVyIHJl
Z2lzdGVyZWQgZm9yIGV4aXN0aW5nX3Jlc291cmNlX3BhdGguCi0KLSAgICAgICAgQXJnczoKLSAg
ICAgICAgICAgIGFsaWFzX3Jlc291cmNlX3BhdGg6IGFsaWFzIHJlc291cmNlIHBhdGgKLSAgICAg
ICAgICAgIGV4aXN0aW5nX3Jlc291cmNlX3BhdGg6IGV4aXN0aW5nIHJlc291cmNlIHBhdGgKLSAg
ICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxm
Ll9oYW5kbGVyX3N1aXRlX21hcFtleGlzdGluZ19yZXNvdXJjZV9wYXRoXQotICAgICAgICAgICAg
c2VsZi5faGFuZGxlcl9zdWl0ZV9tYXBbYWxpYXNfcmVzb3VyY2VfcGF0aF0gPSBoYW5kbGVyX3N1
aXRlCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIERpc3BhdGNo
RXhjZXB0aW9uKCdObyBoYW5kbGVyIGZvcjogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4aXN0aW5nX3Jlc291cmNlX3BhdGgpCi0KLSAgICBkZWYgc291cmNlX3dh
cm5pbmdzKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gd2FybmluZ3MgaW4gc291cmNpbmcgaGFu
ZGxlcnMuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3NvdXJjZV93YXJuaW5ncwotCi0gICAg
ZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIiIiRG8gZXh0
cmEgY2hlY2tpbmcgaW4gV2ViU29ja2V0IGhhbmRzaGFrZS4KLQotICAgICAgICBTZWxlY3QgYSBo
YW5kbGVyIGJhc2VkIG9uIHJlcXVlc3QudXJpIGFuZCBjYWxsIGl0cwotICAgICAgICB3ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBmdW5jdGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAg
ICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotCi0gICAgICAgIFJhaXNlczoKLSAg
ICAgICAgICAgIERpc3BhdGNoRXhjZXB0aW9uOiB3aGVuIGhhbmRsZXIgd2FzIG5vdCBmb3VuZAot
ICAgICAgICAgICAgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbjogd2hlbiB1c2VyIGhhbmRsZXIgYWJv
cnQgY29ubmVjdGlvbgotICAgICAgICAgICAgSGFuZHNoYWtlRXhjZXB0aW9uOiB3aGVuIG9wZW5p
bmcgaGFuZHNoYWtlIGZhaWxlZAotICAgICAgICAiIiIKLQotICAgICAgICBoYW5kbGVyX3N1aXRl
ID0gc2VsZi5nZXRfaGFuZGxlcl9zdWl0ZShyZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBp
ZiBoYW5kbGVyX3N1aXRlIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2Vw
dGlvbignTm8gaGFuZGxlciBmb3I6ICVyJyAlIHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAgICAg
IGRvX2V4dHJhX2hhbmRzaGFrZV8gPSBoYW5kbGVyX3N1aXRlLmRvX2V4dHJhX2hhbmRzaGFrZQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkb19leHRyYV9oYW5kc2hha2VfKHJlcXVlc3QpCi0g
ICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgZToKLSAgICAg
ICAgICAgICMgUmUtcmFpc2UgdG8gdGVsbCB0aGUgY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24gdG8g
ZmluaXNoIHRoaXMKLSAgICAgICAgICAgICMgY29ubmVjdGlvbiB3aXRob3V0IHNlbmRpbmcgYW55
IGVycm9yLgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIHV0aWwuZ2V0X3N0
YWNrX3RyYWNlKCkpCi0gICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQgRXhjZXB0aW9u
LCBlOgotICAgICAgICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICAgICAnJXMgcmFpc2VkIGV4Y2VwdGlvbiBmb3IgJXM6ICcgJSAoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX0RPX0VYVFJBX0hBTkRTSEFLRV9IQU5ETEVSX05BTUUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSksCi0gICAg
ICAgICAgICAgICAgICAgIGUpCi0gICAgICAgICAgICByYWlzZSBoYW5kc2hha2UuSGFuZHNoYWtl
RXhjZXB0aW9uKGUsIGNvbW1vbi5IVFRQX1NUQVRVU19GT1JCSURERU4pCi0KLSAgICBkZWYgdHJh
bnNmZXJfZGF0YShzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIiIiTGV0IGEgaGFuZGxlciB0cmFu
c2Zlcl9kYXRhIHdpdGggYSBXZWJTb2NrZXQgY2xpZW50LgotCi0gICAgICAgIFNlbGVjdCBhIGhh
bmRsZXIgYmFzZWQgb24gcmVxdWVzdC53c19yZXNvdXJjZSBhbmQgY2FsbCBpdHMKLSAgICAgICAg
d2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhIGZ1bmN0aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICAgRGlzcGF0Y2hFeGNlcHRpb246IHdoZW4gaGFuZGxlciB3YXMgbm90IGZvdW5k
Ci0gICAgICAgICAgICBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uOiB3aGVuIHVzZXIgaGFuZGxlciBh
Ym9ydCBjb25uZWN0aW9uCi0gICAgICAgICIiIgotCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6
IFRlcm1pbmF0ZSB1bmRlcmx5aW5nIFRDUCBjb25uZWN0aW9uIGlmIHBvc3NpYmxlLgotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBpZiBtdXgudXNlX211eChyZXF1ZXN0KToKLSAgICAgICAgICAg
ICAgICBtdXguc3RhcnQocmVxdWVzdCwgc2VsZikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0X2hhbmRsZXJfc3VpdGUocmVxdWVzdC53
c19yZXNvdXJjZSkKLSAgICAgICAgICAgICAgICBpZiBoYW5kbGVyX3N1aXRlIGlzIE5vbmU6Ci0g
ICAgICAgICAgICAgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdObyBoYW5kbGVyIGZv
cjogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAgICAgICAgICB0cmFuc2Zlcl9kYXRhXyA9IGhhbmRs
ZXJfc3VpdGUudHJhbnNmZXJfZGF0YQotICAgICAgICAgICAgICAgIHRyYW5zZmVyX2RhdGFfKHJl
cXVlc3QpCi0KLSAgICAgICAgICAgIGlmIG5vdCByZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgot
ICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotICAg
ICAgICAjIENhdGNoIG5vbi1jcml0aWNhbCBleGNlcHRpb25zIHRoZSBoYW5kbGVyIGRpZG4ndCBo
YW5kbGUuCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwg
ZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCB1dGlsLmdldF9zdGFja190
cmFjZSgpKQotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0IG1zZ3V0aWwuQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycs
IGUpCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKAotICAg
ICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IpCi0gICAg
ICAgIGV4Y2VwdCBtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAg
ICMgSW52YWxpZEZyYW1lRXhjZXB0aW9uIG11c3QgYmUgY2F1Z2h0IGJlZm9yZQotICAgICAgICAg
ICAgIyBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiB0aGF0IGNhdGNoZXMgSW52YWxpZEZy
YW1lRXhjZXB0aW9uLgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0g
ICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFU
VVNfUFJPVE9DT0xfRVJST1IpCi0gICAgICAgIGV4Y2VwdCBtc2d1dGlsLlVuc3VwcG9ydGVkRnJh
bWVFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkK
LSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oY29tbW9uLlNU
QVRVU19VTlNVUFBPUlRFRF9EQVRBKQotICAgICAgICBleGNlcHQgc3RyZWFtLkludmFsaWRVVEY4
RXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0g
ICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKAotICAgICAgICAg
ICAgICAgIGNvbW1vbi5TVEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlMT0FEX0RBVEEpCi0gICAgICAg
IGV4Y2VwdCBtc2d1dGlsLkNvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uLCBlOgotICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRp
b24sIGU6Ci0gICAgICAgICAgICAjIEFueSBvdGhlciBleGNlcHRpb25zIGFyZSBmb3J3YXJkZWQg
dG8gdGhlIGNhbGxlciBvZiB0aGlzCi0gICAgICAgICAgICAjIGZ1bmN0aW9uLgotICAgICAgICAg
ICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICcl
cyByYWlzZWQgZXhjZXB0aW9uIGZvciAlczogJyAlICgKLSAgICAgICAgICAgICAgICAgICAgX1RS
QU5TRkVSX0RBVEFfSEFORExFUl9OQU1FLCByZXF1ZXN0LndzX3Jlc291cmNlKSwKLSAgICAgICAg
ICAgICAgICBlKQotICAgICAgICAgICAgcmFpc2UKLQotICAgIGRlZiBwYXNzaXZlX2Nsb3Npbmdf
aGFuZHNoYWtlKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAiIiJQcmVwYXJlIGNvZGUgYW5kIHJl
YXNvbiBmb3IgcmVzcG9uZGluZyBjbGllbnQgaW5pdGlhdGVkIGNsb3NpbmcKLSAgICAgICAgaGFu
ZHNoYWtlLgotICAgICAgICAiIiIKLQotICAgICAgICBoYW5kbGVyX3N1aXRlID0gc2VsZi5nZXRf
aGFuZGxlcl9zdWl0ZShyZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBpZiBoYW5kbGVyX3N1
aXRlIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gX2RlZmF1bHRfcGFzc2l2ZV9jbG9zaW5n
X2hhbmRzaGFrZV9oYW5kbGVyKHJlcXVlc3QpCi0gICAgICAgIHJldHVybiBoYW5kbGVyX3N1aXRl
LnBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVxdWVzdCkKLQotICAgIGRlZiBnZXRfaGFuZGxl
cl9zdWl0ZShzZWxmLCByZXNvdXJjZSk6Ci0gICAgICAgICIiIlJldHJpZXZlcyB0d28gaGFuZGxl
cnMgKG9uZSBmb3IgZXh0cmEgaGFuZHNoYWtlIHByb2Nlc3NpbmcsIGFuZCBvbmUKLSAgICAgICAg
Zm9yIGRhdGEgdHJhbnNmZXIpIGZvciB0aGUgZ2l2ZW4gcmVxdWVzdCBhcyBhIEhhbmRsZXJTdWl0
ZSBvYmplY3QuCi0gICAgICAgICIiIgotCi0gICAgICAgIGZyYWdtZW50ID0gTm9uZQotICAgICAg
ICBpZiAnIycgaW4gcmVzb3VyY2U6Ci0gICAgICAgICAgICByZXNvdXJjZSwgZnJhZ21lbnQgPSBy
ZXNvdXJjZS5zcGxpdCgnIycsIDEpCi0gICAgICAgIGlmICc/JyBpbiByZXNvdXJjZToKLSAgICAg
ICAgICAgIHJlc291cmNlID0gcmVzb3VyY2Uuc3BsaXQoJz8nLCAxKVswXQotICAgICAgICBoYW5k
bGVyX3N1aXRlID0gc2VsZi5faGFuZGxlcl9zdWl0ZV9tYXAuZ2V0KHJlc291cmNlKQotICAgICAg
ICBpZiBoYW5kbGVyX3N1aXRlIGFuZCBmcmFnbWVudDoKLSAgICAgICAgICAgIHJhaXNlIERpc3Bh
dGNoRXhjZXB0aW9uKCdGcmFnbWVudCBpZGVudGlmaWVycyBNVVNUIE5PVCBiZSB1c2VkIG9uICcK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXZWJTb2NrZXQgVVJJcycsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uSFRUUF9TVEFUVVNfQkFE
X1JFUVVFU1QpCi0gICAgICAgIHJldHVybiBoYW5kbGVyX3N1aXRlCi0KLSAgICBkZWYgX3NvdXJj
ZV9oYW5kbGVyX2ZpbGVzX2luX2RpcigKLSAgICAgICAgc2VsZiwgcm9vdF9kaXIsIHNjYW5fZGly
LCBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyKToKLSAgICAgICAgIiIiU291cmNlIGFs
bCB0aGUgaGFuZGxlciBzb3VyY2UgZmlsZXMgaW4gdGhlIHNjYW5fZGlyIGRpcmVjdG9yeS4KLQot
ICAgICAgICBUaGUgcmVzb3VyY2UgcGF0aCBpcyBkZXRlcm1pbmVkIHJlbGF0aXZlIHRvIHJvb3Rf
ZGlyLgotICAgICAgICAiIiIKLQotICAgICAgICAjIFdlIGJ1aWxkIGEgbWFwIGZyb20gcmVzb3Vy
Y2UgdG8gaGFuZGxlciBjb2RlIGFzc3VtaW5nIHRoYXQgdGhlcmUncwotICAgICAgICAjIG9ubHkg
b25lIHBhdGggZnJvbSByb290X2RpciB0byBzY2FuX2RpciBhbmQgaXQgY2FuIGJlIG9idGFpbmVk
IGJ5Ci0gICAgICAgICMgY29tcGFyaW5nIHJlYWxwYXRoIG9mIHRoZW0uCi0KLSAgICAgICAgIyBI
ZXJlIHdlIGNhbm5vdCB1c2UgYWJzcGF0aC4gU2VlCi0gICAgICAgICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjAzCi0KLSAgICAgICAgY29udmVydCA9IF9jcmVh
dGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIocm9vdF9kaXIpCi0gICAgICAgIHNjYW5fcmVh
bHBhdGggPSBvcy5wYXRoLnJlYWxwYXRoKHNjYW5fZGlyKQotICAgICAgICByb290X3JlYWxwYXRo
ID0gb3MucGF0aC5yZWFscGF0aChyb290X2RpcikKLSAgICAgICAgZm9yIHBhdGggaW4gX2VudW1l
cmF0ZV9oYW5kbGVyX2ZpbGVfcGF0aHMoc2Nhbl9yZWFscGF0aCk6Ci0gICAgICAgICAgICBpZiAo
bm90IGFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIgYW5kCi0gICAgICAgICAgICAgICAg
KG5vdCBvcy5wYXRoLnJlYWxwYXRoKHBhdGgpLnN0YXJ0c3dpdGgocm9vdF9yZWFscGF0aCkpKToK
LSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAg
ICdDYW5vbmljYWwgcGF0aCBvZiAlcyBpcyBub3QgdW5kZXIgcm9vdCBkaXJlY3RvcnknICUKLSAg
ICAgICAgICAgICAgICAgICAgcGF0aCkKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGhhbmRsZXJfc3VpdGUgPSBfc291cmNlX2hhbmRs
ZXJfZmlsZShvcGVuKHBhdGgpLnJlYWQoKSkKLSAgICAgICAgICAgIGV4Y2VwdCBEaXNwYXRjaEV4
Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9zb3VyY2Vfd2FybmluZ3MuYXBwZW5k
KCclczogJXMnICUgKHBhdGgsIGUpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg
ICAgICByZXNvdXJjZSA9IGNvbnZlcnQocGF0aCkKLSAgICAgICAgICAgIGlmIHJlc291cmNlIGlz
IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAg
ICAgICAgICAnUGF0aCB0byByZXNvdXJjZSBjb252ZXJzaW9uIG9uICVzIGZhaWxlZCcgJSBwYXRo
KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVyX3N1aXRl
X21hcFtjb252ZXJ0KHBhdGgpXSA9IGhhbmRsZXJfc3VpdGUKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2V4dGVuc2lvbnMucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQ5YTlmZGNmOTQ3OTg2YTFiNGNhY2JlNDZmM2Q1M2UwMTU4ZGI3Y2EuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9k
X3B5d2Vic29ja2V0L2V4dGVuc2lvbnMucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4ODUgKzAsMCBA
QAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1v
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0
Lmh0dHBfaGVhZGVyX3V0aWwgaW1wb3J0IHF1b3RlX2lmX25lY2Vzc2FyeQotCi0KLSMgVGhlIGxp
c3Qgb2YgYXZhaWxhYmxlIHNlcnZlciBzaWRlIGV4dGVuc2lvbiBwcm9jZXNzb3IgY2xhc3Nlcy4K
LV9hdmFpbGFibGVfcHJvY2Vzc29ycyA9IHt9Ci1fY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVz
ID0gW10KLQotCi1jbGFzcyBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2Uob2JqZWN0KToKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0g
dXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJl
cXVlc3QKLSAgICAgICAgc2VsZi5fYWN0aXZlID0gVHJ1ZQotCi0gICAgZGVmIHJlcXVlc3Qoc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0Ci0KLSAgICBkZWYgbmFtZShzZWxmKToK
LSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBjaGVja19jb25zaXN0ZW5jeV93aXRoX290
aGVyX3Byb2Nlc3NvcnMoc2VsZiwgcHJvY2Vzc29ycyk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRl
ZiBzZXRfYWN0aXZlKHNlbGYsIGFjdGl2ZSk6Ci0gICAgICAgIHNlbGYuX2FjdGl2ZSA9IGFjdGl2
ZQotCi0gICAgZGVmIGlzX2FjdGl2ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2FjdGl2
ZQotCi0gICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgotICAg
ICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIGdldF9leHRlbnNpb25fcmVzcG9uc2Uoc2VsZik6
Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9hY3RpdmU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ0V4dGVuc2lvbiAlcyBpcyBkZWFjdGl2YXRlZCcsIHNlbGYubmFtZSgpKQotICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICByZXNwb25zZSA9IHNlbGYuX2dldF9leHRlbnNp
b25fcmVzcG9uc2VfaW50ZXJuYWwoKQotICAgICAgICBpZiByZXNwb25zZSBpcyBOb25lOgotICAg
ICAgICAgICAgc2VsZi5fYWN0aXZlID0gRmFsc2UKLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlCi0K
LSAgICBkZWYgX3NldHVwX3N0cmVhbV9vcHRpb25zX2ludGVybmFsKHNlbGYsIHN0cmVhbV9vcHRp
b25zKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHNldHVwX3N0cmVhbV9vcHRpb25zKHNlbGYs
IHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgaWYgc2VsZi5fYWN0aXZlOgotICAgICAgICAgICAg
c2VsZi5fc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc3RyZWFtX29wdGlvbnMpCi0KLQot
ZGVmIF9sb2dfb3V0Z29pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAgICAgIGxvZ2dlciwgb3Jp
Z2luYWxfYnl0ZXMsIGZpbHRlcmVkX2J5dGVzLCBhdmVyYWdlX3JhdGlvKToKLSAgICAjIFByaW50
IGluZiB3aGVuIHJhdGlvIGlzIG5vdCBhdmFpbGFibGUuCi0gICAgcmF0aW8gPSBmbG9hdCgnaW5m
JykKLSAgICBpZiBvcmlnaW5hbF9ieXRlcyAhPSAwOgotICAgICAgICByYXRpbyA9IGZsb2F0KGZp
bHRlcmVkX2J5dGVzKSAvIG9yaWdpbmFsX2J5dGVzCi0KLSAgICBsb2dnZXIuZGVidWcoJ091dGdv
aW5nIGNvbXByZXNzaW9uIHJhdGlvOiAlZiAoYXZlcmFnZTogJWYpJyAlCi0gICAgICAgICAgICAo
cmF0aW8sIGF2ZXJhZ2VfcmF0aW8pKQotCi0KLWRlZiBfbG9nX2luY29taW5nX2NvbXByZXNzaW9u
X3JhdGlvKAotICAgICAgICBsb2dnZXIsIHJlY2VpdmVkX2J5dGVzLCBmaWx0ZXJlZF9ieXRlcywg
YXZlcmFnZV9yYXRpbyk6Ci0gICAgIyBQcmludCBpbmYgd2hlbiByYXRpbyBpcyBub3QgYXZhaWxh
YmxlLgotICAgIHJhdGlvID0gZmxvYXQoJ2luZicpCi0gICAgaWYgZmlsdGVyZWRfYnl0ZXMgIT0g
MDoKLSAgICAgICAgcmF0aW8gPSBmbG9hdChyZWNlaXZlZF9ieXRlcykgLyBmaWx0ZXJlZF9ieXRl
cwotCi0gICAgbG9nZ2VyLmRlYnVnKCdJbmNvbWluZyBjb21wcmVzc2lvbiByYXRpbzogJWYgKGF2
ZXJhZ2U6ICVmKScgJQotICAgICAgICAgICAgKHJhdGlvLCBhdmVyYWdlX3JhdGlvKSkKLQotCi1k
ZWYgX3BhcnNlX3dpbmRvd19iaXRzKGJpdHMpOgotICAgICIiIlJldHVybiBwYXJzZWQgaW50ZWdl
ciB2YWx1ZSBpZmYgdGhlIGdpdmVuIHN0cmluZyBjb25mb3JtcyB0byB0aGUKLSAgICBncmFtbWFy
IG9mIHRoZSB3aW5kb3cgYml0cyBleHRlbnNpb24gcGFyYW1ldGVycy4KLSAgICAiIiIKLQotICAg
IGlmIGJpdHMgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignVmFsdWUgaXMgcmVx
dWlyZWQnKQotCi0gICAgIyBGb3Igbm9uIGludGVnZXIgdmFsdWVzIHN1Y2ggYXMgIjEwLjAiLCBW
YWx1ZUVycm9yIHdpbGwgYmUgcmFpc2VkLgotICAgIGludF9iaXRzID0gaW50KGJpdHMpCi0KLSAg
ICAjIEZpcnN0IGNvbmRpdGlvbiBpcyB0byBkcm9wIGxlYWRpbmcgemVybyBjYXNlIGUuZy4gIjA4
Ii4KLSAgICBpZiBiaXRzICE9IHN0cihpbnRfYml0cykgb3IgaW50X2JpdHMgPCA4IG9yIGludF9i
aXRzID4gMTU6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgdmFsdWU6ICVyJyAl
IGJpdHMpCi0KLSAgICByZXR1cm4gaW50X2JpdHMKLQotCi1jbGFzcyBfQXZlcmFnZVJhdGlvQ2Fs
Y3VsYXRvcihvYmplY3QpOgotICAgICIiIlN0b3JlcyB0b3RhbCBieXRlcyBvZiBvcmlnaW5hbCBh
bmQgcmVzdWx0IGRhdGEsIGFuZCBjYWxjdWxhdGVzIGF2ZXJhZ2UKLSAgICByZXN1bHQgLyBvcmln
aW5hbCByYXRpby4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAg
c2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0ZXMgPSAwCi0gICAgICAgIHNlbGYuX3RvdGFsX3Jlc3Vs
dF9ieXRlcyA9IDAKLQotICAgIGRlZiBhZGRfb3JpZ2luYWxfYnl0ZXMoc2VsZiwgdmFsdWUpOgot
ICAgICAgICBzZWxmLl90b3RhbF9vcmlnaW5hbF9ieXRlcyArPSB2YWx1ZQotCi0gICAgZGVmIGFk
ZF9yZXN1bHRfYnl0ZXMoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl90b3RhbF9yZXN1bHRf
Ynl0ZXMgKz0gdmFsdWUKLQotICAgIGRlZiBnZXRfYXZlcmFnZV9yYXRpbyhzZWxmKToKLSAgICAg
ICAgaWYgc2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0ZXMgIT0gMDoKLSAgICAgICAgICAgIHJldHVy
biAoZmxvYXQoc2VsZi5fdG90YWxfcmVzdWx0X2J5dGVzKSAvCi0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5dGVzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
cmV0dXJuIGZsb2F0KCdpbmYnKQotCi0KLWNsYXNzIERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nl
c3NvcihFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UpOgotICAgICIiImRlZmxhdGUtZnJhbWUg
ZXh0ZW5zaW9uIHByb2Nlc3Nvci4KLQotICAgIFNwZWNpZmljYXRpb246Ci0gICAgaHR0cDovL3Rv
b2xzLmlldGYub3JnL2h0bWwvZHJhZnQtdHlvc2hpbm8taHliaS13ZWJzb2NrZXQtcGVyZnJhbWUt
ZGVmbGF0ZQotICAgICIiIgotCi0gICAgX1dJTkRPV19CSVRTX1BBUkFNID0gJ21heF93aW5kb3df
Yml0cycKLSAgICBfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSA9ICdub19jb250ZXh0X3Rha2Vv
dmVyJwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBFeHRlbnNp
b25Qcm9jZXNzb3JJbnRlcmZhY2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5f
cmVzcG9uc2Vfd2luZG93X2JpdHMgPSBOb25lCi0gICAgICAgIHNlbGYuX3Jlc3BvbnNlX25vX2Nv
bnRleHRfdGFrZW92ZXIgPSBGYWxzZQotICAgICAgICBzZWxmLl9iZmluYWwgPSBGYWxzZQotCi0g
ICAgICAgICMgQ2FsY3VsYXRlcwotICAgICAgICAjICAgICAoVG90YWwgb3V0Z29pbmcgYnl0ZXMg
c3VwcGxpZWQgdG8gdGhpcyBmaWx0ZXIpIC8KLSAgICAgICAgIyAgICAgKFRvdGFsIGJ5dGVzIHNl
bnQgdG8gdGhlIG5ldHdvcmsgYWZ0ZXIgYXBwbHlpbmcgdGhpcyBmaWx0ZXIpCi0gICAgICAgIHNl
bGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvciA9IF9BdmVyYWdlUmF0aW9DYWxj
dWxhdG9yKCkKLQotICAgICAgICAjIENhbGN1bGF0ZXMKLSAgICAgICAgIyAgICAgKFRvdGFsIGJ5
dGVzIHJlY2VpdmVkIGZyb20gdGhlIG5ldHdvcmspIC8KLSAgICAgICAgIyAgICAgKFRvdGFsIGlu
Y29taW5nIGJ5dGVzIG9idGFpbmVkIGFmdGVyIGFwcGx5aW5nIHRoaXMgZmlsdGVyKQotICAgICAg
ICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IgPSBfQXZlcmFnZVJhdGlv
Q2FsY3VsYXRvcigpCi0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuIGNvbW1v
bi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTgotCi0gICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3Bv
bnNlX2ludGVybmFsKHNlbGYpOgotICAgICAgICAjIEFueSB1bmtub3duIHBhcmFtZXRlciB3aWxs
IGJlIGp1c3QgaWdub3JlZC4KLQotICAgICAgICB3aW5kb3dfYml0cyA9IE5vbmUKLSAgICAgICAg
aWYgc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKHNlbGYuX1dJTkRPV19CSVRTX1BBUkFNKToK
LSAgICAgICAgICAgIHdpbmRvd19iaXRzID0gc2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3Zh
bHVlKAotICAgICAgICAgICAgICAgIHNlbGYuX1dJTkRPV19CSVRTX1BBUkFNKQotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIHdpbmRvd19iaXRzID0gX3BhcnNlX3dpbmRvd19iaXRz
KHdpbmRvd19iaXRzKQotICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBub19jb250ZXh0X3Rha2VvdmVyID0gc2Vs
Zi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAotICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9U
QUtFT1ZFUl9QQVJBTSkKLSAgICAgICAgaWYgKG5vX2NvbnRleHRfdGFrZW92ZXIgYW5kCi0gICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFsdWUoCi0gICAgICAgICAgICAg
ICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkgaXMgbm90IE5vbmUpOgotICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyID0gdXRp
bC5fUkZDMTk3OURlZmxhdGVyKAotICAgICAgICAgICAgd2luZG93X2JpdHMsIG5vX2NvbnRleHRf
dGFrZW92ZXIpCi0KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9pbmZsYXRlciA9IHV0aWwuX1JGQzE5
NzlJbmZsYXRlcigpCi0KLSAgICAgICAgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmcgPSBUcnVlCi0K
LSAgICAgICAgcmVzcG9uc2UgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKHNlbGYuX3JlcXVl
c3QubmFtZSgpKQotCi0gICAgICAgIGlmIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAg
ICAgICBzZWxmLl9XSU5ET1dfQklUU19QQVJBTSwgc3RyKHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19i
aXRzKSkKLSAgICAgICAgaWYgc2VsZi5fcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3ZlcjoKLSAg
ICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5f
Tk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwgTm9uZSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoCi0gICAgICAgICAgICAnRW5hYmxlICVzIGV4dGVuc2lvbiAoJwotICAgICAgICAgICAg
J3JlcXVlc3Q6IHdpbmRvd19iaXRzPSVzOyBub19jb250ZXh0X3Rha2VvdmVyPSVyLCAnCi0gICAg
ICAgICAgICAncmVzcG9uc2U6IHdpbmRvd193Yml0cz0lczsgbm9fY29udGV4dF90YWtlb3Zlcj0l
ciknICUKLSAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0Lm5hbWUoKSwKLSAgICAgICAgICAgICB3
aW5kb3dfYml0cywKLSAgICAgICAgICAgICBub19jb250ZXh0X3Rha2VvdmVyLAotICAgICAgICAg
ICAgIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzLAotICAgICAgICAgICAgIHNlbGYuX3Jlc3Bv
bnNlX25vX2NvbnRleHRfdGFrZW92ZXIpKQotCi0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0g
ICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9u
cyk6Ci0KLSAgICAgICAgY2xhc3MgX091dGdvaW5nRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAg
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuX3Bh
cmVudCA9IHBhcmVudAotCi0gICAgICAgICAgICBkZWYgZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAg
ICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuX291dGdvaW5nX2ZpbHRlcihmcmFtZSkKLQotICAg
ICAgICBjbGFzcyBfSW5jb21pbmdGaWx0ZXIob2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFy
ZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWUpOgotICAgICAgICAgICAg
ICAgIHNlbGYuX3BhcmVudC5faW5jb21pbmdfZmlsdGVyKGZyYW1lKQotCi0gICAgICAgIHN0cmVh
bV9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMuYXBwZW5kKAotICAgICAgICAgICAgX091
dGdvaW5nRmlsdGVyKHNlbGYpKQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5pbmNvbWluZ19mcmFt
ZV9maWx0ZXJzLmluc2VydCgKLSAgICAgICAgICAgIDAsIF9JbmNvbWluZ0ZpbHRlcihzZWxmKSkK
LQotICAgIGRlZiBzZXRfcmVzcG9uc2Vfd2luZG93X2JpdHMoc2VsZiwgdmFsdWUpOgotICAgICAg
ICBzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0cyA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X3Jlc3Bv
bnNlX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9yZXNw
b25zZV9ub19jb250ZXh0X3Rha2VvdmVyID0gdmFsdWUKLQotICAgIGRlZiBzZXRfYmZpbmFsKHNl
bGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fYmZpbmFsID0gdmFsdWUKLQotICAgIGRlZiBlbmFi
bGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6Ci0gICAgICAgIHNlbGYuX2NvbXByZXNzX291
dGdvaW5nID0gVHJ1ZQotCi0gICAgZGVmIGRpc2FibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2Vs
Zik6Ci0gICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nID0gRmFsc2UKLQotICAgIGRlZiBf
b3V0Z29pbmdfZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgIiIiVHJhbnNmb3JtIG91dGdv
aW5nIGZyYW1lcy4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9ubHkgYnkKLSAgICAgICAgYW4gX091
dGdvaW5nRmlsdGVyIGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICBvcmlnaW5hbF9w
YXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5bG9hZCkKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdf
YXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRlcygKLSAgICAgICAgICAg
ICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgaWYgKG5vdCBzZWxmLl9jb21w
cmVzc19vdXRnb2luZyBvcgotICAgICAgICAgICAgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZy
YW1lLm9wY29kZSkpOgotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19j
YWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCi0gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFs
X3BheWxvYWRfc2l6ZSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGZyYW1lLnBheWxv
YWQgPSBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyLmZpbHRlcigKLSAgICAgICAgICAgIGZyYW1lLnBh
eWxvYWQsIGJmaW5hbD1zZWxmLl9iZmluYWwpCi0gICAgICAgIGZyYW1lLnJzdjEgPSAxCi0KLSAg
ICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0gbGVuKGZyYW1lLnBheWxvYWQpCi0gICAgICAg
IHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVz
KAotICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9n
X291dGdvaW5nX2NvbXByZXNzaW9uX3JhdGlvKAotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ciwKLSAgICAgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAg
ICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIHNlbGYuX291dGdvaW5n
X2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5nZXRfYXZlcmFnZV9yYXRpbygpKQotCi0gICAgZGVm
IF9pbmNvbWluZ19maWx0ZXIoc2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJUcmFuc2Zvcm0gaW5j
b21pbmcgZnJhbWVzLiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb25seSBieQotICAgICAgICBhbiBf
SW5jb21pbmdGaWx0ZXIgaW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJlY2VpdmVk
X3BheWxvYWRfc2l6ZSA9IGxlbihmcmFtZS5wYXlsb2FkKQotICAgICAgICBzZWxmLl9pbmNvbWlu
Z19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAg
ICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgaWYgZnJhbWUucnN2MSAhPSAx
IG9yIGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAg
c2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRl
cygKLSAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplKQotICAgICAgICAg
ICAgcmV0dXJuCi0KLSAgICAgICAgZnJhbWUucGF5bG9hZCA9IHNlbGYuX3JmYzE5NzlfaW5mbGF0
ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIGZyYW1lLnJzdjEgPSAwCi0KLSAgICAg
ICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0gbGVuKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIHNl
bGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMo
Ci0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIF9sb2df
aW5jb21pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LAotICAgICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAg
ICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgc2VsZi5faW5jb21pbmdf
YXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmdldF9hdmVyYWdlX3JhdGlvKCkpCi0KLQotX2F2YWls
YWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTl0gPSAoCi0gICAg
RGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKQotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9u
YW1lcy5hcHBlbmQoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotCi1fYXZhaWxhYmxl
X3Byb2Nlc3NvcnNbY29tbW9uLlhfV0VCS0lUX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OXSA9ICgK
LSAgICBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IpCi1fY29tcHJlc3Npb25fZXh0ZW5z
aW9uX25hbWVzLmFwcGVuZChjb21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04p
Ci0KLQotZGVmIF9wYXJzZV9jb21wcmVzc2lvbl9tZXRob2QoZGF0YSk6Ci0gICAgIiIiUGFyc2Vz
IHRoZSB2YWx1ZSBvZiAibWV0aG9kIiBleHRlbnNpb24gcGFyYW1ldGVyLiIiIgotCi0gICAgcmV0
dXJuIGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKGRhdGEpCi0KLQotZGVmIF9jcmVhdGVfYWNjZXB0
ZWRfbWV0aG9kX2Rlc2MobWV0aG9kX25hbWUsIG1ldGhvZF9wYXJhbXMpOgotICAgICIiIkNyZWF0
ZXMgYWNjZXB0ZWQtbWV0aG9kLWRlc2MgZnJvbSBnaXZlbiBtZXRob2QgbmFtZSBhbmQgcGFyYW1l
dGVycyIiIgotCi0gICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihtZXRo
b2RfbmFtZSkKLSAgICBmb3IgbmFtZSwgdmFsdWUgaW4gbWV0aG9kX3BhcmFtczoKLSAgICAgICAg
ZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIobmFtZSwgdmFsdWUpCi0gICAgcmV0dXJuIGNvbW1vbi5m
b3JtYXRfZXh0ZW5zaW9uKGV4dGVuc2lvbikKLQotCi1jbGFzcyBDb21wcmVzc2lvbkV4dGVuc2lv
blByb2Nlc3NvckJhc2UoRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlKToKLSAgICAiIiJCYXNl
IGNsYXNzIGZvciBwZXJmcmFtZS1jb21wcmVzcyBhbmQgcGVybWVzc2FnZS1jb21wcmVzcyBleHRl
bnNpb24uIiIiCi0KLSAgICBfTUVUSE9EX1BBUkFNID0gJ21ldGhvZCcKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNl
Ll9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0
X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAgICBzZWxmLl9jb21wcmVzc2lvbl9tZXRob2RfbmFt
ZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fY29tcHJlc3Npb25fcHJvY2Vzc29yID0gTm9uZQotICAg
ICAgICBzZWxmLl9jb21wcmVzc2lvbl9wcm9jZXNzb3JfaG9vayA9IE5vbmUKLQotICAgIGRlZiBu
YW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gJycKLQotICAgIGRlZiBfbG9va3VwX2NvbXByZXNz
aW9uX3Byb2Nlc3NvcihzZWxmLCBtZXRob2RfZGVzYyk6Ci0gICAgICAgIHJldHVybiBOb25lCi0K
LSAgICBkZWYgX2dldF9jb21wcmVzc2lvbl9wcm9jZXNzb3JfcmVzcG9uc2Uoc2VsZik6Ci0gICAg
ICAgICIiIkxvb2tzIHVwIHRoZSBjb21wcmVzc2lvbiBwcm9jZXNzb3IgYmFzZWQgb24gdGhlIHNl
bGYuX3JlcXVlc3QgYW5kCi0gICAgICAgICAgIHJldHVybnMgdGhlIGNvbXByZXNzaW9uIHByb2Nl
c3NvcidzIHJlc3BvbnNlLgotICAgICAgICAiIiIKLQotICAgICAgICBtZXRob2RfbGlzdCA9IHNl
bGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZShzZWxmLl9NRVRIT0RfUEFSQU0pCi0gICAg
ICAgIGlmIG1ldGhvZF9saXN0IGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAg
ICAgICBtZXRob2RzID0gX3BhcnNlX2NvbXByZXNzaW9uX21ldGhvZChtZXRob2RfbGlzdCkKLSAg
ICAgICAgaWYgbWV0aG9kcyBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAg
ICAgY29tcmVzc2lvbl9wcm9jZXNzb3IgPSBOb25lCi0gICAgICAgICMgVGhlIGN1cnJlbnQgaW1w
bGVtZW50YXRpb24gdHJpZXMgb25seSB0aGUgZmlyc3QgbWV0aG9kIHRoYXQgbWF0Y2hlcwotICAg
ICAgICAjIHN1cHBvcnRlZCBhbGdvcml0aG0uIEZvbGxvd2luZyBtZXRob2RzIGFyZW4ndCB0cmll
ZCBldmVuIGlmIHRoZQotICAgICAgICAjIGZpcnN0IG9uZSBpcyByZWplY3RlZC4KLSAgICAgICAg
IyBUT0RPKGJhc2hpKTogTmVlZCB0byBjbGFyaWZ5IHRoaXMgYmVoYXZpb3IuCi0gICAgICAgIGZv
ciBtZXRob2RfZGVzYyBpbiBtZXRob2RzOgotICAgICAgICAgICAgY29tcHJlc3Npb25fcHJvY2Vz
c29yID0gc2VsZi5fbG9va3VwX2NvbXByZXNzaW9uX3Byb2Nlc3NvcigKLSAgICAgICAgICAgICAg
ICBtZXRob2RfZGVzYykKLSAgICAgICAgICAgIGlmIGNvbXByZXNzaW9uX3Byb2Nlc3NvciBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLl9jb21wcmVzc2lvbl9tZXRob2RfbmFtZSA9
IG1ldGhvZF9kZXNjLm5hbWUoKQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGlmIGNv
bXByZXNzaW9uX3Byb2Nlc3NvciBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQot
ICAgICAgICBpZiBzZWxmLl9jb21wcmVzc2lvbl9wcm9jZXNzb3JfaG9vazoKLSAgICAgICAgICAg
IHNlbGYuX2NvbXByZXNzaW9uX3Byb2Nlc3Nvcl9ob29rKGNvbXByZXNzaW9uX3Byb2Nlc3NvcikK
LQotICAgICAgICBwcm9jZXNzb3JfcmVzcG9uc2UgPSBjb21wcmVzc2lvbl9wcm9jZXNzb3IuZ2V0
X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIGlmIHByb2Nlc3Nvcl9yZXNwb25zZSBpcyBO
b25lOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgc2VsZi5fY29tcHJlc3Npb25f
cHJvY2Vzc29yID0gY29tcHJlc3Npb25fcHJvY2Vzc29yCi0gICAgICAgIHJldHVybiBwcm9jZXNz
b3JfcmVzcG9uc2UKLQotICAgIGRlZiBfZ2V0X2V4dGVuc2lvbl9yZXNwb25zZV9pbnRlcm5hbChz
ZWxmKToKLSAgICAgICAgcHJvY2Vzc29yX3Jlc3BvbnNlID0gc2VsZi5fZ2V0X2NvbXByZXNzaW9u
X3Byb2Nlc3Nvcl9yZXNwb25zZSgpCi0gICAgICAgIGlmIHByb2Nlc3Nvcl9yZXNwb25zZSBpcyBO
b25lOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICByZXNwb25zZSA9IGNvbW1v
bi5FeHRlbnNpb25QYXJhbWV0ZXIoc2VsZi5fcmVxdWVzdC5uYW1lKCkpCi0gICAgICAgIGFjY2Vw
dGVkX21ldGhvZF9kZXNjID0gX2NyZWF0ZV9hY2NlcHRlZF9tZXRob2RfZGVzYygKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29tcHJlc3Npb25fbWV0aG9kX25hbWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvcl9yZXNwb25zZS5n
ZXRfcGFyYW1ldGVycygpKQotICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKHNlbGYuX01F
VEhPRF9QQVJBTSwgYWNjZXB0ZWRfbWV0aG9kX2Rlc2MpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygKLSAgICAgICAgICAgICdFbmFibGUgJXMgZXh0ZW5zaW9uIChtZXRob2Q6ICVzKScgJQot
ICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QubmFtZSgpLCBzZWxmLl9jb21wcmVzc2lvbl9tZXRo
b2RfbmFtZSkpCi0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgZGVmIF9zZXR1cF9zdHJl
YW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIGlmIHNl
bGYuX2NvbXByZXNzaW9uX3Byb2Nlc3NvciBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgIHNlbGYuX2NvbXByZXNzaW9uX3Byb2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhz
dHJlYW1fb3B0aW9ucykKLQotICAgIGRlZiBzZXRfY29tcHJlc3Npb25fcHJvY2Vzc29yX2hvb2so
c2VsZiwgaG9vayk6Ci0gICAgICAgIHNlbGYuX2NvbXByZXNzaW9uX3Byb2Nlc3Nvcl9ob29rID0g
aG9vawotCi0gICAgZGVmIGdldF9jb21wcmVzc2lvbl9wcm9jZXNzb3Ioc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLl9jb21wcmVzc2lvbl9wcm9jZXNzb3IKLQotCi1jbGFzcyBQZXJNZXNzYWdl
RGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UpOgot
ICAgICIiInBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24gcHJvY2Vzc29yLiBJdCdzIGFsc28g
dXNlZCBmb3IKLSAgICBwZXJtZXNzYWdlLWNvbXByZXNzIGV4dGVuc2lvbiB3aGVuIHRoZSBkZWZs
YXRlIG1ldGhvZCBpcyBjaG9zZW4uCi0KLSAgICBTcGVjaWZpY2F0aW9uOgotICAgIGh0dHA6Ly90
b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaHliaS1wZXJtZXNzYWdlLWNvbXByZXNzaW9u
LTA4Ci0gICAgIiIiCi0KLSAgICBfU0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSA9ICdzZXJ2
ZXJfbWF4X3dpbmRvd19iaXRzJwotICAgIF9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJB
TSA9ICdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicKLSAgICBfQ0xJRU5UX01BWF9XSU5ET1df
QklUU19QQVJBTSA9ICdjbGllbnRfbWF4X3dpbmRvd19iaXRzJwotICAgIF9DTElFTlRfTk9fQ09O
VEVYVF9UQUtFT1ZFUl9QQVJBTSA9ICdjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcicKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBkcmFmdDA4PVRydWUpOgotICAgICAgICAiIiJD
b25zdHJ1Y3QgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IKLQotICAgICAgICBB
cmdzOgotICAgICAgICAgICAgZHJhZnQwODogRm9sbG93IHRoZSBjb25zdHJhaW50cyBvbiB0aGUg
cGFyYW1ldGVycyB0aGF0IHdlcmUgbm90Ci0gICAgICAgICAgICAgICAgc3BlY2lmaWVkIGZvciBw
ZXJtZXNzYWdlLWNvbXByZXNzIGJ1dCBhcmUgc3BlY2lmaWVkIGZvcgotICAgICAgICAgICAgICAg
IHBlcm1lc3NhZ2UtZGVmbGF0ZSBhcyBvbgotICAgICAgICAgICAgICAgIGRyYWZ0LWlldGYtaHli
aS1wZXJtZXNzYWdlLWNvbXByZXNzaW9uLTA4LgotICAgICAgICAiIiIKLQotICAgICAgICBFeHRl
bnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKLSAgICAgICAg
c2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2Vs
Zi5fcHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSBOb25lCi0gICAgICAgIHNlbGYu
X2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0gRmFsc2UKLQotICAgICAgICBzZWxmLl9kcmFm
dDA4ID0gZHJhZnQwOAotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAnZGVm
bGF0ZScKLQotICAgIGRlZiBfZ2V0X2V4dGVuc2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxmKToK
LSAgICAgICAgaWYgc2VsZi5fZHJhZnQwODoKLSAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYu
X3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl9uYW1lcygpOgotICAgICAgICAgICAgICAgIGlmIG5hbWUg
bm90IGluIFtzZWxmLl9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJB
TSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5E
T1dfQklUU19QQVJBTV06Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
VW5rbm93biBwYXJhbWV0ZXI6ICVyJywgbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgICMgQW55IHVua25vd24gcGFyYW1ldGVy
IHdpbGwgYmUganVzdCBpZ25vcmVkLgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIHNlcnZl
cl9tYXhfd2luZG93X2JpdHMgPSBOb25lCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuaGFzX3Bh
cmFtZXRlcihzZWxmLl9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNKToKLSAgICAgICAgICAg
IHNlcnZlcl9tYXhfd2luZG93X2JpdHMgPSBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFs
dWUoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFS
QU0pCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VydmVyX21heF93aW5kb3df
Yml0cyA9IF9wYXJzZV93aW5kb3dfYml0cygKLSAgICAgICAgICAgICAgICAgICAgc2VydmVyX21h
eF93aW5kb3dfYml0cykKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQmFkICVzIHBhcmFtZXRlcjogJXInLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJfTUFYX1dJTkRPV19C
SVRTX1BBUkFNLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlKQotICAgICAg
ICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgc2VydmVyX25vX2NvbnRleHRfdGFrZW92
ZXIgPSBzZWxmLl9yZXF1ZXN0Lmhhc19wYXJhbWV0ZXIoCi0gICAgICAgICAgICBzZWxmLl9TRVJW
RVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkKLSAgICAgICAgaWYgKHNlcnZlcl9ub19jb250
ZXh0X3Rha2VvdmVyIGFuZAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVy
X3ZhbHVlKAotICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVS
X1BBUkFNKSBpcyBub3QgTm9uZSk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVz
IHBhcmFtZXRlciBtdXN0IG5vdCBoYXZlIGEgdmFsdWU6ICVyJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcikK
LSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgIyBjbGllbnRfbWF4X3dpbmRvd19i
aXRzIGZyb20gYSBjbGllbnQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNsaWVudCBjYW4KLSAgICAg
ICAgIyBhY2NlcHQgY2xpZW50X21heF93aW5kb3dfYml0cyBmcm9tIGEgc2VydmVyIG9yIG5vdC4K
LSAgICAgICAgY2xpZW50X2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSBzZWxmLl9yZXF1ZXN0Lmhh
c19wYXJhbWV0ZXIoCi0gICAgICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BB
UkFNKQotICAgICAgICBpZiAoc2VsZi5fZHJhZnQwOCBhbmQKLSAgICAgICAgICAgIGNsaWVudF9j
bGllbnRfbWF4X3dpbmRvd19iaXRzIGFuZAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5nZXRf
cGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9X
X0JJVFNfUEFSQU0pIGlzIG5vdCBOb25lKToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnJXMgcGFyYW1ldGVyIG11c3Qgbm90IGhhdmUgYSB2YWx1ZSBpbiBhICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnY2xpZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlOiAlcicsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklU
U19QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfY2xpZW50X21h
eF93aW5kb3dfYml0cykKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgc2VsZi5f
cmZjMTk3OV9kZWZsYXRlciA9IHV0aWwuX1JGQzE5NzlEZWZsYXRlcigKLSAgICAgICAgICAgIHNl
cnZlcl9tYXhfd2luZG93X2JpdHMsIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAg
ICAgICMgTm90ZSB0aGF0IHdlIHByZXBhcmUgZm9yIGluY29taW5nIG1lc3NhZ2VzIGNvbXByZXNz
ZWQgd2l0aCB3aW5kb3cKLSAgICAgICAgIyBiaXRzIHVwdG8gMTUgcmVnYXJkbGVzcyBvZiB0aGUg
Y2xpZW50X21heF93aW5kb3dfYml0cyB2YWx1ZSB0byBiZQotICAgICAgICAjIHNlbnQgdG8gdGhl
IGNsaWVudC4KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9pbmZsYXRlciA9IHV0aWwuX1JGQzE5NzlJ
bmZsYXRlcigpCi0KLSAgICAgICAgc2VsZi5fZnJhbWVyID0gX1Blck1lc3NhZ2VEZWZsYXRlRnJh
bWVyKAotICAgICAgICAgICAgc2VydmVyX21heF93aW5kb3dfYml0cywgc2VydmVyX25vX2NvbnRl
eHRfdGFrZW92ZXIpCi0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXRfYmZpbmFsKEZhbHNlKQotICAg
ICAgICBzZWxmLl9mcmFtZXIuc2V0X2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQoVHJ1ZSkKLQot
ICAgICAgICByZXNwb25zZSA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoc2VsZi5fcmVxdWVz
dC5uYW1lKCkpCi0KLSAgICAgICAgaWYgc2VydmVyX21heF93aW5kb3dfYml0cyBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAg
c2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAgICAgICAgICAgICBzdHIo
c2VydmVyX21heF93aW5kb3dfYml0cykpCi0KLSAgICAgICAgaWYgc2VydmVyX25vX2NvbnRleHRf
dGFrZW92ZXI6Ci0gICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKAotICAgICAgICAg
ICAgICAgIHNlbGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNLCBOb25lKQotCi0g
ICAgICAgIGlmIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgaWYgc2VsZi5fZHJhZnQwOCBhbmQgbm90IGNsaWVudF9jbGllbnRf
bWF4X3dpbmRvd19iaXRzOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUHJv
Y2Vzc29yIGlzIGNvbmZpZ3VyZWQgdG8gdXNlICVzIGJ1dCAnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICd0aGUgY2xpZW50IGNhbm5vdCBhY2NlcHQgaXQnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BB
UkFNKQotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICByZXNwb25zZS5h
ZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJ
VFNfUEFSQU0sCi0gICAgICAgICAgICAgICAgc3RyKHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4
X3dpbmRvd19iaXRzKSkKLQotICAgICAgICBpZiBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtl
b3ZlcjoKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAg
ICAgc2VsZi5fQ0xJRU5UX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sIE5vbmUpCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0VuYWJsZSAlcyBleHRlbnNpb24g
KCcKLSAgICAgICAgICAgICdyZXF1ZXN0OiBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPSVzOyAnCi0g
ICAgICAgICAgICAnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXI9JXIsICcKLSAgICAgICAgICAg
ICdyZXNwb25zZTogY2xpZW50X21heF93aW5kb3dfYml0cz0lczsgJwotICAgICAgICAgICAgJ2Ns
aWVudF9ub19jb250ZXh0X3Rha2VvdmVyPSVyKScgJQotICAgICAgICAgICAgKHNlbGYuX3JlcXVl
c3QubmFtZSgpLAotICAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMsCi0gICAgICAg
ICAgICAgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIsCi0gICAgICAgICAgICAgc2VsZi5fcHJl
ZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMsCi0gICAgICAgICAgICAgc2VsZi5fY2xpZW50
X25vX2NvbnRleHRfdGFrZW92ZXIpKQotCi0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAg
ZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6
Ci0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9u
cykKLQotICAgIGRlZiBzZXRfY2xpZW50X21heF93aW5kb3dfYml0cyhzZWxmLCB2YWx1ZSk6Ci0g
ICAgICAgICIiIklmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhpcyBjbGFzcyBhZGRzIHRo
ZQotICAgICAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGV4dGVuc2lvbiBwYXJhbWV0ZXIgdG8g
dGhlIGhhbmRzaGFrZSByZXNwb25zZSwKLSAgICAgICAgYnV0IGRvZXNuJ3QgcmVkdWNlIHRoZSBM
Wjc3IHNsaWRpbmcgd2luZG93IHNpemUgb2YgaXRzIGluZmxhdGVyLgotICAgICAgICBJLmUuLCB5
b3UgY2FuIHVzZSB0aGlzIGZvciB0ZXN0aW5nIGNsaWVudCBpbXBsZW1lbnRhdGlvbiBidXQgY2Fu
bm90Ci0gICAgICAgIHJlZHVjZSBtZW1vcnkgdXNhZ2Ugb2YgdGhpcyBjbGFzcy4KLQotICAgICAg
ICBJZiB0aGlzIG1ldGhvZCBoYXMgYmVlbiBjYWxsZWQgd2l0aCBUcnVlIGFuZCBhbiBvZmZlciB3
aXRob3V0IHRoZQotICAgICAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGV4dGVuc2lvbiBwYXJh
bWV0ZXIgaXMgcmVjZWl2ZWQsCi0gICAgICAgIC0gKFdoZW4gcHJvY2Vzc2luZyB0aGUgcGVybWVz
c2FnZS1kZWZsYXRlIGV4dGVuc2lvbikgdGhpcyBwcm9jZXNzb3IKLSAgICAgICAgICBkZWNsaW5l
cyB0aGUgcmVxdWVzdC4KLSAgICAgICAgLSAoV2hlbiBwcm9jZXNzaW5nIHRoZSBwZXJtZXNzYWdl
LWNvbXByZXNzIGV4dGVuc2lvbikgdGhpcyBwcm9jZXNzb3IKLSAgICAgICAgICBhY2NlcHRzIHRo
ZSByZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9wcmVmZXJyZWRfY2xpZW50
X21heF93aW5kb3dfYml0cyA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X2NsaWVudF9ub19jb250ZXh0
X3Rha2VvdmVyKHNlbGYsIHZhbHVlKToKLSAgICAgICAgIiIiSWYgdGhpcyBvcHRpb24gaXMgc3Bl
Y2lmaWVkLCB0aGlzIGNsYXNzIGFkZHMgdGhlCi0gICAgICAgIGNsaWVudF9ub19jb250ZXh0X3Rh
a2VvdmVyIGV4dGVuc2lvbiBwYXJhbWV0ZXIgdG8gdGhlIGhhbmRzaGFrZQotICAgICAgICByZXNw
b25zZSwgYnV0IGRvZXNuJ3QgcmVzZXQgaW5mbGF0ZXIgZm9yIGVhY2ggbWVzc2FnZS4gSS5lLiwg
eW91IGNhbgotICAgICAgICB1c2UgdGhpcyBmb3IgdGVzdGluZyBjbGllbnQgaW1wbGVtZW50YXRp
b24gYnV0IGNhbm5vdCByZWR1Y2UgbWVtb3J5Ci0gICAgICAgIHVzYWdlIG9mIHRoaXMgY2xhc3Mu
Ci0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVy
ID0gdmFsdWUKLQotICAgIGRlZiBzZXRfYmZpbmFsKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2Vs
Zi5fZnJhbWVyLnNldF9iZmluYWwodmFsdWUpCi0KLSAgICBkZWYgZW5hYmxlX291dGdvaW5nX2Nv
bXByZXNzaW9uKHNlbGYpOgotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0X2NvbXByZXNzX291dGdv
aW5nX2VuYWJsZWQoVHJ1ZSkKLQotICAgIGRlZiBkaXNhYmxlX291dGdvaW5nX2NvbXByZXNzaW9u
KHNlbGYpOgotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0X2NvbXByZXNzX291dGdvaW5nX2VuYWJs
ZWQoRmFsc2UpCi0KLQotY2xhc3MgX1Blck1lc3NhZ2VEZWZsYXRlRnJhbWVyKG9iamVjdCk6Ci0g
ICAgIiIiQSBmcmFtZXIgZm9yIGV4dGVuc2lvbnMgd2l0aCBwZXItbWVzc2FnZSBERUZMQVRFIGZl
YXR1cmUuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZGVmbGF0ZV9tYXhfd2luZG93X2Jp
dHMsIGRlZmxhdGVfbm9fY29udGV4dF90YWtlb3Zlcik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9
IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfZGVm
bGF0ZXIgPSB1dGlsLl9SRkMxOTc5RGVmbGF0ZXIoCi0gICAgICAgICAgICBkZWZsYXRlX21heF93
aW5kb3dfYml0cywgZGVmbGF0ZV9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgICAgIHNlbGYu
X3JmYzE5NzlfaW5mbGF0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQotCi0gICAgICAgIHNl
bGYuX2JmaW5hbCA9IEZhbHNlCi0KLSAgICAgICAgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmdfZW5h
YmxlZCA9IEZhbHNlCi0KLSAgICAgICAgIyBUcnVlIGlmIGEgbWVzc2FnZSBpcyBmcmFnbWVudGVk
IGFuZCBjb21wcmVzc2lvbiBpcyBvbmdvaW5nLgotICAgICAgICBzZWxmLl9jb21wcmVzc19vbmdv
aW5nID0gRmFsc2UKLQotICAgICAgICAjIENhbGN1bGF0ZXMKLSAgICAgICAgIyAgICAgKFRvdGFs
IG91dGdvaW5nIGJ5dGVzIHN1cHBsaWVkIHRvIHRoaXMgZmlsdGVyKSAvCi0gICAgICAgICMgICAg
IChUb3RhbCBieXRlcyBzZW50IHRvIHRoZSBuZXR3b3JrIGFmdGVyIGFwcGx5aW5nIHRoaXMgZmls
dGVyKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IgPSBf
QXZlcmFnZVJhdGlvQ2FsY3VsYXRvcigpCi0KLSAgICAgICAgIyBDYWxjdWxhdGVzCi0gICAgICAg
ICMgICAgIChUb3RhbCBieXRlcyByZWNlaXZlZCBmcm9tIHRoZSBuZXR3b3JrKSAvCi0gICAgICAg
ICMgICAgIChUb3RhbCBpbmNvbWluZyBieXRlcyBvYnRhaW5lZCBhZnRlciBhcHBseWluZyB0aGlz
IGZpbHRlcikKLSAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9y
ID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQotCi0gICAgZGVmIHNldF9iZmluYWwoc2VsZiwg
dmFsdWUpOgotICAgICAgICBzZWxmLl9iZmluYWwgPSB2YWx1ZQotCi0gICAgZGVmIHNldF9jb21w
cmVzc19vdXRnb2luZ19lbmFibGVkKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fY29tcHJl
c3Nfb3V0Z29pbmdfZW5hYmxlZCA9IHZhbHVlCi0KLSAgICBkZWYgX3Byb2Nlc3NfaW5jb21pbmdf
bWVzc2FnZShzZWxmLCBtZXNzYWdlLCBkZWNvbXByZXNzKToKLSAgICAgICAgaWYgbm90IGRlY29t
cHJlc3M6Ci0gICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgICAgIHJlY2VpdmVkX3Bh
eWxvYWRfc2l6ZSA9IGxlbihtZXNzYWdlKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdl
X3JhdGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAgICAgICByZWNl
aXZlZF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3JmYzE5NzlfaW5m
bGF0ZXIuZmlsdGVyKG1lc3NhZ2UpCi0KLSAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0g
bGVuKG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3Vs
YXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9h
ZF9zaXplKQotCi0gICAgICAgIF9sb2dfaW5jb21pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAg
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLAotICAgICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxv
YWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUsCi0gICAgICAg
ICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmdldF9hdmVy
YWdlX3JhdGlvKCkpCi0KLSAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQotICAgIGRlZiBfcHJvY2Vz
c19vdXRnb2luZ19tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVuZCwgYmluYXJ5KToKLSAgICAgICAg
aWYgbm90IGJpbmFyeToKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRm
LTgnKQotCi0gICAgICAgIGlmIG5vdCBzZWxmLl9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkOgot
ICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQotICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3Np
emUgPSBsZW4obWVzc2FnZSkKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19j
YWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRlcygKLSAgICAgICAgICAgIG9yaWdpbmFsX3BheWxv
YWRfc2l6ZSkKLQotICAgICAgICBtZXNzYWdlID0gc2VsZi5fcmZjMTk3OV9kZWZsYXRlci5maWx0
ZXIoCi0gICAgICAgICAgICBtZXNzYWdlLCBlbmQ9ZW5kLCBiZmluYWw9c2VsZi5fYmZpbmFsKQot
Ci0gICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSA9IGxlbihtZXNzYWdlKQotICAgICAgICBz
ZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygK
LSAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9nX291dGdv
aW5nX2NvbXByZXNzaW9uX3JhdGlvKAotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKLSAg
ICAgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgZmls
dGVyZWRfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJh
Z2VfcmF0aW9fY2FsY3VsYXRvci5nZXRfYXZlcmFnZV9yYXRpbygpKQotCi0gICAgICAgIGlmIG5v
dCBzZWxmLl9jb21wcmVzc19vbmdvaW5nOgotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJh
bWVfZmlsdGVyLnNldF9jb21wcmVzc2lvbl9iaXQoKQotICAgICAgICBzZWxmLl9jb21wcmVzc19v
bmdvaW5nID0gbm90IGVuZAotICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgZGVmIF9wcm9j
ZXNzX2luY29taW5nX2ZyYW1lKHNlbGYsIGZyYW1lKToKLSAgICAgICAgaWYgZnJhbWUucnN2MSA9
PSAxIGFuZCBub3QgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6Ci0gICAg
ICAgICAgICBzZWxmLl9pbmNvbWluZ19tZXNzYWdlX2ZpbHRlci5kZWNvbXByZXNzX25leHRfbWVz
c2FnZSgpCi0gICAgICAgICAgICBmcmFtZS5yc3YxID0gMAotCi0gICAgZGVmIF9wcm9jZXNzX291
dGdvaW5nX2ZyYW1lKHNlbGYsIGZyYW1lLCBjb21wcmVzc2lvbl9iaXQpOgotICAgICAgICBpZiAo
bm90IGNvbXByZXNzaW9uX2JpdCBvcgotICAgICAgICAgICAgY29tbW9uLmlzX2NvbnRyb2xfb3Bj
b2RlKGZyYW1lLm9wY29kZSkpOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgZnJhbWUu
cnN2MSA9IDEKLQotICAgIGRlZiBzZXR1cF9zdHJlYW1fb3B0aW9ucyhzZWxmLCBzdHJlYW1fb3B0
aW9ucyk6Ci0gICAgICAgICIiIkNyZWF0ZXMgZmlsdGVycyBhbmQgc2V0cyB0aGVtIHRvIHRoZSBT
dHJlYW1PcHRpb25zLiIiIgotCi0gICAgICAgIGNsYXNzIF9PdXRnb2luZ01lc3NhZ2VGaWx0ZXIo
b2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0
ZXIoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX3BhcmVudC5fcHJvY2Vzc19vdXRnb2luZ19tZXNzYWdlKAotICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlLCBlbmQsIGJpbmFyeSkKLQotICAgICAgICBjbGFzcyBfSW5j
b21pbmdNZXNzYWdlRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotICAg
ICAgICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlID0gRmFsc2UKLQotICAg
ICAgICAgICAgZGVmIGRlY29tcHJlc3NfbmV4dF9tZXNzYWdlKHNlbGYpOgotICAgICAgICAgICAg
ICAgIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlID0gVHJ1ZQotCi0gICAgICAgICAgICBk
ZWYgZmlsdGVyKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxm
Ll9wYXJlbnQuX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2FnZSgKLSAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZSwgc2VsZi5fZGVjb21wcmVzc19uZXh0X21lc3NhZ2UpCi0gICAgICAgICAgICAgICAg
c2VsZi5fZGVjb21wcmVzc19uZXh0X21lc3NhZ2UgPSBGYWxzZQotICAgICAgICAgICAgICAgIHJl
dHVybiBtZXNzYWdlCi0KLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfbWVzc2FnZV9maWx0ZXIgPSBf
T3V0Z29pbmdNZXNzYWdlRmlsdGVyKHNlbGYpCi0gICAgICAgIHNlbGYuX2luY29taW5nX21lc3Nh
Z2VfZmlsdGVyID0gX0luY29taW5nTWVzc2FnZUZpbHRlcihzZWxmKQotICAgICAgICBzdHJlYW1f
b3B0aW9ucy5vdXRnb2luZ19tZXNzYWdlX2ZpbHRlcnMuYXBwZW5kKAotICAgICAgICAgICAgc2Vs
Zi5fb3V0Z29pbmdfbWVzc2FnZV9maWx0ZXIpCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLmluY29t
aW5nX21lc3NhZ2VfZmlsdGVycy5hcHBlbmQoCi0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19t
ZXNzYWdlX2ZpbHRlcikKLQotICAgICAgICBjbGFzcyBfT3V0Z29pbmdGcmFtZUZpbHRlcihvYmpl
Y3QpOgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAg
ICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKLSAgICAgICAgICAgICAgICBzZWxmLl9zZXRf
Y29tcHJlc3Npb25fYml0ID0gRmFsc2UKLQotICAgICAgICAgICAgZGVmIHNldF9jb21wcmVzc2lv
bl9iaXQoc2VsZik6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9
IFRydWUKLQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fcGFyZW50Ll9wcm9jZXNzX291dGdvaW5nX2ZyYW1lKAotICAgICAgICAgICAg
ICAgICAgICBmcmFtZSwgc2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCkKLSAgICAgICAgICAgICAg
ICBzZWxmLl9zZXRfY29tcHJlc3Npb25fYml0ID0gRmFsc2UKLQotICAgICAgICBjbGFzcyBfSW5j
b21pbmdGcmFtZUZpbHRlcihvYmplY3QpOgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKLQotICAg
ICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
cGFyZW50Ll9wcm9jZXNzX2luY29taW5nX2ZyYW1lKGZyYW1lKQotCi0gICAgICAgIHNlbGYuX291
dGdvaW5nX2ZyYW1lX2ZpbHRlciA9IF9PdXRnb2luZ0ZyYW1lRmlsdGVyKHNlbGYpCi0gICAgICAg
IHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlciA9IF9JbmNvbWluZ0ZyYW1lRmlsdGVyKHNlbGYp
Ci0gICAgICAgIHN0cmVhbV9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMuYXBwZW5kKAot
ICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyKQotICAgICAgICBzdHJlYW1f
b3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIHNlbGYu
X2luY29taW5nX2ZyYW1lX2ZpbHRlcikKLQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5lbmNvZGVf
dGV4dF9tZXNzYWdlX3RvX3V0ZjggPSBGYWxzZQotCi0KLV9hdmFpbGFibGVfcHJvY2Vzc29yc1tj
b21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTl0gPSAoCi0gICAgICAgIFBlck1lc3Nh
Z2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKQotIyBUT0RPKHR5b3NoaW5vKTogUmVvcmdhbml6
ZSBjbGFzcyBuYW1lcy4KLV9jb21wcmVzc2lvbl9leHRlbnNpb25fbmFtZXMuYXBwZW5kKCdkZWZs
YXRlJykKLQotCi1jbGFzcyBQZXJNZXNzYWdlQ29tcHJlc3NFeHRlbnNpb25Qcm9jZXNzb3IoCi0g
ICAgQ29tcHJlc3Npb25FeHRlbnNpb25Qcm9jZXNzb3JCYXNlKToKLSAgICAiIiJwZXJtZXNzYWdl
LWNvbXByZXNzIGV4dGVuc2lvbiBwcm9jZXNzb3IuCi0KLSAgICBTcGVjaWZpY2F0aW9uOgotICAg
IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaHliaS1wZXJtZXNzYWdlLWNv
bXByZXNzaW9uCi0gICAgIiIiCi0KLSAgICBfREVGTEFURV9NRVRIT0QgPSAnZGVmbGF0ZScKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgQ29tcHJlc3Npb25FeHRl
bnNpb25Qcm9jZXNzb3JCYXNlLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0KLSAgICBkZWYgbmFt
ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VY
VEVOU0lPTgotCi0gICAgZGVmIF9sb29rdXBfY29tcHJlc3Npb25fcHJvY2Vzc29yKHNlbGYsIG1l
dGhvZF9kZXNjKToKLSAgICAgICAgaWYgbWV0aG9kX2Rlc2MubmFtZSgpID09IHNlbGYuX0RFRkxB
VEVfTUVUSE9EOgotICAgICAgICAgICAgcmV0dXJuIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9u
UHJvY2Vzc29yKG1ldGhvZF9kZXNjLCBGYWxzZSkKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotCi1f
YXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5T
SU9OXSA9ICgKLSAgICBQZXJNZXNzYWdlQ29tcHJlc3NFeHRlbnNpb25Qcm9jZXNzb3IpCi1fY29t
cHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzLmFwcGVuZChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVT
U0lPTl9FWFRFTlNJT04pCi0KLQotY2xhc3MgTXV4RXh0ZW5zaW9uUHJvY2Vzc29yKEV4dGVuc2lv
blByb2Nlc3NvckludGVyZmFjZSk6Ci0gICAgIiIiV2ViU29ja2V0IG11bHRpcGxleGluZyBleHRl
bnNpb24gcHJvY2Vzc29yLiIiIgotCi0gICAgX1FVT1RBX1BBUkFNID0gJ3F1b3RhJwotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBFeHRlbnNpb25Qcm9jZXNzb3JJ
bnRlcmZhY2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKLSAgICAgICAgc2VsZi5fcXVvdGEgPSAw
Ci0gICAgICAgIHNlbGYuX2V4dGVuc2lvbnMgPSBbXQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0g
ICAgICAgIHJldHVybiBjb21tb24uTVVYX0VYVEVOU0lPTgotCi0gICAgZGVmIGNoZWNrX2NvbnNp
c3RlbmN5X3dpdGhfb3RoZXJfcHJvY2Vzc29ycyhzZWxmLCBwcm9jZXNzb3JzKToKLSAgICAgICAg
YmVmb3JlX211eCA9IFRydWUKLSAgICAgICAgZm9yIHByb2Nlc3NvciBpbiBwcm9jZXNzb3JzOgot
ICAgICAgICAgICAgbmFtZSA9IHByb2Nlc3Nvci5uYW1lKCkKLSAgICAgICAgICAgIGlmIG5hbWUg
PT0gc2VsZi5uYW1lKCk6Ci0gICAgICAgICAgICAgICAgYmVmb3JlX211eCA9IEZhbHNlCi0gICAg
ICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIG5vdCBwcm9jZXNzb3IuaXNfYWN0
aXZlKCk6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIGJlZm9yZV9t
dXg6Ci0gICAgICAgICAgICAgICAgIyBNdXggZXh0ZW5zaW9uIGNhbm5vdCBiZSB1c2VkIGFmdGVy
IGV4dGVuc2lvbnMKLSAgICAgICAgICAgICAgICAjIHRoYXQgZGVwZW5kIG9uIGZyYW1lIGJvdW5k
YXJ5LCBleHRlbnNpb24gZGF0YSBmaWVsZCwgb3IgYW55Ci0gICAgICAgICAgICAgICAgIyByZXNl
cnZlZCBiaXRzIHdoaWNoIGFyZSBhdHRyaWJ1dGVkIHRvIGVhY2ggZnJhbWUuCi0gICAgICAgICAg
ICAgICAgaWYgKG5hbWUgPT0gY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OIG9yCi0gICAg
ICAgICAgICAgICAgICAgIG5hbWUgPT0gY29tbW9uLlhfV0VCS0lUX0RFRkxBVEVfRlJBTUVfRVhU
RU5TSU9OKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRfYWN0aXZlKEZhbHNlKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgIyBNdXggZXh0ZW5zaW9uIHNob3VsZCBub3QgYmUgYXBwbGllZCBiZWZvcmUgYW55IGhpc3Rv
cnktYmFzZWQKLSAgICAgICAgICAgICAgICAjIGNvbXByZXNzaW9uIGV4dGVuc2lvbi4KLSAgICAg
ICAgICAgICAgICBpZiAobmFtZSA9PSBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04gb3IK
LSAgICAgICAgICAgICAgICAgICAgbmFtZSA9PSBjb21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFN
RV9FWFRFTlNJT04gb3IKLSAgICAgICAgICAgICAgICAgICAgbmFtZSA9PSBjb21tb24uUEVSTUVT
U0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04gb3IKLSAgICAgICAgICAgICAgICAgICAgbmFtZSA9
PSBjb21tb24uWF9XRUJLSVRfUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04pOgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLnNldF9hY3RpdmUoRmFsc2UpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybgotCi0gICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNl
bGYpOgotICAgICAgICBzZWxmLl9hY3RpdmUgPSBGYWxzZQotICAgICAgICBxdW90YSA9IHNlbGYu
X3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZShzZWxmLl9RVU9UQV9QQVJBTSkKLSAgICAgICAg
aWYgcXVvdGEgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
cXVvdGEgPSBpbnQocXVvdGEpCi0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgaWYgcXVvdGEgPCAwIG9yIHF1
b3RhID49IDIgKiogMzI6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAg
IHNlbGYuX3F1b3RhID0gcXVvdGEKLQotICAgICAgICBzZWxmLl9hY3RpdmUgPSBUcnVlCi0gICAg
ICAgIHJldHVybiBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5NVVhfRVhURU5TSU9O
KQotCi0gICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1f
b3B0aW9ucyk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBzZXRfcXVvdGEoc2VsZiwgcXVvdGEp
OgotICAgICAgICBzZWxmLl9xdW90YSA9IHF1b3RhCi0KLSAgICBkZWYgcXVvdGEoc2VsZik6Ci0g
ICAgICAgIHJldHVybiBzZWxmLl9xdW90YQotCi0gICAgZGVmIHNldF9leHRlbnNpb25zKHNlbGYs
IGV4dGVuc2lvbnMpOgotICAgICAgICBzZWxmLl9leHRlbnNpb25zID0gZXh0ZW5zaW9ucwotCi0g
ICAgZGVmIGV4dGVuc2lvbnMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9leHRlbnNpb25z
Ci0KLQotX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5NVVhfRVhURU5TSU9OXSA9IE11eEV4
dGVuc2lvblByb2Nlc3NvcgotCi0KLWRlZiBnZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcihleHRlbnNp
b25fcmVxdWVzdCk6Ci0gICAgIiIiR2l2ZW4gYW4gRXh0ZW5zaW9uUGFyYW1ldGVyIHJlcHJlc2Vu
dGluZyBhbiBleHRlbnNpb24gb2ZmZXIgcmVjZWl2ZWQKLSAgICBmcm9tIGEgY2xpZW50LCBjb25m
aWd1cmVzIGFuZCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHRoZSBjb3JyZXNwb25kaW5nCi0gICAg
ZXh0ZW5zaW9uIHByb2Nlc3NvciBjbGFzcy4KLSAgICAiIiIKLQotICAgIHByb2Nlc3Nvcl9jbGFz
cyA9IF9hdmFpbGFibGVfcHJvY2Vzc29ycy5nZXQoZXh0ZW5zaW9uX3JlcXVlc3QubmFtZSgpKQot
ICAgIGlmIHByb2Nlc3Nvcl9jbGFzcyBpcyBOb25lOgotICAgICAgICByZXR1cm4gTm9uZQotICAg
IHJldHVybiBwcm9jZXNzb3JfY2xhc3MoZXh0ZW5zaW9uX3JlcXVlc3QpCi0KLQotZGVmIGlzX2Nv
bXByZXNzaW9uX2V4dGVuc2lvbihleHRlbnNpb25fbmFtZSk6Ci0gICAgcmV0dXJuIGV4dGVuc2lv
bl9uYW1lIGluIF9jb21wcmVzc2lvbl9leHRlbnNpb25fbmFtZXMKLQotCi0jIHZpOnN0cz00IHN3
PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tpbmcu
aSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tpbmcuaQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGRhYWQyN2Y1M2M0NmJlMmE3MWM3MDRjNzA4ZmJiM2Y0MmYxYTNk
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9tb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmkKKysrIC9kZXYvbnVsbApAQCAtMSw5OCAr
MCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwot
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0v
LyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQot
JW1vZHVsZSBmYXN0X21hc2tpbmcKLQotJWluY2x1ZGUgImNzdHJpbmcuaSIKLQotJXsKLSNpbmNs
dWRlIDxjc3RyaW5nPgotCi0jaWZkZWYgX19TU0UyX18KLSNpbmNsdWRlIDxlbW1pbnRyaW4uaD4K
LSNlbmRpZgotJX0KLQotJWFwcGx5IChjaGFyICpTVFJJTkcsIGludCBMRU5HVEgpIHsKLSAgICAo
Y29uc3QgY2hhciogcGF5bG9hZCwgaW50IHBheWxvYWRfbGVuZ3RoKSwKLSAgICAoY29uc3QgY2hh
ciogbWFza2luZ19rZXksIGludCBtYXNraW5nX2tleV9sZW5ndGgpIH07Ci0lY3N0cmluZ19vdXRw
dXRfYWxsb2NhdGVfc2l6ZSgKLSAgICBjaGFyKiogcmVzdWx0LCBpbnQqIHJlc3VsdF9sZW5ndGgs
IGRlbGV0ZSBbXSAqJDEpOwotCi0laW5saW5lICV7Ci0KLXZvaWQgbWFzaygKLSAgICBjb25zdCBj
aGFyKiBwYXlsb2FkLCBpbnQgcGF5bG9hZF9sZW5ndGgsCi0gICAgY29uc3QgY2hhciogbWFza2lu
Z19rZXksIGludCBtYXNraW5nX2tleV9sZW5ndGgsCi0gICAgaW50IG1hc2tpbmdfa2V5X2luZGV4
LAotICAgIGNoYXIqKiByZXN1bHQsIGludCogcmVzdWx0X2xlbmd0aCkgewotICAqcmVzdWx0ID0g
bmV3IGNoYXJbcGF5bG9hZF9sZW5ndGhdOwotICAqcmVzdWx0X2xlbmd0aCA9IHBheWxvYWRfbGVu
Z3RoOwotICBtZW1jcHkoKnJlc3VsdCwgcGF5bG9hZCwgcGF5bG9hZF9sZW5ndGgpOwotCi0gIGNo
YXIqIGN1cnNvciA9ICpyZXN1bHQ7Ci0gIGNoYXIqIGN1cnNvcl9lbmQgPSAqcmVzdWx0ICsgKnJl
c3VsdF9sZW5ndGg7Ci0KLSNpZmRlZiBfX1NTRTJfXwotICB3aGlsZSAoKGN1cnNvciA8IGN1cnNv
cl9lbmQpICYmCi0gICAgICAgICAocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KGN1cnNvcikgJiAw
eGYpKSB7Ci0gICAgKmN1cnNvciBePSBtYXNraW5nX2tleVttYXNraW5nX2tleV9pbmRleF07Ci0g
ICAgKytjdXJzb3I7Ci0gICAgbWFza2luZ19rZXlfaW5kZXggPSAobWFza2luZ19rZXlfaW5kZXgg
KyAxKSAlIG1hc2tpbmdfa2V5X2xlbmd0aDsKLSAgfQotICBpZiAoY3Vyc29yID09IGN1cnNvcl9l
bmQpIHsKLSAgICByZXR1cm47Ci0gIH0KLQotICBjb25zdCBpbnQga0Jsb2NrU2l6ZSA9IDE2Owot
ICBfX20xMjhpIG1hc2tpbmdfa2V5X2Jsb2NrOwotICBmb3IgKGludCBpID0gMDsgaSA8IGtCbG9j
a1NpemU7ICsraSkgewotICAgICoocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJm1hc2tpbmdfa2V5
X2Jsb2NrKSArIGkpID0KLSAgICAgICAgbWFza2luZ19rZXlbbWFza2luZ19rZXlfaW5kZXhdOwot
ICAgIG1hc2tpbmdfa2V5X2luZGV4ID0gKG1hc2tpbmdfa2V5X2luZGV4ICsgMSkgJSBtYXNraW5n
X2tleV9sZW5ndGg7Ci0gIH0KLQotICB3aGlsZSAoY3Vyc29yICsga0Jsb2NrU2l6ZSA8PSBjdXJz
b3JfZW5kKSB7Ci0gICAgX19tMTI4aSBwYXlsb2FkX2Jsb2NrID0KLSAgICAgICAgX21tX2xvYWRf
c2kxMjgocmVpbnRlcnByZXRfY2FzdDxfX20xMjhpKj4oY3Vyc29yKSk7Ci0gICAgX21tX3N0cmVh
bV9zaTEyOChyZWludGVycHJldF9jYXN0PF9fbTEyOGkqPihjdXJzb3IpLAotICAgICAgICAgICAg
ICAgICAgICAgX21tX3hvcl9zaTEyOChwYXlsb2FkX2Jsb2NrLCBtYXNraW5nX2tleV9ibG9jaykp
OwotICAgIGN1cnNvciArPSBrQmxvY2tTaXplOwotICB9Ci0jZW5kaWYKLQotICB3aGlsZSAoY3Vy
c29yIDwgY3Vyc29yX2VuZCkgewotICAgICpjdXJzb3IgXj0gbWFza2luZ19rZXlbbWFza2luZ19r
ZXlfaW5kZXhdOwotICAgICsrY3Vyc29yOwotICAgIG1hc2tpbmdfa2V5X2luZGV4ID0gKG1hc2tp
bmdfa2V5X2luZGV4ICsgMSkgJSBtYXNraW5nX2tleV9sZW5ndGg7Ci0gIH0KLX0KLQotJX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTRmNmIzOTVhZTIzYjNhMTM2NDFjZDRiOTA0ZjU5MzVk
MWZhMWYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwxMTAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0
OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiV2ViU29ja2V0IG9w
ZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3Nvci4gVGhpcyBjbGFzcyB0cnkgdG8gYXBwbHkgYXZhaWxh
YmxlCi1vcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3JzIGZvciBlYWNoIHByb3RvY29sIHZlcnNp
b24gdW50aWwgYSBjb25uZWN0aW9uIGlzCi1zdWNjZXNzZnVsbHkgZXN0YWJsaXNoZWQuCi0iIiIK
LQotCi1pbXBvcnQgbG9nZ2luZwotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9u
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UgaW1wb3J0IGh5YmkwMAotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuaGFuZHNoYWtlIGltcG9ydCBoeWJpCi0jIEV4cG9ydCBBYm9ydGVkQnlVc2Vy
RXhjZXB0aW9uLCBIYW5kc2hha2VFeGNlcHRpb24sIGFuZCBWZXJzaW9uRXhjZXB0aW9uCi0jIHN5
bWJvbCBmcm9tIHRoaXMgbW9kdWxlLgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9i
YXNlIGltcG9ydCBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5o
YW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBWZXJzaW9uRXhjZXB0aW9uCi0KLQotX0xPR0dF
UiA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0KLWRlZiBkb19oYW5kc2hha2UocmVx
dWVzdCwgZGlzcGF0Y2hlciwgYWxsb3dEcmFmdDc1PUZhbHNlLCBzdHJpY3Q9RmFsc2UpOgotICAg
ICIiIlBlcmZvcm1zIFdlYlNvY2tldCBoYW5kc2hha2UuCi0KLSAgICBBcmdzOgotICAgICAgICBy
ZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgIGRpc3BhdGNoZXI6IERpc3BhdGNo
ZXIgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgotICAgICAgICBhbGxvd0RyYWZ0NzU6IG9ic29sZXRl
IGFyZ3VtZW50LiBpZ25vcmVkLgotICAgICAgICBzdHJpY3Q6IG9ic29sZXRlIGFyZ3VtZW50LiBp
Z25vcmVkLgotCi0gICAgSGFuZHNoYWtlciB3aWxsIGFkZCBhdHRyaWJ1dGVzIHN1Y2ggYXMgd3Nf
cmVzb3VyY2UgaW4gcGVyZm9ybWluZwotICAgIGhhbmRzaGFrZS4KLSAgICAiIiIKLQotICAgIF9M
T0dHRVIuZGVidWcoJ0NsaWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSByZXNvdXJjZTogJXInLCBy
ZXF1ZXN0LnVyaSkKLSAgICAjIFRvIHByaW50IG1pbWV0b29scy5NZXNzYWdlIGFzIGVzY2FwZWQg
b25lLWxpbmUgc3RyaW5nLCB3ZSBjb252ZXJ0cwotICAgICMgaGVhZGVyc19pbiB0byBkaWN0IG9i
amVjdC4gV2l0aG91dCBjb252ZXJzaW9uLCBpZiB3ZSB1c2UgJXIsIGl0IGp1c3QKLSAgICAjIHBy
aW50cyB0aGUgdHlwZSBhbmQgYWRkcmVzcywgYW5kIGlmIHdlIHVzZSAlcywgaXQgcHJpbnRzIHRo
ZSBvcmlnaW5hbAotICAgICMgaGVhZGVyIHN0cmluZyBhcyBtdWx0aXBsZSBsaW5lcy4KLSAgICAj
Ci0gICAgIyBCb3RoIG1pbWV0b29scy5NZXNzYWdlIGFuZCBNcFRhYmxlX1R5cGUgb2YgbW9kX3B5
dGhvbiBjYW4gYmUKLSAgICAjIGNvbnZlcnRlZCB0byBkaWN0LgotICAgICMKLSAgICAjIG1pbWV0
b29scy5NZXNzYWdlLl9fc3RyX18gcmV0dXJucyB0aGUgb3JpZ2luYWwgaGVhZGVyIHN0cmluZy4K
LSAgICAjIGRpY3QobWltZXRvb2xzLk1lc3NhZ2Ugb2JqZWN0KSByZXR1cm5zIHRoZSBtYXAgZnJv
bSBoZWFkZXIgbmFtZXMgdG8KLSAgICAjIGhlYWRlciB2YWx1ZXMuIFdoaWxlIE1wVGFibGVfVHlw
ZSBkb2Vzbid0IGhhdmUgc3VjaCBfX3N0cl9fIGJ1dCBqdXN0Ci0gICAgIyBfX3JlcHJfXyB3aGlj
aCBmb3JtYXRzIGl0c2VsZiBhcyB3ZWxsIGFzIGRpY3Rpb25hcnkgb2JqZWN0LgotICAgIF9MT0dH
RVIuZGVidWcoCi0gICAgICAgICdDbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hha2UgaGVhZGVyczog
JXInLCBkaWN0KHJlcXVlc3QuaGVhZGVyc19pbikpCi0KLSAgICBoYW5kc2hha2VycyA9IFtdCi0g
ICAgaGFuZHNoYWtlcnMuYXBwZW5kKAotICAgICAgICAoJ1JGQyA2NDU1JywgaHliaS5IYW5kc2hh
a2VyKHJlcXVlc3QsIGRpc3BhdGNoZXIpKSkKLSAgICBoYW5kc2hha2Vycy5hcHBlbmQoCi0gICAg
ICAgICgnSHlCaSAwMCcsIGh5YmkwMC5IYW5kc2hha2VyKHJlcXVlc3QsIGRpc3BhdGNoZXIpKSkK
LQotICAgIGZvciBuYW1lLCBoYW5kc2hha2VyIGluIGhhbmRzaGFrZXJzOgotICAgICAgICBfTE9H
R0VSLmRlYnVnKCdUcnlpbmcgcHJvdG9jb2wgdmVyc2lvbiAlcycsIG5hbWUpCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgICAgIF9M
T0dHRVIuaW5mbygnRXN0YWJsaXNoZWQgKCVzIHByb3RvY29sKScsIG5hbWUpCi0gICAgICAgICAg
ICByZXR1cm4KLSAgICAgICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKLSAgICAgICAg
ICAgIF9MT0dHRVIuZGVidWcoCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBjb21wbGV0ZSBv
cGVuaW5nIGhhbmRzaGFrZSBhcyAlcyBwcm90b2NvbDogJXInLAotICAgICAgICAgICAgICAgIG5h
bWUsIGUpCi0gICAgICAgICAgICBpZiBlLnN0YXR1czoKLSAgICAgICAgICAgICAgICByYWlzZSBl
Ci0gICAgICAgIGV4Y2VwdCBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAg
cmFpc2UKLSAgICAgICAgZXhjZXB0IFZlcnNpb25FeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBy
YWlzZQotCi0gICAgIyBUT0RPKHRveW9zaGltKTogQWRkIGEgdGVzdCB0byBjb3ZlciB0aGUgY2Fz
ZSBhbGwgaGFuZHNoYWtlcnMgZmFpbC4KLSAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0g
ICAgICAgICdGYWlsZWQgdG8gY29tcGxldGUgb3BlbmluZyBoYW5kc2hha2UgZm9yIGFsbCBhdmFp
bGFibGUgcHJvdG9jb2xzJywKLSAgICAgICAgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19CQURf
UkVRVUVTVCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2Nr
ZXQvaGFuZHNoYWtlL19iYXNlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTkz
YTU4NGI3YjNlNTJiNjA3YjY1YmYzOGFmZGNhZGRjYTJmZTc4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5k
c2hha2UvX2Jhc2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxODIgKzAsMCBAQAotIyBDb3B5cmln
aHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiQ29tbW9uIGZ1bmN0aW9ucyBhbmQgZXhjZXB0aW9ucyB1c2VkIGJ5IFdl
YlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZQotcHJvY2Vzc29ycy4KLSIiIgotCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBo
dHRwX2hlYWRlcl91dGlsCi0KLQotY2xhc3MgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbihFeGNlcHRp
b24pOgotICAgICIiIkV4Y2VwdGlvbiBmb3IgYWJvcnRpbmcgYSBjb25uZWN0aW9uIGludGVudGlv
bmFsbHkuCi0KLSAgICBJZiB0aGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgaW4gZG9fZXh0cmFfaGFu
ZHNoYWtlIGhhbmRsZXIsIHRoZSBjb25uZWN0aW9uCi0gICAgd2lsbCBiZSBhYmFuZG9uZWQuIE5v
IG90aGVyIFdlYlNvY2tldCBvciBIVFRQKFMpIGhhbmRsZXIgd2lsbCBiZSBpbnZva2VkLgotCi0g
ICAgSWYgdGhpcyBleGNlcHRpb24gaXMgcmFpc2VkIGluIHRyYW5zZmVyX2RhdGFfaGFuZGxlciwg
dGhlIGNvbm5lY3Rpb24gd2lsbAotICAgIGJlIGNsb3NlZCB3aXRob3V0IGNsb3NpbmcgaGFuZHNo
YWtlLiBObyBvdGhlciBXZWJTb2NrZXQgb3IgSFRUUChTKSBoYW5kbGVyCi0gICAgd2lsbCBiZSBp
bnZva2VkLgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIEhhbmRzaGFrZUV4Y2VwdGlv
bihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4g
YW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZwotICAgIFdlYlNvY2tldCBpbml0aWFs
IGhhbmRzaGFrZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdGF0
dXM9Tm9uZSk6Ci0gICAgICAgIHN1cGVyKEhhbmRzaGFrZUV4Y2VwdGlvbiwgc2VsZikuX19pbml0
X18obmFtZSkKLSAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKLQotCi1jbGFzcyBWZXJzaW9u
RXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlz
ZWQgd2hlbiBhIHZlcnNpb24gb2YgY2xpZW50IHJlcXVlc3QgZG9lcyBub3QKLSAgICBtYXRjaCB3
aXRoIHZlcnNpb24gdGhlIHNlcnZlciBzdXBwb3J0cy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBuYW1lLCBzdXBwb3J0ZWRfdmVyc2lvbnM9JycpOgotICAgICAgICAiIiJDb25z
dHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHN1cHBvcnRl
ZF92ZXJzaW9uOiBhIHN0ciBvYmplY3QgdG8gc2hvdyBzdXBwb3J0ZWQgaHliaSB2ZXJzaW9ucy4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5nLiAnOCwgMTMnKQotICAgICAgICAi
IiIKLSAgICAgICAgc3VwZXIoVmVyc2lvbkV4Y2VwdGlvbiwgc2VsZikuX19pbml0X18obmFtZSkK
LSAgICAgICAgc2VsZi5zdXBwb3J0ZWRfdmVyc2lvbnMgPSBzdXBwb3J0ZWRfdmVyc2lvbnMKLQot
Ci1kZWYgZ2V0X2RlZmF1bHRfcG9ydChpc19zZWN1cmUpOgotICAgIGlmIGlzX3NlY3VyZToKLSAg
ICAgICAgcmV0dXJuIGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfU0VDVVJFX1BPUlQKLSAgICBl
bHNlOgotICAgICAgICByZXR1cm4gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUCi0KLQot
ZGVmIHZhbGlkYXRlX3N1YnByb3RvY29sKHN1YnByb3RvY29sKToKLSAgICAiIiJWYWxpZGF0ZSBh
IHZhbHVlIGluIHRoZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGZpZWxkLgotCi0gICAgU2VlIHRo
ZSBTZWN0aW9uIDQuMS4sIDQuMi4yLiwgYW5kIDQuMy4gb2YgUkZDIDY0NTUuCi0gICAgIiIiCi0K
LSAgICBpZiBub3Qgc3VicHJvdG9jb2w6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlv
bignSW52YWxpZCBzdWJwcm90b2NvbCBuYW1lOiBlbXB0eScpCi0KLSAgICAjIFBhcmFtZXRlciBz
aG91bGQgYmUgZW5jb2RlZCBIVFRQIHRva2VuLgotICAgIHN0YXRlID0gaHR0cF9oZWFkZXJfdXRp
bC5QYXJzaW5nU3RhdGUoc3VicHJvdG9jb2wpCi0gICAgdG9rZW4gPSBodHRwX2hlYWRlcl91dGls
LmNvbnN1bWVfdG9rZW4oc3RhdGUpCi0gICAgcmVzdCA9IGh0dHBfaGVhZGVyX3V0aWwucGVlayhz
dGF0ZSkKLSAgICAjIElmIHxyZXN0fCBpcyBub3QgTm9uZSwgfHN1YnByb3RvY29sfCBpcyBub3Qg
b25lIHRva2VuIG9yIGludmFsaWQuIElmCi0gICAgIyB8cmVzdHwgaXMgTm9uZSwgfHRva2VufCBt
dXN0IG5vdCBiZSBOb25lIGJlY2F1c2UgfHN1YnByb3RvY29sfCBpcwotICAgICMgY29uY2F0ZW5h
dGlvbiBvZiB8dG9rZW58IGFuZCB8cmVzdHwgYW5kIGlzIG5vdCBOb25lLgotICAgIGlmIHJlc3Qg
aXMgbm90IE5vbmU6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSW52YWxpZCBu
b24tdG9rZW4gc3RyaW5nIGluIHN1YnByb3RvY29sICcKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICduYW1lOiAlcicgJSByZXN0KQotCi0KLWRlZiBwYXJzZV9ob3N0X2hlYWRlcihy
ZXF1ZXN0KToKLSAgICBmaWVsZHMgPSByZXF1ZXN0LmhlYWRlcnNfaW5bY29tbW9uLkhPU1RfSEVB
REVSXS5zcGxpdCgnOicsIDEpCi0gICAgaWYgbGVuKGZpZWxkcykgPT0gMToKLSAgICAgICAgcmV0
dXJuIGZpZWxkc1swXSwgZ2V0X2RlZmF1bHRfcG9ydChyZXF1ZXN0LmlzX2h0dHBzKCkpCi0gICAg
dHJ5OgotICAgICAgICByZXR1cm4gZmllbGRzWzBdLCBpbnQoZmllbGRzWzFdKQotICAgIGV4Y2Vw
dCBWYWx1ZUVycm9yLCBlOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFs
aWQgcG9ydCBudW1iZXIgZm9ybWF0OiAlcicgJSBlKQotCi0KLWRlZiBmb3JtYXRfaGVhZGVyKG5h
bWUsIHZhbHVlKToKLSAgICByZXR1cm4gJyVzOiAlc1xyXG4nICUgKG5hbWUsIHZhbHVlKQotCi0K
LWRlZiBnZXRfbWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXkpOgotICAgIHZhbHVlID0gcmVx
dWVzdC5oZWFkZXJzX2luLmdldChrZXkpCi0gICAgaWYgdmFsdWUgaXMgTm9uZToKLSAgICAgICAg
cmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdIZWFkZXIgJXMgaXMgbm90IGRlZmluZWQnICUga2V5
KQotICAgIHJldHVybiB2YWx1ZQotCi0KLWRlZiB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKHJl
cXVlc3QsIGtleSwgZXhwZWN0ZWRfdmFsdWUsIGZhaWxfc3RhdHVzPU5vbmUpOgotICAgIHZhbHVl
ID0gZ2V0X21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5KQotCi0gICAgaWYgdmFsdWUubG93
ZXIoKSAhPSBleHBlY3RlZF92YWx1ZS5sb3dlcigpOgotICAgICAgICByYWlzZSBIYW5kc2hha2VF
eGNlcHRpb24oCi0gICAgICAgICAgICAnRXhwZWN0ZWQgJXIgZm9yIGhlYWRlciAlcyBidXQgZm91
bmQgJXIgKGNhc2UtaW5zZW5zaXRpdmUpJyAlCi0gICAgICAgICAgICAoZXhwZWN0ZWRfdmFsdWUs
IGtleSwgdmFsdWUpLCBzdGF0dXM9ZmFpbF9zdGF0dXMpCi0KLQotZGVmIGNoZWNrX3JlcXVlc3Rf
bGluZShyZXF1ZXN0KToKLSAgICAjIDUuMSAxLiBUaGUgdGhyZWUgY2hhcmFjdGVyIFVURi04IHN0
cmluZyAiR0VUIi4KLSAgICAjIDUuMSAyLiBBIFVURi04LWVuY29kZWQgVSswMDIwIFNQQUNFIGNo
YXJhY3RlciAoMHgyMCBieXRlKS4KLSAgICBpZiByZXF1ZXN0Lm1ldGhvZCAhPSAnR0VUJzoKLSAg
ICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdNZXRob2QgaXMgbm90IEdFVDogJXInICUg
cmVxdWVzdC5tZXRob2QpCi0KLSAgICBpZiByZXF1ZXN0LnByb3RvY29sICE9ICdIVFRQLzEuMSc6
Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignVmVyc2lvbiBpcyBub3QgSFRUUC8x
LjE6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnByb3Rv
Y29sKQotCi0KLWRlZiBwYXJzZV90b2tlbl9saXN0KGRhdGEpOgotICAgICIiIlBhcnNlcyBhIGhl
YWRlciB2YWx1ZSB3aGljaCBmb2xsb3dzIDEjdG9rZW4gYW5kIHJldHVybnMgcGFyc2VkIGVsZW1l
bnRzCi0gICAgYXMgYSBsaXN0IG9mIHN0cmluZ3MuCi0KLSAgICBMZWFkaW5nIExXU2VzIG11c3Qg
YmUgdHJpbW1lZC4KLSAgICAiIiIKLQotICAgIHN0YXRlID0gaHR0cF9oZWFkZXJfdXRpbC5QYXJz
aW5nU3RhdGUoZGF0YSkKLQotICAgIHRva2VuX2xpc3QgPSBbXQotCi0gICAgd2hpbGUgVHJ1ZToK
LSAgICAgICAgdG9rZW4gPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCi0g
ICAgICAgIGlmIHRva2VuIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdG9rZW5fbGlzdC5hcHBl
bmQodG9rZW4pCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRl
KQotCi0gICAgICAgIGlmIGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkgaXMgTm9uZToKLSAg
ICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3Vt
ZV9zdHJpbmcoc3RhdGUsICcsJyk6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ0V4cGVjdGVkIGEgY29tbWEgYnV0IGZvdW5kICVyJyAlIGh0
dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkpCi0KLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5j
b25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgaWYgbGVuKHRva2VuX2xpc3QpID09IDA6Ci0gICAg
ICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignTm8gdmFsaWQgdG9rZW4gZm91bmQnKQotCi0g
ICAgcmV0dXJuIHRva2VuX2xpc3QKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHliaS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHliaS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWFkMTBlYTM3MjgyOWQwOTNkNjZlNmFjNjBhY2NjZDljMWNhZWZiNi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJz
b2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MjAgKzAsMCBAQAot
IyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIHRoZSBvcGVuaW5nIGhh
bmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQKLXByb3RvY29sIChSRkMgNjQ1NSku
Ci0KLVNwZWNpZmljYXRpb246Ci1odHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU1Ci0i
IiIKLQotCi0jIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSBpcyB1c2VkIGluIHRoaXMg
bW9kdWxlLCBldmVuIHRob3VnaCBtb2RfcHl0aG9uCi0jIGRvY3VtZW50IHNheXMgdGhhdCBpdCBz
aG91bGQgYmUgdXNlZCBvbmx5IGluIGNvbm5lY3Rpb24gaGFuZGxlcnMuCi0jIFVuZm9ydHVuYXRl
bHksIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9ucy4gRm9yIGV4YW1wbGUsIHJlcXVlc3Qud3JpdGUg
aXMgbm90Ci0jIHN1aXRhYmxlIGJlY2F1c2UgaXQgZG9lc24ndCBhbGxvdyBkaXJlY3QgcmF3IGJ5
dGVzIHdyaXRpbmcuCi0KLQotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBv
cwotaW1wb3J0IHJlCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20g
bW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IGdldF9leHRlbnNpb25fcHJvY2Vzc29y
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBpc19jb21wcmVzc2lvbl9l
eHRlbnNpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgY2hl
Y2tfcmVxdWVzdF9saW5lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1w
b3J0IGZvcm1hdF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBp
bXBvcnQgZ2V0X21hbmRhdG9yeV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFr
ZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5o
YW5kc2hha2UuX2Jhc2UgaW1wb3J0IHBhcnNlX3Rva2VuX2xpc3QKLWZyb20gbW9kX3B5d2Vic29j
a2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0ZV9zdWJwcm90
b2NvbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBWZXJzaW9u
RXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLSMgVXNlZCB0byB2YWxpZGF0ZSB0aGUgdmFsdWUg
aW4gdGhlIFNlYy1XZWJTb2NrZXQtS2V5IGhlYWRlciBzdHJpY3RseS4gUkZDIDQ2NDgKLSMgZGlz
YWxsb3dzIG5vbi16ZXJvIHBhZGRpbmcsIHNvIHRoZSBjaGFyYWN0ZXIgcmlnaHQgYmVmb3JlID09
IG11c3QgYmUgYW55IG9mCi0jIEEsIFEsIGcgYW5kIHcuCi1fU0VDX1dFQlNPQ0tFVF9LRVlfUkVH
RVggPSByZS5jb21waWxlKCdeWysvMC05QS1aYS16XXsyMX1bQVFnd109PSQnKQotCi0jIERlZmlu
aW5nIGFsaWFzZXMgZm9yIHZhbHVlcyB1c2VkIGZyZXF1ZW50bHkuCi1fVkVSU0lPTl9MQVRFU1Qg
PSBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVAotX1ZFUlNJT05fTEFURVNUX1NUUklORyA9IHN0
cihfVkVSU0lPTl9MQVRFU1QpCi1fU1VQUE9SVEVEX1ZFUlNJT05TID0gWwotICAgIF9WRVJTSU9O
X0xBVEVTVCwKLV0KLQotCi1kZWYgY29tcHV0ZV9hY2NlcHQoa2V5KToKLSAgICAiIiJDb21wdXRl
cyB2YWx1ZSBmb3IgdGhlIFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlciBmcm9tIHZhbHVlIG9m
IHRoZQotICAgIFNlYy1XZWJTb2NrZXQtS2V5IGhlYWRlci4KLSAgICAiIiIKLQotICAgIGFjY2Vw
dF9iaW5hcnkgPSB1dGlsLnNoYTFfaGFzaCgKLSAgICAgICAga2V5ICsgY29tbW9uLldFQlNPQ0tF
VF9BQ0NFUFRfVVVJRCkuZGlnZXN0KCkKLSAgICBhY2NlcHQgPSBiYXNlNjQuYjY0ZW5jb2RlKGFj
Y2VwdF9iaW5hcnkpCi0KLSAgICByZXR1cm4gKGFjY2VwdCwgYWNjZXB0X2JpbmFyeSkKLQotCi1j
bGFzcyBIYW5kc2hha2VyKG9iamVjdCk6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vz
c29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIChSRkMgNjQ1NSkuIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcik6Ci0gICAgICAgICIiIkNvbnN0cnVj
dCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9k
X3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlciAoZGlz
cGF0Y2guRGlzcGF0Y2hlcikuCi0KLSAgICAgICAgSGFuZHNoYWtlciB3aWxsIGFkZCBhdHRyaWJ1
dGVzIHN1Y2ggYXMgd3NfcmVzb3VyY2UgZHVyaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAg
ICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5fZGlzcGF0Y2hlciA9
IGRpc3BhdGNoZXIKLQotICAgIGRlZiBfdmFsaWRhdGVfY29ubmVjdGlvbl9oZWFkZXIoc2VsZik6
Ci0gICAgICAgIGNvbm5lY3Rpb24gPSBnZXRfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAg
IHNlbGYuX3JlcXVlc3QsIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUikKLQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBjb25uZWN0aW9uX3Rva2VucyA9IHBhcnNlX3Rva2VuX2xpc3QoY29ubmVj
dGlvbikKLSAgICAgICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAg
IHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHBh
cnNlICVzOiAlcycgJSAoY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBlKSkKLQotICAgICAgICBj
b25uZWN0aW9uX2lzX3ZhbGlkID0gRmFsc2UKLSAgICAgICAgZm9yIHRva2VuIGluIGNvbm5lY3Rp
b25fdG9rZW5zOgotICAgICAgICAgICAgaWYgdG9rZW4ubG93ZXIoKSA9PSBjb21tb24uVVBHUkFE
RV9DT05ORUNUSU9OX1RZUEUubG93ZXIoKToKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uX2lz
X3ZhbGlkID0gVHJ1ZQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGlmIG5vdCBjb25u
ZWN0aW9uX2lzX3ZhbGlkOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICclcyBoZWFkZXIgZG9lc25cJ3QgY29udGFpbiAiJXMiJyAlCi0gICAg
ICAgICAgICAgICAgKGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09O
TkVDVElPTl9UWVBFKSkKLQotICAgIGRlZiBkb19oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIHNl
bGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53
c19jbG9zZV9yZWFzb24gPSBOb25lCi0KLSAgICAgICAgIyBQYXJzaW5nLgotCi0gICAgICAgIGNo
ZWNrX3JlcXVlc3RfbGluZShzZWxmLl9yZXF1ZXN0KQotCi0gICAgICAgIHZhbGlkYXRlX21hbmRh
dG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LAotICAgICAgICAgICAgY29t
bW9uLlVQR1JBREVfSEVBREVSLAotICAgICAgICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURF
X1RZUEUpCi0KLSAgICAgICAgc2VsZi5fdmFsaWRhdGVfY29ubmVjdGlvbl9oZWFkZXIoKQotCi0g
ICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVzb3VyY2UgPSBzZWxmLl9yZXF1ZXN0LnVyaQotCi0g
ICAgICAgIHVudXNlZF9ob3N0ID0gZ2V0X21hbmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwg
Y29tbW9uLkhPU1RfSEVBREVSKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfdmVyc2lvbiA9
IHNlbGYuX2NoZWNrX3ZlcnNpb24oKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYu
X2dldF9vcmlnaW4oKQotICAgICAgICAgICAgc2VsZi5fc2V0X3Byb3RvY29sKCkKLSAgICAgICAg
ICAgIHNlbGYuX3BhcnNlX2V4dGVuc2lvbnMoKQotCi0gICAgICAgICAgICAjIEtleSB2YWxpZGF0
aW9uLCByZXNwb25zZSBnZW5lcmF0aW9uLgotCi0gICAgICAgICAgICBrZXkgPSBzZWxmLl9nZXRf
a2V5KCkKLSAgICAgICAgICAgIChhY2NlcHQsIGFjY2VwdF9iaW5hcnkpID0gY29tcHV0ZV9hY2Nl
cHQoa2V5KQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAg
ICclczogJXIgKCVzKScsCi0gICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfQUND
RVBUX0hFQURFUiwKLSAgICAgICAgICAgICAgICBhY2NlcHQsCi0gICAgICAgICAgICAgICAgdXRp
bC5oZXhpZnkoYWNjZXB0X2JpbmFyeSkpCi0KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnUHJvdG9jb2wgdmVyc2lvbiBpcyBSRkMgNjQ1NScpCi0KLSAgICAgICAgICAgICMgU2V0dXAg
ZXh0ZW5zaW9uIHByb2Nlc3NvcnMuCi0KLSAgICAgICAgICAgIHByb2Nlc3NvcnMgPSBbXQotICAg
ICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucyBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgICAgICBmb3IgZXh0ZW5zaW9uX3JlcXVlc3QgaW4gc2VsZi5fcmVx
dWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9uczoKLSAgICAgICAgICAgICAgICAgICAgcHJvY2Vz
c29yID0gZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoZXh0ZW5zaW9uX3JlcXVlc3QpCi0gICAgICAg
ICAgICAgICAgICAgICMgVW5rbm93biBleHRlbnNpb24gcmVxdWVzdHMgYXJlIGp1c3QgaWdub3Jl
ZC4KLSAgICAgICAgICAgICAgICAgICAgaWYgcHJvY2Vzc29yIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgICAgICAgICAgcHJvY2Vzc29ycy5hcHBlbmQocHJvY2Vzc29yKQotICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycyA9IHByb2Nlc3NvcnMKLQot
ICAgICAgICAgICAgIyBMaXN0IG9mIGV4dHJhIGhlYWRlcnMuIFRoZSBleHRyYSBoYW5kc2hha2Ug
aGFuZGxlciBtYXkgYWRkIGhlYWRlcgotICAgICAgICAgICAgIyBkYXRhIGFzIG5hbWUvdmFsdWUg
cGFpcnMgdG8gdGhpcyBsaXN0IGFuZCBweXdlYnNvY2tldCBhcHBlbmRzCi0gICAgICAgICAgICAj
IHRoZW0gdG8gdGhlIFdlYlNvY2tldCBoYW5kc2hha2UuCi0gICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LmV4dHJhX2hlYWRlcnMgPSBbXQotCi0gICAgICAgICAgICAjIEV4dHJhIGhhbmRzaGFrZSBo
YW5kbGVyIG1heSBtb2RpZnkvcmVtb3ZlIHByb2Nlc3NvcnMuCi0gICAgICAgICAgICBzZWxmLl9k
aXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLl9yZXF1ZXN0KQotICAgICAgICAgICAg
cHJvY2Vzc29ycyA9IGZpbHRlcihsYW1iZGEgcHJvY2Vzc29yOiBwcm9jZXNzb3IgaXMgbm90IE5v
bmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfZXh0
ZW5zaW9uX3Byb2Nlc3NvcnMpCi0KLSAgICAgICAgICAgICMgQXNrIGVhY2ggcHJvY2Vzc29yIGlm
IHRoZXJlIGFyZSBleHRlbnNpb25zIG9uIHRoZSByZXF1ZXN0IHdoaWNoCi0gICAgICAgICAgICAj
IGNhbm5vdCBjby1leGlzdC4gV2hlbiBwcm9jZXNzb3IgZGVjaWRlZCBvdGhlciBwcm9jZXNzb3Jz
IGNhbm5vdAotICAgICAgICAgICAgIyBjby1leGlzdCB3aXRoIGl0LCB0aGUgcHJvY2Vzc29yIG1h
cmtzIHRoZW0gKG9yIGl0c2VsZikgYXMKLSAgICAgICAgICAgICMgImluYWN0aXZlIi4gVGhlIGZp
cnN0IGV4dGVuc2lvbiBwcm9jZXNzb3IgaGFzIHRoZSByaWdodCB0bwotICAgICAgICAgICAgIyBt
YWtlIHRoZSBmaW5hbCBjYWxsLgotICAgICAgICAgICAgZm9yIHByb2Nlc3NvciBpbiByZXZlcnNl
ZChwcm9jZXNzb3JzKToKLSAgICAgICAgICAgICAgICBpZiBwcm9jZXNzb3IuaXNfYWN0aXZlKCk6
Ci0gICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5jaGVja19jb25zaXN0ZW5jeV93aXRoX290
aGVyX3Byb2Nlc3NvcnMoCi0gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3JzKQotICAg
ICAgICAgICAgcHJvY2Vzc29ycyA9IGZpbHRlcihsYW1iZGEgcHJvY2Vzc29yOiBwcm9jZXNzb3Iu
aXNfYWN0aXZlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMp
Ci0KLSAgICAgICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBbXQotCi0gICAgICAgICAgICAj
IFdlIG5lZWQgdG8gdGFrZSBpbnRvIGFjY291bnQgb2YgbXV4IGV4dGVuc2lvbiBoZXJlLgotICAg
ICAgICAgICAgIyBJZiBtdXggZXh0ZW5zaW9uIGV4aXN0czoKLSAgICAgICAgICAgICMgLSBSZW1v
dmUgcHJvY2Vzc29ycyBvZiBleHRlbnNpb25zIGZvciBsb2dpY2FsIGNoYW5uZWwsCi0gICAgICAg
ICAgICAjICAgd2hpY2ggYXJlIHByb2Nlc3NvcnMgbG9jYXRlZCBiZWZvcmUgdGhlIG11eCBwcm9j
ZXNzb3IKLSAgICAgICAgICAgICMgLSBQYXNzIGV4dGVuc2lvbiByZXF1ZXN0cyBmb3IgbG9naWNh
bCBjaGFubmVsIHRvIG11eCBwcm9jZXNzb3IKLSAgICAgICAgICAgICMgLSBBdHRhY2ggdGhlIG11
eCBwcm9jZXNzb3IgdG8gdGhlIHJlcXVlc3QuIEl0IHdpbGwgYmUgcmVmZXJyZWQKLSAgICAgICAg
ICAgICMgICBieSBkaXNwYXRjaGVyIHRvIHNlZSB3aGV0aGVyIHRoZSBkaXNwYXRjaGVyIHNob3Vs
ZCB1c2UgbXV4Ci0gICAgICAgICAgICAjICAgaGFuZGxlciBvciBub3QuCi0gICAgICAgICAgICBt
dXhfaW5kZXggPSAtMQotICAgICAgICAgICAgZm9yIGksIHByb2Nlc3NvciBpbiBlbnVtZXJhdGUo
cHJvY2Vzc29ycyk6Ci0gICAgICAgICAgICAgICAgaWYgcHJvY2Vzc29yLm5hbWUoKSA9PSBjb21t
b24uTVVYX0VYVEVOU0lPTjoKLSAgICAgICAgICAgICAgICAgICAgbXV4X2luZGV4ID0gaQotICAg
ICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgaWYgbXV4X2luZGV4ID49IDA6Ci0g
ICAgICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnMgPSBbXQotICAgICAgICAg
ICAgICAgIGZvciBwcm9jZXNzb3IgaW4gcHJvY2Vzc29yc1s6bXV4X2luZGV4XToKLSAgICAgICAg
ICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnMuYXBwZW5kKHByb2Nlc3Nvci5y
ZXF1ZXN0KCkpCi0gICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5zZXRfYWN0aXZlKEZhbHNl
KQotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QubXV4X3Byb2Nlc3NvciA9IHByb2Nlc3Nv
cnNbbXV4X2luZGV4XQotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QubXV4X3Byb2Nlc3Nv
ci5zZXRfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4
dGVuc2lvbnMpCi0gICAgICAgICAgICAgICAgcHJvY2Vzc29ycyA9IGZpbHRlcihsYW1iZGEgcHJv
Y2Vzc29yOiBwcm9jZXNzb3IuaXNfYWN0aXZlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcm9jZXNzb3JzKQotCi0gICAgICAgICAgICBzdHJlYW1fb3B0aW9ucyA9IFN0
cmVhbU9wdGlvbnMoKQotCi0gICAgICAgICAgICBmb3IgaW5kZXgsIHByb2Nlc3NvciBpbiBlbnVt
ZXJhdGUocHJvY2Vzc29ycyk6Ci0gICAgICAgICAgICAgICAgaWYgbm90IHByb2Nlc3Nvci5pc19h
Y3RpdmUoKToKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAg
IGV4dGVuc2lvbl9yZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkK
LSAgICAgICAgICAgICAgICBpZiBleHRlbnNpb25fcmVzcG9uc2UgaXMgTm9uZToKLSAgICAgICAg
ICAgICAgICAgICAgIyBSZWplY3RlZC4KLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQot
ICAgICAgICAgICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbl9yZXNw
b25zZSkKLQotICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhz
dHJlYW1fb3B0aW9ucykKLQotICAgICAgICAgICAgICAgIGlmIG5vdCBpc19jb21wcmVzc2lvbl9l
eHRlbnNpb24ocHJvY2Vzc29yLm5hbWUoKSk6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0KLSAgICAgICAgICAgICAgICAjIEluYWN0aXZhdGUgYWxsIG9mIHRoZSBmb2xsb3dpbmcgY29t
cHJlc3Npb24gZXh0ZW5zaW9ucy4KLSAgICAgICAgICAgICAgICBmb3IgaiBpbiB4cmFuZ2UoaW5k
ZXggKyAxLCBsZW4ocHJvY2Vzc29ycykpOgotICAgICAgICAgICAgICAgICAgICBpZiBpc19jb21w
cmVzc2lvbl9leHRlbnNpb24ocHJvY2Vzc29yc1tqXS5uYW1lKCkpOgotICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvY2Vzc29yc1tqXS5zZXRfYWN0aXZlKEZhbHNlKQotCi0gICAgICAgICAgICBp
ZiBsZW4oYWNjZXB0ZWRfZXh0ZW5zaW9ucykgPiAwOgotICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3Qud3NfZXh0ZW5zaW9ucyA9IGFjY2VwdGVkX2V4dGVuc2lvbnMKLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICdFeHRlbnNpb25zIGFj
Y2VwdGVkOiAlcicsCi0gICAgICAgICAgICAgICAgICAgIG1hcChjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyLm5hbWUsIGFjY2VwdGVkX2V4dGVuc2lvbnMpKQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMgPSBOb25lCi0KLSAgICAg
ICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nfc3RyZWFtID0gc2VsZi5fY3JlYXRlX3N0cmVhbShzdHJl
YW1fb3B0aW9ucykKLQotICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRf
cHJvdG9jb2xzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qu
d3NfcHJvdG9jb2wgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtl
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgJ2RvX2V4dHJhX2hhbmRzaGFrZSBt
dXN0IGNob29zZSBvbmUgc3VicHJvdG9jb2wgZnJvbSAnCi0gICAgICAgICAgICAgICAgICAgICAg
ICAnd3NfcmVxdWVzdGVkX3Byb3RvY29scyBhbmQgc2V0IGl0IHRvIHdzX3Byb3RvY29sJykKLSAg
ICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbChzZWxmLl9yZXF1ZXN0LndzX3Byb3Rv
Y29sKQotCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAg
ICAgICAgICAnU3VicHJvdG9jb2wgYWNjZXB0ZWQ6ICVyJywKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ3dzX3Byb3RvY29sIG11c3QgYmUgTm9uZSB3aGVuIHRoZSBjbGllbnQgZGlkblwndCAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAncmVxdWVzdCBhbnkgc3VicHJvdG9jb2wnKQotCi0g
ICAgICAgICAgICBzZWxmLl9zZW5kX2hhbmRzaGFrZShhY2NlcHQpCi0gICAgICAgIGV4Y2VwdCBI
YW5kc2hha2VFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBpZiBub3QgZS5zdGF0dXM6Ci0gICAg
ICAgICAgICAgICAgIyBGYWxsYmFjayB0byA0MDAgYmFkIHJlcXVlc3QgYnkgZGVmYXVsdC4KLSAg
ICAgICAgICAgICAgICBlLnN0YXR1cyA9IGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVAot
ICAgICAgICAgICAgcmFpc2UgZQotCi0gICAgZGVmIF9nZXRfb3JpZ2luKHNlbGYpOgotICAgICAg
ICBvcmlnaW5faGVhZGVyID0gY29tbW9uLk9SSUdJTl9IRUFERVIKLSAgICAgICAgb3JpZ2luID0g
c2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldChvcmlnaW5faGVhZGVyKQotICAgICAgICBpZiBv
cmlnaW4gaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50IHJl
cXVlc3QgZG9lcyBub3QgaGF2ZSBvcmlnaW4gaGVhZGVyJykKLSAgICAgICAgc2VsZi5fcmVxdWVz
dC53c19vcmlnaW4gPSBvcmlnaW4KLQotICAgIGRlZiBfY2hlY2tfdmVyc2lvbihzZWxmKToKLSAg
ICAgICAgdmVyc2lvbiA9IGdldF9tYW5kYXRvcnlfaGVhZGVyKHNlbGYuX3JlcXVlc3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9W
RVJTSU9OX0hFQURFUikKLSAgICAgICAgaWYgdmVyc2lvbiA9PSBfVkVSU0lPTl9MQVRFU1RfU1RS
SU5HOgotICAgICAgICAgICAgcmV0dXJuIF9WRVJTSU9OX0xBVEVTVAotCi0gICAgICAgIGlmIHZl
cnNpb24uZmluZCgnLCcpID49IDA6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIHZlcnNpb25zICglcikgYXJlIG5vdCBhbGxv
d2VkIGZvciBoZWFkZXIgJXMnICUKLSAgICAgICAgICAgICAgICAodmVyc2lvbiwgY29tbW9uLlNF
Q19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIpLAotICAgICAgICAgICAgICAgIHN0YXR1cz1jb21t
b24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0gICAgICAgIHJhaXNlIFZlcnNpb25FeGNlcHRp
b24oCi0gICAgICAgICAgICAnVW5zdXBwb3J0ZWQgdmVyc2lvbiAlciBmb3IgaGVhZGVyICVzJyAl
Ci0gICAgICAgICAgICAodmVyc2lvbiwgY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFE
RVIpLAotICAgICAgICAgICAgc3VwcG9ydGVkX3ZlcnNpb25zPScsICcuam9pbihtYXAoc3RyLCBf
U1VQUE9SVEVEX1ZFUlNJT05TKSkpCi0KLSAgICBkZWYgX3NldF9wcm90b2NvbChzZWxmKToKLSAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCA9IE5vbmUKLQotICAgICAgICBwcm90b2Nv
bF9oZWFkZXIgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KAotICAgICAgICAgICAgY29t
bW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSKQotCi0gICAgICAgIGlmIHByb3RvY29s
X2hlYWRlciBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRf
cHJvdG9jb2xzID0gTm9uZQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgc2VsZi5fcmVx
dWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzID0gcGFyc2VfdG9rZW5fbGlzdCgKLSAgICAgICAg
ICAgIHByb3RvY29sX2hlYWRlcikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTdWJwcm90
b2NvbHMgcmVxdWVzdGVkOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMpCi0KLSAgICBkZWYgX3BhcnNlX2V4dGVuc2lv
bnMoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbnNfaGVhZGVyID0gc2VsZi5fcmVxdWVzdC5oZWFk
ZXJzX2luLmdldCgKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNf
SEVBREVSKQotICAgICAgICBpZiBub3QgZXh0ZW5zaW9uc19oZWFkZXI6Ci0gICAgICAgICAgICBz
ZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zID0gTm9uZQotICAgICAgICAgICAg
cmV0dXJuCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1
ZXN0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAotICAgICAgICAgICAg
ICAgIGV4dGVuc2lvbnNfaGVhZGVyKQotICAgICAgICBleGNlcHQgY29tbW9uLkV4dGVuc2lvblBh
cnNpbmdFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBwYXJzZSBTZWMtV2ViU29ja2V0LUV4dGVuc2lv
bnMgaGVhZGVyOiAlcicgJSBlKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAg
ICAgICAgICdFeHRlbnNpb25zIHJlcXVlc3RlZDogJXInLAotICAgICAgICAgICAgbWFwKGNvbW1v
bi5FeHRlbnNpb25QYXJhbWV0ZXIubmFtZSwKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX3JlcXVlc3RlZF9leHRlbnNpb25zKSkKLQotICAgIGRlZiBfdmFsaWRhdGVfa2V5KHNlbGYs
IGtleSk6Ci0gICAgICAgIGlmIGtleS5maW5kKCcsJykgPj0gMDoKLSAgICAgICAgICAgIHJhaXNl
IEhhbmRzaGFrZUV4Y2VwdGlvbignUmVxdWVzdCBoYXMgbXVsdGlwbGUgJXMgaGVhZGVyIGxpbmVz
IG9yICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGFpbnMgaWxs
ZWdhbCBjaGFyYWN0ZXIgXCcsXCc6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIsIGtleSkpCi0KLSAgICAg
ICAgIyBWYWxpZGF0ZQotICAgICAgICBrZXlfaXNfdmFsaWQgPSBGYWxzZQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAjIFZhbGlkYXRlIGtleSBieSBxdWljayByZWdleCBtYXRjaCBiZWZvcmUg
cGFyc2luZyBieSBiYXNlNjQKLSAgICAgICAgICAgICMgbW9kdWxlLiBCZWNhdXNlIGJhc2U2NCBt
b2R1bGUgc2tpcHMgaW52YWxpZCBjaGFyYWN0ZXJzLCB3ZSBoYXZlCi0gICAgICAgICAgICAjIHRv
IGRvIHRoaXMgaW4gYWR2YW5jZSB0byBtYWtlIHRoaXMgc2VydmVyIHN0cmljdGx5IHJlamVjdCBp
bGxlZ2FsCi0gICAgICAgICAgICAjIGtleXMuCi0gICAgICAgICAgICBpZiBfU0VDX1dFQlNPQ0tF
VF9LRVlfUkVHRVgubWF0Y2goa2V5KToKLSAgICAgICAgICAgICAgICBkZWNvZGVkX2tleSA9IGJh
c2U2NC5iNjRkZWNvZGUoa2V5KQotICAgICAgICAgICAgICAgIGlmIGxlbihkZWNvZGVkX2tleSkg
PT0gMTY6Ci0gICAgICAgICAgICAgICAgICAgIGtleV9pc192YWxpZCA9IFRydWUKLSAgICAgICAg
ZXhjZXB0IFR5cGVFcnJvciwgZToKLSAgICAgICAgICAgIHBhc3MKLQotICAgICAgICBpZiBub3Qg
a2V5X2lzX3ZhbGlkOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICdJbGxlZ2FsIHZhbHVlIGZvciBoZWFkZXIgJXM6ICVyJyAlCi0gICAgICAg
ICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIsIGtleSkpCi0KLSAgICAg
ICAgcmV0dXJuIGRlY29kZWRfa2V5Ci0KLSAgICBkZWYgX2dldF9rZXkoc2VsZik6Ci0gICAgICAg
IGtleSA9IGdldF9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdCwg
Y29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUikKLQotICAgICAgICBkZWNvZGVkX2tleSA9
IHNlbGYuX3ZhbGlkYXRlX2tleShrZXkpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAot
ICAgICAgICAgICAgJyVzOiAlciAoJXMpJywKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09D
S0VUX0tFWV9IRUFERVIsCi0gICAgICAgICAgICBrZXksCi0gICAgICAgICAgICB1dGlsLmhleGlm
eShkZWNvZGVkX2tleSkpCi0KLSAgICAgICAgcmV0dXJuIGtleQotCi0gICAgZGVmIF9jcmVhdGVf
c3RyZWFtKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgcmV0dXJuIFN0cmVhbShzZWxm
Ll9yZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucykKLQotICAgIGRlZiBfY3JlYXRlX2hhbmRzaGFrZV9y
ZXNwb25zZShzZWxmLCBhY2NlcHQpOgotICAgICAgICByZXNwb25zZSA9IFtdCi0KLSAgICAgICAg
cmVzcG9uc2UuYXBwZW5kKCdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nKQot
Ci0gICAgICAgICMgV2ViU29ja2V0IGhlYWRlcnMKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZv
cm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9IRUFERVIsIGNvbW1vbi5X
RUJTT0NLRVRfVVBHUkFERV9UWVBFKSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9o
ZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uQ09OTkVDVElPTl9IRUFERVIsIGNvbW1vbi5VUEdS
QURFX0NPTk5FQ1RJT05fVFlQRSkpCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVh
ZGVyKAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUiwgYWNj
ZXB0KSkKLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAg
ICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1BST1RPQ09MX0hFQURFUiwKLSAgICAgICAgICAgICAg
ICBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sKSkKLSAgICAgICAgaWYgKHNlbGYuX3JlcXVlc3Qu
d3NfZXh0ZW5zaW9ucyBpcyBub3QgTm9uZSBhbmQKLSAgICAgICAgICAgIGxlbihzZWxmLl9yZXF1
ZXN0LndzX2V4dGVuc2lvbnMpICE9IDApOgotICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZv
cm1hdF9oZWFkZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5T
SU9OU19IRUFERVIsCi0gICAgICAgICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKHNl
bGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykpKQotCi0gICAgICAgICMgSGVhZGVycyBub3Qgc3Bl
Y2lmaWMgZm9yIFdlYlNvY2tldAotICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5fcmVx
dWVzdC5leHRyYV9oZWFkZXJzOgotICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9o
ZWFkZXIobmFtZSwgdmFsdWUpKQotCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnXHJcbicpCi0K
LSAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVzcG9uc2UpCi0KLSAgICBkZWYgX3NlbmRfaGFuZHNo
YWtlKHNlbGYsIGFjY2VwdCk6Ci0gICAgICAgIHJhd19yZXNwb25zZSA9IHNlbGYuX2NyZWF0ZV9o
YW5kc2hha2VfcmVzcG9uc2UoYWNjZXB0KQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdGUocmF3X3Jlc3BvbnNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbnQg
c2VydmVyXCdzIG9wZW5pbmcgaGFuZHNoYWtlOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICByYXdfcmVzcG9uc2UpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkwMC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHliaTAwLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4NzU3NzE3YTYzOWJhYzNkYjA1ZDRjYjMwMjdlMDU1ZmRiZjdmM2NmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdl
YnNvY2tldC9oYW5kc2hha2UvaHliaTAwLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjkzICswLDAg
QEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBwcm92aWRlcyB0aGUgb3Blbmlu
ZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0Ci1wcm90b2NvbCB2ZXJzaW9u
IEh5QmkgMDAuCi0KLVNwZWNpZmljYXRpb246Ci1odHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9k
cmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDAKLSIiIgotCi0KLSMgTm90ZTog
cmVxdWVzdC5jb25uZWN0aW9uLndyaXRlL3JlYWQgYXJlIHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2
ZW4gdGhvdWdoCi0jIG1vZF9weXRob24gZG9jdW1lbnQgc2F5cyB0aGF0IHRoZXkgc2hvdWxkIGJl
IHVzZWQgb25seSBpbiBjb25uZWN0aW9uCi0jIGhhbmRsZXJzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBo
YXZlIG5vIG90aGVyIG9wdGlvbnMuIEZvciBleGFtcGxlLAotIyByZXF1ZXN0LndyaXRlL3JlYWQg
YXJlIG5vdCBzdWl0YWJsZSBiZWNhdXNlIHRoZXkgZG9uJ3QgYWxsb3cgZGlyZWN0IHJhdyBieXRl
cwotIyB3cml0aW5nL3JlYWRpbmcuCi0KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCByZQotaW1w
b3J0IHN0cnVjdAotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2Ug
aW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtl
Ll9iYXNlIGltcG9ydCBjaGVja19yZXF1ZXN0X2xpbmUKLWZyb20gbW9kX3B5d2Vic29ja2V0Lmhh
bmRzaGFrZS5fYmFzZSBpbXBvcnQgZm9ybWF0X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
aGFuZHNoYWtlLl9iYXNlIGltcG9ydCBnZXRfZGVmYXVsdF9wb3J0Ci1mcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGdldF9tYW5kYXRvcnlfaGVhZGVyCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHBhcnNlX2hvc3RfaGVhZGVyCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHZhbGlkYXRlX21hbmRh
dG9yeV9oZWFkZXIKLQotCi1fTUFOREFUT1JZX0hFQURFUlMgPSBbCi0gICAgIyBrZXksIGV4cGVj
dGVkIHZhbHVlIG9yIE5vbmUKLSAgICBbY29tbW9uLlVQR1JBREVfSEVBREVSLCBjb21tb24uV0VC
U09DS0VUX1VQR1JBREVfVFlQRV9ISVhJRTc1XSwKLSAgICBbY29tbW9uLkNPTk5FQ1RJT05fSEVB
REVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEVdLAotXQotCi0KLWRlZiBfdmFsaWRh
dGVfc3VicHJvdG9jb2woc3VicHJvdG9jb2wpOgotICAgICIiIkNoZWNrcyBpZiBjaGFyYWN0ZXJz
IGluIHN1YnByb3RvY29sIGFyZSBpbiByYW5nZSBiZXR3ZWVuIFUrMDAyMCBhbmQKLSAgICBVKzAw
N0UuIEEgdmFsdWUgaW4gdGhlIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgZmllbGQgbmVlZCB0byBz
YXRpc2Z5IHRoaXMKLSAgICByZXF1aXJlbWVudC4KLQotICAgIFNlZSB0aGUgU2VjdGlvbiA0LjEu
IE9wZW5pbmcgaGFuZHNoYWtlIG9mIHRoZSBzcGVjLgotICAgICIiIgotCi0gICAgaWYgbm90IHN1
YnByb3RvY29sOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFsaWQgc3Vi
cHJvdG9jb2wgbmFtZTogZW1wdHknKQotCi0gICAgIyBQYXJhbWV0ZXIgc2hvdWxkIGJlIGluIHRo
ZSByYW5nZSBVKzAwMjAgdG8gVSswMDdFLgotICAgIGZvciBjIGluIHN1YnByb3RvY29sOgotICAg
ICAgICBpZiBub3QgMHgyMCA8PSBvcmQoYykgPD0gMHg3ZToKLSAgICAgICAgICAgIHJhaXNlIEhh
bmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSWxsZWdhbCBjaGFyYWN0ZXIgaW4g
c3VicHJvdG9jb2wgbmFtZTogJXInICUgYykKLQotCi1kZWYgX2NoZWNrX2hlYWRlcl9saW5lcyhy
ZXF1ZXN0LCBtYW5kYXRvcnlfaGVhZGVycyk6Ci0gICAgY2hlY2tfcmVxdWVzdF9saW5lKHJlcXVl
c3QpCi0KLSAgICAjIFRoZSBleHBlY3RlZCBmaWVsZCBuYW1lcywgYW5kIHRoZSBtZWFuaW5nIG9m
IHRoZWlyIGNvcnJlc3BvbmRpbmcKLSAgICAjIHZhbHVlcywgYXJlIGFzIGZvbGxvd3MuCi0gICAg
IyAgfFVwZ3JhZGV8IGFuZCB8Q29ubmVjdGlvbnwKLSAgICBmb3Iga2V5LCBleHBlY3RlZF92YWx1
ZSBpbiBtYW5kYXRvcnlfaGVhZGVyczoKLSAgICAgICAgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRl
cihyZXF1ZXN0LCBrZXksIGV4cGVjdGVkX3ZhbHVlKQotCi0KLWRlZiBfYnVpbGRfbG9jYXRpb24o
cmVxdWVzdCk6Ci0gICAgIiIiQnVpbGQgV2ViU29ja2V0IGxvY2F0aW9uIGZvciByZXF1ZXN0LiIi
IgotCi0gICAgbG9jYXRpb25fcGFydHMgPSBbXQotICAgIGlmIHJlcXVlc3QuaXNfaHR0cHMoKToK
LSAgICAgICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKGNvbW1vbi5XRUJfU09DS0VUX1NFQ1VSRV9T
Q0hFTUUpCi0gICAgZWxzZToKLSAgICAgICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKGNvbW1vbi5X
RUJfU09DS0VUX1NDSEVNRSkKLSAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQoJzovLycpCi0gICAg
aG9zdCwgcG9ydCA9IHBhcnNlX2hvc3RfaGVhZGVyKHJlcXVlc3QpCi0gICAgY29ubmVjdGlvbl9w
b3J0ID0gcmVxdWVzdC5jb25uZWN0aW9uLmxvY2FsX2FkZHJbMV0KLSAgICBpZiBwb3J0ICE9IGNv
bm5lY3Rpb25fcG9ydDoKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdIZWFkZXIv
Y29ubmVjdGlvbiBwb3J0IG1pc21hdGNoOiAlZC8lZCcgJQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHBvcnQsIGNvbm5lY3Rpb25fcG9ydCkpCi0gICAgbG9jYXRpb25fcGFydHMu
YXBwZW5kKGhvc3QpCi0gICAgaWYgKHBvcnQgIT0gZ2V0X2RlZmF1bHRfcG9ydChyZXF1ZXN0Lmlz
X2h0dHBzKCkpKToKLSAgICAgICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKCc6JykKLSAgICAgICAg
bG9jYXRpb25fcGFydHMuYXBwZW5kKHN0cihwb3J0KSkKLSAgICBsb2NhdGlvbl9wYXJ0cy5hcHBl
bmQocmVxdWVzdC51bnBhcnNlZF91cmkpCi0gICAgcmV0dXJuICcnLmpvaW4obG9jYXRpb25fcGFy
dHMpCi0KLQotY2xhc3MgSGFuZHNoYWtlcihvYmplY3QpOgotICAgICIiIk9wZW5pbmcgaGFuZHNo
YWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uIEh5QmkgMDAu
Ci0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcik6
Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAg
ICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAgICAgZGlzcGF0
Y2hlcjogRGlzcGF0Y2hlciAoZGlzcGF0Y2guRGlzcGF0Y2hlcikuCi0KLSAgICAgICAgSGFuZHNo
YWtlciB3aWxsIGFkZCBhdHRyaWJ1dGVzIHN1Y2ggYXMgd3NfcmVzb3VyY2UgaW4gcGVyZm9ybWlu
ZwotICAgICAgICBoYW5kc2hha2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qg
PSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyCi0KLSAgICBk
ZWYgZG9faGFuZHNoYWtlKHNlbGYpOgotICAgICAgICAiIiJQZXJmb3JtIFdlYlNvY2tldCBIYW5k
c2hha2UuCi0KLSAgICAgICAgT24gX3JlcXVlc3QsIHdlIHNldAotICAgICAgICAgICAgd3NfcmVz
b3VyY2UsIHdzX3Byb3RvY29sLCB3c19sb2NhdGlvbiwgd3Nfb3JpZ2luLCB3c19jaGFsbGVuZ2Us
Ci0gICAgICAgICAgICB3c19jaGFsbGVuZ2VfbWQ1OiBXZWJTb2NrZXQgaGFuZHNoYWtlIGluZm9y
bWF0aW9uLgotICAgICAgICAgICAgd3Nfc3RyZWFtOiBGcmFtZSBnZW5lcmF0aW9uL3BhcnNpbmcg
Y2xhc3MuCi0gICAgICAgICAgICB3c192ZXJzaW9uOiBQcm90b2NvbCB2ZXJzaW9uLgotCi0gICAg
ICAgIFJhaXNlczoKLSAgICAgICAgICAgIEhhbmRzaGFrZUV4Y2VwdGlvbjogd2hlbiBhbnkgZXJy
b3IgaGFwcGVuZWQgaW4gcGFyc2luZyB0aGUgb3BlbmluZwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoYW5kc2hha2UgcmVxdWVzdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyA1
LjEgUmVhZGluZyB0aGUgY2xpZW50J3Mgb3BlbmluZyBoYW5kc2hha2UuCi0gICAgICAgICMgZGlz
cGF0Y2hlciBzZXRzIGl0IGluIHNlbGYuX3JlcXVlc3QuCi0gICAgICAgIF9jaGVja19oZWFkZXJf
bGluZXMoc2VsZi5fcmVxdWVzdCwgX01BTkRBVE9SWV9IRUFERVJTKQotICAgICAgICBzZWxmLl9z
ZXRfcmVzb3VyY2UoKQotICAgICAgICBzZWxmLl9zZXRfc3VicHJvdG9jb2woKQotICAgICAgICBz
ZWxmLl9zZXRfbG9jYXRpb24oKQotICAgICAgICBzZWxmLl9zZXRfb3JpZ2luKCkKLSAgICAgICAg
c2VsZi5fc2V0X2NoYWxsZW5nZV9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuX3NldF9wcm90b2Nv
bF92ZXJzaW9uKCkKLQotICAgICAgICBzZWxmLl9kaXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFr
ZShzZWxmLl9yZXF1ZXN0KQotCi0gICAgICAgIHNlbGYuX3NlbmRfaGFuZHNoYWtlKCkKLQotICAg
IGRlZiBfc2V0X3Jlc291cmNlKHNlbGYpOgotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3Jlc291
cmNlID0gc2VsZi5fcmVxdWVzdC51cmkKLQotICAgIGRlZiBfc2V0X3N1YnByb3RvY29sKHNlbGYp
OgotICAgICAgICAjIHxTZWMtV2ViU29ja2V0LVByb3RvY29sfAotICAgICAgICBzdWJwcm90b2Nv
bCA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoCi0gICAgICAgICAgICBjb21tb24uU0VD
X1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIpCi0gICAgICAgIGlmIHN1YnByb3RvY29sIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKHN1YnByb3RvY29sKQot
ICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sID0gc3VicHJvdG9jb2wKLQotICAgIGRl
ZiBfc2V0X2xvY2F0aW9uKHNlbGYpOgotICAgICAgICAjIHxIb3N0fAotICAgICAgICBob3N0ID0g
c2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldChjb21tb24uSE9TVF9IRUFERVIpCi0gICAgICAg
IGlmIGhvc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2xvY2F0
aW9uID0gX2J1aWxkX2xvY2F0aW9uKHNlbGYuX3JlcXVlc3QpCi0gICAgICAgICMgVE9ETyh1a2Fp
KTogY2hlY2sgaG9zdCBpcyB0aGlzIGhvc3QuCi0KLSAgICBkZWYgX3NldF9vcmlnaW4oc2VsZik6
Ci0gICAgICAgICMgfE9yaWdpbnwKLSAgICAgICAgb3JpZ2luID0gc2VsZi5fcmVxdWVzdC5oZWFk
ZXJzX2luLmdldChjb21tb24uT1JJR0lOX0hFQURFUikKLSAgICAgICAgaWYgb3JpZ2luIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19vcmlnaW4gPSBvcmlnaW4KLQot
ICAgIGRlZiBfc2V0X3Byb3RvY29sX3ZlcnNpb24oc2VsZik6Ci0gICAgICAgICMgfFNlYy1XZWJT
b2NrZXQtRHJhZnR8Ci0gICAgICAgIGRyYWZ0ID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdl
dChjb21tb24uU0VDX1dFQlNPQ0tFVF9EUkFGVF9IRUFERVIpCi0gICAgICAgIGlmIGRyYWZ0IGlz
IG5vdCBOb25lIGFuZCBkcmFmdCAhPSAnMCc6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VF
eGNlcHRpb24oJ0lsbGVnYWwgdmFsdWUgZm9yICVzOiAlcycgJQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9EUkFGVF9IRUFERVIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWZ0KSkKLQotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ1Byb3RvY29sIHZlcnNpb24gaXMgSHlCaSAwMCcpCi0gICAgICAg
IHNlbGYuX3JlcXVlc3Qud3NfdmVyc2lvbiA9IGNvbW1vbi5WRVJTSU9OX0hZQkkwMAotICAgICAg
ICBzZWxmLl9yZXF1ZXN0LndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUoc2VsZi5fcmVxdWVzdCwg
VHJ1ZSkKLQotICAgIGRlZiBfc2V0X2NoYWxsZW5nZV9yZXNwb25zZShzZWxmKToKLSAgICAgICAg
IyA1LjIgNC04LgotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZSA9IHNlbGYuX2dl
dF9jaGFsbGVuZ2UoKQotICAgICAgICAjIDUuMiA5LiBsZXQgL3Jlc3BvbnNlLyBiZSB0aGUgTUQ1
IGZpbnRlcnByaW50IG9mIC9jaGFsbGVuZ2UvCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hh
bGxlbmdlX21kNSA9IHV0aWwubWQ1X2hhc2goCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lndz
X2NoYWxsZW5nZSkuZGlnZXN0KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAg
ICAgICAgJ0NoYWxsZW5nZTogJXIgKCVzKScsCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lndz
X2NoYWxsZW5nZSwKLSAgICAgICAgICAgIHV0aWwuaGV4aWZ5KHNlbGYuX3JlcXVlc3Qud3NfY2hh
bGxlbmdlKSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0NoYWxs
ZW5nZSByZXNwb25zZTogJXIgKCVzKScsCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2No
YWxsZW5nZV9tZDUsCi0gICAgICAgICAgICB1dGlsLmhleGlmeShzZWxmLl9yZXF1ZXN0LndzX2No
YWxsZW5nZV9tZDUpKQotCi0gICAgZGVmIF9nZXRfa2V5X3ZhbHVlKHNlbGYsIGtleV9maWVsZCk6
Ci0gICAgICAgIGtleV92YWx1ZSA9IGdldF9tYW5kYXRvcnlfaGVhZGVyKHNlbGYuX3JlcXVlc3Qs
IGtleV9maWVsZCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzOiAlcicsIGtleV9m
aWVsZCwga2V5X3ZhbHVlKQotCi0gICAgICAgICMgNS4yIDQuIGxldCAva2V5LW51bWJlcl9uLyBi
ZSB0aGUgZGlnaXRzIChjaGFyYWN0ZXJzIGluIHRoZSByYW5nZQotICAgICAgICAjIFUrMDAzMCBE
SUdJVCBaRVJPICgwKSB0byBVKzAwMzkgRElHSVQgTklORSAoOSkpIGluIC9rZXlfbi8sCi0gICAg
ICAgICMgaW50ZXJwcmV0ZWQgYXMgYSBiYXNlIHRlbiBpbnRlZ2VyLCBpZ25vcmluZyBhbGwgb3Ro
ZXIgY2hhcmFjdGVycwotICAgICAgICAjIGluIC9rZXlfbi8uCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGtleV9udW1iZXIgPSBpbnQocmUuc3ViKCJcXEQiLCAiIiwga2V5X3ZhbHVlKSkKLSAg
ICAgICAgZXhjZXB0OgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCclcyBm
aWVsZCBjb250YWlucyBubyBkaWdpdCcgJSBrZXlfZmllbGQpCi0gICAgICAgICMgNS4yIDUuIGxl
dCAvc3BhY2VzX24vIGJlIHRoZSBudW1iZXIgb2YgVSswMDIwIFNQQUNFIGNoYXJhY3RlcnMKLSAg
ICAgICAgIyBpbiAva2V5X24vLgotICAgICAgICBzcGFjZXMgPSByZS5zdWJuKCIgIiwgIiIsIGtl
eV92YWx1ZSlbMV0KLSAgICAgICAgaWYgc3BhY2VzID09IDA6Ci0gICAgICAgICAgICByYWlzZSBI
YW5kc2hha2VFeGNlcHRpb24oJyVzIGZpZWxkIGNvbnRhaW5zIG5vIHNwYWNlJyAlIGtleV9maWVs
ZCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnJXM6IEtleS1u
dW1iZXIgaXMgJWQgYW5kIG51bWJlciBvZiBzcGFjZXMgaXMgJWQnLAotICAgICAgICAgICAga2V5
X2ZpZWxkLCBrZXlfbnVtYmVyLCBzcGFjZXMpCi0KLSAgICAgICAgIyA1LjIgNi4gaWYgL2tleS1u
dW1iZXJfbi8gaXMgbm90IGFuIGludGVncmFsIG11bHRpcGxlIG9mIC9zcGFjZXNfbi8KLSAgICAg
ICAgIyB0aGVuIGFib3J0IHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbi4KLSAgICAgICAgaWYga2V5
X251bWJlciAlIHNwYWNlcyAhPSAwOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICclczogS2V5LW51bWJlciAoJWQpIGlzIG5vdCBhbiBpbnRl
Z3JhbCBtdWx0aXBsZSBvZiBzcGFjZXMgJwotICAgICAgICAgICAgICAgICcoJWQpJyAlIChrZXlf
ZmllbGQsIGtleV9udW1iZXIsIHNwYWNlcykpCi0gICAgICAgICMgNS4yIDcuIGxldCAvcGFydF9u
LyBiZSAva2V5LW51bWJlcl9uLyBkaXZpZGVkIGJ5IC9zcGFjZXNfbi8uCi0gICAgICAgIHBhcnQg
PSBrZXlfbnVtYmVyIC8gc3BhY2VzCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXM6IFBh
cnQgaXMgJWQnLCBrZXlfZmllbGQsIHBhcnQpCi0gICAgICAgIHJldHVybiBwYXJ0Ci0KLSAgICBk
ZWYgX2dldF9jaGFsbGVuZ2Uoc2VsZik6Ci0gICAgICAgICMgNS4yIDQtNy4KLSAgICAgICAga2V5
MSA9IHNlbGYuX2dldF9rZXlfdmFsdWUoY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZMV9IRUFERVIp
Ci0gICAgICAgIGtleTIgPSBzZWxmLl9nZXRfa2V5X3ZhbHVlKGNvbW1vbi5TRUNfV0VCU09DS0VU
X0tFWTJfSEVBREVSKQotICAgICAgICAjIDUuMiA4LiBsZXQgL2NoYWxsZW5nZS8gYmUgdGhlIGNv
bmNhdGVuYXRpb24gb2YgL3BhcnRfMS8sCi0gICAgICAgIGNoYWxsZW5nZSA9ICcnCi0gICAgICAg
IGNoYWxsZW5nZSArPSBzdHJ1Y3QucGFjaygnIUknLCBrZXkxKSAgIyBuZXR3b3JrIGJ5dGVvcmRl
ciBpbnQKLSAgICAgICAgY2hhbGxlbmdlICs9IHN0cnVjdC5wYWNrKCchSScsIGtleTIpICAjIG5l
dHdvcmsgYnl0ZW9yZGVyIGludAotICAgICAgICBjaGFsbGVuZ2UgKz0gc2VsZi5fcmVxdWVzdC5j
b25uZWN0aW9uLnJlYWQoOCkKLSAgICAgICAgcmV0dXJuIGNoYWxsZW5nZQotCi0gICAgZGVmIF9z
ZW5kX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgcmVzcG9uc2UgPSBbXQotCi0gICAgICAgICMg
NS4yIDEwLiBzZW5kIHRoZSBmb2xsb3dpbmcgbGluZS4KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5k
KCdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nKQotCi0gICAg
ICAgICMgNS4yIDExLiBzZW5kIHRoZSBmb2xsb3dpbmcgZmllbGRzIHRvIHRoZSBjbGllbnQuCi0g
ICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9u
LlVQR1JBREVfSEVBREVSLCBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRV9ISVhJRTc1KSkK
LSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBjb21t
b24uQ09OTkVDVElPTl9IRUFERVIsIGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSkpCi0g
ICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9u
LlNFQ19XRUJTT0NLRVRfTE9DQVRJT05fSEVBREVSLCBzZWxmLl9yZXF1ZXN0LndzX2xvY2F0aW9u
KSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBj
b21tb24uU0VDX1dFQlNPQ0tFVF9PUklHSU5fSEVBREVSLCBzZWxmLl9yZXF1ZXN0LndzX29yaWdp
bikpCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2w6Ci0gICAgICAgICAgICBy
ZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uU0VD
X1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVz
dC53c19wcm90b2NvbCkpCi0gICAgICAgICMgNS4yIDEyLiBzZW5kIHR3byBieXRlcyAweDBEIDB4
MEEuCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnXHJcbicpCi0gICAgICAgICMgNS4yIDEzLiBz
ZW5kIC9yZXNwb25zZS8KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKHNlbGYuX3JlcXVlc3Qud3Nf
Y2hhbGxlbmdlX21kNSkKLQotICAgICAgICByYXdfcmVzcG9uc2UgPSAnJy5qb2luKHJlc3BvbnNl
KQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUocmF3X3Jlc3BvbnNlKQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbnQgc2VydmVyXCdzIG9wZW5pbmcgaGFuZHNo
YWtlOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICByYXdfcmVzcG9uc2UpCi0KLQot
IyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQv
aGFuZHNoYWtlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRz
aGFrZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzkwZGQ3
NTRhNDkwMzY4YjllN2E1OTMzNjVmMmZkMGMwNDE3ZDJkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNo
YWtlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fX2luaXRfXy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3
ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFu
ZHNoYWtlL2h5YmkwMC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hl
YWRlcnBhcnNlcmhhbmRsZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFy
c2VyaGFuZGxlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzI0NDQyMWNmNzli
Y2RkNzM3ZGNiNTdmOWY0MzM2YmUwZTg0Y2E1NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2Vy
aGFuZGxlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDI1NCArMCwwIEBACi0jIENvcHlyaWdodCAy
MDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0j
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotCi0iIiJQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVyIGZvciBtb2RfcHl3ZWJzb2NrZXQu
Ci0KLUFwYWNoZSBIVFRQIFNlcnZlciBhbmQgbW9kX3B5dGhvbiBtdXN0IGJlIGNvbmZpZ3VyZWQg
c3VjaCB0aGF0IHRoaXMKLWZ1bmN0aW9uIGlzIGNhbGxlZCB0byBoYW5kbGUgV2ViU29ja2V0IHJl
cXVlc3QuCi0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwotCi1mcm9tIG1vZF9weXRob24gaW1wb3J0
IGFwYWNoZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgZGlzcGF0Y2gKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBo
YW5kc2hha2UKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQotIyBQeXRob25P
cHRpb24gdG8gc3BlY2lmeSB0aGUgaGFuZGxlciByb290IGRpcmVjdG9yeS4KLV9QWU9QVF9IQU5E
TEVSX1JPT1QgPSAnbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfcm9vdCcKLQotIyBQeXRob25PcHRp
b24gdG8gc3BlY2lmeSB0aGUgaGFuZGxlciBzY2FuIGRpcmVjdG9yeS4KLSMgVGhpcyBtdXN0IGJl
IGEgZGlyZWN0b3J5IHVuZGVyIHRoZSByb290IGRpcmVjdG9yeS4KLSMgVGhlIGRlZmF1bHQgaXMg
dGhlIHJvb3QgZGlyZWN0b3J5LgotX1BZT1BUX0hBTkRMRVJfU0NBTiA9ICdtb2RfcHl3ZWJzb2Nr
ZXQuaGFuZGxlcl9zY2FuJwotCi0jIFB5dGhvbk9wdGlvbiB0byBhbGxvdyBoYW5kbGVycyB3aG9z
ZSBjYW5vbmljYWwgcGF0aCBpcwotIyBub3QgdW5kZXIgdGhlIHJvb3QgZGlyZWN0b3J5LiBJdCdz
IGRpc2FsbG93ZWQgYnkgZGVmYXVsdC4KLSMgU2V0IHRoaXMgb3B0aW9uIHdpdGggdmFsdWUgb2Yg
J3llcycgdG8gYWxsb3cuCi1fUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9ST09UID0gKAot
ICAgICdtb2RfcHl3ZWJzb2NrZXQuYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcicpCi0j
IE1hcCBmcm9tIHZhbHVlcyB0byB0aGVpciBtZWFuaW5ncy4gJ1llcycgYW5kICdObycgYXJlIGFs
bG93ZWQganVzdCBmb3IKLSMgY29tcGF0aWJpbGl0eS4KLV9QWU9QVF9BTExPV19IQU5ETEVSU19P
VVRTSURFX1JPT1RfREVGSU5JVElPTiA9IHsKLSAgICAnb2ZmJzogRmFsc2UsICdubyc6IEZhbHNl
LCAnb24nOiBUcnVlLCAneWVzJzogVHJ1ZX0KLQotIyAoT2Jzb2xldGUgb3B0aW9uLiBJZ25vcmVk
LikKLSMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdG8gYWxsb3cgaGFuZHNoYWtlIGRlZmluZWQg
aW4gSGl4aWUgNzUgdmVyc2lvbgotIyBwcm90b2NvbC4gVGhlIGRlZmF1bHQgaXMgTm9uZSAoT2Zm
KQotX1BZT1BUX0FMTE9XX0RSQUZUNzUgPSAnbW9kX3B5d2Vic29ja2V0LmFsbG93X2RyYWZ0NzUn
Ci0jIE1hcCBmcm9tIHZhbHVlcyB0byB0aGVpciBtZWFuaW5ncy4KLV9QWU9QVF9BTExPV19EUkFG
VDc1X0RFRklOSVRJT04gPSB7J29mZic6IEZhbHNlLCAnb24nOiBUcnVlfQotCi0KLWNsYXNzIEFw
YWNoZUxvZ0hhbmRsZXIobG9nZ2luZy5IYW5kbGVyKToKLSAgICAiIiJXcmFwcGVyIGxvZ2dpbmcu
SGFuZGxlciB0byBlbWl0IGxvZyBtZXNzYWdlIHRvIGFwYWNoZSdzIGVycm9yLmxvZy4iIiIKLQot
ICAgIF9MRVZFTFMgPSB7Ci0gICAgICAgIGxvZ2dpbmcuREVCVUc6IGFwYWNoZS5BUExPR19ERUJV
RywKLSAgICAgICAgbG9nZ2luZy5JTkZPOiBhcGFjaGUuQVBMT0dfSU5GTywKLSAgICAgICAgbG9n
Z2luZy5XQVJOSU5HOiBhcGFjaGUuQVBMT0dfV0FSTklORywKLSAgICAgICAgbG9nZ2luZy5FUlJP
UjogYXBhY2hlLkFQTE9HX0VSUiwKLSAgICAgICAgbG9nZ2luZy5DUklUSUNBTDogYXBhY2hlLkFQ
TE9HX0NSSVQsCi0gICAgICAgIH0KLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0PU5v
bmUpOgotICAgICAgICBsb2dnaW5nLkhhbmRsZXIuX19pbml0X18oc2VsZikKLSAgICAgICAgc2Vs
Zi5fbG9nX2Vycm9yID0gYXBhY2hlLmxvZ19lcnJvcgotICAgICAgICBpZiByZXF1ZXN0IGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgc2VsZi5fbG9nX2Vycm9yID0gcmVxdWVzdC5sb2dfZXJyb3IK
LQotICAgICAgICAjIFRpbWUgYW5kIGxldmVsIHdpbGwgYmUgcHJpbnRlZCBieSBBcGFjaGUuCi0g
ICAgICAgIHNlbGYuX2Zvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKCclKG5hbWUpczogJSht
ZXNzYWdlKXMnKQotCi0gICAgZGVmIGVtaXQoc2VsZiwgcmVjb3JkKToKLSAgICAgICAgYXBhY2hl
X2xldmVsID0gYXBhY2hlLkFQTE9HX0RFQlVHCi0gICAgICAgIGlmIHJlY29yZC5sZXZlbG5vIGlu
IEFwYWNoZUxvZ0hhbmRsZXIuX0xFVkVMUzoKLSAgICAgICAgICAgIGFwYWNoZV9sZXZlbCA9IEFw
YWNoZUxvZ0hhbmRsZXIuX0xFVkVMU1tyZWNvcmQubGV2ZWxub10KLQotICAgICAgICBtc2cgPSBz
ZWxmLl9mb3JtYXR0ZXIuZm9ybWF0KHJlY29yZCkKLQotICAgICAgICAjICJzZXJ2ZXIiIHBhcmFt
ZXRlciBtdXN0IGJlIHBhc3NlZCB0byBoYXZlICJsZXZlbCIgcGFyYW1ldGVyIHdvcmsuCi0gICAg
ICAgICMgSWYgb25seSAibGV2ZWwiIHBhcmFtZXRlciBpcyBwYXNzZWQsIG5vdGhpbmcgc2hvd3Mg
dXAgb24gQXBhY2hlJ3MKLSAgICAgICAgIyBsb2cuIEhvd2V2ZXIsIGF0IHRoaXMgcG9pbnQsIHdl
IGNhbm5vdCBnZXQgdGhlIHNlcnZlciBvYmplY3Qgb2YgdGhlCi0gICAgICAgICMgdmlydHVhbCBo
b3N0IHdoaWNoIHdpbGwgcHJvY2VzcyBXZWJTb2NrZXQgcmVxdWVzdHMuIFRoZSBvbmx5IHNlcnZl
cgotICAgICAgICAjIG9iamVjdCB3ZSBjYW4gZ2V0IGhlcmUgaXMgYXBhY2hlLm1haW5fc2VydmVy
LiBCdXQgV2hlcmV2ZXIgKHNlcnZlcgotICAgICAgICAjIGNvbmZpZ3VyYXRpb24gY29udGV4dCBv
ciB2aXJ0dWFsIGhvc3QgY29udGV4dCkgd2UgcHV0Ci0gICAgICAgICMgUHl0aG9uSGVhZGVyUGFy
c2VySGFuZGxlciBkaXJlY3RpdmUsIGFwYWNoZS5tYWluX3NlcnZlciBqdXN0IHBvaW50cwotICAg
ICAgICAjIHRoZSBtYWluIHNlcnZlciBpbnN0YW5jZSAobm90IGFueSBvZiB2aXJ0dWFsIHNlcnZl
ciBpbnN0YW5jZSkuIFRoZW4sCi0gICAgICAgICMgQXBhY2hlIGZvbGxvd3MgTG9nTGV2ZWwgZGly
ZWN0aXZlIGluIHRoZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBjb250ZXh0Ci0gICAgICAgICMgdG8g
ZmlsdGVyIGxvZ3MuIFNvLCB3ZSBuZWVkIHRvIHNwZWNpZnkgTG9nTGV2ZWwgaW4gdGhlIHNlcnZl
cgotICAgICAgICAjIGNvbmZpZ3VyYXRpb24gY29udGV4dC4gRXZlbiBpZiB3ZSBzcGVjaWZ5ICJM
b2dMZXZlbCBkZWJ1ZyIgaW4gdGhlCi0gICAgICAgICMgdmlydHVhbCBob3N0IGNvbnRleHQgd2hp
Y2ggYWN0dWFsbHkgaGFuZGxlcyBXZWJTb2NrZXQgY29ubmVjdGlvbnMsCi0gICAgICAgICMgREVC
VUcgbGV2ZWwgbG9ncyBuZXZlciBzaG93IHVwIHVubGVzcyAiTG9nTGV2ZWwgZGVidWciIGlzIHNw
ZWNpZmllZAotICAgICAgICAjIGluIHRoZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBjb250ZXh0Lgot
ICAgICAgICAjCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFByb3ZpZGUgbG9nZ2luZyBtZXRo
b2RzIG9uIHJlcXVlc3Qgb2JqZWN0LiBXaGVuCi0gICAgICAgICMgcmVxdWVzdCBpcyBtcF9yZXF1
ZXN0IG9iamVjdCAod2hlbiB1c2VkIHRvZ2V0aGVyIHdpdGggQXBhY2hlKSwgdGhlCi0gICAgICAg
ICMgbWV0aG9kcyBjYWxsIHJlcXVlc3QubG9nX2Vycm9yIGluZGlyZWN0bHkuIFdoZW4gcmVxdWVz
dCBpcwotICAgICAgICAjIF9TdGFuZGFsb25lUmVxdWVzdCwgdGhlIG1ldGhvZHMgY2FsbCBQeXRo
b24ncyBsb2dnaW5nIGZhY2lsaXR5IHdoaWNoCi0gICAgICAgICMgd2UgY3JlYXRlIGluIHN0YW5k
YWxvbmUucHkuCi0gICAgICAgIHNlbGYuX2xvZ19lcnJvcihtc2csIGFwYWNoZV9sZXZlbCwgYXBh
Y2hlLm1haW5fc2VydmVyKQotCi0KLWRlZiBfY29uZmlndXJlX2xvZ2dpbmcoKToKLSAgICBsb2dn
ZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCi0gICAgIyBMb2dzIGFyZSBmaWx0ZXJlZCBieSBBcGFj
aGUgYmFzZWQgb24gTG9nTGV2ZWwgZGlyZWN0aXZlIGluIEFwYWNoZQotICAgICMgY29uZmlndXJh
dGlvbiBmaWxlLiBXZSBtdXN0IGp1c3QgcGFzcyBsb2dzIGZvciBhbGwgbGV2ZWxzIHRvCi0gICAg
IyBBcGFjaGVMb2dIYW5kbGVyLgotICAgIGxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQot
ICAgIGxvZ2dlci5hZGRIYW5kbGVyKEFwYWNoZUxvZ0hhbmRsZXIoKSkKLQotCi1fY29uZmlndXJl
X2xvZ2dpbmcoKQotCi1fTE9HR0VSID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0KLQot
ZGVmIF9wYXJzZV9vcHRpb24obmFtZSwgdmFsdWUsIGRlZmluaXRpb24pOgotICAgIGlmIHZhbHVl
IGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgbWVhbmluZyA9IGRlZmluaXRp
b24uZ2V0KHZhbHVlLmxvd2VyKCkpCi0gICAgaWYgbWVhbmluZyBpcyBOb25lOgotICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWUgZm9yIFB5dGhvbk9wdGlvbiAlczogJXInICUK
LSAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lLCB2YWx1ZSkpCi0gICAgcmV0dXJuIG1lYW5p
bmcKLQotCi1kZWYgX2NyZWF0ZV9kaXNwYXRjaGVyKCk6Ci0gICAgX0xPR0dFUi5pbmZvKCdJbml0
aWFsaXppbmcgRGlzcGF0Y2hlcicpCi0KLSAgICBvcHRpb25zID0gYXBhY2hlLm1haW5fc2VydmVy
LmdldF9vcHRpb25zKCkKLQotICAgIGhhbmRsZXJfcm9vdCA9IG9wdGlvbnMuZ2V0KF9QWU9QVF9I
QU5ETEVSX1JPT1QsIE5vbmUpCi0gICAgaWYgbm90IGhhbmRsZXJfcm9vdDoKLSAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdQeXRob25PcHRpb24gJXMgaXMgbm90IGRlZmluZWQnICUgX1BZT1BUX0hB
TkRMRVJfUk9PVCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19FUlIpCi0K
LSAgICBoYW5kbGVyX3NjYW4gPSBvcHRpb25zLmdldChfUFlPUFRfSEFORExFUl9TQ0FOLCBoYW5k
bGVyX3Jvb3QpCi0KLSAgICBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3QgPSBfcGFyc2Vfb3B0
aW9uKAotICAgICAgICBfUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9ST09ULAotICAgICAg
ICBvcHRpb25zLmdldChfUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9ST09UKSwKLSAgICAg
ICAgX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVF9ERUZJTklUSU9OKQotCi0gICAg
ZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoCi0gICAgICAgIGhhbmRsZXJfcm9vdCwg
aGFuZGxlcl9zY2FuLCBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3QpCi0KLSAgICBmb3Igd2Fy
bmluZyBpbiBkaXNwYXRjaGVyLnNvdXJjZV93YXJuaW5ncygpOgotICAgICAgICBhcGFjaGUubG9n
X2Vycm9yKAotICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogV2FybmluZyBpbiBzb3VyY2Ug
bG9hZGluZzogJXMnICUgd2FybmluZywKLSAgICAgICAgICAgIGFwYWNoZS5BUExPR19XQVJOSU5H
KQotCi0gICAgcmV0dXJuIGRpc3BhdGNoZXIKLQotCi0jIEluaXRpYWxpemUKLV9kaXNwYXRjaGVy
ID0gX2NyZWF0ZV9kaXNwYXRjaGVyKCkKLQotCi1kZWYgaGVhZGVycGFyc2VyaGFuZGxlcihyZXF1
ZXN0KToKLSAgICAiIiJIYW5kbGUgcmVxdWVzdC4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlcXVl
c3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLQotICAgIFRoaXMgZnVuY3Rpb24gaXMgbmFtZWQgaGVh
ZGVycGFyc2VyaGFuZGxlciBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0Ci0gICAgbmFtZSBmb3Ig
YSBQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVyLgotICAgICIiIgotCi0gICAgaGFuZHNoYWtlX2lz
X2RvbmUgPSBGYWxzZQotICAgIHRyeToKLSAgICAgICAgIyBGYWxsYmFjayB0byBkZWZhdWx0IGh0
dHAgaGFuZGxlciBmb3IgcmVxdWVzdCBwYXRocyBmb3Igd2hpY2gKLSAgICAgICAgIyB3ZSBkb24n
dCBoYXZlIHJlcXVlc3QgaGFuZGxlcnMuCi0gICAgICAgIGlmIG5vdCBfZGlzcGF0Y2hlci5nZXRf
aGFuZGxlcl9zdWl0ZShyZXF1ZXN0LnVyaSk6Ci0gICAgICAgICAgICByZXF1ZXN0LmxvZ19lcnJv
cigKLSAgICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0OiBObyBoYW5kbGVyIGZvciByZXNv
dXJjZTogJXInICUgcmVxdWVzdC51cmksCi0gICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lO
Rk8pCi0gICAgICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAgICAgICAgICAgICAnbW9k
X3B5d2Vic29ja2V0OiBGYWxsYmFjayB0byBBcGFjaGUnLCBhcGFjaGUuQVBMT0dfSU5GTykKLSAg
ICAgICAgICAgIHJldHVybiBhcGFjaGUuREVDTElORUQKLSAgICBleGNlcHQgZGlzcGF0Y2guRGlz
cGF0Y2hFeGNlcHRpb24sIGU6Ci0gICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAg
ICAgJ21vZF9weXdlYnNvY2tldDogRGlzcGF0Y2ggZmFpbGVkIGZvciBlcnJvcjogJXMnICUgZSwK
LSAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICBpZiBub3QgaGFuZHNoYWtl
X2lzX2RvbmU6Ci0gICAgICAgICAgICByZXR1cm4gZS5zdGF0dXMKLQotICAgIHRyeToKLSAgICAg
ICAgYWxsb3dfZHJhZnQ3NSA9IF9wYXJzZV9vcHRpb24oCi0gICAgICAgICAgICBfUFlPUFRfQUxM
T1dfRFJBRlQ3NSwKLSAgICAgICAgICAgIGFwYWNoZS5tYWluX3NlcnZlci5nZXRfb3B0aW9ucygp
LmdldChfUFlPUFRfQUxMT1dfRFJBRlQ3NSksCi0gICAgICAgICAgICBfUFlPUFRfQUxMT1dfRFJB
RlQ3NV9ERUZJTklUSU9OKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhhbmRzaGFrZS5k
b19oYW5kc2hha2UoCi0gICAgICAgICAgICAgICAgcmVxdWVzdCwgX2Rpc3BhdGNoZXIsIGFsbG93
RHJhZnQ3NT1hbGxvd19kcmFmdDc1KQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLlZlcnNpb25F
eGNlcHRpb24sIGU6Ci0gICAgICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAgICAgICAg
ICAgICAnbW9kX3B5d2Vic29ja2V0OiBIYW5kc2hha2UgZmFpbGVkIGZvciB2ZXJzaW9uIGVycm9y
OiAlcycgJSBlLAotICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICAg
ICAgcmVxdWVzdC5lcnJfaGVhZGVyc19vdXQuYWRkKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJ
T05fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3Vw
cG9ydGVkX3ZlcnNpb25zKQotICAgICAgICAgICAgcmV0dXJuIGFwYWNoZS5IVFRQX0JBRF9SRVFV
RVNUCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgotICAg
ICAgICAgICAgIyBIYW5kc2hha2UgZm9yIHdzL3dzcyBmYWlsZWQuCi0gICAgICAgICAgICAjIFNl
bmQgaHR0cCByZXNwb25zZSB3aXRoIGVycm9yIHN0YXR1cy4KLSAgICAgICAgICAgIHJlcXVlc3Qu
bG9nX2Vycm9yKAotICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IEhhbmRzaGFrZSBm
YWlsZWQgZm9yIGVycm9yOiAlcycgJSBlLAotICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19J
TkZPKQotICAgICAgICAgICAgcmV0dXJuIGUuc3RhdHVzCi0KLSAgICAgICAgaGFuZHNoYWtlX2lz
X2RvbmUgPSBUcnVlCi0gICAgICAgIHJlcXVlc3QuX2Rpc3BhdGNoZXIgPSBfZGlzcGF0Y2hlcgot
ICAgICAgICBfZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgZXhjZXB0IGhh
bmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBlOgotICAgICAgICByZXF1ZXN0LmxvZ19l
cnJvcignbW9kX3B5d2Vic29ja2V0OiBBYm9ydGVkOiAlcycgJSBlLCBhcGFjaGUuQVBMT0dfSU5G
TykKLSAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAjIERpc3BhdGNoRXhjZXB0aW9u
IGNhbiBhbHNvIGJlIHRocm93biBpZiBzb21ldGhpbmcgaXMgd3JvbmcgaW4KLSAgICAgICAgIyBw
eXdlYnNvY2tldCBjb2RlLiBJdCdzIGNhdWdodCBoZXJlLCB0aGVuLgotCi0gICAgICAgIHJlcXVl
c3QubG9nX2Vycm9yKCdtb2RfcHl3ZWJzb2NrZXQ6IEV4Y2VwdGlvbiBvY2N1cnJlZDogJXNcbiVz
JyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChlLCB1dGlsLmdldF9zdGFja190cmFjZSgp
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0VSUikKLSAgICAgICAg
IyBVbmtub3duIGV4Y2VwdGlvbnMgYmVmb3JlIGhhbmRzaGFrZSBtZWFuIEFwYWNoZSBtdXN0IGhh
bmRsZSBpdHMKLSAgICAgICAgIyByZXF1ZXN0IHdpdGggYW5vdGhlciBoYW5kbGVyLgotICAgICAg
ICBpZiBub3QgaGFuZHNoYWtlX2lzX2RvbmU6Ci0gICAgICAgICAgICByZXR1cm4gYXBhY2hlLkRF
Q0xJTkVECi0gICAgIyBTZXQgYXNzYmFja3dhcmRzIHRvIHN1cHByZXNzIHJlc3BvbnNlIGhlYWRl
ciBnZW5lcmF0aW9uIGJ5IEFwYWNoZS4KLSAgICByZXF1ZXN0LmFzc2JhY2t3YXJkcyA9IDEKLSAg
ICByZXR1cm4gYXBhY2hlLkRPTkUgICMgUmV0dXJuIERPTkUgc3VjaCB0aGF0IG5vIG90aGVyIGhh
bmRsZXJzIGFyZSBpbnZva2VkLgotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVhZGVyX3V0aWwucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9t
b2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJfdXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjc3NDY1MzkzMjg1ZmYxYmQ2YmY4ZDk5NDAxY2M2NzQ0MjEyNWUwYi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3
ZWJzb2NrZXQvaHR0cF9oZWFkZXJfdXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI2MyArMCww
IEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJVdGlsaXRpZXMgZm9yIHBhcnNpbmcgYW5kIGZv
cm1hdHRpbmcgaGVhZGVycyB0aGF0IGZvbGxvdyB0aGUgZ3JhbW1hciBkZWZpbmVkCi1pbiBIVFRQ
IFJGQyBodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyNjE2LnR4dC4KLSIiIgotCi0KLWltcG9y
dCB1cmxwYXJzZQotCi0KLV9TRVBBUkFUT1JTID0gJygpPD5ALDs6XFwiL1tdPz17fSBcdCcKLQot
Ci1kZWYgX2lzX2NoYXIoYyk6Ci0gICAgIiIiUmV0dXJucyB0cnVlIGlmZiBjIGlzIGluIENIQVIg
YXMgc3BlY2lmaWVkIGluIEhUVFAgUkZDLiIiIgotCi0gICAgcmV0dXJuIG9yZChjKSA8PSAxMjcK
LQotCi1kZWYgX2lzX2N0bChjKToKLSAgICAiIiJSZXR1cm5zIHRydWUgaWZmIGMgaXMgaW4gQ1RM
IGFzIHNwZWNpZmllZCBpbiBIVFRQIFJGQy4iIiIKLQotICAgIHJldHVybiBvcmQoYykgPD0gMzEg
b3Igb3JkKGMpID09IDEyNwotCi0KLWNsYXNzIFBhcnNpbmdTdGF0ZShvYmplY3QpOgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLmRhdGEgPSBkYXRhCi0gICAg
ICAgIHNlbGYuaGVhZCA9IDAKLQotCi1kZWYgcGVlayhzdGF0ZSwgcG9zPTApOgotICAgICIiIlBl
ZWtzIHRoZSBjaGFyYWN0ZXIgYXQgcG9zIGZyb20gdGhlIGhlYWQgb2YgZGF0YS4iIiIKLQotICAg
IGlmIHN0YXRlLmhlYWQgKyBwb3MgPj0gbGVuKHN0YXRlLmRhdGEpOgotICAgICAgICByZXR1cm4g
Tm9uZQotCi0gICAgcmV0dXJuIHN0YXRlLmRhdGFbc3RhdGUuaGVhZCArIHBvc10KLQotCi1kZWYg
Y29uc3VtZShzdGF0ZSwgYW1vdW50PTEpOgotICAgICIiIkNvbnN1bWVzIHNwZWNpZmllZCBhbW91
bnQgb2YgYnl0ZXMgZnJvbSB0aGUgaGVhZCBhbmQgcmV0dXJucyB0aGUKLSAgICBjb25zdW1lZCBi
eXRlcy4gSWYgdGhlcmUncyBub3QgZW5vdWdoIGJ5dGVzIHRvIGNvbnN1bWUsIHJldHVybnMgTm9u
ZS4KLSAgICAiIiIKLQotICAgIGlmIHN0YXRlLmhlYWQgKyBhbW91bnQgPiBsZW4oc3RhdGUuZGF0
YSk6Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICByZXN1bHQgPSBzdGF0ZS5kYXRhW3N0YXRl
LmhlYWQ6c3RhdGUuaGVhZCArIGFtb3VudF0KLSAgICBzdGF0ZS5oZWFkID0gc3RhdGUuaGVhZCAr
IGFtb3VudAotICAgIHJldHVybiByZXN1bHQKLQotCi1kZWYgY29uc3VtZV9zdHJpbmcoc3RhdGUs
IGV4cGVjdGVkKToKLSAgICAiIiJHaXZlbiBhIHBhcnNpbmcgc3RhdGUgYW5kIGEgZXhwZWN0ZWQg
c3RyaW5nLCBjb25zdW1lcyB0aGUgc3RyaW5nIGZyb20KLSAgICB0aGUgaGVhZC4gUmV0dXJucyBU
cnVlIGlmIGNvbnN1bWVkIHN1Y2Nlc3NmdWxseS4gT3RoZXJ3aXNlLCByZXR1cm5zCi0gICAgRmFs
c2UuCi0gICAgIiIiCi0KLSAgICBwb3MgPSAwCi0KLSAgICBmb3IgYyBpbiBleHBlY3RlZDoKLSAg
ICAgICAgaWYgYyAhPSBwZWVrKHN0YXRlLCBwb3MpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNl
Ci0gICAgICAgIHBvcyArPSAxCi0KLSAgICBjb25zdW1lKHN0YXRlLCBwb3MpCi0gICAgcmV0dXJu
IFRydWUKLQotCi1kZWYgY29uc3VtZV9sd3Moc3RhdGUpOgotICAgICIiIkNvbnN1bWVzIGEgTFdT
IGZyb20gdGhlIGhlYWQuIFJldHVybnMgVHJ1ZSBpZiBhbnkgTFdTIGlzIGNvbnN1bWVkLgotICAg
IE90aGVyd2lzZSwgcmV0dXJucyBGYWxzZS4KLQotICAgIExXUyA9IFtDUkxGXSAxKiggU1AgfCBI
VCApCi0gICAgIiIiCi0KLSAgICBvcmlnaW5hbF9oZWFkID0gc3RhdGUuaGVhZAotCi0gICAgY29u
c3VtZV9zdHJpbmcoc3RhdGUsICdcclxuJykKLQotICAgIHBvcyA9IDAKLQotICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgIGMgPSBwZWVrKHN0YXRlLCBwb3MpCi0gICAgICAgIGlmIGMgPT0gJyAnIG9y
IGMgPT0gJ1x0JzoKLSAgICAgICAgICAgIHBvcyArPSAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBpZiBwb3MgPT0gMDoKLSAgICAgICAgICAgICAgICBzdGF0ZS5oZWFkID0gb3JpZ2luYWxf
aGVhZAotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICBjb25zdW1lKHN0YXRlLCBwb3MpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IFRydWUKLQotCi1kZWYgY29uc3VtZV9sd3NlcyhzdGF0ZSk6Ci0gICAgIiIiQ29uc3VtZXMgKkxX
UyBmcm9tIHRoZSBoZWFkLiIiIgotCi0gICAgd2hpbGUgY29uc3VtZV9sd3Moc3RhdGUpOgotICAg
ICAgICBwYXNzCi0KLQotZGVmIGNvbnN1bWVfdG9rZW4oc3RhdGUpOgotICAgICIiIkNvbnN1bWVz
IGEgdG9rZW4gZnJvbSB0aGUgaGVhZC4gUmV0dXJucyB0aGUgdG9rZW4gb3IgTm9uZSBpZiBubyB0
b2tlbgotICAgIHdhcyBmb3VuZC4KLSAgICAiIiIKLQotICAgIHBvcyA9IDAKLQotICAgIHdoaWxl
IFRydWU6Ci0gICAgICAgIGMgPSBwZWVrKHN0YXRlLCBwb3MpCi0gICAgICAgIGlmIGMgaXMgTm9u
ZSBvciBjIGluIF9TRVBBUkFUT1JTIG9yIF9pc19jdGwoYykgb3Igbm90IF9pc19jaGFyKGMpOgot
ICAgICAgICAgICAgaWYgcG9zID09IDA6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQot
ICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWUoc3RhdGUsIHBvcykKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHBvcyArPSAxCi0KLQotZGVmIGNvbnN1bWVfdG9rZW5fb3JfcXVvdGVkX3N0cmlu
ZyhzdGF0ZSk6Ci0gICAgIiIiQ29uc3VtZXMgYSB0b2tlbiBvciBhIHF1b3RlZC1zdHJpbmcsIGFu
ZCByZXR1cm5zIHRoZSB0b2tlbiBvciB1bnF1b3RlZAotICAgIHN0cmluZy4gSWYgbm8gdG9rZW4g
b3IgcXVvdGVkLXN0cmluZyB3YXMgZm91bmQsIHJldHVybnMgTm9uZS4KLSAgICAiIiIKLQotICAg
IG9yaWdpbmFsX2hlYWQgPSBzdGF0ZS5oZWFkCi0KLSAgICBpZiBub3QgY29uc3VtZV9zdHJpbmco
c3RhdGUsICciJyk6Ci0gICAgICAgIHJldHVybiBjb25zdW1lX3Rva2VuKHN0YXRlKQotCi0gICAg
cmVzdWx0ID0gW10KLQotICAgIGV4cGVjdF9xdW90ZWRfcGFpciA9IEZhbHNlCi0KLSAgICB3aGls
ZSBUcnVlOgotICAgICAgICBpZiBub3QgZXhwZWN0X3F1b3RlZF9wYWlyIGFuZCBjb25zdW1lX2x3
cyhzdGF0ZSk6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgJykKLSAgICAgICAgICAgIGNv
bnRpbnVlCi0KLSAgICAgICAgYyA9IGNvbnN1bWUoc3RhdGUpCi0gICAgICAgIGlmIGMgaXMgTm9u
ZToKLSAgICAgICAgICAgICMgcXVvdGVkLXN0cmluZyBpcyBub3QgZW5jbG9zZWQgd2l0aCBkb3Vi
bGUgcXVvdGF0aW9uCi0gICAgICAgICAgICBzdGF0ZS5oZWFkID0gb3JpZ2luYWxfaGVhZAotICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgZWxpZiBleHBlY3RfcXVvdGVkX3BhaXI6Ci0g
ICAgICAgICAgICBleHBlY3RfcXVvdGVkX3BhaXIgPSBGYWxzZQotICAgICAgICAgICAgaWYgX2lz
X2NoYXIoYyk6Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKQotICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAjIE5vbiBDSEFSIGNoYXJhY3RlciBmb3VuZCBpbiBxdW90
ZWQtcGFpcgotICAgICAgICAgICAgICAgIHN0YXRlLmhlYWQgPSBvcmlnaW5hbF9oZWFkCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgZWxpZiBjID09ICdcXCc6Ci0gICAgICAg
ICAgICBleHBlY3RfcXVvdGVkX3BhaXIgPSBUcnVlCi0gICAgICAgIGVsaWYgYyA9PSAnIic6Ci0g
ICAgICAgICAgICByZXR1cm4gJycuam9pbihyZXN1bHQpCi0gICAgICAgIGVsaWYgX2lzX2N0bChj
KToKLSAgICAgICAgICAgICMgSW52YWxpZCBjaGFyYWN0ZXIgJXIgZm91bmQgaW4gcWR0ZXh0Ci0g
ICAgICAgICAgICBzdGF0ZS5oZWFkID0gb3JpZ2luYWxfaGVhZAotICAgICAgICAgICAgcmV0dXJu
IE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYykKLQotCi1k
ZWYgcXVvdGVfaWZfbmVjZXNzYXJ5KHMpOgotICAgICIiIlF1b3RlcyBhcmJpdHJhcnkgc3RyaW5n
IGludG8gcXVvdGVkLXN0cmluZy4iIiIKLQotICAgIHF1b3RlID0gRmFsc2UKLSAgICBpZiBzID09
ICcnOgotICAgICAgICByZXR1cm4gJyIiJwotCi0gICAgcmVzdWx0ID0gW10KLSAgICBmb3IgYyBp
biBzOgotICAgICAgICBpZiBjID09ICciJyBvciBjIGluIF9TRVBBUkFUT1JTIG9yIF9pc19jdGwo
Yykgb3Igbm90IF9pc19jaGFyKGMpOgotICAgICAgICAgICAgcXVvdGUgPSBUcnVlCi0KLSAgICAg
ICAgaWYgYyA9PSAnIicgb3IgX2lzX2N0bChjKToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo
J1xcJyArIGMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpCi0K
LSAgICBpZiBxdW90ZToKLSAgICAgICAgcmV0dXJuICciJyArICcnLmpvaW4ocmVzdWx0KSArICci
JwotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKLQotCi1kZWYgcGFy
c2VfdXJpKHVyaSk6Ci0gICAgIiIiUGFyc2UgYWJzb2x1dGUgVVJJIHRoZW4gcmV0dXJuIGhvc3Qs
IHBvcnQgYW5kIHJlc291cmNlLiIiIgotCi0gICAgcGFyc2VkID0gdXJscGFyc2UudXJsc3BsaXQo
dXJpKQotICAgIGlmIHBhcnNlZC5zY2hlbWUgIT0gJ3dzcycgYW5kIHBhcnNlZC5zY2hlbWUgIT0g
J3dzJzoKLSAgICAgICAgIyB8dXJpfCBtdXN0IGJlIGEgcmVsYXRpdmUgVVJJLgotICAgICAgICAj
IFRPRE8odG95b3NoaW0pOiBTaG91bGQgdmFsaWRhdGUgfHVyaXwuCi0gICAgICAgIHJldHVybiBO
b25lLCBOb25lLCB1cmkKLQotICAgIGlmIHBhcnNlZC5ob3N0bmFtZSBpcyBOb25lOgotICAgICAg
ICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQotCi0gICAgcG9ydCA9IE5vbmUKLSAgICB0cnk6Ci0g
ICAgICAgIHBvcnQgPSBwYXJzZWQucG9ydAotICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAg
ICAgICAjIHBvcnQgcHJvcGVydHkgY2F1c2UgVmFsdWVFcnJvciBvbiBpbnZhbGlkIG51bGwgcG9y
dCBkZXNjcmlwdGlvbiBsaWtlCi0gICAgICAgICMgJ3dzOi8vaG9zdDovcGF0aCcuCi0gICAgICAg
IHJldHVybiBOb25lLCBOb25lLCBOb25lCi0KLSAgICBpZiBwb3J0IGlzIE5vbmU6Ci0gICAgICAg
IGlmIHBhcnNlZC5zY2hlbWUgPT0gJ3dzJzoKLSAgICAgICAgICAgIHBvcnQgPSA4MAotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcG9ydCA9IDQ0MwotCi0gICAgcGF0aCA9IHBhcnNlZC5wYXRo
Ci0gICAgaWYgbm90IHBhdGg6Ci0gICAgICAgIHBhdGggKz0gJy8nCi0gICAgaWYgcGFyc2VkLnF1
ZXJ5OgotICAgICAgICBwYXRoICs9ICc/JyArIHBhcnNlZC5xdWVyeQotICAgIGlmIHBhcnNlZC5m
cmFnbWVudDoKLSAgICAgICAgcGF0aCArPSAnIycgKyBwYXJzZWQuZnJhZ21lbnQKLQotICAgIHJl
dHVybiBwYXJzZWQuaG9zdG5hbWUsIHBvcnQsIHBhdGgKLQotCi10cnk6Ci0gICAgdXJscGFyc2Uu
dXNlc19uZXRsb2MuaW5kZXgoJ3dzJykKLWV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICMgdXJs
cGFyc2UgaW4gUHl0aG9uMi41LjEgZG9lc24ndCBoYXZlICd3cycgYW5kICd3c3MnIGVudHJpZXMu
Ci0gICAgdXJscGFyc2UudXNlc19uZXRsb2MuYXBwZW5kKCd3cycpCi0gICAgdXJscGFyc2UudXNl
c19uZXRsb2MuYXBwZW5kKCd3c3MnKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
bW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0ZDRjZDk1ODU5NWFiZGZjMGM0MGQ0MzA4NDg4NzAwYjdiOTNjNmI3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdl
YnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAK
LSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4K
LSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0j
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiTWVtb3Jp
emluZyBmaWxlLgotCi1BIG1lbW9yaXppbmcgZmlsZSB3cmFwcyBhIGZpbGUgYW5kIG1lbW9yaXpl
cyBsaW5lcyByZWFkIGJ5IHJlYWRsaW5lLgotIiIiCi0KLQotaW1wb3J0IHN5cwotCi0KLWNsYXNz
IE1lbW9yaXppbmdGaWxlKG9iamVjdCk6Ci0gICAgIiIiTWVtb3JpemluZ0ZpbGUgd3JhcHMgYSBm
aWxlIGFuZCBtZW1vcml6ZXMgbGluZXMgcmVhZCBieSByZWFkbGluZS4KLQotICAgIE5vdGUgdGhh
dCBkYXRhIHJlYWQgYnkgb3RoZXIgbWV0aG9kcyBhcmUgbm90IG1lbW9yaXplZC4gVGhpcyBiZWhh
dmlvcgotICAgIGlzIGdvb2QgZW5vdWdoIGZvciBtZW1vcml6aW5nIGxpbmVzIFNpbXBsZUhUVFBT
ZXJ2ZXIgcmVhZHMgYmVmb3JlCi0gICAgdGhlIGNvbnRyb2wgcmVhY2hlcyBXZWJTb2NrZXRSZXF1
ZXN0SGFuZGxlci4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlXywgbWF4
X21lbW9yaXplZF9saW5lcz1zeXMubWF4aW50KToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGlu
c3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBmaWxlXzogdGhlIGZpbGUgb2Jq
ZWN0IHRvIHdyYXAuCi0gICAgICAgICAgICBtYXhfbWVtb3JpemVkX2xpbmVzOiB0aGUgbWF4aW11
bSBudW1iZXIgb2YgbGluZXMgdG8gbWVtb3JpemUuCi0gICAgICAgICAgICAgICAgT25seSB0aGUg
Zmlyc3QgbWF4X21lbW9yaXplZF9saW5lcyBhcmUgbWVtb3JpemVkLgotICAgICAgICAgICAgICAg
IERlZmF1bHQ6IHN5cy5tYXhpbnQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2ZpbGUg
PSBmaWxlXwotICAgICAgICBzZWxmLl9tZW1vcml6ZWRfbGluZXMgPSBbXQotICAgICAgICBzZWxm
Ll9tYXhfbWVtb3JpemVkX2xpbmVzID0gbWF4X21lbW9yaXplZF9saW5lcwotICAgICAgICBzZWxm
Ll9idWZmZXJlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2J1ZmZlcmVkX2xpbmUgPSBOb25lCi0K
LSAgICBkZWYgX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgaWYgbmFtZSBp
biAoJ19maWxlJywgJ19tZW1vcml6ZWRfbGluZXMnLCAnX21heF9tZW1vcml6ZWRfbGluZXMnLAot
ICAgICAgICAgICAgICAgICAgICAnX2J1ZmZlcmVkJywgJ19idWZmZXJlZF9saW5lJywgJ3JlYWRs
aW5lJywKLSAgICAgICAgICAgICAgICAgICAgJ2dldF9tZW1vcml6ZWRfbGluZXMnKToKLSAgICAg
ICAgICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKQotICAgICAg
ICByZXR1cm4gc2VsZi5fZmlsZS5fX2dldGF0dHJpYnV0ZV9fKG5hbWUpCi0KLSAgICBkZWYgcmVh
ZGxpbmUoc2VsZiwgc2l6ZT0tMSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIGZpbGUucmVhZGxpbmUg
YW5kIG1lbW9yaXplIHRoZSBsaW5lIHJlYWQuCi0KLSAgICAgICAgTm90ZSB0aGF0IGV2ZW4gaWYg
c2l6ZSBpcyBzcGVjaWZpZWQgYW5kIHNtYWxsZXIgdGhhbiBhY3R1YWwgc2l6ZSwKLSAgICAgICAg
dGhlIHdob2xlIGxpbmUgd2lsbCBiZSByZWFkIG91dCBmcm9tIHVuZGVybHlpbmcgZmlsZSBvYmpl
Y3QgYnkKLSAgICAgICAgc3Vic2VxdWVudCByZWFkbGluZSBjYWxscy4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgaWYgc2VsZi5fYnVmZmVyZWQ6Ci0gICAgICAgICAgICBsaW5lID0gc2VsZi5fYnVm
ZmVyZWRfbGluZQotICAgICAgICAgICAgc2VsZi5fYnVmZmVyZWQgPSBGYWxzZQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgbGluZSA9IHNlbGYuX2ZpbGUucmVhZGxpbmUoKQotICAgICAgICAg
ICAgaWYgbGluZSBhbmQgbGVuKHNlbGYuX21lbW9yaXplZF9saW5lcykgPCBzZWxmLl9tYXhfbWVt
b3JpemVkX2xpbmVzOgotICAgICAgICAgICAgICAgIHNlbGYuX21lbW9yaXplZF9saW5lcy5hcHBl
bmQobGluZSkKLSAgICAgICAgaWYgc2l6ZSA+PSAwIGFuZCBzaXplIDwgbGVuKGxpbmUpOgotICAg
ICAgICAgICAgc2VsZi5fYnVmZmVyZWQgPSBUcnVlCi0gICAgICAgICAgICBzZWxmLl9idWZmZXJl
ZF9saW5lID0gbGluZVtzaXplOl0KLSAgICAgICAgICAgIHJldHVybiBsaW5lWzpzaXplXQotICAg
ICAgICByZXR1cm4gbGluZQotCi0gICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0g
ICAgICAgICIiIkdldCBsaW5lcyBtZW1vcml6ZWQgc28gZmFyLiIiIgotICAgICAgICByZXR1cm4g
c2VsZi5fbWVtb3JpemVkX2xpbmVzCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdl
YnNvY2tldC9tc2d1dGlsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzFhMDEx
NGI0YmM0MThiMjBlNmExNTU2NTllOTI1N2FhYjczNmVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tc2d1dGls
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjE5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LSIiIk1lc3NhZ2UgcmVsYXRlZCB1dGlsaXRpZXMuCi0KLU5vdGU6IHJlcXVlc3QuY29ubmVjdGlv
bi53cml0ZS9yZWFkIGFyZSB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAotbW9kX3B5
dGhvbiBkb2N1bWVudCBzYXlzIHRoYXQgdGhleSBzaG91bGQgYmUgdXNlZCBvbmx5IGluIGNvbm5l
Y3Rpb24KLWhhbmRsZXJzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIG90aGVyIG9wdGlvbnMu
IEZvciBleGFtcGxlLAotcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVjYXVz
ZSB0aGV5IGRvbid0IGFsbG93IGRpcmVjdCByYXcKLWJ5dGVzIHdyaXRpbmcvcmVhZGluZy4KLSIi
IgotCi0KLWltcG9ydCBRdWV1ZQotaW1wb3J0IHRocmVhZGluZwotCi0KLSMgRXhwb3J0IEV4Y2Vw
dGlvbiBzeW1ib2xzIGZyb20gbXNndXRpbCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRl
ZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZh
bGlkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBv
cnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jh
c2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24KLQotCi0jIEFuIEFQSSBmb3IgaGFu
ZGxlciB0byBzZW5kL3JlY2VpdmUgV2ViU29ja2V0IG1lc3NhZ2VzLgotZGVmIGNsb3NlX2Nvbm5l
Y3Rpb24ocmVxdWVzdCk6Ci0gICAgIiIiQ2xvc2UgY29ubmVjdGlvbi4KLQotICAgIEFyZ3M6Ci0g
ICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAiIiIKLSAgICByZXF1ZXN0
LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKLQotCi1kZWYgc2VuZF9tZXNzYWdlKHJlcXVl
c3QsIHBheWxvYWRfZGF0YSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgIiIiU2VuZCBh
IG1lc3NhZ2UgKG9yIHBhcnQgb2YgYSBtZXNzYWdlKS4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJl
cXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgcGF5bG9hZF9kYXRhOiB1bmljb2Rl
IHRleHQgb3Igc3RyIGJpbmFyeSB0byBzZW5kLgotICAgICAgICBlbmQ6IFRydWUgdG8gdGVybWlu
YXRlIGEgbWVzc2FnZS4KLSAgICAgICAgICAgICBGYWxzZSB0byBzZW5kIHBheWxvYWRfZGF0YSBh
cyBwYXJ0IG9mIGEgbWVzc2FnZSB0aGF0IGlzIHRvIGJlCi0gICAgICAgICAgICAgdGVybWluYXRl
ZCBieSBuZXh0IG9yIGxhdGVyIHNlbmRfbWVzc2FnZSBjYWxsIHdpdGggZW5kPVRydWUuCi0gICAg
ICAgIGJpbmFyeTogc2VuZCBwYXlsb2FkX2RhdGEgYXMgYmluYXJ5IGZyYW1lKHMpLgotICAgIFJh
aXNlczoKLSAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIHNlcnZlciBhbHJlYWR5
IHRlcm1pbmF0ZWQuCi0gICAgIiIiCi0gICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdl
KHBheWxvYWRfZGF0YSwgZW5kLCBiaW5hcnkpCi0KLQotZGVmIHJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KToKLSAgICAiIiJSZWNlaXZlIGEgV2ViU29ja2V0IGZyYW1lIGFuZCByZXR1cm4gaXRzIHBh
eWxvYWQgYXMgYSB0ZXh0IGluCi0gICAgdW5pY29kZSBvciBhIGJpbmFyeSBpbiBzdHIuCi0KLSAg
ICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgUmFpc2Vz
OgotICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246ICAgICB3aGVuIGNsaWVudCBzZW5kIGlu
dmFsaWQgZnJhbWUuCi0gICAgICAgIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb246IHdoZW4gY2xp
ZW50IHNlbmQgdW5zdXBwb3J0ZWQgZnJhbWUgZS5nLiBzb21lCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9mIHJlc2VydmVkIGJpdCBpcyBzZXQgYnV0IG5vIGV4dGVuc2lvbiBj
YW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIGl0LgotICAg
ICAgICBJbnZhbGlkVVRGOEV4Y2VwdGlvbjogICAgICB3aGVuIGNsaWVudCBzZW5kIGEgdGV4dCBm
cmFtZSBjb250YWluaW5nIGFueQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnZhbGlkIFVURi04IHN0cmluZy4KLSAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRp
b246IHdoZW4gdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuZXhwZWN0ZWRseS4KLSAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9u
OiAgICAgd2hlbiBjbGllbnQgYWxyZWFkeSB0ZXJtaW5hdGVkLgotICAgICIiIgotICAgIHJldHVy
biByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotCi0KLWRlZiBzZW5kX3Bpbmco
cmVxdWVzdCwgYm9keT0nJyk6Ci0gICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5nKGJvZHkp
Ci0KLQotY2xhc3MgTWVzc2FnZVJlY2VpdmVyKHRocmVhZGluZy5UaHJlYWQpOgotICAgICIiIlRo
aXMgY2xhc3MgcmVjZWl2ZXMgbWVzc2FnZXMgZnJvbSB0aGUgY2xpZW50LgotCi0gICAgVGhpcyBj
bGFzcyBwcm92aWRlcyB0aHJlZSB3YXlzIHRvIHJlY2VpdmUgbWVzc2FnZXM6IGJsb2NraW5nLAot
ICAgIG5vbi1ibG9ja2luZywgYW5kIHZpYSBjYWxsYmFjay4gQ2FsbGJhY2sgaGFzIHRoZSBoaWdo
ZXN0IHByZWNlZGVuY2UuCi0KLSAgICBOb3RlOiBUaGlzIGNsYXNzIHNob3VsZCBub3QgYmUgdXNl
ZCB3aXRoIHRoZSBzdGFuZGFsb25lIHNlcnZlciBmb3Igd3NzCi0gICAgYmVjYXVzZSBweU9wZW5T
U0wgdXNlZCBieSB0aGUgc2VydmVyIHJhaXNlcyBhIGZhdGFsIGVycm9yIGlmIHRoZSBzb2NrZXQK
LSAgICBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCi0gICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgb25tZXNzYWdlPU5vbmUpOgotICAgICAgICAiIiJD
b25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVl
c3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgICAgIG9ubWVzc2FnZTogYSBmdW5jdGlv
biB0byBiZSBjYWxsZWQgd2hlbiBhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQuCi0gICAgICAgICAgICAg
ICAgICAgICAgIE1heSBiZSBOb25lLiBJZiBub3QgTm9uZSwgdGhlIGZ1bmN0aW9uIGlzIGNhbGxl
ZCBvbgotICAgICAgICAgICAgICAgICAgICAgICBhbm90aGVyIHRocmVhZC4gSW4gdGhhdCBjYXNl
LCBNZXNzYWdlUmVjZWl2ZXIucmVjZWl2ZQotICAgICAgICAgICAgICAgICAgICAgICBhbmQgTWVz
c2FnZVJlY2VpdmVyLnJlY2VpdmVfbm93YWl0IGFyZSB1c2VsZXNzCi0gICAgICAgICAgICAgICAg
ICAgICAgIGJlY2F1c2UgdGhleSB3aWxsIG5ldmVyIHJldHVybiBhbnkgbWVzc2FnZXMuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAg
ICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5fcXVldWUgPSBRdWV1ZS5R
dWV1ZSgpCi0gICAgICAgIHNlbGYuX29ubWVzc2FnZSA9IG9ubWVzc2FnZQotICAgICAgICBzZWxm
Ll9zdG9wX3JlcXVlc3RlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0g
ICAgICAgIHNlbGYuc3RhcnQoKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAg
ICAgIG1lc3NhZ2UgPSByZWNlaXZlX21lc3NhZ2Uoc2VsZi5fcmVxdWVzdCkKLSAgICAgICAgICAg
ICAgICBpZiBzZWxmLl9vbm1lc3NhZ2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29ubWVz
c2FnZShtZXNzYWdlKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX3F1ZXVlLnB1dChtZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
Y2xvc2VfY29ubmVjdGlvbihzZWxmLl9yZXF1ZXN0KQotCi0gICAgZGVmIHJlY2VpdmUoc2VsZik6
Ci0gICAgICAgICIiIiBSZWNlaXZlIGEgbWVzc2FnZSBmcm9tIHRoZSBjaGFubmVsLCBibG9ja2lu
Zy4KLQotICAgICAgICBSZXR1cm5zOgotICAgICAgICAgICAgbWVzc2FnZSBhcyBhIHVuaWNvZGUg
c3RyaW5nLgotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3F1ZXVlLmdldCgpCi0K
LSAgICBkZWYgcmVjZWl2ZV9ub3dhaXQoc2VsZik6Ci0gICAgICAgICIiIiBSZWNlaXZlIGEgbWVz
c2FnZSBmcm9tIHRoZSBjaGFubmVsLCBub24tYmxvY2tpbmcuCi0KLSAgICAgICAgUmV0dXJuczoK
LSAgICAgICAgICAgIG1lc3NhZ2UgYXMgYSB1bmljb2RlIHN0cmluZyBpZiBhdmFpbGFibGUuIE5v
bmUgb3RoZXJ3aXNlLgotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbWVz
c2FnZSA9IHNlbGYuX3F1ZXVlLmdldF9ub3dhaXQoKQotICAgICAgICBleGNlcHQgUXVldWUuRW1w
dHk6Ci0gICAgICAgICAgICBtZXNzYWdlID0gTm9uZQotICAgICAgICByZXR1cm4gbWVzc2FnZQot
Ci0gICAgZGVmIHN0b3Aoc2VsZik6Ci0gICAgICAgICIiIlJlcXVlc3QgdG8gc3RvcCB0aGlzIGlu
c3RhbmNlLgotCi0gICAgICAgIFRoZSBpbnN0YW5jZSB3aWxsIGJlIHN0b3BwZWQgYWZ0ZXIgcmVj
ZWl2aW5nIHRoZSBuZXh0IG1lc3NhZ2UuCi0gICAgICAgIFRoaXMgbWV0aG9kIG1heSBub3QgYmUg
dmVyeSB1c2VmdWwsIGJ1dCB0aGVyZSBpcyBubyBjbGVhbiB3YXkKLSAgICAgICAgaW4gUHl0aG9u
IHRvIGZvcmNlZnVsbHkgc3RvcCBhIHJ1bm5pbmcgdGhyZWFkLgotICAgICAgICAiIiIKLSAgICAg
ICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBUcnVlCi0KLQotY2xhc3MgTWVzc2FnZVNlbmRlcih0
aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJUaGlzIGNsYXNzIHNlbmRzIG1lc3NhZ2VzIHRvIHRo
ZSBjbGllbnQuCi0KLSAgICBUaGlzIGNsYXNzIHByb3ZpZGVzIGJvdGggc3luY2hyb25vdXMgYW5k
IGFzeW5jaHJvbm91cyB3YXlzIHRvIHNlbmQKLSAgICBtZXNzYWdlcy4KLQotICAgIE5vdGU6IFRo
aXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSB1c2VkIHdpdGggdGhlIHN0YW5kYWxvbmUgc2VydmVyIGZv
ciB3c3MKLSAgICBiZWNhdXNlIHB5T3BlblNTTCB1c2VkIGJ5IHRoZSBzZXJ2ZXIgcmFpc2VzIGEg
ZmF0YWwgZXJyb3IgaWYgdGhlIHNvY2tldAotICAgIGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUg
dGhyZWFkcy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAg
ICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAg
ICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgICIiIgotICAgICAgICB0
aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSBy
ZXF1ZXN0Ci0gICAgICAgIHNlbGYuX3F1ZXVlID0gUXVldWUuUXVldWUoKQotICAgICAgICBzZWxm
LnNldERhZW1vbihUcnVlKQotICAgICAgICBzZWxmLnN0YXJ0KCkKLQotICAgIGRlZiBydW4oc2Vs
Zik6Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBtZXNzYWdlLCBjb25kaXRpb24g
PSBzZWxmLl9xdWV1ZS5nZXQoKQotICAgICAgICAgICAgY29uZGl0aW9uLmFjcXVpcmUoKQotICAg
ICAgICAgICAgc2VuZF9tZXNzYWdlKHNlbGYuX3JlcXVlc3QsIG1lc3NhZ2UpCi0gICAgICAgICAg
ICBjb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgICAgIGNvbmRpdGlvbi5yZWxlYXNlKCkKLQot
ICAgIGRlZiBzZW5kKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJTZW5kIGEgbWVzc2FnZSwg
YmxvY2tpbmcuIiIiCi0KLSAgICAgICAgY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigp
Ci0gICAgICAgIGNvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fcXVldWUucHV0KCht
ZXNzYWdlLCBjb25kaXRpb24pKQotICAgICAgICBjb25kaXRpb24ud2FpdCgpCi0KLSAgICBkZWYg
c2VuZF9ub3dhaXQoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIlNlbmQgYSBtZXNzYWdlLCBu
b24tYmxvY2tpbmcuIiIiCi0KLSAgICAgICAgc2VsZi5fcXVldWUucHV0KChtZXNzYWdlLCB0aHJl
YWRpbmcuQ29uZGl0aW9uKCkpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L211eC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tl
dC9tdXgucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2MzM0Njg1YjMxMTIyNWUz
ODczYjliODI4ZWQwMzFhN2U5MDc4MDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L211eC5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDE4ODkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxl
IHByb3ZpZGVzIGNsYXNzZXMgYW5kIGhlbHBlciBmdW5jdGlvbnMgZm9yIG11bHRpcGxleGluZyBl
eHRlbnNpb24uCi0KLVNwZWNpZmljYXRpb246Ci1odHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9k
cmFmdC1pZXRmLWh5Ymktd2Vic29ja2V0LW11bHRpcGxleGluZy0wNgotIiIiCi0KLQotaW1wb3J0
IGNvbGxlY3Rpb25zCi1pbXBvcnQgY29weQotaW1wb3J0IGVtYWlsCi1pbXBvcnQgZW1haWwucGFy
c2VyCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG1hdGgKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCB0
aHJlYWRpbmcKLWltcG9ydCB0cmFjZWJhY2sKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFz
ZSBpbXBvcnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBGcmFtZQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0
Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
X3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfYmluYXJ5X2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5Ci1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9oZWFkZXIKLWZy
b20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2xlbmd0aF9oZWFk
ZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgcGFyc2VfZnJhbWUK
LWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZSBpbXBvcnQgaHliaQotCi0KLV9DT05UUk9M
X0NIQU5ORUxfSUQgPSAwCi1fREVGQVVMVF9DSEFOTkVMX0lEID0gMQotCi1fTVVYX09QQ09ERV9B
RERfQ0hBTk5FTF9SRVFVRVNUID0gMAotX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0Ug
PSAxCi1fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wgPSAyCi1fTVVYX09QQ09ERV9EUk9QX0NIQU5O
RUwgPSAzCi1fTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UID0gNAotCi1fTUFYX0NIQU5ORUxf
SUQgPSAyICoqIDI5IC0gMQotCi1fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUyA9IDY0
Ci1fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UID0gOCAqIDEwMjQKLQotX0hBTkRTSEFLRV9FTkNP
RElOR19JREVOVElUWSA9IDAKLV9IQU5EU0hBS0VfRU5DT0RJTkdfREVMVEEgPSAxCi0KLSMgV2Ug
bmVlZCBvbmx5IHRoZXNlIHN0YXR1cyBjb2RlIGZvciBub3cuCi1fSFRUUF9CQURfUkVTUE9OU0Vf
TUVTU0FHRVMgPSB7Ci0gICAgY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUOiAnQmFkIFJl
cXVlc3QnLAotfQotCi0jIERyb3BDaGFubmVsIHJlYXNvbiBjb2RlCi0jIFRPRE8oYmFzaGkpOiBE
ZWZpbmUgYWxsIHJlYXNvbiBjb2RlIGRlZmluZWQgaW4gLTA1IGRyYWZ0LgotX0RST1BfQ09ERV9O
T1JNQUxfQ0xPU1VSRSA9IDEwMDAKLQotX0RST1BfQ09ERV9JTlZBTElEX0VOQ0FQU1VMQVRJTkdf
TUVTU0FHRSA9IDIwMDEKLV9EUk9QX0NPREVfQ0hBTk5FTF9JRF9UUlVOQ0FURUQgPSAyMDAyCi1f
RFJPUF9DT0RFX0VOQ0FQU1VMQVRFRF9GUkFNRV9JU19UUlVOQ0FURUQgPSAyMDAzCi1fRFJPUF9D
T0RFX1VOS05PV05fTVVYX09QQ09ERSA9IDIwMDQKLV9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09O
VFJPTF9CTE9DSyA9IDIwMDUKLV9EUk9QX0NPREVfQ0hBTk5FTF9BTFJFQURZX0VYSVNUUyA9IDIw
MDYKLV9EUk9QX0NPREVfTkVXX0NIQU5ORUxfU0xPVF9WSU9MQVRJT04gPSAyMDA3Ci1fRFJPUF9D
T0RFX1VOS05PV05fUkVRVUVTVF9FTkNPRElORyA9IDIwMTAKLQotX0RST1BfQ09ERV9TRU5EX1FV
T1RBX1ZJT0xBVElPTiA9IDMwMDUKLV9EUk9QX0NPREVfU0VORF9RVU9UQV9PVkVSRkxPVyA9IDMw
MDYKLV9EUk9QX0NPREVfQUNLTk9XTEVER0VEID0gMzAwOAotX0RST1BfQ09ERV9CQURfRlJBR01F
TlRBVElPTiA9IDMwMDkKLQotCi1jbGFzcyBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKEV4Y2VwdGlv
bik6Ci0gICAgIiIiRXhjZXB0aW9uIGluIGhhbmRsaW5nIG11bHRpcGxleGluZyBleHRlbnNpb24u
IiIiCi0gICAgcGFzcwotCi0KLSMgVGVtcG9yYXJ5Ci1jbGFzcyBNdXhOb3RJbXBsZW1lbnRlZEV4
Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIlJhaXNlZCB3aGVuIGEgZmxvdyBlbnRlcnMgdW5p
bXBsZW1lbnRlZCBjb2RlIHBhdGguIiIiCi0gICAgcGFzcwotCi0KLWNsYXNzIExvZ2ljYWxDb25u
ZWN0aW9uQ2xvc2VkRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiUmFpc2VkIHdoZW4gbG9n
aWNhbCBjb25uZWN0aW9uIGlzIGdyYWNlZnVsbHkgY2xvc2VkLiIiIgotICAgIHBhc3MKLQotCi1j
bGFzcyBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihFeGNlcHRpb24pOgotICAgICIiIlJhaXNlZCB3
aGVuIHRoZXJlIGlzIGEgcGh5c2ljYWwgY29ubmVjdGlvbiBlcnJvci4iIiIKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgZHJvcF9jb2RlLCBtZXNzYWdlPScnKToKLSAgICAgICAgc3VwZXIoUGh5c2lj
YWxDb25uZWN0aW9uRXJyb3IsIHNlbGYpLl9faW5pdF9fKAotICAgICAgICAgICAgJ2NvZGU9JWQs
IG1lc3NhZ2U9JXInICUgKGRyb3BfY29kZSwgbWVzc2FnZSkpCi0gICAgICAgIHNlbGYuZHJvcF9j
b2RlID0gZHJvcF9jb2RlCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKLQotCi1jbGFz
cyBMb2dpY2FsQ2hhbm5lbEVycm9yKEV4Y2VwdGlvbik6Ci0gICAgIiIiUmFpc2VkIHdoZW4gdGhl
cmUgaXMgYSBsb2dpY2FsIGNoYW5uZWwgZXJyb3IuIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGNoYW5uZWxfaWQsIGRyb3BfY29kZSwgbWVzc2FnZT0nJyk6Ci0gICAgICAgIHN1cGVyKExvZ2lj
YWxDaGFubmVsRXJyb3IsIHNlbGYpLl9faW5pdF9fKAotICAgICAgICAgICAgJ2NoYW5uZWxfaWQ9
JWQsIGNvZGU9JWQsIG1lc3NhZ2U9JXInICUgKAotICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQs
IGRyb3BfY29kZSwgbWVzc2FnZSkpCi0gICAgICAgIHNlbGYuY2hhbm5lbF9pZCA9IGNoYW5uZWxf
aWQKLSAgICAgICAgc2VsZi5kcm9wX2NvZGUgPSBkcm9wX2NvZGUKLSAgICAgICAgc2VsZi5tZXNz
YWdlID0gbWVzc2FnZQotCi0KLWRlZiBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCk6Ci0g
ICAgaWYgY2hhbm5lbF9pZCA8IDA6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0NoYW5uZWwg
aWQgJWQgbXVzdCBub3QgYmUgbmVnYXRpdmUnICUgY2hhbm5lbF9pZCkKLQotICAgIGlmIGNoYW5u
ZWxfaWQgPCAyICoqIDc6Ci0gICAgICAgIHJldHVybiBjaHIoY2hhbm5lbF9pZCkKLSAgICBpZiBj
aGFubmVsX2lkIDwgMiAqKiAxNDoKLSAgICAgICAgcmV0dXJuIHN0cnVjdC5wYWNrKCchSCcsIDB4
ODAwMCArIGNoYW5uZWxfaWQpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMjE6Ci0gICAgICAg
IGZpcnN0ID0gY2hyKDB4YzAgKyAoY2hhbm5lbF9pZCA+PiAxNikpCi0gICAgICAgIHJldHVybiBm
aXJzdCArIHN0cnVjdC5wYWNrKCchSCcsIGNoYW5uZWxfaWQgJiAweGZmZmYpCi0gICAgaWYgY2hh
bm5lbF9pZCA8IDIgKiogMjk6Ci0gICAgICAgIHJldHVybiBzdHJ1Y3QucGFjaygnIUwnLCAweGUw
MDAwMDAwICsgY2hhbm5lbF9pZCkKLQotICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0NoYW5uZWwgaWQg
JWQgaXMgdG9vIGxhcmdlJyAlIGNoYW5uZWxfaWQpCi0KLQotZGVmIF9lbmNvZGVfbnVtYmVyKG51
bWJlcik6Ci0gICAgcmV0dXJuIGNyZWF0ZV9sZW5ndGhfaGVhZGVyKG51bWJlciwgRmFsc2UpCi0K
LQotZGVmIF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9uc2UoY2hhbm5lbF9pZCwgZW5jb2RlZF9o
YW5kc2hha2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0wLCBy
ZWplY3RlZD1GYWxzZSk6Ci0gICAgaWYgZW5jb2RpbmcgIT0gMCBhbmQgZW5jb2RpbmcgIT0gMToK
LSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBlbmNvZGluZyAlZCcgJSBlbmNvZGlu
ZykKLQotICAgIGZpcnN0X2J5dGUgPSAoKF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNF
IDw8IDUpIHwKLSAgICAgICAgICAgICAgICAgIChyZWplY3RlZCA8PCA0KSB8IGVuY29kaW5nKQot
ICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArCi0gICAgICAgICAgICAgX2VuY29kZV9jaGFu
bmVsX2lkKGNoYW5uZWxfaWQpICsKLSAgICAgICAgICAgICBfZW5jb2RlX251bWJlcihsZW4oZW5j
b2RlZF9oYW5kc2hha2UpKSArCi0gICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UpCi0gICAg
cmV0dXJuIGJsb2NrCi0KLQotZGVmIF9jcmVhdGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNv
ZGU9Tm9uZSwgbWVzc2FnZT0nJyk6Ci0gICAgaWYgbGVuKG1lc3NhZ2UpID4gMCBhbmQgY29kZSBp
cyBOb25lOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdDb2RlIG11c3QgYmUgc3BlY2lmaWVk
IGlmIG1lc3NhZ2UgaXMgc3BlY2lmaWVkJykKLQotICAgIGZpcnN0X2J5dGUgPSBfTVVYX09QQ09E
RV9EUk9QX0NIQU5ORUwgPDwgNQotICAgIGJsb2NrID0gY2hyKGZpcnN0X2J5dGUpICsgX2VuY29k
ZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpCi0gICAgaWYgY29kZSBpcyBOb25lOgotICAgICAgICBi
bG9jayArPSBfZW5jb2RlX251bWJlcigwKSAjIFJlYXNvbiBzaXplCi0gICAgZWxzZToKLSAgICAg
ICAgcmVhc29uID0gc3RydWN0LnBhY2soJyFIJywgY29kZSkgKyBtZXNzYWdlCi0gICAgICAgIHJl
YXNvbl9zaXplID0gX2VuY29kZV9udW1iZXIobGVuKHJlYXNvbikpCi0gICAgICAgIGJsb2NrICs9
IHJlYXNvbl9zaXplICsgcmVhc29uCi0KLSAgICByZXR1cm4gYmxvY2sKLQotCi1kZWYgX2NyZWF0
ZV9mbG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpOgotICAgIGZpcnN0
X2J5dGUgPSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0wgPDwgNQotICAgIGJsb2NrID0gKGNocihm
aXJzdF9ieXRlKSArCi0gICAgICAgICAgICAgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQp
ICsKLSAgICAgICAgICAgICBfZW5jb2RlX251bWJlcihyZXBsZW5pc2hlZF9xdW90YSkpCi0gICAg
cmV0dXJuIGJsb2NrCi0KLQotZGVmIF9jcmVhdGVfbmV3X2NoYW5uZWxfc2xvdChzbG90cywgc2Vu
ZF9xdW90YSk6Ci0gICAgaWYgc2xvdHMgPCAwIG9yIHNlbmRfcXVvdGEgPCAwOgotICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdzbG90cyBhbmQgc2VuZF9xdW90YSBtdXN0IGJlIG5vbi1uZWdhdGl2
ZS4nKQotICAgIGZpcnN0X2J5dGUgPSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UIDw8IDUK
LSAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKwotICAgICAgICAgICAgIF9lbmNvZGVfbnVt
YmVyKHNsb3RzKSArCi0gICAgICAgICAgICAgX2VuY29kZV9udW1iZXIoc2VuZF9xdW90YSkpCi0g
ICAgcmV0dXJuIGJsb2NrCi0KLQotZGVmIF9jcmVhdGVfZmFsbGJhY2tfbmV3X2NoYW5uZWxfc2xv
dCgpOgotICAgIGZpcnN0X2J5dGUgPSAoX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVCA8PCA1
KSB8IDEgIyBTZXQgdGhlIEYgZmxhZwotICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArIF9l
bmNvZGVfbnVtYmVyKDApICsgX2VuY29kZV9udW1iZXIoMCkpCi0gICAgcmV0dXJuIGJsb2NrCi0K
LQotZGVmIF9wYXJzZV9yZXF1ZXN0X3RleHQocmVxdWVzdF90ZXh0KToKLSAgICByZXF1ZXN0X2xp
bmUsIGhlYWRlcl9saW5lcyA9IHJlcXVlc3RfdGV4dC5zcGxpdCgnXHJcbicsIDEpCi0KLSAgICB3
b3JkcyA9IHJlcXVlc3RfbGluZS5zcGxpdCgnICcpCi0gICAgaWYgbGVuKHdvcmRzKSAhPSAzOgot
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgUmVxdWVzdC1MaW5lIHN5bnRheCAlcicgJSBy
ZXF1ZXN0X2xpbmUpCi0gICAgW2NvbW1hbmQsIHBhdGgsIHZlcnNpb25dID0gd29yZHMKLSAgICBp
ZiB2ZXJzaW9uICE9ICdIVFRQLzEuMSc6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCBy
ZXF1ZXN0IHZlcnNpb24gJXInICUgdmVyc2lvbikKLQotICAgICMgZW1haWwucGFyc2VyLlBhcnNl
cigpIHBhcnNlcyBSRkMgMjgyMiAoUkZDIDgyMikgc3R5bGUgaGVhZGVycy4KLSAgICAjIFJGQyA2
NDU1IHJlZmVycyBSRkMgMjYxNiBmb3IgaGFuZHNoYWtlIHBhcnNpbmcsIGFuZCBSRkMgMjYxNiBy
ZWZlcnMKLSAgICAjIFJGQyA4MjIuCi0gICAgaGVhZGVycyA9IGVtYWlsLnBhcnNlci5QYXJzZXIo
KS5wYXJzZXN0cihoZWFkZXJfbGluZXMpCi0gICAgcmV0dXJuIGNvbW1hbmQsIHBhdGgsIHZlcnNp
b24sIGhlYWRlcnMKLQotCi1jbGFzcyBfQ29udHJvbEJsb2NrKG9iamVjdCk6Ci0gICAgIiIiQSBz
dHJ1Y3R1cmUgdGhhdCBob2xkcyBwYXJzaW5nIHJlc3VsdCBvZiBtdWx0aXBsZXhpbmcgY29udHJv
bCBibG9jay4KLSAgICBDb250cm9sIGJsb2NrIHNwZWNpZmljIGF0dHJpYnV0ZXMgd2lsbCBiZSBh
ZGRlZCBieSBfTXV4RnJhbWVQYXlsb2FkUGFyc2VyLgotICAgIChlLmcuIGVuY29kZWRfaGFuZHNo
YWtlIHdpbGwgYmUgYWRkZWQgZm9yIEFkZENoYW5uZWxSZXF1ZXN0IGFuZAotICAgIEFkZENoYW5u
ZWxSZXNwb25zZSkKLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcGNvZGUpOgot
ICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQotCi0KLWNsYXNzIF9NdXhGcmFtZVBheWxvYWRQ
YXJzZXIob2JqZWN0KToKLSAgICAiIiJBIGNsYXNzIHRoYXQgcGFyc2VzIG11bHRpcGxleGVkIGZy
YW1lIHBheWxvYWQuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGF5bG9hZCk6Ci0gICAg
ICAgIHNlbGYuX2RhdGEgPSBwYXlsb2FkCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gPSAw
Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0g
ICAgZGVmIHJlYWRfY2hhbm5lbF9pZChzZWxmKToKLSAgICAgICAgIiIiUmVhZHMgY2hhbm5lbCBp
ZC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBWYWx1ZUVycm9yOiB3aGVuIHRoZSBw
YXlsb2FkIGRvZXNuJ3QgY29udGFpbgotICAgICAgICAgICAgICAgIHZhbGlkIGNoYW5uZWwgaWQu
Ci0gICAgICAgICIiIgotCi0gICAgICAgIHJlbWFpbmluZ19sZW5ndGggPSBsZW4oc2VsZi5fZGF0
YSkgLSBzZWxmLl9yZWFkX3Bvc2l0aW9uCi0gICAgICAgIHBvcyA9IHNlbGYuX3JlYWRfcG9zaXRp
b24KLSAgICAgICAgaWYgcmVtYWluaW5nX2xlbmd0aCA9PSAwOgotICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0KLSAgICAgICAgY2hhbm5l
bF9pZCA9IG9yZChzZWxmLl9kYXRhW3Bvc10pCi0gICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0g
MQotICAgICAgICBpZiBjaGFubmVsX2lkICYgMHhlMCA9PSAweGUwOgotICAgICAgICAgICAgaWYg
cmVtYWluaW5nX2xlbmd0aCA8IDQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcign
SW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAgICAgICBjaGFubmVsX2lkID0gc3Ry
dWN0LnVucGFjaygnIUwnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fZGF0YVtwb3M6cG9zKzRdKVswXSAmIDB4MWZmZmZmZmYKLSAgICAgICAgICAgIGNoYW5u
ZWxfaWRfbGVuZ3RoID0gNAotICAgICAgICBlbGlmIGNoYW5uZWxfaWQgJiAweGMwID09IDB4YzA6
Ci0gICAgICAgICAgICBpZiByZW1haW5pbmdfbGVuZ3RoIDwgMzoKLSAgICAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgICAg
IGNoYW5uZWxfaWQgPSAoKChjaGFubmVsX2lkICYgMHgxZikgPDwgMTYpICsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0LnVucGFjaygnIUgnLCBzZWxmLl9kYXRhW3BvcysxOnBvcysz
XSlbMF0pCi0gICAgICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDMKLSAgICAgICAgZWxpZiBj
aGFubmVsX2lkICYgMHg4MCA9PSAweDgwOgotICAgICAgICAgICAgaWYgcmVtYWluaW5nX2xlbmd0
aCA8IDI6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVs
IGlkIGZvcm1hdCcpCi0gICAgICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVucGFjaygnIUgn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZGF0YVtwb3M6
cG9zKzJdKVswXSAmIDB4M2ZmZgotICAgICAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAyCi0g
ICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gY2hhbm5lbF9pZF9sZW5ndGgKLQotICAgICAg
ICByZXR1cm4gY2hhbm5lbF9pZAotCi0gICAgZGVmIHJlYWRfaW5uZXJfZnJhbWUoc2VsZik6Ci0g
ICAgICAgICIiIlJlYWRzIGFuIGlubmVyIGZyYW1lLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAg
ICAgICAgIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yOiB3aGVuIHRoZSBpbm5lciBmcmFtZSBpcyBp
bnZhbGlkLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBsZW4oc2VsZi5fZGF0YSkgPT0gc2Vs
Zi5fcmVhZF9wb3NpdGlvbjoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVy
cm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfRU5DQVBTVUxBVEVEX0ZSQU1FX0lTX1RS
VU5DQVRFRCkKLQotICAgICAgICBiaXRzID0gb3JkKHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3Np
dGlvbl0pCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gMQotICAgICAgICBmaW4gPSAo
Yml0cyAmIDB4ODApID09IDB4ODAKLSAgICAgICAgcnN2MSA9IChiaXRzICYgMHg0MCkgPT0gMHg0
MAotICAgICAgICByc3YyID0gKGJpdHMgJiAweDIwKSA9PSAweDIwCi0gICAgICAgIHJzdjMgPSAo
Yml0cyAmIDB4MTApID09IDB4MTAKLSAgICAgICAgb3Bjb2RlID0gYml0cyAmIDB4ZgotICAgICAg
ICBwYXlsb2FkID0gc2VsZi5yZW1haW5pbmdfZGF0YSgpCi0gICAgICAgICMgQ29uc3VtZSByZXN0
IG9mIHRoZSBtZXNzYWdlIHdoaWNoIGlzIHBheWxvYWQgZGF0YSBvZiB0aGUgb3JpZ2luYWwKLSAg
ICAgICAgIyBmcmFtZS4KLSAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiA9IGxlbihzZWxmLl9k
YXRhKQotICAgICAgICByZXR1cm4gZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxv
YWQKLQotICAgIGRlZiBfcmVhZF9udW1iZXIoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX3JlYWRf
cG9zaXRpb24gKyAxID4gbGVuKHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigKLSAgICAgICAgICAgICAgICAnQ2Fubm90IHJlYWQgdGhlIGZpcnN0IGJ5dGUgb2YgbnVt
YmVyIGZpZWxkJykKLQotICAgICAgICBudW1iZXIgPSBvcmQoc2VsZi5fZGF0YVtzZWxmLl9yZWFk
X3Bvc2l0aW9uXSkKLSAgICAgICAgaWYgbnVtYmVyICYgMHg4MCA9PSAweDgwOgotICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAnVGhlIG1vc3Qgc2lnbmlmaWNh
bnQgYml0IG9mIHRoZSBmaXJzdCBieXRlIG9mIG51bWJlciBzaG91bGQgJwotICAgICAgICAgICAg
ICAgICdiZSB1bnNldCcpCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gMQotICAgICAg
ICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9uCi0gICAgICAgIGlmIG51bWJlciA9PSAxMjc6Ci0g
ICAgICAgICAgICBpZiBwb3MgKyA4ID4gbGVuKHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgbnVtYmVyIGZpZWxkJykKLSAgICAgICAgICAgIHNl
bGYuX3JlYWRfcG9zaXRpb24gKz0gOAotICAgICAgICAgICAgbnVtYmVyID0gc3RydWN0LnVucGFj
aygnIVEnLCBzZWxmLl9kYXRhW3Bvczpwb3MrOF0pWzBdCi0gICAgICAgICAgICBpZiBudW1iZXIg
PiAweDdGRkZGRkZGRkZGRkZGRkY6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcign
RW5jb2RlZCBudW1iZXIoJWQpID49IDJeNjMnICUgbnVtYmVyKQotICAgICAgICAgICAgaWYgbnVt
YmVyIDw9IDB4RkZGRjoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAg
ICAgICAgICAgICAgICAnJWQgc2hvdWxkIG5vdCBiZSBlbmNvZGVkIGJ5IDkgYnl0ZXMgZW5jb2Rp
bmcnICUgbnVtYmVyKQotICAgICAgICAgICAgcmV0dXJuIG51bWJlcgotICAgICAgICBpZiBudW1i
ZXIgPT0gMTI2OgotICAgICAgICAgICAgaWYgcG9zICsgMiA+IGxlbihzZWxmLl9kYXRhKToKLSAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIG51bWJlciBmaWVsZCcpCi0g
ICAgICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDIKLSAgICAgICAgICAgIG51bWJlciA9
IHN0cnVjdC51bnBhY2soJyFIJywgc2VsZi5fZGF0YVtwb3M6cG9zKzJdKVswXQotICAgICAgICAg
ICAgaWYgbnVtYmVyIDw9IDEyNToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAot
ICAgICAgICAgICAgICAgICAgICAnJWQgc2hvdWxkIG5vdCBiZSBlbmNvZGVkIGJ5IDMgYnl0ZXMg
ZW5jb2RpbmcnICUgbnVtYmVyKQotICAgICAgICByZXR1cm4gbnVtYmVyCi0KLSAgICBkZWYgX3Jl
YWRfc2l6ZV9hbmRfY29udGVudHMoc2VsZik6Ci0gICAgICAgICIiIlJlYWRzIGRhdGEgdGhhdCBj
b25zaXN0cyBvZiBmb2xsb3dpbmdzOgotICAgICAgICAgICAgLSB0aGUgc2l6ZSBvZiB0aGUgY29u
dGVudHMgZW5jb2RlZCB0aGUgc2FtZSB3YXkgYXMgcGF5bG9hZCBsZW5ndGgKLSAgICAgICAgICAg
ICAgb2YgdGhlIFdlYlNvY2tldCBQcm90b2NvbCB3aXRoIDEgYml0IHBhZGRpbmcgYXQgdGhlIGhl
YWQuCi0gICAgICAgICAgICAtIHRoZSBjb250ZW50cy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgc2l6ZSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgZXhj
ZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25F
cnJvcihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZSkpCi0gICAgICAgIHBvcyA9IHNlbGYu
X3JlYWRfcG9zaXRpb24KLSAgICAgICAgaWYgcG9zICsgc2l6ZSA+IGxlbihzZWxmLl9kYXRhKToK
LSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAg
ICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAg
ICAnQ2Fubm90IHJlYWQgJWQgYnl0ZXMgZGF0YScgJSBzaXplKQotCi0gICAgICAgIHNlbGYuX3Jl
YWRfcG9zaXRpb24gKz0gc2l6ZQotICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtwb3M6cG9zK3Np
emVdCi0KLSAgICBkZWYgX3JlYWRfYWRkX2NoYW5uZWxfcmVxdWVzdChzZWxmLCBmaXJzdF9ieXRl
LCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQgPSAoZmlyc3RfYnl0ZSA+PiAyKSAm
IDB4NwotICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5c2lj
YWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01V
WF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3QgYmUg
dW5zZXQnKQotCi0gICAgICAgICMgSW52YWxpZCBlbmNvZGluZyB3aWxsIGJlIGhhbmRsZWQgYnkg
TXV4SGFuZGxlci4KLSAgICAgICAgZW5jb2RpbmcgPSBmaXJzdF9ieXRlICYgMHgzCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9pZCA9IHNlbGYucmVhZF9j
aGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICBy
YWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRS
T0xfQkxPQ0spCi0gICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RpbmcgPSBlbmNvZGluZwotICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IHNlbGYuX3JlYWRfc2l6ZV9hbmRfY29udGVudHMoKQot
ICAgICAgICBjb250cm9sX2Jsb2NrLmVuY29kZWRfaGFuZHNoYWtlID0gZW5jb2RlZF9oYW5kc2hh
a2UKLSAgICAgICAgcmV0dXJuIGNvbnRyb2xfYmxvY2sKLQotICAgIGRlZiBfcmVhZF9hZGRfY2hh
bm5lbF9yZXNwb25zZShzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAg
cmVzZXJ2ZWQgPSAoZmlyc3RfYnl0ZSA+PiAyKSAmIDB4MwotICAgICAgICBpZiByZXNlcnZlZCAh
PSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAg
ICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAg
ICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5zZXQnKQotCi0gICAgICAgIGNvbnRyb2xf
YmxvY2suYWNjZXB0ZWQgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKLSAgICAgICAgY29udHJvbF9i
bG9jay5lbmNvZGluZyA9IGZpcnN0X2J5dGUgJiAweDMKLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lkID0gc2VsZi5yZWFkX2NoYW5uZWxfaWQoKQotICAg
ICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29u
bmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSykKLSAgICAg
ICAgY29udHJvbF9ibG9jay5lbmNvZGVkX2hhbmRzaGFrZSA9IHNlbGYuX3JlYWRfc2l6ZV9hbmRf
Y29udGVudHMoKQotICAgICAgICByZXR1cm4gY29udHJvbF9ibG9jawotCi0gICAgZGVmIF9yZWFk
X2Zsb3dfY29udHJvbChzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAg
cmVzZXJ2ZWQgPSBmaXJzdF9ieXRlICYgMHgxZgotICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgot
ICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAg
ICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAg
ICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5zZXQnKQotCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9pZCA9IHNlbGYucmVhZF9jaGFubmVsX2lkKCkKLSAg
ICAgICAgICAgIGNvbnRyb2xfYmxvY2suc2VuZF9xdW90YSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkK
LSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNh
bENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZSkpCi0KLSAgICAg
ICAgcmV0dXJuIGNvbnRyb2xfYmxvY2sKLQotICAgIGRlZiBfcmVhZF9kcm9wX2NoYW5uZWwoc2Vs
ZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jayk6Ci0gICAgICAgIHJlc2VydmVkID0gZmlyc3Rf
Ynl0ZSAmIDB4MWYKLSAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKLSAgICAgICAgICAgIHJhaXNl
IFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5W
QUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBt
dXN0IGJlIHVuc2V0JykKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2Nr
LmNoYW5uZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIGV4Y2VwdCBWYWx1
ZUVycm9yLCBlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RS
T1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLKQotICAgICAgICByZWFzb24gPSBzZWxm
Ll9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKCkKLSAgICAgICAgaWYgbGVuKHJlYXNvbikgPT0gMDoK
LSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9jb2RlID0gTm9uZQotICAgICAgICAgICAg
Y29udHJvbF9ibG9jay5kcm9wX21lc3NhZ2UgPSAnJwotICAgICAgICBlbGlmIGxlbihyZWFzb24p
ID49IDI6Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLmRyb3BfY29kZSA9IHN0cnVjdC51bnBh
Y2soJyFIJywgcmVhc29uWzoyXSlbMF0KLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9t
ZXNzYWdlID0gcmVhc29uWzI6XQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgUGh5
c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElE
X01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZWNlaXZlZCBEcm9wQ2hhbm5l
bCB0aGF0IGNvbmFpbnMgb25seSAxLWJ5dGUgcmVhc29uJykKLSAgICAgICAgcmV0dXJuIGNvbnRy
b2xfYmxvY2sKLQotICAgIGRlZiBfcmVhZF9uZXdfY2hhbm5lbF9zbG90KHNlbGYsIGZpcnN0X2J5
dGUsIGNvbnRyb2xfYmxvY2spOgotICAgICAgICByZXNlcnZlZCA9IGZpcnN0X2J5dGUgJiAweDFl
Ci0gICAgICAgIGlmIHJlc2VydmVkICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENv
bm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NP
TlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNl
dCcpCi0gICAgICAgIGNvbnRyb2xfYmxvY2suZmFsbGJhY2sgPSBmaXJzdF9ieXRlICYgMQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLnNsb3RzID0gc2VsZi5fcmVhZF9u
dW1iZXIoKQotICAgICAgICAgICAgY29udHJvbF9ibG9jay5zZW5kX3F1b3RhID0gc2VsZi5fcmVh
ZF9udW1iZXIoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHJh
aXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJP
TF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihl
KSkKLSAgICAgICAgcmV0dXJuIGNvbnRyb2xfYmxvY2sKLQotICAgIGRlZiByZWFkX2NvbnRyb2xf
YmxvY2tzKHNlbGYpOgotICAgICAgICAiIiJSZWFkcyBjb250cm9sIGJsb2NrKHMpLgotCi0gICAg
ICAgIFJhaXNlczoKLSAgICAgICAgICAgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3I6IHdoZW4gdGhl
IHBheWxvYWQgY29udGFpbnMgaW52YWxpZCBjb250cm9sCi0gICAgICAgICAgICAgICBibG9jayhz
KS4KLSAgICAgICAgICAgU3RvcEl0ZXJhdGlvbjogd2hlbiBubyBjb250cm9sIGJsb2NrcyBsZWZ0
LgotICAgICAgICAiIiIKLQotICAgICAgICB3aGlsZSBzZWxmLl9yZWFkX3Bvc2l0aW9uIDwgbGVu
KHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IG9yZChzZWxmLl9kYXRhW3Nl
bGYuX3JlYWRfcG9zaXRpb25dKQotICAgICAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiArPSAx
Ci0gICAgICAgICAgICBvcGNvZGUgPSAoZmlyc3RfYnl0ZSA+PiA1KSAmIDB4NwotICAgICAgICAg
ICAgY29udHJvbF9ibG9jayA9IF9Db250cm9sQmxvY2sob3Bjb2RlPW9wY29kZSkKLSAgICAgICAg
ICAgIGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUOgotICAgICAg
ICAgICAgICAgIHlpZWxkIHNlbGYuX3JlYWRfYWRkX2NoYW5uZWxfcmVxdWVzdChmaXJzdF9ieXRl
LCBjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVf
QUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAgICAgICAgICAgICAgeWllbGQgc2VsZi5fcmVhZF9h
ZGRfY2hhbm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAgICAgICAgICAgZmlyc3RfYnl0ZSwgY29u
dHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0ZMT1df
Q09OVFJPTDoKLSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX2Zsb3dfY29udHJvbChm
aXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01V
WF9PUENPREVfRFJPUF9DSEFOTkVMOgotICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuX3JlYWRf
ZHJvcF9jaGFubmVsKGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbGlm
IG9wY29kZSA9PSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UOgotICAgICAgICAgICAgICAg
IHlpZWxkIHNlbGYuX3JlYWRfbmV3X2NoYW5uZWxfc2xvdChmaXJzdF9ieXRlLCBjb250cm9sX2Js
b2NrKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENv
bm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICAgICAgX0RST1BfQ09ERV9VTktOT1dOX01V
WF9PUENPREUsCi0gICAgICAgICAgICAgICAgICAgICdJbnZhbGlkIG9wY29kZSAlZCcgJSBvcGNv
ZGUpCi0KLSAgICAgICAgYXNzZXJ0IHNlbGYuX3JlYWRfcG9zaXRpb24gPT0gbGVuKHNlbGYuX2Rh
dGEpCi0gICAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24KLQotICAgIGRlZiByZW1haW5pbmdfZGF0
YShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJucyByZW1haW5pbmcgZGF0YS4iIiIKLQotICAgICAg
ICByZXR1cm4gc2VsZi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uOl0KLQotCi1jbGFzcyBfTG9n
aWNhbFJlcXVlc3Qob2JqZWN0KToKLSAgICAiIiJNaW1pY3MgbW9kX3B5dGhvbiByZXF1ZXN0LiIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNoYW5uZWxfaWQsIGNvbW1hbmQsIHBhdGgsIHBy
b3RvY29sLCBoZWFkZXJzLAotICAgICAgICAgICAgICAgICBjb25uZWN0aW9uKToKLSAgICAgICAg
IiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
Y2hhbm5lbF9pZDogdGhlIGNoYW5uZWwgaWQgb2YgdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAg
ICAgICAgIGNvbW1hbmQ6IEhUVFAgcmVxdWVzdCBjb21tYW5kLgotICAgICAgICAgICAgcGF0aDog
SFRUUCByZXF1ZXN0IHBhdGguCi0gICAgICAgICAgICBoZWFkZXJzOiBIVFRQIGhlYWRlcnMuCi0g
ICAgICAgICAgICBjb25uZWN0aW9uOiBfTG9naWNhbENvbm5lY3Rpb24gaW5zdGFuY2UuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHNlbGYuY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAg
c2VsZi5tZXRob2QgPSBjb21tYW5kCi0gICAgICAgIHNlbGYudXJpID0gcGF0aAotICAgICAgICBz
ZWxmLnByb3RvY29sID0gcHJvdG9jb2wKLSAgICAgICAgc2VsZi5oZWFkZXJzX2luID0gaGVhZGVy
cwotICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uCi0gICAgICAgIHNlbGYuc2Vy
dmVyX3Rlcm1pbmF0ZWQgPSBGYWxzZQotICAgICAgICBzZWxmLmNsaWVudF90ZXJtaW5hdGVkID0g
RmFsc2UKLQotICAgIGRlZiBpc19odHRwcyhzZWxmKToKLSAgICAgICAgIiIiTWltaWNzIHJlcXVl
c3QuaXNfaHR0cHMoKS4gUmV0dXJucyBGYWxzZSBiZWNhdXNlIHRoaXMgbWV0aG9kIGlzCi0gICAg
ICAgIHVzZWQgb25seSBieSBvbGQgcHJvdG9jb2xzIChoaXhpZSBhbmQgaHliaTAwKS4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLQotY2xhc3MgX0xvZ2ljYWxDb25uZWN0
aW9uKG9iamVjdCk6Ci0gICAgIiIiTWltaWNzIG1vZF9weXRob24gbXBfY29ubi4iIiIKLQotICAg
ICMgRm9yIGRldGFpbHMsIHNlZSB0aGUgY29tbWVudCBvZiBzZXRfcmVhZF9zdGF0ZSgpLgotICAg
IFNUQVRFX0FDVElWRSA9IDEKLSAgICBTVEFURV9HUkFDRUZVTExZX0NMT1NFRCA9IDIKLSAgICBT
VEFURV9URVJNSU5BVEVEID0gMwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG11eF9oYW5kbGVy
LCBjaGFubmVsX2lkKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAg
ICAgICBBcmdzOgotICAgICAgICAgICAgbXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNl
LgotICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hhbm5lbCBpZCBvZiB0aGlzIGNvbm5lY3Rpb24u
Ci0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIK
LSAgICAgICAgc2VsZi5fY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgc2VsZi5faW5j
b21pbmdfZGF0YSA9ICcnCi0KLSAgICAgICAgIyAtIFByb3RlY3RzIF93YWl0aW5nX3dyaXRlX2Nv
bXBsZXRpb24KLSAgICAgICAgIyAtIFNpZ25hbHMgdGhlIHRocmVhZCB3YWl0aW5nIGZvciBjb21w
bGV0aW9uIG9mIHdyaXRlIGJ5IG11eCBoYW5kbGVyCi0gICAgICAgIHNlbGYuX3dyaXRlX2NvbmRp
dGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotICAgICAgICBzZWxmLl93YWl0aW5nX3dyaXRl
X2NvbXBsZXRpb24gPSBGYWxzZQotCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uID0gdGhy
ZWFkaW5nLkNvbmRpdGlvbigpCi0gICAgICAgIHNlbGYuX3JlYWRfc3RhdGUgPSBzZWxmLlNUQVRF
X0FDVElWRQotCi0gICAgZGVmIGdldF9sb2NhbF9hZGRyKHNlbGYpOgotICAgICAgICAiIiJHZXR0
ZXIgdG8gbWltaWMgbXBfY29ubi5sb2NhbF9hZGRyLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxm
Ll9tdXhfaGFuZGxlci5waHlzaWNhbF9jb25uZWN0aW9uLmdldF9sb2NhbF9hZGRyKCkKLSAgICBs
b2NhbF9hZGRyID0gcHJvcGVydHkoZ2V0X2xvY2FsX2FkZHIpCi0KLSAgICBkZWYgZ2V0X3JlbW90
ZV9hZGRyKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgbXBfY29ubi5yZW1vdGVf
YWRkci4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfY29u
bmVjdGlvbi5nZXRfcmVtb3RlX2FkZHIoKQotICAgIHJlbW90ZV9hZGRyID0gcHJvcGVydHkoZ2V0
X3JlbW90ZV9hZGRyKQotCi0gICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAg
ICAgICIiIkdldHMgbWVtb3JpemVkIGxpbmVzLiBOb3Qgc3VwcG9ydGVkLiIiIgotCi0gICAgICAg
IHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oJ19Mb2dpY2FsQ29ubmVjdGlvbiBkb2VzIG5v
dCBzdXBwb3J0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X21l
bW9yaXplZF9saW5lcycpCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIi
IldyaXRlcyBkYXRhLiBtdXhfaGFuZGxlciBzZW5kcyBkYXRhIGFzeW5jaHJvbm91c2x5LiBUaGUg
Y2FsbGVyIHdpbGwKLSAgICAgICAgYmUgc3VzcGVuZGVkIHVudGlsIHdyaXRlIGRvbmUuCi0KLSAg
ICAgICAgQXJnczoKLSAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgd3JpdHRlbi4KLQotICAg
ICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uOiB3aGVuIGNh
bGxlZCBiZWZvcmUgZmluaXNoaW5nIHRoZSBwcmV2aW91cwotICAgICAgICAgICAgICAgIHdyaXRl
LgotICAgICAgICAiIiIKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9j
b25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBzZWxmLl93YWl0aW5nX3dyaXRlX2Nv
bXBsZXRpb246Ci0gICAgICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAgICAgJ0xvZ2ljYWwgY29ubmVjdGlvbiAlZCBpcyBhbHJlYWR5IHdh
aXRpbmcgdGhlIGNvbXBsZXRpb24gJwotICAgICAgICAgICAgICAgICAgICAnb2Ygd3JpdGUnICUg
c2VsZi5fY2hhbm5lbF9pZCkKLQotICAgICAgICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21w
bGV0aW9uID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuc2VuZF9kYXRhKHNl
bGYuX2NoYW5uZWxfaWQsIGRhdGEpCi0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24u
d2FpdCgpCi0gICAgICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBSYWlzZSBhbiBleGNlcHRpb24g
aWYgd29rZSB1cCBieSBvbl93cml0ZXJfZG9uZS4KLSAgICAgICAgZmluYWxseToKLSAgICAgICAg
ICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiB3cml0ZV9jb250
cm9sX2RhdGEoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIldyaXRlcyBkYXRhIHZpYSB0aGUgY29u
dHJvbCBjaGFubmVsLiBEb24ndCB3YWl0IGZpbmlzaGluZyB3cml0ZQotICAgICAgICBiZWNhdXNl
IHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgYnkgbXV4IGRpc3BhdGNoZXIuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgd3JpdHRlbi4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuc2VuZF9jb250cm9sX2RhdGEoZGF0YSkKLQot
ICAgIGRlZiBvbl93cml0ZV9kYXRhX2RvbmUoc2VsZik6Ci0gICAgICAgICIiIkNhbGxlZCB3aGVu
IHNlbmRpbmcgZGF0YSBpcyBjb21wbGV0ZWQuIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IHNl
bGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbjoKLSAgICAgICAgICAgICAgICByYWlzZSBNdXhV
bmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCBjYWxsIG9m
IG9uX3dyaXRlX2RhdGFfZG9uZSBmb3IgbG9naWNhbCAnCi0gICAgICAgICAgICAgICAgICAgICdj
b25uZWN0aW9uICVkJyAlIHNlbGYuX2NoYW5uZWxfaWQpCi0gICAgICAgICAgICBzZWxmLl93YWl0
aW5nX3dyaXRlX2NvbXBsZXRpb24gPSBGYWxzZQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29u
ZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93cml0
ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgb25fd3JpdGVyX2RvbmUoc2VsZik6Ci0g
ICAgICAgICIiIkNhbGxlZCBieSB0aGUgbXV4IGhhbmRsZXIgd2hlbiB0aGUgd3JpdGVyIHRocmVh
ZCBoYXMgZmluaXNoZWQuIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fd3Jp
dGVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9j
b21wbGV0aW9uID0gRmFsc2UKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5ub3Rp
ZnkoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9u
LnJlbGVhc2UoKQotCi0KLSAgICBkZWYgYXBwZW5kX2ZyYW1lX2RhdGEoc2VsZiwgZnJhbWVfZGF0
YSk6Ci0gICAgICAgICIiIkFwcGVuZHMgaW5jb21pbmcgZnJhbWUgZGF0YS4gQ2FsbGVkIHdoZW4g
bXV4X2hhbmRsZXIgZGlzcGF0Y2hlcwotICAgICAgICBmcmFtZSBkYXRhIHRvIHRoZSBjb3JyZXNw
b25kaW5nIGFwcGxpY2F0aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBmcmFtZV9k
YXRhOiBpbmNvbWluZyBmcmFtZSBkYXRhLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9y
ZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5faW5jb21pbmdfZGF0YSArPSBm
cmFtZV9kYXRhCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAg
IHNlbGYuX3JlYWRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIHJlYWQoc2VsZiwgbGVu
Z3RoKToKLSAgICAgICAgIiIiUmVhZHMgZGF0YS4gQmxvY2tzIHVudGlsIGVub3VnaCBkYXRhIGhh
cyBhcnJpdmVkIHZpYSBwaHlzaWNhbAotICAgICAgICBjb25uZWN0aW9uLgotCi0gICAgICAgIEFy
Z3M6Ci0gICAgICAgICAgICBsZW5ndGg6IGxlbmd0aCBvZiBkYXRhIHRvIGJlIHJlYWQuCi0gICAg
ICAgIFJhaXNlczoKLSAgICAgICAgICAgIExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9u
OiB3aGVuIGNsb3NpbmcgaGFuZHNoYWtlIGZvciB0aGlzCi0gICAgICAgICAgICAgICAgbG9naWNh
bCBjaGFubmVsIGhhcyBiZWVuIHJlY2VpdmVkLgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1p
bmF0ZWRFeGNlcHRpb246IHdoZW4gdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24gaGFzCi0gICAgICAg
ICAgICAgICAgY2xvc2VkLCBvciBhbiBlcnJvciBpcyBjYXVzZWQgb24gdGhlIHJlYWRlciB0aHJl
YWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLmFjcXVpcmUo
KQotICAgICAgICB3aGlsZSAoc2VsZi5fcmVhZF9zdGF0ZSA9PSBzZWxmLlNUQVRFX0FDVElWRSBh
bmQKLSAgICAgICAgICAgICAgIGxlbihzZWxmLl9pbmNvbWluZ19kYXRhKSA8IGxlbmd0aCk6Ci0g
ICAgICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi53YWl0KCkKLQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBpZiBzZWxmLl9yZWFkX3N0YXRlID09IHNlbGYuU1RBVEVfR1JBQ0VGVUxMWV9D
TE9TRUQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdMb2dpY2FsIGNoYW5uZWwgJWQgaGFzIGNsb3Nl
ZC4nICUgc2VsZi5fY2hhbm5lbF9pZCkKLSAgICAgICAgICAgIGVsaWYgc2VsZi5fcmVhZF9zdGF0
ZSA9PSBzZWxmLlNUQVRFX1RFUk1JTkFURUQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ29ubmVj
dGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdSZWNlaXZpbmcg
JWQgYnl0ZSBmYWlsZWQuIExvZ2ljYWwgY2hhbm5lbCAoJWQpIGNsb3NlZCcgJQotICAgICAgICAg
ICAgICAgICAgICAobGVuZ3RoLCBzZWxmLl9jaGFubmVsX2lkKSkKLQotICAgICAgICAgICAgdmFs
dWUgPSBzZWxmLl9pbmNvbWluZ19kYXRhWzpsZW5ndGhdCi0gICAgICAgICAgICBzZWxmLl9pbmNv
bWluZ19kYXRhID0gc2VsZi5faW5jb21pbmdfZGF0YVtsZW5ndGg6XQotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAg
cmV0dXJuIHZhbHVlCi0KLSAgICBkZWYgc2V0X3JlYWRfc3RhdGUoc2VsZiwgbmV3X3N0YXRlKToK
LSAgICAgICAgIiIiU2V0cyB0aGUgc3RhdGUgb2YgdGhpcyBjb25uZWN0aW9uLiBDYWxsZWQgd2hl
biBhbiBldmVudCBmb3IgdGhpcwotICAgICAgICBjb25uZWN0aW9uIGhhcyBvY2N1cnJlZC4KLQot
ICAgICAgICBBcmdzOgotICAgICAgICAgICAgbmV3X3N0YXRlOiBzdGF0ZSB0byBiZSBzZXQuIG5l
d19zdGF0ZSBtdXN0IGJlIG9uZSBvZiBmb2xsb3dpbmdzOgotICAgICAgICAgICAgLSBTVEFURV9H
UkFDRUZVTExZX0NMT1NFRDogd2hlbiBjbG9zaW5nIGhhbmRzaGFrZSBmb3IgdGhpcwotICAgICAg
ICAgICAgICAgIGNvbm5lY3Rpb24gaGFzIGJlZW4gcmVjZWl2ZWQuCi0gICAgICAgICAgICAtIFNU
QVRFX1RFUk1JTkFURUQ6IHdoZW4gdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24gaGFzIGNsb3NlZCBv
cgotICAgICAgICAgICAgICAgIERyb3BDaGFubmVsIG9mIHRoaXMgY29ubmVjdGlvbiBoYXMgcmVj
ZWl2ZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLmFjcXVp
cmUoKQotICAgICAgICBzZWxmLl9yZWFkX3N0YXRlID0gbmV3X3N0YXRlCi0gICAgICAgIHNlbGYu
X3JlYWRfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLnJl
bGVhc2UoKQotCi0KLWNsYXNzIF9Jbm5lck1lc3NhZ2Uob2JqZWN0KToKLSAgICAiIiJIb2xkcyB0
aGUgcmVzdWx0IG9mIF9Jbm5lck1lc3NhZ2VCdWlsZGVyLmJ1aWxkKCkuCi0gICAgIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgb3Bjb2RlLCBwYXlsb2FkKToKLSAgICAgICAgc2VsZi5vcGNv
ZGUgPSBvcGNvZGUKLSAgICAgICAgc2VsZi5wYXlsb2FkID0gcGF5bG9hZAotCi0KLWNsYXNzIF9J
bm5lck1lc3NhZ2VCdWlsZGVyKG9iamVjdCk6Ci0gICAgIiIiQSBjbGFzcyB0aGF0IGhvbGRzIHRo
ZSBjb250ZXh0IG9mIGlubmVyIG1lc3NhZ2UgZnJhZ21lbnRhdGlvbiBhbmQKLSAgICBidWlsZHMg
YSBtZXNzYWdlIGZyb20gZnJhZ21lbnRlZCBpbm5lciBmcmFtZShzKS4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fY29udHJvbF9vcGNvZGUgPSBOb25l
Ci0gICAgICAgIHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMgPSBbXQotICAgICAgICBz
ZWxmLl9tZXNzYWdlX29wY29kZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdl
X2ZyYWdtZW50cyA9IFtdCi0gICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5k
bGVfZmlyc3QKLQotICAgIGRlZiBfaGFuZGxlX2ZpcnN0KHNlbGYsIGZyYW1lKToKLSAgICAgICAg
aWYgZnJhbWUub3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAg
ICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKCdTZW5kaW5nIGludmFsaWQgY29udGludWF0
aW9uIG9wY29kZScpCi0KLSAgICAgICAgaWYgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1l
Lm9wY29kZSk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvY2Vzc19maXJzdF9mcmFnbWVu
dGVkX2NvbnRyb2woZnJhbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gc2Vs
Zi5fcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX21lc3NhZ2UoZnJhbWUpCi0KLSAgICBkZWYgX3By
b2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9jb250cm9sKHNlbGYsIGZyYW1lKToKLSAgICAgICAgc2Vs
Zi5fY29udHJvbF9vcGNvZGUgPSBmcmFtZS5vcGNvZGUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19j
b250cm9sX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgaWYgbm90IGZy
YW1lLmZpbjoKLSAgICAgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVf
ZnJhZ21lbnRlZF9jb250cm9sCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1
cm4gc2VsZi5fcmVhc3NlbWJsZV9mcmFnbWVudGVkX2NvbnRyb2woKQotCi0gICAgZGVmIF9wcm9j
ZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmLCBmcmFtZSk6Ci0gICAgICAgIHNlbGYu
X21lc3NhZ2Vfb3Bjb2RlID0gZnJhbWUub3Bjb2RlCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfbWVz
c2FnZV9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIGlmIG5vdCBmcmFt
ZS5maW46Ci0gICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxlX2Zy
YWdtZW50ZWRfbWVzc2FnZQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJu
IHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKCkKLQotICAgIGRlZiBfaGFuZGxl
X2ZyYWdtZW50ZWRfY29udHJvbChzZWxmLCBmcmFtZSk6Ci0gICAgICAgIGlmIGZyYW1lLm9wY29k
ZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgIHJhaXNlIEludmFs
aWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnU2VuZGluZyBpbnZhbGlkIG9wY29k
ZSAlZCB3aGlsZSBzZW5kaW5nIGZyYWdtZW50ZWQgY29udHJvbCAnCi0gICAgICAgICAgICAgICAg
J21lc3NhZ2UnICUgZnJhbWUub3Bjb2RlKQotICAgICAgICBzZWxmLl9wZW5kaW5nX2NvbnRyb2xf
ZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAgICAgICBpZiBub3QgZnJhbWUuZmlu
OgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYXNzZW1i
bGVfZnJhZ21lbnRlZF9jb250cm9sKCkKLQotICAgIGRlZiBfcmVhc3NlbWJsZV9mcmFnbWVudGVk
X2NvbnRyb2woc2VsZik6Ci0gICAgICAgIG9wY29kZSA9IHNlbGYuX2NvbnRyb2xfb3Bjb2RlCi0g
ICAgICAgIHBheWxvYWQgPSAnJy5qb2luKHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMp
Ci0gICAgICAgIHNlbGYuX2NvbnRyb2xfb3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5k
aW5nX2NvbnRyb2xfZnJhZ21lbnRzID0gW10KLSAgICAgICAgaWYgc2VsZi5fbWVzc2FnZV9vcGNv
ZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5f
aGFuZGxlX2ZyYWdtZW50ZWRfbWVzc2FnZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2Vs
Zi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9maXJzdAotICAgICAgICByZXR1cm4gX0lu
bmVyTWVzc2FnZShvcGNvZGUsIHBheWxvYWQpCi0KLSAgICBkZWYgX2hhbmRsZV9mcmFnbWVudGVk
X21lc3NhZ2Uoc2VsZiwgZnJhbWUpOgotICAgICAgICAjIFNlbmRlciBjYW4gaW50ZXJsZWF2ZSBh
IGNvbnRyb2wgbWVzc2FnZSB3aGlsZSBzZW5kaW5nIGZyYWdtZW50ZWQKLSAgICAgICAgIyBtZXNz
YWdlcy4KLSAgICAgICAgaWYgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6
Ci0gICAgICAgICAgICBpZiBzZWxmLl9jb250cm9sX29wY29kZSBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICAgICAnU2hvdWxkIG5vdCByZWFjaCBoZXJlKEJ1ZyBpbiBidWlsZGVyKScpCi0gICAgICAgICAg
ICByZXR1cm4gc2VsZi5fcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX2NvbnRyb2woZnJhbWUpCi0K
LSAgICAgICAgaWYgZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgot
ICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICdTZW5kaW5nIGludmFsaWQgb3Bjb2RlICVkIHdoaWxlIHNlbmRpbmcgZnJhZ21lbnRlZCBtZXNz
YWdlJyAlCi0gICAgICAgICAgICAgICAgZnJhbWUub3Bjb2RlKQotICAgICAgICBzZWxmLl9wZW5k
aW5nX21lc3NhZ2VfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAgICAgICBpZiBu
b3QgZnJhbWUuZmluOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKCkKLQotICAgIGRlZiBfcmVhc3NlbWJs
ZV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIG9wY29kZSA9IHNlbGYuX21lc3Nh
Z2Vfb3Bjb2RlCi0gICAgICAgIHBheWxvYWQgPSAnJy5qb2luKHNlbGYuX3BlbmRpbmdfbWVzc2Fn
ZV9mcmFnbWVudHMpCi0gICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gTm9uZQotICAgICAg
ICBzZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzID0gW10KLSAgICAgICAgc2VsZi5fZnJh
bWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9maXJzdAotICAgICAgICByZXR1cm4gX0lubmVyTWVz
c2FnZShvcGNvZGUsIHBheWxvYWQpCi0KLSAgICBkZWYgYnVpbGQoc2VsZiwgZnJhbWUpOgotICAg
ICAgICAiIiJCdWlsZCBhbiBpbm5lciBtZXNzYWdlLiBSZXR1cm5zIGFuIF9Jbm5lck1lc3NhZ2Ug
aW5zdGFuY2Ugd2hlbgotICAgICAgICB0aGUgZ2l2ZW4gZnJhbWUgaXMgdGhlIGxhc3QgZnJhZ21l
bnRlZCBmcmFtZS4gUmV0dXJucyBOb25lIG90aGVyd2lzZS4KLQotICAgICAgICBBcmdzOgotICAg
ICAgICAgICAgZnJhbWU6IGFuIGlubmVyIGZyYW1lLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAg
ICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4gcmVjZWl2ZWQgaW52YWxpZCBvcGNvZGUu
IChlLmcuCi0gICAgICAgICAgICAgICAgcmVjZWl2aW5nIG5vbiBjb250aW51YXRpb24gZGF0YSBv
cGNvZGUgYnV0IHRoZSBmaW4gZmxhZyBvZgotICAgICAgICAgICAgICAgIHRoZSBwcmV2aW91cyBp
bm5lciBmcmFtZSB3YXMgbm90IHNldC4pCi0gICAgICAgICIiIgotCi0gICAgICAgIHJldHVybiBz
ZWxmLl9mcmFtZV9oYW5kbGVyKGZyYW1lKQotCi0KLWNsYXNzIF9Mb2dpY2FsU3RyZWFtKFN0cmVh
bSk6Ci0gICAgIiIiTWltaWNzIHRoZSBTdHJlYW0gY2xhc3MuIFRoaXMgY2xhc3MgaW50ZXJwcmV0
cyBtdWx0aXBsZXhlZCBXZWJTb2NrZXQKLSAgICBmcmFtZXMuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcmVxdWVzdCwgc3RyZWFtX29wdGlvbnMsIHNlbmRfcXVvdGEsIHJlY2Vp
dmVfcXVvdGEpOgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAg
IEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBfTG9naWNhbFJlcXVlc3QgaW5zdGFuY2UuCi0g
ICAgICAgICAgICBzdHJlYW1fb3B0aW9uczogU3RyZWFtT3B0aW9ucyBpbnN0YW5jZS4KLSAgICAg
ICAgICAgIHNlbmRfcXVvdGE6IEluaXRpYWwgc2VuZCBxdW90YS4KLSAgICAgICAgICAgIHJlY2Vp
dmVfcXVvdGE6IEluaXRpYWwgcmVjZWl2ZSBxdW90YS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
IyBQaHlzaWNhbCBzdHJlYW0gaXMgcmVzcG9uc2libGUgZm9yIG1hc2tpbmcuCi0gICAgICAgIHN0
cmVhbV9vcHRpb25zLnVubWFza19yZWNlaXZlID0gRmFsc2UKLSAgICAgICAgU3RyZWFtLl9faW5p
dF9fKHNlbGYsIHJlcXVlc3QsIHN0cmVhbV9vcHRpb25zKQotCi0gICAgICAgIHNlbGYuX3NlbmRf
Y2xvc2VkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fc2VuZF9xdW90YSA9IHNlbmRfcXVvdGEKLSAg
ICAgICAgIyAtIFByb3RlY3RzIF9zZW5kX2Nsb3NlZCBhbmQgX3NlbmRfcXVvdGEKLSAgICAgICAg
IyAtIFNpZ25hbHMgdGhlIHRocmVhZCB3YWl0aW5nIGZvciBzZW5kIHF1b3RhIHJlcGxlbmlzaGVk
Ci0gICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0K
LSAgICAgICAgIyBUaGUgb3Bjb2RlIG9mIHRoZSBmaXJzdCBmcmFtZSBpbiBtZXNzYWdlcy4KLSAg
ICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBjb21tb24uT1BDT0RFX1RFWFQKLSAgICAgICAg
IyBUcnVlIHdoZW4gdGhlIGxhc3QgbWVzc2FnZSB3YXMgZnJhZ21lbnRlZC4KLSAgICAgICAgc2Vs
Zi5fbGFzdF9tZXNzYWdlX3dhc19mcmFnbWVudGVkID0gRmFsc2UKLQotICAgICAgICBzZWxmLl9y
ZWNlaXZlX3F1b3RhID0gcmVjZWl2ZV9xdW90YQotICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9m
cmFtZV9zZW1hcGhvcmUgPSB0aHJlYWRpbmcuU2VtYXBob3JlKCkKLQotICAgICAgICBzZWxmLl9p
bm5lcl9tZXNzYWdlX2J1aWxkZXIgPSBfSW5uZXJNZXNzYWdlQnVpbGRlcigpCi0KLSAgICBkZWYg
X2NyZWF0ZV9pbm5lcl9mcmFtZShzZWxmLCBvcGNvZGUsIHBheWxvYWQsIGVuZD1UcnVlKToKLSAg
ICAgICAgZnJhbWUgPSBGcmFtZShmaW49ZW5kLCBvcGNvZGU9b3Bjb2RlLCBwYXlsb2FkPXBheWxv
YWQpCi0gICAgICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5vdXRnb2luZ19m
cmFtZV9maWx0ZXJzOgotICAgICAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFtZSkKLQot
ICAgICAgICBpZiBsZW4ocGF5bG9hZCkgIT0gbGVuKGZyYW1lLnBheWxvYWQpOgotICAgICAgICAg
ICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTXV4IGV4
dGVuc2lvbiBtdXN0IG5vdCBiZSB1c2VkIGFmdGVyIGV4dGVuc2lvbnMgd2hpY2ggY2hhbmdlICcK
LSAgICAgICAgICAgICAgICAnIGZyYW1lIGJvdW5kYXJ5JykKLQotICAgICAgICBmaXJzdF9ieXRl
ID0gKChmcmFtZS5maW4gPDwgNykgfCAoZnJhbWUucnN2MSA8PCA2KSB8Ci0gICAgICAgICAgICAg
ICAgICAgICAgKGZyYW1lLnJzdjIgPDwgNSkgfCAoZnJhbWUucnN2MyA8PCA0KSB8IGZyYW1lLm9w
Y29kZSkKLSAgICAgICAgcmV0dXJuIGNocihmaXJzdF9ieXRlKSArIGZyYW1lLnBheWxvYWQKLQot
ICAgIGRlZiBfd3JpdGVfaW5uZXJfZnJhbWUoc2VsZiwgb3Bjb2RlLCBwYXlsb2FkLCBlbmQ9VHJ1
ZSk6Ci0gICAgICAgIHBheWxvYWRfbGVuZ3RoID0gbGVuKHBheWxvYWQpCi0gICAgICAgIHdyaXRl
X3Bvc2l0aW9uID0gMAotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgQW4gaW5uZXIgZnJh
bWUgd2lsbCBiZSBmcmFnbWVudGVkIGlmIHRoZXJlIGlzIG5vIGVub3VnaCBzZW5kCi0gICAgICAg
ICAgICAjIHF1b3RhLiBUaGlzIHNlbWFwaG9yZSBlbnN1cmVzIHRoYXQgZnJhZ21lbnRlZCBpbm5l
ciBmcmFtZXMgYXJlCi0gICAgICAgICAgICAjIHNlbnQgaW4gb3JkZXIgb24gdGhlIGxvZ2ljYWwg
Y2hhbm5lbC4KLSAgICAgICAgICAgICMgTm90ZSB0aGF0IGZyYW1lcyB0aGF0IGNvbWUgZnJvbSBv
dGhlciBsb2dpY2FsIGNoYW5uZWxzIG9yCi0gICAgICAgICAgICAjIG11bHRpcGxleGluZyBjb250
cm9sIGJsb2NrcyBjYW4gYmUgaW5zZXJ0ZWQgYmV0d2VlbiBmcmFnbWVudGVkCi0gICAgICAgICAg
ICAjIGlubmVyIGZyYW1lcyBvbiB0aGUgcGh5c2ljYWwgY2hhbm5lbC4KLSAgICAgICAgICAgIHNl
bGYuX3dyaXRlX2lubmVyX2ZyYW1lX3NlbWFwaG9yZS5hY3F1aXJlKCkKLQotICAgICAgICAgICAg
IyBDb25zdW1lIGFuIG9jdGV0IHF1b3RhIHdoZW4gdGhpcyBpcyB0aGUgZmlyc3QgZnJhZ21lbnRl
ZCBmcmFtZS4KLSAgICAgICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVB
VElPTjoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3Nl
bmRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgICAgICAgICB3aGlsZSAobm90IHNl
bGYuX3NlbmRfY2xvc2VkKSBhbmQgc2VsZi5fc2VuZF9xdW90YSA9PSAwOgotICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ud2FpdCgpCi0KLSAgICAgICAgICAgICAg
ICAgICAgaWYgc2VsZi5fc2VuZF9jbG9zZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlz
ZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xv
Z2ljYWwgY29ubmVjdGlvbiAlZCBpcyBjbG9zZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0KLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fc2VuZF9xdW90YSAtPSAxCi0gICAgICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgICAgIHdo
aWxlIHdyaXRlX3Bvc2l0aW9uIDwgcGF5bG9hZF9sZW5ndGg6Ci0gICAgICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgICAgICAgICAgICAgd2hpbGUgKG5vdCBzZWxmLl9zZW5kX2Nsb3NlZCkgYW5kIHNlbGYu
X3NlbmRfcXVvdGEgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTm8gcXVvdGEuIFdhaXRpbmcgRmxv
d0NvbnRyb2wgbWVzc2FnZSBmb3IgJWQuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
c2VuZF9jb25kaXRpb24ud2FpdCgpCi0KLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2Vu
ZF9jbG9zZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xvZ2ljYWwgY29ubmVjdGlvbiAl
ZCBpcyBjbG9zZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3Qu
X2NoYW5uZWxfaWQpCi0KLSAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nID0gcGF5bG9hZF9s
ZW5ndGggLSB3cml0ZV9wb3NpdGlvbgotICAgICAgICAgICAgICAgICAgICB3cml0ZV9sZW5ndGgg
PSBtaW4oc2VsZi5fc2VuZF9xdW90YSwgcmVtYWluaW5nKQotICAgICAgICAgICAgICAgICAgICBp
bm5lcl9mcmFtZV9lbmQgPSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBlbmQgYW5kCi0gICAg
ICAgICAgICAgICAgICAgICAgICAod3JpdGVfcG9zaXRpb24gKyB3cml0ZV9sZW5ndGggPT0gcGF5
bG9hZF9sZW5ndGgpKQotCi0gICAgICAgICAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5f
Y3JlYXRlX2lubmVyX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZFt3cml0ZV9wb3NpdGlvbjp3cml0ZV9wb3NpdGlv
bit3cml0ZV9sZW5ndGhdLAotICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJfZnJhbWVfZW5k
KQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX3F1b3RhIC09IHdyaXRlX2xlbmd0aAot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbnN1bWVkIHF1b3RhPSVk
LCByZW1haW5pbmc9JWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh3cml0ZV9sZW5ndGgsIHNlbGYuX3NlbmRfcXVvdGEpKQotICAgICAgICAgICAgICAgIGZpbmFs
bHk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLnJlbGVhc2UoKQot
Ci0gICAgICAgICAgICAgICAgIyBXcml0aW5nIGRhdGEgd2lsbCBibG9jayB0aGUgd29ya2VyIHNv
IHdlIG5lZWQgdG8gcmVsZWFzZQotICAgICAgICAgICAgICAgICMgX3NlbmRfY29uZGl0aW9uIGJl
Zm9yZSB3cml0aW5nLgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGlu
ZyBpbm5lciBmcmFtZTogJXInICUgaW5uZXJfZnJhbWUpCi0gICAgICAgICAgICAgICAgc2VsZi5f
cmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKGlubmVyX2ZyYW1lKQotICAgICAgICAgICAgICAgIHdy
aXRlX3Bvc2l0aW9uICs9IHdyaXRlX2xlbmd0aAotCi0gICAgICAgICAgICAgICAgb3Bjb2RlID0g
Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04KLQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwg
ZToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbihlKQotICAgICAgICBm
aW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWVfc2VtYXBob3JlLnJl
bGVhc2UoKQotCi0gICAgZGVmIHJlcGxlbmlzaF9zZW5kX3F1b3RhKHNlbGYsIHNlbmRfcXVvdGEp
OgotICAgICAgICAiIiJSZXBsZW5pc2ggc2VuZCBxdW90YS4iIiIKLQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlm
IHNlbGYuX3NlbmRfcXVvdGEgKyBzZW5kX3F1b3RhID4gMHg3RkZGRkZGRkZGRkZGRkZGOgotICAg
ICAgICAgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgPSAwCi0gICAgICAgICAgICAgICAgcmFpc2Ug
TG9naWNhbENoYW5uZWxFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5j
aGFubmVsX2lkLCBfRFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1cpCi0gICAgICAgICAgICBz
ZWxmLl9zZW5kX3F1b3RhICs9IHNlbmRfcXVvdGEKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnUmVwbGVuaXNoZWQgc2VuZCBxdW90YSBmb3IgY2hhbm5lbCBpZCAlZDogJWQnICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBz
ZWxmLl9zZW5kX3F1b3RhKSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3Nl
bmRfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgIGRlZiBjb25zdW1lX3JlY2VpdmVfcXVvdGEoc2VsZiwgYW1vdW50KToK
LSAgICAgICAgIiIiQ29uc3VtZXMgcmVjZWl2ZSBxdW90YS4gUmV0dXJucyBGYWxzZSBvbiBmYWls
dXJlLiIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlY2VpdmVfcXVvdGEgPCBhbW91bnQ6Ci0gICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Zpb2xhdGUgcXVvdGEgb24gY2hhbm5lbCBpZCAl
ZDogJWQgPCAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1
ZXN0LmNoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Jl
Y2VpdmVfcXVvdGEsIGFtb3VudCkpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAg
c2VsZi5fcmVjZWl2ZV9xdW90YSAtPSBhbW91bnQKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAg
IGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6
Ci0gICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5zZW5kX21lc3NhZ2UuIiIiCi0KLSAgICAgICAg
aWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHJhaXNlIEJh
ZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIHNlbmRfbWVz
c2FnZSBhZnRlciBzZW5kaW5nIG91dCBhIGNsb3NpbmcgaGFuZHNoYWtlJykKLQotICAgICAgICBp
ZiBiaW5hcnkgYW5kIGlzaW5zdGFuY2UobWVzc2FnZSwgdW5pY29kZSk6Ci0gICAgICAgICAgICBy
YWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ01lc3NhZ2UgZm9y
IGJpbmFyeSBmcmFtZSBtdXN0IGJlIGluc3RhbmNlIG9mIHN0cicpCi0KLSAgICAgICAgaWYgYmlu
YXJ5OgotICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9CSU5BUlkKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfVEVYVAotICAgICAgICAg
ICAgbWVzc2FnZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpCi0KLSAgICAgICAgZm9yIG1lc3Nh
Z2VfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMub3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJzOgotICAg
ICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VfZmlsdGVyLmZpbHRlcihtZXNzYWdlLCBlbmQsIGJp
bmFyeSkKLQotICAgICAgICBpZiBzZWxmLl9sYXN0X21lc3NhZ2Vfd2FzX2ZyYWdtZW50ZWQ6Ci0g
ICAgICAgICAgICBpZiBvcGNvZGUgIT0gc2VsZi5fbWVzc2FnZV9vcGNvZGU6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdNZXNzYWdlIHR5cGVzIGFyZSBkaWZm
ZXJlbnQgaW4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
ZnJhbWVzIGZvciB0aGUgc2FtZSBtZXNzYWdlJykKLSAgICAgICAgICAgIG9wY29kZSA9IGNvbW1v
bi5PUENPREVfQ09OVElOVUFUSU9OCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9t
ZXNzYWdlX29wY29kZSA9IG9wY29kZQotCi0gICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1l
KG9wY29kZSwgbWVzc2FnZSwgZW5kKQotICAgICAgICBzZWxmLl9sYXN0X21lc3NhZ2Vfd2FzX2Zy
YWdtZW50ZWQgPSBub3QgZW5kCi0KLSAgICBkZWYgX3JlY2VpdmVfZnJhbWUoc2VsZik6Ci0gICAg
ICAgICIiIk92ZXJyaWRlcyBTdHJlYW0uX3JlY2VpdmVfZnJhbWUuCi0KLSAgICAgICAgSW4gYWRk
aXRpb24gdG8gY2FsbCBTdHJlYW0uX3JlY2VpdmVfZnJhbWUsIHRoaXMgbWV0aG9kIGFkZHMgdGhl
IGFtb3VudAotICAgICAgICBvZiBwYXlsb2FkIHRvIHJlY2VpdmluZyBxdW90YSBhbmQgc2VuZHMg
Rmxvd0NvbnRyb2wgdG8gdGhlIGNsaWVudC4KLSAgICAgICAgV2UgbmVlZCB0byBkbyBpdCBoZXJl
IGJlY2F1c2UgU3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpIGhhbmRsZXMKLSAgICAgICAgY29udHJv
bCBmcmFtZXMgaW50ZXJuYWxseS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgb3Bjb2RlLCBwYXls
b2FkLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMgPSBTdHJlYW0uX3JlY2VpdmVfZnJhbWUoc2VsZikK
LSAgICAgICAgYW1vdW50ID0gbGVuKHBheWxvYWQpCi0gICAgICAgICMgUmVwbGVuaXNoIGV4dHJh
IG9uZSBvY3RldCB3aGVuIHJlY2VpdmluZyB0aGUgZmlyc3QgZnJhZ21lbnRlZCBmcmFtZS4KLSAg
ICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAg
ICAgYW1vdW50ICs9IDEKLSAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSArPSBhbW91bnQKLSAg
ICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfZmxvd19jb250cm9sKHNlbGYuX3JlcXVlc3QuY2hh
bm5lbF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3Vu
dCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGZsb3cgY29udHJvbCBmb3Ig
JWQsIHJlcGxlbmlzaGVkPSVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5f
cmVxdWVzdC5jaGFubmVsX2lkLCBhbW91bnQpKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0gICAgICAgIHJldHVybiBvcGNv
ZGUsIHBheWxvYWQsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MwotCi0gICAgZGVmIF9nZXRfbWVzc2Fn
ZV9mcm9tX2ZyYW1lKHNlbGYsIGZyYW1lKToKLSAgICAgICAgIiIiT3ZlcnJpZGVzIFN0cmVhbS5f
Z2V0X21lc3NhZ2VfZnJvbV9mcmFtZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgaW5uZXJfbWVzc2FnZSA9IHNlbGYuX2lubmVyX21lc3NhZ2VfYnVpbGRlci5idWls
ZChmcmFtZSkKLSAgICAgICAgZXhjZXB0IEludmFsaWRGcmFtZUV4Y2VwdGlvbjoKLSAgICAgICAg
ICAgIHJhaXNlIExvZ2ljYWxDaGFubmVsRXJyb3IoCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVx
dWVzdC5jaGFubmVsX2lkLCBfRFJPUF9DT0RFX0JBRF9GUkFHTUVOVEFUSU9OKQotCi0gICAgICAg
IGlmIGlubmVyX21lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAg
ICAgIHNlbGYuX29yaWdpbmFsX29wY29kZSA9IGlubmVyX21lc3NhZ2Uub3Bjb2RlCi0gICAgICAg
IHJldHVybiBpbm5lcl9tZXNzYWdlLnBheWxvYWQKLQotICAgIGRlZiByZWNlaXZlX21lc3NhZ2Uo
c2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlcyBTdHJlYW0ucmVjZWl2ZV9tZXNzYWdlLiIiIgot
Ci0gICAgICAgICMgSnVzdCBjYWxsIFN0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKSwgYnV0IGNhdGNo
Ci0gICAgICAgICMgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNlcHRpb24sIHdoaWNoIGlzIHJh
aXNlZCB3aGVuIHRoZSBsb2dpY2FsCi0gICAgICAgICMgY29ubmVjdGlvbiBoYXMgY2xvc2VkIGdy
YWNlZnVsbHkuCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBTdHJlYW0ucmVjZWl2
ZV9tZXNzYWdlKHNlbGYpCi0gICAgICAgIGV4Y2VwdCBMb2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4
Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBfc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShz
ZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAgICAiIiJPdmVycmlkZXMgU3RyZWFtLl9zZW5kX2Ns
b3NpbmdfaGFuZHNoYWtlLiIiIgotCi0gICAgICAgIGJvZHkgPSBjcmVhdGVfY2xvc2luZ19oYW5k
c2hha2VfYm9keShjb2RlLCByZWFzb24pCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2Vu
ZGluZyBjbG9zaW5nIGhhbmRzaGFrZSBmb3IgJWQ6ICglciwgJXIpJyAlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBjb2RlLCByZWFzb24pKQot
ICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZShjb21tb24uT1BDT0RFX0NMT1NFLCBib2R5
LCBlbmQ9VHJ1ZSkKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0g
VHJ1ZQotCi0gICAgZGVmIHNlbmRfcGluZyhzZWxmLCBib2R5PScnKToKLSAgICAgICAgIiIiT3Zl
cnJpZGVzIFN0cmVhbS5zZW5kX3BpbmciIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1NlbmRpbmcgcGluZyBvbiBsb2dpY2FsIGNoYW5uZWwgJWQ6ICVyJyAlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBib2R5KSkKLSAgICAgICAg
c2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUoY29tbW9uLk9QQ09ERV9QSU5HLCBib2R5LCBlbmQ9VHJ1
ZSkKLQotICAgICAgICBzZWxmLl9waW5nX3F1ZXVlLmFwcGVuZChib2R5KQotCi0gICAgZGVmIF9z
ZW5kX3Bvbmcoc2VsZiwgYm9keSk6Ci0gICAgICAgICIiIk92ZXJyaWRlcyBTdHJlYW0uX3NlbmRf
cG9uZyIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGluZyBwb25nIG9uIGxv
Z2ljYWwgY2hhbm5lbCAlZDogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxm
Ll9yZXF1ZXN0LmNoYW5uZWxfaWQsIGJvZHkpKQotICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9m
cmFtZShjb21tb24uT1BDT0RFX1BPTkcsIGJvZHksIGVuZD1UcnVlKQotCi0gICAgZGVmIGNsb3Nl
X2Nvbm5lY3Rpb24oc2VsZiwgY29kZT1jb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFz
b249JycpOgotICAgICAgICAiIiJPdmVycmlkZXMgU3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24uIiIi
Ci0KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogSW1wbGVtZW50Ci0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnQ2xvc2luZyBsb2dpY2FsIGNvbm5lY3Rpb24gJWQnICUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5fcmVx
dWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKLQotICAgIGRlZiBzdG9wX3NlbmRpbmcoc2Vs
Zik6Ci0gICAgICAgICIiIlN0b3BzIGFjY2VwdGluZyBuZXcgc2VuZCBvcGVyYXRpb24gKF93cml0
ZV9pbm5lcl9mcmFtZSkuIiIiCi0KLSAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24uYWNxdWly
ZSgpCi0gICAgICAgIHNlbGYuX3NlbmRfY2xvc2VkID0gVHJ1ZQotICAgICAgICBzZWxmLl9zZW5k
X2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5yZWxlYXNl
KCkKLQotCi1jbGFzcyBfT3V0Z29pbmdEYXRhKG9iamVjdCk6Ci0gICAgIiIiQSBzdHJ1Y3R1cmUg
dGhhdCBob2xkcyBkYXRhIHRvIGJlIHNlbnQgdmlhIHBoeXNpY2FsIGNvbm5lY3Rpb24gYW5kCi0g
ICAgb3JpZ2luIG9mIHRoZSBkYXRhLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGNoYW5uZWxfaWQsIGRhdGEpOgotICAgICAgICBzZWxmLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lk
Ci0gICAgICAgIHNlbGYuZGF0YSA9IGRhdGEKLQotCi1jbGFzcyBfUGh5c2ljYWxDb25uZWN0aW9u
V3JpdGVyKHRocmVhZGluZy5UaHJlYWQpOgotICAgICIiIkEgdGhyZWFkIHRoYXQgaXMgcmVzcG9u
c2libGUgZm9yIHdyaXRpbmcgZGF0YSB0byBwaHlzaWNhbCBjb25uZWN0aW9uLgotCi0gICAgVE9E
TyhiYXNoaSk6IE1ha2Ugc3VyZSB0aGVyZSBpcyBubyB0aHJlYWQtc2FmZXR5IHByb2JsZW0gd2hl
biB0aGUgcmVhZGVyCi0gICAgdGhyZWFkIHJlYWRzIGRhdGEgZnJvbSB0aGUgc2FtZSBzb2NrZXQg
YXQgYSB0aW1lLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG11eF9oYW5kbGVy
KToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgbXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAi
IiIKLQotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNl
bGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAgICBzZWxmLl9t
dXhfaGFuZGxlciA9IG11eF9oYW5kbGVyCi0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0K
LSAgICAgICAgIyBXaGVuIHNldCwgbWFrZSB0aGlzIHRocmVhZCBzdG9wIGFjY2VwdGluZyBuZXcg
ZGF0YSwgZmx1c2ggcGVuZGluZwotICAgICAgICAjIGRhdGEgYW5kIGV4aXQuCi0gICAgICAgIHNl
bGYuX3N0b3BfcmVxdWVzdGVkID0gRmFsc2UKLSAgICAgICAgIyBUaGUgY2xvc2UgY29kZSBvZiB0
aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KLSAgICAgICAgc2VsZi5fY2xvc2VfY29kZSA9IGNvbW1v
bi5TVEFUVVNfTk9STUFMX0NMT1NVUkUKLSAgICAgICAgIyBEZXF1ZSBmb3IgcGFzc2luZyB3cml0
ZSBkYXRhLiBJdCdzIHByb3RlY3RlZCBieSBfZGVxdWVfY29uZGl0aW9uCi0gICAgICAgICMgdW50
aWwgX3N0b3BfcmVxdWVzdGVkIGlzIHNldC4KLSAgICAgICAgc2VsZi5fZGVxdWUgPSBjb2xsZWN0
aW9ucy5kZXF1ZSgpCi0gICAgICAgICMgLSBQcm90ZWN0cyBfZGVxdWUsIF9zdG9wX3JlcXVlc3Rl
ZCBhbmQgX2Nsb3NlX2NvZGUKLSAgICAgICAgIyAtIFNpZ25hbHMgdGhyZWFkcyB3YWl0aW5nIGZv
ciB0aGVtIHRvIGJlIGF2YWlsYWJsZQotICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24gPSB0
aHJlYWRpbmcuQ29uZGl0aW9uKCkKLQotICAgIGRlZiBwdXRfb3V0Z29pbmdfZGF0YShzZWxmLCBk
YXRhKToKLSAgICAgICAgIiIiUHV0cyBvdXRnb2luZyBkYXRhLgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgICBkYXRhOiBfT3V0Z29pbmdEYXRhIGluc3RhbmNlLgotCi0gICAgICAgIFJhaXNl
czoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiB0aGUgdGhyZWFkIGhh
cyBiZWVuIHJlcXVlc3RlZCB0bwotICAgICAgICAgICAgICAgIHRlcm1pbmF0ZS4KLSAgICAgICAg
IiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdDYW5ub3Qgd3JpdGUgZGF0YSBhbnlt
b3JlJykKLQotICAgICAgICAgICAgc2VsZi5fZGVxdWUuYXBwZW5kKGRhdGEpCi0gICAgICAgICAg
ICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgZmluYWxseToKLSAgICAg
ICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBfd3JpdGVf
ZGF0YShzZWxmLCBvdXRnb2luZ19kYXRhKToKLSAgICAgICAgbWVzc2FnZSA9IChfZW5jb2RlX2No
YW5uZWxfaWQob3V0Z29pbmdfZGF0YS5jaGFubmVsX2lkKSArCi0gICAgICAgICAgICAgICAgICAg
b3V0Z29pbmdfZGF0YS5kYXRhKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9tdXhf
aGFuZGxlci5waHlzaWNhbF9zdHJlYW0uc2VuZF9tZXNzYWdlKAotICAgICAgICAgICAgICAgIG1l
c3NhZ2U9bWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1UcnVlKQotICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uLCBlOgotICAgICAgICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gc2VuZCBtZXNzYWdlIHRvICVyOiAnICUKLSAg
ICAgICAgICAgICAgICAoc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfY29ubmVjdGlvbi5yZW1v
dGVfYWRkciwpLCBlKQotICAgICAgICAgICAgcmFpc2UKLQotICAgICAgICAjIFRPRE8oYmFzaGkp
OiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gYmxvY2sgdGhlIHRocmVhZCB0aGF0IHNlbmRzCi0gICAg
ICAgICMgY29udHJvbCBkYXRhIGFzIHdlbGwuCi0gICAgICAgIGlmIG91dGdvaW5nX2RhdGEuY2hh
bm5lbF9pZCAhPSBfQ09OVFJPTF9DSEFOTkVMX0lEOgotICAgICAgICAgICAgc2VsZi5fbXV4X2hh
bmRsZXIubm90aWZ5X3dyaXRlX2RhdGFfZG9uZShvdXRnb2luZ19kYXRhLmNoYW5uZWxfaWQpCi0K
LSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9kZXF1
ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9y
ZXF1ZXN0ZWQ6Ci0gICAgICAgICAgICAgICAgaWYgbGVuKHNlbGYuX2RlcXVlKSA9PSAwOgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ud2FpdCgpCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICBvdXRnb2luZ19kYXRhID0gc2Vs
Zi5fZGVxdWUucG9wbGVmdCgpCi0KLSAgICAgICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRp
b24ucmVsZWFzZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfZGF0YShvdXRnb2luZ19k
YXRhKQotICAgICAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLQot
ICAgICAgICAgICAgIyBGbHVzaCBkZXF1ZS4KLSAgICAgICAgICAgICMKLSAgICAgICAgICAgICMg
QXQgdGhpcyBwb2ludCwgc2VsZi5fZGVxdWVfY29uZGl0aW9uIGlzIGFsd2F5cyBhY3F1aXJlZC4K
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB3aGlsZSBsZW4oc2VsZi5fZGVxdWUp
ID4gMDoKLSAgICAgICAgICAgICAgICAgICAgb3V0Z29pbmdfZGF0YSA9IHNlbGYuX2RlcXVlLnBv
cGxlZnQoKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9kYXRhKG91dGdvaW5nX2Rh
dGEpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIHNlbGYuX2RlcXVlX2Nv
bmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICAgICAgIyBDbG9zZSBwaHlzaWNhbCBjb25uZWN0
aW9uLgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICMgRG9uJ3Qgd2FpdCB0aGUg
cmVzcG9uc2UgaGVyZS4gVGhlIHJlc3BvbnNlIHdpbGwgYmUgcmVhZAotICAgICAgICAgICAgICAg
ICMgYnkgdGhlIHJlYWRlciB0aHJlYWQuCi0gICAgICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRs
ZXIucGh5c2ljYWxfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oCi0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX2Nsb3NlX2NvZGUsIHdhaXRfcmVzcG9uc2U9RmFsc2UpCi0gICAgICAgICAgICBleGNl
cHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3Rv
X2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBjbG9zZSB0aGUgcGh5
c2ljYWwgY29ubmVjdGlvbjogJXInICUgZSkKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIubm90aWZ5X3dyaXRlcl9k
b25lKCkKLQotICAgIGRlZiBzdG9wKHNlbGYsIGNsb3NlX2NvZGU9Y29tbW9uLlNUQVRVU19OT1JN
QUxfQ0xPU1VSRSk6Ci0gICAgICAgICIiIlN0b3BzIHRoZSB3cml0ZXIgdGhyZWFkLiIiIgotCi0g
ICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fc3Rv
cF9yZXF1ZXN0ZWQgPSBUcnVlCi0gICAgICAgIHNlbGYuX2Nsb3NlX2NvZGUgPSBjbG9zZV9jb2Rl
Ci0gICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBzZWxmLl9k
ZXF1ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0KLQotY2xhc3MgX1BoeXNpY2FsQ29ubmVjdGlvblJl
YWRlcih0aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJBIHRocmVhZCB0aGF0IGlzIHJlc3BvbnNp
YmxlIGZvciByZWFkaW5nIGRhdGEgZnJvbSBwaHlzaWNhbCBjb25uZWN0aW9uLgotICAgICIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG11eF9oYW5kbGVyKToKLSAgICAgICAgIiIiQ29uc3Ry
dWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbXV4X2hhbmRs
ZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICB0aHJlYWRp
bmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0
X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAgICBzZWxmLl9tdXhfaGFuZGxlciA9IG11eF9oYW5k
bGVyCi0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgot
ICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHBo
eXNpY2FsX3N0cmVhbSA9IHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX3N0cmVhbQotICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgPSBwaHlzaWNhbF9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAg
ICAgICAgICAgICAgICBpZiBtZXNzYWdlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrCi0gICAgICAgICAgICAgICAgIyBCZWxvdyBoYXBwZW5zIG9ubHkgd2hlbiBhIGRhdGEgbWVz
c2FnZSBpcyByZWNlaXZlZC4KLSAgICAgICAgICAgICAgICBvcGNvZGUgPSBwaHlzaWNhbF9zdHJl
YW0uZ2V0X2xhc3RfcmVjZWl2ZWRfb3Bjb2RlKCkKLSAgICAgICAgICAgICAgICBpZiBvcGNvZGUg
IT0gY29tbW9uLk9QQ09ERV9CSU5BUlk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX211eF9o
YW5kbGVyLmZhaWxfcGh5c2ljYWxfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAg
IF9EUk9QX0NPREVfSU5WQUxJRF9FTkNBUFNVTEFUSU5HX01FU1NBR0UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAnUmVjZWl2ZWQgYSB0ZXh0IG1lc3NhZ2Ugb24gcGh5c2ljYWwgY29ubmVjdGlv
bicpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgICAgIGV4Y2VwdCBDb25u
ZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuZGlzcGF0Y2hfbWVzc2FnZSht
ZXNzYWdlKQotICAgICAgICAgICAgZXhjZXB0IFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLCBlOgot
ICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmZhaWxfcGh5c2ljYWxfY29ubmVjdGlv
bigKLSAgICAgICAgICAgICAgICAgICAgZS5kcm9wX2NvZGUsIGUubWVzc2FnZSkKLSAgICAgICAg
ICAgICAgICBicmVhawotICAgICAgICAgICAgZXhjZXB0IExvZ2ljYWxDaGFubmVsRXJyb3IsIGU6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuZmFpbF9sb2dpY2FsX2NoYW5uZWwo
Ci0gICAgICAgICAgICAgICAgICAgIGUuY2hhbm5lbF9pZCwgZS5kcm9wX2NvZGUsIGUubWVzc2Fn
ZSkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCi0gICAgICAgICAgICAgICAg
YnJlYWsKLQotICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5ub3RpZnlfcmVhZGVyX2RvbmUoKQot
Ci0KLWNsYXNzIF9Xb3JrZXIodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgIiIiQSB0aHJlYWQgdGhh
dCBpcyByZXNwb25zaWJsZSBmb3IgcnVubmluZyB0aGUgY29ycmVzcG9uZGluZyBhcHBsaWNhdGlv
bgotICAgIGhhbmRsZXIuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXV4X2hh
bmRsZXIsIHJlcXVlc3QpOgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtdXhfaGFuZGxlcjogX011eEhhbmRsZXIgaW5zdGFu
Y2UuCi0gICAgICAgICAgICByZXF1ZXN0OiBfTG9naWNhbFJlcXVlc3QgaW5zdGFuY2UuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNl
bGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIKLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJl
cXVlc3QKLSAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLQotICAgIGRlZiBydW4oc2VsZik6
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTG9naWNhbCBjaGFubmVsIHdvcmtlciBzdGFy
dGVkLiAoaWQ9JWQpJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LmNoYW5uZWxfaWQpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgTm9uLWNyaXRpY2FsIGV4
Y2VwdGlvbnMgd2lsbCBiZSBoYW5kbGVkIGJ5IGRpc3BhdGNoZXIuCi0gICAgICAgICAgICBzZWxm
Ll9tdXhfaGFuZGxlci5kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEoc2VsZi5fcmVxdWVzdCkKLSAg
ICAgICAgZXhjZXB0IExvZ2ljYWxDaGFubmVsRXJyb3IsIGU6Ci0gICAgICAgICAgICBzZWxmLl9t
dXhfaGFuZGxlci5mYWlsX2xvZ2ljYWxfY2hhbm5lbCgKLSAgICAgICAgICAgICAgICBlLmNoYW5u
ZWxfaWQsIGUuZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzZWxmLl9tdXhfaGFuZGxlci5ub3RpZnlfd29ya2VyX2RvbmUoc2VsZi5fcmVxdWVzdC5j
aGFubmVsX2lkKQotCi0KLWNsYXNzIF9NdXhIYW5kc2hha2VyKGh5YmkuSGFuZHNoYWtlcik6Ci0g
ICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciBtdWx0aXBsZXhpbmcuIiIiCi0K
LSAgICBfRFVNTVlfV0VCU09DS0VUX0tFWSA9ICdkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlciwgc2VuZF9xdW90YSwg
cmVjZWl2ZV9xdW90YSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0gICAg
ICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBfTG9naWNhbFJlcXVlc3QgaW5zdGFuY2Uu
Ci0gICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIGluc3RhbmNlIChkaXNwYXRjaC5E
aXNwYXRjaGVyKS4KLSAgICAgICAgICAgIHNlbmRfcXVvdGE6IEluaXRpYWwgc2VuZCBxdW90YS4K
LSAgICAgICAgICAgIHJlY2VpdmVfcXVvdGE6IEluaXRpYWwgcmVjZWl2ZSBxdW90YS4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgaHliaS5IYW5kc2hha2VyLl9faW5pdF9fKHNlbGYsIHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAg
ICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEgPSByZWNlaXZlX3F1b3RhCi0KLSAgICAgICAgIyBBcHBl
bmQgaGVhZGVycyB3aGljaCBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGluIGhhbmRzaGFrZSBmaWVs
ZCBvZgotICAgICAgICAjIEFkZENoYW5uZWxSZXF1ZXN0LgotICAgICAgICAjIFRPRE8oYmFzaGkp
OiBNYWtlIHN1cmUgd2hldGhlciB3ZSBzaG91bGQgcmFpc2UgZXhjZXB0aW9uIHdoZW4KLSAgICAg
ICAgIyAgICAgdGhlc2UgaGVhZGVycyBhcmUgaW5jbHVkZWQgYWxyZWFkeS4KLSAgICAgICAgcmVx
dWVzdC5oZWFkZXJzX2luW2NvbW1vbi5VUEdSQURFX0hFQURFUl0gPSAoCi0gICAgICAgICAgICBj
b21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSkKLSAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2lu
W2NvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSXSA9ICgKLSAgICAgICAgICAgIHN0
cihjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVCkpCi0gICAgICAgIHJlcXVlc3QuaGVhZGVyc19p
bltjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSXSA9ICgKLSAgICAgICAgICAgIHNlbGYu
X0RVTU1ZX1dFQlNPQ0tFVF9LRVkpCi0KLSAgICBkZWYgX2NyZWF0ZV9zdHJlYW0oc2VsZiwgc3Ry
ZWFtX29wdGlvbnMpOgotICAgICAgICAiIiJPdmVycmlkZSBoeWJpLkhhbmRzaGFrZXIuX2NyZWF0
ZV9zdHJlYW0uIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDcmVhdGluZyBsb2dp
Y2FsIHN0cmVhbSBmb3IgJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgcmV0dXJuIF9Mb2dpY2FsU3RyZWFtKAotICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdCwgc3RyZWFtX29wdGlvbnMsIHNlbGYuX3NlbmRfcXVvdGEsCi0g
ICAgICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhKQotCi0gICAgZGVmIF9jcmVhdGVfaGFuZHNo
YWtlX3Jlc3BvbnNlKHNlbGYsIGFjY2VwdCk6Ci0gICAgICAgICIiIk92ZXJyaWRlIGh5YmkuX2Ny
ZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2UuIiIiCi0KLSAgICAgICAgcmVzcG9uc2UgPSBbXQotCi0g
ICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNc
clxuJykKLQotICAgICAgICAjIFVwZ3JhZGUgYW5kIFNlYy1XZWJTb2NrZXQtQWNjZXB0IHNob3Vs
ZCBiZSBleGNsdWRlZC4KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCclczogJXNcclxuJyAlICgK
LSAgICAgICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09O
TkVDVElPTl9UWVBFKSkKLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnJXM6ICVzXHJcbicgJSAoCi0g
ICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSLAotICAg
ICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpKQotICAgICAgICBpZiAoc2Vs
Zi5fcmVxdWVzdC53c19leHRlbnNpb25zIGlzIG5vdCBOb25lIGFuZAotICAgICAgICAgICAgbGVu
KHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykgIT0gMCk6Ci0gICAgICAgICAgICByZXNwb25z
ZS5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VC
U09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLAotICAgICAgICAgICAgICAgIGNvbW1vbi5mb3JtYXRf
ZXh0ZW5zaW9ucyhzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMpKSkKLSAgICAgICAgcmVzcG9u
c2UuYXBwZW5kKCdcclxuJykKLQotICAgICAgICByZXR1cm4gJycuam9pbihyZXNwb25zZSkKLQot
ICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZiwgYWNjZXB0KToKLSAgICAgICAgIiIiT3ZlcnJp
ZGUgaHliaS5IYW5kc2hha2VyLl9zZW5kX2hhbmRzaGFrZS4iIiIKLQotICAgICAgICAjIERvbid0
IHNlbmQgaGFuZHNoYWtlIHJlc3BvbnNlIGZvciB0aGUgZGVmYXVsdCBjaGFubmVsCi0gICAgICAg
IGlmIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCA9PSBfREVGQVVMVF9DSEFOTkVMX0lEOgotICAg
ICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaGFuZHNoYWtlX3Jlc3BvbnNlID0gc2VsZi5fY3Jl
YXRlX2hhbmRzaGFrZV9yZXNwb25zZShhY2NlcHQpCi0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3Jl
YXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAotICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
X3JlcXVlc3QuY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kc2hha2Vf
cmVzcG9uc2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGluZyBoYW5kc2hha2Ug
cmVzcG9uc2UgZm9yICVkOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYu
X3JlcXVlc3QuY2hhbm5lbF9pZCwgZnJhbWVfZGF0YSkpCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qu
Y29ubmVjdGlvbi53cml0ZV9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkKLQotCi1jbGFzcyBfTG9n
aWNhbENoYW5uZWxEYXRhKG9iamVjdCk6Ci0gICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCBob2xkcyBp
bmZvcm1hdGlvbiBhYm91dCBsb2dpY2FsIGNoYW5uZWwuCi0gICAgIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgcmVxdWVzdCwgd29ya2VyKToKLSAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVx
dWVzdAotICAgICAgICBzZWxmLndvcmtlciA9IHdvcmtlcgotICAgICAgICBzZWxmLmRyb3BfY29k
ZSA9IF9EUk9QX0NPREVfTk9STUFMX0NMT1NVUkUKLSAgICAgICAgc2VsZi5kcm9wX21lc3NhZ2Ug
PSAnJwotCi0KLWNsYXNzIF9IYW5kc2hha2VEZWx0YUJhc2Uob2JqZWN0KToKLSAgICAiIiJBIGNs
YXNzIHRoYXQgaG9sZHMgaW5mb3JtYXRpb24gZm9yIGRlbHRhLWVuY29kZWQgaGFuZHNoYWtlLiIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGhlYWRlcnMpOgotICAgICAgICBzZWxmLl9oZWFk
ZXJzID0gaGVhZGVycwotCi0gICAgZGVmIGNyZWF0ZV9oZWFkZXJzKHNlbGYsIGRlbHRhPU5vbmUp
OgotICAgICAgICAiIiJDcmVhdGVzIHJlcXVlc3QgaGVhZGVycyBmb3IgYW4gQWRkQ2hhbm5lbFJl
cXVlc3QgdGhhdCBoYXMKLSAgICAgICAgZGVsdGEtZW5jb2RlZCBoYW5kc2hha2UuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIGRlbHRhOiBoZWFkZXJzIHNob3VsZCBiZSBvdmVycmlkZGVu
LgotICAgICAgICAiIiIKLQotICAgICAgICBoZWFkZXJzID0gY29weS5jb3B5KHNlbGYuX2hlYWRl
cnMpCi0gICAgICAgIGlmIGRlbHRhOgotICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gZGVs
dGEuaXRlbXMoKToKLSAgICAgICAgICAgICAgICAjIFRoZSBzcGVjIHJlcXVpcmVzIHRoYXQgYSBo
ZWFkZXIgd2l0aCBhbiBlbXB0eSB2YWx1ZSBpcwotICAgICAgICAgICAgICAgICMgcmVtb3ZlZCBm
cm9tIHRoZSBkZWx0YSBiYXNlLgotICAgICAgICAgICAgICAgIGlmIGxlbih2YWx1ZSkgPT0gMCBh
bmQgaGVhZGVycy5oYXNfa2V5KGtleSk6Ci0gICAgICAgICAgICAgICAgICAgIGRlbCBoZWFkZXJz
W2tleV0KLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBoZWFkZXJz
W2tleV0gPSB2YWx1ZQotICAgICAgICByZXR1cm4gaGVhZGVycwotCi0KLWNsYXNzIF9NdXhIYW5k
bGVyKG9iamVjdCk6Ci0gICAgIiIiTXVsdGlwbGV4aW5nIGhhbmRsZXIuIFdoZW4gYSBoYW5kbGVy
IHN0YXJ0cywgaXQgbGF1bmNoZXMgdGhyZWUKLSAgICB0aHJlYWRzOyB0aGUgcmVhZGVyIHRocmVh
ZCwgdGhlIHdyaXRlciB0aHJlYWQsIGFuZCBhIHdvcmtlciB0aHJlYWQuCi0KLSAgICBUaGUgcmVh
ZGVyIHRocmVhZCByZWFkcyBkYXRhIGZyb20gdGhlIHBoeXNpY2FsIHN0cmVhbSwgaS5lLiwgdGhl
Ci0gICAgd3Nfc3RyZWFtIG9iamVjdCBvZiB0aGUgdW5kZXJseWluZyB3ZWJzb2NrZXQgY29ubmVj
dGlvbi4gVGhlIHJlYWRlcgotICAgIHRocmVhZCBpbnRlcnByZXRzIG11bHRpcGxleGVkIGZyYW1l
cyBhbmQgZGlzcGF0Y2hlcyB0aGVtIHRvIGxvZ2ljYWwKLSAgICBjaGFubmVscy4gTWV0aG9kcyBv
ZiB0aGlzIGNsYXNzIGFyZSBtb3N0bHkgY2FsbGVkIGJ5IHRoZSByZWFkZXIgdGhyZWFkLgotCi0g
ICAgVGhlIHdyaXRlciB0aHJlYWQgc2VuZHMgbXVsdGlwbGV4ZWQgZnJhbWVzIHdoaWNoIGFyZSBj
cmVhdGVkIGJ5Ci0gICAgbG9naWNhbCBjaGFubmVscyB2aWEgdGhlIHBoeXNpY2FsIGNvbm5lY3Rp
b24uCi0KLSAgICBUaGUgd29ya2VyIHRocmVhZCBsYXVuY2hlZCBhdCB0aGUgc3RhcnRpbmcgcG9p
bnQgaGFuZGxlcyB0aGUKLSAgICAiSW1wbGljaXRseSBPcGVuZWQgQ29ubmVjdGlvbiIuIElmIG11
bHRpcGxleGluZyBoYW5kbGVyIHJlY2VpdmVzCi0gICAgYW4gQWRkQ2hhbm5lbFJlcXVlc3QgYW5k
IGFjY2VwdHMgaXQsIHRoZSBoYW5kbGVyIHdpbGwgbGF1bmNoIGEgbmV3IHdvcmtlcgotICAgIHRo
cmVhZCBhbmQgZGlzcGF0Y2ggdGhlIHJlcXVlc3QgdG8gaXQuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcik6Ci0gICAgICAgICIiIkNvbnN0cnVj
dHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1v
ZF9weXRob24gcmVxdWVzdCBvZiB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KLSAgICAgICAgICAg
IGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgaW5zdGFuY2UgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgot
ICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QgPSByZXF1ZXN0Ci0g
ICAgICAgIHNlbGYuZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXIKLSAgICAgICAgc2VsZi5waHlzaWNh
bF9jb25uZWN0aW9uID0gcmVxdWVzdC5jb25uZWN0aW9uCi0gICAgICAgIHNlbGYucGh5c2ljYWxf
c3RyZWFtID0gcmVxdWVzdC53c19zdHJlYW0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5n
ZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMgPSB7
fQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbiA9IHRocmVhZGluZy5D
b25kaXRpb24oKQotICAgICAgICAjIEhvbGRzIGNsaWVudCdzIGluaXRpYWwgcXVvdGEKLSAgICAg
ICAgc2VsZi5fY2hhbm5lbF9zbG90cyA9IGNvbGxlY3Rpb25zLmRlcXVlKCkKLSAgICAgICAgc2Vs
Zi5faGFuZHNoYWtlX2Jhc2UgPSBOb25lCi0gICAgICAgIHNlbGYuX3dvcmtlcl9kb25lX25vdGlm
eV9yZWNlaXZlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3JlYWRlciA9IE5vbmUKLSAgICAgICAg
c2VsZi5fd3JpdGVyID0gTm9uZQotCi0gICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICAiIiJT
dGFydHMgdGhlIGhhbmRsZXIuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgTXV4VW5l
eHBlY3RlZEV4Y2VwdGlvbjogd2hlbiB0aGUgaGFuZGxlciBhbHJlYWR5IHN0YXJ0ZWQsIG9yIHdo
ZW4KLSAgICAgICAgICAgICAgICBvcGVuaW5nIGhhbmRzaGFrZSBvZiB0aGUgZGVmYXVsdCBjaGFu
bmVsIGZhaWxzLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBzZWxmLl9yZWFkZXIgb3Igc2Vs
Zi5fd3JpdGVyOgotICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbignTXV4
SGFuZGxlciBhbHJlYWR5IHN0YXJ0ZWQnKQotCi0gICAgICAgIHNlbGYuX3JlYWRlciA9IF9QaHlz
aWNhbENvbm5lY3Rpb25SZWFkZXIoc2VsZikKLSAgICAgICAgc2VsZi5fd3JpdGVyID0gX1BoeXNp
Y2FsQ29ubmVjdGlvbldyaXRlcihzZWxmKQotICAgICAgICBzZWxmLl9yZWFkZXIuc3RhcnQoKQot
ICAgICAgICBzZWxmLl93cml0ZXIuc3RhcnQoKQotCi0gICAgICAgICMgQ3JlYXRlICJJbXBsaWNp
dGx5IE9wZW5lZCBDb25uZWN0aW9uIi4KLSAgICAgICAgbG9naWNhbF9jb25uZWN0aW9uID0gX0xv
Z2ljYWxDb25uZWN0aW9uKHNlbGYsIF9ERUZBVUxUX0NIQU5ORUxfSUQpCi0gICAgICAgIGhlYWRl
cnMgPSBjb3B5LmNvcHkoc2VsZi5vcmlnaW5hbF9yZXF1ZXN0LmhlYWRlcnNfaW4pCi0gICAgICAg
ICMgQWRkIGV4dGVuc2lvbnMgZm9yIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgaGVhZGVyc1tj
b21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUl0gPSAoCi0gICAgICAgICAgICBj
b21tb24uZm9ybWF0X2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9y
ZXF1ZXN0Lm11eF9wcm9jZXNzb3IuZXh0ZW5zaW9ucygpKSkKLSAgICAgICAgc2VsZi5faGFuZHNo
YWtlX2Jhc2UgPSBfSGFuZHNoYWtlRGVsdGFCYXNlKGhlYWRlcnMpCi0gICAgICAgIGxvZ2ljYWxf
cmVxdWVzdCA9IF9Mb2dpY2FsUmVxdWVzdCgKLSAgICAgICAgICAgIF9ERUZBVUxUX0NIQU5ORUxf
SUQsCi0gICAgICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QubWV0aG9kLAotICAgICAgICAg
ICAgc2VsZi5vcmlnaW5hbF9yZXF1ZXN0LnVyaSwKLSAgICAgICAgICAgIHNlbGYub3JpZ2luYWxf
cmVxdWVzdC5wcm90b2NvbCwKLSAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlLmNyZWF0
ZV9oZWFkZXJzKCksCi0gICAgICAgICAgICBsb2dpY2FsX2Nvbm5lY3Rpb24pCi0gICAgICAgICMg
Q2xpZW50J3Mgc2VuZCBxdW90YSBmb3IgdGhlIGltcGxpY2l0bHkgb3BlbmVkIGNvbm5lY3Rpb24g
aXMgemVybywKLSAgICAgICAgIyBidXQgd2Ugd2lsbCBzZW5kIEZsb3dDb250cm9sIGxhdGVyIHNv
IHNldCB0aGUgaW5pdGlhbCBxdW90YSB0bwotICAgICAgICAjIF9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQuCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMuYXBwZW5kKF9JTklUSUFMX1FVT1RB
X0ZPUl9DTElFTlQpCi0gICAgICAgIHNlbmRfcXVvdGEgPSBzZWxmLm9yaWdpbmFsX3JlcXVlc3Qu
bXV4X3Byb2Nlc3Nvci5xdW90YSgpCi0gICAgICAgIGlmIG5vdCBzZWxmLl9kb19oYW5kc2hha2Vf
Zm9yX2xvZ2ljYWxfcmVxdWVzdCgKLSAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdCwgc2VuZF9x
dW90YT1zZW5kX3F1b3RhKToKLSAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCBoYW5kc2hha2Ugb24gdGhlIGRlZmF1bHQgY2hh
bm5lbCBpZCcpCi0gICAgICAgIHNlbGYuX2FkZF9sb2dpY2FsX2NoYW5uZWwobG9naWNhbF9yZXF1
ZXN0KQotCi0gICAgICAgICMgU2VuZCBGbG93Q29udHJvbCBmb3IgdGhlIGltcGxpY2l0bHkgb3Bl
bmVkIGNvbm5lY3Rpb24uCi0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2Zsb3dfY29udHJv
bChfREVGQVVMVF9DSEFOTkVMX0lELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLSAgICAgICAgbG9naWNhbF9yZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0KLSAgICBkZWYg
YWRkX2NoYW5uZWxfc2xvdHMoc2VsZiwgc2xvdHMsIHNlbmRfcXVvdGEpOgotICAgICAgICAiIiJB
ZGRzIGNoYW5uZWwgc2xvdHMuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHNsb3RzOiBu
dW1iZXIgb2Ygc2xvdHMgdG8gYmUgYWRkZWQuCi0gICAgICAgICAgICBzZW5kX3F1b3RhOiBpbml0
aWFsIHNlbmQgcXVvdGEgZm9yIHNsb3RzLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9j
aGFubmVsX3Nsb3RzLmV4dGVuZChbc2VuZF9xdW90YV0gKiBzbG90cykKLSAgICAgICAgIyBTZW5k
IE5ld0NoYW5uZWxTbG90IHRvIGNsaWVudC4KLSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVf
bmV3X2NoYW5uZWxfc2xvdChzbG90cywgc2VuZF9xdW90YSkKLSAgICAgICAgc2VsZi5zZW5kX2Nv
bnRyb2xfZGF0YShmcmFtZV9kYXRhKQotCi0gICAgZGVmIHdhaXRfdW50aWxfZG9uZShzZWxmLCB0
aW1lb3V0PU5vbmUpOgotICAgICAgICAiIiJXYWl0cyB1bnRpbCBhbGwgd29ya2VycyBhcmUgZG9u
ZS4gUmV0dXJucyBGYWxzZSB3aGVuIHRpbWVvdXQgaGFzCi0gICAgICAgIG9jY3VycmVkLiBSZXR1
cm5zIFRydWUgb24gc3VjY2Vzcy4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgdGltZW91
dDogdGltZW91dCBpbiBzZWMuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3
aGlsZSBsZW4oc2VsZi5fbG9naWNhbF9jaGFubmVscykgPiAwOgotICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnV2FpdGluZyB3b3JrZXJzKCVkKS4uLicgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZW4oc2VsZi5fbG9naWNhbF9jaGFubmVscykpCi0gICAg
ICAgICAgICAgICAgc2VsZi5fd29ya2VyX2RvbmVfbm90aWZ5X3JlY2VpdmVkID0gRmFsc2UKLSAg
ICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi53YWl0KHRpbWVv
dXQpCi0gICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3dvcmtlcl9kb25lX25vdGlmeV9yZWNl
aXZlZDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdXYWl0aW5nIHdv
cmtlcihzKSB0aW1lZCBvdXQnKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0
aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICMgRmx1c2ggcGVuZGluZyBvdXRnb2luZyBkYXRhCi0g
ICAgICAgIHNlbGYuX3dyaXRlci5zdG9wKCkKLSAgICAgICAgc2VsZi5fd3JpdGVyLmpvaW4oKQot
Ci0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgbm90aWZ5X3dyaXRlX2RhdGFfZG9uZShz
ZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgIiIiQ2FsbGVkIGJ5IHRoZSB3cml0ZXIgdGhyZWFk
IHdoZW4gYSB3cml0ZSBvcGVyYXRpb24gaGFzIGRvbmUuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICAgIGNoYW5uZWxfaWQ6IG9iamVjdGl2ZSBjaGFubmVsIGlkLgotICAgICAgICAiIiIKLQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlv
bi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9j
aGFubmVsczoKLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzW2NoYW5uZWxfaWRdCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qu
Y29ubmVjdGlvbi5vbl93cml0ZV9kYXRhX2RvbmUoKQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlZW1zIHRoYXQgbG9naWNhbCBjaGFubmVs
IGZvciAlZCBoYXMgZ29uZScKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBj
aGFubmVsX2lkKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9j
aGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgc2VuZF9jb250cm9sX2RhdGEo
c2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIlNlbmRzIGRhdGEgdmlhIHRoZSBjb250cm9sIGNoYW5u
ZWwuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgc2VudC4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fd3JpdGVyLnB1dF9vdXRnb2luZ19kYXRhKF9P
dXRnb2luZ0RhdGEoCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9pZD1fQ09OVFJPTF9DSEFOTkVM
X0lELCBkYXRhPWRhdGEpKQotCi0gICAgZGVmIHNlbmRfZGF0YShzZWxmLCBjaGFubmVsX2lkLCBk
YXRhKToKLSAgICAgICAgIiIiU2VuZHMgZGF0YSB2aWEgZ2l2ZW4gbG9naWNhbCBjaGFubmVsLiBU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkKLSAgICAgICAgd29ya2VyIHRocmVhZHMuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ6IG9iamVjdGl2ZSBjaGFubmVsIGlkLgot
ICAgICAgICAgICAgZGF0YTogZGF0YSB0byBiZSBzZW50LgotICAgICAgICAiIiIKLQotICAgICAg
ICBzZWxmLl93cml0ZXIucHV0X291dGdvaW5nX2RhdGEoX091dGdvaW5nRGF0YSgKLSAgICAgICAg
ICAgICAgICBjaGFubmVsX2lkPWNoYW5uZWxfaWQsIGRhdGE9ZGF0YSkpCi0KLSAgICBkZWYgX3Nl
bmRfZHJvcF9jaGFubmVsKHNlbGYsIGNoYW5uZWxfaWQsIGNvZGU9Tm9uZSwgbWVzc2FnZT0nJyk6
Ci0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkLCBj
b2RlLCBtZXNzYWdlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAn
U2VuZGluZyBkcm9wIGNoYW5uZWwgZm9yIGNoYW5uZWwgaWQgJWQnICUgY2hhbm5lbF9pZCkKLSAg
ICAgICAgc2VsZi5zZW5kX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRhKQotCi0gICAgZGVmIF9zZW5k
X2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHNlbGYsIGNoYW5uZWxfaWQsIHN0YXR1cz1Ob25l
KToKLSAgICAgICAgaWYgc3RhdHVzIGlzIE5vbmU6Ci0gICAgICAgICAgICBzdGF0dXMgPSBjb21t
b24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QKLQotICAgICAgICBpZiBzdGF0dXMgaW4gX0hUVFBf
QkFEX1JFU1BPTlNFX01FU1NBR0VTOgotICAgICAgICAgICAgbWVzc2FnZSA9IF9IVFRQX0JBRF9S
RVNQT05TRV9NRVNTQUdFU1tzdGF0dXNdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ1Jlc3BvbnNlIG1lc3NhZ2UgZm9yICVkIGlzIG5vdCBmb3VuZCcgJSBz
dGF0dXMpCi0gICAgICAgICAgICBtZXNzYWdlID0gJz8/PycKLQotICAgICAgICByZXNwb25zZSA9
ICdIVFRQLzEuMSAlZCAlc1xyXG5cclxuJyAlIChzdGF0dXMsIG1lc3NhZ2UpCi0gICAgICAgIGZy
YW1lX2RhdGEgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlPXJlc3BvbnNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbmNvZGluZz0wLCByZWplY3RlZD1UcnVlKQotICAgICAgICBzZWxmLnNlbmRf
Y29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0KLSAgICBkZWYgX2NyZWF0ZV9sb2dpY2FsX3JlcXVl
c3Qoc2VsZiwgYmxvY2spOgotICAgICAgICBpZiBibG9jay5jaGFubmVsX2lkID09IF9DT05UUk9M
X0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICAjIFRPRE8oYmFzaGkpOiBSYWlzZSBQaHlzaWNhbENv
bm5lY3Rpb25FcnJvciB3aXRoIGNvZGUgMjAwNgotICAgICAgICAgICAgIyBpbnN0ZWFkIG9mIE11
eFVuZXhwZWN0ZWRFeGNlcHRpb24uCi0gICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZWNlaXZlZCB0aGUgY29udHJvbCBjaGFubmVsIGlk
ICgwKSBhcyBvYmplY3RpdmUgY2hhbm5lbCAnCi0gICAgICAgICAgICAgICAgJ2lkIGZvciBBZGRD
aGFubmVsJykKLQotICAgICAgICBpZiBibG9jay5lbmNvZGluZyA+IF9IQU5EU0hBS0VfRU5DT0RJ
TkdfREVMVEE6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAg
ICAgICAgICAgICAgICBfRFJPUF9DT0RFX1VOS05PV05fUkVRVUVTVF9FTkNPRElORykKLQotICAg
ICAgICBtZXRob2QsIHBhdGgsIHZlcnNpb24sIGhlYWRlcnMgPSBfcGFyc2VfcmVxdWVzdF90ZXh0
KAotICAgICAgICAgICAgYmxvY2suZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIGlmIGJsb2Nr
LmVuY29kaW5nID09IF9IQU5EU0hBS0VfRU5DT0RJTkdfREVMVEE6Ci0gICAgICAgICAgICBoZWFk
ZXJzID0gc2VsZi5faGFuZHNoYWtlX2Jhc2UuY3JlYXRlX2hlYWRlcnMoaGVhZGVycykKLQotICAg
ICAgICBjb25uZWN0aW9uID0gX0xvZ2ljYWxDb25uZWN0aW9uKHNlbGYsIGJsb2NrLmNoYW5uZWxf
aWQpCi0gICAgICAgIHJlcXVlc3QgPSBfTG9naWNhbFJlcXVlc3QoYmxvY2suY2hhbm5lbF9pZCwg
bWV0aG9kLCBwYXRoLCB2ZXJzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlYWRlcnMsIGNvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybiByZXF1ZXN0Ci0KLSAgICBkZWYg
X2RvX2hhbmRzaGFrZV9mb3JfbG9naWNhbF9yZXF1ZXN0KHNlbGYsIHJlcXVlc3QsIHNlbmRfcXVv
dGE9MCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlY2VpdmVfcXVvdGEgPSBzZWxmLl9j
aGFubmVsX3Nsb3RzLnBvcGxlZnQoKQotICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKLSAgICAg
ICAgICAgIHJhaXNlIExvZ2ljYWxDaGFubmVsRXJyb3IoCi0gICAgICAgICAgICAgICAgcmVxdWVz
dC5jaGFubmVsX2lkLCBfRFJPUF9DT0RFX05FV19DSEFOTkVMX1NMT1RfVklPTEFUSU9OKQotCi0g
ICAgICAgIGhhbmRzaGFrZXIgPSBfTXV4SGFuZHNoYWtlcihyZXF1ZXN0LCBzZWxmLmRpc3BhdGNo
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kX3F1b3RhLCByZWNl
aXZlX3F1b3RhKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRz
aGFrZSgpCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuVmVyc2lvbkV4Y2VwdGlvbiwgZToKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCclcycsIGUpCi0gICAgICAgICAgICBzZWxmLl9z
ZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAotICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y2hhbm5lbF9pZCwgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKLSAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4
Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICMgVE9ETyhiYXNoaSk6IFNob3VsZCB3ZSBfRmFpbCB0
aGUgTG9naWNhbCBDaGFubmVsXyB3aXRoIDMwMDEKLSAgICAgICAgICAgICMgaW5zdGVhZD8KLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCclcycsIGUpCi0gICAgICAgICAgICBzZWxmLl9z
ZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHJlcXVlc3QuY2hhbm5lbF9pZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPWUuc3Rh
dHVzKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2Uu
QWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCclcycsIGUpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3Bv
bnNlKHJlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAg
ICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgX2FkZF9sb2dpY2FsX2NoYW5uZWwoc2VsZiwgbG9n
aWNhbF9yZXF1ZXN0KToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9j
aGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBsb2dpY2FsX3JlcXVl
c3QuY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2hhbm5lbCBpZCAlZCBhbHJlYWR5IGV4aXN0cycgJQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9p
ZCkKLSAgICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAg
ICAgICAgICAgICAgICAgX0RST1BfQ09ERV9DSEFOTkVMX0FMUkVBRFlfRVhJU1RTLAotICAgICAg
ICAgICAgICAgICAgICAnQ2hhbm5lbCBpZCAlZCBhbHJlYWR5IGV4aXN0cycgJQotICAgICAgICAg
ICAgICAgICAgICBsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgICAgIHdvcmtl
ciA9IF9Xb3JrZXIoc2VsZiwgbG9naWNhbF9yZXF1ZXN0KQotICAgICAgICAgICAgY2hhbm5lbF9k
YXRhID0gX0xvZ2ljYWxDaGFubmVsRGF0YShsb2dpY2FsX3JlcXVlc3QsIHdvcmtlcikKLSAgICAg
ICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbbG9naWNhbF9yZXF1ZXN0LmNoYW5uZWxfaWRd
ID0gY2hhbm5lbF9kYXRhCi0gICAgICAgICAgICB3b3JrZXIuc3RhcnQoKQotICAgICAgICBmaW5h
bGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFz
ZSgpCi0KLSAgICBkZWYgX3Byb2Nlc3NfYWRkX2NoYW5uZWxfcmVxdWVzdChzZWxmLCBibG9jayk6
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdCA9IHNlbGYuX2NyZWF0
ZV9sb2dpY2FsX3JlcXVlc3QoYmxvY2spCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdGYWlsZWQgdG8gY3JlYXRlIGxvZ2ljYWwg
cmVxdWVzdDogJXInICUgZSkKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRkX2NoYW5u
ZWxfcmVzcG9uc2UoCi0gICAgICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCwgc3RhdHVzPWNv
bW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKLSAgICAgICAgICAgIHJldHVybgotICAgICAg
ICBpZiBzZWxmLl9kb19oYW5kc2hha2VfZm9yX2xvZ2ljYWxfcmVxdWVzdChsb2dpY2FsX3JlcXVl
c3QpOgotICAgICAgICAgICAgaWYgYmxvY2suZW5jb2RpbmcgPT0gX0hBTkRTSEFLRV9FTkNPRElO
R19JREVOVElUWToKLSAgICAgICAgICAgICAgICAjIFVwZGF0ZSBoYW5kc2hha2UgYmFzZS4KLSAg
ICAgICAgICAgICAgICAjIFRPRE8oYmFzaGkpOiBNYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQg
cGxhY2UgdG8gdXBkYXRlCi0gICAgICAgICAgICAgICAgIyBoYW5kc2hha2UgYmFzZS4KLSAgICAg
ICAgICAgICAgICBzZWxmLl9oYW5kc2hha2VfYmFzZSA9IF9IYW5kc2hha2VEZWx0YUJhc2UoCi0g
ICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdC5oZWFkZXJzX2luKQotICAgICAgICAg
ICAgc2VsZi5fYWRkX2xvZ2ljYWxfY2hhbm5lbChsb2dpY2FsX3JlcXVlc3QpCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAot
ICAgICAgICAgICAgICAgIGJsb2NrLmNoYW5uZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFU
VVNfQkFEX1JFUVVFU1QpCi0KLSAgICBkZWYgX3Byb2Nlc3NfZmxvd19jb250cm9sKHNlbGYsIGJs
b2NrKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19j
b25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBub3QgYmxvY2suY2hhbm5lbF9pZCBp
biBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAg
ICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVs
X2lkXQotICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qud3Nfc3RyZWFtLnJlcGxlbmlz
aF9zZW5kX3F1b3RhKAotICAgICAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVvdGEpCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgIGRlZiBfcHJvY2Vzc19kcm9wX2NoYW5uZWwoc2VsZiwgYmxvY2spOgot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRHJvcENoYW5uZWwgcmVj
ZWl2ZWQgZm9yICVkOiBjb2RlPSVyLCByZWFzb249JXInICUKLSAgICAgICAgICAgIChibG9jay5j
aGFubmVsX2lkLCBibG9jay5kcm9wX2NvZGUsIGJsb2NrLmRyb3BfbWVzc2FnZSkpCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVp
cmUoKQotICAgICAgICAgICAgaWYgbm90IGJsb2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNh
bF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxf
ZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbYmxvY2suY2hhbm5lbF9pZF0KLSAgICAgICAg
ICAgIGNoYW5uZWxfZGF0YS5kcm9wX2NvZGUgPSBfRFJPUF9DT0RFX0FDS05PV0xFREdFRAotCi0g
ICAgICAgICAgICAjIENsb3NlIHRoZSBsb2dpY2FsIGNoYW5uZWwKLSAgICAgICAgICAgIGNoYW5u
ZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRfc3RhdGUoCi0gICAgICAgICAgICAg
ICAgX0xvZ2ljYWxDb25uZWN0aW9uLlNUQVRFX1RFUk1JTkFURUQpCi0gICAgICAgICAgICBjaGFu
bmVsX2RhdGEucmVxdWVzdC53c19zdHJlYW0uc3RvcF9zZW5kaW5nKCkKLSAgICAgICAgZmluYWxs
eToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2Uo
KQotCi0gICAgZGVmIF9wcm9jZXNzX2NvbnRyb2xfYmxvY2tzKHNlbGYsIHBhcnNlcik6Ci0gICAg
ICAgIGZvciBjb250cm9sX2Jsb2NrIGluIHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCk6Ci0g
ICAgICAgICAgICBvcGNvZGUgPSBjb250cm9sX2Jsb2NrLm9wY29kZQotICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdjb250cm9sIGJsb2NrIHJlY2VpdmVkLCBvcGNvZGU6ICVkJyAlIG9w
Y29kZSkKLSAgICAgICAgICAgIGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9S
RVFVRVNUOgotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfYWRkX2NoYW5uZWxfcmVxdWVz
dChjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVf
QUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25u
ZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhf
Q09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIEFkZENoYW5uZWxS
ZXNwb25zZScpCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NP
TlRST0w6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19mbG93X2NvbnRyb2woY29udHJv
bF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hB
Tk5FTDoKLSAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2Ryb3BfY2hhbm5lbChjb250cm9s
X2Jsb2NrKQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5O
RUxfU0xPVDoKLSAgICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigK
LSAgICAgICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NL
LAotICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgTmV3Q2hhbm5lbFNsb3QnKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBvcGNvZGUgJXInICUgb3Bjb2RlKQot
Ci0gICAgZGVmIF9wcm9jZXNzX2xvZ2ljYWxfZnJhbWUoc2VsZiwgY2hhbm5lbF9pZCwgcGFyc2Vy
KToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBhIGZyYW1lLiBjaGFubmVs
IGlkPSVkJyAlIGNoYW5uZWxfaWQpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IGNo
YW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICAjIFdl
IG11c3QgaWdub3JlIHRoZSBtZXNzYWdlIGZvciBhbiBpbmFjdGl2ZSBjaGFubmVsLgotICAgICAg
ICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNh
bF9jaGFubmVsc1tjaGFubmVsX2lkXQotICAgICAgICAgICAgZmluLCByc3YxLCByc3YyLCByc3Yz
LCBvcGNvZGUsIHBheWxvYWQgPSBwYXJzZXIucmVhZF9pbm5lcl9mcmFtZSgpCi0gICAgICAgICAg
ICBjb25zdW1pbmdfYnl0ZSA9IGxlbihwYXlsb2FkKQotICAgICAgICAgICAgaWYgb3Bjb2RlICE9
IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgICAgIGNvbnN1bWluZ19i
eXRlICs9IDEKLSAgICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2RhdGEucmVxdWVzdC53c19zdHJl
YW0uY29uc3VtZV9yZWNlaXZlX3F1b3RhKAotICAgICAgICAgICAgICAgIGNvbnN1bWluZ19ieXRl
KToKLSAgICAgICAgICAgICAgICAjIFRoZSBjbGllbnQgdmlvbGF0ZXMgcXVvdGEuIENsb3NlIGxv
Z2ljYWwgY2hhbm5lbC4KLSAgICAgICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9y
KAotICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBfRFJPUF9DT0RFX1NFTkRfUVVPVEFf
VklPTEFUSU9OKQotICAgICAgICAgICAgaGVhZGVyID0gY3JlYXRlX2hlYWRlcihvcGNvZGUsIGxl
bihwYXlsb2FkKSwgZmluLCByc3YxLCByc3YyLCByc3YzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtYXNrPUZhbHNlKQotICAgICAgICAgICAgZnJhbWVfZGF0YSA9IGhlYWRl
ciArIHBheWxvYWQKLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24u
YXBwZW5kX2ZyYW1lX2RhdGEoZnJhbWVfZGF0YSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVm
IGRpc3BhdGNoX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIkRpc3BhdGNoZXMg
bWVzc2FnZS4gVGhlIHJlYWRlciB0aHJlYWQgY2FsbHMgdGhpcyBtZXRob2QuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6IGEgbWVzc2FnZSB0aGF0IGNvbnRhaW5zIGVuY2Fw
c3VsYXRlZCBmcmFtZS4KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgUGh5c2ljYWxDb25u
ZWN0aW9uRXJyb3I6IGlmIHRoZSBtZXNzYWdlIGNvbnRhaW5zIHBoeXNpY2FsCi0gICAgICAgICAg
ICAgICAgY29ubmVjdGlvbiBsZXZlbCBlcnJvcnMuCi0gICAgICAgICAgICBMb2dpY2FsQ2hhbm5l
bEVycm9yOiBpZiB0aGUgbWVzc2FnZSBjb250YWlucyBsb2dpY2FsIGNoYW5uZWwKLSAgICAgICAg
ICAgICAgICBsZXZlbCBlcnJvcnMuCi0gICAgICAgICIiIgotCi0gICAgICAgIHBhcnNlciA9IF9N
dXhGcmFtZVBheWxvYWRQYXJzZXIobWVzc2FnZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
Y2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBleGNlcHQgVmFs
dWVFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9E
Uk9QX0NPREVfQ0hBTk5FTF9JRF9UUlVOQ0FURUQpCi0gICAgICAgIGlmIGNoYW5uZWxfaWQgPT0g
X0NPTlRST0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfY29udHJvbF9i
bG9ja3MocGFyc2VyKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQsIHBhcnNlcikKLQotICAgIGRlZiBub3RpZnlfd29ya2Vy
X2RvbmUoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgICIiIkNhbGxlZCB3aGVuIGEgd29ya2Vy
IGhhcyBmaW5pc2hlZC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY2hhbm5lbF9pZDog
Y2hhbm5lbCBpZCBjb3JyZXNwb25kZWQgd2l0aCB0aGUgd29ya2VyLgotICAgICAgICAiIiIKLQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dvcmtlciBmb3IgY2hhbm5lbCBpZCAlZCB0ZXJt
aW5hdGVkJyAlIGNoYW5uZWxfaWQpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IGNo
YW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICByYWlz
ZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnQ2hhbm5lbCBp
ZCAlZCBub3QgZm91bmQnICUgY2hhbm5lbF9pZCkKLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMucG9wKGNoYW5uZWxfaWQpCi0gICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICBzZWxmLl93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQgPSBUcnVlCi0g
ICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5ub3RpZnkoKQotICAg
ICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAg
ICAgICAgaWYgbm90IGNoYW5uZWxfZGF0YS5yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAg
ICAgICAgICAgc2VsZi5fc2VuZF9kcm9wX2NoYW5uZWwoCi0gICAgICAgICAgICAgICAgY2hhbm5l
bF9pZCwgY29kZT1jaGFubmVsX2RhdGEuZHJvcF9jb2RlLAotICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9Y2hhbm5lbF9kYXRhLmRyb3BfbWVzc2FnZSkKLQotICAgIGRlZiBub3RpZnlfcmVhZGVyX2Rv
bmUoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSB0aGUgcmVhZGVy
IHRocmVhZCB3aGVuIHRoZSByZWFkZXIgaGFzCi0gICAgICAgIGZpbmlzaGVkLgotICAgICAgICAi
IiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnVGVybWlhdGlu
ZyBhbGwgbG9naWNhbCBjb25uZWN0aW9ucyB3YWl0aW5nIGZvciBpbmNvbWluZyBkYXRhICcKLSAg
ICAgICAgICAgICcuLi4nKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlv
bi5hY3F1aXJlKCkKLSAgICAgICAgZm9yIGNoYW5uZWxfZGF0YSBpbiBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzLnZhbHVlcygpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGNoYW5u
ZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRfc3RhdGUoCi0gICAgICAgICAgICAg
ICAgICAgIF9Mb2dpY2FsQ29ubmVjdGlvbi5TVEFURV9URVJNSU5BVEVEKQotICAgICAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcodHJh
Y2ViYWNrLmZvcm1hdF9leGMoKSkKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25k
aXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgbm90aWZ5X3dyaXRlcl9kb25lKHNlbGYpOgotICAg
ICAgICAiIiJUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgdGhlIHdyaXRlciB0aHJlYWQgd2hlbiB0
aGUgd3JpdGVyIGhhcwotICAgICAgICBmaW5pc2hlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ1Rlcm1pYXRpbmcgYWxsIGxvZ2ljYWwg
Y29ubmVjdGlvbnMgd2FpdGluZyBmb3Igd3JpdGUgJwotICAgICAgICAgICAgJ2NvbXBsZXRpb24g
Li4uJykKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgp
Ci0gICAgICAgIGZvciBjaGFubmVsX2RhdGEgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVscy52YWx1
ZXMoKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVx
dWVzdC5jb25uZWN0aW9uLm9uX3dyaXRlcl9kb25lKCkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNl
cHRpb246Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKHRyYWNlYmFjay5mb3Jt
YXRfZXhjKCkpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVh
c2UoKQotCi0gICAgZGVmIGZhaWxfcGh5c2ljYWxfY29ubmVjdGlvbihzZWxmLCBjb2RlLCBtZXNz
YWdlKToKLSAgICAgICAgIiIiRmFpbCB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KLQotICAgICAg
ICBBcmdzOgotICAgICAgICAgICAgY29kZTogZHJvcCByZWFzb24gY29kZS4KLSAgICAgICAgICAg
IG1lc3NhZ2U6IGRyb3AgbWVzc2FnZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdGYWlsaW5nIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLi4uJykKLSAgICAgICAg
c2VsZi5fc2VuZF9kcm9wX2NoYW5uZWwoX0NPTlRST0xfQ0hBTk5FTF9JRCwgY29kZSwgbWVzc2Fn
ZSkKLSAgICAgICAgc2VsZi5fd3JpdGVyLnN0b3AoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQ
T0lOVF9FUlJPUikKLQotICAgIGRlZiBmYWlsX2xvZ2ljYWxfY2hhbm5lbChzZWxmLCBjaGFubmVs
X2lkLCBjb2RlLCBtZXNzYWdlKToKLSAgICAgICAgIiIiRmFpbCBhIGxvZ2ljYWwgY2hhbm5lbC4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hhbm5lbCBpZC4KLSAg
ICAgICAgICAgIGNvZGU6IGRyb3AgcmVhc29uIGNvZGUuCi0gICAgICAgICAgICBtZXNzYWdlOiBk
cm9wIG1lc3NhZ2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
RmFpbGluZyBsb2dpY2FsIGNoYW5uZWwgJWQuLi4nICUgY2hhbm5lbF9pZCkKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgp
Ci0gICAgICAgICAgICBpZiBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0g
ICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFu
bmVsX2lkXQotICAgICAgICAgICAgICAgICMgQ2xvc2UgdGhlIGxvZ2ljYWwgY2hhbm5lbC4gbm90
aWZ5X3dvcmtlcl9kb25lKCkgd2lsbCBiZQotICAgICAgICAgICAgICAgICMgY2FsbGVkIGxhdGVy
IGFuZCBpdCB3aWxsIHNlbmQgRHJvcENoYW5uZWwuCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9k
YXRhLmRyb3BfY29kZSA9IGNvZGUKLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEuZHJvcF9t
ZXNzYWdlID0gbWVzc2FnZQotCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qu
Y29ubmVjdGlvbi5zZXRfcmVhZF9zdGF0ZSgKLSAgICAgICAgICAgICAgICAgICAgX0xvZ2ljYWxD
b25uZWN0aW9uLlNUQVRFX1RFUk1JTkFURUQpCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRh
LnJlcXVlc3Qud3Nfc3RyZWFtLnN0b3Bfc2VuZGluZygpCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIHNlbGYuX3NlbmRfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGUsIG1l
c3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotCi1kZWYgdXNlX211eChyZXF1ZXN0KToKLSAgICBy
ZXR1cm4gaGFzYXR0cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpIGFuZCAoCi0gICAgICAgIHJl
cXVlc3QubXV4X3Byb2Nlc3Nvci5pc19hY3RpdmUoKSkKLQotCi1kZWYgc3RhcnQocmVxdWVzdCwg
ZGlzcGF0Y2hlcik6Ci0gICAgbXV4X2hhbmRsZXIgPSBfTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNw
YXRjaGVyKQotICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgIG11eF9oYW5kbGVyLmFkZF9j
aGFubmVsX3Nsb3RzKF9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAg
ICBtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUoKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjRjMjk5ZWFmM2RmOWZjM2UxNzM4YmNmZTcwNzczMTlmODc2ZTg5NC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3
ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDExOTMgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgot
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJTdGFuZGFs
b25lIFdlYlNvY2tldCBzZXJ2ZXIuCi0KLVVzZSB0aGlzIGZpbGUgdG8gbGF1bmNoIHB5d2Vic29j
a2V0IHdpdGhvdXQgQXBhY2hlIEhUVFAgU2VydmVyLgotCi0KLUJBU0lDIFVTQUdFCi09PT09PT09
PT09PQotCi1HbyB0byB0aGUgc3JjIGRpcmVjdG9yeSBhbmQgcnVuCi0KLSAgJCBweXRob24gbW9k
X3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgWy1wIDx3c19wb3J0Pl0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWy13IDx3ZWJzb2NrX2hhbmRsZXJzPl0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWy1kIDxkb2N1bWVudF9yb290Pl0K
LQotPHdzX3BvcnQ+IGlzIHRoZSBwb3J0IG51bWJlciB0byB1c2UgZm9yIHdzOi8vIGNvbm5lY3Rp
b24uCi0KLTxkb2N1bWVudF9yb290PiBpcyB0aGUgcGF0aCB0byB0aGUgcm9vdCBkaXJlY3Rvcnkg
b2YgSFRNTCBmaWxlcy4KLQotPHdlYnNvY2tfaGFuZGxlcnM+IGlzIHRoZSBwYXRoIHRvIHRoZSBy
b290IGRpcmVjdG9yeSBvZiBXZWJTb2NrZXQgaGFuZGxlcnMuCi1JZiBub3Qgc3BlY2lmaWVkLCA8
ZG9jdW1lbnRfcm9vdD4gd2lsbCBiZSB1c2VkLiBTZWUgX19pbml0X18ucHkgKG9yCi1ydW4gJCBw
eWRvYyBtb2RfcHl3ZWJzb2NrZXQpIGZvciBob3cgdG8gd3JpdGUgV2ViU29ja2V0IGhhbmRsZXJz
LgotCi1Gb3IgbW9yZSBkZXRhaWwgYW5kIG90aGVyIG9wdGlvbnMsIHJ1bgotCi0gICQgcHl0aG9u
IG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IC0taGVscAotCi1vciBzZWUgX2J1aWxkX29w
dGlvbl9wYXJzZXIgbWV0aG9kIGJlbG93LgotCi1Gb3IgdHJvdWJsZSBzaG9vdGluZywgYWRkaW5n
ICItLWxvZ19sZXZlbCBkZWJ1ZyIgbWlnaHQgaGVscCB5b3UuCi0KLQotVFJZIERFTU8KLT09PT09
PT09Ci0KLUdvIHRvIHRoZSBzcmMgZGlyZWN0b3J5IGFuZCBydW4gc3RhbmRhbG9uZS5weSB3aXRo
IC1kIG9wdGlvbiB0byBzZXQgdGhlCi1kb2N1bWVudCByb290IHRvIHRoZSBkaXJlY3RvcnkgY29u
dGFpbmluZyBleGFtcGxlIEhUTUxzIGFuZCBoYW5kbGVycyBsaWtlIHRoaXM6Ci0KLSAgJCBjZCBz
cmMKLSAgJCBQWVRIT05QQVRIPS4gcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5
IC1kIGV4YW1wbGUKLQotdG8gbGF1bmNoIHB5d2Vic29ja2V0IHdpdGggdGhlIHNhbXBsZSBoYW5k
bGVyIGFuZCBodG1sIG9uIHBvcnQgODAuIE9wZW4KLWh0dHA6Ly9sb2NhbGhvc3QvY29uc29sZS5o
dG1sLCBjbGljayB0aGUgY29ubmVjdCBidXR0b24sIHR5cGUgc29tZXRoaW5nIGludG8KLXRoZSB0
ZXh0IGJveCBuZXh0IHRvIHRoZSBzZW5kIGJ1dHRvbiBhbmQgY2xpY2sgdGhlIHNlbmQgYnV0dG9u
LiBJZiBldmVyeXRoaW5nCi1pcyB3b3JraW5nLCB5b3UnbGwgc2VlIHRoZSBtZXNzYWdlIHlvdSB0
eXBlZCBlY2hvZWQgYnkgdGhlIHNlcnZlci4KLQotCi1VU0lORyBUTFMKLT09PT09PT09PQotCi1U
byBydW4gdGhlIHN0YW5kYWxvbmUgc2VydmVyIHdpdGggVExTIHN1cHBvcnQsIHJ1biBpdCB3aXRo
IC10LCAtaywgYW5kIC1jCi1vcHRpb25zLiBXaGVuIFRMUyBpcyBlbmFibGVkLCB0aGUgc3RhbmRh
bG9uZSBzZXJ2ZXIgYWNjZXB0cyBvbmx5IFRMUyBjb25uZWN0aW9uLgotCi1Ob3RlIHRoYXQgd2hl
biBzc2wgbW9kdWxlIGlzIHVzZWQgYW5kIHRoZSBrZXkvY2VydCBsb2NhdGlvbiBpcyBpbmNvcnJl
Y3QsCi1UTFMgY29ubmVjdGlvbiBzaWxlbnRseSBmYWlscyB3aGlsZSBweU9wZW5TU0wgZmFpbHMg
b24gc3RhcnR1cC4KLQotRXhhbXBsZToKLQotICAkIFBZVEhPTlBBVEg9LiBweXRob24gbW9kX3B5
d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgXAotICAgICAgICAtZCBleGFtcGxlIFwKLSAgICAgICAg
LXAgMTA0NDMgXAotICAgICAgICAtdCBcCi0gICAgICAgIC1jIC4uL3Rlc3QvY2VydC9jZXJ0LnBl
bSBcCi0gICAgICAgIC1rIC4uL3Rlc3QvY2VydC9rZXkucGVtIFwKLQotTm90ZSB0aGF0IHdoZW4g
cGFzc2luZyBhIHJlbGF0aXZlIHBhdGggdG8gLWMgYW5kIC1rIG9wdGlvbiwgaXQgd2lsbCBiZSBy
ZXNvbHZlZAotdXNpbmcgdGhlIGRvY3VtZW50IHJvb3QgZGlyZWN0b3J5IGFzIHRoZSBiYXNlLgot
Ci0KLVVTSU5HIENMSUVOVCBBVVRIRU5USUNBVElPTgotPT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0KLVRvIHJ1biB0aGUgc3RhbmRhbG9uZSBzZXJ2ZXIgd2l0aCBUTFMgY2xpZW50IGF1dGhl
bnRpY2F0aW9uIHN1cHBvcnQsIHJ1biBpdCB3aXRoCi0tLXRscy1jbGllbnQtYXV0aCBhbmQgLS10
bHMtY2xpZW50LWNhIG9wdGlvbnMgaW4gYWRkaXRpb24gdG8gb25lcyByZXF1aXJlZCBmb3IKLVRM
UyBzdXBwb3J0LgotCi1FeGFtcGxlOgotCi0gICQgUFlUSE9OUEFUSD0uIHB5dGhvbiBtb2RfcHl3
ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSAtZCBleGFtcGxlIC1wIDEwNDQzIC10IFwKLSAgICAgICAg
LWMgLi4vdGVzdC9jZXJ0L2NlcnQucGVtIC1rIC4uL3Rlc3QvY2VydC9rZXkucGVtIFwKLSAgICAg
ICAgLS10bHMtY2xpZW50LWF1dGggXAotICAgICAgICAtLXRscy1jbGllbnQtY2E9Li4vdGVzdC9j
ZXJ0L2NhY2VydC5wZW0KLQotTm90ZSB0aGF0IHdoZW4gcGFzc2luZyBhIHJlbGF0aXZlIHBhdGgg
dG8gLS10bHMtY2xpZW50LWNhIG9wdGlvbiwgaXQgd2lsbCBiZQotcmVzb2x2ZWQgdXNpbmcgdGhl
IGRvY3VtZW50IHJvb3QgZGlyZWN0b3J5IGFzIHRoZSBiYXNlLgotCi0KLUNPTkZJR1VSQVRJT04g
RklMRQotPT09PT09PT09PT09PT09PT09Ci0KLVlvdSBjYW4gYWxzbyB3cml0ZSBhIGNvbmZpZ3Vy
YXRpb24gZmlsZSBhbmQgdXNlIGl0IGJ5IHNwZWNpZnlpbmcgdGhlIHBhdGggdG8KLXRoZSBjb25m
aWd1cmF0aW9uIGZpbGUgYnkgLS1jb25maWcgb3B0aW9uLiBQbGVhc2Ugd3JpdGUgYSBjb25maWd1
cmF0aW9uIGZpbGUKLWZvbGxvd2luZyB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgUHl0aG9uIENv
bmZpZ1BhcnNlciBsaWJyYXJ5LiBOYW1lIG9mIGVhY2gKLWVudHJ5IG11c3QgYmUgdGhlIGxvbmcg
dmVyc2lvbiBhcmd1bWVudCBuYW1lLiBFLmcuIHRvIHNldCBsb2cgbGV2ZWwgdG8gZGVidWcsCi1h
ZGQgdGhlIGZvbGxvd2luZyBsaW5lOgotCi1sb2dfbGV2ZWw9ZGVidWcKLQotRm9yIG9wdGlvbnMg
d2hpY2ggZG9lc24ndCB0YWtlIHZhbHVlLCBwbGVhc2UgYWRkIHNvbWUgZmFrZSB2YWx1ZS4gRS5n
LiBmb3IKLS0tdGxzIG9wdGlvbiwgYWRkIHRoZSBmb2xsb3dpbmcgbGluZToKLQotdGxzPVRydWUK
LQotTm90ZSB0aGF0IHRscyB3aWxsIGJlIGVuYWJsZWQgZXZlbiBpZiB5b3Ugd3JpdGUgdGxzPUZh
bHNlIGFzIHRoZSB2YWx1ZSBwYXJ0IGlzCi1mYWtlLgotCi1XaGVuIGJvdGggYSBjb21tYW5kIGxp
bmUgYXJndW1lbnQgYW5kIGEgY29uZmlndXJhdGlvbiBmaWxlIGVudHJ5IGFyZSBzZXQgZm9yCi10
aGUgc2FtZSBjb25maWd1cmF0aW9uIGl0ZW0sIHRoZSBjb21tYW5kIGxpbmUgdmFsdWUgd2lsbCBv
dmVycmlkZSBvbmUgaW4gdGhlCi1jb25maWd1cmF0aW9uIGZpbGUuCi0KLQotVEhSRUFESU5HCi09
PT09PT09PT0KLQotVGhpcyBzZXJ2ZXIgaXMgZGVyaXZlZCBmcm9tIFNvY2tldFNlcnZlci5UaHJl
YWRpbmdNaXhJbi4gSGVuY2UgYSB0aHJlYWQgaXMKLXVzZWQgZm9yIGVhY2ggcmVxdWVzdC4KLQot
Ci1TRUNVUklUWSBXQVJOSU5HCi09PT09PT09PT09PT09PT09Ci0KLVRoaXMgdXNlcyBDR0lIVFRQ
U2VydmVyIGFuZCBDR0lIVFRQU2VydmVyIGlzIG5vdCBzZWN1cmUuCi1JdCBtYXkgZXhlY3V0ZSBh
cmJpdHJhcnkgUHl0aG9uIGNvZGUgb3IgZXh0ZXJuYWwgcHJvZ3JhbXMuIEl0IHNob3VsZCBub3Qg
YmUKLXVzZWQgb3V0c2lkZSBhIGZpcmV3YWxsLgotIiIiCi0KLWltcG9ydCBCYXNlSFRUUFNlcnZl
cgotaW1wb3J0IENHSUhUVFBTZXJ2ZXIKLWltcG9ydCBTaW1wbGVIVFRQU2VydmVyCi1pbXBvcnQg
U29ja2V0U2VydmVyCi1pbXBvcnQgQ29uZmlnUGFyc2VyCi1pbXBvcnQgYmFzZTY0Ci1pbXBvcnQg
aHR0cGxpYgotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBsb2dnaW5nLmhhbmRsZXJzCi1pbXBvcnQg
b3B0cGFyc2UKLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc2VsZWN0Ci1pbXBvcnQgc29j
a2V0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdGltZQotCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
ZGlzcGF0Y2gKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBodHRwX2hlYWRlcl91dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tl
dCBpbXBvcnQgbWVtb3JpemluZ2ZpbGUKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGls
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC54aHJfYmVuY2htYXJrX2hhbmRsZXIgaW1wb3J0IFhIUkJl
bmNobWFya0hhbmRsZXIKLQotCi1fREVGQVVMVF9MT0dfTUFYX0JZVEVTID0gMTAyNCAqIDI1Ngot
X0RFRkFVTFRfTE9HX0JBQ0tVUF9DT1VOVCA9IDUKLQotX0RFRkFVTFRfUkVRVUVTVF9RVUVVRV9T
SVpFID0gMTI4Ci0KLSMgMTAyNCBpcyBwcmFjdGljYWxseSBsYXJnZSBlbm91Z2ggdG8gY29udGFp
biBXZWJTb2NrZXQgaGFuZHNoYWtlIGxpbmVzLgotX01BWF9NRU1PUklaRURfTElORVMgPSAxMDI0
Ci0KLSMgQ29uc3RhbnRzIGZvciB0aGUgLS10bHNfbW9kdWxlIGZsYWcuCi1fVExTX0JZX1NUQU5E
QVJEX01PRFVMRSA9ICdzc2wnCi1fVExTX0JZX1BZT1BFTlNTTCA9ICdweW9wZW5zc2wnCi0KLQot
Y2xhc3MgX1N0YW5kYWxvbmVDb25uZWN0aW9uKG9iamVjdCk6Ci0gICAgIiIiTWltaWMgbW9kX3B5
dGhvbiBtcF9jb25uLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3RfaGFuZGxl
cik6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVyOiBBIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyIGlu
c3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIgPSBy
ZXF1ZXN0X2hhbmRsZXIKLQotICAgIGRlZiBnZXRfbG9jYWxfYWRkcihzZWxmKToKLSAgICAgICAg
IiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ubG9jYWxfYWRkci4iIiIKLQotICAgICAgICByZXR1
cm4gKHNlbGYuX3JlcXVlc3RfaGFuZGxlci5zZXJ2ZXIuc2VydmVyX25hbWUsCi0gICAgICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnNlcnZlci5zZXJ2ZXJfcG9ydCkKLSAgICBsb2Nh
bF9hZGRyID0gcHJvcGVydHkoZ2V0X2xvY2FsX2FkZHIpCi0KLSAgICBkZWYgZ2V0X3JlbW90ZV9h
ZGRyKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgbXBfY29ubi5yZW1vdGVfYWRk
ci4KLQotICAgICAgICBTZXR0aW5nIHRoZSBwcm9wZXJ0eSBpbiBfX2luaXRfXyB3b24ndCB3b3Jr
IGJlY2F1c2UgdGhlIHJlcXVlc3QKLSAgICAgICAgaGFuZGxlciBpcyBub3QgaW5pdGlhbGl6ZWQg
eWV0IHRoZXJlLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIuY2xp
ZW50X2FkZHJlc3MKLSAgICByZW1vdGVfYWRkciA9IHByb3BlcnR5KGdldF9yZW1vdGVfYWRkcikK
LQotICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiTWltaWMgbXBfY29ubi53
cml0ZSgpLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIud2ZpbGUu
d3JpdGUoZGF0YSkKLQotICAgIGRlZiByZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIk1p
bWljIG1wX2Nvbm4ucmVhZCgpLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hh
bmRsZXIucmZpbGUucmVhZChsZW5ndGgpCi0KLSAgICBkZWYgZ2V0X21lbW9yaXplZF9saW5lcyhz
ZWxmKToKLSAgICAgICAgIiIiR2V0IG1lbW9yaXplZCBsaW5lcy4iIiIKLQotICAgICAgICByZXR1
cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnJmaWxlLmdldF9tZW1vcml6ZWRfbGluZXMoKQotCi0K
LWNsYXNzIF9TdGFuZGFsb25lUmVxdWVzdChvYmplY3QpOgotICAgICIiIk1pbWljIG1vZF9weXRo
b24gcmVxdWVzdC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0X2hhbmRsZXIs
IHVzZV90bHMpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIHJlcXVlc3RfaGFuZGxlcjogQSBXZWJTb2NrZXRSZXF1ZXN0SGFu
ZGxlciBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRp
bC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdF9oYW5kbGVy
ID0gcmVxdWVzdF9oYW5kbGVyCi0gICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IF9TdGFuZGFsb25l
Q29ubmVjdGlvbihyZXF1ZXN0X2hhbmRsZXIpCi0gICAgICAgIHNlbGYuX3VzZV90bHMgPSB1c2Vf
dGxzCi0gICAgICAgIHNlbGYuaGVhZGVyc19pbiA9IHJlcXVlc3RfaGFuZGxlci5oZWFkZXJzCi0K
LSAgICBkZWYgZ2V0X3VyaShzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIHJlcXVl
c3QudXJpLgotCi0gICAgICAgIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIHJhdyBkYXRhIGF0IHRo
ZSBSZXF1ZXN0LVVSSSBwYXJ0IG9mIHRoZQotICAgICAgICBSZXF1ZXN0LUxpbmUsIHdoaWxlIHRo
ZSB1cmkgbWV0aG9kIG9uIHRoZSByZXF1ZXN0IG9iamVjdCBvZiBtb2RfcHl0aG9uCi0gICAgICAg
IHJldHVybnMgdGhlIHBhdGggcG9ydGlvbiBhZnRlciBwYXJzaW5nIHRoZSByYXcgZGF0YS4gVGhp
cyBiZWhhdmlvciBpcwotICAgICAgICBrZXB0IGZvciBjb21wYXRpYmlsaXR5LgotICAgICAgICAi
IiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnBhdGgKLSAgICB1cmkg
PSBwcm9wZXJ0eShnZXRfdXJpKQotCi0gICAgZGVmIGdldF91bnBhcnNlZF91cmkoc2VsZik6Ci0g
ICAgICAgICIiIkdldHRlciB0byBtaW1pYyByZXF1ZXN0LnVucGFyc2VkX3VyaS4iIiIKLQotICAg
ICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnBhdGgKLSAgICB1bnBhcnNlZF91cmkg
PSBwcm9wZXJ0eShnZXRfdW5wYXJzZWRfdXJpKQotCi0gICAgZGVmIGdldF9tZXRob2Qoc2VsZik6
Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyByZXF1ZXN0Lm1ldGhvZC4iIiIKLQotICAgICAg
ICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLmNvbW1hbmQKLSAgICBtZXRob2QgPSBwcm9w
ZXJ0eShnZXRfbWV0aG9kKQotCi0gICAgZGVmIGdldF9wcm90b2NvbChzZWxmKToKLSAgICAgICAg
IiIiR2V0dGVyIHRvIG1pbWljIHJlcXVlc3QucHJvdG9jb2wuIiIiCi0KLSAgICAgICAgcmV0dXJu
IHNlbGYuX3JlcXVlc3RfaGFuZGxlci5yZXF1ZXN0X3ZlcnNpb24KLSAgICBwcm90b2NvbCA9IHBy
b3BlcnR5KGdldF9wcm90b2NvbCkKLQotICAgIGRlZiBpc19odHRwcyhzZWxmKToKLSAgICAgICAg
IiIiTWltaWMgcmVxdWVzdC5pc19odHRwcygpLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl91
c2VfdGxzCi0KLQotZGVmIF9pbXBvcnRfc3NsKCk6Ci0gICAgZ2xvYmFsIHNzbAotICAgIHRyeToK
LSAgICAgICAgaW1wb3J0IHNzbAotICAgICAgICByZXR1cm4gVHJ1ZQotICAgIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLQotZGVmIF9pbXBvcnRfcHlvcGVuc3Ns
KCk6Ci0gICAgZ2xvYmFsIE9wZW5TU0wKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBPcGVuU1NM
LlNTTAotICAgICAgICByZXR1cm4gVHJ1ZQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAg
ICAgcmV0dXJuIEZhbHNlCi0KLQotY2xhc3MgX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uKG9iamVj
dCk6Ci0gICAgIiIiQSB3cmFwcGVyIGNsYXNzIGZvciBPcGVuU1NMLlNTTC5Db25uZWN0aW9uIHRv
Ci0gICAgLSBwcm92aWRlIG1ha2VmaWxlIG1ldGhvZCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIGJ5
IHRoZSBjbGFzcwotICAgIC0gdHdlYWsgc2h1dGRvd24gbWV0aG9kIHNpbmNlIE9wZW5TU0wuU1NM
LkNvbm5lY3Rpb24uc2h1dGRvd24gZG9lc24ndAotICAgICAgYWNjZXB0IHRoZSAiaG93IiBhcmd1
bWVudC4KLSAgICAtIGNvbnZlcnQgU3lzQ2FsbEVycm9yIGV4Y2VwdGlvbnMgdGhhdCBpdHMgcmVj
diBtZXRob2QgbWF5IHJhaXNlIGludG8gYQotICAgICAgcmV0dXJuIHZhbHVlIG9mICcnLCBtZWFu
aW5nIEVPRi4gV2UgY2Fubm90IG92ZXJ3cml0ZSB0aGUgcmVjdiBtZXRob2Qgb24KLSAgICAgIHNl
bGYuX2Nvbm5lY3Rpb24gc2luY2UgaXQncyBpbW11dGFibGUuCi0gICAgIiIiCi0KLSAgICBfT1ZF
UlJJRERFTl9BVFRSSUJVVEVTID0gWydfY29ubmVjdGlvbicsICdtYWtlZmlsZScsICdzaHV0ZG93
bicsICdyZWN2J10KLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25uZWN0aW9uKToKLSAgICAg
ICAgc2VsZi5fY29ubmVjdGlvbiA9IGNvbm5lY3Rpb24KLQotICAgIGRlZiBfX2dldGF0dHJpYnV0
ZV9fKHNlbGYsIG5hbWUpOgotICAgICAgICBpZiBuYW1lIGluIF9TdGFuZGFsb25lU1NMQ29ubmVj
dGlvbi5fT1ZFUlJJRERFTl9BVFRSSUJVVEVTOgotICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5f
X2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpCi0gICAgICAgIHJldHVybiBzZWxmLl9jb25uZWN0
aW9uLl9fZ2V0YXR0cmlidXRlX18obmFtZSkKLQotICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBu
YW1lLCB2YWx1ZSk6Ci0gICAgICAgIGlmIG5hbWUgaW4gX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9u
Ll9PVkVSUklEREVOX0FUVFJJQlVURVM6Ci0gICAgICAgICAgICByZXR1cm4gb2JqZWN0Ll9fc2V0
YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKQotICAgICAgICByZXR1cm4gc2VsZi5fY29ubmVjdGlv
bi5fX3NldGF0dHJfXyhuYW1lLCB2YWx1ZSkKLQotICAgIGRlZiBtYWtlZmlsZShzZWxmLCBtb2Rl
PSdyJywgYnVmc2l6ZT0tMSk6Ci0gICAgICAgIHJldHVybiBzb2NrZXQuX2ZpbGVvYmplY3Qoc2Vs
ZiwgbW9kZSwgYnVmc2l6ZSkKLQotICAgIGRlZiBzaHV0ZG93bihzZWxmLCB1bnVzZWRfaG93KToK
LSAgICAgICAgc2VsZi5fY29ubmVjdGlvbi5zaHV0ZG93bigpCi0KLSAgICBkZWYgcmVjdihzZWxm
LCBidWZzaXplLCBmbGFncz0wKToKLSAgICAgICAgaWYgZmxhZ3MgIT0gMDoKLSAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ05vbi16ZXJvIGZsYWdzIG5vdCBhbGxvd2VkJykKLQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fY29ubmVjdGlvbi5yZWN2KGJ1ZnNpemUp
Ci0gICAgICAgIGV4Y2VwdCBPcGVuU1NMLlNTTC5TeXNDYWxsRXJyb3IsIChlcnIsIG1lc3NhZ2Up
OgotICAgICAgICAgICAgaWYgZXJyID09IC0xOgotICAgICAgICAgICAgICAgICMgU3VwcHJlc3Mg
InVuZXhwZWN0ZWQgRU9GIiBleGNlcHRpb24uIFNlZSB0aGUgT3BlblNTTCBkb2N1bWVudAotICAg
ICAgICAgICAgICAgICMgZm9yIFNTTF9nZXRfZXJyb3IuCi0gICAgICAgICAgICAgICAgcmV0dXJu
ICcnCi0gICAgICAgICAgICByYWlzZQotCi0KLWRlZiBfYWxpYXNfaGFuZGxlcnMoZGlzcGF0Y2hl
ciwgd2Vic29ja19oYW5kbGVyc19tYXBfZmlsZSk6Ci0gICAgIiIiU2V0IGFsaWFzZXMgc3BlY2lm
aWVkIGluIHdlYnNvY2tfaGFuZGxlcl9tYXBfZmlsZSBpbiBkaXNwYXRjaGVyLgotCi0gICAgQXJn
czoKLSAgICAgICAgZGlzcGF0Y2hlcjogZGlzcGF0Y2guRGlzcGF0Y2hlciBpbnN0YW5jZQotICAg
ICAgICB3ZWJzb2NrX2hhbmRsZXJfbWFwX2ZpbGU6IGFsaWFzIG1hcCBmaWxlCi0gICAgIiIiCi0K
LSAgICBmcCA9IG9wZW4od2Vic29ja19oYW5kbGVyc19tYXBfZmlsZSkKLSAgICB0cnk6Ci0gICAg
ICAgIGZvciBsaW5lIGluIGZwOgotICAgICAgICAgICAgaWYgbGluZVswXSA9PSAnIycgb3IgbGlu
ZS5pc3NwYWNlKCk6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSBy
ZS5tYXRjaCgnKFxTKylccysoXFMrKScsIGxpbmUpCi0gICAgICAgICAgICBpZiBub3QgbToKLSAg
ICAgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoJ1dyb25nIGZvcm1hdCBpbiBtYXAgZmlsZTon
ICsgbGluZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIGRpc3BhdGNoZXIuYWRkX3Jlc291cmNlX3BhdGhfYWxpYXMoCi0gICAgICAg
ICAgICAgICAgICAgIG0uZ3JvdXAoMSksIG0uZ3JvdXAoMikpCi0gICAgICAgICAgICBleGNlcHQg
ZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5l
cnJvcihzdHIoZSkpCi0gICAgZmluYWxseToKLSAgICAgICAgZnAuY2xvc2UoKQotCi0KLWNsYXNz
IFdlYlNvY2tldFNlcnZlcihTb2NrZXRTZXJ2ZXIuVGhyZWFkaW5nTWl4SW4sIEJhc2VIVFRQU2Vy
dmVyLkhUVFBTZXJ2ZXIpOgotICAgICIiIkhUVFBTZXJ2ZXIgc3BlY2lhbGl6ZWQgZm9yIFdlYlNv
Y2tldC4iIiIKLQotICAgICMgT3ZlcnJpZGVzIFNvY2tldFNlcnZlci5UaHJlYWRpbmdNaXhJbi5k
YWVtb25fdGhyZWFkcwotICAgIGRhZW1vbl90aHJlYWRzID0gVHJ1ZQotICAgICMgT3ZlcnJpZGVz
IEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIuYWxsb3dfcmV1c2VfYWRkcmVzcwotICAgIGFsbG93
X3JldXNlX2FkZHJlc3MgPSBUcnVlCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucyk6
Ci0gICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNlcnZlci5UQ1BTZXJ2ZXIuX19pbml0X18gdG8g
c2V0IFNTTCBlbmFibGVkCi0gICAgICAgIHNvY2tldCBvYmplY3QgdG8gc2VsZi5zb2NrZXQgYmVm
b3JlIHNlcnZlcl9iaW5kIGFuZCBzZXJ2ZXJfYWN0aXZhdGUsCi0gICAgICAgIGlmIG5lY2Vzc2Fy
eS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBTaGFyZSBhIERpc3BhdGNoZXIgYW1vbmcgcmVx
dWVzdCBoYW5kbGVycyB0byBzYXZlIHRpbWUgZm9yCi0gICAgICAgICMgaW5zdGFudGlhdGlvbi4g
IERpc3BhdGNoZXIgY2FuIGJlIHNoYXJlZCBiZWNhdXNlIGl0IGlzIHRocmVhZC1zYWZlLgotICAg
ICAgICBvcHRpb25zLmRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKAotICAgICAgICAg
ICAgb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJzLAotICAgICAgICAgICAgb3B0aW9ucy5zY2FuX2Rp
ciwKLSAgICAgICAgICAgIG9wdGlvbnMuYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcikK
LSAgICAgICAgaWYgb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlOgotICAgICAgICAg
ICAgX2FsaWFzX2hhbmRsZXJzKG9wdGlvbnMuZGlzcGF0Y2hlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcHRpb25zLndlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUpCi0gICAgICAgIHdh
cm5pbmdzID0gb3B0aW9ucy5kaXNwYXRjaGVyLnNvdXJjZV93YXJuaW5ncygpCi0gICAgICAgIGlm
IHdhcm5pbmdzOgotICAgICAgICAgICAgZm9yIHdhcm5pbmcgaW4gd2FybmluZ3M6Ci0gICAgICAg
ICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCdXYXJuaW5nIGluIHNvdXJjZSBsb2FkaW5nOiAlcycg
JSB3YXJuaW5nKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dl
cihzZWxmKQotCi0gICAgICAgIHNlbGYucmVxdWVzdF9xdWV1ZV9zaXplID0gb3B0aW9ucy5yZXF1
ZXN0X3F1ZXVlX3NpemUKLSAgICAgICAgc2VsZi5fX3dzX2lzX3NodXRfZG93biA9IHRocmVhZGlu
Zy5FdmVudCgpCi0gICAgICAgIHNlbGYuX193c19zZXJ2aW5nID0gRmFsc2UKLQotICAgICAgICBT
b2NrZXRTZXJ2ZXIuQmFzZVNlcnZlci5fX2luaXRfXygKLSAgICAgICAgICAgIHNlbGYsIChvcHRp
b25zLnNlcnZlcl9ob3N0LCBvcHRpb25zLnBvcnQpLCBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlcikK
LQotICAgICAgICAjIEV4cG9zZSB0aGUgb3B0aW9ucyBvYmplY3QgdG8gYWxsb3cgaGFuZGxlciBv
YmplY3RzIGFjY2VzcyBpdC4gV2UgbmFtZQotICAgICAgICAjIGl0IHdpdGggd2Vic29ja2V0XyBw
cmVmaXggdG8gYXZvaWQgY29uZmxpY3QuCi0gICAgICAgIHNlbGYud2Vic29ja2V0X3NlcnZlcl9v
cHRpb25zID0gb3B0aW9ucwotCi0gICAgICAgIHNlbGYuX2NyZWF0ZV9zb2NrZXRzKCkKLSAgICAg
ICAgc2VsZi5zZXJ2ZXJfYmluZCgpCi0gICAgICAgIHNlbGYuc2VydmVyX2FjdGl2YXRlKCkKLQot
ICAgIGRlZiBfY3JlYXRlX3NvY2tldHMoc2VsZik6Ci0gICAgICAgIHNlbGYuc2VydmVyX25hbWUs
IHNlbGYuc2VydmVyX3BvcnQgPSBzZWxmLnNlcnZlcl9hZGRyZXNzCi0gICAgICAgIHNlbGYuX3Nv
Y2tldHMgPSBbXQotICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJfbmFtZToKLSAgICAgICAgICAg
ICMgT24gcGxhdGZvcm1zIHRoYXQgZG9lc24ndCBzdXBwb3J0IElQdjYsIHRoZSBmaXJzdCBiaW5k
IGZhaWxzLgotICAgICAgICAgICAgIyBPbiBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0cyBJUHY2Ci0g
ICAgICAgICAgICAjIC0gSWYgaXQgYmluZHMgYm90aCBJUHY0IGFuZCBJUHY2IG9uIGNhbGwgd2l0
aCBBRl9JTkVUNiwgdGhlCi0gICAgICAgICAgICAjICAgZmlyc3QgYmluZCBzdWNjZWVkcyBhbmQg
dGhlIHNlY29uZCBmYWlscyAod2UnbGwgc2VlICdBZGRyZXNzCi0gICAgICAgICAgICAjICAgYWxy
ZWFkeSBpbiB1c2UnIGVycm9yKS4KLSAgICAgICAgICAgICMgLSBJZiBpdCBiaW5kcyBvbmx5IElQ
djYgb24gY2FsbCB3aXRoIEFGX0lORVQ2LCBib3RoIGNhbGwgYXJlCi0gICAgICAgICAgICAjICAg
ZXhwZWN0ZWQgdG8gc3VjY2VlZCB0byBsaXN0ZW4gYm90aCBwcm90b2NvbC4KLSAgICAgICAgICAg
IGFkZHJpbmZvX2FycmF5ID0gWwotICAgICAgICAgICAgICAgIChzb2NrZXQuQUZfSU5FVDYsIHNv
Y2tldC5TT0NLX1NUUkVBTSwgJycsICcnLCAnJyksCi0gICAgICAgICAgICAgICAgKHNvY2tldC5B
Rl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0sICcnLCAnJywgJycpXQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgYWRkcmluZm9fYXJyYXkgPSBzb2NrZXQuZ2V0YWRkcmluZm8oc2VsZi5zZXJ2
ZXJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuc2VydmVyX3BvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzb2NrZXQuQUZfVU5TUEVDLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc29ja2V0LlNPQ0tfU1RSRUFNLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LklQUFJPVE9fVENQKQotICAg
ICAgICBmb3IgYWRkcmluZm8gaW4gYWRkcmluZm9fYXJyYXk6Ci0gICAgICAgICAgICBzZWxmLl9s
b2dnZXIuaW5mbygnQ3JlYXRlIHNvY2tldCBvbjogJXInLCBhZGRyaW5mbykKLSAgICAgICAgICAg
IGZhbWlseSwgc29ja3R5cGUsIHByb3RvLCBjYW5vbm5hbWUsIHNvY2thZGRyID0gYWRkcmluZm8K
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzb2NrZXRfID0gc29ja2V0LnNvY2tl
dChmYW1pbHksIHNvY2t0eXBlKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAg
ICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2tpcCBieSBmYWlsdXJlOiAlcicsIGUp
Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHNlcnZlcl9vcHRpb25zID0g
c2VsZi53ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMKLSAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRp
b25zLnVzZV90bHM6Ci0gICAgICAgICAgICAgICAgIyBGb3IgdGhlIGNhc2Ugb2YgX0hBU19PUEVO
X1NTTCwgd2UgZG8gd3JhcHBlciBzZXR1cCBhZnRlcgotICAgICAgICAgICAgICAgICMgYWNjZXB0
LgotICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19C
WV9TVEFOREFSRF9NT0RVTEU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25z
LnRsc19jbGllbnRfYXV0aDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRp
b25zLnRsc19jbGllbnRfY2VydF9vcHRpb25hbDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGllbnRfY2VydF8gPSBzc2wuQ0VSVF9PUFRJT05BTAotICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfY2VydF8gPSBzc2wu
Q0VSVF9SRVFVSVJFRAotICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
ICAgICAgICAgY2xpZW50X2NlcnRfID0gc3NsLkNFUlRfTk9ORQotICAgICAgICAgICAgICAgICAg
ICBzb2NrZXRfID0gc3NsLndyYXBfc29ja2V0KHNvY2tldF8sCi0gICAgICAgICAgICAgICAgICAg
ICAgICBrZXlmaWxlPXNlcnZlcl9vcHRpb25zLnByaXZhdGVfa2V5LAotICAgICAgICAgICAgICAg
ICAgICAgICAgY2VydGZpbGU9c2VydmVyX29wdGlvbnMuY2VydGlmaWNhdGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBzc2xfdmVyc2lvbj1zc2wuUFJPVE9DT0xfU1NMdjIzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgY2FfY2VydHM9c2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9jYSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNlcnRfcmVxcz1jbGllbnRfY2VydF8sCi0gICAgICAgICAg
ICAgICAgICAgICAgICBkb19oYW5kc2hha2Vfb25fY29ubmVjdD1GYWxzZSkKLSAgICAgICAgICAg
IHNlbGYuX3NvY2tldHMuYXBwZW5kKChzb2NrZXRfLCBhZGRyaW5mbykpCi0KLSAgICBkZWYgc2Vy
dmVyX2JpbmQoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNlcnZlci5UQ1BTZXJ2
ZXIuc2VydmVyX2JpbmQgdG8gZW5hYmxlIG11bHRpcGxlCi0gICAgICAgIHNvY2tldHMgYmluZC4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgZmFpbGVkX3NvY2tldHMgPSBbXQotCi0gICAgICAgIGZv
ciBzb2NrZXRpbmZvIGluIHNlbGYuX3NvY2tldHM6Ci0gICAgICAgICAgICBzb2NrZXRfLCBhZGRy
aW5mbyA9IHNvY2tldGluZm8KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdCaW5kIG9u
OiAlcicsIGFkZHJpbmZvKQotICAgICAgICAgICAgaWYgc2VsZi5hbGxvd19yZXVzZV9hZGRyZXNz
OgotICAgICAgICAgICAgICAgIHNvY2tldF8uc2V0c29ja29wdChzb2NrZXQuU09MX1NPQ0tFVCwg
c29ja2V0LlNPX1JFVVNFQUREUiwgMSkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICBzb2NrZXRfLmJpbmQoc2VsZi5zZXJ2ZXJfYWRkcmVzcykKLSAgICAgICAgICAgIGV4Y2VwdCBF
eGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NraXAgYnkg
ZmFpbHVyZTogJXInLCBlKQotICAgICAgICAgICAgICAgIHNvY2tldF8uY2xvc2UoKQotICAgICAg
ICAgICAgICAgIGZhaWxlZF9zb2NrZXRzLmFwcGVuZChzb2NrZXRpbmZvKQotICAgICAgICAgICAg
aWYgc2VsZi5zZXJ2ZXJfYWRkcmVzc1sxXSA9PSAwOgotICAgICAgICAgICAgICAgICMgVGhlIG9w
ZXJhdGluZyBzeXN0ZW0gYXNzaWducyB0aGUgYWN0dWFsIHBvcnQgbnVtYmVyIGZvciBwb3J0Ci0g
ICAgICAgICAgICAgICAgIyBudW1iZXIgMC4gVGhpcyBjYXNlLCB0aGUgc2Vjb25kIGFuZCBsYXRl
ciBzb2NrZXRzIHNob3VsZCB1c2UKLSAgICAgICAgICAgICAgICAjIHRoZSBzYW1lIHBvcnQgbnVt
YmVyLiBBbHNvIHNlbGYuc2VydmVyX3BvcnQgaXMgcmV3cml0dGVuCi0gICAgICAgICAgICAgICAg
IyBiZWNhdXNlIGl0IGlzIGV4cG9ydGVkLCBhbmQgd2lsbCBiZSB1c2VkIGJ5IGV4dGVybmFsIGNv
ZGUuCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfYWRkcmVzcyA9ICgKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5zZXJ2ZXJfbmFtZSwgc29ja2V0Xy5nZXRzb2NrbmFtZSgpWzFdKQotICAg
ICAgICAgICAgICAgIHNlbGYuc2VydmVyX3BvcnQgPSBzZWxmLnNlcnZlcl9hZGRyZXNzWzFdCi0g
ICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1BvcnQgJXIgaXMgYXNzaWduZWQnLCBz
ZWxmLnNlcnZlcl9wb3J0KQotCi0gICAgICAgIGZvciBzb2NrZXRpbmZvIGluIGZhaWxlZF9zb2Nr
ZXRzOgotICAgICAgICAgICAgc2VsZi5fc29ja2V0cy5yZW1vdmUoc29ja2V0aW5mbykKLQotICAg
IGRlZiBzZXJ2ZXJfYWN0aXZhdGUoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNl
cnZlci5UQ1BTZXJ2ZXIuc2VydmVyX2FjdGl2YXRlIHRvIGVuYWJsZSBtdWx0aXBsZQotICAgICAg
ICBzb2NrZXRzIGxpc3Rlbi4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZmFpbGVkX3NvY2tldHMg
PSBbXQotCi0gICAgICAgIGZvciBzb2NrZXRpbmZvIGluIHNlbGYuX3NvY2tldHM6Ci0gICAgICAg
ICAgICBzb2NrZXRfLCBhZGRyaW5mbyA9IHNvY2tldGluZm8KLSAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5pbmZvKCdMaXN0ZW4gb246ICVyJywgYWRkcmluZm8pCi0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgc29ja2V0Xy5saXN0ZW4oc2VsZi5yZXF1ZXN0X3F1ZXVlX3NpemUpCi0g
ICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5pbmZvKCdTa2lwIGJ5IGZhaWx1cmU6ICVyJywgZSkKLSAgICAgICAgICAgICAgICBzb2Nr
ZXRfLmNsb3NlKCkKLSAgICAgICAgICAgICAgICBmYWlsZWRfc29ja2V0cy5hcHBlbmQoc29ja2V0
aW5mbykKLQotICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBmYWlsZWRfc29ja2V0czoKLSAgICAg
ICAgICAgIHNlbGYuX3NvY2tldHMucmVtb3ZlKHNvY2tldGluZm8pCi0KLSAgICAgICAgaWYgbGVu
KHNlbGYuX3NvY2tldHMpID09IDA6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuY3JpdGljYWwo
Ci0gICAgICAgICAgICAgICAgJ05vIHNvY2tldHMgYWN0aXZhdGVkLiBVc2UgaW5mbyBsb2cgbGV2
ZWwgdG8gc2VlIHRoZSByZWFzb24uJykKLQotICAgIGRlZiBzZXJ2ZXJfY2xvc2Uoc2VsZik6Ci0g
ICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNlcnZlci5UQ1BTZXJ2ZXIuc2VydmVyX2Nsb3NlIHRv
IGVuYWJsZSBtdWx0aXBsZQotICAgICAgICBzb2NrZXRzIGNsb3NlLgotICAgICAgICAiIiIKLQot
ICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBzZWxmLl9zb2NrZXRzOgotICAgICAgICAgICAgc29j
a2V0XywgYWRkcmluZm8gPSBzb2NrZXRpbmZvCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5m
bygnQ2xvc2Ugb246ICVyJywgYWRkcmluZm8pCi0gICAgICAgICAgICBzb2NrZXRfLmNsb3NlKCkK
LQotICAgIGRlZiBmaWxlbm8oc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNlcnZl
ci5UQ1BTZXJ2ZXIuZmlsZW5vLiIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5jcml0aWNhbCgn
Tm90IHN1cHBvcnRlZDogZmlsZW5vJykKLSAgICAgICAgcmV0dXJuIHNlbGYuX3NvY2tldHNbMF1b
MF0uZmlsZW5vKCkKLQotICAgIGRlZiBoYW5kbGVfZXJyb3Ioc2VsZiwgcmVxdWVzdCwgY2xpZW50
X2FkZHJlc3MpOgotICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuaGFuZGxlX2Vycm9y
LiIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5lcnJvcigKLSAgICAgICAgICAgICdFeGNlcHRp
b24gaW4gcHJvY2Vzc2luZyByZXF1ZXN0IGZyb206ICVyXG4lcycsCi0gICAgICAgICAgICBjbGll
bnRfYWRkcmVzcywKLSAgICAgICAgICAgIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAgICAg
ICMgTm90ZTogY2xpZW50X2FkZHJlc3MgaXMgYSB0dXBsZS4KLQotICAgIGRlZiBnZXRfcmVxdWVz
dChzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgVENQU2VydmVyLmdldF9yZXF1ZXN0IHRvIHdy
YXAgT3BlblNTTC5TU0wuQ29ubmVjdGlvbgotICAgICAgICBvYmplY3Qgd2l0aCBfU3RhbmRhbG9u
ZVNTTENvbm5lY3Rpb24gdG8gcHJvdmlkZSBtYWtlZmlsZSBtZXRob2QuIFdlCi0gICAgICAgIGNh
bm5vdCBzdWJzdGl0dXRlIE9wZW5TU0wuU1NMLkNvbm5lY3Rpb24ubWFrZWZpbGUgc2luY2UgaXQn
cyByZWFkb25seQotICAgICAgICBhdHRyaWJ1dGUuCi0gICAgICAgICIiIgotCi0gICAgICAgIGFj
Y2VwdGVkX3NvY2tldCwgY2xpZW50X2FkZHJlc3MgPSBzZWxmLnNvY2tldC5hY2NlcHQoKQotCi0g
ICAgICAgIHNlcnZlcl9vcHRpb25zID0gc2VsZi53ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMKLSAg
ICAgICAgaWYgc2VydmVyX29wdGlvbnMudXNlX3RsczoKLSAgICAgICAgICAgIGlmIHNlcnZlcl9v
cHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEU6Ci0gICAgICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuZG9faGFuZHNo
YWtlKCkKLSAgICAgICAgICAgICAgICBleGNlcHQgc3NsLlNTTEVycm9yLCBlOgotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVyJywgZSkKLSAgICAgICAgICAgICAgICAg
ICAgcmFpc2UKLQotICAgICAgICAgICAgICAgICMgUHJpbnQgY2lwaGVyIGluIHVzZS4gSGFuZHNo
YWtlIGlzIGRvbmUgb24gYWNjZXB0LgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnQ2lwaGVyOiAlcycsIGFjY2VwdGVkX3NvY2tldC5jaXBoZXIoKSkKLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NsaWVudCBjZXJ0OiAlcicsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFjY2VwdGVkX3NvY2tldC5nZXRwZWVyY2VydCgpKQotICAgICAg
ICAgICAgZWxpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfUFlPUEVOU1NM
OgotICAgICAgICAgICAgICAgICMgV2UgY2Fubm90IHByaW50IHRoZSBjaXBoZXIgaW4gdXNlLiBw
eU9wZW5TU0wgZG9lc24ndCBwcm92aWRlCi0gICAgICAgICAgICAgICAgIyBhbnkgbWV0aG9kIHRv
IGZldGNoIHRoYXQuCi0KLSAgICAgICAgICAgICAgICBjdHggPSBPcGVuU1NMLlNTTC5Db250ZXh0
KE9wZW5TU0wuU1NMLlNTTHYyM19NRVRIT0QpCi0gICAgICAgICAgICAgICAgY3R4LnVzZV9wcml2
YXRla2V5X2ZpbGUoc2VydmVyX29wdGlvbnMucHJpdmF0ZV9rZXkpCi0gICAgICAgICAgICAgICAg
Y3R4LnVzZV9jZXJ0aWZpY2F0ZV9maWxlKHNlcnZlcl9vcHRpb25zLmNlcnRpZmljYXRlKQotCi0g
ICAgICAgICAgICAgICAgZGVmIGRlZmF1bHRfY2FsbGJhY2soY29ubiwgY2VydCwgZXJybnVtLCBl
cnJkZXB0aCwgb2spOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2sgPT0gMQotCi0gICAg
ICAgICAgICAgICAgIyBTZWUgdGhlIE9wZW5TU0wgZG9jdW1lbnQgZm9yIFNTTF9DVFhfc2V0X3Zl
cmlmeS4KLSAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2F1dGg6
Ci0gICAgICAgICAgICAgICAgICAgIHZlcmlmeV9tb2RlID0gT3BlblNTTC5TU0wuVkVSSUZZX1BF
RVIKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRf
Y2VydF9vcHRpb25hbDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmeV9tb2RlIHw9IE9w
ZW5TU0wuU1NMLlZFUklGWV9GQUlMX0lGX05PX1BFRVJfQ0VSVAotICAgICAgICAgICAgICAgICAg
ICBjdHguc2V0X3ZlcmlmeSh2ZXJpZnlfbW9kZSwgZGVmYXVsdF9jYWxsYmFjaykKLSAgICAgICAg
ICAgICAgICAgICAgY3R4LmxvYWRfdmVyaWZ5X2xvY2F0aW9ucyhzZXJ2ZXJfb3B0aW9ucy50bHNf
Y2xpZW50X2NhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5vbmUpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgY3R4LnNl
dF92ZXJpZnkoT3BlblNTTC5TU0wuVkVSSUZZX05PTkUsIGRlZmF1bHRfY2FsbGJhY2spCi0KLSAg
ICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQgPSBPcGVuU1NMLlNTTC5Db25uZWN0aW9uKGN0
eCwgYWNjZXB0ZWRfc29ja2V0KQotICAgICAgICAgICAgICAgIGFjY2VwdGVkX3NvY2tldC5zZXRf
YWNjZXB0X3N0YXRlKCkKLQotICAgICAgICAgICAgICAgICMgQ29udmVydCBTU0wgcmVsYXRlZCBl
cnJvciBpbnRvIHNvY2tldC5lcnJvciBzbyB0aGF0Ci0gICAgICAgICAgICAgICAgIyBTb2NrZXRT
ZXJ2ZXIgaWdub3JlcyB0aGVtIGFuZCBrZWVwcyBydW5uaW5nLgotICAgICAgICAgICAgICAgICMK
LSAgICAgICAgICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBDb252ZXJ0IGFsbCBraW5kcyBvZiBl
cnJvcnMuCi0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBhY2NlcHRl
ZF9zb2NrZXQuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgICAgICAgICBleGNlcHQgT3BlblNTTC5T
U0wuRXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgICAgICMgU2V0IGVycm5vIHBhcnQgdG8gMSAo
U1NMX0VSUk9SX1NTTCkgbGlrZSB0aGUgc3NsIG1vZHVsZQotICAgICAgICAgICAgICAgICAgICAj
IGRvZXMuCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXInLCBlKQot
ICAgICAgICAgICAgICAgICAgICByYWlzZSBzb2NrZXQuZXJyb3IoMSwgJyVyJyAlIGUpCi0gICAg
ICAgICAgICAgICAgY2VydCA9IGFjY2VwdGVkX3NvY2tldC5nZXRfcGVlcl9jZXJ0aWZpY2F0ZSgp
Ci0gICAgICAgICAgICAgICAgaWYgY2VydCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgY2VydCBzdWJqZWN0OiAlcicsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0LmdldF9zdWJqZWN0KCkuZ2V0X2Nv
bXBvbmVudHMoKSkKLSAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQgPSBfU3RhbmRhbG9u
ZVNTTENvbm5lY3Rpb24oYWNjZXB0ZWRfc29ja2V0KQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBUTFMgc3VwcG9ydCBtb2R1bGUgaXMgYXZh
aWxhYmxlJykKLQotICAgICAgICByZXR1cm4gYWNjZXB0ZWRfc29ja2V0LCBjbGllbnRfYWRkcmVz
cwotCi0gICAgZGVmIHNlcnZlX2ZvcmV2ZXIoc2VsZiwgcG9sbF9pbnRlcnZhbD0wLjUpOgotICAg
ICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuQmFzZVNlcnZlci5zZXJ2ZV9mb3JldmVyLiIi
IgotCi0gICAgICAgIHNlbGYuX193c19zZXJ2aW5nID0gVHJ1ZQotICAgICAgICBzZWxmLl9fd3Nf
aXNfc2h1dF9kb3duLmNsZWFyKCkKLSAgICAgICAgaGFuZGxlX3JlcXVlc3QgPSBzZWxmLmhhbmRs
ZV9yZXF1ZXN0Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19oYW5kbGVfcmVxdWVzdF9ub2Js
b2NrJyk6Ci0gICAgICAgICAgICBoYW5kbGVfcmVxdWVzdCA9IHNlbGYuX2hhbmRsZV9yZXF1ZXN0
X25vYmxvY2sKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci53YXJuaW5n
KCdGYWxsYmFjayB0byBibG9ja2luZyByZXF1ZXN0IGhhbmRsZXInKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICB3aGlsZSBzZWxmLl9fd3Nfc2VydmluZzoKLSAgICAgICAgICAgICAgICByLCB3
LCBlID0gc2VsZWN0LnNlbGVjdCgKLSAgICAgICAgICAgICAgICAgICAgW3NvY2tldF9bMF0gZm9y
IHNvY2tldF8gaW4gc2VsZi5fc29ja2V0c10sCi0gICAgICAgICAgICAgICAgICAgIFtdLCBbXSwg
cG9sbF9pbnRlcnZhbCkKLSAgICAgICAgICAgICAgICBmb3Igc29ja2V0XyBpbiByOgotICAgICAg
ICAgICAgICAgICAgICBzZWxmLnNvY2tldCA9IHNvY2tldF8KLSAgICAgICAgICAgICAgICAgICAg
aGFuZGxlX3JlcXVlc3QoKQotICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0ID0gTm9uZQotICAg
ICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fX3dzX2lzX3NodXRfZG93bi5zZXQoKQot
Ci0gICAgZGVmIHNodXRkb3duKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2
ZXIuQmFzZVNlcnZlci5zaHV0ZG93bi4iIiIKLQotICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9
IEZhbHNlCi0gICAgICAgIHNlbGYuX193c19pc19zaHV0X2Rvd24ud2FpdCgpCi0KLQotY2xhc3Mg
V2ViU29ja2V0UmVxdWVzdEhhbmRsZXIoQ0dJSFRUUFNlcnZlci5DR0lIVFRQUmVxdWVzdEhhbmRs
ZXIpOgotICAgICIiIkNHSUhUVFBSZXF1ZXN0SGFuZGxlciBzcGVjaWFsaXplZCBmb3IgV2ViU29j
a2V0LiIiIgotCi0gICAgIyBVc2UgaHR0cGxpYi5IVFRQTWVzc2FnZSBpbnN0ZWFkIG9mIG1pbWV0
b29scy5NZXNzYWdlLgotICAgIE1lc3NhZ2VDbGFzcyA9IGh0dHBsaWIuSFRUUE1lc3NhZ2UKLQot
ICAgIHByb3RvY29sX3ZlcnNpb24gPSAiSFRUUC8xLjEiCi0KLSAgICBkZWYgc2V0dXAoc2VsZik6
Ci0gICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNlcnZlci5TdHJlYW1SZXF1ZXN0SGFuZGxlci5z
ZXR1cCB0byB3cmFwIHJmaWxlCi0gICAgICAgIHdpdGggTWVtb3JpemluZ0ZpbGUuCi0KLSAgICAg
ICAgVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgYnkgQmFzZVJlcXVlc3RIYW5kbGVyJ3MgY29u
c3RydWN0b3IKLSAgICAgICAgYmVmb3JlIGNhbGxpbmcgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5o
YW5kbGUuCi0gICAgICAgIEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlIHdpbGwgY2FsbAot
ICAgICAgICBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLmhhbmRsZV9vbmVfcmVxdWVzdCBhbmQgaXQg
d2lsbCBjYWxsCi0gICAgICAgIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVlc3Qu
Ci0gICAgICAgICIiIgotCi0gICAgICAgICMgQ2FsbCBzdXBlcmNsYXNzJ3Mgc2V0dXAgdG8gcHJl
cGFyZSByZmlsZSwgd2ZpbGUsIGV0Yy4gU2VlIHNldHVwCi0gICAgICAgICMgZGVmaW5pdGlvbiBv
biB0aGUgcm9vdCBjbGFzcyBTb2NrZXRTZXJ2ZXIuU3RyZWFtUmVxdWVzdEhhbmRsZXIgdG8KLSAg
ICAgICAgIyB1bmRlcnN0YW5kIHdoYXQgdGhpcyBkb2VzLgotICAgICAgICBDR0lIVFRQU2VydmVy
LkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5zZXR1cChzZWxmKQotCi0gICAgICAgIHNlbGYucmZpbGUg
PSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZSgKLSAgICAgICAgICAgIHNlbGYucmZpbGUs
Ci0gICAgICAgICAgICBtYXhfbWVtb3JpemVkX2xpbmVzPV9NQVhfTUVNT1JJWkVEX0xJTkVTKQot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzLCBzZXJ2ZXIp
OgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQot
ICAgICAgICBzZWxmLl9vcHRpb25zID0gc2VydmVyLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucwot
Ci0gICAgICAgICMgT3ZlcnJpZGVzIENHSUhUVFBTZXJ2ZXJSZXF1ZXN0SGFuZGxlci5jZ2lfZGly
ZWN0b3JpZXMuCi0gICAgICAgIHNlbGYuY2dpX2RpcmVjdG9yaWVzID0gc2VsZi5fb3B0aW9ucy5j
Z2lfZGlyZWN0b3JpZXMKLSAgICAgICAgIyBSZXBsYWNlIENHSUhUVFBSZXF1ZXN0SGFuZGxlci5p
c19leGVjdXRhYmxlIG1ldGhvZC4KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5pc19leGVjdXRh
YmxlX21ldGhvZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuaXNfZXhlY3V0YWJsZSA9
IHNlbGYuX29wdGlvbnMuaXNfZXhlY3V0YWJsZV9tZXRob2QKLQotICAgICAgICAjIFRoaXMgYWN0
dWFsbHkgY2FsbHMgQmFzZVJlcXVlc3RIYW5kbGVyLl9faW5pdF9fLgotICAgICAgICBDR0lIVFRQ
U2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5fX2luaXRfXygKLSAgICAgICAgICAgIHNlbGYs
IHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzLCBzZXJ2ZXIpCi0KLSAgICBkZWYgcGFyc2VfcmVxdWVz
dChzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgQmFzZUhUVFBTZXJ2ZXIuQmFzZUhUVFBSZXF1
ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0LgotCi0gICAgICAgIFJldHVybiBUcnVlIHRvIGNvbnRp
bnVlIHByb2Nlc3NpbmcgZm9yIEhUVFAoUyksIEZhbHNlIG90aGVyd2lzZS4KLQotICAgICAgICBT
ZWUgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGVfb25lX3JlcXVlc3QgbWV0aG9kIHdoaWNo
IGNhbGxzCi0gICAgICAgIHRoaXMgbWV0aG9kIHRvIHVuZGVyc3RhbmQgaG93IHRoZSByZXR1cm4g
dmFsdWUgd2lsbCBiZSBoYW5kbGVkLgotICAgICAgICAiIiIKLQotICAgICAgICAjIFdlIGhvb2sg
cGFyc2VfcmVxdWVzdCBtZXRob2QsIGJ1dCBhbHNvIGNhbGwgdGhlIG9yaWdpbmFsCi0gICAgICAg
ICMgQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVlc3Qgc2luY2Ugd2hlbiB3ZSByZXR1
cm4gRmFsc2UsCi0gICAgICAgICMgQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLmhhbmRsZV9vbmVfcmVx
dWVzdCBjb250aW51ZXMgcHJvY2Vzc2luZyBhbmQKLSAgICAgICAgIyBpdCBuZWVkcyB2YXJpYWJs
ZXMgc2V0IGJ5IENHSUhUVFBSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0LgotICAgICAgICAj
Ci0gICAgICAgICMgVmFyaWFibGVzIHNldCBieSB0aGlzIG1ldGhvZCB3aWxsIGJlIGFsc28gdXNl
ZCBieSBXZWJTb2NrZXQgcmVxdWVzdAotICAgICAgICAjIGhhbmRsaW5nIChzZWxmLnBhdGgsIHNl
bGYuY29tbWFuZCwgc2VsZi5yZXF1ZXN0bGluZSwgZXRjLiBTZWUgYWxzbwotICAgICAgICAjIGhv
dyBfU3RhbmRhbG9uZVJlcXVlc3QncyBtZW1iZXJzIGFyZSBpbXBsZW1lbnRlZCB1c2luZyB0aGVz
ZQotICAgICAgICAjIGF0dHJpYnV0ZXMpLgotICAgICAgICBpZiBub3QgQ0dJSFRUUFNlcnZlci5D
R0lIVFRQUmVxdWVzdEhhbmRsZXIucGFyc2VfcmVxdWVzdChzZWxmKToKLSAgICAgICAgICAgIHJl
dHVybiBGYWxzZQotCi0gICAgICAgIGlmIHNlbGYuY29tbWFuZCA9PSAiQ09OTkVDVCI6Ci0gICAg
ICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwLCAiQ29ubmVjdGVkIikKLSAgICAgICAgICAg
IHNlbGYuc2VuZF9oZWFkZXIoIkNvbm5lY3Rpb24iLCAia2VlcC1hbGl2ZSIpCi0gICAgICAgICAg
ICBzZWxmLmVuZF9oZWFkZXJzKCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAg
IGlmIHNlbGYuX29wdGlvbnMudXNlX2Jhc2ljX2F1dGg6Ci0gICAgICAgICAgICBhdXRoID0gc2Vs
Zi5oZWFkZXJzLmdldGhlYWRlcignQXV0aG9yaXphdGlvbicpCi0gICAgICAgICAgICBpZiBhdXRo
ICE9IHNlbGYuX29wdGlvbnMuYmFzaWNfYXV0aF9jcmVkZW50aWFsOgotICAgICAgICAgICAgICAg
IHNlbGYuc2VuZF9yZXNwb25zZSg0MDEpCi0gICAgICAgICAgICAgICAgc2VsZi5zZW5kX2hlYWRl
cignV1dXLUF1dGhlbnRpY2F0ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
QmFzaWMgcmVhbG09IlB5d2Vic29ja2V0IicpCi0gICAgICAgICAgICAgICAgc2VsZi5lbmRfaGVh
ZGVycygpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1JlcXVlc3QgYmFzaWMg
YXV0aGVudGljYXRpb24nKQotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAg
IGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoc2VsZi5w
YXRoKQotCi0gICAgICAgICMgU3BlY2lhbCBwYXRocyBmb3IgWE1MSHR0cFJlcXVlc3QgYmVuY2ht
YXJrCi0gICAgICAgIHhocl9iZW5jaG1hcmtfaGVscGVyX3ByZWZpeCA9ICcvMDczYmUwMDFlMTA5
NTA2OTJjY2JmM2EyYWQyMWMyNDUnCi0gICAgICAgIGlmIHJlc291cmNlID09ICh4aHJfYmVuY2ht
YXJrX2hlbHBlcl9wcmVmaXggKyAnX3NlbmQnKToKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtf
aGFuZGxlciA9IFhIUkJlbmNobWFya0hhbmRsZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5oZWFk
ZXJzLCBzZWxmLnJmaWxlLCBzZWxmLndmaWxlKQotICAgICAgICAgICAgeGhyX2JlbmNobWFya19o
YW5kbGVyLmRvX3NlbmQoKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIHJl
c291cmNlID09ICh4aHJfYmVuY2htYXJrX2hlbHBlcl9wcmVmaXggKyAnX3JlY2VpdmUnKToKLSAg
ICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlciA9IFhIUkJlbmNobWFya0hhbmRsZXIoCi0g
ICAgICAgICAgICAgICAgc2VsZi5oZWFkZXJzLCBzZWxmLnJmaWxlLCBzZWxmLndmaWxlKQotICAg
ICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyLmRvX3JlY2VpdmUoKQotICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCi0KLSAgICAgICAgaWYgcmVzb3VyY2UgaXMgTm9uZToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5pbmZvKCdJbnZhbGlkIFVSSTogJXInLCBzZWxmLnBhdGgpCi0gICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVy
JykKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHNlcnZlcl9vcHRpb25zID0gc2Vs
Zi5zZXJ2ZXIud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCi0gICAgICAgIGlmIGhvc3QgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICB2YWxpZGF0aW9uX2hvc3QgPSBzZXJ2ZXJfb3B0aW9ucy52YWxp
ZGF0aW9uX2hvc3QKLSAgICAgICAgICAgIGlmIHZhbGlkYXRpb25faG9zdCBpcyBub3QgTm9uZSBh
bmQgaG9zdCAhPSB2YWxpZGF0aW9uX2hvc3Q6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oJ0ludmFsaWQgaG9zdDogJXIgKGV4cGVjdGVkOiAlciknLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhvc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsaWRhdGlvbl9ob3N0KQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdG
YWxsYmFjayB0byBDR0lIVFRQUmVxdWVzdEhhbmRsZXInKQotICAgICAgICAgICAgICAgIHJldHVy
biBUcnVlCi0gICAgICAgIGlmIHBvcnQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB2YWxpZGF0
aW9uX3BvcnQgPSBzZXJ2ZXJfb3B0aW9ucy52YWxpZGF0aW9uX3BvcnQKLSAgICAgICAgICAgIGlm
IHZhbGlkYXRpb25fcG9ydCBpcyBub3QgTm9uZSBhbmQgcG9ydCAhPSB2YWxpZGF0aW9uX3BvcnQ6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ludmFsaWQgcG9ydDogJXIgKGV4
cGVjdGVkOiAlciknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbl9wb3J0KQotICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdGYWxsYmFjayB0byBDR0lIVFRQUmVxdWVzdEhh
bmRsZXInKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHNlbGYucGF0aCA9
IHJlc291cmNlCi0KLSAgICAgICAgcmVxdWVzdCA9IF9TdGFuZGFsb25lUmVxdWVzdChzZWxmLCBz
ZWxmLl9vcHRpb25zLnVzZV90bHMpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBGYWxs
YmFjayB0byBkZWZhdWx0IGh0dHAgaGFuZGxlciBmb3IgcmVxdWVzdCBwYXRocyBmb3Igd2hpY2gK
LSAgICAgICAgICAgICMgd2UgZG9uJ3QgaGF2ZSByZXF1ZXN0IGhhbmRsZXJzLgotICAgICAgICAg
ICAgaWYgbm90IHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlci5nZXRfaGFuZGxlcl9zdWl0ZShzZWxm
LnBhdGgpOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdObyBoYW5kbGVyIGZv
ciByZXNvdXJjZTogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
cGF0aCkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sgdG8gQ0dJ
SFRUUFJlcXVlc3RIYW5kbGVyJykKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAg
ICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuaW5mbygnRGlzcGF0Y2ggZmFpbGVkIGZvciBlcnJvcjogJXMnLCBlKQotICAgICAg
ICAgICAgc2VsZi5zZW5kX2Vycm9yKGUuc3RhdHVzKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNl
Ci0KLSAgICAgICAgIyBJZiBhbnkgRXhjZXB0aW9ucyB3aXRob3V0IGV4Y2VwdCBjbGF1c2Ugc2V0
dXAgKGluY2x1ZGluZwotICAgICAgICAjIERpc3BhdGNoRXhjZXB0aW9uKSBpcyByYWlzZWQgYmVs
b3cgdGhpcyBwb2ludCwgaXQgd2lsbCBiZSBjYXVnaHQKLSAgICAgICAgIyBhbmQgbG9nZ2VkIGJ5
IFdlYlNvY2tldFNlcnZlci4KLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgaGFuZHNoYWtlLmRvX2hhbmRzaGFrZSgKLSAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyLAot
ICAgICAgICAgICAgICAgICAgICBhbGxvd0RyYWZ0NzU9c2VsZi5fb3B0aW9ucy5hbGxvd19kcmFm
dDc1LAotICAgICAgICAgICAgICAgICAgICBzdHJpY3Q9c2VsZi5fb3B0aW9ucy5zdHJpY3QpCi0g
ICAgICAgICAgICBleGNlcHQgaGFuZHNoYWtlLlZlcnNpb25FeGNlcHRpb24sIGU6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0hhbmRzaGFrZSBmYWlsZWQgZm9yIHZlcnNpb24g
ZXJyb3I6ICVzJywgZSkKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoY29tbW9u
LkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFk
ZXIoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlLnN1cHBvcnRlZF92ZXJzaW9ucykKLSAgICAgICAgICAgICAgICBz
ZWxmLmVuZF9oZWFkZXJzKCkKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAg
ICAgIGV4Y2VwdCBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAg
ICAgICMgSGFuZHNoYWtlIGZvciB3cyhzKSBmYWlsZWQuCi0gICAgICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmluZm8oJ0hhbmRzaGFrZSBmYWlsZWQgZm9yIGVycm9yOiAlcycsIGUpCi0gICAgICAg
ICAgICAgICAgc2VsZi5zZW5kX2Vycm9yKGUuc3RhdHVzKQotICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQotCi0gICAgICAgICAgICByZXF1ZXN0Ll9kaXNwYXRjaGVyID0gc2VsZi5fb3B0aW9u
cy5kaXNwYXRjaGVyCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRpc3BhdGNoZXIudHJhbnNm
ZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJF
eGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQWJvcnRlZDogJXMn
LCBlKQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBsb2dfcmVxdWVzdChzZWxmLCBj
b2RlPSctJywgc2l6ZT0nLScpOgotICAgICAgICAiIiJPdmVycmlkZSBCYXNlSFRUUFNlcnZlci5s
b2dfcmVxdWVzdC4iIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnIiVzIiAlcyAlcycs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVxdWVzdGxpbmUsIHN0cihjb2RlKSwg
c3RyKHNpemUpKQotCi0gICAgZGVmIGxvZ19lcnJvcihzZWxmLCAqYXJncyk6Ci0gICAgICAgICIi
Ik92ZXJyaWRlIEJhc2VIVFRQU2VydmVyLmxvZ19lcnJvci4iIiIKLQotICAgICAgICAjIERlc3Bp
dGUgdGhlIG5hbWUsIHRoaXMgbWV0aG9kIGlzIGZvciB3YXJuaW5ncyB0aGFuIGZvciBlcnJvcnMu
Ci0gICAgICAgICMgRm9yIGV4YW1wbGUsIEhUVFAgc3RhdHVzIGNvZGUgaXMgbG9nZ2VkIGJ5IHRo
aXMgbWV0aG9kLgotICAgICAgICBzZWxmLl9sb2dnZXIud2FybmluZygnJXMgLSAlcycsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYWRkcmVzc19zdHJpbmcoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXJnc1swXSAlIGFyZ3NbMTpdKQotCi0gICAgZGVmIGlzX2Nn
aShzZWxmKToKLSAgICAgICAgIiIiVGVzdCB3aGV0aGVyIHNlbGYucGF0aCBjb3JyZXNwb25kcyB0
byBhIENHSSBzY3JpcHQuCi0KLSAgICAgICAgQWRkIGV4dHJhIGNoZWNrIHRoYXQgc2VsZi5wYXRo
IGRvZXNuJ3QgY29udGFpbnMgLi4KLSAgICAgICAgQWxzbyBjaGVjayBpZiB0aGUgZmlsZSBpcyBh
IGV4ZWN1dGFibGUgZmlsZSBvciBub3QuCi0gICAgICAgIElmIHRoZSBmaWxlIGlzIG5vdCBleGVj
dXRhYmxlLCBpdCBpcyBoYW5kbGVkIGFzIHN0YXRpYyBmaWxlIG9yIGRpcgotICAgICAgICByYXRo
ZXIgdGhhbiBhIENHSSBzY3JpcHQuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIENHSUhUVFBT
ZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLmlzX2NnaShzZWxmKToKLSAgICAgICAgICAgIGlm
ICcuLicgaW4gc2VsZi5wYXRoOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAg
ICAgICAgIyBzdHJpcCBxdWVyeSBwYXJhbWV0ZXIgZnJvbSByZXF1ZXN0IHBhdGgKLSAgICAgICAg
ICAgIHJlc291cmNlX25hbWUgPSBzZWxmLnBhdGguc3BsaXQoJz8nLCAyKVswXQotICAgICAgICAg
ICAgIyBjb252ZXJ0IHJlc291cmNlX25hbWUgaW50byByZWFsIHBhdGggbmFtZSBpbiBmaWxlc3lz
dGVtLgotICAgICAgICAgICAgc2NyaXB0ZmlsZSA9IHNlbGYudHJhbnNsYXRlX3BhdGgocmVzb3Vy
Y2VfbmFtZSkKLSAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShzY3JpcHRmaWxlKToK
LSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmlz
X2V4ZWN1dGFibGUoc2NyaXB0ZmlsZSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0g
ICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1kZWYgX2dl
dF9sb2dnZXJfZnJvbV9jbGFzcyhjKToKLSAgICByZXR1cm4gbG9nZ2luZy5nZXRMb2dnZXIoJyVz
LiVzJyAlIChjLl9fbW9kdWxlX18sIGMuX19uYW1lX18pKQotCi0KLWRlZiBfY29uZmlndXJlX2xv
Z2dpbmcob3B0aW9ucyk6Ci0gICAgbG9nZ2luZy5hZGRMZXZlbE5hbWUoY29tbW9uLkxPR0xFVkVM
X0ZJTkUsICdGSU5FJykKLQotICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKLSAgICBs
b2dnZXIuc2V0TGV2ZWwobG9nZ2luZy5nZXRMZXZlbE5hbWUob3B0aW9ucy5sb2dfbGV2ZWwudXBw
ZXIoKSkpCi0gICAgaWYgb3B0aW9ucy5sb2dfZmlsZToKLSAgICAgICAgaGFuZGxlciA9IGxvZ2dp
bmcuaGFuZGxlcnMuUm90YXRpbmdGaWxlSGFuZGxlcigKLSAgICAgICAgICAgICAgICBvcHRpb25z
LmxvZ19maWxlLCAnYScsIG9wdGlvbnMubG9nX21heCwgb3B0aW9ucy5sb2dfY291bnQpCi0gICAg
ZWxzZToKLSAgICAgICAgaGFuZGxlciA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcigpCi0gICAgZm9y
bWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoCi0gICAgICAgICAgICAnWyUoYXNjdGltZSlzXSBb
JShsZXZlbG5hbWUpc10gJShuYW1lKXM6ICUobWVzc2FnZSlzJykKLSAgICBoYW5kbGVyLnNldEZv
cm1hdHRlcihmb3JtYXR0ZXIpCi0gICAgbG9nZ2VyLmFkZEhhbmRsZXIoaGFuZGxlcikKLQotICAg
IGRlZmxhdGVfbG9nX2xldmVsX25hbWUgPSBsb2dnaW5nLmdldExldmVsTmFtZSgKLSAgICAgICAg
b3B0aW9ucy5kZWZsYXRlX2xvZ19sZXZlbC51cHBlcigpKQotICAgIF9nZXRfbG9nZ2VyX2Zyb21f
Y2xhc3ModXRpbC5fRGVmbGF0ZXIpLnNldExldmVsKAotICAgICAgICBkZWZsYXRlX2xvZ19sZXZl
bF9uYW1lKQotICAgIF9nZXRfbG9nZ2VyX2Zyb21fY2xhc3ModXRpbC5fSW5mbGF0ZXIpLnNldExl
dmVsKAotICAgICAgICBkZWZsYXRlX2xvZ19sZXZlbF9uYW1lKQotCi0KLWRlZiBfYnVpbGRfb3B0
aW9uX3BhcnNlcigpOgotICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCi0KLSAg
ICBwYXJzZXIuYWRkX29wdGlvbignLS1jb25maWcnLCBkZXN0PSdjb25maWdfZmlsZScsIHR5cGU9
J3N0cmluZycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9KCdQYXRoIHRvIGNvbmZpZ3VyYXRpb24gZmlsZS4gU2VlIHRoZSBm
aWxlIGNvbW1lbnQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhdCB0aGUgdG9wIG9m
IHRoaXMgZmlsZSBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdmaWxlIGZvcm1hdCcpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctSCcsICctLXNl
cnZlci1ob3N0JywgJy0tc2VydmVyX2hvc3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
J3NlcnZlcl9ob3N0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLAotICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9J3NlcnZlciBob3N0bmFtZSB0byBsaXN0ZW4gdG8nKQotICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctVicsICctLXZhbGlkYXRpb24taG9zdCcsICctLXZhbGlkYXRp
b25faG9zdCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndmFsaWRhdGlvbl9ob3N0JywK
LSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0nc2VydmVyIGhvc3RuYW1lIHRvIHZhbGlkYXRlIGluIGFic29sdXRlIHBhdGguJykK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLXAnLCAnLS1wb3J0JywgZGVzdD0ncG9ydCcsIHR5cGU9
J2ludCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1jb21tb24uREVGQVVMVF9XRUJf
U09DS0VUX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0ncG9ydCB0byBsaXN0ZW4g
dG8nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctUCcsICctLXZhbGlkYXRpb24tcG9ydCcsICct
LXZhbGlkYXRpb25fcG9ydCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndmFsaWRhdGlv
bl9wb3J0JywgdHlwZT0naW50JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUs
Ci0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nc2VydmVyIHBvcnQgdG8gdmFsaWRhdGUgaW4g
YWJzb2x1dGUgcGF0aC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdycsICctLXdlYnNvY2st
aGFuZGxlcnMnLCAnLS13ZWJzb2NrX2hhbmRsZXJzJywKLSAgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSd3ZWJzb2NrX2hhbmRsZXJzJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScu
JywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnVGhlIHJvb3QgZGlyZWN0b3J5IG9mIFdl
YlNvY2tldCBoYW5kbGVyIGZpbGVzLiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lm
IHRoZSBwYXRoIGlzIHJlbGF0aXZlLCAtLWRvY3VtZW50LXJvb3QgaXMgdXNlZCAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2FzIHRoZSBiYXNlLicpKQotICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctbScsICctLXdlYnNvY2staGFuZGxlcnMtbWFwLWZpbGUnLAotICAgICAgICAgICAgICAg
ICAgICAgICctLXdlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUnLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlc3Q9J3dlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUnLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnV2ViU29ja2V0
IGhhbmRsZXJzIG1hcCBmaWxlLiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0VhY2gg
bGluZSBjb25zaXN0cyBvZiBhbGlhc19yZXNvdXJjZV9wYXRoIGFuZCAnCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2V4aXN0aW5nX3Jlc291cmNlX3BhdGgsIHNlcGFyYXRlZCBieSBzcGFj
ZXMuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywgJy0tc2Nhbi1kaXInLCAnLS1zY2Fu
X2RpcicsIGRlc3Q9J3NjYW5fZGlyJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5v
bmUsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ011c3QgYmUgYSBkaXJlY3RvcnkgdW5k
ZXIgLS13ZWJzb2NrLWhhbmRsZXJzLiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ09u
bHkgaGFuZGxlcnMgdW5kZXIgdGhpcyBkaXJlY3RvcnkgYXJlIHNjYW5uZWQgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdhbmQgcmVnaXN0ZXJlZCB0byB0aGUgc2VydmVyLiAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZWZ1bCBmb3Igc2F2aW5nIHNjYW4gdGltZSB3aGVu
IHRoZSBoYW5kbGVyICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAncm9vdCBkaXJlY3Rv
cnkgY29udGFpbnMgbG90cyBvZiBmaWxlcyB0aGF0IGFyZSAnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ25vdCBoYW5kbGVyIGZpbGUgb3IgYXJlIGhhbmRsZXIgZmlsZXMgYnV0IHlvdSAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvblwndCB3YW50IHRoZW0gdG8gYmUgcmVn
aXN0ZXJlZC4gJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tYWxsb3ctaGFuZGxlcnMtb3V0
c2lkZS1yb290LWRpcicsCi0gICAgICAgICAgICAgICAgICAgICAgJy0tYWxsb3dfaGFuZGxlcnNf
b3V0c2lkZV9yb290X2RpcicsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nYWxsb3dfaGFu
ZGxlcnNfb3V0c2lkZV9yb290X2RpcicsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdz
dG9yZV90cnVlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9KCdTY2FucyBXZWJTb2NrZXQgaGFuZGxlcnMgZXZlbiBpZiB0
aGVpciBjYW5vbmljYWwgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXRoIGlzIG5v
dCB1bmRlciAtLXdlYnNvY2staGFuZGxlcnMuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1k
JywgJy0tZG9jdW1lbnQtcm9vdCcsICctLWRvY3VtZW50X3Jvb3QnLAotICAgICAgICAgICAgICAg
ICAgICAgIGRlc3Q9J2RvY3VtZW50X3Jvb3QnLCBkZWZhdWx0PScuJywKLSAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSdEb2N1bWVudCByb290IGRpcmVjdG9yeS4nKQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCcteCcsICctLWNnaS1wYXRocycsICctLWNnaV9wYXRocycsIGRlc3Q9J2NnaV9wYXRo
cycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9KCdDR0kgcGF0aHMgcmVsYXRpdmUgdG8gZG9jdW1lbnRfcm9vdC4nCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbW1hLXNlcGFyYXRlZC4gKGUuZyAteCAvY2dpLC9o
dGJpbikgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGaWxlcyB1bmRlciBkb2N1bWVu
dF9yb290L2NnaV9wYXRoIGFyZSBoYW5kbGVkICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnYXMgQ0dJIHByb2dyYW1zLiBNdXN0IGJlIGV4ZWN1dGFibGUuJykpCi0gICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy10JywgJy0tdGxzJywgZGVzdD0ndXNlX3RscycsIGFjdGlvbj0nc3RvcmVfdHJ1
ZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRMUyAo
d3NzOi8vKScpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGxzLW1vZHVsZScsICctLXRsc19t
b2R1bGUnLCBkZXN0PSd0bHNfbW9kdWxlJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdj
aG9pY2UnLAotICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXMgPSBbX1RMU19CWV9TVEFOREFS
RF9NT0RVTEUsIF9UTFNfQllfUFlPUEVOU1NMXSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdVc2Ugc3NsIG1vZHVsZSBpZiAiJXMiIGlzIHNwZWNpZmllZC4gJwotICAgICAgICAgICAgICAg
ICAgICAgICdVc2UgcHlPcGVuU1NMIG1vZHVsZSBpZiAiJXMiIGlzIHNwZWNpZmllZCcgJQotICAg
ICAgICAgICAgICAgICAgICAgIChfVExTX0JZX1NUQU5EQVJEX01PRFVMRSwgX1RMU19CWV9QWU9Q
RU5TU0wpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctaycsICctLXByaXZhdGUta2V5JywgJy0t
cHJpdmF0ZV9rZXknLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ByaXZhdGVfa2V5JywK
LSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxwPSdUTFMgcHJpdmF0ZSBrZXkg
ZmlsZS4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctYycsICctLWNlcnRpZmljYXRlJywgZGVz
dD0nY2VydGlmaWNhdGUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9
J1RMUyBjZXJ0aWZpY2F0ZSBmaWxlLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGxzLWNs
aWVudC1hdXRoJywgZGVzdD0ndGxzX2NsaWVudF9hdXRoJywKLSAgICAgICAgICAgICAgICAgICAg
ICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J1JlcXVlc3RzIFRMUyBjbGllbnQgYXV0aCBvbiBldmVyeSBjb25uZWN0aW9uLicp
Ci0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGxzLWNsaWVudC1jZXJ0LW9wdGlvbmFsJywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZXN0PSd0bHNfY2xpZW50X2NlcnRfb3B0aW9uYWwnLAotICAg
ICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0g
ICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ01ha2VzIGNsaWVudCBjZXJ0aWZpY2F0ZSBvcHRp
b25hbCBldmVuIHRob3VnaCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RMUyBjbGll
bnQgYXV0aCBpcyBlbmFibGVkLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1jbGll
bnQtY2EnLCBkZXN0PSd0bHNfY2xpZW50X2NhJywgZGVmYXVsdD0nJywKLSAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSgnU3BlY2lmaWVzIGEgcGVtIGZpbGUgd2hpY2ggY29udGFpbnMgYSBzZXQg
b2YgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25jYXRlbmF0ZWQgQ0EgY2VydGlm
aWNhdGVzIHdoaWNoIGFyZSB1c2VkIHRvICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
dmFsaWRhdGUgY2VydGlmaWNhdGVzIHBhc3NlZCBmcm9tIGNsaWVudHMnKSkKLSAgICBwYXJzZXIu
YWRkX29wdGlvbignLS1iYXNpYy1hdXRoJywgZGVzdD0ndXNlX2Jhc2ljX2F1dGgnLAotICAgICAg
ICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgaGVscD0nUmVxdWlyZXMgQmFzaWMgYXV0aGVudGljYXRpb24uJykK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1iYXNpYy1hdXRoLWNyZWRlbnRpYWwnLAotICAgICAg
ICAgICAgICAgICAgICAgIGRlc3Q9J2Jhc2ljX2F1dGhfY3JlZGVudGlhbCcsIGRlZmF1bHQ9J3Rl
c3Q6dGVzdCcsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nU3BlY2lmaWVzIHRoZSBjcmVk
ZW50aWFsIG9mIGJhc2ljIGF1dGhlbnRpY2F0aW9uICcKLSAgICAgICAgICAgICAgICAgICAgICAn
YnkgdXNlcm5hbWU6cGFzc3dvcmQgcGFpciAoZS5nLiB0ZXN0OnRlc3QpLicpCi0gICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy1sJywgJy0tbG9nLWZpbGUnLCAnLS1sb2dfZmlsZScsIGRlc3Q9J2xvZ19m
aWxlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxwPSdMb2cgZmlsZS4n
KQotICAgICMgQ3VzdG9tIGxvZyBsZXZlbDoKLSAgICAjIC0gRklORTogUHJpbnRzIHN0YXR1cyBv
ZiBlYWNoIGZyYW1lIHByb2Nlc3Npbmcgc3RlcAotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxv
Zy1sZXZlbCcsICctLWxvZ19sZXZlbCcsIHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAgICAg
ICAgICAgZGVzdD0nbG9nX2xldmVsJywgZGVmYXVsdD0nd2FybicsCi0gICAgICAgICAgICAgICAg
ICAgICAgY2hvaWNlcz1bJ2ZpbmUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdk
ZWJ1ZycsICdpbmZvJywgJ3dhcm5pbmcnLCAnd2FybicsICdlcnJvcicsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2NyaXRpY2FsJ10sCi0gICAgICAgICAgICAgICAgICAgICAgaGVs
cD0nTG9nIGxldmVsLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZGVmbGF0ZS1sb2ctbGV2
ZWwnLCAnLS1kZWZsYXRlX2xvZ19sZXZlbCcsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0n
Y2hvaWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdkZWZsYXRlX2xvZ19sZXZlbCcs
IGRlZmF1bHQ9J3dhcm4nLAotICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WydkZWJ1Zycs
ICdpbmZvJywgJ3dhcm5pbmcnLCAnd2FybicsICdlcnJvcicsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ2NyaXRpY2FsJ10sCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9n
IGxldmVsIGZvciBfRGVmbGF0ZXIgYW5kIF9JbmZsYXRlci4nKQotICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctLXRocmVhZC1tb25pdG9yLWludGVydmFsLWluLXNlYycsCi0gICAgICAgICAgICAgICAg
ICAgICAgJy0tdGhyZWFkX21vbml0b3JfaW50ZXJ2YWxfaW5fc2VjJywKLSAgICAgICAgICAgICAg
ICAgICAgICBkZXN0PSd0aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMnLAotICAgICAgICAg
ICAgICAgICAgICAgIHR5cGU9J2ludCcsIGRlZmF1bHQ9LTEsCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0oJ0lmIHBvc2l0aXZlIGludGVnZXIgaXMgc3BlY2lmaWVkLCBydW4gYSB0aHJlYWQg
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25pdG9yIHRvIHNob3cgdGhlIHN0YXR1
cyBvZiBzZXJ2ZXIgdGhyZWFkcyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Blcmlv
ZGljYWxseSBpbiB0aGUgc3BlY2lmaWVkIGludGV2YWwgaW4gJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdzZWNvbmQuIElmIG5vbi1wb3NpdGl2ZSBpbnRlZ2VyIGlzIHNwZWNpZmllZCwg
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNhYmxlIHRoZSB0aHJlYWQgbW9uaXRv
ci4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2ctbWF4JywgJy0tbG9nX21heCcsIGRl
c3Q9J2xvZ19tYXgnLCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
X0RFRkFVTFRfTE9HX01BWF9CWVRFUywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cg
bWF4aW11bSBieXRlcycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWNvdW50JywgJy0t
bG9nX2NvdW50JywgZGVzdD0nbG9nX2NvdW50JywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBl
PSdpbnQnLCBkZWZhdWx0PV9ERUZBVUxUX0xPR19CQUNLVVBfQ09VTlQsCi0gICAgICAgICAgICAg
ICAgICAgICAgaGVscD0nTG9nIGJhY2t1cCBjb3VudCcpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24o
Jy0tYWxsb3ctZHJhZnQ3NScsIGRlc3Q9J2FsbG93X2RyYWZ0NzUnLAotICAgICAgICAgICAgICAg
ICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgaGVscD0nT2Jzb2xldGUgb3B0aW9uLiBJZ25vcmVkLicpCi0gICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy0tc3RyaWN0JywgZGVzdD0nc3RyaWN0JywgYWN0aW9uPSdzdG9yZV90cnVlJywK
LSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSdPYnNvbGV0ZSBvcHRp
b24uIElnbm9yZWQuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXEnLCAnLS1xdWV1ZScsIGRl
c3Q9J3JlcXVlc3RfcXVldWVfc2l6ZScsIHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD1fREVGQVVMVF9SRVFVRVNUX1FVRVVFX1NJWkUsCi0gICAgICAgICAgICAgICAg
ICAgICAgaGVscD0ncmVxdWVzdCBxdWV1ZSBzaXplJykKLQotICAgIHJldHVybiBwYXJzZXIKLQot
Ci1jbGFzcyBUaHJlYWRNb25pdG9yKHRocmVhZGluZy5UaHJlYWQpOgotICAgIGRhZW1vbiA9IFRy
dWUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpbnRlcnZhbF9pbl9zZWMpOgotICAgICAgICB0
aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYsIG5hbWU9J1RocmVhZE1vbml0b3InKQotCi0g
ICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAg
ICAgIHNlbGYuX2ludGVydmFsX2luX3NlYyA9IGludGVydmFsX2luX3NlYwotCi0gICAgZGVmIHJ1
bihzZWxmKToKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIHRocmVhZF9uYW1lX2xp
c3QgPSBbXQotICAgICAgICAgICAgZm9yIHRocmVhZCBpbiB0aHJlYWRpbmcuZW51bWVyYXRlKCk6
Ci0gICAgICAgICAgICAgICAgdGhyZWFkX25hbWVfbGlzdC5hcHBlbmQodGhyZWFkLm5hbWUpCi0g
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygKLSAgICAgICAgICAgICAgICAiJWQgYWN0aXZl
IHRocmVhZHM6ICVzIiwKLSAgICAgICAgICAgICAgICB0aHJlYWRpbmcuYWN0aXZlX2NvdW50KCks
Ci0gICAgICAgICAgICAgICAgJywgJy5qb2luKHRocmVhZF9uYW1lX2xpc3QpKQotICAgICAgICAg
ICAgdGltZS5zbGVlcChzZWxmLl9pbnRlcnZhbF9pbl9zZWMpCi0KLQotZGVmIF9wYXJzZV9hcmdz
X2FuZF9jb25maWcoYXJncyk6Ci0gICAgcGFyc2VyID0gX2J1aWxkX29wdGlvbl9wYXJzZXIoKQot
Ci0gICAgIyBGaXJzdCwgcGFyc2Ugb3B0aW9ucyB3aXRob3V0IGNvbmZpZ3VyYXRpb24gZmlsZS4K
LSAgICB0ZW1wb3Jhcnlfb3B0aW9ucywgdGVtcG9yYXJ5X2FyZ3MgPSBwYXJzZXIucGFyc2VfYXJn
cyhhcmdzPWFyZ3MpCi0gICAgaWYgdGVtcG9yYXJ5X2FyZ3M6Ci0gICAgICAgIGxvZ2dpbmcuY3Jp
dGljYWwoCi0gICAgICAgICAgICAnVW5yZWNvZ25pemVkIHBvc2l0aW9uYWwgYXJndW1lbnRzOiAl
cicsIHRlbXBvcmFyeV9hcmdzKQotICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgaWYgdGVtcG9y
YXJ5X29wdGlvbnMuY29uZmlnX2ZpbGU6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbmZp
Z19mcCA9IG9wZW4odGVtcG9yYXJ5X29wdGlvbnMuY29uZmlnX2ZpbGUsICdyJykKLSAgICAgICAg
ZXhjZXB0IElPRXJyb3IsIGU6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAg
ICAgICAgICAgICdGYWlsZWQgdG8gb3BlbiBjb25maWd1cmF0aW9uIGZpbGUgJXI6ICVyJywKLSAg
ICAgICAgICAgICAgICB0ZW1wb3Jhcnlfb3B0aW9ucy5jb25maWdfZmlsZSwKLSAgICAgICAgICAg
ICAgICBlKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBjb25maWdfcGFyc2Vy
ID0gQ29uZmlnUGFyc2VyLlNhZmVDb25maWdQYXJzZXIoKQotICAgICAgICBjb25maWdfcGFyc2Vy
LnJlYWRmcChjb25maWdfZnApCi0gICAgICAgIGNvbmZpZ19mcC5jbG9zZSgpCi0KLSAgICAgICAg
YXJnc19mcm9tX2NvbmZpZyA9IFtdCi0gICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBjb25maWdf
cGFyc2VyLml0ZW1zKCdweXdlYnNvY2tldCcpOgotICAgICAgICAgICAgYXJnc19mcm9tX2NvbmZp
Zy5hcHBlbmQoJy0tJyArIG5hbWUpCi0gICAgICAgICAgICBhcmdzX2Zyb21fY29uZmlnLmFwcGVu
ZCh2YWx1ZSkKLSAgICAgICAgaWYgYXJncyBpcyBOb25lOgotICAgICAgICAgICAgYXJncyA9IGFy
Z3NfZnJvbV9jb25maWcKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFyZ3MgPSBhcmdzX2Zy
b21fY29uZmlnICsgYXJncwotICAgICAgICByZXR1cm4gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncz1h
cmdzKQotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiB0ZW1wb3Jhcnlfb3B0aW9ucywgdGVtcG9y
YXJ5X2FyZ3MKLQotCi1kZWYgX21haW4oYXJncz1Ob25lKToKLSAgICAiIiJZb3UgY2FuIGNhbGwg
dGhpcyBmdW5jdGlvbiBmcm9tIHlvdXIgb3duIHByb2dyYW0sIGJ1dCBwbGVhc2Ugbm90ZSB0aGF0
Ci0gICAgdGhpcyBmdW5jdGlvbiBoYXMgc29tZSBzaWRlLWVmZmVjdHMgdGhhdCBtaWdodCBhZmZl
Y3QgeW91ciBwcm9ncmFtLiBGb3IKLSAgICBleGFtcGxlLCB1dGlsLndyYXBfcG9wZW4zX2Zvcl93
aW4gdXNlIGluIHRoaXMgbWV0aG9kIHJlcGxhY2VzIGltcGxlbWVudGF0aW9uCi0gICAgb2Ygb3Mu
cG9wZW4zLgotICAgICIiIgotCi0gICAgb3B0aW9ucywgYXJncyA9IF9wYXJzZV9hcmdzX2FuZF9j
b25maWcoYXJncz1hcmdzKQotCi0gICAgb3MuY2hkaXIob3B0aW9ucy5kb2N1bWVudF9yb290KQot
Ci0gICAgX2NvbmZpZ3VyZV9sb2dnaW5nKG9wdGlvbnMpCi0KLSAgICBpZiBvcHRpb25zLmFsbG93
X2RyYWZ0NzU6Ci0gICAgICAgIGxvZ2dpbmcud2FybmluZygnLS1hbGxvd19kcmFmdDc1IG9wdGlv
biBpcyBvYnNvbGV0ZS4nKQotCi0gICAgaWYgb3B0aW9ucy5zdHJpY3Q6Ci0gICAgICAgIGxvZ2dp
bmcud2FybmluZygnLS1zdHJpY3Qgb3B0aW9uIGlzIG9ic29sZXRlLicpCi0KLSAgICAjIFRPRE8o
dHlvc2hpbm8pOiBDbGVhbiB1cCBpbml0aWFsaXphdGlvbiBvZiBDR0kgcmVsYXRlZCB2YWx1ZXMu
IE1vdmUgc29tZQotICAgICMgb2YgY29kZSBoZXJlIHRvIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVy
IGNsYXNzIGlmIGl0J3MgYmV0dGVyLgotICAgIG9wdGlvbnMuY2dpX2RpcmVjdG9yaWVzID0gW10K
LSAgICBvcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kID0gTm9uZQotICAgIGlmIG9wdGlvbnMu
Y2dpX3BhdGhzOgotICAgICAgICBvcHRpb25zLmNnaV9kaXJlY3RvcmllcyA9IG9wdGlvbnMuY2dp
X3BhdGhzLnNwbGl0KCcsJykKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnY3lnd2luJywg
J3dpbjMyJyk6Ci0gICAgICAgICAgICBjeWd3aW5fcGF0aCA9IE5vbmUKLSAgICAgICAgICAgICMg
Rm9yIFdpbjMyIFB5dGhvbiwgaXQgaXMgZXhwZWN0ZWQgdGhhdCBDWUdXSU5fUEFUSAotICAgICAg
ICAgICAgIyBpcyBzZXQgdG8gYSBkaXJlY3Rvcnkgb2YgY3lnd2luIGJpbmFyaWVzLgotICAgICAg
ICAgICAgIyBGb3IgZXhhbXBsZSwgd2Vic29ja2V0X3NlcnZlci5weSBpbiBDaHJvbWl1bSBzZXRz
IENZR1dJTl9QQVRIIHRvCi0gICAgICAgICAgICAjIGZ1bGwgcGF0aCBvZiB0aGlyZF9wYXJ0eS9j
eWd3aW4vYmluLgotICAgICAgICAgICAgaWYgJ0NZR1dJTl9QQVRIJyBpbiBvcy5lbnZpcm9uOgot
ICAgICAgICAgICAgICAgIGN5Z3dpbl9wYXRoID0gb3MuZW52aXJvblsnQ1lHV0lOX1BBVEgnXQot
ICAgICAgICAgICAgdXRpbC53cmFwX3BvcGVuM19mb3Jfd2luKGN5Z3dpbl9wYXRoKQotCi0gICAg
ICAgICAgICBkZWYgX19jaGVja19zY3JpcHQoc2NyaXB0cGF0aCk6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoc2NyaXB0cGF0aCwgY3lnd2luX3BhdGgpCi0K
LSAgICAgICAgICAgIG9wdGlvbnMuaXNfZXhlY3V0YWJsZV9tZXRob2QgPSBfX2NoZWNrX3Njcmlw
dAotCi0gICAgaWYgb3B0aW9ucy51c2VfdGxzOgotICAgICAgICBpZiBvcHRpb25zLnRsc19tb2R1
bGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIF9pbXBvcnRfc3NsKCk6Ci0gICAgICAgICAgICAg
ICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEUKLSAgICAgICAg
ICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBzc2wgbW9kdWxlJykKLSAgICAgICAgICAgIGVs
aWYgX2ltcG9ydF9weW9wZW5zc2woKToKLSAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1
bGUgPSBfVExTX0JZX1BZT1BFTlNTTAotICAgICAgICAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ1Vz
aW5nIHB5T3BlblNTTCBtb2R1bGUnKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1RMUyBzdXBwb3J0
IHJlcXVpcmVzIHNzbCBvciBweU9wZW5TU0wgbW9kdWxlLicpCi0gICAgICAgICAgICAgICAgc3lz
LmV4aXQoMSkKLSAgICAgICAgZWxpZiBvcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9TVEFO
REFSRF9NT0RVTEU6Ci0gICAgICAgICAgICBpZiBub3QgX2ltcG9ydF9zc2woKToKLSAgICAgICAg
ICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdzc2wgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUnKQot
ICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9k
dWxlID09IF9UTFNfQllfUFlPUEVOU1NMOgotICAgICAgICAgICAgaWYgbm90IF9pbXBvcnRfcHlv
cGVuc3NsKCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgncHlPcGVuU1NMIG1v
ZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnSW52YWxpZCAtLXRscy1t
b2R1bGUgb3B0aW9uOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMu
dGxzX21vZHVsZSkKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAgICAgaWYgbm90IG9w
dGlvbnMucHJpdmF0ZV9rZXkgb3Igbm90IG9wdGlvbnMuY2VydGlmaWNhdGU6Ci0gICAgICAgICAg
ICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAgICAgICAgICAgICAgICAnVG8gdXNlIFRMUywgc3Bl
Y2lmeSBwcml2YXRlX2tleSBhbmQgY2VydGlmaWNhdGUuJykKLSAgICAgICAgICAgIHN5cy5leGl0
KDEpCi0KLSAgICAgICAgaWYgKG9wdGlvbnMudGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsIGFuZAot
ICAgICAgICAgICAgbm90IG9wdGlvbnMudGxzX2NsaWVudF9hdXRoKToKLSAgICAgICAgICAgIGxv
Z2dpbmcuY3JpdGljYWwoJ0NsaWVudCBhdXRoZW50aWNhdGlvbiBtdXN0IGJlIGVuYWJsZWQgdG8g
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlY2lmeSB0bHNfY2xpZW50X2NlcnRf
b3B0aW9uYWwnKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICBlbHNlOgotICAgICAgICBp
ZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBsb2dnaW5nLmNy
aXRpY2FsKCdVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiBvbmx5IHRvZ2V0aGVyIHdpdGggJwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnLS11c2UtdGxzIG9wdGlvbi4nKQotICAgICAgICAg
ICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBpZiBvcHRpb25zLnRsc19jbGllbnRfYXV0aDoKLSAg
ICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1RMUyBtdXN0IGJlIGVuYWJsZWQgZm9yIGNsaWVu
dCBhdXRoZW50aWNhdGlvbi4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBp
ZiBvcHRpb25zLnRsc19jbGllbnRfY2VydF9vcHRpb25hbDoKLSAgICAgICAgICAgIGxvZ2dpbmcu
Y3JpdGljYWwoJ1RMUyBtdXN0IGJlIGVuYWJsZWQgZm9yIGNsaWVudCBhdXRoZW50aWNhdGlvbi4n
KQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIG5vdCBvcHRpb25zLnNjYW5fZGly
OgotICAgICAgICBvcHRpb25zLnNjYW5fZGlyID0gb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJzCi0K
LSAgICBpZiBvcHRpb25zLnVzZV9iYXNpY19hdXRoOgotICAgICAgICBvcHRpb25zLmJhc2ljX2F1
dGhfY3JlZGVudGlhbCA9ICdCYXNpYyAnICsgYmFzZTY0LmI2NGVuY29kZSgKLSAgICAgICAgICAg
IG9wdGlvbnMuYmFzaWNfYXV0aF9jcmVkZW50aWFsKQotCi0gICAgdHJ5OgotICAgICAgICBpZiBv
cHRpb25zLnRocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3NlYyA+IDA6Ci0gICAgICAgICAgICAj
IFJ1biBhIHRocmVhZCBtb25pdG9yIHRvIHNob3cgdGhlIHN0YXR1cyBvZiBzZXJ2ZXIgdGhyZWFk
cyBmb3IKLSAgICAgICAgICAgICMgZGVidWdnaW5nLgotICAgICAgICAgICAgVGhyZWFkTW9uaXRv
cihvcHRpb25zLnRocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3NlYykuc3RhcnQoKQotCi0gICAg
ICAgIHNlcnZlciA9IFdlYlNvY2tldFNlcnZlcihvcHRpb25zKQotICAgICAgICBzZXJ2ZXIuc2Vy
dmVfZm9yZXZlcigpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgbG9nZ2luZy5j
cml0aWNhbCgnbW9kX3B5d2Vic29ja2V0OiAlcycgJSBlKQotICAgICAgICBsb2dnaW5nLmNyaXRp
Y2FsKCdtb2RfcHl3ZWJzb2NrZXQ6ICVzJyAlIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAg
ICAgIHN5cy5leGl0KDEpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBfbWFp
bihzeXMuYXJndlsxOl0pCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L3N0cmVhbS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRjNTMzMjc5NzQ5N2I1
ODBlM2I3ZWZmMmY4OGQxODhkNzA0MWYxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4K
LSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0j
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBm
aWxlIGV4cG9ydHMgcHVibGljIHN5bWJvbHMuCi0iIiIKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlv
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVF
eGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxp
ZFVURjhFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQg
VW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9o
aXhpZTc1IGltcG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFt
X2h5YmkgaW1wb3J0IEZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1w
b3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJl
YW1PcHRpb25zCi0KLSMgVGhlc2UgbWV0aG9kcyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSBX
ZWJTb2NrZXQgY2xpZW50IGRldmVsb3BlcnMgdG8gaGF2ZQotIyB0aGVpciBpbXBsZW1lbnRhdGlv
bnMgcmVjZWl2ZSBicm9rZW4gZGF0YSBpbiB0ZXN0cy4KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NlX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0
Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2xlbmd0aF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX3BpbmdfZnJhbWUKLWZyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX3BvbmdfZnJhbWUKLWZyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2JpbmFyeV9mcmFtZQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfdGV4dF9mcmFtZQot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2luZ19o
YW5kc2hha2VfYm9keQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvdXRp
bC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDIyNGFlMzk0MmQ3ZmUyY2Y3N2I5
ODg0OTVlZjZlMjhhMWJmNDhkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvdXRpbC5weQorKysgL2Rldi9udWxs
CkBAIC0xLDQxNiArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6
Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJXZWJTb2NrZXQgdXRp
bGl0aWVzLgotIiIiCi0KLQotaW1wb3J0IGFycmF5Ci1pbXBvcnQgZXJybm8KLQotIyBJbXBvcnQg
aGFzaCBjbGFzc2VzIGZyb20gYSBtb2R1bGUgYXZhaWxhYmxlIGFuZCByZWNvbW1lbmRlZCBmb3Ig
ZWFjaCBQeXRob24KLSMgdmVyc2lvbiBhbmQgcmUtZXhwb3J0IHRob3NlIHN5bWJvbC4gVXNlIHNo
YSBhbmQgbWQ1IG1vZHVsZSBpbiBQeXRob24gMi40LCBhbmQKLSMgaGFzaGxpYiBtb2R1bGUgaW4g
UHl0aG9uIDIuNi4KLXRyeToKLSAgICBpbXBvcnQgaGFzaGxpYgotICAgIG1kNV9oYXNoID0gaGFz
aGxpYi5tZDUKLSAgICBzaGExX2hhc2ggPSBoYXNobGliLnNoYTEKLWV4Y2VwdCBJbXBvcnRFcnJv
cjoKLSAgICBpbXBvcnQgbWQ1Ci0gICAgaW1wb3J0IHNoYQotICAgIG1kNV9oYXNoID0gbWQ1Lm1k
NQotICAgIHNoYTFfaGFzaCA9IHNoYS5zaGEKLQotaW1wb3J0IFN0cmluZ0lPCi1pbXBvcnQgbG9n
Z2luZwotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWltcG9ydCBzb2NrZXQKLWltcG9ydCB0cmFjZWJh
Y2sKLWltcG9ydCB6bGliCi0KLXRyeToKLSAgICBmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
ZmFzdF9tYXNraW5nCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgcGFzcwotCi0KLWRlZiBnZXRf
c3RhY2tfdHJhY2UoKToKLSAgICAiIiJHZXQgdGhlIGN1cnJlbnQgc3RhY2sgdHJhY2UgYXMgc3Ry
aW5nLgotCi0gICAgVGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9ydCBQeXRob24gMi4zLgotICAgIFRP
RE86IFJlbW92ZSB0aGlzIHdoZW4gd2Ugb25seSBzdXBwb3J0IFB5dGhvbiAyLjQgYW5kIGFib3Zl
LgotICAgICAgICAgIFVzZSB0cmFjZWJhY2suZm9ybWF0X2V4YyBpbnN0ZWFkLgotICAgICIiIgot
Ci0gICAgb3V0ID0gU3RyaW5nSU8uU3RyaW5nSU8oKQotICAgIHRyYWNlYmFjay5wcmludF9leGMo
ZmlsZT1vdXQpCi0gICAgcmV0dXJuIG91dC5nZXR2YWx1ZSgpCi0KLQotZGVmIHByZXBlbmRfbWVz
c2FnZV90b19leGNlcHRpb24obWVzc2FnZSwgZXhjKToKLSAgICAiIiJQcmVwZW5kIG1lc3NhZ2Ug
dG8gdGhlIGV4Y2VwdGlvbi4iIiIKLQotICAgIGV4Yy5hcmdzID0gKG1lc3NhZ2UgKyBzdHIoZXhj
KSwpCi0gICAgcmV0dXJuCi0KLQotZGVmIF9fdHJhbnNsYXRlX2ludGVycChpbnRlcnAsIGN5Z3dp
bl9wYXRoKToKLSAgICAiIiJUcmFuc2xhdGUgaW50ZXJwIHByb2dyYW0gcGF0aCBmb3IgV2luMzIg
cHl0aG9uIHRvIHJ1biBjeWd3aW4gcHJvZ3JhbQotICAgIChlLmcuIHBlcmwpLiAgTm90ZSB0aGF0
IGl0IGRvZXNuJ3Qgc3VwcG9ydCBwYXRoIHRoYXQgY29udGFpbnMgc3BhY2UsCi0gICAgd2hpY2gg
aXMgdHlwaWNhbGx5IHRydWUgZm9yIFVuaXgsIHdoZXJlICMhLXNjcmlwdCBpcyB3cml0dGVuLgot
ICAgIEZvciBXaW4zMiBweXRob24sIGN5Z3dpbl9wYXRoIGlzIGEgZGlyZWN0b3J5IG9mIGN5Z3dp
biBiaW5hcmllcy4KLQotICAgIEFyZ3M6Ci0gICAgICBpbnRlcnA6IGludGVycCBjb21tYW5kIGxp
bmUKLSAgICAgIGN5Z3dpbl9wYXRoOiBkaXJlY3RvcnkgbmFtZSBvZiBjeWd3aW4gYmluYXJ5LCBv
ciBOb25lCi0gICAgUmV0dXJuczoKLSAgICAgIHRyYW5zbGF0ZWQgaW50ZXJwIGNvbW1hbmQgbGlu
ZS4KLSAgICAiIiIKLSAgICBpZiBub3QgY3lnd2luX3BhdGg6Ci0gICAgICAgIHJldHVybiBpbnRl
cnAKLSAgICBtID0gcmUubWF0Y2goJ15bXiBdKi8oW14gXSspKCAuKik/JywgaW50ZXJwKQotICAg
IGlmIG06Ci0gICAgICAgIGNtZCA9IG9zLnBhdGguam9pbihjeWd3aW5fcGF0aCwgbS5ncm91cCgx
KSkKLSAgICAgICAgcmV0dXJuIGNtZCArIG0uZ3JvdXAoMikKLSAgICByZXR1cm4gaW50ZXJwCi0K
LQotZGVmIGdldF9zY3JpcHRfaW50ZXJwKHNjcmlwdF9wYXRoLCBjeWd3aW5fcGF0aD1Ob25lKToK
LSAgICAiIiJHZXRzICMhLWludGVycHJldGVyIGNvbW1hbmQgbGluZSBmcm9tIHRoZSBzY3JpcHQu
Ci0KLSAgICBJdCBhbHNvIGZpeGVzIGNvbW1hbmQgcGF0aC4gIFdoZW4gQ3lnd2luIFB5dGhvbiBp
cyB1c2VkLCBlLmcuIGluIFdlYktpdCwKLSAgICBpdCBjb3VsZCBydW4gIi91c3IvYmluL3Blcmwg
LXdUIGhlbGxvLnBsIi4KLSAgICBXaGVuIFdpbjMyIFB5dGhvbiBpcyB1c2VkLCBlLmcuIGluIENo
cm9taXVtLCBpdCBjb3VsZG4ndC4gIFNvLCBmaXgKLSAgICAiL3Vzci9iaW4vcGVybCIgdG8gIjxj
eWd3aW5fcGF0aD5ccGVybC5leGUiLgotCi0gICAgQXJnczoKLSAgICAgIHNjcmlwdF9wYXRoOiBw
YXRobmFtZSBvZiB0aGUgc2NyaXB0Ci0gICAgICBjeWd3aW5fcGF0aDogZGlyZWN0b3J5IG5hbWUg
b2YgY3lnd2luIGJpbmFyeSwgb3IgTm9uZQotICAgIFJldHVybnM6Ci0gICAgICAjIS1pbnRlcnBy
ZXRlciBjb21tYW5kIGxpbmUsIG9yIE5vbmUgaWYgaXQgaXMgbm90ICMhLXNjcmlwdC4KLSAgICAi
IiIKLSAgICBmcCA9IG9wZW4oc2NyaXB0X3BhdGgpCi0gICAgbGluZSA9IGZwLnJlYWRsaW5lKCkK
LSAgICBmcC5jbG9zZSgpCi0gICAgbSA9IHJlLm1hdGNoKCdeIyEoLiopJywgbGluZSkKLSAgICBp
ZiBtOgotICAgICAgICByZXR1cm4gX190cmFuc2xhdGVfaW50ZXJwKG0uZ3JvdXAoMSksIGN5Z3dp
bl9wYXRoKQotICAgIHJldHVybiBOb25lCi0KLQotZGVmIHdyYXBfcG9wZW4zX2Zvcl93aW4oY3ln
d2luX3BhdGgpOgotICAgICIiIldyYXAgcG9wZW4zIHRvIHN1cHBvcnQgIyEtc2NyaXB0IG9uIFdp
bmRvd3MuCi0KLSAgICBBcmdzOgotICAgICAgY3lnd2luX3BhdGg6ICBwYXRoIGZvciBjeWd3aW4g
YmluYXJ5IGlmIGNvbW1hbmQgcGF0aCBpcyBuZWVkZWQgdG8gYmUKLSAgICAgICAgICAgICAgICAg
ICAgdHJhbnNsYXRlZC4gIE5vbmUgaWYgbm8gdHJhbnNsYXRpb24gcmVxdWlyZWQuCi0gICAgIiIi
Ci0KLSAgICBfX29yaWdfcG9wZW4zID0gb3MucG9wZW4zCi0KLSAgICBkZWYgX193cmFwX3BvcGVu
MyhjbWQsIG1vZGU9J3QnLCBidWZzaXplPS0xKToKLSAgICAgICAgY21kbGluZSA9IGNtZC5zcGxp
dCgnICcpCi0gICAgICAgIGludGVycCA9IGdldF9zY3JpcHRfaW50ZXJwKGNtZGxpbmVbMF0sIGN5
Z3dpbl9wYXRoKQotICAgICAgICBpZiBpbnRlcnA6Ci0gICAgICAgICAgICBjbWQgPSBpbnRlcnAg
KyAnICcgKyBjbWQKLSAgICAgICAgcmV0dXJuIF9fb3JpZ19wb3BlbjMoY21kLCBtb2RlLCBidWZz
aXplKQotCi0gICAgb3MucG9wZW4zID0gX193cmFwX3BvcGVuMwotCi0KLWRlZiBoZXhpZnkocyk6
Ci0gICAgcmV0dXJuICcgJy5qb2luKG1hcChsYW1iZGEgeDogJyUwMngnICUgb3JkKHgpLCBzKSkK
LQotCi1kZWYgZ2V0X2NsYXNzX2xvZ2dlcihvKToKLSAgICByZXR1cm4gbG9nZ2luZy5nZXRMb2dn
ZXIoCi0gICAgICAgICclcy4lcycgJSAoby5fX2NsYXNzX18uX19tb2R1bGVfXywgby5fX2NsYXNz
X18uX19uYW1lX18pKQotCi0KLWNsYXNzIE5vb3BNYXNrZXIob2JqZWN0KToKLSAgICAiIiJBIG1h
c2tpbmcgb2JqZWN0IHRoYXQgaGFzIHRoZSBzYW1lIGludGVyZmFjZSBhcyBSZXBlYXRlZFhvck1h
c2tlciBidXQKLSAgICBqdXN0IHJldHVybnMgdGhlIHN0cmluZyBwYXNzZWQgaW4gd2l0aG91dCBt
YWtpbmcgYW55IGNoYW5nZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAg
ICAgICAgcGFzcwotCi0gICAgZGVmIG1hc2soc2VsZiwgcyk6Ci0gICAgICAgIHJldHVybiBzCi0K
LQotY2xhc3MgUmVwZWF0ZWRYb3JNYXNrZXIob2JqZWN0KToKLSAgICAiIiJBIG1hc2tpbmcgb2Jq
ZWN0IHRoYXQgYXBwbGllcyBYT1Igb24gdGhlIHN0cmluZyBnaXZlbiB0byBtYXNrIG1ldGhvZAot
ICAgIHdpdGggdGhlIG1hc2tpbmcgYnl0ZXMgZ2l2ZW4gdG8gdGhlIGNvbnN0cnVjdG9yIHJlcGVh
dGVkbHkuIFRoaXMgb2JqZWN0Ci0gICAgcmVtZW1iZXJzIHRoZSBwb3NpdGlvbiBpbiB0aGUgbWFz
a2luZyBieXRlcyB0aGUgbGFzdCBtYXNrIG1ldGhvZCBjYWxsCi0gICAgZW5kZWQgYW5kIHJlc3Vt
ZXMgZnJvbSB0aGF0IHBvaW50IG9uIHRoZSBuZXh0IG1hc2sgbWV0aG9kIGNhbGwuCi0gICAgIiIi
Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWFza2luZ19rZXkpOgotICAgICAgICBzZWxmLl9t
YXNraW5nX2tleSA9IG1hc2tpbmdfa2V5Ci0gICAgICAgIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4
ID0gMAotCi0gICAgZGVmIF9tYXNrX3VzaW5nX3N3aWcoc2VsZiwgcyk6Ci0gICAgICAgIG1hc2tl
ZF9kYXRhID0gZmFzdF9tYXNraW5nLm1hc2soCi0gICAgICAgICAgICAgICAgcywgc2VsZi5fbWFz
a2luZ19rZXksIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4KQotICAgICAgICBzZWxmLl9tYXNraW5n
X2tleV9pbmRleCA9ICgKLSAgICAgICAgICAgICAgICAoc2VsZi5fbWFza2luZ19rZXlfaW5kZXgg
KyBsZW4ocykpICUgbGVuKHNlbGYuX21hc2tpbmdfa2V5KSkKLSAgICAgICAgcmV0dXJuIG1hc2tl
ZF9kYXRhCi0KLSAgICBkZWYgX21hc2tfdXNpbmdfYXJyYXkoc2VsZiwgcyk6Ci0gICAgICAgIHJl
c3VsdCA9IGFycmF5LmFycmF5KCdCJykKLSAgICAgICAgcmVzdWx0LmZyb21zdHJpbmcocykKLQot
ICAgICAgICAjIFVzZSB0ZW1wb3JhcnkgbG9jYWwgdmFyaWFibGVzIHRvIGVsaW1pbmF0ZSB0aGUg
Y29zdCB0byBhY2Nlc3MKLSAgICAgICAgIyBhdHRyaWJ1dGVzCi0gICAgICAgIG1hc2tpbmdfa2V5
ID0gbWFwKG9yZCwgc2VsZi5fbWFza2luZ19rZXkpCi0gICAgICAgIG1hc2tpbmdfa2V5X3NpemUg
PSBsZW4obWFza2luZ19rZXkpCi0gICAgICAgIG1hc2tpbmdfa2V5X2luZGV4ID0gc2VsZi5fbWFz
a2luZ19rZXlfaW5kZXgKLQotICAgICAgICBmb3IgaSBpbiB4cmFuZ2UobGVuKHJlc3VsdCkpOgot
ICAgICAgICAgICAgcmVzdWx0W2ldIF49IG1hc2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XQot
ICAgICAgICAgICAgbWFza2luZ19rZXlfaW5kZXggPSAobWFza2luZ19rZXlfaW5kZXggKyAxKSAl
IG1hc2tpbmdfa2V5X3NpemUKLQotICAgICAgICBzZWxmLl9tYXNraW5nX2tleV9pbmRleCA9IG1h
c2tpbmdfa2V5X2luZGV4Ci0KLSAgICAgICAgcmV0dXJuIHJlc3VsdC50b3N0cmluZygpCi0KLSAg
ICBpZiAnZmFzdF9tYXNraW5nJyBpbiBnbG9iYWxzKCk6Ci0gICAgICAgIG1hc2sgPSBfbWFza191
c2luZ19zd2lnCi0gICAgZWxzZToKLSAgICAgICAgbWFzayA9IF9tYXNrX3VzaW5nX2FycmF5Ci0K
LQotIyBCeSBtYWtpbmcgd2JpdHMgb3B0aW9uIG5lZ2F0aXZlLCB3ZSBjYW4gc3VwcHJlc3MgQ01G
L0ZMRyAoMiBvY3RldCkgYW5kCi0jIEFETEVSMzIgKDQgb2N0ZXQpIGZpZWxkcyBvZiB6bGliIHNv
IHRoYXQgd2UgY2FuIHVzZSB6bGliIG1vZHVsZSBqdXN0IGFzCi0jIGRlZmxhdGUgbGlicmFyeS4g
RElDVElEIHdvbid0IGJlIGFkZGVkIGFzIGZhciBhcyB3ZSBkb24ndCBzZXQgZGljdGlvbmFyeS4K
LSMgTFo3NyB3aW5kb3cgb2YgMzJLIHdpbGwgYmUgdXNlZCBmb3IgYm90aCBjb21wcmVzc2lvbiBh
bmQgZGVjb21wcmVzc2lvbi4KLSMgRm9yIGRlY29tcHJlc3Npb24sIHdlIGNhbiBqdXN0IHVzZSAz
MksgdG8gY292ZXIgYW55IHdpbmRvd3Mgc2l6ZS4gRm9yCi0jIGNvbXByZXNzaW9uLCB3ZSB1c2Ug
MzJLIHNvIHJlY2VpdmVycyBtdXN0IHVzZSAzMksuCi0jCi0jIENvbXByZXNzaW9uIGxldmVsIGlz
IFpfREVGQVVMVF9DT01QUkVTU0lPTi4gV2UgZG9uJ3QgaGF2ZSB0byBtYXRjaCBsZXZlbAotIyB0
byBkZWNvZGUuCi0jCi0jIFNlZSB6Y29uZi5oLCBkZWZsYXRlLmNjLCBpbmZsYXRlLmNjIG9mIHps
aWIgbGlicmFyeSwgYW5kIHpsaWJtb2R1bGUuYyBvZgotIyBQeXRob24uIFNlZSBhbHNvIFJGQzE5
NTAgKFpMSUIgMy4zKS4KLQotCi1jbGFzcyBfRGVmbGF0ZXIob2JqZWN0KToKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB3aW5kb3dfYml0cyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IGdldF9j
bGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9jb21wcmVzcyA9IHpsaWIuY29tcHJl
c3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZM
QVRFRCwgLXdpbmRvd19iaXRzKQotCi0gICAgZGVmIGNvbXByZXNzKHNlbGYsIGJ5dGVzKToKLSAg
ICAgICAgY29tcHJlc3NlZF9ieXRlcyA9IHNlbGYuX2NvbXByZXNzLmNvbXByZXNzKGJ5dGVzKQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIGlucHV0ICVyJywgYnl0ZXMpCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgcmVzdWx0ICVyJywgY29tcHJlc3Nl
ZF9ieXRlcykKLSAgICAgICAgcmV0dXJuIGNvbXByZXNzZWRfYnl0ZXMKLQotICAgIGRlZiBjb21w
cmVzc19hbmRfZmx1c2goc2VsZiwgYnl0ZXMpOgotICAgICAgICBjb21wcmVzc2VkX2J5dGVzID0g
c2VsZi5fY29tcHJlc3MuY29tcHJlc3MoYnl0ZXMpCi0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMg
Kz0gc2VsZi5fY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgaW5wdXQgJXInLCBieXRlcykKLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdDb21wcmVzcyByZXN1bHQgJXInLCBjb21wcmVzc2VkX2J5dGVzKQotICAg
ICAgICByZXR1cm4gY29tcHJlc3NlZF9ieXRlcwotCi0gICAgZGVmIGNvbXByZXNzX2FuZF9maW5p
c2goc2VsZiwgYnl0ZXMpOgotICAgICAgICBjb21wcmVzc2VkX2J5dGVzID0gc2VsZi5fY29tcHJl
c3MuY29tcHJlc3MoYnl0ZXMpCi0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgKz0gc2VsZi5fY29t
cHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdD
b21wcmVzcyBpbnB1dCAlcicsIGJ5dGVzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Nv
bXByZXNzIHJlc3VsdCAlcicsIGNvbXByZXNzZWRfYnl0ZXMpCi0gICAgICAgIHJldHVybiBjb21w
cmVzc2VkX2J5dGVzCi0KLQotY2xhc3MgX0luZmxhdGVyKG9iamVjdCk6Ci0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgd2luZG93X2JpdHMpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSBnZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNlbGYuX3dpbmRvd19iaXRzID0gd2luZG93X2JpdHMK
LQotICAgICAgICBzZWxmLl91bmNvbnN1bWVkID0gJycKLQotICAgICAgICBzZWxmLnJlc2V0KCkK
LQotICAgIGRlZiBkZWNvbXByZXNzKHNlbGYsIHNpemUpOgotICAgICAgICBpZiBub3QgKHNpemUg
PT0gLTEgb3Igc2l6ZSA+IDApOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdzaXplIG11
c3QgYmUgLTEgb3IgcG9zaXRpdmUnKQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIHdo
aWxlIFRydWU6Ci0gICAgICAgICAgICBpZiBzaXplID09IC0xOgotICAgICAgICAgICAgICAgIGRh
dGEgKz0gc2VsZi5fZGVjb21wcmVzcy5kZWNvbXByZXNzKHNlbGYuX3VuY29uc3VtZWQpCi0gICAg
ICAgICAgICAgICAgIyBTZWUgUHl0aG9uIGJ1ZyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3Vl
MTIwNTAgdG8KLSAgICAgICAgICAgICAgICAjIHVuZGVyc3RhbmQgd2h5IHRoZSBzYW1lIGNvZGUg
Y2Fubm90IGJlIHVzZWQgZm9yIHVwZGF0aW5nCi0gICAgICAgICAgICAgICAgIyBzZWxmLl91bmNv
bnN1bWVkIGZvciBoZXJlIGFuZCBlbHNlIGJsb2NrLgotICAgICAgICAgICAgICAgIHNlbGYuX3Vu
Y29uc3VtZWQgPSAnJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBkYXRhICs9
IHNlbGYuX2RlY29tcHJlc3MuZGVjb21wcmVzcygKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
dW5jb25zdW1lZCwgc2l6ZSAtIGxlbihkYXRhKSkKLSAgICAgICAgICAgICAgICBzZWxmLl91bmNv
bnN1bWVkID0gc2VsZi5fZGVjb21wcmVzcy51bmNvbnN1bWVkX3RhaWwKLSAgICAgICAgICAgIGlm
IHNlbGYuX2RlY29tcHJlc3MudW51c2VkX2RhdGE6Ci0gICAgICAgICAgICAgICAgIyBFbmNvdW50
ZXJlZCBhIGxhc3QgYmxvY2sgKGkuZS4gYSBibG9jayB3aXRoIEJGSU5BTCA9IDEpIGFuZAotICAg
ICAgICAgICAgICAgICMgZm91bmQgYSBuZXcgc3RyZWFtICh1bnVzZWRfZGF0YSkuIFdlIGNhbm5v
dCB1c2UgdGhlIHNhbWUKLSAgICAgICAgICAgICAgICAjIHpsaWIuRGVjb21wcmVzcyBvYmplY3Qg
Zm9yIHRoZSBuZXcgc3RyZWFtLiBDcmVhdGUgYSBuZXcKLSAgICAgICAgICAgICAgICAjIERlY29t
cHJlc3Mgb2JqZWN0IHRvIGRlY29tcHJlc3MgdGhlIG5ldyBvbmUuCi0gICAgICAgICAgICAgICAg
IwotICAgICAgICAgICAgICAgICMgSXQncyBmaW5lIHRvIGlnbm9yZSB1bmNvbnN1bWVkX3RhaWwg
aWYgdW51c2VkX2RhdGEgaXMgbm90Ci0gICAgICAgICAgICAgICAgIyBlbXB0eS4KLSAgICAgICAg
ICAgICAgICBzZWxmLl91bmNvbnN1bWVkID0gc2VsZi5fZGVjb21wcmVzcy51bnVzZWRfZGF0YQot
ICAgICAgICAgICAgICAgIHNlbGYucmVzZXQoKQotICAgICAgICAgICAgICAgIGlmIHNpemUgPj0g
MCBhbmQgbGVuKGRhdGEpID09IHNpemU6Ci0gICAgICAgICAgICAgICAgICAgICMgZGF0YSBpcyBm
aWxsZWQuIERvbid0IGNhbGwgZGVjb21wcmVzcyBhZ2Fpbi4KLSAgICAgICAgICAgICAgICAgICAg
YnJlYWsKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAjIFJlLWlu
dm9rZSBEZWNvbXByZXNzLmRlY29tcHJlc3MgdG8gdHJ5IHRvIGRlY29tcHJlc3MgYWxsCi0gICAg
ICAgICAgICAgICAgICAgICMgYXZhaWxhYmxlIGJ5dGVzIGJlZm9yZSBpbnZva2luZyByZWFkIHdo
aWNoIGJsb2NrcyB1bnRpbAotICAgICAgICAgICAgICAgICAgICAjIGFueSBuZXcgYnl0ZSBpcyBh
dmFpbGFibGUuCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgICMgSGVyZSwgc2luY2UgdW51c2VkX2RhdGEgaXMgZW1wdHksIGV2
ZW4gaWYgdW5jb25zdW1lZF90YWlsIGlzCi0gICAgICAgICAgICAgICAgIyBub3QgZW1wdHksIGJ5
dGVzIG9mIHJlcXVlc3RlZCBsZW5ndGggYXJlIGFscmVhZHkgaW4gZGF0YS4gV2UKLSAgICAgICAg
ICAgICAgICAjIGRvbid0IGhhdmUgdG8gImNvbnRpbnVlIiBoZXJlLgotICAgICAgICAgICAgICAg
IGJyZWFrCi0KLSAgICAgICAgaWYgZGF0YToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnRGVjb21wcmVzc2VkICVyJywgZGF0YSkKLSAgICAgICAgcmV0dXJuIGRhdGEKLQotICAgIGRl
ZiBhcHBlbmQoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQXBwZW5k
ZWQgJXInLCBkYXRhKQotICAgICAgICBzZWxmLl91bmNvbnN1bWVkICs9IGRhdGEKLQotICAgIGRl
ZiByZXNldChzZWxmKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXNldCcpCi0gICAg
ICAgIHNlbGYuX2RlY29tcHJlc3MgPSB6bGliLmRlY29tcHJlc3NvYmooLXNlbGYuX3dpbmRvd19i
aXRzKQotCi0KLSMgQ29tcHJlc3Nlcy9kZWNvbXByZXNzZXMgZ2l2ZW4gb2N0ZXRzIHVzaW5nIHRo
ZSBtZXRob2QgaW50cm9kdWNlZCBpbiBSRkMxOTc5LgotCi0KLWNsYXNzIF9SRkMxOTc5RGVmbGF0
ZXIob2JqZWN0KToKLSAgICAiIiJBIGNvbXByZXNzb3IgY2xhc3MgdGhhdCBhcHBsaWVzIERFRkxB
VEUgdG8gZ2l2ZW4gYnl0ZSBzZXF1ZW5jZSBhbmQKLSAgICBmbHVzaGVzIHVzaW5nIHRoZSBhbGdv
cml0aG0gZGVzY3JpYmVkIGluIHRoZSBSRkMxOTc5IHNlY3Rpb24gMi4xLgotICAgICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvd19iaXRzLCBub19jb250ZXh0X3Rha2VvdmVyKToK
LSAgICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBOb25lCi0gICAgICAgIGlmIHdpbmRvd19iaXRzIGlz
IE5vbmU6Ci0gICAgICAgICAgICB3aW5kb3dfYml0cyA9IHpsaWIuTUFYX1dCSVRTCi0gICAgICAg
IHNlbGYuX3dpbmRvd19iaXRzID0gd2luZG93X2JpdHMKLSAgICAgICAgc2VsZi5fbm9fY29udGV4
dF90YWtlb3ZlciA9IG5vX2NvbnRleHRfdGFrZW92ZXIKLQotICAgIGRlZiBmaWx0ZXIoc2VsZiwg
Ynl0ZXMsIGVuZD1UcnVlLCBiZmluYWw9RmFsc2UpOgotICAgICAgICBpZiBzZWxmLl9kZWZsYXRl
ciBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBfRGVmbGF0ZXIoc2VsZi5f
d2luZG93X2JpdHMpCi0KLSAgICAgICAgaWYgYmZpbmFsOgotICAgICAgICAgICAgcmVzdWx0ID0g
c2VsZi5fZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZpbmlzaChieXRlcykKLSAgICAgICAgICAgICMg
QWRkIGEgcGFkZGluZyBibG9jayB3aXRoIEJGSU5BTCA9IDAgYW5kIEJUWVBFID0gMC4KLSAgICAg
ICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIGNocigwKQotICAgICAgICAgICAgc2VsZi5fZGVmbGF0
ZXIgPSBOb25lCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0KLSAgICAgICAgcmVzdWx0ID0g
c2VsZi5fZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZsdXNoKGJ5dGVzKQotICAgICAgICBpZiBlbmQ6
Ci0gICAgICAgICAgICAjIFN0cmlwIGxhc3QgNCBvY3RldHMgd2hpY2ggaXMgTEVOIGFuZCBOTEVO
IGZpZWxkIG9mIGEKLSAgICAgICAgICAgICMgbm9uLWNvbXByZXNzZWQgYmxvY2sgYWRkZWQgZm9y
IFpfU1lOQ19GTFVTSC4KLSAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdFs6LTRdCi0KLSAgICAg
ICAgaWYgc2VsZi5fbm9fY29udGV4dF90YWtlb3ZlciBhbmQgZW5kOgotICAgICAgICAgICAgc2Vs
Zi5fZGVmbGF0ZXIgPSBOb25lCi0KLSAgICAgICAgcmV0dXJuIHJlc3VsdAotCi0KLWNsYXNzIF9S
RkMxOTc5SW5mbGF0ZXIob2JqZWN0KToKLSAgICAiIiJBIGRlY29tcHJlc3NvciBjbGFzcyBmb3Ig
Ynl0ZSBzZXF1ZW5jZSBjb21wcmVzc2VkIGFuZCBmbHVzaGVkIGZvbGxvd2luZwotICAgIHRoZSBh
bGdvcml0aG0gZGVzY3JpYmVkIGluIHRoZSBSRkMxOTc5IHNlY3Rpb24gMi4xLgotICAgICIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvd19iaXRzPXpsaWIuTUFYX1dCSVRTKToKLSAg
ICAgICAgc2VsZi5faW5mbGF0ZXIgPSBfSW5mbGF0ZXIod2luZG93X2JpdHMpCi0KLSAgICBkZWYg
ZmlsdGVyKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgIyBSZXN0b3JlIHN0cmlwcGVkIExFTiBhbmQg
TkxFTiBmaWVsZCBvZiBhIG5vbi1jb21wcmVzc2VkIGJsb2NrIGFkZGVkCi0gICAgICAgICMgZm9y
IFpfU1lOQ19GTFVTSC4KLSAgICAgICAgc2VsZi5faW5mbGF0ZXIuYXBwZW5kKGJ5dGVzICsgJ1x4
MDBceDAwXHhmZlx4ZmYnKQotICAgICAgICByZXR1cm4gc2VsZi5faW5mbGF0ZXIuZGVjb21wcmVz
cygtMSkKLQotCi1jbGFzcyBEZWZsYXRlU29ja2V0KG9iamVjdCk6Ci0gICAgIiIiQSB3cmFwcGVy
IGNsYXNzIGZvciBzb2NrZXQgb2JqZWN0IHRvIGludGVyY2VwdCBzZW5kIGFuZCByZWN2IHRvIHBl
cmZvcm0KLSAgICBkZWZsYXRlIGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uIHRyYW5zcGFy
ZW50bHkuCi0gICAgIiIiCi0KLSAgICAjIFNpemUgb2YgdGhlIGJ1ZmZlciBwYXNzZWQgdG8gcmVj
diB0byByZWNlaXZlIGNvbXByZXNzZWQgZGF0YS4KLSAgICBfUkVDVl9TSVpFID0gNDA5NgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCk6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNv
Y2tldAotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IGdldF9jbGFzc19sb2dnZXIoc2VsZikKLQot
ICAgICAgICBzZWxmLl9kZWZsYXRlciA9IF9EZWZsYXRlcih6bGliLk1BWF9XQklUUykKLSAgICAg
ICAgc2VsZi5faW5mbGF0ZXIgPSBfSW5mbGF0ZXIoemxpYi5NQVhfV0JJVFMpCi0KLSAgICBkZWYg
cmVjdihzZWxmLCBzaXplKToKLSAgICAgICAgIiIiUmVjZWl2ZXMgZGF0YSBmcm9tIHRoZSBzb2Nr
ZXQgc3BlY2lmaWVkIG9uIHRoZSBjb25zdHJ1Y3Rpb24gdXAKLSAgICAgICAgdG8gdGhlIHNwZWNp
ZmllZCBzaXplLiBPbmNlIGFueSBkYXRhIGlzIGF2YWlsYWJsZSwgcmV0dXJucyBpdCBldmVuCi0g
ICAgICAgIGlmIGl0J3Mgc21hbGxlciB0aGFuIHRoZSBzcGVjaWZpZWQgc2l6ZS4KLSAgICAgICAg
IiIiCi0KLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogQWxsb3cgY2FsbCB3aXRoIHNpemU9MC4g
SXQgc2hvdWxkIGJsb2NrIHVudGlsIGFueQotICAgICAgICAjIGRlY29tcHJlc3NlZCBkYXRhIGlz
IGF2YWlsYWJsZS4KLSAgICAgICAgaWYgc2l6ZSA8PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdOb24tcG9zaXRpdmUgc2l6ZSBwYXNzZWQnKQotICAgICAgICB3aGlsZSBUcnVlOgot
ICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2luZmxhdGVyLmRlY29tcHJlc3Moc2l6ZSkKLSAgICAg
ICAgICAgIGlmIGxlbihkYXRhKSAhPSAwOgotICAgICAgICAgICAgICAgIHJldHVybiBkYXRhCi0K
LSAgICAgICAgICAgIHJlYWRfZGF0YSA9IHNlbGYuX3NvY2tldC5yZWN2KERlZmxhdGVTb2NrZXQu
X1JFQ1ZfU0laRSkKLSAgICAgICAgICAgIGlmIG5vdCByZWFkX2RhdGE6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuICcnCi0gICAgICAgICAgICBzZWxmLl9pbmZsYXRlci5hcHBlbmQocmVhZF9kYXRh
KQotCi0gICAgZGVmIHNlbmRhbGwoc2VsZiwgYnl0ZXMpOgotICAgICAgICBzZWxmLnNlbmQoYnl0
ZXMpCi0KLSAgICBkZWYgc2VuZChzZWxmLCBieXRlcyk6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5z
ZW5kYWxsKHNlbGYuX2RlZmxhdGVyLmNvbXByZXNzX2FuZF9mbHVzaChieXRlcykpCi0gICAgICAg
IHJldHVybiBsZW4oYnl0ZXMpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3
ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3
OWRmMzU5OThkMTE1MWIzYjA5OGEwNWEwYjFjODc5ZDQyNTJkODcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvbW9kX3B5d2Vic29ja2V0L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29j
a2V0L19zdHJlYW1fYmFzZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2hp
eGllNzUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oeWJpLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvbW9kX3B5d2Vic29ja2V0L2NvbW1vbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tl
dC9kaXNwYXRjaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5
d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2Nr
ZXQvaHR0cF9oZWFkZXJfdXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tZW1vcml6
aW5nZmlsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tc2d1dGlsLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvbW9kX3B5d2Vic29ja2V0L211eC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9zdGFu
ZGFsb25lLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3N0cmVhbS5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L21vZF9weXdlYnNvY2tldC91dGlsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3hocl9i
ZW5jaG1hcmtfaGFuZGxlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L3hocl9iZW5jaG1hcmtfaGFuZGxlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC94aHJf
YmVuY2htYXJrX2hhbmRsZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3MzVj
N2UyYTNkYjhkYzdjNDNmZDE3MjAxNDk1ZDQzNWNjZTY4Y2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3hocl9i
ZW5jaG1hcmtfaGFuZGxlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi0jIENv
cHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0jIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotIyBodHRwczovL2Rl
dmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLWNsYXNzIFhIUkJlbmNobWFya0hhbmRsZXIo
b2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgaGVhZGVycywgcmZpbGUsIHdmaWxlKToK
LSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAg
ICAgICAgc2VsZi5oZWFkZXJzID0gaGVhZGVycwotICAgICAgICBzZWxmLnJmaWxlID0gcmZpbGUK
LSAgICAgICAgc2VsZi53ZmlsZSA9IHdmaWxlCi0KLSAgICBkZWYgZG9fc2VuZChzZWxmKToKLSAg
ICAgICAgY29udGVudF9sZW5ndGggPSBpbnQoc2VsZi5oZWFkZXJzLmdldGhlYWRlcignQ29udGVu
dC1MZW5ndGgnKSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3RlZCB0byBy
ZWNlaXZlICVzIGJ5dGVzJywgY29udGVudF9sZW5ndGgpCi0KLSAgICAgICAgUkVDRUlWRV9CTE9D
S19TSVpFID0gMTAyNCAqIDEwMjQKLQotICAgICAgICBieXRlc190b19yZWNlaXZlID0gY29udGVu
dF9sZW5ndGgKLSAgICAgICAgd2hpbGUgYnl0ZXNfdG9fcmVjZWl2ZSA+IDA6Ci0gICAgICAgICAg
ICBieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCA9IGJ5dGVzX3RvX3JlY2VpdmUKLSAgICAg
ICAgICAgIGlmIGJ5dGVzX3RvX3JlY2VpdmVfaW5fdGhpc19sb29wID4gUkVDRUlWRV9CTE9DS19T
SVpFOgotICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3JlY2VpdmVfaW5fdGhpc19sb29wID0gUkVD
RUlWRV9CTE9DS19TSVpFCi0gICAgICAgICAgICByZWNlaXZlZF9kYXRhID0gc2VsZi5yZmlsZS5y
ZWFkKGJ5dGVzX3RvX3JlY2VpdmVfaW5fdGhpc19sb29wKQotICAgICAgICAgICAgaWYgcmVjZWl2
ZWRfZGF0YSAhPSAoJ2EnICogYnl0ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3ApOgotICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVxdWVzdCBib2R5IHZlcmlmaWNhdGlvbiBm
YWlsZWQnKQotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgYnl0ZXNfdG9fcmVj
ZWl2ZSAtPSBsZW4ocmVjZWl2ZWRfZGF0YSkKLSAgICAgICAgaWYgYnl0ZXNfdG9fcmVjZWl2ZSA8
IDA6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkICVkIG1vcmUgYnl0
ZXMgdGhhbiBleHBlY3RlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtYnl0
ZXNfdG9fcmVjZWl2ZSkpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAjIFJldHVybiB0
aGUgbnVtYmVyIG9mIHJlY2VpdmVkIGJ5dGVzIGJhY2sgdG8gdGhlIGNsaWVudC4KLSAgICAgICAg
cmVzcG9uc2VfYm9keSA9ICclZCcgJSBjb250ZW50X2xlbmd0aAotICAgICAgICBzZWxmLndmaWxl
LndyaXRlKAotICAgICAgICAgICAgJ0hUVFAvMS4xIDIwMCBPS1xyXG4nCi0gICAgICAgICAgICAn
Q29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuJwotICAgICAgICAgICAgJ0NvbnRlbnQtTGVuZ3Ro
OiAlZFxyXG4nCi0gICAgICAgICAgICAnXHJcbiVzJyAlIChsZW4ocmVzcG9uc2VfYm9keSksIHJl
c3BvbnNlX2JvZHkpKQotICAgICAgICBzZWxmLndmaWxlLmZsdXNoKCkKLQotICAgIGRlZiBkb19y
ZWNlaXZlKHNlbGYpOgotICAgICAgICBjb250ZW50X2xlbmd0aCA9IGludChzZWxmLmhlYWRlcnMu
Z2V0aGVhZGVyKCdDb250ZW50LUxlbmd0aCcpKQotICAgICAgICByZXF1ZXN0X2JvZHkgPSBzZWxm
LnJmaWxlLnJlYWQoY29udGVudF9sZW5ndGgpCi0KLSAgICAgICAgcmVxdWVzdF9hcnJheSA9IHJl
cXVlc3RfYm9keS5zcGxpdCgnICcpCi0gICAgICAgIGlmIGxlbihyZXF1ZXN0X2FycmF5KSA8IDI6
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ01hbGZvcm1lZCByZXF1ZXN0IGJvZHk6
ICVyJywgcmVxdWVzdF9ib2R5KQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBQYXJz
ZSB0aGUgc2l6ZSBwYXJhbWV0ZXIuCi0gICAgICAgIGJ5dGVzX3RvX3NlbmQgPSByZXF1ZXN0X2Fy
cmF5WzBdCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmQgPSBpbnQoYnl0
ZXNfdG9fc2VuZCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ01hbGZvcm1lZCBzaXplIHBhcmFtZXRlcjogJXInLCBieXRlc190
b19zZW5kKQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
UmVxdWVzdGVkIHRvIHNlbmQgJXMgYnl0ZXMnLCBieXRlc190b19zZW5kKQotCi0gICAgICAgICMg
UGFyc2UgdGhlIHRyYW5zZmVyIGVuY29kaW5nIHBhcmFtZXRlci4KLSAgICAgICAgY2h1bmtlZF9t
b2RlID0gRmFsc2UKLSAgICAgICAgbW9kZV9wYXJhbWV0ZXIgPSByZXF1ZXN0X2FycmF5WzFdCi0g
ICAgICAgIGlmIG1vZGVfcGFyYW1ldGVyID09ICdjaHVua2VkJzoKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnUmVxdWVzdGVkIGNodW5rZWQgdHJhbnNmZXIgZW5jb2RpbmcnKQotICAg
ICAgICAgICAgY2h1bmtlZF9tb2RlID0gVHJ1ZQotICAgICAgICBlbGlmIG1vZGVfcGFyYW1ldGVy
ICE9ICdub25lJzoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnSW52YWxpZCBtb2Rl
IHBhcmFtZXRlcjogJXInLCBtb2RlX3BhcmFtZXRlcikKLSAgICAgICAgICAgIHJldHVybgotCi0g
ICAgICAgICMgV3JpdGUgYSBoZWFkZXIKLSAgICAgICAgcmVzcG9uc2VfaGVhZGVyID0gKAotICAg
ICAgICAgICAgJ0hUVFAvMS4xIDIwMCBPS1xyXG4nCi0gICAgICAgICAgICAnQ29udGVudC1UeXBl
OiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cclxuJykKLSAgICAgICAgaWYgY2h1bmtlZF9tb2Rl
OgotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyICs9ICdUcmFuc2Zlci1FbmNvZGluZzogY2h1
bmtlZFxyXG5cclxuJwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVy
ICs9ICgKLSAgICAgICAgICAgICAgICAnQ29udGVudC1MZW5ndGg6ICVkXHJcblxyXG4nICUgYnl0
ZXNfdG9fc2VuZCkKLSAgICAgICAgc2VsZi53ZmlsZS53cml0ZShyZXNwb25zZV9oZWFkZXIpCi0g
ICAgICAgIHNlbGYud2ZpbGUuZmx1c2goKQotCi0gICAgICAgICMgV3JpdGUgYSBib2R5Ci0gICAg
ICAgIFNFTkRfQkxPQ0tfU0laRSA9IDEwMjQgKiAxMDI0Ci0KLSAgICAgICAgd2hpbGUgYnl0ZXNf
dG9fc2VuZCA+IDA6Ci0gICAgICAgICAgICBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCA9IGJ5
dGVzX3RvX3NlbmQKLSAgICAgICAgICAgIGlmIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID4g
U0VORF9CTE9DS19TSVpFOgotICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19s
b29wID0gU0VORF9CTE9DS19TSVpFCi0KLSAgICAgICAgICAgIGlmIGNodW5rZWRfbW9kZToKLSAg
ICAgICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKCcleFxyXG4nICUgYnl0ZXNfdG9fc2VuZF9p
bl90aGlzX2xvb3ApCi0gICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKCdhJyAqIGJ5dGVzX3Rv
X3NlbmRfaW5fdGhpc19sb29wKQotICAgICAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgotICAgICAg
ICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoJ1xyXG4nKQotICAgICAgICAgICAgc2VsZi53Zmls
ZS5mbHVzaCgpCi0KLSAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmQgLT0gYnl0ZXNfdG9fc2VuZF9p
bl90aGlzX2xvb3AKLQotICAgICAgICBpZiBjaHVua2VkX21vZGU6Ci0gICAgICAgICAgICBzZWxm
LndmaWxlLndyaXRlKCcwXHJcblxyXG4nKQotICAgICAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3NldHVwLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGE4ZGIzZTExMWIwYTU0MzFkNzFlNjFmNDQ5MTNl
YzVkYWM5MjQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3NldHVwLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6
Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJTZXQgdXAgc2NyaXB0
IGZvciBtb2RfcHl3ZWJzb2NrZXQuCi0iIiIKLQotCi1mcm9tIGRpc3R1dGlscy5jb3JlIGltcG9y
dCBzZXR1cCwgRXh0ZW5zaW9uCi1pbXBvcnQgc3lzCi0KLQotX1BBQ0tBR0VfTkFNRSA9ICdtb2Rf
cHl3ZWJzb2NrZXQnCi0KLSMgQnVpbGQgYW5kIHVzZSBhIEMrKyBleHRlbnNpb24gZm9yIGZhc3Rl
ciBtYXNraW5nLiBTV0lHIGlzIHJlcXVpcmVkLgotX1VTRV9GQVNUX01BU0tJTkcgPSBGYWxzZQot
Ci1pZiBzeXMudmVyc2lvbiA8ICcyLjMnOgotICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICclcyBy
ZXF1aXJlcyBQeXRob24gMi4zIG9yIGxhdGVyLicgJSBfUEFDS0FHRV9OQU1FCi0gICAgc3lzLmV4
aXQoMSkKLQotaWYgX1VTRV9GQVNUX01BU0tJTkc6Ci0gICAgc2V0dXAoZXh0X21vZHVsZXM9Wwot
ICAgICAgICAgICAgICAgICAgRXh0ZW5zaW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAn
bW9kX3B5d2Vic29ja2V0L19mYXN0X21hc2tpbmcnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBbJ21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tpbmcuaSddLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBzd2lnX29wdHM9WyctYysrJ10pXSkKLQotc2V0dXAoYXV0aG9yPSdZdXpvIEZ1amlz
aGltYScsCi0gICAgICBhdXRob3JfZW1haWw9J3l1em9AY2hyb21pdW0ub3JnJywKLSAgICAgIGRl
c2NyaXB0aW9uPSdXZWJTb2NrZXQgZXh0ZW5zaW9uIGZvciBBcGFjaGUgSFRUUCBTZXJ2ZXIuJywK
LSAgICAgIGxvbmdfZGVzY3JpcHRpb249KAotICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0
IGlzIGFuIEFwYWNoZSBIVFRQIFNlcnZlciBleHRlbnNpb24gZm9yICcKLSAgICAgICAgICAgICAg
J3RoZSBXZWJTb2NrZXQgUHJvdG9jb2wgKFJGQyA2NDU1KS4gJwotICAgICAgICAgICAgICAnU2Vl
IG1vZF9weXdlYnNvY2tldC9fX2luaXRfXy5weSBmb3IgbW9yZSBkZXRhaWwuJyksCi0gICAgICBs
aWNlbnNlPSdTZWUgQ09QWUlORycsCi0gICAgICBuYW1lPV9QQUNLQUdFX05BTUUsCi0gICAgICBw
YWNrYWdlcz1bX1BBQ0tBR0VfTkFNRSwgX1BBQ0tBR0VfTkFNRSArICcuaGFuZHNoYWtlJ10sCi0g
ICAgICB1cmw9J2h0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9weXdlYnNvY2tldC8nLAotICAgICAg
IyBTZWUgdGhlIHNvdXJjZSBvZiBkaXN0dXRpbHMudmVyc2lvbiwgZGlzdHV0aWxzLnZlcnNpb25w
cmVkaWNhdGUgYW5kCi0gICAgICAjIGRpc3R1dGlscy5kaXN0IHRvIHVuZGVyc3RhbmQgaG93IHRv
IG5hbWUgdmVyc2lvbiBudW1iZXJzLgotICAgICAgdmVyc2lvbj0nMC43LjknLAotICAgICAgKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9fX2luaXRf
Xy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9fX2lu
aXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVp
cmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9j
YWNlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NhY2VydC5wZW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRkYWRhZTEyMWJkZDNhZGI3NDQzODNjZDNiZjA4YzIyNmY4NTU0YmEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC9jZXJ0L2NhY2VydC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0tLS0t
LUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUN2RENDQWlXZ0F3SUJBZ0lKQUtxVmdoa0dGMXJT
TUEwR0NTcUdTSWIzRFFFQkJRVUFNRWt4Q3pBSkJnTlYKLUJBWVRBa3BRTVE0d0RBWURWUVFJRXdW
VWIydDViekVVTUJJR0ExVUVDaE1MY0hsM1pXSnpiMk5yWlhReEZEQVMKLUJnTlZCQU1UQzNCNWQy
VmljMjlqYTJWME1CNFhEVEV5TURZd05qQTNNalF6TTFvWERUTTVNVEF5TXpBM01qUXoKLU0xb3dT
VEVMTUFrR0ExVUVCaE1DU2xBeERqQU1CZ05WQkFnVEJWUnZhM2x2TVJRd0VnWURWUVFLRXd0d2VY
ZGwKLVluTnZZMnRsZERFVU1CSUdBMVVFQXhNTGNIbDNaV0p6YjJOclpYUXdnWjh3RFFZSktvWklo
dmNOQVFFQkJRQUQKLWdZMEFNSUdKQW9HQkFLb1NFVzJiaVF4VnJNTUtkbi84UEp6RFlpU1hEUFI5
V1FiTFJSUTFHbTVqa0NZaWFoWFcKLXUyQ2JUVGhmUFBmaTJOSEEzSStIbFQ3Z085eVI3UlZVdk42
SVNVekd3WERFcTRmNFVOcXRRT2hRYXFxSytDWjkKLUxPL0JoTy9ZWWZOcmJTUGxZekhVS2FUOWVz
ZTd4TzlWelZLTFcrcVVmMk1qaDQvK1N6eEJETlA3QWdNQkFBR2oKLWdhc3dnYWd3SFFZRFZSME9C
QllFRk9zV2R4Q1N1eWh3YVplYWI2Qm9UaG8zKytiek1Ia0dBMVVkSXdSeU1IQ0EKLUZPc1dkeENT
dXlod2FaZWFiNkJvVGhvMysrYnpvVTJrU3pCSk1Rc3dDUVlEVlFRR0V3SktVREVPTUF3R0ExVUUK
LUNCTUZWRzlyZVc4eEZEQVNCZ05WQkFvVEMzQjVkMlZpYzI5amEyVjBNUlF3RWdZRFZRUURFd3R3
ZVhkbFluTnYKLVkydGxkSUlKQUtxVmdoa0dGMXJTTUF3R0ExVWRFd1FGTUFNQkFmOHdEUVlKS29a
SWh2Y05BUUVGQlFBRGdZRUEKLWdzTUkxV0VZcU53L2poVUlkclRCY0N4SjBYNmhKdkE5emlLQU5W
bTFScys0UDNZREFya1E4YkNyNnhZK0t3N3MKLVpwMHlFN2RNOEdNZGkrRFU2aEwzdDNFNWVNa1RT
MXlacjlXQ0s0ZjJSTG8rZXQ5OHNlbFp5ZHBIZW1GM0RKSjMKLWdBajhTeDRMQmFHOENiL1duRU1Q
djNNeEczZkJFNWZhdkY2VjRqVTA3aFE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvY2VydC5wZW0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQv
Y2VydC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1Mzc5YTcyYjBkYWM1ZjQx
OTc5YzgwMmM2NjNkZjhiODhkZWE4MjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NlcnQucGVtCisrKyAvZGV2L251bGwK
QEAgLTEsNjEgKzAsMCBAQAotQ2VydGlmaWNhdGU6Ci0gICAgRGF0YToKLSAgICAgICAgVmVyc2lv
bjogMyAoMHgyKQotICAgICAgICBTZXJpYWwgTnVtYmVyOiAxICgweDEpCi0gICAgICAgIFNpZ25h
dHVyZSBBbGdvcml0aG06IHNoYTFXaXRoUlNBRW5jcnlwdGlvbgotICAgICAgICBJc3N1ZXI6IEM9
SlAsIFNUPVRva3lvLCBPPXB5d2Vic29ja2V0LCBDTj1weXdlYnNvY2tldAotICAgICAgICBWYWxp
ZGl0eQotICAgICAgICAgICAgTm90IEJlZm9yZTogSnVuICA2IDA3OjI1OjA4IDIwMTIgR01UCi0g
ICAgICAgICAgICBOb3QgQWZ0ZXIgOiBPY3QgMjMgMDc6MjU6MDggMjAzOSBHTVQKLSAgICAgICAg
U3ViamVjdDogQz1KUCwgU1Q9VG9reW8sIE89cHl3ZWJzb2NrZXQsIENOPXB5d2Vic29ja2V0Ci0g
ICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZvOgotICAgICAgICAgICAgUHVibGljIEtleSBB
bGdvcml0aG06IHJzYUVuY3J5cHRpb24KLSAgICAgICAgICAgIFJTQSBQdWJsaWMgS2V5OiAoMTAy
NCBiaXQpCi0gICAgICAgICAgICAgICAgTW9kdWx1cyAoMTAyNCBiaXQpOgotICAgICAgICAgICAg
ICAgICAgICAwMDpkZToxMDpjZTozYTo1YTowNDphNDoxYzoyOTo5Mzo1YzoyMzo4MjoxYToKLSAg
ICAgICAgICAgICAgICAgICAgZjI6MDY6MDE6ZTY6MmI6YTQ6MGY6ZGQ6Nzc6NDk6NzY6ODk6MDM6
YTI6MjE6Ci0gICAgICAgICAgICAgICAgICAgIGRlOjA0Ojc1OmM2OmUyOmRkOmZiOjM1OjI3OjNh
OmEyOjkyOjhlOjEyOjYyOgotICAgICAgICAgICAgICAgICAgICAyYjozZToxZjpmNDo3ODpkZjpi
Njo5NDpjYjoyNzpkNjpjYjpkNjozNzpkNzoKLSAgICAgICAgICAgICAgICAgICAgNWM6MDg6ZjA6
MDk6M2U6Yzk6Y2U6MjQ6MmQ6MDA6Yzk6ZGY6NGE6ZTA6OTk6Ci0gICAgICAgICAgICAgICAgICAg
IGU1OmZiOjIzOmE5OmUyOmQ2OmM5OjNkOjk2OmZhOjAxOjg4OmRlOjVhOjg5OgotICAgICAgICAg
ICAgICAgICAgICBiMDpjZjowMzo2Nzo2ZjowNDo4NjoxZDplZjo2MjoxYzo1NTphOTowNzo5YToK
LSAgICAgICAgICAgICAgICAgICAgMmU6NjY6MmE6NzM6NWI6NGM6NjI6MDM6Zjk6ODI6ODM6ZGI6
Njg6YmY6Yjg6Ci0gICAgICAgICAgICAgICAgICAgIDRiOjBiOjhiOjkzOjExOmI4OjU0OjczOjdi
Ci0gICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5
djMgZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czogCi0g
ICAgICAgICAgICAgICAgQ0E6RkFMU0UKLSAgICAgICAgICAgIE5ldHNjYXBlIENlcnQgVHlwZTog
Ci0gICAgICAgICAgICAgICAgU1NMIFNlcnZlcgotICAgICAgICAgICAgTmV0c2NhcGUgQ29tbWVu
dDogCi0gICAgICAgICAgICAgICAgT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUKLSAgICAg
ICAgICAgIFg1MDl2MyBTdWJqZWN0IEtleSBJZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICA4
MjpBMTo3Mzo4QjoxNjowQzo3QzpFNDpEMzo0Njo5NToxMzo5NToxQTozMjpDMTo4NDpFOTowNjow
MAotICAgICAgICAgICAgWDUwOXYzIEF1dGhvcml0eSBLZXkgSWRlbnRpZmllcjogCi0gICAgICAg
ICAgICAgICAga2V5aWQ6RUI6MTY6Nzc6MTA6OTI6QkI6Mjg6NzA6Njk6OTc6OUE6NkY6QTA6Njg6
NEU6MUE6Mzc6RkI6RTY6RjMKLQotICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTFXaXRoUlNB
RW5jcnlwdGlvbgotICAgICAgICA2YjpiMzo0NjoyOTowMjpkZjpiMDpjODo4ZTpjNDpkNzo3Zjph
MDoxZTowZDoxYTplYjoyZjoKLSAgICAgICAgZGY6ZDE6NDg6NTc6MzY6NWY6OTU6OGM6MWI6ZjA6
NTE6ZDY6NTI6ZTc6OGQ6ODQ6M2I6OWY6Ci0gICAgICAgIGQ4OmVkOjIyOjljOmFhOmJkOmVlOjli
OjkwOjFkOjg0OmEzOjRjOjBiOmNiOmViOjY0OjczOgotICAgICAgICBiYTpmNzoxNTpjZTpkYTo1
ZjpkYjo4YjoxNTowNzphNjoyODo3ZjpiOTo4YzoxMTo5Yjo2NDoKLSAgICAgICAgZDM6ZjE6YmU6
NTI6NGY6YzM6ZDg6NTg6ZmU6ZGU6NTY6NjM6NjM6M2I6NTE6ZWQ6YTc6ODE6Ci0gICAgICAgIGY5
OjA1OjUxOjcwOjYzOjMyOjA5OjBlOjk0OjdlOjA1OmZlOmExOjU2OjE4OjM0Ojk4OmQ1OgotICAg
ICAgICA5OToxZTo0ZToyNzozODo4OTo5MDo2YTplNTpjZTo2MDozNTowMTpmNTpkZTozNDo2MDpi
MToKLSAgICAgICAgY2I6YWUKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ21EQ0NB
Z0dnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFVRkFEQkpNUXN3Q1FZRFZRUUdFd0pLVURFTwot
TUF3R0ExVUVDQk1GVkc5cmVXOHhGREFTQmdOVkJBb1RDM0I1ZDJWaWMyOWphMlYwTVJRd0VnWURW
UVFERXd0dwotZVhkbFluTnZZMnRsZERBZUZ3MHhNakEyTURZd056STFNRGhhRncwek9URXdNak13
TnpJMU1EaGFNRWt4Q3pBSgotQmdOVkJBWVRBa3BRTVE0d0RBWURWUVFJRXdWVWIydDViekVVTUJJ
R0ExVUVDaE1MY0hsM1pXSnpiMk5yWlhReAotRkRBU0JnTlZCQU1UQzNCNWQyVmljMjlqYTJWME1J
R2ZNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0R05BRENCaVFLQgotZ1FEZUVNNDZXZ1NrSENtVFhDT0NH
dklHQWVZcnBBL2RkMGwyaVFPaUlkNEVkY2JpM2ZzMUp6cWlrbzRTWWlzKwotSC9SNDM3YVV5eWZX
eTlZMzExd0k4QWsreWM0a0xRREozMHJnbWVYN0k2bmkxc2s5bHZvQmlONWFpYkRQQTJkdgotQklZ
ZDcySWNWYWtIbWk1bUtuTmJUR0lEK1lLRDIyaS91RXNMaTVNUnVGUnpld0lEQVFBQm80R1BNSUdN
TUFrRwotQTFVZEV3UUNNQUF3RVFZSllJWklBWWI0UWdFQkJBUURBZ1pBTUN3R0NXQ0dTQUdHK0VJ
QkRRUWZGaDFQY0dWdQotVTFOTUlFZGxibVZ5WVhSbFpDQkRaWEowYVdacFkyRjBaVEFkQmdOVkhR
NEVGZ1FVZ3FGeml4WU1mT1RUUnBVVAotbFJveXdZVHBCZ0F3SHdZRFZSMGpCQmd3Rm9BVTZ4WjNF
Sks3S0hCcGw1cHZvR2hPR2pmNzV2TXdEUVlKS29aSQotaHZjTkFRRUZCUUFEZ1lFQWE3TkdLUUxm
c01pT3hOZC9vQjROR3VzdjM5RklWelpmbFl3YjhGSFdVdWVOaER1ZgotMk8waW5LcTk3cHVRSFlT
alRBdkw2MlJ6dXZjVnp0cGYyNHNWQjZZb2Y3bU1FWnRrMC9HK1VrL0QyRmorM2xaagotWXp0Ujdh
ZUIrUVZSY0dNeUNRNlVmZ1grb1ZZWU5KalZtUjVPSnppSmtHcmx6bUExQWZYZU5HQ3h5NjQ9Ci0t
LS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQv
Y2xpZW50X2NlcnQucDEyIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMgpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTRlMTM5OTI3OTgyZmE5ODIzYTU3MjMxYWYxMTM0
OTlkNmE1YThiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyNTgyCnpjbVkrRlhI
KmppN0tNYCMwdEJnMnF6Rml0UCFmPFBIQS0qTkxvQFZfZ2NmMHQ4V0IoI0k/eyVZUkZ4KnVgJSl5
Sgp6MW5HIUszNWJxaFhyWDdBYjlRJWpmODZ1bHglWnYtPiVIXkFhWnB3ZWtQNDJZbn1nNnYjT3VZ
QThHdG12VmpTSWoKekZwaDVVKChaJWZBU3dTdWtZWEdwPUYqQSkwUmZpPGAlZU9kXkZwQmktZiNz
N2Zpcj8+MmNXJFQjOzIqR0FQX0FlCnoxXyNscm4yRShlS09NSjZOMjZZSm5lX0BocH1TS1BYVUI3
Rk1lcl9+NXwxcWdDe1Rxbm5CdXYxJGtwcDVPQnolQAp6PG15U3crP1k+XmpBWjQjWEEtfSohUXNi
dU9oVyhzTzgzNjYoJDsoMUE+bW8oTy0leChobig9eVo7eX5ORyNRWDEKemdIa1NpXl44Y3Y0VFRT
TDl2bjVxUig+X0QzZiZvYypqd1BnSSNLQFEjQXNMKUQ7QkQmV2IyZCtJMV5KN24+fVlaCnpiQ1hv
OWZPQGchQGRXWWEyViV9Oykhezx6RGN8KHB2SklheFc3TmRPJU82Zj5yJmFPcnBIa3tvX1I5bVE0
N3VvYgp6P2w+OXxufFgzYGFncF5HO0x3WFI1PChscitSPGNMNWpUUSg/XkQ8a1JvIUhfVCNwP3kz
ZH1edENZViE4Ul5OP30KekMqJVhtOUxlZj5qN2hsci0/akhscHx3ZkEmXm4tczs8IXokcUQxeFBx
IThLUTF9fmR1cHd+Qk0xZ3N+QEFvO0NxCnp3UmdVfDJeZH1OLWdWO0BhWWt1OEklfXw8bDZRTT89
ZH5GWXBiR0ZIOSZ2TmdLWipTeWNJU3xtY3VPUj9sJkNPdwp6c3t6ZDV6bWVseHFOMURReXt9UGdC
PXUjZnpJTlBrQjBvTipjazN2YCsxeyFZWFB+e0VWSTdWcWgqfnVhV19+VUMKemxSMzNSWjA1SGhr
Qy0xZUlwKS1AWV55dmMtfFIlISo5ZHc3bmZXKXlqY0hJWWY2cj1hQ3QoVWhpLUZKbTJue18pCnol
e3VsQlVYUmAyPD5seH1lR21TbVJKPjVvdGtAKCtwanNQcTs0aFo2RklLbCN7bnhQIUFMITI4X19B
WWZsYFZnewp6bFJSYUFSfFZteTFfYF5iYmpacnpBe1EkbFllaklZZF5BJFo+VyZqeW5NPUtgVGw0
d1YpM3dAZDFKY2AtNS1DR0oKenhxXkA4XyghPFpGMnFsaF9afX1ucj9TJjUqeitGQCl2KFoxRUlz
O0htfSExfk1UTCFqMUBjJFpITFJ9Vig9O15vCnpkVXBmeT9vPnl6b2xfc2k8PFVFQj10KGVlQnpn
Sl5XWXdzSENHOTM0cyRkKUBxcUh3Z155Wk17YF5qSiE5O3RyNgp6ZW9VYXkmJCtCeUd8Tl5fem9B
SF50WUlnPmhhWXd8QHxjMzFedyhuVWQ3ayhZbUVKNzZWWTc5KyhDKF8kOzFNc1UKemhpTmkrQjVn
U3JEanw5PjxAPzZSJjh6Ym04YnI/Qy1ObjFjaygrPE5LJTcpNnYtd1dxND1NX1RidDE5NHpVKnlG
CnpoPG90PEhCV25veEIlMWs5KE0wbzxOZylSZ0hTKCM/ZWRFUUIhXnxGay1fKGFgYlVCTEFLKmh+
YXp+IV94dT1UNAp6Nkc1Sy1hWEpvdEhRbEVDOENVNXxSeU1SdVFrWEUpP152NihpPU11KT0kXm8l
MCF5czVHVlJhWFoyUzJINEk4M0wKenEpYmB8UHh7KDg5VzMyenE0c3F6SCtCQUtQOXVhREVwRDhJ
SUE5RC1INDVDJVZUP0pKI01hK0JAaTlNUGRGLSMjCnpOeEY1VHV9aXpfaHokU0taMF9fJiFZcDF5
YWRWem9jQEV5K0JlZkpDdENTVmQ1KEp5KDxDNkljQ1d9RG1Id0M4VAp6UntrcXZSQD8zcnpMRzIk
WmRjeC01dkZSQGQkUSNERCt+e2RoQG1kX2VgQkI2KlVZNlIrNF4jVSV6NGx0eDlCJTsKek5WOHoq
e0djR007Z3EyUnR5ZGp7SDBTMHAjejw2JTdtMyElez9NUXVhPGBAZTViT3RiZCFFYz9HXnV4ZjRn
eGNJCnotRjdTVFlpfnZEYm12Q1ozTkRjZkhqOD5DOUZWNmpkMX0ocFN3cmdHaypRWjlScjQpNiFz
U2tUVXFieGJhZWEydQp6d1NgJHlvc1EpZWIlb192Sk8qIUFgZFI7WTRrPiZxWXp1YS1aTkU8M0ZF
PUkrZVNVO3ghcHReQTM1Pm9Jb1BgSnEKelpsfilyQzYwTCtrU3hBZ29QRXxyR2pWQD8yQXkqWGI9
JGNgY19MMz1FemhqQlVEPWgxXzQlZUJDZmxqJkVIWm1PCnpzezFifE51eDYrO0sjS0I9VGtffGlr
fHsqMDFkayQ5S2E2YGNSVT1NY1lpTiFrLWEpMlBEMzFoPGNUcyVrUGhvWgp6Tykyd19UOS04dzJO
TSYmcTJwbDReS3F9Q1BlPWw5aHEkVzQhdDtKRCV8VUooMjh2RGJNKkw+VkY3YldfWHtiMTQKekdO
dyh3PkVfUzlgPDt4UWxQYEBzZD42bTNuMilMKTBwIVhSckQjMjVpSWtSRHMpMXVqTiVTc3l3IzYy
dmR2JkFsCnpjZGotWWwjNitAYTBXc2NVPDNgZ3ZXJDJ3LSheSGZFUnl4c05zcTZtSzBkODs/MExT
ZU5oJU5FZTBCWUo0SUwoYQp6JFdYbmQpUEJXPEFUa3t5JTJTOUdQYTJxeUpXJF5KSl9jb19YUDFt
OUV9ailRP15sJCMqTUR4UDV8bVkxemNxM3kKemI9QHp5Q1h1Z3dke05qeD9pMjdqK3pYTzQqVj59
WmUtekJReClIeW53TGBOaighOXQpNTRkTzt6VFZ+LU8jO1U7CnpNd3AwUFUtdVVMPyMjOEwtKSZ2
bWJuQW1uI0AmYT52PWNQfUVVUUpWd2FEdzlWPC1Jd1l0aVQ5dyhUTWVhMiVEeQp6fEE0MCRONXVv
aVFFXl97UzEtaWBxNWx0dHBnPlNENHBhZmhmbEJ8NlBFPiE+c2hXa29FbVpoZyt+MEhwPDNLVEAK
ejlqayRxTUM9MCZCYmteZlJvNGYzOEp+aVdDfHhHUDBgd1ozRiNrOGcqSWROWSRHRi1BeDhePERy
Ql5qMjhYYjZzCnpSfDtWdmFyJTx8VFpLfj4zMGtEMylXJEFEIyh0dGAjQHg3UThPWWFwVF9KeU0x
dlQ/bGJ4LStfRihKRiV5UzBPJAp6cFMjbH13KjBqPmJ9TTNlOzRJPntwTU0+cyVgP2ZTQUVfUWJg
QW4+X1Yha2l9JDl3TU45KGZVMXVKR20wTWk3aEsKekE1bDBlMXdWY14kcWw/NWdtPjhFdkJwU2FX
ZjVUSWczWlNidUpocDthJShaK2tje2NkdjFQdVgkZTJHQU4/SmY4CnpXS05nUzwoTTJGTlVgUnhk
Qkd9Zj1TMXJuUSplUjEycUZfQyYmcG5AYHklQ35MOV5RX1o5bGgmRz1YdkdDITQxMAp6eW4pNW89
KXgyaUpZK14/XkVMam50SEhgfUspemE/ST18diEkaEwwbiZHenlwemFMd05kZU09T2pXfC0tPW1S
X2oKenl0P35WeF9fOUJFdmNoTD85aHVVb2ItNW4rcjE/PHhAY2d9NWF8VnxGY0ZRTyplSXB3WkVu
flZHTGVxdlNAV2syCnopIStEMy07ezRAT08pYitiUU8jPS1FK0JlT0BmITM8aVQwbWIycGIzODh7
R0lSYXJqZG5UaSVAPzRxd3kjcTYwWQp6cWlBfHt0Nm80OUVNMThKJnc4REEjd1FERHNGd04kSEcq
TVRMMjFCUWopWVJgVzVMO1pmTU08KnJMPUZJZ3wwYkoKelQ5cjdGbEJMTF5yViUxVU8hM3xHREVh
TSFqSFBMcj81UUJ1Q0MhVyk+ZHJmXlJDYGA3WVJZWihLPmllMD5wSmReCnpKV19IeyUpXmMhNj5s
fDlQOD9jPWooQjU3WUp6OD9YeVF6RTl1R2F9ZFYwUFRwMyE7cCFTRil9dC1pPkM8RWRIKwp6TUtB
U25WIyEmU1dmZH0wZGxqWHN5UWZ6c0A2aTArZHFTSEpMfkY3fm90fCRId2YrRiowakNLKnc1V29G
QFE5aE4KemhsayVTe2g2QzU3Q0kyXzVSOTtmMztwLTE+RFVuKlVeZW9HamhxbzsqUioka1ZFMDFK
PlRKUVJzdjlveiZrITN6CnprV1Q7KjBRZTBNM1VDTHcwRD1KK2ZHZmNGdkpVfGBVZHNLXzM0dFR2
SHtmJi1ZOFdGR2g/XlAhWDU7eT1GWnVEcwpmZnJXazAlTShPR25UTU48aCZxQHlMZERVXyZNY0Fm
P3wxa01lalVObwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9rZXkucGVtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC9jZXJ0L2tleS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZh
ZTg1ODMxOGYyOWJhNmI0NjIzYmQ1ZmJjNGEwOGNlNzNkOTAzMTEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2tleS5wZW0K
KysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtF
WS0tLS0tCi1NSUlDWGdJQkFBS0JnUURlRU00NldnU2tIQ21UWENPQ0d2SUdBZVlycEEvZGQwbDJp
UU9pSWQ0RWRjYmkzZnMxCi1KenFpa280U1lpcytIL1I0MzdhVXl5Zld5OVkzMTF3SThBayt5YzRr
TFFESjMwcmdtZVg3STZuaTFzazlsdm9CCi1pTjVhaWJEUEEyZHZCSVlkNzJJY1Zha0htaTVtS25O
YlRHSUQrWUtEMjJpL3VFc0xpNU1SdUZSemV3SURBUUFCCi1Bb0dCQUl1Q3VWMVZjbmI3cm04Q3d0
Z1pQNVhnbVk4dlNqeFRsZGFmYTZYdmF3RVlVVFAwUzc3di8xbGxnMVl2Ci1VSVYrSStQUWdHOW9W
b1lPbDIyTG9pbUhTL1ozZTFmc290NXREWXN6R2U4L0drc3Q0b2FSZVNveHZCVWE2V1hwCi1RU283
WUZDYWp1SHRFK1cvZ3pGK1VIYmR6elhJRGpRWjMxNExORjV0KzRVbnNFUEJBa0VBK2dpckltcVdv
TTJ0Ci0zVVI4ZjhvZWtFUndzbUVNZjlESDVZcEg0Y3ZVbnZJK2t3ZXNDL3IyVThTaG8rK2Z5RU1V
Tm03YUlYR3FOTGdhCi1vZ0FNKzROWDRRSkJBT05kU3hTYXkyMmVnVEdOb0loTG5kbGpXa3VPdC85
RldqMmtsZi80UXhENGJsTUpRNU9xCi1RZE9HQWg3blZRanBQTFE1RDdDQlZBS3BHTTJDRCtRSkJ0
c0NRRVAya3ozNXB4UHlsRzN1cmNDMm1mUXhCa2tXCi1aQ1ZpQk5QNThHd0owYk9hdVRPU0JFd0ZY
V3VMcVR3OGFEd3hMNDlVTm1xYzBOMGZwZTJmQWVoajNVRUNRUUNtCi1GSC9EalU4THc3eWJkZGpO
dG02WFhQdVlOYWd4ejNjYmtCNEIzRmNoRGxlSVVEd01vVkYwTVc5Ykk1LzU0bVYxCi1RRGsxdFVL
b3J0eHZRWkphQUQ0QkFrRUFoR09IUXFQZDZiQkJvRkJ2cGFMelBKTXh3TEtyQitXdGtxL1FsQzcy
Ci1DbFJpTW4yZzhTQUxpSUwzQkRnR1hLY0tFL1d5N2pvL2FmL0pDelEvY1BxdC9BPT0KLS0tLS0t
RU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiZDcwM2Q4MjFlYTViYWVlMTU1NjExZWU4NDdmMjcw
Y2JhMjZmNzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC9jZXJ0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NhY2VydC5wZW0KLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L2NlcnQvY2VydC5wZW0KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvY2xpZW50X2NlcnQucDEy
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC9jZXJ0L2tleS5wZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
Y2xpZW50X2Zvcl90ZXN0aW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jbGllbnRfZm9yX3Rlc3Rpbmcu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3ZjgwNWVlOTRlNTQ5NDY5ZWQ4NzBk
YWU3ZTBjY2YyMDI2YmVhYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwxMTAwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmln
aHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiV2ViU29ja2V0IGNsaWVudCB1dGlsaXR5IGZvciB0ZXN0aW5nLgotCi1U
aGlzIG1vZHVsZSBjb250YWlucyBoZWxwZXIgbWV0aG9kcyBmb3IgcGVyZm9ybWluZyBoYW5kc2hh
a2UsIGZyYW1lCi1zZW5kaW5nL3JlY2VpdmluZyBhcyBhIFdlYlNvY2tldCBjbGllbnQuCi0KLVRo
aXMgaXMgY29kZSBmb3IgdGVzdGluZyBtb2RfcHl3ZWJzb2NrZXQuIEtlZXAgdGhpcyBjb2RlIGlu
ZGVwZW5kZW50IGZyb20KLW1vZF9weXdlYnNvY2tldC4gRG9uJ3QgaW1wb3J0IGUuZy4gU3RyZWFt
IGNsYXNzIGZvciBnZW5lcmF0aW5nIGZyYW1lIGZvcgotdGVzdGluZy4gVXNpbmcgdXRpbC5oZXhp
ZnksIGV0Yy4gdGhhdCBhcmUgbm90IHJlbGF0ZWQgdG8gcHJvdG9jb2wgcHJvY2Vzc2luZwotaXMg
YWxsb3dlZC4KLQotTm90ZToKLVRoaXMgY29kZSBpcyBmYXIgZnJvbSByb2J1c3QsIGUuZy4sIHdl
IGN1dCBjb3JuZXJzIGluIGhhbmRzaGFrZS4KLSIiIgotCi0KLWltcG9ydCBiYXNlNjQKLWltcG9y
dCBlcnJubwotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHJhbmRvbQotaW1wb3J0
IHJlCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgdGltZQotCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
dXRpbAotCi0KLURFRkFVTFRfUE9SVCA9IDgwCi1ERUZBVUxUX1NFQ1VSRV9QT1JUID0gNDQzCi0K
LSMgT3Bjb2RlcyBpbnRyb2R1Y2VkIGluIElFVEYgSHlCaSAwMSBmb3IgdGhlIG5ldyBmcmFtaW5n
IGZvcm1hdAotT1BDT0RFX0NPTlRJTlVBVElPTiA9IDB4MAotT1BDT0RFX0NMT1NFID0gMHg4Ci1P
UENPREVfUElORyA9IDB4OQotT1BDT0RFX1BPTkcgPSAweGEKLU9QQ09ERV9URVhUID0gMHgxCi1P
UENPREVfQklOQVJZID0gMHgyCi0KLSMgU3RyaW5ncyB1c2VkIGZvciBoYW5kc2hha2UKLV9VUEdS
QURFX0hFQURFUiA9ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwotX1VQR1JBREVfSEVBREVSX0hJ
WElFNzUgPSAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLV9DT05ORUNUSU9OX0hFQURFUiA9ICdD
b25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLQotV0VCU09DS0VUX0FDQ0VQVF9VVUlEID0gJzI1OEVB
RkE1LUU5MTQtNDdEQS05NUNBLUM1QUIwREM4NUIxMScKLQotIyBTdGF0dXMgY29kZXMKLVNUQVRV
U19OT1JNQUxfQ0xPU1VSRSA9IDEwMDAKLVNUQVRVU19HT0lOR19BV0FZID0gMTAwMQotU1RBVFVT
X1BST1RPQ09MX0VSUk9SID0gMTAwMgotU1RBVFVTX1VOU1VQUE9SVEVEX0RBVEEgPSAxMDAzCi1T
VEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEID0gMTAwNQotU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUg
PSAxMDA2Ci1TVEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlMT0FEX0RBVEEgPSAxMDA3Ci1TVEFUVVNf
UE9MSUNZX1ZJT0xBVElPTiA9IDEwMDgKLVNUQVRVU19NRVNTQUdFX1RPT19CSUcgPSAxMDA5Ci1T
VEFUVVNfTUFOREFUT1JZX0VYVCA9IDEwMTAKLVNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJP
UiA9IDEwMTEKLVNUQVRVU19UTFNfSEFORFNIQUtFID0gMTAxNQotCi0jIEV4dGVuc2lvbiB0b2tl
bnMKLV9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiA9ICdkZWZsYXRlLWZyYW1lJwotIyBUT0RPKGJh
c2hpKTogVXBkYXRlIGFmdGVyIG11eCBpbXBsZW1lbnRhdGlvbiBmaW5pc2hlZC4KLV9NVVhfRVhU
RU5TSU9OID0gJ211eF9ET19OT1RfVVNFJwotX1BFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04g
PSAncGVybWVzc2FnZS1kZWZsYXRlJwotCi1kZWYgX21ldGhvZF9saW5lKHJlc291cmNlKToKLSAg
ICByZXR1cm4gJ0dFVCAlcyBIVFRQLzEuMVxyXG4nICUgcmVzb3VyY2UKLQotCi1kZWYgX3NlY19v
cmlnaW5faGVhZGVyKG9yaWdpbik6Ci0gICAgcmV0dXJuICdTZWMtV2ViU29ja2V0LU9yaWdpbjog
JXNcclxuJyAlIG9yaWdpbi5sb3dlcigpCi0KLQotZGVmIF9vcmlnaW5faGVhZGVyKG9yaWdpbik6
Ci0gICAgIyA0LjEgMTMuIGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZyAiT3JpZ2luOiIsIGEg
VSswMDIwIFNQQUNFIGNoYXJhY3RlciwKLSAgICAjIGFuZCB0aGUgL29yaWdpbi8gdmFsdWUsIGNv
bnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2UsIHRvIC9maWVsZHMvLgotICAgIHJldHVybiAnT3Jp
Z2luOiAlc1xyXG4nICUgb3JpZ2luLmxvd2VyKCkKLQotCi1kZWYgX2Zvcm1hdF9ob3N0X2hlYWRl
cihob3N0LCBwb3J0LCBzZWN1cmUpOgotICAgICMgNC4xIDkuIExldCAvaG9zdHBvcnQvIGJlIGFu
IGVtcHR5IHN0cmluZy4KLSAgICAjIDQuMSAxMC4gQXBwZW5kIHRoZSAvaG9zdC8gdmFsdWUsIGNv
bnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2UsIHRvCi0gICAgIyAvaG9zdHBvcnQvCi0gICAgaG9z
dHBvcnQgPSBob3N0Lmxvd2VyKCkKLSAgICAjIDQuMSAxMS4gSWYgL3NlY3VyZS8gaXMgZmFsc2Us
IGFuZCAvcG9ydC8gaXMgbm90IDgwLCBvciBpZiAvc2VjdXJlLwotICAgICMgaXMgdHJ1ZSwgYW5k
IC9wb3J0LyBpcyBub3QgNDQzLCB0aGVuIGFwcGVuZCBhIFUrMDAzQSBDT0xPTiBjaGFyYWN0ZXIK
LSAgICAjICg6KSBmb2xsb3dlZCBieSB0aGUgdmFsdWUgb2YgL3BvcnQvLCBleHByZXNzZWQgYXMg
YSBiYXNlLXRlbiBpbnRlZ2VyLAotICAgICMgdG8gL2hvc3Rwb3J0LwotICAgIGlmICgobm90IHNl
Y3VyZSBhbmQgcG9ydCAhPSBERUZBVUxUX1BPUlQpIG9yCi0gICAgICAgIChzZWN1cmUgYW5kIHBv
cnQgIT0gREVGQVVMVF9TRUNVUkVfUE9SVCkpOgotICAgICAgICBob3N0cG9ydCArPSAnOicgKyBz
dHIocG9ydCkKLSAgICAjIDQuMSAxMi4gY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJIb3N0
OiIsIGEgVSswMDIwIFNQQUNFCi0gICAgIyBjaGFyYWN0ZXIsIGFuZCAvaG9zdHBvcnQvLCB0byAv
ZmllbGRzLy4KLSAgICByZXR1cm4gJ0hvc3Q6ICVzXHJcbicgJSBob3N0cG9ydAotCi0KLSMgVE9E
Tyh0eW9zaGlubyk6IERlZmluZSBhIGJhc2UgY2xhc3MgYW5kIG1vdmUgdGhlc2Ugc2hhcmVkIG1l
dGhvZHMgdG8gdGhhdC4KLQotCi1kZWYgcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIGxlbmd0aCk6Ci0g
ICAgcmVjZWl2ZWRfYnl0ZXMgPSBbXQotICAgIHJlbWFpbmluZyA9IGxlbmd0aAotICAgIHdoaWxl
IHJlbWFpbmluZyA+IDA6Ci0gICAgICAgIG5ld19yZWNlaXZlZF9ieXRlcyA9IHNvY2tldC5yZWN2
KHJlbWFpbmluZykKLSAgICAgICAgaWYgbm90IG5ld19yZWNlaXZlZF9ieXRlczoKLSAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbiBjbG9zZWQg
YmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3RoICcKLSAgICAgICAgICAgICAgICAnKHJl
cXVlc3RlZCAlZCBieXRlcyBidXQgcmVjZWl2ZWQgb25seSAlZCBieXRlcyknICUKLSAgICAgICAg
ICAgICAgICAobGVuZ3RoLCBsZW5ndGggLSByZW1haW5pbmcpKQotICAgICAgICByZWNlaXZlZF9i
eXRlcy5hcHBlbmQobmV3X3JlY2VpdmVkX2J5dGVzKQotICAgICAgICByZW1haW5pbmcgLT0gbGVu
KG5ld19yZWNlaXZlZF9ieXRlcykKLSAgICByZXR1cm4gJycuam9pbihyZWNlaXZlZF9ieXRlcykK
LQotCi0jIFRPRE8odHlvc2hpbm8pOiBOb3cgdGhlIFdlYlNvY2tldEhhbmRzaGFrZSBjbGFzcyBk
aXZlcnRzIHRoZXNlIG1ldGhvZHMuIFdlCi0jIHNob3VsZCBtb3ZlIHRvIEhUVFAgcGFyc2VyIGFz
IHNwZWNpZmllZCBpbiBSRkMgNjQ1NS4gRm9yIEh5QmkgMDAgYW5kCi0jIEhpeGllIDc1LCBwYWNr
IHRoZXNlIG1ldGhvZHMgYXMgc29tZSBwYXJzZXIgY2xhc3MuCi0KLQotZGVmIF9yZWFkX2ZpZWxk
cyhzb2NrZXQpOgotICAgICMgNC4xIDMyLiBsZXQgL2ZpZWxkcy8gYmUgYSBsaXN0IG9mIG5hbWUt
dmFsdWUgcGFpcnMsIGluaXRpYWxseSBlbXB0eS4KLSAgICBmaWVsZHMgPSB7fQotICAgIHdoaWxl
IFRydWU6Ci0gICAgICAgICMgNC4xIDMzLiBsZXQgL25hbWUvIGFuZCAvdmFsdWUvIGJlIGVtcHR5
IGJ5dGUgYXJyYXlzCi0gICAgICAgIG5hbWUgPSAnJwotICAgICAgICB2YWx1ZSA9ICcnCi0gICAg
ICAgICMgNC4xIDM0LiByZWFkIC9uYW1lLwotICAgICAgICBuYW1lID0gX3JlYWRfbmFtZShzb2Nr
ZXQpCi0gICAgICAgIGlmIG5hbWUgaXMgTm9uZToKLSAgICAgICAgICAgIGJyZWFrCi0gICAgICAg
ICMgNC4xIDM1LiByZWFkIHNwYWNlcwotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBTa2lwIG9u
bHkgb25lIHNwYWNlIGFzIGRlc2NyaWJlZCBpbiB0aGUgc3BlYy4KLSAgICAgICAgY2ggPSBfc2tp
cF9zcGFjZXMoc29ja2V0KQotICAgICAgICAjIDQuMSAzNi4gcmVhZCAvdmFsdWUvCi0gICAgICAg
IHZhbHVlID0gX3JlYWRfdmFsdWUoc29ja2V0LCBjaCkKLSAgICAgICAgIyA0LjEgMzcuIHJlYWQg
YSBieXRlIGZyb20gdGhlIHNlcnZlcgotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0
LCAxKQotICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlciB3aGls
ZSByZWFkaW5nIHZhbHVlICVyIGZvciBoZWFkZXIgJwotICAgICAgICAgICAgICAgICclcicgJSAo
Y2gsIG5hbWUsIHZhbHVlKSkKLSAgICAgICAgIyA0LjEgMzguIGFwcGVuZCBhbiBlbnRyeSB0byB0
aGUgL2ZpZWxkcy8gbGlzdCB0aGF0IGhhcyB0aGUgbmFtZQotICAgICAgICAjIGdpdmVuIGJ5IHRo
ZSBzdHJpbmcgb2J0YWluZWQgYnkgaW50ZXJwcmV0aW5nIHRoZSAvbmFtZS8gYnl0ZQotICAgICAg
ICAjIGFycmF5IGFzIGEgVVRGLTggc3RyZWFtIGFuZCB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN0
cmluZwotICAgICAgICAjIG9idGFpbmVkIGJ5IGludGVycHJldGluZyB0aGUgL3ZhbHVlLyBieXRl
IGFycmF5IGFzIGEgVVRGLTggYnl0ZQotICAgICAgICAjIHN0cmVhbS4KLSAgICAgICAgZmllbGRz
LnNldGRlZmF1bHQobmFtZSwgW10pLmFwcGVuZCh2YWx1ZSkKLSAgICAgICAgIyA0LjEgMzkuIHJl
dHVybiB0byB0aGUgIkZpZWxkIiBzdGVwIGFib3ZlCi0gICAgcmV0dXJuIGZpZWxkcwotCi0KLWRl
ZiBfcmVhZF9uYW1lKHNvY2tldCk6Ci0gICAgIyA0LjEgMzMuIGxldCAvbmFtZS8gYmUgZW1wdHkg
Ynl0ZSBhcnJheXMKLSAgICBuYW1lID0gJycKLSAgICB3aGlsZSBUcnVlOgotICAgICAgICAjIDQu
MSAzNC4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVyCi0gICAgICAgIGNoID0gcmVjZWl2ZV9i
eXRlcyhzb2NrZXQsIDEpCi0gICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKLSAgICAgICAg
ICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsaWYgY2ggPT0gJ1xuJzogICMgMHgwQQotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIExGIHdo
ZW4gcmVhZGluZyBoZWFkZXIgbmFtZSAlcicgJSBuYW1lKQotICAgICAgICBlbGlmIGNoID09ICc6
JzogICMgMHgzQQotICAgICAgICAgICAgcmV0dXJuIG5hbWUKLSAgICAgICAgZWxpZiBjaCA+PSAn
QScgYW5kIGNoIDw9ICdaJzogICMgcmFuZ2UgMHgzMSB0byAweDVBCi0gICAgICAgICAgICBjaCA9
IGNocihvcmQoY2gpICsgMHgyMCkKLSAgICAgICAgICAgIG5hbWUgKz0gY2gKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIG5hbWUgKz0gY2gKLQotCi1kZWYgX3NraXBfc3BhY2VzKHNvY2tldCk6
Ci0gICAgIyA0LjEgMzUuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgotICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDEpCi0gICAgICAgIGlmIGNo
ID09ICcgJzogICMgMHgyMAotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgcmV0dXJuIGNo
Ci0KLQotZGVmIF9yZWFkX3ZhbHVlKHNvY2tldCwgY2gpOgotICAgICMgNC4xIDMzLiBsZXQgL3Zh
bHVlLyBiZSBlbXB0eSBieXRlIGFycmF5cwotICAgIHZhbHVlID0gJycKLSAgICAjIDQuMSAzNi4g
cmVhZCBhIGJ5dGUgZnJvbSBzZXJ2ZXIuCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgaWYgY2gg
PT0gJ1xyJzogICMgMHgwRAotICAgICAgICAgICAgcmV0dXJuIHZhbHVlCi0gICAgICAgIGVsaWYg
Y2ggPT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICdVbmV4cGVjdGVkIExGIHdoZW4gcmVhZGluZyBoZWFkZXIgdmFsdWUgJXInICUg
dmFsdWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB2YWx1ZSArPSBjaAotICAgICAgICBj
aCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAxKQotCi0KLWRlZiByZWFkX2ZyYW1lX2hlYWRlcihz
b2NrZXQpOgotICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDIpCi0KLSAgICBm
aXJzdF9ieXRlID0gb3JkKHJlY2VpdmVkWzBdKQotICAgIGZpbiA9IChmaXJzdF9ieXRlID4+IDcp
ICYgMQotICAgIHJzdjEgPSAoZmlyc3RfYnl0ZSA+PiA2KSAmIDEKLSAgICByc3YyID0gKGZpcnN0
X2J5dGUgPj4gNSkgJiAxCi0gICAgcnN2MyA9IChmaXJzdF9ieXRlID4+IDQpICYgMQotICAgIG9w
Y29kZSA9IGZpcnN0X2J5dGUgJiAweGYKLQotICAgIHNlY29uZF9ieXRlID0gb3JkKHJlY2VpdmVk
WzFdKQotICAgIG1hc2sgPSAoc2Vjb25kX2J5dGUgPj4gNykgJiAxCi0gICAgcGF5bG9hZF9sZW5n
dGggPSBzZWNvbmRfYnl0ZSAmIDB4N2YKLQotICAgIGlmIG1hc2sgIT0gMDoKLSAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgJ01hc2sgYml0IG11c3QgYmUgMCBmb3IgZnJhbWVz
IGNvbWluZyBmcm9tIHNlcnZlcicpCi0KLSAgICBpZiBwYXlsb2FkX2xlbmd0aCA9PSAxMjc6Ci0g
ICAgICAgIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDgp
Ci0gICAgICAgIHBheWxvYWRfbGVuZ3RoID0gc3RydWN0LnVucGFjaygKLSAgICAgICAgICAgICch
UScsIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoKVswXQotICAgICAgICBpZiBwYXlsb2FkX2xlbmd0
aCA+IDB4N0ZGRkZGRkZGRkZGRkZGRjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRXh0
ZW5kZWQgcGF5bG9hZCBsZW5ndGggPj0gMl42MycpCi0gICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA9
PSAxMjY6Ci0gICAgICAgIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoID0gcmVjZWl2ZV9ieXRlcyhz
b2NrZXQsIDIpCi0gICAgICAgIHBheWxvYWRfbGVuZ3RoID0gc3RydWN0LnVucGFjaygKLSAgICAg
ICAgICAgICchSCcsIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoKVswXQotCi0gICAgcmV0dXJuIGZp
biwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkX2xlbmd0aAotCi0KLWNsYXNzIF9U
TFNTb2NrZXQob2JqZWN0KToKLSAgICAiIiJXcmFwcGVyIGZvciBhIFRMUyBjb25uZWN0aW9uLiIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJhd19zb2NrZXQpOgotICAgICAgICBzZWxmLl9z
c2wgPSBzb2NrZXQuc3NsKHJhd19zb2NrZXQpCi0KLSAgICBkZWYgc2VuZChzZWxmLCBieXRlcyk6
Ci0gICAgICAgIHJldHVybiBzZWxmLl9zc2wud3JpdGUoYnl0ZXMpCi0KLSAgICBkZWYgcmVjdihz
ZWxmLCBzaXplPS0xKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3NzbC5yZWFkKHNpemUpCi0KLSAg
ICBkZWYgY2xvc2Uoc2VsZik6Ci0gICAgICAgICMgTm90aGluZyB0byBkby4KLSAgICAgICAgcGFz
cwotCi0KLWNsYXNzIEh0dHBTdGF0dXNFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlz
IGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIHVuZXhwZWN0ZWQgaHR0cCBzdGF0dXMgY29k
ZSB3YXMKLSAgICByZWNlaXZlZCBhcyBhIHJlc3VsdCBvZiBoYW5kc2hha2UuCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc3RhdHVzKToKLSAgICAgICAgc3VwZXIoSHR0
cFN0YXR1c0V4Y2VwdGlvbiwgc2VsZikuX19pbml0X18obmFtZSkKLSAgICAgICAgc2VsZi5zdGF0
dXMgPSBzdGF0dXMKLQotCi1jbGFzcyBXZWJTb2NrZXRIYW5kc2hha2Uob2JqZWN0KToKLSAgICAi
IiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wg
KFJGQyA2NDU1KS4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAg
c2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLQotICAgIGRlZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0
KToKLSAgICAgICAgIiIiSGFuZHNoYWtlIFdlYlNvY2tldC4KLQotICAgICAgICBSYWlzZXM6Ci0g
ICAgICAgICAgICBFeGNlcHRpb246IGhhbmRzaGFrZSBmYWlsZWQuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAgICAgIHJlcXVlc3RfbGluZSA9IF9t
ZXRob2RfbGluZShzZWxmLl9vcHRpb25zLnJlc291cmNlKQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIFJlcXVlc3QtTGluZTogJXInLCByZXF1ZXN0X2xpbmUp
Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHJlcXVlc3RfbGluZSkKLQotICAgICAgICBm
aWVsZHMgPSBbXQotICAgICAgICBmaWVsZHMuYXBwZW5kKF9VUEdSQURFX0hFQURFUikKLSAgICAg
ICAgZmllbGRzLmFwcGVuZChfQ09OTkVDVElPTl9IRUFERVIpCi0KLSAgICAgICAgZmllbGRzLmFw
cGVuZChfZm9ybWF0X2hvc3RfaGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2
ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQsCi0gICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpKQotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
dmVyc2lvbiBpcyA4OgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZChfc2VjX29yaWdpbl9oZWFk
ZXIoc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmll
bGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcihzZWxmLl9vcHRpb25zLm9yaWdpbikpCi0KLSAgICAg
ICAgb3JpZ2luYWxfa2V5ID0gb3MudXJhbmRvbSgxNikKLSAgICAgICAga2V5ID0gYmFzZTY0LmI2
NGVuY29kZShvcmlnaW5hbF9rZXkpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAg
ICAgICAgICdTZWMtV2ViU29ja2V0LUtleTogJXMgKCVzKScsIGtleSwgdXRpbC5oZXhpZnkob3Jp
Z2luYWxfa2V5KSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1LZXk6ICVz
XHJcbicgJSBrZXkpCi0KLSAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1WZXJz
aW9uOiAlZFxyXG4nICUgc2VsZi5fb3B0aW9ucy52ZXJzaW9uKQotCi0gICAgICAgICMgU2V0dGlu
ZyB1cCBleHRlbnNpb25zLgotICAgICAgICBpZiBsZW4oc2VsZi5fb3B0aW9ucy5leHRlbnNpb25z
KSA+IDA6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LUV4dGVuc2lv
bnM6ICVzXHJcbicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAnLCAnLmpvaW4oc2VsZi5f
b3B0aW9ucy5leHRlbnNpb25zKSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5p
bmcgaGFuZHNoYWtlIHJlcXVlc3QgaGVhZGVyczogJXInLCBmaWVsZHMpCi0KLSAgICAgICAgZm9y
IGZpZWxkIGluIGZpZWxkczoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxk
KQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCi0KLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmluZm8oJ1NlbnQgb3BlbmluZyBoYW5kc2hha2UgcmVxdWVzdCcpCi0KLSAgICAgICAg
ZmllbGQgPSAnJwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgY2ggPSByZWNlaXZl
X2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGZpZWxkICs9IGNoCi0gICAgICAg
ICAgICBpZiBjaCA9PSAnXG4nOgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXNwb25zZS1MaW5lOiAlcicsIGZp
ZWxkKQotCi0gICAgICAgIGlmIGxlbihmaWVsZCkgPCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgn
XHJcbicpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdXcm9uZyBzdGF0dXMgbGluZTog
JXInICUgZmllbGQpCi0gICAgICAgIG0gPSByZS5tYXRjaCgnW14gXSogKFteIF0qKSAuKicsIGZp
ZWxkKQotICAgICAgICBpZiBtIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ05vIEhUVFAgc3RhdHVzIGNvZGUgZm91bmQgaW4gc3RhdHVzIGxp
bmU6ICVyJyAlIGZpZWxkKQotICAgICAgICBjb2RlID0gbS5ncm91cCgxKQotICAgICAgICBpZiBu
b3QgcmUubWF0Y2goJ1swLTldWzAtOV1bMC05XScsIGNvZGUpOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0
aHJlZSBkaWdpdCBpbiBzdGF0dXMgbGluZTogJXInICUKLSAgICAgICAgICAgICAgICAoY29kZSwg
ZmllbGQpKQotICAgICAgICBpZiBjb2RlICE9ICcxMDEnOgotICAgICAgICAgICAgcmFpc2UgSHR0
cFN0YXR1c0V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0dXMg
Y29kZSAxMDEgYnV0IGZvdW5kICVyIGluIHN0YXR1cyBsaW5lOiAnCi0gICAgICAgICAgICAgICAg
JyVyJyAlIChjb2RlLCBmaWVsZCksIGludChjb2RlKSkKLSAgICAgICAgZmllbGRzID0gX3JlYWRf
ZmllbGRzKHNlbGYuX3NvY2tldCkKLSAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNlbGYuX3Nv
Y2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdFeHBlY3RlZCBMRiBidXQgZm91bmQ6ICVyJyAlIGNoKQotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVzcG9uc2UgaGVhZGVyczog
JXInLCBmaWVsZHMpCi0KLSAgICAgICAgIyBDaGVjayAvZmllbGRzLwotICAgICAgICBpZiBsZW4o
ZmllbGRzWyd1cGdyYWRlJ10pICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ011bHRpcGxlIFVwZ3JhZGUgaGVhZGVycyBmb3VuZDogJXMnICUgZmll
bGRzWyd1cGdyYWRlJ10pCi0gICAgICAgIGlmIGxlbihmaWVsZHNbJ2Nvbm5lY3Rpb24nXSkgIT0g
MToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTXVsdGlw
bGUgQ29ubmVjdGlvbiBoZWFkZXJzIGZvdW5kOiAlcycgJSBmaWVsZHNbJ2Nvbm5lY3Rpb24nXSkK
LSAgICAgICAgaWYgZmllbGRzWyd1cGdyYWRlJ11bMF0gIT0gJ3dlYnNvY2tldCc6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgVXBncmFk
ZSBoZWFkZXIgdmFsdWU6ICVzJyAlIGZpZWxkc1sndXBncmFkZSddWzBdKQotICAgICAgICBpZiBm
aWVsZHNbJ2Nvbm5lY3Rpb24nXVswXS5sb3dlcigpICE9ICd1cGdyYWRlJzoKLSAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBDb25uZWN0aW9u
IGhlYWRlciB2YWx1ZTogJXMnICUKLSAgICAgICAgICAgICAgICBmaWVsZHNbJ2Nvbm5lY3Rpb24n
XVswXSkKLQotICAgICAgICBpZiBsZW4oZmllbGRzWydzZWMtd2Vic29ja2V0LWFjY2VwdCddKSAh
PSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0
aXBsZSBTZWMtV2ViU29ja2V0LUFjY2VwdCBoZWFkZXJzIGZvdW5kOiAlcycgJQotICAgICAgICAg
ICAgICAgIGZpZWxkc1snc2VjLXdlYnNvY2tldC1hY2NlcHQnXSkKLQotICAgICAgICBhY2NlcHQg
PSBmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtYWNjZXB0J11bMF0KLQotICAgICAgICAjIFZhbGlkYXRl
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRlY29kZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGRl
Y29kZShhY2NlcHQpCi0gICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IsIGU6Ci0gICAgICAgICAgICBy
YWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0lsbGVnYWwgdmFsdWUg
Zm9yIGhlYWRlciBTZWMtV2ViU29ja2V0LUFjY2VwdDogJyArIGFjY2VwdCkKLQotICAgICAgICBp
ZiBsZW4oZGVjb2RlZF9hY2NlcHQpICE9IDIwOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtl
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdEZWNvZGVkIHZhbHVlIG9mIFNlYy1XZWJTb2Nr
ZXQtQWNjZXB0IGlzIG5vdCAyMC1ieXRlIGxvbmcnKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnQWN0dWFsIFNlYy1XZWJTb2NrZXQtQWNjZXB0OiAlciAoJXMpJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFjY2VwdCwgdXRpbC5oZXhpZnkoZGVjb2RlZF9hY2NlcHQpKQotCi0g
ICAgICAgIG9yaWdpbmFsX2V4cGVjdGVkX2FjY2VwdCA9IHV0aWwuc2hhMV9oYXNoKAotICAgICAg
ICAgICAga2V5ICsgV0VCU09DS0VUX0FDQ0VQVF9VVUlEKS5kaWdlc3QoKQotICAgICAgICBleHBl
Y3RlZF9hY2NlcHQgPSBiYXNlNjQuYjY0ZW5jb2RlKG9yaWdpbmFsX2V4cGVjdGVkX2FjY2VwdCkK
LQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0V4cGVjdGVkIFNlYy1XZWJTb2NrZXQtQWNj
ZXB0OiAlciAoJXMpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2FjY2Vw
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWwuaGV4aWZ5KG9yaWdpbmFsX2V4cGVj
dGVkX2FjY2VwdCkpCi0KLSAgICAgICAgaWYgYWNjZXB0ICE9IGV4cGVjdGVkX2FjY2VwdDoKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSW52YWxpZCBTZWMt
V2ViU29ja2V0LUFjY2VwdCBoZWFkZXI6ICVyIChleHBlY3RlZCkgIT0gJXIgJwotICAgICAgICAg
ICAgICAgICcoYWN0dWFsKScgJSAoYWNjZXB0LCBleHBlY3RlZF9hY2NlcHQpKQotCi0gICAgICAg
IHNlcnZlcl9leHRlbnNpb25zX2hlYWRlciA9IGZpZWxkcy5nZXQoJ3NlYy13ZWJzb2NrZXQtZXh0
ZW5zaW9ucycpCi0gICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBbXQotICAgICAgICBpZiBz
ZXJ2ZXJfZXh0ZW5zaW9uc19oZWFkZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBhY2NlcHRl
ZF9leHRlbnNpb25zID0gY29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAgICAg
ICAgICcsICcuam9pbihzZXJ2ZXJfZXh0ZW5zaW9uc19oZWFkZXIpKQotCi0gICAgICAgICMgU2Nh
biBhY2NlcHRlZCBleHRlbnNpb24gbGlzdCB0byBjaGVjayBpZiB0aGVyZSBpcyBhbnkgdW5yZWNv
Z25pemVkCi0gICAgICAgICMgZXh0ZW5zaW9ucyBvciBleHRlbnNpb25zIHdlIGRpZG4ndCByZXF1
ZXN0IGluIGl0LiBUaGVuLCBmb3IKLSAgICAgICAgIyBleHRlbnNpb25zIHdlIHJlcXVlc3QsIHBh
cnNlIHRoZW0gYW5kIHN0b3JlIHBhcmFtZXRlcnMuIFRoZXkgd2lsbCBiZQotICAgICAgICAjIHVz
ZWQgbGF0ZXIgYnkgZWFjaCBleHRlbnNpb24uCi0gICAgICAgIGRlZmxhdGVfZnJhbWVfYWNjZXB0
ZWQgPSBGYWxzZQotICAgICAgICBtdXhfYWNjZXB0ZWQgPSBGYWxzZQotICAgICAgICBmb3IgZXh0
ZW5zaW9uIGluIGFjY2VwdGVkX2V4dGVuc2lvbnM6Ci0gICAgICAgICAgICBpZiBleHRlbnNpb24u
bmFtZSgpID09IF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTjoKLSAgICAgICAgICAgICAgICBpZiBz
ZWxmLl9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAgICAgICAgICBkZWZs
YXRlX2ZyYW1lX2FjY2VwdGVkID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQot
ICAgICAgICAgICAgaWYgZXh0ZW5zaW9uLm5hbWUoKSA9PSBfTVVYX0VYVEVOU0lPTjoKLSAgICAg
ICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9tdXg6Ci0gICAgICAgICAgICAgICAgICAg
IG11eF9hY2NlcHRlZCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAg
ICAgICAgIGlmIGV4dGVuc2lvbi5uYW1lKCkgPT0gX1BFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJ
T046Ci0gICAgICAgICAgICAgICAgY2hlY2tlciA9IHNlbGYuX29wdGlvbnMuY2hlY2tfcGVybWVz
c2FnZV9kZWZsYXRlCi0gICAgICAgICAgICAgICAgaWYgY2hlY2tlcjoKLSAgICAgICAgICAgICAg
ICAgICAgY2hlY2tlcihleHRlbnNpb24pCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0K
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVjZWl2ZWQg
dW5yZWNvZ25pemVkIGV4dGVuc2lvbjogJXMnICUgZXh0ZW5zaW9uLm5hbWUoKSkKLQotICAgICAg
ICAjIExldCBhbGwgZXh0ZW5zaW9ucyBjaGVjayB0aGUgcmVzcG9uc2UgZm9yIGV4dGVuc2lvbiBy
ZXF1ZXN0LgotCi0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lIGFu
ZAotICAgICAgICAgICAgbm90IGRlZmxhdGVfZnJhbWVfYWNjZXB0ZWQpOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCclcyBleHRlbnNpb24gbm90IGFjY2VwdGVkJyAlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotCi0gICAgICAgIGlm
IHNlbGYuX29wdGlvbnMudXNlX211eCBhbmQgbm90IG11eF9hY2NlcHRlZDoKLSAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignJXMgZXh0ZW5zaW9uIG5vdCBhY2NlcHRlZCcgJSBfTVVYX0VYVEVO
U0lPTikKLQotCi1jbGFzcyBXZWJTb2NrZXRIeWJpMDBIYW5kc2hha2Uob2JqZWN0KToKLSAgICAi
IiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wg
dmVyc2lvbiBIeUJpIDAwLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlv
bnMsIGRyYWZ0X2ZpZWxkKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3Nf
bG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAg
c2VsZi5fZHJhZnRfZmllbGQgPSBkcmFmdF9maWVsZAotCi0gICAgZGVmIGhhbmRzaGFrZShzZWxm
LCBzb2NrZXQpOgotICAgICAgICAiIiJIYW5kc2hha2UgV2ViU29ja2V0LgotCi0gICAgICAgIFJh
aXNlczoKLSAgICAgICAgICAgIEV4Y2VwdGlvbjogaGFuZHNoYWtlIGZhaWxlZC4KLSAgICAgICAg
IiIiCi0KLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICAgICAgIyA0LjEgNS4g
c2VuZCByZXF1ZXN0IGxpbmUuCi0gICAgICAgIHJlcXVlc3RfbGluZSA9IF9tZXRob2RfbGluZShz
ZWxmLl9vcHRpb25zLnJlc291cmNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5p
bmcgaGFuZHNoYWtlIFJlcXVlc3QtTGluZTogJXInLCByZXF1ZXN0X2xpbmUpCi0gICAgICAgIHNl
bGYuX3NvY2tldC5zZW5kYWxsKHJlcXVlc3RfbGluZSkKLSAgICAgICAgIyA0LjEgNi4gTGV0IC9m
aWVsZHMvIGJlIGFuIGVtcHR5IGxpc3Qgb2Ygc3RyaW5ncy4KLSAgICAgICAgZmllbGRzID0gW10K
LSAgICAgICAgIyA0LjEgNy4gQWRkIHRoZSBzdHJpbmcgIlVwZ3JhZGU6IFdlYlNvY2tldCIgdG8g
L2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX1VQR1JBREVfSEVBREVSX0hJWElFNzUp
Ci0gICAgICAgICMgNC4xIDguIEFkZCB0aGUgc3RyaW5nICJDb25uZWN0aW9uOiBVcGdyYWRlIiB0
byAvZmllbGRzLy4KLSAgICAgICAgZmllbGRzLmFwcGVuZChfQ09OTkVDVElPTl9IRUFERVIpCi0g
ICAgICAgICMgNC4xIDktMTIuIEFkZCBIb3N0OiBmaWVsZCB0byAvZmllbGRzLy4KLSAgICAgICAg
ZmllbGRzLmFwcGVuZChfZm9ybWF0X2hvc3RfaGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQs
Ci0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpKQotICAgICAgICAjIDQuMSAxMy4g
QWRkIE9yaWdpbjogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX29y
aWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQotICAgICAgICAjIFRPRE86IDQuMSAx
NCBBZGQgU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAg
ICMgVE9ETzogNC4xIDE1IEFkZCBjb29raWUgaGVhZGVycyB0byAvZmllbGRzLy4KLQotICAgICAg
ICAjIDQuMSAxNi0yMy4gQWRkIFNlYy1XZWJTb2NrZXQtS2V5PG4+IHRvIC9maWVsZHMvLgotICAg
ICAgICBzZWxmLl9udW1iZXIxLCBrZXkxID0gc2VsZi5fZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9r
ZXkoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ051bWJlcjE6ICVkJywgc2VsZi5fbnVt
YmVyMSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1LZXkxOiAlc1xyXG4n
ICUga2V5MSkKLSAgICAgICAgc2VsZi5fbnVtYmVyMiwga2V5MiA9IHNlbGYuX2dlbmVyYXRlX3Nl
Y193ZWJzb2NrZXRfa2V5KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1iZXIyOiAl
ZCcsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQt
S2V5MjogJXNcclxuJyAlIGtleTIpCi0KLSAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNv
Y2tldC1EcmFmdDogJXNcclxuJyAlIHNlbGYuX2RyYWZ0X2ZpZWxkKQotCi0gICAgICAgICMgNC4x
IDI0LiBGb3IgZWFjaCBzdHJpbmcgaW4gL2ZpZWxkcy8sIGluIGEgcmFuZG9tIG9yZGVyOiBzZW5k
IHRoZQotICAgICAgICAjIHN0cmluZywgZW5jb2RlZCBhcyBVVEYtOCwgZm9sbG93ZWQgYnkgYSBV
VEYtOCBlbmNvZGVkIFUrMDAwRCBDQVJSSUFHRQotICAgICAgICAjIFJFVFVSTiBVKzAwMEEgTElO
RSBGRUVEIGNoYXJhY3RlciBwYWlyIChDUkxGKS4KLSAgICAgICAgcmFuZG9tLnNodWZmbGUoZmll
bGRzKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVx
dWVzdCBoZWFkZXJzOiAlcicsIGZpZWxkcykKLSAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoK
LSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxkKQotCi0gICAgICAgICMgNC4x
IDI1LiBzZW5kIGEgVVRGLTgtZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIFUrMDAwQSBM
SU5FIEZFRUQKLSAgICAgICAgIyBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAgIHNlbGYu
X3NvY2tldC5zZW5kYWxsKCdcclxuJykKLSAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5My8gYmUg
YSBzdHJpbmcgY29uc2lzdGluZyBvZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCi0gICAgICAgICMg
ZXF1aXZhbGVudGx5LCBhIHJhbmRvbSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEgYmlnLWVu
ZGlhbiBvcmRlcikuCi0gICAgICAgIHNlbGYuX2tleTMgPSBzZWxmLl9nZW5lcmF0ZV9rZXkzKCkK
LSAgICAgICAgIyA0LjEgMjcuIHNlbmQgL2tleTMvIHRvIHRoZSBzZXJ2ZXIuCi0gICAgICAgIHNl
bGYuX3NvY2tldC5zZW5kYWxsKHNlbGYuX2tleTMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKLSAgICAgICAgICAgICdLZXkzOiAlciAoJXMpJywgc2VsZi5fa2V5MywgdXRpbC5oZXhpZnko
c2VsZi5fa2V5MykpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgb3BlbmluZyBo
YW5kc2hha2UgcmVxdWVzdCcpCi0KLSAgICAgICAgIyA0LjEgMjguIFJlYWQgYnl0ZXMgZnJvbSB0
aGUgc2VydmVyIHVudGlsIGVpdGhlciB0aGUgY29ubmVjdGlvbgotICAgICAgICAjIGNsb3Nlcywg
b3IgYSAweDBBIGJ5dGUgaXMgcmVhZC4gbGV0IC9maWVsZC8gYmUgdGhlc2UgYnl0ZXMsIGluY2x1
ZGluZwotICAgICAgICAjIHRoZSAweDBBIGJ5dGVzLgotICAgICAgICBmaWVsZCA9ICcnCi0gICAg
ICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29j
a2V0LCAxKQotICAgICAgICAgICAgZmllbGQgKz0gY2gKLSAgICAgICAgICAgIGlmIGNoID09ICdc
bic6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J09wZW5pbmcgaGFuZHNoYWtlIFJlc3BvbnNlLUxpbmU6ICVyJywgZmllbGQpCi0KLSAgICAgICAg
IyBpZiAvZmllbGQvIGlzIG5vdCBhdCBsZWFzdCBzZXZlbiBieXRlcyBsb25nLCBvciBpZiB0aGUg
bGFzdAotICAgICAgICAjIHR3byBieXRlcyBhcmVuJ3QgMHgwRCBhbmQgMHgwQSByZXNwZWN0aXZl
bHksIG9yIGlmIGl0IGRvZXMgbm90Ci0gICAgICAgICMgY29udGFpbiBhdCBsZWFzdCB0d28gMHgy
MCBieXRlcywgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbgotICAgICAgICAjIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgbGVuKGZpZWxkKSA8IDcgb3Igbm90IGZp
ZWxkLmVuZHN3aXRoKCdcclxuJyk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1dyb25n
IHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgbSA9IHJlLm1hdGNoKCdbXiBdKiAo
W14gXSopIC4qJywgZmllbGQpCi0gICAgICAgIGlmIG0gaXMgTm9uZToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignTm8gY29kZSBmb3VuZCBpbiBzdGF0dXMgbGluZTogJXInICUgZmllbGQp
Ci0gICAgICAgICMgNC4xIDI5LiBsZXQgL2NvZGUvIGJlIHRoZSBzdWJzdHJpbmcgb2YgL2ZpZWxk
LyB0aGF0IHN0YXJ0cyBmcm9tIHRoZQotICAgICAgICAjIGJ5dGUgYWZ0ZXIgdGhlIGZpcnN0IDB4
MjAgYnl0ZSwgYW5kIGVuZHMgd2l0aCB0aGUgYnl0ZSBiZWZvcmUgdGhlCi0gICAgICAgICMgc2Vj
b25kIDB4MjAgYnl0ZS4KLSAgICAgICAgY29kZSA9IG0uZ3JvdXAoMSkKLSAgICAgICAgIyA0LjEg
MzAuIGlmIC9jb2RlLyBpcyBub3QgdGhyZWUgYnl0ZXMgbG9uZywgb3IgaWYgYW55IG9mIHRoZSBi
eXRlcyBpbgotICAgICAgICAjIC9jb2RlLyBhcmUgbm90IGluIHRoZSByYW5nZSAweDMwIHRvIDB4
OTAsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0Ci0gICAgICAgICMgY29ubmVjdGlvbiBhbmQgYWJv
cnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIG5vdCByZS5tYXRjaCgnWzAtOV1bMC05XVswLTld
JywgY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J0hUVFAgc3RhdHVzIGNvZGUgJXIgaXMgbm90IHRocmVlIGRpZ2l0IGluIHN0YXR1cyBsaW5lOiAl
cicgJQotICAgICAgICAgICAgICAgIChjb2RlLCBmaWVsZCkpCi0gICAgICAgICMgNC4xIDMxLiBp
ZiAvY29kZS8sIGludGVycHJldGVkIGFzIFVURi04LCBpcyAiMTAxIiwgdGhlbiBtb3ZlIHRvIHRo
ZQotICAgICAgICAjIG5leHQgc3RlcC4KLSAgICAgICAgaWYgY29kZSAhPSAnMTAxJzoKLSAgICAg
ICAgICAgIHJhaXNlIEh0dHBTdGF0dXNFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0V4cGVj
dGVkIEhUVFAgc3RhdHVzIGNvZGUgMTAxIGJ1dCBmb3VuZCAlciBpbiBzdGF0dXMgbGluZTogJwot
ICAgICAgICAgICAgICAgICclcicgJSAoY29kZSwgZmllbGQpLCBpbnQoY29kZSkpCi0gICAgICAg
ICMgNC4xIDMyLTM5LiByZWFkIGZpZWxkcyBpbnRvIC9maWVsZHMvCi0gICAgICAgIGZpZWxkcyA9
IF9yZWFkX2ZpZWxkcyhzZWxmLl9zb2NrZXQpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdPcGVuaW5nIGhhbmRzaGFrZSByZXNwb25zZSBoZWFkZXJzOiAlcicsIGZpZWxkcykKLQotICAg
ICAgICAjIDQuMSA0MC4gX0ZpZWxkcyBwcm9jZXNzaW5nXwotICAgICAgICAjIHJlYWQgYSBieXRl
IGZyb20gc2VydmVyCi0gICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEp
Ci0gICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignRXhwZWN0ZWQgTEYgYnV0IGZvdW5kICVyJyAlIGNoKQotICAgICAgICAjIDQuMSA0MS4g
Y2hlY2sgL2ZpZWxkcy8KLSAgICAgICAgaWYgbGVuKGZpZWxkc1sndXBncmFkZSddKSAhPSAxOgot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBV
cGdyYWRlIGhlYWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxkc1sndXBncmFkZSddKQotICAgICAgICBp
ZiBsZW4oZmllbGRzWydjb25uZWN0aW9uJ10pICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIENvbm5lY3Rpb24gaGVhZGVycyBmb3Vu
ZDogJXMnICUgZmllbGRzWydjb25uZWN0aW9uJ10pCi0gICAgICAgIGlmIGxlbihmaWVsZHNbJ3Nl
Yy13ZWJzb2NrZXQtb3JpZ2luJ10pICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ011bHRpcGxlIFNlYy1XZWJTb2NrZXQtT3JpZ2luIGhlYWRlcnMg
Zm91bmQ6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRzWydzZWMtc2Vic29ja2V0LW9yaWdp
biddKQotICAgICAgICBpZiBsZW4oZmllbGRzWydzZWMtd2Vic29ja2V0LWxvY2F0aW9uJ10pICE9
IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRp
cGxlIFNlYy1XZWJTb2NrZXQtTG9jYXRpb24gaGVhZGVycyBmb3VuZDogJXMnICUKLSAgICAgICAg
ICAgICAgICBmaWVsZHNbJ3NlYy1zZWJzb2NrZXQtbG9jYXRpb24nXSkKLSAgICAgICAgIyBUT0RP
KHVrYWkpOiBwcm90b2NvbAotICAgICAgICAjIGlmIHRoZSBlbnRyeSdzIG5hbWUgaXMgInVwZ3Jh
ZGUiCi0gICAgICAgICMgIGlmIHRoZSB2YWx1ZSBpcyBub3QgZXhhY3RseSBlcXVhbCB0byB0aGUg
c3RyaW5nICJXZWJTb2NrZXQiLAotICAgICAgICAjICB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBj
b25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgZmllbGRzWyd1cGdy
YWRlJ11bMF0gIT0gJ1dlYlNvY2tldCc6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgVXBncmFkZSBoZWFkZXIgdmFsdWU6ICVzJyAlIGZp
ZWxkc1sndXBncmFkZSddWzBdKQotICAgICAgICAjIGlmIHRoZSBlbnRyeSdzIG5hbWUgaXMgImNv
bm5lY3Rpb24iCi0gICAgICAgICMgIGlmIHRoZSB2YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxv
d2VyY2FzZSwgaXMgbm90IGV4YWN0bHkgZXF1YWwKLSAgICAgICAgIyAgdG8gdGhlIHN0cmluZyAi
dXBncmFkZSIsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gYW5kCi0gICAgICAg
ICMgIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBmaWVsZHNbJ2Nvbm5lY3Rpb24nXVsw
XS5sb3dlcigpICE9ICd1cGdyYWRlJzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnVW5leHBlY3RlZCBDb25uZWN0aW9uIGhlYWRlciB2YWx1ZTogJXMnICUK
LSAgICAgICAgICAgICAgICBmaWVsZHNbJ2Nvbm5lY3Rpb24nXVswXSkKLSAgICAgICAgIyBUT0RP
KHVrYWkpOiBjaGVjayBvcmlnaW4sIGxvY2F0aW9uLCBjb29raWUsIC4uCi0KLSAgICAgICAgIyA0
LjEgNDIuIGxldCAvY2hhbGxlbmdlLyBiZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiAvbnVtYmVyXzEv
LAotICAgICAgICAjIGV4cHJlc3NlZCBhcyBhIGJpZyBlbmRpYW4gMzIgYml0IGludGVnZXIsIC9u
dW1iZXJfMi8sIGV4cHJlc3NlZAotICAgICAgICAjIGFzIGJpZyBlbmRpYW4gMzIgYml0IGludGVn
ZXIsIGFuZCB0aGUgZWlnaHQgYnl0ZXMgb2YgL2tleV8zLyBpbiB0aGUKLSAgICAgICAgIyBvcmRl
ciB0aGV5IHdlcmUgc2VudCBvbiB0aGUgd2lyZS4KLSAgICAgICAgY2hhbGxlbmdlID0gc3RydWN0
LnBhY2soJyFJJywgc2VsZi5fbnVtYmVyMSkKLSAgICAgICAgY2hhbGxlbmdlICs9IHN0cnVjdC5w
YWNrKCchSScsIHNlbGYuX251bWJlcjIpCi0gICAgICAgIGNoYWxsZW5nZSArPSBzZWxmLl9rZXkz
Ci0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0NoYWxsZW5nZTog
JXIgKCVzKScsIGNoYWxsZW5nZSwgdXRpbC5oZXhpZnkoY2hhbGxlbmdlKSkKLQotICAgICAgICAj
IDQuMSA0My4gbGV0IC9leHBlY3RlZC8gYmUgdGhlIE1ENSBmaW5nZXJwcmludCBvZiAvY2hhbGxl
bmdlLyBhcyBhCi0gICAgICAgICMgYmlnLWVuZGlhbiAxMjggYml0IHN0cmluZy4KLSAgICAgICAg
ZXhwZWN0ZWQgPSB1dGlsLm1kNV9oYXNoKGNoYWxsZW5nZSkuZGlnZXN0KCkKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0V4cGVjdGVkIGNoYWxsZW5nZSByZXNwb25z
ZTogJXIgKCVzKScsCi0gICAgICAgICAgICBleHBlY3RlZCwgdXRpbC5oZXhpZnkoZXhwZWN0ZWQp
KQotCi0gICAgICAgICMgNC4xIDQ0LiByZWFkIHNpeHRlZW4gYnl0ZXMgZnJvbSB0aGUgc2VydmVy
LgotICAgICAgICAjIGxldCAvcmVwbHkvIGJlIHRob3NlIGJ5dGVzLgotICAgICAgICByZXBseSA9
IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxNikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKAotICAgICAgICAgICAgJ0FjdHVhbCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLCBy
ZXBseSwgdXRpbC5oZXhpZnkocmVwbHkpKQotCi0gICAgICAgICMgNC4xIDQ1LiBpZiAvcmVwbHkv
IGRvZXMgbm90IGV4YWN0bHkgZXF1YWwgL2V4cGVjdGVkLywgdGhlbiBmYWlsCi0gICAgICAgICMg
dGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAg
aWYgZXhwZWN0ZWQgIT0gcmVwbHk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ0JhZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyIChleHBlY3RlZCkgIT0gJXIg
KGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAoZXhwZWN0ZWQsIHJlcGx5KSkKLSAgICAgICAg
IyA0LjEgNDYuIFRoZSAqV2ViU29ja2V0IGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQqLgotCi0g
ICAgZGVmIF9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleShzZWxmKToKLSAgICAgICAgIyA0LjEg
MTYuIGxldCAvc3BhY2VzX24vIGJlIGEgcmFuZG9tIGludGVnZXIgZnJvbSAxIHRvIDEyIGluY2x1
c2l2ZS4KLSAgICAgICAgc3BhY2VzID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCi0gICAgICAgICMg
NC4xIDE3LiBsZXQgL21heF9uLyBiZSB0aGUgbGFyZ2VzdCBpbnRlZ2VyIG5vdCBncmVhdGVyIHRo
YW4KLSAgICAgICAgIyAgNCwyOTQsOTY3LDI5NSBkaXZpZGVkIGJ5IC9zcGFjZXNfbi8uCi0gICAg
ICAgIG1heG51bSA9IDQyOTQ5NjcyOTUgLyBzcGFjZXMKLSAgICAgICAgIyA0LjEgMTguIGxldCAv
bnVtYmVyX24vIGJlIGEgcmFuZG9tIGludGVnZXIgZnJvbSAwIHRvIC9tYXhfbi8KLSAgICAgICAg
IyBpbmNsdXNpdmUuCi0gICAgICAgIG51bWJlciA9IHJhbmRvbS5yYW5kaW50KDAsIG1heG51bSkK
LSAgICAgICAgIyA0LjEgMTkuIGxldCAvcHJvZHVjdF9uLyBiZSB0aGUgcmVzdWx0IG9mIG11bHRp
cGx5aW5nIC9udW1iZXJfbi8gYW5kCi0gICAgICAgICMgL3NwYWNlc19uLyB0b2dldGhlci4KLSAg
ICAgICAgcHJvZHVjdCA9IG51bWJlciAqIHNwYWNlcwotICAgICAgICAjIDQuMSAyMC4gbGV0IC9r
ZXlfbi8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiAvcHJvZHVjdF9uLywgZXhwcmVzc2VkCi0g
ICAgICAgICMgaW4gYmFzZSB0ZW4gdXNpbmcgdGhlIG51bWVyYWxzIGluIHRoZSByYW5nZSBVKzAw
MzAgRElHSVQgWkVSTyAoMCkgdG8KLSAgICAgICAgIyBVKzAwMzkgRElHSVQgTklORSAoOSkuCi0g
ICAgICAgIGtleSA9IHN0cihwcm9kdWN0KQotICAgICAgICAjIDQuMSAyMS4gaW5zZXJ0IGJldHdl
ZW4gb25lIGFuZCB0d2VsdmUgcmFuZG9tIGNoYXJhY3RlcnMgZnJvbSB0aGUKLSAgICAgICAgIyBy
YW5nZSBVKzAwMjEgdG8gVSswMDJGIGFuZCBVKzAwM0EgdG8gVSswMDdFIGludG8gL2tleV9uLyBh
dCByYW5kb20KLSAgICAgICAgIyBwb3NpdGlvbnMuCi0gICAgICAgIGF2YWlsYWJsZV9jaGFycyA9
IHJhbmdlKDB4MjEsIDB4MmYgKyAxKSArIHJhbmdlKDB4M2EsIDB4N2UgKyAxKQotICAgICAgICBu
ID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCi0gICAgICAgIGZvciBfIGluIHhyYW5nZShuKToKLSAg
ICAgICAgICAgIGNoID0gcmFuZG9tLmNob2ljZShhdmFpbGFibGVfY2hhcnMpCi0gICAgICAgICAg
ICBwb3MgPSByYW5kb20ucmFuZGludCgwLCBsZW4oa2V5KSkKLSAgICAgICAgICAgIGtleSA9IGtl
eVswOnBvc10gKyBjaHIoY2gpICsga2V5W3BvczpdCi0gICAgICAgICMgNC4xIDIyLiBpbnNlcnQg
L3NwYWNlc19uLyBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVycyBpbnRvIC9rZXlfbi8gYXQKLSAgICAg
ICAgIyByYW5kb20gcG9zaXRpb25zIG90aGVyIHRoYW4gc3RhcnQgb3IgZW5kIG9mIHRoZSBzdHJp
bmcuCi0gICAgICAgIGZvciBfIGluIHhyYW5nZShzcGFjZXMpOgotICAgICAgICAgICAgcG9zID0g
cmFuZG9tLnJhbmRpbnQoMSwgbGVuKGtleSkgLSAxKQotICAgICAgICAgICAga2V5ID0ga2V5WzA6
cG9zXSArICcgJyArIGtleVtwb3M6XQotICAgICAgICByZXR1cm4gbnVtYmVyLCBrZXkKLQotICAg
IGRlZiBfZ2VuZXJhdGVfa2V5MyhzZWxmKToKLSAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5My8g
YmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCi0gICAgICAg
ICMgZXF1aXZhbGVudGx5LCBhIHJhbmRvbSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEgYmln
LWVuZGlhbiBvcmRlcikuCi0gICAgICAgIHJldHVybiAnJy5qb2luKFtjaHIocmFuZG9tLnJhbmRp
bnQoMCwgMjU1KSkgZm9yIF8gaW4geHJhbmdlKDgpXSkKLQotCi1jbGFzcyBXZWJTb2NrZXRIaXhp
ZTc1SGFuZHNoYWtlKG9iamVjdCk6Ci0gICAgIiIiV2ViU29ja2V0IGhhbmRzaGFrZSBwcm9jZXNz
b3IgZm9yIElFVEYgSGl4aWUgNzUuIiIiCi0KLSAgICBfRVhQRUNURURfUkVTUE9OU0UgPSAoCi0g
ICAgICAgICdIVFRQLzEuMSAxMDEgV2ViIFNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJyAr
Ci0gICAgICAgIF9VUEdSQURFX0hFQURFUl9ISVhJRTc1ICsKLSAgICAgICAgX0NPTk5FQ1RJT05f
SEVBREVSKQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICBzZWxm
Ll9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9v
cHRpb25zID0gb3B0aW9ucwotCi0gICAgZGVmIF9za2lwX2hlYWRlcnMoc2VsZik6Ci0gICAgICAg
IHRlcm1pbmF0b3IgPSAnXHJcblxyXG4nCi0gICAgICAgIHBvcyA9IDAKLSAgICAgICAgd2hpbGUg
cG9zIDwgbGVuKHRlcm1pbmF0b3IpOgotICAgICAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5
dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGlmIHJlY2VpdmVkID09IHRlcm1pbmF0
b3JbcG9zXToKLSAgICAgICAgICAgICAgICBwb3MgKz0gMQotICAgICAgICAgICAgZWxpZiByZWNl
aXZlZCA9PSB0ZXJtaW5hdG9yWzBdOgotICAgICAgICAgICAgICAgIHBvcyA9IDEKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcG9zID0gMAotCi0gICAgZGVmIGhhbmRzaGFrZShz
ZWxmLCBzb2NrZXQpOgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgICAgICBy
ZXF1ZXN0X2xpbmUgPSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVy
JywgcmVxdWVzdF9saW5lKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xp
bmUpCi0KLSAgICAgICAgaGVhZGVycyA9IF9VUEdSQURFX0hFQURFUl9ISVhJRTc1ICsgX0NPTk5F
Q1RJT05fSEVBREVSCi0gICAgICAgIGhlYWRlcnMgKz0gX2Zvcm1hdF9ob3N0X2hlYWRlcigKLSAg
ICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICBzZWxmLl9v
cHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQot
ICAgICAgICBoZWFkZXJzICs9IF9vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QgaGVh
ZGVyczogJXInLCBoZWFkZXJzKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChoZWFkZXJz
KQotCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxuJykKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIuaW5mbygnU2VudCBvcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0JykKLQotICAgICAg
ICBmb3IgZXhwZWN0ZWRfY2hhciBpbiBXZWJTb2NrZXRIaXhpZTc1SGFuZHNoYWtlLl9FWFBFQ1RF
RF9SRVNQT05TRToKLSAgICAgICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9z
b2NrZXQsIDEpCi0gICAgICAgICAgICBpZiBleHBlY3RlZF9jaGFyICE9IHJlY2VpdmVkOgotICAg
ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSGFuZHNoYWtlIGZhaWx1cmUnKQotICAgICAg
ICAjIFdlIGN1dCBjb3JuZXJzIGFuZCBza2lwIG90aGVyIGhlYWRlcnMuCi0gICAgICAgIHNlbGYu
X3NraXBfaGVhZGVycygpCi0KLQotY2xhc3MgV2ViU29ja2V0U3RyZWFtKG9iamVjdCk6Ci0gICAg
IiIiRnJhbWUgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIChSRkMgNjQ1NSku
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0LCBoYW5kc2hha2UpOgotICAgICAg
ICBzZWxmLl9oYW5kc2hha2UgPSBoYW5kc2hha2UKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29j
a2V0Ci0KLSAgICAgICAgIyBGaWx0ZXJzIGFwcGxpZWQgdG8gYXBwbGljYXRpb24gZGF0YSBwYXJ0
IG9mIGRhdGEgZnJhbWVzLgotICAgICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIgPSBO
b25lCi0gICAgICAgIHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlciA9IE5vbmUKLQotICAgICAg
ICBpZiBzZWxmLl9oYW5kc2hha2UuX29wdGlvbnMudXNlX2RlZmxhdGVfZnJhbWU6Ci0gICAgICAg
ICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIgPSAoCi0gICAgICAgICAgICAgICAgdXRp
bC5fUkZDMTk3OURlZmxhdGVyKE5vbmUsIEZhbHNlKSkKLSAgICAgICAgICAgIHNlbGYuX2luY29t
aW5nX2ZyYW1lX2ZpbHRlciA9IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCi0KLSAgICAgICAgc2Vs
Zi5fZnJhZ21lbnRlZCA9IEZhbHNlCi0KLSAgICBkZWYgX21hc2tfaHliaShzZWxmLCBzKToKLSAg
ICAgICAgIyBUT0RPKHR5b3NoaW5vKTogb3MudXJhbmRvbSBkb2VzIG9wZW4vcmVhZC9jbG9zZSBm
b3IgZXZlcnkgY2FsbC4gSWYKLSAgICAgICAgIyBwZXJmb3JtYW5jZSBtYXR0ZXJzLCBjaGFuZ2Ug
dGhpcyB0byBzb21lIGxpYnJhcnkgY2FsbCB0aGF0IGdlbmVyYXRlcwotICAgICAgICAjIGNyeXB0
b2dyYXBoaWNhbGx5IHNlY3VyZSBwc2V1ZG8gcmFuZG9tIG51bWJlciBzZXF1ZW5jZS4KLSAgICAg
ICAgbWFza2luZ19ub25jZSA9IG9zLnVyYW5kb20oNCkKLSAgICAgICAgcmVzdWx0ID0gW21hc2tp
bmdfbm9uY2VdCi0gICAgICAgIGNvdW50ID0gMAotICAgICAgICBmb3IgYyBpbiBzOgotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZChjaHIob3JkKGMpIF4gb3JkKG1hc2tpbmdfbm9uY2VbY291bnRd
KSkpCi0gICAgICAgICAgICBjb3VudCA9IChjb3VudCArIDEpICUgbGVuKG1hc2tpbmdfbm9uY2Up
Ci0gICAgICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKLQotICAgIGRlZiBzZW5kX2ZyYW1lX29m
X2FyYml0cmFyeV9ieXRlcyhzZWxmLCBoZWFkZXIsIGJvZHkpOgotICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbChoZWFkZXIgKyBzZWxmLl9tYXNrX2h5YmkoYm9keSkpCi0KLSAgICBkZWYgc2Vu
ZF9kYXRhKHNlbGYsIHBheWxvYWQsIGZyYW1lX3R5cGUsIGVuZD1UcnVlLCBtYXNrPVRydWUsCi0g
ICAgICAgICAgICAgICAgICByc3YxPTAsIHJzdjI9MCwgcnN2Mz0wKToKLSAgICAgICAgaWYgc2Vs
Zi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcGF5bG9h
ZCA9IHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlci5maWx0ZXIocGF5bG9hZCkKLQotICAgICAg
ICBpZiBzZWxmLl9mcmFnbWVudGVkOgotICAgICAgICAgICAgb3Bjb2RlID0gT1BDT0RFX0NPTlRJ
TlVBVElPTgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3Bjb2RlID0gZnJhbWVfdHlwZQot
Ci0gICAgICAgIGlmIGVuZDoKLSAgICAgICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBGYWxzZQot
ICAgICAgICAgICAgZmluID0gMQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fZnJh
Z21lbnRlZCA9IFRydWUKLSAgICAgICAgICAgIGZpbiA9IDAKLQotICAgICAgICBpZiBzZWxmLl9o
YW5kc2hha2UuX29wdGlvbnMudXNlX2RlZmxhdGVfZnJhbWU6Ci0gICAgICAgICAgICByc3YxID0g
MQotCi0gICAgICAgIGlmIG1hc2s6Ci0gICAgICAgICAgICBtYXNrX2JpdCA9IDEgPDwgNwotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgbWFza19iaXQgPSAwCi0KLSAgICAgICAgaGVhZGVyID0g
Y2hyKGZpbiA8PCA3IHwgcnN2MSA8PCA2IHwgcnN2MiA8PCA1IHwgcnN2MyA8PCA0IHwgb3Bjb2Rl
KQotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IGxlbihwYXlsb2FkKQotICAgICAgICBpZiBwYXls
b2FkX2xlbmd0aCA8PSAxMjU6Ci0gICAgICAgICAgICBoZWFkZXIgKz0gY2hyKG1hc2tfYml0IHwg
cGF5bG9hZF9sZW5ndGgpCi0gICAgICAgIGVsaWYgcGF5bG9hZF9sZW5ndGggPCAxIDw8IDE2Ogot
ICAgICAgICAgICAgaGVhZGVyICs9IGNocihtYXNrX2JpdCB8IDEyNikgKyBzdHJ1Y3QucGFjaygn
IUgnLCBwYXlsb2FkX2xlbmd0aCkKLSAgICAgICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA8IDEgPDwg
NjM6Ci0gICAgICAgICAgICBoZWFkZXIgKz0gY2hyKG1hc2tfYml0IHwgMTI3KSArIHN0cnVjdC5w
YWNrKCchUScsIHBheWxvYWRfbGVuZ3RoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdUb28gbG9uZyBwYXlsb2FkICglZCBieXRlKScgJSBwYXlsb2FkX2xlbmd0
aCkKLSAgICAgICAgaWYgbWFzazoKLSAgICAgICAgICAgIHBheWxvYWQgPSBzZWxmLl9tYXNrX2h5
YmkocGF5bG9hZCkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVyICsgcGF5bG9h
ZCkKLQotICAgIGRlZiBzZW5kX2JpbmFyeShzZWxmLCBwYXlsb2FkLCBlbmQ9VHJ1ZSwgbWFzaz1U
cnVlKToKLSAgICAgICAgc2VsZi5zZW5kX2RhdGEocGF5bG9hZCwgT1BDT0RFX0JJTkFSWSwgZW5k
LCBtYXNrKQotCi0gICAgZGVmIHNlbmRfdGV4dChzZWxmLCBwYXlsb2FkLCBlbmQ9VHJ1ZSwgbWFz
az1UcnVlKToKLSAgICAgICAgc2VsZi5zZW5kX2RhdGEocGF5bG9hZC5lbmNvZGUoJ3V0Zi04Jyks
IE9QQ09ERV9URVhULCBlbmQsIG1hc2spCi0KLSAgICBkZWYgX2Fzc2VydF9yZWNlaXZlX2RhdGEo
c2VsZiwgcGF5bG9hZCwgb3Bjb2RlLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMpOgotICAgICAgICAo
YWN0dWFsX2ZpbiwgYWN0dWFsX3JzdjEsIGFjdHVhbF9yc3YyLCBhY3R1YWxfcnN2MywgYWN0dWFs
X29wY29kZSwKLSAgICAgICAgIHBheWxvYWRfbGVuZ3RoKSA9IHJlYWRfZnJhbWVfaGVhZGVyKHNl
bGYuX3NvY2tldCkKLQotICAgICAgICBpZiBhY3R1YWxfb3Bjb2RlICE9IG9wY29kZToKLSAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBvcGNv
ZGU6ICVkIChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAob3Bj
b2RlLCBhY3R1YWxfb3Bjb2RlKSkKLQotICAgICAgICBpZiBhY3R1YWxfZmluICE9IGZpbjoKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBm
aW46ICVkIChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAoZmlu
LCBhY3R1YWxfZmluKSkKLQotICAgICAgICBpZiByc3YxIGlzIE5vbmU6Ci0gICAgICAgICAgICBy
c3YxID0gMAotICAgICAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZs
YXRlX2ZyYW1lOgotICAgICAgICAgICAgICAgIHJzdjEgPSAxCi0KLSAgICAgICAgaWYgcnN2MiBp
cyBOb25lOgotICAgICAgICAgICAgcnN2MiA9IDAKLQotICAgICAgICBpZiByc3YzIGlzIE5vbmU6
Ci0gICAgICAgICAgICByc3YzID0gMAotCi0gICAgICAgIGlmIGFjdHVhbF9yc3YxICE9IHJzdjE6
Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0
ZWQgcnN2MTogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAg
IChyc3YxLCBhY3R1YWxfcnN2MSkpCi0KLSAgICAgICAgaWYgYWN0dWFsX3JzdjIgIT0gcnN2MjoK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3Rl
ZCByc3YyOiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAg
KHJzdjIsIGFjdHVhbF9yc3YyKSkKLQotICAgICAgICBpZiBhY3R1YWxfcnN2MyAhPSByc3YzOgot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVk
IHJzdjM6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAo
cnN2MywgYWN0dWFsX3JzdjMpKQotCi0gICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhz
ZWxmLl9zb2NrZXQsIHBheWxvYWRfbGVuZ3RoKQotCi0gICAgICAgIGlmIHNlbGYuX2luY29taW5n
X2ZyYW1lX2ZpbHRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlY2VpdmVkID0gc2VsZi5f
aW5jb21pbmdfZnJhbWVfZmlsdGVyLmZpbHRlcihyZWNlaXZlZCkKLQotICAgICAgICBpZiBsZW4o
cmVjZWl2ZWQpICE9IGxlbihwYXlsb2FkKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBwYXlsb2FkIGxlbmd0aDogJWQgKGV4cGVjdGVk
KSB2cyAlZCAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChsZW4ocGF5bG9hZCksIGxlbihy
ZWNlaXZlZCkpKQotCi0gICAgICAgIGlmIHBheWxvYWQgIT0gcmVjZWl2ZWQ6Ci0gICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5bG9hZDog
JXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChwYXlsb2Fk
LCByZWNlaXZlZCkpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KHNlbGYsIHBheWxv
YWQsIG9wY29kZT1PUENPREVfQklOQVJZLCBmaW49MSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJzdjE9Tm9uZSwgcnN2Mj1Ob25lLCByc3YzPU5vbmUpOgotICAgICAgICBzZWxmLl9h
c3NlcnRfcmVjZWl2ZV9kYXRhKHBheWxvYWQsIG9wY29kZSwgZmluLCByc3YxLCByc3YyLCByc3Yz
KQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX3RleHQoc2VsZiwgcGF5bG9hZCwgb3Bjb2RlPU9Q
Q09ERV9URVhULCBmaW49MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPU5vbmUs
IHJzdjI9Tm9uZSwgcnN2Mz1Ob25lKToKLSAgICAgICAgc2VsZi5fYXNzZXJ0X3JlY2VpdmVfZGF0
YShwYXlsb2FkLmVuY29kZSgndXRmLTgnKSwgb3Bjb2RlLCBmaW4sIHJzdjEsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnN2MiwgcnN2MykKLQotICAgIGRlZiBfYnVpbGRfY2xv
c2VfZnJhbWUoc2VsZiwgY29kZSwgcmVhc29uLCBtYXNrKToKLSAgICAgICAgZnJhbWUgPSBjaHIo
MSA8PCA3IHwgT1BDT0RFX0NMT1NFKQotCi0gICAgICAgIGlmIGNvZGUgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBib2R5ID0gc3RydWN0LnBhY2soJyFIJywgY29kZSkgKyByZWFzb24uZW5jb2Rl
KCd1dGYtOCcpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBib2R5ID0gJycKLSAgICAgICAg
aWYgbWFzazoKLSAgICAgICAgICAgIGZyYW1lICs9IGNocigxIDw8IDcgfCBsZW4oYm9keSkpICsg
c2VsZi5fbWFza19oeWJpKGJvZHkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmcmFtZSAr
PSBjaHIobGVuKGJvZHkpKSArIGJvZHkKLSAgICAgICAgcmV0dXJuIGZyYW1lCi0KLSAgICBkZWYg
c2VuZF9jbG9zZShzZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2Vu
ZGFsbCgKLSAgICAgICAgICAgIHNlbGYuX2J1aWxkX2Nsb3NlX2ZyYW1lKGNvZGUsIHJlYXNvbiwg
VHJ1ZSkpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uoc2VsZiwgY29kZSwgcmVhc29u
KToKLSAgICAgICAgZXhwZWN0ZWRfZnJhbWUgPSBzZWxmLl9idWlsZF9jbG9zZV9mcmFtZShjb2Rl
LCByZWFzb24sIEZhbHNlKQotICAgICAgICBhY3R1YWxfZnJhbWUgPSByZWNlaXZlX2J5dGVzKHNl
bGYuX3NvY2tldCwgbGVuKGV4cGVjdGVkX2ZyYW1lKSkKLSAgICAgICAgaWYgYWN0dWFsX2ZyYW1l
ICE9IGV4cGVjdGVkX2ZyYW1lOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICdVbmV4cGVjdGVkIGNsb3NlIGZyYW1lOiAlciAoZXhwZWN0ZWQpIHZzICVyIChh
Y3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKGV4cGVjdGVkX2ZyYW1lLCBhY3R1YWxfZnJhbWUp
KQotCi0KLWNsYXNzIFdlYlNvY2tldFN0cmVhbUhpeGllNzUob2JqZWN0KToKLSAgICAiIiJGcmFt
ZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lvbiBIaXhpZSA3NSBh
bmQgSHlCaSAwMC4KLSAgICAiIiIKLQotICAgIF9DTE9TRV9GUkFNRSA9ICdceGZmXHgwMCcKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb2NrZXQsIHVudXNlZF9oYW5kc2hha2UpOgotICAgICAg
ICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgIGRlZiBzZW5kX2ZyYW1lX29mX2FyYml0cmFy
eV9ieXRlcyhzZWxmLCBoZWFkZXIsIGJvZHkpOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFs
bChoZWFkZXIgKyBib2R5KQotCi0gICAgZGVmIHNlbmRfZGF0YShzZWxmLCBwYXlsb2FkLCB1bnVz
ZWRfZnJhbWVfdHlwZW0sIHVudXNlZF9lbmQsIHVudXNlZF9tYXNrKToKLSAgICAgICAgZnJhbWUg
PSAnJy5qb2luKFsnXHgwMCcsIHBheWxvYWQsICdceGZmJ10pCi0gICAgICAgIHNlbGYuX3NvY2tl
dC5zZW5kYWxsKGZyYW1lKQotCi0gICAgZGVmIHNlbmRfYmluYXJ5KHNlbGYsIHVudXNlZF9wYXls
b2FkLCB1bnVzZWRfZW5kLCB1bnVzZWRfbWFzayk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBz
ZW5kX3RleHQoc2VsZiwgcGF5bG9hZCwgdW51c2VkX2VuZCwgdW51c2VkX21hc2spOgotICAgICAg
ICBlbmNvZGVkX3BheWxvYWQgPSBwYXlsb2FkLmVuY29kZSgndXRmLTgnKQotICAgICAgICBmcmFt
ZSA9ICcnLmpvaW4oWydceDAwJywgZW5jb2RlZF9wYXlsb2FkLCAnXHhmZiddKQotICAgICAgICBz
ZWxmLl9zb2NrZXQuc2VuZGFsbChmcmFtZSkKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9iaW5h
cnkoc2VsZiwgcGF5bG9hZCwgb3Bjb2RlPU9QQ09ERV9CSU5BUlksIGZpbj0xLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnN2MT0wLCByc3YyPTAsIHJzdjM9MCk6Ci0gICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignQmluYXJ5IGZyYW1lIGlzIG5vdCBzdXBwb3J0ZWQgaW4gaGl4aWU3NScp
Ci0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfdGV4dChzZWxmLCBwYXlsb2FkKToKLSAgICAgICAg
cmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLQotICAgICAgICBpZiBy
ZWNlaXZlZCAhPSAnXHgwMCc6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ1VuZXhwZWN0ZWQgZnJhbWUgdHlwZTogJWQgKGV4cGVjdGVkKSB2cyAlZCAoYWN0
dWFsKScgJQotICAgICAgICAgICAgICAgICgwLCBvcmQocmVjZWl2ZWQpKSkKLQotICAgICAgICBy
ZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBsZW4ocGF5bG9hZCkgKyAxKQot
ICAgICAgICBpZiByZWNlaXZlZFstMV0gIT0gJ1x4ZmYnOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdUZXJtaW5hdGlvbiBleHBlY3RlZDogMHhmZiAoZXhw
ZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgcmVjZWl2ZWQpCi0KLSAg
ICAgICAgaWYgcmVjZWl2ZWRbMDotMV0gIT0gcGF5bG9hZDoKLSAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBwYXlsb2FkOiAlciAoZXhwZWN0
ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKHBheWxvYWQsIHJlY2VpdmVk
WzA6LTFdKSkKLQotICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNvZGUsIHJlYXNvbik6Ci0gICAg
ICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHNlbGYuX0NMT1NFX0ZSQU1FKQotCi0gICAgZGVmIGFz
c2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYsIHVudXNlZF9jb2RlLCB1bnVzZWRfcmVhc29uKToKLSAg
ICAgICAgY2xvc2luZyA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBsZW4oc2VsZi5fQ0xP
U0VfRlJBTUUpKQotICAgICAgICBpZiBjbG9zaW5nICE9IHNlbGYuX0NMT1NFX0ZSQU1FOgotICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdEaWRuXCd0IHJlY2VpdmUgY2xvc2luZyBoYW5kc2hh
a2UnKQotCi0KLWNsYXNzIENsaWVudE9wdGlvbnMob2JqZWN0KToKLSAgICAiIiJIb2xkcyBvcHRp
b24gdmFsdWVzIHRvIGNvbmZpZ3VyZSB0aGUgQ2xpZW50IG9iamVjdC4iIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi52ZXJzaW9uID0gMTMKLSAgICAgICAgc2VsZi5z
ZXJ2ZXJfaG9zdCA9ICcnCi0gICAgICAgIHNlbGYub3JpZ2luID0gJycKLSAgICAgICAgc2VsZi5y
ZXNvdXJjZSA9ICcnCi0gICAgICAgIHNlbGYuc2VydmVyX3BvcnQgPSAtMQotICAgICAgICBzZWxm
LnNvY2tldF90aW1lb3V0ID0gMTAwMAotICAgICAgICBzZWxmLnVzZV90bHMgPSBGYWxzZQotICAg
ICAgICBzZWxmLmV4dGVuc2lvbnMgPSBbXQotICAgICAgICAjIEVuYWJsZSBkZWZsYXRlLWFwcGxp
Y2F0aW9uLWRhdGEuCi0gICAgICAgIHNlbGYudXNlX2RlZmxhdGVfZnJhbWUgPSBGYWxzZQotICAg
ICAgICAjIEVuYWJsZSBtdXgKLSAgICAgICAgc2VsZi51c2VfbXV4ID0gRmFsc2UKLQotICAgIGRl
ZiBlbmFibGVfZGVmbGF0ZV9mcmFtZShzZWxmKToKLSAgICAgICAgc2VsZi51c2VfZGVmbGF0ZV9m
cmFtZSA9IFRydWUKLSAgICAgICAgc2VsZi5leHRlbnNpb25zLmFwcGVuZChfREVGTEFURV9GUkFN
RV9FWFRFTlNJT04pCi0KLSAgICBkZWYgZW5hYmxlX211eChzZWxmKToKLSAgICAgICAgc2VsZi51
c2VfbXV4ID0gVHJ1ZQotICAgICAgICBzZWxmLmV4dGVuc2lvbnMuYXBwZW5kKF9NVVhfRVhURU5T
SU9OKQotCi0KLWRlZiBjb25uZWN0X3NvY2tldF93aXRoX3JldHJ5KGhvc3QsIHBvcnQsIHRpbWVv
dXQsIHVzZV90bHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRyeT0xMCwgc2xl
ZXBfc2VjPTAuMSk6Ci0gICAgcmV0cnlfY291bnQgPSAwCi0gICAgd2hpbGUgcmV0cnlfY291bnQg
PCByZXRyeToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKQot
ICAgICAgICAgICAgcy5zZXR0aW1lb3V0KHRpbWVvdXQpCi0gICAgICAgICAgICBzLmNvbm5lY3Qo
KGhvc3QsIHBvcnQpKQotICAgICAgICAgICAgaWYgdXNlX3RsczoKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gX1RMU1NvY2tldChzKQotICAgICAgICAgICAgcmV0dXJuIHMKLSAgICAgICAgZXhjZXB0
IHNvY2tldC5lcnJvciwgZToKLSAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUNPTk5S
RUZVU0VEOgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgIHJldHJ5X2NvdW50ID0gcmV0cnlfY291bnQgKyAxCi0gICAgICAgICAgICAgICAg
dGltZS5zbGVlcChzbGVlcF9zZWMpCi0KLSAgICByZXR1cm4gTm9uZQotCi0KLWNsYXNzIENsaWVu
dChvYmplY3QpOgotICAgICIiIldlYlNvY2tldCBjbGllbnQuIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgb3B0aW9ucywgaGFuZHNoYWtlLCBzdHJlYW1fY2xhc3MpOgotICAgICAgICBzZWxm
Ll9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9v
cHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9zb2NrZXQgPSBOb25lCi0KLSAgICAgICAg
c2VsZi5faGFuZHNoYWtlID0gaGFuZHNoYWtlCi0gICAgICAgIHNlbGYuX3N0cmVhbV9jbGFzcyA9
IHN0cmVhbV9jbGFzcwotCi0gICAgZGVmIGNvbm5lY3Qoc2VsZik6Ci0gICAgICAgIHNlbGYuX3Nv
Y2tldCA9IGNvbm5lY3Rfc29ja2V0X3dpdGhfcmV0cnkoCi0gICAgICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZl
cl9wb3J0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc29ja2V0X3RpbWVvdXQsCi0g
ICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQotCi0gICAgICAgIHNlbGYuX2hh
bmRzaGFrZS5oYW5kc2hha2Uoc2VsZi5fc29ja2V0KQotCi0gICAgICAgIHNlbGYuX3N0cmVhbSA9
IHNlbGYuX3N0cmVhbV9jbGFzcyhzZWxmLl9zb2NrZXQsIHNlbGYuX2hhbmRzaGFrZSkKLQotICAg
ICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQ29ubmVjdGlvbiBlc3RhYmxpc2hlZCcpCi0KLSAgICBk
ZWYgc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToKLSAg
ICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKGhlYWRlciwg
Ym9keSkKLQotICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJp
bmFyeT1GYWxzZSwgcmF3PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgbWFzaz1UcnVlKToK
LSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5
KG1lc3NhZ2UsIGVuZCwgbWFzaykKLSAgICAgICAgZWxpZiByYXc6Ci0gICAgICAgICAgICBzZWxm
Ll9zdHJlYW0uc2VuZF9kYXRhKG1lc3NhZ2UsIE9QQ09ERV9URVhULCBlbmQsIG1hc2spCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF90ZXh0KG1lc3NhZ2UsIGVu
ZCwgbWFzaykKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZShzZWxmLCBwYXlsb2FkLCBiaW5hcnk9
RmFsc2UpOgotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uYXNz
ZXJ0X3JlY2VpdmVfYmluYXJ5KHBheWxvYWQpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz
ZWxmLl9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfdGV4dChwYXlsb2FkKQotCi0gICAgZGVmIHNlbmRf
Y2xvc2Uoc2VsZiwgY29kZT1TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJyk6Ci0gICAg
ICAgIHNlbGYuX3N0cmVhbS5zZW5kX2Nsb3NlKGNvZGUsIHJlYXNvbikKLQotICAgIGRlZiBhc3Nl
cnRfcmVjZWl2ZV9jbG9zZShzZWxmLCBjb2RlPVNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29u
PScnKToKLSAgICAgICAgc2VsZi5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2Nsb3NlKGNvZGUsIHJl
YXNvbikKLQotICAgIGRlZiBjbG9zZV9zb2NrZXQoc2VsZik6Ci0gICAgICAgIHNlbGYuX3NvY2tl
dC5jbG9zZSgpCi0KLSAgICBkZWYgYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKHNlbGYpOgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICByZWFkX2RhdGEgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3Nv
Y2tldCwgMSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIGlmIHN0
cihlKS5maW5kKAotICAgICAgICAgICAgICAgICdDb25uZWN0aW9uIGNsb3NlZCBiZWZvcmUgcmVj
ZWl2aW5nIHJlcXVlc3RlZCBsZW5ndGggJykgPT0gMDoKLSAgICAgICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBlcnJvcl9udW1iZXIsIG1lc3NhZ2Ug
PSBlCi0gICAgICAgICAgICAgICAgZm9yIGVycm9yX25hbWUgaW4gWydFQ09OTlJFU0VUJywgJ1dT
QUVDT05OUkVTRVQnXToKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yX25hbWUgaW4gZGly
KGVycm5vKSBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX251bWJlciA9PSBnZXRh
dHRyKGVycm5vLCBlcnJvcl9uYW1lKSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgICAgICByYWlzZSBlCi0gICAgICAgICAg
ICByYWlzZSBlCi0KLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb25uZWN0aW9uIGlzIG5vdCBj
bG9zZWQgKFJlYWQ6ICVyKScgJSByZWFkX2RhdGEpCi0KLQotZGVmIGNyZWF0ZV9jbGllbnQob3B0
aW9ucyk6Ci0gICAgcmV0dXJuIENsaWVudCgKLSAgICAgICAgb3B0aW9ucywgV2ViU29ja2V0SGFu
ZHNoYWtlKG9wdGlvbnMpLCBXZWJTb2NrZXRTdHJlYW0pCi0KLQotZGVmIGNyZWF0ZV9jbGllbnRf
aHliaTAwKG9wdGlvbnMpOgotICAgIHJldHVybiBDbGllbnQoCi0gICAgICAgIG9wdGlvbnMsCi0g
ICAgICAgIFdlYlNvY2tldEh5YmkwMEhhbmRzaGFrZShvcHRpb25zLCAnMCcpLAotICAgICAgICBX
ZWJTb2NrZXRTdHJlYW1IaXhpZTc1KQotCi0KLWRlZiBjcmVhdGVfY2xpZW50X2hpeGllNzUob3B0
aW9ucyk6Ci0gICAgcmV0dXJuIENsaWVudCgKLSAgICAgICAgb3B0aW9ucywgV2ViU29ja2V0SGl4
aWU3NUhhbmRzaGFrZShvcHRpb25zKSwgV2ViU29ja2V0U3RyZWFtSGl4aWU3NSkKLQotCi0jIHZp
OnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvZW5kdG9lbmRfd2l0aF9l
eHRlcm5hbF9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxf
c2VydmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0N2Y4NmZkYjQxNjNkNGU3
Mzg5NTJiM2NjYjc3ZjE5MjE2YmM1OTE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvZW5kdG9lbmRfd2l0aF9leHRlcm5hbF9zZXJ2
ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRo
b24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmli
dXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3QgZm9yIGVuZC10by1lbmQgd2l0aCBl
eHRlcm5hbCBzZXJ2ZXIuCi0KLVRoaXMgdGVzdCBpcyBub3QgcnVuIGJ5IHJ1bl9hbGwucHkgYmVj
YXVzZSBpdCByZXF1aXJlcyBzb21lIHByZXBhcmF0aW9ucy4KLUlmIHlvdSB3b3VsZCBsaWtlIHRv
IHJ1biB0aGlzIHRlc3QgY29ycmVjdGx5LCBsYXVuY2ggQXBhY2hlIHdpdGggbW9kX3B5dGhvbgot
YW5kIG1vZF9weXdlYnNvY2tldCBtYW51YWxseS4gSW4gYWRkaXRpb24sIHlvdSBzaG91bGQgcGFz
cyBhbGxvd19kcmFmdDc1IG9wdGlvbgotYW5kIGV4YW1wbGUgcGF0aCBhcyBoYW5kbGVyX3NjYW4g
b3B0aW9uIGFuZCBBcGFjaGUncyBEb2N1bWVudFJvb3QuCi0iIiIKLQotCi1pbXBvcnQgb3B0cGFy
c2UKLWltcG9ydCBzeXMKLWltcG9ydCB0ZXN0LnRlc3RfZW5kdG9lbmQKLWltcG9ydCB1bml0dGVz
dAotCi0KLV9ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCA9IDgwCi0KLQotY2xhc3MgRW5kVG9FbmRU
ZXN0V2l0aEV4dGVybmFsU2VydmVyKHRlc3QudGVzdF9lbmR0b2VuZC5FbmRUb0VuZFRlc3QpOgot
ICAgIHBhc3MKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBwYXJzZXIgPSBvcHRw
YXJzZS5PcHRpb25QYXJzZXIoKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBvcnQn
LCBkZXN0PSdwb3J0JywgdHlwZT0naW50JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PV9ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdl
eHRlcm5hbCB0ZXN0IHNlcnZlciBwb3J0LicpCi0gICAgKG9wdGlvbnMsIGFyZ3MpID0gcGFyc2Vy
LnBhcnNlX2FyZ3MoKQotCi0gICAgdGVzdC50ZXN0X2VuZHRvZW5kLl91c2VfZXh0ZXJuYWxfc2Vy
dmVyID0gVHJ1ZQotICAgIHRlc3QudGVzdF9lbmR0b2VuZC5fZXh0ZXJuYWxfc2VydmVyX3BvcnQg
PSBvcHRpb25zLnBvcnQKLQotICAgIHVuaXR0ZXN0Lm1haW4oYXJndj1bc3lzLmFyZ3ZbMF1dKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9tb2NrLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC9tb2NrLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
YmZmY2FjNDhkYzQzYTUyYjljY2YxYmNkMDEyOTc1NDI0MDQ4ZDY3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvbW9jay5weQorKysg
L2Rldi9udWxsCkBAIC0xLDIyMSArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5j
LgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJNb2Nr
cyBmb3IgdGVzdGluZy4KLSIiIgotCi0KLWltcG9ydCBRdWV1ZQotaW1wb3J0IHRocmVhZGluZwot
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKLQotCi1jbGFzcyBfTW9ja0Nvbm5CYXNlKG9i
amVjdCk6Ci0gICAgIiIiQmFzZSBjbGFzcyBvZiBtb2NrcyBmb3IgbW9kX3B5dGhvbi5hcGFjaGUu
bXBfY29ubi4KLQotICAgIFRoaXMgZW5hYmxlcyB0ZXN0cyB0byBjaGVjayB3aGF0IGlzIHdyaXR0
ZW4gdG8gYSAobW9jaykgbXBfY29ubi4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKLSAgICAgICAgc2VsZi5fd3JpdGVfZGF0YSA9IFtdCi0gICAgICAgIHNlbGYucmVtb3RlX2Fk
ZHIgPSAnZmFrZV9hZGRyZXNzJwotCi0gICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAg
ICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLndyaXRlLiIiIgotCi0gICAg
ICAgIHNlbGYuX3dyaXRlX2RhdGEuYXBwZW5kKGRhdGEpCi0KLSAgICBkZWYgd3JpdHRlbl9kYXRh
KHNlbGYpOgotICAgICAgICAiIiJHZXQgYnl0ZXMgd3JpdHRlbiB0byB0aGlzIG1vY2suIiIiCi0K
LSAgICAgICAgcmV0dXJuICcnLmpvaW4oc2VsZi5fd3JpdGVfZGF0YSkKLQotCi1jbGFzcyBNb2Nr
Q29ubihfTW9ja0Nvbm5CYXNlKToKLSAgICAiIiJNb2NrIGZvciBtb2RfcHl0aG9uLmFwYWNoZS5t
cF9jb25uLgotCi0gICAgVGhpcyBlbmFibGVzIHRlc3RzIHRvIHNwZWNpZnkgd2hhdCBzaG91bGQg
YmUgcmVhZCBmcm9tIGEgKG1vY2spIG1wX2Nvbm4gYXMKLSAgICB3ZWxsIGFzIHRvIGNoZWNrIHdo
YXQgaXMgd3JpdHRlbiB0byBpdC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZWFkX2RhdGEpOgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAg
IEFyZ3M6Ci0gICAgICAgICAgICByZWFkX2RhdGE6IGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJldHVy
bmVkIHdoZW4gcmVhZCogbWV0aG9kcyBhcmUKLSAgICAgICAgICAgIGNhbGxlZC4KLSAgICAgICAg
IiIiCi0KLSAgICAgICAgX01vY2tDb25uQmFzZS5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxm
Ll9yZWFkX2RhdGEgPSByZWFkX2RhdGEKLSAgICAgICAgc2VsZi5fcmVhZF9wb3MgPSAwCi0KLSAg
ICBkZWYgcmVhZGxpbmUoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBh
Y2hlLm1wX2Nvbm4ucmVhZGxpbmUuIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVhZF9wb3MgPj0g
bGVuKHNlbGYuX3JlYWRfZGF0YSk6Ci0gICAgICAgICAgICByZXR1cm4gJycKLSAgICAgICAgZW5k
X2luZGV4ID0gc2VsZi5fcmVhZF9kYXRhLmZpbmQoJ1xuJywgc2VsZi5fcmVhZF9wb3MpICsgMQot
ICAgICAgICBpZiBub3QgZW5kX2luZGV4OgotICAgICAgICAgICAgZW5kX2luZGV4ID0gbGVuKHNl
bGYuX3JlYWRfZGF0YSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYWRfdXBfdG8oZW5kX2luZGV4
KQotCi0gICAgZGVmIHJlYWQoc2VsZiwgbGVuZ3RoKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgbW9k
X3B5dGhvbi5hcGFjaGUubXBfY29ubi5yZWFkLiIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlYWRf
cG9zID49IGxlbihzZWxmLl9yZWFkX2RhdGEpOgotICAgICAgICAgICAgcmV0dXJuICcnCi0gICAg
ICAgIGVuZF9pbmRleCA9IG1pbihsZW4oc2VsZi5fcmVhZF9kYXRhKSwgc2VsZi5fcmVhZF9wb3Mg
KyBsZW5ndGgpCi0gICAgICAgIHJldHVybiBzZWxmLl9yZWFkX3VwX3RvKGVuZF9pbmRleCkKLQot
ICAgIGRlZiBfcmVhZF91cF90byhzZWxmLCBlbmRfaW5kZXgpOgotICAgICAgICBsaW5lID0gc2Vs
Zi5fcmVhZF9kYXRhW3NlbGYuX3JlYWRfcG9zOmVuZF9pbmRleF0KLSAgICAgICAgc2VsZi5fcmVh
ZF9wb3MgPSBlbmRfaW5kZXgKLSAgICAgICAgcmV0dXJuIGxpbmUKLQotCi1jbGFzcyBNb2NrQmxv
Y2tpbmdDb25uKF9Nb2NrQ29ubkJhc2UpOgotICAgICIiIkJsb2NraW5nIG1vY2sgZm9yIG1vZF9w
eXRob24uYXBhY2hlLm1wX2Nvbm4uCi0KLSAgICBUaGlzIGVuYWJsZXMgdGVzdHMgdG8gc3BlY2lm
eSB3aGF0IHNob3VsZCBiZSByZWFkIGZyb20gYSAobW9jaykgbXBfY29ubiBhcwotICAgIHdlbGwg
YXMgdG8gY2hlY2sgd2hhdCBpcyB3cml0dGVuIHRvIGl0LgotICAgIENhbGxlcnMgb2YgcmVhZCog
bWV0aG9kcyB3aWxsIGJsb2NrIGlmIHRoZXJlIGlzIG5vIGJ5dGVzIGF2YWlsYWJsZS4KLSAgICAi
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgX01vY2tDb25uQmFzZS5fX2lu
aXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgIGRl
ZiByZWFkbGluZShzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUu
bXBfY29ubi5yZWFkbGluZS4iIiIKLSAgICAgICAgbGluZSA9ICcnCi0gICAgICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgICAgICBjID0gc2VsZi5fcXVldWUuZ2V0KCkKLSAgICAgICAgICAgIGxpbmUg
Kz0gYwotICAgICAgICAgICAgaWYgYyA9PSAnXG4nOgotICAgICAgICAgICAgICAgIHJldHVybiBs
aW5lCi0KLSAgICBkZWYgcmVhZChzZWxmLCBsZW5ndGgpOgotICAgICAgICAiIiJPdmVycmlkZSBt
b2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJlYWQuIiIiCi0KLSAgICAgICAgZGF0YSA9ICcnCi0g
ICAgICAgIGZvciB1bnVzZWQgaW4gcmFuZ2UobGVuZ3RoKToKLSAgICAgICAgICAgIGRhdGEgKz0g
c2VsZi5fcXVldWUuZ2V0KCkKLSAgICAgICAgcmV0dXJuIGRhdGEKLQotICAgIGRlZiBwdXRfYnl0
ZXMoc2VsZiwgYnl0ZXMpOgotICAgICAgICAiIiJQdXQgYnl0ZXMgdG8gYmUgcmVhZCBmcm9tIHRo
aXMgbW9jay4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgYnl0ZXM6IGJ5dGVzIHRvIGJl
IHJlYWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIGZvciBieXRlIGluIGJ5dGVzOgotICAgICAg
ICAgICAgc2VsZi5fcXVldWUucHV0KGJ5dGUpCi0KLQotY2xhc3MgTW9ja1RhYmxlKGRpY3QpOgot
ICAgICIiIk1vY2sgdGFibGUuCi0KLSAgICBUaGlzIG1pbWljcyBtb2RfcHl0aG9uIG1wX3RhYmxl
LiBOb3RlIHRoYXQgb25seSB0aGUgbWV0aG9kcyB1c2VkIGJ5Ci0gICAgdGVzdHMgYXJlIG92ZXJy
aWRkZW4uCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29weV9mcm9tPXt9KToK
LSAgICAgICAgaWYgaXNpbnN0YW5jZShjb3B5X2Zyb20sIGRpY3QpOgotICAgICAgICAgICAgY29w
eV9mcm9tID0gY29weV9mcm9tLml0ZW1zKCkKLSAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gY29w
eV9mcm9tOgotICAgICAgICAgICAgc2VsZi5fX3NldGl0ZW1fXyhrZXksIHZhbHVlKQotCi0gICAg
ZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6Ci0gICAgICAgIHJldHVybiBzdXBlcihNb2NrVGFi
bGUsIHNlbGYpLl9fZ2V0aXRlbV9fKGtleS5sb3dlcigpKQotCi0gICAgZGVmIF9fc2V0aXRlbV9f
KHNlbGYsIGtleSwgdmFsdWUpOgotICAgICAgICBzdXBlcihNb2NrVGFibGUsIHNlbGYpLl9fc2V0
aXRlbV9fKGtleS5sb3dlcigpLCB2YWx1ZSkKLQotICAgIGRlZiBnZXQoc2VsZiwga2V5LCBkZWZf
dmFsdWU9Tm9uZSk6Ci0gICAgICAgIHJldHVybiBzdXBlcihNb2NrVGFibGUsIHNlbGYpLmdldChr
ZXkubG93ZXIoKSwgZGVmX3ZhbHVlKQotCi0KLWNsYXNzIE1vY2tSZXF1ZXN0KG9iamVjdCk6Ci0g
ICAgIiIiTW9jayByZXF1ZXN0LgotCi0gICAgVGhpcyBtaW1pY3MgbW9kX3B5dGhvbiByZXF1ZXN0
LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHVyaT1Ob25lLCBoZWFkZXJzX2lu
PXt9LCBjb25uZWN0aW9uPU5vbmUsIG1ldGhvZD0nR0VUJywKLSAgICAgICAgICAgICAgICAgcHJv
dG9jb2w9J0hUVFAvMS4xJywgaXNfaHR0cHM9RmFsc2UpOgotICAgICAgICAiIiJDb25zdHJ1Y3Qg
YW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJndW1lbnRzOgotICAgICAgICAgICAgdXJpOiBVUkkg
b2YgdGhlIHJlcXVlc3QuCi0gICAgICAgICAgICBoZWFkZXJzX2luOiBSZXF1ZXN0IGhlYWRlcnMu
Ci0gICAgICAgICAgICBjb25uZWN0aW9uOiBDb25uZWN0aW9uIHVzZWQgZm9yIHRoZSByZXF1ZXN0
LgotICAgICAgICAgICAgbWV0aG9kOiByZXF1ZXN0IG1ldGhvZC4KLSAgICAgICAgICAgIGlzX2h0
dHBzOiBXaGV0aGVyIHRoaXMgcmVxdWVzdCBpcyBvdmVyIFNTTC4KLQotICAgICAgICBTZWUgdGhl
IGRvY3VtZW50IG9mIG1vZF9weXRob24gUmVxdWVzdCBmb3IgZGV0YWlscy4KLSAgICAgICAgIiIi
Ci0gICAgICAgIHNlbGYudXJpID0gdXJpCi0gICAgICAgIHNlbGYudW5wYXJzZWRfdXJpID0gdXJp
Ci0gICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb24KLSAgICAgICAgc2VsZi5tZXRo
b2QgPSBtZXRob2QKLSAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCi0gICAgICAgIHNl
bGYuaGVhZGVyc19pbiA9IE1vY2tUYWJsZShoZWFkZXJzX2luKQotICAgICAgICAjIHNlbGYuaXNf
aHR0cHNfIG5lZWRzIHRvIGJlIGFjY2Vzc2libGUgZnJvbSB0ZXN0cy4gIFRvIGF2b2lkIG5hbWUK
LSAgICAgICAgIyBjb25mbGljdCB3aXRoIHNlbGYuaXNfaHR0cHMoKSwgaXQgaXMgbmFtZWQgYXMg
c3VjaC4KLSAgICAgICAgc2VsZi5pc19odHRwc18gPSBpc19odHRwcwotICAgICAgICBzZWxmLndz
X3N0cmVhbSA9IFN0cmVhbUhpeGllNzUoc2VsZiwgVHJ1ZSkKLSAgICAgICAgc2VsZi53c19jbG9z
ZV9jb2RlID0gTm9uZQotICAgICAgICBzZWxmLndzX2Nsb3NlX3JlYXNvbiA9IE5vbmUKLSAgICAg
ICAgc2VsZi53c192ZXJzaW9uID0gY29tbW9uLlZFUlNJT05fSFlCSTAwCi0gICAgICAgIHNlbGYu
d3NfZGVmbGF0ZSA9IEZhbHNlCi0KLSAgICBkZWYgaXNfaHR0cHMoc2VsZik6Ci0gICAgICAgICIi
IlJldHVybiB3aGV0aGVyIHRoaXMgcmVxdWVzdCBpcyBvdmVyIFNTTC4iIiIKLSAgICAgICAgcmV0
dXJuIHNlbGYuaXNfaHR0cHNfCi0KLQotY2xhc3MgTW9ja0Rpc3BhdGNoZXIob2JqZWN0KToKLSAg
ICAiIiJNb2NrIGZvciBkaXNwYXRjaC5EaXNwYXRjaGVyLiIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYpOgotICAgICAgICBzZWxmLmRvX2V4dHJhX2hhbmRzaGFrZV9jYWxsZWQgPSBGYWxzZQot
Ci0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAg
ICBzZWxmLmRvX2V4dHJhX2hhbmRzaGFrZV9jYWxsZWQgPSBUcnVlCi0KLSAgICBkZWYgdHJhbnNm
ZXJfZGF0YShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICBwYXNzCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L211eF9jbGllbnRfZm9yX3Rlc3Rp
bmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L211eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkNTQzNWE4Y2MwZTI3NTVjNTgzYzM2ZDBjZWFmM2YzZmY2
MDIxYjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
NjkwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiV2ViU29ja2V0IGNsaWVudCB1dGlsaXR5IGZvciB0ZXN0aW5nIG11eCBleHRlbnNpb24u
Ci0KLVRoaXMgY29kZSBzaG91bGQgYmUgaW5kZXBlbmRlbnQgZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
IFNlZSB0aGUgY29tbWVudCBvZgotY2xpZW50X2Zvcl90ZXN0aW5nLnB5LgotCi1OT1RFOiBUaGlz
IGNvZGUgaXMgZmFyIGZyb20gcm9idXN0IGxpa2UgY2xpZW50X2Zvcl90ZXN0aW5nLnB5LgotIiIi
Ci0KLQotCi1pbXBvcnQgUXVldWUKLWltcG9ydCBiYXNlNjQKLWltcG9ydCBjb2xsZWN0aW9ucwot
aW1wb3J0IGVtYWlsCi1pbXBvcnQgZW1haWwucGFyc2VyCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0
IG1hdGgKLWltcG9ydCBvcwotaW1wb3J0IHJhbmRvbQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN0
cnVjdAotaW1wb3J0IHRocmVhZGluZwotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRp
bAotCi1mcm9tIHRlc3QgaW1wb3J0IGNsaWVudF9mb3JfdGVzdGluZwotCi0KLV9DT05UUk9MX0NI
QU5ORUxfSUQgPSAwCi1fREVGQVVMVF9DSEFOTkVMX0lEID0gMQotCi1fTVVYX09QQ09ERV9BRERf
Q0hBTk5FTF9SRVFVRVNUID0gMAotX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0UgPSAx
Ci1fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wgPSAyCi1fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwg
PSAzCi1fTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UID0gNAotCi0KLWNsYXNzIF9Db250cm9s
QmxvY2s6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wY29kZSk6Ci0gICAgICAgIHNlbGYub3Bj
b2RlID0gb3Bjb2RlCi0KLQotZGVmIF9wYXJzZV9oYW5kc2hha2VfcmVzcG9uc2UocmVzcG9uc2Up
OgotICAgIHN0YXR1c19saW5lLCBoZWFkZXJfbGluZXMgPSByZXNwb25zZS5zcGxpdCgnXHJcbics
IDEpCi0KLSAgICB3b3JkcyA9IHN0YXR1c19saW5lLnNwbGl0KCcgJykKLSAgICBpZiBsZW4od29y
ZHMpIDwgMzoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIFN0YXR1cy1MaW5lIHN5bnRh
eCAlcicgJSBzdGF0dXNfbGluZSkKLSAgICBbdmVyc2lvbiwgcmVzcG9uc2VfY29kZV0gPSB3b3Jk
c1s6Ml0KLSAgICBpZiB2ZXJzaW9uICE9ICdIVFRQLzEuMSc6Ci0gICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ0JhZCByZXNwb25zZSB2ZXJzaW9uICVyJyAlIHZlcnNpb24pCi0KLSAgICBpZiByZXNw
b25zZV9jb2RlICE9ICcxMDEnOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcmVzcG9u
c2UgY29kZSAlciAnICUgcmVzcG9uc2VfY29kZSkKLSAgICBoZWFkZXJzID0gZW1haWwucGFyc2Vy
LlBhcnNlcigpLnBhcnNlc3RyKGhlYWRlcl9saW5lcykKLSAgICByZXR1cm4gaGVhZGVycwotCi0K
LWRlZiBfcGFyc2VfY2hhbm5lbF9pZChkYXRhLCBvZmZzZXQ9MCk6Ci0gICAgbGVuZ3RoID0gbGVu
KGRhdGEpCi0gICAgcmVtYWluaW5nID0gbGVuZ3RoIC0gb2Zmc2V0Ci0KLSAgICBpZiByZW1haW5p
bmcgPD0gMDoKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdObyBjaGFubmVsIGlkIGZvdW5kJykK
LQotICAgIGNoYW5uZWxfaWQgPSBvcmQoZGF0YVtvZmZzZXRdKQotICAgIGNoYW5uZWxfaWRfbGVu
Z3RoID0gMQotICAgIGlmIGNoYW5uZWxfaWQgJiAweGUwID09IDB4ZTA6Ci0gICAgICAgIGlmIHJl
bWFpbmluZyA8IDQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgY2hhbm5l
bCBpZCBmb3JtYXQnKQotICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVucGFjaygnIUwnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW29mZnNldDpvZmZzZXQrNF0p
WzBdICYgMHgxZmZmZmZmZgotICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDQKLSAgICBlbGlm
IGNoYW5uZWxfaWQgJiAweGMwID09IDB4YzA6Ci0gICAgICAgIGlmIHJlbWFpbmluZyA8IDM6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQot
ICAgICAgICBjaGFubmVsX2lkID0gKCgoY2hhbm5lbF9pZCAmIDB4MWYpIDw8IDE2KSArCi0gICAg
ICAgICAgICAgICAgICAgICAgc3RydWN0LnVucGFjaygnIUgnLCBkYXRhW29mZnNldCsxOm9mZnNl
dCszXSlbMF0pCi0gICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gMwotICAgIGVsaWYgY2hhbm5l
bF9pZCAmIDB4ODAgPT0gMHg4MDoKLSAgICAgICAgaWYgcmVtYWluaW5nIDwgMjoKLSAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAg
IGNoYW5uZWxfaWQgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIGRhdGFbb2Zmc2V0Om9mZnNldCsyXSlb
MF0gJiAweDNmZmYKLSAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAyCi0KLSAgICByZXR1cm4g
Y2hhbm5lbF9pZCwgY2hhbm5lbF9pZF9sZW5ndGgKLQotCi1kZWYgX3BhcnNlX251bWJlcihkYXRh
LCBvZmZzZXQ9MCk6Ci0gICAgZmlyc3RfYnl0ZSA9IG9yZChkYXRhW29mZnNldF0pCi0gICAgaWYg
KGZpcnN0X2J5dGUgJiAweDgwKSAhPSAwOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoZSBN
U0Igb2YgbnVtYmVyIGZpZWxkIG11c3QgYmUgdW5zZXQnKQotICAgIGZpcnN0X2J5dGUgPSBmaXJz
dF9ieXRlICYgMHg3ZgotICAgIGlmIGZpcnN0X2J5dGUgPT0gMTI3OgotICAgICAgICBpZiBvZmZz
ZXQgKyA5ID4gbGVuKGRhdGEpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlk
IG51bWJlcicpCi0gICAgICAgIHJldHVybiBzdHJ1Y3QudW5wYWNrKCchUScsIGRhdGFbb2Zmc2V0
KzE6b2Zmc2V0KzldKVswXSwgOQotICAgIGlmIGZpcnN0X2J5dGUgPT0gMTI2OgotICAgICAgICBp
ZiBvZmZzZXQgKyAzID4gbGVuKGRhdGEpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJ
bnZhbGlkIG51bWJlcicpCi0gICAgICAgIHJldHVybiBzdHJ1Y3QudW5wYWNrKCchSCcsIGRhdGFb
b2Zmc2V0KzE6b2Zmc2V0KzNdKVswXSwgMwotICAgIHJldHVybiBmaXJzdF9ieXRlLCAxCi0KLQot
ZGVmIF9wYXJzZV9zaXplX2FuZF9jb250ZW50cyhkYXRhLCBvZmZzZXQ9MCk6Ci0gICAgc2l6ZSwg
YWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgb2Zmc2V0KQotICAgIHN0YXJ0X3Bvc2l0aW9u
ID0gb2Zmc2V0ICsgYWR2YW5jZQotICAgIGVuZF9wb3NpdGlvbiA9IHN0YXJ0X3Bvc2l0aW9uICsg
c2l6ZQotICAgIGlmIGxlbihkYXRhKSA8IGVuZF9wb3NpdGlvbjoKLSAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdJbnZhbGlkIHNpemUgb2YgY29udHJvbCBibG9jayAoJWQgPCAlZCknICUgKAotICAg
ICAgICAgICAgICAgIGxlbihkYXRhKSwgZW5kX3Bvc2l0aW9uKSkKLSAgICByZXR1cm4gZGF0YVtz
dGFydF9wb3NpdGlvbjplbmRfcG9zaXRpb25dLCBzaXplICsgYWR2YW5jZQotCi0KLWRlZiBfcGFy
c2VfY29udHJvbF9ibG9ja3MoZGF0YSk6Ci0gICAgYmxvY2tzID0gW10KLSAgICBsZW5ndGggPSBs
ZW4oZGF0YSkKLSAgICBwb3MgPSAwCi0KLSAgICB3aGlsZSBwb3MgPCBsZW5ndGg6Ci0gICAgICAg
IGZpcnN0X2J5dGUgPSBvcmQoZGF0YVtwb3NdKQotICAgICAgICBwb3MgKz0gMQotICAgICAgICBv
cGNvZGUgPSAoZmlyc3RfYnl0ZSA+PiA1KSAmIDB4NwotICAgICAgICBibG9jayA9IF9Db250cm9s
QmxvY2sob3Bjb2RlKQotCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IFN1cHBvcnQgbW9yZSBvcGNv
ZGUKLSAgICAgICAgaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNF
OgotICAgICAgICAgICAgYmxvY2suZW5jb2RlID0gZmlyc3RfYnl0ZSAmIDMKLSAgICAgICAgICAg
IGJsb2NrLnJlamVjdGVkID0gKGZpcnN0X2J5dGUgPj4gNCkgJiAxCi0KLSAgICAgICAgICAgIGNo
YW5uZWxfaWQsIGFkdmFuY2UgPSBfcGFyc2VfY2hhbm5lbF9pZChkYXRhLCBwb3MpCi0gICAgICAg
ICAgICBibG9jay5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICAgICAgcG9zICs9IGFk
dmFuY2UKLQotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UsIGFkdmFuY2UgPSBfcGFyc2Vf
c2l6ZV9hbmRfY29udGVudHMoZGF0YSwgcG9zKQotICAgICAgICAgICAgYmxvY2suZW5jb2RlZF9o
YW5kc2hha2UgPSBlbmNvZGVkX2hhbmRzaGFrZQotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UK
LSAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxvY2spCi0gICAgICAgIGVsaWYgb3Bjb2RlID09
IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoKLSAgICAgICAgICAgIGJsb2NrLm11eF9lcnJvciA9
IChmaXJzdF9ieXRlID4+IDQpICYgMQotCi0gICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNl
ID0gX3BhcnNlX2NoYW5uZWxfaWQoZGF0YSwgcG9zKQotICAgICAgICAgICAgYmxvY2suY2hhbm5l
bF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0KLSAgICAgICAg
ICAgIHJlYXNvbiwgYWR2YW5jZSA9IF9wYXJzZV9zaXplX2FuZF9jb250ZW50cyhkYXRhLCBwb3Mp
Ci0gICAgICAgICAgICBpZiBsZW4ocmVhc29uKSA9PSAwOgotICAgICAgICAgICAgICAgIGJsb2Nr
LmRyb3BfY29kZSA9IE5vbmUKLSAgICAgICAgICAgICAgICBibG9jay5kcm9wX21lc3NhZ2UgPSAn
JwotICAgICAgICAgICAgZWxpZiBsZW4ocmVhc29uKSA+PSAyOgotICAgICAgICAgICAgICAgIGJs
b2NrLmRyb3BfY29kZSA9IHN0cnVjdC51bnBhY2soJyFIJywgcmVhc29uWzoyXSlbMF0KLSAgICAg
ICAgICAgICAgICBibG9jay5kcm9wX21lc3NhZ2UgPSByZWFzb25bMjpdCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBEcm9wQ2hhbm5l
bCcpCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAgICAgICAgICAgYmxvY2tzLmFwcGVu
ZChibG9jaykKLSAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfRkxPV19DT05UUk9M
OgotICAgICAgICAgICAgY2hhbm5lbF9pZCwgYWR2YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKGRh
dGEsIHBvcykKLSAgICAgICAgICAgIGJsb2NrLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAg
ICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAgICAgICAgICAgc2VuZF9xdW90YSwgYWR2YW5jZSA9
IF9wYXJzZV9udW1iZXIoZGF0YSwgcG9zKQotICAgICAgICAgICAgYmxvY2suc2VuZF9xdW90YSA9
IHNlbmRfcXVvdGEKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBibG9j
a3MuYXBwZW5kKGJsb2NrKQotICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9ORVdf
Q0hBTk5FTF9TTE9UOgotICAgICAgICAgICAgZmFsbGJhY2sgPSBmaXJzdF9ieXRlICYgMQotICAg
ICAgICAgICAgc2xvdHMsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIHBvcykKLSAgICAg
ICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBzZW5kX3F1b3RhLCBhZHZhbmNlID0g
X3BhcnNlX251bWJlcihkYXRhLCBwb3MpCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAg
ICAgICAgICAgaWYgZmFsbGJhY2sgPT0gMSBhbmQgKHNsb3RzICE9IDAgb3Igc2VuZF9xdW90YSAh
PSAwKToKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ3Nsb3RzIGFuZCBzZW5kX3F1
b3RhIG11c3QgYmUgemVybyBpZiBGIGJpdCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdpcyBzZXQnKQotICAgICAgICAgICAgYmxvY2suZmFsbGJhY2sgPSBmYWxsYmFjawotICAg
ICAgICAgICAgYmxvY2suc2xvdHMgPSBzbG90cwotICAgICAgICAgICAgYmxvY2suc2VuZF9xdW90
YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxvY2spCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1Vu
c3VwcG9ydGVkIG11eCBvcGNvZGUgJWQgcmVjZWl2ZWQnICUgb3Bjb2RlKQotCi0gICAgcmV0dXJu
IGJsb2NrcwotCi0KLWRlZiBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCk6Ci0gICAgaWYg
Y2hhbm5lbF9pZCA8IDA6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0NoYW5uZWwgaWQgJWQg
bXVzdCBub3QgYmUgbmVnYXRpdmUnICUgY2hhbm5lbF9pZCkKLQotICAgIGlmIGNoYW5uZWxfaWQg
PCAyICoqIDc6Ci0gICAgICAgIHJldHVybiBjaHIoY2hhbm5lbF9pZCkKLSAgICBpZiBjaGFubmVs
X2lkIDwgMiAqKiAxNDoKLSAgICAgICAgcmV0dXJuIHN0cnVjdC5wYWNrKCchSCcsIDB4ODAwMCAr
IGNoYW5uZWxfaWQpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMjE6Ci0gICAgICAgIGZpcnN0
ID0gY2hyKDB4YzAgKyAoY2hhbm5lbF9pZCA+PiAxNikpCi0gICAgICAgIHJldHVybiBmaXJzdCAr
IHN0cnVjdC5wYWNrKCchSCcsIGNoYW5uZWxfaWQgJiAweGZmZmYpCi0gICAgaWYgY2hhbm5lbF9p
ZCA8IDIgKiogMjk6Ci0gICAgICAgIHJldHVybiBzdHJ1Y3QucGFjaygnIUwnLCAweGUwMDAwMDAw
ICsgY2hhbm5lbF9pZCkKLQotICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0NoYW5uZWwgaWQgJWQgaXMg
dG9vIGxhcmdlJyAlIGNoYW5uZWxfaWQpCi0KLQotZGVmIF9lbmNvZGVfbnVtYmVyKG51bWJlcik6
Ci0gICAgaWYgbnVtYmVyIDw9IDEyNToKLSAgICAgICAgcmV0dXJuIGNocihudW1iZXIpCi0gICAg
ZWxpZiBudW1iZXIgPCAoMSA8PCAxNik6Ci0gICAgICAgIHJldHVybiBjaHIoMHg3ZSkgKyBzdHJ1
Y3QucGFjaygnIUgnLCBudW1iZXIpCi0gICAgZWxpZiBudW1iZXIgPCAoMSA8PCA2Myk6Ci0gICAg
ICAgIHJldHVybiBjaHIoMHg3ZikgKyBzdHJ1Y3QucGFjaygnIVEnLCBudW1iZXIpCi0gICAgZWxz
ZToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIG51bWJlcicpCi0KLQotZGVmIF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdChjaGFubmVsX2lkLCBlbmNvZGVkX2hhbmRzaGFrZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MCk6Ci0gICAgbGVuZ3Ro
ID0gbGVuKGVuY29kZWRfaGFuZHNoYWtlKQotICAgIGhhbmRzaGFrZV9sZW5ndGggPSBfZW5jb2Rl
X251bWJlcihsZW5ndGgpCi0KLSAgICBmaXJzdF9ieXRlID0gKF9NVVhfT1BDT0RFX0FERF9DSEFO
TkVMX1JFUVVFU1QgPDwgNSkgfCBlbmNvZGluZwotICAgIHJldHVybiAoY2hyKGZpcnN0X2J5dGUp
ICsgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKLSAgICAgICAgICAgIGhhbmRzaGFr
ZV9sZW5ndGggKyBlbmNvZGVkX2hhbmRzaGFrZSkKLQotCi1kZWYgX2NyZWF0ZV9mbG93X2NvbnRy
b2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpOgotICAgIGZpcnN0X2J5dGUgPSAoX01V
WF9PUENPREVfRkxPV19DT05UUk9MIDw8IDUpCi0gICAgcmV0dXJuIChjaHIoZmlyc3RfYnl0ZSkg
KyBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKwotICAgICAgICAgICAgX2VuY29kZV9u
dW1iZXIocmVwbGVuaXNoZWRfcXVvdGEpKQotCi0KLWNsYXNzIF9NdXhSZWFkZXJUaHJlYWQodGhy
ZWFkaW5nLlRocmVhZCk6Ci0gICAgIiIiTXV4IHJlYWRlciB0aHJlYWQuCi0KLSAgICBSZWFkcyBm
cmFtZXMgYW5kIHBhc3NlcyB0aGVtIHRvIHRoZSBtdXggY2xpZW50LiBUaGlzIHRocmVhZCBhY2Nl
c3NlcwotICAgIHByaXZhdGUgZnVuY3Rpb25zL3ZhcmlhYmxlcyBvZiB0aGUgbXV4IGNsaWVudC4K
LSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXgpOgotICAgICAgICB0aHJlYWRp
bmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0g
ICAgICAgIHNlbGYuX211eCA9IG11eAotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IEZh
bHNlCi0KLSAgICBkZWYgX3JlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAgZmlyc3Rfb3Bj
b2RlID0gTm9uZQotICAgICAgICBwZW5kaW5nX3BheWxvYWQgPSBbXQotICAgICAgICB3aGlsZSBu
b3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAgICBmaW4sIHJzdjEsIHJzdjIsIHJz
djMsIG9wY29kZSwgcGF5bG9hZF9sZW5ndGggPSAoCi0gICAgICAgICAgICAgICAgY2xpZW50X2Zv
cl90ZXN0aW5nLnJlYWRfZnJhbWVfaGVhZGVyKHNlbGYuX211eC5fc29ja2V0KSkKLQotICAgICAg
ICAgICAgaWYgbm90IGZpcnN0X29wY29kZToKLSAgICAgICAgICAgICAgICBpZiBvcGNvZGUgPT0g
Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhUOgotICAgICAgICAgICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGEgdGV4dCBtZXNzYWdlIG9uIHBoeXNpY2FsICcKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25uZWN0aW9uJykKLSAgICAgICAgICAg
ICAgICBpZiBvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DT05USU5VQVRJT046
Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgYW4gaW50ZXJt
ZWRpYXRlIGZyYW1lIGJ1dCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
ZnJhZ21lbnRhdGlvbiB3YXMgbm90IHN0YXJ0ZWQnKQotICAgICAgICAgICAgICAgIGlmIChvcGNv
ZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9CSU5BUlkgb3IKLSAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfUE9ORyBvcgotICAgICAg
ICAgICAgICAgICAgICBvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9QT05HIG9y
Ci0gICAgICAgICAgICAgICAgICAgIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RF
X0NMT1NFKToKLSAgICAgICAgICAgICAgICAgICAgZmlyc3Rfb3Bjb2RlID0gb3Bjb2RlCi0gICAg
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdS
ZWNlaXZlZCBhbiB1bmRlZmluZWQgb3Bjb2RlIGZyYW1lOiAlZCcgJQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlKQotCi0gICAgICAgICAgICBlbGlmIG9wY29kZSAh
PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGEgbmV3IG9wY29kZSBiZWZvcmUgJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAndGVybWluYXRpbmcgZnJhZ21lbnRhdGlvbicpCi0K
LSAgICAgICAgICAgIHBheWxvYWQgPSBjbGllbnRfZm9yX3Rlc3RpbmcucmVjZWl2ZV9ieXRlcygK
LSAgICAgICAgICAgICAgICBzZWxmLl9tdXguX3NvY2tldCwgcGF5bG9hZF9sZW5ndGgpCi0KLSAg
ICAgICAgICAgIGlmIHNlbGYuX211eC5faW5jb21pbmdfZnJhbWVfZmlsdGVyIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgICAgIHBheWxvYWQgPSBzZWxmLl9tdXguX2luY29taW5nX2ZyYW1lX2Zp
bHRlci5maWx0ZXIocGF5bG9hZCkKLQotICAgICAgICAgICAgcGVuZGluZ19wYXlsb2FkLmFwcGVu
ZChwYXlsb2FkKQotCi0gICAgICAgICAgICBpZiBmaW46Ci0gICAgICAgICAgICAgICAgYnJlYWsK
LQotICAgICAgICBpZiBzZWxmLl9zdG9wX3JlcXVlc3RlZDoKLSAgICAgICAgICAgIHJldHVybiBO
b25lLCBOb25lCi0KLSAgICAgICAgbWVzc2FnZSA9ICcnLmpvaW4ocGVuZGluZ19wYXlsb2FkKQot
ICAgICAgICByZXR1cm4gZmlyc3Rfb3Bjb2RlLCBtZXNzYWdlCi0KLSAgICBkZWYgcmVxdWVzdF9z
dG9wKHNlbGYpOgotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IFRydWUKLQotICAgIGRl
ZiBydW4oc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdoaWxlIG5vdCBzZWxmLl9z
dG9wX3JlcXVlc3RlZDoKLSAgICAgICAgICAgICAgICAjIG9wY29kZSBpcyBPUENPREVfQklOQVJZ
IG9yIGNvbnRyb2wgb3Bjb2RlcyB3aGVuIGEgbWVzc2FnZQotICAgICAgICAgICAgICAgICMgaXMg
c3VjY2VzZnVsbHkgcmVjZWl2ZWQuCi0gICAgICAgICAgICAgICAgb3Bjb2RlLCBtZXNzYWdlID0g
c2VsZi5fcmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgICAgICAgICBpZiBub3Qgb3Bjb2RlOgot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAgICBpZiBvcGNvZGUgPT0g
Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9CSU5BUlk6Ci0gICAgICAgICAgICAgICAgICAgIGNo
YW5uZWxfaWQsIGFkdmFuY2UgPSBfcGFyc2VfY2hhbm5lbF9pZChtZXNzYWdlKQotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9tdXguX2Rpc3BhdGNoX2ZyYW1lKGNoYW5uZWxfaWQsIG1lc3NhZ2Vb
YWR2YW5jZTpdKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX211eC5fcHJvY2Vzc19jb250cm9sX21lc3NhZ2Uob3Bjb2RlLCBtZXNzYWdlKQotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbXV4Ll9ub3RpZnlfcmVhZGVyX2RvbmUoKQot
Ci0KLWNsYXNzIF9Jbm5lckZyYW1lKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZp
biwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkKToKLSAgICAgICAgc2VsZi5maW4g
PSBmaW4KLSAgICAgICAgc2VsZi5yc3YxID0gcnN2MQotICAgICAgICBzZWxmLnJzdjIgPSByc3Yy
Ci0gICAgICAgIHNlbGYucnN2MyA9IHJzdjMKLSAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUK
LSAgICAgICAgc2VsZi5wYXlsb2FkID0gcGF5bG9hZAotCi0KLWNsYXNzIF9Mb2dpY2FsQ2hhbm5l
bERhdGEob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYucXVl
dWUgPSBRdWV1ZS5RdWV1ZSgpCi0gICAgICAgIHNlbGYuc2VuZF9xdW90YSA9IDAKLSAgICAgICAg
c2VsZi5yZWNlaXZlX3F1b3RhID0gMAotCi0KLWNsYXNzIE11eENsaWVudChvYmplY3QpOgotICAg
ICIiIldlYlNvY2tldCBtdXggY2xpZW50LgotCi0gICAgTm90ZSB0aGF0IHRoaXMgY2xhc3MgaXMg
Tk9UIHRocmVhZC1zYWZlLiBEbyBub3QgYWNjZXNzIGFuIGluc3RhbmNlIG9mIHRoaXMKLSAgICBj
bGFzcyBmcm9tIG11bHRpcGxlIHRocmVhZHMgYXQgYSBzYW1lIHRpbWUuCi0gICAgIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRp
b25zCi0gICAgICAgIHNlbGYuX29wdGlvbnMuZW5hYmxlX211eCgpCi0gICAgICAgIHNlbGYuX3N0
cmVhbSA9IE5vbmUKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gTm9uZQotICAgICAgICBzZWxmLl9o
YW5kc2hha2UgPSBjbGllbnRfZm9yX3Rlc3RpbmcuV2ViU29ja2V0SGFuZHNoYWtlKHNlbGYuX29w
dGlvbnMpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlciA9IE5vbmUKLSAgICAg
ICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyID0gTm9uZQotCi0gICAgICAgIHNlbGYuX2lz
X2FjdGl2ZSA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkID0gTm9uZQotICAgICAg
ICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkK
LSAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3MgPSBbXQotICAgICAgICBzZWxmLl9jaGFubmVs
X3Nsb3RzID0gY29sbGVjdGlvbnMuZGVxdWUoKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKTsKLSAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVscyA9IHt9Ci0gICAgICAgIHNlbGYuX3RpbWVvdXQgPSAyCi0gICAgICAgIHNl
bGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQgPSBOb25lCi0gICAgICAgIHNlbGYu
X3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfbWVzc2FnZSA9IE5vbmUKLQotICAgIGRlZiBfcGFy
c2VfaW5uZXJfZnJhbWUoc2VsZiwgZGF0YSk6Ci0gICAgICAgIGlmIGxlbihkYXRhKSA9PSAwOgot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIGVuY2Fwc3VsYXRlZCBmcmFtZSBy
ZWNlaXZlZCcpCi0KLSAgICAgICAgZmlyc3RfYnl0ZSA9IG9yZChkYXRhWzBdKQotICAgICAgICBm
aW4gPSAoZmlyc3RfYnl0ZSA8PCA3KSAmIDEKLSAgICAgICAgcnN2MSA9IChmaXJzdF9ieXRlIDw8
IDYpICYgMQotICAgICAgICByc3YyID0gKGZpcnN0X2J5dGUgPDwgNSkgJiAxCi0gICAgICAgIHJz
djMgPSAoZmlyc3RfYnl0ZSA8PCA0KSAmIDEKLSAgICAgICAgb3Bjb2RlID0gZmlyc3RfYnl0ZSAm
IDB4ZgotCi0gICAgICAgIGlmIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlcjoKLSAgICAgICAg
ICAgIHBheWxvYWQgPSBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIuZmlsdGVyKAotICAgICAg
ICAgICAgICAgIGRhdGFbMTpdKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcGF5bG9hZCA9
IGRhdGFbMTpdCi0KLSAgICAgICAgcmV0dXJuIF9Jbm5lckZyYW1lKGZpbiwgcnN2MSwgcnN2Miwg
cnN2Mywgb3Bjb2RlLCBwYXlsb2FkKQotCi0gICAgZGVmIF9wcm9jZXNzX211eF9jb250cm9sX2Js
b2NrcyhzZWxmKToKLSAgICAgICAgZm9yIGJsb2NrIGluIHNlbGYuX2NvbnRyb2xfYmxvY2tzOgot
ICAgICAgICAgICAgaWYgYmxvY2sub3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JF
U1BPTlNFOgotICAgICAgICAgICAgICAgICMgQWRkQ2hhbm5lbFJlc3BvbnNlIHdpbGwgYmUgaGFu
ZGxlZCBpbiBhZGRfY2hhbm5lbCgpLgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg
ICAgICBlbGlmIGJsb2NrLm9wY29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6Ci0gICAg
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IGJsb2Nr
LmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBmbG93IGNvbnRyb2wgcmVjZWl2ZWQgZm9y
ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hhbm5lbCBpZCAl
ZCcgJSBibG9jay5jaGFubmVsX2lkKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2Fs
X2NoYW5uZWxzW2Jsb2NrLmNoYW5uZWxfaWRdLnNlbmRfcXVvdGEgKz0gKAotICAgICAgICAgICAg
ICAgICAgICAgICAgYmxvY2suc2VuZF9xdW90YSkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
bG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgICAgICAgICBmaW5h
bGx5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlv
bi5yZWxlYXNlKCkKLSAgICAgICAgICAgIGVsaWYgYmxvY2sub3Bjb2RlID09IF9NVVhfT1BDT0RF
X05FV19DSEFOTkVMX1NMT1Q6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cy5l
eHRlbmQoW2Jsb2NrLnNlbmRfcXVvdGFdICogYmxvY2suc2xvdHMpCi0KLSAgICBkZWYgX2Rpc3Bh
dGNoX2ZyYW1lKHNlbGYsIGNoYW5uZWxfaWQsIHBheWxvYWQpOgotICAgICAgICBpZiBjaGFubmVs
X2lkID09IF9DT05UUk9MX0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAg
ICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzICs9IF9wYXJzZV9jb250cm9sX2Jsb2NrcyhwYXls
b2FkKQotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfbXV4X2NvbnRyb2xfYmxvY2tzKCkK
LSAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24ubm90aWZ5KCkK
LSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9j
a3NfY29uZGl0aW9uLnJlbGVhc2UoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUo
KQotICAgICAgICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHM6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgbG9n
aWNhbCBmcmFtZSBvbiBjaGFubmVsIGlkICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICclZCwgd2hpY2ggaXMgbm90IGVzdGFibGlzaGVkJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkKQotCi0gICAgICAgICAgICAgICAgaW5uZXJf
ZnJhbWUgPSBzZWxmLl9wYXJzZV9pbm5lcl9mcmFtZShwYXlsb2FkKQotICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucmVjZWl2ZV9xdW90YSAtPSAoCi0g
ICAgICAgICAgICAgICAgICAgICAgICBsZW4oaW5uZXJfZnJhbWUucGF5bG9hZCkpCi0gICAgICAg
ICAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5yZWNlaXZlX3F1
b3RhIDwgMDoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaGUgc2VydmVy
IHZpb2xhdGVzIHF1b3RhIG9uICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdjaGFubmVsIGlkICVkJyAlIGNoYW5uZWxfaWQpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQot
ICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5xdWV1ZS5wdXQo
aW5uZXJfZnJhbWUpCi0KLSAgICBkZWYgX3Byb2Nlc3NfY29udHJvbF9tZXNzYWdlKHNlbGYsIG9w
Y29kZSwgbWVzc2FnZSk6Ci0gICAgICAgICMgUGluZy9Qb25nIGFyZSBub3Qgc3VwcG9ydGVkLgot
ICAgICAgICBpZiBvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9TRToKLSAg
ICAgICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfbWVzc2FnZSA9IG1lc3Nh
Z2UKLSAgICAgICAgICAgIGlmIHNlbGYuX2lzX2FjdGl2ZToKLSAgICAgICAgICAgICAgICBzZWxm
Ll9zdHJlYW0uc2VuZF9jbG9zZSgKLSAgICAgICAgICAgICAgICAgICAgY29kZT1jbGllbnRfZm9y
X3Rlc3RpbmcuU1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249JycpCi0gICAgICAgICAgICAg
ICAgc2VsZi5fcmVhZF90aHJlYWQucmVxdWVzdF9zdG9wKCkKLQotICAgICAgICAgICAgaWYgc2Vs
Zi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudDoKLSAgICAgICAgICAgICAgICBzZWxm
Ll9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50LnNldCgpCi0KLSAgICBkZWYgX25vdGlm
eV9yZWFkZXJfZG9uZShzZWxmKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWFkIHRo
cmVhZCB0ZXJtaW5hdGVkLicpCi0gICAgICAgIHNlbGYuY2xvc2Vfc29ja2V0KCkKLQotICAgIGRl
ZiBfYXNzZXJ0X2NoYW5uZWxfc2xvdF9hdmFpbGFibGUoc2VsZik6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAg
ICAgICAgIGlmIGxlbihzZWxmLl9jaGFubmVsX3Nsb3RzKSA9PSAwOgotICAgICAgICAgICAgICAg
ICMgV2FpdCBvbmNlCi0gICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0
aW9uLndhaXQodGltZW91dD1zZWxmLl90aW1lb3V0KQotICAgICAgICBmaW5hbGx5OgotICAgICAg
ICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAg
IGlmIGxlbihzZWxmLl9jaGFubmVsX3Nsb3RzKSA9PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdGYWlsZWQgdG8gcmVjZWl2ZSBOZXdDaGFubmVsU2xvdCcpCi0KLSAgICBkZWYgX2Fz
c2VydF9zZW5kX3F1b3RhX2F2YWlsYWJsZShzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgp
Ci0gICAgICAgICAgICBpZiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnNlbmRf
cXVvdGEgPT0gMDoKLSAgICAgICAgICAgICAgICAjIFdhaXQgb25jZQotICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLndhaXQodGltZW91dD1zZWxmLl90aW1l
b3V0KQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFubmVs
c1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhID09IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oJ0ZhaWxlZCB0byByZWNlaXZlIEZsb3dDb250cm9sIGZvciBjaGFubmVsIGlkICVkJyAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCkKLQotICAgIGRlZiBjb25uZWN0
KHNlbGYpOgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY29ubmVj
dF9zb2NrZXRfd2l0aF9yZXRyeSgKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZl
cl9ob3N0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQsCi0gICAg
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zb2NrZXRfdGltZW91dCwKLSAgICAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnVzZV90bHMpCi0KLSAgICAgICAgc2VsZi5faGFuZHNoYWtlLmhhbmRz
aGFrZShzZWxmLl9zb2NrZXQpCi0gICAgICAgIHNlbGYuX3N0cmVhbSA9IGNsaWVudF9mb3JfdGVz
dGluZy5XZWJTb2NrZXRTdHJlYW0oCi0gICAgICAgICAgICBzZWxmLl9zb2NrZXQsIHNlbGYuX2hh
bmRzaGFrZSkKLQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW19ERUZBVUxUX0NIQU5O
RUxfSURdID0gX0xvZ2ljYWxDaGFubmVsRGF0YSgpCi0KLSAgICAgICAgc2VsZi5fcmVhZF90aHJl
YWQgPSBfTXV4UmVhZGVyVGhyZWFkKHNlbGYpCi0gICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkLnN0
YXJ0KCkKLQotICAgICAgICBzZWxmLl9hc3NlcnRfY2hhbm5lbF9zbG90X2F2YWlsYWJsZSgpCi0g
ICAgICAgIHNlbGYuX2Fzc2VydF9zZW5kX3F1b3RhX2F2YWlsYWJsZShfREVGQVVMVF9DSEFOTkVM
X0lEKQotCi0gICAgICAgIHNlbGYuX2lzX2FjdGl2ZSA9IFRydWUKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmluZm8oJ0Nvbm5lY3Rpb24gZXN0YWJsaXNoZWQnKQotCi0gICAgZGVmIGFkZF9jaGFubmVs
KHNlbGYsIGNoYW5uZWxfaWQsIG9wdGlvbnMpOgotICAgICAgICBpZiBub3Qgc2VsZi5faXNfYWN0
aXZlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdNdXggY2xpZW50IGlzIG5vdCBhY3Rp
dmUnKQotCi0gICAgICAgIGlmIGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2hhbm5lbCBpZCAlZCBhbHJlYWR5IGV4aXN0
cycgJSBjaGFubmVsX2lkKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbmRfcXVvdGEg
PSBzZWxmLl9jaGFubmVsX3Nsb3RzLnBvcGxlZnQoKQotICAgICAgICBleGNlcHQgSW5kZXhFcnJv
ciwgZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm8gY2hhbm5lbCBzbG90czogJXIn
ICUgZSkKLQotICAgICAgICAjIENyZWF0ZSBBZGRDaGFubmVsIHJlcXVlc3QKLSAgICAgICAgcmVx
dWVzdF9saW5lID0gJ0dFVCAlcyBIVFRQLzEuMVxyXG4nICUgb3B0aW9ucy5yZXNvdXJjZQotICAg
ICAgICBmaWVsZHMgPSBbXQotICAgICAgICBpZiBvcHRpb25zLnNlcnZlcl9wb3J0ID09IGNsaWVu
dF9mb3JfdGVzdGluZy5ERUZBVUxUX1BPUlQ6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCdI
b3N0OiAlc1xyXG4nICUgb3B0aW9ucy5zZXJ2ZXJfaG9zdC5sb3dlcigpKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnSG9zdDogJXM6JWRcclxuJyAlIChvcHRpb25z
LnNlcnZlcl9ob3N0Lmxvd2VyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbnMuc2VydmVyX3BvcnQpKQotICAgICAgICBmaWVsZHMuYXBwZW5k
KCdPcmlnaW46ICVzXHJcbicgJSBvcHRpb25zLm9yaWdpbi5sb3dlcigpKQotICAgICAgICBmaWVs
ZHMuYXBwZW5kKCdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicpCi0KLSAgICAgICAgaWYgbGVuKG9w
dGlvbnMuZXh0ZW5zaW9ucykgPiAwOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdl
YlNvY2tldC1FeHRlbnNpb25zOiAlc1xyXG4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
JywgJy5qb2luKG9wdGlvbnMuZXh0ZW5zaW9ucykpCi0KLSAgICAgICAgaGFuZHNoYWtlID0gcmVx
dWVzdF9saW5lICsgJycuam9pbihmaWVsZHMpICsgJ1xyXG4nCi0gICAgICAgIGFkZF9jaGFubmVs
X3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3QoCi0gICAgICAgICAgICBjaGFu
bmVsX2lkLCBoYW5kc2hha2UpCi0gICAgICAgIHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQo
X0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBhZGRfY2hhbm5lbF9yZXF1ZXN0Ci0gICAgICAgIHNlbGYu
X3N0cmVhbS5zZW5kX2JpbmFyeShwYXlsb2FkKQotCi0gICAgICAgICMgV2FpdCBBZGRDaGFubmVs
UmVzcG9uc2UKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdXYWl0aW5nIEFkZENoYW5uZWxS
ZXNwb25zZSBmb3IgdGhlIHJlcXVlc3QuLi4nKQotICAgICAgICByZXNwb25zZSA9IE5vbmUKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICBmb3IgYmxv
Y2sgaW4gc2VsZi5fY29udHJvbF9ibG9ja3M6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGJsb2Nr
Lm9wY29kZSAhPSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRToKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgICAgIGlmIGJsb2NrLmNoYW5u
ZWxfaWQgPT0gY2hhbm5lbF9pZDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0g
YmxvY2sKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzLnJlbW92
ZShyZXNwb25zZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAg
ICAgaWYgcmVzcG9uc2U6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAg
ICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLndhaXQoc2VsZi5fdGltZW91dCkKLSAg
ICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5faXNfYWN0aXZlOgotICAgICAgICAgICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ0FkZENoYW5uZWxSZXF1ZXN0IHRpbWVkIG91dCcpCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24ucmVs
ZWFzZSgpCi0KLSAgICAgICAgIyBWYWxpZGF0ZSBBZGRDaGFubmVsUmVzcG9uc2UKLSAgICAgICAg
aWYgcmVzcG9uc2UucmVqZWN0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoZSBz
ZXJ2ZXIgcmVqZWN0ZWQgQWRkQ2hhbm5lbFJlcXVlc3QnKQotCi0gICAgICAgIGZpZWxkcyA9IF9w
YXJzZV9oYW5kc2hha2VfcmVzcG9uc2UocmVzcG9uc2UuZW5jb2RlZF9oYW5kc2hha2UpCi0KLSAg
ICAgICAgIyBTaG91bGQgd2UgcmVqZWN0IHdoZW4gVXBncmFkZSwgQ29ubmVjdGlvbiwgb3IgU2Vj
LVdlYlNvY2tldC1BY2NlcHQKLSAgICAgICAgIyBoZWFkZXJzIGV4aXN0PwotCi0gICAgICAgIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdID0gX0xvZ2ljYWxDaGFubmVsRGF0YSgpCi0gICAg
ICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSA9IHNlbmRf
cXVvdGEKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgp
Ci0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdMb2dpY2FsIGNoYW5uZWwgJWQgZXN0YWJs
aXNoZWQnICUgY2hhbm5lbF9pZCkKLQotICAgIGRlZiBfY2hlY2tfbG9naWNhbF9jaGFubmVsX2lz
X29wZW5lZChzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2
ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTXV4IGNsaWVudCBpcyBub3QgYWN0aXZl
JykKLQotICAgICAgICBpZiBub3QgY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdMb2dpY2FsIGNoYW5uZWwgJWQgaXMgbm90
IGVzdGFibGlzaGVkLicpCi0KLSAgICBkZWYgZHJvcF9jaGFubmVsKHNlbGYsIGNoYW5uZWxfaWQp
OgotICAgICAgICAjIFRPRE8oYmFzaGkpOiBJbXBsZW1lbnQKLSAgICAgICAgcGFzcwotCi0gICAg
ZGVmIHNlbmRfZmxvd19jb250cm9sKHNlbGYsIGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1b3Rh
KToKLSAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNhbF9jaGFubmVsX2lzX29wZW5lZChjaGFubmVs
X2lkKQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbChjaGFubmVs
X2lkLCByZXBsZW5pc2hlZF9xdW90YSkKLSAgICAgICAgcGF5bG9hZCA9IF9lbmNvZGVfY2hhbm5l
bF9pZChfQ09OVFJPTF9DSEFOTkVMX0lEKSArIGZsb3dfY29udHJvbAotICAgICAgICAjIFJlcGxl
bmlzaCByZWNlaXZlIHF1b3RhCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc1tjaGFubmVsX2lkXS5yZWNlaXZlX3F1b3RhICs9ICgKLSAgICAgICAgICAgICAg
ICByZXBsZW5pc2hlZF9xdW90YSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotICAgICAgICBzZWxmLl9zdHJl
YW0uc2VuZF9iaW5hcnkocGF5bG9hZCkKLQotICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgY2hh
bm5lbF9pZCwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgIHNlbGYu
X2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLQotICAgICAgICBp
ZiBiaW5hcnk6Ci0gICAgICAgICAgICBmaXJzdF9ieXRlID0gKGVuZCA8PCA3KSB8IGNsaWVudF9m
b3JfdGVzdGluZy5PUENPREVfQklOQVJZCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmaXJz
dF9ieXRlID0gKGVuZCA8PCA3KSB8IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVAotICAg
ICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpCi0KLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgp
Ci0gICAgICAgICAgICBpZiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnNlbmRf
cXVvdGEgPCBsZW4obWVzc2FnZSk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdT
ZW5kIHF1b3RhIHZpb2xhdGlvbjogJWQgPCAlZCcgJSAoCi0gICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnNlbmRfcXVvdGEsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBsZW4obWVzc2FnZSkpKQotCi0gICAgICAgICAgICBzZWxmLl9sb2dp
Y2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnNlbmRfcXVvdGEgLT0gbGVuKG1lc3NhZ2UpCi0gICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlv
bi5yZWxlYXNlKCkKLSAgICAgICAgcGF5bG9hZCA9IF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVs
X2lkKSArIGNocihmaXJzdF9ieXRlKSArIG1lc3NhZ2UKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNl
bmRfYmluYXJ5KHBheWxvYWQpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmUoc2VsZiwgY2hhbm5l
bF9pZCwgcGF5bG9hZCwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNh
bF9jaGFubmVsX2lzX29wZW5lZChjaGFubmVsX2lkKQotCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5xdWV1
ZS5nZXQoCi0gICAgICAgICAgICAgICAgdGltZW91dD1zZWxmLl90aW1lb3V0KQotICAgICAgICBl
eGNlcHQgUXVldWUuRW1wdHksIGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5v
dCByZWNlaXZlIG1lc3NhZ2UgZnJvbSBjaGFubmVsIGlkICVkJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhbm5lbF9pZCkKLQotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAg
ICBvcGNvZGUgPSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFSWQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgb3Bjb2RlID0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhUCi0K
LSAgICAgICAgaWYgaW5uZXJfZnJhbWUub3Bjb2RlICE9IG9wY29kZToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCBvcGNvZGUgcmVjZWl2ZWQgKCVyICE9ICVyKScgJQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZF9vcGNvZGUsIGlubmVyX2ZyYW1l
Lm9wY29kZSkpCi0KLSAgICAgICAgaWYgaW5uZXJfZnJhbWUucGF5bG9hZCAhPSBwYXlsb2FkOgot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIHBheWxvYWQgcmVjZWl2ZWQn
KQotCi0gICAgZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY2hhbm5lbF9pZCwgY29kZT1Ob25lLCByZWFz
b249JycpOgotICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNo
YW5uZWxfaWQpCi0KLSAgICAgICAgaWYgY29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGJv
ZHkgPSBzdHJ1Y3QucGFjaygnIUgnLCBjb2RlKSArIHJlYXNvbi5lbmNvZGUoJ3V0Zi04JykKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGJvZHkgPSAnJwotCi0gICAgICAgIGZpcnN0X2J5dGUg
PSAoMSA8PCA3KSB8IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQ0xPU0UKLSAgICAgICAgcGF5
bG9hZCA9IF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArIGNocihmaXJzdF9ieXRlKSAr
IGJvZHkKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KHBheWxvYWQpCi0KLSAgICBk
ZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIHNlbGYu
X2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hh
bm5lbF9pZF0ucXVldWUuZ2V0KAotICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi5fdGltZW91
dCkKLSAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5LCBlOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdDYW5ub3QgcmVjZWl2ZSBtZXNzYWdlIGZyb20gY2hhbm5lbCBpZCAlZCcgJQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQpCi0gICAgICAgIGlmIGlubmVyX2Zy
YW1lLm9wY29kZSAhPSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NMT1NFOgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdEaWRuXCd0IHJlY2VpdmUgY2xvc2UgZnJhbWUnKQotCi0gICAg
ZGVmIHNlbmRfcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZShzZWxmLCBjb2RlPU5vbmUsIHJlYXNv
bj0nJyk6Ci0gICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQgPSB0
aHJlYWRpbmcuRXZlbnQoKQotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9jbG9zZShjb2RlLCBy
ZWFzb24pCi0KLSAgICAjIFRoaXMgbWV0aG9kIGNhbiBiZSB1c2VkIG9ubHkgYWZ0ZXIgY2FsbGlu
ZwotICAgICMgc2VuZF9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlKCkuCi0gICAgZGVmIGFzc2Vy
dF9waHlzaWNhbF9jb25uZWN0aW9uX3JlY2VpdmVfY2xvc2UoCi0gICAgICAgIHNlbGYsIGNvZGU9
Y2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToKLSAg
ICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudC53YWl0KHRpbWVvdXQ9
c2VsZi5fdGltZW91dCkKLSAgICAgICAgaWYgKG5vdCBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9u
X2Nsb3NlX2V2ZW50LmlzU2V0KCkgb3IKLSAgICAgICAgICAgIG5vdCBzZWxmLl9waHlzaWNhbF9j
b25uZWN0aW9uX2Nsb3NlX21lc3NhZ2UpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdE
aWRuXCd0IHJlY2VpdmUgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgZGVmIGNsb3NlX3NvY2tl
dChzZWxmKToKLSAgICAgICAgc2VsZi5faXNfYWN0aXZlID0gRmFsc2UKLSAgICAgICAgc2VsZi5f
c29ja2V0LmNsb3NlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvcnVuX2FsbC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvcnVuX2FsbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBh
NWQ4N2Q4MzgyMmIwNzgzYmUxM2UzM2RkYTNhYjYxYTVhZmU0MC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3J1bl9hbGwucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMg
Q29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSIiIlJ1biBhbGwgdGVzdHMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5
LgotCi1UaGlzIHN1aXRlIGlzIGV4cGVjdGVkIHRvIGJlIHJ1biB1bmRlciBweXdlYnNvY2tldCdz
IHNyYyBkaXJlY3RvcnksIGkuZS4gdGhlCi1kaXJlY3RvcnkgY29udGFpbmluZyBtb2RfcHl3ZWJz
b2NrZXQsIHRlc3QsIGV0Yy4KLQotVG8gY2hhbmdlIGxvZ2dpbiBsZXZlbCwgcGxlYXNlIHNwZWNp
ZnkgLS1sb2ctbGV2ZWwgb3B0aW9uLgotICAgIHB5dGhvbiB0ZXN0L3J1bl90ZXN0LnB5IC0tbG9n
LWxldmVsIGRlYnVnCi0KLVRvIHBhc3MgYW55IG9wdGlvbiB0byB1bml0dGVzdCBtb2R1bGUsIHBs
ZWFzZSBzcGVjaWZ5IG9wdGlvbnMgYWZ0ZXIgJy0tJy4gRm9yCi1leGFtcGxlLCBydW4gdGhpcyBm
b3IgbWFraW5nIHRoZSB0ZXN0IHJ1bm5lciB2ZXJib3NlLgotICAgIHB5dGhvbiB0ZXN0L3J1bl90
ZXN0LnB5IC0tbG9nLWxldmVsIGRlYnVnIC0tIC12Ci0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwot
aW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0IHN5cwotaW1wb3J0
IHVuaXR0ZXN0Ci0KLQotX1RFU1RfTU9EVUxFX1BBVFRFUk4gPSByZS5jb21waWxlKHInXih0ZXN0
Xy4rKVwucHkkJykKLQotCi1kZWYgX2xpc3RfdGVzdF9tb2R1bGVzKGRpcmVjdG9yeSk6Ci0gICAg
bW9kdWxlX25hbWVzID0gW10KLSAgICBmb3IgZmlsZW5hbWUgaW4gb3MubGlzdGRpcihkaXJlY3Rv
cnkpOgotICAgICAgICBtYXRjaCA9IF9URVNUX01PRFVMRV9QQVRURVJOLnNlYXJjaChmaWxlbmFt
ZSkKLSAgICAgICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICBtb2R1bGVfbmFtZXMuYXBwZW5kKG1h
dGNoLmdyb3VwKDEpKQotICAgIHJldHVybiBtb2R1bGVfbmFtZXMKLQotCi1kZWYgX3N1aXRlKCk6
Ci0gICAgbG9hZGVyID0gdW5pdHRlc3QuVGVzdExvYWRlcigpCi0gICAgcmV0dXJuIGxvYWRlci5s
b2FkVGVzdHNGcm9tTmFtZXMoCi0gICAgICAgICAgICBfbGlzdF90ZXN0X21vZHVsZXMob3MucGF0
aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdLCAnLicpKSkKLQotCi1pZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgotICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCi0g
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWxldmVsJywgJy0tbG9nX2xldmVsJywgdHlwZT0n
Y2hvaWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdsb2dfbGV2ZWwnLCBkZWZhdWx0
PSd3YXJuaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZGVidWcnLCAnaW5m
bycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdjcml0aWNhbCddKQotICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJn
cygpCi0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZygKLSAgICAgICAgICAgIGxldmVsPWxvZ2dpbmcu
Z2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9nX2xldmVsLnVwcGVyKCkpLAotICAgICAgICAgICAgZm9y
bWF0PSclKGxldmVsbmFtZSlzICUoYXNjdGltZSlzICcKLSAgICAgICAgICAgICAgICAgICAnJShm
aWxlbmFtZSlzOiUobGluZW5vKWRdICcKLSAgICAgICAgICAgICAgICAgICAnJShtZXNzYWdlKXMn
LAotICAgICAgICAgICAgZGF0ZWZtdD0nJUg6JU06JVMnKQotICAgIHVuaXR0ZXN0Lm1haW4oZGVm
YXVsdFRlc3Q9J19zdWl0ZScsIGFyZ3Y9W3N5cy5hcmd2WzBdXSArIGFyZ3MpCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3NldF9zeXNfcGF0aC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3Qvc2V0X3N5c19wYXRoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlM2M2ZGI5ZWE0ZDM4M2EzN2MyN2EwNjBhMGVmMWM1NjNiYmIxZTE0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qvc2V0X3N5
c19wYXRoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAw
OSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotIiIiQ29uZmlndXJhdGlvbiBmb3IgdGVzdGluZy4KLQotVGVzdCBmaWxlcyBzaG91bGQg
aW1wb3J0IHRoaXMgbW9kdWxlIGJlZm9yZSBtb2RfcHl3ZWJzb2NrZXQuCi0iIiIKLQotCi1pbXBv
cnQgb3MKLWltcG9ydCBzeXMKLQotCi0jIEFkZCB0aGUgcGFyZW50IGRpcmVjdG9yeSB0byBzeXMu
cGF0aCB0byBlbmFibGUgaW1wb3J0aW5nIG1vZF9weXdlYnNvY2tldC4KLXN5cy5wYXRoLmluc2Vy
dCgwLCBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0sICcuLicpKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2Rpc3Bh
dGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2Rpc3BhdGNoLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5Y2EzZDRmM2FlMWRiZjVmOTdiMjdkODRlYzZlNjQyMmZkMGVjYWE0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvdGVzdF9kaXNwYXRjaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI4OCArMCwwIEBACi0jIS91
c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1l
dDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBk
aXNwYXRjaCBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IG9zCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1w
b3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNv
Y2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBkaXNwYXRjaAotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotZnJvbSB0ZXN0IGltcG9ydCBtb2Nr
Ci0KLQotX1RFU1RfSEFORExFUlNfRElSID0gb3MucGF0aC5qb2luKAotICAgICAgICBvcy5wYXRo
LnNwbGl0KF9fZmlsZV9fKVswXSwgJ3Rlc3RkYXRhJywgJ2hhbmRsZXJzJykKLQotX1RFU1RfSEFO
RExFUlNfU1VCX0RJUiA9IG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInKQot
Ci0KLWNsYXNzIERpc3BhdGNoZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVu
aXR0ZXN0IGZvciBkaXNwYXRjaCBtb2R1bGUuIiIiCi0KLSAgICBkZWYgdGVzdF9ub3JtYWxpemVf
cGF0aChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5wYXRoLmFic3BhdGgoJy9h
L2InKS5yZXBsYWNlKCdcXCcsICcvJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0
Y2guX25vcm1hbGl6ZV9wYXRoKCcvYS9iJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3Mu
cGF0aC5hYnNwYXRoKCcvYS9iJykucmVwbGFjZSgnXFwnLCAnLycpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnXFxhXFxiJykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKCcvYS9iJykucmVwbGFjZSgnXFwnLCAnLycp
LAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnL2Ev
Yy8uLi9iJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKCdhYmMn
KS5yZXBsYWNlKCdcXCcsICcvJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gu
X25vcm1hbGl6ZV9wYXRoKCdhYmMnKSkKLQotICAgIGRlZiB0ZXN0X2NvbnZlcnRlcihzZWxmKToK
LSAgICAgICAgY29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2Nv
bnZlcnRlcignL2EvYicpCi0gICAgICAgICMgUHl0aG9uIGJ1aWx0IGJ5IE1TQyBpbnNlcnRzIGEg
ZHJpdmUgbmFtZSBsaWtlICdDOlwnIHZpYSByZWFscGF0aCgpLgotICAgICAgICAjIENvbnZlcnRl
ciBHZW5lcmF0b3IgZXhwYW5kcyBwcm92aWRlZCBwYXRoIHVzaW5nIHJlYWxwYXRoKCkgYW5kIHVz
ZXMKLSAgICAgICAgIyB0aGUgcGF0aCBpbmNsdWRpbmcgYSBkcml2ZSBuYW1lIHRvIHZlcmlmeSB0
aGUgcHJlZml4LgotICAgICAgICBvc19yb290ID0gb3MucGF0aC5yZWFscGF0aCgnLycpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2hfd3No
LnB5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9jL2gnLCBjb252ZXJ0ZXIob3Nfcm9v
dCArICdhL2IvYy9oX3dzaC5weScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGNv
bnZlcnRlcihvc19yb290ICsgJ2EvYi9oLnB5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgY29udmVydGVyKCdhL2IvaF93c2gucHknKSkKLQotICAgICAgICBjb252ZXJ0ZXIgPSBk
aXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKCdhL2InKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihkaXNwYXRjaC5fbm9ybWFsaXplX3Bh
dGgoCi0gICAgICAgICAgICAnYS9iL2hfd3NoLnB5JykpKQotCi0gICAgICAgIGNvbnZlcnRlciA9
IGRpc3BhdGNoLl9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIoJy9hL2IvLy8nKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9o
X3dzaC5weScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihkaXNw
YXRjaC5fbm9ybWFsaXplX3BhdGgoCi0gICAgICAgICAgICAnL2EvYi8uLi9iL2hfd3NoLnB5Jykp
KQotCi0gICAgICAgIGNvbnZlcnRlciA9IGRpc3BhdGNoLl9jcmVhdGVfcGF0aF90b19yZXNvdXJj
ZV9jb252ZXJ0ZXIoCi0gICAgICAgICAgICAnL2EvLi4vYS9iLy4uL2IvJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaF93c2gucHknKSkK
LQotICAgICAgICBjb252ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2Vf
Y29udmVydGVyKHInXGFcYicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVy
dGVyKG9zX3Jvb3QgKyByJ2FcYlxoX3dzaC5weScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgcidhL2IvaF93c2gucHknKSkKLQotICAgIGRlZiB0
ZXN0X2VudW1lcmF0ZV9oYW5kbGVyX2ZpbGVfcGF0aHMoc2VsZik6Ci0gICAgICAgIHBhdGhzID0g
bGlzdCgKLSAgICAgICAgICAgIGRpc3BhdGNoLl9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3BhdGhz
KF9URVNUX0hBTkRMRVJTX0RJUikpCi0gICAgICAgIHBhdGhzLnNvcnQoKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDgsIGxlbihwYXRocykpCi0gICAgICAgIGV4cGVjdGVkX3BhdGhzID0gWwot
ICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdhYm9ydF9i
eV91c2VyX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5E
TEVSU19ESVIsICdibGFua193c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4o
X1RFU1RfSEFORExFUlNfRElSLCAnb3JpZ2luX2NoZWNrX3dzaC5weScpLAotICAgICAgICAgICAg
ICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnZXhjZXB0aW9uX2luX3RyYW5zZmVyX3dzaC5weScpLAotICAgICAg
ICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAnbm9uX2Nh
bGxhYmxlX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5E
TEVSU19ESVIsICdzdWInLCAncGxhaW5fd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0
aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICd3cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9z
LnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weScpLAotICAgICAgICAgICAgICAg
IF0KLSAgICAgICAgZm9yIGV4cGVjdGVkLCBhY3R1YWwgaW4gemlwKGV4cGVjdGVkX3BhdGhzLCBw
YXRocyk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBhY3R1YWwpCi0K
LSAgICBkZWYgdGVzdF9zb3VyY2VfaGFuZGxlcl9maWxlKHNlbGYpOgotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcygKLSAgICAgICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBkaXNw
YXRjaC5fc291cmNlX2hhbmRsZXJfZmlsZSwgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KAotICAgICAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGRpc3BhdGNoLl9zb3Vy
Y2VfaGFuZGxlcl9maWxlLCAnZGVmJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAg
ICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZGlzcGF0Y2guX3NvdXJjZV9oYW5k
bGVyX2ZpbGUsICcxLzAnKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoZGlzcGF0Y2guX3NvdXJj
ZV9oYW5kbGVyX2ZpbGUoCi0gICAgICAgICAgICAgICAgJ2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJh
X2hhbmRzaGFrZShyZXF1ZXN0KTpwYXNzXG4nCi0gICAgICAgICAgICAgICAgJ2RlZiB3ZWJfc29j
a2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6cGFzc1xuJykpCi0KLSAgICBkZWYgdGVzdF9zb3Vy
Y2Vfd2FybmluZ3Moc2VsZik6Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRj
aGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLSAgICAgICAgd2FybmluZ3MgPSBkaXNwYXRj
aGVyLnNvdXJjZV93YXJuaW5ncygpCi0gICAgICAgIHdhcm5pbmdzLnNvcnQoKQotICAgICAgICBl
eHBlY3RlZF93YXJuaW5ncyA9IFsKLSAgICAgICAgICAgICAgICAob3MucGF0aC5yZWFscGF0aChv
cy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICAgIF9URVNUX0hBTkRMRVJTX0RJUiwgJ2Js
YW5rX3dzaC5weScpKSArCi0gICAgICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRfZG9fZXh0cmFf
aGFuZHNoYWtlIGlzIG5vdCBkZWZpbmVkLicpLAotICAgICAgICAgICAgICAgIChvcy5wYXRoLnJl
YWxwYXRoKG9zLnBhdGguam9pbigKLSAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNf
RElSLCAnc3ViJywgJ25vbl9jYWxsYWJsZV93c2gucHknKSkgKwotICAgICAgICAgICAgICAgICAn
OiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBub3QgY2FsbGFibGUuJyksCi0gICAg
ICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKAotICAgICAgICAgICAg
ICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAnd3JvbmdfaGFuZHNoYWtlX3NpZ193
c2gucHknKSkgKwotICAgICAgICAgICAgICAgICAnOiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRz
aGFrZSBpcyBub3QgZGVmaW5lZC4nKSwKLSAgICAgICAgICAgICAgICAob3MucGF0aC5yZWFscGF0
aChvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICAgIF9URVNUX0hBTkRMRVJTX0RJUiwg
J3N1YicsICd3cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5JykpICsKLSAgICAgICAgICAgICAgICAg
Jzogd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhIGlzIG5vdCBkZWZpbmVkLicpLAotICAgICAgICAg
ICAgICAgIF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoNCwgbGVuKHdhcm5pbmdzKSkKLSAg
ICAgICAgZm9yIGV4cGVjdGVkLCBhY3R1YWwgaW4gemlwKGV4cGVjdGVkX3dhcm5pbmdzLCB3YXJu
aW5ncyk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZCwgYWN0dWFsKQot
Ci0gICAgZGVmIHRlc3RfZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBkaXNwYXRj
aGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAg
ICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KCkKLSAgICAgICAgcmVxdWVzdC53c19yZXNv
dXJjZSA9ICcvb3JpZ2luX2NoZWNrJwotICAgICAgICByZXF1ZXN0LndzX29yaWdpbiA9ICdodHRw
Oi8vZXhhbXBsZS5jb20nCi0gICAgICAgIGRpc3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlKHJl
cXVlc3QpICAjIE11c3Qgbm90IHJhaXNlIGV4Y2VwdGlvbi4KLQotICAgICAgICByZXF1ZXN0Lndz
X29yaWdpbiA9ICdodHRwOi8vYmFkLmV4YW1wbGUuY29tJwotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBkaXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KQotICAgICAgICAgICAg
c2VsZi5mYWlsKCdDb3VsZCBub3QgY2F0Y2ggSGFuZHNoYWtlRXhjZXB0aW9uIHdpdGggNDAzIHN0
YXR1cycpCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoNDAzLCBlLnN0YXR1cykKLSAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuZmFpbCgnVW5leHBlY3RlZCBleGNl
cHRpb246ICVyJyAlIGUpCi0KLSAgICBkZWYgdGVzdF9hYm9ydF9leHRyYV9oYW5kc2hha2Uoc2Vs
Zik6Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRM
RVJTX0RJUiwgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoKQotICAg
ICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9hYm9ydF9ieV91c2VyJwotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2UsIHJlcXVlc3Qp
Ci0KLSAgICBkZWYgdGVzdF90cmFuc2Zlcl9kYXRhKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVy
ID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0KLSAgICAg
ICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdc
eGZmXHgwMCcpKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9vcmlnaW5fY2hlY2sn
Ci0gICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSAncDEnCi0gICAgICAgIGRpc3BhdGNoZXIu
dHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdvcmlnaW5f
Y2hlY2tfd3NoLnB5IGlzIGNhbGxlZCBmb3IgL29yaWdpbl9jaGVjaywgcDEnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgJ1x4ZmZceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVzdCA9IG1vY2su
TW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcpKQotICAgICAg
ICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvcGxhaW4nCi0gICAgICAgIHJlcXVlc3Qud3Nf
cHJvdG9jb2wgPSBOb25lCi0gICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzdWIvcGxhaW5fd3NoLnB5IGlzIGNhbGxlZCBm
b3IgL3N1Yi9wbGFpbiwgTm9uZScKLSAgICAgICAgICAgICAgICAgICAgICAgICAnXHhmZlx4MDAn
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLQotICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1v
Y2suTW9ja0Nvbm4oJ1x4ZmZceDAwJykpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAn
L3N1Yi9wbGFpbj8nCi0gICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSBOb25lCi0gICAgICAg
IGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdzdWIvcGxhaW5fd3NoLnB5IGlzIGNhbGxlZCBmb3IgL3N1Yi9wbGFpbj8sIE5vbmUnCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgJ1x4ZmZceDAwJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVz
dCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcp
KQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvcGxhaW4/cT12JwotICAgICAg
ICByZXF1ZXN0LndzX3Byb3RvY29sID0gTm9uZQotICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVy
X2RhdGEocmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc3ViL3BsYWluX3dzaC5w
eSBpcyBjYWxsZWQgZm9yIC9zdWIvcGxhaW4/cT12LCBOb25lJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICdceGZmXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfdHJhbnNmZXJfZGF0YV9ub19o
YW5kbGVyKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihf
VEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIGZvciByZXNvdXJjZSBpbiBbJy9ibGFu
aycsICcvc3ViL25vbl9jYWxsYWJsZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJy9zdWIv
bm9fd3NoX2F0X3RoZV9lbmQnLCAnL2RvZXMvbm90L2V4aXN0J106Ci0gICAgICAgICAgICByZXF1
ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJycpKQotICAg
ICAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9IHJlc291cmNlCi0gICAgICAgICAgICByZXF1
ZXN0LndzX3Byb3RvY29sID0gJ3AyJwotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICAgICAgICAgIHNlbGYu
ZmFpbCgpCi0gICAgICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGU6
Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsVW5sZXNzKHN0cihlKS5maW5kKCdObyBoYW5kbGVy
JykgIT0gLTEpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAg
IHNlbGYuZmFpbCgpCi0KLSAgICBkZWYgdGVzdF90cmFuc2Zlcl9kYXRhX2hhbmRsZXJfZXhjZXB0
aW9uKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVT
VF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0
KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignJykpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3Vy
Y2UgPSAnL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXInCi0gICAgICAgIHJlcXVlc3Qud3NfcHJv
dG9jb2wgPSAncDMnCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRpc3BhdGNoZXIudHJhbnNm
ZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICAgICAgc2VsZi5mYWlsKCkKLSAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyhzdHIoZSkuZmluZCgn
SW50ZW50aW9uYWwnKSAhPSAtMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVW5leHBl
Y3RlZCBleGNlcHRpb246ICVzJyAlIGUpCi0KLSAgICBkZWYgdGVzdF9hYm9ydF90cmFuc2Zlcl9k
YXRhKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVT
VF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0
KCkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvYWJvcnRfYnlfdXNlcicKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YSwgcmVxdWVz
dCkKLQotICAgIGRlZiB0ZXN0X3NjYW5fZGlyKHNlbGYpOgotICAgICAgICBkaXNwID0gZGlzcGF0
Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoNCwgbGVuKGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKSkKLSAgICAgICAgc2VsZi5m
YWlsVW5sZXNzKCcvb3JpZ2luX2NoZWNrJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAg
ICAgICAgc2VsZi5mYWlsVW5sZXNzKAotICAgICAgICAgICAgJy9zdWIvZXhjZXB0aW9uX2luX3Ry
YW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5s
ZXNzKCcvc3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLQotICAgIGRlZiB0
ZXN0X3NjYW5fc3ViX2RpcihzZWxmKToKLSAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNo
ZXIoX1RFU1RfSEFORExFUlNfRElSLCBfVEVTVF9IQU5ETEVSU19TVUJfRElSKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDIsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkpCi0gICAgICAg
IHNlbGYuZmFpbElmKCcvb3JpZ2luX2NoZWNrJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkK
LSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKAotICAgICAgICAgICAgJy9zdWIvZXhjZXB0aW9uX2lu
X3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWls
VW5sZXNzKCcvc3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLQotICAgIGRl
ZiB0ZXN0X3NjYW5fc3ViX2Rpcl9hc19yb290KHNlbGYpOgotICAgICAgICBkaXNwID0gZGlzcGF0
Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19TVUJfRElSLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19TVUJfRElSKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDIsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkpCi0gICAgICAgIHNlbGYu
ZmFpbElmKCcvb3JpZ2luX2NoZWNrJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAg
ICAgc2VsZi5mYWlsSWYoJy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5k
bGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsSWYoJy9zdWIvcGxhaW4nIGluIGRpc3Au
X2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9leGNlcHRpb25f
aW5fdHJhbnNmZXInIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZh
aWxVbmxlc3MoJy9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0KLSAgICBkZWYg
dGVzdF9zY2FuX2Rpcl9tdXN0X3VuZGVyX3Jvb3Qoc2VsZik6Ci0gICAgICAgIGRpc3BhdGNoLkRp
c3BhdGNoZXIoJ2EvYicsICdhL2IvYycpICAjIE9LCi0gICAgICAgIGRpc3BhdGNoLkRpc3BhdGNo
ZXIoJ2EvYi8vLycsICdhL2InKSAgIyBPSwotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhkaXNw
YXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0
Y2guRGlzcGF0Y2hlciwgJ2EvYi9jJywgJ2EvYicpCi0KLSAgICBkZWYgdGVzdF9yZXNvdXJjZV9w
YXRoX2FsaWFzKHNlbGYpOgotICAgICAgICBkaXNwID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVT
VF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIGRpc3AuYWRkX3Jlc291cmNlX3BhdGhfYWxp
YXMoJy8nLCAnL29yaWdpbl9jaGVjaycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNSwgbGVu
KGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKSkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvb3Jp
Z2luX2NoZWNrJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWls
VW5sZXNzKAotICAgICAgICAgICAgJy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNw
Ll9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvc3ViL3BsYWlu
JyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcv
JyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
ZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGRp
c3AuYWRkX3Jlc291cmNlX3BhdGhfYWxpYXMsICcvYWxpYXMnLCAnL25vdC1leGlzdCcpCi0KLQot
aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZp
OnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9lbmR0b2VuZC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9lbmR0b2VuZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNWU1Y2Y2MTU3MzkxN2Q4N2QxMzY1YjE2YTU4YzJjNDE4OGE5MTJlYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3RfZW5kdG9lbmQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3NTMgKzAsMCBAQAotIyEvdXNyL2Jp
bi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0j
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJFbmQtdG8tZW5kIHRlc3Rz
IGZvciBweXdlYnNvY2tldC4gVGVzdHMgc3RhbmRhbG9uZS5weSBieSBkZWZhdWx0LiBZb3UKLWNh
biBhbHNvIHRlc3QgbW9kX3B5d2Vic29ja2V0IGhvc3RlZCBvbiBhbiBBcGFjaGUgc2VydmVyIGJ5
IHNldHRpbmcKLV91c2VfZXh0ZXJuYWxfc2VydmVyIHRvIFRydWUgYW5kIG1vZGlmeWluZyBfZXh0
ZXJuYWxfc2VydmVyX3BvcnQgdG8gcG9pbnQgdG8KLXRoZSBwb3J0IG9uIHdoaWNoIHRoZSBBcGFj
aGUgc2VydmVyIGlzIHJ1bm5pbmcuCi0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9z
Ci1pbXBvcnQgc2lnbmFsCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0
IHN5cwotaW1wb3J0IHRpbWUKLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRo
ICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQot
ZnJvbSB0ZXN0IGltcG9ydCBjbGllbnRfZm9yX3Rlc3RpbmcKLWZyb20gdGVzdCBpbXBvcnQgbXV4
X2NsaWVudF9mb3JfdGVzdGluZwotCi0KLSMgU3BlY2lhbCBtZXNzYWdlIHRoYXQgdGVsbHMgdGhl
IGVjaG8gc2VydmVyIHRvIHN0YXJ0IGNsb3NpbmcgaGFuZHNoYWtlCi1fR09PREJZRV9NRVNTQUdF
ID0gJ0dvb2RieWUnCi0KLV9TRVJWRVJfV0FSTVVQX0lOX1NFQyA9IDAuMgotCi0jIElmIHlvdSB3
YW50IHRvIHVzZSBleHRlcm5hbCBzZXJ2ZXIgdG8gcnVuIGVuZCB0byBlbmQgdGVzdHMsIHNldCBm
b2xsb3dpbmcKLSMgcGFyYW1ldGVycyBjb3JyZWN0bHkuCi1fdXNlX2V4dGVybmFsX3NlcnZlciA9
IEZhbHNlCi1fZXh0ZXJuYWxfc2VydmVyX3BvcnQgPSAwCi0KLQotIyBUZXN0IGJvZHkgZnVuY3Rp
b25zCi1kZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlKGNsaWVudCk6Ci0gICAgY2xpZW50LmNvbm5l
Y3QoKQotCi0gICAgY2xpZW50LnNlbmRfbWVzc2FnZSgndGVzdCcpCi0gICAgY2xpZW50LmFzc2Vy
dF9yZWNlaXZlKCd0ZXN0JykKLSAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCdoZWxsb3dvcmxkJykK
LSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ2hlbGxvd29ybGQnKQotCi0gICAgY2xpZW50LnNl
bmRfY2xvc2UoKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICBjbGll
bnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX2VjaG9fY2hlY2tfcHJvY2Vk
dXJlX3dpdGhfYmluYXJ5KGNsaWVudCk6Ci0gICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgY2xp
ZW50LnNlbmRfbWVzc2FnZSgnYmluYXJ5JywgYmluYXJ5PVRydWUpCi0gICAgY2xpZW50LmFzc2Vy
dF9yZWNlaXZlKCdiaW5hcnknLCBiaW5hcnk9VHJ1ZSkKLSAgICBjbGllbnQuc2VuZF9tZXNzYWdl
KCdceDAwXHg4MFx4ZmVceGZmXHgwMFx4ODAnLCBiaW5hcnk9VHJ1ZSkKLSAgICBjbGllbnQuYXNz
ZXJ0X3JlY2VpdmUoJ1x4MDBceDgwXHhmZVx4ZmZceDAwXHg4MCcsIGJpbmFyeT1UcnVlKQotCi0g
ICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgp
Ci0KLSAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX2VjaG9f
Y2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZShjbGllbnQpOgotICAgIGNsaWVudC5jb25uZWN0
KCkKLQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ3Rlc3QnKQotICAgIGNsaWVudC5hc3NlcnRf
cmVjZWl2ZSgndGVzdCcpCi0KLSAgICBjbGllbnQuc2VuZF9tZXNzYWdlKF9HT09EQllFX01FU1NB
R0UpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKF9HT09EQllFX01FU1NBR0UpCi0KLSAgICBj
bGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLQot
ICAgIGNsaWVudC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQotCi0KLWRlZiBfZWNob19jaGVj
a19wcm9jZWR1cmVfd2l0aF9jb2RlX2FuZF9yZWFzb24oY2xpZW50LCBjb2RlLCByZWFzb24pOgot
ICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKGNvZGUsIHJlYXNv
bikKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoY29kZSwgcmVhc29uKQotCi0gICAg
Y2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0KLQotZGVmIF91bm1hc2tlZF9mcmFt
ZV9jaGVja19wcm9jZWR1cmUoY2xpZW50KToKLSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBj
bGllbnQuc2VuZF9tZXNzYWdlKCd0ZXN0JywgbWFzaz1GYWxzZSkKLSAgICBjbGllbnQuYXNzZXJ0
X3JlY2VpdmVfY2xvc2UoY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19QUk9UT0NPTF9FUlJPUiwg
JycpCi0KLSAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX211
eF9lY2hvX2NoZWNrX3Byb2NlZHVyZShtdXhfY2xpZW50KToKLSAgICBtdXhfY2xpZW50LmNvbm5l
Y3QoKQotICAgIG11eF9jbGllbnQuc2VuZF9mbG93X2NvbnRyb2woMSwgMTAyNCkKLQotICAgIGxv
Z2ljYWxfY2hhbm5lbF9vcHRpb25zID0gY2xpZW50X2Zvcl90ZXN0aW5nLkNsaWVudE9wdGlvbnMo
KQotICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zLnNlcnZlcl9ob3N0ID0gJ2xvY2FsaG9zdCcK
LSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9IDgwCi0gICAgbG9naWNh
bF9jaGFubmVsX29wdGlvbnMub3JpZ2luID0gJ2h0dHA6Ly9sb2NhbGhvc3QnCi0gICAgbG9naWNh
bF9jaGFubmVsX29wdGlvbnMucmVzb3VyY2UgPSAnL2VjaG8nCi0gICAgbXV4X2NsaWVudC5hZGRf
Y2hhbm5lbCgyLCBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucykKLSAgICBtdXhfY2xpZW50LnNlbmRf
Zmxvd19jb250cm9sKDIsIDEwMjQpCi0KLSAgICBtdXhfY2xpZW50LnNlbmRfbWVzc2FnZSgyLCAn
dGVzdCcpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZSgyLCAndGVzdCcpCi0KLSAgICBt
dXhfY2xpZW50LmFkZF9jaGFubmVsKDMsIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zKQotICAgIG11
eF9jbGllbnQuc2VuZF9mbG93X2NvbnRyb2woMywgMTAyNCkKLQotICAgIG11eF9jbGllbnQuc2Vu
ZF9tZXNzYWdlKDIsICdoZWxsbycpCi0gICAgbXV4X2NsaWVudC5zZW5kX21lc3NhZ2UoMywgJ3dv
cmxkJykKLSAgICBtdXhfY2xpZW50LmFzc2VydF9yZWNlaXZlKDIsICdoZWxsbycpCi0gICAgbXV4
X2NsaWVudC5hc3NlcnRfcmVjZWl2ZSgzLCAnd29ybGQnKQotCi0gICAgIyBEb24ndCBzZW5kIGNs
b3NlIG1lc3NhZ2Ugb24gY2hhbm5lbCBpZCAxIHNvIHRoYXQgc2VydmVyLWluaXRpYXRlZAotICAg
ICMgY2xvc2luZyBoYW5kc2hha2Ugd29uJ3Qgb2NjdXIuCi0gICAgbXV4X2NsaWVudC5zZW5kX2Ns
b3NlKDIpCi0gICAgbXV4X2NsaWVudC5zZW5kX2Nsb3NlKDMpCi0gICAgbXV4X2NsaWVudC5hc3Nl
cnRfcmVjZWl2ZV9jbG9zZSgyKQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2Uo
MykKLQotICAgIG11eF9jbGllbnQuc2VuZF9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlKCkKLSAg
ICBtdXhfY2xpZW50LmFzc2VydF9waHlzaWNhbF9jb25uZWN0aW9uX3JlY2VpdmVfY2xvc2UoKQot
Ci0KLWNsYXNzIEVuZFRvRW5kVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkJh
c2UgY2xhc3MgZm9yIGVuZC10by1lbmQgdGVzdHMgdGhhdCBsYXVuY2ggcHl3ZWJzb2NrZXQgc3Rh
bmRhbG9uZQotICAgIHNlcnZlciBhcyBhIHNlcGFyYXRlIHByb2Nlc3MsIGNvbm5lY3QgdG8gaXQg
dXNpbmcgdGhlIGNsaWVudF9mb3JfdGVzdGluZwotICAgIG1vZHVsZSwgYW5kIGNoZWNrIGlmIHRo
ZSBzZXJ2ZXIgYmVoYXZlcyBjb3JyZWN0bHkgYnkgZXhjaGFuZ2luZyBvcGVuaW5nCi0gICAgaGFu
ZHNoYWtlIGFuZCBmcmFtZXMgb3ZlciBhIFRDUCBjb25uZWN0aW9uLgotICAgICIiIgotCi0gICAg
ZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLnNlcnZlcl9zdGRlcnIgPSBOb25lCi0gICAg
ICAgIHNlbGYudG9wX2RpciA9IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVsw
XSwgJy4uJykKLSAgICAgICAgb3MucHV0ZW52KCdQWVRIT05QQVRIJywgb3MucGF0aC5wYXRoc2Vw
LmpvaW4oc3lzLnBhdGgpKQotICAgICAgICBzZWxmLnN0YW5kYWxvbmVfY29tbWFuZCA9IG9zLnBh
dGguam9pbigKLSAgICAgICAgICAgIHNlbGYudG9wX2RpciwgJ21vZF9weXdlYnNvY2tldCcsICdz
dGFuZGFsb25lLnB5JykKLSAgICAgICAgc2VsZi5kb2N1bWVudF9yb290ID0gb3MucGF0aC5qb2lu
KHNlbGYudG9wX2RpciwgJ2V4YW1wbGUnKQotICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCi0g
ICAgICAgIHMuYmluZCgoJ2xvY2FsaG9zdCcsIDApKQotICAgICAgICAoXywgc2VsZi50ZXN0X3Bv
cnQpID0gcy5nZXRzb2NrbmFtZSgpCi0gICAgICAgIHMuY2xvc2UoKQotCi0gICAgICAgIHNlbGYu
X29wdGlvbnMgPSBjbGllbnRfZm9yX3Rlc3RpbmcuQ2xpZW50T3B0aW9ucygpCi0gICAgICAgIHNl
bGYuX29wdGlvbnMuc2VydmVyX2hvc3QgPSAnbG9jYWxob3N0JwotICAgICAgICBzZWxmLl9vcHRp
b25zLm9yaWdpbiA9ICdodHRwOi8vbG9jYWxob3N0JwotICAgICAgICBzZWxmLl9vcHRpb25zLnJl
c291cmNlID0gJy9lY2hvJwotCi0gICAgICAgICMgVE9ETyh0b3lvc2hpbSk6IEVsaW1pbmF0ZSBs
YXVuY2hpbmcgYSBzdGFuZGFsb25lIHNlcnZlciBvbiB1c2luZwotICAgICAgICAjIGV4dGVybmFs
IHNlcnZlci4KLQotICAgICAgICBpZiBfdXNlX2V4dGVybmFsX3NlcnZlcjoKLSAgICAgICAgICAg
IHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQgPSBfZXh0ZXJuYWxfc2VydmVyX3BvcnQKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQgPSBzZWxmLnRl
c3RfcG9ydAotCi0gICAgIyBUT0RPKHR5b3NoaW5vKTogVXNlIHRlYXJEb3duIHRvIGtpbGwgdGhl
IHNlcnZlci4KLQotICAgIGRlZiBfcnVuX3B5dGhvbl9jb21tYW5kKHNlbGYsIGNvbW1hbmRsaW5l
LCBzdGRvdXQ9Tm9uZSwgc3RkZXJyPU5vbmUpOgotICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Q
b3Blbihbc3lzLmV4ZWN1dGFibGVdICsgY29tbWFuZGxpbmUsIGNsb3NlX2Zkcz1UcnVlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3Rkb3V0LCBzdGRlcnI9c3RkZXJy
KQotCi0gICAgZGVmIF9ydW5fc2VydmVyKHNlbGYpOgotICAgICAgICBhcmdzID0gW3NlbGYuc3Rh
bmRhbG9uZV9jb21tYW5kLAotICAgICAgICAgICAgICAgICctSCcsICdsb2NhbGhvc3QnLAotICAg
ICAgICAgICAgICAgICctVicsICdsb2NhbGhvc3QnLAotICAgICAgICAgICAgICAgICctcCcsIHN0
cihzZWxmLnRlc3RfcG9ydCksCi0gICAgICAgICAgICAgICAgJy1QJywgc3RyKHNlbGYudGVzdF9w
b3J0KSwKLSAgICAgICAgICAgICAgICAnLWQnLCBzZWxmLmRvY3VtZW50X3Jvb3RdCi0KLSAgICAg
ICAgIyBJbmhlcml0IHRoZSBsZXZlbCBzZXQgdG8gdGhlIHJvb3QgbG9nZ2VyIGJ5IHRlc3QgcnVu
bmVyLgotICAgICAgICByb290X2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKLSAgICAgICAg
bG9nX2xldmVsID0gcm9vdF9sb2dnZXIuZ2V0RWZmZWN0aXZlTGV2ZWwoKQotICAgICAgICBpZiBs
b2dfbGV2ZWwgIT0gbG9nZ2luZy5OT1RTRVQ6Ci0gICAgICAgICAgICBhcmdzLmFwcGVuZCgnLS1s
b2ctbGV2ZWwnKQotICAgICAgICAgICAgYXJncy5hcHBlbmQobG9nZ2luZy5nZXRMZXZlbE5hbWUo
bG9nX2xldmVsKS5sb3dlcigpKQotCi0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fcHl0aG9uX2Nv
bW1hbmQoYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRl
cnI9c2VsZi5zZXJ2ZXJfc3RkZXJyKQotCi0gICAgZGVmIF9raWxsX3Byb2Nlc3Moc2VsZiwgcGlk
KToKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnd2luMzInLCAnY3lnd2luJyk6Ci0gICAg
ICAgICAgICBzdWJwcm9jZXNzLmNhbGwoCi0gICAgICAgICAgICAgICAgKCd0YXNra2lsbC5leGUn
LCAnL2YnLCAnL3BpZCcsIHN0cihwaWQpKSwgY2xvc2VfZmRzPVRydWUpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBvcy5raWxsKHBpZCwgc2lnbmFsLlNJR0tJTEwpCi0KLQotY2xhc3MgRW5k
VG9FbmRIeUJpVGVzdChFbmRUb0VuZFRlc3RCYXNlKToKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0g
ICAgICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0VXAoc2VsZikKLQotICAgIGRlZiBfcnVuX3Rlc3Rf
d2l0aF9jbGllbnRfb3B0aW9ucyhzZWxmLCB0ZXN0X2Z1bmN0aW9uLCBvcHRpb25zKToKLSAgICAg
ICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
ICMgVE9ETyh0eW9zaGlubyk6IGFkZCBzb21lIGxvZ2ljIHRvIHBvbGwgdGhlIHNlcnZlciB1bnRp
bCBpdAotICAgICAgICAgICAgIyBiZWNvbWVzIHJlYWR5Ci0gICAgICAgICAgICB0aW1lLnNsZWVw
KF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zv
cl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQob3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVu
X3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0X3dpdGhf
Y2xpZW50X29wdGlvbnModGVzdF9mdW5jdGlvbiwgc2VsZi5fb3B0aW9ucykKLQotICAgIGRlZiBf
cnVuX2RlZmxhdGVfZnJhbWVfdGVzdChzZWxmLCB0ZXN0X2Z1bmN0aW9uKToKLSAgICAgICAgc2Vy
dmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUu
c2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25z
LmVuYWJsZV9kZWZsYXRlX2ZyYW1lKCkKLSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3Jf
dGVzdGluZy5jcmVhdGVfY2xpZW50KHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCi0gICAgICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYg
X3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgIHNlbGYsIG9mZmVyLCBy
ZXNwb25zZV9jaGVja2VyLCB0ZXN0X2Z1bmN0aW9uKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5f
cnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZF
Ul9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLmV4dGVuc2lvbnMg
Kz0gb2ZmZXIKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuY2hlY2tfcGVybWVzc2FnZV9kZWZs
YXRlID0gcmVzcG9uc2VfY2hlY2tlcgotICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90
ZXN0aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5fb3B0aW9ucykKLQotICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgICAgICAgICAgICAgIGlmIHRl
c3RfZnVuY3Rpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rp
b24oY2xpZW50KQotCi0gICAgICAgICAgICAgICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Ns
b3NlZCgpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9z
ZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9j
ZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgX3J1bl9jbG9zZV93aXRoX2NvZGVfYW5kX3JlYXNv
bl90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24sIGNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbik6Ci0gICAgICAgIHNlcnZlciA9IHNl
bGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9T
RVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90
ZXN0aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCwgY29kZSwgcmVhc29uKQotICAgICAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlk
KQotCi0gICAgZGVmIF9ydW5faHR0cF9mYWxsYmFja190ZXN0KHNlbGYsIG9wdGlvbnMsIHN0YXR1
cyk6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAg
ICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQob3B0aW9ucykKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0gICAgICAg
ICAgICAgICAgc2VsZi5mYWlsKCdDb3VsZCBub3QgY2F0Y2ggSHR0cFN0YXR1c0V4Y2VwdGlvbicp
Ci0gICAgICAgICAgICBleGNlcHQgY2xpZW50X2Zvcl90ZXN0aW5nLkh0dHBTdGF0dXNFeGNlcHRp
b24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0dXMsIGUuc3RhdHVz
KQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICBzZWxm
LmZhaWwoJ0NhdGNoIHVuZXhwZWN0ZWQgZXhjZXB0aW9uJykKLSAgICAgICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBf
cnVuX211eF90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24pOgotICAgICAgICBzZXJ2ZXIgPSBzZWxm
Ll9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VS
VkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIGNsaWVudCA9IG11eF9jbGllbnRfZm9y
X3Rlc3RpbmcuTXV4Q2xpZW50KHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCi0gICAgICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgdGVz
dF9lY2hvKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1
cmUpCi0KLSAgICBkZWYgdGVzdF9lY2hvX2JpbmFyeShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVu
X3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfYmluYXJ5KQotCi0gICAgZGVmIHRlc3Rf
ZWNob19zZXJ2ZXJfY2xvc2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2No
ZWNrX3Byb2NlZHVyZV93aXRoX2dvb2RieWUpCi0KLSAgICBkZWYgdGVzdF91bm1hc2tlZF9mcmFt
ZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX3VubWFza2VkX2ZyYW1lX2NoZWNrX3By
b2NlZHVyZSkKLQotICAgIGRlZiB0ZXN0X2VjaG9fZGVmbGF0ZV9mcmFtZShzZWxmKToKLSAgICAg
ICAgc2VsZi5fcnVuX2RlZmxhdGVfZnJhbWVfdGVzdChfZWNob19jaGVja19wcm9jZWR1cmUpCi0K
LSAgICBkZWYgdGVzdF9lY2hvX2RlZmxhdGVfZnJhbWVfc2VydmVyX2Nsb3NlKHNlbGYpOgotICAg
ICAgICBzZWxmLl9ydW5fZGVmbGF0ZV9mcmFtZV90ZXN0KAotICAgICAgICAgICAgX2VjaG9fY2hl
Y2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZSkKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2Fn
ZV9kZWZsYXRlKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAg
ICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gPSAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcKLSAgICAgICAg
ICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJl
c3NlZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09E
RV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQu
X3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3Rp
bmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAg
ICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZl
X2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRl
ci5uYW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgcGFyYW1ldGVyLmdl
dF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90
ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlJ10sCi0gICAgICAgICAg
ICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQot
Ci0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfdHdvX2ZyYW1lcyhzZWxmKToK
LSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0
aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5k
X2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2QnLAotICAgICAgICAgICAg
ICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAg
ICAgIGVuZD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAg
Y2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAnXHhjOVx4Yzlc
eDA3XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVf
VEVYVCkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgK
LSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAotICAg
ICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAot
ICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Ns
b3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAg
ICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQot
Ci0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAg
ICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZSddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2No
ZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2Vj
aG9fcGVybWVzc2FnZV9kZWZsYXRlX3R3b19tZXNzYWdlcyhzZWxmKToKLSAgICAgICAgZGVmIHRl
c3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4g
dGhlIHNwZWMuCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAg
ICAgICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAg
ICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAg
ICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAg
ICAgICAgICAgICAgICAgICdceGYyXHgwMFx4MTFceDAwXHgwMCcsCi0gICAgICAgICAgICAgICAg
ICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAg
cnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5
KAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0g
ICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQs
Ci0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFt
LmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDAwXHgx
MVx4MDBceDAwJywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGlu
Zy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotCi0gICAgICAgICAg
ICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVf
Y2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1ldGVy
Lm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBwYXJhbWV0ZXIuZ2V0
X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rl
c3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGUnXSwKLSAgICAgICAgICAg
ICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0K
LSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV90d29fbXNnc19zZXJ2ZXJfbm9f
Y29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50
KToKLSAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAg
ICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGYy
XHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zv
cl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAg
ICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdc
eGYyXHgwMFx4MTFceDAwXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAg
ICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAg
ICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAgICAgICAg
IG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAg
ICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2Jp
bmFyeSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAn
LAotICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9U
RVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5z
ZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0K
LSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWygnc2VydmVyX25vX2NvbnRleHRfdGFrZW92
ZXInLCBOb25lKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIuZ2V0
X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rl
c3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9ub19jb250
ZXh0X3Rha2VvdmVyJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAg
ICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdl
X2RlZmxhdGVfcHJlZmVyZW5jZShzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xp
ZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAg
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAn
Ci0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAg
ICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAg
ICAgICBjb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50
X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0K
LSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3Nl
cnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1l
dGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUn
LCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHBh
cmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdl
X2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsICdk
ZWZsYXRlLWZyYW1lJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAg
ICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdl
X2RlZmxhdGVfd2l0aF9wYXJhbWV0ZXJzKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlv
bihjbGllbnQpOgotICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4K
LSAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3
XHgwMCcKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAg
ICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zv
cl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAg
ICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAg
ICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1j
bGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9
MSkKLQotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50
LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihw
YXJhbWV0ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVm
bGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhb
KCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzEwJyksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQotCi0gICAg
ICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBb
J3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz0xMDsgJwotICAgICAg
ICAgICAgICAgICAnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInXSwKLSAgICAgICAgICAgICAg
ICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAg
ICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRoX2JhZF9zZXJ2ZXJfbWF4X3dp
bmRvd19iaXRzKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAg
ICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9y
ZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIp
OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIGFjY2VwdGFuY2Ugb2Yg
cGVybWVzc2FnZS1kZWZsYXRlJykKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZs
YXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9t
YXhfd2luZG93X2JpdHM9MzAwMDAwMCddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNr
ZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9f
cGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfYmFkX3NlcnZlcl9tYXhfd2luZG93X2JpdHMoc2VsZik6
Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQu
c2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQot
Ci0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgYWNjZXB0YW5jZSBvZiBwZXJtZXNzYWdlLWRlZmxh
dGUnKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAg
ICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz0z
MDAwMDAwJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAg
ICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxh
dGVfd2l0aF91bmRlZmluZWRfcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5j
dGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAg
ICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2Vf
Y2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVj
dGVkIGFjY2VwdGFuY2Ugb2YgcGVybWVzc2FnZS1kZWZsYXRlJykKLQotICAgICAgICBzZWxmLl9y
dW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdl
LWRlZmxhdGU7IGZvbz1iYXInXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAot
ICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX2Nsb3Nl
X3dpdGhfY29kZV9hbmRfcmVhc29uKHNlbGYpOgotICAgICAgICBzZWxmLl9vcHRpb25zLnJlc291
cmNlID0gJy9jbG9zZScKLSAgICAgICAgc2VsZi5fcnVuX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVh
c29uX3Rlc3QoCi0gICAgICAgICAgICBfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9jb2RlX2Fu
ZF9yZWFzb24sIDMzMzMsICdzdW5zdW5zdW5zdW4nKQotCi0gICAgZGVmIHRlc3RfZWNob19jbG9z
ZV93aXRoX2VtcHR5X2JvZHkoc2VsZik6Ci0gICAgICAgIHNlbGYuX29wdGlvbnMucmVzb3VyY2Ug
PSAnL2Nsb3NlJwotICAgICAgICBzZWxmLl9ydW5fY2xvc2Vfd2l0aF9jb2RlX2FuZF9yZWFzb25f
dGVzdCgKLSAgICAgICAgICAgIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2NvZGVfYW5kX3Jl
YXNvbiwgTm9uZSwgJycpCi0KLSAgICBkZWYgdGVzdF9tdXhfZWNobyhzZWxmKToKLSAgICAgICAg
c2VsZi5fcnVuX211eF90ZXN0KF9tdXhfZWNob19jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYg
dGVzdF9jbG9zZV9vbl9wcm90b2NvbF9lcnJvcihzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhh
dCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0aCBwcm90b2NvbCBlcnJvciBzdGF0
dXMKLSAgICAgICAgY29kZSB3aGVuIHRoZSBjbGllbnQgc2VuZHMgZGF0YSB3aXRoIHNvbWUgcHJv
dG9jb2wgZXJyb3IuCi0gICAgICAgICIiIgotCi0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNs
aWVudCk6Ci0gICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICAgICAgICAgICMgSW50
ZXJtZWRpYXRlIGZyYW1lIHdpdGhvdXQgYW55IHByZWNlZGluZyBzdGFydCBvZiBmcmFnbWVudGF0
aW9uCi0gICAgICAgICAgICAjIGZyYW1lLgotICAgICAgICAgICAgY2xpZW50LnNlbmRfZnJhbWVf
b2ZfYXJiaXRyYXJ5X2J5dGVzKCdceDgwXHg4MCcsICcnKQotICAgICAgICAgICAgY2xpZW50LmFz
c2VydF9yZWNlaXZlX2Nsb3NlKAotICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5T
VEFUVVNfUFJPVE9DT0xfRVJST1IpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9mdW5j
dGlvbikKLQotICAgIGRlZiB0ZXN0X2Nsb3NlX29uX3Vuc3VwcG9ydGVkX2ZyYW1lKHNlbGYpOgot
ICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIgc2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRo
IHVuc3VwcG9ydGVkIG9wZXJhdGlvbgotICAgICAgICBzdGF0dXMgY29kZSB3aGVuIHRoZSBjbGll
bnQgc2VuZHMgZGF0YSBhc2tpbmcgc29tZSBvcGVyYXRpb24gdGhhdCBpcwotICAgICAgICBub3Qg
c3VwcG9ydGVkIGJ5IHRoZSBzZXJ2ZXIuCi0gICAgICAgICIiIgotCi0gICAgICAgIGRlZiB0ZXN0
X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICAg
ICAgICAgICMgVGV4dCBmcmFtZSB3aXRoIFJTVjMgYml0IHJhaXNlZC4KLSAgICAgICAgICAgIGNs
aWVudC5zZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9ieXRlcygnXHg5MVx4ODAnLCAnJykKLSAgICAg
ICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKLSAgICAgICAgICAgICAgICBjbGll
bnRfZm9yX3Rlc3RpbmcuU1RBVFVTX1VOU1VQUE9SVEVEX0RBVEEpCi0KLSAgICAgICAgc2VsZi5f
cnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2Nsb3NlX29uX2ludmFsaWRf
ZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRoYXQgdGhlIHNlcnZlciBzZW5kcyBhIGNs
b3NlIGZyYW1lIHdpdGggaW52YWxpZCBmcmFtZSBwYXlsb2FkCi0gICAgICAgIGRhdGEgc3RhdHVz
IGNvZGUgd2hlbiB0aGUgY2xpZW50IHNlbmRzIGFuIGludmFsaWQgZnJhbWUgbGlrZSBjb250YWlu
aW5nCi0gICAgICAgIGludmFsaWQgVVRGLTggY2hhcmFjdGVyLgotICAgICAgICAiIiIKLQotICAg
ICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xpZW50LmNvbm5l
Y3QoKQotCi0gICAgICAgICAgICAjIFRleHQgZnJhbWUgd2l0aCBpbnZhbGlkIFVURi04IHN0cmlu
Zy4KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ1x4ODAnLCByYXc9VHJ1ZSkKLSAg
ICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKLSAgICAgICAgICAgICAgICBj
bGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBKQotCi0g
ICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9jbG9z
ZV9vbl9pbnRlcm5hbF9lbmRwb2ludF9lcnJvcihzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhh
dCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0aCBpbnRlcm5hbCBlbmRwb2ludAot
ICAgICAgICBlcnJvciBzdGF0dXMgY29kZSB3aGVuIHRoZSBoYW5kbGVyIGRvZXMgYmFkIG9wZXJh
dGlvbi4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSA9ICcv
aW50ZXJuYWxfZXJyb3InCi0KLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAg
ICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVj
ZWl2ZV9jbG9zZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX0lO
VEVSTkFMX0VORFBPSU5UX0VSUk9SKQotCi0gICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfZnVu
Y3Rpb24pCi0KLSAgICAjIFRPRE8odG95b3NoaW0pOiBBZGQgdGVzdHMgdG8gdmVyaWZ5IGludmFs
aWQgYWJzb2x1dGUgdXJpIGhhbmRsaW5nIGxpa2UKLSAgICAjIGhvc3QgdW5tYXRjaCwgcG9ydCB1
bm1hdGNoIGFuZCBpbnZhbGlkIHBvcnQgZGVzY3JpcHRpb24gKCc6JyB3aXRob3V0IHBvcnQKLSAg
ICAjIG51bWJlcikuCi0KLSAgICBkZWYgdGVzdF9hYnNvbHV0ZV91cmkoc2VsZik6Ci0gICAgICAg
ICIiIlRlc3RzIGFic29sdXRlIHVyaSByZXF1ZXN0LiIiIgotCi0gICAgICAgIG9wdGlvbnMgPSBz
ZWxmLl9vcHRpb25zCi0gICAgICAgIG9wdGlvbnMucmVzb3VyY2UgPSAnd3M6Ly9sb2NhbGhvc3Q6
JWQvZWNobycgJSBvcHRpb25zLnNlcnZlcl9wb3J0Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0X3dp
dGhfY2xpZW50X29wdGlvbnMoX2VjaG9fY2hlY2tfcHJvY2VkdXJlLCBvcHRpb25zKQotCi0gICAg
ZGVmIHRlc3Rfb3JpZ2luX2NoZWNrKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyBodHRwIGZhbGxi
YWNrIG9uIG9yaWdpbiBjaGVjayBmYWlsLiIiIgotCi0gICAgICAgIG9wdGlvbnMgPSBzZWxmLl9v
cHRpb25zCi0gICAgICAgIG9wdGlvbnMucmVzb3VyY2UgPSAnL29yaWdpbl9jaGVjaycKLSAgICAg
ICAgIyBTZXJ2ZXIgc2hvd3Mgd2FybmluZyBtZXNzYWdlIGZvciBodHRwIDQwMyBmYWxsYmFjay4g
VGhpcyB3YXJuaW5nCi0gICAgICAgICMgbWVzc2FnZSBpcyBjb25mdXNpbmcuIEZvbGxvd2luZyBw
aXBlIGRpc3Bvc2VzIHdhcm5pbmcgbWVzc2FnZXMuCi0gICAgICAgIHNlbGYuc2VydmVyX3N0ZGVy
ciA9IHN1YnByb2Nlc3MuUElQRQotICAgICAgICBzZWxmLl9ydW5faHR0cF9mYWxsYmFja190ZXN0
KG9wdGlvbnMsIDQwMykKLQotICAgIGRlZiB0ZXN0X3ZlcnNpb25fY2hlY2soc2VsZik6Ci0gICAg
ICAgICIiIlRlc3RzIGh0dHAgZmFsbGJhY2sgb24gdmVyc2lvbiBjaGVjayBmYWlsLiIiIgotCi0g
ICAgICAgIG9wdGlvbnMgPSBzZWxmLl9vcHRpb25zCi0gICAgICAgIG9wdGlvbnMudmVyc2lvbiA9
IDk5Ci0gICAgICAgIHNlbGYuX3J1bl9odHRwX2ZhbGxiYWNrX3Rlc3Qob3B0aW9ucywgNDAwKQot
Ci0KLWNsYXNzIEVuZFRvRW5kSHlCaTAwVGVzdChFbmRUb0VuZFRlc3RCYXNlKToKLSAgICBkZWYg
c2V0VXAoc2VsZik6Ci0gICAgICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0VXAoc2VsZikKLQotICAg
IGRlZiBfcnVuX3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6Ci0gICAgICAgIHNlcnZlciA9IHNl
bGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9T
RVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90
ZXN0aW5nLmNyZWF0ZV9jbGllbnRfaHliaTAwKHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCi0gICAgICAgICAgICBm
aW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBm
aW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAg
ICBkZWYgdGVzdF9lY2hvKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19jaGVj
a19wcm9jZWR1cmUpCi0KLSAgICBkZWYgdGVzdF9lY2hvX3NlcnZlcl9jbG9zZShzZWxmKToKLSAg
ICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZSkK
LQotCi1jbGFzcyBFbmRUb0VuZFRlc3RXaXRoRWNob0NsaWVudChFbmRUb0VuZFRlc3RCYXNlKToK
LSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0VXAoc2Vs
ZikKLQotICAgIGRlZiBfY2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9yZXN1bHQoCi0gICAgICAg
IHNlbGYsIGV4cGVjdGVkLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKToKLSAgICAgICAgYWN0dWFs
ID0gc3Rkb3V0ZGF0YS5kZWNvZGUoInV0Zi04IikKLSAgICAgICAgaWYgYWN0dWFsICE9IGV4cGVj
dGVkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIHJlc3VsdCBvbiBl
eGFtcGxlIGVjaG8gY2xpZW50OiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJyVyIChl
eHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
ZXhwZWN0ZWQsIGFjdHVhbCkpCi0gICAgICAgIGlmIHN0ZGVycmRhdGEgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgZXJyb3IgbWVzc2FnZSBvbiBl
eGFtcGxlIGVjaG8gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbGllbnQ6ICVyJyAl
IHN0ZGVycmRhdGEpCi0KLSAgICBkZWYgdGVzdF9leGFtcGxlX2VjaG9fY2xpZW50KHNlbGYpOgot
ICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBlY2hvX2NsaWVudC5weSBleGFtcGxlIGNhbiB0YWxr
IHdpdGggdGhlIHNlcnZlci4iIiIKLQotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVy
KCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9J
Tl9TRUMpCi0KLSAgICAgICAgICAgIGNsaWVudF9jb21tYW5kID0gb3MucGF0aC5qb2luKAotICAg
ICAgICAgICAgICAgIHNlbGYudG9wX2RpciwgJ2V4YW1wbGUnLCAnZWNob19jbGllbnQucHknKQot
Ci0gICAgICAgICAgICAjIEV4cGVjdGVkIG91dHB1dCBmb3IgdGhlIGRlZmF1bHQgbWVzc2FnZXMu
Ci0gICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGF0aW9uID0gKCdTZW5kOiBIZWxsb1xuJyAnUmVj
djogSGVsbG9cbicKLSAgICAgICAgICAgICAgICB1J1NlbmQ6IFx1NjVlNVx1NjcyY1xuJyB1J1Jl
Y3Y6IFx1NjVlNVx1NjcyY1xuJwotICAgICAgICAgICAgICAgICdTZW5kIGNsb3NlXG4nICdSZWN2
IGFja1xuJykKLQotICAgICAgICAgICAgYXJncyA9IFtjbGllbnRfY29tbWFuZCwKLSAgICAgICAg
ICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQpXQotICAgICAg
ICAgICAgY2xpZW50ID0gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3MsIHN0ZG91dD1zdWJw
cm9jZXNzLlBJUEUpCi0gICAgICAgICAgICBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhID0gY2xpZW50
LmNvbW11bmljYXRlKCkKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrX2V4YW1wbGVfZWNob19jbGll
bnRfcmVzdWx0KAotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGF0aW9uLCBzdGRv
dXRkYXRhLCBzdGRlcnJkYXRhKQotCi0gICAgICAgICAgICAjIFByb2Nlc3MgYSBiaWcgbWVzc2Fn
ZSBmb3Igd2hpY2ggZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGggaXMgdXNlZC4KLSAgICAgICAgICAg
ICMgVG8gaGFuZGxlIGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoLCB3c192ZXJzaW9uIGF0dHJpYnV0
ZSB3aWxsIGJlCi0gICAgICAgICAgICAjIGFjY2Vzc2VkLiBUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
d3NfdmVyc2lvbiBpcyBjb3JyZWN0bHkgc2V0LgotICAgICAgICAgICAgYmlnX21lc3NhZ2UgPSAn
YScgKiAxMDI0Ci0gICAgICAgICAgICBhcmdzID0gW2NsaWVudF9jb21tYW5kLAotICAgICAgICAg
ICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCksCi0gICAgICAg
ICAgICAgICAgICAgICctbScsIGJpZ19tZXNzYWdlXQotICAgICAgICAgICAgY2xpZW50ID0gc2Vs
Zi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3MsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCi0gICAg
ICAgICAgICBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhID0gY2xpZW50LmNvbW11bmljYXRlKCkKLSAg
ICAgICAgICAgIGV4cGVjdGVkID0gKCdTZW5kOiAlc1xuUmVjdjogJXNcblNlbmQgY2xvc2VcblJl
Y3YgYWNrXG4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgIChiaWdfbWVzc2FnZSwgYmlnX21l
c3NhZ2UpKQotICAgICAgICAgICAgc2VsZi5fY2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9yZXN1
bHQoCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWQsIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpCi0K
LSAgICAgICAgICAgICMgVGVzdCB0aGUgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4KLSAg
ICAgICAgICAgIGFyZ3MgPSBbY2xpZW50X2NvbW1hbmQsCi0gICAgICAgICAgICAgICAgICAgICct
cCcsIHN0cihzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0KSwKLSAgICAgICAgICAgICAgICAgICAg
Jy0tdXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSddCi0gICAgICAgICAgICBjbGllbnQgPSBzZWxmLl9y
dW5fcHl0aG9uX2NvbW1hbmQoYXJncywgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKLSAgICAgICAg
ICAgIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEgPSBjbGllbnQuY29tbXVuaWNhdGUoKQotICAgICAg
ICAgICAgc2VsZi5fY2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9yZXN1bHQoCi0gICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHRfZXhwZWN0YXRpb24sIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpCi0g
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBp
ZCkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2V4
dGVuc2lvbnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmM4YjEyNjJkODliOTQ5NjQ5NjVjM2MzOGQ1Y2M0OTQ0Nzlj
MWI2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weQorKysgL2Rldi9udWxsCkBAIC0xLDM2MCArMCww
IEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRl
c3RzIGZvciBleHRlbnNpb25zIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9y
dCB6bGliCi0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0
ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
Y29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgZXh0ZW5zaW9ucwotCi0KLWNsYXNz
IEV4dGVuc2lvbnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZv
ciBub24tY2xhc3MgbWV0aG9kcyBpbiBleHRlbnNpb25zLnB5IiIiCi0KLSAgICBkZWYgdGVzdF9w
YXJzZV93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVF
cnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsIE5vbmUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAn
Zm9vYmFyJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9u
cy5fcGFyc2Vfd2luZG93X2JpdHMsICcgOCAnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJ2E4YScpCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19i
aXRzLCAnMDAwMDAnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRl
bnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzAwMDA4JykKLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcweDgnKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNl
X3dpbmRvd19iaXRzLCAnOS41JykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJv
ciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICc4LjAnKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzgnKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcxNScpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2lu
ZG93X2JpdHMsICctOCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4
dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnNycpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2lu
ZG93X2JpdHMsICcxNicpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAg
ICAgIFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMTAwMDAwMDAn
KQotCi0KLWNsYXNzIENvbXByZXNzaW9uTWV0aG9kUGFyYW1ldGVyUGFyc2VyVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgX3BhcnNlX2NvbXByZXNzaW9uX21l
dGhvZCB3aGljaCBwYXJzZXMgdGhlIGNvbXByZXNzaW9uCi0gICAgbWV0aG9kIGRlc2NyaXB0aW9u
IHVzZWQgYnkgcGVyZnJhbWUtY29tcHJlc3Npb24gYW5kIHBlcm1lc3NhZ2UtY29tcHJlc3Npb24K
LSAgICBleHRlbnNpb24gaW4gdGhlaXIgIm1ldGhvZCIgZXh0ZW5zaW9uIHBhcmFtZXRlci4KLSAg
ICAiIiIKLQotICAgIGRlZiB0ZXN0X3BhcnNlX21ldGhvZF9zaW1wbGUoc2VsZik6Ci0gICAgICAg
IG1ldGhvZF9saXN0ID0gZXh0ZW5zaW9ucy5fcGFyc2VfY29tcHJlc3Npb25fbWV0aG9kKCdmb28n
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXRob2RfbGlzdCkpCi0gICAgICAg
IG1ldGhvZCA9IG1ldGhvZF9saXN0WzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2Zvbycs
IG1ldGhvZC5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKG1ldGhvZC5n
ZXRfcGFyYW1ldGVycygpKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX21ldGhvZF93aXRoX3BhcmFt
ZXRlcihzZWxmKToKLSAgICAgICAgbWV0aG9kX2xpc3QgPSBleHRlbnNpb25zLl9wYXJzZV9jb21w
cmVzc2lvbl9tZXRob2QoJ2ZvbzsgeDsgeT0xMCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MSwgbGVuKG1ldGhvZF9saXN0KSkKLSAgICAgICAgbWV0aG9kID0gbWV0aG9kX2xpc3RbMF0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9vJywgbWV0aG9kLm5hbWUoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgyLCBsZW4obWV0aG9kLmdldF9wYXJhbWV0ZXJzKCkpKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUobWV0aG9kLmhhc19wYXJhbWV0ZXIoJ3gnKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChOb25lLCBtZXRob2QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgneCcpKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUobWV0aG9kLmhhc19wYXJhbWV0ZXIoJ3knKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnMTAnLCBtZXRob2QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgneScpKQotCi0g
ICAgZGVmIHRlc3RfcGFyc2VfbWV0aG9kX3dpdGhfcXVvdGVkX3BhcmFtZXRlcihzZWxmKToKLSAg
ICAgICAgbWV0aG9kX2xpc3QgPSBleHRlbnNpb25zLl9wYXJzZV9jb21wcmVzc2lvbl9tZXRob2Qo
Ci0gICAgICAgICAgICAnZm9vOyB4PSJIZWxsbyBXb3JsZCI7IHk9MTAnKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDEsIGxlbihtZXRob2RfbGlzdCkpCi0gICAgICAgIG1ldGhvZCA9IG1ldGhv
ZF9saXN0WzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2ZvbycsIG1ldGhvZC5uYW1lKCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKG1ldGhvZC5nZXRfcGFyYW1ldGVycygp
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ldGhvZC5oYXNfcGFyYW1ldGVyKCd4JykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkJywgbWV0aG9kLmdldF9wYXJhbWV0
ZXJfdmFsdWUoJ3gnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ldGhvZC5oYXNfcGFyYW1l
dGVyKCd5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzEwJywgbWV0aG9kLmdldF9wYXJh
bWV0ZXJfdmFsdWUoJ3knKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX21ldGhvZF9tdWx0aXBsZShz
ZWxmKToKLSAgICAgICAgbWV0aG9kX2xpc3QgPSBleHRlbnNpb25zLl9wYXJzZV9jb21wcmVzc2lv
bl9tZXRob2QoJ2ZvbywgYmFyJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4obWV0
aG9kX2xpc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdmb28nLCBtZXRob2RfbGlzdFsw
XS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKG1ldGhvZF9saXN0WzBd
LmdldF9wYXJhbWV0ZXJzKCkpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdiYXInLCBtZXRo
b2RfbGlzdFsxXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKG1ldGhv
ZF9saXN0WzFdLmdldF9wYXJhbWV0ZXJzKCkpKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfbWV0aG9k
X211bHRpcGxlX21ldGhvZHNfd2l0aF9xdW90ZWRfcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBt
ZXRob2RfbGlzdCA9IGV4dGVuc2lvbnMuX3BhcnNlX2NvbXByZXNzaW9uX21ldGhvZCgKLSAgICAg
ICAgICAgICdmb287IHg9IkhlbGxvIFdvcmxkIiwgYmFyOyB5PTEwJykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgyLCBsZW4obWV0aG9kX2xpc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdmb28nLCBtZXRob2RfbGlzdFswXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MSwgbGVuKG1ldGhvZF9saXN0WzBdLmdldF9wYXJhbWV0ZXJzKCkpKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUobWV0aG9kX2xpc3RbMF0uaGFzX3BhcmFtZXRlcigneCcpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgbWV0
aG9kX2xpc3RbMF0uZ2V0X3BhcmFtZXRlcl92YWx1ZSgneCcpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdiYXInLCBtZXRob2RfbGlzdFsxXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgbGVuKG1ldGhvZF9saXN0WzFdLmdldF9wYXJhbWV0ZXJzKCkpKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUobWV0aG9kX2xpc3RbMV0uaGFzX3BhcmFtZXRlcigneScpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCcxMCcsIG1ldGhvZF9saXN0WzFdLmdldF9wYXJhbWV0ZXJfdmFs
dWUoJ3knKSkKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9tZXRob2RfZGVzY19zaW1wbGUoc2VsZik6
Ci0gICAgICAgIHBhcmFtcyA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ2ZvbycpCi0gICAg
ICAgIGRlc2MgPSBleHRlbnNpb25zLl9jcmVhdGVfYWNjZXB0ZWRfbWV0aG9kX2Rlc2MoJ2Zvbycs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFyYW1zLmdldF9wYXJhbWV0ZXJzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2Zvbycs
IGRlc2MpCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVfbWV0aG9kX2Rlc2Nfd2l0aF9wYXJhbWV0ZXJz
KHNlbGYpOgotICAgICAgICBwYXJhbXMgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdmb28n
KQotICAgICAgICBwYXJhbXMuYWRkX3BhcmFtZXRlcigneCcsICdIZWxsbywgV29ybGQnKQotICAg
ICAgICBwYXJhbXMuYWRkX3BhcmFtZXRlcigneScsICcxMCcpCi0gICAgICAgIGRlc2MgPSBleHRl
bnNpb25zLl9jcmVhdGVfYWNjZXB0ZWRfbWV0aG9kX2Rlc2MoJ2ZvbycsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmdldF9wYXJh
bWV0ZXJzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2ZvbzsgeD0iSGVsbG8sIFdvcmxk
IjsgeT0xMCcsIGRlc2MpCi0KLQotY2xhc3MgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29y
UGFyc2luZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGNo
ZWNraW5nIHRoYXQgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yIHBhcnNlcyBnaXZlbgot
ICAgIGV4dGVuc2lvbiBwYXJhbWV0ZXIgY29ycmVjdGx5LgotICAgICIiIgotCi0gICAgZGVmIHRl
c3RfcmVnaXN0cnkoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuZ2V0X2V4
dGVuc2lvbl9wcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcignZGVmbGF0ZS1mcmFtZScpKQotICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocHJv
Y2Vzc29yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5EZWZsYXRl
RnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IpCi0KLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9u
cy5nZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcigKLSAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKCd4LXdlYmtpdC1kZWZsYXRlLWZyYW1lJykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0SXNJbnN0YW5jZShwcm9jZXNzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcikKLQotICAgIGRlZiB0ZXN0
X21pbmltYWxfb2ZmZXIoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVm
bGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJv
Y2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdwZXJmcmFtZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHpsaWIuTUFYX1dCSVRTLAotICAgICAgICAgICAgICAgICAgICAgICAgIHBy
b2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRlci5fd2luZG93X2JpdHMpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UocHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVy
KQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAg
ICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxh
dGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywg
JzEwJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNp
b25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdl
dF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFt
ZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAs
IGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDEwLCBwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQotCi0gICAg
ZGVmIHRlc3Rfb2ZmZXJfd2l0aF9vdXRfb2ZfcmFuZ2VfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgot
ICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1k
ZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0
cycsICcwJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRl
bnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHBy
b2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93
aXRoX21heF93aW5kb3dfYml0c193aXRob3V0X3ZhbHVlKHNlbGYpOgotICAgICAgICBwYXJhbWV0
ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAgICAg
ICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsIE5vbmUpCi0gICAg
ICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29y
KHBhcmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4
dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9ub19jb250ZXh0
X3Rha2VvdmVyKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0
ZXIoJ25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRl
bnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAg
ICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ3BlcmZyYW1lLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkp
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIu
X25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRl
eHRfdGFrZW92ZXJfd2l0aF92YWx1ZShzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRl
ci5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVyJywgJ2Zvb2JhcicpCi0gICAgICAg
IHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBh
cmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVu
c2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF91bmtub3duX3BhcmFt
ZXRlcihzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRl
cigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdm
b28nLCAnYmFyJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVF
eHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vz
c29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdw
ZXJmcmFtZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQotCi1jbGFzcyBQZXJNZXNz
YWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvclBhcnNpbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBjaGVja2luZyB0aGF0IFBlck1lc3NhZ2VEZWZsYXRl
RXh0ZW5zaW9uUHJvY2Vzc29yIHBhcnNlcwotICAgIGdpdmVuIGV4dGVuc2lvbiBwYXJhbWV0ZXIg
Y29ycmVjdGx5LgotICAgICIiIgotCi0gICAgZGVmIHRlc3RfcmVnaXN0cnkoc2VsZik6Ci0gICAg
ICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoCi0gICAg
ICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRl
JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShwcm9jZXNzb3IsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9u
UHJvY2Vzc29yKQotCi0gICAgZGVmIHRlc3RfbWluaW1hbF9vZmZlcihzZWxmKToKLSAgICAgICAg
cHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nv
cigKLSAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVm
bGF0ZScpKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVz
cG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBy
ZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNl
LmdldF9wYXJhbWV0ZXJzKCkpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoemxpYi5NQVhf
V0JJVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxh
dGVyLl93aW5kb3dfYml0cykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwcm9jZXNzb3IuX3Jm
YzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICBkZWYgdGVzdF9vZmZl
cl93aXRoX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1l
dGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnMTAnKQotICAgICAg
ICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vz
c29yKHBhcmFtZXRlcikKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5z
aW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZs
YXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsoJ3NlcnZl
cl9tYXhfd2luZG93X2JpdHMnLCAnMTAnKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVz
cG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwLCBw
cm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQotCi0gICAgZGVmIHRlc3Rf
b2ZmZXJfd2l0aF9vdXRfb2ZfcmFuZ2VfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAgICBw
YXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUn
KQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignc2VydmVyX21heF93aW5kb3dfYml0
cycsICcwJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0
ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05v
bmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29m
ZmVyX3dpdGhfbWF4X3dpbmRvd19iaXRzX3dpdGhvdXRfdmFsdWUoc2VsZik6Ci0gICAgICAgIHBh
cmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScp
Ci0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRz
JywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0
ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05v
bmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29m
ZmVyX3dpdGhfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0g
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAg
cGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9u
ZSkKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVu
c2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3Iu
Z2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1l
c3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIp
Ci0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXJfd2l0aF92YWx1
ZShzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcign
cGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3Nl
cnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgJ2Zvb2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9
IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVy
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jl
c3BvbnNlKCkpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX3Vua25vd25fcGFyYW1ldGVyKHNl
bGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJt
ZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignZm9vJywg
J2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVF
eHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25l
KHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLQotY2xhc3MgUGVyTWVzc2Fn
ZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3JCdWlsZGluZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGNoZWNraW5nIHRoYXQgUGVyTWVzc2FnZURlZmxhdGVF
eHRlbnNpb25Qcm9jZXNzb3IgYnVpbGRzCi0gICAgYSByZXNwb25zZSBiYXNlZCBvbiBzcGVjaWZp
ZWQgb3B0aW9ucyBjb3JyZWN0bHkuCi0gICAgIiIiCi0KLSAgICBkZWYgdGVzdF9yZXNwb25zZV93
aXRoX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVy
LmFkZF9wYXJhbWV0ZXIoJ2NsaWVudF9tYXhfd2luZG93X2JpdHMnLCBOb25lKQotICAgICAgICBw
cm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29y
KHBhcmFtZXRlcikKLSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRz
KDEwKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9u
c2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNw
b25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWygnY2xpZW50X21heF93aW5k
b3dfYml0cycsICcxMCcpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRf
cGFyYW1ldGVycygpKQotCi0gICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF9tYXhfd2luZG93X2Jp
dHNfd2l0aG91dF9jbGllbnRfcGVybWlzc2lvbihzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0g
ZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAg
ICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQotICAg
ICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoMTApCi0KLSAgICAgICAg
cmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0SXNOb25lKHJlc3BvbnNlKQotCi0gICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF90
cnVlX2Zvcl9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBl
eHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAg
ICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0KLSAg
ICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQotCi0g
ICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1l
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWygnY2xpZW50X25vX2NvbnRleHRfdGFrZW92
ZXInLCBOb25lKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFt
ZXRlcnMoKSkKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3dpdGhfZmFsc2VfZm9yX25vX2NvbnRl
eHRfdGFrZW92ZXIoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVz
c2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAgICAgICBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkKLQotICAgICAgICBwcm9jZXNzb3Iu
c2V0X2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKEZhbHNlKQotCi0gICAgICAgIHJlc3BvbnNl
ID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQotCi0KLWNs
YXNzIFBlck1lc3NhZ2VDb21wcmVzc0V4dGVuc2lvblByb2Nlc3NvclRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgotICAgIGRlZiB0ZXN0X3JlZ2lzdHJ5KHNlbGYpOgotICAgICAgICBwcm9jZXNzb3Ig
PSBleHRlbnNpb25zLmdldF9leHRlbnNpb25fcHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtY29tcHJlc3MnKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRJc0luc3RhbmNlKHByb2Nlc3NvciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4dGVuc2lvbnMuUGVyTWVzc2FnZUNvbXByZXNzRXh0ZW5zaW9uUHJvY2Vzc29yKQot
Ci0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQot
IyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNo
YWtlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZS5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWE3OGFjMDVlNTg3MWQxNTlhNjdmN2U0MTZmMzAyNzAwZmEwZjkyNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RfaGFuZHNoYWtlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTg4ICswLDAgQEAKLSMh
L3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9y
IGhhbmRzaGFrZS5fYmFzZSBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9y
dCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2Nr
ZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24gaW1wb3J0IEV4dGVuc2lv
blBhcmFtZXRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuY29tbW9uIGltcG9ydCBFeHRlbnNpb25Q
YXJzaW5nRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24gaW1wb3J0IGZvcm1h
dF9leHRlbnNpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24gaW1wb3J0IHBhcnNlX2V4
dGVuc2lvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFu
ZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1w
b3J0IHZhbGlkYXRlX3N1YnByb3RvY29sCi0KLQotY2xhc3MgVmFsaWRhdGVTdWJwcm90b2NvbFRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIHZhbGlkYXRlX3N1
YnByb3RvY29sIG1ldGhvZC4iIiIKLQotICAgIGRlZiB0ZXN0X3ZhbGlkYXRlX3N1YnByb3RvY29s
KHNlbGYpOgotICAgICAgICAjIFNob3VsZCBzdWNjZWVkLgotICAgICAgICB2YWxpZGF0ZV9zdWJw
cm90b2NvbCgnc2FtcGxlJykKLSAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2woJ1NhbXBsZScp
Ci0gICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGVceDdlcHJvdG9jb2wnKQotCi0g
ICAgICAgICMgU2hvdWxkIGZhaWwuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFr
ZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9j
b2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcnKQotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlk
YXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHgwOXBy
b3RvY29sJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4MTlwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVc
eDIwcHJvdG9jb2wnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRp
b24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHg3ZnByb3RvY29sJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIyAi
SmFwYW4iIGluIEphcGFuZXNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHUnXHU2NWU1XHU2
NzJjJykKLQotCi1fVEVTVF9UT0tFTl9FWFRFTlNJT05fREFUQSA9IFsKLSAgICAoJ2ZvbycsIFso
J2ZvbycsIFtdKV0pLAotICAgICgnZm9vOyBiYXInLCBbKCdmb28nLCBbKCdiYXInLCBOb25lKV0p
XSksCi0gICAgKCdmb287IGJhcj1iYXonLCBbKCdmb28nLCBbKCdiYXInLCAnYmF6JyldKV0pLAot
ICAgICgnZm9vOyBiYXI9YmF6OyBjYXI9Y2RyJywgWygnZm9vJywgWygnYmFyJywgJ2JheicpLCAo
J2NhcicsICdjZHInKV0pXSksCi0gICAgKCdmb287IGJhcj1iYXosIGNhcjsgY2RyJywKLSAgICAg
WygnZm9vJywgWygnYmFyJywgJ2JheicpXSksICgnY2FyJywgWygnY2RyJywgTm9uZSldKV0pLAot
ICAgICgnYSwgYiwgYywgZCcsCi0gICAgIFsoJ2EnLCBbXSksICgnYicsIFtdKSwgKCdjJywgW10p
LCAoJ2QnLCBbXSldKSwKLSAgICBdCi0KLQotX1RFU1RfUVVPVEVEX0VYVEVOU0lPTl9EQVRBID0g
WwotICAgICgnZm9vOyBiYXI9IiInLCBbKCdmb28nLCBbKCdiYXInLCAnJyldKV0pLAotICAgICgn
Zm9vOyBiYXI9IiBiYXogIicsIFsoJ2ZvbycsIFsoJ2JhcicsICcgYmF6ICcpXSldKSwKLSAgICAo
J2ZvbzsgYmFyPSIsYmF6OyInLCBbKCdmb28nLCBbKCdiYXInLCAnLGJhejsnKV0pXSksCi0gICAg
KCdmb287IGJhcj0iXFxcclxcXG5iYXoiJywgWygnZm9vJywgWygnYmFyJywgJ1xyXG5iYXonKV0p
XSksCi0gICAgKCdmb287IGJhcj0iXFwiYmF6IicsIFsoJ2ZvbycsIFsoJ2JhcicsICciYmF6Jyld
KV0pLAotICAgICgnZm9vOyBiYXI9Ilx4YmJiYXoiJywgWygnZm9vJywgWygnYmFyJywgJ1x4YmJi
YXonKV0pXSksCi0gICAgXQotCi0KLV9URVNUX1JFRFVOREFOVF9UT0tFTl9FWFRFTlNJT05fREFU
QSA9IFsKLSAgICAoJ2ZvbyBcdCAnLCBbKCdmb28nLCBbXSldKSwKLSAgICAoJ2ZvbzsgXHJcbiBi
YXInLCBbKCdmb28nLCBbKCdiYXInLCBOb25lKV0pXSksCi0gICAgKCdmb287IGJhcj1cclxuIFxy
XG4gYmF6JywgWygnZm9vJywgWygnYmFyJywgJ2JheicpXSldKSwKLSAgICAoJ2ZvbyA7YmFyID0g
YmF6ICcsIFsoJ2ZvbycsIFsoJ2JhcicsICdiYXonKV0pXSksCi0gICAgKCdmb28sYmFyLCxiYXon
LCBbKCdmb28nLCBbXSksICgnYmFyJywgW10pLCAoJ2JheicsIFtdKV0pLAotICAgIF0KLQotCi1f
VEVTVF9SRURVTkRBTlRfUVVPVEVEX0VYVEVOU0lPTl9EQVRBID0gWwotICAgICgnZm9vOyBiYXI9
IlxyXG4gXHJcbiBiYXoiJywgWygnZm9vJywgWygnYmFyJywgJyAgYmF6JyldKV0pLAotICAgIF0K
LQotCi1jbGFzcyBFeHRlbnNpb25zUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAg
ICBkZWYgX3ZlcmlmeV9leHRlbnNpb25fbGlzdChzZWxmLCBleHBlY3RlZF9saXN0LCBhY3R1YWxf
bGlzdCk6Ci0gICAgICAgICIiIlZlcmlmaWVzIHRoYXQgRXh0ZW5zaW9uUGFyYW1ldGVyIG9iamVj
dHMgaW4gYWN0dWFsX2xpc3QgaGF2ZSB0aGUKLSAgICAgICAgc2FtZSBtZW1iZXJzIGFzIGV4dGVu
c2lvbiBkZWZpbml0aW9ucyBpbiBleHBlY3RlZF9saXN0LiBFeHRlbnNpb24KLSAgICAgICAgZGVm
aW5pdGlvbiB1c2VkIGluIHRoaXMgdGVzdCBpcyBhIHBhaXIgb2YgYW4gZXh0ZW5zaW9uIG5hbWUg
YW5kIGEKLSAgICAgICAgcGFyYW1ldGVyIGRpY3Rpb25hcnkuCi0gICAgICAgICIiIgotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4cGVjdGVkX2xpc3QpLCBsZW4oYWN0dWFsX2xpc3Qp
KQotICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCBpbiB6aXAoZXhwZWN0ZWRfbGlzdCwgYWN0
dWFsX2xpc3QpOgotICAgICAgICAgICAgKG5hbWUsIHBhcmFtZXRlcnMpID0gZXhwZWN0ZWQKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZSwgYWN0dWFsLl9uYW1lKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbWV0ZXJzLCBhY3R1YWwuX3BhcmFtZXRlcnMpCi0KLSAg
ICBkZWYgdGVzdF9wYXJzZShzZWxmKToKLSAgICAgICAgZm9yIGZvcm1hdHRlZF9zdHJpbmcsIGRl
ZmluaXRpb24gaW4gX1RFU1RfVE9LRU5fRVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxm
Ll92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCi0gICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwgcGFy
c2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5nKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3F1
b3RlZF9kYXRhKHNlbGYpOgotICAgICAgICBmb3IgZm9ybWF0dGVkX3N0cmluZywgZGVmaW5pdGlv
biBpbiBfVEVTVF9RVU9URURfRVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxmLl92ZXJp
ZnlfZXh0ZW5zaW9uX2xpc3QoCi0gICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwgcGFyc2VfZXh0
ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5nKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3JlZHVuZGFu
dF9kYXRhKHNlbGYpOgotICAgICAgICBmb3IgKGZvcm1hdHRlZF9zdHJpbmcsCi0gICAgICAgICAg
ICAgZGVmaW5pdGlvbikgaW4gX1RFU1RfUkVEVU5EQU5UX1RPS0VOX0VYVEVOU0lPTl9EQVRBOgot
ICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4dGVuc2lvbl9saXN0KAotICAgICAgICAgICAgICAg
IGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lvbnMoZm9ybWF0dGVkX3N0cmluZykpCi0KLSAgICBk
ZWYgdGVzdF9wYXJzZV9yZWR1bmRhbnRfcXVvdGVkX2RhdGEoc2VsZik6Ci0gICAgICAgIGZvciAo
Zm9ybWF0dGVkX3N0cmluZywKLSAgICAgICAgICAgICBkZWZpbml0aW9uKSBpbiBfVEVTVF9SRURV
TkRBTlRfUVVPVEVEX0VYVEVOU0lPTl9EQVRBOgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4
dGVuc2lvbl9saXN0KAotICAgICAgICAgICAgICAgIGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lv
bnMoZm9ybWF0dGVkX3N0cmluZykpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9iYWRfZGF0YShzZWxm
KToKLSAgICAgICAgX1RFU1RfQkFEX0VYVEVOU0lPTl9EQVRBID0gWwotICAgICAgICAgICAgKCdm
b287IDsgJyksCi0gICAgICAgICAgICAoJ2ZvbzsgYSBhJyksCi0gICAgICAgICAgICAoJ2ZvbyBm
b28nKSwKLSAgICAgICAgICAgICgnLCwsJyksCi0gICAgICAgICAgICAoJ2ZvbzsgYmFyPScpLAot
ICAgICAgICAgICAgKCdmb287IGJhcj0iaG9nZScpLAotICAgICAgICAgICAgKCdmb287IGJhcj0i
YVxyIicpLAotICAgICAgICAgICAgKCdmb287IGJhcj0iXFxceGZmIicpLAotICAgICAgICAgICAg
KCdmb287IGJhcj1ccmEnKSwKLSAgICAgICAgICAgIF0KLQotICAgICAgICBmb3IgZm9ybWF0dGVk
X3N0cmluZyBpbiBfVEVTVF9CQURfRVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcygKLSAgICAgICAgICAgICAgICBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uLCBw
YXJzZV9leHRlbnNpb25zLCBmb3JtYXR0ZWRfc3RyaW5nKQotCi0KLWNsYXNzIEZvcm1hdEV4dGVu
c2lvbnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiB0ZXN0X2Zvcm1hdF9leHRl
bnNpb25zKHNlbGYpOgotICAgICAgICBmb3IgZm9ybWF0dGVkX3N0cmluZywgZGVmaW5pdGlvbnMg
aW4gX1RFU1RfVE9LRU5fRVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBleHRlbnNpb25zID0g
W10KLSAgICAgICAgICAgIGZvciBkZWZpbml0aW9uIGluIGRlZmluaXRpb25zOgotICAgICAgICAg
ICAgICAgIChuYW1lLCBwYXJhbWV0ZXJzKSA9IGRlZmluaXRpb24KLSAgICAgICAgICAgICAgICBl
eHRlbnNpb24gPSBFeHRlbnNpb25QYXJhbWV0ZXIobmFtZSkKLSAgICAgICAgICAgICAgICBleHRl
bnNpb24uX3BhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9u
cy5hcHBlbmQoZXh0ZW5zaW9uKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgICAgICBmb3JtYXR0ZWRfc3RyaW5nLCBmb3JtYXRfZXh0ZW5zaW9ucyhleHRlbnNpb25z
KSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hh
bmRzaGFrZV9oeWJpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Yzg3MTM4MjMwYjMwM2JmMzhkYzRjZjg0YzEy
OTBhODhmN2JkOGQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQorKysgL2Rldi9udWxsCkBA
IC0xLDUzNCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIw
MTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0KLSIiIlRlc3RzIGZvciBoYW5kc2hha2UgbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0
dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUg
bW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21t
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgQWJvcnRlZEJ5
VXNlckV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9y
dCBIYW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFz
ZSBpbXBvcnQgVmVyc2lvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtl
Lmh5YmkgaW1wb3J0IEhhbmRzaGFrZXIKLQotaW1wb3J0IG1vY2sKLQotCi1jbGFzcyBSZXF1ZXN0
RGVmaW5pdGlvbihvYmplY3QpOgotICAgICIiIkEgY2xhc3MgZm9yIGhvbGRpbmcgZGF0YSBmb3Ig
Y29uc3RydWN0aW5nIG9wZW5pbmcgaGFuZHNoYWtlIHN0cmluZ3MgZm9yCi0gICAgdGVzdGluZyB0
aGUgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yLgotICAgICIiIgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIG1ldGhvZCwgdXJpLCBoZWFkZXJzKToKLSAgICAgICAgc2VsZi5tZXRob2QgPSBt
ZXRob2QKLSAgICAgICAgc2VsZi51cmkgPSB1cmkKLSAgICAgICAgc2VsZi5oZWFkZXJzID0gaGVh
ZGVycwotCi0KLWRlZiBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKToKLSAgICByZXR1cm4gUmVx
dWVzdERlZmluaXRpb24oCi0gICAgICAgICdHRVQnLCAnL2RlbW8nLAotICAgICAgICB7J0hvc3Qn
OiAnc2VydmVyLmV4YW1wbGUuY29tJywKLSAgICAgICAgICdVcGdyYWRlJzogJ3dlYnNvY2tldCcs
Ci0gICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICdTZWMtV2ViU29j
a2V0LUtleSc6ICdkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nLAotICAgICAgICAgJ1NlYy1XZWJT
b2NrZXQtVmVyc2lvbic6ICcxMycsCi0gICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxl
LmNvbSd9KQotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpOgotICAgIGNvbm4g
PSBtb2NrLk1vY2tDb25uKCcnKQotICAgIHJldHVybiBtb2NrLk1vY2tSZXF1ZXN0KAotICAgICAg
ICBtZXRob2Q9cmVxdWVzdF9kZWYubWV0aG9kLAotICAgICAgICB1cmk9cmVxdWVzdF9kZWYudXJp
LAotICAgICAgICBoZWFkZXJzX2luPXJlcXVlc3RfZGVmLmhlYWRlcnMsCi0gICAgICAgIGNvbm5l
Y3Rpb249Y29ubikKLQotCi1kZWYgX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpOgotICAgIGhh
bmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAg
ICByZXR1cm4gaGFuZHNoYWtlcgotCi0KLWNsYXNzIFN1YnByb3RvY29sQ2hvb3NpbmdEaXNwYXRj
aGVyKG9iamVjdCk6Ci0gICAgIiIiQSBkaXNwYXRjaGVyIGZvciB0ZXN0aW5nLiBUaGlzIGRpc3Bh
dGNoZXIgc2V0cyB0aGUgaS10aCBzdWJwcm90b2NvbAotICAgIG9mIHJlcXVlc3RlZCBvbmVzIHRv
IHdzX3Byb3RvY29sIHdoZXJlIGkgaXMgZ2l2ZW4gb24gY29uc3RydWN0aW9uIGFzIGluZGV4Ci0g
ICAgYXJndW1lbnQuIElmIGluZGV4IGlzIG5lZ2F0aXZlLCBkZWZhdWx0X3ZhbHVlIHdpbGwgYmUg
c2V0IHRvIHdzX3Byb3RvY29sLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGlu
ZGV4LCBkZWZhdWx0X3ZhbHVlPU5vbmUpOgotICAgICAgICBzZWxmLmluZGV4ID0gaW5kZXgKLSAg
ICAgICAgc2VsZi5kZWZhdWx0X3ZhbHVlID0gZGVmYXVsdF92YWx1ZQotCi0gICAgZGVmIGRvX2V4
dHJhX2hhbmRzaGFrZShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICBpZiBzZWxmLmluZGV4
ID49IDA6Ci0gICAgICAgICAgICBjb25uX2NvbnRleHQud3NfcHJvdG9jb2wgPSBjb25uX2NvbnRl
eHQud3NfcmVxdWVzdGVkX3Byb3RvY29sc1sKLSAgICAgICAgICAgICAgICBzZWxmLmluZGV4XQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgY29ubl9jb250ZXh0LndzX3Byb3RvY29sID0gc2Vs
Zi5kZWZhdWx0X3ZhbHVlCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShzZWxmLCBjb25uX2NvbnRl
eHQpOgotICAgICAgICBwYXNzCi0KLQotY2xhc3MgSGFuZHNoYWtlQWJvcnRlZEV4Y2VwdGlvbihF
eGNlcHRpb24pOgotICAgIHBhc3MKLQotCi1jbGFzcyBBYm9ydGluZ0Rpc3BhdGNoZXIob2JqZWN0
KToKLSAgICAiIiJBIGRpc3BhdGNoZXIgZm9yIHRlc3RpbmcuIFRoaXMgZGlzcGF0Y2hlciByYWlz
ZXMgYW4gZXhjZXB0aW9uIGluCi0gICAgZG9fZXh0cmFfaGFuZHNoYWtlIHRvIHJlamVjdCB0aGUg
cmVxdWVzdC4KLSAgICAiIiIKLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgY29u
bl9jb250ZXh0KToKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlQWJvcnRlZEV4Y2VwdGlvbignQW4g
ZXhjZXB0aW9uIHRvIHJlamVjdCB0aGUgcmVxdWVzdCcpCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0
YShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICBwYXNzCi0KLQotY2xhc3MgQWJvcnRlZEJ5
VXNlckRpc3BhdGNoZXIob2JqZWN0KToKLSAgICAiIiJBIGRpc3BhdGNoZXIgZm9yIHRlc3Rpbmcu
IFRoaXMgZGlzcGF0Y2hlciByYWlzZXMgYW4KLSAgICBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uIGlu
IGRvX2V4dHJhX2hhbmRzaGFrZSB0byByZWplY3QgdGhlIHJlcXVlc3QuCi0gICAgIiIiCi0KLSAg
ICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHJh
aXNlIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24oJ0FuIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24gdG8g
cmVqZWN0IHRoZSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlcXVl
c3QnKQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAg
ICAgcGFzcwotCi0KLV9FWFBFQ1RFRF9SRVNQT05TRSA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFN3
aXRjaGluZyBQcm90b2NvbHNcclxuJwotICAgICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwotICAg
ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6IHMz
cFBMTUJpVHhhUTlrWUd6emhaUmJLK3hPbz1cclxuXHJcbicpCi0KLQotY2xhc3MgSGFuZHNoYWtl
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGRyYWZ0LWll
dGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wNiBhbmQgbGF0ZXIKLSAgICBoYW5kc2hha2Ug
cHJvY2Vzc29yLgotICAgICIiIgotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2Rl
ZigpKQotICAgICAgICBkaXNwYXRjaGVyID0gbW9jay5Nb2NrRGlzcGF0Y2hlcigpCi0gICAgICAg
IGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIGhh
bmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUoZGlzcGF0
Y2hlci5kb19leHRyYV9oYW5kc2hha2VfY2FsbGVkKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCi0gICAgICAgICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2RlbW8nLCByZXF1ZXN0
LndzX3Jlc291cmNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdodHRwOi8vZXhhbXBsZS5j
b20nLCByZXF1ZXN0LndzX29yaWdpbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBy
ZXF1ZXN0LndzX3Byb3RvY29sKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlcXVl
c3Qud3NfZXh0ZW5zaW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uVkVSU0lP
Tl9IWUJJX0xBVEVTVCwgcmVxdWVzdC53c192ZXJzaW9uKQotCi0gICAgZGVmIHRlc3RfZG9faGFu
ZHNoYWtlX3dpdGhfZXh0cmFfaGVhZGVycyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBf
Y3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICAjIEFkZCBoZWFkZXJzIG5vdCByZWxh
dGVkIHRvIFdlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgcmVxdWVzdF9kZWYu
aGVhZGVyc1snRm9vS2V5J10gPSAnQmFyVmFsdWUnCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRl
cnNbJ0VtcHR5S2V5J10gPSAnJwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
cmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVx
dWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKAotICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9j
YXBpdGFsaXplZF92YWx1ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dv
b2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWyd1cGdyYWRlJ10g
PSAnV0VCU09DS0VUJwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVz
dF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkK
LSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVx
dWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydDb25uZWN0aW9uJ10gPSAn
VVBHUkFERScKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVm
KQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAg
ICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
LSAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfbXVsdGlwbGVfY29u
bmVjdGlvbl92YWx1ZXMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29k
X3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbidd
ID0gJ1VwZ3JhZGUsIGtlZXAtYWxpdmUsICwgJwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRz
aGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9hYm9ydGluZ19o
YW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKAotICAgICAg
ICAgICAgX2NyZWF0ZV9yZXF1ZXN0KF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpKSwKLSAgICAg
ICAgICAgIEFib3J0aW5nRGlzcGF0Y2hlcigpKQotICAgICAgICAjIGRvX2V4dHJhX2hhbmRzaGFr
ZSByYWlzZXMgYW4gZXhjZXB0aW9uLiBDaGVjayB0aGF0IGl0J3Mgbm90IGNhdWdodCBieQotICAg
ICAgICAjIGRvX2hhbmRzaGFrZS4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtl
QWJvcnRlZEV4Y2VwdGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVz
dF9kb19oYW5kc2hha2Vfd2l0aF9wcm90b2NvbChzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYg
PSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJz
WydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10gPSAnY2hhdCwgc3VwZXJjaGF0JwotCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFr
ZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIFN1YnByb3RvY29sQ2hvb3NpbmdEaXNwYXRjaGVyKDAp
KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0KLSAgICAgICAgRVhQRUNURURf
UkVTUE9OU0UgPSAoCi0gICAgICAgICAgICAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2Nv
bHNcclxuJwotICAgICAgICAgICAgJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCi0gICAgICAgICAg
ICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1B
Y2NlcHQ6IHMzcFBMTUJpVHhhUTlrWUd6emhaUmJLK3hPbz1cclxuJwotICAgICAgICAgICAgJ1Nl
Yy1XZWJTb2NrZXQtUHJvdG9jb2w6IGNoYXRcclxuXHJcbicpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChFWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdjaGF0JywgcmVxdWVzdC53c19wcm90b2Nv
bCkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV9wcm90b2NvbF9ub3RfaW5fcmVxdWVzdF9i
dXRfaW5fcmVzcG9uc2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29k
X3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0
X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIoCi0gICAgICAgICAgICByZXF1
ZXN0LCBTdWJwcm90b2NvbENob29zaW5nRGlzcGF0Y2hlcigtMSwgJ2Zvb2JhcicpKQotICAgICAg
ICAjIE5vIHJlcXVlc3QgaGFzIGJlZW4gbWFkZSBidXQgd3NfcHJvdG9jb2wgaXMgc2V0LiBIYW5k
c2hha2VFeGNlcHRpb24KLSAgICAgICAgIyBtdXN0IGJlIHJhaXNlZC4KLSAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLCBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSkK
LQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3Byb3RvY29sX25vX3Byb3RvY29sX3Nl
bGVjdGlvbihzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVz
dF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3Rv
Y29sJ10gPSAnY2hhdCwgc3VwZXJjaGF0JwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFr
ZXIocmVxdWVzdCkKLSAgICAgICAgIyB3c19wcm90b2NvbCBpcyBub3Qgc2V0LiBIYW5kc2hha2VF
eGNlcHRpb24gbXVzdCBiZSByYWlzZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRz
aGFrZUV4Y2VwdGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVzdF9k
b19oYW5kc2hha2Vfd2l0aF9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9
IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNb
J1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKAotICAgICAgICAgICAgJ3Blcm1lc3NhZ2Ut
Y29tcHJlc3M7IG1ldGhvZD1kZWZsYXRlLCB1bmtub3duJykKLQotICAgICAgICBFWFBFQ1RFRF9S
RVNQT05TRSA9ICgKLSAgICAgICAgICAgICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29s
c1xyXG4nCi0gICAgICAgICAgICAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKLSAgICAgICAgICAg
ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUFj
Y2VwdDogczNwUExNQmlUeGFROWtZR3p6aFpSYksreE9vPVxyXG4nCi0gICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1FeHRlbnNpb25zOiBwZXJtZXNzYWdlLWNvbXByZXNzOyBtZXRob2Q9ZGVmbGF0
ZVxyXG4nCi0gICAgICAgICAgICAnXHJcbicpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNo
YWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53
c19leHRlbnNpb25zKSkKLSAgICAgICAgZXh0ZW5zaW9uID0gcmVxdWVzdC53c19leHRlbnNpb25z
WzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJ
T05fRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbi5uYW1lKCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydtZXRob2QnXSwgZXh0ZW5zaW9uLmdldF9wYXJh
bWV0ZXJfbmFtZXMoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZGVmbGF0ZScsIGV4dGVu
c2lvbi5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdtZXRob2QnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNb
MF0ubmFtZSgpKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfcGVybWVzc2FnZV9j
b21wcmVzcyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVz
dF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVu
c2lvbnMnXSA9ICgKLSAgICAgICAgICAgICdwZXJtZXNzYWdlLWNvbXByZXNzOyBtZXRob2Q9ZGVm
bGF0ZScpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0g
ICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAg
aGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxl
bihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1v
bi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29y
c1swXS5uYW1lKCkpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9xdW90ZWRfZXh0
ZW5zaW9ucyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVz
dF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVu
c2lvbnMnXSA9ICgKLSAgICAgICAgICAgICdwZXJtZXNzYWdlLWNvbXByZXNzOyBtZXRob2Q9ZGVm
bGF0ZSwgLCAnCi0gICAgICAgICAgICAndW5rbm93bjsgZSAgID0gICAgIm1jXjIiOyBtYT0iXHJc
biAgICAgIFxcXHJmICAiOyBwdj1ucnQnKQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFr
ZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zKSkK
LSAgICAgICAgZmlyc3RfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9u
c1swXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWNvbXByZXNzJywgZmly
c3RfZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ21ldGhvZCdd
LCBmaXJzdF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl9uYW1lcygpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdkZWZsYXRlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9leHRl
bnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgnbWV0aG9kJykpCi0gICAgICAgIHNlY29uZF9leHRl
bnNpb24gPSByZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zWzFdCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ3Vua25vd24nLCBzZWNvbmRfZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIFsnZScsICdtYScsICdwdiddLCBzZWNvbmRf
ZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfbmFtZXMoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnbWNeMicsIHNlY29uZF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgnZScpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCcgXHJmICcsIHNlY29uZF9leHRlbnNpb24uZ2V0X3BhcmFt
ZXRlcl92YWx1ZSgnbWEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnbnJ0Jywgc2Vjb25k
X2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdwdicpKQotCi0gICAgZGVmIHRlc3RfZG9f
aGFuZHNoYWtlX3dpdGhfb3B0aW9uYWxfaGVhZGVycyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9k
ZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFk
ZXJzWydFbXB0eVZhbHVlJ10gPSAnJwotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydBS2V5
J10gPSAnQVZhbHVlJwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVz
dF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkK
LSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgJ0FWYWx1ZScsIHJlcXVlc3QuaGVhZGVyc19pblsnQUtleSddKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgJycsIHJlcXVlc3QuaGVhZGVy
c19pblsnRW1wdHlWYWx1ZSddKQotCi0gICAgZGVmIHRlc3RfYWJvcnRfZXh0cmFfaGFuZHNoYWtl
KHNlbGYpOgotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcigKLSAgICAgICAgICAgIF9j
cmVhdGVfcmVxdWVzdChfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKSksCi0gICAgICAgICAgICBB
Ym9ydGVkQnlVc2VyRGlzcGF0Y2hlcigpKQotICAgICAgICAjIGRvX2V4dHJhX2hhbmRzaGFrZSBy
YWlzZXMgYW4gQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbi4gQ2hlY2sgdGhhdCBpdCdzCi0gICAgICAg
ICMgbm90IGNhdWdodCBieSBkb19oYW5kc2hha2UuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KEFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQotCi0gICAg
ZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfbXV4X2FuZF9kZWZsYXRlX2ZyYW1lKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAg
IHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKCclcywg
JXMnICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAg
ICAgICAgIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikpCi0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3Jl
YXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2Uo
KQotICAgICAgICAjIG11eCBzaG91bGQgYmUgcmVqZWN0ZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMiwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzFd
Lm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKHJlcXVlc3QsICdtdXhf
cHJvY2Vzc29yJykpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9kZWZsYXRlX2Zy
YW1lX2FuZF9tdXgoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3Jl
cXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1F
eHRlbnNpb25zJ10gPSAoJyVzLCAlcycgJSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLkRFRkxB
VEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgIGNvbW1vbi5NVVhfRVhURU5TSU9O
KSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAg
ICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5k
c2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICMgbXV4IHNob3VsZCBiZSByZWplY3RlZC4K
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25zKSkK
LSAgICAgICAgZmlyc3RfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19leHRlbnNpb25zWzBdCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X2V4dGVuc2lvbi5uYW1lKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3Jz
WzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lP
TiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNz
b3JzWzFdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKHJlcXVlc3Qs
ICdtdXgnKSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3Blcm1lc3NhZ2VfY29t
cHJlc3NfYW5kX211eChzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2Rf
cmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0
LUV4dGVuc2lvbnMnXSA9ICgKLSAgICAgICAgICAgICclczsgbWV0aG9kPWRlZmxhdGUsICVzJyAl
ICgKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJ
T04sCi0gICAgICAgICAgICAgICAgY29tbW9uLk1VWF9FWFRFTlNJT04pKQotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0g
X2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNo
YWtlKCkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVu
c2lvbnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5NVVhfRVhURU5TSU9OLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXS5uYW1lKCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3By
b2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdFX0NP
TVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Lndz
X2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKGhhc2F0dHIocmVxdWVzdCwgJ211eF9wcm9jZXNzb3InKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKHJlcXVlc3QubXV4X3Byb2Nlc3Nvci5pc19hY3RpdmUoKSkKLSAgICAgICAgbXV4X2V4
dGVuc2lvbnMgPSByZXF1ZXN0Lm11eF9wcm9jZXNzb3IuZXh0ZW5zaW9ucygpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG11eF9leHRlbnNpb25zKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgbXV4X2V4dGVuc2lvbnNbMF0ubmFtZSgpKQotCi0gICAgZGVmIHRl
c3RfZG9faGFuZHNoYWtlX3dpdGhfbXV4X2FuZF9wZXJtZXNzYWdlX2NvbXByZXNzKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAg
IHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKAotICAg
ICAgICAgICAgJyVzLCAlczsgbWV0aG9kPWRlZmxhdGUnICUgKAotICAgICAgICAgICAgICAgIGNv
bW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0NP
TVBSRVNTSU9OX0VYVEVOU0lPTikpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
cmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVx
dWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICAjIG11eCBz
aG91bGQgYmUgcmVqZWN0ZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVl
c3Qud3NfZXh0ZW5zaW9ucykpCi0gICAgICAgIGZpcnN0X2V4dGVuc2lvbiA9IHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9uc1swXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdF
X0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9l
eHRlbnNpb24ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0
LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
b24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4
dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpKQot
Ci0gICAgZGVmIHRlc3RfYmFkX3JlcXVlc3RzKHNlbGYpOgotICAgICAgICBiYWRfY2FzZXMgPSBb
Ci0gICAgICAgICAgICAoJ0hUVFAgcmVxdWVzdCcsCi0gICAgICAgICAgICAgUmVxdWVzdERlZmlu
aXRpb24oCi0gICAgICAgICAgICAgICAgICdHRVQnLCAnL2RlbW8nLAotICAgICAgICAgICAgICAg
ICB7J0hvc3QnOiAnd3d3Lmdvb2dsZS5jb20nLAotICAgICAgICAgICAgICAgICAgJ1VzZXItQWdl
bnQnOgotICAgICAgICAgICAgICAgICAgICAgICdNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJ
bnRlbCBNYWMgT1MgWCAxMC41OycKLSAgICAgICAgICAgICAgICAgICAgICAnIGVuLVVTOyBydjox
LjkuMS4zKSBHZWNrby8yMDA5MDgyNCBGaXJlZm94LzMuNS4zJwotICAgICAgICAgICAgICAgICAg
ICAgICcgR1RCNiBHVEJBJywKLSAgICAgICAgICAgICAgICAgICdBY2NlcHQnOgotICAgICAgICAg
ICAgICAgICAgICAgICd0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9u
L3htbDtxPTAuOSwnCi0gICAgICAgICAgICAgICAgICAgICAgJyovKjtxPTAuOCcsCi0gICAgICAg
ICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogJ2VuLXVzLGVuO3E9MC41JywKLSAgICAgICAg
ICAgICAgICAgICdBY2NlcHQtRW5jb2RpbmcnOiAnZ3ppcCxkZWZsYXRlJywKLSAgICAgICAgICAg
ICAgICAgICdBY2NlcHQtQ2hhcnNldCc6ICdJU08tODg1OS0xLHV0Zi04O3E9MC43LCo7cT0wLjcn
LAotICAgICAgICAgICAgICAgICAgJ0tlZXAtQWxpdmUnOiAnMzAwJywKLSAgICAgICAgICAgICAg
ICAgICdDb25uZWN0aW9uJzogJ2tlZXAtYWxpdmUnfSksIE5vbmUsIFRydWUpXQotCi0gICAgICAg
IHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVz
dF9kZWYubWV0aG9kID0gJ1BPU1QnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBt
ZXRob2QnLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYg
PSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBkZWwgcmVxdWVzdF9kZWYuaGVh
ZGVyc1snSG9zdCddCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5nIEhvc3QnLCBy
ZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRl
X2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snVXBn
cmFkZSddCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5nIFVwZ3JhZGUnLCByZXF1
ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dv
b2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydVcGdyYWRlJ10g
PSAnbm9ud2Vic29ja2V0JwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgVXBncmFk
ZScsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9j
cmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJz
WydDb25uZWN0aW9uJ10KLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgQ29ubmVj
dGlvbicsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9
IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNb
J0Nvbm5lY3Rpb24nXSA9ICdEb3duZ3JhZGUnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdX
cm9uZyBDb25uZWN0aW9uJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJl
cXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgZGVsIHJlcXVl
c3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtS2V5J10KLSAgICAgICAgYmFkX2Nhc2VzLmFw
cGVuZCgoJ01pc3NpbmcgU2VjLVdlYlNvY2tldC1LZXknLCByZXF1ZXN0X2RlZiwgNDAwLCBUcnVl
KSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0g
ICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtS2V5J10gPSAoCi0gICAg
ICAgICAgICAnZEdobElITmhiWEJzWlNCdWIyNWpaUT09Z2FyYmFnZScpCi0gICAgICAgIGJhZF9j
YXNlcy5hcHBlbmQoKCdXcm9uZyBTZWMtV2ViU29ja2V0LUtleSAod2l0aCBnYXJiYWdlIG9uIHRo
ZSB0YWlsKScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRy
dWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkK
LSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICdZUT09
JyAgIyBCQVNFNjQgb2YgJ2EnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoCi0gICAgICAgICAg
ICAoJ1dyb25nIFNlYy1XZWJTb2NrZXQtS2V5IChkZWNvZGVkIHZhbHVlIGlzIG5vdCAxNiBvY3Rl
dHMgbG9uZyknLAotICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAg
ICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgIyBU
aGUgbGFzdCBjaGFyYWN0ZXIgcmlnaHQgYmVmb3JlID09IG11c3QgYmUgYW55IG9mIEEsIFEsIHcg
YW5kIGcuCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtS2V5J10g
PSAoCi0gICAgICAgICAgICAnQVFJREJBVUdCd2dKQ2dzTURRNFBFQz09JykKLSAgICAgICAgYmFk
X2Nhc2VzLmFwcGVuZCgKLSAgICAgICAgICAgICgnV3JvbmcgU2VjLVdlYlNvY2tldC1LZXkgKHBh
ZGRpbmcgYml0cyBhcmUgbm90IHplcm8pJywKLSAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAw
LCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2Rl
ZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtS2V5J10gPSAo
Ci0gICAgICAgICAgICAnZEdobElITmhiWEJzWlNCdWIyNWpaUT09LGRHaGxJSE5oYlhCc1pTQnVi
MjVqWlE9PScpCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoCi0gICAgICAgICAgICAoJ1dyb25n
IFNlYy1XZWJTb2NrZXQtS2V5IChtdWx0aXBsZSB2YWx1ZXMpJywKLSAgICAgICAgICAgICByZXF1
ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29v
ZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2Vi
U29ja2V0LVZlcnNpb24nXQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBTZWMt
V2ViU29ja2V0LVZlcnNpb24nLCByZXF1ZXN0X2RlZiwgTm9uZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVx
dWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVZl
cnNpb24nXSA9ICczJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgU2VjLVdlYlNv
Y2tldC1WZXJzaW9uJywgcmVxdWVzdF9kZWYsIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIEZhbHNlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0
X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtVmVyc2lv
biddID0gJzEzLCAxMycKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIFNlYy1XZWJT
b2NrZXQtVmVyc2lvbiAobXVsdGlwbGUgdmFsdWVzKScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2Ny
ZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbCddID0gJ2lsbGVnYWxceDA5cHJvdG9jb2wnCi0gICAgICAgIGJh
ZF9jYXNlcy5hcHBlbmQoKCdJbGxlZ2FsIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICBy
ZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3Rf
ZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnXSA9ICcnCi0gICAgICAgIGJhZF9j
YXNlcy5hcHBlbmQoKCdFbXB0eSBTZWMtV2ViU29ja2V0LVByb3RvY29sJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgZm9yIChj
YXNlX25hbWUsIHJlcXVlc3RfZGVmLCBleHBlY3RlZF9zdGF0dXMsCi0gICAgICAgICAgICAgZXhw
ZWN0X2hhbmRzaGFrZV9leGNlcHRpb24pIGluIGJhZF9jYXNlczoKLSAgICAgICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgICAgICBoYW5kc2hha2Vy
ID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAg
ICAgICAgICAgIHNlbGYuZmFpbCgnTm8gZXhjZXB0aW9uIHRocm93biBmb3IgXCclc1wnIGNhc2Un
ICUgY2FzZV9uYW1lKQotICAgICAgICAgICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiwgZToK
LSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0X2hhbmRzaGFrZV9leGNlcHRp
b24pCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9zdGF0dXMsIGUu
c3RhdHVzKQotICAgICAgICAgICAgZXhjZXB0IFZlcnNpb25FeGNlcHRpb24sIGU6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShleHBlY3RfaGFuZHNoYWtlX2V4Y2VwdGlvbikKLQot
Ci1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFr
ZV9oeWJpMDAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkwMC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNmOWYyN2NhMmQ5NDIxYjIzMDE1ZjU4Yzg5M2Fj
ZjFkYzAwOWRlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkwMC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDUxNiArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIw
MTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0KLSIiIlRlc3RzIGZvciBoYW5kc2hha2UuaHliaTAwIG1vZHVsZS4iIiIKLQotCi1pbXBv
cnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8g
bG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0Lmhh
bmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UuaHliaTAwIGltcG9ydCBIYW5kc2hha2VyCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UuaHliaTAwIGltcG9ydCBfdmFsaWRhdGVfc3VicHJvdG9jb2wKLWZyb20g
dGVzdCBpbXBvcnQgbW9jawotCi0KLV9URVNUX0tFWTEgPSAnNCBAMSAgNDY1NDZ4VyUwbCAxIDUn
Ci1fVEVTVF9LRVkyID0gJzEyOTk4IDUgWTMgMSAgLlAwMCcKLV9URVNUX0tFWTMgPSAnXm46ZHNb
NFUnCi1fVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UgPSAnOGpLU1wneTpHKkNvLFd4YS0nCi0KLQot
X0dPT0RfUkVRVUVTVCA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAg
IHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6
ICdVcGdyYWRlJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0g
ICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdy
YWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9L
RVkxLAotICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAg
ICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVFVRVNUX0NBUElUQUxJWkVEX0hFQURFUl9WQUxVRVMg
PSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdI
b3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVVBHUkFERScsCi0g
ICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnU2VjLVdl
YlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAnVXBncmFkZSc6ICdXRUJTT0NL
RVQnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAg
J09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykK
LQotX0dPT0RfUkVRVUVTVF9DQVNFX01JWEVEX0hFQURFUl9OQU1FUyA9ICgKLSAgICA4MCwKLSAg
ICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAgJ2hPc1QnOiAnZXhhbXBsZS5j
b20nLAotICAgICAgICAnY09uTmVDdElvTic6ICdVcGdyYWRlJywKLSAgICAgICAgJ3NFYy13RWJz
T2NLZVQta0V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdzRWMtd0Vic09jS2VULXBSb1RvQ29M
JzogJ3NhbXBsZScsCi0gICAgICAgICd1UGdSYURlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdz
RWMtd0Vic09jS2VULWtFeTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnb1JpR2lOJzogJ2h0dHA6
Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVNQT05T
RV9ERUZBVUxUX1BPUlQgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wg
SGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVj
dGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdzOi8vZXhh
bXBsZS5jb20vZGVtb1xyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhh
bXBsZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwot
ICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVNQ
T05TRV9TRUNVUkUgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFu
ZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlv
bjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdzczovL2V4YW1w
bGUuY29tL2RlbW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1w
bGUuY29tXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAg
ICAnXHJcbicgKwotICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0dPT0RfUkVRVUVT
VF9OT05ERUZBVUxUX1BPUlQgPSAoCi0gICAgODA4MSwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8n
LAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb206ODA4MScsCi0gICAgICAgICdD
b25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RF
U1RfS0VZMiwKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAg
ICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5
MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywK
LSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09EX1JFU1BPTlNFX05PTkRFRkFVTFRfUE9S
VCA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2Vcclxu
JwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRl
XHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3M6Ly9leGFtcGxlLmNvbTo4MDgx
L2RlbW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29t
XHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJc
bicgKwotICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0dPT0RfUkVTUE9OU0VfU0VD
VVJFX05PTkRFRiA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5k
c2hha2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9u
OiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3NzOi8vZXhhbXBs
ZS5jb206ODA4MS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9l
eGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4n
Ci0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9HT09EX1JF
UVVFU1RfTk9fUFJPVE9DT0wgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywK
LSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rp
b24nOiAnVXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVky
LAotICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNvY2tl
dC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5j
b20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQotX0dPT0RfUkVTUE9OU0VfTk9fUFJPVE9D
T0wgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJc
bicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFk
ZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdzOi8vZXhhbXBsZS5jb20vZGVt
b1xyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxu
JwotICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9S
RVFVRVNUX1dJVEhfT1BUSU9OQUxfSEVBREVSUyA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAg
ICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAg
ICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6
IF9URVNUX0tFWTIsCi0gICAgICAgICdFbXB0eVZhbHVlJzogJycsCi0gICAgICAgICdTZWMtV2Vi
U29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdBS2V5JzogJ0FWYWx1ZScsCi0g
ICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtl
eTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScs
Ci0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi0jIFRPRE8odHlvc2hpbm8pOiBJbmNsdWRlIFxy
IFxuIGluIGtleTMsIGNoYWxsZW5nZSByZXNwb25zZS4KLQotX0dPT0RfUkVRVUVTVF9XSVRIX05P
TlBSSU5UQUJMRV9LRVkgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAg
ICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24n
OiAnVXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiAneSAgUjIgNDggUTFP
NCAgZXxCVjMgaTUgMSAgdS0gNjUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6
ICdzYW1wbGUnLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2Vj
LVdlYlNvY2tldC1LZXkxJzogJzM2IDcgICA3NCBpICA5MiAyXCdtIDkgMEcnLAotICAgICAgICAn
T3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICAnJy5qb2luKG1hcChj
aHIsIFsweDAxLCAweGQxLCAweGRkLCAweDNiLCAweGQxLCAweDU2LCAweDYzLCAweGZmXSkpKQot
Ci1fR09PRF9SRVNQT05TRV9XSVRIX05PTlBSSU5UQUJMRV9LRVkgPSAoCi0gICAgJ0hUVFAvMS4x
IDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2Vi
U29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJT
b2NrZXQtTG9jYXRpb246IHdzOi8vZXhhbXBsZS5jb20vZGVtb1xyXG4nCi0gICAgJ1NlYy1XZWJT
b2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0
LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgJycuam9pbihtYXAoY2hy
LCBbMHgwYiwgMHg5OSwgMHhmYSwgMHg1NSwgMHhiZCwgMHgwMSwgMHgyMywgMHg3YiwKLSAgICAg
ICAgICAgICAgICAgICAgICAweDQ1LCAweGEyLCAweGYxLCAweGQwLCAweDg3LCAweDhhLCAweGVl
LCAweGViXSkpKQotCi1fR09PRF9SRVFVRVNUX1dJVEhfUVVFUllfUEFSVCA9ICgKLSAgICA4MCwK
LSAgICAnR0VUJywKLSAgICAnL2RlbW8/ZT1tYzInLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAn
ZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAg
J1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdTZWMtV2ViU29ja2V0
LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0g
ICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2lu
JzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09P
RF9SRVNQT05TRV9XSVRIX1FVRVJZX1BBUlQgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2Nr
ZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicK
LSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRp
b246IHdzOi8vZXhhbXBsZS5jb20vZGVtbz9lPW1jMlxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQt
T3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0LVByb3Rv
Y29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BP
TlNFKQotCi1fQkFEX1JFUVVFU1RTID0gKAotICAgICggICMgSFRUUCByZXF1ZXN0Ci0gICAgICAg
IDgwLAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAg
ICAgICAgJ0hvc3QnOiAnd3d3Lmdvb2dsZS5jb20nLAotICAgICAgICAgICAgJ1VzZXItQWdlbnQn
OiAnTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFggMTAuNTsnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICcgZW4tVVM7IHJ2OjEuOS4xLjMpIEdlY2tvLzIwMDkwODI0
IEZpcmVmb3gvMy41LjMnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcgR1RCNiBHVEJBJywK
LSAgICAgICAgICAgICdBY2NlcHQnOiAndGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxh
cHBsaWNhdGlvbi94bWw7cT0wLjksJwotICAgICAgICAgICAgICAgICAgICAgICcqLyo7cT0wLjgn
LAotICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6ICdlbi11cyxlbjtxPTAuNScsCi0gICAg
ICAgICAgICAnQWNjZXB0LUVuY29kaW5nJzogJ2d6aXAsZGVmbGF0ZScsCi0gICAgICAgICAgICAn
QWNjZXB0LUNoYXJzZXQnOiAnSVNPLTg4NTktMSx1dGYtODtxPTAuNywqO3E9MC43JywKLSAgICAg
ICAgICAgICdLZWVwLUFsaXZlJzogJzMwMCcsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdr
ZWVwLWFsaXZlJywKLSAgICAgICAgfSksCi0gICAgKCAgIyBXcm9uZyBtZXRob2QKLSAgICAgICAg
ODAsCi0gICAgICAgICdQT1NUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAg
ICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAn
VXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwK
LSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAg
ICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
S2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxl
LmNvbScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotICAgICggICMgTWlzc2lu
ZyBVcGdyYWRlCi0gICAgICAgIDgwLAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywK
LSAgICAgICAgewotICAgICAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAg
ICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1L
ZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzog
J3NhbXBsZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwK
LSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwK
LSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBXcm9uZyBVcGdyYWRlCi0gICAgICAgIDgw
LAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAg
ICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBn
cmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAg
ICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICAg
ICAnVXBncmFkZSc6ICdOb25XZWJTb2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
S2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxl
LmNvbScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotICAgICggICMgRW1wdHkg
V2ViU29ja2V0LVByb3RvY29sCi0gICAgICAgIDgwLAotICAgICAgICAnR0VUJywKLSAgICAgICAg
Jy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAot
ICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdl
YlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVBy
b3RvY29sJzogJycsCi0gICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3Jp
Z2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tF
WTMpLAotICAgICggICMgV3JvbmcgcG9ydCBudW1iZXIgZm9ybWF0Ci0gICAgICAgIDgwLAotICAg
ICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hv
c3QnOiAnZXhhbXBsZS5jb206MHg1MCcsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdy
YWRlJywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAg
ICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAg
ICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkx
JzogX1RFU1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29t
JywKLSAgICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBIZWFkZXIvY29u
bmVjdGlvbiBwb3J0IG1pc21hdGNoCi0gICAgICAgIDgwODAsCi0gICAgICAgICdHRVQnLAotICAg
ICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNv
bScsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdT
ZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tl
dCcsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAg
ICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAg
ICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBJbGxlZ2FsIFdlYlNvY2tldC1Qcm90b2NvbAotICAg
ICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAg
ICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9u
JzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tF
WTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdpbGxlZ2FsXHgwOXBy
b3RvY29sJywKLSAgICAgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICAg
ICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4n
OiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyks
Ci0pCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZik6Ci0gICAgZGF0YSA9ICcn
Ci0gICAgaWYgbGVuKHJlcXVlc3RfZGVmKSA+IDQ6Ci0gICAgICAgIGRhdGEgPSByZXF1ZXN0X2Rl
Zls0XQotICAgIGNvbm4gPSBtb2NrLk1vY2tDb25uKGRhdGEpCi0gICAgY29ubi5sb2NhbF9hZGRy
ID0gKCcwLjAuMC4wJywgcmVxdWVzdF9kZWZbMF0pCi0gICAgcmV0dXJuIG1vY2suTW9ja1JlcXVl
c3QoCi0gICAgICAgIG1ldGhvZD1yZXF1ZXN0X2RlZlsxXSwKLSAgICAgICAgdXJpPXJlcXVlc3Rf
ZGVmWzJdLAotICAgICAgICBoZWFkZXJzX2luPXJlcXVlc3RfZGVmWzNdLAotICAgICAgICBjb25u
ZWN0aW9uPWNvbm4pCi0KLQotZGVmIF9jcmVhdGVfZ2V0X21lbW9yaXplZF9saW5lcyhsaW5lcyk6
Ci0gICAgIiIiQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgZ2l2ZW4gc3RyaW5n
LiIiIgotCi0gICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoKToKLSAgICAgICAgcmV0dXJuIGxp
bmVzCi0gICAgcmV0dXJuIGdldF9tZW1vcml6ZWRfbGluZXMKLQotCi1kZWYgX2NyZWF0ZV9yZXF1
ZXN0c193aXRoX2xpbmVzKHJlcXVlc3RfbGluZXNfc2V0KToKLSAgICByZXF1ZXN0cyA9IFtdCi0g
ICAgZm9yIGxpbmVzIGluIHJlcXVlc3RfbGluZXNfc2V0OgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1QpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfbWVtb3JpemVkX2xpbmVzID0gX2NyZWF0ZV9nZXRfbWVtb3JpemVkX2xpbmVzKAotICAgICAg
ICAgICAgICAgIGxpbmVzKQotICAgICAgICByZXF1ZXN0cy5hcHBlbmQocmVxdWVzdCkKLSAgICBy
ZXR1cm4gcmVxdWVzdHMKLQotCi1jbGFzcyBIeUJpMDBIYW5kc2hha2VyVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3RfZGVmYXVsdF9wb3J0KHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1QpCi0gICAg
ICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIo
KSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKF9HT09EX1JFU1BPTlNFX0RFRkFVTFRfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJy9kZW1vJywgcmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnaHR0cDovL2V4YW1wbGUuY29tJywgcmVxdWVzdC53c19vcmlnaW4pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ3dzOi8vZXhhbXBsZS5jb20vZGVtbycsIHJlcXVlc3Qud3NfbG9j
YXRpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJv
dG9jb2wpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3RfY2FwaXRhbGl6ZWRfaGVhZGVyX3Zh
bHVlcyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFV
RVNUX0NBUElUQUxJWkVEX0hFQURFUl9WQUxVRVMpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5k
c2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtl
ci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNF
X0RFRkFVTFRfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3RfY2FzZV9taXhl
ZF9oZWFkZXJfbmFtZXMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
X0dPT0RfUkVRVUVTVF9DQVNFX01JWEVEX0hFQURFUl9OQU1FUykKLSAgICAgICAgaGFuZHNoYWtl
ciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBo
YW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0Rf
UkVTUE9OU0VfREVGQVVMVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9z
ZWN1cmVfZGVmYXVsdF9wb3J0KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KF9HT09EX1JFUVVFU1QpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5sb2NhbF9hZGRy
ID0gKCcwLjAuMC4wJywgNDQzKQotICAgICAgICByZXF1ZXN0LmlzX2h0dHBzXyA9IFRydWUKLSAg
ICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hl
cigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfU0VDVVJFLAotICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dvb2Rf
cmVxdWVzdF9ub25kZWZhdWx0X3BvcnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9OT05ERUZBVUxUX1BPUlQpCi0gICAgICAgIGhhbmRzaGFr
ZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9f
aGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9OT05E
RUZBVUxUX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1
ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X3NlY3VyZV9ub25f
ZGVmYXVsdF9wb3J0KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9H
T09EX1JFUVVFU1RfTk9OREVGQVVMVF9QT1JUKQotICAgICAgICByZXF1ZXN0LmlzX2h0dHBzXyA9
IFRydWUKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2Nr
RGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfU0VDVVJFX05PTkRFRiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAg
ICBkZWYgdGVzdF9nb29kX3JlcXVlc3RfZGVmYXVsdF9ub19wcm90b2NvbChzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX05PX1BST1RPQ09MKQot
ICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRj
aGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9OT19QUk9UT0NPTCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTm9uZSwgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dv
b2RfcmVxdWVzdF9vcHRpb25hbF9oZWFkZXJzKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfV0lUSF9PUFRJT05BTF9IRUFERVJTKQotICAgICAg
ICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkp
Ci0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnQVZhbHVlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNf
aW5bJ0FLZXknXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNfaW5bJ0VtcHR5VmFsdWUnXSkKLQotICAgIGRlZiB0
ZXN0X2dvb2RfcmVxdWVzdF93aXRoX25vbnByaW50YWJsZV9rZXkoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9XSVRIX05PTlBSSU5UQUJMRV9L
RVkpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rp
c3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1dJVEhfTk9OUFJJTlRBQkxFX0tFWSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wp
Ci0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfd2l0aF9xdWVyeV9wYXJ0KHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfV0lUSF9RVUVSWV9Q
QVJUKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tE
aXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9XSVRIX1FVRVJZX1BBUlQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCd3czovL2V4YW1wbGUuY29tL2RlbW8/ZT1tYzInLCByZXF1
ZXN0LndzX2xvY2F0aW9uKQotCi0gICAgZGVmIHRlc3RfYmFkX3JlcXVlc3RzKHNlbGYpOgotICAg
ICAgICBmb3IgcmVxdWVzdCBpbiBtYXAoX2NyZWF0ZV9yZXF1ZXN0LCBfQkFEX1JFUVVFU1RTKToK
LSAgICAgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rp
c3BhdGNoZXIoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2Vw
dGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hha2UpCi0KLQotY2xhc3MgSHlCaTAwVmFsaWRhdGVT
dWJwcm90b2NvbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X3ZhbGlkYXRl
X3N1YnByb3RvY29sKHNlbGYpOgotICAgICAgICAjIHNob3VsZCBzdWNjZWVkLgotICAgICAgICBf
dmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZScpCi0gICAgICAgIF92YWxpZGF0ZV9zdWJwcm90
b2NvbCgnU2FtcGxlJykKLSAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGVceDdl
cHJvdG9jb2wnKQotICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZVx4MjBwcm90
b2NvbCcpCi0KLSAgICAgICAgIyBzaG91bGQgZmFpbC4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBfdmFsaWRh
dGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcnKQotICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
J3NhbXBsZVx4MTlwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFr
ZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3Rv
Y29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHg3ZnByb3RvY29sJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICMgIkphcGFuIiBpbiBKYXBhbmVzZQotICAgICAgICAgICAgICAgICAgICAgICAgICB1
J1x1NjVlNVx1NjcyYycpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0
dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2h0dHBf
aGVhZGVyX3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzNmRjNTdjMzcz
MTA3MWZlMjkwMTkxOWUzM2YyNGMxYjU1OWY2MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2h0dHBfaGVhZGVyX3V0aWwu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24K
LSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBodHRwX2hlYWRlcl91dGlsIG1v
ZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IGh0dHBfaGVhZGVyX3V0aWwKLQotCi1jbGFzcyBVbml0VGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgaHR0cF9oZWFkZXJfdXRpbCBtb2R1bGUuIiIiCi0K
LSAgICBkZWYgdGVzdF9wYXJzZV9yZWxhdGl2ZV91cmkoc2VsZik6Ci0gICAgICAgIGhvc3QsIHBv
cnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJy93cy90ZXN0JykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBob3N0KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVz
b3VyY2UpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9hYnNvbHV0ZV91cmkoc2VsZik6Ci0gICAgICAg
IGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCi0gICAg
ICAgICAgICAnd3M6Ly9sb2NhbGhvc3Q6MTAwODAvd3MvdGVzdCcpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ2xvY2FsaG9zdCcsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAw
ODAsIHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3VyY2Up
Ci0KLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNl
X3VyaSgKLSAgICAgICAgICAgICd3czovL2V4YW1wbGUuY29tL3dzL3Rlc3QnKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdleGFtcGxlLmNvbScsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoODAsIHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVz
b3VyY2UpCi0KLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGls
LnBhcnNlX3VyaSgKLSAgICAgICAgICAgICd3c3M6Ly9leGFtcGxlLmNvbS8nKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdleGFtcGxlLmNvbScsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoNDQzLCBwb3J0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvJywgcmVzb3VyY2Up
Ci0KLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNl
X3VyaSgKLSAgICAgICAgICAgICd3czovL2V4YW1wbGUuY29tOjgwODAnKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdleGFtcGxlLmNvbScsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoODA4MCwgcG9ydCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnLycsIHJlc291cmNlKQot
Ci0gICAgZGVmIHRlc3RfcGFyc2VfaW52YWxpZF91cmkoc2VsZik6Ci0gICAgICAgIGhvc3QsIHBv
cnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJ3dzOi8vLycpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVzb3VyY2UpCi0KLSAgICAgICAgaG9zdCwgcG9y
dCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgnd3M6Ly9sb2NhbGhvc3Q6
JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXNvdXJjZSkKLQotICAgICAgICBo
b3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKCd3czovL2xv
Y2FsaG9zdDovd3MnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlc291cmNlKQot
Ci0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQot
IyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbWVtb3Jp
emluZ2ZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmMWI4ZWVmNDMzNzhhOWIwMDYyNWYyMjBjOTdmZTIy
Zjc0MGE4ZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MTA0ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiVGVzdHMgZm9yIG1lbW9yaXppbmdmaWxlIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgU3Ry
aW5nSU8KLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBz
eXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IG1lbW9yaXppbmdmaWxlCi0KLQotY2xhc3MgVXRpbFRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIG1lbW9yaXppbmdmaWxlIG1vZHVs
ZS4iIiIKLQotICAgIGRlZiBjaGVjayhzZWxmLCBtZW1vcml6aW5nX2ZpbGUsIG51bV9yZWFkLCBl
eHBlY3RlZF9saXN0KToKLSAgICAgICAgZm9yIHVudXNlZCBpbiByYW5nZShudW1fcmVhZCk6Ci0g
ICAgICAgICAgICBtZW1vcml6aW5nX2ZpbGUucmVhZGxpbmUoKQotICAgICAgICBhY3R1YWxfbGlz
dCA9IG1lbW9yaXppbmdfZmlsZS5nZXRfbWVtb3JpemVkX2xpbmVzKCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlzdCksIGxlbihhY3R1YWxfbGlzdCkpCi0gICAgICAg
IGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChleHBlY3RlZF9saXN0LCBhY3R1YWxfbGlzdCk6
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBhY3R1YWwpCi0KLSAgICBk
ZWYgY2hlY2tfd2l0aF9zaXplKHNlbGYsIG1lbW9yaXppbmdfZmlsZSwgcmVhZF9zaXplLCBleHBl
Y3RlZF9saXN0KToKLSAgICAgICAgcmVhZF9saXN0ID0gW10KLSAgICAgICAgcmVhZF9saW5lID0g
JycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGxpbmUgPSBtZW1vcml6aW5nX2Zp
bGUucmVhZGxpbmUocmVhZF9zaXplKQotICAgICAgICAgICAgbGluZV9sZW5ndGggPSBsZW4obGlu
ZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsaW5lX2xlbmd0aCA8PSByZWFkX3NpemUp
Ci0gICAgICAgICAgICBpZiBsaW5lX2xlbmd0aCA9PSAwOgotICAgICAgICAgICAgICAgIGlmIHJl
YWRfbGluZSAhPSAnJzoKLSAgICAgICAgICAgICAgICAgICAgcmVhZF9saXN0LmFwcGVuZChyZWFk
X2xpbmUpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIHJlYWRfbGluZSArPSBs
aW5lCi0gICAgICAgICAgICBpZiBsaW5lW2xpbmVfbGVuZ3RoIC0gMV0gPT0gJ1xuJzoKLSAgICAg
ICAgICAgICAgICByZWFkX2xpc3QuYXBwZW5kKHJlYWRfbGluZSkKLSAgICAgICAgICAgICAgICBy
ZWFkX2xpbmUgPSAnJwotICAgICAgICBhY3R1YWxfbGlzdCA9IG1lbW9yaXppbmdfZmlsZS5nZXRf
bWVtb3JpemVkX2xpbmVzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRf
bGlzdCksIGxlbihhY3R1YWxfbGlzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4
cGVjdGVkX2xpc3QpLCBsZW4ocmVhZF9saXN0KSkKLSAgICAgICAgZm9yIGV4cGVjdGVkLCBhY3R1
YWwsIHJlYWQgaW4gemlwKGV4cGVjdGVkX2xpc3QsIGFjdHVhbF9saXN0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9saXN0KToKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZXhwZWN0ZWQsIHJlYWQpCi0KLSAgICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVz
KHNlbGYpOgotICAgICAgICBtZW1vcml6aW5nX2ZpbGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6
aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygKLSAgICAgICAgICAgICAgICAnSGVsbG9cbldvcmxk
XG5XZWxjb21lJykpCi0gICAgICAgIHNlbGYuY2hlY2sobWVtb3JpemluZ19maWxlLCAzLCBbJ0hl
bGxvXG4nLCAnV29ybGRcbicsICdXZWxjb21lJ10pCi0KLSAgICBkZWYgdGVzdF9nZXRfbWVtb3Jp
emVkX2xpbmVzX2xpbWl0X21lbW9yaXplZF9saW5lcyhzZWxmKToKLSAgICAgICAgbWVtb3Jpemlu
Z19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5nSU8o
Ci0gICAgICAgICAgICAgICAgJ0hlbGxvXG5Xb3JsZFxuV2VsY29tZScpLCAyKQotICAgICAgICBz
ZWxmLmNoZWNrKG1lbW9yaXppbmdfZmlsZSwgMywgWydIZWxsb1xuJywgJ1dvcmxkXG4nXSkKLQot
ICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXNfZW1wdHlfZmlsZShzZWxmKToKLSAgICAg
ICAgbWVtb3JpemluZ19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoU3RyaW5n
SU8uU3RyaW5nSU8oCi0gICAgICAgICAgICAgICAgJycpKQotICAgICAgICBzZWxmLmNoZWNrKG1l
bW9yaXppbmdfZmlsZSwgMTAsIFtdKQotCi0gICAgZGVmIHRlc3RfZ2V0X21lbW9yaXplZF9saW5l
c193aXRoX3NpemUoc2VsZik6Ci0gICAgICAgIGZvciBzaXplIGluIHJhbmdlKDEsIDEwKToKLSAg
ICAgICAgICAgIG1lbW9yaXppbmdfZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxl
KFN0cmluZ0lPLlN0cmluZ0lPKAotICAgICAgICAgICAgICAgICdIZWxsb1xuV29ybGRcbldlbGNv
bWUnKSkKLSAgICAgICAgICAgIHNlbGYuY2hlY2tfd2l0aF9zaXplKG1lbW9yaXppbmdfZmlsZSwg
c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnSGVsbG9cbicsICdXb3Js
ZFxuJywgJ1dlbGNvbWUnXSkKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0
dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvdGVzdF9tb2NrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21vY2sucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkYzIzYTczZDhmYjFhMDdhZWIzZTVhZTk0MDJjYzg2Yjhm
Y2MzNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC90ZXN0X21vY2sucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgot
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBm
b3IgbW9jayBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IFF1ZXVlCi1pbXBvcnQgdGhyZWFkaW5nCi1p
bXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGgg
dG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gdGVzdCBpbXBvcnQgbW9j
awotCi0KLWNsYXNzIE1vY2tDb25uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1
bml0dGVzdCBmb3IgTW9ja0Nvbm4gY2xhc3MuIiIiCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0g
ICAgICAgIHNlbGYuX2Nvbm4gPSBtb2NrLk1vY2tDb25uKCdBQkNcclxuREVGR1xyXG5cclxuSElK
SycpCi0KLSAgICBkZWYgdGVzdF9yZWFkbGluZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnQUJDXHJcbicsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnREVGR1xyXG4nLCBzZWxmLl9jb25uLnJlYWRsaW5lKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1xyXG4nLCBzZWxmLl9jb25uLnJlYWRsaW5lKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ0hJSksnLCBzZWxmLl9jb25uLnJlYWRsaW5lKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJycsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLQotICAgIGRlZiB0ZXN0X3Jl
YWQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FCQ1xyXG5EJywgc2VsZi5fY29u
bi5yZWFkKDYpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdFRkdcclxuXHJcbkhJJywgc2Vs
Zi5fY29ubi5yZWFkKDkpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdKSycsIHNlbGYuX2Nv
bm4ucmVhZCgxMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIHNlbGYuX2Nvbm4ucmVh
ZCgxMCkpCi0KLSAgICBkZWYgdGVzdF9yZWFkX2FuZF9yZWFkbGluZShzZWxmKToKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnQUJDXHJcbkQnLCBzZWxmLl9jb25uLnJlYWQoNikpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ0VGR1xyXG4nLCBzZWxmLl9jb25uLnJlYWRsaW5lKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xyXG5ISUpLJywgc2VsZi5fY29ubi5yZWFkKDkpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLl9jb25uLnJlYWRsaW5lKCkpCi0KLSAgICBk
ZWYgdGVzdF93cml0ZShzZWxmKToKLSAgICAgICAgc2VsZi5fY29ubi53cml0ZSgnSGVsbG9cclxu
JykKLSAgICAgICAgc2VsZi5fY29ubi53cml0ZSgnV29ybGRcclxuJykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnSGVsbG9cclxuV29ybGRcclxuJywgc2VsZi5fY29ubi53cml0dGVuX2RhdGEo
KSkKLQotCi1jbGFzcyBNb2NrQmxvY2tpbmdDb25uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g
ICAgIiIiQSB1bml0dGVzdCBmb3IgTW9ja0Jsb2NraW5nQ29ubiBjbGFzcy4iIiIKLQotICAgIGRl
ZiB0ZXN0X3JlYWQoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRoYXQgZGF0YSBwdXQgdG8gTW9j
a0Jsb2NraW5nQ29ubiBieSBwdXRfYnl0ZXMgbWV0aG9kIGNhbiBiZQotICAgICAgICByZWFkIGZy
b20gaXQuCi0gICAgICAgICIiIgotCi0gICAgICAgIGNsYXNzIExpbmVSZWFkZXIodGhyZWFkaW5n
LlRocmVhZCk6Ci0gICAgICAgICAgICAiIiJBIHRlc3QgY2xhc3MgdGhhdCBsYXVuY2hlcyBhIHRo
cmVhZCwgY2FsbHMgcmVhZGxpbmUgb24gdGhlCi0gICAgICAgICAgICBzcGVjaWZpZWQgY29ubiBy
ZXBlYXRlZGx5IGFuZCBwdXRzIHRoZSByZWFkIGRhdGEgdG8gdGhlIHNwZWNpZmllZAotICAgICAg
ICAgICAgcXVldWUuCi0gICAgICAgICAgICAiIiIKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGNvbm4sIHF1ZXVlKToKLSAgICAgICAgICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9f
aW5pdF9fKHNlbGYpCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVldWUgPSBxdWV1ZQotICAgICAg
ICAgICAgICAgIHNlbGYuX2Nvbm4gPSBjb25uCi0gICAgICAgICAgICAgICAgc2VsZi5zZXREYWVt
b24oVHJ1ZSkKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXJ0KCkKLQotICAgICAgICAgICAgZGVm
IHJ1bihzZWxmKToKLSAgICAgICAgICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgICAg
ICAgICBkYXRhID0gc2VsZi5fY29ubi5yZWFkbGluZSgpCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX3F1ZXVlLnB1dChkYXRhKQotCi0gICAgICAgIGNvbm4gPSBtb2NrLk1vY2tCbG9ja2luZ0Nv
bm4oKQotICAgICAgICBxdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLSAgICAgICAgcmVhZGVyID0gTGlu
ZVJlYWRlcihjb25uLCBxdWV1ZSkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKHF1ZXVlLmVtcHR5
KCkpCi0gICAgICAgIGNvbm4ucHV0X2J5dGVzKCdGb28gYmFyXHJcbicpCi0gICAgICAgIHJlYWQg
PSBxdWV1ZS5nZXQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdGb28gYmFyXHJcbicsIHJl
YWQpCi0KLQotY2xhc3MgTW9ja1RhYmxlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIi
QSB1bml0dGVzdCBmb3IgTW9ja1RhYmxlIGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3RfY3JlYXRl
X2Zyb21fZGljdChzZWxmKToKLSAgICAgICAgdGFibGUgPSBtb2NrLk1vY2tUYWJsZSh7J0tleSc6
ICdWYWx1ZSd9KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgn
S0VZJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ2tleSddKQot
Ci0gICAgZGVmIHRlc3RfY3JlYXRlX2Zyb21fbGlzdChzZWxmKToKLSAgICAgICAgdGFibGUgPSBt
b2NrLk1vY2tUYWJsZShbKCdLZXknLCAnVmFsdWUnKV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLRVknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
VmFsdWUnLCB0YWJsZVsna2V5J10pCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVfZnJvbV90dXBsZShz
ZWxmKToKLSAgICAgICAgdGFibGUgPSBtb2NrLk1vY2tUYWJsZSgoKCdLZXknLCAnVmFsdWUnKSwp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ2tleSddKQotCi0gICAgZGVm
IHRlc3Rfc2V0X2FuZF9nZXQoc2VsZik6Ci0gICAgICAgIHRhYmxlID0gbW9jay5Nb2NrVGFibGUo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHRhYmxlLmdldCgnS2V5JykpCi0gICAg
ICAgIHRhYmxlWydLZXknXSA9ICdWYWx1ZScKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFs
dWUnLCB0YWJsZS5nZXQoJ0tleScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScs
IHRhYmxlLmdldCgna2V5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFi
bGUuZ2V0KCdLRVknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsn
S2V5J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ2tleSddKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlWydLRVknXSkKLQotCi1pZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3Rz
PTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21zZ3V0aWwucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L3Rlc3RfbXNndXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWZlZGNmOTJmNjFmZThjZDllNTYwZjI3NGE4OWEwM2I0M2E3MmJkYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbXNn
dXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDEzNTYgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYg
cHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgbXNndXRpbCBtb2R1
bGUuIiIiCi0KLQotaW1wb3J0IGFycmF5Ci1pbXBvcnQgUXVldWUKLWltcG9ydCByYW5kb20KLWlt
cG9ydCBzdHJ1Y3QKLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHpsaWIKLQotaW1wb3J0IHNldF9z
eXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1
bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vi
c29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3Nvcgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgUGVyTWVzc2FnZUNvbXByZXNz
RXh0ZW5zaW9uUHJvY2Vzc29yCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9y
dCBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQgaW1wb3J0IG1zZ3V0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgSW52
YWxpZFVURjhFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3Ry
ZWFtCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKLWZy
b20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZyb20gdGVzdCBpbXBvcnQgbW9jawotCi0KLSMgV2Ug
dXNlIG9uZSBmaXhlZCBub25jZSBmb3IgdGVzdGluZyBpbnN0ZWFkIG9mIGNyeXB0b2dyYXBoaWNh
bGx5IHNlY3VyZSBQUk5HLgotX01BU0tJTkdfTk9OQ0UgPSAnQUJDRCcKLQotCi1kZWYgX21hc2tf
aHliaShmcmFtZSk6Ci0gICAgZnJhbWVfa2V5ID0gbWFwKG9yZCwgX01BU0tJTkdfTk9OQ0UpCi0g
ICAgZnJhbWVfa2V5X2xlbiA9IGxlbihmcmFtZV9rZXkpCi0gICAgcmVzdWx0ID0gYXJyYXkuYXJy
YXkoJ0InKQotICAgIHJlc3VsdC5mcm9tc3RyaW5nKGZyYW1lKQotICAgIGNvdW50ID0gMAotICAg
IGZvciBpIGluIHhyYW5nZShsZW4ocmVzdWx0KSk6Ci0gICAgICAgIHJlc3VsdFtpXSBePSBmcmFt
ZV9rZXlbY291bnRdCi0gICAgICAgIGNvdW50ID0gKGNvdW50ICsgMSkgJSBmcmFtZV9rZXlfbGVu
Ci0gICAgcmV0dXJuIF9NQVNLSU5HX05PTkNFICsgcmVzdWx0LnRvc3RyaW5nKCkKLQotCi1kZWYg
X2luc3RhbGxfZXh0ZW5zaW9uX3Byb2Nlc3Nvcihwcm9jZXNzb3IsIHJlcXVlc3QsIHN0cmVhbV9v
cHRpb25zKToKLSAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNl
KCkKLSAgICBpZiByZXNwb25zZSBpcyBub3QgTm9uZToKLSAgICAgICAgcHJvY2Vzc29yLnNldHVw
X3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb25zKQotICAgICAgICByZXF1ZXN0LndzX2V4dGVu
c2lvbl9wcm9jZXNzb3JzLmFwcGVuZChwcm9jZXNzb3IpCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVz
dF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgIHJlYWRfZGF0YSwKLSAgICAgICAgZGVmbGF0ZV9mcmFt
ZV9yZXF1ZXN0PU5vbmUsCi0gICAgICAgIHBlcm1lc3NhZ2VfY29tcHJlc3Npb25fcmVxdWVzdD1O
b25lLAotICAgICAgICBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1Ob25lKToKLSAgICByZXEg
PSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignJy5qb2luKHJlYWRf
ZGF0YSkpKQotICAgIHJlcS53c192ZXJzaW9uID0gY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QK
LSAgICByZXEud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBbXQotCi0gICAgcHJvY2Vzc29yID0g
Tm9uZQotICAgIGlmIGRlZmxhdGVfZnJhbWVfcmVxdWVzdCBpcyBub3QgTm9uZToKLSAgICAgICAg
cHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGRlZmxhdGVfZnJhbWVf
cmVxdWVzdCkKLSAgICBlbGlmIHBlcm1lc3NhZ2VfY29tcHJlc3Npb25fcmVxdWVzdCBpcyBub3Qg
Tm9uZToKLSAgICAgICAgcHJvY2Vzc29yID0gUGVyTWVzc2FnZUNvbXByZXNzRXh0ZW5zaW9uUHJv
Y2Vzc29yKAotICAgICAgICAgICAgICAgIHBlcm1lc3NhZ2VfY29tcHJlc3Npb25fcmVxdWVzdCkK
LSAgICBlbGlmIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0IGlzIG5vdCBOb25lOgotICAgICAg
ICBwcm9jZXNzb3IgPSBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAg
ICAgICAgICAgICBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdCkKLQotICAgIHN0cmVhbV9vcHRp
b25zID0gU3RyZWFtT3B0aW9ucygpCi0gICAgaWYgcHJvY2Vzc29yIGlzIG5vdCBOb25lOgotICAg
ICAgICBfaW5zdGFsbF9leHRlbnNpb25fcHJvY2Vzc29yKHByb2Nlc3NvciwgcmVxLCBzdHJlYW1f
b3B0aW9ucykKLSAgICByZXEud3Nfc3RyZWFtID0gU3RyZWFtKHJlcSwgc3RyZWFtX29wdGlvbnMp
Ci0KLSAgICByZXR1cm4gcmVxCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdCgqZnJhbWVzKToKLSAg
ICAiIiJDcmVhdGVzIE1vY2tSZXF1ZXN0IHVzaW5nIGRhdGEgZ2l2ZW4gYXMgZnJhbWVzLgotCi0g
ICAgZnJhbWVzIHdpbGwgYmUgcmV0dXJuZWQgb24gY2FsbGluZyByZXF1ZXN0LmNvbm5lY3Rpb24u
cmVhZCgpIHdoZXJlIHJlcXVlc3QKLSAgICBpcyBNb2NrUmVxdWVzdCByZXR1cm5lZCBieSB0aGlz
IGZ1bmN0aW9uLgotICAgICIiIgotCi0gICAgcmVhZF9kYXRhID0gW10KLSAgICBmb3IgKGhlYWRl
ciwgYm9keSkgaW4gZnJhbWVzOgotICAgICAgICByZWFkX2RhdGEuYXBwZW5kKGhlYWRlciArIF9t
YXNrX2h5YmkoYm9keSkpCi0KLSAgICByZXR1cm4gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0
YShyZWFkX2RhdGEpCi0KLQotZGVmIF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpOgotICAgICIi
IkNyZWF0ZXMgTW9ja1JlcXVlc3QuCi0KLSAgICBEYXRhIHdyaXR0ZW4gdG8gYSBNb2NrUmVxdWVz
dCBjYW4gYmUgcmVhZCBvdXQgYnkgY2FsbGluZwotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0
dGVuX2RhdGEoKS4KLSAgICAiIiIKLQotICAgIHJlcSA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVj
dGlvbj1tb2NrLk1vY2tCbG9ja2luZ0Nvbm4oKSkKLSAgICByZXEud3NfdmVyc2lvbiA9IGNvbW1v
bi5WRVJTSU9OX0hZQklfTEFURVNUCi0gICAgc3RyZWFtX29wdGlvbnMgPSBTdHJlYW1PcHRpb25z
KCkKLSAgICByZXEud3Nfc3RyZWFtID0gU3RyZWFtKHJlcSwgc3RyZWFtX29wdGlvbnMpCi0gICAg
cmV0dXJuIHJlcQotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NShyZWFkX2RhdGE9Jycp
OgotICAgIHJlcSA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKHJl
YWRfZGF0YSkpCi0gICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUocmVxKQotICAgIHJl
dHVybiByZXEKLQotCi1kZWYgX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKToKLSAg
ICByZXEgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQmxvY2tpbmdDb25u
KCkpCi0gICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUocmVxKQotICAgIHJldHVybiBy
ZXEKLQotCi1jbGFzcyBCYXNpY01lc3NhZ2VUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAi
IiJCYXNpYyB0ZXN0cyBmb3IgU3RyZWFtLiIiIgotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdl
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnXHg4MVx4MDVIZWxsbycsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkK
LQotICAgICAgICBwYXlsb2FkID0gJ2EnICogMTI1Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2Fk
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHg3ZCcgKyBwYXlsb2FkLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQot
ICAgIGRlZiB0ZXN0X3NlbmRfbWVkaXVtX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHBheWxvYWQg
PSAnYScgKiAxMjYKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAg
IG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWQpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4ODFceDdlXHgwMFx4N2UnICsgcGF5bG9hZCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcGF5
bG9hZCA9ICdhJyAqICgoMSA8PCAxNikgLSAxKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4N2VceGZmXHhmZicgKyBwYXlsb2FkLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEo
KSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbGFyZ2VfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcGF5
bG9hZCA9ICdhJyAqICgxIDw8IDE2KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAw
XHgwMCcgKyBwYXlsb2FkLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV91bmljb2Rl
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgdSdcdTY1ZTUnKQotICAgICAgICAjIFUrNjVlNSBp
cyBlbmNvZGVkIGFzIGU2LDk3LGE1IGluIFVURi04Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1x4ODFceDAzXHhlNlx4OTdceGE1JywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Vf
ZnJhZ21lbnRzKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAg
ICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgRmFsc2UpCi0gICAg
ICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcgJywgRmFsc2UpCi0gICAgICAgIG1z
Z3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcsIEZhbHNlKQotICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnIScsIFRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1x4MDFceDA1SGVsbG9ceDAwXHgwMSBceDAwXHgwNVdvcmxkXHg4MFx4MDEhJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkp
Ci0KLSAgICBkZWYgdGVzdF9zZW5kX2ZyYWdtZW50c19pbW1lZGlhdGVfemVyb190ZXJtaW5hdGlv
bihzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1z
Z3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbyBXb3JsZCEnLCBGYWxzZSkKLSAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycsIFRydWUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1x4MDFceDBjSGVsbG8gV29ybGQhXHg4MFx4MDAnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRl
ZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4MVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4Nics
ICdXb3JsZCEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQh
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgcGF5bG9hZCA9
ICdhJyAqIDEyNQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ZmQn
LCBwYXlsb2FkKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVkaXVtX21l
c3NhZ2Uoc2VsZik6Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAxMjYKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFceGZlXHgwMFx4N2UnLCBwYXlsb2FkKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KSkKLQotICAgICAgICBwYXlsb2FkID0gJ2EnICogKCgxIDw8IDE2KSAtIDEpCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHhmZVx4ZmZceGZmJywgcGF5bG9hZCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3Nh
Z2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2xhcmdlX21lc3NhZ2Uoc2VsZik6
Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAoMSA8PCAxNikKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4MVx4ZmZceDAwXHgwMFx4MDBceDAwXHgw
MFx4MDFceDAwXHgwMCcsIHBheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxv
YWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVj
ZWl2ZV9sZW5ndGhfbm90X2VuY29kZWRfdXNpbmdfbWluaW1hbF9udW1iZXJfb2ZfYnl0ZXMoc2Vs
Zik6Ci0gICAgICAgICMgTG9nIHdhcm5pbmcgb24gcmVjZWl2aW5nIGJhZCBwYXlsb2FkIGxlbmd0
aCBmaWVsZCB0aGF0IGRvZXNuJ3QgdXNlCi0gICAgICAgICMgbWluaW1hbCBudW1iZXIgb2YgYnl0
ZXMgYnV0IGNvbnRpbnVlIHByb2Nlc3NpbmcuCi0KLSAgICAgICAgcGF5bG9hZCA9ICdhJwotICAg
ICAgICAjIDEgYnl0ZSBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aG91dCBleHRlbmRlZCBwYXlsb2Fk
IGxlbmd0aCBmaWVsZC4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAg
ICAgICAgICgnXHg4MVx4ZmZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMScsIHBheWxv
YWQpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3VuaWNvZGUo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHg4MycsICdc
eGU2XHg5Y1x4YWMnKSkKLSAgICAgICAgIyBVKzY3MmMgaXMgZW5jb2RlZCBhcyBlNiw5YyxhYyBp
biBVVEYtOAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUnXHU2NzJjJywgbXNndXRpbC5yZWNl
aXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfZXJy
b25lb3VzX3VuaWNvZGUoc2VsZik6Ci0gICAgICAgICMgXHg4MCBhbmQgXHg4MSBhcmUgaW52YWxp
ZCBhcyBVVEYtOC4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFceDgy
JywgJ1x4ODBceDgxJykpCi0gICAgICAgICMgSW52YWxpZCBjaGFyYWN0ZXJzIHNob3VsZCByYWlz
ZSBJbnZhbGlkVVRGOEV4Y2VwdGlvbgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlk
VVRGOEV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYg
dGVzdF9yZWNlaXZlX2ZyYWdtZW50cyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgKLSAgICAgICAgICAgICgnXHgwMVx4ODUnLCAnSGVsbG8nKSwKLSAgICAgICAgICAg
ICgnXHgwMFx4ODEnLCAnICcpLAotICAgICAgICAgICAgKCdceDAwXHg4NScsICdXb3JsZCcpLAot
ICAgICAgICAgICAgKCdceDgwXHg4MScsICchJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J0hlbGxvIFdvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAg
ZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfdW5pY29kZShzZWxmKToKLSAgICAgICAgIyBVVEYt
OCBlbmNvZGVzIFUrNmYyMiBpbnRvIGU2YmNhMiBhbmQgVSs1YjU3IGludG8gZTVhZDk3LgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDAxXHg4Mics
ICdceGU2XHhiYycpLAotICAgICAgICAgICAgKCdceDAwXHg4MicsICdceGEyXHhlNScpLAotICAg
ICAgICAgICAgKCdceDgwXHg4MicsICdceGFkXHg5NycpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHUnXHU2ZjIyXHU1YjU3JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0K
LSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c19pbW1lZGlhdGVfemVyb190ZXJtaW5hdGlv
bihzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAg
ICgnXHgwMVx4OGMnLCAnSGVsbG8gV29ybGQhJyksICgnXHg4MFx4ODAnLCAnJykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfZHVwbGljYXRlX3N0
YXJ0KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAg
ICAgKCdceDAxXHg4NScsICdIZWxsbycpLCAoJ1x4MDFceDg1JywgJ1dvcmxkJykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRz
X2ludGVybWVkaWF0ZV9idXRfbm90X3N0YXJ0ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QoKCdceDAwXHg4NScsICdIZWxsbycpKQotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c19lbmRfYnV0X25v
dF9zdGFydGVkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4
MFx4ODUnLCAnSGVsbG8nKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZh
bGlkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAg
ZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Rpc2NhcmQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4OGZceDg2JywgJ0lHTk9SRScpLCAo
J1x4ODFceDg1JywgJ0hlbGxvJyksCi0gICAgICAgICAgICAoJ1x4OGZceDg5JywgJ0RJU1JFR0FS
RCcpLCAoJ1x4ODFceDg2JywgJ1dvcmxkIScpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyht
c2d1dGlsLlVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLCByZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLlVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLCByZXF1ZXN0
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVz
c2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfY2xvc2Uoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODhceDhhJywg
c3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgxMDAwLCByZXF1ZXN0LndzX2Nsb3NlX2NvZGUpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ0dvb2QgYnllJywgcmVxdWVzdC53c19jbG9zZV9yZWFzb24pCi0KLSAg
ICBkZWYgdGVzdF9zZW5kX2xvbmdlc3RfY2xvc2Uoc2VsZik6Ci0gICAgICAgIHJlYXNvbiA9ICdh
JyAqIDEyMwotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAg
KCdceDg4XHhmZCcsCi0gICAgICAgICAgICAgc3RydWN0LnBhY2soJyFIJywgY29tbW9uLlNUQVRV
U19OT1JNQUxfQ0xPU1VSRSkgKyByZWFzb24pKQotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5j
bG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJlcXVlc3Qud3NfY2xvc2VfY29kZSwgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xP
U1VSRSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbiwg
cmVhc29uKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9jbG9zZV90b29fbG9uZyhzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBTdHJlYW0uY2xvc2VfY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC53c19zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNf
Tk9STUFMX0NMT1NVUkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdhJyAqIDEyNCkKLQot
ICAgIGRlZiB0ZXN0X3NlbmRfY2xvc2VfaW5jb25zaXN0ZW50X2NvZGVfYW5kX3JlYXNvbihzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgICMgcmVhc29u
IHBhcmFtZXRlciBtdXN0IG5vdCBiZSBzcGVjaWZpZWQgd2hlbiBjb2RlIGlzIE5vbmUuCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW0uY2xvc2VfY29ubmVjdGlvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdhJykKLQotICAgIGRlZiB0
ZXN0X3NlbmRfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgp
Ci0gICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nKHJlcXVlc3QsICdIZWxsbyBXb3JsZCEnKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHgwY0hlbGxvIFdvcmxkIScsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAg
ZGVmIHRlc3Rfc2VuZF9sb25nZXN0X3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnYScgKiAx
MjUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODlceDdkJyArICdhJyAqIDEyNSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkp
Ci0KLSAgICBkZWYgdGVzdF9zZW5kX3BpbmdfdG9vX2xvbmcoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGls
LkJhZE9wZXJhdGlvbkV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRp
bC5zZW5kX3BpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICdhJyAqIDEyNikKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfcGlu
ZyhzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgcmVjZWl2aW5nIGEgcGluZyBjb250cm9sIGZyYW1l
LiIiIgotCi0gICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIG1lc3NhZ2UpOgotICAgICAgICAg
ICAgcmVxdWVzdC5jYWxsZWQgPSBUcnVlCi0KLSAgICAgICAgIyBTdHJlYW0gYXV0b21hdGljYWxs
eSByZXNwb25kIHRvIHBpbmcgd2l0aCBwb25nIHdpdGhvdXQgYW55IGFjdGlvbgotICAgICAgICAj
IGJ5IGFwcGxpY2F0aW9uIGxheWVyLgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
KAotICAgICAgICAgICAgKCdceDg5XHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxk
JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21l
c3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4OGFceDA1SGVsbG8n
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAg
KCdceDg5XHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIHJl
cXVlc3Qub25fcGluZ19oYW5kbGVyID0gaGFuZGxlcgotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUocmVxdWVzdC5jYWxsZWQpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2xvbmdl
c3RfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAg
ICAgICAgICgnXHg4OVx4ZmQnLCAnYScgKiAxMjUpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Uo
cmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4OGFceDdkJyArICdhJyAqIDEy
NSwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9k
YXRhKCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX3BpbmdfdG9vX2xvbmcoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDg5XHhmZVx4MDBceDdlJywgJ2EnICog
MTI2KSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNl
cHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVj
ZWl2ZV9wb25nKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyByZWNlaXZpbmcgYSBwb25nIGNvbnRy
b2wgZnJhbWUuIiIiCi0KLSAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgbWVzc2FnZSk6Ci0g
ICAgICAgICAgICByZXF1ZXN0LmNhbGxlZCA9IFRydWUKLQotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDhhXHg4NScsICdIZWxsbycpLCAoJ1x4ODFc
eDg1JywgJ1dvcmxkJykpCi0gICAgICAgIHJlcXVlc3Qub25fcG9uZ19oYW5kbGVyID0gaGFuZGxl
cgotICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdceDg5XHgwNUhlbGxvJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgICMgVmFsaWQgcG9u
ZyBpcyByZWNlaXZlZCwgYnV0IHJlY2VpdmVfbWVzc2FnZSB3b24ndCByZXR1cm4gZm9yIGl0Lgot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpKQotICAgICAgICAjIENoZWNrIHRoYXQgbm90aGluZyB3YXMgd3JpdHRlbiBhZnRl
ciByZWNlaXZlX21lc3NhZ2UgY2FsbC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4OVx4
MDVIZWxsbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0LmNhbGxlZCkK
LQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfdW5zb2xpY2l0ZWRfcG9uZyhzZWxmKToKLSAgICAgICAg
IyBVbnNvbGljaXRlZCBwb25nIGlzIGFsbG93ZWQgZnJvbSBIeUJpIDA3LgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDhhXHg4NScsICdIZWxsbycp
LCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAg
ICAgICgnXHg4YVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAg
ICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnSnVtYm8nKQotICAgICAgICAjIEJvZHkgbWlz
bWF0Y2guCi0gICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpCi0KLSAgICBk
ZWYgdGVzdF9waW5nX2Nhbm5vdF9iZV9mcmFnbWVudGVkKHNlbGYpOgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHgwOVx4ODUnLCAnSGVsbG8nKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcGluZ193aXRoX3Rvb19sb25nX3BheWxv
YWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDg5XHhmZVx4
MDFceDAwJywgJ2EnICogMjU2KSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5J
bnZhbGlkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0K
LWNsYXNzIERlZmxhdGVGcmFtZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3Rz
IGZvciBjaGVja2luZyBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbi4iIiIKLQotICAgIGRlZiB0ZXN0
X3NlbmRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2Jq
KAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQs
IC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAnJywgZGVmbGF0
ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2Uo
cmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwg
J1dvcmxkJykKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29tcHJlc3NlZF9o
ZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVs
bG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4
YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJl
c3NlZF9oZWxsbwotCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVz
cygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93
b3JsZFs6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRf
d29ybGQpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKLQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfYmZpbmFsKHNlbGYpOgotICAgICAgICBl
eHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1F
X0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2Rh
dGEoCi0gICAgICAgICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nl
c3NvcnMpKQotICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3NvciA9IHJlcXVlc3Qud3NfZXh0
ZW5zaW9uX3Byb2Nlc3NvcnNbMF0KLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3Iuc2V0
X2JmaW5hbChUcnVlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVs
bG8nKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnKQotCi0g
ICAgICAgIGV4cGVjdGVkID0gJycKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3Nv
YmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRF
RCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Mu
Y29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5m
bHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Nl
ZF9oZWxsbyArIGNocigwKQotICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21w
cmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0KLSAg
ICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RF
RkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAg
ICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAg
IGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAg
ICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGQgKyBjaHIoMCkKLSAgICAgICAg
ZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKLSAgICAgICAgZXhw
ZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhw
ZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0
X3NlbmRfbWVzc2FnZV9jb21wX2JpdChzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNv
bXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIu
REVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAn
JywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBk
ZWZsYXRlX2ZyYW1lX3Byb2Nlc3NvciA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNb
MF0KLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAg
ICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3IuZGlzYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbigp
Ci0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAg
IGRlZmxhdGVfZnJhbWVfcHJvY2Vzc29yLmVuYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbigpCi0g
ICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0KLSAgICAgICAg
ZXhwZWN0ZWQgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21w
cmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNo
KHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Nl
ZF9oZWxsb1s6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNz
ZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAg
ICBleHBlY3RlZCArPSAnXHg4MVx4MDVIZWxsbycKLQotICAgICAgICBjb21wcmVzc2VkXzJuZF9o
ZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfMm5k
X2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21w
cmVzc2VkXzJuZF9oZWxsbyA9IGNvbXByZXNzZWRfMm5kX2hlbGxvWzotNF0KLSAgICAgICAgZXhw
ZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF8ybmRfaGVsbG8pCi0gICAgICAgIGV4
cGVjdGVkICs9IGNvbXByZXNzZWRfMm5kX2hlbGxvCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVm
IHRlc3Rfc2VuZF9tZXNzYWdlX25vX2NvbnRleHRfdGFrZW92ZXJfcGFyYW1ldGVyKHNlbGYpOgot
ICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpf
REVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0g
ICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxB
VEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbm9f
Y29udGV4dF90YWtlb3ZlcicsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1l
eHRlbnNpb24pCi0gICAgICAgIGZvciBpIGluIHhyYW5nZSgzKToKLSAgICAgICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0KLSAgICAgICAgY29tcHJlc3NlZF9t
ZXNzYWdlID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9t
ZXNzYWdlICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21w
cmVzc2VkX21lc3NhZ2UgPSBjb21wcmVzc2VkX21lc3NhZ2VbOi00XQotICAgICAgICBleHBlY3Rl
ZCA9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfbWVzc2FnZSkKLSAgICAgICAgZXhwZWN0ZWQg
Kz0gY29tcHJlc3NlZF9tZXNzYWdlCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgIGV4cGVjdGVkICsgZXhwZWN0ZWQgKyBleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfYmFkX3JlcXVlc3RfcGFyYW1ldGVycyhz
ZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCBpZiB0aGVyZSdzIGFueXRoaW5nIHdyb25nIHdp
dGggZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24KLSAgICAgICAgcmVxdWVzdCwgZGVmbGF0ZS1mcmFt
ZSBpcyByZWplY3RlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAg
ICAgICMgbWF4X3dpbmRvd19iaXRzIGxlc3MgdGhhbiA4IGlzIGlsbGVnYWwuCi0gICAgICAgIGV4
dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnNycpCi0gICAgICAgIHBy
b2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9u
c2UoKSkKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNv
bW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgIyBtYXhfd2luZG93X2JpdHMg
Z3JlYXRlciB0aGFuIDE1IGlzIGlsbGVnYWwuCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1l
dGVyKCdtYXhfd2luZG93X2JpdHMnLCAnMTYnKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRl
RnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICAgICAg
ZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFN
RV9FWFRFTlNJT04pCi0gICAgICAgICMgTm9uIGludGVnZXIgbWF4X3dpbmRvd19iaXRzIGlzIGls
bGVnYWwuCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMn
LCAnZm9vYmFyJykKLSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJv
Y2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwcm9jZXNz
b3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1v
bi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAg
ICAgICAjIG5vX2NvbnRleHRfdGFrZW92ZXIgbXVzdCBub3QgaGF2ZSBhbnkgdmFsdWUuCi0gICAg
ICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVyJywgJ2Zvb2Jh
cicpCi0gICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3Nvcihl
eHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9l
eHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3BhcmFtZXRlcnMo
c2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29t
bW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRl
RnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBwcm9jZXNzb3Iuc2V0
X3Jlc3BvbnNlX3dpbmRvd19iaXRzKDgpCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdl
dF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2Uu
aGFzX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJzgnLCByZXNwb25zZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdtYXhfd2luZG93X2JpdHMnKSkK
LQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5E
RUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1l
RXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAgcHJvY2Vzc29yLnNldF9yZXNw
b25zZV9ub19jb250ZXh0X3Rha2VvdmVyKFRydWUpCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vz
c29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVz
cG9uc2UuaGFzX3BhcmFtZXRlcignbm9fY29udGV4dF90YWtlb3ZlcicpKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUoCi0gICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdu
b19jb250ZXh0X3Rha2VvdmVyJykgaXMgTm9uZSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVz
c2FnZShzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAg
ICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1B
WF9XQklUUykKLQotICAgICAgICBkYXRhID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyAr
PSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9o
ZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUg
KGxlbihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHli
aShjb21wcmVzc2VkX2hlbGxvKQotCi0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ID0gY29t
cHJlc3MuY29tcHJlc3MoJ1dlYlNvY2tldCcpCi0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd2Vi
c29ja2V0ICs9ICdceDAwJwotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVz
c2VkX3dlYnNvY2tldCkgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJl
c3NlZF93ZWJzb2NrZXQpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAot
ICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16
bGliLk1BWF9XQklUUykKLQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29t
cHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVz
aCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNz
ZWRfd29ybGRbOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2Vk
X3dvcmxkKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3dv
cmxkKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEn
ICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFU
RV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJv
bV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVu
c2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVf
bWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV2ViU29ja2V0Jywg
bXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkK
LQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9jbGllbnRfdXNpbmdfc21hbGxlcl93aW5k
b3coc2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhhdCBmcmFtZXMgY29taW5nIGZyb20gYSBjbGll
bnQgd2hpY2ggaXMgdXNpbmcgc21hbGxlciB3aW5kb3cKLSAgICAgICAgc2l6ZSB0aGF0IHRoZSBz
ZXJ2ZXIgYXJlIGNvcnJlY3RseSByZWNlaXZlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBV
c2luZyB0aGUgc21hbGxlc3Qgd2luZG93IGJpdHMgb2YgOCBmb3IgZ2VuZXJhdGluZyBpbnB1dCBm
cmFtZXMuCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAg
IHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtOCkKLQotICAgICAg
ICBkYXRhID0gJycKLQotICAgICAgICAjIFVzZSBhIGZyYW1lIHdob3NlIGNvbnRlbnQgaXMgYmln
Z2VyIHRoYW4gdGhlIGNsaWVudHMnIERFRkxBVEUgd2luZG93Ci0gICAgICAgICMgc2l6ZSBiZWZv
cmUgY29tcHJlc3Npb24uIFRoZSBjb250ZW50IG1haW5seSBjb25zaXN0cyBvZiAnYScgYnV0Ci0g
ICAgICAgICMgcmVwZXRpdGlvbiBvZiAnYicgaXMgcHV0IGF0IHRoZSBoZWFkIGFuZCB0YWlsIHNv
IHRoYXQgaWYgdGhlIHdpbmRvdwotICAgICAgICAjIHNpemUgaXMgYmlnLCB0aGUgaGVhZCBpcyBi
YWNrLXJlZmVyZW5jZWQgYnV0IGlmIHNtYWxsLCBub3QuCi0gICAgICAgIHBheWxvYWQgPSAnYicg
KiA2NCArICdhJyAqIDEwMjQgKyAnYicgKiA2NAotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3MuY29tcHJlc3MocGF5bG9hZCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxl
bihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShj
b21wcmVzc2VkX2hlbGxvKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSAr
PSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29k
IGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihj
b21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9mcmFtZV9y
ZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3Rf
cmVjZWl2ZV9tZXNzYWdlX2NvbXBfYml0KHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIu
Y29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxp
Yi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQot
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAg
IGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAg
ICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgZGF0YSAr
PSAnXHg4MVx4ODUnICsgX21hc2tfaHliaSgnSGVsbG8nKQotCi0gICAgICAgIGNvbXByZXNzID0g
emxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9O
LCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF8y
bmRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2Vk
XzJuZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAg
Y29tcHJlc3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzc2VkXzJuZF9oZWxsb1s6LTRdCi0gICAgICAg
IGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfMm5kX2hlbGxvKSB8IDB4ODApCi0g
ICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkXzJuZF9oZWxsbykKLQotICAgICAg
ICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZS
QU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jh
d2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9u
KQotICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoMyk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVm
IHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3ZhcmlvdXNfYnR5cGUoc2VsZik6Ci0gICAgICAgIGNvbXBy
ZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBS
RVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZGF0YSA9
ICcnCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxs
bycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZ
TkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzot
NF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAw
eDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAg
ICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCA9IGNvbXByZXNzLmNvbXByZXNzKCdXZWJTb2NrZXQn
KQotICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpf
RklOSVNIKQotICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCArPSAnXHgwMCcKLSAgICAgICAg
ZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF93ZWJzb2NrZXQpIHwgMHg4MCkKLSAg
ICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfd2Vic29ja2V0KQotCi0gICAgICAg
IGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxU
X0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAg
Y29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNv
bXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAg
ICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZGF0
YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF93b3JsZCkgfCAweDgwKQotICAgICAgICBk
YXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF93b3JsZCkKLQotICAgICAgICAjIENsb3NlIGZy
YW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2so
JyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRh
dGEsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1dlYlNvY2tldCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJl
cXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLQotY2xhc3MgUGVyTWVzc2FnZURlZmxh
dGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyBmb3IgcGVybWVzc2FnZS1k
ZWZsYXRlIGV4dGVuc2lvbi4iIiIKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZShzZWxmKToK
LSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAg
ICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycs
IHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIu
Y29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04s
IHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8g
Kz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRf
aGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgPSAnXHhjMSVj
JyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2Vk
X2hlbGxvCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZW1wdHlfbWVzc2FnZShz
ZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0IGFuIGVtcHR5IG1lc3NhZ2UgaXMgY29tcHJlc3Nl
ZCBjb3JyZWN0bHkuIiIiCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVO
U0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0g
ICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikK
LQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnJykKLQotICAgICAgICAj
IFBheWxvYWQgaW4gYmluYXJ5OiAwYjAwMDAwMDEwIDBiMDAwMDAwMDAKLSAgICAgICAgIyBGcm9t
IExTQiwKLSAgICAgICAgIyAtIDEgYml0IG9mIEJGSU5BTCAoMCkKLSAgICAgICAgIyAtIDIgYml0
cyBvZiBCVFlQRSAoMDEgdGhhdCBtZWFucyBmaXhlZCBIdWZmbWFuKQotICAgICAgICAjIC0gNyBi
aXRzIG9mIHRoZSBmaXJzdCBjb2RlICgwMDAwMDAwIHRoYXQgaXMgdGhlIGNvZGUgZm9yIHRoZQot
ICAgICAgICAjICAgZW5kLW9mLWJsb2NrKQotICAgICAgICAjIC0gMSBiaXQgb2YgQkZJTkFMICgw
KQotICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBFIChubyBjb21wcmVzc2lvbikKLSAgICAgICAg
IyAtIDMgYml0cyBvZiBwYWRkaW5nCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YzFceDAy
XHgwMlx4MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV93aXRoX251bGxfY2hh
cmFjdGVyKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRoYXQgYSBzaW1wbGUgcGF5bG9hZCAob25l
IG51bGwpIGlzIGZyYW1lZCBjb3JyZWN0bHkuIiIiCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FH
RV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9m
cm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1
ZXN0PWV4dGVuc2lvbikKLQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAn
XHgwMCcpCi0KLSAgICAgICAgIyBQYXlsb2FkIGluIGJpbmFyeTogMGIwMTEwMDAxMCAwYjAwMDAw
MDAwIDBiMDAwMDAwMDAKLSAgICAgICAgIyBGcm9tIExTQiwKLSAgICAgICAgIyAtIDEgYml0IG9m
IEJGSU5BTCAoMCkKLSAgICAgICAgIyAtIDIgYml0cyBvZiBCVFlQRSAoMDEgdGhhdCBtZWFucyBm
aXhlZCBIdWZmbWFuKQotICAgICAgICAjIC0gOCBiaXRzIG9mIHRoZSBmaXJzdCBjb2RlICgwMDEx
MDAwMCB0aGF0IGlzIHRoZSBjb2RlIGZvciB0aGUgbGl0ZXJhbAotICAgICAgICAjICAgYWxwaGFi
ZXQgMHgwMCkKLSAgICAgICAgIyAtIDcgYml0cyBvZiB0aGUgc2Vjb25kIGNvZGUgKDAwMDAwMDAg
dGhhdCBpcyB0aGUgY29kZSBmb3IgdGhlCi0gICAgICAgICMgICBlbmQtb2YtYmxvY2spCi0gICAg
ICAgICMgLSAxIGJpdCBvZiBCRklOQUwgKDApCi0gICAgICAgICMgLSAyIGJpdHMgb2YgQlRZUEUg
KG5vIGNvbXByZXNzaW9uKQotICAgICAgICAjIC0gMiBiaXRzIG9mIHBhZGRpbmcKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnXHhjMVx4MDNceDYyXHgwMFx4MDAnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0
ZXN0X3NlbmRfdHdvX21lc3NhZ2VzKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RF
RkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21f
cmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9
ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8n
KQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnKQotCi0gICAg
ICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpf
REVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0g
ICAgICAgIGV4cGVjdGVkID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJl
c3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVz
cy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNv
bXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihj
b21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0K
LSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0g
ICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxV
U0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAg
ICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKLSAgICAg
ICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRl
ZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVudGVkKHNlbGYpOgotICAgICAgICBleHRlbnNpb24g
PSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJN
RVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRl
X3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0
LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsICdHb29kYnllJywgZW5kPUZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShy
ZXF1ZXN0LCAnV29ybGQnKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigK
LSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRF
RCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Mu
Y29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5m
bHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgZXhwZWN0ZWQgPSAnXHg0MSVjJyAlIGxl
bihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxv
Ci0gICAgICAgIGNvbXByZXNzZWRfZ29vZGJ5ZSA9IGNvbXByZXNzLmNvbXByZXNzKCdHb29kYnll
JykKLSAgICAgICAgY29tcHJlc3NlZF9nb29kYnllICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQotICAgICAgICBleHBlY3RlZCArPSAnXHgwMCVjJyAlIGxlbihjb21wcmVzc2Vk
X2dvb2RieWUpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfZ29vZGJ5ZQotICAgICAg
ICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAg
Y29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAg
ICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBl
eHBlY3RlZCArPSAnXHg4MCVjJyAlIGxlbihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBl
Y3RlZCArPSBjb21wcmVzc2VkX3dvcmxkCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0
ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3Nl
bmRfbWVzc2FnZV9mcmFnbWVudGVkX2VtcHR5X2ZpcnN0X2ZyYW1lKHNlbGYpOgotICAgICAgICBl
eHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNv
bW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2Fn
ZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2Fn
ZShyZXF1ZXN0LCAnJywgZW5kPUZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShy
ZXF1ZXN0LCAnSGVsbG8nKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigK
LSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRF
RCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Mu
Y29tcHJlc3MoJycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2go
emxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGV4cGVjdGVkID0gJ1x4NDElYycgJSBsZW4oY29t
cHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotICAg
ICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAg
ICAgY29tcHJlc3NlZF9lbXB0eSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkK
LSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9IGNvbXByZXNzZWRfZW1wdHlbOi00XQotICAgICAg
ICBleHBlY3RlZCArPSAnXHg4MCVjJyAlIGxlbihjb21wcmVzc2VkX2VtcHR5KQotICAgICAgICBl
eHBlY3RlZCArPSBjb21wcmVzc2VkX2VtcHR5Ci0gICAgICAgIHByaW50ICclcicgJSBleHBlY3Rl
ZAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZF9l
bXB0eV9sYXN0X2ZyYW1lKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVf
RVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0
YSgKLSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5z
aW9uKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9
RmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcnKQotCi0gICAg
ICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpf
REVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAg
ICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkK
LSAgICAgICAgZXhwZWN0ZWQgPSAnXHg0MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAg
ICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0gICAgICAgIGNvbXByZXNzZWRfZW1w
dHkgPSBjb21wcmVzcy5jb21wcmVzcygnJykKLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9lbXB0
eSA9IGNvbXByZXNzZWRfZW1wdHlbOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHg4MCVjJyAl
IGxlbihjb21wcmVzc2VkX2VtcHR5KQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2Vt
cHR5Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV91c2luZ19zbWFs
bF93aW5kb3coc2VsZik6Ci0gICAgICAgIGNvbW1vbl9wYXJ0ID0gJ2FiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6JwotICAgICAgICB0ZXN0X21lc3NhZ2UgPSBjb21tb25fcGFydCArICctJyAqIDMw
MDAwICsgY29tbW9uX3BhcnQKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhU
RU5TSU9OKQotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignc2VydmVyX21heF93aW5k
b3dfYml0cycsICc4JykKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jh
d2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4
dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgdGVzdF9tZXNz
YWdlKQotCi0gICAgICAgIGV4cGVjdGVkX3dlYnNvY2tldF9oZWFkZXJfc2l6ZSA9IDIKLSAgICAg
ICAgZXhwZWN0ZWRfd2Vic29ja2V0X3BheWxvYWRfc2l6ZSA9IDkxCi0KLSAgICAgICAgYWN0dWFs
X2ZyYW1lID0gcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZXhwZWN0ZWRfd2Vic29ja2V0X2hlYWRlcl9zaXplICsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBleHBlY3RlZF93ZWJzb2NrZXRfcGF5bG9hZF9zaXplLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIGxlbihhY3R1YWxfZnJhbWUpKQotICAgICAgICBhY3R1YWxfaGVhZGVy
ID0gYWN0dWFsX2ZyYW1lWzA6ZXhwZWN0ZWRfd2Vic29ja2V0X2hlYWRlcl9zaXplXQotICAgICAg
ICBhY3R1YWxfcGF5bG9hZCA9IGFjdHVhbF9mcmFtZVtleHBlY3RlZF93ZWJzb2NrZXRfaGVhZGVy
X3NpemU6XQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgJ1x4
YzElYycgJSBleHBlY3RlZF93ZWJzb2NrZXRfcGF5bG9hZF9zaXplLCBhY3R1YWxfaGVhZGVyKQot
ICAgICAgICBkZWNvbXByZXNzID0gemxpYi5kZWNvbXByZXNzb2JqKC04KQotICAgICAgICBkZWNv
bXByZXNzZWRfbWVzc2FnZSA9IGRlY29tcHJlc3MuZGVjb21wcmVzcygKLSAgICAgICAgICAgICAg
ICBhY3R1YWxfcGF5bG9hZCArICdceDAwXHgwMFx4ZmZceGZmJykKLSAgICAgICAgZGVjb21wcmVz
c2VkX21lc3NhZ2UgKz0gZGVjb21wcmVzcy5mbHVzaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodGVzdF9tZXNzYWdlLCBkZWNvbXByZXNzZWRfbWVzc2FnZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgwLCBsZW4oZGVjb21wcmVzcy51bnVzZWRfZGF0YSkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMCwgbGVuKGRlY29tcHJlc3MudW5jb25zdW1lZF90YWlsKSkKLQotICAgIGRlZiB0
ZXN0X3NlbmRfbWVzc2FnZV9ub19jb250ZXh0X3Rha2VvdmVyX3BhcmFtZXRlcihzZWxmKToKLSAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAg
ICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5z
aW9uLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAg
ICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAg
Zm9yIGkgaW4geHJhbmdlKDMpOgotICAgICAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVx
dWVzdCwgJ0hlbGxvJywgZW5kPUZhbHNlKQotICAgICAgICAgICAgbXNndXRpbC5zZW5kX21lc3Nh
Z2UocmVxdWVzdCwgJ0hlbGxvJywgZW5kPVRydWUpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGli
LmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9O
LCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZmlyc3RfaGVsbG8g
PSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBmaXJzdF9oZWxsbyArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgZXhwZWN0ZWQgPSAnXHg0MSVj
JyAlIGxlbihmaXJzdF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gZmlyc3RfaGVsbG8KLSAg
ICAgICAgc2Vjb25kX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAg
c2Vjb25kX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAg
ICBzZWNvbmRfaGVsbG8gPSBzZWNvbmRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCArPSAn
XHg4MCVjJyAlIGxlbihzZWNvbmRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IHNlY29uZF9o
ZWxsbwotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgZXhwZWN0
ZWQgKyBleHBlY3RlZCArIGV4cGVjdGVkLAotICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVu
dGVkX2JmaW5hbChzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVO
U0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0g
ICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3By
b2Nlc3NvcnMpKQotICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLnNl
dF9iZmluYWwoVHJ1ZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hl
bGxvJywgZW5kPUZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAn
V29ybGQnLCBlbmQ9VHJ1ZSkKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29t
cHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09N
UFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG8gKyBjaHIoMCkKLSAgICAgICAgZXhwZWN0ZWQg
Kz0gJ1x4NDElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0g
Y29tcHJlc3NlZF9oZWxsbwotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigK
LSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAt
emxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21w
cmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNo
KHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dv
cmxkICsgY2hyKDApCi0gICAgICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNz
ZWRfd29ybGQpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKLQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9k
YXRhKCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfZGVmbGF0ZShzZWxmKToKLSAg
ICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RF
RkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAg
ICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkK
LSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAg
ICBkYXRhID0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAg
ICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgIyBDbG9z
ZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5w
YWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdF
X0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zy
b21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICBkYXRhLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVx
dWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRp
bC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChO
b25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3Jl
Y2VpdmVfbWVzc2FnZV9yYW5kb21fc2VjdGlvbihzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0
IGEgY29tcHJlc3NlZCBtZXNzYWdlIGZyYWdtZW50ZWQgaW50byBsb3RzIG9mIGNodW5rcyBpcwot
ICAgICAgICBjb3JyZWN0bHkgcmVjZWl2ZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJhbmRv
bS5zZWVkKGE9MCkKLSAgICAgICAgcGF5bG9hZCA9ICcnLmpvaW4oCi0gICAgICAgICAgICBbY2hy
KHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBpIGluIHhyYW5nZSgxMDAwKV0pCi0KLSAgICAg
ICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFV
TFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAg
Y29tcHJlc3NlZF9wYXlsb2FkID0gY29tcHJlc3MuY29tcHJlc3MocGF5bG9hZCkKLSAgICAgICAg
Y29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQot
ICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSBjb21wcmVzc2VkX3BheWxvYWRbOi00XQotCi0g
ICAgICAgICMgRnJhZ21lbnQgdGhlIGNvbXByZXNzZWQgcGF5bG9hZCBpbnRvIGxvdHMgb2YgZnJh
bWVzLgotICAgICAgICBieXRlc19jaHVua2VkID0gMAotICAgICAgICBkYXRhID0gJycKLSAgICAg
ICAgZnJhbWVfY291bnQgPSAwCi0KLSAgICAgICAgY2h1bmtfc2l6ZXMgPSBbXQotCi0gICAgICAg
IHdoaWxlIGJ5dGVzX2NodW5rZWQgPCBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKToKLSAgICAgICAg
ICAgICMgTWFrZSBzdXJlIHRoYXQKLSAgICAgICAgICAgICMgLSB0aGUgbGVuZ3RoIG9mIGNodW5r
cyBhcmUgZXF1YWwgb3IgbGVzcyB0aGFuIDEyNSBzbyB0aGF0IHdlIGNhbgotICAgICAgICAgICAg
IyAgIHVzZSAxIG9jdGV0IGxlbmd0aCBoZWFkZXIgZm9ybWF0IGZvciBhbGwgZnJhbWVzLgotICAg
ICAgICAgICAgIyAtIGF0IGxlYXN0IDEwIGNodW5rcyBhcmUgY3JlYXRlZC4KLSAgICAgICAgICAg
IGNodW5rX3NpemUgPSByYW5kb20ucmFuZGludCgKLSAgICAgICAgICAgICAgICAxLCBtaW4oMTI1
LAotICAgICAgICAgICAgICAgICAgICAgICBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKSAvIDEwLAot
ICAgICAgICAgICAgICAgICAgICAgICBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKSAtIGJ5dGVzX2No
dW5rZWQpKQotICAgICAgICAgICAgY2h1bmtfc2l6ZXMuYXBwZW5kKGNodW5rX3NpemUpCi0gICAg
ICAgICAgICBjaHVuayA9IGNvbXByZXNzZWRfcGF5bG9hZFsKLSAgICAgICAgICAgICAgICBieXRl
c19jaHVua2VkOmJ5dGVzX2NodW5rZWQgKyBjaHVua19zaXplXQotICAgICAgICAgICAgYnl0ZXNf
Y2h1bmtlZCArPSBjaHVua19zaXplCi0KLSAgICAgICAgICAgIGZpcnN0X29jdGV0ID0gMHgwMAot
ICAgICAgICAgICAgaWYgbGVuKGRhdGEpID09IDA6Ci0gICAgICAgICAgICAgICAgZmlyc3Rfb2N0
ZXQgPSBmaXJzdF9vY3RldCB8IDB4NDIKLSAgICAgICAgICAgIGlmIGJ5dGVzX2NodW5rZWQgPT0g
bGVuKGNvbXByZXNzZWRfcGF5bG9hZCk6Ci0gICAgICAgICAgICAgICAgZmlyc3Rfb2N0ZXQgPSBm
aXJzdF9vY3RldCB8IDB4ODAKLQotICAgICAgICAgICAgZGF0YSArPSAnJWMlYycgJSAoZmlyc3Rf
b2N0ZXQsIGNodW5rX3NpemUgfCAweDgwKQotICAgICAgICAgICAgZGF0YSArPSBfbWFza19oeWJp
KGNodW5rKQotCi0gICAgICAgICAgICBmcmFtZV9jb3VudCArPSAxCi0KLSAgICAgICAgcHJpbnQg
IkNodW5rIHNpemVzOiAlciIgJSBjaHVua19zaXplcwotICAgICAgICBzZWxmLmFzc2VydFRydWUo
bGVuKGNodW5rX3NpemVzKSA+IDEwKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAg
ZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSAr
ICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcigKLSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAg
ICAgIGRhdGEsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0
KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNz
YWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV90d29fbWVzc2FnZXMoc2VsZik6
Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6
bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRT
KQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21w
cmVzcy5jb21wcmVzcygnSGVsbG9XZWJTb2NrZXQnKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIHNwbGl0X3Bvc2l0aW9uID0g
bGVuKGNvbXByZXNzZWRfaGVsbG8pIC8gMgotICAgICAgICBkYXRhICs9ICdceDQxJWMnICUgKHNw
bGl0X3Bvc2l0aW9uIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNz
ZWRfaGVsbG9bOnNwbGl0X3Bvc2l0aW9uXSkKLQotICAgICAgICBkYXRhICs9ICdceDgwJWMnICUg
KChsZW4oY29tcHJlc3NlZF9oZWxsbykgLSBzcGxpdF9wb3NpdGlvbikgfCAweDgwKQotICAgICAg
ICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsb1tzcGxpdF9wb3NpdGlvbjpdKQot
Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6
bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRT
KQotCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQn
KQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRd
Ci0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfd29ybGQpIHwgMHg4
MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfd29ybGQpCi0KLSAgICAg
ICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJp
KHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNp
b24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5Q
RVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICBkYXRhLCBwZXJtZXNzYWdlX2Rl
ZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxv
V2ViU29ja2V0JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9taXhlZF9idHlwZShz
ZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0IGEgbWVzc2FnZSBjb21wcmVzc2VkIHVzaW5nIGxv
dHMgb2YgREVGTEFURSBibG9ja3Mgd2l0aAotICAgICAgICB2YXJpb3VzIGZsdXNoIG1vZGUgaXMg
Y29ycmVjdGx5IHJlY2VpdmVkLgotICAgICAgICAiIiIKLQotICAgICAgICByYW5kb20uc2VlZChh
PTApCi0gICAgICAgIHBheWxvYWQgPSAnJy5qb2luKAotICAgICAgICAgICAgW2NocihyYW5kb20u
cmFuZGludCgwLCAyNTUpKSBmb3IgaSBpbiB4cmFuZ2UoMTAwMCldKQotCi0gICAgICAgIGNvbXBy
ZXNzID0gTm9uZQotCi0gICAgICAgICMgRnJhZ21lbnQgdGhlIGNvbXByZXNzZWQgcGF5bG9hZCBp
bnRvIGxvdHMgb2YgZnJhbWVzLgotICAgICAgICBieXRlc19jaHVua2VkID0gMAotICAgICAgICBj
b21wcmVzc2VkX3BheWxvYWQgPSAnJwotCi0gICAgICAgIGNodW5rX3NpemVzID0gW10KLSAgICAg
ICAgbWV0aG9kcyA9IFtdCi0gICAgICAgIHN5bmNfdXNlZCA9IEZhbHNlCi0gICAgICAgIGZpbmlz
aF91c2VkID0gRmFsc2UKLQotICAgICAgICB3aGlsZSBieXRlc19jaHVua2VkIDwgbGVuKHBheWxv
YWQpOgotICAgICAgICAgICAgIyBNYWtlIHN1cmUgYXQgbGVhc3QgMTAgY2h1bmtzIGFyZSBjcmVh
dGVkLgotICAgICAgICAgICAgY2h1bmtfc2l6ZSA9IHJhbmRvbS5yYW5kaW50KAotICAgICAgICAg
ICAgICAgIDEsIG1pbigxMDAsIGxlbihwYXlsb2FkKSAtIGJ5dGVzX2NodW5rZWQpKQotICAgICAg
ICAgICAgY2h1bmtfc2l6ZXMuYXBwZW5kKGNodW5rX3NpemUpCi0gICAgICAgICAgICBjaHVuayA9
IHBheWxvYWRbYnl0ZXNfY2h1bmtlZDpieXRlc19jaHVua2VkICsgY2h1bmtfc2l6ZV0KLQotICAg
ICAgICAgICAgYnl0ZXNfY2h1bmtlZCArPSBjaHVua19zaXplCi0KLSAgICAgICAgICAgIGlmIGNv
bXByZXNzIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNz
b2JqKAotICAgICAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwKLSAg
ICAgICAgICAgICAgICAgICAgemxpYi5ERUZMQVRFRCwKLSAgICAgICAgICAgICAgICAgICAgLXps
aWIuTUFYX1dCSVRTKQotCi0gICAgICAgICAgICBpZiBieXRlc19jaHVua2VkID09IGxlbihwYXls
b2FkKToKLSAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuY29t
cHJlc3MoY2h1bmspCi0gICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXBy
ZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICAgICAgICAgIGNvbXByZXNzZWRf
cGF5bG9hZCA9IGNvbXByZXNzZWRfcGF5bG9hZFs6LTRdCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIG1ldGhvZCA9IHJhbmRvbS5yYW5kaW50KDAsIDEpCi0gICAgICAgICAgICAg
ICAgbWV0aG9kcy5hcHBlbmQobWV0aG9kKQotICAgICAgICAgICAgICAgIGlmIG1ldGhvZCA9PSAw
OgotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuY29t
cHJlc3MoY2h1bmspCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgICAgICAgICAgICAgc3lu
Y191c2VkID0gVHJ1ZQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg
IGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykKLSAgICAgICAg
ICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9G
SU5JU0gpCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzID0gTm9uZQotICAgICAgICAgICAg
ICAgICAgICBmaW5pc2hfdXNlZCA9IFRydWUKLQotICAgICAgICBwcmludCAiQ2h1bmsgc2l6ZXM6
ICVyIiAlIGNodW5rX3NpemVzCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4oY2h1bmtfc2l6
ZXMpID4gMTApCi0gICAgICAgIHByaW50ICJNZXRob2RzOiAlciIgJSBtZXRob2RzCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShzeW5jX3VzZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaW5p
c2hfdXNlZCkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUoMTI1IDwgbGVuKGNvbXByZXNzZWRf
cGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4oY29tcHJlc3NlZF9wYXlsb2Fk
KSA8IDY1NTM2KQotICAgICAgICBkYXRhID0gJ1x4YzJceGZlJyArIHN0cnVjdC5wYWNrKCchSCcs
IGxlbihjb21wcmVzc2VkX3BheWxvYWQpKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29t
cHJlc3NlZF9wYXlsb2FkKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSAr
PSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29k
IGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigK
LSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRh
dGEsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJl
cXVlc3QpKQotCi0KLWNsYXNzIFBlck1lc3NhZ2VDb21wcmVzc1Rlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgotICAgICIiIlRlc3RzIGZvciBjaGVja2luZyBwZXJtZXNzYWdlLWNvbXByZXNzaW9uIGV4
dGVuc2lvbi4iIiIKLQotICAgIGRlZiB0ZXN0X2RlZmxhdGVfcmVzcG9uc2VfcGFyYW1ldGVycyhz
ZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAg
ICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTikKLSAgICAg
ICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ21ldGhvZCcsICdkZWZsYXRlJykKLSAgICAgICAg
cHJvY2Vzc29yID0gUGVyTWVzc2FnZUNvbXByZXNzRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lv
bikKLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2RlZmxhdGUnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ21ldGhvZCcpKQotCi0gICAgICAg
IGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICBjb21t
b24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04pCi0gICAgICAgIGV4dGVuc2lvbi5h
ZGRfcGFyYW1ldGVyKCdtZXRob2QnLCAnZGVmbGF0ZScpCi0gICAgICAgIHByb2Nlc3NvciA9IFBl
ck1lc3NhZ2VDb21wcmVzc0V4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0KLSAgICAgICAg
ZGVmIF9jb21wcmVzc2lvbl9wcm9jZXNzb3JfaG9vayhjb21wcmVzc2lvbl9wcm9jZXNzb3IpOgot
ICAgICAgICAgICAgY29tcHJlc3Npb25fcHJvY2Vzc29yLnNldF9jbGllbnRfbWF4X3dpbmRvd19i
aXRzKDgpCi0gICAgICAgICAgICBjb21wcmVzc2lvbl9wcm9jZXNzb3Iuc2V0X2NsaWVudF9ub19j
b250ZXh0X3Rha2VvdmVyKFRydWUpCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfY29tcHJlc3Npb25f
cHJvY2Vzc29yX2hvb2soCi0gICAgICAgICAgICBfY29tcHJlc3Npb25fcHJvY2Vzc29yX2hvb2sp
Ci0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgJ2RlZmxhdGU7IGNsaWVudF9t
YXhfd2luZG93X2JpdHM9ODsgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXInLAotICAgICAgICAg
ICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92YWx1ZSgnbWV0aG9kJykpCi0KLQotY2xhc3MgTWVz
c2FnZVRlc3RIaXhpZTc1KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyBmb3IgZHJh
ZnQtaGl4aWUtdGhld2Vic29ja2V0cHJvdG9jb2wtNzYgc3RyZWFtIGNsYXNzLiIiIgotCi0gICAg
ZGVmIHRlc3Rfc2VuZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAn
SGVsbG8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwSGVsbG9ceGZmJywgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdl
X3VuaWNvZGUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3
NSgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHUnXHU2NWU1JykKLSAg
ICAgICAgIyBVKzY1ZTUgaXMgZW5jb2RlZCBhcyBlNiw5NyxhNSBpbiBVVEYtOAotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdceDAwXHhlNlx4OTdceGE1XHhmZicsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRl
c3RfcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0X2hpeGllNzUoJ1x4MDBIZWxsb1x4ZmZceDAwV29ybGQhXHhmZicpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3VuaWNvZGUoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHgwMFx4ZTZceDlj
XHhhY1x4ZmYnKQotICAgICAgICAjIFUrNjcyYyBpcyBlbmNvZGVkIGFzIGU2LDljLGFjIGluIFVU
Ri04Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodSdcdTY3MmMnLCBtc2d1dGlsLnJlY2VpdmVf
bWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9lcnJvbmVv
dXNfdW5pY29kZShzZWxmKToKLSAgICAgICAgIyBceDgwIGFuZCBceDgxIGFyZSBpbnZhbGlkIGFz
IFVURi04LgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4MDBc
eDgwXHg4MVx4ZmYnKQotICAgICAgICAjIEludmFsaWQgY2hhcmFjdGVycyBzaG91bGQgYmUgcmVw
bGFjZWQgd2l0aAotICAgICAgICAjIFUrZmZmZCBSRVBMQUNFTUVOVCBDSEFSQUNURVIKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh1J1x1ZmZmZFx1ZmZmZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNz
YWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Rpc2NhcmQoc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHg4MFx4MDZJ
R05PUkVceDAwSGVsbG9ceGZmJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ1x4MDFESVNSRUdBUkRceGZmXHgwMFdvcmxkIVx4ZmYnKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShy
ZXF1ZXN0KSkKLQotCi1jbGFzcyBNZXNzYWdlUmVjZWl2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKLSAgICAiIiJUZXN0cyB0aGUgU3RyZWFtIGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZlci4i
IiIKLQotICAgIGRlZiB0ZXN0X3F1ZXVlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9ibG9ja2luZ19yZXF1ZXN0KCkKLSAgICAgICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VS
ZWNlaXZlcihyZXF1ZXN0KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVjZWl2
ZXIucmVjZWl2ZV9ub3dhaXQoKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKCdceDgxXHg4NicgKyBfbWFza19oeWJpKCdIZWxsbyEnKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnSGVsbG8hJywgcmVjZWl2ZXIucmVjZWl2ZSgpKQotCi0gICAgZGVmIHRlc3Rfb25t
ZXNzYWdlKHNlbGYpOgotICAgICAgICBvbm1lc3NhZ2VfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0K
LSAgICAgICAgZGVmIG9ubWVzc2FnZV9oYW5kbGVyKG1lc3NhZ2UpOgotICAgICAgICAgICAgb25t
ZXNzYWdlX3F1ZXVlLnB1dChtZXNzYWdlKQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Js
b2NraW5nX3JlcXVlc3QoKQotICAgICAgICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2Vp
dmVyKHJlcXVlc3QsIG9ubWVzc2FnZV9oYW5kbGVyKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoJ1x4ODFceDg2JyArIF9tYXNrX2h5YmkoJ0hlbGxvIScpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyEnLCBvbm1lc3NhZ2VfcXVldWUuZ2V0KCkpCi0KLQot
Y2xhc3MgTWVzc2FnZVJlY2VpdmVySGl4aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAg
ICIiIlRlc3RzIHRoZSBTdHJlYW1IaXhpZTc1IGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZlci4i
IiIKLQotICAgIGRlZiB0ZXN0X3F1ZXVlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICByZWNlaXZlciA9IG1zZ3V0aWwu
TWVzc2FnZVJlY2VpdmVyKHJlcXVlc3QpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25l
LCByZWNlaXZlci5yZWNlaXZlX25vd2FpdCgpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoJ1x4MDBIZWxsbyFceGZmJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
SGVsbG8hJywgcmVjZWl2ZXIucmVjZWl2ZSgpKQotCi0gICAgZGVmIHRlc3Rfb25tZXNzYWdlKHNl
bGYpOgotICAgICAgICBvbm1lc3NhZ2VfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0KLSAgICAgICAg
ZGVmIG9ubWVzc2FnZV9oYW5kbGVyKG1lc3NhZ2UpOgotICAgICAgICAgICAgb25tZXNzYWdlX3F1
ZXVlLnB1dChtZXNzYWdlKQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3Jl
cXVlc3RfaGl4aWU3NSgpCi0gICAgICAgIHJlY2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2
ZXIocmVxdWVzdCwgb25tZXNzYWdlX2hhbmRsZXIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygnXHgwMEhlbGxvIVx4ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdIZWxsbyEnLCBvbm1lc3NhZ2VfcXVldWUuZ2V0KCkpCi0KLQotY2xhc3MgTWVzc2FnZVNlbmRl
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIHRoZSBTdHJlYW0gY2xhc3Mg
dXNpbmcgTWVzc2FnZVNlbmRlci4iIiIKLQotICAgIGRlZiB0ZXN0X3NlbmQoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3QoKQotICAgICAgICBzZW5kZXIg
PSBtc2d1dGlsLk1lc3NhZ2VTZW5kZXIocmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZCgn
V29ybGQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHgwNVdvcmxkJywgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9ub3dhaXQo
c2VsZik6Ci0gICAgICAgICMgVXNlIGEgcXVldWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0ZW4g
YnkgTWVzc2FnZVNlbmRlci4KLSAgICAgICAgIyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9k
YXRhKCkgY2Fubm90IGJlIHVzZWQgaGVyZSBiZWNhdXNlCi0gICAgICAgICMgTWVzc2FnZVNlbmRl
ciBydW5zIGluIGEgc2VwYXJhdGUgdGhyZWFkLgotICAgICAgICBzZW5kX3F1ZXVlID0gUXVldWUu
UXVldWUoKQotCi0gICAgICAgIGRlZiB3cml0ZShieXRlcyk6Ci0gICAgICAgICAgICBzZW5kX3F1
ZXVlLnB1dChieXRlcykKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1
ZXN0KCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlID0gd3JpdGUKLQotICAgICAg
ICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5kZXIocmVxdWVzdCkKLQotICAgICAgICBzZW5k
ZXIuc2VuZF9ub3dhaXQoJ0hlbGxvJykKLSAgICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdXb3Js
ZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDA1SGVsbG8nLCBzZW5kX3F1ZXVl
LmdldCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHgwNVdvcmxkJywgc2VuZF9x
dWV1ZS5nZXQoKSkKLQotCi1jbGFzcyBNZXNzYWdlU2VuZGVySGl4aWU3NVRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgotICAgICIiIlRlc3RzIHRoZSBTdHJlYW1IaXhpZTc1IGNsYXNzIHVzaW5nIE1l
c3NhZ2VTZW5kZXIuIiIiCi0KLSAgICBkZWYgdGVzdF9zZW5kKHNlbGYpOgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICBzZW5kZXIg
PSBtc2d1dGlsLk1lc3NhZ2VTZW5kZXIocmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZCgn
V29ybGQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwV29ybGRceGZmJywgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9ub3dhaXQo
c2VsZik6Ci0gICAgICAgICMgVXNlIGEgcXVldWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0ZW4g
YnkgTWVzc2FnZVNlbmRlci4KLSAgICAgICAgIyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9k
YXRhKCkgY2Fubm90IGJlIHVzZWQgaGVyZSBiZWNhdXNlCi0gICAgICAgICMgTWVzc2FnZVNlbmRl
ciBydW5zIGluIGEgc2VwYXJhdGUgdGhyZWFkLgotICAgICAgICBzZW5kX3F1ZXVlID0gUXVldWUu
UXVldWUoKQotCi0gICAgICAgIGRlZiB3cml0ZShieXRlcyk6Ci0gICAgICAgICAgICBzZW5kX3F1
ZXVlLnB1dChieXRlcykKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1
ZXN0X2hpeGllNzUoKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUgPSB3cml0ZQot
Ci0gICAgICAgIHNlbmRlciA9IG1zZ3V0aWwuTWVzc2FnZVNlbmRlcihyZXF1ZXN0KQotCi0gICAg
ICAgIHNlbmRlci5zZW5kX25vd2FpdCgnSGVsbG8nKQotICAgICAgICBzZW5kZXIuc2VuZF9ub3dh
aXQoJ1dvcmxkJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMEhlbGxvXHhmZicsIHNl
bmRfcXVldWUuZ2V0KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBXb3JsZFx4ZmYn
LCBzZW5kX3F1ZXVlLmdldCgpKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAg
dW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RfbXV4LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X211eC5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ1OTg5NDRlMDg3Y2JkMmMyYjJjZTJhNGIwODlhYWZk
N2EzMzRjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L3Rlc3RfbXV4LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjA4OSArMCwwIEBA
Ci0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3Rz
IGZvciBtdXggbW9kdWxlLiIiIgotCi1pbXBvcnQgUXVldWUKLWltcG9ydCBjb3B5Ci1pbXBvcnQg
bG9nZ2luZwotaW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgc3lzCi1pbXBv
cnQgdW5pdHRlc3QKLWltcG9ydCB0aW1lCi1pbXBvcnQgemxpYgotCi1pbXBvcnQgc2V0X3N5c19w
YXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4K
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQgaW1wb3J0IG11eAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBD
b25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVh
bV9iYXNlIGltcG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IEZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2h5YmkgaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJp
IGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5Ymkg
aW1wb3J0IGNyZWF0ZV9iaW5hcnlfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1f
aHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NlX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5Ci1mcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IHBhcnNlX2ZyYW1lCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBNdXhFeHRlbnNpb25Qcm9jZXNzb3IKLQotCi1pbXBv
cnQgbW9jawotCi0KLV9URVNUX0hFQURFUlMgPSB7J0hvc3QnOiAnc2VydmVyLmV4YW1wbGUuY29t
JywKLSAgICAgICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnd2Vic29ja2V0JywKLSAgICAgICAgICAg
ICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAgICAgICdTZWMtV2Vi
U29ja2V0LUtleSc6ICdkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nLAotICAgICAgICAgICAgICAg
ICAnU2VjLVdlYlNvY2tldC1WZXJzaW9uJzogJzEzJywKLSAgICAgICAgICAgICAgICAgJ09yaWdp
bic6ICdodHRwOi8vZXhhbXBsZS5jb20nfQotCi0KLWNsYXNzIF9PdXRnb2luZ0NoYW5uZWxEYXRh
KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLm1lc3NhZ2Vz
ID0gW10KLSAgICAgICAgc2VsZi5jb250cm9sX21lc3NhZ2VzID0gW10KLQotICAgICAgICBzZWxm
LmJ1aWxkZXIgPSBtdXguX0lubmVyTWVzc2FnZUJ1aWxkZXIoKQotCi1jbGFzcyBfTW9ja011eENv
bm5lY3Rpb24obW9jay5Nb2NrQmxvY2tpbmdDb25uKToKLSAgICAiIiJNb2NrIGNsYXNzIG9mIG1v
ZF9weXRob24gY29ubmVjdGlvbiBmb3IgbXV4LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYp
OgotICAgICAgICBtb2NrLk1vY2tCbG9ja2luZ0Nvbm4uX19pbml0X18oc2VsZikKLSAgICAgICAg
c2VsZi5fY29udHJvbF9ibG9ja3MgPSBbXQotICAgICAgICBzZWxmLl9jaGFubmVsX2RhdGEgPSB7
fQotCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfb3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9w
ZW5kaW5nX2ZyYWdtZW50cyA9IFtdCi0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfY2xvc2VfY29kZSA9
IE5vbmUKLQotICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiT3ZlcnJpZGUg
TW9ja0Jsb2NraW5nQ29ubi53cml0ZS4iIiIKLQotICAgICAgICBzZWxmLl9jdXJyZW50X2RhdGEg
PSBkYXRhCi0gICAgICAgIHNlbGYuX3Bvc2l0aW9uID0gMAotCi0gICAgICAgIGRlZiBfcmVjZWl2
ZV9ieXRlcyhsZW5ndGgpOgotICAgICAgICAgICAgaWYgc2VsZi5fcG9zaXRpb24gKyBsZW5ndGgg
PiBsZW4oc2VsZi5fY3VycmVudF9kYXRhKToKLSAgICAgICAgICAgICAgICByYWlzZSBDb25uZWN0
aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBy
ZWNlaXZlICVkIGJ5dGVzIGZyb20gZW5jYXBzdWxhdGVkICcKLSAgICAgICAgICAgICAgICAgICAg
J2ZyYW1lJyAlIGxlbmd0aCkKLSAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9jdXJyZW50X2RhdGFb
c2VsZi5fcG9zaXRpb246c2VsZi5fcG9zaXRpb24rbGVuZ3RoXQotICAgICAgICAgICAgc2VsZi5f
cG9zaXRpb24gKz0gbGVuZ3RoCi0gICAgICAgICAgICByZXR1cm4gZGF0YQotCi0gICAgICAgICMg
UGFyc2UgcGh5c2ljYWwgZnJhbWVzIGFuZCBhc3NlbWJsZSBhIG1lc3NhZ2UgaWYgdGhlIG1lc3Nh
Z2UgaXMKLSAgICAgICAgIyBmcmFnbWVudGVkLgotICAgICAgICBvcGNvZGUsIHBheWxvYWQsIGZp
biwgcnN2MSwgcnN2MiwgcnN2MyA9ICgKLSAgICAgICAgICAgIHBhcnNlX2ZyYW1lKF9yZWNlaXZl
X2J5dGVzLCB1bm1hc2tfcmVjZWl2ZT1GYWxzZSkpCi0KLSAgICAgICAgc2VsZi5fcGVuZGluZ19m
cmFnbWVudHMuYXBwZW5kKHBheWxvYWQpCi0KLSAgICAgICAgaWYgc2VsZi5fY3VycmVudF9vcGNv
ZGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIG9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NPTlRJ
TlVBVElPTjoKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1NlbmRpbmcgaW52YWxp
ZCBjb250aW51YXRpb24gb3Bjb2RlJykKLSAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfb3Bjb2Rl
ID0gb3Bjb2RlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBvcGNvZGUgIT0gY29tbW9u
Lk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdT
ZW5kaW5nIGludmFsaWQgb3Bjb2RlICVkJyAlIG9wY29kZSkKLSAgICAgICAgaWYgbm90IGZpbjoK
LSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGlubmVyX2ZyYW1lX2RhdGEgPSAnJy5qb2lu
KHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzKQotICAgICAgICBzZWxmLl9wZW5kaW5nX2ZyYWdtZW50
cyA9IFtdCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfb3Bjb2RlID0gTm9uZQotCi0gICAgICAgICMg
SGFuZGxlIGEgY29udHJvbCBtZXNzYWdlIG9uIHRoZSBwaHlzaWNhbCBjaGFubmVsLgotICAgICAg
ICAjIFRPRE8oYmFzaGkpOiBTdXBwb3J0IG90aGVyIG9wY29kZXMgaWYgbmVlZGVkLgotICAgICAg
ICBpZiBvcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9DTE9TRToKLSAgICAgICAgICAgIGlmIGxlbihw
YXlsb2FkKSA+PSAyOgotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2Nsb3NlX2NvZGUgPSBz
dHJ1Y3QudW5wYWNrKCchSCcsIHBheWxvYWRbOjJdKVswXQotICAgICAgICAgICAgY2xvc2VfYm9k
eSA9IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KAotICAgICAgICAgICAgICAgIGNvbW1v
bi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsICcnKQotICAgICAgICAgICAgY2xvc2VfZnJhbWUgPSBj
cmVhdGVfY2xvc2VfZnJhbWUoY2xvc2VfYm9keSwgbWFzaz1UcnVlKQotICAgICAgICAgICAgc2Vs
Zi5wdXRfYnl0ZXMoY2xvc2VfZnJhbWUpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAj
IFBhcnNlIHRoZSBwYXlsb2FkIG9mIHRoZSBtZXNzYWdlIG9uIHBoeXNpY2FsIGNoYW5uZWwuCi0g
ICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGlubmVyX2ZyYW1lX2Rh
dGEpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAg
ICAgaWYgY2hhbm5lbF9pZCA9PSBtdXguX0NPTlRST0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAg
IHNlbGYuX2NvbnRyb2xfYmxvY2tzLmV4dGVuZChsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxv
Y2tzKCkpKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQg
aW4gc2VsZi5fY2hhbm5lbF9kYXRhOgotICAgICAgICAgICAgc2VsZi5fY2hhbm5lbF9kYXRhW2No
YW5uZWxfaWRdID0gX091dGdvaW5nQ2hhbm5lbERhdGEoKQotICAgICAgICBjaGFubmVsX2RhdGEg
PSBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0KLQotICAgICAgICAjIFBhcnNlIGxvZ2lj
YWwgZnJhbWVzIGFuZCBhc3NlbWJsZSBhbiBpbm5lciAobG9naWNhbCkgbWVzc2FnZS4KLSAgICAg
ICAgKGlubmVyX2ZpbiwgaW5uZXJfcnN2MSwgaW5uZXJfcnN2MiwgaW5uZXJfcnN2MywgaW5uZXJf
b3Bjb2RlLAotICAgICAgICAgaW5uZXJfcGF5bG9hZCkgPSBwYXJzZXIucmVhZF9pbm5lcl9mcmFt
ZSgpCi0gICAgICAgIGlubmVyX2ZyYW1lID0gRnJhbWUoaW5uZXJfZmluLCBpbm5lcl9yc3YxLCBp
bm5lcl9yc3YyLCBpbm5lcl9yc3YzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubmVy
X29wY29kZSwgaW5uZXJfcGF5bG9hZCkKLSAgICAgICAgbWVzc2FnZSA9IGNoYW5uZWxfZGF0YS5i
dWlsZGVyLmJ1aWxkKGlubmVyX2ZyYW1lKQotICAgICAgICBpZiBtZXNzYWdlIGlzIE5vbmU6Ci0g
ICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBpZiAobWVzc2FnZS5vcGNvZGUgPT0gY29tbW9u
Lk9QQ09ERV9URVhUIG9yCi0gICAgICAgICAgICBtZXNzYWdlLm9wY29kZSA9PSBjb21tb24uT1BD
T0RFX0JJTkFSWSk6Ci0gICAgICAgICAgICBjaGFubmVsX2RhdGEubWVzc2FnZXMuYXBwZW5kKG1l
c3NhZ2UucGF5bG9hZCkKLQotICAgICAgICAgICAgc2VsZi5vbl9kYXRhX21lc3NhZ2UobWVzc2Fn
ZS5wYXlsb2FkKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgY2hhbm5lbF9kYXRhLmNvbnRy
b2xfbWVzc2FnZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHsnb3Bjb2RlJzogbWVzc2FnZS5v
cGNvZGUsCi0gICAgICAgICAgICAgICAgICdtZXNzYWdlJzogbWVzc2FnZS5wYXlsb2FkfSkKLQot
ICAgIGRlZiBvbl9kYXRhX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgIHBhc3MKLQot
ICAgIGRlZiBnZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcyhzZWxmKToKLSAgICAgICAgcmV0dXJu
IHNlbGYuX2NvbnRyb2xfYmxvY2tzCi0KLSAgICBkZWYgZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoc2Vs
ZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5l
bF9pZF0ubWVzc2FnZXMKLQotICAgIGRlZiBnZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKHNl
bGYsIGNoYW5uZWxfaWQpOgotICAgICAgICByZXR1cm4gc2VsZi5fY2hhbm5lbF9kYXRhW2NoYW5u
ZWxfaWRdLmNvbnRyb2xfbWVzc2FnZXMKLQotCi1jbGFzcyBfRmFpbE9uV3JpdGVDb25uZWN0aW9u
KF9Nb2NrTXV4Q29ubmVjdGlvbik6Ci0gICAgIiIiU3BlY2ljaWFsaXplZCB2ZXJzaW9uIG9mIF9N
b2NrTXV4Q29ubmVjdGlvbi4gSXRzIHdyaXRlKCkgbWV0aG9kIHJhaXNlcwotICAgIGFuIGV4Y2Vw
dGlvbiBmb3IgdGVzdGluZyB3aGVuIGEgZGF0YSBtZXNzYWdlIGlzIHdyaXR0ZW4uCi0gICAgIiIi
Ci0KLSAgICBkZWYgb25fZGF0YV9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJP
dmVycmlkZSB0byByYWlzZSBhbiBleGNlcHRpb24uIiIiCi0KLSAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdJbnRlbnRpb25hbCBmYWlsdXJlJykKLQotCi1jbGFzcyBfQ2hhbm5lbEV2ZW50KG9iamVj
dCk6Ci0gICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCByZWNvcmRzIGNoYW5uZWwgZXZlbnRzLiIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLnJlcXVlc3QgPSBOb25lCi0g
ICAgICAgIHNlbGYubWVzc2FnZXMgPSBbXQotICAgICAgICBzZWxmLmV4Y2VwdGlvbiA9IE5vbmUK
LSAgICAgICAgc2VsZi5jbGllbnRfaW5pdGlhdGVkX2Nsb3NpbmcgPSBGYWxzZQotCi0KLWNsYXNz
IF9NdXhNb2NrRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIk1vY2sgY2xhc3Mgb2YgZGlzcGF0
Y2guRGlzcGF0Y2hlciBmb3IgbXV4LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAg
ICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzID0ge30KLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hh
a2Uoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIGlmIHJlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3Rv
Y29scyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSByZXF1
ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHNbMF0KLQotICAgIGRlZiBfZG9fZWNobyhzZWxmLCBy
ZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAg
ICBtZXNzYWdlID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAg
ICAgIGlmIG1lc3NhZ2UgPT0gTm9uZToKLSAgICAgICAgICAgICAgICBjaGFubmVsX2V2ZW50cy5j
bGllbnRfaW5pdGlhdGVkX2Nsb3NpbmcgPSBUcnVlCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgICAgICBpZiBtZXNzYWdlID09ICdHb29kYnllJzoKLSAgICAgICAgICAgICAgICByZXR1
cm4KLSAgICAgICAgICAgIGNoYW5uZWxfZXZlbnRzLm1lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKQot
ICAgICAgICAgICAgIyBlY2hvIGJhY2sKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNl
bmRfbWVzc2FnZShtZXNzYWdlKQotCi0gICAgZGVmIF9kb19waW5nKHNlbGYsIHJlcXVlc3QsIGNo
YW5uZWxfZXZlbnRzKToKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5nKCdQaW5n
IScpCi0KLSAgICBkZWYgX2RvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQoc2VsZiwgcmVxdWVzdCwg
Y2hhbm5lbF9ldmVudHMpOgotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2Uo
J0hlbGxvICcsIGVuZD1GYWxzZSkKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5n
KCdQaW5nIScpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnV29ybGQh
JywgZW5kPVRydWUpCi0KLSAgICBkZWYgX2RvX3R3b19waW5nX3doaWxlX2hlbGxvX3dvcmxkKHNl
bGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRzKToKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0u
c2VuZF9tZXNzYWdlKCdIZWxsbyAnLCBlbmQ9RmFsc2UpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3Ry
ZWFtLnNlbmRfcGluZygnUGluZyEnKQotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX3Bp
bmcoJ1BvbmchJykKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKCdXb3Js
ZCEnLCBlbmQ9VHJ1ZSkKLQotICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIHJlcXVlc3QpOgot
ICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0gPSBfQ2hhbm5l
bEV2ZW50KCkKLSAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRd
LnJlcXVlc3QgPSByZXF1ZXN0Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBOb3RlOiBt
b3JlIGhhbmRsZXIgd2lsbCBiZSBhZGRlZC4KLSAgICAgICAgICAgIGlmIHJlcXVlc3QudXJpLmVu
ZHN3aXRoKCdlY2hvJyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZG9fZWNobyhyZXF1ZXN0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0
LmNoYW5uZWxfaWRdKQotICAgICAgICAgICAgZWxpZiByZXF1ZXN0LnVyaS5lbmRzd2l0aCgncGlu
ZycpOgotICAgICAgICAgICAgICAgIHNlbGYuX2RvX3BpbmcocmVxdWVzdCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lk
XSkKLSAgICAgICAgICAgIGVsaWYgcmVxdWVzdC51cmkuZW5kc3dpdGgoJ3R3b19waW5nX3doaWxl
X2hlbGxvX3dvcmxkJyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZG9fdHdvX3Bpbmdfd2hpbGVf
aGVsbG9fd29ybGQoCi0gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsIHNlbGYuY2hhbm5lbF9l
dmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXSkKLSAgICAgICAgICAgIGVsaWYgcmVxdWVzdC51cmku
ZW5kc3dpdGgoJ3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQnKToKLSAgICAgICAgICAgICAgICBzZWxm
Ll9kb19waW5nX3doaWxlX2hlbGxvX3dvcmxkKAotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
LCBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0pCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0Nhbm5vdCBoYW5kbGUgcGF0
aCAlcicgJSByZXF1ZXN0LnBhdGgpCi0gICAgICAgICAgICBpZiBub3QgcmVxdWVzdC5zZXJ2ZXJf
dGVybWluYXRlZDoKLSAgICAgICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25u
ZWN0aW9uKCkKLSAgICAgICAgZXhjZXB0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uLCBl
OgotICAgICAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLmV4
Y2VwdGlvbiA9IGUKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNl
bGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXS5leGNlcHRpb24gPSBlCi0gICAg
ICAgICAgICByYWlzZQotCi0KLWRlZiBfY3JlYXRlX21vY2tfcmVxdWVzdChjb25uZWN0aW9uPU5v
bmUsIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zPU5vbmUpOgotICAgIGlmIGNvbm5lY3Rpb24g
aXMgTm9uZToKLSAgICAgICAgY29ubmVjdGlvbiA9IF9Nb2NrTXV4Q29ubmVjdGlvbigpCi0KLSAg
ICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdCh1cmk9Jy9lY2hvJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWFkZXJzX2luPV9URVNUX0hFQURFUlMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbj1jb25uZWN0aW9uKQotICAgIHJlcXVlc3Qud3Nf
c3RyZWFtID0gU3RyZWFtKHJlcXVlc3QsIG9wdGlvbnM9U3RyZWFtT3B0aW9ucygpKQotICAgIHJl
cXVlc3QubXV4X3Byb2Nlc3NvciA9IE11eEV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uTVVYX0VYVEVOU0lPTikpCi0gICAgaWYgbG9n
aWNhbF9jaGFubmVsX2V4dGVuc2lvbnMgaXMgbm90IE5vbmU6Ci0gICAgICAgIHJlcXVlc3QubXV4
X3Byb2Nlc3Nvci5zZXRfZXh0ZW5zaW9ucyhsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucykKLSAg
ICByZXF1ZXN0Lm11eF9wcm9jZXNzb3Iuc2V0X3F1b3RhKDggKiAxMDI0KQotICAgIHJldHVybiBy
ZXF1ZXN0Ci0KLQotZGVmIF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZShjaGFubmVs
X2lkLCBlbmNvZGluZywgZW5jb2RlZF9oYW5kc2hha2UpOgotICAgICMgQWxsb3cgaW52YWxpZCBl
bmNvZGluZyBmb3IgdGVzdGluZy4KLSAgICBmaXJzdF9ieXRlID0gKChtdXguX01VWF9PUENPREVf
QUREX0NIQU5ORUxfUkVRVUVTVCA8PCA1KSB8IGVuY29kaW5nKQotICAgIHBheWxvYWQgPSAoY2hy
KGZpcnN0X2J5dGUpICsKLSAgICAgICAgICAgICAgIG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoY2hh
bm5lbF9pZCkgKwotICAgICAgICAgICAgICAgbXV4Ll9lbmNvZGVfbnVtYmVyKGxlbihlbmNvZGVk
X2hhbmRzaGFrZSkpICsKLSAgICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlKQotICAgIHJl
dHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAotICAgICAgICAobXV4Ll9lbmNvZGVfY2hhbm5lbF9p
ZChtdXguX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBwYXlsb2FkKSwgbWFzaz1UcnVlKQotCi0KLWRl
ZiBfY3JlYXRlX2Ryb3BfY2hhbm5lbF9mcmFtZShjaGFubmVsX2lkLCBjb2RlPU5vbmUsIG1lc3Nh
Z2U9JycpOgotICAgIHBheWxvYWQgPSBtdXguX2NyZWF0ZV9kcm9wX2NoYW5uZWwoY2hhbm5lbF9p
ZCwgY29kZSwgbWVzc2FnZSkKLSAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICAg
ICAgKG11eC5fZW5jb2RlX2NoYW5uZWxfaWQobXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgcGF5
bG9hZCksIG1hc2s9VHJ1ZSkKLQotCi1kZWYgX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpOgotICAgIHBheWxvYWQgPSBtdXguX2NyZWF0ZV9m
bG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpCi0gICAgcmV0dXJuIGNy
ZWF0ZV9iaW5hcnlfZnJhbWUoCi0gICAgICAgIChtdXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5f
Q09OVFJPTF9DSEFOTkVMX0lEKSArIHBheWxvYWQpLCBtYXNrPVRydWUpCi0KLQotZGVmIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkLCBtZXNzYWdlLCBvcGNvZGU9Y29tbW9uLk9QQ09E
RV9CSU5BUlksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLCByc3YxPUZhbHNl
LCByc3YyPUZhbHNlLCByc3YzPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNr
PVRydWUpOgotICAgIGJpdHMgPSBjaHIoKGZpbiA8PCA3KSB8IChyc3YxIDw8IDYpIHwgKHJzdjIg
PDwgNSkgfCAocnN2MyA8PCA0KSB8IG9wY29kZSkKLSAgICBwYXlsb2FkID0gbXV4Ll9lbmNvZGVf
Y2hhbm5lbF9pZChjaGFubmVsX2lkKSArIGJpdHMgKyBtZXNzYWdlCi0gICAgcmV0dXJuIGNyZWF0
ZV9iaW5hcnlfZnJhbWUocGF5bG9hZCwgbWFzaz1UcnVlKQotCi0KLWRlZiBfY3JlYXRlX3JlcXVl
c3RfaGVhZGVyKHBhdGg9Jy9lY2hvJywgZXh0ZW5zaW9ucz1Ob25lKToKLSAgICBoZWFkZXJzID0g
KAotICAgICAgICAnR0VUICVzIEhUVFAvMS4xXHJcbicKLSAgICAgICAgJ0hvc3Q6IHNlcnZlci5l
eGFtcGxlLmNvbVxyXG4nCi0gICAgICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAg
ICAgJ09yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicpICUgcGF0aAotICAgIGlmIGV4dGVu
c2lvbnM6Ci0gICAgICAgIGhlYWRlcnMgKz0gJyVzOiAlcycgJSAoCi0gICAgICAgICAgICBjb21t
b24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiwgZXh0ZW5zaW9ucykKLSAgICByZXR1
cm4gaGVhZGVycwotCi0KLWNsYXNzIE11eFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIi
IkEgdW5pdHRlc3QgZm9yIG11eCBtb2R1bGUuIiIiCi0KLSAgICBkZWYgdGVzdF9jaGFubmVsX2lk
X2RlY29kZShzZWxmKToKLSAgICAgICAgZGF0YSA9ICdceDAwXHgwMVx4YmZceGZmXHhkZlx4ZmZc
eGZmXHhmZlx4ZmZceGZmXHhmZicKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxv
YWRQYXJzZXIoZGF0YSkKLSAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxf
aWQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGNoYW5uZWxfaWQpCi0gICAgICAgIGNo
YW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgxLCBjaGFubmVsX2lkKQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hh
bm5lbF9pZCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiAqKiAxNCAtIDEsIGNoYW5uZWxf
aWQpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgyICoqIDIxIC0gMSwgY2hhbm5lbF9pZCkKLSAgICAgICAgY2hh
bm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDIgKiogMjkgLSAxLCBjaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihkYXRhKSwgcGFyc2VyLl9yZWFkX3Bvc2l0aW9uKQotCi0gICAgZGVmIHRlc3RfY2hhbm5lbF9p
ZF9lbmNvZGUoc2VsZik6Ci0gICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lk
KDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDAnLCBlbmNvZGVkKQotICAgICAgICBl
bmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgyICoqIDE0IC0gMSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnXHhiZlx4ZmYnLCBlbmNvZGVkKQotICAgICAgICBlbmNvZGVkID0gbXV4
Ll9lbmNvZGVfY2hhbm5lbF9pZCgyICoqIDE0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdc
eGMwQFx4MDAnLCBlbmNvZGVkKQotICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5l
bF9pZCgyICoqIDIxIC0gMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhkZlx4ZmZceGZm
JywgZW5jb2RlZCkKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAq
KiAyMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhlMCBceDAwXHgwMCcsIGVuY29kZWQp
Ci0gICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMjkgLSAxKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGZmXHhmZlx4ZmZceGZmJywgZW5jb2RlZCkKLSAg
ICAgICAgIyBjaGFubmVsX2lkIGlzIHRvbyBsYXJnZQotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhWYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX2VuY29kZV9jaGFu
bmVsX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAyICoqIDI5KQotCi0gICAgZGVmIHRl
c3RfcmVhZF9tdWx0aXBsZV9jb250cm9sX2Jsb2NrcyhzZWxmKToKLSAgICAgICAgIyBVc2UgQWRk
Q2hhbm5lbFJlcXVlc3QgYmVjYXVzZSBpdCBjYW4gY29udGFpbiBhcmJpdHJhcnkgbGVuZ3RoIG9m
IGRhdGEKLSAgICAgICAgZGF0YSA9ICgnXHgwMFx4MDFceDAxYScKLSAgICAgICAgICAgICAgICAn
XHgwMFx4MDJceDdkJXMnCi0gICAgICAgICAgICAgICAgJ1x4MDBceDAzXHg3ZVx4ZmZceGZmJXMn
Ci0gICAgICAgICAgICAgICAgJ1x4MDBceDA0XHg3Zlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4
MDBceDAwJXMnKSAlICgKLSAgICAgICAgICAgICdhJyAqIDB4N2QsICdiJyAqIDB4ZmZmZiwgJ2Mn
ICogMHgxMDAwMCkKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIo
ZGF0YSkKLSAgICAgICAgYmxvY2tzID0gbGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2Nrcygp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGxlbihibG9ja3MpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nr
c1swXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5u
ZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2Nrc1swXS5lbmNvZGVk
X2hhbmRzaGFrZSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVf
QUREX0NIQU5ORUxfUkVRVUVTVCwgYmxvY2tzWzFdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgyLCBibG9ja3NbMV0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgweDdkLCBsZW4oYmxvY2tzWzFdLmVuY29kZWRfaGFuZHNoYWtlKSkKLQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3Nb
Ml0ub3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDMsIGJsb2Nrc1syXS5jaGFubmVs
X2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDB4ZmZmZiwgbGVuKGJsb2Nrc1syXS5lbmNv
ZGVkX2hhbmRzaGFrZSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENP
REVfQUREX0NIQU5ORUxfUkVRVUVTVCwgYmxvY2tzWzNdLm9wY29kZSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCg0LCBibG9ja3NbM10uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgweDEwMDAwLCBsZW4oYmxvY2tzWzNdLmVuY29kZWRfaGFuZHNoYWtlKSkKLQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhKSwgcGFyc2VyLl9yZWFkX3Bvc2l0aW9uKQotCi0g
ICAgZGVmIHRlc3RfcmVhZF9hZGRfY2hhbm5lbF9yZXF1ZXN0KHNlbGYpOgotICAgICAgICBkYXRh
ID0gJ1x4MDBceDAxXHgwMWEnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2Fk
UGFyc2VyKGRhdGEpCi0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9i
bG9ja3MoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NI
QU5ORUxfUkVRVUVTVCwgYmxvY2tzWzBdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBs
ZW4oYmxvY2tzWzBdLmVuY29kZWRfaGFuZHNoYWtlKSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfZHJv
cF9jaGFubmVsKHNlbGYpOgotICAgICAgICBkYXRhID0gJ1x4NjBceDAxXHgwMCcKLSAgICAgICAg
cGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgYmxvY2tz
ID0gbGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGxlbihibG9ja3MpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nr
c1swXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09E
RV9EUk9QX0NIQU5ORUwsIGJsb2Nrc1swXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoTm9uZSwgYmxvY2tzWzBdLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgw
LCBsZW4oYmxvY2tzWzBdLmRyb3BfbWVzc2FnZSkpCi0KLSAgICAgICAgZGF0YSA9ICdceDYwXHgw
Mlx4MDlceDAzXHhlOFN1Y2Nlc3MnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXls
b2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJv
bF9ibG9ja3MoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMLCBibG9ja3NbMF0u
b3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwMDAsIGJsb2Nrc1swXS5kcm9wX2Nv
ZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1N1Y2Nlc3MnLCBibG9ja3NbMF0uZHJvcF9t
ZXNzYWdlKQotCi0gICAgICAgICMgUmVhc29uIGlzIHRvbyBzaG9ydC4KLSAgICAgICAgZGF0YSA9
ICdceDYwXHgwMVx4MDFceDAwJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9h
ZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtdXguUGh5c2ljYWxDb25u
ZWN0aW9uRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogbGlzdChwYXJz
ZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfZmxvd19jb250
cm9sKHNlbGYpOgotICAgICAgICBkYXRhID0gJ1x4NDBceDAxXHgwMicKLSAgICAgICAgcGFyc2Vy
ID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgYmxvY2tzID0gbGlz
dChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIGxlbihibG9ja3MpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1swXS5j
aGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9GTE9X
X0NPTlRST0wsIGJsb2Nrc1swXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwg
YmxvY2tzWzBdLnNlbmRfcXVvdGEpCi0KLSAgICBkZWYgdGVzdF9yZWFkX25ld19jaGFubmVsX3Ns
b3Qoc2VsZik6Ci0gICAgICAgIGRhdGEgPSAnXHg4MFx4MDFceDAyXHgwMlx4MDMnCi0gICAgICAg
IHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgICMgVE9E
TyhiYXNoaSk6IEltcGxlbWVudAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtdXguUGh5c2lj
YWxDb25uZWN0aW9uRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogbGlz
dChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfaW52
YWxpZF9udW1iZXJfZmllbGRfaW5fY29udHJvbF9ibG9jayhzZWxmKToKLSAgICAgICAgIyBObyBu
dW1iZXIgZmllbGQuCi0gICAgICAgIGRhdGEgPSAnJwotICAgICAgICBwYXJzZXIgPSBtdXguX011
eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1
ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0gICAgICAgICMgVGhlIGxhc3QgdHdvIGJ5
dGVzIGFyZSBtaXNzaW5nLgotICAgICAgICBkYXRhID0gJ1x4N2UnCi0gICAgICAgIHBhcnNlciA9
IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBNaXNzaW5n
IHRoZSBsYXN0IG9uZSBieXRlLgotICAgICAgICBkYXRhID0gJ1x4N2ZceDAwXHgwMFx4MDBceDAw
XHgwMFx4MDFceDAwJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNl
cihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3Jl
YWRfbnVtYmVyKQotCi0gICAgICAgICMgVGhlIGxlbmd0aCBvZiBudW1iZXIgZmllbGQgaXMgdG9v
IGxhcmdlLgotICAgICAgICBkYXRhID0gJ1x4N2ZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZm
XHhmZicKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkK
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJl
cikKLQotICAgICAgICAjIFRoZSBtc2Igb2YgdGhlIGZpcnN0IGJ5dGUgaXMgc2V0LgotICAgICAg
ICBkYXRhID0gJ1x4ODAnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFy
c2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5f
cmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBVc2luZyAzIGJ5dGVzIGVuY29kaW5nIGZvciAxMjUu
Ci0gICAgICAgIGRhdGEgPSAnXHg3ZVx4MDBceDdkJwotICAgICAgICBwYXJzZXIgPSBtdXguX011
eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1
ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0gICAgICAgICMgVXNpbmcgOSBieXRlcyBl
bmNvZGluZyBmb3IgMHhmZmZmCi0gICAgICAgIGRhdGEgPSAnXHg3Zlx4MDBceDAwXHgwMFx4MDBc
eDAwXHgwMFx4ZmZceGZmJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBh
cnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIu
X3JlYWRfbnVtYmVyKQotCi0gICAgZGVmIHRlc3RfcmVhZF9pbnZhbGlkX3NpemVfYW5kX2NvbnRl
bnRzKHNlbGYpOgotICAgICAgICAjIE9ubHkgY29udGFpbiBudW1iZXIgZmllbGQuCi0gICAgICAg
IGRhdGEgPSAnXHgwMScKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJz
ZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXV4LlBoeXNpY2FsQ29ubmVjdGlv
bkVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXIuX3JlYWRfc2l6ZV9hbmRf
Y29udGVudHMpCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9uc2Uoc2Vs
Zik6Ci0gICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZShjaGFu
bmVsX2lkPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZT0nRm9vQmFyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPTAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3RlZD1GYWxzZSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHgyMFx4MDFceDA2Rm9vQmFyJywgZGF0YSkKLQotICAgICAgICBkYXRhID0g
bXV4Ll9jcmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9uc2UoY2hhbm5lbF9pZD0yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9
J0hlbGxvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVuY29kaW5nPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWplY3RlZD1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDMxXHgwMlx4
MDVIZWxsbycsIGRhdGEpCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVfZHJvcF9jaGFubmVsKHNlbGYp
OgotICAgICAgICBkYXRhID0gbXV4Ll9jcmVhdGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQ9MSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg2MFx4MDFceDAwJywgZGF0YSkKLQotICAgICAg
ICBkYXRhID0gbXV4Ll9jcmVhdGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQ9MSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlPTIwMDAsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nZXJyb3InKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdceDYwXHgwMVx4MDdceDA3XHhkMGVycm9yJywgZGF0YSkKLQotICAgICAg
ICAjIHJlYXNvbiBtdXN0IGJlIGVtcHR5IGlmIGNvZGUgaXMgTm9uZQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX2Ny
ZWF0ZV9kcm9wX2NoYW5uZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDEsIE5vbmUsICdG
b29CYXInKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfcmVxdWVzdF90ZXh0KHNlbGYpOgotICAgICAg
ICByZXF1ZXN0X3RleHQgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKCkKLSAgICAgICAgY29tbWFu
ZCwgcGF0aCwgdmVyc2lvbiwgaGVhZGVycyA9IG11eC5fcGFyc2VfcmVxdWVzdF90ZXh0KHJlcXVl
c3RfdGV4dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnR0VUJywgY29tbWFuZCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnL2VjaG8nLCBwYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdIVFRQLzEuMScsIHZlcnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywgbGVu
KGhlYWRlcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzZXJ2ZXIuZXhhbXBsZS5jb20n
LCBoZWFkZXJzWydIb3N0J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2h0dHA6Ly9leGFt
cGxlLmNvbScsIGhlYWRlcnNbJ09yaWdpbiddKQotCi0KLWNsYXNzIE11eEhhbmRsZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVy
ID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhh
bmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQot
ICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVS
X09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9j
cmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hv
JykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVx
dWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9MCwKLSAgICAg
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0zLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3df
Y29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8n
KSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J1dvcmxkJykpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxf
ZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnV29ybGQnXSwg
ZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1szXS5tZXNzYWdlcykKLSAgICAgICAgIyBDaGFubmVs
IDIKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVz
c2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotICAgICAgICAjIENo
YW5uZWwgMwotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9tZXNzYWdlcygzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbWVzc2FnZXNbMF0pCi0gICAgICAg
IGNvbnRyb2xfYmxvY2tzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xf
YmxvY2tzKCkKLSAgICAgICAgIyBUaGVyZSBzaG91bGQgYmUgOCBjb250cm9sIGJsb2NrczoKLSAg
ICAgICAgIyAgIC0gMSBOZXdDaGFubmVsU2xvdAotICAgICAgICAjICAgLSAyIEFkZENoYW5uZWxS
ZXNwb25zZXMgZm9yIGNoYW5uZWwgaWQgMiBhbmQgMwotICAgICAgICAjICAgLSA2IEZsb3dDb250
cm9scyBmb3IgY2hhbm5lbCBpZCAxIChpbml0aWFsaXplKSwgJ0hlbGxvJywgJ1dvcmxkJywKLSAg
ICAgICAgIyAgICAgYW5kIDMgJ0dvb2RieWUncwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDks
IGxlbihjb250cm9sX2Jsb2NrcykpCi0KLSAgICBkZWYgdGVzdF9waHlzaWNhbF9jb25uZWN0aW9u
X3dyaXRlX2ZhaWx1cmUoc2VsZik6Ci0gICAgICAgICMgVXNlIF9GYWlsT25Xcml0ZUNvbm5lY3Rp
b24uCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdChjb25uZWN0aW9uPV9G
YWlsT25Xcml0ZUNvbm5lY3Rpb24oKSkKLQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tE
aXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVz
dCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgICAgICMg
TGV0IHRoZSB3b3JrZXIgZWNobyBiYWNrICdIZWxsbycuIEl0IGNhdXNlcyBfRmFpbE9uV3JpdGVD
b25uZWN0aW9uCi0gICAgICAgICMgcmFpc2luZyBhbiBleGNlcHRpb24uCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdIZWxsbycpKQotCi0gICAgICAgICMgTGV0IHRoZSB3
b3JrZXIgZXhpdC4gVGhpcyB3aWxsIGJlIHVubmVjZXNzYXJ5IHdoZW4KLSAgICAgICAgIyBfTG9n
aWNhbENvbm5lY3Rpb24ud3JpdGUoKSBpcyBjaGFuZ2VkIHRvIHRocm93IGFuIGV4Y2VwdGlvbiBp
ZgotICAgICAgICAjIHdva2UgdXAgYnkgb25fd3JpdGVyX2RvbmUuCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgIyBBbGwgdGhyZWFk
cyBzaG91bGQgYmUgZG9uZS4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndh
aXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9ibG9ja2VkKHNl
bGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBk
aXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBt
dXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIu
c3RhcnQoKQotCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5J
VElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAg
ICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9m
cmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBPbiBy
ZWNlaXZpbmcgdGhpcyAnSGVsbG8nLCB0aGUgc2VydmVyIHRyaWVzIHRvIGVjaG8gYmFjayAnSGVs
bG8nLAotICAgICAgICAjIGJ1dCBpdCB3aWxsIGJlIGJsb2NrZWQgc2luY2UgdGhlcmUncyBubyBz
ZW5kIHF1b3RhIGF2YWlsYWJsZSBmb3IgdGhlCi0gICAgICAgICMgY2hhbm5lbCAyLgotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLQotICAgICAgICAjIFdh
aXQgdW50aWwgdGhlIHdvcmtlciBpcyBibG9ja2VkIGR1ZSB0byBzZW5kIHF1b3RhIHNob3J0YWdl
LgotICAgICAgICB0aW1lLnNsZWVwKDEpCi0KLSAgICAgICAgIyBDbG9zZSB0aGUgY2hhbm5lbCAy
LiBUaGUgd29ya2VyIHNob3VsZCBiZSBub3RpZmllZCBvZiB0aGUgZW5kIG9mCi0gICAgICAgICMg
d3JpdGVyIHRocmVhZCBhbmQgc3RvcCB3YWl0aW5nIGZvciBzZW5kIHF1b3RhIHRvIGJlIHJlcGxl
bmlzaGVkLgotICAgICAgICBkcm9wX2NoYW5uZWwgPSBfY3JlYXRlX2Ryb3BfY2hhbm5lbF9mcmFt
ZShjaGFubmVsX2lkPTIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhk
cm9wX2NoYW5uZWwpCi0KLSAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGNoYW5uZWwgMSBpcyBhbHNv
IGNsb3NlZC4KLSAgICAgICAgZHJvcF9jaGFubmVsID0gX2NyZWF0ZV9kcm9wX2NoYW5uZWxfZnJh
bWUoY2hhbm5lbF9pZD0xKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGRy
b3BfY2hhbm5lbCkKLQotICAgICAgICAjIEFsbCB0aHJlYWRzIHNob3VsZCBiZSBkb25lLgotICAg
ICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9
MikpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9lbmNvZGluZyhzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hl
ciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhI
YW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkK
LSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJF
Ul9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBkZWx0YSA9ICdHRVQg
L2VjaG8gSFRUUC8xLjFcclxuXHJcbicKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9
MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93
X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVk
X3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250
cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2
ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24u
Z2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4o
bWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBd
KQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFfZW5jb2Rpbmdfb3ZlcnJpZGUoc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRp
c3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11
eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5z
dGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElB
TF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgIyBPdmVy
cmlkZSBTZWMtV2ViU29ja2V0LVByb3RvY29sLgotICAgICAgICBkZWx0YSA9ICgnR0VUIC9lY2hv
IEhUVFAvMS4xXHJcbicKLSAgICAgICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6
IHgtZm9vXHJcbicKLSAgICAgICAgICAgICAgICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5l
bF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAg
ICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQot
Ci0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3Nh
Z2U9J0hlbGxvJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29k
YnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0
aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRj
aGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxv
JywgbWVzc2FnZXNbMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3gtZm9vJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLnJlcXVlc3Qu
d3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9hZnRlcl9pZGVu
dGl0eShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAg
ICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5k
bGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9o
YW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4
Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLSAgICAgICAg
IyBTZWMtV2ViU29ja2V0LVByb3RvY29sIGlzIGRpZmZlcmVudCBmcm9tIGNsaWVudCdzIG9wZW5p
bmcgaGFuZHNoYWtlCi0gICAgICAgICMgb2YgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0gICAg
ICAgICMgVE9ETyhiYXNoaSk6IFJlbW92ZSBVcGdyYWRlLCBDb25uZWN0aW9uLCBTZWMtV2ViU29j
a2V0LUtleSBhbmQKLSAgICAgICAgIyBTZWMtV2ViU29ja2V0LVZlcnNpb24uCi0gICAgICAgIGVu
Y29kZWRfaGFuZHNoYWtlID0gKAotICAgICAgICAgICAgJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4n
Ci0gICAgICAgICAgICAnSG9zdDogc2VydmVyLmV4YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAg
ICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiB4LWZvb1xyXG4nCi0gICAgICAgICAgICAnQ29ubmVj
dGlvbjogVXBncmFkZVxyXG4nCi0gICAgICAgICAgICAnT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5j
b21cclxuJwotICAgICAgICAgICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0
ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5l
bF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2No
YW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29u
dHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIGRlbHRhID0gJ0dF
VCAvZWNobyBIVFRQLzEuMVxyXG5cclxuJwotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0g
X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9p
ZD0zLCBlbmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZs
b3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNo
ZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2Nv
bnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdXb3JsZCcpKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MywgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFtdLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2
ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1dvcmxkJ10sIGRp
c3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbM10ubWVzc2FnZXMpCi0gICAgICAgICMgQ2hhbm5lbCAy
Ci0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3Nh
Z2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKLSAgICAgICAgIyBDaGFu
bmVsIDMKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5f
bWVzc2FnZXMoMykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1lc3NhZ2VzWzBdKQotICAgICAgICAj
IEhhbmRzaGFrZSBiYXNlIHNob3VsZCBiZSB1cGRhdGVkLgotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgJ3gtZm9vJywKLSAgICAgICAgICAgIG11eF9oYW5kbGVyLl9oYW5k
c2hha2VfYmFzZS5faGVhZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90b2NvbCddKQotCi0gICAgZGVm
IHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFfcmVtb3ZlX2hlYWRlcihzZWxmKToKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhN
b2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJl
cXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAg
bXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFO
TkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lO
SVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLSAgICAgICAgIyBPdmVycmlkZSBoYW5kc2hha2UgZGVs
dGEgYmFzZS4KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSAoCi0gICAgICAgICAgICAnR0VU
IC9lY2hvIEhUVFAvMS4xXHJcbicKLSAgICAgICAgICAgICdIb3N0OiBzZXJ2ZXIuZXhhbXBsZS5j
b21cclxuJwotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHgtZm9vXHJcbicK
LSAgICAgICAgICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAgICAgICAgICdPcmln
aW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgICAgICAgICAnXHJcbicpCi0gICAgICAg
IGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUo
Ci0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJv
bCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9
NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0K
LSAgICAgICAgIyBSZW1vdmUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBoZWFkZXIuCi0gICAgICAg
IGRlbHRhID0gKCdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJwotICAgICAgICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbDonCi0gICAgICAgICAgICAgICAgICdcclxuJykKLSAgICAgICAg
YWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgK
LSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9
ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9m
cmFtZShjaGFubmVsX2lkPTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVz
c2FnZT0nV29ybGQnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dv
b2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUn
KSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVv
dXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFubmVs
X2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10s
IGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydXb3JsZCddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzNdLm1lc3NhZ2Vz
KQotICAgICAgICAjIENoYW5uZWwgMgotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEs
IGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2Fn
ZXNbMF0pCi0gICAgICAgICMgQ2hhbm5lbCAzCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBt
ZXNzYWdlc1swXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICd4LWZv
bycsCi0gICAgICAgICAgICBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLnJlcXVlc3Qud3Nf
cHJvdG9jb2wpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBOb25lLAot
ICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1szXS5yZXF1ZXN0LndzX3Byb3Rv
Y29sKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFfZW5jb2RpbmdfcGVybWVzc2Fn
ZV9jb21wcmVzcyhzZWxmKToKLSAgICAgICAgIyBFbmFibGUgcGVybWVzc2FnZSBjb21wcmVzcyBl
eHRlbnNpb24gb24gdGhlIGltcGxpY2l0bHkgb3BlbmVkIGNoYW5uZWwuCi0gICAgICAgIGV4dGVu
c2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICclczsgbWV0aG9k
PWRlZmxhdGUnICUgY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OKQotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoCi0gICAgICAgICAgICBsb2dpY2Fs
X2NoYW5uZWxfZXh0ZW5zaW9ucz1leHRlbnNpb25zKQotICAgICAgICBkaXNwYXRjaGVyID0gX011
eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIo
cmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAg
ICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NI
QU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5f
SU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGRlbHRhID0gJ0dFVCAvZWNobyBI
VFRQLzEuMVxyXG5cclxuJwotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9h
ZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNv
ZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJv
bCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9
MjApCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQot
Ci0gICAgICAgICMgU2VuZCBjb21wcmVzc2VkICdIZWxsbycgb24gbG9naWNhbCBjaGFubmVsIDEg
YW5kIDIuCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAg
IHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJ
VFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8n
KQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRd
Ci0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxs
bywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
bXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2Fn
ZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5u
ZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAgICAgICAjIFdyaXR0ZW4gJ0hlbGxvJ3Mgc2hvdWxk
IGJlIGNvbXByZXNzZWQuCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdl
dF93cml0dGVuX21lc3NhZ2VzKDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1l
c3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wcmVzc2VkX2hlbGxvLCBtZXNz
YWdlc1swXSkKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0
ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2VzWzBd
KQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFfZW5jb2RpbmdfcmVtb3ZlX2V4dGVu
c2lvbnMoc2VsZik6Ci0gICAgICAgICMgRW5hYmxlIHBlcm1lc3NhZ2UgY29tcHJlc3MgZXh0ZW5z
aW9uIG9uIHRoZSBpbXBsaWNpdGx5IG9wZW5lZCBjaGFubmVsLgotICAgICAgICBleHRlbnNpb25z
ID0gY29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAnJXM7IG1ldGhvZD1kZWZs
YXRlJyAlIGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTikKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KAotICAgICAgICAgICAgbG9naWNhbF9jaGFu
bmVsX2V4dGVuc2lvbnM9ZXh0ZW5zaW9ucykKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2Nr
RGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVl
c3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4
X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVM
X1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJ
QUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICAjIFJlbW92ZSBwZXJtZXNzYWdlIGNvbXBy
ZXNzIGV4dGVuc2lvbi4KLSAgICAgICAgZGVsdGEgPSAoJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4n
Ci0gICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnM6XHJcbicKLSAgICAg
ICAgICAgICAgICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBl
bmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29u
dHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVv
dGE9MjApCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9s
KQotCi0gICAgICAgICMgU2VuZCBjb21wcmVzc2VkIG1lc3NhZ2Ugb24gbG9naWNhbCBjaGFubmVs
IDIuIFRoZSBtZXNzYWdlIHNob3VsZAotICAgICAgICAjIGJlIHJlamVjdGVkIChzaW5jZSByc3Yx
IGlzIHNldCkuCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAg
ICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhf
V0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVs
bG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6
LTRdCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVs
bG8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1UcnVlKSkKLQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkK
LQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAg
ICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9OT1JNQUxfQ0xPU1VSRSwgZHJvcF9jaGFu
bmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBkcm9wX2NoYW5uZWwu
Y2hhbm5lbF9pZCkKLSAgICAgICAgIyBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uIHNob3VsZCBi
ZSByYWlzZWQgb24gbG9naWNhbCBjaGFubmVsIDIuCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShp
c2luc3RhbmNlKGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0uZXhjZXB0aW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uKSkK
LQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2ludmFsaWRfZW5jb2Rpbmcoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIg
PSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFu
ZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0g
ICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJf
T0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2No
YW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAg
ICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MywKLSAgICAgICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11
eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hh
bm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBt
dXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11
eC5fRFJPUF9DT0RFX1VOS05PV05fUkVRVUVTVF9FTkNPRElORywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVm
IHRlc3RfYWRkX2NoYW5uZWxfaW5jb21wbGV0ZV9oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAg
IG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hB
Tk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9J
TklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgaW5jb21wbGV0ZV9lbmNvZGVkX2hh
bmRzaGFrZSA9ICdHRVQgL2VjaG8gSFRUUC8xLjEnCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVl
c3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFu
bmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1pbmNv
bXBsZXRlX2VuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKDEgaW4gZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50cykKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG5vdCAyIGluIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMpCi0KLSAgICBkZWYgdGVzdF9h
ZGRfY2hhbm5lbF9kdXBsaWNhdGVfY2hhbm5lbF9pZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hh
bmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NM
T1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxf
UVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVf
cmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0
ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5l
bF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2No
YW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVx
dWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0g
X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9p
ZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9o
YW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5u
ZWxfcmVxdWVzdCkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91
bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAg
ICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRy
b2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9E
Uk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfQ0hB
Tk5FTF9BTFJFQURZX0VYSVNUUywKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5u
ZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5U
RVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9kcm9w
X2NoYW5uZWwoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgp
Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhf
aGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBt
dXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3Rz
KG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9l
Y2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAg
ICAgZHJvcF9jaGFubmVsID0gX2NyZWF0ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hhbm5lbF9pZD0y
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGRyb3BfY2hhbm5lbCkKLQot
ICAgICAgICAjIFRlcm1pbmF0ZSBpbXBsaWNpdGx5IG9wZW5lZCBjaGFubmVsLgotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAg
ICAgICBleGNlcHRpb24gPSBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLmV4Y2VwdGlvbgot
ICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhjZXB0aW9uLl9fY2xhc3NfXyA9PSBDb25uZWN0aW9u
VGVybWluYXRlZEV4Y2VwdGlvbikKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfcGluZ19mcmFtZShz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAg
ZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0g
bXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVy
LnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklU
SUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAg
ICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2Zy
YW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAg
ZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2Nv
bnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1
b3RhPTEzKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJv
bCkKLQotICAgICAgICBwaW5nX2ZyYW1lID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
PSdIZWxsbyBXb3JsZCEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJTkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMocGluZ19mcmFtZSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwg
bWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2Fn
ZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0
X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29u
bmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBtZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdl
J10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50ZWRfcGluZyhzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9
IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5k
bGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAg
ICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9P
Rl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
dXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hh
bm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAg
ICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3Jl
YXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEzKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAg
ICAjIFNlbmQgYSBwaW5nIHdpdGggbWVzc2FnZSAnSGVsbG8gd29ybGQhJyBpbiB0d28gZnJhZ21l
bnRlZCBmcmFtZXMuCi0gICAgICAgIHBpbmdfZnJhbWUxID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVzc2FnZT0nSGVsbG8gJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmluPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKHBpbmdfZnJhbWUxKQotICAgICAgICBwaW5nX2ZyYW1lMiA9IF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1dvcmxkIScsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04p
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZ19mcmFtZTIpCi0KLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxm
LmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAg
ICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9t
ZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywg
bWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBX
b3JsZCEnLCBtZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9m
cmFnbWVudGVkX3Bpbmdfd2hpbGVfcmVjZWl2aW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0
Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9N
dXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05V
TUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBh
ZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAot
ICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wg
PSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTE5
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQot
ICAgICAgICAjIFNlbmQgYSBmcmFnbWVudGVkIGZyYW1lIG9mIG1lc3NhZ2UgJ0hlbGxvICcuCi0g
ICAgICAgIGhlbGxvID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGhlbGxvKQotCi0gICAgICAgICMgQmVmb3JlIHNlbmRp
bmcgdGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZSwgc2VuZCBhCi0gICAg
ICAgICMgZnJhZ21lbnRlZCBwaW5nLgotICAgICAgICBwaW5nMSA9IF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2U9J1BpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlu
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29t
bW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBp
bmcxKQotICAgICAgICBwaW5nMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J25nIScsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5V
QVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzIpCi0KLSAg
ICAgICAgIyBTZW5kIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhlIG1lc3NhZ2UuCi0g
ICAgICAgIHdvcmxkID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nV29ybGQhJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElP
TikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyh3b3JsZCkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAg
ICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQotICAg
ICAgICBjb250cm9sX21lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2Nv
bnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RF
X1BPTkcsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdQaW5nIScsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRl
ZiB0ZXN0X3JlY2VpdmVfdHdvX3Bpbmdfd2hpbGVfcmVjZWl2aW5nX2ZyYWdtZW50ZWRfbWVzc2Fn
ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAg
ICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVy
ID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5k
bGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9J
TklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQot
ICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93
X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVk
X3F1b3RhPTI1KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29u
dHJvbCkKLQotICAgICAgICAjIFNlbmQgYSBmcmFnbWVudGVkIGZyYW1lIG9mIG1lc3NhZ2UgJ0hl
bGxvICcuCi0gICAgICAgIGhlbGxvID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8g
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGhlbGxvKQotCi0gICAgICAgICMgQmVm
b3JlIHNlbmRpbmcgdGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZSwgc2Vu
ZCBhCi0gICAgICAgICMgZnJhZ21lbnRlZCBwaW5nIGFuZCBhIG5vbi1mcmFnbWVudGVkIHBpbmcu
Ci0gICAgICAgIHBpbmcxID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUGknLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJTkcpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzEpCi0gICAgICAgIHBpbmcyID0g
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nbmchJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMikKLSAgICAgICAgcGluZzMgPSBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtZXNzYWdlPSdQb25nIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKHBpbmczKQotCi0gICAgICAgICMgU2VuZCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1l
IG9mIHRoZSBtZXNzYWdlLgotICAgICAgICB3b3JsZCA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J1dvcmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1U
cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9u
Lk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMod29ybGQpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dy
aXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxk
ISddLCBtZXNzYWdlcykKLSAgICAgICAgY29udHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUnXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBdWydt
ZXNzYWdlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBj
b250cm9sX21lc3NhZ2VzWzFdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
UG9uZyEnLCBjb250cm9sX21lc3NhZ2VzWzFdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9y
ZWNlaXZlX21lc3NhZ2Vfd2hpbGVfcmVjZWl2aW5nX2ZyYWdtZW50ZWRfcGluZyhzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hl
ciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhI
YW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkK
LSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJF
Ul9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRz
aGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRf
Y2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAg
ICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBf
Y3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xOSkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAg
ICAgIyBTZW5kIGEgZnJhZ21lbnRlZCBwaW5nLgotICAgICAgICBwaW5nMSA9IF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2U9J1BpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmluPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNv
ZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKHBpbmcxKQotCi0gICAgICAgICMgQmVmb3JlIHNlbmRpbmcgdGhlIGxhc3QgZnJhZ21lbnRl
ZCBwaW5nLCBzZW5kIGEgbWVzc2FnZS4KLSAgICAgICAgIyBUaGUgbG9naWNhbCBjaGFubmVsICgy
KSBzaG91bGQgYmUgZHJvcHBlZC4KLSAgICAgICAgbWVzc2FnZSA9IF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVzc2FnZT0nSGVsbG8gd29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaW49VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhtZXNzYWdlKQotCi0gICAgICAgICMgU2VuZCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lIG9m
IHRoZSBtZXNzYWdlLgotICAgICAgICBwaW5nMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9
J25nIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09E
RV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGlu
ZzIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIg
Zm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkK
LSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0g
ICAgICAgICMgTm8gbWVzc2FnZSBzaG91bGQgYmUgc2VudCBvbiBjaGFubmVsIDIuCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJv
bF9tZXNzYWdlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMikKLQotICAgIGRlZiB0ZXN0
X3NlbmRfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0
KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11
eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAg
IG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xv
dHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQot
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0n
L3BpbmcnKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5l
bF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAot
ICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAg
ICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lk
PTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Zmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0g
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdH
b29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50
aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0
aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb21tb24uT1BDT0RFX1BJTkcsIG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBtZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAg
ZGVmIHRlc3Rfc2VuZF9mcmFnbWVudGVkX3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3Bh
dGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBk
aXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5k
bGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9U
UywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FV
T1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3Jl
cXVlc3RfaGVhZGVyKHBhdGg9Jy9waW5nJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9
IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxf
aWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRf
aGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFu
bmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggMyBieXRlcy4gVGhpcyBpc24ndCBl
bm91Z2ggdG8gc2VuZCB0aGUgd2hvbGUgcGluZyBmcmFtZQotICAgICAgICAjIGJlY2F1c2UgdGhl
IGZyYW1lIHdpbGwgaGF2ZSA1IGJ5dGVzIG1lc3NhZ2UoJ1BpbmchJykuIFRoZSBmcmFtZQotICAg
ICAgICAjIHNob3VsZCBiZSBmcmFnbWVudGVkLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3Jl
YXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTMpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAg
ICMgV2FpdCB1bnRpbCB0aGUgd29ya2VyIGlzIGJsb2NrZWQgZHVlIHRvIHNlbmQgcXVvdGEgc2hv
cnRhZ2UuCi0gICAgICAgIHRpbWUuc2xlZXAoMSkKLQotICAgICAgICAjIFJlcGxlbmlzaCByZW1h
aW5pbmcgMiArIDEgYnl0ZXMgKGluY2x1ZGluZyBleHRyYSBjb3N0KS4KLSAgICAgICAgZmxvd19j
b250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9x
dW90YT0zKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJv
bCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAg
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGlt
ZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3Jp
dHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9u
Lk9QQ09ERV9QSU5HLCBtZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1BpbmchJywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3Nl
bmRfZnJhZ21lbnRlZF9waW5nX3doaWxlX3NlbmRpbmdfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNw
YXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXgu
X011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3Rh
cnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxf
TlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcigKLSAgICAgICAgICAgIHBhdGg9Jy9w
aW5nX3doaWxlX2hlbGxvX3dvcmxkJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9
MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFu
ZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVs
X3JlcXVlc3QpCi0KLSAgICAgICAgIyBBcHBsaWNhdGlvbiB3aWxsIHNlbmQ6Ci0gICAgICAgICMg
LSB0ZXh0IG1lc3NhZ2UgJ0hlbGxvICcgd2l0aCBmaW49MAotICAgICAgICAjIC0gcGluZyB3aXRo
ICdQaW5nIScgbWVzc2FnZQotICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdXb3JsZCEnIHdpdGgg
ZmluPTEKLSAgICAgICAgIyBSZXBsZW5pc2ggKDYgKyAxKSArICgyICsgMSkgYnl0ZXMgc28gdGhh
dCB0aGUgcGluZyB3aWxsIGJlCi0gICAgICAgICMgZnJhZ21lbnRlZCBvbiB0aGUgbG9naWNhbCBj
aGFubmVsLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFt
ZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEwKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICB0aW1lLnNsZWVwKDEpCi0KLSAg
ICAgICAgIyBSZXBsZW5pc2ggcmVtYWluaW5nIDMgKyA2IGJ5dGVzLgotICAgICAgICBmbG93X2Nv
bnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1
b3RhPTkpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9s
KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0K
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1l
b3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0
dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyBXb3JsZCEn
XSwgbWVzc2FnZXMpCi0gICAgICAgIGNvbnRyb2xfbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbW1vbi5PUENPREVfUElORywgY29udHJvbF9tZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgY29udHJvbF9tZXNzYWdlc1swXVsnbWVz
c2FnZSddKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9mcmFnbWVudGVkX3R3b19waW5nX3doaWxlX3Nl
bmRpbmdfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVy
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0
Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9G
T1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0
X2hlYWRlcigKLSAgICAgICAgICAgIHBhdGg9Jy90d29fcGluZ193aGlsZV9oZWxsb193b3JsZCcp
Ci0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVl
c3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMg
QXBwbGljYXRpb24gd2lsbCBzZW5kOgotICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdIZWxsbyAn
IHdpdGggZmluPTAKLSAgICAgICAgIyAtIHBpbmcgd2l0aCAnUGluZyEnIG1lc3NhZ2UKLSAgICAg
ICAgIyAtIHBpbmcgd2l0aCAnUG9uZyEnIG1lc3NhZ2UKLSAgICAgICAgIyAtIHRleHQgbWVzc2Fn
ZSAnV29ybGQhJyB3aXRoIGZpbj0xCi0gICAgICAgICMgUmVwbGVuaXNoICg2ICsgMSkgKyAoMiAr
IDEpIGJ5dGVzIHNvIHRoYXQgdGhlIGZpcnN0IHBpbmcgd2lsbCBiZQotICAgICAgICAjIGZyYWdt
ZW50ZWQgb24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2Ny
ZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xMCkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAg
ICAgdGltZS5zbGVlcCgxKQotCi0gICAgICAgICMgUmVwbGVuaXNoIHJlbWFpbmluZyAzICsgKDUg
KyAxKSArIDYgYnl0ZXMuIFRoZSBzZWNvbmQgcGluZyB3b24ndAotICAgICAgICAjIGJlIGZyYWdt
ZW50ZWQgb24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2Ny
ZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xNSkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0K
LSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2Fn
ZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxkISddLCBtZXNzYWdl
cykKLSAgICAgICAgY29udHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3Jp
dHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9u
Lk9QQ09ERV9QSU5HLCBjb250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnUGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBjb250cm9sX21lc3Nh
Z2VzWzFdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUG9uZyEnLCBjb250
cm9sX21lc3NhZ2VzWzFdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Ryb3BfY2hh
bm5lbChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAg
ICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5k
bGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9o
YW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAjIERyb3BDaGFubmVsIGZvciBjaGFubmVsIGlkIDEg
d2hpY2ggZG9lc24ndCBoYXZlIHJlYXNvbi4KLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfYmluYXJ5
X2ZyYW1lKCdceDAwXHg2MFx4MDFceDAwJywgbWFzaz1UcnVlKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhf
aGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5u
ZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0
X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4
Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXgu
X0RST1BfQ09ERV9BQ0tOT1dMRURHRUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9j
aGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBkcm9wX2NoYW5u
ZWwuY2hhbm5lbF9pZCkKLQotICAgIGRlZiB0ZXN0X3R3b19mbG93X2NvbnRyb2woc2VsZik6Ci0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNo
ZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4
SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgp
Ci0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1C
RVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRk
X2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAg
ICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggNSBi
eXRlcy4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT01KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgMTAgYnl0ZXMuIFRoZSBz
ZXJ2ZXIgd2lsbCB0cnkgZWNobyBiYWNrIDEwIGJ5dGVzLgotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG9Xb3JsZCcpKQotCi0gICAgICAgICMgUmVwbGVuaXNoIDUg
KyAxIChwZXItbWVzc2FnZSBleHRyYSBjb3N0KSBieXRlcy4KLSAgICAgICAgZmxvd19jb250cm9s
ID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQot
ICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdl
cygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG9Xb3JsZCddLCBtZXNzYWdlcykK
LSAgICAgICAgcmVjZWl2ZWRfZmxvd19jb250cm9scyA9IFsKLSAgICAgICAgICAgIGIgZm9yIGIg
aW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAg
ICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wgYW5kIGIu
Y2hhbm5lbF9pZCA9PSAyXQotICAgICAgICAjIFJlcGxlbmlzaG1lbnQgZm9yICdIZWxsb1dvcmxk
JyArIDEKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMSwgcmVjZWl2ZWRfZmxvd19jb250cm9s
c1swXS5zZW5kX3F1b3RhKQotICAgICAgICAjIFJlcGxlbmlzaG1lbnQgZm9yICdHb29kYnllJyAr
IDEKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4LCByZWNlaXZlZF9mbG93X2NvbnRyb2xzWzFd
LnNlbmRfcXVvdGEpCi0KLSAgICBkZWYgdGVzdF9ub19zZW5kX3F1b3RhX29uX3NlcnZlcihzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlz
cGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4
Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0
YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFM
X05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG9Xb3JsZCcpKQotCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgIyBKdXN0IHdhaXQgZm9y
IDEgc2VjIHNvIHRoYXQgdGhlIHNlcnZlciBhdHRlbXB0cyB0byBlY2hvIGJhY2sKLSAgICAgICAg
IyAnSGVsbG9Xb3JsZCcuCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobXV4X2hhbmRsZXIud2Fp
dF91bnRpbF9kb25lKHRpbWVvdXQ9MSkpCi0KLSAgICAgICAgIyBObyBtZXNzYWdlIHNob3VsZCBi
ZSBzZW50IG9uIGNoYW5uZWwgMi4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3Is
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9tZXNzYWdlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMikKLQotICAgIGRlZiB0ZXN0
X25vX3NlbmRfcXVvdGFfb25fc2VydmVyX2Zvcl9wZXJtZXNzYWdlX2V4dHJhX2Nvc3Qoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3Bh
dGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5f
TXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFy
dCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9O
VU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAg
YWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgK
LSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9s
ID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgICMg
UmVwbGVuaXNoIG9ubHkgbGVuKCdXb3JsZCcpIGJ5dGVzLgotICAgICAgICBmbG93X2NvbnRyb2wg
PSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTUp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotICAg
ICAgICAjIFNlcnZlciBzaG91bGQgbm90IGNhbGxiYWNrIGZvciB0aGlzIG1lc3NhZ2UuCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdXb3JsZCcpKQotCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgIyBKdXN0
IHdhaXQgZm9yIDEgc2VjIHNvIHRoYXQgdGhlIHNlcnZlciBhdHRlbXB0cyB0byBlY2hvIGJhY2sK
LSAgICAgICAgIyAnV29ybGQnLgotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTEpKQotCi0gICAgICAgICMgT25seSBvbmUgbWVzc2Fn
ZSBzaG91bGQgYmUgc2VudCBvbiBjaGFubmVsIDIuCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVz
dC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoWydIZWxsbyddLCBtZXNzYWdlcykKLQotICAgIGRlZiB0ZXN0X3F1b3RhX3Zpb2xhdGlv
bl9ieV9jbGllbnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywgMCkKLQotICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQot
ICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG9Xb3JsZCcpKQotCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAg
IGNvbnRyb2xfYmxvY2tzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xf
YmxvY2tzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg1LCBsZW4oY29udHJvbF9ibG9ja3Mp
KQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiBj
b250cm9sX2Jsb2NrcwotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RF
X0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9T
RU5EX1FVT1RBX1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5u
ZWwuZHJvcF9jb2RlKQotCi0gICAgZGVmIHRlc3RfY29uc3VtZV9xdW90YV9lbXB0eV9tZXNzYWdl
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAg
ICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIg
PSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRs
ZXIuc3RhcnQoKQotICAgICAgICAjIENsaWVudCBoYXMgMSBieXRlIHF1b3RhLgotICAgICAgICBt
dXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5O
RUxfU0xPVFMsIDEpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVl
c3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9
MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFu
ZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVs
X3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xf
ZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0yKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAgICAgIyBTZW5kIGFuIGVtcHR5IG1l
c3NhZ2UuIFB5d2Vic29ja2V0IGFsd2F5cyByZXBsZW5pc2hlcyAxIGJ5dGUgcXVvdGEKLSAgICAg
ICAgIyBmb3IgZW1wdHkgbWVzc2FnZQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT0nJykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLSAgICAgICAgIyBUaGlzIG1lc3NhZ2UgdmlvbGF0ZXMgcXVvdGEgb24gY2hhbm5lbCBp
ZCAyLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAg
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGlt
ZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihkaXNwYXRjaGVyLmNo
YW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywg
ZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlc1swXSkKLQotICAgICAgICByZWNl
aXZlZF9mbG93X2NvbnRyb2xzID0gWwotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5v
cGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCBhbmQgYi5jaGFubmVsX2lkID09
IDJdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlY2VpdmVkX2Zsb3dfY29udHJv
bHMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIHJlY2VpdmVkX2Zsb3dfY29udHJvbHNb
MF0uc2VuZF9xdW90YSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAg
ICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9j
a3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hB
Tk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9p
ZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9TRU5EX1FVT1RBX1ZJ
T0xBVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2Rl
KQotCi0gICAgZGVmIHRlc3RfY29uc3VtZV9xdW90YV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3Bh
dGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5f
TXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFy
dCgpCi0gICAgICAgICMgQ2xpZW50IGhhcyBsZW4oJ0hlbGxvJykgKyBsZW4oJ0dvb2RieWUnKSAr
IDIgYnl0ZXMgcXVvdGEuCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11
eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywgMTQpCi0KLSAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAg
ICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFt
ZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVu
Y29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250
cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90
YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlJywgZmluPUZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1RF
WFQpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAg
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nbGxvJywgZmluPVRy
dWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENP
REVfQ09OVElOVUFUSU9OKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2Fn
ZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29v
ZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGls
X2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlv
bi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVs
bG8nXSwgbWVzc2FnZXMpCi0KLSAgICBkZWYgdGVzdF9mcmFnbWVudGVkX2NvbnRyb2xfbWVzc2Fn
ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAg
ICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVy
ID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5k
bGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9J
TklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL3BpbmcnKQot
ICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAjIFJl
cGxlbmlzaCB0b3RhbCA2IGJ5dGVzIGluIDMgRmxvd0NvbnRyb2xzLgotICAgICAgICBmbG93X2Nv
bnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1
b3RhPTEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9s
KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9m
bG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0zKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAg
ICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3Nh
Z2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBtZXNz
YWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgbWVz
c2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X2NoYW5uZWxfc2xvdF92aW9sYXRp
b25fYnlfY2xpZW50KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVl
c3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAg
bXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAg
ICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9z
bG90cyhzbG90cz0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5k
X3F1b3RhPW11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAg
IGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUo
Ci0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotICAgICAgICBmbG93X2NvbnRyb2wg
PSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotCi0gICAgICAg
ICMgVGhpcyByZXF1ZXN0IHNob3VsZCBiZSByZWplY3RlZC4KLSAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRk
X2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAg
ICAgICAgICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9j
cmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J0hlbGxvJykpCi0KLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9l
dmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZGlzcGF0Y2hlci5j
aGFubmVsX2V2ZW50cy5oYXNfa2V5KDMpKQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAot
ICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29u
dHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RF
X0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBkcm9wX2NoYW5uZWwu
Y2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9ORVdf
Q0hBTk5FTF9TTE9UX1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2No
YW5uZWwuZHJvcF9jb2RlKQotCi0gICAgZGVmIHRlc3RfcXVvdGFfb3ZlcmZsb3dfYnlfY2xpZW50
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAg
ICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIg
PSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRs
ZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhzbG90cz0x
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kX3F1b3RhPW11eC5f
SU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0g
X2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVs
X3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAg
ICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotICAgICAgICAjIFJlcGxlbmlzaCAweDdGRkZGRkZGRkZG
RkZGRkYgYnl0ZXMgdHdpY2UuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19j
b250cm9sX2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgcmVw
bGVuaXNoZWRfcXVvdGE9MHg3RkZGRkZGRkZGRkZGRkZGKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRs
ZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0g
bmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0
dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVY
X09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgZHJvcF9j
aGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NP
REVfU0VORF9RVU9UQV9PVkVSRkxPVywKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2No
YW5uZWwuZHJvcF9jb2RlKQotCi0gICAgZGVmIHRlc3RfaW52YWxpZF9lbmNhcHN1bGF0ZWRfbWVz
c2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAg
ICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5k
bGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9o
YW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICBmaXJzdF9ieXRlID0gKG11eC5fTVVYX09QQ09ERV9B
RERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpCi0gICAgICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRl
KSArCi0gICAgICAgICAgICAgICAgIG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMSkgKwotICAgICAg
ICAgICAgICAgICBtdXguX2VuY29kZV9udW1iZXIoMCkpCi0gICAgICAgIHBheWxvYWQgPSBtdXgu
X2VuY29kZV9jaGFubmVsX2lkKG11eC5fQ09OVFJPTF9DSEFOTkVMX0lEKSArIGJsb2NrCi0gICAg
ICAgIHRleHRfZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKHBheWxvYWQsIG9wY29kZT1jb21t
b24uT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyh0ZXh0X2Zy
YW1lKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2Rv
bmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAg
ICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9j
a3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hB
Tk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9JTlZBTElEX0VO
Q0FQU1VMQVRJTkdfTUVTU0FHRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5u
ZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5U
RVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfY2hhbm5lbF9pZF90
cnVuY2F0ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgp
Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhf
aGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBt
dXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBUaGUgbGFzdCBieXRlIG9mIHRoZSBjaGFu
bmVsIGlkIGlzIG1pc3NpbmcuCi0gICAgICAgIGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgn
XHg4MCcsIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhm
cmFtZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAg
ICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxv
Y2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NI
QU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfQ0hBTk5FTF9J
RF9UUlVOQ0FURUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3Bf
Y29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VO
RFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0ZXN0X2lubmVyX2ZyYW1lX3RydW5jYXRl
ZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAg
ICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVy
ID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5k
bGVyLnN0YXJ0KCkKLQotICAgICAgICAjIEp1c3QgY29udGFpbiBjaGFubmVsIGlkIDEuCi0gICAg
ICAgIGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMScsIG1hc2s9VHJ1ZSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkKLQotICAgICAgICBzZWxmLmFz
c2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAg
ICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIu
b3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfRU5DQVBTVUxBVEVEX0ZSQU1FX0lTX1RSVU5DQVRFRCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1Is
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9z
ZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfdW5rbm93bl9tdXhfb3Bjb2RlKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0g
X011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRs
ZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0g
ICAgICAgICMgVW5kZWZpbmVkIG9wY29kZSA1Ci0gICAgICAgIGZyYW1lID0gY3JlYXRlX2JpbmFy
eV9mcmFtZSgnXHgwMFx4YTAnLCBtYXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5l
eHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9P
UENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9D
T0RFX1VOS05PV05fTVVYX09QQ09ERSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2No
YW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNf
SU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfaW52YWxpZF9t
dXhfY29udHJvbF9ibG9jayhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19y
ZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAg
ICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0g
ICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAjIERyb3BDaGFubmVsIGNvbnRh
aW5zIDEgYnl0ZSByZWFzb24KLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKCdc
eDAwXHg2MFx4MDBceDAxXHgwMCcsIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhmcmFtZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRs
ZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0g
bmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0
dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVY
X09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9Q
X0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1v
bi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3Rf
cGVybWVzc2FnZV9jb21wcmVzcyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0g
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
Ci0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCkKLQotICAgICAgICAjIEVuYWJsZSBwZXJtZXNzYWdlIGNvbXByZXNzIGV4dGVuc2lvbiBv
biBsb2dpY2FsIGNoYW5uZWwgMi4KLSAgICAgICAgZXh0ZW5zaW9ucyA9ICclczsgbWV0aG9kPWRl
ZmxhdGUnICUgKAotICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhU
RU5TSU9OKQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFk
ZXIocGF0aD0nL2VjaG8nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXh0ZW5zaW9ucz1leHRlbnNpb25zKQotICAgICAgICBhZGRfY2hhbm5lbF9y
ZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAg
Y2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9
ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
YWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zs
b3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIwKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNl
bmQgY29tcHJlc3NlZCAnSGVsbG8nIHR3aWNlLgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29t
cHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5E
RUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMSA9IGNv
bXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8xICs9IGNv
bXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxv
MSA9IGNvbXByZXNzZWRfaGVsbG8xWzotNF0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsbzEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcnN2MT1UcnVlKSkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbzIgPSBjb21wcmVzcy5j
b21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMiArPSBjb21wcmVzcy5m
bHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbzIgPSBjb21w
cmVzc2VkX2hlbGxvMls6LTRdCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Ci0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdl
PWNvbXByZXNzZWRfaGVsbG8yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJz
djE9VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJywgJ0hlbGxvJ10s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5t
ZXNzYWdlcykKLSAgICAgICAgIyBXcml0dGVuICdIZWxsbydzIHNob3VsZCBiZSBjb21wcmVzc2Vk
LgotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNz
YWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihtZXNzYWdlcykpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcHJlc3NlZF9oZWxsbzEsIG1lc3NhZ2VzWzBdKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8yLCBtZXNzYWdlc1sxXSkKLQot
Ci0gICAgZGVmIHRlc3RfcGVybWVzc2FnZV9jb21wcmVzc19mcmFnbWVudGVkX21lc3NhZ2Uoc2Vs
Zik6Ci0gICAgICAgIGV4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucygKLSAgICAg
ICAgICAgICclczsgbWV0aG9kPWRlZmxhdGUnICUgY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJ
T05fRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoCi0g
ICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1leHRlbnNpb25zKQotICAgICAg
ICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIg
PSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRs
ZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lO
SVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgICMg
U2VuZCBjb21wcmVzc2VkICdIZWxsb0hlbGxvSGVsbG8nIGFzIGZyYWdtZW50ZWQgbWVzc2FnZS4K
LSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5a
X0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsb0hlbGxvSGVs
bG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6
LTRdCi0KLSAgICAgICAgbSA9IGxlbihjb21wcmVzc2VkX2hlbGxvKSAvIDIKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZT1jb21wcmVzc2VkX2hlbGxvWzptXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaW49RmFsc2UsIHJzdjE9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1jb21wcmVz
c2VkX2hlbGxvW206XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1
ZSwgcnN2MT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9
Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9o
YW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoWydIZWxsb0hlbGxvSGVsbG8nXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNw
YXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBtZXNzYWdlcyA9IHJl
cXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygxKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29t
cHJlc3NlZF9oZWxsbywgbWVzc2FnZXNbMF0pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2JhZF9m
cmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAg
ICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQot
ICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFu
bmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElF
TlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVy
KHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRk
X2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rp
bmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
Ci0KLSAgICAgICAgIyBTZW5kIGEgZnJhbWUgd2l0aCBmaW49RmFsc2UsIGFuZCB0aGVuIHNlbmQg
YSBmcmFtZSB3aXRoCi0gICAgICAgICMgb3Bjb2RlPVRFWFQgKG5vdCBDT05USU5VQVRJT04pLiBM
b2dpY2FsIGNoYW5uZWwgMiBzaG91bGQgYmUgZHJvcHBlZC4KLSAgICAgICAgZnJhbWUxID0gX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMSkKLSAgICAgICAgZnJhbWUyID0gX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2U9J1dvcmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoZnJhbWUyKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9y
ZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3Qg
PSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVs
X2lkPTMsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVk
X2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hh
bm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgU2VuZCBhIGZyYW1lIHdpdGggb3Bjb2RlPUNPTlRJ
TlVBVElPTiB3aXRob3V0IGEgcHJlY2VkaW5nIGZyYW1lCi0gICAgICAgICMgdGhlIGZpbiBvZiB3
aGljaCBpcyBub3Qgc2V0LiBMb2dpY2FsIGNoYW5uZWwgMyBzaG91bGQgYmUgZHJvcHBlZC4KLSAg
ICAgICAgZnJhbWUzID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFU
SU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMykKLQotICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2Vj
aG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9y
ZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD00LCBlbmNvZGluZz0wLAotICAg
ICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAg
ICAjIFNlbmQgYSBmcmFtZSB3aXRoIG9wY29kZT1QSU5HIGFuZCBmaW49RmFsc2UsIGFuZCB0aGVu
IHNlbmQgYSBmcmFtZQotICAgICAgICAjIHdpdGggb3Bjb2RlPVRFWFQgKG5vdCBDT05USU5VQVRJ
T04pLiBMb2dpY2FsIGNoYW5uZWwgNCBzaG91bGQgYmUKLSAgICAgICAgIyBkcm9wcGVkLgotICAg
ICAgICBmcmFtZTQgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD00LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUGluZycsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lNCkKLSAgICAgICAgZnJhbWU1
ID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9NCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZTUpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4
X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFu
bmVscyA9IFsKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5f
TVVYX09QQ09ERV9EUk9QX0NIQU5ORUxdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywgbGVu
KGRyb3BfY2hhbm5lbHMpKQotICAgICAgICBmb3IgZCBpbiBkcm9wX2NoYW5uZWxzOgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9CQURfRlJBR01FTlRBVElPTiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5kcm9wX2NvZGUpCi0KLQotaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3
PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9zdHJlYW0ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L3Rlc3Rfc3RyZWFtLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWFj
ZmViMDQ4ZDNiMjAzMmE3OTQ4Y2ZhMmFkZWE3Y2U2NGY5NWFlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9zdHJlYW0ucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMK
LSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBzdHJlYW0gbW9kdWxlLiIiIgotCi0K
LWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0
aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHN0cmVhbQotCi0K
LWNsYXNzIFN0cmVhbVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3Qg
Zm9yIHN0cmVhbSBtb2R1bGUuIiIiCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVfaGVhZGVyKHNlbGYp
OgotICAgICAgICAjIG1vcmUsIHJzdjEsIC4uLiwgcnN2NCBhcmUgYWxsIHRydWUKLSAgICAgICAg
aGVhZGVyID0gc3RyZWFtLmNyZWF0ZV9oZWFkZXIoY29tbW9uLk9QQ09ERV9URVhULCAxLCAxLCAx
LCAxLCAxLCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGYxXHg4MScsIGhlYWRlcikK
LQotICAgICAgICAjIE1heGltdW0gcGF5bG9hZCBzaXplCi0gICAgICAgIGhlYWRlciA9IHN0cmVh
bS5jcmVhdGVfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLk9QQ09ERV9URVhULCAoMSA8PCA2
MykgLSAxLCAwLCAwLCAwLCAwLCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAxXHg3
Zlx4N2ZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmJywgaGVhZGVyKQotCi0gICAgICAgICMg
SW52YWxpZCBvcGNvZGUgMHgxMAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uY3JlYXRlX2hlYWRlciwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMCwgMCwgMCwgMCwgMCwgMCkKLQotICAgICAgICAj
IEludmFsaWQgdmFsdWUgMHhmIHBhc3NlZCB0byBtb3JlIHBhcmFtZXRlcgotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJl
YW0uY3JlYXRlX2hlYWRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLk9QQ09E
RV9URVhULCAwLCAweGYsIDAsIDAsIDAsIDApCi0KLSAgICAgICAgIyBUb28gbG9uZyBwYXlsb2Fk
X2xlbmd0aAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJlYW0uY3JlYXRlX2hlYWRlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29tbW9uLk9QQ09ERV9URVhULCAxIDw8IDYzLCAwLCAwLCAwLCAwLCAwKQotCi0K
LWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3Rfc3RyZWFtX2hp
eGllNzUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3Rfc3RyZWFtX2hpeGllNzUucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhOWFjNzEzMGI3MzA0ZWI5MmRiYmJjMTUzM2FhNDE1NDVl
MDI0NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTkg
KzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJUZXN0cyBmb3Igc3RyZWFtIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1w
b3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNv
Y2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFt
SGl4aWU3NQotZnJvbSB0ZXN0LnRlc3RfbXNndXRpbCBpbXBvcnQgX2NyZWF0ZV9yZXF1ZXN0X2hp
eGllNzUKLQotCi1jbGFzcyBTdHJlYW1IaXhpZTc1VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g
ICAgIiIiQSB1bml0dGVzdCBmb3IgU3RyZWFtSGl4aWU3NSBjbGFzcy4iIiIKLQotICAgIGRlZiB0
ZXN0X3BheWxvYWRfbGVuZ3RoKHNlbGYpOgotICAgICAgICBmb3IgbGVuZ3RoLCBieXRlcyBpbiAo
KDAsICdceDAwJyksICgweDdmLCAnXHg3ZicpLCAoMHg4MCwgJ1x4ODFceDAwJyksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoMHgxMjM0LCAnXHg4MFx4YTRceDM0JykpOgotICAgICAg
ICAgICAgdGVzdF9zdHJlYW0gPSBTdHJlYW1IaXhpZTc1KF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1
KGJ5dGVzKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg
bGVuZ3RoLCB0ZXN0X3N0cmVhbS5fcmVhZF9wYXlsb2FkX2xlbmd0aF9oaXhpZTc1KCkpCi0KLQot
aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZp
OnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF91dGlsLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0X3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDIwZjRhYjA1OTY1MmM1ODY5ZWMyMDVhMTI4ZGY5MzkxNGNhOGM3MWUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3V0aWwu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMDAgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
Ci0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgdXRpbCBtb2R1bGUuIiIiCi0K
LQotaW1wb3J0IG9zCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QK
LQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9w
eXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0K
LQotX1RFU1RfREFUQV9ESVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylb
MF0sICd0ZXN0ZGF0YScpCi0KLQotY2xhc3MgVXRpbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgot
ICAgICIiIkEgdW5pdHRlc3QgZm9yIHV0aWwgbW9kdWxlLiIiIgotCi0gICAgZGVmIHRlc3RfZ2V0
X3N0YWNrX3RyYWNlKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdOb25lXG4nLCB1
dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBhID0gMSAv
IDAgICMgSW50ZW50aW9uYWxseSByYWlzZSBleGNlcHRpb24uCi0gICAgICAgIGV4Y2VwdCBFeGNl
cHRpb246Ci0gICAgICAgICAgICB0cmFjZSA9IHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkKLSAgICAg
ICAgICAgIHNlbGYuZmFpbFVubGVzcyh0cmFjZS5zdGFydHN3aXRoKCdUcmFjZWJhY2snKSkKLSAg
ICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyh0cmFjZS5maW5kKCdaZXJvRGl2aXNpb25FcnJvcicp
ICE9IC0xKQotCi0gICAgZGVmIHRlc3RfcHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbihzZWxm
KToKLSAgICAgICAgZXhjID0gRXhjZXB0aW9uKCdXb3JsZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1dvcmxkJywgc3RyKGV4YykpCi0gICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3Rv
X2V4Y2VwdGlvbignSGVsbG8gJywgZXhjKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxs
byBXb3JsZCcsIHN0cihleGMpKQotCi0gICAgZGVmIHRlc3RfZ2V0X3NjcmlwdF9pbnRlcnAoc2Vs
Zik6Ci0gICAgICAgIGN5Z3dpbl9wYXRoID0gJ2M6XFxjeWd3aW5cXGJpbicKLSAgICAgICAgY3ln
d2luX3BlcmwgPSBvcy5wYXRoLmpvaW4oY3lnd2luX3BhdGgsICdwZXJsJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKAotICAgICAgICAgICAg
b3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnUkVBRE1FJykpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE5vbmUsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCi0gICAgICAgICAgICBvcy5w
YXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdSRUFETUUnKSwgY3lnd2luX3BhdGgpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCcvdXNyL2Jpbi9wZXJsIC13VCcsIHV0aWwuZ2V0X3NjcmlwdF9p
bnRlcnAoCi0gICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdoZWxsby5w
bCcpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjeWd3aW5fcGVybCArICcgLXdUJywgdXRp
bC5nZXRfc2NyaXB0X2ludGVycCgKLSAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRB
X0RJUiwgJ2hlbGxvLnBsJyksIGN5Z3dpbl9wYXRoKSkKLQotICAgIGRlZiB0ZXN0X2hleGlmeShz
ZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNjEgN2EgNDEgNWEgMzAgMzkgMjAgMDkg
MGQgMGEgMDAgZmYnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWwuaGV4aWZ5KCdhekFa
MDkgXHRcclxuXHgwMFx4ZmYnKSkKLQotCi1jbGFzcyBSZXBlYXRlZFhvck1hc2tlclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIFJlcGVhdGVkWG9yTWFza2Vy
IGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3RfbWFzayhzZWxmKToKLSAgICAgICAgIyBTYW1wbGUg
aW5wdXQgZTYsOTcsYTUgaXMgVSs2NWU1IGluIFVURi04Ci0gICAgICAgIG1hc2tlciA9IHV0aWwu
UmVwZWF0ZWRYb3JNYXNrZXIoJ1x4ZmZceGZmXHhmZlx4ZmYnKQotICAgICAgICByZXN1bHQgPSBt
YXNrZXIubWFzaygnXHhlNlx4OTdceGE1JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgx
OVx4NjhceDVhJywgcmVzdWx0KQotCi0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JN
YXNrZXIoJ1x4MDBceDAwXHgwMFx4MDAnKQotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygn
XHhlNlx4OTdceGE1JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhlNlx4OTdceGE1Jywg
cmVzdWx0KQotCi0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4ZTZc
eDk3XHhhNVx4MjAnKQotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygnXHhlNlx4OTdceGE1
JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFx4MDBceDAwJywgcmVzdWx0KQotCi0g
ICAgZGVmIHRlc3RfbWFza190d2ljZShzZWxmKToKLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBl
YXRlZFhvck1hc2tlcignXHgwMFx4N2ZceGZmXHgyMCcpCi0gICAgICAgICMgbWFza1swXSwgbWFz
a1sxXSwgLi4uIHdpbGwgYmUgdXNlZC4KLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2soJ1x4
MDBceDAwXHgwMFx4MDBceDAwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFx4N2Zc
eGZmXHgyMFx4MDAnLCByZXN1bHQpCi0gICAgICAgICMgbWFza1syXSwgbWFza1swXSwgLi4uIHdp
bGwgYmUgdXNlZCBmb3IgdGhlIG5leHQgY2FsbC4KLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1h
c2soJ1x4MDBceDAwXHgwMFx4MDBceDAwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg3
Zlx4ZmZceDIwXHgwMFx4N2YnLCByZXN1bHQpCi0KLSAgICBkZWYgdGVzdF9tYXNrX2xhcmdlX2Rh
dGEoc2VsZik6Ci0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ21BU2sn
KQotICAgICAgICBvcmlnaW5hbCA9ICcnLmpvaW4oW2NocihpICUgMjU2KSBmb3IgaSBpbiB4cmFu
Z2UoMTAwMCldKQotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhvcmlnaW5hbCkKLSAgICAg
ICAgZXhwZWN0ZWQgPSAnJy5qb2luKAotICAgICAgICAgICAgICAgIFtjaHIoKGkgJSAyNTYpIF4g
b3JkKCdtQVNrJ1tpICUgNF0pKSBmb3IgaSBpbiB4cmFuZ2UoMTAwMCldKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXN1bHQpCi0KLSAgICAgICAgbWFza2VyID0gdXRpbC5S
ZXBlYXRlZFhvck1hc2tlcignTWFTaycpCi0gICAgICAgIGZpcnN0X3BhcnQgPSAnVGhlIFdlYlNv
Y2tldCBQcm90b2NvbCBlbmFibGVzIHR3by13YXkgY29tbXVuaWNhdGlvbi4nCi0gICAgICAgIHJl
c3VsdCA9IG1hc2tlci5tYXNrKGZpcnN0X3BhcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICAgICAgJ1x4MTlcdDZLXHgxYVx4MDQxOCJceDAyOFx4MGU5QVx4MDNceDE5
Ilx4MTU8XHgwOCJccnNceDBlIycKLSAgICAgICAgICAgICAgICAnXHgwMDFceDA3KFx4MTJzXHgx
ZjpceDBlflx4MWMsXHgxOHNceDA4Ilx4MGM+XHgxZSNceDA4MFxuOScKLSAgICAgICAgICAgICAg
ICAnXHgwODxceDA1YycsCi0gICAgICAgICAgICAgICAgcmVzdWx0KQotICAgICAgICBzZWNvbmRf
cGFydCA9ICdJdCBoYXMgdHdvIHBhcnRzOiBhIGhhbmRzaGFrZSBhbmQgdGhlIGRhdGEgdHJhbnNm
ZXIuJwotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhzZWNvbmRfcGFydCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICAiKCdLJVx4MDAgSzlceDE2PEs9XHgw
MCFceDFmPltzXG5tXHQyXHgwNSlceDEyO1xuJlx4MDRzXG4jIgotICAgICAgICAgICAgICAgICJc
eDA1c1x4MWYlXHgwNHNceDBmLFx4MTUySzlceDEzMlx4MDU+XHgwNzZceDE5YyIsCi0gICAgICAg
ICAgICAgICAgcmVzdWx0KQotCi0KLWRlZiBnZXRfcmFuZG9tX3NlY3Rpb24oc291cmNlLCBtaW5f
bnVtX2NodW5rcyk6Ci0gICAgY2h1bmtzID0gW10KLSAgICBieXRlc19jaHVua2VkID0gMAotCi0g
ICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8IGxlbihzb3VyY2UpOgotICAgICAgICBjaHVua19zaXpl
ID0gcmFuZG9tLnJhbmRpbnQoCi0gICAgICAgICAgICAxLAotICAgICAgICAgICAgbWluKGxlbihz
b3VyY2UpIC8gbWluX251bV9jaHVua3MsIGxlbihzb3VyY2UpIC0gYnl0ZXNfY2h1bmtlZCkpCi0g
ICAgICAgIGNodW5rID0gc291cmNlW2J5dGVzX2NodW5rZWQ6Ynl0ZXNfY2h1bmtlZCArIGNodW5r
X3NpemVdCi0gICAgICAgIGNodW5rcy5hcHBlbmQoY2h1bmspCi0gICAgICAgIGJ5dGVzX2NodW5r
ZWQgKz0gY2h1bmtfc2l6ZQotCi0gICAgcmV0dXJuIGNodW5rcwotCi0KLWNsYXNzIEluZmxhdGVy
RGVmbGF0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBf
SW5mbGF0ZXIgYW5kIF9EZWZsYXRlciBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X2luZmxhdGVf
ZGVmbGF0ZV9kZWZhdWx0KHNlbGYpOgotICAgICAgICBpbnB1dCA9IGInaGVsbG8nICsgJy0nICog
MzAwMDAgKyBiJ2hlbGxvJwotICAgICAgICBpbmZsYXRlcjE1ID0gdXRpbC5fSW5mbGF0ZXIoMTUp
Ci0gICAgICAgIGRlZmxhdGVyMTUgPSB1dGlsLl9EZWZsYXRlcigxNSkKLSAgICAgICAgaW5mbGF0
ZXI4ID0gdXRpbC5fSW5mbGF0ZXIoOCkKLSAgICAgICAgZGVmbGF0ZXI4ID0gdXRpbC5fRGVmbGF0
ZXIoOCkKLQotICAgICAgICBjb21wcmVzc2VkMTUgPSBkZWZsYXRlcjE1LmNvbXByZXNzX2FuZF9m
aW5pc2goaW5wdXQpCi0gICAgICAgIGNvbXByZXNzZWQ4ID0gZGVmbGF0ZXI4LmNvbXByZXNzX2Fu
ZF9maW5pc2goaW5wdXQpCi0KLSAgICAgICAgaW5mbGF0ZXIxNS5hcHBlbmQoY29tcHJlc3NlZDE1
KQotICAgICAgICBpbmZsYXRlcjguYXBwZW5kKGNvbXByZXNzZWQ4KQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0Tm90RXF1YWwoY29tcHJlc3NlZDE1LCBjb21wcmVzc2VkOCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChpbnB1dCwgaW5mbGF0ZXIxNS5kZWNvbXByZXNzKC0xKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChpbnB1dCwgaW5mbGF0ZXI4LmRlY29tcHJlc3MoLTEpKQotCi0gICAgZGVm
IHRlc3RfcmFuZG9tX3NlY3Rpb24oc2VsZik6Ci0gICAgICAgIHJhbmRvbS5zZWVkKGE9MCkKLSAg
ICAgICAgc291cmNlID0gJycuam9pbigKLSAgICAgICAgICAgIFtjaHIocmFuZG9tLnJhbmRpbnQo
MCwgMjU1KSkgZm9yIGkgaW4geHJhbmdlKDEwMCAqIDEwMjQpXSkKLQotICAgICAgICBjaHVua2Vk
X2lucHV0ID0gZ2V0X3JhbmRvbV9zZWN0aW9uKHNvdXJjZSwgMTApCi0gICAgICAgIHByaW50ICJJ
bnB1dCBjaHVuayBzaXplczogJXIiICUgW2xlbihjKSBmb3IgYyBpbiBjaHVua2VkX2lucHV0XQot
Ci0gICAgICAgIGRlZmxhdGVyID0gdXRpbC5fRGVmbGF0ZXIoMTUpCi0gICAgICAgIGNvbXByZXNz
ZWQgPSBbXQotICAgICAgICBmb3IgY2h1bmsgaW4gY2h1bmtlZF9pbnB1dDoKLSAgICAgICAgICAg
IGNvbXByZXNzZWQuYXBwZW5kKGRlZmxhdGVyLmNvbXByZXNzKGNodW5rKSkKLSAgICAgICAgY29t
cHJlc3NlZC5hcHBlbmQoZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZpbmlzaCgnJykpCi0KLSAgICAg
ICAgY2h1bmtlZF9leHBlY3RhdGlvbiA9IGdldF9yYW5kb21fc2VjdGlvbihzb3VyY2UsIDEwKQot
ICAgICAgICBwcmludCAoIkV4cGVjdGF0aW9uIGNodW5rIHNpemVzOiAlciIgJQotICAgICAgICAg
ICAgICAgW2xlbihjKSBmb3IgYyBpbiBjaHVua2VkX2V4cGVjdGF0aW9uXSkKLQotICAgICAgICBp
bmZsYXRlciA9IHV0aWwuX0luZmxhdGVyKDE1KQotICAgICAgICBpbmZsYXRlci5hcHBlbmQoJycu
am9pbihjb21wcmVzc2VkKSkKLSAgICAgICAgZm9yIGNodW5rIGluIGNodW5rZWRfZXhwZWN0YXRp
b246Ci0gICAgICAgICAgICBkZWNvbXByZXNzZWQgPSBpbmZsYXRlci5kZWNvbXByZXNzKGxlbihj
aHVuaykpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNodW5rLCBkZWNvbXByZXNzZWQp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgaW5mbGF0ZXIuZGVjb21wcmVzcygtMSkp
Ci0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQot
Ci0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEv
UkVBRE1FIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9SRUFETUUKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGMwMDFhYTU1OTVjZGQxMzQwN2Y1NzI4ZWNkNTMyYTVkMTIyNjNlZmEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC90ZXN0ZGF0YS9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1UZXN0IGRhdGEg
ZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fi
b3J0X2J5X3VzZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9hYm9y
dF9ieV91c2VyX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzY3Zjk5MzBm
NzgyNGMzYTUzNTkxNGE1YjM3NzlmNmI2ZmJhMjQzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fi
b3J0X2J5X3VzZXJfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotIyBDb3B5
cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotCi0K
LWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICByYWlzZSBo
YW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbigiYWJvcnQgZm9yIHRlc3QiKQotCi0KLWRl
ZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtl
LkFib3J0ZWRCeVVzZXJFeGNlcHRpb24oImFib3J0IGZvciB0ZXN0IikKLQotCi0jIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxh
bmtfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9ibGFua193c2gucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmODdjNmFmMjNkZjA4ZWZlMzU3NWNhZTIw
OGRlNTAyMmNiYWE2NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9ibGFua193c2gucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgot
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0jIGludGVudGlv
bmFsbHkgbGVmdCBibGFuawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVy
cy9vcmlnaW5fY2hlY2tfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzEz
OWZhMTc2Y2MzNDE3YmU5NmRlNzk4ZTZhODFlZDE0OWIxOTkyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxl
cnMvb3JpZ2luX2NoZWNrX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLSMg
Q29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1
ZXN0KToKLSAgICBpZiByZXF1ZXN0LndzX29yaWdpbiA9PSAnaHR0cDovL2V4YW1wbGUuY29tJzoK
LSAgICAgICAgcmV0dXJuCi0gICAgcmFpc2UgVmFsdWVFcnJvcignVW5hY2NlcHRhYmxlIG9yaWdp
bjogJXInICUgcmVxdWVzdC53c19vcmlnaW4pCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoJ29yaWdpbl9jaGVj
a193c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVz
dGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ODJkMDIzMWVmMDBmMDJlMGQ5MGRmNjc4ZWI4MDRiYTQz
ODYyZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyX3dz
aC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LSIiIkV4Y2VwdGlvbiBpbiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEoKS4KLSIiIgotCi0KLWRl
ZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQot
ZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByYWlzZSBFeGNlcHRp
b24oJ0ludGVudGlvbmFsIEV4Y2VwdGlvbiBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAgICAg
ICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZp
OnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxl
cnMvc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDE3ZTdiZTE4MDJlM2M2NmM2Mzg0OTg3NWVhMzVlMjQwNmEzODFlNjAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0
YS9oYW5kbGVycy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0
NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJDb3JyZWN0IHNpZ25hdHVyZXMsIHdy
b25nIGZpbGUgbmFtZS4KLSIiIgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFr
ZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShy
ZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoCi0gICAgICAgICAgICAnc3Vi
L25vX3dzaF9hdF90aGVfZW5kLnB5IGlzIGNhbGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAg
ICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJz
L3N1Yi9ub25fY2FsbGFibGVfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVy
cy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjYzNTJlYjRjYTIzODk1MjIzOWUzNTQyNzI4Y2UzYjM4ZDgzZGQ2Yi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hh
bmRsZXJzL3N1Yi9ub25fY2FsbGFibGVfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAs
MCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiTm9uLWNhbGxhYmxlIGhhbmRsZXJzLgotIiIi
Ci0KLQotd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgPSBUcnVlCi13ZWJfc29ja2V0X3Ry
YW5zZmVyX2RhdGEgPSAxCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9wbGFpbl93c2gucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGRiM2ZmNjkzMDI1NmJjMWIxM2UyYzRjMmQxYzg0M2M0YjdjODBhYTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
NDAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFf
aGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zl
cl9kYXRhKHJlcXVlc3QpOgotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgnc3ViL3BsYWlu
X3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRs
ZXJzL3N1Yi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMv
c3ViL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YWQzZjJl
ODU5MTBjYjY3Y2EyMzZiMTQzZmQxMGE1YTI3N2VkZWQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMv
c3ViL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3RyYW5z
ZmVyX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dzaF9h
dF90aGVfZW5kLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2Nh
bGxhYmxlX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3BsYWlu
X3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX2hhbmRz
aGFrZV9zaWdfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3Jv
bmdfdHJhbnNmZXJfc2lnX3dzaC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0
YS9oYW5kbGVycy9zdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJmNjU5YmM5YWYwMWMxMDdlZjM1MDhiMmI1ZDAxNzNk
Y2Y1OTAwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dz
aC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LSIiIldyb25nIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIHNpZ25hdHVyZS4KLSIiIgot
Ci0KLWRlZiBub193ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBw
YXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdGUoCi0gICAgICAgICAgICAnc3ViL3dyb25nX2hhbmRzaGFrZV9z
aWdfd3NoLnB5IGlzIGNhbGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAgKHJlcXVlc3Qu
d3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3Jvbmdf
dHJhbnNmZXJfc2lnX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3Vi
L3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGUwZTJlNTUwNzk0YjdiOTkwZTBiNDRiMzNjZmMyZDRkMTUyZTZjMDQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDQ1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldyb25nIHdlYl9zb2NrZXRfdHJh
bnNmZXJfZGF0YSgpIHNpZ25hdHVyZS4KLSIiIgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJh
X2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIG5vX3dlYl9zb2NrZXRfdHJh
bnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoCi0gICAg
ICAgICAgICAnc3ViL3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkgaXMgY2FsbGVkIGZvciAlcywg
JXMnICUKLSAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3Rv
Y29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRh
L2hhbmRsZXJzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
NDAyOGFlNDc3NmNkNjc5ZGYzYjQzNDY4YzcxNjMxYTE1YWYwYjE5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFu
ZGxlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJfd3NoLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9ibGFua193c2gucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3RkYXRhL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTUz
MWY5MTM0MWY4NmZhYWU0ODEwYTdjMDIzNGY2NzQwN2IzMmEzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L3Rlc3RkYXRhL1JFQURNRQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhlZTcyNDBkYTI4OTkyMjNjNmMyMjQ5OTczNmFjYmRjNjNhZmQ1ODIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NsaWVudF9mb3JfdGVz
dGluZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvZW5kdG9lbmRfd2l0aF9leHRlcm5hbF9zZXJ2ZXIucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L21vY2sucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L211eF9jbGllbnRfZm9yX3Rl
c3RpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3J1bl9hbGwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3NldF9z
eXNfcGF0aC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9kaXNwYXRjaC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvdGVzdF9lbmR0b2VuZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9leHRlbnNpb25zLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5k
c2hha2VfaHliaS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0X2h0dHBfaGVhZGVyX3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3RfbWVtb3JpemluZ2ZpbGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbW9jay5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvdGVzdF9tc2d1dGlsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X211eC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdF9zdHJlYW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3Rfc3RyZWFtX2hp
eGllNzUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfdXRpbC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggN2QzMmE2YjZiYmJmODZjZTg4Y2U2OWFiYzNkZTVhNTM0MDAxNmM2
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL0NPUFlJTkcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL1JFQURN
RQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvX19pbml0X18ucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2
ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L19faW5pdF9fLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhv
biB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2FjZXJ0LnBlbSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC9jZXJ0L2NhY2VydC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkYWRh
ZTEyMWJkZDNhZGI3NDQzODNjZDNiZjA4YzIyNmY4NTU0YmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2FjZXJ0LnBlbQorKysg
L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQot
TUlJQ3ZEQ0NBaVdnQXdJQkFnSUpBS3FWZ2hrR0YxclNNQTBHQ1NxR1NJYjNEUUVCQlFVQU1Fa3hD
ekFKQmdOVgotQkFZVEFrcFFNUTR3REFZRFZRUUlFd1ZVYjJ0NWJ6RVVNQklHQTFVRUNoTUxjSGwz
WldKemIyTnJaWFF4RkRBUwotQmdOVkJBTVRDM0I1ZDJWaWMyOWphMlYwTUI0WERURXlNRFl3TmpB
M01qUXpNMW9YRFRNNU1UQXlNekEzTWpRegotTTFvd1NURUxNQWtHQTFVRUJoTUNTbEF4RGpBTUJn
TlZCQWdUQlZSdmEzbHZNUlF3RWdZRFZRUUtFd3R3ZVhkbAotWW5OdlkydGxkREVVTUJJR0ExVUVB
eE1MY0hsM1pXSnpiMk5yWlhRd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRAotZ1kwQU1JR0pBb0dC
QUtvU0VXMmJpUXhWck1NS2RuLzhQSnpEWWlTWERQUjlXUWJMUlJRMUdtNWprQ1lpYWhYVwotdTJD
YlRUaGZQUGZpMk5IQTNJK0hsVDdnTzl5UjdSVlV2TjZJU1V6R3dYREVxNGY0VU5xdFFPaFFhcXFL
K0NaOQotTE8vQmhPL1lZZk5yYlNQbFl6SFVLYVQ5ZXNlN3hPOVZ6VktMVytxVWYyTWpoNC8rU3p4
QkROUDdBZ01CQUFHagotZ2Fzd2dhZ3dIUVlEVlIwT0JCWUVGT3NXZHhDU3V5aHdhWmVhYjZCb1Ro
bzMrK2J6TUhrR0ExVWRJd1J5TUhDQQotRk9zV2R4Q1N1eWh3YVplYWI2Qm9UaG8zKytiem9VMmtT
ekJKTVFzd0NRWURWUVFHRXdKS1VERU9NQXdHQTFVRQotQ0JNRlZHOXJlVzh4RkRBU0JnTlZCQW9U
QzNCNWQyVmljMjlqYTJWME1SUXdFZ1lEVlFRREV3dHdlWGRsWW5OdgotWTJ0bGRJSUpBS3FWZ2hr
R0YxclNNQXdHQTFVZEV3UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ1lFQQotZ3NNSTFX
RVlxTncvamhVSWRyVEJjQ3hKMFg2aEp2QTl6aUtBTlZtMVJzKzRQM1lEQXJrUThiQ3I2eFkrS3c3
cwotWnAweUU3ZE04R01kaStEVTZoTDN0M0U1ZU1rVFMxeVpyOVdDSzRmMlJMbytldDk4c2VsWnlk
cEhlbUYzREpKMwotZ0FqOFN4NExCYUc4Q2IvV25FTVB2M014RzNmQkU1ZmF2RjZWNGpVMDdoUT0K
LS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2Nl
cnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2VydC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDI1Mzc5YTcyYjBkYWM1ZjQxOTc5YzgwMmM2NjNkZjhiODhkZWE4MjkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2Vy
dC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi1DZXJ0aWZpY2F0ZToKLSAgICBE
YXRhOgotICAgICAgICBWZXJzaW9uOiAzICgweDIpCi0gICAgICAgIFNlcmlhbCBOdW1iZXI6IDEg
KDB4MSkKLSAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMVdpdGhSU0FFbmNyeXB0aW9u
Ci0gICAgICAgIElzc3VlcjogQz1KUCwgU1Q9VG9reW8sIE89cHl3ZWJzb2NrZXQsIENOPXB5d2Vi
c29ja2V0Ci0gICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBKdW4gIDYg
MDc6MjU6MDggMjAxMiBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IE9jdCAyMyAwNzoyNTow
OCAyMDM5IEdNVAotICAgICAgICBTdWJqZWN0OiBDPUpQLCBTVD1Ub2t5bywgTz1weXdlYnNvY2tl
dCwgQ049cHl3ZWJzb2NrZXQKLSAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86Ci0gICAg
ICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgotICAgICAgICAgICAg
UlNBIFB1YmxpYyBLZXk6ICgxMDI0IGJpdCkKLSAgICAgICAgICAgICAgICBNb2R1bHVzICgxMDI0
IGJpdCk6Ci0gICAgICAgICAgICAgICAgICAgIDAwOmRlOjEwOmNlOjNhOjVhOjA0OmE0OjFjOjI5
OjkzOjVjOjIzOjgyOjFhOgotICAgICAgICAgICAgICAgICAgICBmMjowNjowMTplNjoyYjphNDow
ZjpkZDo3Nzo0OTo3Njo4OTowMzphMjoyMToKLSAgICAgICAgICAgICAgICAgICAgZGU6MDQ6NzU6
YzY6ZTI6ZGQ6ZmI6MzU6Mjc6M2E6YTI6OTI6OGU6MTI6NjI6Ci0gICAgICAgICAgICAgICAgICAg
IDJiOjNlOjFmOmY0Ojc4OmRmOmI2Ojk0OmNiOjI3OmQ2OmNiOmQ2OjM3OmQ3OgotICAgICAgICAg
ICAgICAgICAgICA1YzowODpmMDowOTozZTpjOTpjZToyNDoyZDowMDpjOTpkZjo0YTplMDo5OToK
LSAgICAgICAgICAgICAgICAgICAgZTU6ZmI6MjM6YTk6ZTI6ZDY6Yzk6M2Q6OTY6ZmE6MDE6ODg6
ZGU6NWE6ODk6Ci0gICAgICAgICAgICAgICAgICAgIGIwOmNmOjAzOjY3OjZmOjA0Ojg2OjFkOmVm
OjYyOjFjOjU1OmE5OjA3OjlhOgotICAgICAgICAgICAgICAgICAgICAyZTo2NjoyYTo3Mzo1Yjo0
Yzo2MjowMzpmOTo4Mjo4MzpkYjo2ODpiZjpiODoKLSAgICAgICAgICAgICAgICAgICAgNGI6MGI6
OGI6OTM6MTE6Yjg6NTQ6NzM6N2IKLSAgICAgICAgICAgICAgICBFeHBvbmVudDogNjU1MzcgKDB4
MTAwMDEpCi0gICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgotICAgICAgICAgICAgWDUwOXYzIEJh
c2ljIENvbnN0cmFpbnRzOiAKLSAgICAgICAgICAgICAgICBDQTpGQUxTRQotICAgICAgICAgICAg
TmV0c2NhcGUgQ2VydCBUeXBlOiAKLSAgICAgICAgICAgICAgICBTU0wgU2VydmVyCi0gICAgICAg
ICAgICBOZXRzY2FwZSBDb21tZW50OiAKLSAgICAgICAgICAgICAgICBPcGVuU1NMIEdlbmVyYXRl
ZCBDZXJ0aWZpY2F0ZQotICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXI6
IAotICAgICAgICAgICAgICAgIDgyOkExOjczOjhCOjE2OjBDOjdDOkU0OkQzOjQ2Ojk1OjEzOjk1
OjFBOjMyOkMxOjg0OkU5OjA2OjAwCi0gICAgICAgICAgICBYNTA5djMgQXV0aG9yaXR5IEtleSBJ
ZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICBrZXlpZDpFQjoxNjo3NzoxMDo5MjpCQjoyODo3
MDo2OTo5Nzo5QTo2RjpBMDo2ODo0RToxQTozNzpGQjpFNjpGMwotCi0gICAgU2lnbmF0dXJlIEFs
Z29yaXRobTogc2hhMVdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIDZiOmIzOjQ2OjI5OjAyOmRm
OmIwOmM4OjhlOmM0OmQ3OjdmOmEwOjFlOjBkOjFhOmViOjJmOgotICAgICAgICBkZjpkMTo0ODo1
NzozNjo1Zjo5NTo4YzoxYjpmMDo1MTpkNjo1MjplNzo4ZDo4NDozYjo5ZjoKLSAgICAgICAgZDg6
ZWQ6MjI6OWM6YWE6YmQ6ZWU6OWI6OTA6MWQ6ODQ6YTM6NGM6MGI6Y2I6ZWI6NjQ6NzM6Ci0gICAg
ICAgIGJhOmY3OjE1OmNlOmRhOjVmOmRiOjhiOjE1OjA3OmE2OjI4OjdmOmI5OjhjOjExOjliOjY0
OgotICAgICAgICBkMzpmMTpiZTo1Mjo0ZjpjMzpkODo1ODpmZTpkZTo1Njo2Mzo2MzozYjo1MTpl
ZDphNzo4MToKLSAgICAgICAgZjk6MDU6NTE6NzA6NjM6MzI6MDk6MGU6OTQ6N2U6MDU6ZmU6YTE6
NTY6MTg6MzQ6OTg6ZDU6Ci0gICAgICAgIDk5OjFlOjRlOjI3OjM4Ojg5OjkwOjZhOmU1OmNlOjYw
OjM1OjAxOmY1OmRlOjM0OjYwOmIxOgotICAgICAgICBjYjphZQotLS0tLS1CRUdJTiBDRVJUSUZJ
Q0FURS0tLS0tCi1NSUlDbURDQ0FnR2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURCSk1R
c3dDUVlEVlFRR0V3SktVREVPCi1NQXdHQTFVRUNCTUZWRzlyZVc4eEZEQVNCZ05WQkFvVEMzQjVk
MlZpYzI5amEyVjBNUlF3RWdZRFZRUURFd3R3Ci1lWGRsWW5OdlkydGxkREFlRncweE1qQTJNRFl3
TnpJMU1EaGFGdzB6T1RFd01qTXdOekkxTURoYU1Fa3hDekFKCi1CZ05WQkFZVEFrcFFNUTR3REFZ
RFZRUUlFd1ZVYjJ0NWJ6RVVNQklHQTFVRUNoTUxjSGwzWldKemIyTnJaWFF4Ci1GREFTQmdOVkJB
TVRDM0I1ZDJWaWMyOWphMlYwTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCCi1n
UURlRU00NldnU2tIQ21UWENPQ0d2SUdBZVlycEEvZGQwbDJpUU9pSWQ0RWRjYmkzZnMxSnpxaWtv
NFNZaXMrCi1IL1I0MzdhVXl5Zld5OVkzMTF3SThBayt5YzRrTFFESjMwcmdtZVg3STZuaTFzazls
dm9CaU41YWliRFBBMmR2Ci1CSVlkNzJJY1Zha0htaTVtS25OYlRHSUQrWUtEMjJpL3VFc0xpNU1S
dUZSemV3SURBUUFCbzRHUE1JR01NQWtHCi1BMVVkRXdRQ01BQXdFUVlKWUlaSUFZYjRRZ0VCQkFR
REFnWkFNQ3dHQ1dDR1NBR0crRUlCRFFRZkZoMVBjR1Z1Ci1VMU5NSUVkbGJtVnlZWFJsWkNCRFpY
SjBhV1pwWTJGMFpUQWRCZ05WSFE0RUZnUVVncUZ6aXhZTWZPVFRScFVUCi1sUm95d1lUcEJnQXdI
d1lEVlIwakJCZ3dGb0FVNnhaM0VKSzdLSEJwbDVwdm9HaE9HamY3NXZNd0RRWUpLb1pJCi1odmNO
QVFFRkJRQURnWUVBYTdOR0tRTGZzTWlPeE5kL29CNE5HdXN2MzlGSVZ6WmZsWXdiOEZIV1V1ZU5o
RHVmCi0yTzBpbktxOTdwdVFIWVNqVEF2TDYyUnp1dmNWenRwZjI0c1ZCNllvZjdtTUVadGswL0cr
VWsvRDJGaiszbFpqCi1ZenRSN2FlQitRVlJjR015Q1E2VWZnWCtvVllZTkpqVm1SNU9KemlKa0dy
bHptQTFBZlhlTkdDeHk2ND0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NsaWVudF9j
ZXJ0LnAxMgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTRlMTM5OTI3OTgyZmE5ODIz
YTU3MjMxYWYxMTM0OTlkNmE1YThiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAy
NTgyCnpjbVkrRlhIKmppN0tNYCMwdEJnMnF6Rml0UCFmPFBIQS0qTkxvQFZfZ2NmMHQ4V0IoI0k/
eyVZUkZ4KnVgJSl5Sgp6MW5HIUszNWJxaFhyWDdBYjlRJWpmODZ1bHglWnYtPiVIXkFhWnB3ZWtQ
NDJZbn1nNnYjT3VZQThHdG12VmpTSWoKekZwaDVVKChaJWZBU3dTdWtZWEdwPUYqQSkwUmZpPGAl
ZU9kXkZwQmktZiNzN2Zpcj8+MmNXJFQjOzIqR0FQX0FlCnoxXyNscm4yRShlS09NSjZOMjZZSm5l
X0BocH1TS1BYVUI3Rk1lcl9+NXwxcWdDe1Rxbm5CdXYxJGtwcDVPQnolQAp6PG15U3crP1k+XmpB
WjQjWEEtfSohUXNidU9oVyhzTzgzNjYoJDsoMUE+bW8oTy0leChobig9eVo7eX5ORyNRWDEKemdI
a1NpXl44Y3Y0VFRTTDl2bjVxUig+X0QzZiZvYypqd1BnSSNLQFEjQXNMKUQ7QkQmV2IyZCtJMV5K
N24+fVlaCnpiQ1hvOWZPQGchQGRXWWEyViV9Oykhezx6RGN8KHB2SklheFc3TmRPJU82Zj5yJmFP
cnBIa3tvX1I5bVE0N3VvYgp6P2w+OXxufFgzYGFncF5HO0x3WFI1PChscitSPGNMNWpUUSg/XkQ8
a1JvIUhfVCNwP3kzZH1edENZViE4Ul5OP30KekMqJVhtOUxlZj5qN2hsci0/akhscHx3ZkEmXm4t
czs8IXokcUQxeFBxIThLUTF9fmR1cHd+Qk0xZ3N+QEFvO0NxCnp3UmdVfDJeZH1OLWdWO0BhWWt1
OEklfXw8bDZRTT89ZH5GWXBiR0ZIOSZ2TmdLWipTeWNJU3xtY3VPUj9sJkNPdwp6c3t6ZDV6bWVs
eHFOMURReXt9UGdCPXUjZnpJTlBrQjBvTipjazN2YCsxeyFZWFB+e0VWSTdWcWgqfnVhV19+VUMK
emxSMzNSWjA1SGhrQy0xZUlwKS1AWV55dmMtfFIlISo5ZHc3bmZXKXlqY0hJWWY2cj1hQ3QoVWhp
LUZKbTJue18pCnole3VsQlVYUmAyPD5seH1lR21TbVJKPjVvdGtAKCtwanNQcTs0aFo2RklLbCN7
bnhQIUFMITI4X19BWWZsYFZnewp6bFJSYUFSfFZteTFfYF5iYmpacnpBe1EkbFllaklZZF5BJFo+
VyZqeW5NPUtgVGw0d1YpM3dAZDFKY2AtNS1DR0oKenhxXkA4XyghPFpGMnFsaF9afX1ucj9TJjUq
eitGQCl2KFoxRUlzO0htfSExfk1UTCFqMUBjJFpITFJ9Vig9O15vCnpkVXBmeT9vPnl6b2xfc2k8
PFVFQj10KGVlQnpnSl5XWXdzSENHOTM0cyRkKUBxcUh3Z155Wk17YF5qSiE5O3RyNgp6ZW9VYXkm
JCtCeUd8Tl5fem9BSF50WUlnPmhhWXd8QHxjMzFedyhuVWQ3ayhZbUVKNzZWWTc5KyhDKF8kOzFN
c1UKemhpTmkrQjVnU3JEanw5PjxAPzZSJjh6Ym04YnI/Qy1ObjFjaygrPE5LJTcpNnYtd1dxND1N
X1RidDE5NHpVKnlGCnpoPG90PEhCV25veEIlMWs5KE0wbzxOZylSZ0hTKCM/ZWRFUUIhXnxGay1f
KGFgYlVCTEFLKmh+YXp+IV94dT1UNAp6Nkc1Sy1hWEpvdEhRbEVDOENVNXxSeU1SdVFrWEUpP152
NihpPU11KT0kXm8lMCF5czVHVlJhWFoyUzJINEk4M0wKenEpYmB8UHh7KDg5VzMyenE0c3F6SCtC
QUtQOXVhREVwRDhJSUE5RC1INDVDJVZUP0pKI01hK0JAaTlNUGRGLSMjCnpOeEY1VHV9aXpfaHok
U0taMF9fJiFZcDF5YWRWem9jQEV5K0JlZkpDdENTVmQ1KEp5KDxDNkljQ1d9RG1Id0M4VAp6Untr
cXZSQD8zcnpMRzIkWmRjeC01dkZSQGQkUSNERCt+e2RoQG1kX2VgQkI2KlVZNlIrNF4jVSV6NGx0
eDlCJTsKek5WOHoqe0djR007Z3EyUnR5ZGp7SDBTMHAjejw2JTdtMyElez9NUXVhPGBAZTViT3Ri
ZCFFYz9HXnV4ZjRneGNJCnotRjdTVFlpfnZEYm12Q1ozTkRjZkhqOD5DOUZWNmpkMX0ocFN3cmdH
aypRWjlScjQpNiFzU2tUVXFieGJhZWEydQp6d1NgJHlvc1EpZWIlb192Sk8qIUFgZFI7WTRrPiZx
WXp1YS1aTkU8M0ZFPUkrZVNVO3ghcHReQTM1Pm9Jb1BgSnEKelpsfilyQzYwTCtrU3hBZ29QRXxy
R2pWQD8yQXkqWGI9JGNgY19MMz1FemhqQlVEPWgxXzQlZUJDZmxqJkVIWm1PCnpzezFifE51eDYr
O0sjS0I9VGtffGlrfHsqMDFkayQ5S2E2YGNSVT1NY1lpTiFrLWEpMlBEMzFoPGNUcyVrUGhvWgp6
Tykyd19UOS04dzJOTSYmcTJwbDReS3F9Q1BlPWw5aHEkVzQhdDtKRCV8VUooMjh2RGJNKkw+VkY3
YldfWHtiMTQKekdOdyh3PkVfUzlgPDt4UWxQYEBzZD42bTNuMilMKTBwIVhSckQjMjVpSWtSRHMp
MXVqTiVTc3l3IzYydmR2JkFsCnpjZGotWWwjNitAYTBXc2NVPDNgZ3ZXJDJ3LSheSGZFUnl4c05z
cTZtSzBkODs/MExTZU5oJU5FZTBCWUo0SUwoYQp6JFdYbmQpUEJXPEFUa3t5JTJTOUdQYTJxeUpX
JF5KSl9jb19YUDFtOUV9ailRP15sJCMqTUR4UDV8bVkxemNxM3kKemI9QHp5Q1h1Z3dke05qeD9p
MjdqK3pYTzQqVj59WmUtekJReClIeW53TGBOaighOXQpNTRkTzt6VFZ+LU8jO1U7CnpNd3AwUFUt
dVVMPyMjOEwtKSZ2bWJuQW1uI0AmYT52PWNQfUVVUUpWd2FEdzlWPC1Jd1l0aVQ5dyhUTWVhMiVE
eQp6fEE0MCRONXVvaVFFXl97UzEtaWBxNWx0dHBnPlNENHBhZmhmbEJ8NlBFPiE+c2hXa29FbVpo
Zyt+MEhwPDNLVEAKejlqayRxTUM9MCZCYmteZlJvNGYzOEp+aVdDfHhHUDBgd1ozRiNrOGcqSWRO
WSRHRi1BeDhePERyQl5qMjhYYjZzCnpSfDtWdmFyJTx8VFpLfj4zMGtEMylXJEFEIyh0dGAjQHg3
UThPWWFwVF9KeU0xdlQ/bGJ4LStfRihKRiV5UzBPJAp6cFMjbH13KjBqPmJ9TTNlOzRJPntwTU0+
cyVgP2ZTQUVfUWJgQW4+X1Yha2l9JDl3TU45KGZVMXVKR20wTWk3aEsKekE1bDBlMXdWY14kcWw/
NWdtPjhFdkJwU2FXZjVUSWczWlNidUpocDthJShaK2tje2NkdjFQdVgkZTJHQU4/SmY4CnpXS05n
UzwoTTJGTlVgUnhkQkd9Zj1TMXJuUSplUjEycUZfQyYmcG5AYHklQ35MOV5RX1o5bGgmRz1YdkdD
ITQxMAp6eW4pNW89KXgyaUpZK14/XkVMam50SEhgfUspemE/ST18diEkaEwwbiZHenlwemFMd05k
ZU09T2pXfC0tPW1SX2oKenl0P35WeF9fOUJFdmNoTD85aHVVb2ItNW4rcjE/PHhAY2d9NWF8VnxG
Y0ZRTyplSXB3WkVuflZHTGVxdlNAV2syCnopIStEMy07ezRAT08pYitiUU8jPS1FK0JlT0BmITM8
aVQwbWIycGIzODh7R0lSYXJqZG5UaSVAPzRxd3kjcTYwWQp6cWlBfHt0Nm80OUVNMThKJnc4REEj
d1FERHNGd04kSEcqTVRMMjFCUWopWVJgVzVMO1pmTU08KnJMPUZJZ3wwYkoKelQ5cjdGbEJMTF5y
ViUxVU8hM3xHREVhTSFqSFBMcj81UUJ1Q0MhVyk+ZHJmXlJDYGA3WVJZWihLPmllMD5wSmReCnpK
V19IeyUpXmMhNj5sfDlQOD9jPWooQjU3WUp6OD9YeVF6RTl1R2F9ZFYwUFRwMyE7cCFTRil9dC1p
PkM8RWRIKwp6TUtBU25WIyEmU1dmZH0wZGxqWHN5UWZ6c0A2aTArZHFTSEpMfkY3fm90fCRId2Yr
RiowakNLKnc1V29GQFE5aE4KemhsayVTe2g2QzU3Q0kyXzVSOTtmMztwLTE+RFVuKlVeZW9Hamhx
bzsqUioka1ZFMDFKPlRKUVJzdjlveiZrITN6CnprV1Q7KjBRZTBNM1VDTHcwRD1KK2ZHZmNGdkpV
fGBVZHNLXzM0dFR2SHtmJi1ZOFdGR2g/XlAhWDU7eT1GWnVEcwpmZnJXazAlTShPR25UTU48aCZx
QHlMZERVXyZNY0FmP3wxa01lalVObwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2tleS5w
ZW0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvY2VydC9rZXkucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmYWU4NTgzMThmMjliYTZiNDYyM2JkNWZiYzRhMDhjZTczZDkwMzExLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2tleS5wZW0K
KysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtF
WS0tLS0tCi1NSUlDWGdJQkFBS0JnUURlRU00NldnU2tIQ21UWENPQ0d2SUdBZVlycEEvZGQwbDJp
UU9pSWQ0RWRjYmkzZnMxCi1KenFpa280U1lpcytIL1I0MzdhVXl5Zld5OVkzMTF3SThBayt5YzRr
TFFESjMwcmdtZVg3STZuaTFzazlsdm9CCi1pTjVhaWJEUEEyZHZCSVlkNzJJY1Zha0htaTVtS25O
YlRHSUQrWUtEMjJpL3VFc0xpNU1SdUZSemV3SURBUUFCCi1Bb0dCQUl1Q3VWMVZjbmI3cm04Q3d0
Z1pQNVhnbVk4dlNqeFRsZGFmYTZYdmF3RVlVVFAwUzc3di8xbGxnMVl2Ci1VSVYrSStQUWdHOW9W
b1lPbDIyTG9pbUhTL1ozZTFmc290NXREWXN6R2U4L0drc3Q0b2FSZVNveHZCVWE2V1hwCi1RU283
WUZDYWp1SHRFK1cvZ3pGK1VIYmR6elhJRGpRWjMxNExORjV0KzRVbnNFUEJBa0VBK2dpckltcVdv
TTJ0Ci0zVVI4ZjhvZWtFUndzbUVNZjlESDVZcEg0Y3ZVbnZJK2t3ZXNDL3IyVThTaG8rK2Z5RU1V
Tm03YUlYR3FOTGdhCi1vZ0FNKzROWDRRSkJBT05kU3hTYXkyMmVnVEdOb0loTG5kbGpXa3VPdC85
RldqMmtsZi80UXhENGJsTUpRNU9xCi1RZE9HQWg3blZRanBQTFE1RDdDQlZBS3BHTTJDRCtRSkJ0
c0NRRVAya3ozNXB4UHlsRzN1cmNDMm1mUXhCa2tXCi1aQ1ZpQk5QNThHd0owYk9hdVRPU0JFd0ZY
V3VMcVR3OGFEd3hMNDlVTm1xYzBOMGZwZTJmQWVoajNVRUNRUUNtCi1GSC9EalU4THc3eWJkZGpO
dG02WFhQdVlOYWd4ejNjYmtCNEIzRmNoRGxlSVVEd01vVkYwTVc5Ykk1LzU0bVYxCi1RRGsxdFVL
b3J0eHZRWkphQUQ0QkFrRUFoR09IUXFQZDZiQkJvRkJ2cGFMelBKTXh3TEtyQitXdGtxL1FsQzcy
Ci1DbFJpTW4yZzhTQUxpSUwzQkRnR1hLY0tFL1d5N2pvL2FmL0pDelEvY1BxdC9BPT0KLS0tLS0t
RU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkODEyNDE2Yjg2YjVlNThmZGY1MmUxZTU5NmM3MWRiZWIxYjQ0NTFl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC9jZXJ0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L2NlcnQvY2FjZXJ0LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NlcnQucGVt
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L2NlcnQvY2xpZW50X2NlcnQucDEyCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQva2V5LnBl
bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4
ZDE4NTcxMmVlYTQwOGEyM2QyNGZiY2NlMWFhZjQ5M2E1YWE3ZTMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9mb3JfdGVzdGlu
Zy5weQorKysgL2Rldi9udWxsCkBAIC0xLDExMDAgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJXZWJTb2NrZXQgY2xpZW50IHV0aWxpdHkg
Zm9yIHRlc3RpbmcuCi0KLVRoaXMgbW9kdWxlIGNvbnRhaW5zIGhlbHBlciBtZXRob2RzIGZvciBw
ZXJmb3JtaW5nIGhhbmRzaGFrZSwgZnJhbWUKLXNlbmRpbmcvcmVjZWl2aW5nIGFzIGEgV2ViU29j
a2V0IGNsaWVudC4KLQotVGhpcyBpcyBjb2RlIGZvciB0ZXN0aW5nIG1vZF9weXdlYnNvY2tldC4g
S2VlcCB0aGlzIGNvZGUgaW5kZXBlbmRlbnQgZnJvbQotbW9kX3B5d2Vic29ja2V0LiBEb24ndCBp
bXBvcnQgZS5nLiBTdHJlYW0gY2xhc3MgZm9yIGdlbmVyYXRpbmcgZnJhbWUgZm9yCi10ZXN0aW5n
LiBVc2luZyB1dGlsLmhleGlmeSwgZXRjLiB0aGF0IGFyZSBub3QgcmVsYXRlZCB0byBwcm90b2Nv
bCBwcm9jZXNzaW5nCi1pcyBhbGxvd2VkLgotCi1Ob3RlOgotVGhpcyBjb2RlIGlzIGZhciBmcm9t
IHJvYnVzdCwgZS5nLiwgd2UgY3V0IGNvcm5lcnMgaW4gaGFuZHNoYWtlLgotIiIiCi0KLQotaW1w
b3J0IGJhc2U2NAotaW1wb3J0IGVycm5vCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBv
cnQgcmFuZG9tCi1pbXBvcnQgcmUKLWltcG9ydCBzb2NrZXQKLWltcG9ydCBzdHJ1Y3QKLWltcG9y
dCB0aW1lCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQotREVGQVVMVF9QT1JUID0gODAKLURFRkFVTFRfU0VD
VVJFX1BPUlQgPSA0NDMKLQotIyBPcGNvZGVzIGludHJvZHVjZWQgaW4gSUVURiBIeUJpIDAxIGZv
ciB0aGUgbmV3IGZyYW1pbmcgZm9ybWF0Ci1PUENPREVfQ09OVElOVUFUSU9OID0gMHgwCi1PUENP
REVfQ0xPU0UgPSAweDgKLU9QQ09ERV9QSU5HID0gMHg5Ci1PUENPREVfUE9ORyA9IDB4YQotT1BD
T0RFX1RFWFQgPSAweDEKLU9QQ09ERV9CSU5BUlkgPSAweDIKLQotIyBTdHJpbmdzIHVzZWQgZm9y
IGhhbmRzaGFrZQotX1VQR1JBREVfSEVBREVSID0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCi1f
VVBHUkFERV9IRUFERVJfSElYSUU3NSA9ICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotX0NPTk5F
Q1RJT05fSEVBREVSID0gJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotCi1XRUJTT0NLRVRfQUND
RVBUX1VVSUQgPSAnMjU4RUFGQTUtRTkxNC00N0RBLTk1Q0EtQzVBQjBEQzg1QjExJwotCi0jIFN0
YXR1cyBjb2RlcwotU1RBVFVTX05PUk1BTF9DTE9TVVJFID0gMTAwMAotU1RBVFVTX0dPSU5HX0FX
QVkgPSAxMDAxCi1TVEFUVVNfUFJPVE9DT0xfRVJST1IgPSAxMDAyCi1TVEFUVVNfVU5TVVBQT1JU
RURfREFUQSA9IDEwMDMKLVNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQgPSAxMDA1Ci1TVEFUVVNf
QUJOT1JNQUxfQ0xPU1VSRSA9IDEwMDYKLVNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFU
QSA9IDEwMDcKLVNUQVRVU19QT0xJQ1lfVklPTEFUSU9OID0gMTAwOAotU1RBVFVTX01FU1NBR0Vf
VE9PX0JJRyA9IDEwMDkKLVNUQVRVU19NQU5EQVRPUllfRVhUID0gMTAxMAotU1RBVFVTX0lOVEVS
TkFMX0VORFBPSU5UX0VSUk9SID0gMTAxMQotU1RBVFVTX1RMU19IQU5EU0hBS0UgPSAxMDE1Ci0K
LSMgRXh0ZW5zaW9uIHRva2VucwotX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OID0gJ2RlZmxhdGUt
ZnJhbWUnCi0jIFRPRE8oYmFzaGkpOiBVcGRhdGUgYWZ0ZXIgbXV4IGltcGxlbWVudGF0aW9uIGZp
bmlzaGVkLgotX01VWF9FWFRFTlNJT04gPSAnbXV4X0RPX05PVF9VU0UnCi1fUEVSTUVTU0FHRV9E
RUZMQVRFX0VYVEVOU0lPTiA9ICdwZXJtZXNzYWdlLWRlZmxhdGUnCi0KLWRlZiBfbWV0aG9kX2xp
bmUocmVzb3VyY2UpOgotICAgIHJldHVybiAnR0VUICVzIEhUVFAvMS4xXHJcbicgJSByZXNvdXJj
ZQotCi0KLWRlZiBfc2VjX29yaWdpbl9oZWFkZXIob3JpZ2luKToKLSAgICByZXR1cm4gJ1NlYy1X
ZWJTb2NrZXQtT3JpZ2luOiAlc1xyXG4nICUgb3JpZ2luLmxvd2VyKCkKLQotCi1kZWYgX29yaWdp
bl9oZWFkZXIob3JpZ2luKToKLSAgICAjIDQuMSAxMy4gY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3Ry
aW5nICJPcmlnaW46IiwgYSBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVyLAotICAgICMgYW5kIHRoZSAv
b3JpZ2luLyB2YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgdG8gL2ZpZWxkcy8u
Ci0gICAgcmV0dXJuICdPcmlnaW46ICVzXHJcbicgJSBvcmlnaW4ubG93ZXIoKQotCi0KLWRlZiBf
Zm9ybWF0X2hvc3RfaGVhZGVyKGhvc3QsIHBvcnQsIHNlY3VyZSk6Ci0gICAgIyA0LjEgOS4gTGV0
IC9ob3N0cG9ydC8gYmUgYW4gZW1wdHkgc3RyaW5nLgotICAgICMgNC4xIDEwLiBBcHBlbmQgdGhl
IC9ob3N0LyB2YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgdG8KLSAgICAjIC9o
b3N0cG9ydC8KLSAgICBob3N0cG9ydCA9IGhvc3QubG93ZXIoKQotICAgICMgNC4xIDExLiBJZiAv
c2VjdXJlLyBpcyBmYWxzZSwgYW5kIC9wb3J0LyBpcyBub3QgODAsIG9yIGlmIC9zZWN1cmUvCi0g
ICAgIyBpcyB0cnVlLCBhbmQgL3BvcnQvIGlzIG5vdCA0NDMsIHRoZW4gYXBwZW5kIGEgVSswMDNB
IENPTE9OIGNoYXJhY3RlcgotICAgICMgKDopIGZvbGxvd2VkIGJ5IHRoZSB2YWx1ZSBvZiAvcG9y
dC8sIGV4cHJlc3NlZCBhcyBhIGJhc2UtdGVuIGludGVnZXIsCi0gICAgIyB0byAvaG9zdHBvcnQv
Ci0gICAgaWYgKChub3Qgc2VjdXJlIGFuZCBwb3J0ICE9IERFRkFVTFRfUE9SVCkgb3IKLSAgICAg
ICAgKHNlY3VyZSBhbmQgcG9ydCAhPSBERUZBVUxUX1NFQ1VSRV9QT1JUKSk6Ci0gICAgICAgIGhv
c3Rwb3J0ICs9ICc6JyArIHN0cihwb3J0KQotICAgICMgNC4xIDEyLiBjb25jYXRlbmF0aW9uIG9m
IHRoZSBzdHJpbmcgIkhvc3Q6IiwgYSBVKzAwMjAgU1BBQ0UKLSAgICAjIGNoYXJhY3RlciwgYW5k
IC9ob3N0cG9ydC8sIHRvIC9maWVsZHMvLgotICAgIHJldHVybiAnSG9zdDogJXNcclxuJyAlIGhv
c3Rwb3J0Ci0KLQotIyBUT0RPKHR5b3NoaW5vKTogRGVmaW5lIGEgYmFzZSBjbGFzcyBhbmQgbW92
ZSB0aGVzZSBzaGFyZWQgbWV0aG9kcyB0byB0aGF0LgotCi0KLWRlZiByZWNlaXZlX2J5dGVzKHNv
Y2tldCwgbGVuZ3RoKToKLSAgICByZWNlaXZlZF9ieXRlcyA9IFtdCi0gICAgcmVtYWluaW5nID0g
bGVuZ3RoCi0gICAgd2hpbGUgcmVtYWluaW5nID4gMDoKLSAgICAgICAgbmV3X3JlY2VpdmVkX2J5
dGVzID0gc29ja2V0LnJlY3YocmVtYWluaW5nKQotICAgICAgICBpZiBub3QgbmV3X3JlY2VpdmVk
X2J5dGVzOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdD
b25uZWN0aW9uIGNsb3NlZCBiZWZvcmUgcmVjZWl2aW5nIHJlcXVlc3RlZCBsZW5ndGggJwotICAg
ICAgICAgICAgICAgICcocmVxdWVzdGVkICVkIGJ5dGVzIGJ1dCByZWNlaXZlZCBvbmx5ICVkIGJ5
dGVzKScgJQotICAgICAgICAgICAgICAgIChsZW5ndGgsIGxlbmd0aCAtIHJlbWFpbmluZykpCi0g
ICAgICAgIHJlY2VpdmVkX2J5dGVzLmFwcGVuZChuZXdfcmVjZWl2ZWRfYnl0ZXMpCi0gICAgICAg
IHJlbWFpbmluZyAtPSBsZW4obmV3X3JlY2VpdmVkX2J5dGVzKQotICAgIHJldHVybiAnJy5qb2lu
KHJlY2VpdmVkX2J5dGVzKQotCi0KLSMgVE9ETyh0eW9zaGlubyk6IE5vdyB0aGUgV2ViU29ja2V0
SGFuZHNoYWtlIGNsYXNzIGRpdmVydHMgdGhlc2UgbWV0aG9kcy4gV2UKLSMgc2hvdWxkIG1vdmUg
dG8gSFRUUCBwYXJzZXIgYXMgc3BlY2lmaWVkIGluIFJGQyA2NDU1LiBGb3IgSHlCaSAwMCBhbmQK
LSMgSGl4aWUgNzUsIHBhY2sgdGhlc2UgbWV0aG9kcyBhcyBzb21lIHBhcnNlciBjbGFzcy4KLQot
Ci1kZWYgX3JlYWRfZmllbGRzKHNvY2tldCk6Ci0gICAgIyA0LjEgMzIuIGxldCAvZmllbGRzLyBi
ZSBhIGxpc3Qgb2YgbmFtZS12YWx1ZSBwYWlycywgaW5pdGlhbGx5IGVtcHR5LgotICAgIGZpZWxk
cyA9IHt9Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgIyA0LjEgMzMuIGxldCAvbmFtZS8gYW5k
IC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAgICAgICAgbmFtZSA9ICcnCi0gICAgICAg
IHZhbHVlID0gJycKLSAgICAgICAgIyA0LjEgMzQuIHJlYWQgL25hbWUvCi0gICAgICAgIG5hbWUg
PSBfcmVhZF9uYW1lKHNvY2tldCkKLSAgICAgICAgaWYgbmFtZSBpcyBOb25lOgotICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgIyA0LjEgMzUuIHJlYWQgc3BhY2VzCi0gICAgICAgICMgVE9ETyh0
eW9zaGlubyk6IFNraXAgb25seSBvbmUgc3BhY2UgYXMgZGVzY3JpYmVkIGluIHRoZSBzcGVjLgot
ICAgICAgICBjaCA9IF9za2lwX3NwYWNlcyhzb2NrZXQpCi0gICAgICAgICMgNC4xIDM2LiByZWFk
IC92YWx1ZS8KLSAgICAgICAgdmFsdWUgPSBfcmVhZF92YWx1ZShzb2NrZXQsIGNoKQotICAgICAg
ICAjIDQuMSAzNy4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVyCi0gICAgICAgIGNoID0gcmVj
ZWl2ZV9ieXRlcyhzb2NrZXQsIDEpCi0gICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgTEYg
YnV0IGZvdW5kICVyIHdoaWxlIHJlYWRpbmcgdmFsdWUgJXIgZm9yIGhlYWRlciAnCi0gICAgICAg
ICAgICAgICAgJyVyJyAlIChjaCwgbmFtZSwgdmFsdWUpKQotICAgICAgICAjIDQuMSAzOC4gYXBw
ZW5kIGFuIGVudHJ5IHRvIHRoZSAvZmllbGRzLyBsaXN0IHRoYXQgaGFzIHRoZSBuYW1lCi0gICAg
ICAgICMgZ2l2ZW4gYnkgdGhlIHN0cmluZyBvYnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC9u
YW1lLyBieXRlCi0gICAgICAgICMgYXJyYXkgYXMgYSBVVEYtOCBzdHJlYW0gYW5kIHRoZSB2YWx1
ZSBnaXZlbiBieSB0aGUgc3RyaW5nCi0gICAgICAgICMgb2J0YWluZWQgYnkgaW50ZXJwcmV0aW5n
IHRoZSAvdmFsdWUvIGJ5dGUgYXJyYXkgYXMgYSBVVEYtOCBieXRlCi0gICAgICAgICMgc3RyZWFt
LgotICAgICAgICBmaWVsZHMuc2V0ZGVmYXVsdChuYW1lLCBbXSkuYXBwZW5kKHZhbHVlKQotICAg
ICAgICAjIDQuMSAzOS4gcmV0dXJuIHRvIHRoZSAiRmllbGQiIHN0ZXAgYWJvdmUKLSAgICByZXR1
cm4gZmllbGRzCi0KLQotZGVmIF9yZWFkX25hbWUoc29ja2V0KToKLSAgICAjIDQuMSAzMy4gbGV0
IC9uYW1lLyBiZSBlbXB0eSBieXRlIGFycmF5cwotICAgIG5hbWUgPSAnJwotICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgICMgNC4xIDM0LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAg
ICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggPT0gJ1xyJzog
ICMgMHgwRAotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgZWxpZiBjaCA9PSAnXG4n
OiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J1VuZXhwZWN0ZWQgTEYgd2hlbiByZWFkaW5nIGhlYWRlciBuYW1lICVyJyAlIG5hbWUpCi0gICAg
ICAgIGVsaWYgY2ggPT0gJzonOiAgIyAweDNBCi0gICAgICAgICAgICByZXR1cm4gbmFtZQotICAg
ICAgICBlbGlmIGNoID49ICdBJyBhbmQgY2ggPD0gJ1onOiAgIyByYW5nZSAweDMxIHRvIDB4NUEK
LSAgICAgICAgICAgIGNoID0gY2hyKG9yZChjaCkgKyAweDIwKQotICAgICAgICAgICAgbmFtZSAr
PSBjaAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbmFtZSArPSBjaAotCi0KLWRlZiBfc2tp
cF9zcGFjZXMoc29ja2V0KToKLSAgICAjIDQuMSAzNS4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2Vy
dmVyCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwg
MSkKLSAgICAgICAgaWYgY2ggPT0gJyAnOiAgIyAweDIwCi0gICAgICAgICAgICBjb250aW51ZQot
ICAgICAgICByZXR1cm4gY2gKLQotCi1kZWYgX3JlYWRfdmFsdWUoc29ja2V0LCBjaCk6Ci0gICAg
IyA0LjEgMzMuIGxldCAvdmFsdWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgdmFsdWUgPSAn
JwotICAgICMgNC4xIDM2LiByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlci4KLSAgICB3aGlsZSBUcnVl
OgotICAgICAgICBpZiBjaCA9PSAnXHInOiAgIyAweDBECi0gICAgICAgICAgICByZXR1cm4gdmFs
dWUKLSAgICAgICAgZWxpZiBjaCA9PSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgTEYgd2hlbiByZWFkaW5nIGhl
YWRlciB2YWx1ZSAlcicgJSB2YWx1ZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHZhbHVl
ICs9IGNoCi0gICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDEpCi0KLQotZGVmIHJl
YWRfZnJhbWVfaGVhZGVyKHNvY2tldCk6Ci0gICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNv
Y2tldCwgMikKLQotICAgIGZpcnN0X2J5dGUgPSBvcmQocmVjZWl2ZWRbMF0pCi0gICAgZmluID0g
KGZpcnN0X2J5dGUgPj4gNykgJiAxCi0gICAgcnN2MSA9IChmaXJzdF9ieXRlID4+IDYpICYgMQot
ICAgIHJzdjIgPSAoZmlyc3RfYnl0ZSA+PiA1KSAmIDEKLSAgICByc3YzID0gKGZpcnN0X2J5dGUg
Pj4gNCkgJiAxCi0gICAgb3Bjb2RlID0gZmlyc3RfYnl0ZSAmIDB4ZgotCi0gICAgc2Vjb25kX2J5
dGUgPSBvcmQocmVjZWl2ZWRbMV0pCi0gICAgbWFzayA9IChzZWNvbmRfYnl0ZSA+PiA3KSAmIDEK
LSAgICBwYXlsb2FkX2xlbmd0aCA9IHNlY29uZF9ieXRlICYgMHg3ZgotCi0gICAgaWYgbWFzayAh
PSAwOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAnTWFzayBiaXQgbXVz
dCBiZSAwIGZvciBmcmFtZXMgY29taW5nIGZyb20gc2VydmVyJykKLQotICAgIGlmIHBheWxvYWRf
bGVuZ3RoID09IDEyNzoKLSAgICAgICAgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGggPSByZWNlaXZl
X2J5dGVzKHNvY2tldCwgOCkKLSAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBzdHJ1Y3QudW5wYWNr
KAotICAgICAgICAgICAgJyFRJywgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGgpWzBdCi0gICAgICAg
IGlmIHBheWxvYWRfbGVuZ3RoID4gMHg3RkZGRkZGRkZGRkZGRkZGOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdFeHRlbmRlZCBwYXlsb2FkIGxlbmd0aCA+PSAyXjYzJykKLSAgICBlbGlm
IHBheWxvYWRfbGVuZ3RoID09IDEyNjoKLSAgICAgICAgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGgg
PSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMikKLSAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBzdHJ1
Y3QudW5wYWNrKAotICAgICAgICAgICAgJyFIJywgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGgpWzBd
Ci0KLSAgICByZXR1cm4gZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWRfbGVu
Z3RoCi0KLQotY2xhc3MgX1RMU1NvY2tldChvYmplY3QpOgotICAgICIiIldyYXBwZXIgZm9yIGEg
VExTIGNvbm5lY3Rpb24uIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmF3X3NvY2tldCk6
Ci0gICAgICAgIHNlbGYuX3NzbCA9IHNvY2tldC5zc2wocmF3X3NvY2tldCkKLQotICAgIGRlZiBz
ZW5kKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3NzbC53cml0ZShieXRlcykK
LQotICAgIGRlZiByZWN2KHNlbGYsIHNpemU9LTEpOgotICAgICAgICByZXR1cm4gc2VsZi5fc3Ns
LnJlYWQoc2l6ZSkKLQotICAgIGRlZiBjbG9zZShzZWxmKToKLSAgICAgICAgIyBOb3RoaW5nIHRv
IGRvLgotICAgICAgICBwYXNzCi0KLQotY2xhc3MgSHR0cFN0YXR1c0V4Y2VwdGlvbihFeGNlcHRp
b24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gdW5leHBlY3Rl
ZCBodHRwIHN0YXR1cyBjb2RlIHdhcwotICAgIHJlY2VpdmVkIGFzIGEgcmVzdWx0IG9mIGhhbmRz
aGFrZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdGF0dXMpOgot
ICAgICAgICBzdXBlcihIdHRwU3RhdHVzRXhjZXB0aW9uLCBzZWxmKS5fX2luaXRfXyhuYW1lKQot
ICAgICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1cwotCi0KLWNsYXNzIFdlYlNvY2tldEhhbmRzaGFr
ZShvYmplY3QpOgotICAgICIiIk9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdl
YlNvY2tldCBwcm90b2NvbCAoUkZDIDY0NTUpLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IG9wdGlvbnMpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIo
c2VsZikKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAgZGVmIGhhbmRz
aGFrZShzZWxmLCBzb2NrZXQpOgotICAgICAgICAiIiJIYW5kc2hha2UgV2ViU29ja2V0LgotCi0g
ICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEV4Y2VwdGlvbjogaGFuZHNoYWtlIGZhaWxlZC4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICAgICAg
cmVxdWVzdF9saW5lID0gX21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMucmVzb3VyY2UpCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgUmVxdWVzdC1MaW5lOiAl
cicsIHJlcXVlc3RfbGluZSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwocmVxdWVzdF9s
aW5lKQotCi0gICAgICAgIGZpZWxkcyA9IFtdCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX1VQR1JB
REVfSEVBREVSKQotICAgICAgICBmaWVsZHMuYXBwZW5kKF9DT05ORUNUSU9OX0hFQURFUikKLQot
ICAgICAgICBmaWVsZHMuYXBwZW5kKF9mb3JtYXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2
ZXJfcG9ydCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykpCi0KLSAgICAgICAg
aWYgc2VsZi5fb3B0aW9ucy52ZXJzaW9uID09IDg6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5k
KF9zZWNfb3JpZ2luX2hlYWRlcihzZWxmLl9vcHRpb25zLm9yaWdpbikpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMu
b3JpZ2luKSkKLQotICAgICAgICBvcmlnaW5hbF9rZXkgPSBvcy51cmFuZG9tKDE2KQotICAgICAg
ICBrZXkgPSBiYXNlNjQuYjY0ZW5jb2RlKG9yaWdpbmFsX2tleSkKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5OiAlcyAoJXMpJywga2V5
LCB1dGlsLmhleGlmeShvcmlnaW5hbF9rZXkpKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMt
V2ViU29ja2V0LUtleTogJXNcclxuJyAlIGtleSkKLQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdT
ZWMtV2ViU29ja2V0LVZlcnNpb246ICVkXHJcbicgJSBzZWxmLl9vcHRpb25zLnZlcnNpb24pCi0K
LSAgICAgICAgIyBTZXR0aW5nIHVwIGV4dGVuc2lvbnMuCi0gICAgICAgIGlmIGxlbihzZWxmLl9v
cHRpb25zLmV4dGVuc2lvbnMpID4gMDoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1X
ZWJTb2NrZXQtRXh0ZW5zaW9uczogJXNcclxuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICcsICcuam9pbihzZWxmLl9vcHRpb25zLmV4dGVuc2lvbnMpKQotCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVxdWVzdCBoZWFkZXJzOiAlcicsIGZpZWxk
cykKLQotICAgICAgICBmb3IgZmllbGQgaW4gZmllbGRzOgotICAgICAgICAgICAgc2VsZi5fc29j
a2V0LnNlbmRhbGwoZmllbGQpCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxuJykK
LQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2VudCBvcGVuaW5nIGhhbmRzaGFrZSByZXF1
ZXN0JykKLQotICAgICAgICBmaWVsZCA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAg
ICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgZmll
bGQgKz0gY2gKLSAgICAgICAgICAgIGlmIGNoID09ICdcbic6Ci0gICAgICAgICAgICAgICAgYnJl
YWsKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIFJlc3Bv
bnNlLUxpbmU6ICVyJywgZmllbGQpCi0KLSAgICAgICAgaWYgbGVuKGZpZWxkKSA8IDcgb3Igbm90
IGZpZWxkLmVuZHN3aXRoKCdcclxuJyk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1dy
b25nIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgbSA9IHJlLm1hdGNoKCdbXiBd
KiAoW14gXSopIC4qJywgZmllbGQpCi0gICAgICAgIGlmIG0gaXMgTm9uZToKLSAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTm8gSFRUUCBzdGF0dXMgY29kZSBm
b3VuZCBpbiBzdGF0dXMgbGluZTogJXInICUgZmllbGQpCi0gICAgICAgIGNvZGUgPSBtLmdyb3Vw
KDEpCi0gICAgICAgIGlmIG5vdCByZS5tYXRjaCgnWzAtOV1bMC05XVswLTldJywgY29kZSk6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0hUVFAgc3RhdHVz
IGNvZGUgJXIgaXMgbm90IHRocmVlIGRpZ2l0IGluIHN0YXR1cyBsaW5lOiAlcicgJQotICAgICAg
ICAgICAgICAgIChjb2RlLCBmaWVsZCkpCi0gICAgICAgIGlmIGNvZGUgIT0gJzEwMSc6Ci0gICAg
ICAgICAgICByYWlzZSBIdHRwU3RhdHVzRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdFeHBl
Y3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXIgaW4gc3RhdHVzIGxpbmU6ICcK
LSAgICAgICAgICAgICAgICAnJXInICUgKGNvZGUsIGZpZWxkKSwgaW50KGNvZGUpKQotICAgICAg
ICBmaWVsZHMgPSBfcmVhZF9maWVsZHMoc2VsZi5fc29ja2V0KQotICAgICAgICBjaCA9IHJlY2Vp
dmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBB
Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZDogJXIn
ICUgY2gpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBy
ZXNwb25zZSBoZWFkZXJzOiAlcicsIGZpZWxkcykKLQotICAgICAgICAjIENoZWNrIC9maWVsZHMv
Ci0gICAgICAgIGlmIGxlbihmaWVsZHNbJ3VwZ3JhZGUnXSkgIT0gMToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTXVsdGlwbGUgVXBncmFkZSBoZWFkZXJz
IGZvdW5kOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXSkKLSAgICAgICAgaWYgbGVuKGZpZWxkc1sn
Y29ubmVjdGlvbiddKSAhPSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICdNdWx0aXBsZSBDb25uZWN0aW9uIGhlYWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxk
c1snY29ubmVjdGlvbiddKQotICAgICAgICBpZiBmaWVsZHNbJ3VwZ3JhZGUnXVswXSAhPSAnd2Vi
c29ja2V0JzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAn
VW5leHBlY3RlZCBVcGdyYWRlIGhlYWRlciB2YWx1ZTogJXMnICUgZmllbGRzWyd1cGdyYWRlJ11b
MF0pCi0gICAgICAgIGlmIGZpZWxkc1snY29ubmVjdGlvbiddWzBdLmxvd2VyKCkgIT0gJ3VwZ3Jh
ZGUnOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4
cGVjdGVkIENvbm5lY3Rpb24gaGVhZGVyIHZhbHVlOiAlcycgJQotICAgICAgICAgICAgICAgIGZp
ZWxkc1snY29ubmVjdGlvbiddWzBdKQotCi0gICAgICAgIGlmIGxlbihmaWVsZHNbJ3NlYy13ZWJz
b2NrZXQtYWNjZXB0J10pICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ011bHRpcGxlIFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlcnMgZm91bmQ6
ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRzWydzZWMtd2Vic29ja2V0LWFjY2VwdCddKQot
Ci0gICAgICAgIGFjY2VwdCA9IGZpZWxkc1snc2VjLXdlYnNvY2tldC1hY2NlcHQnXVswXQotCi0g
ICAgICAgICMgVmFsaWRhdGUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGVjb2RlZF9hY2Nl
cHQgPSBiYXNlNjQuYjY0ZGVjb2RlKGFjY2VwdCkKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJvciBh
cyBlOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdJbGxlZ2FsIHZhbHVlIGZvciBoZWFkZXIgU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICcgKyBh
Y2NlcHQpCi0KLSAgICAgICAgaWYgbGVuKGRlY29kZWRfYWNjZXB0KSAhPSAyMDoKLSAgICAgICAg
ICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRGVjb2RlZCB2
YWx1ZSBvZiBTZWMtV2ViU29ja2V0LUFjY2VwdCBpcyBub3QgMjAtYnl0ZSBsb25nJykKLQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0FjdHVhbCBTZWMtV2ViU29ja2V0LUFjY2VwdDogJXIg
KCVzKScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQsIHV0aWwuaGV4aWZ5KGRl
Y29kZWRfYWNjZXB0KSkKLQotICAgICAgICBvcmlnaW5hbF9leHBlY3RlZF9hY2NlcHQgPSB1dGls
LnNoYTFfaGFzaCgKLSAgICAgICAgICAgIGtleSArIFdFQlNPQ0tFVF9BQ0NFUFRfVVVJRCkuZGln
ZXN0KCkKLSAgICAgICAgZXhwZWN0ZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGVuY29kZShvcmlnaW5h
bF9leHBlY3RlZF9hY2NlcHQpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdFeHBlY3Rl
ZCBTZWMtV2ViU29ja2V0LUFjY2VwdDogJXIgKCVzKScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBleHBlY3RlZF9hY2NlcHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlsLmhl
eGlmeShvcmlnaW5hbF9leHBlY3RlZF9hY2NlcHQpKQotCi0gICAgICAgIGlmIGFjY2VwdCAhPSBl
eHBlY3RlZF9hY2NlcHQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ0ludmFsaWQgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyOiAlciAoZXhwZWN0ZWQp
ICE9ICVyICcKLSAgICAgICAgICAgICAgICAnKGFjdHVhbCknICUgKGFjY2VwdCwgZXhwZWN0ZWRf
YWNjZXB0KSkKLQotICAgICAgICBzZXJ2ZXJfZXh0ZW5zaW9uc19oZWFkZXIgPSBmaWVsZHMuZ2V0
KCdzZWMtd2Vic29ja2V0LWV4dGVuc2lvbnMnKQotICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25z
ID0gW10KLSAgICAgICAgaWYgc2VydmVyX2V4dGVuc2lvbnNfaGVhZGVyIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25z
KAotICAgICAgICAgICAgICAgICAgICAnLCAnLmpvaW4oc2VydmVyX2V4dGVuc2lvbnNfaGVhZGVy
KSkKLQotICAgICAgICAjIFNjYW4gYWNjZXB0ZWQgZXh0ZW5zaW9uIGxpc3QgdG8gY2hlY2sgaWYg
dGhlcmUgaXMgYW55IHVucmVjb2duaXplZAotICAgICAgICAjIGV4dGVuc2lvbnMgb3IgZXh0ZW5z
aW9ucyB3ZSBkaWRuJ3QgcmVxdWVzdCBpbiBpdC4gVGhlbiwgZm9yCi0gICAgICAgICMgZXh0ZW5z
aW9ucyB3ZSByZXF1ZXN0LCBwYXJzZSB0aGVtIGFuZCBzdG9yZSBwYXJhbWV0ZXJzLiBUaGV5IHdp
bGwgYmUKLSAgICAgICAgIyB1c2VkIGxhdGVyIGJ5IGVhY2ggZXh0ZW5zaW9uLgotICAgICAgICBk
ZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gRmFsc2UKLSAgICAgICAgbXV4X2FjY2VwdGVkID0gRmFs
c2UKLSAgICAgICAgZm9yIGV4dGVuc2lvbiBpbiBhY2NlcHRlZF9leHRlbnNpb25zOgotICAgICAg
ICAgICAgaWYgZXh0ZW5zaW9uLm5hbWUoKSA9PSBfREVGTEFURV9GUkFNRV9FWFRFTlNJT046Ci0g
ICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKLSAgICAg
ICAgICAgICAgICAgICAgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCA9IFRydWUKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIGV4dGVuc2lvbi5uYW1lKCkgPT0gX01V
WF9FWFRFTlNJT046Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfbXV4Ogot
ICAgICAgICAgICAgICAgICAgICBtdXhfYWNjZXB0ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBleHRlbnNpb24ubmFtZSgpID09IF9QRVJNRVNT
QUdFX0RFRkxBVEVfRVhURU5TSU9OOgotICAgICAgICAgICAgICAgIGNoZWNrZXIgPSBzZWxmLl9v
cHRpb25zLmNoZWNrX3Blcm1lc3NhZ2VfZGVmbGF0ZQotICAgICAgICAgICAgICAgIGlmIGNoZWNr
ZXI6Ci0gICAgICAgICAgICAgICAgICAgIGNoZWNrZXIoZXh0ZW5zaW9uKQotICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ1JlY2VpdmVkIHVucmVjb2duaXplZCBleHRlbnNpb246ICVzJyAlIGV4dGVuc2lv
bi5uYW1lKCkpCi0KLSAgICAgICAgIyBMZXQgYWxsIGV4dGVuc2lvbnMgY2hlY2sgdGhlIHJlc3Bv
bnNlIGZvciBleHRlbnNpb24gcmVxdWVzdC4KLQotICAgICAgICBpZiAoc2VsZi5fb3B0aW9ucy51
c2VfZGVmbGF0ZV9mcmFtZSBhbmQKLSAgICAgICAgICAgIG5vdCBkZWZsYXRlX2ZyYW1lX2FjY2Vw
dGVkKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXMgZXh0ZW5zaW9uIG5vdCBhY2Nl
cHRlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ERUZMQVRFX0ZSQU1FX0VYVEVO
U0lPTikKLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9tdXggYW5kIG5vdCBtdXhfYWNj
ZXB0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJyVzIGV4dGVuc2lvbiBub3QgYWNj
ZXB0ZWQnICUgX01VWF9FWFRFTlNJT04pCi0KLQotY2xhc3MgV2ViU29ja2V0SHliaTAwSGFuZHNo
YWtlKG9iamVjdCk6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUg
V2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24gSHlCaSAwMC4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBvcHRpb25zLCBkcmFmdF9maWVsZCk6Ci0gICAgICAgIHNlbGYuX2xvZ2dl
ciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMg
PSBvcHRpb25zCi0gICAgICAgIHNlbGYuX2RyYWZ0X2ZpZWxkID0gZHJhZnRfZmllbGQKLQotICAg
IGRlZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0KToKLSAgICAgICAgIiIiSGFuZHNoYWtlIFdlYlNv
Y2tldC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBFeGNlcHRpb246IGhhbmRzaGFr
ZSBmYWlsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAot
Ci0gICAgICAgICMgNC4xIDUuIHNlbmQgcmVxdWVzdCBsaW5lLgotICAgICAgICByZXF1ZXN0X2xp
bmUgPSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywgcmVxdWVz
dF9saW5lKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCi0gICAg
ICAgICMgNC4xIDYuIExldCAvZmllbGRzLyBiZSBhbiBlbXB0eSBsaXN0IG9mIHN0cmluZ3MuCi0g
ICAgICAgIGZpZWxkcyA9IFtdCi0gICAgICAgICMgNC4xIDcuIEFkZCB0aGUgc3RyaW5nICJVcGdy
YWRlOiBXZWJTb2NrZXQiIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9VUEdS
QURFX0hFQURFUl9ISVhJRTc1KQotICAgICAgICAjIDQuMSA4LiBBZGQgdGhlIHN0cmluZyAiQ29u
bmVjdGlvbjogVXBncmFkZSIgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX0NP
Tk5FQ1RJT05fSEVBREVSKQotICAgICAgICAjIDQuMSA5LTEyLiBBZGQgSG9zdDogZmllbGQgdG8g
L2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKLSAg
ICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICBzZWxmLl9v
cHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkK
LSAgICAgICAgIyA0LjEgMTMuIEFkZCBPcmlnaW46IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAg
ICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLSAg
ICAgICAgIyBUT0RPOiA0LjEgMTQgQWRkIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IGZpZWxkIHRv
IC9maWVsZHMvLgotICAgICAgICAjIFRPRE86IDQuMSAxNSBBZGQgY29va2llIGhlYWRlcnMgdG8g
L2ZpZWxkcy8uCi0KLSAgICAgICAgIyA0LjEgMTYtMjMuIEFkZCBTZWMtV2ViU29ja2V0LUtleTxu
PiB0byAvZmllbGRzLy4KLSAgICAgICAgc2VsZi5fbnVtYmVyMSwga2V5MSA9IHNlbGYuX2dlbmVy
YXRlX3NlY193ZWJzb2NrZXRfa2V5KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1i
ZXIxOiAlZCcsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJT
b2NrZXQtS2V5MTogJXNcclxuJyAlIGtleTEpCi0gICAgICAgIHNlbGYuX251bWJlcjIsIGtleTIg
PSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnTnVtYmVyMjogJWQnLCBzZWxmLl9udW1iZXIxKQotICAgICAgICBmaWVsZHMuYXBw
ZW5kKCdTZWMtV2ViU29ja2V0LUtleTI6ICVzXHJcbicgJSBrZXkyKQotCi0gICAgICAgIGZpZWxk
cy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRHJhZnQ6ICVzXHJcbicgJSBzZWxmLl9kcmFmdF9maWVs
ZCkKLQotICAgICAgICAjIDQuMSAyNC4gRm9yIGVhY2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBh
IHJhbmRvbSBvcmRlcjogc2VuZCB0aGUKLSAgICAgICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRG
LTgsIGZvbGxvd2VkIGJ5IGEgVVRGLTggZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UKLSAgICAgICAg
IyBSRVRVUk4gVSswMDBBIExJTkUgRkVFRCBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAg
IHJhbmRvbS5zaHVmZmxlKGZpZWxkcykKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09w
ZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QgaGVhZGVyczogJXInLCBmaWVsZHMpCi0gICAgICAgIGZv
ciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVs
ZCkKLQotICAgICAgICAjIDQuMSAyNS4gc2VuZCBhIFVURi04LWVuY29kZWQgVSswMDBEIENBUlJJ
QUdFIFJFVFVSTiBVKzAwMEEgTElORSBGRUVECi0gICAgICAgICMgY2hhcmFjdGVyIHBhaXIgKENS
TEYpLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCi0gICAgICAgICMgNC4x
IDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5
dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIg
ZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgotICAgICAgICBzZWxmLl9rZXkzID0gc2Vs
Zi5fZ2VuZXJhdGVfa2V5MygpCi0gICAgICAgICMgNC4xIDI3LiBzZW5kIC9rZXkzLyB0byB0aGUg
c2VydmVyLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9rZXkzKQotICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnS2V5MzogJXIgKCVzKScsIHNlbGYu
X2tleTMsIHV0aWwuaGV4aWZ5KHNlbGYuX2tleTMpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKCdTZW50IG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QnKQotCi0gICAgICAgICMgNC4xIDI4
LiBSZWFkIGJ5dGVzIGZyb20gdGhlIHNlcnZlciB1bnRpbCBlaXRoZXIgdGhlIGNvbm5lY3Rpb24K
LSAgICAgICAgIyBjbG9zZXMsIG9yIGEgMHgwQSBieXRlIGlzIHJlYWQuIGxldCAvZmllbGQvIGJl
IHRoZXNlIGJ5dGVzLCBpbmNsdWRpbmcKLSAgICAgICAgIyB0aGUgMHgwQSBieXRlcy4KLSAgICAg
ICAgZmllbGQgPSAnJwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgY2ggPSByZWNl
aXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGZpZWxkICs9IGNoCi0gICAg
ICAgICAgICBpZiBjaCA9PSAnXG4nOgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXNwb25zZS1MaW5lOiAlcics
IGZpZWxkKQotCi0gICAgICAgICMgaWYgL2ZpZWxkLyBpcyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0
ZXMgbG9uZywgb3IgaWYgdGhlIGxhc3QKLSAgICAgICAgIyB0d28gYnl0ZXMgYXJlbid0IDB4MEQg
YW5kIDB4MEEgcmVzcGVjdGl2ZWx5LCBvciBpZiBpdCBkb2VzIG5vdAotICAgICAgICAjIGNvbnRh
aW4gYXQgbGVhc3QgdHdvIDB4MjAgYnl0ZXMsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5l
Y3Rpb24KLSAgICAgICAgIyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIGxlbihm
aWVsZCkgPCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdXcm9uZyBzdGF0dXMgbGluZTogJXInICUgZmllbGQpCi0gICAgICAgIG0g
PSByZS5tYXRjaCgnW14gXSogKFteIF0qKSAuKicsIGZpZWxkKQotICAgICAgICBpZiBtIGlzIE5v
bmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIGNvZGUgZm91bmQgaW4gc3RhdHVz
IGxpbmU6ICVyJyAlIGZpZWxkKQotICAgICAgICAjIDQuMSAyOS4gbGV0IC9jb2RlLyBiZSB0aGUg
c3Vic3RyaW5nIG9mIC9maWVsZC8gdGhhdCBzdGFydHMgZnJvbSB0aGUKLSAgICAgICAgIyBieXRl
IGFmdGVyIHRoZSBmaXJzdCAweDIwIGJ5dGUsIGFuZCBlbmRzIHdpdGggdGhlIGJ5dGUgYmVmb3Jl
IHRoZQotICAgICAgICAjIHNlY29uZCAweDIwIGJ5dGUuCi0gICAgICAgIGNvZGUgPSBtLmdyb3Vw
KDEpCi0gICAgICAgICMgNC4xIDMwLiBpZiAvY29kZS8gaXMgbm90IHRocmVlIGJ5dGVzIGxvbmcs
IG9yIGlmIGFueSBvZiB0aGUgYnl0ZXMgaW4KLSAgICAgICAgIyAvY29kZS8gYXJlIG5vdCBpbiB0
aGUgcmFuZ2UgMHgzMCB0byAweDkwLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldAotICAgICAgICAj
IGNvbm5lY3Rpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBub3QgcmUubWF0
Y2goJ1swLTldWzAtOV1bMC05XScsIGNvZGUpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdp
dCBpbiBzdGF0dXMgbGluZTogJXInICUKLSAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQot
ICAgICAgICAjIDQuMSAzMS4gaWYgL2NvZGUvLCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEw
MSIsIHRoZW4gbW92ZSB0byB0aGUKLSAgICAgICAgIyBuZXh0IHN0ZXAuCi0gICAgICAgIGlmIGNv
ZGUgIT0gJzEwMSc6Ci0gICAgICAgICAgICByYWlzZSBIdHRwU3RhdHVzRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXIg
aW4gc3RhdHVzIGxpbmU6ICcKLSAgICAgICAgICAgICAgICAnJXInICUgKGNvZGUsIGZpZWxkKSwg
aW50KGNvZGUpKQotICAgICAgICAjIDQuMSAzMi0zOS4gcmVhZCBmaWVsZHMgaW50byAvZmllbGRz
LwotICAgICAgICBmaWVsZHMgPSBfcmVhZF9maWVsZHMoc2VsZi5fc29ja2V0KQotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVzcG9uc2UgaGVhZGVyczog
JXInLCBmaWVsZHMpCi0KLSAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMgcHJvY2Vzc2luZ18KLSAg
ICAgICAgIyByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlcgotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0
ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlcicgJSBjaCkK
LSAgICAgICAgIyA0LjEgNDEuIGNoZWNrIC9maWVsZHMvCi0gICAgICAgIGlmIGxlbihmaWVsZHNb
J3VwZ3JhZGUnXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnTXVsdGlwbGUgVXBncmFkZSBoZWFkZXJzIGZvdW5kOiAlcycgJSBmaWVsZHNbJ3Vw
Z3JhZGUnXSkKLSAgICAgICAgaWYgbGVuKGZpZWxkc1snY29ubmVjdGlvbiddKSAhPSAxOgotICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBDb25u
ZWN0aW9uIGhlYWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxkc1snY29ubmVjdGlvbiddKQotICAgICAg
ICBpZiBsZW4oZmllbGRzWydzZWMtd2Vic29ja2V0LW9yaWdpbiddKSAhPSAxOgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29j
a2V0LU9yaWdpbiBoZWFkZXJzIGZvdW5kOiAlcycgJQotICAgICAgICAgICAgICAgIGZpZWxkc1sn
c2VjLXNlYnNvY2tldC1vcmlnaW4nXSkKLSAgICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdlYnNv
Y2tldC1sb2NhdGlvbiddKSAhPSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29ja2V0LUxvY2F0aW9uIGhlYWRlcnMgZm91
bmQ6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRzWydzZWMtc2Vic29ja2V0LWxvY2F0aW9u
J10pCi0gICAgICAgICMgVE9ETyh1a2FpKTogcHJvdG9jb2wKLSAgICAgICAgIyBpZiB0aGUgZW50
cnkncyBuYW1lIGlzICJ1cGdyYWRlIgotICAgICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4
YWN0bHkgZXF1YWwgdG8gdGhlIHN0cmluZyAiV2ViU29ja2V0IiwKLSAgICAgICAgIyAgdGhlbiBm
YWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAg
ICAgIGlmIGZpZWxkc1sndXBncmFkZSddWzBdICE9ICdXZWJTb2NrZXQnOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIFVwZ3JhZGUgaGVh
ZGVyIHZhbHVlOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXVswXSkKLSAgICAgICAgIyBpZiB0aGUg
ZW50cnkncyBuYW1lIGlzICJjb25uZWN0aW9uIgotICAgICAgICAjICBpZiB0aGUgdmFsdWUsIGNv
bnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2UsIGlzIG5vdCBleGFjdGx5IGVxdWFsCi0gICAgICAg
ICMgIHRvIHRoZSBzdHJpbmcgInVwZ3JhZGUiLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBjb25u
ZWN0aW9uIGFuZAotICAgICAgICAjICBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgZmll
bGRzWydjb25uZWN0aW9uJ11bMF0ubG93ZXIoKSAhPSAndXBncmFkZSc6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgQ29ubmVjdGlvbiBo
ZWFkZXIgdmFsdWU6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRzWydjb25uZWN0aW9uJ11b
MF0pCi0gICAgICAgICMgVE9ETyh1a2FpKTogY2hlY2sgb3JpZ2luLCBsb2NhdGlvbiwgY29va2ll
LCAuLgotCi0gICAgICAgICMgNC4xIDQyLiBsZXQgL2NoYWxsZW5nZS8gYmUgdGhlIGNvbmNhdGVu
YXRpb24gb2YgL251bWJlcl8xLywKLSAgICAgICAgIyBleHByZXNzZWQgYXMgYSBiaWcgZW5kaWFu
IDMyIGJpdCBpbnRlZ2VyLCAvbnVtYmVyXzIvLCBleHByZXNzZWQKLSAgICAgICAgIyBhcyBiaWcg
ZW5kaWFuIDMyIGJpdCBpbnRlZ2VyLCBhbmQgdGhlIGVpZ2h0IGJ5dGVzIG9mIC9rZXlfMy8gaW4g
dGhlCi0gICAgICAgICMgb3JkZXIgdGhleSB3ZXJlIHNlbnQgb24gdGhlIHdpcmUuCi0gICAgICAg
IGNoYWxsZW5nZSA9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGNo
YWxsZW5nZSArPSBzdHJ1Y3QucGFjaygnIUknLCBzZWxmLl9udW1iZXIyKQotICAgICAgICBjaGFs
bGVuZ2UgKz0gc2VsZi5fa2V5MwotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAg
ICAgICAgICdDaGFsbGVuZ2U6ICVyICglcyknLCBjaGFsbGVuZ2UsIHV0aWwuaGV4aWZ5KGNoYWxs
ZW5nZSkpCi0KLSAgICAgICAgIyA0LjEgNDMuIGxldCAvZXhwZWN0ZWQvIGJlIHRoZSBNRDUgZmlu
Z2VycHJpbnQgb2YgL2NoYWxsZW5nZS8gYXMgYQotICAgICAgICAjIGJpZy1lbmRpYW4gMTI4IGJp
dCBzdHJpbmcuCi0gICAgICAgIGV4cGVjdGVkID0gdXRpbC5tZDVfaGFzaChjaGFsbGVuZ2UpLmRp
Z2VzdCgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdFeHBlY3Rl
ZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLAotICAgICAgICAgICAgZXhwZWN0ZWQsIHV0
aWwuaGV4aWZ5KGV4cGVjdGVkKSkKLQotICAgICAgICAjIDQuMSA0NC4gcmVhZCBzaXh0ZWVuIGJ5
dGVzIGZyb20gdGhlIHNlcnZlci4KLSAgICAgICAgIyBsZXQgL3JlcGx5LyBiZSB0aG9zZSBieXRl
cy4KLSAgICAgICAgcmVwbHkgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMTYpCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdBY3R1YWwgY2hhbGxlbmdlIHJl
c3BvbnNlOiAlciAoJXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5KSkKLQotICAgICAgICAj
IDQuMSA0NS4gaWYgL3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFsIC9leHBlY3RlZC8sIHRo
ZW4gZmFpbAotICAgICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhl
c2Ugc3RlcHMuCi0gICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5OgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdCYWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAl
ciAoZXhwZWN0ZWQpICE9ICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKGV4cGVjdGVk
LCByZXBseSkpCi0gICAgICAgICMgNC4xIDQ2LiBUaGUgKldlYlNvY2tldCBjb25uZWN0aW9uIGlz
IGVzdGFibGlzaGVkKi4KLQotICAgIGRlZiBfZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoc2Vs
Zik6Ci0gICAgICAgICMgNC4xIDE2LiBsZXQgL3NwYWNlc19uLyBiZSBhIHJhbmRvbSBpbnRlZ2Vy
IGZyb20gMSB0byAxMiBpbmNsdXNpdmUuCi0gICAgICAgIHNwYWNlcyA9IHJhbmRvbS5yYW5kaW50
KDEsIDEyKQotICAgICAgICAjIDQuMSAxNy4gbGV0IC9tYXhfbi8gYmUgdGhlIGxhcmdlc3QgaW50
ZWdlciBub3QgZ3JlYXRlciB0aGFuCi0gICAgICAgICMgIDQsMjk0LDk2NywyOTUgZGl2aWRlZCBi
eSAvc3BhY2VzX24vLgotICAgICAgICBtYXhudW0gPSA0Mjk0OTY3Mjk1IC8gc3BhY2VzCi0gICAg
ICAgICMgNC4xIDE4LiBsZXQgL251bWJlcl9uLyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0
byAvbWF4X24vCi0gICAgICAgICMgaW5jbHVzaXZlLgotICAgICAgICBudW1iZXIgPSByYW5kb20u
cmFuZGludCgwLCBtYXhudW0pCi0gICAgICAgICMgNC4xIDE5LiBsZXQgL3Byb2R1Y3Rfbi8gYmUg
dGhlIHJlc3VsdCBvZiBtdWx0aXBseWluZyAvbnVtYmVyX24vIGFuZAotICAgICAgICAjIC9zcGFj
ZXNfbi8gdG9nZXRoZXIuCi0gICAgICAgIHByb2R1Y3QgPSBudW1iZXIgKiBzcGFjZXMKLSAgICAg
ICAgIyA0LjEgMjAuIGxldCAva2V5X24vIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgL3Byb2R1
Y3Rfbi8sIGV4cHJlc3NlZAotICAgICAgICAjIGluIGJhc2UgdGVuIHVzaW5nIHRoZSBudW1lcmFs
cyBpbiB0aGUgcmFuZ2UgVSswMDMwIERJR0lUIFpFUk8gKDApIHRvCi0gICAgICAgICMgVSswMDM5
IERJR0lUIE5JTkUgKDkpLgotICAgICAgICBrZXkgPSBzdHIocHJvZHVjdCkKLSAgICAgICAgIyA0
LjEgMjEuIGluc2VydCBiZXR3ZWVuIG9uZSBhbmQgdHdlbHZlIHJhbmRvbSBjaGFyYWN0ZXJzIGZy
b20gdGhlCi0gICAgICAgICMgcmFuZ2UgVSswMDIxIHRvIFUrMDAyRiBhbmQgVSswMDNBIHRvIFUr
MDA3RSBpbnRvIC9rZXlfbi8gYXQgcmFuZG9tCi0gICAgICAgICMgcG9zaXRpb25zLgotICAgICAg
ICBhdmFpbGFibGVfY2hhcnMgPSByYW5nZSgweDIxLCAweDJmICsgMSkgKyByYW5nZSgweDNhLCAw
eDdlICsgMSkKLSAgICAgICAgbiA9IHJhbmRvbS5yYW5kaW50KDEsIDEyKQotICAgICAgICBmb3Ig
XyBpbiB4cmFuZ2Uobik6Ci0gICAgICAgICAgICBjaCA9IHJhbmRvbS5jaG9pY2UoYXZhaWxhYmxl
X2NoYXJzKQotICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQoMCwgbGVuKGtleSkpCi0g
ICAgICAgICAgICBrZXkgPSBrZXlbMDpwb3NdICsgY2hyKGNoKSArIGtleVtwb3M6XQotICAgICAg
ICAjIDQuMSAyMi4gaW5zZXJ0IC9zcGFjZXNfbi8gVSswMDIwIFNQQUNFIGNoYXJhY3RlcnMgaW50
byAva2V5X24vIGF0Ci0gICAgICAgICMgcmFuZG9tIHBvc2l0aW9ucyBvdGhlciB0aGFuIHN0YXJ0
IG9yIGVuZCBvZiB0aGUgc3RyaW5nLgotICAgICAgICBmb3IgXyBpbiB4cmFuZ2Uoc3BhY2VzKToK
LSAgICAgICAgICAgIHBvcyA9IHJhbmRvbS5yYW5kaW50KDEsIGxlbihrZXkpIC0gMSkKLSAgICAg
ICAgICAgIGtleSA9IGtleVswOnBvc10gKyAnICcgKyBrZXlbcG9zOl0KLSAgICAgICAgcmV0dXJu
IG51bWJlciwga2V5Ci0KLSAgICBkZWYgX2dlbmVyYXRlX2tleTMoc2VsZik6Ci0gICAgICAgICMg
NC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9t
IGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVn
ZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgotICAgICAgICByZXR1cm4gJycuam9p
bihbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBfIGluIHhyYW5nZSg4KV0pCi0KLQot
Y2xhc3MgV2ViU29ja2V0SGl4aWU3NUhhbmRzaGFrZShvYmplY3QpOgotICAgICIiIldlYlNvY2tl
dCBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciBJRVRGIEhpeGllIDc1LiIiIgotCi0gICAgX0VYUEVD
VEVEX1JFU1BPTlNFID0gKAotICAgICAgICAnSFRUUC8xLjEgMTAxIFdlYiBTb2NrZXQgUHJvdG9j
b2wgSGFuZHNoYWtlXHJcbicgKwotICAgICAgICBfVVBHUkFERV9IRUFERVJfSElYSUU3NSArCi0g
ICAgICAgIF9DT05ORUNUSU9OX0hFQURFUikKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRp
b25zKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYp
Ci0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLQotICAgIGRlZiBfc2tpcF9oZWFk
ZXJzKHNlbGYpOgotICAgICAgICB0ZXJtaW5hdG9yID0gJ1xyXG5cclxuJwotICAgICAgICBwb3Mg
PSAwCi0gICAgICAgIHdoaWxlIHBvcyA8IGxlbih0ZXJtaW5hdG9yKToKLSAgICAgICAgICAgIHJl
Y2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBpZiBy
ZWNlaXZlZCA9PSB0ZXJtaW5hdG9yW3Bvc106Ci0gICAgICAgICAgICAgICAgcG9zICs9IDEKLSAg
ICAgICAgICAgIGVsaWYgcmVjZWl2ZWQgPT0gdGVybWluYXRvclswXToKLSAgICAgICAgICAgICAg
ICBwb3MgPSAxCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHBvcyA9IDAKLQot
ICAgIGRlZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0KToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0g
c29ja2V0Ci0KLSAgICAgICAgcmVxdWVzdF9saW5lID0gX21ldGhvZF9saW5lKHNlbGYuX29wdGlv
bnMucmVzb3VyY2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hh
a2UgUmVxdWVzdC1MaW5lOiAlcicsIHJlcXVlc3RfbGluZSkKLSAgICAgICAgc2VsZi5fc29ja2V0
LnNlbmRhbGwocmVxdWVzdF9saW5lKQotCi0gICAgICAgIGhlYWRlcnMgPSBfVVBHUkFERV9IRUFE
RVJfSElYSUU3NSArIF9DT05ORUNUSU9OX0hFQURFUgotICAgICAgICBoZWFkZXJzICs9IF9mb3Jt
YXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAot
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMudXNlX3RscykKLSAgICAgICAgaGVhZGVycyArPSBfb3JpZ2luX2hlYWRlcihzZWxm
Ll9vcHRpb25zLm9yaWdpbikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhh
bmRzaGFrZSByZXF1ZXN0IGhlYWRlcnM6ICVyJywgaGVhZGVycykKLSAgICAgICAgc2VsZi5fc29j
a2V0LnNlbmRhbGwoaGVhZGVycykKLQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJc
bicpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgb3BlbmluZyBoYW5kc2hha2Ug
cmVxdWVzdCcpCi0KLSAgICAgICAgZm9yIGV4cGVjdGVkX2NoYXIgaW4gV2ViU29ja2V0SGl4aWU3
NUhhbmRzaGFrZS5fRVhQRUNURURfUkVTUE9OU0U6Ci0gICAgICAgICAgICByZWNlaXZlZCA9IHJl
Y2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgaWYgZXhwZWN0ZWRfY2hh
ciAhPSByZWNlaXZlZDoKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0hhbmRzaGFr
ZSBmYWlsdXJlJykKLSAgICAgICAgIyBXZSBjdXQgY29ybmVycyBhbmQgc2tpcCBvdGhlciBoZWFk
ZXJzLgotICAgICAgICBzZWxmLl9za2lwX2hlYWRlcnMoKQotCi0KLWNsYXNzIFdlYlNvY2tldFN0
cmVhbShvYmplY3QpOgotICAgICIiIkZyYW1lIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBw
cm90b2NvbCAoUkZDIDY0NTUpLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCwg
aGFuZHNoYWtlKToKLSAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gaGFuZHNoYWtlCi0gICAgICAg
IHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAgICAgICMgRmlsdGVycyBhcHBsaWVkIHRvIGFw
cGxpY2F0aW9uIGRhdGEgcGFydCBvZiBkYXRhIGZyYW1lcy4KLSAgICAgICAgc2VsZi5fb3V0Z29p
bmdfZnJhbWVfZmlsdGVyID0gTm9uZQotICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0
ZXIgPSBOb25lCi0KLSAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZs
YXRlX2ZyYW1lOgotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyID0gKAot
ICAgICAgICAgICAgICAgIHV0aWwuX1JGQzE5NzlEZWZsYXRlcihOb25lLCBGYWxzZSkpCi0gICAg
ICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0
ZXIoKQotCi0gICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBGYWxzZQotCi0gICAgZGVmIF9tYXNr
X2h5Ymkoc2VsZiwgcyk6Ci0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IG9zLnVyYW5kb20gZG9l
cyBvcGVuL3JlYWQvY2xvc2UgZm9yIGV2ZXJ5IGNhbGwuIElmCi0gICAgICAgICMgcGVyZm9ybWFu
Y2UgbWF0dGVycywgY2hhbmdlIHRoaXMgdG8gc29tZSBsaWJyYXJ5IGNhbGwgdGhhdCBnZW5lcmF0
ZXMKLSAgICAgICAgIyBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgcHNldWRvIHJhbmRvbSBudW1i
ZXIgc2VxdWVuY2UuCi0gICAgICAgIG1hc2tpbmdfbm9uY2UgPSBvcy51cmFuZG9tKDQpCi0gICAg
ICAgIHJlc3VsdCA9IFttYXNraW5nX25vbmNlXQotICAgICAgICBjb3VudCA9IDAKLSAgICAgICAg
Zm9yIGMgaW4gczoKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hyKG9yZChjKSBeIG9yZCht
YXNraW5nX25vbmNlW2NvdW50XSkpKQotICAgICAgICAgICAgY291bnQgPSAoY291bnQgKyAxKSAl
IGxlbihtYXNraW5nX25vbmNlKQotICAgICAgICByZXR1cm4gJycuam9pbihyZXN1bHQpCi0KLSAg
ICBkZWYgc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToK
LSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVyICsgc2VsZi5fbWFza19oeWJpKGJv
ZHkpKQotCi0gICAgZGVmIHNlbmRfZGF0YShzZWxmLCBwYXlsb2FkLCBmcmFtZV90eXBlLCBlbmQ9
VHJ1ZSwgbWFzaz1UcnVlLAotICAgICAgICAgICAgICAgICAgcnN2MT0wLCByc3YyPTAsIHJzdjM9
MCk6Ci0gICAgICAgIGlmIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHBheWxvYWQgPSBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIuZmlsdGVy
KHBheWxvYWQpCi0KLSAgICAgICAgaWYgc2VsZi5fZnJhZ21lbnRlZDoKLSAgICAgICAgICAgIG9w
Y29kZSA9IE9QQ09ERV9DT05USU5VQVRJT04KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9w
Y29kZSA9IGZyYW1lX3R5cGUKLQotICAgICAgICBpZiBlbmQ6Ci0gICAgICAgICAgICBzZWxmLl9m
cmFnbWVudGVkID0gRmFsc2UKLSAgICAgICAgICAgIGZpbiA9IDEKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBUcnVlCi0gICAgICAgICAgICBmaW4gPSAwCi0K
LSAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lOgot
ICAgICAgICAgICAgcnN2MSA9IDEKLQotICAgICAgICBpZiBtYXNrOgotICAgICAgICAgICAgbWFz
a19iaXQgPSAxIDw8IDcKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG1hc2tfYml0ID0gMAot
Ci0gICAgICAgIGhlYWRlciA9IGNocihmaW4gPDwgNyB8IHJzdjEgPDwgNiB8IHJzdjIgPDwgNSB8
IHJzdjMgPDwgNCB8IG9wY29kZSkKLSAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBsZW4ocGF5bG9h
ZCkKLSAgICAgICAgaWYgcGF5bG9hZF9sZW5ndGggPD0gMTI1OgotICAgICAgICAgICAgaGVhZGVy
ICs9IGNocihtYXNrX2JpdCB8IHBheWxvYWRfbGVuZ3RoKQotICAgICAgICBlbGlmIHBheWxvYWRf
bGVuZ3RoIDwgMSA8PCAxNjoKLSAgICAgICAgICAgIGhlYWRlciArPSBjaHIobWFza19iaXQgfCAx
MjYpICsgc3RydWN0LnBhY2soJyFIJywgcGF5bG9hZF9sZW5ndGgpCi0gICAgICAgIGVsaWYgcGF5
bG9hZF9sZW5ndGggPCAxIDw8IDYzOgotICAgICAgICAgICAgaGVhZGVyICs9IGNocihtYXNrX2Jp
dCB8IDEyNykgKyBzdHJ1Y3QucGFjaygnIVEnLCBwYXlsb2FkX2xlbmd0aCkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVG9vIGxvbmcgcGF5bG9hZCAoJWQgYnl0
ZSknICUgcGF5bG9hZF9sZW5ndGgpCi0gICAgICAgIGlmIG1hc2s6Ci0gICAgICAgICAgICBwYXls
b2FkID0gc2VsZi5fbWFza19oeWJpKHBheWxvYWQpCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5k
YWxsKGhlYWRlciArIHBheWxvYWQpCi0KLSAgICBkZWYgc2VuZF9iaW5hcnkoc2VsZiwgcGF5bG9h
ZCwgZW5kPVRydWUsIG1hc2s9VHJ1ZSk6Ci0gICAgICAgIHNlbGYuc2VuZF9kYXRhKHBheWxvYWQs
IE9QQ09ERV9CSU5BUlksIGVuZCwgbWFzaykKLQotICAgIGRlZiBzZW5kX3RleHQoc2VsZiwgcGF5
bG9hZCwgZW5kPVRydWUsIG1hc2s9VHJ1ZSk6Ci0gICAgICAgIHNlbGYuc2VuZF9kYXRhKHBheWxv
YWQuZW5jb2RlKCd1dGYtOCcpLCBPUENPREVfVEVYVCwgZW5kLCBtYXNrKQotCi0gICAgZGVmIF9h
c3NlcnRfcmVjZWl2ZV9kYXRhKHNlbGYsIHBheWxvYWQsIG9wY29kZSwgZmluLCByc3YxLCByc3Yy
LCByc3YzKToKLSAgICAgICAgKGFjdHVhbF9maW4sIGFjdHVhbF9yc3YxLCBhY3R1YWxfcnN2Miwg
YWN0dWFsX3JzdjMsIGFjdHVhbF9vcGNvZGUsCi0gICAgICAgICBwYXlsb2FkX2xlbmd0aCkgPSBy
ZWFkX2ZyYW1lX2hlYWRlcihzZWxmLl9zb2NrZXQpCi0KLSAgICAgICAgaWYgYWN0dWFsX29wY29k
ZSAhPSBvcGNvZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgJ1VuZXhwZWN0ZWQgb3Bjb2RlOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCi0g
ICAgICAgICAgICAgICAgKG9wY29kZSwgYWN0dWFsX29wY29kZSkpCi0KLSAgICAgICAgaWYgYWN0
dWFsX2ZpbiAhPSBmaW46Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ1VuZXhwZWN0ZWQgZmluOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCi0g
ICAgICAgICAgICAgICAgKGZpbiwgYWN0dWFsX2ZpbikpCi0KLSAgICAgICAgaWYgcnN2MSBpcyBO
b25lOgotICAgICAgICAgICAgcnN2MSA9IDAKLSAgICAgICAgICAgIGlmIHNlbGYuX2hhbmRzaGFr
ZS5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKLSAgICAgICAgICAgICAgICByc3YxID0gMQot
Ci0gICAgICAgIGlmIHJzdjIgaXMgTm9uZToKLSAgICAgICAgICAgIHJzdjIgPSAwCi0KLSAgICAg
ICAgaWYgcnN2MyBpcyBOb25lOgotICAgICAgICAgICAgcnN2MyA9IDAKLQotICAgICAgICBpZiBh
Y3R1YWxfcnN2MSAhPSByc3YxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICdVbmV4cGVjdGVkIHJzdjE6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCkn
ICUKLSAgICAgICAgICAgICAgICAocnN2MSwgYWN0dWFsX3JzdjEpKQotCi0gICAgICAgIGlmIGFj
dHVhbF9yc3YyICE9IHJzdjI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ1VuZXhwZWN0ZWQgcnN2MjogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScg
JQotICAgICAgICAgICAgICAgIChyc3YyLCBhY3R1YWxfcnN2MikpCi0KLSAgICAgICAgaWYgYWN0
dWFsX3JzdjMgIT0gcnN2MzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnVW5leHBlY3RlZCByc3YzOiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAl
Ci0gICAgICAgICAgICAgICAgKHJzdjMsIGFjdHVhbF9yc3YzKSkKLQotICAgICAgICByZWNlaXZl
ZCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBwYXlsb2FkX2xlbmd0aCkKLQotICAgICAg
ICBpZiBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICByZWNlaXZlZCA9IHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlci5maWx0ZXIocmVjZWl2ZWQp
Ci0KLSAgICAgICAgaWYgbGVuKHJlY2VpdmVkKSAhPSBsZW4ocGF5bG9hZCk6Ci0gICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5bG9hZCBs
ZW5ndGg6ICVkIChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAo
bGVuKHBheWxvYWQpLCBsZW4ocmVjZWl2ZWQpKSkKLQotICAgICAgICBpZiBwYXlsb2FkICE9IHJl
Y2VpdmVkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdV
bmV4cGVjdGVkIHBheWxvYWQ6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAg
ICAgICAgICAgICAocGF5bG9hZCwgcmVjZWl2ZWQpKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZl
X2JpbmFyeShzZWxmLCBwYXlsb2FkLCBvcGNvZGU9T1BDT0RFX0JJTkFSWSwgZmluPTEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPU5vbmUsIHJzdjI9Tm9uZSwgcnN2Mz1Ob25l
KToKLSAgICAgICAgc2VsZi5fYXNzZXJ0X3JlY2VpdmVfZGF0YShwYXlsb2FkLCBvcGNvZGUsIGZp
biwgcnN2MSwgcnN2MiwgcnN2MykKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV90ZXh0KHNlbGYs
IHBheWxvYWQsIG9wY29kZT1PUENPREVfVEVYVCwgZmluPTEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcnN2MT1Ob25lLCByc3YyPU5vbmUsIHJzdjM9Tm9uZSk6Ci0gICAgICAgIHNlbGYu
X2Fzc2VydF9yZWNlaXZlX2RhdGEocGF5bG9hZC5lbmNvZGUoJ3V0Zi04JyksIG9wY29kZSwgZmlu
LCByc3YxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjIsIHJzdjMpCi0K
LSAgICBkZWYgX2J1aWxkX2Nsb3NlX2ZyYW1lKHNlbGYsIGNvZGUsIHJlYXNvbiwgbWFzayk6Ci0g
ICAgICAgIGZyYW1lID0gY2hyKDEgPDwgNyB8IE9QQ09ERV9DTE9TRSkKLQotICAgICAgICBpZiBj
b2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYm9keSA9IHN0cnVjdC5wYWNrKCchSCcsIGNv
ZGUpICsgcmVhc29uLmVuY29kZSgndXRmLTgnKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
Ym9keSA9ICcnCi0gICAgICAgIGlmIG1hc2s6Ci0gICAgICAgICAgICBmcmFtZSArPSBjaHIoMSA8
PCA3IHwgbGVuKGJvZHkpKSArIHNlbGYuX21hc2tfaHliaShib2R5KQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgZnJhbWUgKz0gY2hyKGxlbihib2R5KSkgKyBib2R5Ci0gICAgICAgIHJldHVy
biBmcmFtZQotCi0gICAgZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY29kZSwgcmVhc29uKToKLSAgICAg
ICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoCi0gICAgICAgICAgICBzZWxmLl9idWlsZF9jbG9zZV9m
cmFtZShjb2RlLCByZWFzb24sIFRydWUpKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3Nl
KHNlbGYsIGNvZGUsIHJlYXNvbik6Ci0gICAgICAgIGV4cGVjdGVkX2ZyYW1lID0gc2VsZi5fYnVp
bGRfY2xvc2VfZnJhbWUoY29kZSwgcmVhc29uLCBGYWxzZSkKLSAgICAgICAgYWN0dWFsX2ZyYW1l
ID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIGxlbihleHBlY3RlZF9mcmFtZSkpCi0gICAg
ICAgIGlmIGFjdHVhbF9mcmFtZSAhPSBleHBlY3RlZF9mcmFtZToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBjbG9zZSBmcmFtZTogJXIg
KGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChleHBlY3RlZF9m
cmFtZSwgYWN0dWFsX2ZyYW1lKSkKLQotCi1jbGFzcyBXZWJTb2NrZXRTdHJlYW1IaXhpZTc1KG9i
amVjdCk6Ci0gICAgIiIiRnJhbWUgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29s
IHZlcnNpb24gSGl4aWUgNzUgYW5kIEh5QmkgMDAuCi0gICAgIiIiCi0KLSAgICBfQ0xPU0VfRlJB
TUUgPSAnXHhmZlx4MDAnCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0LCB1bnVzZWRf
aGFuZHNoYWtlKToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICBkZWYgc2Vu
ZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToKLSAgICAgICAg
c2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVyICsgYm9keSkKLQotICAgIGRlZiBzZW5kX2RhdGEo
c2VsZiwgcGF5bG9hZCwgdW51c2VkX2ZyYW1lX3R5cGVtLCB1bnVzZWRfZW5kLCB1bnVzZWRfbWFz
ayk6Ci0gICAgICAgIGZyYW1lID0gJycuam9pbihbJ1x4MDAnLCBwYXlsb2FkLCAnXHhmZiddKQot
ICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmcmFtZSkKLQotICAgIGRlZiBzZW5kX2JpbmFy
eShzZWxmLCB1bnVzZWRfcGF5bG9hZCwgdW51c2VkX2VuZCwgdW51c2VkX21hc2spOgotICAgICAg
ICBwYXNzCi0KLSAgICBkZWYgc2VuZF90ZXh0KHNlbGYsIHBheWxvYWQsIHVudXNlZF9lbmQsIHVu
dXNlZF9tYXNrKToKLSAgICAgICAgZW5jb2RlZF9wYXlsb2FkID0gcGF5bG9hZC5lbmNvZGUoJ3V0
Zi04JykKLSAgICAgICAgZnJhbWUgPSAnJy5qb2luKFsnXHgwMCcsIGVuY29kZWRfcGF5bG9hZCwg
J1x4ZmYnXSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZnJhbWUpCi0KLSAgICBkZWYg
YXNzZXJ0X3JlY2VpdmVfYmluYXJ5KHNlbGYsIHBheWxvYWQsIG9wY29kZT1PUENPREVfQklOQVJZ
LCBmaW49MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9MCwgcnN2Mj0wLCBy
c3YzPTApOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0JpbmFyeSBmcmFtZSBpcyBub3Qgc3Vw
cG9ydGVkIGluIGhpeGllNzUnKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX3RleHQoc2VsZiwg
cGF5bG9hZCk6Ci0gICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQs
IDEpCi0KLSAgICAgICAgaWYgcmVjZWl2ZWQgIT0gJ1x4MDAnOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGZyYW1lIHR5cGU6ICVkIChl
eHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAoMCwgb3JkKHJlY2Vp
dmVkKSkpCi0KLSAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwg
bGVuKHBheWxvYWQpICsgMSkKLSAgICAgICAgaWYgcmVjZWl2ZWRbLTFdICE9ICdceGZmJzoKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVGVybWluYXRpb24g
ZXhwZWN0ZWQ6IDB4ZmYgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAg
ICAgIHJlY2VpdmVkKQotCi0gICAgICAgIGlmIHJlY2VpdmVkWzA6LTFdICE9IHBheWxvYWQ6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQg
cGF5bG9hZDogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAg
IChwYXlsb2FkLCByZWNlaXZlZFswOi0xXSkpCi0KLSAgICBkZWYgc2VuZF9jbG9zZShzZWxmLCBj
b2RlLCByZWFzb24pOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9DTE9TRV9G
UkFNRSkKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9jbG9zZShzZWxmLCB1bnVzZWRfY29kZSwg
dW51c2VkX3JlYXNvbik6Ci0gICAgICAgIGNsb3NpbmcgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3Nv
Y2tldCwgbGVuKHNlbGYuX0NMT1NFX0ZSQU1FKSkKLSAgICAgICAgaWYgY2xvc2luZyAhPSBzZWxm
Ll9DTE9TRV9GUkFNRToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNl
aXZlIGNsb3NpbmcgaGFuZHNoYWtlJykKLQotCi1jbGFzcyBDbGllbnRPcHRpb25zKG9iamVjdCk6
Ci0gICAgIiIiSG9sZHMgb3B0aW9uIHZhbHVlcyB0byBjb25maWd1cmUgdGhlIENsaWVudCBvYmpl
Y3QuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYudmVyc2lvbiA9
IDEzCi0gICAgICAgIHNlbGYuc2VydmVyX2hvc3QgPSAnJwotICAgICAgICBzZWxmLm9yaWdpbiA9
ICcnCi0gICAgICAgIHNlbGYucmVzb3VyY2UgPSAnJwotICAgICAgICBzZWxmLnNlcnZlcl9wb3J0
ID0gLTEKLSAgICAgICAgc2VsZi5zb2NrZXRfdGltZW91dCA9IDEwMDAKLSAgICAgICAgc2VsZi51
c2VfdGxzID0gRmFsc2UKLSAgICAgICAgc2VsZi5leHRlbnNpb25zID0gW10KLSAgICAgICAgIyBF
bmFibGUgZGVmbGF0ZS1hcHBsaWNhdGlvbi1kYXRhLgotICAgICAgICBzZWxmLnVzZV9kZWZsYXRl
X2ZyYW1lID0gRmFsc2UKLSAgICAgICAgIyBFbmFibGUgbXV4Ci0gICAgICAgIHNlbGYudXNlX211
eCA9IEZhbHNlCi0KLSAgICBkZWYgZW5hYmxlX2RlZmxhdGVfZnJhbWUoc2VsZik6Ci0gICAgICAg
IHNlbGYudXNlX2RlZmxhdGVfZnJhbWUgPSBUcnVlCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9ucy5h
cHBlbmQoX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotCi0gICAgZGVmIGVuYWJsZV9tdXgoc2Vs
Zik6Ci0gICAgICAgIHNlbGYudXNlX211eCA9IFRydWUKLSAgICAgICAgc2VsZi5leHRlbnNpb25z
LmFwcGVuZChfTVVYX0VYVEVOU0lPTikKLQotCi1kZWYgY29ubmVjdF9zb2NrZXRfd2l0aF9yZXRy
eShob3N0LCBwb3J0LCB0aW1lb3V0LCB1c2VfdGxzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0cnk9MTAsIHNsZWVwX3NlYz0wLjEpOgotICAgIHJldHJ5X2NvdW50ID0gMAotICAg
IHdoaWxlIHJldHJ5X2NvdW50IDwgcmV0cnk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHMg
PSBzb2NrZXQuc29ja2V0KCkKLSAgICAgICAgICAgIHMuc2V0dGltZW91dCh0aW1lb3V0KQotICAg
ICAgICAgICAgcy5jb25uZWN0KChob3N0LCBwb3J0KSkKLSAgICAgICAgICAgIGlmIHVzZV90bHM6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIF9UTFNTb2NrZXQocykKLSAgICAgICAgICAgIHJldHVy
biBzCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKLSAgICAgICAgICAgIGlmIGUu
ZXJybm8gIT0gZXJybm8uRUNPTk5SRUZVU0VEOgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJldHJ5X2NvdW50ID0gcmV0cnlfY291bnQg
KyAxCi0gICAgICAgICAgICAgICAgdGltZS5zbGVlcChzbGVlcF9zZWMpCi0KLSAgICByZXR1cm4g
Tm9uZQotCi0KLWNsYXNzIENsaWVudChvYmplY3QpOgotICAgICIiIldlYlNvY2tldCBjbGllbnQu
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgaGFuZHNoYWtlLCBzdHJlYW1f
Y2xhc3MpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2Vs
ZikKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9zb2Nr
ZXQgPSBOb25lCi0KLSAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gaGFuZHNoYWtlCi0gICAgICAg
IHNlbGYuX3N0cmVhbV9jbGFzcyA9IHN0cmVhbV9jbGFzcwotCi0gICAgZGVmIGNvbm5lY3Qoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9IGNvbm5lY3Rfc29ja2V0X3dpdGhfcmV0cnkoCi0g
ICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlv
bnMuc29ja2V0X3RpbWVvdXQsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxz
KQotCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZS5oYW5kc2hha2Uoc2VsZi5fc29ja2V0KQotCi0g
ICAgICAgIHNlbGYuX3N0cmVhbSA9IHNlbGYuX3N0cmVhbV9jbGFzcyhzZWxmLl9zb2NrZXQsIHNl
bGYuX2hhbmRzaGFrZSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQ29ubmVjdGlvbiBl
c3RhYmxpc2hlZCcpCi0KLSAgICBkZWYgc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2Vs
ZiwgaGVhZGVyLCBib2R5KToKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfZnJhbWVfb2ZfYXJi
aXRyYXJ5X2J5dGVzKGhlYWRlciwgYm9keSkKLQotICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwg
bWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSwgcmF3PUZhbHNlLAotICAgICAgICAgICAg
ICAgICAgICAgbWFzaz1UcnVlKToKLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAgc2Vs
Zi5fc3RyZWFtLnNlbmRfYmluYXJ5KG1lc3NhZ2UsIGVuZCwgbWFzaykKLSAgICAgICAgZWxpZiBy
YXc6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9kYXRhKG1lc3NhZ2UsIE9QQ09ERV9U
RVhULCBlbmQsIG1hc2spCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0u
c2VuZF90ZXh0KG1lc3NhZ2UsIGVuZCwgbWFzaykKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZShz
ZWxmLCBwYXlsb2FkLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAg
ICAgICBzZWxmLl9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KHBheWxvYWQpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfdGV4dChwYXls
b2FkKQotCi0gICAgZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY29kZT1TVEFUVVNfTk9STUFMX0NMT1NV
UkUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2Nsb3NlKGNvZGUsIHJl
YXNvbikKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9jbG9zZShzZWxmLCBjb2RlPVNUQVRVU19O
T1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToKLSAgICAgICAgc2VsZi5fc3RyZWFtLmFzc2VydF9y
ZWNlaXZlX2Nsb3NlKGNvZGUsIHJlYXNvbikKLQotICAgIGRlZiBjbG9zZV9zb2NrZXQoc2VsZik6
Ci0gICAgICAgIHNlbGYuX3NvY2tldC5jbG9zZSgpCi0KLSAgICBkZWYgYXNzZXJ0X2Nvbm5lY3Rp
b25fY2xvc2VkKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZWFkX2RhdGEgPSBy
ZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgotICAgICAgICAgICAgaWYgc3RyKGUpLmZpbmQoCi0gICAgICAgICAgICAgICAgJ0Nvbm5l
Y3Rpb24gY2xvc2VkIGJlZm9yZSByZWNlaXZpbmcgcmVxdWVzdGVkIGxlbmd0aCAnKSA9PSAwOgot
ICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IGVycm9yX251bWJlciwgbWVzc2FnZSA9IGUKLSAgICAgICAgICAgICAgICBmb3IgZXJyb3JfbmFt
ZSBpbiBbJ0VDT05OUkVTRVQnLCAnV1NBRUNPTk5SRVNFVCddOgotICAgICAgICAgICAgICAgICAg
ICBpZiAoZXJyb3JfbmFtZSBpbiBkaXIoZXJybm8pIGFuZAotICAgICAgICAgICAgICAgICAgICAg
ICAgZXJyb3JfbnVtYmVyID09IGdldGF0dHIoZXJybm8sIGVycm9yX25hbWUpKToKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAg
ICAgIHJhaXNlIGUKLSAgICAgICAgICAgIHJhaXNlIGUKLQotICAgICAgICByYWlzZSBFeGNlcHRp
b24oJ0Nvbm5lY3Rpb24gaXMgbm90IGNsb3NlZCAoUmVhZDogJXIpJyAlIHJlYWRfZGF0YSkKLQot
Ci1kZWYgY3JlYXRlX2NsaWVudChvcHRpb25zKToKLSAgICByZXR1cm4gQ2xpZW50KAotICAgICAg
ICBvcHRpb25zLCBXZWJTb2NrZXRIYW5kc2hha2Uob3B0aW9ucyksIFdlYlNvY2tldFN0cmVhbSkK
LQotCi1kZWYgY3JlYXRlX2NsaWVudF9oeWJpMDAob3B0aW9ucyk6Ci0gICAgcmV0dXJuIENsaWVu
dCgKLSAgICAgICAgb3B0aW9ucywKLSAgICAgICAgV2ViU29ja2V0SHliaTAwSGFuZHNoYWtlKG9w
dGlvbnMsICcwJyksCi0gICAgICAgIFdlYlNvY2tldFN0cmVhbUhpeGllNzUpCi0KLQotZGVmIGNy
ZWF0ZV9jbGllbnRfaGl4aWU3NShvcHRpb25zKToKLSAgICByZXR1cm4gQ2xpZW50KAotICAgICAg
ICBvcHRpb25zLCBXZWJTb2NrZXRIaXhpZTc1SGFuZHNoYWtlKG9wdGlvbnMpLCBXZWJTb2NrZXRT
dHJlYW1IaXhpZTc1KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2VuZHRvZW5k
X3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
N2Y4NmZkYjQxNjNkNGU3Mzg5NTJiM2NjYjc3ZjE5MjE2YmM1OTE1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9lbmR0b2VuZF93aXRoX2V4
dGVybmFsX3NlcnZlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLSMhL3Vzci9i
aW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0Ogot
IwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdCBmb3IgZW5kLXRv
LWVuZCB3aXRoIGV4dGVybmFsIHNlcnZlci4KLQotVGhpcyB0ZXN0IGlzIG5vdCBydW4gYnkgcnVu
X2FsbC5weSBiZWNhdXNlIGl0IHJlcXVpcmVzIHNvbWUgcHJlcGFyYXRpb25zLgotSWYgeW91IHdv
dWxkIGxpa2UgdG8gcnVuIHRoaXMgdGVzdCBjb3JyZWN0bHksIGxhdW5jaCBBcGFjaGUgd2l0aCBt
b2RfcHl0aG9uCi1hbmQgbW9kX3B5d2Vic29ja2V0IG1hbnVhbGx5LiBJbiBhZGRpdGlvbiwgeW91
IHNob3VsZCBwYXNzIGFsbG93X2RyYWZ0NzUgb3B0aW9uCi1hbmQgZXhhbXBsZSBwYXRoIGFzIGhh
bmRsZXJfc2NhbiBvcHRpb24gYW5kIEFwYWNoZSdzIERvY3VtZW50Um9vdC4KLSIiIgotCi0KLWlt
cG9ydCBvcHRwYXJzZQotaW1wb3J0IHN5cwotaW1wb3J0IHRlc3QudGVzdF9lbmR0b2VuZAotaW1w
b3J0IHVuaXR0ZXN0Ci0KLQotX0RFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUID0gODAKLQotCi1jbGFz
cyBFbmRUb0VuZFRlc3RXaXRoRXh0ZXJuYWxTZXJ2ZXIodGVzdC50ZXN0X2VuZHRvZW5kLkVuZFRv
RW5kVGVzdCk6Ci0gICAgcGFzcwotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHBh
cnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1w
JywgJy0tcG9ydCcsIGRlc3Q9J3BvcnQnLCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9X0RFRkFVTFRfV0VCX1NPQ0tFVF9QT1JULAotICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J2V4dGVybmFsIHRlc3Qgc2VydmVyIHBvcnQuJykKLSAgICAob3B0aW9ucywgYXJn
cykgPSBwYXJzZXIucGFyc2VfYXJncygpCi0KLSAgICB0ZXN0LnRlc3RfZW5kdG9lbmQuX3VzZV9l
eHRlcm5hbF9zZXJ2ZXIgPSBUcnVlCi0gICAgdGVzdC50ZXN0X2VuZHRvZW5kLl9leHRlcm5hbF9z
ZXJ2ZXJfcG9ydCA9IG9wdGlvbnMucG9ydAotCi0gICAgdW5pdHRlc3QubWFpbihhcmd2PVtzeXMu
YXJndlswXV0pCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
bW9jay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC9tb2NrLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2YmZmY2FjNDhkYzQzYTUyYjljY2YxYmNkMDEyOTc1NDI0MDQ4ZDY3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tb2NrLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMjIxICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIk1vY2tz
IGZvciB0ZXN0aW5nLgotIiIiCi0KLQotaW1wb3J0IFF1ZXVlCi1pbXBvcnQgdGhyZWFkaW5nCi0K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
LnN0cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3NQotCi0KLWNsYXNzIF9Nb2NrQ29ubkJhc2Uob2Jq
ZWN0KToKLSAgICAiIiJCYXNlIGNsYXNzIG9mIG1vY2tzIGZvciBtb2RfcHl0aG9uLmFwYWNoZS5t
cF9jb25uLgotCi0gICAgVGhpcyBlbmFibGVzIHRlc3RzIHRvIGNoZWNrIHdoYXQgaXMgd3JpdHRl
biB0byBhIChtb2NrKSBtcF9jb25uLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYp
OgotICAgICAgICBzZWxmLl93cml0ZV9kYXRhID0gW10KLSAgICAgICAgc2VsZi5yZW1vdGVfYWRk
ciA9ICdmYWtlX2FkZHJlc3MnCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAg
ICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4ud3JpdGUuIiIiCi0KLSAgICAg
ICAgc2VsZi5fd3JpdGVfZGF0YS5hcHBlbmQoZGF0YSkKLQotICAgIGRlZiB3cml0dGVuX2RhdGEo
c2VsZik6Ci0gICAgICAgICIiIkdldCBieXRlcyB3cml0dGVuIHRvIHRoaXMgbW9jay4iIiIKLQot
ICAgICAgICByZXR1cm4gJycuam9pbihzZWxmLl93cml0ZV9kYXRhKQotCi0KLWNsYXNzIE1vY2tD
b25uKF9Nb2NrQ29ubkJhc2UpOgotICAgICIiIk1vY2sgZm9yIG1vZF9weXRob24uYXBhY2hlLm1w
X2Nvbm4uCi0KLSAgICBUaGlzIGVuYWJsZXMgdGVzdHMgdG8gc3BlY2lmeSB3aGF0IHNob3VsZCBi
ZSByZWFkIGZyb20gYSAobW9jaykgbXBfY29ubiBhcwotICAgIHdlbGwgYXMgdG8gY2hlY2sgd2hh
dCBpcyB3cml0dGVuIHRvIGl0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJl
YWRfZGF0YSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIHJlYWRfZGF0YTogYnl0ZXMgdGhhdCBzaG91bGQgYmUgcmV0dXJu
ZWQgd2hlbiByZWFkKiBtZXRob2RzIGFyZQotICAgICAgICAgICAgY2FsbGVkLgotICAgICAgICAi
IiIKLQotICAgICAgICBfTW9ja0Nvbm5CYXNlLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYu
X3JlYWRfZGF0YSA9IHJlYWRfZGF0YQotICAgICAgICBzZWxmLl9yZWFkX3BvcyA9IDAKLQotICAg
IGRlZiByZWFkbGluZShzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFj
aGUubXBfY29ubi5yZWFkbGluZS4iIiIKLQotICAgICAgICBpZiBzZWxmLl9yZWFkX3BvcyA+PSBs
ZW4oc2VsZi5fcmVhZF9kYXRhKToKLSAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICBlbmRf
aW5kZXggPSBzZWxmLl9yZWFkX2RhdGEuZmluZCgnXG4nLCBzZWxmLl9yZWFkX3BvcykgKyAxCi0g
ICAgICAgIGlmIG5vdCBlbmRfaW5kZXg6Ci0gICAgICAgICAgICBlbmRfaW5kZXggPSBsZW4oc2Vs
Zi5fcmVhZF9kYXRhKQotICAgICAgICByZXR1cm4gc2VsZi5fcmVhZF91cF90byhlbmRfaW5kZXgp
Ci0KLSAgICBkZWYgcmVhZChzZWxmLCBsZW5ndGgpOgotICAgICAgICAiIiJPdmVycmlkZSBtb2Rf
cHl0aG9uLmFwYWNoZS5tcF9jb25uLnJlYWQuIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVhZF9w
b3MgPj0gbGVuKHNlbGYuX3JlYWRfZGF0YSk6Ci0gICAgICAgICAgICByZXR1cm4gJycKLSAgICAg
ICAgZW5kX2luZGV4ID0gbWluKGxlbihzZWxmLl9yZWFkX2RhdGEpLCBzZWxmLl9yZWFkX3BvcyAr
IGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYWRfdXBfdG8oZW5kX2luZGV4KQotCi0g
ICAgZGVmIF9yZWFkX3VwX3RvKHNlbGYsIGVuZF9pbmRleCk6Ci0gICAgICAgIGxpbmUgPSBzZWxm
Ll9yZWFkX2RhdGFbc2VsZi5fcmVhZF9wb3M6ZW5kX2luZGV4XQotICAgICAgICBzZWxmLl9yZWFk
X3BvcyA9IGVuZF9pbmRleAotICAgICAgICByZXR1cm4gbGluZQotCi0KLWNsYXNzIE1vY2tCbG9j
a2luZ0Nvbm4oX01vY2tDb25uQmFzZSk6Ci0gICAgIiIiQmxvY2tpbmcgbW9jayBmb3IgbW9kX3B5
dGhvbi5hcGFjaGUubXBfY29ubi4KLQotICAgIFRoaXMgZW5hYmxlcyB0ZXN0cyB0byBzcGVjaWZ5
IHdoYXQgc2hvdWxkIGJlIHJlYWQgZnJvbSBhIChtb2NrKSBtcF9jb25uIGFzCi0gICAgd2VsbCBh
cyB0byBjaGVjayB3aGF0IGlzIHdyaXR0ZW4gdG8gaXQuCi0gICAgQ2FsbGVycyBvZiByZWFkKiBt
ZXRob2RzIHdpbGwgYmxvY2sgaWYgdGhlcmUgaXMgbm8gYnl0ZXMgYXZhaWxhYmxlLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBfTW9ja0Nvbm5CYXNlLl9faW5p
dF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3F1ZXVlID0gUXVldWUuUXVldWUoKQotCi0gICAgZGVm
IHJlYWRsaW5lKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5t
cF9jb25uLnJlYWRsaW5lLiIiIgotICAgICAgICBsaW5lID0gJycKLSAgICAgICAgd2hpbGUgVHJ1
ZToKLSAgICAgICAgICAgIGMgPSBzZWxmLl9xdWV1ZS5nZXQoKQotICAgICAgICAgICAgbGluZSAr
PSBjCi0gICAgICAgICAgICBpZiBjID09ICdcbic6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxp
bmUKLQotICAgIGRlZiByZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIk92ZXJyaWRlIG1v
ZF9weXRob24uYXBhY2hlLm1wX2Nvbm4ucmVhZC4iIiIKLQotICAgICAgICBkYXRhID0gJycKLSAg
ICAgICAgZm9yIHVudXNlZCBpbiByYW5nZShsZW5ndGgpOgotICAgICAgICAgICAgZGF0YSArPSBz
ZWxmLl9xdWV1ZS5nZXQoKQotICAgICAgICByZXR1cm4gZGF0YQotCi0gICAgZGVmIHB1dF9ieXRl
cyhzZWxmLCBieXRlcyk6Ci0gICAgICAgICIiIlB1dCBieXRlcyB0byBiZSByZWFkIGZyb20gdGhp
cyBtb2NrLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBieXRlczogYnl0ZXMgdG8gYmUg
cmVhZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZm9yIGJ5dGUgaW4gYnl0ZXM6Ci0gICAgICAg
ICAgICBzZWxmLl9xdWV1ZS5wdXQoYnl0ZSkKLQotCi1jbGFzcyBNb2NrVGFibGUoZGljdCk6Ci0g
ICAgIiIiTW9jayB0YWJsZS4KLQotICAgIFRoaXMgbWltaWNzIG1vZF9weXRob24gbXBfdGFibGUu
IE5vdGUgdGhhdCBvbmx5IHRoZSBtZXRob2RzIHVzZWQgYnkKLSAgICB0ZXN0cyBhcmUgb3ZlcnJp
ZGRlbi4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb3B5X2Zyb209e30pOgot
ICAgICAgICBpZiBpc2luc3RhbmNlKGNvcHlfZnJvbSwgZGljdCk6Ci0gICAgICAgICAgICBjb3B5
X2Zyb20gPSBjb3B5X2Zyb20uaXRlbXMoKQotICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBjb3B5
X2Zyb206Ci0gICAgICAgICAgICBzZWxmLl9fc2V0aXRlbV9fKGtleSwgdmFsdWUpCi0KLSAgICBk
ZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKLSAgICAgICAgcmV0dXJuIHN1cGVyKE1vY2tUYWJs
ZSwgc2VsZikuX19nZXRpdGVtX18oa2V5Lmxvd2VyKCkpCi0KLSAgICBkZWYgX19zZXRpdGVtX18o
c2VsZiwga2V5LCB2YWx1ZSk6Ci0gICAgICAgIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuX19zZXRp
dGVtX18oa2V5Lmxvd2VyKCksIHZhbHVlKQotCi0gICAgZGVmIGdldChzZWxmLCBrZXksIGRlZl92
YWx1ZT1Ob25lKToKLSAgICAgICAgcmV0dXJuIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuZ2V0KGtl
eS5sb3dlcigpLCBkZWZfdmFsdWUpCi0KLQotY2xhc3MgTW9ja1JlcXVlc3Qob2JqZWN0KToKLSAg
ICAiIiJNb2NrIHJlcXVlc3QuCi0KLSAgICBUaGlzIG1pbWljcyBtb2RfcHl0aG9uIHJlcXVlc3Qu
Ci0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgdXJpPU5vbmUsIGhlYWRlcnNfaW49
e30sIGNvbm5lY3Rpb249Tm9uZSwgbWV0aG9kPSdHRVQnLAotICAgICAgICAgICAgICAgICBwcm90
b2NvbD0nSFRUUC8xLjEnLCBpc19odHRwcz1GYWxzZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBh
biBpbnN0YW5jZS4KLQotICAgICAgICBBcmd1bWVudHM6Ci0gICAgICAgICAgICB1cmk6IFVSSSBv
ZiB0aGUgcmVxdWVzdC4KLSAgICAgICAgICAgIGhlYWRlcnNfaW46IFJlcXVlc3QgaGVhZGVycy4K
LSAgICAgICAgICAgIGNvbm5lY3Rpb246IENvbm5lY3Rpb24gdXNlZCBmb3IgdGhlIHJlcXVlc3Qu
Ci0gICAgICAgICAgICBtZXRob2Q6IHJlcXVlc3QgbWV0aG9kLgotICAgICAgICAgICAgaXNfaHR0
cHM6IFdoZXRoZXIgdGhpcyByZXF1ZXN0IGlzIG92ZXIgU1NMLgotCi0gICAgICAgIFNlZSB0aGUg
ZG9jdW1lbnQgb2YgbW9kX3B5dGhvbiBSZXF1ZXN0IGZvciBkZXRhaWxzLgotICAgICAgICAiIiIK
LSAgICAgICAgc2VsZi51cmkgPSB1cmkKLSAgICAgICAgc2VsZi51bnBhcnNlZF91cmkgPSB1cmkK
LSAgICAgICAgc2VsZi5jb25uZWN0aW9uID0gY29ubmVjdGlvbgotICAgICAgICBzZWxmLm1ldGhv
ZCA9IG1ldGhvZAotICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKLSAgICAgICAgc2Vs
Zi5oZWFkZXJzX2luID0gTW9ja1RhYmxlKGhlYWRlcnNfaW4pCi0gICAgICAgICMgc2VsZi5pc19o
dHRwc18gbmVlZHMgdG8gYmUgYWNjZXNzaWJsZSBmcm9tIHRlc3RzLiAgVG8gYXZvaWQgbmFtZQot
ICAgICAgICAjIGNvbmZsaWN0IHdpdGggc2VsZi5pc19odHRwcygpLCBpdCBpcyBuYW1lZCBhcyBz
dWNoLgotICAgICAgICBzZWxmLmlzX2h0dHBzXyA9IGlzX2h0dHBzCi0gICAgICAgIHNlbGYud3Nf
c3RyZWFtID0gU3RyZWFtSGl4aWU3NShzZWxmLCBUcnVlKQotICAgICAgICBzZWxmLndzX2Nsb3Nl
X2NvZGUgPSBOb25lCi0gICAgICAgIHNlbGYud3NfY2xvc2VfcmVhc29uID0gTm9uZQotICAgICAg
ICBzZWxmLndzX3ZlcnNpb24gPSBjb21tb24uVkVSU0lPTl9IWUJJMDAKLSAgICAgICAgc2VsZi53
c19kZWZsYXRlID0gRmFsc2UKLQotICAgIGRlZiBpc19odHRwcyhzZWxmKToKLSAgICAgICAgIiIi
UmV0dXJuIHdoZXRoZXIgdGhpcyByZXF1ZXN0IGlzIG92ZXIgU1NMLiIiIgotICAgICAgICByZXR1
cm4gc2VsZi5pc19odHRwc18KLQotCi1jbGFzcyBNb2NrRGlzcGF0Y2hlcihvYmplY3QpOgotICAg
ICIiIk1vY2sgZm9yIGRpc3BhdGNoLkRpc3BhdGNoZXIuIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZik6Ci0gICAgICAgIHNlbGYuZG9fZXh0cmFfaGFuZHNoYWtlX2NhbGxlZCA9IEZhbHNlCi0K
LSAgICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAg
IHNlbGYuZG9fZXh0cmFfaGFuZHNoYWtlX2NhbGxlZCA9IFRydWUKLQotICAgIGRlZiB0cmFuc2Zl
cl9kYXRhKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHBhc3MKLQotCi0jIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L211eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDMwNGU3ZmM5NWQzZmM1YjNlZTJkOWU1NGYyMDc4MmFkZGFlMjA0MGYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L211
eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2OTAgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgot
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJXZWJTb2Nr
ZXQgY2xpZW50IHV0aWxpdHkgZm9yIHRlc3RpbmcgbXV4IGV4dGVuc2lvbi4KLQotVGhpcyBjb2Rl
IHNob3VsZCBiZSBpbmRlcGVuZGVudCBmcm9tIG1vZF9weXdlYnNvY2tldC4gU2VlIHRoZSBjb21t
ZW50IG9mCi1jbGllbnRfZm9yX3Rlc3RpbmcucHkuCi0KLU5PVEU6IFRoaXMgY29kZSBpcyBmYXIg
ZnJvbSByb2J1c3QgbGlrZSBjbGllbnRfZm9yX3Rlc3RpbmcucHkuCi0iIiIKLQotCi0KLWltcG9y
dCBRdWV1ZQotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGNvbGxlY3Rpb25zCi1pbXBvcnQgZW1haWwK
LWltcG9ydCBlbWFpbC5wYXJzZXIKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgbWF0aAotaW1wb3J0
IG9zCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgc3RydWN0Ci1pbXBvcnQg
dGhyZWFkaW5nCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLWZyb20gdGVz
dCBpbXBvcnQgY2xpZW50X2Zvcl90ZXN0aW5nCi0KLQotX0NPTlRST0xfQ0hBTk5FTF9JRCA9IDAK
LV9ERUZBVUxUX0NIQU5ORUxfSUQgPSAxCi0KLV9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVF
U1QgPSAwCi1fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRSA9IDEKLV9NVVhfT1BDT0RF
X0ZMT1dfQ09OVFJPTCA9IDIKLV9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCA9IDMKLV9NVVhfT1BD
T0RFX05FV19DSEFOTkVMX1NMT1QgPSA0Ci0KLQotY2xhc3MgX0NvbnRyb2xCbG9jazoKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgb3Bjb2RlKToKLSAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUK
LQotCi1kZWYgX3BhcnNlX2hhbmRzaGFrZV9yZXNwb25zZShyZXNwb25zZSk6Ci0gICAgc3RhdHVz
X2xpbmUsIGhlYWRlcl9saW5lcyA9IHJlc3BvbnNlLnNwbGl0KCdcclxuJywgMSkKLQotICAgIHdv
cmRzID0gc3RhdHVzX2xpbmUuc3BsaXQoJyAnKQotICAgIGlmIGxlbih3b3JkcykgPCAzOgotICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgU3RhdHVzLUxpbmUgc3ludGF4ICVyJyAlIHN0YXR1
c19saW5lKQotICAgIFt2ZXJzaW9uLCByZXNwb25zZV9jb2RlXSA9IHdvcmRzWzoyXQotICAgIGlm
IHZlcnNpb24gIT0gJ0hUVFAvMS4xJzoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIHJl
c3BvbnNlIHZlcnNpb24gJXInICUgdmVyc2lvbikKLQotICAgIGlmIHJlc3BvbnNlX2NvZGUgIT0g
JzEwMSc6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCByZXNwb25zZSBjb2RlICVyICcg
JSByZXNwb25zZV9jb2RlKQotICAgIGhlYWRlcnMgPSBlbWFpbC5wYXJzZXIuUGFyc2VyKCkucGFy
c2VzdHIoaGVhZGVyX2xpbmVzKQotICAgIHJldHVybiBoZWFkZXJzCi0KLQotZGVmIF9wYXJzZV9j
aGFubmVsX2lkKGRhdGEsIG9mZnNldD0wKToKLSAgICBsZW5ndGggPSBsZW4oZGF0YSkKLSAgICBy
ZW1haW5pbmcgPSBsZW5ndGggLSBvZmZzZXQKLQotICAgIGlmIHJlbWFpbmluZyA8PSAwOgotICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ05vIGNoYW5uZWwgaWQgZm91bmQnKQotCi0gICAgY2hhbm5l
bF9pZCA9IG9yZChkYXRhW29mZnNldF0pCi0gICAgY2hhbm5lbF9pZF9sZW5ndGggPSAxCi0gICAg
aWYgY2hhbm5lbF9pZCAmIDB4ZTAgPT0gMHhlMDoKLSAgICAgICAgaWYgcmVtYWluaW5nIDwgNDoK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcp
Ci0gICAgICAgIGNoYW5uZWxfaWQgPSBzdHJ1Y3QudW5wYWNrKCchTCcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGFbb2Zmc2V0Om9mZnNldCs0XSlbMF0gJiAweDFmZmZm
ZmZmCi0gICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gNAotICAgIGVsaWYgY2hhbm5lbF9pZCAm
IDB4YzAgPT0gMHhjMDoKLSAgICAgICAgaWYgcmVtYWluaW5nIDwgMzoKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAgIGNoYW5u
ZWxfaWQgPSAoKChjaGFubmVsX2lkICYgMHgxZikgPDwgMTYpICsKLSAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QudW5wYWNrKCchSCcsIGRhdGFbb2Zmc2V0KzE6b2Zmc2V0KzNdKVswXSkKLSAg
ICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAzCi0gICAgZWxpZiBjaGFubmVsX2lkICYgMHg4MCA9
PSAweDgwOgotICAgICAgICBpZiByZW1haW5pbmcgPCAyOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgY2hhbm5lbF9pZCA9
IHN0cnVjdC51bnBhY2soJyFIJywgZGF0YVtvZmZzZXQ6b2Zmc2V0KzJdKVswXSAmIDB4M2ZmZgot
ICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDIKLQotICAgIHJldHVybiBjaGFubmVsX2lkLCBj
aGFubmVsX2lkX2xlbmd0aAotCi0KLWRlZiBfcGFyc2VfbnVtYmVyKGRhdGEsIG9mZnNldD0wKToK
LSAgICBmaXJzdF9ieXRlID0gb3JkKGRhdGFbb2Zmc2V0XSkKLSAgICBpZiAoZmlyc3RfYnl0ZSAm
IDB4ODApICE9IDA6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVGhlIE1TQiBvZiBudW1iZXIg
ZmllbGQgbXVzdCBiZSB1bnNldCcpCi0gICAgZmlyc3RfYnl0ZSA9IGZpcnN0X2J5dGUgJiAweDdm
Ci0gICAgaWYgZmlyc3RfYnl0ZSA9PSAxMjc6Ci0gICAgICAgIGlmIG9mZnNldCArIDkgPiBsZW4o
ZGF0YSk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgbnVtYmVyJykKLSAg
ICAgICAgcmV0dXJuIHN0cnVjdC51bnBhY2soJyFRJywgZGF0YVtvZmZzZXQrMTpvZmZzZXQrOV0p
WzBdLCA5Ci0gICAgaWYgZmlyc3RfYnl0ZSA9PSAxMjY6Ci0gICAgICAgIGlmIG9mZnNldCArIDMg
PiBsZW4oZGF0YSk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgbnVtYmVy
JykKLSAgICAgICAgcmV0dXJuIHN0cnVjdC51bnBhY2soJyFIJywgZGF0YVtvZmZzZXQrMTpvZmZz
ZXQrM10pWzBdLCAzCi0gICAgcmV0dXJuIGZpcnN0X2J5dGUsIDEKLQotCi1kZWYgX3BhcnNlX3Np
emVfYW5kX2NvbnRlbnRzKGRhdGEsIG9mZnNldD0wKToKLSAgICBzaXplLCBhZHZhbmNlID0gX3Bh
cnNlX251bWJlcihkYXRhLCBvZmZzZXQpCi0gICAgc3RhcnRfcG9zaXRpb24gPSBvZmZzZXQgKyBh
ZHZhbmNlCi0gICAgZW5kX3Bvc2l0aW9uID0gc3RhcnRfcG9zaXRpb24gKyBzaXplCi0gICAgaWYg
bGVuKGRhdGEpIDwgZW5kX3Bvc2l0aW9uOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFs
aWQgc2l6ZSBvZiBjb250cm9sIGJsb2NrICglZCA8ICVkKScgJSAoCi0gICAgICAgICAgICAgICAg
bGVuKGRhdGEpLCBlbmRfcG9zaXRpb24pKQotICAgIHJldHVybiBkYXRhW3N0YXJ0X3Bvc2l0aW9u
OmVuZF9wb3NpdGlvbl0sIHNpemUgKyBhZHZhbmNlCi0KLQotZGVmIF9wYXJzZV9jb250cm9sX2Js
b2NrcyhkYXRhKToKLSAgICBibG9ja3MgPSBbXQotICAgIGxlbmd0aCA9IGxlbihkYXRhKQotICAg
IHBvcyA9IDAKLQotICAgIHdoaWxlIHBvcyA8IGxlbmd0aDoKLSAgICAgICAgZmlyc3RfYnl0ZSA9
IG9yZChkYXRhW3Bvc10pCi0gICAgICAgIHBvcyArPSAxCi0gICAgICAgIG9wY29kZSA9IChmaXJz
dF9ieXRlID4+IDUpICYgMHg3Ci0gICAgICAgIGJsb2NrID0gX0NvbnRyb2xCbG9jayhvcGNvZGUp
Ci0KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogU3VwcG9ydCBtb3JlIG9wY29kZQotICAgICAgICBp
ZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAgICAgICAg
ICBibG9jay5lbmNvZGUgPSBmaXJzdF9ieXRlICYgMwotICAgICAgICAgICAgYmxvY2sucmVqZWN0
ZWQgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKLQotICAgICAgICAgICAgY2hhbm5lbF9pZCwgYWR2
YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKGRhdGEsIHBvcykKLSAgICAgICAgICAgIGJsb2NrLmNo
YW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotCi0gICAg
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSwgYWR2YW5jZSA9IF9wYXJzZV9zaXplX2FuZF9jb250
ZW50cyhkYXRhLCBwb3MpCi0gICAgICAgICAgICBibG9jay5lbmNvZGVkX2hhbmRzaGFrZSA9IGVu
Y29kZWRfaGFuZHNoYWtlCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAgICAgICAgICAg
YmxvY2tzLmFwcGVuZChibG9jaykKLSAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVf
RFJPUF9DSEFOTkVMOgotICAgICAgICAgICAgYmxvY2subXV4X2Vycm9yID0gKGZpcnN0X2J5dGUg
Pj4gNCkgJiAxCi0KLSAgICAgICAgICAgIGNoYW5uZWxfaWQsIGFkdmFuY2UgPSBfcGFyc2VfY2hh
bm5lbF9pZChkYXRhLCBwb3MpCi0gICAgICAgICAgICBibG9jay5jaGFubmVsX2lkID0gY2hhbm5l
bF9pZAotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLQotICAgICAgICAgICAgcmVhc29uLCBh
ZHZhbmNlID0gX3BhcnNlX3NpemVfYW5kX2NvbnRlbnRzKGRhdGEsIHBvcykKLSAgICAgICAgICAg
IGlmIGxlbihyZWFzb24pID09IDA6Ci0gICAgICAgICAgICAgICAgYmxvY2suZHJvcF9jb2RlID0g
Tm9uZQotICAgICAgICAgICAgICAgIGJsb2NrLmRyb3BfbWVzc2FnZSA9ICcnCi0gICAgICAgICAg
ICBlbGlmIGxlbihyZWFzb24pID49IDI6Ci0gICAgICAgICAgICAgICAgYmxvY2suZHJvcF9jb2Rl
ID0gc3RydWN0LnVucGFjaygnIUgnLCByZWFzb25bOjJdKVswXQotICAgICAgICAgICAgICAgIGJs
b2NrLmRyb3BfbWVzc2FnZSA9IHJlYXNvblsyOl0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIERyb3BDaGFubmVsJykKLSAgICAgICAg
ICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBibG9ja3MuYXBwZW5kKGJsb2NrKQotICAg
ICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6Ci0gICAgICAgICAg
ICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNlX2NoYW5uZWxfaWQoZGF0YSwgcG9zKQotICAg
ICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgICAgIHBvcyAr
PSBhZHZhbmNlCi0gICAgICAgICAgICBzZW5kX3F1b3RhLCBhZHZhbmNlID0gX3BhcnNlX251bWJl
cihkYXRhLCBwb3MpCi0gICAgICAgICAgICBibG9jay5zZW5kX3F1b3RhID0gc2VuZF9xdW90YQot
ICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLSAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxv
Y2spCi0gICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1Q6
Ci0gICAgICAgICAgICBmYWxsYmFjayA9IGZpcnN0X2J5dGUgJiAxCi0gICAgICAgICAgICBzbG90
cywgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgcG9zKQotICAgICAgICAgICAgcG9zICs9
IGFkdmFuY2UKLSAgICAgICAgICAgIHNlbmRfcXVvdGEsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVy
KGRhdGEsIHBvcykKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBpZiBm
YWxsYmFjayA9PSAxIGFuZCAoc2xvdHMgIT0gMCBvciBzZW5kX3F1b3RhICE9IDApOgotICAgICAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignc2xvdHMgYW5kIHNlbmRfcXVvdGEgbXVzdCBiZSB6
ZXJvIGlmIEYgYml0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzIHNldCcp
Ci0gICAgICAgICAgICBibG9jay5mYWxsYmFjayA9IGZhbGxiYWNrCi0gICAgICAgICAgICBibG9j
ay5zbG90cyA9IHNsb3RzCi0gICAgICAgICAgICBibG9jay5zZW5kX3F1b3RhID0gc2VuZF9xdW90
YQotICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChibG9jaykKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5zdXBwb3J0ZWQgbXV4
IG9wY29kZSAlZCByZWNlaXZlZCcgJSBvcGNvZGUpCi0KLSAgICByZXR1cm4gYmxvY2tzCi0KLQot
ZGVmIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKToKLSAgICBpZiBjaGFubmVsX2lkIDwg
MDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2hhbm5lbCBpZCAlZCBtdXN0IG5vdCBiZSBu
ZWdhdGl2ZScgJSBjaGFubmVsX2lkKQotCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogNzoKLSAg
ICAgICAgcmV0dXJuIGNocihjaGFubmVsX2lkKQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDE0
OgotICAgICAgICByZXR1cm4gc3RydWN0LnBhY2soJyFIJywgMHg4MDAwICsgY2hhbm5lbF9pZCkK
LSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAyMToKLSAgICAgICAgZmlyc3QgPSBjaHIoMHhjMCAr
IChjaGFubmVsX2lkID4+IDE2KSkKLSAgICAgICAgcmV0dXJuIGZpcnN0ICsgc3RydWN0LnBhY2so
JyFIJywgY2hhbm5lbF9pZCAmIDB4ZmZmZikKLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAyOToK
LSAgICAgICAgcmV0dXJuIHN0cnVjdC5wYWNrKCchTCcsIDB4ZTAwMDAwMDAgKyBjaGFubmVsX2lk
KQotCi0gICAgcmFpc2UgVmFsdWVFcnJvcignQ2hhbm5lbCBpZCAlZCBpcyB0b28gbGFyZ2UnICUg
Y2hhbm5lbF9pZCkKLQotCi1kZWYgX2VuY29kZV9udW1iZXIobnVtYmVyKToKLSAgICBpZiBudW1i
ZXIgPD0gMTI1OgotICAgICAgICByZXR1cm4gY2hyKG51bWJlcikKLSAgICBlbGlmIG51bWJlciA8
ICgxIDw8IDE2KToKLSAgICAgICAgcmV0dXJuIGNocigweDdlKSArIHN0cnVjdC5wYWNrKCchSCcs
IG51bWJlcikKLSAgICBlbGlmIG51bWJlciA8ICgxIDw8IDYzKToKLSAgICAgICAgcmV0dXJuIGNo
cigweDdmKSArIHN0cnVjdC5wYWNrKCchUScsIG51bWJlcikKLSAgICBlbHNlOgotICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgbnVtYmVyJykKLQotCi1kZWYgX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0KGNoYW5uZWxfaWQsIGVuY29kZWRfaGFuZHNoYWtlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0wKToKLSAgICBsZW5ndGggPSBsZW4oZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgaGFuZHNoYWtlX2xlbmd0aCA9IF9lbmNvZGVfbnVtYmVyKGxlbmd0
aCkKLQotICAgIGZpcnN0X2J5dGUgPSAoX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA8
PCA1KSB8IGVuY29kaW5nCi0gICAgcmV0dXJuIChjaHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX2No
YW5uZWxfaWQoY2hhbm5lbF9pZCkgKwotICAgICAgICAgICAgaGFuZHNoYWtlX2xlbmd0aCArIGVu
Y29kZWRfaGFuZHNoYWtlKQotCi0KLWRlZiBfY3JlYXRlX2Zsb3dfY29udHJvbChjaGFubmVsX2lk
LCByZXBsZW5pc2hlZF9xdW90YSk6Ci0gICAgZmlyc3RfYnl0ZSA9IChfTVVYX09QQ09ERV9GTE9X
X0NPTlRST0wgPDwgNSkKLSAgICByZXR1cm4gKGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfY2hh
bm5lbF9pZChjaGFubmVsX2lkKSArCi0gICAgICAgICAgICBfZW5jb2RlX251bWJlcihyZXBsZW5p
c2hlZF9xdW90YSkpCi0KLQotY2xhc3MgX011eFJlYWRlclRocmVhZCh0aHJlYWRpbmcuVGhyZWFk
KToKLSAgICAiIiJNdXggcmVhZGVyIHRocmVhZC4KLQotICAgIFJlYWRzIGZyYW1lcyBhbmQgcGFz
c2VzIHRoZW0gdG8gdGhlIG11eCBjbGllbnQuIFRoaXMgdGhyZWFkIGFjY2Vzc2VzCi0gICAgcHJp
dmF0ZSBmdW5jdGlvbnMvdmFyaWFibGVzIG9mIHRoZSBtdXggY2xpZW50LgotICAgICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG11eCk6Ci0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19p
bml0X18oc2VsZikKLSAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLSAgICAgICAgc2VsZi5f
bXV4ID0gbXV4Ci0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gRmFsc2UKLQotICAgIGRl
ZiBfcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBmaXJzdF9vcGNvZGUgPSBOb25lCi0g
ICAgICAgIHBlbmRpbmdfcGF5bG9hZCA9IFtdCi0gICAgICAgIHdoaWxlIG5vdCBzZWxmLl9zdG9w
X3JlcXVlc3RlZDoKLSAgICAgICAgICAgIGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBw
YXlsb2FkX2xlbmd0aCA9ICgKLSAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcucmVh
ZF9mcmFtZV9oZWFkZXIoc2VsZi5fbXV4Ll9zb2NrZXQpKQotCi0gICAgICAgICAgICBpZiBub3Qg
Zmlyc3Rfb3Bjb2RlOgotICAgICAgICAgICAgICAgIGlmIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rl
c3RpbmcuT1BDT0RFX1RFWFQ6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
UmVjZWl2ZWQgYSB0ZXh0IG1lc3NhZ2Ugb24gcGh5c2ljYWwgJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3Rpb24nKQotICAgICAgICAgICAgICAgIGlmIG9wY29k
ZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBhbiBpbnRlcm1lZGlhdGUgZnJhbWUg
YnV0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmcmFnbWVudGF0aW9u
IHdhcyBub3Qgc3RhcnRlZCcpCi0gICAgICAgICAgICAgICAgaWYgKG9wY29kZSA9PSBjbGllbnRf
Zm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFSWSBvcgotICAgICAgICAgICAgICAgICAgICBvcGNvZGUg
PT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9QT05HIG9yCi0gICAgICAgICAgICAgICAgICAg
IG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1BPTkcgb3IKLSAgICAgICAgICAg
ICAgICAgICAgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQ0xPU0UpOgotICAg
ICAgICAgICAgICAgICAgICBmaXJzdF9vcGNvZGUgPSBvcGNvZGUKLSAgICAgICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGFuIHVu
ZGVmaW5lZCBvcGNvZGUgZnJhbWU6ICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcGNvZGUpCi0KLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlICE9IGNsaWVudF9mb3Jf
dGVzdGluZy5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignUmVjZWl2ZWQgYSBuZXcgb3Bjb2RlIGJlZm9yZSAnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICd0ZXJtaW5hdGluZyBmcmFnbWVudGF0aW9uJykKLQotICAgICAgICAgICAg
cGF5bG9hZCA9IGNsaWVudF9mb3JfdGVzdGluZy5yZWNlaXZlX2J5dGVzKAotICAgICAgICAgICAg
ICAgIHNlbGYuX211eC5fc29ja2V0LCBwYXlsb2FkX2xlbmd0aCkKLQotICAgICAgICAgICAgaWYg
c2VsZi5fbXV4Ll9pbmNvbWluZ19mcmFtZV9maWx0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgcGF5bG9hZCA9IHNlbGYuX211eC5faW5jb21pbmdfZnJhbWVfZmlsdGVyLmZpbHRlcihw
YXlsb2FkKQotCi0gICAgICAgICAgICBwZW5kaW5nX3BheWxvYWQuYXBwZW5kKHBheWxvYWQpCi0K
LSAgICAgICAgICAgIGlmIGZpbjoKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlm
IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKLQot
ICAgICAgICBtZXNzYWdlID0gJycuam9pbihwZW5kaW5nX3BheWxvYWQpCi0gICAgICAgIHJldHVy
biBmaXJzdF9vcGNvZGUsIG1lc3NhZ2UKLQotICAgIGRlZiByZXF1ZXN0X3N0b3Aoc2VsZik6Ci0g
ICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gVHJ1ZQotCi0gICAgZGVmIHJ1bihzZWxmKToK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVk
OgotICAgICAgICAgICAgICAgICMgb3Bjb2RlIGlzIE9QQ09ERV9CSU5BUlkgb3IgY29udHJvbCBv
cGNvZGVzIHdoZW4gYSBtZXNzYWdlCi0gICAgICAgICAgICAgICAgIyBpcyBzdWNjZXNmdWxseSBy
ZWNlaXZlZC4KLSAgICAgICAgICAgICAgICBvcGNvZGUsIG1lc3NhZ2UgPSBzZWxmLl9yZWNlaXZl
X21lc3NhZ2UoKQotICAgICAgICAgICAgICAgIGlmIG5vdCBvcGNvZGU6Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybgotICAgICAgICAgICAgICAgIGlmIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rl
c3RpbmcuT1BDT0RFX0JJTkFSWToKLSAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwgYWR2
YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKG1lc3NhZ2UpCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX211eC5fZGlzcGF0Y2hfZnJhbWUoY2hhbm5lbF9pZCwgbWVzc2FnZVthZHZhbmNlOl0pCi0g
ICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9wcm9j
ZXNzX2NvbnRyb2xfbWVzc2FnZShvcGNvZGUsIG1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBzZWxmLl9tdXguX25vdGlmeV9yZWFkZXJfZG9uZSgpCi0KLQotY2xhc3MgX0lu
bmVyRnJhbWUob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmluLCByc3YxLCByc3Yy
LCByc3YzLCBvcGNvZGUsIHBheWxvYWQpOgotICAgICAgICBzZWxmLmZpbiA9IGZpbgotICAgICAg
ICBzZWxmLnJzdjEgPSByc3YxCi0gICAgICAgIHNlbGYucnN2MiA9IHJzdjIKLSAgICAgICAgc2Vs
Zi5yc3YzID0gcnN2MwotICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQotICAgICAgICBzZWxm
LnBheWxvYWQgPSBwYXlsb2FkCi0KLQotY2xhc3MgX0xvZ2ljYWxDaGFubmVsRGF0YShvYmplY3Qp
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5xdWV1ZSA9IFF1ZXVlLlF1
ZXVlKCkKLSAgICAgICAgc2VsZi5zZW5kX3F1b3RhID0gMAotICAgICAgICBzZWxmLnJlY2VpdmVf
cXVvdGEgPSAwCi0KLQotY2xhc3MgTXV4Q2xpZW50KG9iamVjdCk6Ci0gICAgIiIiV2ViU29ja2V0
IG11eCBjbGllbnQuCi0KLSAgICBOb3RlIHRoYXQgdGhpcyBjbGFzcyBpcyBOT1QgdGhyZWFkLXNh
ZmUuIERvIG5vdCBhY2Nlc3MgYW4gaW5zdGFuY2Ugb2YgdGhpcwotICAgIGNsYXNzIGZyb20gbXVs
dGlwbGUgdGhyZWFkcyBhdCBhIHNhbWUgdGltZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3Nf
bG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAg
c2VsZi5fb3B0aW9ucy5lbmFibGVfbXV4KCkKLSAgICAgICAgc2VsZi5fc3RyZWFtID0gTm9uZQot
ICAgICAgICBzZWxmLl9zb2NrZXQgPSBOb25lCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IGNs
aWVudF9mb3JfdGVzdGluZy5XZWJTb2NrZXRIYW5kc2hha2Uoc2VsZi5fb3B0aW9ucykKLSAgICAg
ICAgc2VsZi5faW5jb21pbmdfZnJhbWVfZmlsdGVyID0gTm9uZQotICAgICAgICBzZWxmLl9vdXRn
b2luZ19mcmFtZV9maWx0ZXIgPSBOb25lCi0KLSAgICAgICAgc2VsZi5faXNfYWN0aXZlID0gRmFs
c2UKLSAgICAgICAgc2VsZi5fcmVhZF90aHJlYWQgPSBOb25lCi0gICAgICAgIHNlbGYuX2NvbnRy
b2xfYmxvY2tzX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotICAgICAgICBzZWxm
Ll9jb250cm9sX2Jsb2NrcyA9IFtdCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMgPSBjb2xs
ZWN0aW9ucy5kZXF1ZSgpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
ID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpOwotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
ID0ge30KLSAgICAgICAgc2VsZi5fdGltZW91dCA9IDIKLSAgICAgICAgc2VsZi5fcGh5c2ljYWxf
Y29ubmVjdGlvbl9jbG9zZV9ldmVudCA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29u
bmVjdGlvbl9jbG9zZV9tZXNzYWdlID0gTm9uZQotCi0gICAgZGVmIF9wYXJzZV9pbm5lcl9mcmFt
ZShzZWxmLCBkYXRhKToKLSAgICAgICAgaWYgbGVuKGRhdGEpID09IDA6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgZW5jYXBzdWxhdGVkIGZyYW1lIHJlY2VpdmVkJykKLQot
ICAgICAgICBmaXJzdF9ieXRlID0gb3JkKGRhdGFbMF0pCi0gICAgICAgIGZpbiA9IChmaXJzdF9i
eXRlIDw8IDcpICYgMQotICAgICAgICByc3YxID0gKGZpcnN0X2J5dGUgPDwgNikgJiAxCi0gICAg
ICAgIHJzdjIgPSAoZmlyc3RfYnl0ZSA8PCA1KSAmIDEKLSAgICAgICAgcnN2MyA9IChmaXJzdF9i
eXRlIDw8IDQpICYgMQotICAgICAgICBvcGNvZGUgPSBmaXJzdF9ieXRlICYgMHhmCi0KLSAgICAg
ICAgaWYgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyOgotICAgICAgICAgICAgcGF5bG9hZCA9
IHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlci5maWx0ZXIoCi0gICAgICAgICAgICAgICAgZGF0
YVsxOl0pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwYXlsb2FkID0gZGF0YVsxOl0KLQot
ICAgICAgICByZXR1cm4gX0lubmVyRnJhbWUoZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUs
IHBheWxvYWQpCi0KLSAgICBkZWYgX3Byb2Nlc3NfbXV4X2NvbnRyb2xfYmxvY2tzKHNlbGYpOgot
ICAgICAgICBmb3IgYmxvY2sgaW4gc2VsZi5fY29udHJvbF9ibG9ja3M6Ci0gICAgICAgICAgICBp
ZiBibG9jay5vcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAg
ICAgICAgICAgICAgIyBBZGRDaGFubmVsUmVzcG9uc2Ugd2lsbCBiZSBoYW5kbGVkIGluIGFkZF9j
aGFubmVsKCkuCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsaWYgYmxv
Y2sub3Bjb2RlID09IF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTDoKLSAgICAgICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
LmFjcXVpcmUoKQotICAgICAgICAgICAgICAgICAgICBpZiBub3QgYmxvY2suY2hhbm5lbF9pZCBp
biBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdJbnZhbGlkIGZsb3cgY29udHJvbCByZWNlaXZlZCBmb3IgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGFubmVsIGlkICVkJyAlIGJsb2NrLmNo
YW5uZWxfaWQpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbYmxv
Y2suY2hhbm5lbF9pZF0uc2VuZF9xdW90YSArPSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBi
bG9jay5zZW5kX3F1b3RhKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQot
ICAgICAgICAgICAgZWxpZiBibG9jay5vcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxf
U0xPVDoKLSAgICAgICAgICAgICAgICBzZWxmLl9jaGFubmVsX3Nsb3RzLmV4dGVuZChbYmxvY2su
c2VuZF9xdW90YV0gKiBibG9jay5zbG90cykKLQotICAgIGRlZiBfZGlzcGF0Y2hfZnJhbWUoc2Vs
ZiwgY2hhbm5lbF9pZCwgcGF5bG9hZCk6Ci0gICAgICAgIGlmIGNoYW5uZWxfaWQgPT0gX0NPTlRS
T0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl9j
b250cm9sX2Jsb2Nrc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5f
Y29udHJvbF9ibG9ja3MgKz0gX3BhcnNlX2NvbnRyb2xfYmxvY2tzKHBheWxvYWQpCi0gICAgICAg
ICAgICAgICAgc2VsZi5fcHJvY2Vzc19tdXhfY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAg
ICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAg
ZmluYWxseToKLSAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24u
cmVsZWFzZSgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAg
ICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAg
ICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBsb2dpY2FsIGZyYW1lIG9u
IGNoYW5uZWwgaWQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyVkLCB3
aGljaCBpcyBub3QgZXN0YWJsaXNoZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYW5uZWxfaWQpCi0KLSAgICAgICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYu
X3BhcnNlX2lubmVyX2ZyYW1lKHBheWxvYWQpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc1tjaGFubmVsX2lkXS5yZWNlaXZlX3F1b3RhIC09ICgKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGxlbihpbm5lcl9mcmFtZS5wYXlsb2FkKSkKLSAgICAgICAgICAgICAgICBpZiBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnJlY2VpdmVfcXVvdGEgPCAwOgotICAg
ICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoZSBzZXJ2ZXIgdmlvbGF0ZXMgcXVv
dGEgb24gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NoYW5uZWwgaWQg
JWQnICUgY2hhbm5lbF9pZCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgICAgICBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnF1ZXVlLnB1dChpbm5lcl9mcmFtZSkK
LQotICAgIGRlZiBfcHJvY2Vzc19jb250cm9sX21lc3NhZ2Uoc2VsZiwgb3Bjb2RlLCBtZXNzYWdl
KToKLSAgICAgICAgIyBQaW5nL1BvbmcgYXJlIG5vdCBzdXBwb3J0ZWQuCi0gICAgICAgIGlmIG9w
Y29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NMT1NFOgotICAgICAgICAgICAgc2Vs
Zi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9tZXNzYWdlID0gbWVzc2FnZQotICAgICAgICAg
ICAgaWYgc2VsZi5faXNfYWN0aXZlOgotICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5k
X2Nsb3NlKAotICAgICAgICAgICAgICAgICAgICBjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5TVEFU
VVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJykKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWFk
X3RocmVhZC5yZXF1ZXN0X3N0b3AoKQotCi0gICAgICAgICAgICBpZiBzZWxmLl9waHlzaWNhbF9j
b25uZWN0aW9uX2Nsb3NlX2V2ZW50OgotICAgICAgICAgICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nv
bm5lY3Rpb25fY2xvc2VfZXZlbnQuc2V0KCkKLQotICAgIGRlZiBfbm90aWZ5X3JlYWRlcl9kb25l
KHNlbGYpOgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlYWQgdGhyZWFkIHRlcm1pbmF0
ZWQuJykKLSAgICAgICAgc2VsZi5jbG9zZV9zb2NrZXQoKQotCi0gICAgZGVmIF9hc3NlcnRfY2hh
bm5lbF9zbG90X2F2YWlsYWJsZShzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2Vs
Zi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbGVu
KHNlbGYuX2NoYW5uZWxfc2xvdHMpID09IDA6Ci0gICAgICAgICAgICAgICAgIyBXYWl0IG9uY2UK
LSAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24ud2FpdCh0aW1l
b3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9j
b250cm9sX2Jsb2Nrc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgaWYgbGVuKHNlbGYu
X2NoYW5uZWxfc2xvdHMpID09IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ZhaWxl
ZCB0byByZWNlaXZlIE5ld0NoYW5uZWxTbG90JykKLQotICAgIGRlZiBfYXNzZXJ0X3NlbmRfcXVv
dGFfYXZhaWxhYmxlKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAg
IGlmIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSA9PSAwOgot
ICAgICAgICAgICAgICAgICMgV2FpdCBvbmNlCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24ud2FpdCh0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgICAgICBpZiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRd
LnNlbmRfcXVvdGEgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRv
IHJlY2VpdmUgRmxvd0NvbnRyb2wgZm9yIGNoYW5uZWwgaWQgJWQnICUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFubmVsX2lkKQotCi0gICAgZGVmIGNvbm5lY3Qoc2VsZik6Ci0gICAg
ICAgIHNlbGYuX3NvY2tldCA9IGNsaWVudF9mb3JfdGVzdGluZy5jb25uZWN0X3NvY2tldF93aXRo
X3JldHJ5KAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAg
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLnNvY2tldF90aW1lb3V0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlv
bnMudXNlX3RscykKLQotICAgICAgICBzZWxmLl9oYW5kc2hha2UuaGFuZHNoYWtlKHNlbGYuX3Nv
Y2tldCkKLSAgICAgICAgc2VsZi5fc3RyZWFtID0gY2xpZW50X2Zvcl90ZXN0aW5nLldlYlNvY2tl
dFN0cmVhbSgKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldCwgc2VsZi5faGFuZHNoYWtlKQotCi0g
ICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbX0RFRkFVTFRfQ0hBTk5FTF9JRF0gPSBfTG9n
aWNhbENoYW5uZWxEYXRhKCkKLQotICAgICAgICBzZWxmLl9yZWFkX3RocmVhZCA9IF9NdXhSZWFk
ZXJUaHJlYWQoc2VsZikKLSAgICAgICAgc2VsZi5fcmVhZF90aHJlYWQuc3RhcnQoKQotCi0gICAg
ICAgIHNlbGYuX2Fzc2VydF9jaGFubmVsX3Nsb3RfYXZhaWxhYmxlKCkKLSAgICAgICAgc2VsZi5f
YXNzZXJ0X3NlbmRfcXVvdGFfYXZhaWxhYmxlKF9ERUZBVUxUX0NIQU5ORUxfSUQpCi0KLSAgICAg
ICAgc2VsZi5faXNfYWN0aXZlID0gVHJ1ZQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQ29u
bmVjdGlvbiBlc3RhYmxpc2hlZCcpCi0KLSAgICBkZWYgYWRkX2NoYW5uZWwoc2VsZiwgY2hhbm5l
bF9pZCwgb3B0aW9ucyk6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9pc19hY3RpdmU6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ011eCBjbGllbnQgaXMgbm90IGFjdGl2ZScpCi0KLSAgICAg
ICAgaWYgY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdDaGFubmVsIGlkICVkIGFscmVhZHkgZXhpc3RzJyAlIGNoYW5uZWxf
aWQpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VuZF9xdW90YSA9IHNlbGYuX2NoYW5u
ZWxfc2xvdHMucG9wbGVmdCgpCi0gICAgICAgIGV4Y2VwdCBJbmRleEVycm9yIGFzIGU6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIGNoYW5uZWwgc2xvdHM6ICVyJyAlIGUpCi0KLSAg
ICAgICAgIyBDcmVhdGUgQWRkQ2hhbm5lbCByZXF1ZXN0Ci0gICAgICAgIHJlcXVlc3RfbGluZSA9
ICdHRVQgJXMgSFRUUC8xLjFcclxuJyAlIG9wdGlvbnMucmVzb3VyY2UKLSAgICAgICAgZmllbGRz
ID0gW10KLSAgICAgICAgaWYgb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9PSBjbGllbnRfZm9yX3Rlc3Rp
bmcuREVGQVVMVF9QT1JUOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnSG9zdDogJXNcclxu
JyAlIG9wdGlvbnMuc2VydmVyX2hvc3QubG93ZXIoKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGZpZWxkcy5hcHBlbmQoJ0hvc3Q6ICVzOiVkXHJcbicgJSAob3B0aW9ucy5zZXJ2ZXJfaG9z
dC5sb3dlcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcHRpb25zLnNlcnZlcl9wb3J0KSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnT3JpZ2luOiAl
c1xyXG4nICUgb3B0aW9ucy5vcmlnaW4ubG93ZXIoKSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgn
Q29ubmVjdGlvbjogVXBncmFkZVxyXG4nKQotCi0gICAgICAgIGlmIGxlbihvcHRpb25zLmV4dGVu
c2lvbnMpID4gMDoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRXh0
ZW5zaW9uczogJXNcclxuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcsICcuam9pbihv
cHRpb25zLmV4dGVuc2lvbnMpKQotCi0gICAgICAgIGhhbmRzaGFrZSA9IHJlcXVlc3RfbGluZSAr
ICcnLmpvaW4oZmllbGRzKSArICdcclxuJwotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0g
X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0KAotICAgICAgICAgICAgY2hhbm5lbF9pZCwgaGFu
ZHNoYWtlKQotICAgICAgICBwYXlsb2FkID0gX2VuY29kZV9jaGFubmVsX2lkKF9DT05UUk9MX0NI
QU5ORUxfSUQpICsgYWRkX2NoYW5uZWxfcmVxdWVzdAotICAgICAgICBzZWxmLl9zdHJlYW0uc2Vu
ZF9iaW5hcnkocGF5bG9hZCkKLQotICAgICAgICAjIFdhaXQgQWRkQ2hhbm5lbFJlc3BvbnNlCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnV2FpdGluZyBBZGRDaGFubmVsUmVzcG9uc2UgZm9y
IHRoZSByZXF1ZXN0Li4uJykKLSAgICAgICAgcmVzcG9uc2UgPSBOb25lCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICAgICAgZm9yIGJsb2NrIGluIHNlbGYu
X2NvbnRyb2xfYmxvY2tzOgotICAgICAgICAgICAgICAgICAgICBpZiBibG9jay5vcGNvZGUgIT0g
X01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICBpZiBibG9jay5jaGFubmVsX2lkID09IGNo
YW5uZWxfaWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IGJsb2NrCi0gICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrcy5yZW1vdmUocmVzcG9uc2Up
Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIGlmIHJlc3Bv
bnNlOgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIHNlbGYuX2Nv
bnRyb2xfYmxvY2tzX2NvbmRpdGlvbi53YWl0KHNlbGYuX3RpbWVvdXQpCi0gICAgICAgICAgICAg
ICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2ZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdBZGRDaGFubmVsUmVxdWVzdCB0aW1lZCBvdXQnKQotICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0g
ICAgICAgICMgVmFsaWRhdGUgQWRkQ2hhbm5lbFJlc3BvbnNlCi0gICAgICAgIGlmIHJlc3BvbnNl
LnJlamVjdGVkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaGUgc2VydmVyIHJlamVj
dGVkIEFkZENoYW5uZWxSZXF1ZXN0JykKLQotICAgICAgICBmaWVsZHMgPSBfcGFyc2VfaGFuZHNo
YWtlX3Jlc3BvbnNlKHJlc3BvbnNlLmVuY29kZWRfaGFuZHNoYWtlKQotCi0gICAgICAgICMgU2hv
dWxkIHdlIHJlamVjdCB3aGVuIFVwZ3JhZGUsIENvbm5lY3Rpb24sIG9yIFNlYy1XZWJTb2NrZXQt
QWNjZXB0Ci0gICAgICAgICMgaGVhZGVycyBleGlzdD8KLQotICAgICAgICBzZWxmLl9sb2dpY2Fs
X2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc1tjaGFubmVsX2lkXSA9IF9Mb2dpY2FsQ2hhbm5lbERhdGEoKQotICAgICAgICBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAg
ICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnTG9naWNhbCBjaGFubmVsICVkIGVzdGFibGlzaGVkJyAlIGNo
YW5uZWxfaWQpCi0KLSAgICBkZWYgX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoc2Vs
ZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9pc19hY3RpdmU6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ011eCBjbGllbnQgaXMgbm90IGFjdGl2ZScpCi0KLSAgICAg
ICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignTG9naWNhbCBjaGFubmVsICVkIGlzIG5vdCBlc3RhYmxpc2hl
ZC4nKQotCi0gICAgZGVmIGRyb3BfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAg
IyBUT0RPKGJhc2hpKTogSW1wbGVtZW50Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBzZW5kX2Zs
b3dfY29udHJvbChzZWxmLCBjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSk6Ci0gICAgICAg
IHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLSAgICAg
ICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVu
aXNoZWRfcXVvdGEpCi0gICAgICAgIHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoX0NPTlRS
T0xfQ0hBTk5FTF9JRCkgKyBmbG93X2NvbnRyb2wKLSAgICAgICAgIyBSZXBsZW5pc2ggcmVjZWl2
ZSBxdW90YQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
X2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNb
Y2hhbm5lbF9pZF0ucmVjZWl2ZV9xdW90YSArPSAoCi0gICAgICAgICAgICAgICAgcmVwbGVuaXNo
ZWRfcXVvdGEpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmlu
YXJ5KHBheWxvYWQpCi0KLSAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIGNoYW5uZWxfaWQsIG1l
c3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICBzZWxmLl9jaGVja19sb2dp
Y2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5uZWxfaWQpCi0KLSAgICAgICAgaWYgYmluYXJ5Ogot
ICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IChlbmQgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX0JJTkFSWQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IChl
bmQgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQKLSAgICAgICAgICAgIG1l
c3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRmLTgnKQotCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAg
ICAgaWYgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhIDwgbGVu
KG1lc3NhZ2UpOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignU2VuZCBxdW90YSB2
aW9sYXRpb246ICVkIDwgJWQnICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhLAotICAgICAgICAgICAgICAgICAg
ICAgICAgbGVuKG1lc3NhZ2UpKSkKLQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhIC09IGxlbihtZXNzYWdlKQotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgp
Ci0gICAgICAgIHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKyBjaHIo
Zmlyc3RfYnl0ZSkgKyBtZXNzYWdlCi0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShw
YXlsb2FkKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlKHNlbGYsIGNoYW5uZWxfaWQsIHBheWxv
YWQsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9p
c19vcGVuZWQoY2hhbm5lbF9pZCkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbm5lcl9m
cmFtZSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucXVldWUuZ2V0KAotICAg
ICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAgICAgZXhjZXB0IFF1ZXVl
LkVtcHR5IGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCByZWNlaXZl
IG1lc3NhZ2UgZnJvbSBjaGFubmVsIGlkICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hhbm5lbF9pZCkKLQotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAgICBvcGNvZGUg
PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFSWQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgb3Bjb2RlID0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhUCi0KLSAgICAgICAg
aWYgaW5uZXJfZnJhbWUub3Bjb2RlICE9IG9wY29kZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignVW5leHBlY3RlZCBvcGNvZGUgcmVjZWl2ZWQgKCVyICE9ICVyKScgJQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChleHBlY3RlZF9vcGNvZGUsIGlubmVyX2ZyYW1lLm9wY29kZSkp
Ci0KLSAgICAgICAgaWYgaW5uZXJfZnJhbWUucGF5bG9hZCAhPSBwYXlsb2FkOgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIHBheWxvYWQgcmVjZWl2ZWQnKQotCi0gICAg
ZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY2hhbm5lbF9pZCwgY29kZT1Ob25lLCByZWFzb249JycpOgot
ICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5uZWxfaWQp
Ci0KLSAgICAgICAgaWYgY29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGJvZHkgPSBzdHJ1
Y3QucGFjaygnIUgnLCBjb2RlKSArIHJlYXNvbi5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGJvZHkgPSAnJwotCi0gICAgICAgIGZpcnN0X2J5dGUgPSAoMSA8PCA3
KSB8IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQ0xPU0UKLSAgICAgICAgcGF5bG9hZCA9IF9l
bmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArIGNocihmaXJzdF9ieXRlKSArIGJvZHkKLSAg
ICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KHBheWxvYWQpCi0KLSAgICBkZWYgYXNzZXJ0
X3JlY2VpdmVfY2xvc2Uoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIHNlbGYuX2NoZWNrX2xv
Z2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0u
cXVldWUuZ2V0KAotICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAg
ICAgZXhjZXB0IFF1ZXVlLkVtcHR5IGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J0Nhbm5vdCByZWNlaXZlIG1lc3NhZ2UgZnJvbSBjaGFubmVsIGlkICVkJyAlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCkKLSAgICAgICAgaWYgaW5uZXJfZnJhbWUub3Bj
b2RlICE9IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQ0xPU0U6Ci0gICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJ0RpZG5cJ3QgcmVjZWl2ZSBjbG9zZSBmcmFtZScpCi0KLSAgICBkZWYgc2Vu
ZF9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlKHNlbGYsIGNvZGU9Tm9uZSwgcmVhc29uPScnKToK
LSAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudCA9IHRocmVhZGlu
Zy5FdmVudCgpCi0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2Nsb3NlKGNvZGUsIHJlYXNvbikK
LQotICAgICMgVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgb25seSBhZnRlciBjYWxsaW5nCi0gICAg
IyBzZW5kX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2UoKS4KLSAgICBkZWYgYXNzZXJ0X3BoeXNp
Y2FsX2Nvbm5lY3Rpb25fcmVjZWl2ZV9jbG9zZSgKLSAgICAgICAgc2VsZiwgY29kZT1jbGllbnRf
Zm9yX3Rlc3RpbmcuU1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249JycpOgotICAgICAgICBz
ZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50LndhaXQodGltZW91dD1zZWxmLl90
aW1lb3V0KQotICAgICAgICBpZiAobm90IHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2Vf
ZXZlbnQuaXNTZXQoKSBvcgotICAgICAgICAgICAgbm90IHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rp
b25fY2xvc2VfbWVzc2FnZSk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0RpZG5cJ3Qg
cmVjZWl2ZSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAgICBkZWYgY2xvc2Vfc29ja2V0KHNlbGYp
OgotICAgICAgICBzZWxmLl9pc19hY3RpdmUgPSBGYWxzZQotICAgICAgICBzZWxmLl9zb2NrZXQu
Y2xvc2UoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3J1bl9hbGwucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvcnVu
X2FsbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBhNWQ4N2Q4MzgyMmIwNzgz
YmUxM2UzM2RkYTNhYjYxYTVhZmU0MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvcnVuX2FsbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDg5
ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29v
Z2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQot
IiIiUnVuIGFsbCB0ZXN0cyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuCi0KLVRoaXMgc3VpdGUgaXMg
ZXhwZWN0ZWQgdG8gYmUgcnVuIHVuZGVyIHB5d2Vic29ja2V0J3Mgc3JjIGRpcmVjdG9yeSwgaS5l
LiB0aGUKLWRpcmVjdG9yeSBjb250YWluaW5nIG1vZF9weXdlYnNvY2tldCwgdGVzdCwgZXRjLgot
Ci1UbyBjaGFuZ2UgbG9nZ2luIGxldmVsLCBwbGVhc2Ugc3BlY2lmeSAtLWxvZy1sZXZlbCBvcHRp
b24uCi0gICAgcHl0aG9uIHRlc3QvcnVuX3Rlc3QucHkgLS1sb2ctbGV2ZWwgZGVidWcKLQotVG8g
cGFzcyBhbnkgb3B0aW9uIHRvIHVuaXR0ZXN0IG1vZHVsZSwgcGxlYXNlIHNwZWNpZnkgb3B0aW9u
cyBhZnRlciAnLS0nLiBGb3IKLWV4YW1wbGUsIHJ1biB0aGlzIGZvciBtYWtpbmcgdGhlIHRlc3Qg
cnVubmVyIHZlcmJvc2UuCi0gICAgcHl0aG9uIHRlc3QvcnVuX3Rlc3QucHkgLS1sb2ctbGV2ZWwg
ZGVidWcgLS0gLXYKLSIiIgotCi0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3B0cGFyc2UKLWlt
cG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QKLQotCi1fVEVT
VF9NT0RVTEVfUEFUVEVSTiA9IHJlLmNvbXBpbGUocideKHRlc3RfLispXC5weSQnKQotCi0KLWRl
ZiBfbGlzdF90ZXN0X21vZHVsZXMoZGlyZWN0b3J5KToKLSAgICBtb2R1bGVfbmFtZXMgPSBbXQot
ICAgIGZvciBmaWxlbmFtZSBpbiBvcy5saXN0ZGlyKGRpcmVjdG9yeSk6Ci0gICAgICAgIG1hdGNo
ID0gX1RFU1RfTU9EVUxFX1BBVFRFUk4uc2VhcmNoKGZpbGVuYW1lKQotICAgICAgICBpZiBtYXRj
aDoKLSAgICAgICAgICAgIG1vZHVsZV9uYW1lcy5hcHBlbmQobWF0Y2guZ3JvdXAoMSkpCi0gICAg
cmV0dXJuIG1vZHVsZV9uYW1lcwotCi0KLWRlZiBfc3VpdGUoKToKLSAgICBsb2FkZXIgPSB1bml0
dGVzdC5UZXN0TG9hZGVyKCkKLSAgICByZXR1cm4gbG9hZGVyLmxvYWRUZXN0c0Zyb21OYW1lcygK
LSAgICAgICAgICAgIF9saXN0X3Rlc3RfbW9kdWxlcyhvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxp
dChfX2ZpbGVfXylbMF0sICcuJykpKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0g
ICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKLSAgICBwYXJzZXIuYWRkX29wdGlv
bignLS1sb2ctbGV2ZWwnLCAnLS1sb2dfbGV2ZWwnLCB0eXBlPSdjaG9pY2UnLAotICAgICAgICAg
ICAgICAgICAgICAgIGRlc3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9J3dhcm5pbmcnLAotICAgICAg
ICAgICAgICAgICAgICAgIGNob2ljZXM9WydkZWJ1ZycsICdpbmZvJywgJ3dhcm5pbmcnLCAnd2Fy
bicsICdlcnJvcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyaXRpY2FsJ10p
Ci0gICAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLSAgICBsb2dnaW5nLmJh
c2ljQ29uZmlnKAotICAgICAgICAgICAgbGV2ZWw9bG9nZ2luZy5nZXRMZXZlbE5hbWUob3B0aW9u
cy5sb2dfbGV2ZWwudXBwZXIoKSksCi0gICAgICAgICAgICBmb3JtYXQ9JyUobGV2ZWxuYW1lKXMg
JShhc2N0aW1lKXMgJwotICAgICAgICAgICAgICAgICAgICclKGZpbGVuYW1lKXM6JShsaW5lbm8p
ZF0gJwotICAgICAgICAgICAgICAgICAgICclKG1lc3NhZ2UpcycsCi0gICAgICAgICAgICBkYXRl
Zm10PSclSDolTTolUycpCi0gICAgdW5pdHRlc3QubWFpbihkZWZhdWx0VGVzdD0nX3N1aXRlJywg
YXJndj1bc3lzLmFyZ3ZbMF1dICsgYXJncykKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC9zZXRfc3lzX3BhdGgucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qvc2V0X3N5c19wYXRo
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2M2ZGI5ZWE0ZDM4M2EzN2MyN2Ew
NjBhMGVmMWM1NjNiYmIxZTE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC9zZXRfc3lzX3BhdGgucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0
NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJDb25maWd1cmF0aW9uIGZvciB0ZXN0
aW5nLgotCi1UZXN0IGZpbGVzIHNob3VsZCBpbXBvcnQgdGhpcyBtb2R1bGUgYmVmb3JlIG1vZF9w
eXdlYnNvY2tldC4KLSIiIgotCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi0KLSMgQWRkIHRo
ZSBwYXJlbnQgZGlyZWN0b3J5IHRvIHN5cy5wYXRoIHRvIGVuYWJsZSBpbXBvcnRpbmcgbW9kX3B5
d2Vic29ja2V0Lgotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0
KF9fZmlsZV9fKVswXSwgJy4uJykpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRjaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2Rpc3BhdGNoLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTZkNjA1NjA5YzhhYjdiMzBkNzIwNjM4
MzBmZjQzNGMxYzU2ZGMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2Rpc3BhdGNoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjg4
ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29v
Z2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQot
IiIiVGVzdHMgZm9yIGRpc3BhdGNoIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgb3MKLWltcG9ydCB1
bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2Nh
dGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGRpc3BhdGNoCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIHRl
c3QgaW1wb3J0IG1vY2sKLQotCi1fVEVTVF9IQU5ETEVSU19ESVIgPSBvcy5wYXRoLmpvaW4oCi0g
ICAgICAgIG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdLCAndGVzdGRhdGEnLCAnaGFuZGxlcnMn
KQotCi1fVEVTVF9IQU5ETEVSU19TVUJfRElSID0gb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJT
X0RJUiwgJ3N1YicpCi0KLQotY2xhc3MgRGlzcGF0Y2hlclRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGRpc3BhdGNoIG1vZHVsZS4iIiIKLQotICAgIGRlZiB0
ZXN0X25vcm1hbGl6ZV9wYXRoKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBh
dGguYWJzcGF0aCgnL2EvYicpLnJlcGxhY2UoJ1xcJywgJy8nKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoJy9hL2InKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChvcy5wYXRoLmFic3BhdGgoJy9hL2InKS5yZXBsYWNlKCdcXCcsICcvJyksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKCdcXGFcXGIn
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5wYXRoLmFic3BhdGgoJy9hL2InKS5yZXBs
YWNlKCdcXCcsICcvJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2guX25vcm1h
bGl6ZV9wYXRoKCcvYS9jLy4uL2InKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5wYXRo
LmFic3BhdGgoJ2FiYycpLnJlcGxhY2UoJ1xcJywgJy8nKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoJ2FiYycpKQotCi0gICAgZGVmIHRlc3RfY29u
dmVydGVyKHNlbGYpOgotICAgICAgICBjb252ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhf
dG9fcmVzb3VyY2VfY29udmVydGVyKCcvYS9iJykKLSAgICAgICAgIyBQeXRob24gYnVpbHQgYnkg
TVNDIGluc2VydHMgYSBkcml2ZSBuYW1lIGxpa2UgJ0M6XCcgdmlhIHJlYWxwYXRoKCkuCi0gICAg
ICAgICMgQ29udmVydGVyIEdlbmVyYXRvciBleHBhbmRzIHByb3ZpZGVkIHBhdGggdXNpbmcgcmVh
bHBhdGgoKSBhbmQgdXNlcwotICAgICAgICAjIHRoZSBwYXRoIGluY2x1ZGluZyBhIGRyaXZlIG5h
bWUgdG8gdmVyaWZ5IHRoZSBwcmVmaXguCi0gICAgICAgIG9zX3Jvb3QgPSBvcy5wYXRoLnJlYWxw
YXRoKCcvJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9v
dCArICdhL2IvaF93c2gucHknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2MvaCcsIGNv
bnZlcnRlcihvc19yb290ICsgJ2EvYi9jL2hfd3NoLnB5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgY29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2gucHknKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBjb252ZXJ0ZXIoJ2EvYi9oX3dzaC5weScpKQotCi0gICAgICAg
IGNvbnZlcnRlciA9IGRpc3BhdGNoLl9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIo
J2EvYicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKGRpc3BhdGNo
Ll9ub3JtYWxpemVfcGF0aCgKLSAgICAgICAgICAgICdhL2IvaF93c2gucHknKSkpCi0KLSAgICAg
ICAgY29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRl
cignL2EvYi8vLycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKG9z
X3Jvb3QgKyAnYS9iL2hfd3NoLnB5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywg
Y29udmVydGVyKGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgKLSAgICAgICAgICAgICcvYS9iLy4u
L2IvaF93c2gucHknKSkpCi0KLSAgICAgICAgY29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0ZV9w
YXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcigKLSAgICAgICAgICAgICcvYS8uLi9hL2IvLi4vYi8n
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgJ2Ev
Yi9oX3dzaC5weScpKQotCi0gICAgICAgIGNvbnZlcnRlciA9IGRpc3BhdGNoLl9jcmVhdGVfcGF0
aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIocidcYVxiJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArIHInYVxiXGhfd3NoLnB5JykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKG9zX3Jvb3QgKyByJ2EvYi9oX3dzaC5weScp
KQotCi0gICAgZGVmIHRlc3RfZW51bWVyYXRlX2hhbmRsZXJfZmlsZV9wYXRocyhzZWxmKToKLSAg
ICAgICAgcGF0aHMgPSBsaXN0KAotICAgICAgICAgICAgZGlzcGF0Y2guX2VudW1lcmF0ZV9oYW5k
bGVyX2ZpbGVfcGF0aHMoX1RFU1RfSEFORExFUlNfRElSKSkKLSAgICAgICAgcGF0aHMuc29ydCgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoOCwgbGVuKHBhdGhzKSkKLSAgICAgICAgZXhwZWN0
ZWRfcGF0aHMgPSBbCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJT
X0RJUiwgJ2Fib3J0X2J5X3VzZXJfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5q
b2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ2JsYW5rX3dzaC5weScpLAotICAgICAgICAgICAgICAg
IG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdvcmlnaW5fY2hlY2tfd3NoLnB5Jyks
Ci0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1Yics
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleGNlcHRpb25faW5fdHJhbnNmZXJfd3No
LnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwg
J3N1YicsICdub25fY2FsbGFibGVfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5q
b2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsICdwbGFpbl93c2gucHknKSwKLSAgICAgICAg
ICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5JyksCi0gICAg
ICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd3cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5JyksCi0g
ICAgICAgICAgICAgICAgXQotICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCBpbiB6aXAoZXhw
ZWN0ZWRfcGF0aHMsIHBhdGhzKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0
ZWQsIGFjdHVhbCkKLQotICAgIGRlZiB0ZXN0X3NvdXJjZV9oYW5kbGVyX2ZpbGUoc2VsZik6Ci0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hF
eGNlcHRpb24sIGRpc3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlLCAnJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwg
ZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2ZpbGUsICdkZWYnKQotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcygKLSAgICAgICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBkaXNwYXRj
aC5fc291cmNlX2hhbmRsZXJfZmlsZSwgJzEvMCcpCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcyhk
aXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmlsZSgKLSAgICAgICAgICAgICAgICAnZGVmIHdlYl9z
b2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOnBhc3NcbicKLSAgICAgICAgICAgICAg
ICAnZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KTpwYXNzXG4nKSkKLQotICAg
IGRlZiB0ZXN0X3NvdXJjZV93YXJuaW5ncyhzZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRp
c3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAgICAgICB3YXJu
aW5ncyA9IGRpc3BhdGNoZXIuc291cmNlX3dhcm5pbmdzKCkKLSAgICAgICAgd2FybmluZ3Muc29y
dCgpCi0gICAgICAgIGV4cGVjdGVkX3dhcm5pbmdzID0gWwotICAgICAgICAgICAgICAgIChvcy5w
YXRoLnJlYWxwYXRoKG9zLnBhdGguam9pbigKLSAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFO
RExFUlNfRElSLCAnYmxhbmtfd3NoLnB5JykpICsKLSAgICAgICAgICAgICAgICAgJzogd2ViX3Nv
Y2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgbm90IGRlZmluZWQuJyksCi0gICAgICAgICAgICAg
ICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgICAgICBf
VEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAnbm9uX2NhbGxhYmxlX3dzaC5weScpKSArCi0gICAg
ICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIGlzIG5vdCBjYWxs
YWJsZS4nKSwKLSAgICAgICAgICAgICAgICAob3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4o
Ci0gICAgICAgICAgICAgICAgICAgIF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsICd3cm9uZ19o
YW5kc2hha2Vfc2lnX3dzaC5weScpKSArCi0gICAgICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlIGlzIG5vdCBkZWZpbmVkLicpLAotICAgICAgICAgICAgICAgIChv
cy5wYXRoLnJlYWxwYXRoKG9zLnBhdGguam9pbigKLSAgICAgICAgICAgICAgICAgICAgX1RFU1Rf
SEFORExFUlNfRElSLCAnc3ViJywgJ3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHknKSkgKwotICAg
ICAgICAgICAgICAgICAnOiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEgaXMgbm90IGRlZmluZWQu
JyksCi0gICAgICAgICAgICAgICAgXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyg0LCBsZW4o
d2FybmluZ3MpKQotICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCBpbiB6aXAoZXhwZWN0ZWRf
d2FybmluZ3MsIHdhcm5pbmdzKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVj
dGVkLCBhY3R1YWwpCi0KLSAgICBkZWYgdGVzdF9kb19leHRyYV9oYW5kc2hha2Uoc2VsZik6Ci0g
ICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJ
UiwgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoKQotICAgICAgICBy
ZXF1ZXN0LndzX3Jlc291cmNlID0gJy9vcmlnaW5fY2hlY2snCi0gICAgICAgIHJlcXVlc3Qud3Nf
b3JpZ2luID0gJ2h0dHA6Ly9leGFtcGxlLmNvbScKLSAgICAgICAgZGlzcGF0Y2hlci5kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCkgICMgTXVzdCBub3QgcmFpc2UgZXhjZXB0aW9uLgotCi0gICAg
ICAgIHJlcXVlc3Qud3Nfb3JpZ2luID0gJ2h0dHA6Ly9iYWQuZXhhbXBsZS5jb20nCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGRpc3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3Qp
Ci0gICAgICAgICAgICBzZWxmLmZhaWwoJ0NvdWxkIG5vdCBjYXRjaCBIYW5kc2hha2VFeGNlcHRp
b24gd2l0aCA0MDMgc3RhdHVzJykKLSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VF
eGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDQwMywgZS5zdGF0
dXMpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuZmFp
bCgnVW5leHBlY3RlZCBleGNlcHRpb246ICVyJyAlIGUpCi0KLSAgICBkZWYgdGVzdF9hYm9ydF9l
eHRyYV9oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNw
YXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IG1vY2su
TW9ja1JlcXVlc3QoKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9hYm9ydF9ieV91
c2VyJwotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4
Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9o
YW5kc2hha2UsIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF90cmFuc2Zlcl9kYXRhKHNlbGYpOgot
ICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19E
SVIsIE5vbmUpCi0KLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlv
bj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcpKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNl
ID0gJy9vcmlnaW5fY2hlY2snCi0gICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSAncDEnCi0g
ICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdvcmlnaW5fY2hlY2tfd3NoLnB5IGlzIGNhbGxlZCBmb3IgL29yaWdpbl9jaGVj
aywgcDEnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ1x4ZmZceDAwJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAg
ICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdc
eGZmXHgwMCcpKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvcGxhaW4nCi0g
ICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSBOb25lCi0gICAgICAgIGRpc3BhdGNoZXIudHJh
bnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzdWIvcGxhaW5f
d3NoLnB5IGlzIGNhbGxlZCBmb3IgL3N1Yi9wbGFpbiwgTm9uZScKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAnXHhmZlx4MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVx
dWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJ1x4ZmZceDAwJykpCi0gICAgICAgIHJlcXVl
c3Qud3NfcmVzb3VyY2UgPSAnL3N1Yi9wbGFpbj8nCi0gICAgICAgIHJlcXVlc3Qud3NfcHJvdG9j
b2wgPSBOb25lCi0gICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdzdWIvcGxhaW5fd3NoLnB5IGlzIGNhbGxlZCBmb3IgL3N1
Yi9wbGFpbj8sIE5vbmUnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ1x4ZmZceDAwJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkp
Ci0KLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1v
Y2tDb25uKCdceGZmXHgwMCcpKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIv
cGxhaW4/cT12JwotICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gTm9uZQotICAgICAgICBk
aXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnc3ViL3BsYWluX3dzaC5weSBpcyBjYWxsZWQgZm9yIC9zdWIvcGxhaW4/cT12LCBOb25lJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICdceGZmXHgwMCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rf
dHJhbnNmZXJfZGF0YV9ub19oYW5kbGVyKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlz
cGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIGZvciBy
ZXNvdXJjZSBpbiBbJy9ibGFuaycsICcvc3ViL25vbl9jYWxsYWJsZScsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgJy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQnLCAnL2RvZXMvbm90L2V4aXN0J106
Ci0gICAgICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2su
TW9ja0Nvbm4oJycpKQotICAgICAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9IHJlc291cmNl
Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gJ3AyJwotICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAg
ICAgICAgICAgICAgIHNlbGYuZmFpbCgpCi0gICAgICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlz
cGF0Y2hFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3Moc3Ry
KGUpLmZpbmQoJ05vIGhhbmRsZXInKSAhPSAtMSkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRp
b246Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCkKLQotICAgIGRlZiB0ZXN0X3RyYW5zZmVy
X2RhdGFfaGFuZGxlcl9leGNlcHRpb24oc2VsZik6Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBkaXNw
YXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLSAgICAgICAgcmVxdWVz
dCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCcnKSkKLSAgICAg
ICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicKLSAg
ICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9ICdwMycKLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgICAgICAgICBzZWxmLmZh
aWwoKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLmZh
aWxVbmxlc3Moc3RyKGUpLmZpbmQoJ0ludGVudGlvbmFsJykgIT0gLTEsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcycgJSBlKQotCi0gICAgZGVm
IHRlc3RfYWJvcnRfdHJhbnNmZXJfZGF0YShzZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRp
c3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAgICAgICByZXF1
ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdCgpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAn
L2Fib3J0X2J5X3VzZXInCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGhhbmRzaGFrZS5BYm9y
dGVkQnlVc2VyRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVy
LnRyYW5zZmVyX2RhdGEsIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9zY2FuX2RpcihzZWxmKToK
LSAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBO
b25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRl
X21hcCkpCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL29yaWdpbl9jaGVjaycgaW4gZGlzcC5f
aGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygKLSAgICAgICAgICAg
ICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXAp
Ci0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9z
dWl0ZV9tYXApCi0KLSAgICBkZWYgdGVzdF9zY2FuX3N1Yl9kaXIoc2VsZik6Ci0gICAgICAgIGRp
c3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgX1RFU1RfSEFORExF
UlNfU1VCX0RJUikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4oZGlzcC5faGFuZGxl
cl9zdWl0ZV9tYXApKQotICAgICAgICBzZWxmLmZhaWxJZignL29yaWdpbl9jaGVjaycgaW4gZGlz
cC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygKLSAgICAgICAg
ICAgICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9t
YXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxl
cl9zdWl0ZV9tYXApCi0KLSAgICBkZWYgdGVzdF9zY2FuX3N1Yl9kaXJfYXNfcm9vdChzZWxmKToK
LSAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfU1VCX0RJ
UiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfU1VC
X0RJUikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4oZGlzcC5faGFuZGxlcl9zdWl0
ZV9tYXApKQotICAgICAgICBzZWxmLmZhaWxJZignL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFu
ZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbElmKCcvc3ViL2V4Y2VwdGlvbl9pbl90
cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbElm
KCcvc3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5m
YWlsVW5sZXNzKCcvZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRl
X21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvcGxhaW4nIGluIGRpc3AuX2hhbmRsZXJf
c3VpdGVfbWFwKQotCi0gICAgZGVmIHRlc3Rfc2Nhbl9kaXJfbXVzdF91bmRlcl9yb290KHNlbGYp
OgotICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdhL2InLCAnYS9iL2MnKSAgIyBPSwotICAg
ICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdhL2IvLy8nLCAnYS9iJykgICMgT0sKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoZXIsICdhL2IvYycsICdhL2InKQotCi0g
ICAgZGVmIHRlc3RfcmVzb3VyY2VfcGF0aF9hbGlhcyhzZWxmKToKLSAgICAgICAgZGlzcCA9IGRp
c3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAgICAgICBkaXNw
LmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKCcvJywgJy9vcmlnaW5fY2hlY2snKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDUsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkpCi0gICAgICAg
IHNlbGYuZmFpbFVubGVzcygnL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9t
YXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygKLSAgICAgICAgICAgICcvc3ViL2V4Y2VwdGlv
bl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYu
ZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAg
ICAgIHNlbGYuZmFpbFVubGVzcygnLycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBkaXNwLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzLCAnL2FsaWFz
JywgJy9ub3QtZXhpc3QnKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5p
dHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdF9lbmR0b2VuZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2VuZHRvZW5kLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjgwZWMyZWJhNjcyNGE3NDkwNWJlNGYxNTgxZjM2YTdh
N2Y3NzEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC90ZXN0X2VuZHRvZW5kLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzUzICswLDAgQEAK
LSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4K
LSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0j
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiRW5kLXRv
LWVuZCB0ZXN0cyBmb3IgcHl3ZWJzb2NrZXQuIFRlc3RzIHN0YW5kYWxvbmUucHkgYnkgZGVmYXVs
dC4gWW91Ci1jYW4gYWxzbyB0ZXN0IG1vZF9weXdlYnNvY2tldCBob3N0ZWQgb24gYW4gQXBhY2hl
IHNlcnZlciBieSBzZXR0aW5nCi1fdXNlX2V4dGVybmFsX3NlcnZlciB0byBUcnVlIGFuZCBtb2Rp
ZnlpbmcgX2V4dGVybmFsX3NlcnZlcl9wb3J0IHRvIHBvaW50IHRvCi10aGUgcG9ydCBvbiB3aGlj
aCB0aGUgQXBhY2hlIHNlcnZlciBpcyBydW5uaW5nLgotIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcK
LWltcG9ydCBvcwotaW1wb3J0IHNpZ25hbAotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN1YnByb2Nl
c3MKLWltcG9ydCBzeXMKLWltcG9ydCB0aW1lCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNl
dF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBt
b2R1bGUuCi0KLWZyb20gdGVzdCBpbXBvcnQgY2xpZW50X2Zvcl90ZXN0aW5nCi1mcm9tIHRlc3Qg
aW1wb3J0IG11eF9jbGllbnRfZm9yX3Rlc3RpbmcKLQotCi0jIFNwZWNpYWwgbWVzc2FnZSB0aGF0
IHRlbGxzIHRoZSBlY2hvIHNlcnZlciB0byBzdGFydCBjbG9zaW5nIGhhbmRzaGFrZQotX0dPT0RC
WUVfTUVTU0FHRSA9ICdHb29kYnllJwotCi1fU0VSVkVSX1dBUk1VUF9JTl9TRUMgPSAwLjIKLQot
IyBJZiB5b3Ugd2FudCB0byB1c2UgZXh0ZXJuYWwgc2VydmVyIHRvIHJ1biBlbmQgdG8gZW5kIHRl
c3RzLCBzZXQgZm9sbG93aW5nCi0jIHBhcmFtZXRlcnMgY29ycmVjdGx5LgotX3VzZV9leHRlcm5h
bF9zZXJ2ZXIgPSBGYWxzZQotX2V4dGVybmFsX3NlcnZlcl9wb3J0ID0gMAotCi0KLSMgVGVzdCBi
b2R5IGZ1bmN0aW9ucwotZGVmIF9lY2hvX2NoZWNrX3Byb2NlZHVyZShjbGllbnQpOgotICAgIGNs
aWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ3Rlc3QnKQotICAgIGNs
aWVudC5hc3NlcnRfcmVjZWl2ZSgndGVzdCcpCi0gICAgY2xpZW50LnNlbmRfbWVzc2FnZSgnaGVs
bG93b3JsZCcpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCdoZWxsb3dvcmxkJykKLQotICAg
IGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQot
Ci0gICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0KLQotZGVmIF9lY2hvX2No
ZWNrX3Byb2NlZHVyZV93aXRoX2JpbmFyeShjbGllbnQpOgotICAgIGNsaWVudC5jb25uZWN0KCkK
LQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ2JpbmFyeScsIGJpbmFyeT1UcnVlKQotICAgIGNs
aWVudC5hc3NlcnRfcmVjZWl2ZSgnYmluYXJ5JywgYmluYXJ5PVRydWUpCi0gICAgY2xpZW50LnNl
bmRfbWVzc2FnZSgnXHgwMFx4ODBceGZlXHhmZlx4MDBceDgwJywgYmluYXJ5PVRydWUpCi0gICAg
Y2xpZW50LmFzc2VydF9yZWNlaXZlKCdceDAwXHg4MFx4ZmVceGZmXHgwMFx4ODAnLCBiaW5hcnk9
VHJ1ZSkKLQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2Vp
dmVfY2xvc2UoKQotCi0gICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0KLQot
ZGVmIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dvb2RieWUoY2xpZW50KToKLSAgICBjbGll
bnQuY29ubmVjdCgpCi0KLSAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCd0ZXN0JykKLSAgICBjbGll
bnQuYXNzZXJ0X3JlY2VpdmUoJ3Rlc3QnKQotCi0gICAgY2xpZW50LnNlbmRfbWVzc2FnZShfR09P
REJZRV9NRVNTQUdFKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZShfR09PREJZRV9NRVNTQUdF
KQotCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLSAgICBjbGllbnQuc2VuZF9j
bG9zZSgpCi0KLSAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLQotCi1kZWYg
X2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfY29kZV9hbmRfcmVhc29uKGNsaWVudCwgY29kZSwg
cmVhc29uKToKLSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBjbGllbnQuc2VuZF9jbG9zZShj
b2RlLCByZWFzb24pCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKGNvZGUsIHJlYXNv
bikKLQotICAgIGNsaWVudC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQotCi0KLWRlZiBfdW5t
YXNrZWRfZnJhbWVfY2hlY2tfcHJvY2VkdXJlKGNsaWVudCk6Ci0gICAgY2xpZW50LmNvbm5lY3Qo
KQotCi0gICAgY2xpZW50LnNlbmRfbWVzc2FnZSgndGVzdCcsIG1hc2s9RmFsc2UpCi0gICAgY2xp
ZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKGNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfUFJPVE9D
T0xfRVJST1IsICcnKQotCi0gICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0K
LQotZGVmIF9tdXhfZWNob19jaGVja19wcm9jZWR1cmUobXV4X2NsaWVudCk6Ci0gICAgbXV4X2Ns
aWVudC5jb25uZWN0KCkKLSAgICBtdXhfY2xpZW50LnNlbmRfZmxvd19jb250cm9sKDEsIDEwMjQp
Ci0KLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucyA9IGNsaWVudF9mb3JfdGVzdGluZy5DbGll
bnRPcHRpb25zKCkKLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucy5zZXJ2ZXJfaG9zdCA9ICds
b2NhbGhvc3QnCi0gICAgbG9naWNhbF9jaGFubmVsX29wdGlvbnMuc2VydmVyX3BvcnQgPSA4MAot
ICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zLm9yaWdpbiA9ICdodHRwOi8vbG9jYWxob3N0Jwot
ICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zLnJlc291cmNlID0gJy9lY2hvJwotICAgIG11eF9j
bGllbnQuYWRkX2NoYW5uZWwoMiwgbG9naWNhbF9jaGFubmVsX29wdGlvbnMpCi0gICAgbXV4X2Ns
aWVudC5zZW5kX2Zsb3dfY29udHJvbCgyLCAxMDI0KQotCi0gICAgbXV4X2NsaWVudC5zZW5kX21l
c3NhZ2UoMiwgJ3Rlc3QnKQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmUoMiwgJ3Rlc3Qn
KQotCi0gICAgbXV4X2NsaWVudC5hZGRfY2hhbm5lbCgzLCBsb2dpY2FsX2NoYW5uZWxfb3B0aW9u
cykKLSAgICBtdXhfY2xpZW50LnNlbmRfZmxvd19jb250cm9sKDMsIDEwMjQpCi0KLSAgICBtdXhf
Y2xpZW50LnNlbmRfbWVzc2FnZSgyLCAnaGVsbG8nKQotICAgIG11eF9jbGllbnQuc2VuZF9tZXNz
YWdlKDMsICd3b3JsZCcpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZSgyLCAnaGVsbG8n
KQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmUoMywgJ3dvcmxkJykKLQotICAgICMgRG9u
J3Qgc2VuZCBjbG9zZSBtZXNzYWdlIG9uIGNoYW5uZWwgaWQgMSBzbyB0aGF0IHNlcnZlci1pbml0
aWF0ZWQKLSAgICAjIGNsb3NpbmcgaGFuZHNoYWtlIHdvbid0IG9jY3VyLgotICAgIG11eF9jbGll
bnQuc2VuZF9jbG9zZSgyKQotICAgIG11eF9jbGllbnQuc2VuZF9jbG9zZSgzKQotICAgIG11eF9j
bGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoMikKLSAgICBtdXhfY2xpZW50LmFzc2VydF9yZWNl
aXZlX2Nsb3NlKDMpCi0KLSAgICBtdXhfY2xpZW50LnNlbmRfcGh5c2ljYWxfY29ubmVjdGlvbl9j
bG9zZSgpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRfcGh5c2ljYWxfY29ubmVjdGlvbl9yZWNlaXZl
X2Nsb3NlKCkKLQotCi1jbGFzcyBFbmRUb0VuZFRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToK
LSAgICAiIiJCYXNlIGNsYXNzIGZvciBlbmQtdG8tZW5kIHRlc3RzIHRoYXQgbGF1bmNoIHB5d2Vi
c29ja2V0IHN0YW5kYWxvbmUKLSAgICBzZXJ2ZXIgYXMgYSBzZXBhcmF0ZSBwcm9jZXNzLCBjb25u
ZWN0IHRvIGl0IHVzaW5nIHRoZSBjbGllbnRfZm9yX3Rlc3RpbmcKLSAgICBtb2R1bGUsIGFuZCBj
aGVjayBpZiB0aGUgc2VydmVyIGJlaGF2ZXMgY29ycmVjdGx5IGJ5IGV4Y2hhbmdpbmcgb3Blbmlu
ZwotICAgIGhhbmRzaGFrZSBhbmQgZnJhbWVzIG92ZXIgYSBUQ1AgY29ubmVjdGlvbi4KLSAgICAi
IiIKLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5zZXJ2ZXJfc3RkZXJyID0g
Tm9uZQotICAgICAgICBzZWxmLnRvcF9kaXIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChf
X2ZpbGVfXylbMF0sICcuLicpCi0gICAgICAgIG9zLnB1dGVudignUFlUSE9OUEFUSCcsIG9zLnBh
dGgucGF0aHNlcC5qb2luKHN5cy5wYXRoKSkKLSAgICAgICAgc2VsZi5zdGFuZGFsb25lX2NvbW1h
bmQgPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBzZWxmLnRvcF9kaXIsICdtb2RfcHl3ZWJz
b2NrZXQnLCAnc3RhbmRhbG9uZS5weScpCi0gICAgICAgIHNlbGYuZG9jdW1lbnRfcm9vdCA9IG9z
LnBhdGguam9pbihzZWxmLnRvcF9kaXIsICdleGFtcGxlJykKLSAgICAgICAgcyA9IHNvY2tldC5z
b2NrZXQoKQotICAgICAgICBzLmJpbmQoKCdsb2NhbGhvc3QnLCAwKSkKLSAgICAgICAgKF8sIHNl
bGYudGVzdF9wb3J0KSA9IHMuZ2V0c29ja25hbWUoKQotICAgICAgICBzLmNsb3NlKCkKLQotICAg
ICAgICBzZWxmLl9vcHRpb25zID0gY2xpZW50X2Zvcl90ZXN0aW5nLkNsaWVudE9wdGlvbnMoKQot
ICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0ID0gJ2xvY2FsaG9zdCcKLSAgICAgICAg
c2VsZi5fb3B0aW9ucy5vcmlnaW4gPSAnaHR0cDovL2xvY2FsaG9zdCcKLSAgICAgICAgc2VsZi5f
b3B0aW9ucy5yZXNvdXJjZSA9ICcvZWNobycKLQotICAgICAgICAjIFRPRE8odG95b3NoaW0pOiBF
bGltaW5hdGUgbGF1bmNoaW5nIGEgc3RhbmRhbG9uZSBzZXJ2ZXIgb24gdXNpbmcKLSAgICAgICAg
IyBleHRlcm5hbCBzZXJ2ZXIuCi0KLSAgICAgICAgaWYgX3VzZV9leHRlcm5hbF9zZXJ2ZXI6Ci0g
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0ID0gX2V4dGVybmFsX3NlcnZlcl9w
b3J0Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0
ID0gc2VsZi50ZXN0X3BvcnQKLQotICAgICMgVE9ETyh0eW9zaGlubyk6IFVzZSB0ZWFyRG93biB0
byBraWxsIHRoZSBzZXJ2ZXIuCi0KLSAgICBkZWYgX3J1bl9weXRob25fY29tbWFuZChzZWxmLCBj
b21tYW5kbGluZSwgc3Rkb3V0PU5vbmUsIHN0ZGVycj1Ob25lKToKLSAgICAgICAgcmV0dXJuIHN1
YnByb2Nlc3MuUG9wZW4oW3N5cy5leGVjdXRhYmxlXSArIGNvbW1hbmRsaW5lLCBjbG9zZV9mZHM9
VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN0ZG91dCwgc3Rk
ZXJyPXN0ZGVycikKLQotICAgIGRlZiBfcnVuX3NlcnZlcihzZWxmKToKLSAgICAgICAgYXJncyA9
IFtzZWxmLnN0YW5kYWxvbmVfY29tbWFuZCwKLSAgICAgICAgICAgICAgICAnLUgnLCAnbG9jYWxo
b3N0JywKLSAgICAgICAgICAgICAgICAnLVYnLCAnbG9jYWxob3N0JywKLSAgICAgICAgICAgICAg
ICAnLXAnLCBzdHIoc2VsZi50ZXN0X3BvcnQpLAotICAgICAgICAgICAgICAgICctUCcsIHN0cihz
ZWxmLnRlc3RfcG9ydCksCi0gICAgICAgICAgICAgICAgJy1kJywgc2VsZi5kb2N1bWVudF9yb290
XQotCi0gICAgICAgICMgSW5oZXJpdCB0aGUgbGV2ZWwgc2V0IHRvIHRoZSByb290IGxvZ2dlciBi
eSB0ZXN0IHJ1bm5lci4KLSAgICAgICAgcm9vdF9sb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigp
Ci0gICAgICAgIGxvZ19sZXZlbCA9IHJvb3RfbG9nZ2VyLmdldEVmZmVjdGl2ZUxldmVsKCkKLSAg
ICAgICAgaWYgbG9nX2xldmVsICE9IGxvZ2dpbmcuTk9UU0VUOgotICAgICAgICAgICAgYXJncy5h
cHBlbmQoJy0tbG9nLWxldmVsJykKLSAgICAgICAgICAgIGFyZ3MuYXBwZW5kKGxvZ2dpbmcuZ2V0
TGV2ZWxOYW1lKGxvZ19sZXZlbCkubG93ZXIoKSkKLQotICAgICAgICByZXR1cm4gc2VsZi5fcnVu
X3B5dGhvbl9jb21tYW5kKGFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RkZXJyPXNlbGYuc2VydmVyX3N0ZGVycikKLQotICAgIGRlZiBfa2lsbF9wcm9jZXNz
KHNlbGYsIHBpZCk6Ci0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ3dpbjMyJywgJ2N5Z3dp
bicpOgotICAgICAgICAgICAgc3VicHJvY2Vzcy5jYWxsKAotICAgICAgICAgICAgICAgICgndGFz
a2tpbGwuZXhlJywgJy9mJywgJy9waWQnLCBzdHIocGlkKSksIGNsb3NlX2Zkcz1UcnVlKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgb3Mua2lsbChwaWQsIHNpZ25hbC5TSUdLSUxMKQotCi0K
LWNsYXNzIEVuZFRvRW5kSHlCaVRlc3QoRW5kVG9FbmRUZXN0QmFzZSk6Ci0gICAgZGVmIHNldFVw
KHNlbGYpOgotICAgICAgICBFbmRUb0VuZFRlc3RCYXNlLnNldFVwKHNlbGYpCi0KLSAgICBkZWYg
X3J1bl90ZXN0X3dpdGhfY2xpZW50X29wdGlvbnMoc2VsZiwgdGVzdF9mdW5jdGlvbiwgb3B0aW9u
cyk6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBhZGQgc29tZSBsb2dpYyB0byBwb2xsIHRoZSBz
ZXJ2ZXIgdW50aWwgaXQKLSAgICAgICAgICAgICMgYmVjb21lcyByZWFkeQotICAgICAgICAgICAg
dGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIGNsaWVudCA9
IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KG9wdGlvbnMpCi0gICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCi0gICAgICAgICAgICBm
aW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBm
aW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAg
ICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24pOgotICAgICAgICBzZWxmLl9ydW5f
dGVzdF93aXRoX2NsaWVudF9vcHRpb25zKHRlc3RfZnVuY3Rpb24sIHNlbGYuX29wdGlvbnMpCi0K
LSAgICBkZWYgX3J1bl9kZWZsYXRlX2ZyYW1lX3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6Ci0g
ICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgc2Vs
Zi5fb3B0aW9ucy5lbmFibGVfZGVmbGF0ZV9mcmFtZSgpCi0gICAgICAgICAgICBjbGllbnQgPSBj
bGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRlX2NsaWVudChzZWxmLl9vcHRpb25zKQotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24oY2xpZW50KQotICAgICAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQot
Ci0gICAgZGVmIF9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICBzZWxm
LCBvZmZlciwgcmVzcG9uc2VfY2hlY2tlciwgdGVzdF9mdW5jdGlvbik6Ci0gICAgICAgIHNlcnZl
ciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNs
ZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5l
eHRlbnNpb25zICs9IG9mZmVyCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLmNoZWNrX3Blcm1l
c3NhZ2VfZGVmbGF0ZSA9IHJlc3BvbnNlX2NoZWNrZXIKLSAgICAgICAgICAgIGNsaWVudCA9IGNs
aWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KHNlbGYuX29wdGlvbnMpCi0KLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICAgICAgICAg
ICAgICBpZiB0ZXN0X2Z1bmN0aW9uIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICB0
ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLQotICAgICAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfY29u
bmVjdGlvbl9jbG9zZWQoKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBj
bGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYu
X2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIF9ydW5fY2xvc2Vfd2l0aF9jb2Rl
X2FuZF9yZWFzb25fdGVzdChzZWxmLCB0ZXN0X2Z1bmN0aW9uLCBjb2RlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb24pOgotICAgICAgICBz
ZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGlt
ZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIGNsaWVudCA9IGNs
aWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQsIGNvZGUsIHJlYXNv
bikKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3Nv
Y2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Mo
c2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVuX2h0dHBfZmFsbGJhY2tfdGVzdChzZWxmLCBvcHRp
b25zLCBzdGF0dXMpOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0K
LSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KG9w
dGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNvbm5lY3Qo
KQotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnQ291bGQgbm90IGNhdGNoIEh0dHBTdGF0dXNF
eGNlcHRpb24nKQotICAgICAgICAgICAgZXhjZXB0IGNsaWVudF9mb3JfdGVzdGluZy5IdHRwU3Rh
dHVzRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0
dXMsIGUuc3RhdHVzKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAg
ICAgICAgICAgIHNlbGYuZmFpbCgnQ2F0Y2ggdW5leHBlY3RlZCBleGNlcHRpb24nKQotICAgICAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlk
KQotCi0gICAgZGVmIF9ydW5fbXV4X3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6Ci0gICAgICAg
IHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0
aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgY2xpZW50ID0g
bXV4X2NsaWVudF9mb3JfdGVzdGluZy5NdXhDbGllbnQoc2VsZi5fb3B0aW9ucykKLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLSAgICAgICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkK
LQotICAgIGRlZiB0ZXN0X2VjaG8oc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hv
X2NoZWNrX3Byb2NlZHVyZSkKLQotICAgIGRlZiB0ZXN0X2VjaG9fYmluYXJ5KHNlbGYpOgotICAg
ICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9iaW5hcnkpCi0K
LSAgICBkZWYgdGVzdF9lY2hvX3NlcnZlcl9jbG9zZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVu
X3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZSkKLQotICAgIGRlZiB0ZXN0
X3VubWFza2VkX2ZyYW1lKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fdGVzdChfdW5tYXNrZWRf
ZnJhbWVfY2hlY2tfcHJvY2VkdXJlKQotCi0gICAgZGVmIHRlc3RfZWNob19kZWZsYXRlX2ZyYW1l
KHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fZGVmbGF0ZV9mcmFtZV90ZXN0KF9lY2hvX2NoZWNr
X3Byb2NlZHVyZSkKLQotICAgIGRlZiB0ZXN0X2VjaG9fZGVmbGF0ZV9mcmFtZV9zZXJ2ZXJfY2xv
c2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl9kZWZsYXRlX2ZyYW1lX3Rlc3QoCi0gICAgICAg
ICAgICBfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9nb29kYnllKQotCi0gICAgZGVmIHRlc3Rf
ZWNob19wZXJtZXNzYWdlX2RlZmxhdGUoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
KGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgot
ICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9ICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdc
eDAwJwotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAg
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9y
X3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAg
ICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAg
ICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNs
aWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0x
KQotCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQu
YXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBh
cmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZs
YXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtd
LCBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVz
c2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGUn
XSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRl
c3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV90d29f
ZnJhbWVzKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAg
ICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNsaWVu
dC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZCcs
Ci0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAg
ICAgICAgICAgICAgICAgICAgZW5kPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICByc3YxPTEp
Ci0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAg
ICAgICdceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90
ZXN0aW5nLk9QQ09ERV9URVhUKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3Jl
Y2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4Yzlc
eDA3XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAg
Y2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Ns
b3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5u
YW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgcGFyYW1ldGVyLmdldF9w
YXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0
KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlJ10sCi0gICAgICAgICAgICAg
ICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0g
ICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfdHdvX21lc3NhZ2VzKHNlbGYpOgot
ICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgIyBGcm9tIHRo
ZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRf
ZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAn
LAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0g
ICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNl
bmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDAwXHgxMVx4MDBceDAwJywKLSAg
ICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAg
ICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRf
cmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhj
OVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGlu
Zy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAg
Y2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAg
ICAnXHhmMlx4MDBceDExXHgwMFx4MDAnLAotICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xp
ZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEp
Ci0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5h
c3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFy
YW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxh
dGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10s
IHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNz
YWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZSdd
LAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVz
dF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3R3b19t
c2dzX3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9m
dW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUg
c3BlYy4KLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAg
ICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAg
ICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAg
IHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAg
ICAgICAgICAgICAgJ1x4ZjJceDAwXHgxMVx4MDBceDAwJywKLSAgICAgICAgICAgICAgICAgICAg
Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3Yx
PTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0g
ICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAg
ICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAg
ICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNz
ZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhj
OVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rl
c3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAg
ICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNl
aXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFt
ZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbKCdzZXJ2ZXJfbm9f
Y29udGV4dF90YWtlb3ZlcicsIE5vbmUpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNz
YWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsg
c2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9j
aGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9l
Y2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV9wcmVmZXJlbmNlKHNlbGYpOgotICAgICAgICBkZWYgdGVz
dF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0
aGUgc3BlYy4KLSAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSAnXHhmMlx4NDhceGNkXHhj
OVx4YzlceDA3XHgwMCcKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAg
ICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAg
Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3Yx
PTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0g
ICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAg
IG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAg
ICAgIHJzdjE9MSkKLQotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAg
ICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2Vf
Y2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1l
c3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhbXSwgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5f
cnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2Fn
ZS1kZWZsYXRlJywgJ2RlZmxhdGUtZnJhbWUnXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9j
aGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9l
Y2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRoX3BhcmFtZXRlcnMoc2VsZik6Ci0gICAgICAgIGRl
ZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVz
IGluIHRoZSBzcGVjLgotICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9ICdceGYyXHg0OFx4
Y2RceGM5XHhjOVx4MDdceDAwJwotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRh
KAotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAg
ICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAg
IHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFy
eSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAg
ICAgICAgICAgcnN2MT0xKQotCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAg
ICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNw
b25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygn
cGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKFsoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnMTAnKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9u
ZSldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLmdldF9wYXJhbWV0
ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAg
ICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRz
PTEwOyAnCi0gICAgICAgICAgICAgICAgICdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciddLAot
ICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9m
dW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfYmFk
X3NlcnZlcl9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
KGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBj
bGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVj
a2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQg
YWNjZXB0YW5jZSBvZiBwZXJtZXNzYWdlLWRlZmxhdGUnKQotCi0gICAgICAgIHNlbGYuX3J1bl9w
ZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVm
bGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz0zMDAwMDAwJ10sCi0gICAgICAgICAgICAgICAg
cmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAg
ZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfd2l0aF9iYWRfc2VydmVyX21heF93aW5k
b3dfYml0cyhzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAg
ICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVj
ZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCBhY2NlcHRhbmNlIG9mIHBl
cm1lc3NhZ2UtZGVmbGF0ZScpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0
ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4
X3dpbmRvd19iaXRzPTMwMDAwMDAnXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2Vy
LAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Bl
cm1lc3NhZ2VfZGVmbGF0ZV93aXRoX3VuZGVmaW5lZF9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAg
IGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9z
ZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAg
IGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ1VuZXhwZWN0ZWQgYWNjZXB0YW5jZSBvZiBwZXJtZXNzYWdlLWRlZmxhdGUnKQotCi0g
ICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAg
ICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgZm9vPWJhciddLAotICAgICAgICAgICAgICAgIHJlc3Bv
bnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0
ZXN0X2VjaG9fY2xvc2Vfd2l0aF9jb2RlX2FuZF9yZWFzb24oc2VsZik6Ci0gICAgICAgIHNlbGYu
X29wdGlvbnMucmVzb3VyY2UgPSAnL2Nsb3NlJwotICAgICAgICBzZWxmLl9ydW5fY2xvc2Vfd2l0
aF9jb2RlX2FuZF9yZWFzb25fdGVzdCgKLSAgICAgICAgICAgIF9lY2hvX2NoZWNrX3Byb2NlZHVy
ZV93aXRoX2NvZGVfYW5kX3JlYXNvbiwgMzMzMywgJ3N1bnN1bnN1bnN1bicpCi0KLSAgICBkZWYg
dGVzdF9lY2hvX2Nsb3NlX3dpdGhfZW1wdHlfYm9keShzZWxmKToKLSAgICAgICAgc2VsZi5fb3B0
aW9ucy5yZXNvdXJjZSA9ICcvY2xvc2UnCi0gICAgICAgIHNlbGYuX3J1bl9jbG9zZV93aXRoX2Nv
ZGVfYW5kX3JlYXNvbl90ZXN0KAotICAgICAgICAgICAgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dp
dGhfY29kZV9hbmRfcmVhc29uLCBOb25lLCAnJykKLQotICAgIGRlZiB0ZXN0X211eF9lY2hvKHNl
bGYpOgotICAgICAgICBzZWxmLl9ydW5fbXV4X3Rlc3QoX211eF9lY2hvX2NoZWNrX3Byb2NlZHVy
ZSkKLQotICAgIGRlZiB0ZXN0X2Nsb3NlX29uX3Byb3RvY29sX2Vycm9yKHNlbGYpOgotICAgICAg
ICAiIiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIgc2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRoIHByb3Rv
Y29sIGVycm9yIHN0YXR1cwotICAgICAgICBjb2RlIHdoZW4gdGhlIGNsaWVudCBzZW5kcyBkYXRh
IHdpdGggc29tZSBwcm90b2NvbCBlcnJvci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIHRl
c3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAg
ICAgICAgICAgIyBJbnRlcm1lZGlhdGUgZnJhbWUgd2l0aG91dCBhbnkgcHJlY2VkaW5nIHN0YXJ0
IG9mIGZyYWdtZW50YXRpb24KLSAgICAgICAgICAgICMgZnJhbWUuCi0gICAgICAgICAgICBjbGll
bnQuc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoJ1x4ODBceDgwJywgJycpCi0gICAgICAg
ICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoCi0gICAgICAgICAgICAgICAgY2xpZW50
X2Zvcl90ZXN0aW5nLlNUQVRVU19QUk9UT0NPTF9FUlJPUikKLQotICAgICAgICBzZWxmLl9ydW5f
dGVzdCh0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfY2xvc2Vfb25fdW5zdXBwb3J0ZWRf
ZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRoYXQgdGhlIHNlcnZlciBzZW5kcyBhIGNs
b3NlIGZyYW1lIHdpdGggdW5zdXBwb3J0ZWQgb3BlcmF0aW9uCi0gICAgICAgIHN0YXR1cyBjb2Rl
IHdoZW4gdGhlIGNsaWVudCBzZW5kcyBkYXRhIGFza2luZyBzb21lIG9wZXJhdGlvbiB0aGF0IGlz
Ci0gICAgICAgIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZlci4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5jb25u
ZWN0KCkKLQotICAgICAgICAgICAgIyBUZXh0IGZyYW1lIHdpdGggUlNWMyBiaXQgcmFpc2VkLgot
ICAgICAgICAgICAgY2xpZW50LnNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKCdceDkxXHg4
MCcsICcnKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAotICAgICAg
ICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfVU5TVVBQT1JURURfREFUQSkKLQot
ICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfY2xv
c2Vfb25faW52YWxpZF9mcmFtZShzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgc2Vy
dmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0aCBpbnZhbGlkIGZyYW1lIHBheWxvYWQKLSAgICAg
ICAgZGF0YSBzdGF0dXMgY29kZSB3aGVuIHRoZSBjbGllbnQgc2VuZHMgYW4gaW52YWxpZCBmcmFt
ZSBsaWtlIGNvbnRhaW5pbmcKLSAgICAgICAgaW52YWxpZCBVVEYtOCBjaGFyYWN0ZXIuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAg
ICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICAgICAgICAgICMgVGV4dCBmcmFtZSB3aXRoIGludmFs
aWQgVVRGLTggc3RyaW5nLgotICAgICAgICAgICAgY2xpZW50LnNlbmRfbWVzc2FnZSgnXHg4MCcs
IHJhdz1UcnVlKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAotICAg
ICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlM
T0FEX0RBVEEpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKLQotICAg
IGRlZiB0ZXN0X2Nsb3NlX29uX2ludGVybmFsX2VuZHBvaW50X2Vycm9yKHNlbGYpOgotICAgICAg
ICAiIiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIgc2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRoIGludGVy
bmFsIGVuZHBvaW50Ci0gICAgICAgIGVycm9yIHN0YXR1cyBjb2RlIHdoZW4gdGhlIGhhbmRsZXIg
ZG9lcyBiYWQgb3BlcmF0aW9uLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9vcHRpb25z
LnJlc291cmNlID0gJy9pbnRlcm5hbF9lcnJvcicKLQotICAgICAgICBkZWYgdGVzdF9mdW5jdGlv
bihjbGllbnQpOgotICAgICAgICAgICAgY2xpZW50LmNvbm5lY3QoKQotICAgICAgICAgICAgY2xp
ZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAotICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVz
dGluZy5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IpCi0KLSAgICAgICAgc2VsZi5fcnVu
X3Rlc3QodGVzdF9mdW5jdGlvbikKLQotICAgICMgVE9ETyh0b3lvc2hpbSk6IEFkZCB0ZXN0cyB0
byB2ZXJpZnkgaW52YWxpZCBhYnNvbHV0ZSB1cmkgaGFuZGxpbmcgbGlrZQotICAgICMgaG9zdCB1
bm1hdGNoLCBwb3J0IHVubWF0Y2ggYW5kIGludmFsaWQgcG9ydCBkZXNjcmlwdGlvbiAoJzonIHdp
dGhvdXQgcG9ydAotICAgICMgbnVtYmVyKS4KLQotICAgIGRlZiB0ZXN0X2Fic29sdXRlX3VyaShz
ZWxmKToKLSAgICAgICAgIiIiVGVzdHMgYWJzb2x1dGUgdXJpIHJlcXVlc3QuIiIiCi0KLSAgICAg
ICAgb3B0aW9ucyA9IHNlbGYuX29wdGlvbnMKLSAgICAgICAgb3B0aW9ucy5yZXNvdXJjZSA9ICd3
czovL2xvY2FsaG9zdDolZC9lY2hvJyAlIG9wdGlvbnMuc2VydmVyX3BvcnQKLSAgICAgICAgc2Vs
Zi5fcnVuX3Rlc3Rfd2l0aF9jbGllbnRfb3B0aW9ucyhfZWNob19jaGVja19wcm9jZWR1cmUsIG9w
dGlvbnMpCi0KLSAgICBkZWYgdGVzdF9vcmlnaW5fY2hlY2soc2VsZik6Ci0gICAgICAgICIiIlRl
c3RzIGh0dHAgZmFsbGJhY2sgb24gb3JpZ2luIGNoZWNrIGZhaWwuIiIiCi0KLSAgICAgICAgb3B0
aW9ucyA9IHNlbGYuX29wdGlvbnMKLSAgICAgICAgb3B0aW9ucy5yZXNvdXJjZSA9ICcvb3JpZ2lu
X2NoZWNrJwotICAgICAgICAjIFNlcnZlciBzaG93cyB3YXJuaW5nIG1lc3NhZ2UgZm9yIGh0dHAg
NDAzIGZhbGxiYWNrLiBUaGlzIHdhcm5pbmcKLSAgICAgICAgIyBtZXNzYWdlIGlzIGNvbmZ1c2lu
Zy4gRm9sbG93aW5nIHBpcGUgZGlzcG9zZXMgd2FybmluZyBtZXNzYWdlcy4KLSAgICAgICAgc2Vs
Zi5zZXJ2ZXJfc3RkZXJyID0gc3VicHJvY2Vzcy5QSVBFCi0gICAgICAgIHNlbGYuX3J1bl9odHRw
X2ZhbGxiYWNrX3Rlc3Qob3B0aW9ucywgNDAzKQotCi0gICAgZGVmIHRlc3RfdmVyc2lvbl9jaGVj
ayhzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgaHR0cCBmYWxsYmFjayBvbiB2ZXJzaW9uIGNoZWNr
IGZhaWwuIiIiCi0KLSAgICAgICAgb3B0aW9ucyA9IHNlbGYuX29wdGlvbnMKLSAgICAgICAgb3B0
aW9ucy52ZXJzaW9uID0gOTkKLSAgICAgICAgc2VsZi5fcnVuX2h0dHBfZmFsbGJhY2tfdGVzdChv
cHRpb25zLCA0MDApCi0KLQotY2xhc3MgRW5kVG9FbmRIeUJpMDBUZXN0KEVuZFRvRW5kVGVzdEJh
c2UpOgotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgRW5kVG9FbmRUZXN0QmFzZS5zZXRV
cChzZWxmKQotCi0gICAgZGVmIF9ydW5fdGVzdChzZWxmLCB0ZXN0X2Z1bmN0aW9uKToKLSAgICAg
ICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBjbGllbnQg
PSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRlX2NsaWVudF9oeWJpMDAoc2VsZi5fb3B0aW9ucykK
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkK
LSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tl
dCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2Vy
dmVyLnBpZCkKLQotICAgIGRlZiB0ZXN0X2VjaG8oc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl90
ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZSkKLQotICAgIGRlZiB0ZXN0X2VjaG9fc2VydmVyX2Ns
b3NlKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1cmVf
d2l0aF9nb29kYnllKQotCi0KLWNsYXNzIEVuZFRvRW5kVGVzdFdpdGhFY2hvQ2xpZW50KEVuZFRv
RW5kVGVzdEJhc2UpOgotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgRW5kVG9FbmRUZXN0
QmFzZS5zZXRVcChzZWxmKQotCi0gICAgZGVmIF9jaGVja19leGFtcGxlX2VjaG9fY2xpZW50X3Jl
c3VsdCgKLSAgICAgICAgc2VsZiwgZXhwZWN0ZWQsIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpOgot
ICAgICAgICBhY3R1YWwgPSBzdGRvdXRkYXRhLmRlY29kZSgidXRmLTgiKQotICAgICAgICBpZiBh
Y3R1YWwgIT0gZXhwZWN0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0
ZWQgcmVzdWx0IG9uIGV4YW1wbGUgZWNobyBjbGllbnQ6ICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChleHBlY3RlZCwgYWN0dWFsKSkKLSAgICAgICAgaWYgc3RkZXJyZGF0YSBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCBlcnJv
ciBtZXNzYWdlIG9uIGV4YW1wbGUgZWNobyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2NsaWVudDogJXInICUgc3RkZXJyZGF0YSkKLQotICAgIGRlZiB0ZXN0X2V4YW1wbGVfZWNob19j
bGllbnQoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRoYXQgdGhlIGVjaG9fY2xpZW50LnB5IGV4
YW1wbGUgY2FuIHRhbGsgd2l0aCB0aGUgc2VydmVyLiIiIgotCi0gICAgICAgIHNlcnZlciA9IHNl
bGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9T
RVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgY2xpZW50X2NvbW1hbmQgPSBvcy5w
YXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgc2VsZi50b3BfZGlyLCAnZXhhbXBsZScsICdlY2hv
X2NsaWVudC5weScpCi0KLSAgICAgICAgICAgICMgRXhwZWN0ZWQgb3V0cHV0IGZvciB0aGUgZGVm
YXVsdCBtZXNzYWdlcy4KLSAgICAgICAgICAgIGRlZmF1bHRfZXhwZWN0YXRpb24gPSAoJ1NlbmQ6
IEhlbGxvXG4nICdSZWN2OiBIZWxsb1xuJwotICAgICAgICAgICAgICAgIHUnU2VuZDogXHU2NWU1
XHU2NzJjXG4nIHUnUmVjdjogXHU2NWU1XHU2NzJjXG4nCi0gICAgICAgICAgICAgICAgJ1NlbmQg
Y2xvc2VcbicgJ1JlY3YgYWNrXG4nKQotCi0gICAgICAgICAgICBhcmdzID0gW2NsaWVudF9jb21t
YW5kLAotICAgICAgICAgICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJf
cG9ydCldCi0gICAgICAgICAgICBjbGllbnQgPSBzZWxmLl9ydW5fcHl0aG9uX2NvbW1hbmQoYXJn
cywgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKLSAgICAgICAgICAgIHN0ZG91dGRhdGEsIHN0ZGVy
cmRhdGEgPSBjbGllbnQuY29tbXVuaWNhdGUoKQotICAgICAgICAgICAgc2VsZi5fY2hlY2tfZXhh
bXBsZV9lY2hvX2NsaWVudF9yZXN1bHQoCi0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfZXhw
ZWN0YXRpb24sIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpCi0KLSAgICAgICAgICAgICMgUHJvY2Vz
cyBhIGJpZyBtZXNzYWdlIGZvciB3aGljaCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBpcyB1c2Vk
LgotICAgICAgICAgICAgIyBUbyBoYW5kbGUgZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGgsIHdzX3Zl
cnNpb24gYXR0cmlidXRlIHdpbGwgYmUKLSAgICAgICAgICAgICMgYWNjZXNzZWQuIFRoaXMgdGVz
dCBjaGVja3MgdGhhdCB3c192ZXJzaW9uIGlzIGNvcnJlY3RseSBzZXQuCi0gICAgICAgICAgICBi
aWdfbWVzc2FnZSA9ICdhJyAqIDEwMjQKLSAgICAgICAgICAgIGFyZ3MgPSBbY2xpZW50X2NvbW1h
bmQsCi0gICAgICAgICAgICAgICAgICAgICctcCcsIHN0cihzZWxmLl9vcHRpb25zLnNlcnZlcl9w
b3J0KSwKLSAgICAgICAgICAgICAgICAgICAgJy1tJywgYmlnX21lc3NhZ2VdCi0gICAgICAgICAg
ICBjbGllbnQgPSBzZWxmLl9ydW5fcHl0aG9uX2NvbW1hbmQoYXJncywgc3Rkb3V0PXN1YnByb2Nl
c3MuUElQRSkKLSAgICAgICAgICAgIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEgPSBjbGllbnQuY29t
bXVuaWNhdGUoKQotICAgICAgICAgICAgZXhwZWN0ZWQgPSAoJ1NlbmQ6ICVzXG5SZWN2OiAlc1xu
U2VuZCBjbG9zZVxuUmVjdiBhY2tcbicgJQotICAgICAgICAgICAgICAgICAgICAgICAgKGJpZ19t
ZXNzYWdlLCBiaWdfbWVzc2FnZSkpCi0gICAgICAgICAgICBzZWxmLl9jaGVja19leGFtcGxlX2Vj
aG9fY2xpZW50X3Jlc3VsdCgKLSAgICAgICAgICAgICAgICBleHBlY3RlZCwgc3Rkb3V0ZGF0YSwg
c3RkZXJyZGF0YSkKLQotICAgICAgICAgICAgIyBUZXN0IHRoZSBwZXJtZXNzYWdlLWRlZmxhdGUg
ZXh0ZW5zaW9uLgotICAgICAgICAgICAgYXJncyA9IFtjbGllbnRfY29tbWFuZCwKLSAgICAgICAg
ICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQpLAotICAgICAg
ICAgICAgICAgICAgICAnLS11c2VfcGVybWVzc2FnZV9kZWZsYXRlJ10KLSAgICAgICAgICAgIGNs
aWVudCA9IHNlbGYuX3J1bl9weXRob25fY29tbWFuZChhcmdzLCBzdGRvdXQ9c3VicHJvY2Vzcy5Q
SVBFKQotICAgICAgICAgICAgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSA9IGNsaWVudC5jb21tdW5p
Y2F0ZSgpCi0gICAgICAgICAgICBzZWxmLl9jaGVja19leGFtcGxlX2VjaG9fY2xpZW50X3Jlc3Vs
dCgKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF9leHBlY3RhdGlvbiwgc3Rkb3V0ZGF0YSwg
c3RkZXJyZGF0YSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJv
Y2VzcyhzZXJ2ZXIucGlkKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5p
dHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdF9leHRlbnNpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRhNDM4NDc5MmJmZmQwYTIwZDJlNzU0MzNkYzI5
MDljZjkzZGU2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9leHRlbnNpb25zLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjc5ICsw
LDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xl
IEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIi
VGVzdHMgZm9yIGV4dGVuc2lvbnMgbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotaW1w
b3J0IHpsaWIKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9j
YXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBleHRlbnNpb25zCi0KLQotY2xh
c3MgRXh0ZW5zaW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3Qg
Zm9yIG5vbi1jbGFzcyBtZXRob2RzIGluIGV4dGVuc2lvbnMucHkiIiIKLQotICAgIGRlZiB0ZXN0
X3BhcnNlX3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1
ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgTm9uZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMs
ICdmb29iYXInKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNp
b25zLl9wYXJzZV93aW5kb3dfYml0cywgJyA4ICcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnYThhJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93
X2JpdHMsICcwMDAwMCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4
dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMDAwMDgnKQotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzB4OCcp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFy
c2Vfd2luZG93X2JpdHMsICc5LjUnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVy
cm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzguMCcpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnOCcpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzE1JykKLQot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93
aW5kb3dfYml0cywgJy04JykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwg
ZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcwJykKLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICc3JykKLQot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93
aW5kb3dfYml0cywgJzE2JykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAg
ICAgICAgVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcxMDAwMDAw
MCcpCi0KLQotY2xhc3MgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yUGFyc2luZ1Rlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGNoZWNraW5nIHRoYXQg
RGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yIHBhcnNlcyBnaXZlbgotICAgIGV4dGVuc2lv
biBwYXJhbWV0ZXIgY29ycmVjdGx5LgotICAgICIiIgotCi0gICAgZGVmIHRlc3RfcmVnaXN0cnko
c2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9j
ZXNzb3IoCi0gICAgICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcignZGVmbGF0
ZS1mcmFtZScpKQotICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocHJvY2Vzc29yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNp
b25Qcm9jZXNzb3IpCi0KLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5nZXRfZXh0ZW5z
aW9uX3Byb2Nlc3NvcigKLSAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KCd4LXdlYmtpdC1kZWZsYXRlLWZyYW1lJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5j
ZShwcm9jZXNzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLkRl
ZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcikKLQotICAgIGRlZiB0ZXN0X21pbmltYWxfb2Zm
ZXIoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0
ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcign
cGVyZnJhbWUtZGVmbGF0ZScpKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9l
eHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1k
ZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxl
bihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHpsaWIuTUFYX1dCSVRTLAotICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5fcmZj
MTk3OV9kZWZsYXRlci5fd2luZG93X2JpdHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocHJv
Y2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgZGVm
IHRlc3Rfb2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRl
ciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQotICAgICAg
ICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgJzEwJykKLSAgICAg
ICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3Io
cGFyYW1ldGVyKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywg
cmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25z
ZS5nZXRfcGFyYW1ldGVycygpKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwLCBwcm9j
ZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQotCi0gICAgZGVmIHRlc3Rfb2Zm
ZXJfd2l0aF9vdXRfb2ZfcmFuZ2VfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAgICBwYXJh
bWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAg
ICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsICcwJykKLSAg
ICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNz
b3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRf
ZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5k
b3dfYml0c193aXRob3V0X3ZhbHVlKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVy
LmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsIE5vbmUpCi0gICAgICAgIHByb2Nlc3Nv
ciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikK
LQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNw
b25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9ub19jb250ZXh0X3Rha2VvdmVyKHNl
bGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJm
cmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ25vX2NvbnRl
eHRfdGFrZW92ZXInLCBOb25lKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxh
dGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgcmVzcG9uc2Ug
PSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ3BlcmZyYW1lLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRf
dGFrZW92ZXIpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXJf
d2l0aF92YWx1ZShzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1l
dGVyKCdub19jb250ZXh0X3Rha2VvdmVyJywgJ2Zvb2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9
IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQot
ICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25z
ZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF91bmtub3duX3BhcmFtZXRlcihzZWxmKToK
LSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUt
ZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdmb28nLCAnYmFyJykK
LSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9j
ZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRl
bnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZs
YXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihy
ZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQotCi1jbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZUV4
dGVuc2lvblByb2Nlc3NvclBhcnNpbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJB
IHVuaXR0ZXN0IGZvciBjaGVja2luZyB0aGF0IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJv
Y2Vzc29yIHBhcnNlcwotICAgIGdpdmVuIGV4dGVuc2lvbiBwYXJhbWV0ZXIgY29ycmVjdGx5Lgot
ICAgICIiIgotCi0gICAgZGVmIHRlc3RfcmVnaXN0cnkoc2VsZik6Ci0gICAgICAgIHByb2Nlc3Nv
ciA9IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAg
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShwcm9jZXNzb3IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKQot
Ci0gICAgZGVmIHRlc3RfbWluaW1hbF9vZmZlcihzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0g
ZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAg
ICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQotCi0g
ICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1l
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0
ZXJzKCkpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoemxpYi5NQVhfV0JJVFMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl93aW5kb3df
Yml0cykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0
ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93
aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJh
bWV0ZXIoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnMTAnKQotICAgICAgICBwcm9jZXNzb3Ig
PSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRl
cikKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNl
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9u
c2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsoJ3NlcnZlcl9tYXhfd2luZG93
X2JpdHMnLCAnMTAnKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3Bh
cmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwLCBwcm9jZXNzb3IuX3Jm
YzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9v
dXRfb2ZfcmFuZ2VfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBw
YXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignc2VydmVyX21heF93aW5kb3dfYml0cycsICcwJykKLSAg
ICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblBy
b2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29y
LmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4
X3dpbmRvd19iaXRzX3dpdGhvdXRfdmFsdWUoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBh
cmFtZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgTm9uZSkKLSAg
ICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblBy
b2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29y
LmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbm9f
Y29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFk
ZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAgICAgICAg
cHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nv
cihwYXJhbWV0ZXIpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lv
bl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0
ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbKCdzZXJ2ZXJf
bm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwcm9j
ZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICBkZWYg
dGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXJfd2l0aF92YWx1ZShzZWxmKToKLSAg
ICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1k
ZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250
ZXh0X3Rha2VvdmVyJywgJ2Zvb2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMu
UGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0K
LSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX3Vua25vd25fcGFyYW1ldGVyKHNlbGYpOgotICAgICAg
ICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxh
dGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignZm9vJywgJ2JhcicpCi0gICAg
ICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9j
ZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5n
ZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVFeHRl
bnNpb25Qcm9jZXNzb3JCdWlsZGluZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEg
dW5pdHRlc3QgZm9yIGNoZWNraW5nIHRoYXQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9j
ZXNzb3IgYnVpbGRzCi0gICAgYSByZXNwb25zZSBiYXNlZCBvbiBzcGVjaWZpZWQgb3B0aW9ucyBj
b3JyZWN0bHkuCi0gICAgIiIiCi0KLSAgICBkZWYgdGVzdF9yZXNwb25zZV93aXRoX21heF93aW5k
b3dfYml0cyhzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0
ZXIoJ2NsaWVudF9tYXhfd2luZG93X2JpdHMnLCBOb25lKQotICAgICAgICBwcm9jZXNzb3IgPSBl
eHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikK
LSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKDEwKQotCi0gICAg
ICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWygnY2xpZW50X21heF93aW5kb3dfYml0cycsICcx
MCcpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVycygp
KQotCi0gICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF9tYXhfd2luZG93X2JpdHNfd2l0aG91dF9j
bGllbnRfcGVybWlzc2lvbihzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5Q
ZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQotICAgICAgICBwcm9jZXNz
b3Iuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoMTApCi0KLSAgICAgICAgcmVzcG9uc2UgPSBw
cm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNO
b25lKHJlc3BvbnNlKQotCi0gICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF90cnVlX2Zvcl9ub19j
b250ZXh0X3Rha2VvdmVyKHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBl
ck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0KLSAgICAgICAgcHJvY2Vz
c29yLnNldF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQotCi0gICAgICAgIHJlc3Bv
bnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoWygnY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKV0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLQot
ICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3dpdGhfZmFsc2VfZm9yX25vX2NvbnRleHRfdGFrZW92ZXIo
c2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVF
eHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkKLQotICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9u
b19jb250ZXh0X3Rha2VvdmVyKEZhbHNlKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29y
LmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJt
ZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQotCi0KLWlmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2UucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dF9oYW5kc2hha2UucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhNzhhYzA1ZTU4
NzFkMTU5YTY3ZjdlNDE2ZjMwMjcwMGZhMGY5MjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsMTg4ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5
cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIGhhbmRzaGFrZS5fYmFzZSBtb2R1bGUuIiIiCi0K
LQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5w
YXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5jb21tb24gaW1wb3J0IEV4dGVuc2lvblBhcmFtZXRlcgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuY29tbW9uIGltcG9ydCBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5jb21tb24gaW1wb3J0IGZvcm1hdF9leHRlbnNpb25zCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5jb21tb24gaW1wb3J0IHBhcnNlX2V4dGVuc2lvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0
LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHZhbGlkYXRlX3N1YnByb3RvY29sCi0KLQot
Y2xhc3MgVmFsaWRhdGVTdWJwcm90b2NvbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIi
IkEgdW5pdHRlc3QgZm9yIHZhbGlkYXRlX3N1YnByb3RvY29sIG1ldGhvZC4iIiIKLQotICAgIGRl
ZiB0ZXN0X3ZhbGlkYXRlX3N1YnByb3RvY29sKHNlbGYpOgotICAgICAgICAjIFNob3VsZCBzdWNj
ZWVkLgotICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCgnc2FtcGxlJykKLSAgICAgICAgdmFs
aWRhdGVfc3VicHJvdG9jb2woJ1NhbXBsZScpCi0gICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29s
KCdzYW1wbGVceDdlcHJvdG9jb2wnKQotCi0gICAgICAgICMgU2hvdWxkIGZhaWwuCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICcnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAnc2FtcGxlXHgwOXByb3RvY29sJykKLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxp
ZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4MTlw
cm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDIwcHJvdG9jb2wnKQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxl
XHg3ZnByb3RvY29sJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0
aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIyAiSmFwYW4iIGluIEphcGFuZXNlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHUnXHU2NWU1XHU2NzJjJykKLQotCi1fVEVTVF9UT0tFTl9FWFRFTlNJ
T05fREFUQSA9IFsKLSAgICAoJ2ZvbycsIFsoJ2ZvbycsIFtdKV0pLAotICAgICgnZm9vOyBiYXIn
LCBbKCdmb28nLCBbKCdiYXInLCBOb25lKV0pXSksCi0gICAgKCdmb287IGJhcj1iYXonLCBbKCdm
b28nLCBbKCdiYXInLCAnYmF6JyldKV0pLAotICAgICgnZm9vOyBiYXI9YmF6OyBjYXI9Y2RyJywg
WygnZm9vJywgWygnYmFyJywgJ2JheicpLCAoJ2NhcicsICdjZHInKV0pXSksCi0gICAgKCdmb287
IGJhcj1iYXosIGNhcjsgY2RyJywKLSAgICAgWygnZm9vJywgWygnYmFyJywgJ2JheicpXSksICgn
Y2FyJywgWygnY2RyJywgTm9uZSldKV0pLAotICAgICgnYSwgYiwgYywgZCcsCi0gICAgIFsoJ2En
LCBbXSksICgnYicsIFtdKSwgKCdjJywgW10pLCAoJ2QnLCBbXSldKSwKLSAgICBdCi0KLQotX1RF
U1RfUVVPVEVEX0VYVEVOU0lPTl9EQVRBID0gWwotICAgICgnZm9vOyBiYXI9IiInLCBbKCdmb28n
LCBbKCdiYXInLCAnJyldKV0pLAotICAgICgnZm9vOyBiYXI9IiBiYXogIicsIFsoJ2ZvbycsIFso
J2JhcicsICcgYmF6ICcpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPSIsYmF6OyInLCBbKCdmb28nLCBb
KCdiYXInLCAnLGJhejsnKV0pXSksCi0gICAgKCdmb287IGJhcj0iXFxcclxcXG5iYXoiJywgWygn
Zm9vJywgWygnYmFyJywgJ1xyXG5iYXonKV0pXSksCi0gICAgKCdmb287IGJhcj0iXFwiYmF6Iics
IFsoJ2ZvbycsIFsoJ2JhcicsICciYmF6JyldKV0pLAotICAgICgnZm9vOyBiYXI9Ilx4YmJiYXoi
JywgWygnZm9vJywgWygnYmFyJywgJ1x4YmJiYXonKV0pXSksCi0gICAgXQotCi0KLV9URVNUX1JF
RFVOREFOVF9UT0tFTl9FWFRFTlNJT05fREFUQSA9IFsKLSAgICAoJ2ZvbyBcdCAnLCBbKCdmb28n
LCBbXSldKSwKLSAgICAoJ2ZvbzsgXHJcbiBiYXInLCBbKCdmb28nLCBbKCdiYXInLCBOb25lKV0p
XSksCi0gICAgKCdmb287IGJhcj1cclxuIFxyXG4gYmF6JywgWygnZm9vJywgWygnYmFyJywgJ2Jh
eicpXSldKSwKLSAgICAoJ2ZvbyA7YmFyID0gYmF6ICcsIFsoJ2ZvbycsIFsoJ2JhcicsICdiYXon
KV0pXSksCi0gICAgKCdmb28sYmFyLCxiYXonLCBbKCdmb28nLCBbXSksICgnYmFyJywgW10pLCAo
J2JheicsIFtdKV0pLAotICAgIF0KLQotCi1fVEVTVF9SRURVTkRBTlRfUVVPVEVEX0VYVEVOU0lP
Tl9EQVRBID0gWwotICAgICgnZm9vOyBiYXI9IlxyXG4gXHJcbiBiYXoiJywgWygnZm9vJywgWygn
YmFyJywgJyAgYmF6JyldKV0pLAotICAgIF0KLQotCi1jbGFzcyBFeHRlbnNpb25zUGFyc2VyVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgX3ZlcmlmeV9leHRlbnNpb25fbGlzdChz
ZWxmLCBleHBlY3RlZF9saXN0LCBhY3R1YWxfbGlzdCk6Ci0gICAgICAgICIiIlZlcmlmaWVzIHRo
YXQgRXh0ZW5zaW9uUGFyYW1ldGVyIG9iamVjdHMgaW4gYWN0dWFsX2xpc3QgaGF2ZSB0aGUKLSAg
ICAgICAgc2FtZSBtZW1iZXJzIGFzIGV4dGVuc2lvbiBkZWZpbml0aW9ucyBpbiBleHBlY3RlZF9s
aXN0LiBFeHRlbnNpb24KLSAgICAgICAgZGVmaW5pdGlvbiB1c2VkIGluIHRoaXMgdGVzdCBpcyBh
IHBhaXIgb2YgYW4gZXh0ZW5zaW9uIG5hbWUgYW5kIGEKLSAgICAgICAgcGFyYW1ldGVyIGRpY3Rp
b25hcnkuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4cGVj
dGVkX2xpc3QpLCBsZW4oYWN0dWFsX2xpc3QpKQotICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVh
bCBpbiB6aXAoZXhwZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QpOgotICAgICAgICAgICAgKG5hbWUs
IHBhcmFtZXRlcnMpID0gZXhwZWN0ZWQKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFt
ZSwgYWN0dWFsLl9uYW1lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbWV0ZXJz
LCBhY3R1YWwuX3BhcmFtZXRlcnMpCi0KLSAgICBkZWYgdGVzdF9wYXJzZShzZWxmKToKLSAgICAg
ICAgZm9yIGZvcm1hdHRlZF9zdHJpbmcsIGRlZmluaXRpb24gaW4gX1RFU1RfVE9LRU5fRVhURU5T
SU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCi0gICAg
ICAgICAgICAgICAgZGVmaW5pdGlvbiwgcGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5n
KSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3F1b3RlZF9kYXRhKHNlbGYpOgotICAgICAgICBmb3Ig
Zm9ybWF0dGVkX3N0cmluZywgZGVmaW5pdGlvbiBpbiBfVEVTVF9RVU9URURfRVhURU5TSU9OX0RB
VEE6Ci0gICAgICAgICAgICBzZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCi0gICAgICAgICAg
ICAgICAgZGVmaW5pdGlvbiwgcGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5nKSkKLQot
ICAgIGRlZiB0ZXN0X3BhcnNlX3JlZHVuZGFudF9kYXRhKHNlbGYpOgotICAgICAgICBmb3IgKGZv
cm1hdHRlZF9zdHJpbmcsCi0gICAgICAgICAgICAgZGVmaW5pdGlvbikgaW4gX1RFU1RfUkVEVU5E
QU5UX1RPS0VOX0VYVEVOU0lPTl9EQVRBOgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4dGVu
c2lvbl9saXN0KAotICAgICAgICAgICAgICAgIGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lvbnMo
Zm9ybWF0dGVkX3N0cmluZykpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9yZWR1bmRhbnRfcXVvdGVk
X2RhdGEoc2VsZik6Ci0gICAgICAgIGZvciAoZm9ybWF0dGVkX3N0cmluZywKLSAgICAgICAgICAg
ICBkZWZpbml0aW9uKSBpbiBfVEVTVF9SRURVTkRBTlRfUVVPVEVEX0VYVEVOU0lPTl9EQVRBOgot
ICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4dGVuc2lvbl9saXN0KAotICAgICAgICAgICAgICAg
IGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lvbnMoZm9ybWF0dGVkX3N0cmluZykpCi0KLSAgICBk
ZWYgdGVzdF9wYXJzZV9iYWRfZGF0YShzZWxmKToKLSAgICAgICAgX1RFU1RfQkFEX0VYVEVOU0lP
Tl9EQVRBID0gWwotICAgICAgICAgICAgKCdmb287IDsgJyksCi0gICAgICAgICAgICAoJ2Zvbzsg
YSBhJyksCi0gICAgICAgICAgICAoJ2ZvbyBmb28nKSwKLSAgICAgICAgICAgICgnLCwsJyksCi0g
ICAgICAgICAgICAoJ2ZvbzsgYmFyPScpLAotICAgICAgICAgICAgKCdmb287IGJhcj0iaG9nZScp
LAotICAgICAgICAgICAgKCdmb287IGJhcj0iYVxyIicpLAotICAgICAgICAgICAgKCdmb287IGJh
cj0iXFxceGZmIicpLAotICAgICAgICAgICAgKCdmb287IGJhcj1ccmEnKSwKLSAgICAgICAgICAg
IF0KLQotICAgICAgICBmb3IgZm9ybWF0dGVkX3N0cmluZyBpbiBfVEVTVF9CQURfRVhURU5TSU9O
X0RBVEE6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgICAgICBF
eHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uLCBwYXJzZV9leHRlbnNpb25zLCBmb3JtYXR0ZWRfc3Ry
aW5nKQotCi0KLWNsYXNzIEZvcm1hdEV4dGVuc2lvbnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LQotICAgIGRlZiB0ZXN0X2Zvcm1hdF9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICBmb3IgZm9y
bWF0dGVkX3N0cmluZywgZGVmaW5pdGlvbnMgaW4gX1RFU1RfVE9LRU5fRVhURU5TSU9OX0RBVEE6
Ci0gICAgICAgICAgICBleHRlbnNpb25zID0gW10KLSAgICAgICAgICAgIGZvciBkZWZpbml0aW9u
IGluIGRlZmluaXRpb25zOgotICAgICAgICAgICAgICAgIChuYW1lLCBwYXJhbWV0ZXJzKSA9IGRl
ZmluaXRpb24KLSAgICAgICAgICAgICAgICBleHRlbnNpb24gPSBFeHRlbnNpb25QYXJhbWV0ZXIo
bmFtZSkKLSAgICAgICAgICAgICAgICBleHRlbnNpb24uX3BhcmFtZXRlcnMgPSBwYXJhbWV0ZXJz
Ci0gICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfc3RyaW5nLCBm
b3JtYXRfZXh0ZW5zaW9ucyhleHRlbnNpb25zKSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWlu
X18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9o
YW5kc2hha2VfaHliaS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDBhYWY2NDBh
NTg4ZTJiMDQyZjMyYTljNjZhMzY5N2FkNGRkMTBiZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQor
KysgL2Rldi9udWxsCkBAIC0xLDUyMSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMK
LSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBoYW5kc2hha2UgbW9kdWxlLiIiIgot
Ci0KLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMu
cGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLWZyb20gbW9kX3B5d2Vic29j
a2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBp
bXBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNo
YWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgVmVyc2lvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLmh5YmkgaW1wb3J0IEhhbmRzaGFrZXIKLQotaW1wb3J0IG1vY2sKLQot
Ci1jbGFzcyBSZXF1ZXN0RGVmaW5pdGlvbihvYmplY3QpOgotICAgICIiIkEgY2xhc3MgZm9yIGhv
bGRpbmcgZGF0YSBmb3IgY29uc3RydWN0aW5nIG9wZW5pbmcgaGFuZHNoYWtlIHN0cmluZ3MgZm9y
Ci0gICAgdGVzdGluZyB0aGUgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yLgotICAgICIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGhvZCwgdXJpLCBoZWFkZXJzKToKLSAgICAgICAg
c2VsZi5tZXRob2QgPSBtZXRob2QKLSAgICAgICAgc2VsZi51cmkgPSB1cmkKLSAgICAgICAgc2Vs
Zi5oZWFkZXJzID0gaGVhZGVycwotCi0KLWRlZiBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKToK
LSAgICByZXR1cm4gUmVxdWVzdERlZmluaXRpb24oCi0gICAgICAgICdHRVQnLCAnL2RlbW8nLAot
ICAgICAgICB7J0hvc3QnOiAnc2VydmVyLmV4YW1wbGUuY29tJywKLSAgICAgICAgICdVcGdyYWRl
JzogJ3dlYnNvY2tldCcsCi0gICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAg
ICAgICdTZWMtV2ViU29ja2V0LUtleSc6ICdkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nLAotICAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbic6ICcxMycsCi0gICAgICAgICAnT3JpZ2luJzog
J2h0dHA6Ly9leGFtcGxlLmNvbSd9KQotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9k
ZWYpOgotICAgIGNvbm4gPSBtb2NrLk1vY2tDb25uKCcnKQotICAgIHJldHVybiBtb2NrLk1vY2tS
ZXF1ZXN0KAotICAgICAgICBtZXRob2Q9cmVxdWVzdF9kZWYubWV0aG9kLAotICAgICAgICB1cmk9
cmVxdWVzdF9kZWYudXJpLAotICAgICAgICBoZWFkZXJzX2luPXJlcXVlc3RfZGVmLmhlYWRlcnMs
Ci0gICAgICAgIGNvbm5lY3Rpb249Y29ubikKLQotCi1kZWYgX2NyZWF0ZV9oYW5kc2hha2VyKHJl
cXVlc3QpOgotICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rp
c3BhdGNoZXIoKSkKLSAgICByZXR1cm4gaGFuZHNoYWtlcgotCi0KLWNsYXNzIFN1YnByb3RvY29s
Q2hvb3NpbmdEaXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiQSBkaXNwYXRjaGVyIGZvciB0ZXN0
aW5nLiBUaGlzIGRpc3BhdGNoZXIgc2V0cyB0aGUgaS10aCBzdWJwcm90b2NvbAotICAgIG9mIHJl
cXVlc3RlZCBvbmVzIHRvIHdzX3Byb3RvY29sIHdoZXJlIGkgaXMgZ2l2ZW4gb24gY29uc3RydWN0
aW9uIGFzIGluZGV4Ci0gICAgYXJndW1lbnQuIElmIGluZGV4IGlzIG5lZ2F0aXZlLCBkZWZhdWx0
X3ZhbHVlIHdpbGwgYmUgc2V0IHRvIHdzX3Byb3RvY29sLgotICAgICIiIgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGluZGV4LCBkZWZhdWx0X3ZhbHVlPU5vbmUpOgotICAgICAgICBzZWxmLmlu
ZGV4ID0gaW5kZXgKLSAgICAgICAgc2VsZi5kZWZhdWx0X3ZhbHVlID0gZGVmYXVsdF92YWx1ZQot
Ci0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAg
ICBpZiBzZWxmLmluZGV4ID49IDA6Ci0gICAgICAgICAgICBjb25uX2NvbnRleHQud3NfcHJvdG9j
b2wgPSBjb25uX2NvbnRleHQud3NfcmVxdWVzdGVkX3Byb3RvY29sc1sKLSAgICAgICAgICAgICAg
ICBzZWxmLmluZGV4XQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgY29ubl9jb250ZXh0Lndz
X3Byb3RvY29sID0gc2VsZi5kZWZhdWx0X3ZhbHVlCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShz
ZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICBwYXNzCi0KLQotY2xhc3MgSGFuZHNoYWtlQWJv
cnRlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgIHBhc3MKLQotCi1jbGFzcyBBYm9ydGluZ0Rp
c3BhdGNoZXIob2JqZWN0KToKLSAgICAiIiJBIGRpc3BhdGNoZXIgZm9yIHRlc3RpbmcuIFRoaXMg
ZGlzcGF0Y2hlciByYWlzZXMgYW4gZXhjZXB0aW9uIGluCi0gICAgZG9fZXh0cmFfaGFuZHNoYWtl
IHRvIHJlamVjdCB0aGUgcmVxdWVzdC4KLSAgICAiIiIKLQotICAgIGRlZiBkb19leHRyYV9oYW5k
c2hha2Uoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlQWJvcnRl
ZEV4Y2VwdGlvbignQW4gZXhjZXB0aW9uIHRvIHJlamVjdCB0aGUgcmVxdWVzdCcpCi0KLSAgICBk
ZWYgdHJhbnNmZXJfZGF0YShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICBwYXNzCi0KLQot
Y2xhc3MgQWJvcnRlZEJ5VXNlckRpc3BhdGNoZXIob2JqZWN0KToKLSAgICAiIiJBIGRpc3BhdGNo
ZXIgZm9yIHRlc3RpbmcuIFRoaXMgZGlzcGF0Y2hlciByYWlzZXMgYW4KLSAgICBBYm9ydGVkQnlV
c2VyRXhjZXB0aW9uIGluIGRvX2V4dHJhX2hhbmRzaGFrZSB0byByZWplY3QgdGhlIHJlcXVlc3Qu
Ci0gICAgIiIiCi0KLSAgICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4
dCk6Ci0gICAgICAgIHJhaXNlIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24oJ0FuIEFib3J0ZWRCeVVz
ZXJFeGNlcHRpb24gdG8gcmVqZWN0IHRoZSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3JlcXVlc3QnKQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9j
b250ZXh0KToKLSAgICAgICAgcGFzcwotCi0KLV9FWFBFQ1RFRF9SRVNQT05TRSA9ICgKLSAgICAn
SFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJwotICAgICdVcGdyYWRlOiB3ZWJz
b2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNv
Y2tldC1BY2NlcHQ6IHMzcFBMTUJpVHhhUTlrWUd6emhaUmJLK3hPbz1cclxuXHJcbicpCi0KLQot
Y2xhc3MgSGFuZHNoYWtlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRl
c3QgZm9yIGRyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wNiBhbmQgbGF0ZXIK
LSAgICBoYW5kc2hha2UgcHJvY2Vzc29yLgotICAgICIiIgotCi0gICAgZGVmIHRlc3RfZG9faGFu
ZHNoYWtlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9jcmVhdGVf
Z29vZF9yZXF1ZXN0X2RlZigpKQotICAgICAgICBkaXNwYXRjaGVyID0gbW9jay5Nb2NrRGlzcGF0
Y2hlcigpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIGRpc3BhdGNo
ZXIpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLQotICAgICAgICBzZWxmLmFz
c2VydFRydWUoZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2VfY2FsbGVkKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
L2RlbW8nLCByZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdo
dHRwOi8vZXhhbXBsZS5jb20nLCByZXF1ZXN0LndzX29yaWdpbikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCByZXF1ZXN0LndzX3Byb3RvY29sKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVCwgcmVxdWVzdC53c192ZXJzaW9uKQotCi0gICAg
ZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfZXh0cmFfaGVhZGVycyhzZWxmKToKLSAgICAgICAg
cmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICAjIEFkZCBo
ZWFkZXJzIG5vdCByZWxhdGVkIHRvIFdlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgICAg
ICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snRm9vS2V5J10gPSAnQmFyVmFsdWUnCi0gICAgICAgIHJl
cXVlc3RfZGVmLmhlYWRlcnNbJ0VtcHR5S2V5J10gPSAnJwotCi0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRl
X2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNF
LCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9kb19o
YW5kc2hha2Vfd2l0aF9jYXBpdGFsaXplZF92YWx1ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdF9k
ZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFk
ZXJzWyd1cGdyYWRlJ10gPSAnV0VCU09DS0VUJwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRz
aGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBf
Y3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydD
b25uZWN0aW9uJ10gPSAnVVBHUkFERScKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2Vy
KHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dp
dGhfbXVsdGlwbGVfY29ubmVjdGlvbl92YWx1ZXMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVy
c1snQ29ubmVjdGlvbiddID0gJ1VwZ3JhZGUsIGtlZXAtYWxpdmUsICwgJwotCi0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIg
PSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5k
c2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgX0VYUEVDVEVE
X1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYg
dGVzdF9hYm9ydGluZ19oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5k
c2hha2VyKAotICAgICAgICAgICAgX2NyZWF0ZV9yZXF1ZXN0KF9jcmVhdGVfZ29vZF9yZXF1ZXN0
X2RlZigpKSwKLSAgICAgICAgICAgIEFib3J0aW5nRGlzcGF0Y2hlcigpKQotICAgICAgICAjIGRv
X2V4dHJhX2hhbmRzaGFrZSByYWlzZXMgYW4gZXhjZXB0aW9uLiBDaGVjayB0aGF0IGl0J3Mgbm90
IGNhdWdodCBieQotICAgICAgICAjIGRvX2hhbmRzaGFrZS4KLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoSGFuZHNoYWtlQWJvcnRlZEV4Y2VwdGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hha2Up
Ci0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9wcm90b2NvbChzZWxmKToKLSAgICAg
ICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1
ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10gPSAnY2hhdCwgc3VwZXJj
aGF0JwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0g
ICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIFN1YnByb3RvY29sQ2hvb3Np
bmdEaXNwYXRjaGVyKDApKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0KLSAg
ICAgICAgRVhQRUNURURfUkVTUE9OU0UgPSAoCi0gICAgICAgICAgICAnSFRUUC8xLjEgMTAxIFN3
aXRjaGluZyBQcm90b2NvbHNcclxuJwotICAgICAgICAgICAgJ1VwZ3JhZGU6IHdlYnNvY2tldFxy
XG4nCi0gICAgICAgICAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgICAgICAgICAn
U2VjLVdlYlNvY2tldC1BY2NlcHQ6IHMzcFBMTUJpVHhhUTlrWUd6emhaUmJLK3hPbz1cclxuJwot
ICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IGNoYXRcclxuXHJcbicpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChFWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdjaGF0JywgcmVx
dWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV9wcm90b2NvbF9u
b3RfaW5fcmVxdWVzdF9idXRfaW5fcmVzcG9uc2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIoCi0g
ICAgICAgICAgICByZXF1ZXN0LCBTdWJwcm90b2NvbENob29zaW5nRGlzcGF0Y2hlcigtMSwgJ2Zv
b2JhcicpKQotICAgICAgICAjIE5vIHJlcXVlc3QgaGFzIGJlZW4gbWFkZSBidXQgd3NfcHJvdG9j
b2wgaXMgc2V0LiBIYW5kc2hha2VFeGNlcHRpb24KLSAgICAgICAgIyBtdXN0IGJlIHJhaXNlZC4K
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLCBoYW5kc2hha2Vy
LmRvX2hhbmRzaGFrZSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3Byb3RvY29s
X25vX3Byb3RvY29sX3NlbGVjdGlvbihzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3Jl
YXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMt
V2ViU29ja2V0LVByb3RvY29sJ10gPSAnY2hhdCwgc3VwZXJjaGF0JwotCi0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBf
Y3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgIyB3c19wcm90b2NvbCBpcyBub3Qg
c2V0LiBIYW5kc2hha2VFeGNlcHRpb24gbXVzdCBiZSByYWlzZWQuCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hha2UpCi0K
LSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9leHRlbnNpb25zKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVl
c3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKAotICAgICAgICAg
ICAgJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInKQotCi0g
ICAgICAgIEVYUEVDVEVEX1JFU1BPTlNFID0gKAotICAgICAgICAgICAgJ0hUVFAvMS4xIDEwMSBT
d2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKLSAgICAgICAgICAgICdVcGdyYWRlOiB3ZWJzb2NrZXRc
clxuJwotICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICAgICAgICAg
J1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBzM3BQTE1CaVR4YVE5a1lHenpoWlJiSyt4T289XHJcbicK
LSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnM6ICcKLSAgICAgICAgICAgICAg
ICAncGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlclxyXG4nCi0g
ICAgICAgICAgICAnXHJcbicpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChy
ZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1
ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNp
b25zKSkKLSAgICAgICAgZXh0ZW5zaW9uID0gcmVxdWVzdC53c19leHRlbnNpb25zWzBdCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJ10sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfbmFtZXMoKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lv
bi5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Vy
dmVyX25vX2NvbnRleHRfdGFrZW92ZXInKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBs
ZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ2RlZmxhdGUnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0
ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtl
X3dpdGhfcXVvdGVkX2V4dGVuc2lvbnMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2Ny
ZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2Vj
LVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0gICAgICAgICAgICAncGVybWVzc2FnZS1kZWZs
YXRlLCAsICcKLSAgICAgICAgICAgICd1bmtub3duOyBlICAgPSAgICAibWNeMiI7IG1hPSJcclxu
ICAgICAgXFxccmYgICI7IHB2PW5ydCcpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtl
cihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMpKQot
ICAgICAgICBmaXJzdF9leHRlbnNpb24gPSByZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25z
WzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIGZpcnN0
X2V4dGVuc2lvbi5uYW1lKCkpCi0gICAgICAgIHNlY29uZF9leHRlbnNpb24gPSByZXF1ZXN0Lndz
X3JlcXVlc3RlZF9leHRlbnNpb25zWzFdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Vua25v
d24nLCBzZWNvbmRfZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
LSAgICAgICAgICAgIFsnZScsICdtYScsICdwdiddLCBzZWNvbmRfZXh0ZW5zaW9uLmdldF9wYXJh
bWV0ZXJfbmFtZXMoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnbWNeMicsIHNlY29uZF9l
eHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgnZScpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCcgXHJmICcsIHNlY29uZF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgnbWEnKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnbnJ0Jywgc2Vjb25kX2V4dGVuc2lvbi5nZXRfcGFy
YW1ldGVyX3ZhbHVlKCdwdicpKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfb3B0
aW9uYWxfaGVhZGVycyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2Rf
cmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydFbXB0eVZhbHVlJ10g
PSAnJwotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydBS2V5J10gPSAnQVZhbHVlJwotCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhh
bmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtl
ci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
J0FWYWx1ZScsIHJlcXVlc3QuaGVhZGVyc19pblsnQUtleSddKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKAotICAgICAgICAgICAgJycsIHJlcXVlc3QuaGVhZGVyc19pblsnRW1wdHlWYWx1ZSdd
KQotCi0gICAgZGVmIHRlc3RfYWJvcnRfZXh0cmFfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBo
YW5kc2hha2VyID0gSGFuZHNoYWtlcigKLSAgICAgICAgICAgIF9jcmVhdGVfcmVxdWVzdChfY3Jl
YXRlX2dvb2RfcmVxdWVzdF9kZWYoKSksCi0gICAgICAgICAgICBBYm9ydGVkQnlVc2VyRGlzcGF0
Y2hlcigpKQotICAgICAgICAjIGRvX2V4dHJhX2hhbmRzaGFrZSByYWlzZXMgYW4gQWJvcnRlZEJ5
VXNlckV4Y2VwdGlvbi4gQ2hlY2sgdGhhdCBpdCdzCi0gICAgICAgICMgbm90IGNhdWdodCBieSBk
b19oYW5kc2hha2UuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFib3J0ZWRCeVVzZXJFeGNl
cHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNo
YWtlX3dpdGhfbXV4X2FuZF9kZWZsYXRlX2ZyYW1lKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2Rl
ZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRl
cnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKCclcywgJXMnICUgKAotICAgICAgICAg
ICAgICAgIGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgIGNvbW1vbi5ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTikpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
cmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVx
dWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICAjIG11eCBz
aG91bGQgYmUgcmVqZWN0ZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVl
c3Qud3NfZXh0ZW5zaW9ucykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLkRFRkxB
VEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9uc1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJl
cXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
d3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKHJlcXVlc3QsICdtdXhfcHJvY2Vzc29yJykpCi0KLSAg
ICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9kZWZsYXRlX2ZyYW1lX2FuZF9tdXgoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAg
ICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoJyVz
LCAlcycgJSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9O
LAotICAgICAgICAgICAgICAgIGNvbW1vbi5NVVhfRVhURU5TSU9OKSkKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9j
cmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFr
ZSgpCi0gICAgICAgICMgbXV4IHNob3VsZCBiZSByZWplY3RlZC4KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25zKSkKLSAgICAgICAgZmlyc3RfZXh0
ZW5zaW9uID0gcmVxdWVzdC53c19leHRlbnNpb25zWzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIGZpcnN0X2V4dGVuc2lvbi5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwg
bGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKHJlcXVlc3QsICdtdXgnKSkKLQotICAgIGRl
ZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3Blcm1lc3NhZ2VfZGVmbGF0ZV9hbmRfbXV4KHNlbGYp
OgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAg
ICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKAot
ICAgICAgICAgICAgJyVzLCAlcycgJSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NB
R0VfREVGTEFURV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgY29tbW9uLk1VWF9FWFRFTlNJ
T04pKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAg
ICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhh
bmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxl
bihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1v
bi5NVVhfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0
ZW5zaW9uc1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVl
c3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdk
ZWZsYXRlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9w
cm9jZXNzb3JzWzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVY
X0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lv
bl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIo
cmVxdWVzdCwgJ211eF9wcm9jZXNzb3InKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcXVl
c3QubXV4X3Byb2Nlc3Nvci5pc19hY3RpdmUoKSkKLSAgICAgICAgbXV4X2V4dGVuc2lvbnMgPSBy
ZXF1ZXN0Lm11eF9wcm9jZXNzb3IuZXh0ZW5zaW9ucygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMSwgbGVuKG11eF9leHRlbnNpb25zKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
b24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBtdXhfZXh0ZW5zaW9uc1swXS5uYW1lKCkpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vf
d2l0aF9tdXhfYW5kX3Blcm1lc3NhZ2VfZGVmbGF0ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdF9k
ZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFk
ZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgKLSAgICAgICAgICAgICclcywgJXMn
ICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAgICAg
ICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKSkKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9j
cmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFr
ZSgpCi0gICAgICAgICMgbXV4IHNob3VsZCBiZSByZWplY3RlZC4KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25zKSkKLSAgICAgICAgZmlyc3RfZXh0
ZW5zaW9uID0gcmVxdWVzdC53c19leHRlbnNpb25zWzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgZmlyc3RfZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgyLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ2RlZmxhdGUnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMV0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKGhhc2F0dHIocmVxdWVzdCwgJ211eF9wcm9jZXNzb3InKSkKLQotICAgIGRlZiB0ZXN0
X2JhZF9yZXF1ZXN0cyhzZWxmKToKLSAgICAgICAgYmFkX2Nhc2VzID0gWwotICAgICAgICAgICAg
KCdIVFRQIHJlcXVlc3QnLAotICAgICAgICAgICAgIFJlcXVlc3REZWZpbml0aW9uKAotICAgICAg
ICAgICAgICAgICAnR0VUJywgJy9kZW1vJywKLSAgICAgICAgICAgICAgICAgeydIb3N0JzogJ3d3
dy5nb29nbGUuY29tJywKLSAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzoKLSAgICAgICAg
ICAgICAgICAgICAgICAnTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFgg
MTAuNTsnCi0gICAgICAgICAgICAgICAgICAgICAgJyBlbi1VUzsgcnY6MS45LjEuMykgR2Vja28v
MjAwOTA4MjQgRmlyZWZveC8zLjUuMycKLSAgICAgICAgICAgICAgICAgICAgICAnIEdUQjYgR1RC
QScsCi0gICAgICAgICAgICAgICAgICAnQWNjZXB0JzoKLSAgICAgICAgICAgICAgICAgICAgICAn
dGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksJwot
ICAgICAgICAgICAgICAgICAgICAgICcqLyo7cT0wLjgnLAotICAgICAgICAgICAgICAgICAgJ0Fj
Y2VwdC1MYW5ndWFnZSc6ICdlbi11cyxlbjtxPTAuNScsCi0gICAgICAgICAgICAgICAgICAnQWNj
ZXB0LUVuY29kaW5nJzogJ2d6aXAsZGVmbGF0ZScsCi0gICAgICAgICAgICAgICAgICAnQWNjZXB0
LUNoYXJzZXQnOiAnSVNPLTg4NTktMSx1dGYtODtxPTAuNywqO3E9MC43JywKLSAgICAgICAgICAg
ICAgICAgICdLZWVwLUFsaXZlJzogJzMwMCcsCi0gICAgICAgICAgICAgICAgICAnQ29ubmVjdGlv
bic6ICdrZWVwLWFsaXZlJ30pLCBOb25lLCBUcnVlKV0KLQotICAgICAgICByZXF1ZXN0X2RlZiA9
IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLm1ldGhvZCA9
ICdQT1NUJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgbWV0aG9kJywgcmVxdWVz
dF9kZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29k
X3JlcXVlc3RfZGVmKCkKLSAgICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0hvc3QnXQot
ICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBIb3N0JywgcmVxdWVzdF9kZWYsIE5v
bmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3Rf
ZGVmKCkKLSAgICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1VwZ3JhZGUnXQotICAgICAg
ICBiYWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBVcGdyYWRlJywgcmVxdWVzdF9kZWYsIE5vbmUs
IFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snVXBncmFkZSddID0gJ25vbndlYnNvY2tl
dCcKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIFVwZ3JhZGUnLCByZXF1ZXN0X2Rl
ZiwgTm9uZSwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVx
dWVzdF9kZWYoKQotICAgICAgICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbidd
Ci0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5nIENvbm5lY3Rpb24nLCByZXF1ZXN0
X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2Rf
cmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydDb25uZWN0aW9uJ10g
PSAnRG93bmdyYWRlJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgQ29ubmVjdGlv
bicsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9j
cmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJz
WydTZWMtV2ViU29ja2V0LUtleSddCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5n
IFNlYy1XZWJTb2NrZXQtS2V5JywgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAg
cmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0
X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUtleSddID0gKAotICAgICAgICAgICAgJ2RHaGxJ
SE5oYlhCc1pTQnViMjVqWlE9PWdhcmJhZ2UnKQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgn
V3JvbmcgU2VjLVdlYlNvY2tldC1LZXkgKHdpdGggZ2FyYmFnZSBvbiB0aGUgdGFpbCknLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAg
ICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVl
c3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtS2V5J10gPSAnWVE9PScgICMgQkFTRTY0IG9m
ICdhJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKAotICAgICAgICAgICAgKCdXcm9uZyBTZWMt
V2ViU29ja2V0LUtleSAoZGVjb2RlZCB2YWx1ZSBpcyBub3QgMTYgb2N0ZXRzIGxvbmcpJywKLSAg
ICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2Rl
ZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgICMgVGhlIGxhc3QgY2hhcmFj
dGVyIHJpZ2h0IGJlZm9yZSA9PSBtdXN0IGJlIGFueSBvZiBBLCBRLCB3IGFuZCBnLgotICAgICAg
ICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUtleSddID0gKAotICAgICAgICAg
ICAgJ0FRSURCQVVHQndnSkNnc01EUTRQRUM9PScpCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQo
Ci0gICAgICAgICAgICAoJ1dyb25nIFNlYy1XZWJTb2NrZXQtS2V5IChwYWRkaW5nIGJpdHMgYXJl
IG5vdCB6ZXJvKScsCi0gICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAg
ICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBy
ZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUtleSddID0gKAotICAgICAgICAgICAg
J2RHaGxJSE5oYlhCc1pTQnViMjVqWlE9PSxkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nKQotICAg
ICAgICBiYWRfY2FzZXMuYXBwZW5kKAotICAgICAgICAgICAgKCdXcm9uZyBTZWMtV2ViU29ja2V0
LUtleSAobXVsdGlwbGUgdmFsdWVzKScsCi0gICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwg
VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYo
KQotICAgICAgICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1WZXJzaW9u
J10KLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgU2VjLVdlYlNvY2tldC1WZXJz
aW9uJywgcmVxdWVzdF9kZWYsIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUp
KQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAg
ICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1WZXJzaW9uJ10gPSAnMycK
LSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIFNlYy1XZWJTb2NrZXQtVmVyc2lvbics
IHJlcXVlc3RfZGVmLCBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCi0K
LSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAg
ICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVZlcnNpb24nXSA9ICcxMywgMTMn
Ci0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBTZWMtV2ViU29ja2V0LVZlcnNpb24g
KG11bHRpcGxlIHZhbHVlcyknLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2Rl
ZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1
ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtUHJv
dG9jb2wnXSA9ICdpbGxlZ2FsXHgwOXByb3RvY29sJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5k
KCgnSWxsZWdhbCBTZWMtV2ViU29ja2V0LVByb3RvY29sJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBf
Y3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydT
ZWMtV2ViU29ja2V0LVByb3RvY29sJ10gPSAnJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgn
RW1wdHkgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAgICAgIGZvciAoY2FzZV9uYW1lLCByZXF1
ZXN0X2RlZiwgZXhwZWN0ZWRfc3RhdHVzLAotICAgICAgICAgICAgIGV4cGVjdF9oYW5kc2hha2Vf
ZXhjZXB0aW9uKSBpbiBiYWRfY2FzZXM6Ci0gICAgICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIo
cmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgICAgICAgICBzZWxm
LmZhaWwoJ05vIGV4Y2VwdGlvbiB0aHJvd24gZm9yIFwnJXNcJyBjYXNlJyAlIGNhc2VfbmFtZSkK
LSAgICAgICAgICAgIGV4Y2VwdCBIYW5kc2hha2VFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
ICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0X2hhbmRzaGFrZV9leGNlcHRpb24pCi0gICAgICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9zdGF0dXMsIGUuc3RhdHVzKQotICAg
ICAgICAgICAgZXhjZXB0IFZlcnNpb25FeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKGV4cGVjdF9oYW5kc2hha2VfZXhjZXB0aW9uKQotCi0KLWlmIF9fbmFt
ZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkwMC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzNmOWYyN2NhMmQ5NDIxYjIzMDE1ZjU4Yzg5M2FjZjFkYzAwOWRlZi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9o
YW5kc2hha2VfaHliaTAwLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTE2ICswLDAgQEAKLSMhL3Vz
ci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0
OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIGhh
bmRzaGFrZS5oeWJpMDAgbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQg
c2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0
IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBI
YW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJpMDAg
aW1wb3J0IEhhbmRzaGFrZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJpMDAg
aW1wb3J0IF92YWxpZGF0ZV9zdWJwcm90b2NvbAotZnJvbSB0ZXN0IGltcG9ydCBtb2NrCi0KLQot
X1RFU1RfS0VZMSA9ICc0IEAxICA0NjU0NnhXJTBsIDEgNScKLV9URVNUX0tFWTIgPSAnMTI5OTgg
NSBZMyAxICAuUDAwJwotX1RFU1RfS0VZMyA9ICdebjpkc1s0VScKLV9URVNUX0NIQUxMRU5HRV9S
RVNQT05TRSA9ICc4aktTXCd5OkcqQ28sV3hhLScKLQotCi1fR09PRF9SRVFVRVNUID0gKAotICAg
IDgwLAotICAgICdHRVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdl
eGFtcGxlLmNvbScsCi0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAn
U2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
UHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4n
OiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09E
X1JFUVVFU1RfQ0FQSVRBTElaRURfSEVBREVSX1ZBTFVFUyA9ICgKLSAgICA4MCwKLSAgICAnR0VU
JywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAot
ICAgICAgICAnQ29ubmVjdGlvbic6ICdVUEdSQURFJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
S2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3Nh
bXBsZScsCi0gICAgICAgICdVcGdyYWRlJzogJ1dFQlNPQ0tFVCcsCi0gICAgICAgICdTZWMtV2Vi
U29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFt
cGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVFVRVNUX0NBU0Vf
TUlYRURfSEVBREVSX05BTUVTID0gKAotICAgIDgwLAotICAgICdHRVQnLAotICAgICcvZGVtbycs
Ci0gICAgewotICAgICAgICAnaE9zVCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICdjT25OZUN0
SW9OJzogJ1VwZ3JhZGUnLAotICAgICAgICAnc0VjLXdFYnNPY0tlVC1rRXkyJzogX1RFU1RfS0VZ
MiwKLSAgICAgICAgJ3NFYy13RWJzT2NLZVQtcFJvVG9Db0wnOiAnc2FtcGxlJywKLSAgICAgICAg
J3VQZ1JhRGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgJ3NFYy13RWJzT2NLZVQta0V5MSc6IF9U
RVNUX0tFWTEsCi0gICAgICAgICdvUmlHaU4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9
LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09EX1JFU1BPTlNFX0RFRkFVTFRfUE9SVCA9ICgKLSAg
ICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdV
cGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAg
ICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKLSAg
ICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1Nl
Yy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVT
VF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9HT09EX1JFU1BPTlNFX1NFQ1VSRSA9ICgKLSAgICAn
SFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdVcGdy
YWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAn
U2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3NzOi8vZXhhbXBsZS5jb20vZGVtb1xyXG4nCi0gICAg
J1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdTZWMt
V2ViU29ja2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgX1RFU1Rf
Q0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVFVRVNUX05PTkRFRkFVTFRfUE9SVCA9ICgK
LSAgICA4MDgxLAotICAgICdHRVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9z
dCc6ICdleGFtcGxlLmNvbTo4MDgxJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScs
Ci0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJT
b2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAg
ICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZ
MykKLQotX0dPT0RfUkVTUE9OU0VfTk9OREVGQVVMVF9QT1JUID0gKAotICAgICdIVFRQLzEuMSAx
MDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNv
Y2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29j
a2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tOjgwODEvZGVtb1xyXG4nCi0gICAgJ1NlYy1X
ZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdTZWMtV2ViU29j
a2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExF
TkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVNQT05TRV9TRUNVUkVfTk9OREVGID0gKAotICAgICdI
VFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3Jh
ZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdT
ZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3c3M6Ly9leGFtcGxlLmNvbTo4MDgxL2RlbW9cclxuJwot
ICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAn
U2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9U
RVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0dPT0RfUkVRVUVTVF9OT19QUk9UT0NPTCA9ICgK
LSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAgJ0hvc3Qn
OiAnZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAg
ICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdVcGdyYWRlJzog
J1dlYlNvY2tldCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAot
ICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVT
VF9LRVkzKQotCi1fR09PRF9SRVNQT05TRV9OT19QUk9UT0NPTCA9ICgKLSAgICAnSFRUUC8xLjEg
MTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJT
b2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNv
Y2tldC1Mb2NhdGlvbjogd3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNv
Y2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBf
VEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9HT09EX1JFUVVFU1RfV0lUSF9PUFRJT05BTF9I
RUFERVJTID0gKAotICAgIDgwLAotICAgICdHRVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAg
ICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3Jh
ZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAg
J0VtcHR5VmFsdWUnOiAnJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2Ft
cGxlJywKLSAgICAgICAgJ0FLZXknOiAnQVZhbHVlJywKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2Vi
U29ja2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAg
ICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tF
WTMpCi0KLSMgVE9ETyh0eW9zaGlubyk6IEluY2x1ZGUgXHIgXG4gaW4ga2V5MywgY2hhbGxlbmdl
IHJlc3BvbnNlLgotCi1fR09PRF9SRVFVRVNUX1dJVEhfTk9OUFJJTlRBQkxFX0tFWSA9ICgKLSAg
ICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAn
ZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAg
J1NlYy1XZWJTb2NrZXQtS2V5Mic6ICd5ICBSMiA0OCBRMU80ICBlfEJWMyBpNSAxICB1LSA2NScs
Ci0gICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdV
cGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiAnMzYg
NyAgIDc0IGkgIDkyIDJcJ20gOSAwRycsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1w
bGUuY29tJywKLSAgICB9LAotICAgICcnLmpvaW4obWFwKGNociwgWzB4MDEsIDB4ZDEsIDB4ZGQs
IDB4M2IsIDB4ZDEsIDB4NTYsIDB4NjMsIDB4ZmZdKSkpCi0KLV9HT09EX1JFU1BPTlNFX1dJVEhf
Tk9OUFJJTlRBQkxFX0tFWSA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2Nv
bCBIYW5kc2hha2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25u
ZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3M6Ly9l
eGFtcGxlLmNvbS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9l
eGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4n
Ci0gICAgJ1xyXG4nICsKLSAgICAnJy5qb2luKG1hcChjaHIsIFsweDBiLCAweDk5LCAweGZhLCAw
eDU1LCAweGJkLCAweDAxLCAweDIzLCAweDdiLAotICAgICAgICAgICAgICAgICAgICAgIDB4NDUs
IDB4YTIsIDB4ZjEsIDB4ZDAsIDB4ODcsIDB4OGEsIDB4ZWUsIDB4ZWJdKSkpCi0KLV9HT09EX1JF
UVVFU1RfV0lUSF9RVUVSWV9QQVJUID0gKAotICAgIDgwLAotICAgICdHRVQnLAotICAgICcvZGVt
bz9lPW1jMicsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAg
ICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzog
X1RFU1RfS0VZMiwKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywK
LSAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
S2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29t
JywKLSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09EX1JFU1BPTlNFX1dJVEhfUVVFUllf
UEFSVCA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2Vc
clxuJwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdy
YWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3M6Ly9leGFtcGxlLmNvbS9k
ZW1vP2U9bWMyXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxl
LmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4nCi0gICAg
J1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9CQURfUkVRVUVTVFMg
PSAoCi0gICAgKCAgIyBIVFRQIHJlcXVlc3QKLSAgICAgICAgODAsCi0gICAgICAgICdHRVQnLAot
ICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICd3d3cuZ29v
Z2xlLmNvbScsCi0gICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoTWFjaW50
b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAxMC41OycKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
JyBlbi1VUzsgcnY6MS45LjEuMykgR2Vja28vMjAwOTA4MjQgRmlyZWZveC8zLjUuMycKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgJyBHVEI2IEdUQkEnLAotICAgICAgICAgICAgJ0FjY2VwdCc6
ICd0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSwn
Ci0gICAgICAgICAgICAgICAgICAgICAgJyovKjtxPTAuOCcsCi0gICAgICAgICAgICAnQWNjZXB0
LUxhbmd1YWdlJzogJ2VuLXVzLGVuO3E9MC41JywKLSAgICAgICAgICAgICdBY2NlcHQtRW5jb2Rp
bmcnOiAnZ3ppcCxkZWZsYXRlJywKLSAgICAgICAgICAgICdBY2NlcHQtQ2hhcnNldCc6ICdJU08t
ODg1OS0xLHV0Zi04O3E9MC43LCo7cT0wLjcnLAotICAgICAgICAgICAgJ0tlZXAtQWxpdmUnOiAn
MzAwJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ2tlZXAtYWxpdmUnLAotICAgICAgICB9
KSwKLSAgICAoICAjIFdyb25nIG1ldGhvZAotICAgICAgICA4MCwKLSAgICAgICAgJ1BPU1QnLAot
ICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxl
LmNvbScsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAg
ICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJT
b2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAgICdVcGdyYWRlJzogJ1dlYlNv
Y2tldCcsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAg
ICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAg
ICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBNaXNzaW5nIFVwZ3JhZGUKLSAgICAgICAgODAs
Ci0gICAgICAgICdHRVQnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAg
ICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdy
YWRlJywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAg
ICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAg
ICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09yaWdpbic6
ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9LRVkzKSwK
LSAgICAoICAjIFdyb25nIFVwZ3JhZGUKLSAgICAgICAgODAsCi0gICAgICAgICdHRVQnLAotICAg
ICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNv
bScsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdT
ZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAgICdVcGdyYWRlJzogJ05vbldlYlNv
Y2tldCcsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAg
ICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAg
ICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBFbXB0eSBXZWJTb2NrZXQtUHJvdG9jb2wKLSAg
ICAgICAgODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0g
ICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICAgICAnQ29ubmVjdGlv
bic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9L
RVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnJywKLSAgICAgICAg
ICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1L
ZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUu
Y29tJywKLSAgICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBXcm9uZyBw
b3J0IG51bWJlciBmb3JtYXQKLSAgICAgICAgODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAn
L2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbToweDUw
JywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1Nl
Yy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tl
dC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0
JywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAg
ICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAg
ICBfVEVTVF9LRVkzKSwKLSAgICAoICAjIEhlYWRlci9jb25uZWN0aW9uIHBvcnQgbWlzbWF0Y2gK
LSAgICAgICAgODA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycsCi0gICAgICAg
IHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgICAgICdDb25u
ZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9U
RVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUn
LAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgICAgICdTZWMt
V2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09yaWdpbic6ICdodHRw
Oi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9LRVkzKSwKLSAgICAo
ICAjIElsbGVnYWwgV2ViU29ja2V0LVByb3RvY29sCi0gICAgICAgIDgwLAotICAgICAgICAnR0VU
JywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hvc3QnOiAnZXhh
bXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAg
ICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMt
V2ViU29ja2V0LVByb3RvY29sJzogJ2lsbGVnYWxceDA5cHJvdG9jb2wnLAotICAgICAgICAgICAg
J1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEn
OiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20n
LAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9LRVkzKSwKLSkKLQotCi1kZWYgX2NyZWF0ZV9y
ZXF1ZXN0KHJlcXVlc3RfZGVmKToKLSAgICBkYXRhID0gJycKLSAgICBpZiBsZW4ocmVxdWVzdF9k
ZWYpID4gNDoKLSAgICAgICAgZGF0YSA9IHJlcXVlc3RfZGVmWzRdCi0gICAgY29ubiA9IG1vY2su
TW9ja0Nvbm4oZGF0YSkKLSAgICBjb25uLmxvY2FsX2FkZHIgPSAoJzAuMC4wLjAnLCByZXF1ZXN0
X2RlZlswXSkKLSAgICByZXR1cm4gbW9jay5Nb2NrUmVxdWVzdCgKLSAgICAgICAgbWV0aG9kPXJl
cXVlc3RfZGVmWzFdLAotICAgICAgICB1cmk9cmVxdWVzdF9kZWZbMl0sCi0gICAgICAgIGhlYWRl
cnNfaW49cmVxdWVzdF9kZWZbM10sCi0gICAgICAgIGNvbm5lY3Rpb249Y29ubikKLQotCi1kZWYg
X2NyZWF0ZV9nZXRfbWVtb3JpemVkX2xpbmVzKGxpbmVzKToKLSAgICAiIiJDcmVhdGVzIGEgZnVu
Y3Rpb24gdGhhdCByZXR1cm5zIHRoZSBnaXZlbiBzdHJpbmcuIiIiCi0KLSAgICBkZWYgZ2V0X21l
bW9yaXplZF9saW5lcygpOgotICAgICAgICByZXR1cm4gbGluZXMKLSAgICByZXR1cm4gZ2V0X21l
bW9yaXplZF9saW5lcwotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3RzX3dpdGhfbGluZXMocmVxdWVz
dF9saW5lc19zZXQpOgotICAgIHJlcXVlc3RzID0gW10KLSAgICBmb3IgbGluZXMgaW4gcmVxdWVz
dF9saW5lc19zZXQ6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVR
VUVTVCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmdldF9tZW1vcml6ZWRfbGluZXMgPSBf
Y3JlYXRlX2dldF9tZW1vcml6ZWRfbGluZXMoCi0gICAgICAgICAgICAgICAgbGluZXMpCi0gICAg
ICAgIHJlcXVlc3RzLmFwcGVuZChyZXF1ZXN0KQotICAgIHJldHVybiByZXF1ZXN0cwotCi0KLWNs
YXNzIEh5QmkwMEhhbmRzaGFrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiB0
ZXN0X2dvb2RfcmVxdWVzdF9kZWZhdWx0X3BvcnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVCkKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRz
aGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2Vy
LmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0Vf
REVGQVVMVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2RlbW8nLCByZXF1
ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdodHRwOi8vZXhhbXBs
ZS5jb20nLCByZXF1ZXN0LndzX29yaWdpbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnd3M6
Ly9leGFtcGxlLmNvbS9kZW1vJywgcmVxdWVzdC53c19sb2NhdGlvbikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0
X2dvb2RfcmVxdWVzdF9jYXBpdGFsaXplZF9oZWFkZXJfdmFsdWVzKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfQ0FQSVRBTElaRURfSEVBREVS
X1ZBTFVFUykKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5N
b2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfREVGQVVMVF9QT1JULAotICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQot
ICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9jYXNlX21peGVkX2hlYWRlcl9uYW1lcyhzZWxmKToK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX0NBU0VfTUlY
RURfSEVBREVSX05BTUVTKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0
LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X3NlY3VyZV9kZWZhdWx0X3BvcnQoc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVCkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmxvY2FsX2FkZHIgPSAoJzAuMC4wLjAnLCA0NDMpCi0g
ICAgICAgIHJlcXVlc3QuaXNfaHR0cHNfID0gVHJ1ZQotICAgICAgICBoYW5kc2hha2VyID0gSGFu
ZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFr
ZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05T
RV9TRUNVUkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1ZXN0
LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X25vbmRlZmF1bHRfcG9y
dChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNU
X05PTkRFRkFVTFRfUE9SVCkKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVz
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2suTW9ja0Rp
c3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX05PTkRFRkFVTFRfUE9SVCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAg
ICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfc2VjdXJlX25vbl9kZWZhdWx0X3BvcnQoc2VsZik6Ci0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9OT05ERUZBVUxU
X1BPUlQpCi0gICAgICAgIHJlcXVlc3QuaXNfaHR0cHNfID0gVHJ1ZQotICAgICAgICBoYW5kc2hh
a2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAg
IGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09P
RF9SRVNQT05TRV9TRUNVUkVfTk9OREVGLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
c2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVz
dF9kZWZhdWx0X25vX3Byb3RvY29sKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KF9HT09EX1JFUVVFU1RfTk9fUFJPVE9DT0wpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBI
YW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNo
YWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BP
TlNFX05PX1BST1RPQ09MLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXF1
ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X29wdGlvbmFsX2hl
YWRlcnMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVR
VUVTVF9XSVRIX09QVElPTkFMX0hFQURFUlMpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hh
a2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5k
b19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdBVmFsdWUnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc19pblsnQUtleSddKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCcnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuaGVh
ZGVyc19pblsnRW1wdHlWYWx1ZSddKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X3dpdGhf
bm9ucHJpbnRhYmxlX2tleShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dChfR09PRF9SRVFVRVNUX1dJVEhfTk9OUFJJTlRBQkxFX0tFWSkKLSAgICAgICAgaGFuZHNoYWtl
ciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBo
YW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0Rf
UkVTUE9OU0VfV0lUSF9OT05QUklOVEFCTEVfS0VZLAotICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dvb2Rf
cmVxdWVzdF93aXRoX3F1ZXJ5X3BhcnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9XSVRIX1FVRVJZX1BBUlQpCi0gICAgICAgIGhhbmRzaGFr
ZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAg
aGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09E
X1JFU1BPTlNFX1dJVEhfUVVFUllfUEFSVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J3dzOi8vZXhhbXBsZS5jb20vZGVtbz9lPW1jMicsIHJlcXVlc3Qud3NfbG9jYXRpb24pCi0KLSAg
ICBkZWYgdGVzdF9iYWRfcmVxdWVzdHMoc2VsZik6Ci0gICAgICAgIGZvciByZXF1ZXN0IGluIG1h
cChfY3JlYXRlX3JlcXVlc3QsIF9CQURfUkVRVUVTVFMpOgotICAgICAgICAgICAgaGFuZHNoYWtl
ciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLCBoYW5kc2hha2VyLmRvX2hh
bmRzaGFrZSkKLQotCi1jbGFzcyBIeUJpMDBWYWxpZGF0ZVN1YnByb3RvY29sVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3RfdmFsaWRhdGVfc3VicHJvdG9jb2woc2VsZik6Ci0g
ICAgICAgICMgc2hvdWxkIHN1Y2NlZWQuCi0gICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCgn
c2FtcGxlJykKLSAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKCdTYW1wbGUnKQotICAgICAg
ICBfdmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZVx4N2Vwcm90b2NvbCcpCi0gICAgICAgIF92
YWxpZGF0ZV9zdWJwcm90b2NvbCgnc2FtcGxlXHgyMHByb3RvY29sJykKLQotICAgICAgICAjIHNo
b3VsZCBmYWlsLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRz
aGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnBy
b3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHgxOXByb3RvY29sJykK
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICdzYW1wbGVceDdmcHJvdG9jb2wnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIF92YWxpZGF0
ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiSmFwYW4iIGluIEph
cGFuZXNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHUnXHU2NWU1XHU2NzJjJykKLQotCi1p
ZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6
c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRp
bC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2h0dHBfaGVhZGVyX3V0aWwucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDQzNmRjNTdjMzczMTA3MWZlMjkwMTkxOWUzM2YyNGMxYjU1OWY2MDUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAK
LSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4K
LSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0j
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMg
Zm9yIGh0dHBfaGVhZGVyX3V0aWwgbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotCi1m
cm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAotCi0KLWNsYXNzIFVu
aXRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBodHRwX2hl
YWRlcl91dGlsIG1vZHVsZS4iIiIKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3JlbGF0aXZlX3VyaShz
ZWxmKToKLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBh
cnNlX3VyaSgnL3dzL3Rlc3QnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGhvc3Qp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcG9ydCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnL3dzL3Rlc3QnLCByZXNvdXJjZSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX2Fic29s
dXRlX3VyaShzZWxmKToKLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRl
cl91dGlsLnBhcnNlX3VyaSgKLSAgICAgICAgICAgICd3czovL2xvY2FsaG9zdDoxMDA4MC93cy90
ZXN0JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnbG9jYWxob3N0JywgaG9zdCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgxMDA4MCwgcG9ydCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnL3dzL3Rlc3QnLCByZXNvdXJjZSkKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9
IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKAotICAgICAgICAgICAgJ3dzOi8vZXhhbXBsZS5j
b20vd3MvdGVzdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2V4YW1wbGUuY29tJywgaG9z
dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4MCwgcG9ydCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnL3dzL3Rlc3QnLCByZXNvdXJjZSkKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNv
dXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKAotICAgICAgICAgICAgJ3dzczovL2V4
YW1wbGUuY29tLycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2V4YW1wbGUuY29tJywgaG9z
dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0NDMsIHBvcnQpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJy8nLCByZXNvdXJjZSkKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9
IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKAotICAgICAgICAgICAgJ3dzOi8vZXhhbXBsZS5j
b206ODA4MCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2V4YW1wbGUuY29tJywgaG9zdCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4MDgwLCBwb3J0KQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCcvJywgcmVzb3VyY2UpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9pbnZhbGlkX3VyaShz
ZWxmKToKLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBh
cnNlX3VyaSgnd3M6Ly8vJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXNvdXJj
ZSkKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFy
c2VfdXJpKCd3czovL2xvY2FsaG9zdDonKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUs
IHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJf
dXRpbC5wYXJzZV91cmkoJ3dzOi8vbG9jYWxob3N0Oi93cycpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgcmVzb3VyY2UpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAg
ICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbWVtb3Jpemlu
Z2ZpbGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmMWI4ZWVmNDMzNzhhOWIw
MDYyNWYyMjBjOTdmZTIyZjc0MGE4ZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwxMDQgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHly
aWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0j
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgbWVtb3JpemluZ2ZpbGUgbW9kdWxlLiIiIgotCi0K
LWltcG9ydCBTdHJpbmdJTwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGgg
ICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1m
cm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbWVtb3JpemluZ2ZpbGUKLQotCi1jbGFzcyBVdGls
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgbWVtb3Jpemlu
Z2ZpbGUgbW9kdWxlLiIiIgotCi0gICAgZGVmIGNoZWNrKHNlbGYsIG1lbW9yaXppbmdfZmlsZSwg
bnVtX3JlYWQsIGV4cGVjdGVkX2xpc3QpOgotICAgICAgICBmb3IgdW51c2VkIGluIHJhbmdlKG51
bV9yZWFkKToKLSAgICAgICAgICAgIG1lbW9yaXppbmdfZmlsZS5yZWFkbGluZSgpCi0gICAgICAg
IGFjdHVhbF9saXN0ID0gbWVtb3JpemluZ19maWxlLmdldF9tZW1vcml6ZWRfbGluZXMoKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihleHBlY3RlZF9saXN0KSwgbGVuKGFjdHVhbF9saXN0
KSkKLSAgICAgICAgZm9yIGV4cGVjdGVkLCBhY3R1YWwgaW4gemlwKGV4cGVjdGVkX2xpc3QsIGFj
dHVhbF9saXN0KToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVh
bCkKLQotICAgIGRlZiBjaGVja193aXRoX3NpemUoc2VsZiwgbWVtb3JpemluZ19maWxlLCByZWFk
X3NpemUsIGV4cGVjdGVkX2xpc3QpOgotICAgICAgICByZWFkX2xpc3QgPSBbXQotICAgICAgICBy
ZWFkX2xpbmUgPSAnJwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgbGluZSA9IG1l
bW9yaXppbmdfZmlsZS5yZWFkbGluZShyZWFkX3NpemUpCi0gICAgICAgICAgICBsaW5lX2xlbmd0
aCA9IGxlbihsaW5lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxpbmVfbGVuZ3RoIDw9
IHJlYWRfc2l6ZSkKLSAgICAgICAgICAgIGlmIGxpbmVfbGVuZ3RoID09IDA6Ci0gICAgICAgICAg
ICAgICAgaWYgcmVhZF9saW5lICE9ICcnOgotICAgICAgICAgICAgICAgICAgICByZWFkX2xpc3Qu
YXBwZW5kKHJlYWRfbGluZSkKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgcmVh
ZF9saW5lICs9IGxpbmUKLSAgICAgICAgICAgIGlmIGxpbmVbbGluZV9sZW5ndGggLSAxXSA9PSAn
XG4nOgotICAgICAgICAgICAgICAgIHJlYWRfbGlzdC5hcHBlbmQocmVhZF9saW5lKQotICAgICAg
ICAgICAgICAgIHJlYWRfbGluZSA9ICcnCi0gICAgICAgIGFjdHVhbF9saXN0ID0gbWVtb3Jpemlu
Z19maWxlLmdldF9tZW1vcml6ZWRfbGluZXMoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihleHBlY3RlZF9saXN0KSwgbGVuKGFjdHVhbF9saXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsZW4oZXhwZWN0ZWRfbGlzdCksIGxlbihyZWFkX2xpc3QpKQotICAgICAgICBmb3IgZXhw
ZWN0ZWQsIGFjdHVhbCwgcmVhZCBpbiB6aXAoZXhwZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX2xpc3QpOgotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgYWN0dWFsKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVhZCkKLQotICAgIGRlZiB0ZXN0X2dldF9tZW1v
cml6ZWRfbGluZXMoc2VsZik6Ci0gICAgICAgIG1lbW9yaXppbmdfZmlsZSA9IG1lbW9yaXppbmdm
aWxlLk1lbW9yaXppbmdGaWxlKFN0cmluZ0lPLlN0cmluZ0lPKAotICAgICAgICAgICAgICAgICdI
ZWxsb1xuV29ybGRcbldlbGNvbWUnKSkKLSAgICAgICAgc2VsZi5jaGVjayhtZW1vcml6aW5nX2Zp
bGUsIDMsIFsnSGVsbG9cbicsICdXb3JsZFxuJywgJ1dlbGNvbWUnXSkKLQotICAgIGRlZiB0ZXN0
X2dldF9tZW1vcml6ZWRfbGluZXNfbGltaXRfbWVtb3JpemVkX2xpbmVzKHNlbGYpOgotICAgICAg
ICBtZW1vcml6aW5nX2ZpbGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJ
Ty5TdHJpbmdJTygKLSAgICAgICAgICAgICAgICAnSGVsbG9cbldvcmxkXG5XZWxjb21lJyksIDIp
Ci0gICAgICAgIHNlbGYuY2hlY2sobWVtb3JpemluZ19maWxlLCAzLCBbJ0hlbGxvXG4nLCAnV29y
bGRcbiddKQotCi0gICAgZGVmIHRlc3RfZ2V0X21lbW9yaXplZF9saW5lc19lbXB0eV9maWxlKHNl
bGYpOgotICAgICAgICBtZW1vcml6aW5nX2ZpbGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5n
RmlsZShTdHJpbmdJTy5TdHJpbmdJTygKLSAgICAgICAgICAgICAgICAnJykpCi0gICAgICAgIHNl
bGYuY2hlY2sobWVtb3JpemluZ19maWxlLCAxMCwgW10pCi0KLSAgICBkZWYgdGVzdF9nZXRfbWVt
b3JpemVkX2xpbmVzX3dpdGhfc2l6ZShzZWxmKToKLSAgICAgICAgZm9yIHNpemUgaW4gcmFuZ2Uo
MSwgMTApOgotICAgICAgICAgICAgbWVtb3JpemluZ19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVt
b3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5nSU8oCi0gICAgICAgICAgICAgICAgJ0hlbGxvXG5X
b3JsZFxuV2VsY29tZScpKQotICAgICAgICAgICAgc2VsZi5jaGVja193aXRoX3NpemUobWVtb3Jp
emluZ19maWxlLCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydIZWxs
b1xuJywgJ1dvcmxkXG4nLCAnV2VsY29tZSddKQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3Rlc3RfbW9jay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21vY2sucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkYzIzYTczZDhmYjFhMDdhZWIzZTVhZTk0MDJjYzg2
YjhmY2MzNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RfbW9jay5weQorKysgL2Rldi9udWxsCkBAIC0xLDE0NSArMCwwIEBACi0j
IS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0j
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0j
IG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZv
ciBtb2NrIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgUXVldWUKLWltcG9ydCB0aHJlYWRpbmcKLWlt
cG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0
byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSB0ZXN0IGltcG9ydCBtb2Nr
Ci0KLQotY2xhc3MgTW9ja0Nvbm5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVu
aXR0ZXN0IGZvciBNb2NrQ29ubiBjbGFzcy4iIiIKLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAg
ICAgICAgc2VsZi5fY29ubiA9IG1vY2suTW9ja0Nvbm4oJ0FCQ1xyXG5ERUZHXHJcblxyXG5ISUpL
JykKLQotICAgIGRlZiB0ZXN0X3JlYWRsaW5lKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdBQkNcclxuJywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdERUZHXHJcbicsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHJcbicsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnSElKSycsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnJywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotCi0gICAgZGVmIHRlc3RfcmVh
ZChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQUJDXHJcbkQnLCBzZWxmLl9jb25u
LnJlYWQoNikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0VGR1xyXG5cclxuSEknLCBzZWxm
Ll9jb25uLnJlYWQoOSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0pLJywgc2VsZi5fY29u
bi5yZWFkKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgc2VsZi5fY29ubi5yZWFk
KDEwKSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfYW5kX3JlYWRsaW5lKHNlbGYpOgotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdBQkNcclxuRCcsIHNlbGYuX2Nvbm4ucmVhZCg2KSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnRUZHXHJcbicsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnXHJcbkhJSksnLCBzZWxmLl9jb25uLnJlYWQoOSkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLQotICAgIGRl
ZiB0ZXN0X3dyaXRlKHNlbGYpOgotICAgICAgICBzZWxmLl9jb25uLndyaXRlKCdIZWxsb1xyXG4n
KQotICAgICAgICBzZWxmLl9jb25uLndyaXRlKCdXb3JsZFxyXG4nKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdIZWxsb1xyXG5Xb3JsZFxyXG4nLCBzZWxmLl9jb25uLndyaXR0ZW5fZGF0YSgp
KQotCi0KLWNsYXNzIE1vY2tCbG9ja2luZ0Nvbm5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAg
ICAiIiJBIHVuaXR0ZXN0IGZvciBNb2NrQmxvY2tpbmdDb25uIGNsYXNzLiIiIgotCi0gICAgZGVm
IHRlc3RfcmVhZChzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCBkYXRhIHB1dCB0byBNb2Nr
QmxvY2tpbmdDb25uIGJ5IHB1dF9ieXRlcyBtZXRob2QgY2FuIGJlCi0gICAgICAgIHJlYWQgZnJv
bSBpdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgY2xhc3MgTGluZVJlYWRlcih0aHJlYWRpbmcu
VGhyZWFkKToKLSAgICAgICAgICAgICIiIkEgdGVzdCBjbGFzcyB0aGF0IGxhdW5jaGVzIGEgdGhy
ZWFkLCBjYWxscyByZWFkbGluZSBvbiB0aGUKLSAgICAgICAgICAgIHNwZWNpZmllZCBjb25uIHJl
cGVhdGVkbHkgYW5kIHB1dHMgdGhlIHJlYWQgZGF0YSB0byB0aGUgc3BlY2lmaWVkCi0gICAgICAg
ICAgICBxdWV1ZS4KLSAgICAgICAgICAgICIiIgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18o
c2VsZiwgY29ubiwgcXVldWUpOgotICAgICAgICAgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19p
bml0X18oc2VsZikKLSAgICAgICAgICAgICAgICBzZWxmLl9xdWV1ZSA9IHF1ZXVlCi0gICAgICAg
ICAgICAgICAgc2VsZi5fY29ubiA9IGNvbm4KLSAgICAgICAgICAgICAgICBzZWxmLnNldERhZW1v
bihUcnVlKQotICAgICAgICAgICAgICAgIHNlbGYuc3RhcnQoKQotCi0gICAgICAgICAgICBkZWYg
cnVuKHNlbGYpOgotICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICAgICAg
ICAgIGRhdGEgPSBzZWxmLl9jb25uLnJlYWRsaW5lKCkKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fcXVldWUucHV0KGRhdGEpCi0KLSAgICAgICAgY29ubiA9IG1vY2suTW9ja0Jsb2NraW5nQ29u
bigpCi0gICAgICAgIHF1ZXVlID0gUXVldWUuUXVldWUoKQotICAgICAgICByZWFkZXIgPSBMaW5l
UmVhZGVyKGNvbm4sIHF1ZXVlKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MocXVldWUuZW1wdHko
KSkKLSAgICAgICAgY29ubi5wdXRfYnl0ZXMoJ0ZvbyBiYXJcclxuJykKLSAgICAgICAgcmVhZCA9
IHF1ZXVlLmdldCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0ZvbyBiYXJcclxuJywgcmVh
ZCkKLQotCi1jbGFzcyBNb2NrVGFibGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJB
IHVuaXR0ZXN0IGZvciBNb2NrVGFibGUgY2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVf
ZnJvbV9kaWN0KHNlbGYpOgotICAgICAgICB0YWJsZSA9IG1vY2suTW9ja1RhYmxlKHsnS2V5Jzog
J1ZhbHVlJ30pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdL
RVknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsna2V5J10pCi0K
LSAgICBkZWYgdGVzdF9jcmVhdGVfZnJvbV9saXN0KHNlbGYpOgotICAgICAgICB0YWJsZSA9IG1v
Y2suTW9ja1RhYmxlKFsoJ0tleScsICdWYWx1ZScpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdW
YWx1ZScsIHRhYmxlWydrZXknXSkKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX3R1cGxlKHNl
bGYpOgotICAgICAgICB0YWJsZSA9IG1vY2suTW9ja1RhYmxlKCgoJ0tleScsICdWYWx1ZScpLCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLRVknKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsna2V5J10pCi0KLSAgICBkZWYg
dGVzdF9zZXRfYW5kX2dldChzZWxmKToKLSAgICAgICAgdGFibGUgPSBtb2NrLk1vY2tUYWJsZSgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdGFibGUuZ2V0KCdLZXknKSkKLSAgICAg
ICAgdGFibGVbJ0tleSddID0gJ1ZhbHVlJwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1
ZScsIHRhYmxlLmdldCgnS2V5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywg
dGFibGUuZ2V0KCdrZXknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJs
ZS5nZXQoJ0tFWScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlWydL
ZXknXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsna2V5J10pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ0tFWSddKQotCi0KLWlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RfbXNndXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjM0NzM1
YzYzMDQ3ZDJlZGIyMzhjYjUyNTVhZDQ3NGEyZTRkMGE4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTM0NyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMg
Q29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBtc2d1dGlsIG1vZHVsZS4iIiIKLWZyb20g
X19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLQotCi1pbXBvcnQgYXJyYXkKLWltcG9y
dCBRdWV1ZQotaW1wb3J0IHJhbmRvbQotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHVuaXR0ZXN0Ci1p
bXBvcnQgemxpYgotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBs
b2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgRGVmbGF0
ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25z
IGltcG9ydCBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBv
cnQgSW52YWxpZFVURjhFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBv
cnQgU3RyZWFtCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhpeGll
NzUKLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZyb20gdGVzdCBpbXBvcnQgbW9jawotCi0K
LSMgV2UgdXNlIG9uZSBmaXhlZCBub25jZSBmb3IgdGVzdGluZyBpbnN0ZWFkIG9mIGNyeXB0b2dy
YXBoaWNhbGx5IHNlY3VyZSBQUk5HLgotX01BU0tJTkdfTk9OQ0UgPSAnQUJDRCcKLQotCi1kZWYg
X21hc2tfaHliaShmcmFtZSk6Ci0gICAgZnJhbWVfa2V5ID0gbWFwKG9yZCwgX01BU0tJTkdfTk9O
Q0UpCi0gICAgZnJhbWVfa2V5X2xlbiA9IGxlbihmcmFtZV9rZXkpCi0gICAgcmVzdWx0ID0gYXJy
YXkuYXJyYXkoJ0InKQotICAgIHJlc3VsdC5mcm9tc3RyaW5nKGZyYW1lKQotICAgIGNvdW50ID0g
MAotICAgIGZvciBpIGluIHhyYW5nZShsZW4ocmVzdWx0KSk6Ci0gICAgICAgIHJlc3VsdFtpXSBe
PSBmcmFtZV9rZXlbY291bnRdCi0gICAgICAgIGNvdW50ID0gKGNvdW50ICsgMSkgJSBmcmFtZV9r
ZXlfbGVuCi0gICAgcmV0dXJuIF9NQVNLSU5HX05PTkNFICsgcmVzdWx0LnRvc3RyaW5nKCkKLQot
Ci1kZWYgX2luc3RhbGxfZXh0ZW5zaW9uX3Byb2Nlc3Nvcihwcm9jZXNzb3IsIHJlcXVlc3QsIHN0
cmVhbV9vcHRpb25zKToKLSAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jl
c3BvbnNlKCkKLSAgICBpZiByZXNwb25zZSBpcyBub3QgTm9uZToKLSAgICAgICAgcHJvY2Vzc29y
LnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb25zKQotICAgICAgICByZXF1ZXN0Lndz
X2V4dGVuc2lvbl9wcm9jZXNzb3JzLmFwcGVuZChwcm9jZXNzb3IpCi0KLQotZGVmIF9jcmVhdGVf
cmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgIHJlYWRfZGF0YSwKLSAgICAgICAgZGVmbGF0
ZV9mcmFtZV9yZXF1ZXN0PU5vbmUsCi0gICAgICAgIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0
PU5vbmUpOgotICAgIHJlcSA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tD
b25uKCcnLmpvaW4ocmVhZF9kYXRhKSkpCi0gICAgcmVxLndzX3ZlcnNpb24gPSBjb21tb24uVkVS
U0lPTl9IWUJJX0xBVEVTVAotICAgIHJlcS53c19leHRlbnNpb25fcHJvY2Vzc29ycyA9IFtdCi0K
LSAgICBwcm9jZXNzb3IgPSBOb25lCi0gICAgaWYgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0IGlzIG5v
dCBOb25lOgotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNz
b3IoZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0KQotICAgIGVsaWYgcGVybWVzc2FnZV9kZWZsYXRlX3Jl
cXVlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgIHByb2Nlc3NvciA9IFBlck1lc3NhZ2VEZWZsYXRl
RXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIHBlcm1lc3NhZ2VfZGVmbGF0ZV9y
ZXF1ZXN0KQotCi0gICAgc3RyZWFtX29wdGlvbnMgPSBTdHJlYW1PcHRpb25zKCkKLSAgICBpZiBw
cm9jZXNzb3IgaXMgbm90IE5vbmU6Ci0gICAgICAgIF9pbnN0YWxsX2V4dGVuc2lvbl9wcm9jZXNz
b3IocHJvY2Vzc29yLCByZXEsIHN0cmVhbV9vcHRpb25zKQotICAgIHJlcS53c19zdHJlYW0gPSBT
dHJlYW0ocmVxLCBzdHJlYW1fb3B0aW9ucykKLQotICAgIHJldHVybiByZXEKLQotCi1kZWYgX2Ny
ZWF0ZV9yZXF1ZXN0KCpmcmFtZXMpOgotICAgICIiIkNyZWF0ZXMgTW9ja1JlcXVlc3QgdXNpbmcg
ZGF0YSBnaXZlbiBhcyBmcmFtZXMuCi0KLSAgICBmcmFtZXMgd2lsbCBiZSByZXR1cm5lZCBvbiBj
YWxsaW5nIHJlcXVlc3QuY29ubmVjdGlvbi5yZWFkKCkgd2hlcmUgcmVxdWVzdAotICAgIGlzIE1v
Y2tSZXF1ZXN0IHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24uCi0gICAgIiIiCi0KLSAgICByZWFk
X2RhdGEgPSBbXQotICAgIGZvciAoaGVhZGVyLCBib2R5KSBpbiBmcmFtZXM6Ci0gICAgICAgIHJl
YWRfZGF0YS5hcHBlbmQoaGVhZGVyICsgX21hc2tfaHliaShib2R5KSkKLQotICAgIHJldHVybiBf
Y3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKHJlYWRfZGF0YSkKLQotCi1kZWYgX2NyZWF0ZV9i
bG9ja2luZ19yZXF1ZXN0KCk6Ci0gICAgIiIiQ3JlYXRlcyBNb2NrUmVxdWVzdC4KLQotICAgIERh
dGEgd3JpdHRlbiB0byBhIE1vY2tSZXF1ZXN0IGNhbiBiZSByZWFkIG91dCBieSBjYWxsaW5nCi0g
ICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpLgotICAgICIiIgotCi0gICAgcmVx
ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Jsb2NraW5nQ29ubigpKQot
ICAgIHJlcS53c192ZXJzaW9uID0gY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QKLSAgICBzdHJl
YW1fb3B0aW9ucyA9IFN0cmVhbU9wdGlvbnMoKQotICAgIHJlcS53c19zdHJlYW0gPSBTdHJlYW0o
cmVxLCBzdHJlYW1fb3B0aW9ucykKLSAgICByZXR1cm4gcmVxCi0KLQotZGVmIF9jcmVhdGVfcmVx
dWVzdF9oaXhpZTc1KHJlYWRfZGF0YT0nJyk6Ci0gICAgcmVxID0gbW9jay5Nb2NrUmVxdWVzdChj
b25uZWN0aW9uPW1vY2suTW9ja0Nvbm4ocmVhZF9kYXRhKSkKLSAgICByZXEud3Nfc3RyZWFtID0g
U3RyZWFtSGl4aWU3NShyZXEpCi0gICAgcmV0dXJuIHJlcQotCi0KLWRlZiBfY3JlYXRlX2Jsb2Nr
aW5nX3JlcXVlc3RfaGl4aWU3NSgpOgotICAgIHJlcSA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVj
dGlvbj1tb2NrLk1vY2tCbG9ja2luZ0Nvbm4oKSkKLSAgICByZXEud3Nfc3RyZWFtID0gU3RyZWFt
SGl4aWU3NShyZXEpCi0gICAgcmV0dXJuIHJlcQotCi0KLWNsYXNzIEJhc2ljTWVzc2FnZVRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkJhc2ljIHRlc3RzIGZvciBTdHJlYW0uIiIiCi0K
LSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVs
bG8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHgwNUhlbGxvJywgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgICAgIHBheWxvYWQgPSAnYScgKiAxMjUK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2Vu
ZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4
ODFceDdkJyArIHBheWxvYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZWRpdW1fbWVzc2Fn
ZShzZWxmKToKLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqIDEyNgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwg
cGF5bG9hZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4N2VceDAwXHg3ZScgKyBw
YXlsb2FkLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0
dGVuX2RhdGEoKSkKLQotICAgICAgICBwYXlsb2FkID0gJ2EnICogKCgxIDw8IDE2KSAtIDEpCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRf
bWVzc2FnZShyZXF1ZXN0LCBwYXlsb2FkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgx
XHg3ZVx4ZmZceGZmJyArIHBheWxvYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9sYXJnZV9t
ZXNzYWdlKHNlbGYpOgotICAgICAgICBwYXlsb2FkID0gJ2EnICogKDEgPDwgMTYpCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2Fn
ZShyZXF1ZXN0LCBwYXlsb2FkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHg3Zlx4
MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDBceDAwJyArIHBheWxvYWQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVm
IHRlc3Rfc2VuZF9tZXNzYWdlX3VuaWNvZGUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCB1J1x1
NjVlNScpCi0gICAgICAgICMgVSs2NWU1IGlzIGVuY29kZWQgYXMgZTYsOTcsYTUgaW4gVVRGLTgK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4MDNceGU2XHg5N1x4YTUnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQot
ICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVudHMoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1
ZXN0LCAnSGVsbG8nLCBGYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVz
dCwgJyAnLCBGYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dv
cmxkJywgRmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICchJywg
VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMVx4MDVIZWxsb1x4MDBceDAxIFx4
MDBceDA1V29ybGRceDgwXHgwMSEnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRz
X2ltbWVkaWF0ZV96ZXJvX3Rlcm1pbmF0aW9uKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hl
bGxvIFdvcmxkIScsIEZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0
LCAnJywgVHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMVx4MGNIZWxsbyBXb3Js
ZCFceDgwXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDgxXHg4
NScsICdIZWxsbycpLCAoJ1x4ODFceDg2JywgJ1dvcmxkIScpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KSkKLQotICAgICAgICBwYXlsb2FkID0gJ2EnICogMTI1Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QoKCdceDgxXHhmZCcsIHBheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAg
ZGVmIHRlc3RfcmVjZWl2ZV9tZWRpdW1fbWVzc2FnZShzZWxmKToKLSAgICAgICAgcGF5bG9hZCA9
ICdhJyAqIDEyNgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ZmVc
eDAwXHg3ZScsIHBheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1z
Z3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHBheWxvYWQgPSAnYScg
KiAoKDEgPDwgMTYpIC0gMSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4
ODFceGZlXHhmZlx4ZmYnLCBwYXlsb2FkKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXls
b2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3Jl
Y2VpdmVfbGFyZ2VfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqICgxIDw8
IDE2KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdc
eDgxXHhmZlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDBceDAwJywgcGF5bG9hZCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVx
dWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2xlbmd0aF9ub3RfZW5jb2RlZF91c2luZ19t
aW5pbWFsX251bWJlcl9vZl9ieXRlcyhzZWxmKToKLSAgICAgICAgIyBMb2cgd2FybmluZyBvbiBy
ZWNlaXZpbmcgYmFkIHBheWxvYWQgbGVuZ3RoIGZpZWxkIHRoYXQgZG9lc24ndCB1c2UKLSAgICAg
ICAgIyBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBidXQgY29udGludWUgcHJvY2Vzc2luZy4KLQot
ICAgICAgICBwYXlsb2FkID0gJ2EnCi0gICAgICAgICMgMSBieXRlIGNhbiBiZSByZXByZXNlbnRl
ZCB3aXRob3V0IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoIGZpZWxkLgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDgxXHhmZlx4MDBceDAwXHgwMFx4
MDBceDAwXHgwMFx4MDBceDAxJywgcGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVz
dF9yZWNlaXZlX21lc3NhZ2VfdW5pY29kZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdCgoJ1x4ODFceDgzJywgJ1x4ZTZceDljXHhhYycpKQotICAgICAgICAjIFUrNjcy
YyBpcyBlbmNvZGVkIGFzIGU2LDljLGFjIGluIFVURi04Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodSdcdTY3MmMnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRl
ZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9lcnJvbmVvdXNfdW5pY29kZShzZWxmKToKLSAgICAgICAg
IyBceDgwIGFuZCBceDgxIGFyZSBpbnZhbGlkIGFzIFVURi04LgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ODInLCAnXHg4MFx4ODEnKSkKLSAgICAgICAgIyBJbnZh
bGlkIGNoYXJhY3RlcnMgc2hvdWxkIHJhaXNlIEludmFsaWRVVEY4RXhjZXB0aW9uCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRVVEY4RXhjZXB0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRzKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDAxXHg4
NScsICdIZWxsbycpLAotICAgICAgICAgICAgKCdceDAwXHg4MScsICcgJyksCi0gICAgICAgICAg
ICAoJ1x4MDBceDg1JywgJ1dvcmxkJyksCi0gICAgICAgICAgICAoJ1x4ODBceDgxJywgJyEnKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8gV29ybGQhJywgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c191bmlj
b2RlKHNlbGYpOgotICAgICAgICAjIFVURi04IGVuY29kZXMgVSs2ZjIyIGludG8gZTZiY2EyIGFu
ZCBVKzViNTcgaW50byBlNWFkOTcuCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
Ci0gICAgICAgICAgICAoJ1x4MDFceDgyJywgJ1x4ZTZceGJjJyksCi0gICAgICAgICAgICAoJ1x4
MDBceDgyJywgJ1x4YTJceGU1JyksCi0gICAgICAgICAgICAoJ1x4ODBceDgyJywgJ1x4YWRceDk3
JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodSdcdTZmMjJcdTViNTcnLCBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRz
X2ltbWVkaWF0ZV96ZXJvX3Rlcm1pbmF0aW9uKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDAxXHg4YycsICdIZWxsbyBXb3JsZCEnKSwg
KCdceDgwXHg4MCcsICcnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8gV29ybGQh
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX2ZyYWdtZW50c19kdXBsaWNhdGVfc3RhcnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4MDFceDg1JywgJ0hlbGxvJyksICgnXHgw
MVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZh
bGlkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAg
ZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfaW50ZXJtZWRpYXRlX2J1dF9ub3Rfc3RhcnRlZChz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4MDBceDg1JywgJ0hl
bGxvJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhj
ZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3Jl
Y2VpdmVfZnJhZ21lbnRzX2VuZF9idXRfbm90X3N0YXJ0ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgwXHg4NScsICdIZWxsbycpKQotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfZGlzY2Fy
ZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAg
ICgnXHg4Zlx4ODYnLCAnSUdOT1JFJyksICgnXHg4MVx4ODUnLCAnSGVsbG8nKSwKLSAgICAgICAg
ICAgICgnXHg4Zlx4ODknLCAnRElTUkVHQVJEJyksICgnXHg4MVx4ODYnLCAnV29ybGQhJykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlv
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsIHJl
cXVlc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuVW5z
dXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRp
bC5yZWNlaXZlX21lc3NhZ2UsIHJlcXVlc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dv
cmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3Rf
cmVjZWl2ZV9jbG9zZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgK
LSAgICAgICAgICAgICgnXHg4OFx4OGEnLCBzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29k
IGJ5ZScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwMDAsIHJlcXVlc3Qu
d3NfY2xvc2VfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnR29vZCBieWUnLCByZXF1
ZXN0LndzX2Nsb3NlX3JlYXNvbikKLQotICAgIGRlZiB0ZXN0X3NlbmRfbG9uZ2VzdF9jbG9zZShz
ZWxmKToKLSAgICAgICAgcmVhc29uID0gJ2EnICogMTIzCi0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODhceGZkJywKLSAgICAgICAgICAgICBzdHJ1
Y3QucGFjaygnIUgnLCBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFKSArIHJlYXNvbikpCi0g
ICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oY29tbW9uLlNUQVRVU19O
T1JNQUxfQ0xPU1VSRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWFzb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxdWVzdC53c19jbG9zZV9jb2Rl
LCBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJlcXVlc3Qud3NfY2xvc2VfcmVhc29uLCByZWFzb24pCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Ns
b3NlX3Rvb19sb25nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkK
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRpb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbS5jbG9zZV9jb25uZWN0aW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ2EnICogMTI0KQotCi0gICAgZGVmIHRlc3Rfc2VuZF9jbG9zZV9pbmNvbnNp
c3RlbnRfY29kZV9hbmRfcmVhc29uKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KCkKLSAgICAgICAgIyByZWFzb24gcGFyYW1ldGVyIG11c3Qgbm90IGJlIHNwZWNpZmll
ZCB3aGVuIGNvZGUgaXMgTm9uZS4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5C
YWRPcGVyYXRpb25FeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbS5j
bG9zZV9jb25uZWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX3N0
cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2EnKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9waW5nKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX3BpbmcocmVx
dWVzdCwgJ0hlbGxvIFdvcmxkIScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODlceDBj
SGVsbG8gV29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2xvbmdlc3RfcGluZyhzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwu
c2VuZF9waW5nKHJlcXVlc3QsICdhJyAqIDEyNSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHg4OVx4N2QnICsgJ2EnICogMTI1LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfcGluZ190b29f
bG9uZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnNlbmRfcGluZywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ2EnICogMTI2KQot
Ci0gICAgZGVmIHRlc3RfcmVjZWl2ZV9waW5nKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyByZWNl
aXZpbmcgYSBwaW5nIGNvbnRyb2wgZnJhbWUuIiIiCi0KLSAgICAgICAgZGVmIGhhbmRsZXIocmVx
dWVzdCwgbWVzc2FnZSk6Ci0gICAgICAgICAgICByZXF1ZXN0LmNhbGxlZCA9IFRydWUKLQotICAg
ICAgICAjIFN0cmVhbSBhdXRvbWF0aWNhbGx5IHJlc3BvbmQgdG8gcGluZyB3aXRoIHBvbmcgd2l0
aG91dCBhbnkgYWN0aW9uCi0gICAgICAgICMgYnkgYXBwbGljYXRpb24gbGF5ZXIuCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODlceDg1JywgJ0hl
bGxvJyksICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
V29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHg4YVx4MDVIZWxsbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODlceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4
ODUnLCAnV29ybGQnKSkKLSAgICAgICAgcmVxdWVzdC5vbl9waW5nX2hhbmRsZXIgPSBoYW5kbGVy
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3Nh
Z2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0LmNhbGxlZCkKLQot
ICAgIGRlZiB0ZXN0X3JlY2VpdmVfbG9uZ2VzdF9waW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDg5XHhmZCcsICdhJyAqIDEyNSks
ICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQn
LCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnXHg4YVx4N2QnICsgJ2EnICogMTI1LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVf
cGluZ190b29fbG9uZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgo
J1x4ODlceGZlXHgwMFx4N2UnLCAnYScgKiAxMjYpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3QpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX3Bvbmcoc2VsZik6Ci0gICAgICAgICIiIlRl
c3RzIHJlY2VpdmluZyBhIHBvbmcgY29udHJvbCBmcmFtZS4iIiIKLQotICAgICAgICBkZWYgaGFu
ZGxlcihyZXF1ZXN0LCBtZXNzYWdlKToKLSAgICAgICAgICAgIHJlcXVlc3QuY2FsbGVkID0gVHJ1
ZQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4
OGFceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAgcmVxdWVz
dC5vbl9wb25nX2hhbmRsZXIgPSBoYW5kbGVyCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nKHJl
cXVlc3QsICdIZWxsbycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODlceDA1SGVsbG8n
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLSAgICAgICAgIyBWYWxpZCBwb25nIGlzIHJlY2VpdmVkLCBidXQgcmVjZWl2ZV9tZXNz
YWdlIHdvbid0IHJldHVybiBmb3IgaXQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxk
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgICMgQ2hlY2sgdGhh
dCBub3RoaW5nIHdhcyB3cml0dGVuIGFmdGVyIHJlY2VpdmVfbWVzc2FnZSBjYWxsLgotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHgwNUhlbGxvJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHJlcXVlc3QuY2FsbGVkKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV91bnNvbGlj
aXRlZF9wb25nKHNlbGYpOgotICAgICAgICAjIFVuc29saWNpdGVkIHBvbmcgaXMgYWxsb3dlZCBm
cm9tIEh5QmkgMDcuCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAg
ICAgICAoJ1x4OGFceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAgICAg
ICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkKLQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDhhXHg4NScsICdIZWxsbycpLCAoJ1x4
ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nKHJlcXVlc3QsICdK
dW1ibycpCi0gICAgICAgICMgQm9keSBtaXNtYXRjaC4KLSAgICAgICAgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3BpbmdfY2Fubm90X2JlX2ZyYWdtZW50
ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDA5XHg4NScs
ICdIZWxsbycpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFt
ZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21l
c3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVz
dF9waW5nX3dpdGhfdG9vX2xvbmdfcGF5bG9hZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdCgoJ1x4ODlceGZlXHgwMVx4MDAnLCAnYScgKiAyNTYpKQotICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QpCi0KLQotY2xhc3MgRGVmbGF0ZUZyYW1lVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgZm9yIGNoZWNraW5nIGRlZmxhdGUtZnJhbWUgZXh0
ZW5zaW9uLiIiIgotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBj
b21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9D
T01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGV4
dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVf
RVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0
YSgKLSAgICAgICAgICAgICcnLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAg
ICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnKQotCi0gICAgICAgIGV4cGVjdGVkID0g
JycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxv
JykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lO
Q19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00
XQotICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQot
ICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0KLSAgICAgICAgY29tcHJlc3Nl
ZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRf
d29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXBy
ZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0g
J1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29t
cHJlc3NlZF93b3JsZAotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2Fn
ZV9iZmluYWwoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICcnLCBkZWZsYXRlX2Zy
YW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4o
cmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIGRlZmxhdGVfZnJhbWVf
cHJvY2Vzc29yID0gcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXQotICAgICAgICBk
ZWZsYXRlX2ZyYW1lX3Byb2Nlc3Nvci5zZXRfYmZpbmFsKFRydWUpCi0gICAgICAgIG1zZ3V0aWwu
c2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNz
YWdlKHJlcXVlc3QsICdXb3JsZCcpCi0KLSAgICAgICAgZXhwZWN0ZWQgPSAnJwotCi0gICAgICAg
IGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxU
X0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21w
cmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvICsgY2hyKDApCi0gICAgICAgIGV4cGVj
dGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVk
ICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3Nv
YmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRF
RCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3Mu
Y29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5m
bHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3Nl
ZF93b3JsZCArIGNocigwKQotICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21w
cmVzc2VkX3dvcmxkKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX3dvcmxkCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2NvbXBfYml0KHNlbGYpOgot
ICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpf
REVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0g
ICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxB
VEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zy
b21fcmF3ZGF0YSgKLSAgICAgICAgICAgICcnLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5z
aW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4ocmVxdWVzdC53c19leHRlbnNp
b25fcHJvY2Vzc29ycykpCi0gICAgICAgIGRlZmxhdGVfZnJhbWVfcHJvY2Vzc29yID0gcmVxdWVz
dC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2Fn
ZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3Nvci5kaXNh
YmxlX291dGdvaW5nX2NvbXByZXNzaW9uKCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2Uo
cmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3IuZW5hYmxl
X291dGdvaW5nX2NvbXByZXNzaW9uKCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVx
dWVzdCwgJ0hlbGxvJykKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQg
Kz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0g
Y29tcHJlc3NlZF9oZWxsbwotCi0gICAgICAgIGV4cGVjdGVkICs9ICdceDgxXHgwNUhlbGxvJwot
Ci0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxv
JykKLSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5a
X1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvID0gY29tcHJlc3NlZF8y
bmRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVz
c2VkXzJuZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF8ybmRfaGVsbG8K
LQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Vfbm9fY29udGV4dF90
YWtlb3Zlcl9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVz
c29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxB
VEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIGV4
dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAn
JywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgZm9yIGkgaW4geHJh
bmdlKDMpOgotICAgICAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxv
JykKLQotICAgICAgICBjb21wcmVzc2VkX21lc3NhZ2UgPSBjb21wcmVzcy5jb21wcmVzcygnSGVs
bG8nKQotICAgICAgICBjb21wcmVzc2VkX21lc3NhZ2UgKz0gY29tcHJlc3MuZmx1c2goemxpYi5a
X1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfbWVzc2FnZSA9IGNvbXByZXNzZWRfbWVz
c2FnZVs6LTRdCi0gICAgICAgIGV4cGVjdGVkID0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9t
ZXNzYWdlKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX21lc3NhZ2UKLQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgZXhwZWN0ZWQgKyBleHBlY3RlZCArIGV4
cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVz
dF9iYWRfcmVxdWVzdF9wYXJhbWV0ZXJzKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IGlm
IHRoZXJlJ3MgYW55dGhpbmcgd3Jvbmcgd2l0aCBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbgotICAg
ICAgICByZXF1ZXN0LCBkZWZsYXRlLWZyYW1lIGlzIHJlamVjdGVkLgotICAgICAgICAiIiIKLQot
ICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgIyBtYXhfd2luZG93X2JpdHMgbGVzcyB0aGFu
IDggaXMgaWxsZWdhbC4KLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5k
b3dfYml0cycsICc3JykKLSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9u
UHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwcm9j
ZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQot
ICAgICAgICAjIG1heF93aW5kb3dfYml0cyBncmVhdGVyIHRoYW4gMTUgaXMgaWxsZWdhbC4KLSAg
ICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsICcxNicpCi0g
ICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNp
b24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNp
b25fcmVzcG9uc2UoKSkKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgIyBOb24gaW50
ZWdlciBtYXhfd2luZG93X2JpdHMgaXMgaWxsZWdhbC4KLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9w
YXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsICdmb29iYXInKQotICAgICAgICBwcm9jZXNzb3Ig
PSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0K
LSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVG
TEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgICMgbm9fY29udGV4dF90YWtlb3ZlciBtdXN0
IG5vdCBoYXZlIGFueSB2YWx1ZS4KLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ25v
X2NvbnRleHRfdGFrZW92ZXInLCAnZm9vYmFyJykKLSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0
ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChOb25lLCBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVm
IHRlc3RfcmVzcG9uc2VfcGFyYW1ldGVycyhzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0g
ICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNp
b24pCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfcmVzcG9uc2Vfd2luZG93X2JpdHMoOCkKLSAgICAg
ICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5oYXNfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMn
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnOCcsIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJf
dmFsdWUoJ21heF93aW5kb3dfYml0cycpKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAg
ICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQot
ICAgICAgICBwcm9jZXNzb3Iuc2V0X3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIoVHJ1ZSkK
LSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5oYXNfcGFyYW1ldGVyKCdub19jb250ZXh0
X3Rha2VvdmVyJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKLSAgICAgICAgICAgIHJlc3Bv
bnNlLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ25vX2NvbnRleHRfdGFrZW92ZXInKSBpcyBOb25lKQot
Ci0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9
IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lP
TiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGRhdGEgPSAnJwot
Ci0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQot
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZM
VVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0g
ICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4MCkK
LSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG8pCi0KLSAgICAgICAg
Y29tcHJlc3NlZF93ZWJzb2NrZXQgPSBjb21wcmVzcy5jb21wcmVzcygnV2ViU29ja2V0JykKLSAg
ICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklT
SCkKLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgKz0gJ1x4MDAnCi0gICAgICAgIGRhdGEg
Kz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfd2Vic29ja2V0KSB8IDB4ODApCi0gICAgICAg
IGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3dlYnNvY2tldCkKLQotICAgICAgICBjb21w
cmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01Q
UkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGNvbXBy
ZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVz
c2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBj
b21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRdCi0gICAgICAgIGRhdGEgKz0g
J1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfd29ybGQpIHwgMHg4MCkKLSAgICAgICAgZGF0YSAr
PSBfbWFza19oeWJpKGNvbXByZXNzZWRfd29ybGQpCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQot
ICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcs
IDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBk
ZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdXZWJTb2NrZXQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVz
c2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdl
X2NsaWVudF91c2luZ19zbWFsbGVyX3dpbmRvdyhzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0
IGZyYW1lcyBjb21pbmcgZnJvbSBhIGNsaWVudCB3aGljaCBpcyB1c2luZyBzbWFsbGVyIHdpbmRv
dwotICAgICAgICBzaXplIHRoYXQgdGhlIHNlcnZlciBhcmUgY29ycmVjdGx5IHJlY2VpdmVkLgot
ICAgICAgICAiIiIKLQotICAgICAgICAjIFVzaW5nIHRoZSBzbWFsbGVzdCB3aW5kb3cgYml0cyBv
ZiA4IGZvciBnZW5lcmF0aW5nIGlucHV0IGZyYW1lcy4KLSAgICAgICAgY29tcHJlc3MgPSB6bGli
LmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHps
aWIuREVGTEFURUQsIC04KQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgICMgVXNlIGEg
ZnJhbWUgd2hvc2UgY29udGVudCBpcyBiaWdnZXIgdGhhbiB0aGUgY2xpZW50cycgREVGTEFURSB3
aW5kb3cKLSAgICAgICAgIyBzaXplIGJlZm9yZSBjb21wcmVzc2lvbi4gVGhlIGNvbnRlbnQgbWFp
bmx5IGNvbnNpc3RzIG9mICdhJyBidXQKLSAgICAgICAgIyByZXBldGl0aW9uIG9mICdiJyBpcyBw
dXQgYXQgdGhlIGhlYWQgYW5kIHRhaWwgc28gdGhhdCBpZiB0aGUgd2luZG93Ci0gICAgICAgICMg
c2l6ZSBpcyBiaWcsIHRoZSBoZWFkIGlzIGJhY2stcmVmZXJlbmNlZCBidXQgaWYgc21hbGwsIG5v
dC4KLSAgICAgICAgcGF5bG9hZCA9ICdiJyAqIDY0ICsgJ2EnICogMTAyNCArICdiJyAqIDY0Ci0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcyhwYXlsb2FkKQotICAg
ICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNI
KQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAg
ICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAg
ICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgIyBD
bG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVj
dC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNpb24gPSBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAg
ICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Uo
cmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfY29tcF9iaXQoc2VsZik6
Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIu
Wl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0K
LSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNz
LmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21w
cmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJl
c3NlZF9oZWxsbykgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3Nl
ZF9oZWxsbykKLQotICAgICAgICBkYXRhICs9ICdceDgxXHg4NScgKyBfbWFza19oeWJpKCdIZWxs
bycpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAg
emxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklU
UykKLQotICAgICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdI
ZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyA9IGNvbXByZXNz
ZWRfMm5kX2hlbGxvWzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJl
c3NlZF8ybmRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXBy
ZXNzZWRfMm5kX2hlbGxvKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25Q
YXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRhdGEsIGRlZmxh
dGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIGZvciBpIGluIHhyYW5nZSgzKToK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21l
c3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfdmFyaW91c19i
dHlwZShzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAg
ICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1B
WF9XQklUUykKLQotICAgICAgICBkYXRhID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyAr
PSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9o
ZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUg
KGxlbihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHli
aShjb21wcmVzc2VkX2hlbGxvKQotCi0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ID0gY29t
cHJlc3MuY29tcHJlc3MoJ1dlYlNvY2tldCcpCi0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd2Vi
c29ja2V0ICs9ICdceDAwJwotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVz
c2VkX3dlYnNvY2tldCkgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJl
c3NlZF93ZWJzb2NrZXQpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAot
ICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16
bGliLk1BWF9XQklUUykKLQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29t
cHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVz
aCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNz
ZWRfd29ybGRbOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2Vk
X3dvcmxkKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3dv
cmxkKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEn
ICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFU
RV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJv
bV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVu
c2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVf
bWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV2ViU29ja2V0Jywg
bXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkK
LQotCi1jbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAg
ICIiIlRlc3RzIGZvciBwZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9uLiIiIgotCi0gICAgZGVm
IHRlc3RfcmVzcG9uc2VfcGFyYW1ldGVycyhzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RF
RkxBVEVfRVhURU5TSU9OKQotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignc2VydmVy
X25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKQotICAgICAgICBwcm9jZXNzb3IgPSBQZXJNZXNz
YWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHJlc3BvbnNl
ID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoCi0gICAgICAgICAgICByZXNwb25zZS5oYXNfcGFyYW1ldGVyKCdzZXJ2ZXJfbm9fY29u
dGV4dF90YWtlb3ZlcicpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
Tm9uZSwgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92YWx1ZSgnc2VydmVyX25vX2NvbnRleHRfdGFr
ZW92ZXInKSkKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KAotICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAg
ICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdjbGllbnRfbWF4X3dpbmRvd19iaXRzJywgTm9u
ZSkKLSAgICAgICAgcHJvY2Vzc29yID0gUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNz
b3IoZXh0ZW5zaW9uKQotCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfY2xpZW50X21heF93aW5kb3df
Yml0cyg4KQotICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVy
KFRydWUpCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9u
c2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgJzgnLCByZXNwb25z
ZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdjbGllbnRfbWF4X3dpbmRvd19iaXRzJykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZSgKLSAgICAgICAgICAgIHJlc3BvbnNlLmhhc19wYXJhbWV0ZXIoJ2Ns
aWVudF9ub19jb250ZXh0X3Rha2VvdmVyJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICBOb25lLAotICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92YWx1
ZSgnY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXInKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVz
c2FnZShzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRl
cigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAg
ICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLQotICAgICAgICBjb21w
cmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRf
Q09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29t
cHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0
ZWQgPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCAr
PSBjb21wcmVzc2VkX2hlbGxvCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZW1w
dHlfbWVzc2FnZShzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0IGFuIGVtcHR5IG1lc3NhZ2Ug
aXMgY29tcHJlc3NlZCBjb3JyZWN0bHkuIiIiCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9E
RUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9t
X3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0
PWV4dGVuc2lvbikKLQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnJykK
LQotICAgICAgICAjIFBheWxvYWQgaW4gYmluYXJ5OiAwYjAwMDAwMDAwCi0gICAgICAgICMgRnJv
bSBMU0IsCi0gICAgICAgICMgLSAxIGJpdCBvZiBCRklOQUwgKDApCi0gICAgICAgICMgLSAyIGJp
dHMgb2YgQlRZUEUgKG5vIGNvbXByZXNzaW9uKQotICAgICAgICAjIC0gNSBiaXRzIG9mIHBhZGRp
bmcKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhjMVx4MDFceDAwJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBk
ZWYgdGVzdF9zZW5kX21lc3NhZ2Vfd2l0aF9udWxsX2NoYXJhY3RlcihzZWxmKToKLSAgICAgICAg
IiIiVGVzdCB0aGF0IGEgc2ltcGxlIHBheWxvYWQgKG9uZSBudWxsKSBpcyBmcmFtZWQgY29ycmVj
dGx5LiIiIgotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
Ci0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAg
ICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0KLSAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1x4MDAnKQotCi0gICAgICAgICMgUGF5
bG9hZCBpbiBiaW5hcnk6IDBiMDExMDAwMTAgMGIwMDAwMDAwMCAwYjAwMDAwMDAwCi0gICAgICAg
ICMgRnJvbSBMU0IsCi0gICAgICAgICMgLSAxIGJpdCBvZiBCRklOQUwgKDApCi0gICAgICAgICMg
LSAyIGJpdHMgb2YgQlRZUEUgKDAxIHRoYXQgbWVhbnMgZml4ZWQgSHVmZm1hbikKLSAgICAgICAg
IyAtIDggYml0cyBvZiB0aGUgZmlyc3QgY29kZSAoMDAxMTAwMDAgdGhhdCBpcyB0aGUgY29kZSBm
b3IgdGhlIGxpdGVyYWwKLSAgICAgICAgIyAgIGFscGhhYmV0IDB4MDApCi0gICAgICAgICMgLSA3
IGJpdHMgb2YgdGhlIHNlY29uZCBjb2RlICgwMDAwMDAwIHRoYXQgaXMgdGhlIGNvZGUgZm9yIHRo
ZQotICAgICAgICAjICAgZW5kLW9mLWJsb2NrKQotICAgICAgICAjIC0gMSBiaXQgb2YgQkZJTkFM
ICgwKQotICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBFIChubyBjb21wcmVzc2lvbikKLSAgICAg
ICAgIyAtIDIgYml0cyBvZiBwYWRkaW5nCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YzFc
eDAzXHg2Mlx4MDBceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX3R3b19tZXNzYWdlcyhz
ZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAg
ICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAg
ICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgbXNndXRpbC5zZW5k
X21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29t
cHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHps
aWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0K
LSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxV
U0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAg
ICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAg
ICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotCi0gICAgICAgIGNvbXByZXNzZWRfd29y
bGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxk
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2Vk
X3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMx
JWMnICUgbGVuKGNvbXByZXNzZWRfd29ybGQpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNz
ZWRfd29ybGQKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJh
Z21lbnRlZChzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lP
TikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAg
ICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAg
ICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgZW5kPUZhbHNlKQot
ICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnR29vZGJ5ZScsIGVuZD1GYWxz
ZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJykKLQotICAg
ICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5a
X0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gp
Ci0gICAgICAgIGV4cGVjdGVkID0gJ1x4NDElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAg
ICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotICAgICAgICBjb21wcmVzc2VkX2dv
b2RieWUgPSBjb21wcmVzcy5jb21wcmVzcygnR29vZGJ5ZScpCi0gICAgICAgIGNvbXByZXNzZWRf
Z29vZGJ5ZSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgZXhw
ZWN0ZWQgKz0gJ1x4MDAlYycgJSBsZW4oY29tcHJlc3NlZF9nb29kYnllKQotICAgICAgICBleHBl
Y3RlZCArPSBjb21wcmVzc2VkX2dvb2RieWUKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNv
bXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29t
cHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQg
PSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBs
ZW4oY29tcHJlc3NlZF93b3JsZCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3Js
ZAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZF9l
bXB0eV9maXJzdF9mcmFtZShzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRF
X0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2Rh
dGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVu
c2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycsIGVuZD1GYWxz
ZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLQotICAg
ICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5a
X0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCcnKQotICAgICAgICBj
b21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAg
ICAgICBleHBlY3RlZCA9ICdceDQxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAg
IGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9
IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfZW1wdHkgKz0g
Y29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfZW1w
dHkgPSBjb21wcmVzc2VkX2VtcHR5WzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycg
JSBsZW4oY29tcHJlc3NlZF9lbXB0eSkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9l
bXB0eQotICAgICAgICBwcmludCgnJXInICUgZXhwZWN0ZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
IGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVudGVkX2VtcHR5X2xhc3RfZnJhbWUoc2VsZik6
Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAg
ICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcn
LCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0aWwu
c2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1GYWxzZSkKLSAgICAgICAgbXNndXRp
bC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNv
bXByZXNzb2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6
bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8g
PSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9
IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBleHBlY3RlZCA9ICdc
eDQxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXBy
ZXNzZWRfaGVsbG8KLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9IGNvbXByZXNzLmNvbXByZXNz
KCcnKQotICAgICAgICBjb21wcmVzc2VkX2VtcHR5ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3NlZF9lbXB0eVs6
LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRfZW1wdHkp
Ci0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfZW1wdHkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0g
ICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3VzaW5nX3NtYWxsX3dpbmRvdyhzZWxmKToKLSAgICAg
ICAgY29tbW9uX3BhcnQgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCi0gICAgICAgIHRl
c3RfbWVzc2FnZSA9IGNvbW1vbl9wYXJ0ICsgJy0nICogMzAwMDAgKyBjb21tb25fcGFydAotCi0g
ICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAg
ICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIGV4dGVu
c2lvbi5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzgnKQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAg
ICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1
dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCB0ZXN0X21lc3NhZ2UpCi0KLSAgICAgICAgZXhwZWN0
ZWRfd2Vic29ja2V0X2hlYWRlcl9zaXplID0gMgotICAgICAgICBleHBlY3RlZF93ZWJzb2NrZXRf
cGF5bG9hZF9zaXplID0gOTEKLQotICAgICAgICBhY3R1YWxfZnJhbWUgPSByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdHRlbl9kYXRhKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF93
ZWJzb2NrZXRfaGVhZGVyX3NpemUgKwotICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVk
X3dlYnNvY2tldF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGFj
dHVhbF9mcmFtZSkpCi0gICAgICAgIGFjdHVhbF9oZWFkZXIgPSBhY3R1YWxfZnJhbWVbMDpleHBl
Y3RlZF93ZWJzb2NrZXRfaGVhZGVyX3NpemVdCi0gICAgICAgIGFjdHVhbF9wYXlsb2FkID0gYWN0
dWFsX2ZyYW1lW2V4cGVjdGVkX3dlYnNvY2tldF9oZWFkZXJfc2l6ZTpdCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICAnXHhjMSVjJyAlIGV4cGVjdGVkX3dlYnNv
Y2tldF9wYXlsb2FkX3NpemUsIGFjdHVhbF9oZWFkZXIpCi0gICAgICAgIGRlY29tcHJlc3MgPSB6
bGliLmRlY29tcHJlc3NvYmooLTgpCi0gICAgICAgIGRlY29tcHJlc3NlZF9tZXNzYWdlID0gZGVj
b21wcmVzcy5kZWNvbXByZXNzKAotICAgICAgICAgICAgICAgIGFjdHVhbF9wYXlsb2FkICsgJ1x4
MDBceDAwXHhmZlx4ZmYnKQotICAgICAgICBkZWNvbXByZXNzZWRfbWVzc2FnZSArPSBkZWNvbXBy
ZXNzLmZsdXNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0X21lc3NhZ2UsIGRlY29t
cHJlc3NlZF9tZXNzYWdlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihkZWNvbXBy
ZXNzLnVudXNlZF9kYXRhKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4oZGVjb21w
cmVzcy51bmNvbnN1bWVkX3RhaWwpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX25vX2Nv
bnRleHRfdGFrZW92ZXJfcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdF
X0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignc2Vy
dmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9k
ZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoMyk6Ci0g
ICAgICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFs
c2UpCi0gICAgICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBl
bmQ9VHJ1ZSkKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAg
ICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGli
Lk1BWF9XQklUUykKLQotICAgICAgICBmaXJzdF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdI
ZWxsbycpCi0gICAgICAgIGZpcnN0X2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQotICAgICAgICBleHBlY3RlZCA9ICdceDQxJWMnICUgbGVuKGZpcnN0X2hlbGxvKQot
ICAgICAgICBleHBlY3RlZCArPSBmaXJzdF9oZWxsbwotICAgICAgICBzZWNvbmRfaGVsbG8gPSBj
b21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBzZWNvbmRfaGVsbG8gKz0gY29tcHJl
c3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIHNlY29uZF9oZWxsbyA9IHNlY29u
ZF9oZWxsb1s6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKHNlY29uZF9o
ZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gc2Vjb25kX2hlbGxvCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBleHBlY3RlZCArIGV4cGVjdGVkICsgZXhwZWN0
ZWQsCi0gICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQot
Ci0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2ZyYWdtZW50ZWRfYmZpbmFsKHNlbGYpOgotICAg
ICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAg
ICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVy
bWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscygxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHJl
cXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0uc2V0X2JmaW5hbChUcnVlKQotICAgICAg
ICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCi0gICAg
ICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcsIGVuZD1UcnVlKQotCi0g
ICAgICAgIGV4cGVjdGVkID0gJycKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3Nv
YmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRF
RCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Mu
Y29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5m
bHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Nl
ZF9oZWxsbyArIGNocigwKQotICAgICAgICBleHBlY3RlZCArPSAnXHg0MSVjJyAlIGxlbihjb21w
cmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0KLSAg
ICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RF
RkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAg
ICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAg
IGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAg
ICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGQgKyBjaHIoMCkKLSAgICAgICAg
ZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKLSAgICAgICAgZXhw
ZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhw
ZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0
X3JlY2VpdmVfbWVzc2FnZV9kZWZsYXRlKHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIu
Y29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxp
Yi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8g
PSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9
IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hl
bGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgPSAnXHhjMSVjJyAlIChs
ZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5Ymko
Y29tcHJlc3NlZF9oZWxsbykKLQotICAgICAgICAjIENsb3NlIGZyYW1lCi0gICAgICAgIGRhdGEg
Kz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29v
ZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
Ci0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAg
ICAgICAgIGRhdGEsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3JhbmRvbV9z
ZWN0aW9uKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRoYXQgYSBjb21wcmVzc2VkIG1lc3NhZ2Ug
ZnJhZ21lbnRlZCBpbnRvIGxvdHMgb2YgY2h1bmtzIGlzCi0gICAgICAgIGNvcnJlY3RseSByZWNl
aXZlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmFuZG9tLnNlZWQoYT0wKQotICAgICAgICBw
YXlsb2FkID0gJycuam9pbigKLSAgICAgICAgICAgIFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1
KSkgZm9yIGkgaW4geHJhbmdlKDEwMDApXSkKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29t
cHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5E
RUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSBj
b21wcmVzcy5jb21wcmVzcyhwYXlsb2FkKQotICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0g
Y29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfcGF5
bG9hZCA9IGNvbXByZXNzZWRfcGF5bG9hZFs6LTRdCi0KLSAgICAgICAgIyBGcmFnbWVudCB0aGUg
Y29tcHJlc3NlZCBwYXlsb2FkIGludG8gbG90cyBvZiBmcmFtZXMuCi0gICAgICAgIGJ5dGVzX2No
dW5rZWQgPSAwCi0gICAgICAgIGRhdGEgPSAnJwotICAgICAgICBmcmFtZV9jb3VudCA9IDAKLQot
ICAgICAgICBjaHVua19zaXplcyA9IFtdCi0KLSAgICAgICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8
IGxlbihjb21wcmVzc2VkX3BheWxvYWQpOgotICAgICAgICAgICAgIyBNYWtlIHN1cmUgdGhhdAot
ICAgICAgICAgICAgIyAtIHRoZSBsZW5ndGggb2YgY2h1bmtzIGFyZSBlcXVhbCBvciBsZXNzIHRo
YW4gMTI1IHNvIHRoYXQgd2UgY2FuCi0gICAgICAgICAgICAjICAgdXNlIDEgb2N0ZXQgbGVuZ3Ro
IGhlYWRlciBmb3JtYXQgZm9yIGFsbCBmcmFtZXMuCi0gICAgICAgICAgICAjIC0gYXQgbGVhc3Qg
MTAgY2h1bmtzIGFyZSBjcmVhdGVkLgotICAgICAgICAgICAgY2h1bmtfc2l6ZSA9IHJhbmRvbS5y
YW5kaW50KAotICAgICAgICAgICAgICAgIDEsIG1pbigxMjUsCi0gICAgICAgICAgICAgICAgICAg
ICAgIGxlbihjb21wcmVzc2VkX3BheWxvYWQpIC8gMTAsCi0gICAgICAgICAgICAgICAgICAgICAg
IGxlbihjb21wcmVzc2VkX3BheWxvYWQpIC0gYnl0ZXNfY2h1bmtlZCkpCi0gICAgICAgICAgICBj
aHVua19zaXplcy5hcHBlbmQoY2h1bmtfc2l6ZSkKLSAgICAgICAgICAgIGNodW5rID0gY29tcHJl
c3NlZF9wYXlsb2FkWwotICAgICAgICAgICAgICAgIGJ5dGVzX2NodW5rZWQ6Ynl0ZXNfY2h1bmtl
ZCArIGNodW5rX3NpemVdCi0gICAgICAgICAgICBieXRlc19jaHVua2VkICs9IGNodW5rX3NpemUK
LQotICAgICAgICAgICAgZmlyc3Rfb2N0ZXQgPSAweDAwCi0gICAgICAgICAgICBpZiBsZW4oZGF0
YSkgPT0gMDoKLSAgICAgICAgICAgICAgICBmaXJzdF9vY3RldCA9IGZpcnN0X29jdGV0IHwgMHg0
MgotICAgICAgICAgICAgaWYgYnl0ZXNfY2h1bmtlZCA9PSBsZW4oY29tcHJlc3NlZF9wYXlsb2Fk
KToKLSAgICAgICAgICAgICAgICBmaXJzdF9vY3RldCA9IGZpcnN0X29jdGV0IHwgMHg4MAotCi0g
ICAgICAgICAgICBkYXRhICs9ICclYyVjJyAlIChmaXJzdF9vY3RldCwgY2h1bmtfc2l6ZSB8IDB4
ODApCi0gICAgICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY2h1bmspCi0KLSAgICAgICAgICAg
IGZyYW1lX2NvdW50ICs9IDEKLQotICAgICAgICBwcmludCgiQ2h1bmsgc2l6ZXM6ICVyIiAlIGNo
dW5rX3NpemVzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKGNodW5rX3NpemVzKSA+IDEw
KQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEnICsg
X21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAgICAg
ICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgIGNv
bW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRhdGEsIHBlcm1lc3NhZ2Vf
ZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXls
b2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAg
ZGVmIHRlc3RfcmVjZWl2ZV90d29fbWVzc2FnZXMoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0g
emxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVT
U0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGRhdGEgPSAn
JwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG9X
ZWJTb2NrZXQnKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9o
ZWxsb1s6LTRdCi0gICAgICAgIHNwbGl0X3Bvc2l0aW9uID0gbGVuKGNvbXByZXNzZWRfaGVsbG8p
IC8gMgotICAgICAgICBkYXRhICs9ICdceDQxJWMnICUgKHNwbGl0X3Bvc2l0aW9uIHwgMHg4MCkK
LSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG9bOnNwbGl0X3Bvc2l0
aW9uXSkKLQotICAgICAgICBkYXRhICs9ICdceDgwJWMnICUgKChsZW4oY29tcHJlc3NlZF9oZWxs
bykgLSBzcGxpdF9wb3NpdGlvbikgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5Ymko
Y29tcHJlc3NlZF9oZWxsb1tzcGxpdF9wb3NpdGlvbjpdKQotCi0gICAgICAgIGNvbXByZXNzID0g
emxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVT
U0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGNvbXByZXNz
ZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2Vk
X3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21w
cmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4
YzElYycgJSAobGVuKGNvbXByZXNzZWRfd29ybGQpIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBf
bWFza19oeWJpKGNvbXByZXNzZWRfd29ybGQpCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAg
ICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEw
MDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhU
RU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgK
LSAgICAgICAgICAgICAgICBkYXRhLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNp
b24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvV2ViU29ja2V0JywgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxk
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRl
ZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9taXhlZF9idHlwZShzZWxmKToKLSAgICAgICAgIiIiVGVz
dCB0aGF0IGEgbWVzc2FnZSBjb21wcmVzc2VkIHVzaW5nIGxvdHMgb2YgREVGTEFURSBibG9ja3Mg
d2l0aAotICAgICAgICB2YXJpb3VzIGZsdXNoIG1vZGUgaXMgY29ycmVjdGx5IHJlY2VpdmVkLgot
ICAgICAgICAiIiIKLQotICAgICAgICByYW5kb20uc2VlZChhPTApCi0gICAgICAgIHBheWxvYWQg
PSAnJy5qb2luKAotICAgICAgICAgICAgW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3Ig
aSBpbiB4cmFuZ2UoMTAwMCldKQotCi0gICAgICAgIGNvbXByZXNzID0gTm9uZQotCi0gICAgICAg
ICMgRnJhZ21lbnQgdGhlIGNvbXByZXNzZWQgcGF5bG9hZCBpbnRvIGxvdHMgb2YgZnJhbWVzLgot
ICAgICAgICBieXRlc19jaHVua2VkID0gMAotICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSAn
JwotCi0gICAgICAgIGNodW5rX3NpemVzID0gW10KLSAgICAgICAgbWV0aG9kcyA9IFtdCi0gICAg
ICAgIHN5bmNfdXNlZCA9IEZhbHNlCi0gICAgICAgIGZpbmlzaF91c2VkID0gRmFsc2UKLQotICAg
ICAgICB3aGlsZSBieXRlc19jaHVua2VkIDwgbGVuKHBheWxvYWQpOgotICAgICAgICAgICAgIyBN
YWtlIHN1cmUgYXQgbGVhc3QgMTAgY2h1bmtzIGFyZSBjcmVhdGVkLgotICAgICAgICAgICAgY2h1
bmtfc2l6ZSA9IHJhbmRvbS5yYW5kaW50KAotICAgICAgICAgICAgICAgIDEsIG1pbigxMDAsIGxl
bihwYXlsb2FkKSAtIGJ5dGVzX2NodW5rZWQpKQotICAgICAgICAgICAgY2h1bmtfc2l6ZXMuYXBw
ZW5kKGNodW5rX3NpemUpCi0gICAgICAgICAgICBjaHVuayA9IHBheWxvYWRbYnl0ZXNfY2h1bmtl
ZDpieXRlc19jaHVua2VkICsgY2h1bmtfc2l6ZV0KLQotICAgICAgICAgICAgYnl0ZXNfY2h1bmtl
ZCArPSBjaHVua19zaXplCi0KLSAgICAgICAgICAgIGlmIGNvbXByZXNzIGlzIE5vbmU6Ci0gICAg
ICAgICAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAg
ICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgemxp
Yi5ERUZMQVRFRCwKLSAgICAgICAgICAgICAgICAgICAgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAg
ICAgICAgICBpZiBieXRlc19jaHVua2VkID09IGxlbihwYXlsb2FkKToKLSAgICAgICAgICAgICAg
ICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuY29tcHJlc3MoY2h1bmspCi0gICAgICAg
ICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQotICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9IGNvbXByZXNzZWRf
cGF5bG9hZFs6LTRdCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG1ldGhvZCA9
IHJhbmRvbS5yYW5kaW50KDAsIDEpCi0gICAgICAgICAgICAgICAgbWV0aG9kcy5hcHBlbmQobWV0
aG9kKQotICAgICAgICAgICAgICAgIGlmIG1ldGhvZCA9PSAwOgotICAgICAgICAgICAgICAgICAg
ICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuY29tcHJlc3MoY2h1bmspCi0gICAgICAg
ICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpf
U1lOQ19GTFVTSCkKLSAgICAgICAgICAgICAgICAgICAgc3luY191c2VkID0gVHJ1ZQotICAgICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCAr
PSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3Nl
ZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgICAgICAg
ICAgICAgIGNvbXByZXNzID0gTm9uZQotICAgICAgICAgICAgICAgICAgICBmaW5pc2hfdXNlZCA9
IFRydWUKLQotICAgICAgICBwcmludCgiQ2h1bmsgc2l6ZXM6ICVyIiAlIGNodW5rX3NpemVzKQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKGNodW5rX3NpemVzKSA+IDEwKQotICAgICAgICBw
cmludCgiTWV0aG9kczogJXIiICUgbWV0aG9kcykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN5
bmNfdXNlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbmlzaF91c2VkKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZSgxMjUgPCBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGxlbihjb21wcmVzc2VkX3BheWxvYWQpIDwgNjU1MzYpCi0gICAgICAg
IGRhdGEgPSAnXHhjMlx4ZmUnICsgc3RydWN0LnBhY2soJyFIJywgbGVuKGNvbXByZXNzZWRfcGF5
bG9hZCkpCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3BheWxvYWQpCi0K
LSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFz
a19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBl
eHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgY29tbW9u
LlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgcGVybWVzc2FnZV9kZWZs
YXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQs
IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLQotY2xhc3Mg
TWVzc2FnZVRlc3RIaXhpZTc1KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyBmb3Ig
ZHJhZnQtaGl4aWUtdGhld2Vic29ja2V0cHJvdG9jb2wtNzYgc3RyZWFtIGNsYXNzLiIiIgotCi0g
ICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0
LCAnSGVsbG8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwSGVsbG9ceGZmJywgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNz
YWdlX3VuaWNvZGUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4
aWU3NSgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHUnXHU2NWU1JykK
LSAgICAgICAgIyBVKzY1ZTUgaXMgZW5jb2RlZCBhcyBlNiw5NyxhNSBpbiBVVEYtOAotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdceDAwXHhlNlx4OTdceGE1XHhmZicsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVm
IHRlc3RfcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0X2hpeGllNzUoJ1x4MDBIZWxsb1x4ZmZceDAwV29ybGQhXHhmZicpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNz
YWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3VuaWNvZGUoc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHgwMFx4ZTZc
eDljXHhhY1x4ZmYnKQotICAgICAgICAjIFUrNjcyYyBpcyBlbmNvZGVkIGFzIGU2LDljLGFjIGlu
IFVURi04Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodSdcdTY3MmMnLCBtc2d1dGlsLnJlY2Vp
dmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9lcnJv
bmVvdXNfdW5pY29kZShzZWxmKToKLSAgICAgICAgIyBceDgwIGFuZCBceDgxIGFyZSBpbnZhbGlk
IGFzIFVURi04LgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4
MDBceDgwXHg4MVx4ZmYnKQotICAgICAgICAjIEludmFsaWQgY2hhcmFjdGVycyBzaG91bGQgYmUg
cmVwbGFjZWQgd2l0aAotICAgICAgICAjIFUrZmZmZCBSRVBMQUNFTUVOVCBDSEFSQUNURVIKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1J1x1ZmZmZFx1ZmZmZCcsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Rpc2NhcmQo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHg4MFx4
MDZJR05PUkVceDAwSGVsbG9ceGZmJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ1x4MDFESVNSRUdBUkRceGZmXHgwMFdvcmxkIVx4ZmYnKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLQotCi1jbGFzcyBNZXNzYWdlUmVjZWl2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKLSAgICAiIiJUZXN0cyB0aGUgU3RyZWFtIGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZl
ci4iIiIKLQotICAgIGRlZiB0ZXN0X3F1ZXVlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkKLSAgICAgICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3Nh
Z2VSZWNlaXZlcihyZXF1ZXN0KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVj
ZWl2ZXIucmVjZWl2ZV9ub3dhaXQoKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKCdceDgxXHg4NicgKyBfbWFza19oeWJpKCdIZWxsbyEnKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnSGVsbG8hJywgcmVjZWl2ZXIucmVjZWl2ZSgpKQotCi0gICAgZGVmIHRlc3Rf
b25tZXNzYWdlKHNlbGYpOgotICAgICAgICBvbm1lc3NhZ2VfcXVldWUgPSBRdWV1ZS5RdWV1ZSgp
Ci0KLSAgICAgICAgZGVmIG9ubWVzc2FnZV9oYW5kbGVyKG1lc3NhZ2UpOgotICAgICAgICAgICAg
b25tZXNzYWdlX3F1ZXVlLnB1dChtZXNzYWdlKQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X2Jsb2NraW5nX3JlcXVlc3QoKQotICAgICAgICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJl
Y2VpdmVyKHJlcXVlc3QsIG9ubWVzc2FnZV9oYW5kbGVyKQotCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoJ1x4ODFceDg2JyArIF9tYXNrX2h5YmkoJ0hlbGxvIScpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyEnLCBvbm1lc3NhZ2VfcXVldWUuZ2V0KCkpCi0K
LQotY2xhc3MgTWVzc2FnZVJlY2VpdmVySGl4aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgot
ICAgICIiIlRlc3RzIHRoZSBTdHJlYW1IaXhpZTc1IGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZl
ci4iIiIKLQotICAgIGRlZiB0ZXN0X3F1ZXVlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICByZWNlaXZlciA9IG1zZ3V0
aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVlc3QpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChO
b25lLCByZWNlaXZlci5yZWNlaXZlX25vd2FpdCgpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoJ1x4MDBIZWxsbyFceGZmJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnSGVsbG8hJywgcmVjZWl2ZXIucmVjZWl2ZSgpKQotCi0gICAgZGVmIHRlc3Rfb25tZXNzYWdl
KHNlbGYpOgotICAgICAgICBvbm1lc3NhZ2VfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0KLSAgICAg
ICAgZGVmIG9ubWVzc2FnZV9oYW5kbGVyKG1lc3NhZ2UpOgotICAgICAgICAgICAgb25tZXNzYWdl
X3F1ZXVlLnB1dChtZXNzYWdlKQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5n
X3JlcXVlc3RfaGl4aWU3NSgpCi0gICAgICAgIHJlY2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVj
ZWl2ZXIocmVxdWVzdCwgb25tZXNzYWdlX2hhbmRsZXIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygnXHgwMEhlbGxvIVx4ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdIZWxsbyEnLCBvbm1lc3NhZ2VfcXVldWUuZ2V0KCkpCi0KLQotY2xhc3MgTWVzc2FnZVNl
bmRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIHRoZSBTdHJlYW0gY2xh
c3MgdXNpbmcgTWVzc2FnZVNlbmRlci4iIiIKLQotICAgIGRlZiB0ZXN0X3NlbmQoc2VsZik6Ci0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3QoKQotICAgICAgICBzZW5k
ZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5kZXIocmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2Vu
ZCgnV29ybGQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHgwNVdvcmxkJywgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9ub3dh
aXQoc2VsZik6Ci0gICAgICAgICMgVXNlIGEgcXVldWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0
ZW4gYnkgTWVzc2FnZVNlbmRlci4KLSAgICAgICAgIyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkgY2Fubm90IGJlIHVzZWQgaGVyZSBiZWNhdXNlCi0gICAgICAgICMgTWVzc2FnZVNl
bmRlciBydW5zIGluIGEgc2VwYXJhdGUgdGhyZWFkLgotICAgICAgICBzZW5kX3F1ZXVlID0gUXVl
dWUuUXVldWUoKQotCi0gICAgICAgIGRlZiB3cml0ZShieXRlcyk6Ci0gICAgICAgICAgICBzZW5k
X3F1ZXVlLnB1dChieXRlcykKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19y
ZXF1ZXN0KCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlID0gd3JpdGUKLQotICAg
ICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5kZXIocmVxdWVzdCkKLQotICAgICAgICBz
ZW5kZXIuc2VuZF9ub3dhaXQoJ0hlbGxvJykKLSAgICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdX
b3JsZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDA1SGVsbG8nLCBzZW5kX3F1
ZXVlLmdldCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHgwNVdvcmxkJywgc2Vu
ZF9xdWV1ZS5nZXQoKSkKLQotCi1jbGFzcyBNZXNzYWdlU2VuZGVySGl4aWU3NVRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIHRoZSBTdHJlYW1IaXhpZTc1IGNsYXNzIHVzaW5n
IE1lc3NhZ2VTZW5kZXIuIiIiCi0KLSAgICBkZWYgdGVzdF9zZW5kKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICBzZW5k
ZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5kZXIocmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2Vu
ZCgnV29ybGQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwV29ybGRceGZmJywgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9ub3dh
aXQoc2VsZik6Ci0gICAgICAgICMgVXNlIGEgcXVldWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0
ZW4gYnkgTWVzc2FnZVNlbmRlci4KLSAgICAgICAgIyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkgY2Fubm90IGJlIHVzZWQgaGVyZSBiZWNhdXNlCi0gICAgICAgICMgTWVzc2FnZVNl
bmRlciBydW5zIGluIGEgc2VwYXJhdGUgdGhyZWFkLgotICAgICAgICBzZW5kX3F1ZXVlID0gUXVl
dWUuUXVldWUoKQotCi0gICAgICAgIGRlZiB3cml0ZShieXRlcyk6Ci0gICAgICAgICAgICBzZW5k
X3F1ZXVlLnB1dChieXRlcykKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19y
ZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUgPSB3cml0
ZQotCi0gICAgICAgIHNlbmRlciA9IG1zZ3V0aWwuTWVzc2FnZVNlbmRlcihyZXF1ZXN0KQotCi0g
ICAgICAgIHNlbmRlci5zZW5kX25vd2FpdCgnSGVsbG8nKQotICAgICAgICBzZW5kZXIuc2VuZF9u
b3dhaXQoJ1dvcmxkJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMEhlbGxvXHhmZics
IHNlbmRfcXVldWUuZ2V0KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBXb3JsZFx4
ZmYnLCBzZW5kX3F1ZXVlLmdldCgpKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0g
ICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9tdXgucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tdXgucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDA3NzNkZWNiZmQ2NmQwZGZmZWYwYjQyODdiYWQ4NzQ1M2ZjMWQ2
NDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RfbXV4LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjA4OCArMCwwIEBACi0jIS91c3Iv
YmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoK
LSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBtdXgg
bW9kdWxlLiIiIgotCi1pbXBvcnQgUXVldWUKLWltcG9ydCBjb3B5Ci1pbXBvcnQgbG9nZ2luZwot
aW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRl
c3QKLWltcG9ydCB0aW1lCi1pbXBvcnQgemxpYgotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVw
ZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IG11eAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9u
VGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGlt
cG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2h5YmkgaW1wb3J0IEZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5Ymkg
aW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBT
dHJlYW1PcHRpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNy
ZWF0ZV9iaW5hcnlfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBv
cnQgY3JlYXRlX2Nsb3NlX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5Ymkg
aW1wb3J0IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5Ci1mcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2h5YmkgaW1wb3J0IHBhcnNlX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5l
eHRlbnNpb25zIGltcG9ydCBNdXhFeHRlbnNpb25Qcm9jZXNzb3IKLQotCi1pbXBvcnQgbW9jawot
Ci0KLV9URVNUX0hFQURFUlMgPSB7J0hvc3QnOiAnc2VydmVyLmV4YW1wbGUuY29tJywKLSAgICAg
ICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnd2Vic29ja2V0JywKLSAgICAgICAgICAgICAgICAgJ0Nv
bm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtl
eSc6ICdkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nLAotICAgICAgICAgICAgICAgICAnU2VjLVdl
YlNvY2tldC1WZXJzaW9uJzogJzEzJywKLSAgICAgICAgICAgICAgICAgJ09yaWdpbic6ICdodHRw
Oi8vZXhhbXBsZS5jb20nfQotCi0KLWNsYXNzIF9PdXRnb2luZ0NoYW5uZWxEYXRhKG9iamVjdCk6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLm1lc3NhZ2VzID0gW10KLSAg
ICAgICAgc2VsZi5jb250cm9sX21lc3NhZ2VzID0gW10KLQotICAgICAgICBzZWxmLmJ1aWxkZXIg
PSBtdXguX0lubmVyTWVzc2FnZUJ1aWxkZXIoKQotCi1jbGFzcyBfTW9ja011eENvbm5lY3Rpb24o
bW9jay5Nb2NrQmxvY2tpbmdDb25uKToKLSAgICAiIiJNb2NrIGNsYXNzIG9mIG1vZF9weXRob24g
Y29ubmVjdGlvbiBmb3IgbXV4LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAg
ICBtb2NrLk1vY2tCbG9ja2luZ0Nvbm4uX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fY29u
dHJvbF9ibG9ja3MgPSBbXQotICAgICAgICBzZWxmLl9jaGFubmVsX2RhdGEgPSB7fQotCi0gICAg
ICAgIHNlbGYuX2N1cnJlbnRfb3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5nX2Zy
YWdtZW50cyA9IFtdCi0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfY2xvc2VfY29kZSA9IE5vbmUKLQot
ICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgTW9ja0Jsb2Nr
aW5nQ29ubi53cml0ZS4iIiIKLQotICAgICAgICBzZWxmLl9jdXJyZW50X2RhdGEgPSBkYXRhCi0g
ICAgICAgIHNlbGYuX3Bvc2l0aW9uID0gMAotCi0gICAgICAgIGRlZiBfcmVjZWl2ZV9ieXRlcyhs
ZW5ndGgpOgotICAgICAgICAgICAgaWYgc2VsZi5fcG9zaXRpb24gKyBsZW5ndGggPiBsZW4oc2Vs
Zi5fY3VycmVudF9kYXRhKToKLSAgICAgICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWlu
YXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byByZWNlaXZlICVk
IGJ5dGVzIGZyb20gZW5jYXBzdWxhdGVkICcKLSAgICAgICAgICAgICAgICAgICAgJ2ZyYW1lJyAl
IGxlbmd0aCkKLSAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9jdXJyZW50X2RhdGFbc2VsZi5fcG9z
aXRpb246c2VsZi5fcG9zaXRpb24rbGVuZ3RoXQotICAgICAgICAgICAgc2VsZi5fcG9zaXRpb24g
Kz0gbGVuZ3RoCi0gICAgICAgICAgICByZXR1cm4gZGF0YQotCi0gICAgICAgICMgUGFyc2UgcGh5
c2ljYWwgZnJhbWVzIGFuZCBhc3NlbWJsZSBhIG1lc3NhZ2UgaWYgdGhlIG1lc3NhZ2UgaXMKLSAg
ICAgICAgIyBmcmFnbWVudGVkLgotICAgICAgICBvcGNvZGUsIHBheWxvYWQsIGZpbiwgcnN2MSwg
cnN2MiwgcnN2MyA9ICgKLSAgICAgICAgICAgIHBhcnNlX2ZyYW1lKF9yZWNlaXZlX2J5dGVzLCB1
bm1hc2tfcmVjZWl2ZT1GYWxzZSkpCi0KLSAgICAgICAgc2VsZi5fcGVuZGluZ19mcmFnbWVudHMu
YXBwZW5kKHBheWxvYWQpCi0KLSAgICAgICAgaWYgc2VsZi5fY3VycmVudF9vcGNvZGUgaXMgTm9u
ZToKLSAgICAgICAgICAgIGlmIG9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoK
LSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1NlbmRpbmcgaW52YWxpZCBjb250aW51
YXRpb24gb3Bjb2RlJykKLSAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfb3Bjb2RlID0gb3Bjb2Rl
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBvcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9D
T05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdTZW5kaW5nIGlu
dmFsaWQgb3Bjb2RlICVkJyAlIG9wY29kZSkKLSAgICAgICAgaWYgbm90IGZpbjoKLSAgICAgICAg
ICAgIHJldHVybgotCi0gICAgICAgIGlubmVyX2ZyYW1lX2RhdGEgPSAnJy5qb2luKHNlbGYuX3Bl
bmRpbmdfZnJhZ21lbnRzKQotICAgICAgICBzZWxmLl9wZW5kaW5nX2ZyYWdtZW50cyA9IFtdCi0g
ICAgICAgIHNlbGYuX2N1cnJlbnRfb3Bjb2RlID0gTm9uZQotCi0gICAgICAgICMgSGFuZGxlIGEg
Y29udHJvbCBtZXNzYWdlIG9uIHRoZSBwaHlzaWNhbCBjaGFubmVsLgotICAgICAgICAjIFRPRE8o
YmFzaGkpOiBTdXBwb3J0IG90aGVyIG9wY29kZXMgaWYgbmVlZGVkLgotICAgICAgICBpZiBvcGNv
ZGUgPT0gY29tbW9uLk9QQ09ERV9DTE9TRToKLSAgICAgICAgICAgIGlmIGxlbihwYXlsb2FkKSA+
PSAyOgotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2Nsb3NlX2NvZGUgPSBzdHJ1Y3QudW5w
YWNrKCchSCcsIHBheWxvYWRbOjJdKVswXQotICAgICAgICAgICAgY2xvc2VfYm9keSA9IGNyZWF0
ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KAotICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNf
Tk9STUFMX0NMT1NVUkUsICcnKQotICAgICAgICAgICAgY2xvc2VfZnJhbWUgPSBjcmVhdGVfY2xv
c2VfZnJhbWUoY2xvc2VfYm9keSwgbWFzaz1UcnVlKQotICAgICAgICAgICAgc2VsZi5wdXRfYnl0
ZXMoY2xvc2VfZnJhbWUpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAjIFBhcnNlIHRo
ZSBwYXlsb2FkIG9mIHRoZSBtZXNzYWdlIG9uIHBoeXNpY2FsIGNoYW5uZWwuCi0gICAgICAgIHBh
cnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGlubmVyX2ZyYW1lX2RhdGEpCi0gICAg
ICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgaWYgY2hh
bm5lbF9pZCA9PSBtdXguX0NPTlRST0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAgIHNlbGYuX2Nv
bnRyb2xfYmxvY2tzLmV4dGVuZChsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpKQot
ICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2VsZi5f
Y2hhbm5lbF9kYXRhOgotICAgICAgICAgICAgc2VsZi5fY2hhbm5lbF9kYXRhW2NoYW5uZWxfaWRd
ID0gX091dGdvaW5nQ2hhbm5lbERhdGEoKQotICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9j
aGFubmVsX2RhdGFbY2hhbm5lbF9pZF0KLQotICAgICAgICAjIFBhcnNlIGxvZ2ljYWwgZnJhbWVz
IGFuZCBhc3NlbWJsZSBhbiBpbm5lciAobG9naWNhbCkgbWVzc2FnZS4KLSAgICAgICAgKGlubmVy
X2ZpbiwgaW5uZXJfcnN2MSwgaW5uZXJfcnN2MiwgaW5uZXJfcnN2MywgaW5uZXJfb3Bjb2RlLAot
ICAgICAgICAgaW5uZXJfcGF5bG9hZCkgPSBwYXJzZXIucmVhZF9pbm5lcl9mcmFtZSgpCi0gICAg
ICAgIGlubmVyX2ZyYW1lID0gRnJhbWUoaW5uZXJfZmluLCBpbm5lcl9yc3YxLCBpbm5lcl9yc3Yy
LCBpbm5lcl9yc3YzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyX29wY29kZSwg
aW5uZXJfcGF5bG9hZCkKLSAgICAgICAgbWVzc2FnZSA9IGNoYW5uZWxfZGF0YS5idWlsZGVyLmJ1
aWxkKGlubmVyX2ZyYW1lKQotICAgICAgICBpZiBtZXNzYWdlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICByZXR1cm4KLQotICAgICAgICBpZiAobWVzc2FnZS5vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9U
RVhUIG9yCi0gICAgICAgICAgICBtZXNzYWdlLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX0JJTkFS
WSk6Ci0gICAgICAgICAgICBjaGFubmVsX2RhdGEubWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UucGF5
bG9hZCkKLQotICAgICAgICAgICAgc2VsZi5vbl9kYXRhX21lc3NhZ2UobWVzc2FnZS5wYXlsb2Fk
KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgY2hhbm5lbF9kYXRhLmNvbnRyb2xfbWVzc2Fn
ZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHsnb3Bjb2RlJzogbWVzc2FnZS5vcGNvZGUsCi0g
ICAgICAgICAgICAgICAgICdtZXNzYWdlJzogbWVzc2FnZS5wYXlsb2FkfSkKLQotICAgIGRlZiBv
bl9kYXRhX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBn
ZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2Nv
bnRyb2xfYmxvY2tzCi0KLSAgICBkZWYgZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoc2VsZiwgY2hhbm5l
bF9pZCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0ubWVz
c2FnZXMKLQotICAgIGRlZiBnZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKHNlbGYsIGNoYW5u
ZWxfaWQpOgotICAgICAgICByZXR1cm4gc2VsZi5fY2hhbm5lbF9kYXRhW2NoYW5uZWxfaWRdLmNv
bnRyb2xfbWVzc2FnZXMKLQotCi1jbGFzcyBfRmFpbE9uV3JpdGVDb25uZWN0aW9uKF9Nb2NrTXV4
Q29ubmVjdGlvbik6Ci0gICAgIiIiU3BlY2ljaWFsaXplZCB2ZXJzaW9uIG9mIF9Nb2NrTXV4Q29u
bmVjdGlvbi4gSXRzIHdyaXRlKCkgbWV0aG9kIHJhaXNlcwotICAgIGFuIGV4Y2VwdGlvbiBmb3Ig
dGVzdGluZyB3aGVuIGEgZGF0YSBtZXNzYWdlIGlzIHdyaXR0ZW4uCi0gICAgIiIiCi0KLSAgICBk
ZWYgb25fZGF0YV9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJPdmVycmlkZSB0
byByYWlzZSBhbiBleGNlcHRpb24uIiIiCi0KLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnRl
bnRpb25hbCBmYWlsdXJlJykKLQotCi1jbGFzcyBfQ2hhbm5lbEV2ZW50KG9iamVjdCk6Ci0gICAg
IiIiQSBzdHJ1Y3R1cmUgdGhhdCByZWNvcmRzIGNoYW5uZWwgZXZlbnRzLiIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLnJlcXVlc3QgPSBOb25lCi0gICAgICAgIHNl
bGYubWVzc2FnZXMgPSBbXQotICAgICAgICBzZWxmLmV4Y2VwdGlvbiA9IE5vbmUKLSAgICAgICAg
c2VsZi5jbGllbnRfaW5pdGlhdGVkX2Nsb3NpbmcgPSBGYWxzZQotCi0KLWNsYXNzIF9NdXhNb2Nr
RGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIk1vY2sgY2xhc3Mgb2YgZGlzcGF0Y2guRGlzcGF0
Y2hlciBmb3IgbXV4LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxm
LmNoYW5uZWxfZXZlbnRzID0ge30KLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwg
cmVxdWVzdCk6Ci0gICAgICAgIGlmIHJlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scyBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSByZXF1ZXN0LndzX3Jl
cXVlc3RlZF9wcm90b2NvbHNbMF0KLQotICAgIGRlZiBfZG9fZWNobyhzZWxmLCByZXF1ZXN0LCBj
aGFubmVsX2V2ZW50cyk6Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBtZXNzYWdl
ID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgICAgIGlmIG1l
c3NhZ2UgPT0gTm9uZToKLSAgICAgICAgICAgICAgICBjaGFubmVsX2V2ZW50cy5jbGllbnRfaW5p
dGlhdGVkX2Nsb3NpbmcgPSBUcnVlCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAg
ICBpZiBtZXNzYWdlID09ICdHb29kYnllJzoKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAg
ICAgICAgIGNoYW5uZWxfZXZlbnRzLm1lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKQotICAgICAgICAg
ICAgIyBlY2hvIGJhY2sKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2Fn
ZShtZXNzYWdlKQotCi0gICAgZGVmIF9kb19waW5nKHNlbGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZl
bnRzKToKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5nKCdQaW5nIScpCi0KLSAg
ICBkZWYgX2RvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQoc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9l
dmVudHMpOgotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ0hlbGxvICcs
IGVuZD1GYWxzZSkKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5nKCdQaW5nIScp
Ci0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnV29ybGQhJywgZW5kPVRy
dWUpCi0KLSAgICBkZWYgX2RvX3R3b19waW5nX3doaWxlX2hlbGxvX3dvcmxkKHNlbGYsIHJlcXVl
c3QsIGNoYW5uZWxfZXZlbnRzKToKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNz
YWdlKCdIZWxsbyAnLCBlbmQ9RmFsc2UpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRf
cGluZygnUGluZyEnKQotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1Bvbmch
JykKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKCdXb3JsZCEnLCBlbmQ9
VHJ1ZSkKLQotICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBz
ZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0gPSBfQ2hhbm5lbEV2ZW50KCkK
LSAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLnJlcXVlc3Qg
PSByZXF1ZXN0Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBOb3RlOiBtb3JlIGhhbmRs
ZXIgd2lsbCBiZSBhZGRlZC4KLSAgICAgICAgICAgIGlmIHJlcXVlc3QudXJpLmVuZHN3aXRoKCdl
Y2hvJyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZG9fZWNobyhyZXF1ZXN0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxf
aWRdKQotICAgICAgICAgICAgZWxpZiByZXF1ZXN0LnVyaS5lbmRzd2l0aCgncGluZycpOgotICAg
ICAgICAgICAgICAgIHNlbGYuX2RvX3BpbmcocmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXSkKLSAgICAg
ICAgICAgIGVsaWYgcmVxdWVzdC51cmkuZW5kc3dpdGgoJ3R3b19waW5nX3doaWxlX2hlbGxvX3dv
cmxkJyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZG9fdHdvX3Bpbmdfd2hpbGVfaGVsbG9fd29y
bGQoCi0gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVx
dWVzdC5jaGFubmVsX2lkXSkKLSAgICAgICAgICAgIGVsaWYgcmVxdWVzdC51cmkuZW5kc3dpdGgo
J3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQnKToKLSAgICAgICAgICAgICAgICBzZWxmLl9kb19waW5n
X3doaWxlX2hlbGxvX3dvcmxkKAotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LCBzZWxmLmNo
YW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0pCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0Nhbm5vdCBoYW5kbGUgcGF0aCAlcicgJSBy
ZXF1ZXN0LnBhdGgpCi0gICAgICAgICAgICBpZiBub3QgcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRl
ZDoKLSAgICAgICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkK
LSAgICAgICAgZXhjZXB0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uIGFzIGU6Ci0gICAg
ICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0uZXhjZXB0aW9u
ID0gZQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLmNo
YW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0uZXhjZXB0aW9uID0gZQotICAgICAgICAg
ICAgcmFpc2UKLQotCi1kZWYgX2NyZWF0ZV9tb2NrX3JlcXVlc3QoY29ubmVjdGlvbj1Ob25lLCBs
b2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1Ob25lKToKLSAgICBpZiBjb25uZWN0aW9uIGlzIE5v
bmU6Ci0gICAgICAgIGNvbm5lY3Rpb24gPSBfTW9ja011eENvbm5lY3Rpb24oKQotCi0gICAgcmVx
dWVzdCA9IG1vY2suTW9ja1JlcXVlc3QodXJpPScvZWNobycsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVhZGVyc19pbj1fVEVTVF9IRUFERVJTLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbm5lY3Rpb249Y29ubmVjdGlvbikKLSAgICByZXF1ZXN0LndzX3N0cmVh
bSA9IFN0cmVhbShyZXF1ZXN0LCBvcHRpb25zPVN0cmVhbU9wdGlvbnMoKSkKLSAgICByZXF1ZXN0
Lm11eF9wcm9jZXNzb3IgPSBNdXhFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAgIGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLk1VWF9FWFRFTlNJT04pKQotICAgIGlmIGxvZ2ljYWxf
Y2hhbm5lbF9leHRlbnNpb25zIGlzIG5vdCBOb25lOgotICAgICAgICByZXF1ZXN0Lm11eF9wcm9j
ZXNzb3Iuc2V0X2V4dGVuc2lvbnMobG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnMpCi0gICAgcmVx
dWVzdC5tdXhfcHJvY2Vzc29yLnNldF9xdW90YSg4ICogMTAyNCkKLSAgICByZXR1cm4gcmVxdWVz
dAotCi0KLWRlZiBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoY2hhbm5lbF9pZCwg
ZW5jb2RpbmcsIGVuY29kZWRfaGFuZHNoYWtlKToKLSAgICAjIEFsbG93IGludmFsaWQgZW5jb2Rp
bmcgZm9yIHRlc3RpbmcuCi0gICAgZmlyc3RfYnl0ZSA9ICgobXV4Ll9NVVhfT1BDT0RFX0FERF9D
SEFOTkVMX1JFUVVFU1QgPDwgNSkgfCBlbmNvZGluZykKLSAgICBwYXlsb2FkID0gKGNocihmaXJz
dF9ieXRlKSArCi0gICAgICAgICAgICAgICBtdXguX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxf
aWQpICsKLSAgICAgICAgICAgICAgIG11eC5fZW5jb2RlX251bWJlcihsZW4oZW5jb2RlZF9oYW5k
c2hha2UpKSArCi0gICAgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSkKLSAgICByZXR1cm4g
Y3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICAgICAgKG11eC5fZW5jb2RlX2NoYW5uZWxfaWQobXV4
Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgcGF5bG9hZCksIG1hc2s9VHJ1ZSkKLQotCi1kZWYgX2Ny
ZWF0ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hhbm5lbF9pZCwgY29kZT1Ob25lLCBtZXNzYWdlPScn
KToKLSAgICBwYXlsb2FkID0gbXV4Ll9jcmVhdGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNv
ZGUsIG1lc3NhZ2UpCi0gICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCi0gICAgICAgICht
dXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5fQ09OVFJPTF9DSEFOTkVMX0lEKSArIHBheWxvYWQp
LCBtYXNrPVRydWUpCi0KLQotZGVmIF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxf
aWQsIHJlcGxlbmlzaGVkX3F1b3RhKToKLSAgICBwYXlsb2FkID0gbXV4Ll9jcmVhdGVfZmxvd19j
b250cm9sKGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1b3RhKQotICAgIHJldHVybiBjcmVhdGVf
YmluYXJ5X2ZyYW1lKAotICAgICAgICAobXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRS
T0xfQ0hBTk5FTF9JRCkgKyBwYXlsb2FkKSwgbWFzaz1UcnVlKQotCi0KLWRlZiBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZCwgbWVzc2FnZSwgb3Bjb2RlPWNvbW1vbi5PUENPREVfQklO
QVJZLAotICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwgcnN2MT1GYWxzZSwgcnN2
Mj1GYWxzZSwgcnN2Mz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaz1UcnVl
KToKLSAgICBiaXRzID0gY2hyKChmaW4gPDwgNykgfCAocnN2MSA8PCA2KSB8IChyc3YyIDw8IDUp
IHwgKHJzdjMgPDwgNCkgfCBvcGNvZGUpCi0gICAgcGF5bG9hZCA9IG11eC5fZW5jb2RlX2NoYW5u
ZWxfaWQoY2hhbm5lbF9pZCkgKyBiaXRzICsgbWVzc2FnZQotICAgIHJldHVybiBjcmVhdGVfYmlu
YXJ5X2ZyYW1lKHBheWxvYWQsIG1hc2s9VHJ1ZSkKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0X2hl
YWRlcihwYXRoPScvZWNobycsIGV4dGVuc2lvbnM9Tm9uZSk6Ci0gICAgaGVhZGVycyA9ICgKLSAg
ICAgICAgJ0dFVCAlcyBIVFRQLzEuMVxyXG4nCi0gICAgICAgICdIb3N0OiBzZXJ2ZXIuZXhhbXBs
ZS5jb21cclxuJwotICAgICAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgICAgICdP
cmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nKSAlIHBhdGgKLSAgICBpZiBleHRlbnNpb25z
OgotICAgICAgICBoZWFkZXJzICs9ICclczogJXMnICUgKAotICAgICAgICAgICAgY29tbW9uLlNF
Q19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIsIGV4dGVuc2lvbnMpCi0gICAgcmV0dXJuIGhl
YWRlcnMKLQotCi1jbGFzcyBNdXhUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVu
aXR0ZXN0IGZvciBtdXggbW9kdWxlLiIiIgotCi0gICAgZGVmIHRlc3RfY2hhbm5lbF9pZF9kZWNv
ZGUoc2VsZik6Ci0gICAgICAgIGRhdGEgPSAnXHgwMFx4MDFceGJmXHhmZlx4ZGZceGZmXHhmZlx4
ZmZceGZmXHhmZlx4ZmYnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFy
c2VyKGRhdGEpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBjaGFubmVsX2lkKQotICAgICAgICBjaGFubmVs
X2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MSwgY2hhbm5lbF9pZCkKLSAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxf
aWQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIgKiogMTQgLSAxLCBjaGFubmVsX2lkKQot
ICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMiAqKiAyMSAtIDEsIGNoYW5uZWxfaWQpCi0gICAgICAgIGNoYW5uZWxf
aWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgy
ICoqIDI5IC0gMSwgY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0
YSksIHBhcnNlci5fcmVhZF9wb3NpdGlvbikKLQotICAgIGRlZiB0ZXN0X2NoYW5uZWxfaWRfZW5j
b2RlKHNlbGYpOgotICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgwKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwJywgZW5jb2RlZCkKLSAgICAgICAgZW5jb2Rl
ZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAqKiAxNCAtIDEpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4YmZceGZmJywgZW5jb2RlZCkKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5j
b2RlX2NoYW5uZWxfaWQoMiAqKiAxNCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhjMEBc
eDAwJywgZW5jb2RlZCkKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQo
MiAqKiAyMSAtIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZGZceGZmXHhmZicsIGVu
Y29kZWQpCi0gICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMjEp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZTAgXHgwMFx4MDAnLCBlbmNvZGVkKQotICAg
ICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgyICoqIDI5IC0gMSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhmZlx4ZmZceGZmXHhmZicsIGVuY29kZWQpCi0gICAgICAg
ICMgY2hhbm5lbF9pZCBpcyB0b28gbGFyZ2UKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9lbmNvZGVfY2hhbm5lbF9p
ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqKiAyOSkKLQotICAgIGRlZiB0ZXN0X3Jl
YWRfbXVsdGlwbGVfY29udHJvbF9ibG9ja3Moc2VsZik6Ci0gICAgICAgICMgVXNlIEFkZENoYW5u
ZWxSZXF1ZXN0IGJlY2F1c2UgaXQgY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IGxlbmd0aCBvZiBkYXRh
Ci0gICAgICAgIGRhdGEgPSAoJ1x4MDBceDAxXHgwMWEnCi0gICAgICAgICAgICAgICAgJ1x4MDBc
eDAyXHg3ZCVzJwotICAgICAgICAgICAgICAgICdceDAwXHgwM1x4N2VceGZmXHhmZiVzJwotICAg
ICAgICAgICAgICAgICdceDAwXHgwNFx4N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgw
MCVzJykgJSAoCi0gICAgICAgICAgICAnYScgKiAweDdkLCAnYicgKiAweGZmZmYsICdjJyAqIDB4
MTAwMDApCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEp
Ci0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0LCBsZW4oYmxvY2tzKSkKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMF0u
b3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1swXS5jaGFubmVsX2lk
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihibG9ja3NbMF0uZW5jb2RlZF9oYW5k
c2hha2UpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9D
SEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1sxXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMiwgYmxvY2tzWzFdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMHg3
ZCwgbGVuKGJsb2Nrc1sxXS5lbmNvZGVkX2hhbmRzaGFrZSkpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCwgYmxvY2tzWzJdLm9w
Y29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBibG9ja3NbMl0uY2hhbm5lbF9pZCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgweGZmZmYsIGxlbihibG9ja3NbMl0uZW5jb2RlZF9o
YW5kc2hha2UpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FE
RF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1szXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoNCwgYmxvY2tzWzNdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MHgxMDAwMCwgbGVuKGJsb2Nrc1szXS5lbmNvZGVkX2hhbmRzaGFrZSkpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsZW4oZGF0YSksIHBhcnNlci5fcmVhZF9wb3NpdGlvbikKLQotICAgIGRl
ZiB0ZXN0X3JlYWRfYWRkX2NoYW5uZWxfcmVxdWVzdChzZWxmKToKLSAgICAgICAgZGF0YSA9ICdc
eDAwXHgwMVx4MDFhJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNl
cihkYXRhKQotICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tz
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVM
X1JFUVVFU1QsIGJsb2Nrc1swXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwg
YmxvY2tzWzBdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJs
b2Nrc1swXS5lbmNvZGVkX2hhbmRzaGFrZSkpCi0KLSAgICBkZWYgdGVzdF9yZWFkX2Ryb3BfY2hh
bm5lbChzZWxmKToKLSAgICAgICAgZGF0YSA9ICdceDYwXHgwMVx4MDAnCi0gICAgICAgIHBhcnNl
ciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGJsb2NrcyA9IGxp
c3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgxLCBsZW4oYmxvY2tzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBibG9ja3NbMF0u
Y2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfRFJP
UF9DSEFOTkVMLCBibG9ja3NbMF0ub3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIGJsb2Nrc1swXS5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVu
KGJsb2Nrc1swXS5kcm9wX21lc3NhZ2UpKQotCi0gICAgICAgIGRhdGEgPSAnXHg2MFx4MDJceDA5
XHgwM1x4ZThTdWNjZXNzJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBh
cnNlcihkYXRhKQotICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxv
Y2tzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2NrcykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMiwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCwgYmxvY2tzWzBdLm9wY29k
ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMDAwLCBibG9ja3NbMF0uZHJvcF9jb2RlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdTdWNjZXNzJywgYmxvY2tzWzBdLmRyb3BfbWVzc2Fn
ZSkKLQotICAgICAgICAjIFJlYXNvbiBpcyB0b28gc2hvcnQuCi0gICAgICAgIGRhdGEgPSAnXHg2
MFx4MDFceDAxXHgwMCcKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJz
ZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXV4LlBoeXNpY2FsQ29ubmVjdGlv
bkVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGE6IGxpc3QocGFyc2VyLnJl
YWRfY29udHJvbF9ibG9ja3MoKSkpCi0KLSAgICBkZWYgdGVzdF9yZWFkX2Zsb3dfY29udHJvbChz
ZWxmKToKLSAgICAgICAgZGF0YSA9ICdceDQwXHgwMVx4MDInCi0gICAgICAgIHBhcnNlciA9IG11
eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFy
c2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBs
ZW4oYmxvY2tzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBibG9ja3NbMF0uY2hhbm5l
bF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfRkxPV19DT05U
Uk9MLCBibG9ja3NbMF0ub3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGJsb2Nr
c1swXS5zZW5kX3F1b3RhKQotCi0gICAgZGVmIHRlc3RfcmVhZF9uZXdfY2hhbm5lbF9zbG90KHNl
bGYpOgotICAgICAgICBkYXRhID0gJ1x4ODBceDAxXHgwMlx4MDJceDAzJwotICAgICAgICBwYXJz
ZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICAjIFRPRE8oYmFz
aGkpOiBJbXBsZW1lbnQKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXV4LlBoeXNpY2FsQ29u
bmVjdGlvbkVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGE6IGxpc3QocGFy
c2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkpCi0KLSAgICBkZWYgdGVzdF9yZWFkX2ludmFsaWRf
bnVtYmVyX2ZpZWxkX2luX2NvbnRyb2xfYmxvY2soc2VsZik6Ci0gICAgICAgICMgTm8gbnVtYmVy
IGZpZWxkLgotICAgICAgICBkYXRhID0gJycKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFt
ZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJv
ciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAgICAjIFRoZSBsYXN0IHR3byBieXRlcyBh
cmUgbWlzc2luZy4KLSAgICAgICAgZGF0YSA9ICdceDdlJwotICAgICAgICBwYXJzZXIgPSBtdXgu
X011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0gICAgICAgICMgTWlzc2luZyB0aGUg
bGFzdCBvbmUgYnl0ZS4KLSAgICAgICAgZGF0YSA9ICdceDdmXHgwMFx4MDBceDAwXHgwMFx4MDBc
eDAxXHgwMCcKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0
YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251
bWJlcikKLQotICAgICAgICAjIFRoZSBsZW5ndGggb2YgbnVtYmVyIGZpZWxkIGlzIHRvbyBsYXJn
ZS4KLSAgICAgICAgZGF0YSA9ICdceDdmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYn
Ci0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0K
LSAgICAgICAgIyBUaGUgbXNiIG9mIHRoZSBmaXJzdCBieXRlIGlzIHNldC4KLSAgICAgICAgZGF0
YSA9ICdceDgwJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihk
YXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRf
bnVtYmVyKQotCi0gICAgICAgICMgVXNpbmcgMyBieXRlcyBlbmNvZGluZyBmb3IgMTI1LgotICAg
ICAgICBkYXRhID0gJ1x4N2VceDAwXHg3ZCcKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFt
ZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJv
ciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAgICAjIFVzaW5nIDkgYnl0ZXMgZW5jb2Rp
bmcgZm9yIDB4ZmZmZgotICAgICAgICBkYXRhID0gJ1x4N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4
MDBceGZmXHhmZicKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIo
ZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFk
X251bWJlcikKLQotICAgIGRlZiB0ZXN0X3JlYWRfaW52YWxpZF9zaXplX2FuZF9jb250ZW50cyhz
ZWxmKToKLSAgICAgICAgIyBPbmx5IGNvbnRhaW4gbnVtYmVyIGZpZWxkLgotICAgICAgICBkYXRh
ID0gJ1x4MDEnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRh
dGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG11eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJv
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLl9yZWFkX3NpemVfYW5kX2NvbnRl
bnRzKQotCi0gICAgZGVmIHRlc3RfY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHNlbGYpOgot
ICAgICAgICBkYXRhID0gbXV4Ll9jcmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9uc2UoY2hhbm5lbF9p
ZD0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9J0Zvb0JhcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbmNvZGluZz0wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVqZWN0ZWQ9RmFsc2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1x4MjBceDAxXHgwNkZvb0JhcicsIGRhdGEpCi0KLSAgICAgICAgZGF0YSA9IG11eC5f
Y3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPSdIZWxs
bycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNv
ZGluZz0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVqZWN0ZWQ9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgzMVx4MDJceDA1SGVs
bG8nLCBkYXRhKQotCi0gICAgZGVmIHRlc3RfY3JlYXRlX2Ryb3BfY2hhbm5lbChzZWxmKToKLSAg
ICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkPTEpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4NjBceDAxXHgwMCcsIGRhdGEpCi0KLSAgICAgICAgZGF0
YSA9IG11eC5fY3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkPTEsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZT0yMDAwLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J2Vycm9yJykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnXHg2MFx4MDFceDA3XHgwN1x4ZDBlcnJvcicsIGRhdGEpCi0KLSAgICAgICAgIyBy
ZWFzb24gbXVzdCBiZSBlbXB0eSBpZiBjb2RlIGlzIE5vbmUKLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9jcmVhdGVf
ZHJvcF9jaGFubmVsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAxLCBOb25lLCAnRm9vQmFy
JykKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3JlcXVlc3RfdGV4dChzZWxmKToKLSAgICAgICAgcmVx
dWVzdF90ZXh0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcigpCi0gICAgICAgIGNvbW1hbmQsIHBh
dGgsIHZlcnNpb24sIGhlYWRlcnMgPSBtdXguX3BhcnNlX3JlcXVlc3RfdGV4dChyZXF1ZXN0X3Rl
eHQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0dFVCcsIGNvbW1hbmQpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJy9lY2hvJywgcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
SFRUUC8xLjEnLCB2ZXJzaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDMsIGxlbihoZWFk
ZXJzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc2VydmVyLmV4YW1wbGUuY29tJywgaGVh
ZGVyc1snSG9zdCddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdodHRwOi8vZXhhbXBsZS5j
b20nLCBoZWFkZXJzWydPcmlnaW4nXSkKLQotCi1jbGFzcyBNdXhIYW5kbGVyVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbChzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9N
dXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVy
KHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAg
ICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9D
SEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXgu
X0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9
IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5l
bF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAg
ICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRl
X2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIGVu
Y29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0g
ICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3Rf
ZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTAsCi0gICAgICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3df
Y29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRf
cXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRy
b2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdXb3JsZCcpKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MywgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSht
dXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFtdLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50
c1syXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1dvcmxkJ10sIGRpc3Bh
dGNoZXIuY2hhbm5lbF9ldmVudHNbM10ubWVzc2FnZXMpCi0gICAgICAgICMgQ2hhbm5lbCAyCi0g
ICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2Vz
KDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKLSAgICAgICAgIyBDaGFubmVs
IDMKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVz
c2FnZXMoMykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1lc3NhZ2VzWzBdKQotICAgICAgICBjb250
cm9sX2Jsb2NrcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2Nr
cygpCi0gICAgICAgICMgVGhlcmUgc2hvdWxkIGJlIDggY29udHJvbCBibG9ja3M6Ci0gICAgICAg
ICMgICAtIDEgTmV3Q2hhbm5lbFNsb3QKLSAgICAgICAgIyAgIC0gMiBBZGRDaGFubmVsUmVzcG9u
c2VzIGZvciBjaGFubmVsIGlkIDIgYW5kIDMKLSAgICAgICAgIyAgIC0gNiBGbG93Q29udHJvbHMg
Zm9yIGNoYW5uZWwgaWQgMSAoaW5pdGlhbGl6ZSksICdIZWxsbycsICdXb3JsZCcsCi0gICAgICAg
ICMgICAgIGFuZCAzICdHb29kYnllJ3MKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg5LCBsZW4o
Y29udHJvbF9ibG9ja3MpKQotCi0gICAgZGVmIHRlc3RfcGh5c2ljYWxfY29ubmVjdGlvbl93cml0
ZV9mYWlsdXJlKHNlbGYpOgotICAgICAgICAjIFVzZSBfRmFpbE9uV3JpdGVDb25uZWN0aW9uLgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoY29ubmVjdGlvbj1fRmFpbE9u
V3JpdGVDb25uZWN0aW9uKCkpCi0KLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0
Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRp
c3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAjIExldCB0
aGUgd29ya2VyIGVjaG8gYmFjayAnSGVsbG8nLiBJdCBjYXVzZXMgX0ZhaWxPbldyaXRlQ29ubmVj
dGlvbgotICAgICAgICAjIHJhaXNpbmcgYW4gZXhjZXB0aW9uLgotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MSwgbWVzc2FnZT0nSGVsbG8nKSkKLQotICAgICAgICAjIExldCB0aGUgd29ya2Vy
IGV4aXQuIFRoaXMgd2lsbCBiZSB1bm5lY2Vzc2FyeSB3aGVuCi0gICAgICAgICMgX0xvZ2ljYWxD
b25uZWN0aW9uLndyaXRlKCkgaXMgY2hhbmdlZCB0byB0aHJvdyBhbiBleGNlcHRpb24gaWYKLSAg
ICAgICAgIyB3b2tlIHVwIGJ5IG9uX3dyaXRlcl9kb25lLgotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgICMgQWxsIHRocmVhZHMgc2hv
dWxkIGJlIGRvbmUuCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3Vu
dGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfYmxvY2tlZChzZWxmKToK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0
Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9N
dXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0
KCkKLQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxf
TlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAg
IGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUo
Ci0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgT24gcmVjZWl2
aW5nIHRoaXMgJ0hlbGxvJywgdGhlIHNlcnZlciB0cmllcyB0byBlY2hvIGJhY2sgJ0hlbGxvJywK
LSAgICAgICAgIyBidXQgaXQgd2lsbCBiZSBibG9ja2VkIHNpbmNlIHRoZXJlJ3Mgbm8gc2VuZCBx
dW90YSBhdmFpbGFibGUgZm9yIHRoZQotICAgICAgICAjIGNoYW5uZWwgMi4KLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0KLSAgICAgICAgIyBXYWl0IHVu
dGlsIHRoZSB3b3JrZXIgaXMgYmxvY2tlZCBkdWUgdG8gc2VuZCBxdW90YSBzaG9ydGFnZS4KLSAg
ICAgICAgdGltZS5zbGVlcCgxKQotCi0gICAgICAgICMgQ2xvc2UgdGhlIGNoYW5uZWwgMi4gVGhl
IHdvcmtlciBzaG91bGQgYmUgbm90aWZpZWQgb2YgdGhlIGVuZCBvZgotICAgICAgICAjIHdyaXRl
ciB0aHJlYWQgYW5kIHN0b3Agd2FpdGluZyBmb3Igc2VuZCBxdW90YSB0byBiZSByZXBsZW5pc2hl
ZC4KLSAgICAgICAgZHJvcF9jaGFubmVsID0gX2NyZWF0ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hh
bm5lbF9pZD0yKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZHJvcF9j
aGFubmVsKQotCi0gICAgICAgICMgTWFrZSBzdXJlIHRoZSBjaGFubmVsIDEgaXMgYWxzbyBjbG9z
ZWQuCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IF9jcmVhdGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNo
YW5uZWxfaWQ9MSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhkcm9wX2No
YW5uZWwpCi0KLSAgICAgICAgIyBBbGwgdGhyZWFkcyBzaG91bGQgYmUgZG9uZS4KLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQot
Ci0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFfZW5jb2Rpbmcoc2VsZik6Ci0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBf
TXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxl
cihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAg
ICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0Zf
Q0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4
Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZGVsdGEgPSAnR0VUIC9lY2hv
IEhUVFAvMS4xXHJcblxyXG4nCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRl
X2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVu
Y29kaW5nPTEsIGVuY29kZWRfaGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250
cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90
YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkK
LQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFz
c2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNb
Ml0ubWVzc2FnZXMpCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3Nh
Z2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKLQot
ICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRhX2VuY29kaW5nX292ZXJyaWRlKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRj
aGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011
eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQo
KQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVN
QkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgICMgT3ZlcnJpZGUg
U2VjLVdlYlNvY2tldC1Qcm90b2NvbC4KLSAgICAgICAgZGVsdGEgPSAoJ0dFVCAvZWNobyBIVFRQ
LzEuMVxyXG4nCi0gICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiB4LWZv
b1xyXG4nCi0gICAgICAgICAgICAgICAgICdcclxuJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVx
dWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNo
YW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAg
ICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lk
PTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Zmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0g
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdI
ZWxsbycpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScp
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91
dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5j
aGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1l
c3NhZ2VzWzBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd4LWZvbycsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5yZXF1ZXN0LndzX3By
b3RvY29sKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFfYWZ0ZXJfaWRlbnRpdHko
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAg
IGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9
IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxl
ci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5J
VElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0gICAgICAgICMgU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbCBpcyBkaWZmZXJlbnQgZnJvbSBjbGllbnQncyBvcGVuaW5nIGhh
bmRzaGFrZQotICAgICAgICAjIG9mIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotICAgICAgICAj
IFRPRE8oYmFzaGkpOiBSZW1vdmUgVXBncmFkZSwgQ29ubmVjdGlvbiwgU2VjLVdlYlNvY2tldC1L
ZXkgYW5kCi0gICAgICAgICMgU2VjLVdlYlNvY2tldC1WZXJzaW9uLgotICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSA9ICgKLSAgICAgICAgICAgICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJwotICAg
ICAgICAgICAgJ0hvc3Q6IHNlcnZlci5leGFtcGxlLmNvbVxyXG4nCi0gICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbDogeC1mb29cclxuJwotICAgICAgICAgICAgJ0Nvbm5lY3Rpb246
IFVwZ3JhZGVcclxuJwotICAgICAgICAgICAgJ09yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJc
bicKLSAgICAgICAgICAgICdcclxuJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9
MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFu
ZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVs
X3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xf
ZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICBkZWx0YSA9ICdHRVQgL2Vj
aG8gSFRUUC8xLjFcclxuXHJcbicKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVh
dGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9Mywg
ZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2Nv
bnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1
b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9s
KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0nV29ybGQnKSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTMsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4
X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNb
Ml0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydXb3JsZCddLCBkaXNwYXRj
aGVyLmNoYW5uZWxfZXZlbnRzWzNdLm1lc3NhZ2VzKQotICAgICAgICAjIENoYW5uZWwgMgotICAg
ICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygy
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2FnZXNbMF0pCi0gICAgICAgICMgQ2hhbm5lbCAz
Ci0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3Nh
Z2VzKDMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtZXNzYWdlc1swXSkKLSAgICAgICAgIyBIYW5k
c2hha2UgYmFzZSBzaG91bGQgYmUgdXBkYXRlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
LSAgICAgICAgICAgICd4LWZvbycsCi0gICAgICAgICAgICBtdXhfaGFuZGxlci5faGFuZHNoYWtl
X2Jhc2UuX2hlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnXSkKLQotICAgIGRlZiB0ZXN0
X2FkZF9jaGFubmVsX2RlbHRhX3JlbW92ZV9oZWFkZXIoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rp
c3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0
LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9o
YW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9T
TE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFM
X1FVT1RBX0ZPUl9DTElFTlQpCi0gICAgICAgICMgT3ZlcnJpZGUgaGFuZHNoYWtlIGRlbHRhIGJh
c2UuCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gKAotICAgICAgICAgICAgJ0dFVCAvZWNo
byBIVFRQLzEuMVxyXG4nCi0gICAgICAgICAgICAnSG9zdDogc2VydmVyLmV4YW1wbGUuY29tXHJc
bicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiB4LWZvb1xyXG4nCi0gICAg
ICAgICAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgICAgICAgICAnT3JpZ2luOiBo
dHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICAgICAgICAgJ1xyXG4nKQotICAgICAgICBhZGRf
Y2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAg
ICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBf
Y3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAg
ICAgICMgUmVtb3ZlIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgaGVhZGVyLgotICAgICAgICBkZWx0
YSA9ICgnR0VUIC9lY2hvIEhUVFAvMS4xXHJcbicKLSAgICAgICAgICAgICAgICAgJ1NlYy1XZWJT
b2NrZXQtUHJvdG9jb2w6JwotICAgICAgICAgICAgICAgICAnXHJcbicpCi0gICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTEsIGVuY29kZWRfaGFuZHNoYWtlPWRlbHRh
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9Miwg
bWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9
J1dvcmxkJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnll
JykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIp
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVu
dHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNw
YXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFsnV29ybGQnXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1szXS5tZXNzYWdlcykKLSAg
ICAgICAgIyBDaGFubmVsIDIKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24u
Z2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4o
bWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBd
KQotICAgICAgICAjIENoYW5uZWwgMwotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEs
IGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbWVzc2Fn
ZXNbMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAneC1mb28nLAot
ICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5yZXF1ZXN0LndzX3Byb3Rv
Y29sKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgTm9uZSwKLSAgICAg
ICAgICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbM10ucmVxdWVzdC53c19wcm90b2NvbCkK
LQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRhX2VuY29kaW5nX3Blcm1lc3NhZ2VfZGVm
bGF0ZShzZWxmKToKLSAgICAgICAgIyBFbmFibGUgcGVybWVzc2FnZSBkZWZsYXRlIGV4dGVuc2lv
biBvbiB0aGUgaW1wbGljaXRseSBvcGVuZWQgY2hhbm5lbC4KLSAgICAgICAgZXh0ZW5zaW9ucyA9
IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAotICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0Vf
REVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgKLSAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zPWV4dGVuc2lvbnMpCi0g
ICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFu
ZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhf
aGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11
eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAg
ICAgZGVsdGEgPSAnR0VUIC9lY2hvIEhUVFAvMS4xXHJcblxyXG4nCi0gICAgICAgIGFkZF9jaGFu
bmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAg
ICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTEsIGVuY29kZWRfaGFuZHNoYWtlPWRlbHRhKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
Ci0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT0yMCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGNvbXByZXNzZWQgJ0hlbGxv
JyBvbiBsb2dpY2FsIGNoYW5uZWwgMSBhbmQgMi4KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNv
bXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIu
REVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNv
bXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29t
cHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8g
PSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwg
bWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJzdjE9VHJ1ZSkpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0g
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNv
bXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1U
cnVlKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScp
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91
dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5j
aGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hl
bGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgICMg
V3JpdHRlbiAnSGVsbG8ncyBzaG91bGQgYmUgY29tcHJlc3NlZC4KLSAgICAgICAgbWVzc2FnZXMg
PSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2VzWzBdKQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcHJl
c3NlZF9oZWxsbywgbWVzc2FnZXNbMF0pCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0
YV9lbmNvZGluZ19yZW1vdmVfZXh0ZW5zaW9ucyhzZWxmKToKLSAgICAgICAgIyBFbmFibGUgcGVy
bWVzc2FnZSBkZWZsYXRlIGV4dGVuc2lvbiBvbiB0aGUgaW1wbGljaXRseSBvcGVuZWQgY2hhbm5l
bC4KLSAgICAgICAgZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAotICAgICAg
ICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgKLSAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9l
eHRlbnNpb25zPWV4dGVuc2lvbnMpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3Bh
dGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBk
aXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5k
bGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9U
UywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FV
T1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgIyBSZW1vdmUgcGVybWVzc2FnZSBkZWZsYXRlIGV4
dGVuc2lvbi4KLSAgICAgICAgZGVsdGEgPSAoJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAg
ICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnM6XHJcbicKLSAgICAgICAgICAg
ICAgICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGlu
Zz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9
IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjAp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0g
ICAgICAgICMgU2VuZCBjb21wcmVzc2VkIG1lc3NhZ2Ugb24gbG9naWNhbCBjaGFubmVsIDIuIFRo
ZSBtZXNzYWdlIHNob3VsZAotICAgICAgICAjIGJlIHJlamVjdGVkIChzaW5jZSByc3YxIGlzIHNl
dCkuCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHps
aWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMp
Ci0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQot
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZM
VVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1UcnVlKSkKLQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAg
ICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYg
Yi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9OT1JNQUxfQ0xPU1VSRSwgZHJvcF9jaGFubmVsLmRy
b3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBkcm9wX2NoYW5uZWwuY2hhbm5l
bF9pZCkKLSAgICAgICAgIyBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uIHNob3VsZCBiZSByYWlz
ZWQgb24gbG9naWNhbCBjaGFubmVsIDIuCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3Rh
bmNlKGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0uZXhjZXB0aW9uLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uKSkKLQotICAg
IGRlZiB0ZXN0X2FkZF9jaGFubmVsX2ludmFsaWRfZW5jb2Rpbmcoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAg
IG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hB
Tk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9J
TklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBf
Y3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxf
cmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAg
IGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MywKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
PWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5k
bGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9
IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3Jp
dHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01V
WF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJP
UF9DT0RFX1VOS05PV05fUkVRVUVTVF9FTkNPRElORywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1v
bi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3Rf
YWRkX2NoYW5uZWxfaW5jb21wbGV0ZV9oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rp
c3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0
LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9o
YW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9T
TE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFM
X1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgaW5jb21wbGV0ZV9lbmNvZGVkX2hhbmRzaGFr
ZSA9ICdHRVQgL2VjaG8gSFRUUC8xLjEnCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBf
Y3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lk
PTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1pbmNvbXBsZXRl
X2VuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1l
c3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIu
d2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKDEg
aW4gZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50cykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5v
dCAyIGluIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hh
bm5lbF9kdXBsaWNhdGVfY2hhbm5lbF9pZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hl
cigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3Bh
dGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIu
YWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFf
Rk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVz
dF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0y
LCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5k
c2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9o
ZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBl
bmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hh
a2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVx
dWVzdCkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAg
ICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxv
Y2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NI
QU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfQ0hBTk5FTF9B
TFJFQURZX0VYSVNUUywKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJv
cF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxf
RU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9kcm9wX2NoYW5u
ZWwoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAg
ICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxl
ciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFu
ZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5f
SU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAg
ZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykK
LSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVz
dF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZHJv
cF9jaGFubmVsID0gX2NyZWF0ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hhbm5lbF9pZD0yKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGRyb3BfY2hhbm5lbCkKLQotICAgICAg
ICAjIFRlcm1pbmF0ZSBpbXBsaWNpdGx5IG9wZW5lZCBjaGFubmVsLgotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBl
eGNlcHRpb24gPSBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLmV4Y2VwdGlvbgotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoZXhjZXB0aW9uLl9fY2xhc3NfXyA9PSBDb25uZWN0aW9uVGVybWlu
YXRlZEV4Y2VwdGlvbikKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfcGluZ19mcmFtZShzZWxmKToK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0
Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9N
dXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05V
TUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBh
ZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAot
ICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wg
PSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEz
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQot
ICAgICAgICBwaW5nX2ZyYW1lID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxs
byBXb3JsZCEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
Y29kZT1jb21tb24uT1BDT0RFX1BJTkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMocGluZ19mcmFtZSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2Fn
ZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29v
ZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGls
X2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlv
bi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29tbW9uLk9QQ09ERV9QT05HLCBtZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0K
LSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50ZWRfcGluZyhzZWxmKToKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhN
b2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJl
cXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAg
bXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFO
TkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lO
SVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9j
cmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9y
ZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAg
Y2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9
ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
YWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zs
b3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEzKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNl
bmQgYSBwaW5nIHdpdGggbWVzc2FnZSAnSGVsbG8gd29ybGQhJyBpbiB0d28gZnJhZ21lbnRlZCBm
cmFtZXMuCi0gICAgICAgIHBpbmdfZnJhbWUxID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZT0nSGVsbG8gJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmluPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKHBpbmdfZnJhbWUxKQotICAgICAgICBwaW5nX2ZyYW1lMiA9IF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2U9J1dvcmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZ19mcmFtZTIpCi0KLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAg
bWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdl
cygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgbWVzc2Fn
ZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEn
LCBtZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVu
dGVkX3Bpbmdfd2hpbGVfcmVjZWl2aW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9
IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5k
bGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAg
ICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9P
Rl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
dXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hh
bm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAg
ICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3Jl
YXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTE5KQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAg
ICAjIFNlbmQgYSBmcmFnbWVudGVkIGZyYW1lIG9mIG1lc3NhZ2UgJ0hlbGxvICcuCi0gICAgICAg
IGhlbGxvID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGhlbGxvKQotCi0gICAgICAgICMgQmVmb3JlIHNlbmRpbmcgdGhl
IGxhc3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZSwgc2VuZCBhCi0gICAgICAgICMg
ZnJhZ21lbnRlZCBwaW5nLgotICAgICAgICBwaW5nMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J1BpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9Q
Q09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcxKQot
ICAgICAgICBwaW5nMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J25nIScsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04p
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzIpCi0KLSAgICAgICAg
IyBTZW5kIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhlIG1lc3NhZ2UuCi0gICAgICAg
IHdvcmxkID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nV29ybGQhJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyh3b3JsZCkKLQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNz
YWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQotICAgICAgICBj
b250cm9sX21lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xf
bWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BPTkcs
IGNvbnRyb2xfbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdQaW5nIScsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0
X3JlY2VpdmVfdHdvX3Bpbmdfd2hpbGVfcmVjZWl2aW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlz
cGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4
Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0
YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFM
X05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRy
b2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3Rh
PTI1KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkK
LQotICAgICAgICAjIFNlbmQgYSBmcmFnbWVudGVkIGZyYW1lIG9mIG1lc3NhZ2UgJ0hlbGxvICcu
Ci0gICAgICAgIGhlbGxvID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGhlbGxvKQotCi0gICAgICAgICMgQmVmb3JlIHNl
bmRpbmcgdGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZSwgc2VuZCBhCi0g
ICAgICAgICMgZnJhZ21lbnRlZCBwaW5nIGFuZCBhIG5vbi1mcmFnbWVudGVkIHBpbmcuCi0gICAg
ICAgIHBpbmcxID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUGknLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJTkcpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzEpCi0gICAgICAgIHBpbmcyID0gX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZT0nbmchJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhwaW5nMikKLSAgICAgICAgcGluZzMgPSBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtZXNzYWdlPSdQb25nIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9
Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KHBpbmczKQotCi0gICAgICAgICMgU2VuZCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lIG9mIHRo
ZSBtZXNzYWdlLgotICAgICAgICB3b3JsZCA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1dv
cmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09E
RV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMod29y
bGQpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9
MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5f
bWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxkISddLCBt
ZXNzYWdlcykKLSAgICAgICAgY29udHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBdWydtZXNzYWdl
J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9s
X21lc3NhZ2VzWzFdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUG9uZyEn
LCBjb250cm9sX21lc3NhZ2VzWzFdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZl
X21lc3NhZ2Vfd2hpbGVfcmVjZWl2aW5nX2ZyYWdtZW50ZWRfcGluZyhzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9N
dXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVy
KHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAg
ICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9D
SEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXgu
X0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9
IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5l
bF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAg
ICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRl
X2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xOSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBT
ZW5kIGEgZnJhZ21lbnRlZCBwaW5nLgotICAgICAgICBwaW5nMSA9IF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2U9J1BpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlu
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29t
bW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBp
bmcxKQotCi0gICAgICAgICMgQmVmb3JlIHNlbmRpbmcgdGhlIGxhc3QgZnJhZ21lbnRlZCBwaW5n
LCBzZW5kIGEgbWVzc2FnZS4KLSAgICAgICAgIyBUaGUgbG9naWNhbCBjaGFubmVsICgyKSBzaG91
bGQgYmUgZHJvcHBlZC4KLSAgICAgICAgbWVzc2FnZSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZT0nSGVsbG8gd29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaW49VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhtZXNz
YWdlKQotCi0gICAgICAgICMgU2VuZCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lIG9mIHRoZSBt
ZXNzYWdlLgotICAgICAgICBwaW5nMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J25nIScs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05U
SU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzIpCi0K
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9
MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIg
aW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAg
ICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAg
ICMgTm8gbWVzc2FnZSBzaG91bGQgYmUgc2VudCBvbiBjaGFubmVsIDIuCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKEtleUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNz
YWdlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMikKLQotICAgIGRlZiB0ZXN0X3NlbmRf
cGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAg
ICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5k
bGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9o
YW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4
Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL3Bpbmcn
KQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1
ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBm
bG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlz
aGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19j
b250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnll
JykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9u
ZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdl
dF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21tb24uT1BDT0RFX1BJTkcsIG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnUGluZyEnLCBtZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRl
c3Rfc2VuZF9mcmFnbWVudGVkX3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFk
ZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZP
Ul9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3Rf
aGVhZGVyKHBhdGg9Jy9waW5nJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVh
dGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9Miwg
ZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNo
YWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3Jl
cXVlc3QpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggMyBieXRlcy4gVGhpcyBpc24ndCBlbm91Z2gg
dG8gc2VuZCB0aGUgd2hvbGUgcGluZyBmcmFtZQotICAgICAgICAjIGJlY2F1c2UgdGhlIGZyYW1l
IHdpbGwgaGF2ZSA1IGJ5dGVzIG1lc3NhZ2UoJ1BpbmchJykuIFRoZSBmcmFtZQotICAgICAgICAj
IHNob3VsZCBiZSBmcmFnbWVudGVkLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zs
b3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTMpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgV2Fp
dCB1bnRpbCB0aGUgd29ya2VyIGlzIGJsb2NrZWQgZHVlIHRvIHNlbmQgcXVvdGEgc2hvcnRhZ2Uu
Ci0gICAgICAgIHRpbWUuc2xlZXAoMSkKLQotICAgICAgICAjIFJlcGxlbmlzaCByZW1haW5pbmcg
MiArIDEgYnl0ZXMgKGluY2x1ZGluZyBleHRyYSBjb3N0KS4KLSAgICAgICAgZmxvd19jb250cm9s
ID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0z
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0y
KSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9j
b250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09E
RV9QSU5HLCBtZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1BpbmchJywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZnJh
Z21lbnRlZF9waW5nX3doaWxlX3NlbmRpbmdfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVy
ID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhh
bmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQot
ICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVS
X09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcigKLSAgICAgICAgICAgIHBhdGg9Jy9waW5nX3do
aWxlX2hlbGxvX3dvcmxkJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0KLSAgICAgICAgIyBBcHBsaWNhdGlvbiB3aWxsIHNlbmQ6Ci0gICAgICAgICMgLSB0ZXh0
IG1lc3NhZ2UgJ0hlbGxvICcgd2l0aCBmaW49MAotICAgICAgICAjIC0gcGluZyB3aXRoICdQaW5n
IScgbWVzc2FnZQotICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdXb3JsZCEnIHdpdGggZmluPTEK
LSAgICAgICAgIyBSZXBsZW5pc2ggKDYgKyAxKSArICgyICsgMSkgYnl0ZXMgc28gdGhhdCB0aGUg
cGluZyB3aWxsIGJlCi0gICAgICAgICMgZnJhZ21lbnRlZCBvbiB0aGUgbG9naWNhbCBjaGFubmVs
LgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEwKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICB0aW1lLnNsZWVwKDEpCi0KLSAgICAgICAg
IyBSZXBsZW5pc2ggcmVtYWluaW5nIDMgKyA2IGJ5dGVzLgotICAgICAgICBmbG93X2NvbnRyb2wg
PSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTkp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIp
KQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21l
c3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyBXb3JsZCEnXSwgbWVz
c2FnZXMpCi0gICAgICAgIGNvbnRyb2xfbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0
X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bW1vbi5PUENPREVfUElORywgY29udHJvbF9tZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgY29udHJvbF9tZXNzYWdlc1swXVsnbWVzc2FnZSdd
KQotCi0gICAgZGVmIHRlc3Rfc2VuZF9mcmFnbWVudGVkX3R3b19waW5nX3doaWxlX3NlbmRpbmdf
ZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2Nr
X3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAg
ICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikK
LSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hh
bm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJ
RU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRl
cigKLSAgICAgICAgICAgIHBhdGg9Jy90d29fcGluZ193aGlsZV9oZWxsb193b3JsZCcpCi0gICAg
ICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJh
bWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgQXBwbGlj
YXRpb24gd2lsbCBzZW5kOgotICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdIZWxsbyAnIHdpdGgg
ZmluPTAKLSAgICAgICAgIyAtIHBpbmcgd2l0aCAnUGluZyEnIG1lc3NhZ2UKLSAgICAgICAgIyAt
IHBpbmcgd2l0aCAnUG9uZyEnIG1lc3NhZ2UKLSAgICAgICAgIyAtIHRleHQgbWVzc2FnZSAnV29y
bGQhJyB3aXRoIGZpbj0xCi0gICAgICAgICMgUmVwbGVuaXNoICg2ICsgMSkgKyAoMiArIDEpIGJ5
dGVzIHNvIHRoYXQgdGhlIGZpcnN0IHBpbmcgd2lsbCBiZQotICAgICAgICAjIGZyYWdtZW50ZWQg
b24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9m
bG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xMCkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgdGlt
ZS5zbGVlcCgxKQotCi0gICAgICAgICMgUmVwbGVuaXNoIHJlbWFpbmluZyAzICsgKDUgKyAxKSAr
IDYgYnl0ZXMuIFRoZSBzZWNvbmQgcGluZyB3b24ndAotICAgICAgICAjIGJlIGZyYWdtZW50ZWQg
b24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9m
bG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xNSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFz
c2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAg
ICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxkISddLCBtZXNzYWdlcykKLSAg
ICAgICAgY29udHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9j
b250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09E
RV9QSU5HLCBjb250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnUGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBjb250cm9sX21lc3NhZ2VzWzFd
WydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUG9uZyEnLCBjb250cm9sX21l
c3NhZ2VzWzFdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Ryb3BfY2hhbm5lbChz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAg
ZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0g
bXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVy
LnN0YXJ0KCkKLQotICAgICAgICAjIERyb3BDaGFubmVsIGZvciBjaGFubmVsIGlkIDEgd2hpY2gg
ZG9lc24ndCBoYXZlIHJlYXNvbi4KLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1l
KCdceDAwXHg2MFx4MDFceDAwJywgbWFzaz1UcnVlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGZyYW1lKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxl
ci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBu
ZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0
ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhf
T1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1Bf
Q09ERV9BQ0tOT1dMRURHRUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVs
LmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBkcm9wX2NoYW5uZWwuY2hh
bm5lbF9pZCkKLQotICAgIGRlZiB0ZXN0X3R3b19mbG93X2NvbnRyb2woc2VsZik6Ci0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBf
TXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxl
cihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAg
ICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0Zf
Q0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4
Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2Ug
PSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5u
ZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAg
ICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggNSBieXRlcy4K
LSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5l
bF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsZW5pc2hlZF9xdW90YT01KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgMTAgYnl0ZXMuIFRoZSBzZXJ2ZXIg
d2lsbCB0cnkgZWNobyBiYWNrIDEwIGJ5dGVzLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwgbWVzc2FnZT0nSGVsbG9Xb3JsZCcpKQotCi0gICAgICAgICMgUmVwbGVuaXNoIDUgKyAxIChw
ZXItbWVzc2FnZSBleHRyYSBjb3N0KSBieXRlcy4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2Ny
ZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAg
ICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG9Xb3JsZCddLCBtZXNzYWdlcykKLSAgICAg
ICAgcmVjZWl2ZWRfZmxvd19jb250cm9scyA9IFsKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAg
IGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wgYW5kIGIuY2hhbm5l
bF9pZCA9PSAyXQotICAgICAgICAjIFJlcGxlbmlzaG1lbnQgZm9yICdIZWxsb1dvcmxkJyArIDEK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMSwgcmVjZWl2ZWRfZmxvd19jb250cm9sc1swXS5z
ZW5kX3F1b3RhKQotICAgICAgICAjIFJlcGxlbmlzaG1lbnQgZm9yICdHb29kYnllJyArIDEKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4LCByZWNlaXZlZF9mbG93X2NvbnRyb2xzWzFdLnNlbmRf
cXVvdGEpCi0KLSAgICBkZWYgdGVzdF9ub19zZW5kX3F1b3RhX29uX3NlcnZlcihzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hl
ciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhI
YW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkK
LSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJF
Ul9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRz
aGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRf
Y2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAg
ICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwgbWVzc2FnZT0nSGVsbG9Xb3JsZCcpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgIyBKdXN0IHdhaXQgZm9yIDEgc2Vj
IHNvIHRoYXQgdGhlIHNlcnZlciBhdHRlbXB0cyB0byBlY2hvIGJhY2sKLSAgICAgICAgIyAnSGVs
bG9Xb3JsZCcuCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobXV4X2hhbmRsZXIud2FpdF91bnRp
bF9kb25lKHRpbWVvdXQ9MSkpCi0KLSAgICAgICAgIyBObyBtZXNzYWdlIHNob3VsZCBiZSBzZW50
IG9uIGNoYW5uZWwgMi4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNz
YWdlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMikKLQotICAgIGRlZiB0ZXN0X25vX3Nl
bmRfcXVvdGFfb25fc2VydmVyX2Zvcl9wZXJtZXNzYWdlX2V4dHJhX2Nvc3Qoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIg
PSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFu
ZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0g
ICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJf
T0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2No
YW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAg
ICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2Ny
ZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgICMgUmVwbGVu
aXNoIG9ubHkgbGVuKCdXb3JsZCcpIGJ5dGVzLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3Jl
YXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTUpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotICAgICAgICAj
IFNlcnZlciBzaG91bGQgbm90IGNhbGxiYWNrIGZvciB0aGlzIG1lc3NhZ2UuCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdXb3JsZCcpKQotCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgIyBKdXN0IHdhaXQg
Zm9yIDEgc2VjIHNvIHRoYXQgdGhlIHNlcnZlciBhdHRlbXB0cyB0byBlY2hvIGJhY2sKLSAgICAg
ICAgIyAnV29ybGQnLgotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG11eF9oYW5kbGVyLndhaXRf
dW50aWxfZG9uZSh0aW1lb3V0PTEpKQotCi0gICAgICAgICMgT25seSBvbmUgbWVzc2FnZSBzaG91
bGQgYmUgc2VudCBvbiBjaGFubmVsIDIuCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25u
ZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
WydIZWxsbyddLCBtZXNzYWdlcykKLQotICAgIGRlZiB0ZXN0X3F1b3RhX3Zpb2xhdGlvbl9ieV9j
bGllbnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0g
ICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFu
ZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhf
aGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11
eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywgMCkKLQotICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG9Xb3JsZCcpKQotCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGNvbnRy
b2xfYmxvY2tzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tz
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg1LCBsZW4oY29udHJvbF9ibG9ja3MpKQotICAg
ICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiBjb250cm9s
X2Jsb2NrcwotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1Bf
Q0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9TRU5EX1FV
T1RBX1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJv
cF9jb2RlKQotCi0gICAgZGVmIHRlc3RfY29uc3VtZV9xdW90YV9lbXB0eV9tZXNzYWdlKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNw
YXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXgu
X011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3Rh
cnQoKQotICAgICAgICAjIENsaWVudCBoYXMgMSBieXRlIHF1b3RhLgotICAgICAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xP
VFMsIDEpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0yKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAgICAgIyBTZW5kIGFuIGVtcHR5IG1lc3NhZ2Uu
IFB5d2Vic29ja2V0IGFsd2F5cyByZXBsZW5pc2hlcyAxIGJ5dGUgcXVvdGEKLSAgICAgICAgIyBm
b3IgZW1wdHkgbWVzc2FnZQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0n
JykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LSAgICAgICAgIyBUaGlzIG1lc3NhZ2UgdmlvbGF0ZXMgcXVvdGEgb24gY2hhbm5lbCBpZCAyLgot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0y
KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihkaXNwYXRjaGVyLmNoYW5uZWxf
ZXZlbnRzWzJdLm1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgZGlzcGF0
Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlc1swXSkKLQotICAgICAgICByZWNlaXZlZF9m
bG93X2NvbnRyb2xzID0gWwotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUg
PT0gbXV4Ll9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCBhbmQgYi5jaGFubmVsX2lkID09IDJdCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlY2VpdmVkX2Zsb3dfY29udHJvbHMpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIHJlY2VpdmVkX2Zsb3dfY29udHJvbHNbMF0uc2Vu
ZF9xdW90YSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBm
b3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQot
ICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElP
TiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotCi0g
ICAgZGVmIHRlc3RfY29uc3VtZV9xdW90YV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIg
PSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFu
ZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0g
ICAgICAgICMgQ2xpZW50IGhhcyBsZW4oJ0hlbGxvJykgKyBsZW4oJ0dvb2RieWUnKSArIDIgYnl0
ZXMgcXVvdGEuCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5J
VElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywgMTQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRk
X2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAg
ICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0g
X2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlJywgZmluPUZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQpKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nbGxvJywgZmluPVRydWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09O
VElOVUFUSU9OKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29v
ZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScp
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUo
dGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRf
d3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwg
bWVzc2FnZXMpCi0KLSAgICBkZWYgdGVzdF9mcmFnbWVudGVkX2NvbnRyb2xfbWVzc2FnZShzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlz
cGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4
Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0
YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFM
X05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL3BpbmcnKQotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAjIFJlcGxlbmlz
aCB0b3RhbCA2IGJ5dGVzIGluIDMgRmxvd0NvbnRyb2xzLgotICAgICAgICBmbG93X2NvbnRyb2wg
PSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0g
ICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVwbGVuaXNoZWRfcXVvdGE9MikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2Nv
bnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0zKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNz
YWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBtZXNzYWdlc1sw
XVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgbWVzc2FnZXNb
MF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X2NoYW5uZWxfc2xvdF92aW9sYXRpb25fYnlf
Y2xpZW50KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQot
ICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hh
bmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4
X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhz
bG90cz0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kX3F1b3Rh
PW11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3Jl
YXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotCi0gICAgICAgICMgVGhp
cyByZXF1ZXN0IHNob3VsZCBiZSByZWplY3RlZC4KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2Ug
PSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5u
ZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAg
ICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVf
Zmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J0hlbGxvJykpCi0KLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4
X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNb
Ml0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZGlzcGF0Y2hlci5jaGFubmVs
X2V2ZW50cy5oYXNfa2V5KDMpKQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAg
ICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9i
bG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1Bf
Q0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBkcm9wX2NoYW5uZWwuY2hhbm5l
bF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9ORVdfQ0hBTk5F
TF9TTE9UX1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwu
ZHJvcF9jb2RlKQotCi0gICAgZGVmIHRlc3RfcXVvdGFfb3ZlcmZsb3dfYnlfY2xpZW50KHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNw
YXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXgu
X011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3Rh
cnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhzbG90cz0xLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kX3F1b3RhPW11eC5fSU5JVElB
TF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0
ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVl
c3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFu
bmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNv
ZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRf
Y2hhbm5lbF9yZXF1ZXN0KQotICAgICAgICAjIFJlcGxlbmlzaCAweDdGRkZGRkZGRkZGRkZGRkYg
Ynl0ZXMgdHdpY2UuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9s
X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgcmVwbGVuaXNo
ZWRfcXVvdGE9MHg3RkZGRkZGRkZGRkZGRkZGKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3Nh
Z2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2Fp
dF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgK
LSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2Nv
bnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09E
RV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgZHJvcF9jaGFubmVs
LmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfU0VO
RF9RVU9UQV9PVkVSRkxPVywKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwu
ZHJvcF9jb2RlKQotCi0gICAgZGVmIHRlc3RfaW52YWxpZF9lbmNhcHN1bGF0ZWRfbWVzc2FnZShz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAg
ZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0g
bXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVy
LnN0YXJ0KCkKLQotICAgICAgICBmaXJzdF9ieXRlID0gKG11eC5fTVVYX09QQ09ERV9BRERfQ0hB
Tk5FTF9SRVFVRVNUIDw8IDUpCi0gICAgICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArCi0g
ICAgICAgICAgICAgICAgIG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMSkgKwotICAgICAgICAgICAg
ICAgICBtdXguX2VuY29kZV9udW1iZXIoMCkpCi0gICAgICAgIHBheWxvYWQgPSBtdXguX2VuY29k
ZV9jaGFubmVsX2lkKG11eC5fQ09OVFJPTF9DSEFOTkVMX0lEKSArIGJsb2NrCi0gICAgICAgIHRl
eHRfZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKHBheWxvYWQsIG9wY29kZT1jb21tb24uT1BD
T0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2s9
VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyh0ZXh0X2ZyYW1lKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGlt
ZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBm
b3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQot
ICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9JTlZBTElEX0VOQ0FQU1VM
QVRJTkdfTUVTU0FHRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJv
cF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxf
RU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfY2hhbm5lbF9pZF90cnVuY2F0
ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAg
ICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxl
ciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFu
ZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBUaGUgbGFzdCBieXRlIG9mIHRoZSBjaGFubmVsIGlk
IGlzIG1pc3NpbmcuCi0gICAgICAgIGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHg4MCcs
IG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIg
Zm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkK
LSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfQ0hBTk5FTF9JRF9UUlVO
Q0FURUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5U
X0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2
ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0ZXN0X2lubmVyX2ZyYW1lX3RydW5jYXRlZChzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlz
cGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4
Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0
YXJ0KCkKLQotICAgICAgICAjIEp1c3QgY29udGFpbiBjaGFubmVsIGlkIDEuCi0gICAgICAgIGZy
YW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMScsIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJv
cF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0
aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2Rl
ID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobXV4Ll9EUk9QX0NPREVfRU5DQVBTVUxBVEVEX0ZSQU1FX0lTX1RSVU5DQVRFRCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2Rl
KQotCi0gICAgZGVmIHRlc3RfdW5rbm93bl9tdXhfb3Bjb2RlKHNlbGYpOgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1v
Y2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVx
dWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgICAg
ICMgVW5kZWZpbmVkIG9wY29kZSA1Ci0gICAgICAgIGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFt
ZSgnXHgwMFx4YTAnLCBtYXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRf
dW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0g
ICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250
cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVf
RFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1VO
S05PV05fTVVYX09QQ09ERSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwu
ZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJO
QUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfaW52YWxpZF9tdXhfY29u
dHJvbF9ibG9jayhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0
KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11
eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAg
IG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAjIERyb3BDaGFubmVsIGNvbnRhaW5zIDEg
Ynl0ZSByZWFzb24KLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKCdceDAwXHg2
MFx4MDBceDAxXHgwMCcsIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmcmFtZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2Fp
dF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgK
LSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2Nv
bnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09E
RV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVf
SU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9w
X2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFU
VVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfcGVybWVz
c2FnZV9kZWZsYXRlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVl
c3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAg
bXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAg
ICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9z
bG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQot
Ci0gICAgICAgICMgRW5hYmxlIHBlcm1lc3NhZ2UgZGVmbGF0ZSBleHRlbnNpb24gb24gbG9naWNh
bCBjaGFubmVsIDIuCi0gICAgICAgIGV4dGVuc2lvbnMgPSBjb21tb24uUEVSTUVTU0FHRV9ERUZM
QVRFX0VYVEVOU0lPTgotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVz
dF9oZWFkZXIocGF0aD0nL2VjaG8nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucz1leHRlbnNpb25zKQotICAgICAgICBhZGRfY2hh
bm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAg
ICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3Jl
YXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIwKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAg
ICAjIFNlbmQgY29tcHJlc3NlZCAnSGVsbG8nIHR3aWNlLgotICAgICAgICBjb21wcmVzcyA9IHps
aWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwg
emxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxv
MSA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8x
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvMSA9IGNvbXByZXNzZWRfaGVsbG8xWzotNF0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsbzEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnN2MT1UcnVlKSkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbzIgPSBjb21w
cmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMiArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbzIg
PSBjb21wcmVzc2VkX2hlbGxvMls6LTRdCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBt
ZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJzdjE9VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJywgJ0hl
bGxvJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50
c1syXS5tZXNzYWdlcykKLSAgICAgICAgIyBXcml0dGVuICdIZWxsbydzIHNob3VsZCBiZSBjb21w
cmVzc2VkLgotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihtZXNzYWdlcykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcHJlc3NlZF9oZWxsbzEsIG1lc3NhZ2VzWzBd
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8yLCBtZXNzYWdlc1sx
XSkKLQotCi0gICAgZGVmIHRlc3RfcGVybWVzc2FnZV9kZWZsYXRlX2ZyYWdtZW50ZWRfbWVzc2Fn
ZShzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAot
ICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgKLSAgICAgICAgICAgIGxvZ2ljYWxfY2hh
bm5lbF9leHRlbnNpb25zPWV4dGVuc2lvbnMpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9j
a0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1
ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11
eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5F
TF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklU
SUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgIyBTZW5kIGNvbXByZXNzZWQgJ0hlbGxv
SGVsbG9IZWxsbycgYXMgZnJhZ21lbnRlZCBtZXNzYWdlLgotICAgICAgICBjb21wcmVzcyA9IHps
aWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwg
emxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvSGVsbG9IZWxsbycpCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLQotICAgICAgICBtID0gbGVu
KGNvbXByZXNzZWRfaGVsbG8pIC8gMgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG9b
Om1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwgcnN2MT1U
cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BD
T0RFX1RFWFQpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG9bbTpdLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLCByc3YxPUZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVB
VElPTikpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUn
KSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25l
KHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvSGVsbG9IZWxs
byddLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNb
MV0ubWVzc2FnZXMpCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX21lc3NhZ2VzKDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3Nh
Z2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wcmVzc2VkX2hlbGxvLCBtZXNzYWdl
c1swXSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfYmFkX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlz
cGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4
Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0
YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFM
X05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAjIFNlbmQgYSBm
cmFtZSB3aXRoIGZpbj1GYWxzZSwgYW5kIHRoZW4gc2VuZCBhIGZyYW1lIHdpdGgKLSAgICAgICAg
IyBvcGNvZGU9VEVYVCAobm90IENPTlRJTlVBVElPTikuIExvZ2ljYWwgY2hhbm5lbCAyIHNob3Vs
ZCBiZSBkcm9wcGVkLgotICAgICAgICBmcmFtZTEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZT0nSGVsbG8gJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1G
YWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21t
b24uT1BDT0RFX1RFWFQpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJh
bWUxKQotICAgICAgICBmcmFtZTIgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nV29ybGQh
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVf
VEVYVCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZTIpCi0KLSAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9l
Y2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9MCwKLSAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAg
ICAgIyBTZW5kIGEgZnJhbWUgd2l0aCBvcGNvZGU9Q09OVElOVUFUSU9OIHdpdGhvdXQgYSBwcmVj
ZWRpbmcgZnJhbWUKLSAgICAgICAgIyB0aGUgZmluIG9mIHdoaWNoIGlzIG5vdCBzZXQuIExvZ2lj
YWwgY2hhbm5lbCAzIHNob3VsZCBiZSBkcm9wcGVkLgotICAgICAgICBmcmFtZTMgPSBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUzKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
ID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFu
bmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAg
ICAgICBjaGFubmVsX2lkPTQsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRz
aGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgU2VuZCBhIGZyYW1lIHdpdGgg
b3Bjb2RlPVBJTkcgYW5kIGZpbj1GYWxzZSwgYW5kIHRoZW4gc2VuZCBhIGZyYW1lCi0gICAgICAg
ICMgd2l0aCBvcGNvZGU9VEVYVCAobm90IENPTlRJTlVBVElPTikuIExvZ2ljYWwgY2hhbm5lbCA0
IHNob3VsZCBiZQotICAgICAgICAjIGRyb3BwZWQuCi0gICAgICAgIGZyYW1lNCA9IF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlPSdQaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJTkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZnJhbWU0KQotICAgICAgICBmcmFtZTUgPSBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD00LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZT0nSGVsbG8nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9
Y29tbW9uLk9QQ09ERV9URVhUKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZyYW1lNSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5
ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2Rv
bmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWxzID0gWwotICAgICAgICAgICAg
YiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3Mo
KQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5F
TF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBsZW4oZHJvcF9jaGFubmVscykpCi0gICAg
ICAgIGZvciBkIGluIGRyb3BfY2hhbm5lbHM6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG11eC5fRFJPUF9DT0RFX0JBRF9GUkFHTUVOVEFUSU9OLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkLmRyb3BfY29kZSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAg
IHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3Rfc3RyZWFtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rfc3RyZWFtLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWFjZmViMDQ4ZDNiMjAzMmE3OTQ4Y2ZhMmFkZWE3Y2U2
NGY5NWFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC90ZXN0X3N0cmVhbS5weQorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLSMh
L3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9y
IHN0cmVhbSBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lz
X3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxl
LgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgc3RyZWFtCi0KLQotY2xhc3MgU3RyZWFtVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3Igc3RyZWFtIG1vZHVsZS4iIiIKLQotICAgIGRlZiB0
ZXN0X2NyZWF0ZV9oZWFkZXIoc2VsZik6Ci0gICAgICAgICMgbW9yZSwgcnN2MSwgLi4uLCByc3Y0
IGFyZSBhbGwgdHJ1ZQotICAgICAgICBoZWFkZXIgPSBzdHJlYW0uY3JlYXRlX2hlYWRlcihjb21t
b24uT1BDT0RFX1RFWFQsIDEsIDEsIDEsIDEsIDEsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4ZjFceDgxJywgaGVhZGVyKQotCi0gICAgICAgICMgTWF4aW11bSBwYXlsb2FkIHNpemUK
LSAgICAgICAgaGVhZGVyID0gc3RyZWFtLmNyZWF0ZV9oZWFkZXIoCi0gICAgICAgICAgICBjb21t
b24uT1BDT0RFX1RFWFQsICgxIDw8IDYzKSAtIDEsIDAsIDAsIDAsIDAsIDApCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4MDFceDdmXHg3Zlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYn
LCBoZWFkZXIpCi0KLSAgICAgICAgIyBJbnZhbGlkIG9wY29kZSAweDEwCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVh
bS5jcmVhdGVfaGVhZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAwLCAwLCAw
LCAwLCAwLCAwKQotCi0gICAgICAgICMgSW52YWxpZCB2YWx1ZSAweGYgcGFzc2VkIHRvIG1vcmUg
cGFyYW1ldGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cmVhbS5jcmVhdGVfaGVhZGVyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21tb24uT1BDT0RFX1RFWFQsIDAsIDB4ZiwgMCwgMCwgMCwgMCkKLQotICAg
ICAgICAjIFRvbyBsb25nIHBheWxvYWRfbGVuZ3RoCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5jcmVhdGVfaGVh
ZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uT1BDT0RFX1RFWFQsIDEgPDwg
NjMsIDAsIDAsIDAsIDAsIDApCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1
bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rfc3RyZWFtX2hpeGll
NzUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhOWFjNzEzMGI3MzA0ZWI5MmRi
YmJjMTUzM2FhNDE1NDVlMDI0NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rfc3RyZWFtX2hpeGllNzUucHkKKysrIC9kZXYvbnVs
bApAQCAtMSw1OSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0
IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLSIiIlRlc3RzIGZvciBzdHJlYW0gbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0
dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUg
bW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGlt
cG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9tIHRlc3QudGVzdF9tc2d1dGlsIGltcG9ydCBfY3JlYXRl
X3JlcXVlc3RfaGl4aWU3NQotCi0KLWNsYXNzIFN0cmVhbUhpeGllNzVUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBTdHJlYW1IaXhpZTc1IGNsYXNzLiIiIgot
Ci0gICAgZGVmIHRlc3RfcGF5bG9hZF9sZW5ndGgoc2VsZik6Ci0gICAgICAgIGZvciBsZW5ndGgs
IGJ5dGVzIGluICgoMCwgJ1x4MDAnKSwgKDB4N2YsICdceDdmJyksICgweDgwLCAnXHg4MVx4MDAn
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgweDEyMzQsICdceDgwXHhhNFx4MzQn
KSk6Ci0gICAgICAgICAgICB0ZXN0X3N0cmVhbSA9IFN0cmVhbUhpeGllNzUoX2NyZWF0ZV9yZXF1
ZXN0X2hpeGllNzUoYnl0ZXMpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgICAgICBsZW5ndGgsIHRlc3Rfc3RyZWFtLl9yZWFkX3BheWxvYWRfbGVuZ3RoX2hpeGll
NzUoKSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4o
KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRp
bC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDY0YmEzZjQ3NzM3YTMzMWVmMDM5MGNjNmIwYzgxYzJkMzRhNDI4MzMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDIwMSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24K
LSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciB1dGlsIG1vZHVsZS4iIiIKLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLQotCi1pbXBvcnQgb3MKLWltcG9y
dCByYW5kb20KLWltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19w
YXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4K
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1fVEVTVF9EQVRBX0RJUiA9
IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJ3Rlc3RkYXRhJykKLQot
Ci1jbGFzcyBVdGlsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBm
b3IgdXRpbCBtb2R1bGUuIiIiCi0KLSAgICBkZWYgdGVzdF9nZXRfc3RhY2tfdHJhY2Uoc2VsZik6
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ05vbmVcbicsIHV0aWwuZ2V0X3N0YWNrX3RyYWNl
KCkpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGEgPSAxIC8gMCAgIyBJbnRlbnRpb25hbGx5
IHJhaXNlIGV4Y2VwdGlvbi4KLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAg
IHRyYWNlID0gdXRpbC5nZXRfc3RhY2tfdHJhY2UoKQotICAgICAgICAgICAgc2VsZi5mYWlsVW5s
ZXNzKHRyYWNlLnN0YXJ0c3dpdGgoJ1RyYWNlYmFjaycpKQotICAgICAgICAgICAgc2VsZi5mYWls
VW5sZXNzKHRyYWNlLmZpbmQoJ1plcm9EaXZpc2lvbkVycm9yJykgIT0gLTEpCi0KLSAgICBkZWYg
dGVzdF9wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKHNlbGYpOgotICAgICAgICBleGMgPSBF
eGNlcHRpb24oJ1dvcmxkJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBzdHIo
ZXhjKSkKLSAgICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKCdIZWxsbyAn
LCBleGMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkJywgc3RyKGV4Yykp
Ci0KLSAgICBkZWYgdGVzdF9nZXRfc2NyaXB0X2ludGVycChzZWxmKToKLSAgICAgICAgY3lnd2lu
X3BhdGggPSAnYzpcXGN5Z3dpblxcYmluJwotICAgICAgICBjeWd3aW5fcGVybCA9IG9zLnBhdGgu
am9pbihjeWd3aW5fcGF0aCwgJ3BlcmwnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUs
IHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCi0gICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1Rf
REFUQV9ESVIsICdSRUFETUUnKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdXRp
bC5nZXRfc2NyaXB0X2ludGVycCgKLSAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRB
X0RJUiwgJ1JFQURNRScpLCBjeWd3aW5fcGF0aCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Jy91c3IvYmluL3BlcmwgLXdUJywgdXRpbC5nZXRfc2NyaXB0X2ludGVycCgKLSAgICAgICAgICAg
IG9zLnBhdGguam9pbihfVEVTVF9EQVRBX0RJUiwgJ2hlbGxvLnBsJykpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGN5Z3dpbl9wZXJsICsgJyAtd1QnLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJw
KAotICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnaGVsbG8ucGwnKSwg
Y3lnd2luX3BhdGgpKQotCi0gICAgZGVmIHRlc3RfaGV4aWZ5KHNlbGYpOgotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCc2MSA3YSA0MSA1YSAzMCAzOSAyMCAwOSAwZCAwYSAwMCBmZicsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgdXRpbC5oZXhpZnkoJ2F6QVowOSBcdFxyXG5ceDAwXHhmZicp
KQotCi0KLWNsYXNzIFJlcGVhdGVkWG9yTWFza2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g
ICAgIiIiQSB1bml0dGVzdCBmb3IgUmVwZWF0ZWRYb3JNYXNrZXIgY2xhc3MuIiIiCi0KLSAgICBk
ZWYgdGVzdF9tYXNrKHNlbGYpOgotICAgICAgICAjIFNhbXBsZSBpbnB1dCBlNiw5NyxhNSBpcyBV
KzY1ZTUgaW4gVVRGLTgKLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcign
XHhmZlx4ZmZceGZmXHhmZicpCi0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceGU2XHg5
N1x4YTUnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDE5XHg2OFx4NWEnLCByZXN1bHQp
Ci0KLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignXHgwMFx4MDBceDAw
XHgwMCcpCi0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceGU2XHg5N1x4YTUnKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGU2XHg5N1x4YTUnLCByZXN1bHQpCi0KLSAgICAgICAg
bWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignXHhlNlx4OTdceGE1XHgyMCcpCi0gICAg
ICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceGU2XHg5N1x4YTUnKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdceDAwXHgwMFx4MDAnLCByZXN1bHQpCi0KLSAgICBkZWYgdGVzdF9tYXNrX3R3
aWNlKHNlbGYpOgotICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdceDAw
XHg3Zlx4ZmZceDIwJykKLSAgICAgICAgIyBtYXNrWzBdLCBtYXNrWzFdLCAuLi4gd2lsbCBiZSB1
c2VkLgotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygnXHgwMFx4MDBceDAwXHgwMFx4MDAn
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwXHg3Zlx4ZmZceDIwXHgwMCcsIHJlc3Vs
dCkKLSAgICAgICAgIyBtYXNrWzJdLCBtYXNrWzBdLCAuLi4gd2lsbCBiZSB1c2VkIGZvciB0aGUg
bmV4dCBjYWxsLgotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygnXHgwMFx4MDBceDAwXHgw
MFx4MDAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDdmXHhmZlx4MjBceDAwXHg3Zics
IHJlc3VsdCkKLQotICAgIGRlZiB0ZXN0X21hc2tfbGFyZ2VfZGF0YShzZWxmKToKLSAgICAgICAg
bWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignbUFTaycpCi0gICAgICAgIG9yaWdpbmFs
ID0gJycuam9pbihbY2hyKGkgJSAyNTYpIGZvciBpIGluIHhyYW5nZSgxMDAwKV0pCi0gICAgICAg
IHJlc3VsdCA9IG1hc2tlci5tYXNrKG9yaWdpbmFsKQotICAgICAgICBleHBlY3RlZCA9ICcnLmpv
aW4oCi0gICAgICAgICAgICAgICAgW2NocigoaSAlIDI1NikgXiBvcmQoJ21BU2snW2kgJSA0XSkp
IGZvciBpIGluIHhyYW5nZSgxMDAwKV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0
ZWQsIHJlc3VsdCkKLQotICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdN
YVNrJykKLSAgICAgICAgZmlyc3RfcGFydCA9ICdUaGUgV2ViU29ja2V0IFByb3RvY29sIGVuYWJs
ZXMgdHdvLXdheSBjb21tdW5pY2F0aW9uLicKLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2so
Zmlyc3RfcGFydCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICAn
XHgxOVx0NktceDFhXHgwNDE4Ilx4MDI4XHgwZTlBXHgwM1x4MTkiXHgxNTxceDA4Ilxyc1x4MGUj
JwotICAgICAgICAgICAgICAgICdceDAwMVx4MDcoXHgxMnNceDFmOlx4MGV+XHgxYyxceDE4c1x4
MDgiXHgwYz5ceDFlI1x4MDgwXG45JwotICAgICAgICAgICAgICAgICdceDA4PFx4MDVjJywKLSAg
ICAgICAgICAgICAgICByZXN1bHQpCi0gICAgICAgIHNlY29uZF9wYXJ0ID0gJ0l0IGhhcyB0d28g
cGFydHM6IGEgaGFuZHNoYWtlIGFuZCB0aGUgZGF0YSB0cmFuc2Zlci4nCi0gICAgICAgIHJlc3Vs
dCA9IG1hc2tlci5tYXNrKHNlY29uZF9wYXJ0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgICAgICIoJ0slXHgwMCBLOVx4MTY8Sz1ceDAwIVx4MWY+W3Ncbm1cdDJceDA1
KVx4MTI7XG4mXHgwNHNcbiMiCi0gICAgICAgICAgICAgICAgIlx4MDVzXHgxZiVceDA0c1x4MGYs
XHgxNTJLOVx4MTMyXHgwNT5ceDA3Nlx4MTljIiwKLSAgICAgICAgICAgICAgICByZXN1bHQpCi0K
LQotZGVmIGdldF9yYW5kb21fc2VjdGlvbihzb3VyY2UsIG1pbl9udW1fY2h1bmtzKToKLSAgICBj
aHVua3MgPSBbXQotICAgIGJ5dGVzX2NodW5rZWQgPSAwCi0KLSAgICB3aGlsZSBieXRlc19jaHVu
a2VkIDwgbGVuKHNvdXJjZSk6Ci0gICAgICAgIGNodW5rX3NpemUgPSByYW5kb20ucmFuZGludCgK
LSAgICAgICAgICAgIDEsCi0gICAgICAgICAgICBtaW4obGVuKHNvdXJjZSkgLyBtaW5fbnVtX2No
dW5rcywgbGVuKHNvdXJjZSkgLSBieXRlc19jaHVua2VkKSkKLSAgICAgICAgY2h1bmsgPSBzb3Vy
Y2VbYnl0ZXNfY2h1bmtlZDpieXRlc19jaHVua2VkICsgY2h1bmtfc2l6ZV0KLSAgICAgICAgY2h1
bmtzLmFwcGVuZChjaHVuaykKLSAgICAgICAgYnl0ZXNfY2h1bmtlZCArPSBjaHVua19zaXplCi0K
LSAgICByZXR1cm4gY2h1bmtzCi0KLQotY2xhc3MgSW5mbGF0ZXJEZWZsYXRlclRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIF9JbmZsYXRlciBhbmQgX0RlZmxh
dGVyIGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3RfaW5mbGF0ZV9kZWZsYXRlX2RlZmF1bHQoc2Vs
Zik6Ci0gICAgICAgIGlucHV0ID0gYidoZWxsbycgKyAnLScgKiAzMDAwMCArIGInaGVsbG8nCi0g
ICAgICAgIGluZmxhdGVyMTUgPSB1dGlsLl9JbmZsYXRlcigxNSkKLSAgICAgICAgZGVmbGF0ZXIx
NSA9IHV0aWwuX0RlZmxhdGVyKDE1KQotICAgICAgICBpbmZsYXRlcjggPSB1dGlsLl9JbmZsYXRl
cig4KQotICAgICAgICBkZWZsYXRlcjggPSB1dGlsLl9EZWZsYXRlcig4KQotCi0gICAgICAgIGNv
bXByZXNzZWQxNSA9IGRlZmxhdGVyMTUuY29tcHJlc3NfYW5kX2ZpbmlzaChpbnB1dCkKLSAgICAg
ICAgY29tcHJlc3NlZDggPSBkZWZsYXRlcjguY29tcHJlc3NfYW5kX2ZpbmlzaChpbnB1dCkKLQot
ICAgICAgICBpbmZsYXRlcjE1LmFwcGVuZChjb21wcmVzc2VkMTUpCi0gICAgICAgIGluZmxhdGVy
OC5hcHBlbmQoY29tcHJlc3NlZDgpCi0KLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChjb21w
cmVzc2VkMTUsIGNvbXByZXNzZWQ4KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlucHV0LCBp
bmZsYXRlcjE1LmRlY29tcHJlc3MoLTEpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlucHV0
LCBpbmZsYXRlcjguZGVjb21wcmVzcygtMSkpCi0KLSAgICBkZWYgdGVzdF9yYW5kb21fc2VjdGlv
bihzZWxmKToKLSAgICAgICAgcmFuZG9tLnNlZWQoYT0wKQotICAgICAgICBzb3VyY2UgPSAnJy5q
b2luKAotICAgICAgICAgICAgW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3IgaSBpbiB4
cmFuZ2UoMTAwICogMTAyNCldKQotCi0gICAgICAgIGNodW5rZWRfaW5wdXQgPSBnZXRfcmFuZG9t
X3NlY3Rpb24oc291cmNlLCAxMCkKLSAgICAgICAgcHJpbnQoIklucHV0IGNodW5rIHNpemVzOiAl
ciIgJSBbbGVuKGMpIGZvciBjIGluIGNodW5rZWRfaW5wdXRdKQotCi0gICAgICAgIGRlZmxhdGVy
ID0gdXRpbC5fRGVmbGF0ZXIoMTUpCi0gICAgICAgIGNvbXByZXNzZWQgPSBbXQotICAgICAgICBm
b3IgY2h1bmsgaW4gY2h1bmtlZF9pbnB1dDoKLSAgICAgICAgICAgIGNvbXByZXNzZWQuYXBwZW5k
KGRlZmxhdGVyLmNvbXByZXNzKGNodW5rKSkKLSAgICAgICAgY29tcHJlc3NlZC5hcHBlbmQoZGVm
bGF0ZXIuY29tcHJlc3NfYW5kX2ZpbmlzaCgnJykpCi0KLSAgICAgICAgY2h1bmtlZF9leHBlY3Rh
dGlvbiA9IGdldF9yYW5kb21fc2VjdGlvbihzb3VyY2UsIDEwKQotICAgICAgICBwcmludCAoIkV4
cGVjdGF0aW9uIGNodW5rIHNpemVzOiAlciIgJQotICAgICAgICAgICAgICAgW2xlbihjKSBmb3Ig
YyBpbiBjaHVua2VkX2V4cGVjdGF0aW9uXSkKLQotICAgICAgICBpbmZsYXRlciA9IHV0aWwuX0lu
ZmxhdGVyKDE1KQotICAgICAgICBpbmZsYXRlci5hcHBlbmQoJycuam9pbihjb21wcmVzc2VkKSkK
LSAgICAgICAgZm9yIGNodW5rIGluIGNodW5rZWRfZXhwZWN0YXRpb246Ci0gICAgICAgICAgICBk
ZWNvbXByZXNzZWQgPSBpbmZsYXRlci5kZWNvbXByZXNzKGxlbihjaHVuaykpCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNodW5rLCBkZWNvbXByZXNzZWQpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnJywgaW5mbGF0ZXIuZGVjb21wcmVzcygtMSkpCi0KLQotaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9SRUFETUUgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dGRhdGEvUkVBRE1FCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDAxYWE1NTk1Y2Rk
MTM0MDdmNTcyOGVjZDUzMmE1ZDEyMjYzZWZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9SRUFETUUKKysrIC9kZXYvbnVs
bApAQCAtMSArMCwwIEBACi1UZXN0IGRhdGEgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdGRhdGEvaGFuZGxlcnMvYWJvcnRfYnlfdXNlcl93c2gucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dGRhdGEvaGFuZGxlcnMvYWJvcnRfYnlfdXNlcl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDM2N2Y5OTMwZjc4MjRjM2E1MzU5MTRhNWIzNzc5ZjZiNmZiYTI0M2YuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rk
YXRhL2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDIg
KzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3Ry
aWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGhhbmRzaGFrZQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0
KToKLSAgICByYWlzZSBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbigiYWJvcnQgZm9y
IHRlc3QiKQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAg
cmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24oImFib3J0IGZvciB0ZXN0IikK
LQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9ibGFua193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxhbmtf
d3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Zjg3YzZhZjIzZGYwOGVmZTM1
NzVjYWUyMDhkZTUwMjJjYmFhNjYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9ibGFua193c2gucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5j
LgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0jIGludGVu
dGlvbmFsbHkgbGVmdCBibGFuawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRs
ZXJzL29yaWdpbl9jaGVja193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3Jp
Z2luX2NoZWNrX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmMxMzlmYTE3
NmNjMzQxN2JlOTZkZTc5OGU2YTgxZWQxNDliMTk5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2lu
X2NoZWNrX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLSMgQ29weXJpZ2h0
IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAg
ICBpZiByZXF1ZXN0LndzX29yaWdpbiA9PSAnaHR0cDovL2V4YW1wbGUuY29tJzoKLSAgICAgICAg
cmV0dXJuCi0gICAgcmFpc2UgVmFsdWVFcnJvcignVW5hY2NlcHRhYmxlIG9yaWdpbjogJXInICUg
cmVxdWVzdC53c19vcmlnaW4pCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1
ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoJ29yaWdpbl9jaGVja193c2gucHkg
aXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJl
cXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQg
c3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNl
cHRpb25faW5fdHJhbnNmZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1
Yi9leGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiOTgyZDAyMzFlZjAwZjAyZTBkOTBkZjY3OGViODA0YmE0Mzg2MmQ5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyX3dzaC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDQ0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkV4Y2VwdGlvbiBpbiB3ZWJf
c29ja2V0X3RyYW5zZmVyX2RhdGEoKS4KLSIiIgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJh
X2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNm
ZXJfZGF0YShyZXF1ZXN0KToKLSAgICByYWlzZSBFeGNlcHRpb24oJ0ludGVudGlvbmFsIEV4Y2Vw
dGlvbiBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291
cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxN2U3YmUxODAyZTNjNjZjNjM4NDk4NzVl
YTM1ZTI0MDZhMzgxZTYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJDb3JyZWN0IHNpZ25hdHVyZXMsIHdyb25nIGZpbGUgbmFtZS4KLSIiIgotCi0KLWRlZiB3ZWJf
c29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdl
Yl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdGUoCi0gICAgICAgICAgICAnc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5IGlzIGNhbGxlZCBm
b3IgJXMsICVzJyAlCi0gICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53
c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDI2MzUyZWI0Y2EyMzg5NTIyMzllMzU0MjcyOGNlM2IzOGQ4M2RkNmIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub25fY2FsbGFibGVfd3NoLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMzkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0Ogot
IwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiTm9uLWNhbGxhYmxlIGhh
bmRsZXJzLgotIiIiCi0KLQotd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgPSBUcnVlCi13
ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEgPSAxCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3BsYWluX3dzaC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkYjNmZjY5MzAyNTZiYzFiMTNlMmM0YzJkMWM4NDNjNGI3YzgwYWE0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
NDAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFf
aGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zl
cl9kYXRhKHJlcXVlc3QpOgotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgnc3ViL3BsYWlu
X3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMv
c3ViL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjA5YTM2MTQyNjgyYTE2
YzgyNGE1MmI2YWUyYTNjNmExYzViNjA5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRh
L2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0
ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193
c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiZjY1OWJjOWFmMDFjMTA3ZWYz
NTA4YjJiNWQwMTczZGNmNTkwMDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hh
a2Vfc2lnX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLSMgQ29weXJpZ2h0
IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLSIiIldyb25nIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIHNpZ25hdHVy
ZS4KLSIiIgotCi0KLWRlZiBub193ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0
KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToK
LSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoCi0gICAgICAgICAgICAnc3ViL3dyb25nX2hh
bmRzaGFrZV9zaWdfd3NoLnB5IGlzIGNhbGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAg
KHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3Rz
PTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93
cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1
Yi93cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlMGUyZTU1MDc5NGI3Yjk5MGUwYjQ0YjMzY2ZjMmQ0ZDE1MmU2YzA0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1
ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0
cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldyb25nIHdlYl9zb2NrZXRfdHJhbnNm
ZXJfZGF0YSgpIHNpZ25hdHVyZS4KLSIiIgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hh
bmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIG5vX3dlYl9zb2NrZXRfdHJhbnNm
ZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoCi0gICAgICAg
ICAgICAnc3ViL3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMn
ICUKLSAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29s
KSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0
YS9oYW5kbGVycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTVmYzdiZWY0Mjkx
ODkyMzEzYzBmNjYzOWRlMTE4MjYxYmIyNDJlMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdGRhdGEvaGFuZGxlcnMvYWJvcnRfYnlfdXNlcl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRh
dGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29y
aWdpbl9jaGVja193c2gucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzhjY2EzZWRlNjhjM2MxNDgwZjFjZWY2OGE0ZTVlZGY2OTA4NjU1
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvUkVBRE1FCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDhmYjVlNDE1ODAwMWMxNWZmODVlMzExYmNjNmNmMjUxZmJiMWNk
M2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC9lbmR0b2VuZF93aXRoX2V4dGVybmFsX3NlcnZlci5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC9tb2NrLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L211eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvcnVuX2FsbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9zZXRfc3lzX3BhdGgucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dF9kaXNwYXRjaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2VuZHRvZW5kLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RfZXh0ZW5zaW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZS5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5Ymkw
MC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2h0dHBfaGVhZGVyX3V0aWwucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dF9tZW1vcml6aW5nZmlsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21vY2sucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdF9tc2d1dGlsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXV4LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
c3RyZWFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rfc3RyZWFtX2hpeGllNzUucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdF91dGlsLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2JiMmVkNTIzYjNiMjIy
YmExNzU4N2E0ZmU2NzBhNjY4OWRkM2QwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9DT05UUklCVVRJTkcKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L0xJQ0VOU0UKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L01BTklGRVNULmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFETUUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L1JFQURNRS5tZAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc2V0
dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcmVxdWlyZW1lbnRzX215cHkudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfbXlweS50eHQKaW5kZXgg
NjUxMDBkNzAzNzZjZjYxNGI0Mzk2ZGQyNDIxODEzOTQ0NTNlZmE0OS4uNWRmNzE3NzU4YWFhYmVi
MmI4NzFiOTFkOWJmZDUwOTUyY2ZjNjY2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfbXlweS50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1
aXJlbWVudHNfbXlweS50eHQKQEAgLTEsMyArMSwzIEBACi1teXB5PT0wLjc5MAorbXlweT09MC44
MDAKIG15cHktZXh0ZW5zaW9ucz09MC40LjMKLXR5cGVkLWFzdD09MS40LjEKK3R5cGVkLWFzdD09
MS40LjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5qcwppbmRleCAyNzk0NmUxMzli
OWFhM2I4MDZhMWFkMjQ1MTUzOTg4Y2Y3OGY3NDQyLi4xNTc3MjI4YjJmYmNhMDAzOGQzY2M3NGI5
MzA4N2ZhYmY2MDU5NDU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcnVubmVyLmpzCkBA
IC04OTMsMTggKzg5MywxNyBAQCBmdW5jdGlvbiBzZXR1cCgpIHsKICAgICBuZXcgTWFudWFsVUko
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hbnVhbFVJIiksIHJ1bm5lcik7CiAgICAgbmV3IFZp
c3VhbE91dHB1dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IiksIHJ1bm5lcik7CiAK
KyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgaWYgKGUuZGF0YS50eXBlID09PSAiY29tcGxldGUiKQorICAgICAgICAgICAgcnVubmVy
Lm9uX2NvbXBsZXRlKGUuZGF0YS50ZXN0cywgZS5kYXRhLnN0YXR1cyk7CisgICAgfSk7CisKICAg
ICBpZiAob3B0aW9ucy5hdXRvcnVuID09PSAiMSIpIHsKICAgICAgICAgcnVubmVyLnN0YXJ0KHRl
c3RfY29udHJvbC5nZXRfcGF0aCgpLAogICAgICAgICAgICAgICAgICAgICAgdGVzdF9jb250cm9s
LmdldF90ZXN0X3R5cGVzKCksCiAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NvbnRyb2wuZ2V0
X3Rlc3RoYXJuZXNzX3NldHRpbmdzKCksCiAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NvbnRy
b2wuZ2V0X3VzZV9yZWdleCgpKTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZSkgewotICAgICAgaWYgKGUu
ZGF0YS50eXBlID09PSAiY29tcGxldGUiKQotICAgICAgICBydW5uZXIub25fY29tcGxldGUoZS5k
YXRhLnRlc3RzLCBlLmRhdGEuc3RhdHVzKTsKLSAgICB9KTsKIH0KIAogd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBzZXR1cCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9z
ZXJ2ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvc2VydmUvc2VydmUucHkKaW5kZXggM2ExYzc4Mjc5NGEzMmI5Mjg2OWU2N2FiMDc5MDNjMjA5
NTU4ZmI3YS4uZjA5ZmUyNDIyMzc3YjdhZDI0OGZhODI0YTEzMTEzMGY5ZjU4YzE5NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9z
ZXJ2ZS9zZXJ2ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NlcnZlL3NlcnZlLnB5CkBAIC02LDYgKzYsNyBAQCBpbXBvcnQgYWJjCiBp
bXBvcnQgYXJncGFyc2UKIGltcG9ydCBqc29uCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG11bHRp
cHJvY2Vzc2luZwogaW1wb3J0IG9zCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBzaWduYWwKQEAg
LTE5LDcgKzIwLDYgQEAgZnJvbSBzaXgubW92ZXMgaW1wb3J0IHVybGxpYgogaW1wb3J0IHV1aWQK
IGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0LCBPcmRlcmVkRGljdAogZnJvbSBp
dGVydG9vbHMgaW1wb3J0IGNoYWluLCBwcm9kdWN0Ci1mcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBv
cnQgUHJvY2VzcywgRXZlbnQKIAogZnJvbSBsb2NhbHBhdGhzIGltcG9ydCByZXBvX3Jvb3QKIGZy
b20gc2l4Lm1vdmVzIGltcG9ydCByZWxvYWRfbW9kdWxlCkBAIC00MDcsMTggKzQwNywxOSBAQCBk
ZWYgZ2V0X3JvdXRlX2J1aWxkZXIoYWxpYXNlcywgY29uZmlnPU5vbmUpOgogCiAKIGNsYXNzIFNl
cnZlclByb2Mob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc2NoZW1lPU5vbmUpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtcF9jb250ZXh0LCBzY2hlbWU9Tm9uZSk6CiAgICAgICAg
IHNlbGYucHJvYyA9IE5vbmUKICAgICAgICAgc2VsZi5kYWVtb24gPSBOb25lCi0gICAgICAgIHNl
bGYuc3RvcCA9IEV2ZW50KCkKKyAgICAgICAgc2VsZi5tcF9jb250ZXh0ID0gbXBfY29udGV4dAor
ICAgICAgICBzZWxmLnN0b3AgPSBtcF9jb250ZXh0LkV2ZW50KCkKICAgICAgICAgc2VsZi5zY2hl
bWUgPSBzY2hlbWUKIAogICAgIGRlZiBzdGFydChzZWxmLCBpbml0X2Z1bmMsIGhvc3QsIHBvcnQs
IHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVzcywgY29uZmlnLCAqKmt3YXJncyk6Ci0gICAgICAg
IHNlbGYucHJvYyA9IFByb2Nlc3ModGFyZ2V0PXNlbGYuY3JlYXRlX2RhZW1vbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdzPShpbml0X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCBy
b3V0ZXMsIGJpbmRfYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25maWcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9JyVzIG9uIHBvcnQgJXMn
ICUgKHNlbGYuc2NoZW1lLCBwb3J0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2Fy
Z3M9a3dhcmdzKQorICAgICAgICBzZWxmLnByb2MgPSBzZWxmLm1wX2NvbnRleHQuUHJvY2Vzcyh0
YXJnZXQ9c2VsZi5jcmVhdGVfZGFlbW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmdzPShpbml0X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMs
IGJpbmRfYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uZmlnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZT0nJXMgb24gcG9ydCAlcycgJSAoc2VsZi5zY2hlbWUsIHBvcnQpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3M9a3dhcmdzKQogICAg
ICAgICBzZWxmLnByb2MuZGFlbW9uID0gVHJ1ZQogICAgICAgICBzZWxmLnByb2Muc3RhcnQoKQog
CkBAIC00NzAsNyArNDcxLDcgQEAgY2xhc3MgU2VydmVyUHJvYyhvYmplY3QpOgogICAgICAgICBy
ZXR1cm4gc2VsZi5wcm9jLmlzX2FsaXZlKCkKIAogCi1kZWYgY2hlY2tfc3ViZG9tYWlucyhjb25m
aWcsIHJvdXRlcyk6CitkZWYgY2hlY2tfc3ViZG9tYWlucyhjb25maWcsIHJvdXRlcywgbXBfY29u
dGV4dCk6CiAgICAgcGF0aHMgPSBjb25maWcucGF0aHMKICAgICBiaW5kX2FkZHJlc3MgPSBjb25m
aWcuYmluZF9hZGRyZXNzCiAKQEAgLTQ3OCw3ICs0NzksNyBAQCBkZWYgY2hlY2tfc3ViZG9tYWlu
cyhjb25maWcsIHJvdXRlcyk6CiAgICAgcG9ydCA9IGdldF9wb3J0KCkKICAgICBsb2dnZXIuZGVi
dWcoIkdvaW5nIHRvIHVzZSBwb3J0ICVkIHRvIGNoZWNrIHN1YmRvbWFpbnMiICUgcG9ydCkKIAot
ICAgIHdyYXBwZXIgPSBTZXJ2ZXJQcm9jKCkKKyAgICB3cmFwcGVyID0gU2VydmVyUHJvYyhtcF9j
b250ZXh0KQogICAgIHdyYXBwZXIuc3RhcnQoc3RhcnRfaHR0cF9zZXJ2ZXIsIGhvc3QsIHBvcnQs
IHBhdGhzLCByb3V0ZXMsCiAgICAgICAgICAgICAgICAgICBiaW5kX2FkZHJlc3MsIGNvbmZpZykK
IApAQCAtNTMwLDcgKzUzMSw4IEBAIGRlZiBtYWtlX2hvc3RzX2ZpbGUoY29uZmlnLCBob3N0KToK
ICAgICByZXR1cm4gIiIuam9pbihydikKIAogCi1kZWYgc3RhcnRfc2VydmVycyhob3N0LCBwb3J0
cywgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBz
dGFydF9zZXJ2ZXJzKGhvc3QsIHBvcnRzLCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNv
bmZpZywKKyAgICAgICAgICAgICAgICAgIG1wX2NvbnRleHQsICoqa3dhcmdzKToKICAgICBzZXJ2
ZXJzID0gZGVmYXVsdGRpY3QobGlzdCkKICAgICBmb3Igc2NoZW1lLCBwb3J0cyBpbiBwb3J0cy5p
dGVtcygpOgogICAgICAgICBhc3NlcnQgbGVuKHBvcnRzKSA9PSB7Imh0dHAiOiAyLCAiaHR0cHMi
OiAyfS5nZXQoc2NoZW1lLCAxKQpAQCAtNTUxLDcgKzU1Myw3IEBAIGRlZiBzdGFydF9zZXJ2ZXJz
KGhvc3QsIHBvcnRzLCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNvbmZpZywgKiprd2Fy
Z3MpOgogICAgICAgICAgICAgICAgICAgICAgICAgICJ3c3MiOiBzdGFydF93c3Nfc2VydmVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICJxdWljLXRyYW5zcG9ydCI6IHN0YXJ0X3F1aWNfdHJh
bnNwb3J0X3NlcnZlcn1bc2NoZW1lXQogCi0gICAgICAgICAgICBzZXJ2ZXJfcHJvYyA9IFNlcnZl
clByb2Moc2NoZW1lPXNjaGVtZSkKKyAgICAgICAgICAgIHNlcnZlcl9wcm9jID0gU2VydmVyUHJv
YyhtcF9jb250ZXh0LCBzY2hlbWU9c2NoZW1lKQogICAgICAgICAgICAgc2VydmVyX3Byb2Muc3Rh
cnQoaW5pdF9mdW5jLCBob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcsICoqa3dhcmdzKQogICAgICAgICAg
ICAgc2VydmVyc1tzY2hlbWVdLmFwcGVuZCgocG9ydCwgc2VydmVyX3Byb2MpKQpAQCAtNjA5LDYg
KzYxMSw3IEBAIGRlZiBzdGFydF9odHRwMl9zZXJ2ZXIoaG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRl
cywgYmluZF9hZGRyZXNzLCBjb25maWcsICoqa3dhcmdzCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcG9ydD1wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhhbmRsZXJfY2xzPXdwdHNlcnZlLkh0dHAyV2ViVGVzdFJlcXVlc3RIYW5kbGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY19yb290PXBhdGhzWyJkb2Nf
cm9vdCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdzX2RvY19yb290
PXBhdGhzWyJ3c19kb2Nfcm9vdCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJvdXRlcz1yb3V0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV3cml0ZXM9cmV3cml0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YmluZF9hZGRyZXNzPWJpbmRfYWRkcmVzcywKQEAgLTc4MCw3ICs3ODMsNyBAQCBkZWYgc3RhcnRf
cXVpY190cmFuc3BvcnRfc2VydmVyKGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRk
cmVzcywgY29uZmlnLAogICAgICAgICBzdGFydHVwX2ZhaWxlZChsb2c9RmFsc2UpCiAKIAotZGVm
IHN0YXJ0KGNvbmZpZywgcm91dGVzLCAqKmt3YXJncyk6CitkZWYgc3RhcnQoY29uZmlnLCByb3V0
ZXMsIG1wX2NvbnRleHQsICoqa3dhcmdzKToKICAgICBob3N0ID0gY29uZmlnWyJzZXJ2ZXJfaG9z
dCJdCiAgICAgcG9ydHMgPSBjb25maWcucG9ydHMKICAgICBwYXRocyA9IGNvbmZpZy5wYXRocwpA
QCAtNzg4LDcgKzc5MSw3IEBAIGRlZiBzdGFydChjb25maWcsIHJvdXRlcywgKiprd2FyZ3MpOgog
CiAgICAgbG9nZ2VyLmRlYnVnKCJVc2luZyBwb3J0czogJXIiICUgcG9ydHMpCiAKLSAgICBzZXJ2
ZXJzID0gc3RhcnRfc2VydmVycyhob3N0LCBwb3J0cywgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRy
ZXNzLCBjb25maWcsICoqa3dhcmdzKQorICAgIHNlcnZlcnMgPSBzdGFydF9zZXJ2ZXJzKGhvc3Qs
IHBvcnRzLCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNvbmZpZywgbXBfY29udGV4dCwg
Kiprd2FyZ3MpCiAKICAgICByZXR1cm4gc2VydmVycwogCkBAIC04NDYsNyArODQ5LDcgQEAgY2xh
c3MgQ29uZmlnQnVpbGRlcihjb25maWcuQ29uZmlnQnVpbGRlcik6CiAgICAgICAgICAgICAid3Nz
IjogWyJhdXRvIl0sCiAgICAgICAgIH0sCiAgICAgICAgICJjaGVja19zdWJkb21haW5zIjogVHJ1
ZSwKLSAgICAgICAgImxvZ19sZXZlbCI6ICJkZWJ1ZyIsCisgICAgICAgICJsb2dfbGV2ZWwiOiAi
aW5mbyIsCiAgICAgICAgICJiaW5kX2FkZHJlc3MiOiBUcnVlLAogICAgICAgICAic3NsIjogewog
ICAgICAgICAgICAgInR5cGUiOiAicHJlZ2VuZXJhdGVkIiwKQEAgLTkyOCw2ICs5MzEsOSBAQCBk
ZWYgYnVpbGRfY29uZmlnKG92ZXJyaWRlX3BhdGg9Tm9uZSwgY29uZmlnX2Nscz1Db25maWdCdWls
ZGVyLCAqKmt3YXJncyk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJDb25maWcgcGF0aCAlcyBkb2VzIG5vdCBleGlzdCIgJSBvdGhlcl9wYXRoKQogCisgICAg
aWYga3dhcmdzLmdldCgidmVyYm9zZSIpOgorICAgICAgICBydi5sb2dfbGV2ZWwgPSAiZGVidWci
CisKICAgICBvdmVycmlkaW5nX3BhdGhfYXJncyA9IFsoImRvY19yb290IiwgIkRvY3VtZW50IHJv
b3QiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIndzX2RvY19yb290IiwgIldlYlNv
Y2tldHMgZG9jdW1lbnQgcm9vdCIpXQogICAgIGZvciBrZXksIHRpdGxlIGluIG92ZXJyaWRpbmdf
cGF0aF9hcmdzOgpAQCAtOTYwLDE0ICs5NjYsMjYgQEAgZGVmIGdldF9wYXJzZXIoKToKICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkRpc2FibGUgdGhlIEhUVFAvMi4wIHNlcnZlciIpCiAg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1xdWljLXRyYW5zcG9ydCIsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsIGhlbHA9IkVuYWJsZSBRVUlDIHNlcnZlciBmb3IgV2ViVHJhbnNwb3J0IikKICAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCItLWV4aXQtYWZ0ZXItc3RhcnQiLCBhY3Rpb249InN0b3JlX3Ry
dWUiLCBoZWxwPSJFeGl0IGFmdGVyIHN0YXJ0aW5nIHNlcnZlcnMiKQorICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkVuYWJsZSB2
ZXJib3NlIGxvZ2dpbmciKQogICAgIHBhcnNlci5zZXRfZGVmYXVsdHMocmVwb3J0PUZhbHNlKQog
ICAgIHBhcnNlci5zZXRfZGVmYXVsdHMoaXNfd2F2ZT1GYWxzZSkKICAgICByZXR1cm4gcGFyc2Vy
CiAKIAotZGVmIHJ1bihjb25maWdfY2xzPUNvbmZpZ0J1aWxkZXIsIHJvdXRlX2J1aWxkZXI9Tm9u
ZSwgKiprd2FyZ3MpOgorY2xhc3MgTXBDb250ZXh0KG9iamVjdCk6CisgICAgZGVmIF9fZ2V0YXR0
cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gZ2V0YXR0cihtdWx0aXByb2Nlc3Npbmcs
IG5hbWUpCisKKworZGVmIHJ1bihjb25maWdfY2xzPUNvbmZpZ0J1aWxkZXIsIHJvdXRlX2J1aWxk
ZXI9Tm9uZSwgbXBfY29udGV4dD1Ob25lLCAqKmt3YXJncyk6CiAgICAgcmVjZWl2ZWRfc2lnbmFs
ID0gdGhyZWFkaW5nLkV2ZW50KCkKIAorICAgIGlmIG1wX2NvbnRleHQgaXMgTm9uZToKKyAgICAg
ICAgaWYgaGFzYXR0cihtdWx0aXByb2Nlc3NpbmcsICJnZXRfY29udGV4dCIpOgorICAgICAgICAg
ICAgbXBfY29udGV4dCA9IG11bHRpcHJvY2Vzc2luZy5nZXRfY29udGV4dCgpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBtcF9jb250ZXh0ID0gTXBDb250ZXh0KCkKKwogICAgIHdpdGggYnVp
bGRfY29uZmlnKG9zLnBhdGguam9pbihyZXBvX3Jvb3QsICJjb25maWcuanNvbiIpLAogICAgICAg
ICAgICAgICAgICAgICAgIGNvbmZpZ19jbHM9Y29uZmlnX2NscywKICAgICAgICAgICAgICAgICAg
ICAgICAqKmt3YXJncykgYXMgY29uZmlnOgpAQCAtOTk3LDcgKzEwMTUsNyBAQCBkZWYgcnVuKGNv
bmZpZ19jbHM9Q29uZmlnQnVpbGRlciwgcm91dGVfYnVpbGRlcj1Ob25lLCAqKmt3YXJncyk6CiAg
ICAgICAgIHJvdXRlcyA9IHJvdXRlX2J1aWxkZXIoY29uZmlnLmFsaWFzZXMsIGNvbmZpZykuZ2V0
X3JvdXRlcygpCiAKICAgICAgICAgaWYgY29uZmlnWyJjaGVja19zdWJkb21haW5zIl06Ci0gICAg
ICAgICAgICBjaGVja19zdWJkb21haW5zKGNvbmZpZywgcm91dGVzKQorICAgICAgICAgICAgY2hl
Y2tfc3ViZG9tYWlucyhjb25maWcsIHJvdXRlcywgbXBfY29udGV4dCkKIAogICAgICAgICBzdGFz
aF9hZGRyZXNzID0gTm9uZQogICAgICAgICBpZiBiaW5kX2FkZHJlc3M6CkBAIC0xMDA1LDcgKzEw
MjMsNyBAQCBkZWYgcnVuKGNvbmZpZ19jbHM9Q29uZmlnQnVpbGRlciwgcm91dGVfYnVpbGRlcj1O
b25lLCAqKmt3YXJncyk6CiAgICAgICAgICAgICBsb2dnZXIuZGVidWcoIkdvaW5nIHRvIHVzZSBw
b3J0ICVkIGZvciBzdGFzaCIgJSBzdGFzaF9hZGRyZXNzWzFdKQogCiAgICAgICAgIHdpdGggc3Rh
c2guU3Rhc2hTZXJ2ZXIoc3Rhc2hfYWRkcmVzcywgYXV0aGtleT1zdHIodXVpZC51dWlkNCgpKSk6
Ci0gICAgICAgICAgICBzZXJ2ZXJzID0gc3RhcnQoY29uZmlnLCByb3V0ZXMsICoqa3dhcmdzKQor
ICAgICAgICAgICAgc2VydmVycyA9IHN0YXJ0KGNvbmZpZywgcm91dGVzLCBtcF9jb250ZXh0LCAq
Kmt3YXJncykKICAgICAgICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR1RFUk0sIGhhbmRs
ZV9zaWduYWwpCiAgICAgICAgICAgICBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdJTlQsIGhhbmRs
ZV9zaWduYWwpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9mdW5jdGlvbmFsLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X2Z1bmN0aW9u
YWwucHkKaW5kZXggNWE5MThjMmVlNDczZTU1ODg2ZGZjNzA4NzhkM2RmMTdiNzI4ZTZmMS4uODk0
NDc5ZDExMWM5MGRhZDkyNWM2ODNjYjBlOTNhYzEzZmM2ODYxOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X2Z1
bmN0aW9uYWwucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9zZXJ2ZS90ZXN0X2Z1bmN0aW9uYWwucHkKQEAgLTksNyArOSw2IEBAIHRyeToK
ICAgICBpbXBvcnQgUXVldWUgYXMgcXVldWUgICMgbm9xYTogTjgxMwogZXhjZXB0IEltcG9ydEVy
cm9yOgogICAgIGltcG9ydCBxdWV1ZQotaW1wb3J0IHN5cwogaW1wb3J0IHRlbXBmaWxlCiBpbXBv
cnQgdGhyZWFkaW5nCiAKQEAgLTQ2LDggKzQ1LDYgQEAgZGVmIHRlbXBmaWxlX25hbWUoKToKICAg
ICBvcy5yZW1vdmUobmFtZSkKIAogCi1AcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9uX2lu
Zm8gPj0gKDMsIDgpIGFuZCBzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicsCi0gICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0ibXVsdGlwcm9jZXNzaW5nIHRlc3QgaGFuZ3MgaW4gUHl0aG9uIDMuOCBv
biBtYWNPUyAoIzI0ODgwKSIpCiBkZWYgdGVzdF9zdWJwcm9jZXNzX2V4aXQoc2VydmVyX3N1YnBy
b2Nlc3NlcywgdGVtcGZpbGVfbmFtZSk6CiAgICAgdGltZW91dCA9IDMwCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2Rv
Y3VtZW50YXRpb24vTWFrZWZpbGUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlZWJhZmNkNmQ2MGYxMjljYjVjNjI2ZmIyZTA0ZDQwZjc4ZTM3NWRh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRp
b24vTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwxMzAgKzAsMCBAQAotIyBNYWtlZmlsZSBm
b3IgU3BoaW54IGRvY3VtZW50YXRpb24KLSMKLQotIyBZb3UgY2FuIHNldCB0aGVzZSB2YXJpYWJs
ZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgotU1BISU5YT1BUUyAgICA9Ci1TUEhJTlhCVUlMRCAg
ID0gc3BoaW54LWJ1aWxkCi1QQVBFUiAgICAgICAgID0KLUJVSUxERElSICAgICAgPSBfYnVpbGQK
LQotIyBJbnRlcm5hbCB2YXJpYWJsZXMuCi1QQVBFUk9QVF9hNCAgICAgPSAtRCBsYXRleF9wYXBl
cl9zaXplPWE0Ci1QQVBFUk9QVF9sZXR0ZXIgPSAtRCBsYXRleF9wYXBlcl9zaXplPWxldHRlcgot
QUxMU1BISU5YT1BUUyAgID0gLWQgJChCVUlMRERJUikvZG9jdHJlZXMgJChQQVBFUk9QVF8kKFBB
UEVSKSkgJChTUEhJTlhPUFRTKSAuCi0KLS5QSE9OWTogaGVscCBjbGVhbiBodG1sIGRpcmh0bWwg
c2luZ2xlaHRtbCBwaWNrbGUganNvbiBodG1saGVscCBxdGhlbHAgZGV2aGVscCBlcHViIGxhdGV4
IGxhdGV4cGRmIHRleHQgbWFuIGNoYW5nZXMgbGlua2NoZWNrIGRvY3Rlc3QKLQotaGVscDoKLQlA
ZWNobyAiUGxlYXNlIHVzZSBcYG1ha2UgPHRhcmdldD4nIHdoZXJlIDx0YXJnZXQ+IGlzIG9uZSBv
ZiIKLQlAZWNobyAiICBodG1sICAgICAgIHRvIG1ha2Ugc3RhbmRhbG9uZSBIVE1MIGZpbGVzIgot
CUBlY2hvICIgIGRpcmh0bWwgICAgdG8gbWFrZSBIVE1MIGZpbGVzIG5hbWVkIGluZGV4Lmh0bWwg
aW4gZGlyZWN0b3JpZXMiCi0JQGVjaG8gIiAgc2luZ2xlaHRtbCB0byBtYWtlIGEgc2luZ2xlIGxh
cmdlIEhUTUwgZmlsZSIKLQlAZWNobyAiICBwaWNrbGUgICAgIHRvIG1ha2UgcGlja2xlIGZpbGVz
IgotCUBlY2hvICIgIGpzb24gICAgICAgdG8gbWFrZSBKU09OIGZpbGVzIgotCUBlY2hvICIgIGh0
bWxoZWxwICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIEhUTUwgaGVscCBwcm9qZWN0IgotCUBl
Y2hvICIgIHF0aGVscCAgICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIHF0aGVscCBwcm9qZWN0
IgotCUBlY2hvICIgIGRldmhlbHAgICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIERldmhlbHAg
cHJvamVjdCIKLQlAZWNobyAiICBlcHViICAgICAgIHRvIG1ha2UgYW4gZXB1YiIKLQlAZWNobyAi
ICBsYXRleCAgICAgIHRvIG1ha2UgTGFUZVggZmlsZXMsIHlvdSBjYW4gc2V0IFBBUEVSPWE0IG9y
IFBBUEVSPWxldHRlciIKLQlAZWNobyAiICBsYXRleHBkZiAgIHRvIG1ha2UgTGFUZVggZmlsZXMg
YW5kIHJ1biB0aGVtIHRocm91Z2ggcGRmbGF0ZXgiCi0JQGVjaG8gIiAgdGV4dCAgICAgICB0byBt
YWtlIHRleHQgZmlsZXMiCi0JQGVjaG8gIiAgbWFuICAgICAgICB0byBtYWtlIG1hbnVhbCBwYWdl
cyIKLQlAZWNobyAiICBjaGFuZ2VzICAgIHRvIG1ha2UgYW4gb3ZlcnZpZXcgb2YgYWxsIGNoYW5n
ZWQvYWRkZWQvZGVwcmVjYXRlZCBpdGVtcyIKLQlAZWNobyAiICBsaW5rY2hlY2sgIHRvIGNoZWNr
IGFsbCBleHRlcm5hbCBsaW5rcyBmb3IgaW50ZWdyaXR5IgotCUBlY2hvICIgIGRvY3Rlc3QgICAg
dG8gcnVuIGFsbCBkb2N0ZXN0cyBlbWJlZGRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoaWYgZW5h
YmxlZCkiCi0KLWNsZWFuOgotCS1ybSAtcmYgJChCVUlMRERJUikvKgotCi1odG1sOgotCSQoU1BI
SU5YQlVJTEQpIC1iIGh0bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9odG1sCi0JQGVj
aG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxE
RElSKS9odG1sLiIKLQotZGlyaHRtbDoKLQkkKFNQSElOWEJVSUxEKSAtYiBkaXJodG1sICQoQUxM
U1BISU5YT1BUUykgJChCVUlMRERJUikvZGlyaHRtbAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZp
bmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikvZGlyaHRtbC4iCi0KLXNp
bmdsZWh0bWw6Ci0JJChTUEhJTlhCVUlMRCkgLWIgc2luZ2xlaHRtbCAkKEFMTFNQSElOWE9QVFMp
ICQoQlVJTERESVIpL3NpbmdsZWh0bWwKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4g
VGhlIEhUTUwgcGFnZSBpcyBpbiAkKEJVSUxERElSKS9zaW5nbGVodG1sLiIKLQotcGlja2xlOgot
CSQoU1BISU5YQlVJTEQpIC1iIHBpY2tsZSAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3Bp
Y2tsZQotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNz
IHRoZSBwaWNrbGUgZmlsZXMuIgotCi1qc29uOgotCSQoU1BISU5YQlVJTEQpIC1iIGpzb24gJChB
TExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9qc29uCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmlu
aXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIEpTT04gZmlsZXMuIgotCi1odG1saGVscDoK
LQkkKFNQSElOWEJVSUxEKSAtYiBodG1saGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIp
L2h0bWxoZWxwCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHJ1
biBIVE1MIEhlbHAgV29ya3Nob3Agd2l0aCB0aGUiIFwKLQkgICAgICAiLmhocCBwcm9qZWN0IGZp
bGUgaW4gJChCVUlMRERJUikvaHRtbGhlbHAuIgotCi1xdGhlbHA6Ci0JJChTUEhJTlhCVUlMRCkg
LWIgcXRoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvcXRoZWxwCi0JQGVjaG8KLQlA
ZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHJ1biAicWNvbGxlY3Rpb25nZW5lcmF0
b3IiIHdpdGggdGhlIiBcCi0JICAgICAgIi5xaGNwIHByb2plY3QgZmlsZSBpbiAkKEJVSUxERElS
KS9xdGhlbHAsIGxpa2UgdGhpczoiCi0JQGVjaG8gIiMgcWNvbGxlY3Rpb25nZW5lcmF0b3IgJChC
VUlMRERJUikvcXRoZWxwL3NpeC5xaGNwIgotCUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6
IgotCUBlY2hvICIjIGFzc2lzdGFudCAtY29sbGVjdGlvbkZpbGUgJChCVUlMRERJUikvcXRoZWxw
L3NpeC5xaGMiCi0KLWRldmhlbHA6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZGV2aGVscCAkKEFMTFNQ
SElOWE9QVFMpICQoQlVJTERESVIpL2RldmhlbHAKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5p
c2hlZC4iCi0JQGVjaG8gIlRvIHZpZXcgdGhlIGhlbHAgZmlsZToiCi0JQGVjaG8gIiMgbWtkaXIg
LXAgJCRIT01FLy5sb2NhbC9zaGFyZS9kZXZoZWxwL3NpeCIKLQlAZWNobyAiIyBsbiAtcyAkKEJV
SUxERElSKS9kZXZoZWxwICQkSE9NRS8ubG9jYWwvc2hhcmUvZGV2aGVscC9zaXgiCi0JQGVjaG8g
IiMgZGV2aGVscCIKLQotZXB1YjoKLQkkKFNQSElOWEJVSUxEKSAtYiBlcHViICQoQUxMU1BISU5Y
T1BUUykgJChCVUlMRERJUikvZXB1YgotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBU
aGUgZXB1YiBmaWxlIGlzIGluICQoQlVJTERESVIpL2VwdWIuIgotCi1sYXRleDoKLQkkKFNQSElO
WEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4Ci0JQGVj
aG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IHRoZSBMYVRlWCBmaWxlcyBhcmUgaW4gJChCVUlM
RERJUikvbGF0ZXguIgotCUBlY2hvICJSdW4gXGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0byBy
dW4gdGhlc2UgdGhyb3VnaCAocGRmKWxhdGV4IiBcCi0JICAgICAgIih1c2UgXGBtYWtlIGxhdGV4
cGRmJyBoZXJlIHRvIGRvIHRoYXQgYXV0b21hdGljYWxseSkuIgotCi1sYXRleHBkZjoKLQkkKFNQ
SElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4Ci0J
QGVjaG8gIlJ1bm5pbmcgTGFUZVggZmlsZXMgdGhyb3VnaCBwZGZsYXRleC4uLiIKLQltYWtlIC1D
ICQoQlVJTERESVIpL2xhdGV4IGFsbC1wZGYKLQlAZWNobyAicGRmbGF0ZXggZmluaXNoZWQ7IHRo
ZSBQREYgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL2xhdGV4LiIKLQotdGV4dDoKLQkkKFNQSElO
WEJVSUxEKSAtYiB0ZXh0ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvdGV4dAotCUBlY2hv
Ci0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgdGV4dCBmaWxlcyBhcmUgaW4gJChCVUlMRERJ
UikvdGV4dC4iCi0KLW1hbjoKLQkkKFNQSElOWEJVSUxEKSAtYiBtYW4gJChBTExTUEhJTlhPUFRT
KSAkKEJVSUxERElSKS9tYW4KLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1h
bnVhbCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikvbWFuLiIKLQotY2hhbmdlczoKLQkkKFNQSElO
WEJVSUxEKSAtYiBjaGFuZ2VzICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvY2hhbmdlcwot
CUBlY2hvCi0JQGVjaG8gIlRoZSBvdmVydmlldyBmaWxlIGlzIGluICQoQlVJTERESVIpL2NoYW5n
ZXMuIgotCi1saW5rY2hlY2s6Ci0JJChTUEhJTlhCVUlMRCkgLWIgbGlua2NoZWNrICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvbGlua2NoZWNrCi0JQGVjaG8KLQlAZWNobyAiTGluayBjaGVj
ayBjb21wbGV0ZTsgbG9vayBmb3IgYW55IGVycm9ycyBpbiB0aGUgYWJvdmUgb3V0cHV0ICIgXAot
CSAgICAgICJvciBpbiAkKEJVSUxERElSKS9saW5rY2hlY2svb3V0cHV0LnR4dC4iCi0KLWRvY3Rl
c3Q6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZG9jdGVzdCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERE
SVIpL2RvY3Rlc3QKLQlAZWNobyAiVGVzdGluZyBvZiBkb2N0ZXN0cyBpbiB0aGUgc291cmNlcyBm
aW5pc2hlZCwgbG9vayBhdCB0aGUgIiBcCi0JICAgICAgInJlc3VsdHMgaW4gJChCVUlMRERJUikv
ZG9jdGVzdC9vdXRwdXQudHh0LiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vY29uZi5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3Vt
ZW50YXRpb24vY29uZi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2U1NDI4N2E2
OWUwNDcwN2IxYTUwZWY2YjY2ZmFhNmJkMmQxODgxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL2NvbmYucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwyMTcgKzAsMCBAQAotIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KLSMKLSMgc2l4IGRvY3Vt
ZW50YXRpb24gYnVpbGQgY29uZmlndXJhdGlvbiBmaWxlCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5
cwotCi0jIElmIGV4dGVuc2lvbnMgKG9yIG1vZHVsZXMgdG8gZG9jdW1lbnQgd2l0aCBhdXRvZG9j
KSBhcmUgaW4gYW5vdGhlciBkaXJlY3RvcnksCi0jIGFkZCB0aGVzZSBkaXJlY3RvcmllcyB0byBz
eXMucGF0aCBoZXJlLiBJZiB0aGUgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZQotIyBkb2N1
bWVudGF0aW9uIHJvb3QsIHVzZSBvcy5wYXRoLmFic3BhdGggdG8gbWFrZSBpdCBhYnNvbHV0ZSwg
bGlrZSBzaG93biBoZXJlLgotI3N5cy5wYXRoLmFwcGVuZChvcy5wYXRoLmFic3BhdGgoJy4nKSkK
LQotIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyBJZiB5b3VyIGRvY3VtZW50YXRpb24gbmVl
ZHMgYSBtaW5pbWFsIFNwaGlueCB2ZXJzaW9uLCBzdGF0ZSBpdCBoZXJlLgotbmVlZHNfc3BoaW54
ID0gIjEuMCIKLQotIyBBZGQgYW55IFNwaGlueCBleHRlbnNpb24gbW9kdWxlIG5hbWVzIGhlcmUs
IGFzIHN0cmluZ3MuIFRoZXkgY2FuIGJlIGV4dGVuc2lvbnMKLSMgY29taW5nIHdpdGggU3BoaW54
IChuYW1lZCAnc3BoaW54LmV4dC4qJykgb3IgeW91ciBjdXN0b20gb25lcy4KLWV4dGVuc2lvbnMg
PSBbInNwaGlueC5leHQuaW50ZXJzcGhpbngiXQotCi0jIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250
YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KLXRlbXBsYXRl
c19wYXRoID0gWyJfdGVtcGxhdGVzIl0KLQotIyBUaGUgc3VmZml4IG9mIHNvdXJjZSBmaWxlbmFt
ZXMuCi1zb3VyY2Vfc3VmZml4ID0gIi5yc3QiCi0KLSMgVGhlIGVuY29kaW5nIG9mIHNvdXJjZSBm
aWxlcy4KLSNzb3VyY2VfZW5jb2RpbmcgPSAidXRmLTgtc2lnIgotCi0jIFRoZSBtYXN0ZXIgdG9j
dHJlZSBkb2N1bWVudC4KLW1hc3Rlcl9kb2MgPSAiaW5kZXgiCi0KLSMgR2VuZXJhbCBpbmZvcm1h
dGlvbiBhYm91dCB0aGUgcHJvamVjdC4KLXByb2plY3QgPSB1InNpeCIKLWNvcHlyaWdodCA9IHUi
MjAxMC0yMDE0LCBCZW5qYW1pbiBQZXRlcnNvbiIKLQotc3lzLnBhdGguYXBwZW5kKG9zLnBhdGgu
YWJzcGF0aChvcy5wYXRoLmpvaW4oIi4iLCAiLi4iKSkpCi1mcm9tIHNpeCBpbXBvcnQgX192ZXJz
aW9uX18gYXMgc2l4X3ZlcnNpb24KLXN5cy5wYXRoLnBvcCgpCi0KLSMgVGhlIHZlcnNpb24gaW5m
byBmb3IgdGhlIHByb2plY3QgeW91J3JlIGRvY3VtZW50aW5nLCBhY3RzIGFzIHJlcGxhY2VtZW50
IGZvcgotIyB8dmVyc2lvbnwgYW5kIHxyZWxlYXNlfCwgYWxzbyB1c2VkIGluIHZhcmlvdXMgb3Ro
ZXIgcGxhY2VzIHRocm91Z2hvdXQgdGhlCi0jIGJ1aWx0IGRvY3VtZW50cy4KLSMKLSMgVGhlIHNo
b3J0IFguWSB2ZXJzaW9uLgotdmVyc2lvbiA9IHNpeF92ZXJzaW9uWzotMl0KLSMgVGhlIGZ1bGwg
dmVyc2lvbiwgaW5jbHVkaW5nIGFscGhhL2JldGEvcmMgdGFncy4KLXJlbGVhc2UgPSBzaXhfdmVy
c2lvbgotCi0jIFRoZSBsYW5ndWFnZSBmb3IgY29udGVudCBhdXRvZ2VuZXJhdGVkIGJ5IFNwaGlu
eC4gUmVmZXIgdG8gZG9jdW1lbnRhdGlvbgotIyBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCBsYW5n
dWFnZXMuCi0jbGFuZ3VhZ2UgPSBOb25lCi0KLSMgVGhlcmUgYXJlIHR3byBvcHRpb25zIGZvciBy
ZXBsYWNpbmcgfHRvZGF5fDogZWl0aGVyLCB5b3Ugc2V0IHRvZGF5IHRvIHNvbWUKLSMgbm9uLWZh
bHNlIHZhbHVlLCB0aGVuIGl0IGlzIHVzZWQ6Ci0jdG9kYXkgPSAnJwotIyBFbHNlLCB0b2RheV9m
bXQgaXMgdXNlZCBhcyB0aGUgZm9ybWF0IGZvciBhIHN0cmZ0aW1lIGNhbGwuCi0jdG9kYXlfZm10
ID0gJyVCICVkLCAlWScKLQotIyBMaXN0IG9mIHBhdHRlcm5zLCByZWxhdGl2ZSB0byBzb3VyY2Ug
ZGlyZWN0b3J5LCB0aGF0IG1hdGNoIGZpbGVzIGFuZAotIyBkaXJlY3RvcmllcyB0byBpZ25vcmUg
d2hlbiBsb29raW5nIGZvciBzb3VyY2UgZmlsZXMuCi1leGNsdWRlX3BhdHRlcm5zID0gWyJfYnVp
bGQiXQotCi0jIFRoZSByZVNUIGRlZmF1bHQgcm9sZSAodXNlZCBmb3IgdGhpcyBtYXJrdXA6IGB0
ZXh0YCkgdG8gdXNlIGZvciBhbGwgZG9jdW1lbnRzLgotI2RlZmF1bHRfcm9sZSA9IE5vbmUKLQot
IyBJZiB0cnVlLCAnKCknIHdpbGwgYmUgYXBwZW5kZWQgdG8gOmZ1bmM6IGV0Yy4gY3Jvc3MtcmVm
ZXJlbmNlIHRleHQuCi0jYWRkX2Z1bmN0aW9uX3BhcmVudGhlc2VzID0gVHJ1ZQotCi0jIElmIHRy
dWUsIHRoZSBjdXJyZW50IG1vZHVsZSBuYW1lIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBkZXNj
cmlwdGlvbgotIyB1bml0IHRpdGxlcyAoc3VjaCBhcyAuLiBmdW5jdGlvbjo6KS4KLSNhZGRfbW9k
dWxlX25hbWVzID0gVHJ1ZQotCi0jIElmIHRydWUsIHNlY3Rpb25hdXRob3IgYW5kIG1vZHVsZWF1
dGhvciBkaXJlY3RpdmVzIHdpbGwgYmUgc2hvd24gaW4gdGhlCi0jIG91dHB1dC4gVGhleSBhcmUg
aWdub3JlZCBieSBkZWZhdWx0LgotI3Nob3dfYXV0aG9ycyA9IEZhbHNlCi0KLSMgVGhlIG5hbWUg
b2YgdGhlIFB5Z21lbnRzIChzeW50YXggaGlnaGxpZ2h0aW5nKSBzdHlsZSB0byB1c2UuCi1weWdt
ZW50c19zdHlsZSA9ICJzcGhpbngiCi0KLSMgQSBsaXN0IG9mIGlnbm9yZWQgcHJlZml4ZXMgZm9y
IG1vZHVsZSBpbmRleCBzb3J0aW5nLgotI21vZGluZGV4X2NvbW1vbl9wcmVmaXggPSBbXQotCi0K
LSMgLS0gT3B0aW9ucyBmb3IgSFRNTCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgVGhlIHRoZW1lIHRvIHVzZSBmb3IgSFRNTCBh
bmQgSFRNTCBIZWxwIHBhZ2VzLiAgU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvcgotIyBhIGxpc3Qg
b2YgYnVpbHRpbiB0aGVtZXMuCi1odG1sX3RoZW1lID0gImRlZmF1bHQiCi0KLSMgVGhlbWUgb3B0
aW9ucyBhcmUgdGhlbWUtc3BlY2lmaWMgYW5kIGN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbCBv
ZiBhIHRoZW1lCi0jIGZ1cnRoZXIuICBGb3IgYSBsaXN0IG9mIG9wdGlvbnMgYXZhaWxhYmxlIGZv
ciBlYWNoIHRoZW1lLCBzZWUgdGhlCi0jIGRvY3VtZW50YXRpb24uCi0jaHRtbF90aGVtZV9vcHRp
b25zID0ge30KLQotIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gdGhlbWVzIGhl
cmUsIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LgotI2h0bWxfdGhlbWVfcGF0aCA9IFtdCi0K
LSMgVGhlIG5hbWUgZm9yIHRoaXMgc2V0IG9mIFNwaGlueCBkb2N1bWVudHMuICBJZiBOb25lLCBp
dCBkZWZhdWx0cyB0bwotIyAiPHByb2plY3Q+IHY8cmVsZWFzZT4gZG9jdW1lbnRhdGlvbiIuCi0j
aHRtbF90aXRsZSA9IE5vbmUKLQotIyBBIHNob3J0ZXIgdGl0bGUgZm9yIHRoZSBuYXZpZ2F0aW9u
IGJhci4gIERlZmF1bHQgaXMgdGhlIHNhbWUgYXMgaHRtbF90aXRsZS4KLSNodG1sX3Nob3J0X3Rp
dGxlID0gTm9uZQotCi0jIFRoZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRo
aXMgZGlyZWN0b3J5KSB0byBwbGFjZSBhdCB0aGUgdG9wCi0jIG9mIHRoZSBzaWRlYmFyLgotI2h0
bWxfbG9nbyA9IE5vbmUKLQotIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlICh3aXRoaW4gdGhl
IHN0YXRpYyBwYXRoKSB0byB1c2UgYXMgZmF2aWNvbiBvZiB0aGUKLSMgZG9jcy4gIFRoaXMgZmls
ZSBzaG91bGQgYmUgYSBXaW5kb3dzIGljb24gZmlsZSAoLmljbykgYmVpbmcgMTZ4MTYgb3IgMzJ4
MzIKLSMgcGl4ZWxzIGxhcmdlLgotI2h0bWxfZmF2aWNvbiA9IE5vbmUKLQotIyBBZGQgYW55IHBh
dGhzIHRoYXQgY29udGFpbiBjdXN0b20gc3RhdGljIGZpbGVzIChzdWNoIGFzIHN0eWxlIHNoZWV0
cykgaGVyZSwKLSMgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXkgYXJlIGNvcGllZCBh
ZnRlciB0aGUgYnVpbHRpbiBzdGF0aWMgZmlsZXMsCi0jIHNvIGEgZmlsZSBuYW1lZCAiZGVmYXVs
dC5jc3MiIHdpbGwgb3ZlcndyaXRlIHRoZSBidWlsdGluICJkZWZhdWx0LmNzcyIuCi1odG1sX3N0
YXRpY19wYXRoID0gWyJfc3RhdGljIl0KLQotIyBJZiBub3QgJycsIGEgJ0xhc3QgdXBkYXRlZCBv
bjonIHRpbWVzdGFtcCBpcyBpbnNlcnRlZCBhdCBldmVyeSBwYWdlIGJvdHRvbSwKLSMgdXNpbmcg
dGhlIGdpdmVuIHN0cmZ0aW1lIGZvcm1hdC4KLSNodG1sX2xhc3RfdXBkYXRlZF9mbXQgPSAnJWIg
JWQsICVZJwotCi0jIElmIHRydWUsIFNtYXJ0eVBhbnRzIHdpbGwgYmUgdXNlZCB0byBjb252ZXJ0
IHF1b3RlcyBhbmQgZGFzaGVzIHRvCi0jIHR5cG9ncmFwaGljYWxseSBjb3JyZWN0IGVudGl0aWVz
LgotI2h0bWxfdXNlX3NtYXJ0eXBhbnRzID0gVHJ1ZQotCi0jIEN1c3RvbSBzaWRlYmFyIHRlbXBs
YXRlcywgbWFwcyBkb2N1bWVudCBuYW1lcyB0byB0ZW1wbGF0ZSBuYW1lcy4KLSNodG1sX3NpZGVi
YXJzID0ge30KLQotIyBBZGRpdGlvbmFsIHRlbXBsYXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJl
ZCB0byBwYWdlcywgbWFwcyBwYWdlIG5hbWVzIHRvCi0jIHRlbXBsYXRlIG5hbWVzLgotI2h0bWxf
YWRkaXRpb25hbF9wYWdlcyA9IHt9Ci0KLSMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBn
ZW5lcmF0ZWQuCi0jaHRtbF9kb21haW5faW5kaWNlcyA9IFRydWUKLQotIyBJZiBmYWxzZSwgbm8g
aW5kZXggaXMgZ2VuZXJhdGVkLgotI2h0bWxfdXNlX2luZGV4ID0gVHJ1ZQotCi0jIElmIHRydWUs
IHRoZSBpbmRleCBpcyBzcGxpdCBpbnRvIGluZGl2aWR1YWwgcGFnZXMgZm9yIGVhY2ggbGV0dGVy
LgotI2h0bWxfc3BsaXRfaW5kZXggPSBGYWxzZQotCi0jIElmIHRydWUsIGxpbmtzIHRvIHRoZSBy
ZVNUIHNvdXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBwYWdlcy4KLSNodG1sX3Nob3dfc291cmNlbGlu
ayA9IFRydWUKLQotIyBJZiB0cnVlLCAiQ3JlYXRlZCB1c2luZyBTcGhpbngiIGlzIHNob3duIGlu
IHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVlLgotI2h0bWxfc2hvd19zcGhpbnggPSBU
cnVlCi0KLSMgSWYgdHJ1ZSwgIihDKSBDb3B5cmlnaHQgLi4uIiBpcyBzaG93biBpbiB0aGUgSFRN
TCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1ZS4KLSNodG1sX3Nob3dfY29weXJpZ2h0ID0gVHJ1ZQot
Ci0jIElmIHRydWUsIGFuIE9wZW5TZWFyY2ggZGVzY3JpcHRpb24gZmlsZSB3aWxsIGJlIG91dHB1
dCwgYW5kIGFsbCBwYWdlcyB3aWxsCi0jIGNvbnRhaW4gYSA8bGluaz4gdGFnIHJlZmVycmluZyB0
byBpdC4gIFRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbiBtdXN0IGJlIHRoZQotIyBiYXNlIFVSTCBm
cm9tIHdoaWNoIHRoZSBmaW5pc2hlZCBIVE1MIGlzIHNlcnZlZC4KLSNodG1sX3VzZV9vcGVuc2Vh
cmNoID0gJycKLQotIyBJZiBub25lbXB0eSwgdGhpcyBpcyB0aGUgZmlsZSBuYW1lIHN1ZmZpeCBm
b3IgSFRNTCBmaWxlcyAoZS5nLiAiLnhodG1sIikuCi0jaHRtbF9maWxlX3N1ZmZpeCA9ICcnCi0K
LSMgT3V0cHV0IGZpbGUgYmFzZSBuYW1lIGZvciBIVE1MIGhlbHAgYnVpbGRlci4KLWh0bWxoZWxw
X2Jhc2VuYW1lID0gJ3NpeGRvYycKLQotCi0jIC0tIE9wdGlvbnMgZm9yIExhVGVYIG91dHB1dCAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jIFRo
ZSBwYXBlciBzaXplICgnbGV0dGVyJyBvciAnYTQnKS4KLSNsYXRleF9wYXBlcl9zaXplID0gJ2xl
dHRlcicKLQotIyBUaGUgZm9udCBzaXplICgnMTBwdCcsICcxMXB0JyBvciAnMTJwdCcpLgotI2xh
dGV4X2ZvbnRfc2l6ZSA9ICcxMHB0JwotCi0jIEdyb3VwaW5nIHRoZSBkb2N1bWVudCB0cmVlIGlu
dG8gTGFUZVggZmlsZXMuIExpc3Qgb2YgdHVwbGVzCi0jIChzb3VyY2Ugc3RhcnQgZmlsZSwgdGFy
Z2V0IG5hbWUsIHRpdGxlLCBhdXRob3IsIGRvY3VtZW50Y2xhc3MgW2hvd3RvL21hbnVhbF0pLgot
bGF0ZXhfZG9jdW1lbnRzID0gWwotICAoImluZGV4IiwgInNpeC50ZXgiLCB1InNpeCBEb2N1bWVu
dGF0aW9uIiwKLSAgIHUiQmVuamFtaW4gUGV0ZXJzb24iLCAibWFudWFsIiksCi1dCi0KLSMgVGhl
IG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBs
YWNlIGF0IHRoZSB0b3Agb2YKLSMgdGhlIHRpdGxlIHBhZ2UuCi0jbGF0ZXhfbG9nbyA9IE5vbmUK
LQotIyBGb3IgIm1hbnVhbCIgZG9jdW1lbnRzLCBpZiB0aGlzIGlzIHRydWUsIHRoZW4gdG9wbGV2
ZWwgaGVhZGluZ3MgYXJlIHBhcnRzLAotIyBub3QgY2hhcHRlcnMuCi0jbGF0ZXhfdXNlX3BhcnRz
ID0gRmFsc2UKLQotIyBJZiB0cnVlLCBzaG93IHBhZ2UgcmVmZXJlbmNlcyBhZnRlciBpbnRlcm5h
bCBsaW5rcy4KLSNsYXRleF9zaG93X3BhZ2VyZWZzID0gRmFsc2UKLQotIyBJZiB0cnVlLCBzaG93
IFVSTCBhZGRyZXNzZXMgYWZ0ZXIgZXh0ZXJuYWwgbGlua3MuCi0jbGF0ZXhfc2hvd191cmxzID0g
RmFsc2UKLQotIyBBZGRpdGlvbmFsIHN0dWZmIGZvciB0aGUgTGFUZVggcHJlYW1ibGUuCi0jbGF0
ZXhfcHJlYW1ibGUgPSAnJwotCi0jIERvY3VtZW50cyB0byBhcHBlbmQgYXMgYW4gYXBwZW5kaXgg
dG8gYWxsIG1hbnVhbHMuCi0jbGF0ZXhfYXBwZW5kaWNlcyA9IFtdCi0KLSMgSWYgZmFsc2UsIG5v
IG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCi0jbGF0ZXhfZG9tYWluX2luZGljZXMgPSBUcnVl
Ci0KLQotIyAtLSBPcHRpb25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyBPbmUgZW50cnkgcGVyIG1hbnVhbCBw
YWdlLiBMaXN0IG9mIHR1cGxlcwotIyAoc291cmNlIHN0YXJ0IGZpbGUsIG5hbWUsIGRlc2NyaXB0
aW9uLCBhdXRob3JzLCBtYW51YWwgc2VjdGlvbikuCi1tYW5fcGFnZXMgPSBbCi0gICAgKCJpbmRl
eCIsICJzaXgiLCB1InNpeCBEb2N1bWVudGF0aW9uIiwKLSAgICAgW3UiQmVuamFtaW4gUGV0ZXJz
b24iXSwgMSkKLV0KLQotIyAtLSBJbnRlcnNwaGlueCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotaW50ZXJzcGhpbnhfbWFw
cGluZyA9IHsicHkyIiA6ICgiaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi8iLCBOb25lKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgInB5MyIgOiAoImh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMv
IiwgTm9uZSl9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL2luZGV4LnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24v
aW5kZXgucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODI3ZTY2OTViNTkzMWU1
NTE0NGM4NTg3NmI3ZDZmMjU1Y2YzNDQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vaW5kZXgucnN0CisrKyAvZGV2L251bGwKQEAgLTEs
Nzg1ICswLDAgQEAKLVNpeDogUHl0aG9uIDIgYW5kIDMgQ29tcGF0aWJpbGl0eSBMaWJyYXJ5Ci09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0uLiBtb2R1bGU6OiBz
aXgKLSAgIDpzeW5vcHNpczogUHl0aG9uIDIgYW5kIDMgY29tcGF0aWJpbGl0eQotCi0uLiBtb2R1
bGVhdXRob3I6OiBCZW5qYW1pbiBQZXRlcnNvbiA8YmVuamFtaW5AcHl0aG9uLm9yZz4KLS4uIHNl
Y3Rpb25hdXRob3I6OiBCZW5qYW1pbiBQZXRlcnNvbiA8YmVuamFtaW5AcHl0aG9uLm9yZz4KLQot
Ci1TaXggcHJvdmlkZXMgc2ltcGxlIHV0aWxpdGllcyBmb3Igd3JhcHBpbmcgb3ZlciBkaWZmZXJl
bmNlcyBiZXR3ZWVuIFB5dGhvbiAyIGFuZAotUHl0aG9uIDMuICBJdCBpcyBpbnRlbmRlZCB0byBz
dXBwb3J0IGNvZGViYXNlcyB0aGF0IHdvcmsgb24gYm90aCBQeXRob24gMiBhbmQgMwotd2l0aG91
dCBtb2RpZmljYXRpb24uICBzaXggY29uc2lzdHMgb2Ygb25seSBvbmUgUHl0aG9uIGZpbGUsIHNv
IGl0IGlzIHBhaW5sZXNzCi10byBjb3B5IGludG8gYSBwcm9qZWN0LgotCi1TaXggY2FuIGJlIGRv
d25sb2FkZWQgb24gYFB5UGkgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zaXgvPmBfLiAg
SXRzIGJ1ZwotdHJhY2tlciBhbmQgY29kZSBob3N0aW5nIGlzIG9uIGBCaXRCdWNrZXQgPGh0dHA6
Ly9iaXRidWNrZXQub3JnL2d1dHdvcnRoL3NpeD5gXy4KLQotVGhlIG5hbWUsICJzaXgiLCBjb21l
cyBmcm9tIHRoZSBmYWN0IHRoYXQgMiozIGVxdWFscyA2LiAgV2h5IG5vdCBhZGRpdGlvbj8KLU11
bHRpcGxpY2F0aW9uIGlzIG1vcmUgcG93ZXJmdWwsIGFuZCwgYW55d2F5LCAiZml2ZSIgaGFzIGFs
cmVhZHkgYmVlbiBzbmF0Y2hlZAotYXdheSBieSB0aGUgWm9wZSBGaXZlIHByb2plY3QuCi0KLQot
SW5kaWNlcyBhbmQgdGFibGVzCi0tLS0tLS0tLS0tLS0tLS0tLS0KLQotKiA6cmVmOmBnZW5pbmRl
eGAKLSogOnJlZjpgc2VhcmNoYAotCi0KLVBhY2thZ2UgY29udGVudHMKLS0tLS0tLS0tLS0tLS0t
LS0KLQotLi4gZGF0YTo6IFBZMgotCi0gICBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgY29k
ZSBpcyBydW5uaW5nIG9uIFB5dGhvbiAyLgotCi0uLiBkYXRhOjogUFkzCi0KLSAgIEEgYm9vbGVh
biBpbmRpY2F0aW5nIGlmIHRoZSBjb2RlIGlzIHJ1bm5pbmcgb24gUHl0aG9uIDMuCi0KLQotQ29u
c3RhbnRzCi0+Pj4+Pj4+Pj4KLQotU2l4IHByb3ZpZGVzIGNvbnN0YW50cyB0aGF0IG1heSBkaWZm
ZXIgYmV0d2VlbiBQeXRob24gdmVyc2lvbnMuICBPbmVzIGVuZGluZwotYGBfdHlwZXNgYCBhcmUg
bW9zdGx5IHVzZWZ1bCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIGBgaXNpbnN0YW5jZWBgIG9y
Ci1gYGlzc3ViY2xhc3NgYC4KLQotCi0uLiBkYXRhOjogY2xhc3NfdHlwZXMKLQotICAgUG9zc2li
bGUgY2xhc3MgdHlwZXMuICBJbiBQeXRob24gMiwgdGhpcyBlbmNvbXBhc3NlcyBvbGQtc3R5bGUg
YW5kIG5ldy1zdHlsZQotICAgY2xhc3Nlcy4gIEluIFB5dGhvbiAzLCB0aGlzIGlzIGp1c3QgbmV3
LXN0eWxlcy4KLQotCi0uLiBkYXRhOjogaW50ZWdlcl90eXBlcwotCi0gICBQb3NzaWJsZSBpbnRl
Z2VyIHR5cGVzLiAgSW4gUHl0aG9uIDIsIHRoaXMgaXMgOmZ1bmM6YHB5Mjpsb25nYCBhbmQKLSAg
IDpmdW5jOmBweTI6aW50YCwgYW5kIGluIFB5dGhvbiAzLCBqdXN0IDpmdW5jOmBweTM6aW50YC4K
LQotCi0uLiBkYXRhOjogc3RyaW5nX3R5cGVzCi0KLSAgIFBvc3NpYmxlIHR5cGVzIGZvciB0ZXh0
IGRhdGEuICBUaGlzIGlzIDpmdW5jOmBweTI6YmFzZXN0cmluZ2AgaW4gUHl0aG9uIDIgYW5kCi0g
ICA6ZnVuYzpgcHkzOnN0cmAgaW4gUHl0aG9uIDMuCi0KLQotLi4gZGF0YTo6IHRleHRfdHlwZQot
Ci0gICBUeXBlIGZvciByZXByZXNlbnRpbmcgKFVuaWNvZGUpIHRleHR1YWwgZGF0YS4gIFRoaXMg
aXMgOmZ1bmM6YHB5Mjp1bmljb2RlYCBpbgotICAgUHl0aG9uIDIgYW5kIDpmdW5jOmBweTM6c3Ry
YCBpbiBQeXRob24gMy4KLQotCi0uLiBkYXRhOjogYmluYXJ5X3R5cGUKLQotICAgVHlwZSBmb3Ig
cmVwcmVzZW50aW5nIGJpbmFyeSBkYXRhLiAgVGhpcyBpcyA6ZnVuYzpgcHkyOnN0cmAgaW4gUHl0
aG9uIDIgYW5kCi0gICA6ZnVuYzpgcHkzOmJ5dGVzYCBpbiBQeXRob24gMy4KLQotCi0uLiBkYXRh
OjogTUFYU0laRQotCi0gICBUaGUgbWF4aW11bSAgc2l6ZSBvZiBhICBjb250YWluZXIgbGlrZSA6
ZnVuYzpgcHkzOmxpc3RgICBvciA6ZnVuYzpgcHkzOmRpY3RgLgotICAgVGhpcyAgaXMgIGVxdWl2
YWxlbnQgIHRvICA6ZGF0YTpgcHkzOnN5cy5tYXhzaXplYCBpbiAgUHl0aG9uICAyLjYgIGFuZCAg
bGF0ZXIKLSAgIChpbmNsdWRpbmcgMy54KS4gICBOb3RlLCB0aGlzIGlzIHRlbXB0aW5nbHkgIHNp
bWlsYXIgdG8sIGJ1dCBub3QgIHRoZSBzYW1lIGFzCi0gICA6ZGF0YTpgcHkyOnN5cy5tYXhpbnRg
ICBpbiAgUHl0aG9uICAyLiAgIFRoZXJlIGlzICBubyAgZGlyZWN0ICBlcXVpdmFsZW50ICB0bwot
ICAgOmRhdGE6YHB5MjpzeXMubWF4aW50YCBpbiAgUHl0aG9uIDMgIGJlY2F1c2UgaXRzIGludGVn
ZXIgIHR5cGUgaGFzICBubyBsaW1pdHMKLSAgIGFzaWRlIGZyb20gbWVtb3J5LgotCi0KLUhlcmUn
cyBleGFtcGxlIHVzYWdlIG9mIHRoZSBtb2R1bGU6OgotCi0gICBpbXBvcnQgc2l4Ci0KLSAgIGRl
ZiBkaXNwYXRjaF90eXBlcyh2YWx1ZSk6Ci0gICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc2l4
LmludGVnZXJfdHlwZXMpOgotICAgICAgICAgICBoYW5kbGVfaW50ZWdlcih2YWx1ZSkKLSAgICAg
ICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIHNpeC5jbGFzc190eXBlcyk6Ci0gICAgICAgICAgIGhh
bmRsZV9jbGFzcyh2YWx1ZSkKLSAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIHNpeC5zdHJp
bmdfdHlwZXMpOgotICAgICAgICAgICBoYW5kbGVfc3RyaW5nKHZhbHVlKQotCi0KLU9iamVjdCBt
b2RlbCBjb21wYXRpYmlsaXR5Ci0+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgotCi1QeXRob24g
MyByZW5hbWVkIHRoZSBhdHRyaWJ1dGVzIG9mIHNldmVyYWwgaW50ZXJwcmV0ZXIgZGF0YSBzdHJ1
Y3R1cmVzLiAgVGhlCi1mb2xsb3dpbmcgYWNjZXNzb3JzIGFyZSBhdmFpbGFibGUuICBOb3RlIHRo
YXQgdGhlIHJlY29tbWVuZGVkIHdheSB0byBpbnNwZWN0Ci1mdW5jdGlvbnMgYW5kIG1ldGhvZHMg
aXMgdGhlIHN0ZGxpYiA6bW9kOmBweTM6aW5zcGVjdGAgbW9kdWxlLgotCi0KLS4uIGZ1bmN0aW9u
OjogZ2V0X3VuYm91bmRfZnVuY3Rpb24obWV0aCkKLQotICAgR2V0IHRoZSBmdW5jdGlvbiBvdXQg
b2YgdW5ib3VuZCBtZXRob2QgKm1ldGgqLiAgSW4gUHl0aG9uIDMsIHVuYm91bmQgbWV0aG9kcwot
ICAgZG9uJ3QgZXhpc3QsIHNvIHRoaXMgZnVuY3Rpb24ganVzdCByZXR1cm5zICptZXRoKiB1bmNo
YW5nZWQuICBFeGFtcGxlCi0gICB1c2FnZTo6Ci0KLSAgICAgIGZyb20gc2l4IGltcG9ydCBnZXRf
dW5ib3VuZF9mdW5jdGlvbgotCi0gICAgICBjbGFzcyBYKG9iamVjdCk6Ci0gICAgICAgICAgZGVm
IG1ldGhvZChzZWxmKToKLSAgICAgICAgICAgICAgcGFzcwotICAgICAgbWV0aG9kX2Z1bmN0aW9u
ID0gZ2V0X3VuYm91bmRfZnVuY3Rpb24oWC5tZXRob2QpCi0KLQotLi4gZnVuY3Rpb246OiBnZXRf
bWV0aG9kX2Z1bmN0aW9uKG1ldGgpCi0KLSAgIEdldCB0aGUgZnVuY3Rpb24gb3V0IG9mIG1ldGhv
ZCBvYmplY3QgKm1ldGgqLgotCi0KLS4uIGZ1bmN0aW9uOjogZ2V0X21ldGhvZF9zZWxmKG1ldGgp
Ci0KLSAgIEdldCB0aGUgYGBzZWxmYGAgb2YgYm91bmQgbWV0aG9kICptZXRoKi4KLQotCi0uLiBm
dW5jdGlvbjo6IGdldF9mdW5jdGlvbl9jbG9zdXJlKGZ1bmMpCi0KLSAgIEdldCB0aGUgY2xvc3Vy
ZSAobGlzdCBvZiBjZWxscykgYXNzb2NpYXRlZCB3aXRoICpmdW5jKi4gIFRoaXMgaXMgZXF1aXZh
bGVudAotICAgdG8gYGBmdW5jLl9fY2xvc3VyZV9fYGAgb24gUHl0aG9uIDIuNisgYW5kIGBgZnVu
Yy5mdW5jX2Nsb3N1cmVgYCBvbiBQeXRob24KLSAgIDIuNS4KLQotCi0uLiBmdW5jdGlvbjo6IGdl
dF9mdW5jdGlvbl9jb2RlKGZ1bmMpCi0KLSAgIEdldCB0aGUgY29kZSBvYmplY3QgYXNzb2NpYXRl
ZCB3aXRoICpmdW5jKi4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bwotICAgYGBmdW5jLl9fY29kZV9f
YGAgb24gUHl0aG9uIDIuNisgYW5kIGBgZnVuYy5mdW5jX2NvZGVgYCBvbiBQeXRob24gMi41Lgot
Ci0KLS4uIGZ1bmN0aW9uOjogZ2V0X2Z1bmN0aW9uX2RlZmF1bHRzKGZ1bmMpCi0KLSAgIEdldCB0
aGUgZGVmYXVsdHMgdHVwbGUgYXNzb2NpYXRlZCB3aXRoICpmdW5jKi4gIFRoaXMgaXMgZXF1aXZh
bGVudCB0bwotICAgYGBmdW5jLl9fZGVmYXVsdHNfX2BgIG9uIFB5dGhvbiAyLjYrIGFuZCBgYGZ1
bmMuZnVuY19kZWZhdWx0c2BgIG9uIFB5dGhvbgotICAgMi41LgotCi0KLS4uIGZ1bmN0aW9uOjog
Z2V0X2Z1bmN0aW9uX2dsb2JhbHMoZnVuYykKLQotICAgR2V0IHRoZSBnbG9iYWxzIG9mICpmdW5j
Ki4gIFRoaXMgaXMgZXF1aXZhbGVudCB0byBgYGZ1bmMuX19nbG9iYWxzX19gYCBvbgotICAgUHl0
aG9uIDIuNisgYW5kIGBgZnVuYy5mdW5jX2dsb2JhbHNgYCBvbiBQeXRob24gMi41LgotCi0KLS4u
IGZ1bmN0aW9uOjogbmV4dChpdCkKLSAgICAgICAgICAgICAgYWR2YW5jZV9pdGVyYXRvcihpdCkK
LQotICAgR2V0IHRoZSBuZXh0IGl0ZW0gb2YgaXRlcmF0b3IgKml0Ki4gIDpleGM6YHB5MzpTdG9w
SXRlcmF0aW9uYCBpcyByYWlzZWQgaWYKLSAgIHRoZSBpdGVyYXRvciBpcyBleGhhdXN0ZWQuICBU
aGlzIGlzIGEgcmVwbGFjZW1lbnQgZm9yIGNhbGxpbmcgYGBpdC5uZXh0KClgYAotICAgaW4gUHl0
aG9uIDIgYW5kIGBgbmV4dChpdClgYCBpbiBQeXRob24gMy4KLQotCi0uLiBmdW5jdGlvbjo6IGNh
bGxhYmxlKG9iaikKLQotICAgQ2hlY2sgaWYgKm9iaiogY2FuIGJlIGNhbGxlZC4gIE5vdGUgYGBj
YWxsYWJsZWBgIGhhcyByZXR1cm5lZCBpbiBQeXRob24gMy4yLAotICAgc28gdXNpbmcgc2l4J3Mg
dmVyc2lvbiBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIHN1cHBvcnRpbmcgUHl0aG9uIDMuMCBvciAz
LjEuCi0KLQotLi4gZnVuY3Rpb246OiBpdGVya2V5cyhkaWN0aW9uYXJ5LCAqKmt3YXJncykKLQot
ICAgUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyICpkaWN0aW9uYXJ5KlwncyBrZXlzLiBUaGlzIHJl
cGxhY2VzCi0gICBgYGRpY3Rpb25hcnkuaXRlcmtleXMoKWBgIG9uIFB5dGhvbiAyIGFuZCBgYGRp
Y3Rpb25hcnkua2V5cygpYGAgb24KLSAgIFB5dGhvbiAzLiAgKmt3YXJncyogYXJlIHBhc3NlZCB0
aHJvdWdoIHRvIHRoZSB1bmRlcmx5aW5nIG1ldGhvZC4KLQotCi0uLiBmdW5jdGlvbjo6IGl0ZXJ2
YWx1ZXMoZGljdGlvbmFyeSwgKiprd2FyZ3MpCi0KLSAgIFJldHVybnMgYW4gaXRlcmF0b3Igb3Zl
ciAqZGljdGlvbmFyeSpcJ3MgdmFsdWVzLiBUaGlzIHJlcGxhY2VzCi0gICBgYGRpY3Rpb25hcnku
aXRlcnZhbHVlcygpYGAgb24gUHl0aG9uIDIgYW5kIGBgZGljdGlvbmFyeS52YWx1ZXMoKWBgIG9u
Ci0gICBQeXRob24gMy4gICprd2FyZ3MqIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgdW5kZXJs
eWluZyBtZXRob2QuCi0KLQotLi4gZnVuY3Rpb246OiBpdGVyaXRlbXMoZGljdGlvbmFyeSwgKipr
d2FyZ3MpCi0KLSAgIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciAqZGljdGlvbmFyeSpcJ3MgaXRl
bXMuIFRoaXMgcmVwbGFjZXMKLSAgIGBgZGljdGlvbmFyeS5pdGVyaXRlbXMoKWBgIG9uIFB5dGhv
biAyIGFuZCBgYGRpY3Rpb25hcnkuaXRlbXMoKWBgIG9uCi0gICBQeXRob24gMy4gICprd2FyZ3Mq
IGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgdW5kZXJseWluZyBtZXRob2QuCi0KLQotLi4gZnVu
Y3Rpb246OiBpdGVybGlzdHMoZGljdGlvbmFyeSwgKiprd2FyZ3MpCi0KLSAgIENhbGxzIGBgZGlj
dGlvbmFyeS5pdGVybGlzdHMoKWBgIG9uIFB5dGhvbiAyIGFuZCBgYGRpY3Rpb25hcnkubGlzdHMo
KWBgIG9uCi0gICBQeXRob24gMy4gIE5vIGJ1aWx0aW4gUHl0aG9uIG1hcHBpbmcgdHlwZSBoYXMg
c3VjaCBhIG1ldGhvZDsgdGhpcyBtZXRob2QgaXMKLSAgIGludGVuZGVkIGZvciB1c2Ugd2l0aCBt
dWx0aS12YWx1ZWQgZGljdGlvbmFyaWVzIGxpa2UgYFdlcmt6ZXVnJ3MKLSAgIDxodHRwOi8vd2Vy
a3pldWcucG9jb28ub3JnL2RvY3MvZGF0YXN0cnVjdHVyZXMvI3dlcmt6ZXVnLmRhdGFzdHJ1Y3R1
cmVzLk11bHRpRGljdD5gXy4KLSAgICprd2FyZ3MqIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUg
dW5kZXJseWluZyBtZXRob2QuCi0KLQotLi4gZnVuY3Rpb246OiB2aWV3a2V5cyhkaWN0aW9uYXJ5
KQotCi0gICBSZXR1cm4gYSB2aWV3IG92ZXIgKmRpY3Rpb25hcnkqXCdzIGtleXMuIFRoaXMgcmVw
bGFjZXMKLSAgIDptZXRoOmBweTI6ZGljdC52aWV3a2V5c2Agb24gUHl0aG9uIDIuNyBhbmQgOm1l
dGg6YHB5MzpkaWN0LmtleXNgIG9uCi0gICBQeXRob24gMy4KLQotCi0uLiBmdW5jdGlvbjo6IHZp
ZXd2YWx1ZXMoZGljdGlvbmFyeSkKLQotICAgUmV0dXJuIGEgdmlldyBvdmVyICpkaWN0aW9uYXJ5
KlwncyB2YWx1ZXMuIFRoaXMgcmVwbGFjZXMKLSAgIDptZXRoOmBweTI6ZGljdC52aWV3dmFsdWVz
YCBvbiBQeXRob24gMi43IGFuZCA6bWV0aDpgcHkzOmRpY3QudmFsdWVzYCBvbgotICAgUHl0aG9u
IDMuCi0KLQotLi4gZnVuY3Rpb246OiB2aWV3aXRlbXMoZGljdGlvbmFyeSkKLQotICAgUmV0dXJu
IGEgdmlldyBvdmVyICpkaWN0aW9uYXJ5KlwncyBpdGVtcy4gVGhpcyByZXBsYWNlcwotICAgOm1l
dGg6YHB5MjpkaWN0LnZpZXdpdGVtc2Agb24gUHl0aG9uIDIuNyBhbmQgOm1ldGg6YHB5MzpkaWN0
Lml0ZW1zYCBvbgotICAgUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246OiBjcmVhdGVfYm91bmRf
bWV0aG9kKGZ1bmMsIG9iaikKLQotICAgUmV0dXJuIGEgbWV0aG9kIG9iamVjdCB3cmFwcGluZyAq
ZnVuYyogYW5kIGJvdW5kIHRvICpvYmoqLiAgT24gYm90aCBQeXRob24gMgotICAgYW5kIDMsIHRo
aXMgd2lsbCByZXR1cm4gYSA6ZnVuYzpgcHkzOnR5cGVzLk1ldGhvZFR5cGVgIG9iamVjdC4gIFRo
ZSByZWFzb24KLSAgIHRoaXMgd3JhcHBlciBleGlzdHMgaXMgdGhhdCBvbiBQeXRob24gMiwgdGhl
IGBgTWV0aG9kVHlwZWBgIGNvbnN0cnVjdG9yCi0gICByZXF1aXJlcyB0aGUgKm9iaioncyBjbGFz
cyB0byBiZSBwYXNzZWQuCi0KLQotLi4gY2xhc3M6OiBJdGVyYXRvcgotCi0gICBBIGNsYXNzIGZv
ciBtYWtpbmcgcG9ydGFibGUgaXRlcmF0b3JzLiBUaGUgaW50ZW50aW9uIGlzIHRoYXQgaXQgYmUg
c3ViY2xhc3NlZAotICAgYW5kIHN1YmNsYXNzZXMgcHJvdmlkZSBhIGBgX19uZXh0X19gYCBtZXRo
b2QuIEluIFB5dGhvbiAyLCA6Y2xhc3M6YEl0ZXJhdG9yYAotICAgaGFzIG9uZSBtZXRob2Q6IGBg
bmV4dGBgLiBJdCBzaW1wbHkgZGVsZWdhdGVzIHRvIGBgX19uZXh0X19gYC4gQW4gYWx0ZXJuYXRl
Ci0gICB3YXkgdG8gZG8gdGhpcyB3b3VsZCBiZSB0byBzaW1wbHkgYWxpYXMgYGBuZXh0YGAgdG8g
YGBfX25leHRfX2BgLiBIb3dldmVyLAotICAgdGhpcyBpbnRlcmFjdHMgYmFkbHkgd2l0aCBzdWJj
bGFzc2VzIHRoYXQgb3ZlcnJpZGUKLSAgIGBgX19uZXh0X19gYC4gOmNsYXNzOmBJdGVyYXRvcmAg
aXMgZW1wdHkgb24gUHl0aG9uIDMuIChJbiBmYWN0LCBpdCBpcyBqdXN0Ci0gICBhbGlhc2VkIHRv
IDpjbGFzczpgcHkzOm9iamVjdGAuKQotCi0KLS4uIGZ1bmN0aW9uOjogd3JhcHMod3JhcHBlZCwg
YXNzaWduZWQ9ZnVuY3Rvb2xzLldSQVBQRVJfQVNTSUdOTUVOVFMsIHVwZGF0ZWQ9ZnVuY3Rvb2xz
LldSQVBQRVJfVVBEQVRFUykKLQotICAgVGhpcyBpcyBleGFjdGx5IHRoZSA6ZnVuYzpgcHkzOmZ1
bmN0b29scy53cmFwc2AgZGVjb3JhdG9yLCBidXQgaXQgc2V0cyB0aGUKLSAgIGBgX193cmFwcGVk
X19gYCBhdHRyaWJ1dGUgb24gd2hhdCBpdCBkZWNvcmF0ZXMgYXMgOmZ1bmM6YHB5MzpmdW5jdG9v
bHMud3JhcHNgCi0gICBkb2VzIG9uIFB5dGhvbiB2ZXJzaW9ucyBhZnRlciAzLjIuCi0KLQotU3lu
dGF4IGNvbXBhdGliaWxpdHkKLT4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ci0KLVRoZXNlIGZ1bmN0aW9u
cyBzbW9vdGggb3ZlciBvcGVyYXRpb25zIHdoaWNoIGhhdmUgZGlmZmVyZW50IHN5bnRheGVzIGJl
dHdlZW4KLVB5dGhvbiAyIGFuZCAzLgotCi0KLS4uIGZ1bmN0aW9uOjogZXhlY18oY29kZSwgZ2xv
YmFscz1Ob25lLCBsb2NhbHM9Tm9uZSkKLQotICAgRXhlY3V0ZSAqY29kZSogaW4gdGhlIHNjb3Bl
IG9mICpnbG9iYWxzKiBhbmQgKmxvY2FscyouICAqY29kZSogY2FuIGJlIGEKLSAgIHN0cmluZyBv
ciBhIGNvZGUgb2JqZWN0LiAgSWYgKmdsb2JhbHMqIG9yICpsb2NhbHMqIGFyZSBub3QgZ2l2ZW4s
IHRoZXkgd2lsbAotICAgZGVmYXVsdCB0byB0aGUgc2NvcGUgb2YgdGhlIGNhbGxlci4gIElmIGp1
c3QgKmdsb2JhbHMqIGlzIGdpdmVuLCBpdCB3aWxsIGFsc28KLSAgIGJlIHVzZWQgYXMgKmxvY2Fs
cyouCi0KLSAgIC4uIG5vdGU6OgotCi0gICAgICBQeXRob24gMydzIDpmdW5jOmBweTM6ZXhlY2Ag
ZG9lc24ndCB0YWtlIGtleXdvcmQgYXJndW1lbnRzLCBzbyBjYWxsaW5nCi0gICAgICA6ZnVuYzpg
ZXhlY2Agd2l0aCB0aGVtIHNob3VsZCBiZSBhdm9pZGVkLgotCi0KLS4uIGZ1bmN0aW9uOjogcHJp
bnRfKCphcmdzLCAqLCBmaWxlPXN5cy5zdGRvdXQsIGVuZD0iXFxuIiwgc2VwPSIgIikKLQotICAg
UHJpbnQgKmFyZ3MqIGludG8gKmZpbGUqLiAgRWFjaCBhcmd1bWVudCB3aWxsIGJlIHNlcGFyYXRl
ZCB3aXRoICpzZXAqIGFuZAotICAgKmVuZCogd2lsbCBiZSB3cml0dGVuIHRvIHRoZSBmaWxlIGFm
dGVyIHRoZSBsYXN0IGFyZ3VtZW50IGlzIHByaW50ZWQuCi0KLSAgIC4uIG5vdGU6OgotCi0gICAg
ICBJbiBQeXRob24gMiwgdGhpcyBmdW5jdGlvbiBpbWl0YXRlcyBQeXRob24gMydzIDpmdW5jOmBw
eTM6cHJpbnRgIGJ5IG5vdAotICAgICAgaGF2aW5nIHNvZnRzcGFjZSBzdXBwb3J0LiAgSWYgeW91
IGRvbid0IGtub3cgd2hhdCB0aGF0IGlzLCB5b3UncmUgcHJvYmFibHkKLSAgICAgIG9rLiA6KQot
Ci0KLS4uIGZ1bmN0aW9uOjogcmFpc2VfZnJvbShleGNfdmFsdWUsIGV4Y192YWx1ZV9mcm9tKQot
Ci0gICBSYWlzZSBhbiBleGNlcHRpb24gZnJvbSBhIGNvbnRleHQuICBPbiBQeXRob24gMywgdGhp
cyBpcyBlcXVpdmFsZW50IHRvCi0gICBgYHJhaXNlIGV4Y192YWx1ZSBmcm9tIGV4Y192YWx1ZV9m
cm9tYGAuICBPbiBQeXRob24gMiwgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydAotICAgZXhjZXB0aW9u
IGNoYWluaW5nLCBpdCBpcyBlcXVpdmFsZW50IHRvIGBgcmFpc2UgZXhjX3ZhbHVlYGAuCi0KLQot
Li4gZnVuY3Rpb246OiByZXJhaXNlKGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190cmFjZWJhY2s9
Tm9uZSkKLQotICAgUmVyYWlzZSBhbiBleGNlcHRpb24sIHBvc3NpYmx5IHdpdGggYSBkaWZmZXJl
bnQgdHJhY2ViYWNrLiAgSW4gdGhlIHNpbXBsZQotICAgY2FzZSwgYGByZXJhaXNlKCpzeXMuZXhj
X2luZm8oKSlgYCB3aXRoIGFuIGFjdGl2ZSBleGNlcHRpb24gKGluIGFuIGV4Y2VwdAotICAgYmxv
Y2spIHJlcmFpc2VzIHRoZSBjdXJyZW50IGV4Y2VwdGlvbiB3aXRoIHRoZSBsYXN0IHRyYWNlYmFj
ay4gIEEgZGlmZmVyZW50Ci0gICB0cmFjZWJhY2sgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHRoZSAq
ZXhjX3RyYWNlYmFjayogcGFyYW1ldGVyLiAgTm90ZSB0aGF0Ci0gICBzaW5jZSB0aGUgZXhjZXB0
aW9uIHJlcmFpc2luZyBpcyBkb25lIHdpdGhpbiB0aGUgOmZ1bmM6YHJlcmFpc2VgIGZ1bmN0aW9u
LAotICAgUHl0aG9uIHdpbGwgYXR0YWNoIHRoZSBjYWxsIGZyYW1lIG9mIDpmdW5jOmByZXJhaXNl
YCB0byB3aGF0ZXZlciB0cmFjZWJhY2sgaXMKLSAgIHJhaXNlZC4KLQotCi0uLiBmdW5jdGlvbjo6
IHdpdGhfbWV0YWNsYXNzKG1ldGFjbGFzcywgKmJhc2VzKQotCi0gICBDcmVhdGUgYSBuZXcgY2xh
c3Mgd2l0aCBiYXNlIGNsYXNzZXMgKmJhc2VzKiBhbmQgbWV0YWNsYXNzICptZXRhY2xhc3MqLiAg
VGhpcwotICAgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCBpbiBjbGFzcyBkZWNsYXJhdGlvbnMgbGlr
ZSB0aGlzOiA6OgotCi0gICAgICBmcm9tIHNpeCBpbXBvcnQgd2l0aF9tZXRhY2xhc3MKLQotICAg
ICAgY2xhc3MgTWV0YSh0eXBlKToKLSAgICAgICAgICBwYXNzCi0KLSAgICAgIGNsYXNzIEJhc2Uo
b2JqZWN0KToKLSAgICAgICAgICBwYXNzCi0KLSAgICAgIGNsYXNzIE15Q2xhc3Mod2l0aF9tZXRh
Y2xhc3MoTWV0YSwgQmFzZSkpOgotICAgICAgICAgIHBhc3MKLQotICAgQW5vdGhlciB3YXkgdG8g
c2V0IGEgbWV0YWNsYXNzIG9uIGEgY2xhc3MgaXMgd2l0aCB0aGUgOmZ1bmM6YGFkZF9tZXRhY2xh
c3NgCi0gICBkZWNvcmF0b3IuCi0KLQotLi4gZnVuY3Rpb246OiBhZGRfbWV0YWNsYXNzKG1ldGFj
bGFzcykKLQotICAgQ2xhc3MgZGVjb3JhdG9yIHRoYXQgcmVwbGFjZXMgYSBub3JtYWxseS1jb25z
dHJ1Y3RlZCBjbGFzcyB3aXRoIGEKLSAgIG1ldGFjbGFzcy1jb25zdHJ1Y3RlZCBvbmUuICBFeGFt
cGxlIHVzYWdlOiA6OgotCi0gICAgICAgQGFkZF9tZXRhY2xhc3MoTWV0YSkKLSAgICAgICBjbGFz
cyBNeUNsYXNzKG9iamVjdCk6Ci0gICAgICAgICAgIHBhc3MKLQotICAgVGhhdCBjb2RlIHByb2R1
Y2VzIGEgY2xhc3MgZXF1aXZhbGVudCB0byA6OgotCi0gICAgICAgY2xhc3MgTXlDbGFzcyhvYmpl
Y3QsIG1ldGFjbGFzcz1NZXRhKToKLSAgICAgICAgICAgcGFzcwotCi0gICBvbiBQeXRob24gMyBv
ciA6OgotCi0gICAgICAgY2xhc3MgTXlDbGFzcyhvYmplY3QpOgotICAgICAgICAgICBfX21ldGFj
bGFzc19fID0gTXlNZXRhCi0KLSAgIG9uIFB5dGhvbiAyLgotCi0gICBOb3RlIHRoYXQgY2xhc3Mg
ZGVjb3JhdG9ycyByZXF1aXJlIFB5dGhvbiAyLjYuIEhvd2V2ZXIsIHRoZSBlZmZlY3Qgb2YgdGhl
Ci0gICBkZWNvcmF0b3IgY2FuIGJlIGVtdWxhdGVkIG9uIFB5dGhvbiAyLjUgbGlrZSBzbzo6Ci0K
LSAgICAgICBjbGFzcyBNeUNsYXNzKG9iamVjdCk6Ci0gICAgICAgICAgIHBhc3MKLSAgICAgICBN
eUNsYXNzID0gYWRkX21ldGFjbGFzcyhNZXRhKShNeUNsYXNzKQotCi0KLUJpbmFyeSBhbmQgdGV4
dCBkYXRhCi0+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgotCi1QeXRob24gMyBlbmZvcmNlcyB0aGUgZGlz
dGluY3Rpb24gYmV0d2VlbiBieXRlIHN0cmluZ3MgYW5kIHRleHQgc3RyaW5ncyBmYXIgbW9yZQot
cmlnb3Jpb3VzbHkgdGhhbiBQeXRob24gMiBkb2VzOyBiaW5hcnkgZGF0YSBjYW5ub3QgYmUgYXV0
b21hdGljYWxseSBjb2VyY2VkIHRvCi1vciBmcm9tIHRleHQgZGF0YS4gIHNpeCBwcm92aWRlcyBz
ZXZlcmFsIGZ1bmN0aW9ucyB0byBhc3Npc3QgaW4gY2xhc3NpZnlpbmcKLXN0cmluZyBkYXRhIGlu
IGFsbCBQeXRob24gdmVyc2lvbnMuCi0KLQotLi4gZnVuY3Rpb246OiBiKGRhdGEpCi0KLSAgIEEg
ImZha2UiIGJ5dGVzIGxpdGVyYWwuICAqZGF0YSogc2hvdWxkIGFsd2F5cyBiZSBhIG5vcm1hbCBz
dHJpbmcgbGl0ZXJhbC4gIEluCi0gICBQeXRob24gMiwgOmZ1bmM6YGJgIHJldHVybnMgYSA4LWJp
dCBzdHJpbmcuICBJbiBQeXRob24gMywgKmRhdGEqIGlzIGVuY29kZWQKLSAgIHdpdGggdGhlIGxh
dGluLTEgZW5jb2RpbmcgdG8gYnl0ZXMuCi0KLQotICAgLi4gbm90ZTo6Ci0KLSAgICAgIFNpbmNl
IGFsbCBQeXRob24gdmVyc2lvbnMgMi42IGFuZCBhZnRlciBzdXBwb3J0IHRoZSBgYGJgYCBwcmVm
aXgsCi0gICAgICA6ZnVuYzpgYmAsIGNvZGUgd2l0aG91dCAyLjUgc3VwcG9ydCBkb2Vzbid0IG5l
ZWQgOmZ1bmM6YGJgLgotCi0KLS4uIGZ1bmN0aW9uOjogdSh0ZXh0KQotCi0gICBBICJmYWtlIiB1
bmljb2RlIGxpdGVyYWwuICAqdGV4dCogc2hvdWxkIGFsd2F5cyBiZSBhIG5vcm1hbCBzdHJpbmcg
bGl0ZXJhbC4KLSAgIEluIFB5dGhvbiAyLCA6ZnVuYzpgdWAgcmV0dXJucyB1bmljb2RlLCBhbmQg
aW4gUHl0aG9uIDMsIGEgc3RyaW5nLiAgQWxzbywgaW4KLSAgIFB5dGhvbiAyLCB0aGUgc3RyaW5n
IGlzIGRlY29kZWQgd2l0aCB0aGUgYGB1bmljb2RlLWVzY2FwZWBgIGNvZGVjLCB3aGljaAotICAg
YWxsb3dzIHVuaWNvZGUgZXNjYXBlcyB0byBiZSB1c2VkIGluIGl0LgotCi0KLSAgIC4uIG5vdGU6
OgotCi0gICAgICBJbiBQeXRob24gMy4zLCB0aGUgYGB1YGAgcHJlZml4IGhhcyBiZWVuIHJlaW50
cm9kdWNlZC4gQ29kZSB0aGF0IG9ubHkKLSAgICAgIHN1cHBvcnRzIFB5dGhvbiAzIHZlcnNpb25z
IGdyZWF0ZXIgdGhhbiAzLjMgdGh1cyBkb2VzIG5vdCBuZWVkCi0gICAgICA6ZnVuYzpgdWAuCi0K
LSAgIC4uIG5vdGU6OgotCi0gICAgICBPbiBQeXRob24gMiwgOmZ1bmM6YHVgIGRvZXNuJ3Qga25v
dyB3aGF0IHRoZSBlbmNvZGluZyBvZiB0aGUgbGl0ZXJhbAotICAgICAgaXMuIEVhY2ggYnl0ZSBp
cyBjb252ZXJ0ZWQgZGlyZWN0bHkgdG8gdGhlIHVuaWNvZGUgY29kZXBvaW50IG9mIHRoZSBzYW1l
Ci0gICAgICB2YWx1ZS4gQmVjYXVzZSBvZiB0aGlzLCBpdCdzIG9ubHkgc2FmZSB0byB1c2UgOmZ1
bmM6YHVgIHdpdGggc3RyaW5ncyBvZgotICAgICAgQVNDSUkgZGF0YS4KLQotCi0uLiBmdW5jdGlv
bjo6IHVuaWNocihjKQotCi0gICBSZXR1cm4gdGhlIChVbmljb2RlKSBzdHJpbmcgcmVwcmVzZW50
aW5nIHRoZSBjb2RlcG9pbnQgKmMqLiAgVGhpcyBpcwotICAgZXF1aXZhbGVudCB0byA6ZnVuYzpg
cHkyOnVuaWNocmAgb24gUHl0aG9uIDIgYW5kIDpmdW5jOmBweTM6Y2hyYCBvbiBQeXRob24gMy4K
LQotCi0uLiBmdW5jdGlvbjo6IGludDJieXRlKGkpCi0KLSAgIENvbnZlcnRzICppKiB0byBhIGJ5
dGUuICAqaSogbXVzdCBiZSBpbiBgYHJhbmdlKDAsIDI1NilgYC4gIFRoaXMgaXMKLSAgIGVxdWl2
YWxlbnQgdG8gOmZ1bmM6YHB5MjpjaHJgIGluIFB5dGhvbiAyIGFuZCBgYGJ5dGVzKChpLCkpYGAg
aW4gUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246OiBieXRlMmludChicykKLQotICAgQ29udmVy
dHMgdGhlIGZpcnN0IGJ5dGUgb2YgKmJzKiB0byBhbiBpbnRlZ2VyLiAgVGhpcyBpcyBlcXVpdmFs
ZW50IHRvCi0gICBgYG9yZChic1swXSlgYCBvbiBQeXRob24gMiBhbmQgYGBic1swXWBgIG9uIFB5
dGhvbiAzLgotCi0KLS4uIGZ1bmN0aW9uOjogaW5kZXhieXRlcyhidWYsIGkpCi0KLSAgIFJldHVy
biB0aGUgYnl0ZSBhdCBpbmRleCAqaSogb2YgKmJ1ZiogYXMgYW4gaW50ZWdlci4gIFRoaXMgaXMg
ZXF1aXZhbGVudCB0bwotICAgaW5kZXhpbmcgYSBieXRlcyBvYmplY3QgaW4gUHl0aG9uIDMuCi0K
LQotLi4gZnVuY3Rpb246OiBpdGVyYnl0ZXMoYnVmKQotCi0gICBSZXR1cm4gYW4gaXRlcmF0b3Ig
b3ZlciBieXRlcyBpbiAqYnVmKiBhcyBpbnRlZ2Vycy4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bwot
ICAgYSBieXRlcyBvYmplY3QgaXRlcmF0b3IgaW4gUHl0aG9uIDMuCi0KLQotLi4gZGF0YTo6IFN0
cmluZ0lPCi0KLSAgIFRoaXMgaXMgYW4gZmFrZSBmaWxlIG9iamVjdCBmb3IgdGV4dHVhbCBkYXRh
LiAgSXQncyBhbiBhbGlhcyBmb3IKLSAgIDpjbGFzczpgcHkyOlN0cmluZ0lPLlN0cmluZ0lPYCBp
biBQeXRob24gMiBhbmQgOmNsYXNzOmBweTM6aW8uU3RyaW5nSU9gIGluCi0gICBQeXRob24gMy4K
LQotCi0uLiBkYXRhOjogQnl0ZXNJTwotCi0gICBUaGlzIGlzIGEgZmFrZSBmaWxlIG9iamVjdCBm
b3IgYmluYXJ5IGRhdGEuICBJbiBQeXRob24gMiwgaXQncyBhbiBhbGlhcyBmb3IKLSAgIDpjbGFz
czpgcHkyOlN0cmluZ0lPLlN0cmluZ0lPYCwgYnV0IGluIFB5dGhvbiAzLCBpdCdzIGFuIGFsaWFz
IGZvcgotICAgOmNsYXNzOmBweTM6aW8uQnl0ZXNJT2AuCi0KLQotUmVuYW1lZCBtb2R1bGVzIGFu
ZCBhdHRyaWJ1dGVzIGNvbXBhdGliaWxpdHkKLT4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+
Pj4+Pj4+Pj4+Pj4+Pj4+Ci0KLS4uIG1vZHVsZTo6IHNpeC5tb3ZlcwotICAgOnN5bm9wc2lzOiBS
ZW5hbWVkIG1vZHVsZXMgYW5kIGF0dHJpYnV0ZXMgY29tcGF0aWJpbGl0eQotCi1QeXRob24gMyBy
ZW9yZ2FuaXplZCB0aGUgc3RhbmRhcmQgbGlicmFyeSBhbmQgbW92ZWQgc2V2ZXJhbCBmdW5jdGlv
bnMgdG8KLWRpZmZlcmVudCBtb2R1bGVzLiAgU2l4IHByb3ZpZGVzIGEgY29uc2lzdGVudCBpbnRl
cmZhY2UgdG8gdGhlbSB0aHJvdWdoIHRoZSBmYWtlCi06bW9kOmBzaXgubW92ZXNgIG1vZHVsZS4g
IEZvciBleGFtcGxlLCB0byBsb2FkIHRoZSBtb2R1bGUgZm9yIHBhcnNpbmcgSFRNTCBvbgotUHl0
aG9uIDIgb3IgMywgd3JpdGU6OgotCi0gICBmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgaHRtbF9wYXJz
ZXIKLQotU2ltaWxhcmx5LCB0byBnZXQgdGhlIGZ1bmN0aW9uIHRvIHJlbG9hZCBtb2R1bGVzLCB3
aGljaCB3YXMgbW92ZWQgZnJvbSB0aGUKLWJ1aWx0aW4gbW9kdWxlIHRvIHRoZSBgYGltcGBgIG1v
ZHVsZSwgdXNlOjoKLQotICAgZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJlbG9hZF9tb2R1bGUKLQot
Rm9yIHRoZSBtb3N0IHBhcnQsIDptb2Q6YHNpeC5tb3Zlc2AgYWxpYXNlcyBhcmUgdGhlIG5hbWVz
IG9mIHRoZSBtb2R1bGVzIGluCi1QeXRob24gMy4gIFdoZW4gdGhlIG5ldyBQeXRob24gMyBuYW1l
IGlzIGEgcGFja2FnZSwgdGhlIGNvbXBvbmVudHMgb2YgdGhlIG5hbWUKLWFyZSBzZXBhcmF0ZWQg
YnkgdW5kZXJzY29yZXMuICBGb3IgZXhhbXBsZSwgYGBodG1sLnBhcnNlcmBgIGJlY29tZXMKLWBg
aHRtbF9wYXJzZXJgYC4gIEluIHNvbWUgY2FzZXMgd2hlcmUgc2V2ZXJhbCBtb2R1bGVzIGhhdmUg
YmVlbiBjb21iaW5lZCwgdGhlCi1QeXRob24gMiBuYW1lIGlzIHJldGFpbmVkLiAgVGhpcyBpcyBz
byB0aGUgYXBwcm9wcmlhdGUgbW9kdWxlcyBjYW4gYmUgZm91bmQgd2hlbgotcnVubmluZyBvbiBQ
eXRob24gMi4gIEZvciBleGFtcGxlLCBgYEJhc2VIVFRQU2VydmVyYGAgd2hpY2ggaXMgaW4KLWBg
aHR0cC5zZXJ2ZXJgYCBpbiBQeXRob24gMyBpcyBhbGlhc2VkIGFzIGBgQmFzZUhUVFBTZXJ2ZXJg
YC4KLQotU29tZSBtb2R1bGVzIHdoaWNoIGhhZCB0d28gaW1wbGVtZW50YXRpb25zIGhhdmUgYmVl
biBtZXJnZWQgaW4gUHl0aG9uIDMuICBGb3IKLWV4YW1wbGUsIGBgY1BpY2tsZWBgIG5vIGxvbmdl
ciBleGlzdHMgaW4gUHl0aG9uIDM7IGl0IHdhcyBtZXJnZWQgd2l0aAotYGBwaWNrbGVgYC4gIElu
IHRoZXNlIGNhc2VzLCBmZXRjaGluZyB0aGUgZmFzdCB2ZXJzaW9uIHdpbGwgbG9hZCB0aGUgZmFz
dCBvbmUgb24KLVB5dGhvbiAyIGFuZCB0aGUgbWVyZ2VkIG1vZHVsZSBpbiBQeXRob24gMy4KLQot
VGhlIDptb2Q6YHB5Mjp1cmxsaWJgLCA6bW9kOmBweTI6dXJsbGliMmAsIGFuZCA6bW9kOmBweTI6
dXJscGFyc2VgIG1vZHVsZXMgaGF2ZQotYmVlbiBjb21iaW5lZCBpbiB0aGUgOm1vZDpgcHkzOnVy
bGxpYmAgcGFja2FnZSBpbiBQeXRob24gMy4gIFRoZQotOm1vZDpgc2l4Lm1vdmVzLnVybGxpYmAg
cGFja2FnZSBpcyBhIHZlcnNpb24taW5kZXBlbmRlbnQgbG9jYXRpb24gZm9yIHRoaXMKLWZ1bmN0
aW9uYWxpdHk7IGl0cyBzdHJ1Y3R1cmUgbWltaWNzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIFB5dGhv
biAzCi06bW9kOmBweTM6dXJsbGliYCBwYWNrYWdlLgotCi0uLiBub3RlOjoKLQotICAgSW4gb3Jk
ZXIgdG8gbWFrZSBpbXBvcnRzIG9mIHRoZSBmb3JtOjoKLQotICAgICBmcm9tIHNpeC5tb3Zlcy5j
UGlja2xlIGltcG9ydCBsb2FkcwotCi0gICB3b3JrLCBzaXggcGxhY2VzIHNwZWNpYWwgcHJveHkg
b2JqZWN0cyBpbiBpbiA6ZGF0YTpgcHkzOnN5cy5tb2R1bGVzYC4gVGhlc2UKLSAgIHByb3hpZXMg
bGF6aWx5IGxvYWQgdGhlIHVuZGVybHlpbmcgbW9kdWxlIHdoZW4gYW4gYXR0cmlidXRlIGlzIGZl
dGNoZWQuIFRoaXMKLSAgIHdpbGwgZmFpbCBpZiB0aGUgdW5kZXJseWluZyBtb2R1bGUgaXMgbm90
IGF2YWlsYWJsZSBpbiB0aGUgUHl0aG9uCi0gICBpbnRlcnByZXRlci4gRm9yIGV4YW1wbGUsIGBg
c3lzLm1vZHVsZXNbInNpeC5tb3Zlcy53aW5yZWciXS5Mb2FkS2V5YGAgd291bGQKLSAgIGZhaWwg
b24gYW55IG5vbi1XaW5kb3dzIHBsYXRmb3JtLiBVbmZvcnR1bmF0ZWx5LCBzb21lIGFwcGxpY2F0
aW9ucyB0cnkgdG8KLSAgIGxvYWQgYXR0cmlidXRlcyBvbiBldmVyeSBtb2R1bGUgaW4gOmRhdGE6
YHB5MzpzeXMubW9kdWxlc2AuIHNpeCBtaXRpZ2F0ZXMKLSAgIHRoaXMgcHJvYmxlbSBmb3Igc29t
ZSBhcHBsaWNhdGlvbnMgYnkgcHJldGVuZGluZyBhdHRyaWJ1dGVzIG9uIHVuaW1wb3J0YWJsZQot
ICAgbW9kdWxlcyBkb24ndCBleGlzdC4gVGhpcyBoYWNrIGRvZXNuJ3Qgd29yayBpbiBldmVyeSBj
YXNlLCB0aG91Z2guIElmIHlvdSBhcmUKLSAgIGVuY291bnRlcmluZyBwcm9ibGVtcyB3aXRoIHRo
ZSBsYXp5IG1vZHVsZXMgYW5kIGRvbid0IHVzZSBhbnkgZnJvbSBpbXBvcnRzCi0gICBkaXJlY3Rs
eSBmcm9tIGBgc2l4Lm1vdmVzYGAgbW9kdWxlcywgeW91IGNhbiB3b3JrYXJvdW5kIHRoZSBpc3N1
ZSBieSByZW1vdmluZwotICAgdGhlIHNpeCBwcm94eSBtb2R1bGVzOjoKLQotICAgICBkID0gW25h
bWUgZm9yIG5hbWUgaW4gc3lzLm1vZHVsZXMgaWYgbmFtZS5zdGFydHN3aXRoKCJzaXgubW92ZXMu
IildCi0gICAgIGZvciBuYW1lIGluIGQ6Ci0gICAgICAgICBkZWwgc3lzLm1vZHVsZXNbbmFtZV0K
LQotU3VwcG9ydGVkIHJlbmFtZXM6Ci0KLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKwotfCBOYW1lICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHl0
aG9uIDIgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gMyBuYW1lICAgICAgICAg
ICAgICAgICAgICAgICB8Ci0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSsKLXwgYGBidWlsdGluc2BgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mjpf
X2J1aWx0aW5fX2AgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOmJ1aWx0aW5zYCAgICAgICAgICAg
ICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rCi18IGBgY29uZmlncGFyc2VyYGAgICAgICAgICAgICAgfCA6bW9kOmBweTI6Q29uZmlnUGFy
c2VyYCAgICAgICAgICAgICB8IDptb2Q6YHB5Mzpjb25maWdwYXJzZXJgICAgICAgICAgICAgIHwK
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBg
YGNvcHlyZWdgYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOmNvcHlfcmVnYCAgICAgICAg
ICAgICAgICAgfCA6bW9kOmBweTM6Y29weXJlZ2AgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBjUGlja2xl
YGAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpjUGlja2xlYCAgICAgICAgICAgICAgICAg
IHwgOm1vZDpgcHkzOnBpY2tsZWAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgY1N0cmluZ0lPYGAgICAg
ICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOmNTdHJpbmdJTy5TdHJpbmdJT2AgICAgICB8IDpjbGFz
czpgcHkzOmlvLlN0cmluZ0lPYCAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGRibV9nbnVgYCAgICAgICAgICAgICAg
ICAgIHwgOmZ1bmM6YHB5MjpnZGJtYCAgICAgICAgICAgICAgICAgICAgfCA6Y2xhc3M6YHB5Mzpk
Ym0uZ251YCAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBfZHVtbXlfdGhyZWFkYGAgICAgICAgICAgICB8IDpt
b2Q6YHB5MjpkdW1teV90aHJlYWRgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOl9kdW1teV90aHJl
YWRgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rCi18IGBgZW1haWxfbWltZV9tdWx0aXBhcnRgYCAgICAgfCA6bW9kOmBweTI6
ZW1haWwuTUlNRU11bHRpcGFydGAgICAgICB8IDptb2Q6YHB5MzplbWFpbC5taW1lLm11bHRpcGFy
dGAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKwotfCBgYGVtYWlsX21pbWVfbm9ubXVsdGlwYXJ0YGAgIHwgOm1vZDpgcHkyOmVtYWlsLk1J
TUVOb25NdWx0aXBhcnRgICAgfCA6bW9kOmBweTM6ZW1haWwubWltZS5ub25tdWx0aXBhcnRgICB8
Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwg
YGBlbWFpbF9taW1lX3RleHRgYCAgICAgICAgICB8IDptb2Q6YHB5MjplbWFpbC5NSU1FVGV4dGAg
ICAgICAgICAgIHwgOm1vZDpgcHkzOmVtYWlsLm1pbWUudGV4dGAgICAgICAgICAgfAotKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgZW1haWxf
bWltZV9iYXNlYGAgICAgICAgICAgfCA6bW9kOmBweTI6ZW1haWwuTUlNRUJhc2VgICAgICAgICAg
ICB8IDptb2Q6YHB5MzplbWFpbC5taW1lLmJhc2VgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGZpbHRlcmBgICAgICAg
ICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjppdGVydG9vbHMuaWZpbHRlcmAgICAgICAgfCA6ZnVu
YzpgcHkzOmZpbHRlcmAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBmaWx0ZXJmYWxzZWBgICAgICAgICAg
ICAgICB8IDpmdW5jOmBweTI6aXRlcnRvb2xzLmlmaWx0ZXJmYWxzZWAgIHwgOmZ1bmM6YHB5Mzpp
dGVydG9vbHMuZmlsdGVyZmFsc2VgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgaHR0cF9jb29raWVqYXJgYCAgICAgICAgICAgfCA6
bW9kOmBweTI6Y29va2llbGliYCAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpodHRwLmNvb2tp
ZWphcmAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKwotfCBgYGh0dHBfY29va2llc2BgICAgICAgICAgICAgIHwgOm1vZDpgcHky
OkNvb2tpZWAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6aHR0cC5jb29raWVzYCAgICAg
ICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSsKLXwgYGBodG1sX2VudGl0aWVzYGAgICAgICAgICAgICB8IDptb2Q6YHB5MjpodG1sZW50
aXR5ZGVmc2AgICAgICAgICAgIHwgOm1vZDpgcHkzOmh0bWwuZW50aXRpZXNgICAgICAgICAgICAg
fAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18
IGBgaHRtbF9wYXJzZXJgYCAgICAgICAgICAgICAgfCA6bW9kOmBweTI6SFRNTFBhcnNlcmAgICAg
ICAgICAgICAgICB8IDptb2Q6YHB5MzpodG1sLnBhcnNlcmAgICAgICAgICAgICAgIHwKLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGh0dHBf
Y2xpZW50YGAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOmh0dHBsaWJgICAgICAgICAgICAgICAg
ICAgfCA6bW9kOmBweTM6aHR0cC5jbGllbnRgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBCYXNlSFRUUFNlcnZl
cmBgICAgICAgICAgICB8IDptb2Q6YHB5MjpCYXNlSFRUUFNlcnZlcmAgICAgICAgICAgIHwgOm1v
ZDpgcHkzOmh0dHAuc2VydmVyYCAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgQ0dJSFRUUFNlcnZlcmBgICAgICAg
ICAgICAgfCA6bW9kOmBweTI6Q0dJSFRUUFNlcnZlcmAgICAgICAgICAgICB8IDptb2Q6YHB5Mzpo
dHRwLnNlcnZlcmAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYFNpbXBsZUhUVFBTZXJ2ZXJgYCAgICAgICAgIHwg
Om1vZDpgcHkyOlNpbXBsZUhUVFBTZXJ2ZXJgICAgICAgICAgfCA6bW9kOmBweTM6aHR0cC5zZXJ2
ZXJgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSsKLXwgYGBpbnB1dGBgICAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBw
eTI6cmF3X2lucHV0YCAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MzppbnB1dGAgICAgICAgICAg
ICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rCi18IGBgaW50ZXJuYGAgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOmludGVy
bmAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTM6c3lzLmludGVybmAgICAgICAgICAgICAg
IHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwot
fCBgYG1hcGBgICAgICAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjppdGVydG9vbHMuaW1h
cGAgICAgICAgICAgfCA6ZnVuYzpgcHkzOm1hcGAgICAgICAgICAgICAgICAgICAgICB8Ci0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBxdWV1
ZWBgICAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpRdWV1ZWAgICAgICAgICAgICAgICAg
ICAgIHwgOm1vZDpgcHkzOnF1ZXVlYCAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgcmFuZ2VgYCAgICAg
ICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOnhyYW5nZWAgICAgICAgICAgICAgICAgICB8IDpm
dW5jOmBweTM6cmFuZ2VgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHJlZHVjZWBgICAgICAgICAgICAg
ICAgICAgIHwgOmZ1bmM6YHB5MjpyZWR1Y2VgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkz
OmZ1bmN0b29scy5yZWR1Y2VgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGByZWxvYWRfbW9kdWxlYGAgICAgICAgICAgICB8
IDpmdW5jOmBweTI6cmVsb2FkYCAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MzppbXAucmVs
b2FkYCAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rCi18IGBgcmVwcmxpYmBgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBw
eTI6cmVwcmAgICAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpyZXBybGliYCAgICAgICAg
ICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKwotfCBgYHNobGV4X3F1b3RlYGAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOnBpcGVz
LnF1b3RlYCAgICAgICAgICAgICAgfCA6bW9kOmBweTM6c2hsZXgucXVvdGVgICAgICAgICAgICAg
ICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK
LXwgYGBzb2NrZXRzZXJ2ZXJgYCAgICAgICAgICAgICB8IDptb2Q6YHB5MjpTb2NrZXRTZXJ2ZXJg
ICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnNvY2tldHNlcnZlcmAgICAgICAgICAgICAgfAotKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgX3Ro
cmVhZGBgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6dGhyZWFkYCAgICAgICAgICAgICAg
ICAgICB8IDptb2Q6YHB5MzpfdGhyZWFkYCAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJgYCAg
ICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOlRraW50ZXJgICAgICAgICAgICAgICAgICAgfCA6
bW9kOmBweTM6dGtpbnRlcmAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX2RpYWxvZ2BgICAg
ICAgICAgICB8IDptb2Q6YHB5MjpEaWFsb2dgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkz
OnRraW50ZXIuZGlhbG9nYCAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl9maWxlZGlhbG9nYGAgICAgICAg
fCA6bW9kOmBweTI6RmlsZURpYWxvZ2AgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVy
LkZpbGVEaWFsb2dgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfc2Nyb2xsZWR0ZXh0YGAgICAgIHwgOm1vZDpg
cHkyOlNjcm9sbGVkVGV4dGAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5zY3JvbGxl
ZHRleHRgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSsKLXwgYGB0a2ludGVyX3NpbXBsZWRpYWxvZ2BgICAgICB8IDptb2Q6YHB5MjpTaW1w
bGVEaWFsb2dgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuc2ltcGxlZGlhbG9nYCAg
ICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
Ci18IGBgdGtpbnRlcl90dGtgYCAgICAgICAgICAgICAgfCA6bW9kOmBweTI6dHRrYCAgICAgICAg
ICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLnR0a2AgICAgICAgICAgICAgIHwKLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRr
aW50ZXJfdGl4YGAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOlRpeGAgICAgICAgICAgICAgICAg
ICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci50aXhgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX2Nv
bnN0YW50c2BgICAgICAgICB8IDptb2Q6YHB5MjpUa2NvbnN0YW50c2AgICAgICAgICAgICAgIHwg
Om1vZDpgcHkzOnRraW50ZXIuY29uc3RhbnRzYCAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl9kbmRgYCAgICAg
ICAgICAgICAgfCA6bW9kOmBweTI6VGtkbmRgICAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5
Mzp0a2ludGVyLmRuZGAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfY29sb3JjaG9vc2VyYGAgICAg
IHwgOm1vZDpgcHkyOnRrQ29sb3JDaG9vc2VyYCAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRl
ci5jb2xvcmNob29zZXJgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX2NvbW1vbmRpYWxvZ2BgICAgICB8IDptb2Q6
YHB5Mjp0a0NvbW1vbkRpYWxvZ2AgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuY29tbW9u
ZGlhbG9nYCAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rCi18IGBgdGtpbnRlcl90a2ZpbGVkaWFsb2dgYCAgICAgfCA6bW9kOmBweTI6dGtG
aWxlRGlhbG9nYCAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLmZpbGVkaWFsb2dgICAg
ICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KwotfCBgYHRraW50ZXJfZm9udGBgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOnRrRm9udGAgICAg
ICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5mb250YCAgICAgICAgICAgICB8Ci0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0
a2ludGVyX21lc3NhZ2Vib3hgYCAgICAgICB8IDptb2Q6YHB5Mjp0a01lc3NhZ2VCb3hgICAgICAg
ICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIubWVzc2FnZWJveGAgICAgICAgfAotKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl90
a3NpbXBsZWRpYWxvZ2BgICAgfCA6bW9kOmBweTI6dGtTaW1wbGVEaWFsb2dgICAgICAgICAgICB8
IDptb2Q6YHB5Mzp0a2ludGVyLnNpbXBsZWRpYWxvZ2AgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHVybGxpYi5wYXJzZWBgICAg
ICAgICAgICAgIHwgU2VlIDptb2Q6YHNpeC5tb3Zlcy51cmxsaWIucGFyc2VgICAgfCA6bW9kOmBw
eTM6dXJsbGliLnBhcnNlYCAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB1cmxsaWIuZXJyb3JgYCAgICAgICAgICAg
ICB8IFNlZSA6bW9kOmBzaXgubW92ZXMudXJsbGliLmVycm9yYCAgIHwgOm1vZDpgcHkzOnVybGxp
Yi5lcnJvcmAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdXJsbGliLnJlcXVlc3RgYCAgICAgICAgICAgfCBTZWUg
Om1vZDpgc2l4Lm1vdmVzLnVybGxpYi5yZXF1ZXN0YCB8IDptb2Q6YHB5Mzp1cmxsaWIucmVxdWVz
dGAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKwotfCBgYHVybGxpYi5yZXNwb25zZWBgICAgICAgICAgIHwgU2VlIDptb2Q6YHNp
eC5tb3Zlcy51cmxsaWIucmVzcG9uc2VgfCA6bW9kOmBweTM6dXJsbGliLnJlc3BvbnNlYCAgICAg
ICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSsKLXwgYGB1cmxsaWIucm9ib3RwYXJzZXJgYCAgICAgICB8IDptb2Q6YHB5Mjpyb2JvdHBhcnNl
cmAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnVybGxpYi5yb2JvdHBhcnNlcmAgICAgICAgfAot
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBg
dXJsbGliX3JvYm90cGFyc2VyYGAgICAgICAgfCA6bW9kOmBweTI6cm9ib3RwYXJzZXJgICAgICAg
ICAgICAgICB8IDptb2Q6YHB5Mzp1cmxsaWIucm9ib3RwYXJzZXJgICAgICAgIHwKLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYFVzZXJEaWN0
YGAgICAgICAgICAgICAgICAgIHwgOmNsYXNzOmBweTI6VXNlckRpY3QuVXNlckRpY3RgICAgICAg
fCA6Y2xhc3M6YHB5Mzpjb2xsZWN0aW9ucy5Vc2VyRGljdGAgICB8Ci0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBVc2VyTGlzdGBgICAgICAg
ICAgICAgICAgICB8IDpjbGFzczpgcHkyOlVzZXJMaXN0LlVzZXJMaXN0YCAgICAgIHwgOmNsYXNz
OmBweTM6Y29sbGVjdGlvbnMuVXNlckxpc3RgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgVXNlclN0cmluZ2BgICAgICAgICAgICAg
ICAgfCA6Y2xhc3M6YHB5MjpVc2VyU3RyaW5nLlVzZXJTdHJpbmdgICB8IDpjbGFzczpgcHkzOmNv
bGxlY3Rpb25zLlVzZXJTdHJpbmdgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHdpbnJlZ2BgICAgICAgICAgICAgICAgICAgIHwgOm1v
ZDpgcHkyOl93aW5yZWdgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6d2lucmVnYCAgICAg
ICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSsKLXwgYGB4bWxycGNfY2xpZW50YGAgICAgICAgICAgICB8IDptb2Q6YHB5Mjp4
bWxycGNsaWJgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnhtbHJwYy5jbGllbnRgICAgICAg
ICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rCi18IGBgeG1scnBjX3NlcnZlcmBgICAgICAgICAgICAgfCA6bW9kOmBweTI6U2ltcGxlWE1M
UlBDU2VydmVyYCAgICAgICB8IDptb2Q6YHB5Mzp4bWxycGMuc2VydmVyYCAgICAgICAgICAgIHwK
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBg
YHhyYW5nZWBgICAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5Mjp4cmFuZ2VgICAgICAgICAg
ICAgICAgICAgfCA6ZnVuYzpgcHkzOnJhbmdlYCAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB6aXBgYCAg
ICAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6aXRlcnRvb2xzLml6aXBgICAgICAgICAg
IHwgOmZ1bmM6YHB5Mzp6aXBgICAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgemlwX2xvbmdlc3RgYCAg
ICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOml0ZXJ0b29scy5pemlwX2xvbmdlc3RgICB8IDpmdW5j
OmBweTM6aXRlcnRvb2xzLnppcF9sb25nZXN0YCAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCi11cmxsaWIgcGFyc2UKLTw8PDw8PDw8PDw8
PAotCi0uLiBtb2R1bGU6OiBzaXgubW92ZXMudXJsbGliLnBhcnNlCi0gICA6c3lub3BzaXM6IFN0
dWZmIGZyb20gOm1vZDpgcHkyOnVybHBhcnNlYCBhbmQgOm1vZDpgcHkyOnVybGxpYmAgaW4gUHl0
aG9uIDIgYW5kIDptb2Q6YHB5Mzp1cmxsaWIucGFyc2VgIGluIFB5dGhvbiAzCi0KLUNvbnRhaW5z
IGZ1bmN0aW9ucyBmcm9tIFB5dGhvbiAzJ3MgOm1vZDpgcHkzOnVybGxpYi5wYXJzZWAgYW5kIFB5
dGhvbiAyJ3M6Ci0KLTptb2Q6YHB5Mjp1cmxwYXJzZWA6Ci0KLSogOmZ1bmM6YHB5Mjp1cmxwYXJz
ZS5QYXJzZVJlc3VsdGAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS5TcGxpdFJlc3VsdGAKLSogOmZ1
bmM6YHB5Mjp1cmxwYXJzZS51cmxwYXJzZWAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmx1bnBh
cnNlYAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnBhcnNlX3FzYAotKiA6ZnVuYzpgcHkyOnVybHBh
cnNlLnBhcnNlX3FzbGAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmxqb2luYAotKiA6ZnVuYzpg
cHkyOnVybHBhcnNlLnVybGRlZnJhZ2AKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmxzcGxpdGAK
LSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmx1bnNwbGl0YAotKiA6ZnVuYzpgcHkyOnVybHBhcnNl
LnNwbGl0cXVlcnlgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXNlc19mcmFnbWVudGAKLSogOmZ1
bmM6YHB5Mjp1cmxwYXJzZS51c2VzX25ldGxvY2AKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51c2Vz
X3BhcmFtc2AKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51c2VzX3F1ZXJ5YAotKiA6ZnVuYzpgcHky
OnVybHBhcnNlLnVzZXNfcmVsYXRpdmVgCi0KLWFuZCA6bW9kOmBweTI6dXJsbGliYDoKLQotKiA6
ZnVuYzpgcHkyOnVybGxpYi5xdW90ZWAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIucXVvdGVfcGx1c2AK
LSogOmZ1bmM6YHB5Mjp1cmxsaWIuc3BsaXR0YWdgCi0qIDpmdW5jOmBweTI6dXJsbGliLnNwbGl0
dXNlcmAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudW5xdW90ZWAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIu
dW5xdW90ZV9wbHVzYAotKiA6ZnVuYzpgcHkyOnVybGxpYi51cmxlbmNvZGVgCi0KLQotdXJsbGli
IGVycm9yCi08PDw8PDw8PDw8PDwKLQotLi4gbW9kdWxlOjogc2l4Lm1vdmVzLnVybGxpYi5lcnJv
cgotICAgOnN5bm9wc2lzOiBTdHVmZiBmcm9tIDptb2Q6YHB5Mjp1cmxsaWJgIGFuZCA6bW9kOmBw
eTI6dXJsbGliMmAgaW4gUHl0aG9uIDIgYW5kIDptb2Q6YHB5Mzp1cmxsaWIuZXJyb3JgIGluIFB5
dGhvbiAzCi0KLUNvbnRhaW5zIGV4Y2VwdGlvbnMgZnJvbSBQeXRob24gMydzIDptb2Q6YHB5Mzp1
cmxsaWIuZXJyb3JgIGFuZCBQeXRob24gMidzOgotCi06bW9kOmBweTI6dXJsbGliYDoKLQotKiA6
ZXhjOmBweTI6dXJsbGliLkNvbnRlbnRUb29TaG9ydEVycm9yYAotCi1hbmQgOm1vZDpgcHkyOnVy
bGxpYjJgOgotCi0qIDpleGM6YHB5Mjp1cmxsaWIyLlVSTEVycm9yYAotKiA6ZXhjOmBweTI6dXJs
bGliMi5IVFRQRXJyb3JgCi0KLQotdXJsbGliIHJlcXVlc3QKLTw8PDw8PDw8PDw8PDw8Ci0KLS4u
IG1vZHVsZTo6IHNpeC5tb3Zlcy51cmxsaWIucmVxdWVzdAotICAgOnN5bm9wc2lzOiBTdHVmZiBm
cm9tIDptb2Q6YHB5Mjp1cmxsaWJgIGFuZCA6bW9kOmBweTI6dXJsbGliMmAgaW4gUHl0aG9uIDIg
YW5kIDptb2Q6YHB5Mzp1cmxsaWIucmVxdWVzdGAgaW4gUHl0aG9uIDMKLQotQ29udGFpbnMgaXRl
bXMgZnJvbSBQeXRob24gMydzIDptb2Q6YHB5Mzp1cmxsaWIucmVxdWVzdGAgYW5kIFB5dGhvbiAy
J3M6Ci0KLTptb2Q6YHB5Mjp1cmxsaWJgOgotCi0qIDpmdW5jOmBweTI6dXJsbGliLnBhdGhuYW1l
MnVybGAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudXJsMnBhdGhuYW1lYAotKiA6ZnVuYzpgcHkyOnVy
bGxpYi5nZXRwcm94aWVzYAotKiA6ZnVuYzpgcHkyOnVybGxpYi51cmxyZXRyaWV2ZWAKLSogOmZ1
bmM6YHB5Mjp1cmxsaWIudXJsY2xlYW51cGAKLSogOmNsYXNzOmBweTI6dXJsbGliLlVSTG9wZW5l
cmAKLSogOmNsYXNzOmBweTI6dXJsbGliLkZhbmN5VVJMb3BlbmVyYAotKiA6ZnVuYzpgcHkyOnVy
bGxpYi5wcm94eV9ieXBhc3NgCi0KLWFuZCA6bW9kOmBweTI6dXJsbGliMmA6Ci0KLSogOmZ1bmM6
YHB5Mjp1cmxsaWIyLnVybG9wZW5gCi0qIDpmdW5jOmBweTI6dXJsbGliMi5pbnN0YWxsX29wZW5l
cmAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIyLmJ1aWxkX29wZW5lcmAKLSogOmNsYXNzOmBweTI6dXJs
bGliMi5SZXF1ZXN0YAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLk9wZW5lckRpcmVjdG9yYAotKiA6
Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBEZWZhdWx0RXJyb3JIYW5kbGVyYAotKiA6Y2xhc3M6YHB5
Mjp1cmxsaWIyLkhUVFBSZWRpcmVjdEhhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuSFRU
UENvb2tpZVByb2Nlc3NvcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5Qcm94eUhhbmRsZXJgCi0q
IDpjbGFzczpgcHkyOnVybGxpYjIuQmFzZUhhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIu
SFRUUFBhc3N3b3JkTWdyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBQYXNzd29yZE1ncldp
dGhEZWZhdWx0UmVhbG1gCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuQWJzdHJhY3RCYXNpY0F1dGhI
YW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBCYXNpY0F1dGhIYW5kbGVyYAotKiA6
Y2xhc3M6YHB5Mjp1cmxsaWIyLlByb3h5QmFzaWNBdXRoSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6
dXJsbGliMi5BYnN0cmFjdERpZ2VzdEF1dGhIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIy
LkhUVFBEaWdlc3RBdXRoSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5Qcm94eURpZ2Vz
dEF1dGhIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBIYW5kbGVyYAotKiA6Y2xh
c3M6YHB5Mjp1cmxsaWIyLkhUVFBTSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5GaWxl
SGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5GVFBIYW5kbGVyYAotKiA6Y2xhc3M6YHB5
Mjp1cmxsaWIyLkNhY2hlRlRQSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5Vbmtub3du
SGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5IVFRQRXJyb3JQcm9jZXNzb3JgCi0KLQot
dXJsbGliIHJlc3BvbnNlCi08PDw8PDw8PDw8PDw8PDwKLQotLi4gbW9kdWxlOjogc2l4Lm1vdmVz
LnVybGxpYi5yZXNwb25zZQotICAgOnN5bm9wc2lzOiBTdHVmZiBmcm9tIDptb2Q6YHB5Mjp1cmxs
aWJgIGluIFB5dGhvbiAyIGFuZCA6bW9kOmBweTM6dXJsbGliLnJlc3BvbnNlYCBpbiBQeXRob24g
MwotCi1Db250YWlucyBjbGFzc2VzIGZyb20gUHl0aG9uIDMncyA6bW9kOmBweTM6dXJsbGliLnJl
c3BvbnNlYCBhbmQgUHl0aG9uIDInczoKLQotOm1vZDpgcHkyOnVybGxpYmA6Ci0KLSogOmNsYXNz
OmBweTI6dXJsbGliLmFkZGJhc2VgCi0qIDpjbGFzczpgcHkyOnVybGxpYi5hZGRjbG9zZWhvb2tg
Ci0qIDpjbGFzczpgcHkyOnVybGxpYi5hZGRpbmZvYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIuYWRk
aW5mb3VybGAKLQotCi1BZHZhbmNlZCAtIEN1c3RvbWl6aW5nIHJlbmFtZXMKLTw8PDw8PDw8PDw8
PDw8PDw8PDw8PDw8PDw8PDw8PAotCi0uLiBjdXJyZW50bW9kdWxlOjogc2l4Ci0KLUl0IGlzIHBv
c3NpYmxlIHRvIGFkZCBhZGRpdGlvbmFsIG5hbWVzIHRvIHRoZSA6bW9kOmBzaXgubW92ZXNgIG5h
bWVzcGFjZS4KLQotCi0uLiBmdW5jdGlvbjo6IGFkZF9tb3ZlKGl0ZW0pCi0KLSAgIEFkZCAqaXRl
bSogdG8gdGhlIDptb2Q6YHNpeC5tb3Zlc2AgbWFwcGluZy4gICppdGVtKiBzaG91bGQgYmUgYQot
ICAgOmNsYXNzOmBNb3ZlZEF0dHJpYnV0ZWAgb3IgOmNsYXNzOmBNb3ZlZE1vZHVsZWAgaW5zdGFu
Y2UuCi0KLQotLi4gZnVuY3Rpb246OiByZW1vdmVfbW92ZShuYW1lKQotCi0gICBSZW1vdmUgdGhl
IDptb2Q6YHNpeC5tb3Zlc2AgbWFwcGluZyBjYWxsZWQgKm5hbWUqLiAgKm5hbWUqIHNob3VsZCBi
ZSBhCi0gICBzdHJpbmcuCi0KLQotSW5zdGFuY2VzIG9mIHRoZSBmb2xsb3dpbmcgY2xhc3NlcyBj
YW4gYmUgcGFzc2VkIHRvIDpmdW5jOmBhZGRfbW92ZWAuICBOZWl0aGVyCi1oYXZlIGFueSBwdWJs
aWMgbWVtYmVycy4KLQotCi0uLiBjbGFzczo6IE1vdmVkTW9kdWxlKG5hbWUsIG9sZF9tb2QsIG5l
d19tb2QpCi0KLSAgIENyZWF0ZSBhIG1hcHBpbmcgZm9yIDptb2Q6YHNpeC5tb3Zlc2AgY2FsbGVk
ICpuYW1lKiB0aGF0IHJlZmVyZW5jZXMgZGlmZmVyZW50Ci0gICBtb2R1bGVzIGluIFB5dGhvbiAy
IGFuZCAzLiAgKm9sZF9tb2QqIGlzIHRoZSBuYW1lIG9mIHRoZSBQeXRob24gMiBtb2R1bGUuCi0g
ICAqbmV3X21vZCogaXMgdGhlIG5hbWUgb2YgdGhlIFB5dGhvbiAzIG1vZHVsZS4KLQotCi0uLiBj
bGFzczo6IE1vdmVkQXR0cmlidXRlKG5hbWUsIG9sZF9tb2QsIG5ld19tb2QsIG9sZF9hdHRyPU5v
bmUsIG5ld19hdHRyPU5vbmUpCi0KLSAgIENyZWF0ZSBhIG1hcHBpbmcgZm9yIDptb2Q6YHNpeC5t
b3Zlc2AgY2FsbGVkICpuYW1lKiB0aGF0IHJlZmVyZW5jZXMgZGlmZmVyZW50Ci0gICBhdHRyaWJ1
dGVzIGluIFB5dGhvbiAyIGFuZCAzLiAgKm9sZF9tb2QqIGlzIHRoZSBuYW1lIG9mIHRoZSBQeXRo
b24gMiBtb2R1bGUuCi0gICAqbmV3X21vZCogaXMgdGhlIG5hbWUgb2YgdGhlIFB5dGhvbiAzIG1v
ZHVsZS4gIElmICpuZXdfYXR0ciogaXMgbm90IGdpdmVuLCBpdAotICAgZGVmYXVsdHMgdG8gKm9s
ZF9hdHRyKi4gIElmIG5laXRoZXIgaXMgZ2l2ZW4sIHRoZXkgYm90aCBkZWZhdWx0IHRvICpuYW1l
Ki4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGQ3Yjc4ZmI1MTYw
ODVjYTBhNzNiMDQ1NDgwMDZlN2E1MjFlZjMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL01ha2VmaWxlCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRh
dGlvbi9jb25mLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9pbmRleC5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9z
aXgvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxOTg2NTNl
ZDBmZTJmYWVlOGFmZjY3YTRjYjNlZmQ5N2VhMzA3YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zaXgvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwx
NyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NpeC9zaXgucHljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL19faW5pdF9fLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9f
X2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ2YmU4NTFkNjRmYjA5
N2MyODdiODZmYjUxYTE5Nzg0NmY0MmMzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NzbHV0aWxzL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCww
IEBACi1pbXBvcnQgb3BlbnNzbAotaW1wb3J0IHByZWdlbmVyYXRlZAotZnJvbSBiYXNlIGltcG9y
dCBOb1NTTEVudmlyb25tZW50Ci1mcm9tIG9wZW5zc2wgaW1wb3J0IE9wZW5TU0xFbnZpcm9ubWVu
dAotZnJvbSBwcmVnZW5lcmF0ZWQgaW1wb3J0IFByZWdlbmVyYXRlZFNTTEVudmlyb25tZW50Ci0K
LWVudmlyb25tZW50cyA9IHsibm9uZSI6IE5vU1NMRW52aXJvbm1lbnQsCi0gICAgICAgICAgICAg
ICAgIm9wZW5zc2wiOiBPcGVuU1NMRW52aXJvbm1lbnQsCi0gICAgICAgICAgICAgICAgInByZWdl
bmVyYXRlZCI6IFByZWdlbmVyYXRlZFNTTEVudmlyb25tZW50fQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9iYXNl
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9z
c2x1dGlscy9iYXNlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzdhZTVmMjNj
Y2YxZmE5OGNkMzk2YWY4ODY5YjI3NGZjOWUzNDY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvYmFzZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICsw
LDAgQEAKLWNsYXNzIE5vU1NMRW52aXJvbm1lbnQob2JqZWN0KToKLSAgICBzc2xfZW5hYmxlZCA9
IEZhbHNlCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAg
ICAgcGFzcwotCi0gICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYK
LQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBwYXNz
Ci0KLSAgICBkZWYgaG9zdF9jZXJ0X3BhdGgoc2VsZiwgaG9zdCk6Ci0gICAgICAgIHJldHVybiBO
b25lLCBOb25lCi0KLSAgICBkZWYgY2FfY2VydF9wYXRoKHNlbGYpOgotICAgICAgICByZXR1cm4g
Tm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9zc2x1dGlscy9vcGVuc3NsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9vcGVuc3NsLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwOWMyNDcxYWFlZTM5OWU1N2QwNDI1YWIxZjM2M2U3MDE1ZDQ1
YTFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvb3Bl
bnNzbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQyMiArMCwwIEBACi1pbXBvcnQgZnVuY3Rvb2xz
Ci1pbXBvcnQgb3MKLWltcG9ydCByYW5kb20KLWltcG9ydCBzaHV0aWwKLWltcG9ydCBzdWJwcm9j
ZXNzCi1pbXBvcnQgdGVtcGZpbGUKLWZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1l
ZGVsdGEKLQotIyBBbW91bnQgb2YgdGltZSBiZXlvbmQgdGhlIHByZXNlbnQgdG8gY29uc2lkZXIg
Y2VydGlmaWNhdGVzICJleHBpcmVkLiIgVGhpcwotIyBhbGxvd3MgY2VydGlmaWNhdGVzIHRvIGJl
IHByb2FjdGl2ZWx5IHJlLWdlbmVyYXRlZCBpbiB0aGUgImJ1ZmZlciIgcGVyaW9kCi0jIHByaW9y
IHRvIHRoZWlyIGV4YWN0IGV4cGlyYXRpb24gdGltZS4KLUNFUlRfRVhQSVJZX0JVRkZFUiA9IGRp
Y3QoaG91cnM9NikKLQotY2xhc3MgT3BlblNTTChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJpbmFyeSwgYmFzZV9wYXRoLCBjb25mX3BhdGgsIGhvc3RzLCBkdXJhdGlv
biwKLSAgICAgICAgICAgICAgICAgYmFzZV9jb25mX3BhdGg9Tm9uZSk6Ci0gICAgICAgICIiIkNv
bnRleHQgbWFuYWdlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBPcGVuU1NMLgotICAgICAgICBDcmVh
dGVzIGEgY29uZmlnIGZpbGUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY29udGV4dC4KLQotICAg
ICAgICA6cGFyYW0gbG9nZ2VyOiBzdGRsaWIgbG9nZ2VyIG9yIHB5dGhvbiBzdHJ1Y3R1cmVkIGxv
Z2dlcgotICAgICAgICA6cGFyYW0gYmluYXJ5OiBwYXRoIHRvIG9wZW5zc2wgYmluYXJ5Ci0gICAg
ICAgIDpwYXJhbSBiYXNlX3BhdGg6IHBhdGggdG8gZGlyZWN0b3J5IGZvciBzdG9yaW5nIGNlcnRp
ZmljYXRlcwotICAgICAgICA6cGFyYW0gY29uZl9wYXRoOiBwYXRoIGZvciBjb25maWd1cmF0aW9u
IGZpbGUgc3RvcmluZyBjb25maWd1cmF0aW9uIGRhdGEKLSAgICAgICAgOnBhcmFtIGhvc3RzOiBs
aXN0IG9mIGhvc3RzIHRvIGluY2x1ZGUgaW4gY29uZmlndXJhdGlvbiAob3IgTm9uZSBpZiBub3QK
LSAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0aW5nIGhvc3QgY2VydGlmaWNhdGVzKQotICAg
ICAgICA6cGFyYW0gZHVyYXRpb246IENlcnRpZmljYXRlIGR1cmF0aW9uIGluIGRheXMiIiIKLQot
ICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IGJhc2VfcGF0aAotICAgICAgICBzZWxmLmJpbmFyeSA9
IGJpbmFyeQotICAgICAgICBzZWxmLmNvbmZfcGF0aCA9IGNvbmZfcGF0aAotICAgICAgICBzZWxm
LmJhc2VfY29uZl9wYXRoID0gYmFzZV9jb25mX3BhdGgKLSAgICAgICAgc2VsZi5sb2dnZXIgPSBs
b2dnZXIKLSAgICAgICAgc2VsZi5wcm9jID0gTm9uZQotICAgICAgICBzZWxmLmNtZCA9IFtdCi0g
ICAgICAgIHNlbGYuaG9zdHMgPSBob3N0cwotICAgICAgICBzZWxmLmR1cmF0aW9uID0gZHVyYXRp
b24KLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAgICAgIHdpdGggb3BlbihzZWxmLmNv
bmZfcGF0aCwgInciKSBhcyBmOgotICAgICAgICAgICAgZi53cml0ZShnZXRfY29uZmlnKHNlbGYu
YmFzZV9wYXRoLCBzZWxmLmhvc3RzLCBzZWxmLmR1cmF0aW9uKSkKLSAgICAgICAgcmV0dXJuIHNl
bGYKLQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBv
cy51bmxpbmsoc2VsZi5jb25mX3BhdGgpCi0KLSAgICBkZWYgbG9nKHNlbGYsIGxpbmUpOgotICAg
ICAgICBpZiBoYXNhdHRyKHNlbGYubG9nZ2VyLCAicHJvY2Vzc19vdXRwdXQiKToKLSAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0cHV0KHNlbGYucHJvYy5waWQgaWYgc2VsZi5wcm9j
IGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9IiAiLmpvaW4oc2VsZi5jbWQpKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcobGluZSkKLQotICAgIGRlZiBf
X2NhbGxfXyhzZWxmLCBjbWQsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICIiIlJ1biBhIGNv
bW1hbmQgdXNpbmcgT3BlblNTTCBpbiB0aGUgY3VycmVudCBjb250ZXh0LgotCi0gICAgICAgIDpw
YXJhbSBjbWQ6IFRoZSBvcGVuc3NsIHN1YmNvbW1hbmQgdG8gcnVuCi0gICAgICAgIDpwYXJhbSAq
YXJnczogQWRkaXRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY29tbWFuZAotICAgICAg
ICAiIiIKLSAgICAgICAgc2VsZi5jbWQgPSBbc2VsZi5iaW5hcnksIGNtZF0KLSAgICAgICAgaWYg
Y21kICE9ICJ4NTA5IjoKLSAgICAgICAgICAgIHNlbGYuY21kICs9IFsiLWNvbmZpZyIsIHNlbGYu
Y29uZl9wYXRoXQotICAgICAgICBzZWxmLmNtZCArPSBsaXN0KGFyZ3MpCi0KLSAgICAgICAgIyBD
b3B5IHRoZSBlbnZpcm9ubWVudCwgY29udmVydGluZyB0byBwbGFpbiBzdHJpbmdzLiBXaW5kb3dz
Ci0gICAgICAgICMgU3RhcnRQcm9jZXNzIGlzIHBpY2t5IGFib3V0IGFsbCB0aGUga2V5cy92YWx1
ZXMgYmVpbmcgcGxhaW4gc3RyaW5ncywKLSAgICAgICAgIyBidXQgYXQgbGVhc3QgaW4gTVNZUyBz
aGVsbHMsIHRoZSBvcy5lbnZpcm9uIGRpY3Rpb25hcnkgY2FuIGJlIG1peGVkLgotICAgICAgICBl
bnYgPSB7fQotICAgICAgICBmb3IgaywgdiBpbiBvcy5lbnZpcm9uLml0ZXJpdGVtcygpOgotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGVudltrLmVuY29kZSgidXRmOCIpXSA9IHYu
ZW5jb2RlKCJ1dGY4IikKLSAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6Ci0g
ICAgICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIGlmIHNlbGYuYmFzZV9jb25mX3BhdGggaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICBlbnZbIk9QRU5TU0xfQ09ORiJdID0gc2VsZi5iYXNlX2Nv
bmZfcGF0aC5lbmNvZGUoInV0ZjgiKQotCi0gICAgICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3Mu
UG9wZW4oc2VsZi5jbWQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNz
LlNURE9VVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52KQot
ICAgICAgICBzdGRvdXQsIHN0ZGVyciA9IHNlbGYucHJvYy5jb21tdW5pY2F0ZSgpCi0gICAgICAg
IHNlbGYubG9nKHN0ZG91dCkKLSAgICAgICAgaWYgc2VsZi5wcm9jLnJldHVybmNvZGUgIT0gMDoK
LSAgICAgICAgICAgIHJhaXNlIHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKHNlbGYucHJv
Yy5yZXR1cm5jb2RlLCBzZWxmLmNtZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dD1zdGRvdXQpCi0KLSAgICAgICAgc2VsZi5jbWQgPSBbXQot
ICAgICAgICBzZWxmLnByb2MgPSBOb25lCi0gICAgICAgIHJldHVybiBzdGRvdXQKLQotCi1kZWYg
bWFrZV9zdWJqZWN0KGNvbW1vbl9uYW1lLAotICAgICAgICAgICAgICAgICBjb3VudHJ5PU5vbmUs
Ci0gICAgICAgICAgICAgICAgIHN0YXRlPU5vbmUsCi0gICAgICAgICAgICAgICAgIGxvY2FsaXR5
PU5vbmUsCi0gICAgICAgICAgICAgICAgIG9yZ2FuaXphdGlvbj1Ob25lLAotICAgICAgICAgICAg
ICAgICBvcmdhbml6YXRpb25fdW5pdD1Ob25lKToKLSAgICBhcmdzID0gWygiY291bnRyeSIsICJD
IiksCi0gICAgICAgICAgICAoInN0YXRlIiwgIlNUIiksCi0gICAgICAgICAgICAoImxvY2FsaXR5
IiwgIkwiKSwKLSAgICAgICAgICAgICgib3JnYW5pemF0aW9uIiwgIk8iKSwKLSAgICAgICAgICAg
ICgib3JnYW5pemF0aW9uX3VuaXQiLCAiT1UiKSwKLSAgICAgICAgICAgICgiY29tbW9uX25hbWUi
LCAiQ04iKV0KLQotICAgIHJ2ID0gW10KLQotICAgIGZvciB2YXIsIGtleSBpbiBhcmdzOgotICAg
ICAgICB2YWx1ZSA9IGxvY2FscygpW3Zhcl0KLSAgICAgICAgaWYgdmFsdWUgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICBydi5hcHBlbmQoIi8lcz0lcyIgJSAoa2V5LCB2YWx1ZS5yZXBsYWNlKCIv
IiwgIlxcLyIpKSkKLQotICAgIHJldHVybiAiIi5qb2luKHJ2KQotCi1kZWYgbWFrZV9hbHRfbmFt
ZXMoaG9zdHMpOgotICAgIHJ2ID0gW10KLSAgICBmb3IgbmFtZSBpbiBob3N0czoKLSAgICAgICAg
cnYuYXBwZW5kKCJETlM6JXMiICUgbmFtZSkKLSAgICByZXR1cm4gIiwiLmpvaW4ocnYpCi0KLWRl
ZiBnZXRfY29uZmlnKHJvb3RfZGlyLCBob3N0cywgZHVyYXRpb249MzApOgotICAgIGlmIGhvc3Rz
IGlzIE5vbmU6Ci0gICAgICAgIHNhbl9saW5lID0gIiIKLSAgICBlbHNlOgotICAgICAgICBzYW5f
bGluZSA9ICJzdWJqZWN0QWx0TmFtZSA9ICVzIiAlIG1ha2VfYWx0X25hbWVzKGhvc3RzKQotCi0g
ICAgaWYgb3MucGF0aC5zZXAgPT0gIlxcIjoKLSAgICAgICAgIyBUaGlzIHNlZW1zIHRvIGJlIG5l
ZWRlZCBmb3IgdGhlIFNoaW5pbmcgTGlnaHQgT3BlblNTTCBvbgotICAgICAgICAjIFdpbmRvd3Ms
IGF0IGxlYXN0LgotICAgICAgICByb290X2RpciA9IHJvb3RfZGlyLnJlcGxhY2UoIlxcIiwgIlxc
XFwiKQotCi0gICAgcnYgPSAiIiJbIGNhIF0KLWRlZmF1bHRfY2EgPSBDQV9kZWZhdWx0Ci0KLVsg
Q0FfZGVmYXVsdCBdCi1kaXIgPSAlKHJvb3RfZGlyKXMKLWNlcnRzID0gJGRpcgotbmV3X2NlcnRz
X2RpciA9ICRjZXJ0cwotY3JsX2RpciA9ICRkaXIlKHNlcClzY3JsCi1kYXRhYmFzZSA9ICRkaXIl
KHNlcClzaW5kZXgudHh0Ci1wcml2YXRlX2tleSA9ICRkaXIlKHNlcClzY2FrZXkucGVtCi1jZXJ0
aWZpY2F0ZSA9ICRkaXIlKHNlcClzY2FjZXJ0LnBlbQotc2VyaWFsID0gJGRpciUoc2VwKXNzZXJp
YWwKLWNybGRpciA9ICRkaXIlKHNlcClzY3JsCi1jcmxudW1iZXIgPSAkZGlyJShzZXApc2NybG51
bWJlcgotY3JsID0gJGNybGRpciUoc2VwKXNjcmwucGVtCi1SQU5ERklMRSA9ICRkaXIlKHNlcClz
cHJpdmF0ZSUoc2VwKXMucmFuZAoteDUwOV9leHRlbnNpb25zID0gdXNyX2NlcnQKLW5hbWVfb3B0
ICAgICAgICA9IGNhX2RlZmF1bHQKLWNlcnRfb3B0ICAgICAgICA9IGNhX2RlZmF1bHQKLWRlZmF1
bHRfZGF5cyA9ICUoZHVyYXRpb24pZAotZGVmYXVsdF9jcmxfZGF5cyA9ICUoZHVyYXRpb24pZAot
ZGVmYXVsdF9tZCA9IHNoYTI1NgotcHJlc2VydmUgPSBubwotcG9saWN5ID0gcG9saWN5X2FueXRo
aW5nCi1jb3B5X2V4dGVuc2lvbnMgPSBjb3B5Ci0KLVsgcG9saWN5X2FueXRoaW5nIF0KLWNvdW50
cnlOYW1lID0gb3B0aW9uYWwKLXN0YXRlT3JQcm92aW5jZU5hbWUgPSBvcHRpb25hbAotbG9jYWxp
dHlOYW1lID0gb3B0aW9uYWwKLW9yZ2FuaXphdGlvbk5hbWUgPSBvcHRpb25hbAotb3JnYW5pemF0
aW9uYWxVbml0TmFtZSA9IG9wdGlvbmFsCi1jb21tb25OYW1lID0gc3VwcGxpZWQKLWVtYWlsQWRk
cmVzcyA9IG9wdGlvbmFsCi0KLVsgcmVxIF0KLWRlZmF1bHRfYml0cyA9IDIwNDgKLWRlZmF1bHRf
a2V5ZmlsZSAgPSBwcml2a2V5LnBlbQotZGlzdGluZ3Vpc2hlZF9uYW1lID0gcmVxX2Rpc3Rpbmd1
aXNoZWRfbmFtZQotYXR0cmlidXRlcyA9IHJlcV9hdHRyaWJ1dGVzCi14NTA5X2V4dGVuc2lvbnMg
PSB2M19jYQotCi0jIFBhc3N3b3JkcyBmb3IgcHJpdmF0ZSBrZXlzIGlmIG5vdCBwcmVzZW50IHRo
ZXkgd2lsbCBiZSBwcm9tcHRlZCBmb3IKLSMgaW5wdXRfcGFzc3dvcmQgPSBzZWNyZXQKLSMgb3V0
cHV0X3Bhc3N3b3JkID0gc2VjcmV0Ci1zdHJpbmdfbWFzayA9IHV0Zjhvbmx5Ci1yZXFfZXh0ZW5z
aW9ucyA9IHYzX3JlcQotCi1bIHJlcV9kaXN0aW5ndWlzaGVkX25hbWUgXQotY291bnRyeU5hbWUg
PSBDb3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNvZGUpCi1jb3VudHJ5TmFtZV9kZWZhdWx0ID0gQVUK
LWNvdW50cnlOYW1lX21pbiA9IDIKLWNvdW50cnlOYW1lX21heCA9IDIKLXN0YXRlT3JQcm92aW5j
ZU5hbWUgPSBTdGF0ZSBvciBQcm92aW5jZSBOYW1lIChmdWxsIG5hbWUpCi1zdGF0ZU9yUHJvdmlu
Y2VOYW1lX2RlZmF1bHQgPQotbG9jYWxpdHlOYW1lID0gTG9jYWxpdHkgTmFtZSAoZWcsIGNpdHkp
Ci0wLm9yZ2FuaXphdGlvbk5hbWUgPSBPcmdhbml6YXRpb24gTmFtZQotMC5vcmdhbml6YXRpb25O
YW1lX2RlZmF1bHQgPSBXZWIgUGxhdGZvcm0gVGVzdHMKLW9yZ2FuaXphdGlvbmFsVW5pdE5hbWUg
PSBPcmdhbml6YXRpb25hbCBVbml0IE5hbWUgKGVnLCBzZWN0aW9uKQotI29yZ2FuaXphdGlvbmFs
VW5pdE5hbWVfZGVmYXVsdCA9Ci1jb21tb25OYW1lID0gQ29tbW9uIE5hbWUgKGUuZy4gc2VydmVy
IEZRRE4gb3IgWU9VUiBuYW1lKQotY29tbW9uTmFtZV9tYXggPSA2NAotZW1haWxBZGRyZXNzID0g
RW1haWwgQWRkcmVzcwotZW1haWxBZGRyZXNzX21heCA9IDY0Ci0KLVsgcmVxX2F0dHJpYnV0ZXMg
XQotCi1bIHVzcl9jZXJ0IF0KLWJhc2ljQ29uc3RyYWludHM9Q0E6ZmFsc2UKLXN1YmplY3RLZXlJ
ZGVudGlmaWVyPWhhc2gKLWF1dGhvcml0eUtleUlkZW50aWZpZXI9a2V5aWQsaXNzdWVyCi0KLVsg
djNfcmVxIF0KLWJhc2ljQ29uc3RyYWludHMgPSBDQTpGQUxTRQota2V5VXNhZ2UgPSBub25SZXB1
ZGlhdGlvbiwgZGlnaXRhbFNpZ25hdHVyZSwga2V5RW5jaXBoZXJtZW50Ci1leHRlbmRlZEtleVVz
YWdlID0gc2VydmVyQXV0aAotJShzYW5fbGluZSlzCi0KLVsgdjNfY2EgXQotYmFzaWNDb25zdHJh
aW50cyA9IENBOnRydWUKLXN1YmplY3RLZXlJZGVudGlmaWVyPWhhc2gKLWF1dGhvcml0eUtleUlk
ZW50aWZpZXI9a2V5aWQ6YWx3YXlzLGlzc3VlcjphbHdheXMKLWtleVVzYWdlID0ga2V5Q2VydFNp
Z24KLSIiIiAlIHsicm9vdF9kaXIiOiByb290X2RpciwKLSAgICAgICAic2FuX2xpbmUiOiBzYW5f
bGluZSwKLSAgICAgICAiZHVyYXRpb24iOiBkdXJhdGlvbiwKLSAgICAgICAic2VwIjogb3MucGF0
aC5zZXAucmVwbGFjZSgiXFwiLCAiXFxcXCIpfQotCi0gICAgcmV0dXJuIHJ2Ci0KLWNsYXNzIE9w
ZW5TU0xFbnZpcm9ubWVudChvYmplY3QpOgotICAgIHNzbF9lbmFibGVkID0gVHJ1ZQotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgb3BlbnNzbF9iaW5hcnk9Im9wZW5zc2wiLCBiYXNl
X3BhdGg9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9IndlYi1wbGF0Zm9ybS10ZXN0
cyIsIGZvcmNlX3JlZ2VuZXJhdGU9RmFsc2UsCi0gICAgICAgICAgICAgICAgIGR1cmF0aW9uPTMw
LCBiYXNlX2NvbmZfcGF0aD1Ob25lKToKLSAgICAgICAgIiIiU1NMIGVudmlyb25tZW50IHRoYXQg
Y3JlYXRlcyBhIGxvY2FsIENBIGFuZCBob3N0IGNlcnRpZmljYXRlIHVzaW5nIE9wZW5TU0wuCi0K
LSAgICAgICAgQnkgZGVmYXVsdCB0aGlzIHdpbGwgbG9vayBpbiBiYXNlX3BhdGggZm9yIGV4aXN0
aW5nIGNlcnRpZmljYXRlcyB0aGF0IGFyZSBzdGlsbAotICAgICAgICB2YWxpZCBhbmQgb25seSBj
cmVhdGUgbmV3IGNlcnRpZmljYXRlcyBpZiB0aGVyZSBhcmVuJ3QgYW55LiBUaGlzIGJlaGF2aW91
ciBjYW4KLSAgICAgICAgYmUgYWRqdXN0ZWQgdXNpbmcgdGhlIGZvcmNlX3JlZ2VuZXJhdGUgb3B0
aW9uLgotCi0gICAgICAgIDpwYXJhbSBsb2dnZXI6IGEgc3RkbGliIGxvZ2dpbmcgY29tcGF0aWJs
ZSBsb2dnZXIgb3IgbW96bG9nIHN0cnVjdHVyZWQgbG9nZ2VyCi0gICAgICAgIDpwYXJhbSBvcGVu
c3NsX2JpbmFyeTogUGF0aCB0byB0aGUgT3BlblNTTCBiaW5hcnkKLSAgICAgICAgOnBhcmFtIGJh
c2VfcGF0aDogUGF0aCBpbiB3aGljaCBjZXJ0aWZpY2F0ZXMgd2lsbCBiZSBzdG9yZWQuIElmIE5v
bmUsIGEgdGVtcG9yYXJ5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSB3aWxs
IGJlIHVzZWQgYW5kIHJlbW92ZWQgd2hlbiB0aGUgc2VydmVyIHNodXRzIGRvd24KLSAgICAgICAg
OnBhcmFtIHBhc3N3b3JkOiBQYXNzd29yZCB0byB1c2UKLSAgICAgICAgOnBhcmFtIGZvcmNlX3Jl
Z2VuZXJhdGU6IEFsd2F5cyBjcmVhdGUgYSBuZXcgY2VydGlmaWNhdGUgZXZlbiBpZiBvbmUgYWxy
ZWFkeSBleGlzdHMuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgot
Ci0gICAgICAgIHNlbGYudGVtcG9yYXJ5ID0gRmFsc2UKLSAgICAgICAgaWYgYmFzZV9wYXRoIGlz
IE5vbmU6Ci0gICAgICAgICAgICBiYXNlX3BhdGggPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAg
ICAgICAgIHNlbGYudGVtcG9yYXJ5ID0gVHJ1ZQotCi0gICAgICAgIHNlbGYuYmFzZV9wYXRoID0g
b3MucGF0aC5hYnNwYXRoKGJhc2VfcGF0aCkKLSAgICAgICAgc2VsZi5wYXNzd29yZCA9IHBhc3N3
b3JkCi0gICAgICAgIHNlbGYuZm9yY2VfcmVnZW5lcmF0ZSA9IGZvcmNlX3JlZ2VuZXJhdGUKLSAg
ICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0aW9uCi0gICAgICAgIHNlbGYuYmFzZV9jb25mX3Bh
dGggPSBiYXNlX2NvbmZfcGF0aAotCi0gICAgICAgIHNlbGYucGF0aCA9IE5vbmUKLSAgICAgICAg
c2VsZi5iaW5hcnkgPSBvcGVuc3NsX2JpbmFyeQotICAgICAgICBzZWxmLm9wZW5zc2wgPSBOb25l
Ci0KLSAgICAgICAgc2VsZi5fY2FfY2VydF9wYXRoID0gTm9uZQotICAgICAgICBzZWxmLl9jYV9r
ZXlfcGF0aCA9IE5vbmUKLSAgICAgICAgc2VsZi5ob3N0X2NlcnRpZmljYXRlcyA9IHt9Ci0KLSAg
ICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2Vs
Zi5iYXNlX3BhdGgpOgotICAgICAgICAgICAgb3MubWFrZWRpcnMoc2VsZi5iYXNlX3BhdGgpCi0K
LSAgICAgICAgcGF0aCA9IGZ1bmN0b29scy5wYXJ0aWFsKG9zLnBhdGguam9pbiwgc2VsZi5iYXNl
X3BhdGgpCi0KLSAgICAgICAgd2l0aCBvcGVuKHBhdGgoImluZGV4LnR4dCIpLCAidyIpOgotICAg
ICAgICAgICAgcGFzcwotICAgICAgICB3aXRoIG9wZW4ocGF0aCgic2VyaWFsIiksICJ3IikgYXMg
ZjoKLSAgICAgICAgICAgIHNlcmlhbCA9ICIleCIgJSByYW5kb20ucmFuZGludCgwLCAxMDAwMDAw
KQotICAgICAgICAgICAgaWYgbGVuKHNlcmlhbCkgJSAyOgotICAgICAgICAgICAgICAgIHNlcmlh
bCA9ICIwIiArIHNlcmlhbAotICAgICAgICAgICAgZi53cml0ZShzZXJpYWwpCi0KLSAgICAgICAg
c2VsZi5wYXRoID0gcGF0aAotCi0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19leGl0
X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgaWYgc2VsZi50ZW1wb3Jhcnk6Ci0g
ICAgICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYuYmFzZV9wYXRoKQotCi0gICAgZGVmIF9jb25m
aWdfb3BlbnNzbChzZWxmLCBob3N0cyk6Ci0gICAgICAgIGNvbmZfcGF0aCA9IHNlbGYucGF0aCgi
b3BlbnNzbC5jZmciKQotICAgICAgICByZXR1cm4gT3BlblNTTChzZWxmLmxvZ2dlciwgc2VsZi5i
aW5hcnksIHNlbGYuYmFzZV9wYXRoLCBjb25mX3BhdGgsIGhvc3RzLAotICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmR1cmF0aW9uLCBzZWxmLmJhc2VfY29uZl9wYXRoKQotCi0gICAgZGVmIGNh
X2NlcnRfcGF0aChzZWxmKToKLSAgICAgICAgIiIiR2V0IHRoZSBwYXRoIHRvIHRoZSBDQSBjZXJ0
aWZpY2F0ZSBmaWxlLCBnZW5lcmF0aW5nIGEKLSAgICAgICAgbmV3IG9uZSBpZiBuZWVkZWQiIiIK
LSAgICAgICAgaWYgc2VsZi5fY2FfY2VydF9wYXRoIGlzIE5vbmUgYW5kIG5vdCBzZWxmLmZvcmNl
X3JlZ2VuZXJhdGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2FkX2NhX2NlcnQoKQotICAgICAgICBp
ZiBzZWxmLl9jYV9jZXJ0X3BhdGggaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2dlbmVyYXRl
X2NhKCkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NhX2NlcnRfcGF0aAotCi0gICAgZGVmIF9sb2Fk
X2NhX2NlcnQoc2VsZik6Ci0gICAgICAgIGtleV9wYXRoID0gc2VsZi5wYXRoKCJjYWtleS5wZW0i
KQotICAgICAgICBjZXJ0X3BhdGggPSBzZWxmLnBhdGgoImNhY2VydC5wZW0iKQotCi0gICAgICAg
IGlmIHNlbGYuY2hlY2tfa2V5X2NlcnQoa2V5X3BhdGgsIGNlcnRfcGF0aCwgTm9uZSk6Ci0gICAg
ICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJVc2luZyBleGlzdGluZyBDQSBjZXJ0IikKLSAgICAg
ICAgICAgIHNlbGYuX2NhX2tleV9wYXRoLCBzZWxmLl9jYV9jZXJ0X3BhdGggPSBrZXlfcGF0aCwg
Y2VydF9wYXRoCi0KLSAgICBkZWYgY2hlY2tfa2V5X2NlcnQoc2VsZiwga2V5X3BhdGgsIGNlcnRf
cGF0aCwgaG9zdHMpOgotICAgICAgICAiIiJDaGVjayB0aGF0IGEga2V5IGFuZCBjZXJ0IGZpbGUg
ZXhpc3QgYW5kIGFyZSB2YWxpZCIiIgotICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoa2V5
X3BhdGgpIG9yIG5vdCBvcy5wYXRoLmV4aXN0cyhjZXJ0X3BhdGgpOgotICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCi0KLSAgICAgICAgd2l0aCBzZWxmLl9jb25maWdfb3BlbnNzbChob3N0cykgYXMg
b3BlbnNzbDoKLSAgICAgICAgICAgIGVuZF9kYXRlX3N0ciA9IG9wZW5zc2woIng1MDkiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW5vb3V0IiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIi1lbmRkYXRlIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi1pbiIsIGNlcnRfcGF0aCkuc3BsaXQoIj0iLCAxKVsxXS5zdHJpcCgpCi0g
ICAgICAgICAgICAjIE5vdCBzdXJlIGlmIHRoaXMgd29ya3MgaW4gb3RoZXIgbG9jYWxlcwotICAg
ICAgICAgICAgZW5kX2RhdGUgPSBkYXRldGltZS5zdHJwdGltZShlbmRfZGF0ZV9zdHIsICIlYiAl
ZCAlSDolTTolUyAlWSAlWiIpCi0gICAgICAgICAgICB0aW1lX2J1ZmZlciA9IHRpbWVkZWx0YSgq
KkNFUlRfRVhQSVJZX0JVRkZFUikKLSAgICAgICAgICAgICMgQmVjYXVzZSBgc3RycHRpbWVgIGRv
ZXMgbm90IGFjY291bnQgZm9yIHRpbWUgem9uZSBvZmZzZXRzLCBpdCBpcwotICAgICAgICAgICAg
IyBhbHdheXMgaW4gdGVybXMgb2YgVVRDLCBzbyB0aGUgY3VycmVudCB0aW1lIHNob3VsZCBiZSBj
YWxjdWxhdGVkCi0gICAgICAgICAgICAjIGFjY29yZGluZ2x5LgotICAgICAgICAgICAgaWYgZW5k
X2RhdGUgPCBkYXRldGltZS51dGNub3coKSArIHRpbWVfYnVmZmVyOgotICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQotCi0gICAgICAgICNUT0RPOiBjaGVjayB0aGUga2V5IGFjdHVhbGx5IHNp
Z25lZCB0aGUgY2VydC4KLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiBfZ2VuZXJhdGVf
Y2Eoc2VsZik6Ci0gICAgICAgIHBhdGggPSBzZWxmLnBhdGgKLSAgICAgICAgc2VsZi5sb2dnZXIu
aW5mbygiR2VuZXJhdGluZyBuZXcgQ0EgaW4gJXMiICUgc2VsZi5iYXNlX3BhdGgpCi0KLSAgICAg
ICAga2V5X3BhdGggPSBwYXRoKCJjYWtleS5wZW0iKQotICAgICAgICByZXFfcGF0aCA9IHBhdGgo
ImNhcmVxLnBlbSIpCi0gICAgICAgIGNlcnRfcGF0aCA9IHBhdGgoImNhY2VydC5wZW0iKQotCi0g
ICAgICAgIHdpdGggc2VsZi5fY29uZmlnX29wZW5zc2woTm9uZSkgYXMgb3BlbnNzbDoKLSAgICAg
ICAgICAgIG9wZW5zc2woInJlcSIsCi0gICAgICAgICAgICAgICAgICAgICItYmF0Y2giLAotICAg
ICAgICAgICAgICAgICAgICAiLW5ldyIsCi0gICAgICAgICAgICAgICAgICAgICItbmV3a2V5Iiwg
InJzYToyMDQ4IiwKLSAgICAgICAgICAgICAgICAgICAgIi1rZXlvdXQiLCBrZXlfcGF0aCwKLSAg
ICAgICAgICAgICAgICAgICAgIi1vdXQiLCByZXFfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAg
Ii1zdWJqIiwgbWFrZV9zdWJqZWN0KCJ3ZWItcGxhdGZvcm0tdGVzdHMiKSwKLSAgICAgICAgICAg
ICAgICAgICAgIi1wYXNzb3V0IiwgInBhc3M6JXMiICUgc2VsZi5wYXNzd29yZCkKLQotICAgICAg
ICAgICAgb3BlbnNzbCgiY2EiLAotICAgICAgICAgICAgICAgICAgICAiLWJhdGNoIiwKLSAgICAg
ICAgICAgICAgICAgICAgIi1jcmVhdGVfc2VyaWFsIiwKLSAgICAgICAgICAgICAgICAgICAgIi1r
ZXlmaWxlIiwga2V5X3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICItcGFzc2luIiwgInBhc3M6
JXMiICUgc2VsZi5wYXNzd29yZCwKLSAgICAgICAgICAgICAgICAgICAgIi1zZWxmc2lnbiIsCi0g
ICAgICAgICAgICAgICAgICAgICItZXh0ZW5zaW9ucyIsICJ2M19jYSIsCi0gICAgICAgICAgICAg
ICAgICAgICItaW4iLCByZXFfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgIi1vdXQiLCBjZXJ0
X3BhdGgpCi0KLSAgICAgICAgb3MudW5saW5rKHJlcV9wYXRoKQotCi0gICAgICAgIHNlbGYuX2Nh
X2tleV9wYXRoLCBzZWxmLl9jYV9jZXJ0X3BhdGggPSBrZXlfcGF0aCwgY2VydF9wYXRoCi0KLSAg
ICBkZWYgaG9zdF9jZXJ0X3BhdGgoc2VsZiwgaG9zdHMpOgotICAgICAgICAiIiJHZXQgYSB0dXBs
ZSBvZiAocHJpdmF0ZSBrZXkgcGF0aCwgY2VydGlmaWNhdGUgcGF0aCkgZm9yIGEgaG9zdCwKLSAg
ICAgICAgZ2VuZXJhdGluZyBuZXcgb25lcyBpZiBuZWNlc3NhcnkuCi0KLSAgICAgICAgaG9zdHMg
bXVzdCBiZSBhIGxpc3Qgb2YgYWxsIGhvc3RzIHRvIGFwcGVhciBvbiB0aGUgY2VydGlmaWNhdGUs
IHdpdGgKLSAgICAgICAgdGhlIHByaW1hcnkgaG9zdG5hbWUgZmlyc3QuIiIiCi0gICAgICAgIGhv
c3RzID0gdHVwbGUoaG9zdHMpCi0gICAgICAgIGlmIGhvc3RzIG5vdCBpbiBzZWxmLmhvc3RfY2Vy
dGlmaWNhdGVzOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuZm9yY2VfcmVnZW5lcmF0ZToKLSAg
ICAgICAgICAgICAgICBrZXlfY2VydCA9IHNlbGYuX2xvYWRfaG9zdF9jZXJ0KGhvc3RzKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBrZXlfY2VydCA9IE5vbmUKLSAgICAgICAg
ICAgIGlmIGtleV9jZXJ0IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAga2V5LCBjZXJ0ID0gc2Vs
Zi5fZ2VuZXJhdGVfaG9zdF9jZXJ0KGhvc3RzKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICBrZXksIGNlcnQgPSBrZXlfY2VydAotICAgICAgICAgICAgc2VsZi5ob3N0X2NlcnRp
ZmljYXRlc1tob3N0c10gPSBrZXksIGNlcnQKLQotICAgICAgICByZXR1cm4gc2VsZi5ob3N0X2Nl
cnRpZmljYXRlc1tob3N0c10KLQotICAgIGRlZiBfbG9hZF9ob3N0X2NlcnQoc2VsZiwgaG9zdHMp
OgotICAgICAgICBob3N0ID0gaG9zdHNbMF0KLSAgICAgICAga2V5X3BhdGggPSBzZWxmLnBhdGgo
IiVzLmtleSIgJSBob3N0KQotICAgICAgICBjZXJ0X3BhdGggPSBzZWxmLnBhdGgoIiVzLnBlbSIg
JSBob3N0KQotCi0gICAgICAgICMgVE9ETzogY2hlY2sgdGhhdCB0aGlzIGNlcnQgd2FzIHNpZ25l
ZCBieSB0aGUgQ0EgY2VydAotICAgICAgICBpZiBzZWxmLmNoZWNrX2tleV9jZXJ0KGtleV9wYXRo
LCBjZXJ0X3BhdGgsIGhvc3RzKToKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlVzaW5n
IGV4aXN0aW5nIGhvc3QgY2VydCIpCi0gICAgICAgICAgICByZXR1cm4ga2V5X3BhdGgsIGNlcnRf
cGF0aAotCi0gICAgZGVmIF9nZW5lcmF0ZV9ob3N0X2NlcnQoc2VsZiwgaG9zdHMpOgotICAgICAg
ICBob3N0ID0gaG9zdHNbMF0KLSAgICAgICAgaWYgc2VsZi5fY2Ffa2V5X3BhdGggaXMgTm9uZToK
LSAgICAgICAgICAgIHNlbGYuX2dlbmVyYXRlX2NhKCkKLSAgICAgICAgY2Ffa2V5X3BhdGggPSBz
ZWxmLl9jYV9rZXlfcGF0aAotCi0gICAgICAgIGFzc2VydCBvcy5wYXRoLmV4aXN0cyhjYV9rZXlf
cGF0aCkKLQotICAgICAgICBwYXRoID0gc2VsZi5wYXRoCi0KLSAgICAgICAgcmVxX3BhdGggPSBw
YXRoKCJ3cHQucmVxIikKLSAgICAgICAgY2VydF9wYXRoID0gcGF0aCgiJXMucGVtIiAlIGhvc3Qp
Ci0gICAgICAgIGtleV9wYXRoID0gcGF0aCgiJXMua2V5IiAlIGhvc3QpCi0KLSAgICAgICAgc2Vs
Zi5sb2dnZXIuaW5mbygiR2VuZXJhdGluZyBuZXcgaG9zdCBjZXJ0IikKLQotICAgICAgICB3aXRo
IHNlbGYuX2NvbmZpZ19vcGVuc3NsKGhvc3RzKSBhcyBvcGVuc3NsOgotICAgICAgICAgICAgb3Bl
bnNzbCgicmVxIiwKLSAgICAgICAgICAgICAgICAgICAgIi1iYXRjaCIsCi0gICAgICAgICAgICAg
ICAgICAgICItbmV3a2V5IiwgInJzYToyMDQ4IiwKLSAgICAgICAgICAgICAgICAgICAgIi1rZXlv
dXQiLCBrZXlfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgIi1pbiIsIGNhX2tleV9wYXRoLAot
ICAgICAgICAgICAgICAgICAgICAiLW5vZGVzIiwKLSAgICAgICAgICAgICAgICAgICAgIi1vdXQi
LCByZXFfcGF0aCkKLQotICAgICAgICAgICAgb3BlbnNzbCgiY2EiLAotICAgICAgICAgICAgICAg
ICAgICAiLWJhdGNoIiwKLSAgICAgICAgICAgICAgICAgICAgIi1pbiIsIHJlcV9wYXRoLAotICAg
ICAgICAgICAgICAgICAgICAiLXBhc3NpbiIsICJwYXNzOiVzIiAlIHNlbGYucGFzc3dvcmQsCi0g
ICAgICAgICAgICAgICAgICAgICItc3ViaiIsIG1ha2Vfc3ViamVjdChob3N0KSwKLSAgICAgICAg
ICAgICAgICAgICAgIi1vdXQiLCBjZXJ0X3BhdGgpCi0KLSAgICAgICAgb3MudW5saW5rKHJlcV9w
YXRoKQotCi0gICAgICAgIHJldHVybiBrZXlfcGF0aCwgY2VydF9wYXRoCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxz
L3ByZWdlbmVyYXRlZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc3NsdXRpbHMvcHJlZ2VuZXJhdGVkLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmYzQ4N2RmM2FkZDAzOTFjM2VmNzFiNjllZDlmMzc3MzRmMTQyODkxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvcHJlZ2VuZXJhdGVk
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotY2xhc3MgUHJlZ2VuZXJhdGVkU1NM
RW52aXJvbm1lbnQob2JqZWN0KToKLSAgICAiIiJTU0wgZW52aXJvbm1lbnQgdG8gdXNlIHdpdGgg
ZXhpc3Rpbmcga2V5L2NlcnRpZmljYXRlIGZpbGVzCi0gICAgZS5nLiB3aGVuIHJ1bm5pbmcgb24g
YSBzZXJ2ZXIgd2l0aCBhIHB1YmxpYyBkb21haW4gbmFtZQotICAgICIiIgotICAgIHNzbF9lbmFi
bGVkID0gVHJ1ZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgaG9zdF9rZXlfcGF0
aCwgaG9zdF9jZXJ0X3BhdGgsCi0gICAgICAgICAgICAgICAgIGNhX2NlcnRfcGF0aD1Ob25lKToK
LSAgICAgICAgc2VsZi5fY2FfY2VydF9wYXRoID0gY2FfY2VydF9wYXRoCi0gICAgICAgIHNlbGYu
X2hvc3Rfa2V5X3BhdGggPSBob3N0X2tleV9wYXRoCi0gICAgICAgIHNlbGYuX2hvc3RfY2VydF9w
YXRoID0gaG9zdF9jZXJ0X3BhdGgKLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToK
LSAgICAgICAgcGFzcwotCi0gICAgZGVmIGhvc3RfY2VydF9wYXRoKHNlbGYsIGhvc3RzKToKLSAg
ICAgICAgIiIiUmV0dXJuIHRoZSBrZXkgYW5kIGNlcnRpZmljYXRlIHBhdGhzIGZvciB0aGUgaG9z
dCIiIgotICAgICAgICByZXR1cm4gc2VsZi5faG9zdF9rZXlfcGF0aCwgc2VsZi5faG9zdF9jZXJ0
X3BhdGgKLQotICAgIGRlZiBjYV9jZXJ0X3BhdGgoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0
aGUgY2VydGlmaWNhdGUgcGF0aCBvZiB0aGUgQ0EgdGhhdCBzaWduZWQgdGhlCi0gICAgICAgIGhv
c3QgY2VydGlmaWNhdGVzLCBvciBOb25lIGlmIHRoYXQgaXNuJ3Qga25vd24iIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYuX2NhX2NlcnRfcGF0aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRp
bHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2YzAxNzlm
ODc0ZTkzMGZkZTg0MzQ4NTA5NjVkYWY5MDkyYmQyNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL2Jhc2UucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL29w
ZW5zc2wucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL1BLRy1J
TkZPIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9lbnVtL1BLRy1JTkZPCmluZGV4IDk4OTI3YzRkOTlkOWNhMmY3YWM5YWFkY2Iy
M2I1YjA5MjJmMzQyMDYuLjYyMzE3MWUzOGY2OGZiMjdjMmU0YTUxNjFmMDY1NzViYWY3ZTZkNmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvZW51bS9QS0ctSU5GTworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vUEtHLUlORk8K
QEAgLTEsNiArMSw2IEBACiBNZXRhZGF0YS1WZXJzaW9uOiAxLjEKIE5hbWU6IGVudW0zNAotVmVy
c2lvbjogMS4xLjYKK1ZlcnNpb246IDEuMS4xMAogU3VtbWFyeTogUHl0aG9uIDMuNCBFbnVtIGJh
Y2twb3J0ZWQgdG8gMy4zLCAzLjIsIDMuMSwgMi43LCAyLjYsIDIuNSwgYW5kIDIuNAogSG9tZS1w
YWdlOiBodHRwczovL2JpdGJ1Y2tldC5vcmcvc3RvbmVsZWFmL2VudW0zNAogQXV0aG9yOiBFdGhh
biBGdXJtYW4KQEAgLTU3LDYgKzU3LDQgQEAgQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3Vh
Z2UgOjogUHl0aG9uIDo6IDIuNQogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjog
UHl0aG9uIDo6IDIuNgogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9u
IDo6IDIuNwogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMu
MwotQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNAotQ2xh
c3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNQogUHJvdmlkZXM6
IGVudW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL19faW5pdF9fLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVt
L2VudW0vX19pbml0X18ucHkKaW5kZXggZDZmZmIzYTQwZmViMDc3NzkxNDBmNDNmMWRlMTFmZjgw
ZTdjMTNkNy4uNTFmM2NmMjQ3MDY5ZmQ2NzNlYTk3MDJiODBkODc2MjQzMTgzMTgyNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9lbnVtL2VudW0vX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vX19p
bml0X18ucHkKQEAgLTQsNyArNCw3IEBAIGltcG9ydCBzeXMgYXMgX3N5cwogCiBfX2FsbF9fID0g
WydFbnVtJywgJ0ludEVudW0nLCAndW5pcXVlJ10KIAotdmVyc2lvbiA9IDEsIDEsIDYKK3ZlcnNp
b24gPSAxLCAxLCAxMAogCiBweXZlciA9IGZsb2F0KCclcy4lcycgJSBfc3lzLnZlcnNpb25faW5m
b1s6Ml0pCiAKQEAgLTE4Myw3ICsxODMsOCBAQCBjbGFzcyBFbnVtTWV0YSh0eXBlKToKICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIGRlbCBjbGFzc2RpY3RbJ19vcmRlcl8nXQogICAgICAgICAg
ICAgaWYgcHl2ZXIgPCAzLjA6Ci0gICAgICAgICAgICAgICAgX29yZGVyXyA9IF9vcmRlcl8ucmVw
bGFjZSgnLCcsICcgJykuc3BsaXQoKQorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoX29y
ZGVyXywgYmFzZXN0cmluZyk6CisgICAgICAgICAgICAgICAgICAgIF9vcmRlcl8gPSBfb3JkZXJf
LnJlcGxhY2UoJywnLCAnICcpLnNwbGl0KCkKICAgICAgICAgICAgICAgICBhbGlhc2VzID0gW25h
bWUgZm9yIG5hbWUgaW4gbWVtYmVycyBpZiBuYW1lIG5vdCBpbiBfb3JkZXJfXQogICAgICAgICAg
ICAgICAgIF9vcmRlcl8gKz0gYWxpYXNlcwogCkBAIC00NjMsNyArNDY0LDcgQEAgY2xhc3MgRW51
bU1ldGEodHlwZSk6CiAgICAgICAgICAgICBfb3JkZXJfLmFwcGVuZChtZW1iZXJfbmFtZSkKICAg
ICAgICAgIyBvbmx5IHNldCBfb3JkZXJfIGluIGNsYXNzZGljdCBpZiBuYW1lL3ZhbHVlIHdhcyBu
b3QgZnJvbSBhIG1hcHBpbmcKICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwgYmFzZXN0
cmluZyk6Ci0gICAgICAgICAgICBjbGFzc2RpY3RbJ19vcmRlcl8nXSA9ICcgJy5qb2luKF9vcmRl
cl8pCisgICAgICAgICAgICBjbGFzc2RpY3RbJ19vcmRlcl8nXSA9IF9vcmRlcl8KICAgICAgICAg
ZW51bV9jbGFzcyA9IG1ldGFjbHMuX19uZXdfXyhtZXRhY2xzLCBjbGFzc19uYW1lLCBiYXNlcywg
Y2xhc3NkaWN0KQogCiAgICAgICAgICMgVE9ETzogcmVwbGFjZSB0aGUgZnJhbWUgaGFjayBpZiBh
IGJsZXNzZWQgd2F5IHRvIGtub3cgdGhlIGNhbGxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9l
bnVtL2RvYy9lbnVtLnBkZiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL2RvYy9lbnVtLnBkZgpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOGMxMzgzYTQ5NWU4ZjkyNGUyNDdjZGM1YjIwOTllYmEyZmY5
ZDRmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2VudW0vZW51bS9kb2MvZW51bS5wZGYKKysrIC9kZXYvbnVsbApAQCAtMSwyMjM3ICswLDAgQEAK
LSVQREYtMS40DQotJZOMi54gUmVwb3J0TGFiIEdlbmVyYXRlZCBQREYgZG9jdW1lbnQgaHR0cDov
L3d3dy5yZXBvcnRsYWIuY29tDQotMSAwIG9iag0KLTw8IC9GMSAyIDAgUiAvRjIgMyAwIFIgL0Yz
IDQgMCBSIC9GNCA1IDAgUiAvRjUgOCAwIFIgL0Y2IDE1IDAgUiA+Pg0KLWVuZG9iag0KLTIgMCBv
YmoNCi08PCAvQmFzZUZvbnQgL0hlbHZldGljYSAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZyAv
TmFtZSAvRjEgL1N1YnR5cGUgL1R5cGUxIC9UeXBlIC9Gb250ID4+DQotZW5kb2JqDQotMyAwIG9i
ag0KLTw8IC9CYXNlRm9udCAvQ291cmllci1Cb2xkIC9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5n
IC9OYW1lIC9GMiAvU3VidHlwZSAvVHlwZTEgL1R5cGUgL0ZvbnQgPj4NCi1lbmRvYmoNCi00IDAg
b2JqDQotPDwgL0Jhc2VGb250IC9IZWx2ZXRpY2EtQm9sZCAvRW5jb2RpbmcgL1dpbkFuc2lFbmNv
ZGluZyAvTmFtZSAvRjMgL1N1YnR5cGUgL1R5cGUxIC9UeXBlIC9Gb250ID4+DQotZW5kb2JqDQot
NSAwIG9iag0KLTw8IC9CYXNlRm9udCAvQ291cmllciAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGlu
ZyAvTmFtZSAvRjQgL1N1YnR5cGUgL1R5cGUxIC9UeXBlIC9Gb250ID4+DQotZW5kb2JqDQotNiAw
IG9iag0KLTw8IC9Cb3JkZXIgWyAwIDAgMCBdIC9Db250ZW50cyAoKSAvRGVzdCBbIDIyIDAgUiAv
WFlaIDYyLjY5MjkxIDYzOS4zMjM2IDAgXSAvUmVjdCBbIDMzNS4xODA1IDU3NC40MjcyIDQwNS4y
NDczIDU4Ni40MjcyIF0gL1N1YnR5cGUgL0xpbmsgL1R5cGUgL0Fubm90ID4+DQotZW5kb2JqDQot
NyAwIG9iag0KLTw8IC9Cb3JkZXIgWyAwIDAgMCBdIC9Db250ZW50cyAoKSAvRGVzdCBbIDIyIDAg
UiAvWFlaIDYyLjY5MjkxIDYzOS4zMjM2IDAgXSAvUmVjdCBbIDI1NS45NzQyIDQyNy40MjcyIDMy
MS41Mzc4IDQzOS40MjcyIF0gL1N1YnR5cGUgL0xpbmsgL1R5cGUgL0Fubm90ID4+DQotZW5kb2Jq
DQotOCAwIG9iag0KLTw8IC9CYXNlRm9udCAvSGVsdmV0aWNhLU9ibGlxdWUgL0VuY29kaW5nIC9X
aW5BbnNpRW5jb2RpbmcgL05hbWUgL0Y1IC9TdWJ0eXBlIC9UeXBlMSAvVHlwZSAvRm9udCA+Pg0K
LWVuZG9iag0KLTkgMCBvYmoNCi08PCAvQm9yZGVyIFsgMCAwIDAgXSAvQ29udGVudHMgKCkgL0Rl
c3QgWyAyNiAwIFIgL1hZWiA2Mi42OTI5MSAyNzguMTIzNiAwIF0gL1JlY3QgWyA4Mi42OTI5MSAx
ODIuMjI3MiAyMDEuMDcyOSAxOTQuMjI3MiBdIC9TdWJ0eXBlIC9MaW5rIC9UeXBlIC9Bbm5vdCA+
Pg0KLWVuZG9iag0KLTEwIDAgb2JqDQotPDwgL0Fubm90cyBbIDYgMCBSIDcgMCBSIDkgMCBSIF0g
L0NvbnRlbnRzIDU2IDAgUiAvTWVkaWFCb3ggWyAwIDAgNTk1LjI3NTYgODQxLjg4OTggXSAvUGFy
ZW50IDU1IDAgUiAvUmVzb3VyY2VzIDw8IC9Gb250IDEgMCBSIC9Qcm9jU2V0IFsgL1BERiAvVGV4
dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdID4+IC9Sb3RhdGUgMCANCi0gIC9UcmFucyA8PCAg
Pj4gL1R5cGUgL1BhZ2UgPj4NCi1lbmRvYmoNCi0xMSAwIG9iag0KLTw8IC9Db250ZW50cyA1NyAw
IFIgL01lZGlhQm94IFsgMCAwIDU5NS4yNzU2IDg0MS44ODk4IF0gL1BhcmVudCA1NSAwIFIgL1Jl
c291cmNlcyA8PCAvRm9udCAxIDAgUiAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1h
Z2VDIC9JbWFnZUkgXSA+PiAvUm90YXRlIDAgL1RyYW5zIDw8ICA+PiANCi0gIC9UeXBlIC9QYWdl
ID4+DQotZW5kb2JqDQotMTIgMCBvYmoNCi08PCAvQ29udGVudHMgNTggMCBSIC9NZWRpYUJveCBb
IDAgMCA1OTUuMjc1NiA4NDEuODg5OCBdIC9QYXJlbnQgNTUgMCBSIC9SZXNvdXJjZXMgPDwgL0Zv
bnQgMSAwIFIgL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJIF0g
Pj4gL1JvdGF0ZSAwIC9UcmFucyA8PCAgPj4gDQotICAvVHlwZSAvUGFnZSA+Pg0KLWVuZG9iag0K
LTEzIDAgb2JqDQotPDwgL0NvbnRlbnRzIDU5IDAgUiAvTWVkaWFCb3ggWyAwIDAgNTk1LjI3NTYg
ODQxLjg4OTggXSAvUGFyZW50IDU1IDAgUiAvUmVzb3VyY2VzIDw8IC9Gb250IDEgMCBSIC9Qcm9j
U2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdID4+IC9Sb3RhdGUgMCAv
VHJhbnMgPDwgID4+IA0KLSAgL1R5cGUgL1BhZ2UgPj4NCi1lbmRvYmoNCi0xNCAwIG9iag0KLTw8
IC9Cb3JkZXIgWyAwIDAgMCBdIC9Db250ZW50cyAoKSAvRGVzdCBbIDIyIDAgUiAvWFlaIDYyLjY5
MjkxIDE1Ny4yMjM2IDAgXSAvUmVjdCBbIDEwMS42MDI5IDc0MS43NzM2IDE0MS42MjI5IDc1My43
NzM2IF0gL1N1YnR5cGUgL0xpbmsgL1R5cGUgL0Fubm90ID4+DQotZW5kb2JqDQotMTUgMCBvYmoN
Ci08PCAvQmFzZUZvbnQgL0hlbHZldGljYS1Cb2xkT2JsaXF1ZSAvRW5jb2RpbmcgL1dpbkFuc2lF
bmNvZGluZyAvTmFtZSAvRjYgL1N1YnR5cGUgL1R5cGUxIC9UeXBlIC9Gb250ID4+DQotZW5kb2Jq
DQotMTYgMCBvYmoNCi08PCAvQm9yZGVyIFsgMCAwIDAgXSAvQ29udGVudHMgKCkgL0Rlc3QgWyAy
NSAwIFIgL1hZWiA2Mi42OTI5MSAzNTkuNjIzNiAwIF0gL1JlY3QgWyAzMjcuMTUyOSA1ODUuNTcz
NiAzOTIuNzMyOSA1OTcuNTczNiBdIC9TdWJ0eXBlIC9MaW5rIC9UeXBlIC9Bbm5vdCA+Pg0KLWVu
ZG9iag0KLTE3IDAgb2JqDQotPDwgL0JvcmRlciBbIDAgMCAwIF0gL0NvbnRlbnRzICgpIC9EZXN0
IFsgMjIgMCBSIC9YWVogNjIuNjkyOTEgNjM5LjMyMzYgMCBdIC9SZWN0IFsgMTgxLjE5MTcgMzEy
LjE3MzYgMjQ2LjQ2MzQgMzI0LjE3MzYgXSAvU3VidHlwZSAvTGluayAvVHlwZSAvQW5ub3QgPj4N
Ci1lbmRvYmoNCi0xOCAwIG9iag0KLTw8IC9Bbm5vdHMgWyAxNCAwIFIgMTYgMCBSIDE3IDAgUiBd
IC9Db250ZW50cyA2MCAwIFIgL01lZGlhQm94IFsgMCAwIDU5NS4yNzU2IDg0MS44ODk4IF0gL1Bh
cmVudCA1NSAwIFIgL1Jlc291cmNlcyA8PCAvRm9udCAxIDAgUiAvUHJvY1NldCBbIC9QREYgL1Rl
eHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkgXSA+PiAvUm90YXRlIDAgDQotICAvVHJhbnMgPDwg
ID4+IC9UeXBlIC9QYWdlID4+DQotZW5kb2JqDQotMTkgMCBvYmoNCi08PCAvQm9yZGVyIFsgMCAw
IDAgXSAvQ29udGVudHMgKCkgL0Rlc3QgWyAyNiAwIFIgL1hZWiA2Mi42OTI5MSA2MTAuODIzNiAw
IF0gL1JlY3QgWyAzMjYuMTMyOSA1MTEuMzczNiAzNTcuMjYyOSA1MjMuMzczNiBdIC9TdWJ0eXBl
IC9MaW5rIC9UeXBlIC9Bbm5vdCA+Pg0KLWVuZG9iag0KLTIwIDAgb2JqDQotPDwgL0JvcmRlciBb
IDAgMCAwIF0gL0NvbnRlbnRzICgpIC9EZXN0IFsgMjUgMCBSIC9YWVogNjIuNjkyOTEgMzU5LjYy
MzYgMCBdIC9SZWN0IFsgMjQxLjEyMjkgMTg1Ljk3MzYgMzA2LjcwMjkgMTk3Ljk3MzYgXSAvU3Vi
dHlwZSAvTGluayAvVHlwZSAvQW5ub3QgPj4NCi1lbmRvYmoNCi0yMSAwIG9iag0KLTw8IC9Bbm5v
dHMgWyAxOSAwIFIgMjAgMCBSIF0gL0NvbnRlbnRzIDYxIDAgUiAvTWVkaWFCb3ggWyAwIDAgNTk1
LjI3NTYgODQxLjg4OTggXSAvUGFyZW50IDU1IDAgUiAvUmVzb3VyY2VzIDw8IC9Gb250IDEgMCBS
IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdID4+IC9Sb3Rh
dGUgMCANCi0gIC9UcmFucyA8PCAgPj4gL1R5cGUgL1BhZ2UgPj4NCi1lbmRvYmoNCi0yMiAwIG9i
ag0KLTw8IC9Db250ZW50cyA2MiAwIFIgL01lZGlhQm94IFsgMCAwIDU5NS4yNzU2IDg0MS44ODk4
IF0gL1BhcmVudCA1NSAwIFIgL1Jlc291cmNlcyA8PCAvRm9udCAxIDAgUiAvUHJvY1NldCBbIC9Q
REYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkgXSA+PiAvUm90YXRlIDAgL1RyYW5zIDw8
ICA+PiANCi0gIC9UeXBlIC9QYWdlID4+DQotZW5kb2JqDQotMjMgMCBvYmoNCi08PCAvQ29udGVu
dHMgNjMgMCBSIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1NiA4NDEuODg5OCBdIC9QYXJlbnQgNTUg
MCBSIC9SZXNvdXJjZXMgPDwgL0ZvbnQgMSAwIFIgL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFn
ZUIgL0ltYWdlQyAvSW1hZ2VJIF0gPj4gL1JvdGF0ZSAwIC9UcmFucyA8PCAgPj4gDQotICAvVHlw
ZSAvUGFnZSA+Pg0KLWVuZG9iag0KLTI0IDAgb2JqDQotPDwgL0NvbnRlbnRzIDY0IDAgUiAvTWVk
aWFCb3ggWyAwIDAgNTk1LjI3NTYgODQxLjg4OTggXSAvUGFyZW50IDU1IDAgUiAvUmVzb3VyY2Vz
IDw8IC9Gb250IDEgMCBSIC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0lt
YWdlSSBdID4+IC9Sb3RhdGUgMCAvVHJhbnMgPDwgID4+IA0KLSAgL1R5cGUgL1BhZ2UgPj4NCi1l
bmRvYmoNCi0yNSAwIG9iag0KLTw8IC9Db250ZW50cyA2NSAwIFIgL01lZGlhQm94IFsgMCAwIDU5
NS4yNzU2IDg0MS44ODk4IF0gL1BhcmVudCA1NSAwIFIgL1Jlc291cmNlcyA8PCAvRm9udCAxIDAg
UiAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkgXSA+PiAvUm90
YXRlIDAgL1RyYW5zIDw8ICA+PiANCi0gIC9UeXBlIC9QYWdlID4+DQotZW5kb2JqDQotMjYgMCBv
YmoNCi08PCAvQ29udGVudHMgNjYgMCBSIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1NiA4NDEuODg5
OCBdIC9QYXJlbnQgNTUgMCBSIC9SZXNvdXJjZXMgPDwgL0ZvbnQgMSAwIFIgL1Byb2NTZXQgWyAv
UERGIC9UZXh0IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJIF0gPj4gL1JvdGF0ZSAwIC9UcmFucyA8
PCAgPj4gDQotICAvVHlwZSAvUGFnZSA+Pg0KLWVuZG9iag0KLTI3IDAgb2JqDQotPDwgL0JvcmRl
ciBbIDAgMCAwIF0gL0NvbnRlbnRzICgpIC9EZXN0IFsgMjYgMCBSIC9YWVogNjIuNjkyOTEgNjEw
LjgyMzYgMCBdIC9SZWN0IFsgMzA5LjQwOTQgMjk5LjU3MzYgMzQwLjY0NjEgMzExLjU3MzYgXSAv
U3VidHlwZSAvTGluayAvVHlwZSAvQW5ub3QgPj4NCi1lbmRvYmoNCi0yOCAwIG9iag0KLTw8IC9B
bm5vdHMgWyAyNyAwIFIgXSAvQ29udGVudHMgNjcgMCBSIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1
NiA4NDEuODg5OCBdIC9QYXJlbnQgNTUgMCBSIC9SZXNvdXJjZXMgPDwgL0ZvbnQgMSAwIFIgL1By
b2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJIF0gPj4gL1JvdGF0ZSAw
IA0KLSAgL1RyYW5zIDw8ICA+PiAvVHlwZSAvUGFnZSA+Pg0KLWVuZG9iag0KLTI5IDAgb2JqDQot
PDwgL091dGxpbmVzIDMxIDAgUiAvUGFnZUxhYmVscyA2OCAwIFIgL1BhZ2VNb2RlIC9Vc2VOb25l
IC9QYWdlcyA1NSAwIFIgL1R5cGUgL0NhdGFsb2cgPj4NCi1lbmRvYmoNCi0zMCAwIG9iag0KLTw8
IC9BdXRob3IgKCkgL0NyZWF0aW9uRGF0ZSAoRDoyMDE2MDUxNTIwMjgzMSswOCcwMCcpIC9DcmVh
dG9yIChcKHVuc3BlY2lmaWVkXCkpIC9LZXl3b3JkcyAoKSAvUHJvZHVjZXIgKFJlcG9ydExhYiBQ
REYgTGlicmFyeSAtIHd3dy5yZXBvcnRsYWIuY29tKSAvU3ViamVjdCAoXCh1bnNwZWNpZmllZFwp
KSANCi0gIC9UaXRsZSAoZW51bSAtLS0gc3VwcG9ydCBmb3IgZW51bWVyYXRpb25zKSA+Pg0KLWVu
ZG9iag0KLTMxIDAgb2JqDQotPDwgL0NvdW50IDI3IC9GaXJzdCAzMiAwIFIgL0xhc3QgNTEgMCBS
IC9UeXBlIC9PdXRsaW5lcyA+Pg0KLWVuZG9iag0KLTMyIDAgb2JqDQotPDwgL0Rlc3QgWyAxMCAw
IFIgL1hZWiA2Mi42OTI5MSA2NjAuNjc3MiAwIF0gL05leHQgMzMgMCBSIC9QYXJlbnQgMzEgMCBS
IC9UaXRsZSAoTW9kdWxlIENvbnRlbnRzKSA+Pg0KLWVuZG9iag0KLTMzIDAgb2JqDQotPDwgL0Rl
c3QgWyAxMCAwIFIgL1hZWiA2Mi42OTI5MSA0NzcuNjc3MiAwIF0gL05leHQgMzQgMCBSIC9QYXJl
bnQgMzEgMCBSIC9QcmV2IDMyIDAgUiAvVGl0bGUgKENyZWF0aW5nIGFuIEVudW0pID4+DQotZW5k
b2JqDQotMzQgMCBvYmoNCi08PCAvRGVzdCBbIDExIDAgUiAvWFlaIDYyLjY5MjkxIDE5Ny4wMjM2
IDAgXSAvTmV4dCAzNSAwIFIgL1BhcmVudCAzMSAwIFIgL1ByZXYgMzMgMCBSIC9UaXRsZSAoUHJv
Z3JhbW1hdGljIGFjY2VzcyB0byBlbnVtZXJhdGlvbiBtZW1iZXJzIGFuZCB0aGVpciBhdHRyaWJ1
dGVzKSA+Pg0KLWVuZG9iag0KLTM1IDAgb2JqDQotPDwgL0Rlc3QgWyAxMiAwIFIgL1hZWiA2Mi42
OTI5MSA1MDEuNDIzNiAwIF0gL05leHQgMzYgMCBSIC9QYXJlbnQgMzEgMCBSIC9QcmV2IDM0IDAg
UiAvVGl0bGUgKER1cGxpY2F0aW5nIGVudW0gbWVtYmVycyBhbmQgdmFsdWVzKSA+Pg0KLWVuZG9i
ag0KLTM2IDAgb2JqDQotPDwgL0Rlc3QgWyAxMyAwIFIgL1hZWiA2Mi42OTI5MSAyMTUuMDIzNiAw
IF0gL05leHQgMzcgMCBSIC9QYXJlbnQgMzEgMCBSIC9QcmV2IDM1IDAgUiAvVGl0bGUgKENvbXBh
cmlzb25zKSA+Pg0KLWVuZG9iag0KLTM3IDAgb2JqDQotPDwgL0Rlc3QgWyAxOCAwIFIgL1hZWiA2
Mi42OTI5MSAzNjIuNDIzNiAwIF0gL05leHQgMzggMCBSIC9QYXJlbnQgMzEgMCBSIC9QcmV2IDM2
IDAgUiAvVGl0bGUgKEFsbG93ZWQgbWVtYmVycyBhbmQgYXR0cmlidXRlcyBvZiBlbnVtZXJhdGlv
bnMpID4+DQotZW5kb2JqDQotMzggMCBvYmoNCi08PCAvRGVzdCBbIDIxIDAgUiAvWFlaIDYyLjY5
MjkxIDQ5OC42MjM2IDAgXSAvTmV4dCAzOSAwIFIgL1BhcmVudCAzMSAwIFIgL1ByZXYgMzcgMCBS
IC9UaXRsZSAoUmVzdHJpY3RlZCBzdWJjbGFzc2luZyBvZiBlbnVtZXJhdGlvbnMpID4+DQotZW5k
b2JqDQotMzkgMCBvYmoNCi08PCAvRGVzdCBbIDIxIDAgUiAvWFlaIDYyLjY5MjkxIDE3My4yMjM2
IDAgXSAvTmV4dCA0MCAwIFIgL1BhcmVudCAzMSAwIFIgL1ByZXYgMzggMCBSIC9UaXRsZSAoUGlj
a2xpbmcpID4+DQotZW5kb2JqDQotNDAgMCBvYmoNCi08PCAvRGVzdCBbIDIyIDAgUiAvWFlaIDYy
LjY5MjkxIDYzNS44MjM2IDAgXSAvTmV4dCA0MSAwIFIgL1BhcmVudCAzMSAwIFIgL1ByZXYgMzkg
MCBSIC9UaXRsZSAoRnVuY3Rpb25hbCBBUEkpID4+DQotZW5kb2JqDQotNDEgMCBvYmoNCi08PCAv
Q291bnQgMiAvRGVzdCBbIDIyIDAgUiAvWFlaIDYyLjY5MjkxIDE4Ny4yMjM2IDAgXSAvRmlyc3Qg
NDIgMCBSIC9MYXN0IDQzIDAgUiAvTmV4dCA0NCAwIFIgL1BhcmVudCAzMSAwIFIgDQotICAvUHJl
diA0MCAwIFIgL1RpdGxlIChEZXJpdmVkIEVudW1lcmF0aW9ucykgPj4NCi1lbmRvYmoNCi00MiAw
IG9iag0KLTw8IC9EZXN0IFsgMjIgMCBSIC9YWVogNjIuNjkyOTEgMTU0LjIyMzYgMCBdIC9OZXh0
IDQzIDAgUiAvUGFyZW50IDQxIDAgUiAvVGl0bGUgKEludEVudW0pID4+DQotZW5kb2JqDQotNDMg
MCBvYmoNCi08PCAvRGVzdCBbIDIzIDAgUiAvWFlaIDYyLjY5MjkxIDIxNy40MjM2IDAgXSAvUGFy
ZW50IDQxIDAgUiAvUHJldiA0MiAwIFIgL1RpdGxlIChPdGhlcnMpID4+DQotZW5kb2JqDQotNDQg
MCBvYmoNCi08PCAvQ291bnQgMSAvRGVzdCBbIDI0IDAgUiAvWFlaIDYyLjY5MjkxIDU2Ny4wMjM2
IDAgXSAvRmlyc3QgNDUgMCBSIC9MYXN0IDQ1IDAgUiAvTmV4dCA0NiAwIFIgL1BhcmVudCAzMSAw
IFIgDQotICAvUHJldiA0MSAwIFIgL1RpdGxlIChEZWNvcmF0b3JzKSA+Pg0KLWVuZG9iag0KLTQ1
IDAgb2JqDQotPDwgL0Rlc3QgWyAyNCAwIFIgL1hZWiA2Mi42OTI5MSA1MzQuMDIzNiAwIF0gL1Bh
cmVudCA0NCAwIFIgL1RpdGxlICh1bmlxdWUpID4+DQotZW5kb2JqDQotNDYgMCBvYmoNCi08PCAv
Q291bnQgNCAvRGVzdCBbIDI0IDAgUiAvWFlaIDYyLjY5MjkxIDM1Ni44MjM2IDAgXSAvRmlyc3Qg
NDcgMCBSIC9MYXN0IDUwIDAgUiAvTmV4dCA1MSAwIFIgL1BhcmVudCAzMSAwIFIgDQotICAvUHJl
diA0NCAwIFIgL1RpdGxlIChJbnRlcmVzdGluZyBleGFtcGxlcykgPj4NCi1lbmRvYmoNCi00NyAw
IG9iag0KLTw8IC9EZXN0IFsgMjQgMCBSIC9YWVogNjIuNjkyOTEgMjgxLjgyMzYgMCBdIC9OZXh0
IDQ4IDAgUiAvUGFyZW50IDQ2IDAgUiAvVGl0bGUgKEF1dG9OdW1iZXIpID4+DQotZW5kb2JqDQot
NDggMCBvYmoNCi08PCAvRGVzdCBbIDI1IDAgUiAvWFlaIDYyLjY5MjkxIDY0MS44MjM2IDAgXSAv
TmV4dCA0OSAwIFIgL1BhcmVudCA0NiAwIFIgL1ByZXYgNDcgMCBSIC9UaXRsZSAoVW5pcXVlRW51
bSkgPj4NCi1lbmRvYmoNCi00OSAwIG9iag0KLTw8IC9EZXN0IFsgMjUgMCBSIC9YWVogNjIuNjky
OTEgMzU2LjYyMzYgMCBdIC9OZXh0IDUwIDAgUiAvUGFyZW50IDQ2IDAgUiAvUHJldiA0OCAwIFIg
L1RpdGxlIChPcmRlcmVkRW51bSkgPj4NCi1lbmRvYmoNCi01MCAwIG9iag0KLTw8IC9EZXN0IFsg
MjYgMCBSIC9YWVogNjIuNjkyOTEgNjA3LjgyMzYgMCBdIC9QYXJlbnQgNDYgMCBSIC9QcmV2IDQ5
IDAgUiAvVGl0bGUgKFBsYW5ldCkgPj4NCi1lbmRvYmoNCi01MSAwIG9iag0KLTw8IC9Db3VudCAz
IC9EZXN0IFsgMjYgMCBSIC9YWVogNjIuNjkyOTEgMjc0LjYyMzYgMCBdIC9GaXJzdCA1MiAwIFIg
L0xhc3QgNTQgMCBSIC9QYXJlbnQgMzEgMCBSIC9QcmV2IDQ2IDAgUiANCi0gIC9UaXRsZSAoSG93
IGFyZSBFbnVtcyBkaWZmZXJlbnQ/KSA+Pg0KLWVuZG9iag0KLTUyIDAgb2JqDQotPDwgL0Rlc3Qg
WyAyNiAwIFIgL1hZWiA2Mi42OTI5MSAyMTEuNjIzNiAwIF0gL05leHQgNTMgMCBSIC9QYXJlbnQg
NTEgMCBSIC9UaXRsZSAoRW51bSBDbGFzc2VzKSA+Pg0KLWVuZG9iag0KLTUzIDAgb2JqDQotPDwg
L0Rlc3QgWyAyOCAwIFIgL1hZWiA2Mi42OTI5MSA2NjQuMDIzNiAwIF0gL05leHQgNTQgMCBSIC9Q
YXJlbnQgNTEgMCBSIC9QcmV2IDUyIDAgUiAvVGl0bGUgKEVudW0gTWVtYmVycyBcKGFrYSBpbnN0
YW5jZXNcKSkgPj4NCi1lbmRvYmoNCi01NCAwIG9iag0KLTw8IC9EZXN0IFsgMjggMCBSIC9YWVog
NjIuNjkyOTEgNTkyLjAyMzYgMCBdIC9QYXJlbnQgNTEgMCBSIC9QcmV2IDUzIDAgUiAvVGl0bGUg
KEZpbmVyIFBvaW50cykgPj4NCi1lbmRvYmoNCi01NSAwIG9iag0KLTw8IC9Db3VudCAxMiAvS2lk
cyBbIDEwIDAgUiAxMSAwIFIgMTIgMCBSIDEzIDAgUiAxOCAwIFIgMjEgMCBSIDIyIDAgUiAyMyAw
IFIgMjQgMCBSIDI1IDAgUiANCi0gIDI2IDAgUiAyOCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4NCi1l
bmRvYmoNCi01NiAwIG9iag0KLTw8IC9MZW5ndGggNjQ1OCA+Pg0KLXN0cmVhbQ0KLTEgMCAwIDEg
MCAwIGNtICBCVCAvRjEgMTIgVGYgMTQuNCBUTCBFVA0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDc0
MS4wMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCA0IFRtIDczLjcxNDg4IDAgVGQgMjQgVEwgL0Yy
IDIwIFRmIDAgMCAwIHJnIChlbnVtICkgVGogL0YzIDIwIFRmIDAgMCAwIHJnICgtLS0gc3VwcG9y
dCBmb3IgZW51bWVyYXRpb25zKSBUaiBUKiAtNzMuNzE0ODggMCBUZCBFVA0KLVENCi1RDQotcQ0K
LTEgMCAwIDEgNjIuNjkyOTEgNzAyLjY3NzIgY20NCi1uIDAgMTQuMTczMjMgbSA0NjkuODg5OCAx
NC4xNzMyMyBsIFMNCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNjcyLjY3NzIgY20NCi1xDQot
QlQgMSAwIDAgMSAwIDE0IFRtIDIuMDkxMzE4IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAo
QW4gZW51bWVyYXRpb24gaXMgYSBzZXQgb2Ygc3ltYm9saWMgbmFtZXMgXChtZW1iZXJzXCkgYm91
bmQgdG8gdW5pcXVlLCBjb25zdGFudCB2YWx1ZXMuIFdpdGhpbiBhbikgVGogVCogMCBUdyAoZW51
bWVyYXRpb24sIHRoZSBtZW1iZXJzIGNhbiBiZSBjb21wYXJlZCBieSBpZGVudGl0eSwgYW5kIHRo
ZSBlbnVtZXJhdGlvbiBpdHNlbGYgY2FuIGJlIGl0ZXJhdGVkIG92ZXIuKSBUaiBUKiBFVA0KLVEN
Ci1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNjM5LjY3NzIgY20NCi1xDQotQlQgMSAwIDAgMSAw
IDMuNSBUbSAyMSBUTCAvRjMgMTcuNSBUZiAwIDAgMCByZyAoTW9kdWxlIENvbnRlbnRzKSBUaiBU
KiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNjA5LjY3NzIgY20NCi1xDQotQlQg
MSAwIDAgMSAwIDE0IFRtIDIuMDI3NDg1IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoVGhp
cyBtb2R1bGUgZGVmaW5lcyB0d28gZW51bWVyYXRpb24gY2xhc3NlcyB0aGF0IGNhbiBiZSB1c2Vk
IHRvIGRlZmluZSB1bmlxdWUgc2V0cyBvZiBuYW1lcyBhbmQpIFRqIFQqIDAgVHcgKHZhbHVlczog
KSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVudW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGFu
ZCApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoSW50RW51bSkgVGogL0YxIDEwIFRmIDAgMCAwIHJn
ICguIEl0IGFsc28gZGVmaW5lcyBvbmUgZGVjb3JhdG9yLCApIFRqIC9GNCAxMCBUZiAwIDAgMCBy
ZyAodW5pcXVlKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKC4pIFRqIFQqIEVUDQotUQ0KLVENCi1x
DQotMSAwIDAgMSA2Mi42OTI5MSA1OTEuNjc3MiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAw
IDEgMCAyIFRtIC9GNCAxMCBUZiAxMiBUTCAoRW51bSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0x
IDAgMCAxIDYyLjY5MjkxIDU2MS42NzcyIGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAxLjEy
ODQ0MyBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5n
IGVudW1lcmF0ZWQgY29uc3RhbnRzLiBTZWUgc2VjdGlvbiApIFRqIDAgMCAuNTAxOTYxIHJnIChG
dW5jdGlvbmFsIEFQSSApIFRqIDAgMCAwIHJnIChmb3IgYW4gYWx0ZXJuYXRlIGNvbnN0cnVjdGlv
bikgVGogVCogMCBUdyAoc3ludGF4LikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDU0My42NzcyIGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0Y0
IDEwIFRmIDEyIFRMIChJbnRFbnVtKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIu
NjkyOTEgNTI1LjY3NzIgY20NCi1xDQotQlQgMSAwIDAgMSAwIDIgVG0gMTIgVEwgL0YxIDEwIFRm
IDAgMCAwIHJnIChCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBlbnVtZXJhdGVkIGNvbnN0YW50cyB0
aGF0IGFyZSBhbHNvIHN1YmNsYXNzZXMgb2YgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKGludCkg
VGogL0YxIDEwIFRmIDAgMCAwIHJnICguKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEg
NjIuNjkyOTEgNTA3LjY3NzIgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAv
RjQgMTAgVGYgMTIgVEwgKHVuaXF1ZSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDQ4OS42NzcyIGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0Yx
IDEwIFRmIDEyIFRMIChFbnVtIGNsYXNzIGRlY29yYXRvciB0aGF0IGVuc3VyZXMgb25seSBvbmUg
bmFtZSBpcyBib3VuZCB0byBhbnkgb25lIHZhbHVlLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0x
IDAgMCAxIDYyLjY5MjkxIDQ1Ni42NzcyIGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAzLjUgVG0gMjEg
VEwgL0YzIDE3LjUgVGYgMCAwIDAgcmcgKENyZWF0aW5nIGFuIEVudW0pIFRqIFQqIEVUDQotUQ0K
LVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA0MTQuNjc3MiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAg
MjYgVG0gMi40MzI2NTEgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChFbnVtZXJhdGlvbnMg
YXJlIGNyZWF0ZWQgdXNpbmcgdGhlICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChjbGFzcyApIFRq
IC9GMSAxMCBUZiAwIDAgMCByZyAoc3ludGF4LCB3aGljaCBtYWtlcyB0aGVtIGVhc3kgdG8gcmVh
ZCBhbmQgd3JpdGUuIEFuKSBUaiBUKiAwIFR3IC41MzM1NTUgVHcgKGFsdGVybmF0aXZlIGNyZWF0
aW9uIG1ldGhvZCBpcyBkZXNjcmliZWQgaW4gKSBUaiAwIDAgLjUwMTk2MSByZyAoRnVuY3Rpb25h
bCBBUEkpIFRqIDAgMCAwIHJnICguIFRvIGRlZmluZSBhbiBlbnVtZXJhdGlvbiwgc3ViY2xhc3Mg
KSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVudW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGFz
KSBUaiBUKiAwIFR3IChmb2xsb3dzOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDMzMy40NzcyIGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAx
IDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2
MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDcyIHJlIEIqDQotUQ0K
LXENCi1CVCAxIDAgMCAxIDAgNTAgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAo
PikgVGogKD4pIFRqICggZnJvbSBlbnVtIGltcG9ydCBFbnVtKSBUaiBUKiAoPikgVGogKD4pIFRq
ICg+KSBUaiAoIGNsYXNzIENvbG9yXChFbnVtXCk6KSBUaiBUKiAoLi4uICAgICByZWQgPSAxKSBU
aiBUKiAoLi4uICAgICBncmVlbiA9IDIpIFRqIFQqICguLi4gICAgIGJsdWUgPSAzKSBUaiBUKiBF
VA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMzEzLjQ3NzIgY20N
Ci1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAvRjEgMTAgVGYgMTIgVEwgKE5vdGU6
IE5vbWVuY2xhdHVyZSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDMw
Ny40NzcyIGNtDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDIyOS40NzcyIGNtDQotMCAwIDAg
cmcNCi1CVCAvRjEgMTAgVGYgMTIgVEwgRVQNCi1CVCAxIDAgMCAxIDAgMiBUbSAgVCogRVQNCi1x
DQotMSAwIDAgMSAyMCA3MiBjbQ0KLVENCi1xDQotMSAwIDAgMSAyMCA3MiBjbQ0KLVENCi1xDQot
MSAwIDAgMSAyMCA2MCBjbQ0KLTAgMCAwIHJnDQotQlQgL0YxIDEwIFRmIDEyIFRMIEVUDQotcQ0K
LTEgMCAwIDEgNiAtMyBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAyIFRtIC9GMSAx
MCBUZiAxMiBUTCAxMC41IDAgVGQgKFwxNzcpIFRqIFQqIC0xMC41IDAgVGQgRVQNCi1RDQotUQ0K
LXENCi0xIDAgMCAxIDIzIC0zIGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyIFRtIDEyIFRMIC9GMSAx
MCBUZiAwIDAgMCByZyAoVGhlIGNsYXNzICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChDb2xvciAp
IFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoaXMgYW4gKSBUaiAvRjUgMTAgVGYgKGVudW1lcmF0aW9u
ICkgVGogL0YxIDEwIFRmIChcKG9yICkgVGogL0Y1IDEwIFRmIChlbnVtKSBUaiAvRjEgMTAgVGYg
KFwpKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgMjAgNTQgY20N
Ci1RDQotcQ0KLTEgMCAwIDEgMjAgMzAgY20NCi0wIDAgMCByZw0KLUJUIC9GMSAxMCBUZiAxMiBU
TCBFVA0KLXENCi0xIDAgMCAxIDYgOSBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAy
IFRtIC9GMSAxMCBUZiAxMiBUTCAxMC41IDAgVGQgKFwxNzcpIFRqIFQqIC0xMC41IDAgVGQgRVQN
Ci1RDQotUQ0KLXENCi0xIDAgMCAxIDIzIC0zIGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSA1
LjU2ODg2MyBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFRoZSBhdHRyaWJ1dGVzICkgVGog
L0Y0IDEwIFRmIDAgMCAwIHJnIChDb2xvci5yZWQpIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoLCAp
IFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoQ29sb3IuZ3JlZW4pIFRqIC9GMSAxMCBUZiAwIDAgMCBy
ZyAoLCBldGMuLCBhcmUgKSBUaiAvRjUgMTAgVGYgKGVudW1lcmF0aW9uIG1lbWJlcnMgKSBUaiAv
RjEgMTAgVGYgKFwob3IgKSBUaiAvRjUgMTAgVGYgKGVudW0pIFRqIFQqIDAgVHcgKG1lbWJlcnMp
IFRqIC9GMSAxMCBUZiAoXCkuKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLVENCi1RDQotcQ0KLTEg
MCAwIDEgMjAgMjQgY20NCi1RDQotcQ0KLTEgMCAwIDEgMjAgMCBjbQ0KLTAgMCAwIHJnDQotQlQg
L0YxIDEwIFRmIDEyIFRMIEVUDQotcQ0KLTEgMCAwIDEgNiA5IGNtDQotcQ0KLTAgMCAwIHJnDQot
QlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIDEwLjUgMCBUZCAoXDE3NykgVGogVCog
LTEwLjUgMCBUZCBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgMjMgLTMgY20NCi1xDQotQlQgMSAw
IDAgMSAwIDE0IFRtIDEuNDcxMzE4IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoVGhlIGVu
dW0gbWVtYmVycyBoYXZlICkgVGogL0Y1IDEwIFRmIChuYW1lcyApIFRqIC9GMSAxMCBUZiAoYW5k
ICkgVGogL0Y1IDEwIFRmICh2YWx1ZXMgKSBUaiAvRjEgMTAgVGYgKFwodGhlIG5hbWUgb2YgKSBU
aiAvRjQgMTAgVGYgMCAwIDAgcmcgKENvbG9yLnJlZCApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAo
aXMgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKHJlZCkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICgs
IHRoZSB2YWx1ZSBvZikgVGogVCogMCBUdyAvRjQgMTAgVGYgMCAwIDAgcmcgKENvbG9yLmJsdWUg
KSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlzICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnICgzKSBU
aiAvRjEgMTAgVGYgMCAwIDAgcmcgKCwgZXRjLlwpKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLVEN
Ci1RDQotcQ0KLTEgMCAwIDEgMjAgMCBjbQ0KLVENCi1xDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2
Mi42OTI5MSAyMjkuNDc3MiBjbQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAyMTEuNDc3MiBj
bQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAyIFRtIC9GMSAxMCBUZiAxMiBUTCAoTm90
ZTopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAyMDUuNDc3MiBjbQ0K
LVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxODEuNDc3MiBjbQ0KLTAgMCAwIHJnDQotQlQgL0Yx
IDEwIFRmIDEyIFRMIEVUDQotQlQgMSAwIDAgMSAwIDIgVG0gIFQqIEVUDQotcQ0KLTEgMCAwIDEg
MjAgMCBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0gLjEyNjIzNSBUdyAxMiBUTCAvRjEgMTAg
VGYgMCAwIDAgcmcgKEV2ZW4gdGhvdWdoIHdlIHVzZSB0aGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAg
cmcgKGNsYXNzICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChzeW50YXggdG8gY3JlYXRlIEVudW1z
LCBFbnVtcyBhcmUgbm90IG5vcm1hbCBQeXRob24gY2xhc3Nlcy4gU2VlKSBUaiBUKiAwIFR3IDAg
MCAuNTAxOTYxIHJnIChIb3cgYXJlIEVudW1zIGRpZmZlcmVudD8gKSBUaiAwIDAgMCByZyAoZm9y
IG1vcmUgZGV0YWlscy4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotUQ0KLVENCi1xDQotMSAwIDAg
MSA2Mi42OTI5MSAxODEuNDc3MiBjbQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxNjMuNDc3
MiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAyIFRtIC9GMSAxMCBUZiAxMiBUTCAo
RW51bWVyYXRpb24gbWVtYmVycyBoYXZlIGh1bWFuIHJlYWRhYmxlIHN0cmluZyByZXByZXNlbnRh
dGlvbnM6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMTE4LjI3NzIg
Y20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXEN
Ci0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2
Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggMzYgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEg
MCAxNCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBw
cmludFwoQ29sb3IucmVkXCkpIFRqIFQqIChDb2xvci5yZWQpIFRqIFQqIEVUDQotUQ0KLVENCi1R
DQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA5OC4yNzcxNyBjbQ0KLXENCi1CVCAxIDAg
MCAxIDAgMiBUbSAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKC4uLndoaWxlIHRoZWlyICkgVGog
L0Y0IDEwIFRmIDAgMCAwIHJnIChyZXByICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChoYXMgbW9y
ZSBpbmZvcm1hdGlvbjopIFRqIFQqIEVUDQotUQ0KLVENCi0gDQotZW5kc3RyZWFtDQotZW5kb2Jq
DQotNTcgMCBvYmoNCi08PCAvTGVuZ3RoIDQxNzQgPj4NCi1zdHJlYW0NCi0xIDAgMCAxIDAgMCBj
bSAgQlQgL0YxIDEyIFRmIDE0LjQgVEwgRVQNCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA3MjcuODIz
NiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQot
cQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAu
ODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCAzNiByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAg
MSAwIDE0IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAo
IHByaW50XChyZXByXChDb2xvci5yZWRcKVwpKSBUaiBUKiAoPCkgVGogKENvbG9yLnJlZDogMSkg
VGogKD4pIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5
MSA3MDcuODIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMiBUbSAxMiBUTCAvRjEgMTAgVGYgMCAw
IDAgcmcgKFRoZSApIFRqIC9GNSAxMCBUZiAodHlwZSApIFRqIC9GMSAxMCBUZiAob2YgYW4gZW51
bWVyYXRpb24gbWVtYmVyIGlzIHRoZSBlbnVtZXJhdGlvbiBpdCBiZWxvbmdzIHRvOikgVGogVCog
RVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDYyNi42MjM2IGNtDQotcQ0KLXENCi0x
IDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYy
NzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02
IC02IDQ2OC42ODk4IDcyIHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgNTAgVG0gMTIgVEwg
L0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggdHlwZVwoQ29sb3IucmVk
XCkpIFRqIFQqICg8KSBUaiAoZW51bSAnQ29sb3InKSBUaiAoPikgVGogIFQqICg+KSBUaiAoPikg
VGogKD4pIFRqICggaXNpbnN0YW5jZVwoQ29sb3IuZ3JlZW4sIENvbG9yXCkpIFRqIFQqIChUcnVl
KSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQot
cQ0KLTEgMCAwIDEgNjIuNjkyOTEgNjA2LjYyMzYgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAg
MCAxIDAgMiBUbSAvRjEgMTAgVGYgMTIgVEwgKEVudW0gbWVtYmVycyBhbHNvIGhhdmUgYSBwcm9w
ZXJ0eSB0aGF0IGNvbnRhaW5zIGp1c3QgdGhlaXIgaXRlbSBuYW1lOikgVGogVCogRVQNCi1RDQot
UQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU2MS40MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAg
MCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3
NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42
ODk4IDM2IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0gMTIgVEwgL0Y0IDEwIFRm
IDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggcHJpbnRcKENvbG9yLnJlZC5uYW1lXCkp
IFRqIFQqIChyZWQpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2
Mi42OTI5MSA1MjkuNDIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0gLjQ2NDk4NSBUdyAx
MiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKEVudW1lcmF0aW9ucyBzdXBwb3J0IGl0ZXJhdGlvbi4g
SW4gUHl0aG9uIDMueCBkZWZpbml0aW9uIG9yZGVyIGlzIHVzZWQ7IGluIFB5dGhvbiAyLnggdGhl
IGRlZmluaXRpb24gb3JkZXIgaXMpIFRqIFQqIDAgVHcgKG5vdCBhdmFpbGFibGUsIGJ1dCBjbGFz
cyBhdHRyaWJ1dGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKF9fb3JkZXJfXyApIFRqIC9GMSAx
MCBUZiAwIDAgMCByZyAoaXMgc3VwcG9ydGVkOyBvdGhlcndpc2UsIHZhbHVlIG9yZGVyIGlzIHVz
ZWQ6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMzQwLjIyMzYgY20N
Ci1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0u
NjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0
NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggMTgwIHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAg
MTU4IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNs
YXNzIFNoYWtlXChFbnVtXCk6KSBUaiBUKiAoLi4uICAgX19vcmRlcl9fID0gJ3ZhbmlsbGEgY2hv
Y29sYXRlIGNvb2tpZXMgbWludCcgICMgb25seSBuZWVkZWQgaW4gMi54KSBUaiBUKiAoLi4uICAg
dmFuaWxsYSA9IDcpIFRqIFQqICguLi4gICBjaG9jb2xhdGUgPSA0KSBUaiBUKiAoLi4uICAgY29v
a2llcyA9IDkpIFRqIFQqICguLi4gICBtaW50ID0gMykgVGogVCogKC4uLikgVGogVCogKD4pIFRq
ICg+KSBUaiAoPikgVGogKCBmb3Igc2hha2UgaW4gU2hha2U6KSBUaiBUKiAoLi4uICAgcHJpbnRc
KHNoYWtlXCkpIFRqIFQqICguLi4pIFRqIFQqIChTaGFrZS52YW5pbGxhKSBUaiBUKiAoU2hha2Uu
Y2hvY29sYXRlKSBUaiBUKiAoU2hha2UuY29va2llcykgVGogVCogKFNoYWtlLm1pbnQpIFRqIFQq
IEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAzMDguMjIzNiBj
bQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0gMS44OTM3MzUgVHcgMTIgVEwgL0YxIDEwIFRmIDAg
MCAwIHJnIChUaGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKF9fb3JkZXJfXyApIFRqIC9GMSAx
MCBUZiAwIDAgMCByZyAoYXR0cmlidXRlIGlzIGFsd2F5cyByZW1vdmVkLCBhbmQgaW4gMy54IGl0
IGlzIGFsc28gaWdub3JlZCBcKG9yZGVyIGlzIGRlZmluaXRpb24gb3JkZXJcKTspIFRqIFQqIDAg
VHcgKGhvd2V2ZXIsIGluIHRoZSBzdGRsaWIgdmVyc2lvbiBpdCB3aWxsIGJlIGlnbm9yZWQgYnV0
IG5vdCByZW1vdmVkLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDI5
MC4yMjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEy
IFRMIChFbnVtZXJhdGlvbiBtZW1iZXJzIGFyZSBoYXNoYWJsZSwgc28gdGhleSBjYW4gYmUgdXNl
ZCBpbiBkaWN0aW9uYXJpZXMgYW5kIHNldHM6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAw
IDEgNjIuNjkyOTEgMjA5LjAyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEg
MCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcN
Ci0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggNzIgcmUgQioN
Ci1RDQotcQ0KLUJUIDEgMCAwIDEgMCA1MCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4p
IFRqICg+KSBUaiAoPikgVGogKCBhcHBsZXMgPSB7fSkgVGogVCogKD4pIFRqICg+KSBUaiAoPikg
VGogKCBhcHBsZXNbQ29sb3IucmVkXSA9ICdyZWQgZGVsaWNpb3VzJykgVGogVCogKD4pIFRqICg+
KSBUaiAoPikgVGogKCBhcHBsZXNbQ29sb3IuZ3JlZW5dID0gJ2dyYW5ueSBzbWl0aCcpIFRqIFQq
ICg+KSBUaiAoPikgVGogKD4pIFRqICggYXBwbGVzID09IHtDb2xvci5yZWQ6ICdyZWQgZGVsaWNp
b3VzJywgQ29sb3IuZ3JlZW46ICdncmFubnkgc21pdGgnfSkgVGogVCogKFRydWUpIFRqIFQqIEVU
DQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxNTUuMDIzNiBjbQ0K
LXENCi1CVCAxIDAgMCAxIDAgMjQuNSBUbSAyMSBUTCAvRjMgMTcuNSBUZiAwIDAgMCByZyAoUHJv
Z3JhbW1hdGljIGFjY2VzcyB0byBlbnVtZXJhdGlvbiBtZW1iZXJzIGFuZCkgVGogVCogKHRoZWly
IGF0dHJpYnV0ZXMpIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxMTMu
MDIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMjYgVG0gMy41NDE3OTcgVHcgMTIgVEwgL0YxIDEw
IFRmIDAgMCAwIHJnIChTb21ldGltZXMgaXQncyB1c2VmdWwgdG8gYWNjZXNzIG1lbWJlcnMgaW4g
ZW51bWVyYXRpb25zIHByb2dyYW1tYXRpY2FsbHkgXChpLmUuIHNpdHVhdGlvbnMgd2hlcmUpIFRq
IFQqIDAgVHcgLjkyMjY1MSBUdyAvRjQgMTAgVGYgMCAwIDAgcmcgKENvbG9yLnJlZCApIFRqIC9G
MSAxMCBUZiAwIDAgMCByZyAod29uJ3QgZG8gYmVjYXVzZSB0aGUgZXhhY3QgY29sb3IgaXMgbm90
IGtub3duIGF0IHByb2dyYW0td3JpdGluZyB0aW1lXCkuICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJn
IChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChhbGxvd3Mgc3VjaCkgVGogVCogMCBUdyAo
YWNjZXNzOikgVGogVCogRVQNCi1RDQotUQ0KLSANCi1lbmRzdHJlYW0NCi1lbmRvYmoNCi01OCAw
IG9iag0KLTw8IC9MZW5ndGggMzc5MSA+Pg0KLXN0cmVhbQ0KLTEgMCAwIDEgMCAwIGNtICBCVCAv
RjEgMTIgVGYgMTQuNCBUTCBFVA0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDcwMy44MjM2IGNtDQot
cQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2
Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUg
cmcNCi1uIC02IC02IDQ2OC42ODk4IDYwIHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMzgg
VG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggQ29sb3Jc
KDFcKSkgVGogVCogKDwpIFRqIChDb2xvci5yZWQ6IDEpIFRqICg+KSBUaiAgVCogKD4pIFRqICg+
KSBUaiAoPikgVGogKCBDb2xvclwoM1wpKSBUaiBUKiAoPCkgVGogKENvbG9yLmJsdWU6IDMpIFRq
ICg+KSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEg
NjgzLjgyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDIgVG0gMTIgVEwgL0YxIDEwIFRmIDAgMCAw
IHJnIChJZiB5b3Ugd2FudCB0byBhY2Nlc3MgZW51bSBtZW1iZXJzIGJ5ICkgVGogL0Y1IDEwIFRm
IChuYW1lKSBUaiAvRjEgMTAgVGYgKCwgdXNlIGl0ZW0gYWNjZXNzOikgVGogVCogRVQNCi1RDQot
UQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDYxNC42MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAg
MCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3
NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42
ODk4IDYwIHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMzggVG0gMTIgVEwgL0Y0IDEwIFRm
IDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggQ29sb3JbJ3JlZCddKSBUaiBUKiAoPCkg
VGogKENvbG9yLnJlZDogMSkgVGogKD4pIFRqICBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIENv
bG9yWydncmVlbiddKSBUaiBUKiAoPCkgVGogKENvbG9yLmdyZWVuOiAyKSBUaiAoPikgVGogVCog
RVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU5NC42MjM2IGNt
DQotcQ0KLUJUIDEgMCAwIDEgMCAyIFRtIDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoSWYgaGF2
ZSBhbiBlbnVtIG1lbWJlciBhbmQgbmVlZCBpdHMgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKG5h
bWUgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG9yICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnICh2
YWx1ZSkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICg6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEg
MCAwIDEgNjIuNjkyOTEgNTEzLjQyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0K
LTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41
IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggNzIgcmUg
QioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCA1MCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcg
KD4pIFRqICg+KSBUaiAoPikgVGogKCBtZW1iZXIgPSBDb2xvci5yZWQpIFRqIFQqICg+KSBUaiAo
PikgVGogKD4pIFRqICggbWVtYmVyLm5hbWUpIFRqIFQqICgncmVkJykgVGogVCogKD4pIFRqICg+
KSBUaiAoPikgVGogKCBtZW1iZXIudmFsdWUpIFRqIFQqICgxKSBUaiBUKiBFVA0KLVENCi1RDQot
UQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNDgwLjQyMzYgY20NCi1xDQotQlQgMSAw
IDAgMSAwIDMuNSBUbSAyMSBUTCAvRjMgMTcuNSBUZiAwIDAgMCByZyAoRHVwbGljYXRpbmcgZW51
bSBtZW1iZXJzIGFuZCB2YWx1ZXMpIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42
OTI5MSA0NTAuNDIzNiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAxNCBUbSAvRjEg
MTAgVGYgMTIgVEwgLjEzODMyIFR3IChIYXZpbmcgdHdvIGVudW0gbWVtYmVycyBcKG9yIGFueSBv
dGhlciBhdHRyaWJ1dGVcKSB3aXRoIHRoZSBzYW1lIG5hbWUgaXMgaW52YWxpZDsgaW4gUHl0aG9u
IDMueCB0aGlzIHdvdWxkKSBUaiBUKiAwIFR3IChyYWlzZSBhbiBlcnJvciwgYnV0IGluIFB5dGhv
biAyLnggdGhlIHNlY29uZCBtZW1iZXIgc2ltcGx5IG92ZXJ3cml0ZXMgdGhlIGZpcnN0OikgVGog
VCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDI0OS4yMjM2IGNtDQotcQ0KLXEN
Ci0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAu
NjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1u
IC02IC02IDQ2OC42ODk4IDE5MiByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDE3MCBUbSAx
MiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCAjIHB5dGhvbiAy
LngpIFRqIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggY2xhc3MgU2hhcGVcKEVudW1cKTopIFRq
IFQqICguLi4gICBzcXVhcmUgPSAyKSBUaiBUKiAoLi4uICAgc3F1YXJlID0gMykgVGogVCogKC4u
LikgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBTaGFwZS5zcXVhcmUpIFRqIFQqICg8KSBU
aiAoU2hhcGUuc3F1YXJlOiAzKSBUaiAoPikgVGogIFQqICBUKiAoPikgVGogKD4pIFRqICg+KSBU
aiAoICMgcHl0aG9uIDMueCkgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBTaGFw
ZVwoRW51bVwpOikgVGogVCogKC4uLiAgIHNxdWFyZSA9IDIpIFRqIFQqICguLi4gICBzcXVhcmUg
PSAzKSBUaiBUKiAoVHJhY2ViYWNrIFwobW9zdCByZWNlbnQgY2FsbCBsYXN0XCk6KSBUaiBUKiAo
Li4uKSBUaiBUKiAoVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gcmV1c2Uga2V5OiAnc3F1YXJlJykg
VGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDIwNS4y
MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDI2IFRtIC9GMSAxMCBUZiAxMiBU
TCAuMzg0OTg3IFR3IChIb3dldmVyLCB0d28gZW51bSBtZW1iZXJzIGFyZSBhbGxvd2VkIHRvIGhh
dmUgdGhlIHNhbWUgdmFsdWUuIEdpdmVuIHR3byBtZW1iZXJzIEEgYW5kIEIgd2l0aCB0aGUpIFRq
IFQqIDAgVHcgLjQ0NDc3MiBUdyAoc2FtZSB2YWx1ZSBcKGFuZCBBIGRlZmluZWQgZmlyc3RcKSwg
QiBpcyBhbiBhbGlhcyB0byBBLiBCeS12YWx1ZSBsb29rdXAgb2YgdGhlIHZhbHVlIG9mIEEgYW5k
IEIgd2lsbCByZXR1cm4gQS4pIFRqIFQqIDAgVHcgKEJ5LW5hbWUgbG9va3VwIG9mIEIgd2lsbCBh
bHNvIHJldHVybiBBOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDg4
LjAyMzYyIGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYg
Y20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYw
Nzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ5MiAxMDggcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAw
IDEgMCA4NiBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGog
KCBjbGFzcyBTaGFwZVwoRW51bVwpOikgVGogVCogKC4uLiAgIF9fb3JkZXJfXyA9ICdzcXVhcmUg
ZGlhbW9uZCBjaXJjbGUgYWxpYXNfZm9yX3NxdWFyZScgICMgb25seSBuZWVkZWQgaW4gMi54KSBU
aiBUKiAoLi4uICAgc3F1YXJlID0gMikgVGogVCogKC4uLiAgIGRpYW1vbmQgPSAxKSBUaiBUKiAo
Li4uICAgY2lyY2xlID0gMykgVGogVCogKC4uLiAgIGFsaWFzX2Zvcl9zcXVhcmUgPSAyKSBUaiBU
KiAoLi4uKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIFNoYXBlLnNxdWFyZSkgVGogVCog
RVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLSANCi1lbmRzdHJlYW0NCi1lbmRvYmoNCi01OSAwIG9i
ag0KLTw8IC9MZW5ndGggNDQwNiA+Pg0KLXN0cmVhbQ0KLTEgMCAwIDEgMCAwIGNtICBCVCAvRjEg
MTIgVGYgMTQuNCBUTCBFVA0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY5MS44MjM2IGNtDQotcQ0K
LXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0
NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcN
Ci1uIC02IC02IDQ2OC42ODk4IDcyIHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgNTAgVG0g
MTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg8KSBUaiAoU2hhcGUuc3F1YXJlOiAyKSBUaiAoPikg
VGogIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggU2hhcGUuYWxpYXNfZm9yX3NxdWFyZSkgVGog
VCogKDwpIFRqIChTaGFwZS5zcXVhcmU6IDIpIFRqICg+KSBUaiAgVCogKD4pIFRqICg+KSBUaiAo
PikgVGogKCBTaGFwZVwoMlwpKSBUaiBUKiAoPCkgVGogKFNoYXBlLnNxdWFyZTogMikgVGogKD4p
IFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2NTku
ODIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0gMS4wNzQxMDQgVHcgMTIgVEwgL0YxIDEw
IFRmIDAgMCAwIHJnIChBbGxvd2luZyBhbGlhc2VzIGlzIG5vdCBhbHdheXMgZGVzaXJhYmxlLiAp
IFRqIC9GNCAxMCBUZiAwIDAgMCByZyAodW5pcXVlICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChj
YW4gYmUgdXNlZCB0byBlbnN1cmUgdGhhdCBub25lIGV4aXN0IGluIGEgcGFydGljdWxhcikgVGog
VCogMCBUdyAoZW51bWVyYXRpb246KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIu
NjkyOTEgNTA2LjYyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEg
Ni42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYw
Nzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggMTQ0IHJlIEIqDQotUQ0K
LXENCi1CVCAxIDAgMCAxIDAgMTIyIFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGog
KD4pIFRqICg+KSBUaiAoIGZyb20gZW51bSBpbXBvcnQgdW5pcXVlKSBUaiBUKiAoPikgVGogKD4p
IFRqICg+KSBUaiAoIEB1bmlxdWUpIFRqIFQqICguLi4gY2xhc3MgTWlzdGFrZVwoRW51bVwpOikg
VGogVCogKC4uLiAgIF9fb3JkZXJfXyA9ICdvbmUgdHdvIHRocmVlIGZvdXInICAjIG9ubHkgbmVl
ZGVkIGluIDIueCkgVGogVCogKC4uLiAgIG9uZSA9IDEpIFRqIFQqICguLi4gICB0d28gPSAyKSBU
aiBUKiAoLi4uICAgdGhyZWUgPSAzKSBUaiBUKiAoLi4uICAgZm91ciA9IDMpIFRqIFQqIChUcmFj
ZWJhY2sgXChtb3N0IHJlY2VudCBjYWxsIGxhc3RcKTopIFRqIFQqICguLi4pIFRqIFQqIChWYWx1
ZUVycm9yOiBkdXBsaWNhdGUgbmFtZXMgZm91bmQgaW4gKSBUaiAoPCkgVGogKGVudW0gJ01pc3Rh
a2UnKSBUaiAoPikgVGogKDogZm91ciAtKSBUaiAoPikgVGogKCB0aHJlZSkgVGogVCogRVQNCi1R
DQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDQ4Ni42MjM2IGNtDQotcQ0K
LTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIChJdGVyYXRpbmcg
b3ZlciB0aGUgbWVtYmVycyBvZiBhbiBlbnVtIGRvZXMgbm90IHByb3ZpZGUgdGhlIGFsaWFzZXM6
KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNDQxLjQyMzYgY20NCi1x
DQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYy
NzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSBy
Zw0KLW4gLTYgLTYgNDY4LjY4OTggMzYgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBU
bSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBsaXN0XChT
aGFwZVwpKSBUaiBUKiAoWykgVGogKDwpIFRqIChTaGFwZS5zcXVhcmU6IDIpIFRqICg+KSBUaiAo
LCApIFRqICg8KSBUaiAoU2hhcGUuZGlhbW9uZDogMSkgVGogKD4pIFRqICgsICkgVGogKDwpIFRq
IChTaGFwZS5jaXJjbGU6IDMpIFRqICg+KSBUaiAoXSkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1R
DQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDQwOS40MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEg
MCAxNCBUbSAxLjMwNzEyNiBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFRoZSBzcGVjaWFs
IGF0dHJpYnV0ZSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoX19tZW1iZXJzX18gKSBUaiAvRjEg
MTAgVGYgMCAwIDAgcmcgKGlzIGEgZGljdGlvbmFyeSBtYXBwaW5nIG5hbWVzIHRvIG1lbWJlcnMu
IEl0IGluY2x1ZGVzIGFsbCBuYW1lcykgVGogVCogMCBUdyAoZGVmaW5lZCBpbiB0aGUgZW51bWVy
YXRpb24sIGluY2x1ZGluZyB0aGUgYWxpYXNlczopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAw
IDAgMSA2Mi42OTI5MSAzMDQuMjIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQot
MSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUg
dw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCA5NiByZSBC
Kg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDc0IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAo
PikgVGogKD4pIFRqICg+KSBUaiAoIGZvciBuYW1lLCBtZW1iZXIgaW4gc29ydGVkXChTaGFwZS5f
X21lbWJlcnNfXy5pdGVtc1woXClcKTopIFRqIFQqICguLi4gICBuYW1lLCBtZW1iZXIpIFRqIFQq
ICguLi4pIFRqIFQqIChcKCdhbGlhc19mb3Jfc3F1YXJlJywgKSBUaiAoPCkgVGogKFNoYXBlLnNx
dWFyZTogMikgVGogKD4pIFRqIChcKSkgVGogVCogKFwoJ2NpcmNsZScsICkgVGogKDwpIFRqIChT
aGFwZS5jaXJjbGU6IDMpIFRqICg+KSBUaiAoXCkpIFRqIFQqIChcKCdkaWFtb25kJywgKSBUaiAo
PCkgVGogKFNoYXBlLmRpYW1vbmQ6IDEpIFRqICg+KSBUaiAoXCkpIFRqIFQqIChcKCdzcXVhcmUn
LCApIFRqICg8KSBUaiAoU2hhcGUuc3F1YXJlOiAyKSBUaiAoPikgVGogKFwpKSBUaiBUKiBFVA0K
LVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMjcyLjIyMzYgY20NCi1x
DQotQlQgMSAwIDAgMSAwIDE0IFRtIC4wODA3NTEgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJn
IChUaGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKF9fbWVtYmVyc19fICkgVGogL0YxIDEwIFRm
IDAgMCAwIHJnIChhdHRyaWJ1dGUgY2FuIGJlIHVzZWQgZm9yIGRldGFpbGVkIHByb2dyYW1tYXRp
YyBhY2Nlc3MgdG8gdGhlIGVudW1lcmF0aW9uIG1lbWJlcnMuKSBUaiBUKiAwIFR3IChGb3IgZXhh
bXBsZSwgZmluZGluZyBhbGwgdGhlIGFsaWFzZXM6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEg
MCAwIDEgNjIuNjkyOTEgMjI3LjAyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0K
LTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41
IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDg2IDM2IHJlIEIqDQot
UQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBU
aiAoPikgVGogKD4pIFRqICggW25hbWUgZm9yIG5hbWUsIG1lbWJlciBpbiBTaGFwZS5fX21lbWJl
cnNfXy5pdGVtc1woXCkgaWYgbWVtYmVyLm5hbWUgIT0gbmFtZV0pIFRqIFQqIChbJ2FsaWFzX2Zv
cl9zcXVhcmUnXSkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDE5NC4wMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAzLjUgVG0gMjEgVEwgL0YzIDE3
LjUgVGYgMCAwIDAgcmcgKENvbXBhcmlzb25zKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAw
IDEgNjIuNjkyOTEgMTc2LjAyMzYgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBU
bSAvRjEgMTAgVGYgMTIgVEwgKEVudW1lcmF0aW9uIG1lbWJlcnMgYXJlIGNvbXBhcmVkIGJ5IGlk
ZW50aXR5OikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDgyLjgyMzYy
IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1x
DQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44
NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDg0IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAx
IDAgNjIgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICgg
Q29sb3IucmVkIGlzIENvbG9yLnJlZCkgVGogVCogKFRydWUpIFRqIFQqICg+KSBUaiAoPikgVGog
KD4pIFRqICggQ29sb3IucmVkIGlzIENvbG9yLmJsdWUpIFRqIFQqIChGYWxzZSkgVGogVCogKD4p
IFRqICg+KSBUaiAoPikgVGogKCBDb2xvci5yZWQgaXMgbm90IENvbG9yLmJsdWUpIFRqIFQqIChU
cnVlKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotIA0KLWVuZHN0cmVhbQ0KLWVuZG9i
ag0KLTYwIDAgb2JqDQotPDwgL0xlbmd0aCA0NTIxID4+DQotc3RyZWFtDQotMSAwIDAgMSAwIDAg
Y20gIEJUIC9GMSAxMiBUZiAxNC40IFRMIEVUDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNzQxLjAy
MzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIDEuMTMxNjQ3IFR3IDEyIFRMIC9GMSAxMCBU
ZiAwIDAgMCByZyAoT3JkZXJlZCBjb21wYXJpc29ucyBiZXR3ZWVuIGVudW1lcmF0aW9uIHZhbHVl
cyBhcmUgKSBUaiAvRjUgMTAgVGYgKG5vdCApIFRqIC9GMSAxMCBUZiAoc3VwcG9ydGVkLiBFbnVt
IG1lbWJlcnMgYXJlIG5vdCBpbnRlZ2VycykgVGogVCogMCBUdyAoXChidXQgc2VlICkgVGogMCAw
IC41MDE5NjEgcmcgKEludEVudW0gKSBUaiAwIDAgMCByZyAoYmVsb3dcKTopIFRqIFQqIEVUDQot
UQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2NzEuODIzNiBjbQ0KLXENCi1xDQotMSAwIDAg
MSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAu
NjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0
NjguNjg5OCA2MCByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDM4IFRtIDEyIFRMIC9GNCAx
MCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIENvbG9yLnJlZCApIFRqICg8KSBU
aiAoIENvbG9yLmJsdWUpIFRqIFQqIChUcmFjZWJhY2sgXChtb3N0IHJlY2VudCBjYWxsIGxhc3Rc
KTopIFRqIFQqICggIEZpbGUgIikgVGogKDwpIFRqIChzdGRpbikgVGogKD4pIFRqICgiLCBsaW5l
IDEsIGluICkgVGogKDwpIFRqIChtb2R1bGUpIFRqICg+KSBUaiAgVCogKFR5cGVFcnJvcjogdW5v
cmRlcmFibGUgdHlwZXM6IENvbG9yXChcKSApIFRqICg8KSBUaiAoIENvbG9yXChcKSkgVGogVCog
RVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY1MS44MjM2IGNt
DQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU2OC44MjM2IGNtDQotLjk2MDc4NCAuOTYwNzg0
IC44NjI3NDUgcmcNCi1uIDAgODMgNDY5Ljg4OTggLTgzIHJlIGYqDQotMCAwIDAgcmcNCi1CVCAv
RjEgMTAgVGYgMTIgVEwgRVQNCi1CVCAxIDAgMCAxIDYgNTcgVG0gIFQqIEVUDQotcQ0KLTEgMCAw
IDEgMTYgNTIgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMi41IFRtIC9GNiAxMi41
IFRmIDE1IFRMIChXYXJuaW5nKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgMTYgMTYg
Y20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIC4xODkzOTggVHcgMTIgVEwgL0YxIDEwIFRmIDAg
MCAwIHJnIChJbiBQeXRob24gMiApIFRqIC9GNSAxMCBUZiAoZXZlcnl0aGluZyApIFRqIC9GMSAx
MCBUZiAoaXMgb3JkZXJlZCwgZXZlbiB0aG91Z2ggdGhlIG9yZGVyaW5nIG1heSBub3QgbWFrZSBz
ZW5zZS4gSWYgeW91IHdhbnQgeW91cikgVGogVCogMCBUdyAoZW51bWVyYXRpb25zIHRvIGhhdmUg
YSBzZW5zaWJsZSBvcmRlcmluZyBjaGVjayBvdXQgdGhlICkgVGogMCAwIC41MDE5NjEgcmcgKE9y
ZGVyZWRFbnVtICkgVGogMCAwIDAgcmcgKHJlY2lwZSBiZWxvdy4pIFRqIFQqIEVUDQotUQ0KLVEN
Ci1xDQotMSBKDQotMSBqDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotbiAw
IDgzIG0gNDY5Ljg4OTggODMgbCBTDQotbiAwIDAgbSA0NjkuODg5OCAwIGwgUw0KLW4gMCAwIG0g
MCA4MyBsIFMNCi1uIDQ2OS44ODk4IDAgbSA0NjkuODg5OCA4MyBsIFMNCi1RDQotUQ0KLXENCi0x
IDAgMCAxIDYyLjY5MjkxIDU2Mi44MjM2IGNtDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU0
NC44MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEy
IFRMIChFcXVhbGl0eSBjb21wYXJpc29ucyBhcmUgZGVmaW5lZCB0aG91Z2g6KSBUaiBUKiBFVA0K
LVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNDUxLjYyMzYgY20NCi1xDQotcQ0KLTEgMCAw
IDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUg
LjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYg
NDY4LjY4OTggODQgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCA2MiBUbSAxMiBUTCAvRjQg
MTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBDb2xvci5ibHVlID09IENvbG9y
LnJlZCkgVGogVCogKEZhbHNlKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIENvbG9yLmJs
dWUgIT0gQ29sb3IucmVkKSBUaiBUKiAoVHJ1ZSkgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGog
KCBDb2xvci5ibHVlID09IENvbG9yLmJsdWUpIFRqIFQqIChUcnVlKSBUaiBUKiBFVA0KLVENCi1R
DQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNDE5LjYyMzYgY20NCi1xDQotQlQg
MSAwIDAgMSAwIDE0IFRtIDIuNTgyNzA2IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoQ29t
cGFyaXNvbnMgYWdhaW5zdCBub24tZW51bWVyYXRpb24gdmFsdWVzIHdpbGwgYWx3YXlzIGNvbXBh
cmUgbm90IGVxdWFsIFwoYWdhaW4sICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChJbnRFbnVtICkg
VGogL0YxIDEwIFRmIDAgMCAwIHJnICh3YXMpIFRqIFQqIDAgVHcgKGV4cGxpY2l0bHkgZGVzaWdu
ZWQgdG8gYmVoYXZlIGRpZmZlcmVudGx5LCBzZWUgYmVsb3dcKTopIFRqIFQqIEVUDQotUQ0KLVEN
Ci1xDQotMSAwIDAgMSA2Mi42OTI5MSAzNzQuNDIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAg
Y20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1
IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5
OCAzNiByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIDEyIFRMIC9GNCAxMCBUZiAw
IDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIENvbG9yLmJsdWUgPT0gMikgVGogVCogKEZh
bHNlKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEg
MzQxLjQyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDMuNSBUbSAyMSBUTCAvRjMgMTcuNSBUZiAw
IDAgMCByZyAoQWxsb3dlZCBtZW1iZXJzIGFuZCBhdHRyaWJ1dGVzIG9mIGVudW1lcmF0aW9ucykg
VGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDI4Ny40MjM2IGNtDQotcQ0K
LUJUIDEgMCAwIDEgMCAzOCBUbSAyLjc1NTY5NyBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcg
KFRoZSBleGFtcGxlcyBhYm92ZSB1c2UgaW50ZWdlcnMgZm9yIGVudW1lcmF0aW9uIHZhbHVlcy4g
VXNpbmcgaW50ZWdlcnMgaXMgc2hvcnQgYW5kIGhhbmR5IFwoYW5kKSBUaiBUKiAwIFR3IC4yNDE3
NTEgVHcgKHByb3ZpZGVkIGJ5IGRlZmF1bHQgYnkgdGhlICkgVGogMCAwIC41MDE5NjEgcmcgKEZ1
bmN0aW9uYWwgQVBJKSBUaiAwIDAgMCByZyAoXCksIGJ1dCBub3Qgc3RyaWN0bHkgZW5mb3JjZWQu
IEluIHRoZSB2YXN0IG1ham9yaXR5IG9mIHVzZS1jYXNlcywgb25lKSBUaiBUKiAwIFR3IC44NDgy
MjEgVHcgKGRvZXNuJ3QgY2FyZSB3aGF0IHRoZSBhY3R1YWwgdmFsdWUgb2YgYW4gZW51bWVyYXRp
b24gaXMuIEJ1dCBpZiB0aGUgdmFsdWUgKSBUaiAvRjUgMTAgVGYgKGlzICkgVGogL0YxIDEwIFRm
IChpbXBvcnRhbnQsIGVudW1lcmF0aW9ucyBjYW4pIFRqIFQqIDAgVHcgKGhhdmUgYXJiaXRyYXJ5
IHZhbHVlcy4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAyNTcuNDIz
NiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAxNCBUbSAvRjEgMTAgVGYgMTIgVEwg
LjYzODczNSBUdyAoRW51bWVyYXRpb25zIGFyZSBQeXRob24gY2xhc3NlcywgYW5kIGNhbiBoYXZl
IG1ldGhvZHMgYW5kIHNwZWNpYWwgbWV0aG9kcyBhcyB1c3VhbC4gSWYgd2UgaGF2ZSB0aGlzKSBU
aiBUKiAwIFR3IChlbnVtZXJhdGlvbjopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2
Mi42OTI5MSA4MC4yMjM2MiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAg
MSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45
NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCAxNjggcmUgQioNCi1R
DQotcQ0KLUJUIDEgMCAwIDEgMCAxNDYgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBU
aiAoPikgVGogKD4pIFRqICggY2xhc3MgTW9vZFwoRW51bVwpOikgVGogVCogKC4uLiAgIGZ1bmt5
ID0gMSkgVGogVCogKC4uLiAgIGhhcHB5ID0gMykgVGogVCogKC4uLikgVGogVCogKC4uLiAgIGRl
ZiBkZXNjcmliZVwoc2VsZlwpOikgVGogVCogKC4uLiAgICAgIyBzZWxmIGlzIHRoZSBtZW1iZXIg
aGVyZSkgVGogVCogKC4uLiAgICAgcmV0dXJuIHNlbGYubmFtZSwgc2VsZi52YWx1ZSkgVGogVCog
KC4uLikgVGogVCogKC4uLiAgIGRlZiBfX3N0cl9fXChzZWxmXCk6KSBUaiBUKiAoLi4uICAgICBy
ZXR1cm4gJ215IGN1c3RvbSBzdHIhIHswfScuZm9ybWF0XChzZWxmLnZhbHVlXCkpIFRqIFQqICgu
Li4pIFRqIFQqICguLi4gICBAY2xhc3NtZXRob2QpIFRqIFQqICguLi4gICBkZWYgZmF2b3JpdGVf
bW9vZFwoY2xzXCk6KSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotIA0KLWVuZHN0cmVh
bQ0KLWVuZG9iag0KLTYxIDAgb2JqDQotPDwgL0xlbmd0aCA0NjI3ID4+DQotc3RyZWFtDQotMSAw
IDAgMSAwIDAgY20gIEJUIC9GMSAxMiBUZiAxNC40IFRMIEVUDQotcQ0KLTEgMCAwIDEgNjIuNjky
OTEgNzI3LjgyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42
IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0
IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggMzYgcmUgQioNCi1RDQotcQ0K
LUJUIDEgMCAwIDEgMCAxNCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKC4uLiAgICAgIyBj
bHMgaGVyZSBpcyB0aGUgZW51bWVyYXRpb24pIFRqIFQqICguLi4gICAgIHJldHVybiBjbHMuaGFw
cHkpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA3
MDcuODIzNiBjbQ0KLXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAyIFRtIC9GMSAxMCBUZiAx
MiBUTCAoVGhlbjopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2MTQu
NjIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNt
DQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4
NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCA4NCByZSBCKg0KLVENCi1xDQotQlQgMSAw
IDAgMSAwIDYyIFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBU
aiAoIE1vb2QuZmF2b3JpdGVfbW9vZFwoXCkpIFRqIFQqICg8KSBUaiAoTW9vZC5oYXBweTogMykg
VGogKD4pIFRqICBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIE1vb2QuaGFwcHkuZGVzY3JpYmVc
KFwpKSBUaiBUKiAoXCgnaGFwcHknLCAzXCkpIFRqIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICgg
c3RyXChNb29kLmZ1bmt5XCkpIFRqIFQqICgnbXkgY3VzdG9tIHN0ciEgMScpIFRqIFQqIEVUDQot
UQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA1NTguNjIzNiBjbQ0KLXEN
Ci1CVCAxIDAgMCAxIDAgMzggVG0gMy4xNDE4NiBUdyAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcg
KFRoZSBydWxlcyBmb3Igd2hhdCBpcyBhbGxvd2VkIGFyZSBhcyBmb2xsb3dzOiBfc3VuZGVyXyBu
YW1lcyBcKHN0YXJ0aW5nIGFuZCBlbmRpbmcgd2l0aCBhIHNpbmdsZSkgVGogVCogMCBUdyAuMzEw
NjUxIFR3ICh1bmRlcnNjb3JlXCkgYXJlIHJlc2VydmVkIGJ5IGVudW0gYW5kIGNhbm5vdCBiZSB1
c2VkOyBhbGwgb3RoZXIgYXR0cmlidXRlcyBkZWZpbmVkIHdpdGhpbiBhbiBlbnVtZXJhdGlvbikg
VGogVCogMCBUdyAyLjE5OTIxMyBUdyAod2lsbCBiZWNvbWUgbWVtYmVycyBvZiB0aGlzIGVudW1l
cmF0aW9uLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgKSBUaiAvRjUgMTAgVGYgKF9fZHVuZGVyX18g
KSBUaiAvRjEgMTAgVGYgKG5hbWVzIGFuZCBkZXNjcmlwdG9ycykgVGogVCogMCBUdyAoXChtZXRo
b2RzIGFyZSBhbHNvIGRlc2NyaXB0b3JzXCkuKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAw
IDEgNjIuNjkyOTEgNTQwLjYyMzYgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBU
bSAvRjEgMTAgVGYgMTIgVEwgKE5vdGU6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEg
NjIuNjkyOTEgNTM0LjYyMzYgY20NCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNTEwLjYyMzYg
Y20NCi0wIDAgMCByZw0KLUJUIC9GMSAxMCBUZiAxMiBUTCBFVA0KLUJUIDEgMCAwIDEgMCAyIFRt
ICBUKiBFVA0KLXENCi0xIDAgMCAxIDIwIDAgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIC45
NzkyMTMgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChJZiB5b3VyIGVudW1lcmF0aW9uIGRl
ZmluZXMgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKF9fbmV3X18gKSBUaiAvRjEgMTAgVGYgMCAw
IDAgcmcgKGFuZC9vciApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoX19pbml0X18gKSBUaiAvRjEg
MTAgVGYgMCAwIDAgcmcgKHRoZW4gd2hhdGV2ZXIgdmFsdWVcKHNcKSB3ZXJlIGdpdmVuIHRvIHRo
ZSkgVGogVCogMCBUdyAoZW51bSBtZW1iZXIgd2lsbCBiZSBwYXNzZWQgaW50byB0aG9zZSBtZXRo
b2RzLiBTZWUgKSBUaiAwIDAgLjUwMTk2MSByZyAoUGxhbmV0ICkgVGogMCAwIDAgcmcgKGZvciBh
biBleGFtcGxlLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDUxMC42MjM2IGNtDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDQ3Ny42MjM2IGNt
DQotcQ0KLUJUIDEgMCAwIDEgMCAzLjUgVG0gMjEgVEwgL0YzIDE3LjUgVGYgMCAwIDAgcmcgKFJl
c3RyaWN0ZWQgc3ViY2xhc3Npbmcgb2YgZW51bWVyYXRpb25zKSBUaiBUKiBFVA0KLVENCi1RDQot
cQ0KLTEgMCAwIDEgNjIuNjkyOTEgNDQ3LjYyMzYgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAg
MCAxIDAgMTQgVG0gL0YxIDEwIFRmIDEyIFRMIC43Nzg3MzUgVHcgKFN1YmNsYXNzaW5nIGFuIGVu
dW1lcmF0aW9uIGlzIGFsbG93ZWQgb25seSBpZiB0aGUgZW51bWVyYXRpb24gZG9lcyBub3QgZGVm
aW5lIGFueSBtZW1iZXJzLiBTbyB0aGlzIGlzKSBUaiBUKiAwIFR3IChmb3JiaWRkZW46KSBUaiBU
KiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMzY2LjQyMzYgY20NCi1xDQotcQ0K
LTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42
NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4g
LTYgLTYgNDY4LjY4OTggNzIgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCA1MCBUbSAxMiBU
TCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBNb3JlQ29s
b3JcKENvbG9yXCk6KSBUaiBUKiAoLi4uICAgcGluayA9IDE3KSBUaiBUKiAoVHJhY2ViYWNrIFwo
bW9zdCByZWNlbnQgY2FsbCBsYXN0XCk6KSBUaiBUKiAoLi4uKSBUaiBUKiAoVHlwZUVycm9yOiBD
YW5ub3QgZXh0ZW5kIGVudW1lcmF0aW9ucykgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0K
LXENCi0xIDAgMCAxIDYyLjY5MjkxIDM0Ni40MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAw
IDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIChCdXQgdGhpcyBpcyBhbGxvd2VkOikgVGogVCog
RVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDIyOS4yMjM2IGNtDQotcQ0KLXENCi0x
IDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYy
NzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02
IC02IDQ2OC42ODk4IDEwOCByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDg2IFRtIDEyIFRM
IC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNsYXNzIEZvb1woRW51
bVwpOikgVGogVCogKC4uLiAgIGRlZiBzb21lX2JlaGF2aW9yXChzZWxmXCk6KSBUaiBUKiAoLi4u
ICAgICBwYXNzKSBUaiBUKiAoLi4uKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNsYXNz
IEJhclwoRm9vXCk6KSBUaiBUKiAoLi4uICAgaGFwcHkgPSAxKSBUaiBUKiAoLi4uICAgc2FkID0g
MikgVGogVCogKC4uLikgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAx
IDYyLjY5MjkxIDE4NS4yMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyNiBUbSAuMTI3OTg0IFR3
IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoQWxsb3dpbmcgc3ViY2xhc3Npbmcgb2YgZW51bXMg
dGhhdCBkZWZpbmUgbWVtYmVycyB3b3VsZCBsZWFkIHRvIGEgdmlvbGF0aW9uIG9mIHNvbWUgaW1w
b3J0YW50IGludmFyaWFudHMpIFRqIFQqIDAgVHcgMS44ODk5ODUgVHcgKG9mIHR5cGVzIGFuZCBp
bnN0YW5jZXMuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCBtYWtlcyBzZW5zZSB0byBhbGxvdyBzaGFy
aW5nIHNvbWUgY29tbW9uIGJlaGF2aW9yKSBUaiBUKiAwIFR3IChiZXR3ZWVuIGEgZ3JvdXAgb2Yg
ZW51bWVyYXRpb25zLiBcKFNlZSApIFRqIDAgMCAuNTAxOTYxIHJnIChPcmRlcmVkRW51bSApIFRq
IDAgMCAwIHJnIChmb3IgYW4gZXhhbXBsZS5cKSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDE1Mi4yMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAzLjUgVG0gMjEgVEwg
L0YzIDE3LjUgVGYgMCAwIDAgcmcgKFBpY2tsaW5nKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEg
MCAwIDEgNjIuNjkyOTEgMTM0LjIyMzYgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAg
MiBUbSAvRjEgMTAgVGYgMTIgVEwgKEVudW1lcmF0aW9ucyBjYW4gYmUgcGlja2xlZCBhbmQgdW5w
aWNrbGVkOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDg5LjAyMzYy
IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1x
DQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44
NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDM2IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAx
IDAgMTQgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICgg
ZnJvbSBlbnVtLnRlc3RfZW51bSBpbXBvcnQgRnJ1aXQpIFRqIFQqICg+KSBUaiAoPikgVGogKD4p
IFRqICggZnJvbSBwaWNrbGUgaW1wb3J0IGR1bXBzLCBsb2FkcykgVGogVCogRVQNCi1RDQotUQ0K
LVENCi1RDQotUQ0KLSANCi1lbmRzdHJlYW0NCi1lbmRvYmoNCi02MiAwIG9iag0KLTw8IC9MZW5n
dGggNTM3MiA+Pg0KLXN0cmVhbQ0KLTEgMCAwIDEgMCAwIGNtICBCVCAvRjEgMTIgVGYgMTQuNCBU
TCBFVA0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDcyNy44MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAx
IDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42
NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2
OC42ODk4IDM2IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0gMTIgVEwgL0Y0IDEw
IFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggRnJ1aXQudG9tYXRvIGlzIGxvYWRz
XChkdW1wc1woRnJ1aXQudG9tYXRvLCAyXClcKSkgVGogVCogKFRydWUpIFRqIFQqIEVUDQotUQ0K
LVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2OTUuODIzNiBjbQ0KLXENCi0w
IDAgMCByZw0KLUJUIDEgMCAwIDEgMCAxNCBUbSAvRjEgMTAgVGYgMTIgVEwgMS4yNTY0NTcgVHcg
KFRoZSB1c3VhbCByZXN0cmljdGlvbnMgZm9yIHBpY2tsaW5nIGFwcGx5OiBwaWNrbGFibGUgZW51
bXMgbXVzdCBiZSBkZWZpbmVkIGluIHRoZSB0b3AgbGV2ZWwgb2YgYSBtb2R1bGUsKSBUaiBUKiAw
IFR3IChzaW5jZSB1bnBpY2tsaW5nIHJlcXVpcmVzIHRoZW0gdG8gYmUgaW1wb3J0YWJsZSBmcm9t
IHRoYXQgbW9kdWxlLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY3
Ny44MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEy
IFRMIChOb3RlOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY3MS44
MjM2IGNtDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY0Ny44MjM2IGNtDQotMCAwIDAgcmcN
Ci1CVCAvRjEgMTAgVGYgMTIgVEwgRVQNCi1CVCAxIDAgMCAxIDAgMiBUbSAgVCogRVQNCi1xDQot
MSAwIDAgMSAyMCAwIGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDE0IFRtIC9GMSAx
MCBUZiAxMiBUTCAuMDgxMTYzIFR3IChXaXRoIHBpY2tsZSBwcm90b2NvbCB2ZXJzaW9uIDQgXChp
bnRyb2R1Y2VkIGluIFB5dGhvbiAzLjRcKSBpdCBpcyBwb3NzaWJsZSB0byBlYXNpbHkgcGlja2xl
IGVudW1zIG5lc3RlZCBpbikgVGogVCogMCBUdyAob3RoZXIgY2xhc3Nlcy4pIFRqIFQqIEVUDQot
UQ0KLVENCi1xDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2NDcuODIzNiBjbQ0KLVEN
Ci1xDQotMSAwIDAgMSA2Mi42OTI5MSA2MTQuODIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMy41
IFRtIDIxIFRMIC9GMyAxNy41IFRmIDAgMCAwIHJnIChGdW5jdGlvbmFsIEFQSSkgVGogVCogRVQN
Ci1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU5Ni44MjM2IGNtDQotcQ0KLUJUIDEgMCAw
IDEgMCAyIFRtIDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoVGhlICkgVGogL0Y0IDEwIFRmIDAg
MCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChjbGFzcyBpcyBjYWxsYWJsZSwg
cHJvdmlkaW5nIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25hbCBBUEk6KSBUaiBUKiBFVA0KLVENCi1R
DQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNDY3LjYyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAw
IGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0
NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4
OTggMTIwIHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgOTggVG0gMTIgVEwgL0Y0IDEwIFRm
IDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggQW5pbWFsID0gRW51bVwoJ0FuaW1hbCcs
ICdhbnQgYmVlIGNhdCBkb2cnXCkpIFRqIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggQW5pbWFs
KSBUaiBUKiAoPCkgVGogKGVudW0gJ0FuaW1hbCcpIFRqICg+KSBUaiAgVCogKD4pIFRqICg+KSBU
aiAoPikgVGogKCBBbmltYWwuYW50KSBUaiBUKiAoPCkgVGogKEFuaW1hbC5hbnQ6IDEpIFRqICg+
KSBUaiAgVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBBbmltYWwuYW50LnZhbHVlKSBUaiBUKiAo
MSkgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBsaXN0XChBbmltYWxcKSkgVGogVCogKFsp
IFRqICg8KSBUaiAoQW5pbWFsLmFudDogMSkgVGogKD4pIFRqICgsICkgVGogKDwpIFRqIChBbmlt
YWwuYmVlOiAyKSBUaiAoPikgVGogKCwgKSBUaiAoPCkgVGogKEFuaW1hbC5jYXQ6IDMpIFRqICg+
KSBUaiAoLCApIFRqICg8KSBUaiAoQW5pbWFsLmRvZzogNCkgVGogKD4pIFRqIChdKSBUaiBUKiBF
VA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNDM1LjYyMzYgY20N
Ci1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIC42MDIyMDkgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAw
IHJnIChUaGUgc2VtYW50aWNzIG9mIHRoaXMgQVBJIHJlc2VtYmxlICkgVGogL0Y0IDEwIFRmIDAg
MCAwIHJnIChuYW1lZHR1cGxlKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKC4gVGhlIGZpcnN0IGFy
Z3VtZW50IG9mIHRoZSBjYWxsIHRvICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGog
L0YxIDEwIFRmIDAgMCAwIHJnIChpcyB0aGUgbmFtZSBvZikgVGogVCogMCBUdyAodGhlIGVudW1l
cmF0aW9uLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDM2OS42MjM2
IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCA1MCBUbSAxLjMyNjQxMiBUdyAxMiBUTCAvRjEgMTAgVGYg
MCAwIDAgcmcgKFRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlICkgVGogL0Y1IDEwIFRmIChzb3Vy
Y2UgKSBUaiAvRjEgMTAgVGYgKG9mIGVudW1lcmF0aW9uIG1lbWJlciBuYW1lcy4gSXQgY2FuIGJl
IGEgd2hpdGVzcGFjZS1zZXBhcmF0ZWQpIFRqIFQqIDAgVHcgLjk5MzUxNiBUdyAoc3RyaW5nIG9m
IG5hbWVzLCBhIHNlcXVlbmNlIG9mIG5hbWVzLCBhIHNlcXVlbmNlIG9mIDItdHVwbGVzIHdpdGgg
a2V5L3ZhbHVlIHBhaXJzLCBvciBhIG1hcHBpbmcgXChlLmcuKSBUaiBUKiAwIFR3IDEuMTY4NTU1
IFR3IChkaWN0aW9uYXJ5XCkgb2YgbmFtZXMgdG8gdmFsdWVzLiBUaGUgbGFzdCB0d28gb3B0aW9u
cyBlbmFibGUgYXNzaWduaW5nIGFyYml0cmFyeSB2YWx1ZXMgdG8gZW51bWVyYXRpb25zOykgVGog
VCogMCBUdyAuNTM3NDg1IFR3ICh0aGUgb3RoZXJzIGF1dG8tYXNzaWduIGluY3JlYXNpbmcgaW50
ZWdlcnMgc3RhcnRpbmcgd2l0aCAxLiBBIG5ldyBjbGFzcyBkZXJpdmVkIGZyb20gKSBUaiAvRjQg
MTAgVGYgMCAwIDAgcmcgKEVudW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlzIHJldHVybmVk
LiBJbikgVGogVCogMCBUdyAob3RoZXIgd29yZHMsIHRoZSBhYm92ZSBhc3NpZ25tZW50IHRvICkg
VGogL0Y0IDEwIFRmIDAgMCAwIHJnIChBbmltYWwgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlz
IGVxdWl2YWxlbnQgdG86KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEg
Mjg4LjQyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYu
NiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45
NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTggNzIgcmUgQioNCi1RDQotcQ0KLUJU
IDEgMCAwIDEgMCA1MCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAo
PikgVGogKCBjbGFzcyBBbmltYWxzXChFbnVtXCk6KSBUaiBUKiAoLi4uICAgYW50ID0gMSkgVGog
VCogKC4uLiAgIGJlZSA9IDIpIFRqIFQqICguLi4gICBjYXQgPSAzKSBUaiBUKiAoLi4uICAgZG9n
ID0gNCkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5Mjkx
IDIzMi40MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDM4IFRtIC9GMSAxMCBU
ZiAxMiBUTCAxLjIzOTk4NCBUdyAoUGlja2xpbmcgZW51bXMgY3JlYXRlZCB3aXRoIHRoZSBmdW5j
dGlvbmFsIEFQSSBjYW4gYmUgdHJpY2t5IGFzIGZyYW1lIHN0YWNrIGltcGxlbWVudGF0aW9uIGRl
dGFpbHMgYXJlKSBUaiBUKiAwIFR3IC45MzcxMzIgVHcgKHVzZWQgdG8gdHJ5IGFuZCBmaWd1cmUg
b3V0IHdoaWNoIG1vZHVsZSB0aGUgZW51bWVyYXRpb24gaXMgYmVpbmcgY3JlYXRlZCBpbiBcKGUu
Zy4gaXQgd2lsbCBmYWlsIGlmIHlvdSB1c2UgYSkgVGogVCogMCBUdyAxLjMyMTE2MyBUdyAodXRp
bGl0eSBmdW5jdGlvbiBpbiBzZXBhcmF0ZSBtb2R1bGUsIGFuZCBhbHNvIG1heSBub3Qgd29yayBv
biBJcm9uUHl0aG9uIG9yIEp5dGhvblwpLiBUaGUgc29sdXRpb24gaXMgdG8pIFRqIFQqIDAgVHcg
KHNwZWNpZnkgdGhlIG1vZHVsZSBuYW1lIGV4cGxpY2l0bHkgYXMgZm9sbG93czopIFRqIFQqIEVU
DQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxOTkuMjIzNiBjbQ0KLXENCi1xDQotMSAw
IDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0
NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAt
NiA0NjguNjg5OCAyNCByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDIgVG0gMTIgVEwgL0Y0
IDEwIFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggQW5pbWFscyA9IEVudW1cKCdB
bmltYWxzJywgJ2FudCBiZWUgY2F0IGRvZycsIG1vZHVsZT1fX25hbWVfX1wpKSBUaiBUKiBFVA0K
LVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMTY2LjIyMzYgY20NCi1x
DQotQlQgMSAwIDAgMSAwIDMuNSBUbSAyMSBUTCAvRjMgMTcuNSBUZiAwIDAgMCByZyAoRGVyaXZl
ZCBFbnVtZXJhdGlvbnMpIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAx
MzYuMjIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMyBUbSAxOCBUTCAvRjMgMTUgVGYgMCAwIDAg
cmcgKEludEVudW0pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA5NC4y
MjM2MiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMjYgVG0gMS45OTgzMiBUdyAxMiBUTCAvRjEgMTAg
VGYgMCAwIDAgcmcgKEEgdmFyaWF0aW9uIG9mICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVt
ICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChpcyBwcm92aWRlZCB3aGljaCBpcyBhbHNvIGEgc3Vi
Y2xhc3Mgb2YgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKGludCkgVGogL0YxIDEwIFRmIDAgMCAw
IHJnICguIE1lbWJlcnMgb2YgYW4gKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEludEVudW0gKSBU
aiAvRjEgMTAgVGYgMCAwIDAgcmcgKGNhbiBiZSkgVGogVCogMCBUdyAuMDg3OTg0IFR3IChjb21w
YXJlZCB0byBpbnRlZ2VyczsgYnkgZXh0ZW5zaW9uLCBpbnRlZ2VyIGVudW1lcmF0aW9ucyBvZiBk
aWZmZXJlbnQgdHlwZXMgY2FuIGFsc28gYmUgY29tcGFyZWQgdG8gZWFjaCkgVGogVCogMCBUdyAo
b3RoZXI6KSBUaiBUKiBFVA0KLVENCi1RDQotIA0KLWVuZHN0cmVhbQ0KLWVuZG9iag0KLTYzIDAg
b2JqDQotPDwgL0xlbmd0aCA0MTQxID4+DQotc3RyZWFtDQotMSAwIDAgMSAwIDAgY20gIEJUIC9G
MSAxMiBUZiAxNC40IFRMIEVUDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNTcxLjgyMzYgY20NCi1x
DQotcQ0KLTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYy
NzQ1IC42NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSBy
Zw0KLW4gLTYgLTYgNDY4LjY4OTggMTkyIHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMTcw
IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIGZyb20g
ZW51bSBpbXBvcnQgSW50RW51bSkgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBT
aGFwZVwoSW50RW51bVwpOikgVGogVCogKC4uLiAgIGNpcmNsZSA9IDEpIFRqIFQqICguLi4gICBz
cXVhcmUgPSAyKSBUaiBUKiAoLi4uKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNsYXNz
IFJlcXVlc3RcKEludEVudW1cKTopIFRqIFQqICguLi4gICBwb3N0ID0gMSkgVGogVCogKC4uLiAg
IGdldCA9IDIpIFRqIFQqICguLi4pIFRqIFQqICg+KSBUaiAoPikgVGogKD4pIFRqICggU2hhcGUg
PT0gMSkgVGogVCogKEZhbHNlKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIFNoYXBlLmNp
cmNsZSA9PSAxKSBUaiBUKiAoVHJ1ZSkgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBTaGFw
ZS5jaXJjbGUgPT0gUmVxdWVzdC5wb3N0KSBUaiBUKiAoVHJ1ZSkgVGogVCogRVQNCi1RDQotUQ0K
LVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU1MS44MjM2IGNtDQotcQ0KLUJUIDEg
MCAwIDEgMCAyIFRtIDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoSG93ZXZlciwgdGhleSBzdGls
bCBjYW4ndCBiZSBjb21wYXJlZCB0byBzdGFuZGFyZCApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAo
RW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoZW51bWVyYXRpb25zOikgVGogVCogRVQNCi1R
DQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDQxMC42MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAx
IDAgMCBjbQ0KLXENCi0xIDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42
NjI3NDUgUkcNCi0uNSB3DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2
OC42ODk4IDEzMiByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDExMCBUbSAxMiBUTCAvRjQg
MTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBTaGFwZVwoSW50RW51
bVwpOikgVGogVCogKC4uLiAgIGNpcmNsZSA9IDEpIFRqIFQqICguLi4gICBzcXVhcmUgPSAyKSBU
aiBUKiAoLi4uKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNsYXNzIENvbG9yXChFbnVt
XCk6KSBUaiBUKiAoLi4uICAgcmVkID0gMSkgVGogVCogKC4uLiAgIGdyZWVuID0gMikgVGogVCog
KC4uLikgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBTaGFwZS5jaXJjbGUgPT0gQ29sb3Iu
cmVkKSBUaiBUKiAoRmFsc2UpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAw
IDAgMSA2Mi42OTI5MSAzOTAuNjIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMiBUbSAxMiBUTCAv
RjQgMTAgVGYgMCAwIDAgcmcgKEludEVudW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKHZhbHVl
cyBiZWhhdmUgbGlrZSBpbnRlZ2VycyBpbiBvdGhlciB3YXlzIHlvdSdkIGV4cGVjdDopIFRqIFQq
IEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAyOTcuNDIzNiBjbQ0KLXENCi1xDQot
MSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2
Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAt
NiAtNiA0NjguNjg5OCA4NCByZSBCKg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDYyIFRtIDEyIFRM
IC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIGludFwoU2hhcGUuY2ly
Y2xlXCkpIFRqIFQqICgxKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIFsnYScsICdiJywg
J2MnXVtTaGFwZS5jaXJjbGVdKSBUaiBUKiAoJ2InKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBU
aiAoIFtpIGZvciBpIGluIHJhbmdlXChTaGFwZS5zcXVhcmVcKV0pIFRqIFQqIChbMCwgMV0pIFRq
IFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAyMjkuNDIz
NiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgNTAgVG0gMS4xOTcxMjYgVHcgMTIgVEwgL0YxIDEwIFRm
IDAgMCAwIHJnIChGb3IgdGhlIHZhc3QgbWFqb3JpdHkgb2YgY29kZSwgKSBUaiAvRjQgMTAgVGYg
MCAwIDAgcmcgKEVudW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlzIHN0cm9uZ2x5IHJlY29t
bWVuZGVkLCBzaW5jZSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoSW50RW51bSApIFRqIC9GMSAx
MCBUZiAwIDAgMCByZyAoYnJlYWtzIHNvbWUgc2VtYW50aWMpIFRqIFQqIDAgVHcgLjc5MzMxOCBU
dyAocHJvbWlzZXMgb2YgYW4gZW51bWVyYXRpb24gXChieSBiZWluZyBjb21wYXJhYmxlIHRvIGlu
dGVnZXJzLCBhbmQgdGh1cyBieSB0cmFuc2l0aXZpdHkgdG8gb3RoZXIgdW5yZWxhdGVkKSBUaiBU
KiAwIFR3IC41NTQ5ODUgVHcgKGVudW1lcmF0aW9uc1wpLiBJdCBzaG91bGQgYmUgdXNlZCBvbmx5
IGluIHNwZWNpYWwgY2FzZXMgd2hlcmUgdGhlcmUncyBubyBvdGhlciBjaG9pY2U7IGZvciBleGFt
cGxlLCB3aGVuKSBUaiBUKiAwIFR3IC43NDYxMzYgVHcgKGludGVnZXIgY29uc3RhbnRzIGFyZSBy
ZXBsYWNlZCB3aXRoIGVudW1lcmF0aW9ucyBhbmQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaXMg
cmVxdWlyZWQgd2l0aCBjb2RlIHRoYXQpIFRqIFQqIDAgVHcgKHN0aWxsIGV4cGVjdHMgaW50ZWdl
cnMuKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMTk5LjQyMzYgY20N
Ci1xDQotQlQgMSAwIDAgMSAwIDMgVG0gMTggVEwgL0YzIDE1IFRmIDAgMCAwIHJnIChPdGhlcnMp
IFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxODEuNDIzNiBjbQ0KLXEN
Ci1CVCAxIDAgMCAxIDAgMiBUbSAxMiBUTCAvRjEgMTAgVGYgMCAwIDAgcmcgKFdoaWxlICkgVGog
L0Y0IDEwIFRmIDAgMCAwIHJnIChJbnRFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChpcyBw
YXJ0IG9mIHRoZSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoZW51bSApIFRqIC9GMSAxMCBUZiAw
IDAgMCByZyAobW9kdWxlLCBpdCB3b3VsZCBiZSB2ZXJ5IHNpbXBsZSB0byBpbXBsZW1lbnQgaW5k
ZXBlbmRlbnRseTopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAxMzYu
MjIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNt
DQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4
NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCAzNiByZSBCKg0KLVENCi1xDQotMCAwIDAg
cmcNCi1CVCAxIDAgMCAxIDAgMTQgVG0gL0Y0IDEwIFRmIDEyIFRMIChjbGFzcyBJbnRFbnVtXChp
bnQsIEVudW1cKTopIFRqIFQqICggICAgcGFzcykgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQot
UQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDEwNC4yMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAx
NCBUbSAuMzYxNDEyIFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoVGhpcyBkZW1vbnN0cmF0
ZXMgaG93IHNpbWlsYXIgZGVyaXZlZCBlbnVtZXJhdGlvbnMgY2FuIGJlIGRlZmluZWQ7IGZvciBl
eGFtcGxlIGEgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKFN0ckVudW0gKSBUaiAvRjEgMTAgVGYg
MCAwIDAgcmcgKHRoYXQgbWl4ZXMpIFRqIFQqIDAgVHcgKGluICkgVGogL0Y0IDEwIFRmIDAgMCAw
IHJnIChzdHIgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGluc3RlYWQgb2YgKSBUaiAvRjQgMTAg
VGYgMCAwIDAgcmcgKGludCkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICguKSBUaiBUKiBFVA0KLVEN
Ci1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgODYuMjIzNjIgY20NCi1xDQotMCAwIDAgcmcNCi1C
VCAxIDAgMCAxIDAgMiBUbSAvRjEgMTAgVGYgMTIgVEwgKFNvbWUgcnVsZXM6KSBUaiBUKiBFVA0K
LVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgODAuMjIzNjIgY20NCi1RDQotcQ0KLTEgMCAw
IDEgNjIuNjkyOTEgODAuMjIzNjIgY20NCi1RDQotIA0KLWVuZHN0cmVhbQ0KLWVuZG9iag0KLTY0
IDAgb2JqDQotPDwgL0xlbmd0aCA3MTA4ID4+DQotc3RyZWFtDQotMSAwIDAgMSAwIDAgY20gIEJU
IC9GMSAxMiBUZiAxNC40IFRMIEVUDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNzQxLjAyMzYgY20N
Ci0wIDAgMCByZw0KLUJUIC9GMSAxMCBUZiAxMiBUTCBFVA0KLXENCi0xIDAgMCAxIDYgOSBjbQ0K
LXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAyIFRtIC9GMSAxMCBUZiAxMiBUTCA1LjY2IDAg
VGQgKDEuKSBUaiBUKiAtNS42NiAwIFRkIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSAyMyAtMyBj
bQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0gLjQ3NzMxOCBUdyAxMiBUTCAvRjEgMTAgVGYgMCAw
IDAgcmcgKFdoZW4gc3ViY2xhc3NpbmcgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVudW0pIFRq
IC9GMSAxMCBUZiAwIDAgMCByZyAoLCBtaXgtaW4gdHlwZXMgbXVzdCBhcHBlYXIgYmVmb3JlICkg
VGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChpdHNl
bGYgaW4gdGhlIHNlcXVlbmNlIG9mIGJhc2VzLCBhcykgVGogVCogMCBUdyAoaW4gdGhlICkgVGog
L0Y0IDEwIFRmIDAgMCAwIHJnIChJbnRFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChleGFt
cGxlIGFib3ZlLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDczNS4wMjM2IGNtDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY5OS4wMjM2IGNt
DQotMCAwIDAgcmcNCi1CVCAvRjEgMTAgVGYgMTIgVEwgRVQNCi1xDQotMSAwIDAgMSA2IDIxIGNt
DQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0gL0YxIDEwIFRmIDEyIFRMIDUuNjYg
MCBUZCAoMi4pIFRqIFQqIC01LjY2IDAgVGQgRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDIzIC0z
IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyNiBUbSAxLjE0NzA0NSBUdyAxMiBUTCAvRjEgMTAgVGYg
MCAwIDAgcmcgKFdoaWxlICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEw
IFRmIDAgMCAwIHJnIChjYW4gaGF2ZSBtZW1iZXJzIG9mIGFueSB0eXBlLCBvbmNlIHlvdSBtaXgg
aW4gYW4gYWRkaXRpb25hbCB0eXBlLCBhbGwgdGhlIG1lbWJlcnMpIFRqIFQqIDAgVHcgLjQyMDU3
NCBUdyAobXVzdCBoYXZlIHZhbHVlcyBvZiB0aGF0IHR5cGUsIGUuZy4gKSBUaiAvRjQgMTAgVGYg
MCAwIDAgcmcgKGludCApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoYWJvdmUuIFRoaXMgcmVzdHJp
Y3Rpb24gZG9lcyBub3QgYXBwbHkgdG8gbWl4LWlucyB3aGljaCBvbmx5KSBUaiBUKiAwIFR3IChh
ZGQgbWV0aG9kcyBhbmQgZG9uJ3Qgc3BlY2lmeSBhbm90aGVyIGRhdGEgdHlwZSBzdWNoIGFzICkg
VGogL0Y0IDEwIFRmIDAgMCAwIHJnIChpbnQgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG9yICkg
VGogL0Y0IDEwIFRmIDAgMCAwIHJnIChzdHIpIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoLikgVGog
VCogRVQNCi1RDQotUQ0KLXENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY5My4wMjM2
IGNtDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY2OS4wMjM2IGNtDQotMCAwIDAgcmcNCi1C
VCAvRjEgMTAgVGYgMTIgVEwgRVQNCi1xDQotMSAwIDAgMSA2IDkgY20NCi1xDQotMCAwIDAgcmcN
Ci1CVCAxIDAgMCAxIDAgMiBUbSAvRjEgMTAgVGYgMTIgVEwgNS42NiAwIFRkICgzLikgVGogVCog
LTUuNjYgMCBUZCBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgMjMgLTMgY20NCi1xDQotQlQgMSAw
IDAgMSAwIDE0IFRtIC4xMDA1NDIgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChXaGVuIGFu
b3RoZXIgZGF0YSB0eXBlIGlzIG1peGVkIGluLCB0aGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcg
KHZhbHVlICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChhdHRyaWJ1dGUgaXMgKSBUaiAvRjUgMTAg
VGYgKG5vdCB0aGUgc2FtZSApIFRqIC9GMSAxMCBUZiAoYXMgdGhlIGVudW0gbWVtYmVyIGl0c2Vs
ZiwpIFRqIFQqIDAgVHcgKGFsdGhvdWdoIGl0IGlzIGVxdWl2YWxhbnQgYW5kIHdpbGwgY29tcGFy
ZSBlcXVhbC4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42
OTI5MSA2NjMuMDIzNiBjbQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2MDkuMDIzNiBjbQ0K
LTAgMCAwIHJnDQotQlQgL0YxIDEwIFRmIDEyIFRMIEVUDQotcQ0KLTEgMCAwIDEgNiAzOSBjbQ0K
LXENCi0wIDAgMCByZw0KLUJUIDEgMCAwIDEgMCAyIFRtIC9GMSAxMCBUZiAxMiBUTCA1LjY2IDAg
VGQgKDQuKSBUaiBUKiAtNS42NiAwIFRkIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSAyMyAyNyBj
bQ0KLXENCi1CVCAxIDAgMCAxIDAgMTQgVG0gMS44NTk5OCBUdyAxMiBUTCAvRjEgMTAgVGYgMCAw
IDAgcmcgKCUtc3R5bGUgZm9ybWF0dGluZzogKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKCVzICkg
VGogL0YxIDEwIFRmIDAgMCAwIHJnIChhbmQgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKCVyICkg
VGogL0YxIDEwIFRmIDAgMCAwIHJnIChjYWxsICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVt
KSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKCdzICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChfX3N0
cl9fICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChhbmQgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcg
KF9fcmVwcl9fICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChyZXNwZWN0aXZlbHk7IG90aGVyIGNv
ZGVzKSBUaiBUKiAwIFR3IChcKHN1Y2ggYXMgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKCVpICkg
VGogL0YxIDEwIFRmIDAgMCAwIHJnIChvciApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoJWggKSBU
aiAvRjEgMTAgVGYgMCAwIDAgcmcgKGZvciBJbnRFbnVtXCkgdHJlYXQgdGhlIGVudW0gbWVtYmVy
IGFzIGl0cyBtaXhlZC1pbiB0eXBlLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDIz
IC0zIGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAuMDY3MDQ1IFR3IDEyIFRMIC9GMSAxMCBU
ZiAwIDAgMCByZyAoTm90ZTogUHJpb3IgdG8gUHl0aG9uIDMuNCB0aGVyZSBpcyBhIGJ1ZyBpbiAp
IFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoc3RyKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKCdzICUt
Zm9ybWF0dGluZzogKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKGludCApIFRqIC9GMSAxMCBUZiAw
IDAgMCByZyAoc3ViY2xhc3NlcyBhcmUgcHJpbnRlZCBhcyBzdHJpbmdzKSBUaiBUKiAwIFR3IChh
bmQgbm90IG51bWJlcnMgd2hlbiB0aGUgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKCVkKSBUaiAv
RjEgMTAgVGYgMCAwIDAgcmcgKCwgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKCVpKSBUaiAvRjEg
MTAgVGYgMCAwIDAgcmcgKCwgb3IgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKCV1ICkgVGogL0Yx
IDEwIFRmIDAgMCAwIHJnIChjb2RlcyBhcmUgdXNlZC4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQot
UQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2MDMuMDIzNiBjbQ0KLVENCi1xDQotMSAwIDAg
MSA2Mi42OTI5MSA1NzkuMDIzNiBjbQ0KLTAgMCAwIHJnDQotQlQgL0YxIDEwIFRmIDEyIFRMIEVU
DQotcQ0KLTEgMCAwIDEgNiA5IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0g
L0YxIDEwIFRmIDEyIFRMIDUuNjYgMCBUZCAoNS4pIFRqIFQqIC01LjY2IDAgVGQgRVQNCi1RDQot
UQ0KLXENCi0xIDAgMCAxIDIzIC0zIGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAxLjg4MDc1
MSBUdyAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKHN0ci5fX2Zvcm1hdF9fICkgVGogL0YxIDEw
IFRmIDAgMCAwIHJnIChcKG9yICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChmb3JtYXQpIFRqIC9G
MSAxMCBUZiAwIDAgMCByZyAoXCkgd2lsbCB1c2UgdGhlIG1peGVkLWluIHR5cGUncyApIFRqIC9G
NCAxMCBUZiAwIDAgMCByZyAoX19mb3JtYXRfXykgVGogL0YxIDEwIFRmIDAgMCAwIHJnICguIElm
IHRoZSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoRW51bSkgVGogL0YxIDEwIFRmIDAgMCAwIHJn
ICgncyApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoc3RyICkgVGogL0YxIDEwIFRmIDAgMCAwIHJn
IChvcikgVGogVCogMCBUdyAvRjQgMTAgVGYgMCAwIDAgcmcgKHJlcHIgKSBUaiAvRjEgMTAgVGYg
MCAwIDAgcmcgKGlzIGRlc2lyZWQgdXNlIHRoZSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoIXMg
KSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG9yICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnICghcikg
VGogL0YxIDEwIFRmIDAgMCAwIHJnICggKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKHN0ciApIFRq
IC9GMSAxMCBUZiAwIDAgMCByZyAoZm9ybWF0IGNvZGVzLikgVGogVCogRVQNCi1RDQotUQ0KLXEN
Ci1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU3OS4wMjM2IGNtDQotUQ0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDU0Ni4wMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAzLjUgVG0gMjEgVEwg
L0YzIDE3LjUgVGYgMCAwIDAgcmcgKERlY29yYXRvcnMpIFRqIFQqIEVUDQotUQ0KLVENCi1xDQot
MSAwIDAgMSA2Mi42OTI5MSA1MTYuMDIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMyBUbSAxOCBU
TCAvRjMgMTUgVGYgMCAwIDAgcmcgKHVuaXF1ZSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDQ4Ni4wMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAuMjg3MjUx
IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoQSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAo
Y2xhc3MgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGRlY29yYXRvciBzcGVjaWZpY2FsbHkgZm9y
IGVudW1lcmF0aW9ucy4gSXQgc2VhcmNoZXMgYW4gZW51bWVyYXRpb24ncyApIFRqIC9GNCAxMCBU
ZiAwIDAgMCByZyAoX19tZW1iZXJzX18gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGdhdGhlcmlu
ZykgVGogVCogMCBUdyAoYW55IGFsaWFzZXMgaXQgZmluZHM7IGlmIGFueSBhcmUgZm91bmQgKSBU
aiAvRjQgMTAgVGYgMCAwIDAgcmcgKFZhbHVlRXJyb3IgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcg
KGlzIHJhaXNlZCB3aXRoIHRoZSBkZXRhaWxzOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDM2OC44MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0x
IDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3
DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDEwOCByZSBC
Kg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDg2IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAo
PikgVGogKD4pIFRqICg+KSBUaiAoIEB1bmlxdWUpIFRqIFQqICguLi4gY2xhc3MgTm9EdXBlc1wo
RW51bVwpOikgVGogVCogKC4uLiAgICBmaXJzdCA9ICdvbmUnKSBUaiBUKiAoLi4uICAgIHNlY29u
ZCA9ICd0d28nKSBUaiBUKiAoLi4uICAgIHRoaXJkID0gJ3R3bycpIFRqIFQqIChUcmFjZWJhY2sg
XChtb3N0IHJlY2VudCBjYWxsIGxhc3RcKTopIFRqIFQqICguLi4pIFRqIFQqIChWYWx1ZUVycm9y
OiBkdXBsaWNhdGUgbmFtZXMgZm91bmQgaW4gKSBUaiAoPCkgVGogKGVudW0gJ05vRHVwZXMnKSBU
aiAoPikgVGogKDogdGhpcmQgLSkgVGogKD4pIFRqICggc2Vjb25kKSBUaiBUKiBFVA0KLVENCi1R
DQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMzM1LjgyMzYgY20NCi1xDQotQlQg
MSAwIDAgMSAwIDMuNSBUbSAyMSBUTCAvRjMgMTcuNSBUZiAwIDAgMCByZyAoSW50ZXJlc3Rpbmcg
ZXhhbXBsZXMpIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAyOTMuODIz
NiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMjYgVG0gLjU5MzczNSBUdyAxMiBUTCAvRjEgMTAgVGYg
MCAwIDAgcmcgKFdoaWxlICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEw
IFRmIDAgMCAwIHJnIChhbmQgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEludEVudW0gKSBUaiAv
RjEgMTAgVGYgMCAwIDAgcmcgKGFyZSBleHBlY3RlZCB0byBjb3ZlciB0aGUgbWFqb3JpdHkgb2Yg
dXNlLWNhc2VzLCB0aGV5IGNhbm5vdCBjb3ZlciB0aGVtIGFsbC4pIFRqIFQqIDAgVHcgLjg5NzA0
NSBUdyAoSGVyZSBhcmUgcmVjaXBlcyBmb3Igc29tZSBkaWZmZXJlbnQgdHlwZXMgb2YgZW51bWVy
YXRpb25zIHRoYXQgY2FuIGJlIHVzZWQgZGlyZWN0bHksIG9yIGFzIGV4YW1wbGVzIGZvcikgVGog
VCogMCBUdyAoY3JlYXRpbmcgb25lJ3Mgb3duLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDI2My44MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAzIFRtIDE4IFRMIC9G
MyAxNSBUZiAwIDAgMCByZyAoQXV0b051bWJlcikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDI0NS44MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIg
VG0gL0YxIDEwIFRmIDEyIFRMIChBdm9pZHMgaGF2aW5nIHRvIHNwZWNpZnkgdGhlIHZhbHVlIGZv
ciBlYWNoIGVudW1lcmF0aW9uIG1lbWJlcjopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAg
MSA2Mi42OTI5MSA4MC42MjM2MiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAw
IDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0K
LS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCAxNTYgcmUgQioN
Ci1RDQotcQ0KLUJUIDEgMCAwIDEgMCAxMzQgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+
KSBUaiAoPikgVGogKD4pIFRqICggY2xhc3MgQXV0b051bWJlclwoRW51bVwpOikgVGogVCogKC4u
LiAgICAgZGVmIF9fbmV3X19cKGNsc1wpOikgVGogVCogKC4uLiAgICAgICAgIHZhbHVlID0gbGVu
XChjbHMuX19tZW1iZXJzX19cKSArIDEpIFRqIFQqICguLi4gICAgICAgICBvYmogPSBvYmplY3Qu
X19uZXdfX1woY2xzXCkpIFRqIFQqICguLi4gICAgICAgICBvYmouX3ZhbHVlXyA9IHZhbHVlKSBU
aiBUKiAoLi4uICAgICAgICAgcmV0dXJuIG9iaikgVGogVCogKC4uLikgVGogVCogKD4pIFRqICg+
KSBUaiAoPikgVGogKCBjbGFzcyBDb2xvclwoQXV0b051bWJlclwpOikgVGogVCogKC4uLiAgICAg
X19vcmRlcl9fID0gInJlZCBncmVlbiBibHVlIiAgIyBvbmx5IG5lZWRlZCBpbiAyLngpIFRqIFQq
ICguLi4gICAgIHJlZCA9IFwoXCkpIFRqIFQqICguLi4gICAgIGdyZWVuID0gXChcKSkgVGogVCog
KC4uLiAgICAgYmx1ZSA9IFwoXCkpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi0gDQot
ZW5kc3RyZWFtDQotZW5kb2JqDQotNjUgMCBvYmoNCi08PCAvTGVuZ3RoIDQxNTggPj4NCi1zdHJl
YW0NCi0xIDAgMCAxIDAgMCBjbSAgQlQgL0YxIDEyIFRmIDE0LjQgVEwgRVQNCi1xDQotMSAwIDAg
MSA2Mi42OTI5MSA3MTUuODIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAw
IDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0K
LS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCA0OCByZSBCKg0K
LVENCi1xDQotQlQgMSAwIDAgMSAwIDI2IFRtIDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoLi4u
KSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIENvbG9yLmdyZWVuLnZhbHVlID09IDIpIFRq
IFQqIChUcnVlKSBUaiBUKiBFVA0KLVENCi1RDQotUQ0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIu
NjkyOTEgNjk1LjgyMzYgY20NCi1xDQotMCAwIDAgcmcNCi1CVCAxIDAgMCAxIDAgMiBUbSAvRjEg
MTAgVGYgMTIgVEwgKE5vdGU6KSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjky
OTEgNjg5LjgyMzYgY20NCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNjUzLjgyMzYgY20NCi0w
IDAgMCByZw0KLUJUIC9GMSAxMCBUZiAxMiBUTCBFVA0KLUJUIDEgMCAwIDEgMCAyIFRtICBUKiBF
VA0KLXENCi0xIDAgMCAxIDIwIDAgY20NCi1xDQotQlQgMSAwIDAgMSAwIDI2IFRtIC4xNDQxMDQg
VHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChUaGUgKSBUaiAvRjUgMTAgVGYgMCAwIDAgcmcg
KF9fbmV3X18gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG1ldGhvZCwgaWYgZGVmaW5lZCwgaXMg
dXNlZCBkdXJpbmcgY3JlYXRpb24gb2YgdGhlIEVudW0gbWVtYmVyczsgaXQgaXMgdGhlbiByZXBs
YWNlZCBieSkgVGogVCogMCBUdyAuNzk5OTg1IFR3IChFbnVtJ3MgKSBUaiAvRjUgMTAgVGYgMCAw
IDAgcmcgKF9fbmV3X18gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKHdoaWNoIGlzIHVzZWQgYWZ0
ZXIgY2xhc3MgY3JlYXRpb24gZm9yIGxvb2t1cCBvZiBleGlzdGluZyBtZW1iZXJzLiBEdWUgdG8g
dGhlIHdheSkgVGogVCogMCBUdyAoRW51bXMgYXJlIHN1cHBvc2VkIHRvIGJlaGF2ZSwgdGhlcmUg
aXMgbm8gd2F5IHRvIGN1c3RvbWl6ZSBFbnVtJ3MgKSBUaiAvRjUgMTAgVGYgMCAwIDAgcmcgKF9f
bmV3X18pIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoLikgVGogVCogRVQNCi1RDQotUQ0KLXENCi1R
DQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDY1My44MjM2IGNtDQotUQ0KLXENCi0xIDAgMCAx
IDYyLjY5MjkxIDYyMy44MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAzIFRtIDE4IFRMIC9GMyAx
NSBUZiAwIDAgMCByZyAoVW5pcXVlRW51bSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAx
IDYyLjY5MjkxIDYwNS44MjM2IGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIgVG0g
L0YxIDEwIFRmIDEyIFRMIChSYWlzZXMgYW4gZXJyb3IgaWYgYSBkdXBsaWNhdGUgbWVtYmVyIG5h
bWUgaXMgZm91bmQgaW5zdGVhZCBvZiBjcmVhdGluZyBhbiBhbGlhczopIFRqIFQqIEVUDQotUQ0K
LVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAzNjguNjIzNiBjbQ0KLXENCi1xDQotMSAwIDAgMSAw
IDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQotcQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYy
NzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAuODYyNzQ1IHJnDQotbiAtNiAtNiA0Njgu
Njg5OCAyMjggcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAwIDEgMCAyMDYgVG0gMTIgVEwgL0Y0IDEw
IFRmIDAgMCAwIHJnICg+KSBUaiAoPikgVGogKD4pIFRqICggY2xhc3MgVW5pcXVlRW51bVwoRW51
bVwpOikgVGogVCogKC4uLiAgICAgZGVmIF9faW5pdF9fXChzZWxmLCAqYXJnc1wpOikgVGogVCog
KC4uLiAgICAgICAgIGNscyA9IHNlbGYuX19jbGFzc19fKSBUaiBUKiAoLi4uICAgICAgICAgaWYg
YW55XChzZWxmLnZhbHVlID09IGUudmFsdWUgZm9yIGUgaW4gY2xzXCk6KSBUaiBUKiAoLi4uICAg
ICAgICAgICAgIGEgPSBzZWxmLm5hbWUpIFRqIFQqICguLi4gICAgICAgICAgICAgZSA9IGNsc1wo
c2VsZi52YWx1ZVwpLm5hbWUpIFRqIFQqICguLi4gICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
clwoKSBUaiBUKiAoLi4uICAgICAgICAgICAgICAgICAgICAgImFsaWFzZXMgbm90IGFsbG93ZWQg
aW4gVW5pcXVlRW51bTogICVyIC0tKSBUaiAoPikgVGogKCAlciIpIFRqIFQqICguLi4gICAgICAg
ICAgICAgICAgICAgICAlIFwoYSwgZVwpXCkpIFRqIFQqICguLi4pIFRqIFQqICg+KSBUaiAoPikg
VGogKD4pIFRqICggY2xhc3MgQ29sb3JcKFVuaXF1ZUVudW1cKTopIFRqIFQqICguLi4gICAgIHJl
ZCA9IDEpIFRqIFQqICguLi4gICAgIGdyZWVuID0gMikgVGogVCogKC4uLiAgICAgYmx1ZSA9IDMp
IFRqIFQqICguLi4gICAgIGdyZW5lID0gMikgVGogVCogKFRyYWNlYmFjayBcKG1vc3QgcmVjZW50
IGNhbGwgbGFzdFwpOikgVGogVCogKC4uLikgVGogVCogKFZhbHVlRXJyb3I6IGFsaWFzZXMgbm90
IGFsbG93ZWQgaW4gVW5pcXVlRW51bTogICdncmVuZScgLS0pIFRqICg+KSBUaiAoICdncmVlbicp
IFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAzMzgu
NjIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMyBUbSAxOCBUTCAvRjMgMTUgVGYgMCAwIDAgcmcg
KE9yZGVyZWRFbnVtKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgMzA4
LjYyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIDEuMzM1OTg0IFR3IDEyIFRMIC9GMSAx
MCBUZiAwIDAgMCByZyAoQW4gb3JkZXJlZCBlbnVtZXJhdGlvbiB0aGF0IGlzIG5vdCBiYXNlZCBv
biApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoSW50RW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCBy
ZyAoYW5kIHNvIG1haW50YWlucyB0aGUgbm9ybWFsICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChF
bnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChpbnZhcmlhbnRzKSBUaiBUKiAwIFR3IChcKHN1
Y2ggYXMgbm90IGJlaW5nIGNvbXBhcmFibGUgdG8gb3RoZXIgZW51bWVyYXRpb25zXCk6KSBUaiBU
KiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgODMuNDIzNjIgY20NCi1xDQotcQ0K
LTEgMCAwIDEgMCAwIGNtDQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42
NjI3NDUgLjY2Mjc0NSBSRw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4g
LTYgLTYgNDY4LjY4OTggMjE2IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMTk0IFRtIDEy
IFRMIC9GNCAxMCBUZiAwIDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNsYXNzIE9yZGVy
ZWRFbnVtXChFbnVtXCk6KSBUaiBUKiAoLi4uICAgICBkZWYgX19nZV9fXChzZWxmLCBvdGhlclwp
OikgVGogVCogKC4uLiAgICAgICAgIGlmIHNlbGYuX19jbGFzc19fIGlzIG90aGVyLl9fY2xhc3Nf
XzopIFRqIFQqICguLi4gICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3ZhbHVlXyApIFRqICg+KSBU
aiAoPSBvdGhlci5fdmFsdWVfKSBUaiBUKiAoLi4uICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVu
dGVkKSBUaiBUKiAoLi4uICAgICBkZWYgX19ndF9fXChzZWxmLCBvdGhlclwpOikgVGogVCogKC4u
LiAgICAgICAgIGlmIHNlbGYuX19jbGFzc19fIGlzIG90aGVyLl9fY2xhc3NfXzopIFRqIFQqICgu
Li4gICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3ZhbHVlXyApIFRqICg+KSBUaiAoIG90aGVyLl92
YWx1ZV8pIFRqIFQqICguLi4gICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQpIFRqIFQqICgu
Li4gICAgIGRlZiBfX2xlX19cKHNlbGYsIG90aGVyXCk6KSBUaiBUKiAoLi4uICAgICAgICAgaWYg
c2VsZi5fX2NsYXNzX18gaXMgb3RoZXIuX19jbGFzc19fOikgVGogVCogKC4uLiAgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fdmFsdWVfICkgVGogKDwpIFRqICg9IG90aGVyLl92YWx1ZV8pIFRqIFQq
ICguLi4gICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQpIFRqIFQqICguLi4gICAgIGRlZiBf
X2x0X19cKHNlbGYsIG90aGVyXCk6KSBUaiBUKiAoLi4uICAgICAgICAgaWYgc2VsZi5fX2NsYXNz
X18gaXMgb3RoZXIuX19jbGFzc19fOikgVGogVCogKC4uLiAgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5fdmFsdWVfICkgVGogKDwpIFRqICggb3RoZXIuX3ZhbHVlXykgVGogVCogKC4uLiAgICAgICAg
IHJldHVybiBOb3RJbXBsZW1lbnRlZCkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1RDQotUQ0KLSAN
Ci1lbmRzdHJlYW0NCi1lbmRvYmoNCi02NiAwIG9iag0KLTw8IC9MZW5ndGggNDAzOSA+Pg0KLXN0
cmVhbQ0KLTEgMCAwIDEgMCAwIGNtICBCVCAvRjEgMTIgVGYgMTQuNCBUTCBFVA0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDYxOS44MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0x
IDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3
DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDE0NCByZSBC
Kg0KLVENCi1xDQotQlQgMSAwIDAgMSAwIDEyMiBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcg
KC4uLikgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBjbGFzcyBHcmFkZVwoT3JkZXJlZEVu
dW1cKTopIFRqIFQqICguLi4gICAgIF9fb3JkZXJlZF9fID0gJ0EgQiBDIEQgRicpIFRqIFQqICgu
Li4gICAgIEEgPSA1KSBUaiBUKiAoLi4uICAgICBCID0gNCkgVGogVCogKC4uLiAgICAgQyA9IDMp
IFRqIFQqICguLi4gICAgIEQgPSAyKSBUaiBUKiAoLi4uICAgICBGID0gMSkgVGogVCogKC4uLikg
VGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBHcmFkZS5DICkgVGogKDwpIFRqICggR3JhZGUu
QSkgVGogVCogKFRydWUpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1xDQotMSAwIDAg
MSA2Mi42OTI5MSA1ODkuODIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMyBUbSAxOCBUTCAvRjMg
MTUgVGYgMCAwIDAgcmcgKFBsYW5ldCkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYy
LjY5MjkxIDU3MS44MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyIFRtIDEyIFRMIC9GMSAxMCBU
ZiAwIDAgMCByZyAoSWYgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKF9fbmV3X18gKSBUaiAvRjEg
MTAgVGYgMCAwIDAgcmcgKG9yICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChfX2luaXRfXyApIFRq
IC9GMSAxMCBUZiAwIDAgMCByZyAoaXMgZGVmaW5lZCB0aGUgdmFsdWUgb2YgdGhlIGVudW0gbWVt
YmVyIHdpbGwgYmUgcGFzc2VkIHRvIHRob3NlIG1ldGhvZHM6KSBUaiBUKiBFVA0KLVENCi1RDQot
cQ0KLTEgMCAwIDEgNjIuNjkyOTEgMjg2LjYyMzYgY20NCi1xDQotcQ0KLTEgMCAwIDEgMCAwIGNt
DQotcQ0KLTEgMCAwIDEgNi42IDYuNiBjbQ0KLXENCi0uNjYyNzQ1IC42NjI3NDUgLjY2Mjc0NSBS
Rw0KLS41IHcNCi0uOTYwNzg0IC45NjA3ODQgLjg2Mjc0NSByZw0KLW4gLTYgLTYgNDY4LjY4OTgg
Mjc2IHJlIEIqDQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgMjU0IFRtIDEyIFRMIC9GNCAxMCBUZiAw
IDAgMCByZyAoPikgVGogKD4pIFRqICg+KSBUaiAoIGNsYXNzIFBsYW5ldFwoRW51bVwpOikgVGog
VCogKC4uLiAgICAgTUVSQ1VSWSA9IFwoMy4zMDNlKzIzLCAyLjQzOTdlNlwpKSBUaiBUKiAoLi4u
ICAgICBWRU5VUyAgID0gXCg0Ljg2OWUrMjQsIDYuMDUxOGU2XCkpIFRqIFQqICguLi4gICAgIEVB
UlRIICAgPSBcKDUuOTc2ZSsyNCwgNi4zNzgxNGU2XCkpIFRqIFQqICguLi4gICAgIE1BUlMgICAg
PSBcKDYuNDIxZSsyMywgMy4zOTcyZTZcKSkgVGogVCogKC4uLiAgICAgSlVQSVRFUiA9IFwoMS45
ZSsyNywgICA3LjE0OTJlN1wpKSBUaiBUKiAoLi4uICAgICBTQVRVUk4gID0gXCg1LjY4OGUrMjYs
IDYuMDI2OGU3XCkpIFRqIFQqICguLi4gICAgIFVSQU5VUyAgPSBcKDguNjg2ZSsyNSwgMi41NTU5
ZTdcKSkgVGogVCogKC4uLiAgICAgTkVQVFVORSA9IFwoMS4wMjRlKzI2LCAyLjQ3NDZlN1wpKSBU
aiBUKiAoLi4uICAgICBkZWYgX19pbml0X19cKHNlbGYsIG1hc3MsIHJhZGl1c1wpOikgVGogVCog
KC4uLiAgICAgICAgIHNlbGYubWFzcyA9IG1hc3MgICAgICAgIyBpbiBraWxvZ3JhbXMpIFRqIFQq
ICguLi4gICAgICAgICBzZWxmLnJhZGl1cyA9IHJhZGl1cyAgICMgaW4gbWV0ZXJzKSBUaiBUKiAo
Li4uICAgICBAcHJvcGVydHkpIFRqIFQqICguLi4gICAgIGRlZiBzdXJmYWNlX2dyYXZpdHlcKHNl
bGZcKTopIFRqIFQqICguLi4gICAgICAgICAjIHVuaXZlcnNhbCBncmF2aXRhdGlvbmFsIGNvbnN0
YW50ICBcKG0zIGtnLTEgcy0yXCkpIFRqIFQqICguLi4gICAgICAgICBHID0gNi42NzMwMEUtMTEp
IFRqIFQqICguLi4gICAgICAgICByZXR1cm4gRyAqIHNlbGYubWFzcyAvIFwoc2VsZi5yYWRpdXMg
KiBzZWxmLnJhZGl1c1wpKSBUaiBUKiAoLi4uKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAo
IFBsYW5ldC5FQVJUSC52YWx1ZSkgVGogVCogKFwoNS45NzZlKzI0LCA2Mzc4MTQwLjBcKSkgVGog
VCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBQbGFuZXQuRUFSVEguc3VyZmFjZV9ncmF2aXR5KSBU
aiBUKiAoOS44MDI2NTI3NDMzMzcxMjkpIFRqIFQqIEVUDQotUQ0KLVENCi1RDQotUQ0KLVENCi1x
DQotMSAwIDAgMSA2Mi42OTI5MSAyNTMuNjIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMy41IFRt
IDIxIFRMIC9GMyAxNy41IFRmIDAgMCAwIHJnIChIb3cgYXJlIEVudW1zIGRpZmZlcmVudD8pIFRq
IFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAyMjMuNjIzNiBjbQ0KLXENCi0w
IDAgMCByZw0KLUJUIDEgMCAwIDEgMCAxNCBUbSAvRjEgMTAgVGYgMTIgVEwgMi4wOTA2NTEgVHcg
KEVudW1zIGhhdmUgYSBjdXN0b20gbWV0YWNsYXNzIHRoYXQgYWZmZWN0cyBtYW55IGFzcGVjdHMg
b2YgYm90aCBkZXJpdmVkIEVudW0gY2xhc3NlcyBhbmQgdGhlaXIpIFRqIFQqIDAgVHcgKGluc3Rh
bmNlcyBcKG1lbWJlcnNcKS4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5
MSAxOTMuNjIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMyBUbSAxOCBUTCAvRjMgMTUgVGYgMCAw
IDAgcmcgKEVudW0gQ2xhc3NlcykgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5
MjkxIDEyNy42MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCA1MCBUbSAxLjI2MzYxNSBUdyAxMiBU
TCAvRjEgMTAgVGYgMCAwIDAgcmcgKFRoZSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoRW51bU1l
dGEgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG1ldGFjbGFzcyBpcyByZXNwb25zaWJsZSBmb3Ig
cHJvdmlkaW5nIHRoZSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoX19jb250YWluc19fKSBUaiAv
RjEgMTAgVGYgMCAwIDAgcmcgKCwgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKF9fZGlyX18pIFRq
IC9GMSAxMCBUZiAwIDAgMCByZyAoLCApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoX19pdGVyX18g
KSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGFuZCkgVGogVCogMCBUdyAyLjI2NDcyNCBUdyAob3Ro
ZXIgbWV0aG9kcyB0aGF0IGFsbG93IG9uZSB0byBkbyB0aGluZ3Mgd2l0aCBhbiApIFRqIC9GNCAx
MCBUZiAwIDAgMCByZyAoRW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoY2xhc3MgdGhhdCBm
YWlsIG9uIGEgdHlwaWNhbCBjbGFzcywgc3VjaCBhcykgVGogVCogMCBUdyAyLjU5NDE0NyBUdyAv
RjQgMTAgVGYgMCAwIDAgcmcgKGxpc3RcKENvbG9yXCkgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcg
KG9yICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChzb21lX3ZhcikgVGogKCApIFRqIChpbikgVGog
KCApIFRqIChDb2xvcikgVGogL0YxIDEwIFRmIDAgMCAwIHJnICguICkgVGogL0Y0IDEwIFRmIDAg
MCAwIHJnIChFbnVtTWV0YSApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoaXMgcmVzcG9uc2libGUg
Zm9yIGVuc3VyaW5nIHRoYXQgdmFyaW91cyBvdGhlcikgVGogVCogMCBUdyAyLjE5NjkwNSBUdyAo
bWV0aG9kcyBvbiB0aGUgZmluYWwgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVudW0gKSBUaiAv
RjEgMTAgVGYgMCAwIDAgcmcgKGNsYXNzIGFyZSBjb3JyZWN0IFwoc3VjaCBhcyApIFRqIC9GNCAx
MCBUZiAwIDAgMCByZyAoX19uZXdfXykgVGogL0YxIDEwIFRmIDAgMCAwIHJnICgsICkgVGogL0Y0
IDEwIFRmIDAgMCAwIHJnIChfX2dldG5ld2FyZ3NfXykgVGogL0YxIDEwIFRmIDAgMCAwIHJnICgs
ICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChfX3N0cl9fICkgVGogL0YxIDEwIFRmIDAgMCAwIHJn
IChhbmQpIFRqIFQqIDAgVHcgL0Y0IDEwIFRmIDAgMCAwIHJnIChfX3JlcHJfXykgVGogL0YxIDEw
IFRmIDAgMCAwIHJnIChcKS4pIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5
MSAxMTUuNjIzNiBjbQ0KLVENCi0gDQotZW5kc3RyZWFtDQotZW5kb2JqDQotNjcgMCBvYmoNCi08
PCAvTGVuZ3RoIDU0NTMgPj4NCi1zdHJlYW0NCi0xIDAgMCAxIDAgMCBjbSAgQlQgL0YxIDEyIFRm
IDE0LjQgVEwgRVQNCi1xDQotMSAwIDAgMSA2Mi42OTI5MSA2ODIuMDIzNiBjbQ0KLS45NjA3ODQg
Ljk2MDc4NCAuODYyNzQ1IHJnDQotbiAwIDgzIDQ2OS44ODk4IC04MyByZSBmKg0KLTAgMCAwIHJn
DQotQlQgL0YxIDEwIFRmIDEyIFRMIEVUDQotQlQgMSAwIDAgMSA2IDU3IFRtICBUKiBFVA0KLXEN
Ci0xIDAgMCAxIDE2IDUyIGNtDQotcQ0KLTAgMCAwIHJnDQotQlQgMSAwIDAgMSAwIDIuNSBUbSAv
RjYgMTIuNSBUZiAxNSBUTCAoTm90ZSkgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDE2
IDE2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAxNCBUbSAuNjg2NjU0IFR3IDEyIFRMIC9GNCAxMCBU
ZiAwIDAgMCByZyAoX19kaXJfXyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoaXMgbm90IGNoYW5n
ZWQgaW4gdGhlIFB5dGhvbiAyIGxpbmUgYXMgaXQgbWVzc2VzIHVwIHNvbWUgb2YgdGhlIGRlY29y
YXRvcnMgaW5jbHVkZWQgaW4pIFRqIFQqIDAgVHcgKHRoZSBzdGRsaWIuKSBUaiBUKiBFVA0KLVEN
Ci1RDQotcQ0KLTEgSg0KLTEgag0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0K
LW4gMCA4MyBtIDQ2OS44ODk4IDgzIGwgUw0KLW4gMCAwIG0gNDY5Ljg4OTggMCBsIFMNCi1uIDAg
MCBtIDAgODMgbCBTDQotbiA0NjkuODg5OCAwIG0gNDY5Ljg4OTggODMgbCBTDQotUQ0KLVENCi1x
DQotMSAwIDAgMSA2Mi42OTI5MSA2NzYuMDIzNiBjbQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5
MSA2NDYuMDIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMyBUbSAxOCBUTCAvRjMgMTUgVGYgMCAw
IDAgcmcgKEVudW0gTWVtYmVycyBcKGFrYSBpbnN0YW5jZXNcKSkgVGogVCogRVQNCi1RDQotUQ0K
LXENCi0xIDAgMCAxIDYyLjY5MjkxIDYwNC4wMjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEgMCAyNiBU
bSAuNDkxOTg0IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoVGhlIG1vc3QgaW50ZXJlc3Rp
bmcgdGhpbmcgYWJvdXQgRW51bSBtZW1iZXJzIGlzIHRoYXQgdGhleSBhcmUgc2luZ2xldG9ucy4g
KSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVudW1NZXRhICkgVGogL0YxIDEwIFRmIDAgMCAwIHJn
IChjcmVhdGVzIHRoZW0gYWxsKSBUaiBUKiAwIFR3IC4wODQ5ODggVHcgKHdoaWxlIGl0IGlzIGNy
ZWF0aW5nIHRoZSApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoRW51bSApIFRqIC9GMSAxMCBUZiAw
IDAgMCByZyAoY2xhc3MgaXRzZWxmLCBhbmQgdGhlbiBwdXRzIGEgY3VzdG9tICkgVGogL0Y0IDEw
IFRmIDAgMCAwIHJnIChfX25ld19fICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChpbiBwbGFjZSB0
byBlbnN1cmUgdGhhdCBubyBuZXcpIFRqIFQqIDAgVHcgKG9uZXMgYXJlIGV2ZXIgaW5zdGFudGlh
dGVkIGJ5IHJldHVybmluZyBvbmx5IHRoZSBleGlzdGluZyBtZW1iZXIgaW5zdGFuY2VzLikgVGog
VCogRVQNCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDU3NC4wMjM2IGNtDQotcQ0KLUJU
IDEgMCAwIDEgMCAzIFRtIDE4IFRMIC9GMyAxNSBUZiAwIDAgMCByZyAoRmluZXIgUG9pbnRzKSBU
aiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEgNTIwLjAyMzYgY20NCi1xDQot
QlQgMSAwIDAgMSAwIDM4IFRtIDUuNDg4NTU1IFR3IDEyIFRMIC9GNCAxMCBUZiAwIDAgMCByZyAo
RW51bSApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAobWVtYmVycyBhcmUgaW5zdGFuY2VzIG9mIGFu
ICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChj
bGFzcywgYW5kIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIGFjY2Vzc2libGUgYXMpIFRqIFQqIDAgVHcg
MS41MDQxNDcgVHcgL0Y1IDEwIFRmIDAgMCAwIHJnIChFbnVtQ2xhc3MubWVtYmVyMS5tZW1iZXIy
KSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKCwgdGhleSBzaG91bGQgbm90IGJlIGFjY2Vzc2VkIGRp
cmVjdGx5IGZyb20gdGhlIG1lbWJlciBhcyB0aGF0IGxvb2t1cCkgVGogVCogMCBUdyAuMzI5OTg1
IFR3IChtYXkgZmFpbCBvciwgd29yc2UsIHJldHVybiBzb21ldGhpbmcgYmVzaWRlcyB0aGUgKSBU
aiAvRjQgMTAgVGYgMCAwIDAgcmcgKEVudW0gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG1lbWJl
ciB5b3Ugd2VyZSBsb29raW5nIGZvciBcKGNoYW5nZWQgaW4gdmVyc2lvbikgVGogVCogMCBUdyAo
MS4xLjFcKTopIFRqIFQqIEVUDQotUQ0KLVENCi1xDQotMSAwIDAgMSA2Mi42OTI5MSAzOTAuODIz
NiBjbQ0KLXENCi1xDQotMSAwIDAgMSAwIDAgY20NCi1xDQotMSAwIDAgMSA2LjYgNi42IGNtDQot
cQ0KLS42NjI3NDUgLjY2Mjc0NSAuNjYyNzQ1IFJHDQotLjUgdw0KLS45NjA3ODQgLjk2MDc4NCAu
ODYyNzQ1IHJnDQotbiAtNiAtNiA0NjguNjg5OCAxMjAgcmUgQioNCi1RDQotcQ0KLUJUIDEgMCAw
IDEgMCA5OCBUbSAxMiBUTCAvRjQgMTAgVGYgMCAwIDAgcmcgKD4pIFRqICg+KSBUaiAoPikgVGog
KCBjbGFzcyBGaWVsZFR5cGVzXChFbnVtXCk6KSBUaiBUKiAoLi4uICAgICBuYW1lID0gMSkgVGog
VCogKC4uLiAgICAgdmFsdWUgPSAyKSBUaiBUKiAoLi4uICAgICBzaXplID0gMykgVGogVCogKC4u
LikgVGogVCogKD4pIFRqICg+KSBUaiAoPikgVGogKCBGaWVsZFR5cGVzLnZhbHVlLnNpemUpIFRq
IFQqICg8KSBUaiAoRmllbGRUeXBlcy5zaXplOiAzKSBUaiAoPikgVGogIFQqICg+KSBUaiAoPikg
VGogKD4pIFRqICggRmllbGRUeXBlcy5zaXplLnZhbHVlKSBUaiBUKiAoMykgVGogVCogRVQNCi1R
DQotUQ0KLVENCi1RDQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDM3MC44MjM2IGNtDQotcQ0K
LUJUIDEgMCAwIDEgMCAyIFRtIDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoVGhlICkgVGogL0Y0
IDEwIFRmIDAgMCAwIHJnIChfX21lbWJlcnNfXyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoYXR0
cmlidXRlIGlzIG9ubHkgYXZhaWxhYmxlIG9uIHRoZSBjbGFzcy4pIFRqIFQqIEVUDQotUQ0KLVEN
Ci1xDQotMSAwIDAgMSA2Mi42OTI5MSAzMTYuODIzNiBjbQ0KLXENCi1CVCAxIDAgMCAxIDAgMzgg
VG0gMS4zNzQ2NTEgVHcgMTIgVEwgL0YxIDEwIFRmIDAgMCAwIHJnIChJbiBQeXRob24gMy54ICkg
VGogL0Y0IDEwIFRmIDAgMCAwIHJnIChfX21lbWJlcnNfXyApIFRqIC9GMSAxMCBUZiAwIDAgMCBy
ZyAoaXMgYWx3YXlzIGFuICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChPcmRlcmVkRGljdCkgVGog
L0YxIDEwIFRmIDAgMCAwIHJnICgsIHdpdGggdGhlIG9yZGVyIGJlaW5nIHRoZSBkZWZpbml0aW9u
IG9yZGVyLiBJbikgVGogVCogMCBUdyAzLjAwOTIxMyBUdyAoUHl0aG9uIDIuNyApIFRqIC9GNCAx
MCBUZiAwIDAgMCByZyAoX19tZW1iZXJzX18gKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKGlzIGFu
ICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJnIChPcmRlcmVkRGljdCApIFRqIC9GMSAxMCBUZiAwIDAg
MCByZyAoaWYgKSBUaiAvRjQgMTAgVGYgMCAwIDAgcmcgKF9fb3JkZXJfXyApIFRqIC9GMSAxMCBU
ZiAwIDAgMCByZyAod2FzIHNwZWNpZmllZCwgYW5kIGEgcGxhaW4gKSBUaiAvRjQgMTAgVGYgMCAw
IDAgcmcgKGRpY3QpIFRqIFQqIDAgVHcgMS44NTEzMTggVHcgL0YxIDEwIFRmIDAgMCAwIHJnIChv
dGhlcndpc2UuIEluIGFsbCBvdGhlciBQeXRob24gMi54IHZlcnNpb25zICkgVGogL0Y0IDEwIFRm
IDAgMCAwIHJnIChfX21lbWJlcnNfXyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoaXMgYSBwbGFp
biApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoZGljdCApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAo
ZXZlbiBpZiApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoX19vcmRlcl9fICkgVGogL0YxIDEwIFRm
IDAgMCAwIHJnICh3YXMpIFRqIFQqIDAgVHcgKHNwZWNpZmllZCBhcyB0aGUgKSBUaiAvRjQgMTAg
VGYgMCAwIDAgcmcgKE9yZGVyZWREaWN0ICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnICh0eXBlIGRp
ZG4ndCBleGlzdCB5ZXQuKSBUaiBUKiBFVA0KLVENCi1RDQotcQ0KLTEgMCAwIDEgNjIuNjkyOTEg
Mjg2LjgyMzYgY20NCi1xDQotQlQgMSAwIDAgMSAwIDE0IFRtIC4xMDY2NTQgVHcgMTIgVEwgL0Yx
IDEwIFRmIDAgMCAwIHJnIChJZiB5b3UgZ2l2ZSB5b3VyICkgVGogL0Y0IDEwIFRmIDAgMCAwIHJn
IChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChzdWJjbGFzcyBleHRyYSBtZXRob2RzLCBs
aWtlIHRoZSApIFRqIDAgMCAuNTAxOTYxIHJnIChQbGFuZXQgKSBUaiAwIDAgMCByZyAoY2xhc3Mg
YWJvdmUsIHRob3NlIG1ldGhvZHMgd2lsbCBzaG93IHVwIGluKSBUaiBUKiAwIFR3IChhICkgVGog
L0Y1IDEwIFRmIDAgMCAwIHJnIChkaXIgKSBUaiAvRjEgMTAgVGYgMCAwIDAgcmcgKG9mIHRoZSBt
ZW1iZXIsIGJ1dCBub3Qgb2YgdGhlIGNsYXNzOikgVGogVCogRVQNCi1RDQotUQ0KLXENCi0xIDAg
MCAxIDYyLjY5MjkxIDIwNS42MjM2IGNtDQotcQ0KLXENCi0xIDAgMCAxIDAgMCBjbQ0KLXENCi0x
IDAgMCAxIDYuNiA2LjYgY20NCi1xDQotLjY2Mjc0NSAuNjYyNzQ1IC42NjI3NDUgUkcNCi0uNSB3
DQotLjk2MDc4NCAuOTYwNzg0IC44NjI3NDUgcmcNCi1uIC02IC02IDQ2OC42ODk4IDcyIHJlIEIq
DQotUQ0KLXENCi1CVCAxIDAgMCAxIDAgNTAgVG0gMTIgVEwgL0Y0IDEwIFRmIDAgMCAwIHJnICg+
KSBUaiAoPikgVGogKD4pIFRqICggZGlyXChQbGFuZXRcKSkgVGogVCogKFsnRUFSVEgnLCAnSlVQ
SVRFUicsICdNQVJTJywgJ01FUkNVUlknLCAnTkVQVFVORScsICdTQVRVUk4nLCAnVVJBTlVTJywp
IFRqIFQqICgnVkVOVVMnLCAnX19jbGFzc19fJywgJ19fZG9jX18nLCAnX19tZW1iZXJzX18nLCAn
X19tb2R1bGVfXyddKSBUaiBUKiAoPikgVGogKD4pIFRqICg+KSBUaiAoIGRpclwoUGxhbmV0LkVB
UlRIXCkpIFRqIFQqIChbJ19fY2xhc3NfXycsICdfX2RvY19fJywgJ19fbW9kdWxlX18nLCAnbmFt
ZScsICdzdXJmYWNlX2dyYXZpdHknLCAndmFsdWUnXSkgVGogVCogRVQNCi1RDQotUQ0KLVENCi1R
DQotUQ0KLXENCi0xIDAgMCAxIDYyLjY5MjkxIDE2MS42MjM2IGNtDQotcQ0KLUJUIDEgMCAwIDEg
MCAyNiBUbSAuOTM4OTM1IFR3IDEyIFRMIC9GMSAxMCBUZiAwIDAgMCByZyAoQSApIFRqIC9GNCAx
MCBUZiAwIDAgMCByZyAoX19uZXdfXyApIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAobWV0aG9kIHdp
bGwgb25seSBiZSB1c2VkIGZvciB0aGUgY3JlYXRpb24gb2YgdGhlICkgVGogL0Y0IDEwIFRmIDAg
MCAwIHJnIChFbnVtICkgVGogL0YxIDEwIFRmIDAgMCAwIHJnIChtZW1iZXJzIC0tIGFmdGVyIHRo
YXQgaXQgaXMgcmVwbGFjZWQuKSBUaiBUKiAwIFR3IC45NDk0NjEgVHcgKFRoaXMgbWVhbnMgaWYg
eW91IHdpc2ggdG8gY2hhbmdlIGhvdyApIFRqIC9GNCAxMCBUZiAwIDAgMCByZyAoRW51bSApIFRq
IC9GMSAxMCBUZiAwIDAgMCByZyAobWVtYmVycyBhcmUgbG9va2VkIHVwIHlvdSBlaXRoZXIgaGF2
ZSB0byB3cml0ZSBhIGhlbHBlcikgVGogVCogMCBUdyAoZnVuY3Rpb24gb3IgYSApIFRqIC9GNCAx
MCBUZiAwIDAgMCByZyAoY2xhc3NtZXRob2QpIFRqIC9GMSAxMCBUZiAwIDAgMCByZyAoLikgVGog
VCogRVQNCi1RDQotUQ0KLSANCi1lbmRzdHJlYW0NCi1lbmRvYmoNCi02OCAwIG9iag0KLTw8IC9O
dW1zIFsgMCA2OSAwIFIgMSA3MCAwIFIgMiA3MSAwIFIgMyA3MiAwIFIgNCA3MyAwIFIgDQotICA1
IDc0IDAgUiA2IDc1IDAgUiA3IDc2IDAgUiA4IDc3IDAgUiA5IDc4IDAgUiANCi0gIDEwIDc5IDAg
UiAxMSA4MCAwIFIgXSA+Pg0KLWVuZG9iag0KLTY5IDAgb2JqDQotPDwgL1MgL0QgL1N0IDEgPj4N
Ci1lbmRvYmoNCi03MCAwIG9iag0KLTw8IC9TIC9EIC9TdCAyID4+DQotZW5kb2JqDQotNzEgMCBv
YmoNCi08PCAvUyAvRCAvU3QgMyA+Pg0KLWVuZG9iag0KLTcyIDAgb2JqDQotPDwgL1MgL0QgL1N0
IDQgPj4NCi1lbmRvYmoNCi03MyAwIG9iag0KLTw8IC9TIC9EIC9TdCA1ID4+DQotZW5kb2JqDQot
NzQgMCBvYmoNCi08PCAvUyAvRCAvU3QgNiA+Pg0KLWVuZG9iag0KLTc1IDAgb2JqDQotPDwgL1Mg
L0QgL1N0IDcgPj4NCi1lbmRvYmoNCi03NiAwIG9iag0KLTw8IC9TIC9EIC9TdCA4ID4+DQotZW5k
b2JqDQotNzcgMCBvYmoNCi08PCAvUyAvRCAvU3QgOSA+Pg0KLWVuZG9iag0KLTc4IDAgb2JqDQot
PDwgL1MgL0QgL1N0IDEwID4+DQotZW5kb2JqDQotNzkgMCBvYmoNCi08PCAvUyAvRCAvU3QgMTEg
Pj4NCi1lbmRvYmoNCi04MCAwIG9iag0KLTw8IC9TIC9EIC9TdCAxMiA+Pg0KLWVuZG9iag0KLXhy
ZWYNCi0wIDgxDQotMDAwMDAwMDAwMCA2NTUzNSBmDQotMDAwMDAwMDA3NSAwMDAwMCBuDQotMDAw
MDAwMDE2MCAwMDAwMCBuDQotMDAwMDAwMDI3MCAwMDAwMCBuDQotMDAwMDAwMDM4MyAwMDAwMCBu
DQotMDAwMDAwMDQ5OCAwMDAwMCBuDQotMDAwMDAwMDYwNiAwMDAwMCBuDQotMDAwMDAwMDc3NyAw
MDAwMCBuDQotMDAwMDAwMDk0OCAwMDAwMCBuDQotMDAwMDAwMTA2NiAwMDAwMCBuDQotMDAwMDAw
MTIzNyAwMDAwMCBuDQotMDAwMDAwMTQ3NyAwMDAwMCBuDQotMDAwMDAwMTY4NyAwMDAwMCBuDQot
MDAwMDAwMTg5NyAwMDAwMCBuDQotMDAwMDAwMjEwNyAwMDAwMCBuDQotMDAwMDAwMjI3OSAwMDAw
MCBuDQotMDAwMDAwMjQwMiAwMDAwMCBuDQotMDAwMDAwMjU3NCAwMDAwMCBuDQotMDAwMDAwMjc0
NiAwMDAwMCBuDQotMDAwMDAwMjk4OSAwMDAwMCBuDQotMDAwMDAwMzE2MSAwMDAwMCBuDQotMDAw
MDAwMzMzMyAwMDAwMCBuDQotMDAwMDAwMzU2OSAwMDAwMCBuDQotMDAwMDAwMzc3OSAwMDAwMCBu
DQotMDAwMDAwMzk4OSAwMDAwMCBuDQotMDAwMDAwNDE5OSAwMDAwMCBuDQotMDAwMDAwNDQwOSAw
MDAwMCBuDQotMDAwMDAwNDYxOSAwMDAwMCBuDQotMDAwMDAwNDc5MSAwMDAwMCBuDQotMDAwMDAw
NTAyMCAwMDAwMCBuDQotMDAwMDAwNTEyOSAwMDAwMCBuDQotMDAwMDAwNTM3MyAwMDAwMCBuDQot
MDAwMDAwNTQ1MSAwMDAwMCBuDQotMDAwMDAwNTU3MSAwMDAwMCBuDQotMDAwMDAwNTcwNSAwMDAw
MCBuDQotMDAwMDAwNTg4NiAwMDAwMCBuDQotMDAwMDAwNjAzOSAwMDAwMCBuDQotMDAwMDAwNjE2
OCAwMDAwMCBuDQotMDAwMDAwNjMzMiAwMDAwMCBuDQotMDAwMDAwNjQ4OCAwMDAwMCBuDQotMDAw
MDAwNjYxNCAwMDAwMCBuDQotMDAwMDAwNjc0NiAwMDAwMCBuDQotMDAwMDAwNjkyNCAwMDAwMCBu
DQotMDAwMDAwNzAzNiAwMDAwMCBuDQotMDAwMDAwNzE0NyAwMDAwMCBuDQotMDAwMDAwNzMxNSAw
MDAwMCBuDQotMDAwMDAwNzQxMyAwMDAwMCBuDQotMDAwMDAwNzU5MSAwMDAwMCBuDQotMDAwMDAw
NzcwNiAwMDAwMCBuDQotMDAwMDAwNzgzNCAwMDAwMCBuDQotMDAwMDAwNzk2MyAwMDAwMCBuDQot
MDAwMDAwODA3NCAwMDAwMCBuDQotMDAwMDAwODI0MyAwMDAwMCBuDQotMDAwMDAwODM2MCAwMDAw
MCBuDQotMDAwMDAwODUwOCAwMDAwMCBuDQotMDAwMDAwODYyNSAwMDAwMCBuDQotMDAwMDAwODc3
MSAwMDAwMCBuDQotMDAwMDAxNTI4NiAwMDAwMCBuDQotMDAwMDAxOTUxNyAwMDAwMCBuDQotMDAw
MDAyMzM2NSAwMDAwMCBuDQotMDAwMDAyNzgyOCAwMDAwMCBuDQotMDAwMDAzMjQwNiAwMDAwMCBu
DQotMDAwMDAzNzA5MCAwMDAwMCBuDQotMDAwMDA0MjUxOSAwMDAwMCBuDQotMDAwMDA0NjcxNyAw
MDAwMCBuDQotMDAwMDA1Mzg4MiAwMDAwMCBuDQotMDAwMDA1ODA5NyAwMDAwMCBuDQotMDAwMDA2
MjE5MyAwMDAwMCBuDQotMDAwMDA2NzcwMyAwMDAwMCBuDQotMDAwMDA2Nzg1NiAwMDAwMCBuDQot
MDAwMDA2Nzg5MyAwMDAwMCBuDQotMDAwMDA2NzkzMCAwMDAwMCBuDQotMDAwMDA2Nzk2NyAwMDAw
MCBuDQotMDAwMDA2ODAwNCAwMDAwMCBuDQotMDAwMDA2ODA0MSAwMDAwMCBuDQotMDAwMDA2ODA3
OCAwMDAwMCBuDQotMDAwMDA2ODExNSAwMDAwMCBuDQotMDAwMDA2ODE1MiAwMDAwMCBuDQotMDAw
MDA2ODE4OSAwMDAwMCBuDQotMDAwMDA2ODIyNyAwMDAwMCBuDQotMDAwMDA2ODI2NSAwMDAwMCBu
DQotdHJhaWxlcg0KLTw8IC9JRCANCi0gJSBSZXBvcnRMYWIgZ2VuZXJhdGVkIFBERiBkb2N1bWVu
dCAtLSBkaWdlc3QgKGh0dHA6Ly93d3cucmVwb3J0bGFiLmNvbSkNCi0gWyg8fXx+Z21cMzUyXDMy
MFwyMzU9XDAwMXBcMjIwdlwyMjRcMzM2KSAoPH18fmdtXDM1MlwzMjBcMjM1PVwwMDFwXDIyMHZc
MjI0XDMzNildDQotIC9JbmZvIDMwIDAgUiAvUm9vdCAyOSAwIFIgL1NpemUgODEgPj4NCi1zdGFy
dHhyZWYNCi02ODMwMw0KLSUlRU9GDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vZG9jL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vZG9jL3czYy1pbXBvcnQubG9nCmluZGV4IDNi
ODQ3ZjA4ZDg4NzM4NjMyNDgyMjVlNjBiNDliNWFjZWMyM2JiNjMuLjZkNWRlMjM0MzFkMGU0MDc5
ZWM3ZmRiOTlmYTk5YzJhMWM2YmRiNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL2RvYy93
M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS9kb2MvdzNjLWltcG9ydC5sb2cKQEAg
LTE0LDUgKzE0LDQgQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0v
ZG9jL2VudW0ucGRmCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vZG9jL2VudW0ucnN0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2VudW0vZW51bS90ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vdGVzdC5weQppbmRleCBkOWVk
ZmFlZTQwYWZmNWViYTdlODA0MTViYzc1YmUwMzY0MjA1NWY1Li5jOGM0Yjk2MjI0MmY0ZjVhMmVk
MjQ4NTVhN2U1YTEyZGYzZGVjNmU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS90ZXN0LnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZW51bS9lbnVtL3Rlc3QucHkKQEAgLTQ1Miw4ICs0NTIsOCBAQCBjbGFzcyBU
ZXN0RW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0
ZXNbU2Vhc29uLkFVVFVNTl0sICcxMDMxJykKIAogICAgIGRlZiB0ZXN0X2VudW1fZHVwbGljYXRl
cyhzZWxmKToKLSAgICAgICAgX29yZGVyXyA9ICJTUFJJTkcgU1VNTUVSIEFVVFVNTiBXSU5URVIi
CiAgICAgICAgIGNsYXNzIFNlYXNvbihFbnVtKToKKyAgICAgICAgICAgIF9vcmRlcl8gPSAiU1BS
SU5HIFNVTU1FUiBBVVRVTU4gV0lOVEVSIgogICAgICAgICAgICAgU1BSSU5HID0gMQogICAgICAg
ICAgICAgU1VNTUVSID0gMgogICAgICAgICAgICAgQVVUVU1OID0gRkFMTCA9IDMKQEAgLTY2NSw3
ICs2NjUsNyBAQCBjbGFzcyBUZXN0RW51bSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAg
ICAgICAgICAgIHByb3RvY29sPSgwLCBISUdIRVNUX1BST1RPQ09MKSkKIAogICAgIGRlZiB0ZXN0
X2V4cGxvZGluZ19waWNrbGUoc2VsZik6Ci0gICAgICAgIEJhZFBpY2tsZSA9IEVudW0oJ0JhZFBp
Y2tsZScsICdkaWxsIHN3ZWV0IGJyZWFkLW4tYnV0dGVyJykKKyAgICAgICAgQmFkUGlja2xlID0g
RW51bSgnQmFkUGlja2xlJywgJ2RpbGwgc3dlZXQgYnJlYWRfbl9idXR0ZXInKQogICAgICAgICBl
bnVtLl9tYWtlX2NsYXNzX3VucGlja2xhYmxlKEJhZFBpY2tsZSkKICAgICAgICAgZ2xvYmFscygp
WydCYWRQaWNrbGUnXSA9IEJhZFBpY2tsZQogICAgICAgICB0ZXN0X3BpY2tsZV9leGNlcHRpb24o
c2VsZi5hc3NlcnRSYWlzZXMsIFR5cGVFcnJvciwgQmFkUGlja2xlLmRpbGwpCkBAIC04MTMsNiAr
ODEzLDI3IEBAIGNsYXNzIFRlc3RFbnVtKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShlIGluIFN1bW1lck1vbnRoKQogICAgICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKHR5cGUoZSkgaXMgU3VtbWVyTW9udGgpCiAKKyAgICBkZWYgdGVzdF9wcm9ncmFtYXRp
Y19mdW5jdGlvbl9pdGVyYWJsZV93aXRoX3dlaXJkX25hbWVzKHNlbGYpOgorICAgICAgICBTdW1t
ZXJNb250aCA9IEVudW0oCisgICAgICAgICAgICAgICAgJ1N1bW1lck1vbnRoJywKKyAgICAgICAg
ICAgICAgICAoKCdqdW5lJywgMSksICgnanVseScsIDIpLCAoJ2F1Z3VzdCcsIDMpLCAoJ2ZhYnVs
b3VzIHNlcHRlbWJlcicsIDQpKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgbHN0ID0gbGlz
dChTdW1tZXJNb250aCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obHN0KSwgbGVuKFN1
bW1lck1vbnRoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oU3VtbWVyTW9udGgpLCA0
LCBTdW1tZXJNb250aCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAg
ICBbU3VtbWVyTW9udGguanVuZSwgU3VtbWVyTW9udGguanVseSwgU3VtbWVyTW9udGguYXVndXN0
LCBTdW1tZXJNb250aFsnZmFidWxvdXMgc2VwdGVtYmVyJ11dLAorICAgICAgICAgICAgICAgIGxz
dCwKKyAgICAgICAgICAgICAgICApCisgICAgICAgIGZvciBpLCBtb250aCBpbiBlbnVtZXJhdGUo
J2p1bmUganVseSBhdWd1c3QnLnNwbGl0KCkgKyBbJ2ZhYnVsb3VzIHNlcHRlbWJlciddKToKKyAg
ICAgICAgICAgIGkgKz0gMQorICAgICAgICAgICAgZSA9IFN1bW1lck1vbnRoKGkpCisgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGludChlLnZhbHVlKSwgaSkKKyAgICAgICAgICAgIHNlbGYu
YXNzZXJ0Tm90RXF1YWwoZSwgaSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5uYW1l
LCBtb250aCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShlIGluIFN1bW1lck1vbnRoKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHR5cGUoZSkgaXMgU3VtbWVyTW9udGgpCisKICAg
ICBkZWYgdGVzdF9wcm9ncmFtYXRpY19mdW5jdGlvbl9mcm9tX2RpY3Qoc2VsZik6CiAgICAgICAg
IFN1bW1lck1vbnRoID0gRW51bSgKICAgICAgICAgICAgICAgICAnU3VtbWVyTW9udGgnLApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9lbnVtL3NldHVwLmNmZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9zZXR1cC5jZmcKaW5kZXgg
ODYxYTlmNTU0MjYzZWZiMDg4ZDg2MzZjNGYxN2EzMDY5NmU0OTVhZC4uOGJmZDVhMTJmODViOGZi
YjZjMDU4Y2Y2N2RkMjNkYTY5MDgzNWVhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL3NldHVwLmNm
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2VudW0vc2V0dXAuY2ZnCkBAIC0xLDUgKzEsNCBAQAogW2VnZ19pbmZvXQog
dGFnX2J1aWxkID0gCiB0YWdfZGF0ZSA9IDAKLXRhZ19zdm5fcmV2aXNpb24gPSAwCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZW51bS9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9zZXR1cC5weQppbmRleCA4YjI4
NDAwMzQ4NTY3NDU5NzA2M2MyMGIzMzM3ODgzMTllNTRlOTYyLi5mNTQwNzFlN2YwYzRjM2ViOWQz
YjY4ZTExY2FhMWVhNzIxMjBjMWE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vc2V0dXAucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9lbnVtL3NldHVwLnB5CkBAIC05LDYgKzksMTQgQEAgaWYgc3lzLnZlcnNpb25faW5m
b1s6Ml0gPCAoMiwgNyk6CiBlbHNlOg0KICAgICByZXF1aXJlZCA9IFtdDQogDQorIyBEb24ndCBz
aGFkb3cgYnVpbHRpbiBlbnVtIHBhY2thZ2UgaWYgd2UgYXJlIGJlaW5nIGluc3RhbGxlZCBvbiBh
DQorIyByZWNlbnQgUHl0aG9uLiAgVGhpcyBjYXVzZXMgY29uZmxpY3RzIHNpbmNlIGF0IGxlYXN0
IDMuNjoNCisjIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9zdG9uZWxlYWYvZW51bTM0L2lzc3Vlcy8x
OS9lbnVtMzQtaXNudC1jb21wYXRpYmxlLXdpdGgtcHl0aG9uLTM2DQoraWYgc3lzLnZlcnNpb25f
aW5mb1s6Ml0gPCAoMywgNCk6DQorICAgIHBhY2thZ2VzID0gWydlbnVtJ10NCitlbHNlOg0KKyAg
ICBwYWNrYWdlcyA9IFtdDQorDQogbG9uZ19kZXNjID0gJycnXA0KIGVudW0gLS0tIHN1cHBvcnQg
Zm9yIGVudW1lcmF0aW9ucw0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCkBAIC01NCwxNSArNjIsMTUgQEAgUmVwb3NpdG9yeSBhbmQgSXNzdWUgVHJhY2tlciBhdCBo
dHRwczovL2JpdGJ1Y2tldC5vcmcvc3RvbmVsZWFmL2VudW0zNC4KIHB5Ml9vbmx5ID0gKCkNCiBw
eTNfb25seSA9ICgpDQogbWFrZSA9IFsNCi0gICAgICAgICdyc3QycGRmIGVudW0vZG9jL2VudW0u
cnN0IC0tb3V0cHV0PWVudW0vZG9jL2VudW0ucGRmJywNCisgICAgICAgICMgJ3JzdDJwZGYgZW51
bS9kb2MvZW51bS5yc3QgLS1vdXRwdXQ9ZW51bS9kb2MvZW51bS5wZGYnLA0KICAgICAgICAgXQ0K
IA0KIA0KIGRhdGEgPSBkaWN0KA0KICAgICAgICAgbmFtZT0nZW51bTM0JywNCi0gICAgICAgIHZl
cnNpb249JzEuMS42JywNCisgICAgICAgIHZlcnNpb249JzEuMS4xMCcsDQogICAgICAgICB1cmw9
J2h0dHBzOi8vYml0YnVja2V0Lm9yZy9zdG9uZWxlYWYvZW51bTM0JywNCi0gICAgICAgIHBhY2th
Z2VzPVsnZW51bSddLA0KKyAgICAgICAgcGFja2FnZXM9cGFja2FnZXMsDQogICAgICAgICBwYWNr
YWdlX2RhdGE9ew0KICAgICAgICAgICAgICdlbnVtJyA6IFsNCiAgICAgICAgICAgICAgICAgJ0xJ
Q0VOU0UnLA0KQEAgLTkwLDggKzk4LDYgQEAgZGF0YSA9IGRpY3QoCiAgICAgICAgICAgICAnUHJv
Z3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNicsDQogICAgICAgICAgICAgJ1Byb2dy
YW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyLjcnLA0KICAgICAgICAgICAgICdQcm9ncmFt
bWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy4zJywNCi0gICAgICAgICAgICAnUHJvZ3JhbW1p
bmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNCcsDQotICAgICAgICAgICAgJ1Byb2dyYW1taW5n
IExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjUnLA0KICAgICAgICAgICAgIF0sDQogICAgICAgICAp
DQogDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9DSEFOR0VMT0cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdz
L0NIQU5HRUxPRwppbmRleCA2MDJlZWM1ZTdjMmFiMTQzYmJiZWNkNDNlMWE3NzFlNmI5NmFiNTAy
Li5lMTM2NmQyNjY4ZDAzZGU4MTAyZDA0OTUzYzU1ZTQ5NDAwNTVjYjAwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Z1bmNzaWdzL0NIQU5HRUxPRworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL0NIQU5HRUxPRwpAQCAt
MSw2ICsxLDExIEBACiBDaGFuZ2Vsb2cKIC0tLS0tLS0tLQogCiswLjUKK2BgYAorCisqIEZpeCBi
aW5kaW5nIHdpdGggc2VsZiBhcyBhIGt3YXJnLiAoUm9iZXJ0IENvbGxpbnMgIzE0KQorCiAwLjQg
KDIwMTMtMTItMjApCiBgYGBgYGBgYGBgYGBgYGBgCiAqIEZpeCB1bmJvdW5kIG1ldGhvZHMgZ2V0
dGluZyB0aGVpciBmaXJzdCBwYXJhbWV0ZXIgY3VycmllZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5j
c2lncy9SRUFETUUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9SRUFETUUucnN0CmluZGV4IGYwNGI3YjQy
MmNmNTFiNjc1ODY3MDNmMmFlMDllYjg2YzFjZTZiYTkuLjVmYmNhMjdlNmU2YjAxOTg4N2RkZjFi
ODZmYWY4NGI3ZjdkMmFiOTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvUkVBRE1FLnJzdAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Z1bmNzaWdzL1JFQURNRS5yc3QKQEAgLTEsNzQgKzEsMzQyIEBACi1mdW5jc2ln
cwotPT09PT09PT0KKy4uIGZ1bmNzaWdzIGRvY3VtZW50YXRpb24gbWFzdGVyIGZpbGUsIGNyZWF0
ZWQgYnkKKyAgIHNwaGlueC1xdWlja3N0YXJ0IG9uIEZyaSBBcHIgMjAgMjA6Mjc6NTIgMjAxMi4K
KyAgIFlvdSBjYW4gYWRhcHQgdGhpcyBmaWxlIGNvbXBsZXRlbHkgdG8geW91ciBsaWtpbmcsIGJ1
dCBpdCBzaG91bGQgYXQgbGVhc3QKKyAgIGNvbnRhaW4gdGhlIHJvb3QgYHRvY3RyZWVgIGRpcmVj
dGl2ZS4KKworSW50cm9kdWNpbmcgZnVuY3NpZ3MKKz09PT09PT09PT09PT09PT09PT09CisKK1Ro
ZSBGdW5jc2lncyBQYWNrYWdlCistLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBgYGZ1bmNzaWdzYGAg
aXMgYSBiYWNrcG9ydCBvZiB0aGUgYFBFUCAzNjJgXyBmdW5jdGlvbiBzaWduYXR1cmUgZmVhdHVy
ZXMgZnJvbQogUHl0aG9uIDMuMydzIGBpbnNwZWN0YF8gbW9kdWxlLiBUaGUgYmFja3BvcnQgaXMg
Y29tcGF0aWJsZSB3aXRoIFB5dGhvbiAyLjYsIDIuNwotYXMgd2VsbCBhcyAzLjIgYW5kIHVwLgor
YXMgd2VsbCBhcyAzLjMgYW5kIHVwLiAzLjIgd2FzIHN1cHBvcnRlZCBieSB2ZXJzaW9uIDAuNCwg
YnV0IHdpdGggc2V0dXB0b29scyBhbmQKK3BpcCBubyBsb25nZXIgc3VwcG9ydGluZyAzLjIsIHdl
IGNhbm5vdCBtYWtlIGFueSBzdGF0ZW1lbnQgYWJvdXQgMy4yCitjb21wYXRpYmlsaXR5LgogCi18
cHlwaV92ZXJzaW9ufAorQ29tcGF0aWJpbGl0eQorYGBgYGBgYGBgYGBgYAorCitUaGUgYGBmdW5j
c2lnc2BgIGJhY2twb3J0IGhhcyBiZWVuIHRlc3RlZCBhZ2FpbnN0OgorCisqIENQeXRob24gMi42
CisqIENQeXRob24gMi43CisqIENQeXRob24gMy4zCisqIENQeXRob24gMy40CisqIENQeXRob24g
My41CisqIENQeXRob24gbmlnaHRsaWVzCisqIFB5UHkgYW5kIFB5UHkzKGN1cnJlbnRseSBmYWls
aW5nIENJKQorCitDb250aW51b3VzIGludGVncmF0aW9uIHRlc3RpbmcgaXMgcHJvdmlkZWQgYnkg
YFRyYXZpcyBDSWBfLgorCitVbmRlciBQeXRob24gMi54IHRoZXJlIGlzIGEgY29tcGF0aWJpbGl0
eSBpc3N1ZSB3aGVuIGEgZnVuY3Rpb24gaXMgYXNzaWduZWQgdG8KK3RoZSBgYF9fd3JhcHBlZF9f
YGAgcHJvcGVydHkgb2YgYSBjbGFzcyBhZnRlciBpdCBoYXMgYmVlbiBjb25zdHJ1Y3RlZC4KK1Np
bWlsaWFyaWx5IHRoZXJlIHVuZGVyIFB5UHkgZGlyZWN0bHkgcGFzc2luZyB0aGUgYGBfX2NhbGxf
X2BgIG1ldGhvZCBvZiBhCitidWlsdGluIGlzIGFsc28gYSBjb21wYXRpYmlsaXR5IGlzc3Vlcy4g
IE90aGVyd2lzZSB0aGUgZnVuY3Rpb25hbGl0eSBpcworYmVsaWV2ZWQgdG8gYmUgdW5pZm9ybSBi
ZXR3ZWVuIGJvdGggUHl0aG9uMiBhbmQgUHl0aG9uMy4KIAotRG9jdW1lbnRhdGlvbgotLS0tLS0t
LS0tLS0tLQorSXNzdWVzCitgYGBgYGAKIAotVGhlIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uIGlz
IHN0YW5kYXJkIGxpYnJhcnkgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCi1gaW5zcGVjdGBfIG1vZHVs
ZSBpbiBQeXRob24zLiBUaGlzIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gaW5jbHVkZWQgaW4gdGhl
Ci1gYGZ1bmNzaWdzYGAgcGFja2FnZSBkb2N1bWVudGF0aW9uIGhvc3RlZCBvbiBgUmVhZCBUaGUg
RG9jc2BfLgorU291cmNlIGNvZGUgZm9yIGBgZnVuY3NpZ3NgYCBpcyBob3N0ZWQgb24gYEdpdEh1
YmBfLiBBbnkgYnVnIHJlcG9ydHMgb3IgZmVhdHVyZQorcmVxdWVzdHMgY2FuIGJlIG1hZGUgdXNp
bmcgR2l0SHViJ3MgYGlzc3VlcyBzeXN0ZW1gXy4gfGJ1aWxkX3N0YXR1c3wgfGNvdmVyYWdlfAog
CiBFeGFtcGxlCiAtLS0tLS0tCiAKLVRvIG9idGFpbiBhIHNpZ25hdHVyZSBvYmplY3QsIHBhc3Mg
dGhlIHRhcmdldCBmdW5jdGlvbiB0byB0aGUKLWBgZnVuY3NpZ3Muc2lnbmF0dXJlYGAgZnVuY3Rp
b24uIDo6CitUbyBvYnRhaW4gYSBgU2lnbmF0dXJlYCBvYmplY3QsIHBhc3MgdGhlIHRhcmdldCBm
dW5jdGlvbiB0byB0aGUKK2BgZnVuY3NpZ3Muc2lnbmF0dXJlYGAgZnVuY3Rpb24uCisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRob24KIAogICAgID4+PiBmcm9tIGZ1bmNzaWdzIGltcG9ydCBzaWduYXR1
cmUKICAgICA+Pj4gZGVmIGZvbyhhLCBiPU5vbmUsICphcmdzLCAqKmt3YXJncyk6CiAgICAgLi4u
ICAgICBwYXNzCi0KKyAgICAuLi4KICAgICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykKKyAgICA+
Pj4gc2lnCisgICAgPGZ1bmNzaWdzLlNpZ25hdHVyZSBvYmplY3QgYXQgMHguLi4+CisgICAgPj4+
IHNpZy5wYXJhbWV0ZXJzCisgICAgT3JkZXJlZERpY3QoWygnYScsIDxQYXJhbWV0ZXIgYXQgMHgu
Li4gJ2EnPiksICgnYicsIDxQYXJhbWV0ZXIgYXQgMHguLi4gJ2InPiksICgnYXJncycsIDxQYXJh
bWV0ZXIgYXQgMHguLi4gJ2FyZ3MnPiksICgna3dhcmdzJywgPFBhcmFtZXRlciBhdCAweC4uLiAn
a3dhcmdzJz4pXSkKKyAgICA+Pj4gc2lnLnJldHVybl9hbm5vdGF0aW9uCisgICAgPGNsYXNzICdm
dW5jc2lncy5fZW1wdHknPgogCi1Gb3IgdGhlIGRldGFpbHMgb2YgdGhlIHNpZ25hdHVyZSBvYmpl
Y3QsIHJlZmVyIHRvIHRoZSBlaXRoZXIgdGhlIHBhY2thZ2Ugb2YKLXN0YW5kYXJkIGxpYnJhcnkg
ZG9jdW1lbnRhdGlvbi4KK0ludHJvc3BlY3RpbmcgY2FsbGFibGVzIHdpdGggdGhlIFNpZ25hdHVy
ZSBvYmplY3QKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAotQ29tcGF0YWJpbGl0eQotLS0tLS0tLS0tLS0tLQorLi4gbm90ZTo6CiAKLVRoZSBgYGZ1
bmNzaWdzYGAgYmFja3BvcnQgaGFzIGJlZW4gdGVzdGVkIGFnYWluc3Q6CisgICBUaGlzIHNlY3Rp
b24gb2YgZG9jdW1lbnRhdGlvbiBpcyBhIGRpcmVjdCByZXByb2R1Y3Rpb24gb2YgdGhlIFB5dGhv
bgorICAgc3RhbmRhcmQgbGlicmFyeSBkb2N1bWVudGF0aW9uIGZvciB0aGUgaW5zcGVjdCBtb2R1
bGUuCiAKLSogQ1B5dGhvbiAyLjYKLSogQ1B5dGhvbiAyLjcKLSogQ1B5dGhvbiAzLjIKLSogUHlQ
eSAxLjkKK1RoZSBTaWduYXR1cmUgb2JqZWN0IHJlcHJlc2VudHMgdGhlIGNhbGwgc2lnbmF0dXJl
IG9mIGEgY2FsbGFibGUgb2JqZWN0IGFuZCBpdHMKK3JldHVybiBhbm5vdGF0aW9uLiAgVG8gcmV0
cmlldmUgYSBTaWduYXR1cmUgb2JqZWN0LCB1c2UgdGhlIDpmdW5jOmBzaWduYXR1cmVgCitmdW5j
dGlvbi4KIAotQ29udGludW91cyBpbnRlZ3JhdGlvbiB0ZXN0aW5nIGlzIHByb3ZpZGVkIGJ5IGBU
cmF2aXMgQ0lgXy4KKy4uIGZ1bmN0aW9uOjogc2lnbmF0dXJlKGNhbGxhYmxlKQogCi1VbmRlciBQ
eXRob24gMi54IHRoZXJlIGlzIGEgY29tcGF0YWJpbGl0eSBpc3N1ZSB3aGVuIGEgZnVuY3Rpb24g
aXMgYXNzaWduZWQgdG8KLXRoZSBgYF9fd3JhcHBlZF9fYGAgcHJvcGVydHkgb2YgYSBjbGFzcyBh
ZnRlciBpdCBoYXMgYmVlbiBjb25zdHJ1Y3RlZC4KLVNpbWlsaWFyaWx5IHRoZXJlIHVuZGVyIFB5
UHkgZGlyZWN0bHkgcGFzc2luZyB0aGUgYGBfX2NhbGxfX2BgIG1ldGhvZCBvZiBhCi1idWlsdGlu
IGlzIGFsc28gYSBjb21wYXRhYmlsaXR5IGlzc3Vlcy4gIE90aGVyd2lzZSB0aGUgZnVuY3Rpb25h
bGl0eSBpcwotYmVsaWV2ZWQgdG8gYmUgdW5pZm9ybSBiZXR3ZWVuIGJvdGggUHl0aG9uMiBhbmQg
UHl0aG9uMy4KKyAgIFJldHVybiBhIDpjbGFzczpgU2lnbmF0dXJlYCBvYmplY3QgZm9yIHRoZSBn
aXZlbiBgYGNhbGxhYmxlYGA6OgogCi1Jc3N1ZXMKLS0tLS0tLQorICAgICAgPj4+IGZyb20gZnVu
Y3NpZ3MgaW1wb3J0IHNpZ25hdHVyZQorICAgICAgPj4+IGRlZiBmb28oYSwgKiwgYjppbnQsICoq
a3dhcmdzKToKKyAgICAgIC4uLiAgICAgcGFzcwogCi1Tb3VyY2UgY29kZSBmb3IgYGBmdW5jc2ln
c2BgIGlzIGhvc3RlZCBvbiBgR2l0SHViYF8uIEFueSBidWcgcmVwb3J0cyBvciBmZWF0dXJlCi1y
ZXF1ZXN0cyBjYW4gYmUgbWFkZSB1c2luZyBHaXRIdWIncyBgaXNzdWVzIHN5c3RlbWBfLiB8YnVp
bGRfc3RhdHVzfCB8Y292ZXJhZ2V8CisgICAgICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykKKwor
ICAgICAgPj4+IHN0cihzaWcpCisgICAgICAnKGEsICosIGI6aW50LCAqKmt3YXJncyknCisKKyAg
ICAgID4+PiBzdHIoc2lnLnBhcmFtZXRlcnNbJ2InXSkKKyAgICAgICdiOmludCcKKworICAgICAg
Pj4+IHNpZy5wYXJhbWV0ZXJzWydiJ10uYW5ub3RhdGlvbgorICAgICAgPGNsYXNzICdpbnQnPgor
CisgICBBY2NlcHRzIGEgd2lkZSByYW5nZSBvZiBweXRob24gY2FsbGFibGVzLCBmcm9tIHBsYWlu
IGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyB0bworICAgOmZ1bmM6YGZ1bmN0b29scy5wYXJ0aWFsYCBv
YmplY3RzLgorCisgICAuLiBub3RlOjoKKworICAgICAgU29tZSBjYWxsYWJsZXMgbWF5IG5vdCBi
ZSBpbnRyb3NwZWN0YWJsZSBpbiBjZXJ0YWluIGltcGxlbWVudGF0aW9ucyBvZgorICAgICAgUHl0
aG9uLiAgRm9yIGV4YW1wbGUsIGluIENQeXRob24sIGJ1aWx0LWluIGZ1bmN0aW9ucyBkZWZpbmVk
IGluIEMgcHJvdmlkZQorICAgICAgbm8gbWV0YWRhdGEgYWJvdXQgdGhlaXIgYXJndW1lbnRzLgor
CisKKy4uIGNsYXNzOjogU2lnbmF0dXJlCisKKyAgIEEgU2lnbmF0dXJlIG9iamVjdCByZXByZXNl
bnRzIHRoZSBjYWxsIHNpZ25hdHVyZSBvZiBhIGZ1bmN0aW9uIGFuZCBpdHMgcmV0dXJuCisgICBh
bm5vdGF0aW9uLiAgRm9yIGVhY2ggcGFyYW1ldGVyIGFjY2VwdGVkIGJ5IHRoZSBmdW5jdGlvbiBp
dCBzdG9yZXMgYQorICAgOmNsYXNzOmBQYXJhbWV0ZXJgIG9iamVjdCBpbiBpdHMgOmF0dHI6YHBh
cmFtZXRlcnNgIGNvbGxlY3Rpb24uCisKKyAgIFNpZ25hdHVyZSBvYmplY3RzIGFyZSAqaW1tdXRh
YmxlKi4gIFVzZSA6bWV0aDpgU2lnbmF0dXJlLnJlcGxhY2VgIHRvIG1ha2UgYQorICAgbW9kaWZp
ZWQgY29weS4KKworICAgLi4gYXR0cmlidXRlOjogU2lnbmF0dXJlLmVtcHR5CisKKyAgICAgIEEg
c3BlY2lhbCBjbGFzcy1sZXZlbCBtYXJrZXIgdG8gc3BlY2lmeSBhYnNlbmNlIG9mIGEgcmV0dXJu
IGFubm90YXRpb24uCisKKyAgIC4uIGF0dHJpYnV0ZTo6IFNpZ25hdHVyZS5wYXJhbWV0ZXJzCisK
KyAgICAgIEFuIG9yZGVyZWQgbWFwcGluZyBvZiBwYXJhbWV0ZXJzJyBuYW1lcyB0byB0aGUgY29y
cmVzcG9uZGluZworICAgICAgOmNsYXNzOmBQYXJhbWV0ZXJgIG9iamVjdHMuCisKKyAgIC4uIGF0
dHJpYnV0ZTo6IFNpZ25hdHVyZS5yZXR1cm5fYW5ub3RhdGlvbgorCisgICAgICBUaGUgInJldHVy
biIgYW5ub3RhdGlvbiBmb3IgdGhlIGNhbGxhYmxlLiAgSWYgdGhlIGNhbGxhYmxlIGhhcyBubyAi
cmV0dXJuIgorICAgICAgYW5ub3RhdGlvbiwgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvIDphdHRy
OmBTaWduYXR1cmUuZW1wdHlgLgorCisgICAuLiBtZXRob2Q6OiBTaWduYXR1cmUuYmluZCgqYXJn
cywgKiprd2FyZ3MpCisKKyAgICAgIENyZWF0ZSBhIG1hcHBpbmcgZnJvbSBwb3NpdGlvbmFsIGFu
ZCBrZXl3b3JkIGFyZ3VtZW50cyB0byBwYXJhbWV0ZXJzLgorICAgICAgUmV0dXJucyA6Y2xhc3M6
YEJvdW5kQXJndW1lbnRzYCBpZiBgYCphcmdzYGAgYW5kIGBgKiprd2FyZ3NgYCBtYXRjaCB0aGUK
KyAgICAgIHNpZ25hdHVyZSwgb3IgcmFpc2VzIGEgOmV4YzpgVHlwZUVycm9yYC4KKworICAgLi4g
bWV0aG9kOjogU2lnbmF0dXJlLmJpbmRfcGFydGlhbCgqYXJncywgKiprd2FyZ3MpCisKKyAgICAg
IFdvcmtzIHRoZSBzYW1lIHdheSBhcyA6bWV0aDpgU2lnbmF0dXJlLmJpbmRgLCBidXQgYWxsb3dz
IHRoZSBvbWlzc2lvbiBvZgorICAgICAgc29tZSByZXF1aXJlZCBhcmd1bWVudHMgKG1pbWljcyA6
ZnVuYzpgZnVuY3Rvb2xzLnBhcnRpYWxgIGJlaGF2aW9yLikKKyAgICAgIFJldHVybnMgOmNsYXNz
OmBCb3VuZEFyZ3VtZW50c2AsIG9yIHJhaXNlcyBhIDpleGM6YFR5cGVFcnJvcmAgaWYgdGhlCisg
ICAgICBwYXNzZWQgYXJndW1lbnRzIGRvIG5vdCBtYXRjaCB0aGUgc2lnbmF0dXJlLgorCisgICAu
LiBtZXRob2Q6OiBTaWduYXR1cmUucmVwbGFjZSgqWywgcGFyYW1ldGVyc11bLCByZXR1cm5fYW5u
b3RhdGlvbl0pCisKKyAgICAgIENyZWF0ZSBhIG5ldyBTaWduYXR1cmUgaW5zdGFuY2UgYmFzZWQg
b24gdGhlIGluc3RhbmNlIHJlcGxhY2Ugd2FzIGludm9rZWQKKyAgICAgIG9uLiAgSXQgaXMgcG9z
c2libGUgdG8gcGFzcyBkaWZmZXJlbnQgYGBwYXJhbWV0ZXJzYGAgYW5kL29yCisgICAgICBgYHJl
dHVybl9hbm5vdGF0aW9uYGAgdG8gb3ZlcnJpZGUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydGll
cyBvZiB0aGUgYmFzZQorICAgICAgc2lnbmF0dXJlLiAgVG8gcmVtb3ZlIHJldHVybl9hbm5vdGF0
aW9uIGZyb20gdGhlIGNvcGllZCBTaWduYXR1cmUsIHBhc3MgaW4KKyAgICAgIDphdHRyOmBTaWdu
YXR1cmUuZW1wdHlgLgorCisgICAgICA6OgorCisgICAgICAgICA+Pj4gZGVmIHRlc3QoYSwgYik6
CisgICAgICAgICAuLi4gICAgIHBhc3MKKyAgICAgICAgID4+PiBzaWcgPSBzaWduYXR1cmUodGVz
dCkKKyAgICAgICAgID4+PiBuZXdfc2lnID0gc2lnLnJlcGxhY2UocmV0dXJuX2Fubm90YXRpb249
Im5ldyByZXR1cm4gYW5ubyIpCisgICAgICAgICA+Pj4gc3RyKG5ld19zaWcpCisgICAgICAgICAi
KGEsIGIpIC0+ICduZXcgcmV0dXJuIGFubm8nIgorCisKKy4uIGNsYXNzOjogUGFyYW1ldGVyCisK
KyAgIFBhcmFtZXRlciBvYmplY3RzIGFyZSAqaW1tdXRhYmxlKi4gIEluc3RlYWQgb2YgbW9kaWZ5
aW5nIGEgUGFyYW1ldGVyIG9iamVjdCwKKyAgIHlvdSBjYW4gdXNlIDptZXRoOmBQYXJhbWV0ZXIu
cmVwbGFjZWAgdG8gY3JlYXRlIGEgbW9kaWZpZWQgY29weS4KKworICAgLi4gYXR0cmlidXRlOjog
UGFyYW1ldGVyLmVtcHR5CisKKyAgICAgIEEgc3BlY2lhbCBjbGFzcy1sZXZlbCBtYXJrZXIgdG8g
c3BlY2lmeSBhYnNlbmNlIG9mIGRlZmF1bHQgdmFsdWVzIGFuZAorICAgICAgYW5ub3RhdGlvbnMu
CisKKyAgIC4uIGF0dHJpYnV0ZTo6IFBhcmFtZXRlci5uYW1lCisKKyAgICAgIFRoZSBuYW1lIG9m
IHRoZSBwYXJhbWV0ZXIgYXMgYSBzdHJpbmcuICBNdXN0IGJlIGEgdmFsaWQgcHl0aG9uIGlkZW50
aWZpZXIKKyAgICAgIG5hbWUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBgYFBPU0lUSU9OQUxfT05M
WWBgIHBhcmFtZXRlcnMsIHdoaWNoIGNhbiBoYXZlCisgICAgICBpdCBzZXQgdG8gYGBOb25lYGAp
LgorCisgICAuLiBhdHRyaWJ1dGU6OiBQYXJhbWV0ZXIuZGVmYXVsdAorCisgICAgICBUaGUgZGVm
YXVsdCB2YWx1ZSBmb3IgdGhlIHBhcmFtZXRlci4gIElmIHRoZSBwYXJhbWV0ZXIgaGFzIG5vIGRl
ZmF1bHQKKyAgICAgIHZhbHVlLCB0aGlzIGF0dHJpYnV0ZSBpcyBzZXQgdG8gOmF0dHI6YFBhcmFt
ZXRlci5lbXB0eWAuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IFBhcmFtZXRlci5hbm5vdGF0aW9uCisK
KyAgICAgIFRoZSBhbm5vdGF0aW9uIGZvciB0aGUgcGFyYW1ldGVyLiAgSWYgdGhlIHBhcmFtZXRl
ciBoYXMgbm8gYW5ub3RhdGlvbiwKKyAgICAgIHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byA6YXR0
cjpgUGFyYW1ldGVyLmVtcHR5YC4KKworICAgLi4gYXR0cmlidXRlOjogUGFyYW1ldGVyLmtpbmQK
KworICAgICAgRGVzY3JpYmVzIGhvdyBhcmd1bWVudCB2YWx1ZXMgYXJlIGJvdW5kIHRvIHRoZSBw
YXJhbWV0ZXIuICBQb3NzaWJsZSB2YWx1ZXMKKyAgICAgIChhY2Nlc3NpYmxlIHZpYSA6Y2xhc3M6
YFBhcmFtZXRlcmAsIGxpa2UgYGBQYXJhbWV0ZXIuS0VZV09SRF9PTkxZYGApOgorCisgICAgICAr
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICAgIE5hbWUgICAgICAgICAgICAgICAgfCBNZWFuaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICArPT09PT09PT09
PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0rCisgICAgICB8ICpQT1NJVElPTkFMX09OTFkqICAgICAgfCBWYWx1ZSBtdXN0IGJlIHN1
cHBsaWVkIGFzIGEgcG9zaXRpb25hbCAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAg
ICAgICAgfCBhcmd1bWVudC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cisg
ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQ
eXRob24gaGFzIG5vIGV4cGxpY2l0IHN5bnRheCBmb3IgZGVmaW5pbmcgICB8CisgICAgICB8ICAg
ICAgICAgICAgICAgICAgICAgICAgfCBwb3NpdGlvbmFsLW9ubHkgcGFyYW1ldGVycywgYnV0IG1h
bnkgYnVpbHQtaW58CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBhbmQgZXh0ZW5z
aW9uIG1vZHVsZSBmdW5jdGlvbnMgKGVzcGVjaWFsbHkgICB8CisgICAgICB8ICAgICAgICAgICAg
ICAgICAgICAgICAgfCB0aG9zZSB0aGF0IGFjY2VwdCBvbmx5IG9uZSBvciB0d28gcGFyYW1ldGVy
cyl8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBhY2NlcHQgdGhlbS4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAg
ICB8ICpQT1NJVElPTkFMX09SX0tFWVdPUkQqfCBWYWx1ZSBtYXkgYmUgc3VwcGxpZWQgYXMgZWl0
aGVyIGEga2V5d29yZCBvciB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBwb3Np
dGlvbmFsIGFyZ3VtZW50ICh0aGlzIGlzIHRoZSBzdGFuZGFyZCAgICB8CisgICAgICB8ICAgICAg
ICAgICAgICAgICAgICAgICAgfCBiaW5kaW5nIGJlaGF2aW91ciBmb3IgZnVuY3Rpb25zIGltcGxl
bWVudGVkICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBpbiBQeXRob24uKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
CisgICAgICB8ICpWQVJfUE9TSVRJT05BTCogICAgICAgfCBBIHR1cGxlIG9mIHBvc2l0aW9uYWwg
YXJndW1lbnRzIHRoYXQgYXJlbid0ICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg
fCBib3VuZCB0byBhbnkgb3RoZXIgcGFyYW1ldGVyLiBUaGlzICAgICAgICAgICB8CisgICAgICB8
ICAgICAgICAgICAgICAgICAgICAgICAgfCBjb3JyZXNwb25kcyB0byBhIGBgKmFyZ3NgYCBwYXJh
bWV0ZXIgaW4gYSAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24g
ZnVuY3Rpb24gZGVmaW5pdGlvbi4gICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rCisgICAgICB8ICpLRVlXT1JEX09OTFkqICAgICAgICAgfCBWYWx1ZSBtdXN0IGJlIHN1
cHBsaWVkIGFzIGEga2V5d29yZCBhcmd1bWVudC58CisgICAgICB8ICAgICAgICAgICAgICAgICAg
ICAgICAgfCBLZXl3b3JkIG9ubHkgcGFyYW1ldGVycyBhcmUgdGhvc2Ugd2hpY2ggICAgICB8Cisg
ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBhcHBlYXIgYWZ0ZXIgYSBgYCpgYCBvciBg
YCphcmdzYGAgZW50cnkgaW4gYSB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQ
eXRob24gZnVuY3Rpb24gZGVmaW5pdGlvbi4gICAgICAgICAgICAgICAgICB8CisgICAgICArLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rCisgICAgICB8ICpWQVJfS0VZV09SRCogICAgICAgICAgfCBBIGRpY3Qgb2Yg
a2V5d29yZCBhcmd1bWVudHMgdGhhdCBhcmVuJ3QgYm91bmR8CisgICAgICB8ICAgICAgICAgICAg
ICAgICAgICAgICAgfCB0byBhbnkgb3RoZXIgcGFyYW1ldGVyLiBUaGlzIGNvcnJlc3BvbmRzIHRv
IGF8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBgYCoqa3dhcmdzYGAgcGFyYW1l
dGVyIGluIGEgUHl0aG9uIGZ1bmN0aW9uICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAg
ICAgfCBkZWZpbml0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAg
ICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rCisKKyAgICAgIEV4YW1wbGU6IHByaW50IGFsbCBrZXl3b3JkLW9u
bHkgYXJndW1lbnRzIHdpdGhvdXQgZGVmYXVsdCB2YWx1ZXM6OgorCisgICAgICAgICA+Pj4gZGVm
IGZvbyhhLCBiLCAqLCBjLCBkPTEwKToKKyAgICAgICAgIC4uLiAgICAgcGFzcworCisgICAgICAg
ICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykKKyAgICAgICAgID4+PiBmb3IgcGFyYW0gaW4gc2ln
LnBhcmFtZXRlcnMudmFsdWVzKCk6CisgICAgICAgICAuLi4gICAgIGlmIChwYXJhbS5raW5kID09
IHBhcmFtLktFWVdPUkRfT05MWSBhbmQKKyAgICAgICAgIC4uLiAgICAgICAgICAgICAgICAgICAg
ICAgIHBhcmFtLmRlZmF1bHQgaXMgcGFyYW0uZW1wdHkpOgorICAgICAgICAgLi4uICAgICAgICAg
cHJpbnQoJ1BhcmFtZXRlcjonLCBwYXJhbSkKKyAgICAgICAgIFBhcmFtZXRlcjogYworCisgICAu
LiBtZXRob2Q6OiBQYXJhbWV0ZXIucmVwbGFjZSgqWywgbmFtZV1bLCBraW5kXVssIGRlZmF1bHRd
WywgYW5ub3RhdGlvbl0pCisKKyAgICAgIENyZWF0ZSBhIG5ldyBQYXJhbWV0ZXIgaW5zdGFuY2Ug
YmFzZWQgb24gdGhlIGluc3RhbmNlIHJlcGxhY2VkIHdhcyBpbnZva2VkCisgICAgICBvbi4gIFRv
IG92ZXJyaWRlIGEgOmNsYXNzOmBQYXJhbWV0ZXJgIGF0dHJpYnV0ZSwgcGFzcyB0aGUgY29ycmVz
cG9uZGluZworICAgICAgYXJndW1lbnQuICBUbyByZW1vdmUgYSBkZWZhdWx0IHZhbHVlIG9yL2Fu
ZCBhbiBhbm5vdGF0aW9uIGZyb20gYQorICAgICAgUGFyYW1ldGVyLCBwYXNzIDphdHRyOmBQYXJh
bWV0ZXIuZW1wdHlgLgorCisgICAgICA6OgorCisgICAgICAgICA+Pj4gZnJvbSBmdW5jc2lncyBp
bXBvcnQgUGFyYW1ldGVyCisgICAgICAgICA+Pj4gcGFyYW0gPSBQYXJhbWV0ZXIoJ2ZvbycsIFBh
cmFtZXRlci5LRVlXT1JEX09OTFksIGRlZmF1bHQ9NDIpCisgICAgICAgICA+Pj4gc3RyKHBhcmFt
KQorICAgICAgICAgJ2Zvbz00MicKKworICAgICAgICAgPj4+IHN0cihwYXJhbS5yZXBsYWNlKCkp
ICMgV2lsbCBjcmVhdGUgYSBzaGFsbG93IGNvcHkgb2YgJ3BhcmFtJworICAgICAgICAgJ2Zvbz00
MicKKworICAgICAgICAgPj4+IHN0cihwYXJhbS5yZXBsYWNlKGRlZmF1bHQ9UGFyYW1ldGVyLmVt
cHR5LCBhbm5vdGF0aW9uPSdzcGFtJykpCisgICAgICAgICAiZm9vOidzcGFtJyIKKworCisuLiBj
bGFzczo6IEJvdW5kQXJndW1lbnRzCisKKyAgIFJlc3VsdCBvZiBhIDptZXRoOmBTaWduYXR1cmUu
YmluZGAgb3IgOm1ldGg6YFNpZ25hdHVyZS5iaW5kX3BhcnRpYWxgIGNhbGwuCisgICBIb2xkcyB0
aGUgbWFwcGluZyBvZiBhcmd1bWVudHMgdG8gdGhlIGZ1bmN0aW9uJ3MgcGFyYW1ldGVycy4KKwor
ICAgLi4gYXR0cmlidXRlOjogQm91bmRBcmd1bWVudHMuYXJndW1lbnRzCisKKyAgICAgIEFuIG9y
ZGVyZWQsIG11dGFibGUgbWFwcGluZyAoOmNsYXNzOmBjb2xsZWN0aW9ucy5PcmRlcmVkRGljdGAp
IG9mCisgICAgICBwYXJhbWV0ZXJzJyBuYW1lcyB0byBhcmd1bWVudHMnIHZhbHVlcy4gIENvbnRh
aW5zIG9ubHkgZXhwbGljaXRseSBib3VuZAorICAgICAgYXJndW1lbnRzLiAgQ2hhbmdlcyBpbiA6
YXR0cjpgYXJndW1lbnRzYCB3aWxsIHJlZmxlY3QgaW4gOmF0dHI6YGFyZ3NgIGFuZAorICAgICAg
OmF0dHI6YGt3YXJnc2AuCisKKyAgICAgIFNob3VsZCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdp
dGggOmF0dHI6YFNpZ25hdHVyZS5wYXJhbWV0ZXJzYCBmb3IgYW55CisgICAgICBhcmd1bWVudCBw
cm9jZXNzaW5nIHB1cnBvc2VzLgorCisgICAgICAuLiBub3RlOjoKKworICAgICAgICAgQXJndW1l
bnRzIGZvciB3aGljaCA6bWV0aDpgU2lnbmF0dXJlLmJpbmRgIG9yCisgICAgICAgICA6bWV0aDpg
U2lnbmF0dXJlLmJpbmRfcGFydGlhbGAgcmVsaWVkIG9uIGEgZGVmYXVsdCB2YWx1ZSBhcmUgc2tp
cHBlZC4KKyAgICAgICAgIEhvd2V2ZXIsIGlmIG5lZWRlZCwgaXQgaXMgZWFzeSB0byBpbmNsdWRl
IHRoZW0uCisKKyAgICAgIDo6CisKKyAgICAgICAgPj4+IGRlZiBmb28oYSwgYj0xMCk6CisgICAg
ICAgIC4uLiAgICAgcGFzcworCisgICAgICAgID4+PiBzaWcgPSBzaWduYXR1cmUoZm9vKQorICAg
ICAgICA+Pj4gYmEgPSBzaWcuYmluZCg1KQorCisgICAgICAgID4+PiBiYS5hcmdzLCBiYS5rd2Fy
Z3MKKyAgICAgICAgKCg1LCksIHt9KQorCisgICAgICAgID4+PiBmb3IgcGFyYW0gaW4gc2lnLnBh
cmFtZXRlcnMudmFsdWVzKCk6CisgICAgICAgIC4uLiAgICAgaWYgcGFyYW0ubmFtZSBub3QgaW4g
YmEuYXJndW1lbnRzOgorICAgICAgICAuLi4gICAgICAgICBiYS5hcmd1bWVudHNbcGFyYW0ubmFt
ZV0gPSBwYXJhbS5kZWZhdWx0CisKKyAgICAgICAgPj4+IGJhLmFyZ3MsIGJhLmt3YXJncworICAg
ICAgICAoKDUsIDEwKSwge30pCisKKworICAgLi4gYXR0cmlidXRlOjogQm91bmRBcmd1bWVudHMu
YXJncworCisgICAgICBBIHR1cGxlIG9mIHBvc2l0aW9uYWwgYXJndW1lbnRzIHZhbHVlcy4gIER5
bmFtaWNhbGx5IGNvbXB1dGVkIGZyb20gdGhlCisgICAgICA6YXR0cjpgYXJndW1lbnRzYCBhdHRy
aWJ1dGUuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IEJvdW5kQXJndW1lbnRzLmt3YXJncworCisgICAg
ICBBIGRpY3Qgb2Yga2V5d29yZCBhcmd1bWVudHMgdmFsdWVzLiAgRHluYW1pY2FsbHkgY29tcHV0
ZWQgZnJvbSB0aGUKKyAgICAgIDphdHRyOmBhcmd1bWVudHNgIGF0dHJpYnV0ZS4KKworICAgVGhl
IDphdHRyOmBhcmdzYCBhbmQgOmF0dHI6YGt3YXJnc2AgcHJvcGVydGllcyBjYW4gYmUgdXNlZCB0
byBpbnZva2UKKyAgIGZ1bmN0aW9uczo6CisKKyAgICAgIGRlZiB0ZXN0KGEsICosIGIpOgorICAg
ICAgICAgLi4uCisKKyAgICAgIHNpZyA9IHNpZ25hdHVyZSh0ZXN0KQorICAgICAgYmEgPSBzaWcu
YmluZCgxMCwgYj0yMCkKKyAgICAgIHRlc3QoKmJhLmFyZ3MsICoqYmEua3dhcmdzKQorCisKKy4u
IHNlZWFsc286OgorCisgICA6cGVwOmAzNjJgIC0gRnVuY3Rpb24gU2lnbmF0dXJlIE9iamVjdC4K
KyAgICAgIFRoZSBkZXRhaWxlZCBzcGVjaWZpY2F0aW9uLCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxz
IGFuZCBleGFtcGxlcy4KIAogQ29weXJpZ2h0CiAtLS0tLS0tLS0KIAotVGhpcyBpcyBhIGRlcml2
ZWQgd29yayBvZiBDUHl0aG9uIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgYFBTRiBMaWNlbnNlCisq
ZnVuY3NpZ3MqIGlzIGEgZGVyaXZlZCB3b3JrIG9mIENQeXRob24gdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBgUFNGIExpY2Vuc2UKIEFncmVlbWVudGBfLiBUaGUgb3JpZ2luYWwgQ1B5dGhvbiBpbnNw
ZWN0IG1vZHVsZSwgaXRzIHVuaXQgdGVzdHMgYW5kCiBkb2N1bWVudGF0aW9uIGFyZSB0aGUgY29w
eXJpZ2h0IG9mIHRoZSBQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbi4gVGhlIGRlcml2ZWQKIHdv
cmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIGBBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMGBf
LgogCisuLiBfUFNGIExpY2Vuc2UgQWdyZWVtZW50OiBodHRwOi8vZG9jcy5weXRob24ub3JnLzMv
bGljZW5zZS5odG1sI3Rlcm1zLWFuZC1jb25kaXRpb25zLWZvci1hY2Nlc3Npbmctb3Itb3RoZXJ3
aXNlLXVzaW5nLXB5dGhvbgogLi4gX0FwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wOiBodHRwOi8v
b3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotLi4gX0dpdEh1YjogaHR0cHM6Ly9n
aXRodWIuY29tL2FsaWxlcy9mdW5jc2lncworLi4gX0dpdEh1YjogaHR0cHM6Ly9naXRodWIuY29t
L3Rlc3RpbmctY2FiYWwvZnVuY3NpZ3MKIC4uIF9QU0YgTGljZW5zZSBBZ3JlZW1lbnQ6IGh0dHA6
Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWNlbnNlLmh0bWwjdGVybXMtYW5kLWNvbmRpdGlvbnMtZm9y
LWFjY2Vzc2luZy1vci1vdGhlcndpc2UtdXNpbmctcHl0aG9uCiAuLiBfVHJhdmlzIENJOiBodHRw
Oi8vdHJhdmlzLWNpLm9yZy8KIC4uIF9SZWFkIFRoZSBEb2NzOiBodHRwOi8vZnVuY3NpZ3MucmVh
ZHRoZWRvY3Mub3JnLwogLi4gX1BFUCAzNjI6IGh0dHA6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVw
cy9wZXAtMDM2Mi8KIC4uIF9pbnNwZWN0OiBodHRwOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFy
eS9pbnNwZWN0Lmh0bWwjaW50cm9zcGVjdGluZy1jYWxsYWJsZXMtd2l0aC10aGUtc2lnbmF0dXJl
LW9iamVjdAotLi4gX2lzc3VlcyBzeXN0ZW06IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGllcy9mdW5j
c2lncy9pc3N1ZXMKKy4uIF9pc3N1ZXMgc3lzdGVtOiBodHRwczovL2dpdGh1Yi5jb20vdGVzdGlu
Zy1jYWJhbC9mdW5jc2lncy9pc3N1ZXMKIAogLi4gfGJ1aWxkX3N0YXR1c3wgaW1hZ2U6OiBodHRw
czovL3NlY3VyZS50cmF2aXMtY2kub3JnL2FsaWxlcy9mdW5jc2lncy5wbmc/YnJhbmNoPW1hc3Rl
cgogICAgOnRhcmdldDogaHR0cDovL3RyYXZpcy1jaS5vcmcvIyEvYWxpbGVzL2Z1bmNzaWdzCkBA
IC04MSwzICszNDksNSBAQCB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBgQXBhY2hlIExp
Y2Vuc2UgVmVyc2lvbiAyLjBgXy4KIC4uIHxweXBpX3ZlcnNpb258IGltYWdlOjogaHR0cHM6Ly9w
eXBpcC5pbi92L2Z1bmNzaWdzL2JhZGdlLnBuZwogICAgOnRhcmdldDogaHR0cHM6Ly9jcmF0ZS5p
by9wYWNrYWdlcy9mdW5jc2lncy8KICAgIDphbHQ6IExhdGVzdCBQeVBJIHZlcnNpb24KKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvaW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9k
b2NzL2luZGV4LnJzdAppbmRleCA1ZDBmNDJmOTM2OGI3NmQ3ZWY1OGJjOTA4NzQ0ZDg3MjQzYzE0
ODU3Li41ZmJjYTI3ZTZlNmIwMTk4ODdkZGYxYjg2ZmFmODRiN2Y3ZDJhYjk4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Z1bmNzaWdzL2RvY3MvaW5kZXgucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9p
bmRleC5yc3QKQEAgLTksNDggKzksNjUgQEAgSW50cm9kdWNpbmcgZnVuY3NpZ3MKIFRoZSBGdW5j
c2lncyBQYWNrYWdlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0qZnVuY3NpZ3MqIGlzIGEgYmFj
a3BvcnQgb2YgdGhlIGBQRVAgMzYyYF8gZnVuY3Rpb24gc2lnbmF0dXJlIGZlYXR1cmVzIGZyb20K
K2BgZnVuY3NpZ3NgYCBpcyBhIGJhY2twb3J0IG9mIHRoZSBgUEVQIDM2MmBfIGZ1bmN0aW9uIHNp
Z25hdHVyZSBmZWF0dXJlcyBmcm9tCiBQeXRob24gMy4zJ3MgYGluc3BlY3RgXyBtb2R1bGUuIFRo
ZSBiYWNrcG9ydCBpcyBjb21wYXRpYmxlIHdpdGggUHl0aG9uIDIuNiwgMi43Ci1hcyB3ZWxsIGFz
IDMuMiBhbmQgdXAuCithcyB3ZWxsIGFzIDMuMyBhbmQgdXAuIDMuMiB3YXMgc3VwcG9ydGVkIGJ5
IHZlcnNpb24gMC40LCBidXQgd2l0aCBzZXR1cHRvb2xzIGFuZAorcGlwIG5vIGxvbmdlciBzdXBw
b3J0aW5nIDMuMiwgd2UgY2Fubm90IG1ha2UgYW55IHN0YXRlbWVudCBhYm91dCAzLjIKK2NvbXBh
dGliaWxpdHkuCiAKLS4uIF9QRVAgMzYyOiBodHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMv
cGVwLTAzNjIvCi0uLiBfaW5zcGVjdDogaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkv
aW5zcGVjdC5odG1sI2ludHJvc3BlY3RpbmctY2FsbGFibGVzLXdpdGgtdGhlLXNpZ25hdHVyZS1v
YmplY3QKLQotQ29tcGF0YWJpbGl0eQorQ29tcGF0aWJpbGl0eQogYGBgYGBgYGBgYGBgYAogCi1U
aGUgKmZ1bmNzaWdzKiBiYWNrcG9ydCBoYXMgYmVlbiB0ZXN0ZWQgYWdhaW5zdDoKK1RoZSBgYGZ1
bmNzaWdzYGAgYmFja3BvcnQgaGFzIGJlZW4gdGVzdGVkIGFnYWluc3Q6CiAKICogQ1B5dGhvbiAy
LjYKICogQ1B5dGhvbiAyLjcKLSogQ1B5dGhvbiAzLjIKLSogUHlQeSAxLjkKKyogQ1B5dGhvbiAz
LjMKKyogQ1B5dGhvbiAzLjQKKyogQ1B5dGhvbiAzLjUKKyogQ1B5dGhvbiBuaWdodGxpZXMKKyog
UHlQeSBhbmQgUHlQeTMoY3VycmVudGx5IGZhaWxpbmcgQ0kpCiAKIENvbnRpbnVvdXMgaW50ZWdy
YXRpb24gdGVzdGluZyBpcyBwcm92aWRlZCBieSBgVHJhdmlzIENJYF8uCiAKLVVuZGVyIFB5dGhv
biAyLnggdGhlcmUgaXMgYSBjb21wYXRhYmlsaXR5IGlzc3VlIHdoZW4gYSBmdW5jdGlvbiBpcyBh
c3NpZ25lZCB0bworVW5kZXIgUHl0aG9uIDIueCB0aGVyZSBpcyBhIGNvbXBhdGliaWxpdHkgaXNz
dWUgd2hlbiBhIGZ1bmN0aW9uIGlzIGFzc2lnbmVkIHRvCiB0aGUgYGBfX3dyYXBwZWRfX2BgIHBy
b3BlcnR5IG9mIGEgY2xhc3MgYWZ0ZXIgaXQgaGFzIGJlZW4gY29uc3RydWN0ZWQuCiBTaW1pbGlh
cmlseSB0aGVyZSB1bmRlciBQeVB5IGRpcmVjdGx5IHBhc3NpbmcgdGhlIGBgX19jYWxsX19gYCBt
ZXRob2Qgb2YgYQotYnVpbHRpbiBpcyBhbHNvIGEgY29tcGF0YWJpbGl0eSBpc3N1ZXMuICBPdGhl
cndpc2UgdGhlIGZ1bmN0aW9uYWxpdHkgaXMKK2J1aWx0aW4gaXMgYWxzbyBhIGNvbXBhdGliaWxp
dHkgaXNzdWVzLiAgT3RoZXJ3aXNlIHRoZSBmdW5jdGlvbmFsaXR5IGlzCiBiZWxpZXZlZCB0byBi
ZSB1bmlmb3JtIGJldHdlZW4gYm90aCBQeXRob24yIGFuZCBQeXRob24zLgogCi0uLiBfVHJhdmlz
IENJOiBodHRwOi8vdHJhdmlzLWNpLm9yZy8KLQogSXNzdWVzCiBgYGBgYGAKIAotU291cmNlIGNv
ZGUgZm9yICpmdW5jc2lncyogaXMgaG9zdGVkIG9uIGBHaXRIdWJgXy4gQW55IGJ1ZyByZXBvcnRz
IG9yIGZlYXR1cmUKLXJlcXVlc3RzIGNhbiBiZSBtYWRlIHVzaW5nIEdpdEh1YidzIGBpc3N1ZXMg
c3lzdGVtYF8uCitTb3VyY2UgY29kZSBmb3IgYGBmdW5jc2lnc2BgIGlzIGhvc3RlZCBvbiBgR2l0
SHViYF8uIEFueSBidWcgcmVwb3J0cyBvciBmZWF0dXJlCityZXF1ZXN0cyBjYW4gYmUgbWFkZSB1
c2luZyBHaXRIdWIncyBgaXNzdWVzIHN5c3RlbWBfLiB8YnVpbGRfc3RhdHVzfCB8Y292ZXJhZ2V8
CiAKLS4uIF9HaXRIdWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGlsZXMvZnVuY3NpZ3MKLS4uIF9p
c3N1ZXMgc3lzdGVtOiBodHRwczovL2dpdGh1Yi5jb20vYWxpZXMvZnVuY3NpZ3MvaXNzdWVzCitF
eGFtcGxlCistLS0tLS0tCisKK1RvIG9idGFpbiBhIGBTaWduYXR1cmVgIG9iamVjdCwgcGFzcyB0
aGUgdGFyZ2V0IGZ1bmN0aW9uIHRvIHRoZQorYGBmdW5jc2lncy5zaWduYXR1cmVgYCBmdW5jdGlv
bi4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgPj4+IGZyb20gZnVuY3NpZ3MgaW1w
b3J0IHNpZ25hdHVyZQorICAgID4+PiBkZWYgZm9vKGEsIGI9Tm9uZSwgKmFyZ3MsICoqa3dhcmdz
KToKKyAgICAuLi4gICAgIHBhc3MKKyAgICAuLi4KKyAgICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZv
bykKKyAgICA+Pj4gc2lnCisgICAgPGZ1bmNzaWdzLlNpZ25hdHVyZSBvYmplY3QgYXQgMHguLi4+
CisgICAgPj4+IHNpZy5wYXJhbWV0ZXJzCisgICAgT3JkZXJlZERpY3QoWygnYScsIDxQYXJhbWV0
ZXIgYXQgMHguLi4gJ2EnPiksICgnYicsIDxQYXJhbWV0ZXIgYXQgMHguLi4gJ2InPiksICgnYXJn
cycsIDxQYXJhbWV0ZXIgYXQgMHguLi4gJ2FyZ3MnPiksICgna3dhcmdzJywgPFBhcmFtZXRlciBh
dCAweC4uLiAna3dhcmdzJz4pXSkKKyAgICA+Pj4gc2lnLnJldHVybl9hbm5vdGF0aW9uCisgICAg
PGNsYXNzICdmdW5jc2lncy5fZW1wdHknPgogCiBJbnRyb3NwZWN0aW5nIGNhbGxhYmxlcyB3aXRo
IHRoZSBTaWduYXR1cmUgb2JqZWN0CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKIC4uIG5vdGU6OgogCi0gICBUaGlzIHNlY3Rpb24gb2YgZG9jdW1l
bnRhdGlvbiBpcyBhIGRpcmVjdCByZXBvZHVjdGlvbiBvZiB0aGUgUHl0aG9uCisgICBUaGlzIHNl
Y3Rpb24gb2YgZG9jdW1lbnRhdGlvbiBpcyBhIGRpcmVjdCByZXByb2R1Y3Rpb24gb2YgdGhlIFB5
dGhvbgogICAgc3RhbmRhcmQgbGlicmFyeSBkb2N1bWVudGF0aW9uIGZvciB0aGUgaW5zcGVjdCBt
b2R1bGUuCiAKIFRoZSBTaWduYXR1cmUgb2JqZWN0IHJlcHJlc2VudHMgdGhlIGNhbGwgc2lnbmF0
dXJlIG9mIGEgY2FsbGFibGUgb2JqZWN0IGFuZCBpdHMKQEAgLTYxLDcgKzc4LDcgQEAgZnVuY3Rp
b24uCiAKICAgIFJldHVybiBhIDpjbGFzczpgU2lnbmF0dXJlYCBvYmplY3QgZm9yIHRoZSBnaXZl
biBgYGNhbGxhYmxlYGA6OgogCi0gICAgICA+Pj4gZnJvbSBpbnNwZWN0IGltcG9ydCBzaWduYXR1
cmUKKyAgICAgID4+PiBmcm9tIGZ1bmNzaWdzIGltcG9ydCBzaWduYXR1cmUKICAgICAgID4+PiBk
ZWYgZm9vKGEsICosIGI6aW50LCAqKmt3YXJncyk6CiAgICAgICAuLi4gICAgIHBhc3MKIApAQCAt
MjI1LDcgKzI0Miw3IEBAIGZ1bmN0aW9uLgogCiAgICAgICA6OgogCi0gICAgICAgICA+Pj4gZnJv
bSBpbnNwZWN0IGltcG9ydCBQYXJhbWV0ZXIKKyAgICAgICAgID4+PiBmcm9tIGZ1bmNzaWdzIGlt
cG9ydCBQYXJhbWV0ZXIKICAgICAgICAgID4+PiBwYXJhbSA9IFBhcmFtZXRlcignZm9vJywgUGFy
YW1ldGVyLktFWVdPUkRfT05MWSwgZGVmYXVsdD00MikKICAgICAgICAgID4+PiBzdHIocGFyYW0p
CiAgICAgICAgICAnZm9vPTQyJwpAQCAtMzEzLDMgKzMzMCwyNCBAQCB3b3JrIGlzIGRpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBgQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjBgXy4KIAogLi4gX1BTRiBM
aWNlbnNlIEFncmVlbWVudDogaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zL2xpY2Vuc2UuaHRtbCN0
ZXJtcy1hbmQtY29uZGl0aW9ucy1mb3ItYWNjZXNzaW5nLW9yLW90aGVyd2lzZS11c2luZy1weXRo
b24KIC4uIF9BcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMDogaHR0cDovL29wZW5zb3VyY2Uub3Jn
L2xpY2Vuc2VzL0FwYWNoZS0yLjAKKy4uIF9HaXRIdWI6IGh0dHBzOi8vZ2l0aHViLmNvbS90ZXN0
aW5nLWNhYmFsL2Z1bmNzaWdzCisuLiBfUFNGIExpY2Vuc2UgQWdyZWVtZW50OiBodHRwOi8vZG9j
cy5weXRob24ub3JnLzMvbGljZW5zZS5odG1sI3Rlcm1zLWFuZC1jb25kaXRpb25zLWZvci1hY2Nl
c3Npbmctb3Itb3RoZXJ3aXNlLXVzaW5nLXB5dGhvbgorLi4gX1RyYXZpcyBDSTogaHR0cDovL3Ry
YXZpcy1jaS5vcmcvCisuLiBfUmVhZCBUaGUgRG9jczogaHR0cDovL2Z1bmNzaWdzLnJlYWR0aGVk
b2NzLm9yZy8KKy4uIF9QRVAgMzYyOiBodHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVw
LTAzNjIvCisuLiBfaW5zcGVjdDogaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvaW5z
cGVjdC5odG1sI2ludHJvc3BlY3RpbmctY2FsbGFibGVzLXdpdGgtdGhlLXNpZ25hdHVyZS1vYmpl
Y3QKKy4uIF9pc3N1ZXMgc3lzdGVtOiBodHRwczovL2dpdGh1Yi5jb20vdGVzdGluZy1jYWJhbC9m
dW5jc2lncy9pc3N1ZXMKKworLi4gfGJ1aWxkX3N0YXR1c3wgaW1hZ2U6OiBodHRwczovL3NlY3Vy
ZS50cmF2aXMtY2kub3JnL2FsaWxlcy9mdW5jc2lncy5wbmc/YnJhbmNoPW1hc3RlcgorICAgOnRh
cmdldDogaHR0cDovL3RyYXZpcy1jaS5vcmcvIyEvYWxpbGVzL2Z1bmNzaWdzCisgICA6YWx0OiBD
dXJyZW50IGJ1aWxkIHN0YXR1cworCisuLiB8Y292ZXJhZ2V8IGltYWdlOjogaHR0cHM6Ly9jb3Zl
cmFsbHMuaW8vcmVwb3MvYWxpbGVzL2Z1bmNzaWdzL2JhZGdlLnBuZz9icmFuY2g9bWFzdGVyCisg
ICA6dGFyZ2V0OiBodHRwczovL2NvdmVyYWxscy5pby9yL2FsaWxlcy9mdW5jc2lncz9icmFuY2g9
bWFzdGVyCisgICA6YWx0OiBDb3ZlcmFnZSBzdGF0dXMKKworLi4gfHB5cGlfdmVyc2lvbnwgaW1h
Z2U6OiBodHRwczovL3B5cGlwLmluL3YvZnVuY3NpZ3MvYmFkZ2UucG5nCisgICA6dGFyZ2V0OiBo
dHRwczovL2NyYXRlLmlvL3BhY2thZ2VzL2Z1bmNzaWdzLworICAgOmFsdDogTGF0ZXN0IFB5UEkg
dmVyc2lvbgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvX19pbml0X18u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL19faW5pdF9fLnB5CmluZGV4IGZkMmY0N2IxZDRk
ZjZlYzJhZmZlNmY2NzhhMWE1ODNkZjk1NDM1YjUuLjVmNTM3OGI0MmE2ZDI3Y2Y0OTBkNjZhZTJi
NzljNzZiYjQ2NmNlZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvX19pbml0
X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy9fX2luaXRfXy5weQpAQCAtMiw3ICsy
LDcgQEAKICIiIkZ1bmN0aW9uIHNpZ25hdHVyZSBvYmplY3RzIGZvciBjYWxsYWJsZXMKIAogQmFj
ayBwb3J0IG9mIFB5dGhvbiAzLjMncyBmdW5jdGlvbiBzaWduYXR1cmUgdG9vbHMgZnJvbSB0aGUg
aW5zcGVjdCBtb2R1bGUsCi1tb2RpZmllZCB0byBiZSBjb21wYXRpYmxlIHdpdGggUHl0aG9uIDIu
NiwgMi43IGFuZCAzLjIrLgorbW9kaWZpZWQgdG8gYmUgY29tcGF0aWJsZSB3aXRoIFB5dGhvbiAy
LjYsIDIuNyBhbmQgMy4zKy4KICIiIgogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgogaW1wb3J0IGl0ZXJ0b29scwpAQCAtMTMs
NyArMTMsNyBAQCBpbXBvcnQgdHlwZXMKIHRyeToKICAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9y
dCBPcmRlcmVkRGljdAogZXhjZXB0IEltcG9ydEVycm9yOgotICAgIGZyb20gZnVuY3NpZ3Mub2Rp
Y3QgaW1wb3J0IE9yZGVyZWREaWN0CisgICAgZnJvbSBvcmRlcmVkZGljdCBpbXBvcnQgT3JkZXJl
ZERpY3QKIAogZnJvbSBmdW5jc2lncy52ZXJzaW9uIGltcG9ydCBfX3ZlcnNpb25fXwogCkBAIC02
MSwxOCArNjEsMjkgQEAgZGVmIHNpZ25hdHVyZShvYmopOgogICAgIGlmIGlzaW5zdGFuY2Uob2Jq
LCB0eXBlcy5NZXRob2RUeXBlKToKICAgICAgICAgc2lnID0gc2lnbmF0dXJlKG9iai5fX2Z1bmNf
XykKICAgICAgICAgaWYgb2JqLl9fc2VsZl9fIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIFVuYm91
bmQgbWV0aG9kOiB0aGUgZmlyc3QgcGFyYW1ldGVyIGJlY29tZXMgcG9zaXRpb25hbC1vbmx5Ci0g
ICAgICAgICAgICBpZiBzaWcucGFyYW1ldGVyczoKLSAgICAgICAgICAgICAgICBmaXJzdCA9IHNp
Zy5wYXJhbWV0ZXJzLnZhbHVlcygpWzBdLnJlcGxhY2UoCi0gICAgICAgICAgICAgICAgICAgIGtp
bmQ9X1BPU0lUSU9OQUxfT05MWSkKLSAgICAgICAgICAgICAgICByZXR1cm4gc2lnLnJlcGxhY2Uo
Ci0gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM9KGZpcnN0LCkgKyB0dXBsZShzaWcucGFy
YW1ldGVycy52YWx1ZXMoKSlbMTpdKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICByZXR1cm4gc2lnCisgICAgICAgICAgICAjIFVuYm91bmQgbWV0aG9kIC0gcHJlc2VydmUgYXMt
aXMuCisgICAgICAgICAgICByZXR1cm4gc2lnCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAj
IEluIHRoaXMgY2FzZSB3ZSBza2lwIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb2YgdGhlIHVuZGVybHlp
bmcKLSAgICAgICAgICAgICMgZnVuY3Rpb24gKHVzdWFsbHkgYHNlbGZgIG9yIGBjbHNgKS4KLSAg
ICAgICAgICAgIHJldHVybiBzaWcucmVwbGFjZShwYXJhbWV0ZXJzPXR1cGxlKHNpZy5wYXJhbWV0
ZXJzLnZhbHVlcygpKVsxOl0pCisgICAgICAgICAgICAjIEJvdW5kIG1ldGhvZC4gRWF0IHNlbGYg
LSBpZiB3ZSBjYW4uCisgICAgICAgICAgICBwYXJhbXMgPSB0dXBsZShzaWcucGFyYW1ldGVycy52
YWx1ZXMoKSkKKworICAgICAgICAgICAgaWYgbm90IHBhcmFtcyBvciBwYXJhbXNbMF0ua2luZCBp
biAoX1ZBUl9LRVlXT1JELCBfS0VZV09SRF9PTkxZKToKKyAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCdpbnZhbGlkIG1ldGhvZCBzaWduYXR1cmUnKQorCisgICAgICAgICAgICBraW5k
ID0gcGFyYW1zWzBdLmtpbmQKKyAgICAgICAgICAgIGlmIGtpbmQgaW4gKF9QT1NJVElPTkFMX09S
X0tFWVdPUkQsIF9QT1NJVElPTkFMX09OTFkpOgorICAgICAgICAgICAgICAgICMgRHJvcCBmaXJz
dCBwYXJhbWV0ZXI6CisgICAgICAgICAgICAgICAgIyAnKHAxLCBwMlssIC4uLl0pJyAtPiAnKHAy
WywgLi4uXSknCisgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zWzE6XQorICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBraW5kIGlzIG5vdCBfVkFSX1BPU0lUSU9OQUw6
CisgICAgICAgICAgICAgICAgICAgICMgVW5sZXNzIHdlIGFkZCBhIG5ldyBwYXJhbWV0ZXIgdHlw
ZSB3ZSBuZXZlcgorICAgICAgICAgICAgICAgICAgICAjIGdldCBoZXJlCisgICAgICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2ludmFsaWQgYXJndW1lbnQgdHlwZScpCisgICAgICAg
ICAgICAgICAgIyBJdCdzIGEgdmFyLXBvc2l0aW9uYWwgcGFyYW1ldGVyLgorICAgICAgICAgICAg
ICAgICMgRG8gbm90aGluZy4gJygqYXJnc1ssIC4uLl0pJyAtPiAnKCphcmdzWywgLi4uXSknCisK
KyAgICAgICAgICAgIHJldHVybiBzaWcucmVwbGFjZShwYXJhbWV0ZXJzPXBhcmFtcykKIAogICAg
IHRyeToKICAgICAgICAgc2lnID0gb2JqLl9fc2lnbmF0dXJlX18KQEAgLTc2OSwxNiArNzgwLDE2
IEBAIGNsYXNzIFNpZ25hdHVyZShvYmplY3QpOgogICAgICAgICAgICAgICAgICMgUHJvY2VzcyBv
dXIgJyoqa3dhcmdzJy1saWtlIHBhcmFtZXRlcgogICAgICAgICAgICAgICAgIGFyZ3VtZW50c1tr
d2FyZ3NfcGFyYW0ubmFtZV0gPSBrd2FyZ3MKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgVHlwZUVycm9yKCd0b28gbWFueSBrZXl3b3JkIGFyZ3VtZW50cycpCisgICAg
ICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd0b28gbWFueSBrZXl3b3JkIGFyZ3VtZW50cyAl
cicgJSBrd2FyZ3MpCiAKICAgICAgICAgcmV0dXJuIHNlbGYuX2JvdW5kX2FyZ3VtZW50c19jbHMo
c2VsZiwgYXJndW1lbnRzKQogCi0gICAgZGVmIGJpbmQoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToK
KyAgICBkZWYgYmluZCgqYXJncywgKiprd2FyZ3MpOgogICAgICAgICAnJydHZXQgYSBCb3VuZEFy
Z3VtZW50cyBvYmplY3QsIHRoYXQgbWFwcyB0aGUgcGFzc2VkIGBhcmdzYAogICAgICAgICBhbmQg
YGt3YXJnc2AgdG8gdGhlIGZ1bmN0aW9uJ3Mgc2lnbmF0dXJlLiAgUmFpc2VzIGBUeXBlRXJyb3Jg
CiAgICAgICAgIGlmIHRoZSBwYXNzZWQgYXJndW1lbnRzIGNhbiBub3QgYmUgYm91bmQuCiAgICAg
ICAgICcnJwotICAgICAgICByZXR1cm4gc2VsZi5fYmluZChhcmdzLCBrd2FyZ3MpCisgICAgICAg
IHJldHVybiBhcmdzWzBdLl9iaW5kKGFyZ3NbMTpdLCBrd2FyZ3MpCiAKICAgICBkZWYgYmluZF9w
YXJ0aWFsKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgICcnJ0dldCBhIEJvdW5kQXJn
dW1lbnRzIG9iamVjdCwgdGhhdCBwYXJ0aWFsbHkgbWFwcyB0aGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvZnVuY3NpZ3Mvb2RpY3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL29kaWN0
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MjIxZTk3MWIzNzk0ZGVlNmUwNzc1
NjRlNWM2Zjg1NDM1N2QyMzQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3Mvb2RpY3QucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwyNjEgKzAsMCBAQAotIyBCYWNrcG9ydCBvZiBPcmRlcmVkRGljdCgpIGNsYXNzIHRoYXQg
cnVucyBvbiBQeXRob24gMi40LCAyLjUsIDIuNiwgMi43IGFuZCBweXB5LgotIyBQYXNzZXMgUHl0
aG9uMi43J3MgdGVzdCBzdWl0ZSBhbmQgaW5jb3Jwb3JhdGVzIGFsbCB0aGUgbGF0ZXN0IHVwZGF0
ZXMuCi0jIENvcHlyaWdodCAyMDA5IFJheW1vbmQgSGV0dGluZ2VyCi0jIGh0dHA6Ly9jb2RlLmFj
dGl2ZXN0YXRlLmNvbS9yZWNpcGVzLzU3NjY5My8KLSJPcmRlcmVkIGRpY3Rpb25hcnkiCi0KLXRy
eToKLSAgICBmcm9tIHRocmVhZCBpbXBvcnQgZ2V0X2lkZW50IGFzIF9nZXRfaWRlbnQKLWV4Y2Vw
dCBJbXBvcnRFcnJvcjoKLSAgICBmcm9tIGR1bW15X3RocmVhZCBpbXBvcnQgZ2V0X2lkZW50IGFz
IF9nZXRfaWRlbnQKLQotdHJ5OgotICAgIGZyb20gX2FiY29sbCBpbXBvcnQgS2V5c1ZpZXcsIFZh
bHVlc1ZpZXcsIEl0ZW1zVmlldwotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHBhc3MKLQotCi1j
bGFzcyBPcmRlcmVkRGljdChkaWN0KToKLSAgICAnRGljdGlvbmFyeSB0aGF0IHJlbWVtYmVycyBp
bnNlcnRpb24gb3JkZXInCi0gICAgIyBBbiBpbmhlcml0ZWQgZGljdCBtYXBzIGtleXMgdG8gdmFs
dWVzLgotICAgICMgVGhlIGluaGVyaXRlZCBkaWN0IHByb3ZpZGVzIF9fZ2V0aXRlbV9fLCBfX2xl
bl9fLCBfX2NvbnRhaW5zX18sIGFuZCBnZXQuCi0gICAgIyBUaGUgcmVtYWluaW5nIG1ldGhvZHMg
YXJlIG9yZGVyLWF3YXJlLgotICAgICMgQmlnLU8gcnVubmluZyB0aW1lcyBmb3IgYWxsIG1ldGhv
ZHMgYXJlIHRoZSBzYW1lIGFzIGZvciByZWd1bGFyIGRpY3Rpb25hcmllcy4KLQotICAgICMgVGhl
IGludGVybmFsIHNlbGYuX19tYXAgZGljdGlvbmFyeSBtYXBzIGtleXMgdG8gbGlua3MgaW4gYSBk
b3VibHkgbGlua2VkIGxpc3QuCi0gICAgIyBUaGUgY2lyY3VsYXIgZG91Ymx5IGxpbmtlZCBsaXN0
IHN0YXJ0cyBhbmQgZW5kcyB3aXRoIGEgc2VudGluZWwgZWxlbWVudC4KLSAgICAjIFRoZSBzZW50
aW5lbCBlbGVtZW50IG5ldmVyIGdldHMgZGVsZXRlZCAodGhpcyBzaW1wbGlmaWVzIHRoZSBhbGdv
cml0aG0pLgotICAgICMgRWFjaCBsaW5rIGlzIHN0b3JlZCBhcyBhIGxpc3Qgb2YgbGVuZ3RoIHRo
cmVlOiAgW1BSRVYsIE5FWFQsIEtFWV0uCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3Ms
ICoqa3dkcyk6Ci0gICAgICAgICcnJ0luaXRpYWxpemUgYW4gb3JkZXJlZCBkaWN0aW9uYXJ5LiAg
U2lnbmF0dXJlIGlzIHRoZSBzYW1lIGFzIGZvcgotICAgICAgICByZWd1bGFyIGRpY3Rpb25hcmll
cywgYnV0IGtleXdvcmQgYXJndW1lbnRzIGFyZSBub3QgcmVjb21tZW5kZWQKLSAgICAgICAgYmVj
YXVzZSB0aGVpciBpbnNlcnRpb24gb3JkZXIgaXMgYXJiaXRyYXJ5LgotCi0gICAgICAgICcnJwot
ICAgICAgICBpZiBsZW4oYXJncykgPiAxOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdl
eHBlY3RlZCBhdCBtb3N0IDEgYXJndW1lbnRzLCBnb3QgJWQnICUgbGVuKGFyZ3MpKQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9fcm9vdAotICAgICAgICBleGNlcHQgQXR0cmlidXRl
RXJyb3I6Ci0gICAgICAgICAgICBzZWxmLl9fcm9vdCA9IHJvb3QgPSBbXSAgICAgICAgICAgICAg
ICAgICAgICMgc2VudGluZWwgbm9kZQotICAgICAgICAgICAgcm9vdFs6XSA9IFtyb290LCByb290
LCBOb25lXQotICAgICAgICAgICAgc2VsZi5fX21hcCA9IHt9Ci0gICAgICAgIHNlbGYuX191cGRh
dGUoKmFyZ3MsICoqa3dkcykKLQotICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVl
LCBkaWN0X3NldGl0ZW09ZGljdC5fX3NldGl0ZW1fXyk6Ci0gICAgICAgICdvZC5fX3NldGl0ZW1f
XyhpLCB5KSA8PT0+IG9kW2ldPXknCi0gICAgICAgICMgU2V0dGluZyBhIG5ldyBpdGVtIGNyZWF0
ZXMgYSBuZXcgbGluayB3aGljaCBnb2VzIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmtlZAotICAgICAg
ICAjIGxpc3QsIGFuZCB0aGUgaW5oZXJpdGVkIGRpY3Rpb25hcnkgaXMgdXBkYXRlZCB3aXRoIHRo
ZSBuZXcga2V5L3ZhbHVlIHBhaXIuCi0gICAgICAgIGlmIGtleSBub3QgaW4gc2VsZjoKLSAgICAg
ICAgICAgIHJvb3QgPSBzZWxmLl9fcm9vdAotICAgICAgICAgICAgbGFzdCA9IHJvb3RbMF0KLSAg
ICAgICAgICAgIGxhc3RbMV0gPSByb290WzBdID0gc2VsZi5fX21hcFtrZXldID0gW2xhc3QsIHJv
b3QsIGtleV0KLSAgICAgICAgZGljdF9zZXRpdGVtKHNlbGYsIGtleSwgdmFsdWUpCi0KLSAgICBk
ZWYgX19kZWxpdGVtX18oc2VsZiwga2V5LCBkaWN0X2RlbGl0ZW09ZGljdC5fX2RlbGl0ZW1fXyk6
Ci0gICAgICAgICdvZC5fX2RlbGl0ZW1fXyh5KSA8PT0+IGRlbCBvZFt5XScKLSAgICAgICAgIyBE
ZWxldGluZyBhbiBleGlzdGluZyBpdGVtIHVzZXMgc2VsZi5fX21hcCB0byBmaW5kIHRoZSBsaW5r
IHdoaWNoIGlzCi0gICAgICAgICMgdGhlbiByZW1vdmVkIGJ5IHVwZGF0aW5nIHRoZSBsaW5rcyBp
biB0aGUgcHJlZGVjZXNzb3IgYW5kIHN1Y2Nlc3NvciBub2Rlcy4KLSAgICAgICAgZGljdF9kZWxp
dGVtKHNlbGYsIGtleSkKLSAgICAgICAgbGlua19wcmV2LCBsaW5rX25leHQsIGtleSA9IHNlbGYu
X19tYXAucG9wKGtleSkKLSAgICAgICAgbGlua19wcmV2WzFdID0gbGlua19uZXh0Ci0gICAgICAg
IGxpbmtfbmV4dFswXSA9IGxpbmtfcHJldgotCi0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAg
ICAgICAnb2QuX19pdGVyX18oKSA8PT0+IGl0ZXIob2QpJwotICAgICAgICByb290ID0gc2VsZi5f
X3Jvb3QKLSAgICAgICAgY3VyciA9IHJvb3RbMV0KLSAgICAgICAgd2hpbGUgY3VyciBpcyBub3Qg
cm9vdDoKLSAgICAgICAgICAgIHlpZWxkIGN1cnJbMl0KLSAgICAgICAgICAgIGN1cnIgPSBjdXJy
WzFdCi0KLSAgICBkZWYgX19yZXZlcnNlZF9fKHNlbGYpOgotICAgICAgICAnb2QuX19yZXZlcnNl
ZF9fKCkgPD09PiByZXZlcnNlZChvZCknCi0gICAgICAgIHJvb3QgPSBzZWxmLl9fcm9vdAotICAg
ICAgICBjdXJyID0gcm9vdFswXQotICAgICAgICB3aGlsZSBjdXJyIGlzIG5vdCByb290OgotICAg
ICAgICAgICAgeWllbGQgY3VyclsyXQotICAgICAgICAgICAgY3VyciA9IGN1cnJbMF0KLQotICAg
IGRlZiBjbGVhcihzZWxmKToKLSAgICAgICAgJ29kLmNsZWFyKCkgLT4gTm9uZS4gIFJlbW92ZSBh
bGwgaXRlbXMgZnJvbSBvZC4nCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZvciBub2RlIGlu
IHNlbGYuX19tYXAuaXRlcnZhbHVlcygpOgotICAgICAgICAgICAgICAgIGRlbCBub2RlWzpdCi0g
ICAgICAgICAgICByb290ID0gc2VsZi5fX3Jvb3QKLSAgICAgICAgICAgIHJvb3RbOl0gPSBbcm9v
dCwgcm9vdCwgTm9uZV0KLSAgICAgICAgICAgIHNlbGYuX19tYXAuY2xlYXIoKQotICAgICAgICBl
eGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGRpY3QuY2xl
YXIoc2VsZikKLQotICAgIGRlZiBwb3BpdGVtKHNlbGYsIGxhc3Q9VHJ1ZSk6Ci0gICAgICAgICcn
J29kLnBvcGl0ZW0oKSAtPiAoaywgdiksIHJldHVybiBhbmQgcmVtb3ZlIGEgKGtleSwgdmFsdWUp
IHBhaXIuCi0gICAgICAgIFBhaXJzIGFyZSByZXR1cm5lZCBpbiBMSUZPIG9yZGVyIGlmIGxhc3Qg
aXMgdHJ1ZSBvciBGSUZPIG9yZGVyIGlmIGZhbHNlLgotCi0gICAgICAgICcnJwotICAgICAgICBp
ZiBub3Qgc2VsZjoKLSAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKCdkaWN0aW9uYXJ5IGlzIGVt
cHR5JykKLSAgICAgICAgcm9vdCA9IHNlbGYuX19yb290Ci0gICAgICAgIGlmIGxhc3Q6Ci0gICAg
ICAgICAgICBsaW5rID0gcm9vdFswXQotICAgICAgICAgICAgbGlua19wcmV2ID0gbGlua1swXQot
ICAgICAgICAgICAgbGlua19wcmV2WzFdID0gcm9vdAotICAgICAgICAgICAgcm9vdFswXSA9IGxp
bmtfcHJldgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbGluayA9IHJvb3RbMV0KLSAgICAg
ICAgICAgIGxpbmtfbmV4dCA9IGxpbmtbMV0KLSAgICAgICAgICAgIHJvb3RbMV0gPSBsaW5rX25l
eHQKLSAgICAgICAgICAgIGxpbmtfbmV4dFswXSA9IHJvb3QKLSAgICAgICAga2V5ID0gbGlua1sy
XQotICAgICAgICBkZWwgc2VsZi5fX21hcFtrZXldCi0gICAgICAgIHZhbHVlID0gZGljdC5wb3Ao
c2VsZiwga2V5KQotICAgICAgICByZXR1cm4ga2V5LCB2YWx1ZQotCi0gICAgIyAtLSB0aGUgZm9s
bG93aW5nIG1ldGhvZHMgZG8gbm90IGRlcGVuZCBvbiB0aGUgaW50ZXJuYWwgc3RydWN0dXJlIC0t
Ci0KLSAgICBkZWYga2V5cyhzZWxmKToKLSAgICAgICAgJ29kLmtleXMoKSAtPiBsaXN0IG9mIGtl
eXMgaW4gb2QnCi0gICAgICAgIHJldHVybiBsaXN0KHNlbGYpCi0KLSAgICBkZWYgdmFsdWVzKHNl
bGYpOgotICAgICAgICAnb2QudmFsdWVzKCkgLT4gbGlzdCBvZiB2YWx1ZXMgaW4gb2QnCi0gICAg
ICAgIHJldHVybiBbc2VsZltrZXldIGZvciBrZXkgaW4gc2VsZl0KLQotICAgIGRlZiBpdGVtcyhz
ZWxmKToKLSAgICAgICAgJ29kLml0ZW1zKCkgLT4gbGlzdCBvZiAoa2V5LCB2YWx1ZSkgcGFpcnMg
aW4gb2QnCi0gICAgICAgIHJldHVybiBbKGtleSwgc2VsZltrZXldKSBmb3Iga2V5IGluIHNlbGZd
Ci0KLSAgICBkZWYgaXRlcmtleXMoc2VsZik6Ci0gICAgICAgICdvZC5pdGVya2V5cygpIC0+IGFu
IGl0ZXJhdG9yIG92ZXIgdGhlIGtleXMgaW4gb2QnCi0gICAgICAgIHJldHVybiBpdGVyKHNlbGYp
Ci0KLSAgICBkZWYgaXRlcnZhbHVlcyhzZWxmKToKLSAgICAgICAgJ29kLml0ZXJ2YWx1ZXMgLT4g
YW4gaXRlcmF0b3Igb3ZlciB0aGUgdmFsdWVzIGluIG9kJwotICAgICAgICBmb3IgayBpbiBzZWxm
OgotICAgICAgICAgICAgeWllbGQgc2VsZltrXQotCi0gICAgZGVmIGl0ZXJpdGVtcyhzZWxmKToK
LSAgICAgICAgJ29kLml0ZXJpdGVtcyAtPiBhbiBpdGVyYXRvciBvdmVyIHRoZSAoa2V5LCB2YWx1
ZSkgaXRlbXMgaW4gb2QnCi0gICAgICAgIGZvciBrIGluIHNlbGY6Ci0gICAgICAgICAgICB5aWVs
ZCAoaywgc2VsZltrXSkKLQotICAgIGRlZiB1cGRhdGUoKmFyZ3MsICoqa3dkcyk6Ci0gICAgICAg
ICcnJ29kLnVwZGF0ZShFLCAqKkYpIC0+IE5vbmUuICBVcGRhdGUgb2QgZnJvbSBkaWN0L2l0ZXJh
YmxlIEUgYW5kIEYuCi0KLSAgICAgICAgSWYgRSBpcyBhIGRpY3QgaW5zdGFuY2UsIGRvZXM6ICAg
ICAgICAgICBmb3IgayBpbiBFOiBvZFtrXSA9IEVba10KLSAgICAgICAgSWYgRSBoYXMgYSAua2V5
cygpIG1ldGhvZCwgZG9lczogICAgICAgICBmb3IgayBpbiBFLmtleXMoKTogb2Rba10gPSBFW2td
Ci0gICAgICAgIE9yIGlmIEUgaXMgYW4gaXRlcmFibGUgb2YgaXRlbXMsIGRvZXM6ICAgZm9yIGss
IHYgaW4gRTogb2Rba10gPSB2Ci0gICAgICAgIEluIGVpdGhlciBjYXNlLCB0aGlzIGlzIGZvbGxv
d2VkIGJ5OiAgICAgZm9yIGssIHYgaW4gRi5pdGVtcygpOiBvZFtrXSA9IHYKLQotICAgICAgICAn
JycKLSAgICAgICAgaWYgbGVuKGFyZ3MpID4gMjoKLSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv
cigndXBkYXRlKCkgdGFrZXMgYXQgbW9zdCAyIHBvc2l0aW9uYWwgJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdhcmd1bWVudHMgKCVkIGdpdmVuKScgJSAobGVuKGFyZ3MpLCkpCi0gICAg
ICAgIGVsaWYgbm90IGFyZ3M6Ci0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ3VwZGF0ZSgp
IHRha2VzIGF0IGxlYXN0IDEgYXJndW1lbnQgKDAgZ2l2ZW4pJykKLSAgICAgICAgc2VsZiA9IGFy
Z3NbMF0KLSAgICAgICAgIyBNYWtlIHByb2dyZXNzaXZlbHkgd2Vha2VyIGFzc3VtcHRpb25zIGFi
b3V0ICJvdGhlciIKLSAgICAgICAgb3RoZXIgPSAoKQotICAgICAgICBpZiBsZW4oYXJncykgPT0g
MjoKLSAgICAgICAgICAgIG90aGVyID0gYXJnc1sxXQotICAgICAgICBpZiBpc2luc3RhbmNlKG90
aGVyLCBkaWN0KToKLSAgICAgICAgICAgIGZvciBrZXkgaW4gb3RoZXI6Ci0gICAgICAgICAgICAg
ICAgc2VsZltrZXldID0gb3RoZXJba2V5XQotICAgICAgICBlbGlmIGhhc2F0dHIob3RoZXIsICdr
ZXlzJyk6Ci0gICAgICAgICAgICBmb3Iga2V5IGluIG90aGVyLmtleXMoKToKLSAgICAgICAgICAg
ICAgICBzZWxmW2tleV0gPSBvdGhlcltrZXldCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBm
b3Iga2V5LCB2YWx1ZSBpbiBvdGhlcjoKLSAgICAgICAgICAgICAgICBzZWxmW2tleV0gPSB2YWx1
ZQotICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBrd2RzLml0ZW1zKCk6Ci0gICAgICAgICAgICBz
ZWxmW2tleV0gPSB2YWx1ZQotCi0gICAgX191cGRhdGUgPSB1cGRhdGUgICMgbGV0IHN1YmNsYXNz
ZXMgb3ZlcnJpZGUgdXBkYXRlIHdpdGhvdXQgYnJlYWtpbmcgX19pbml0X18KLQotICAgIF9fbWFy
a2VyID0gb2JqZWN0KCkKLQotICAgIGRlZiBwb3Aoc2VsZiwga2V5LCBkZWZhdWx0PV9fbWFya2Vy
KToKLSAgICAgICAgJycnb2QucG9wKGtbLGRdKSAtPiB2LCByZW1vdmUgc3BlY2lmaWVkIGtleSBh
bmQgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLgotICAgICAgICBJZiBrZXkgaXMgbm90
IGZvdW5kLCBkIGlzIHJldHVybmVkIGlmIGdpdmVuLCBvdGhlcndpc2UgS2V5RXJyb3IgaXMgcmFp
c2VkLgotCi0gICAgICAgICcnJwotICAgICAgICBpZiBrZXkgaW4gc2VsZjoKLSAgICAgICAgICAg
IHJlc3VsdCA9IHNlbGZba2V5XQotICAgICAgICAgICAgZGVsIHNlbGZba2V5XQotICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdAotICAgICAgICBpZiBkZWZhdWx0IGlzIHNlbGYuX19tYXJrZXI6Ci0g
ICAgICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCi0gICAgICAgIHJldHVybiBkZWZhdWx0Ci0K
LSAgICBkZWYgc2V0ZGVmYXVsdChzZWxmLCBrZXksIGRlZmF1bHQ9Tm9uZSk6Ci0gICAgICAgICdv
ZC5zZXRkZWZhdWx0KGtbLGRdKSAtPiBvZC5nZXQoayxkKSwgYWxzbyBzZXQgb2Rba109ZCBpZiBr
IG5vdCBpbiBvZCcKLSAgICAgICAgaWYga2V5IGluIHNlbGY6Ci0gICAgICAgICAgICByZXR1cm4g
c2VsZltrZXldCi0gICAgICAgIHNlbGZba2V5XSA9IGRlZmF1bHQKLSAgICAgICAgcmV0dXJuIGRl
ZmF1bHQKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmLCBfcmVwcl9ydW5uaW5nPXt9KToKLSAgICAg
ICAgJ29kLl9fcmVwcl9fKCkgPD09PiByZXByKG9kKScKLSAgICAgICAgY2FsbF9rZXkgPSBpZChz
ZWxmKSwgX2dldF9pZGVudCgpCi0gICAgICAgIGlmIGNhbGxfa2V5IGluIF9yZXByX3J1bm5pbmc6
Ci0gICAgICAgICAgICByZXR1cm4gJy4uLicKLSAgICAgICAgX3JlcHJfcnVubmluZ1tjYWxsX2tl
eV0gPSAxCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmOgotICAgICAgICAg
ICAgICAgIHJldHVybiAnJXMoKScgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sKQotICAgICAg
ICAgICAgcmV0dXJuICclcyglciknICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLml0
ZW1zKCkpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBkZWwgX3JlcHJfcnVubmluZ1tj
YWxsX2tleV0KLQotICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgotICAgICAgICAnUmV0dXJuIHN0
YXRlIGluZm9ybWF0aW9uIGZvciBwaWNrbGluZycKLSAgICAgICAgaXRlbXMgPSBbW2ssIHNlbGZb
a11dIGZvciBrIGluIHNlbGZdCi0gICAgICAgIGluc3RfZGljdCA9IHZhcnMoc2VsZikuY29weSgp
Ci0gICAgICAgIGZvciBrIGluIHZhcnMoT3JkZXJlZERpY3QoKSk6Ci0gICAgICAgICAgICBpbnN0
X2RpY3QucG9wKGssIE5vbmUpCi0gICAgICAgIGlmIGluc3RfZGljdDoKLSAgICAgICAgICAgIHJl
dHVybiAoc2VsZi5fX2NsYXNzX18sIChpdGVtcywpLCBpbnN0X2RpY3QpCi0gICAgICAgIHJldHVy
biBzZWxmLl9fY2xhc3NfXywgKGl0ZW1zLCkKLQotICAgIGRlZiBjb3B5KHNlbGYpOgotICAgICAg
ICAnb2QuY29weSgpIC0+IGEgc2hhbGxvdyBjb3B5IG9mIG9kJwotICAgICAgICByZXR1cm4gc2Vs
Zi5fX2NsYXNzX18oc2VsZikKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9ta2V5cyhj
bHMsIGl0ZXJhYmxlLCB2YWx1ZT1Ob25lKToKLSAgICAgICAgJycnT0QuZnJvbWtleXMoU1ssIHZd
KSAtPiBOZXcgb3JkZXJlZCBkaWN0aW9uYXJ5IHdpdGgga2V5cyBmcm9tIFMKLSAgICAgICAgYW5k
IHZhbHVlcyBlcXVhbCB0byB2ICh3aGljaCBkZWZhdWx0cyB0byBOb25lKS4KLQotICAgICAgICAn
JycKLSAgICAgICAgZCA9IGNscygpCi0gICAgICAgIGZvciBrZXkgaW4gaXRlcmFibGU6Ci0gICAg
ICAgICAgICBkW2tleV0gPSB2YWx1ZQotICAgICAgICByZXR1cm4gZAotCi0gICAgZGVmIF9fZXFf
XyhzZWxmLCBvdGhlcik6Ci0gICAgICAgICcnJ29kLl9fZXFfXyh5KSA8PT0+IG9kPT15LiAgQ29t
cGFyaXNvbiB0byBhbm90aGVyIE9EIGlzIG9yZGVyLXNlbnNpdGl2ZQotICAgICAgICB3aGlsZSBj
b21wYXJpc29uIHRvIGEgcmVndWxhciBtYXBwaW5nIGlzIG9yZGVyLWluc2Vuc2l0aXZlLgotCi0g
ICAgICAgICcnJwotICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCBPcmRlcmVkRGljdCk6Ci0g
ICAgICAgICAgICByZXR1cm4gbGVuKHNlbGYpPT1sZW4ob3RoZXIpIGFuZCBzZWxmLml0ZW1zKCkg
PT0gb3RoZXIuaXRlbXMoKQotICAgICAgICByZXR1cm4gZGljdC5fX2VxX18oc2VsZiwgb3RoZXIp
Ci0KLSAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxm
ID09IG90aGVyCi0KLSAgICAjIC0tIHRoZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgb25seSB1c2Vk
IGluIFB5dGhvbiAyLjcgLS0KLQotICAgIGRlZiB2aWV3a2V5cyhzZWxmKToKLSAgICAgICAgIm9k
LnZpZXdrZXlzKCkgLT4gYSBzZXQtbGlrZSBvYmplY3QgcHJvdmlkaW5nIGEgdmlldyBvbiBvZCdz
IGtleXMiCi0gICAgICAgIHJldHVybiBLZXlzVmlldyhzZWxmKQotCi0gICAgZGVmIHZpZXd2YWx1
ZXMoc2VsZik6Ci0gICAgICAgICJvZC52aWV3dmFsdWVzKCkgLT4gYW4gb2JqZWN0IHByb3ZpZGlu
ZyBhIHZpZXcgb24gb2QncyB2YWx1ZXMiCi0gICAgICAgIHJldHVybiBWYWx1ZXNWaWV3KHNlbGYp
Ci0KLSAgICBkZWYgdmlld2l0ZW1zKHNlbGYpOgotICAgICAgICAib2Qudmlld2l0ZW1zKCkgLT4g
YSBzZXQtbGlrZSBvYmplY3QgcHJvdmlkaW5nIGEgdmlldyBvbiBvZCdzIGl0ZW1zIgotICAgICAg
ICByZXR1cm4gSXRlbXNWaWV3KHNlbGYpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNz
aWdzL3ZlcnNpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL3ZlcnNpb24ucHkKaW5kZXgg
ODk2YTM3MGNhZDE2Y2YxODM2Y2UxM2YzYjU0ZDQ5YzE5MWRmODI4MS4uNzg2MzkxNWZhNWY4ZjAx
NGM2NGM4YWJmZjQxYTEzOGU5YjNjZDRkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5j
c2lncy92ZXJzaW9uLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvdmVyc2lvbi5weQpA
QCAtMSArMSBAQAotX192ZXJzaW9uX18gPSAiMC40IgorX192ZXJzaW9uX18gPSAiMS4wLjIiCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9m
dW5jc2lncy9mdW5jc2lncy93M2MtaW1wb3J0LmxvZwppbmRleCBmYzFhZWRlN2I0N2Y4ODNkN2Zh
NjVlMzFlZmI0MTQ0NzI3ZjlkZTkxLi4zZDg0ZjI2ZmQwNDk0ZGMxYjE4YTlkYjk2MzJlZjBlZTJm
YzU3NWM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL3czYy1pbXBvcnQubG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDUgKzE1
LDQgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvZnVuY3NpZ3MvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL29kaWN0LnB5
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy92ZXJzaW9uLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1
bmNzaWdzL3JlcXVpcmVtZW50cy9kZXZlbG9wbWVudC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVp
cmVtZW50cy9kZXZlbG9wbWVudC50eHQKaW5kZXggZWNhZmIwYTUyN2QzZTc5NmM3MDgwZjEwMDg1
YjUzN2E3MzAwZTk4Ni4uNDBkZWRkOTJiZjA2YWMzNDMzN2ZlMjdiYTk3NDIyYmFhNDgxYjdlMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvZGV2ZWxvcG1lbnQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL2RldmVsb3BtZW50LnR4dApAQCAtMSw2ICsx
LDUgQEAKIGNvdmVyYWdlCiBjb3ZlcmFsbHMKLXBpcAogZmxha2U4CiBzcGhpbngKLXdoZWVsCit1
bml0dGVzdDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3Byb2R1Y3Rp
b24udHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvcHJvZHVjdGlvbi50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMy
ZTQ4YzUzOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9m
dW5jc2lncy9yZXF1aXJlbWVudHMvdzNjLWltcG9ydC5sb2cKaW5kZXggZTIyNWY3YjA2YzM5M2M3
NTRlZjgzYjJjYjIyZGNkNDU5OGEzMjQwOC4uZDFiYWZkODMwZWM1NTQ0ODEyNWY0YTg2YTA3YmMz
Zjg1NGUyZTQwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvdzNjLWlt
cG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvdzNjLWltcG9ydC5sb2cK
QEAgLTE1LDQgKzE1LDMgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL2RldmVsb3BtZW50LnR4dAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvcmVxdWlyZW1lbnRzL3Byb2R1Y3Rpb24udHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdz
L3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9zZXR1cC5weQppbmRleCA5OGIwOTEyNjA0NTNjMTQ2
MzhmNzBmY2U5ZjUwMmRkODJiYmU4YjNlLi5mMzY5Njg4OGY5ZWJlYTczMTUzMDM0MzIzZThhMTZm
ZmY2YmE4MjlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3NldHVwLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3Mvc2V0dXAucHkKQEAgLTE0LDI2ICsxNCwyMiBAQCBkZWYgbG9hZF92ZXJzaW9uKGZp
bGVuYW1lPSdmdW5jc2lncy92ZXJzaW9uLnB5Jyk6CiAgICAgICAgIHZlcnNpb24gPSBtYXRjaC5n
cm91cCgxKQogICAgICAgICByZXR1cm4gdmVyc2lvbgogCi1kZWYgbG9hZF9yc3QoZmlsZW5hbWU9
J2RvY3Mvc291cmNlL2d1aWRlX2NvbnRlbnQucnN0Jyk6Ci0gICAgIlB1cmdlIHJlZnMgZGlyZWN0
aXZlcyBmcm9tIHJlc3RydWN0dXJlZCB0ZXh0IgotICAgIHdpdGggb3BlbihmaWxlbmFtZSkgYXMg
c291cmNlOgotICAgICAgICB0ZXh0ID0gc291cmNlLnJlYWQoKQotICAgICAgICBkb2MgPSByZS5z
dWIocic6XHcrOmB+PyhbYS16QS1aLl8oKV0rKWAnLCByJypcMSonLCB0ZXh0KQotICAgICAgICBy
ZXR1cm4gZG9jCiAKIHNldHVwKAogICAgIG5hbWU9ImZ1bmNzaWdzIiwKICAgICB2ZXJzaW9uPWxv
YWRfdmVyc2lvbigpLAogICAgIHBhY2thZ2VzPVsnZnVuY3NpZ3MnXSwKICAgICB6aXBfc2FmZT1G
YWxzZSwKLSAgICBhdXRob3I9IkFhcm9uIElsZXMiLAotICAgIGF1dGhvcl9lbWFpbD0iYWFyb24u
aWxlc0BnbWFpbC5jb20iLAorICAgIGF1dGhvcj0iVGVzdGluZyBDYWJhbCIsCisgICAgYXV0aG9y
X2VtYWlsPSJ0ZXN0aW5nLWluLXB5dGhvbkBsaXN0cy5pZHlsbC5vcmciLAogICAgIHVybD0iaHR0
cDovL2Z1bmNzaWdzLnJlYWR0aGVkb2NzLm9yZyIsCiAgICAgZGVzY3JpcHRpb249IlB5dGhvbiBm
dW5jdGlvbiBzaWduYXR1cmVzIGZyb20gUEVQMzYyIGZvciBQeXRob24gMi42LCAyLjcgYW5kIDMu
MisiLAogICAgIGxvbmdfZGVzY3JpcHRpb249b3BlbignUkVBRE1FLnJzdCcpLnJlYWQoKSwKLSAg
ICAjIGxvbmdfZGVzY3JpcHRpb249bG9hZF9yc3QoKSwKICAgICBsaWNlbnNlPSJBU0wiLAotICAg
IGluc3RhbGxfcmVxdWlyZXMgPSBbXSwKKyAgICBleHRyYXNfcmVxdWlyZSA9IHsKKyAgICAgICAg
JzpweXRob25fdmVyc2lvbjwiMi43Iic6IFsnb3JkZXJlZGRpY3QnXSwKKyAgICB9LAorICAgIHNl
dHVwX3JlcXVpcmVzID0gWyJzZXR1cHRvb2xzPj0xNy4xIl0sCiAgICAgY2xhc3NpZmllcnMgPSBb
CiAgICAgICAgICdEZXZlbG9wbWVudCBTdGF0dXMgOjogNCAtIEJldGEnLAogICAgICAgICAnSW50
ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycycsCkBAIC00NCwxMiArNDAsMTMgQEAgc2V0dXAo
CiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi42JywKICAgICAg
ICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyLjcnLAogICAgICAgICAnUHJv
Z3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMnLAotICAgICAgICAnUHJvZ3JhbW1pbmcg
TGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuMicsCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFn
ZSA6OiBQeXRob24gOjogMy4zJywKKyAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5
dGhvbiA6OiAzLjQnLAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6
IDMuNScsCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVt
ZW50YXRpb24gOjogQ1B5dGhvbicsCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQ
eXRob24gOjogSW1wbGVtZW50YXRpb24gOjogUHlQeScsCiAgICAgICAgICdUb3BpYyA6OiBTb2Z0
d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1vZHVsZXMnCiAgICAgXSwK
LSAgICB0ZXN0c19yZXF1aXJlID0gW10gaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDIgZWxzZSBb
J3VuaXR0ZXN0MiddLAotICAgIHRlc3Rfc3VpdGUgPSAidGVzdHMiIGlmIHN5cy52ZXJzaW9uX2lu
Zm9bMF0gPiAyIGVsc2UgJ3VuaXR0ZXN0Mi5jb2xsZWN0b3InCisgICAgdGVzdHNfcmVxdWlyZSA9
IFsndW5pdHRlc3QyJ10sCisgICAgdGVzdF9zdWl0ZSA9ICd1bml0dGVzdDIuY29sbGVjdG9yJywK
ICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9mb3JtYXRhbm5vdGF0aW9u
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2Zvcm1hdGFubm90YXRpb24ucHkKaW5kZXgg
ZmQ3YTg4NzNmODU1Y2FlOGViZTI5M2U0NGU4ZTA1NzIxY2VlZjYwMS4uNGI5OGU2MDM3ZDgzMDIx
NTFhNWFlOTNjYzQ3OTNiZTFkNDllMDhlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0
cy90ZXN0X2Zvcm1hdGFubm90YXRpb24ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0
X2Zvcm1hdGFubm90YXRpb24ucHkKQEAgLTEsMTIgKzEsNiBAQAotdHJ5OgotICAgICMgcHl0aG9u
IDIueAotICAgIGltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKLWV4Y2VwdCBJbXBvcnRFcnJv
cjoKLSAgICAjIHB5dGhvbiAzLngKLSAgICBpbXBvcnQgdW5pdHRlc3QKLQogaW1wb3J0IGZ1bmNz
aWdzCiAKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogY2xhc3MgVGVzdEZvcm1hdEFu
bm90YXRpb24odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3N0cmluZyAoc2VsZik6
CkBAIC0yMSw3ICsxNSwzIEBAIGNsYXNzIFRlc3RGb3JtYXRBbm5vdGF0aW9uKHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICAgICAgY2xhc3MgZHVtbXkgKG9iamVjdCk6IHBhc3MKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChmdW5jc2lncy5mb3JtYXRhbm5vdGF0aW9uKGR1bW15KSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAidGVzdHMudGVzdF9mb3JtYXRhbm5vdGF0aW9uLmR1bW15IikKLQot
Ci1pZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgIHVuaXR0ZXN0LmJlZ2luKCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9mdW5jc2lncy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvdGVzdHMvdGVzdF9mdW5jc2lncy5weQppbmRleCBlZWNjMGE4YTcwOTE5OGM2OTljZDE5Nzcz
YWI0MjMyODAxN2IyYjZlLi5hN2I5Y2NhNzY3OWY0YmIwNDk5NGM2ZDAyMTU4MzdhZGNiMjFlYzk1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3Rlc3RfZnVuY3NpZ3MucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2Z1bmNzaWdzLnB5CkBAIC0xLDkgKzEsNCBAQAotdHJ5
OgotICAgICMgcHl0aG9uIDIueAotICAgIGltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKLWV4
Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAjIHB5dGhvbiAzLngKLSAgICBpbXBvcnQgdW5pdHRlc3QK
K2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogaW1wb3J0IGRvY3Rlc3QKIGltcG9ydCBz
eXMKQEAgLTY5LDI1ICs2NCwyOCBAQCBjbGFzcyBUZXN0RnVuY3Rpb25TaWduYXR1cmVzKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGluc3BlY3QuX192ZXJzaW9u
X18pCiAKICAgICBkZWYgdGVzdF9yZWFkbWUoc2VsZik6CisgICAgICAgICMgWFhYOiBUaGlzIGZh
aWxzIGJ1dCBkb2Vzbid0IGZhaWwgdGhlIGJ1aWxkLgorCSMgKGFuZCB0aGUgc3ludGF4IGlzbid0
IHZhbGlkIG9uIGFsbCBweXRob25zIHNvIHRoYXQgc2VlbXMgYSBsaXR0bGUKKwkjIGhhcmQgdG8g
Z2V0IHJpZ2h0LgogICAgICAgICBkb2N0ZXN0LnRlc3RmaWxlKCcuLi9SRUFETUUucnN0JykKIAog
ICAgIGRlZiB0ZXN0X3VuYm91bmRfbWV0aG9kKHNlbGYpOgotICAgICAgICBpZiBzeXMudmVyc2lv
bl9pbmZvIDwgKDMsKToKLSAgICAgICAgICAgIHNlbGZfa2luZCA9ICJwb3NpdGlvbmFsX29ubHki
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmX2tpbmQgPSAicG9zaXRpb25hbF9vcl9r
ZXl3b3JkIgorICAgICAgICBzZWxmX2tpbmQgPSAicG9zaXRpb25hbF9vcl9rZXl3b3JkIgogICAg
ICAgICBjbGFzcyBUZXN0KG9iamVjdCk6CiAgICAgICAgICAgICBkZWYgbWV0aG9kKHNlbGYpOgog
ICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGRlZiBtZXRob2Rfd2l0aF9hcmdzKHNl
bGYsIGEpOgogICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
ZWxmLnNpZ25hdHVyZShUZXN0Lm1ldGhvZCksCi0gICAgICAgICAgICAgICAgKCgoKCdzZWxmJywg
RWxsaXBzaXMsIEVsbGlwc2lzLCBzZWxmX2tpbmQpKSwpLCBFbGxpcHNpcykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoVGVzdC5tZXRob2Rfd2l0aF9hcmdzKSwgKCgK
LSAgICAgICAgICAgICAgICAoJ3NlbGYnLCBFbGxpcHNpcywgRWxsaXBzaXMsIHNlbGZfa2luZCks
Ci0gICAgICAgICAgICAgICAgKCdhJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9v
cl9rZXl3b3JkIiksCisgICAgICAgICAgICBkZWYgbWV0aG9kX3dpdGhfdmFyYXJncygqYXJncyk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAg
ICAgICAgc2VsZi5zaWduYXR1cmUoVGVzdC5tZXRob2QpLAorICAgICAgICAgICAgKCgoKCdzZWxm
JywgRWxsaXBzaXMsIEVsbGlwc2lzLCBzZWxmX2tpbmQpKSwpLCBFbGxpcHNpcykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBzZWxmLnNpZ25hdHVyZShUZXN0Lm1ldGhv
ZF93aXRoX2FyZ3MpLAorICAgICAgICAgICAgKCgoJ3NlbGYnLCBFbGxpcHNpcywgRWxsaXBzaXMs
IHNlbGZfa2luZCksCisgICAgICAgICAgICAgICgnYScsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBv
c2l0aW9uYWxfb3Jfa2V5d29yZCIpLAogICAgICAgICAgICAgICAgICksIEVsbGlwc2lzKSkKLQot
Ci1pZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgIHVuaXR0ZXN0LmJlZ2luKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIHNlbGYuc2lnbmF0dXJlKFRlc3QubWV0
aG9kX3dpdGhfdmFyYXJncyksCisgICAgICAgICAgICAoKCgnYXJncycsIEVsbGlwc2lzLCBFbGxp
cHNpcywgInZhcl9wb3NpdGlvbmFsIiksKSwgRWxsaXBzaXMpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9m
dW5jc2lncy90ZXN0cy90ZXN0X2luc3BlY3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3Rlc3Rf
aW5zcGVjdC5weQppbmRleCAzMjNjMzIzZWFmZDk4NjAzMTA1YmEwNTdlY2VmMzQ5NWZhMTYyZjY5
Li45OGQ2NTkyZmNjNzIyMjYzMmNkNjlmZGY0ODg5NjYzYWUxNzE4ZDIzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Z1bmNzaWdzL3Rlc3RzL3Rlc3RfaW5zcGVjdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rl
c3RzL3Rlc3RfaW5zcGVjdC5weQpAQCAtMSwxMiArMSwxMCBAQAogIyBDb3B5cmlnaHQgMjAwMS0y
MDEzIFB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBBbGwgUmlnaHRzIFJlc2VydmVkCiBmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCiBpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBmdW5jdG9vbHMKIGltcG9ydCBzeXMKIAot
dHJ5OgotICAgIGltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKLWV4Y2VwdCBJbXBvcnRFcnJv
cjoKLSAgICBpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAog
aW1wb3J0IGZ1bmNzaWdzIGFzIGluc3BlY3QKIApAQCAtMjQsMTEgKzIyLDYgQEAgY2xhc3MgVGVz
dFNpZ25hdHVyZU9iamVjdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgKEVs
bGlwc2lzIGlmIHNpZy5yZXR1cm5fYW5ub3RhdGlvbiBpcyBzaWcuZW1wdHkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBzaWcucmV0dXJuX2Fubm90YXRp
b24pKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAg
IHVuaXR0ZXN0LlRlc3RDYXNlLl9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykKLSAgICAg
ICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ2Fzc2VydFJhaXNlc1JlZ2V4Jyk6Ci0gICAgICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4ID0gc2VsZi5hc3NlcnRSYWlzZXNSZWdleHAKLQogICAg
IGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAyOgogICAgICAgICBleGVjKCIiIgogZGVmIHRlc3Rf
c2lnbmF0dXJlX29iamVjdChzZWxmKToKQEAgLTY1NiwxMSArNjQ5LDYgQEAgZGVmIHRlc3Rfc2ln
bmF0dXJlX3JlcGxhY2VfYW5ubyhzZWxmKToKIAogY2xhc3MgVGVzdFBhcmFtZXRlck9iamVjdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dh
cmdzKToKLSAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UuX19pbml0X18oc2VsZiwgKmFyZ3MsICoq
a3dhcmdzKQotICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAnYXNzZXJ0UmFpc2VzUmVnZXgn
KToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXggPSBzZWxmLmFzc2VydFJhaXNl
c1JlZ2V4cAotCiAgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX3BhcmFtZXRlcl9raW5kcyhzZWxmKToK
ICAgICAgICAgUCA9IGluc3BlY3QuUGFyYW1ldGVyCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQ
LlBPU0lUSU9OQUxfT05MWSA8IFAuUE9TSVRJT05BTF9PUl9LRVlXT1JEIDwgXApAQCAtNzgwLDEx
ICs3NjgsNiBAQCBjbGFzcyBUZXN0U2lnbmF0dXJlQmluZCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIGJhID0gc2lnLmJpbmQoKmFyZ3MsICoqa3dhcmdzKQogICAgICAgICByZXR1cm4gZnVu
YygqYmEuYXJncywgKipiYS5rd2FyZ3MpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3Ms
ICoqa3dhcmdzKToKLSAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UuX19pbml0X18oc2VsZiwgKmFy
Z3MsICoqa3dhcmdzKQotICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAnYXNzZXJ0UmFpc2Vz
UmVnZXgnKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXggPSBzZWxmLmFzc2Vy
dFJhaXNlc1JlZ2V4cAotCiAgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX2JpbmRfZW1wdHkoc2VsZik6
CiAgICAgICAgIGRlZiB0ZXN0KCk6CiAgICAgICAgICAgICByZXR1cm4gNDIKQEAgLTk4MiwxMyAr
OTY1LDE3IEBAIGRlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX3Bvc2l0aW9uYWxfb25seShzZWxmKToK
ICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIGFfcG89MSwgYl9wbz0yKQogIiIiKQogCisgICAgZGVm
IHRlc3RfYmluZF9zZWxmKHNlbGYpOgorICAgICAgICBjbGFzcyBGOgorICAgICAgICAgICAgZGVm
IGYoYSwgc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIGEsIHNlbGYKKyAgICAgICAgYW5f
ZiA9IEYoKQorICAgICAgICBwYXJ0aWFsX2YgPSBmdW5jdG9vbHMucGFydGlhbChGLmYsIGFuX2Yp
CisgICAgICAgIGJhID0gaW5zcGVjdC5zaWduYXR1cmUocGFydGlhbF9mKS5iaW5kKHNlbGY9MTAp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKGFuX2YsIDEwKSwgcGFydGlhbF9mKCpiYS5hcmdz
LCAqKmJhLmt3YXJncykpCiAKLWNsYXNzIFRlc3RCb3VuZEFyZ3VtZW50cyh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAg
ICAgdW5pdHRlc3QuVGVzdENhc2UuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQotICAg
ICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAnYXNzZXJ0UmFpc2VzUmVnZXgnKToKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXggPSBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4cAorY2xh
c3MgVGVzdEJvdW5kQXJndW1lbnRzKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0
X3NpZ25hdHVyZV9ib3VuZF9hcmd1bWVudHNfdW5oYXNoYWJsZShzZWxmKToKICAgICAgICAgZGVm
IGZvbyhhKTogcGFzcwpAQCAtMTAxMyw3ICsxMDAwLDMgQEAgY2xhc3MgVGVzdEJvdW5kQXJndW1l
bnRzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZGVmIGJhcihiKTogcGFzcwogICAgICAg
ICBiYTQgPSBpbnNwZWN0LnNpZ25hdHVyZShiYXIpLmJpbmQoMSkKICAgICAgICAgc2VsZi5hc3Nl
cnROb3RFcXVhbChiYSwgYmE0KQotCi0KLWlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAg
dW5pdHRlc3QuYmVnaW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90b3guaW5pIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9mdW5jc2lncy90b3guaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4NzNjNzQ0YTAwNWU4OTc4MGU2MWYzN2Zm
NmUwNWE3MGViNWJiZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3RveC5pbmkK
QEAgLTAsMCArMSw4IEBACitbdG94XQorZW52bGlzdCA9IHB5MjYsIHB5MjcsIHB5MzMsIHB5MzQs
IHB5MzUsIHB5MzYsIHB5cHksIHB5cHkzCisKK1t0ZXN0ZW52XQorZGVwcyA9IC1ycmVxdWlyZW1l
bnRzL2RldmVsb3BtZW50LnR4dAorY29tbWFuZHMgPSAKKyAgICBjb3ZlcmFnZSBydW4gc2V0dXAu
cHkgdGVzdAorICAgIGNvdmVyYWdlIHJlcG9ydCAtLXNob3ctbWlzc2luZwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9mdW5jc2lncy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdzNjLWltcG9ydC5s
b2cKaW5kZXggZjFlZWJiMjczMzUwZmRmMjYxOWY3NDVkYWY0ODJkMjNjODA2NzY3ZC4uNzI1MTli
ZDA4OWEzNzAzYmMzOTk4NGNmYWJlN2YxN2Y4MjdkOGQwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5j
c2lncy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3czYy1pbXBvcnQubG9nCkBA
IC0yMSwzICsyMSw0IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9SRUFETUUucnN0
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy9zZXR1cC5jZmcKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3NldHVwLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9mdW5jc2lncy90b3guaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL0NPTlRSSUJVVE9SUy5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2gyL0NPTlRSSUJVVE9SUy5yc3QKaW5kZXggYmRjNGQwNmMzMWEwZjY4OWY3YTgyNjA3
YzdiM2MxNTZhMmY1OWFkZS4uNWM0ODQ5ZmVmMGYxMDc0YjI3NjVlNjNmYzU3NWY2NzU2NDU2ZDJi
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9DT05UUklCVVRPUlMucnN0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvQ09O
VFJJQlVUT1JTLnJzdApAQCAtMTExLDQgKzExMSw1IEBAIEluIGNocm9ub2xvZ2ljYWwgb3JkZXI6
CiAtIEZyZWQgVGhvbXNlbiAoQGZyZWR0aG9tc2VuKQogCiAgIC0gQWRkZWQgbG9nZ2luZy4KLQor
ICAtIEVuaGFuY2UgZXF1YWxpdHkgdGVzdGluZyBvZiBgYGgyLnNldHRpbmdzLlNldHRpbmdzYGAg
b2JqZWN0cyB3aXRoCisgICAgYGBoeXBvdGhlc2lzYGAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL0hJ
U1RPUlkucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9ISVNUT1JZLnJzdAppbmRleCBlOWZhNzQ1ZDUxNjI3M2YyM2E4
MDg3ZmRjMjE1NDQ1ZDVkMDY5NmRlLi41MjQ0Y2Q4YTk0MWNjOTA5N2JmMmIwMzViYjI1YmFmZWI3
ZTQ4ZjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL0hJU1RPUlkucnN0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvSElT
VE9SWS5yc3QKQEAgLTEsNiArMSw2NSBAQAogUmVsZWFzZSBIaXN0b3J5CiA9PT09PT09PT09PT09
PT0KIAorMy4yLjAgKDIwMjAtMDItMDgpCistLS0tLS0tLS0tLS0tLS0tLS0KKworQnVnZml4ZXMK
K35+fn5+fn5+CisKKy0gUmVjZWl2aW5nIERBVEEgZnJhbWVzIG9uIGNsb3NlZCAob3IgcmVzZXQp
IHN0cmVhbXMgbm93IHByb3Blcmx5IGVtaXQgYQorICBXSU5ET1dfVVBEQVRFIHRvIGtlZXAgdGhl
IGNvbm5lY3Rpb24gZmxvdyB3aW5kb3cgdG9wcGVkIHVwLgorCitBUEkgQ2hhbmdlcyAoQmFja3dh
cmQtSW5jb21wYXRpYmxlKQorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwor
LSBgYGgyLmNvbmZpZy5sb2dnZXJgYCBub3cgdXNlcyBhIGB0cmFjZSguLi4pYCBmdW5jdGlvbiwg
aW4gYWRkaXRpb24KKyAgdG8gYGRlYnVnKC4uLilgLiBJZiB5b3UgZGVmaW5lZCBhIGN1c3RvbSBs
b2dnZXIgb2JqZWN0LCB5b3UgbmVlZCB0byBoYW5kbGUKKyAgdGhlc2UgbmV3IGZ1bmN0aW9uIGNh
bGxzLgorCisKKzMuMS4xICgyMDE5LTA4LTAyKQorLS0tLS0tLS0tLS0tLS0tLS0tCisKK0J1Z2Zp
eGVzCit+fn5+fn5+fgorCistIElnbm9yZSBXSU5ET1dfVVBEQVRFIGFuZCBSU1RfU1RSRUFNIGZy
YW1lcyByZWNlaXZlZCBhZnRlciBzdHJlYW0KKyAgY2xvc3VyZS4KKworCiszLjEuMCAoMjAxOS0w
MS0yMikKKy0tLS0tLS0tLS0tLS0tLS0tLQorCitBUEkgQ2hhbmdlcyAoQmFja3dhcmQtSW5jb21w
YXRpYmxlKQorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworLSBgYGgyLmNv
bm5lY3Rpb24uSDJDb25uZWN0aW9uLmRhdGFfdG9fc2VuZGBgIGZpcnN0IGFuZCBvbmx5IGFyZ3Vt
ZW50IGBgYW10YGAKKyAgd2FzIHJlbmFtZWQgdG8gYGBhbW91bnRgYC4KKy0gU3VwcG9ydCBmb3Ig
UHl0aG9uIDMuMyBoYXMgYmVlbiByZW1vdmVkLgorCitBUEkgQ2hhbmdlcyAoQmFja3dhcmQtQ29t
cGF0aWJsZSkKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCistIGBgaDIuY29u
bmVjdGlvbi5IMkNvbm5lY3Rpb24uc2VuZF9kYXRhYGAgbm93IHN1cHBvcnRzIGBgZGF0YWBgIHBh
cmFtZXRlcgorICBiZWluZyBhIGBgbWVtb3J5dmlld2BgIG9iamVjdC4KKy0gUmVmYWN0b3IgcGlu
Zy1yZWxhdGVkIGV2ZW50czogYSBgYGgyLmV2ZW50cy5QaW5nUmVjZWl2ZWRgYCBldmVudCBpcyBm
aXJlZAorICB3aGVuIGEgUElORyBmcmFtZSBpcyByZWNlaXZlZCBhbmQgYSBgYGgyLmV2ZW50cy5Q
aW5nQWNrUmVjZWl2ZWRgYCBldmVudCBpcworICBmaXJlZCB3aGVuIGEgUElORyBmcmFtZSB3aXRo
IGFuIEFDSyBmbGFnIGlzIHJlY2VpdmVkLgorICBgYGgyLmV2ZW50cy5QaW5nQWNrbm93bGVkZ2Vk
YGAgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgdGhlIGlkZW50aWNhbAorICBgYGgyLmV2ZW50
cy5QaW5nQWNrUmVjZWl2ZWRgYC4KKy0gQWRkZWQgYGBFTkFCTEVfQ09OTkVDVF9QUk9UT0NPTGBg
IHRvIGBgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzYGAuCistIFN1cHBvcnQgYGBDT05ORUNUYGAg
cmVxdWVzdHMgd2l0aCBhIGBgOnByb3RvY29sYGAgcHNldWRvIGhlYWRlcgorICB0aGVyZWJ5IHN1
cHBvcnRpbmcgUkZDIDg0NDEuCistIEEgbGltaXQgdG8gdGhlIG51bWJlciBvZiBjbG9zZWQgc3Ry
ZWFtcyBrZXB0IGluIG1lbW9yeSBieSB0aGUKKyAgY29ubmVjdGlvbiBpcyBhcHBsaWVkLiBJdCBj
YW4gYmUgY29uZmlndXJlZCBieQorICBgYGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uLk1BWF9D
TE9TRURfU1RSRUFNU2BgLgorCitCdWdmaXhlcworfn5+fn5+fn4KKworLSBEZWJ1ZyBsb2dnaW5n
IHdoZW4gc3RyZWFtX2lkIGlzIE5vbmUgaXMgbm93IGZpeGVkIGFuZCBubyBsb25nZXIgZXJyb3Jz
LgorCiAzLjAuMSAoMjAxNy0wNC0wMykKIC0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2gyL01BTklGRVNULmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9NQU5JRkVTVC5pbgppbmRleCAzYzhiOTg4
NTMzZTJlMTdjY2FmY2Q5NWUyNmE2NTcwYTYzZjQ3YTYxLi4wNDQwMGRlNmI3ZDFmN2QzODdkNjhj
NTliYzMxZTg5N2E3OWFjMmZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL01BTklGRVNULmluCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvTUFOSUZFU1QuaW4KQEAgLTEsNyArMSw4IEBACiBpbmNsdWRlIFJFQURNRS5yc3Qg
TElDRU5TRSBDT05UUklCVVRPUlMucnN0IEhJU1RPUlkucnN0IHRveC5pbmkgdGVzdF9yZXF1aXJl
bWVudHMudHh0IC5jb3ZlcmFnZXJjIE1ha2VmaWxlCi1yZWN1cnNpdmUtaW5jbHVkZSB0ZXN0ICou
cHkKK3JlY3Vyc2l2ZS1pbmNsdWRlIHRlc3QgKi5weSAqLnNoCiBncmFmdCBkb2NzCiBwcnVuZSBk
b2NzL2J1aWxkCiBncmFmdCB2aXN1YWxpemVyCiByZWN1cnNpdmUtaW5jbHVkZSBleGFtcGxlcyAq
LnB5ICouY3J0ICoua2V5ICoucGVtICouY3NyCiByZWN1cnNpdmUtaW5jbHVkZSB1dGlscyAqLnNo
CityZWN1cnNpdmUtaW5jbHVkZSBfdHJhdmlzICouc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9j
cy9zb3VyY2UvYXBpLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvYXBpLnJzdAppbmRleCAyYzcx
ZDM4ZDE2ZGRhNTk4ODZhZDhkYzFmNDU3MDljYWE5NDViNmQ3Li5hNDZmOGNjZTdkNGIxZTYzODU1
NzcwZTIxZGI5ZDUwYzdkMjA2MjQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2Fw
aS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9hcGkucnN0CkBAIC01Myw3ICs1MywxMCBA
QCBFdmVudHMKIC4uIGF1dG9jbGFzczo6IGgyLmV2ZW50cy5SZW1vdGVTZXR0aW5nc0NoYW5nZWQK
ICAgIDptZW1iZXJzOgogCi0uLiBhdXRvY2xhc3M6OiBoMi5ldmVudHMuUGluZ0Fja25vd2xlZGdl
ZAorLi4gYXV0b2NsYXNzOjogaDIuZXZlbnRzLlBpbmdSZWNlaXZlZAorICAgOm1lbWJlcnM6CisK
Ky4uIGF1dG9jbGFzczo6IGgyLmV2ZW50cy5QaW5nQWNrUmVjZWl2ZWQKICAgIDptZW1iZXJzOgog
CiAuLiBhdXRvY2xhc3M6OiBoMi5ldmVudHMuU3RyZWFtRW5kZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvZG9jcy9zb3VyY2UvYmFzaWMtdXNhZ2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9iYXNp
Yy11c2FnZS5yc3QKaW5kZXggMmQ1NzQzYTI4OGNkYzdjNjM1MjhhMGZkZGQ0N2JhMzAwZTg4Mjg3
MC4uYjlhYWI2YzZjZjg4ZGE4ZjA5NTEzZGYzMWRmYWU2OTAzYTlmYmQ3MiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9kb2NzL3NvdXJjZS9iYXNpYy11c2FnZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3Nv
dXJjZS9iYXNpYy11c2FnZS5yc3QKQEAgLTIyMSwxMyArMjIxLDExIEBAIHNob3duIGJlbG93Ogog
CiAuLiBjb2RlLWJsb2NrOjogY29uc29sZQogCi0gICAgJCBoeXBlciBHRVQgaHR0cDovL2h0dHAy
YmluLm9yZy9nZXQKKyAgICAkIGh5cGVyIEdFVCBodHRwczovL25naHR0cDIub3JnL2h0dHBiaW4v
Z2V0CiAgICAgeydhcmdzJzoge30sCi0gICAgICdoZWFkZXJzJzogeydDb25uZWN0aW9uJzogJ2tl
ZXAtYWxpdmUnLAotICAgICAgICAgICAgICAgICAnSG9zdCc6ICdodHRwMmJpbi5vcmcnLAotICAg
ICAgICAgICAgICAgICAnVmlhJzogJzIgaHR0cDJiaW4ub3JnJ30sCisgICAgICdoZWFkZXJzJzog
eydIb3N0JzogJ25naHR0cDIub3JnJ30sCiAgICAgICdvcmlnaW4nOiAnMTAuMC4wLjInLAotICAg
ICAndXJsJzogJ2h0dHA6Ly9odHRwMmJpbi5vcmcvZ2V0J30KKyAgICAgJ3VybCc6ICdodHRwczov
L25naHR0cDIub3JnL2h0dHBiaW4vZ2V0J30KIAogQXNzdW1pbmcgaXQgd29ya3MsIHlvdSdyZSBu
b3cgcmVhZHkgdG8gc3RhcnQgc2VuZGluZyBIVFRQLzIgZGF0YS4KIApAQCAtMjUxLDkgKzI0OSwx
MSBAQCBUaGUgZnVuY3Rpb24gc2hvdWxkIGxvb2sgc29tZXRoaW5nIGxpa2UgdGhpczoKIC4uIGNv
ZGUtYmxvY2s6OiBweXRob24KIAogICAgIGltcG9ydCBoMi5jb25uZWN0aW9uCisgICAgaW1wb3J0
IGgyLmNvbmZpZwogCiAgICAgZGVmIGhhbmRsZShzb2NrKToKLSAgICAgICAgY29ubiA9IGgyLmNv
bm5lY3Rpb24uSDJDb25uZWN0aW9uKGNsaWVudF9zaWRlPUZhbHNlKQorICAgICAgICBjb25maWcg
PSBoMi5jb25maWcuSDJDb25maWd1cmF0aW9uKGNsaWVudF9zaWRlPUZhbHNlKQorICAgICAgICBj
b25uID0gaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oY29uZmlnPWNvbmZpZykKIAogICAgICAg
ICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgZGF0YSA9IHNvY2sucmVjdig2NTUzNSkKQEAgLTI2
Nyw5ICsyNjcsMTEgQEAgZnVuY3Rpb24uIFlvdXIgYGBoMnNlcnZlci5weWBgIHNob3VsZCBlbmQg
dXAgbG9va2luZyBhIGxpa2UgdGhpczoKICAgICBpbXBvcnQgc29ja2V0CiAKICAgICBpbXBvcnQg
aDIuY29ubmVjdGlvbgorICAgIGltcG9ydCBoMi5jb25maWcKIAogICAgIGRlZiBoYW5kbGUoc29j
ayk6Ci0gICAgICAgIGNvbm4gPSBoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbihjbGllbnRfc2lk
ZT1GYWxzZSkKKyAgICAgICAgY29uZmlnID0gaDIuY29uZmlnLkgyQ29uZmlndXJhdGlvbihjbGll
bnRfc2lkZT1GYWxzZSkKKyAgICAgICAgY29ubiA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9u
KGNvbmZpZz1jb25maWcpCiAKICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgIGRhdGEg
PSBzb2NrLnJlY3YoNjU1MzUpCkBAIC0zMzEsNyArMzMzLDggQEAgZnVuY3Rpb24gdG8gZG8ganVz
dCB0aGF0OgogLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgZGVmIGhhbmRsZShzb2NrKToK
LSAgICAgICAgY29ubiA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKGNsaWVudF9zaWRlPUZh
bHNlKQorICAgICAgICBjb25maWcgPSBoMi5jb25maWcuSDJDb25maWd1cmF0aW9uKGNsaWVudF9z
aWRlPUZhbHNlKQorICAgICAgICBjb25uID0gaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oY29u
ZmlnPWNvbmZpZykKICAgICAgICAgY29ubi5pbml0aWF0ZV9jb25uZWN0aW9uKCkKICAgICAgICAg
c29jay5zZW5kYWxsKGNvbm4uZGF0YV90b19zZW5kKCkpCiAKQEAgLTM1OSw5ICszNjIsMTEgQEAg
WW91ciBgYGgyc2VydmVyLnB5YGAgc2NyaXB0IHNob3VsZCBub3cgbG9vayBsaWtlIHRoaXM6CiAg
ICAgaW1wb3J0IHNvY2tldAogCiAgICAgaW1wb3J0IGgyLmNvbm5lY3Rpb24KKyAgICBpbXBvcnQg
aDIuY29uZmlnCiAKICAgICBkZWYgaGFuZGxlKHNvY2spOgotICAgICAgICBjb25uID0gaDIuY29u
bmVjdGlvbi5IMkNvbm5lY3Rpb24oY2xpZW50X3NpZGU9RmFsc2UpCisgICAgICAgIGNvbmZpZyA9
IGgyLmNvbmZpZy5IMkNvbmZpZ3VyYXRpb24oY2xpZW50X3NpZGU9RmFsc2UpCisgICAgICAgIGNv
bm4gPSBoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbihjb25maWc9Y29uZmlnKQogICAgICAgICBj
b25uLmluaXRpYXRlX2Nvbm5lY3Rpb24oKQogICAgICAgICBzb2NrLnNlbmRhbGwoY29ubi5kYXRh
X3RvX3NlbmQoKSkKIApAQCAtNDkzLDkgKzQ5OCwxMSBAQCBMZXQncyBhbWVuZCBvdXIgYGBoYW5k
bGVgYCBmdW5jdGlvbiBhZ2FpbjoKIC4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIGltcG9y
dCBoMi5ldmVudHMKKyAgICBpbXBvcnQgaDIuY29uZmlnCiAKICAgICBkZWYgaGFuZGxlKHNvY2sp
OgotICAgICAgICBjb25uID0gaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oY2xpZW50X3NpZGU9
RmFsc2UpCisgICAgICAgIGNvbmZpZyA9IGgyLmNvbmZpZy5IMkNvbmZpZ3VyYXRpb24oY2xpZW50
X3NpZGU9RmFsc2UpCisgICAgICAgIGNvbm4gPSBoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbihj
b25maWc9Y29uZmlnKQogICAgICAgICBjb25uLmluaXRpYXRlX2Nvbm5lY3Rpb24oKQogICAgICAg
ICBzb2NrLnNlbmRhbGwoY29ubi5kYXRhX3RvX3NlbmQoKSkKIApAQCAtNTI4LDYgKzUzNSw3IEBA
IFdpdGggdGhlc2UgY2hhbmdlcywgeW91ciBgYGgyc2VydmVyLnB5YGAgZmlsZSBzaG91bGQgbG9v
ayBsaWtlIHRoaXM6CiAKICAgICBpbXBvcnQgaDIuY29ubmVjdGlvbgogICAgIGltcG9ydCBoMi5l
dmVudHMKKyAgICBpbXBvcnQgaDIuY29uZmlnCiAKICAgICBkZWYgc2VuZF9yZXNwb25zZShjb25u
LCBldmVudCk6CiAgICAgICAgIHN0cmVhbV9pZCA9IGV2ZW50LnN0cmVhbV9pZApAQCAtNTQ1LDcg
KzU1Myw4IEBAIFdpdGggdGhlc2UgY2hhbmdlcywgeW91ciBgYGgyc2VydmVyLnB5YGAgZmlsZSBz
aG91bGQgbG9vayBsaWtlIHRoaXM6CiAgICAgICAgICkKIAogICAgIGRlZiBoYW5kbGUoc29jayk6
Ci0gICAgICAgIGNvbm4gPSBoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbihjbGllbnRfc2lkZT1G
YWxzZSkKKyAgICAgICAgY29uZmlnID0gaDIuY29uZmlnLkgyQ29uZmlndXJhdGlvbihjbGllbnRf
c2lkZT1GYWxzZSkKKyAgICAgICAgY29ubiA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKGNv
bmZpZz1jb25maWcpCiAgICAgICAgIGNvbm4uaW5pdGlhdGVfY29ubmVjdGlvbigpCiAgICAgICAg
IHNvY2suc2VuZGFsbChjb25uLmRhdGFfdG9fc2VuZCgpKQogCkBAIC02MzMsNiArNjQyLDcgQEAg
ZmlsZSwgd2hpY2ggc2hvdWxkIG5vdyBsb29rIGxpa2UgdGhpczoKIAogICAgIGltcG9ydCBoMi5j
b25uZWN0aW9uCiAgICAgaW1wb3J0IGgyLmV2ZW50cworICAgIGltcG9ydCBoMi5jb25maWcKIAog
ICAgIGRlZiBzZW5kX3Jlc3BvbnNlKGNvbm4sIGV2ZW50KToKICAgICAgICAgc3RyZWFtX2lkID0g
ZXZlbnQuc3RyZWFtX2lkCkBAIC02NTQsNyArNjY0LDggQEAgZmlsZSwgd2hpY2ggc2hvdWxkIG5v
dyBsb29rIGxpa2UgdGhpczoKICAgICAgICAgKQogCiAgICAgZGVmIGhhbmRsZShzb2NrKToKLSAg
ICAgICAgY29ubiA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKGNsaWVudF9zaWRlPUZhbHNl
KQorICAgICAgICBjb25maWcgPSBoMi5jb25maWcuSDJDb25maWd1cmF0aW9uKGNsaWVudF9zaWRl
PUZhbHNlKQorICAgICAgICBjb25uID0gaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oY29uZmln
PWNvbmZpZykKICAgICAgICAgY29ubi5pbml0aWF0ZV9jb25uZWN0aW9uKCkKICAgICAgICAgc29j
ay5zZW5kYWxsKGNvbm4uZGF0YV90b19zZW5kKCkpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9j
cy9zb3VyY2UvY29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvY29uZi5weQppbmRleCBhM2Iz
ZThhNGI5OTg4MDFjMThhMjBjZDQwYzI1YzZiNTVmOWQ4MWViLi5hMTVhMjE0NjM0YzZhOTlkYzNk
NmQ4OTRjZmMxZDllMzRjMTZhYmMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2Nv
bmYucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9jb25mLnB5CkBAIC01NSw5ICs1NSw5IEBA
IGNvcHlyaWdodCA9IHUnMjAxNSwgQ29yeSBCZW5maWVsZCcKICMgYnVpbHQgZG9jdW1lbnRzLgog
IwogIyBUaGUgc2hvcnQgWC5ZIHZlcnNpb24uCi12ZXJzaW9uID0gJzMuMC4xJwordmVyc2lvbiA9
ICczLjIuMCcKICMgVGhlIGZ1bGwgdmVyc2lvbiwgaW5jbHVkaW5nIGFscGhhL2JldGEvcmMgdGFn
cy4KLXJlbGVhc2UgPSAnMy4wLjEnCityZWxlYXNlID0gJzMuMi4wJwogCiAjIFRoZSBsYW5ndWFn
ZSBmb3IgY29udGVudCBhdXRvZ2VuZXJhdGVkIGJ5IFNwaGlueC4gUmVmZXIgdG8gZG9jdW1lbnRh
dGlvbgogIyBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCBsYW5ndWFnZXMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL2RvY3Mvc291cmNlL25lZ290aWF0aW5nLWh0dHAyLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9z
b3VyY2UvbmVnb3RpYXRpbmctaHR0cDIucnN0CmluZGV4IGQ0YzcyYjI4ODllMDY3NWViNWIyOTVh
ZTVkZGEzZGZiMmE5Mzg1OTUuLjIwZDU4YTcxZjFiZThlOWZkOTU1MDE3YjQ3NTdlZGE1Njg0NzYx
YjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvbmVnb3RpYXRpbmctaHR0cDIucnN0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvbmVnb3RpYXRpbmctaHR0cDIucnN0CkBAIC01LDE1
ICs1LDE5IEBAIE5lZ290aWF0aW5nIEhUVFAvMgogCiAuLiBfc3RhcnRpbmctYWxwbjoKIAotSFRU
UFMgVVJMcyAoQUxQTiBhbmQgTlBOKQorSFRUUFMgVVJMcyAoQUxQTikKIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotU3RhcnRpbmcgSFRUUC8yIGZvciBIVFRQUyBVUkxzIGlzIG91dGxpbmVk
IGluIGBSRkMgNzU0MCBTZWN0aW9uIDMuM2BfLiBJbiB0aGlzIGNhc2UsIHRoZSBjbGllbnQgYW5k
IHNlcnZlciB1c2UgYSBUTFMgZXh0ZW5zaW9uIHRvIG5lZ290aWF0ZSBIVFRQLzI6IHR5cGljYWxs
eSBlaXRoZXIgb3IgYm90aCBvZiBgTlBOYF8gb3IgYEFMUE5gXy4gSG93IHRvIHVzZSBOUE4gYW5k
IEFMUE4gaXMgY3VycmVudGx5IG5vdCBjb3ZlcmVkIGluIHRoaXMgZG9jdW1lbnQ6IHBsZWFzZSBj
b25zdWx0IHRoZSBkb2N1bWVudGF0aW9uIGZvciBlaXRoZXIgdGhlIDptb2Q6YHNzbCBtb2R1bGUg
PHB5dGhvbjpzc2w+YCBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSwgb3IgdGhlIDptb2Q6YFB5T3Bl
blNTTCA8cHlvcGVuc3NsOk9wZW5TU0wuU1NMPmAgdGhpcmQtcGFydHkgbW9kdWxlcywgZm9yIG1v
cmUgb24gdGhpcyB0b3BpYy4KK1N0YXJ0aW5nIEhUVFAvMiBmb3IgSFRUUFMgVVJMcyBpcyBvdXRs
aW5lZCBpbiBgUkZDIDc1NDAgU2VjdGlvbiAzLjNgXy4gSW4gdGhpcyBjYXNlLCB0aGUgY2xpZW50
IGFuZCBzZXJ2ZXIgdXNlIGEgVExTIGV4dGVuc2lvbiB0byBuZWdvdGlhdGUgSFRUUC8yOiBgQUxQ
TmBfLiBIb3cgdG8gdXNlIEFMUE4gaXMgY3VycmVudGx5IG5vdCBjb3ZlcmVkIGluIHRoaXMgZG9j
dW1lbnQ6IHBsZWFzZSBjb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uIGZvciBlaXRoZXIgdGhlIDpt
b2Q6YHNzbCBtb2R1bGUgPHB5dGhvbjpzc2w+YCBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSwgb3Ig
dGhlIDptb2Q6YFB5T3BlblNTTCA8cHlvcGVuc3NsOk9wZW5TU0wuU1NMPmAgdGhpcmQtcGFydHkg
bW9kdWxlcywgZm9yIG1vcmUgb24gdGhpcyB0b3BpYy4KIAogVGhpcyBtZXRob2QgaXMgdGhlIHNp
bXBsZXN0IHRvIHVzZSBvbmNlIHRoZSBUTFMgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZC4gVG8g
dXNlIGl0IHdpdGggSHlwZXItaDIsIGFmdGVyIHlvdSd2ZSBlc3RhYmxpc2hlZCB0aGUgY29ubmVj
dGlvbiBhbmQgY29uZmlybWVkIHRoYXQgSFRUUC8yIGhhcyBiZWVuIG5lZ290aWF0ZWQgd2l0aCBg
QUxQTmBfLCBjcmVhdGUgYSA6Y2xhc3M6YEgyQ29ubmVjdGlvbiA8aDIuY29ubmVjdGlvbi5IMkNv
bm5lY3Rpb24+YCBvYmplY3QgYW5kIGNhbGwgOm1ldGg6YEgyQ29ubmVjdGlvbi5pbml0aWF0ZV9j
b25uZWN0aW9uIDxoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbi5pbml0aWF0ZV9jb25uZWN0aW9u
PmAuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgYXBwcm9wcmlhdGUgcHJlYW1ibGUgZGF0YSBp
cyBwbGFjZWQgaW4gdGhlIGRhdGEgYnVmZmVyLiBZb3Ugc2hvdWxkIHRoZW4gaW1tZWRpYXRlbHkg
c2VuZCB0aGUgZGF0YSByZXR1cm5lZCBieSA6bWV0aDpgSDJDb25uZWN0aW9uLmRhdGFfdG9fc2Vu
ZCA8aDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24uZGF0YV90b19zZW5kPmAgb24geW91ciBUTFMg
Y29ubmVjdGlvbi4KIAogQXQgdGhpcyBwb2ludCwgeW91J3JlIGZyZWUgdG8gdXNlIGFsbCB0aGUg
SFRUUC8yIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgSHlwZXItaDIuCiAKKy4uIG5vdGU6Ogor
ICAgQWx0aG91Z2ggSHlwZXItaDIgaXMgbm90IGNvbmNlcm5lZCB3aXRoIG5lZ290aWF0aW5nIHBy
b3RvY29sIHZlcnNpb25zLCBpdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHN1cHBvcnQgZm9y
IGBBTFBOYF8gaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSBvZiBQeXRo
b24gdmVyc2lvbnMgPCAyLjcuOS4KKyAgIEFzIGEgY29uc2VxdWVuY2UsIGNsaWVudHMgbWF5IGVu
Y291bnRlciB2YXJpb3VzIGVycm9ycyBkdWUgdG8gcHJvdG9jb2wgdmVyc2lvbnMgbWlzbWF0Y2gu
CisKIFNlcnZlciBTZXR1cCBFeGFtcGxlCiB+fn5+fn5+fn5+fn5+fn5+fn5+fgogCkBAIC05MCwx
MSArOTQsMTAgQEAgVGhlIGNvZGUgYmVsb3cgZGVtb25zdHJhdGVzIGhvdyB0byBoYW5kbGUgYSBw
bGFpbnRleHQgdXBncmFkZSBmcm9tIHRoZSBwZXJzcGVjdGkKIFByaW9yIEtub3dsZWRnZQogLS0t
LS0tLS0tLS0tLS0tCiAKLUl0J3MgcG9zc2libGUgdGhhdCB5b3UgYXMgYSBjbGllbnQga25vdyB0
aGF0IGEgcGFydGljdWxhciBzZXJ2ZXIgc3VwcG9ydHMgSFRUUC8yLCBhbmQgdGhhdCB5b3UgZG8g
bm90IG5lZWQgdG8gcGVyZm9ybSBhbnkgb2YgdGhlIG5lZ290aWF0aW9ucyBkZXNjcmliZWQgYWJv
dmUuIEluIHRoYXQgY2FzZSwgeW91IG1heSBmb2xsb3cgdGhlIHN0ZXBzIGluIDpyZWY6YHN0YXJ0
aW5nLWFscG5gLCBpZ25vcmluZyBhbGwgcmVmZXJlbmNlcyB0byBBTFBOIGFuZCBOUE46IHRoZXJl
J3Mgbm8gbmVlZCB0byBwZXJmb3JtIHRoZSB1cGdyYWRlIGRhbmNlIGRlc2NyaWJlZCBpbiA6cmVm
OmBzdGFydGluZy11cGdyYWRlYC4KK0l0J3MgcG9zc2libGUgdGhhdCB5b3UgYXMgYSBjbGllbnQg
a25vdyB0aGF0IGEgcGFydGljdWxhciBzZXJ2ZXIgc3VwcG9ydHMgSFRUUC8yLCBhbmQgdGhhdCB5
b3UgZG8gbm90IG5lZWQgdG8gcGVyZm9ybSBhbnkgb2YgdGhlIG5lZ290aWF0aW9ucyBkZXNjcmli
ZWQgYWJvdmUuIEluIHRoYXQgY2FzZSwgeW91IG1heSBmb2xsb3cgdGhlIHN0ZXBzIGluIDpyZWY6
YHN0YXJ0aW5nLWFscG5gLCBpZ25vcmluZyBhbGwgcmVmZXJlbmNlcyB0byBBTFBOOiB0aGVyZSdz
IG5vIG5lZWQgdG8gcGVyZm9ybSB0aGUgdXBncmFkZSBkYW5jZSBkZXNjcmliZWQgaW4gOnJlZjpg
c3RhcnRpbmctdXBncmFkZWAuCiAKIC4uIF9SRkMgNzU0MDogaHR0cHM6Ly90b29scy5pZXRmLm9y
Zy9odG1sL3JmYzc1NDAKIC4uIF9SRkMgNzU0MCBTZWN0aW9uIDMuMjogaHR0cHM6Ly90b29scy5p
ZXRmLm9yZy9odG1sL3JmYzc1NDAjc2VjdGlvbi0zLjIKIC4uIF9SRkMgNzU0MCBTZWN0aW9uIDMu
MzogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzc1NDAjc2VjdGlvbi0zLjMKLS4uIF9O
UE46IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcGxpY2F0aW9uLUxheWVyX1Byb3Rv
Y29sX05lZ290aWF0aW9uCiAuLiBfQUxQTjogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
QXBwbGljYXRpb24tTGF5ZXJfUHJvdG9jb2xfTmVnb3RpYXRpb24KIC4uIF9SRkMgNzIzMCBTZWN0
aW9uIDYuNzogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzAjc2VjdGlvbi02LjcK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvdHdpc3RlZC1oZWFkLWV4YW1wbGUucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90d2lzdGVkLWhlYWQtZXhhbXBsZS5yc3QKaW5kZXggMjA3
NTM1MjdjYTM2MTI1MjNkZDg3NzFjYzU3ODQxMjc2MmQ3OWE2Mi4uZGY5M2IxNDRlNzE3ODllZTU5
NzliMzNhMWE1NjAwZTkwMmRiMGFmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90
d2lzdGVkLWhlYWQtZXhhbXBsZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90d2lzdGVk
LWhlYWQtZXhhbXBsZS5yc3QKQEAgLTUsNyArNSw3IEBAIFRoaXMgZXhhbXBsZSBpcyBhIGJhc2lj
IEhUVFAvMiBjbGllbnQgd3JpdHRlbiBmb3IgdGhlIGBUd2lzdGVkYF8gYXN5bmNocm9ub3VzCiBu
ZXR3b3JraW5nIGZyYW1ld29yay4KIAogVGhpcyBjbGllbnQgaXMgZmFpcmx5IHNpbXBsZTogaXQg
bWFrZXMgYSBoYXJkLWNvZGVkIEhFQUQgcmVxdWVzdCB0bwotaHR0cDJiaW4ub3JnIGFuZCBwcmlu
dHMgb3V0IHRoZSByZXNwb25zZSBkYXRhLiBJdHMgcHVycG9zZSBpcyB0byBkZW1vbnN0cmF0ZQor
bmdodHRwMi5vcmcvaHR0cGJpbi8gYW5kIHByaW50cyBvdXQgdGhlIHJlc3BvbnNlIGRhdGEuIEl0
cyBwdXJwb3NlIGlzIHRvIGRlbW9uc3RyYXRlCiBob3cgdG8gd3JpdGUgYSB2ZXJ5IGJhc2ljIEhU
VFAvMiBjbGllbnQgaW1wbGVtZW50YXRpb24uCiAKIC4uIGxpdGVyYWxpbmNsdWRlOjogLi4vLi4v
ZXhhbXBsZXMvdHdpc3RlZC9oZWFkX3JlcXVlc3QucHkKQEAgLTE0LDQgKzE0LDQgQEAgaG93IHRv
IHdyaXRlIGEgdmVyeSBiYXNpYyBIVFRQLzIgY2xpZW50IGltcGxlbWVudGF0aW9uLgogICAgOmVu
Y29kaW5nOiB1dGYtOAogCiAKLS4uIF9Ud2lzdGVkOiBodHRwczovL3R3aXN0ZWRtYXRyaXguY29t
LwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKy4uIF9Ud2lzdGVkOiBodHRwczovL3R3aXN0
ZWRtYXRyaXguY29tLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90d2lzdGVkLXBv
c3QtZXhhbXBsZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL3R3aXN0ZWQtcG9zdC1leGFtcGxl
LnJzdAppbmRleCAyMWJjOGFjMDlmMzRkNTY4NGYyMWU0NDc1YjlkOGViNzA0NjllNmNkLi43ZTNh
YmE0MWEzOGU5NGQ1ZDAxOTI0NjM1MjhhNmU5MzIxMGQ1ZWNmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2RvY3Mvc291cmNlL3R3aXN0ZWQtcG9zdC1leGFtcGxlLnJzdAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mv
c291cmNlL3R3aXN0ZWQtcG9zdC1leGFtcGxlLnJzdApAQCAtNSw3ICs1LDcgQEAgVGhpcyBleGFt
cGxlIGlzIGEgYmFzaWMgSFRUUC8yIGNsaWVudCB3cml0dGVuIGZvciB0aGUgYFR3aXN0ZWRgXyBh
c3luY2hyb25vdXMKIG5ldHdvcmtpbmcgZnJhbWV3b3JrLgogCiBUaGlzIGNsaWVudCBpcyBmYWly
bHkgc2ltcGxlOiBpdCBtYWtlcyBhIGhhcmQtY29kZWQgUE9TVCByZXF1ZXN0IHRvCi1odHRwMmJp
bi5vcmcgYW5kIHByaW50cyBvdXQgdGhlIHJlc3BvbnNlIGRhdGEsIHNlbmRpbmcgYSBmaWxlIHRo
YXQgaXMgcHJvdmlkZWQKK25naHR0cDIub3JnL2h0dHBiaW4vcG9zdCBhbmQgcHJpbnRzIG91dCB0
aGUgcmVzcG9uc2UgZGF0YSwgc2VuZGluZyBhIGZpbGUgdGhhdCBpcyBwcm92aWRlZAogb24gdGhl
IGNvbW1hbmQgbGluZSBvciB0aGUgc2NyaXB0IGl0c2VsZi4gSXRzIHB1cnBvc2UgaXMgdG8gZGVt
b25zdHJhdGUgaG93IHRvCiB3cml0ZSBhIEhUVFAvMiBjbGllbnQgaW1wbGVtZW50YXRpb24gdGhh
dCBoYW5kbGVzIGZsb3cgY29udHJvbC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9h
c3luY2lvL2FzeW5jaW8tc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9hc3luY2lvL2FzeW5j
aW8tc2VydmVyLnB5CmluZGV4IDBlNWI5MTJlMmRmYTMwMDNjM2I1NTBhODYzMTgxYzBlYmM3N2Mx
NTIuLjI3ODc3NDY0NGJjOGUwMzFkMTYyZmFjZmJiYmMyOWUxMWQ5MDkyNTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvZXhhbXBsZXMvYXN5bmNpby9hc3luY2lvLXNlcnZlci5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2V4YW1wbGVzL2FzeW5jaW8vYXN5bmNpby1zZXJ2ZXIucHkKQEAgLTgsMTAgKzgsNiBAQCBBIGZ1
bGx5LWZ1bmN0aW9uYWwgSFRUUC8yIHNlcnZlciB1c2luZyBhc3luY2lvLiBSZXF1aXJlcyBQeXRo
b24gMy41Ky4KIFRoaXMgZXhhbXBsZSBkZW1vbnN0cmF0ZXMgaGFuZGxpbmcgcmVxdWVzdHMgd2l0
aCBib2RpZXMsIGFzIHdlbGwgYXMgaGFuZGxpbmcKIHRob3NlIHdpdGhvdXQuIEluIHBhcnRpY3Vs
YXIsIGl0IGRlbW9uc3RyYXRlcyB0aGUgZmFjdCB0aGF0IERhdGFSZWNlaXZlZCBtYXkKIGJlIGNh
bGxlZCBtdWx0aXBsZSB0aW1lcywgYW5kIHRoYXQgYXBwbGljYXRpb25zIG11c3QgaGFuZGxlIHRo
YXQgcG9zc2liaWxpdHkuCi0KLVBsZWFzZSBub3RlIHRoYXQgdGhpcyBleGFtcGxlIGRvZXMgbm90
IGhhbmRsZSBmbG93IGNvbnRyb2wsIGFuZCBzbyBvbmx5IHdvcmtzCi1wcm9wZXJseSBmb3IgcmVs
YXRpdmVseSBzbWFsbCByZXF1ZXN0cy4gUGxlYXNlIHNlZSBvdGhlciBleGFtcGxlcyB0byB1bmRl
cnN0YW5kCi1ob3cgZmxvdyBjb250cm9sIHNob3VsZCB3b3JrLgogIiIiCiBpbXBvcnQgYXN5bmNp
bwogaW1wb3J0IGlvCkBAIC0yMywxMCArMTksMTIgQEAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3Qs
IFR1cGxlCiBmcm9tIGgyLmNvbmZpZyBpbXBvcnQgSDJDb25maWd1cmF0aW9uCiBmcm9tIGgyLmNv
bm5lY3Rpb24gaW1wb3J0IEgyQ29ubmVjdGlvbgogZnJvbSBoMi5ldmVudHMgaW1wb3J0ICgKLSAg
ICBDb25uZWN0aW9uVGVybWluYXRlZCwgRGF0YVJlY2VpdmVkLCBSZXF1ZXN0UmVjZWl2ZWQsIFN0
cmVhbUVuZGVkCisgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWQsIERhdGFSZWNlaXZlZCwgUmVtb3Rl
U2V0dGluZ3NDaGFuZ2VkLAorICAgIFJlcXVlc3RSZWNlaXZlZCwgU3RyZWFtRW5kZWQsIFN0cmVh
bVJlc2V0LCBXaW5kb3dVcGRhdGVkCiApCiBmcm9tIGgyLmVycm9ycyBpbXBvcnQgRXJyb3JDb2Rl
cwotZnJvbSBoMi5leGNlcHRpb25zIGltcG9ydCBQcm90b2NvbEVycm9yCitmcm9tIGgyLmV4Y2Vw
dGlvbnMgaW1wb3J0IFByb3RvY29sRXJyb3IsIFN0cmVhbUNsb3NlZEVycm9yCitmcm9tIGgyLnNl
dHRpbmdzIGltcG9ydCBTZXR0aW5nQ29kZXMKIAogCiBSZXF1ZXN0RGF0YSA9IGNvbGxlY3Rpb25z
Lm5hbWVkdHVwbGUoJ1JlcXVlc3REYXRhJywgWydoZWFkZXJzJywgJ2RhdGEnXSkKQEAgLTM4LDEy
ICszNiwxOCBAQCBjbGFzcyBIMlByb3RvY29sKGFzeW5jaW8uUHJvdG9jb2wpOgogICAgICAgICBz
ZWxmLmNvbm4gPSBIMkNvbm5lY3Rpb24oY29uZmlnPWNvbmZpZykKICAgICAgICAgc2VsZi50cmFu
c3BvcnQgPSBOb25lCiAgICAgICAgIHNlbGYuc3RyZWFtX2RhdGEgPSB7fQorICAgICAgICBzZWxm
LmZsb3dfY29udHJvbF9mdXR1cmVzID0ge30KIAogICAgIGRlZiBjb25uZWN0aW9uX21hZGUoc2Vs
ZiwgdHJhbnNwb3J0OiBhc3luY2lvLlRyYW5zcG9ydCk6CiAgICAgICAgIHNlbGYudHJhbnNwb3J0
ID0gdHJhbnNwb3J0CiAgICAgICAgIHNlbGYuY29ubi5pbml0aWF0ZV9jb25uZWN0aW9uKCkKICAg
ICAgICAgc2VsZi50cmFuc3BvcnQud3JpdGUoc2VsZi5jb25uLmRhdGFfdG9fc2VuZCgpKQogCisg
ICAgZGVmIGNvbm5lY3Rpb25fbG9zdChzZWxmLCBleGMpOgorICAgICAgICBmb3IgZnV0dXJlIGlu
IHNlbGYuZmxvd19jb250cm9sX2Z1dHVyZXMudmFsdWVzKCk6CisgICAgICAgICAgICBmdXR1cmUu
Y2FuY2VsKCkKKyAgICAgICAgc2VsZi5mbG93X2NvbnRyb2xfZnV0dXJlcyA9IHt9CisKICAgICBk
ZWYgZGF0YV9yZWNlaXZlZChzZWxmLCBkYXRhOiBieXRlcyk6CiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIGV2ZW50cyA9IHNlbGYuY29ubi5yZWNlaXZlX2RhdGEoZGF0YSkKQEAgLTYxLDYgKzY1
LDEzIEBAIGNsYXNzIEgyUHJvdG9jb2woYXN5bmNpby5Qcm90b2NvbCk6CiAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuc3RyZWFtX2NvbXBsZXRlKGV2ZW50LnN0cmVhbV9pZCkKICAgICAgICAgICAg
ICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQsIENvbm5lY3Rpb25UZXJtaW5hdGVkKToKICAgICAg
ICAgICAgICAgICAgICAgc2VsZi50cmFuc3BvcnQuY2xvc2UoKQorICAgICAgICAgICAgICAgIGVs
aWYgaXNpbnN0YW5jZShldmVudCwgU3RyZWFtUmVzZXQpOgorICAgICAgICAgICAgICAgICAgICBz
ZWxmLnN0cmVhbV9yZXNldChldmVudC5zdHJlYW1faWQpCisgICAgICAgICAgICAgICAgZWxpZiBp
c2luc3RhbmNlKGV2ZW50LCBXaW5kb3dVcGRhdGVkKToKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi53aW5kb3dfdXBkYXRlZChldmVudC5zdHJlYW1faWQsIGV2ZW50LmRlbHRhKQorICAgICAgICAg
ICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgUmVtb3RlU2V0dGluZ3NDaGFuZ2VkKToKKyAg
ICAgICAgICAgICAgICAgICAgaWYgU2V0dGluZ0NvZGVzLklOSVRJQUxfV0lORE9XX1NJWkUgaW4g
ZXZlbnQuY2hhbmdlZF9zZXR0aW5nczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYud2lu
ZG93X3VwZGF0ZWQoTm9uZSwgMCkKIAogICAgICAgICAgICAgICAgIHNlbGYudHJhbnNwb3J0Lndy
aXRlKHNlbGYuY29ubi5kYXRhX3RvX3NlbmQoKSkKIApAQCAtNjgsMTEgKzc5LDYgQEAgY2xhc3Mg
SDJQcm90b2NvbChhc3luY2lvLlByb3RvY29sKToKICAgICAgICAgaGVhZGVycyA9IGNvbGxlY3Rp
b25zLk9yZGVyZWREaWN0KGhlYWRlcnMpCiAgICAgICAgIG1ldGhvZCA9IGhlYWRlcnNbJzptZXRo
b2QnXQogCi0gICAgICAgICMgV2Ugb25seSBzdXBwb3J0IEdFVCBhbmQgUE9TVC4KLSAgICAgICAg
aWYgbWV0aG9kIG5vdCBpbiAoJ0dFVCcsICdQT1NUJyk6Ci0gICAgICAgICAgICBzZWxmLnJldHVy
bl80MDUoaGVhZGVycywgc3RyZWFtX2lkKQotICAgICAgICAgICAgcmV0dXJuCi0KICAgICAgICAg
IyBTdG9yZSBvZmYgdGhlIHJlcXVlc3QgZGF0YS4KICAgICAgICAgcmVxdWVzdF9kYXRhID0gUmVx
dWVzdERhdGEoaGVhZGVycywgaW8uQnl0ZXNJTygpKQogICAgICAgICBzZWxmLnN0cmVhbV9kYXRh
W3N0cmVhbV9pZF0gPSByZXF1ZXN0X2RhdGEKQEAgLTEwMSwxOCArMTA3LDcgQEAgY2xhc3MgSDJQ
cm90b2NvbChhc3luY2lvLlByb3RvY29sKToKICAgICAgICAgICAgICgnc2VydmVyJywgJ2FzeW5j
aW8taDInKSwKICAgICAgICAgKQogICAgICAgICBzZWxmLmNvbm4uc2VuZF9oZWFkZXJzKHN0cmVh
bV9pZCwgcmVzcG9uc2VfaGVhZGVycykKLSAgICAgICAgc2VsZi5jb25uLnNlbmRfZGF0YShzdHJl
YW1faWQsIGRhdGEsIGVuZF9zdHJlYW09VHJ1ZSkKLQotICAgIGRlZiByZXR1cm5fNDA1KHNlbGYs
IGhlYWRlcnM6IExpc3RbVHVwbGVbc3RyLCBzdHJdXSwgc3RyZWFtX2lkOiBpbnQpOgotICAgICAg
ICAiIiIKLSAgICAgICAgV2UgZG9uJ3Qgc3VwcG9ydCB0aGUgZ2l2ZW4gbWV0aG9kLCBzbyB3ZSB3
YW50IHRvIHJldHVybiBhIDQwNSByZXNwb25zZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHJlc3Bv
bnNlX2hlYWRlcnMgPSAoCi0gICAgICAgICAgICAoJzpzdGF0dXMnLCAnNDA1JyksCi0gICAgICAg
ICAgICAoJ2NvbnRlbnQtbGVuZ3RoJywgJzAnKSwKLSAgICAgICAgICAgICgnc2VydmVyJywgJ2Fz
eW5jaW8taDInKSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmNvbm4uc2VuZF9oZWFkZXJzKHN0
cmVhbV9pZCwgcmVzcG9uc2VfaGVhZGVycywgZW5kX3N0cmVhbT1UcnVlKQorICAgICAgICBhc3lu
Y2lvLmVuc3VyZV9mdXR1cmUoc2VsZi5zZW5kX2RhdGEoZGF0YSwgc3RyZWFtX2lkKSkKIAogICAg
IGRlZiByZWNlaXZlX2RhdGEoc2VsZiwgZGF0YTogYnl0ZXMsIHN0cmVhbV9pZDogaW50KToKICAg
ICAgICAgIiIiCkBAIC0xMjgsMTIgKzEyMyw3MiBAQCBjbGFzcyBIMlByb3RvY29sKGFzeW5jaW8u
UHJvdG9jb2wpOgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc3RyZWFtX2RhdGEuZGF0YS53
cml0ZShkYXRhKQogCisgICAgZGVmIHN0cmVhbV9yZXNldChzZWxmLCBzdHJlYW1faWQpOgorICAg
ICAgICAiIiIKKyAgICAgICAgQSBzdHJlYW0gcmVzZXQgd2FzIHNlbnQuIFN0b3Agc2VuZGluZyBk
YXRhLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc3RyZWFtX2lkIGluIHNlbGYuZmxvd19jb250
cm9sX2Z1dHVyZXM6CisgICAgICAgICAgICBmdXR1cmUgPSBzZWxmLmZsb3dfY29udHJvbF9mdXR1
cmVzLnBvcChzdHJlYW1faWQpCisgICAgICAgICAgICBmdXR1cmUuY2FuY2VsKCkKKworICAgIGFz
eW5jIGRlZiBzZW5kX2RhdGEoc2VsZiwgZGF0YSwgc3RyZWFtX2lkKToKKyAgICAgICAgIiIiCisg
ICAgICAgIFNlbmQgZGF0YSBhY2NvcmRpbmcgdG8gdGhlIGZsb3cgY29udHJvbCBydWxlcy4KKyAg
ICAgICAgIiIiCisgICAgICAgIHdoaWxlIGRhdGE6CisgICAgICAgICAgICB3aGlsZSBzZWxmLmNv
bm4ubG9jYWxfZmxvd19jb250cm9sX3dpbmRvdyhzdHJlYW1faWQpIDwgMToKKyAgICAgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlbGYud2FpdF9mb3JfZmxvd19j
b250cm9sKHN0cmVhbV9pZCkKKyAgICAgICAgICAgICAgICBleGNlcHQgYXN5bmNpby5DYW5jZWxs
ZWRFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgICAgIGNodW5r
X3NpemUgPSBtaW4oCisgICAgICAgICAgICAgICAgc2VsZi5jb25uLmxvY2FsX2Zsb3dfY29udHJv
bF93aW5kb3coc3RyZWFtX2lkKSwKKyAgICAgICAgICAgICAgICBsZW4oZGF0YSksCisgICAgICAg
ICAgICAgICAgc2VsZi5jb25uLm1heF9vdXRib3VuZF9mcmFtZV9zaXplLAorICAgICAgICAgICAg
KQorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5jb25uLnNlbmRfZGF0
YSgKKyAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkLAorICAgICAgICAgICAgICAgICAgICBk
YXRhWzpjaHVua19zaXplXSwKKyAgICAgICAgICAgICAgICAgICAgZW5kX3N0cmVhbT0oY2h1bmtf
c2l6ZSA9PSBsZW4oZGF0YSkpCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZXhjZXB0
IChTdHJlYW1DbG9zZWRFcnJvciwgUHJvdG9jb2xFcnJvcik6CisgICAgICAgICAgICAgICAgIyBU
aGUgc3RyZWFtIGdvdCBjbG9zZWQgYW5kIHdlIGRpZG4ndCBnZXQgdG9sZC4gV2UncmUgZG9uZQor
ICAgICAgICAgICAgICAgICMgaGVyZS4KKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAg
ICAgICBzZWxmLnRyYW5zcG9ydC53cml0ZShzZWxmLmNvbm4uZGF0YV90b19zZW5kKCkpCisgICAg
ICAgICAgICBkYXRhID0gZGF0YVtjaHVua19zaXplOl0KKworICAgIGFzeW5jIGRlZiB3YWl0X2Zv
cl9mbG93X2NvbnRyb2woc2VsZiwgc3RyZWFtX2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFdh
aXRzIGZvciBhIEZ1dHVyZSB0aGF0IGZpcmVzIHdoZW4gdGhlIGZsb3cgY29udHJvbCB3aW5kb3cg
aXMgb3BlbmVkLgorICAgICAgICAiIiIKKyAgICAgICAgZiA9IGFzeW5jaW8uRnV0dXJlKCkKKyAg
ICAgICAgc2VsZi5mbG93X2NvbnRyb2xfZnV0dXJlc1tzdHJlYW1faWRdID0gZgorICAgICAgICBh
d2FpdCBmCisKKyAgICBkZWYgd2luZG93X3VwZGF0ZWQoc2VsZiwgc3RyZWFtX2lkLCBkZWx0YSk6
CisgICAgICAgICIiIgorICAgICAgICBBIHdpbmRvdyB1cGRhdGUgZnJhbWUgd2FzIHJlY2VpdmVk
LiBVbmJsb2NrIHNvbWUgbnVtYmVyIG9mIGZsb3cgY29udHJvbAorICAgICAgICBGdXR1cmVzLgor
ICAgICAgICAiIiIKKyAgICAgICAgaWYgc3RyZWFtX2lkIGFuZCBzdHJlYW1faWQgaW4gc2VsZi5m
bG93X2NvbnRyb2xfZnV0dXJlczoKKyAgICAgICAgICAgIGYgPSBzZWxmLmZsb3dfY29udHJvbF9m
dXR1cmVzLnBvcChzdHJlYW1faWQpCisgICAgICAgICAgICBmLnNldF9yZXN1bHQoZGVsdGEpCisg
ICAgICAgIGVsaWYgbm90IHN0cmVhbV9pZDoKKyAgICAgICAgICAgIGZvciBmIGluIHNlbGYuZmxv
d19jb250cm9sX2Z1dHVyZXMudmFsdWVzKCk6CisgICAgICAgICAgICAgICAgZi5zZXRfcmVzdWx0
KGRlbHRhKQorCisgICAgICAgICAgICBzZWxmLmZsb3dfY29udHJvbF9mdXR1cmVzID0ge30KKwog
CiBzc2xfY29udGV4dCA9IHNzbC5jcmVhdGVfZGVmYXVsdF9jb250ZXh0KHNzbC5QdXJwb3NlLkNM
SUVOVF9BVVRIKQogc3NsX2NvbnRleHQub3B0aW9ucyB8PSAoCiAgICAgc3NsLk9QX05PX1RMU3Yx
IHwgc3NsLk9QX05PX1RMU3YxXzEgfCBzc2wuT1BfTk9fQ09NUFJFU1NJT04KICkKLXNzbF9jb250
ZXh0LnNldF9jaXBoZXJzKCJFQ0RIRStBRVNHQ00iKQogc3NsX2NvbnRleHQubG9hZF9jZXJ0X2No
YWluKGNlcnRmaWxlPSJjZXJ0LmNydCIsIGtleWZpbGU9ImNlcnQua2V5IikKIHNzbF9jb250ZXh0
LnNldF9hbHBuX3Byb3RvY29scyhbImgyIl0pCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBs
ZXMvYXN5bmNpby93c2dpLXNlcnZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvYXN5bmNpby93c2dp
LXNlcnZlci5weQppbmRleCAwOWFiMmNlMDU0MTc2YjY1ZGFkOGFhZmEyNWY0OGVjMDEyMDY4MzVk
Li45ZmRiMmZhMGZjMzA3MmYxZjZhMTc4MDMyY2ZjNDdkZDEwZDIwNWZmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL2V4YW1wbGVzL2FzeW5jaW8vd3NnaS1zZXJ2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFt
cGxlcy9hc3luY2lvL3dzZ2ktc2VydmVyLnB5CkBAIC01LDcgKzUsNyBAQCBhc3luY2lvLXNlcnZl
ci5weQogCiBBIGZ1bGx5LWZ1bmN0aW9uYWwgV1NHSSBzZXJ2ZXIsIHdyaXR0ZW4gdXNpbmcgaHlw
ZXItaDIuIFJlcXVpcmVzIGFzeW5jaW8uCiAKLVRvIHRlc3QgaXQsIHRyeSBpbnN0YWxsaW5nIGh0
dHBpbiBmcm9tIHBpcCAoYGBwaXAgaW5zdGFsbCBodHRwYmluYGApIGFuZCB0aGVuCitUbyB0ZXN0
IGl0LCB0cnkgaW5zdGFsbGluZyBodHRwYmluIGZyb20gcGlwIChgYHBpcCBpbnN0YWxsIGh0dHBi
aW5gYCkgYW5kIHRoZW4KIHJ1bm5pbmcgdGhlIHNlcnZlciAoYGBweXRob24gYXN5bmNpby1zZXJ2
ZXIucHkgaHR0cGJpbjphcHBgYCkuCiAKIFRoaXMgc2VydmVyIGRvZXMgbm90IHN1cHBvcnQgSFRU
UC8xLjE6IGl0IGlzIGEgSFRUUC8yLW9ubHkgV1NHSSBzZXJ2ZXIuIFRoZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9leGFtcGxlcy9jdXJpby9jdXJpby1zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVz
L2N1cmlvL2N1cmlvLXNlcnZlci5weQppbmRleCAwMTYwNGI0NGU2ZmZlODNjY2E5Yzg2MmEwNjJh
N2JmNThlNzVhZGFkLi5mOTNkNGRiOWQwNDBlMzA1MTkzMDNmMDIzODNiMTIyMDEzNTJmZjQxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2N1cmlvL2N1cmlvLXNlcnZlci5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL2V4YW1wbGVzL2N1cmlvL2N1cmlvLXNlcnZlci5weQpAQCAtMTIsNyArMTIsNyBAQCBp
bXBvcnQgbWltZXR5cGVzCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIAotZnJvbSBjdXJpbyBpbXBv
cnQgS2VybmVsLCBFdmVudCwgc3Bhd24sIHNvY2tldCwgc3NsCitmcm9tIGN1cmlvIGltcG9ydCBF
dmVudCwgc3Bhd24sIHNvY2tldCwgc3NsLCBydW4KIAogaW1wb3J0IGgyLmNvbmZpZwogaW1wb3J0
IGgyLmNvbm5lY3Rpb24KQEAgLTIzLDcgKzIzLDcgQEAgaW1wb3J0IGgyLmV2ZW50cwogUkVBRF9D
SFVOS19TSVpFID0gODE5MgogCiAKLWRlZiBjcmVhdGVfbGlzdGVuaW5nX3NzbF9zb2NrZXQoYWRk
cmVzcywgY2VydGZpbGUsIGtleWZpbGUpOgorYXN5bmMgZGVmIGNyZWF0ZV9saXN0ZW5pbmdfc3Ns
X3NvY2tldChhZGRyZXNzLCBjZXJ0ZmlsZSwga2V5ZmlsZSk6CiAgICAgIiIiCiAgICAgQ3JlYXRl
IGFuZCByZXR1cm4gYSBsaXN0ZW5pbmcgVExTIHNvY2tldCBvbiBhIGdpdmVuIGFkZHJlc3MuCiAg
ICAgIiIiCkBAIC0zNyw3ICszNyw3IEBAIGRlZiBjcmVhdGVfbGlzdGVuaW5nX3NzbF9zb2NrZXQo
YWRkcmVzcywgY2VydGZpbGUsIGtleWZpbGUpOgogCiAgICAgc29jayA9IHNvY2tldC5zb2NrZXQo
KQogICAgIHNvY2suc2V0c29ja29wdChzb2NrZXQuU09MX1NPQ0tFVCwgc29ja2V0LlNPX1JFVVNF
QUREUiwgMSkKLSAgICBzb2NrID0gc3NsX2NvbnRleHQud3JhcF9zb2NrZXQoc29jaykKKyAgICBz
b2NrID0gYXdhaXQgc3NsX2NvbnRleHQud3JhcF9zb2NrZXQoc29jaykKICAgICBzb2NrLmJpbmQo
YWRkcmVzcykKICAgICBzb2NrLmxpc3RlbigpCiAKQEAgLTQ4LDcgKzQ4LDcgQEAgYXN5bmMgZGVm
IGgyX3NlcnZlcihhZGRyZXNzLCByb290LCBjZXJ0ZmlsZSwga2V5ZmlsZSk6CiAgICAgIiIiCiAg
ICAgQ3JlYXRlIGFuIEhUVFAvMiBzZXJ2ZXIgYXQgdGhlIGdpdmVuIGFkZHJlc3MuCiAgICAgIiIi
Ci0gICAgc29jayA9IGNyZWF0ZV9saXN0ZW5pbmdfc3NsX3NvY2tldChhZGRyZXNzLCBjZXJ0Zmls
ZSwga2V5ZmlsZSkKKyAgICBzb2NrID0gYXdhaXQgY3JlYXRlX2xpc3RlbmluZ19zc2xfc29ja2V0
KGFkZHJlc3MsIGNlcnRmaWxlLCBrZXlmaWxlKQogICAgIHByaW50KCJOb3cgbGlzdGVuaW5nIG9u
ICVzOiVkIiAlIGFkZHJlc3MpCiAKICAgICBhc3luYyB3aXRoIHNvY2s6CkBAIC0xNTAsNyArMTUw
LDcgQEAgY2xhc3MgSDJTZXJ2ZXI6CiAgICAgICAgIFNlbmQgdGhlIGRhdGEgcG9ydGlvbiBvZiBh
IGZpbGUuIEhhbmRsZXMgZmxvdyBjb250cm9sIHJ1bGVzLgogICAgICAgICAiIiIKICAgICAgICAg
d2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIHdoaWxlIG5vdCBzZWxmLmNvbm4ubG9jYWxfZmxvd19j
b250cm9sX3dpbmRvdyhzdHJlYW1faWQpOgorICAgICAgICAgICAgd2hpbGUgc2VsZi5jb25uLmxv
Y2FsX2Zsb3dfY29udHJvbF93aW5kb3coc3RyZWFtX2lkKSA8IDE6CiAgICAgICAgICAgICAgICAg
YXdhaXQgc2VsZi53YWl0X2Zvcl9mbG93X2NvbnRyb2woc3RyZWFtX2lkKQogCiAgICAgICAgICAg
ICBjaHVua19zaXplID0gbWluKApAQCAtMTk2LDEzICsxOTYsMTEgQEAgY2xhc3MgSDJTZXJ2ZXI6
CiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgaG9zdCA9IHN5cy5hcmd2WzJdIGlm
IGxlbihzeXMuYXJndikgPiAyIGVsc2UgImxvY2FsaG9zdCIKLSAgICBrZXJuZWwgPSBLZXJuZWwo
d2l0aF9tb25pdG9yPVRydWUpCiAgICAgcHJpbnQoIlRyeSBHRVR0aW5nOiIpCiAgICAgcHJpbnQo
IiAgICBPbiBPU1ggYWZ0ZXIgJ2JyZXcgaW5zdGFsbCBjdXJsIC0td2l0aC1jLWFyZXMgLS13aXRo
LWxpYmlkbiAtLXdpdGgtbmdodHRwMiAtLXdpdGgtb3BlbnNzbCc6IikKICAgICBwcmludCgiL3Vz
ci9sb2NhbC9vcHQvY3VybC9iaW4vY3VybCAtLXRsc3YxLjIgLS1odHRwMiAtayBodHRwczovL2xv
Y2FsaG9zdDo1MDAwL2J1bmRsZS5qcyIpCiAgICAgcHJpbnQoIk9yIG9wZW4gYSBicm93c2VyIHRv
OiBodHRwczovL2xvY2FsaG9zdDo1MDAwLyIpCiAgICAgcHJpbnQoIiAgIChBY2NlcHQgYWxsIHRo
ZSB3YXJuaW5ncykiKQotICAgIGtlcm5lbC5ydW4oaDJfc2VydmVyKChob3N0LCA1MDAwKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBzeXMuYXJndlsxXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAie30uY3J0LnBlbSIuZm9ybWF0KGhvc3QpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICJ7fS5rZXkiLmZvcm1hdChob3N0KSkpCisgICAgcnVuKGgyX3NlcnZlcigoaG9zdCwgNTAwMCks
IHN5cy5hcmd2WzFdLAorICAgICAgICAgICAgICAgICAgInt9LmNydC5wZW0iLmZvcm1hdChob3N0
KSwKKyAgICAgICAgICAgICAgICAgICJ7fS5rZXkiLmZvcm1hdChob3N0KSksIHdpdGhfbW9uaXRv
cj1UcnVlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9ldmVudGxldC9ldmVudGxldC1z
ZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2V2ZW50bGV0L2V2ZW50bGV0LXNlcnZlci5weQpp
bmRleCBmZjM0ZTJmOWNjZGE1ZWQzNDI3YjI3YzM2MGU5NmI3ZmZlMTBhYTQxLi5hNDZjZmIzZDE1
ODI3OGJhYTQyYzA4OTM0NjQ0MDAxYjQ1MGE3OTY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1w
bGVzL2V2ZW50bGV0L2V2ZW50bGV0LXNlcnZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2V2
ZW50bGV0L2V2ZW50bGV0LXNlcnZlci5weQpAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBDb25uZWN0
aW9uTWFuYWdlcihvYmplY3QpOgogICAgICAgICByZXNwb25zZV9oZWFkZXJzID0gKAogICAgICAg
ICAgICAgKCc6c3RhdHVzJywgJzIwMCcpLAogICAgICAgICAgICAgKCdjb250ZW50LXR5cGUnLCAn
YXBwbGljYXRpb24vanNvbicpLAotICAgICAgICAgICAgKCdjb250ZW50LWxlbmd0aCcsIGxlbihk
YXRhKSksCisgICAgICAgICAgICAoJ2NvbnRlbnQtbGVuZ3RoJywgc3RyKGxlbihkYXRhKSkpLAog
ICAgICAgICAgICAgKCdzZXJ2ZXInLCAnZXZlbnRsZXQtaDInKSwKICAgICAgICAgKQogICAgICAg
ICBzZWxmLmNvbm4uc2VuZF9oZWFkZXJzKHN0cmVhbV9pZCwgcmVzcG9uc2VfaGVhZGVycykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL2NsaWVudF9odHRwc19zZXR1cF9m
cmFnbWVudC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL2NsaWVudF9odHRwc19zZXR1
cF9mcmFnbWVudC5weQppbmRleCA5OTU4YzFiZDcyNjcwYzhjMWJhYTQxMjE0OTVmMzJmNDk4ZGM5
OTZjLi4yNjkxOTRkNmM3NzBjZDNhZTAwMTMxMTY0YTJjMWJlODgyYmEwMDc1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9jbGllbnRfaHR0cHNfc2V0dXBfZnJhZ21lbnQu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9mcmFnbWVudHMvY2xpZW50X2h0dHBzX3NldHVwX2Zy
YWdtZW50LnB5CkBAIC00OCw3ICs0OCw3IEBAIGRlZiBnZXRfaHR0cDJfc3NsX2NvbnRleHQoKToK
IAogICAgICMgUkZDIDc1NDAgU2VjdGlvbiA5LjIuMjogImRlcGxveW1lbnRzIG9mIEhUVFAvMiB0
aGF0IHVzZSBUTFMgMS4yIE1VU1QKICAgICAjIHN1cHBvcnQgVExTX0VDREhFX1JTQV9XSVRIX0FF
U18xMjhfR0NNX1NIQTI1NiIuIEluIHByYWN0aWNlLCB0aGUKLSAgICAjIGJsYWNrbGlzdCBkZWZp
bmVkIGluIHRoaXMgc2VjdGlvbiBhbGxvd3Mgb25seSB0aGUgQUVTIEdDTSBhbmQgQ2hhQ2hhMjAK
KyAgICAjIGJsb2NrbGlzdCBkZWZpbmVkIGluIHRoaXMgc2VjdGlvbiBhbGxvd3Mgb25seSB0aGUg
QUVTIEdDTSBhbmQgQ2hhQ2hhMjAKICAgICAjIGNpcGhlciBzdWl0ZXMgd2l0aCBlcGhlbWVyYWwg
a2V5IG5lZ290aWF0aW9uLgogICAgIGN0eC5zZXRfY2lwaGVycygiRUNESEUrQUVTR0NNOkVDREhF
K0NIQUNIQTIwOkRIRStBRVNHQ006REhFK0NIQUNIQTIwIikKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi9leGFtcGxlcy9mcmFnbWVudHMvY2xpZW50X3VwZ3JhZGVfZnJhZ21lbnQucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2V4YW1wbGVzL2ZyYWdtZW50cy9jbGllbnRfdXBncmFkZV9mcmFnbWVudC5weQppbmRleCAzNGZm
Mjk4Y2Q5N2Q3MTg5MTNkMDYyYjY0ZjM5MmE3MmMwYmJhZjRjLi5mNDVjMDAyZGY3NDYzYjk2MjE3
M2FlYTJkOTI3ZGJkYjhjNzVlMDM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdt
ZW50cy9jbGllbnRfdXBncmFkZV9mcmFnbWVudC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2Zy
YWdtZW50cy9jbGllbnRfdXBncmFkZV9mcmFnbWVudC5weQpAQCAtMzgsNyArMzgsNyBAQCBkZWYg
c2VuZF9pbml0aWFsX3JlcXVlc3QoY29ubmVjdGlvbiwgc2V0dGluZ3MpOgogICAgICAgICBiIkdF
VCAvIEhUVFAvMS4xXHJcbiIgKwogICAgICAgICBiIkhvc3Q6IGxvY2FsaG9zdFxyXG4iICsKICAg
ICAgICAgYiJVcGdyYWRlOiBoMmNcclxuIiArCi0gICAgICAgIGIiSFRUUDItU2V0dGluZ3M6ICIg
KyBzZXR0aW5ncyArICJcclxuIgorICAgICAgICBiIkhUVFAyLVNldHRpbmdzOiAiICsgc2V0dGlu
Z3MgKyBiIlxyXG4iICsKICAgICAgICAgYiJcclxuIgogICAgICkKICAgICBjb25uZWN0aW9uLnNl
bmRhbGwocmVxdWVzdCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL3Nl
cnZlcl9odHRwc19zZXR1cF9mcmFnbWVudC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRz
L3NlcnZlcl9odHRwc19zZXR1cF9mcmFnbWVudC5weQppbmRleCAxNGVjMGVmMjM3ZGUwMzNhOWE4
N2IwMzNhZGE0ZGZhYjA5MjdkMWVmLi45ZmMzNjFmMmM2MjI5YWZhNzBiNTY0MmI3ZmFhYzRmNGNk
YmVkZmQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9zZXJ2ZXJfaHR0
cHNfc2V0dXBfZnJhZ21lbnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9mcmFnbWVudHMvc2Vy
dmVyX2h0dHBzX3NldHVwX2ZyYWdtZW50LnB5CkBAIC01MSw3ICs1MSw3IEBAIGRlZiBnZXRfaHR0
cDJfc3NsX2NvbnRleHQoKToKIAogICAgICMgUkZDIDc1NDAgU2VjdGlvbiA5LjIuMjogImRlcGxv
eW1lbnRzIG9mIEhUVFAvMiB0aGF0IHVzZSBUTFMgMS4yIE1VU1QKICAgICAjIHN1cHBvcnQgVExT
X0VDREhFX1JTQV9XSVRIX0FFU18xMjhfR0NNX1NIQTI1NiIuIEluIHByYWN0aWNlLCB0aGUKLSAg
ICAjIGJsYWNrbGlzdCBkZWZpbmVkIGluIHRoaXMgc2VjdGlvbiBhbGxvd3Mgb25seSB0aGUgQUVT
IEdDTSBhbmQgQ2hhQ2hhMjAKKyAgICAjIGJsb2NrbGlzdCBkZWZpbmVkIGluIHRoaXMgc2VjdGlv
biBhbGxvd3Mgb25seSB0aGUgQUVTIEdDTSBhbmQgQ2hhQ2hhMjAKICAgICAjIGNpcGhlciBzdWl0
ZXMgd2l0aCBlcGhlbWVyYWwga2V5IG5lZ290aWF0aW9uLgogICAgIGN0eC5zZXRfY2lwaGVycygi
RUNESEUrQUVTR0NNOkVDREhFK0NIQUNIQTIwOkRIRStBRVNHQ006REhFK0NIQUNIQTIwIikKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9mcmFnbWVudHMvc2VydmVyX3VwZ3JhZGVfZnJh
Z21lbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9zZXJ2ZXJfdXBncmFkZV9mcmFn
bWVudC5weQppbmRleCA1Yjc3YzA1ZmUwZDg4NmY1MWM5OGY4MWZmYmMwZTkzYzBhNmE1ZTZjLi43
ZThiMWYwZWVhODA5NzFjMGY2YmVlNWEwNDNlMzY0N2VjNTgyMjVkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9zZXJ2ZXJfdXBncmFkZV9mcmFnbWVudC5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9zZXJ2ZXJfdXBncmFkZV9mcmFnbWVudC5weQpAQCAt
NDUsMTQgKzQ1LDE0IEBAIGRlZiByZWNlaXZlX2luaXRpYWxfcmVxdWVzdChjb25uZWN0aW9uKToK
ICAgICAgICAgZGF0YSArPSBjb25uZWN0aW9uLnJlY3YoODE5MikKIAogICAgIG1hdGNoID0gcmUu
c2VhcmNoKGInVXBncmFkZTogaDJjXHJcbicsIGRhdGEpCi0gICAgaWYgbWF0Y2ggaXMgbm90IE5v
bmU6CisgICAgaWYgbWF0Y2ggaXMgTm9uZToKICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJI
VFRQLzIgdXBncmFkZSBub3QgcmVxdWVzdGVkISIpCiAKICAgICAjIFdlIG5lZWQgdG8gbG9vayBm
b3IgdGhlIEhUVFAyLVNldHRpbmdzIGhlYWRlciBmaWVsZC4gQWdhaW4sIGluIHByb2R1Y3Rpb24K
ICAgICAjIGNvZGUgeW91IHNob3VsZG4ndCB1c2UgcmVndWxhciBleHByZXNzaW9ucyBmb3IgdGhp
cywgYnV0IGl0J3MgZ29vZCBlbm91Z2gKICAgICAjIGZvciB0aGUgZXhhbXBsZS4KICAgICBtYXRj
aCA9IHJlLnNlYXJjaChiJ0hUVFAyLVNldHRpbmdzOiAoXFxTKylcclxuJywgZGF0YSkKLSAgICBp
ZiBtYXRjaCBpcyBub3QgTm9uZToKKyAgICBpZiBtYXRjaCBpcyBOb25lOgogICAgICAgICByYWlz
ZSBSdW50aW1lRXJyb3IoIkhUVFAyLVNldHRpbmdzIGhlYWRlciBmaWVsZCBub3QgcHJlc2VudCEi
KQogCiAgICAgcmV0dXJuIG1hdGNoLmdyb3VwKDEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1w
bGVzL3R3aXN0ZWQvaGVhZF9yZXF1ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL2hl
YWRfcmVxdWVzdC5weQppbmRleCA3MmZlNWY4ODkxOGI2NGJmOTRhYTYxNDQyZmNmM2U5Y2ZkMzRj
MTMxLi40YTc1MzgwMjRhOTU4YzgwZTY4MTc2MjQ2N2Q4ZDkxYTNhN2VjNDIxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQvaGVhZF9yZXF1ZXN0LnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
ZXhhbXBsZXMvdHdpc3RlZC9oZWFkX3JlcXVlc3QucHkKQEAgLTIzLDggKzIzLDggQEAgZnJvbSBo
Mi5ldmVudHMgaW1wb3J0ICgKICkKIAogCi1BVVRIT1JJVFkgPSB1J2h0dHAyYmluLm9yZycKLVBB
VEggPSAnLycKK0FVVEhPUklUWSA9IHUnbmdodHRwMi5vcmcnCitQQVRIID0gJy9odHRwYmluLycK
IFNJWkUgPSA0MDk2CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL3Bv
c3RfcmVxdWVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdHdpc3RlZC9wb3N0X3JlcXVlc3QucHkK
aW5kZXggNzQ2ZjEzMjY2YTI4ZTRiZTAzZGZjZTViZDAxMDQ4ZGQwNjRmMzczMy4uYzgxN2JhYzQ2
NWZiNGYxMmY1MmFmMGJiYWZjZTBiMzJiMDM1NzViMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFt
cGxlcy90d2lzdGVkL3Bvc3RfcmVxdWVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0
ZWQvcG9zdF9yZXF1ZXN0LnB5CkBAIC0zMCw4ICszMCw4IEBAIGZyb20gaDIuZXZlbnRzIGltcG9y
dCAoCiApCiAKIAotQVVUSE9SSVRZID0gdSdodHRwMmJpbi5vcmcnCi1QQVRIID0gJy9wb3N0Jwor
QVVUSE9SSVRZID0gdSduZ2h0dHAyLm9yZycKK1BBVEggPSAnL2h0dHBiaW4vcG9zdCcKIAogCiBj
bGFzcyBIMlByb3RvY29sKFByb3RvY29sKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMv
dHdpc3RlZC90d2lzdGVkLXNlcnZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdHdpc3RlZC90d2lz
dGVkLXNlcnZlci5weQppbmRleCA3Y2RlNjA5ZGIwY2I1MmJlMTVhNDU1ZTFjZGJhMzU2OWE3N2E0
ZmQ2Li43NWEyNzFkOWI3OWRhOGUyY2Y3MTYzNmYzMzgyNTQ1NDJhYmVhZmJlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQvdHdpc3RlZC1zZXJ2ZXIucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi9leGFtcGxlcy90d2lzdGVkL3R3aXN0ZWQtc2VydmVyLnB5CkBAIC0yMCw2ICsyMCw3IEBAIGZy
b20gaDIuY29ubmVjdGlvbiBpbXBvcnQgSDJDb25uZWN0aW9uCiBmcm9tIGgyLmV2ZW50cyBpbXBv
cnQgKAogICAgIFJlcXVlc3RSZWNlaXZlZCwgRGF0YVJlY2VpdmVkLCBXaW5kb3dVcGRhdGVkCiAp
Citmcm9tIGgyLmV4Y2VwdGlvbnMgaW1wb3J0IFByb3RvY29sRXJyb3IKIAogCiBkZWYgY2xvc2Vf
ZmlsZShmaWxlLCBkKToKQEAgLTQ2LDE3ICs0NywyMyBAQCBjbGFzcyBIMlByb3RvY29sKFByb3Rv
Y29sKToKICAgICAgICAgaWYgbm90IHNlbGYua25vd25fcHJvdG86CiAgICAgICAgICAgICBzZWxm
Lmtub3duX3Byb3RvID0gVHJ1ZQogCi0gICAgICAgIGV2ZW50cyA9IHNlbGYuY29ubi5yZWNlaXZl
X2RhdGEoZGF0YSkKLSAgICAgICAgaWYgc2VsZi5jb25uLmRhdGFfdG9fc2VuZDoKLSAgICAgICAg
ICAgIHNlbGYudHJhbnNwb3J0LndyaXRlKHNlbGYuY29ubi5kYXRhX3RvX3NlbmQoKSkKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgZXZlbnRzID0gc2VsZi5jb25uLnJlY2VpdmVfZGF0YShkYXRh
KQorICAgICAgICBleGNlcHQgUHJvdG9jb2xFcnJvcjoKKyAgICAgICAgICAgIGlmIHNlbGYuY29u
bi5kYXRhX3RvX3NlbmQ6CisgICAgICAgICAgICAgICAgc2VsZi50cmFuc3BvcnQud3JpdGUoc2Vs
Zi5jb25uLmRhdGFfdG9fc2VuZCgpKQorICAgICAgICAgICAgc2VsZi50cmFuc3BvcnQubG9zZUNv
bm5lY3Rpb24oKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIGV2ZW50IGluIGV2ZW50
czoKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV2ZW50LCBSZXF1ZXN0UmVjZWl2ZWQp
OgorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3RSZWNlaXZlZChldmVudC5oZWFkZXJz
LCBldmVudC5zdHJlYW1faWQpCisgICAgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50
LCBEYXRhUmVjZWl2ZWQpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmRhdGFGcmFtZVJlY2Vp
dmVkKGV2ZW50LnN0cmVhbV9pZCkKKyAgICAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZl
bnQsIFdpbmRvd1VwZGF0ZWQpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLndpbmRvd1VwZGF0
ZWQoZXZlbnQpCiAKLSAgICAgICAgZm9yIGV2ZW50IGluIGV2ZW50czoKLSAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2UoZXZlbnQsIFJlcXVlc3RSZWNlaXZlZCk6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5yZXF1ZXN0UmVjZWl2ZWQoZXZlbnQuaGVhZGVycywgZXZlbnQuc3RyZWFtX2lkKQotICAgICAg
ICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBEYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAg
ICAgIHNlbGYuZGF0YUZyYW1lUmVjZWl2ZWQoZXZlbnQuc3RyZWFtX2lkKQotICAgICAgICAgICAg
ZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBXaW5kb3dVcGRhdGVkKToKLSAgICAgICAgICAgICAgICBz
ZWxmLndpbmRvd1VwZGF0ZWQoZXZlbnQpCisgICAgICAgICAgICBpZiBzZWxmLmNvbm4uZGF0YV90
b19zZW5kOgorICAgICAgICAgICAgICAgIHNlbGYudHJhbnNwb3J0LndyaXRlKHNlbGYuY29ubi5k
YXRhX3RvX3NlbmQoKSkKIAogICAgIGRlZiByZXF1ZXN0UmVjZWl2ZWQoc2VsZiwgaGVhZGVycywg
c3RyZWFtX2lkKToKICAgICAgICAgaGVhZGVycyA9IGRpY3QoaGVhZGVycykgICMgSW52YWxpZCBj
b252ZXJzaW9uLCBmaXggbGF0ZXIuCkBAIC04Niw3ICs5Myw5IEBAIGNsYXNzIEgyUHJvdG9jb2wo
UHJvdG9jb2wpOgogCiAgICAgZGVmIHNlbmRGaWxlKHNlbGYsIGZpbGVfcGF0aCwgc3RyZWFtX2lk
KToKICAgICAgICAgZmlsZXNpemUgPSBvcy5zdGF0KGZpbGVfcGF0aCkuc3Rfc2l6ZQotICAgICAg
ICBjb250ZW50X3R5cGUsIGNvbnRlbnRfZW5jb2RpbmcgPSBtaW1ldHlwZXMuZ3Vlc3NfdHlwZShm
aWxlX3BhdGgpCisgICAgICAgIGNvbnRlbnRfdHlwZSwgY29udGVudF9lbmNvZGluZyA9IG1pbWV0
eXBlcy5ndWVzc190eXBlKAorICAgICAgICAgICAgZmlsZV9wYXRoLmRlY29kZSgndXRmLTgnKQor
ICAgICAgICApCiAgICAgICAgIHJlc3BvbnNlX2hlYWRlcnMgPSBbCiAgICAgICAgICAgICAoJzpz
dGF0dXMnLCAnMjAwJyksCiAgICAgICAgICAgICAoJ2NvbnRlbnQtbGVuZ3RoJywgc3RyKGZpbGVz
aXplKSksCkBAIC0xNTksMTAgKzE2OCwxMSBAQCBjbGFzcyBIMkZhY3RvcnkoRmFjdG9yeSk6CiAg
ICAgICAgIHNlbGYucm9vdCA9IHJvb3QKIAogICAgIGRlZiBidWlsZFByb3RvY29sKHNlbGYsIGFk
ZHIpOgorICAgICAgICBwcmludChIMlByb3RvY29sKQogICAgICAgICByZXR1cm4gSDJQcm90b2Nv
bChzZWxmLnJvb3QpCiAKIAotcm9vdCA9IHN5cy5hcmd2WzFdCityb290ID0gc3lzLmFyZ3ZbMV0u
ZW5jb2RlKCd1dGYtOCcpCiAKIHdpdGggb3Blbignc2VydmVyLmNydCcsICdyJykgYXMgZjoKICAg
ICBjZXJ0X2RhdGEgPSBmLnJlYWQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9fX2luaXRfXy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaDIvaDIvX19pbml0X18ucHkKaW5kZXggMzg4MDVkZDc3MGRkY2MwNzliZmRmYWFi
MDEyNGE5YWY1OGQ2MWUyYy4uNjI5MDcxMGU2MzRkZTc4OWI5NmE0MjcwMTJjY2JlNjA1OTNiZjcz
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL19f
aW5pdF9fLnB5CkBAIC01LDQgKzUsNCBAQCBoMgogCiBBIEhUVFAvMiBpbXBsZW1lbnRhdGlvbi4K
ICIiIgotX192ZXJzaW9uX18gPSAnMy4wLjEnCitfX3ZlcnNpb25fXyA9ICczLjIuMCcKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvaDIvY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9jb25maWcucHkKaW5kZXgg
MDgxMjlhNDA2NjhlZjU0ZWYxNDE1NjdiODg5YzI1NzkzM2IxZDI3MC4uMWM0MzdlZTI0Zjg0MzUy
M2Q5MGJmNjY4YjEwYWI2NGI1NzEyMDg5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9jb25maWcu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9oMi9jb25maWcucHkKQEAgLTI5LDcgKzI5LDcgQEAgY2xhc3MgRHVt
bXlMb2dnZXIob2JqZWN0KToKICAgICAiIiIKICAgICBBbiBMb2dnZXIgb2JqZWN0IHRoYXQgZG9l
cyBub3QgYWN0dWFsIGxvZ2dpbmcsIGhlbmNlIGEgRHVtbXlMb2dnZXIuCiAKLSAgICBGb3IgdGhl
IGNsYXNzIHRoZSBsb2cgb3BlcmF0aW9uIGlzIG1lcmVseSBhIG5vLW9wLiAgVGhlIGludGVudCBp
cyB0byBhdm9pZAorICAgIEZvciB0aGUgY2xhc3MgdGhlIGxvZyBvcGVyYXRpb24gaXMgbWVyZWx5
IGEgbm8tb3AuIFRoZSBpbnRlbnQgaXMgdG8gYXZvaWQKICAgICBjb25kaXRpb25hbHMgYmVpbmcg
c3ByaW5rbGVkIHRocm91Z2hvdXQgdGhlIGh5cGVyLWgyIGNvZGUgZm9yIGNhbGxzIHRvCiAgICAg
bG9nZ2luZyBmdW5jdGlvbnMgd2hlbiBubyBsb2dnZXIgaXMgcGFzc2VkIGludG8gdGhlIGNvcnJl
c3BvbmRpbmcgb2JqZWN0LgogICAgICIiIgpAQCAtNDIsNiArNDIsMTIgQEAgY2xhc3MgRHVtbXlM
b2dnZXIob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIHBhc3MKIAorICAgIGRlZiB0cmFj
ZShzZWxmLCAqdmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIE5vLW9wIGxv
Z2dpbmcuIE9ubHkgbGV2ZWwgbmVlZGVkIGZvciBub3cuCisgICAgICAgICIiIgorICAgICAgICBw
YXNzCisKIAogY2xhc3MgSDJDb25maWd1cmF0aW9uKG9iamVjdCk6CiAgICAgIiIiCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL2gyL2Nvbm5lY3Rpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2Nvbm5lY3Rpb24ucHkK
aW5kZXggNDQwNTE4M2U4NjY5MjVmNDdiNzE2N2MyYjg2MWIzNTNkYzVjMmZmNy4uMzVlNmZkNmRh
ODg5MzZhOWQxMGM4ZTgzOWI2MTNmZDYzMWViM2JlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9j
b25uZWN0aW9uLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvY29ubmVjdGlvbi5weQpAQCAtMjEsNyArMjEs
NyBAQCBmcm9tIGhwYWNrLmV4Y2VwdGlvbnMgaW1wb3J0IEhQQUNLRXJyb3IsIE92ZXJzaXplZEhl
YWRlckxpc3RFcnJvcgogZnJvbSAuY29uZmlnIGltcG9ydCBIMkNvbmZpZ3VyYXRpb24KIGZyb20g
LmVycm9ycyBpbXBvcnQgRXJyb3JDb2RlcywgX2Vycm9yX2NvZGVfZnJvbV9pbnQKIGZyb20gLmV2
ZW50cyBpbXBvcnQgKAotICAgIFdpbmRvd1VwZGF0ZWQsIFJlbW90ZVNldHRpbmdzQ2hhbmdlZCwg
UGluZ0Fja25vd2xlZGdlZCwKKyAgICBXaW5kb3dVcGRhdGVkLCBSZW1vdGVTZXR0aW5nc0NoYW5n
ZWQsIFBpbmdSZWNlaXZlZCwgUGluZ0Fja1JlY2VpdmVkLAogICAgIFNldHRpbmdzQWNrbm93bGVk
Z2VkLCBDb25uZWN0aW9uVGVybWluYXRlZCwgUHJpb3JpdHlVcGRhdGVkLAogICAgIEFsdGVybmF0
aXZlU2VydmljZUF2YWlsYWJsZSwgVW5rbm93bkZyYW1lUmVjZWl2ZWQKICkKQEAgLTMzLDcgKzMz
LDcgQEAgZnJvbSAuZXhjZXB0aW9ucyBpbXBvcnQgKAogZnJvbSAuZnJhbWVfYnVmZmVyIGltcG9y
dCBGcmFtZUJ1ZmZlcgogZnJvbSAuc2V0dGluZ3MgaW1wb3J0IFNldHRpbmdzLCBTZXR0aW5nQ29k
ZXMKIGZyb20gLnN0cmVhbSBpbXBvcnQgSDJTdHJlYW0sIFN0cmVhbUNsb3NlZEJ5Ci1mcm9tIC51
dGlsaXRpZXMgaW1wb3J0IGd1YXJkX2luY3JlbWVudF93aW5kb3cKK2Zyb20gLnV0aWxpdGllcyBp
bXBvcnQgU2l6ZUxpbWl0RGljdCwgZ3VhcmRfaW5jcmVtZW50X3dpbmRvdwogZnJvbSAud2luZG93
cyBpbXBvcnQgV2luZG93TWFuYWdlcgogCiAKQEAgLTI4MSw2ICsyODEsOSBAQCBjbGFzcyBIMkNv
bm5lY3Rpb24ob2JqZWN0KToKICAgICAjIFRoZSBpbml0aWFsIGRlZmF1bHQgdmFsdWUgb2YgU0VU
VElOR1NfTUFYX0hFQURFUl9MSVNUX1NJWkUuCiAgICAgREVGQVVMVF9NQVhfSEVBREVSX0xJU1Rf
U0laRSA9IDIqKjE2CiAKKyAgICAjIEtlZXAgaW4gbWVtb3J5IGxpbWl0ZWQgYW1vdW50IG9mIHJl
c3VsdHMgZm9yIHN0cmVhbXMgY2xvc2VzCisgICAgTUFYX0NMT1NFRF9TVFJFQU1TID0gMioqMTYK
KwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWc9Tm9uZSk6CiAgICAgICAgIHNlbGYuc3Rh
dGVfbWFjaGluZSA9IEgyQ29ubmVjdGlvblN0YXRlTWFjaGluZSgpCiAgICAgICAgIHNlbGYuc3Ry
ZWFtcyA9IHt9CkBAIC0zMjUsNyArMzI4LDcgQEAgY2xhc3MgSDJDb25uZWN0aW9uKG9iamVjdCk6
CiAgICAgICAgICkKICAgICAgICAgc2VsZi5yZW1vdGVfc2V0dGluZ3MgPSBTZXR0aW5ncyhjbGll
bnQ9bm90IHNlbGYuY29uZmlnLmNsaWVudF9zaWRlKQogCi0gICAgICAgICMgVGhlIGN1cmVudCB2
YWx1ZSBvZiB0aGUgY29ubmVjdGlvbiBmbG93IGNvbnRyb2wgd2luZG93cyBvbiB0aGUKKyAgICAg
ICAgIyBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgY29ubmVjdGlvbiBmbG93IGNvbnRyb2wgd2lu
ZG93cyBvbiB0aGUKICAgICAgICAgIyBjb25uZWN0aW9uLgogICAgICAgICBzZWxmLm91dGJvdW5k
X2Zsb3dfY29udHJvbF93aW5kb3cgPSAoCiAgICAgICAgICAgICBzZWxmLnJlbW90ZV9zZXR0aW5n
cy5pbml0aWFsX3dpbmRvd19zaXplCkBAIC0zNDcsNyArMzUwLDcgQEAgY2xhc3MgSDJDb25uZWN0
aW9uKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2hlYWRlcl9mcmFtZXMgPSBbXQogCiAgICAgICAg
ICMgRGF0YSB0aGF0IG5lZWRzIHRvIGJlIHNlbnQuCi0gICAgICAgIHNlbGYuX2RhdGFfdG9fc2Vu
ZCA9IGInJworICAgICAgICBzZWxmLl9kYXRhX3RvX3NlbmQgPSBieXRlYXJyYXkoKQogCiAgICAg
ICAgICMgS2VlcHMgdHJhY2sgb2YgaG93IHN0cmVhbXMgYXJlIGNsb3NlZC4KICAgICAgICAgIyBV
c2VkIHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGJsb3cgdXAgaW4gdGhlIGZhY2Ugb2YgZnJhbWVz
IHRoYXQgd2VyZQpAQCAtMzU1LDcgKzM1OCw5IEBAIGNsYXNzIEgyQ29ubmVjdGlvbihvYmplY3Qp
OgogICAgICAgICAjIEFsc28gdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBzaG91bGQgY29u
c2lkZXIgYSBmcmFtZSByZWNlaXZlZAogICAgICAgICAjIHdoaWxlIGEgc3RyZWFtIGlzIGNsb3Nl
ZCBhcyBlaXRoZXIgYSBzdHJlYW0gZXJyb3Igb3IgYSBjb25uZWN0aW9uCiAgICAgICAgICMgZXJy
b3IuCi0gICAgICAgIHNlbGYuX2Nsb3NlZF9zdHJlYW1zID0ge30KKyAgICAgICAgc2VsZi5fY2xv
c2VkX3N0cmVhbXMgPSBTaXplTGltaXREaWN0KAorICAgICAgICAgICAgc2l6ZV9saW1pdD1zZWxm
Lk1BWF9DTE9TRURfU1RSRUFNUworICAgICAgICApCiAKICAgICAgICAgIyBUaGUgZmxvdyBjb250
cm9sIHdpbmRvdyBtYW5hZ2VyIGZvciB0aGUgY29ubmVjdGlvbi4KICAgICAgICAgc2VsZi5faW5i
b3VuZF9mbG93X2NvbnRyb2xfd2luZG93X21hbmFnZXIgPSBXaW5kb3dNYW5hZ2VyKApAQCAtOTA5
LDE2ICs5MTQsMjEgQEAgY2xhc3MgSDJDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICBm
cmFtZXMgPSBzdHJlYW0uaW5jcmVhc2VfZmxvd19jb250cm9sX3dpbmRvdygKICAgICAgICAgICAg
ICAgICBpbmNyZW1lbnQKICAgICAgICAgICAgICkKKworICAgICAgICAgICAgc2VsZi5jb25maWcu
bG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICJJbmNyZWFzZSBzdHJlYW0gSUQgJWQgZmxv
dyBjb250cm9sIHdpbmRvdyBieSAlZCIsCisgICAgICAgICAgICAgICAgc3RyZWFtX2lkLCBpbmNy
ZW1lbnQKKyAgICAgICAgICAgICkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX2lu
Ym91bmRfZmxvd19jb250cm9sX3dpbmRvd19tYW5hZ2VyLndpbmRvd19vcGVuZWQoaW5jcmVtZW50
KQogICAgICAgICAgICAgZiA9IFdpbmRvd1VwZGF0ZUZyYW1lKDApCiAgICAgICAgICAgICBmLndp
bmRvd19pbmNyZW1lbnQgPSBpbmNyZW1lbnQKICAgICAgICAgICAgIGZyYW1lcyA9IFtmXQogCi0g
ICAgICAgIHNlbGYuY29uZmlnLmxvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICJJbmNyZWFzZSBz
dHJlYW0gSUQgJWQgZmxvdyBjb250cm9sIHdpbmRvdyBieSAlZCIsCi0gICAgICAgICAgICBzdHJl
YW1faWQsIGluY3JlbWVudAotICAgICAgICApCisgICAgICAgICAgICBzZWxmLmNvbmZpZy5sb2dn
ZXIuZGVidWcoCisgICAgICAgICAgICAgICAgIkluY3JlYXNlIGNvbm5lY3Rpb24gZmxvdyBjb250
cm9sIHdpbmRvdyBieSAlZCIsIGluY3JlbWVudAorICAgICAgICAgICAgKQorCiAgICAgICAgIHNl
bGYuX3ByZXBhcmVfZm9yX3NlbmRpbmcoZnJhbWVzKQogCiAgICAgZGVmIHB1c2hfc3RyZWFtKHNl
bGYsIHN0cmVhbV9pZCwgcHJvbWlzZWRfc3RyZWFtX2lkLCByZXF1ZXN0X2hlYWRlcnMpOgpAQCAt
MTMyNyw3ICsxMzM3LDcgQEAgY2xhc3MgSDJDb25uZWN0aW9uKG9iamVjdCk6CiAKICAgICAgICAg
c2VsZi5fcHJlcGFyZV9mb3Jfc2VuZGluZyhmcmFtZXMpCiAKLSAgICBkZWYgZGF0YV90b19zZW5k
KHNlbGYsIGFtdD1Ob25lKToKKyAgICBkZWYgZGF0YV90b19zZW5kKHNlbGYsIGFtb3VudD1Ob25l
KToKICAgICAgICAgIiIiCiAgICAgICAgIFJldHVybnMgc29tZSBkYXRhIGZvciBzZW5kaW5nIG91
dCBvZiB0aGUgaW50ZXJuYWwgZGF0YSBidWZmZXIuCiAKQEAgLTEzMzYsMTkgKzEzNDYsMTkgQEAg
Y2xhc3MgSDJDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIG9yIGxlc3MgaWYgdGhhdCBtdWNo
IGRhdGEgaXMgbm90IGF2YWlsYWJsZS4gSXQgZG9lcyBub3QgcGVyZm9ybSBhbnkKICAgICAgICAg
SS9PLCBhbmQgc28gdXNlcyBhIGRpZmZlcmVudCBuYW1lLgogCi0gICAgICAgIDpwYXJhbSBhbXQ6
IChvcHRpb25hbCkgVGhlIG1heGltdW0gYW1vdW50IG9mIGRhdGEgdG8gcmV0dXJuLiBJZiBub3QK
KyAgICAgICAgOnBhcmFtIGFtb3VudDogKG9wdGlvbmFsKSBUaGUgbWF4aW11bSBhbW91bnQgb2Yg
ZGF0YSB0byByZXR1cm4uIElmIG5vdAogICAgICAgICAgICAgc2V0LCBvciBzZXQgdG8gYGBOb25l
YGAsIHdpbGwgcmV0dXJuIGFzIG11Y2ggZGF0YSBhcyBwb3NzaWJsZS4KLSAgICAgICAgOnR5cGUg
YW10OiBgYGludGBgCisgICAgICAgIDp0eXBlIGFtb3VudDogYGBpbnRgYAogICAgICAgICA6cmV0
dXJuczogQSBieXRlc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gc2VuZCBvbiB0aGUgd2ly
ZS4KICAgICAgICAgOnJ0eXBlOiBgYGJ5dGVzYGAKICAgICAgICAgIiIiCi0gICAgICAgIGlmIGFt
dCBpcyBOb25lOgotICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2RhdGFfdG9fc2VuZAotICAgICAg
ICAgICAgc2VsZi5fZGF0YV90b19zZW5kID0gYicnCisgICAgICAgIGlmIGFtb3VudCBpcyBOb25l
OgorICAgICAgICAgICAgZGF0YSA9IGJ5dGVzKHNlbGYuX2RhdGFfdG9fc2VuZCkKKyAgICAgICAg
ICAgIHNlbGYuX2RhdGFfdG9fc2VuZCA9IGJ5dGVhcnJheSgpCiAgICAgICAgICAgICByZXR1cm4g
ZGF0YQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2RhdGFfdG9fc2Vu
ZFs6YW10XQotICAgICAgICAgICAgc2VsZi5fZGF0YV90b19zZW5kID0gc2VsZi5fZGF0YV90b19z
ZW5kW2FtdDpdCisgICAgICAgICAgICBkYXRhID0gYnl0ZXMoc2VsZi5fZGF0YV90b19zZW5kWzph
bW91bnRdKQorICAgICAgICAgICAgc2VsZi5fZGF0YV90b19zZW5kID0gc2VsZi5fZGF0YV90b19z
ZW5kW2Ftb3VudDpdCiAgICAgICAgICAgICByZXR1cm4gZGF0YQogCiAgICAgZGVmIGNsZWFyX291
dGJvdW5kX2RhdGFfYnVmZmVyKHNlbGYpOgpAQCAtMTM2MSw3ICsxMzcxLDcgQEAgY2xhc3MgSDJD
b25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIFRoaXMgbWV0aG9kIHNob3VsZCBub3Qgbm9ybWFs
bHkgYmUgdXNlZCwgYnV0IGlzIG1hZGUgYXZhaWxhYmxlIHRvIGF2b2lkCiAgICAgICAgIGV4cG9z
aW5nIGltcGxlbWVudGF0aW9uIGRldGFpbHMuCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLl9k
YXRhX3RvX3NlbmQgPSBiJycKKyAgICAgICAgc2VsZi5fZGF0YV90b19zZW5kID0gYnl0ZWFycmF5
KCkKIAogICAgIGRlZiBfYWNrbm93bGVkZ2Vfc2V0dGluZ3Moc2VsZik6CiAgICAgICAgICIiIgpA
QCAtMTQ0MCw3ICsxNDUwLDcgQEAgY2xhc3MgSDJDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAg
IDpyZXR1cm5zOiBBIGxpc3Qgb2YgZXZlbnRzIHRoYXQgdGhlIHJlbW90ZSBwZWVyIHRyaWdnZXJl
ZCBieSBzZW5kaW5nCiAgICAgICAgICAgICB0aGlzIGRhdGEuCiAgICAgICAgICIiIgotICAgICAg
ICBzZWxmLmNvbmZpZy5sb2dnZXIuZGVidWcoCisgICAgICAgIHNlbGYuY29uZmlnLmxvZ2dlci50
cmFjZSgKICAgICAgICAgICAgICJQcm9jZXNzIHJlY2VpdmVkIGRhdGEgb24gY29ubmVjdGlvbi4g
UmVjZWl2ZWQgZGF0YTogJXIiLCBkYXRhCiAgICAgICAgICkKIApAQCAtMTYyNCw2ICsxNjM0LDM1
IEBAIGNsYXNzIEgyQ29ubmVjdGlvbihvYmplY3QpOgogCiAgICAgICAgIHJldHVybiBmcmFtZXMs
IGV2ZW50cyArIHN0cmVhbV9ldmVudHMKIAorICAgIGRlZiBfaGFuZGxlX2RhdGFfb25fY2xvc2Vk
X3N0cmVhbShzZWxmLCBldmVudHMsIGV4YywgZnJhbWUpOgorICAgICAgICAjIFRoaXMgc3RyZWFt
IGlzIGFscmVhZHkgY2xvc2VkIC0gYW5kIHlldCB3ZSByZWNlaXZlZCBhIERBVEEgZnJhbWUuCisg
ICAgICAgICMgVGhlIHJlY2VpdmVkIERBVEEgZnJhbWUgY291bnRzIHRvd2FyZHMgdGhlIGNvbm5l
Y3Rpb24gZmxvdyB3aW5kb3cuCisgICAgICAgICMgV2UgbmVlZCB0byBtYW51YWxseSB0byBhY2tu
b3dsZWRnZSB0aGUgREFUQSBmcmFtZSB0byB1cGRhdGUgdGhlIGZsb3cKKyAgICAgICAgIyB3aW5k
b3cgb2YgdGhlIGNvbm5lY3Rpb24uIE90aGVyd2lzZSB0aGUgd2hvbGUgY29ubmVjdGlvbiBzdGFs
bHMgZHVlCisgICAgICAgICMgdGhlIGluYm91bmQgZmxvdyB3aW5kb3cgYmVpbmcgMC4KKyAgICAg
ICAgZnJhbWVzID0gW10KKyAgICAgICAgY29ubl9tYW5hZ2VyID0gc2VsZi5faW5ib3VuZF9mbG93
X2NvbnRyb2xfd2luZG93X21hbmFnZXIKKyAgICAgICAgY29ubl9pbmNyZW1lbnQgPSBjb25uX21h
bmFnZXIucHJvY2Vzc19ieXRlcygKKyAgICAgICAgICAgIGZyYW1lLmZsb3dfY29udHJvbGxlZF9s
ZW5ndGgKKyAgICAgICAgKQorICAgICAgICBpZiBjb25uX2luY3JlbWVudDoKKyAgICAgICAgICAg
IGYgPSBXaW5kb3dVcGRhdGVGcmFtZSgwKQorICAgICAgICAgICAgZi53aW5kb3dfaW5jcmVtZW50
ID0gY29ubl9pbmNyZW1lbnQKKyAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoZikKKyAgICAgICAg
ICAgIHNlbGYuY29uZmlnLmxvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICAgICAiUmVjZWl2ZWQg
REFUQSBmcmFtZSBvbiBjbG9zZWQgc3RyZWFtICVkIC0gIgorICAgICAgICAgICAgICAgICJhdXRv
LWVtaXR0ZWQgYSBXSU5ET1dfVVBEQVRFIGJ5ICVkIiwKKyAgICAgICAgICAgICAgICBmcmFtZS5z
dHJlYW1faWQsIGNvbm5faW5jcmVtZW50CisgICAgICAgICAgICApCisgICAgICAgIGYgPSBSc3RT
dHJlYW1GcmFtZShleGMuc3RyZWFtX2lkKQorICAgICAgICBmLmVycm9yX2NvZGUgPSBleGMuZXJy
b3JfY29kZQorICAgICAgICBmcmFtZXMuYXBwZW5kKGYpCisgICAgICAgIHNlbGYuY29uZmlnLmxv
Z2dlci5kZWJ1ZygKKyAgICAgICAgICAgICJTdHJlYW0gJWQgYWxyZWFkeSBDTE9TRUQgb3IgY2xl
YW5lZCB1cCAtICIKKyAgICAgICAgICAgICJhdXRvLWVtaXR0ZWQgYSBSU1RfRlJBTUUiICUgZnJh
bWUuc3RyZWFtX2lkCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIGZyYW1lcywgZXZlbnRzICsg
ZXhjLl9ldmVudHMKKwogICAgIGRlZiBfcmVjZWl2ZV9kYXRhX2ZyYW1lKHNlbGYsIGZyYW1lKToK
ICAgICAgICAgIiIiCiAgICAgICAgIFJlY2VpdmUgYSBkYXRhIGZyYW1lIG9uIHRoZSBjb25uZWN0
aW9uLgpAQCAtMTYzNiwxMiArMTY3NSwxOSBAQCBjbGFzcyBIMkNvbm5lY3Rpb24ob2JqZWN0KToK
ICAgICAgICAgc2VsZi5faW5ib3VuZF9mbG93X2NvbnRyb2xfd2luZG93X21hbmFnZXIud2luZG93
X2NvbnN1bWVkKAogICAgICAgICAgICAgZmxvd19jb250cm9sbGVkX2xlbmd0aAogICAgICAgICAp
Ci0gICAgICAgIHN0cmVhbSA9IHNlbGYuX2dldF9zdHJlYW1fYnlfaWQoZnJhbWUuc3RyZWFtX2lk
KQotICAgICAgICBmcmFtZXMsIHN0cmVhbV9ldmVudHMgPSBzdHJlYW0ucmVjZWl2ZV9kYXRhKAot
ICAgICAgICAgICAgZnJhbWUuZGF0YSwKLSAgICAgICAgICAgICdFTkRfU1RSRUFNJyBpbiBmcmFt
ZS5mbGFncywKLSAgICAgICAgICAgIGZsb3dfY29udHJvbGxlZF9sZW5ndGgKLSAgICAgICAgKQor
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHN0cmVhbSA9IHNlbGYuX2dldF9zdHJlYW1fYnlf
aWQoZnJhbWUuc3RyZWFtX2lkKQorICAgICAgICAgICAgZnJhbWVzLCBzdHJlYW1fZXZlbnRzID0g
c3RyZWFtLnJlY2VpdmVfZGF0YSgKKyAgICAgICAgICAgICAgICBmcmFtZS5kYXRhLAorICAgICAg
ICAgICAgICAgICdFTkRfU1RSRUFNJyBpbiBmcmFtZS5mbGFncywKKyAgICAgICAgICAgICAgICBm
bG93X2NvbnRyb2xsZWRfbGVuZ3RoCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBTdHJl
YW1DbG9zZWRFcnJvciBhcyBlOgorICAgICAgICAgICAgIyBUaGlzIHN0cmVhbSBpcyBlaXRoZXIg
bWFya2VkIGFzIENMT1NFRCBvciBhbHJlYWR5IGdvbmUgZnJvbSBvdXIKKyAgICAgICAgICAgICMg
aW50ZXJuYWwgc3RhdGUuCisgICAgICAgICAgICByZXR1cm4gc2VsZi5faGFuZGxlX2RhdGFfb25f
Y2xvc2VkX3N0cmVhbShldmVudHMsIGUsIGZyYW1lKQorCiAgICAgICAgIHJldHVybiBmcmFtZXMs
IGV2ZW50cyArIHN0cmVhbV9ldmVudHMKIAogICAgIGRlZiBfcmVjZWl2ZV9zZXR0aW5nc19mcmFt
ZShzZWxmLCBmcmFtZSk6CkBAIC0xNzE3LDE1ICsxNzYzLDE5IEBAIGNsYXNzIEgyQ29ubmVjdGlv
bihvYmplY3QpOgogICAgICAgICBmbGFncyA9IFtdCiAKICAgICAgICAgaWYgJ0FDSycgaW4gZnJh
bWUuZmxhZ3M6Ci0gICAgICAgICAgICBldnQgPSBQaW5nQWNrbm93bGVkZ2VkKCkKLSAgICAgICAg
ICAgIGV2dC5waW5nX2RhdGEgPSBmcmFtZS5vcGFxdWVfZGF0YQotICAgICAgICAgICAgZXZlbnRz
LmFwcGVuZChldnQpCisgICAgICAgICAgICBldnQgPSBQaW5nQWNrUmVjZWl2ZWQoKQogICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgZXZ0ID0gUGluZ1JlY2VpdmVkKCkKKworICAgICAgICAgICAg
IyBhdXRvbWF0aWNhbGx5IEFDSyB0aGUgUElORyB3aXRoIHRoZSBzYW1lICdvcGFxdWUgZGF0YScK
ICAgICAgICAgICAgIGYgPSBQaW5nRnJhbWUoMCkKICAgICAgICAgICAgIGYuZmxhZ3MgPSB7J0FD
Syd9CiAgICAgICAgICAgICBmLm9wYXF1ZV9kYXRhID0gZnJhbWUub3BhcXVlX2RhdGEKICAgICAg
ICAgICAgIGZsYWdzLmFwcGVuZChmKQogCisgICAgICAgIGV2dC5waW5nX2RhdGEgPSBmcmFtZS5v
cGFxdWVfZGF0YQorICAgICAgICBldmVudHMuYXBwZW5kKGV2dCkKKwogICAgICAgICByZXR1cm4g
ZmxhZ3MsIGV2ZW50cwogCiAgICAgZGVmIF9yZWNlaXZlX3JzdF9zdHJlYW1fZnJhbWUoc2VsZiwg
ZnJhbWUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9ldmVudHMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2V2
ZW50cy5weQppbmRleCBmZjNlYzNkZjMxM2ZmYzdkNmJiNTYzMTMyZjhjNDVlYmE5MjQzZDVhLi5h
MDZjOTkwM2Q1YThhMmVlZWUzN2MyMjhlNGE4MTFkNTcyZjNjZThiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL2gyL2V2ZW50cy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2V2ZW50cy5weQpAQCAtMzU2LDIyICsz
NTYsNTEgQEAgY2xhc3MgUmVtb3RlU2V0dGluZ3NDaGFuZ2VkKEV2ZW50KToKICAgICAgICAgKQog
CiAKK2NsYXNzIFBpbmdSZWNlaXZlZChFdmVudCk6CisgICAgIiIiCisgICAgVGhlIFBpbmdSZWNl
aXZlZCBldmVudCBpcyBmaXJlZCB3aGVuZXZlciBhIFBJTkcgaXMgcmVjZWl2ZWQuIEl0IGNvbnRh
aW5zCisgICAgdGhlICdvcGFxdWUgZGF0YScgb2YgdGhlIFBJTkcgZnJhbWUuIEEgcGluZyBhY2tu
b3dsZWRnbWVudCB3aXRoIHRoZSBzYW1lCisgICAgJ29wYXF1ZSBkYXRhJyBpcyBhdXRvbWF0aWNh
bGx5IGVtaXR0ZWQgYWZ0ZXIgcmVjZWl2aW5nIGEgcGluZy4KKworICAgIC4uIHZlcnNpb25hZGRl
ZDo6IDMuMS4wCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAjOiBU
aGUgZGF0YSBpbmNsdWRlZCBvbiB0aGUgcGluZy4KKyAgICAgICAgc2VsZi5waW5nX2RhdGEgPSBO
b25lCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPFBpbmdSZWNl
aXZlZCBwaW5nX2RhdGE6JXM+IiAlICgKKyAgICAgICAgICAgIF9ieXRlc19yZXByZXNlbnRhdGlv
bihzZWxmLnBpbmdfZGF0YSksCisgICAgICAgICkKKworCiBjbGFzcyBQaW5nQWNrbm93bGVkZ2Vk
KEV2ZW50KToKICAgICAiIiIKLSAgICBUaGUgUGluZ0Fja25vd2xlZGdlZCBldmVudCBpcyBmaXJl
ZCB3aGVuZXZlciBhIHVzZXItZW1pdHRlZCBQSU5HIGlzCi0gICAgYWNrbm93bGVkZ2VkLiBUaGlz
IGNvbnRhaW5zIHRoZSBkYXRhIGluIHRoZSBBQ0snZWQgUElORywgYWxsb3dpbmcgdGhlCi0gICAg
dXNlciB0byBjb3JyZWxhdGUgUElOR3MgYW5kIGNhbGN1bGF0ZSBSVFQuCisgICAgU2FtZSBhcyBQ
aW5nQWNrUmVjZWl2ZWQuCisKKyAgICAuLiBkZXByZWNhdGVkOjogMy4xLjAKICAgICAiIiIKICAg
ICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgICM6IFRoZSBkYXRhIGluY2x1ZGVkIG9uIHRo
ZSBwaW5nLgogICAgICAgICBzZWxmLnBpbmdfZGF0YSA9IE5vbmUKIAogICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8UGluZ0Fja25vd2xlZGdlZCBwaW5nX2RhdGE6JXM+
IiAlICgKKyAgICAgICAgcmV0dXJuICI8UGluZ0Fja1JlY2VpdmVkIHBpbmdfZGF0YTolcz4iICUg
KAogICAgICAgICAgICAgX2J5dGVzX3JlcHJlc2VudGF0aW9uKHNlbGYucGluZ19kYXRhKSwKICAg
ICAgICAgKQogCiAKK2NsYXNzIFBpbmdBY2tSZWNlaXZlZChQaW5nQWNrbm93bGVkZ2VkKToKKyAg
ICAiIiIKKyAgICBUaGUgUGluZ0Fja1JlY2VpdmVkIGV2ZW50IGlzIGZpcmVkIHdoZW5ldmVyIGEg
UElORyBhY2tub3dsZWRnbWVudCBpcworICAgIHJlY2VpdmVkLiBJdCBjb250YWlucyB0aGUgJ29w
YXF1ZSBkYXRhJyBvZiB0aGUgUElORytBQ0sgZnJhbWUsIGFsbG93aW5nIHRoZQorICAgIHVzZXIg
dG8gY29ycmVsYXRlIFBJTkdzIGFuZCBjYWxjdWxhdGUgUlRULgorCisgICAgLi4gdmVyc2lvbmFk
ZGVkOjogMy4xLjAKKyAgICAiIiIKKyAgICBwYXNzCisKKwogY2xhc3MgU3RyZWFtRW5kZWQoRXZl
bnQpOgogICAgICIiIgogICAgIFRoZSBTdHJlYW1FbmRlZCBldmVudCBpcyBmaXJlZCB3aGVuZXZl
ciBhIHN0cmVhbSBpcyBlbmRlZCBieSBhIHJlbW90ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9z
ZXR0aW5ncy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvc2V0dGluZ3MucHkKaW5kZXggM2RhNzIwMzI5Y2I5ODc5
MGYyZTRlN2RlNWUxYzg4Y2QxODA3MTgzNS4uYmY4N2M5NGY0ZThjZmQ1ZWZjMDJiNGVmNmVjMDgw
MmYzMTllZmFmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9zZXR0aW5ncy5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL2gyL3NldHRpbmdzLnB5CkBAIC0xNSw2ICsxNSwxMiBAQCBmcm9tIGh5cGVyZnJhbWUuZnJh
bWUgaW1wb3J0IFNldHRpbmdzRnJhbWUKIGZyb20gaDIuZXJyb3JzIGltcG9ydCBFcnJvckNvZGVz
CiBmcm9tIGgyLmV4Y2VwdGlvbnMgaW1wb3J0IEludmFsaWRTZXR0aW5nc1ZhbHVlRXJyb3IKIAor
dHJ5OgorICAgIGZyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBNdXRhYmxlTWFwcGluZworZXhj
ZXB0IEltcG9ydEVycm9yOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgIyBQeXRob24gMi43IGNv
bXBhdGliaWxpdHkKKyAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNdXRhYmxlTWFwcGluZwor
CiAKIGNsYXNzIFNldHRpbmdDb2RlcyhlbnVtLkludEVudW0pOgogICAgICIiIgpAQCAtNDksNiAr
NTUsMTAgQEAgY2xhc3MgU2V0dGluZ0NvZGVzKGVudW0uSW50RW51bSk6CiAgICAgIzogYW5kIHZh
bHVlIGluIG9jdGV0cyBwbHVzIGFuIG92ZXJoZWFkIG9mIDMyIG9jdGV0cyBmb3IgZWFjaCBoZWFk
ZXIgZmllbGQuCiAgICAgTUFYX0hFQURFUl9MSVNUX1NJWkUgPSBTZXR0aW5nc0ZyYW1lLk1BWF9I
RUFERVJfTElTVF9TSVpFCiAKKyAgICAjOiBUaGlzIHNldHRpbmcgY2FuIGJlIHVzZWQgdG8gZW5h
YmxlIHRoZSBjb25uZWN0IHByb3RvY29sLiBUbyBlbmFibGUgb24gYQorICAgICM6IGNsaWVudCBz
ZXQgdGhpcyB0byAxLgorICAgIEVOQUJMRV9DT05ORUNUX1BST1RPQ09MID0gU2V0dGluZ3NGcmFt
ZS5FTkFCTEVfQ09OTkVDVF9QUk9UT0NPTAorCiAKIGRlZiBfc2V0dGluZ19jb2RlX2Zyb21faW50
KGNvZGUpOgogICAgICIiIgpAQCAtODgsNyArOTgsNyBAQCBjbGFzcyBDaGFuZ2VkU2V0dGluZzoK
ICAgICAgICAgKQogCiAKLWNsYXNzIFNldHRpbmdzKGNvbGxlY3Rpb25zLk11dGFibGVNYXBwaW5n
KToKK2NsYXNzIFNldHRpbmdzKE11dGFibGVNYXBwaW5nKToKICAgICAiIiIKICAgICBBbiBvYmpl
Y3QgdGhhdCBlbmNhcHN1bGF0ZXMgSFRUUC8yIHNldHRpbmdzIHN0YXRlLgogCkBAIC0xMzUsNiAr
MTQ1LDcgQEAgY2xhc3MgU2V0dGluZ3MoY29sbGVjdGlvbnMuTXV0YWJsZU1hcHBpbmcpOgogICAg
ICAgICAgICAgU2V0dGluZ0NvZGVzLkVOQUJMRV9QVVNIOiBjb2xsZWN0aW9ucy5kZXF1ZShbaW50
KGNsaWVudCldKSwKICAgICAgICAgICAgIFNldHRpbmdDb2Rlcy5JTklUSUFMX1dJTkRPV19TSVpF
OiBjb2xsZWN0aW9ucy5kZXF1ZShbNjU1MzVdKSwKICAgICAgICAgICAgIFNldHRpbmdDb2Rlcy5N
QVhfRlJBTUVfU0laRTogY29sbGVjdGlvbnMuZGVxdWUoWzE2Mzg0XSksCisgICAgICAgICAgICBT
ZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0w6IGNvbGxlY3Rpb25zLmRlcXVlKFsw
XSksCiAgICAgICAgIH0KICAgICAgICAgaWYgaW5pdGlhbF92YWx1ZXMgaXMgbm90IE5vbmU6CiAg
ICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBpbml0aWFsX3ZhbHVlcy5pdGVtcygpOgpAQCAt
MjQzLDYgKzI1NCwxOCBAQCBjbGFzcyBTZXR0aW5ncyhjb2xsZWN0aW9ucy5NdXRhYmxlTWFwcGlu
Zyk6CiAgICAgZGVmIG1heF9oZWFkZXJfbGlzdF9zaXplKHNlbGYsIHZhbHVlKToKICAgICAgICAg
c2VsZltTZXR0aW5nQ29kZXMuTUFYX0hFQURFUl9MSVNUX1NJWkVdID0gdmFsdWUKIAorICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBlbmFibGVfY29ubmVjdF9wcm90b2NvbChzZWxmKToKKyAgICAgICAg
IiIiCisgICAgICAgIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSA6ZGF0YTpgRU5BQkxFX0NPTk5F
Q1RfUFJPVE9DT0wKKyAgICAgICAgPGgyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5FTkFCTEVfQ09O
TkVDVF9QUk9UT0NPTD5gIHNldHRpbmcuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2Vs
ZltTZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0xdCisKKyAgICBAZW5hYmxlX2Nv
bm5lY3RfcHJvdG9jb2wuc2V0dGVyCisgICAgZGVmIGVuYWJsZV9jb25uZWN0X3Byb3RvY29sKHNl
bGYsIHZhbHVlKToKKyAgICAgICAgc2VsZltTZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1RfUFJP
VE9DT0xdID0gdmFsdWUKKwogICAgICMgSW1wbGVtZW50IHRoZSBNdXRhYmxlTWFwcGluZyBBUEku
CiAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CiAgICAgICAgIHZhbCA9IHNlbGYuX3Nl
dHRpbmdzW2tleV1bMF0KQEAgLTI5Miw3ICszMTUsNyBAQCBjbGFzcyBTZXR0aW5ncyhjb2xsZWN0
aW9ucy5NdXRhYmxlTWFwcGluZyk6CiAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQK
IAogCi1kZWYgX3ZhbGlkYXRlX3NldHRpbmcoc2V0dGluZywgdmFsdWUpOgorZGVmIF92YWxpZGF0
ZV9zZXR0aW5nKHNldHRpbmcsIHZhbHVlKTogICMgbm9xYTogQzkwMQogICAgICIiIgogICAgIENv
bmZpcm1zIHRoYXQgYSBzcGVjaWZpYyBzZXR0aW5nIGhhcyBhIHdlbGwtZm9ybWVkIHZhbHVlLiBJ
ZiB0aGUgc2V0dGluZyBpcwogICAgIGludmFsaWQsIHJldHVybnMgYW4gZXJyb3IgY29kZS4gT3Ro
ZXJ3aXNlLCByZXR1cm5zIDAgKE5PX0VSUk9SKS4KQEAgLTMwOSw1ICszMzIsOCBAQCBkZWYgX3Zh
bGlkYXRlX3NldHRpbmcoc2V0dGluZywgdmFsdWUpOgogICAgIGVsaWYgc2V0dGluZyA9PSBTZXR0
aW5nQ29kZXMuTUFYX0hFQURFUl9MSVNUX1NJWkU6CiAgICAgICAgIGlmIHZhbHVlIDwgMDoKICAg
ICAgICAgICAgIHJldHVybiBFcnJvckNvZGVzLlBST1RPQ09MX0VSUk9SCisgICAgZWxpZiBzZXR0
aW5nID09IFNldHRpbmdDb2Rlcy5FTkFCTEVfQ09OTkVDVF9QUk9UT0NPTDoKKyAgICAgICAgaWYg
dmFsdWUgbm90IGluICgwLCAxKToKKyAgICAgICAgICAgIHJldHVybiBFcnJvckNvZGVzLlBST1RP
Q09MX0VSUk9SCiAKICAgICByZXR1cm4gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9zdHJlYW0u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL2gyL3N0cmVhbS5weQppbmRleCA0ODllYTRkOGQ2ZjUxODYwNGM3YmM4YmNm
ZmNlNWI0ZGVkZWQ0YjRlLi4xY2I5MTc4NmQ0MjU0YzlmYjFkMjc0YzM4NDE4MzQ3YzI3Mzg0Mjdh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3N0cmVhbS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3N0cmVh
bS5weQpAQCAtMzc4LDQxICszNzgsNiBAQCBjbGFzcyBIMlN0cmVhbVN0YXRlTWFjaGluZShvYmpl
Y3QpOgogICAgICAgICAiIiIKICAgICAgICAgcmFpc2UgUHJvdG9jb2xFcnJvcigiQXR0ZW1wdGVk
IHRvIHB1c2ggb24gY2xvc2VkIHN0cmVhbS4iKQogCi0gICAgZGVmIHdpbmRvd19vbl9jbG9zZWRf
c3RyZWFtKHNlbGYsIHByZXZpb3VzX3N0YXRlKToKLSAgICAgICAgIiIiCi0gICAgICAgIENhbGxl
ZCB3aGVuIGEgV0lORE9XX1VQREFURSBmcmFtZSBpcyByZWNlaXZlZCBvbiBhbiBhbHJlYWR5LWNs
b3NlZAotICAgICAgICBzdHJlYW0uCi0KLSAgICAgICAgSWYgd2Ugc2VudCBhbiBFTkRfU1RSRUFN
IGZyYW1lLCB3ZSBqdXN0IGlnbm9yZSB0aGUgZnJhbWUsIGFzIGluc3RydWN0ZWQKLSAgICAgICAg
aW4gUkZDIDc1NDAgU2VjdGlvbiA1LjEuIFRlY2huaWNhbGx5IHdlIHNob3VsZCBldmVudHVhbGx5
IGNvbnNpZGVyCi0gICAgICAgIFdJTkRPV19VUERBVEUgaW4gdGhpcyBzdGF0ZSBhbiBlcnJvciwg
YnV0IHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIGEKLSAgICAgICAgY2xvY2sgc28gd2UganVzdCBh
bHdheXMgYWxsb3cgaXQuIElmIHdlIGNsb3NlZCB0aGUgc3RyZWFtIGZvciBhbnkgb3RoZXIKLSAg
ICAgICAgcmVhc29uLCB3ZSBiZWhhdmUgYXMgd2UgZG8gZm9yIHJlY2VpdmluZyBhbnkgb3RoZXIg
ZnJhbWUgb24gYSBjbG9zZWQKLSAgICAgICAgc3RyZWFtLgotICAgICAgICAiIiIKLSAgICAgICAg
YXNzZXJ0IHNlbGYuc3RyZWFtX2Nsb3NlZF9ieSBpcyBub3QgTm9uZQotCi0gICAgICAgIGlmIHNl
bGYuc3RyZWFtX2Nsb3NlZF9ieSA9PSBTdHJlYW1DbG9zZWRCeS5TRU5EX0VORF9TVFJFQU06Ci0g
ICAgICAgICAgICByZXR1cm4gW10KLSAgICAgICAgcmV0dXJuIHNlbGYucmVjdl9vbl9jbG9zZWRf
c3RyZWFtKHByZXZpb3VzX3N0YXRlKQotCi0gICAgZGVmIHJlc2V0X29uX2Nsb3NlZF9zdHJlYW0o
c2VsZiwgcHJldmlvdXNfc3RhdGUpOgotICAgICAgICAiIiIKLSAgICAgICAgQ2FsbGVkIHdoZW4g
YSBSU1RfU1RSRUFNIGZyYW1lIGlzIHJlY2VpdmVkIG9uIGFuIGFscmVhZHktY2xvc2VkIHN0cmVh
bS4KLQotICAgICAgICBJZiB3ZSBzZW50IGFuIEVORF9TVFJFQU0gZnJhbWUsIHdlIGp1c3QgaWdu
b3JlIHRoZSBmcmFtZSwgYXMgaW5zdHJ1Y3RlZAotICAgICAgICBpbiBSRkMgNzU0MCBTZWN0aW9u
IDUuMS4gVGVjaG5pY2FsbHkgd2Ugc2hvdWxkIGV2ZW50dWFsbHkgY29uc2lkZXIKLSAgICAgICAg
UlNUX1NUUkVBTSBpbiB0aGlzIHN0YXRlIGFuIGVycm9yLCBidXQgd2UgZG9uJ3QgaGF2ZSBhY2Nl
c3MgdG8gYSBjbG9jawotICAgICAgICBzbyB3ZSBqdXN0IGFsd2F5cyBhbGxvdyBpdC4gSWYgd2Ug
Y2xvc2VkIHRoZSBzdHJlYW0gZm9yIGFueSBvdGhlcgotICAgICAgICByZWFzb24sIHdlIGJlaGF2
ZSBhcyB3ZSBkbyBmb3IgcmVjZWl2aW5nIGFueSBvdGhlciBmcmFtZSBvbiBhIGNsb3NlZAotICAg
ICAgICBzdHJlYW0uCi0gICAgICAgICIiIgotICAgICAgICBhc3NlcnQgc2VsZi5zdHJlYW1fY2xv
c2VkX2J5IGlzIG5vdCBOb25lCi0KLSAgICAgICAgaWYgc2VsZi5zdHJlYW1fY2xvc2VkX2J5IGlz
IFN0cmVhbUNsb3NlZEJ5LlNFTkRfRU5EX1NUUkVBTToKLSAgICAgICAgICAgIHJldHVybiBbXQot
ICAgICAgICByZXR1cm4gc2VsZi5yZWN2X29uX2Nsb3NlZF9zdHJlYW0ocHJldmlvdXNfc3RhdGUp
Ci0KICAgICBkZWYgc2VuZF9pbmZvcm1hdGlvbmFsX3Jlc3BvbnNlKHNlbGYsIHByZXZpb3VzX3N0
YXRlKToKICAgICAgICAgIiIiCiAgICAgICAgIENhbGxlZCB3aGVuIGFuIGluZm9ybWF0aW9uYWwg
aGVhZGVyIGJsb2NrIGlzIHNlbnQgKHRoYXQgaXMsIGEgYmxvY2sKQEAgLTc0MCwxMSArNzA1LDEy
IEBAIF90cmFuc2l0aW9ucyA9IHsKIAogICAgICMgPiBXSU5ET1dfVVBEQVRFIG9yIFJTVF9TVFJF
QU0gZnJhbWVzIGNhbiBiZSByZWNlaXZlZCBpbiB0aGlzIHN0YXRlCiAgICAgIyA+IGZvciBhIHNo
b3J0IHBlcmlvZCBhZnRlciBhIERBVEEgb3IgSEVBREVSUyBmcmFtZSBjb250YWluaW5nIGEKLSAg
ICAjID4gRU5EX1NUUkVBTSBmbGFnIGlzIHNlbnQuCisgICAgIyA+IEVORF9TVFJFQU0gZmxhZyBp
cyBzZW50LCBhcyBpbnN0cnVjdGVkIGluIFJGQyA3NTQwIFNlY3Rpb24gNS4xLiBCdXQgd2UKKyAg
ICAjID4gZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gYSBjbG9jayBzbyB3ZSBqdXN0IGFsd2F5cyBhbGxv
dyBpdC4KICAgICAoU3RyZWFtU3RhdGUuQ0xPU0VELCBTdHJlYW1JbnB1dHMuUkVDVl9XSU5ET1df
VVBEQVRFKToKLSAgICAgICAgKEgyU3RyZWFtU3RhdGVNYWNoaW5lLndpbmRvd19vbl9jbG9zZWRf
c3RyZWFtLCBTdHJlYW1TdGF0ZS5DTE9TRUQpLAorICAgICAgICAoTm9uZSwgU3RyZWFtU3RhdGUu
Q0xPU0VEKSwKICAgICAoU3RyZWFtU3RhdGUuQ0xPU0VELCBTdHJlYW1JbnB1dHMuUkVDVl9SU1Rf
U1RSRUFNKToKLSAgICAgICAgKEgyU3RyZWFtU3RhdGVNYWNoaW5lLnJlc2V0X29uX2Nsb3NlZF9z
dHJlYW0sIFN0cmVhbVN0YXRlLkNMT1NFRCksCisgICAgICAgIChOb25lLCBTdHJlYW1TdGF0ZS5D
TE9TRUQpLAogCiAgICAgIyA+IEEgcmVjZWl2ZXIgTVVTVCB0cmVhdCB0aGUgcmVjZWlwdCBvZiBh
IFBVU0hfUFJPTUlTRSBvbiBhIHN0cmVhbSB0aGF0IGlzCiAgICAgIyA+IG5laXRoZXIgIm9wZW4i
IG5vciAiaGFsZi1jbG9zZWQgKGxvY2FsKSIgYXMgYSBjb25uZWN0aW9uIGVycm9yIG9mIHR5cGUK
QEAgLTc4OCw3ICs3NTQsNyBAQCBjbGFzcyBIMlN0cmVhbShvYmplY3QpOgogICAgICAgICBzZWxm
Lm1heF9vdXRib3VuZF9mcmFtZV9zaXplID0gTm9uZQogICAgICAgICBzZWxmLnJlcXVlc3RfbWV0
aG9kID0gTm9uZQogCi0gICAgICAgICMgVGhlIGN1cmVudCB2YWx1ZSBvZiB0aGUgb3V0Ym91bmQg
c3RyZWFtIGZsb3cgY29udHJvbCB3aW5kb3cKKyAgICAgICAgIyBUaGUgY3VycmVudCB2YWx1ZSBv
ZiB0aGUgb3V0Ym91bmQgc3RyZWFtIGZsb3cgY29udHJvbCB3aW5kb3cKICAgICAgICAgc2VsZi5v
dXRib3VuZF9mbG93X2NvbnRyb2xfd2luZG93ID0gb3V0Ym91bmRfd2luZG93X3NpemUKIAogICAg
ICAgICAjIFRoZSBmbG93IGNvbnRyb2wgbWFuYWdlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIv
dXRpbGl0aWVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi91dGlsaXRpZXMucHkKaW5kZXggMGNmZjBmYTY3MTA2
ZWVjMTA0NjhmNTcyNjEzOGRhNzQzZWM3MzY5ZC4uMDZjOTE2ZWVhN2I5Nzk4ZjcxOGJlNTExYjMw
YjQ0NzAwZGQ4MzNhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi91dGlsaXRpZXMucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9oMi91dGlsaXRpZXMucHkKQEAgLTMzLDYgKzMzLDcgQEAgX0FMTE9XRURfUFNFVURP
X0hFQURFUl9GSUVMRFMgPSBmcm96ZW5zZXQoWwogICAgIGInOmF1dGhvcml0eScsIHUnOmF1dGhv
cml0eScsCiAgICAgYic6cGF0aCcsIHUnOnBhdGgnLAogICAgIGInOnN0YXR1cycsIHUnOnN0YXR1
cycsCisgICAgYic6cHJvdG9jb2wnLCB1Jzpwcm90b2NvbCcsCiBdKQogCiAKQEAgLTQ3LDEzICs0
OCwxOSBAQCBfUkVRVUVTVF9PTkxZX0hFQURFUlMgPSBmcm96ZW5zZXQoWwogICAgIGInOnNjaGVt
ZScsIHUnOnNjaGVtZScsCiAgICAgYic6cGF0aCcsIHUnOnBhdGgnLAogICAgIGInOmF1dGhvcml0
eScsIHUnOmF1dGhvcml0eScsCi0gICAgYic6bWV0aG9kJywgdSc6bWV0aG9kJworICAgIGInOm1l
dGhvZCcsIHUnOm1ldGhvZCcsCisgICAgYic6cHJvdG9jb2wnLCB1Jzpwcm90b2NvbCcsCiBdKQog
CiAKIF9SRVNQT05TRV9PTkxZX0hFQURFUlMgPSBmcm96ZW5zZXQoW2InOnN0YXR1cycsIHUnOnN0
YXR1cyddKQogCiAKKyMgQSBTZXQgb2YgcHNldWRvIGhlYWRlcnMgdGhhdCBhcmUgb25seSB2YWxp
ZCBpZiB0aGUgbWV0aG9kIGlzCisjIENPTk5FQ1QsIHNlZSBSRkMgODQ0MSDCpyA1CitfQ09OTkVD
VF9SRVFVRVNUX09OTFlfSEVBREVSUyA9IGZyb3plbnNldChbYic6cHJvdG9jb2wnLCB1Jzpwcm90
b2NvbCddKQorCisKIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMjogICMgUHl0aG9uIDIuWAog
ICAgIF9XSElURVNQQUNFID0gZnJvemVuc2V0KHdoaXRlc3BhY2UpCiBlbHNlOiAgIyBQeXRob24g
My4zKwpAQCAtMzIzLDYgKzMzMCw3IEBAIGRlZiBfcmVqZWN0X3BzZXVkb19oZWFkZXJfZmllbGRz
KGhlYWRlcnMsIGhkcl92YWxpZGF0aW9uX2ZsYWdzKToKICAgICAiIiIKICAgICBzZWVuX3BzZXVk
b19oZWFkZXJfZmllbGRzID0gc2V0KCkKICAgICBzZWVuX3JlZ3VsYXJfaGVhZGVyID0gRmFsc2UK
KyAgICBtZXRob2QgPSBOb25lCiAKICAgICBmb3IgaGVhZGVyIGluIGhlYWRlcnM6CiAgICAgICAg
IGlmIF9jdXN0b21fc3RhcnRzd2l0aChoZWFkZXJbMF0sIGInOicsIHUnOicpOgpAQCAtMzQ0LDYg
KzM1MiwxMiBAQCBkZWYgX3JlamVjdF9wc2V1ZG9faGVhZGVyX2ZpZWxkcyhoZWFkZXJzLCBoZHJf
dmFsaWRhdGlvbl9mbGFncyk6CiAgICAgICAgICAgICAgICAgICAgICJSZWNlaXZlZCBjdXN0b20g
cHNldWRvLWhlYWRlciBmaWVsZCAlcyIgJSBoZWFkZXJbMF0KICAgICAgICAgICAgICAgICApCiAK
KyAgICAgICAgICAgIGlmIGhlYWRlclswXSBpbiAoYic6bWV0aG9kJywgdSc6bWV0aG9kJyk6Cisg
ICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaGVhZGVyWzFdLCBieXRlcyk6CisgICAg
ICAgICAgICAgICAgICAgIG1ldGhvZCA9IGhlYWRlclsxXS5lbmNvZGUoJ3V0Zi04JykKKyAgICAg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSBoZWFkZXJbMV0K
KwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2Vlbl9yZWd1bGFyX2hlYWRlciA9IFRydWUK
IApAQCAtMzUxLDExICszNjUsMTIgQEAgZGVmIF9yZWplY3RfcHNldWRvX2hlYWRlcl9maWVsZHMo
aGVhZGVycywgaGRyX3ZhbGlkYXRpb25fZmxhZ3MpOgogCiAgICAgIyBDaGVjayB0aGUgcHNldWRv
LWhlYWRlcnMgd2UgZ290IHRvIGNvbmZpcm0gdGhleSdyZSBhY2NlcHRhYmxlLgogICAgIF9jaGVj
a19wc2V1ZG9faGVhZGVyX2ZpZWxkX2FjY2VwdGFiaWxpdHkoCi0gICAgICAgIHNlZW5fcHNldWRv
X2hlYWRlcl9maWVsZHMsIGhkcl92YWxpZGF0aW9uX2ZsYWdzCisgICAgICAgIHNlZW5fcHNldWRv
X2hlYWRlcl9maWVsZHMsIG1ldGhvZCwgaGRyX3ZhbGlkYXRpb25fZmxhZ3MKICAgICApCiAKIAog
ZGVmIF9jaGVja19wc2V1ZG9faGVhZGVyX2ZpZWxkX2FjY2VwdGFiaWxpdHkocHNldWRvX2hlYWRl
cnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Qs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZHJfdmFsaWRh
dGlvbl9mbGFncyk6CiAgICAgIiIiCiAgICAgR2l2ZW4gdGhlIHNldCBvZiBwc2V1ZG8taGVhZGVy
cyBwcmVzZW50IGluIGEgaGVhZGVyIGJsb2NrIGFuZCB0aGUKQEAgLTM5NCw2ICs0MDksMTMgQEAg
ZGVmIF9jaGVja19wc2V1ZG9faGVhZGVyX2ZpZWxkX2FjY2VwdGFiaWxpdHkocHNldWRvX2hlYWRl
cnMsCiAgICAgICAgICAgICAgICAgIkVuY291bnRlcmVkIHJlc3BvbnNlLW9ubHkgaGVhZGVycyAl
cyIgJQogICAgICAgICAgICAgICAgIGludmFsaWRfcmVxdWVzdF9oZWFkZXJzCiAgICAgICAgICAg
ICApCisgICAgICAgIGlmIG1ldGhvZCAhPSBiJ0NPTk5FQ1QnOgorICAgICAgICAgICAgaW52YWxp
ZF9oZWFkZXJzID0gcHNldWRvX2hlYWRlcnMgJiBfQ09OTkVDVF9SRVFVRVNUX09OTFlfSEVBREVS
UworICAgICAgICAgICAgaWYgaW52YWxpZF9oZWFkZXJzOgorICAgICAgICAgICAgICAgIHJhaXNl
IFByb3RvY29sRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJFbmNvdW50ZXJlZCBjb25uZWN0
LXJlcXVlc3Qtb25seSBoZWFkZXJzICVzIiAlCisgICAgICAgICAgICAgICAgICAgIGludmFsaWRf
aGVhZGVycworICAgICAgICAgICAgICAgICkKIAogCiBkZWYgX3ZhbGlkYXRlX2hvc3RfYXV0aG9y
aXR5X2hlYWRlcihoZWFkZXJzKToKQEAgLTYxNywzICs2MzksMjIgQEAgZGVmIHZhbGlkYXRlX291
dGJvdW5kX2hlYWRlcnMoaGVhZGVycywgaGRyX3ZhbGlkYXRpb25fZmxhZ3MpOgogICAgIGhlYWRl
cnMgPSBfY2hlY2tfcGF0aF9oZWFkZXIoaGVhZGVycywgaGRyX3ZhbGlkYXRpb25fZmxhZ3MpCiAK
ICAgICByZXR1cm4gaGVhZGVycworCisKK2NsYXNzIFNpemVMaW1pdERpY3QoY29sbGVjdGlvbnMu
T3JkZXJlZERpY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6
CisgICAgICAgIHNlbGYuX3NpemVfbGltaXQgPSBrd2FyZ3MucG9wKCJzaXplX2xpbWl0IiwgTm9u
ZSkKKyAgICAgICAgc3VwZXIoU2l6ZUxpbWl0RGljdCwgc2VsZikuX19pbml0X18oKmFyZ3MsICoq
a3dhcmdzKQorCisgICAgICAgIHNlbGYuX2NoZWNrX3NpemVfbGltaXQoKQorCisgICAgZGVmIF9f
c2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICBzdXBlcihTaXplTGltaXREaWN0
LCBzZWxmKS5fX3NldGl0ZW1fXyhrZXksIHZhbHVlKQorCisgICAgICAgIHNlbGYuX2NoZWNrX3Np
emVfbGltaXQoKQorCisgICAgZGVmIF9jaGVja19zaXplX2xpbWl0KHNlbGYpOgorICAgICAgICBp
ZiBzZWxmLl9zaXplX2xpbWl0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgd2hpbGUgbGVuKHNl
bGYpID4gc2VsZi5fc2l6ZV9saW1pdDoKKyAgICAgICAgICAgICAgICBzZWxmLnBvcGl0ZW0obGFz
dD1GYWxzZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvc2V0dXAuY2ZnIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9zZXR1cC5j
ZmcKaW5kZXggNWU0MDkwMDE3YTliZWM1ZGU2MGE3NDVkMTcwMDdhOWU5NWYzMWE0My4uMzY3MDUw
N2ZmMTJlMDJiNmQwNzZjZjk4NGViZGEwZDA1Mjc5NDVkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9z
ZXR1cC5jZmcKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9zZXR1cC5jZmcKQEAgLTEsMiArMSwxMCBAQAorW3Rvb2w6
cHl0ZXN0XQordGVzdHBhdGhzID0gdGVzdAorCiBbd2hlZWxdCiB1bml2ZXJzYWwgPSAxCisKK1tl
Z2dfaW5mb10KK3RhZ19idWlsZCA9IAordGFnX2RhdGUgPSAwCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvc2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3NldHVwLnB5CmluZGV4IGQzYjc3ZjlkNzkwMGIwYmMzMGFi
M2YzN2FmNDY4MmE5NjBiZjE5MzYuLjFjZTk1ZDU3OTZkYzlmYzY5MGI2MjYzODdjNDE2Zjg0NTdm
NjNlYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvc2V0dXAucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9zZXR1cC5w
eQpAQCAtNDAsNyArNDAsMTEgQEAgc2V0dXAoCiAgICAgbG9uZ19kZXNjcmlwdGlvbj11J1xuXG4n
LmpvaW4oW3JlYWRtZSwgaGlzdG9yeV0pLAogICAgIGF1dGhvcj0nQ29yeSBCZW5maWVsZCcsCiAg
ICAgYXV0aG9yX2VtYWlsPSdjb3J5QGx1a2FzYS5jby51aycsCi0gICAgdXJsPSdodHRwOi8vaHlw
ZXIucnRmZC5vcmcnLAorICAgIHVybD0naHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1oeXBlci9o
eXBlci1oMicsCisgICAgcHJvamVjdF91cmxzPXsKKyAgICAgICAgJ0RvY3VtZW50YXRpb24nOiAn
aHR0cHM6Ly9weXRob24taHlwZXIub3JnL3Byb2plY3RzL2gyJywKKyAgICAgICAgJ1NvdXJjZSc6
ICdodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWh5cGVyL2h5cGVyLWgyJywKKyAgICB9LAogICAg
IHBhY2thZ2VzPXBhY2thZ2VzLAogICAgIHBhY2thZ2VfZGF0YT17Jyc6IFsnTElDRU5TRScsICdS
RUFETUUucnN0JywgJ0NPTlRSSUJVVE9SUy5yc3QnLCAnSElTVE9SWS5yc3QnLCAnTk9USUNFUydd
fSwKICAgICBwYWNrYWdlX2Rpcj17J2gyJzogJ2gyJ30sCkBAIC01NCwxOCArNTgsMTkgQEAgc2V0
dXAoCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMicsCiAgICAg
ICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43JywKICAgICAgICAgJ1By
b2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzJywKLSAgICAgICAgJ1Byb2dyYW1taW5n
IExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjMnLAogICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3Vh
Z2UgOjogUHl0aG9uIDo6IDMuNCcsCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQ
eXRob24gOjogMy41JywKICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6
OiAzLjYnLAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNycs
CisgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy44JywKICAgICAg
ICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBD
UHl0aG9uJywKICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBs
ZW1lbnRhdGlvbiA6OiBQeVB5JywKICAgICBdLAogICAgIGluc3RhbGxfcmVxdWlyZXM9WwotICAg
ICAgICAnaHlwZXJmcmFtZT49NS4wLCA8NicsCi0gICAgICAgICdocGFjaz49Mi4zLCA8NCcsCisg
ICAgICAgICdoeXBlcmZyYW1lPj01LjIuMCwgPDYnLAorICAgICAgICAnaHBhY2s+PTMuMCw8NCcs
CiAgICAgXSwKICAgICBleHRyYXNfcmVxdWlyZT17Ci0gICAgICAgICc6cHl0aG9uX3ZlcnNpb24g
PT0gIjIuNyIgb3IgcHl0aG9uX3ZlcnNpb24gPT0gIjMuMyInOiBbJ2VudW0zND49MS4xLjYsIDwy
J10sCisgICAgICAgICc6cHl0aG9uX3ZlcnNpb24gPT0gIjIuNyInOiBbJ2VudW0zND49MS4xLjYs
IDwyJ10sCiAgICAgfQogKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfYmFzaWNfbG9n
aWMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9iYXNpY19sb2dpYy5weQppbmRleCAzY2ZjN2NjN2U4
Y2E3YzRkOWMzNDQ5NzMyNjVjYTVmNmI1OGE1NTA4Li43ZGY5OWE2YTU3MWM0NmNlMTdiOWFjNDAw
MmJlNWYwMWUyNzQzNTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9iYXNpY19sb2dp
Yy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9iYXNpY19sb2dpYy5weQpAQCAtMTE0LDYgKzEx
NCwyMyBAQCBjbGFzcyBUZXN0QmFzaWNDbGllbnQob2JqZWN0KToKICAgICAgICAgICAgIGV4cGVj
dGVkX2RhdGFfZnJhbWVfcGFkX2xlbmd0aD0wCiAgICAgICAgICkKIAorICAgIGRlZiB0ZXN0X3Nl
bmRpbmdfZGF0YV9pbl9tZW1vcnl2aWV3KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgU3Vw
cG9ydCBtZW1vcnl2aWV3IGZvciBzZW5kaW5nIGRhdGEuCisgICAgICAgICIiIgorICAgICAgICBj
ID0gaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oKQorICAgICAgICBjLmluaXRpYXRlX2Nvbm5l
Y3Rpb24oKQorICAgICAgICBjLnNlbmRfaGVhZGVycygxLCBzZWxmLmV4YW1wbGVfcmVxdWVzdF9o
ZWFkZXJzKQorCisgICAgICAgICMgQ2xlYXIgdGhlIGRhdGEsIHRoZW4gc2VuZCBzb21lIGRhdGEu
CisgICAgICAgIGMuY2xlYXJfb3V0Ym91bmRfZGF0YV9idWZmZXIoKQorICAgICAgICBldmVudHMg
PSBjLnNlbmRfZGF0YSgxLCBtZW1vcnl2aWV3KGInc29tZSBkYXRhJykpCisgICAgICAgIGFzc2Vy
dCBub3QgZXZlbnRzCisgICAgICAgIGRhdGFfdG9fc2VuZCA9IGMuZGF0YV90b19zZW5kKCkKKyAg
ICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgIGRhdGFfdG9fc2VuZCA9PSBiJ1x4MDBceDAwXHRc
eDAwXHgwMFx4MDBceDAwXHgwMFx4MDFzb21lIGRhdGEnCisgICAgICAgICkKKwogICAgIGRlZiB0
ZXN0X3NlbmRpbmdfZGF0YV93aXRoX3BhZGRpbmcoc2VsZik6CiAgICAgICAgICIiIgogICAgICAg
ICBTaW5nbGUgZGF0YSBmcmFtZXMgd2l0aCBwYWRkaW5nIGFyZSBlbmNvZGVkIGNvcnJlY3RseS4K
QEAgLTEwODEsNyArMTA5OCwxMiBAQCBjbGFzcyBUZXN0QmFzaWNTZXJ2ZXIob2JqZWN0KToKICAg
ICAgICAgYy5jbGVhcl9vdXRib3VuZF9kYXRhX2J1ZmZlcigpCiAgICAgICAgIGV2ZW50cyA9IGMu
cmVjZWl2ZV9kYXRhKHNlbnRfZnJhbWUuc2VyaWFsaXplKCkpCiAKLSAgICAgICAgYXNzZXJ0IG5v
dCBldmVudHMKKyAgICAgICAgYXNzZXJ0IGxlbihldmVudHMpID09IDEKKyAgICAgICAgZXZlbnQg
PSBldmVudHNbMF0KKworICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShldmVudCwgaDIuZXZlbnRz
LlBpbmdSZWNlaXZlZCkKKyAgICAgICAgYXNzZXJ0IGV2ZW50LnBpbmdfZGF0YSA9PSBwaW5nX2Rh
dGEKKwogICAgICAgICBhc3NlcnQgYy5kYXRhX3RvX3NlbmQoKSA9PSBleHBlY3RlZF9kYXRhCiAK
ICAgICBkZWYgdGVzdF9yZWNlaXZpbmdfc2V0dGluZ3NfZnJhbWVfZXZlbnQoc2VsZiwgZnJhbWVf
ZmFjdG9yeSk6CkBAIC0xMzI0LDcgKzEzNDYsNyBAQCBjbGFzcyBUZXN0QmFzaWNTZXJ2ZXIob2Jq
ZWN0KToKIAogICAgIGRlZiB0ZXN0X3JlY2VpdmluZ19waW5nX2Fja25vd2xlZGdlbWVudChzZWxm
LCBmcmFtZV9mYWN0b3J5KToKICAgICAgICAgIiIiCi0gICAgICAgIFJlY2VpdmluZyBhIFBJTkcg
YWNrbm9sd2VkZ2VtZW50IGZpcmVzIGEgUGluZ0Fja25vbHdlZGdlZCBldmVudC4KKyAgICAgICAg
UmVjZWl2aW5nIGEgUElORyBhY2tub3dsZWRnZW1lbnQgZmlyZXMgYSBQaW5nQWNrUmVjZWl2ZWQg
ZXZlbnQuCiAgICAgICAgICIiIgogICAgICAgICBjID0gaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rp
b24oY29uZmlnPXNlbGYuc2VydmVyX2NvbmZpZykKICAgICAgICAgYy5yZWNlaXZlX2RhdGEoZnJh
bWVfZmFjdG9yeS5wcmVhbWJsZSgpKQpAQCAtMTMzOSw3ICsxMzYxLDggQEAgY2xhc3MgVGVzdEJh
c2ljU2VydmVyKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBsZW4oZXZlbnRzKSA9PSAxCiAgICAg
ICAgIGV2ZW50ID0gZXZlbnRzWzBdCiAKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZXZlbnQs
IGgyLmV2ZW50cy5QaW5nQWNrbm93bGVkZ2VkKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShl
dmVudCwgaDIuZXZlbnRzLlBpbmdBY2tSZWNlaXZlZCkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFu
Y2UoZXZlbnQsIGgyLmV2ZW50cy5QaW5nQWNrbm93bGVkZ2VkKSAgIyBkZXByZWNhdGVkCiAgICAg
ICAgIGFzc2VydCBldmVudC5waW5nX2RhdGEgPT0gcGluZ19kYXRhCiAKICAgICBkZWYgdGVzdF9z
dHJlYW1fZW5kZWRfcmVtb3RlbHkoc2VsZiwgZnJhbWVfZmFjdG9yeSk6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL3Rlc3QvdGVzdF9jbG9zZWRfc3RyZWFtcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2Ns
b3NlZF9zdHJlYW1zLnB5CmluZGV4IDIzNDRmNzJkNmExYTRlYzg3NjkwZjRkZTQ3ODMyNjdhZjBj
NDgxMzMuLjYzMWE2Njc4N2FmMGQzNTM3NTBjNzgxMjg0NWRiY2E5NTBlNzdmZTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaDIvdGVzdC90ZXN0X2Nsb3NlZF9zdHJlYW1zLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVz
dC90ZXN0X2Nsb3NlZF9zdHJlYW1zLnB5CkBAIC0xMDcsNiArMTA3LDc3IEBAIGNsYXNzIFRlc3RD
bG9zZWRTdHJlYW1zKG9iamVjdCk6CiAgICAgICAgICMgVGhlIHN0cmVhbXMgZGljdGlvbmFyeSBz
aG91bGQgYmUgZW1wdHkuCiAgICAgICAgIGFzc2VydCBub3QgYy5zdHJlYW1zCiAKKyAgICBkZWYg
dGVzdF9yZWNlaXZlX3JzdF9zdHJlYW1fb25fY2xvc2VkX3N0cmVhbShzZWxmLCBmcmFtZV9mYWN0
b3J5KToKKyAgICAgICAgIiIiCisgICAgICAgIFJTVF9TVFJFQU0gZnJhbWUgc2hvdWxkIGJlIGln
bm9yZWQgaWYgc3RyZWFtIGlzIGluIGEgY2xvc2VkIHN0YXRlLgorICAgICAgICBTZWUgUkZDIDc1
NDAgU2VjdGlvbiA1LjEgKGNsb3NlZCBzdGF0ZSkKKyAgICAgICAgIiIiCisgICAgICAgIGMgPSBo
Mi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbigpCisgICAgICAgIGMuaW5pdGlhdGVfY29ubmVjdGlv
bigpCisKKyAgICAgICAgIyBDbGllbnQgc2VuZHMgcmVxdWVzdAorICAgICAgICBjLnNlbmRfaGVh
ZGVycygxLCBzZWxmLmV4YW1wbGVfcmVxdWVzdF9oZWFkZXJzKQorCisgICAgICAgICMgU29tZSB0
aW1lIHBhc3NlcyBhbmQgY2xpZW50IHNlbmRzIERBVEEgZnJhbWUgYW5kIGNsb3NlcyBzdHJlYW0s
CisgICAgICAgICMgc28gaXQgaXMgaW4gYSBoYWxmLWNsb3NlZCBzdGF0ZQorICAgICAgICBjLnNl
bmRfZGF0YSgxLCBiJ3NvbWUgZGF0YScsIGVuZF9zdHJlYW09VHJ1ZSkKKworICAgICAgICAjIFNl
cnZlciByZWNlaXZlZCBIRUFERVJTIGZyYW1lIGJ1dCBEQVRBIGZyYW1lIGlzIHN0aWxsIG9uIHRo
ZSB3YXkuCisgICAgICAgICMgU3RyZWFtIGlzIGluIG9wZW4gc3RhdGUgb24gdGhlIHNlcnZlci1z
aWRlLiBJbiB0aGlzIHN0YXRlIHNlcnZlciBpcworICAgICAgICAjIGFsbG93ZWQgdG8gZW5kIHN0
cmVhbSBhbmQgcmVzZXQgaXQgLSB0aGlzIHRyaWNrIGhlbHBzIGltbWVkaWF0ZWx5CisgICAgICAg
ICMgY2xvc2Ugc3RyZWFtIG9uIHRoZSBzZXJ2ZXItc2lkZS4KKyAgICAgICAgaGVhZGVyc19mcmFt
ZSA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfaGVhZGVyc19mcmFtZSgKKyAgICAgICAgICAgIFsoJzpz
dGF0dXMnLCAnMjAwJyldLAorICAgICAgICAgICAgZmxhZ3M9WydFTkRfU1RSRUFNJ10sCisgICAg
ICAgICAgICBzdHJlYW1faWQ9MSwKKyAgICAgICAgKQorICAgICAgICBldmVudHMgPSBjLnJlY2Vp
dmVfZGF0YShoZWFkZXJzX2ZyYW1lLnNlcmlhbGl6ZSgpKQorICAgICAgICBhc3NlcnQgbGVuKGV2
ZW50cykgPT0gMgorICAgICAgICByZXNwb25zZV9yZWNlaXZlZCwgc3RyZWFtX2VuZGVkID0gZXZl
bnRzCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3BvbnNlX3JlY2VpdmVkLCBoMi5ldmVu
dHMuUmVzcG9uc2VSZWNlaXZlZCkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc3RyZWFtX2Vu
ZGVkLCBoMi5ldmVudHMuU3RyZWFtRW5kZWQpCisKKyAgICAgICAgcnN0X3N0cmVhbV9mcmFtZSA9
IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0cmVhbV9mcmFtZShzdHJlYW1faWQ9MSkKKyAgICAg
ICAgZXZlbnRzID0gYy5yZWNlaXZlX2RhdGEocnN0X3N0cmVhbV9mcmFtZS5zZXJpYWxpemUoKSkK
KyAgICAgICAgYXNzZXJ0IG5vdCBldmVudHMKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfd2luZG93
X3VwZGF0ZV9vbl9jbG9zZWRfc3RyZWFtKHNlbGYsIGZyYW1lX2ZhY3RvcnkpOgorICAgICAgICAi
IiIKKyAgICAgICAgV0lORE9XX1VQREFURSBmcmFtZSBzaG91bGQgYmUgaWdub3JlZCBpZiBzdHJl
YW0gaXMgaW4gYSBjbG9zZWQgc3RhdGUuCisgICAgICAgIFNlZSBSRkMgNzU0MCBTZWN0aW9uIDUu
MSAoY2xvc2VkIHN0YXRlKQorICAgICAgICAiIiIKKyAgICAgICAgYyA9IGgyLmNvbm5lY3Rpb24u
SDJDb25uZWN0aW9uKCkKKyAgICAgICAgYy5pbml0aWF0ZV9jb25uZWN0aW9uKCkKKworICAgICAg
ICAjIENsaWVudCBzZW5kcyByZXF1ZXN0CisgICAgICAgIGMuc2VuZF9oZWFkZXJzKDEsIHNlbGYu
ZXhhbXBsZV9yZXF1ZXN0X2hlYWRlcnMpCisKKyAgICAgICAgIyBTb21lIHRpbWUgcGFzc2VzIGFu
ZCBjbGllbnQgc2VuZHMgREFUQSBmcmFtZSBhbmQgY2xvc2VzIHN0cmVhbSwKKyAgICAgICAgIyBz
byBpdCBpcyBpbiBhIGhhbGYtY2xvc2VkIHN0YXRlCisgICAgICAgIGMuc2VuZF9kYXRhKDEsIGIn
c29tZSBkYXRhJywgZW5kX3N0cmVhbT1UcnVlKQorCisgICAgICAgICMgU2VydmVyIHJlY2VpdmVk
IEhFQURFUlMgZnJhbWUgYnV0IERBVEEgZnJhbWUgaXMgc3RpbGwgb24gdGhlIHdheS4KKyAgICAg
ICAgIyBTdHJlYW0gaXMgaW4gb3BlbiBzdGF0ZSBvbiB0aGUgc2VydmVyLXNpZGUuIEluIHRoaXMg
c3RhdGUgc2VydmVyIGlzCisgICAgICAgICMgYWxsb3dlZCB0byBlbmQgc3RyZWFtIGFuZCBhZnRl
ciB0aGF0IGFja25vd2xlZGdlIHJlY2VpdmVkIGRhdGEgYnkKKyAgICAgICAgIyBzZW5kaW5nIFdJ
TkRPV19VUERBVEUgZnJhbWVzLgorICAgICAgICBoZWFkZXJzX2ZyYW1lID0gZnJhbWVfZmFjdG9y
eS5idWlsZF9oZWFkZXJzX2ZyYW1lKAorICAgICAgICAgICAgWygnOnN0YXR1cycsICcyMDAnKV0s
CisgICAgICAgICAgICBmbGFncz1bJ0VORF9TVFJFQU0nXSwKKyAgICAgICAgICAgIHN0cmVhbV9p
ZD0xLAorICAgICAgICApCisgICAgICAgIGV2ZW50cyA9IGMucmVjZWl2ZV9kYXRhKGhlYWRlcnNf
ZnJhbWUuc2VyaWFsaXplKCkpCisgICAgICAgIGFzc2VydCBsZW4oZXZlbnRzKSA9PSAyCisgICAg
ICAgIHJlc3BvbnNlX3JlY2VpdmVkLCBzdHJlYW1fZW5kZWQgPSBldmVudHMKKyAgICAgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UocmVzcG9uc2VfcmVjZWl2ZWQsIGgyLmV2ZW50cy5SZXNwb25zZVJlY2Vp
dmVkKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzdHJlYW1fZW5kZWQsIGgyLmV2ZW50cy5T
dHJlYW1FbmRlZCkKKworICAgICAgICB3aW5kb3dfdXBkYXRlX2ZyYW1lID0gZnJhbWVfZmFjdG9y
eS5idWlsZF93aW5kb3dfdXBkYXRlX2ZyYW1lKAorICAgICAgICAgICAgc3RyZWFtX2lkPTEsCisg
ICAgICAgICAgICBpbmNyZW1lbnQ9MSwKKyAgICAgICAgKQorICAgICAgICBldmVudHMgPSBjLnJl
Y2VpdmVfZGF0YSh3aW5kb3dfdXBkYXRlX2ZyYW1lLnNlcmlhbGl6ZSgpKQorICAgICAgICBhc3Nl
cnQgbm90IGV2ZW50cworCiAKIGNsYXNzIFRlc3RTdHJlYW1zQ2xvc2VkQnlFbmRTdHJlYW0ob2Jq
ZWN0KToKICAgICBleGFtcGxlX3JlcXVlc3RfaGVhZGVycyA9IFsKQEAgLTEyNCw3ICsxOTUsNiBA
QCBjbGFzcyBUZXN0U3RyZWFtc0Nsb3NlZEJ5RW5kU3RyZWFtKG9iamVjdCk6CiAgICAgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKAogICAgICAgICAiZnJhbWUiLAogICAgICAgICBbCi0gICAgICAg
ICAgICBsYW1iZGEgc2VsZiwgZmY6IGZmLmJ1aWxkX2RhdGFfZnJhbWUoYidoZWxsbycpLAogICAg
ICAgICAgICAgbGFtYmRhIHNlbGYsIGZmOiBmZi5idWlsZF9oZWFkZXJzX2ZyYW1lKAogICAgICAg
ICAgICAgICAgIHNlbGYuZXhhbXBsZV9yZXF1ZXN0X2hlYWRlcnMsIGZsYWdzPVsnRU5EX1NUUkVB
TSddKSwKICAgICAgICAgICAgIGxhbWJkYSBzZWxmLCBmZjogZmYuYnVpbGRfaGVhZGVyc19mcmFt
ZSgKQEAgLTE3NCw3ICsyNDQsNiBAQCBjbGFzcyBUZXN0U3RyZWFtc0Nsb3NlZEJ5RW5kU3RyZWFt
KG9iamVjdCk6CiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAogICAgICAgICAiZnJhbWUi
LAogICAgICAgICBbCi0gICAgICAgICAgICBsYW1iZGEgc2VsZiwgZmY6IGZmLmJ1aWxkX2RhdGFf
ZnJhbWUoYidoZWxsbycpLAogICAgICAgICAgICAgbGFtYmRhIHNlbGYsIGZmOiBmZi5idWlsZF9o
ZWFkZXJzX2ZyYW1lKAogICAgICAgICAgICAgICAgIHNlbGYuZXhhbXBsZV9yZXNwb25zZV9oZWFk
ZXJzLCBmbGFncz1bJ0VORF9TVFJFQU0nXSksCiAgICAgICAgICAgICBsYW1iZGEgc2VsZiwgZmY6
IGZmLmJ1aWxkX2hlYWRlcnNfZnJhbWUoCkBAIC0yNzMsOCArMzQyLDYgQEAgY2xhc3MgVGVzdFN0
cmVhbXNDbG9zZWRCeVJzdFN0cmVhbShvYmplY3QpOgogICAgICAgICAgICAgICAgIHNlbGYuZXhh
bXBsZV9yZXF1ZXN0X2hlYWRlcnMpLAogICAgICAgICAgICAgbGFtYmRhIHNlbGYsIGZmOiBmZi5i
dWlsZF9oZWFkZXJzX2ZyYW1lKAogICAgICAgICAgICAgICAgIHNlbGYuZXhhbXBsZV9yZXF1ZXN0
X2hlYWRlcnMsIGZsYWdzPVsnRU5EX1NUUkVBTSddKSwKLSAgICAgICAgICAgIGxhbWJkYSBzZWxm
LCBmZjogZmYuYnVpbGRfZGF0YV9mcmFtZShiJ2hlbGxvJyksCi0gICAgICAgICAgICBsYW1iZGEg
c2VsZiwgZmY6IGZmLmJ1aWxkX3dpbmRvd191cGRhdGVfZnJhbWUoMSwgMSksCiAgICAgICAgIF0K
ICAgICApCiAgICAgZGVmIHRlc3RfcmVzZXRzX2Z1cnRoZXJfZnJhbWVzX2FmdGVyX3JlY3ZfcmVz
ZXQoc2VsZiwKQEAgLTI4Miw3ICszNDksOCBAQCBjbGFzcyBUZXN0U3RyZWFtc0Nsb3NlZEJ5UnN0
U3RyZWFtKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnJhbWUpOgogICAgICAgICAiIiIKICAgICAgICAgQSBzdHJlYW0gdGhhdCBp
cyBjbG9zZWQgYnkgcmVjZWl2ZSBSU1RfU1RSRUFNIGNhbiByZWNlaXZlIGZ1cnRoZXIKLSAgICAg
ICAgZnJhbWVzOiBpdCBzaW1wbHkgc2VuZHMgUlNUX1NUUkVBTSBmb3IgaXQuCisgICAgICAgIGZy
YW1lczogaXQgc2ltcGx5IHNlbmRzIFJTVF9TVFJFQU0gZm9yIGl0LCBhbmQgYWRkaXRpb25hbGx5
CisgICAgICAgIFdJTkRPV19VUERBVEUgZm9yIERBVEEgZnJhbWVzLgogICAgICAgICAiIiIKICAg
ICAgICAgYyA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKGNvbmZpZz1zZWxmLnNlcnZlcl9j
b25maWcpCiAgICAgICAgIGMucmVjZWl2ZV9kYXRhKGZyYW1lX2ZhY3RvcnkucHJlYW1ibGUoKSkK
QEAgLTMyNiw2ICszOTQsNTkgQEAgY2xhc3MgVGVzdFN0cmVhbXNDbG9zZWRCeVJzdFN0cmVhbShv
YmplY3QpOgogICAgICAgICBhc3NlcnQgbm90IGV2ZW50cwogICAgICAgICBhc3NlcnQgYy5kYXRh
X3RvX3NlbmQoKSA9PSByc3RfZnJhbWUuc2VyaWFsaXplKCkgKiAzCiAKKyAgICBkZWYgdGVzdF9y
ZXNldHNfZnVydGhlcl9kYXRhX2ZyYW1lc19hZnRlcl9yZWN2X3Jlc2V0KHNlbGYsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV9m
YWN0b3J5KToKKyAgICAgICAgIiIiCisgICAgICAgIEEgc3RyZWFtIHRoYXQgaXMgY2xvc2VkIGJ5
IHJlY2VpdmUgUlNUX1NUUkVBTSBjYW4gcmVjZWl2ZSBmdXJ0aGVyCisgICAgICAgIERBVEEgZnJh
bWVzOiBpdCBzaW1wbHkgc2VuZHMgV0lORE9XX1VQREFURSBmb3IgdGhlIGNvbm5lY3Rpb24gZmxv
dworICAgICAgICB3aW5kb3csIGFuZCBSU1RfU1RSRUFNIGZvciB0aGUgc3RyZWFtLgorICAgICAg
ICAiIiIKKyAgICAgICAgYyA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKGNvbmZpZz1zZWxm
LnNlcnZlcl9jb25maWcpCisgICAgICAgIGMucmVjZWl2ZV9kYXRhKGZyYW1lX2ZhY3RvcnkucHJl
YW1ibGUoKSkKKyAgICAgICAgYy5pbml0aWF0ZV9jb25uZWN0aW9uKCkKKworICAgICAgICBoZWFk
ZXJfZnJhbWUgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX2hlYWRlcnNfZnJhbWUoCisgICAgICAgICAg
ICBzZWxmLmV4YW1wbGVfcmVxdWVzdF9oZWFkZXJzLCBmbGFncz1bJ0VORF9TVFJFQU0nXQorICAg
ICAgICApCisgICAgICAgIGMucmVjZWl2ZV9kYXRhKGhlYWRlcl9mcmFtZS5zZXJpYWxpemUoKSkK
KworICAgICAgICBjLnNlbmRfaGVhZGVycygKKyAgICAgICAgICAgIHN0cmVhbV9pZD0xLAorICAg
ICAgICAgICAgaGVhZGVycz1zZWxmLmV4YW1wbGVfcmVzcG9uc2VfaGVhZGVycywKKyAgICAgICAg
ICAgIGVuZF9zdHJlYW09RmFsc2UKKyAgICAgICAgKQorCisgICAgICAgIHJzdF9mcmFtZSA9IGZy
YW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0cmVhbV9mcmFtZSgKKyAgICAgICAgICAgIDEsIGgyLmVy
cm9ycy5FcnJvckNvZGVzLlNUUkVBTV9DTE9TRUQKKyAgICAgICAgKQorICAgICAgICBjLnJlY2Vp
dmVfZGF0YShyc3RfZnJhbWUuc2VyaWFsaXplKCkpCisgICAgICAgIGMuY2xlYXJfb3V0Ym91bmRf
ZGF0YV9idWZmZXIoKQorCisgICAgICAgIGYgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX2RhdGFfZnJh
bWUoCisgICAgICAgICAgICBkYXRhPWInc29tZSBkYXRhJworICAgICAgICApCisKKyAgICAgICAg
ZXZlbnRzID0gYy5yZWNlaXZlX2RhdGEoZi5zZXJpYWxpemUoKSkKKyAgICAgICAgYXNzZXJ0IG5v
dCBldmVudHMKKworICAgICAgICBleHBlY3RlZCA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0
cmVhbV9mcmFtZSgKKyAgICAgICAgICAgIHN0cmVhbV9pZD0xLAorICAgICAgICAgICAgZXJyb3Jf
Y29kZT1oMi5lcnJvcnMuRXJyb3JDb2Rlcy5TVFJFQU1fQ0xPU0VELAorICAgICAgICApLnNlcmlh
bGl6ZSgpCisgICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkCisKKyAg
ICAgICAgZXZlbnRzID0gYy5yZWNlaXZlX2RhdGEoZi5zZXJpYWxpemUoKSAqIDMpCisgICAgICAg
IGFzc2VydCBub3QgZXZlbnRzCisgICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4
cGVjdGVkICogMworCisgICAgICAgICMgSXRlcmF0ZSBvdmVyIHRoZSBzdHJlYW1zIHRvIG1ha2Ug
c3VyZSBpdCdzIGdvbmUsIHRoZW4gY29uZmlybSB0aGUKKyAgICAgICAgIyBiZWhhdmlvdXIgaXMg
dW5jaGFuZ2VkLgorICAgICAgICBjLm9wZW5fb3V0Ym91bmRfc3RyZWFtcworCisgICAgICAgIGV2
ZW50cyA9IGMucmVjZWl2ZV9kYXRhKGYuc2VyaWFsaXplKCkgKiAzKQorICAgICAgICBhc3NlcnQg
bm90IGV2ZW50cworICAgICAgICBhc3NlcnQgYy5kYXRhX3RvX3NlbmQoKSA9PSBleHBlY3RlZCAq
IDMKKwogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKICAgICAgICAgImZyYW1lIiwKICAg
ICAgICAgWwpAQCAtMzMzLDggKzQ1NCw2IEBAIGNsYXNzIFRlc3RTdHJlYW1zQ2xvc2VkQnlSc3RT
dHJlYW0ob2JqZWN0KToKICAgICAgICAgICAgICAgICBzZWxmLmV4YW1wbGVfcmVxdWVzdF9oZWFk
ZXJzKSwKICAgICAgICAgICAgIGxhbWJkYSBzZWxmLCBmZjogZmYuYnVpbGRfaGVhZGVyc19mcmFt
ZSgKICAgICAgICAgICAgICAgICBzZWxmLmV4YW1wbGVfcmVxdWVzdF9oZWFkZXJzLCBmbGFncz1b
J0VORF9TVFJFQU0nXSksCi0gICAgICAgICAgICBsYW1iZGEgc2VsZiwgZmY6IGZmLmJ1aWxkX2Rh
dGFfZnJhbWUoYidoZWxsbycpLAotICAgICAgICAgICAgbGFtYmRhIHNlbGYsIGZmOiBmZi5idWls
ZF93aW5kb3dfdXBkYXRlX2ZyYW1lKDEsIDEpLAogICAgICAgICBdCiAgICAgKQogICAgIGRlZiB0
ZXN0X3Jlc2V0c19mdXJ0aGVyX2ZyYW1lc19hZnRlcl9zZW5kX3Jlc2V0KHNlbGYsCkBAIC0zODYs
MyArNTA1LDUxIEBAIGNsYXNzIFRlc3RTdHJlYW1zQ2xvc2VkQnlSc3RTdHJlYW0ob2JqZWN0KToK
ICAgICAgICAgZXZlbnRzID0gYy5yZWNlaXZlX2RhdGEoZi5zZXJpYWxpemUoKSAqIDMpCiAgICAg
ICAgIGFzc2VydCBub3QgZXZlbnRzCiAgICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09
IHJzdF9mcmFtZS5zZXJpYWxpemUoKSAqIDMKKworICAgIGRlZiB0ZXN0X3Jlc2V0c19mdXJ0aGVy
X2RhdGFfZnJhbWVzX2FmdGVyX3NlbmRfcmVzZXQoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX2ZhY3RvcnkpOgorICAg
ICAgICAiIiIKKyAgICAgICAgQSBzdHJlYW0gdGhhdCBpcyBjbG9zZWQgYnkgc2VudCBSU1RfU1RS
RUFNIGNhbiByZWNlaXZlIGZ1cnRoZXIKKyAgICAgICAgZGF0YSBmcmFtZXM6IGl0IHNpbXBseSBz
ZW5kcyBXSU5ET1dfVVBEQVRFIGFuZCBSU1RfU1RSRUFNIGZvciBpdC4KKyAgICAgICAgIiIiCisg
ICAgICAgIGMgPSBoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbihjb25maWc9c2VsZi5zZXJ2ZXJf
Y29uZmlnKQorICAgICAgICBjLnJlY2VpdmVfZGF0YShmcmFtZV9mYWN0b3J5LnByZWFtYmxlKCkp
CisgICAgICAgIGMuaW5pdGlhdGVfY29ubmVjdGlvbigpCisKKyAgICAgICAgaGVhZGVyX2ZyYW1l
ID0gZnJhbWVfZmFjdG9yeS5idWlsZF9oZWFkZXJzX2ZyYW1lKAorICAgICAgICAgICAgc2VsZi5l
eGFtcGxlX3JlcXVlc3RfaGVhZGVycywgZmxhZ3M9WydFTkRfU1RSRUFNJ10KKyAgICAgICAgKQor
ICAgICAgICBjLnJlY2VpdmVfZGF0YShoZWFkZXJfZnJhbWUuc2VyaWFsaXplKCkpCisKKyAgICAg
ICAgYy5zZW5kX2hlYWRlcnMoCisgICAgICAgICAgICBzdHJlYW1faWQ9MSwKKyAgICAgICAgICAg
IGhlYWRlcnM9c2VsZi5leGFtcGxlX3Jlc3BvbnNlX2hlYWRlcnMsCisgICAgICAgICAgICBlbmRf
c3RyZWFtPUZhbHNlCisgICAgICAgICkKKworICAgICAgICBjLnJlc2V0X3N0cmVhbSgxLCBoMi5l
cnJvcnMuRXJyb3JDb2Rlcy5JTlRFUk5BTF9FUlJPUikKKworICAgICAgICBjLmNsZWFyX291dGJv
dW5kX2RhdGFfYnVmZmVyKCkKKworICAgICAgICBmID0gZnJhbWVfZmFjdG9yeS5idWlsZF9kYXRh
X2ZyYW1lKAorICAgICAgICAgICAgZGF0YT1iJ3NvbWUgZGF0YScKKyAgICAgICAgKQorICAgICAg
ICBldmVudHMgPSBjLnJlY2VpdmVfZGF0YShmLnNlcmlhbGl6ZSgpKQorICAgICAgICBhc3NlcnQg
bm90IGV2ZW50cworICAgICAgICBleHBlY3RlZCA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0
cmVhbV9mcmFtZSgKKyAgICAgICAgICAgIHN0cmVhbV9pZD0xLAorICAgICAgICAgICAgZXJyb3Jf
Y29kZT1oMi5lcnJvcnMuRXJyb3JDb2Rlcy5TVFJFQU1fQ0xPU0VELAorICAgICAgICApLnNlcmlh
bGl6ZSgpCisgICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkCisKKyAg
ICAgICAgZXZlbnRzID0gYy5yZWNlaXZlX2RhdGEoZi5zZXJpYWxpemUoKSAqIDMpCisgICAgICAg
IGFzc2VydCBub3QgZXZlbnRzCisgICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4
cGVjdGVkICogMworCisgICAgICAgICMgSXRlcmF0ZSBvdmVyIHRoZSBzdHJlYW1zIHRvIG1ha2Ug
c3VyZSBpdCdzIGdvbmUsIHRoZW4gY29uZmlybSB0aGUKKyAgICAgICAgIyBiZWhhdmlvdXIgaXMg
dW5jaGFuZ2VkLgorICAgICAgICBjLm9wZW5fb3V0Ym91bmRfc3RyZWFtcworCisgICAgICAgIGV2
ZW50cyA9IGMucmVjZWl2ZV9kYXRhKGYuc2VyaWFsaXplKCkgKiAzKQorICAgICAgICBhc3NlcnQg
bm90IGV2ZW50cworICAgICAgICBhc3NlcnQgYy5kYXRhX3RvX3NlbmQoKSA9PSBleHBlY3RlZCAq
IDMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2V2ZW50cy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVz
dC90ZXN0X2V2ZW50cy5weQppbmRleCAwNmY3ZGEzOWM3YmVlM2VjNjYzNTc0MzVlMzhiYzkwYmE1
Yzc4MDcxLi5hNmU4ZDgzNzkwNjY4MGQ2NWNhNmRmNTliY2EyYzFlNzU0NjAzYjM2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9ldmVudHMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rf
ZXZlbnRzLnB5CkBAIC0yMTMsMTQgKzIxMywyMyBAQCBjbGFzcyBUZXN0RXZlbnRSZXBycyhvYmpl
Y3QpOgogICAgICAgICAgICAgIm5ld192YWx1ZT0zMjc2OCl9PiIKICAgICAgICAgKQogCi0gICAg
ZGVmIHRlc3RfcGluZ2Fja25vd2xlZGdlZF9yZXByKHNlbGYpOgorICAgIGRlZiB0ZXN0X3Bpbmdy
ZWNlaXZlZF9yZXByKHNlbGYpOgogICAgICAgICAiIiIKLSAgICAgICAgUGluZ0Fja25vd2xlZGdl
ZCBoYXMgYSB1c2VmdWwgZGVidWcgcmVwcmVzZW50YXRpb24uCisgICAgICAgIFBpbmdSZWNlaXZl
ZCBoYXMgYSB1c2VmdWwgZGVidWcgcmVwcmVzZW50YXRpb24uCiAgICAgICAgICIiIgotICAgICAg
ICBlID0gaDIuZXZlbnRzLlBpbmdBY2tub3dsZWRnZWQoKQorICAgICAgICBlID0gaDIuZXZlbnRz
LlBpbmdSZWNlaXZlZCgpCiAgICAgICAgIGUucGluZ19kYXRhID0gYidhYmNkZWZnaCcKIAotICAg
ICAgICBhc3NlcnQgcmVwcihlKSA9PSAiPFBpbmdBY2tub3dsZWRnZWQgcGluZ19kYXRhOjYxNjI2
MzY0NjU2NjY3Njg+IgorICAgICAgICBhc3NlcnQgcmVwcihlKSA9PSAiPFBpbmdSZWNlaXZlZCBw
aW5nX2RhdGE6NjE2MjYzNjQ2NTY2Njc2OD4iCisKKyAgICBkZWYgdGVzdF9waW5nYWNrcmVjZWl2
ZWRfcmVwcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFBpbmdBY2tSZWNlaXZlZCBoYXMg
YSB1c2VmdWwgZGVidWcgcmVwcmVzZW50YXRpb24uCisgICAgICAgICIiIgorICAgICAgICBlID0g
aDIuZXZlbnRzLlBpbmdBY2tSZWNlaXZlZCgpCisgICAgICAgIGUucGluZ19kYXRhID0gYidhYmNk
ZWZnaCcKKworICAgICAgICBhc3NlcnQgcmVwcihlKSA9PSAiPFBpbmdBY2tSZWNlaXZlZCBwaW5n
X2RhdGE6NjE2MjYzNjQ2NTY2Njc2OD4iCiAKICAgICBkZWYgdGVzdF9zdHJlYW1lbmRlZF9yZXBy
KHNlbGYpOgogICAgICAgICAiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2Zsb3df
Y29udHJvbF93aW5kb3cucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9mbG93X2NvbnRyb2xfd2luZG93
LnB5CmluZGV4IDM4MGNkNjFlM2IxOWFiYzQ3ZWY3NzM1MjFlODlmNDY0NTY2YjhhNGYuLjI0YjM0
NWFhYzNhM2ZlYTdiN2E1MTUxYWYyZDQwNWIwZDZjZGIxNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
dGVzdC90ZXN0X2Zsb3dfY29udHJvbF93aW5kb3cucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rf
Zmxvd19jb250cm9sX3dpbmRvdy5weQpAQCAtNjM4LDYgKzYzOCw0MiBAQCBjbGFzcyBUZXN0Rmxv
d0NvbnRyb2wob2JqZWN0KToKICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKGgyLmV4Y2VwdGlv
bnMuRmxvd0NvbnRyb2xFcnJvcik6CiAgICAgICAgICAgICBjLmluY3JlbWVudF9mbG93X2NvbnRy
b2xfd2luZG93KGluY3JlbWVudD1pbmNyZW1lbnQsIHN0cmVhbV9pZD0xKQogCisgICAgZGVmIHRl
c3Rfc2VuZF91cGRhdGVfb25fY2xvc2VkX3N0cmVhbXMoc2VsZiwgZnJhbWVfZmFjdG9yeSk6Cisg
ICAgICAgIGMgPSBoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbigpCisgICAgICAgIGMuaW5pdGlh
dGVfY29ubmVjdGlvbigpCisgICAgICAgIGMuc2VuZF9oZWFkZXJzKDEsIHNlbGYuZXhhbXBsZV9y
ZXF1ZXN0X2hlYWRlcnMpCisgICAgICAgIGMucmVzZXRfc3RyZWFtKDEpCisKKyAgICAgICAgYy5j
bGVhcl9vdXRib3VuZF9kYXRhX2J1ZmZlcigpCisgICAgICAgIGMub3Blbl9vdXRib3VuZF9zdHJl
YW1zCisgICAgICAgIGMub3Blbl9pbmJvdW5kX3N0cmVhbXMKKworICAgICAgICBmID0gZnJhbWVf
ZmFjdG9yeS5idWlsZF9kYXRhX2ZyYW1lKGInc29tZSBkYXRhJyoxNTAwKQorICAgICAgICBldmVu
dHMgPSBjLnJlY2VpdmVfZGF0YShmLnNlcmlhbGl6ZSgpKjMpCisgICAgICAgIGFzc2VydCBub3Qg
ZXZlbnRzCisKKyAgICAgICAgZXhwZWN0ZWQgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX3JzdF9zdHJl
YW1fZnJhbWUoCisgICAgICAgICAgICBzdHJlYW1faWQ9MSwKKyAgICAgICAgICAgIGVycm9yX2Nv
ZGU9aDIuZXJyb3JzLkVycm9yQ29kZXMuU1RSRUFNX0NMT1NFRCwKKyAgICAgICAgKS5zZXJpYWxp
emUoKSAqIDIgKyBmcmFtZV9mYWN0b3J5LmJ1aWxkX3dpbmRvd191cGRhdGVfZnJhbWUoCisgICAg
ICAgICAgICBzdHJlYW1faWQ9MCwKKyAgICAgICAgICAgIGluY3JlbWVudD00MDUwMCwKKyAgICAg
ICAgKS5zZXJpYWxpemUoKSArIGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0cmVhbV9mcmFtZSgK
KyAgICAgICAgICAgIHN0cmVhbV9pZD0xLAorICAgICAgICAgICAgZXJyb3JfY29kZT1oMi5lcnJv
cnMuRXJyb3JDb2Rlcy5TVFJFQU1fQ0xPU0VELAorICAgICAgICApLnNlcmlhbGl6ZSgpCisgICAg
ICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkCisKKyAgICAgICAgZiA9IGZy
YW1lX2ZhY3RvcnkuYnVpbGRfZGF0YV9mcmFtZShiJycpCisgICAgICAgIGV2ZW50cyA9IGMucmVj
ZWl2ZV9kYXRhKGYuc2VyaWFsaXplKCkpCisgICAgICAgIGFzc2VydCBub3QgZXZlbnRzCisKKyAg
ICAgICAgZXhwZWN0ZWQgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUoCisg
ICAgICAgICAgICBzdHJlYW1faWQ9MSwKKyAgICAgICAgICAgIGVycm9yX2NvZGU9aDIuZXJyb3Jz
LkVycm9yQ29kZXMuU1RSRUFNX0NMT1NFRCwKKyAgICAgICAgKS5zZXJpYWxpemUoKQorICAgICAg
ICBhc3NlcnQgYy5kYXRhX3RvX3NlbmQoKSA9PSBleHBlY3RlZAorCiAKIGNsYXNzIFRlc3RBdXRv
bWF0aWNGbG93Q29udHJvbChvYmplY3QpOgogICAgICIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90
ZXN0L3Rlc3RfaDJfdXBncmFkZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2gyX3VwZ3JhZGUucHkK
aW5kZXggMWQ0ZWFjNjdmNjQ3MjBkMGZhODIzYWY1ZThhODNiODdlYmVjODdhYi4uZDYzZDQ0ZjNm
NzhjMjBlZWZhYmU1YTZjMThkNmIwMjI3YTlkYjFjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0
L3Rlc3RfaDJfdXBncmFkZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9oMl91cGdyYWRlLnB5
CkBAIC0yNjAsMTEgKzI2MCwxMSBAQCBjbGFzcyBUZXN0U2VydmVyVXBncmFkZShvYmplY3QpOgog
ICAgICAgICApCiAgICAgICAgIGMucmVjZWl2ZV9kYXRhKGYuc2VyaWFsaXplKCkpCiAKLSAgICAg
ICAgZXhwZWN0ZWRfZnJhbWUgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUo
CisgICAgICAgIGV4cGVjdGVkID0gZnJhbWVfZmFjdG9yeS5idWlsZF9yc3Rfc3RyZWFtX2ZyYW1l
KAogICAgICAgICAgICAgc3RyZWFtX2lkPTEsCiAgICAgICAgICAgICBlcnJvcl9jb2RlPWgyLmVy
cm9ycy5FcnJvckNvZGVzLlNUUkVBTV9DTE9TRUQsCi0gICAgICAgICkKLSAgICAgICAgYXNzZXJ0
IGMuZGF0YV90b19zZW5kKCkgPT0gZXhwZWN0ZWRfZnJhbWUuc2VyaWFsaXplKCkKKyAgICAgICAg
KS5zZXJpYWxpemUoKQorICAgICAgICBhc3NlcnQgYy5kYXRhX3RvX3NlbmQoKSA9PSBleHBlY3Rl
ZAogCiAgICAgZGVmIHRlc3RfY2xpZW50X3NldHRpbmdzX2FyZV9hcHBsaWVkKHNlbGYsIGZyYW1l
X2ZhY3RvcnkpOgogICAgICAgICAiIiIKQEAgLTI3OCw3ICsyNzgsNyBAQCBjbGFzcyBUZXN0U2Vy
dmVyVXBncmFkZShvYmplY3QpOgogICAgICAgICAjIHN0YXJ0IG9mIHRoZSBjb25uZWN0aW9uLCBk
byBub3QgYWdyZWUgb24gdGhlaXIgaW5pdGlhbCBzZXR0aW5ncwogICAgICAgICAjIHN0YXRlLgog
ICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgY2xpZW50LmxvY2FsX3NldHRpbmdzLl9zZXR0
aW5ncyAhPSBzZXJ2ZXIucmVtb3RlX3NldHRpbmdzLl9zZXR0aW5ncworICAgICAgICAgICAgY2xp
ZW50LmxvY2FsX3NldHRpbmdzICE9IHNlcnZlci5yZW1vdGVfc2V0dGluZ3MKICAgICAgICAgKQog
CiAgICAgICAgICMgR2V0IHRoZSBjbGllbnQgaGVhZGVyIGRhdGEgYW5kIHBhc3MgaXQgdG8gdGhl
IHNlcnZlci4KQEAgLTI5NywxMCArMjk3LDYgQEAgY2xhc3MgVGVzdFNlcnZlclVwZ3JhZGUob2Jq
ZWN0KToKICAgICAgICAgKQogICAgICAgICBhc3NlcnQgc2VydmVyLmRhdGFfdG9fc2VuZCgpID09
IGV4cGVjdGVkX2ZyYW1lLnNlcmlhbGl6ZSgpCiAKLSAgICAgICAgIyBXZSB2aW9sYXRlIGFic3Ry
YWN0aW9uIGxheWVycyBoZXJlLCBidXQgSSBkb24ndCB0aGluayBkZWZpbmluZyBfX2VxX18KLSAg
ICAgICAgIyBmb3IgdGhpcyBpcyB3b3J0aCBpdC4gSW4gdGhpcyBjYXNlLCBib3RoIHRoZSBjbGll
bnQgYW5kIHNlcnZlciBzaG91bGQKLSAgICAgICAgIyBhZ3JlZSB0aGF0IHRoZXNlIHNldHRpbmdz
IGhhdmUgYmVlbiBBQ0snZCwgc28gdGhlaXIgdW5kZXJseWluZwotICAgICAgICAjIGRpY3Rpb25h
cmllcyBzaG91bGQgYmUgaWRlbnRpY2FsLgogICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAg
Y2xpZW50LmxvY2FsX3NldHRpbmdzLl9zZXR0aW5ncyA9PSBzZXJ2ZXIucmVtb3RlX3NldHRpbmdz
Ll9zZXR0aW5ncworICAgICAgICAgICAgY2xpZW50LmxvY2FsX3NldHRpbmdzID09IHNlcnZlci5y
ZW1vdGVfc2V0dGluZ3MKICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rf
aGVhZF9yZXF1ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfaGVhZF9yZXF1ZXN0LnB5CmluZGV4
IDMxM2JmMTJhN2MzMTIzOTBiZmZjZDY2MjczNDc0ZDQ4MTUyODJkMmUuLmVmNzMwMDcyNTRlNDdh
OTliYjczZTkwNTJjZWUxZGQwZjNiMjAxNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0
X2hlYWRfcmVxdWVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9oZWFkX3JlcXVlc3QucHkK
QEAgLTgsNDkgKzgsNDggQEAgaW1wb3J0IHB5dGVzdAogCiAKIGNsYXNzIFRlc3RIZWFkUmVxdWVz
dChvYmplY3QpOgotCi0gICAgICAgIGV4YW1wbGVfcmVxdWVzdF9oZWFkZXJzID0gWwotICAgICAg
ICAgICAgKGInOmF1dGhvcml0eScsIGInZXhhbXBsZS5jb20nKSwKLSAgICAgICAgICAgIChiJzpw
YXRoJywgYicvJyksCi0gICAgICAgICAgICAoYic6c2NoZW1lJywgYidodHRwcycpLAotICAgICAg
ICAgICAgKGInOm1ldGhvZCcsIGInSEVBRCcpLAotICAgICAgICBdCi0KLSAgICAgICAgZXhhbXBs
ZV9yZXNwb25zZV9oZWFkZXJzID0gWwotICAgICAgICAgICAgKGInOnN0YXR1cycsIGInMjAwJyks
Ci0gICAgICAgICAgICAoYidzZXJ2ZXInLCBiJ2Zha2Utc2Vydi8wLjEuMCcpLAotICAgICAgICAg
ICAgKGInY29udGVudF9sZW5ndGgnLCBiJzEnKSwKLSAgICAgICAgXQotCi0gICAgICAgIGRlZiB0
ZXN0X25vbl96ZXJvX2NvbnRlbnRfYW5kX25vX2JvZHkoc2VsZiwgZnJhbWVfZmFjdG9yeSk6Ci0K
LSAgICAgICAgICAgIGMgPSBoMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlvbigpCi0gICAgICAgICAg
ICBjLmluaXRpYXRlX2Nvbm5lY3Rpb24oKQotICAgICAgICAgICAgYy5zZW5kX2hlYWRlcnMoMSwg
c2VsZi5leGFtcGxlX3JlcXVlc3RfaGVhZGVycywgZW5kX3N0cmVhbT1UcnVlKQotCi0gICAgICAg
ICAgICBmID0gZnJhbWVfZmFjdG9yeS5idWlsZF9oZWFkZXJzX2ZyYW1lKAotICAgICAgICAgICAg
ICAgIHNlbGYuZXhhbXBsZV9yZXNwb25zZV9oZWFkZXJzLAotICAgICAgICAgICAgICAgIGZsYWdz
PVsnRU5EX1NUUkVBTSddCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBldmVudHMgPSBjLnJl
Y2VpdmVfZGF0YShmLnNlcmlhbGl6ZSgpKQotCi0gICAgICAgICAgICBhc3NlcnQgbGVuKGV2ZW50
cykgPT0gMgotICAgICAgICAgICAgZXZlbnQgPSBldmVudHNbMF0KLQotICAgICAgICAgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoZXZlbnQsIGgyLmV2ZW50cy5SZXNwb25zZVJlY2VpdmVkKQotICAgICAg
ICAgICAgYXNzZXJ0IGV2ZW50LnN0cmVhbV9pZCA9PSAxCi0gICAgICAgICAgICBhc3NlcnQgZXZl
bnQuaGVhZGVycyA9PSBzZWxmLmV4YW1wbGVfcmVzcG9uc2VfaGVhZGVycwotCi0gICAgICAgIGRl
ZiB0ZXN0X3JlamVjdF9ub25femVyb19jb250ZW50X2FuZF9ib2R5KHNlbGYsIGZyYW1lX2ZhY3Rv
cnkpOgotICAgICAgICAgICAgYyA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKCkKLSAgICAg
ICAgICAgIGMuaW5pdGlhdGVfY29ubmVjdGlvbigpCi0gICAgICAgICAgICBjLnNlbmRfaGVhZGVy
cygxLCBzZWxmLmV4YW1wbGVfcmVxdWVzdF9oZWFkZXJzKQotCi0gICAgICAgICAgICBoZWFkZXJz
ID0gZnJhbWVfZmFjdG9yeS5idWlsZF9oZWFkZXJzX2ZyYW1lKAotICAgICAgICAgICAgICAgIHNl
bGYuZXhhbXBsZV9yZXNwb25zZV9oZWFkZXJzCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBk
YXRhID0gZnJhbWVfZmFjdG9yeS5idWlsZF9kYXRhX2ZyYW1lKGRhdGE9YidceDAxJykKLQotICAg
ICAgICAgICAgYy5yZWNlaXZlX2RhdGEoaGVhZGVycy5zZXJpYWxpemUoKSkKLSAgICAgICAgICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhoMi5leGNlcHRpb25zLkludmFsaWRCb2R5TGVuZ3RoRXJyb3Ip
OgotICAgICAgICAgICAgICAgIGMucmVjZWl2ZV9kYXRhKGRhdGEuc2VyaWFsaXplKCkpCisgICAg
ZXhhbXBsZV9yZXF1ZXN0X2hlYWRlcnMgPSBbCisgICAgICAgIChiJzphdXRob3JpdHknLCBiJ2V4
YW1wbGUuY29tJyksCisgICAgICAgIChiJzpwYXRoJywgYicvJyksCisgICAgICAgIChiJzpzY2hl
bWUnLCBiJ2h0dHBzJyksCisgICAgICAgIChiJzptZXRob2QnLCBiJ0hFQUQnKSwKKyAgICBdCisK
KyAgICBleGFtcGxlX3Jlc3BvbnNlX2hlYWRlcnMgPSBbCisgICAgICAgIChiJzpzdGF0dXMnLCBi
JzIwMCcpLAorICAgICAgICAoYidzZXJ2ZXInLCBiJ2Zha2Utc2Vydi8wLjEuMCcpLAorICAgICAg
ICAoYidjb250ZW50X2xlbmd0aCcsIGInMScpLAorICAgIF0KKworICAgIGRlZiB0ZXN0X25vbl96
ZXJvX2NvbnRlbnRfYW5kX25vX2JvZHkoc2VsZiwgZnJhbWVfZmFjdG9yeSk6CisKKyAgICAgICAg
YyA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKCkKKyAgICAgICAgYy5pbml0aWF0ZV9jb25u
ZWN0aW9uKCkKKyAgICAgICAgYy5zZW5kX2hlYWRlcnMoMSwgc2VsZi5leGFtcGxlX3JlcXVlc3Rf
aGVhZGVycywgZW5kX3N0cmVhbT1UcnVlKQorCisgICAgICAgIGYgPSBmcmFtZV9mYWN0b3J5LmJ1
aWxkX2hlYWRlcnNfZnJhbWUoCisgICAgICAgICAgICBzZWxmLmV4YW1wbGVfcmVzcG9uc2VfaGVh
ZGVycywKKyAgICAgICAgICAgIGZsYWdzPVsnRU5EX1NUUkVBTSddCisgICAgICAgICkKKyAgICAg
ICAgZXZlbnRzID0gYy5yZWNlaXZlX2RhdGEoZi5zZXJpYWxpemUoKSkKKworICAgICAgICBhc3Nl
cnQgbGVuKGV2ZW50cykgPT0gMgorICAgICAgICBldmVudCA9IGV2ZW50c1swXQorCisgICAgICAg
IGFzc2VydCBpc2luc3RhbmNlKGV2ZW50LCBoMi5ldmVudHMuUmVzcG9uc2VSZWNlaXZlZCkKKyAg
ICAgICAgYXNzZXJ0IGV2ZW50LnN0cmVhbV9pZCA9PSAxCisgICAgICAgIGFzc2VydCBldmVudC5o
ZWFkZXJzID09IHNlbGYuZXhhbXBsZV9yZXNwb25zZV9oZWFkZXJzCisKKyAgICBkZWYgdGVzdF9y
ZWplY3Rfbm9uX3plcm9fY29udGVudF9hbmRfYm9keShzZWxmLCBmcmFtZV9mYWN0b3J5KToKKyAg
ICAgICAgYyA9IGgyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uKCkKKyAgICAgICAgYy5pbml0aWF0
ZV9jb25uZWN0aW9uKCkKKyAgICAgICAgYy5zZW5kX2hlYWRlcnMoMSwgc2VsZi5leGFtcGxlX3Jl
cXVlc3RfaGVhZGVycykKKworICAgICAgICBoZWFkZXJzID0gZnJhbWVfZmFjdG9yeS5idWlsZF9o
ZWFkZXJzX2ZyYW1lKAorICAgICAgICAgICAgc2VsZi5leGFtcGxlX3Jlc3BvbnNlX2hlYWRlcnMK
KyAgICAgICAgKQorICAgICAgICBkYXRhID0gZnJhbWVfZmFjdG9yeS5idWlsZF9kYXRhX2ZyYW1l
KGRhdGE9YidceDAxJykKKworICAgICAgICBjLnJlY2VpdmVfZGF0YShoZWFkZXJzLnNlcmlhbGl6
ZSgpKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoaDIuZXhjZXB0aW9ucy5JbnZhbGlkQm9k
eUxlbmd0aEVycm9yKToKKyAgICAgICAgICAgIGMucmVjZWl2ZV9kYXRhKGRhdGEuc2VyaWFsaXpl
KCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9pbnZhbGlkX2ZyYW1lX3NlcXVlbmNl
cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2ludmFsaWRfZnJhbWVfc2VxdWVuY2VzLnB5CmluZGV4
IDFmMmY2Yzc3YWFlOTgwM2E2YjZlNTVlYmVmNTUyMmMwZDhkNTQ3MzIuLjEyYjcwYzRhNmJjYjZk
MWI3ZTQyNTI0MDc4OTg5MzNjM2Y5YzlhYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0
X2ludmFsaWRfZnJhbWVfc2VxdWVuY2VzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2ludmFs
aWRfZnJhbWVfc2VxdWVuY2VzLnB5CkBAIC0xNDksMTQgKzE0OSwxNiBAQCBjbGFzcyBUZXN0SW52
YWxpZEZyYW1lU2VxdWVuY2VzKG9iamVjdCk6CiAgICAgICAgIGMucmVjZWl2ZV9kYXRhKGYuc2Vy
aWFsaXplKCkpCiAgICAgICAgIGMuY2xlYXJfb3V0Ym91bmRfZGF0YV9idWZmZXIoKQogCi0gICAg
ICAgIGJhZF9mcmFtZSA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfZGF0YV9mcmFtZShkYXRhPWInaGVs
bG8nKQorICAgICAgICBiYWRfZnJhbWUgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX2RhdGFfZnJhbWUo
CisgICAgICAgICAgICBkYXRhPWInc29tZSBkYXRhJworICAgICAgICApCiAgICAgICAgIGMucmVj
ZWl2ZV9kYXRhKGJhZF9mcmFtZS5zZXJpYWxpemUoKSkKIAotICAgICAgICBleHBlY3RlZF9mcmFt
ZSA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0cmVhbV9mcmFtZSgKKyAgICAgICAgZXhwZWN0
ZWQgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUoCiAgICAgICAgICAgICBz
dHJlYW1faWQ9MSwKLSAgICAgICAgICAgIGVycm9yX2NvZGU9MHg1LAotICAgICAgICApCi0gICAg
ICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkX2ZyYW1lLnNlcmlhbGl6ZSgp
CisgICAgICAgICAgICBlcnJvcl9jb2RlPWgyLmVycm9ycy5FcnJvckNvZGVzLlNUUkVBTV9DTE9T
RUQsCisgICAgICAgICkuc2VyaWFsaXplKCkKKyAgICAgICAgYXNzZXJ0IGMuZGF0YV90b19zZW5k
KCkgPT0gZXhwZWN0ZWQKIAogICAgIGRlZiB0ZXN0X3VuZXhwZWN0ZWRfY29udGludWF0aW9uX29u
X2Nsb3NlZF9zdHJlYW0oc2VsZiwgZnJhbWVfZmFjdG9yeSk6CiAgICAgICAgICIiIgpAQCAtMjkz
LDE1ICsyOTUsMTUgQEAgY2xhc3MgVGVzdEludmFsaWRGcmFtZVNlcXVlbmNlcyhvYmplY3QpOgog
ICAgICAgICBjLmNsZWFyX291dGJvdW5kX2RhdGFfYnVmZmVyKCkKIAogICAgICAgICBiYWRfZnJh
bWUgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX2RhdGFfZnJhbWUoCi0gICAgICAgICAgICBkYXRhPWIn
aGVsbG8nCisgICAgICAgICAgICBkYXRhPWInc29tZSBkYXRhJwogICAgICAgICApCiAgICAgICAg
IGV2ZW50cyA9IGMucmVjZWl2ZV9kYXRhKGJhZF9mcmFtZS5zZXJpYWxpemUoKSkKIAotICAgICAg
ICBleHBlY3RlZF9mcmFtZSA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRfcnN0X3N0cmVhbV9mcmFtZSgK
KyAgICAgICAgZXhwZWN0ZWQgPSBmcmFtZV9mYWN0b3J5LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUo
CiAgICAgICAgICAgICBzdHJlYW1faWQ9MSwKLSAgICAgICAgICAgIGVycm9yX2NvZGU9MHg1LAot
ICAgICAgICApCi0gICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkX2Zy
YW1lLnNlcmlhbGl6ZSgpCisgICAgICAgICAgICBlcnJvcl9jb2RlPWgyLmVycm9ycy5FcnJvckNv
ZGVzLlNUUkVBTV9DTE9TRUQsCisgICAgICAgICkuc2VyaWFsaXplKCkKKyAgICAgICAgYXNzZXJ0
IGMuZGF0YV90b19zZW5kKCkgPT0gZXhwZWN0ZWQKIAogICAgICAgICBhc3NlcnQgbGVuKGV2ZW50
cykgPT0gMQogICAgICAgICBldmVudCA9IGV2ZW50c1swXQpAQCAtMzI3LDE2ICszMjksMTYgQEAg
Y2xhc3MgVGVzdEludmFsaWRGcmFtZVNlcXVlbmNlcyhvYmplY3QpOgogICAgICAgICBjLmNsZWFy
X291dGJvdW5kX2RhdGFfYnVmZmVyKCkKIAogICAgICAgICBiYWRfZnJhbWUgPSBmcmFtZV9mYWN0
b3J5LmJ1aWxkX2RhdGFfZnJhbWUoCi0gICAgICAgICAgICBkYXRhPWInaGVsbG8nCisgICAgICAg
ICAgICBkYXRhPWInc29tZSBkYXRhJwogICAgICAgICApCiAgICAgICAgICMgUmVjZWl2ZSA1IGZy
YW1lcy4KICAgICAgICAgZXZlbnRzID0gYy5yZWNlaXZlX2RhdGEoYmFkX2ZyYW1lLnNlcmlhbGl6
ZSgpICogNSkKIAotICAgICAgICBleHBlY3RlZF9mcmFtZSA9IGZyYW1lX2ZhY3RvcnkuYnVpbGRf
cnN0X3N0cmVhbV9mcmFtZSgKKyAgICAgICAgZXhwZWN0ZWQgPSBmcmFtZV9mYWN0b3J5LmJ1aWxk
X3JzdF9zdHJlYW1fZnJhbWUoCiAgICAgICAgICAgICBzdHJlYW1faWQ9MSwKLSAgICAgICAgICAg
IGVycm9yX2NvZGU9MHg1LAotICAgICAgICApCi0gICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2Vu
ZCgpID09IGV4cGVjdGVkX2ZyYW1lLnNlcmlhbGl6ZSgpICogNQorICAgICAgICAgICAgZXJyb3Jf
Y29kZT1oMi5lcnJvcnMuRXJyb3JDb2Rlcy5TVFJFQU1fQ0xPU0VELAorICAgICAgICApLnNlcmlh
bGl6ZSgpCisgICAgICAgIGFzc2VydCBjLmRhdGFfdG9fc2VuZCgpID09IGV4cGVjdGVkICogNQog
CiAgICAgICAgIGFzc2VydCBsZW4oZXZlbnRzKSA9PSAxCiAgICAgICAgIGV2ZW50ID0gZXZlbnRz
WzBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9pbnZhbGlkX2hlYWRlcnMucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL3Rlc3QvdGVzdF9pbnZhbGlkX2hlYWRlcnMucHkKaW5kZXggMWEzMTVlZTI2YWNmMTVl
NThhNzA5NDQwM2EzMTc0MzU0MjFmZDU2Yy4uYTM3OTk1MDczM2Q4Yjc4M2RkNjdkNzBmYWQ0YjQ0
MmE0ZmM0YmFjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfaW52YWxpZF9oZWFkZXJz
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2ludmFsaWRfaGVhZGVycy5weQpAQCAtNTQsNiAr
NTQsNyBAQCBjbGFzcyBUZXN0SW52YWxpZEZyYW1lU2VxdWVuY2VzKG9iamVjdCk6CiAgICAgICAg
IGJhc2VfcmVxdWVzdF9oZWFkZXJzICsgWygnbmFtZScsICd2YWx1ZSB3aXRoIHRyYWlsaW5nIHNw
YWNlICcpXSwKICAgICAgICAgW2hlYWRlciBmb3IgaGVhZGVyIGluIGJhc2VfcmVxdWVzdF9oZWFk
ZXJzCiAgICAgICAgICBpZiBoZWFkZXJbMF0gIT0gJzphdXRob3JpdHknXSwKKyAgICAgICAgWygn
OnByb3RvY29sJywgJ3dlYnNvY2tldCcpXSArIGJhc2VfcmVxdWVzdF9oZWFkZXJzLAogICAgIF0K
ICAgICBzZXJ2ZXJfY29uZmlnID0gaDIuY29uZmlnLkgyQ29uZmlndXJhdGlvbigKICAgICAgICAg
Y2xpZW50X3NpZGU9RmFsc2UsIGhlYWRlcl9lbmNvZGluZz0ndXRmLTgnCkBAIC0yMDMsNyArMjA0
LDcgQEAgY2xhc3MgVGVzdEludmFsaWRGcmFtZVNlcXVlbmNlcyhvYmplY3QpOgogICAgICAgICAj
IFJhaXNlIGV4Y2VwdGlvbiBpZiBwc2V1ZG8gaGVhZGVyIGluIHRyYWlsZXIKICAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKGgyLmV4Y2VwdGlvbnMuUHJvdG9jb2xFcnJvcikgYXMgZToKICAgICAg
ICAgICAgIGMucmVjZWl2ZV9kYXRhKHRyYWlsZXIpCi0gICAgICAgIGFzc2VydCAicHNldWRvLWhl
YWRlciBpbiB0cmFpbGVyIiBpbiBzdHIoZSkKKyAgICAgICAgYXNzZXJ0ICJwc2V1ZG8taGVhZGVy
IGluIHRyYWlsZXIiIGluIHN0cihlLnZhbHVlKQogCiAgICAgICAgICMgVGVzdCBhcHByb3ByaWF0
ZSByZXNwb25zZSBmcmFtZSBpcyBnZW5lcmF0ZWQKICAgICAgICAgZXhwZWN0ZWRfZnJhbWUgPSBm
cmFtZV9mYWN0b3J5LmJ1aWxkX2dvYXdheV9mcmFtZSgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVz
dC90ZXN0X3NldHRpbmdzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rfc2V0dGluZ3MucHkKaW5kZXgg
MjE2M2JiOWI4ZDQ0NDJmMjY2NDIxYTIxMDZmNTdkODg5ZTk2ODFjZS4uZDE5ZjkzYTdjMmVkMjhl
ZWQ0ZTQwOGViMjg5NDhlMWUxOTRiMmZiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rf
c2V0dGluZ3MucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rfc2V0dGluZ3MucHkKQEAgLTEyLDcg
KzEyLDkgQEAgaW1wb3J0IGgyLmV4Y2VwdGlvbnMKIGltcG9ydCBoMi5zZXR0aW5ncwogCiBmcm9t
IGh5cG90aGVzaXMgaW1wb3J0IGdpdmVuLCBhc3N1bWUKLWZyb20gaHlwb3RoZXNpcy5zdHJhdGVn
aWVzIGltcG9ydCBpbnRlZ2VycworZnJvbSBoeXBvdGhlc2lzLnN0cmF0ZWdpZXMgaW1wb3J0ICgK
KyAgICBpbnRlZ2VycywgYm9vbGVhbnMsIGZpeGVkX2RpY3Rpb25hcmllcywgYnVpbGRzCispCiAK
IAogY2xhc3MgVGVzdFNldHRpbmdzKG9iamVjdCk6CkBAIC0yOSw2ICszMSw3IEBAIGNsYXNzIFRl
c3RTZXR0aW5ncyhvYmplY3QpOgogICAgICAgICBhc3NlcnQgc1toMi5zZXR0aW5ncy5TZXR0aW5n
Q29kZXMuRU5BQkxFX1BVU0hdID09IDEKICAgICAgICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0
dGluZ0NvZGVzLklOSVRJQUxfV0lORE9XX1NJWkVdID09IDY1NTM1CiAgICAgICAgIGFzc2VydCBz
W2gyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5NQVhfRlJBTUVfU0laRV0gPT0gMTYzODQKKyAgICAg
ICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLkVOQUJMRV9DT05ORUNUX1BST1RP
Q09MXSA9PSAwCiAKICAgICBkZWYgdGVzdF9zZXR0aW5nc19kZWZhdWx0c19zZXJ2ZXIoc2VsZik6
CiAgICAgICAgICIiIgpAQCAtNDAsNiArNDMsNyBAQCBjbGFzcyBUZXN0U2V0dGluZ3Mob2JqZWN0
KToKICAgICAgICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLkVOQUJMRV9QVVNI
XSA9PSAwCiAgICAgICAgIGFzc2VydCBzW2gyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5JTklUSUFM
X1dJTkRPV19TSVpFXSA9PSA2NTUzNQogICAgICAgICBhc3NlcnQgc1toMi5zZXR0aW5ncy5TZXR0
aW5nQ29kZXMuTUFYX0ZSQU1FX1NJWkVdID09IDE2Mzg0CisgICAgICAgIGFzc2VydCBzW2gyLnNl
dHRpbmdzLlNldHRpbmdDb2Rlcy5FTkFCTEVfQ09OTkVDVF9QUk9UT0NPTF0gPT0gMAogCiAgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjbGllbnQnLCBbVHJ1ZSwgRmFsc2VdKQogICAgIGRl
ZiB0ZXN0X2Nhbl9zZXRfaW5pdGlhbF92YWx1ZXMoc2VsZiwgY2xpZW50KToKQEAgLTUyLDYgKzU2
LDcgQEAgY2xhc3MgVGVzdFNldHRpbmdzKG9iamVjdCk6CiAgICAgICAgICAgICBoMi5zZXR0aW5n
cy5TZXR0aW5nQ29kZXMuTUFYX0ZSQU1FX1NJWkU6IDE2Mzg4LAogICAgICAgICAgICAgaDIuc2V0
dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9DT05DVVJSRU5UX1NUUkVBTVM6IDEwMCwKICAgICAgICAg
ICAgIGgyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5NQVhfSEVBREVSX0xJU1RfU0laRTogMioqMTYs
CisgICAgICAgICAgICBoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1RfUFJP
VE9DT0w6IDEsCiAgICAgICAgIH0KICAgICAgICAgcyA9IGgyLnNldHRpbmdzLlNldHRpbmdzKGNs
aWVudD1jbGllbnQsIGluaXRpYWxfdmFsdWVzPW92ZXJyaWRlcykKIApAQCAtNjEsNiArNjYsNyBA
QCBjbGFzcyBUZXN0U2V0dGluZ3Mob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHNbaDIuc2V0dGlu
Z3MuU2V0dGluZ0NvZGVzLk1BWF9GUkFNRV9TSVpFXSA9PSAxNjM4OAogICAgICAgICBhc3NlcnQg
c1toMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0NPTkNVUlJFTlRfU1RSRUFNU10gPT0gMTAw
CiAgICAgICAgIGFzc2VydCBzW2gyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5NQVhfSEVBREVSX0xJ
U1RfU0laRV0gPT0gMioqMTYKKyAgICAgICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0Nv
ZGVzLkVOQUJMRV9DT05ORUNUX1BST1RPQ09MXSA9PSAxCiAKICAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoCiAgICAgICAgICdzZXR0aW5nLHZhbHVlJywKQEAgLTcyLDYgKzc4LDcgQEAgY2xh
c3MgVGVzdFNldHRpbmdzKG9iamVjdCk6CiAgICAgICAgICAgICAoaDIuc2V0dGluZ3MuU2V0dGlu
Z0NvZGVzLk1BWF9GUkFNRV9TSVpFLCAxKSwKICAgICAgICAgICAgIChoMi5zZXR0aW5ncy5TZXR0
aW5nQ29kZXMuTUFYX0ZSQU1FX1NJWkUsIDIqKjMwKSwKICAgICAgICAgICAgIChoMi5zZXR0aW5n
cy5TZXR0aW5nQ29kZXMuTUFYX0hFQURFUl9MSVNUX1NJWkUsIC0xKSwKKyAgICAgICAgICAgICho
Mi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0wsIC0xKSwKICAg
ICAgICAgXQogICAgICkKICAgICBkZWYgdGVzdF9jYW5ub3Rfc2V0X2ludmFsaWRfaW5pdGlhbF92
YWx1ZXMoc2VsZiwgc2V0dGluZywgdmFsdWUpOgpAQCAtMTA2LDYgKzExMyw3IEBAIGNsYXNzIFRl
c3RTZXR0aW5ncyhvYmplY3QpOgogICAgICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVz
LkVOQUJMRV9QVVNIOiAwLAogICAgICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLklO
SVRJQUxfV0lORE9XX1NJWkU6IDYwLAogICAgICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0Nv
ZGVzLk1BWF9GUkFNRV9TSVpFOiAxNjM4NSwKKyAgICAgICAgICAgIGgyLnNldHRpbmdzLlNldHRp
bmdDb2Rlcy5FTkFCTEVfQ09OTkVDVF9QUk9UT0NPTDogMSwKICAgICAgICAgfQogICAgICAgICBz
LnVwZGF0ZShuZXdfc2V0dGluZ3MpCiAKQEAgLTE2OSwxNiArMTc3LDE2IEBAIGNsYXNzIFRlc3RT
ZXR0aW5ncyhvYmplY3QpOgogICAgICAgICBMZW5ndGggaXMgcmVsYXRlZCBvbmx5IHRvIHRoZSBu
dW1iZXIgb2Yga2V5cy4KICAgICAgICAgIiIiCiAgICAgICAgIHMgPSBoMi5zZXR0aW5ncy5TZXR0
aW5ncyhjbGllbnQ9VHJ1ZSkKLSAgICAgICAgYXNzZXJ0IGxlbihzKSA9PSA0CisgICAgICAgIGFz
c2VydCBsZW4ocykgPT0gNQogCiAgICAgICAgIHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLkhF
QURFUl9UQUJMRV9TSVpFXSA9PSA4MDAwCi0gICAgICAgIGFzc2VydCBsZW4ocykgPT0gNAorICAg
ICAgICBhc3NlcnQgbGVuKHMpID09IDUKIAogICAgICAgICBzLmFja25vd2xlZGdlKCkKLSAgICAg
ICAgYXNzZXJ0IGxlbihzKSA9PSA0CisgICAgICAgIGFzc2VydCBsZW4ocykgPT0gNQogCiAgICAg
ICAgIGRlbCBzW2gyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5IRUFERVJfVEFCTEVfU0laRV0KLSAg
ICAgICAgYXNzZXJ0IGxlbihzKSA9PSAzCisgICAgICAgIGFzc2VydCBsZW4ocykgPT0gNAogCiAg
ICAgZGVmIHRlc3RfbmV3X3ZhbHVlc193b3JrKHNlbGYpOgogICAgICAgICAiIiIKQEAgLTIzMiw2
ICsyNDAsOSBAQCBjbGFzcyBUZXN0U2V0dGluZ3Mob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHMu
bWF4X2ZyYW1lX3NpemUgPT0gc1toMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0ZSQU1FX1NJ
WkVdCiAgICAgICAgIGFzc2VydCBzLm1heF9jb25jdXJyZW50X3N0cmVhbXMgPT0gMioqMzIgKyAx
ICAjIEEgc2Vuc2libGUgZGVmYXVsdC4KICAgICAgICAgYXNzZXJ0IHMubWF4X2hlYWRlcl9saXN0
X3NpemUgaXMgTm9uZQorICAgICAgICBhc3NlcnQgcy5lbmFibGVfY29ubmVjdF9wcm90b2NvbCA9
PSBzWworICAgICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLkVOQUJMRV9DT05ORUNU
X1BST1RPQ09MCisgICAgICAgIF0KIAogICAgIGRlZiB0ZXN0X3NldHRpbmdzX3NldHRlcnMoc2Vs
Zik6CiAgICAgICAgICIiIgpAQCAtMjQ1LDYgKzI1Niw3IEBAIGNsYXNzIFRlc3RTZXR0aW5ncyhv
YmplY3QpOgogICAgICAgICBzLm1heF9mcmFtZV9zaXplID0gMTYzODUKICAgICAgICAgcy5tYXhf
Y29uY3VycmVudF9zdHJlYW1zID0gNAogICAgICAgICBzLm1heF9oZWFkZXJfbGlzdF9zaXplID0g
MioqMTYKKyAgICAgICAgcy5lbmFibGVfY29ubmVjdF9wcm90b2NvbCA9IDEKIAogICAgICAgICBz
LmFja25vd2xlZGdlKCkKICAgICAgICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVz
LkhFQURFUl9UQUJMRV9TSVpFXSA9PSAwCkBAIC0yNTMsNiArMjY1LDcgQEAgY2xhc3MgVGVzdFNl
dHRpbmdzKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBzW2gyLnNldHRpbmdzLlNldHRpbmdDb2Rl
cy5NQVhfRlJBTUVfU0laRV0gPT0gMTYzODUKICAgICAgICAgYXNzZXJ0IHNbaDIuc2V0dGluZ3Mu
U2V0dGluZ0NvZGVzLk1BWF9DT05DVVJSRU5UX1NUUkVBTVNdID09IDQKICAgICAgICAgYXNzZXJ0
IHNbaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9IRUFERVJfTElTVF9TSVpFXSA9PSAyKiox
NgorICAgICAgICBhc3NlcnQgc1toMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5F
Q1RfUFJPVE9DT0xdID09IDEKIAogICAgIEBnaXZlbihpbnRlZ2VycygpKQogICAgIGRlZiB0ZXN0
X2Nhbm5vdF9zZXRfaW52YWxpZF92YWx1ZXNfZm9yX2VuYWJsZV9wdXNoKHNlbGYsIHZhbCk6CkBA
IC0zNjEsMTMxICszNzQsOTcgQEAgY2xhc3MgVGVzdFNldHRpbmdzKG9iamVjdCk6CiAgICAgICAg
ICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoS2V5RXJyb3IpOgogICAgICAgICAgICAgICAgIHNbaDIu
c2V0dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9IRUFERVJfTElTVF9TSVpFXQogCi0KLWNsYXNzIFRl
c3RTZXR0aW5nc0VxdWFsaXR5KG9iamVjdCk6Ci0gICAgIiIiCi0gICAgQSBjbGFzcyBkZWZpbmlu
ZyB0ZXN0cyBmb3IgdGhlIHN0YW5kYXJkIGltcGxlbWVudGF0aW9uIG9mID09IGFuZCAhPSAuCi0g
ICAgIiIiCi0KLSAgICBkZWYgYW5faW5zdGFuY2Uoc2VsZik6CisgICAgQGdpdmVuKGludGVnZXJz
KCkpCisgICAgZGVmIHRlc3RfY2Fubm90X3NldF9pbnZhbGlkX3ZhbHVlc19mb3JfZW5hYmxlX2Nv
bm5lY3RfcHJvdG9jb2woc2VsZiwgdmFsKToKICAgICAgICAgIiIiCi0gICAgICAgIFJldHVybiBh
biBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgdW5kZXIgdGVzdC4gIEVhY2ggY2FsbCB0byB0aGlzIG1l
dGhvZAotICAgICAgICBtdXN0IHJldHVybiBhIGRpZmZlcmVudCBvYmplY3QuICBBbGwgb2JqZWN0
cyByZXR1cm5lZCBtdXN0IGJlIGVxdWFsIHRvCi0gICAgICAgIGVhY2ggb3RoZXIuCisgICAgICAg
IFNFVFRJTkdTX0VOQUJMRV9DT05ORUNUX1BST1RPQ09MIG9ubHkgYWxsb3dzIHR3byB2YWx1ZXM6
IDAsIDEuCiAgICAgICAgICIiIgotICAgICAgICBvdmVycmlkZXMgPSB7Ci0gICAgICAgICAgICBo
Mi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuSEVBREVSX1RBQkxFX1NJWkU6IDAsCi0gICAgICAgICAg
ICBoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0ZSQU1FX1NJWkU6IDE2Mzg0LAotICAgICAg
ICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9DT05DVVJSRU5UX1NUUkVBTVM6IDQs
Ci0gICAgICAgICAgICBoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0hFQURFUl9MSVNUX1NJ
WkU6IDIqKjE2LAotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBoMi5zZXR0aW5ncy5TZXR0aW5n
cyhjbGllbnQ9VHJ1ZSwgaW5pdGlhbF92YWx1ZXM9b3ZlcnJpZGVzKQorICAgICAgICBhc3N1bWUo
dmFsIG5vdCBpbiAoMCwgMSkpCisgICAgICAgIHMgPSBoMi5zZXR0aW5ncy5TZXR0aW5ncygpCiAK
LSAgICBkZWYgYW5vdGhlcl9pbnN0YW5jZShzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFJl
dHVybiBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgdW5kZXIgdGVzdC4gIEVhY2ggY2FsbCB0byB0
aGlzIG1ldGhvZAotICAgICAgICBtdXN0IHJldHVybiBhIGRpZmZlcmVudCBvYmplY3QuICBUaGUg
b2JqZWN0cyBtdXN0IG5vdCBiZSBlcXVhbCB0byB0aGUKLSAgICAgICAgb2JqZWN0cyByZXR1cm5l
ZCBieSBhbl9pbnN0YW5jZS4gIFRoZXkgbWF5IG9yIG1heSBub3QgYmUgZXF1YWwgdG8KLSAgICAg
ICAgZWFjaCBvdGhlciAodGhleSB3aWxsIG5vdCBiZSBjb21wYXJlZCBhZ2FpbnN0IGVhY2ggb3Ro
ZXIpLgotICAgICAgICAiIiIKLSAgICAgICAgb3ZlcnJpZGVzID0gewotICAgICAgICAgICAgaDIu
c2V0dGluZ3MuU2V0dGluZ0NvZGVzLkhFQURFUl9UQUJMRV9TSVpFOiA4MDgwLAotICAgICAgICAg
ICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLk1BWF9GUkFNRV9TSVpFOiAxNjM4OCwKLSAgICAg
ICAgICAgIGgyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5NQVhfQ09OQ1VSUkVOVF9TVFJFQU1TOiAx
MDAsCi0gICAgICAgICAgICBoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuTUFYX0hFQURFUl9MSVNU
X1NJWkU6IDIqKjE2LAotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBoMi5zZXR0aW5ncy5TZXR0
aW5ncyhjbGllbnQ9RmFsc2UsIGluaXRpYWxfdmFsdWVzPW92ZXJyaWRlcykKKyAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKGgyLmV4Y2VwdGlvbnMuSW52YWxpZFNldHRpbmdzVmFsdWVFcnJvcikg
YXMgZToKKyAgICAgICAgICAgIHMuZW5hYmxlX2Nvbm5lY3RfcHJvdG9jb2wgPSB2YWwKIAotICAg
IGRlZiB0ZXN0X2lkZW50aWNhbF9lcShzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIEFuIG9i
amVjdCBjb21wYXJlcyBlcXVhbCB0byBpdHNlbGYgdXNpbmcgdGhlID09IG9wZXJhdG9yLgotICAg
ICAgICAiIiIKLSAgICAgICAgbyA9IHNlbGYuYW5faW5zdGFuY2UoKQotICAgICAgICBhc3NlcnQg
KG8gPT0gbykKKyAgICAgICAgcy5hY2tub3dsZWRnZSgpCisgICAgICAgIGFzc2VydCBlLnZhbHVl
LmVycm9yX2NvZGUgPT0gaDIuZXJyb3JzLkVycm9yQ29kZXMuUFJPVE9DT0xfRVJST1IKKyAgICAg
ICAgYXNzZXJ0IHMuZW5hYmxlX2Nvbm5lY3RfcHJvdG9jb2wgPT0gMAogCi0gICAgZGVmIHRlc3Rf
aWRlbnRpY2FsX25lKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgQW4gb2JqZWN0IGRvZXNu
J3QgY29tcGFyZSBub3QgZXF1YWwgdG8gaXRzZWxmIHVzaW5nIHRoZSAhPSBvcGVyYXRvci4KLSAg
ICAgICAgIiIiCi0gICAgICAgIG8gPSBzZWxmLmFuX2luc3RhbmNlKCkKLSAgICAgICAgYXNzZXJ0
IG5vdCAobyAhPSBvKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoaDIuZXhjZXB0aW9ucy5J
bnZhbGlkU2V0dGluZ3NWYWx1ZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgc1toMi5zZXR0aW5n
cy5TZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0xdID0gdmFsCiAKLSAgICBkZWYg
dGVzdF9zYW1lX2VxKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgVHdvIG9iamVjdHMgdGhh
dCBhcmUgZXF1YWwgdG8gZWFjaCBvdGhlciBjb21wYXJlIGVxdWFsIHRvIGVhY2ggb3RoZXIKLSAg
ICAgICAgdXNpbmcgdGhlID09IG9wZXJhdG9yLgotICAgICAgICAiIiIKLSAgICAgICAgYSA9IHNl
bGYuYW5faW5zdGFuY2UoKQotICAgICAgICBiID0gc2VsZi5hbl9pbnN0YW5jZSgpCi0gICAgICAg
IGFzc2VydCAoYSA9PSBiKQorICAgICAgICBzLmFja25vd2xlZGdlKCkKKyAgICAgICAgYXNzZXJ0
IGUudmFsdWUuZXJyb3JfY29kZSA9PSBoMi5lcnJvcnMuRXJyb3JDb2Rlcy5QUk9UT0NPTF9FUlJP
UgorICAgICAgICBhc3NlcnQgc1toMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX0NPTk5F
Q1RfUFJPVE9DT0xdID09IDAKIAotICAgIGRlZiB0ZXN0X3NhbWVfbmUoc2VsZik6Ci0gICAgICAg
ICIiIgotICAgICAgICBUd28gb2JqZWN0cyB0aGF0IGFyZSBlcXVhbCB0byBlYWNoIG90aGVyIGRv
IG5vdCBjb21wYXJlIG5vdCBlcXVhbCB0bwotICAgICAgICBlYWNoIG90aGVyIHVzaW5nIHRoZSAh
PSBvcGVyYXRvci4KLSAgICAgICAgIiIiCi0gICAgICAgIGEgPSBzZWxmLmFuX2luc3RhbmNlKCkK
LSAgICAgICAgYiA9IHNlbGYuYW5faW5zdGFuY2UoKQotICAgICAgICBhc3NlcnQgbm90IChhICE9
IGIpCiAKLSAgICBkZWYgdGVzdF9kaWZmZXJlbnRfZXEoc2VsZik6CitjbGFzcyBUZXN0U2V0dGlu
Z3NFcXVhbGl0eShvYmplY3QpOgorICAgICIiIgorICAgIEEgY2xhc3MgZGVmaW5pbmcgdGVzdHMg
Zm9yIHRoZSBzdGFuZGFyZCBpbXBsZW1lbnRhdGlvbiBvZiA9PSBhbmQgIT0gLgorICAgICIiIgor
CisgICAgU2V0dGluZ3NTdHJhdGVneSA9IGJ1aWxkcygKKyAgICAgICAgaDIuc2V0dGluZ3MuU2V0
dGluZ3MsCisgICAgICAgIGNsaWVudD1ib29sZWFucygpLAorICAgICAgICBpbml0aWFsX3ZhbHVl
cz1maXhlZF9kaWN0aW9uYXJpZXMoeworICAgICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0Nv
ZGVzLkhFQURFUl9UQUJMRV9TSVpFOgorICAgICAgICAgICAgICAgIGludGVnZXJzKDAsIDIqKjMy
IC0gMSksCisgICAgICAgICAgICBoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX1BVU0g6
IGludGVnZXJzKDAsIDEpLAorICAgICAgICAgICAgaDIuc2V0dGluZ3MuU2V0dGluZ0NvZGVzLklO
SVRJQUxfV0lORE9XX1NJWkU6CisgICAgICAgICAgICAgICAgaW50ZWdlcnMoMCwgMioqMzEgLSAx
KSwKKyAgICAgICAgICAgIGgyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5NQVhfRlJBTUVfU0laRToK
KyAgICAgICAgICAgICAgICBpbnRlZ2VycygyKioxNCwgMioqMjQgLSAxKSwKKyAgICAgICAgICAg
IGgyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5NQVhfQ09OQ1VSUkVOVF9TVFJFQU1TOgorICAgICAg
ICAgICAgICAgIGludGVnZXJzKDAsIDIqKjMyIC0gMSksCisgICAgICAgICAgICBoMi5zZXR0aW5n
cy5TZXR0aW5nQ29kZXMuTUFYX0hFQURFUl9MSVNUX1NJWkU6CisgICAgICAgICAgICAgICAgaW50
ZWdlcnMoMCwgMioqMzIgLSAxKSwKKyAgICAgICAgfSkKKyAgICApCisKKyAgICBAZ2l2ZW4oc2V0
dGluZ3M9U2V0dGluZ3NTdHJhdGVneSkKKyAgICBkZWYgdGVzdF9lcXVhbGl0eV9yZWZsZXhpdmUo
c2VsZiwgc2V0dGluZ3MpOgogICAgICAgICAiIiIKLSAgICAgICAgVHdvIG9iamVjdHMgdGhhdCBh
cmUgbm90IGVxdWFsIHRvIGVhY2ggb3RoZXIgZG8gbm90IGNvbXBhcmUgZXF1YWwgdG8KLSAgICAg
ICAgZWFjaCBvdGhlciB1c2luZyB0aGUgPT0gb3BlcmF0b3IuCisgICAgICAgIEFuIG9iamVjdCBj
b21wYXJlcyBlcXVhbCB0byBpdHNlbGYgdXNpbmcgdGhlID09IG9wZXJhdG9yIGFuZCB0aGUgIT0K
KyAgICAgICAgb3BlcmF0b3IuCiAgICAgICAgICIiIgotICAgICAgICBhID0gc2VsZi5hbl9pbnN0
YW5jZSgpCi0gICAgICAgIGIgPSBzZWxmLmFub3RoZXJfaW5zdGFuY2UoKQotICAgICAgICBhc3Nl
cnQgbm90IChhID09IGIpCisgICAgICAgIGFzc2VydCAoc2V0dGluZ3MgPT0gc2V0dGluZ3MpCisg
ICAgICAgIGFzc2VydCBub3QgKHNldHRpbmdzICE9IHNldHRpbmdzKQogCi0gICAgZGVmIHRlc3Rf
ZGlmZmVyZW50X25lKHNlbGYpOgorICAgIEBnaXZlbihzZXR0aW5ncz1TZXR0aW5nc1N0cmF0ZWd5
LCBvX3NldHRpbmdzPVNldHRpbmdzU3RyYXRlZ3kpCisgICAgZGVmIHRlc3RfZXF1YWxpdHlfbXVs
dGlwbGUoc2VsZiwgc2V0dGluZ3MsIG9fc2V0dGluZ3MpOgogICAgICAgICAiIiIKLSAgICAgICAg
VHdvIG9iamVjdHMgdGhhdCBhcmUgbm90IGVxdWFsIHRvIGVhY2ggb3RoZXIgY29tcGFyZSBub3Qg
ZXF1YWwgdG8gZWFjaAotICAgICAgICBvdGhlciB1c2luZyB0aGUgIT0gb3BlcmF0b3IuCisgICAg
ICAgIFR3byBvYmplY3RzIGNvbXBhcmUgdGhlbXNlbHZlcyB1c2luZyB0aGUgPT0gb3BlcmF0b3Ig
YW5kIHRoZSAhPQorICAgICAgICBvcGVyYXRvci4KICAgICAgICAgIiIiCi0gICAgICAgIGEgPSBz
ZWxmLmFuX2luc3RhbmNlKCkKLSAgICAgICAgYiA9IHNlbGYuYW5vdGhlcl9pbnN0YW5jZSgpCi0g
ICAgICAgIGFzc2VydCAoYSAhPSBiKQorICAgICAgICBpZiBzZXR0aW5ncyA9PSBvX3NldHRpbmdz
OgorICAgICAgICAgICAgYXNzZXJ0IHNldHRpbmdzID09IG9fc2V0dGluZ3MKKyAgICAgICAgICAg
IGFzc2VydCBub3QgKHNldHRpbmdzICE9IG9fc2V0dGluZ3MpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBhc3NlcnQgc2V0dGluZ3MgIT0gb19zZXR0aW5ncworICAgICAgICAgICAgYXNzZXJ0
IG5vdCAoc2V0dGluZ3MgPT0gb19zZXR0aW5ncykKIAotICAgIGRlZiB0ZXN0X2Fub3RoZXJfdHlw
ZV9lcShzZWxmKToKKyAgICBAZ2l2ZW4oc2V0dGluZ3M9U2V0dGluZ3NTdHJhdGVneSkKKyAgICBk
ZWYgdGVzdF9hbm90aGVyX3R5cGVfZXF1YWxpdHkoc2VsZiwgc2V0dGluZ3MpOgogICAgICAgICAi
IiIKICAgICAgICAgVGhlIG9iamVjdCBkb2VzIG5vdCBjb21wYXJlIGVxdWFsIHRvIGFuIG9iamVj
dCBvZiBhbiB1bnJlbGF0ZWQgdHlwZQogICAgICAgICAod2hpY2ggZG9lcyBub3QgaW1wbGVtZW50
IHRoZSBjb21wYXJpc29uKSB1c2luZyB0aGUgPT0gb3BlcmF0b3IuCiAgICAgICAgICIiIgotICAg
ICAgICBhID0gc2VsZi5hbl9pbnN0YW5jZSgpCi0gICAgICAgIGIgPSBvYmplY3QoKQotICAgICAg
ICBhc3NlcnQgbm90IChhID09IGIpCisgICAgICAgIG9iaiA9IG9iamVjdCgpCisgICAgICAgIGFz
c2VydCAoc2V0dGluZ3MgIT0gb2JqKQorICAgICAgICBhc3NlcnQgbm90IChzZXR0aW5ncyA9PSBv
YmopCiAKLSAgICBkZWYgdGVzdF9hbm90aGVyX3R5cGVfbmUoc2VsZik6CisgICAgQGdpdmVuKHNl
dHRpbmdzPVNldHRpbmdzU3RyYXRlZ3kpCisgICAgZGVmIHRlc3RfZGVsZWdhdGVkX2VxKHNlbGYs
IHNldHRpbmdzKToKICAgICAgICAgIiIiCi0gICAgICAgIFRoZSBvYmplY3QgY29tcGFyZXMgbm90
IGVxdWFsIHRvIGFuIG9iamVjdCBvZiBhbiB1bnJlbGF0ZWQgdHlwZSAod2hpY2gKLSAgICAgICAg
ZG9lcyBub3QgaW1wbGVtZW50IHRoZSBjb21wYXJpc29uKSB1c2luZyB0aGUgIT0gb3BlcmF0b3Iu
Ci0gICAgICAgICIiIgotICAgICAgICBhID0gc2VsZi5hbl9pbnN0YW5jZSgpCi0gICAgICAgIGIg
PSBvYmplY3QoKQotICAgICAgICBhc3NlcnQgKGEgIT0gYikKLQotICAgIGRlZiB0ZXN0X2RlbGVn
YXRlZF9lcShzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFRoZSByZXN1bHQgb2YgY29tcGFy
aXNvbiB1c2luZyA9PSBpcyBkZWxlZ2F0ZWQgdG8gdGhlIHJpZ2h0LWhhbmQKLSAgICAgICAgb3Bl
cmFuZCBpZiBpdCBpcyBvZiBhbiB1bnJlbGF0ZWQgdHlwZS4KKyAgICAgICAgVGhlIHJlc3VsdCBv
ZiBjb21wYXJpc29uIGlzIGRlbGVnYXRlZCB0byB0aGUgcmlnaHQtaGFuZCBvcGVyYW5kIGlmCisg
ICAgICAgIGl0IGlzIG9mIGFuIHVucmVsYXRlZCB0eXBlLgogICAgICAgICAiIiIKICAgICAgICAg
Y2xhc3MgRGVsZWdhdGUob2JqZWN0KToKICAgICAgICAgICAgIGRlZiBfX2VxX18oc2VsZiwgb3Ro
ZXIpOgogICAgICAgICAgICAgICAgIHJldHVybiBbc2VsZl0KIAotICAgICAgICBhID0gc2VsZi5h
bl9pbnN0YW5jZSgpCi0gICAgICAgIGIgPSBEZWxlZ2F0ZSgpCi0gICAgICAgIGFzc2VydCAoYSA9
PSBiKSA9PSBbYl0KLQotICAgIGRlZiB0ZXN0X2RlbGVnYXRlX25lKHNlbGYpOgotICAgICAgICAi
IiIKLSAgICAgICAgVGhlIHJlc3VsdCBvZiBjb21wYXJpc29uIHVzaW5nICE9IGlzIGRlbGVnYXRl
ZCB0byB0aGUgcmlnaHQtaGFuZAotICAgICAgICBvcGVyYW5kIGlmIGl0IGlzIG9mIGFuIHVucmVs
YXRlZCB0eXBlLgotICAgICAgICAiIiIKLSAgICAgICAgY2xhc3MgRGVsZWdhdGUob2JqZWN0KToK
ICAgICAgICAgICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgogICAgICAgICAgICAgICAgIHJl
dHVybiBbc2VsZl0KIAotICAgICAgICBhID0gc2VsZi5hbl9pbnN0YW5jZSgpCi0gICAgICAgIGIg
PSBEZWxlZ2F0ZSgpCi0gICAgICAgIGFzc2VydCAoYSAhPSBiKSA9PSBbYl0KKyAgICAgICAgZGVs
ZyA9IERlbGVnYXRlKCkKKyAgICAgICAgYXNzZXJ0IChzZXR0aW5ncyA9PSBkZWxnKSA9PSBbZGVs
Z10KKyAgICAgICAgYXNzZXJ0IChzZXR0aW5ncyAhPSBkZWxnKSA9PSBbZGVsZ10KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaDIvdGVzdC90ZXN0X3N0cmVhbV9yZXNldC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0
X3N0cmVhbV9yZXNldC5weQppbmRleCAwODg4NmU4ZTNlZDIzYzcxMDMzZTJlZjM1ZDJjYjUyYWYw
YTYxMGUxLi43Nzg0NDU1MTVmYTI0NDYzMWYwZTVkZmUzYmRiOWI5YzY4ODVlMTY0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9zdHJlYW1fcmVzZXQucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0
L3Rlc3Rfc3RyZWFtX3Jlc2V0LnB5CkBAIC03MCw4ICs3MCw4IEBAIGNsYXNzIFRlc3RTdHJlYW1S
ZXNldChvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvdGhlcl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnJhbWVfZmFjdG9yeSk6CiAgICAgICAgICIiIgotICAgICAgICBB
IHN0cmVhbSB0aGF0IGhhcyBiZWVuIHJlc2V0IHN0aWxsIGFmZmVjdHMgdGhlIGNvbm5lY3Rpb24g
ZmxvdyBjb250cm9sCi0gICAgICAgIHdpbmRvdy4KKyAgICAgICAgQSBzdHJlYW0gdGhhdCBoYXMg
YmVlbiByZXNldCBkb2VzIG5vdCBhZmZlY3QgdGhlIGNvbm5lY3Rpb24gZmxvdworICAgICAgICBj
b250cm9sIHdpbmRvdy4KICAgICAgICAgIiIiCiAgICAgICAgIGMgPSBoMi5jb25uZWN0aW9uLkgy
Q29ubmVjdGlvbigpCiAgICAgICAgIGMuaW5pdGlhdGVfY29ubmVjdGlvbigpCkBAIC04OSwxOSAr
ODksMTkgQEAgY2xhc3MgVGVzdFN0cmVhbVJlc2V0KG9iamVjdCk6CiAgICAgICAgIGMuY2xlYXJf
b3V0Ym91bmRfZGF0YV9idWZmZXIoKQogCiAgICAgICAgIGYgPSBmcmFtZV9mYWN0b3J5LmJ1aWxk
X2RhdGFfZnJhbWUoCi0gICAgICAgICAgICBkYXRhPWInc29tZSBkYXRhIScsCisgICAgICAgICAg
ICBkYXRhPWInc29tZSBkYXRhJywKICAgICAgICAgICAgIHN0cmVhbV9pZD1jbG9zZV9pZAogICAg
ICAgICApCi0gICAgICAgIGV2ZW50cyA9IGMucmVjZWl2ZV9kYXRhKGYuc2VyaWFsaXplKCkpCisg
ICAgICAgIGMucmVjZWl2ZV9kYXRhKGYuc2VyaWFsaXplKCkpCiAKLSAgICAgICAgcnN0X2ZyYW1l
ID0gZnJhbWVfZmFjdG9yeS5idWlsZF9yc3Rfc3RyZWFtX2ZyYW1lKAotICAgICAgICAgICAgY2xv
c2VfaWQsIGgyLmVycm9ycy5FcnJvckNvZGVzLlNUUkVBTV9DTE9TRUQKLSAgICAgICAgKQotICAg
ICAgICBhc3NlcnQgbm90IGV2ZW50cwotICAgICAgICBhc3NlcnQgYy5kYXRhX3RvX3NlbmQoKSA9
PSByc3RfZnJhbWUuc2VyaWFsaXplKCkKKyAgICAgICAgZXhwZWN0ZWQgPSBmcmFtZV9mYWN0b3J5
LmJ1aWxkX3JzdF9zdHJlYW1fZnJhbWUoCisgICAgICAgICAgICBzdHJlYW1faWQ9Y2xvc2VfaWQs
CisgICAgICAgICAgICBlcnJvcl9jb2RlPWgyLmVycm9ycy5FcnJvckNvZGVzLlNUUkVBTV9DTE9T
RUQsCisgICAgICAgICkuc2VyaWFsaXplKCkKKyAgICAgICAgYXNzZXJ0IGMuZGF0YV90b19zZW5k
KCkgPT0gZXhwZWN0ZWQKIAogICAgICAgICBuZXdfd2luZG93ID0gYy5yZW1vdGVfZmxvd19jb250
cm9sX3dpbmRvdyhzdHJlYW1faWQ9b3RoZXJfaWQpCi0gICAgICAgIGFzc2VydCBpbml0aWFsX3dp
bmRvdyAtIGxlbihiJ3NvbWUgZGF0YSEnKSA9PSBuZXdfd2luZG93CisgICAgICAgIGFzc2VydCBp
bml0aWFsX3dpbmRvdyAtIGxlbihiJ3NvbWUgZGF0YScpID09IG5ld193aW5kb3cKIAogICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgnY2xlYXJfc3RyZWFtcycsIFtUcnVlLCBGYWxzZV0pCiAg
ICAgZGVmIHRlc3RfcmVzZXRfc3RyZWFtX2F1dG9tYXRpY2FsbHlfcmVzZXRzX3B1c2hlZF9zdHJl
YW1zKHNlbGYsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF91dGlsaXR5X2Z1bmN0aW9u
cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3V0aWxpdHlfZnVuY3Rpb25zLnB5CmluZGV4IDYxZDUy
N2Y2ODhiYWE5NDIyOTI2OWQ0NDZkNDM2NWExN2NlZjE2MWUuLjRjYjBiMmFlNjA4NWFmYmYwYmZm
YzY3YTRlZGY3YjRmN2NiMDI4NWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3V0aWxp
dHlfZnVuY3Rpb25zLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3V0aWxpdHlfZnVuY3Rpb25z
LnB5CkBAIC0xMiw3ICsxMiw3IEBAIGltcG9ydCBoMi5jb25uZWN0aW9uCiBpbXBvcnQgaDIuZXJy
b3JzCiBpbXBvcnQgaDIuZXZlbnRzCiBpbXBvcnQgaDIuZXhjZXB0aW9ucwotZnJvbSBoMi51dGls
aXRpZXMgaW1wb3J0IGV4dHJhY3RfbWV0aG9kX2hlYWRlcgorZnJvbSBoMi51dGlsaXRpZXMgaW1w
b3J0IFNpemVMaW1pdERpY3QsIGV4dHJhY3RfbWV0aG9kX2hlYWRlcgogCiAjIFRoZXNlIHRlc3Rz
IHJlcXVpcmUgYSBub24tbGlzdC1yZXR1cm5pbmcgcmFuZ2UgZnVuY3Rpb24uCiB0cnk6CkBAIC0x
NzYsMyArMTc2LDUxIEBAIGNsYXNzIFRlc3RFeHRyYWN0SGVhZGVyKG9iamVjdCk6CiAgICAgKQog
ICAgIGRlZiB0ZXN0X2V4dHJhY3RfaGVhZGVyX21ldGhvZChzZWxmLCBoZWFkZXJzKToKICAgICAg
ICAgYXNzZXJ0IGV4dHJhY3RfbWV0aG9kX2hlYWRlcihoZWFkZXJzKSA9PSBiJ0dFVCcKKworCitk
ZWYgdGVzdF9zaXplX2xpbWl0X2RpY3RfbGltaXQoKToKKyAgICBkY3QgPSBTaXplTGltaXREaWN0
KHNpemVfbGltaXQ9MikKKworICAgIGRjdFsxXSA9IDEKKyAgICBkY3RbMl0gPSAyCisKKyAgICBh
c3NlcnQgbGVuKGRjdCkgPT0gMgorICAgIGFzc2VydCBkY3RbMV0gPT0gMQorICAgIGFzc2VydCBk
Y3RbMl0gPT0gMgorCisgICAgZGN0WzNdID0gMworCisgICAgYXNzZXJ0IGxlbihkY3QpID09IDIK
KyAgICBhc3NlcnQgZGN0WzJdID09IDIKKyAgICBhc3NlcnQgZGN0WzNdID09IDMKKyAgICBhc3Nl
cnQgMSBub3QgaW4gZGN0CisKKworZGVmIHRlc3Rfc2l6ZV9saW1pdF9kaWN0X2xpbWl0X2luaXQo
KToKKyAgICBpbml0aWFsX2RjdCA9IHsKKyAgICAgICAgMTogMSwKKyAgICAgICAgMjogMiwKKyAg
ICAgICAgMzogMywKKyAgICB9CisKKyAgICBkY3QgPSBTaXplTGltaXREaWN0KGluaXRpYWxfZGN0
LCBzaXplX2xpbWl0PTIpCisKKyAgICBhc3NlcnQgbGVuKGRjdCkgPT0gMgorCisKK2RlZiB0ZXN0
X3NpemVfbGltaXRfZGljdF9ub19saW1pdCgpOgorICAgIGRjdCA9IFNpemVMaW1pdERpY3Qoc2l6
ZV9saW1pdD1Ob25lKQorCisgICAgZGN0WzFdID0gMQorICAgIGRjdFsyXSA9IDIKKworICAgIGFz
c2VydCBsZW4oZGN0KSA9PSAyCisgICAgYXNzZXJ0IGRjdFsxXSA9PSAxCisgICAgYXNzZXJ0IGRj
dFsyXSA9PSAyCisKKyAgICBkY3RbM10gPSAzCisKKyAgICBhc3NlcnQgbGVuKGRjdCkgPT0gMwor
ICAgIGFzc2VydCBkY3RbMV0gPT0gMQorICAgIGFzc2VydCBkY3RbMl0gPT0gMgorICAgIGFzc2Vy
dCBkY3RbM10gPT0gMwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0X3JlcXVpcmVtZW50cy50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2gyL3Rlc3RfcmVxdWlyZW1lbnRzLnR4dAppbmRleCAzNWJjYmMyZjA5MWE4NzExOTg5
NWQxMTE0ZmY0Y2RjOGM4NTVmOThiLi5lMGVlZmEyOGFjZmI3ODhjNjMzMjE5YWE0YmVjYTMyNDcx
NWIxMDViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3RfcmVxdWlyZW1lbnRzLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL3Rlc3RfcmVxdWlyZW1lbnRzLnR4dApAQCAtMSw1ICsxLDUgQEAKLXB5dGVzdD09My4w
LjcKLXB5dGVzdC1jb3Y9PTIuNC4wCi1jb3ZlcmFnZT09NC4zLjQKLXB5dGVzdC14ZGlzdD09MS4x
NS4wCi1oeXBvdGhlc2lzPT0zLjcuMAorcHl0ZXN0PT00LjYuNSAgIyBycS5maWx0ZXI6IDwgNQor
cHl0ZXN0LWNvdj09Mi44LjEKK3B5dGVzdC14ZGlzdD09MS4zMS4wCitjb3ZlcmFnZT09NC41LjQK
K2h5cG90aGVzaXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdG94LmluaSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdG94Lmlu
aQppbmRleCBhM2Q2YzRhNzg1YjFjNTE5MzYyMDVkOTcwOTExZjY1MTE2MjYyY2I1Li45NzFmOWEw
N2U5M2M4YzM0YTFmOGQ5MzY2YWZmODNiYWM3MTMzYWZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rv
eC5pbmkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi90b3guaW5pCkBAIC0xLDM3ICsxLDI0IEBACiBbdG94XQotZW52
bGlzdCA9IHB5MjcsIHB5MzMsIHB5MzQsIHB5MzUsIHB5MzYsIHB5cHksIGxpbnQsIHBhY2thZ2lu
ZywgZG9jcworZW52bGlzdCA9IHB5MjcsIHB5MzQsIHB5MzUsIHB5MzYsIHB5MzcsIHB5MzgsIHB5
cHksIGxpbnQsIHBhY2thZ2luZywgZG9jcwogCiBbdGVzdGVudl0KIGRlcHM9IC1ye3RveGluaWRp
cn0vdGVzdF9yZXF1aXJlbWVudHMudHh0CiBjb21tYW5kcz0KLSAgICBjb3ZlcmFnZSBydW4gLW0g
cHkudGVzdCB7cG9zYXJnc30ge3RveGluaWRpcn0vdGVzdC8KKyAgICBjb3ZlcmFnZSBydW4gLW0g
cHkudGVzdCB7cG9zYXJnc30KICAgICBjb3ZlcmFnZSByZXBvcnQKIAogW3Rlc3RlbnY6cHlweV0K
ICMgdGVtcG9yYXJpbHkgZGlzYWJsZSBjb3ZlcmFnZSB0ZXN0aW5nIG9uIFB5UHkgZHVlIHRvIHBl
cmZvcm1hbmNlIHByb2JsZW1zCi1jb21tYW5kcz0gcHkudGVzdCB7cG9zYXJnc30ge3RveGluaWRp
cn0vdGVzdC8KLQotW3Rlc3RlbnY6cHkyNy10d2lzdGVkTWFzdGVyXQotIyBUaGlzIGlzIGEgdmFs
aWRhdGlvbiB0ZXN0IHRoYXQgY29uZmlybXMgdGhhdCBUd2lzdGVkJ3MgdGVzdCBjYXNlcyBoYXZl
bid0Ci0jIGJyb2tlbi4KLWRlcHMgPQotICAgICMgW3RscyxodHRwMl0gc3ludGF4IGRvZXNuJ3Qg
d29yayBoZXJlIHNvIHdlIGVudW1lcmF0ZSBhbGwgZGVwZW5kZW5jaWVzLgotICAgIGdpdCtodHRw
czovL2dpdGh1Yi5jb20vdHdpc3RlZC90d2lzdGVkCi0gICAgcHlvcGVuc3NsCi0gICAgc2Vydmlj
ZV9pZGVudGl0eQotICAgIGlkbmEKLSAgICBwcmlvcml0eQotICAgIHNwaGlueAotY29tbWFuZHMg
PSBweXRob24gLW0gdHdpc3RlZC50cmlhbCAtLXJlcG9ydGVyPXRleHQgdHdpc3RlZAorY29tbWFu
ZHM9IHB5LnRlc3Qge3Bvc2FyZ3N9CiAKIFt0ZXN0ZW52OmxpbnRdCi1iYXNlcHl0aG9uPXB5dGhv
bjMuNAotZGVwcyA9IGZsYWtlOD09My4zLjAKK2Jhc2VweXRob249cHl0aG9uMy43CitkZXBzID0g
Zmxha2U4PT0zLjcuOAogY29tbWFuZHMgPSBmbGFrZTggLS1tYXgtY29tcGxleGl0eSAxMCBoMiB0
ZXN0CiAKIFt0ZXN0ZW52OmRvY3NdCi1iYXNlcHl0aG9uPXB5dGhvbjMuNQotZGVwcyA9IHNwaGlu
eD09MS40LjkKK2Jhc2VweXRob249cHl0aG9uMy43CitkZXBzID0gc3BoaW54PT0yLjIuMAogY2hh
bmdlZGlyID0ge3RveGluaWRpcn0vZG9jcwogd2hpdGVsaXN0X2V4dGVybmFscyA9IHJtCiBjb21t
YW5kcyA9CkBAIC00MCwxNSArMjcsMjIgQEAgY29tbWFuZHMgPQogCiBbdGVzdGVudjpncmFwaHNd
CiBiYXNlcHl0aG9uPXB5dGhvbjIuNwotZGVwcyA9IGdyYXBodml6PT0wLjYKK2RlcHMgPSBncmFw
aHZpej09MC4xMwogY29tbWFuZHMgPQogICAgIHB5dGhvbiB2aXN1YWxpemVyL3Zpc3VhbGl6ZS5w
eSAtaSBkb2NzL3NvdXJjZS9fc3RhdGljCiAKIFt0ZXN0ZW52OnBhY2thZ2luZ10KLWJhc2VweXRo
b249cHl0aG9uMi43CitiYXNlcHl0aG9uPXB5dGhvbjMuNwogZGVwcyA9Ci0gICAgY2hlY2stbWFu
aWZlc3Q9PTAuMzUKLSAgICByZWFkbWVfcmVuZGVyZXI9PTE3LjIKKyAgICBjaGVjay1tYW5pZmVz
dD09MC4zOQorICAgIHJlYWRtZS1yZW5kZXJlcj09MjQuMAogY29tbWFuZHMgPQogICAgIGNoZWNr
LW1hbmlmZXN0CiAgICAgcHl0aG9uIHNldHVwLnB5IGNoZWNrIC0tbWV0YWRhdGEgLS1yZXN0cnVj
dHVyZWR0ZXh0IC0tc3RyaWN0CisKK1t0ZXN0ZW52Omgyc3BlY10KK2Jhc2VweXRob249cHl0aG9u
My42CitkZXBzID0gdHdpc3RlZFt0bHNdPT0xOS43LjAKK3doaXRlbGlzdF9leHRlcm5hbHMgPSB7
dG94aW5pZGlyfS90ZXN0L2gyc3BlY3Rlc3Quc2gKK2NvbW1hbmRzID0KKyAgICB7dG94aW5pZGly
fS90ZXN0L2gyc3BlY3Rlc3Quc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdXRpbHMvYmFja3BvcnQu
c2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL3V0aWxzL2JhY2twb3J0LnNoCmluZGV4IDNmNWQwNzY3OTk0NzQyMzI2ZjIw
ZjVhNmI1OGQ4NzQ2ZDViZDJhODEuLjI3M2MxNDc5YjI3YmRjOTVlOTliM2Q1OWM5YmU0NDk0ODNh
YTJiMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdXRpbHMvYmFja3BvcnQuc2gKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi91dGlscy9iYWNrcG9ydC5zaApAQCAtMTYsNiArMTYsNyBAQCBmaQogaWYgISBnaXQgcHVsbCAt
LWZmLW9ubHk7IHRoZW4KICAgICBlY2hvICJVbmFibGUgdG8gdXBkYXRlICRUQVJHRVRfQlJBTkNI
IgogICAgIGV4aXQgMgorZmkKIAogaWYgISBnaXQgY2hlY2tvdXQgLWIgIiRQUl9CUkFOQ0giOyB0
aGVuCiAgICAgZWNobyAiRmFpbGVkIHRvIG9wZW4gbmV3IGJyYW5jaCAkUFJfQlJBTkNIIgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL0hJU1RPUlkucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL0hJ
U1RPUlkucnN0CmluZGV4IDIyY2Q4N2ViMzQ1OGRkYjI3MDQyZGQ0ODhjZjM2NWVjZGJlOTAwMzMu
LjE3MmIyYjkxYmFmOWU5ZGY5NTUwMGEzZTY5YjQ4OTQ5ZmRkOTc1NDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXJmcmFtZS9ISVNUT1JZLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvSElTVE9SWS5y
c3QKQEAgLTQsNiArNCwxOCBAQCBSZWxlYXNlIEhpc3RvcnkKIDYuMC4wZGV2MAogLS0tLS0tLS0t
CiAKKzUuMi4wICgyMDE5LTAxLTE4KQorLS0tLS0tLS0tLS0tLS0tLS0tCisKKyoqQVBJIENoYW5n
ZXMgKEJhY2t3YXJkLWNvbXBhdGlibGUpKioKKworLSBBZGQgYSBuZXcgRU5BQkxFX0NPTk5FQ1Rf
UFJPVE9DT0wgc2V0dGluZ3MgcGFyYW10ZXIuCisKKyoqT3RoZXIgQ2hhbmdlcyoqCisKKy0gRml4
IGNvbGxlY3Rpb25zLmFiYyBkZXByZWNhdGlvbi4KKy0gRHJvcCBzdXBwb3J0IGZvciBQeXRob24g
My4zIGFuZCBzdXBwb3J0IDMuNy4KKwogNS4xLjAgKDIwMTctMDQtMjQpCiAtLS0tLS0tLS0tLS0t
LS0tLS0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL1BLRy1JTkZPIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBl
cmZyYW1lL1BLRy1JTkZPCmluZGV4IDM5M2MxZThkODZkMDQzNDg5YzIyMTAxMzIyNDFkOWZjY2U2
ZWE1NWMuLmNmZDUzZjdlOTM4MzZmMTNkNDQ3NWQzYmM0MGZhNTYzNDk1MjM4MWEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHlwZXJmcmFtZS9QS0ctSU5GTworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvUEtHLUlO
Rk8KQEAgLTEsOCArMSw4IEBACiBNZXRhZGF0YS1WZXJzaW9uOiAxLjEKIE5hbWU6IGh5cGVyZnJh
bWUKLVZlcnNpb246IDUuMS4wCitWZXJzaW9uOiA1LjIuMAogU3VtbWFyeTogSFRUUC8yIGZyYW1p
bmcgbGF5ZXIgZm9yIFB5dGhvbgotSG9tZS1wYWdlOiBodHRwOi8vaHlwZXIucnRmZC5vcmcKK0hv
bWUtcGFnZTogaHR0cHM6Ly9weXRob24taHlwZXIub3JnL2h5cGVyZnJhbWUvZW4vbGF0ZXN0Lwog
QXV0aG9yOiBDb3J5IEJlbmZpZWxkCiBBdXRob3ItZW1haWw6IGNvcnlAbHVrYXNhLmNvLnVrCiBM
aWNlbnNlOiBNSVQgTGljZW5zZQpAQCAtNTMsNiArNTMsMTggQEAgRGVzY3JpcHRpb246ID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgIDYuMC4wZGV2MAogICAg
ICAgICAtLS0tLS0tLS0KICAgICAgICAgCisgICAgICAgIDUuMi4wICgyMDE5LTAxLTE4KQorICAg
ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgICoqQVBJIENoYW5nZXMg
KEJhY2t3YXJkLWNvbXBhdGlibGUpKioKKyAgICAgICAgCisgICAgICAgIC0gQWRkIGEgbmV3IEVO
QUJMRV9DT05ORUNUX1BST1RPQ09MIHNldHRpbmdzIHBhcmFtdGVyLgorICAgICAgICAKKyAgICAg
ICAgKipPdGhlciBDaGFuZ2VzKioKKyAgICAgICAgCisgICAgICAgIC0gRml4IGNvbGxlY3Rpb25z
LmFiYyBkZXByZWNhdGlvbi4KKyAgICAgICAgLSBEcm9wIHN1cHBvcnQgZm9yIFB5dGhvbiAzLjMg
YW5kIHN1cHBvcnQgMy43LgorICAgICAgICAKICAgICAgICAgNS4xLjAgKDIwMTctMDQtMjQpCiAg
ICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAKQEAgLTIyMyw4ICsyMzUsOCBAQCBD
bGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24KIENsYXNzaWZpZXI6IFBy
b2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyCiBDbGFzc2lmaWVyOiBQcm9ncmFtbWlu
ZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43CiBDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5n
dWFnZSA6OiBQeXRob24gOjogMwotQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjog
UHl0aG9uIDo6IDMuMwogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9u
IDo6IDMuNAogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMu
NQogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNgorQ2xh
c3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNwogQ2xhc3NpZmll
cjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IENQ
eXRob24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lLmVnZy1pbmZvL1BL
Ry1JTkZPIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUuZWdnLWluZm8vUEtHLUlORk8KaW5k
ZXggMzkzYzFlOGQ4NmQwNDM0ODljMjIxMDEzMjI0MWQ5ZmNjZTZlYTU1Yy4uY2ZkNTNmN2U5Mzgz
NmYxM2Q0NDc1ZDNiYzQwZmE1NjM0OTUyMzgxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1l
L2h5cGVyZnJhbWUuZWdnLWluZm8vUEtHLUlORk8KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVy
ZnJhbWUuZWdnLWluZm8vUEtHLUlORk8KQEAgLTEsOCArMSw4IEBACiBNZXRhZGF0YS1WZXJzaW9u
OiAxLjEKIE5hbWU6IGh5cGVyZnJhbWUKLVZlcnNpb246IDUuMS4wCitWZXJzaW9uOiA1LjIuMAog
U3VtbWFyeTogSFRUUC8yIGZyYW1pbmcgbGF5ZXIgZm9yIFB5dGhvbgotSG9tZS1wYWdlOiBodHRw
Oi8vaHlwZXIucnRmZC5vcmcKK0hvbWUtcGFnZTogaHR0cHM6Ly9weXRob24taHlwZXIub3JnL2h5
cGVyZnJhbWUvZW4vbGF0ZXN0LwogQXV0aG9yOiBDb3J5IEJlbmZpZWxkCiBBdXRob3ItZW1haWw6
IGNvcnlAbHVrYXNhLmNvLnVrCiBMaWNlbnNlOiBNSVQgTGljZW5zZQpAQCAtNTMsNiArNTMsMTgg
QEAgRGVzY3JpcHRpb246ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAg
ICAgICAgIDYuMC4wZGV2MAogICAgICAgICAtLS0tLS0tLS0KICAgICAgICAgCisgICAgICAgIDUu
Mi4wICgyMDE5LTAxLTE4KQorICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisg
ICAgICAgICoqQVBJIENoYW5nZXMgKEJhY2t3YXJkLWNvbXBhdGlibGUpKioKKyAgICAgICAgCisg
ICAgICAgIC0gQWRkIGEgbmV3IEVOQUJMRV9DT05ORUNUX1BST1RPQ09MIHNldHRpbmdzIHBhcmFt
dGVyLgorICAgICAgICAKKyAgICAgICAgKipPdGhlciBDaGFuZ2VzKioKKyAgICAgICAgCisgICAg
ICAgIC0gRml4IGNvbGxlY3Rpb25zLmFiYyBkZXByZWNhdGlvbi4KKyAgICAgICAgLSBEcm9wIHN1
cHBvcnQgZm9yIFB5dGhvbiAzLjMgYW5kIHN1cHBvcnQgMy43LgorICAgICAgICAKICAgICAgICAg
NS4xLjAgKDIwMTctMDQtMjQpCiAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAK
QEAgLTIyMyw4ICsyMzUsOCBAQCBDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQ
eXRob24KIENsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyCiBD
bGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43CiBDbGFzc2lm
aWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMwotQ2xhc3NpZmllcjogUHJv
Z3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuMwogQ2xhc3NpZmllcjogUHJvZ3JhbW1p
bmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNAogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFu
Z3VhZ2UgOjogUHl0aG9uIDo6IDMuNQogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2Ug
OjogUHl0aG9uIDo6IDMuNgorQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0
aG9uIDo6IDMuNwogQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6
IEltcGxlbWVudGF0aW9uIDo6IENQeXRob24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9o
eXBlcmZyYW1lL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvX19pbml0
X18ucHkKaW5kZXggOGZkMWNkMzM4OGI1M2M3Yzk3MDY1MzViODMxMjAxNjUyMTk0N2RmMC4uNzYy
MGI0YmRmN2YxNDViZTlhOGQ2OTM1MzQ5OGEzY2NlYWM3YzkxYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlcmZyYW1lL2h5cGVyZnJhbWUvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5
cGVyZnJhbWUvX19pbml0X18ucHkKQEAgLTUsNCArNSw0IEBAIGh5cGVyZnJhbWUKIAogQSBtb2R1
bGUgZm9yIHByb3ZpZGluZyBhIHB1cmUtUHl0aG9uIEhUVFAvMiBmcmFtaW5nIGxheWVyLgogIiIi
Ci1fX3ZlcnNpb25fXyA9ICc1LjEuMCcKK19fdmVyc2lvbl9fID0gJzUuMi4wJwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvZmxhZ3MucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUv
aHlwZXJmcmFtZS9mbGFncy5weQppbmRleCAwNWIzNTAxN2U3MDJjZjBlMjU0OTczZTE0M2FkNTBj
YTllNmMxMjY1Li4xNjYwYmQxODAwYTI0NGY1ZGZmOGY0MmMxNjA1ODQ5MzVmZjZjNzFmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS9mbGFncy5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5
cGVyZnJhbWUvaHlwZXJmcmFtZS9mbGFncy5weQpAQCAtNywxMSArNywxNiBAQCBEZWZpbmVzIGJh
c2ljIEZsYWcgYW5kIEZsYWdzIGRhdGEgc3RydWN0dXJlcy4KICIiIgogaW1wb3J0IGNvbGxlY3Rp
b25zCiAKK3RyeToKKyAgICBmcm9tIGNvbGxlY3Rpb25zLmFiYyBpbXBvcnQgTXV0YWJsZVNldAor
ZXhjZXB0IEltcG9ydEVycm9yOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgIyBQeXRob24gMi43
IGNvbXBhdGliaWxpdHkKKyAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNdXRhYmxlU2V0CiAK
IEZsYWcgPSBjb2xsZWN0aW9ucy5uYW1lZHR1cGxlKCJGbGFnIiwgWyJuYW1lIiwgImJpdCJdKQog
CiAKLWNsYXNzIEZsYWdzKGNvbGxlY3Rpb25zLk11dGFibGVTZXQpOgorY2xhc3MgRmxhZ3MoTXV0
YWJsZVNldCk6CiAgICAgIiIiCiAgICAgQSBzaW1wbGUgTXV0YWJsZVNldCBpbXBsZW1lbnRhdGlv
biB0aGF0IHdpbGwgb25seSBhY2NlcHQga25vd24gZmxhZ3MgYXMKICAgICBlbGVtZW50cy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lL2ZyYW1lLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBl
cmZyYW1lL2h5cGVyZnJhbWUvZnJhbWUucHkKaW5kZXggNTI5NDc2OGEyODgwMzUyMTk1NTI5N2Q4
ZTUyZmEyOGQ5ZmZhMWI0Yi4uNzk1MDU3Mjc5YjU3ZTUwN2MxZGI2OTdkMzg0MjIyNjdkYjg4NGEw
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvZnJhbWUucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvZnJhbWUucHkKQEAgLTM5NSw2ICszOTUsOCBAQCBj
bGFzcyBTZXR0aW5nc0ZyYW1lKEZyYW1lKToKICAgICBNQVhfRlJBTUVfU0laRSA9IDB4MDUKICAg
ICAjOiBUaGUgYnl0ZSB0aGF0IHNpZ25hbHMgdGhlIFNFVFRJTkdTX01BWF9IRUFERVJfTElTVF9T
SVpFIHNldHRpbmcuCiAgICAgTUFYX0hFQURFUl9MSVNUX1NJWkUgPSAweDA2CisgICAgIzogVGhl
IGJ5dGUgdGhhdCBzaWduYWxzIFNFVFRJTkdTX0VOQUJMRV9DT05ORUNUX1BST1RPQ09MIHNldHRp
bmcuCisgICAgRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0wgPSAweDA4CiAKICAgICBkZWYgX19pbml0
X18oc2VsZiwgc3RyZWFtX2lkPTAsIHNldHRpbmdzPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAg
c3VwZXIoU2V0dGluZ3NGcmFtZSwgc2VsZikuX19pbml0X18oc3RyZWFtX2lkLCAqKmt3YXJncykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9zZXR1cC5jZmcgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUv
c2V0dXAuY2ZnCmluZGV4IDFlM2ViMzY3YzExNjFjMzEwZmFhM2I0NmIzYWViNzAwZWFlMzdjY2Eu
LjUwMjIwZTEzNWJjNGNjMGViMGYxZGJkNjkxNDQxZDI4MDA3NTIwNGIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXJmcmFtZS9zZXR1cC5jZmcKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3NldHVwLmNmZwpA
QCAtMSw2ICsxLDkgQEAKIFt3aGVlbF0KIHVuaXZlcnNhbCA9IDEKIAorW3Rvb2w6cHl0ZXN0XQor
dGVzdHBhdGhzID0gdGVzdAorCiBbZWdnX2luZm9dCiB0YWdfYnVpbGQgPSAKIHRhZ19kYXRlID0g
MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1l
L3NldHVwLnB5CmluZGV4IDhmMTNjMjYzOWY1MWU0NjdiZDkxMzc2YmZlNGNiMjc1NzRhMGQyYjku
LjFhYjcyMTIxNDE2MzBlZDQxMzk2ZWJlZTQzY2IzYzIwNTI5MTgxZjIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXJmcmFtZS9zZXR1cC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvc2V0dXAucHkKQEAg
LTM2LDcgKzM2LDcgQEAgc2V0dXAoCiAgICAgbG9uZ19kZXNjcmlwdGlvbj1vcGVuKCdSRUFETUUu
cnN0JykucmVhZCgpICsgJ1xuXG4nICsgb3BlbignSElTVE9SWS5yc3QnKS5yZWFkKCksCiAgICAg
YXV0aG9yPSdDb3J5IEJlbmZpZWxkJywKICAgICBhdXRob3JfZW1haWw9J2NvcnlAbHVrYXNhLmNv
LnVrJywKLSAgICB1cmw9J2h0dHA6Ly9oeXBlci5ydGZkLm9yZycsCisgICAgdXJsPSdodHRwczov
L3B5dGhvbi1oeXBlci5vcmcvaHlwZXJmcmFtZS9lbi9sYXRlc3QvJywKICAgICBwYWNrYWdlcz1w
YWNrYWdlcywKICAgICBwYWNrYWdlX2RhdGE9eycnOiBbJ0xJQ0VOU0UnLCAnUkVBRE1FLnJzdCcs
ICdDT05UUklCVVRPUlMucnN0JywgJ0hJU1RPUlkucnN0J119LAogICAgIHBhY2thZ2VfZGlyPXsn
aHlwZXJmcmFtZSc6ICdoeXBlcmZyYW1lJ30sCkBAIC01MCwxMCArNTAsMTAgQEAgc2V0dXAoCiAg
ICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMicsCiAgICAgICAgICdQ
cm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43JywKICAgICAgICAgJ1Byb2dyYW1t
aW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzJywKLSAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1
YWdlIDo6IFB5dGhvbiA6OiAzLjMnLAogICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjog
UHl0aG9uIDo6IDMuNCcsCiAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24g
OjogMy41JywKICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjYn
LAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNycsCiAgICAg
ICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjog
Q1B5dGhvbicsCiAgICAgXSwKICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS90ZXN0L3Rl
c3RfZnJhbWVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3Rlc3QvdGVzdF9mcmFtZXMucHkKaW5kZXgg
OTQ4MzQ5YTkxZTdlZWNmN2VjYTFkYjRkYTNhMGVkY2E0ODcyMDFlZC4uYWJmZWNiNjkyZGMzM2Ez
NTFiMWViNjNhOGMwM2E4ZWY5NDYzY2UzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3Rl
c3QvdGVzdF9mcmFtZXMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3Rlc3QvdGVzdF9mcmFtZXMu
cHkKQEAgLTU2LDI5ICs1NiwyOSBAQCBjbGFzcyBUZXN0R2VuZXJhbEZyYW1lQmVoYXZpb3VyKG9i
amVjdCk6CiAgICAgICAgIGFzc2VydCBmLnN0cmVhbV9pZCA9PSAwCiAKICAgICBkZWYgdGVzdF9w
YXJzZV9mcmFtZV9oZWFkZXJfdW5rbm93bl90eXBlKHNlbGYpOgotICAgICAgICBmLCBsID0gRnJh
bWUucGFyc2VfZnJhbWVfaGVhZGVyKAorICAgICAgICBmcmFtZSwgbGVuZ3RoID0gRnJhbWUucGFy
c2VfZnJhbWVfaGVhZGVyKAogICAgICAgICAgICAgYidceDAwXHgwMFx4NTlceEZGXHgwMFx4MDBc
eDAwXHgwMFx4MDEnCiAgICAgICAgICkKLSAgICAgICAgYXNzZXJ0IGYudHlwZSA9PSAweEZGCi0g
ICAgICAgIGFzc2VydCBsID09IDB4NTkKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZiwgRXh0
ZW5zaW9uRnJhbWUpCi0gICAgICAgIGFzc2VydCBmLnN0cmVhbV9pZCA9PSAxCisgICAgICAgIGFz
c2VydCBmcmFtZS50eXBlID09IDB4RkYKKyAgICAgICAgYXNzZXJ0IGxlbmd0aCA9PSAweDU5Cisg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGZyYW1lLCBFeHRlbnNpb25GcmFtZSkKKyAgICAgICAg
YXNzZXJ0IGZyYW1lLnN0cmVhbV9pZCA9PSAxCiAKICAgICBkZWYgdGVzdF9mbGFnc19hcmVfcGVy
c2lzdGVkKHNlbGYpOgotICAgICAgICBmLCBsID0gRnJhbWUucGFyc2VfZnJhbWVfaGVhZGVyKAor
ICAgICAgICBmcmFtZSwgbGVuZ3RoID0gRnJhbWUucGFyc2VfZnJhbWVfaGVhZGVyKAogICAgICAg
ICAgICAgYidceDAwXHgwMFx4NTlceEZGXHgwOVx4MDBceDAwXHgwMFx4MDEnCiAgICAgICAgICkK
LSAgICAgICAgYXNzZXJ0IGYudHlwZSA9PSAweEZGCi0gICAgICAgIGFzc2VydCBsID09IDB4NTkK
LSAgICAgICAgYXNzZXJ0IGYuZmxhZ19ieXRlID09IDB4MDkKKyAgICAgICAgYXNzZXJ0IGZyYW1l
LnR5cGUgPT0gMHhGRgorICAgICAgICBhc3NlcnQgbGVuZ3RoID09IDB4NTkKKyAgICAgICAgYXNz
ZXJ0IGZyYW1lLmZsYWdfYnl0ZSA9PSAweDA5CiAKICAgICBkZWYgdGVzdF9wYXJzZV9ib2R5X3Vu
a25vd25fdHlwZShzZWxmKToKLSAgICAgICAgZiA9IGRlY29kZV9mcmFtZSgKKyAgICAgICAgZnJh
bWUgPSBkZWNvZGVfZnJhbWUoCiAgICAgICAgICAgICBiJ1x4MDBceDAwXHgwQ1x4RkZceDAwXHgw
MFx4MDBceDAwXHgwMWhlbGxvIHdvcmxkIScKICAgICAgICAgKQotICAgICAgICBhc3NlcnQgZi5i
b2R5ID09IGInaGVsbG8gd29ybGQhJwotICAgICAgICBhc3NlcnQgZi5ib2R5X2xlbiA9PSAxMgot
ICAgICAgICBhc3NlcnQgZi5zdHJlYW1faWQgPT0gMQorICAgICAgICBhc3NlcnQgZnJhbWUuYm9k
eSA9PSBiJ2hlbGxvIHdvcmxkIScKKyAgICAgICAgYXNzZXJ0IGZyYW1lLmJvZHlfbGVuID09IDEy
CisgICAgICAgIGFzc2VydCBmcmFtZS5zdHJlYW1faWQgPT0gMQogCiAgICAgZGVmIHRlc3RfY2Fu
X3JvdW5kX3RyaXBfdW5rbm93bl9mcmFtZXMoc2VsZik6CiAgICAgICAgIGZyYW1lX2RhdGEgPSBi
J1x4MDBceDAwXHgwQ1x4RkZceDAwXHgwMFx4MDBceDAwXHgwMWhlbGxvIHdvcmxkIScKQEAgLTMw
NiwxMyArMzA2LDE0IEBAIGNsYXNzIFRlc3RSc3RTdHJlYW1GcmFtZShvYmplY3QpOgogCiBjbGFz
cyBUZXN0U2V0dGluZ3NGcmFtZShvYmplY3QpOgogICAgIHNlcmlhbGl6ZWQgPSAoCi0gICAgICAg
IGInXHgwMFx4MDBceDI0XHgwNFx4MDFceDAwXHgwMFx4MDBceDAwJyArICAjIEZyYW1lIGhlYWRl
cgorICAgICAgICBiJ1x4MDBceDAwXHgyQVx4MDRceDAxXHgwMFx4MDBceDAwXHgwMCcgKyAgIyBG
cmFtZSBoZWFkZXIKICAgICAgICAgYidceDAwXHgwMVx4MDBceDAwXHgxMFx4MDAnICsgICAgICAg
ICAgICAgICMgSEVBREVSX1RBQkxFX1NJWkUKICAgICAgICAgYidceDAwXHgwMlx4MDBceDAwXHgw
MFx4MDAnICsgICAgICAgICAgICAgICMgRU5BQkxFX1BVU0gKICAgICAgICAgYidceDAwXHgwM1x4
MDBceDAwXHgwMFx4NjQnICsgICAgICAgICAgICAgICMgTUFYX0NPTkNVUlJFTlRfU1RSRUFNUwog
ICAgICAgICBiJ1x4MDBceDA0XHgwMFx4MDBceEZGXHhGRicgKyAgICAgICAgICAgICAgIyBJTklU
SUFMX1dJTkRPV19TSVpFCiAgICAgICAgIGInXHgwMFx4MDVceDAwXHgwMFx4NDBceDAwJyArICAg
ICAgICAgICAgICAjIE1BWF9GUkFNRV9TSVpFCi0gICAgICAgIGInXHgwMFx4MDZceDAwXHgwMFx4
RkZceEZGJyAgICAgICAgICAgICAgICAjIE1BWF9IRUFERVJfTElTVF9TSVpFCisgICAgICAgIGIn
XHgwMFx4MDZceDAwXHgwMFx4RkZceEZGJyArICAgICAgICAgICAgICAjIE1BWF9IRUFERVJfTElT
VF9TSVpFCisgICAgICAgIGInXHgwMFx4MDhceDAwXHgwMFx4MDBceDAxJyAgICAgICAgICAgICAg
ICAjIEVOQUJMRV9DT05ORUNUX1BST1RPQ09MCiAgICAgKQogCiAgICAgc2V0dGluZ3MgPSB7CkBA
IC0zMjIsNiArMzIzLDcgQEAgY2xhc3MgVGVzdFNldHRpbmdzRnJhbWUob2JqZWN0KToKICAgICAg
ICAgU2V0dGluZ3NGcmFtZS5JTklUSUFMX1dJTkRPV19TSVpFOiA2NTUzNSwKICAgICAgICAgU2V0
dGluZ3NGcmFtZS5NQVhfRlJBTUVfU0laRTogMTYzODQsCiAgICAgICAgIFNldHRpbmdzRnJhbWUu
TUFYX0hFQURFUl9MSVNUX1NJWkU6IDY1NTM1LAorICAgICAgICBTZXR0aW5nc0ZyYW1lLkVOQUJM
RV9DT05ORUNUX1BST1RPQ09MOiAxLAogICAgIH0KIAogICAgIGRlZiB0ZXN0X3NldHRpbmdzX2Zy
YW1lX2hhc19vbmx5X29uZV9mbGFnKHNlbGYpOgpAQCAtMzU5LDcgKzM2MSw3IEBAIGNsYXNzIFRl
c3RTZXR0aW5nc0ZyYW1lKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGYsIFNl
dHRpbmdzRnJhbWUpCiAgICAgICAgIGFzc2VydCBmLmZsYWdzID09IHNldChbJ0FDSyddKQogICAg
ICAgICBhc3NlcnQgZi5zZXR0aW5ncyA9PSBzZWxmLnNldHRpbmdzCi0gICAgICAgIGFzc2VydCBm
LmJvZHlfbGVuID09IDM2CisgICAgICAgIGFzc2VydCBmLmJvZHlfbGVuID09IDQyCiAKICAgICBk
ZWYgdGVzdF9zZXR0aW5nc19mcmFtZXNfbmV2ZXJfaGF2ZV9zdHJlYW1zKHNlbGYpOgogICAgICAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CkBAIC01MTksNiArNTIxLDE5IEBAIGNs
YXNzIFRlc3RHb0F3YXlGcmFtZShvYmplY3QpOgogICAgICAgICBhc3NlcnQgZi5hZGRpdGlvbmFs
X2RhdGEgPT0gYidoZWxsbycKICAgICAgICAgYXNzZXJ0IGYuYm9keV9sZW4gPT0gMTMKIAorICAg
ICAgICBzID0gKAorICAgICAgICAgICAgYidceDAwXHgwMFx4MDhceDA3XHgwMFx4MDBceDAwXHgw
MFx4MDAnICsgICMgRnJhbWUgaGVhZGVyCisgICAgICAgICAgICBiJ1x4MDBceDAwXHgwMFx4NDAn
ICsgICAgICAgICAgICAgICAgICAgICAgIyBMYXN0IFN0cmVhbSBJRAorICAgICAgICAgICAgYidc
eDAwXHgwMFx4MDBceDIwJyArICAgICAgICAgICAgICAgICAgICAgICMgRXJyb3IgQ29kZQorICAg
ICAgICAgICAgYicnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWRk
aXRpb25hbCBkYXRhCisgICAgICAgICkKKyAgICAgICAgZiA9IGRlY29kZV9mcmFtZShzKQorCisg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGYsIEdvQXdheUZyYW1lKQorICAgICAgICBhc3NlcnQg
Zi5mbGFncyA9PSBzZXQoKQorICAgICAgICBhc3NlcnQgZi5hZGRpdGlvbmFsX2RhdGEgPT0gYicn
CisgICAgICAgIGFzc2VydCBmLmJvZHlfbGVuID09IDgKKwogICAgIGRlZiB0ZXN0X2dvYXdheV9m
cmFtZV9uZXZlcl9oYXNfYV9zdHJlYW0oc2VsZik6CiAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhWYWx1ZUVycm9yKToKICAgICAgICAgICAgIEdvQXdheUZyYW1lKHN0cmVhbV9pZD0xKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvLmdpdGh1Yi93b3JrZmxvd3MvbWFpbi55
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS8uZ2l0aHViL3dvcmtmbG93cy9tYWluLnltbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNTYzMjBmZDAwMDNkNTYxM2QxMWE4YzUzYTg1YTE2OGNmMDUwYWJjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvLmdpdGh1Yi93b3JrZmxvd3Mv
bWFpbi55bWwKQEAgLTAsMCArMSwxMjYgQEAKK25hbWU6IEF1dG9tYXRlZCBUZXN0cworCitvbjog
W3B1c2gsIHB1bGxfcmVxdWVzdF0KKworam9iczoKKyAgdGVzdDoKKyAgICBzdHJhdGVneToKKyAg
ICAgIG1hdHJpeDoKKyAgICAgICAgcHl0aG9uOiBbMi43LCAzLjUsIDMuNiwgMy43LCAzLjgsIDMu
OV0KKyAgICAgICAgcGxhdGZvcm06IFt1YnVudHUtbGF0ZXN0LCBtYWNvcy1sYXRlc3QsIHdpbmRv
d3MtbGF0ZXN0XQorICAgIHJ1bnMtb246ICR7eyBtYXRyaXgucGxhdGZvcm0gfX0KKyAgICBzdGVw
czoKKyAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2MgorICAgICAgLSBuYW1lOiBTZXR1
cCBQeXRob24KKyAgICAgICAgdXNlczogYWN0aW9ucy9zZXR1cC1weXRob25AdjIKKyAgICAgICAg
d2l0aDoKKyAgICAgICAgICBweXRob24tdmVyc2lvbjogJHt7IG1hdHJpeC5weXRob24gfX0KKyAg
ICAgIC0gbmFtZTogSW5zdGFsbCB0b3gKKyAgICAgICAgcnVuOiB8CisgICAgICAgICAgcHl0aG9u
IC1tIHBpcCBpbnN0YWxsIHRveAorICAgICAgLSBuYW1lOiBSdW4gdGVzdHMKKyAgICAgICAgcnVu
OiB0b3gKKyAgICAgICAgZW52OgorICAgICAgICAgIFRPWEVOVjogcHl0aG9uCisKKyAgcWE6Cisg
ICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAorICAgIHN0ZXBzOgorICAgICAgLSB1c2VzOiBhY3Rp
b25zL2NoZWNrb3V0QHYyCisgICAgICAtIG5hbWU6IFNldHVwIFB5dGhvbgorICAgICAgICB1c2Vz
OiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2MgorICAgICAgICB3aXRoOgorICAgICAgICAgIHB5dGhv
bi12ZXJzaW9uOiAzLjkKKyAgICAgIC0gbmFtZTogSW5zdGFsbCB0b3gKKyAgICAgICAgcnVuOiB8
CisgICAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIHRveAorICAgICAgLSBuYW1lOiBSdW4g
Y2hlY2tzCisgICAgICAgIHJ1bjogdG94CisgICAgICAgIGVudjoKKyAgICAgICAgICBUT1hFTlY6
IHFhCisKKyAgY292ZXJhZ2U6CisgICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAorICAgIHN0ZXBz
OgorICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYyCisgICAgICAtIG5hbWU6IFNldHVw
IFB5dGhvbgorICAgICAgICB1c2VzOiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2MgorICAgICAgICB3
aXRoOgorICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAzLjkKKyAgICAgIC0gbmFtZTogSW5zdGFs
bCB0b3gKKyAgICAgICAgcnVuOiB8CisgICAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIHRv
eAorICAgICAgLSBuYW1lOiBFdmFsdWF0ZSBjb3ZlcmFnZQorICAgICAgICBydW46IHRveAorICAg
ICAgICBlbnY6CisgICAgICAgICAgVE9YRU5WOiBjb3YKKworICBiZW5jaG1hcms6CisgICAgcnVu
cy1vbjogdWJ1bnR1LWxhdGVzdAorICAgIHN0ZXBzOgorICAgICAgLSB1c2VzOiBhY3Rpb25zL2No
ZWNrb3V0QHYyCisgICAgICAtIG5hbWU6IFNldHVwIFB5dGhvbgorICAgICAgICB1c2VzOiBhY3Rp
b25zL3NldHVwLXB5dGhvbkB2MgorICAgICAgICB3aXRoOgorICAgICAgICAgIHB5dGhvbi12ZXJz
aW9uOiAzLjkKKyAgICAgIC0gbmFtZTogSW5zdGFsbCB0b3gKKyAgICAgICAgcnVuOiB8CisgICAg
ICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIHRveAorICAgICAgLSBuYW1lOiBSdW4gYmVuY2ht
YXJrcworICAgICAgICBydW46IHRveAorICAgICAgICBlbnY6CisgICAgICAgICAgVE9YRU5WOiBw
ZXJmCisKKyAgZGlmZmNvdjoKKyAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CisgICAgc3RlcHM6
CisgICAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKKyAgICAgICAgd2l0aDoKKyAgICAg
ICAgICBmZXRjaC1kZXB0aDogMAorICAgICAgLSBuYW1lOiBTZXR1cCBQeXRob24KKyAgICAgICAg
dXNlczogYWN0aW9ucy9zZXR1cC1weXRob25AdjIKKyAgICAgICAgd2l0aDoKKyAgICAgICAgICBw
eXRob24tdmVyc2lvbjogMy45CisgICAgICAtIG5hbWU6IEluc3RhbGwgdG94CisgICAgICAgIHJ1
bjogfAorICAgICAgICAgIHB5dGhvbiAtbSBwaXAgaW5zdGFsbCB0b3gKKyAgICAgIC0gbmFtZTog
RXZhbHVhdGUgY292ZXJhZ2UKKyAgICAgICAgcnVuOiB0b3gKKyAgICAgICAgZW52OgorICAgICAg
ICAgIFRPWEVOVjogZGlmZmNvdgorCisgIGRvY3M6CisgICAgcnVucy1vbjogdWJ1bnR1LWxhdGVz
dAorICAgIHN0ZXBzOgorICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYyCisgICAgICAt
IG5hbWU6IFNldHVwIFB5dGhvbgorICAgICAgICB1c2VzOiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2
MgorICAgICAgICB3aXRoOgorICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAzLjkKKyAgICAgIC0g
bmFtZTogSW5zdGFsbCB0b3gKKyAgICAgICAgcnVuOiB8CisgICAgICAgICAgcHl0aG9uIC1tIHBp
cCBpbnN0YWxsIHRveAorICAgICAgLSBuYW1lOiBCdWlsZCBkb2NzCisgICAgICAgIHJ1bjogdG94
CisgICAgICAgIGVudjoKKyAgICAgICAgICBUT1hFTlY6IGRvY3MKKworICByZWxlYXNlOgorICAg
IG5lZWRzOiB0ZXN0CisgICAgaWY6IGdpdGh1Yi5ldmVudF9uYW1lID09ICdwdXNoJyAmJiBjb250
YWlucyhnaXRodWIucmVmLCAncmVmcy90YWdzLycpCisgICAgcnVucy1vbjogdWJ1bnR1LWxhdGVz
dAorCisgICAgc3RlcHM6CisgICAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKKyAgICAg
IC0gbmFtZTogU2V0dXAgUHl0aG9uCisgICAgICAgIHVzZXM6IGFjdGlvbnMvc2V0dXAtcHl0aG9u
QHYyCisgICAgICAgIHdpdGg6CisgICAgICAgICAgcHl0aG9uLXZlcnNpb246IDMuOQorICAgICAg
LSBuYW1lOiBJbnN0YWxsIHRveAorICAgICAgICBydW46IHwKKyAgICAgICAgICBweXRob24gLW0g
cGlwIGluc3RhbGwgdG94CisgICAgICAtIG5hbWU6IFJlbGVhc2UKKyAgICAgICAgcnVuOiB0b3gg
LWUgcmVsZWFzZQorICAgICAgICBlbnY6CisgICAgICAgICAgVFdJTkVfUEFTU1dPUkQ6ICR7eyBz
ZWNyZXRzLlBZUElfVE9LRU4gfX0KKyAgICAgICAgICBHSVRIVUJfVE9LRU46ICR7eyBzZWNyZXRz
LkdJVEhVQl9UT0tFTiB9fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvLmdp
dGh1Yi93b3JrZmxvd3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS8u
Z2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDVjNDAxNjM1ZWRj
NTM2ODFmZjQ1NGFmMmU1ZWI5NTAyNGQ0MGZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvLmdpdGh1Yi93b3JrZmxvd3MvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCAr
MSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvLmdpdGh1Yi93b3JrZmxv
d3MvbWFpbi55bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL0xJQ0VOU0Ug
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlN2UwOTJiMGIw
NTBkYTczODViMWE1ZjE2NzBmNGMxMzRjZmExNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS9MSUNFTlNFCkBAIC0wLDAgKzEsMTMgQEAKK0NvcHlyaWdodCAyMDE3
LTIwMTkgSmFzb24gUi4gQ29vbWJzLCBCYXJyeSBXYXJzYXcKKworTGljZW5zZWQgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Cit5b3UgbWF5IG5v
dCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCitZ
b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKK1VubGVzcyByZXF1aXJlZCBieSBhcHBsaWNh
YmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKK2Rpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCitXSVRI
T1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IgaW1wbGllZC4KK1NlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdv
dmVybmluZyBwZXJtaXNzaW9ucyBhbmQKK2xpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvTUFOSUZFU1QuaW4gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS9NQU5JRkVTVC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmNmNmQ2MzNhZGEyZTYw
OGZhNWY0ZjZmNmI1NzFmM2RlNDEwYWI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvTUFOSUZFU1QuaW4KQEAgLTAsMCArMSw1IEBACitpbmNsdWRlICoucHkgTUFO
SUZFU1QuaW4gTElDRU5TRSBSRUFETUUucnN0CitnbG9iYWwtaW5jbHVkZSAqLnR4dCAqLnJzdCAq
LmluaSAqLmNmZyAqLnRvbWwgKi53aGwgKi5lZ2cKK2V4Y2x1ZGUgLmdpdGlnbm9yZQorcHJ1bmUg
YnVpbGQKK3BydW5lIC50b3gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL1JF
QURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9SRUFETUUucnN0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU2NTVkOWFiOTg3NmIyZDVhMzlmYjI0N2U0MmVhOGExNTkyODgxZDIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9SRUFETUUucnN0CkBAIC0wLDAgKzEsNDIgQEAK
Kz09PT09PT09PT09PT09PT09PT09PT09PT0KKyBgYGltcG9ydGxpYl9tZXRhZGF0YWBgCis9PT09
PT09PT09PT09PT09PT09PT09PT09CisKK2BgaW1wb3J0bGliX21ldGFkYXRhYGAgaXMgYSBsaWJy
YXJ5IHRvIGFjY2VzcyB0aGUgbWV0YWRhdGEgZm9yIGEKK1B5dGhvbiBwYWNrYWdlLgorCitBcyBv
ZiBQeXRob24gMy44LCB0aGlzIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gYWRkZWQgdG8gdGhlCitg
UHl0aG9uIHN0YW5kYXJkIGxpYnJhcnkKKzxodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJh
cnkvaW1wb3J0bGliLm1ldGFkYXRhLmh0bWw+YF8uCitUaGlzIHBhY2thZ2Ugc3VwcGxpZXMgYmFj
a3BvcnRzIG9mIHRoYXQgZnVuY3Rpb25hbGl0eSBpbmNsdWRpbmcKK2ltcHJvdmVtZW50cyBhZGRl
ZCB0byBzdWJzZXF1ZW50IFB5dGhvbiB2ZXJzaW9ucy4KKworCitVc2FnZQorPT09PT0KKworU2Vl
IHRoZSBgb25saW5lIGRvY3VtZW50YXRpb24gPGh0dHBzOi8vaW1wb3J0bGliX21ldGFkYXRhLnJl
YWR0aGVkb2NzLmlvLz5gXworZm9yIHVzYWdlIGRldGFpbHMuCisKK2BGaW5kZXIgYXV0aG9ycwor
PGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvcmVmZXJlbmNlL2ltcG9ydC5odG1sI2ZpbmRlcnMt
YW5kLWxvYWRlcnM+YF8gY2FuCithbHNvIGFkZCBzdXBwb3J0IGZvciBjdXN0b20gcGFja2FnZSBp
bnN0YWxsZXJzLiAgU2VlIHRoZSBhYm92ZSBkb2N1bWVudGF0aW9uCitmb3IgZGV0YWlscy4KKwor
CitDYXZlYXRzCis9PT09PT09CisKK1RoaXMgcHJvamVjdCBwcmltYXJpbHkgc3VwcG9ydHMgdGhp
cmQtcGFydHkgcGFja2FnZXMgaW5zdGFsbGVkIGJ5IFB5UEEKK3Rvb2xzIChvciBvdGhlciBjb25m
b3JtaW5nIHBhY2thZ2VzKS4gSXQgZG9lcyBub3Qgc3VwcG9ydDoKKworLSBQYWNrYWdlcyBpbiB0
aGUgc3RkbGliLgorLSBQYWNrYWdlcyBpbnN0YWxsZWQgd2l0aG91dCBtZXRhZGF0YS4KKworUHJv
amVjdCBkZXRhaWxzCis9PT09PT09PT09PT09PT0KKworICogUHJvamVjdCBob21lOiBodHRwczov
L2dpdGh1Yi5jb20vcHl0aG9uL2ltcG9ydGxpYl9tZXRhZGF0YQorICogUmVwb3J0IGJ1Z3MgYXQ6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vaW1wb3J0bGliX21ldGFkYXRhL2lzc3VlcworICog
Q29kZSBob3N0aW5nOiBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uL2ltcG9ydGxpYl9tZXRhZGF0
YQorICogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9pbXBvcnRsaWJfbWV0YWRhdGEucmVhZHRoZWRv
Y3MuaW8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9jb2RlY292LnltbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2NvZGVjb3YueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2YzdmNGJk
MTkwOWM5YmUyZTRmZmU1OGM5MTM4ZDNmZTJiYzYyOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2ltcG9ydGxpYl9tZXRhZGF0YS9jb2RlY292LnltbApAQCAtMCwwICsxLDIgQEAKK2NvZGVjb3Y6
CisgIHRva2VuOiA1ZWIxYmM0NS0xYjdmLTQzZTYtOGJjMS1mMmIwMjgzM2RiYTkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2NvdmVyYWdlLmluaSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGli
X21ldGFkYXRhL2NvdmVyYWdlLmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGQzMTAyZjQyNTYxODg2YjJlYjRi
OTZlZTFjYmQwMjhlZWZlMGZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0
YWRhdGEvY292ZXJhZ2UuaW5pCkBAIC0wLDAgKzEsMjQgQEAKK1tydW5dCiticmFuY2ggPSB0cnVl
CitwYXJhbGxlbCA9IHRydWUKK29taXQgPQorICAgICBzZXR1cCoKKyAgICAudG94LyovbGliL3B5
dGhvbioKKyAgICAqL3Rlc3RzLyoucHkKKyAgICAqL3Rlc3RpbmcvKi5weQorICAgIC91c3IvbG9j
YWwvKgorICAgICovbW9kLnB5CitwbHVnaW5zID0KKyAgICAgY292ZXJwbHVnCisKK1tyZXBvcnRd
CitleGNsdWRlX2xpbmVzID0KKyAgICBwcmFnbWE6IG5vY292ZXIKKyAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yCisgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IKKyAgICBhc3NlcnRccworICAg
IG5vY292ZXJweSR7UFlWfQorCitbcGF0aHNdCitzb3VyY2UgPQorICAgIGltcG9ydGxpYl9tZXRh
ZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvY292ZXJwbHVnLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvY292ZXJwbHVnLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiMGM3Y2I1
NDkwYmJiMGQ4NGMxYTQxNTI1M2E5NDQ0MzNiM2M1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2ltcG9ydGxpYl9tZXRhZGF0YS9jb3ZlcnBsdWcucHkKQEAgLTAsMCArMSwyMSBAQAorIiIiQ292
ZXJhZ2UgcGx1Z2luIHRvIGFkZCBleGNsdWRlIGxpbmVzIGJhc2VkIG9uIHRoZSBQeXRob24gdmVy
c2lvbi4iIiIKKworaW1wb3J0IHN5cworCitmcm9tIGNvdmVyYWdlIGltcG9ydCBDb3ZlcmFnZVBs
dWdpbgorCisKK2NsYXNzIE15Q29uZmlnUGx1Z2luKENvdmVyYWdlUGx1Z2luKToKKyAgICBkZWYg
Y29uZmlndXJlKHNlbGYsIGNvbmZpZyk6CisgICAgICAgIG9wdF9uYW1lID0gJ3JlcG9ydDpleGNs
dWRlX2xpbmVzJworICAgICAgICBleGNsdWRlX2xpbmVzID0gY29uZmlnLmdldF9vcHRpb24ob3B0
X25hbWUpCisgICAgICAgICMgUHl0aG9uID49IDMuNiBoYXMgb3MuUGF0aExpa2UuCisgICAgICAg
IGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDYpOgorICAgICAgICAgICAgZXhjbHVkZV9saW5l
cy5hcHBlbmQoJ3ByYWdtYTogPj0zNicpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleGNs
dWRlX2xpbmVzLmFwcGVuZCgncHJhZ21hOiA8PTM1JykKKyAgICAgICAgY29uZmlnLnNldF9vcHRp
b24ob3B0X25hbWUsIGV4Y2x1ZGVfbGluZXMpCisKKworZGVmIGNvdmVyYWdlX2luaXQocmVnLCBv
cHRpb25zKToKKyAgICByZWcuYWRkX2NvbmZpZ3VyZXIoTXlDb25maWdQbHVnaW4oKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS9kb2NzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVh
NTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS9kb2NzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBm
aWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBt
b2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhL2RvY3MvY2hhbmdlbG9nLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFk
YXRhL2RvY3MvY2hhbmdlbG9nLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTY1MzU3NDRhNWU2ODg4MDEyMmVl
YzFiNjhhMzVhZmIyM2E1MjI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0
YWRhdGEvZG9jcy9jaGFuZ2Vsb2cucnN0CkBAIC0wLDAgKzEsMzE0IEBACis9PT09PT09PT09PT09
PT09PT09PT09PT09CisgaW1wb3J0bGliX21ldGFkYXRhIE5FV1MKKz09PT09PT09PT09PT09PT09
PT09PT09PT0KKwordjIuMS4wCis9PT09PT0KKworKiAjMjUzOiBXaGVuIHF1ZXJ5aW5nIGZvciBw
YWNrYWdlIG1ldGFkYXRhLCB0aGUgbG9va3VwCisgIG5vdyBob25vcnMKKyAgYHBhY2thZ2Ugbm9y
bWFsaXphdGlvbiBydWxlcyA8aHR0cHM6Ly9wYWNrYWdpbmcucHl0aG9uLm9yZy9zcGVjaWZpY2F0
aW9ucy9yZWNvcmRpbmctaW5zdGFsbGVkLXBhY2thZ2VzLz5gXy4KKwordjIuMC4wCis9PT09PT0K
KworKiBgYGltcG9ydGxpYl9tZXRhZGF0YWBgIG5vIGxvbmdlciBwcmVzZW50cyBhCisgIGBgX192
ZXJzaW9uX19gYCBhdHRyaWJ1dGUuIENvbnN1bWVycyB3aXNoaW5nIHRvCisgIHJlc29sdmUgdGhl
IHZlcnNpb24gb2YgdGhlIHBhY2thZ2Ugc2hvdWxkIHF1ZXJ5IGl0CisgIGRpcmVjdGx5IHdpdGgK
KyAgYGBpbXBvcnRsaWJfbWV0YWRhdGEudmVyc2lvbignaW1wb3J0bGliLW1ldGFkYXRhJylgYC4K
KyAgQ2xvc2VzICM3MS4KKwordjEuNy4wCis9PT09PT0KKworKiBgYFBhdGhOb3RGb3VuZEVycm9y
YGAgbm93IGhhcyBhIGN1c3RvbSBgYF9fc3RyX19gYAorICBtZW50aW9uaW5nICJwYWNrYWdlIG1l
dGFkYXRhIiBiZWluZyBtaXNzaW5nIHRvIGhlbHAKKyAgZ3VpZGUgdXNlcnMgdG8gdGhlIGNhdXNl
IHdoZW4gdGhlIHBhY2thZ2UgaXMgaW5zdGFsbGVkCisgIGJ1dCBubyBtZXRhZGF0YSBpcyBwcmVz
ZW50LiBDbG9zZXMgIzEyNC4KKwordjEuNi4xCis9PT09PT0KKworKiBBZGRlZCBgYERpc3RyaWJ1
dGlvbi5fbG9jYWwoKWBgIGFzIGEgcHJvdmlzaW9uYWwKKyAgZGVtb25zdHJhdGlvbiBvZiBob3cg
dG8gbG9hZCBtZXRhZGF0YSBmb3IgYSBsb2NhbAorICBwYWNrYWdlLiBJbXBsaWNpdGx5IHJlcXVp
cmVzIHRoYXQKKyAgYHBlcDUxNyA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3BlcDUxNz5gXyBp
cworICBpbnN0YWxsZWQuIFJlZiAjNDIuCisqIEVuc3VyZSBpbnB1dHMgdG8gRmFzdFBhdGggYXJl
IFVuaWNvZGUuIENsb3NlcyAjMTIxLgorKiBUZXN0cyBub3cgcmVseSBvbiBgYGltcG9ydGxpYi5y
ZXNvdXJjZXMuZmlsZXNgYCAoYW5kCisgIGJhY2twb3J0KSBpbnN0ZWFkIG9mIHRoZSBvbGRlciBg
YHBhdGhgYCBmdW5jdGlvbi4KKyogU3VwcG9ydCBhbnkgaXRlcmFibGUgZnJvbSBgYGZpbmRfZGlz
dHJpYnV0aW9uc2BgLgorICBDbG9zZXMgIzEyMi4KKwordjEuNi4wCis9PT09PT0KKworKiBBZGRl
ZCBgYG1vZHVsZWBgIGFuZCBgYGF0dHJgYCBhdHRyaWJ1dGVzIHRvIGBgRW50cnlQb2ludGBgCisK
K3YxLjUuMgorPT09PT09CisKKyogRml4IHJlZHVuZGFudCBlbnRyaWVzIGZyb20gYGBGYXN0UGF0
aC56aXBfY2hpbGRyZW5gYC4KKyAgQ2xvc2VzICMxMTcuCisKK3YxLjUuMQorPT09PT09CisKKyog
SW1wcm92ZSByZWxpYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY29tcGF0aWJpbGl0eQorICBp
bXBvcnRzIGZvciBjb250ZXh0bGliIGFuZCBwYXRobGliIHdoZW4gcnVubmluZyB0ZXN0cy4KKyAg
Q2xvc2VzICMxMTYuCisKK3YxLjUuMAorPT09PT09CisKKyogQWRkaXRpb25hbCBwZXJmb3JtYW5j
ZSBvcHRpbWl6YXRpb25zIGluIEZhc3RQYXRoIG5vdworICBzYXZlcyBhbiBhZGRpdGlvbmFsIDIw
JSBvbiBhIHR5cGljYWwgY2FsbC4KKyogQ29ycmVjdCBmb3IgaXNzdWUgd2hlcmUgUHlPeGlkaXpl
ciBmaW5kZXIgaGFzIG5vCisgIGBgX19tb2R1bGVfX2BgIGF0dHJpYnV0ZS4gQ2xvc2VzICMxMTAu
CisKK3YxLjQuMAorPT09PT09CisKKyogVGhyb3VnaCBjYXJlZnVsIG9wdGltaXphdGlvbiwgYGBk
aXN0cmlidXRpb24oKWBgIGlzCisgIDMtNHggZmFzdGVyLiBUaGFua3MgdG8gQW50b255IExlZSBm
b3IgdGhlCisgIGNvbnRyaWJ1dGlvbi4gQ2xvc2VzICM5NS4KKworKiBXaGVuIHNlYXJjaGluZyB0
aHJvdWdoIGBgc3lzLnBhdGhgYCwgaWYgYW55IGVycm9yCisgIG9jY3VycyBhdHRlbXB0aW5nIHRv
IGxpc3QgYSBwYXRoIGVudHJ5LCB0aGF0IGVudHJ5CisgIGlzIHNraXBwZWQsIG1ha2luZyB0aGUg
c3lzdGVtIG11Y2ggbW9yZSBsZW5pZW50CisgIHRvIGVycm9ycy4gQ2xvc2VzICM5NC4KKwordjEu
My4wCis9PT09PT0KKworKiBJbXByb3ZlIGN1c3RvbSBmaW5kZXJzIGRvY3VtZW50YXRpb24uIENs
b3NlcyAjMTA1LgorCit2MS4yLjAKKz09PT09PQorCisqIE9uY2UgYWdhaW4sIGRyb3Agc3VwcG9y
dCBmb3IgUHl0aG9uIDMuNC4gUmVmICMxMDQuCisKK3YxLjEuMworPT09PT09CisKKyogUmVzdG9y
ZWQgc3VwcG9ydCBmb3IgUHl0aG9uIDMuNCBkdWUgdG8gaW1wcm9wZXIgdmVyc2lvbgorICBjb21w
YXRpYmlsaXR5IGRlY2xhcmF0aW9ucyBpbiB0aGUgdjEuMS4wIGFuZCB2MS4xLjEKKyAgcmVsZWFz
ZXMuIENsb3NlcyAjMTA0LgorCit2MS4xLjIKKz09PT09PQorCisqIFJlcGFpcmVkIHByb2plY3Qg
bWV0YWRhdGEgdG8gY29ycmVjdGx5IGRlY2xhcmUgdGhlCisgIGBgcHl0aG9uX3JlcXVpcmVzYGAg
ZGlyZWN0aXZlLiBDbG9zZXMgIzEwMy4KKwordjEuMS4xCis9PT09PT0KKworKiBGaXhlZCBgYHJl
cHIoRW50cnlQb2ludClgYCBvbiBQeVB5IDMgYWxzby4gQ2xvc2VzICMxMDIuCisKK3YxLjEuMAor
PT09PT09CisKKyogRHJvcHBlZCBzdXBwb3J0IGZvciBQeXRob24gMy40LgorKiBFbnRyeVBvaW50
cyBhcmUgbm93IHBpY2tsZWFibGUuIENsb3NlcyAjOTYuCisqIEZpeGVkIGBgcmVwcihFbnRyeVBv
aW50KWBgIG9uIFB5UHkgMi4gQ2xvc2VzICM5Ny4KKwordjEuMC4wCis9PT09PT0KKworKiBQcm9q
ZWN0IGFkb3B0cyBzZW12ZXIgZm9yIHZlcnNpb25pbmcuCisKKyogUmVtb3ZlZCBjb21wYXRpYmls
aXR5IHNoaW0gaW50cm9kdWNlZCBpbiAwLjIzLgorCisqIEZvciBiZXR0ZXIgY29tcGF0aWJpbGl0
eSB3aXRoIHRoZSBzdGRsaWIgaW1wbGVtZW50YXRpb24gYW5kIHRvCisgIGF2b2lkIHRoZSBzYW1l
IGRpc3RyaWJ1dGlvbnMgYmVpbmcgZGlzY292ZXJlZCBieSB0aGUgc3RkbGliIGFuZAorICBiYWNr
cG9ydCBpbXBsZW1lbnRhdGlvbnMsIHRoZSBiYWNrcG9ydCBub3cgZGlzYWJsZXMgdGhlCisgIHN0
ZGxpYiBEaXN0cmlidXRpb25GaW5kZXIgZHVyaW5nIGluaXRpYWxpemF0aW9uIChpbXBvcnQgdGlt
ZSkuCisgIENsb3NlcyAjOTEgYW5kIGNsb3NlcyAjMTAwLgorCiswLjIzCis9PT09CisqIEFkZGVk
IGEgY29tcGF0aWJpbGl0eSBzaGltIHRvIHByZXZlbnQgZmFpbHVyZXMgb24gYmV0YSByZWxlYXNl
cworICBvZiBQeXRob24gYmVmb3JlIHRoZSBzaWduYXR1cmUgY2hhbmdlZCB0byBhY2NlcHQgdGhl
CisgICJjb250ZXh0IiBwYXJhbWV0ZXIgb24gZmluZF9kaXN0cmlidXRpb25zLiBUaGlzIHdvcmth
cm91bmQKKyAgd2lsbCBoYXZlIGEgbGltaXRlZCBsaWZlc3Bhbiwgbm90IHRvIGV4dGVuZCBiZXlv
bmQgcmVsZWFzZSBvZgorICBQeXRob24gMy44IGZpbmFsLgorCiswLjIyCis9PT09CisqIFJlbmFt
ZWQgYGBwYWNrYWdlYGAgcGFyYW1ldGVyIHRvIGBgZGlzdHJpYnV0aW9uX25hbWVgYAorICBhcyBg
cmVjb21tZW5kZWQgPGh0dHBzOi8vYnVncy5weXRob24ub3JnL2lzc3VlMzQ2MzIjbXNnMzQ5NDIz
PmBfCisgIGluIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOiBgYGRpc3RyaWJ1dGlvbmBgLCBgYG1l
dGFkYXRhYGAsCisgIGBgdmVyc2lvbmBgLCBgYGZpbGVzYGAsIGFuZCBgYHJlcXVpcmVzYGAuIFRo
aXMKKyAgYmFja3dhcmQtaW5jb21wYXRpYmxlIGNoYW5nZSBpcyBleHBlY3RlZCB0byBoYXZlIGxp
dHRsZSBpbXBhY3QKKyAgYXMgdGhlc2UgZnVuY3Rpb25zIGFyZSBhc3N1bWVkIHRvIGJlIHByaW1h
cmlseSB1c2VkIHdpdGgKKyAgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLgorCiswLjIxCis9PT09Cisq
IGBgaW1wb3J0bGliLm1ldGFkYXRhYGAgbm93IGV4cG9zZXMgdGhlIGBgRGlzdHJpYnV0aW9uRmlu
ZGVyYGAKKyAgbWV0YWNsYXNzIGFuZCByZWZlcmVuY2VzIGl0IGluIHRoZSBkb2NzIGZvciBleHRl
bmRpbmcgdGhlCisgIHNlYXJjaCBhbGdvcml0aG0uCisqIEFkZCBgYERpc3RyaWJ1dGlvbi5hdGBg
IGZvciBjb25zdHJ1Y3RpbmcgYSBEaXN0cmlidXRpb24gb2JqZWN0CisgIGZyb20gYSBrbm93biBt
ZXRhZGF0YSBkaXJlY3Rvcnkgb24gdGhlIGZpbGUgc3lzdGVtLiBDbG9zZXMgIzgwLgorKiBEaXN0
cmlidXRpb24gZmluZGVycyBub3cgcmVjZWl2ZSBhIGNvbnRleHQgb2JqZWN0IHRoYXQKKyAgc3Vw
cGxpZXMgYGAucGF0aGBgIGFuZCBgYC5uYW1lYGAgcHJvcGVydGllcy4gVGhpcyBjaGFuZ2UKKyAg
aW50cm9kdWNlcyBhIGZ1bmRhbWVudGFsIGJhY2t3YXJkIGluY29tcGF0aWJpbGl0eSBmb3IKKyAg
YW55IHByb2plY3RzIGltcGxlbWVudGluZyBhIGBgZmluZF9kaXN0cmlidXRpb25zYGAgbWV0aG9k
CisgIG9uIGEgYGBNZXRhUGF0aEZpbmRlcmBgLiBUaGlzIG5ldyBsYXllciBvZiBhYnN0cmFjdGlv
bgorICBhbGxvd3MgdGhpcyBjb250ZXh0IHRvIGJlIHN1cHBsaWVkIGRpcmVjdGx5IG9yIGNvbnN0
cnVjdGVkCisgIG9uIGRlbWFuZCBhbmQgb3BlbnMgdGhlIG9wcG9ydHVuaXR5IGZvciBhCisgIGBg
ZmluZF9kaXN0cmlidXRpb25zYGAgbWV0aG9kIHRvIHNvbGljaXQgYWRkaXRpb25hbAorICBjb250
ZXh0IGZyb20gdGhlIGNhbGxlci4gQ2xvc2VzICM4NS4KKworMC4yMAorPT09PQorKiBDbGFyaWZ5
IGluIHRoZSBkb2NzIHRoYXQgY2FsbHMgdG8gYGAuZmlsZXNgYCBjb3VsZCByZXR1cm4KKyAgYGBO
b25lYGAgd2hlbiB0aGUgbWV0YWRhdGEgaXMgbm90IHByZXNlbnQuIENsb3NlcyAjNjkuCisqIFJl
dHVybiBhbGwgcmVxdWlyZW1lbnRzIGFuZCBub3QganVzdCB0aGUgZmlyc3QgZm9yIGRpc3QtaW5m
bworICBwYWNrYWdlcy4gQ2xvc2VzICM2Ny4KKworMC4xOQorPT09PQorKiBSZXN0cmFpbiBvdmVy
LWVhZ2VyIGVnZyBtZXRhZGF0YSByZXNvbHV0aW9uLgorKiBBZGQgc3VwcG9ydCBmb3IgZW50cnkg
cG9pbnRzIHdpdGggY29sb25zIGluIHRoZSBuYW1lLiBDbG9zZXMgIzc1LgorCiswLjE4Cis9PT09
CisqIFBhcnNlIGVudHJ5IHBvaW50cyBjYXNlIHNlbnNpdGl2ZWx5LiAgQ2xvc2VzICM2OAorKiBB
ZGQgYSB2ZXJzaW9uIGNvbnN0cmFpbnQgb24gdGhlIGJhY2twb3J0IGNvbmZpZ3BhcnNlciBwYWNr
YWdlLiAgQ2xvc2VzICM2NgorCiswLjE3Cis9PT09CisqIEZpeCBhIHBlcm1pc3Npb24gcHJvYmxl
bSBpbiB0aGUgdGVzdHMgb24gV2luZG93cy4KKworMC4xNgorPT09PQorKiBEb24ndCBjcmFzaCBp
ZiB0aGVyZSBleGlzdHMgYW4gRUdHLUlORk8gZGlyZWN0b3J5IG9uIHN5cy5wYXRoLgorCiswLjE1
Cis9PT09CisqIEZpeCBkb2N1bWVudGF0aW9uLgorCiswLjE0Cis9PT09CisqIFJlbW92ZWQgYGBs
b2NhbF9kaXN0cmlidXRpb25gYCBmdW5jdGlvbiBmcm9tIHRoZSBBUEkuCisgICoqVGhpcyBiYWNr
d2FyZC1pbmNvbXBhdGlibGUgY2hhbmdlIHJlbW92ZXMgdGhpcworICBiZWhhdmlvciBzdW1tYXJp
bHkqKi4gUHJvamVjdHMgc2hvdWxkIHJlbW92ZSB0aGVpcgorICByZWxpYW5jZSBvbiB0aGlzIGJl
aGF2aW9yLiBBIHJlcGxhY2VtZW50IGJlaGF2aW9yIGlzCisgIHVuZGVyIHJldmlldyBpbiB0aGUg
YHBlcDUxNyBwcm9qZWN0CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHlwYS9wZXA1MTc+YF8uIENs
b3NlcyAjNDIuCisKKzAuMTMKKz09PT0KKyogVXBkYXRlIGRvY3N0cmluZ3MgdG8gbWF0Y2ggUEVQ
IDguIENsb3NlcyAjNjMuCisqIE1lcmdlZCBtb2R1bGVzIGludG8gb25lIG1vZHVsZS4gQ2xvc2Vz
ICM2Mi4KKworMC4xMgorPT09PQorKiBBZGQgc3VwcG9ydCBmb3IgZWdncy4gICE2NTsgQ2xvc2Vz
ICMxOS4KKworMC4xMQorPT09PQorKiBTdXBwb3J0IGdlbmVyaWMgemlwIGZpbGVzIChub3QganVz
dCB3aGVlbHMpLiAgQ2xvc2VzICM1OQorKiBTdXBwb3J0IHppcCBmaWxlcyB3aXRoIG11bHRpcGxl
IGRpc3RyaWJ1dGlvbnMgaW4gdGhlbS4gIENsb3NlcyAjNjAKKyogRnVsbHkgZXhwb3NlIHRoZSBw
dWJsaWMgQVBJIGluIGBgaW1wb3J0bGliX21ldGFkYXRhLl9fYWxsX19gYC4KKworMC4xMAorPT09
PQorKiBUaGUgYGBEaXN0cmlidXRpb25gYCBBQkMgaXMgbm93IG9mZmljaWFsbHkgcGFydCBvZiB0
aGUgcHVibGljIEFQSS4KKyAgQ2xvc2VzICMzNy4KKyogRml4ZWQgc3VwcG9ydCBmb3Igb2xkZXIg
c2luZ2xlIGZpbGUgZWdnLWluZm8gZm9ybWF0cy4gIENsb3NlcyAjNDMuCisqIEZpeGVkIGEgdGVz
dGluZyBidWcgd2hlbiBgYCRDV0RgYCBoYXMgc3BhY2VzIGluIHRoZSBwYXRoLiAgQ2xvc2VzICM1
MC4KKyogQWRkIFB5dGhvbiAzLjggdG8gdGhlIGBgdG94YGAgdGVzdGluZyBtYXRyaXguCisKKzAu
OQorPT09CisqIEZpeGVkIGlzc3VlIHdoZXJlIGVudHJ5IHBvaW50cyB3aXRob3V0IGFuIGF0dHJp
YnV0ZSB3b3VsZCByYWlzZSBhbgorICBFeGNlcHRpb24uICBDbG9zZXMgIzQwLgorKiBSZW1vdmVk
IHVudXNlZCBgYG5hbWVgYCBwYXJhbWV0ZXIgZnJvbSBgYGVudHJ5X3BvaW50cygpYGAuIENsb3Nl
cyAjNDQuCisqIGBgRGlzdHJpYnV0aW9uRmluZGVyYGAgY2xhc3NlcyBtdXN0IG5vdyBiZSBpbnN0
YW50aWF0ZWQgYmVmb3JlCisgIGJlaW5nIHBsYWNlZCBvbiBgYHN5cy5tZXRhX3BhdGhgYC4KKwor
MC44Cis9PT0KKyogVGhpcyBsaWJyYXJ5IGNhbiBub3cgZGlzY292ZXIvZW51bWVyYXRlIGFsbCBp
bnN0YWxsZWQgcGFja2FnZXMuICoqVGhpcworICBiYWNrd2FyZC1pbmNvbXBhdGlibGUgY2hhbmdl
IGFsdGVycyB0aGUgcHJvdG9jb2wgZmluZGVycyBtdXN0CisgIGltcGxlbWVudCB0byBzdXBwb3J0
IGRpc3RyaWJ1dGlvbiBwYWNrYWdlIGRpc2NvdmVyeS4qKiBDbG9zZXMgIzI0LgorKiBUaGUgc2ln
bmF0dXJlIG9mIGBgZmluZF9kaXN0cmlidXRpb25zKClgYCBvbiBjdXN0b20gaW5zdGFsbGVyIGZp
bmRlcnMKKyAgc2hvdWxkIG5vdyBhY2NlcHQgdHdvIHBhcmFtZXRlcnMsIGBgbmFtZWBgIGFuZCBg
YHBhdGhgYCBhbmQKKyAgdGhlc2UgcGFyYW1ldGVycyBtdXN0IHN1cHBseSBkZWZhdWx0cy4KKyog
VGhlIGBgZW50cnlfcG9pbnRzKClgYCBtZXRob2Qgbm8gbG9uZ2VyIGFjY2VwdHMgYSBwYWNrYWdl
IG5hbWUKKyAgYnV0IGluc3RlYWQgcmV0dXJucyBhbGwgZW50cnkgcG9pbnRzIGluIGEgZGljdGlv
bmFyeSBrZXllZCBieSB0aGUKKyAgYGBFbnRyeVBvaW50Lmdyb3VwYGAuIFRoZSBgYHJlc29sdmVg
YCBtZXRob2QgaGFzIGJlZW4gcmVtb3ZlZC4gSW5zdGVhZCwKKyAgY2FsbCBgYEVudHJ5UG9pbnQu
bG9hZCgpYGAsIHdoaWNoIGhhcyB0aGUgc2FtZSBzZW1hbnRpY3MgYXMKKyAgYGBwa2dfcmVzb3Vy
Y2VzYGAgYW5kIGBgZW50cnlwb2ludHNgYC4gICoqVGhpcyBpcyBhIGJhY2t3YXJkIGluY29tcGF0
aWJsZQorICBjaGFuZ2UuKioKKyogTWV0YWRhdGEgaXMgbm93IGFsd2F5cyByZXR1cm5lZCBhcyBV
bmljb2RlIHRleHQgcmVnYXJkbGVzcyBvZgorICBQeXRob24gdmVyc2lvbi4gQ2xvc2VzICMyOS4K
KyogVGhpcyBsaWJyYXJ5IGNhbiBub3cgZGlzY292ZXIgbWV0YWRhdGEgZm9yIGEgJ2xvY2FsJyBw
YWNrYWdlIChmb3VuZAorICBpbiB0aGUgY3VycmVudC13b3JraW5nIGRpcmVjdG9yeSkuIENsb3Nl
cyAjMjcuCisqIEFkZGVkIGBgZmlsZXMoKWBgIGZ1bmN0aW9uIGZvciByZXNvbHZpbmcgZmlsZXMg
ZnJvbSBhIGRpc3RyaWJ1dGlvbi4KKyogQWRkZWQgYSBuZXcgYGByZXF1aXJlcygpYGAgZnVuY3Rp
b24sIHdoaWNoIHJldHVybnMgdGhlIHJlcXVpcmVtZW50cworICBmb3IgYSBwYWNrYWdlIHN1aXRh
YmxlIGZvciBwYXJzaW5nIGJ5CisgIGBgcGFja2FnaW5nLnJlcXVpcmVtZW50cy5SZXF1aXJlbWVu
dGBgLiBDbG9zZXMgIzE4LgorKiBUaGUgdG9wLWxldmVsIGBgcmVhZF90ZXh0KClgYCBmdW5jdGlv
biBoYXMgYmVlbiByZW1vdmVkLiAgVXNlCisgIGBgUGFja2FnZVBhdGgucmVhZF90ZXh0KClgYCBv
biBpbnN0YW5jZXMgcmV0dXJuZWQgYnkgdGhlIGBgZmlsZXMoKWBgCisgIGZ1bmN0aW9uLiAgKipU
aGlzIGlzIGEgYmFja3dhcmQgaW5jb21wYXRpYmxlIGNoYW5nZS4qKgorKiBSZWxlYXNlIGRhdGVz
IGFyZSBub3cgYXV0b21hdGljYWxseSBpbmplY3RlZCBpbnRvIHRoZSBjaGFuZ2Vsb2cKKyAgYmFz
ZWQgb24gU0NNIHRhZ3MuCisKKzAuNworPT09CisqIEZpeGVkIGlzc3VlIHdoZXJlIHBhY2thZ2Vz
IHdpdGggZGFzaGVzIGluIHRoZWlyIG5hbWVzIHdvdWxkCisgIG5vdCBiZSBkaXNjb3ZlcmVkLiBD
bG9zZXMgIzIxLgorKiBEaXN0cmlidXRpb24gbG9va3VwIGlzIG5vdyBjYXNlLWluc2Vuc2l0aXZl
LiBDbG9zZXMgIzIwLgorKiBXaGVlbCBkaXN0cmlidXRpb25zIGNhbiBubyBsb25nZXIgYmUgZGlz
Y292ZXJlZCBieSB0aGVpciBtb2R1bGUKKyAgbmFtZS4gTGlrZSBQYXRoIGRpc3RyaWJ1dGlvbnMs
IHRoZXkgbXVzdCBiZSBpbmRpY2F0ZWQgYnkgdGhlaXIKKyAgZGlzdHJpYnV0aW9uIHBhY2thZ2Ug
bmFtZS4KKworMC42Cis9PT0KKyogUmVtb3ZlZCBgYGltcG9ydGxpYl9tZXRhZGF0YS5kaXN0cmli
dXRpb25gYCBmdW5jdGlvbi4gTm93CisgIHRoZSBwdWJsaWMgaW50ZXJmYWNlIGlzIHByaW1hcmls
eSB0aGUgdXRpbGl0eSBmdW5jdGlvbnMgZXhwb3NlZAorICBpbiBgYGltcG9ydGxpYl9tZXRhZGF0
YS5fX2FsbF9fYGAuIENsb3NlcyAjMTQuCisqIEFkZGVkIHR3byBuZXcgdXRpbGl0eSBmdW5jdGlv
bnMgYGByZWFkX3RleHRgYCBhbmQKKyAgYGBtZXRhZGF0YWBgLgorCiswLjUKKz09PQorKiBVcGRh
dGVkIFJFQURNRSBhbmQgcmVtb3ZlZCBkZXRhaWxzIGFib3V0IERpc3RyaWJ1dGlvbgorICBjbGFz
cywgbm93IGNvbnNpZGVyZWQgcHJpdmF0ZS4gQ2xvc2VzICMxNS4KKyogQWRkZWQgdGVzdCBzdWl0
ZSBzdXBwb3J0IGZvciBQeXRob24gMy40Ky4KKyogRml4ZWQgU3ludGF4RXJyb3JzIG9uIFB5dGhv
biAzLjQgYW5kIDMuNS4gITEyCisqIEZpeGVkIGVycm9ycyBvbiBXaW5kb3dzIGpvaW5pbmcgUGF0
aCBlbGVtZW50cy4gITE1CisKKzAuNAorPT09CisqIEhvdXNla2VlcGluZy4KKworMC4zCis9PT0K
KyogQWRkZWQgdXNhZ2UgZG9jdW1lbnRhdGlvbi4gIENsb3NlcyAjOAorKiBBZGQgc3VwcG9ydCBm
b3IgZ2V0dGluZyBtZXRhZGF0YSBmcm9tIHdoZWVscyBvbiBgYHN5cy5wYXRoYGAuICBDbG9zZXMg
IzkKKworMC4yCis9PT0KKyogQWRkZWQgYGBpbXBvcnRsaWJfbWV0YWRhdGEuZW50cnlfcG9pbnRz
KClgYC4gIENsb3NlcyAjMQorKiBBZGRlZCBgYGltcG9ydGxpYl9tZXRhZGF0YS5yZXNvbHZlKClg
YC4gIENsb3NlcyAjMTIKKyogQWRkIHN1cHBvcnQgZm9yIFB5dGhvbiAyLjcuICBDbG9zZXMgIzQK
KworMC4xCis9PT0KKyogSW5pdGlhbCByZWxlYXNlLgorCisKKy4uCisgICBMb2NhbCBWYXJpYWJs
ZXM6CisgICBtb2RlOiBjaGFuZ2UtbG9nLW1vZGUKKyAgIGluZGVudC10YWJzLW1vZGU6IG5pbAor
ICAgc2VudGVuY2UtZW5kLWRvdWJsZS1zcGFjZTogdAorICAgZmlsbC1jb2x1bW46IDc4CisgICBj
b2Rpbmc6IHV0Zi04CisgICBFbmQ6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0
YS9kb2NzL2NvbmYucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL2NvbmYucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTI5YTdhNGVhZWQxMGUzODc2ZjgyNzg5Zjg1Y2E3MzY4NzBkM2JmMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvY29uZi5weQpAQCAtMCww
ICsxLDE4NSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KKyMKKyMgaW1wb3J0bGliX21ldGFkYXRhIGRvY3VtZW50YXRpb24gYnVpbGQgY29uZmlndXJh
dGlvbiBmaWxlLCBjcmVhdGVkIGJ5CisjIHNwaGlueC1xdWlja3N0YXJ0IG9uIFRodSBOb3YgMzAg
MTA6MjE6MDAgMjAxNy4KKyMKKyMgVGhpcyBmaWxlIGlzIGV4ZWNmaWxlKClkIHdpdGggdGhlIGN1
cnJlbnQgZGlyZWN0b3J5IHNldCB0byBpdHMKKyMgY29udGFpbmluZyBkaXIuCisjCisjIE5vdGUg
dGhhdCBub3QgYWxsIHBvc3NpYmxlIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGFyZSBwcmVzZW50IGlu
IHRoaXMKKyMgYXV0b2dlbmVyYXRlZCBmaWxlLgorIworIyBBbGwgY29uZmlndXJhdGlvbiB2YWx1
ZXMgaGF2ZSBhIGRlZmF1bHQ7IHZhbHVlcyB0aGF0IGFyZSBjb21tZW50ZWQgb3V0CisjIHNlcnZl
IHRvIHNob3cgdGhlIGRlZmF1bHQuCisKKyMgSWYgZXh0ZW5zaW9ucyAob3IgbW9kdWxlcyB0byBk
b2N1bWVudCB3aXRoIGF1dG9kb2MpIGFyZSBpbiBhbm90aGVyIGRpcmVjdG9yeSwKKyMgYWRkIHRo
ZXNlIGRpcmVjdG9yaWVzIHRvIHN5cy5wYXRoIGhlcmUuIElmIHRoZSBkaXJlY3RvcnkgaXMgcmVs
YXRpdmUgdG8gdGhlCisjIGRvY3VtZW50YXRpb24gcm9vdCwgdXNlIG9zLnBhdGguYWJzcGF0aCB0
byBtYWtlIGl0IGFic29sdXRlLCBsaWtlIHNob3duIGhlcmUuCisjCisjIGltcG9ydCBvcworIyBp
bXBvcnQgc3lzCisjIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmFic3BhdGgoJy4nKSkKKwor
CisjIC0tIEdlbmVyYWwgY29uZmlndXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB5b3VyIGRvY3VtZW50YXRpb24gbmVlZHMgYSBt
aW5pbWFsIFNwaGlueCB2ZXJzaW9uLCBzdGF0ZSBpdCBoZXJlLgorIworIyBuZWVkc19zcGhpbngg
PSAnMS4wJworCisjIEFkZCBhbnkgU3BoaW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVyZSwg
YXMgc3RyaW5ncy4gVGhleSBjYW4gYmUKKyMgZXh0ZW5zaW9ucyBjb21pbmcgd2l0aCBTcGhpbngg
KG5hbWVkICdzcGhpbnguZXh0LionKSBvciB5b3VyIGN1c3RvbQorIyBvbmVzLgorZXh0ZW5zaW9u
cyA9IFsKKyAgICAncnN0LmxpbmtlcicsCisgICAgJ3NwaGlueC5leHQuYXV0b2RvYycsCisgICAg
J3NwaGlueC5leHQuY292ZXJhZ2UnLAorICAgICdzcGhpbnguZXh0LmRvY3Rlc3QnLAorICAgICdz
cGhpbnguZXh0LmludGVyc3BoaW54JywKKyAgICAnc3BoaW54LmV4dC52aWV3Y29kZScsCisgICAg
XQorCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2
ZSB0byB0aGlzIGRpcmVjdG9yeS4KK3RlbXBsYXRlc19wYXRoID0gWydfdGVtcGxhdGVzJ10KKwor
IyBUaGUgc3VmZml4KGVzKSBvZiBzb3VyY2UgZmlsZW5hbWVzLgorIyBZb3UgY2FuIHNwZWNpZnkg
bXVsdGlwbGUgc3VmZml4IGFzIGEgbGlzdCBvZiBzdHJpbmc6CisjCisjIHNvdXJjZV9zdWZmaXgg
PSBbJy5yc3QnLCAnLm1kJ10KK3NvdXJjZV9zdWZmaXggPSAnLnJzdCcKKworIyBUaGUgbWFzdGVy
IHRvY3RyZWUgZG9jdW1lbnQuCittYXN0ZXJfZG9jID0gJ2luZGV4JworCisjIEdlbmVyYWwgaW5m
b3JtYXRpb24gYWJvdXQgdGhlIHByb2plY3QuCitwcm9qZWN0ID0gJ2ltcG9ydGxpYl9tZXRhZGF0
YScKK2NvcHlyaWdodCA9ICcyMDE3LTIwMTksIEphc29uIFIuIENvb21icywgQmFycnkgV2Fyc2F3
JworYXV0aG9yID0gJ0phc29uIFIuIENvb21icywgQmFycnkgV2Fyc2F3JworCisjIFRoZSB2ZXJz
aW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlvdSdyZSBkb2N1bWVudGluZywgYWN0cyBhcyByZXBs
YWNlbWVudCBmb3IKKyMgfHZlcnNpb258IGFuZCB8cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2YXJp
b3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0IHRoZQorIyBidWlsdCBkb2N1bWVudHMuCisjCisj
IFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KK3ZlcnNpb24gPSAnMC4xJworIyBUaGUgZnVsbCB2ZXJz
aW9uLCBpbmNsdWRpbmcgYWxwaGEvYmV0YS9yYyB0YWdzLgorcmVsZWFzZSA9ICcwLjEnCisKKyMg
VGhlIGxhbmd1YWdlIGZvciBjb250ZW50IGF1dG9nZW5lcmF0ZWQgYnkgU3BoaW54LiBSZWZlciB0
byBkb2N1bWVudGF0aW9uCisjIGZvciBhIGxpc3Qgb2Ygc3VwcG9ydGVkIGxhbmd1YWdlcy4KKyMK
KyMgVGhpcyBpcyBhbHNvIHVzZWQgaWYgeW91IGRvIGNvbnRlbnQgdHJhbnNsYXRpb24gdmlhIGdl
dHRleHQgY2F0YWxvZ3MuCisjIFVzdWFsbHkgeW91IHNldCAibGFuZ3VhZ2UiIGZyb20gdGhlIGNv
bW1hbmQgbGluZSBmb3IgdGhlc2UgY2FzZXMuCitsYW5ndWFnZSA9IE5vbmUKKworIyBMaXN0IG9m
IHBhdHRlcm5zLCByZWxhdGl2ZSB0byBzb3VyY2UgZGlyZWN0b3J5LCB0aGF0IG1hdGNoIGZpbGVz
IGFuZAorIyBkaXJlY3RvcmllcyB0byBpZ25vcmUgd2hlbiBsb29raW5nIGZvciBzb3VyY2UgZmls
ZXMuCisjIFRoaXMgcGF0dGVybnMgYWxzbyBlZmZlY3QgdG8gaHRtbF9zdGF0aWNfcGF0aCBhbmQg
aHRtbF9leHRyYV9wYXRoCitleGNsdWRlX3BhdHRlcm5zID0gWydfYnVpbGQnLCAnVGh1bWJzLmRi
JywgJy5EU19TdG9yZSddCisKKyMgVGhlIG5hbWUgb2YgdGhlIFB5Z21lbnRzIChzeW50YXggaGln
aGxpZ2h0aW5nKSBzdHlsZSB0byB1c2UuCitweWdtZW50c19zdHlsZSA9ICdzcGhpbngnCisKKyMg
SWYgdHJ1ZSwgYHRvZG9gIGFuZCBgdG9kb0xpc3RgIHByb2R1Y2Ugb3V0cHV0LCBlbHNlIHRoZXkg
cHJvZHVjZSBub3RoaW5nLgordG9kb19pbmNsdWRlX3RvZG9zID0gRmFsc2UKKworCisjIC0tIE9w
dGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworIyBUaGUgdGhlbWUgdG8gdXNlIGZvciBIVE1MIGFuZCBIVE1MIEhlbHAg
cGFnZXMuICBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yCisjIGEgbGlzdCBvZiBidWlsdGluIHRo
ZW1lcy4KKyMKK2h0bWxfdGhlbWUgPSAnZGVmYXVsdCcKKworIyBDdXN0b20gc2lkZWJhciB0ZW1w
bGF0ZXMsIG11c3QgYmUgYSBkaWN0aW9uYXJ5IHRoYXQgbWFwcyBkb2N1bWVudCBuYW1lcworIyB0
byB0ZW1wbGF0ZSBuYW1lcy4KKyMKKyMgVGhpcyBpcyByZXF1aXJlZCBmb3IgdGhlIGFsYWJhc3Rl
ciB0aGVtZQorIyByZWZzOiBodHRwOi8vYWxhYmFzdGVyLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVz
dC9pbnN0YWxsYXRpb24uaHRtbCNzaWRlYmFycworaHRtbF9zaWRlYmFycyA9IHsKKyAgICAnKion
OiBbCisgICAgICAgICdyZWxhdGlvbnMuaHRtbCcsICAjIG5lZWRzICdzaG93X3JlbGF0ZWQnOiBU
cnVlIHRoZW1lIG9wdGlvbiB0byBkaXNwbGF5CisgICAgICAgICdzZWFyY2hib3guaHRtbCcsCisg
ICAgICAgIF0KKyAgICB9CisKKworIyAtLSBPcHRpb25zIGZvciBIVE1MSGVscCBvdXRwdXQgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgT3V0cHV0IGZpbGUg
YmFzZSBuYW1lIGZvciBIVE1MIGhlbHAgYnVpbGRlci4KK2h0bWxoZWxwX2Jhc2VuYW1lID0gJ2lt
cG9ydGxpYl9tZXRhZGF0YWRvYycKKworCisjIC0tIE9wdGlvbnMgZm9yIExhVGVYIG91dHB1dCAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbGF0ZXhfZWxl
bWVudHMgPSB7CisgICAgIyBUaGUgcGFwZXIgc2l6ZSAoJ2xldHRlcnBhcGVyJyBvciAnYTRwYXBl
cicpLgorICAgICMKKyAgICAjICdwYXBlcnNpemUnOiAnbGV0dGVycGFwZXInLAorCisgICAgIyBU
aGUgZm9udCBzaXplICgnMTBwdCcsICcxMXB0JyBvciAnMTJwdCcpLgorICAgICMKKyAgICAjICdw
b2ludHNpemUnOiAnMTBwdCcsCisKKyAgICAjIEFkZGl0aW9uYWwgc3R1ZmYgZm9yIHRoZSBMYVRl
WCBwcmVhbWJsZS4KKyAgICAjCisgICAgIyAncHJlYW1ibGUnOiAnJywKKworICAgICMgTGF0ZXgg
ZmlndXJlIChmbG9hdCkgYWxpZ25tZW50CisgICAgIworICAgICMgJ2ZpZ3VyZV9hbGlnbic6ICdo
dGJwJywKKyAgICB9CisKKyMgR3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBMYVRlWCBm
aWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwg
dGl0bGUsCisjICBhdXRob3IsIGRvY3VtZW50Y2xhc3MgW2hvd3RvLCBtYW51YWwsIG9yIG93biBj
bGFzc10pLgorbGF0ZXhfZG9jdW1lbnRzID0gWworICAgIChtYXN0ZXJfZG9jLCAnaW1wb3J0bGli
X21ldGFkYXRhLnRleCcsCisgICAgICdpbXBvcnRsaWJcXF9tZXRhZGF0YSBEb2N1bWVudGF0aW9u
JywKKyAgICAgJ0JyZXR0IENhbm5vbiwgQmFycnkgV2Fyc2F3JywgJ21hbnVhbCcpLAorICAgIF0K
KworCisjIC0tIE9wdGlvbnMgZm9yIG1hbnVhbCBwYWdlIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBPbmUgZW50cnkgcGVyIG1hbnVhbCBwYWdlLiBM
aXN0IG9mIHR1cGxlcworIyAoc291cmNlIHN0YXJ0IGZpbGUsIG5hbWUsIGRlc2NyaXB0aW9uLCBh
dXRob3JzLCBtYW51YWwgc2VjdGlvbikuCittYW5fcGFnZXMgPSBbCisgICAgKG1hc3Rlcl9kb2Ms
ICdpbXBvcnRsaWJfbWV0YWRhdGEnLCAnaW1wb3J0bGliX21ldGFkYXRhIERvY3VtZW50YXRpb24n
LAorICAgICBbYXV0aG9yXSwgMSkKKyAgICBdCisKKworIyAtLSBPcHRpb25zIGZvciBUZXhpbmZv
IG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMg
R3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBUZXhpbmZvIGZpbGVzLiBMaXN0IG9mIHR1
cGxlcworIyAoc291cmNlIHN0YXJ0IGZpbGUsIHRhcmdldCBuYW1lLCB0aXRsZSwgYXV0aG9yLAor
IyAgZGlyIG1lbnUgZW50cnksIGRlc2NyaXB0aW9uLCBjYXRlZ29yeSkKK3RleGluZm9fZG9jdW1l
bnRzID0gWworICAgIChtYXN0ZXJfZG9jLCAnaW1wb3J0bGliX21ldGFkYXRhJywgJ2ltcG9ydGxp
Yl9tZXRhZGF0YSBEb2N1bWVudGF0aW9uJywKKyAgICAgYXV0aG9yLCAnaW1wb3J0bGliX21ldGFk
YXRhJywgJ09uZSBsaW5lIGRlc2NyaXB0aW9uIG9mIHByb2plY3QuJywKKyAgICAgJ01pc2NlbGxh
bmVvdXMnKSwKKyAgICBdCisKKworIyBFeGFtcGxlIGNvbmZpZ3VyYXRpb24gZm9yIGludGVyc3Bo
aW54OiByZWZlciB0byB0aGUgUHl0aG9uIHN0YW5kYXJkIGxpYnJhcnkuCitpbnRlcnNwaGlueF9t
YXBwaW5nID0geworICAgICdweXRob24nOiAoJ2h0dHBzOi8vZG9jcy5weXRob24ub3JnLzMnLCBO
b25lKSwKKyAgICAnaW1wb3J0bGliX3Jlc291cmNlcyc6ICgKKyAgICAgICAgJ2h0dHBzOi8vaW1w
b3J0bGliLXJlc291cmNlcy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvJywgTm9uZQorICAgICAg
ICApLAorICAgIH0KKworCisjIEZvciByc3QubGlua2VyLCBpbmplY3QgcmVsZWFzZSBkYXRlcyBp
bnRvIGNoYW5nZWxvZy5yc3QKK2xpbmtfZmlsZXMgPSB7CisgICAgJ2NoYW5nZWxvZy5yc3QnOiBk
aWN0KAorICAgICAgICByZXBsYWNlPVsKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAg
ICAgcGF0dGVybj1yJ14oP20pKCg/UDxzY21fdmVyc2lvbj52P1xkKyhcLlxkKyl7MSwyfSkpXG5b
LT1dK1xuJywKKyAgICAgICAgICAgICAgICB3aXRoX3NjbT0ne3RleHR9XG57cmV2W3RpbWVzdGFt
cF06JVktJW0tJWR9XG5cbicsCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIF0sCisg
ICAgICAgICksCisgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9j
cy9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL2luZGV4LnJzdApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NzMzMmY1ZThkMTFlMDVhMDg5YWRkZmM3YzNlMDlmMDk3MjFhOWExCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy9pbmRleC5yc3QKQEAgLTAs
MCArMSw1MiBAQAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIFdlbGNvbWUgdG8g
aW1wb3J0bGliX21ldGFkYXRhCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK2Bg
aW1wb3J0bGliX21ldGFkYXRhYGAgaXMgYSBsaWJyYXJ5IHdoaWNoIHByb3ZpZGVzIGFuIEFQSSBm
b3IgYWNjZXNzaW5nIGFuCitpbnN0YWxsZWQgcGFja2FnZSdzIG1ldGFkYXRhIChzZWUgOnBlcDpg
NTY2YCksIHN1Y2ggYXMgaXRzIGVudHJ5IHBvaW50cyBvciBpdHMgdG9wLWxldmVsCituYW1lLiAg
VGhpcyBmdW5jdGlvbmFsaXR5IGludGVuZHMgdG8gcmVwbGFjZSBtb3N0IHVzZXMgb2YgYGBwa2df
cmVzb3VyY2VzYGAKK2BlbnRyeSBwb2ludCBBUElgXyBhbmQgYG1ldGFkYXRhIEFQSWBfLiAgQWxv
bmcgd2l0aCA6bW9kOmBpbXBvcnRsaWIucmVzb3VyY2VzYCBpbgorUHl0aG9uIDMuNyBhbmQgbmV3
ZXIgKGJhY2twb3J0ZWQgYXMgOmRvYzpgaW1wb3J0bGliX3Jlc291cmNlcyA8aW1wb3J0bGliX3Jl
c291cmNlczppbmRleD5gIGZvciBvbGRlcgordmVyc2lvbnMgb2YgUHl0aG9uKSwgdGhpcyBjYW4g
ZWxpbWluYXRlIHRoZSBuZWVkIHRvIHVzZSB0aGUgb2xkZXIgYW5kIGxlc3MKK2VmZmljaWVudCBg
YHBrZ19yZXNvdXJjZXNgYCBwYWNrYWdlLgorCitgYGltcG9ydGxpYl9tZXRhZGF0YWBgIHN1cHBs
aWVzIGEgYmFja3BvcnQgb2YKKzpkb2M6YGltcG9ydGxpYi5tZXRhZGF0YSA8bGlicmFyeS9pbXBv
cnRsaWIubWV0YWRhdGE+YCBhcyBmb3VuZCBpbgorUHl0aG9uIDMuOCBhbmQgbGF0ZXIgZm9yIGVh
cmxpZXIgUHl0aG9uIHJlbGVhc2VzLiAgVXNlcnMgb2YKK1B5dGhvbiAzLjggYW5kIGJleW9uZCBh
cmUgZW5jb3VyYWdlZCB0byB1c2UgdGhlIHN0YW5kYXJkIGxpYnJhcnkgbW9kdWxlCit3aGVuIHBv
c3NpYmxlIGFuZCBmYWxsIGJhY2sgdG8gYGBpbXBvcnRsaWJfbWV0YWRhdGFgYCB3aGVuIG5lY2Vz
c2FyeS4KK1doZW4gaW1wb3J0ZWQgb24gUHl0aG9uIDMuOCBhbmQgbGF0ZXIsIGBgaW1wb3J0bGli
X21ldGFkYXRhYGAgcmVwbGFjZXMgdGhlCitEaXN0cmlidXRpb25GaW5kZXIgYmVoYXZpb3IgZnJv
bSB0aGUgc3RkbGliLCBidXQgbGVhdmVzIHRoZSBBUEkgaW4gdGFjdC4KK0RldmVsb3BlcnMgbG9v
a2luZyBmb3IgZGV0YWlsZWQgQVBJIGRlc2NyaXB0aW9ucyBzaG91bGQgcmVmZXIgdG8gdGhlIFB5
dGhvbgorMy44IHN0YW5kYXJkIGxpYnJhcnkgZG9jdW1lbnRhdGlvbi4KKworVGhlIGRvY3VtZW50
YXRpb24gaGVyZSBpbmNsdWRlcyBhIGdlbmVyYWwgOnJlZjpgdXNhZ2UgPHVzaW5nPmAgZ3VpZGUu
CisKKworLi4gdG9jdHJlZTo6CisgICA6bWF4ZGVwdGg6IDIKKyAgIDpjYXB0aW9uOiBDb250ZW50
czoKKworICAgdXNpbmcucnN0CisgICBjaGFuZ2Vsb2cgKGxpbmtzKS5yc3QKKworCitQcm9qZWN0
IGRldGFpbHMKKz09PT09PT09PT09PT09PQorCisgKiBQcm9qZWN0IGhvbWU6IGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRob24vaW1wb3J0bGliX21ldGFkYXRhCisgKiBSZXBvcnQgYnVncyBhdDogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGhvbi9pbXBvcnRsaWJfbWV0YWRhdGEvaXNzdWVzCisgKiBDb2Rl
IGhvc3Rpbmc6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vaW1wb3J0bGliX21ldGFkYXRhCisg
KiBEb2N1bWVudGF0aW9uOiBodHRwczovL2ltcG9ydGxpYl9tZXRhZGF0YS5yZWFkdGhlZG9jcy5p
by8KKworCitJbmRpY2VzIGFuZCB0YWJsZXMKKz09PT09PT09PT09PT09PT09PQorCisqIDpyZWY6
YGdlbmluZGV4YAorKiA6cmVmOmBtb2RpbmRleGAKKyogOnJlZjpgc2VhcmNoYAorCisKKy4uIF9g
ZW50cnkgcG9pbnQgQVBJYDogaHR0cHM6Ly9zZXR1cHRvb2xzLnJlYWR0aGVkb2NzLmlvL2VuL2xh
dGVzdC9wa2dfcmVzb3VyY2VzLmh0bWwjZW50cnktcG9pbnRzCisuLiBfYG1ldGFkYXRhIEFQSWA6
IGh0dHBzOi8vc2V0dXB0b29scy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvcGtnX3Jlc291cmNl
cy5odG1sI21ldGFkYXRhLWFwaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEv
ZG9jcy91c2luZy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL3VzaW5nLnJzdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMTk2NTE0N2Y0NWM4MjkwZmQ3YzE0ZTU3MTYxZGNkNzI3ZjI4YTRkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy91c2luZy5yc3QKQEAg
LTAsMCArMSwyNjAgQEAKKy4uIF91c2luZzoKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisgVXNpbmcgOm1vZDpgIWltcG9ydGxpYl9tZXRhZGF0YWAKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCitgYGltcG9ydGxpYl9tZXRhZGF0YWBgIGlzIGEgbGlicmFy
eSB0aGF0IHByb3ZpZGVzIGZvciBhY2Nlc3MgdG8gaW5zdGFsbGVkCitwYWNrYWdlIG1ldGFkYXRh
LiAgQnVpbHQgaW4gcGFydCBvbiBQeXRob24ncyBpbXBvcnQgc3lzdGVtLCB0aGlzIGxpYnJhcnkK
K2ludGVuZHMgdG8gcmVwbGFjZSBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgaW4gdGhlIGBlbnRyeSBw
b2ludAorQVBJYF8gYW5kIGBtZXRhZGF0YSBBUElgXyBvZiBgYHBrZ19yZXNvdXJjZXNgYC4gIEFs
b25nIHdpdGgKKzptb2Q6YGltcG9ydGxpYi5yZXNvdXJjZXNgIGluIFB5dGhvbiAzLjcKK2FuZCBu
ZXdlciAoYmFja3BvcnRlZCBhcyA6ZG9jOmBpbXBvcnRsaWJfcmVzb3VyY2VzIDxpbXBvcnRsaWJf
cmVzb3VyY2VzOmluZGV4PmAgZm9yIG9sZGVyIHZlcnNpb25zIG9mCitQeXRob24pLCB0aGlzIGNh
biBlbGltaW5hdGUgdGhlIG5lZWQgdG8gdXNlIHRoZSBvbGRlciBhbmQgbGVzcyBlZmZpY2llbnQK
K2BgcGtnX3Jlc291cmNlc2BgIHBhY2thZ2UuCisKK0J5ICJpbnN0YWxsZWQgcGFja2FnZSIgd2Ug
Z2VuZXJhbGx5IG1lYW4gYSB0aGlyZC1wYXJ0eSBwYWNrYWdlIGluc3RhbGxlZCBpbnRvCitQeXRo
b24ncyBgYHNpdGUtcGFja2FnZXNgYCBkaXJlY3RvcnkgdmlhIHRvb2xzIHN1Y2ggYXMgYHBpcAor
PGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9waXAvPmBfLiAgU3BlY2lmaWNhbGx5LAoraXQgbWVh
bnMgYSBwYWNrYWdlIHdpdGggZWl0aGVyIGEgZGlzY292ZXJhYmxlIGBgZGlzdC1pbmZvYGAgb3Ig
YGBlZ2ctaW5mb2BgCitkaXJlY3RvcnksIGFuZCBtZXRhZGF0YSBkZWZpbmVkIGJ5IDpwZXA6YDU2
NmAgb3IgaXRzIG9sZGVyIHNwZWNpZmljYXRpb25zLgorQnkgZGVmYXVsdCwgcGFja2FnZSBtZXRh
ZGF0YSBjYW4gbGl2ZSBvbiB0aGUgZmlsZSBzeXN0ZW0gb3IgaW4gemlwIGFyY2hpdmVzIG9uCis6
ZGF0YTpgc3lzLnBhdGhgLiAgVGhyb3VnaCBhbiBleHRlbnNpb24gbWVjaGFuaXNtLCB0aGUgbWV0
YWRhdGEgY2FuIGxpdmUgYWxtb3N0Cithbnl3aGVyZS4KKworCitPdmVydmlldworPT09PT09PT0K
KworTGV0J3Mgc2F5IHlvdSB3YW50ZWQgdG8gZ2V0IHRoZSB2ZXJzaW9uIHN0cmluZyBmb3IgYSBw
YWNrYWdlIHlvdSd2ZSBpbnN0YWxsZWQKK3VzaW5nIGBgcGlwYGAuICBXZSBzdGFydCBieSBjcmVh
dGluZyBhIHZpcnR1YWwgZW52aXJvbm1lbnQgYW5kIGluc3RhbGxpbmcKK3NvbWV0aGluZyBpbnRv
IGl0OjoKKworICAgICQgcHl0aG9uMyAtbSB2ZW52IGV4YW1wbGUKKyAgICAkIHNvdXJjZSBleGFt
cGxlL2Jpbi9hY3RpdmF0ZQorICAgIChleGFtcGxlKSAkIHBpcCBpbnN0YWxsIGltcG9ydGxpYl9t
ZXRhZGF0YQorICAgIChleGFtcGxlKSAkIHBpcCBpbnN0YWxsIHdoZWVsCisKK1lvdSBjYW4gZ2V0
IHRoZSB2ZXJzaW9uIHN0cmluZyBmb3IgYGB3aGVlbGBgIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2lu
Zzo6CisKKyAgICAoZXhhbXBsZSkgJCBweXRob24KKyAgICA+Pj4gZnJvbSBpbXBvcnRsaWJfbWV0
YWRhdGEgaW1wb3J0IHZlcnNpb24KKyAgICA+Pj4gdmVyc2lvbignd2hlZWwnKQorICAgICcwLjMy
LjMnCisKK1lvdSBjYW4gYWxzbyBnZXQgdGhlIHNldCBvZiBlbnRyeSBwb2ludHMga2V5ZWQgYnkg
Z3JvdXAsIHN1Y2ggYXMKK2BgY29uc29sZV9zY3JpcHRzYGAsIGBgZGlzdHV0aWxzLmNvbW1hbmRz
YGAgYW5kIG90aGVycy4gIEVhY2ggZ3JvdXAgY29udGFpbnMgYQorc2VxdWVuY2Ugb2YgOnJlZjpg
RW50cnlQb2ludCA8ZW50cnktcG9pbnRzPmAgb2JqZWN0cy4KKworWW91IGNhbiBnZXQgdGhlIDpy
ZWY6YG1ldGFkYXRhIGZvciBhIGRpc3RyaWJ1dGlvbiA8bWV0YWRhdGE+YDo6CisKKyAgICA+Pj4g
bGlzdChtZXRhZGF0YSgnd2hlZWwnKSkKKyAgICBbJ01ldGFkYXRhLVZlcnNpb24nLCAnTmFtZScs
ICdWZXJzaW9uJywgJ1N1bW1hcnknLCAnSG9tZS1wYWdlJywgJ0F1dGhvcicsICdBdXRob3ItZW1h
aWwnLCAnTWFpbnRhaW5lcicsICdNYWludGFpbmVyLWVtYWlsJywgJ0xpY2Vuc2UnLCAnUHJvamVj
dC1VUkwnLCAnUHJvamVjdC1VUkwnLCAnUHJvamVjdC1VUkwnLCAnS2V5d29yZHMnLCAnUGxhdGZv
cm0nLCAnQ2xhc3NpZmllcicsICdDbGFzc2lmaWVyJywgJ0NsYXNzaWZpZXInLCAnQ2xhc3NpZmll
cicsICdDbGFzc2lmaWVyJywgJ0NsYXNzaWZpZXInLCAnQ2xhc3NpZmllcicsICdDbGFzc2lmaWVy
JywgJ0NsYXNzaWZpZXInLCAnQ2xhc3NpZmllcicsICdDbGFzc2lmaWVyJywgJ0NsYXNzaWZpZXIn
LCAnUmVxdWlyZXMtUHl0aG9uJywgJ1Byb3ZpZGVzLUV4dHJhJywgJ1JlcXVpcmVzLURpc3QnLCAn
UmVxdWlyZXMtRGlzdCddCisKK1lvdSBjYW4gYWxzbyBnZXQgYSA6cmVmOmBkaXN0cmlidXRpb24n
cyB2ZXJzaW9uIG51bWJlciA8dmVyc2lvbj5gLCBsaXN0IGl0cworOnJlZjpgY29uc3RpdHVlbnQg
ZmlsZXMgPGZpbGVzPmAsIGFuZCBnZXQgYSBsaXN0IG9mIHRoZSBkaXN0cmlidXRpb24ncworOnJl
ZjpgcmVxdWlyZW1lbnRzYC4KKworCitGdW5jdGlvbmFsIEFQSQorPT09PT09PT09PT09PT0KKwor
VGhpcyBwYWNrYWdlIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25hbGl0eSB2aWEgaXRz
IHB1YmxpYyBBUEkuCisKKworLi4gX2VudHJ5LXBvaW50czoKKworRW50cnkgcG9pbnRzCistLS0t
LS0tLS0tLS0KKworVGhlIGBgZW50cnlfcG9pbnRzKClgYCBmdW5jdGlvbiByZXR1cm5zIGEgZGlj
dGlvbmFyeSBvZiBhbGwgZW50cnkgcG9pbnRzLAora2V5ZWQgYnkgZ3JvdXAuICBFbnRyeSBwb2lu
dHMgYXJlIHJlcHJlc2VudGVkIGJ5IGBgRW50cnlQb2ludGBgIGluc3RhbmNlczsKK2VhY2ggYGBF
bnRyeVBvaW50YGAgaGFzIGEgYGAubmFtZWBgLCBgYC5ncm91cGBgLCBhbmQgYGAudmFsdWVgYCBh
dHRyaWJ1dGVzIGFuZAorYSBgYC5sb2FkKClgYCBtZXRob2QgdG8gcmVzb2x2ZSB0aGUgdmFsdWUu
ICBUaGVyZSBhcmUgYWxzbyBgYC5tb2R1bGVgYCwKK2BgLmF0dHJgYCwgYW5kIGBgLmV4dHJhc2Bg
IGF0dHJpYnV0ZXMgZm9yIGdldHRpbmcgdGhlIGNvbXBvbmVudHMgb2YgdGhlCitgYC52YWx1ZWBg
IGF0dHJpYnV0ZTo6CisKKyAgICA+Pj4gZXBzID0gZW50cnlfcG9pbnRzKCkKKyAgICA+Pj4gbGlz
dChlcHMpCisgICAgWydjb25zb2xlX3NjcmlwdHMnLCAnZGlzdHV0aWxzLmNvbW1hbmRzJywgJ2Rp
c3R1dGlscy5zZXR1cF9rZXl3b3JkcycsICdlZ2dfaW5mby53cml0ZXJzJywgJ3NldHVwdG9vbHMu
aW5zdGFsbGF0aW9uJ10KKyAgICA+Pj4gc2NyaXB0cyA9IGVwc1snY29uc29sZV9zY3JpcHRzJ10K
KyAgICA+Pj4gd2hlZWwgPSBbZXAgZm9yIGVwIGluIHNjcmlwdHMgaWYgZXAubmFtZSA9PSAnd2hl
ZWwnXVswXQorICAgID4+PiB3aGVlbAorICAgIEVudHJ5UG9pbnQobmFtZT0nd2hlZWwnLCB2YWx1
ZT0nd2hlZWwuY2xpOm1haW4nLCBncm91cD0nY29uc29sZV9zY3JpcHRzJykKKyAgICA+Pj4gd2hl
ZWwubW9kdWxlCisgICAgJ3doZWVsLmNsaScKKyAgICA+Pj4gd2hlZWwuYXR0cgorICAgICdtYWlu
JworICAgID4+PiB3aGVlbC5leHRyYXMKKyAgICBbXQorICAgID4+PiBtYWluID0gd2hlZWwubG9h
ZCgpCisgICAgPj4+IG1haW4KKyAgICA8ZnVuY3Rpb24gbWFpbiBhdCAweDEwMzUyODQ4OD4KKwor
VGhlIGBgZ3JvdXBgYCBhbmQgYGBuYW1lYGAgYXJlIGFyYml0cmFyeSB2YWx1ZXMgZGVmaW5lZCBi
eSB0aGUgcGFja2FnZSBhdXRob3IKK2FuZCB1c3VhbGx5IGEgY2xpZW50IHdpbGwgd2lzaCB0byBy
ZXNvbHZlIGFsbCBlbnRyeSBwb2ludHMgZm9yIGEgcGFydGljdWxhcgorZ3JvdXAuICBSZWFkIGB0
aGUgc2V0dXB0b29scyBkb2NzCis8aHR0cHM6Ly9zZXR1cHRvb2xzLnJlYWR0aGVkb2NzLmlvL2Vu
L2xhdGVzdC9zZXR1cHRvb2xzLmh0bWwjZHluYW1pYy1kaXNjb3Zlcnktb2Ytc2VydmljZXMtYW5k
LXBsdWdpbnM+YF8KK2ZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGVudHJ5IHBvaW50cywgdGhlaXIg
ZGVmaW5pdGlvbiwgYW5kIHVzYWdlLgorCisKKy4uIF9tZXRhZGF0YToKKworRGlzdHJpYnV0aW9u
IG1ldGFkYXRhCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRXZlcnkgZGlzdHJpYnV0aW9uIGlu
Y2x1ZGVzIHNvbWUgbWV0YWRhdGEsIHdoaWNoIHlvdSBjYW4gZXh0cmFjdCB1c2luZyB0aGUKK2Bg
bWV0YWRhdGEoKWBgIGZ1bmN0aW9uOjoKKworICAgID4+PiB3aGVlbF9tZXRhZGF0YSA9IG1ldGFk
YXRhKCd3aGVlbCcpCisKK1RoZSBrZXlzIG9mIHRoZSByZXR1cm5lZCBkYXRhIHN0cnVjdHVyZSBb
I2YxXV8gbmFtZSB0aGUgbWV0YWRhdGEga2V5d29yZHMsIGFuZAordGhlaXIgdmFsdWVzIGFyZSBy
ZXR1cm5lZCB1bnBhcnNlZCBmcm9tIHRoZSBkaXN0cmlidXRpb24gbWV0YWRhdGE6OgorCisgICAg
Pj4+IHdoZWVsX21ldGFkYXRhWydSZXF1aXJlcy1QeXRob24nXQorICAgICc+PTIuNywgIT0zLjAu
KiwgIT0zLjEuKiwgIT0zLjIuKiwgIT0zLjMuKicKKworCisuLiBfdmVyc2lvbjoKKworRGlzdHJp
YnV0aW9uIHZlcnNpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGBgdmVyc2lvbigp
YGAgZnVuY3Rpb24gaXMgdGhlIHF1aWNrZXN0IHdheSB0byBnZXQgYSBkaXN0cmlidXRpb24ncyB2
ZXJzaW9uCitudW1iZXIsIGFzIGEgc3RyaW5nOjoKKworICAgID4+PiB2ZXJzaW9uKCd3aGVlbCcp
CisgICAgJzAuMzIuMycKKworCisuLiBfZmlsZXM6CisKK0Rpc3RyaWJ1dGlvbiBmaWxlcworLS0t
LS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gYWxzbyBnZXQgdGhlIGZ1bGwgc2V0IG9mIGZpbGVz
IGNvbnRhaW5lZCB3aXRoaW4gYSBkaXN0cmlidXRpb24uICBUaGUKK2BgZmlsZXMoKWBgIGZ1bmN0
aW9uIHRha2VzIGEgZGlzdHJpYnV0aW9uIHBhY2thZ2UgbmFtZSBhbmQgcmV0dXJucyBhbGwgb2Yg
dGhlCitmaWxlcyBpbnN0YWxsZWQgYnkgdGhpcyBkaXN0cmlidXRpb24uICBFYWNoIGZpbGUgb2Jq
ZWN0IHJldHVybmVkIGlzIGEKK2BgUGFja2FnZVBhdGhgYCwgYSA6Y2xhc3M6YHBhdGhsaWIuUGF0
aGAgZGVyaXZlZCBvYmplY3Qgd2l0aCBhZGRpdGlvbmFsIGBgZGlzdGBgLAorYGBzaXplYGAsIGFu
ZCBgYGhhc2hgYCBwcm9wZXJ0aWVzIGFzIGluZGljYXRlZCBieSB0aGUgbWV0YWRhdGEuICBGb3Ig
ZXhhbXBsZTo6CisKKyAgICA+Pj4gdXRpbCA9IFtwIGZvciBwIGluIGZpbGVzKCd3aGVlbCcpIGlm
ICd1dGlsLnB5JyBpbiBzdHIocCldWzBdCisgICAgPj4+IHV0aWwKKyAgICBQYWNrYWdlUGF0aCgn
d2hlZWwvdXRpbC5weScpCisgICAgPj4+IHV0aWwuc2l6ZQorICAgIDg1OQorICAgID4+PiB1dGls
LmRpc3QKKyAgICA8aW1wb3J0bGliX21ldGFkYXRhLl9ob29rcy5QYXRoRGlzdHJpYnV0aW9uIG9i
amVjdCBhdCAweDEwMWUwY2VmMD4KKyAgICA+Pj4gdXRpbC5oYXNoCisgICAgPEZpbGVIYXNoIG1v
ZGU6IHNoYTI1NiB2YWx1ZTogYllrdzVvTWNjZmF6VkNvWVF3S2trZW1vVnlNQUZvUjM0bW1LQng4
UjFOST4KKworT25jZSB5b3UgaGF2ZSB0aGUgZmlsZSwgeW91IGNhbiBhbHNvIHJlYWQgaXRzIGNv
bnRlbnRzOjoKKworICAgID4+PiBwcmludCh1dGlsLnJlYWRfdGV4dCgpKQorICAgIGltcG9ydCBi
YXNlNjQKKyAgICBpbXBvcnQgc3lzCisgICAgLi4uCisgICAgZGVmIGFzX2J5dGVzKHMpOgorICAg
ICAgICBpZiBpc2luc3RhbmNlKHMsIHRleHRfdHlwZSk6CisgICAgICAgICAgICByZXR1cm4gcy5l
bmNvZGUoJ3V0Zi04JykKKyAgICAgICAgcmV0dXJuIHMKKworSW4gdGhlIGNhc2Ugd2hlcmUgdGhl
IG1ldGFkYXRhIGZpbGUgbGlzdGluZyBmaWxlcworKFJFQ09SRCBvciBTT1VSQ0VTLnR4dCkgaXMg
bWlzc2luZywgYGBmaWxlcygpYGAgd2lsbAorcmV0dXJuIGBgTm9uZWBgLiBUaGUgY2FsbGVyIG1h
eSB3aXNoIHRvIHdyYXAgY2FsbHMgdG8KK2BgZmlsZXMoKWBgIGluIGBhbHdheXNfaXRlcmFibGUK
KzxodHRwczovL21vcmUtaXRlcnRvb2xzLnJlYWR0aGVkb2NzLmlvL2VuL3N0YWJsZS9hcGkuaHRt
bCNtb3JlX2l0ZXJ0b29scy5hbHdheXNfaXRlcmFibGU+YF8KK29yIG90aGVyd2lzZSBndWFyZCBh
Z2FpbnN0IHRoaXMgY29uZGl0aW9uIGlmIHRoZSB0YXJnZXQKK2Rpc3RyaWJ1dGlvbiBpcyBub3Qg
a25vd24gdG8gaGF2ZSB0aGUgbWV0YWRhdGEgcHJlc2VudC4KKworLi4gX3JlcXVpcmVtZW50czoK
KworRGlzdHJpYnV0aW9uIHJlcXVpcmVtZW50cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CitUbyBnZXQgdGhlIGZ1bGwgc2V0IG9mIHJlcXVpcmVtZW50cyBmb3IgYSBkaXN0cmlidXRpb24s
IHVzZSB0aGUgYGByZXF1aXJlcygpYGAKK2Z1bmN0aW9uOjoKKworICAgID4+PiByZXF1aXJlcygn
d2hlZWwnKQorICAgIFsicHl0ZXN0ICg+PTMuMC4wKSA7IGV4dHJhID09ICd0ZXN0JyIsICJweXRl
c3QtY292IDsgZXh0cmEgPT0gJ3Rlc3QnIl0KKworCitEaXN0cmlidXRpb25zCis9PT09PT09PT09
PT09CisKK1doaWxlIHRoZSBhYm92ZSBBUEkgaXMgdGhlIG1vc3QgY29tbW9uIGFuZCBjb252ZW5p
ZW50IHVzYWdlLCB5b3UgY2FuIGdldCBhbGwKK29mIHRoYXQgaW5mb3JtYXRpb24gZnJvbSB0aGUg
YGBEaXN0cmlidXRpb25gYCBjbGFzcy4gIEEgYGBEaXN0cmlidXRpb25gYCBpcyBhbgorYWJzdHJh
Y3Qgb2JqZWN0IHRoYXQgcmVwcmVzZW50cyB0aGUgbWV0YWRhdGEgZm9yIGEgUHl0aG9uIHBhY2th
Z2UuICBZb3UgY2FuCitnZXQgdGhlIGBgRGlzdHJpYnV0aW9uYGAgaW5zdGFuY2U6OgorCisgICAg
Pj4+IGZyb20gaW1wb3J0bGliX21ldGFkYXRhIGltcG9ydCBkaXN0cmlidXRpb24KKyAgICA+Pj4g
ZGlzdCA9IGRpc3RyaWJ1dGlvbignd2hlZWwnKQorCitUaHVzLCBhbiBhbHRlcm5hdGl2ZSB3YXkg
dG8gZ2V0IHRoZSB2ZXJzaW9uIG51bWJlciBpcyB0aHJvdWdoIHRoZQorYGBEaXN0cmlidXRpb25g
YCBpbnN0YW5jZTo6CisKKyAgICA+Pj4gZGlzdC52ZXJzaW9uCisgICAgJzAuMzIuMycKKworVGhl
cmUgYXJlIGFsbCBraW5kcyBvZiBhZGRpdGlvbmFsIG1ldGFkYXRhIGF2YWlsYWJsZSBvbiB0aGUg
YGBEaXN0cmlidXRpb25gYAoraW5zdGFuY2U6OgorCisgICAgPj4+IGQubWV0YWRhdGFbJ1JlcXVp
cmVzLVB5dGhvbiddCisgICAgJz49Mi43LCAhPTMuMC4qLCAhPTMuMS4qLCAhPTMuMi4qLCAhPTMu
My4qJworICAgID4+PiBkLm1ldGFkYXRhWydMaWNlbnNlJ10KKyAgICAnTUlUJworCitUaGUgZnVs
bCBzZXQgb2YgYXZhaWxhYmxlIG1ldGFkYXRhIGlzIG5vdCBkZXNjcmliZWQgaGVyZS4gIFNlZSA6
cGVwOmA1NjZgCitmb3IgYWRkaXRpb25hbCBkZXRhaWxzLgorCisKK0V4dGVuZGluZyB0aGUgc2Vh
cmNoIGFsZ29yaXRobQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0JlY2F1c2Ug
cGFja2FnZSBtZXRhZGF0YSBpcyBub3QgYXZhaWxhYmxlIHRocm91Z2ggOmRhdGE6YHN5cy5wYXRo
YCBzZWFyY2hlcywgb3IKK3BhY2thZ2UgbG9hZGVycyBkaXJlY3RseSwgdGhlIG1ldGFkYXRhIGZv
ciBhIHBhY2thZ2UgaXMgZm91bmQgdGhyb3VnaCBpbXBvcnQKK3N5c3RlbSBgZmluZGVyc2BfLiAg
VG8gZmluZCBhIGRpc3RyaWJ1dGlvbiBwYWNrYWdlJ3MgbWV0YWRhdGEsCitgYGltcG9ydGxpYi5t
ZXRhZGF0YWBgIHF1ZXJpZXMgdGhlIGxpc3Qgb2YgOnRlcm06YG1ldGEgcGF0aCBmaW5kZXJzIDxt
ZXRhIHBhdGggZmluZGVyPmAgb24KKzpkYXRhOmBzeXMubWV0YV9wYXRoYC4KKworQnkgZGVmYXVs
dCBgYGltcG9ydGxpYl9tZXRhZGF0YWBgIGluc3RhbGxzIGEgZmluZGVyIGZvciBkaXN0cmlidXRp
b24gcGFja2FnZXMKK2ZvdW5kIG9uIHRoZSBmaWxlIHN5c3RlbS4gIFRoaXMgZmluZGVyIGRvZXNu
J3QgYWN0dWFsbHkgZmluZCBhbnkgKnBhY2thZ2VzKiwKK2J1dCBpdCBjYW4gZmluZCB0aGUgcGFj
a2FnZXMnIG1ldGFkYXRhLgorCitUaGUgYWJzdHJhY3QgY2xhc3MgOnB5OmNsYXNzOmBpbXBvcnRs
aWIuYWJjLk1ldGFQYXRoRmluZGVyYCBkZWZpbmVzIHRoZQoraW50ZXJmYWNlIGV4cGVjdGVkIG9m
IGZpbmRlcnMgYnkgUHl0aG9uJ3MgaW1wb3J0IHN5c3RlbS4KK2BgaW1wb3J0bGliX21ldGFkYXRh
YGAgZXh0ZW5kcyB0aGlzIHByb3RvY29sIGJ5IGxvb2tpbmcgZm9yIGFuIG9wdGlvbmFsCitgYGZp
bmRfZGlzdHJpYnV0aW9uc2BgIGNhbGxhYmxlIG9uIHRoZSBmaW5kZXJzIGZyb20KKzpkYXRhOmBz
eXMubWV0YV9wYXRoYCBhbmQgcHJlc2VudHMgdGhpcyBleHRlbmRlZCBpbnRlcmZhY2UgYXMgdGhl
CitgYERpc3RyaWJ1dGlvbkZpbmRlcmBgIGFic3RyYWN0IGJhc2UgY2xhc3MsIHdoaWNoIGRlZmlu
ZXMgdGhpcyBhYnN0cmFjdAorbWV0aG9kOjoKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAg
ICBkZWYgZmluZF9kaXN0cmlidXRpb25zKGNvbnRleHQ9RGlzdHJpYnV0aW9uRmluZGVyLkNvbnRl
eHQoKSk6CisgICAgICAgICIiIlJldHVybiBhbiBpdGVyYWJsZSBvZiBhbGwgRGlzdHJpYnV0aW9u
IGluc3RhbmNlcyBjYXBhYmxlIG9mCisgICAgICAgIGxvYWRpbmcgdGhlIG1ldGFkYXRhIGZvciBw
YWNrYWdlcyBmb3IgdGhlIGluZGljYXRlZCBgYGNvbnRleHRgYC4KKyAgICAgICAgIiIiCisKK1Ro
ZSBgYERpc3RyaWJ1dGlvbkZpbmRlci5Db250ZXh0YGAgb2JqZWN0IHByb3ZpZGVzIGBgLnBhdGhg
YCBhbmQgYGAubmFtZWBgCitwcm9wZXJ0aWVzIGluZGljYXRpbmcgdGhlIHBhdGggdG8gc2VhcmNo
IGFuZCBuYW1lIHRvIG1hdGNoIGFuZCBtYXkKK3N1cHBseSBvdGhlciByZWxldmFudCBjb250ZXh0
LgorCitXaGF0IHRoaXMgbWVhbnMgaW4gcHJhY3RpY2UgaXMgdGhhdCB0byBzdXBwb3J0IGZpbmRp
bmcgZGlzdHJpYnV0aW9uIHBhY2thZ2UKK21ldGFkYXRhIGluIGxvY2F0aW9ucyBvdGhlciB0aGFu
IHRoZSBmaWxlIHN5c3RlbSwgc3ViY2xhc3MKK2BgRGlzdHJpYnV0aW9uYGAgYW5kIGltcGxlbWVu
dCB0aGUgYWJzdHJhY3QgbWV0aG9kcy4gVGhlbiBmcm9tCithIGN1c3RvbSBmaW5kZXIsIHJldHVy
biBpbnN0YW5jZXMgb2YgdGhpcyBkZXJpdmVkIGBgRGlzdHJpYnV0aW9uYGAgaW4gdGhlCitgYGZp
bmRfZGlzdHJpYnV0aW9ucygpYGAgbWV0aG9kLgorCisKKy4uIF9gZW50cnkgcG9pbnQgQVBJYDog
aHR0cHM6Ly9zZXR1cHRvb2xzLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9wa2dfcmVzb3VyY2Vz
Lmh0bWwjZW50cnktcG9pbnRzCisuLiBfYG1ldGFkYXRhIEFQSWA6IGh0dHBzOi8vc2V0dXB0b29s
cy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvcGtnX3Jlc291cmNlcy5odG1sI21ldGFkYXRhLWFw
aQorLi4gX2BmaW5kZXJzYDogaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvaW1w
b3J0Lmh0bWwjZmluZGVycy1hbmQtbG9hZGVycworCisKKy4uIHJ1YnJpYzo6IEZvb3Rub3Rlcwor
CisuLiBbI2YxXSBUZWNobmljYWxseSwgdGhlIHJldHVybmVkIGRpc3RyaWJ1dGlvbiBtZXRhZGF0
YSBvYmplY3QgaXMgYW4KKyAgICAgICAgIDpjbGFzczpgZW1haWwubWVzc2FnZS5FbWFpbE1lc3Nh
Z2VgCisgICAgICAgICBpbnN0YW5jZSwgYnV0IHRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0
YWlsLCBhbmQgbm90IHBhcnQgb2YgdGhlCisgICAgICAgICBzdGFibGUgQVBJLiAgWW91IHNob3Vs
ZCBvbmx5IHVzZSBkaWN0aW9uYXJ5LWxpa2UgbWV0aG9kcyBhbmQgc3ludGF4CisgICAgICAgICB0
byBhY2Nlc3MgdGhlIG1ldGFkYXRhIGNvbnRlbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvZG9jcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L2RvY3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWIwMDE2NjAwNTVlNTlmNzM2NzEwYzZl
YmE3ZDg5NWFlOWI5MjRhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFk
YXRhL2RvY3MvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9p
bXBvcnRsaWJfbWV0YWRhdGEvZG9jcy9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFk
YXRhL2RvY3MvY2hhbmdlbG9nLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvY29u
Zi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvaW5kZXgucnN0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvZG9jcy91c2luZy5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGli
X21ldGFkYXRhL2ltcG9ydGxpYl9tZXRhZGF0YS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGli
X21ldGFkYXRhL2ltcG9ydGxpYl9tZXRhZGF0YS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWNi
YzJkMDNjNDE1MTA5YzE5NjBmZmQxNmMyN2IyMTBkY2M5ZWI3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1wb3J0bGliX21ldGFkYXRhL19faW5pdF9fLnB5CkBA
IC0wLDAgKzEsNjI3IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMs
IGFic29sdXRlX2ltcG9ydAorCitpbXBvcnQgaW8KK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBv
cnQgYWJjCitpbXBvcnQgY3N2CitpbXBvcnQgc3lzCitpbXBvcnQgemlwcAoraW1wb3J0IG9wZXJh
dG9yCitpbXBvcnQgZnVuY3Rvb2xzCitpbXBvcnQgaXRlcnRvb2xzCitpbXBvcnQgcG9zaXhwYXRo
CitpbXBvcnQgY29sbGVjdGlvbnMKKworZnJvbSAuX2NvbXBhdCBpbXBvcnQgKAorICAgIGluc3Rh
bGwsCisgICAgTnVsbEZpbmRlciwKKyAgICBDb25maWdQYXJzZXIsCisgICAgc3VwcHJlc3MsCisg
ICAgbWFwLAorICAgIEZpbGVOb3RGb3VuZEVycm9yLAorICAgIElzQURpcmVjdG9yeUVycm9yLAor
ICAgIE5vdEFEaXJlY3RvcnlFcnJvciwKKyAgICBQZXJtaXNzaW9uRXJyb3IsCisgICAgcGF0aGxp
YiwKKyAgICBNb2R1bGVOb3RGb3VuZEVycm9yLAorICAgIE1ldGFQYXRoRmluZGVyLAorICAgIGVt
YWlsX21lc3NhZ2VfZnJvbV9zdHJpbmcsCisgICAgUHlQeV9yZXByLAorICAgIHVuaXF1ZV9vcmRl
cmVkLAorICAgIHN0ciwKKyAgICApCitmcm9tIGltcG9ydGxpYiBpbXBvcnQgaW1wb3J0X21vZHVs
ZQorZnJvbSBpdGVydG9vbHMgaW1wb3J0IHN0YXJtYXAKKworCitfX21ldGFjbGFzc19fID0gdHlw
ZQorCisKK19fYWxsX18gPSBbCisgICAgJ0Rpc3RyaWJ1dGlvbicsCisgICAgJ0Rpc3RyaWJ1dGlv
bkZpbmRlcicsCisgICAgJ1BhY2thZ2VOb3RGb3VuZEVycm9yJywKKyAgICAnZGlzdHJpYnV0aW9u
JywKKyAgICAnZGlzdHJpYnV0aW9ucycsCisgICAgJ2VudHJ5X3BvaW50cycsCisgICAgJ2ZpbGVz
JywKKyAgICAnbWV0YWRhdGEnLAorICAgICdyZXF1aXJlcycsCisgICAgJ3ZlcnNpb24nLAorICAg
IF0KKworCitjbGFzcyBQYWNrYWdlTm90Rm91bmRFcnJvcihNb2R1bGVOb3RGb3VuZEVycm9yKToK
KyAgICAiIiJUaGUgcGFja2FnZSB3YXMgbm90IGZvdW5kLiIiIgorCisgICAgZGVmIF9fc3RyX18o
c2VsZik6CisgICAgICAgIHRtcGwgPSAiTm8gcGFja2FnZSBtZXRhZGF0YSB3YXMgZm91bmQgZm9y
IHtzZWxmLm5hbWV9IgorICAgICAgICByZXR1cm4gdG1wbC5mb3JtYXQoKipsb2NhbHMoKSkKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICBuYW1lLCA9IHNlbGYu
YXJncworICAgICAgICByZXR1cm4gbmFtZQorCisKK2NsYXNzIEVudHJ5UG9pbnQoCisgICAgICAg
IFB5UHlfcmVwciwKKyAgICAgICAgY29sbGVjdGlvbnMubmFtZWR0dXBsZSgnRW50cnlQb2ludEJh
c2UnLCAnbmFtZSB2YWx1ZSBncm91cCcpKToKKyAgICAiIiJBbiBlbnRyeSBwb2ludCBhcyBkZWZp
bmVkIGJ5IFB5dGhvbiBwYWNrYWdpbmcgY29udmVudGlvbnMuCisKKyAgICBTZWUgYHRoZSBwYWNr
YWdpbmcgZG9jcyBvbiBlbnRyeSBwb2ludHMKKyAgICA8aHR0cHM6Ly9wYWNrYWdpbmcucHl0aG9u
Lm9yZy9zcGVjaWZpY2F0aW9ucy9lbnRyeS1wb2ludHMvPmBfCisgICAgZm9yIG1vcmUgaW5mb3Jt
YXRpb24uCisgICAgIiIiCisKKyAgICBwYXR0ZXJuID0gcmUuY29tcGlsZSgKKyAgICAgICAgcico
P1A8bW9kdWxlPltcdy5dKylccyonCisgICAgICAgIHInKDpccyooP1A8YXR0cj5bXHcuXSspKT9c
cyonCisgICAgICAgIHInKD9QPGV4dHJhcz5cWy4qXF0pP1xzKiQnCisgICAgICAgICkKKyAgICAi
IiIKKyAgICBBIHJlZ3VsYXIgZXhwcmVzc2lvbiBkZXNjcmliaW5nIHRoZSBzeW50YXggZm9yIGFu
IGVudHJ5IHBvaW50LAorICAgIHdoaWNoIG1pZ2h0IGxvb2sgbGlrZToKKworICAgICAgICAtIG1v
ZHVsZQorICAgICAgICAtIHBhY2thZ2UubW9kdWxlCisgICAgICAgIC0gcGFja2FnZS5tb2R1bGU6
YXR0cmlidXRlCisgICAgICAgIC0gcGFja2FnZS5tb2R1bGU6b2JqZWN0LmF0dHJpYnV0ZQorICAg
ICAgICAtIHBhY2thZ2UubW9kdWxlOmF0dHIgW2V4dHJhMSwgZXh0cmEyXQorCisgICAgT3RoZXIg
Y29tYmluYXRpb25zIGFyZSBwb3NzaWJsZSBhcyB3ZWxsLgorCisgICAgVGhlIGV4cHJlc3Npb24g
aXMgbGVuaWVudCBhYm91dCB3aGl0ZXNwYWNlIGFyb3VuZCB0aGUgJzonLAorICAgIGZvbGxvd2lu
ZyB0aGUgYXR0ciwgYW5kIGZvbGxvd2luZyBhbnkgZXh0cmFzLgorICAgICIiIgorCisgICAgZGVm
IGxvYWQoc2VsZik6CisgICAgICAgICIiIkxvYWQgdGhlIGVudHJ5IHBvaW50IGZyb20gaXRzIGRl
ZmluaXRpb24uIElmIG9ubHkgYSBtb2R1bGUKKyAgICAgICAgaXMgaW5kaWNhdGVkIGJ5IHRoZSB2
YWx1ZSwgcmV0dXJuIHRoYXQgbW9kdWxlLiBPdGhlcndpc2UsCisgICAgICAgIHJldHVybiB0aGUg
bmFtZWQgb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgbWF0Y2ggPSBzZWxmLnBhdHRlcm4u
bWF0Y2goc2VsZi52YWx1ZSkKKyAgICAgICAgbW9kdWxlID0gaW1wb3J0X21vZHVsZShtYXRjaC5n
cm91cCgnbW9kdWxlJykpCisgICAgICAgIGF0dHJzID0gZmlsdGVyKE5vbmUsIChtYXRjaC5ncm91
cCgnYXR0cicpIG9yICcnKS5zcGxpdCgnLicpKQorICAgICAgICByZXR1cm4gZnVuY3Rvb2xzLnJl
ZHVjZShnZXRhdHRyLCBhdHRycywgbW9kdWxlKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1v
ZHVsZShzZWxmKToKKyAgICAgICAgbWF0Y2ggPSBzZWxmLnBhdHRlcm4ubWF0Y2goc2VsZi52YWx1
ZSkKKyAgICAgICAgcmV0dXJuIG1hdGNoLmdyb3VwKCdtb2R1bGUnKQorCisgICAgQHByb3BlcnR5
CisgICAgZGVmIGF0dHIoc2VsZik6CisgICAgICAgIG1hdGNoID0gc2VsZi5wYXR0ZXJuLm1hdGNo
KHNlbGYudmFsdWUpCisgICAgICAgIHJldHVybiBtYXRjaC5ncm91cCgnYXR0cicpCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgZXh0cmFzKHNlbGYpOgorICAgICAgICBtYXRjaCA9IHNlbGYucGF0
dGVybi5tYXRjaChzZWxmLnZhbHVlKQorICAgICAgICByZXR1cm4gbGlzdChyZS5maW5kaXRlcihy
J1x3KycsIG1hdGNoLmdyb3VwKCdleHRyYXMnKSBvciAnJykpCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgX2Zyb21fY29uZmlnKGNscywgY29uZmlnKToKKyAgICAgICAgcmV0dXJuIFsKKyAg
ICAgICAgICAgIGNscyhuYW1lLCB2YWx1ZSwgZ3JvdXApCisgICAgICAgICAgICBmb3IgZ3JvdXAg
aW4gY29uZmlnLnNlY3Rpb25zKCkKKyAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBjb25m
aWcuaXRlbXMoZ3JvdXApCisgICAgICAgICAgICBdCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBk
ZWYgX2Zyb21fdGV4dChjbHMsIHRleHQpOgorICAgICAgICBjb25maWcgPSBDb25maWdQYXJzZXIo
ZGVsaW1pdGVycz0nPScpCisgICAgICAgICMgY2FzZSBzZW5zaXRpdmU6IGh0dHBzOi8vc3RhY2tv
dmVyZmxvdy5jb20vcS8xNjExNzk5LzgxMjE4MworICAgICAgICBjb25maWcub3B0aW9ueGZvcm0g
PSBzdHIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY29uZmlnLnJlYWRfc3RyaW5nKHRleHQp
CisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjogICMgcHJhZ21hOiBub2NvdmVyCisgICAg
ICAgICAgICAjIFB5dGhvbiAyIGhhcyBubyByZWFkX3N0cmluZworICAgICAgICAgICAgY29uZmln
LnJlYWRmcChpby5TdHJpbmdJTyh0ZXh0KSkKKyAgICAgICAgcmV0dXJuIEVudHJ5UG9pbnQuX2Zy
b21fY29uZmlnKGNvbmZpZykKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgIiIi
CisgICAgICAgIFN1cHBseSBpdGVyIHNvIG9uZSBtYXkgY29uc3RydWN0IGRpY3RzIG9mIEVudHJ5
UG9pbnRzIGVhc2lseS4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBpdGVyKChzZWxmLm5h
bWUsIHNlbGYpKQorCisgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgIHJldHVybiAo
CisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXywKKyAgICAgICAgICAgIChzZWxmLm5hbWUsIHNl
bGYudmFsdWUsIHNlbGYuZ3JvdXApLAorICAgICAgICAgICAgKQorCisKK2NsYXNzIFBhY2thZ2VQ
YXRoKHBhdGhsaWIuUHVyZVBvc2l4UGF0aCk6CisgICAgIiIiQSByZWZlcmVuY2UgdG8gYSBwYXRo
IGluIGEgcGFja2FnZSIiIgorCisgICAgZGVmIHJlYWRfdGV4dChzZWxmLCBlbmNvZGluZz0ndXRm
LTgnKToKKyAgICAgICAgd2l0aCBzZWxmLmxvY2F0ZSgpLm9wZW4oZW5jb2Rpbmc9ZW5jb2Rpbmcp
IGFzIHN0cmVhbToKKyAgICAgICAgICAgIHJldHVybiBzdHJlYW0ucmVhZCgpCisKKyAgICBkZWYg
cmVhZF9iaW5hcnkoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5sb2NhdGUoKS5vcGVuKCdyYicp
IGFzIHN0cmVhbToKKyAgICAgICAgICAgIHJldHVybiBzdHJlYW0ucmVhZCgpCisKKyAgICBkZWYg
bG9jYXRlKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gYSBwYXRoLWxpa2Ugb2JqZWN0IGZvciB0
aGlzIHBhdGgiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuZGlzdC5sb2NhdGVfZmlsZShzZWxmKQor
CisKK2NsYXNzIEZpbGVIYXNoOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzcGVjKToKKyAgICAg
ICAgc2VsZi5tb2RlLCBfLCBzZWxmLnZhbHVlID0gc3BlYy5wYXJ0aXRpb24oJz0nKQorCisgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzxGaWxlSGFzaCBtb2RlOiB7fSB2
YWx1ZToge30+Jy5mb3JtYXQoc2VsZi5tb2RlLCBzZWxmLnZhbHVlKQorCisKK2NsYXNzIERpc3Ry
aWJ1dGlvbjoKKyAgICAiIiJBIFB5dGhvbiBkaXN0cmlidXRpb24gcGFja2FnZS4iIiIKKworICAg
IEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgcmVhZF90ZXh0KHNlbGYsIGZpbGVuYW1lKToK
KyAgICAgICAgIiIiQXR0ZW1wdCB0byBsb2FkIG1ldGFkYXRhIGZpbGUgZ2l2ZW4gYnkgdGhlIG5h
bWUuCisKKyAgICAgICAgOnBhcmFtIGZpbGVuYW1lOiBUaGUgbmFtZSBvZiB0aGUgZmlsZSBpbiB0
aGUgZGlzdHJpYnV0aW9uIGluZm8uCisgICAgICAgIDpyZXR1cm46IFRoZSB0ZXh0IGlmIGZvdW5k
LCBvdGhlcndpc2UgTm9uZS4KKyAgICAgICAgIiIiCisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9k
CisgICAgZGVmIGxvY2F0ZV9maWxlKHNlbGYsIHBhdGgpOgorICAgICAgICAiIiIKKyAgICAgICAg
R2l2ZW4gYSBwYXRoIHRvIGEgZmlsZSBpbiB0aGlzIGRpc3RyaWJ1dGlvbiwgcmV0dXJuIGEgcGF0
aAorICAgICAgICB0byBpdC4KKyAgICAgICAgIiIiCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBk
ZWYgZnJvbV9uYW1lKGNscywgbmFtZSk6CisgICAgICAgICIiIlJldHVybiB0aGUgRGlzdHJpYnV0
aW9uIGZvciB0aGUgZ2l2ZW4gcGFja2FnZSBuYW1lLgorCisgICAgICAgIDpwYXJhbSBuYW1lOiBU
aGUgbmFtZSBvZiB0aGUgZGlzdHJpYnV0aW9uIHBhY2thZ2UgdG8gc2VhcmNoIGZvci4KKyAgICAg
ICAgOnJldHVybjogVGhlIERpc3RyaWJ1dGlvbiBpbnN0YW5jZSAob3Igc3ViY2xhc3MgdGhlcmVv
ZikgZm9yIHRoZSBuYW1lZAorICAgICAgICAgICAgcGFja2FnZSwgaWYgZm91bmQuCisgICAgICAg
IDpyYWlzZXMgUGFja2FnZU5vdEZvdW5kRXJyb3I6IFdoZW4gdGhlIG5hbWVkIHBhY2thZ2UncyBk
aXN0cmlidXRpb24KKyAgICAgICAgICAgIG1ldGFkYXRhIGNhbm5vdCBiZSBmb3VuZC4KKyAgICAg
ICAgIiIiCisgICAgICAgIGZvciByZXNvbHZlciBpbiBjbHMuX2Rpc2NvdmVyX3Jlc29sdmVycygp
OgorICAgICAgICAgICAgZGlzdHMgPSByZXNvbHZlcihEaXN0cmlidXRpb25GaW5kZXIuQ29udGV4
dChuYW1lPW5hbWUpKQorICAgICAgICAgICAgZGlzdCA9IG5leHQoaXRlcihkaXN0cyksIE5vbmUp
CisgICAgICAgICAgICBpZiBkaXN0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJldHVy
biBkaXN0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBQYWNrYWdlTm90Rm91bmRF
cnJvcihuYW1lKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGRpc2NvdmVyKGNscywgKipr
d2FyZ3MpOgorICAgICAgICAiIiJSZXR1cm4gYW4gaXRlcmFibGUgb2YgRGlzdHJpYnV0aW9uIG9i
amVjdHMgZm9yIGFsbCBwYWNrYWdlcy4KKworICAgICAgICBQYXNzIGEgYGBjb250ZXh0YGAgb3Ig
cGFzcyBrZXl3b3JkIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0aW5nCisgICAgICAgIGEgY29udGV4
dC4KKworICAgICAgICA6Y29udGV4dDogQSBgYERpc3RyaWJ1dGlvbkZpbmRlci5Db250ZXh0YGAg
b2JqZWN0LgorICAgICAgICA6cmV0dXJuOiBJdGVyYWJsZSBvZiBEaXN0cmlidXRpb24gb2JqZWN0
cyBmb3IgYWxsIHBhY2thZ2VzLgorICAgICAgICAiIiIKKyAgICAgICAgY29udGV4dCA9IGt3YXJn
cy5wb3AoJ2NvbnRleHQnLCBOb25lKQorICAgICAgICBpZiBjb250ZXh0IGFuZCBrd2FyZ3M6Cisg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW5ub3QgYWNjZXB0IGNvbnRleHQgYW5kIGt3
YXJncyIpCisgICAgICAgIGNvbnRleHQgPSBjb250ZXh0IG9yIERpc3RyaWJ1dGlvbkZpbmRlci5D
b250ZXh0KCoqa3dhcmdzKQorICAgICAgICByZXR1cm4gaXRlcnRvb2xzLmNoYWluLmZyb21faXRl
cmFibGUoCisgICAgICAgICAgICByZXNvbHZlcihjb250ZXh0KQorICAgICAgICAgICAgZm9yIHJl
c29sdmVyIGluIGNscy5fZGlzY292ZXJfcmVzb2x2ZXJzKCkKKyAgICAgICAgICAgICkKKworICAg
IEBzdGF0aWNtZXRob2QKKyAgICBkZWYgYXQocGF0aCk6CisgICAgICAgICIiIlJldHVybiBhIERp
c3RyaWJ1dGlvbiBmb3IgdGhlIGluZGljYXRlZCBtZXRhZGF0YSBwYXRoCisKKyAgICAgICAgOnBh
cmFtIHBhdGg6IGEgc3RyaW5nIG9yIHBhdGgtbGlrZSBvYmplY3QKKyAgICAgICAgOnJldHVybjog
YSBjb25jcmV0ZSBEaXN0cmlidXRpb24gaW5zdGFuY2UgZm9yIHRoZSBwYXRoCisgICAgICAgICIi
IgorICAgICAgICByZXR1cm4gUGF0aERpc3RyaWJ1dGlvbihwYXRobGliLlBhdGgocGF0aCkpCisK
KyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIF9kaXNjb3Zlcl9yZXNvbHZlcnMoKToKKyAgICAg
ICAgIiIiU2VhcmNoIHRoZSBtZXRhX3BhdGggZm9yIHJlc29sdmVycy4iIiIKKyAgICAgICAgZGVj
bGFyZWQgPSAoCisgICAgICAgICAgICBnZXRhdHRyKGZpbmRlciwgJ2ZpbmRfZGlzdHJpYnV0aW9u
cycsIE5vbmUpCisgICAgICAgICAgICBmb3IgZmluZGVyIGluIHN5cy5tZXRhX3BhdGgKKyAgICAg
ICAgICAgICkKKyAgICAgICAgcmV0dXJuIGZpbHRlcihOb25lLCBkZWNsYXJlZCkKKworICAgIEBj
bGFzc21ldGhvZAorICAgIGRlZiBfbG9jYWwoY2xzLCByb290PScuJyk6CisgICAgICAgIGZyb20g
cGVwNTE3IGltcG9ydCBidWlsZCwgbWV0YQorICAgICAgICBzeXN0ZW0gPSBidWlsZC5jb21wYXRf
c3lzdGVtKHJvb3QpCisgICAgICAgIGJ1aWxkZXIgPSBmdW5jdG9vbHMucGFydGlhbCgKKyAgICAg
ICAgICAgIG1ldGEuYnVpbGQsCisgICAgICAgICAgICBzb3VyY2VfZGlyPXJvb3QsCisgICAgICAg
ICAgICBzeXN0ZW09c3lzdGVtLAorICAgICAgICAgICAgKQorICAgICAgICByZXR1cm4gUGF0aERp
c3RyaWJ1dGlvbih6aXBwLlBhdGgobWV0YS5idWlsZF9hc196aXAoYnVpbGRlcikpKQorCisgICAg
QHByb3BlcnR5CisgICAgZGVmIG1ldGFkYXRhKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhl
IHBhcnNlZCBtZXRhZGF0YSBmb3IgdGhpcyBEaXN0cmlidXRpb24uCisKKyAgICAgICAgVGhlIHJl
dHVybmVkIG9iamVjdCB3aWxsIGhhdmUga2V5cyB0aGF0IG5hbWUgdGhlIHZhcmlvdXMgYml0cyBv
ZgorICAgICAgICBtZXRhZGF0YS4gIFNlZSBQRVAgNTY2IGZvciBkZXRhaWxzLgorICAgICAgICAi
IiIKKyAgICAgICAgdGV4dCA9ICgKKyAgICAgICAgICAgIHNlbGYucmVhZF90ZXh0KCdNRVRBREFU
QScpCisgICAgICAgICAgICBvciBzZWxmLnJlYWRfdGV4dCgnUEtHLUlORk8nKQorICAgICAgICAg
ICAgIyBUaGlzIGxhc3QgY2xhdXNlIGlzIGhlcmUgdG8gc3VwcG9ydCBvbGQgZWdnLWluZm8gZmls
ZXMuICBJdHMKKyAgICAgICAgICAgICMgZWZmZWN0IGlzIHRvIGp1c3QgZW5kIHVwIHVzaW5nIHRo
ZSBQYXRoRGlzdHJpYnV0aW9uJ3Mgc2VsZi5fcGF0aAorICAgICAgICAgICAgIyAod2hpY2ggcG9p
bnRzIHRvIHRoZSBlZ2ctaW5mbyBmaWxlKSBhdHRyaWJ1dGUgdW5jaGFuZ2VkLgorICAgICAgICAg
ICAgb3Igc2VsZi5yZWFkX3RleHQoJycpCisgICAgICAgICAgICApCisgICAgICAgIHJldHVybiBl
bWFpbF9tZXNzYWdlX2Zyb21fc3RyaW5nKHRleHQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg
dmVyc2lvbihzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSAnVmVyc2lvbicgbWV0YWRhdGEg
Zm9yIHRoZSBkaXN0cmlidXRpb24gcGFja2FnZS4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYubWV0
YWRhdGFbJ1ZlcnNpb24nXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGVudHJ5X3BvaW50cyhz
ZWxmKToKKyAgICAgICAgcmV0dXJuIEVudHJ5UG9pbnQuX2Zyb21fdGV4dChzZWxmLnJlYWRfdGV4
dCgnZW50cnlfcG9pbnRzLnR4dCcpKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZpbGVzKHNl
bGYpOgorICAgICAgICAiIiJGaWxlcyBpbiB0aGlzIGRpc3RyaWJ1dGlvbi4KKworICAgICAgICA6
cmV0dXJuOiBMaXN0IG9mIFBhY2thZ2VQYXRoIGZvciB0aGlzIGRpc3RyaWJ1dGlvbiBvciBOb25l
CisKKyAgICAgICAgUmVzdWx0IGlzIGBOb25lYCBpZiB0aGUgbWV0YWRhdGEgZmlsZSB0aGF0IGVu
dW1lcmF0ZXMgZmlsZXMKKyAgICAgICAgKGkuZS4gUkVDT1JEIGZvciBkaXN0LWluZm8gb3IgU09V
UkNFUy50eHQgZm9yIGVnZy1pbmZvKSBpcworICAgICAgICBtaXNzaW5nLgorICAgICAgICBSZXN1
bHQgbWF5IGJlIGVtcHR5IGlmIHRoZSBtZXRhZGF0YSBleGlzdHMgYnV0IGlzIGVtcHR5LgorICAg
ICAgICAiIiIKKyAgICAgICAgZmlsZV9saW5lcyA9IHNlbGYuX3JlYWRfZmlsZXNfZGlzdGluZm8o
KSBvciBzZWxmLl9yZWFkX2ZpbGVzX2VnZ2luZm8oKQorCisgICAgICAgIGRlZiBtYWtlX2ZpbGUo
bmFtZSwgaGFzaD1Ob25lLCBzaXplX3N0cj1Ob25lKToKKyAgICAgICAgICAgIHJlc3VsdCA9IFBh
Y2thZ2VQYXRoKG5hbWUpCisgICAgICAgICAgICByZXN1bHQuaGFzaCA9IEZpbGVIYXNoKGhhc2gp
IGlmIGhhc2ggZWxzZSBOb25lCisgICAgICAgICAgICByZXN1bHQuc2l6ZSA9IGludChzaXplX3N0
cikgaWYgc2l6ZV9zdHIgZWxzZSBOb25lCisgICAgICAgICAgICByZXN1bHQuZGlzdCA9IHNlbGYK
KyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAgICAgICByZXR1cm4gZmlsZV9saW5lcyBh
bmQgbGlzdChzdGFybWFwKG1ha2VfZmlsZSwgY3N2LnJlYWRlcihmaWxlX2xpbmVzKSkpCisKKyAg
ICBkZWYgX3JlYWRfZmlsZXNfZGlzdGluZm8oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBS
ZWFkIHRoZSBsaW5lcyBvZiBSRUNPUkQKKyAgICAgICAgIiIiCisgICAgICAgIHRleHQgPSBzZWxm
LnJlYWRfdGV4dCgnUkVDT1JEJykKKyAgICAgICAgcmV0dXJuIHRleHQgYW5kIHRleHQuc3BsaXRs
aW5lcygpCisKKyAgICBkZWYgX3JlYWRfZmlsZXNfZWdnaW5mbyhzZWxmKToKKyAgICAgICAgIiIi
CisgICAgICAgIFNPVVJDRVMudHh0IG1pZ2h0IGNvbnRhaW4gbGl0ZXJhbCBjb21tYXMsIHNvIHdy
YXAgZWFjaCBsaW5lCisgICAgICAgIGluIHF1b3Rlcy4KKyAgICAgICAgIiIiCisgICAgICAgIHRl
eHQgPSBzZWxmLnJlYWRfdGV4dCgnU09VUkNFUy50eHQnKQorICAgICAgICByZXR1cm4gdGV4dCBh
bmQgbWFwKCcie30iJy5mb3JtYXQsIHRleHQuc3BsaXRsaW5lcygpKQorCisgICAgQHByb3BlcnR5
CisgICAgZGVmIHJlcXVpcmVzKHNlbGYpOgorICAgICAgICAiIiJHZW5lcmF0ZWQgcmVxdWlyZW1l
bnRzIHNwZWNpZmllZCBmb3IgdGhpcyBEaXN0cmlidXRpb24iIiIKKyAgICAgICAgcmVxcyA9IHNl
bGYuX3JlYWRfZGlzdF9pbmZvX3JlcXMoKSBvciBzZWxmLl9yZWFkX2VnZ19pbmZvX3JlcXMoKQor
ICAgICAgICByZXR1cm4gcmVxcyBhbmQgbGlzdChyZXFzKQorCisgICAgZGVmIF9yZWFkX2Rpc3Rf
aW5mb19yZXFzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tZXRhZGF0YS5nZXRfYWxsKCdS
ZXF1aXJlcy1EaXN0JykKKworICAgIGRlZiBfcmVhZF9lZ2dfaW5mb19yZXFzKHNlbGYpOgorICAg
ICAgICBzb3VyY2UgPSBzZWxmLnJlYWRfdGV4dCgncmVxdWlyZXMudHh0JykKKyAgICAgICAgcmV0
dXJuIHNvdXJjZSBhbmQgc2VsZi5fZGVwc19mcm9tX3JlcXVpcmVzX3RleHQoc291cmNlKQorCisg
ICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9kZXBzX2Zyb21fcmVxdWlyZXNfdGV4dChjbHMsIHNv
dXJjZSk6CisgICAgICAgIHNlY3Rpb25fcGFpcnMgPSBjbHMuX3JlYWRfc2VjdGlvbnMoc291cmNl
LnNwbGl0bGluZXMoKSkKKyAgICAgICAgc2VjdGlvbnMgPSB7CisgICAgICAgICAgICBzZWN0aW9u
OiBsaXN0KG1hcChvcGVyYXRvci5pdGVtZ2V0dGVyKCdsaW5lJyksIHJlc3VsdHMpKQorICAgICAg
ICAgICAgZm9yIHNlY3Rpb24sIHJlc3VsdHMgaW4KKyAgICAgICAgICAgIGl0ZXJ0b29scy5ncm91
cGJ5KHNlY3Rpb25fcGFpcnMsIG9wZXJhdG9yLml0ZW1nZXR0ZXIoJ3NlY3Rpb24nKSkKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNscy5fY29udmVydF9lZ2dfaW5mb19yZXFzX3RvX3Np
bXBsZV9yZXFzKHNlY3Rpb25zKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfcmVhZF9z
ZWN0aW9ucyhsaW5lcyk6CisgICAgICAgIHNlY3Rpb24gPSBOb25lCisgICAgICAgIGZvciBsaW5l
IGluIGZpbHRlcihOb25lLCBsaW5lcyk6CisgICAgICAgICAgICBzZWN0aW9uX21hdGNoID0gcmUu
bWF0Y2gocidcWyguKilcXSQnLCBsaW5lKQorICAgICAgICAgICAgaWYgc2VjdGlvbl9tYXRjaDoK
KyAgICAgICAgICAgICAgICBzZWN0aW9uID0gc2VjdGlvbl9tYXRjaC5ncm91cCgxKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICB5aWVsZCBsb2NhbHMoKQorCisgICAgQHN0
YXRpY21ldGhvZAorICAgIGRlZiBfY29udmVydF9lZ2dfaW5mb19yZXFzX3RvX3NpbXBsZV9yZXFz
KHNlY3Rpb25zKToKKyAgICAgICAgIiIiCisgICAgICAgIEhpc3RvcmljYWxseSwgc2V0dXB0b29s
cyB3b3VsZCBzb2xpY2l0IGFuZCBzdG9yZSAnZXh0cmEnCisgICAgICAgIHJlcXVpcmVtZW50cywg
aW5jbHVkaW5nIHRob3NlIHdpdGggZW52aXJvbm1lbnQgbWFya2VycywKKyAgICAgICAgaW4gc2Vw
YXJhdGUgc2VjdGlvbnMuIE1vcmUgbW9kZXJuIHRvb2xzIGV4cGVjdCBlYWNoCisgICAgICAgIGRl
cGVuZGVuY3kgdG8gYmUgZGVmaW5lZCBzZXBhcmF0ZWx5LCB3aXRoIGFueSByZWxldmFudAorICAg
ICAgICBleHRyYXMgYW5kIGVudmlyb25tZW50IG1hcmtlcnMgYXR0YWNoZWQgZGlyZWN0bHkgdG8g
dGhhdAorICAgICAgICByZXF1aXJlbWVudC4gVGhpcyBtZXRob2QgY29udmVydHMgdGhlIGZvcm1l
ciB0byB0aGUKKyAgICAgICAgbGF0dGVyLiBTZWUgX3Rlc3RfZGVwc19mcm9tX3JlcXVpcmVzX3Rl
eHQgZm9yIGFuIGV4YW1wbGUuCisgICAgICAgICIiIgorICAgICAgICBkZWYgbWFrZV9jb25kaXRp
b24obmFtZSk6CisgICAgICAgICAgICByZXR1cm4gbmFtZSBhbmQgJ2V4dHJhID09ICJ7bmFtZX0i
Jy5mb3JtYXQobmFtZT1uYW1lKQorCisgICAgICAgIGRlZiBwYXJzZV9jb25kaXRpb24oc2VjdGlv
bik6CisgICAgICAgICAgICBzZWN0aW9uID0gc2VjdGlvbiBvciAnJworICAgICAgICAgICAgZXh0
cmEsIHNlcCwgbWFya2VycyA9IHNlY3Rpb24ucGFydGl0aW9uKCc6JykKKyAgICAgICAgICAgIGlm
IGV4dHJhIGFuZCBtYXJrZXJzOgorICAgICAgICAgICAgICAgIG1hcmtlcnMgPSAnKHttYXJrZXJz
fSknLmZvcm1hdChtYXJrZXJzPW1hcmtlcnMpCisgICAgICAgICAgICBjb25kaXRpb25zID0gbGlz
dChmaWx0ZXIoTm9uZSwgW21hcmtlcnMsIG1ha2VfY29uZGl0aW9uKGV4dHJhKV0pKQorICAgICAg
ICAgICAgcmV0dXJuICc7ICcgKyAnIGFuZCAnLmpvaW4oY29uZGl0aW9ucykgaWYgY29uZGl0aW9u
cyBlbHNlICcnCisKKyAgICAgICAgZm9yIHNlY3Rpb24sIGRlcHMgaW4gc2VjdGlvbnMuaXRlbXMo
KToKKyAgICAgICAgICAgIGZvciBkZXAgaW4gZGVwczoKKyAgICAgICAgICAgICAgICB5aWVsZCBk
ZXAgKyBwYXJzZV9jb25kaXRpb24oc2VjdGlvbikKKworCitjbGFzcyBEaXN0cmlidXRpb25GaW5k
ZXIoTWV0YVBhdGhGaW5kZXIpOgorICAgICIiIgorICAgIEEgTWV0YVBhdGhGaW5kZXIgY2FwYWJs
ZSBvZiBkaXNjb3ZlcmluZyBpbnN0YWxsZWQgZGlzdHJpYnV0aW9ucy4KKyAgICAiIiIKKworICAg
IGNsYXNzIENvbnRleHQ6CisgICAgICAgICIiIgorICAgICAgICBLZXl3b3JkIGFyZ3VtZW50cyBw
cmVzZW50ZWQgYnkgdGhlIGNhbGxlciB0bworICAgICAgICBgYGRpc3RyaWJ1dGlvbnMoKWBgIG9y
IGBgRGlzdHJpYnV0aW9uLmRpc2NvdmVyKClgYAorICAgICAgICB0byBuYXJyb3cgdGhlIHNjb3Bl
IG9mIGEgc2VhcmNoIGZvciBkaXN0cmlidXRpb25zCisgICAgICAgIGluIGFsbCBEaXN0cmlidXRp
b25GaW5kZXJzLgorCisgICAgICAgIEVhY2ggRGlzdHJpYnV0aW9uRmluZGVyIG1heSBleHBlY3Qg
YW55IHBhcmFtZXRlcnMKKyAgICAgICAgYW5kIHNob3VsZCBhdHRlbXB0IHRvIGhvbm9yIHRoZSBj
YW5vbmljYWwKKyAgICAgICAgcGFyYW1ldGVycyBkZWZpbmVkIGJlbG93IHdoZW4gYXBwcm9wcmlh
dGUuCisgICAgICAgICIiIgorCisgICAgICAgIG5hbWUgPSBOb25lCisgICAgICAgICIiIgorICAg
ICAgICBTcGVjaWZpYyBuYW1lIGZvciB3aGljaCBhIGRpc3RyaWJ1dGlvbiBmaW5kZXIgc2hvdWxk
IG1hdGNoLgorICAgICAgICBBIG5hbWUgb2YgYGBOb25lYGAgbWF0Y2hlcyBhbGwgZGlzdHJpYnV0
aW9ucy4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdz
KToKKyAgICAgICAgICAgIHZhcnMoc2VsZikudXBkYXRlKGt3YXJncykKKworICAgICAgICBAcHJv
cGVydHkKKyAgICAgICAgZGVmIHBhdGgoc2VsZik6CisgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgIFRoZSBwYXRoIHRoYXQgYSBkaXN0cmlidXRpb24gZmluZGVyIHNob3VsZCBzZWFyY2guCisK
KyAgICAgICAgICAgIFR5cGljYWxseSByZWZlcnMgdG8gUHl0aG9uIHBhY2thZ2UgcGF0aHMgYW5k
IGRlZmF1bHRzCisgICAgICAgICAgICB0byBgYHN5cy5wYXRoYGAuCisgICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgIHJldHVybiB2YXJzKHNlbGYpLmdldCgncGF0aCcsIHN5cy5wYXRoKQorCisg
ICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgIGRlZiBmaW5kX2Rpc3RyaWJ1dGlvbnMoc2VsZiwg
Y29udGV4dD1Db250ZXh0KCkpOgorICAgICAgICAiIiIKKyAgICAgICAgRmluZCBkaXN0cmlidXRp
b25zLgorCisgICAgICAgIFJldHVybiBhbiBpdGVyYWJsZSBvZiBhbGwgRGlzdHJpYnV0aW9uIGlu
c3RhbmNlcyBjYXBhYmxlIG9mCisgICAgICAgIGxvYWRpbmcgdGhlIG1ldGFkYXRhIGZvciBwYWNr
YWdlcyBtYXRjaGluZyB0aGUgYGBjb250ZXh0YGAsCisgICAgICAgIGEgRGlzdHJpYnV0aW9uRmlu
ZGVyLkNvbnRleHQgaW5zdGFuY2UuCisgICAgICAgICIiIgorCisKK2NsYXNzIEZhc3RQYXRoOgor
ICAgICIiIgorICAgIE1pY3JvLW9wdGltaXplZCBjbGFzcyBmb3Igc2VhcmNoaW5nIGEgcGF0aCBm
b3IKKyAgICBjaGlsZHJlbi4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290
KToKKyAgICAgICAgc2VsZi5yb290ID0gc3RyKHJvb3QpCisgICAgICAgIHNlbGYuYmFzZSA9IG9z
LnBhdGguYmFzZW5hbWUoc2VsZi5yb290KS5sb3dlcigpCisKKyAgICBkZWYgam9pbnBhdGgoc2Vs
ZiwgY2hpbGQpOgorICAgICAgICByZXR1cm4gcGF0aGxpYi5QYXRoKHNlbGYucm9vdCwgY2hpbGQp
CisKKyAgICBkZWYgY2hpbGRyZW4oc2VsZik6CisgICAgICAgIHdpdGggc3VwcHJlc3MoRXhjZXB0
aW9uKToKKyAgICAgICAgICAgIHJldHVybiBvcy5saXN0ZGlyKHNlbGYucm9vdCBvciAnJykKKyAg
ICAgICAgd2l0aCBzdXBwcmVzcyhFeGNlcHRpb24pOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYu
emlwX2NoaWxkcmVuKCkKKyAgICAgICAgcmV0dXJuIFtdCisKKyAgICBkZWYgemlwX2NoaWxkcmVu
KHNlbGYpOgorICAgICAgICB6aXBfcGF0aCA9IHppcHAuUGF0aChzZWxmLnJvb3QpCisgICAgICAg
IG5hbWVzID0gemlwX3BhdGgucm9vdC5uYW1lbGlzdCgpCisgICAgICAgIHNlbGYuam9pbnBhdGgg
PSB6aXBfcGF0aC5qb2lucGF0aAorCisgICAgICAgIHJldHVybiB1bmlxdWVfb3JkZXJlZCgKKyAg
ICAgICAgICAgIGNoaWxkLnNwbGl0KHBvc2l4cGF0aC5zZXAsIDEpWzBdCisgICAgICAgICAgICBm
b3IgY2hpbGQgaW4gbmFtZXMKKyAgICAgICAgICAgICkKKworICAgIGRlZiBpc19lZ2coc2VsZiwg
c2VhcmNoKToKKyAgICAgICAgYmFzZSA9IHNlbGYuYmFzZQorICAgICAgICByZXR1cm4gKAorICAg
ICAgICAgICAgYmFzZSA9PSBzZWFyY2gudmVyc2lvbmxlc3NfZWdnX25hbWUKKyAgICAgICAgICAg
IG9yIGJhc2Uuc3RhcnRzd2l0aChzZWFyY2gucHJlZml4KQorICAgICAgICAgICAgYW5kIGJhc2Uu
ZW5kc3dpdGgoJy5lZ2cnKSkKKworICAgIGRlZiBzZWFyY2goc2VsZiwgbmFtZSk6CisgICAgICAg
IGZvciBjaGlsZCBpbiBzZWxmLmNoaWxkcmVuKCk6CisgICAgICAgICAgICBuX2xvdyA9IGNoaWxk
Lmxvd2VyKCkKKyAgICAgICAgICAgIGlmIChuX2xvdyBpbiBuYW1lLmV4YWN0X21hdGNoZXMKKyAg
ICAgICAgICAgICAgICAgICAgb3Igbl9sb3cucmVwbGFjZSgnLicsICdfJykuc3RhcnRzd2l0aChu
YW1lLnByZWZpeCkKKyAgICAgICAgICAgICAgICAgICAgYW5kIG5fbG93LmVuZHN3aXRoKG5hbWUu
c3VmZml4ZXMpCisgICAgICAgICAgICAgICAgICAgICMgbGVnYWN5IGNhc2U6CisgICAgICAgICAg
ICAgICAgICAgIG9yIHNlbGYuaXNfZWdnKG5hbWUpIGFuZCBuX2xvdyA9PSAnZWdnLWluZm8nKToK
KyAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLmpvaW5wYXRoKGNoaWxkKQorCisKK2NsYXNzIFBy
ZXBhcmVkOgorICAgICIiIgorICAgIEEgcHJlcGFyZWQgc2VhcmNoIGZvciBtZXRhZGF0YSBvbiBh
IHBvc3NpYmx5LW5hbWVkIHBhY2thZ2UuCisgICAgIiIiCisgICAgbm9ybWFsaXplZCA9ICcnCisg
ICAgcHJlZml4ID0gJycKKyAgICBzdWZmaXhlcyA9ICcuZGlzdC1pbmZvJywgJy5lZ2ctaW5mbycK
KyAgICBleGFjdF9tYXRjaGVzID0gWycnXVs6MF0KKyAgICB2ZXJzaW9ubGVzc19lZ2dfbmFtZSA9
ICcnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAgIHNlbGYubmFtZSA9
IG5hbWUKKyAgICAgICAgaWYgbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisgICAg
ICAgIHNlbGYubm9ybWFsaXplZCA9IHNlbGYubm9ybWFsaXplKG5hbWUpCisgICAgICAgIHNlbGYu
cHJlZml4ID0gc2VsZi5ub3JtYWxpemVkICsgJy0nCisgICAgICAgIHNlbGYuZXhhY3RfbWF0Y2hl
cyA9IFsKKyAgICAgICAgICAgIHNlbGYubm9ybWFsaXplZCArIHN1ZmZpeCBmb3Igc3VmZml4IGlu
IHNlbGYuc3VmZml4ZXNdCisgICAgICAgIHNlbGYudmVyc2lvbmxlc3NfZWdnX25hbWUgPSBzZWxm
Lm5vcm1hbGl6ZWQgKyAnLmVnZycKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgbm9ybWFs
aXplKG5hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgUEVQIDUwMyBub3JtYWxpemF0aW9uIHBs
dXMgZGFzaGVzIGFzIHVuZGVyc2NvcmVzLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHJl
LnN1YihyIlstXy5dKyIsICItIiwgbmFtZSkubG93ZXIoKS5yZXBsYWNlKCctJywgJ18nKQorCisK
K0BpbnN0YWxsCitjbGFzcyBNZXRhZGF0YVBhdGhGaW5kZXIoTnVsbEZpbmRlciwgRGlzdHJpYnV0
aW9uRmluZGVyKToKKyAgICAiIiJBIGRlZ2VuZXJhdGUgZmluZGVyIGZvciBkaXN0cmlidXRpb24g
cGFja2FnZXMgb24gdGhlIGZpbGUgc3lzdGVtLgorCisgICAgVGhpcyBmaW5kZXIgc3VwcGxpZXMg
b25seSBhIGZpbmRfZGlzdHJpYnV0aW9ucygpIG1ldGhvZCBmb3IgdmVyc2lvbnMKKyAgICBvZiBQ
eXRob24gdGhhdCBkbyBub3QgaGF2ZSBhIFBhdGhGaW5kZXIgZmluZF9kaXN0cmlidXRpb25zKCku
CisgICAgIiIiCisKKyAgICBkZWYgZmluZF9kaXN0cmlidXRpb25zKHNlbGYsIGNvbnRleHQ9RGlz
dHJpYnV0aW9uRmluZGVyLkNvbnRleHQoKSk6CisgICAgICAgICIiIgorICAgICAgICBGaW5kIGRp
c3RyaWJ1dGlvbnMuCisKKyAgICAgICAgUmV0dXJuIGFuIGl0ZXJhYmxlIG9mIGFsbCBEaXN0cmli
dXRpb24gaW5zdGFuY2VzIGNhcGFibGUgb2YKKyAgICAgICAgbG9hZGluZyB0aGUgbWV0YWRhdGEg
Zm9yIHBhY2thZ2VzIG1hdGNoaW5nIGBgY29udGV4dC5uYW1lYGAKKyAgICAgICAgKG9yIGFsbCBu
YW1lcyBpZiBgYE5vbmVgYCBpbmRpY2F0ZWQpIGFsb25nIHRoZSBwYXRocyBpbiB0aGUgbGlzdAor
ICAgICAgICBvZiBkaXJlY3RvcmllcyBgYGNvbnRleHQucGF0aGBgLgorICAgICAgICAiIiIKKyAg
ICAgICAgZm91bmQgPSBzZWxmLl9zZWFyY2hfcGF0aHMoY29udGV4dC5uYW1lLCBjb250ZXh0LnBh
dGgpCisgICAgICAgIHJldHVybiBtYXAoUGF0aERpc3RyaWJ1dGlvbiwgZm91bmQpCisKKyAgICBA
Y2xhc3NtZXRob2QKKyAgICBkZWYgX3NlYXJjaF9wYXRocyhjbHMsIG5hbWUsIHBhdGhzKToKKyAg
ICAgICAgIiIiRmluZCBtZXRhZGF0YSBkaXJlY3RvcmllcyBpbiBwYXRocyBoZXVyaXN0aWNhbGx5
LiIiIgorICAgICAgICByZXR1cm4gaXRlcnRvb2xzLmNoYWluLmZyb21faXRlcmFibGUoCisgICAg
ICAgICAgICBwYXRoLnNlYXJjaChQcmVwYXJlZChuYW1lKSkKKyAgICAgICAgICAgIGZvciBwYXRo
IGluIG1hcChGYXN0UGF0aCwgcGF0aHMpCisgICAgICAgICAgICApCisKKworY2xhc3MgUGF0aERp
c3RyaWJ1dGlvbihEaXN0cmlidXRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoKToK
KyAgICAgICAgIiIiQ29uc3RydWN0IGEgZGlzdHJpYnV0aW9uIGZyb20gYSBwYXRoIHRvIHRoZSBt
ZXRhZGF0YSBkaXJlY3RvcnkuCisKKyAgICAgICAgOnBhcmFtIHBhdGg6IEEgcGF0aGxpYi5QYXRo
IG9yIHNpbWlsYXIgb2JqZWN0IHN1cHBvcnRpbmcKKyAgICAgICAgICAgICAgICAgICAgIC5qb2lu
cGF0aCgpLCBfX2Rpdl9fLCAucGFyZW50LCBhbmQgLnJlYWRfdGV4dCgpLgorICAgICAgICAiIiIK
KyAgICAgICAgc2VsZi5fcGF0aCA9IHBhdGgKKworICAgIGRlZiByZWFkX3RleHQoc2VsZiwgZmls
ZW5hbWUpOgorICAgICAgICB3aXRoIHN1cHByZXNzKEZpbGVOb3RGb3VuZEVycm9yLCBJc0FEaXJl
Y3RvcnlFcnJvciwgS2V5RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgTm90QURpcmVjdG9y
eUVycm9yLCBQZXJtaXNzaW9uRXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGgu
am9pbnBhdGgoZmlsZW5hbWUpLnJlYWRfdGV4dChlbmNvZGluZz0ndXRmLTgnKQorICAgIHJlYWRf
dGV4dC5fX2RvY19fID0gRGlzdHJpYnV0aW9uLnJlYWRfdGV4dC5fX2RvY19fCisKKyAgICBkZWYg
bG9jYXRlX2ZpbGUoc2VsZiwgcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9wYXRoLnBhcmVu
dCAvIHBhdGgKKworCitkZWYgZGlzdHJpYnV0aW9uKGRpc3RyaWJ1dGlvbl9uYW1lKToKKyAgICAi
IiJHZXQgdGhlIGBgRGlzdHJpYnV0aW9uYGAgaW5zdGFuY2UgZm9yIHRoZSBuYW1lZCBwYWNrYWdl
LgorCisgICAgOnBhcmFtIGRpc3RyaWJ1dGlvbl9uYW1lOiBUaGUgbmFtZSBvZiB0aGUgZGlzdHJp
YnV0aW9uIHBhY2thZ2UgYXMgYSBzdHJpbmcuCisgICAgOnJldHVybjogQSBgYERpc3RyaWJ1dGlv
bmBgIGluc3RhbmNlIChvciBzdWJjbGFzcyB0aGVyZW9mKS4KKyAgICAiIiIKKyAgICByZXR1cm4g
RGlzdHJpYnV0aW9uLmZyb21fbmFtZShkaXN0cmlidXRpb25fbmFtZSkKKworCitkZWYgZGlzdHJp
YnV0aW9ucygqKmt3YXJncyk6CisgICAgIiIiR2V0IGFsbCBgYERpc3RyaWJ1dGlvbmBgIGluc3Rh
bmNlcyBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC4KKworICAgIDpyZXR1cm46IEFuIGl0ZXJh
YmxlIG9mIGBgRGlzdHJpYnV0aW9uYGAgaW5zdGFuY2VzLgorICAgICIiIgorICAgIHJldHVybiBE
aXN0cmlidXRpb24uZGlzY292ZXIoKiprd2FyZ3MpCisKKworZGVmIG1ldGFkYXRhKGRpc3RyaWJ1
dGlvbl9uYW1lKToKKyAgICAiIiJHZXQgdGhlIG1ldGFkYXRhIGZvciB0aGUgbmFtZWQgcGFja2Fn
ZS4KKworICAgIDpwYXJhbSBkaXN0cmlidXRpb25fbmFtZTogVGhlIG5hbWUgb2YgdGhlIGRpc3Ry
aWJ1dGlvbiBwYWNrYWdlIHRvIHF1ZXJ5LgorICAgIDpyZXR1cm46IEFuIGVtYWlsLk1lc3NhZ2Ug
Y29udGFpbmluZyB0aGUgcGFyc2VkIG1ldGFkYXRhLgorICAgICIiIgorICAgIHJldHVybiBEaXN0
cmlidXRpb24uZnJvbV9uYW1lKGRpc3RyaWJ1dGlvbl9uYW1lKS5tZXRhZGF0YQorCisKK2RlZiB2
ZXJzaW9uKGRpc3RyaWJ1dGlvbl9uYW1lKToKKyAgICAiIiJHZXQgdGhlIHZlcnNpb24gc3RyaW5n
IGZvciB0aGUgbmFtZWQgcGFja2FnZS4KKworICAgIDpwYXJhbSBkaXN0cmlidXRpb25fbmFtZTog
VGhlIG5hbWUgb2YgdGhlIGRpc3RyaWJ1dGlvbiBwYWNrYWdlIHRvIHF1ZXJ5LgorICAgIDpyZXR1
cm46IFRoZSB2ZXJzaW9uIHN0cmluZyBmb3IgdGhlIHBhY2thZ2UgYXMgZGVmaW5lZCBpbiB0aGUg
cGFja2FnZSdzCisgICAgICAgICJWZXJzaW9uIiBtZXRhZGF0YSBrZXkuCisgICAgIiIiCisgICAg
cmV0dXJuIGRpc3RyaWJ1dGlvbihkaXN0cmlidXRpb25fbmFtZSkudmVyc2lvbgorCisKK2RlZiBl
bnRyeV9wb2ludHMoKToKKyAgICAiIiJSZXR1cm4gRW50cnlQb2ludCBvYmplY3RzIGZvciBhbGwg
aW5zdGFsbGVkIHBhY2thZ2VzLgorCisgICAgOnJldHVybjogRW50cnlQb2ludCBvYmplY3RzIGZv
ciBhbGwgaW5zdGFsbGVkIHBhY2thZ2VzLgorICAgICIiIgorICAgIGVwcyA9IGl0ZXJ0b29scy5j
aGFpbi5mcm9tX2l0ZXJhYmxlKAorICAgICAgICBkaXN0LmVudHJ5X3BvaW50cyBmb3IgZGlzdCBp
biBkaXN0cmlidXRpb25zKCkpCisgICAgYnlfZ3JvdXAgPSBvcGVyYXRvci5hdHRyZ2V0dGVyKCdn
cm91cCcpCisgICAgb3JkZXJlZCA9IHNvcnRlZChlcHMsIGtleT1ieV9ncm91cCkKKyAgICBncm91
cGVkID0gaXRlcnRvb2xzLmdyb3VwYnkob3JkZXJlZCwgYnlfZ3JvdXApCisgICAgcmV0dXJuIHsK
KyAgICAgICAgZ3JvdXA6IHR1cGxlKGVwcykKKyAgICAgICAgZm9yIGdyb3VwLCBlcHMgaW4gZ3Jv
dXBlZAorICAgICAgICB9CisKKworZGVmIGZpbGVzKGRpc3RyaWJ1dGlvbl9uYW1lKToKKyAgICAi
IiJSZXR1cm4gYSBsaXN0IG9mIGZpbGVzIGZvciB0aGUgbmFtZWQgcGFja2FnZS4KKworICAgIDpw
YXJhbSBkaXN0cmlidXRpb25fbmFtZTogVGhlIG5hbWUgb2YgdGhlIGRpc3RyaWJ1dGlvbiBwYWNr
YWdlIHRvIHF1ZXJ5LgorICAgIDpyZXR1cm46IExpc3Qgb2YgZmlsZXMgY29tcG9zaW5nIHRoZSBk
aXN0cmlidXRpb24uCisgICAgIiIiCisgICAgcmV0dXJuIGRpc3RyaWJ1dGlvbihkaXN0cmlidXRp
b25fbmFtZSkuZmlsZXMKKworCitkZWYgcmVxdWlyZXMoZGlzdHJpYnV0aW9uX25hbWUpOgorICAg
ICIiIgorICAgIFJldHVybiBhIGxpc3Qgb2YgcmVxdWlyZW1lbnRzIGZvciB0aGUgbmFtZWQgcGFj
a2FnZS4KKworICAgIDpyZXR1cm46IEFuIGl0ZXJhdG9yIG9mIHJlcXVpcmVtZW50cywgc3VpdGFi
bGUgZm9yCisgICAgcGFja2FnaW5nLnJlcXVpcmVtZW50LlJlcXVpcmVtZW50LgorICAgICIiIgor
ICAgIHJldHVybiBkaXN0cmlidXRpb24oZGlzdHJpYnV0aW9uX25hbWUpLnJlcXVpcmVzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9pbXBvcnRsaWJfbWV0YWRhdGEvX2NvbXBh
dC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2ltcG9ydGxpYl9tZXRhZGF0YS9fY29tcGF0
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMwM2Q0YTIyZTg1MWY4Njc3NDFiOTM5NThlYzAzNWE5MDc3MTc3NzUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9pbXBvcnRsaWJfbWV0
YWRhdGEvX2NvbXBhdC5weQpAQCAtMCwwICsxLDE1MiBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIHVuaWNvZGVfbGl0ZXJhbHMKKworaW1wb3J0IGlvCitpbXBvcnQg
YWJjCitpbXBvcnQgc3lzCitpbXBvcnQgZW1haWwKKworCitpZiBzeXMudmVyc2lvbl9pbmZvID4g
KDMsKTogICMgcHJhZ21hOiBub2NvdmVyCisgICAgaW1wb3J0IGJ1aWx0aW5zCisgICAgZnJvbSBj
b25maWdwYXJzZXIgaW1wb3J0IENvbmZpZ1BhcnNlcgorICAgIGltcG9ydCBjb250ZXh0bGliCisg
ICAgRmlsZU5vdEZvdW5kRXJyb3IgPSBidWlsdGlucy5GaWxlTm90Rm91bmRFcnJvcgorICAgIElz
QURpcmVjdG9yeUVycm9yID0gYnVpbHRpbnMuSXNBRGlyZWN0b3J5RXJyb3IKKyAgICBOb3RBRGly
ZWN0b3J5RXJyb3IgPSBidWlsdGlucy5Ob3RBRGlyZWN0b3J5RXJyb3IKKyAgICBQZXJtaXNzaW9u
RXJyb3IgPSBidWlsdGlucy5QZXJtaXNzaW9uRXJyb3IKKyAgICBtYXAgPSBidWlsdGlucy5tYXAK
KyAgICBmcm9tIGl0ZXJ0b29scyBpbXBvcnQgZmlsdGVyZmFsc2UKK2Vsc2U6ICAjIHByYWdtYTog
bm9jb3ZlcgorICAgIGZyb20gYmFja3BvcnRzLmNvbmZpZ3BhcnNlciBpbXBvcnQgQ29uZmlnUGFy
c2VyCisgICAgZnJvbSBpdGVydG9vbHMgaW1wb3J0IGltYXAgYXMgbWFwICAjIHR5cGU6IGlnbm9y
ZQorICAgIGZyb20gaXRlcnRvb2xzIGltcG9ydCBpZmlsdGVyZmFsc2UgYXMgZmlsdGVyZmFsc2UK
KyAgICBpbXBvcnQgY29udGV4dGxpYjIgYXMgY29udGV4dGxpYgorICAgIEZpbGVOb3RGb3VuZEVy
cm9yID0gSU9FcnJvciwgT1NFcnJvcgorICAgIElzQURpcmVjdG9yeUVycm9yID0gSU9FcnJvciwg
T1NFcnJvcgorICAgIE5vdEFEaXJlY3RvcnlFcnJvciA9IElPRXJyb3IsIE9TRXJyb3IKKyAgICBQ
ZXJtaXNzaW9uRXJyb3IgPSBJT0Vycm9yLCBPU0Vycm9yCisKK3N0ciA9IHR5cGUoJycpCisKK3N1
cHByZXNzID0gY29udGV4dGxpYi5zdXBwcmVzcworCitpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMs
IDUpOiAgIyBwcmFnbWE6IG5vY292ZXIKKyAgICBpbXBvcnQgcGF0aGxpYgorZWxzZTogICMgcHJh
Z21hOiBub2NvdmVyCisgICAgaW1wb3J0IHBhdGhsaWIyIGFzIHBhdGhsaWIKKwordHJ5OgorICAg
IE1vZHVsZU5vdEZvdW5kRXJyb3IgPSBidWlsdGlucy5GaWxlTm90Rm91bmRFcnJvcgorZXhjZXB0
IChOYW1lRXJyb3IsIEF0dHJpYnV0ZUVycm9yKTogICMgcHJhZ21hOiBub2NvdmVyCisgICAgTW9k
dWxlTm90Rm91bmRFcnJvciA9IEltcG9ydEVycm9yICAjIHR5cGU6IGlnbm9yZQorCisKK2lmIHN5
cy52ZXJzaW9uX2luZm8gPj0gKDMsKTogICMgcHJhZ21hOiBub2NvdmVyCisgICAgZnJvbSBpbXBv
cnRsaWIuYWJjIGltcG9ydCBNZXRhUGF0aEZpbmRlcgorZWxzZTogICMgcHJhZ21hOiBub2NvdmVy
CisgICAgY2xhc3MgTWV0YVBhdGhGaW5kZXIob2JqZWN0KToKKyAgICAgICAgX19tZXRhY2xhc3Nf
XyA9IGFiYy5BQkNNZXRhCisKKworX19tZXRhY2xhc3NfXyA9IHR5cGUKK19fYWxsX18gPSBbCisg
ICAgJ2luc3RhbGwnLCAnTnVsbEZpbmRlcicsICdNZXRhUGF0aEZpbmRlcicsICdNb2R1bGVOb3RG
b3VuZEVycm9yJywKKyAgICAncGF0aGxpYicsICdDb25maWdQYXJzZXInLCAnbWFwJywgJ3N1cHBy
ZXNzJywgJ0ZpbGVOb3RGb3VuZEVycm9yJywKKyAgICAnTm90QURpcmVjdG9yeUVycm9yJywgJ2Vt
YWlsX21lc3NhZ2VfZnJvbV9zdHJpbmcnLAorICAgIF0KKworCitkZWYgaW5zdGFsbChjbHMpOgor
ICAgICIiIgorICAgIENsYXNzIGRlY29yYXRvciBmb3IgaW5zdGFsbGF0aW9uIG9uIHN5cy5tZXRh
X3BhdGguCisKKyAgICBBZGRzIHRoZSBiYWNrcG9ydCBEaXN0cmlidXRpb25GaW5kZXIgdG8gc3lz
Lm1ldGFfcGF0aCBhbmQKKyAgICBhdHRlbXB0cyB0byBkaXNhYmxlIHRoZSBmaW5kZXIgZnVuY3Rp
b25hbGl0eSBvZiB0aGUgc3RkbGliCisgICAgRGlzdHJpYnV0aW9uRmluZGVyLgorICAgICIiIgor
ICAgIHN5cy5tZXRhX3BhdGguYXBwZW5kKGNscygpKQorICAgIGRpc2FibGVfc3RkbGliX2ZpbmRl
cigpCisgICAgcmV0dXJuIGNscworCisKK2RlZiBkaXNhYmxlX3N0ZGxpYl9maW5kZXIoKToKKyAg
ICAiIiIKKyAgICBHaXZlIHRoZSBiYWNrcG9ydCBwcmltYWN5IGZvciBkaXNjb3ZlcmluZyBwYXRo
LWJhc2VkIGRpc3RyaWJ1dGlvbnMKKyAgICBieSBtb25rZXktcGF0Y2hpbmcgdGhlIHN0ZGxpYiBP
X08uCisKKyAgICBTZWUgIzkxIGZvciBtb3JlIGJhY2tncm91bmQgZm9yIHJhdGlvbmFsZSBvbiB0
aGlzIHNrZXRjaHkKKyAgICBiZWhhdmlvci4KKyAgICAiIiIKKyAgICBkZWYgbWF0Y2hlcyhmaW5k
ZXIpOgorICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgZ2V0YXR0cihmaW5kZXIsICdfX21v
ZHVsZV9fJywgTm9uZSkgPT0gJ19mcm96ZW5faW1wb3J0bGliX2V4dGVybmFsJworICAgICAgICAg
ICAgYW5kIGhhc2F0dHIoZmluZGVyLCAnZmluZF9kaXN0cmlidXRpb25zJykKKyAgICAgICAgICAg
ICkKKyAgICBmb3IgZmluZGVyIGluIGZpbHRlcihtYXRjaGVzLCBzeXMubWV0YV9wYXRoKTogICMg
cHJhZ21hOiBub2NvdmVyCisgICAgICAgIGRlbCBmaW5kZXIuZmluZF9kaXN0cmlidXRpb25zCisK
KworY2xhc3MgTnVsbEZpbmRlcjoKKyAgICAiIiIKKyAgICBBICJGaW5kZXIiIChha2EgIk1ldGFD
bGFzc0ZpbmRlciIpIHRoYXQgbmV2ZXIgZmluZHMgYW55IG1vZHVsZXMsCisgICAgYnV0IG1heSBm
aW5kIGRpc3RyaWJ1dGlvbnMuCisgICAgIiIiCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBm
aW5kX3NwZWMoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMg
SW4gUHl0aG9uIDIsIHRoZSBpbXBvcnQgc3lzdGVtIHJlcXVpcmVzIGZpbmRlcnMKKyAgICAjIHRv
IGhhdmUgYSBmaW5kX21vZHVsZSgpIG1ldGhvZCwgYnV0IHRoaXMgdXNhZ2UKKyAgICAjIGlzIGRl
cHJlY2F0ZWQgaW4gUHl0aG9uIDMgaW4gZmF2b3Igb2YgZmluZF9zcGVjKCkuCisgICAgIyBGb3Ig
dGhlIHB1cnBvc2VzIG9mIHRoaXMgZmluZGVyIChpLmUuIGJlaW5nIHByZXNlbnQKKyAgICAjIG9u
IHN5cy5tZXRhX3BhdGggYnV0IGhhdmluZyBubyBvdGhlciBpbXBvcnQKKyAgICAjIHN5c3RlbSBm
dW5jdGlvbmFsaXR5KSwgdGhlIHR3byBtZXRob2RzIGFyZSBpZGVudGljYWwuCisgICAgZmluZF9t
b2R1bGUgPSBmaW5kX3NwZWMKKworCitkZWYgcHkyX21lc3NhZ2VfZnJvbV9zdHJpbmcodGV4dCk6
ICAjIG5vY292ZXJweTMKKyAgICAjIFdvcmsgYXJvdW5kIGh0dHBzOi8vYnVncy5weXRob24ub3Jn
L2lzc3VlMjU1NDUgd2hlcmUKKyAgICAjIGVtYWlsLm1lc3NhZ2VfZnJvbV9zdHJpbmcgY2Fubm90
IGhhbmRsZSBVbmljb2RlIG9uIFB5dGhvbiAyLgorICAgIGlvX2J1ZmZlciA9IGlvLlN0cmluZ0lP
KHRleHQpCisgICAgcmV0dXJuIGVtYWlsLm1lc3NhZ2VfZnJvbV9maWxlKGlvX2J1ZmZlcikKKwor
CitlbWFpbF9tZXNzYWdlX2Zyb21fc3RyaW5nID0gKAorICAgIHB5Ml9tZXNzYWdlX2Zyb21fc3Ry
aW5nCisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCkgZWxzZQorICAgIGVtYWlsLm1lc3Nh
Z2VfZnJvbV9zdHJpbmcKKyAgICApCisKKworY2xhc3MgUHlQeV9yZXByOgorICAgICIiIgorICAg
IE92ZXJyaWRlIHJlcHIgZm9yIEVudHJ5UG9pbnQgb2JqZWN0cyBvbiBQeVB5IHRvIGF2b2lkIF9f
aXRlcl9fIGFjY2Vzcy4KKyAgICBSZWYgIzk3LCAjMTAyLgorICAgICIiIgorICAgIGFmZmVjdGVk
ID0gaGFzYXR0cihzeXMsICdweXB5X3ZlcnNpb25faW5mbycpCisKKyAgICBkZWYgX19jb21wYXRf
cmVwcl9fKHNlbGYpOiAgIyBwcmFnbWE6IG5vY292ZXIKKyAgICAgICAgZGVmIG1ha2VfcGFyYW0o
bmFtZSk6CisgICAgICAgICAgICB2YWx1ZSA9IGdldGF0dHIoc2VsZiwgbmFtZSkKKyAgICAgICAg
ICAgIHJldHVybiAne25hbWV9PXt2YWx1ZSFyfScuZm9ybWF0KCoqbG9jYWxzKCkpCisgICAgICAg
IHBhcmFtcyA9ICcsICcuam9pbihtYXAobWFrZV9wYXJhbSwgc2VsZi5fZmllbGRzKSkKKyAgICAg
ICAgcmV0dXJuICdFbnRyeVBvaW50KHtwYXJhbXN9KScuZm9ybWF0KCoqbG9jYWxzKCkpCisKKyAg
ICBpZiBhZmZlY3RlZDogICMgcHJhZ21hOiBub2NvdmVyCisgICAgICAgIF9fcmVwcl9fID0gX19j
b21wYXRfcmVwcl9fCisgICAgZGVsIGFmZmVjdGVkCisKKworIyBmcm9tIGl0ZXJ0b29scyByZWNp
cGVzCitkZWYgdW5pcXVlX2V2ZXJzZWVuKGl0ZXJhYmxlKTogICMgcHJhZ21hOiBub2NvdmVyCisg
ICAgIkxpc3QgdW5pcXVlIGVsZW1lbnRzLCBwcmVzZXJ2aW5nIG9yZGVyLiBSZW1lbWJlciBhbGwg
ZWxlbWVudHMgZXZlciBzZWVuLiIKKyAgICBzZWVuID0gc2V0KCkKKyAgICBzZWVuX2FkZCA9IHNl
ZW4uYWRkCisKKyAgICBmb3IgZWxlbWVudCBpbiBmaWx0ZXJmYWxzZShzZWVuLl9fY29udGFpbnNf
XywgaXRlcmFibGUpOgorICAgICAgICBzZWVuX2FkZChlbGVtZW50KQorICAgICAgICB5aWVsZCBl
bGVtZW50CisKKwordW5pcXVlX29yZGVyZWQgPSAoCisgICAgdW5pcXVlX2V2ZXJzZWVuIGlmIHN5
cy52ZXJzaW9uX2luZm8gPCAoMywgNykgZWxzZSBkaWN0LmZyb21rZXlzKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1wb3J0bGliX21ldGFkYXRhL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1wb3J0bGliX21ldGFkYXRhL3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdjMWMxOTg4MjRjOWUwMmY2MTBkMDk3ODUyYjJiY2I0MGRkOTMzMzAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9pbXBvcnRsaWJfbWV0
YWRhdGEvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvaW1wb3J0bGliX21ldGFkYXRhL19faW5pdF9fLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvaW1wb3J0bGliX21ldGFkYXRhL19jb21wYXQucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3ByZXBhcmUvZXhhbXBsZS9leGFtcGxlL19faW5pdF9f
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL2V4YW1wbGUvX19p
bml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE3M2I3NDMzOTQxNjljMzMwZTQ1ZmNlMWI0ZTVmZjYyNjRm
OGI3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3ByZXBhcmUv
ZXhhbXBsZS9leGFtcGxlL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMiBAQAorZGVmIG1haW4oKToK
KyAgICByZXR1cm4gJ2V4YW1wbGUnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0
YS9wcmVwYXJlL2V4YW1wbGUvZXhhbXBsZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGli
X21ldGFkYXRhL3ByZXBhcmUvZXhhbXBsZS9leGFtcGxlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQyMmQ5OWY2Mjg2MmJmMWMxMGJjYjA5YjcxNGRjZGFiMDJlMWE2ZDcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9wcmVwYXJlL2V4YW1wbGUvZXhhbXBsZS93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9t
ZXRhZGF0YS9wcmVwYXJlL2V4YW1wbGUvZXhhbXBsZS9fX2luaXRfXy5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL3NldHVwLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9p
bXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL3NldHVwLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2
NjNhZDM4OWEyNDNiZTJjMjRkZGNiYWEyODg4OTIzNzViYWI3ZTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9wcmVwYXJlL2V4YW1wbGUvc2V0dXAucHkKQEAgLTAs
MCArMSwxMCBAQAorZnJvbSBzZXR1cHRvb2xzIGltcG9ydCBzZXR1cAorc2V0dXAoCisgICAgbmFt
ZT0nZXhhbXBsZScsCisgICAgdmVyc2lvbj0nMjEuMTInLAorICAgIGxpY2Vuc2U9J0FwYWNoZSBT
b2Z0d2FyZSBMaWNlbnNlJywKKyAgICBwYWNrYWdlcz1bJ2V4YW1wbGUnXSwKKyAgICBlbnRyeV9w
b2ludHM9eworICAgICAgICAnY29uc29sZV9zY3JpcHRzJzogWydleGFtcGxlID0gZXhhbXBsZTpt
YWluJywgJ0V4YW1wbGU9ZXhhbXBsZTptYWluJ10sCisgICAgICAgIH0sCisgICAgKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNjMDgzMjc0YTEzM2UxZjRhMmJmYWIwNTQyM2ZkMmYzMWFlOWU5ZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9wcmVwYXJlL2V4YW1w
bGUvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS9weXByb2plY3QudG9tbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L3B5cHJvamVjdC50b21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1YzNhNmE0NTUyMzRkY2MzNTJiZWQ2N2RhNzFi
NzJkN2EwMzcyMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9w
eXByb2plY3QudG9tbApAQCAtMCwwICsxLDIgQEAKK1tidWlsZC1zeXN0ZW1dCityZXF1aXJlcyA9
IFsic2V0dXB0b29scz49MzAuMyIsICJ3aGVlbCIsICJzZXR1cHRvb2xzX3NjbSJdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9zZXR1cC5jZmcgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9t
ZXRhZGF0YS9zZXR1cC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmExMGM4ZDM1OGNhMjcyYWZjYmIyYWU3MGFj
YmFlYmJhN2RhMzE2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L3NldHVwLmNmZwpAQCAtMCwwICsxLDQ3IEBACitbbWV0YWRhdGFdCituYW1lID0gaW1wb3J0bGli
X21ldGFkYXRhCithdXRob3IgPSBKYXNvbiBSLiBDb29tYnMKK2F1dGhvcl9lbWFpbCA9IGphcmFj
b0BqYXJhY28uY29tCit1cmwgPSBodHRwOi8vaW1wb3J0bGliLW1ldGFkYXRhLnJlYWR0aGVkb2Nz
LmlvLworZGVzY3JpcHRpb24gPSBSZWFkIG1ldGFkYXRhIGZyb20gUHl0aG9uIHBhY2thZ2VzCits
b25nX2Rlc2NyaXB0aW9uID0gZmlsZTogUkVBRE1FLnJzdAorbGljZW5zZSA9IEFwYWNoZSBTb2Z0
d2FyZSBMaWNlbnNlCitjbGFzc2lmaWVycyA9CisgICAgRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDMg
LSBBbHBoYQorICAgIEludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMKKyAgICBMaWNlbnNl
IDo6IE9TSSBBcHByb3ZlZCA6OiBBcGFjaGUgU29mdHdhcmUgTGljZW5zZQorICAgIFRvcGljIDo6
IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcworICAgIFByb2dyYW1taW5nIExhbmd1
YWdlIDo6IFB5dGhvbiA6OiAzCisgICAgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6
IDIKKworW29wdGlvbnNdCitweXRob25fcmVxdWlyZXMgPSA+PTIuNywhPTMuMC4qLCE9My4xLios
IT0zLjIuKiwhPTMuMy4qLCE9My40LioKK3NldHVwX3JlcXVpcmVzID0gc2V0dXB0b29scy1zY20K
K2luc3RhbGxfcmVxdWlyZXMgPQorICAgIHppcHA+PTAuNQorICAgIHBhdGhsaWIyOyBweXRob25f
dmVyc2lvbiA8ICczJworICAgIGNvbnRleHRsaWIyOyBweXRob25fdmVyc2lvbiA8ICczJworICAg
IGNvbmZpZ3BhcnNlcj49My41OyBweXRob25fdmVyc2lvbiA8ICczJworcGFja2FnZXMgPSBpbXBv
cnRsaWJfbWV0YWRhdGEKKworW215cHldCitpZ25vcmVfbWlzc2luZ19pbXBvcnRzID0gVHJ1ZQor
IyBYWFggV2UgcmVhbGx5IHNob3VsZCB1c2UgdGhlIGRlZmF1bHQgYFRydWVgIHZhbHVlIGhlcmUs
IGJ1dCBpdCBjYXVzZXMgdG9vCisjIG1hbnkgd2FybmluZ3MsIHNvIGZvciBub3cganVzdCBkaXNh
YmxlIGl0LiAgRS5nLiBhIHBhY2thZ2UncyBfX3NwZWNfXyBpcworIyBkZWZpbmVkIGFzIE9wdGlv
bmFsW01vZHVsZVNwZWNdIHNvIHdlIGNhbid0IGp1c3QgYmxpbmRseSBwdWxsIGF0dHJpYnV0ZXMg
b2ZmCisjIG9mIHRoYXQgYXR0cmlidXRlLiAgVGhlIHJlYWwgZml4IGlzIHRvIGFkZCBjb25kaXRp
b25hbHMgb3IgYXNzZXJ0cyBwcm92aW5nCisjIHRoYXQgcGFja2FnZS5fX3NwZWNfXyBpcyBub3Qg
Tm9uZS4KK3N0cmljdF9vcHRpb25hbCA9IEZhbHNlCisKK1t3aGVlbF0KK3VuaXZlcnNhbD0xCisK
K1tvcHRpb25zLmV4dHJhc19yZXF1aXJlXQordGVzdGluZyA9CisgICAgaW1wb3J0bGliX3Jlc291
cmNlcz49MS4zOyBweXRob25fdmVyc2lvbiA8ICIzLjkiCisgICAgcGFja2FnaW5nCisgICAgcGVw
NTE3CisgICAgdW5pdHRlc3QyOyBweXRob25fdmVyc2lvbiA8ICIzIgorZG9jcyA9CisgICAgc3Bo
aW54CisgICAgcnN0LmxpbmtlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEv
c2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9zZXR1cC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NWQ0M2Q3YzkzYWNmODUzYTEwM2UzNTNhOTFiMzk3MmFhODg0ZDVjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvc2V0dXAucHkKQEAgLTAsMCArMSwzIEBACitmcm9t
IHNldHVwdG9vbHMgaW1wb3J0IHNldHVwCisKK3NldHVwKHVzZV9zY21fdmVyc2lvbj1UcnVlKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvX19pbml0X18ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgz
NGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAor
IyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3Rv
cnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0YS9fX2luaXRfXy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhL3Rlc3RzL2RhdGEvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4MzRi
ODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL2RhdGEvX19pbml0X18ucHkKQEAgLTAsMCArMSBA
QAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJl
Y3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0YS9leGFtcGxlLTIxLjEyLXB5My1u
b25lLWFueS53aGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9kYXRhL2V4YW1wbGUt
MjEuMTItcHkzLW5vbmUtYW55LndobApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDFhYjA3ZjdhYWRkNWMzZmZlMTk5
YjFlMzk3Yjg0NTA0NDQ0OTk0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNDU1CnpjbVdJV1dA
WnMjVXxgXjJzSCM1aEMjODk/TEpgT1ZWUFBPbnR3X3UqJFZ0X1lrSSY0QEVReWNURTIjQUxeYkox
WQp6ZCo7bUwzdEp1cUYqR2ZAR1U/Skg4YGlIXnh7bG13bmlFcDAjfUVLRmFTcVQjbVZYJSQpaipT
VzFGLV9hTHxyMzgKekp3cWVDbCs1QjEtT1JrU2UwXlduNUp3bHM1WGFjPWphLUtlTHxuZ3I3eWEy
TmE+KzItK19CZWI8KzxzPHZZMEQ8CnpKJVg/N3p3WEdoPDhDJEleQW9KKkF9X2R+VXA7PHcpaSVR
PzNPUzxvaWtiJFlzWnk3Tl9JRTFtVW42enItclJNNAp6V3F9ZHVjWGxxeSg9STtxS1lzSXBifSM8
QUMjaW9eVmg+cXRlKVR2Kz8hPW1YUDNJVT55Q1Nva19CLWFJSS1LdzMKelFNRE1MZ0YjcHBrSGY8
flR3USYqJndLY3V5fnlqV3Q5OTxvYE9RSEZTQnhKTmBKZVVIXzBsPTF6YlZNVz4hZ2xlCnpyI30x
Mnp6WVQhakxvaFlVd3AhSz5iKEJOdVI3T3dIRlVrc3A3aHhpcUBrKGhgO15QbVhNMiN3M1heTVJQ
b01YYAp6PlUoRE9sU2ZRdztXQD11XmBKSjtJZ1VXQWZ5WV4/Y19sQGFAZGYjcmNfcWJxQl40I3pl
Jl4wPnBGOGlfdE04fEcKek49SE1wP2BoRm1rMkFVX0pWUTV4ZGJEbT5RelVIc2N9TEpqP3FXdFgz
LTZ8STI1fHVgO3M5YipKUWtNWjdzVGhKCnptWmohXloxYVlne1NAOHhIb3VmRT1ySi1kVG0paHtK
Y2IzaUl7T0U/bCVDbUgpYTFheGFOJUEpPEM2KT51M1EybAp6RShaJSVUeklwbGgtPWV7YnNST2RU
fExIYDc0amMwRzF9ZC1pZShCZ1EpTygoYm10UEVBaWd4ZV4zK3pEXjJaUEEKej1Lal9AbGxuSGIl
cHFzPj17fmJ7SkZBPElGN3J0YHg/OTBaSzx3cHhtKE1iWEtsJWhFSVpnTCVvNXJwalAtK0ByCnp8
TXB3YV5HUiRSN2RTZkFBfiZxNnBKViNGJCo8bU5pJD5XVS1Gc1FMcGEweig5WExubntKIStkMkgp
bWkzOXRGTQp6V3d+Sj92O0RRajJXNTx9KmAzTzR4O2dpWno0ZEk8VSgqRnI3RTEtanw5TGFoWT5C
akVfbz1wb0hsOFAheHolfVIKel4yUGRVaHd4NE95a1c3TjBATHBzUFhkYTJLQWgtI3R+dllBb24z
KkdFTiU7NVh8ajVJYFBjdjRmYHhMb1NkRz5tCno9dHxmd3d0bjYmJjNrdHB0LT87LUp7Qk9HLUwh
N3lgIXlQPStySVR8ZWY/NW8+a3JsZFokPjUmWDU0dWg3fkVqNgp6cSFDMTYkPVMjVFY5VUE/P0Y8
WXs4aU5vOTtMT1BBcmxJRjJnbFhLcyF+a147aEgycDNnPkRwajl6WW5pMiMtPGQKeklSZjJPXm57
S3VSaFM5NDE1dUpheHs+SX45Y0pWZiNzb1lATEsxJn5IIUItUkpzU3w3MllUeGlHbCZOTzA3TFZ5
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRh
ZGF0YS90ZXN0cy9kYXRhL2V4YW1wbGUtMjEuMTItcHkzLjYuZWdnIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJf
bWV0YWRhdGEvdGVzdHMvZGF0YS9leGFtcGxlLTIxLjEyLXB5My42LmVnZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ZGIyOThhMTliMDlkMzYwZDE4ZjcyYTkxZTlkZDcwZDdkN2Y1NGVjCkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAxNDk3CnpjbVdJV1dAWnMjVXxgXjJjO3xmRkAzbkYwa3JwOERDPWQkKnY4JWhndUJW
QHl6a1l4Pmdifn44JGFUbS0hMWNTTwp6dEtOajlVMSEha2EwJj1zeFo8XjxVI2BPQ21YeGxsWVMk
fGJyfmt8Sz97e3pHSGRyRDI/OXQ8I0MzI19vbT07Y34KelZFMUE/PmM0ZkAja0NTKk4rPFowYF4m
T19aeCleSHV8ZzxqPEQkSFduJFB+UG9wN010dE5oLT5uN0dMNDJZZlohCnpFazV4WW8kNDNKKjN0
V1k8byk7alFqUD0zWEZeVTIyY1M2bD5Hb2chWCtXcCQwJURMeTs3JChxNC1JbTU0YzA1RQp6Q0BE
U1Yka3B0PzxNd2NHZDcrSTxwZUN6cypLMzhaPnMkUGM5VCFfezdjWGFoYD5pJj1QNHxfRitLcGY5
dDVSSGEKemEkTX1zQ2R2ZClEP2MlPi0pTHtSWXdmZ2M/YEIyY3YlM0FKaGdyblBBI1M0MD5HWGEz
NndGKk45WjBJQDxNeHUlCnp7JlViOCltQFg+dHtYN30tTk9qUHZkSGRBTmk5Z3RPRyhYM3U4aHln
JSohcVlJcSkkUDFGRyZSek4hYmNmd34tbAp6U1ExJXhZRjxmRVdxZCg/Vz9sKGNYU2QoRV5WO1ht
ZC1tJTQ+N0NOaShDbTkhd0FTTns/Z2BKKDRXUztiOGBjeUYKejgtTHlydzJgfSo1elU2WERWI3hF
SyRBSXVTUGE+UWxLZ2BCb1liPF45Rlc3akElO0NnY09TQ3ZQIWRYMldgUztUCnpWcD1NU2tFKCE0
T0dAKSNnKEE9JTVFY2dGKVFaSTFmfUIrU2AxczdjJSMhJGN5QEU8X1B2Nzdaekd1IXt6T2R5ewp6
NUpTX1ZFMFpvUXZTSXl0clImSUByYTIqe2RUMmdTRHFkKG03aWlLbUFPP2pNIW8tNWc8aXpCUilj
QU9XPkIkOV4KekJebWo3eTJmVGVpO3w2PkokPD89PWE9Wj42OSoxX244Qzx0el9eaUZLPlJhOXIl
MFF+Rnxqc3tIaiFsc1lgKUpACnpRYzhPcS10WXQrWDlfeWJGKHYpZT94WFhmQ2VEYlNGblFPY2cm
WmstTytRajZndl4+YmRDfmtTbE9rZ2xPYGtrNwp6SlpmUWRWeG19bitNQFpoPUI/d3V4PWRidns+
PHItTGh8ZHcxMWheISU/KndEUUBqbUBafHFaPTs5NTZKSzxleGQKenI4SUBZPyEjKjRfRGZDRnVr
eCtvVWN3M1ZCX29wdkd3d19ZXmVQeEVYI2BSNV5iWDZTPS1TYVUydCtkaiE7OzMkCnokbDgmejMl
VXUma3F0YDlGdERXMm4tUiRZKmIrOW5RUndMIVZOQHJ3UVJ0fjAtNUIpNWkha09qdk4wJTA4UWx6
SQp6VXhBVl4zQG1CWFdKMjs0RUl9aHskQ2pRRStNfEttNW9yO2d4eyhiNG05Xi19N2glOSE2YXhx
KjxeWFMySGpyaXgKTkFUJDdLb2VVfj03eXpWUSUxOzBRCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9kYXRhL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0YS93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iNjFlMDUwYmNjODQ2NzBhMGU3NTMwYjdhZjE5NzM3MTFlZTU5ZDA2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0YS93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRh
ZGF0YS90ZXN0cy9kYXRhL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVz
dHMvZGF0YS9leGFtcGxlLTIxLjEyLXB5My1ub25lLWFueS53aGwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9t
ZXRhZGF0YS90ZXN0cy9kYXRhL2V4YW1wbGUtMjEuMTItcHkzLjYuZWdnCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9maXh0dXJlcy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGli
X21ldGFkYXRhL3Rlc3RzL2ZpeHR1cmVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkODM0YzY1ODBjM2FjZmQ0
ODI2MWI0NzNlYmU4ZGNjZWI0NTQ1MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxp
Yl9tZXRhZGF0YS90ZXN0cy9maXh0dXJlcy5weQpAQCAtMCwwICsxLDI2MyBAQAorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cwor
aW1wb3J0IHNodXRpbAoraW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgdGV4dHdyYXAKKworZnJvbSAu
cHkzOWNvbXBhdCBpbXBvcnQgRlNfTk9OQVNDSUkKKworZnJvbSBpbXBvcnRsaWJfbWV0YWRhdGEu
X2NvbXBhdCBpbXBvcnQgcGF0aGxpYiwgY29udGV4dGxpYgorCisKK19fbWV0YWNsYXNzX18gPSB0
eXBlCisKKworQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKK2RlZiB0ZW1wZGlyKCk6CisgICAg
dG1wZGlyID0gdGVtcGZpbGUubWtkdGVtcCgpCisgICAgdHJ5OgorICAgICAgICB5aWVsZCBwYXRo
bGliLlBhdGgodG1wZGlyKQorICAgIGZpbmFsbHk6CisgICAgICAgIHNodXRpbC5ybXRyZWUodG1w
ZGlyKQorCisKK0Bjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCitkZWYgc2F2ZV9jd2QoKToKKyAg
ICBvcmlnID0gb3MuZ2V0Y3dkKCkKKyAgICB0cnk6CisgICAgICAgIHlpZWxkCisgICAgZmluYWxs
eToKKyAgICAgICAgb3MuY2hkaXIob3JpZykKKworCitAY29udGV4dGxpYi5jb250ZXh0bWFuYWdl
cgorZGVmIHRlbXBkaXJfYXNfY3dkKCk6CisgICAgd2l0aCB0ZW1wZGlyKCkgYXMgdG1wOgorICAg
ICAgICB3aXRoIHNhdmVfY3dkKCk6CisgICAgICAgICAgICBvcy5jaGRpcihzdHIodG1wKSkKKyAg
ICAgICAgICAgIHlpZWxkIHRtcAorCisKK0Bjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCitkZWYg
aW5zdGFsbF9maW5kZXIoZmluZGVyKToKKyAgICBzeXMubWV0YV9wYXRoLmFwcGVuZChmaW5kZXIp
CisgICAgdHJ5OgorICAgICAgICB5aWVsZAorICAgIGZpbmFsbHk6CisgICAgICAgIHN5cy5tZXRh
X3BhdGgucmVtb3ZlKGZpbmRlcikKKworCitjbGFzcyBGaXh0dXJlczoKKyAgICBkZWYgc2V0VXAo
c2VsZik6CisgICAgICAgIHNlbGYuZml4dHVyZXMgPSBjb250ZXh0bGliLkV4aXRTdGFjaygpCisg
ICAgICAgIHNlbGYuYWRkQ2xlYW51cChzZWxmLmZpeHR1cmVzLmNsb3NlKQorCisKK2NsYXNzIFNp
dGVEaXIoRml4dHVyZXMpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoU2l0
ZURpciwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmLnNpdGVfZGlyID0gc2VsZi5maXh0dXJl
cy5lbnRlcl9jb250ZXh0KHRlbXBkaXIoKSkKKworCitjbGFzcyBPblN5c1BhdGgoRml4dHVyZXMp
OgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorICAg
IGRlZiBhZGRfc3lzX3BhdGgoZGlyKToKKyAgICAgICAgc3lzLnBhdGhbOjBdID0gW3N0cihkaXIp
XQorICAgICAgICB0cnk6CisgICAgICAgICAgICB5aWVsZAorICAgICAgICBmaW5hbGx5OgorICAg
ICAgICAgICAgc3lzLnBhdGgucmVtb3ZlKHN0cihkaXIpKQorCisgICAgZGVmIHNldFVwKHNlbGYp
OgorICAgICAgICBzdXBlcihPblN5c1BhdGgsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZi5m
aXh0dXJlcy5lbnRlcl9jb250ZXh0KHNlbGYuYWRkX3N5c19wYXRoKHNlbGYuc2l0ZV9kaXIpKQor
CisKK2NsYXNzIERpc3RJbmZvUGtnKE9uU3lzUGF0aCwgU2l0ZURpcik6CisgICAgZmlsZXMgPSB7
CisgICAgICAgICJkaXN0aW5mb19wa2ctMS4wLjAuZGlzdC1pbmZvIjogeworICAgICAgICAgICAg
Ik1FVEFEQVRBIjogIiIiCisgICAgICAgICAgICAgICAgTmFtZTogZGlzdGluZm8tcGtnCisgICAg
ICAgICAgICAgICAgQXV0aG9yOiBTdGV2ZW4gTWEKKyAgICAgICAgICAgICAgICBWZXJzaW9uOiAx
LjAuMAorICAgICAgICAgICAgICAgIFJlcXVpcmVzLURpc3Q6IHdoZWVsID49IDEuMAorICAgICAg
ICAgICAgICAgIFJlcXVpcmVzLURpc3Q6IHB5dGVzdDsgZXh0cmEgPT0gJ3Rlc3QnCisgICAgICAg
ICAgICAgICAgIiIiLAorICAgICAgICAgICAgIlJFQ09SRCI6ICJtb2QucHksc2hhMjU2PWFiYywy
MFxuIiwKKyAgICAgICAgICAgICJlbnRyeV9wb2ludHMudHh0IjogIiIiCisgICAgICAgICAgICAg
ICAgW2VudHJpZXNdCisgICAgICAgICAgICAgICAgbWFpbiA9IG1vZDptYWluCisgICAgICAgICAg
ICAgICAgbnM6c3ViID0gbW9kOm1haW4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgfSwK
KyAgICAgICAgIm1vZC5weSI6ICIiIgorICAgICAgICAgICAgZGVmIG1haW4oKToKKyAgICAgICAg
ICAgICAgICBwcmludCgiaGVsbG8gd29ybGQiKQorICAgICAgICAgICAgIiIiLAorICAgICAgICB9
CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKERpc3RJbmZvUGtnLCBzZWxm
KS5zZXRVcCgpCisgICAgICAgIGJ1aWxkX2ZpbGVzKERpc3RJbmZvUGtnLmZpbGVzLCBzZWxmLnNp
dGVfZGlyKQorCisKK2NsYXNzIERpc3RJbmZvUGtnV2l0aERvdChPblN5c1BhdGgsIFNpdGVEaXIp
OgorICAgIGZpbGVzID0geworICAgICAgICAicGtnX2RvdC0xLjAuMC5kaXN0LWluZm8iOiB7Cisg
ICAgICAgICAgICAiTUVUQURBVEEiOiAiIiIKKyAgICAgICAgICAgICAgICBOYW1lOiBwa2cuZG90
CisgICAgICAgICAgICAgICAgVmVyc2lvbjogMS4wLjAKKyAgICAgICAgICAgICAgICAiIiIsCisg
ICAgICAgICAgICB9LAorICAgICAgICB9CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAg
IHN1cGVyKERpc3RJbmZvUGtnV2l0aERvdCwgc2VsZikuc2V0VXAoKQorICAgICAgICBidWlsZF9m
aWxlcyhEaXN0SW5mb1BrZ1dpdGhEb3QuZmlsZXMsIHNlbGYuc2l0ZV9kaXIpCisKKworY2xhc3Mg
RGlzdEluZm9Qa2dXaXRoRG90TGVnYWN5KE9uU3lzUGF0aCwgU2l0ZURpcik6CisgICAgZmlsZXMg
PSB7CisgICAgICAgICJwa2cuZG90LTEuMC4wLmRpc3QtaW5mbyI6IHsKKyAgICAgICAgICAgICJN
RVRBREFUQSI6ICIiIgorICAgICAgICAgICAgICAgIE5hbWU6IHBrZy5kb3QKKyAgICAgICAgICAg
ICAgICBWZXJzaW9uOiAxLjAuMAorICAgICAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgIH0s
CisgICAgICAgIH0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoRGlzdElu
Zm9Qa2dXaXRoRG90TGVnYWN5LCBzZWxmKS5zZXRVcCgpCisgICAgICAgIGJ1aWxkX2ZpbGVzKERp
c3RJbmZvUGtnV2l0aERvdExlZ2FjeS5maWxlcywgc2VsZi5zaXRlX2RpcikKKworCitjbGFzcyBE
aXN0SW5mb1BrZ09mZlBhdGgoU2l0ZURpcik6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAg
ICBzdXBlcihEaXN0SW5mb1BrZ09mZlBhdGgsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgYnVpbGRf
ZmlsZXMoRGlzdEluZm9Qa2cuZmlsZXMsIHNlbGYuc2l0ZV9kaXIpCisKKworY2xhc3MgRWdnSW5m
b1BrZyhPblN5c1BhdGgsIFNpdGVEaXIpOgorICAgIGZpbGVzID0geworICAgICAgICAiZWdnaW5m
b19wa2cuZWdnLWluZm8iOiB7CisgICAgICAgICAgICAiUEtHLUlORk8iOiAiIiIKKyAgICAgICAg
ICAgICAgICBOYW1lOiBlZ2dpbmZvLXBrZworICAgICAgICAgICAgICAgIEF1dGhvcjogU3RldmVu
IE1hCisgICAgICAgICAgICAgICAgTGljZW5zZTogVW5rbm93bgorICAgICAgICAgICAgICAgIFZl
cnNpb246IDEuMC4wCisgICAgICAgICAgICAgICAgQ2xhc3NpZmllcjogSW50ZW5kZWQgQXVkaWVu
Y2UgOjogRGV2ZWxvcGVycworICAgICAgICAgICAgICAgIENsYXNzaWZpZXI6IFRvcGljIDo6IFNv
ZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcworICAgICAgICAgICAgICAgICIiIiwKKyAg
ICAgICAgICAgICJTT1VSQ0VTLnR4dCI6ICIiIgorICAgICAgICAgICAgICAgIG1vZC5weQorICAg
ICAgICAgICAgICAgIGVnZ2luZm9fcGtnLmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKKyAgICAgICAg
ICAgICIiIiwKKyAgICAgICAgICAgICJlbnRyeV9wb2ludHMudHh0IjogIiIiCisgICAgICAgICAg
ICAgICAgW2VudHJpZXNdCisgICAgICAgICAgICAgICAgbWFpbiA9IG1vZDptYWluCisgICAgICAg
ICAgICAiIiIsCisgICAgICAgICAgICAicmVxdWlyZXMudHh0IjogIiIiCisgICAgICAgICAgICAg
ICAgd2hlZWwgPj0gMS4wOyBweXRob25fdmVyc2lvbiA+PSAiMi43IgorICAgICAgICAgICAgICAg
IFt0ZXN0XQorICAgICAgICAgICAgICAgIHB5dGVzdAorICAgICAgICAgICAgIiIiLAorICAgICAg
ICAgICAgInRvcF9sZXZlbC50eHQiOiAibW9kXG4iCisgICAgICAgICAgICB9LAorICAgICAgICAi
bW9kLnB5IjogIiIiCisgICAgICAgICAgICBkZWYgbWFpbigpOgorICAgICAgICAgICAgICAgIHBy
aW50KCJoZWxsbyB3b3JsZCIpCisgICAgICAgICAgICAiIiIsCisgICAgICAgIH0KKworICAgIGRl
ZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoRWdnSW5mb1BrZywgc2VsZikuc2V0VXAoKQor
ICAgICAgICBidWlsZF9maWxlcyhFZ2dJbmZvUGtnLmZpbGVzLCBwcmVmaXg9c2VsZi5zaXRlX2Rp
cikKKworCitjbGFzcyBFZ2dJbmZvRmlsZShPblN5c1BhdGgsIFNpdGVEaXIpOgorICAgIGZpbGVz
ID0geworICAgICAgICAiZWdnaW5mb19maWxlLmVnZy1pbmZvIjogIiIiCisgICAgICAgICAgICBN
ZXRhZGF0YS1WZXJzaW9uOiAxLjAKKyAgICAgICAgICAgIE5hbWU6IGVnZ2luZm9fZmlsZQorICAg
ICAgICAgICAgVmVyc2lvbjogMC4xCisgICAgICAgICAgICBTdW1tYXJ5OiBBbiBleGFtcGxlIHBh
Y2thZ2UKKyAgICAgICAgICAgIEhvbWUtcGFnZTogd3d3LmV4YW1wbGUuY29tCisgICAgICAgICAg
ICBBdXRob3I6IEVyaWMgSGFmZmEtVmVlCisgICAgICAgICAgICBBdXRob3ItZW1haWw6IGVyaWNA
ZXhhbXBsZS5jb21zCisgICAgICAgICAgICBMaWNlbnNlOiBVTktOT1dOCisgICAgICAgICAgICBE
ZXNjcmlwdGlvbjogVU5LTk9XTgorICAgICAgICAgICAgUGxhdGZvcm06IFVOS05PV04KKyAgICAg
ICAgICAgICIiIiwKKyAgICAgICAgfQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBz
dXBlcihFZ2dJbmZvRmlsZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBidWlsZF9maWxlcyhFZ2dJ
bmZvRmlsZS5maWxlcywgcHJlZml4PXNlbGYuc2l0ZV9kaXIpCisKKworY2xhc3MgTG9jYWxQYWNr
YWdlOgorICAgIGZpbGVzID0geworICAgICAgICAic2V0dXAucHkiOiAiIiIKKyAgICAgICAgICAg
IGltcG9ydCBzZXR1cHRvb2xzCisgICAgICAgICAgICBzZXR1cHRvb2xzLnNldHVwKG5hbWU9Imxv
Y2FsLXBrZyIsIHZlcnNpb249IjIuMC4xIikKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgfQor
CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmZpeHR1cmVzID0gY29udGV4dGxp
Yi5FeGl0U3RhY2soKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2VsZi5maXh0dXJlcy5jbG9z
ZSkKKyAgICAgICAgc2VsZi5maXh0dXJlcy5lbnRlcl9jb250ZXh0KHRlbXBkaXJfYXNfY3dkKCkp
CisgICAgICAgIGJ1aWxkX2ZpbGVzKHNlbGYuZmlsZXMpCisKKworZGVmIGJ1aWxkX2ZpbGVzKGZp
bGVfZGVmcywgcHJlZml4PXBhdGhsaWIuUGF0aCgpKToKKyAgICAiIiJCdWlsZCBhIHNldCBvZiBm
aWxlcy9kaXJlY3RvcmllcywgYXMgZGVzY3JpYmVkIGJ5IHRoZQorCisgICAgZmlsZV9kZWZzIGRp
Y3Rpb25hcnkuICBFYWNoIGtleS92YWx1ZSBwYWlyIGluIHRoZSBkaWN0aW9uYXJ5IGlzCisgICAg
aW50ZXJwcmV0ZWQgYXMgYSBmaWxlbmFtZS9jb250ZW50cyBwYWlyLiAgSWYgdGhlIGNvbnRlbnRz
IHZhbHVlIGlzIGEKKyAgICBkaWN0aW9uYXJ5LCBhIGRpcmVjdG9yeSBpcyBjcmVhdGVkLCBhbmQg
dGhlIGRpY3Rpb25hcnkgaW50ZXJwcmV0ZWQKKyAgICBhcyB0aGUgZmlsZXMgd2l0aGluIGl0LCBy
ZWN1cnNpdmVseS4KKworICAgIEZvciBleGFtcGxlOgorCisgICAgeyJSRUFETUUudHh0IjogIkEg
UkVBRE1FIGZpbGUiLAorICAgICAiZm9vIjogeworICAgICAgICAiX19pbml0X18ucHkiOiAiIiwK
KyAgICAgICAgImJhciI6IHsKKyAgICAgICAgICAgICJfX2luaXRfXy5weSI6ICIiLAorICAgICAg
ICB9LAorICAgICAgICAiYmF6LnB5IjogIiMgU29tZSBjb2RlIiwKKyAgICAgfQorICAgIH0KKyAg
ICAiIiIKKyAgICBmb3IgbmFtZSwgY29udGVudHMgaW4gZmlsZV9kZWZzLml0ZW1zKCk6CisgICAg
ICAgIGZ1bGxfbmFtZSA9IHByZWZpeCAvIG5hbWUKKyAgICAgICAgaWYgaXNpbnN0YW5jZShjb250
ZW50cywgZGljdCk6CisgICAgICAgICAgICBmdWxsX25hbWUubWtkaXIoKQorICAgICAgICAgICAg
YnVpbGRfZmlsZXMoY29udGVudHMsIHByZWZpeD1mdWxsX25hbWUpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNvbnRlbnRzLCBieXRlcyk6CisgICAgICAgICAgICAg
ICAgd2l0aCBmdWxsX25hbWUub3Blbignd2InKSBhcyBmOgorICAgICAgICAgICAgICAgICAgICBm
LndyaXRlKGNvbnRlbnRzKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB3aXRo
IGZ1bGxfbmFtZS5vcGVuKCd3JykgYXMgZjoKKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShE
QUxTKGNvbnRlbnRzKSkKKworCitjbGFzcyBGaWxlQnVpbGRlcjoKKyAgICBkZWYgdW5pY29kZV9m
aWxlbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIEZTX05PTkFTQ0lJIG9yIFwKKyAgICAgICAg
ICAgIHNlbGYuc2tpcCgiRmlsZSBzeXN0ZW0gZG9lcyBub3Qgc3VwcG9ydCBub24tYXNjaWkuIikK
KworCitkZWYgREFMUyhzdHIpOgorICAgICJEZWRlbnQgYW5kIGxlZnQtc3RyaXAiCisgICAgcmV0
dXJuIHRleHR3cmFwLmRlZGVudChzdHIpLmxzdHJpcCgpCisKKworY2xhc3MgTnVsbEZpbmRlcjoK
KyAgICBkZWYgZmluZF9tb2R1bGUoc2VsZiwgbmFtZSk6CisgICAgICAgIHBhc3MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3B5Mzljb21wYXQucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9weTM5Y29tcGF0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNzVkNGMz
NTVhZjgxMzA2YzA2YTNjMDA1YjZiMmM3MDM2YzM1OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9weTM5Y29tcGF0LnB5CkBAIC0wLDAgKzEsNCBAQAor
dHJ5OgorICAgIGZyb20gdGVzdC5zdXBwb3J0Lm9zX2hlbHBlcnMgaW1wb3J0IEZTX05PTkFTQ0lJ
CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IEZTX05P
TkFTQ0lJICAjIG5vcWEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3Rz
L3Rlc3RfYXBpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvdGVzdF9hcGkucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWZhOTc5OTY0MjMxNDAzMDAxOGM5MWYyNTgzMTgxOWQxNzBlZGUzMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3Rlc3RfYXBpLnB5
CkBAIC0wLDAgKzEsMTk2IEBACitpbXBvcnQgcmUKK2ltcG9ydCB0ZXh0d3JhcAorCit0cnk6Cisg
ICAgaW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAorZXhjZXB0IEltcG9ydEVycm9yOgorICAg
IGltcG9ydCB1bml0dGVzdAorCitmcm9tIC4gaW1wb3J0IGZpeHR1cmVzCitmcm9tIGltcG9ydGxp
Yl9tZXRhZGF0YSBpbXBvcnQgKAorICAgIERpc3RyaWJ1dGlvbiwgUGFja2FnZU5vdEZvdW5kRXJy
b3IsIGRpc3RyaWJ1dGlvbiwKKyAgICBlbnRyeV9wb2ludHMsIGZpbGVzLCBtZXRhZGF0YSwgcmVx
dWlyZXMsIHZlcnNpb24sCisgICAgKQorCit0cnk6CisgICAgZnJvbSBjb2xsZWN0aW9ucy5hYmMg
aW1wb3J0IEl0ZXJhdG9yCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBjb2xsZWN0aW9u
cyBpbXBvcnQgSXRlcmF0b3IgICMgbm9xYTogRjQwMQorCit0cnk6CisgICAgZnJvbSBidWlsdGlu
cyBpbXBvcnQgc3RyIGFzIHRleHQKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIF9fYnVp
bHRpbl9fIGltcG9ydCB1bmljb2RlIGFzIHRleHQKKworCitjbGFzcyBBUElUZXN0cygKKyAgICAg
ICAgZml4dHVyZXMuRWdnSW5mb1BrZywKKyAgICAgICAgZml4dHVyZXMuRGlzdEluZm9Qa2csCisg
ICAgICAgIGZpeHR1cmVzLkRpc3RJbmZvUGtnV2l0aERvdCwKKyAgICAgICAgZml4dHVyZXMuRWdn
SW5mb0ZpbGUsCisgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIHZlcnNpb25fcGF0
dGVybiA9IHInXGQrXC5cZCsoXC5cZCk/JworCisgICAgZGVmIHRlc3RfcmV0cmlldmVzX3ZlcnNp
b25fb2Zfc2VsZihzZWxmKToKKyAgICAgICAgcGtnX3ZlcnNpb24gPSB2ZXJzaW9uKCdlZ2dpbmZv
LXBrZycpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHBrZ192ZXJzaW9uLCB0ZXh0KQorICAg
ICAgICBhc3NlcnQgcmUubWF0Y2goc2VsZi52ZXJzaW9uX3BhdHRlcm4sIHBrZ192ZXJzaW9uKQor
CisgICAgZGVmIHRlc3RfcmV0cmlldmVzX3ZlcnNpb25fb2ZfZGlzdGluZm9fcGtnKHNlbGYpOgor
ICAgICAgICBwa2dfdmVyc2lvbiA9IHZlcnNpb24oJ2Rpc3RpbmZvLXBrZycpCisgICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKHBrZ192ZXJzaW9uLCB0ZXh0KQorICAgICAgICBhc3NlcnQgcmUubWF0
Y2goc2VsZi52ZXJzaW9uX3BhdHRlcm4sIHBrZ192ZXJzaW9uKQorCisgICAgZGVmIHRlc3RfZm9y
X25hbWVfZG9lc19ub3RfZXhpc3Qoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlz
ZXMoUGFja2FnZU5vdEZvdW5kRXJyb3IpOgorICAgICAgICAgICAgZGlzdHJpYnV0aW9uKCdkb2Vz
LW5vdC1leGlzdCcpCisKKyAgICBkZWYgdGVzdF9uYW1lX25vcm1hbGl6YXRpb24oc2VsZik6Cisg
ICAgICAgIG5hbWVzID0gJ3BrZy5kb3QnLCAncGtnX2RvdCcsICdwa2ctZG90JywgJ3BrZy4uZG90
JywgJ1BrZy5Eb3QnCisgICAgICAgIGZvciBuYW1lIGluIG5hbWVzOgorICAgICAgICAgICAgd2l0
aCBzZWxmLnN1YlRlc3QobmFtZSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGRpc3RyaWJ1dGlv
bihuYW1lKS5tZXRhZGF0YVsnTmFtZSddID09ICdwa2cuZG90JworCisgICAgZGVmIHRlc3RfZm9y
X3RvcF9sZXZlbChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAg
IGRpc3RyaWJ1dGlvbignZWdnaW5mby1wa2cnKS5yZWFkX3RleHQoJ3RvcF9sZXZlbC50eHQnKS5z
dHJpcCgpLAorICAgICAgICAgICAgJ21vZCcpCisKKyAgICBkZWYgdGVzdF9yZWFkX3RleHQoc2Vs
Zik6CisgICAgICAgIHRvcF9sZXZlbCA9IFsKKyAgICAgICAgICAgIHBhdGggZm9yIHBhdGggaW4g
ZmlsZXMoJ2VnZ2luZm8tcGtnJykKKyAgICAgICAgICAgIGlmIHBhdGgubmFtZSA9PSAndG9wX2xl
dmVsLnR4dCcKKyAgICAgICAgICAgIF1bMF0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0b3Bf
bGV2ZWwucmVhZF90ZXh0KCksICdtb2RcbicpCisKKyAgICBkZWYgdGVzdF9lbnRyeV9wb2ludHMo
c2VsZik6CisgICAgICAgIGVudHJpZXMgPSBkaWN0KGVudHJ5X3BvaW50cygpWydlbnRyaWVzJ10p
CisgICAgICAgIGVwID0gZW50cmllc1snbWFpbiddCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZXAudmFsdWUsICdtb2Q6bWFpbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXAuZXh0cmFz
LCBbXSkKKworICAgIGRlZiB0ZXN0X21ldGFkYXRhX2Zvcl90aGlzX3BhY2thZ2Uoc2VsZik6Cisg
ICAgICAgIG1kID0gbWV0YWRhdGEoJ2VnZ2luZm8tcGtnJykKKyAgICAgICAgYXNzZXJ0IG1kWydh
dXRob3InXSA9PSAnU3RldmVuIE1hJworICAgICAgICBhc3NlcnQgbWRbJ0xJQ0VOU0UnXSA9PSAn
VW5rbm93bicKKyAgICAgICAgYXNzZXJ0IG1kWydOYW1lJ10gPT0gJ2VnZ2luZm8tcGtnJworICAg
ICAgICBjbGFzc2lmaWVycyA9IG1kLmdldF9hbGwoJ0NsYXNzaWZpZXInKQorICAgICAgICBhc3Nl
cnQgJ1RvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcycgaW4gY2xhc3Np
ZmllcnMKKworICAgIGRlZiB0ZXN0X2ltcG9ydGxpYl9tZXRhZGF0YV92ZXJzaW9uKHNlbGYpOgor
ICAgICAgICByZXNvbHZlZCA9IHZlcnNpb24oJ2ltcG9ydGxpYi1tZXRhZGF0YScpCisgICAgICAg
IGFzc2VydCByZS5tYXRjaChzZWxmLnZlcnNpb25fcGF0dGVybiwgcmVzb2x2ZWQpCisKKyAgICBA
c3RhdGljbWV0aG9kCisgICAgZGVmIF90ZXN0X2ZpbGVzKGZpbGVzKToKKyAgICAgICAgcm9vdCA9
IGZpbGVzWzBdLnJvb3QKKyAgICAgICAgZm9yIGZpbGUgaW4gZmlsZXM6CisgICAgICAgICAgICBh
c3NlcnQgZmlsZS5yb290ID09IHJvb3QKKyAgICAgICAgICAgIGFzc2VydCBub3QgZmlsZS5oYXNo
IG9yIGZpbGUuaGFzaC52YWx1ZQorICAgICAgICAgICAgYXNzZXJ0IG5vdCBmaWxlLmhhc2ggb3Ig
ZmlsZS5oYXNoLm1vZGUgPT0gJ3NoYTI1NicKKyAgICAgICAgICAgIGFzc2VydCBub3QgZmlsZS5z
aXplIG9yIGZpbGUuc2l6ZSA+PSAwCisgICAgICAgICAgICBhc3NlcnQgZmlsZS5sb2NhdGUoKS5l
eGlzdHMoKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmlsZS5yZWFkX2JpbmFyeSgp
LCBieXRlcykKKyAgICAgICAgICAgIGlmIGZpbGUubmFtZS5lbmRzd2l0aCgnLnB5Jyk6CisgICAg
ICAgICAgICAgICAgZmlsZS5yZWFkX3RleHQoKQorCisgICAgZGVmIHRlc3RfZmlsZV9oYXNoX3Jl
cHIoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFzc2VydFJlZ2V4ID0gc2VsZi5h
c3NlcnRSZWdleAorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAj
IFB5dGhvbiAyCisgICAgICAgICAgICBhc3NlcnRSZWdleCA9IHNlbGYuYXNzZXJ0UmVnZXhwTWF0
Y2hlcworCisgICAgICAgIHV0aWwgPSBbCisgICAgICAgICAgICBwIGZvciBwIGluIGZpbGVzKCdk
aXN0aW5mby1wa2cnKQorICAgICAgICAgICAgaWYgcC5uYW1lID09ICdtb2QucHknCisgICAgICAg
ICAgICBdWzBdCisgICAgICAgIGFzc2VydFJlZ2V4KAorICAgICAgICAgICAgcmVwcih1dGlsLmhh
c2gpLAorICAgICAgICAgICAgJzxGaWxlSGFzaCBtb2RlOiBzaGEyNTYgdmFsdWU6IC4qPicpCisK
KyAgICBkZWYgdGVzdF9maWxlc19kaXN0X2luZm8oc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3Rf
ZmlsZXMoZmlsZXMoJ2Rpc3RpbmZvLXBrZycpKQorCisgICAgZGVmIHRlc3RfZmlsZXNfZWdnX2lu
Zm8oc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZmlsZXMoZmlsZXMoJ2VnZ2luZm8tcGtnJykp
CisKKyAgICBkZWYgdGVzdF92ZXJzaW9uX2VnZ19pbmZvX2ZpbGUoc2VsZik6CisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodmVyc2lvbignZWdnaW5mby1maWxlJyksICcwLjEnKQorCisgICAgZGVm
IHRlc3RfcmVxdWlyZXNfZWdnX2luZm9fZmlsZShzZWxmKToKKyAgICAgICAgcmVxdWlyZW1lbnRz
ID0gcmVxdWlyZXMoJ2VnZ2luZm8tZmlsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJl
cXVpcmVtZW50cykKKworICAgIGRlZiB0ZXN0X3JlcXVpcmVzX2VnZ19pbmZvKHNlbGYpOgorICAg
ICAgICBkZXBzID0gcmVxdWlyZXMoJ2VnZ2luZm8tcGtnJykKKyAgICAgICAgYXNzZXJ0IGxlbihk
ZXBzKSA9PSAyCisgICAgICAgIGFzc2VydCBhbnkoCisgICAgICAgICAgICBkZXAgPT0gJ3doZWVs
ID49IDEuMDsgcHl0aG9uX3ZlcnNpb24gPj0gIjIuNyInCisgICAgICAgICAgICBmb3IgZGVwIGlu
IGRlcHMKKyAgICAgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3JlcXVpcmVzX2Rpc3RfaW5mbyhz
ZWxmKToKKyAgICAgICAgZGVwcyA9IHJlcXVpcmVzKCdkaXN0aW5mby1wa2cnKQorICAgICAgICBh
c3NlcnQgbGVuKGRlcHMpID09IDIKKyAgICAgICAgYXNzZXJ0IGFsbChkZXBzKQorICAgICAgICBh
c3NlcnQgJ3doZWVsID49IDEuMCcgaW4gZGVwcworICAgICAgICBhc3NlcnQgInB5dGVzdDsgZXh0
cmEgPT0gJ3Rlc3QnIiBpbiBkZXBzCisKKyAgICBkZWYgdGVzdF9tb3JlX2NvbXBsZXhfZGVwc19y
ZXF1aXJlc190ZXh0KHNlbGYpOgorICAgICAgICByZXF1aXJlcyA9IHRleHR3cmFwLmRlZGVudCgi
IiIKKyAgICAgICAgICAgIGRlcDEKKyAgICAgICAgICAgIGRlcDIKKworICAgICAgICAgICAgWzpw
eXRob25fdmVyc2lvbiA8ICIzIl0KKyAgICAgICAgICAgIGRlcDMKKworICAgICAgICAgICAgW2V4
dHJhMV0KKyAgICAgICAgICAgIGRlcDQKKworICAgICAgICAgICAgW2V4dHJhMjpweXRob25fdmVy
c2lvbiA8ICIzIl0KKyAgICAgICAgICAgIGRlcDUKKyAgICAgICAgICAgICIiIikKKyAgICAgICAg
ZGVwcyA9IHNvcnRlZChEaXN0cmlidXRpb24uX2RlcHNfZnJvbV9yZXF1aXJlc190ZXh0KHJlcXVp
cmVzKSkKKyAgICAgICAgZXhwZWN0ZWQgPSBbCisgICAgICAgICAgICAnZGVwMScsCisgICAgICAg
ICAgICAnZGVwMicsCisgICAgICAgICAgICAnZGVwMzsgcHl0aG9uX3ZlcnNpb24gPCAiMyInLAor
ICAgICAgICAgICAgJ2RlcDQ7IGV4dHJhID09ICJleHRyYTEiJywKKyAgICAgICAgICAgICdkZXA1
OyAocHl0aG9uX3ZlcnNpb24gPCAiMyIpIGFuZCBleHRyYSA9PSAiZXh0cmEyIicsCisgICAgICAg
ICAgICBdCisgICAgICAgICMgSXQncyBpbXBvcnRhbnQgdGhhdCB0aGUgZW52aXJvbm1lbnQgbWFy
a2VyIGV4cHJlc3Npb24gYmUKKyAgICAgICAgIyB3cmFwcGVkIGluIHBhcmVudGhlc2VzIHRvIGF2
b2lkIHRoZSBmb2xsb3dpbmcgJ2FuZCcgYmluZGluZyBtb3JlCisgICAgICAgICMgdGlnaHRseSB0
aGFuIHNvbWUgb3RoZXIgcGFydCBvZiB0aGUgZW52aXJvbm1lbnQgZXhwcmVzc2lvbi4KKworICAg
ICAgICBhc3NlcnQgZGVwcyA9PSBleHBlY3RlZAorCisKK2NsYXNzIExlZ2FjeURvdHMoZml4dHVy
ZXMuRGlzdEluZm9Qa2dXaXRoRG90TGVnYWN5LCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVm
IHRlc3RfbmFtZV9ub3JtYWxpemF0aW9uKHNlbGYpOgorICAgICAgICBuYW1lcyA9ICdwa2cuZG90
JywgJ3BrZ19kb3QnLCAncGtnLWRvdCcsICdwa2cuLmRvdCcsICdQa2cuRG90JworICAgICAgICBm
b3IgbmFtZSBpbiBuYW1lczoKKyAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KG5hbWUpOgor
ICAgICAgICAgICAgICAgIGFzc2VydCBkaXN0cmlidXRpb24obmFtZSkubWV0YWRhdGFbJ05hbWUn
XSA9PSAncGtnLmRvdCcKKworCitjbGFzcyBPZmZTeXNQYXRoVGVzdHMoZml4dHVyZXMuRGlzdElu
Zm9Qa2dPZmZQYXRoLCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfZmluZF9kaXN0
cmlidXRpb25zX3NwZWNpZmllZF9wYXRoKHNlbGYpOgorICAgICAgICBkaXN0cyA9IERpc3RyaWJ1
dGlvbi5kaXNjb3ZlcihwYXRoPVtzdHIoc2VsZi5zaXRlX2RpcildKQorICAgICAgICBhc3NlcnQg
YW55KAorICAgICAgICAgICAgZGlzdC5tZXRhZGF0YVsnTmFtZSddID09ICdkaXN0aW5mby1wa2cn
CisgICAgICAgICAgICBmb3IgZGlzdCBpbiBkaXN0cworICAgICAgICAgICAgKQorCisgICAgZGVm
IHRlc3RfZGlzdHJpYnV0aW9uX2F0X3BhdGhsaWIoc2VsZik6CisgICAgICAgICIiIkRlbW9uc3Ry
YXRlIGhvdyB0byBsb2FkIG1ldGFkYXRhIGRpcmVjdCBmcm9tIGEgZGlyZWN0b3J5LgorICAgICAg
ICAiIiIKKyAgICAgICAgZGlzdF9pbmZvX3BhdGggPSBzZWxmLnNpdGVfZGlyIC8gJ2Rpc3RpbmZv
X3BrZy0xLjAuMC5kaXN0LWluZm8nCisgICAgICAgIGRpc3QgPSBEaXN0cmlidXRpb24uYXQoZGlz
dF9pbmZvX3BhdGgpCisgICAgICAgIGFzc2VydCBkaXN0LnZlcnNpb24gPT0gJzEuMC4wJworCisg
ICAgZGVmIHRlc3RfZGlzdHJpYnV0aW9uX2F0X3N0cihzZWxmKToKKyAgICAgICAgZGlzdF9pbmZv
X3BhdGggPSBzZWxmLnNpdGVfZGlyIC8gJ2Rpc3RpbmZvX3BrZy0xLjAuMC5kaXN0LWluZm8nCisg
ICAgICAgIGRpc3QgPSBEaXN0cmlidXRpb24uYXQoc3RyKGRpc3RfaW5mb19wYXRoKSkKKyAgICAg
ICAgYXNzZXJ0IGRpc3QudmVyc2lvbiA9PSAnMS4wLjAnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9y
dGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X2ludGVncmF0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJf
bWV0YWRhdGEvdGVzdHMvdGVzdF9pbnRlZ3JhdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzc1NzRjNDQ4
ZjFiOGZmN2EyMDJkOGVjNWQ1YmZkMDZmY2I1N2JjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9p
bXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvdGVzdF9pbnRlZ3JhdGlvbi5weQpAQCAtMCwwICsxLDU0
IEBACisjIGNvZGluZzogdXRmLTgKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xp
dGVyYWxzCisKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IHBhY2thZ2luZy5yZXF1aXJlbWVudHMK
K2ltcG9ydCBwYWNrYWdpbmcudmVyc2lvbgorCitmcm9tIC4gaW1wb3J0IGZpeHR1cmVzCitmcm9t
IGltcG9ydGxpYl9tZXRhZGF0YSBpbXBvcnQgKAorICAgIERpc3RyaWJ1dGlvbiwKKyAgICBfY29t
cGF0LAorICAgIHZlcnNpb24sCisgICAgKQorCisKK2NsYXNzIEludGVncmF0aW9uVGVzdHMoZml4
dHVyZXMuRGlzdEluZm9Qa2csIHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X3Bh
Y2thZ2Vfc3BlY19pbnN0YWxsZWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBJbGx1c3Ry
YXRlIHRoZSByZWNvbW1lbmRlZCBwcm9jZWR1cmUgdG8gZGV0ZXJtaW5lIGlmCisgICAgICAgIGEg
c3BlY2lmaWVkIHZlcnNpb24gb2YgYSBwYWNrYWdlIGlzIGluc3RhbGxlZC4KKyAgICAgICAgIiIi
CisgICAgICAgIGRlZiBpc19pbnN0YWxsZWQocGFja2FnZV9zcGVjKToKKyAgICAgICAgICAgIHJl
cSA9IHBhY2thZ2luZy5yZXF1aXJlbWVudHMuUmVxdWlyZW1lbnQocGFja2FnZV9zcGVjKQorICAg
ICAgICAgICAgcmV0dXJuIHZlcnNpb24ocmVxLm5hbWUpIGluIHJlcS5zcGVjaWZpZXIKKworICAg
ICAgICBhc3NlcnQgaXNfaW5zdGFsbGVkKCdkaXN0aW5mby1wa2c9PTEuMCcpCisgICAgICAgIGFz
c2VydCBpc19pbnN0YWxsZWQoJ2Rpc3RpbmZvLXBrZz49MS4wLDwyLjAnKQorICAgICAgICBhc3Nl
cnQgbm90IGlzX2luc3RhbGxlZCgnZGlzdGluZm8tcGtnPDEuMCcpCisKKworY2xhc3MgRmluZGVy
VGVzdHMoZml4dHVyZXMuRml4dHVyZXMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0
ZXN0X2ZpbmRlcl93aXRob3V0X21vZHVsZShzZWxmKToKKyAgICAgICAgY2xhc3MgTW9kdWxlRnJl
ZUZpbmRlcihmaXh0dXJlcy5OdWxsRmluZGVyKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgQSBmaW5kZXIgd2l0aG91dCBhbiBfX21vZHVsZV9fIGF0dHJpYnV0ZQorICAgICAgICAgICAg
IiIiCisgICAgICAgICAgICBkZWYgX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKToKKyAgICAg
ICAgICAgICAgICBpZiBuYW1lID09ICdfX21vZHVsZV9fJzoKKyAgICAgICAgICAgICAgICAgICAg
cmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIo
KS5fX2dldGF0dHJpYnV0ZV9fKG5hbWUpCisKKyAgICAgICAgc2VsZi5maXh0dXJlcy5lbnRlcl9j
b250ZXh0KAorICAgICAgICAgICAgZml4dHVyZXMuaW5zdGFsbF9maW5kZXIoTW9kdWxlRnJlZUZp
bmRlcigpKSkKKyAgICAgICAgX2NvbXBhdC5kaXNhYmxlX3N0ZGxpYl9maW5kZXIoKQorCisKK2Ns
YXNzIExvY2FsUHJvamVjdFRlc3RzKGZpeHR1cmVzLkxvY2FsUGFja2FnZSwgdW5pdHRlc3QuVGVz
dENhc2UpOgorICAgIGRlZiB0ZXN0X2ZpbmRfbG9jYWwoc2VsZik6CisgICAgICAgIGRpc3QgPSBE
aXN0cmlidXRpb24uX2xvY2FsKCkKKyAgICAgICAgYXNzZXJ0IGRpc3QubWV0YWRhdGFbJ05hbWUn
XSA9PSAnbG9jYWwtcGtnJworICAgICAgICBhc3NlcnQgZGlzdC52ZXJzaW9uID09ICcyLjAuMScK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3Rlc3RfbWFpbi5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3Rlc3RfbWFpbi5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
NDc3NTBiYzMwMTY2NDBlMjEzM2M0N2MwN2QwZDA2NDY2MzcyNDg1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvdGVzdF9tYWluLnB5CkBAIC0wLDAgKzEs
Mjg1IEBACisjIGNvZGluZzogdXRmLTgKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9s
aXRlcmFscworCitpbXBvcnQgcmUKK2ltcG9ydCBqc29uCitpbXBvcnQgcGlja2xlCitpbXBvcnQg
dGV4dHdyYXAKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IGltcG9ydGxpYgoraW1wb3J0IGltcG9y
dGxpYl9tZXRhZGF0YQoraW1wb3J0IHB5ZmFrZWZzLmZha2VfZmlsZXN5c3RlbV91bml0dGVzdCBh
cyBmZnMKKworZnJvbSAuIGltcG9ydCBmaXh0dXJlcworZnJvbSBpbXBvcnRsaWJfbWV0YWRhdGEg
aW1wb3J0ICgKKyAgICBEaXN0cmlidXRpb24sIEVudHJ5UG9pbnQsIE1ldGFkYXRhUGF0aEZpbmRl
ciwKKyAgICBQYWNrYWdlTm90Rm91bmRFcnJvciwgZGlzdHJpYnV0aW9ucywKKyAgICBlbnRyeV9w
b2ludHMsIG1ldGFkYXRhLCB2ZXJzaW9uLAorICAgICkKKwordHJ5OgorICAgIGZyb20gYnVpbHRp
bnMgaW1wb3J0IHN0ciBhcyB0ZXh0CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBfX2J1
aWx0aW5fXyBpbXBvcnQgdW5pY29kZSBhcyB0ZXh0CisKKworY2xhc3MgQmFzaWNUZXN0cyhmaXh0
dXJlcy5EaXN0SW5mb1BrZywgdW5pdHRlc3QuVGVzdENhc2UpOgorICAgIHZlcnNpb25fcGF0dGVy
biA9IHInXGQrXC5cZCsoXC5cZCk/JworCisgICAgZGVmIHRlc3RfcmV0cmlldmVzX3ZlcnNpb25f
b2Zfc2VsZihzZWxmKToKKyAgICAgICAgZGlzdCA9IERpc3RyaWJ1dGlvbi5mcm9tX25hbWUoJ2Rp
c3RpbmZvLXBrZycpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGRpc3QudmVyc2lvbiwgdGV4
dCkKKyAgICAgICAgYXNzZXJ0IHJlLm1hdGNoKHNlbGYudmVyc2lvbl9wYXR0ZXJuLCBkaXN0LnZl
cnNpb24pCisKKyAgICBkZWYgdGVzdF9mb3JfbmFtZV9kb2VzX25vdF9leGlzdChzZWxmKToKKyAg
ICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhQYWNrYWdlTm90Rm91bmRFcnJvcik6CisgICAg
ICAgICAgICBEaXN0cmlidXRpb24uZnJvbV9uYW1lKCdkb2VzLW5vdC1leGlzdCcpCisKKyAgICBk
ZWYgdGVzdF9wYWNrYWdlX25vdF9mb3VuZF9tZW50aW9uc19tZXRhZGF0YShzZWxmKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFdoZW4gYSBwYWNrYWdlIGlzIG5vdCBmb3VuZCwgdGhhdCBjb3VsZCBp
bmRpY2F0ZSB0aGF0IHRoZQorICAgICAgICBwYWNrZ2FlIGlzIG5vdCBpbnN0YWxsZWQgb3IgdGhh
dCBpdCBpcyBpbnN0YWxsZWQgd2l0aG91dAorICAgICAgICBtZXRhZGF0YS4gRW5zdXJlIHRoZSBl
eGNlcHRpb24gbWVudGlvbnMgbWV0YWRhdGEgdG8gaGVscAorICAgICAgICBndWlkZSB1c2VycyB0
b3dhcmQgdGhlIGNhdXNlLiBTZWUgIzEyNC4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoUGFja2FnZU5vdEZvdW5kRXJyb3IpIGFzIGN0eDoKKyAgICAgICAgICAg
IERpc3RyaWJ1dGlvbi5mcm9tX25hbWUoJ2RvZXMtbm90LWV4aXN0JykKKworICAgICAgICBhc3Nl
cnQgIm1ldGFkYXRhIiBpbiBzdHIoY3R4LmV4Y2VwdGlvbikKKworICAgIGRlZiB0ZXN0X25ld19z
dHlsZV9jbGFzc2VzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoRGlzdHJp
YnV0aW9uLCB0eXBlKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoTWV0YWRhdGFQYXRo
RmluZGVyLCB0eXBlKQorCisKK2NsYXNzIEltcG9ydFRlc3RzKGZpeHR1cmVzLkRpc3RJbmZvUGtn
LCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfaW1wb3J0X25vbmV4aXN0ZW50X21v
ZHVsZShzZWxmKToKKyAgICAgICAgIyBFbnN1cmUgdGhhdCB0aGUgTWV0YWRhdGFQYXRoRmluZGVy
IGRvZXMgbm90IGNyYXNoIGFuIGltcG9ydCBvZiBhCisgICAgICAgICMgbm9uLWV4aXN0ZW50IG1v
ZHVsZS4KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAg
ICAgICAgICBpbXBvcnRsaWIuaW1wb3J0X21vZHVsZSgnZG9lc19ub3RfZXhpc3QnKQorCisgICAg
ZGVmIHRlc3RfcmVzb2x2ZShzZWxmKToKKyAgICAgICAgZW50cmllcyA9IGRpY3QoZW50cnlfcG9p
bnRzKClbJ2VudHJpZXMnXSkKKyAgICAgICAgZXAgPSBlbnRyaWVzWydtYWluJ10KKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChlcC5sb2FkKCkuX19uYW1lX18sICJtYWluIikKKworICAgIGRlZiB0
ZXN0X2VudHJ5cG9pbnRfd2l0aF9jb2xvbl9pbl9uYW1lKHNlbGYpOgorICAgICAgICBlbnRyaWVz
ID0gZGljdChlbnRyeV9wb2ludHMoKVsnZW50cmllcyddKQorICAgICAgICBlcCA9IGVudHJpZXNb
J25zOnN1YiddCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXAudmFsdWUsICdtb2Q6bWFpbicp
CisKKyAgICBkZWYgdGVzdF9yZXNvbHZlX3dpdGhvdXRfYXR0cihzZWxmKToKKyAgICAgICAgZXAg
PSBFbnRyeVBvaW50KAorICAgICAgICAgICAgbmFtZT0nZXAnLAorICAgICAgICAgICAgdmFsdWU9
J2ltcG9ydGxpYl9tZXRhZGF0YScsCisgICAgICAgICAgICBncm91cD0nZ3JwJywKKyAgICAgICAg
ICAgICkKKyAgICAgICAgYXNzZXJ0IGVwLmxvYWQoKSBpcyBpbXBvcnRsaWJfbWV0YWRhdGEKKwor
CitjbGFzcyBOYW1lTm9ybWFsaXphdGlvblRlc3RzKAorICAgICAgICBmaXh0dXJlcy5PblN5c1Bh
dGgsIGZpeHR1cmVzLlNpdGVEaXIsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBAc3RhdGljbWV0
aG9kCisgICAgZGVmIHBrZ193aXRoX2Rhc2hlcyhzaXRlX2Rpcik6CisgICAgICAgICIiIgorICAg
ICAgICBDcmVhdGUgbWluaW1hbCBtZXRhZGF0YSBmb3IgYSBwYWNrYWdlIHdpdGggZGFzaGVzCisg
ICAgICAgIGluIHRoZSBuYW1lIChhbmQgdGh1cyB1bmRlcnNjb3JlcyBpbiB0aGUgZmlsZW5hbWUp
LgorICAgICAgICAiIiIKKyAgICAgICAgbWV0YWRhdGFfZGlyID0gc2l0ZV9kaXIgLyAnbXlfcGtn
LmRpc3QtaW5mbycKKyAgICAgICAgbWV0YWRhdGFfZGlyLm1rZGlyKCkKKyAgICAgICAgbWV0YWRh
dGEgPSBtZXRhZGF0YV9kaXIgLyAnTUVUQURBVEEnCisgICAgICAgIHdpdGggbWV0YWRhdGEub3Bl
bigndycpIGFzIHN0cm06CisgICAgICAgICAgICBzdHJtLndyaXRlKCdWZXJzaW9uOiAxLjBcbicp
CisgICAgICAgIHJldHVybiAnbXktcGtnJworCisgICAgZGVmIHRlc3RfZGFzaGVzX2luX2Rpc3Rf
bmFtZV9mb3VuZF9hc191bmRlcnNjb3JlcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEZv
ciBhIHBhY2thZ2Ugd2l0aCBhIGRhc2ggaW4gdGhlIG5hbWUsIHRoZSBkaXN0LWluZm8gbWV0YWRh
dGEKKyAgICAgICAgdXNlcyB1bmRlcnNjb3JlcyBpbiB0aGUgbmFtZS4gRW5zdXJlIHRoZSBtZXRh
ZGF0YSBsb2Fkcy4KKyAgICAgICAgIiIiCisgICAgICAgIHBrZ19uYW1lID0gc2VsZi5wa2dfd2l0
aF9kYXNoZXMoc2VsZi5zaXRlX2RpcikKKyAgICAgICAgYXNzZXJ0IHZlcnNpb24ocGtnX25hbWUp
ID09ICcxLjAnCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBrZ193aXRoX21peGVkX2Nh
c2Uoc2l0ZV9kaXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIG1pbmltYWwgbWV0YWRh
dGEgZm9yIGEgcGFja2FnZSB3aXRoIG1peGVkIGNhc2UKKyAgICAgICAgaW4gdGhlIG5hbWUuCisg
ICAgICAgICIiIgorICAgICAgICBtZXRhZGF0YV9kaXIgPSBzaXRlX2RpciAvICdDaGVycnlQeS5k
aXN0LWluZm8nCisgICAgICAgIG1ldGFkYXRhX2Rpci5ta2RpcigpCisgICAgICAgIG1ldGFkYXRh
ID0gbWV0YWRhdGFfZGlyIC8gJ01FVEFEQVRBJworICAgICAgICB3aXRoIG1ldGFkYXRhLm9wZW4o
J3cnKSBhcyBzdHJtOgorICAgICAgICAgICAgc3RybS53cml0ZSgnVmVyc2lvbjogMS4wXG4nKQor
ICAgICAgICByZXR1cm4gJ0NoZXJyeVB5JworCisgICAgZGVmIHRlc3RfZGlzdF9uYW1lX2ZvdW5k
X2FzX2FueV9jYXNlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgRW5zdXJlIHRoZSBtZXRh
ZGF0YSBsb2FkcyB3aGVuIHF1ZXJpZWQgd2l0aCBhbnkgY2FzZS4KKyAgICAgICAgIiIiCisgICAg
ICAgIHBrZ19uYW1lID0gc2VsZi5wa2dfd2l0aF9taXhlZF9jYXNlKHNlbGYuc2l0ZV9kaXIpCisg
ICAgICAgIGFzc2VydCB2ZXJzaW9uKHBrZ19uYW1lKSA9PSAnMS4wJworICAgICAgICBhc3NlcnQg
dmVyc2lvbihwa2dfbmFtZS5sb3dlcigpKSA9PSAnMS4wJworICAgICAgICBhc3NlcnQgdmVyc2lv
bihwa2dfbmFtZS51cHBlcigpKSA9PSAnMS4wJworCisKK2NsYXNzIE5vbkFTQ0lJVGVzdHMoZml4
dHVyZXMuT25TeXNQYXRoLCBmaXh0dXJlcy5TaXRlRGlyLCB1bml0dGVzdC5UZXN0Q2FzZSk6Cisg
ICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBwa2dfd2l0aF9ub25fYXNjaWlfZGVzY3JpcHRpb24o
c2l0ZV9kaXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIG1pbmltYWwgbWV0YWRhdGEg
Zm9yIGEgcGFja2FnZSB3aXRoIG5vbi1BU0NJSSBpbgorICAgICAgICB0aGUgZGVzY3JpcHRpb24u
CisgICAgICAgICIiIgorICAgICAgICBtZXRhZGF0YV9kaXIgPSBzaXRlX2RpciAvICdwb3J0ZW5k
LmRpc3QtaW5mbycKKyAgICAgICAgbWV0YWRhdGFfZGlyLm1rZGlyKCkKKyAgICAgICAgbWV0YWRh
dGEgPSBtZXRhZGF0YV9kaXIgLyAnTUVUQURBVEEnCisgICAgICAgIHdpdGggbWV0YWRhdGEub3Bl
bigndycsIGVuY29kaW5nPSd1dGYtOCcpIGFzIGZwOgorICAgICAgICAgICAgZnAud3JpdGUoJ0Rl
c2NyaXB0aW9uOiBww7Ryy4h0ZW5kXG4nKQorICAgICAgICByZXR1cm4gJ3BvcnRlbmQnCisKKyAg
ICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBrZ193aXRoX25vbl9hc2NpaV9kZXNjcmlwdGlvbl9l
Z2dfaW5mbyhzaXRlX2Rpcik6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGUgbWluaW1hbCBt
ZXRhZGF0YSBmb3IgYW4gZWdnLWluZm8gcGFja2FnZSB3aXRoCisgICAgICAgIG5vbi1BU0NJSSBp
biB0aGUgZGVzY3JpcHRpb24uCisgICAgICAgICIiIgorICAgICAgICBtZXRhZGF0YV9kaXIgPSBz
aXRlX2RpciAvICdwb3J0ZW5kLmRpc3QtaW5mbycKKyAgICAgICAgbWV0YWRhdGFfZGlyLm1rZGly
KCkKKyAgICAgICAgbWV0YWRhdGEgPSBtZXRhZGF0YV9kaXIgLyAnTUVUQURBVEEnCisgICAgICAg
IHdpdGggbWV0YWRhdGEub3BlbigndycsIGVuY29kaW5nPSd1dGYtOCcpIGFzIGZwOgorICAgICAg
ICAgICAgZnAud3JpdGUodGV4dHdyYXAuZGVkZW50KCIiIgorICAgICAgICAgICAgICAgIE5hbWU6
IHBvcnRlbmQKKworICAgICAgICAgICAgICAgIHDDtHLLiHRlbmQKKyAgICAgICAgICAgICAgICAi
IiIpLmxzdHJpcCgpKQorICAgICAgICByZXR1cm4gJ3BvcnRlbmQnCisKKyAgICBkZWYgdGVzdF9t
ZXRhZGF0YV9sb2FkcyhzZWxmKToKKyAgICAgICAgcGtnX25hbWUgPSBzZWxmLnBrZ193aXRoX25v
bl9hc2NpaV9kZXNjcmlwdGlvbihzZWxmLnNpdGVfZGlyKQorICAgICAgICBtZXRhID0gbWV0YWRh
dGEocGtnX25hbWUpCisgICAgICAgIGFzc2VydCBtZXRhWydEZXNjcmlwdGlvbiddID09ICdww7Ry
y4h0ZW5kJworCisgICAgZGVmIHRlc3RfbWV0YWRhdGFfbG9hZHNfZWdnX2luZm8oc2VsZik6Cisg
ICAgICAgIHBrZ19uYW1lID0gc2VsZi5wa2dfd2l0aF9ub25fYXNjaWlfZGVzY3JpcHRpb25fZWdn
X2luZm8oc2VsZi5zaXRlX2RpcikKKyAgICAgICAgbWV0YSA9IG1ldGFkYXRhKHBrZ19uYW1lKQor
ICAgICAgICBhc3NlcnQgbWV0YS5nZXRfcGF5bG9hZCgpID09ICdww7Ryy4h0ZW5kXG4nCisKKwor
Y2xhc3MgRGlzY292ZXJ5VGVzdHMoZml4dHVyZXMuRWdnSW5mb1BrZywKKyAgICAgICAgICAgICAg
ICAgICAgIGZpeHR1cmVzLkRpc3RJbmZvUGtnLAorICAgICAgICAgICAgICAgICAgICAgdW5pdHRl
c3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfcGFja2FnZV9kaXNjb3Zlcnkoc2VsZik6Cisg
ICAgICAgIGRpc3RzID0gbGlzdChkaXN0cmlidXRpb25zKCkpCisgICAgICAgIGFzc2VydCBhbGwo
CisgICAgICAgICAgICBpc2luc3RhbmNlKGRpc3QsIERpc3RyaWJ1dGlvbikKKyAgICAgICAgICAg
IGZvciBkaXN0IGluIGRpc3RzCisgICAgICAgICAgICApCisgICAgICAgIGFzc2VydCBhbnkoCisg
ICAgICAgICAgICBkaXN0Lm1ldGFkYXRhWydOYW1lJ10gPT0gJ2VnZ2luZm8tcGtnJworICAgICAg
ICAgICAgZm9yIGRpc3QgaW4gZGlzdHMKKyAgICAgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IGFu
eSgKKyAgICAgICAgICAgIGRpc3QubWV0YWRhdGFbJ05hbWUnXSA9PSAnZGlzdGluZm8tcGtnJwor
ICAgICAgICAgICAgZm9yIGRpc3QgaW4gZGlzdHMKKyAgICAgICAgICAgICkKKworICAgIGRlZiB0
ZXN0X2ludmFsaWRfdXNhZ2Uoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
VmFsdWVFcnJvcik6CisgICAgICAgICAgICBsaXN0KGRpc3RyaWJ1dGlvbnMoY29udGV4dD0nc29t
ZXRoaW5nJywgbmFtZT0nZWxzZScpKQorCisKK2NsYXNzIERpcmVjdG9yeVRlc3QoZml4dHVyZXMu
T25TeXNQYXRoLCBmaXh0dXJlcy5TaXRlRGlyLCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVm
IHRlc3RfZWdnX2luZm8oc2VsZik6CisgICAgICAgICMgbWFrZSBhbiBgRUdHLUlORk9gIGRpcmVj
dG9yeSB0aGF0J3MgdW5yZWxhdGVkCisgICAgICAgIHNlbGYuc2l0ZV9kaXIuam9pbnBhdGgoJ0VH
Ry1JTkZPJykubWtkaXIoKQorICAgICAgICAjIHVzZWQgdG8gY3Jhc2ggd2l0aCBgSXNBRGlyZWN0
b3J5RXJyb3JgCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUGFja2FnZU5vdEZvdW5k
RXJyb3IpOgorICAgICAgICAgICAgdmVyc2lvbigndW5rbm93bi1wYWNrYWdlJykKKworICAgIGRl
ZiB0ZXN0X2VnZyhzZWxmKToKKyAgICAgICAgZWdnID0gc2VsZi5zaXRlX2Rpci5qb2lucGF0aCgn
Zm9vLTMuNi5lZ2cnKQorICAgICAgICBlZ2cubWtkaXIoKQorICAgICAgICB3aXRoIHNlbGYuYWRk
X3N5c19wYXRoKGVnZyk6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFBhY2th
Z2VOb3RGb3VuZEVycm9yKToKKyAgICAgICAgICAgICAgICB2ZXJzaW9uKCdmb28nKQorCisKK2Ns
YXNzIE1pc3NpbmdTeXNQYXRoKGZpeHR1cmVzLk9uU3lzUGF0aCwgdW5pdHRlc3QuVGVzdENhc2Up
OgorICAgIHNpdGVfZGlyID0gJy9kb2VzLW5vdC1leGlzdCcKKworICAgIGRlZiB0ZXN0X2Rpc2Nv
dmVyeShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIERpc2NvdmVyaW5nIGRpc3RyaWJ1dGlv
bnMgc2hvdWxkIHN1Y2NlZWQgZXZlbiBpZgorICAgICAgICB0aGVyZSBpcyBhbiBpbnZhbGlkIHBh
dGggb24gc3lzLnBhdGguCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnRsaWJfbWV0YWRhdGEu
ZGlzdHJpYnV0aW9ucygpCisKKworY2xhc3MgSW5hY2Nlc3NpYmxlU3lzUGF0aChmaXh0dXJlcy5P
blN5c1BhdGgsIGZmcy5UZXN0Q2FzZSk6CisgICAgc2l0ZV9kaXIgPSAnL2FjY2Vzcy1kZW5pZWQn
CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKEluYWNjZXNzaWJsZVN5c1Bh
dGgsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZi5zZXRVcFB5ZmFrZWZzKCkKKyAgICAgICAg
c2VsZi5mcy5jcmVhdGVfZGlyKHNlbGYuc2l0ZV9kaXIsIHBlcm1fYml0cz0wMDApCisKKyAgICBk
ZWYgdGVzdF9kaXNjb3Zlcnkoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBEaXNjb3Zlcmlu
ZyBkaXN0cmlidXRpb25zIHNob3VsZCBzdWNjZWVkIGV2ZW4gaWYKKyAgICAgICAgdGhlcmUgaXMg
YW4gaW52YWxpZCBwYXRoIG9uIHN5cy5wYXRoLgorICAgICAgICAiIiIKKyAgICAgICAgbGlzdChp
bXBvcnRsaWJfbWV0YWRhdGEuZGlzdHJpYnV0aW9ucygpKQorCisKK2NsYXNzIFRlc3RFbnRyeVBv
aW50cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzKToK
KyAgICAgICAgc3VwZXIoVGVzdEVudHJ5UG9pbnRzLCBzZWxmKS5fX2luaXRfXygqYXJncykKKyAg
ICAgICAgc2VsZi5lcCA9IGltcG9ydGxpYl9tZXRhZGF0YS5FbnRyeVBvaW50KCduYW1lJywgJ3Zh
bHVlJywgJ2dyb3VwJykKKworICAgIGRlZiB0ZXN0X2VudHJ5X3BvaW50X3BpY2tsZWFibGUoc2Vs
Zik6CisgICAgICAgIHJldml2ZWQgPSBwaWNrbGUubG9hZHMocGlja2xlLmR1bXBzKHNlbGYuZXAp
KQorICAgICAgICBhc3NlcnQgcmV2aXZlZCA9PSBzZWxmLmVwCisKKyAgICBkZWYgdGVzdF9pbW11
dGFibGUoc2VsZik6CisgICAgICAgICIiIkVudHJ5UG9pbnRzIHNob3VsZCBiZSBpbW11dGFibGUi
IiIKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAg
ICAgICAgICBzZWxmLmVwLm5hbWUgPSAnYmFkYWN0b3InCisKKyAgICBkZWYgdGVzdF9yZXByKHNl
bGYpOgorICAgICAgICBhc3NlcnQgJ0VudHJ5UG9pbnQnIGluIHJlcHIoc2VsZi5lcCkKKyAgICAg
ICAgYXNzZXJ0ICduYW1lPScgaW4gcmVwcihzZWxmLmVwKQorICAgICAgICBhc3NlcnQgIiduYW1l
JyIgaW4gcmVwcihzZWxmLmVwKQorCisgICAgZGVmIHRlc3RfaGFzaGFibGUoc2VsZik6CisgICAg
ICAgICIiIkVudHJ5UG9pbnRzIHNob3VsZCBiZSBoYXNoYWJsZSIiIgorICAgICAgICBoYXNoKHNl
bGYuZXApCisKKyAgICBkZWYgdGVzdF9qc29uX2R1bXAoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBqc29uIHNob3VsZCBub3QgZXhwZWN0IHRvIGJlIGFibGUgdG8gZHVtcCBhbiBFbnRyeVBv
aW50CisgICAgICAgICIiIgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlv
bik6CisgICAgICAgICAgICBqc29uLmR1bXBzKHNlbGYuZXApCisKKyAgICBkZWYgdGVzdF9tb2R1
bGUoc2VsZik6CisgICAgICAgIGFzc2VydCBzZWxmLmVwLm1vZHVsZSA9PSAndmFsdWUnCisKKyAg
ICBkZWYgdGVzdF9hdHRyKHNlbGYpOgorICAgICAgICBhc3NlcnQgc2VsZi5lcC5hdHRyIGlzIE5v
bmUKKworCitjbGFzcyBGaWxlU3lzdGVtKAorICAgICAgICBmaXh0dXJlcy5PblN5c1BhdGgsIGZp
eHR1cmVzLlNpdGVEaXIsIGZpeHR1cmVzLkZpbGVCdWlsZGVyLAorICAgICAgICB1bml0dGVzdC5U
ZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfdW5pY29kZV9kaXJfb25fc3lzX3BhdGgoc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICBFbnN1cmUgYSBVbmljb2RlIHN1YmRpcmVjdG9yeSBvZiBhIGRp
cmVjdG9yeSBvbiBzeXMucGF0aAorICAgICAgICBkb2VzIG5vdCBjcmFzaC4KKyAgICAgICAgIiIi
CisgICAgICAgIGZpeHR1cmVzLmJ1aWxkX2ZpbGVzKAorICAgICAgICAgICAge3NlbGYudW5pY29k
ZV9maWxlbmFtZSgpOiB7fX0sCisgICAgICAgICAgICBwcmVmaXg9c2VsZi5zaXRlX2RpciwKKyAg
ICAgICAgICAgICkKKyAgICAgICAgbGlzdChkaXN0cmlidXRpb25zKCkpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X3ppcC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGli
X21ldGFkYXRhL3Rlc3RzL3Rlc3RfemlwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjZWJjZDAyZjdhNDgzNzI4
NDlkNWQ1OTE4YWNhNGM1MjcwZGNkYmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxp
Yl9tZXRhZGF0YS90ZXN0cy90ZXN0X3ppcC5weQpAQCAtMCwwICsxLDgwIEBACitpbXBvcnQgc3lz
CitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSBpbXBvcnRsaWJfbWV0YWRhdGEgaW1wb3J0ICgKKyAg
ICBkaXN0cmlidXRpb24sIGVudHJ5X3BvaW50cywgZmlsZXMsIFBhY2thZ2VOb3RGb3VuZEVycm9y
LAorICAgIHZlcnNpb24sIGRpc3RyaWJ1dGlvbnMsCisgICAgKQorCit0cnk6CisgICAgZnJvbSBp
bXBvcnRsaWIgaW1wb3J0IHJlc291cmNlcworICAgIGdldGF0dHIocmVzb3VyY2VzLCAnZmlsZXMn
KQorICAgIGdldGF0dHIocmVzb3VyY2VzLCAnYXNfZmlsZScpCitleGNlcHQgKEltcG9ydEVycm9y
LCBBdHRyaWJ1dGVFcnJvcik6CisgICAgaW1wb3J0IGltcG9ydGxpYl9yZXNvdXJjZXMgYXMgcmVz
b3VyY2VzCisKK3RyeToKKyAgICBmcm9tIGNvbnRleHRsaWIgaW1wb3J0IEV4aXRTdGFjaworZXhj
ZXB0IEltcG9ydEVycm9yOgorICAgIGZyb20gY29udGV4dGxpYjIgaW1wb3J0IEV4aXRTdGFjawor
CisKK2NsYXNzIFRlc3RaaXAodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIHJvb3QgPSAndGVzdHMu
ZGF0YScKKworICAgIGRlZiBfZml4dHVyZV9vbl9wYXRoKHNlbGYsIGZpbGVuYW1lKToKKyAgICAg
ICAgcGtnX2ZpbGUgPSByZXNvdXJjZXMuZmlsZXMoc2VsZi5yb290KS5qb2lucGF0aChmaWxlbmFt
ZSkKKyAgICAgICAgZmlsZSA9IHNlbGYucmVzb3VyY2VzLmVudGVyX2NvbnRleHQocmVzb3VyY2Vz
LmFzX2ZpbGUocGtnX2ZpbGUpKQorICAgICAgICBhc3NlcnQgZmlsZS5uYW1lLnN0YXJ0c3dpdGgo
J2V4YW1wbGUtJyksIGZpbGUubmFtZQorICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgc3RyKGZp
bGUpKQorICAgICAgICBzZWxmLnJlc291cmNlcy5jYWxsYmFjayhzeXMucGF0aC5wb3AsIDApCisK
KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgICMgRmluZCB0aGUgcGF0aCB0byB0aGUgZXhh
bXBsZS0qLndobCBzbyB3ZSBjYW4gYWRkIGl0IHRvIHRoZSBmcm9udCBvZgorICAgICAgICAjIHN5
cy5wYXRoLCB3aGVyZSB3ZSdsbCB0aGVuIHRyeSB0byBmaW5kIHRoZSBtZXRhZGF0YSB0aGVyZW9m
LgorICAgICAgICBzZWxmLnJlc291cmNlcyA9IEV4aXRTdGFjaygpCisgICAgICAgIHNlbGYuYWRk
Q2xlYW51cChzZWxmLnJlc291cmNlcy5jbG9zZSkKKyAgICAgICAgc2VsZi5fZml4dHVyZV9vbl9w
YXRoKCdleGFtcGxlLTIxLjEyLXB5My1ub25lLWFueS53aGwnKQorCisgICAgZGVmIHRlc3Rfemlw
X3ZlcnNpb24oc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmVyc2lvbignZXhhbXBs
ZScpLCAnMjEuMTInKQorCisgICAgZGVmIHRlc3RfemlwX3ZlcnNpb25fZG9lc19ub3RfbWF0Y2go
c2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUGFja2FnZU5vdEZvdW5kRXJy
b3IpOgorICAgICAgICAgICAgdmVyc2lvbignZGVmaW5pdGVseS1ub3QtaW5zdGFsbGVkJykKKwor
ICAgIGRlZiB0ZXN0X3ppcF9lbnRyeV9wb2ludHMoc2VsZik6CisgICAgICAgIHNjcmlwdHMgPSBk
aWN0KGVudHJ5X3BvaW50cygpWydjb25zb2xlX3NjcmlwdHMnXSkKKyAgICAgICAgZW50cnlfcG9p
bnQgPSBzY3JpcHRzWydleGFtcGxlJ10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbnRyeV9w
b2ludC52YWx1ZSwgJ2V4YW1wbGU6bWFpbicpCisgICAgICAgIGVudHJ5X3BvaW50ID0gc2NyaXB0
c1snRXhhbXBsZSddCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZW50cnlfcG9pbnQudmFsdWUs
ICdleGFtcGxlOm1haW4nKQorCisgICAgZGVmIHRlc3RfbWlzc2luZ19tZXRhZGF0YShzZWxmKToK
KyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZGlzdHJpYnV0aW9uKCdleGFtcGxlJykucmVhZF90
ZXh0KCdkb2VzIG5vdCBleGlzdCcpKQorCisgICAgZGVmIHRlc3RfY2FzZV9pbnNlbnNpdGl2ZShz
ZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2ZXJzaW9uKCdFeGFtcGxlJyksICcyMS4x
MicpCisKKyAgICBkZWYgdGVzdF9maWxlcyhzZWxmKToKKyAgICAgICAgZm9yIGZpbGUgaW4gZmls
ZXMoJ2V4YW1wbGUnKToKKyAgICAgICAgICAgIHBhdGggPSBzdHIoZmlsZS5kaXN0LmxvY2F0ZV9m
aWxlKGZpbGUpKQorICAgICAgICAgICAgYXNzZXJ0ICcud2hsLycgaW4gcGF0aCwgcGF0aAorCisg
ICAgZGVmIHRlc3Rfb25lX2Rpc3RyaWJ1dGlvbihzZWxmKToKKyAgICAgICAgZGlzdHMgPSBsaXN0
KGRpc3RyaWJ1dGlvbnMocGF0aD1zeXMucGF0aFs6MV0pKQorICAgICAgICBhc3NlcnQgbGVuKGRp
c3RzKSA9PSAxCisKKworY2xhc3MgVGVzdEVnZyhUZXN0WmlwKToKKyAgICBkZWYgc2V0VXAoc2Vs
Zik6CisgICAgICAgICMgRmluZCB0aGUgcGF0aCB0byB0aGUgZXhhbXBsZS0qLmVnZyBzbyB3ZSBj
YW4gYWRkIGl0IHRvIHRoZSBmcm9udCBvZgorICAgICAgICAjIHN5cy5wYXRoLCB3aGVyZSB3ZSds
bCB0aGVuIHRyeSB0byBmaW5kIHRoZSBtZXRhZGF0YSB0aGVyZW9mLgorICAgICAgICBzZWxmLnJl
c291cmNlcyA9IEV4aXRTdGFjaygpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzZWxmLnJlc291
cmNlcy5jbG9zZSkKKyAgICAgICAgc2VsZi5fZml4dHVyZV9vbl9wYXRoKCdleGFtcGxlLTIxLjEy
LXB5My42LmVnZycpCisKKyAgICBkZWYgdGVzdF9maWxlcyhzZWxmKToKKyAgICAgICAgZm9yIGZp
bGUgaW4gZmlsZXMoJ2V4YW1wbGUnKToKKyAgICAgICAgICAgIHBhdGggPSBzdHIoZmlsZS5kaXN0
LmxvY2F0ZV9maWxlKGZpbGUpKQorICAgICAgICAgICAgYXNzZXJ0ICcuZWdnLycgaW4gcGF0aCwg
cGF0aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYzM3YzQ5YWI1NmIzYzU5MTYwYWZmYWZhMDg5NGJkNWVjNGRkNTllCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvdzNjLWltcG9ydC5sb2cK
QEAgLTAsMCArMSwyMyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAor
CitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMv
X19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9maXh0dXJlcy5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3B5Mzljb21wYXQucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9y
dGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X2FwaS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L3Rlc3RzL3Rlc3RfaW50ZWdyYXRpb24ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0
cy90ZXN0X21haW4ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X3ppcC5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdG94LmluaSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhL3RveC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYwZTk3NTc4MzczZGUwYTYzMWZj
YWViODc2ZTA2ODg4YjUwMWUyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21l
dGFkYXRhL3RveC5pbmkKQEAgLTAsMCArMSw5NyBAQAorW3RveF0KK2Vudmxpc3QgPSB7cHkyNyxw
eTM1LHB5MzYscHkzNyxweTM4fXssLWNvdiwtZGlmZmNvdn0scWEsZG9jcyxwZXJmCitza2lwX21p
c3NpbmdfaW50ZXJwcmV0ZXJzID0gVHJ1ZQorbWludmVyc2lvbiA9IDMuMgorIyBFbnN1cmUgdGhh
dCBhIGxhdGUgdmVyc2lvbiBvZiBwaXAgaXMgdXNlZCBldmVuIG9uIHRveC12ZW52LgorcmVxdWly
ZXMgPQorICAgIHRveC1waXAtdmVyc2lvbj49MC4wLjYKKworW3Rlc3RlbnZdCitwaXBfdmVyc2lv
biA9IHBpcAorY29tbWFuZHMgPQorICAgICFjb3YsIWRpZmZjb3Y6IHB5dGhvbiAtbSB1bml0dGVz
dCBkaXNjb3ZlciB7cG9zYXJnc30KKyAgICBjb3YsZGlmZmNvdjogcHl0aG9uIC1tIGNvdmVyYWdl
IHJ1biB7W2NvdmVyYWdlXXJjfSAtbSB1bml0dGVzdCBkaXNjb3ZlciB7cG9zYXJnc30KKyAgICBj
b3YsZGlmZmNvdjogcHl0aG9uIC1tIGNvdmVyYWdlIGNvbWJpbmUge1tjb3ZlcmFnZV1yY30KKyAg
ICBjb3Y6IHB5dGhvbiAtbSBjb3ZlcmFnZSBodG1sIHtbY292ZXJhZ2VdcmN9CisgICAgY292OiBw
eXRob24gLW0gY292ZXJhZ2UgeG1sIHtbY292ZXJhZ2VdcmN9CisgICAgY292OiBweXRob24gLW0g
Y292ZXJhZ2UgcmVwb3J0IC1tIHtbY292ZXJhZ2VdcmN9IC0tZmFpbC11bmRlcj0xMDAKKyAgICBk
aWZmY292OiBweXRob24gLW0gY292ZXJhZ2UgeG1sIHtbY292ZXJhZ2VdcmN9CisgICAgZGlmZmNv
djogZGlmZi1jb3ZlciBjb3ZlcmFnZS54bWwgLS1odG1sLXJlcG9ydCBkaWZmY292Lmh0bWwKKyAg
ICBkaWZmY292OiBkaWZmLWNvdmVyIGNvdmVyYWdlLnhtbCAtLWZhaWwtdW5kZXI9MTAwCit1c2Vk
ZXZlbG9wID0gVHJ1ZQorcGFzc2VudiA9CisgICAgUFlUSE9OKgorICAgIExBTkcqCisgICAgTENf
KgorICAgIFBZVgorZGVwcyA9CisgICAgY292LGRpZmZjb3Y6IGNvdmVyYWdlPj00LjUKKyAgICBk
aWZmY292OiBkaWZmX2NvdmVyCisgICAgcHlmYWtlZnMKK3NldGVudiA9CisgICAgY292OiBDT1ZF
UkFHRV9QUk9DRVNTX1NUQVJUPXtbY292ZXJhZ2VdcmNmaWxlfQorICAgIGNvdjogQ09WRVJBR0Vf
T1BUSU9OUz0iLXAiCisgICAgY292OiBDT1ZFUkFHRV9GSUxFPXt0b3hpbmlkaXJ9Ly5jb3ZlcmFn
ZQorICAgIHB5Mjc6IFBZVj0yCisgICAgcHkzNSxweTM2LHB5MzcscHkzODogUFlWPTMKKyAgICAj
IHdvcmthcm91bmQgZGVwcmVjYXRpb24gd2FybmluZ3MgaW4gcGlwJ3MgdmVuZG9yZWQgcGFja2Fn
ZXMKKyAgICBQWVRIT05XQVJOSU5HUz1pZ25vcmU6VXNpbmcgb3IgaW1wb3J0aW5nIHRoZSBBQkNz
OkRlcHJlY2F0aW9uV2FybmluZzpwaXAuX3ZlbmRvcgorZXh0cmFzID0KKyAgICB0ZXN0aW5nCisK
KworW3Rlc3RlbnY6cWFdCitiYXNlcHl0aG9uID0gcHl0aG9uMy43Citjb21tYW5kcyA9CisgICAg
cHl0aG9uIC1tIGZsYWtlOCBpbXBvcnRsaWJfbWV0YWRhdGEKKyAgICBteXB5IGltcG9ydGxpYl9t
ZXRhZGF0YQorZGVwcyA9CisgICAgbXlweQorICAgIGZsYWtlOAorICAgIGZsdWZsLmZsYWtlOAor
ZXh0cmFzID0KKworCitbdGVzdGVudjpkb2NzXQorYmFzZXB5dGhvbiA9IHB5dGhvbjMKK2NvbW1h
bmRzID0KKyAgICBzcGhpbngtYnVpbGQgZG9jcyBidWlsZC9zcGhpbngvaHRtbAorZXh0cmFzID0K
KyAgICBkb2NzCisKKworW3Rlc3RlbnY6cGVyZl0KK3VzZV9kZXZlbG9wID0gRmFsc2UKK2RlcHMg
PQorICAgIGlweXRob24KK2NvbW1hbmRzID0KKyAgICBweXRob24gLW0gdGltZWl0IC1zICdpbXBv
cnQgaW1wb3J0bGliX21ldGFkYXRhJyAtLSAnaW1wb3J0bGliX21ldGFkYXRhLmRpc3RyaWJ1dGlv
bigiaXB5dGhvbiIpJworCisKK1t0ZXN0ZW52OnJlbGVhc2VdCitiYXNlcHl0aG9uID0gcHl0aG9u
MworZGVwcyA9CisgICAgdHdpbmUKKyAgICB3aGVlbAorICAgIHNldHVwdG9vbHMKKyAgICBrZXly
aW5nCisgICAgc2V0dXB0b29sc19zY20KK3Bhc3NlbnYgPQorICAgIFRXSU5FX1BBU1NXT1JECitz
ZXRlbnYgPQorICAgIFRXSU5FX1VTRVJOQU1FID0ge2VudjpUV0lORV9VU0VSTkFNRTpfX3Rva2Vu
X199Citjb21tYW5kcyA9CisgICAgcHl0aG9uIHNldHVwLnB5IHNkaXN0IGJkaXN0X3doZWVsCisg
ICAgcHl0aG9uIC1tIHR3aW5lIHtwb3NhcmdzfSB1cGxvYWQgZGlzdC8qCisKKworW2NvdmVyYWdl
XQorcmNmaWxlID0ge3RveGluaWRpcn0vY292ZXJhZ2UuaW5pCityYyA9IC0tcmNmaWxlPSJ7W2Nv
dmVyYWdlXXJjZmlsZX0iCisKKworW2ZsYWtlOF0KK2hhbmctY2xvc2luZyA9IFRydWUKK2pvYnMg
PSAxCittYXgtbGluZS1sZW5ndGggPSA3OQorZW5hYmxlLWV4dGVuc2lvbnMgPSBVNApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9y
dGxpYl9tZXRhZGF0YS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzA3OTI2YmY1NDgxMzZh
NWZlNzU5MjVlMGVhOWU2Zjg3MjllMzllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyNiBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9pbXBvcnRsaWJfbWV0YWRhdGEvTElDRU5TRQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL01B
TklGRVNULmluCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvUkVBRE1FLnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhL2NvZGVjb3YueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvY292
ZXJhZ2UuaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvY292ZXJwbHVnLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9p
bXBvcnRsaWJfbWV0YWRhdGEvcHlwcm9qZWN0LnRvbWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0
YS9zZXR1cC5jZmcKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9zZXR1cC5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhL3RveC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5naXRo
dWIvd29ya2Zsb3dzL2RvY3MueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmdpdGh1Yi93b3JrZmxvd3Mv
ZG9jcy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMxNTczODc3OTAzZTQwZjcyNTM1ZjQ5N2YxNDVlYzFkYTlh
NzFjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5naXRodWIvd29ya2Zsb3dz
L2RvY3MueW1sCkBAIC0wLDAgKzEsMzAgQEAKK25hbWU6IERvY3VtZW50YXRpb24KKworb246Cisg
IHB1bGxfcmVxdWVzdDoKKyAgICBwYXRoczoKKyAgICAgIC0gJ2RvY3MvKionCisgIHB1c2g6Cisg
ICAgcGF0aHM6CisgICAgICAtICdkb2NzLyoqJworCitqb2JzOgorICBkb2NzOgorICAgIG5hbWU6
IG5veCAtcyBkb2NzCisgICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAorCisgICAgc3RlcHM6Cisg
ICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYxCisKKyAgICAtIHVzZXM6IGFjdGlvbnMvc2V0
dXAtcHl0aG9uQHYyCisgICAgICBuYW1lOiBJbnN0YWxsIFB5dGhvbgorICAgICAgd2l0aDoKKyAg
ICAgICAgcHl0aG9uLXZlcnNpb246ICczLjknCisKKyAgICAtIG5hbWU6IEluc3RhbGwgZGVwZW5k
ZW5jaWVzCisgICAgICBydW46IHwKKyAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIC0tdXBn
cmFkZSBwaXAKKyAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBub3gKKwor
ICAgIC0gbmFtZTogQnVpbGQgZG9jdW1lbnRhdGlvbgorICAgICAgcnVuOiBweXRob24gLW0gbm94
IC1zIGRvY3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5naXRodWIvd29ya2Zsb3dzL2xp
bnQueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmdpdGh1Yi93b3JrZmxvd3MvbGludC55bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDAzZjE2ZmQ2ODFmODg0ZTViYmMxZjE0NDNlZTg0ODExZTMxNTI4OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5naXRodWIvd29ya2Zsb3dzL2xpbnQueW1sCkBAIC0w
LDAgKzEsNTkgQEAKK25hbWU6IExpbnRpbmcKKworb246CisgIHB1bGxfcmVxdWVzdDoKKyAgICBw
YXRoczoKKyAgICAgIC0gIioqLnB5IgorICBwdXNoOgorICAgIHBhdGhzOgorICAgICAgLSAiKiou
cHkiCisKK2pvYnM6CisgIGxpbnQ6CisgICAgbmFtZTogbm94IC1zIGxpbnQKKyAgICBydW5zLW9u
OiB1YnVudHUtbGF0ZXN0CisKKyAgICBzdGVwczoKKyAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVj
a291dEB2MQorCisgICAgICAtIHVzZXM6IGFjdGlvbnMvc2V0dXAtcHl0aG9uQHYyCisgICAgICAg
IG5hbWU6IEluc3RhbGwgUHl0aG9uCisgICAgICAgIHdpdGg6CisgICAgICAgICAgcHl0aG9uLXZl
cnNpb246ICIzLjkiCisKKyAgICAgIC0gbmFtZTogSW5zdGFsbCBkZXBlbmRlbmNpZXMKKyAgICAg
ICAgcnVuOiB8CisgICAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBwaXAK
KyAgICAgICAgICBweXRob24gLW0gcGlwIGluc3RhbGwgLS11cGdyYWRlIG5veAorCisgICAgICAt
IG5hbWU6IFJ1biBgbm94IC1zIGxpbnRgCisgICAgICAgIHJ1bjogcHl0aG9uIC1tIG5veCAtcyBs
aW50CisKKyAgYnVpbGQ6CisgICAgbmFtZTogQnVpbGQgc2Rpc3QgYW5kIHdoZWVsCisgICAgcnVu
cy1vbjogdWJ1bnR1LWxhdGVzdAorICAgICMgTGludGluZyB2ZXJpZmllcyB0aGF0IHRoZSBwcm9q
ZWN0IGlzIGluIGFuIGFjY2VwdGFibGUgc3RhdGUgdG8gY3JlYXRlIGZpbGVzCisgICAgIyBmb3Ig
cmVsZWFzaW5nLgorICAgICMgQW5kIHRoaXMgYWN0aW9uIHNob3VsZCBiZSBydW4gd2hlbmV2ZXIg
YSByZWxlYXNlIGlzIHJlYWR5IHRvIGdvIHB1YmxpYyBhcworICAgICMgdGhlIHZlcnNpb24gbnVt
YmVyIHdpbGwgYmUgY2hhbmdlZCBieSBlZGl0aW5nIF9fYWJvdXRfXy5weS4KKyAgICBuZWVkczog
bGludAorCisgICAgc3RlcHM6CisgICAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjEKKwor
ICAgICAgLSB1c2VzOiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2MgorICAgICAgICBuYW1lOiBJbnN0
YWxsIFB5dGhvbgorICAgICAgICB3aXRoOgorICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAiMy45
IgorCisgICAgICAtIG5hbWU6IEluc3RhbGwgZGVwZW5kZW5jaWVzCisgICAgICAgIHJ1bjogcHl0
aG9uIC1tIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBidWlsZAorCisgICAgICAtIG5hbWU6IEJ1aWxk
CisgICAgICAgIHJ1bjogcHl0aG9uIC1tIGJ1aWxkCisKKyAgICAgIC0gbmFtZTogQXJjaGl2ZSBm
aWxlcworICAgICAgICB1c2VzOiBhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEB2MQorICAgICAgICB3
aXRoOgorICAgICAgICAgIG5hbWU6IGRpc3QKKyAgICAgICAgICBwYXRoOiBkaXN0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy90ZXN0LnltbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFj
a2FnaW5nLy5naXRodWIvd29ya2Zsb3dzL3Rlc3QueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MDMxMDcxNmU2
NmRiMzFiNTU4OWIwZjc4MjRmZDMyNDlkMzEyMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy90ZXN0LnltbApAQCAtMCwwICsxLDc1IEBACituYW1l
OiBUZXN0CisKK29uOgorICBwdWxsX3JlcXVlc3Q6CisgICAgcGF0aHM6CisgICAgICAtICIuZ2l0
aHViL3dvcmtmbG93cy90ZXN0LnltbCIKKyAgICAgIC0gIioqLnB5IgorICBwdXNoOgorICAgIHBh
dGhzOgorICAgICAgLSAiLmdpdGh1Yi93b3JrZmxvd3MvdGVzdC55bWwiCisgICAgICAtICIqKi5w
eSIKKworam9iczoKKyAgdGVzdDoKKyAgICBuYW1lOiAke3sgbWF0cml4Lm9zIH19IC8gJHt7IG1h
dHJpeC5weXRob25fdmVyc2lvbiB9fQorICAgIHJ1bnMtb246ICR7eyBtYXRyaXgub3MgfX0tbGF0
ZXN0CisgICAgc3RyYXRlZ3k6CisgICAgICBmYWlsLWZhc3Q6IGZhbHNlCisgICAgICBtYXRyaXg6
CisgICAgICAgIG9zOiBbVWJ1bnR1LCBXaW5kb3dzLCBtYWNPU10KKyAgICAgICAgIyBQeXRob24g
My40IGlzIG5vdCBhdmFpbGFibGUgZnJvbSBhY3Rpb25zL3NldHVwLXB5dGhvbkB2Mi4KKyAgICAg
ICAgcHl0aG9uX3ZlcnNpb246CisgICAgICAgICAgWyIyLjciLCAiMy41IiwgIjMuNiIsICIzLjci
LCAiMy44IiwgIjMuOSIsICJweXB5MiIsICJweXB5MyJdCisgICAgICAgIGV4Y2x1ZGU6CisgICAg
ICAgICAgIyBUaGlzIGlzIGZhaWxpbmcgZHVlIHRvIHBpcCBub3QgYmVpbmcgaW4gdGhlIHZpcnR1
YWwgZW52aXJvbm1lbnQuCisgICAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vcHlwYS9wYWNr
YWdpbmcvcnVucy80MjQ3ODU4NzEjc3RlcDo3OjkKKyAgICAgICAgICAtIG9zOiB3aW5kb3dzCisg
ICAgICAgICAgICBweXRob25fdmVyc2lvbjogcHlweTMKKworICAgIHN0ZXBzOgorICAgICAgLSB1
c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYxCisKKyAgICAgIC0gdXNlczogYWN0aW9ucy9zZXR1cC1w
eXRob25AdjIKKyAgICAgICAgbmFtZTogSW5zdGFsbCBQeXRob24gJHt7IG1hdHJpeC5weXRob25f
dmVyc2lvbiB9fQorICAgICAgICB3aXRoOgorICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAke3sg
bWF0cml4LnB5dGhvbl92ZXJzaW9uIH19CisKKyAgICAgICMgU2V0IGBweXRob25gIHRvIGEgcmVj
ZW50IDMueCB2ZXJzaW9uIGlmIHdlJ3JlIG5vdCB0ZXN0aW5nIFB5dGhvbiAzLjYrLgorICAgICAg
IyAgICBXaHk/IE5veCBuZWVkcyBQeXRob24gMy41KyBhbmQgZXZlcnlvbmUgbGlrZXMgZi1zdHJp
bmdzLgorICAgICAgLSB1c2VzOiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2MgorICAgICAgICBuYW1l
OiBJbnN0YWxsIFB5dGhvbiAzLngKKyAgICAgICAgd2l0aDoKKyAgICAgICAgICBweXRob24tdmVy
c2lvbjogMy54CisgICAgICAgIGlmOiA+CisgICAgICAgICAgKAorICAgICAgICAgICAgbWF0cml4
LnB5dGhvbl92ZXJzaW9uID09ICcyLjcnIHx8CisgICAgICAgICAgICBtYXRyaXgucHl0aG9uX3Zl
cnNpb24gPT0gJ3B5cHkyJyB8fAorICAgICAgICAgICAgbWF0cml4LnB5dGhvbl92ZXJzaW9uID09
ICczLjUnCisgICAgICAgICAgKQorCisgICAgICAjIFdvcmthcm91bmQgaHR0cHM6Ly9naXRodWIu
Y29tL3RoZWFjb2Rlcy9ub3gvaXNzdWVzLzI1MAorICAgICAgLSBuYW1lOiBXb3JrYXJvdW5kIGZv
ciBXaW5kb3dzIFB5dGhvbiAyLjcKKyAgICAgICAgIyBUaGlzIGlzIGluIFBBVEgsIHNvIG5veCBy
ZXNvbHZlcyB0byBpdCAtIGJ1dCB0aGVuIHN1YnNlcXVlbnQgc3RlcHMgZmFpbC4KKyAgICAgICAg
cnVuOiBybSBDOi9Qcm9ncmFtRGF0YS9DaG9jb2xhdGV5L2Jpbi9weXRob24yLjcuZXhlCisgICAg
ICAgIHNoZWxsOiBiYXNoCisgICAgICAgIGlmOiBydW5uZXIub3MgPT0gJ1dpbmRvd3MnICYmIG1h
dHJpeC5weXRob25fdmVyc2lvbiA9PSAnMi43JworCisgICAgICAtIG5hbWU6IEluc3RhbGwgZGVw
ZW5kZW5jaWVzCisgICAgICAgIHJ1bjogfAorICAgICAgICAgIHB5dGhvbiAtbSBwaXAgaW5zdGFs
bCAtLXVwZ3JhZGUgcGlwCisgICAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIG5veAorICAg
ICAgICBzaGVsbDogYmFzaAorCisgICAgICAtIG5hbWU6IFJ1biBub3gKKyAgICAgICAgcnVuOiB8
CisgICAgICAgICAgcHl0aG9uIC1tIG5veCAtLWVycm9yLW9uLW1pc3NpbmctaW50ZXJwcmV0ZXJz
IC1zIHRlc3RzLSR7eyBtYXRyaXgucHl0aG9uX3ZlcnNpb24gfX0KKyAgICAgICAgc2hlbGw6IGJh
c2gKKyAgICAgICAgaWY6IG1hdHJpeC5weXRob25fdmVyc2lvbiAhPSAncHlweTInCisKKyAgICAg
ICMgQmluYXJ5IGlzIG5hbWVkICdweXB5JywgYnV0IHNldHVwLXB5dGhvbiBzcGVjaWZpZXMgaXQg
YXMgJ3B5cHkyJy4KKyAgICAgIC0gbmFtZTogUnVuIG5veCBmb3IgcHlweTIKKyAgICAgICAgcnVu
OiB8CisgICAgICAgICAgcHl0aG9uIC1tIG5veCAtLWVycm9yLW9uLW1pc3NpbmctaW50ZXJwcmV0
ZXJzIC1zIHRlc3RzLXB5cHkKKyAgICAgICAgc2hlbGw6IGJhc2gKKyAgICAgICAgaWY6IG1hdHJp
eC5weXRob25fdmVyc2lvbiA9PSAncHlweTInCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8u
Z2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5naXRodWIv
d29ya2Zsb3dzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NDBmNGNlOGZhOWI2YzBjZDg4
MjFkODc5ZDE0MTU4NDNiY2EyOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8u
Z2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy9kb2NzLnltbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nLy5naXRodWIvd29ya2Zsb3dzL2xpbnQueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmdpdGh1Yi93
b3JrZmxvd3MvdGVzdC55bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL0NIQU5HRUxPRy5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy9DSEFOR0VMT0cucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMjc1YjA2NDYw
ZTkyMGYyOWFhYzkxYjc4ZmQ4ZjU4NjNlMTVlMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy9DSEFOR0VMT0cucnN0CkBAIC0wLDAgKzEsMjk1IEBACitDaGFuZ2Vsb2cKKy0tLS0t
LS0tLQorCisyMC43IC0gMjAyMC0xMS0yOAorfn5+fn5+fn5+fn5+fn5+fn4KKworTm8gdW5yZWxl
YXNlZCBjaGFuZ2VzLgorCisyMC42IC0gMjAyMC0xMS0yOAorfn5+fn5+fn5+fn5+fn5+fn4KKwor
KiBGaXggZmxpdCBjb25maWd1cmF0aW9uLCB0byBpbmNsdWRlIExJQ0VOU0UgZmlsZXMgKDppc3N1
ZTpgMzU3YCkKKworMjAuNSAtIDIwMjAtMTEtMjcKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogT2Zm
aWNpYWxseSBzdXBwb3J0IFB5dGhvbiAzLjkgKDppc3N1ZTpgMzQzYCkKKyogRGVwcmVjYXRlIHRo
ZSBgYExlZ2FjeVZlcnNpb25gYCBhbmQgYGBMZWdhY3lTcGVjaWZpZXJgYCBjbGFzc2VzICg6aXNz
dWU6YDMyMWApCisqIEhhbmRsZSBgYE9TRXJyb3JgYCBvbiBub24tZHluYW1pYyBleGVjdXRhYmxl
cyB3aGVuIGF0dGVtcHRpbmcgdG8gcmVzb2x2ZQorICB0aGUgZ2xpYmMgdmVyc2lvbiBzdHJpbmcu
CisKKzIwLjQgLSAyMDIwLTA1LTE5Cit+fn5+fn5+fn5+fn5+fn5+fgorCisqIENhbm9uaWNhbGl6
ZSB2ZXJzaW9uIGJlZm9yZSBjb21wYXJpbmcgc3BlY2lmaWVycy4gKDppc3N1ZTpgMjgyYCkKKyog
Q2hhbmdlIHR5cGUgaGludCBmb3IgYGBjYW5vbmljYWxpemVfbmFtZWBgIHRvIHJldHVybgorICBg
YHBhY2thZ2luZy51dGlscy5Ob3JtYWxpemVkTmFtZWBgLgorICBUaGlzIGVuYWJsZXMgdGhlIHVz
ZSBvZiBzdGF0aWMgdHlwaW5nIHRvb2xzIChsaWtlIG15cHkpIHRvIGRldGVjdCBtaXhpbmcgb2YK
KyAgbm9ybWFsaXplZCBhbmQgdW4tbm9ybWFsaXplZCBuYW1lcy4KKworMjAuMyAtIDIwMjAtMDMt
MDUKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogRml4IGNoYW5nZWxvZyBmb3IgMjAuMi4KKworMjAu
MiAtIDIwMjAtMDMtMDUKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogRml4IGEgYnVnIHRoYXQgY2F1
c2VkIGEgMzItYml0IE9TIHRoYXQgcnVucyBvbiBhIDY0LWJpdCBBUk0gQ1BVIChlLmcuIEFSTS12
OCwKKyAgYWFyY2g2NCksIHRvIHJlcG9ydCB0aGUgd3JvbmcgYml0bmVzcy4KKworMjAuMSAtIDIw
MjAtMDEtMjQKK35+fn5+fn5+fn5+fn5+fn5+fn4KKworKiBGaXggYSBidWcgY2F1c2VkIGJ5IHJl
dXNlIG9mIGFuIGV4aGF1c3RlZCBpdGVyYXRvci4gKDppc3N1ZTpgMjU3YCkKKworMjAuMCAtIDIw
MjAtMDEtMDYKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogQWRkIHR5cGUgaGludHMgKDppc3N1ZTpg
MTkxYCkKKworKiBBZGQgcHJvcGVyIHRyb3ZlIGNsYXNzaWZpZXJzIGZvciBQeVB5IHN1cHBvcnQg
KDppc3N1ZTpgMTk4YCkKKworKiBTY2FsZSBiYWNrIGRlcGVuZGluZyBvbiBgYGN0eXBlc2BgIGZv
ciBtYW55bGludXggc3VwcG9ydCBkZXRlY3Rpb24gKDppc3N1ZTpgMTcxYCkKKworKiBVc2UgYGBz
eXMuaW1wbGVtZW50YXRpb24ubmFtZWBgIHdoZXJlIGFwcHJvcHJpYXRlIGZvciBgYHBhY2thZ2lu
Zy50YWdzYGAgKDppc3N1ZTpgMTkzYCkKKworKiBFeHBhbmQgdXBvbiB0aGUgQVBJIHByb3ZkZWQg
YnkgYGBwYWNrYWdpbmcudGFnc2BgOiBgYGludGVycHJldGVyX25hbWUoKWBgLCBgYG1hY19wbGF0
Zm9ybXMoKWBgLCBgYGNvbXBhdGlibGVfdGFncygpYGAsIGBgY3B5dGhvbl90YWdzKClgYCwgYGBn
ZW5lcmljX3RhZ3MoKWBgICg6aXNzdWU6YDE4N2ApCisKKyogT2ZmaWNpYWxseSBzdXBwb3J0IFB5
dGhvbiAzLjggKDppc3N1ZTpgMjMyYCkKKworKiBBZGQgYGBtYWpvcmBgLCBgYG1pbm9yYGAsIGFu
ZCBgYG1pY3JvYGAgYWxpYXNlcyB0byBgYHBhY2thZ2luZy52ZXJzaW9uLlZlcnNpb25gYCAoOmlz
c3VlOmAyMjZgKQorCisqIFByb3Blcmx5IG1hcmsgYGBwYWNrYWdpbmdgYCBoYXMgYmVpbmcgZnVs
bHkgdHlwZWQgYnkgYWRkaW5nIGEgYHB5LnR5cGVkYCBmaWxlICg6aXNzdWU6YDIyNmApCisKKzE5
LjIgLSAyMDE5LTA5LTE4Cit+fn5+fn5+fn5+fn5+fn5+fgorCisqIFJlbW92ZSBkZXBlbmRlbmN5
IG9uIGBgYXR0cnNgYCAoOmlzc3VlOmAxNzhgLCA6aXNzdWU6YDE3OWApCisKKyogVXNlIGFwcHJv
cHJpYXRlIGZhbGxiYWNrcyBmb3IgQ1B5dGhvbiBBQkkgdGFnICg6aXNzdWU6YDE4MWAsIDppc3N1
ZTpgMTg1YCkKKworKiBBZGQgbWFueWxpbnV4MjAxNCBzdXBwb3J0ICg6aXNzdWU6YDE4NmApCisK
KyogSW1wcm92ZSBBQkkgZGV0ZWN0aW9uICg6aXNzdWU6YDE4MWApCisKKyogUHJvcGVybHkgaGFu
ZGxlIGRlYnVnIHdoZWVscyBmb3IgUHl0aG9uIDMuOCAoOmlzc3VlOmAxNzJgKQorCisqIEltcHJv
dmUgZGV0ZWN0aW9uIG9mIGRlYnVnIGJ1aWxkcyBvbiBXaW5kb3dzICg6aXNzdWU6YDE5NGApCisK
KzE5LjEgLSAyMDE5LTA3LTMwCit+fn5+fn5+fn5+fn5+fn5+fgorCisqIEFkZCB0aGUgYGBwYWNr
YWdpbmcudGFnc2BgIG1vZHVsZS4gKDppc3N1ZTpgMTU2YCkKKworKiBDb3JyZWN0bHkgaGFuZGxl
IHR3by1kaWdpdCB2ZXJzaW9ucyBpbiBgYHB5dGhvbl92ZXJzaW9uYGAgKDppc3N1ZTpgMTE5YCkK
KworCisxOS4wIC0gMjAxOS0wMS0yMAorfn5+fn5+fn5+fn5+fn5+fn4KKworKiBGaXggc3RyaW5n
IHJlcHJlc2VudGF0aW9uIG9mIFBFUCA1MDggZGlyZWN0IFVSTCByZXF1aXJlbWVudHMgd2l0aCBt
YXJrZXJzLgorCisqIEJldHRlciBoYW5kbGluZyBvZiBmaWxlIFVSTHMKKworICBUaGlzIGFsbG93
cyBmb3IgdXNpbmcgYGBmaWxlOi8vL2Fic29sdXRlL3BhdGhgYCwgd2hpY2ggd2FzIHByZXZpb3Vz
bHkKKyAgcHJldmVudGVkIGR1ZSB0byB0aGUgbWlzc2luZyBgYG5ldGxvY2BgLgorCisgIFRoaXMg
YWxsb3dzIGZvciBhbGwgZmlsZSBVUkxzIHRoYXQgYGB1cmx1bnBhcnNlYGAgdHVybnMgYmFjayBp
bnRvIHRoZQorICBvcmlnaW5hbCBVUkwgdG8gYmUgdmFsaWQuCisKKworMTguMCAtIDIwMTgtMDkt
MjYKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogSW1wcm92ZSBlcnJvciBtZXNzYWdlcyB3aGVuIGlu
dmFsaWQgcmVxdWlyZW1lbnRzIGFyZSBnaXZlbi4gKDppc3N1ZTpgMTI5YCkKKworCisxNy4xIC0g
MjAxNy0wMi0yOAorfn5+fn5+fn5+fn5+fn5+fn4KKworKiBGaXggYGB1dGlscy5jYW5vbmljYWxp
emVfdmVyc2lvbmBgIHdoZW4gc3VwcGx5aW5nIG5vbiBQRVAgNDQwIHZlcnNpb25zLgorCisKKzE3
LjAgLSAyMDE3LTAyLTI4Cit+fn5+fn5+fn5+fn5+fn5+fgorCisqIERyb3Agc3VwcG9ydCBmb3Ig
cHl0aG9uIDIuNiwgMy4yLCBhbmQgMy4zLgorCisqIERlZmluZSBtaW5pbWFsIHB5cGFyc2luZyB2
ZXJzaW9uIHRvIDIuMC4yICg6aXNzdWU6YDkxYCkuCisKKyogQWRkIGBgZXBvY2hgYCwgYGByZWxl
YXNlYGAsIGBgcHJlYGAsIGBgZGV2YGAsIGFuZCBgYHBvc3RgYCBhdHRyaWJ1dGVzIHRvCisgIGBg
VmVyc2lvbmBgIGFuZCBgYExlZ2FjeVZlcnNpb25gYCAoOmlzc3VlOmAzNGApLgorCisqIEFkZCBg
YFZlcnNpb24oKS5pc19kZXZyZWxlYXNlYGAgYW5kIGBgTGVnYWN5VmVyc2lvbigpLmlzX2RldnJl
bGVhc2VgYCB0bworICBtYWtlIGl0IGVhc3kgdG8gZGV0ZXJtaW5lIGlmIGEgcmVsZWFzZSBpcyBh
IGRldmVsb3BtZW50IHJlbGVhc2UuCisKKyogQWRkIGBgdXRpbHMuY2Fub25pY2FsaXplX3ZlcnNp
b25gYCB0byBjYW5vbmljYWxpemUgdmVyc2lvbiBzdHJpbmdzIG9yCisgIGBgVmVyc2lvbmBgIGlu
c3RhbmNlcyAoOmlzc3VlOmAxMjFgKS4KKworCisxNi44IC0gMjAxNi0xMC0yOQorfn5+fn5+fn5+
fn5+fn5+fn4KKworKiBGaXggbWFya2VycyB0aGF0IHV0aWxpemUgYGBpbmBgIHNvIHRoYXQgdGhl
eSByZW5kZXIgY29ycmVjdGx5LgorCisqIEZpeCBhbiBlcnJvbmVvdXMgdGVzdCBvbiBQeXRob24g
UkMgcmVsZWFzZXMuCisKKworMTYuNyAtIDIwMTYtMDQtMjMKK35+fn5+fn5+fn5+fn5+fn5+CisK
KyogQWRkIHN1cHBvcnQgZm9yIHRoZSBkZXByZWNhdGVkIGBgcHl0aG9uX2ltcGxlbWVudGF0aW9u
YGAgbWFya2VyIHdoaWNoIHdhcworICBhbiB1bmRvY3VtZW50ZWQgc2V0dXB0b29scyBtYXJrZXIg
aW4gYWRkaXRpb24gdG8gdGhlIG5ld2VyIG1hcmtlcnMuCisKKworMTYuNiAtIDIwMTYtMDMtMjkK
K35+fn5+fn5+fn5+fn5+fn5+CisKKyogQWRkIHN1cHBvcnQgZm9yIHRoZSBkZXByZWNhdGVkLCBQ
RVAgMzQ1IGVudmlyb25tZW50IG1hcmtlcnMgaW4gYWRkaXRpb24gdG8KKyAgdGhlIG5ld2VyIG1h
cmtlcnMuCisKKworMTYuNSAtIDIwMTYtMDItMjYKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogRml4
IGEgcmVncmVzc2lvbiBpbiBwYXJzaW5nIHJlcXVpcmVtZW50cyB3aXRoIHdoaXRlc3BhY2VzIGJl
dHdlZW4gdGhlIGNvbW1hCisgIHNlcGFyYXRvcnMuCisKKworMTYuNCAtIDIwMTYtMDItMjIKK35+
fn5+fn5+fn5+fn5+fn5+CisKKyogRml4IGEgcmVncmVzc2lvbiBpbiBwYXJzaW5nIHJlcXVpcmVt
ZW50cyBsaWtlIGBgZm9vICg9PTQpYGAuCisKKworMTYuMyAtIDIwMTYtMDItMjEKK35+fn5+fn5+
fn5+fn5+fn5+CisKKyogRml4IGEgYnVnIHdoZXJlIGBgcGFja2FnaW5nLnJlcXVpcmVtZW50czpS
ZXF1aXJlbWVudGBgIHdhcyBvdmVybHkgc3RyaWN0IHdoZW4KKyAgbWF0Y2hpbmcgbGVnYWN5IHJl
cXVpcmVtZW50cy4KKworCisxNi4yIC0gMjAxNi0wMi0wOQorfn5+fn5+fn5+fn5+fn5+fn4KKwor
KiBBZGQgYSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgdGhlIG5hbWUgY2Fub25pY2FsaXphdGlv
biBmcm9tIFBFUCA1MDMuCisKKworMTYuMSAtIDIwMTYtMDItMDcKK35+fn5+fn5+fn5+fn5+fn5+
CisKKyogSW1wbGVtZW50IHJlcXVpcmVtZW50IHNwZWNpZmllcnMgZnJvbSBQRVAgNTA4LgorCisK
KzE2LjAgLSAyMDE2LTAxLTE5Cit+fn5+fn5+fn5+fn5+fn5+fgorCisqIFJlbGljZW5zZSBzbyB0
aGF0IHBhY2thZ2luZyBpcyBhdmFpbGFibGUgdW5kZXIgKmVpdGhlciogdGhlIEFwYWNoZSBMaWNl
bnNlLAorICBWZXJzaW9uIDIuMCBvciBhIDIgQ2xhdXNlIEJTRCBsaWNlbnNlLgorCisqIFN1cHBv
cnQgaW5zdGFsbGF0aW9uIG9mIHBhY2thZ2luZyB3aGVuIG9ubHkgZGlzdHV0aWxzIGlzIGF2YWls
YWJsZS4KKworKiBGaXggYGA9PWBgIGNvbXBhcmlzb24gd2hlbiB0aGVyZSBpcyBhIHByZWZpeCBh
bmQgYSBsb2NhbCB2ZXJzaW9uIGluIHBsYXkuCisgICg6aXNzdWU6YDQxYCkuCisKKyogSW1wbGVt
ZW50IGVudmlyb25tZW50IG1hcmtlcnMgZnJvbSBQRVAgNTA4LgorCisKKzE1LjMgLSAyMDE1LTA4
LTAxCit+fn5+fn5+fn5+fn5+fn5+fgorCisqIE5vcm1hbGl6ZSBwb3N0LXJlbGVhc2Ugc3BlbGxp
bmdzIGZvciByZXYvciBwcmVmaXhlcy4gOmlzc3VlOmAzNWAKKworCisxNS4yIC0gMjAxNS0wNS0x
Mworfn5+fn5+fn5+fn5+fn5+fn4KKworKiBGaXggYW4gZXJyb3Igd2hlcmUgdGhlIGFyYml0YXJ5
IHNwZWNpZmllciAoYGA9PT1gYCkgd2FzIG5vdCBjb3JyZWN0bHkKKyAgYWxsb3dpbmcgcHJlLXJl
bGVhc2VzIHdoZW4gaXQgd2FzIGJlaW5nIHVzZWQuCisKKyogRXhwb3NlIHRoZSBzcGVjaWZpZXIg
YW5kIHZlcnNpb24gcGFydHMgdGhyb3VnaCBwcm9wZXJ0aWVzIG9uIHRoZQorICBgYFNwZWNpZmll
cmBgIGNsYXNzZXMuCisKKyogQWxsb3cgaXRlcmF0aW5nIG92ZXIgdGhlIGBgU3BlY2lmaWVyU2V0
YGAgdG8gZ2V0IGFjY2VzcyB0byBhbGwgb2YgdGhlCisgIGBgU3BlY2lmaWVyYGAgaW5zdGFuY2Vz
LgorCisqIEFsbG93IHRlc3RpbmcgaWYgYSB2ZXJzaW9uIGlzIGNvbnRhaW5lZCB3aXRoaW4gYSBz
cGVjaWZpZXIgdmlhIHRoZSBgYGluYGAKKyAgb3BlcmF0b3IuCisKKworMTUuMSAtIDIwMTUtMDQt
MTMKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogRml4IGEgbG9naWMgZXJyb3IgdGhhdCB3YXMgY2F1
c2luZyBpbmNvbnNpc3RlbnQgYW5zd2VycyBhYm91dCB3aGV0aGVyIG9yIG5vdAorICBhIHByZS1y
ZWxlYXNlIHdhcyBjb250YWluZWQgd2l0aGluIGEgYGBTcGVjaWZpZXJTZXRgYCBvciBub3QuCisK
KworMTUuMCAtIDIwMTUtMDEtMDIKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogQWRkIGBgVmVyc2lv
bigpLmlzX3Bvc3RyZWxlYXNlYGAgYW5kIGBgTGVnYWN5VmVyc2lvbigpLmlzX3Bvc3RyZWxlYXNl
YGAgdG8KKyAgbWFrZSBpdCBlYXN5IHRvIGRldGVybWluZSBpZiBhIHJlbGVhc2UgaXMgYSBwb3N0
IHJlbGVhc2UuCisKKyogQWRkIGBgVmVyc2lvbigpLmJhc2VfdmVyc2lvbmBgIGFuZCBgYExlZ2Fj
eVZlcnNpb24oKS5iYXNlX3ZlcnNpb25gYCB0byBtYWtlCisgIGl0IGVhc3kgdG8gZ2V0IHRoZSBw
dWJsaWMgdmVyc2lvbiB3aXRob3V0IGFueSBwcmUgb3IgcG9zdCByZWxlYXNlIG1hcmtlcnMuCisK
KyogU3VwcG9ydCB0aGUgdXBkYXRlIHRvIFBFUCA0NDAgd2hpY2ggcmVtb3ZlZCB0aGUgaW1wbGll
ZCBgYCE9Vi4qYGAgd2hlbiB1c2luZworICBlaXRoZXIgYGA+VmBgIG9yIGBgPFZgYCBhbmQgd2hp
Y2ggaW5zdGVhZCBzcGVjaWFsIGNhc2VkIHRoZSBoYW5kbGluZyBvZgorICBwcmUtcmVsZWFzZXMs
IHBvc3QtcmVsZWFzZXMsIGFuZCBsb2NhbCB2ZXJzaW9ucyB3aGVuIHVzaW5nIGBgPlZgYCBvciBg
YDxWYGAuCisKKworMTQuNSAtIDIwMTQtMTItMTcKK35+fn5+fn5+fn5+fn5+fn5+CisKKyogTm9y
bWFsaXplIHJlbGVhc2UgY2FuZGlkYXRlcyBhcyBgYHJjYGAgaW5zdGVhZCBvZiBgYGNgYC4KKwor
KiBFeHBvc2UgdGhlIGBgVkVSU0lPTl9QQVRURVJOYGAgY29uc3RhbnQsIGEgcmVndWxhciBleHBy
ZXNzaW9uIG1hdGNoaW5nCisgIGEgdmFsaWQgdmVyc2lvbi4KKworCisxNC40IC0gMjAxNC0xMi0x
NQorfn5+fn5+fn5+fn5+fn5+fn4KKworKiBFbnN1cmUgdGhhdCB2ZXJzaW9ucyBhcmUgbm9ybWFs
aXplZCBiZWZvcmUgY29tcGFyaXNvbiB3aGVuIHVzZWQgaW4gYQorICBzcGVjaWZpZXIgd2l0aCBh
IGxlc3MgdGhhbiAoYGA8YGApIG9yIGdyZWF0ZXIgdGhhbiAoYGA+YGApIG9wZXJhdG9yLgorCisK
KzE0LjMgLSAyMDE0LTExLTE5Cit+fn5+fn5+fn5+fn5+fn5+fgorCisqICoqQkFDS1dBUkRTIElO
Q09NUEFUSUJMRSoqIFJlZmFjdG9yIHNwZWNpZmllciBzdXBwb3J0IHNvIHRoYXQgaXQgY2FuIHNh
bmVseQorICBoYW5kbGUgbGVnYWN5IHNwZWNpZmllcnMgYXMgd2VsbCBhcyBQRVAgNDQwIHNwZWNp
ZmllcnMuCisKKyogKipCQUNLV0FSRFMgSU5DT01QQVRJQkxFKiogTW92ZSB0aGUgc3BlY2lmaWVy
IHN1cHBvcnQgb3V0IG9mCisgIGBgcGFja2FnaW5nLnZlcnNpb25gYCBpbnRvIGBgcGFja2FnaW5n
LnNwZWNpZmllcnNgYC4KKworCisxNC4yIC0gMjAxNC0wOS0xMAorfn5+fn5+fn5+fn5+fn5+fn4K
KworKiBBZGQgcHJlcmVsZWFzZSBzdXBwb3J0IHRvIGBgU3BlY2lmaWVyYGAuCisqIFJlbW92ZSB0
aGUgYWJpbGl0eSB0byBkbyBgYGl0ZW0gaW4gU3BlY2lmaWVyKClgYCBhbmQgcmVwbGFjZSBpdCB3
aXRoCisgIGBgU3BlY2lmaWVyKCkuY29udGFpbnMoaXRlbSlgYCBpbiBvcmRlciB0byBhbGxvdyBm
bGFncyB0aGF0IHNpZ25hbCBpZiBhCisgIHByZXJlbGVhc2Ugc2hvdWxkIGJlIGFjY2VwdGVkIG9y
IG5vdC4KKyogQWRkIGEgbWV0aG9kIGBgU3BlY2lmaWVyKCkuZmlsdGVyKClgYCB3aGljaCB3aWxs
IHRha2UgYW4gaXRlcmFibGUgYW5kIHJldHVybnMKKyAgYW4gaXRlcmFibGUgd2l0aCBpdGVtcyB0
aGF0IGRvIG5vdCBtYXRjaCB0aGUgc3BlY2lmaWVyIGZpbHRlcmVkIG91dC4KKworCisxNC4xIC0g
MjAxNC0wOS0wOAorfn5+fn5+fn5+fn5+fn5+fn4KKworKiBBbGxvdyBgYExlZ2FjeVZlcnNpb25g
YCBhbmQgYGBWZXJzaW9uYGAgdG8gYmUgc29ydGVkIHRvZ2V0aGVyLgorKiBBZGQgYGBwYWNrYWdp
bmcudmVyc2lvbi5wYXJzZSgpYGAgdG8gZW5hYmxlIGVhc2lseSBwYXJzaW5nIGEgdmVyc2lvbiBz
dHJpbmcKKyAgYXMgZWl0aGVyIGEgYGBWZXJzaW9uYGAgb3IgYSBgYExlZ2FjeVZlcnNpb25gYCBk
ZXBlbmRpbmcgb24gaXQncyBQRVAgNDQwCisgIHZhbGlkaXR5LgorCisKKzE0LjAgLSAyMDE0LTA5
LTA1Cit+fn5+fn5+fn5+fn5+fn5+fgorCisqIEluaXRpYWwgcmVsZWFzZS4KKworCisuLiBfYG1h
c3RlcmA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy8KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL0NPTlRSSUJVVElORy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9DT05UUklCVVRJ
TkcucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ5ZDcwZWMwNDdhYTgwZGI5ZjBjNTQ4OTQyNDcyYThiYzQwOGE0
Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9DT05UUklCVVRJTkcucnN0CkBA
IC0wLDAgKzEsMjMgQEAKK0NvbnRyaWJ1dGluZyB0byBwYWNrYWdpbmcKKz09PT09PT09PT09PT09
PT09PT09PT09PT0KKworQXMgYW4gb3BlbiBzb3VyY2UgcHJvamVjdCwgcGFja2FnaW5nIHdlbGNv
bWVzIGNvbnRyaWJ1dGlvbnMgb2YgbWFueSBmb3Jtcy4KKworRXhhbXBsZXMgb2YgY29udHJpYnV0
aW9ucyBpbmNsdWRlOgorCisqIENvZGUgcGF0Y2hlcworKiBEb2N1bWVudGF0aW9uIGltcHJvdmVt
ZW50cworKiBCdWcgcmVwb3J0cyBhbmQgcGF0Y2ggcmV2aWV3cworCitFeHRlbnNpdmUgY29udHJp
YnV0aW9uIGd1aWRlbGluZXMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgcmVwb3NpdG9yeSBhdAorYGBk
b2NzL2RldmVsb3BtZW50L2luZGV4LnJzdGBgLCBvciBvbmxpbmUgYXQ6CisKK2h0dHBzOi8vcGFj
a2FnaW5nLnB5cGEuaW8vZW4vbGF0ZXN0L2RldmVsb3BtZW50LworCitTZWN1cml0eSBpc3N1ZXMK
Ky0tLS0tLS0tLS0tLS0tLQorCitUbyByZXBvcnQgYSBzZWN1cml0eSBpc3N1ZSwgcGxlYXNlIGZv
bGxvdyB0aGUgc3BlY2lhbCBgc2VjdXJpdHkgcmVwb3J0aW5nCitndWlkZWxpbmVzYF8sIGRvIG5v
dCByZXBvcnQgdGhlbSBpbiB0aGUgcHVibGljIGlzc3VlIHRyYWNrZXIuCisKKy4uIF9gc2VjdXJp
dHkgcmVwb3J0aW5nIGd1aWRlbGluZXNgOiBodHRwczovL3BhY2thZ2luZy5weXBhLmlvL2VuL2xh
dGVzdC9zZWN1cml0eS8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL0xJQ0VOU0UgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmNjJkNDRlNGVmNzMzYzBlNzEzYWZjZDIz
NzFmZWQ3ZjJiM2RlNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9MSUNFTlNF
CkBAIC0wLDAgKzEsMyBAQAorVGhpcyBzb2Z0d2FyZSBpcyBtYWRlIGF2YWlsYWJsZSB1bmRlciB0
aGUgdGVybXMgb2YgKmVpdGhlciogb2YgdGhlIGxpY2Vuc2VzCitmb3VuZCBpbiBMSUNFTlNFLkFQ
QUNIRSBvciBMSUNFTlNFLkJTRC4gQ29udHJpYnV0aW9ucyB0byB0aGlzIHNvZnR3YXJlIGlzIG1h
ZGUKK3VuZGVyIHRoZSB0ZXJtcyBvZiAqYm90aCogdGhlc2UgbGljZW5zZXMuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy9MSUNFTlNFLkFQQUNIRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL0xJQ0VOU0Uu
QVBBQ0hFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY0MzNiMWE1M2Y1YjgzMGEyMDVmZDJkZjc4ZTJiMzQ5NzQ2NTZj
N2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9MSUNFTlNFLkFQQUNIRQpAQCAt
MCwwICsxLDE3NyBAQAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUg
TGljZW5zZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkg
MjAwNAorICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vu
c2VzLworCisgICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFO
RCBESVNUUklCVVRJT04KKworICAgMS4gRGVmaW5pdGlvbnMuCisKKyAgICAgICJMaWNlbnNlIiBz
aGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24s
CisgICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdo
IDkgb2YgdGhpcyBkb2N1bWVudC4KKworICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBj
b3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKKyAgICAgIHRoZSBjb3B5cmln
aHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KKworICAgICAgIkxlZ2FsIEVu
dGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAor
ICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3Ig
YXJlIHVuZGVyIGNvbW1vbgorICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhl
IHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKKyAgICAgICJjb250cm9sIiBtZWFucyAoaSkg
dGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQorICAgICAgZGlyZWN0
aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IK
KyAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAl
KSBvciBtb3JlIG9mIHRoZQorICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5l
ZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KKworICAgICAgIllvdSIgKG9yICJZb3Vy
Iikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgZXhlcmNp
c2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KKworICAgICAgIlNvdXJj
ZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNh
dGlvbnMsCisgICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJj
ZSBjb2RlLCBkb2N1bWVudGF0aW9uCisgICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZp
bGVzLgorCisgICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5n
IGZyb20gbWVjaGFuaWNhbAorICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2Yg
YSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAorICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGls
ZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAorICAgICAgYW5kIGNvbnZl
cnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgorCisgICAgICAiV29yayIgc2hhbGwgbWVhbiB0
aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgorICAgICAgT2JqZWN0
IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkg
YQorICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVk
IHRvIHRoZSB3b3JrCisgICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5k
aXggYmVsb3cpLgorCisgICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29y
aywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0CisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2Vk
IG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBl
ZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBt
b2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdv
cmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcworICAgICAgb2YgdGhpcyBMaWNlbnNl
LCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisg
ICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8g
dGhlIGludGVyZmFjZXMgb2YsCisgICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0
aGVyZW9mLgorCisgICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1
dGhvcnNoaXAsIGluY2x1ZGluZworICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdv
cmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucworICAgICAgdG8gdGhhdCBXb3Jr
IG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisgICAg
ICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUg
Y29weXJpZ2h0IG93bmVyCisgICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0
eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKKyAgICAgIHRoZSBjb3B5cmlnaHQg
b3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgor
ICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNv
bW11bmljYXRpb24gc2VudAorICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRh
dGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KKyAgICAgIGNvbW11bmljYXRpb24g
b24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMs
CisgICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBv
ciBvbiBiZWhhbGYgb2YsIHRoZQorICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRp
c2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0CisgICAgICBleGNsdWRpbmcgY29t
bXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQorICAg
ICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBh
IENvbnRyaWJ1dGlvbi4iCisKKyAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNv
ciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBvbiBiZWhhbGYgb2Yg
d2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKKyAg
ICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgorCisgICAyLiBH
cmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRp
dGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3Jh
bnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwg
bm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICBjb3B5cmlnaHQgbGlj
ZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKKyAgICAgIHB1
YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmli
dXRlIHRoZQorICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBv
ciBPYmplY3QgZm9ybS4KKworICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3Qg
dG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2gg
Q29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3Js
ZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJs
ZQorICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5z
ZSB0byBtYWtlLCBoYXZlIG1hZGUsCisgICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGlt
cG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKyAgICAgIHdoZXJlIHN1Y2gg
bGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCisg
ICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBi
eSB0aGVpcgorICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9m
IHRoZWlyIENvbnRyaWJ1dGlvbihzKQorICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNo
IENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKKyAgICAgIGluc3RpdHV0ZSBw
YXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBj
cm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRo
ZSBXb3JrCisgICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBX
b3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZy
aW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcworICAgICAgZ3JhbnRlZCB0byBZb3Ug
dW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCisgICAgICBh
cyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisKKyAgIDQuIFJlZGlzdHJp
YnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisg
ICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRo
IG9yIHdpdGhvdXQKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0
IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91CisgICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9uczoKKworICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2Yg
dGhlIFdvcmsgb3IKKyAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExp
Y2Vuc2U7IGFuZAorCisgICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVz
IHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisgICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBj
aGFuZ2VkIHRoZSBmaWxlczsgYW5kCisKKyAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRo
ZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcworICAgICAgICAgIHRoYXQgWW91
IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKKyAgICAg
ICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3Jr
LAorICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4g
dG8gYW55IHBhcnQgb2YKKyAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCisKKyAg
ICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0
IG9mIGl0cworICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3Jr
cyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKyAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUg
Y29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKKyAgICAgICAgICB3aXRo
aW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QK
KyAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBp
biBhdCBsZWFzdCBvbmUKKyAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGlu
IGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAorICAgICAgICAgIGFzIHBhcnQgb2YgdGhl
IERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKKyAgICAgICAgICBk
b2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtz
OyBvciwKKyAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZh
dGl2ZSBXb3JrcywgaWYgYW5kCisgICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBu
b3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCisgICAgICAgICAgb2YgdGhlIE5P
VElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorICAgICAg
ICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJp
YnV0aW9uCisgICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlv
dSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKKyAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0
aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKKyAgICAgICAgICB0aGF0IHN1
Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKyAg
ICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgIFlvdSBtYXkgYWRkIFlv
dXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAorICAg
ICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQg
Y29uZGl0aW9ucworICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24g
b2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgorICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUg
V29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCisgICAgICByZXByb2R1Y3Rpb24s
IGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKKyAg
ICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCisKKyAgIDUuIFN1Ym1p
c3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVy
d2lzZSwKKyAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9y
IGluY2x1c2lvbiBpbiB0aGUgV29yaworICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFs
bCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5z
ZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgorICAgICAgTm90
d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9y
IG1vZGlmeQorICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVu
dCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKyAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1
Y2ggQ29udHJpYnV0aW9ucy4KKworICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMg
bm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorICAgICAgbmFtZXMsIHRyYWRl
bWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAor
ICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNl
IGluIGRlc2NyaWJpbmcgdGhlCisgICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVj
aW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKworICAgNy4gRGlzY2xhaW1lciBv
ZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCisgICAgICBh
Z3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNo
CisgICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFT
IElTIiBCQVNJUywKKyAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFO
WSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRo
b3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKKyAgICAgIG9mIFRJ
VExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEK
KyAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9y
IGRldGVybWluaW5nIHRoZQorICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlz
dHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CisgICAgICByaXNrcyBhc3NvY2lhdGVk
IHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisK
KyAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8g
bGVnYWwgdGhlb3J5LAorICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5j
ZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCisgICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBw
bGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorICAgICAgbmVnbGln
ZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3Ig
YmUKKyAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0
LCBpbmRpcmVjdCwgc3BlY2lhbCwKKyAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwg
ZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQorICAgICAgcmVzdWx0IG9mIHRo
aXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQorICAg
ICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9m
IGdvb2R3aWxsLAorICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxm
dW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKyAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBv
ciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKKyAgICAgIGhhcyBiZWVuIGFkdmlz
ZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KKworICAgOS4gQWNjZXB0aW5n
IFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZwor
ICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29z
ZSB0byBvZmZlciwKKyAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1
cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisgICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2Js
aWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcworICAgICAgTGljZW5z
ZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9u
bHkKKyAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmls
aXR5LCBub3Qgb24gYmVoYWxmCisgICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBv
bmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCisgICAgICBkZWZlbmQsIGFuZCBob2xkIGVh
Y2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKKyAgICAgIGluY3VycmVk
IGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFz
b24KKyAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9u
YWwgbGlhYmlsaXR5LgorCisgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL0xJQ0VOU0UuQlNEIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvTElDRU5TRS5C
U0QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDJjZTdiNzVjOTJmYjAxYTNmNmVkMTdlZWEzNjNmNzU2YjdkYTU4Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL0xJQ0VOU0UuQlNECkBAIC0wLDAgKzEs
MjMgQEAKK0NvcHlyaWdodCAoYykgRG9uYWxkIFN0dWZmdCBhbmQgaW5kaXZpZHVhbCBjb250cmli
dXRvcnMuCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK21vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg
bWV0OgorCisgICAgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisKKyAgICAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAgICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5ECitBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRQorRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKK0RBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCitTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKK09SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCitPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvUkVBRE1FLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL1JFQURNRS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThiZWJlNzRkYzFkZjdiNzFjMjA1NWMyMjBmOGMy
NmFlMmMzNzJkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL1JFQURNRS5yc3QK
QEAgLTAsMCArMSw3MyBAQAorcGFja2FnaW5nCis9PT09PT09PT0KKworLi4gc3RhcnQtaW50cm8K
KworUmV1c2FibGUgY29yZSB1dGlsaXRpZXMgZm9yIHZhcmlvdXMgUHl0aG9uIFBhY2thZ2luZwor
YGludGVyb3BlcmFiaWxpdHkgc3BlY2lmaWNhdGlvbnMgPGh0dHBzOi8vcGFja2FnaW5nLnB5dGhv
bi5vcmcvc3BlY2lmaWNhdGlvbnMvPmBfLgorCitUaGlzIGxpYnJhcnkgcHJvdmlkZXMgdXRpbGl0
aWVzIHRoYXQgaW1wbGVtZW50IHRoZSBpbnRlcm9wZXJhYmlsaXR5CitzcGVjaWZpY2F0aW9ucyB3
aGljaCBoYXZlIGNsZWFybHkgb25lIGNvcnJlY3QgYmVoYXZpb3VyIChlZzogOnBlcDpgNDQwYCkK
K29yIGJlbmVmaXQgZ3JlYXRseSBmcm9tIGhhdmluZyBhIHNpbmdsZSBzaGFyZWQgaW1wbGVtZW50
YXRpb24gKGVnOiA6cGVwOmA0MjVgKS4KKworLi4gZW5kLWludHJvCisKK1RoZSBgYHBhY2thZ2lu
Z2BgIHByb2plY3QgaW5jbHVkZXMgdGhlIGZvbGxvd2luZzogdmVyc2lvbiBoYW5kbGluZywgc3Bl
Y2lmaWVycywKK21hcmtlcnMsIHJlcXVpcmVtZW50cywgdGFncywgdXRpbGl0aWVzLgorCitEb2N1
bWVudGF0aW9uCistLS0tLS0tLS0tLS0tCisKK1RoZSBgZG9jdW1lbnRhdGlvbmBfIHByb3ZpZGVz
IGluZm9ybWF0aW9uIGFuZCB0aGUgQVBJIGZvciB0aGUgZm9sbG93aW5nOgorCistIFZlcnNpb24g
SGFuZGxpbmcKKy0gU3BlY2lmaWVycworLSBNYXJrZXJzCistIFJlcXVpcmVtZW50cworLSBUYWdz
CistIFV0aWxpdGllcworCitJbnN0YWxsYXRpb24KKy0tLS0tLS0tLS0tLQorCitVc2UgYGBwaXBg
YCB0byBpbnN0YWxsIHRoZXNlIHV0aWxpdGllczo6CisKKyAgICBwaXAgaW5zdGFsbCBwYWNrYWdp
bmcKKworRGlzY3Vzc2lvbgorLS0tLS0tLS0tLQorCitJZiB5b3UgcnVuIGludG8gYnVncywgeW91
IGNhbiBmaWxlIHRoZW0gaW4gb3VyIGBpc3N1ZSB0cmFja2VyYF8uCisKK1lvdSBjYW4gYWxzbyBq
b2luIGBgI3B5cGFgYCBvbiBGcmVlbm9kZSB0byBhc2sgcXVlc3Rpb25zIG9yIGdldCBpbnZvbHZl
ZC4KKworCisuLiBfYGRvY3VtZW50YXRpb25gOiBodHRwczovL3BhY2thZ2luZy5weXBhLmlvLwor
Li4gX2Bpc3N1ZSB0cmFja2VyYDogaHR0cHM6Ly9naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL2lz
c3VlcworCisKK0NvZGUgb2YgQ29uZHVjdAorLS0tLS0tLS0tLS0tLS0tCisKK0V2ZXJ5b25lIGlu
dGVyYWN0aW5nIGluIHRoZSBwYWNrYWdpbmcgcHJvamVjdCdzIGNvZGViYXNlcywgaXNzdWUgdHJh
Y2tlcnMsIGNoYXQKK3Jvb21zLCBhbmQgbWFpbGluZyBsaXN0cyBpcyBleHBlY3RlZCB0byBmb2xs
b3cgdGhlIGBQU0YgQ29kZSBvZiBDb25kdWN0YF8uCisKKy4uIF9QU0YgQ29kZSBvZiBDb25kdWN0
OiBodHRwczovL2dpdGh1Yi5jb20vcHlwYS8uZ2l0aHViL2Jsb2IvbWFpbi9DT0RFX09GX0NPTkRV
Q1QubWQKKworQ29udHJpYnV0aW5nCistLS0tLS0tLS0tLS0KKworVGhlIGBgQ09OVFJJQlVUSU5H
LnJzdGBgIGZpbGUgb3V0bGluZXMgaG93IHRvIGNvbnRyaWJ1dGUgdG8gdGhpcyBwcm9qZWN0IGFz
Cit3ZWxsIGFzIGhvdyB0byByZXBvcnQgYSBwb3RlbnRpYWwgc2VjdXJpdHkgaXNzdWUuIFRoZSBk
b2N1bWVudGF0aW9uIGZvciB0aGlzCitwcm9qZWN0IGFsc28gY292ZXJzIGluZm9ybWF0aW9uIGFi
b3V0IGBwcm9qZWN0IGRldmVsb3BtZW50YF8gYW5kIGBzZWN1cml0eWBfLgorCisuLiBfYHByb2pl
Y3QgZGV2ZWxvcG1lbnRgOiBodHRwczovL3BhY2thZ2luZy5weXBhLmlvL2VuL2xhdGVzdC9kZXZl
bG9wbWVudC8KKy4uIF9gc2VjdXJpdHlgOiBodHRwczovL3BhY2thZ2luZy5weXBhLmlvL2VuL2xh
dGVzdC9zZWN1cml0eS8KKworUHJvamVjdCBIaXN0b3J5CistLS0tLS0tLS0tLS0tLS0KKworUGxl
YXNlIHJldmlldyB0aGUgYGBDSEFOR0VMT0cucnN0YGAgZmlsZSBvciB0aGUgYENoYW5nZWxvZyBk
b2N1bWVudGF0aW9uYF8gZm9yCityZWNlbnQgY2hhbmdlcyBhbmQgcHJvamVjdCBoaXN0b3J5Lgor
CisuLiBfYENoYW5nZWxvZyBkb2N1bWVudGF0aW9uYDogaHR0cHM6Ly9wYWNrYWdpbmcucHlwYS5p
by9lbi9sYXRlc3QvY2hhbmdlbG9nLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9N
YWtlZmlsZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ2ODNi
NDAyNDdjZDdiZDhkOTE1MTlhZTQxYzFiYWNkZWE2MWEyOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL2RvY3MvTWFrZWZpbGUKQEAgLTAsMCArMSwxNTMgQEAKKyMgTWFrZWZpbGUg
Zm9yIFNwaGlueCBkb2N1bWVudGF0aW9uCisjCisKKyMgWW91IGNhbiBzZXQgdGhlc2UgdmFyaWFi
bGVzIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KK1NQSElOWE9QVFMgICAgPQorU1BISU5YQlVJTEQg
ICA9IHNwaGlueC1idWlsZAorUEFQRVIgICAgICAgICA9CitCVUlMRERJUiAgICAgID0gX2J1aWxk
CisKKyMgSW50ZXJuYWwgdmFyaWFibGVzLgorUEFQRVJPUFRfYTQgICAgID0gLUQgbGF0ZXhfcGFw
ZXJfc2l6ZT1hNAorUEFQRVJPUFRfbGV0dGVyID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1sZXR0ZXIK
K0FMTFNQSElOWE9QVFMgICA9IC1kICQoQlVJTERESVIpL2RvY3RyZWVzICQoUEFQRVJPUFRfJChQ
QVBFUikpICQoU1BISU5YT1BUUykgLgorIyB0aGUgaTE4biBidWlsZGVyIGNhbm5vdCBzaGFyZSB0
aGUgZW52aXJvbm1lbnQgYW5kIGRvY3RyZWVzIHdpdGggdGhlIG90aGVycworSTE4TlNQSElOWE9Q
VFMgID0gJChQQVBFUk9QVF8kKFBBUEVSKSkgJChTUEhJTlhPUFRTKSAuCisKKy5QSE9OWTogaGVs
cCBjbGVhbiBodG1sIGRpcmh0bWwgc2luZ2xlaHRtbCBwaWNrbGUganNvbiBodG1saGVscCBxdGhl
bHAgZGV2aGVscCBlcHViIGxhdGV4IGxhdGV4cGRmIHRleHQgbWFuIGNoYW5nZXMgbGlua2NoZWNr
IGRvY3Rlc3QgZ2V0dGV4dAorCitoZWxwOgorCUBlY2hvICJQbGVhc2UgdXNlIFxgbWFrZSA8dGFy
Z2V0Picgd2hlcmUgPHRhcmdldD4gaXMgb25lIG9mIgorCUBlY2hvICIgIGh0bWwgICAgICAgdG8g
bWFrZSBzdGFuZGFsb25lIEhUTUwgZmlsZXMiCisJQGVjaG8gIiAgZGlyaHRtbCAgICB0byBtYWtl
IEhUTUwgZmlsZXMgbmFtZWQgaW5kZXguaHRtbCBpbiBkaXJlY3RvcmllcyIKKwlAZWNobyAiICBz
aW5nbGVodG1sIHRvIG1ha2UgYSBzaW5nbGUgbGFyZ2UgSFRNTCBmaWxlIgorCUBlY2hvICIgIHBp
Y2tsZSAgICAgdG8gbWFrZSBwaWNrbGUgZmlsZXMiCisJQGVjaG8gIiAganNvbiAgICAgICB0byBt
YWtlIEpTT04gZmlsZXMiCisJQGVjaG8gIiAgaHRtbGhlbHAgICB0byBtYWtlIEhUTUwgZmlsZXMg
YW5kIGEgSFRNTCBoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgcXRoZWxwICAgICB0byBtYWtlIEhU
TUwgZmlsZXMgYW5kIGEgcXRoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgZGV2aGVscCAgICB0byBt
YWtlIEhUTUwgZmlsZXMgYW5kIGEgRGV2aGVscCBwcm9qZWN0IgorCUBlY2hvICIgIGVwdWIgICAg
ICAgdG8gbWFrZSBhbiBlcHViIgorCUBlY2hvICIgIGxhdGV4ICAgICAgdG8gbWFrZSBMYVRlWCBm
aWxlcywgeW91IGNhbiBzZXQgUEFQRVI9YTQgb3IgUEFQRVI9bGV0dGVyIgorCUBlY2hvICIgIGxh
dGV4cGRmICAgdG8gbWFrZSBMYVRlWCBmaWxlcyBhbmQgcnVuIHRoZW0gdGhyb3VnaCBwZGZsYXRl
eCIKKwlAZWNobyAiICB0ZXh0ICAgICAgIHRvIG1ha2UgdGV4dCBmaWxlcyIKKwlAZWNobyAiICBt
YW4gICAgICAgIHRvIG1ha2UgbWFudWFsIHBhZ2VzIgorCUBlY2hvICIgIHRleGluZm8gICAgdG8g
bWFrZSBUZXhpbmZvIGZpbGVzIgorCUBlY2hvICIgIGluZm8gICAgICAgdG8gbWFrZSBUZXhpbmZv
IGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdoIG1ha2VpbmZvIgorCUBlY2hvICIgIGdldHRleHQg
ICAgdG8gbWFrZSBQTyBtZXNzYWdlIGNhdGFsb2dzIgorCUBlY2hvICIgIGNoYW5nZXMgICAgdG8g
bWFrZSBhbiBvdmVydmlldyBvZiBhbGwgY2hhbmdlZC9hZGRlZC9kZXByZWNhdGVkIGl0ZW1zIgor
CUBlY2hvICIgIGxpbmtjaGVjayAgdG8gY2hlY2sgYWxsIGV4dGVybmFsIGxpbmtzIGZvciBpbnRl
Z3JpdHkiCisJQGVjaG8gIiAgZG9jdGVzdCAgICB0byBydW4gYWxsIGRvY3Rlc3RzIGVtYmVkZGVk
IGluIHRoZSBkb2N1bWVudGF0aW9uIChpZiBlbmFibGVkKSIKKworY2xlYW46CisJLXJtIC1yZiAk
KEJVSUxERElSKS8qCisKK2h0bWw6CisJJChTUEhJTlhCVUlMRCkgLWIgaHRtbCAkKEFMTFNQSElO
WE9QVFMpICQoQlVJTERESVIpL2h0bWwKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4g
VGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2h0bWwuIgorCitkaXJodG1sOgorCSQo
U1BISU5YQlVJTEQpIC1iIGRpcmh0bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9kaXJo
dG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBp
biAkKEJVSUxERElSKS9kaXJodG1sLiIKKworc2luZ2xlaHRtbDoKKwkkKFNQSElOWEJVSUxEKSAt
YiBzaW5nbGVodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvc2luZ2xlaHRtbAorCUBl
Y2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlIGlzIGluICQoQlVJTERE
SVIpL3NpbmdsZWh0bWwuIgorCitwaWNrbGU6CisJJChTUEhJTlhCVUlMRCkgLWIgcGlja2xlICQo
QUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvcGlja2xlCisJQGVjaG8KKwlAZWNobyAiQnVpbGQg
ZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIHBpY2tsZSBmaWxlcy4iCisKK2pzb246
CisJJChTUEhJTlhCVUlMRCkgLWIganNvbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2pz
b24KKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0
aGUgSlNPTiBmaWxlcy4iCisKK2h0bWxoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1iIGh0bWxoZWxw
ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbGhlbHAKKwlAZWNobworCUBlY2hvICJC
dWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuIEhUTUwgSGVscCBXb3Jrc2hvcCB3aXRoIHRo
ZSIgXAorCSAgICAgICIuaGhwIHByb2plY3QgZmlsZSBpbiAkKEJVSUxERElSKS9odG1saGVscC4i
CisKK3F0aGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBxdGhlbHAgJChBTExTUEhJTlhPUFRTKSAk
KEJVSUxERElSKS9xdGhlbHAKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlv
dSBjYW4gcnVuICJxY29sbGVjdGlvbmdlbmVyYXRvciIgd2l0aCB0aGUiIFwKKwkgICAgICAiLnFo
Y3AgcHJvamVjdCBmaWxlIGluICQoQlVJTERESVIpL3F0aGVscCwgbGlrZSB0aGlzOiIKKwlAZWNo
byAiIyBxY29sbGVjdGlvbmdlbmVyYXRvciAkKEJVSUxERElSKS9xdGhlbHAvcGFja2FnaW5nLnFo
Y3AiCisJQGVjaG8gIlRvIHZpZXcgdGhlIGhlbHAgZmlsZToiCisJQGVjaG8gIiMgYXNzaXN0YW50
IC1jb2xsZWN0aW9uRmlsZSAkKEJVSUxERElSKS9xdGhlbHAvcGFja2FnaW5nLnFoYyIKKworZGV2
aGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBkZXZoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlM
RERJUikvZGV2aGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiIKKwlAZWNobyAi
VG8gdmlldyB0aGUgaGVscCBmaWxlOiIKKwlAZWNobyAiIyBta2RpciAtcCAkJEhPTUUvLmxvY2Fs
L3NoYXJlL2RldmhlbHAvcGFja2FnaW5nIgorCUBlY2hvICIjIGxuIC1zICQoQlVJTERESVIpL2Rl
dmhlbHAgJCRIT01FLy5sb2NhbC9zaGFyZS9kZXZoZWxwL3BhY2thZ2luZyIKKwlAZWNobyAiIyBk
ZXZoZWxwIgorCitlcHViOgorCSQoU1BISU5YQlVJTEQpIC1iIGVwdWIgJChBTExTUEhJTlhPUFRT
KSAkKEJVSUxERElSKS9lcHViCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBl
cHViIGZpbGUgaXMgaW4gJChCVUlMRERJUikvZXB1Yi4iCisKK2xhdGV4OgorCSQoU1BISU5YQlVJ
TEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobwor
CUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgdGhlIExhVGVYIGZpbGVzIGFyZSBpbiAkKEJVSUxERElS
KS9sYXRleC4iCisJQGVjaG8gIlJ1biBcYG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0
aGVzZSB0aHJvdWdoIChwZGYpbGF0ZXgiIFwKKwkgICAgICAiKHVzZSBcYG1ha2UgbGF0ZXhwZGYn
IGhlcmUgdG8gZG8gdGhhdCBhdXRvbWF0aWNhbGx5KS4iCisKK2xhdGV4cGRmOgorCSQoU1BISU5Y
QlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNo
byAiUnVubmluZyBMYVRlWCBmaWxlcyB0aHJvdWdoIHBkZmxhdGV4Li4uIgorCSQoTUFLRSkgLUMg
JChCVUlMRERJUikvbGF0ZXggYWxsLXBkZgorCUBlY2hvICJwZGZsYXRleCBmaW5pc2hlZDsgdGhl
IFBERiBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvbGF0ZXguIgorCit0ZXh0OgorCSQoU1BISU5Y
QlVJTEQpIC1iIHRleHQgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS90ZXh0CisJQGVjaG8K
KwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSB0ZXh0IGZpbGVzIGFyZSBpbiAkKEJVSUxERElS
KS90ZXh0LiIKKworbWFuOgorCSQoU1BISU5YQlVJTEQpIC1iIG1hbiAkKEFMTFNQSElOWE9QVFMp
ICQoQlVJTERESVIpL21hbgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWFu
dWFsIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9tYW4uIgorCit0ZXhpbmZvOgorCSQoU1BISU5Y
QlVJTEQpIC1iIHRleGluZm8gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS90ZXhpbmZvCisJ
QGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBUZXhpbmZvIGZpbGVzIGFyZSBpbiAk
KEJVSUxERElSKS90ZXhpbmZvLiIKKwlAZWNobyAiUnVuIFxgbWFrZScgaW4gdGhhdCBkaXJlY3Rv
cnkgdG8gcnVuIHRoZXNlIHRocm91Z2ggbWFrZWluZm8iIFwKKwkgICAgICAiKHVzZSBcYG1ha2Ug
aW5mbycgaGVyZSB0byBkbyB0aGF0IGF1dG9tYXRpY2FsbHkpLiIKKworaW5mbzoKKwkkKFNQSElO
WEJVSUxEKSAtYiB0ZXhpbmZvICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvdGV4aW5mbwor
CUBlY2hvICJSdW5uaW5nIFRleGluZm8gZmlsZXMgdGhyb3VnaCBtYWtlaW5mby4uLiIKKwltYWtl
IC1DICQoQlVJTERESVIpL3RleGluZm8gaW5mbworCUBlY2hvICJtYWtlaW5mbyBmaW5pc2hlZDsg
dGhlIEluZm8gZmlsZXMgYXJlIGluICQoQlVJTERESVIpL3RleGluZm8uIgorCitnZXR0ZXh0Ogor
CSQoU1BISU5YQlVJTEQpIC1iIGdldHRleHQgJChJMThOU1BISU5YT1BUUykgJChCVUlMRERJUikv
bG9jYWxlCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBtZXNzYWdlIGNhdGFs
b2dzIGFyZSBpbiAkKEJVSUxERElSKS9sb2NhbGUuIgorCitjaGFuZ2VzOgorCSQoU1BISU5YQlVJ
TEQpIC1iIGNoYW5nZXMgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9jaGFuZ2VzCisJQGVj
aG8KKwlAZWNobyAiVGhlIG92ZXJ2aWV3IGZpbGUgaXMgaW4gJChCVUlMRERJUikvY2hhbmdlcy4i
CisKK2xpbmtjaGVjazoKKwkkKFNQSElOWEJVSUxEKSAtYiBsaW5rY2hlY2sgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS9saW5rY2hlY2sKKwlAZWNobworCUBlY2hvICJMaW5rIGNoZWNrIGNv
bXBsZXRlOyBsb29rIGZvciBhbnkgZXJyb3JzIGluIHRoZSBhYm92ZSBvdXRwdXQgIiBcCisJICAg
ICAgIm9yIGluICQoQlVJTERESVIpL2xpbmtjaGVjay9vdXRwdXQudHh0LiIKKworZG9jdGVzdDoK
KwkkKFNQSElOWEJVSUxEKSAtYiBkb2N0ZXN0ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikv
ZG9jdGVzdAorCUBlY2hvICJUZXN0aW5nIG9mIGRvY3Rlc3RzIGluIHRoZSBzb3VyY2VzIGZpbmlz
aGVkLCBsb29rIGF0IHRoZSAiIFwKKwkgICAgICAicmVzdWx0cyBpbiAkKEJVSUxERElSKS9kb2N0
ZXN0L291dHB1dC50eHQuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9jaGFuZ2Vs
b2cucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9jaGFuZ2Vsb2cucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2
NWIwNTIxZDBjMmNkYmZlNDkzZDE5NzY1YjA0ZDVjMTE5ZmE3ZWIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy9kb2NzL2NoYW5nZWxvZy5yc3QKQEAgLTAsMCArMSBAQAorLi4gaW5j
bHVkZTo6IC4uL0NIQU5HRUxPRy5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3Mv
Y29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvY29uZi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmQ0YjEz
YWEzNDBkOTVlY2JmM2I4OGFhYjdhOWFmZDE0MWRkZGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvZG9jcy9jb25mLnB5CkBAIC0wLDAgKzEsMTEzIEBACisjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5z
ZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5Cisj
IGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMK
KworIyBJZiBleHRlbnNpb25zIChvciBtb2R1bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2RvYykg
YXJlIGluIGFub3RoZXIgZGlyZWN0b3J5LAorIyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8gc3lz
LnBhdGggaGVyZS4gSWYgdGhlIGRpcmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUKKyMgZG9jdW1l
bnRhdGlvbiByb290LCB1c2Ugb3MucGF0aC5hYnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUsIGxp
a2Ugc2hvd24gaGVyZS4KK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmFic3BhdGgoIi4iKSkK
KworIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEFkZCBhbnkgU3BoaW54IGV4dGVuc2lvbiBt
b2R1bGUgbmFtZXMgaGVyZSwgYXMgc3RyaW5ncy4gVGhleSBjYW4gYmUKKyMgZXh0ZW5zaW9ucyAg
Y29taW5nIHdpdGggU3BoaW54IChuYW1lZCAnc3BoaW54LmV4dC4qJykgb3IgeW91ciBjdXN0b20g
b25lcy4KK2V4dGVuc2lvbnMgPSBbCisgICAgInNwaGlueC5leHQuYXV0b2RvYyIsCisgICAgInNw
aGlueC5leHQuZG9jdGVzdCIsCisgICAgInNwaGlueC5leHQuZXh0bGlua3MiLAorICAgICJzcGhp
bnguZXh0LmludGVyc3BoaW54IiwKKyAgICAic3BoaW54LmV4dC52aWV3Y29kZSIsCitdCisKKyMg
QWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gdGVtcGxhdGVzIGhlcmUsIHJlbGF0aXZlIHRvIHRo
aXMgZGlyZWN0b3J5LgordGVtcGxhdGVzX3BhdGggPSBbIl90ZW1wbGF0ZXMiXQorCisjIFRoZSBz
dWZmaXggb2Ygc291cmNlIGZpbGVuYW1lcy4KK3NvdXJjZV9zdWZmaXggPSAiLnJzdCIKKworIyBU
aGUgbWFzdGVyIHRvY3RyZWUgZG9jdW1lbnQuCittYXN0ZXJfZG9jID0gImluZGV4IgorCisjIEdl
bmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2plY3QuCitwcm9qZWN0ID0gIlBhY2thZ2lu
ZyIKKworIyBUaGUgdmVyc2lvbiBpbmZvIGZvciB0aGUgcHJvamVjdCB5b3UncmUgZG9jdW1lbnRp
bmcsIGFjdHMgYXMgcmVwbGFjZW1lbnQgZm9yCisjIHx2ZXJzaW9ufCBhbmQgfHJlbGVhc2V8LCBh
bHNvIHVzZWQgaW4gdmFyaW91cyBvdGhlciBwbGFjZXMgdGhyb3VnaG91dCB0aGUKKyMgYnVpbHQg
ZG9jdW1lbnRzLgorIworCitiYXNlX2RpciA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUo
X19maWxlX18pLCBvcy5wYXJkaXIpCithYm91dCA9IHt9Cit3aXRoIG9wZW4ob3MucGF0aC5qb2lu
KGJhc2VfZGlyLCAicGFja2FnaW5nIiwgIl9faW5pdF9fLnB5IikpIGFzIGY6CisgICAgZXhlYyhm
LnJlYWQoKSwgYWJvdXQpCisKK3ZlcnNpb24gPSByZWxlYXNlID0gYWJvdXRbIl9fdmVyc2lvbl9f
Il0KK2NvcHlyaWdodCA9ICIyMDE0LTIwMTkgRG9uYWxkIFN0dWZmdCBhbmQgaW5kaXZpZHVhbCBj
b250cmlidXRvcnMiCisKKyMgTGlzdCBvZiBwYXR0ZXJucywgcmVsYXRpdmUgdG8gc291cmNlIGRp
cmVjdG9yeSwgdGhhdCBtYXRjaCBmaWxlcyBhbmQKKyMgZGlyZWN0b3JpZXMgdG8gaWdub3JlIHdo
ZW4gbG9va2luZyBmb3Igc291cmNlIGZpbGVzLgorZXhjbHVkZV9wYXR0ZXJucyA9IFsiX2J1aWxk
Il0KKworZXh0bGlua3MgPSB7CisgICAgImlzc3VlIjogKCJodHRwczovL2dpdGh1Yi5jb20vcHlw
YS9wYWNrYWdpbmcvaXNzdWVzLyVzIiwgIiMiKSwKKyAgICAicHVsbCI6ICgiaHR0cHM6Ly9naXRo
dWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvJXMiLCAiUFIgIyIpLAorfQorIyAtLSBPcHRpb25z
IGZvciBIVE1MIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCisjIFRoZSB0aGVtZSB0byB1c2UgZm9yIEhUTUwgYW5kIEhUTUwgSGVscCBw
YWdlcy4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKKyMgYSBsaXN0IG9mIGJ1aWx0aW4gdGhl
bWVzLgorCitodG1sX3RoZW1lID0gImZ1cm8iCitodG1sX3RpdGxlID0gInBhY2thZ2luZyIKKwor
IyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gc3RhdGljIGZpbGVzIChzdWNoIGFz
IHN0eWxlIHNoZWV0cykgaGVyZSwKKyMgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXkg
YXJlIGNvcGllZCBhZnRlciB0aGUgYnVpbHRpbiBzdGF0aWMgZmlsZXMsCisjIHNvIGEgZmlsZSBu
YW1lZCAiZGVmYXVsdC5jc3MiIHdpbGwgb3ZlcndyaXRlIHRoZSBidWlsdGluICJkZWZhdWx0LmNz
cyIuCitodG1sX3N0YXRpY19wYXRoID0gWyJfc3RhdGljIl0KKworIyBPdXRwdXQgZmlsZSBiYXNl
IG5hbWUgZm9yIEhUTUwgaGVscCBidWlsZGVyLgoraHRtbGhlbHBfYmFzZW5hbWUgPSAicGFja2Fn
aW5nZG9jIgorCisKKyMgLS0gT3B0aW9ucyBmb3IgTGFUZVggb3V0cHV0IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbGF0ZXhfZWxlbWVudHMgPSB7
fQorCisjIEdyb3VwaW5nIHRoZSBkb2N1bWVudCB0cmVlIGludG8gTGFUZVggZmlsZXMuIExpc3Qg
b2YgdHVwbGVzCisjIChzb3VyY2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBhdXRo
b3IsIGRvY3VtZW50Y2xhc3MgW2hvd3RvL21hbnVhbF0pCitsYXRleF9kb2N1bWVudHMgPSBbCisg
ICAgKCJpbmRleCIsICJwYWNrYWdpbmcudGV4IiwgIlBhY2thZ2luZyBEb2N1bWVudGF0aW9uIiwg
IkRvbmFsZCBTdHVmZnQiLCAibWFudWFsIikKK10KKworIyAtLSBPcHRpb25zIGZvciBtYW51YWwg
cGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisjIE9uZSBlbnRyeSBwZXIgbWFudWFsIHBhZ2UuIExpc3Qgb2YgdHVwbGVzCisjIChzb3VyY2Ug
c3RhcnQgZmlsZSwgbmFtZSwgZGVzY3JpcHRpb24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0aW9uKS4K
K21hbl9wYWdlcyA9IFsoImluZGV4IiwgInBhY2thZ2luZyIsICJQYWNrYWdpbmcgRG9jdW1lbnRh
dGlvbiIsIFsiRG9uYWxkIFN0dWZmdCJdLCAxKV0KKworIyAtLSBPcHRpb25zIGZvciBUZXhpbmZv
IG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisjIEdyb3VwaW5nIHRoZSBkb2N1bWVudCB0cmVlIGludG8gVGV4aW5mbyBmaWxlcy4gTGlzdCBv
ZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwgdGl0bGUsIGF1dGhv
ciwKKyMgIGRpciBtZW51IGVudHJ5LCBkZXNjcmlwdGlvbiwgY2F0ZWdvcnkpCit0ZXhpbmZvX2Rv
Y3VtZW50cyA9IFsKKyAgICAoCisgICAgICAgICJpbmRleCIsCisgICAgICAgICJwYWNrYWdpbmci
LAorICAgICAgICAiUGFja2FnaW5nIERvY3VtZW50YXRpb24iLAorICAgICAgICAiRG9uYWxkIFN0
dWZmdCIsCisgICAgICAgICJwYWNrYWdpbmciLAorICAgICAgICAiQ29yZSB1dGlsaXRpZXMgZm9y
IFB5dGhvbiBwYWNrYWdlcyIsCisgICAgICAgICJNaXNjZWxsYW5lb3VzIiwKKyAgICApCitdCisK
KyMgRXhhbXBsZSBjb25maWd1cmF0aW9uIGZvciBpbnRlcnNwaGlueDogcmVmZXIgdG8gdGhlIFB5
dGhvbiBzdGFuZGFyZCBsaWJyYXJ5LgoraW50ZXJzcGhpbnhfbWFwcGluZyA9IHsiaHR0cHM6Ly9k
b2NzLnB5dGhvbi5vcmcvIjogTm9uZX0KKworZXB1Yl90aGVtZSA9ICJlcHViIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9nZXR0aW5nLXN0YXJ0ZWQucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9nZXR0aW5nLXN0YXJ0ZWQucnN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM4ZTk0ODc4MjdiMzQyYzY2NTk0OWU3ZDk1M2I5NjFiZTA2OTA3ZTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L2dldHRpbmctc3RhcnRl
ZC5yc3QKQEAgLTAsMCArMSw4MCBAQAorR2V0dGluZyBzdGFydGVkCis9PT09PT09PT09PT09PT0K
KworV29ya2luZyBvbiBwYWNrYWdpbmcgcmVxdWlyZXMgdGhlIGluc3RhbGxhdGlvbiBvZiBhIHNt
YWxsIG51bWJlciBvZgorZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVzLiBUbyBzZWUgd2hhdCBkZXBl
bmRlbmNpZXMgYXJlIHJlcXVpcmVkIHRvCitydW4gdGhlIHRlc3RzIG1hbnVhbGx5LCBwbGVhc2Ug
bG9vayBhdCB0aGUgYGBub3hmaWxlLnB5YGAgZmlsZS4KKworUnVubmluZyB0ZXN0cworfn5+fn5+
fn5+fn5+fgorCitUaGUgcGFja2FnaW5nIHVuaXQgdGVzdHMgYXJlIGZvdW5kIGluIHRoZSBgYHRl
c3RzL2BgIGRpcmVjdG9yeSBhbmQgYXJlCitkZXNpZ25lZCB0byBiZSBydW4gdXNpbmcgYHB5dGVz
dGBfLiBgcHl0ZXN0YF8gd2lsbCBkaXNjb3ZlciB0aGUgdGVzdHMKK2F1dG9tYXRpY2FsbHksIHNv
IGFsbCB5b3UgaGF2ZSB0byBkbyBpczoKKworLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKKworICAg
ICQgcHl0aG9uIC1tIHB5dGVzdAorICAgIC4uLgorICAgIDI5MjA0IHBhc3NlZCwgNCBza2lwcGVk
LCAxIHhmYWlsZWQgaW4gODMuOTggc2Vjb25kcworCitUaGlzIHJ1bnMgdGhlIHRlc3RzIHdpdGgg
dGhlIGRlZmF1bHQgUHl0aG9uIGludGVycHJldGVyLiBUaGlzIGFsc28gYWxsb3dzCit5b3UgdG8g
cnVuIHNlbGVjdCB0ZXN0cyBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUgdGVzdCBzdWl0ZS4KKworWW91
IGNhbiBhbHNvIHZlcmlmeSB0aGF0IHRoZSB0ZXN0cyBwYXNzIG9uIG90aGVyIHN1cHBvcnRlZCBQ
eXRob24gaW50ZXJwcmV0ZXJzLgorRm9yIHRoaXMgd2UgdXNlIGBub3hgXywgd2hpY2ggd2lsbCBh
dXRvbWF0aWNhbGx5IGNyZWF0ZSBhIGB2aXJ0dWFsZW52YF8gZm9yCitlYWNoIHN1cHBvcnRlZCBQ
eXRob24gdmVyc2lvbiBhbmQgcnVuIHRoZSB0ZXN0cy4gRm9yIGV4YW1wbGU6CisKKy4uIGNvZGUt
YmxvY2s6OiBjb25zb2xlCisKKyAgICAkIG5veCAtcyB0ZXN0cworICAgIC4uLgorICAgIG5veCA+
IFJhbiBtdWx0aXBsZSBzZXNzaW9uczoKKyAgICBub3ggPiAqIHRlc3RzLTIuNzogc3VjY2Vzcwor
ICAgIG5veCA+ICogdGVzdHMtMy40OiBza2lwcGVkCisgICAgbm94ID4gKiB0ZXN0cy0zLjU6IHN1
Y2Nlc3MKKyAgICBub3ggPiAqIHRlc3RzLTMuNjogc3VjY2VzcworICAgIG5veCA+ICogdGVzdHMt
My43OiBzdWNjZXNzCisgICAgbm94ID4gKiB0ZXN0cy0zLjg6IHN1Y2Nlc3MKKyAgICBub3ggPiAq
IHRlc3RzLXB5cHk6IHNraXBwZWQKKyAgICBub3ggPiAqIHRlc3RzLXB5cHkzOiBza2lwcGVkCisK
K1lvdSBtYXkgbm90IGhhdmUgYWxsIHRoZSByZXF1aXJlZCBQeXRob24gdmVyc2lvbnMgaW5zdGFs
bGVkLCBpbiB3aGljaCBjYXNlIHlvdQord2lsbCBzZWUgb25lIG9yIG1vcmUgYGBJbnRlcnByZXRl
ck5vdEZvdW5kYGAgZXJyb3JzLgorCitSdW5uaW5nIGxpbnRlcnMKK35+fn5+fn5+fn5+fn5+fgor
CitJZiB5b3Ugd2lzaCB0byBydW4gdGhlIGxpbnRpbmcgcnVsZXMsIHlvdSBtYXkgdXNlIGBwcmUt
Y29tbWl0YF8gb3IgcnVuCitgYG5veCAtcyBsaW50YGAuCisKKy4uIGNvZGUtYmxvY2s6OiBjb25z
b2xlCisKKyAgICAkIG5veCAtcyBsaW50CisgICAgLi4uCisgICAgbm94ID4gU2Vzc2lvbiBsaW50
IHdhcyBzdWNjZXNzZnVsLgorCitCdWlsZGluZyBkb2N1bWVudGF0aW9uCit+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+CisKK3BhY2thZ2luZyBkb2N1bWVudGF0aW9uIGlzIHN0b3JlZCBpbiB0aGUgYGBk
b2NzL2BgIGRpcmVjdG9yeS4gSXQgaXMKK3dyaXR0ZW4gaW4gYHJlU3RydWN0dXJlZCBUZXh0YF8g
YW5kIHJlbmRlcmVkIHVzaW5nIGBTcGhpbnhgXy4KKworVXNlIGBub3hgXyB0byBidWlsZCB0aGUg
ZG9jdW1lbnRhdGlvbi4gRm9yIGV4YW1wbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlCisK
KyAgICAkIG5veCAtcyBkb2NzCisgICAgLi4uCisgICAgbm94ID4gU2Vzc2lvbiBkb2NzIHdhcyBz
dWNjZXNzZnVsLgorCitUaGUgSFRNTCBkb2N1bWVudGF0aW9uIGluZGV4IGNhbiBub3cgYmUgZm91
bmQgYXQKK2BgZG9jcy9fYnVpbGQvaHRtbC9pbmRleC5odG1sYGAuCisKKy4uIF9gcHl0ZXN0YDog
aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGVzdC8KKy4uIF9gbm94YDogaHR0cHM6Ly9weXBp
Lm9yZy9wcm9qZWN0L25veC8KKy4uIF9gdmlydHVhbGVudmA6IGh0dHBzOi8vcHlwaS5vcmcvcHJv
amVjdC92aXJ0dWFsZW52LworLi4gX2BwaXBgOiBodHRwczovL3B5cGkub3JnL3Byb2plY3QvcGlw
LworLi4gX2BzcGhpbnhgOiBodHRwczovL3B5cGkub3JnL3Byb2plY3QvU3BoaW54LworLi4gX2By
ZVN0cnVjdHVyZWQgVGV4dGA6IGh0dHA6Ly9zcGhpbngtZG9jLm9yZy9yZXN0Lmh0bWwKKy4uIF9g
cHJlLWNvbW1pdGA6IGh0dHBzOi8vcHJlLWNvbW1pdC5jb20KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFj
a2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQvaW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9k
ZXZlbG9wbWVudC9pbmRleC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBhZWE4YWNiMzkzNGUxMjQ5NTljMWNh
YjgxNTcwZGMxYjYzN2VhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3Mv
ZGV2ZWxvcG1lbnQvaW5kZXgucnN0CkBAIC0wLDAgKzEsMTkgQEAKK0RldmVsb3BtZW50Cis9PT09
PT09PT09PQorCitBcyBhbiBvcGVuIHNvdXJjZSBwcm9qZWN0LCBwYWNrYWdpbmcgd2VsY29tZXMg
Y29udHJpYnV0aW9ucyBvZiBhbGwKK2Zvcm1zLiBUaGUgc2VjdGlvbnMgYmVsb3cgd2lsbCBoZWxw
IHlvdSBnZXQgc3RhcnRlZC4KKworRmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIG91
ciBpc3N1ZSB0cmFja2VyIG9uIGBHaXRIdWJgXy4gSWYgaXQgaXMgYQorYnVnIGNoZWNrIG91dCBg
d2hhdCB0byBwdXQgaW4geW91ciBidWcgcmVwb3J0YF8uCisKKy4uIHRvY3RyZWU6OgorICAgIDpt
YXhkZXB0aDogMgorCisgICAgZ2V0dGluZy1zdGFydGVkCisgICAgc3VibWl0dGluZy1wYXRjaGVz
CisgICAgcmV2aWV3aW5nLXBhdGNoZXMKKyAgICByZWxlYXNlLXByb2Nlc3MKKworLi4gX2BHaXRI
dWJgOiBodHRwczovL2dpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcKKy4uIF9gd2hhdCB0byBwdXQg
aW4geW91ciBidWcgcmVwb3J0YDogaHR0cDovL3d3dy5jb250cmlidXRpb24tZ3VpZGUub3JnLyN3
aGF0LXRvLXB1dC1pbi15b3VyLWJ1Zy1yZXBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L2RvY3MvZGV2ZWxvcG1lbnQvcmVsZWFzZS1wcm9jZXNzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2Rv
Y3MvZGV2ZWxvcG1lbnQvcmVsZWFzZS1wcm9jZXNzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjM0YWM0MGJk
ZTI2NDg2MjUwY2NkZWM1M2ZkMjNlZmMwNjhmMzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9yZWxlYXNlLXByb2Nlc3MucnN0CkBAIC0wLDAgKzEs
MjEgQEAKK1JlbGVhc2UgUHJvY2VzcworPT09PT09PT09PT09PT09CisKKyMuIENoZWNrb3V0IHRo
ZSBjdXJyZW50IGBgbWFzdGVyYGAgYnJhbmNoLgorIy4gSW5zdGFsbCB0aGUgbGF0ZXN0IGBgbm94
YGA6OgorCisgICAgJCBwaXAgaW5zdGFsbCBub3gKKworIy4gUnVuIHRoZSByZWxlYXNlIGF1dG9t
YXRpb24gd2l0aCB0aGUgcmVxdWlyZWQgdmVyc2lvbiBudW1iZXIgKFlZLk4pOjoKKworICAgICQg
bm94IC1zIHJlbGVhc2UgLS0gWVkuTgorCisjLiBOb3RpZnkgdGhlIG90aGVyIHByb2plY3Qgb3du
ZXJzIG9mIHRoZSByZWxlYXNlLgorCisuLiBub3RlOjoKKworICAgQWNjZXNzIG5lZWRlZCBmb3Ig
bWFraW5nIHRoZSByZWxlYXNlIGFyZToKKworICAgLSBQeVBJIG1haW50YWluZXIgKG9yIG93bmVy
KSBhY2Nlc3MgdG8gYHBhY2thZ2luZ2AKKyAgIC0gcHVzaCBkaXJlY3RseSB0byB0aGUgYG1hc3Rl
cmAgYnJhbmNoIG9uIHRoZSBzb3VyY2UgcmVwb3NpdG9yeQorICAgLSBwdXNoIHRhZ3MgZGlyZWN0
bHkgdG8gdGhlIHNvdXJjZSByZXBvc2l0b3J5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9k
b2NzL2RldmVsb3BtZW50L3Jldmlld2luZy1wYXRjaGVzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2Rv
Y3MvZGV2ZWxvcG1lbnQvcmV2aWV3aW5nLXBhdGNoZXMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NzZjNzUx
MmRlN2FhNzI4MzA0NTIwMjY1ZTRjZTQxMjBiNzVlN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3Jldmlld2luZy1wYXRjaGVzLnJzdApAQCAtMCww
ICsxLDM3IEBACitSZXZpZXdpbmcgYW5kIG1lcmdpbmcgcGF0Y2hlcworPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworRXZlcnlvbmUgaXMgZW5jb3VyYWdlZCB0byByZXZpZXcgb3BlbiBw
dWxsIHJlcXVlc3RzLiBXZSBvbmx5IGFzayB0aGF0IHlvdSB0cnkKK2FuZCB0aGluayBjYXJlZnVs
bHksIGFzayBxdWVzdGlvbnMgYW5kIGFyZSBgZXhjZWxsZW50IHRvIG9uZSBhbm90aGVyYF8uIENv
ZGUKK3JldmlldyBpcyBvdXIgb3Bwb3J0dW5pdHkgdG8gc2hhcmUga25vd2xlZGdlLCBkZXNpZ24g
aWRlYXMgYW5kIG1ha2UgZnJpZW5kcy4KKworV2hlbiByZXZpZXdpbmcgYSBwYXRjaCB0cnkgdG8g
a2VlcCBlYWNoIG9mIHRoZXNlIGNvbmNlcHRzIGluIG1pbmQ6CisKK0FyY2hpdGVjdHVyZQorLS0t
LS0tLS0tLS0tCisKKyogSXMgdGhlIHByb3Bvc2VkIGNoYW5nZSBiZWluZyBtYWRlIGluIHRoZSBj
b3JyZWN0IHBsYWNlPworCitJbnRlbnQKKy0tLS0tLQorCisqIFdoYXQgaXMgdGhlIGNoYW5nZSBi
ZWluZyBwcm9wb3NlZD8KKyogRG8gd2Ugd2FudCB0aGlzIGZlYXR1cmUgb3IgaXMgdGhlIGJ1ZyB0
aGV5J3JlIGZpeGluZyByZWFsbHkgYSBidWc/CisKK0ltcGxlbWVudGF0aW9uCistLS0tLS0tLS0t
LS0tLQorCisqIERvZXMgdGhlIGNoYW5nZSBkbyB3aGF0IHRoZSBhdXRob3IgY2xhaW1zPworKiBB
cmUgdGhlcmUgc3VmZmljaWVudCB0ZXN0cz8KKyogSGFzIGl0IGJlZW4gZG9jdW1lbnRlZD8KKyog
V2lsbCB0aGlzIGNoYW5nZSBpbnRyb2R1Y2UgbmV3IGJ1Z3M/CisKK0dyYW1tYXIgYW5kIHN0eWxl
CistLS0tLS0tLS0tLS0tLS0tLQorCitUaGVzZSBhcmUgc21hbGwgdGhpbmdzIHRoYXQgYXJlIG5v
dCBjYXVnaHQgYnkgdGhlIGF1dG9tYXRlZCBzdHlsZSBjaGVja2Vycy4KKworKiBEb2VzIGEgdmFy
aWFibGUgbmVlZCBhIGJldHRlciBuYW1lPworKiBTaG91bGQgdGhpcyBiZSBhIGtleXdvcmQgYXJn
dW1lbnQ/CisKKy4uIF9gZXhjZWxsZW50IHRvIG9uZSBhbm90aGVyYDogaHR0cHM6Ly9zcGVha2Vy
ZGVjay5jb20vb2hyaXRlL2JldHRlci1jb2RlLXJldmlldwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvZG9jcy9kZXZlbG9wbWVudC9zdWJtaXR0aW5nLXBhdGNoZXMucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvZG9jcy9kZXZlbG9wbWVudC9zdWJtaXR0aW5nLXBhdGNoZXMucnN0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmNmNDMzYzQ1ZjIwYTA1M2VhZDg2Y2IxMDMyZjU0ZWVkMGI5ZjU4NGIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3N1Ym1pdHRpbmctcGF0Y2hlcy5y
c3QKQEAgLTAsMCArMSw4MSBAQAorU3VibWl0dGluZyBwYXRjaGVzCis9PT09PT09PT09PT09PT09
PT0KKworKiBBbHdheXMgbWFrZSBhIG5ldyBicmFuY2ggZm9yIHlvdXIgd29yay4KKyogUGF0Y2hl
cyBzaG91bGQgYmUgc21hbGwgdG8gZmFjaWxpdGF0ZSBlYXNpZXIgcmV2aWV3LiBgU3R1ZGllcyBo
YXZlIHNob3duYF8KKyAgdGhhdCByZXZpZXcgcXVhbGl0eSBmYWxscyBvZmYgYXMgcGF0Y2ggc2l6
ZSBncm93cy4gU29tZXRpbWVzIHRoaXMgd2lsbCByZXN1bHQKKyAgaW4gbWFueSBzbWFsbCBQUnMg
dG8gbGFuZCBhIHNpbmdsZSBsYXJnZSBmZWF0dXJlLgorKiBMYXJnZXIgY2hhbmdlcyBzaG91bGQg
YmUgZGlzY3Vzc2VkIGluIGEgdGlja2V0IGJlZm9yZSBzdWJtaXNzaW9uLgorKiBOZXcgZmVhdHVy
ZXMgYW5kIHNpZ25pZmljYW50IGJ1ZyBmaXhlcyBzaG91bGQgYmUgZG9jdW1lbnRlZCBpbiB0aGUK
KyAgOmRvYzpgL2NoYW5nZWxvZ2AuCisqIFlvdSBtdXN0IGhhdmUgbGVnYWwgcGVybWlzc2lvbiB0
byBkaXN0cmlidXRlIGFueSBjb2RlIHlvdSBjb250cmlidXRlIGFuZCBpdAorICBtdXN0IGJlIGF2
YWlsYWJsZSB1bmRlciBib3RoIHRoZSBCU0QgYW5kIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIFZl
cnNpb24gMi4wCisgIGxpY2Vuc2VzLgorCitJZiB5b3UgYmVsaWV2ZSB5b3UndmUgaWRlbnRpZmll
ZCBhIHNlY3VyaXR5IGlzc3VlIGluIHBhY2thZ2luZywgcGxlYXNlCitmb2xsb3cgdGhlIGRpcmVj
dGlvbnMgb24gdGhlIDpkb2M6YHNlY3VyaXR5IHBhZ2UgPC9zZWN1cml0eT5gLgorCitDb2RlCist
LS0tCisKK1RoaXMgcHJvamVjdCdzIHNvdXJjZSBpcyBhdXRvLWZvcm1hdHRlZCB3aXRoIHxibGFj
a3wuIFlvdSBjYW4gY2hlY2sgaWYgeW91cgorY29kZSBtZWV0cyBvdXIgcmVxdWlyZW1lbnRzIGJ5
IHJ1bm5pbmcgb3VyIGxpbnRlcnMgYWdhaW5zdCBpdCB3aXRoIGBgbm94IC1zCitsaW50YGAgb3Ig
YGBwcmUtY29tbWl0IHJ1biAtLWFsbC1maWxlc2BgLgorCitgV3JpdGUgY29tbWVudHMgYXMgY29t
cGxldGUgc2VudGVuY2VzLmBfCisKK0V2ZXJ5IGNvZGUgZmlsZSBtdXN0IHN0YXJ0IHdpdGggdGhl
IGJvaWxlcnBsYXRlIGxpY2Vuc2luZyBub3RpY2U6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24K
KworICAgICMgVGhpcyBmaWxlIGlzIGR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbgorICAgICMgMi4wLCBhbmQgdGhlIEJTRCBMaWNlbnNl
LiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGlzIHJlcG9zaXRvcnkKKyAg
ICAjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgorCitBZGRpdGlvbmFsbHksIGV2ZXJ5IFB5dGhvbiBj
b2RlIGZpbGUgbXVzdCBjb250YWluCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KKworCitUZXN0cworLS0tLS0KKworQWxsIGNvZGUgY2hhbmdlcyBtdXN0IGJlIGFjY29t
cGFuaWVkIGJ5IHVuaXQgdGVzdHMgd2l0aCAxMDAlIGNvZGUgY292ZXJhZ2UgKGFzCittZWFzdXJl
ZCBieSB0aGUgY29tYmluZWQgbWV0cmljcyBhY3Jvc3Mgb3VyIGJ1aWxkIG1hdHJpeCkuCisKKwor
RG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCitBbGwgZmVhdHVyZXMgc2hvdWxkIGJlIGRv
Y3VtZW50ZWQgd2l0aCBwcm9zZSBpbiB0aGUgYGBkb2NzYGAgc2VjdGlvbi4KKworV2hlbiByZWZl
cnJpbmcgdG8gYSBoeXBvdGhldGljYWwgaW5kaXZpZHVhbCAoc3VjaCBhcyAiYSBwZXJzb24gcmVj
ZWl2aW5nIGFuCitlbmNyeXB0ZWQgbWVzc2FnZSIpIHVzZSBnZW5kZXIgbmV1dHJhbCBwcm9ub3Vu
cyAodGhleS90aGVtL3RoZWlyKS4KKworRG9jc3RyaW5ncyBhcmUgdHlwaWNhbGx5IG9ubHkgdXNl
ZCB3aGVuIHdyaXRpbmcgYWJzdHJhY3QgY2xhc3NlcywgYnV0IHNob3VsZAorYmUgd3JpdHRlbiBs
aWtlIHRoaXMgaWYgcmVxdWlyZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGRl
ZiBzb21lX2Z1bmN0aW9uKHNvbWVfYXJnKToKKyAgICAgICAgIiIiCisgICAgICAgIERvZXMgc29t
ZSB0aGluZ3MuCisKKyAgICAgICAgOnBhcmFtIHNvbWVfYXJnOiBTb21lIGFyZ3VtZW50LgorICAg
ICAgICAiIiIKKworU28sIHNwZWNpZmljYWxseToKKworKiBBbHdheXMgdXNlIHRocmVlIGRvdWJs
ZSBxdW90ZXMuCisqIFB1dCB0aGUgdGhyZWUgZG91YmxlIHF1b3RlcyBvbiB0aGVpciBvd24gbGlu
ZS4KKyogTm8gYmxhbmsgbGluZSBhdCB0aGUgZW5kLgorKiBVc2UgU3BoaW54IHBhcmFtZXRlci9h
dHRyaWJ1dGUgZG9jdW1lbnRhdGlvbiBgc3ludGF4YF8uCisKKworLi4gfGJsYWNrfCByZXBsYWNl
OjogYGBibGFja2BgCisuLiBfYmxhY2s6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9ibGFjay8K
Ky4uIF9gV3JpdGUgY29tbWVudHMgYXMgY29tcGxldGUgc2VudGVuY2VzLmA6IGh0dHBzOi8vbmVk
YmF0Y2hlbGRlci5jb20vYmxvZy8yMDE0MDEvY29tbWVudHNfc2hvdWxkX2JlX3NlbnRlbmNlcy5o
dG1sCisuLiBfYHN5bnRheGA6IGh0dHA6Ly9zcGhpbngtZG9jLm9yZy9kb21haW5zLmh0bWwjaW5m
by1maWVsZC1saXN0cworLi4gX2BTdHVkaWVzIGhhdmUgc2hvd25gOiBodHRwOi8vd3d3LmlibS5j
b20vZGV2ZWxvcGVyd29ya3MvcmF0aW9uYWwvbGlicmFyeS8xMS1wcm92ZW4tcHJhY3RpY2VzLWZv
ci1wZWVyLXJldmlldy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1l
bnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhN2M3MjhmZjU1NmFiOTNlMDc0N2M5YTJlNDEzMWI1NGNh
MGE1ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50
L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjEgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L2RvY3MvZGV2ZWxvcG1lbnQvZ2V0dGluZy1zdGFydGVkLnJzdAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2Rv
Y3MvZGV2ZWxvcG1lbnQvaW5kZXgucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVu
dC9yZWxlYXNlLXByb2Nlc3MucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9y
ZXZpZXdpbmctcGF0Y2hlcy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3N1
Ym1pdHRpbmctcGF0Y2hlcy5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvaW5k
ZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9pbmRleC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFmZGFl
ODNjNDYyZjc3MmM0MDEyMDc5NGRkMzg3MzBjOTRkZjIyYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL2RvY3MvaW5kZXgucnN0CkBAIC0wLDAgKzEsMzggQEAKK1dlbGNvbWUgdG8g
cGFja2FnaW5nCis9PT09PT09PT09PT09PT09PT09PQorCisuLiBpbmNsdWRlOjogLi4vUkVBRE1F
LnJzdAorICAgOnN0YXJ0LWFmdGVyOiBzdGFydC1pbnRybworICAgOmVuZC1iZWZvcmU6IGVuZC1p
bnRybworCisKK0luc3RhbGxhdGlvbgorLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gaW5zdGFsbCBw
YWNrYWdpbmcgd2l0aCBgYHBpcGBgOgorCisuLiBjb2RlLWJsb2NrOjogY29uc29sZQorCisgICAg
JCBwaXAgaW5zdGFsbCBwYWNrYWdpbmcKKworCisuLiB0b2N0cmVlOjoKKyAgICA6bWF4ZGVwdGg6
IDEKKyAgICA6Y2FwdGlvbjogQVBJIERvY3VtZW50YXRpb24KKyAgICA6aGlkZGVuOgorCisgICAg
dmVyc2lvbgorICAgIHNwZWNpZmllcnMKKyAgICBtYXJrZXJzCisgICAgcmVxdWlyZW1lbnRzCisg
ICAgdGFncworICAgIHV0aWxzCisKKy4uIHRvY3RyZWU6OgorICAgIDptYXhkZXB0aDogMgorICAg
IDpjYXB0aW9uOiBQcm9qZWN0CisgICAgOmhpZGRlbjoKKworICAgIGRldmVsb3BtZW50L2luZGV4
CisgICAgc2VjdXJpdHkKKyAgICBjaGFuZ2Vsb2cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L2RvY3MvbWFya2Vycy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL21hcmtlcnMucnN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFkMjUzNjE2NDc2YWFmMmUxNzFmMTZmYjAxOThjZmIxNGNhZjZlNTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL21hcmtlcnMucnN0CkBAIC0wLDAgKzEsOTMg
QEAKK01hcmtlcnMKKz09PT09PT0KKworLi4gY3VycmVudG1vZHVsZTo6IHBhY2thZ2luZy5tYXJr
ZXJzCisKK09uZSBleHRyYSByZXF1aXJlbWVudCBvZiBkZWFsaW5nIHdpdGggZGVwZW5kZW5jaWVz
IGlzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkKK2lmIGl0IGlzIHJlcXVpcmVkIGRlcGVuZGluZyBv
biB0aGUgb3BlcmF0aW5nIHN5c3RlbSBvciBQeXRob24gdmVyc2lvbiBpbiB1c2UuCitgUEVQIDUw
OGBfIGRlZmluZXMgdGhlIHNjaGVtZSB3aGljaCBoYXMgYmVlbiBpbXBsZW1lbnRlZCBieSB0aGlz
IG1vZHVsZS4KKworVXNhZ2UKKy0tLS0tCisKKy4uIGRvY3Rlc3Q6OgorCisgICAgPj4+IGZyb20g
cGFja2FnaW5nLm1hcmtlcnMgaW1wb3J0IE1hcmtlciwgVW5kZWZpbmVkRW52aXJvbm1lbnROYW1l
CisgICAgPj4+IG1hcmtlciA9IE1hcmtlcigicHl0aG9uX3ZlcnNpb24+JzInIikKKyAgICA+Pj4g
bWFya2VyCisgICAgPE1hcmtlcigncHl0aG9uX3ZlcnNpb24gPiAiMiInKT4KKyAgICA+Pj4gIyBX
ZSBjYW4gZXZhbHVhdGUgdGhlIG1hcmtlciB0byBzZWUgaWYgaXQgaXMgc2F0aXNmaWVkCisgICAg
Pj4+IG1hcmtlci5ldmFsdWF0ZSgpCisgICAgVHJ1ZQorICAgID4+PiAjIFdlIGNhbiBhbHNvIG92
ZXJyaWRlIHRoZSBlbnZpcm9ubWVudAorICAgID4+PiBlbnYgPSB7J3B5dGhvbl92ZXJzaW9uJzog
JzEuNS40J30KKyAgICA+Pj4gbWFya2VyLmV2YWx1YXRlKGVudmlyb25tZW50PWVudikKKyAgICBG
YWxzZQorICAgID4+PiAjIE11bHRpcGxlIG1hcmtlcnMgY2FuIGJlIEFORGVkCisgICAgPj4+IGFu
ZF9tYXJrZXIgPSBNYXJrZXIoIm9zX25hbWU9PSdhJyBhbmQgb3NfbmFtZT09J2InIikKKyAgICA+
Pj4gYW5kX21hcmtlcgorICAgIDxNYXJrZXIoJ29zX25hbWUgPT0gImEiIGFuZCBvc19uYW1lID09
ICJiIicpPgorICAgID4+PiAjIE11bHRpcGxlIG1hcmtlcnMgY2FuIGJlIE9SZWQKKyAgICA+Pj4g
b3JfbWFya2VyID0gTWFya2VyKCJvc19uYW1lPT0nYScgb3Igb3NfbmFtZT09J2InIikKKyAgICA+
Pj4gb3JfbWFya2VyCisgICAgPE1hcmtlcignb3NfbmFtZSA9PSAiYSIgb3Igb3NfbmFtZSA9PSAi
YiInKT4KKyAgICA+Pj4gIyBNYXJrZXJzIGNhbiBiZSBhbHNvIHVzZWQgd2l0aCBleHRyYXMsIHRv
IHB1bGwgaW4gZGVwZW5kZW5jaWVzIGlmCisgICAgPj4+ICMgYSBjZXJ0YWluIGV4dHJhIGlzIGJl
aW5nIGluc3RhbGxlZAorICAgID4+PiBleHRyYSA9IE1hcmtlcignZXh0cmEgPT0gImJhciInKQor
ICAgID4+PiAjIEV2YWx1YXRpbmcgYW4gZXh0cmEgbWFya2VyIHdpdGggbm8gZW52aXJvbm1lbnQg
aXMgYW4gZXJyb3IKKyAgICA+Pj4gdHJ5OgorICAgIC4uLiAgICAgZXh0cmEuZXZhbHVhdGUoKQor
ICAgIC4uLiBleGNlcHQgVW5kZWZpbmVkRW52aXJvbm1lbnROYW1lOgorICAgIC4uLiAgICAgcGFz
cworICAgID4+PiBleHRyYV9lbnZpcm9ubWVudCA9IHsnZXh0cmEnOiAnJ30KKyAgICA+Pj4gZXh0
cmEuZXZhbHVhdGUoZW52aXJvbm1lbnQ9ZXh0cmFfZW52aXJvbm1lbnQpCisgICAgRmFsc2UKKyAg
ICA+Pj4gZXh0cmFfZW52aXJvbm1lbnRbJ2V4dHJhJ10gPSAnYmFyJworICAgID4+PiBleHRyYS5l
dmFsdWF0ZShlbnZpcm9ubWVudD1leHRyYV9lbnZpcm9ubWVudCkKKyAgICBUcnVlCisKKworUmVm
ZXJlbmNlCistLS0tLS0tLS0KKworLi4gY2xhc3M6OiBNYXJrZXIobWFya2VycykKKworICAgIFRo
aXMgY2xhc3MgYWJzdHJhY3RzIGhhbmRsaW5nIG1hcmtlcnMgZm9yIGRlcGVuZGVuY2llcyBvZiBh
IHByb2plY3QuIEl0IGNhbgorICAgIGJlIHBhc3NlZCBhIHNpbmdsZSBtYXJrZXIgb3IgbXVsdGlw
bGUgbWFya2VycyB0aGF0IGFyZSBBTkRlZCBvciBPUmVkCisgICAgdG9nZXRoZXIuIEVhY2ggbWFy
a2VyIHdpbGwgYmUgcGFyc2VkIGFjY29yZGluZyB0byBQRVAgNTA4LgorCisgICAgOnBhcmFtIHN0
ciBtYXJrZXJzOiBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgbWFya2VyIG9yIG1hcmtl
cnMuCisgICAgOnJhaXNlcyBJbnZhbGlkTWFya2VyOiBJZiB0aGUgZ2l2ZW4gYGBtYXJrZXJzYGAg
YXJlIG5vdCBwYXJzZWFibGUsIHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMg
ZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkLgorCisgICAgLi4gbWV0aG9kOjogZXZhbHVhdGUoZW52
aXJvbm1lbnQ9Tm9uZSkKKworICAgIEV2YWx1YXRlIHRoZSBtYXJrZXIgZ2l2ZW4gdGhlIGNvbnRl
eHQgb2YgdGhlIGN1cnJlbnQgUHl0aG9uIHByb2Nlc3MuCisKKyAgICA6cGFyYW0gZGljdCBlbnZp
cm9ubWVudDogQSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcga2V5cyBhbmQgdmFsdWVzIHRvCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlIHRoZSBkZXRlY3RlZCBlbnZpcm9ubWVu
dC4KKyAgICA6cmFpc2VzOiBVbmRlZmluZWRDb21wYXJpc29uOiBJZiB0aGUgbWFya2VyIHVzZXMg
YSBQRVAgNDQwIGNvbXBhcmlzb24gb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJpbmdzIHdoaWNoIGFyZSBub3QgdmFsaWQgUEVQIDQ0MCB2ZXJzaW9ucy4KKyAgICA6cmFp
c2VzOiBVbmRlZmluZWRFbnZpcm9ubWVudE5hbWU6IElmIHRoZSBtYXJrZXIgYWNjZXNzZXMgYSB2
YWx1ZSB0aGF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc24ndCBw
cmVzZW50IGluc2lkZSBvZiB0aGUgZW52aXJvbm1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpY3Rpb25hcnkuCisKKy4uIGV4Y2VwdGlvbjo6IEludmFsaWRNYXJr
ZXIKKworICAgIFJhaXNlZCB3aGVuIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGEgOmNsYXNzOmBNYXJr
ZXJgIHdpdGggYSBzdHJpbmcgdGhhdAorICAgIGRvZXMgbm90IGNvbmZvcm0gdG8gUEVQIDUwOC4K
KworCisuLiBleGNlcHRpb246OiBVbmRlZmluZWRDb21wYXJpc29uCisKKyAgICBSYWlzZWQgd2hl
biBhdHRlbXB0aW5nIHRvIGV2YWx1YXRlIGEgOmNsYXNzOmBNYXJrZXJgIHdpdGggYSBQRVAgNDQw
CisgICAgY29tcGFyaXNvbiBvcGVyYXRvciBhZ2FpbnN0IHZhbHVlcyB0aGF0IGFyZSBub3QgdmFs
aWQgUEVQIDQ0MCB2ZXJzaW9ucy4KKworCisuLiBleGNlcHRpb246OiBVbmRlZmluZWRFbnZpcm9u
bWVudE5hbWUKKworICAgIFJhaXNlZCB3aGVuIGF0dGVtcHRpbmcgdG8gZXZhbHVhdGUgYSA6Y2xh
c3M6YE1hcmtlcmAgd2l0aCBhIHZhbHVlIHRoYXQgaXMKKyAgICBtaXNzaW5nIGZyb20gdGhlIGV2
YWx1YXRpb24gZW52aXJvbm1lbnQuCisKKworLi4gX2BQRVAgNTA4YDogaHR0cHM6Ly93d3cucHl0
aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDUwOC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2Rv
Y3MvcmVxdWlyZW1lbnRzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvcmVxdWlyZW1lbnRzLnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lN2M1YTg1YTVlNTlkZmY1MjZjNTYwYmNlYjMwZjMxZTU4NjMwYmRlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9yZXF1aXJlbWVudHMucnN0CkBA
IC0wLDAgKzEsODkgQEAKK1JlcXVpcmVtZW50cworPT09PT09PT09PT09CisKKy4uIGN1cnJlbnRt
b2R1bGU6OiBwYWNrYWdpbmcucmVxdWlyZW1lbnRzCisKK1BhcnNlIGEgZ2l2ZW4gcmVxdWlyZW1l
bnRzIGxpbmUgZm9yIHNwZWNpZnlpbmcgZGVwZW5kZW5jaWVzIG9mIGEgUHl0aG9uCitwcm9qZWN0
LCB1c2luZyBgUEVQIDUwOGBfIHdoaWNoIGRlZmluZXMgdGhlIHNjaGVtZSB0aGF0IGhhcyBiZWVu
IGltcGxlbWVudGVkCitieSB0aGlzIG1vZHVsZS4KKworVXNhZ2UKKy0tLS0tCisKKy4uIGRvY3Rl
c3Q6OgorCisgICAgPj4+IGZyb20gcGFja2FnaW5nLnJlcXVpcmVtZW50cyBpbXBvcnQgUmVxdWly
ZW1lbnQKKyAgICA+Pj4gc2ltcGxlX3JlcSA9IFJlcXVpcmVtZW50KCJuYW1lIikKKyAgICA+Pj4g
c2ltcGxlX3JlcQorICAgIDxSZXF1aXJlbWVudCgnbmFtZScpPgorICAgID4+PiBzaW1wbGVfcmVx
Lm5hbWUKKyAgICAnbmFtZScKKyAgICA+Pj4gc2ltcGxlX3JlcS51cmwgaXMgTm9uZQorICAgIFRy
dWUKKyAgICA+Pj4gc2ltcGxlX3JlcS5leHRyYXMKKyAgICBzZXQoKQorICAgID4+PiBzaW1wbGVf
cmVxLnNwZWNpZmllcgorICAgIDxTcGVjaWZpZXJTZXQoJycpPgorICAgID4+PiBzaW1wbGVfcmVx
Lm1hcmtlciBpcyBOb25lCisgICAgVHJ1ZQorICAgID4+PiAjIFJlcXVpcmVtZW50cyBjYW4gYmUg
c3BlY2lmaWVkIHdpdGggZXh0cmFzLCBzcGVjaWZpZXJzIGFuZCBtYXJrZXJzCisgICAgPj4+IHJl
cSA9IFJlcXVpcmVtZW50KCduYW1lW2Zvb10+PTIsPDM7IHB5dGhvbl92ZXJzaW9uPiIyLjAiJykK
KyAgICA+Pj4gcmVxLm5hbWUKKyAgICAnbmFtZScKKyAgICA+Pj4gcmVxLmV4dHJhcworICAgIHsn
Zm9vJ30KKyAgICA+Pj4gcmVxLnNwZWNpZmllcgorICAgIDxTcGVjaWZpZXJTZXQoJzwzLD49Micp
PgorICAgID4+PiByZXEubWFya2VyCisgICAgPE1hcmtlcigncHl0aG9uX3ZlcnNpb24gPiAiMi4w
IicpPgorICAgID4+PiAjIFJlcXVpcmVtZW50cyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgd2l0aCBh
IFVSTCwgYnV0IG1heSBub3Qgc3BlY2lmeQorICAgID4+PiAjIGEgdmVyc2lvbi4KKyAgICA+Pj4g
dXJsX3JlcSA9IFJlcXVpcmVtZW50KCduYW1lIEAgaHR0cHM6Ly9naXRodWIuY29tL3B5cGEgO29z
X25hbWU9PSJhIicpCisgICAgPj4+IHVybF9yZXEubmFtZQorICAgICduYW1lJworICAgID4+PiB1
cmxfcmVxLnVybAorICAgICdodHRwczovL2dpdGh1Yi5jb20vcHlwYScKKyAgICA+Pj4gdXJsX3Jl
cS5leHRyYXMKKyAgICBzZXQoKQorICAgID4+PiB1cmxfcmVxLm1hcmtlcgorICAgIDxNYXJrZXIo
J29zX25hbWUgPT0gImEiJyk+CisKKworUmVmZXJlbmNlCistLS0tLS0tLS0KKworLi4gY2xhc3M6
OiBSZXF1aXJlbWVudChyZXF1aXJlbWVudCkKKworICAgIFRoaXMgY2xhc3MgYWJzdHJhY3RzIGhh
bmRsaW5nIHRoZSBkZXRhaWxzIG9mIGEgcmVxdWlyZW1lbnQgZm9yIGEgcHJvamVjdC4KKyAgICBF
YWNoIHJlcXVpcmVtZW50IHdpbGwgYmUgcGFyc2VkIGFjY29yZGluZyB0byBQRVAgNTA4LgorCisg
ICAgOnBhcmFtIHN0ciByZXF1aXJlbWVudDogVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBh
IHJlcXVpcmVtZW50LgorICAgIDpyYWlzZXMgSW52YWxpZFJlcXVpcmVtZW50OiBJZiB0aGUgZ2l2
ZW4gYGByZXF1aXJlbWVudGBgIGlzIG5vdCBwYXJzZWFibGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoZW4gdGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQuCisKKyAgICAu
LiBhdHRyaWJ1dGU6OiBuYW1lCisKKyAgICAgICBUaGUgbmFtZSBvZiB0aGUgcmVxdWlyZW1lbnQu
CisKKyAgICAuLiBhdHRyaWJ1dGU6OiB1cmwKKworICAgICAgVGhlIFVSTCwgaWYgYW55IHdoZXJl
IHRvIGRvd25sb2FkIHRoZSByZXF1aXJlbWVudCBmcm9tLiBDYW4gYmUgTm9uZS4KKworICAgIC4u
IGF0dHJpYnV0ZTo6IGV4dHJhcworCisgICAgICBBIHNldCBvZiBleHRyYXMgdGhhdCB0aGUgcmVx
dWlyZW1lbnQgc3BlY2lmaWVzLgorCisgICAgLi4gYXR0cmlidXRlOjogc3BlY2lmaWVyCisKKyAg
ICAgIEEgOmNsYXNzOmB+LlNwZWNpZmllclNldGAgb2YgdGhlIHZlcnNpb24gc3BlY2lmaWVkIGJ5
IHRoZSByZXF1aXJlbWVudC4KKworICAgIC4uIGF0dHJpYnV0ZTo6IG1hcmtlcgorCisgICAgICBB
IDpjbGFzczpgfi5NYXJrZXJgIG9mIHRoZSBtYXJrZXIgZm9yIHRoZSByZXF1aXJlbWVudC4gQ2Fu
IGJlIE5vbmUuCisKKy4uIGV4Y2VwdGlvbjo6IEludmFsaWRSZXF1aXJlbWVudAorCisgICAgUmFp
c2VkIHdoZW4gYXR0ZW1wdGluZyB0byBjcmVhdGUgYSA6Y2xhc3M6YFJlcXVpcmVtZW50YCB3aXRo
IGEgc3RyaW5nIHRoYXQKKyAgICBkb2VzIG5vdCBjb25mb3JtIHRvIFBFUCA1MDguCisKKy4uIF9g
UEVQIDUwOGA6IGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTA1MDgvCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2th
Z2luZy9kb2NzL3JlcXVpcmVtZW50cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk1YWUxOGI0ZjlkMzMxMDkx
YmM1YWMwMzY5ODVjN2ZiMWY5NmNkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L2RvY3MvcmVxdWlyZW1lbnRzLnR4dApAQCAtMCwwICsxIEBACitmdXJvCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy9kb2NzL3NlY3VyaXR5LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3Mvc2Vj
dXJpdHkucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZmRiMDAwMjllZTIxN2JlYWMxZjYxZDZhZDM2ZjJkZDdm
MGFkMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3NlY3VyaXR5LnJz
dApAQCAtMCwwICsxLDE4IEBACitTZWN1cml0eQorPT09PT09PT0KKworV2UgdGFrZSB0aGUgc2Vj
dXJpdHkgb2YgcGFja2FnaW5nIHNlcmlvdXNseS4gSWYgeW91IGJlbGlldmUgeW91J3ZlIGlkZW50
aWZpZWQgYQorc2VjdXJpdHkgaXNzdWUgaW4gaXQsIERPIE5PVCByZXBvcnQgdGhlIGlzc3VlIGlu
IGFueSBwdWJsaWMgZm9ydW0sIGluY2x1ZGluZworKGJ1dCBub3QgbGltaXRlZCB0byk6CisKKy0g
R2l0SHViIGlzc3VlIHRyYWNrZXIKKy0gT2ZmaWNpYWwgb3IgdW5vZmZpY2lhbCBjaGF0IGNoYW5u
ZWxzCistIE9mZmljaWFsIG9yIHVub2ZmaWNpYWwgbWFpbGluZyBsaXN0cworCitQbGVhc2UgcmVw
b3J0IHlvdXIgaXNzdWUgdG8gYGBzZWN1cml0eUBweXRob24ub3JnYGAuIE1lc3NhZ2VzIG1heSBi
ZSBvcHRpb25hbGx5CitlbmNyeXB0ZWQgd2l0aCBHUEcgdXNpbmcga2V5IGZpbmdlcnByaW50cyBh
dmFpbGFibGUgYXQgdGhlIGBQeXRob24gU2VjdXJpdHkKK3BhZ2UgPGh0dHBzOi8vd3d3LnB5dGhv
bi5vcmcvbmV3cy9zZWN1cml0eS8+YF8uCisKK09uY2UgeW91J3ZlIHN1Ym1pdHRlZCBhbiBpc3N1
ZSB2aWEgZW1haWwsIHlvdSBzaG91bGQgcmVjZWl2ZSBhbiBhY2tub3dsZWRnbWVudAord2l0aGlu
IDQ4IGhvdXJzLCBhbmQgZGVwZW5kaW5nIG9uIHRoZSBhY3Rpb24gdG8gYmUgdGFrZW4sIHlvdSBt
YXkgcmVjZWl2ZQorZnVydGhlciBmb2xsb3ctdXAgZW1haWxzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvZG9jcy9zcGVjaWZpZXJzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3Mvc3BlY2lm
aWVycy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFlNDU4Yjg3ODlhNTVjZWUwNDQ1NGQ0YmM3ZGJlYWE4MTk0
ZWUwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3Mvc3BlY2lmaWVycy5y
c3QKQEAgLTAsMCArMSwyMjIgQEAKK1NwZWNpZmllcnMKKz09PT09PT09PT0KKworLi4gY3VycmVu
dG1vZHVsZTo6IHBhY2thZ2luZy5zcGVjaWZpZXJzCisKK0EgY29yZSByZXF1aXJlbWVudCBvZiBk
ZWFsaW5nIHdpdGggZGVwZW5kZW5jaWVzIGlzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgd2hhdAor
dmVyc2lvbnMgb2YgYSBkZXBlbmRlbmN5IGFyZSBhY2NlcHRhYmxlIGZvciB5b3UuIGBQRVAgNDQw
YF8gZGVmaW5lcyB0aGUKK3N0YW5kYXJkIHNwZWNpZmllciBzY2hlbWUgd2hpY2ggaGFzIGJlZW4g
aW1wbGVtZW50ZWQgYnkgdGhpcyBtb2R1bGUuCisKK1VzYWdlCistLS0tLQorCisuLiBkb2N0ZXN0
OjoKKworICAgID4+PiBmcm9tIHBhY2thZ2luZy5zcGVjaWZpZXJzIGltcG9ydCBTcGVjaWZpZXJT
ZXQKKyAgICA+Pj4gZnJvbSBwYWNrYWdpbmcudmVyc2lvbiBpbXBvcnQgVmVyc2lvbgorICAgID4+
PiBzcGVjMSA9IFNwZWNpZmllclNldCgifj0xLjAiKQorICAgID4+PiBzcGVjMQorICAgIDxTcGVj
aWZpZXJTZXQoJ349MS4wJyk+CisgICAgPj4+IHNwZWMyID0gU3BlY2lmaWVyU2V0KCI+PTEuMCIp
CisgICAgPj4+IHNwZWMyCisgICAgPFNwZWNpZmllclNldCgnPj0xLjAnKT4KKyAgICA+Pj4gIyBX
ZSBjYW4gY29tYmluZSBzcGVjaWZpZXJzCisgICAgPj4+IGNvbWJpbmVkX3NwZWMgPSBzcGVjMSAm
IHNwZWMyCisgICAgPj4+IGNvbWJpbmVkX3NwZWMKKyAgICA8U3BlY2lmaWVyU2V0KCc+PTEuMCx+
PTEuMCcpPgorICAgID4+PiAjIFdlIGNhbiBhbHNvIGltcGxpY2l0bHkgY29tYmluZSBhIHN0cmlu
ZyBzcGVjaWZpZXIKKyAgICA+Pj4gY29tYmluZWRfc3BlYyAmPSAiIT0xLjEiCisgICAgPj4+IGNv
bWJpbmVkX3NwZWMKKyAgICA8U3BlY2lmaWVyU2V0KCchPTEuMSw+PTEuMCx+PTEuMCcpPgorICAg
ID4+PiAjIENyZWF0ZSBhIGZldyB2ZXJzaW9ucyB0byBjaGVjayBmb3IgY29udGFpbnMuCisgICAg
Pj4+IHYxID0gVmVyc2lvbigiMS4wYTUiKQorICAgID4+PiB2MiA9IFZlcnNpb24oIjEuMCIpCisg
ICAgPj4+ICMgV2UgY2FuIGNoZWNrIGEgdmVyc2lvbiBvYmplY3QgdG8gc2VlIGlmIGl0IGZhbGxz
IHdpdGhpbiBhIHNwZWNpZmllcgorICAgID4+PiB2MSBpbiBjb21iaW5lZF9zcGVjCisgICAgRmFs
c2UKKyAgICA+Pj4gdjIgaW4gY29tYmluZWRfc3BlYworICAgIFRydWUKKyAgICA+Pj4gIyBXZSBj
YW4gZXZlbiBkbyB0aGUgc2FtZSB3aXRoIGEgc3RyaW5nIGJhc2VkIHZlcnNpb24KKyAgICA+Pj4g
IjEuNCIgaW4gY29tYmluZWRfc3BlYworICAgIFRydWUKKyAgICA+Pj4gIyBGaW5hbGx5IHdlIGNh
biBmaWx0ZXIgYSBsaXN0IG9mIHZlcnNpb25zIHRvIGdldCBvbmx5IHRob3NlIHdoaWNoIGFyZQor
ICAgID4+PiAjIGNvbnRhaW5lZCB3aXRoaW4gb3VyIHNwZWNpZmllci4KKyAgICA+Pj4gbGlzdChj
b21iaW5lZF9zcGVjLmZpbHRlcihbdjEsIHYyLCAiMS40Il0pKQorICAgIFs8VmVyc2lvbignMS4w
Jyk+LCAnMS40J10KKworCitSZWZlcmVuY2UKKy0tLS0tLS0tLQorCisuLiBjbGFzczo6IFNwZWNp
ZmllclNldChzcGVjaWZpZXJzLCBwcmVyZWxlYXNlcz1Ob25lKQorCisgICAgVGhpcyBjbGFzcyBh
YnN0cmFjdHMgaGFuZGxpbmcgc3BlY2lmeWluZyB0aGUgZGVwZW5kZW5jaWVzIG9mIGEgcHJvamVj
dC4gSXQKKyAgICBjYW4gYmUgcGFzc2VkIGEgc2luZ2xlIHNwZWNpZmllciAoYGA+PTMuMGBgKSwg
YSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZgorICAgIHNwZWNpZmllcnMgKGBgPj0zLjAsIT0zLjFg
YCksIG9yIG5vIHNwZWNpZmllciBhdCBhbGwuIEVhY2ggaW5kaXZpZHVhbAorICAgIHNwZWNpZmll
ciB3aWxsIGJlIGF0dGVtcHRlZCB0byBiZSBwYXJzZWQgYXMgYSBQRVAgNDQwIHNwZWNpZmllcgor
ICAgICg6Y2xhc3M6YFNwZWNpZmllcmApIG9yIGFzIGEgbGVnYWN5LCBzZXR1cHRvb2xzIHN0eWxl
IHNwZWNpZmllcgorICAgIChkZXByZWNhdGVkIDpjbGFzczpgTGVnYWN5U3BlY2lmaWVyYCkuIFlv
dSBtYXkgY29tYmluZQorICAgIDpjbGFzczpgU3BlY2lmaWVyU2V0YCBpbnN0YW5jZXMgdXNpbmcg
dGhlIGBgJmBgIG9wZXJhdG9yCisgICAgKGBgU3BlY2lmaWVyU2V0KCI+MiIpICYgU3BlY2lmaWVy
U2V0KCI8NCIpYGApLgorCisgICAgQm90aCB0aGUgbWVtYmVyc2hpcCB0ZXN0cyBhbmQgdGhlIGNv
bWJpbmF0aW9uIHN1cHBvcnQgdXNpbmcgcmF3IHN0cmluZ3MKKyAgICBpbiBwbGFjZSBvZiBhbHJl
YWR5IGluc3RhbnRpYXRlZCBvYmplY3RzLgorCisgICAgOnBhcmFtIHN0ciBzcGVjaWZpZXJzOiBU
aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgc3BlY2lmaWVyIG9yIGEKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHNwZWNpZmllcnMgd2hpY2gg
d2lsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgcGFyc2VkIGFuZCBub3JtYWxpemVk
IGJlZm9yZSB1c2UuCisgICAgOnBhcmFtIGJvb2wgcHJlcmVsZWFzZXM6IFRoaXMgdGVsbHMgdGhl
IFNwZWNpZmllclNldCBpZiBpdCBzaG91bGQgYWNjZXB0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByZXJlbGVhc2UgdmVyc2lvbnMgaWYgYXBwbGljYWJsZSBvciBub3QuIFRoZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IG9mIGBgTm9uZWBgIHdpbGwgYXV0b2Rl
dGVjdCBpdCBmcm9tIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXZlbiBzcGVj
aWZpZXJzLgorICAgIDpyYWlzZXMgSW52YWxpZFNwZWNpZmllcjogSWYgdGhlIGdpdmVuIGBgc3Bl
Y2lmaWVyc2BgIGFyZSBub3QgcGFyc2VhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGFuIHRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkLgorCisgICAgLi4gYXR0cmlidXRl
OjogcHJlcmVsZWFzZXMKKworICAgICAgICBBIGJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0
aGVyIHRoaXMgOmNsYXNzOmBTcGVjaWZpZXJTZXRgCisgICAgICAgIHJlcHJlc2VudHMgYSBzcGVj
aWZpZXIgdGhhdCBpbmNsdWRlcyBhIHByZS1yZWxlYXNlIHZlcnNpb25zLiBUaGlzIGNhbiBiZQor
ICAgICAgICBzZXQgdG8gZWl0aGVyIGBgVHJ1ZWBgIG9yIGBgRmFsc2VgYCB0byBleHBsaWNpdGx5
IGVuYWJsZSBvciBkaXNhYmxlCisgICAgICAgIHByZXJlbGVhc2VzIG9yIGl0IGNhbiBiZSBzZXQg
dG8gYGBOb25lYGAgKHRoZSBkZWZhdWx0KSB0byBlbmFibGUKKyAgICAgICAgYXV0b2RldGVjdGlv
bi4KKworICAgIC4uIG1ldGhvZDo6IF9fY29udGFpbnNfXyh2ZXJzaW9uKQorCisgICAgICAgIFRo
aXMgaXMgdGhlIG1vcmUgUHl0aG9uaWMgdmVyc2lvbiBvZiA6bWV0aDpgY29udGFpbnMoKWAsIGJ1
dCBkb2VzCisgICAgICAgIG5vdCBhbGxvdyB5b3UgdG8gb3ZlcnJpZGUgdGhlIGBgcHJlcmVsZWFz
ZXNgYCBhcmd1bWVudC4gIElmIHlvdQorICAgICAgICBuZWVkIHRoYXQsIHVzZSA6bWV0aDpgY29u
dGFpbnMoKWAuCisKKyAgICAgICAgU2VlIDptZXRoOmBjb250YWlucygpYC4KKworICAgIC4uIG1l
dGhvZDo6IGNvbnRhaW5zKHZlcnNpb24sIHByZXJlbGVhc2VzPU5vbmUpCisKKyAgICAgICAgRGV0
ZXJtaW5lcyBpZiBgYHZlcnNpb25gYCwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIHZlcnNpb24gc3Ry
aW5nLCBhCisgICAgICAgIDpjbGFzczpgVmVyc2lvbmAsIG9yIGEgZGVwcmVjYXRlZCA6Y2xhc3M6
YExlZ2FjeVZlcnNpb25gIG9iamVjdCwgaXMKKyAgICAgICAgY29udGFpbmVkIHdpdGhpbiB0aGlz
IHNldCBvZiBzcGVjaWZpZXJzLgorCisgICAgICAgIFRoaXMgd2lsbCBlaXRoZXIgbWF0Y2ggb3Ig
bm90IG1hdGNoIHByZXJlbGVhc2VzIGJhc2VkIG9uIHRoZQorICAgICAgICBgYHByZXJlbGVhc2Vz
YGAgcGFyYW1ldGVyLiBXaGVuIGBgcHJlcmVsZWFzZXNgYCBpcyBzZXQgdG8gYGBOb25lYGAKKyAg
ICAgICAgKHRoZSBkZWZhdWx0KSBpdCB3aWxsIHVzZSB0aGUgYGBTcGVjaWZpZXIoKS5wcmVyZWxl
YXNlc2BgIGF0dHJpYnV0ZSB0bworICAgICAgICBkZXRlcm1pbmUgaWYgdG8gYWxsb3cgdGhlbS4g
T3RoZXJ3aXNlIGl0IHdpbGwgdXNlIHRoZSBib29sZWFuIHZhbHVlIG9mCisgICAgICAgIHRoZSBw
YXNzZWQgaW4gdmFsdWUgdG8gZGV0ZXJtaW5lIGlmIHRvIGFsbG93IHRoZW0gb3Igbm90LgorCisg
ICAgLi4gbWV0aG9kOjogX19sZW5fXygpCisKKyAgICAgICAgUmV0dXJucyB0aGUgbnVtYmVyIG9m
IHNwZWNpZmllcnMgaW4gdGhpcyBzcGVjaWZpZXIgc2V0LgorCisgICAgLi4gbWV0aG9kOjogX19p
dGVyX18oKQorCisgICAgICAgIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciBhbGwgdGhlIHVuZGVy
bHlpbmcgOmNsYXNzOmBTcGVjaWZpZXJgIChvcgorICAgICAgICBkZXByZWNhdGVkIDpjbGFzczpg
TGVnYWN5U3BlY2lmaWVyYCkgaW5zdGFuY2VzIGluIHRoaXMgc3BlY2lmaWVyIHNldC4KKworICAg
IC4uIG1ldGhvZDo6IGZpbHRlcihpdGVyYWJsZSwgcHJlcmVsZWFzZXM9Tm9uZSkKKworICAgICAg
ICBUYWtlcyBhbiBpdGVyYWJsZSB0aGF0IGNhbiBjb250YWluIHZlcnNpb24gc3RyaW5ncywgOmNs
YXNzOmB+LlZlcnNpb25gLAorICAgICAgICBhbmQgZGVwcmVjYXRlZCA6Y2xhc3M6YH4uTGVnYWN5
VmVyc2lvbmAgaW5zdGFuY2VzIGFuZCB3aWxsIHRoZW4gZmlsdGVyCisgICAgICAgIGl0LCByZXR1
cm5pbmcgYW4gaXRlcmFibGUgdGhhdCBjb250YWlucyBvbmx5IGl0ZW1zIHdoaWNoIG1hdGNoIHRo
ZQorICAgICAgICBydWxlcyBvZiB0aGlzIHNwZWNpZmllciBvYmplY3QuCisKKyAgICAgICAgVGhp
cyBtZXRob2QgaXMgc21hcnRlciB0aGFuIGp1c3QKKyAgICAgICAgYGBmaWx0ZXIoU3BlY2lmaWVy
KCkuY29udGFpbnMsIFsuLi5dKWBgIGJlY2F1c2UgaXQgaW1wbGVtZW50cyB0aGUgcnVsZQorICAg
ICAgICBmcm9tIFBFUCA0NDAgd2hlcmUgYSBwcmVyZWxlYXNlIGl0ZW0gU0hPVUxEIGJlIGFjY2Vw
dGVkIGlmIG5vIG90aGVyCisgICAgICAgIHZlcnNpb25zIG1hdGNoIHRoZSBnaXZlbiBzcGVjaWZp
ZXIuCisKKyAgICAgICAgVGhlIGBgcHJlcmVsZWFzZXNgYCBwYXJhbWV0ZXIgZnVuY3Rpb25zIHNp
bWlsYXJseSB0byB0aGF0IG9mIHRoZSBzYW1lCisgICAgICAgIHBhcmFtZXRlciBpbiBgYGNvbnRh
aW5zYGAuIElmIHRoZSB2YWx1ZSBpcyBgYE5vbmVgYCAodGhlIGRlZmF1bHQpIHRoZW4KKyAgICAg
ICAgaXQgd2lsbCBpbnRlbGxpZ2VudGx5IGRlY2lkZSBpZiB0byBhbGxvdyBwcmVyZWxlYXNlcyBi
YXNlZCBvbiB0aGUKKyAgICAgICAgc3BlY2lmaWVyLCB0aGUgYGBTcGVjaWZpZXIoKS5wcmVyZWxl
YXNlc2BgIHZhbHVlLCBhbmQgdGhlIFBFUCA0NDAKKyAgICAgICAgcnVsZXMuIE90aGVyd2lzZSBp
dCB3aWxsIGFjdCBhcyBhIGJvb2xlYW4gd2hpY2ggd2lsbCBlbmFibGUgb3IgZGlzYWJsZQorICAg
ICAgICBhbGwgcHJlcmVsZWFzZSB2ZXJzaW9ucyBmcm9tIGJlaW5nIGluY2x1ZGVkLgorCisKKy4u
IGNsYXNzOjogU3BlY2lmaWVyKHNwZWNpZmllciwgcHJlcmVsZWFzZXM9Tm9uZSkKKworICAgIFRo
aXMgY2xhc3MgYWJzdHJhY3RzIHRoZSBoYW5kbGluZyBvZiBhIHNpbmdsZSBgUEVQIDQ0MGBfIGNv
bXBhdGlibGUKKyAgICBzcGVjaWZpZXIuIEl0IGlzIGdlbmVyYWxseSBub3QgcmVxdWlyZWQgdG8g
aW5zdGFudGlhdGUgdGhpcyBtYW51YWxseSwKKyAgICBwcmVmZXJyaW5nIGluc3RlYWQgdG8gd29y
ayB3aXRoIDpjbGFzczpgU3BlY2lmaWVyU2V0YC4KKworICAgIDpwYXJhbSBzdHIgc3BlY2lmaWVy
OiBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgc3BlY2lmaWVyIHdoaWNoIHdpbGwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmUgcGFyc2VkIGFuZCBub3JtYWxpemVkIGJlZm9yZSB1
c2UuCisgICAgOnBhcmFtIGJvb2wgcHJlcmVsZWFzZXM6IFRoaXMgdGVsbHMgdGhlIHNwZWNpZmll
ciBpZiBpdCBzaG91bGQgYWNjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXJl
bGVhc2UgdmVyc2lvbnMgaWYgYXBwbGljYWJsZSBvciBub3QuIFRoZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0IG9mIGBgTm9uZWBgIHdpbGwgYXV0b2RldGVjdCBpdCBmcm9t
IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaXZlbiBzcGVjaWZpZXJzLgorICAg
IDpyYWlzZXMgSW52YWxpZFNwZWNpZmllcjogSWYgdGhlIGBgc3BlY2lmaWVyYGAgZG9lcyBub3Qg
Y29uZm9ybSB0byBQRVAgNDQwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBhbnkg
d2F5IHRoZW4gdGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQuCisKKyAgICAuLiBhdHRyaWJ1
dGU6OiBvcGVyYXRvcgorCisgICAgICAgIFRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIG9wZXJhdG9y
IHBhcnQgb2YgdGhpcyBzcGVjaWZpZXIuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiB2ZXJzaW9uCisK
KyAgICAgICAgVGhlIHN0cmluZyB2ZXJzaW9uIG9mIHRoZSB2ZXJzaW9uIHBhcnQgb2YgdGhpcyBz
cGVjaWZpZXIuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBwcmVyZWxlYXNlcworCisgICAgICAgIFNl
ZSA6YXR0cjpgU3BlY2lmaWVyU2V0LnByZXJlbGVhc2VzYC4KKworICAgIC4uIG1ldGhvZDo6IF9f
Y29udGFpbnNfXyh2ZXJzaW9uKQorCisgICAgICAgIFNlZSA6bWV0aDpgU3BlY2lmaWVyU2V0Ll9f
Y29udGFpbnNfXygpYC4KKworICAgIC4uIG1ldGhvZDo6IGNvbnRhaW5zKHZlcnNpb24sIHByZXJl
bGVhc2VzPU5vbmUpCisKKyAgICAgICAgU2VlIDptZXRoOmBTcGVjaWZpZXJTZXQuY29udGFpbnMo
KWAuCisKKyAgICAuLiBtZXRob2Q6OiBmaWx0ZXIoaXRlcmFibGUsIHByZXJlbGVhc2VzPU5vbmUp
CisKKyAgICAgICAgU2VlIDptZXRoOmBTcGVjaWZpZXJTZXQuZmlsdGVyKClgLgorCisKKy4uIGNs
YXNzOjogTGVnYWN5U3BlY2lmaWVyKHNwZWNpZmllciwgcHJlcmVsZWFzZXM9Tm9uZSkKKworICAg
IC4uIGRlcHJlY2F0ZWQ6OiAyMC41CisKKyAgICAgICAgVXNlIDpjbGFzczpgU3BlY2lmaWVyYCBp
bnN0ZWFkLgorCisgICAgVGhpcyBjbGFzcyBhYnN0cmFjdHMgdGhlIGhhbmRsaW5nIG9mIGEgc2lu
Z2xlIGxlZ2FjeSwgc2V0dXB0b29scyBzdHlsZQorICAgIHNwZWNpZmllci4gSXQgaXMgZ2VuZXJh
bGx5IG5vdCByZXF1aXJlZCB0byBpbnN0YW50aWF0ZSB0aGlzIG1hbnVhbGx5LAorICAgIHByZWZl
cnJpbmcgaW5zdGVhZCB0byB3b3JrIHdpdGggOmNsYXNzOmBTcGVjaWZpZXJTZXRgLgorCisgICAg
OnBhcmFtIHN0ciBzcGVjaWZpZXI6IFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBzcGVj
aWZpZXIgd2hpY2ggd2lsbAorICAgICAgICAgICAgICAgICAgICAgICAgICBiZSBwYXJzZWQgYW5k
IG5vcm1hbGl6ZWQgYmVmb3JlIHVzZS4KKyAgICA6cGFyYW0gYm9vbCBwcmVyZWxlYXNlczogVGhp
cyB0ZWxscyB0aGUgc3BlY2lmaWVyIGlmIGl0IHNob3VsZCBhY2NlcHQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJlcmVsZWFzZSB2ZXJzaW9ucyBpZiBhcHBsaWNhYmxlIG9yIG5vdC4g
VGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgb2YgYGBOb25lYGAgd2ls
bCBhdXRvZGV0ZWN0IGl0IGZyb20gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdp
dmVuIHNwZWNpZmllcnMuCisgICAgOnJhaXNlcyBJbnZhbGlkU3BlY2lmaWVyOiBJZiB0aGUgYGBz
cGVjaWZpZXJgYCBpcyBub3QgcGFyc2VhYmxlIHRoZW4gdGhpcworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2lsbCBiZSByYWlzZWQuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBvcGVyYXRv
cgorCisgICAgICAgIFRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIG9wZXJhdG9yIHBhcnQgb2YgdGhp
cyBzcGVjaWZpZXIuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiB2ZXJzaW9uCisKKyAgICAgICAgVGhl
IHN0cmluZyB2ZXJzaW9uIG9mIHRoZSB2ZXJzaW9uIHBhcnQgb2YgdGhpcyBzcGVjaWZpZXIuCisK
KyAgICAuLiBhdHRyaWJ1dGU6OiBwcmVyZWxlYXNlcworCisgICAgICAgIFNlZSA6YXR0cjpgU3Bl
Y2lmaWVyU2V0LnByZXJlbGVhc2VzYC4KKworICAgIC4uIG1ldGhvZDo6IF9fY29udGFpbnNfXyh2
ZXJzaW9uKQorCisgICAgICAgIFNlZSA6bWV0aDpgU3BlY2lmaWVyU2V0Ll9fY29udGFpbnNfXygp
YC4KKworICAgIC4uIG1ldGhvZDo6IGNvbnRhaW5zKHZlcnNpb24sIHByZXJlbGVhc2VzPU5vbmUp
CisKKyAgICAgICAgU2VlIDptZXRoOmBTcGVjaWZpZXJTZXQuY29udGFpbnMoKWAuCisKKyAgICAu
LiBtZXRob2Q6OiBmaWx0ZXIoaXRlcmFibGUsIHByZXJlbGVhc2VzPU5vbmUpCisKKyAgICAgICAg
U2VlIDptZXRoOmBTcGVjaWZpZXJTZXQuZmlsdGVyKClgLgorCisKKy4uIGV4Y2VwdGlvbjo6IElu
dmFsaWRTcGVjaWZpZXIKKworICAgIFJhaXNlZCB3aGVuIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGEg
OmNsYXNzOmBTcGVjaWZpZXJgIHdpdGggYSBzcGVjaWZpZXIKKyAgICBzdHJpbmcgdGhhdCBkb2Vz
IG5vdCBjb25mb3JtIHRvIGBQRVAgNDQwYF8uCisKKworLi4gX2BQRVAgNDQwYDogaHR0cHM6Ly93
d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQ0MC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL2RvY3MvdGFncy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3RhZ3MucnN0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRkN2UxMGFiNjM2MzUxYWE2MTU4MmVkYjFkM2Y3M2RhNDUzZDY0NjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3RhZ3MucnN0CkBAIC0wLDAgKzEsMjIwIEBACitU
YWdzCis9PT09CisKKy4uIGN1cnJlbnRtb2R1bGU6OiBwYWNrYWdpbmcudGFncworCitXaGVlbHMg
ZW5jb2RlIHRoZSBQeXRob24gaW50ZXJwcmV0ZXIsIEFCSSwgYW5kIHBsYXRmb3JtIHRoYXQgdGhl
eSBzdXBwb3J0IGluCit0aGVpciBmaWxlbmFtZXMgdXNpbmcgYHBsYXRmb3JtIGNvbXBhdGliaWxp
dHkgdGFnc2BfLiBUaGlzIG1vZHVsZSBwcm92aWRlcworc3VwcG9ydCBmb3IgYm90aCBwYXJzaW5n
IHRoZXNlIHRhZ3MgYXMgd2VsbCBhcyBkaXNjb3ZlcmluZyB3aGF0IHRhZ3MgdGhlCitydW5uaW5n
IFB5dGhvbiBpbnRlcnByZXRlciBzdXBwb3J0cy4KKworVXNhZ2UKKy0tLS0tCisKKy4uIGRvY3Rl
c3Q6OgorCisgICAgPj4+IGZyb20gcGFja2FnaW5nLnRhZ3MgaW1wb3J0IFRhZywgc3lzX3RhZ3MK
KyAgICA+Pj4gaW1wb3J0IHN5cworICAgID4+PiBsb29raW5nX2ZvciA9IFRhZygicHl7bWFqb3J9
Ii5mb3JtYXQobWFqb3I9c3lzLnZlcnNpb25faW5mby5tYWpvciksICJub25lIiwgImFueSIpCisg
ICAgPj4+IHN1cHBvcnRlZF90YWdzID0gbGlzdChzeXNfdGFncygpKQorICAgID4+PiBsb29raW5n
X2ZvciBpbiBzdXBwb3J0ZWRfdGFncworICAgIFRydWUKKyAgICA+Pj4gcmVhbGx5X29sZCA9IFRh
ZygicHkxIiwgIm5vbmUiLCAiYW55IikKKyAgICA+Pj4gd2hlZWxzID0ge3JlYWxseV9vbGQsIGxv
b2tpbmdfZm9yfQorICAgID4+PiBiZXN0X3doZWVsID0gTm9uZQorICAgID4+PiBmb3Igc3VwcG9y
dGVkX3RhZyBpbiBzdXBwb3J0ZWRfdGFnczoKKyAgICAuLi4gICAgIGZvciB3aGVlbF90YWcgaW4g
d2hlZWxzOgorICAgIC4uLiAgICAgICAgIGlmIHN1cHBvcnRlZF90YWcgPT0gd2hlZWxfdGFnOgor
ICAgIC4uLiAgICAgICAgICAgICBiZXN0X3doZWVsID0gd2hlZWxfdGFnCisgICAgLi4uICAgICAg
ICAgICAgIGJyZWFrCisgICAgPj4+IGJlc3Rfd2hlZWwgPT0gbG9va2luZ19mb3IKKyAgICBUcnVl
CisKK1JlZmVyZW5jZQorLS0tLS0tLS0tCisKK0hpZ2ggTGV2ZWwgSW50ZXJmYWNlCisnJycnJycn
JycnJycnJycnJycnJworCitUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgdGhlIG1haW4gaW50
ZXJmYWNlIHRvIHRoZSBsaWJyYXJ5LCBhbmQgYXJlIHR5cGljYWxseSB0aGUgb25seQoraXRlbXMg
dGhhdCBhcHBsaWNhdGlvbnMgc2hvdWxkIG5lZWQgdG8gcmVmZXJlbmNlLCBpbiBvcmRlciB0byBw
YXJzZSBhbmQgY2hlY2sgdGFncy4KKworLi4gY2xhc3M6OiBUYWcoaW50ZXJwcmV0ZXIsIGFiaSwg
cGxhdGZvcm0pCisKKyAgICBBIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0YWcgdHJpcGxlIGZvciBh
IHdoZWVsLiBJbnN0YW5jZXMgYXJlIGNvbnNpZGVyZWQKKyAgICBpbW11dGFibGUgYW5kIHRodXMg
YXJlIGhhc2hhYmxlLiBFcXVhbGl0eSBjaGVja2luZyBpcyBhbHNvIHN1cHBvcnRlZC4KKworICAg
IDpwYXJhbSBzdHIgaW50ZXJwcmV0ZXI6IFRoZSBpbnRlcnByZXRlciBuYW1lLCBlLmcuIGBgInB5
ImBgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlZSA6YXR0cjpgSU5URVJQUkVURVJf
U0hPUlRfTkFNRVNgIGZvciBtYXBwaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vs
bC1rbm93biBpbnRlcnByZXRlciBuYW1lcyB0byB0aGVpciBzaG9ydCBuYW1lcykuCisgICAgOnBh
cmFtIHN0ciBhYmk6IFRoZSBBQkkgdGhhdCBhIHdoZWVsIHN1cHBvcnRzLCBlLmcuIGBgImNwMzdt
ImBgLgorICAgIDpwYXJhbSBzdHIgcGxhdGZvcm06IFRoZSBPUy9wbGF0Zm9ybSB0aGUgd2hlZWwg
c3VwcG9ydHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgZS5nLiBgYCJ3aW5fYW1kNjQiYGAu
CisKKyAgICAuLiBhdHRyaWJ1dGU6OiBpbnRlcnByZXRlcgorCisgICAgICAgIFRoZSBpbnRlcnBy
ZXRlciBuYW1lLgorCisgICAgLi4gYXR0cmlidXRlOjogYWJpCisKKyAgICAgICAgVGhlIHN1cHBv
cnRlZCBBQkkuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBwbGF0Zm9ybQorCisgICAgICAgIFRoZSBP
Uy9wbGF0Zm9ybS4KKworCisuLiBmdW5jdGlvbjo6IHBhcnNlX3RhZyh0YWcpCisKKyAgICBQYXJz
ZXMgdGhlIHByb3ZpZGVkIGBgdGFnYGAgaW50byBhIHNldCBvZiA6Y2xhc3M6YFRhZ2AgaW5zdGFu
Y2VzLgorCisgICAgUmV0dXJuaW5nIGEgc2V0IGlzIHJlcXVpcmVkIGR1ZSB0byB0aGUgcG9zc2li
aWxpdHkgdGhhdCB0aGUgdGFnIGlzIGEKKyAgICBgY29tcHJlc3NlZCB0YWcgc2V0YF8sIGUuZy4g
YGAicHkyLnB5My1ub25lLWFueSJgYCB3aGljaCBzdXBwb3J0cyBib3RoCisgICAgUHl0aG9uIDIg
YW5kIFB5dGhvbiAzLgorCisgICAgOnBhcmFtIHN0ciB0YWc6IFRoZSB0YWcgdG8gcGFyc2UsIGUu
Zy4gYGAicHkzLW5vbmUtYW55ImBgLgorCisKKy4uIGZ1bmN0aW9uOjogc3lzX3RhZ3MoKiwgd2Fy
bj1GYWxzZSkKKworICAgIFlpZWxkcyB0aGUgdGFncyB0aGF0IHRoZSBydW5uaW5nIGludGVycHJl
dGVyIHN1cHBvcnRzLgorCisgICAgVGhlIGl0ZXJhYmxlIGlzIG9yZGVyZWQgc28gdGhhdCB0aGUg
YmVzdC1tYXRjaGluZyB0YWcgaXMgZmlyc3QgaW4gdGhlCisgICAgc2VxdWVuY2UuIFRoZSBleGFj
dCBwcmVmZXJlbnRpYWwgb3JkZXIgdG8gdGFncyBpcyBpbnRlcnByZXRlci1zcGVjaWZpYywgYnV0
CisgICAgaW4gZ2VuZXJhbCB0aGUgdGFnIGltcG9ydGFuY2UgaXMgaW4gdGhlIG9yZGVyIG9mOgor
CisgICAgMS4gSW50ZXJwcmV0ZXIKKyAgICAyLiBQbGF0Zm9ybQorICAgIDMuIEFCSQorCisgICAg
VGhpcyBvcmRlciBpcyBkdWUgdG8gdGhlIGZhY3QgdGhhdCBhbiBBQkkgaXMgaW5oZXJlbnRseSB0
aWVkIHRvIHRoZQorICAgIHBsYXRmb3JtLCBidXQgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBpcyBu
b3QgbmVjZXNzYXJpbHkgdGllZCB0byB0aGUgQUJJLiBUaGUKKyAgICBpbnRlcnByZXRlciBpcyB0
aGUgbW9zdCBpbXBvcnRhbnQgdGFnIGFzIGl0IGRpY3RhdGVzIGJhc2ljIHN1cHBvcnQgZm9yIGFu
eQorICAgIHdoZWVsLgorCisgICAgVGhlIGZ1bmN0aW9uIHJldHVybnMgYW4gaXRlcmFibGUgaW4g
b3JkZXIgdG8gYWxsb3cgZm9yIHRoZSBwb3NzaWJsZQorICAgIHNob3J0LWNpcmN1aXRpbmcgb2Yg
dGFnIGdlbmVyYXRpb24gaWYgdGhlIGVudGlyZSBzZXF1ZW5jZSBpcyBub3QgbmVjZXNzYXJ5Cisg
ICAgYW5kIHRhZyBjYWxjdWxhdGlvbiBoYXBwZW5zIHRvIGJlIGV4cGVuc2l2ZS4KKworICAgIDpw
YXJhbSBib29sIHdhcm46IFdoZXRoZXIgd2FybmluZ3Mgc2hvdWxkIGJlIGxvZ2dlZC4gRGVmYXVs
dHMgdG8gYGBGYWxzZWBgLgorCisKK0xvdyBMZXZlbCBJbnRlcmZhY2UKKycnJycnJycnJycnJycn
JycnJycKKworVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIGxvdy1sZXZlbCBpbXBsZW1lbnRh
dGlvbiBkZXRhaWxzLiBUaGV5IHNob3VsZCB0eXBpY2FsbHkgbm90CitiZSBuZWVkZWQgaW4gYXBw
bGljYXRpb24gY29kZSwgdW5sZXNzIHRoZSBhcHBsaWNhdGlvbiBoYXMgc3BlY2lhbGlzZWQgcmVx
dWlyZW1lbnRzIChmb3IKK2V4YW1wbGUsIGNvbnN0cnVjdGluZyBzZXRzIG9mIHN1cHBvcnRlZCB0
YWdzIGZvciBlbnZpcm9ubWVudHMgb3RoZXIgdGhhbiB0aGUgcnVubmluZworaW50ZXJwcmV0ZXIp
LgorCitUaGVzZSBmdW5jdGlvbnMgY2FwdHVyZSB0aGUgcHJlY2lzZSBkZXRhaWxzIG9mIHdoaWNo
IGVudmlyb25tZW50cyBzdXBwb3J0IHdoaWNoIHRhZ3MuIFRoYXQKK2luZm9ybWF0aW9uIGlzIG5v
dCBkZWZpbmVkIGluIHRoZSBjb21wYXRpYmlsaXR5IHRhZyBzdGFuZGFyZHMgYnV0IGlzIG5vdGVk
IGFzIGJlaW5nIHVwCit0byB0aGUgaW1wbGVtZW50YXRpb24gdG8gcHJvdmlkZS4KKworCisuLiBh
dHRyaWJ1dGU6OiBJTlRFUlBSRVRFUl9TSE9SVF9OQU1FUworCisgICAgQSBkaWN0aW9uYXJ5IG1h
cHBpbmcgaW50ZXJwcmV0ZXIgbmFtZXMgdG8gdGhlaXIgYGFiYnJldmlhdGlvbiBjb2Rlc2BfCisg
ICAgKGUuZy4gYGAiY3B5dGhvbiJgYCBpcyBgYCJjcCJgYCkuIEFsbCBpbnRlcnByZXRlciBuYW1l
cyBhcmUgbG93ZXItY2FzZS4KKworCisuLiBmdW5jdGlvbjo6IGludGVycHJldGVyX25hbWUoKQor
CisgICAgUmV0dXJucyB0aGUgcnVubmluZyBpbnRlcnByZXRlcidzIG5hbWUuCisKKyAgICBUaGlz
IHR5cGljYWxseSBhY3RzIGFzIHRoZSBwcmVmaXggdG8gdGhlIDphdHRyOmB+VGFnLmludGVycHJl
dGVyYCB0YWcuCisKKworLi4gZnVuY3Rpb246OiBpbnRlcnByZXRlcl92ZXJzaW9uKCosIHdhcm49
RmFsc2UpCisKKyAgICBSZXR1cm5zIHRoZSBydW5uaW5nIGludGVycHJldGVyJ3MgdmVyc2lvbi4K
KworICAgIFRoaXMgdHlwaWNhbGx5IGFjdHMgYXMgdGhlIHN1ZmZpeCB0byB0aGUgOmF0dHI6YH5U
YWcuaW50ZXJwcmV0ZXJgIHRhZy4KKworCisuLiBmdW5jdGlvbjo6IG1hY19wbGF0Zm9ybXModmVy
c2lvbj1Ob25lLCBhcmNoPU5vbmUpCisKKyAgICBZaWVsZHMgdGhlIDphdHRyOmB+VGFnLnBsYXRm
b3JtYCB0YWdzIGZvciBtYWNPUy4KKworICAgIDpwYXJhbSB0dXBsZSB2ZXJzaW9uOiBBIHR3by1p
dGVtIHR1cGxlIHByZXNlbnRpbmcgdGhlIHZlcnNpb24gb2YgbWFjT1MuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IHN5c3RlbSdzIHZlcnNpb24uCisg
ICAgOnBhcmFtIHN0ciBhcmNoOiBUaGUgQ1BVIGFyY2hpdGVjdHVyZS4gRGVmYXVsdHMgdG8gdGhl
IGFyY2hpdGVjdHVyZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgc3lzdGVt
LCBlLmcuIGBgIng4Nl82NCJgYC4KKworICAgIC4uIG5vdGU6OgorICAgICAgICBFcXVpdmFsZW50
IHN1cHBvcnQgZm9yIHRoZSBvdGhlciBtYWpvciBwbGF0Zm9ybXMgaXMgcHVycG9zZWZ1bGx5IG5v
dAorICAgICAgICBwcm92aWRlZDoKKworICAgICAgICAtIE9uIFdpbmRvd3MsIHBsYXRmb3JtIGNv
bXBhdGliaWxpdHkgaXMgc3RhdGljYWxseSBzcGVjaWZpZWQKKyAgICAgICAgLSBPbiBMaW51eCwg
Y29kZSBtdXN0IGJlIHJ1biBvbiB0aGUgc3lzdGVtIGl0c2VsZiB0byBkZXRlcm1pbmUKKyAgICAg
ICAgICBjb21wYXRpYmlsaXR5CisKKworLi4gZnVuY3Rpb246OiBjb21wYXRpYmxlX3RhZ3MocHl0
aG9uX3ZlcnNpb249Tm9uZSwgaW50ZXJwcmV0ZXI9Tm9uZSwgcGxhdGZvcm1zPU5vbmUpCisKKyAg
ICBZaWVsZHMgdGhlIHRhZ3MgZm9yIGFuIGludGVycHJldGVyIGNvbXBhdGlibGUgd2l0aCB0aGUg
UHl0aG9uIHZlcnNpb24KKyAgICBzcGVjaWZpZWQgYnkgYGBweXRob25fdmVyc2lvbmBgLgorCisg
ICAgVGhlIHNwZWNpZmljIHRhZ3MgZ2VuZXJhdGVkIGFyZToKKworICAgIC0gYGBweSotbm9uZS08
cGxhdGZvcm0+YGAKKyAgICAtIGBgPGludGVycHJldGVyPi1ub25lLWFueWBgIGlmIGBgaW50ZXJw
cmV0ZXJgYCBpcyBwcm92aWRlZAorICAgIC0gYGBweSotbm9uZS1hbnlgYAorCisgICAgOnBhcmFt
IFNlcXVlbmNlIHB5dGhvbl92ZXJzaW9uOiBBIG9uZS0gb3IgdHdvLWl0ZW0gc2VxdWVuY2UgcmVw
cmVzZW50aW5nIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJs
ZSB2ZXJzaW9uIG9mIFB5dGhvbi4gRGVmYXVsdHMgdG8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGBgc3lzLnZlcnNpb25faW5mb1s6Ml1gYC4KKyAgICA6cGFyYW0gc3RyIGludGVy
cHJldGVyOiBUaGUgbmFtZSBvZiB0aGUgaW50ZXJwcmV0ZXIgKGlmIGtub3duKSwgZS5nLgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGBgImNwMzgiYGAuIERlZmF1bHRzIHRvIHRoZSBjdXJy
ZW50IGludGVycHJldGVyLgorICAgIDpwYXJhbSBJdGVyYWJsZSBwbGF0Zm9ybXM6IEl0ZXJhYmxl
IG9mIGNvbXBhdGlibGUgcGxhdGZvcm1zLiBEZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwbGF0Zm9ybXMgY29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IHN5
c3RlbS4KKworLi4gZnVuY3Rpb246OiBjcHl0aG9uX3RhZ3MocHl0aG9uX3ZlcnNpb249Tm9uZSwg
YWJpcz1Ob25lLCBwbGF0Zm9ybXM9Tm9uZSwgKiwgd2Fybj1GYWxzZSkKKworICAgIFlpZWxkcyB0
aGUgdGFncyBmb3IgdGhlIENQeXRob24gaW50ZXJwcmV0ZXIuCisKKyAgICBUaGUgc3BlY2lmaWMg
dGFncyBnZW5lcmF0ZWQgYXJlOgorCisgICAgLSBgYGNwPHB5dGhvbl92ZXJzaW9uPi08YWJpPi08
cGxhdGZvcm0+YGAKKyAgICAtIGBgY3A8cHl0aG9uX3ZlcnNpb24+LWFiaTMtPHBsYXRmb3JtPmBg
CisgICAgLSBgYGNwPHB5dGhvbl92ZXJzaW9uPi1ub25lLTxwbGF0Zm9ybT5gYAorICAgIC0gYGBj
cDxvbGRlciB2ZXJzaW9uPi1hYmkzLTxwbGF0Zm9ybT5gYCB3aGVyZSAib2xkZXIgdmVyc2lvbiIg
aXMgYWxsIG9sZGVyCisgICAgICBtaW5vciB2ZXJzaW9ucyBkb3duIHRvIFB5dGhvbiAzLjIgKHdo
ZW4gYGBhYmkzYGAgd2FzIGludHJvZHVjZWQpCisKKyAgICBJZiBgYHB5dGhvbl92ZXJzaW9uYGAg
b25seSBwcm92aWRlcyBhIG1ham9yLW9ubHkgdmVyc2lvbiB0aGVuIG9ubHkKKyAgICB1c2VyLXBy
b3ZpZGVkIEFCSXMgdmlhIGBgYWJpc2BgIGFuZCB0aGUgYGBub25lYGAgQUJJIHdpbGwgYmUgdXNl
ZC4KKworICAgIDpwYXJhbSBTZXF1ZW5jZSBweXRob25fdmVyc2lvbjogQSBvbmUtIG9yIHR3by1p
dGVtIHNlcXVlbmNlIHJlcHJlc2VudGluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRhcmdldHRlZCBQeXRob24gdmVyc2lvbi4gRGVmYXVsdHMgdG8KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGBgc3lzLnZlcnNpb25faW5mb1s6Ml1gYC4KKyAgICA6cGFy
YW0gSXRlcmFibGUgYWJpczogSXRlcmFibGUgb2YgY29tcGF0aWJsZSBBQklzLiBEZWZhdWx0cyB0
byB0aGUgQUJJcworICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlIHdpdGggdGhl
IGN1cnJlbnQgc3lzdGVtLgorICAgIDpwYXJhbSBJdGVyYWJsZSBwbGF0Zm9ybXM6IEl0ZXJhYmxl
IG9mIGNvbXBhdGlibGUgcGxhdGZvcm1zLiBEZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwbGF0Zm9ybXMgY29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IHN5
c3RlbS4KKyAgICA6cGFyYW0gYm9vbCB3YXJuOiBXaGV0aGVyIHdhcm5pbmdzIHNob3VsZCBiZSBs
b2dnZWQuIERlZmF1bHRzIHRvIGBgRmFsc2VgYC4KKworLi4gZnVuY3Rpb246OiBnZW5lcmljX3Rh
Z3MoaW50ZXJwcmV0ZXI9Tm9uZSwgYWJpcz1Ob25lLCBwbGF0Zm9ybXM9Tm9uZSwgKiwgd2Fybj1G
YWxzZSkKKworICAgIFlpZWxkcyB0aGUgdGFncyBmb3IgYW4gaW50ZXJwcmV0ZXIgd2hpY2ggcmVx
dWlyZXMgbm8gc3BlY2lhbGl6YXRpb24uCisKKyAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1
c2VkIGlmIG9uZSBvZiB0aGUgb3RoZXIgaW50ZXJwcmV0ZXItc3BlY2lmaWMKKyAgICBmdW5jdGlv
bnMgcHJvdmlkZWQgYnkgdGhpcyBtb2R1bGUgaXMgbm90IGFwcHJvcHJpYXRlIChpLmUuIG5vdCBj
YWxjdWxhdGluZworICAgIHRhZ3MgZm9yIGEgQ1B5dGhvbiBpbnRlcnByZXRlcikuCisKKyAgICBU
aGUgc3BlY2lmaWMgdGFncyBnZW5lcmF0ZWQgYXJlOgorCisgICAgLSBgYDxpbnRlcnByZXRlcj4t
PGFiaT4tPHBsYXRmb3JtPmBgCisKKyAgICBUaGUgYGAibm9uZSJgYCBBQkkgd2lsbCBiZSBhZGRl
ZCBpZiBpdCB3YXMgbm90IGV4cGxpY2l0bHkgcHJvdmlkZWQuCisKKyAgICA6cGFyYW0gc3RyIGlu
dGVycHJldGVyOiBUaGUgbmFtZSBvZiB0aGUgaW50ZXJwcmV0ZXIuIERlZmF1bHRzIHRvIGJlaW5n
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlZC4KKyAgICA6cGFyYW0gSXRl
cmFibGUgYWJpczogSXRlcmFibGUgb2YgY29tcGF0aWJsZSBBQklzLiBEZWZhdWx0cyB0byB0aGUg
QUJJcworICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlIHdpdGggdGhlIGN1cnJl
bnQgc3lzdGVtLgorICAgIDpwYXJhbSBJdGVyYWJsZSBwbGF0Zm9ybXM6IEl0ZXJhYmxlIG9mIGNv
bXBhdGlibGUgcGxhdGZvcm1zLiBEZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwbGF0Zm9ybXMgY29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IHN5c3RlbS4K
KyAgICA6cGFyYW0gYm9vbCB3YXJuOiBXaGV0aGVyIHdhcm5pbmdzIHNob3VsZCBiZSBsb2dnZWQu
IERlZmF1bHRzIHRvIGBgRmFsc2VgYC4KKworLi4gX2BhYmJyZXZpYXRpb24gY29kZXNgOiBodHRw
czovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wNDI1LyNweXRob24tdGFnCisuLiBfYGNv
bXByZXNzZWQgdGFnIHNldGA6IGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTA0
MjUvI2NvbXByZXNzZWQtdGFnLXNldHMKKy4uIF9gcGxhdGZvcm0gY29tcGF0aWJpbGl0eSB0YWdz
YDogaHR0cHM6Ly9wYWNrYWdpbmcucHl0aG9uLm9yZy9zcGVjaWZpY2F0aW9ucy9wbGF0Zm9ybS1j
b21wYXRpYmlsaXR5LXRhZ3MvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3V0aWxz
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvdXRpbHMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzNDA5NGFh
MzBlMDI3ODM3MGJkZjM3YmM5MjIwODI1YWEwYzBlYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy9kb2NzL3V0aWxzLnJzdApAQCAtMCwwICsxLDQxIEBACitVdGlsaXRpZXMKKz09
PT09PT09PQorCisuLiBjdXJyZW50bW9kdWxlOjogcGFja2FnaW5nLnV0aWxzCisKKworQSBzZXQg
b2Ygc21hbGwsIGhlbHBlciB1dGlsaXRpZXMgZm9yIGRlYWxpbmcgd2l0aCBQeXRob24gcGFja2Fn
ZXMuCisKKworUmVmZXJlbmNlCistLS0tLS0tLS0KKworLi4gZnVuY3Rpb246OiBjYW5vbmljYWxp
emVfbmFtZShuYW1lKQorCisgICAgVGhpcyBmdW5jdGlvbiB0YWtlcyBhIHZhbGlkIFB5dGhvbiBw
YWNrYWdlIG5hbWUsIGFuZCByZXR1cm5zIHRoZSBub3JtYWxpemVkCisgICAgZm9ybSBvZiBpdC4K
KworICAgIDpwYXJhbSBzdHIgbmFtZTogVGhlIG5hbWUgdG8gbm9ybWFsaXplLgorCisgICAgLi4g
ZG9jdGVzdDo6CisKKyAgICAgICAgPj4+IGZyb20gcGFja2FnaW5nLnV0aWxzIGltcG9ydCBjYW5v
bmljYWxpemVfbmFtZQorICAgICAgICA+Pj4gY2Fub25pY2FsaXplX25hbWUoIkRqYW5nbyIpCisg
ICAgICAgICdkamFuZ28nCisgICAgICAgID4+PiBjYW5vbmljYWxpemVfbmFtZSgib3Nsby5jb25j
dXJyZW5jeSIpCisgICAgICAgICdvc2xvLWNvbmN1cnJlbmN5JworICAgICAgICA+Pj4gY2Fub25p
Y2FsaXplX25hbWUoInJlcXVlc3RzIikKKyAgICAgICAgJ3JlcXVlc3RzJworCisuLiBmdW5jdGlv
bjo6IGNhbm9uaWNhbGl6ZV92ZXJzaW9uKHZlcnNpb24pCisKKyAgICBUaGlzIGZ1bmN0aW9uIHRh
a2VzIGEgc3RyaW5nIHJlcHJlc2VudGluZyBhIHBhY2thZ2UgdmVyc2lvbiAob3IgYQorICAgIGBg
VmVyc2lvbmBgIGluc3RhbmNlKSwgYW5kIHJldHVybnMgdGhlIG5vcm1hbGl6ZWQgZm9ybSBvZiBp
dC4KKworICAgIDpwYXJhbSBzdHIgdmVyc2lvbjogVGhlIHZlcnNpb24gdG8gbm9ybWFsaXplLgor
CisgICAgLi4gZG9jdGVzdDo6CisKKyAgICAgICAgPj4+IGZyb20gcGFja2FnaW5nLnV0aWxzIGlt
cG9ydCBjYW5vbmljYWxpemVfdmVyc2lvbgorICAgICAgICA+Pj4gY2Fub25pY2FsaXplX3ZlcnNp
b24oJzEuNC4wLjAuMCcpCisgICAgICAgICcxLjQnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2lu
Zy9kb2NzL3ZlcnNpb24ucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy92ZXJzaW9uLnJzdApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNDNjZjc4NjhlOTAxZWEyMGE1YmU0MDk0OWY0YWQ1YmZiMzVlZmYzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy92ZXJzaW9uLnJzdApAQCAtMCwwICsxLDI5
MiBAQAorVmVyc2lvbiBIYW5kbGluZworPT09PT09PT09PT09PT09PQorCisuLiBjdXJyZW50bW9k
dWxlOjogcGFja2FnaW5nLnZlcnNpb24KKworQSBjb3JlIHJlcXVpcmVtZW50IG9mIGRlYWxpbmcg
d2l0aCBwYWNrYWdlcyBpcyB0aGUgYWJpbGl0eSB0byB3b3JrIHdpdGgKK3ZlcnNpb25zLiBgUEVQ
IDQ0MGBfIGRlZmluZXMgdGhlIHN0YW5kYXJkIHZlcnNpb24gc2NoZW1lIGZvciBQeXRob24gcGFj
a2FnZXMKK3doaWNoIGhhcyBiZWVuIGltcGxlbWVudGVkIGJ5IHRoaXMgbW9kdWxlLgorCitVc2Fn
ZQorLS0tLS0KKworLi4gZG9jdGVzdDo6CisKKyAgICA+Pj4gZnJvbSBwYWNrYWdpbmcudmVyc2lv
biBpbXBvcnQgVmVyc2lvbiwgcGFyc2UKKyAgICA+Pj4gdjEgPSBwYXJzZSgiMS4wYTUiKQorICAg
ID4+PiB2MiA9IFZlcnNpb24oIjEuMCIpCisgICAgPj4+IHYxCisgICAgPFZlcnNpb24oJzEuMGE1
Jyk+CisgICAgPj4+IHYyCisgICAgPFZlcnNpb24oJzEuMCcpPgorICAgID4+PiB2MSA8IHYyCisg
ICAgVHJ1ZQorICAgID4+PiB2MS5lcG9jaAorICAgIDAKKyAgICA+Pj4gdjEucmVsZWFzZQorICAg
ICgxLCAwKQorICAgID4+PiB2MS5wcmUKKyAgICAoJ2EnLCA1KQorICAgID4+PiB2MS5pc19wcmVy
ZWxlYXNlCisgICAgVHJ1ZQorICAgID4+PiB2Mi5pc19wcmVyZWxlYXNlCisgICAgRmFsc2UKKyAg
ICA+Pj4gVmVyc2lvbigiZnJlbmNoIHRvYXN0IikKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CisgICAgICAgIC4uLgorICAgIEludmFsaWRWZXJzaW9uOiBJbnZhbGlkIHZl
cnNpb246ICdmcmVuY2ggdG9hc3QnCisgICAgPj4+IFZlcnNpb24oIjEuMCIpLnBvc3QKKyAgICA+
Pj4gVmVyc2lvbigiMS4wIikuaXNfcG9zdHJlbGVhc2UKKyAgICBGYWxzZQorICAgID4+PiBWZXJz
aW9uKCIxLjAucG9zdDAiKS5wb3N0CisgICAgMAorICAgID4+PiBWZXJzaW9uKCIxLjAucG9zdDAi
KS5pc19wb3N0cmVsZWFzZQorICAgIFRydWUKKworCitSZWZlcmVuY2UKKy0tLS0tLS0tLQorCisu
LiBmdW5jdGlvbjo6IHBhcnNlKHZlcnNpb24pCisKKyAgICBUaGlzIGZ1bmN0aW9uIHRha2VzIGEg
dmVyc2lvbiBzdHJpbmcgYW5kIHdpbGwgcGFyc2UgaXQgYXMgYQorICAgIDpjbGFzczpgVmVyc2lv
bmAgaWYgdGhlIHZlcnNpb24gaXMgYSB2YWxpZCBQRVAgNDQwIHZlcnNpb24sIG90aGVyd2lzZSBp
dAorICAgIHdpbGwgcGFyc2UgaXQgYXMgYSBkZXByZWNhdGVkIDpjbGFzczpgTGVnYWN5VmVyc2lv
bmAuCisKKworLi4gY2xhc3M6OiBWZXJzaW9uKHZlcnNpb24pCisKKyAgICBUaGlzIGNsYXNzIGFi
c3RyYWN0cyBoYW5kbGluZyBvZiBhIHByb2plY3QncyB2ZXJzaW9ucy4gSXQgaW1wbGVtZW50cyB0
aGUKKyAgICBzY2hlbWUgZGVmaW5lZCBpbiBgUEVQIDQ0MGBfLiBBIDpjbGFzczpgVmVyc2lvbmAg
aW5zdGFuY2UgaXMgY29tcGFyaXNvbgorICAgIGF3YXJlIGFuZCBjYW4gYmUgY29tcGFyZWQgYW5k
IHNvcnRlZCB1c2luZyB0aGUgc3RhbmRhcmQgUHl0aG9uIGludGVyZmFjZXMuCisKKyAgICA6cGFy
YW0gc3RyIHZlcnNpb246IFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSB2ZXJzaW9uIHdo
aWNoIHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZCBhbmQgbm9ybWFsaXpl
ZCBiZWZvcmUgdXNlLgorICAgIDpyYWlzZXMgSW52YWxpZFZlcnNpb246IElmIHRoZSBgYHZlcnNp
b25gYCBkb2VzIG5vdCBjb25mb3JtIHRvIFBFUCA0NDAgaW4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhbnkgd2F5IHRoZW4gdGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQuCisKKyAg
ICAuLiBhdHRyaWJ1dGU6OiBwdWJsaWMKKworICAgICAgICBBIHN0cmluZyByZXByZXNlbnRpbmcg
dGhlIHB1YmxpYyB2ZXJzaW9uIHBvcnRpb24gb2YgdGhpcyBgYFZlcnNpb24oKWBgLgorCisgICAg
Li4gYXR0cmlidXRlOjogYmFzZV92ZXJzaW9uCisKKyAgICAgICAgQSBzdHJpbmcgcmVwcmVzZW50
aW5nIHRoZSBiYXNlIHZlcnNpb24gb2YgdGhpcyA6Y2xhc3M6YFZlcnNpb25gCisgICAgICAgIGlu
c3RhbmNlLiBUaGUgYmFzZSB2ZXJzaW9uIGlzIHRoZSBwdWJsaWMgdmVyc2lvbiBvZiB0aGUgcHJv
amVjdCB3aXRob3V0CisgICAgICAgIGFueSBwcmUgb3IgcG9zdCByZWxlYXNlIG1hcmtlcnMuCisK
KyAgICAuLiBhdHRyaWJ1dGU6OiBlcG9jaAorCisgICAgICAgIEFuIGludGVnZXIgZ2l2aW5nIHRo
ZSB2ZXJzaW9uIGVwb2NoIG9mIHRoaXMgOmNsYXNzOmBWZXJzaW9uYCBpbnN0YW5jZQorCisgICAg
Li4gYXR0cmlidXRlOjogcmVsZWFzZQorCisgICAgICAgIEEgdHVwbGUgb2YgaW50ZWdlcnMgZ2l2
aW5nIHRoZSBjb21wb25lbnRzIG9mIHRoZSByZWxlYXNlIHNlZ21lbnQgb2YKKyAgICAgICAgdGhp
cyA6Y2xhc3M6YFZlcnNpb25gIGluc3RhbmNlOyB0aGF0IGlzLCB0aGUgYGAxLjIuM2BgIHBhcnQg
b2YgdGhlCisgICAgICAgIHZlcnNpb24gbnVtYmVyLCBpbmNsdWRpbmcgdHJhaWxpbmcgemVyb2Vz
IGJ1dCBub3QgaW5jbHVkaW5nIHRoZSBlcG9jaAorICAgICAgICBvciBhbnkgcHJlcmVsZWFzZS9k
ZXZlbG9wbWVudC9wb3N0cmVsZWFzZSBzdWZmaXhlcworCisgICAgLi4gYXR0cmlidXRlOjogbWFq
b3IKKworICAgICAgICBBbiBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgZmlyc3QgaXRlbSBvZiA6
YXR0cjpgcmVsZWFzZWAgb3IgYGAwYGAgaWYgdW5hdmFpbGFibGUuCisKKyAgICAuLiBhdHRyaWJ1
dGU6OiBtaW5vcgorCisgICAgICAgIEFuIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZSBzZWNvbmQg
aXRlbSBvZiA6YXR0cjpgcmVsZWFzZWAgb3IgYGAwYGAgaWYgdW5hdmFpbGFibGUuCisKKyAgICAu
LiBhdHRyaWJ1dGU6OiBtaWNybworCisgICAgICAgIEFuIGludGVnZXIgcmVwcmVzZW50aW5nIHRo
ZSB0aGlyZCBpdGVtIG9mIDphdHRyOmByZWxlYXNlYCBvciBgYDBgYCBpZiB1bmF2YWlsYWJsZS4K
KworICAgIC4uIGF0dHJpYnV0ZTo6IGxvY2FsCisKKyAgICAgICAgQSBzdHJpbmcgcmVwcmVzZW50
aW5nIHRoZSBsb2NhbCB2ZXJzaW9uIHBvcnRpb24gb2YgdGhpcyBgYFZlcnNpb24oKWBgCisgICAg
ICAgIGlmIGl0IGhhcyBvbmUsIG9yIGBgTm9uZWBgIG90aGVyd2lzZS4KKworICAgIC4uIGF0dHJp
YnV0ZTo6IHByZQorCisgICAgICAgIElmIHRoaXMgOmNsYXNzOmBWZXJzaW9uYCBpbnN0YW5jZSBy
ZXByZXNlbnRzIGEgcHJlcmVsZWFzZSwgdGhpcworICAgICAgICBhdHRyaWJ1dGUgd2lsbCBiZSBh
IHBhaXIgb2YgdGhlIHByZXJlbGVhc2UgcGhhc2UgKHRoZSBzdHJpbmcgYGAiYSJgYCwKKyAgICAg
ICAgYGAiYiJgYCwgb3IgYGAicmMiYGApIGFuZCB0aGUgcHJlcmVsZWFzZSBudW1iZXIgKGFuIGlu
dGVnZXIpLiAgSWYgdGhpcworICAgICAgICBpbnN0YW5jZSBpcyBub3QgYSBwcmVyZWxlYXNlLCB0
aGUgYXR0cmlidXRlIHdpbGwgYmUgYE5vbmVgLgorCisgICAgLi4gYXR0cmlidXRlOjogaXNfcHJl
cmVsZWFzZQorCisgICAgICAgIEEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhp
cyA6Y2xhc3M6YFZlcnNpb25gIGluc3RhbmNlCisgICAgICAgIHJlcHJlc2VudHMgYSBwcmVyZWxl
YXNlIGFuZC9vciBkZXZlbG9wbWVudCByZWxlYXNlLgorCisgICAgLi4gYXR0cmlidXRlOjogZGV2
CisKKyAgICAgICAgSWYgdGhpcyA6Y2xhc3M6YFZlcnNpb25gIGluc3RhbmNlIHJlcHJlc2VudHMg
YSBkZXZlbG9wbWVudCByZWxlYXNlLAorICAgICAgICB0aGlzIGF0dHJpYnV0ZSB3aWxsIGJlIHRo
ZSBkZXZlbG9wbWVudCByZWxlYXNlIG51bWJlciAoYW4gaW50ZWdlcik7CisgICAgICAgIG90aGVy
d2lzZSwgaXQgd2lsbCBiZSBgTm9uZWAuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBpc19kZXZyZWxl
YXNlCisKKyAgICAgICAgQSBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGlzIDpj
bGFzczpgVmVyc2lvbmAgaW5zdGFuY2UKKyAgICAgICAgcmVwcmVzZW50cyBhIGRldmVsb3BtZW50
IHJlbGVhc2UuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBwb3N0CisKKyAgICAgICAgSWYgdGhpcyA6
Y2xhc3M6YFZlcnNpb25gIGluc3RhbmNlIHJlcHJlc2VudHMgYSBwb3N0cmVsZWFzZSwgdGhpcwor
ICAgICAgICBhdHRyaWJ1dGUgd2lsbCBiZSB0aGUgcG9zdHJlbGVhc2UgbnVtYmVyIChhbiBpbnRl
Z2VyKTsgb3RoZXJ3aXNlLCBpdAorICAgICAgICB3aWxsIGJlIGBOb25lYC4KKworICAgIC4uIGF0
dHJpYnV0ZTo6IGlzX3Bvc3RyZWxlYXNlCisKKyAgICAgICAgQSBib29sZWFuIHZhbHVlIGluZGlj
YXRpbmcgd2hldGhlciB0aGlzIDpjbGFzczpgVmVyc2lvbmAgaW5zdGFuY2UKKyAgICAgICAgcmVw
cmVzZW50cyBhIHBvc3QtcmVsZWFzZS4KKworCisuLiBjbGFzczo6IExlZ2FjeVZlcnNpb24odmVy
c2lvbikKKworICAgIC4uIGRlcHJlY2F0ZWQ6OiAyMC41CisKKyAgICAgICAgVXNlIDpjbGFzczpg
VmVyc2lvbmAgaW5zdGVhZC4KKworICAgIFRoaXMgY2xhc3MgYWJzdHJhY3RzIGhhbmRsaW5nIG9m
IGEgcHJvamVjdCdzIHZlcnNpb25zIGlmIHRoZXkgYXJlIG5vdAorICAgIGNvbXBhdGlibGUgd2l0
aCB0aGUgc2NoZW1lIGRlZmluZWQgaW4gYFBFUCA0NDBgXy4gSXQgaW1wbGVtZW50cyBhIHNpbWls
YXIKKyAgICBpbnRlcmZhY2UgdG8gdGhhdCBvZiA6Y2xhc3M6YFZlcnNpb25gLgorCisgICAgVGhp
cyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBwcmV2aW91cyBkZSBmYWN0byBzb3J0aW5nIGFsZ29yaXRo
bSB1c2VkIGJ5CisgICAgc2V0dXB0b29scywgaG93ZXZlciBpdCB3aWxsIGFsd2F5cyBzb3J0IGFz
IGxlc3MgdGhhbiBhIDpjbGFzczpgVmVyc2lvbmAKKyAgICBpbnN0YW5jZS4KKworICAgIDpwYXJh
bSBzdHIgdmVyc2lvbjogVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIHZlcnNpb24gd2hp
Y2ggd2lsbCBiZQorICAgICAgICAgICAgICAgICAgICAgICAgdXNlZCBhcyBpcy4KKworICAgIC4u
IG5vdGU6OgorCisgICAgICAgIDpjbGFzczpgTGVnYWN5VmVyc2lvbmAgaW5zdGFuY2VzIGFyZSBh
bHdheXMgb3JkZXJlZCBsb3dlciB0aGFuIDpjbGFzczpgVmVyc2lvbmAgaW5zdGFuY2VzLgorCisg
ICAgICAgID4+PiBmcm9tIHBhY2thZ2luZy52ZXJzaW9uIGltcG9ydCBWZXJzaW9uLCBMZWdhY3lW
ZXJzaW9uCisgICAgICAgID4+PiB2MSA9IFZlcnNpb24oIjEuMCIpCisgICAgICAgID4+PiB2MiA9
IExlZ2FjeVZlcnNpb24oIjEuMCIpCisgICAgICAgID4+PiB2MSA+IHYyCisgICAgICAgIFRydWUK
KyAgICAgICAgPj4+IHYzID0gTGVnYWN5VmVyc2lvbigiMS4zIikKKyAgICAgICAgPj4+IHYxID4g
djMKKyAgICAgICAgVHJ1ZQorCisgICAgICAgIEFsc28gbm90ZSB0aGF0IHNvbWUgc3RyaW5ncyBh
cmUgc3RpbGwgdmFsaWQgUEVQIDQ0MCBzdHJpbmdzICg6Y2xhc3M6YFZlcnNpb25gKSwgZXZlbiBp
ZiB0aGV5IGxvb2sgdmVyeSBzaW1pbGFyIHRvCisgICAgICAgIG90aGVyIHZlcnNpb25zIHRoYXQg
YXJlIG5vdCAoOmNsYXNzOmBMZWdhY3lWZXJzaW9uYCkuIEV4YW1wbGVzIGluY2x1ZGUgdmVyc2lv
bnMgd2l0aCBgUHJlLXJlbGVhc2Ugc3BlbGxpbmdgXyBhbmQKKyAgICAgICAgYFBvc3QtcmVsZWFz
ZSBzcGVsbGluZ2BfLgorCisgICAgICAgID4+PiBmcm9tIHBhY2thZ2luZy52ZXJzaW9uIGltcG9y
dCBwYXJzZQorICAgICAgICA+Pj4gdjEgPSBwYXJzZSgnMC45LjhhJykKKyAgICAgICAgPj4+IHYy
ID0gcGFyc2UoJzAuOS44YmV0YScpCisgICAgICAgID4+PiB2MyA9IHBhcnNlKCcwLjkuOHInKQor
ICAgICAgICA+Pj4gdjQgPSBwYXJzZSgnMC45LjhyZXYnKQorICAgICAgICA+Pj4gdjUgPSBwYXJz
ZSgnMC45Ljh0JykKKyAgICAgICAgPj4+IHYxCisgICAgICAgIDxWZXJzaW9uKCcwLjkuOGEwJyk+
CisgICAgICAgID4+PiB2MS5pc19wcmVyZWxlYXNlCisgICAgICAgIFRydWUKKyAgICAgICAgPj4+
IHYyCisgICAgICAgIDxWZXJzaW9uKCcwLjkuOGIwJyk+CisgICAgICAgID4+PiB2Mi5pc19wcmVy
ZWxlYXNlCisgICAgICAgIFRydWUKKyAgICAgICAgPj4+IHYzCisgICAgICAgIDxWZXJzaW9uKCcw
LjkuOC5wb3N0MCcpPgorICAgICAgICA+Pj4gdjMuaXNfcG9zdHJlbGVhc2UKKyAgICAgICAgVHJ1
ZQorICAgICAgICA+Pj4gdjQKKyAgICAgICAgPFZlcnNpb24oJzAuOS44LnBvc3QwJyk+CisgICAg
ICAgID4+PiB2NC5pc19wb3N0cmVsZWFzZQorICAgICAgICBUcnVlCisgICAgICAgID4+PiB2NQor
ICAgICAgICA8TGVnYWN5VmVyc2lvbignMC45Ljh0Jyk+CisgICAgICAgID4+PiB2NS5pc19wcmVy
ZWxlYXNlCisgICAgICAgIEZhbHNlCisgICAgICAgID4+PiB2NS5pc19wb3N0cmVsZWFzZQorICAg
ICAgICBGYWxzZQorCisgICAgLi4gYXR0cmlidXRlOjogcHVibGljCisKKyAgICAgICAgQSBzdHJp
bmcgcmVwcmVzZW50aW5nIHRoZSBwdWJsaWMgdmVyc2lvbiBwb3J0aW9uIG9mIHRoaXMKKyAgICAg
ICAgOmNsYXNzOmBMZWdhY3lWZXJzaW9uYC4gVGhpcyB3aWxsIGFsd2F5cyBiZSB0aGUgZW50aXJl
IHZlcnNpb24gc3RyaW5nLgorCisgICAgLi4gYXR0cmlidXRlOjogYmFzZV92ZXJzaW9uCisKKyAg
ICAgICAgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBiYXNlIHZlcnNpb24gcG9ydGlvbiBvZiB0
aGlzCisgICAgICAgIDpjbGFzczpgTGVnYWN5VmVyc2lvbmAgaW5zdGFuY2UuIFRoaXMgd2lsbCBh
bHdheXMgYmUgdGhlIGVudGlyZSB2ZXJzaW9uCisgICAgICAgIHN0cmluZy4KKworICAgIC4uIGF0
dHJpYnV0ZTo6IGVwb2NoCisKKyAgICAgICAgVGhpcyB3aWxsIGFsd2F5cyBiZSBgYC0xYGAgc2lu
Y2Ugd2l0aG91dCBgUEVQIDQ0MGBfIHdlIGRvIG5vdCBoYXZlIHRoZQorICAgICAgICBjb25jZXB0
IG9mIHZlcnNpb24gZXBvY2hzLiAgVGhlIHZhbHVlIHJlZmxlY3RzIHRoZSBmYWN0IHRoYXQKKyAg
ICAgICAgOmNsYXNzOmBMZWdhY3lWZXJzaW9uYCBpbnN0YW5jZXMgYWx3YXlzIGNvbXBhcmUgbGVz
cyB0aGFuCisgICAgICAgIDpjbGFzczpgVmVyc2lvbmAgaW5zdGFuY2VzLgorCisgICAgLi4gYXR0
cmlidXRlOjogcmVsZWFzZQorCisgICAgICAgIFRoaXMgd2lsbCBhbHdheXMgYmUgYGBOb25lYGAg
c2luY2Ugd2l0aG91dCBgUEVQIDQ0MGBfIHdlIGRvIG5vdCBoYXZlCisgICAgICAgIHRoZSBjb25j
ZXB0IG9mIGEgcmVsZWFzZSBzZWdtZW50IG9yIGl0cyBjb21wb25lbnRzLiAgSXQgZXhpc3RzCisg
ICAgICAgIHByaW1hcmlseSB0byBhbGxvdyBhIDpjbGFzczpgTGVnYWN5VmVyc2lvbmAgdG8gYmUg
dXNlZCBhcyBhIHN0YW5kIGluCisgICAgICAgIGZvciBhIDpjbGFzczpgVmVyc2lvbmAuCisKKyAg
ICAuLiBhdHRyaWJ1dGU6OiBsb2NhbAorCisgICAgICAgIFRoaXMgd2lsbCBhbHdheXMgYmUgYGBO
b25lYGAgc2luY2Ugd2l0aG91dCBgUEVQIDQ0MGBfIHdlIGRvIG5vdCBoYXZlCisgICAgICAgIHRo
ZSBjb25jZXB0IG9mIGEgbG9jYWwgdmVyc2lvbi4gSXQgZXhpc3RzIHByaW1hcmlseSB0byBhbGxv
dyBhCisgICAgICAgIDpjbGFzczpgTGVnYWN5VmVyc2lvbmAgdG8gYmUgdXNlZCBhcyBhIHN0YW5k
IGluIGZvciBhIDpjbGFzczpgVmVyc2lvbmAuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBwcmUKKwor
ICAgICAgICBUaGlzIHdpbGwgYWx3YXlzIGJlIGBgTm9uZWBgIHNpbmNlIHdpdGhvdXQgYFBFUCA0
NDBgXyB3ZSBkbyBub3QgaGF2ZQorICAgICAgICB0aGUgY29uY2VwdCBvZiBhIHByZXJlbGVhc2Uu
IEl0IGV4aXN0cyBwcmltYXJpbHkgdG8gYWxsb3cgYQorICAgICAgICA6Y2xhc3M6YExlZ2FjeVZl
cnNpb25gIHRvIGJlIHVzZWQgYXMgYSBzdGFuZCBpbiBmb3IgYSA6Y2xhc3M6YFZlcnNpb25gLgor
CisgICAgLi4gYXR0cmlidXRlOjogaXNfcHJlcmVsZWFzZQorCisgICAgICAgIEEgYm9vbGVhbiB2
YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyA6Y2xhc3M6YExlZ2FjeVZlcnNpb25gCisgICAg
ICAgIHJlcHJlc2VudHMgYSBwcmVyZWxlYXNlIGFuZC9vciBkZXZlbG9wbWVudCByZWxlYXNlLiAg
U2luY2Ugd2l0aG91dAorICAgICAgICBgUEVQIDQ0MGBfIHRoZXJlIGlzIG5vIGNvbmNlcHQgb2Yg
cHJlIG9yIGRldiByZWxlYXNlcyB0aGlzIHdpbGwKKyAgICAgICAgYWx3YXlzIGJlIGBGYWxzZWAg
YW5kIGV4aXN0cyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIDpjbGFzczpgVmVyc2lvbmAuCisKKyAg
ICAuLiBhdHRyaWJ1dGU6OiBkZXYKKworICAgICAgICBUaGlzIHdpbGwgYWx3YXlzIGJlIGBgTm9u
ZWBgIHNpbmNlIHdpdGhvdXQgYFBFUCA0NDBgXyB3ZSBkbyBub3QgaGF2ZQorICAgICAgICB0aGUg
Y29uY2VwdCBvZiBhIGRldmVsb3BtZW50IHJlbGVhc2UuIEl0IGV4aXN0cyBwcmltYXJpbHkgdG8g
YWxsb3cgYQorICAgICAgICA6Y2xhc3M6YExlZ2FjeVZlcnNpb25gIHRvIGJlIHVzZWQgYXMgYSBz
dGFuZCBpbiBmb3IgYSA6Y2xhc3M6YFZlcnNpb25gLgorCisgICAgLi4gYXR0cmlidXRlOjogaXNf
ZGV2cmVsZWFzZQorCisgICAgICAgIEEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIg
dGhpcyA6Y2xhc3M6YExlZ2FjeVZlcnNpb25gCisgICAgICAgIHJlcHJlc2VudHMgYSBkZXZlbG9w
bWVudCByZWxlYXNlLiAgU2luY2Ugd2l0aG91dCBgUEVQIDQ0MGBfIHRoZXJlIGlzCisgICAgICAg
IG5vIGNvbmNlcHQgb2YgZGV2IHJlbGVhc2VzIHRoaXMgd2lsbCBhbHdheXMgYmUgYEZhbHNlYCBh
bmQgZXhpc3RzIGZvcgorICAgICAgICBjb21wYXRpYmlsaXR5IHdpdGggOmNsYXNzOmBWZXJzaW9u
YC4KKworICAgIC4uIGF0dHJpYnV0ZTo6IHBvc3QKKworICAgICAgICBUaGlzIHdpbGwgYWx3YXlz
IGJlIGBgTm9uZWBgIHNpbmNlIHdpdGhvdXQgYFBFUCA0NDBgXyB3ZSBkbyBub3QgaGF2ZQorICAg
ICAgICB0aGUgY29uY2VwdCBvZiBhIHBvc3RyZWxlYXNlLiBJdCBleGlzdHMgcHJpbWFyaWx5IHRv
IGFsbG93IGEKKyAgICAgICAgOmNsYXNzOmBMZWdhY3lWZXJzaW9uYCB0byBiZSB1c2VkIGFzIGEg
c3RhbmQgaW4gZm9yIGEgOmNsYXNzOmBWZXJzaW9uYC4KKworICAgIC4uIGF0dHJpYnV0ZTo6IGlz
X3Bvc3RyZWxlYXNlCisKKyAgICAgICAgQSBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhl
ciB0aGlzIDpjbGFzczpgTGVnYWN5VmVyc2lvbmAKKyAgICAgICAgcmVwcmVzZW50cyBhIHBvc3Qt
cmVsZWFzZS4gU2luY2Ugd2l0aG91dCBgUEVQIDQ0MGBfIHRoZXJlIGlzIG5vIGNvbmNlcHQKKyAg
ICAgICAgb2YgcG9zdC1yZWxlYXNlcyB0aGlzIHdpbGwgYWx3YXlzIGJlIGBgRmFsc2VgYCBhbmQg
ZXhpc3RzIGZvcgorICAgICAgICBjb21wYXRpYmlsaXR5IHdpdGggOmNsYXNzOmBWZXJzaW9uYC4K
KworCisuLiBleGNlcHRpb246OiBJbnZhbGlkVmVyc2lvbgorCisgICAgUmFpc2VkIHdoZW4gYXR0
ZW1wdGluZyB0byBjcmVhdGUgYSA6Y2xhc3M6YFZlcnNpb25gIHdpdGggYSB2ZXJzaW9uIHN0cmlu
ZworICAgIHRoYXQgZG9lcyBub3QgY29uZm9ybSB0byBgUEVQIDQ0MGBfLgorCisKKy4uIGRhdGE6
OiBWRVJTSU9OX1BBVFRFUk4KKworICAgIEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHJlZ3VsYXIg
ZXhwcmVzc2lvbiB1c2VkIHRvIG1hdGNoIGEgdmFsaWQgdmVyc2lvbi4KKyAgICBUaGUgcGF0dGVy
biBpcyBub3QgYW5jaG9yZWQgYXQgZWl0aGVyIGVuZCwgYW5kIGlzIGludGVuZGVkIGZvciBlbWJl
ZGRpbmcKKyAgICBpbiBsYXJnZXIgZXhwcmVzc2lvbnMgKGZvciBleGFtcGxlLCBtYXRjaGluZyBh
IHZlcnNpb24gbnVtYmVyIGFzIHBhcnQgb2YKKyAgICBhIGZpbGUgbmFtZSkuIFRoZSByZWd1bGFy
IGV4cHJlc3Npb24gc2hvdWxkIGJlIGNvbXBpbGVkIHdpdGggdGhlCisgICAgYGByZS5WRVJCT1NF
YGAgYW5kIGBgcmUuSUdOT1JFQ0FTRWBgIGZsYWdzIHNldC4KKworCisuLiBfUEVQIDQ0MDogaHR0
cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQ0MC8KKy4uIF9QcmUtcmVsZWFzZSBz
cGVsbGluZyA6IGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTA0NDAvI3ByZS1y
ZWxlYXNlLXNwZWxsaW5nCisuLiBfUG9zdC1yZWxlYXNlIHNwZWxsaW5nIDogaHR0cHM6Ly93d3cu
cHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDQ0MC8jcG9zdC1yZWxlYXNlLXNwZWxsaW5nCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdp
bmcvZG9jcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjY4NTI5OTg0MzY2ZGYxMjViMmM2
NmQ4ZmRjMmJmOTU3YjNiYjcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9j
cy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2lu
Zy9kb2NzL01ha2VmaWxlCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9jaGFuZ2Vsb2cucnN0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvZG9jcy9jb25mLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9pbmRleC5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy9kb2NzL21hcmtlcnMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9y
ZXF1aXJlbWVudHMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9yZXF1aXJlbWVudHMudHh0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvZG9jcy9zZWN1cml0eS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3Nw
ZWNpZmllcnMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy90YWdzLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL2RvY3MvdXRpbHMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy92ZXJzaW9uLnJzdApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvbXlweS5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9teXB5Lmlu
aQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMTk3MzQ4NTUwMzVhOGJhMzhhZWZiN2Q5NmMzODk5MWRhNjFkNzFkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvbXlweS5pbmkKQEAgLTAsMCArMSwyMCBA
QAorW215cHldCitpZ25vcmVfbWlzc2luZ19pbXBvcnRzID0gVHJ1ZQorCisjIFRoZSBmb2xsb3dp
bmcgYXJlIHRoZSBmbGFncyBlbmFibGVkIGJ5IC0tc3RyaWN0CisjCisjIE5vdGU6IHdhcm5fdW51
c2VkX2lnbm9yZXMgaXMgRmFsc2UgZHVlIHRvIGluY29ycmVjdCB0eXBlc2hlZCBhbm5vdGF0aW9u
cyBmb3IKKyMgcGxhdGZvcm0ubWFjX3ZlcigpCit3YXJuX3VudXNlZF9jb25maWdzID0gVHJ1ZQor
ZGlzYWxsb3dfc3ViY2xhc3NpbmdfYW55ID0gVHJ1ZQorZGlzYWxsb3dfYW55X2dlbmVyaWNzID0g
VHJ1ZQorZGlzYWxsb3dfdW50eXBlZF9jYWxscyA9IFRydWUKK2Rpc2FsbG93X3VudHlwZWRfZGVm
cyA9IFRydWUKK2Rpc2FsbG93X2luY29tcGxldGVfZGVmcyA9IFRydWUKK2NoZWNrX3VudHlwZWRf
ZGVmcyA9IFRydWUKK2Rpc2FsbG93X3VudHlwZWRfZGVjb3JhdG9ycyA9IFRydWUKK25vX2ltcGxp
Y2l0X29wdGlvbmFsID0gVHJ1ZQord2Fybl9yZWR1bmRhbnRfY2FzdHMgPSBUcnVlCit3YXJuX3Vu
dXNlZF9pZ25vcmVzID0gRmFsc2UKK3dhcm5fcmV0dXJuX2FueSA9IFRydWUKK25vX2ltcGxpY2l0
X3JlZXhwb3J0ID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvbm94ZmlsZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL25veGZpbGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU4NDVhYjgwNDc3OGZkM2Zm
ODY3MDU2ZDc4YTRkZmY5N2ZjYTdiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L25veGZpbGUucHkKQEAgLTAsMCArMSwzMDkgQEAKKyMgbXlweTogZGlzYWxsb3ctdW50eXBlZC1k
ZWZzPUZhbHNlLCBkaXNhbGxvdy11bnR5cGVkLWNhbGxzPUZhbHNlCisKK2ltcG9ydCB0aW1lCitp
bXBvcnQgcmUKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0IGdsb2IKK2ltcG9ydCBzaHV0
aWwKK2ltcG9ydCBkaWZmbGliCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB0ZXh0d3JhcAoraW1w
b3J0IGRhdGV0aW1lCitpbXBvcnQgY29udGV4dGxpYgoraW1wb3J0IHN1YnByb2Nlc3MKK2Zyb20g
cGF0aGxpYiBpbXBvcnQgUGF0aAorCitpbXBvcnQgbm94CisKK25veC5vcHRpb25zLnNlc3Npb25z
ID0gWyJsaW50Il0KK25veC5vcHRpb25zLnJldXNlX2V4aXN0aW5nX3ZpcnR1YWxlbnZzID0gVHJ1
ZQorCisKK0Bub3guc2Vzc2lvbihweXRob249WyIyLjciLCAiMy40IiwgIjMuNSIsICIzLjYiLCAi
My43IiwgIjMuOCIsICIzLjkiLCAicHlweSIsICJweXB5MyJdKQorZGVmIHRlc3RzKHNlc3Npb24p
OgorICAgIGRlZiBjb3ZlcmFnZSgqYXJncyk6CisgICAgICAgIHNlc3Npb24ucnVuKCJweXRob24i
LCAiLW0iLCAiY292ZXJhZ2UiLCAqYXJncykKKworICAgICMgT25jZSBjb3ZlcmFnZSA1IGlzIHVz
ZWQgdGhlbiBgLmNvdmVyYWdlYCBjYW4gbW92ZSBpbnRvIGBweXByb2plY3QudG9tbGAuCisgICAg
c2Vzc2lvbi5pbnN0YWxsKCJjb3ZlcmFnZTw1LjAuMCIsICJwcmV0ZW5kIiwgInB5dGVzdCIsICJw
aXA+PTkuMC4yIikKKworICAgIGlmICJweXB5IiBub3QgaW4gc2Vzc2lvbi5weXRob246CisgICAg
ICAgIGNvdmVyYWdlKAorICAgICAgICAgICAgInJ1biIsCisgICAgICAgICAgICAiLS1zb3VyY2Ui
LAorICAgICAgICAgICAgInBhY2thZ2luZy8iLAorICAgICAgICAgICAgIi1tIiwKKyAgICAgICAg
ICAgICJweXRlc3QiLAorICAgICAgICAgICAgIi0tc3RyaWN0IiwKKyAgICAgICAgICAgICpzZXNz
aW9uLnBvc2FyZ3MsCisgICAgICAgICkKKyAgICAgICAgY292ZXJhZ2UoInJlcG9ydCIsICItbSIs
ICItLWZhaWwtdW5kZXIiLCAiMTAwIikKKyAgICBlbHNlOgorICAgICAgICAjIERvbid0IGRvIGNv
dmVyYWdlIHRyYWNraW5nIGZvciBQeVB5LCBzaW5jZSBpdCdzIFNMT1cuCisgICAgICAgIHNlc3Np
b24ucnVuKAorICAgICAgICAgICAgInB5dGhvbiIsICItbSIsICJweXRlc3QiLCAiLS1jYXB0dXJl
PW5vIiwgIi0tc3RyaWN0IiwgKnNlc3Npb24ucG9zYXJncworICAgICAgICApCisKKworQG5veC5z
ZXNzaW9uKHB5dGhvbj0iMy45IikKK2RlZiBsaW50KHNlc3Npb24pOgorICAgICMgUnVuIHRoZSBs
aW50ZXJzICh2aWEgcHJlLWNvbW1pdCkKKyAgICBzZXNzaW9uLmluc3RhbGwoInByZS1jb21taXQi
KQorICAgIHNlc3Npb24ucnVuKCJwcmUtY29tbWl0IiwgInJ1biIsICItLWFsbC1maWxlcyIpCisK
KyAgICAjIENoZWNrIHRoZSBkaXN0cmlidXRpb24KKyAgICBzZXNzaW9uLmluc3RhbGwoImJ1aWxk
IiwgInR3aW5lIikKKyAgICBzZXNzaW9uLnJ1bigicHl0aG9uIiwgIi1tIiwgImJ1aWxkIikKKyAg
ICBzZXNzaW9uLnJ1bigidHdpbmUiLCAiY2hlY2siLCAqZ2xvYi5nbG9iKCJkaXN0LyoiKSkKKwor
CitAbm94LnNlc3Npb24ocHl0aG9uPSIzLjkiKQorZGVmIGRvY3Moc2Vzc2lvbik6CisgICAgc2h1
dGlsLnJtdHJlZSgiZG9jcy9fYnVpbGQiLCBpZ25vcmVfZXJyb3JzPVRydWUpCisgICAgc2Vzc2lv
bi5pbnN0YWxsKCJmdXJvIikKKworICAgIHZhcmlhbnRzID0gWworICAgICAgICAjIChidWlsZGVy
LCBkZXN0KQorICAgICAgICAoImh0bWwiLCAiaHRtbCIpLAorICAgICAgICAoImxhdGV4IiwgImxh
dGV4IiksCisgICAgICAgICgiZG9jdGVzdCIsICJodG1sIiksCisgICAgXQorCisgICAgZm9yIGJ1
aWxkZXIsIGRlc3QgaW4gdmFyaWFudHM6CisgICAgICAgIHNlc3Npb24ucnVuKAorICAgICAgICAg
ICAgInNwaGlueC1idWlsZCIsCisgICAgICAgICAgICAiLVciLAorICAgICAgICAgICAgIi1iIiwK
KyAgICAgICAgICAgIGJ1aWxkZXIsCisgICAgICAgICAgICAiLWQiLAorICAgICAgICAgICAgImRv
Y3MvX2J1aWxkL2RvY3RyZWVzLyIgKyBkZXN0LAorICAgICAgICAgICAgImRvY3MiLCAgIyBzb3Vy
Y2UgZGlyZWN0b3J5CisgICAgICAgICAgICAiZG9jcy9fYnVpbGQvIiArIGRlc3QsICAjIG91dHB1
dCBkaXJlY3RvcnkKKyAgICAgICAgKQorCisKK0Bub3guc2Vzc2lvbgorZGVmIHJlbGVhc2Uoc2Vz
c2lvbik6CisgICAgcGFja2FnZV9uYW1lID0gInBhY2thZ2luZyIKKyAgICB2ZXJzaW9uX2ZpbGUg
PSBQYXRoKGYie3BhY2thZ2VfbmFtZX0vX19pbml0X18ucHkiKQorICAgIGNoYW5nZWxvZ19maWxl
ID0gUGF0aCgiQ0hBTkdFTE9HLnJzdCIpCisKKyAgICB0cnk6CisgICAgICAgIHJlbGVhc2VfdmVy
c2lvbiA9IF9nZXRfdmVyc2lvbl9mcm9tX2FyZ3VtZW50cyhzZXNzaW9uLnBvc2FyZ3MpCisgICAg
ZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKKyAgICAgICAgc2Vzc2lvbi5lcnJvcihmIkludmFsaWQg
YXJndW1lbnRzOiB7ZX0iKQorCisgICAgIyBDaGVjayBzdGF0ZSBvZiB3b3JraW5nIGRpcmVjdG9y
eSBhbmQgZ2l0LgorICAgIF9jaGVja193b3JraW5nX2RpcmVjdG9yeV9zdGF0ZShzZXNzaW9uKQor
ICAgIF9jaGVja19naXRfc3RhdGUoc2Vzc2lvbiwgcmVsZWFzZV92ZXJzaW9uKQorCisgICAgIyBQ
cmVwYXJlIGZvciByZWxlYXNlLgorICAgIF9jaGFuZ2Vsb2dfdXBkYXRlX3VucmVsZWFzZWRfdGl0
bGUocmVsZWFzZV92ZXJzaW9uLCBmaWxlPWNoYW5nZWxvZ19maWxlKQorICAgIHNlc3Npb24ucnVu
KCJnaXQiLCAiYWRkIiwgc3RyKGNoYW5nZWxvZ19maWxlKSwgZXh0ZXJuYWw9VHJ1ZSkKKyAgICBf
YnVtcChzZXNzaW9uLCB2ZXJzaW9uPXJlbGVhc2VfdmVyc2lvbiwgZmlsZT12ZXJzaW9uX2ZpbGUs
IGtpbmQ9InJlbGVhc2UiKQorCisgICAgIyBUYWcgdGhlIHJlbGVhc2UgY29tbWl0LgorICAgICMg
Zm10OiBvZmYKKyAgICBzZXNzaW9uLnJ1bigKKyAgICAgICAgImdpdCIsICJ0YWciLAorICAgICAg
ICAiLXMiLCByZWxlYXNlX3ZlcnNpb24sCisgICAgICAgICItbSIsIGYiUmVsZWFzZSB7cmVsZWFz
ZV92ZXJzaW9ufSIsCisgICAgICAgIGV4dGVybmFsPVRydWUsCisgICAgKQorICAgICMgZm10OiBv
bgorCisgICAgIyBQcmVwYXJlIGZvciBkZXZlbG9wbWVudC4KKyAgICBfY2hhbmdlbG9nX2FkZF91
bnJlbGVhc2VkX3RpdGxlKGZpbGU9Y2hhbmdlbG9nX2ZpbGUpCisgICAgc2Vzc2lvbi5ydW4oImdp
dCIsICJhZGQiLCBzdHIoY2hhbmdlbG9nX2ZpbGUpLCBleHRlcm5hbD1UcnVlKQorCisgICAgbWFq
b3IsIG1pbm9yID0gbWFwKGludCwgcmVsZWFzZV92ZXJzaW9uLnNwbGl0KCIuIikpCisgICAgbmV4
dF92ZXJzaW9uID0gZiJ7bWFqb3J9LnttaW5vciArIDF9LmRldjAiCisgICAgX2J1bXAoc2Vzc2lv
biwgdmVyc2lvbj1uZXh0X3ZlcnNpb24sIGZpbGU9dmVyc2lvbl9maWxlLCBraW5kPSJkZXZlbG9w
bWVudCIpCisKKyAgICAjIENoZWNrb3V0IHRoZSBnaXQgdGFnLgorICAgIHNlc3Npb24ucnVuKCJn
aXQiLCAiY2hlY2tvdXQiLCAiLXEiLCByZWxlYXNlX3ZlcnNpb24sIGV4dGVybmFsPVRydWUpCisK
KyAgICBzZXNzaW9uLmluc3RhbGwoImJ1aWxkIiwgInR3aW5lIikKKworICAgICMgQnVpbGQgdGhl
IGRpc3RyaWJ1dGlvbi4KKyAgICBzZXNzaW9uLnJ1bigicHl0aG9uIiwgIi1tIiwgImJ1aWxkIikK
KworICAgICMgQ2hlY2sgd2hhdCBmaWxlcyBhcmUgaW4gZGlzdC8gZm9yIHVwbG9hZC4KKyAgICBm
aWxlcyA9IHNvcnRlZChnbG9iLmdsb2IoImRpc3QvKiIpKQorICAgIGV4cGVjdGVkID0gWworICAg
ICAgICBmImRpc3Qve3BhY2thZ2VfbmFtZX0te3JlbGVhc2VfdmVyc2lvbn0tcHkyLnB5My1ub25l
LWFueS53aGwiLAorICAgICAgICBmImRpc3Qve3BhY2thZ2VfbmFtZX0te3JlbGVhc2VfdmVyc2lv
bn0udGFyLmd6IiwKKyAgICBdCisgICAgaWYgZmlsZXMgIT0gZXhwZWN0ZWQ6CisgICAgICAgIGRp
ZmZfZ2VuZXJhdG9yID0gZGlmZmxpYi5jb250ZXh0X2RpZmYoCisgICAgICAgICAgICBleHBlY3Rl
ZCwgZmlsZXMsIGZyb21maWxlPSJleHBlY3RlZCIsIHRvZmlsZT0iZ290IiwgbGluZXRlcm09IiIK
KyAgICAgICAgKQorICAgICAgICBkaWZmID0gIlxuIi5qb2luKGRpZmZfZ2VuZXJhdG9yKQorICAg
ICAgICBzZXNzaW9uLmVycm9yKGYiR290IHRoZSB3cm9uZyBmaWxlczpcbntkaWZmfSIpCisKKyAg
ICAjIEdldCBiYWNrIG91dCBpbnRvIG1hc3Rlci4KKyAgICBzZXNzaW9uLnJ1bigiZ2l0IiwgImNo
ZWNrb3V0IiwgIi1xIiwgIm1hc3RlciIsIGV4dGVybmFsPVRydWUpCisKKyAgICAjIENoZWNrIGFu
ZCB1cGxvYWQgZGlzdHJpYnV0aW9uIGZpbGVzLgorICAgIHNlc3Npb24ucnVuKCJ0d2luZSIsICJj
aGVjayIsICpmaWxlcykKKworICAgICMgVXBsb2FkIHRoZSBkaXN0cmlidXRpb24uCisgICAgc2Vz
c2lvbi5ydW4oInR3aW5lIiwgInVwbG9hZCIsICpmaWxlcykKKworICAgICMgUHVzaCB0aGUgY29t
bWl0cyBhbmQgdGFnLgorICAgICMgTk9URTogVGhlIGZvbGxvd2luZyBmYWlscyBpZiBwdXNoaW5n
IHRvIHRoZSBicmFuY2ggaXMgbm90IGFsbG93ZWQuIFRoaXMgY2FuCisgICAgIyAgICAgICBoYXBw
ZW4gb24gR2l0SHViLCBpZiB0aGUgbWFzdGVyIGJyYW5jaCBpcyBwcm90ZWN0ZWQsIHRoZXJlIGFy
ZSByZXF1aXJlZAorICAgICMgICAgICAgQ0kgY2hlY2tzIGFuZCAiSW5jbHVkZSBhZG1pbmlzdHJh
dG9ycyIgaXMgZW5hYmxlZCBvbiB0aGUgcHJvdGVjdGlvbi4KKyAgICBzZXNzaW9uLnJ1bigiZ2l0
IiwgInB1c2giLCAidXBzdHJlYW0iLCAibWFzdGVyIiwgcmVsZWFzZV92ZXJzaW9uLCBleHRlcm5h
bD1UcnVlKQorCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSGVscGVycworIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorZGVmIF9nZXRfdmVyc2lvbl9mcm9tX2FyZ3VtZW50cyhhcmd1bWVudHMp
OgorICAgICIiIkNoZWNrcyB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byBgbm94IC1zIHJlbGVhc2Vg
LgorCisgICAgT25seSAxIGFyZ3VtZW50IHRoYXQgbG9va3MgbGlrZSBhIHZlcnNpb24/IFJldHVy
biB0aGUgYXJndW1lbnQuCisgICAgT3RoZXJ3aXNlLCByYWlzZSBhIFZhbHVlRXJyb3IgZGVzY3Jp
YmluZyB3aGF0J3Mgd3JvbmcuCisgICAgIiIiCisgICAgaWYgbGVuKGFyZ3VtZW50cykgIT0gMToK
KyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRXhwZWN0ZWQgZXhhY3RseSAxIGFyZ3VtZW50IikK
KworICAgIHZlcnNpb24gPSBhcmd1bWVudHNbMF0KKyAgICBwYXJ0cyA9IHZlcnNpb24uc3BsaXQo
Ii4iKQorCisgICAgaWYgbGVuKHBhcnRzKSAhPSAyOgorICAgICAgICAjIE5vdCBvZiB0aGUgZm9y
bTogWVkuTgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJub3Qgb2YgdGhlIGZvcm06IFlZLk4i
KQorCisgICAgaWYgbm90IGFsbChwYXJ0LmlzZGlnaXQoKSBmb3IgcGFydCBpbiBwYXJ0cyk6Cisg
ICAgICAgICMgTm90IGFsbCBzZWdtZW50cyBhcmUgaW50ZWdlcnMuCisgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoIm5vbi1pbnRlZ2VyIHNlZ21lbnRzIikKKworICAgICMgQWxsIGlzIGdvb2QuCisg
ICAgcmV0dXJuIHZlcnNpb24KKworCitkZWYgX2NoZWNrX3dvcmtpbmdfZGlyZWN0b3J5X3N0YXRl
KHNlc3Npb24pOgorICAgICIiIkNoZWNrIHN0YXRlIG9mIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwg
cHJpb3IgdG8gbWFraW5nIHRoZSByZWxlYXNlLiIiIgorICAgIHNob3VsZF9ub3RfZXhpc3QgPSBb
ImJ1aWxkLyIsICJkaXN0LyJdCisKKyAgICBiYWRfZXhpc3RpbmdfcGF0aHMgPSBsaXN0KGZpbHRl
cihvcy5wYXRoLmV4aXN0cywgc2hvdWxkX25vdF9leGlzdCkpCisgICAgaWYgYmFkX2V4aXN0aW5n
X3BhdGhzOgorICAgICAgICBzZXNzaW9uLmVycm9yKGYiUmVtb3ZlIHsnLCAnLmpvaW4oYmFkX2V4
aXN0aW5nX3BhdGhzKX0gYW5kIHRyeSBhZ2FpbiIpCisKKworZGVmIF9jaGVja19naXRfc3RhdGUo
c2Vzc2lvbiwgdmVyc2lvbl90YWcpOgorICAgICIiIkNoZWNrIHN0YXRlIG9mIHRoZSBnaXQgcmVw
b3NpdG9yeSwgcHJpb3IgdG8gbWFraW5nIHRoZSByZWxlYXNlLiIiIgorICAgICMgRW5zdXJlIHRo
ZSB1cHN0cmVhbSByZW1vdGUgcHVzaGVzIHRvIHRoZSBjb3JyZWN0IFVSTC4KKyAgICBhbGxvd2Vk
X3Vwc3RyZWFtcyA9IFsKKyAgICAgICAgImdpdEBnaXRodWIuY29tOnB5cGEvcGFja2FnaW5nLmdp
dCIsCisgICAgICAgICJodHRwczovL2dpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcuZ2l0IiwKKyAg
ICBdCisgICAgcmVzdWx0ID0gc3VicHJvY2Vzcy5ydW4oCisgICAgICAgIFsiZ2l0IiwgInJlbW90
ZSIsICJnZXQtdXJsIiwgIi0tcHVzaCIsICJ1cHN0cmVhbSJdLAorICAgICAgICBjYXB0dXJlX291
dHB1dD1UcnVlLAorICAgICAgICBlbmNvZGluZz0idXRmLTgiLAorICAgICkKKyAgICBpZiByZXN1
bHQuc3Rkb3V0LnJzdHJpcCgpIG5vdCBpbiBhbGxvd2VkX3Vwc3RyZWFtczoKKyAgICAgICAgc2Vz
c2lvbi5lcnJvcihmImdpdCByZW1vdGUgYHVwc3RyZWFtYCBpcyBub3Qgb25lIG9mIHthbGxvd2Vk
X3Vwc3RyZWFtc30iKQorICAgICMgRW5zdXJlIHdlJ3JlIG9uIG1hc3RlciBicmFuY2ggZm9yIGN1
dHRpbmcgYSByZWxlYXNlLgorICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKAorICAgICAgICBb
ImdpdCIsICJyZXYtcGFyc2UiLCAiLS1hYmJyZXYtcmVmIiwgIkhFQUQiXSwKKyAgICAgICAgY2Fw
dHVyZV9vdXRwdXQ9VHJ1ZSwKKyAgICAgICAgZW5jb2Rpbmc9InV0Zi04IiwKKyAgICApCisgICAg
aWYgcmVzdWx0LnN0ZG91dCAhPSAibWFzdGVyXG4iOgorICAgICAgICBzZXNzaW9uLmVycm9yKGYi
Tm90IG9uIG1hc3RlciBicmFuY2g6IHtyZXN1bHQuc3Rkb3V0IXJ9IikKKworICAgICMgRW5zdXJl
IHRoZXJlIGFyZSBubyB1bmNvbW1pdHRlZCBjaGFuZ2VzLgorICAgIHJlc3VsdCA9IHN1YnByb2Nl
c3MucnVuKAorICAgICAgICBbImdpdCIsICJzdGF0dXMiLCAiLS1wb3JjZWxhaW4iXSwgY2FwdHVy
ZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9InV0Zi04IgorICAgICkKKyAgICBpZiByZXN1bHQuc3Rk
b3V0OgorICAgICAgICBwcmludChyZXN1bHQuc3Rkb3V0LCBlbmQ9IiIsIGZpbGU9c3lzLnN0ZGVy
cikKKyAgICAgICAgc2Vzc2lvbi5lcnJvcigiVGhlIHdvcmtpbmcgdHJlZSBoYXMgdW5jb21taXR0
ZWQgY2hhbmdlcyIpCisKKyAgICAjIEVuc3VyZSB0aGlzIHRhZyBkb2Vzbid0IGV4aXN0IGFscmVh
ZHkuCisgICAgcmVzdWx0ID0gc3VicHJvY2Vzcy5ydW4oCisgICAgICAgIFsiZ2l0IiwgInJldi1w
YXJzZSIsIHZlcnNpb25fdGFnXSwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9InV0Zi04
IgorICAgICkKKyAgICBpZiBub3QgcmVzdWx0LnJldHVybmNvZGU6CisgICAgICAgIHNlc3Npb24u
ZXJyb3IoZiJUYWcgYWxyZWFkeSBleGlzdHMhIHt2ZXJzaW9uX3RhZ30gLS0ge3Jlc3VsdC5zdGRv
dXQhcn0iKQorCisgICAgIyBCYWNrIHVwIHRoZSBjdXJyZW50IGdpdCByZWZlcmVuY2UsIGluIGEg
dGFnIHRoYXQncyBlYXN5IHRvIGNsZWFuIHVwLgorICAgIF9yZWxlYXNlX2JhY2t1cF90YWcgPSAi
YXV0by9yZWxlYXNlLXN0YXJ0LSIgKyBzdHIoaW50KHRpbWUudGltZSgpKSkKKyAgICBzZXNzaW9u
LnJ1bigiZ2l0IiwgInRhZyIsIF9yZWxlYXNlX2JhY2t1cF90YWcsIGV4dGVybmFsPVRydWUpCisK
KworZGVmIF9idW1wKHNlc3Npb24sICosIHZlcnNpb24sIGZpbGUsIGtpbmQpOgorICAgIHNlc3Np
b24ubG9nKGYiQnVtcCB2ZXJzaW9uIHRvIHt2ZXJzaW9uIXJ9IikKKyAgICBjb250ZW50cyA9IGZp
bGUucmVhZF90ZXh0KCkKKyAgICBuZXdfY29udGVudHMgPSByZS5zdWIoCisgICAgICAgICdfX3Zl
cnNpb25fXyA9ICIoLispIicsIGYnX192ZXJzaW9uX18gPSAie3ZlcnNpb259IicsIGNvbnRlbnRz
CisgICAgKQorICAgIGZpbGUud3JpdGVfdGV4dChuZXdfY29udGVudHMpCisKKyAgICBzZXNzaW9u
LmxvZygiZ2l0IGNvbW1pdCIpCisgICAgc3VicHJvY2Vzcy5ydW4oWyJnaXQiLCAiYWRkIiwgc3Ry
KGZpbGUpXSkKKyAgICBzdWJwcm9jZXNzLnJ1bihbImdpdCIsICJjb21taXQiLCAiLW0iLCBmIkJ1
bXAgZm9yIHtraW5kfSJdKQorCisKK0Bjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCitkZWYgX3Jl
cGxhY2VfZmlsZShvcmlnaW5hbF9wYXRoKToKKyAgICAjIENyZWF0ZSBhIHRlbXBvcmFyeSBmaWxl
LgorICAgIGZoLCByZXBsYWNlbWVudF9wYXRoID0gdGVtcGZpbGUubWtzdGVtcCgpCisKKyAgICB0
cnk6CisgICAgICAgIHdpdGggb3MuZmRvcGVuKGZoLCAidyIpIGFzIHJlcGxhY2VtZW50OgorICAg
ICAgICAgICAgd2l0aCBvcGVuKG9yaWdpbmFsX3BhdGgpIGFzIG9yaWdpbmFsOgorICAgICAgICAg
ICAgICAgIHlpZWxkIG9yaWdpbmFsLCByZXBsYWNlbWVudAorICAgIGV4Y2VwdCBFeGNlcHRpb246
CisgICAgICAgIHJhaXNlCisgICAgZWxzZToKKyAgICAgICAgc2h1dGlsLmNvcHltb2RlKG9yaWdp
bmFsX3BhdGgsIHJlcGxhY2VtZW50X3BhdGgpCisgICAgICAgIG9zLnJlbW92ZShvcmlnaW5hbF9w
YXRoKQorICAgICAgICBzaHV0aWwubW92ZShyZXBsYWNlbWVudF9wYXRoLCBvcmlnaW5hbF9wYXRo
KQorCisKK2RlZiBfY2hhbmdlbG9nX3VwZGF0ZV91bnJlbGVhc2VkX3RpdGxlKHZlcnNpb24sICos
IGZpbGUpOgorICAgICIiIlVwZGF0ZSBhbiAiKnVucmVsZWFzZWQqIiBoZWFkaW5nIHRvICJ7dmVy
c2lvbn0gLSB7ZGF0ZX0iICIiIgorICAgIHl5eXlfbW1fZGQgPSBkYXRldGltZS5kYXRldGltZS50
b2RheSgpLnN0cmZ0aW1lKCIlWS0lbS0lZCIpCisgICAgdGl0bGUgPSBmInt2ZXJzaW9ufSAtIHt5
eXl5X21tX2RkfSIKKworICAgIHdpdGggX3JlcGxhY2VfZmlsZShmaWxlKSBhcyAob3JpZ2luYWws
IHJlcGxhY2VtZW50KToKKyAgICAgICAgZm9yIGxpbmUgaW4gb3JpZ2luYWw6CisgICAgICAgICAg
ICBpZiBsaW5lID09ICIqdW5yZWxlYXNlZCpcbiI6CisgICAgICAgICAgICAgICAgcmVwbGFjZW1l
bnQud3JpdGUoZiJ7dGl0bGV9XG4iKQorICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50LndyaXRl
KGxlbih0aXRsZSkgKiAifiIgKyAiXG4iKQorICAgICAgICAgICAgICAgICMgU2tpcCBwcm9jZXNz
aW5nIHRoZSBuZXh0IGxpbmUgKHRoZSBoZWFkaW5nIHVuZGVybGluZSBmb3IgKnVucmVsZWFzZWQq
KQorICAgICAgICAgICAgICAgICMgc2luY2Ugd2UgYWxyZWFkeSB3cm90ZSB0aGUgaGVhZGluZyB1
bmRlcmxpbmUuCisgICAgICAgICAgICAgICAgbmV4dChvcmlnaW5hbCkKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQud3JpdGUobGluZSkKKworCitkZWYgX2No
YW5nZWxvZ19hZGRfdW5yZWxlYXNlZF90aXRsZSgqLCBmaWxlKToKKyAgICB3aXRoIF9yZXBsYWNl
X2ZpbGUoZmlsZSkgYXMgKG9yaWdpbmFsLCByZXBsYWNlbWVudCk6CisgICAgICAgICMgRHVwbGlj
YXRlIGZpcnN0IDMgbGluZXMgZnJvbSB0aGUgb3JpZ2luYWwgZmlsZS4KKyAgICAgICAgZm9yIF8g
aW4gcmFuZ2UoMyk6CisgICAgICAgICAgICBsaW5lID0gbmV4dChvcmlnaW5hbCkKKyAgICAgICAg
ICAgIHJlcGxhY2VtZW50LndyaXRlKGxpbmUpCisKKyAgICAgICAgIyBXcml0ZSB0aGUgaGVhZGlu
Zy4KKyAgICAgICAgcmVwbGFjZW1lbnQud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRl
bnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgICp1bnJlbGVhc2VkKgor
ICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fgorCisgICAgICAgICAgICAgICAgTm8gdW5yZWxl
YXNlZCBjaGFuZ2VzLgorCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICApCisgICAg
ICAgICkKKworICAgICAgICAjIER1cGxpY2F0ZSBhbGwgdGhlIHJlbWFpbmluZyBsaW5lcy4KKyAg
ICAgICAgZm9yIGxpbmUgaW4gb3JpZ2luYWw6CisgICAgICAgICAgICByZXBsYWNlbWVudC53cml0
ZShsaW5lKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL19faW5pdF9fLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZmVj
Yjg2N2E4OTMyNjg5OGNjMGNmMjhiYzU4MjZmNmExYzhmZGMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvX19pbml0X18ucHkKQEAgLTAsMCArMSw1IEBACisjIFRo
aXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQXBhY2hlIExp
Y2Vuc2UsIFZlcnNpb24KKyMgMi4wLCBhbmQgdGhlIEJTRCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VO
U0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGlzIHJlcG9zaXRvcnkKKyMgZm9yIGNvbXBsZXRlIGRl
dGFpbHMuCisiIiJDb3JlIHV0aWxpdGllcyBmb3IgUHl0aG9uIHBhY2thZ2VzIiIiCitfX3ZlcnNp
b25fXyA9ICIyMC43IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL19jb21w
YXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvX2NvbXBhdC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NTRiZDRlZGU4NzYxZGY1ODgyYTMzNTRiYzIyYmRlZTdhNWU4YThiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL19jb21wYXQucHkKQEAgLTAsMCArMSwzOCBAQAor
IyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNo
ZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRoZSBM
SUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21wbGV0
ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgc3lzCisKK2Zyb20gLl90eXBpbmcgaW1wb3J0
IFRZUEVfQ0hFQ0tJTkcKKworaWYgVFlQRV9DSEVDS0lORzogICMgcHJhZ21hOiBubyBjb3Zlcgor
ICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnksIERpY3QsIFR1cGxlLCBUeXBlCisKKworUFkyID0g
c3lzLnZlcnNpb25faW5mb1swXSA9PSAyCitQWTMgPSBzeXMudmVyc2lvbl9pbmZvWzBdID09IDMK
KworIyBmbGFrZTg6IG5vcWEKKworaWYgUFkzOgorICAgIHN0cmluZ190eXBlcyA9IChzdHIsKQor
ZWxzZToKKyAgICBzdHJpbmdfdHlwZXMgPSAoYmFzZXN0cmluZywpCisKKworZGVmIHdpdGhfbWV0
YWNsYXNzKG1ldGEsICpiYXNlcyk6CisgICAgIyB0eXBlOiAoVHlwZVtBbnldLCBUdXBsZVtUeXBl
W0FueV0sIC4uLl0pIC0+IEFueQorICAgICIiIgorICAgIENyZWF0ZSBhIGJhc2UgY2xhc3Mgd2l0
aCBhIG1ldGFjbGFzcy4KKyAgICAiIiIKKyAgICAjIFRoaXMgcmVxdWlyZXMgYSBiaXQgb2YgZXhw
bGFuYXRpb246IHRoZSBiYXNpYyBpZGVhIGlzIHRvIG1ha2UgYSBkdW1teQorICAgICMgbWV0YWNs
YXNzIGZvciBvbmUgbGV2ZWwgb2YgY2xhc3MgaW5zdGFudGlhdGlvbiB0aGF0IHJlcGxhY2VzIGl0
c2VsZiB3aXRoCisgICAgIyB0aGUgYWN0dWFsIG1ldGFjbGFzcy4KKyAgICBjbGFzcyBtZXRhY2xh
c3MobWV0YSk6ICAjIHR5cGU6IGlnbm9yZQorICAgICAgICBkZWYgX19uZXdfXyhjbHMsIG5hbWUs
IHRoaXNfYmFzZXMsIGQpOgorICAgICAgICAgICAgIyB0eXBlOiAoVHlwZVtBbnldLCBzdHIsIFR1
cGxlW0FueV0sIERpY3RbQW55LCBBbnldKSAtPiBBbnkKKyAgICAgICAgICAgIHJldHVybiBtZXRh
KG5hbWUsIGJhc2VzLCBkKQorCisgICAgcmV0dXJuIHR5cGUuX19uZXdfXyhtZXRhY2xhc3MsICJ0
ZW1wb3JhcnlfY2xhc3MiLCAoKSwge30pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNr
YWdpbmcvX3N0cnVjdHVyZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvX3N0cnVjdHVy
ZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODAwZDVjNTU4OGM5OWRjMjE2Y2RlYTUwODRkYTQ0MGVmYjY0MTk0
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9fc3RydWN0dXJl
cy5weQpAQCAtMCwwICsxLDg2IEBACisjIFRoaXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24KKyMgMi4wLCBhbmQgdGhl
IEJTRCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGlzIHJl
cG9zaXRvcnkKKyMgZm9yIGNvbXBsZXRlIGRldGFpbHMuCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKKworY2xhc3MgSW5m
aW5pdHlUeXBlKG9iamVjdCk6CisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAjIHR5
cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1cm4gIkluZmluaXR5IgorCisgICAgZGVmIF9faGFz
aF9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGludAorICAgICAgICByZXR1cm4gaGFz
aChyZXByKHNlbGYpKQorCisgICAgZGVmIF9fbHRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICMg
dHlwZTogKG9iamVjdCkgLT4gYm9vbAorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBf
X2xlX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAg
ICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAg
ICAgIyB0eXBlOiAob2JqZWN0KSAtPiBib29sCisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKG90
aGVyLCBzZWxmLl9fY2xhc3NfXykKKworICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAg
ICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIG5vdCBpc2luc3Rh
bmNlKG90aGVyLCBzZWxmLl9fY2xhc3NfXykKKworICAgIGRlZiBfX2d0X18oc2VsZiwgb3RoZXIp
OgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIFRydWUK
KworICAgIGRlZiBfX2dlX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3Qp
IC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBfX25lZ19fKHNlbGYpOgor
ICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IE5lZ2F0aXZlSW5maW5pdHlUeXBlCisgICAgICAg
IHJldHVybiBOZWdhdGl2ZUluZmluaXR5CisKKworSW5maW5pdHkgPSBJbmZpbml0eVR5cGUoKQor
CisKK2NsYXNzIE5lZ2F0aXZlSW5maW5pdHlUeXBlKG9iamVjdCk6CisgICAgZGVmIF9fcmVwcl9f
KHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1cm4gIi1JbmZp
bml0eSIKKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBp
bnQKKyAgICAgICAgcmV0dXJuIGhhc2gocmVwcihzZWxmKSkKKworICAgIGRlZiBfX2x0X18oc2Vs
Ziwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgcmV0
dXJuIFRydWUKKworICAgIGRlZiBfX2xlX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6
IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBfX2VxX18o
c2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAg
cmV0dXJuIGlzaW5zdGFuY2Uob3RoZXIsIHNlbGYuX19jbGFzc19fKQorCisgICAgZGVmIF9fbmVf
XyhzZWxmLCBvdGhlcik6CisgICAgICAgICMgdHlwZTogKG9iamVjdCkgLT4gYm9vbAorICAgICAg
ICByZXR1cm4gbm90IGlzaW5zdGFuY2Uob3RoZXIsIHNlbGYuX19jbGFzc19fKQorCisgICAgZGVm
IF9fZ3RfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICMgdHlwZTogKG9iamVjdCkgLT4gYm9vbAor
ICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfX2dlX18oc2VsZiwgb3RoZXIpOgorICAg
ICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAg
ICBkZWYgX19uZWdfXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAob2JqZWN0KSAtPiBJbmZpbml0
eVR5cGUKKyAgICAgICAgcmV0dXJuIEluZmluaXR5CisKKworTmVnYXRpdmVJbmZpbml0eSA9IE5l
Z2F0aXZlSW5maW5pdHlUeXBlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2lu
Zy9fdHlwaW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL190eXBpbmcucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzdhOGI5MTg1YTA3ZDAzMzhlNjUyODEwZjQ4NzU3ZGZlOWUwYzkwYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9fdHlwaW5nLnB5CkBAIC0wLDAgKzEs
NDggQEAKKyIiIkZvciBuZWF0bHkgaW1wbGVtZW50aW5nIHN0YXRpYyB0eXBpbmcgaW4gcGFja2Fn
aW5nLgorCitgbXlweWAgLSB0aGUgc3RhdGljIHR5cGUgYW5hbHlzaXMgdG9vbCB3ZSB1c2UgLSB1
c2VzIHRoZSBgdHlwaW5nYCBtb2R1bGUsIHdoaWNoCitwcm92aWRlcyBjb3JlIGZ1bmN0aW9uYWxp
dHkgZnVuZGFtZW50YWwgdG8gbXlweSdzIGZ1bmN0aW9uaW5nLgorCitHZW5lcmFsbHksIGB0eXBp
bmdgIHdvdWxkIGJlIGltcG9ydGVkIGF0IHJ1bnRpbWUgYW5kIHVzZWQgaW4gdGhhdCBmYXNoaW9u
IC0KK2l0IGFjdHMgYXMgYSBuby1vcCBhdCBydW50aW1lIGFuZCBkb2VzIG5vdCBoYXZlIGFueSBy
dW4tdGltZSBvdmVyaGVhZCBieQorZGVzaWduLgorCitBcyBpdCB0dXJucyBvdXQsIGB0eXBpbmdg
IGlzIG5vdCB2ZW5kb3JhYmxlIC0gaXQgdXNlcyBzZXBhcmF0ZSBzb3VyY2VzIGZvcgorUHl0aG9u
IDIvUHl0aG9uIDMuIFRodXMsIHRoaXMgY29kZWJhc2UgY2FuIG5vdCBleHBlY3QgaXQgdG8gYmUg
cHJlc2VudC4KK1RvIHdvcmsgYXJvdW5kIHRoaXMsIG15cHkgYWxsb3dzIHRoZSB0eXBpbmcgaW1w
b3J0IHRvIGJlIGJlaGluZCBhIEZhbHNlLXkKK29wdGlvbmFsIHRvIHByZXZlbnQgaXQgZnJvbSBy
dW5uaW5nIGF0IHJ1bnRpbWUgYW5kIHR5cGUtY29tbWVudHMgY2FuIGJlIHVzZWQKK3RvIHJlbW92
ZSB0aGUgbmVlZCBmb3IgdGhlIHR5cGVzIHRvIGJlIGFjY2Vzc2libGUgZGlyZWN0bHkgZHVyaW5n
IHJ1bnRpbWUuCisKK1RoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBGYWxzZS15IGd1YXJkIGluIGEg
bmljZWx5IG5hbWVkIGZhc2hpb24gc28gdGhhdCBhCitjdXJpb3VzIG1haW50YWluZXIgY2FuIHJl
YWNoIGhlcmUgdG8gcmVhZCB0aGlzLgorCitJbiBwYWNrYWdpbmcsIGFsbCBzdGF0aWMtdHlwaW5n
IHJlbGF0ZWQgaW1wb3J0cyBzaG91bGQgYmUgZ3VhcmRlZCBhcyBmb2xsb3dzOgorCisgICAgZnJv
bSBwYWNrYWdpbmcuX3R5cGluZyBpbXBvcnQgVFlQRV9DSEVDS0lORworCisgICAgaWYgVFlQRV9D
SEVDS0lORzoKKyAgICAgICAgZnJvbSB0eXBpbmcgaW1wb3J0IC4uLgorCitSZWY6IGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRob24vbXlweS9pc3N1ZXMvMzIxNgorIiIiCisKK19fYWxsX18gPSBbIlRZ
UEVfQ0hFQ0tJTkciLCAiY2FzdCJdCisKKyMgVGhlIFRZUEVfQ0hFQ0tJTkcgY29uc3RhbnQgZGVm
aW5lZCBieSB0aGUgdHlwaW5nIG1vZHVsZSBpcyBGYWxzZSBhdCBydW50aW1lCisjIGJ1dCBUcnVl
IHdoaWxlIHR5cGUgY2hlY2tpbmcuCitpZiBGYWxzZTogICMgcHJhZ21hOiBubyBjb3ZlcgorICAg
IGZyb20gdHlwaW5nIGltcG9ydCBUWVBFX0NIRUNLSU5HCitlbHNlOgorICAgIFRZUEVfQ0hFQ0tJ
TkcgPSBGYWxzZQorCisjIHR5cGluZydzIGNhc3Qgc3ludGF4IHJlcXVpcmVzIGNhbGxpbmcgdHlw
aW5nLmNhc3QgYXQgcnVudGltZSwgYnV0IHdlIGRvbid0CisjIHdhbnQgdG8gaW1wb3J0IHR5cGlu
ZyBhdCBydW50aW1lLiBIZXJlLCB3ZSBpbmZvcm0gdGhlIHR5cGUgY2hlY2tlcnMgdGhhdAorIyB3
ZSdyZSBpbXBvcnRpbmcgYHR5cGluZy5jYXN0YCBhcyBgY2FzdGAgYW5kIHJlLWltcGxlbWVudCB0
eXBpbmcuY2FzdCdzCisjIHJ1bnRpbWUgYmVoYXZpb3IgaW4gYSBibG9jayB0aGF0IGlzIGlnbm9y
ZWQgYnkgdHlwZSBjaGVja2Vycy4KK2lmIFRZUEVfQ0hFQ0tJTkc6ICAjIHByYWdtYTogbm8gY292
ZXIKKyAgICAjIG5vdCBleGVjdXRlZCBhdCBydW50aW1lCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0
IGNhc3QKK2Vsc2U6CisgICAgIyBleGVjdXRlZCBhdCBydW50aW1lCisgICAgZGVmIGNhc3QodHlw
ZV8sIHZhbHVlKTogICMgbm9xYQorICAgICAgICByZXR1cm4gdmFsdWUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL3BhY2thZ2luZy9tYXJrZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2Fn
aW5nL21hcmtlcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdjZDNmOTU4NTcyMTQxZjEzZjMwNWIyOTE1Zjlm
MGRkZmVkZmQyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9t
YXJrZXJzLnB5CkBAIC0wLDAgKzEsMzI4IEBACisjIFRoaXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2Vk
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24KKyMgMi4wLCBh
bmQgdGhlIEJTRCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGlzIHJlcG9zaXRvcnkKKyMgZm9yIGNvbXBsZXRlIGRldGFpbHMuCitmcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9y
dCBvcGVyYXRvcgoraW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCBzeXMKKworZnJv
bSBweXBhcnNpbmcgaW1wb3J0IFBhcnNlRXhjZXB0aW9uLCBQYXJzZVJlc3VsdHMsIHN0cmluZ1N0
YXJ0LCBzdHJpbmdFbmQKK2Zyb20gcHlwYXJzaW5nIGltcG9ydCBaZXJvT3JNb3JlLCBHcm91cCwg
Rm9yd2FyZCwgUXVvdGVkU3RyaW5nCitmcm9tIHB5cGFyc2luZyBpbXBvcnQgTGl0ZXJhbCBhcyBM
ICAjIG5vcWEKKworZnJvbSAuX2NvbXBhdCBpbXBvcnQgc3RyaW5nX3R5cGVzCitmcm9tIC5fdHlw
aW5nIGltcG9ydCBUWVBFX0NIRUNLSU5HCitmcm9tIC5zcGVjaWZpZXJzIGltcG9ydCBTcGVjaWZp
ZXIsIEludmFsaWRTcGVjaWZpZXIKKworaWYgVFlQRV9DSEVDS0lORzogICMgcHJhZ21hOiBubyBj
b3ZlcgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnksIENhbGxhYmxlLCBEaWN0LCBMaXN0LCBP
cHRpb25hbCwgVHVwbGUsIFVuaW9uCisKKyAgICBPcGVyYXRvciA9IENhbGxhYmxlW1tzdHIsIHN0
cl0sIGJvb2xdCisKKworX19hbGxfXyA9IFsKKyAgICAiSW52YWxpZE1hcmtlciIsCisgICAgIlVu
ZGVmaW5lZENvbXBhcmlzb24iLAorICAgICJVbmRlZmluZWRFbnZpcm9ubWVudE5hbWUiLAorICAg
ICJNYXJrZXIiLAorICAgICJkZWZhdWx0X2Vudmlyb25tZW50IiwKK10KKworCitjbGFzcyBJbnZh
bGlkTWFya2VyKFZhbHVlRXJyb3IpOgorICAgICIiIgorICAgIEFuIGludmFsaWQgbWFya2VyIHdh
cyBmb3VuZCwgdXNlcnMgc2hvdWxkIHJlZmVyIHRvIFBFUCA1MDguCisgICAgIiIiCisKKworY2xh
c3MgVW5kZWZpbmVkQ29tcGFyaXNvbihWYWx1ZUVycm9yKToKKyAgICAiIiIKKyAgICBBbiBpbnZh
bGlkIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIG9uIGEgdmFsdWUgdGhhdCBkb2Vzbid0IHN1cHBv
cnQgaXQuCisgICAgIiIiCisKKworY2xhc3MgVW5kZWZpbmVkRW52aXJvbm1lbnROYW1lKFZhbHVl
RXJyb3IpOgorICAgICIiIgorICAgIEEgbmFtZSB3YXMgYXR0ZW1wdGVkIHRvIGJlIHVzZWQgdGhh
dCBkb2VzIG5vdCBleGlzdCBpbnNpZGUgb2YgdGhlCisgICAgZW52aXJvbm1lbnQuCisgICAgIiIi
CisKKworY2xhc3MgTm9kZShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZSk6
CisgICAgICAgICMgdHlwZTogKEFueSkgLT4gTm9uZQorICAgICAgICBzZWxmLnZhbHVlID0gdmFs
dWUKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgor
ICAgICAgICByZXR1cm4gc3RyKHNlbGYudmFsdWUpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6
CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJldHVybiAiPHswfSh7MSFyfSk+
Ii5mb3JtYXQoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHN0cihzZWxmKSkKKworICAgIGRlZiBz
ZXJpYWxpemUoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkRXJyb3IKKworCitjbGFzcyBWYXJpYWJsZShOb2RlKToKKyAgICBkZWYg
c2VyaWFsaXplKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1
cm4gc3RyKHNlbGYpCisKKworY2xhc3MgVmFsdWUoTm9kZSk6CisgICAgZGVmIHNlcmlhbGl6ZShz
ZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcmV0dXJuICciezB9Iicu
Zm9ybWF0KHNlbGYpCisKKworY2xhc3MgT3AoTm9kZSk6CisgICAgZGVmIHNlcmlhbGl6ZShzZWxm
KToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcmV0dXJuIHN0cihzZWxmKQor
CisKK1ZBUklBQkxFID0gKAorICAgIEwoImltcGxlbWVudGF0aW9uX3ZlcnNpb24iKQorICAgIHwg
TCgicGxhdGZvcm1fcHl0aG9uX2ltcGxlbWVudGF0aW9uIikKKyAgICB8IEwoImltcGxlbWVudGF0
aW9uX25hbWUiKQorICAgIHwgTCgicHl0aG9uX2Z1bGxfdmVyc2lvbiIpCisgICAgfCBMKCJwbGF0
Zm9ybV9yZWxlYXNlIikKKyAgICB8IEwoInBsYXRmb3JtX3ZlcnNpb24iKQorICAgIHwgTCgicGxh
dGZvcm1fbWFjaGluZSIpCisgICAgfCBMKCJwbGF0Zm9ybV9zeXN0ZW0iKQorICAgIHwgTCgicHl0
aG9uX3ZlcnNpb24iKQorICAgIHwgTCgic3lzX3BsYXRmb3JtIikKKyAgICB8IEwoIm9zX25hbWUi
KQorICAgIHwgTCgib3MubmFtZSIpICAjIFBFUC0zNDUKKyAgICB8IEwoInN5cy5wbGF0Zm9ybSIp
ICAjIFBFUC0zNDUKKyAgICB8IEwoInBsYXRmb3JtLnZlcnNpb24iKSAgIyBQRVAtMzQ1CisgICAg
fCBMKCJwbGF0Zm9ybS5tYWNoaW5lIikgICMgUEVQLTM0NQorICAgIHwgTCgicGxhdGZvcm0ucHl0
aG9uX2ltcGxlbWVudGF0aW9uIikgICMgUEVQLTM0NQorICAgIHwgTCgicHl0aG9uX2ltcGxlbWVu
dGF0aW9uIikgICMgdW5kb2N1bWVudGVkIHNldHVwdG9vbHMgbGVnYWN5CisgICAgfCBMKCJleHRy
YSIpICAjIFBFUC01MDgKKykKK0FMSUFTRVMgPSB7CisgICAgIm9zLm5hbWUiOiAib3NfbmFtZSIs
CisgICAgInN5cy5wbGF0Zm9ybSI6ICJzeXNfcGxhdGZvcm0iLAorICAgICJwbGF0Zm9ybS52ZXJz
aW9uIjogInBsYXRmb3JtX3ZlcnNpb24iLAorICAgICJwbGF0Zm9ybS5tYWNoaW5lIjogInBsYXRm
b3JtX21hY2hpbmUiLAorICAgICJwbGF0Zm9ybS5weXRob25faW1wbGVtZW50YXRpb24iOiAicGxh
dGZvcm1fcHl0aG9uX2ltcGxlbWVudGF0aW9uIiwKKyAgICAicHl0aG9uX2ltcGxlbWVudGF0aW9u
IjogInBsYXRmb3JtX3B5dGhvbl9pbXBsZW1lbnRhdGlvbiIsCit9CitWQVJJQUJMRS5zZXRQYXJz
ZUFjdGlvbihsYW1iZGEgcywgbCwgdDogVmFyaWFibGUoQUxJQVNFUy5nZXQodFswXSwgdFswXSkp
KQorCitWRVJTSU9OX0NNUCA9ICgKKyAgICBMKCI9PT0iKSB8IEwoIj09IikgfCBMKCI+PSIpIHwg
TCgiPD0iKSB8IEwoIiE9IikgfCBMKCJ+PSIpIHwgTCgiPiIpIHwgTCgiPCIpCispCisKK01BUktF
Ul9PUCA9IFZFUlNJT05fQ01QIHwgTCgibm90IGluIikgfCBMKCJpbiIpCitNQVJLRVJfT1Auc2V0
UGFyc2VBY3Rpb24obGFtYmRhIHMsIGwsIHQ6IE9wKHRbMF0pKQorCitNQVJLRVJfVkFMVUUgPSBR
dW90ZWRTdHJpbmcoIiciKSB8IFF1b3RlZFN0cmluZygnIicpCitNQVJLRVJfVkFMVUUuc2V0UGFy
c2VBY3Rpb24obGFtYmRhIHMsIGwsIHQ6IFZhbHVlKHRbMF0pKQorCitCT09MT1AgPSBMKCJhbmQi
KSB8IEwoIm9yIikKKworTUFSS0VSX1ZBUiA9IFZBUklBQkxFIHwgTUFSS0VSX1ZBTFVFCisKK01B
UktFUl9JVEVNID0gR3JvdXAoTUFSS0VSX1ZBUiArIE1BUktFUl9PUCArIE1BUktFUl9WQVIpCitN
QVJLRVJfSVRFTS5zZXRQYXJzZUFjdGlvbihsYW1iZGEgcywgbCwgdDogdHVwbGUodFswXSkpCisK
K0xQQVJFTiA9IEwoIigiKS5zdXBwcmVzcygpCitSUEFSRU4gPSBMKCIpIikuc3VwcHJlc3MoKQor
CitNQVJLRVJfRVhQUiA9IEZvcndhcmQoKQorTUFSS0VSX0FUT00gPSBNQVJLRVJfSVRFTSB8IEdy
b3VwKExQQVJFTiArIE1BUktFUl9FWFBSICsgUlBBUkVOKQorTUFSS0VSX0VYUFIgPDwgTUFSS0VS
X0FUT00gKyBaZXJvT3JNb3JlKEJPT0xPUCArIE1BUktFUl9FWFBSKQorCitNQVJLRVIgPSBzdHJp
bmdTdGFydCArIE1BUktFUl9FWFBSICsgc3RyaW5nRW5kCisKKworZGVmIF9jb2VyY2VfcGFyc2Vf
cmVzdWx0KHJlc3VsdHMpOgorICAgICMgdHlwZTogKFVuaW9uW1BhcnNlUmVzdWx0cywgTGlzdFtB
bnldXSkgLT4gTGlzdFtBbnldCisgICAgaWYgaXNpbnN0YW5jZShyZXN1bHRzLCBQYXJzZVJlc3Vs
dHMpOgorICAgICAgICByZXR1cm4gW19jb2VyY2VfcGFyc2VfcmVzdWx0KGkpIGZvciBpIGluIHJl
c3VsdHNdCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMKKworCitkZWYgX2Zvcm1h
dF9tYXJrZXIobWFya2VyLCBmaXJzdD1UcnVlKToKKyAgICAjIHR5cGU6IChVbmlvbltMaXN0W3N0
cl0sIFR1cGxlW05vZGUsIC4uLl0sIHN0cl0sIE9wdGlvbmFsW2Jvb2xdKSAtPiBzdHIKKworICAg
IGFzc2VydCBpc2luc3RhbmNlKG1hcmtlciwgKGxpc3QsIHR1cGxlLCBzdHJpbmdfdHlwZXMpKQor
CisgICAgIyBTb21ldGltZXMgd2UgaGF2ZSBhIHN0cnVjdHVyZSBsaWtlIFtbLi4uXV0gd2hpY2gg
aXMgYSBzaW5nbGUgaXRlbSBsaXN0CisgICAgIyB3aGVyZSB0aGUgc2luZ2xlIGl0ZW0gaXMgaXRz
ZWxmIGl0J3Mgb3duIGxpc3QuIEluIHRoYXQgY2FzZSB3ZSB3YW50IHNraXAKKyAgICAjIHRoZSBy
ZXN0IG9mIHRoaXMgZnVuY3Rpb24gc28gdGhhdCB3ZSBkb24ndCBnZXQgZXh0cmFuZW91cyAoKSBv
biB0aGUKKyAgICAjIG91dHNpZGUuCisgICAgaWYgKAorICAgICAgICBpc2luc3RhbmNlKG1hcmtl
ciwgbGlzdCkKKyAgICAgICAgYW5kIGxlbihtYXJrZXIpID09IDEKKyAgICAgICAgYW5kIGlzaW5z
dGFuY2UobWFya2VyWzBdLCAobGlzdCwgdHVwbGUpKQorICAgICk6CisgICAgICAgIHJldHVybiBf
Zm9ybWF0X21hcmtlcihtYXJrZXJbMF0pCisKKyAgICBpZiBpc2luc3RhbmNlKG1hcmtlciwgbGlz
dCk6CisgICAgICAgIGlubmVyID0gKF9mb3JtYXRfbWFya2VyKG0sIGZpcnN0PUZhbHNlKSBmb3Ig
bSBpbiBtYXJrZXIpCisgICAgICAgIGlmIGZpcnN0OgorICAgICAgICAgICAgcmV0dXJuICIgIi5q
b2luKGlubmVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuICIoIiArICIgIi5q
b2luKGlubmVyKSArICIpIgorICAgIGVsaWYgaXNpbnN0YW5jZShtYXJrZXIsIHR1cGxlKToKKyAg
ICAgICAgcmV0dXJuICIgIi5qb2luKFttLnNlcmlhbGl6ZSgpIGZvciBtIGluIG1hcmtlcl0pCisg
ICAgZWxzZToKKyAgICAgICAgcmV0dXJuIG1hcmtlcgorCisKK19vcGVyYXRvcnMgPSB7CisgICAg
ImluIjogbGFtYmRhIGxocywgcmhzOiBsaHMgaW4gcmhzLAorICAgICJub3QgaW4iOiBsYW1iZGEg
bGhzLCByaHM6IGxocyBub3QgaW4gcmhzLAorICAgICI8Ijogb3BlcmF0b3IubHQsCisgICAgIjw9
Ijogb3BlcmF0b3IubGUsCisgICAgIj09Ijogb3BlcmF0b3IuZXEsCisgICAgIiE9Ijogb3BlcmF0
b3IubmUsCisgICAgIj49Ijogb3BlcmF0b3IuZ2UsCisgICAgIj4iOiBvcGVyYXRvci5ndCwKK30g
ICMgdHlwZTogRGljdFtzdHIsIE9wZXJhdG9yXQorCisKK2RlZiBfZXZhbF9vcChsaHMsIG9wLCBy
aHMpOgorICAgICMgdHlwZTogKHN0ciwgT3AsIHN0cikgLT4gYm9vbAorICAgIHRyeToKKyAgICAg
ICAgc3BlYyA9IFNwZWNpZmllcigiIi5qb2luKFtvcC5zZXJpYWxpemUoKSwgcmhzXSkpCisgICAg
ZXhjZXB0IEludmFsaWRTcGVjaWZpZXI6CisgICAgICAgIHBhc3MKKyAgICBlbHNlOgorICAgICAg
ICByZXR1cm4gc3BlYy5jb250YWlucyhsaHMpCisKKyAgICBvcGVyID0gX29wZXJhdG9ycy5nZXQo
b3Auc2VyaWFsaXplKCkpICAjIHR5cGU6IE9wdGlvbmFsW09wZXJhdG9yXQorICAgIGlmIG9wZXIg
aXMgTm9uZToKKyAgICAgICAgcmFpc2UgVW5kZWZpbmVkQ29tcGFyaXNvbigKKyAgICAgICAgICAg
ICJVbmRlZmluZWQgezAhcn0gb24gezEhcn0gYW5kIHsyIXJ9LiIuZm9ybWF0KG9wLCBsaHMsIHJo
cykKKyAgICAgICAgKQorCisgICAgcmV0dXJuIG9wZXIobGhzLCByaHMpCisKKworY2xhc3MgVW5k
ZWZpbmVkKG9iamVjdCk6CisgICAgcGFzcworCisKK191bmRlZmluZWQgPSBVbmRlZmluZWQoKQor
CisKK2RlZiBfZ2V0X2VudihlbnZpcm9ubWVudCwgbmFtZSk6CisgICAgIyB0eXBlOiAoRGljdFtz
dHIsIHN0cl0sIHN0cikgLT4gc3RyCisgICAgdmFsdWUgPSBlbnZpcm9ubWVudC5nZXQobmFtZSwg
X3VuZGVmaW5lZCkgICMgdHlwZTogVW5pb25bc3RyLCBVbmRlZmluZWRdCisKKyAgICBpZiBpc2lu
c3RhbmNlKHZhbHVlLCBVbmRlZmluZWQpOgorICAgICAgICByYWlzZSBVbmRlZmluZWRFbnZpcm9u
bWVudE5hbWUoCisgICAgICAgICAgICAiezAhcn0gZG9lcyBub3QgZXhpc3QgaW4gZXZhbHVhdGlv
biBlbnZpcm9ubWVudC4iLmZvcm1hdChuYW1lKQorICAgICAgICApCisKKyAgICByZXR1cm4gdmFs
dWUKKworCitkZWYgX2V2YWx1YXRlX21hcmtlcnMobWFya2VycywgZW52aXJvbm1lbnQpOgorICAg
ICMgdHlwZTogKExpc3RbQW55XSwgRGljdFtzdHIsIHN0cl0pIC0+IGJvb2wKKyAgICBncm91cHMg
PSBbW11dICAjIHR5cGU6IExpc3RbTGlzdFtib29sXV0KKworICAgIGZvciBtYXJrZXIgaW4gbWFy
a2VyczoKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobWFya2VyLCAobGlzdCwgdHVwbGUsIHN0
cmluZ190eXBlcykpCisKKyAgICAgICAgaWYgaXNpbnN0YW5jZShtYXJrZXIsIGxpc3QpOgorICAg
ICAgICAgICAgZ3JvdXBzWy0xXS5hcHBlbmQoX2V2YWx1YXRlX21hcmtlcnMobWFya2VyLCBlbnZp
cm9ubWVudCkpCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShtYXJrZXIsIHR1cGxlKToKKyAgICAg
ICAgICAgIGxocywgb3AsIHJocyA9IG1hcmtlcgorCisgICAgICAgICAgICBpZiBpc2luc3RhbmNl
KGxocywgVmFyaWFibGUpOgorICAgICAgICAgICAgICAgIGxoc192YWx1ZSA9IF9nZXRfZW52KGVu
dmlyb25tZW50LCBsaHMudmFsdWUpCisgICAgICAgICAgICAgICAgcmhzX3ZhbHVlID0gcmhzLnZh
bHVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGxoc192YWx1ZSA9IGxocy52
YWx1ZQorICAgICAgICAgICAgICAgIHJoc192YWx1ZSA9IF9nZXRfZW52KGVudmlyb25tZW50LCBy
aHMudmFsdWUpCisKKyAgICAgICAgICAgIGdyb3Vwc1stMV0uYXBwZW5kKF9ldmFsX29wKGxoc192
YWx1ZSwgb3AsIHJoc192YWx1ZSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQg
bWFya2VyIGluIFsiYW5kIiwgIm9yIl0KKyAgICAgICAgICAgIGlmIG1hcmtlciA9PSAib3IiOgor
ICAgICAgICAgICAgICAgIGdyb3Vwcy5hcHBlbmQoW10pCisKKyAgICByZXR1cm4gYW55KGFsbChp
dGVtKSBmb3IgaXRlbSBpbiBncm91cHMpCisKKworZGVmIGZvcm1hdF9mdWxsX3ZlcnNpb24oaW5m
byk6CisgICAgIyB0eXBlOiAoc3lzLl92ZXJzaW9uX2luZm8pIC0+IHN0cgorICAgIHZlcnNpb24g
PSAiezAubWFqb3J9LnswLm1pbm9yfS57MC5taWNyb30iLmZvcm1hdChpbmZvKQorICAgIGtpbmQg
PSBpbmZvLnJlbGVhc2VsZXZlbAorICAgIGlmIGtpbmQgIT0gImZpbmFsIjoKKyAgICAgICAgdmVy
c2lvbiArPSBraW5kWzBdICsgc3RyKGluZm8uc2VyaWFsKQorICAgIHJldHVybiB2ZXJzaW9uCisK
KworZGVmIGRlZmF1bHRfZW52aXJvbm1lbnQoKToKKyAgICAjIHR5cGU6ICgpIC0+IERpY3Rbc3Ry
LCBzdHJdCisgICAgaWYgaGFzYXR0cihzeXMsICJpbXBsZW1lbnRhdGlvbiIpOgorICAgICAgICAj
IElnbm9yaW5nIHRoZSBgc3lzLmltcGxlbWVudGF0aW9uYCByZWZlcmVuY2UgZm9yIHR5cGUgY2hl
Y2tpbmcgZHVlIHRvCisgICAgICAgICMgbXlweSBub3QgbGlraW5nIHRoYXQgdGhlIGF0dHJpYnV0
ZSBkb2Vzbid0IGV4aXN0IGluIFB5dGhvbiAyLjcgd2hlbgorICAgICAgICAjIHJ1biB3aXRoIHRo
ZSBgLS1weTI3YCBmbGFnLgorICAgICAgICBpdmVyID0gZm9ybWF0X2Z1bGxfdmVyc2lvbihzeXMu
aW1wbGVtZW50YXRpb24udmVyc2lvbikgICMgdHlwZTogaWdub3JlCisgICAgICAgIGltcGxlbWVu
dGF0aW9uX25hbWUgPSBzeXMuaW1wbGVtZW50YXRpb24ubmFtZSAgIyB0eXBlOiBpZ25vcmUKKyAg
ICBlbHNlOgorICAgICAgICBpdmVyID0gIjAiCisgICAgICAgIGltcGxlbWVudGF0aW9uX25hbWUg
PSAiIgorCisgICAgcmV0dXJuIHsKKyAgICAgICAgImltcGxlbWVudGF0aW9uX25hbWUiOiBpbXBs
ZW1lbnRhdGlvbl9uYW1lLAorICAgICAgICAiaW1wbGVtZW50YXRpb25fdmVyc2lvbiI6IGl2ZXIs
CisgICAgICAgICJvc19uYW1lIjogb3MubmFtZSwKKyAgICAgICAgInBsYXRmb3JtX21hY2hpbmUi
OiBwbGF0Zm9ybS5tYWNoaW5lKCksCisgICAgICAgICJwbGF0Zm9ybV9yZWxlYXNlIjogcGxhdGZv
cm0ucmVsZWFzZSgpLAorICAgICAgICAicGxhdGZvcm1fc3lzdGVtIjogcGxhdGZvcm0uc3lzdGVt
KCksCisgICAgICAgICJwbGF0Zm9ybV92ZXJzaW9uIjogcGxhdGZvcm0udmVyc2lvbigpLAorICAg
ICAgICAicHl0aG9uX2Z1bGxfdmVyc2lvbiI6IHBsYXRmb3JtLnB5dGhvbl92ZXJzaW9uKCksCisg
ICAgICAgICJwbGF0Zm9ybV9weXRob25faW1wbGVtZW50YXRpb24iOiBwbGF0Zm9ybS5weXRob25f
aW1wbGVtZW50YXRpb24oKSwKKyAgICAgICAgInB5dGhvbl92ZXJzaW9uIjogIi4iLmpvaW4ocGxh
dGZvcm0ucHl0aG9uX3ZlcnNpb25fdHVwbGUoKVs6Ml0pLAorICAgICAgICAic3lzX3BsYXRmb3Jt
Ijogc3lzLnBsYXRmb3JtLAorICAgIH0KKworCitjbGFzcyBNYXJrZXIob2JqZWN0KToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgbWFya2VyKToKKyAgICAgICAgIyB0eXBlOiAoc3RyKSAtPiBOb25l
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX21hcmtlcnMgPSBfY29lcmNlX3BhcnNl
X3Jlc3VsdChNQVJLRVIucGFyc2VTdHJpbmcobWFya2VyKSkKKyAgICAgICAgZXhjZXB0IFBhcnNl
RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBlcnJfc3RyID0gIkludmFsaWQgbWFya2VyOiB7
MCFyfSwgcGFyc2UgZXJyb3IgYXQgezEhcn0iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBtYXJr
ZXIsIG1hcmtlcltlLmxvYyA6IGUubG9jICsgOF0KKyAgICAgICAgICAgICkKKyAgICAgICAgICAg
IHJhaXNlIEludmFsaWRNYXJrZXIoZXJyX3N0cikKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgor
ICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1cm4gX2Zvcm1hdF9tYXJrZXIo
c2VsZi5fbWFya2VycykKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgIyB0eXBl
OiAoKSAtPiBzdHIKKyAgICAgICAgcmV0dXJuICI8TWFya2VyKHswIXJ9KT4iLmZvcm1hdChzdHIo
c2VsZikpCisKKyAgICBkZWYgZXZhbHVhdGUoc2VsZiwgZW52aXJvbm1lbnQ9Tm9uZSk6CisgICAg
ICAgICMgdHlwZTogKE9wdGlvbmFsW0RpY3Rbc3RyLCBzdHJdXSkgLT4gYm9vbAorICAgICAgICAi
IiJFdmFsdWF0ZSBhIG1hcmtlci4KKworICAgICAgICBSZXR1cm4gdGhlIGJvb2xlYW4gZnJvbSBl
dmFsdWF0aW5nIHRoZSBnaXZlbiBtYXJrZXIgYWdhaW5zdCB0aGUKKyAgICAgICAgZW52aXJvbm1l
bnQuIGVudmlyb25tZW50IGlzIGFuIG9wdGlvbmFsIGFyZ3VtZW50IHRvIG92ZXJyaWRlIGFsbCBv
cgorICAgICAgICBwYXJ0IG9mIHRoZSBkZXRlcm1pbmVkIGVudmlyb25tZW50LgorCisgICAgICAg
IFRoZSBlbnZpcm9ubWVudCBpcyBkZXRlcm1pbmVkIGZyb20gdGhlIGN1cnJlbnQgUHl0aG9uIHBy
b2Nlc3MuCisgICAgICAgICIiIgorICAgICAgICBjdXJyZW50X2Vudmlyb25tZW50ID0gZGVmYXVs
dF9lbnZpcm9ubWVudCgpCisgICAgICAgIGlmIGVudmlyb25tZW50IGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgY3VycmVudF9lbnZpcm9ubWVudC51cGRhdGUoZW52aXJvbm1lbnQpCisKKyAgICAg
ICAgcmV0dXJuIF9ldmFsdWF0ZV9tYXJrZXJzKHNlbGYuX21hcmtlcnMsIGN1cnJlbnRfZW52aXJv
bm1lbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvcHkudHlwZWQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvcHkudHlwZWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQx
ZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcv
cGFja2FnaW5nL3JlcXVpcmVtZW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9yZXF1
aXJlbWVudHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIyNmU5ODRlMjQ2NzExZDQ0OWJjMGM0YzQyMGVjNTY4
NGE2ZWJiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9yZXF1
aXJlbWVudHMucHkKQEAgLTAsMCArMSwxNTEgQEAKKyMgVGhpcyBmaWxlIGlzIGR1YWwgbGljZW5z
ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbgorIyAyLjAs
IGFuZCB0aGUgQlNEIExpY2Vuc2UuIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9m
IHRoaXMgcmVwb3NpdG9yeQorIyBmb3IgY29tcGxldGUgZGV0YWlscy4KK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1w
b3J0IHN0cmluZworaW1wb3J0IHJlCitpbXBvcnQgc3lzCisKK2Zyb20gcHlwYXJzaW5nIGltcG9y
dCBzdHJpbmdTdGFydCwgc3RyaW5nRW5kLCBvcmlnaW5hbFRleHRGb3IsIFBhcnNlRXhjZXB0aW9u
Citmcm9tIHB5cGFyc2luZyBpbXBvcnQgWmVyb09yTW9yZSwgV29yZCwgT3B0aW9uYWwsIFJlZ2V4
LCBDb21iaW5lCitmcm9tIHB5cGFyc2luZyBpbXBvcnQgTGl0ZXJhbCBhcyBMICAjIG5vcWEKKwor
ZnJvbSAuX3R5cGluZyBpbXBvcnQgVFlQRV9DSEVDS0lORworZnJvbSAubWFya2VycyBpbXBvcnQg
TUFSS0VSX0VYUFIsIE1hcmtlcgorZnJvbSAuc3BlY2lmaWVycyBpbXBvcnQgTGVnYWN5U3BlY2lm
aWVyLCBTcGVjaWZpZXIsIFNwZWNpZmllclNldAorCitpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49
IDM6CisgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHBhcnNlIGFzIHVybHBhcnNlICAjIHByYWdtYTog
bm8gY292ZXIKK2Vsc2U6ICAjIHByYWdtYTogbm8gY292ZXIKKyAgICBpbXBvcnQgdXJscGFyc2UK
KworCitpZiBUWVBFX0NIRUNLSU5HOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgZnJvbSB0eXBp
bmcgaW1wb3J0IExpc3QKKworCitjbGFzcyBJbnZhbGlkUmVxdWlyZW1lbnQoVmFsdWVFcnJvcik6
CisgICAgIiIiCisgICAgQW4gaW52YWxpZCByZXF1aXJlbWVudCB3YXMgZm91bmQsIHVzZXJzIHNo
b3VsZCByZWZlciB0byBQRVAgNTA4LgorICAgICIiIgorCisKK0FMUEhBTlVNID0gV29yZChzdHJp
bmcuYXNjaWlfbGV0dGVycyArIHN0cmluZy5kaWdpdHMpCisKK0xCUkFDS0VUID0gTCgiWyIpLnN1
cHByZXNzKCkKK1JCUkFDS0VUID0gTCgiXSIpLnN1cHByZXNzKCkKK0xQQVJFTiA9IEwoIigiKS5z
dXBwcmVzcygpCitSUEFSRU4gPSBMKCIpIikuc3VwcHJlc3MoKQorQ09NTUEgPSBMKCIsIikuc3Vw
cHJlc3MoKQorU0VNSUNPTE9OID0gTCgiOyIpLnN1cHByZXNzKCkKK0FUID0gTCgiQCIpLnN1cHBy
ZXNzKCkKKworUFVOQ1RVQVRJT04gPSBXb3JkKCItXy4iKQorSURFTlRJRklFUl9FTkQgPSBBTFBI
QU5VTSB8IChaZXJvT3JNb3JlKFBVTkNUVUFUSU9OKSArIEFMUEhBTlVNKQorSURFTlRJRklFUiA9
IENvbWJpbmUoQUxQSEFOVU0gKyBaZXJvT3JNb3JlKElERU5USUZJRVJfRU5EKSkKKworTkFNRSA9
IElERU5USUZJRVIoIm5hbWUiKQorRVhUUkEgPSBJREVOVElGSUVSCisKK1VSSSA9IFJlZ2V4KHIi
W14gXSsiKSgidXJsIikKK1VSTCA9IEFUICsgVVJJCisKK0VYVFJBU19MSVNUID0gRVhUUkEgKyBa
ZXJvT3JNb3JlKENPTU1BICsgRVhUUkEpCitFWFRSQVMgPSAoTEJSQUNLRVQgKyBPcHRpb25hbChF
WFRSQVNfTElTVCkgKyBSQlJBQ0tFVCkoImV4dHJhcyIpCisKK1ZFUlNJT05fUEVQNDQwID0gUmVn
ZXgoU3BlY2lmaWVyLl9yZWdleF9zdHIsIHJlLlZFUkJPU0UgfCByZS5JR05PUkVDQVNFKQorVkVS
U0lPTl9MRUdBQ1kgPSBSZWdleChMZWdhY3lTcGVjaWZpZXIuX3JlZ2V4X3N0ciwgcmUuVkVSQk9T
RSB8IHJlLklHTk9SRUNBU0UpCisKK1ZFUlNJT05fT05FID0gVkVSU0lPTl9QRVA0NDAgXiBWRVJT
SU9OX0xFR0FDWQorVkVSU0lPTl9NQU5ZID0gQ29tYmluZSgKKyAgICBWRVJTSU9OX09ORSArIFpl
cm9Pck1vcmUoQ09NTUEgKyBWRVJTSU9OX09ORSksIGpvaW5TdHJpbmc9IiwiLCBhZGphY2VudD1G
YWxzZQorKSgiX3Jhd19zcGVjIikKK19WRVJTSU9OX1NQRUMgPSBPcHRpb25hbCgoKExQQVJFTiAr
IFZFUlNJT05fTUFOWSArIFJQQVJFTikgfCBWRVJTSU9OX01BTlkpKQorX1ZFUlNJT05fU1BFQy5z
ZXRQYXJzZUFjdGlvbihsYW1iZGEgcywgbCwgdDogdC5fcmF3X3NwZWMgb3IgIiIpCisKK1ZFUlNJ
T05fU1BFQyA9IG9yaWdpbmFsVGV4dEZvcihfVkVSU0lPTl9TUEVDKSgic3BlY2lmaWVyIikKK1ZF
UlNJT05fU1BFQy5zZXRQYXJzZUFjdGlvbihsYW1iZGEgcywgbCwgdDogdFsxXSkKKworTUFSS0VS
X0VYUFIgPSBvcmlnaW5hbFRleHRGb3IoTUFSS0VSX0VYUFIoKSkoIm1hcmtlciIpCitNQVJLRVJf
RVhQUi5zZXRQYXJzZUFjdGlvbigKKyAgICBsYW1iZGEgcywgbCwgdDogTWFya2VyKHNbdC5fb3Jp
Z2luYWxfc3RhcnQgOiB0Ll9vcmlnaW5hbF9lbmRdKQorKQorTUFSS0VSX1NFUEFSQVRPUiA9IFNF
TUlDT0xPTgorTUFSS0VSID0gTUFSS0VSX1NFUEFSQVRPUiArIE1BUktFUl9FWFBSCisKK1ZFUlNJ
T05fQU5EX01BUktFUiA9IFZFUlNJT05fU1BFQyArIE9wdGlvbmFsKE1BUktFUikKK1VSTF9BTkRf
TUFSS0VSID0gVVJMICsgT3B0aW9uYWwoTUFSS0VSKQorCitOQU1FRF9SRVFVSVJFTUVOVCA9IE5B
TUUgKyBPcHRpb25hbChFWFRSQVMpICsgKFVSTF9BTkRfTUFSS0VSIHwgVkVSU0lPTl9BTkRfTUFS
S0VSKQorCitSRVFVSVJFTUVOVCA9IHN0cmluZ1N0YXJ0ICsgTkFNRURfUkVRVUlSRU1FTlQgKyBz
dHJpbmdFbmQKKyMgcHlwYXJzaW5nIGlzbid0IHRocmVhZCBzYWZlIGR1cmluZyBpbml0aWFsaXph
dGlvbiwgc28gd2UgZG8gaXQgZWFnZXJseSwgc2VlCisjIGlzc3VlICMxMDQKK1JFUVVJUkVNRU5U
LnBhcnNlU3RyaW5nKCJ4W10iKQorCisKK2NsYXNzIFJlcXVpcmVtZW50KG9iamVjdCk6CisgICAg
IiIiUGFyc2UgYSByZXF1aXJlbWVudC4KKworICAgIFBhcnNlIGEgZ2l2ZW4gcmVxdWlyZW1lbnQg
c3RyaW5nIGludG8gaXRzIHBhcnRzLCBzdWNoIGFzIG5hbWUsIHNwZWNpZmllciwKKyAgICBVUkws
IGFuZCBleHRyYXMuIFJhaXNlcyBJbnZhbGlkUmVxdWlyZW1lbnQgb24gYSBiYWRseS1mb3JtZWQg
cmVxdWlyZW1lbnQKKyAgICBzdHJpbmcuCisgICAgIiIiCisKKyAgICAjIFRPRE86IENhbiB3ZSB0
ZXN0IHdoZXRoZXIgc29tZXRoaW5nIGlzIGNvbnRhaW5lZCB3aXRoaW4gYSByZXF1aXJlbWVudD8K
KyAgICAjICAgICAgIElmIHNvIGhvdyBkbyB3ZSBkbyB0aGF0PyBEbyB3ZSBuZWVkIHRvIHRlc3Qg
YWdhaW5zdCB0aGUgX25hbWVfIG9mCisgICAgIyAgICAgICB0aGUgdGhpbmcgYXMgd2VsbCBhcyB0
aGUgdmVyc2lvbj8gV2hhdCBhYm91dCB0aGUgbWFya2Vycz8KKyAgICAjIFRPRE86IENhbiB3ZSBu
b3JtYWxpemUgdGhlIG5hbWUgYW5kIGV4dHJhIG5hbWU/CisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcmVxdWlyZW1lbnRfc3RyaW5nKToKKyAgICAgICAgIyB0eXBlOiAoc3RyKSAtPiBOb25lCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlcSA9IFJFUVVJUkVNRU5ULnBhcnNlU3RyaW5nKHJl
cXVpcmVtZW50X3N0cmluZykKKyAgICAgICAgZXhjZXB0IFBhcnNlRXhjZXB0aW9uIGFzIGU6Cisg
ICAgICAgICAgICByYWlzZSBJbnZhbGlkUmVxdWlyZW1lbnQoCisgICAgICAgICAgICAgICAgJ1Bh
cnNlIGVycm9yIGF0ICJ7MCFyfSI6IHsxfScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBy
ZXF1aXJlbWVudF9zdHJpbmdbZS5sb2MgOiBlLmxvYyArIDhdLCBlLm1zZworICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgICkKKworICAgICAgICBzZWxmLm5hbWUgPSByZXEubmFtZQorICAg
ICAgICBpZiByZXEudXJsOgorICAgICAgICAgICAgcGFyc2VkX3VybCA9IHVybHBhcnNlLnVybHBh
cnNlKHJlcS51cmwpCisgICAgICAgICAgICBpZiBwYXJzZWRfdXJsLnNjaGVtZSA9PSAiZmlsZSI6
CisgICAgICAgICAgICAgICAgaWYgdXJscGFyc2UudXJsdW5wYXJzZShwYXJzZWRfdXJsKSAhPSBy
ZXEudXJsOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkUmVxdWlyZW1lbnQoIklu
dmFsaWQgVVJMIGdpdmVuIikKKyAgICAgICAgICAgIGVsaWYgbm90IChwYXJzZWRfdXJsLnNjaGVt
ZSBhbmQgcGFyc2VkX3VybC5uZXRsb2MpIG9yICgKKyAgICAgICAgICAgICAgICBub3QgcGFyc2Vk
X3VybC5zY2hlbWUgYW5kIG5vdCBwYXJzZWRfdXJsLm5ldGxvYworICAgICAgICAgICAgKToKKyAg
ICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkUmVxdWlyZW1lbnQoIkludmFsaWQgVVJMOiB7MH0i
LmZvcm1hdChyZXEudXJsKSkKKyAgICAgICAgICAgIHNlbGYudXJsID0gcmVxLnVybAorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgc2VsZi51cmwgPSBOb25lCisgICAgICAgIHNlbGYuZXh0cmFz
ID0gc2V0KHJlcS5leHRyYXMuYXNMaXN0KCkgaWYgcmVxLmV4dHJhcyBlbHNlIFtdKQorICAgICAg
ICBzZWxmLnNwZWNpZmllciA9IFNwZWNpZmllclNldChyZXEuc3BlY2lmaWVyKQorICAgICAgICBz
ZWxmLm1hcmtlciA9IHJlcS5tYXJrZXIgaWYgcmVxLm1hcmtlciBlbHNlIE5vbmUKKworICAgIGRl
ZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICBwYXJ0
cyA9IFtzZWxmLm5hbWVdICAjIHR5cGU6IExpc3Rbc3RyXQorCisgICAgICAgIGlmIHNlbGYuZXh0
cmFzOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKCJbezB9XSIuZm9ybWF0KCIsIi5qb2luKHNv
cnRlZChzZWxmLmV4dHJhcykpKSkKKworICAgICAgICBpZiBzZWxmLnNwZWNpZmllcjoKKyAgICAg
ICAgICAgIHBhcnRzLmFwcGVuZChzdHIoc2VsZi5zcGVjaWZpZXIpKQorCisgICAgICAgIGlmIHNl
bGYudXJsOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKCJAIHswfSIuZm9ybWF0KHNlbGYudXJs
KSkKKyAgICAgICAgICAgIGlmIHNlbGYubWFya2VyOgorICAgICAgICAgICAgICAgIHBhcnRzLmFw
cGVuZCgiICIpCisKKyAgICAgICAgaWYgc2VsZi5tYXJrZXI6CisgICAgICAgICAgICBwYXJ0cy5h
cHBlbmQoIjsgezB9Ii5mb3JtYXQoc2VsZi5tYXJrZXIpKQorCisgICAgICAgIHJldHVybiAiIi5q
b2luKHBhcnRzKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IHN0cgorICAgICAgICByZXR1cm4gIjxSZXF1aXJlbWVudCh7MCFyfSk+Ii5mb3JtYXQoc3Ry
KHNlbGYpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3NwZWNpZmllcnMu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvc3BlY2lmaWVycy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NDJjYmZlZjMzMjVmYzI0MjVjNzY1ZGRmMTJjMjk2MDUzZDUzZjQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3NwZWNpZmllcnMucHkKQEAgLTAsMCArMSw4NjQg
QEAKKyMgVGhpcyBmaWxlIGlzIGR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBB
cGFjaGUgTGljZW5zZSwgVmVyc2lvbgorIyAyLjAsIGFuZCB0aGUgQlNEIExpY2Vuc2UuIFNlZSB0
aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoaXMgcmVwb3NpdG9yeQorIyBmb3IgY29t
cGxldGUgZGV0YWlscy4KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGFiYworaW1wb3J0IGZ1bmN0b29scwor
aW1wb3J0IGl0ZXJ0b29scworaW1wb3J0IHJlCitpbXBvcnQgd2FybmluZ3MKKworZnJvbSAuX2Nv
bXBhdCBpbXBvcnQgc3RyaW5nX3R5cGVzLCB3aXRoX21ldGFjbGFzcworZnJvbSAuX3R5cGluZyBp
bXBvcnQgVFlQRV9DSEVDS0lORworZnJvbSAudXRpbHMgaW1wb3J0IGNhbm9uaWNhbGl6ZV92ZXJz
aW9uCitmcm9tIC52ZXJzaW9uIGltcG9ydCBWZXJzaW9uLCBMZWdhY3lWZXJzaW9uLCBwYXJzZQor
CitpZiBUWVBFX0NIRUNLSU5HOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgZnJvbSB0eXBpbmcg
aW1wb3J0IExpc3QsIERpY3QsIFVuaW9uLCBJdGVyYWJsZSwgSXRlcmF0b3IsIE9wdGlvbmFsLCBD
YWxsYWJsZSwgVHVwbGUKKworICAgIFBhcnNlZFZlcnNpb24gPSBVbmlvbltWZXJzaW9uLCBMZWdh
Y3lWZXJzaW9uXQorICAgIFVucGFyc2VkVmVyc2lvbiA9IFVuaW9uW1ZlcnNpb24sIExlZ2FjeVZl
cnNpb24sIHN0cl0KKyAgICBDYWxsYWJsZU9wZXJhdG9yID0gQ2FsbGFibGVbW1BhcnNlZFZlcnNp
b24sIHN0cl0sIGJvb2xdCisKKworY2xhc3MgSW52YWxpZFNwZWNpZmllcihWYWx1ZUVycm9yKToK
KyAgICAiIiIKKyAgICBBbiBpbnZhbGlkIHNwZWNpZmllciB3YXMgZm91bmQsIHVzZXJzIHNob3Vs
ZCByZWZlciB0byBQRVAgNDQwLgorICAgICIiIgorCisKK2NsYXNzIEJhc2VTcGVjaWZpZXIod2l0
aF9tZXRhY2xhc3MoYWJjLkFCQ01ldGEsIG9iamVjdCkpOiAgIyB0eXBlOiBpZ25vcmUKKyAgICBA
YWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgICMgdHlw
ZTogKCkgLT4gc3RyCisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBzdHIgcmVwcmVz
ZW50YXRpb24gb2YgdGhpcyBTcGVjaWZpZXIgbGlrZSBvYmplY3QuIFRoaXMKKyAgICAgICAgc2hv
dWxkIGJlIHJlcHJlc2VudGF0aXZlIG9mIHRoZSBTcGVjaWZpZXIgaXRzZWxmLgorICAgICAgICAi
IiIKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgX19oYXNoX18oc2VsZik6Cisg
ICAgICAgICMgdHlwZTogKCkgLT4gaW50CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEg
aGFzaCB2YWx1ZSBmb3IgdGhpcyBTcGVjaWZpZXIgbGlrZSBvYmplY3QuCisgICAgICAgICIiIgor
CisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgor
ICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgIiIiCisgICAgICAgIFJl
dHVybnMgYSBib29sZWFuIHJlcHJlc2VudGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgdHdvIFNwZWNp
ZmllciBsaWtlCisgICAgICAgIG9iamVjdHMgYXJlIGVxdWFsLgorICAgICAgICAiIiIKKworICAg
IEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAg
ICAgIyB0eXBlOiAob2JqZWN0KSAtPiBib29sCisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5z
IGEgYm9vbGVhbiByZXByZXNlbnRpbmcgd2hldGhlciBvciBub3QgdGhlIHR3byBTcGVjaWZpZXIg
bGlrZQorICAgICAgICBvYmplY3RzIGFyZSBub3QgZXF1YWwuCisgICAgICAgICIiIgorCisgICAg
QGFiYy5hYnN0cmFjdHByb3BlcnR5CisgICAgZGVmIHByZXJlbGVhc2VzKHNlbGYpOgorICAgICAg
ICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW2Jvb2xdCisgICAgICAgICIiIgorICAgICAgICBSZXR1
cm5zIHdoZXRoZXIgb3Igbm90IHByZS1yZWxlYXNlcyBhcyBhIHdob2xlIGFyZSBhbGxvd2VkIGJ5
IHRoaXMKKyAgICAgICAgc3BlY2lmaWVyLgorICAgICAgICAiIiIKKworICAgIEBwcmVyZWxlYXNl
cy5zZXR0ZXIKKyAgICBkZWYgcHJlcmVsZWFzZXMoc2VsZiwgdmFsdWUpOgorICAgICAgICAjIHR5
cGU6IChib29sKSAtPiBOb25lCisgICAgICAgICIiIgorICAgICAgICBTZXRzIHdoZXRoZXIgb3Ig
bm90IHByZS1yZWxlYXNlcyBhcyBhIHdob2xlIGFyZSBhbGxvd2VkIGJ5IHRoaXMKKyAgICAgICAg
c3BlY2lmaWVyLgorICAgICAgICAiIiIKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBk
ZWYgY29udGFpbnMoc2VsZiwgaXRlbSwgcHJlcmVsZWFzZXM9Tm9uZSk6CisgICAgICAgICMgdHlw
ZTogKHN0ciwgT3B0aW9uYWxbYm9vbF0pIC0+IGJvb2wKKyAgICAgICAgIiIiCisgICAgICAgIERl
dGVybWluZXMgaWYgdGhlIGdpdmVuIGl0ZW0gaXMgY29udGFpbmVkIHdpdGhpbiB0aGlzIHNwZWNp
Zmllci4KKyAgICAgICAgIiIiCisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIGZp
bHRlcihzZWxmLCBpdGVyYWJsZSwgcHJlcmVsZWFzZXM9Tm9uZSk6CisgICAgICAgICMgdHlwZTog
KEl0ZXJhYmxlW1VucGFyc2VkVmVyc2lvbl0sIE9wdGlvbmFsW2Jvb2xdKSAtPiBJdGVyYWJsZVtV
bnBhcnNlZFZlcnNpb25dCisgICAgICAgICIiIgorICAgICAgICBUYWtlcyBhbiBpdGVyYWJsZSBv
ZiBpdGVtcyBhbmQgZmlsdGVycyB0aGVtIHNvIHRoYXQgb25seSBpdGVtcyB3aGljaAorICAgICAg
ICBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGlzIHNwZWNpZmllciBhcmUgYWxsb3dlZCBpbiBpdC4K
KyAgICAgICAgIiIiCisKKworY2xhc3MgX0luZGl2aWR1YWxTcGVjaWZpZXIoQmFzZVNwZWNpZmll
cik6CisKKyAgICBfb3BlcmF0b3JzID0ge30gICMgdHlwZTogRGljdFtzdHIsIHN0cl0KKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBzcGVjPSIiLCBwcmVyZWxlYXNlcz1Ob25lKToKKyAgICAgICAg
IyB0eXBlOiAoc3RyLCBPcHRpb25hbFtib29sXSkgLT4gTm9uZQorICAgICAgICBtYXRjaCA9IHNl
bGYuX3JlZ2V4LnNlYXJjaChzcGVjKQorICAgICAgICBpZiBub3QgbWF0Y2g6CisgICAgICAgICAg
ICByYWlzZSBJbnZhbGlkU3BlY2lmaWVyKCJJbnZhbGlkIHNwZWNpZmllcjogJ3swfSciLmZvcm1h
dChzcGVjKSkKKworICAgICAgICBzZWxmLl9zcGVjID0gKAorICAgICAgICAgICAgbWF0Y2guZ3Jv
dXAoIm9wZXJhdG9yIikuc3RyaXAoKSwKKyAgICAgICAgICAgIG1hdGNoLmdyb3VwKCJ2ZXJzaW9u
Iikuc3RyaXAoKSwKKyAgICAgICAgKSAgIyB0eXBlOiBUdXBsZVtzdHIsIHN0cl0KKworICAgICAg
ICAjIFN0b3JlIHdoZXRoZXIgb3Igbm90IHRoaXMgU3BlY2lmaWVyIHNob3VsZCBhY2NlcHQgcHJl
cmVsZWFzZXMKKyAgICAgICAgc2VsZi5fcHJlcmVsZWFzZXMgPSBwcmVyZWxlYXNlcworCisgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICBw
cmUgPSAoCisgICAgICAgICAgICAiLCBwcmVyZWxlYXNlcz17MCFyfSIuZm9ybWF0KHNlbGYucHJl
cmVsZWFzZXMpCisgICAgICAgICAgICBpZiBzZWxmLl9wcmVyZWxlYXNlcyBpcyBub3QgTm9uZQor
ICAgICAgICAgICAgZWxzZSAiIgorICAgICAgICApCisKKyAgICAgICAgcmV0dXJuICI8ezB9KHsx
IXJ9ezJ9KT4iLmZvcm1hdChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc3RyKHNlbGYpLCBwcmUp
CisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAg
ICAgICAgcmV0dXJuICJ7MH17MX0iLmZvcm1hdCgqc2VsZi5fc3BlYykKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBfY2Fub25pY2FsX3NwZWMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4g
VHVwbGVbc3RyLCBVbmlvbltWZXJzaW9uLCBzdHJdXQorICAgICAgICByZXR1cm4gc2VsZi5fc3Bl
Y1swXSwgY2Fub25pY2FsaXplX3ZlcnNpb24oc2VsZi5fc3BlY1sxXSkKKworICAgIGRlZiBfX2hh
c2hfXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBpbnQKKyAgICAgICAgcmV0dXJuIGhh
c2goc2VsZi5fY2Fub25pY2FsX3NwZWMpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToK
KyAgICAgICAgIyB0eXBlOiAob2JqZWN0KSAtPiBib29sCisgICAgICAgIGlmIGlzaW5zdGFuY2Uo
b3RoZXIsIHN0cmluZ190eXBlcyk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
b3RoZXIgPSBzZWxmLl9fY2xhc3NfXyhzdHIob3RoZXIpKQorICAgICAgICAgICAgZXhjZXB0IElu
dmFsaWRTcGVjaWZpZXI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisg
ICAgICAgIGVsaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIHNlbGYuX19jbGFzc19fKToKKyAgICAg
ICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorCisgICAgICAgIHJldHVybiBzZWxmLl9jYW5v
bmljYWxfc3BlYyA9PSBvdGhlci5fY2Fub25pY2FsX3NwZWMKKworICAgIGRlZiBfX25lX18oc2Vs
Ziwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgaWYg
aXNpbnN0YW5jZShvdGhlciwgc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBvdGhlciA9IHNlbGYuX19jbGFzc19fKHN0cihvdGhlcikpCisgICAgICAgICAg
ICBleGNlcHQgSW52YWxpZFNwZWNpZmllcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm90SW1w
bGVtZW50ZWQKKyAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgc2VsZi5fX2NsYXNz
X18pOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICAgICAgcmV0dXJu
IHNlbGYuX3NwZWMgIT0gb3RoZXIuX3NwZWMKKworICAgIGRlZiBfZ2V0X29wZXJhdG9yKHNlbGYs
IG9wKToKKyAgICAgICAgIyB0eXBlOiAoc3RyKSAtPiBDYWxsYWJsZU9wZXJhdG9yCisgICAgICAg
IG9wZXJhdG9yX2NhbGxhYmxlID0gZ2V0YXR0cigKKyAgICAgICAgICAgIHNlbGYsICJfY29tcGFy
ZV97MH0iLmZvcm1hdChzZWxmLl9vcGVyYXRvcnNbb3BdKQorICAgICAgICApICAjIHR5cGU6IENh
bGxhYmxlT3BlcmF0b3IKKyAgICAgICAgcmV0dXJuIG9wZXJhdG9yX2NhbGxhYmxlCisKKyAgICBk
ZWYgX2NvZXJjZV92ZXJzaW9uKHNlbGYsIHZlcnNpb24pOgorICAgICAgICAjIHR5cGU6IChVbnBh
cnNlZFZlcnNpb24pIC0+IFBhcnNlZFZlcnNpb24KKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo
dmVyc2lvbiwgKExlZ2FjeVZlcnNpb24sIFZlcnNpb24pKToKKyAgICAgICAgICAgIHZlcnNpb24g
PSBwYXJzZSh2ZXJzaW9uKQorICAgICAgICByZXR1cm4gdmVyc2lvbgorCisgICAgQHByb3BlcnR5
CisgICAgZGVmIG9wZXJhdG9yKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAg
ICAgICByZXR1cm4gc2VsZi5fc3BlY1swXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHZlcnNp
b24oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJldHVybiBzZWxm
Ll9zcGVjWzFdCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHJlcmVsZWFzZXMoc2VsZik6Cisg
ICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbYm9vbF0KKyAgICAgICAgcmV0dXJuIHNlbGYu
X3ByZXJlbGVhc2VzCisKKyAgICBAcHJlcmVsZWFzZXMuc2V0dGVyCisgICAgZGVmIHByZXJlbGVh
c2VzKHNlbGYsIHZhbHVlKToKKyAgICAgICAgIyB0eXBlOiAoYm9vbCkgLT4gTm9uZQorICAgICAg
ICBzZWxmLl9wcmVyZWxlYXNlcyA9IHZhbHVlCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYs
IGl0ZW0pOgorICAgICAgICAjIHR5cGU6IChzdHIpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIHNl
bGYuY29udGFpbnMoaXRlbSkKKworICAgIGRlZiBjb250YWlucyhzZWxmLCBpdGVtLCBwcmVyZWxl
YXNlcz1Ob25lKToKKyAgICAgICAgIyB0eXBlOiAoVW5wYXJzZWRWZXJzaW9uLCBPcHRpb25hbFti
b29sXSkgLT4gYm9vbAorCisgICAgICAgICMgRGV0ZXJtaW5lIGlmIHByZXJlbGVhc2VzIGFyZSB0
byBiZSBhbGxvd2VkIG9yIG5vdC4KKyAgICAgICAgaWYgcHJlcmVsZWFzZXMgaXMgTm9uZToKKyAg
ICAgICAgICAgIHByZXJlbGVhc2VzID0gc2VsZi5wcmVyZWxlYXNlcworCisgICAgICAgICMgTm9y
bWFsaXplIGl0ZW0gdG8gYSBWZXJzaW9uIG9yIExlZ2FjeVZlcnNpb24sIHRoaXMgYWxsb3dzIHVz
IHRvIGhhdmUKKyAgICAgICAgIyBhIHNob3J0Y3V0IGZvciBgYCIyLjAiIGluIFNwZWNpZmllcigi
Pj0yIikKKyAgICAgICAgbm9ybWFsaXplZF9pdGVtID0gc2VsZi5fY29lcmNlX3ZlcnNpb24oaXRl
bSkKKworICAgICAgICAjIERldGVybWluZSBpZiB3ZSBzaG91bGQgYmUgc3VwcG9ydGluZyBwcmVy
ZWxlYXNlcyBpbiB0aGlzIHNwZWNpZmllcgorICAgICAgICAjIG9yIG5vdCwgaWYgd2UgZG8gbm90
IHN1cHBvcnQgcHJlcmVsZWFzZXMgdGhhbiB3ZSBjYW4gc2hvcnQgY2lyY3VpdAorICAgICAgICAj
IGxvZ2ljIGlmIHRoaXMgdmVyc2lvbiBpcyBhIHByZXJlbGVhc2VzLgorICAgICAgICBpZiBub3Jt
YWxpemVkX2l0ZW0uaXNfcHJlcmVsZWFzZSBhbmQgbm90IHByZXJlbGVhc2VzOgorICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgIyBBY3R1YWxseSBkbyB0aGUgY29tcGFyaXNvbiB0
byBkZXRlcm1pbmUgaWYgdGhpcyBpdGVtIGlzIGNvbnRhaW5lZAorICAgICAgICAjIHdpdGhpbiB0
aGlzIFNwZWNpZmllciBvciBub3QuCisgICAgICAgIG9wZXJhdG9yX2NhbGxhYmxlID0gc2VsZi5f
Z2V0X29wZXJhdG9yKHNlbGYub3BlcmF0b3IpICAjIHR5cGU6IENhbGxhYmxlT3BlcmF0b3IKKyAg
ICAgICAgcmV0dXJuIG9wZXJhdG9yX2NhbGxhYmxlKG5vcm1hbGl6ZWRfaXRlbSwgc2VsZi52ZXJz
aW9uKQorCisgICAgZGVmIGZpbHRlcihzZWxmLCBpdGVyYWJsZSwgcHJlcmVsZWFzZXM9Tm9uZSk6
CisgICAgICAgICMgdHlwZTogKEl0ZXJhYmxlW1VucGFyc2VkVmVyc2lvbl0sIE9wdGlvbmFsW2Jv
b2xdKSAtPiBJdGVyYWJsZVtVbnBhcnNlZFZlcnNpb25dCisKKyAgICAgICAgeWllbGRlZCA9IEZh
bHNlCisgICAgICAgIGZvdW5kX3ByZXJlbGVhc2VzID0gW10KKworICAgICAgICBrdyA9IHsicHJl
cmVsZWFzZXMiOiBwcmVyZWxlYXNlcyBpZiBwcmVyZWxlYXNlcyBpcyBub3QgTm9uZSBlbHNlIFRy
dWV9CisKKyAgICAgICAgIyBBdHRlbXB0IHRvIGl0ZXJhdGUgb3ZlciBhbGwgdGhlIHZhbHVlcyBp
biB0aGUgaXRlcmFibGUgYW5kIGlmIGFueSBvZgorICAgICAgICAjIHRoZW0gbWF0Y2gsIHlpZWxk
IHRoZW0uCisgICAgICAgIGZvciB2ZXJzaW9uIGluIGl0ZXJhYmxlOgorICAgICAgICAgICAgcGFy
c2VkX3ZlcnNpb24gPSBzZWxmLl9jb2VyY2VfdmVyc2lvbih2ZXJzaW9uKQorCisgICAgICAgICAg
ICBpZiBzZWxmLmNvbnRhaW5zKHBhcnNlZF92ZXJzaW9uLCAqKmt3KToKKyAgICAgICAgICAgICAg
ICAjIElmIG91ciB2ZXJzaW9uIGlzIGEgcHJlcmVsZWFzZSwgYW5kIHdlIHdlcmUgbm90IHNldCB0
byBhbGxvdworICAgICAgICAgICAgICAgICMgcHJlcmVsZWFzZXMsIHRoZW4gd2UnbGwgc3RvcmUg
aXQgZm9yIGxhdGVyIGluY2FzZSBub3RoaW5nCisgICAgICAgICAgICAgICAgIyBlbHNlIG1hdGNo
ZXMgdGhpcyBzcGVjaWZpZXIuCisgICAgICAgICAgICAgICAgaWYgcGFyc2VkX3ZlcnNpb24uaXNf
cHJlcmVsZWFzZSBhbmQgbm90ICgKKyAgICAgICAgICAgICAgICAgICAgcHJlcmVsZWFzZXMgb3Ig
c2VsZi5wcmVyZWxlYXNlcworICAgICAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgICAg
IGZvdW5kX3ByZXJlbGVhc2VzLmFwcGVuZCh2ZXJzaW9uKQorICAgICAgICAgICAgICAgICMgRWl0
aGVyIHRoaXMgaXMgbm90IGEgcHJlcmVsZWFzZSwgb3Igd2Ugc2hvdWxkIGhhdmUgYmVlbgorICAg
ICAgICAgICAgICAgICMgYWNjZXB0aW5nIHByZXJlbGVhc2VzIGZyb20gdGhlIGJlZ2lubmluZy4K
KyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB5aWVsZGVkID0gVHJ1
ZQorICAgICAgICAgICAgICAgICAgICB5aWVsZCB2ZXJzaW9uCisKKyAgICAgICAgIyBOb3cgdGhh
dCB3ZSd2ZSBpdGVyYXRlZCBvdmVyIGV2ZXJ5dGhpbmcsIGRldGVybWluZSBpZiB3ZSd2ZSB5aWVs
ZGVkCisgICAgICAgICMgYW55IHZhbHVlcywgYW5kIGlmIHdlIGhhdmUgbm90IGFuZCB3ZSBoYXZl
IGFueSBwcmVyZWxlYXNlcyBzdG9yZWQgdXAKKyAgICAgICAgIyB0aGVuIHdlIHdpbGwgZ28gYWhl
YWQgYW5kIHlpZWxkIHRoZSBwcmVyZWxlYXNlcy4KKyAgICAgICAgaWYgbm90IHlpZWxkZWQgYW5k
IGZvdW5kX3ByZXJlbGVhc2VzOgorICAgICAgICAgICAgZm9yIHZlcnNpb24gaW4gZm91bmRfcHJl
cmVsZWFzZXM6CisgICAgICAgICAgICAgICAgeWllbGQgdmVyc2lvbgorCisKK2NsYXNzIExlZ2Fj
eVNwZWNpZmllcihfSW5kaXZpZHVhbFNwZWNpZmllcik6CisKKyAgICBfcmVnZXhfc3RyID0gciIi
IgorICAgICAgICAoP1A8b3BlcmF0b3I+KD09fCE9fDw9fD49fDx8PikpCisgICAgICAgIFxzKgor
ICAgICAgICAoP1A8dmVyc2lvbj4KKyAgICAgICAgICAgIFteLDtccyldKiAjIFNpbmNlIHRoaXMg
aXMgYSAibGVnYWN5IiBzcGVjaWZpZXIsIGFuZCB0aGUgdmVyc2lvbgorICAgICAgICAgICAgICAg
ICAgICAgICMgc3RyaW5nIGNhbiBiZSBqdXN0IGFib3V0IGFueXRoaW5nLCB3ZSBtYXRjaCBldmVy
eXRoaW5nCisgICAgICAgICAgICAgICAgICAgICAgIyBleGNlcHQgZm9yIHdoaXRlc3BhY2UsIGEg
c2VtaS1jb2xvbiBmb3IgbWFya2VyIHN1cHBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgIyBh
IGNsb3NpbmcgcGFyZW4gc2luY2UgdmVyc2lvbnMgY2FuIGJlIGVuY2xvc2VkIGluCisgICAgICAg
ICAgICAgICAgICAgICAgIyB0aGVtLCBhbmQgYSBjb21tYSBzaW5jZSBpdCdzIGEgdmVyc2lvbiBz
ZXBhcmF0b3IuCisgICAgICAgICkKKyAgICAgICAgIiIiCisKKyAgICBfcmVnZXggPSByZS5jb21w
aWxlKHIiXlxzKiIgKyBfcmVnZXhfc3RyICsgciJccyokIiwgcmUuVkVSQk9TRSB8IHJlLklHTk9S
RUNBU0UpCisKKyAgICBfb3BlcmF0b3JzID0geworICAgICAgICAiPT0iOiAiZXF1YWwiLAorICAg
ICAgICAiIT0iOiAibm90X2VxdWFsIiwKKyAgICAgICAgIjw9IjogImxlc3NfdGhhbl9lcXVhbCIs
CisgICAgICAgICI+PSI6ICJncmVhdGVyX3RoYW5fZXF1YWwiLAorICAgICAgICAiPCI6ICJsZXNz
X3RoYW4iLAorICAgICAgICAiPiI6ICJncmVhdGVyX3RoYW4iLAorICAgIH0KKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBzcGVjPSIiLCBwcmVyZWxlYXNlcz1Ob25lKToKKyAgICAgICAgIyB0eXBl
OiAoc3RyLCBPcHRpb25hbFtib29sXSkgLT4gTm9uZQorICAgICAgICBzdXBlcihMZWdhY3lTcGVj
aWZpZXIsIHNlbGYpLl9faW5pdF9fKHNwZWMsIHByZXJlbGVhc2VzKQorCisgICAgICAgIHdhcm5p
bmdzLndhcm4oCisgICAgICAgICAgICAiQ3JlYXRpbmcgYSBMZWdhY3lWZXJzaW9uIGhhcyBiZWVu
IGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgIgorICAgICAgICAgICAgInJlbW92ZWQgaW4gdGhlIG5l
eHQgbWFqb3IgcmVsZWFzZSIsCisgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsCisgICAg
ICAgICkKKworICAgIGRlZiBfY29lcmNlX3ZlcnNpb24oc2VsZiwgdmVyc2lvbik6CisgICAgICAg
ICMgdHlwZTogKFVuaW9uW1BhcnNlZFZlcnNpb24sIHN0cl0pIC0+IExlZ2FjeVZlcnNpb24KKyAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmVyc2lvbiwgTGVnYWN5VmVyc2lvbik6CisgICAgICAg
ICAgICB2ZXJzaW9uID0gTGVnYWN5VmVyc2lvbihzdHIodmVyc2lvbikpCisgICAgICAgIHJldHVy
biB2ZXJzaW9uCisKKyAgICBkZWYgX2NvbXBhcmVfZXF1YWwoc2VsZiwgcHJvc3BlY3RpdmUsIHNw
ZWMpOgorICAgICAgICAjIHR5cGU6IChMZWdhY3lWZXJzaW9uLCBzdHIpIC0+IGJvb2wKKyAgICAg
ICAgcmV0dXJuIHByb3NwZWN0aXZlID09IHNlbGYuX2NvZXJjZV92ZXJzaW9uKHNwZWMpCisKKyAg
ICBkZWYgX2NvbXBhcmVfbm90X2VxdWFsKHNlbGYsIHByb3NwZWN0aXZlLCBzcGVjKToKKyAgICAg
ICAgIyB0eXBlOiAoTGVnYWN5VmVyc2lvbiwgc3RyKSAtPiBib29sCisgICAgICAgIHJldHVybiBw
cm9zcGVjdGl2ZSAhPSBzZWxmLl9jb2VyY2VfdmVyc2lvbihzcGVjKQorCisgICAgZGVmIF9jb21w
YXJlX2xlc3NfdGhhbl9lcXVhbChzZWxmLCBwcm9zcGVjdGl2ZSwgc3BlYyk6CisgICAgICAgICMg
dHlwZTogKExlZ2FjeVZlcnNpb24sIHN0cikgLT4gYm9vbAorICAgICAgICByZXR1cm4gcHJvc3Bl
Y3RpdmUgPD0gc2VsZi5fY29lcmNlX3ZlcnNpb24oc3BlYykKKworICAgIGRlZiBfY29tcGFyZV9n
cmVhdGVyX3RoYW5fZXF1YWwoc2VsZiwgcHJvc3BlY3RpdmUsIHNwZWMpOgorICAgICAgICAjIHR5
cGU6IChMZWdhY3lWZXJzaW9uLCBzdHIpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIHByb3NwZWN0
aXZlID49IHNlbGYuX2NvZXJjZV92ZXJzaW9uKHNwZWMpCisKKyAgICBkZWYgX2NvbXBhcmVfbGVz
c190aGFuKHNlbGYsIHByb3NwZWN0aXZlLCBzcGVjKToKKyAgICAgICAgIyB0eXBlOiAoTGVnYWN5
VmVyc2lvbiwgc3RyKSAtPiBib29sCisgICAgICAgIHJldHVybiBwcm9zcGVjdGl2ZSA8IHNlbGYu
X2NvZXJjZV92ZXJzaW9uKHNwZWMpCisKKyAgICBkZWYgX2NvbXBhcmVfZ3JlYXRlcl90aGFuKHNl
bGYsIHByb3NwZWN0aXZlLCBzcGVjKToKKyAgICAgICAgIyB0eXBlOiAoTGVnYWN5VmVyc2lvbiwg
c3RyKSAtPiBib29sCisgICAgICAgIHJldHVybiBwcm9zcGVjdGl2ZSA+IHNlbGYuX2NvZXJjZV92
ZXJzaW9uKHNwZWMpCisKKworZGVmIF9yZXF1aXJlX3ZlcnNpb25fY29tcGFyZSgKKyAgICBmbiwg
ICMgdHlwZTogKENhbGxhYmxlW1tTcGVjaWZpZXIsIFBhcnNlZFZlcnNpb24sIHN0cl0sIGJvb2xd
KQorKToKKyAgICAjIHR5cGU6ICguLi4pIC0+IENhbGxhYmxlW1tTcGVjaWZpZXIsIFBhcnNlZFZl
cnNpb24sIHN0cl0sIGJvb2xdCisgICAgQGZ1bmN0b29scy53cmFwcyhmbikKKyAgICBkZWYgd3Jh
cHBlZChzZWxmLCBwcm9zcGVjdGl2ZSwgc3BlYyk6CisgICAgICAgICMgdHlwZTogKFNwZWNpZmll
ciwgUGFyc2VkVmVyc2lvbiwgc3RyKSAtPiBib29sCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNl
KHByb3NwZWN0aXZlLCBWZXJzaW9uKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAg
ICByZXR1cm4gZm4oc2VsZiwgcHJvc3BlY3RpdmUsIHNwZWMpCisKKyAgICByZXR1cm4gd3JhcHBl
ZAorCisKK2NsYXNzIFNwZWNpZmllcihfSW5kaXZpZHVhbFNwZWNpZmllcik6CisKKyAgICBfcmVn
ZXhfc3RyID0gciIiIgorICAgICAgICAoP1A8b3BlcmF0b3I+KH49fD09fCE9fDw9fD49fDx8Pnw9
PT0pKQorICAgICAgICAoP1A8dmVyc2lvbj4KKyAgICAgICAgICAgICg/OgorICAgICAgICAgICAg
ICAgICMgVGhlIGlkZW50aXR5IG9wZXJhdG9ycyBhbGxvdyBmb3IgYW4gZXNjYXBlIGhhdGNoIHRo
YXQgd2lsbAorICAgICAgICAgICAgICAgICMgZG8gYW4gZXhhY3Qgc3RyaW5nIG1hdGNoIG9mIHRo
ZSB2ZXJzaW9uIHlvdSB3aXNoIHRvIGluc3RhbGwuCisgICAgICAgICAgICAgICAgIyBUaGlzIHdp
bGwgbm90IGJlIHBhcnNlZCBieSBQRVAgNDQwIGFuZCB3ZSBjYW5ub3QgZGV0ZXJtaW5lCisgICAg
ICAgICAgICAgICAgIyBhbnkgc2VtYW50aWMgbWVhbmluZyBmcm9tIGl0LiBUaGlzIG9wZXJhdG9y
IGlzIGRpc2NvdXJhZ2VkCisgICAgICAgICAgICAgICAgIyBidXQgaW5jbHVkZWQgZW50aXJlbHkg
YXMgYW4gZXNjYXBlIGhhdGNoLgorICAgICAgICAgICAgICAgICg/PD09PT0pICAjIE9ubHkgbWF0
Y2ggZm9yIHRoZSBpZGVudGl0eSBvcGVyYXRvcgorICAgICAgICAgICAgICAgIFxzKgorICAgICAg
ICAgICAgICAgIFteXHNdKiAgICAjIFdlIGp1c3QgbWF0Y2ggZXZlcnl0aGluZywgZXhjZXB0IGZv
ciB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICMgc2luY2Ugd2UgYXJlIG9u
bHkgdGVzdGluZyBmb3Igc3RyaWN0IGlkZW50aXR5LgorICAgICAgICAgICAgKQorICAgICAgICAg
ICAgfAorICAgICAgICAgICAgKD86CisgICAgICAgICAgICAgICAgIyBUaGUgKG5vbillcXVhbGl0
eSBvcGVyYXRvcnMgYWxsb3cgZm9yIHdpbGQgY2FyZCBhbmQgbG9jYWwKKyAgICAgICAgICAgICAg
ICAjIHZlcnNpb25zIHRvIGJlIHNwZWNpZmllZCBzbyB3ZSBoYXZlIHRvIGRlZmluZSB0aGVzZSB0
d28KKyAgICAgICAgICAgICAgICAjIG9wZXJhdG9ycyBzZXBhcmF0ZWx5IHRvIGVuYWJsZSB0aGF0
LgorICAgICAgICAgICAgICAgICg/PD09PXwhPSkgICAgICAgICAgICAjIE9ubHkgbWF0Y2ggZm9y
IGVxdWFscyBhbmQgbm90IGVxdWFscworCisgICAgICAgICAgICAgICAgXHMqCisgICAgICAgICAg
ICAgICAgdj8KKyAgICAgICAgICAgICAgICAoPzpbMC05XSshKT8gICAgICAgICAgIyBlcG9jaAor
ICAgICAgICAgICAgICAgIFswLTldKyg/OlwuWzAtOV0rKSogICAjIHJlbGVhc2UKKyAgICAgICAg
ICAgICAgICAoPzogICAgICAgICAgICAgICAgICAgIyBwcmUgcmVsZWFzZQorICAgICAgICAgICAg
ICAgICAgICBbLV9cLl0/CisgICAgICAgICAgICAgICAgICAgIChhfGJ8Y3xyY3xhbHBoYXxiZXRh
fHByZXxwcmV2aWV3KQorICAgICAgICAgICAgICAgICAgICBbLV9cLl0/CisgICAgICAgICAgICAg
ICAgICAgIFswLTldKgorICAgICAgICAgICAgICAgICk/CisgICAgICAgICAgICAgICAgKD86ICAg
ICAgICAgICAgICAgICAgICMgcG9zdCByZWxlYXNlCisgICAgICAgICAgICAgICAgICAgICg/Oi1b
MC05XSspfCg/OlstX1wuXT8ocG9zdHxyZXZ8cilbLV9cLl0/WzAtOV0qKQorICAgICAgICAgICAg
ICAgICk/CisKKyAgICAgICAgICAgICAgICAjIFlvdSBjYW5ub3QgdXNlIGEgd2lsZCBjYXJkIGFu
ZCBhIGRldiBvciBsb2NhbCB2ZXJzaW9uCisgICAgICAgICAgICAgICAgIyB0b2dldGhlciBzbyBn
cm91cCB0aGVtIHdpdGggYSB8IGFuZCBtYWtlIHRoZW0gb3B0aW9uYWwuCisgICAgICAgICAgICAg
ICAgKD86CisgICAgICAgICAgICAgICAgICAgICg/OlstX1wuXT9kZXZbLV9cLl0/WzAtOV0qKT8g
ICAgICAgICAjIGRldiByZWxlYXNlCisgICAgICAgICAgICAgICAgICAgICg/OlwrW2EtejAtOV0r
KD86Wy1fXC5dW2EtejAtOV0rKSopPyAjIGxvY2FsCisgICAgICAgICAgICAgICAgICAgIHwKKyAg
ICAgICAgICAgICAgICAgICAgXC5cKiAgIyBXaWxkIGNhcmQgc3ludGF4IG9mIC4qCisgICAgICAg
ICAgICAgICAgKT8KKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHwKKyAgICAgICAgICAgICg/
OgorICAgICAgICAgICAgICAgICMgVGhlIGNvbXBhdGlibGUgb3BlcmF0b3IgcmVxdWlyZXMgYXQg
bGVhc3QgdHdvIGRpZ2l0cyBpbiB0aGUKKyAgICAgICAgICAgICAgICAjIHJlbGVhc2Ugc2VnbWVu
dC4KKyAgICAgICAgICAgICAgICAoPzw9fj0pICAgICAgICAgICAgICAgIyBPbmx5IG1hdGNoIGZv
ciB0aGUgY29tcGF0aWJsZSBvcGVyYXRvcgorCisgICAgICAgICAgICAgICAgXHMqCisgICAgICAg
ICAgICAgICAgdj8KKyAgICAgICAgICAgICAgICAoPzpbMC05XSshKT8gICAgICAgICAgIyBlcG9j
aAorICAgICAgICAgICAgICAgIFswLTldKyg/OlwuWzAtOV0rKSsgICAjIHJlbGVhc2UgIChXZSBo
YXZlIGEgKyBpbnN0ZWFkIG9mIGEgKikKKyAgICAgICAgICAgICAgICAoPzogICAgICAgICAgICAg
ICAgICAgIyBwcmUgcmVsZWFzZQorICAgICAgICAgICAgICAgICAgICBbLV9cLl0/CisgICAgICAg
ICAgICAgICAgICAgIChhfGJ8Y3xyY3xhbHBoYXxiZXRhfHByZXxwcmV2aWV3KQorICAgICAgICAg
ICAgICAgICAgICBbLV9cLl0/CisgICAgICAgICAgICAgICAgICAgIFswLTldKgorICAgICAgICAg
ICAgICAgICk/CisgICAgICAgICAgICAgICAgKD86ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAjIHBvc3QgcmVsZWFzZQorICAgICAgICAgICAgICAgICAgICAoPzotWzAtOV0rKXwo
PzpbLV9cLl0/KHBvc3R8cmV2fHIpWy1fXC5dP1swLTldKikKKyAgICAgICAgICAgICAgICApPwor
ICAgICAgICAgICAgICAgICg/OlstX1wuXT9kZXZbLV9cLl0/WzAtOV0qKT8gICAgICAgICAgIyBk
ZXYgcmVsZWFzZQorICAgICAgICAgICAgKQorICAgICAgICAgICAgfAorICAgICAgICAgICAgKD86
CisgICAgICAgICAgICAgICAgIyBBbGwgb3RoZXIgb3BlcmF0b3JzIG9ubHkgYWxsb3cgYSBzdWIg
c2V0IG9mIHdoYXQgdGhlCisgICAgICAgICAgICAgICAgIyAobm9uKWVxdWFsaXR5IG9wZXJhdG9y
cyBkby4gU3BlY2lmaWNhbGx5IHRoZXkgZG8gbm90IGFsbG93CisgICAgICAgICAgICAgICAgIyBs
b2NhbCB2ZXJzaW9ucyB0byBiZSBzcGVjaWZpZWQgbm9yIGRvIHRoZXkgYWxsb3cgdGhlIHByZWZp
eAorICAgICAgICAgICAgICAgICMgbWF0Y2hpbmcgd2lsZCBjYXJkcy4KKyAgICAgICAgICAgICAg
ICAoPzwhPT18IT18fj0pICAgICAgICAgIyBXZSBoYXZlIHNwZWNpYWwgY2FzZXMgZm9yIHRoZXNl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3BlcmF0b3JzIHNvIHdl
IHdhbnQgdG8gbWFrZSBzdXJlIHRoZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIyBkb24ndCBtYXRjaCBoZXJlLgorCisgICAgICAgICAgICAgICAgXHMqCisgICAgICAg
ICAgICAgICAgdj8KKyAgICAgICAgICAgICAgICAoPzpbMC05XSshKT8gICAgICAgICAgIyBlcG9j
aAorICAgICAgICAgICAgICAgIFswLTldKyg/OlwuWzAtOV0rKSogICAjIHJlbGVhc2UKKyAgICAg
ICAgICAgICAgICAoPzogICAgICAgICAgICAgICAgICAgIyBwcmUgcmVsZWFzZQorICAgICAgICAg
ICAgICAgICAgICBbLV9cLl0/CisgICAgICAgICAgICAgICAgICAgIChhfGJ8Y3xyY3xhbHBoYXxi
ZXRhfHByZXxwcmV2aWV3KQorICAgICAgICAgICAgICAgICAgICBbLV9cLl0/CisgICAgICAgICAg
ICAgICAgICAgIFswLTldKgorICAgICAgICAgICAgICAgICk/CisgICAgICAgICAgICAgICAgKD86
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBvc3QgcmVsZWFzZQorICAgICAg
ICAgICAgICAgICAgICAoPzotWzAtOV0rKXwoPzpbLV9cLl0/KHBvc3R8cmV2fHIpWy1fXC5dP1sw
LTldKikKKyAgICAgICAgICAgICAgICApPworICAgICAgICAgICAgICAgICg/OlstX1wuXT9kZXZb
LV9cLl0/WzAtOV0qKT8gICAgICAgICAgIyBkZXYgcmVsZWFzZQorICAgICAgICAgICAgKQorICAg
ICAgICApCisgICAgICAgICIiIgorCisgICAgX3JlZ2V4ID0gcmUuY29tcGlsZShyIl5ccyoiICsg
X3JlZ2V4X3N0ciArIHIiXHMqJCIsIHJlLlZFUkJPU0UgfCByZS5JR05PUkVDQVNFKQorCisgICAg
X29wZXJhdG9ycyA9IHsKKyAgICAgICAgIn49IjogImNvbXBhdGlibGUiLAorICAgICAgICAiPT0i
OiAiZXF1YWwiLAorICAgICAgICAiIT0iOiAibm90X2VxdWFsIiwKKyAgICAgICAgIjw9IjogImxl
c3NfdGhhbl9lcXVhbCIsCisgICAgICAgICI+PSI6ICJncmVhdGVyX3RoYW5fZXF1YWwiLAorICAg
ICAgICAiPCI6ICJsZXNzX3RoYW4iLAorICAgICAgICAiPiI6ICJncmVhdGVyX3RoYW4iLAorICAg
ICAgICAiPT09IjogImFyYml0cmFyeSIsCisgICAgfQorCisgICAgQF9yZXF1aXJlX3ZlcnNpb25f
Y29tcGFyZQorICAgIGRlZiBfY29tcGFyZV9jb21wYXRpYmxlKHNlbGYsIHByb3NwZWN0aXZlLCBz
cGVjKToKKyAgICAgICAgIyB0eXBlOiAoUGFyc2VkVmVyc2lvbiwgc3RyKSAtPiBib29sCisKKyAg
ICAgICAgIyBDb21wYXRpYmxlIHJlbGVhc2VzIGhhdmUgYW4gZXF1aXZhbGVudCBjb21iaW5hdGlv
biBvZiA+PSBhbmQgPT0uIFRoYXQKKyAgICAgICAgIyBpcyB0aGF0IH49Mi4yIGlzIGVxdWl2YWxl
bnQgdG8gPj0yLjIsPT0yLiouIFRoaXMgYWxsb3dzIHVzIHRvCisgICAgICAgICMgaW1wbGVtZW50
IHRoaXMgaW4gdGVybXMgb2YgdGhlIG90aGVyIHNwZWNpZmllcnMgaW5zdGVhZCBvZgorICAgICAg
ICAjIGltcGxlbWVudGluZyBpdCBvdXJzZWx2ZXMuIFRoZSBvbmx5IHRoaW5nIHdlIG5lZWQgdG8g
ZG8gaXMgY29uc3RydWN0CisgICAgICAgICMgdGhlIG90aGVyIHNwZWNpZmllcnMuCisKKyAgICAg
ICAgIyBXZSB3YW50IGV2ZXJ5dGhpbmcgYnV0IHRoZSBsYXN0IGl0ZW0gaW4gdGhlIHZlcnNpb24s
IGJ1dCB3ZSB3YW50IHRvCisgICAgICAgICMgaWdub3JlIHBvc3QgYW5kIGRldiByZWxlYXNlcyBh
bmQgd2Ugd2FudCB0byB0cmVhdCB0aGUgcHJlLXJlbGVhc2UgYXMKKyAgICAgICAgIyBpdCdzIG93
biBzZXBhcmF0ZSBzZWdtZW50LgorICAgICAgICBwcmVmaXggPSAiLiIuam9pbigKKyAgICAgICAg
ICAgIGxpc3QoCisgICAgICAgICAgICAgICAgaXRlcnRvb2xzLnRha2V3aGlsZSgKKyAgICAgICAg
ICAgICAgICAgICAgbGFtYmRhIHg6IChub3QgeC5zdGFydHN3aXRoKCJwb3N0IikgYW5kIG5vdCB4
LnN0YXJ0c3dpdGgoImRldiIpKSwKKyAgICAgICAgICAgICAgICAgICAgX3ZlcnNpb25fc3BsaXQo
c3BlYyksCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKVs6LTFdCisgICAgICAgICkK
KworICAgICAgICAjIEFkZCB0aGUgcHJlZml4IG5vdGF0aW9uIHRvIHRoZSBlbmQgb2Ygb3VyIHN0
cmluZworICAgICAgICBwcmVmaXggKz0gIi4qIgorCisgICAgICAgIHJldHVybiBzZWxmLl9nZXRf
b3BlcmF0b3IoIj49IikocHJvc3BlY3RpdmUsIHNwZWMpIGFuZCBzZWxmLl9nZXRfb3BlcmF0b3Io
Ij09IikoCisgICAgICAgICAgICBwcm9zcGVjdGl2ZSwgcHJlZml4CisgICAgICAgICkKKworICAg
IEBfcmVxdWlyZV92ZXJzaW9uX2NvbXBhcmUKKyAgICBkZWYgX2NvbXBhcmVfZXF1YWwoc2VsZiwg
cHJvc3BlY3RpdmUsIHNwZWMpOgorICAgICAgICAjIHR5cGU6IChQYXJzZWRWZXJzaW9uLCBzdHIp
IC0+IGJvb2wKKworICAgICAgICAjIFdlIG5lZWQgc3BlY2lhbCBsb2dpYyB0byBoYW5kbGUgcHJl
Zml4IG1hdGNoaW5nCisgICAgICAgIGlmIHNwZWMuZW5kc3dpdGgoIi4qIik6CisgICAgICAgICAg
ICAjIEluIHRoZSBjYXNlIG9mIHByZWZpeCBtYXRjaGluZyB3ZSB3YW50IHRvIGlnbm9yZSBsb2Nh
bCBzZWdtZW50LgorICAgICAgICAgICAgcHJvc3BlY3RpdmUgPSBWZXJzaW9uKHByb3NwZWN0aXZl
LnB1YmxpYykKKyAgICAgICAgICAgICMgU3BsaXQgdGhlIHNwZWMgb3V0IGJ5IGRvdHMsIGFuZCBw
cmV0ZW5kIHRoYXQgdGhlcmUgaXMgYW4gaW1wbGljaXQKKyAgICAgICAgICAgICMgZG90IGluIGJl
dHdlZW4gYSByZWxlYXNlIHNlZ21lbnQgYW5kIGEgcHJlLXJlbGVhc2Ugc2VnbWVudC4KKyAgICAg
ICAgICAgIHNwbGl0X3NwZWMgPSBfdmVyc2lvbl9zcGxpdChzcGVjWzotMl0pICAjIFJlbW92ZSB0
aGUgdHJhaWxpbmcgLioKKworICAgICAgICAgICAgIyBTcGxpdCB0aGUgcHJvc3BlY3RpdmUgdmVy
c2lvbiBvdXQgYnkgZG90cywgYW5kIHByZXRlbmQgdGhhdCB0aGVyZQorICAgICAgICAgICAgIyBp
cyBhbiBpbXBsaWNpdCBkb3QgaW4gYmV0d2VlbiBhIHJlbGVhc2Ugc2VnbWVudCBhbmQgYSBwcmUt
cmVsZWFzZQorICAgICAgICAgICAgIyBzZWdtZW50LgorICAgICAgICAgICAgc3BsaXRfcHJvc3Bl
Y3RpdmUgPSBfdmVyc2lvbl9zcGxpdChzdHIocHJvc3BlY3RpdmUpKQorCisgICAgICAgICAgICAj
IFNob3J0ZW4gdGhlIHByb3NwZWN0aXZlIHZlcnNpb24gdG8gYmUgdGhlIHNhbWUgbGVuZ3RoIGFz
IHRoZSBzcGVjCisgICAgICAgICAgICAjIHNvIHRoYXQgd2UgY2FuIGRldGVybWluZSBpZiB0aGUg
c3BlY2lmaWVyIGlzIGEgcHJlZml4IG9mIHRoZQorICAgICAgICAgICAgIyBwcm9zcGVjdGl2ZSB2
ZXJzaW9uIG9yIG5vdC4KKyAgICAgICAgICAgIHNob3J0ZW5lZF9wcm9zcGVjdGl2ZSA9IHNwbGl0
X3Byb3NwZWN0aXZlWzogbGVuKHNwbGl0X3NwZWMpXQorCisgICAgICAgICAgICAjIFBhZCBvdXQg
b3VyIHR3byBzaWRlcyB3aXRoIHplcm9zIHNvIHRoYXQgdGhleSBib3RoIGVxdWFsIHRoZSBzYW1l
CisgICAgICAgICAgICAjIGxlbmd0aC4KKyAgICAgICAgICAgIHBhZGRlZF9zcGVjLCBwYWRkZWRf
cHJvc3BlY3RpdmUgPSBfcGFkX3ZlcnNpb24oCisgICAgICAgICAgICAgICAgc3BsaXRfc3BlYywg
c2hvcnRlbmVkX3Byb3NwZWN0aXZlCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHJldHVy
biBwYWRkZWRfcHJvc3BlY3RpdmUgPT0gcGFkZGVkX3NwZWMKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICMgQ29udmVydCBvdXIgc3BlYyBzdHJpbmcgaW50byBhIFZlcnNpb24KKyAgICAgICAg
ICAgIHNwZWNfdmVyc2lvbiA9IFZlcnNpb24oc3BlYykKKworICAgICAgICAgICAgIyBJZiB0aGUg
c3BlY2lmaWVyIGRvZXMgbm90IGhhdmUgYSBsb2NhbCBzZWdtZW50LCB0aGVuIHdlIHdhbnQgdG8K
KyAgICAgICAgICAgICMgYWN0IGFzIGlmIHRoZSBwcm9zcGVjdGl2ZSB2ZXJzaW9uIGFsc28gZG9l
cyBub3QgaGF2ZSBhIGxvY2FsCisgICAgICAgICAgICAjIHNlZ21lbnQuCisgICAgICAgICAgICBp
ZiBub3Qgc3BlY192ZXJzaW9uLmxvY2FsOgorICAgICAgICAgICAgICAgIHByb3NwZWN0aXZlID0g
VmVyc2lvbihwcm9zcGVjdGl2ZS5wdWJsaWMpCisKKyAgICAgICAgICAgIHJldHVybiBwcm9zcGVj
dGl2ZSA9PSBzcGVjX3ZlcnNpb24KKworICAgIEBfcmVxdWlyZV92ZXJzaW9uX2NvbXBhcmUKKyAg
ICBkZWYgX2NvbXBhcmVfbm90X2VxdWFsKHNlbGYsIHByb3NwZWN0aXZlLCBzcGVjKToKKyAgICAg
ICAgIyB0eXBlOiAoUGFyc2VkVmVyc2lvbiwgc3RyKSAtPiBib29sCisgICAgICAgIHJldHVybiBu
b3Qgc2VsZi5fY29tcGFyZV9lcXVhbChwcm9zcGVjdGl2ZSwgc3BlYykKKworICAgIEBfcmVxdWly
ZV92ZXJzaW9uX2NvbXBhcmUKKyAgICBkZWYgX2NvbXBhcmVfbGVzc190aGFuX2VxdWFsKHNlbGYs
IHByb3NwZWN0aXZlLCBzcGVjKToKKyAgICAgICAgIyB0eXBlOiAoUGFyc2VkVmVyc2lvbiwgc3Ry
KSAtPiBib29sCisKKyAgICAgICAgIyBOQjogTG9jYWwgdmVyc2lvbiBpZGVudGlmaWVycyBhcmUg
Tk9UIHBlcm1pdHRlZCBpbiB0aGUgdmVyc2lvbgorICAgICAgICAjIHNwZWNpZmllciwgc28gbG9j
YWwgdmVyc2lvbiBsYWJlbHMgY2FuIGJlIHVuaXZlcnNhbGx5IHJlbW92ZWQgZnJvbQorICAgICAg
ICAjIHRoZSBwcm9zcGVjdGl2ZSB2ZXJzaW9uLgorICAgICAgICByZXR1cm4gVmVyc2lvbihwcm9z
cGVjdGl2ZS5wdWJsaWMpIDw9IFZlcnNpb24oc3BlYykKKworICAgIEBfcmVxdWlyZV92ZXJzaW9u
X2NvbXBhcmUKKyAgICBkZWYgX2NvbXBhcmVfZ3JlYXRlcl90aGFuX2VxdWFsKHNlbGYsIHByb3Nw
ZWN0aXZlLCBzcGVjKToKKyAgICAgICAgIyB0eXBlOiAoUGFyc2VkVmVyc2lvbiwgc3RyKSAtPiBi
b29sCisKKyAgICAgICAgIyBOQjogTG9jYWwgdmVyc2lvbiBpZGVudGlmaWVycyBhcmUgTk9UIHBl
cm1pdHRlZCBpbiB0aGUgdmVyc2lvbgorICAgICAgICAjIHNwZWNpZmllciwgc28gbG9jYWwgdmVy
c2lvbiBsYWJlbHMgY2FuIGJlIHVuaXZlcnNhbGx5IHJlbW92ZWQgZnJvbQorICAgICAgICAjIHRo
ZSBwcm9zcGVjdGl2ZSB2ZXJzaW9uLgorICAgICAgICByZXR1cm4gVmVyc2lvbihwcm9zcGVjdGl2
ZS5wdWJsaWMpID49IFZlcnNpb24oc3BlYykKKworICAgIEBfcmVxdWlyZV92ZXJzaW9uX2NvbXBh
cmUKKyAgICBkZWYgX2NvbXBhcmVfbGVzc190aGFuKHNlbGYsIHByb3NwZWN0aXZlLCBzcGVjX3N0
cik6CisgICAgICAgICMgdHlwZTogKFBhcnNlZFZlcnNpb24sIHN0cikgLT4gYm9vbAorCisgICAg
ICAgICMgQ29udmVydCBvdXIgc3BlYyB0byBhIFZlcnNpb24gaW5zdGFuY2UsIHNpbmNlIHdlJ2xs
IHdhbnQgdG8gd29yayB3aXRoCisgICAgICAgICMgaXQgYXMgYSB2ZXJzaW9uLgorICAgICAgICBz
cGVjID0gVmVyc2lvbihzcGVjX3N0cikKKworICAgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUg
cHJvc3BlY3RpdmUgdmVyc2lvbiBpcyBsZXNzIHRoYW4gdGhlIHNwZWMKKyAgICAgICAgIyB2ZXJz
aW9uLiBJZiBpdCdzIG5vdCB3ZSBjYW4gc2hvcnQgY2lyY3VpdCBhbmQganVzdCByZXR1cm4gRmFs
c2Ugbm93CisgICAgICAgICMgaW5zdGVhZCBvZiBkb2luZyBleHRyYSB1bm5lZWRlZCB3b3JrLgor
ICAgICAgICBpZiBub3QgcHJvc3BlY3RpdmUgPCBzcGVjOgorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKKyAgICAgICAgIyBUaGlzIHNwZWNpYWwgY2FzZSBpcyBoZXJlIHNvIHRoYXQsIHVubGVz
cyB0aGUgc3BlY2lmaWVyIGl0c2VsZgorICAgICAgICAjIGluY2x1ZGVzIGlzIGEgcHJlLXJlbGVh
c2UgdmVyc2lvbiwgdGhhdCB3ZSBkbyBub3QgYWNjZXB0IHByZS1yZWxlYXNlCisgICAgICAgICMg
dmVyc2lvbnMgZm9yIHRoZSB2ZXJzaW9uIG1lbnRpb25lZCBpbiB0aGUgc3BlY2lmaWVyIChlLmcu
IDwzLjEgc2hvdWxkCisgICAgICAgICMgbm90IG1hdGNoIDMuMS5kZXYwLCBidXQgc2hvdWxkIG1h
dGNoIDMuMC5kZXYwKS4KKyAgICAgICAgaWYgbm90IHNwZWMuaXNfcHJlcmVsZWFzZSBhbmQgcHJv
c3BlY3RpdmUuaXNfcHJlcmVsZWFzZToKKyAgICAgICAgICAgIGlmIFZlcnNpb24ocHJvc3BlY3Rp
dmUuYmFzZV92ZXJzaW9uKSA9PSBWZXJzaW9uKHNwZWMuYmFzZV92ZXJzaW9uKToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAjIElmIHdlJ3ZlIGdvdHRlbiB0byBoZXJl
LCBpdCBtZWFucyB0aGF0IHByb3NwZWN0aXZlIHZlcnNpb24gaXMgYm90aAorICAgICAgICAjIGxl
c3MgdGhhbiB0aGUgc3BlYyB2ZXJzaW9uICphbmQqIGl0J3Mgbm90IGEgcHJlLXJlbGVhc2Ugb2Yg
dGhlIHNhbWUKKyAgICAgICAgIyB2ZXJzaW9uIGluIHRoZSBzcGVjLgorICAgICAgICByZXR1cm4g
VHJ1ZQorCisgICAgQF9yZXF1aXJlX3ZlcnNpb25fY29tcGFyZQorICAgIGRlZiBfY29tcGFyZV9n
cmVhdGVyX3RoYW4oc2VsZiwgcHJvc3BlY3RpdmUsIHNwZWNfc3RyKToKKyAgICAgICAgIyB0eXBl
OiAoUGFyc2VkVmVyc2lvbiwgc3RyKSAtPiBib29sCisKKyAgICAgICAgIyBDb252ZXJ0IG91ciBz
cGVjIHRvIGEgVmVyc2lvbiBpbnN0YW5jZSwgc2luY2Ugd2UnbGwgd2FudCB0byB3b3JrIHdpdGgK
KyAgICAgICAgIyBpdCBhcyBhIHZlcnNpb24uCisgICAgICAgIHNwZWMgPSBWZXJzaW9uKHNwZWNf
c3RyKQorCisgICAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9zcGVjdGl2ZSB2ZXJzaW9u
IGlzIGdyZWF0ZXIgdGhhbiB0aGUgc3BlYworICAgICAgICAjIHZlcnNpb24uIElmIGl0J3Mgbm90
IHdlIGNhbiBzaG9ydCBjaXJjdWl0IGFuZCBqdXN0IHJldHVybiBGYWxzZSBub3cKKyAgICAgICAg
IyBpbnN0ZWFkIG9mIGRvaW5nIGV4dHJhIHVubmVlZGVkIHdvcmsuCisgICAgICAgIGlmIG5vdCBw
cm9zcGVjdGl2ZSA+IHNwZWM6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAj
IFRoaXMgc3BlY2lhbCBjYXNlIGlzIGhlcmUgc28gdGhhdCwgdW5sZXNzIHRoZSBzcGVjaWZpZXIg
aXRzZWxmCisgICAgICAgICMgaW5jbHVkZXMgaXMgYSBwb3N0LXJlbGVhc2UgdmVyc2lvbiwgdGhh
dCB3ZSBkbyBub3QgYWNjZXB0CisgICAgICAgICMgcG9zdC1yZWxlYXNlIHZlcnNpb25zIGZvciB0
aGUgdmVyc2lvbiBtZW50aW9uZWQgaW4gdGhlIHNwZWNpZmllcgorICAgICAgICAjIChlLmcuID4z
LjEgc2hvdWxkIG5vdCBtYXRjaCAzLjAucG9zdDAsIGJ1dCBzaG91bGQgbWF0Y2ggMy4yLnBvc3Qw
KS4KKyAgICAgICAgaWYgbm90IHNwZWMuaXNfcG9zdHJlbGVhc2UgYW5kIHByb3NwZWN0aXZlLmlz
X3Bvc3RyZWxlYXNlOgorICAgICAgICAgICAgaWYgVmVyc2lvbihwcm9zcGVjdGl2ZS5iYXNlX3Zl
cnNpb24pID09IFZlcnNpb24oc3BlYy5iYXNlX3ZlcnNpb24pOgorICAgICAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgICAgICMgRW5zdXJlIHRoYXQgd2UgZG8gbm90IGFsbG93IGEgbG9j
YWwgdmVyc2lvbiBvZiB0aGUgdmVyc2lvbiBtZW50aW9uZWQKKyAgICAgICAgIyBpbiB0aGUgc3Bl
Y2lmaWVyLCB3aGljaCBpcyB0ZWNobmljYWxseSBncmVhdGVyIHRoYW4sIHRvIG1hdGNoLgorICAg
ICAgICBpZiBwcm9zcGVjdGl2ZS5sb2NhbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIFZl
cnNpb24ocHJvc3BlY3RpdmUuYmFzZV92ZXJzaW9uKSA9PSBWZXJzaW9uKHNwZWMuYmFzZV92ZXJz
aW9uKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAjIElmIHdlJ3Zl
IGdvdHRlbiB0byBoZXJlLCBpdCBtZWFucyB0aGF0IHByb3NwZWN0aXZlIHZlcnNpb24gaXMgYm90
aAorICAgICAgICAjIGdyZWF0ZXIgdGhhbiB0aGUgc3BlYyB2ZXJzaW9uICphbmQqIGl0J3Mgbm90
IGEgcHJlLXJlbGVhc2Ugb2YgdGhlCisgICAgICAgICMgc2FtZSB2ZXJzaW9uIGluIHRoZSBzcGVj
LgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIF9jb21wYXJlX2FyYml0cmFyeShzZWxm
LCBwcm9zcGVjdGl2ZSwgc3BlYyk6CisgICAgICAgICMgdHlwZTogKFZlcnNpb24sIHN0cikgLT4g
Ym9vbAorICAgICAgICByZXR1cm4gc3RyKHByb3NwZWN0aXZlKS5sb3dlcigpID09IHN0cihzcGVj
KS5sb3dlcigpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHJlcmVsZWFzZXMoc2VsZik6Cisg
ICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAorCisgICAgICAgICMgSWYgdGhlcmUgaXMgYW4gZXhw
bGljaXQgcHJlcmVsZWFzZXMgc2V0IGZvciB0aGlzLCB0aGVuIHdlJ2xsIGp1c3QKKyAgICAgICAg
IyBibGluZGx5IHVzZSB0aGF0LgorICAgICAgICBpZiBzZWxmLl9wcmVyZWxlYXNlcyBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcmVyZWxlYXNlcworCisgICAgICAgICMg
TG9vayBhdCBhbGwgb2Ygb3VyIHNwZWNpZmllcnMgYW5kIGRldGVybWluZSBpZiB0aGV5IGFyZSBp
bmNsdXNpdmUKKyAgICAgICAgIyBvcGVyYXRvcnMsIGFuZCBpZiB0aGV5IGFyZSBpZiB0aGV5IGFy
ZSBpbmNsdWRpbmcgYW4gZXhwbGljaXQKKyAgICAgICAgIyBwcmVyZWxlYXNlLgorICAgICAgICBv
cGVyYXRvciwgdmVyc2lvbiA9IHNlbGYuX3NwZWMKKyAgICAgICAgaWYgb3BlcmF0b3IgaW4gWyI9
PSIsICI+PSIsICI8PSIsICJ+PSIsICI9PT0iXToKKyAgICAgICAgICAgICMgVGhlID09IHNwZWNp
ZmllciBjYW4gaW5jbHVkZSBhIHRyYWlsaW5nIC4qLCBpZiBpdCBkb2VzIHdlCisgICAgICAgICAg
ICAjIHdhbnQgdG8gcmVtb3ZlIGJlZm9yZSBwYXJzaW5nLgorICAgICAgICAgICAgaWYgb3BlcmF0
b3IgPT0gIj09IiBhbmQgdmVyc2lvbi5lbmRzd2l0aCgiLioiKToKKyAgICAgICAgICAgICAgICB2
ZXJzaW9uID0gdmVyc2lvbls6LTJdCisKKyAgICAgICAgICAgICMgUGFyc2UgdGhlIHZlcnNpb24s
IGFuZCBpZiBpdCBpcyBhIHByZS1yZWxlYXNlIHRoYW4gdGhpcworICAgICAgICAgICAgIyBzcGVj
aWZpZXIgYWxsb3dzIHByZS1yZWxlYXNlcy4KKyAgICAgICAgICAgIGlmIHBhcnNlKHZlcnNpb24p
LmlzX3ByZXJlbGVhc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBy
ZXR1cm4gRmFsc2UKKworICAgIEBwcmVyZWxlYXNlcy5zZXR0ZXIKKyAgICBkZWYgcHJlcmVsZWFz
ZXMoc2VsZiwgdmFsdWUpOgorICAgICAgICAjIHR5cGU6IChib29sKSAtPiBOb25lCisgICAgICAg
IHNlbGYuX3ByZXJlbGVhc2VzID0gdmFsdWUKKworCitfcHJlZml4X3JlZ2V4ID0gcmUuY29tcGls
ZShyIl4oWzAtOV0rKSgoPzphfGJ8Y3xyYylbMC05XSspJCIpCisKKworZGVmIF92ZXJzaW9uX3Nw
bGl0KHZlcnNpb24pOgorICAgICMgdHlwZTogKHN0cikgLT4gTGlzdFtzdHJdCisgICAgcmVzdWx0
ID0gW10gICMgdHlwZTogTGlzdFtzdHJdCisgICAgZm9yIGl0ZW0gaW4gdmVyc2lvbi5zcGxpdCgi
LiIpOgorICAgICAgICBtYXRjaCA9IF9wcmVmaXhfcmVnZXguc2VhcmNoKGl0ZW0pCisgICAgICAg
IGlmIG1hdGNoOgorICAgICAgICAgICAgcmVzdWx0LmV4dGVuZChtYXRjaC5ncm91cHMoKSkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXRlbSkKKyAgICByZXR1cm4g
cmVzdWx0CisKKworZGVmIF9wYWRfdmVyc2lvbihsZWZ0LCByaWdodCk6CisgICAgIyB0eXBlOiAo
TGlzdFtzdHJdLCBMaXN0W3N0cl0pIC0+IFR1cGxlW0xpc3Rbc3RyXSwgTGlzdFtzdHJdXQorICAg
IGxlZnRfc3BsaXQsIHJpZ2h0X3NwbGl0ID0gW10sIFtdCisKKyAgICAjIEdldCB0aGUgcmVsZWFz
ZSBzZWdtZW50IG9mIG91ciB2ZXJzaW9ucworICAgIGxlZnRfc3BsaXQuYXBwZW5kKGxpc3QoaXRl
cnRvb2xzLnRha2V3aGlsZShsYW1iZGEgeDogeC5pc2RpZ2l0KCksIGxlZnQpKSkKKyAgICByaWdo
dF9zcGxpdC5hcHBlbmQobGlzdChpdGVydG9vbHMudGFrZXdoaWxlKGxhbWJkYSB4OiB4LmlzZGln
aXQoKSwgcmlnaHQpKSkKKworICAgICMgR2V0IHRoZSByZXN0IG9mIG91ciB2ZXJzaW9ucworICAg
IGxlZnRfc3BsaXQuYXBwZW5kKGxlZnRbbGVuKGxlZnRfc3BsaXRbMF0pIDpdKQorICAgIHJpZ2h0
X3NwbGl0LmFwcGVuZChyaWdodFtsZW4ocmlnaHRfc3BsaXRbMF0pIDpdKQorCisgICAgIyBJbnNl
cnQgb3VyIHBhZGRpbmcKKyAgICBsZWZ0X3NwbGl0Lmluc2VydCgxLCBbIjAiXSAqIG1heCgwLCBs
ZW4ocmlnaHRfc3BsaXRbMF0pIC0gbGVuKGxlZnRfc3BsaXRbMF0pKSkKKyAgICByaWdodF9zcGxp
dC5pbnNlcnQoMSwgWyIwIl0gKiBtYXgoMCwgbGVuKGxlZnRfc3BsaXRbMF0pIC0gbGVuKHJpZ2h0
X3NwbGl0WzBdKSkpCisKKyAgICByZXR1cm4gKGxpc3QoaXRlcnRvb2xzLmNoYWluKCpsZWZ0X3Nw
bGl0KSksIGxpc3QoaXRlcnRvb2xzLmNoYWluKCpyaWdodF9zcGxpdCkpKQorCisKK2NsYXNzIFNw
ZWNpZmllclNldChCYXNlU3BlY2lmaWVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3BlY2lm
aWVycz0iIiwgcHJlcmVsZWFzZXM9Tm9uZSk6CisgICAgICAgICMgdHlwZTogKHN0ciwgT3B0aW9u
YWxbYm9vbF0pIC0+IE5vbmUKKworICAgICAgICAjIFNwbGl0IG9uICwgdG8gYnJlYWsgZWFjaCBp
bmRpdmlkdWFsIHNwZWNpZmllciBpbnRvIGl0J3Mgb3duIGl0ZW0sIGFuZAorICAgICAgICAjIHN0
cmlwIGVhY2ggaXRlbSB0byByZW1vdmUgbGVhZGluZy90cmFpbGluZyB3aGl0ZXNwYWNlLgorICAg
ICAgICBzcGxpdF9zcGVjaWZpZXJzID0gW3Muc3RyaXAoKSBmb3IgcyBpbiBzcGVjaWZpZXJzLnNw
bGl0KCIsIikgaWYgcy5zdHJpcCgpXQorCisgICAgICAgICMgUGFyc2VkIGVhY2ggaW5kaXZpZHVh
bCBzcGVjaWZpZXIsIGF0dGVtcHRpbmcgZmlyc3QgdG8gbWFrZSBpdCBhCisgICAgICAgICMgU3Bl
Y2lmaWVyIGFuZCBmYWxsaW5nIGJhY2sgdG8gYSBMZWdhY3lTcGVjaWZpZXIuCisgICAgICAgIHBh
cnNlZCA9IHNldCgpCisgICAgICAgIGZvciBzcGVjaWZpZXIgaW4gc3BsaXRfc3BlY2lmaWVyczoK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBwYXJzZWQuYWRkKFNwZWNpZmllcihz
cGVjaWZpZXIpKQorICAgICAgICAgICAgZXhjZXB0IEludmFsaWRTcGVjaWZpZXI6CisgICAgICAg
ICAgICAgICAgcGFyc2VkLmFkZChMZWdhY3lTcGVjaWZpZXIoc3BlY2lmaWVyKSkKKworICAgICAg
ICAjIFR1cm4gb3VyIHBhcnNlZCBzcGVjaWZpZXJzIGludG8gYSBmcm96ZW4gc2V0IGFuZCBzYXZl
IHRoZW0gZm9yIGxhdGVyLgorICAgICAgICBzZWxmLl9zcGVjcyA9IGZyb3plbnNldChwYXJzZWQp
CisKKyAgICAgICAgIyBTdG9yZSBvdXIgcHJlcmVsZWFzZXMgdmFsdWUgc28gd2UgY2FuIHVzZSBp
dCBsYXRlciB0byBkZXRlcm1pbmUgaWYKKyAgICAgICAgIyB3ZSBhY2NlcHQgcHJlcmVsZWFzZXMg
b3Igbm90LgorICAgICAgICBzZWxmLl9wcmVyZWxlYXNlcyA9IHByZXJlbGVhc2VzCisKKyAgICBk
ZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHBy
ZSA9ICgKKyAgICAgICAgICAgICIsIHByZXJlbGVhc2VzPXswIXJ9Ii5mb3JtYXQoc2VsZi5wcmVy
ZWxlYXNlcykKKyAgICAgICAgICAgIGlmIHNlbGYuX3ByZXJlbGVhc2VzIGlzIG5vdCBOb25lCisg
ICAgICAgICAgICBlbHNlICIiCisgICAgICAgICkKKworICAgICAgICByZXR1cm4gIjxTcGVjaWZp
ZXJTZXQoezAhcn17MX0pPiIuZm9ybWF0KHN0cihzZWxmKSwgcHJlKQorCisgICAgZGVmIF9fc3Ry
X18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJldHVybiAiLCIu
am9pbihzb3J0ZWQoc3RyKHMpIGZvciBzIGluIHNlbGYuX3NwZWNzKSkKKworICAgIGRlZiBfX2hh
c2hfXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBpbnQKKyAgICAgICAgcmV0dXJuIGhh
c2goc2VsZi5fc3BlY3MpCisKKyAgICBkZWYgX19hbmRfXyhzZWxmLCBvdGhlcik6CisgICAgICAg
ICMgdHlwZTogKFVuaW9uW1NwZWNpZmllclNldCwgc3RyXSkgLT4gU3BlY2lmaWVyU2V0CisgICAg
ICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIHN0cmluZ190eXBlcyk6CisgICAgICAgICAgICBvdGhl
ciA9IFNwZWNpZmllclNldChvdGhlcikKKyAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShvdGhl
ciwgU3BlY2lmaWVyU2V0KToKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorCisg
ICAgICAgIHNwZWNpZmllciA9IFNwZWNpZmllclNldCgpCisgICAgICAgIHNwZWNpZmllci5fc3Bl
Y3MgPSBmcm96ZW5zZXQoc2VsZi5fc3BlY3MgfCBvdGhlci5fc3BlY3MpCisKKyAgICAgICAgaWYg
c2VsZi5fcHJlcmVsZWFzZXMgaXMgTm9uZSBhbmQgb3RoZXIuX3ByZXJlbGVhc2VzIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgc3BlY2lmaWVyLl9wcmVyZWxlYXNlcyA9IG90aGVyLl9wcmVyZWxl
YXNlcworICAgICAgICBlbGlmIHNlbGYuX3ByZXJlbGVhc2VzIGlzIG5vdCBOb25lIGFuZCBvdGhl
ci5fcHJlcmVsZWFzZXMgaXMgTm9uZToKKyAgICAgICAgICAgIHNwZWNpZmllci5fcHJlcmVsZWFz
ZXMgPSBzZWxmLl9wcmVyZWxlYXNlcworICAgICAgICBlbGlmIHNlbGYuX3ByZXJlbGVhc2VzID09
IG90aGVyLl9wcmVyZWxlYXNlczoKKyAgICAgICAgICAgIHNwZWNpZmllci5fcHJlcmVsZWFzZXMg
PSBzZWxmLl9wcmVyZWxlYXNlcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigKKyAgICAgICAgICAgICAgICAiQ2Fubm90IGNvbWJpbmUgU3BlY2lmaWVyU2V0cyB3
aXRoIFRydWUgYW5kIEZhbHNlIHByZXJlbGVhc2UgIgorICAgICAgICAgICAgICAgICJvdmVycmlk
ZXMuIgorICAgICAgICAgICAgKQorCisgICAgICAgIHJldHVybiBzcGVjaWZpZXIKKworICAgIGRl
ZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wK
KyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgKHN0cmluZ190eXBlcywgX0luZGl2aWR1YWxT
cGVjaWZpZXIpKToKKyAgICAgICAgICAgIG90aGVyID0gU3BlY2lmaWVyU2V0KHN0cihvdGhlcikp
CisgICAgICAgIGVsaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIFNwZWNpZmllclNldCk6CisgICAg
ICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKworICAgICAgICByZXR1cm4gc2VsZi5fc3Bl
Y3MgPT0gb3RoZXIuX3NwZWNzCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAg
ICAgIyB0eXBlOiAob2JqZWN0KSAtPiBib29sCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIs
IChzdHJpbmdfdHlwZXMsIF9JbmRpdmlkdWFsU3BlY2lmaWVyKSk6CisgICAgICAgICAgICBvdGhl
ciA9IFNwZWNpZmllclNldChzdHIob3RoZXIpKQorICAgICAgICBlbGlmIG5vdCBpc2luc3RhbmNl
KG90aGVyLCBTcGVjaWZpZXJTZXQpOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVk
CisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3NwZWNzICE9IG90aGVyLl9zcGVjcworCisgICAgZGVm
IF9fbGVuX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gaW50CisgICAgICAgIHJldHVy
biBsZW4oc2VsZi5fc3BlY3MpCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgICMg
dHlwZTogKCkgLT4gSXRlcmF0b3JbX0luZGl2aWR1YWxTcGVjaWZpZXJdCisgICAgICAgIHJldHVy
biBpdGVyKHNlbGYuX3NwZWNzKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHByZXJlbGVhc2Vz
KHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW2Jvb2xdCisKKyAgICAgICAg
IyBJZiB3ZSBoYXZlIGJlZW4gZ2l2ZW4gYW4gZXhwbGljaXQgcHJlcmVsZWFzZSBtb2RpZmllciwg
dGhlbiB3ZSdsbAorICAgICAgICAjIHBhc3MgdGhhdCB0aHJvdWdoIGhlcmUuCisgICAgICAgIGlm
IHNlbGYuX3ByZXJlbGVhc2VzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYu
X3ByZXJlbGVhc2VzCisKKyAgICAgICAgIyBJZiB3ZSBkb24ndCBoYXZlIGFueSBzcGVjaWZpZXJz
LCBhbmQgd2UgZG9uJ3QgaGF2ZSBhIGZvcmNlZCB2YWx1ZSwKKyAgICAgICAgIyB0aGVuIHdlJ2xs
IGp1c3QgcmV0dXJuIE5vbmUgc2luY2Ugd2UgZG9uJ3Qga25vdyBpZiB0aGlzIHNob3VsZCBoYXZl
CisgICAgICAgICMgcHJlLXJlbGVhc2VzIG9yIG5vdC4KKyAgICAgICAgaWYgbm90IHNlbGYuX3Nw
ZWNzOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICAjIE90aGVyd2lzZSB3ZSds
bCBzZWUgaWYgYW55IG9mIHRoZSBnaXZlbiBzcGVjaWZpZXJzIGFjY2VwdAorICAgICAgICAjIHBy
ZXJlbGVhc2VzLCBpZiBhbnkgb2YgdGhlbSBkbyB3ZSdsbCByZXR1cm4gVHJ1ZSwgb3RoZXJ3aXNl
IEZhbHNlLgorICAgICAgICByZXR1cm4gYW55KHMucHJlcmVsZWFzZXMgZm9yIHMgaW4gc2VsZi5f
c3BlY3MpCisKKyAgICBAcHJlcmVsZWFzZXMuc2V0dGVyCisgICAgZGVmIHByZXJlbGVhc2VzKHNl
bGYsIHZhbHVlKToKKyAgICAgICAgIyB0eXBlOiAoYm9vbCkgLT4gTm9uZQorICAgICAgICBzZWxm
Ll9wcmVyZWxlYXNlcyA9IHZhbHVlCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGl0ZW0p
OgorICAgICAgICAjIHR5cGU6IChVbmlvbltQYXJzZWRWZXJzaW9uLCBzdHJdKSAtPiBib29sCisg
ICAgICAgIHJldHVybiBzZWxmLmNvbnRhaW5zKGl0ZW0pCisKKyAgICBkZWYgY29udGFpbnMoc2Vs
ZiwgaXRlbSwgcHJlcmVsZWFzZXM9Tm9uZSk6CisgICAgICAgICMgdHlwZTogKFVuaW9uW1BhcnNl
ZFZlcnNpb24sIHN0cl0sIE9wdGlvbmFsW2Jvb2xdKSAtPiBib29sCisKKyAgICAgICAgIyBFbnN1
cmUgdGhhdCBvdXIgaXRlbSBpcyBhIFZlcnNpb24gb3IgTGVnYWN5VmVyc2lvbiBpbnN0YW5jZS4K
KyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwgKExlZ2FjeVZlcnNpb24sIFZlcnNpb24p
KToKKyAgICAgICAgICAgIGl0ZW0gPSBwYXJzZShpdGVtKQorCisgICAgICAgICMgRGV0ZXJtaW5l
IGlmIHdlJ3JlIGZvcmNpbmcgYSBwcmVyZWxlYXNlIG9yIG5vdCwgaWYgd2UncmUgbm90IGZvcmNp
bmcKKyAgICAgICAgIyBvbmUgZm9yIHRoaXMgcGFydGljdWxhciBmaWx0ZXIgY2FsbCwgdGhlbiB3
ZSdsbCB1c2Ugd2hhdGV2ZXIgdGhlCisgICAgICAgICMgU3BlY2lmaWVyU2V0IHRoaW5rcyBmb3Ig
d2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIHN1cHBvcnQgcHJlcmVsZWFzZXMuCisgICAgICAgIGlm
IHByZXJlbGVhc2VzIGlzIE5vbmU6CisgICAgICAgICAgICBwcmVyZWxlYXNlcyA9IHNlbGYucHJl
cmVsZWFzZXMKKworICAgICAgICAjIFdlIGNhbiBkZXRlcm1pbmUgaWYgd2UncmUgZ29pbmcgdG8g
YWxsb3cgcHJlLXJlbGVhc2VzIGJ5IGxvb2tpbmcgdG8KKyAgICAgICAgIyBzZWUgaWYgYW55IG9m
IHRoZSB1bmRlcmx5aW5nIGl0ZW1zIHN1cHBvcnRzIHRoZW0uIElmIG5vbmUgb2YgdGhlbSBkbwor
ICAgICAgICAjIGFuZCB0aGlzIGl0ZW0gaXMgYSBwcmUtcmVsZWFzZSB0aGVuIHdlIGRvIG5vdCBh
bGxvdyBpdCBhbmQgd2UgY2FuCisgICAgICAgICMgc2hvcnQgY2lyY3VpdCB0aGF0IGhlcmUuCisg
ICAgICAgICMgTm90ZTogVGhpcyBtZWFucyB0aGF0IDEuMC5kZXYxIHdvdWxkIG5vdCBiZSBjb250
YWluZWQgaW4gc29tZXRoaW5nCisgICAgICAgICMgICAgICAgbGlrZSA+PTEuMC5kZXZhYmMgaG93
ZXZlciBpdCB3b3VsZCBiZSBpbiA+PTEuMC5kZWJhYmMsPjAuMC5kZXYwCisgICAgICAgIGlmIG5v
dCBwcmVyZWxlYXNlcyBhbmQgaXRlbS5pc19wcmVyZWxlYXNlOgorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisKKyAgICAgICAgIyBXZSBzaW1wbHkgZGlzcGF0Y2ggdG8gdGhlIHVuZGVybHlpbmcg
c3BlY3MgaGVyZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUKKyAgICAgICAgIyBnaXZlbiB2ZXJzaW9u
IGlzIGNvbnRhaW5lZCB3aXRoaW4gYWxsIG9mIHRoZW0uCisgICAgICAgICMgTm90ZTogVGhpcyB1
c2Ugb2YgYWxsKCkgaGVyZSBtZWFucyB0aGF0IGFuIGVtcHR5IHNldCBvZiBzcGVjaWZpZXJzCisg
ICAgICAgICMgICAgICAgd2lsbCBhbHdheXMgcmV0dXJuIFRydWUsIHRoaXMgaXMgYW4gZXhwbGlj
aXQgZGVzaWduIGRlY2lzaW9uLgorICAgICAgICByZXR1cm4gYWxsKHMuY29udGFpbnMoaXRlbSwg
cHJlcmVsZWFzZXM9cHJlcmVsZWFzZXMpIGZvciBzIGluIHNlbGYuX3NwZWNzKQorCisgICAgZGVm
IGZpbHRlcigKKyAgICAgICAgc2VsZiwKKyAgICAgICAgaXRlcmFibGUsICAjIHR5cGU6IEl0ZXJh
YmxlW1VuaW9uW1BhcnNlZFZlcnNpb24sIHN0cl1dCisgICAgICAgIHByZXJlbGVhc2VzPU5vbmUs
ICAjIHR5cGU6IE9wdGlvbmFsW2Jvb2xdCisgICAgKToKKyAgICAgICAgIyB0eXBlOiAoLi4uKSAt
PiBJdGVyYWJsZVtVbmlvbltQYXJzZWRWZXJzaW9uLCBzdHJdXQorCisgICAgICAgICMgRGV0ZXJt
aW5lIGlmIHdlJ3JlIGZvcmNpbmcgYSBwcmVyZWxlYXNlIG9yIG5vdCwgaWYgd2UncmUgbm90IGZv
cmNpbmcKKyAgICAgICAgIyBvbmUgZm9yIHRoaXMgcGFydGljdWxhciBmaWx0ZXIgY2FsbCwgdGhl
biB3ZSdsbCB1c2Ugd2hhdGV2ZXIgdGhlCisgICAgICAgICMgU3BlY2lmaWVyU2V0IHRoaW5rcyBm
b3Igd2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIHN1cHBvcnQgcHJlcmVsZWFzZXMuCisgICAgICAg
IGlmIHByZXJlbGVhc2VzIGlzIE5vbmU6CisgICAgICAgICAgICBwcmVyZWxlYXNlcyA9IHNlbGYu
cHJlcmVsZWFzZXMKKworICAgICAgICAjIElmIHdlIGhhdmUgYW55IHNwZWNpZmllcnMsIHRoZW4g
d2Ugd2FudCB0byB3cmFwIG91ciBpdGVyYWJsZSBpbiB0aGUKKyAgICAgICAgIyBmaWx0ZXIgbWV0
aG9kIGZvciBlYWNoIG9uZSwgdGhpcyB3aWxsIGFjdCBhcyBhIGxvZ2ljYWwgQU5EIGFtb25nc3QK
KyAgICAgICAgIyBlYWNoIHNwZWNpZmllci4KKyAgICAgICAgaWYgc2VsZi5fc3BlY3M6CisgICAg
ICAgICAgICBmb3Igc3BlYyBpbiBzZWxmLl9zcGVjczoKKyAgICAgICAgICAgICAgICBpdGVyYWJs
ZSA9IHNwZWMuZmlsdGVyKGl0ZXJhYmxlLCBwcmVyZWxlYXNlcz1ib29sKHByZXJlbGVhc2VzKSkK
KyAgICAgICAgICAgIHJldHVybiBpdGVyYWJsZQorICAgICAgICAjIElmIHdlIGRvIG5vdCBoYXZl
IGFueSBzcGVjaWZpZXJzLCB0aGVuIHdlIG5lZWQgdG8gaGF2ZSBhIHJvdWdoIGZpbHRlcgorICAg
ICAgICAjIHdoaWNoIHdpbGwgZmlsdGVyIG91dCBhbnkgcHJlLXJlbGVhc2VzLCB1bmxlc3MgdGhl
cmUgYXJlIG5vIGZpbmFsCisgICAgICAgICMgcmVsZWFzZXMsIGFuZCB3aGljaCB3aWxsIGZpbHRl
ciBvdXQgTGVnYWN5VmVyc2lvbiBpbiBnZW5lcmFsLgorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgZmlsdGVyZWQgPSBbXSAgIyB0eXBlOiBMaXN0W1VuaW9uW1BhcnNlZFZlcnNpb24sIHN0cl1d
CisgICAgICAgICAgICBmb3VuZF9wcmVyZWxlYXNlcyA9IFtdICAjIHR5cGU6IExpc3RbVW5pb25b
UGFyc2VkVmVyc2lvbiwgc3RyXV0KKworICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcmFibGU6
CisgICAgICAgICAgICAgICAgIyBFbnN1cmUgdGhhdCB3ZSBzb21lIGtpbmQgb2YgVmVyc2lvbiBj
bGFzcyBmb3IgdGhpcyBpdGVtLgorICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGl0
ZW0sIChMZWdhY3lWZXJzaW9uLCBWZXJzaW9uKSk6CisgICAgICAgICAgICAgICAgICAgIHBhcnNl
ZF92ZXJzaW9uID0gcGFyc2UoaXRlbSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgICAgICBwYXJzZWRfdmVyc2lvbiA9IGl0ZW0KKworICAgICAgICAgICAgICAgICMgRmls
dGVyIG91dCBhbnkgaXRlbSB3aGljaCBpcyBwYXJzZWQgYXMgYSBMZWdhY3lWZXJzaW9uCisgICAg
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShwYXJzZWRfdmVyc2lvbiwgTGVnYWN5VmVyc2lvbik6
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICAjIFN0b3Jl
IGFueSBpdGVtIHdoaWNoIGlzIGEgcHJlLXJlbGVhc2UgZm9yIGxhdGVyIHVubGVzcyB3ZSd2ZQor
ICAgICAgICAgICAgICAgICMgYWxyZWFkeSBmb3VuZCBhIGZpbmFsIHZlcnNpb24gb3Igd2UgYXJl
IGFjY2VwdGluZyBwcmVyZWxlYXNlcworICAgICAgICAgICAgICAgIGlmIHBhcnNlZF92ZXJzaW9u
LmlzX3ByZXJlbGVhc2UgYW5kIG5vdCBwcmVyZWxlYXNlczoKKyAgICAgICAgICAgICAgICAgICAg
aWYgbm90IGZpbHRlcmVkOgorICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRfcHJlcmVsZWFz
ZXMuYXBwZW5kKGl0ZW0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgZmlsdGVyZWQuYXBwZW5kKGl0ZW0pCisKKyAgICAgICAgICAgICMgSWYgd2UndmUgZm91bmQg
bm8gaXRlbXMgZXhjZXB0IGZvciBwcmUtcmVsZWFzZXMsIHRoZW4gd2UnbGwgZ28KKyAgICAgICAg
ICAgICMgYWhlYWQgYW5kIHVzZSB0aGUgcHJlLXJlbGVhc2VzCisgICAgICAgICAgICBpZiBub3Qg
ZmlsdGVyZWQgYW5kIGZvdW5kX3ByZXJlbGVhc2VzIGFuZCBwcmVyZWxlYXNlcyBpcyBOb25lOgor
ICAgICAgICAgICAgICAgIHJldHVybiBmb3VuZF9wcmVyZWxlYXNlcworCisgICAgICAgICAgICBy
ZXR1cm4gZmlsdGVyZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy90YWdz
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3RhZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQyNDQ3
ZDg2M2IzNDM5YjBhMmM2NGZjN2NjYjYwMThlZTNkOGIyMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL3BhY2thZ2luZy90YWdzLnB5CkBAIC0wLDAgKzEsODU2IEBACisjIFRoaXMg
ZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQXBhY2hlIExpY2Vu
c2UsIFZlcnNpb24KKyMgMi4wLCBhbmQgdGhlIEJTRCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0Ug
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGlzIHJlcG9zaXRvcnkKKyMgZm9yIGNvbXBsZXRlIGRldGFp
bHMuCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CisKK2ltcG9ydCBk
aXN0dXRpbHMudXRpbAorCit0cnk6CisgICAgZnJvbSBpbXBvcnRsaWIubWFjaGluZXJ5IGltcG9y
dCBFWFRFTlNJT05fU1VGRklYRVMKK2V4Y2VwdCBJbXBvcnRFcnJvcjogICMgcHJhZ21hOiBubyBj
b3ZlcgorICAgIGltcG9ydCBpbXAKKworICAgIEVYVEVOU0lPTl9TVUZGSVhFUyA9IFt4WzBdIGZv
ciB4IGluIGltcC5nZXRfc3VmZml4ZXMoKV0KKyAgICBkZWwgaW1wCitpbXBvcnQgY29sbGVjdGlv
bnMKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHJl
CitpbXBvcnQgc3RydWN0CitpbXBvcnQgc3lzCitpbXBvcnQgc3lzY29uZmlnCitpbXBvcnQgd2Fy
bmluZ3MKKworZnJvbSAuX3R5cGluZyBpbXBvcnQgVFlQRV9DSEVDS0lORywgY2FzdAorCitpZiBU
WVBFX0NIRUNLSU5HOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0
ICgKKyAgICAgICAgRGljdCwKKyAgICAgICAgRnJvemVuU2V0LAorICAgICAgICBJTywKKyAgICAg
ICAgSXRlcmFibGUsCisgICAgICAgIEl0ZXJhdG9yLAorICAgICAgICBMaXN0LAorICAgICAgICBP
cHRpb25hbCwKKyAgICAgICAgU2VxdWVuY2UsCisgICAgICAgIFR1cGxlLAorICAgICAgICBVbmlv
biwKKyAgICApCisKKyAgICBQeXRob25WZXJzaW9uID0gU2VxdWVuY2VbaW50XQorICAgIE1hY1Zl
cnNpb24gPSBUdXBsZVtpbnQsIGludF0KKyAgICBHbGliY1ZlcnNpb24gPSBUdXBsZVtpbnQsIGlu
dF0KKworCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworSU5URVJQUkVU
RVJfU0hPUlRfTkFNRVMgPSB7CisgICAgInB5dGhvbiI6ICJweSIsICAjIEdlbmVyaWMuCisgICAg
ImNweXRob24iOiAiY3AiLAorICAgICJweXB5IjogInBwIiwKKyAgICAiaXJvbnB5dGhvbiI6ICJp
cCIsCisgICAgImp5dGhvbiI6ICJqeSIsCit9ICAjIHR5cGU6IERpY3Rbc3RyLCBzdHJdCisKKwor
XzMyX0JJVF9JTlRFUlBSRVRFUiA9IHN5cy5tYXhzaXplIDw9IDIgKiogMzIKKworCitfTEVHQUNZ
X01BTllMSU5VWF9NQVAgPSB7CisgICAgIyBDZW50T1MgNyB3LyBnbGliYyAyLjE3IChQRVAgNTk5
KQorICAgICgyLCAxNyk6ICJtYW55bGludXgyMDE0IiwKKyAgICAjIENlbnRPUyA2IHcvIGdsaWJj
IDIuMTIgKFBFUCA1NzEpCisgICAgKDIsIDEyKTogIm1hbnlsaW51eDIwMTAiLAorICAgICMgQ2Vu
dE9TIDUgdy8gZ2xpYmMgMi41IChQRVAgNTEzKQorICAgICgyLCA1KTogIm1hbnlsaW51eDEiLAor
fQorCisjIElmIGdsaWJjIGV2ZXIgY2hhbmdlcyBpdHMgbWFqb3IgdmVyc2lvbiwgd2UgbmVlZCB0
byBrbm93IHdoYXQgdGhlIGxhc3QKKyMgbWlub3IgdmVyc2lvbiB3YXMsIHNvIHdlIGNhbiBidWls
ZCB0aGUgY29tcGxldGUgbGlzdCBvZiBhbGwgdmVyc2lvbnMuCisjIEZvciBub3csIGd1ZXNzIHdo
YXQgdGhlIGhpZ2hlc3QgbWlub3IgdmVyc2lvbiBtaWdodCBiZSwgYXNzdW1lIGl0IHdpbGwKKyMg
YmUgNTAgZm9yIHRlc3RpbmcuIE9uY2UgdGhpcyBhY3R1YWxseSBoYXBwZW5zLCB1cGRhdGUgdGhl
IGRpY3Rpb25hcnkKKyMgd2l0aCB0aGUgYWN0dWFsIHZhbHVlLgorX0xBU1RfR0xJQkNfTUlOT1Ig
PSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChsYW1iZGE6IDUwKSAgIyB0eXBlOiBEaWN0W2ludCwg
aW50XQorZ2xpYmNWZXJzaW9uID0gY29sbGVjdGlvbnMubmFtZWR0dXBsZSgiVmVyc2lvbiIsIFsi
bWFqb3IiLCAibWlub3IiXSkKKworCitjbGFzcyBUYWcob2JqZWN0KToKKyAgICAiIiIKKyAgICBB
IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0YWcgdHJpcGxlIGZvciBhIHdoZWVsLgorCisgICAgSW5z
dGFuY2VzIGFyZSBjb25zaWRlcmVkIGltbXV0YWJsZSBhbmQgdGh1cyBhcmUgaGFzaGFibGUuIEVx
dWFsaXR5IGNoZWNraW5nCisgICAgaXMgYWxzbyBzdXBwb3J0ZWQuCisgICAgIiIiCisKKyAgICBf
X3Nsb3RzX18gPSBbIl9pbnRlcnByZXRlciIsICJfYWJpIiwgIl9wbGF0Zm9ybSIsICJfaGFzaCJd
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaW50ZXJwcmV0ZXIsIGFiaSwgcGxhdGZvcm0pOgor
ICAgICAgICAjIHR5cGU6IChzdHIsIHN0ciwgc3RyKSAtPiBOb25lCisgICAgICAgIHNlbGYuX2lu
dGVycHJldGVyID0gaW50ZXJwcmV0ZXIubG93ZXIoKQorICAgICAgICBzZWxmLl9hYmkgPSBhYmku
bG93ZXIoKQorICAgICAgICBzZWxmLl9wbGF0Zm9ybSA9IHBsYXRmb3JtLmxvd2VyKCkKKyAgICAg
ICAgIyBUaGUgX19oYXNoX18gb2YgZXZlcnkgc2luZ2xlIGVsZW1lbnQgaW4gYSBTZXRbVGFnXSB3
aWxsIGJlIGV2YWx1YXRlZCBlYWNoIHRpbWUKKyAgICAgICAgIyB0aGF0IGEgc2V0IGNhbGxzIGl0
cyBgLmRpc2pvaW50KClgIG1ldGhvZCwgd2hpY2ggbWF5IGJlIGNhbGxlZCBodW5kcmVkcyBvZgor
ICAgICAgICAjIHRpbWVzIHdoZW4gc2Nhbm5pbmcgYSBwYWdlIG9mIGxpbmtzIGZvciBwYWNrYWdl
cyB3aXRoIHRhZ3MgbWF0Y2hpbmcgdGhhdAorICAgICAgICAjIFNldFtUYWddLiBQcmUtY29tcHV0
aW5nIHRoZSB2YWx1ZSBoZXJlIHByb2R1Y2VzIHNpZ25pZmljYW50IHNwZWVkdXBzIGZvcgorICAg
ICAgICAjIGRvd25zdHJlYW0gY29uc3VtZXJzLgorICAgICAgICBzZWxmLl9oYXNoID0gaGFzaCgo
c2VsZi5faW50ZXJwcmV0ZXIsIHNlbGYuX2FiaSwgc2VsZi5fcGxhdGZvcm0pKQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGludGVycHJldGVyKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+
IHN0cgorICAgICAgICByZXR1cm4gc2VsZi5faW50ZXJwcmV0ZXIKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBhYmkoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJl
dHVybiBzZWxmLl9hYmkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwbGF0Zm9ybShzZWxmKToK
KyAgICAgICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BsYXRmb3Jt
CisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgIyB0eXBlOiAob2JqZWN0
KSAtPiBib29sCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG90aGVyLCBUYWcpOgorICAgICAg
ICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAg
ICAgIChzZWxmLnBsYXRmb3JtID09IG90aGVyLnBsYXRmb3JtKQorICAgICAgICAgICAgYW5kIChz
ZWxmLmFiaSA9PSBvdGhlci5hYmkpCisgICAgICAgICAgICBhbmQgKHNlbGYuaW50ZXJwcmV0ZXIg
PT0gb3RoZXIuaW50ZXJwcmV0ZXIpCisgICAgICAgICkKKworICAgIGRlZiBfX2hhc2hfXyhzZWxm
KToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBpbnQKKyAgICAgICAgcmV0dXJuIHNlbGYuX2hhc2gK
KworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAg
ICAgICByZXR1cm4gInt9LXt9LXt9Ii5mb3JtYXQoc2VsZi5faW50ZXJwcmV0ZXIsIHNlbGYuX2Fi
aSwgc2VsZi5fcGxhdGZvcm0pCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICMg
dHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJldHVybiAiPHtzZWxmfSBAIHtzZWxmX2lkfT4iLmZv
cm1hdChzZWxmPXNlbGYsIHNlbGZfaWQ9aWQoc2VsZikpCisKKworZGVmIHBhcnNlX3RhZyh0YWcp
OgorICAgICMgdHlwZTogKHN0cikgLT4gRnJvemVuU2V0W1RhZ10KKyAgICAiIiIKKyAgICBQYXJz
ZXMgdGhlIHByb3ZpZGVkIHRhZyAoZS5nLiBgcHkzLW5vbmUtYW55YCkgaW50byBhIGZyb3plbnNl
dCBvZiBUYWcgaW5zdGFuY2VzLgorCisgICAgUmV0dXJuaW5nIGEgc2V0IGlzIHJlcXVpcmVkIGR1
ZSB0byB0aGUgcG9zc2liaWxpdHkgdGhhdCB0aGUgdGFnIGlzIGEKKyAgICBjb21wcmVzc2VkIHRh
ZyBzZXQuCisgICAgIiIiCisgICAgdGFncyA9IHNldCgpCisgICAgaW50ZXJwcmV0ZXJzLCBhYmlz
LCBwbGF0Zm9ybXMgPSB0YWcuc3BsaXQoIi0iKQorICAgIGZvciBpbnRlcnByZXRlciBpbiBpbnRl
cnByZXRlcnMuc3BsaXQoIi4iKToKKyAgICAgICAgZm9yIGFiaSBpbiBhYmlzLnNwbGl0KCIuIik6
CisgICAgICAgICAgICBmb3IgcGxhdGZvcm1fIGluIHBsYXRmb3Jtcy5zcGxpdCgiLiIpOgorICAg
ICAgICAgICAgICAgIHRhZ3MuYWRkKFRhZyhpbnRlcnByZXRlciwgYWJpLCBwbGF0Zm9ybV8pKQor
ICAgIHJldHVybiBmcm96ZW5zZXQodGFncykKKworCitkZWYgX3dhcm5fa2V5d29yZF9wYXJhbWV0
ZXIoZnVuY19uYW1lLCBrd2FyZ3MpOgorICAgICMgdHlwZTogKHN0ciwgRGljdFtzdHIsIGJvb2xd
KSAtPiBib29sCisgICAgIiIiCisgICAgQmFja3dhcmRzLWNvbXBhdGliaWxpdHkgd2l0aCBQeXRo
b24gMi43IHRvIGFsbG93IHRyZWF0aW5nICd3YXJuJyBhcyBrZXl3b3JkLW9ubHkuCisgICAgIiIi
CisgICAgaWYgbm90IGt3YXJnczoKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgZWxpZiBsZW4o
a3dhcmdzKSA+IDEgb3IgIndhcm4iIG5vdCBpbiBrd2FyZ3M6CisgICAgICAgIGt3YXJncy5wb3Ao
Indhcm4iLCBOb25lKQorICAgICAgICBhcmcgPSBuZXh0KGl0ZXIoa3dhcmdzLmtleXMoKSkpCisg
ICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICJ7fSgpIGdvdCBhbiB1bmV4cGVj
dGVkIGtleXdvcmQgYXJndW1lbnQgeyFyfSIuZm9ybWF0KGZ1bmNfbmFtZSwgYXJnKQorICAgICAg
ICApCisgICAgcmV0dXJuIGt3YXJnc1sid2FybiJdCisKKworZGVmIF9nZXRfY29uZmlnX3Zhcihu
YW1lLCB3YXJuPUZhbHNlKToKKyAgICAjIHR5cGU6IChzdHIsIGJvb2wpIC0+IFVuaW9uW2ludCwg
c3RyLCBOb25lXQorICAgIHZhbHVlID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKG5hbWUpCisg
ICAgaWYgdmFsdWUgaXMgTm9uZSBhbmQgd2FybjoKKyAgICAgICAgbG9nZ2VyLmRlYnVnKAorICAg
ICAgICAgICAgIkNvbmZpZyB2YXJpYWJsZSAnJXMnIGlzIHVuc2V0LCBQeXRob24gQUJJIHRhZyBt
YXkgYmUgaW5jb3JyZWN0IiwgbmFtZQorICAgICAgICApCisgICAgcmV0dXJuIHZhbHVlCisKKwor
ZGVmIF9ub3JtYWxpemVfc3RyaW5nKHN0cmluZyk6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBzdHIK
KyAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoIi4iLCAiXyIpLnJlcGxhY2UoIi0iLCAiXyIpCisK
KworZGVmIF9hYmkzX2FwcGxpZXMocHl0aG9uX3ZlcnNpb24pOgorICAgICMgdHlwZTogKFB5dGhv
blZlcnNpb24pIC0+IGJvb2wKKyAgICAiIiIKKyAgICBEZXRlcm1pbmUgaWYgdGhlIFB5dGhvbiB2
ZXJzaW9uIHN1cHBvcnRzIGFiaTMuCisKKyAgICBQRVAgMzg0IHdhcyBmaXJzdCBpbXBsZW1lbnRl
ZCBpbiBQeXRob24gMy4yLgorICAgICIiIgorICAgIHJldHVybiBsZW4ocHl0aG9uX3ZlcnNpb24p
ID4gMSBhbmQgdHVwbGUocHl0aG9uX3ZlcnNpb24pID49ICgzLCAyKQorCisKK2RlZiBfY3B5dGhv
bl9hYmlzKHB5X3ZlcnNpb24sIHdhcm49RmFsc2UpOgorICAgICMgdHlwZTogKFB5dGhvblZlcnNp
b24sIGJvb2wpIC0+IExpc3Rbc3RyXQorICAgIHB5X3ZlcnNpb24gPSB0dXBsZShweV92ZXJzaW9u
KSAgIyBUbyBhbGxvdyBmb3IgdmVyc2lvbiBjb21wYXJpc29uLgorICAgIGFiaXMgPSBbXQorICAg
IHZlcnNpb24gPSBfdmVyc2lvbl9ub2RvdChweV92ZXJzaW9uWzoyXSkKKyAgICBkZWJ1ZyA9IHB5
bWFsbG9jID0gdWNzNCA9ICIiCisgICAgd2l0aF9kZWJ1ZyA9IF9nZXRfY29uZmlnX3ZhcigiUHlf
REVCVUciLCB3YXJuKQorICAgIGhhc19yZWZjb3VudCA9IGhhc2F0dHIoc3lzLCAiZ2V0dG90YWxy
ZWZjb3VudCIpCisgICAgIyBXaW5kb3dzIGRvZXNuJ3Qgc2V0IFB5X0RFQlVHLCBzbyBjaGVja2lu
ZyBmb3Igc3VwcG9ydCBvZiBkZWJ1Zy1jb21waWxlZAorICAgICMgZXh0ZW5zaW9uIG1vZHVsZXMg
aXMgdGhlIGJlc3Qgb3B0aW9uLgorICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3B5cGEvcGlwL2lz
c3Vlcy8zMzgzI2lzc3VlY29tbWVudC0xNzMyNjc2OTIKKyAgICBoYXNfZXh0ID0gIl9kLnB5ZCIg
aW4gRVhURU5TSU9OX1NVRkZJWEVTCisgICAgaWYgd2l0aF9kZWJ1ZyBvciAod2l0aF9kZWJ1ZyBp
cyBOb25lIGFuZCAoaGFzX3JlZmNvdW50IG9yIGhhc19leHQpKToKKyAgICAgICAgZGVidWcgPSAi
ZCIKKyAgICBpZiBweV92ZXJzaW9uIDwgKDMsIDgpOgorICAgICAgICB3aXRoX3B5bWFsbG9jID0g
X2dldF9jb25maWdfdmFyKCJXSVRIX1BZTUFMTE9DIiwgd2FybikKKyAgICAgICAgaWYgd2l0aF9w
eW1hbGxvYyBvciB3aXRoX3B5bWFsbG9jIGlzIE5vbmU6CisgICAgICAgICAgICBweW1hbGxvYyA9
ICJtIgorICAgICAgICBpZiBweV92ZXJzaW9uIDwgKDMsIDMpOgorICAgICAgICAgICAgdW5pY29k
ZV9zaXplID0gX2dldF9jb25maWdfdmFyKCJQeV9VTklDT0RFX1NJWkUiLCB3YXJuKQorICAgICAg
ICAgICAgaWYgdW5pY29kZV9zaXplID09IDQgb3IgKAorICAgICAgICAgICAgICAgIHVuaWNvZGVf
c2l6ZSBpcyBOb25lIGFuZCBzeXMubWF4dW5pY29kZSA9PSAweDEwRkZGRgorICAgICAgICAgICAg
KToKKyAgICAgICAgICAgICAgICB1Y3M0ID0gInUiCisgICAgZWxpZiBkZWJ1ZzoKKyAgICAgICAg
IyBEZWJ1ZyBidWlsZHMgY2FuIGFsc28gbG9hZCAibm9ybWFsIiBleHRlbnNpb24gbW9kdWxlcy4K
KyAgICAgICAgIyBXZSBjYW4gYWxzbyBhc3N1bWUgbm8gVUNTLTQgb3IgcHltYWxsb2MgcmVxdWly
ZW1lbnQuCisgICAgICAgIGFiaXMuYXBwZW5kKCJjcHt2ZXJzaW9ufSIuZm9ybWF0KHZlcnNpb249
dmVyc2lvbikpCisgICAgYWJpcy5pbnNlcnQoCisgICAgICAgIDAsCisgICAgICAgICJjcHt2ZXJz
aW9ufXtkZWJ1Z317cHltYWxsb2N9e3VjczR9Ii5mb3JtYXQoCisgICAgICAgICAgICB2ZXJzaW9u
PXZlcnNpb24sIGRlYnVnPWRlYnVnLCBweW1hbGxvYz1weW1hbGxvYywgdWNzND11Y3M0CisgICAg
ICAgICksCisgICAgKQorICAgIHJldHVybiBhYmlzCisKKworZGVmIGNweXRob25fdGFncygKKyAg
ICBweXRob25fdmVyc2lvbj1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtQeXRob25WZXJzaW9uXQor
ICAgIGFiaXM9Tm9uZSwgICMgdHlwZTogT3B0aW9uYWxbSXRlcmFibGVbc3RyXV0KKyAgICBwbGF0
Zm9ybXM9Tm9uZSwgICMgdHlwZTogT3B0aW9uYWxbSXRlcmFibGVbc3RyXV0KKyAgICAqKmt3YXJn
cyAgIyB0eXBlOiBib29sCispOgorICAgICMgdHlwZTogKC4uLikgLT4gSXRlcmF0b3JbVGFnXQor
ICAgICIiIgorICAgIFlpZWxkcyB0aGUgdGFncyBmb3IgYSBDUHl0aG9uIGludGVycHJldGVyLgor
CisgICAgVGhlIHRhZ3MgY29uc2lzdCBvZjoKKyAgICAtIGNwPHB5dGhvbl92ZXJzaW9uPi08YWJp
Pi08cGxhdGZvcm0+CisgICAgLSBjcDxweXRob25fdmVyc2lvbj4tYWJpMy08cGxhdGZvcm0+Cisg
ICAgLSBjcDxweXRob25fdmVyc2lvbj4tbm9uZS08cGxhdGZvcm0+CisgICAgLSBjcDxsZXNzIHRo
YW4gcHl0aG9uX3ZlcnNpb24+LWFiaTMtPHBsYXRmb3JtPiAgIyBPbGRlciBQeXRob24gdmVyc2lv
bnMgZG93biB0byAzLjIuCisKKyAgICBJZiBweXRob25fdmVyc2lvbiBvbmx5IHNwZWNpZmllcyBh
IG1ham9yIHZlcnNpb24gdGhlbiB1c2VyLXByb3ZpZGVkIEFCSXMgYW5kCisgICAgdGhlICdub25l
JyBBQkl0YWcgd2lsbCBiZSB1c2VkLgorCisgICAgSWYgJ2FiaTMnIG9yICdub25lJyBhcmUgc3Bl
Y2lmaWVkIGluICdhYmlzJyB0aGVuIHRoZXkgd2lsbCBiZSB5aWVsZGVkIGF0CisgICAgdGhlaXIg
bm9ybWFsIHBvc2l0aW9uIGFuZCBub3QgYXQgdGhlIGJlZ2lubmluZy4KKyAgICAiIiIKKyAgICB3
YXJuID0gX3dhcm5fa2V5d29yZF9wYXJhbWV0ZXIoImNweXRob25fdGFncyIsIGt3YXJncykKKyAg
ICBpZiBub3QgcHl0aG9uX3ZlcnNpb246CisgICAgICAgIHB5dGhvbl92ZXJzaW9uID0gc3lzLnZl
cnNpb25faW5mb1s6Ml0KKworICAgIGludGVycHJldGVyID0gImNwe30iLmZvcm1hdChfdmVyc2lv
bl9ub2RvdChweXRob25fdmVyc2lvbls6Ml0pKQorCisgICAgaWYgYWJpcyBpcyBOb25lOgorICAg
ICAgICBpZiBsZW4ocHl0aG9uX3ZlcnNpb24pID4gMToKKyAgICAgICAgICAgIGFiaXMgPSBfY3B5
dGhvbl9hYmlzKHB5dGhvbl92ZXJzaW9uLCB3YXJuKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgYWJpcyA9IFtdCisgICAgYWJpcyA9IGxpc3QoYWJpcykKKyAgICAjICdhYmkzJyBhbmQgJ25v
bmUnIGFyZSBleHBsaWNpdGx5IGhhbmRsZWQgbGF0ZXIuCisgICAgZm9yIGV4cGxpY2l0X2FiaSBp
biAoImFiaTMiLCAibm9uZSIpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBhYmlzLnJlbW92
ZShleHBsaWNpdF9hYmkpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAg
cGFzcworCisgICAgcGxhdGZvcm1zID0gbGlzdChwbGF0Zm9ybXMgb3IgX3BsYXRmb3JtX3RhZ3Mo
KSkKKyAgICBmb3IgYWJpIGluIGFiaXM6CisgICAgICAgIGZvciBwbGF0Zm9ybV8gaW4gcGxhdGZv
cm1zOgorICAgICAgICAgICAgeWllbGQgVGFnKGludGVycHJldGVyLCBhYmksIHBsYXRmb3JtXykK
KyAgICBpZiBfYWJpM19hcHBsaWVzKHB5dGhvbl92ZXJzaW9uKToKKyAgICAgICAgZm9yIHRhZyBp
biAoVGFnKGludGVycHJldGVyLCAiYWJpMyIsIHBsYXRmb3JtXykgZm9yIHBsYXRmb3JtXyBpbiBw
bGF0Zm9ybXMpOgorICAgICAgICAgICAgeWllbGQgdGFnCisgICAgZm9yIHRhZyBpbiAoVGFnKGlu
dGVycHJldGVyLCAibm9uZSIsIHBsYXRmb3JtXykgZm9yIHBsYXRmb3JtXyBpbiBwbGF0Zm9ybXMp
OgorICAgICAgICB5aWVsZCB0YWcKKworICAgIGlmIF9hYmkzX2FwcGxpZXMocHl0aG9uX3ZlcnNp
b24pOgorICAgICAgICBmb3IgbWlub3JfdmVyc2lvbiBpbiByYW5nZShweXRob25fdmVyc2lvblsx
XSAtIDEsIDEsIC0xKToKKyAgICAgICAgICAgIGZvciBwbGF0Zm9ybV8gaW4gcGxhdGZvcm1zOgor
ICAgICAgICAgICAgICAgIGludGVycHJldGVyID0gImNwe3ZlcnNpb259Ii5mb3JtYXQoCisgICAg
ICAgICAgICAgICAgICAgIHZlcnNpb249X3ZlcnNpb25fbm9kb3QoKHB5dGhvbl92ZXJzaW9uWzBd
LCBtaW5vcl92ZXJzaW9uKSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgeWll
bGQgVGFnKGludGVycHJldGVyLCAiYWJpMyIsIHBsYXRmb3JtXykKKworCitkZWYgX2dlbmVyaWNf
YWJpKCk6CisgICAgIyB0eXBlOiAoKSAtPiBJdGVyYXRvcltzdHJdCisgICAgYWJpID0gc3lzY29u
ZmlnLmdldF9jb25maWdfdmFyKCJTT0FCSSIpCisgICAgaWYgYWJpOgorICAgICAgICB5aWVsZCBf
bm9ybWFsaXplX3N0cmluZyhhYmkpCisKKworZGVmIGdlbmVyaWNfdGFncygKKyAgICBpbnRlcnBy
ZXRlcj1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtzdHJdCisgICAgYWJpcz1Ob25lLCAgIyB0eXBl
OiBPcHRpb25hbFtJdGVyYWJsZVtzdHJdXQorICAgIHBsYXRmb3Jtcz1Ob25lLCAgIyB0eXBlOiBP
cHRpb25hbFtJdGVyYWJsZVtzdHJdXQorICAgICoqa3dhcmdzICAjIHR5cGU6IGJvb2wKKyk6Cisg
ICAgIyB0eXBlOiAoLi4uKSAtPiBJdGVyYXRvcltUYWddCisgICAgIiIiCisgICAgWWllbGRzIHRo
ZSB0YWdzIGZvciBhIGdlbmVyaWMgaW50ZXJwcmV0ZXIuCisKKyAgICBUaGUgdGFncyBjb25zaXN0
IG9mOgorICAgIC0gPGludGVycHJldGVyPi08YWJpPi08cGxhdGZvcm0+CisKKyAgICBUaGUgIm5v
bmUiIEFCSSB3aWxsIGJlIGFkZGVkIGlmIGl0IHdhcyBub3QgZXhwbGljaXRseSBwcm92aWRlZC4K
KyAgICAiIiIKKyAgICB3YXJuID0gX3dhcm5fa2V5d29yZF9wYXJhbWV0ZXIoImdlbmVyaWNfdGFn
cyIsIGt3YXJncykKKyAgICBpZiBub3QgaW50ZXJwcmV0ZXI6CisgICAgICAgIGludGVycF9uYW1l
ID0gaW50ZXJwcmV0ZXJfbmFtZSgpCisgICAgICAgIGludGVycF92ZXJzaW9uID0gaW50ZXJwcmV0
ZXJfdmVyc2lvbih3YXJuPXdhcm4pCisgICAgICAgIGludGVycHJldGVyID0gIiIuam9pbihbaW50
ZXJwX25hbWUsIGludGVycF92ZXJzaW9uXSkKKyAgICBpZiBhYmlzIGlzIE5vbmU6CisgICAgICAg
IGFiaXMgPSBfZ2VuZXJpY19hYmkoKQorICAgIHBsYXRmb3JtcyA9IGxpc3QocGxhdGZvcm1zIG9y
IF9wbGF0Zm9ybV90YWdzKCkpCisgICAgYWJpcyA9IGxpc3QoYWJpcykKKyAgICBpZiAibm9uZSIg
bm90IGluIGFiaXM6CisgICAgICAgIGFiaXMuYXBwZW5kKCJub25lIikKKyAgICBmb3IgYWJpIGlu
IGFiaXM6CisgICAgICAgIGZvciBwbGF0Zm9ybV8gaW4gcGxhdGZvcm1zOgorICAgICAgICAgICAg
eWllbGQgVGFnKGludGVycHJldGVyLCBhYmksIHBsYXRmb3JtXykKKworCitkZWYgX3B5X2ludGVy
cHJldGVyX3JhbmdlKHB5X3ZlcnNpb24pOgorICAgICMgdHlwZTogKFB5dGhvblZlcnNpb24pIC0+
IEl0ZXJhdG9yW3N0cl0KKyAgICAiIiIKKyAgICBZaWVsZHMgUHl0aG9uIHZlcnNpb25zIGluIGRl
c2NlbmRpbmcgb3JkZXIuCisKKyAgICBBZnRlciB0aGUgbGF0ZXN0IHZlcnNpb24sIHRoZSBtYWpv
ci1vbmx5IHZlcnNpb24gd2lsbCBiZSB5aWVsZGVkLCBhbmQgdGhlbgorICAgIGFsbCBwcmV2aW91
cyB2ZXJzaW9ucyBvZiB0aGF0IG1ham9yIHZlcnNpb24uCisgICAgIiIiCisgICAgaWYgbGVuKHB5
X3ZlcnNpb24pID4gMToKKyAgICAgICAgeWllbGQgInB5e3ZlcnNpb259Ii5mb3JtYXQodmVyc2lv
bj1fdmVyc2lvbl9ub2RvdChweV92ZXJzaW9uWzoyXSkpCisgICAgeWllbGQgInB5e21ham9yfSIu
Zm9ybWF0KG1ham9yPXB5X3ZlcnNpb25bMF0pCisgICAgaWYgbGVuKHB5X3ZlcnNpb24pID4gMToK
KyAgICAgICAgZm9yIG1pbm9yIGluIHJhbmdlKHB5X3ZlcnNpb25bMV0gLSAxLCAtMSwgLTEpOgor
ICAgICAgICAgICAgeWllbGQgInB5e3ZlcnNpb259Ii5mb3JtYXQodmVyc2lvbj1fdmVyc2lvbl9u
b2RvdCgocHlfdmVyc2lvblswXSwgbWlub3IpKSkKKworCitkZWYgY29tcGF0aWJsZV90YWdzKAor
ICAgIHB5dGhvbl92ZXJzaW9uPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW1B5dGhvblZlcnNpb25d
CisgICAgaW50ZXJwcmV0ZXI9Tm9uZSwgICMgdHlwZTogT3B0aW9uYWxbc3RyXQorICAgIHBsYXRm
b3Jtcz1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtJdGVyYWJsZVtzdHJdXQorKToKKyAgICAjIHR5
cGU6ICguLi4pIC0+IEl0ZXJhdG9yW1RhZ10KKyAgICAiIiIKKyAgICBZaWVsZHMgdGhlIHNlcXVl
bmNlIG9mIHRhZ3MgdGhhdCBhcmUgY29tcGF0aWJsZSB3aXRoIGEgc3BlY2lmaWMgdmVyc2lvbiBv
ZiBQeXRob24uCisKKyAgICBUaGUgdGFncyBjb25zaXN0IG9mOgorICAgIC0gcHkqLW5vbmUtPHBs
YXRmb3JtPgorICAgIC0gPGludGVycHJldGVyPi1ub25lLWFueSAgIyAuLi4gaWYgYGludGVycHJl
dGVyYCBpcyBwcm92aWRlZC4KKyAgICAtIHB5Ki1ub25lLWFueQorICAgICIiIgorICAgIGlmIG5v
dCBweXRob25fdmVyc2lvbjoKKyAgICAgICAgcHl0aG9uX3ZlcnNpb24gPSBzeXMudmVyc2lvbl9p
bmZvWzoyXQorICAgIHBsYXRmb3JtcyA9IGxpc3QocGxhdGZvcm1zIG9yIF9wbGF0Zm9ybV90YWdz
KCkpCisgICAgZm9yIHZlcnNpb24gaW4gX3B5X2ludGVycHJldGVyX3JhbmdlKHB5dGhvbl92ZXJz
aW9uKToKKyAgICAgICAgZm9yIHBsYXRmb3JtXyBpbiBwbGF0Zm9ybXM6CisgICAgICAgICAgICB5
aWVsZCBUYWcodmVyc2lvbiwgIm5vbmUiLCBwbGF0Zm9ybV8pCisgICAgaWYgaW50ZXJwcmV0ZXI6
CisgICAgICAgIHlpZWxkIFRhZyhpbnRlcnByZXRlciwgIm5vbmUiLCAiYW55IikKKyAgICBmb3Ig
dmVyc2lvbiBpbiBfcHlfaW50ZXJwcmV0ZXJfcmFuZ2UocHl0aG9uX3ZlcnNpb24pOgorICAgICAg
ICB5aWVsZCBUYWcodmVyc2lvbiwgIm5vbmUiLCAiYW55IikKKworCitkZWYgX21hY19hcmNoKGFy
Y2gsIGlzXzMyYml0PV8zMl9CSVRfSU5URVJQUkVURVIpOgorICAgICMgdHlwZTogKHN0ciwgYm9v
bCkgLT4gc3RyCisgICAgaWYgbm90IGlzXzMyYml0OgorICAgICAgICByZXR1cm4gYXJjaAorCisg
ICAgaWYgYXJjaC5zdGFydHN3aXRoKCJwcGMiKToKKyAgICAgICAgcmV0dXJuICJwcGMiCisKKyAg
ICByZXR1cm4gImkzODYiCisKKworZGVmIF9tYWNfYmluYXJ5X2Zvcm1hdHModmVyc2lvbiwgY3B1
X2FyY2gpOgorICAgICMgdHlwZTogKE1hY1ZlcnNpb24sIHN0cikgLT4gTGlzdFtzdHJdCisgICAg
Zm9ybWF0cyA9IFtjcHVfYXJjaF0KKyAgICBpZiBjcHVfYXJjaCA9PSAieDg2XzY0IjoKKyAgICAg
ICAgaWYgdmVyc2lvbiA8ICgxMCwgNCk6CisgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAg
Zm9ybWF0cy5leHRlbmQoWyJpbnRlbCIsICJmYXQ2NCIsICJmYXQzMiJdKQorCisgICAgZWxpZiBj
cHVfYXJjaCA9PSAiaTM4NiI6CisgICAgICAgIGlmIHZlcnNpb24gPCAoMTAsIDQpOgorICAgICAg
ICAgICAgcmV0dXJuIFtdCisgICAgICAgIGZvcm1hdHMuZXh0ZW5kKFsiaW50ZWwiLCAiZmF0MzIi
LCAiZmF0Il0pCisKKyAgICBlbGlmIGNwdV9hcmNoID09ICJwcGM2NCI6CisgICAgICAgICMgVE9E
TzogTmVlZCB0byBjYXJlIGFib3V0IDMyLWJpdCBQUEMgZm9yIHBwYzY0IHRocm91Z2ggMTAuMj8K
KyAgICAgICAgaWYgdmVyc2lvbiA+ICgxMCwgNSkgb3IgdmVyc2lvbiA8ICgxMCwgNCk6CisgICAg
ICAgICAgICByZXR1cm4gW10KKyAgICAgICAgZm9ybWF0cy5hcHBlbmQoImZhdDY0IikKKworICAg
IGVsaWYgY3B1X2FyY2ggPT0gInBwYyI6CisgICAgICAgIGlmIHZlcnNpb24gPiAoMTAsIDYpOgor
ICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIGZvcm1hdHMuZXh0ZW5kKFsiZmF0MzIiLCAi
ZmF0Il0pCisKKyAgICBpZiBjcHVfYXJjaCBpbiB7ImFybTY0IiwgIng4Nl82NCJ9OgorICAgICAg
ICBmb3JtYXRzLmFwcGVuZCgidW5pdmVyc2FsMiIpCisKKyAgICBpZiBjcHVfYXJjaCBpbiB7Ing4
Nl82NCIsICJpMzg2IiwgInBwYzY0IiwgInBwYyJ9OgorICAgICAgICBmb3JtYXRzLmFwcGVuZCgi
dW5pdmVyc2FsIikKKworICAgIHJldHVybiBmb3JtYXRzCisKKworZGVmIG1hY19wbGF0Zm9ybXMo
dmVyc2lvbj1Ob25lLCBhcmNoPU5vbmUpOgorICAgICMgdHlwZTogKE9wdGlvbmFsW01hY1ZlcnNp
b25dLCBPcHRpb25hbFtzdHJdKSAtPiBJdGVyYXRvcltzdHJdCisgICAgIiIiCisgICAgWWllbGRz
IHRoZSBwbGF0Zm9ybSB0YWdzIGZvciBhIG1hY09TIHN5c3RlbS4KKworICAgIFRoZSBgdmVyc2lv
bmAgcGFyYW1ldGVyIGlzIGEgdHdvLWl0ZW0gdHVwbGUgc3BlY2lmeWluZyB0aGUgbWFjT1MgdmVy
c2lvbiB0bworICAgIGdlbmVyYXRlIHBsYXRmb3JtIHRhZ3MgZm9yLiBUaGUgYGFyY2hgIHBhcmFt
ZXRlciBpcyB0aGUgQ1BVIGFyY2hpdGVjdHVyZSB0bworICAgIGdlbmVyYXRlIHBsYXRmb3JtIHRh
Z3MgZm9yLiBCb3RoIHBhcmFtZXRlcnMgZGVmYXVsdCB0byB0aGUgYXBwcm9wcmlhdGUgdmFsdWUK
KyAgICBmb3IgdGhlIGN1cnJlbnQgc3lzdGVtLgorICAgICIiIgorICAgIHZlcnNpb25fc3RyLCBf
LCBjcHVfYXJjaCA9IHBsYXRmb3JtLm1hY192ZXIoKSAgIyB0eXBlOiBpZ25vcmUKKyAgICBpZiB2
ZXJzaW9uIGlzIE5vbmU6CisgICAgICAgIHZlcnNpb24gPSBjYXN0KCJNYWNWZXJzaW9uIiwgdHVw
bGUobWFwKGludCwgdmVyc2lvbl9zdHIuc3BsaXQoIi4iKVs6Ml0pKSkKKyAgICBlbHNlOgorICAg
ICAgICB2ZXJzaW9uID0gdmVyc2lvbgorICAgIGlmIGFyY2ggaXMgTm9uZToKKyAgICAgICAgYXJj
aCA9IF9tYWNfYXJjaChjcHVfYXJjaCkKKyAgICBlbHNlOgorICAgICAgICBhcmNoID0gYXJjaAor
CisgICAgaWYgKDEwLCAwKSA8PSB2ZXJzaW9uIGFuZCB2ZXJzaW9uIDwgKDExLCAwKToKKyAgICAg
ICAgIyBQcmlvciB0byBNYWMgT1MgMTEsIGVhY2ggeWVhcmx5IHJlbGVhc2Ugb2YgTWFjIE9TIGJ1
bXBlZCB0aGUKKyAgICAgICAgIyAibWlub3IiIHZlcnNpb24gbnVtYmVyLiAgVGhlIG1ham9yIHZl
cnNpb24gd2FzIGFsd2F5cyAxMC4KKyAgICAgICAgZm9yIG1pbm9yX3ZlcnNpb24gaW4gcmFuZ2Uo
dmVyc2lvblsxXSwgLTEsIC0xKToKKyAgICAgICAgICAgIGNvbXBhdF92ZXJzaW9uID0gMTAsIG1p
bm9yX3ZlcnNpb24KKyAgICAgICAgICAgIGJpbmFyeV9mb3JtYXRzID0gX21hY19iaW5hcnlfZm9y
bWF0cyhjb21wYXRfdmVyc2lvbiwgYXJjaCkKKyAgICAgICAgICAgIGZvciBiaW5hcnlfZm9ybWF0
IGluIGJpbmFyeV9mb3JtYXRzOgorICAgICAgICAgICAgICAgIHlpZWxkICJtYWNvc3hfe21ham9y
fV97bWlub3J9X3tiaW5hcnlfZm9ybWF0fSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBt
YWpvcj0xMCwgbWlub3I9bWlub3JfdmVyc2lvbiwgYmluYXJ5X2Zvcm1hdD1iaW5hcnlfZm9ybWF0
CisgICAgICAgICAgICAgICAgKQorCisgICAgaWYgdmVyc2lvbiA+PSAoMTEsIDApOgorICAgICAg
ICAjIFN0YXJ0aW5nIHdpdGggTWFjIE9TIDExLCBlYWNoIHllYXJseSByZWxlYXNlIGJ1bXBzIHRo
ZSBtYWpvciB2ZXJzaW9uCisgICAgICAgICMgbnVtYmVyLiAgIFRoZSBtaW5vciB2ZXJzaW9ucyBh
cmUgbm93IHRoZSBtaWR5ZWFyIHVwZGF0ZXMuCisgICAgICAgIGZvciBtYWpvcl92ZXJzaW9uIGlu
IHJhbmdlKHZlcnNpb25bMF0sIDEwLCAtMSk6CisgICAgICAgICAgICBjb21wYXRfdmVyc2lvbiA9
IG1ham9yX3ZlcnNpb24sIDAKKyAgICAgICAgICAgIGJpbmFyeV9mb3JtYXRzID0gX21hY19iaW5h
cnlfZm9ybWF0cyhjb21wYXRfdmVyc2lvbiwgYXJjaCkKKyAgICAgICAgICAgIGZvciBiaW5hcnlf
Zm9ybWF0IGluIGJpbmFyeV9mb3JtYXRzOgorICAgICAgICAgICAgICAgIHlpZWxkICJtYWNvc3hf
e21ham9yfV97bWlub3J9X3tiaW5hcnlfZm9ybWF0fSIuZm9ybWF0KAorICAgICAgICAgICAgICAg
ICAgICBtYWpvcj1tYWpvcl92ZXJzaW9uLCBtaW5vcj0wLCBiaW5hcnlfZm9ybWF0PWJpbmFyeV9m
b3JtYXQKKyAgICAgICAgICAgICAgICApCisKKyAgICBpZiB2ZXJzaW9uID49ICgxMSwgMCkgYW5k
IGFyY2ggPT0gIng4Nl82NCI6CisgICAgICAgICMgTWFjIE9TIDExIG9uIHg4Nl82NCBpcyBjb21w
YXRpYmxlIHdpdGggYmluYXJpZXMgZnJvbSBwcmV2aW91cyByZWxlYXNlcy4KKyAgICAgICAgIyBB
cm02NCBzdXBwb3J0IHdhcyBpbnRyb2R1Y2VkIGluIDExLjAsIHNvIG5vIEFybSBiaW5hcmllcyBm
cm9tIHByZXZpb3VzCisgICAgICAgICMgcmVsZWFzZXMgZXhpc3QuCisgICAgICAgIGZvciBtaW5v
cl92ZXJzaW9uIGluIHJhbmdlKDE2LCAzLCAtMSk6CisgICAgICAgICAgICBjb21wYXRfdmVyc2lv
biA9IDEwLCBtaW5vcl92ZXJzaW9uCisgICAgICAgICAgICBiaW5hcnlfZm9ybWF0cyA9IF9tYWNf
YmluYXJ5X2Zvcm1hdHMoY29tcGF0X3ZlcnNpb24sIGFyY2gpCisgICAgICAgICAgICBmb3IgYmlu
YXJ5X2Zvcm1hdCBpbiBiaW5hcnlfZm9ybWF0czoKKyAgICAgICAgICAgICAgICB5aWVsZCAibWFj
b3N4X3ttYWpvcn1fe21pbm9yfV97YmluYXJ5X2Zvcm1hdH0iLmZvcm1hdCgKKyAgICAgICAgICAg
ICAgICAgICAgbWFqb3I9Y29tcGF0X3ZlcnNpb25bMF0sCisgICAgICAgICAgICAgICAgICAgIG1p
bm9yPWNvbXBhdF92ZXJzaW9uWzFdLAorICAgICAgICAgICAgICAgICAgICBiaW5hcnlfZm9ybWF0
PWJpbmFyeV9mb3JtYXQsCisgICAgICAgICAgICAgICAgKQorCisKKyMgRnJvbSBQRVAgNTEzLCBQ
RVAgNjAwCitkZWYgX2lzX21hbnlsaW51eF9jb21wYXRpYmxlKG5hbWUsIGFyY2gsIGdsaWJjX3Zl
cnNpb24pOgorICAgICMgdHlwZTogKHN0ciwgc3RyLCBHbGliY1ZlcnNpb24pIC0+IGJvb2wKKyAg
ICBzeXNfZ2xpYmMgPSBfZ2V0X2dsaWJjX3ZlcnNpb24oKQorICAgIGlmIHN5c19nbGliYyA8IGds
aWJjX3ZlcnNpb246CisgICAgICAgIHJldHVybiBGYWxzZQorICAgICMgQ2hlY2sgZm9yIHByZXNl
bmNlIG9mIF9tYW55bGludXggbW9kdWxlLgorICAgIHRyeToKKyAgICAgICAgaW1wb3J0IF9tYW55
bGludXggICMgbm9xYQorICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgcGFzcworICAg
IGVsc2U6CisgICAgICAgIGlmIGhhc2F0dHIoX21hbnlsaW51eCwgIm1hbnlsaW51eF9jb21wYXRp
YmxlIik6CisgICAgICAgICAgICByZXN1bHQgPSBfbWFueWxpbnV4Lm1hbnlsaW51eF9jb21wYXRp
YmxlKAorICAgICAgICAgICAgICAgIGdsaWJjX3ZlcnNpb25bMF0sIGdsaWJjX3ZlcnNpb25bMV0s
IGFyY2gKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlmIHJlc3VsdCBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgICAgICByZXR1cm4gYm9vbChyZXN1bHQpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBpZiBnbGliY192ZXJzaW9uID09ICgyLCA1KToKKyAgICAgICAgICAgICAgICBpZiBo
YXNhdHRyKF9tYW55bGludXgsICJtYW55bGludXgxX2NvbXBhdGlibGUiKToKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGJvb2woX21hbnlsaW51eC5tYW55bGludXgxX2NvbXBhdGlibGUpCisg
ICAgICAgICAgICBpZiBnbGliY192ZXJzaW9uID09ICgyLCAxMik6CisgICAgICAgICAgICAgICAg
aWYgaGFzYXR0cihfbWFueWxpbnV4LCAibWFueWxpbnV4MjAxMF9jb21wYXRpYmxlIik6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib29sKF9tYW55bGludXgubWFueWxpbnV4MjAxMF9jb21w
YXRpYmxlKQorICAgICAgICAgICAgaWYgZ2xpYmNfdmVyc2lvbiA9PSAoMiwgMTcpOgorICAgICAg
ICAgICAgICAgIGlmIGhhc2F0dHIoX21hbnlsaW51eCwgIm1hbnlsaW51eDIwMTRfY29tcGF0aWJs
ZSIpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm9vbChfbWFueWxpbnV4Lm1hbnlsaW51
eDIwMTRfY29tcGF0aWJsZSkKKyAgICByZXR1cm4gVHJ1ZQorCisKK2RlZiBfZ2xpYmNfdmVyc2lv
bl9zdHJpbmcoKToKKyAgICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW3N0cl0KKyAgICAjIFJldHVy
bnMgZ2xpYmMgdmVyc2lvbiBzdHJpbmcsIG9yIE5vbmUgaWYgbm90IHVzaW5nIGdsaWJjLgorICAg
IHJldHVybiBfZ2xpYmNfdmVyc2lvbl9zdHJpbmdfY29uZnN0cigpIG9yIF9nbGliY192ZXJzaW9u
X3N0cmluZ19jdHlwZXMoKQorCisKK2RlZiBfZ2xpYmNfdmVyc2lvbl9zdHJpbmdfY29uZnN0cigp
OgorICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbc3RyXQorICAgICIiIgorICAgIFByaW1hcnkg
aW1wbGVtZW50YXRpb24gb2YgZ2xpYmNfdmVyc2lvbl9zdHJpbmcgdXNpbmcgb3MuY29uZnN0ci4K
KyAgICAiIiIKKyAgICAjIG9zLmNvbmZzdHIgaXMgcXVpdGUgYSBiaXQgZmFzdGVyIHRoYW4gY3R5
cGVzLkRMTC4gSXQncyBhbHNvIGxlc3MgbGlrZWx5CisgICAgIyB0byBiZSBicm9rZW4gb3IgbWlz
c2luZy4gVGhpcyBzdHJhdGVneSBpcyB1c2VkIGluIHRoZSBzdGFuZGFyZCBsaWJyYXJ5CisgICAg
IyBwbGF0Zm9ybSBtb2R1bGUuCisgICAgIyBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uL2NweXRo
b24vYmxvYi9mY2YxZDAwM2JmNGYwMTAwYzlkMDkyMWZmM2Q3MGUxMTI3Y2ExYjcxL0xpYi9wbGF0
Zm9ybS5weSNMMTc1LUwxODMKKyAgICB0cnk6CisgICAgICAgICMgb3MuY29uZnN0cigiQ1NfR05V
X0xJQkNfVkVSU0lPTiIpIHJldHVybnMgYSBzdHJpbmcgbGlrZSAiZ2xpYmMgMi4xNyIuCisgICAg
ICAgIHZlcnNpb25fc3RyaW5nID0gb3MuY29uZnN0ciggICMgdHlwZTogaWdub3JlW2F0dHItZGVm
aW5lZF0gIyBub3FhOiBGODIxCisgICAgICAgICAgICAiQ1NfR05VX0xJQkNfVkVSU0lPTiIKKyAg
ICAgICAgKQorICAgICAgICBhc3NlcnQgdmVyc2lvbl9zdHJpbmcgaXMgbm90IE5vbmUKKyAgICAg
ICAgXywgdmVyc2lvbiA9IHZlcnNpb25fc3RyaW5nLnNwbGl0KCkgICMgdHlwZTogVHVwbGVbc3Ry
LCBzdHJdCisgICAgZXhjZXB0IChBc3NlcnRpb25FcnJvciwgQXR0cmlidXRlRXJyb3IsIE9TRXJy
b3IsIFZhbHVlRXJyb3IpOgorICAgICAgICAjIG9zLmNvbmZzdHIoKSBvciBDU19HTlVfTElCQ19W
RVJTSU9OIG5vdCBhdmFpbGFibGUgKG9yIGEgYmFkIHZhbHVlKS4uLgorICAgICAgICByZXR1cm4g
Tm9uZQorICAgIHJldHVybiB2ZXJzaW9uCisKKworZGVmIF9nbGliY192ZXJzaW9uX3N0cmluZ19j
dHlwZXMoKToKKyAgICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW3N0cl0KKyAgICAiIiIKKyAgICBG
YWxsYmFjayBpbXBsZW1lbnRhdGlvbiBvZiBnbGliY192ZXJzaW9uX3N0cmluZyB1c2luZyBjdHlw
ZXMuCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgY3R5cGVzCisgICAgZXhjZXB0
IEltcG9ydEVycm9yOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgIyBjdHlwZXMuQ0RMTChO
b25lKSBpbnRlcm5hbGx5IGNhbGxzIGRsb3BlbihOVUxMKSwgYW5kIGFzIHRoZSBkbG9wZW4KKyAg
ICAjIG1hbnBhZ2Ugc2F5cywgIklmIGZpbGVuYW1lIGlzIE5VTEwsIHRoZW4gdGhlIHJldHVybmVk
IGhhbmRsZSBpcyBmb3IgdGhlCisgICAgIyBtYWluIHByb2dyYW0iLiBUaGlzIHdheSB3ZSBjYW4g
bGV0IHRoZSBsaW5rZXIgZG8gdGhlIHdvcmsgdG8gZmlndXJlIG91dAorICAgICMgd2hpY2ggbGli
YyBvdXIgcHJvY2VzcyBpcyBhY3R1YWxseSB1c2luZy4KKyAgICAjCisgICAgIyBXZSBtdXN0IGFs
c28gaGFuZGxlIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgdGhlIGV4ZWN1dGFibGUgaXMgbm90IGEK
KyAgICAjIGR5bmFtaWNhbGx5IGxpbmtlZCBleGVjdXRhYmxlLiBUaGlzIGNhbiBvY2N1ciB3aGVu
IHVzaW5nIG11c2wgbGliYywKKyAgICAjIGZvciBleGFtcGxlLiBJbiB0aGlzIHNpdHVhdGlvbiwg
ZGxvcGVuKCkgd2lsbCBlcnJvciwgbGVhZGluZyB0byBhbgorICAgICMgT1NFcnJvci4gSW50ZXJl
c3RpbmdseSwgYXQgbGVhc3QgaW4gdGhlIGNhc2Ugb2YgbXVzbCwgdGhlcmUgaXMgbm8KKyAgICAj
IGVycm5vIHNldCBvbiB0aGUgT1NFcnJvci4gVGhlIHNpbmdsZSBzdHJpbmcgYXJndW1lbnQgdXNl
ZCB0byBjb25zdHJ1Y3QKKyAgICAjIE9TRXJyb3IgY29tZXMgZnJvbSBsaWJjIGl0c2VsZiBhbmQg
aXMgdGhlcmVmb3JlIG5vdCBwb3J0YWJsZSB0bworICAgICMgaGFyZCBjb2RlIGhlcmUuIEluIGFu
eSBjYXNlLCBmYWlsdXJlIHRvIGNhbGwgZGxvcGVuKCkgbWVhbnMgd2UKKyAgICAjIGNhbiBwcm9j
ZWVkLCBzbyB3ZSBiYWlsIG9uIG91ciBhdHRlbXB0LgorICAgIHRyeToKKyAgICAgICAgIyBOb3Rl
OiB0eXBlc2hlZCBpcyB3cm9uZyBoZXJlIHNvIHdlIGFyZSBpZ25vcmluZyB0aGlzIGxpbmUuCisg
ICAgICAgIHByb2Nlc3NfbmFtZXNwYWNlID0gY3R5cGVzLkNETEwoTm9uZSkgICMgdHlwZTogaWdu
b3JlCisgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICB0cnk6
CisgICAgICAgIGdudV9nZXRfbGliY192ZXJzaW9uID0gcHJvY2Vzc19uYW1lc3BhY2UuZ251X2dl
dF9saWJjX3ZlcnNpb24KKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICMgU3lt
Ym9sIGRvZXNuJ3QgZXhpc3QgLT4gdGhlcmVmb3JlLCB3ZSBhcmUgbm90IGxpbmtlZCB0bworICAg
ICAgICAjIGdsaWJjLgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgIyBDYWxsIGdudV9nZXRf
bGliY192ZXJzaW9uLCB3aGljaCByZXR1cm5zIGEgc3RyaW5nIGxpa2UgIjIuNSIKKyAgICBnbnVf
Z2V0X2xpYmNfdmVyc2lvbi5yZXN0eXBlID0gY3R5cGVzLmNfY2hhcl9wCisgICAgdmVyc2lvbl9z
dHIgPSBnbnVfZ2V0X2xpYmNfdmVyc2lvbigpICAjIHR5cGU6IHN0cgorICAgICMgcHkyIC8gcHkz
IGNvbXBhdGliaWxpdHk6CisgICAgaWYgbm90IGlzaW5zdGFuY2UodmVyc2lvbl9zdHIsIHN0cik6
CisgICAgICAgIHZlcnNpb25fc3RyID0gdmVyc2lvbl9zdHIuZGVjb2RlKCJhc2NpaSIpCisKKyAg
ICByZXR1cm4gdmVyc2lvbl9zdHIKKworCitkZWYgX3BhcnNlX2dsaWJjX3ZlcnNpb24odmVyc2lv
bl9zdHIpOgorICAgICMgdHlwZTogKHN0cikgLT4gVHVwbGVbaW50LCBpbnRdCisgICAgIyBQYXJz
ZSBnbGliYyB2ZXJzaW9uLgorICAgICMKKyAgICAjIFdlIHVzZSBhIHJlZ2V4cCBpbnN0ZWFkIG9m
IHN0ci5zcGxpdCBiZWNhdXNlIHdlIHdhbnQgdG8gZGlzY2FyZCBhbnkKKyAgICAjIHJhbmRvbSBq
dW5rIHRoYXQgbWlnaHQgY29tZSBhZnRlciB0aGUgbWlub3IgdmVyc2lvbiAtLSB0aGlzIG1pZ2h0
IGhhcHBlbgorICAgICMgaW4gcGF0Y2hlZC9mb3JrZWQgdmVyc2lvbnMgb2YgZ2xpYmMgKGUuZy4g
TGluYXJvJ3MgdmVyc2lvbiBvZiBnbGliYworICAgICMgdXNlcyB2ZXJzaW9uIHN0cmluZ3MgbGlr
ZSAiMi4yMC0yMDE0LjExIikuIFNlZSBnaC0zNTg4LgorICAgIG0gPSByZS5tYXRjaChyIig/UDxt
YWpvcj5bMC05XSspXC4oP1A8bWlub3I+WzAtOV0rKSIsIHZlcnNpb25fc3RyKQorICAgIGlmIG5v
dCBtOgorICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgIkV4cGVjdGVkIGdsaWJj
IHZlcnNpb24gd2l0aCAyIGNvbXBvbmVudHMgbWFqb3IubWlub3IsIgorICAgICAgICAgICAgIiBn
b3Q6ICVzIiAlIHZlcnNpb25fc3RyLAorICAgICAgICAgICAgUnVudGltZVdhcm5pbmcsCisgICAg
ICAgICkKKyAgICAgICAgcmV0dXJuIC0xLCAtMQorICAgIHJldHVybiAoaW50KG0uZ3JvdXAoIm1h
am9yIikpLCBpbnQobS5ncm91cCgibWlub3IiKSkpCisKKworX2dsaWJjX3ZlcnNpb24gPSBbXSAg
IyAgdHlwZTogTGlzdFtUdXBsZVtpbnQsIGludF1dCisKKworZGVmIF9nZXRfZ2xpYmNfdmVyc2lv
bigpOgorICAgICMgdHlwZTogKCkgLT4gVHVwbGVbaW50LCBpbnRdCisgICAgaWYgX2dsaWJjX3Zl
cnNpb246CisgICAgICAgIHJldHVybiBfZ2xpYmNfdmVyc2lvblswXQorICAgIHZlcnNpb25fc3Ry
ID0gX2dsaWJjX3ZlcnNpb25fc3RyaW5nKCkKKyAgICBpZiB2ZXJzaW9uX3N0ciBpcyBOb25lOgor
ICAgICAgICBfZ2xpYmNfdmVyc2lvbi5hcHBlbmQoKC0xLCAtMSkpCisgICAgZWxzZToKKyAgICAg
ICAgX2dsaWJjX3ZlcnNpb24uYXBwZW5kKF9wYXJzZV9nbGliY192ZXJzaW9uKHZlcnNpb25fc3Ry
KSkKKyAgICByZXR1cm4gX2dsaWJjX3ZlcnNpb25bMF0KKworCisjIFB5dGhvbiBkb2VzIG5vdCBw
cm92aWRlIHBsYXRmb3JtIGluZm9ybWF0aW9uIGF0IHN1ZmZpY2llbnQgZ3JhbnVsYXJpdHkgdG8K
KyMgaWRlbnRpZnkgdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGUgcnVubmluZyBleGVjdXRhYmxlIGlu
IHNvbWUgY2FzZXMsIHNvIHdlCisjIGRldGVybWluZSBpdCBkeW5hbWljYWxseSBieSByZWFkaW5n
IHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBydW5uaW5nCisjIHByb2Nlc3MuIFRoaXMgb25seSBh
cHBsaWVzIG9uIExpbnV4LCB3aGljaCB1c2VzIHRoZSBFTEYgZm9ybWF0LgorY2xhc3MgX0VMRkZp
bGVIZWFkZXIob2JqZWN0KToKKyAgICAjIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0V4
ZWN1dGFibGVfYW5kX0xpbmthYmxlX0Zvcm1hdCNGaWxlX2hlYWRlcgorICAgIGNsYXNzIF9JbnZh
bGlkRUxGRmlsZUhlYWRlcihWYWx1ZUVycm9yKToKKyAgICAgICAgIiIiCisgICAgICAgIEFuIGlu
dmFsaWQgRUxGIGZpbGUgaGVhZGVyIHdhcyBmb3VuZC4KKyAgICAgICAgIiIiCisKKyAgICBFTEZf
TUFHSUNfTlVNQkVSID0gMHg3RjQ1NEM0NgorICAgIEVMRkNMQVNTMzIgPSAxCisgICAgRUxGQ0xB
U1M2NCA9IDIKKyAgICBFTEZEQVRBMkxTQiA9IDEKKyAgICBFTEZEQVRBMk1TQiA9IDIKKyAgICBF
TV8zODYgPSAzCisgICAgRU1fUzM5MCA9IDIyCisgICAgRU1fQVJNID0gNDAKKyAgICBFTV9YODZf
NjQgPSA2MgorICAgIEVGX0FSTV9BQklNQVNLID0gMHhGRjAwMDAwMAorICAgIEVGX0FSTV9BQklf
VkVSNSA9IDB4MDUwMDAwMDAKKyAgICBFRl9BUk1fQUJJX0ZMT0FUX0hBUkQgPSAweDAwMDAwNDAw
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZSk6CisgICAgICAgICMgdHlwZTogKElPW2J5
dGVzXSkgLT4gTm9uZQorICAgICAgICBkZWYgdW5wYWNrKGZtdCk6CisgICAgICAgICAgICAjIHR5
cGU6IChzdHIpIC0+IGludAorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIChyZXN1
bHQsKSA9IHN0cnVjdC51bnBhY2soCisgICAgICAgICAgICAgICAgICAgIGZtdCwgZmlsZS5yZWFk
KHN0cnVjdC5jYWxjc2l6ZShmbXQpKQorICAgICAgICAgICAgICAgICkgICMgdHlwZTogKGludCwg
KQorICAgICAgICAgICAgZXhjZXB0IHN0cnVjdC5lcnJvcjoKKyAgICAgICAgICAgICAgICByYWlz
ZSBfRUxGRmlsZUhlYWRlci5fSW52YWxpZEVMRkZpbGVIZWFkZXIoKQorICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdAorCisgICAgICAgIHNlbGYuZV9pZGVudF9tYWdpYyA9IHVucGFjaygiPkkiKQor
ICAgICAgICBpZiBzZWxmLmVfaWRlbnRfbWFnaWMgIT0gc2VsZi5FTEZfTUFHSUNfTlVNQkVSOgor
ICAgICAgICAgICAgcmFpc2UgX0VMRkZpbGVIZWFkZXIuX0ludmFsaWRFTEZGaWxlSGVhZGVyKCkK
KyAgICAgICAgc2VsZi5lX2lkZW50X2NsYXNzID0gdW5wYWNrKCJCIikKKyAgICAgICAgaWYgc2Vs
Zi5lX2lkZW50X2NsYXNzIG5vdCBpbiB7c2VsZi5FTEZDTEFTUzMyLCBzZWxmLkVMRkNMQVNTNjR9
OgorICAgICAgICAgICAgcmFpc2UgX0VMRkZpbGVIZWFkZXIuX0ludmFsaWRFTEZGaWxlSGVhZGVy
KCkKKyAgICAgICAgc2VsZi5lX2lkZW50X2RhdGEgPSB1bnBhY2soIkIiKQorICAgICAgICBpZiBz
ZWxmLmVfaWRlbnRfZGF0YSBub3QgaW4ge3NlbGYuRUxGREFUQTJMU0IsIHNlbGYuRUxGREFUQTJN
U0J9OgorICAgICAgICAgICAgcmFpc2UgX0VMRkZpbGVIZWFkZXIuX0ludmFsaWRFTEZGaWxlSGVh
ZGVyKCkKKyAgICAgICAgc2VsZi5lX2lkZW50X3ZlcnNpb24gPSB1bnBhY2soIkIiKQorICAgICAg
ICBzZWxmLmVfaWRlbnRfb3NhYmkgPSB1bnBhY2soIkIiKQorICAgICAgICBzZWxmLmVfaWRlbnRf
YWJpdmVyc2lvbiA9IHVucGFjaygiQiIpCisgICAgICAgIHNlbGYuZV9pZGVudF9wYWQgPSBmaWxl
LnJlYWQoNykKKyAgICAgICAgZm9ybWF0X2ggPSAiPEgiIGlmIHNlbGYuZV9pZGVudF9kYXRhID09
IHNlbGYuRUxGREFUQTJMU0IgZWxzZSAiPkgiCisgICAgICAgIGZvcm1hdF9pID0gIjxJIiBpZiBz
ZWxmLmVfaWRlbnRfZGF0YSA9PSBzZWxmLkVMRkRBVEEyTFNCIGVsc2UgIj5JIgorICAgICAgICBm
b3JtYXRfcSA9ICI8USIgaWYgc2VsZi5lX2lkZW50X2RhdGEgPT0gc2VsZi5FTEZEQVRBMkxTQiBl
bHNlICI+USIKKyAgICAgICAgZm9ybWF0X3AgPSBmb3JtYXRfaSBpZiBzZWxmLmVfaWRlbnRfY2xh
c3MgPT0gc2VsZi5FTEZDTEFTUzMyIGVsc2UgZm9ybWF0X3EKKyAgICAgICAgc2VsZi5lX3R5cGUg
PSB1bnBhY2soZm9ybWF0X2gpCisgICAgICAgIHNlbGYuZV9tYWNoaW5lID0gdW5wYWNrKGZvcm1h
dF9oKQorICAgICAgICBzZWxmLmVfdmVyc2lvbiA9IHVucGFjayhmb3JtYXRfaSkKKyAgICAgICAg
c2VsZi5lX2VudHJ5ID0gdW5wYWNrKGZvcm1hdF9wKQorICAgICAgICBzZWxmLmVfcGhvZmYgPSB1
bnBhY2soZm9ybWF0X3ApCisgICAgICAgIHNlbGYuZV9zaG9mZiA9IHVucGFjayhmb3JtYXRfcCkK
KyAgICAgICAgc2VsZi5lX2ZsYWdzID0gdW5wYWNrKGZvcm1hdF9pKQorICAgICAgICBzZWxmLmVf
ZWhzaXplID0gdW5wYWNrKGZvcm1hdF9oKQorICAgICAgICBzZWxmLmVfcGhlbnRzaXplID0gdW5w
YWNrKGZvcm1hdF9oKQorICAgICAgICBzZWxmLmVfcGhudW0gPSB1bnBhY2soZm9ybWF0X2gpCisg
ICAgICAgIHNlbGYuZV9zaGVudHNpemUgPSB1bnBhY2soZm9ybWF0X2gpCisgICAgICAgIHNlbGYu
ZV9zaG51bSA9IHVucGFjayhmb3JtYXRfaCkKKyAgICAgICAgc2VsZi5lX3Noc3RybmR4ID0gdW5w
YWNrKGZvcm1hdF9oKQorCisKK2RlZiBfZ2V0X2VsZl9oZWFkZXIoKToKKyAgICAjIHR5cGU6ICgp
IC0+IE9wdGlvbmFsW19FTEZGaWxlSGVhZGVyXQorICAgIHRyeToKKyAgICAgICAgd2l0aCBvcGVu
KHN5cy5leGVjdXRhYmxlLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgZWxmX2hlYWRlciA9IF9F
TEZGaWxlSGVhZGVyKGYpCisgICAgZXhjZXB0IChJT0Vycm9yLCBPU0Vycm9yLCBUeXBlRXJyb3Is
IF9FTEZGaWxlSGVhZGVyLl9JbnZhbGlkRUxGRmlsZUhlYWRlcik6CisgICAgICAgIHJldHVybiBO
b25lCisgICAgcmV0dXJuIGVsZl9oZWFkZXIKKworCitkZWYgX2lzX2xpbnV4X2FybWhmKCk6Cisg
ICAgIyB0eXBlOiAoKSAtPiBib29sCisgICAgIyBoYXJkLWZsb2F0IEFCSSBjYW4gYmUgZGV0ZWN0
ZWQgZnJvbSB0aGUgRUxGIGhlYWRlciBvZiB0aGUgcnVubmluZworICAgICMgcHJvY2VzcworICAg
ICMgaHR0cHM6Ly9zdGF0aWMuZG9jcy5hcm0uY29tL2loaTAwNDQvZy9hYWVsZjMyLnBkZgorICAg
IGVsZl9oZWFkZXIgPSBfZ2V0X2VsZl9oZWFkZXIoKQorICAgIGlmIGVsZl9oZWFkZXIgaXMgTm9u
ZToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmVzdWx0ID0gZWxmX2hlYWRlci5lX2lkZW50
X2NsYXNzID09IGVsZl9oZWFkZXIuRUxGQ0xBU1MzMgorICAgIHJlc3VsdCAmPSBlbGZfaGVhZGVy
LmVfaWRlbnRfZGF0YSA9PSBlbGZfaGVhZGVyLkVMRkRBVEEyTFNCCisgICAgcmVzdWx0ICY9IGVs
Zl9oZWFkZXIuZV9tYWNoaW5lID09IGVsZl9oZWFkZXIuRU1fQVJNCisgICAgcmVzdWx0ICY9ICgK
KyAgICAgICAgZWxmX2hlYWRlci5lX2ZsYWdzICYgZWxmX2hlYWRlci5FRl9BUk1fQUJJTUFTSwor
ICAgICkgPT0gZWxmX2hlYWRlci5FRl9BUk1fQUJJX1ZFUjUKKyAgICByZXN1bHQgJj0gKAorICAg
ICAgICBlbGZfaGVhZGVyLmVfZmxhZ3MgJiBlbGZfaGVhZGVyLkVGX0FSTV9BQklfRkxPQVRfSEFS
RAorICAgICkgPT0gZWxmX2hlYWRlci5FRl9BUk1fQUJJX0ZMT0FUX0hBUkQKKyAgICByZXR1cm4g
cmVzdWx0CisKKworZGVmIF9pc19saW51eF9pNjg2KCk6CisgICAgIyB0eXBlOiAoKSAtPiBib29s
CisgICAgZWxmX2hlYWRlciA9IF9nZXRfZWxmX2hlYWRlcigpCisgICAgaWYgZWxmX2hlYWRlciBp
cyBOb25lOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICByZXN1bHQgPSBlbGZfaGVhZGVyLmVf
aWRlbnRfY2xhc3MgPT0gZWxmX2hlYWRlci5FTEZDTEFTUzMyCisgICAgcmVzdWx0ICY9IGVsZl9o
ZWFkZXIuZV9pZGVudF9kYXRhID09IGVsZl9oZWFkZXIuRUxGREFUQTJMU0IKKyAgICByZXN1bHQg
Jj0gZWxmX2hlYWRlci5lX21hY2hpbmUgPT0gZWxmX2hlYWRlci5FTV8zODYKKyAgICByZXR1cm4g
cmVzdWx0CisKKworZGVmIF9oYXZlX2NvbXBhdGlibGVfbWFueWxpbnV4X2FiaShhcmNoKToKKyAg
ICAjIHR5cGU6IChzdHIpIC0+IGJvb2wKKyAgICBpZiBhcmNoID09ICJhcm12N2wiOgorICAgICAg
ICByZXR1cm4gX2lzX2xpbnV4X2FybWhmKCkKKyAgICBpZiBhcmNoID09ICJpNjg2IjoKKyAgICAg
ICAgcmV0dXJuIF9pc19saW51eF9pNjg2KCkKKyAgICByZXR1cm4gYXJjaCBpbiB7Ing4Nl82NCIs
ICJhYXJjaDY0IiwgInBwYzY0IiwgInBwYzY0bGUiLCAiczM5MHgifQorCisKK2RlZiBfbWFueWxp
bnV4X3RhZ3MobGludXgsIGFyY2gpOgorICAgICMgdHlwZTogKHN0ciwgc3RyKSAtPiBJdGVyYXRv
cltzdHJdCisgICAgIyBPbGRlc3QgZ2xpYmMgdG8gYmUgc3VwcG9ydGVkIHJlZ2FyZGxlc3Mgb2Yg
YXJjaGl0ZWN0dXJlIGlzICgyLCAxNykuCisgICAgdG9vX29sZF9nbGliYzIgPSBnbGliY1ZlcnNp
b24oMiwgMTYpCisgICAgaWYgYXJjaCBpbiB7Ing4Nl82NCIsICJpNjg2In06CisgICAgICAgICMg
T24geDg2L2k2ODYgYWxzbyBvbGRlc3QgZ2xpYmMgdG8gYmUgc3VwcG9ydGVkIGlzICgyLCA1KS4K
KyAgICAgICAgdG9vX29sZF9nbGliYzIgPSBnbGliY1ZlcnNpb24oMiwgNCkKKyAgICBjdXJyZW50
X2dsaWJjID0gZ2xpYmNWZXJzaW9uKCpfZ2V0X2dsaWJjX3ZlcnNpb24oKSkKKyAgICBnbGliY19t
YXhfbGlzdCA9IFtjdXJyZW50X2dsaWJjXQorICAgICMgV2UgY2FuIGFzc3VtZSBjb21wYXRpYmls
aXR5IGFjcm9zcyBnbGliYyBtYWpvciB2ZXJzaW9ucy4KKyAgICAjIGh0dHBzOi8vc291cmNld2Fy
ZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI0NjM2CisgICAgIworICAgICMgQnVpbGQg
YSBsaXN0IG9mIG1heGltdW0gZ2xpYmMgdmVyc2lvbnMgc28gdGhhdCB3ZSBjYW4KKyAgICAjIG91
dHB1dCB0aGUgY2Fub25pY2FsIGxpc3Qgb2YgYWxsIGdsaWJjIGZyb20gY3VycmVudF9nbGliYwor
ICAgICMgZG93biB0byB0b29fb2xkX2dsaWJjMiwgaW5jbHVkaW5nIGFsbCBpbnRlcm1lZGlhcnkg
dmVyc2lvbnMuCisgICAgZm9yIGdsaWJjX21ham9yIGluIHJhbmdlKGN1cnJlbnRfZ2xpYmMubWFq
b3IgLSAxLCAxLCAtMSk6CisgICAgICAgIGdsaWJjX21heF9saXN0LmFwcGVuZChnbGliY1ZlcnNp
b24oZ2xpYmNfbWFqb3IsIF9MQVNUX0dMSUJDX01JTk9SW2dsaWJjX21ham9yXSkpCisgICAgZm9y
IGdsaWJjX21heCBpbiBnbGliY19tYXhfbGlzdDoKKyAgICAgICAgaWYgZ2xpYmNfbWF4Lm1ham9y
ID09IHRvb19vbGRfZ2xpYmMyLm1ham9yOgorICAgICAgICAgICAgbWluX21pbm9yID0gdG9vX29s
ZF9nbGliYzIubWlub3IKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgRm9yIG90aGVyIGds
aWJjIG1ham9yIHZlcnNpb25zIG9sZGVzdCBzdXBwb3J0ZWQgaXMgKHgsIDApLgorICAgICAgICAg
ICAgbWluX21pbm9yID0gLTEKKyAgICAgICAgZm9yIGdsaWJjX21pbm9yIGluIHJhbmdlKGdsaWJj
X21heC5taW5vciwgbWluX21pbm9yLCAtMSk6CisgICAgICAgICAgICBnbGliY192ZXJzaW9uID0g
KGdsaWJjX21heC5tYWpvciwgZ2xpYmNfbWlub3IpCisgICAgICAgICAgICB0YWcgPSAibWFueWxp
bnV4X3t9X3t9Ii5mb3JtYXQoKmdsaWJjX3ZlcnNpb24pCisgICAgICAgICAgICBpZiBfaXNfbWFu
eWxpbnV4X2NvbXBhdGlibGUodGFnLCBhcmNoLCBnbGliY192ZXJzaW9uKToKKyAgICAgICAgICAg
ICAgICB5aWVsZCBsaW51eC5yZXBsYWNlKCJsaW51eCIsIHRhZykKKyAgICAgICAgICAgICMgSGFu
ZGxlIHRoZSBsZWdhY3kgbWFueWxpbnV4MSwgbWFueWxpbnV4MjAxMCwgbWFueWxpbnV4MjAxNCB0
YWdzLgorICAgICAgICAgICAgaWYgZ2xpYmNfdmVyc2lvbiBpbiBfTEVHQUNZX01BTllMSU5VWF9N
QVA6CisgICAgICAgICAgICAgICAgbGVnYWN5X3RhZyA9IF9MRUdBQ1lfTUFOWUxJTlVYX01BUFtn
bGliY192ZXJzaW9uXQorICAgICAgICAgICAgICAgIGlmIF9pc19tYW55bGludXhfY29tcGF0aWJs
ZShsZWdhY3lfdGFnLCBhcmNoLCBnbGliY192ZXJzaW9uKToKKyAgICAgICAgICAgICAgICAgICAg
eWllbGQgbGludXgucmVwbGFjZSgibGludXgiLCBsZWdhY3lfdGFnKQorCisKK2RlZiBfbGludXhf
cGxhdGZvcm1zKGlzXzMyYml0PV8zMl9CSVRfSU5URVJQUkVURVIpOgorICAgICMgdHlwZTogKGJv
b2wpIC0+IEl0ZXJhdG9yW3N0cl0KKyAgICBsaW51eCA9IF9ub3JtYWxpemVfc3RyaW5nKGRpc3R1
dGlscy51dGlsLmdldF9wbGF0Zm9ybSgpKQorICAgIGlmIGlzXzMyYml0OgorICAgICAgICBpZiBs
aW51eCA9PSAibGludXhfeDg2XzY0IjoKKyAgICAgICAgICAgIGxpbnV4ID0gImxpbnV4X2k2ODYi
CisgICAgICAgIGVsaWYgbGludXggPT0gImxpbnV4X2FhcmNoNjQiOgorICAgICAgICAgICAgbGlu
dXggPSAibGludXhfYXJtdjdsIgorICAgIF8sIGFyY2ggPSBsaW51eC5zcGxpdCgiXyIsIDEpCisg
ICAgaWYgX2hhdmVfY29tcGF0aWJsZV9tYW55bGludXhfYWJpKGFyY2gpOgorICAgICAgICBmb3Ig
dGFnIGluIF9tYW55bGludXhfdGFncyhsaW51eCwgYXJjaCk6CisgICAgICAgICAgICB5aWVsZCB0
YWcKKyAgICB5aWVsZCBsaW51eAorCisKK2RlZiBfZ2VuZXJpY19wbGF0Zm9ybXMoKToKKyAgICAj
IHR5cGU6ICgpIC0+IEl0ZXJhdG9yW3N0cl0KKyAgICB5aWVsZCBfbm9ybWFsaXplX3N0cmluZyhk
aXN0dXRpbHMudXRpbC5nZXRfcGxhdGZvcm0oKSkKKworCitkZWYgX3BsYXRmb3JtX3RhZ3MoKToK
KyAgICAjIHR5cGU6ICgpIC0+IEl0ZXJhdG9yW3N0cl0KKyAgICAiIiIKKyAgICBQcm92aWRlcyB0
aGUgcGxhdGZvcm0gdGFncyBmb3IgdGhpcyBpbnN0YWxsYXRpb24uCisgICAgIiIiCisgICAgaWYg
cGxhdGZvcm0uc3lzdGVtKCkgPT0gIkRhcndpbiI6CisgICAgICAgIHJldHVybiBtYWNfcGxhdGZv
cm1zKCkKKyAgICBlbGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICJMaW51eCI6CisgICAgICAgIHJl
dHVybiBfbGludXhfcGxhdGZvcm1zKCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gX2dlbmVy
aWNfcGxhdGZvcm1zKCkKKworCitkZWYgaW50ZXJwcmV0ZXJfbmFtZSgpOgorICAgICMgdHlwZTog
KCkgLT4gc3RyCisgICAgIiIiCisgICAgUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgcnVubmluZyBp
bnRlcnByZXRlci4KKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIG5hbWUgPSBzeXMuaW1wbGVt
ZW50YXRpb24ubmFtZSAgIyB0eXBlOiBpZ25vcmUKKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6
ICAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgIyBQeXRob24gMi43IGNvbXBhdGliaWxpdHku
CisgICAgICAgIG5hbWUgPSBwbGF0Zm9ybS5weXRob25faW1wbGVtZW50YXRpb24oKS5sb3dlcigp
CisgICAgcmV0dXJuIElOVEVSUFJFVEVSX1NIT1JUX05BTUVTLmdldChuYW1lKSBvciBuYW1lCisK
KworZGVmIGludGVycHJldGVyX3ZlcnNpb24oKiprd2FyZ3MpOgorICAgICMgdHlwZTogKGJvb2wp
IC0+IHN0cgorICAgICIiIgorICAgIFJldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIHJ1bm5pbmcg
aW50ZXJwcmV0ZXIuCisgICAgIiIiCisgICAgd2FybiA9IF93YXJuX2tleXdvcmRfcGFyYW1ldGVy
KCJpbnRlcnByZXRlcl92ZXJzaW9uIiwga3dhcmdzKQorICAgIHZlcnNpb24gPSBfZ2V0X2NvbmZp
Z192YXIoInB5X3ZlcnNpb25fbm9kb3QiLCB3YXJuPXdhcm4pCisgICAgaWYgdmVyc2lvbjoKKyAg
ICAgICAgdmVyc2lvbiA9IHN0cih2ZXJzaW9uKQorICAgIGVsc2U6CisgICAgICAgIHZlcnNpb24g
PSBfdmVyc2lvbl9ub2RvdChzeXMudmVyc2lvbl9pbmZvWzoyXSkKKyAgICByZXR1cm4gdmVyc2lv
bgorCisKK2RlZiBfdmVyc2lvbl9ub2RvdCh2ZXJzaW9uKToKKyAgICAjIHR5cGU6IChQeXRob25W
ZXJzaW9uKSAtPiBzdHIKKyAgICBpZiBhbnkodiA+PSAxMCBmb3IgdiBpbiB2ZXJzaW9uKToKKyAg
ICAgICAgc2VwID0gIl8iCisgICAgZWxzZToKKyAgICAgICAgc2VwID0gIiIKKyAgICByZXR1cm4g
c2VwLmpvaW4obWFwKHN0ciwgdmVyc2lvbikpCisKKworZGVmIHN5c190YWdzKCoqa3dhcmdzKToK
KyAgICAjIHR5cGU6IChib29sKSAtPiBJdGVyYXRvcltUYWddCisgICAgIiIiCisgICAgUmV0dXJu
cyB0aGUgc2VxdWVuY2Ugb2YgdGFnIHRyaXBsZXMgZm9yIHRoZSBydW5uaW5nIGludGVycHJldGVy
LgorCisgICAgVGhlIG9yZGVyIG9mIHRoZSBzZXF1ZW5jZSBjb3JyZXNwb25kcyB0byBwcmlvcml0
eSBvcmRlciBmb3IgdGhlCisgICAgaW50ZXJwcmV0ZXIsIGZyb20gbW9zdCB0byBsZWFzdCBpbXBv
cnRhbnQuCisgICAgIiIiCisgICAgd2FybiA9IF93YXJuX2tleXdvcmRfcGFyYW1ldGVyKCJzeXNf
dGFncyIsIGt3YXJncykKKworICAgIGludGVycF9uYW1lID0gaW50ZXJwcmV0ZXJfbmFtZSgpCisg
ICAgaWYgaW50ZXJwX25hbWUgPT0gImNwIjoKKyAgICAgICAgZm9yIHRhZyBpbiBjcHl0aG9uX3Rh
Z3Mod2Fybj13YXJuKToKKyAgICAgICAgICAgIHlpZWxkIHRhZworICAgIGVsc2U6CisgICAgICAg
IGZvciB0YWcgaW4gZ2VuZXJpY190YWdzKCk6CisgICAgICAgICAgICB5aWVsZCB0YWcKKworICAg
IGZvciB0YWcgaW4gY29tcGF0aWJsZV90YWdzKCk6CisgICAgICAgIHlpZWxkIHRhZwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3V0aWxzLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcv
cGFja2FnaW5nL3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyYzdiMDBiNzc4OTE5YmJjNTFjNTE0Yzc3
NWNkNTExZDQxNDBiMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdp
bmcvdXRpbHMucHkKQEAgLTAsMCArMSw2NyBAQAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNl
ZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwg
YW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2Yg
dGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBv
cnQgcmUKKworZnJvbSAuX3R5cGluZyBpbXBvcnQgVFlQRV9DSEVDS0lORywgY2FzdAorZnJvbSAu
dmVyc2lvbiBpbXBvcnQgSW52YWxpZFZlcnNpb24sIFZlcnNpb24KKworaWYgVFlQRV9DSEVDS0lO
RzogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBOZXdUeXBlLCBV
bmlvbgorCisgICAgTm9ybWFsaXplZE5hbWUgPSBOZXdUeXBlKCJOb3JtYWxpemVkTmFtZSIsIHN0
cikKK2Vsc2U6CisgICAgTm9ybWFsaXplZE5hbWUgPSBzdHIKKworX2Nhbm9uaWNhbGl6ZV9yZWdl
eCA9IHJlLmNvbXBpbGUociJbLV8uXSsiKQorCisKK2RlZiBjYW5vbmljYWxpemVfbmFtZShuYW1l
KToKKyAgICAjIHR5cGU6IChzdHIpIC0+IE5vcm1hbGl6ZWROYW1lCisgICAgIyBUaGlzIGlzIHRh
a2VuIGZyb20gUEVQIDUwMy4KKyAgICB2YWx1ZSA9IF9jYW5vbmljYWxpemVfcmVnZXguc3ViKCIt
IiwgbmFtZSkubG93ZXIoKQorICAgIHJldHVybiBjYXN0KCJOb3JtYWxpemVkTmFtZSIsIHZhbHVl
KQorCisKK2RlZiBjYW5vbmljYWxpemVfdmVyc2lvbih2ZXJzaW9uKToKKyAgICAjIHR5cGU6IChV
bmlvbltWZXJzaW9uLCBzdHJdKSAtPiBVbmlvbltWZXJzaW9uLCBzdHJdCisgICAgIiIiCisgICAg
VGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gVmVyc2lvbi5fX3N0cl9fLCBidXQgaGFzIG9uZSBzdWJ0
bGUgZGlmZmVyZW5jZQorICAgIHdpdGggdGhlIHdheSBpdCBoYW5kbGVzIHRoZSByZWxlYXNlIHNl
Z21lbnQuCisgICAgIiIiCisgICAgaWYgbm90IGlzaW5zdGFuY2UodmVyc2lvbiwgVmVyc2lvbik6
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZlcnNpb24gPSBWZXJzaW9uKHZlcnNpb24pCisg
ICAgICAgIGV4Y2VwdCBJbnZhbGlkVmVyc2lvbjoKKyAgICAgICAgICAgICMgTGVnYWN5IHZlcnNp
b25zIGNhbm5vdCBiZSBub3JtYWxpemVkCisgICAgICAgICAgICByZXR1cm4gdmVyc2lvbgorCisg
ICAgcGFydHMgPSBbXQorCisgICAgIyBFcG9jaAorICAgIGlmIHZlcnNpb24uZXBvY2ggIT0gMDoK
KyAgICAgICAgcGFydHMuYXBwZW5kKCJ7MH0hIi5mb3JtYXQodmVyc2lvbi5lcG9jaCkpCisKKyAg
ICAjIFJlbGVhc2Ugc2VnbWVudAorICAgICMgTkI6IFRoaXMgc3RyaXBzIHRyYWlsaW5nICcuMCdz
IHRvIG5vcm1hbGl6ZQorICAgIHBhcnRzLmFwcGVuZChyZS5zdWIociIoXC4wKSskIiwgIiIsICIu
Ii5qb2luKHN0cih4KSBmb3IgeCBpbiB2ZXJzaW9uLnJlbGVhc2UpKSkKKworICAgICMgUHJlLXJl
bGVhc2UKKyAgICBpZiB2ZXJzaW9uLnByZSBpcyBub3QgTm9uZToKKyAgICAgICAgcGFydHMuYXBw
ZW5kKCIiLmpvaW4oc3RyKHgpIGZvciB4IGluIHZlcnNpb24ucHJlKSkKKworICAgICMgUG9zdC1y
ZWxlYXNlCisgICAgaWYgdmVyc2lvbi5wb3N0IGlzIG5vdCBOb25lOgorICAgICAgICBwYXJ0cy5h
cHBlbmQoIi5wb3N0ezB9Ii5mb3JtYXQodmVyc2lvbi5wb3N0KSkKKworICAgICMgRGV2ZWxvcG1l
bnQgcmVsZWFzZQorICAgIGlmIHZlcnNpb24uZGV2IGlzIG5vdCBOb25lOgorICAgICAgICBwYXJ0
cy5hcHBlbmQoIi5kZXZ7MH0iLmZvcm1hdCh2ZXJzaW9uLmRldikpCisKKyAgICAjIExvY2FsIHZl
cnNpb24gc2VnbWVudAorICAgIGlmIHZlcnNpb24ubG9jYWwgaXMgbm90IE5vbmU6CisgICAgICAg
IHBhcnRzLmFwcGVuZCgiK3swfSIuZm9ybWF0KHZlcnNpb24ubG9jYWwpKQorCisgICAgcmV0dXJu
ICIiLmpvaW4ocGFydHMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdmVy
c2lvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy92ZXJzaW9uLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUxN2Q5MWYyNDg1OWU3ZjE4ZjRmN2ZiZDZkNmNmMmU1NmQ5N2E4MjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdmVyc2lvbi5weQpAQCAtMCwwICsxLDU1NiBA
QAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFw
YWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRo
ZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21w
bGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBpdGVy
dG9vbHMKK2ltcG9ydCByZQoraW1wb3J0IHdhcm5pbmdzCisKK2Zyb20gLl9zdHJ1Y3R1cmVzIGlt
cG9ydCBJbmZpbml0eSwgTmVnYXRpdmVJbmZpbml0eQorZnJvbSAuX3R5cGluZyBpbXBvcnQgVFlQ
RV9DSEVDS0lORworCitpZiBUWVBFX0NIRUNLSU5HOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAg
ZnJvbSB0eXBpbmcgaW1wb3J0IENhbGxhYmxlLCBJdGVyYXRvciwgTGlzdCwgT3B0aW9uYWwsIFN1
cHBvcnRzSW50LCBUdXBsZSwgVW5pb24KKworICAgIGZyb20gLl9zdHJ1Y3R1cmVzIGltcG9ydCBJ
bmZpbml0eVR5cGUsIE5lZ2F0aXZlSW5maW5pdHlUeXBlCisKKyAgICBJbmZpbml0ZVR5cGVzID0g
VW5pb25bSW5maW5pdHlUeXBlLCBOZWdhdGl2ZUluZmluaXR5VHlwZV0KKyAgICBQcmVQb3N0RGV2
VHlwZSA9IFVuaW9uW0luZmluaXRlVHlwZXMsIFR1cGxlW3N0ciwgaW50XV0KKyAgICBTdWJMb2Nh
bFR5cGUgPSBVbmlvbltJbmZpbml0ZVR5cGVzLCBpbnQsIHN0cl0KKyAgICBMb2NhbFR5cGUgPSBV
bmlvblsKKyAgICAgICAgTmVnYXRpdmVJbmZpbml0eVR5cGUsCisgICAgICAgIFR1cGxlWworICAg
ICAgICAgICAgVW5pb25bCisgICAgICAgICAgICAgICAgU3ViTG9jYWxUeXBlLAorICAgICAgICAg
ICAgICAgIFR1cGxlW1N1YkxvY2FsVHlwZSwgc3RyXSwKKyAgICAgICAgICAgICAgICBUdXBsZVtO
ZWdhdGl2ZUluZmluaXR5VHlwZSwgU3ViTG9jYWxUeXBlXSwKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAuLi4sCisgICAgICAgIF0sCisgICAgXQorICAgIENtcEtleSA9IFR1cGxlWworICAg
ICAgICBpbnQsIFR1cGxlW2ludCwgLi4uXSwgUHJlUG9zdERldlR5cGUsIFByZVBvc3REZXZUeXBl
LCBQcmVQb3N0RGV2VHlwZSwgTG9jYWxUeXBlCisgICAgXQorICAgIExlZ2FjeUNtcEtleSA9IFR1
cGxlW2ludCwgVHVwbGVbc3RyLCAuLi5dXQorICAgIFZlcnNpb25Db21wYXJpc29uTWV0aG9kID0g
Q2FsbGFibGVbCisgICAgICAgIFtVbmlvbltDbXBLZXksIExlZ2FjeUNtcEtleV0sIFVuaW9uW0Nt
cEtleSwgTGVnYWN5Q21wS2V5XV0sIGJvb2wKKyAgICBdCisKK19fYWxsX18gPSBbInBhcnNlIiwg
IlZlcnNpb24iLCAiTGVnYWN5VmVyc2lvbiIsICJJbnZhbGlkVmVyc2lvbiIsICJWRVJTSU9OX1BB
VFRFUk4iXQorCisKK19WZXJzaW9uID0gY29sbGVjdGlvbnMubmFtZWR0dXBsZSgKKyAgICAiX1Zl
cnNpb24iLCBbImVwb2NoIiwgInJlbGVhc2UiLCAiZGV2IiwgInByZSIsICJwb3N0IiwgImxvY2Fs
Il0KKykKKworCitkZWYgcGFyc2UodmVyc2lvbik6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBVbmlv
bltMZWdhY3lWZXJzaW9uLCBWZXJzaW9uXQorICAgICIiIgorICAgIFBhcnNlIHRoZSBnaXZlbiB2
ZXJzaW9uIHN0cmluZyBhbmQgcmV0dXJuIGVpdGhlciBhIDpjbGFzczpgVmVyc2lvbmAgb2JqZWN0
CisgICAgb3IgYSA6Y2xhc3M6YExlZ2FjeVZlcnNpb25gIG9iamVjdCBkZXBlbmRpbmcgb24gaWYg
dGhlIGdpdmVuIHZlcnNpb24gaXMKKyAgICBhIHZhbGlkIFBFUCA0NDAgdmVyc2lvbiBvciBhIGxl
Z2FjeSB2ZXJzaW9uLgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIFZlcnNpb24o
dmVyc2lvbikKKyAgICBleGNlcHQgSW52YWxpZFZlcnNpb246CisgICAgICAgIHJldHVybiBMZWdh
Y3lWZXJzaW9uKHZlcnNpb24pCisKKworY2xhc3MgSW52YWxpZFZlcnNpb24oVmFsdWVFcnJvcik6
CisgICAgIiIiCisgICAgQW4gaW52YWxpZCB2ZXJzaW9uIHdhcyBmb3VuZCwgdXNlcnMgc2hvdWxk
IHJlZmVyIHRvIFBFUCA0NDAuCisgICAgIiIiCisKKworY2xhc3MgX0Jhc2VWZXJzaW9uKG9iamVj
dCk6CisgICAgX2tleSA9IE5vbmUgICMgdHlwZTogVW5pb25bQ21wS2V5LCBMZWdhY3lDbXBLZXld
CisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gaW50Cisg
ICAgICAgIHJldHVybiBoYXNoKHNlbGYuX2tleSkKKworICAgICMgUGxlYXNlIGtlZXAgdGhlIGR1
cGxpY2F0ZWQgYGlzaW5zdGFuY2VgIGNoZWNrCisgICAgIyBpbiB0aGUgc2l4IGNvbXBhcmlzb25z
IGhlcmV1bmRlcgorICAgICMgdW5sZXNzIHlvdSBmaW5kIGEgd2F5IHRvIGF2b2lkIGFkZGluZyBv
dmVyaGVhZCBmdW5jdGlvbiBjYWxscy4KKyAgICBkZWYgX19sdF9fKHNlbGYsIG90aGVyKToKKyAg
ICAgICAgIyB0eXBlOiAoX0Jhc2VWZXJzaW9uKSAtPiBib29sCisgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKG90aGVyLCBfQmFzZVZlcnNpb24pOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxl
bWVudGVkCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX2tleSA8IG90aGVyLl9rZXkKKworICAgIGRl
ZiBfX2xlX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChfQmFzZVZlcnNpb24pIC0+
IGJvb2wKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIF9CYXNlVmVyc2lvbik6Cisg
ICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKworICAgICAgICByZXR1cm4gc2VsZi5f
a2V5IDw9IG90aGVyLl9rZXkKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAg
ICAjIHR5cGU6IChvYmplY3QpIC0+IGJvb2wKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3Ro
ZXIsIF9CYXNlVmVyc2lvbik6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKwor
ICAgICAgICByZXR1cm4gc2VsZi5fa2V5ID09IG90aGVyLl9rZXkKKworICAgIGRlZiBfX2dlX18o
c2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6IChfQmFzZVZlcnNpb24pIC0+IGJvb2wKKyAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIF9CYXNlVmVyc2lvbik6CisgICAgICAgICAg
ICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKworICAgICAgICByZXR1cm4gc2VsZi5fa2V5ID49IG90
aGVyLl9rZXkKKworICAgIGRlZiBfX2d0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIHR5cGU6
IChfQmFzZVZlcnNpb24pIC0+IGJvb2wKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIs
IF9CYXNlVmVyc2lvbik6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKworICAg
ICAgICByZXR1cm4gc2VsZi5fa2V5ID4gb3RoZXIuX2tleQorCisgICAgZGVmIF9fbmVfXyhzZWxm
LCBvdGhlcik6CisgICAgICAgICMgdHlwZTogKG9iamVjdCkgLT4gYm9vbAorICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShvdGhlciwgX0Jhc2VWZXJzaW9uKToKKyAgICAgICAgICAgIHJldHVybiBO
b3RJbXBsZW1lbnRlZAorCisgICAgICAgIHJldHVybiBzZWxmLl9rZXkgIT0gb3RoZXIuX2tleQor
CisKK2NsYXNzIExlZ2FjeVZlcnNpb24oX0Jhc2VWZXJzaW9uKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgdmVyc2lvbik6CisgICAgICAgICMgdHlwZTogKHN0cikgLT4gTm9uZQorICAgICAgICBz
ZWxmLl92ZXJzaW9uID0gc3RyKHZlcnNpb24pCisgICAgICAgIHNlbGYuX2tleSA9IF9sZWdhY3lf
Y21wa2V5KHNlbGYuX3ZlcnNpb24pCisKKyAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAg
ICAgICJDcmVhdGluZyBhIExlZ2FjeVZlcnNpb24gaGFzIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2ls
bCBiZSAiCisgICAgICAgICAgICAicmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlIiwK
KyAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgKQorCisgICAgZGVmIF9f
c3RyX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJldHVybiBz
ZWxmLl92ZXJzaW9uCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICMgdHlwZTog
KCkgLT4gc3RyCisgICAgICAgIHJldHVybiAiPExlZ2FjeVZlcnNpb24oezB9KT4iLmZvcm1hdChy
ZXByKHN0cihzZWxmKSkpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHVibGljKHNlbGYpOgor
ICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICByZXR1cm4gc2VsZi5fdmVyc2lvbgor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIGJhc2VfdmVyc2lvbihzZWxmKToKKyAgICAgICAgIyB0
eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcmV0dXJuIHNlbGYuX3ZlcnNpb24KKworICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiBlcG9jaChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBpbnQKKyAg
ICAgICAgcmV0dXJuIC0xCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmVsZWFzZShzZWxmKToK
KyAgICAgICAgIyB0eXBlOiAoKSAtPiBOb25lCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgcHJlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE5vbmUK
KyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwb3N0KHNlbGYp
OgorICAgICAgICAjIHR5cGU6ICgpIC0+IE5vbmUKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBkZXYoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gTm9u
ZQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxvY2FsKHNl
bGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE5vbmUKKyAgICAgICAgcmV0dXJuIE5vbmUKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19wcmVyZWxlYXNlKHNlbGYpOgorICAgICAgICAjIHR5
cGU6ICgpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYgaXNfcG9zdHJlbGVhc2Uoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAor
ICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19kZXZyZWxl
YXNlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIEZh
bHNlCisKKworX2xlZ2FjeV92ZXJzaW9uX2NvbXBvbmVudF9yZSA9IHJlLmNvbXBpbGUociIoXGQr
IHwgW2Etel0rIHwgXC58IC0pIiwgcmUuVkVSQk9TRSkKKworX2xlZ2FjeV92ZXJzaW9uX3JlcGxh
Y2VtZW50X21hcCA9IHsKKyAgICAicHJlIjogImMiLAorICAgICJwcmV2aWV3IjogImMiLAorICAg
ICItIjogImZpbmFsLSIsCisgICAgInJjIjogImMiLAorICAgICJkZXYiOiAiQCIsCit9CisKKwor
ZGVmIF9wYXJzZV92ZXJzaW9uX3BhcnRzKHMpOgorICAgICMgdHlwZTogKHN0cikgLT4gSXRlcmF0
b3Jbc3RyXQorICAgIGZvciBwYXJ0IGluIF9sZWdhY3lfdmVyc2lvbl9jb21wb25lbnRfcmUuc3Bs
aXQocyk6CisgICAgICAgIHBhcnQgPSBfbGVnYWN5X3ZlcnNpb25fcmVwbGFjZW1lbnRfbWFwLmdl
dChwYXJ0LCBwYXJ0KQorCisgICAgICAgIGlmIG5vdCBwYXJ0IG9yIHBhcnQgPT0gIi4iOgorICAg
ICAgICAgICAgY29udGludWUKKworICAgICAgICBpZiBwYXJ0WzoxXSBpbiAiMDEyMzQ1Njc4OSI6
CisgICAgICAgICAgICAjIHBhZCBmb3IgbnVtZXJpYyBjb21wYXJpc29uCisgICAgICAgICAgICB5
aWVsZCBwYXJ0LnpmaWxsKDgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB5aWVsZCAiKiIg
KyBwYXJ0CisKKyAgICAjIGVuc3VyZSB0aGF0IGFscGhhL2JldGEvY2FuZGlkYXRlIGFyZSBiZWZv
cmUgZmluYWwKKyAgICB5aWVsZCAiKmZpbmFsIgorCisKK2RlZiBfbGVnYWN5X2NtcGtleSh2ZXJz
aW9uKToKKyAgICAjIHR5cGU6IChzdHIpIC0+IExlZ2FjeUNtcEtleQorCisgICAgIyBXZSBoYXJk
Y29kZSBhbiBlcG9jaCBvZiAtMSBoZXJlLiBBIFBFUCA0NDAgdmVyc2lvbiBjYW4gb25seSBoYXZl
IGEgZXBvY2gKKyAgICAjIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLiBUaGlzIHdpbGwgZWZm
ZWN0aXZlbHkgcHV0IHRoZSBMZWdhY3lWZXJzaW9uLAorICAgICMgd2hpY2ggdXNlcyB0aGUgZGVm
YWN0byBzdGFuZGFyZCBvcmlnaW5hbGx5IGltcGxlbWVudGVkIGJ5IHNldHVwdG9vbHMsCisgICAg
IyBhcyBiZWZvcmUgYWxsIFBFUCA0NDAgdmVyc2lvbnMuCisgICAgZXBvY2ggPSAtMQorCisgICAg
IyBUaGlzIHNjaGVtZSBpcyB0YWtlbiBmcm9tIHBrZ19yZXNvdXJjZXMucGFyc2VfdmVyc2lvbiBz
ZXR1cHRvb2xzIHByaW9yIHRvCisgICAgIyBpdCdzIGFkb3B0aW9uIG9mIHRoZSBwYWNrYWdpbmcg
bGlicmFyeS4KKyAgICBwYXJ0cyA9IFtdICAjIHR5cGU6IExpc3Rbc3RyXQorICAgIGZvciBwYXJ0
IGluIF9wYXJzZV92ZXJzaW9uX3BhcnRzKHZlcnNpb24ubG93ZXIoKSk6CisgICAgICAgIGlmIHBh
cnQuc3RhcnRzd2l0aCgiKiIpOgorICAgICAgICAgICAgIyByZW1vdmUgIi0iIGJlZm9yZSBhIHBy
ZXJlbGVhc2UgdGFnCisgICAgICAgICAgICBpZiBwYXJ0IDwgIipmaW5hbCI6CisgICAgICAgICAg
ICAgICAgd2hpbGUgcGFydHMgYW5kIHBhcnRzWy0xXSA9PSAiKmZpbmFsLSI6CisgICAgICAgICAg
ICAgICAgICAgIHBhcnRzLnBvcCgpCisKKyAgICAgICAgICAgICMgcmVtb3ZlIHRyYWlsaW5nIHpl
cm9zIGZyb20gZWFjaCBzZXJpZXMgb2YgbnVtZXJpYyBwYXJ0cworICAgICAgICAgICAgd2hpbGUg
cGFydHMgYW5kIHBhcnRzWy0xXSA9PSAiMDAwMDAwMDAiOgorICAgICAgICAgICAgICAgIHBhcnRz
LnBvcCgpCisKKyAgICAgICAgcGFydHMuYXBwZW5kKHBhcnQpCisKKyAgICByZXR1cm4gZXBvY2gs
IHR1cGxlKHBhcnRzKQorCisKKyMgRGVsaWJlcmF0ZWx5IG5vdCBhbmNob3JlZCB0byB0aGUgc3Rh
cnQgYW5kIGVuZCBvZiB0aGUgc3RyaW5nLCB0byBtYWtlIGl0CisjIGVhc2llciBmb3IgM3JkIHBh
cnR5IGNvZGUgdG8gcmV1c2UKK1ZFUlNJT05fUEFUVEVSTiA9IHIiIiIKKyAgICB2PworICAgICg/
OgorICAgICAgICAoPzooP1A8ZXBvY2g+WzAtOV0rKSEpPyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICMgZXBvY2gKKyAgICAgICAgKD9QPHJlbGVhc2U+WzAtOV0rKD86XC5bMC05XSspKikgICAg
ICAgICAgICAgICAgICAjIHJlbGVhc2Ugc2VnbWVudAorICAgICAgICAoP1A8cHJlPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcHJlLXJlbGVhc2UKKyAgICAgICAg
ICAgIFstX1wuXT8KKyAgICAgICAgICAgICg/UDxwcmVfbD4oYXxifGN8cmN8YWxwaGF8YmV0YXxw
cmV8cHJldmlldykpCisgICAgICAgICAgICBbLV9cLl0/CisgICAgICAgICAgICAoP1A8cHJlX24+
WzAtOV0rKT8KKyAgICAgICAgKT8KKyAgICAgICAgKD9QPHBvc3Q+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAjIHBvc3QgcmVsZWFzZQorICAgICAgICAgICAgKD86LSg/
UDxwb3N0X24xPlswLTldKykpCisgICAgICAgICAgICB8CisgICAgICAgICAgICAoPzoKKyAgICAg
ICAgICAgICAgICBbLV9cLl0/CisgICAgICAgICAgICAgICAgKD9QPHBvc3RfbD5wb3N0fHJldnxy
KQorICAgICAgICAgICAgICAgIFstX1wuXT8KKyAgICAgICAgICAgICAgICAoP1A8cG9zdF9uMj5b
MC05XSspPworICAgICAgICAgICAgKQorICAgICAgICApPworICAgICAgICAoP1A8ZGV2PiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZGV2IHJlbGVhc2UKKyAgICAg
ICAgICAgIFstX1wuXT8KKyAgICAgICAgICAgICg/UDxkZXZfbD5kZXYpCisgICAgICAgICAgICBb
LV9cLl0/CisgICAgICAgICAgICAoP1A8ZGV2X24+WzAtOV0rKT8KKyAgICAgICAgKT8KKyAgICAp
CisgICAgKD86XCsoP1A8bG9jYWw+W2EtejAtOV0rKD86Wy1fXC5dW2EtejAtOV0rKSopKT8gICAg
ICAgIyBsb2NhbCB2ZXJzaW9uCisiIiIKKworCitjbGFzcyBWZXJzaW9uKF9CYXNlVmVyc2lvbik6
CisKKyAgICBfcmVnZXggPSByZS5jb21waWxlKHIiXlxzKiIgKyBWRVJTSU9OX1BBVFRFUk4gKyBy
IlxzKiQiLCByZS5WRVJCT1NFIHwgcmUuSUdOT1JFQ0FTRSkKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgIyB0eXBlOiAoc3RyKSAtPiBOb25lCisKKyAgICAgICAg
IyBWYWxpZGF0ZSB0aGUgdmVyc2lvbiBhbmQgcGFyc2UgaXQgaW50byBwaWVjZXMKKyAgICAgICAg
bWF0Y2ggPSBzZWxmLl9yZWdleC5zZWFyY2godmVyc2lvbikKKyAgICAgICAgaWYgbm90IG1hdGNo
OgorICAgICAgICAgICAgcmFpc2UgSW52YWxpZFZlcnNpb24oIkludmFsaWQgdmVyc2lvbjogJ3sw
fSciLmZvcm1hdCh2ZXJzaW9uKSkKKworICAgICAgICAjIFN0b3JlIHRoZSBwYXJzZWQgb3V0IHBp
ZWNlcyBvZiB0aGUgdmVyc2lvbgorICAgICAgICBzZWxmLl92ZXJzaW9uID0gX1ZlcnNpb24oCisg
ICAgICAgICAgICBlcG9jaD1pbnQobWF0Y2guZ3JvdXAoImVwb2NoIikpIGlmIG1hdGNoLmdyb3Vw
KCJlcG9jaCIpIGVsc2UgMCwKKyAgICAgICAgICAgIHJlbGVhc2U9dHVwbGUoaW50KGkpIGZvciBp
IGluIG1hdGNoLmdyb3VwKCJyZWxlYXNlIikuc3BsaXQoIi4iKSksCisgICAgICAgICAgICBwcmU9
X3BhcnNlX2xldHRlcl92ZXJzaW9uKG1hdGNoLmdyb3VwKCJwcmVfbCIpLCBtYXRjaC5ncm91cCgi
cHJlX24iKSksCisgICAgICAgICAgICBwb3N0PV9wYXJzZV9sZXR0ZXJfdmVyc2lvbigKKyAgICAg
ICAgICAgICAgICBtYXRjaC5ncm91cCgicG9zdF9sIiksIG1hdGNoLmdyb3VwKCJwb3N0X24xIikg
b3IgbWF0Y2guZ3JvdXAoInBvc3RfbjIiKQorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIGRl
dj1fcGFyc2VfbGV0dGVyX3ZlcnNpb24obWF0Y2guZ3JvdXAoImRldl9sIiksIG1hdGNoLmdyb3Vw
KCJkZXZfbiIpKSwKKyAgICAgICAgICAgIGxvY2FsPV9wYXJzZV9sb2NhbF92ZXJzaW9uKG1hdGNo
Lmdyb3VwKCJsb2NhbCIpKSwKKyAgICAgICAgKQorCisgICAgICAgICMgR2VuZXJhdGUgYSBrZXkg
d2hpY2ggd2lsbCBiZSB1c2VkIGZvciBzb3J0aW5nCisgICAgICAgIHNlbGYuX2tleSA9IF9jbXBr
ZXkoCisgICAgICAgICAgICBzZWxmLl92ZXJzaW9uLmVwb2NoLAorICAgICAgICAgICAgc2VsZi5f
dmVyc2lvbi5yZWxlYXNlLAorICAgICAgICAgICAgc2VsZi5fdmVyc2lvbi5wcmUsCisgICAgICAg
ICAgICBzZWxmLl92ZXJzaW9uLnBvc3QsCisgICAgICAgICAgICBzZWxmLl92ZXJzaW9uLmRldiwK
KyAgICAgICAgICAgIHNlbGYuX3ZlcnNpb24ubG9jYWwsCisgICAgICAgICkKKworICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcmV0dXJu
ICI8VmVyc2lvbih7MH0pPiIuZm9ybWF0KHJlcHIoc3RyKHNlbGYpKSkKKworICAgIGRlZiBfX3N0
cl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0cgorICAgICAgICBwYXJ0cyA9IFtd
CisKKyAgICAgICAgIyBFcG9jaAorICAgICAgICBpZiBzZWxmLmVwb2NoICE9IDA6CisgICAgICAg
ICAgICBwYXJ0cy5hcHBlbmQoInswfSEiLmZvcm1hdChzZWxmLmVwb2NoKSkKKworICAgICAgICAj
IFJlbGVhc2Ugc2VnbWVudAorICAgICAgICBwYXJ0cy5hcHBlbmQoIi4iLmpvaW4oc3RyKHgpIGZv
ciB4IGluIHNlbGYucmVsZWFzZSkpCisKKyAgICAgICAgIyBQcmUtcmVsZWFzZQorICAgICAgICBp
ZiBzZWxmLnByZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgiIi5qb2lu
KHN0cih4KSBmb3IgeCBpbiBzZWxmLnByZSkpCisKKyAgICAgICAgIyBQb3N0LXJlbGVhc2UKKyAg
ICAgICAgaWYgc2VsZi5wb3N0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcGFydHMuYXBwZW5k
KCIucG9zdHswfSIuZm9ybWF0KHNlbGYucG9zdCkpCisKKyAgICAgICAgIyBEZXZlbG9wbWVudCBy
ZWxlYXNlCisgICAgICAgIGlmIHNlbGYuZGV2IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcGFy
dHMuYXBwZW5kKCIuZGV2ezB9Ii5mb3JtYXQoc2VsZi5kZXYpKQorCisgICAgICAgICMgTG9jYWwg
dmVyc2lvbiBzZWdtZW50CisgICAgICAgIGlmIHNlbGYubG9jYWwgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICBwYXJ0cy5hcHBlbmQoIit7MH0iLmZvcm1hdChzZWxmLmxvY2FsKSkKKworICAgICAg
ICByZXR1cm4gIiIuam9pbihwYXJ0cykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBlcG9jaChz
ZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBpbnQKKyAgICAgICAgX2Vwb2NoID0gc2VsZi5f
dmVyc2lvbi5lcG9jaCAgIyB0eXBlOiBpbnQKKyAgICAgICAgcmV0dXJuIF9lcG9jaAorCisgICAg
QHByb3BlcnR5CisgICAgZGVmIHJlbGVhc2Uoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4g
VHVwbGVbaW50LCAuLi5dCisgICAgICAgIF9yZWxlYXNlID0gc2VsZi5fdmVyc2lvbi5yZWxlYXNl
ICAjIHR5cGU6IFR1cGxlW2ludCwgLi4uXQorICAgICAgICByZXR1cm4gX3JlbGVhc2UKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBwcmUoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0
aW9uYWxbVHVwbGVbc3RyLCBpbnRdXQorICAgICAgICBfcHJlID0gc2VsZi5fdmVyc2lvbi5wcmUg
ICMgdHlwZTogT3B0aW9uYWxbVHVwbGVbc3RyLCBpbnRdXQorICAgICAgICByZXR1cm4gX3ByZQor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIHBvc3Qoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkg
LT4gT3B0aW9uYWxbVHVwbGVbc3RyLCBpbnRdXQorICAgICAgICByZXR1cm4gc2VsZi5fdmVyc2lv
bi5wb3N0WzFdIGlmIHNlbGYuX3ZlcnNpb24ucG9zdCBlbHNlIE5vbmUKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBkZXYoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbVHVw
bGVbc3RyLCBpbnRdXQorICAgICAgICByZXR1cm4gc2VsZi5fdmVyc2lvbi5kZXZbMV0gaWYgc2Vs
Zi5fdmVyc2lvbi5kZXYgZWxzZSBOb25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbG9jYWwo
c2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbc3RyXQorICAgICAgICBpZiBz
ZWxmLl92ZXJzaW9uLmxvY2FsOgorICAgICAgICAgICAgcmV0dXJuICIuIi5qb2luKHN0cih4KSBm
b3IgeCBpbiBzZWxmLl92ZXJzaW9uLmxvY2FsKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwdWJsaWMoc2VsZik6CisgICAg
ICAgICMgdHlwZTogKCkgLT4gc3RyCisgICAgICAgIHJldHVybiBzdHIoc2VsZikuc3BsaXQoIisi
LCAxKVswXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGJhc2VfdmVyc2lvbihzZWxmKToKKyAg
ICAgICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcGFydHMgPSBbXQorCisgICAgICAgICMg
RXBvY2gKKyAgICAgICAgaWYgc2VsZi5lcG9jaCAhPSAwOgorICAgICAgICAgICAgcGFydHMuYXBw
ZW5kKCJ7MH0hIi5mb3JtYXQoc2VsZi5lcG9jaCkpCisKKyAgICAgICAgIyBSZWxlYXNlIHNlZ21l
bnQKKyAgICAgICAgcGFydHMuYXBwZW5kKCIuIi5qb2luKHN0cih4KSBmb3IgeCBpbiBzZWxmLnJl
bGVhc2UpKQorCisgICAgICAgIHJldHVybiAiIi5qb2luKHBhcnRzKQorCisgICAgQHByb3BlcnR5
CisgICAgZGVmIGlzX3ByZXJlbGVhc2Uoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9v
bAorICAgICAgICByZXR1cm4gc2VsZi5kZXYgaXMgbm90IE5vbmUgb3Igc2VsZi5wcmUgaXMgbm90
IE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19wb3N0cmVsZWFzZShzZWxmKToKKyAg
ICAgICAgIyB0eXBlOiAoKSAtPiBib29sCisgICAgICAgIHJldHVybiBzZWxmLnBvc3QgaXMgbm90
IE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19kZXZyZWxlYXNlKHNlbGYpOgorICAg
ICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIHNlbGYuZGV2IGlzIG5vdCBO
b25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbWFqb3Ioc2VsZik6CisgICAgICAgICMgdHlw
ZTogKCkgLT4gaW50CisgICAgICAgIHJldHVybiBzZWxmLnJlbGVhc2VbMF0gaWYgbGVuKHNlbGYu
cmVsZWFzZSkgPj0gMSBlbHNlIDAKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtaW5vcihzZWxm
KToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBpbnQKKyAgICAgICAgcmV0dXJuIHNlbGYucmVsZWFz
ZVsxXSBpZiBsZW4oc2VsZi5yZWxlYXNlKSA+PSAyIGVsc2UgMAorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIG1pY3JvKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGludAorICAgICAgICBy
ZXR1cm4gc2VsZi5yZWxlYXNlWzJdIGlmIGxlbihzZWxmLnJlbGVhc2UpID49IDMgZWxzZSAwCisK
KworZGVmIF9wYXJzZV9sZXR0ZXJfdmVyc2lvbigKKyAgICBsZXR0ZXIsICAjIHR5cGU6IHN0cgor
ICAgIG51bWJlciwgICMgdHlwZTogVW5pb25bc3RyLCBieXRlcywgU3VwcG9ydHNJbnRdCispOgor
ICAgICMgdHlwZTogKC4uLikgLT4gT3B0aW9uYWxbVHVwbGVbc3RyLCBpbnRdXQorCisgICAgaWYg
bGV0dGVyOgorICAgICAgICAjIFdlIGNvbnNpZGVyIHRoZXJlIHRvIGJlIGFuIGltcGxpY2l0IDAg
aW4gYSBwcmUtcmVsZWFzZSBpZiB0aGVyZSBpcworICAgICAgICAjIG5vdCBhIG51bWVyYWwgYXNz
b2NpYXRlZCB3aXRoIGl0LgorICAgICAgICBpZiBudW1iZXIgaXMgTm9uZToKKyAgICAgICAgICAg
IG51bWJlciA9IDAKKworICAgICAgICAjIFdlIG5vcm1hbGl6ZSBhbnkgbGV0dGVycyB0byB0aGVp
ciBsb3dlciBjYXNlIGZvcm0KKyAgICAgICAgbGV0dGVyID0gbGV0dGVyLmxvd2VyKCkKKworICAg
ICAgICAjIFdlIGNvbnNpZGVyIHNvbWUgd29yZHMgdG8gYmUgYWx0ZXJuYXRlIHNwZWxsaW5ncyBv
ZiBvdGhlciB3b3JkcyBhbmQKKyAgICAgICAgIyBpbiB0aG9zZSBjYXNlcyB3ZSB3YW50IHRvIG5v
cm1hbGl6ZSB0aGUgc3BlbGxpbmdzIHRvIG91ciBwcmVmZXJyZWQKKyAgICAgICAgIyBzcGVsbGlu
Zy4KKyAgICAgICAgaWYgbGV0dGVyID09ICJhbHBoYSI6CisgICAgICAgICAgICBsZXR0ZXIgPSAi
YSIKKyAgICAgICAgZWxpZiBsZXR0ZXIgPT0gImJldGEiOgorICAgICAgICAgICAgbGV0dGVyID0g
ImIiCisgICAgICAgIGVsaWYgbGV0dGVyIGluIFsiYyIsICJwcmUiLCAicHJldmlldyJdOgorICAg
ICAgICAgICAgbGV0dGVyID0gInJjIgorICAgICAgICBlbGlmIGxldHRlciBpbiBbInJldiIsICJy
Il06CisgICAgICAgICAgICBsZXR0ZXIgPSAicG9zdCIKKworICAgICAgICByZXR1cm4gbGV0dGVy
LCBpbnQobnVtYmVyKQorICAgIGlmIG5vdCBsZXR0ZXIgYW5kIG51bWJlcjoKKyAgICAgICAgIyBX
ZSBhc3N1bWUgaWYgd2UgYXJlIGdpdmVuIGEgbnVtYmVyLCBidXQgd2UgYXJlIG5vdCBnaXZlbiBh
IGxldHRlcgorICAgICAgICAjIHRoZW4gdGhpcyBpcyB1c2luZyB0aGUgaW1wbGljaXQgcG9zdCBy
ZWxlYXNlIHN5bnRheCAoZS5nLiAxLjAtMSkKKyAgICAgICAgbGV0dGVyID0gInBvc3QiCisKKyAg
ICAgICAgcmV0dXJuIGxldHRlciwgaW50KG51bWJlcikKKworICAgIHJldHVybiBOb25lCisKKwor
X2xvY2FsX3ZlcnNpb25fc2VwYXJhdG9ycyA9IHJlLmNvbXBpbGUociJbXC5fLV0iKQorCisKK2Rl
ZiBfcGFyc2VfbG9jYWxfdmVyc2lvbihsb2NhbCk6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBPcHRp
b25hbFtMb2NhbFR5cGVdCisgICAgIiIiCisgICAgVGFrZXMgYSBzdHJpbmcgbGlrZSBhYmMuMS50
d2VsdmUgYW5kIHR1cm5zIGl0IGludG8gKCJhYmMiLCAxLCAidHdlbHZlIikuCisgICAgIiIiCisg
ICAgaWYgbG9jYWwgaXMgbm90IE5vbmU6CisgICAgICAgIHJldHVybiB0dXBsZSgKKyAgICAgICAg
ICAgIHBhcnQubG93ZXIoKSBpZiBub3QgcGFydC5pc2RpZ2l0KCkgZWxzZSBpbnQocGFydCkKKyAg
ICAgICAgICAgIGZvciBwYXJ0IGluIF9sb2NhbF92ZXJzaW9uX3NlcGFyYXRvcnMuc3BsaXQobG9j
YWwpCisgICAgICAgICkKKyAgICByZXR1cm4gTm9uZQorCisKK2RlZiBfY21wa2V5KAorICAgIGVw
b2NoLCAgIyB0eXBlOiBpbnQKKyAgICByZWxlYXNlLCAgIyB0eXBlOiBUdXBsZVtpbnQsIC4uLl0K
KyAgICBwcmUsICAjIHR5cGU6IE9wdGlvbmFsW1R1cGxlW3N0ciwgaW50XV0KKyAgICBwb3N0LCAg
IyB0eXBlOiBPcHRpb25hbFtUdXBsZVtzdHIsIGludF1dCisgICAgZGV2LCAgIyB0eXBlOiBPcHRp
b25hbFtUdXBsZVtzdHIsIGludF1dCisgICAgbG9jYWwsICAjIHR5cGU6IE9wdGlvbmFsW1R1cGxl
W1N1YkxvY2FsVHlwZV1dCispOgorICAgICMgdHlwZTogKC4uLikgLT4gQ21wS2V5CisKKyAgICAj
IFdoZW4gd2UgY29tcGFyZSBhIHJlbGVhc2UgdmVyc2lvbiwgd2Ugd2FudCB0byBjb21wYXJlIGl0
IHdpdGggYWxsIG9mIHRoZQorICAgICMgdHJhaWxpbmcgemVyb3MgcmVtb3ZlZC4gU28gd2UnbGwg
dXNlIGEgcmV2ZXJzZSB0aGUgbGlzdCwgZHJvcCBhbGwgdGhlIG5vdworICAgICMgbGVhZGluZyB6
ZXJvcyB1bnRpbCB3ZSBjb21lIHRvIHNvbWV0aGluZyBub24gemVybywgdGhlbiB0YWtlIHRoZSBy
ZXN0CisgICAgIyByZS1yZXZlcnNlIGl0IGJhY2sgaW50byB0aGUgY29ycmVjdCBvcmRlciBhbmQg
bWFrZSBpdCBhIHR1cGxlIGFuZCB1c2UKKyAgICAjIHRoYXQgZm9yIG91ciBzb3J0aW5nIGtleS4K
KyAgICBfcmVsZWFzZSA9IHR1cGxlKAorICAgICAgICByZXZlcnNlZChsaXN0KGl0ZXJ0b29scy5k
cm9wd2hpbGUobGFtYmRhIHg6IHggPT0gMCwgcmV2ZXJzZWQocmVsZWFzZSkpKSkKKyAgICApCisK
KyAgICAjIFdlIG5lZWQgdG8gInRyaWNrIiB0aGUgc29ydGluZyBhbGdvcml0aG0gdG8gcHV0IDEu
MC5kZXYwIGJlZm9yZSAxLjBhMC4KKyAgICAjIFdlJ2xsIGRvIHRoaXMgYnkgYWJ1c2luZyB0aGUg
cHJlIHNlZ21lbnQsIGJ1dCB3ZSBfb25seV8gd2FudCB0byBkbyB0aGlzCisgICAgIyBpZiB0aGVy
ZSBpcyBub3QgYSBwcmUgb3IgYSBwb3N0IHNlZ21lbnQuIElmIHdlIGhhdmUgb25lIG9mIHRob3Nl
IHRoZW4KKyAgICAjIHRoZSBub3JtYWwgc29ydGluZyBydWxlcyB3aWxsIGhhbmRsZSB0aGlzIGNh
c2UgY29ycmVjdGx5LgorICAgIGlmIHByZSBpcyBOb25lIGFuZCBwb3N0IGlzIE5vbmUgYW5kIGRl
diBpcyBub3QgTm9uZToKKyAgICAgICAgX3ByZSA9IE5lZ2F0aXZlSW5maW5pdHkgICMgdHlwZTog
UHJlUG9zdERldlR5cGUKKyAgICAjIFZlcnNpb25zIHdpdGhvdXQgYSBwcmUtcmVsZWFzZSAoZXhj
ZXB0IGFzIG5vdGVkIGFib3ZlKSBzaG91bGQgc29ydCBhZnRlcgorICAgICMgdGhvc2Ugd2l0aCBv
bmUuCisgICAgZWxpZiBwcmUgaXMgTm9uZToKKyAgICAgICAgX3ByZSA9IEluZmluaXR5CisgICAg
ZWxzZToKKyAgICAgICAgX3ByZSA9IHByZQorCisgICAgIyBWZXJzaW9ucyB3aXRob3V0IGEgcG9z
dCBzZWdtZW50IHNob3VsZCBzb3J0IGJlZm9yZSB0aG9zZSB3aXRoIG9uZS4KKyAgICBpZiBwb3N0
IGlzIE5vbmU6CisgICAgICAgIF9wb3N0ID0gTmVnYXRpdmVJbmZpbml0eSAgIyB0eXBlOiBQcmVQ
b3N0RGV2VHlwZQorCisgICAgZWxzZToKKyAgICAgICAgX3Bvc3QgPSBwb3N0CisKKyAgICAjIFZl
cnNpb25zIHdpdGhvdXQgYSBkZXZlbG9wbWVudCBzZWdtZW50IHNob3VsZCBzb3J0IGFmdGVyIHRo
b3NlIHdpdGggb25lLgorICAgIGlmIGRldiBpcyBOb25lOgorICAgICAgICBfZGV2ID0gSW5maW5p
dHkgICMgdHlwZTogUHJlUG9zdERldlR5cGUKKworICAgIGVsc2U6CisgICAgICAgIF9kZXYgPSBk
ZXYKKworICAgIGlmIGxvY2FsIGlzIE5vbmU6CisgICAgICAgICMgVmVyc2lvbnMgd2l0aG91dCBh
IGxvY2FsIHNlZ21lbnQgc2hvdWxkIHNvcnQgYmVmb3JlIHRob3NlIHdpdGggb25lLgorICAgICAg
ICBfbG9jYWwgPSBOZWdhdGl2ZUluZmluaXR5ICAjIHR5cGU6IExvY2FsVHlwZQorICAgIGVsc2U6
CisgICAgICAgICMgVmVyc2lvbnMgd2l0aCBhIGxvY2FsIHNlZ21lbnQgbmVlZCB0aGF0IHNlZ21l
bnQgcGFyc2VkIHRvIGltcGxlbWVudAorICAgICAgICAjIHRoZSBzb3J0aW5nIHJ1bGVzIGluIFBF
UDQ0MC4KKyAgICAgICAgIyAtIEFscGhhIG51bWVyaWMgc2VnbWVudHMgc29ydCBiZWZvcmUgbnVt
ZXJpYyBzZWdtZW50cworICAgICAgICAjIC0gQWxwaGEgbnVtZXJpYyBzZWdtZW50cyBzb3J0IGxl
eGljb2dyYXBoaWNhbGx5CisgICAgICAgICMgLSBOdW1lcmljIHNlZ21lbnRzIHNvcnQgbnVtZXJp
Y2FsbHkKKyAgICAgICAgIyAtIFNob3J0ZXIgdmVyc2lvbnMgc29ydCBiZWZvcmUgbG9uZ2VyIHZl
cnNpb25zIHdoZW4gdGhlIHByZWZpeGVzCisgICAgICAgICMgICBtYXRjaCBleGFjdGx5CisgICAg
ICAgIF9sb2NhbCA9IHR1cGxlKAorICAgICAgICAgICAgKGksICIiKSBpZiBpc2luc3RhbmNlKGks
IGludCkgZWxzZSAoTmVnYXRpdmVJbmZpbml0eSwgaSkgZm9yIGkgaW4gbG9jYWwKKyAgICAgICAg
KQorCisgICAgcmV0dXJuIGVwb2NoLCBfcmVsZWFzZSwgX3ByZSwgX3Bvc3QsIF9kZXYsIF9sb2Nh
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5YjFj
ZjNiZmE3YzcyMjY4ZjkzNjBmNjk0NjMxN2E0ODJkYWU0YmEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyNyBAQAor
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
K0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2Yg
ZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL19faW5pdF9fLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvcGFja2FnaW5nL19jb21wYXQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvX3N0
cnVjdHVyZXMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvX3R5cGluZy5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL3BhY2thZ2luZy9tYXJrZXJzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5n
L3B5LnR5cGVkCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3JlcXVpcmVtZW50cy5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL3BhY2thZ2luZy9zcGVjaWZpZXJzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFj
a2FnaW5nL3RhZ3MucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdXRpbHMucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy9wYWNrYWdpbmcvdmVyc2lvbi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdp
bmcvcHlwcm9qZWN0LnRvbWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9weXByb2plY3QudG9tbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNmNkYTZiZTUwMTg5ZmQ4NGVjNGU5YjUzNGVlZTA3MTM4NmNmODM3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcHlwcm9qZWN0LnRvbWwKQEAgLTAsMCArMSwzNyBAQAor
W2J1aWxkLXN5c3RlbV0KK3JlcXVpcmVzID0gWyJmbGl0X2NvcmUgPj0yLDw0Il0KK2J1aWxkLWJh
Y2tlbmQgPSAiZmxpdF9jb3JlLmJ1aWxkYXBpIgorCitbdG9vbC5mbGl0Lm1ldGFkYXRhXQorbW9k
dWxlID0gInBhY2thZ2luZyIKK2F1dGhvciA9ICJEb25hbGQgU3R1ZmZ0IGFuZCBpbmRpdmlkdWFs
IGNvbnRyaWJ1dG9ycyIKK2F1dGhvci1lbWFpbCA9ICJkb25hbGRAc3R1ZmZ0LmlvIgoraG9tZS1w
YWdlID0gImh0dHBzOi8vZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZyIKK2Rlc2NyaXB0aW9uLWZp
bGUgPSAiUkVBRE1FLnJzdCIKK2NsYXNzaWZpZXJzID0gWworICAgICAgICAiRGV2ZWxvcG1lbnQg
U3RhdHVzIDo6IDUgLSBQcm9kdWN0aW9uL1N0YWJsZSIsCisgICAgICAgICJJbnRlbmRlZCBBdWRp
ZW5jZSA6OiBEZXZlbG9wZXJzIiwKKyAgICAgICAgIkxpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6
IEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIiwKKyAgICAgICAgIkxpY2Vuc2UgOjogT1NJIEFwcHJv
dmVkIDo6IEJTRCBMaWNlbnNlIiwKKyAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5
dGhvbiIsCisgICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMiIsCisg
ICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43IiwKKyAgICAgICAg
IlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzIiwKKyAgICAgICAgIlByb2dyYW1t
aW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjQiLAorICAgICAgICAiUHJvZ3JhbW1pbmcgTGFu
Z3VhZ2UgOjogUHl0aG9uIDo6IDMuNSIsCisgICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6
OiBQeXRob24gOjogMy42IiwKKyAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhv
biA6OiAzLjciLAorICAgICAgICAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMu
OCIsCisgICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy45IiwKKyAg
ICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6
OiBDUHl0aG9uIiwKKyAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJ
bXBsZW1lbnRhdGlvbiA6OiBQeVB5IiwKK10KK3JlcXVpcmVzLXB5dGhvbiA9ICI+PTIuNywgIT0z
LjAuKiwgIT0zLjEuKiwgIT0zLjIuKiwgIT0zLjMuKiIKK3JlcXVpcmVzID0gWyJweXBhcnNpbmc+
PTIuMC4yIl0KKworW3Rvb2wuZmxpdC5tZXRhZGF0YS51cmxzXQorRG9jdW1lbnRhdGlvbiA9ICJo
dHRwczovL3BhY2thZ2luZy5weXBhLmlvLyIKK0NoYW5nZWxvZyA9ICJodHRwczovL3BhY2thZ2lu
Zy5weXBhLmlvL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbCIKKworW3Rvb2wuZmxpdC5zZGlzdF0K
K2luY2x1ZGUgPSBbIkxJQ0VOU0UiLCAiTElDRU5TRS5CU0QiLCAiTElDRU5TRS5BUEFDSEUiXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFza3MvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2th
Z2luZy90YXNrcy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWUyNDY4OGI1OTU0Y2Q3MzFjODc0
YTdlNTc4NGE2YTFiMmVkODIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFz
a3MvX19pbml0X18ucHkKQEAgLTAsMCArMSwxMCBAQAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNl
bnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIu
MCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qg
b2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitp
bXBvcnQgaW52b2tlCisKK2Zyb20gLiBpbXBvcnQgY2hlY2sKKworbnMgPSBpbnZva2UuQ29sbGVj
dGlvbihjaGVjaykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL2NoZWNrLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvdGFza3MvY2hlY2sucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTMwYWI0OTBmM2MxZjIz
YzU2N2QxMWJhYjdkYTkxZWVmZTFmMzkzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL3Rhc2tzL2NoZWNrLnB5CkBAIC0wLDAgKzEsMTQ3IEBACisjIFRoaXMgZmlsZSBpcyBkdWFs
IGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24K
KyMgMi4wLCBhbmQgdGhlIEJTRCBMaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUg
cm9vdCBvZiB0aGlzIHJlcG9zaXRvcnkKKyMgZm9yIGNvbXBsZXRlIGRldGFpbHMuCisKK2ltcG9y
dCBqc29uCitpbXBvcnQgaXRlcnRvb2xzCitpbXBvcnQgb3MucGF0aAorCit0cnk6CisgICAgaW1w
b3J0IHhtbHJwYy5jbGllbnQgYXMgeG1scnBjX2NsaWVudAorZXhjZXB0IEltcG9ydEVycm9yOgor
ICAgIGltcG9ydCB4bWxycGNsaWIgYXMgeG1scnBjX2NsaWVudAorCitpbXBvcnQgaW52b2tlCitp
bXBvcnQgcGtnX3Jlc291cmNlcworaW1wb3J0IHByb2dyZXNzLmJhcgorCitmcm9tIHBhY2thZ2lu
Zy52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCisKK2Zyb20gLnBhdGhzIGltcG9ydCBDQUNIRQorCisK
K2RlZiBfcGFyc2VfdmVyc2lvbih2YWx1ZSk6CisgICAgdHJ5OgorICAgICAgICByZXR1cm4gVmVy
c2lvbih2YWx1ZSkKKyAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgcmV0dXJuIE5vbmUK
KworCitAaW52b2tlLnRhc2sKK2RlZiBwZXA0NDAoY2FjaGVkPUZhbHNlKToKKyAgICBjYWNoZV9w
YXRoID0gb3MucGF0aC5qb2luKENBQ0hFLCAicGVwNDQwLmpzb24iKQorCisgICAgIyBJZiB3ZSB3
ZXJlIGdpdmVuIC0tY2FjaGVkLCB0aGVuIHdlIHdhbnQgdG8gYXR0ZW1wdCB0byB1c2UgY2FjaGVk
IGRhdGEgaWYKKyAgICAjIHBvc3NpYmxlCisgICAgaWYgY2FjaGVkOgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICB3aXRoIG9wZW4oY2FjaGVfcGF0aCwgInIiKSBhcyBmcDoKKyAgICAgICAgICAg
ICAgICBkYXRhID0ganNvbi5sb2FkKGZwKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAg
ICAgICAgICAgZGF0YSA9IE5vbmUKKyAgICBlbHNlOgorICAgICAgICBkYXRhID0gTm9uZQorCisg
ICAgIyBJZiB3ZSBkb24ndCBoYXZlIGRhdGEsIHRoZW4gbGV0J3MgZ28gZmV0Y2ggaXQgZnJvbSBQ
eVBJCisgICAgaWYgZGF0YSBpcyBOb25lOgorICAgICAgICBiYXIgPSBwcm9ncmVzcy5iYXIuU2hh
ZHlCYXIoIkZldGNoaW5nIFZlcnNpb25zIikKKyAgICAgICAgY2xpZW50ID0geG1scnBjX2NsaWVu
dC5TZXJ2ZXIoImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkiKQorCisgICAgICAgIGRhdGEg
PSBkaWN0KAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIChwcm9qZWN0LCBjbGllbnQu
cGFja2FnZV9yZWxlYXNlcyhwcm9qZWN0LCBUcnVlKSkKKyAgICAgICAgICAgICAgICBmb3IgcHJv
amVjdCBpbiBiYXIuaXRlcihjbGllbnQubGlzdF9wYWNrYWdlcygpKQorICAgICAgICAgICAgXQor
ICAgICAgICApCisKKyAgICAgICAgb3MubWFrZWRpcnMob3MucGF0aC5kaXJuYW1lKGNhY2hlX3Bh
dGgpLCBleGlzdF9vaz1UcnVlKQorICAgICAgICB3aXRoIG9wZW4oY2FjaGVfcGF0aCwgInciKSBh
cyBmcDoKKyAgICAgICAgICAgIGpzb24uZHVtcChkYXRhLCBmcCkKKworICAgICMgR2V0IGEgbGlz
dCBvZiBhbGwgb2YgdGhlIHZlcnNpb24gbnVtYmVycyBvbiBQeVBJCisgICAgYWxsX3ZlcnNpb25z
ID0gbGlzdChpdGVydG9vbHMuY2hhaW4uZnJvbV9pdGVyYWJsZShkYXRhLnZhbHVlcygpKSkKKwor
ICAgICMgRGV0ZXJtaW5lIHRoZSB0b3RhbCBudW1iZXIgb2YgdmVyc2lvbnMgd2hpY2ggYXJlIGNv
bXBhdGlibGUgd2l0aCB0aGUKKyAgICAjIGN1cnJlbnQgcm91dGluZQorICAgIHBhcnNlZF92ZXJz
aW9ucyA9IFsKKyAgICAgICAgX3BhcnNlX3ZlcnNpb24odikgZm9yIHYgaW4gYWxsX3ZlcnNpb25z
IGlmIF9wYXJzZV92ZXJzaW9uKHYpIGlzIG5vdCBOb25lCisgICAgXQorCisgICAgIyBEZXRlcm1p
bmUgYSBsaXN0IG9mIHByb2plY3RzIHRoYXQgc29ydCBleGFjdGx5IHRoZSBzYW1lIGJldHdlZW4K
KyAgICAjIHBrZ19yZXNvdXJjZXMgYW5kIFBFUCA0NDAKKyAgICBjb21wYXRpYmxlX3NvcnRpbmcg
PSBbCisgICAgICAgIHByb2plY3QKKyAgICAgICAgZm9yIHByb2plY3QsIHZlcnNpb25zIGluIGRh
dGEuaXRlbXMoKQorICAgICAgICBpZiAoCisgICAgICAgICAgICBzb3J0ZWQodmVyc2lvbnMsIGtl
eT1wa2dfcmVzb3VyY2VzLnBhcnNlX3ZlcnNpb24pCisgICAgICAgICAgICA9PSBzb3J0ZWQoKHgg
Zm9yIHggaW4gdmVyc2lvbnMgaWYgX3BhcnNlX3ZlcnNpb24oeCkpLCBrZXk9VmVyc2lvbikKKyAg
ICAgICAgKQorICAgIF0KKworICAgICMgRGV0ZXJtaW5lIGEgbGlzdCBvZiBwcm9qZWN0cyB0aGF0
IHNvcnQgZXhhY3RseSB0aGUgc2FtZSBiZXR3ZWVuCisgICAgIyBwa2dfcmVzb3VyY2VzIGFuZCBQ
RVAgNDQwIHdoZW4gaW52YWxpZCB2ZXJzaW9ucyBhcmUgZmlsdGVyZWQgb3V0CisgICAgZmlsdGVy
ZWRfY29tcGF0aWJsZV9zb3J0aW5nID0gWworICAgICAgICBwcm9qZWN0CisgICAgICAgIGZvciBw
cm9qZWN0LCB2ZXJzaW9ucyBpbiAoCisgICAgICAgICAgICAocCwgW3YgZm9yIHYgaW4gdnMgaWYg
X3BhcnNlX3ZlcnNpb24odikgaXMgbm90IE5vbmVdKQorICAgICAgICAgICAgZm9yIHAsIHZzIGlu
IGRhdGEuaXRlbXMoKQorICAgICAgICApCisgICAgICAgIGlmICgKKyAgICAgICAgICAgIHNvcnRl
ZCh2ZXJzaW9ucywga2V5PXBrZ19yZXNvdXJjZXMucGFyc2VfdmVyc2lvbikKKyAgICAgICAgICAg
ID09IHNvcnRlZCh2ZXJzaW9ucywga2V5PVZlcnNpb24pCisgICAgICAgICkKKyAgICBdCisKKyAg
ICAjIERldGVybWluZSBhIGxpc3Qgb2YgcHJvamVjdHMgd2hpY2ggZG8gbm90IGhhdmUgYW55IHZl
cnNpb25zIHRoYXQgYXJlCisgICAgIyB2YWxpZCB3aXRoIFBFUCA0NDAgYW5kIHdoaWNoIGhhdmUg
YW55IHZlcnNpb25zIHJlZ2lzdGVyZWQKKyAgICBvbmx5X2ludmFsaWRfdmVyc2lvbnMgPSBbCisg
ICAgICAgIHByb2plY3QKKyAgICAgICAgZm9yIHByb2plY3QsIHZlcnNpb25zIGluIGRhdGEuaXRl
bXMoKQorICAgICAgICBpZiAodmVyc2lvbnMgYW5kIG5vdCBbdiBmb3IgdiBpbiB2ZXJzaW9ucyBp
ZiBfcGFyc2VfdmVyc2lvbih2KSBpcyBub3QgTm9uZV0pCisgICAgXQorCisgICAgIyBEZXRlcm1p
bmUgYSBsaXN0IG9mIHByb2plY3RzIHdoaWNoIGhhdmUgbWF0Y2hpbmcgbGF0ZXN0IHZlcnNpb25z
IGJldHdlZW4KKyAgICAjIHBrZ19yZXNvdXJjZXMgYW5kIFBFUCA0NDAKKyAgICBkaWZmZXJpbmdf
bGF0ZXN0X3ZlcnNpb25zID0gWworICAgICAgICBwcm9qZWN0CisgICAgICAgIGZvciBwcm9qZWN0
LCB2ZXJzaW9ucyBpbiBkYXRhLml0ZW1zKCkKKyAgICAgICAgaWYgKAorICAgICAgICAgICAgc29y
dGVkKHZlcnNpb25zLCBrZXk9cGtnX3Jlc291cmNlcy5wYXJzZV92ZXJzaW9uKVstMTpdCisgICAg
ICAgICAgICAhPSBzb3J0ZWQoKHggZm9yIHggaW4gdmVyc2lvbnMgaWYgX3BhcnNlX3ZlcnNpb24o
eCkpLCBrZXk9VmVyc2lvbilbLTE6XQorICAgICAgICApCisgICAgXQorCisgICAgIyBQcmludCBv
dXQgb3VyIGZpbmRpbmdzCisgICAgcHJpbnQoCisgICAgICAgICJUb3RhbCBWZXJzaW9uIENvbXBh
dGliaWxpdHk6ICAgICAgICAgICAgICB7fS97fSAoezouMiV9KSIuZm9ybWF0KAorICAgICAgICAg
ICAgbGVuKHBhcnNlZF92ZXJzaW9ucyksCisgICAgICAgICAgICBsZW4oYWxsX3ZlcnNpb25zKSwK
KyAgICAgICAgICAgIGxlbihwYXJzZWRfdmVyc2lvbnMpIC8gbGVuKGFsbF92ZXJzaW9ucyksCisg
ICAgICAgICkKKyAgICApCisgICAgcHJpbnQoCisgICAgICAgICJUb3RhbCBTb3J0aW5nIENvbXBh
dGliaWxpdHkgKFVuZmlsdGVyZWQpOiB7fS97fSAoezouMiV9KSIuZm9ybWF0KAorICAgICAgICAg
ICAgbGVuKGNvbXBhdGlibGVfc29ydGluZyksIGxlbihkYXRhKSwgbGVuKGNvbXBhdGlibGVfc29y
dGluZykgLyBsZW4oZGF0YSkKKyAgICAgICAgKQorICAgICkKKyAgICBwcmludCgKKyAgICAgICAg
IlRvdGFsIFNvcnRpbmcgQ29tcGF0aWJpbGl0eSAoRmlsdGVyZWQpOiAgIHt9L3t9ICh7Oi4yJX0p
Ii5mb3JtYXQoCisgICAgICAgICAgICBsZW4oZmlsdGVyZWRfY29tcGF0aWJsZV9zb3J0aW5nKSwK
KyAgICAgICAgICAgIGxlbihkYXRhKSwKKyAgICAgICAgICAgIGxlbihmaWx0ZXJlZF9jb21wYXRp
YmxlX3NvcnRpbmcpIC8gbGVuKGRhdGEpLAorICAgICAgICApCisgICAgKQorICAgIHByaW50KAor
ICAgICAgICAiUHJvamVjdHMgd2l0aCBObyBDb21wYXRpYmxlIFZlcnNpb25zOiAgICAge30ve30g
KHs6LjIlfSkiLmZvcm1hdCgKKyAgICAgICAgICAgIGxlbihvbmx5X2ludmFsaWRfdmVyc2lvbnMp
LAorICAgICAgICAgICAgbGVuKGRhdGEpLAorICAgICAgICAgICAgbGVuKG9ubHlfaW52YWxpZF92
ZXJzaW9ucykgLyBsZW4oZGF0YSksCisgICAgICAgICkKKyAgICApCisgICAgcHJpbnQoCisgICAg
ICAgICJQcm9qZWN0cyB3aXRoIERpZmZlcmluZyBMYXRlc3QgVmVyc2lvbjogICB7fS97fSAoezou
MiV9KSIuZm9ybWF0KAorICAgICAgICAgICAgbGVuKGRpZmZlcmluZ19sYXRlc3RfdmVyc2lvbnMp
LAorICAgICAgICAgICAgbGVuKGRhdGEpLAorICAgICAgICAgICAgbGVuKGRpZmZlcmluZ19sYXRl
c3RfdmVyc2lvbnMpIC8gbGVuKGRhdGEpLAorICAgICAgICApCisgICAgKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvdGFza3MvcGF0aHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90YXNrcy9wYXRo
cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xM2Q0OTQyM2JlZjdiYzFiZjNiZjFlMTQwYWIyNjdkNDkwY2E3Nzk0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFza3MvcGF0aHMucHkKQEAgLTAs
MCArMSwxMCBAQAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5z
ZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5Cisj
IGZvciBjb21wbGV0ZSBkZXRhaWxzLgorCitpbXBvcnQgb3MucGF0aAorCisKK1BST0pFQ1QgPSBv
cy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykp
KQorCitDQUNIRSA9IG9zLnBhdGguam9pbihQUk9KRUNULCAiLmNhY2hlIikKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL3Rhc2tzL3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90
YXNrcy9yZXF1aXJlbWVudHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NzdjMGU4OWJkOWM4NGIxMGIwMjM5
YTBjMjZhNzk5ZDNlNjQ2YjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90YXNr
cy9yZXF1aXJlbWVudHMudHh0CkBAIC0wLDAgKzEsMyBAQAorIyBUaGUgcmVxdWlyZW1lbnRzIHJl
cXVpcmVkIHRvIGludm9rZSB0aGUgdGFza3MKK2ludm9rZQorcHJvZ3Jlc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL3Rhc2tzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFz
a3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYxOWMwZjJiNDA3Nzc2MzdjODlhNDZjMDVm
OGRiZDdhMTllNWM2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL3cz
Yy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rh
c2tzL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFza3MvY2hlY2sucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy90YXNrcy9wYXRocy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL3JlcXVpcmVtZW50
cy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUxMTMwMTQxM2Q1ZTNk
YmFmYTMxMTJiZDU0NjAzODBlNTRmNTI1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNCBAQAorIyBUaGlzIGZpbGUgaXMgZHVh
bCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u
CisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvYnVpbGQtaGVsbG8td29ybGQuc2gg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy90ZXN0cy9idWlsZC1oZWxsby13b3JsZC5zaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
YzNlMWUxODE5MDljOGZmZWY4YjA4NzFkMDE3ZWFmMGI2MTNiMDFiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvYnVpbGQtaGVsbG8td29ybGQuc2gKQEAgLTAsMCArMSwz
OSBAQAorIyEvYmluL2Jhc2gKKworc2V0IC14CitzZXQgLWUKKworaWYgWyAkIyAtZXEgMCBdOyB0
aGVuCisJZG9ja2VyIHJ1biAtLXJtIC12ICQocHdkKTovaG9tZS9oZWxsby13b3JsZCBhcm0zMnY1
L2RlYmlhbiAvaG9tZS9oZWxsby13b3JsZC9idWlsZC1oZWxsby13b3JsZC5zaCBpbmNvbnRhaW5l
ciA1MgorCWRvY2tlciBydW4gLS1ybSAtdiAkKHB3ZCk6L2hvbWUvaGVsbG8td29ybGQgYXJtMzJ2
Ny9kZWJpYW4gL2hvbWUvaGVsbG8td29ybGQvYnVpbGQtaGVsbG8td29ybGQuc2ggaW5jb250YWlu
ZXIgNTIKKwlkb2NrZXIgcnVuIC0tcm0gLXYgJChwd2QpOi9ob21lL2hlbGxvLXdvcmxkIGkzODYv
ZGViaWFuIC9ob21lL2hlbGxvLXdvcmxkL2J1aWxkLWhlbGxvLXdvcmxkLnNoIGluY29udGFpbmVy
IDUyCisJZG9ja2VyIHJ1biAtLXJtIC12ICQocHdkKTovaG9tZS9oZWxsby13b3JsZCBzMzkweC9k
ZWJpYW4gL2hvbWUvaGVsbG8td29ybGQvYnVpbGQtaGVsbG8td29ybGQuc2ggaW5jb250YWluZXIg
NjQKKwlkb2NrZXIgcnVuIC0tcm0gLXYgJChwd2QpOi9ob21lL2hlbGxvLXdvcmxkIGRlYmlhbiAv
aG9tZS9oZWxsby13b3JsZC9idWlsZC1oZWxsby13b3JsZC5zaCBpbmNvbnRhaW5lciA2NAorCWRv
Y2tlciBydW4gLS1ybSAtdiAkKHB3ZCk6L2hvbWUvaGVsbG8td29ybGQgZGViaWFuIC9ob21lL2hl
bGxvLXdvcmxkL2J1aWxkLWhlbGxvLXdvcmxkLnNoIHgzMiA1MgorCWNwIC1mIGhlbGxvLXdvcmxk
LXg4Nl82NC1pMzg2IGhlbGxvLXdvcmxkLWludmFsaWQtbWFnaWMKKwlwcmludGYgIlx4MDAiIHwg
ZGQgb2Y9aGVsbG8td29ybGQtaW52YWxpZC1tYWdpYyBicz0xIHNlZWs9MHgwMCBjb3VudD0xIGNv
bnY9bm90cnVuYworCWNwIC1mIGhlbGxvLXdvcmxkLXg4Nl82NC1pMzg2IGhlbGxvLXdvcmxkLWlu
dmFsaWQtY2xhc3MKKwlwcmludGYgIlx4MDAiIHwgZGQgb2Y9aGVsbG8td29ybGQtaW52YWxpZC1j
bGFzcyBicz0xIHNlZWs9MHgwNCBjb3VudD0xIGNvbnY9bm90cnVuYworCWNwIC1mIGhlbGxvLXdv
cmxkLXg4Nl82NC1pMzg2IGhlbGxvLXdvcmxkLWludmFsaWQtZGF0YQorCXByaW50ZiAiXHgwMCIg
fCBkZCBvZj1oZWxsby13b3JsZC1pbnZhbGlkLWRhdGEgYnM9MSBzZWVrPTB4MDUgY291bnQ9MSBj
b252PW5vdHJ1bmMKKwloZWFkIC1jIDQwIGhlbGxvLXdvcmxkLXg4Nl82NC1pMzg2ID4gaGVsbG8t
d29ybGQtdG9vLXNob3J0CisJZXhpdCAwCitmaQorCitleHBvcnQgREVCSUFOX0ZST05URU5EPW5v
bmludGVyYWN0aXZlCitjZCAvaG9tZS9oZWxsby13b3JsZC8KK2FwdC1nZXQgdXBkYXRlCithcHQt
Z2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgZ2NjIGxpYmM2LWRldgoraWYg
WyAiJDEiID09ICJpbmNvbnRhaW5lciIgXTsgdGhlbgorCUFSQ0g9JChkcGtnIC0tcHJpbnQtYXJj
aGl0ZWN0dXJlKQorCUNGTEFHUz0iIgorZWxzZQorCUFSQ0g9JDEKKwlkcGtnIC0tYWRkLWFyY2hp
dGVjdHVyZSAke0FSQ0h9CisJYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1l
bmRzIGdjYy1tdWx0aWxpYiBsaWJjNi1kZXYtJHtBUkNIfQorCUNGTEFHUz0iLW14MzIiCitmaQor
TkFNRT1oZWxsby13b3JsZC0kKHVuYW1lIC1tKS0ke0FSQ0h9CitnY2MgLU9zIC1zICR7Q0ZMQUdT
fSAtbyAke05BTUV9LWZ1bGwgaGVsbG8td29ybGQuYworaGVhZCAtYyAkMiAke05BTUV9LWZ1bGwg
PiAke05BTUV9CitybSAtZiAke05BTUV9LWZ1bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L3Rlc3RzL2hlbGxvLXdvcmxkLWFybXY3bC1hcm1lbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hl
bGxvLXdvcmxkLWFybXY3bC1hcm1lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGZkMjNmYTNjMGViOTQ0MzU4YjFl
ZWUwYjdjMjQxYzc5ZGEzY2QzCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1Mgp1Y21iPC1ePkpm
bFdNcUg9VyhFeGc1S24tR2Z4IWV3SHdYZD1DSShnJDFfY0lBcHF3Oz02YXhUYW9DNj5MCgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxs
by13b3JsZC1hcm12N2wtYXJtaGYgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1h
cm12N2wtYXJtaGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY1YWIzMDAzYWY5N2RjMzdkMzE4NzhmZWVmZjU3NGI1
OWRhZTE3YgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNTIKdWNtYjwtXj5KZmxXTXFIPVcoRXhn
NUtvWVdmeCFld2NMKUxyNzZ3KW0xX2NJQXBxdzs9NmF4VGJiXnxLXwoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtaW52
YWxpZC1jbGFzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWludmFsaWQtY2xh
c3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWU5ODk5ZmMwNzYwOWYzN2Y1MjUxZjBkYTVhNWFmOTdkNGQ3OTIzNApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNTIKdGNtYjwtXj5KZmhXTXFIPVcoSDtrNU8wQTExQV9e
V0haWCs5bUBwX1hhNUhFeSRTX0RWMDAzJVQxN2lSSAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtaW52YWxpZC1kYXRh
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtaW52YWxpZC1kYXRhCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI2NTliOGVlMjU3NjhiYTM4OTMyMTc3YWU5MWQ0ZjQ0YTQ4MjkxN2EKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDUyCnNjbWI8LV4+SmZsVX1TJitXKEg8M1otRD48ZzklWDN6emB5MSFsMXl3
JjdpPmAheXdINzBCVCtYViptZ0UKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWludmFsaWQtbWFnaWMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1pbnZhbGlkLW1hZ2ljCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MDY2
YWQyZGVkMWFmN2M2OGE0ZjVkNGQzY2NjNjY5MzNiODlmNDMKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDUyCnRjbVpRQF4+SmZsV01xSD1XKEg7azVPMEExMUFfXldIWlgrOW1AcF9YYTVIRXkkU19E
VjAwMjxJMF82WXoKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFj
a2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXMzOTB4LXMzOTB4IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVz
dHMvaGVsbG8td29ybGQtczM5MHgtczM5MHgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRlOTU3ODg4OWVmYzNlZWU3
M2YxMmEwZDhkZjcwZmU4OWRkZDY3ZQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNjQKc2NtYjwt
Xj5KZmpWcXx+PVcoRn1KOCFFc1MwMk96RCgxSGJFK0pWNz5mcz9fM0w1ZXtWMEQ1VHlmZEJ2aQoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMv
aGVsbG8td29ybGQtdG9vLXNob3J0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQt
dG9vLXNob3J0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNWMwMzk2Yjk0ZDhmM2M2YjVlZjZmY2QxY2M2NzMxN2Vk
ZDNlODUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQwCmhjbWI8LV4+SmZsV01xSD1XKEg7azVP
MEExMUFfXldIWlgrOTAwMmNOMDtUYH0KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82NC1hbWQ2NCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82NC1hbWQ2NApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2Y1
YjBiNWU1YmI2OTU1MGQ1OTRiOGQxODFmNmY4ODEzNTZlNDA0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCA2NAp0Y21iPC1ePkpmaldNcUg9VyhHUzM1VSlUMEJIe3AqQEd5aWpmUnFEKzFwX3libHdw
dSYwMDU3cDFKRDJmCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC14ODZfNjQtaTM4NiBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rl
c3RzL2hlbGxvLXdvcmxkLXg4Nl82NC1pMzg2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMWQ1NDBhMzBjNmRmMjQ0
ZDAxM2JmNDExYWQ4ZWE2M2ViM2YxNmYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDUyCnRjbWI8
LV4+SmZsV01xSD1XKEg7azVPMEExMUFfXldIWlgrOW1AcF9YYTVIRXkkU19EVjAwMyVAMTdyWEkK
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3Rz
L2hlbGxvLXdvcmxkLXg4Nl82NC14MzIgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3Js
ZC14ODZfNjQteDMyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhZjg1ZDM0NzM3ZTIzN2I3ZDE0NzM5MjkzNjMzNDBm
Yjc0MDJlM2MKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDUyCnNjbWI8LV4+SmZsV01xSD1XKEdT
MzVVKVVoZnghZXcrWmFNKk9jKWR4eEVWQVVXRWk5dzBCI2NsZGpKM2MKCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLmMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlNTkxYzNl
YzVkZGU5ODdjNjFlZDIxYzBkN2ZhNTI1ODJkYzFiMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC5jCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUg
PHN0ZGlvLmg+CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCit7CisJcHJpbnRm
KCJIZWxsbyB3b3JsZCIpOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdp
bmcvdGVzdHMvdGVzdF9tYXJrZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF9tYXJr
ZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAxZTRhYTZiMzc0YmVkNDUwNzdlYzlkZmVhZjdiMTc2ZjBlNzRi
OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X21hcmtlcnMu
cHkKQEAgLTAsMCArMSwzODQgQEAKKyMgVGhpcyBmaWxlIGlzIGR1YWwgbGljZW5zZWQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbgorIyAyLjAsIGFuZCB0aGUg
QlNEIExpY2Vuc2UuIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoaXMgcmVw
b3NpdG9yeQorIyBmb3IgY29tcGxldGUgZGV0YWlscy4KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGNvbGxl
Y3Rpb25zCitpbXBvcnQgaXRlcnRvb2xzCitpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQoraW1w
b3J0IHN5cworCitpbXBvcnQgcHJldGVuZAoraW1wb3J0IHB5dGVzdAorCitmcm9tIHBhY2thZ2lu
Zy5tYXJrZXJzIGltcG9ydCAoCisgICAgTm9kZSwKKyAgICBJbnZhbGlkTWFya2VyLAorICAgIFVu
ZGVmaW5lZENvbXBhcmlzb24sCisgICAgVW5kZWZpbmVkRW52aXJvbm1lbnROYW1lLAorICAgIE1h
cmtlciwKKyAgICBkZWZhdWx0X2Vudmlyb25tZW50LAorICAgIGZvcm1hdF9mdWxsX3ZlcnNpb24s
CispCisKKworVkFSSUFCTEVTID0gWworICAgICJleHRyYSIsCisgICAgImltcGxlbWVudGF0aW9u
X25hbWUiLAorICAgICJpbXBsZW1lbnRhdGlvbl92ZXJzaW9uIiwKKyAgICAib3NfbmFtZSIsCisg
ICAgInBsYXRmb3JtX21hY2hpbmUiLAorICAgICJwbGF0Zm9ybV9yZWxlYXNlIiwKKyAgICAicGxh
dGZvcm1fc3lzdGVtIiwKKyAgICAicGxhdGZvcm1fdmVyc2lvbiIsCisgICAgInB5dGhvbl9mdWxs
X3ZlcnNpb24iLAorICAgICJweXRob25fdmVyc2lvbiIsCisgICAgInBsYXRmb3JtX3B5dGhvbl9p
bXBsZW1lbnRhdGlvbiIsCisgICAgInN5c19wbGF0Zm9ybSIsCitdCisKK1BFUF8zNDVfVkFSSUFC
TEVTID0gWworICAgICJvcy5uYW1lIiwKKyAgICAic3lzLnBsYXRmb3JtIiwKKyAgICAicGxhdGZv
cm0udmVyc2lvbiIsCisgICAgInBsYXRmb3JtLm1hY2hpbmUiLAorICAgICJwbGF0Zm9ybS5weXRo
b25faW1wbGVtZW50YXRpb24iLAorXQorCitTRVRVUFRPT0xTX1ZBUklBQkxFUyA9IFsicHl0aG9u
X2ltcGxlbWVudGF0aW9uIl0KKworT1BFUkFUT1JTID0gWyI9PT0iLCAiPT0iLCAiPj0iLCAiPD0i
LCAiIT0iLCAifj0iLCAiPiIsICI8IiwgImluIiwgIm5vdCBpbiJdCisKK1ZBTFVFUyA9IFsKKyAg
ICAiMS4wIiwKKyAgICAiNS42YTAiLAorICAgICJkb2ciLAorICAgICJmcmVlYnNkIiwKKyAgICAi
bGl0ZXJhbGx5IGFueSBzdHJpbmcgY2FuIGdvIGhlcmUiLAorICAgICJ0aGluZ3MgQCM0IGRzZmQg
KCgoIiwKK10KKworCitjbGFzcyBUZXN0Tm9kZToKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInZhbHVlIiwgWyJvbmUiLCAidHdvIiwgTm9uZSwgMywgNSwgW11dKQorICAgIGRlZiB0ZXN0
X2FjY2VwdHNfdmFsdWUoc2VsZiwgdmFsdWUpOgorICAgICAgICBhc3NlcnQgTm9kZSh2YWx1ZSku
dmFsdWUgPT0gdmFsdWUKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmFsdWUiLCBb
Im9uZSIsICJ0d28iLCBOb25lLCAzLCA1LCBbXV0pCisgICAgZGVmIHRlc3Rfc3RyKHNlbGYsIHZh
bHVlKToKKyAgICAgICAgYXNzZXJ0IHN0cihOb2RlKHZhbHVlKSkgPT0gc3RyKHZhbHVlKQorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2YWx1ZSIsIFsib25lIiwgInR3byIsIE5vbmUs
IDMsIDUsIFtdXSkKKyAgICBkZWYgdGVzdF9yZXByKHNlbGYsIHZhbHVlKToKKyAgICAgICAgYXNz
ZXJ0IHJlcHIoTm9kZSh2YWx1ZSkpID09ICI8Tm9kZSh7MCFyfSk+Ii5mb3JtYXQoc3RyKHZhbHVl
KSkKKworICAgIGRlZiB0ZXN0X2Jhc2VfY2xhc3Moc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yKToKKyAgICAgICAgICAgIE5vZGUoImNvdmVyIGFs
bCB0aGUgY29kZSIpLnNlcmlhbGl6ZSgpCisKKworY2xhc3MgVGVzdE9wZXJhdG9yRXZhbHVhdGlv
bjoKKyAgICBkZWYgdGVzdF9wcmVmZXJzX3BlcDQ0MChzZWxmKToKKyAgICAgICAgYXNzZXJ0IE1h
cmtlcignIjIuNy45IiA8ICJmb28iJykuZXZhbHVhdGUoZGljdChmb289IjIuNy4xMCIpKQorCisg
ICAgZGVmIHRlc3RfZmFsbHNfYmFja190b19weXRob24oc2VsZik6CisgICAgICAgIGFzc2VydCBN
YXJrZXIoJyJiIiA+ICJhIicpLmV2YWx1YXRlKGRpY3QoYT0iYSIpKQorCisgICAgZGVmIHRlc3Rf
ZmFpbHNfd2hlbl91bmRlZmluZWQoc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhV
bmRlZmluZWRDb21wYXJpc29uKToKKyAgICAgICAgICAgIE1hcmtlcigiJzIuNy4wJyB+PSBvc19u
YW1lIikuZXZhbHVhdGUoKQorCisKK0Zha2VWZXJzaW9uSW5mbyA9IGNvbGxlY3Rpb25zLm5hbWVk
dHVwbGUoCisgICAgIkZha2VWZXJzaW9uSW5mbyIsIFsibWFqb3IiLCAibWlub3IiLCAibWljcm8i
LCAicmVsZWFzZWxldmVsIiwgInNlcmlhbCJdCispCisKKworY2xhc3MgVGVzdERlZmF1bHRFbnZp
cm9ubWVudDoKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKAorICAgICAgICBoYXNhdHRyKHN5cywg
ImltcGxlbWVudGF0aW9uIiksIHJlYXNvbj0ic3lzLmltcGxlbWVudGF0aW9uIGRvZXMgZXhpc3Qi
CisgICAgKQorICAgIGRlZiB0ZXN0X21hdGNoZXNfZXhwZWN0ZWRfbm9fc3lzX2ltcGxlbWVudGF0
aW9uKHNlbGYpOgorICAgICAgICBlbnZpcm9ubWVudCA9IGRlZmF1bHRfZW52aXJvbm1lbnQoKQor
CisgICAgICAgIGFzc2VydCBlbnZpcm9ubWVudCA9PSB7CisgICAgICAgICAgICAiaW1wbGVtZW50
YXRpb25fbmFtZSI6ICIiLAorICAgICAgICAgICAgImltcGxlbWVudGF0aW9uX3ZlcnNpb24iOiAi
MCIsCisgICAgICAgICAgICAib3NfbmFtZSI6IG9zLm5hbWUsCisgICAgICAgICAgICAicGxhdGZv
cm1fbWFjaGluZSI6IHBsYXRmb3JtLm1hY2hpbmUoKSwKKyAgICAgICAgICAgICJwbGF0Zm9ybV9y
ZWxlYXNlIjogcGxhdGZvcm0ucmVsZWFzZSgpLAorICAgICAgICAgICAgInBsYXRmb3JtX3N5c3Rl
bSI6IHBsYXRmb3JtLnN5c3RlbSgpLAorICAgICAgICAgICAgInBsYXRmb3JtX3ZlcnNpb24iOiBw
bGF0Zm9ybS52ZXJzaW9uKCksCisgICAgICAgICAgICAicHl0aG9uX2Z1bGxfdmVyc2lvbiI6IHBs
YXRmb3JtLnB5dGhvbl92ZXJzaW9uKCksCisgICAgICAgICAgICAicGxhdGZvcm1fcHl0aG9uX2lt
cGxlbWVudGF0aW9uIjogcGxhdGZvcm0ucHl0aG9uX2ltcGxlbWVudGF0aW9uKCksCisgICAgICAg
ICAgICAicHl0aG9uX3ZlcnNpb24iOiAiLiIuam9pbihwbGF0Zm9ybS5weXRob25fdmVyc2lvbl90
dXBsZSgpWzoyXSksCisgICAgICAgICAgICAic3lzX3BsYXRmb3JtIjogc3lzLnBsYXRmb3JtLAor
ICAgICAgICB9CisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKAorICAgICAgICBub3QgaGFzYXR0
cihzeXMsICJpbXBsZW1lbnRhdGlvbiIpLCByZWFzb249InN5cy5pbXBsZW1lbnRhdGlvbiBkb2Vz
IG5vdCBleGlzdCIKKyAgICApCisgICAgZGVmIHRlc3RfbWF0Y2hlc19leHBlY3RlZF9kZWxldGVk
X3N5c19pbXBsZW1lbnRhdGlvbihzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBh
dGNoLmRlbGF0dHIoc3lzLCAiaW1wbGVtZW50YXRpb24iKQorCisgICAgICAgIGVudmlyb25tZW50
ID0gZGVmYXVsdF9lbnZpcm9ubWVudCgpCisKKyAgICAgICAgYXNzZXJ0IGVudmlyb25tZW50ID09
IHsKKyAgICAgICAgICAgICJpbXBsZW1lbnRhdGlvbl9uYW1lIjogIiIsCisgICAgICAgICAgICAi
aW1wbGVtZW50YXRpb25fdmVyc2lvbiI6ICIwIiwKKyAgICAgICAgICAgICJvc19uYW1lIjogb3Mu
bmFtZSwKKyAgICAgICAgICAgICJwbGF0Zm9ybV9tYWNoaW5lIjogcGxhdGZvcm0ubWFjaGluZSgp
LAorICAgICAgICAgICAgInBsYXRmb3JtX3JlbGVhc2UiOiBwbGF0Zm9ybS5yZWxlYXNlKCksCisg
ICAgICAgICAgICAicGxhdGZvcm1fc3lzdGVtIjogcGxhdGZvcm0uc3lzdGVtKCksCisgICAgICAg
ICAgICAicGxhdGZvcm1fdmVyc2lvbiI6IHBsYXRmb3JtLnZlcnNpb24oKSwKKyAgICAgICAgICAg
ICJweXRob25fZnVsbF92ZXJzaW9uIjogcGxhdGZvcm0ucHl0aG9uX3ZlcnNpb24oKSwKKyAgICAg
ICAgICAgICJwbGF0Zm9ybV9weXRob25faW1wbGVtZW50YXRpb24iOiBwbGF0Zm9ybS5weXRob25f
aW1wbGVtZW50YXRpb24oKSwKKyAgICAgICAgICAgICJweXRob25fdmVyc2lvbiI6ICIuIi5qb2lu
KHBsYXRmb3JtLnB5dGhvbl92ZXJzaW9uX3R1cGxlKClbOjJdKSwKKyAgICAgICAgICAgICJzeXNf
cGxhdGZvcm0iOiBzeXMucGxhdGZvcm0sCisgICAgICAgIH0KKworICAgIEBweXRlc3QubWFyay5z
a2lwaWYoCisgICAgICAgIG5vdCBoYXNhdHRyKHN5cywgImltcGxlbWVudGF0aW9uIiksIHJlYXNv
bj0ic3lzLmltcGxlbWVudGF0aW9uIGRvZXMgbm90IGV4aXN0IgorICAgICkKKyAgICBkZWYgdGVz
dF9tYXRjaGVzX2V4cGVjdGVkKHNlbGYpOgorICAgICAgICBlbnZpcm9ubWVudCA9IGRlZmF1bHRf
ZW52aXJvbm1lbnQoKQorCisgICAgICAgIGl2ZXIgPSAiezAubWFqb3J9LnswLm1pbm9yfS57MC5t
aWNyb30iLmZvcm1hdChzeXMuaW1wbGVtZW50YXRpb24udmVyc2lvbikKKyAgICAgICAgaWYgc3lz
LmltcGxlbWVudGF0aW9uLnZlcnNpb24ucmVsZWFzZWxldmVsICE9ICJmaW5hbCI6CisgICAgICAg
ICAgICBpdmVyID0gInswfXsxWzBdfXsyfSIuZm9ybWF0KAorICAgICAgICAgICAgICAgIGl2ZXIs
CisgICAgICAgICAgICAgICAgc3lzLmltcGxlbWVudGF0aW9uLnZlcnNpb24ucmVsZWFzZWxldmVs
LAorICAgICAgICAgICAgICAgIHN5cy5pbXBsZW1lbnRhdGlvbi52ZXJzaW9uLnNlcmlhbCwKKyAg
ICAgICAgICAgICkKKworICAgICAgICBhc3NlcnQgZW52aXJvbm1lbnQgPT0geworICAgICAgICAg
ICAgImltcGxlbWVudGF0aW9uX25hbWUiOiBzeXMuaW1wbGVtZW50YXRpb24ubmFtZSwKKyAgICAg
ICAgICAgICJpbXBsZW1lbnRhdGlvbl92ZXJzaW9uIjogaXZlciwKKyAgICAgICAgICAgICJvc19u
YW1lIjogb3MubmFtZSwKKyAgICAgICAgICAgICJwbGF0Zm9ybV9tYWNoaW5lIjogcGxhdGZvcm0u
bWFjaGluZSgpLAorICAgICAgICAgICAgInBsYXRmb3JtX3JlbGVhc2UiOiBwbGF0Zm9ybS5yZWxl
YXNlKCksCisgICAgICAgICAgICAicGxhdGZvcm1fc3lzdGVtIjogcGxhdGZvcm0uc3lzdGVtKCks
CisgICAgICAgICAgICAicGxhdGZvcm1fdmVyc2lvbiI6IHBsYXRmb3JtLnZlcnNpb24oKSwKKyAg
ICAgICAgICAgICJweXRob25fZnVsbF92ZXJzaW9uIjogcGxhdGZvcm0ucHl0aG9uX3ZlcnNpb24o
KSwKKyAgICAgICAgICAgICJwbGF0Zm9ybV9weXRob25faW1wbGVtZW50YXRpb24iOiBwbGF0Zm9y
bS5weXRob25faW1wbGVtZW50YXRpb24oKSwKKyAgICAgICAgICAgICJweXRob25fdmVyc2lvbiI6
ICIuIi5qb2luKHBsYXRmb3JtLnB5dGhvbl92ZXJzaW9uX3R1cGxlKClbOjJdKSwKKyAgICAgICAg
ICAgICJzeXNfcGxhdGZvcm0iOiBzeXMucGxhdGZvcm0sCisgICAgICAgIH0KKworICAgIEBweXRl
c3QubWFyay5za2lwaWYoCisgICAgICAgIGhhc2F0dHIoc3lzLCAiaW1wbGVtZW50YXRpb24iKSwg
cmVhc29uPSJzeXMuaW1wbGVtZW50YXRpb24gZG9lcyBleGlzdCIKKyAgICApCisgICAgZGVmIHRl
c3RfbW9ua2V5cGF0Y2hfc3lzX2ltcGxlbWVudGF0aW9uKHNlbGYsIG1vbmtleXBhdGNoKToKKyAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAgIHN5cywKKyAgICAgICAgICAg
ICJpbXBsZW1lbnRhdGlvbiIsCisgICAgICAgICAgICBwcmV0ZW5kLnN0dWIodmVyc2lvbj1GYWtl
VmVyc2lvbkluZm8oMywgNCwgMiwgImZpbmFsIiwgMCksIG5hbWU9ImxpbnV4IiksCisgICAgICAg
ICAgICByYWlzaW5nPUZhbHNlLAorICAgICAgICApCisKKyAgICAgICAgZW52aXJvbm1lbnQgPSBk
ZWZhdWx0X2Vudmlyb25tZW50KCkKKyAgICAgICAgYXNzZXJ0IGVudmlyb25tZW50ID09IHsKKyAg
ICAgICAgICAgICJpbXBsZW1lbnRhdGlvbl9uYW1lIjogImxpbnV4IiwKKyAgICAgICAgICAgICJp
bXBsZW1lbnRhdGlvbl92ZXJzaW9uIjogIjMuNC4yIiwKKyAgICAgICAgICAgICJvc19uYW1lIjog
b3MubmFtZSwKKyAgICAgICAgICAgICJwbGF0Zm9ybV9tYWNoaW5lIjogcGxhdGZvcm0ubWFjaGlu
ZSgpLAorICAgICAgICAgICAgInBsYXRmb3JtX3JlbGVhc2UiOiBwbGF0Zm9ybS5yZWxlYXNlKCks
CisgICAgICAgICAgICAicGxhdGZvcm1fc3lzdGVtIjogcGxhdGZvcm0uc3lzdGVtKCksCisgICAg
ICAgICAgICAicGxhdGZvcm1fdmVyc2lvbiI6IHBsYXRmb3JtLnZlcnNpb24oKSwKKyAgICAgICAg
ICAgICJweXRob25fZnVsbF92ZXJzaW9uIjogcGxhdGZvcm0ucHl0aG9uX3ZlcnNpb24oKSwKKyAg
ICAgICAgICAgICJwbGF0Zm9ybV9weXRob25faW1wbGVtZW50YXRpb24iOiBwbGF0Zm9ybS5weXRo
b25faW1wbGVtZW50YXRpb24oKSwKKyAgICAgICAgICAgICJweXRob25fdmVyc2lvbiI6ICIuIi5q
b2luKHBsYXRmb3JtLnB5dGhvbl92ZXJzaW9uX3R1cGxlKClbOjJdKSwKKyAgICAgICAgICAgICJz
eXNfcGxhdGZvcm0iOiBzeXMucGxhdGZvcm0sCisgICAgICAgIH0KKworICAgIGRlZiB0ZXN0X211
bHRpZGlnaXRfbWlub3JfdmVyc2lvbihzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIHZlcnNp
b25faW5mbyA9ICgzLCAxMCwgMCwgImZpbmFsIiwgMCkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cihzeXMsICJ2ZXJzaW9uX2luZm8iLCB2ZXJzaW9uX2luZm8sIHJhaXNpbmc9RmFsc2UpCisK
KyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihwbGF0Zm9ybSwgInB5dGhvbl92ZXJzaW9uIiwg
bGFtYmRhOiAiMy4xMC4wIiwgcmFpc2luZz1GYWxzZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cigKKyAgICAgICAgICAgIHBsYXRmb3JtLCAicHl0aG9uX3ZlcnNpb25fdHVwbGUiLCBsYW1i
ZGE6ICgiMyIsICIxMCIsICIwIiksIHJhaXNpbmc9RmFsc2UKKyAgICAgICAgKQorCisgICAgICAg
IGVudmlyb25tZW50ID0gZGVmYXVsdF9lbnZpcm9ubWVudCgpCisgICAgICAgIGFzc2VydCBlbnZp
cm9ubWVudFsicHl0aG9uX3ZlcnNpb24iXSA9PSAiMy4xMCIKKworICAgIGRlZiB0ZXN0c193aGVu
X3JlbGVhc2VsZXZlbF9maW5hbChzZWxmKToKKyAgICAgICAgdiA9IEZha2VWZXJzaW9uSW5mbygz
LCA0LCAyLCAiZmluYWwiLCAwKQorICAgICAgICBhc3NlcnQgZm9ybWF0X2Z1bGxfdmVyc2lvbih2
KSA9PSAiMy40LjIiCisKKyAgICBkZWYgdGVzdHNfd2hlbl9yZWxlYXNlbGV2ZWxfbm90X2ZpbmFs
KHNlbGYpOgorICAgICAgICB2ID0gRmFrZVZlcnNpb25JbmZvKDMsIDQsIDIsICJiZXRhIiwgNCkK
KyAgICAgICAgYXNzZXJ0IGZvcm1hdF9mdWxsX3ZlcnNpb24odikgPT0gIjMuNC4yYjQiCisKKwor
Y2xhc3MgVGVzdE1hcmtlcjoKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAg
ICJtYXJrZXJfc3RyaW5nIiwKKyAgICAgICAgWworICAgICAgICAgICAgInswfSB7MX0gezIhcn0i
LmZvcm1hdCgqaSkKKyAgICAgICAgICAgIGZvciBpIGluIGl0ZXJ0b29scy5wcm9kdWN0KFZBUklB
QkxFUywgT1BFUkFUT1JTLCBWQUxVRVMpCisgICAgICAgIF0KKyAgICAgICAgKyBbCisgICAgICAg
ICAgICAiezIhcn0gezF9IHswfSIuZm9ybWF0KCppKQorICAgICAgICAgICAgZm9yIGkgaW4gaXRl
cnRvb2xzLnByb2R1Y3QoVkFSSUFCTEVTLCBPUEVSQVRPUlMsIFZBTFVFUykKKyAgICAgICAgXSwK
KyAgICApCisgICAgZGVmIHRlc3RfcGFyc2VzX3ZhbGlkKHNlbGYsIG1hcmtlcl9zdHJpbmcpOgor
ICAgICAgICBNYXJrZXIobWFya2VyX3N0cmluZykKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgKKyAgICAgICAgIm1hcmtlcl9zdHJpbmciLAorICAgICAgICBbCisgICAgICAgICAgICAi
dGhpc19pc250X2FfcmVhbF92YXJpYWJsZSA+PSAnMS4wJyIsCisgICAgICAgICAgICAicHl0aG9u
X3ZlcnNpb24iLAorICAgICAgICAgICAgIihweXRob25fdmVyc2lvbikiLAorICAgICAgICAgICAg
InB5dGhvbl92ZXJzaW9uID49IDEuMCBhbmQgKHB5dGhvbl92ZXJzaW9uKSIsCisgICAgICAgIF0s
CisgICAgKQorICAgIGRlZiB0ZXN0X3BhcnNlc19pbnZhbGlkKHNlbGYsIG1hcmtlcl9zdHJpbmcp
OgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW52YWxpZE1hcmtlcik6CisgICAgICAgICAg
ICBNYXJrZXIobWFya2VyX3N0cmluZykKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgK
KyAgICAgICAgKCJtYXJrZXJfc3RyaW5nIiwgImV4cGVjdGVkIiksCisgICAgICAgIFsKKyAgICAg
ICAgICAgICMgVGVzdCB0aGUgZGlmZmVyZW50IHF1b3RpbmcgcnVsZXMKKyAgICAgICAgICAgICgi
cHl0aG9uX3ZlcnNpb24gPT0gJzIuNyciLCAncHl0aG9uX3ZlcnNpb24gPT0gIjIuNyInKSwKKyAg
ICAgICAgICAgICgncHl0aG9uX3ZlcnNpb24gPT0gIjIuNyInLCAncHl0aG9uX3ZlcnNpb24gPT0g
IjIuNyInKSwKKyAgICAgICAgICAgICMgVGVzdCBhbmQvb3IgZXhwcmVzc2lvbnMKKyAgICAgICAg
ICAgICgKKyAgICAgICAgICAgICAgICAncHl0aG9uX3ZlcnNpb24gPT0gIjIuNyIgYW5kIG9zX25h
bWUgPT0gImxpbnV4IicsCisgICAgICAgICAgICAgICAgJ3B5dGhvbl92ZXJzaW9uID09ICIyLjci
IGFuZCBvc19uYW1lID09ICJsaW51eCInLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgK
KyAgICAgICAgICAgICAgICAncHl0aG9uX3ZlcnNpb24gPT0gIjIuNyIgb3Igb3NfbmFtZSA9PSAi
bGludXgiJywKKyAgICAgICAgICAgICAgICAncHl0aG9uX3ZlcnNpb24gPT0gIjIuNyIgb3Igb3Nf
bmFtZSA9PSAibGludXgiJywKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAg
ICAgICAgICAgJ3B5dGhvbl92ZXJzaW9uID09ICIyLjciIGFuZCBvc19uYW1lID09ICJsaW51eCIg
b3IgJworICAgICAgICAgICAgICAgICdzeXNfcGxhdGZvcm0gPT0gIndpbjMyIicsCisgICAgICAg
ICAgICAgICAgJ3B5dGhvbl92ZXJzaW9uID09ICIyLjciIGFuZCBvc19uYW1lID09ICJsaW51eCIg
b3IgJworICAgICAgICAgICAgICAgICdzeXNfcGxhdGZvcm0gPT0gIndpbjMyIicsCisgICAgICAg
ICAgICApLAorICAgICAgICAgICAgIyBUZXN0IG5lc3RlZCBleHByZXNzaW9ucyBhbmQgZ3JvdXBp
bmcgd2l0aCAoKQorICAgICAgICAgICAgKCcocHl0aG9uX3ZlcnNpb24gPT0gIjIuNyIpJywgJ3B5
dGhvbl92ZXJzaW9uID09ICIyLjciJyksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAg
JyhweXRob25fdmVyc2lvbiA9PSAiMi43IiBhbmQgc3lzX3BsYXRmb3JtID09ICJ3aW4zMiIpJywK
KyAgICAgICAgICAgICAgICAncHl0aG9uX3ZlcnNpb24gPT0gIjIuNyIgYW5kIHN5c19wbGF0Zm9y
bSA9PSAid2luMzIiJywKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAg
ICAgICAgJ3B5dGhvbl92ZXJzaW9uID09ICIyLjciIGFuZCAoc3lzX3BsYXRmb3JtID09ICJ3aW4z
MiIgb3IgJworICAgICAgICAgICAgICAgICdzeXNfcGxhdGZvcm0gPT0gImxpbnV4IiknLAorICAg
ICAgICAgICAgICAgICdweXRob25fdmVyc2lvbiA9PSAiMi43IiBhbmQgKHN5c19wbGF0Zm9ybSA9
PSAid2luMzIiIG9yICcKKyAgICAgICAgICAgICAgICAnc3lzX3BsYXRmb3JtID09ICJsaW51eCIp
JywKKyAgICAgICAgICAgICksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3N0cl9h
bmRfcmVwcihzZWxmLCBtYXJrZXJfc3RyaW5nLCBleHBlY3RlZCk6CisgICAgICAgIG0gPSBNYXJr
ZXIobWFya2VyX3N0cmluZykKKyAgICAgICAgYXNzZXJ0IHN0cihtKSA9PSBleHBlY3RlZAorICAg
ICAgICBhc3NlcnQgcmVwcihtKSA9PSAiPE1hcmtlcih7MCFyfSk+Ii5mb3JtYXQoc3RyKG0pKQor
CisgICAgZGVmIHRlc3RfZXh0cmFfd2l0aF9ub19leHRyYV9pbl9lbnZpcm9ubWVudChzZWxmKToK
KyAgICAgICAgIyBXZSBjYW4ndCBldmFsdWF0ZSBhbiBleHRyYSBpZiBubyBleHRyYSBpcyBwYXNz
ZWQgaW50byB0aGUgZW52aXJvbm1lbnQKKyAgICAgICAgbSA9IE1hcmtlcigiZXh0cmEgPT0gJ3Nl
Y3VyaXR5JyIpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhVbmRlZmluZWRFbnZpcm9ubWVu
dE5hbWUpOgorICAgICAgICAgICAgbS5ldmFsdWF0ZSgpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoCisgICAgICAgICgibWFya2VyX3N0cmluZyIsICJlbnZpcm9ubWVudCIsICJleHBl
Y3RlZCIpLAorICAgICAgICBbCisgICAgICAgICAgICAoIm9zX25hbWUgPT0gJ3swfSciLmZvcm1h
dChvcy5uYW1lKSwgTm9uZSwgVHJ1ZSksCisgICAgICAgICAgICAoIm9zX25hbWUgPT0gJ2Zvbyci
LCB7Im9zX25hbWUiOiAiZm9vIn0sIFRydWUpLAorICAgICAgICAgICAgKCJvc19uYW1lID09ICdm
b28nIiwgeyJvc19uYW1lIjogImJhciJ9LCBGYWxzZSksCisgICAgICAgICAgICAoIicyLjcnIGlu
IHB5dGhvbl92ZXJzaW9uIiwgeyJweXRob25fdmVyc2lvbiI6ICIyLjcuNSJ9LCBUcnVlKSwKKyAg
ICAgICAgICAgICgiJzIuNycgbm90IGluIHB5dGhvbl92ZXJzaW9uIiwgeyJweXRob25fdmVyc2lv
biI6ICIyLjcifSwgRmFsc2UpLAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICJvc19u
YW1lID09ICdmb28nIGFuZCBweXRob25fdmVyc2lvbiB+PSAnMi43LjAnIiwKKyAgICAgICAgICAg
ICAgICB7Im9zX25hbWUiOiAiZm9vIiwgInB5dGhvbl92ZXJzaW9uIjogIjIuNy42In0sCisgICAg
ICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAg
ICAgICAgICAgInB5dGhvbl92ZXJzaW9uIH49ICcyLjcuMCcgYW5kIChvc19uYW1lID09ICdmb28n
IG9yICIKKyAgICAgICAgICAgICAgICAib3NfbmFtZSA9PSAnYmFyJykiLAorICAgICAgICAgICAg
ICAgIHsib3NfbmFtZSI6ICJmb28iLCAicHl0aG9uX3ZlcnNpb24iOiAiMi43LjQifSwKKyAgICAg
ICAgICAgICAgICBUcnVlLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAg
ICAgICAgICAicHl0aG9uX3ZlcnNpb24gfj0gJzIuNy4wJyBhbmQgKG9zX25hbWUgPT0gJ2Zvbycg
b3IgIgorICAgICAgICAgICAgICAgICJvc19uYW1lID09ICdiYXInKSIsCisgICAgICAgICAgICAg
ICAgeyJvc19uYW1lIjogImJhciIsICJweXRob25fdmVyc2lvbiI6ICIyLjcuNCJ9LAorICAgICAg
ICAgICAgICAgIFRydWUsCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAgICAgICAg
ICAgICAgICJweXRob25fdmVyc2lvbiB+PSAnMi43LjAnIGFuZCAob3NfbmFtZSA9PSAnZm9vJyBv
ciAiCisgICAgICAgICAgICAgICAgIm9zX25hbWUgPT0gJ2JhcicpIiwKKyAgICAgICAgICAgICAg
ICB7Im9zX25hbWUiOiAib3RoZXIiLCAicHl0aG9uX3ZlcnNpb24iOiAiMi43LjQifSwKKyAgICAg
ICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoImV4dHJhID09
ICdzZWN1cml0eSciLCB7ImV4dHJhIjogInF1dXgifSwgRmFsc2UpLAorICAgICAgICAgICAgKCJl
eHRyYSA9PSAnc2VjdXJpdHknIiwgeyJleHRyYSI6ICJzZWN1cml0eSJ9LCBUcnVlKSwKKyAgICAg
ICAgXSwKKyAgICApCisgICAgZGVmIHRlc3RfZXZhbHVhdGVzKHNlbGYsIG1hcmtlcl9zdHJpbmcs
IGVudmlyb25tZW50LCBleHBlY3RlZCk6CisgICAgICAgIGFyZ3MgPSBbXSBpZiBlbnZpcm9ubWVu
dCBpcyBOb25lIGVsc2UgW2Vudmlyb25tZW50XQorICAgICAgICBhc3NlcnQgTWFya2VyKG1hcmtl
cl9zdHJpbmcpLmV2YWx1YXRlKCphcmdzKSA9PSBleHBlY3RlZAorCisgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKAorICAgICAgICAibWFya2VyX3N0cmluZyIsCisgICAgICAgIFsKKyAgICAg
ICAgICAgICJ7MH0gezF9IHsyIXJ9Ii5mb3JtYXQoKmkpCisgICAgICAgICAgICBmb3IgaSBpbiBp
dGVydG9vbHMucHJvZHVjdChQRVBfMzQ1X1ZBUklBQkxFUywgT1BFUkFUT1JTLCBWQUxVRVMpCisg
ICAgICAgIF0KKyAgICAgICAgKyBbCisgICAgICAgICAgICAiezIhcn0gezF9IHswfSIuZm9ybWF0
KCppKQorICAgICAgICAgICAgZm9yIGkgaW4gaXRlcnRvb2xzLnByb2R1Y3QoUEVQXzM0NV9WQVJJ
QUJMRVMsIE9QRVJBVE9SUywgVkFMVUVTKQorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVz
dF9wYXJzZXNfcGVwMzQ1X3ZhbGlkKHNlbGYsIG1hcmtlcl9zdHJpbmcpOgorICAgICAgICBNYXJr
ZXIobWFya2VyX3N0cmluZykKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAg
ICAgKCJtYXJrZXJfc3RyaW5nIiwgImVudmlyb25tZW50IiwgImV4cGVjdGVkIiksCisgICAgICAg
IFsKKyAgICAgICAgICAgICgib3MubmFtZSA9PSAnezB9JyIuZm9ybWF0KG9zLm5hbWUpLCBOb25l
LCBUcnVlKSwKKyAgICAgICAgICAgICgic3lzLnBsYXRmb3JtID09ICd3aW4zMiciLCB7InN5c19w
bGF0Zm9ybSI6ICJsaW51eDIifSwgRmFsc2UpLAorICAgICAgICAgICAgKCJwbGF0Zm9ybS52ZXJz
aW9uIGluICdVYnVudHUnIiwgeyJwbGF0Zm9ybV92ZXJzaW9uIjogIiMzOSJ9LCBGYWxzZSksCisg
ICAgICAgICAgICAoInBsYXRmb3JtLm1hY2hpbmU9PSd4ODZfNjQnIiwgeyJwbGF0Zm9ybV9tYWNo
aW5lIjogIng4Nl82NCJ9LCBUcnVlKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAi
cGxhdGZvcm0ucHl0aG9uX2ltcGxlbWVudGF0aW9uPT0nSnl0aG9uJyIsCisgICAgICAgICAgICAg
ICAgeyJwbGF0Zm9ybV9weXRob25faW1wbGVtZW50YXRpb24iOiAiQ1B5dGhvbiJ9LAorICAgICAg
ICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAg
ICAgICAgICAicHl0aG9uX3ZlcnNpb24gPT0gJzIuNScgYW5kIHBsYXRmb3JtLnB5dGhvbl9pbXBs
ZW1lbnRhdGlvbiIKKyAgICAgICAgICAgICAgICAiIT0gJ0p5dGhvbiciLAorICAgICAgICAgICAg
ICAgIHsicHl0aG9uX3ZlcnNpb24iOiAiMi43In0sCisgICAgICAgICAgICAgICAgRmFsc2UsCisg
ICAgICAgICAgICApLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9ldmFsdWF0ZV9w
ZXAzNDVfbWFya2VycyhzZWxmLCBtYXJrZXJfc3RyaW5nLCBlbnZpcm9ubWVudCwgZXhwZWN0ZWQp
OgorICAgICAgICBhcmdzID0gW10gaWYgZW52aXJvbm1lbnQgaXMgTm9uZSBlbHNlIFtlbnZpcm9u
bWVudF0KKyAgICAgICAgYXNzZXJ0IE1hcmtlcihtYXJrZXJfc3RyaW5nKS5ldmFsdWF0ZSgqYXJn
cykgPT0gZXhwZWN0ZWQKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAg
Im1hcmtlcl9zdHJpbmciLAorICAgICAgICBbCisgICAgICAgICAgICAiezB9IHsxfSB7MiFyfSIu
Zm9ybWF0KCppKQorICAgICAgICAgICAgZm9yIGkgaW4gaXRlcnRvb2xzLnByb2R1Y3QoU0VUVVBU
T09MU19WQVJJQUJMRVMsIE9QRVJBVE9SUywgVkFMVUVTKQorICAgICAgICBdCisgICAgICAgICsg
WworICAgICAgICAgICAgInsyIXJ9IHsxfSB7MH0iLmZvcm1hdCgqaSkKKyAgICAgICAgICAgIGZv
ciBpIGluIGl0ZXJ0b29scy5wcm9kdWN0KFNFVFVQVE9PTFNfVkFSSUFCTEVTLCBPUEVSQVRPUlMs
IFZBTFVFUykKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3RfcGFyc2VzX3NldHVwdG9v
bHNfbGVnYWN5X3ZhbGlkKHNlbGYsIG1hcmtlcl9zdHJpbmcpOgorICAgICAgICBNYXJrZXIobWFy
a2VyX3N0cmluZykKKworICAgIGRlZiB0ZXN0X2V2YWx1YXRlX3NldHVwdG9vbHNfbGVnYWN5X21h
cmtlcnMoc2VsZik6CisgICAgICAgIG1hcmtlcl9zdHJpbmcgPSAicHl0aG9uX2ltcGxlbWVudGF0
aW9uPT0nSnl0aG9uJyIKKyAgICAgICAgYXJncyA9IFt7InBsYXRmb3JtX3B5dGhvbl9pbXBsZW1l
bnRhdGlvbiI6ICJDUHl0aG9uIn1dCisgICAgICAgIGFzc2VydCBNYXJrZXIobWFya2VyX3N0cmlu
ZykuZXZhbHVhdGUoKmFyZ3MpIGlzIEZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90
ZXN0cy90ZXN0X3JlcXVpcmVtZW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL3Rlc3RfcmVx
dWlyZW1lbnRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwZTM4ZDZhZGNhNWE4NGM3M2M5MzJlYjQ1MTVlZTE3
ODg2MDA1OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3Jl
cXVpcmVtZW50cy5weQpAQCAtMCwwICsxLDE5NyBAQAorIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNl
bnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uCisjIDIu
MCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qg
b2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitp
bXBvcnQgcHl0ZXN0CisKK2Zyb20gcGFja2FnaW5nLm1hcmtlcnMgaW1wb3J0IE1hcmtlcgorZnJv
bSBwYWNrYWdpbmcucmVxdWlyZW1lbnRzIGltcG9ydCBJbnZhbGlkUmVxdWlyZW1lbnQsIFJlcXVp
cmVtZW50LCBVUkwKK2Zyb20gcGFja2FnaW5nLnJlcXVpcmVtZW50cyBpbXBvcnQgVVJMX0FORF9N
QVJLRVIKK2Zyb20gcGFja2FnaW5nLnNwZWNpZmllcnMgaW1wb3J0IFNwZWNpZmllclNldAorCisK
K2NsYXNzIFRlc3RSZXF1aXJlbWVudHM6CisgICAgZGVmIHRlc3Rfc3RyaW5nX3NwZWNpZmllcl9t
YXJrZXIoc2VsZik6CisgICAgICAgIHJlcXVpcmVtZW50ID0gJ25hbWVbYmFyXT49MzsgcHl0aG9u
X3ZlcnNpb24gPT0gIjIuNyInCisgICAgICAgIHJlcSA9IFJlcXVpcmVtZW50KHJlcXVpcmVtZW50
KQorICAgICAgICBhc3NlcnQgc3RyKHJlcSkgPT0gcmVxdWlyZW1lbnQKKworICAgIGRlZiB0ZXN0
X3N0cmluZ191cmwoc2VsZik6CisgICAgICAgIHJlcXVpcmVtZW50ID0gIm5hbWVAIGh0dHA6Ly9m
b28uY29tIgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudChyZXF1aXJlbWVudCkKKyAgICAgICAg
YXNzZXJ0IHN0cihyZXEpID09IHJlcXVpcmVtZW50CisKKyAgICBkZWYgdGVzdF9zdHJpbmdfdXJs
X3dpdGhfbWFya2VyKHNlbGYpOgorICAgICAgICByZXF1aXJlbWVudCA9ICduYW1lQCBodHRwOi8v
Zm9vLmNvbSA7IGV4dHJhID09ICJmZWF0dXJlIicKKyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQo
cmVxdWlyZW1lbnQpCisgICAgICAgIGFzc2VydCBzdHIocmVxKSA9PSByZXF1aXJlbWVudAorCisg
ICAgZGVmIHRlc3RfcmVwcihzZWxmKToKKyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQoIm5hbWUi
KQorICAgICAgICBhc3NlcnQgcmVwcihyZXEpID09ICI8UmVxdWlyZW1lbnQoJ25hbWUnKT4iCisK
KyAgICBkZWYgX2Fzc2VydF9yZXF1aXJlbWVudCgKKyAgICAgICAgc2VsZiwgcmVxLCBuYW1lLCB1
cmw9Tm9uZSwgZXh0cmFzPVtdLCBzcGVjaWZpZXI9IiIsIG1hcmtlcj1Ob25lCisgICAgKToKKyAg
ICAgICAgYXNzZXJ0IHJlcS5uYW1lID09IG5hbWUKKyAgICAgICAgYXNzZXJ0IHJlcS51cmwgPT0g
dXJsCisgICAgICAgIGFzc2VydCBzb3J0ZWQocmVxLmV4dHJhcykgPT0gc29ydGVkKGV4dHJhcykK
KyAgICAgICAgYXNzZXJ0IHN0cihyZXEuc3BlY2lmaWVyKSA9PSBzcGVjaWZpZXIKKyAgICAgICAg
aWYgbWFya2VyOgorICAgICAgICAgICAgYXNzZXJ0IHN0cihyZXEubWFya2VyKSA9PSBtYXJrZXIK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCByZXEubWFya2VyIGlzIE5vbmUKKwor
ICAgIGRlZiB0ZXN0X3NpbXBsZV9uYW1lcyhzZWxmKToKKyAgICAgICAgZm9yIG5hbWUgaW4gKCJB
IiwgImFhIiwgIm5hbWUiKToKKyAgICAgICAgICAgIHJlcSA9IFJlcXVpcmVtZW50KG5hbWUpCisg
ICAgICAgICAgICBzZWxmLl9hc3NlcnRfcmVxdWlyZW1lbnQocmVxLCBuYW1lKQorCisgICAgZGVm
IHRlc3RfbmFtZV93aXRoX290aGVyX2NoYXJhY3RlcnMoc2VsZik6CisgICAgICAgIG5hbWUgPSAi
Zm9vLWJhci5xdXV4X2JheiIKKyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQobmFtZSkKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X3JlcXVpcmVtZW50KHJlcSwgbmFtZSkKKworICAgIGRlZiB0ZXN0X2lu
dmFsaWRfbmFtZShzZWxmKToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFsaWRSZXF1
aXJlbWVudCk6CisgICAgICAgICAgICBSZXF1aXJlbWVudCgiZm9vISIpCisKKyAgICBkZWYgdGVz
dF9uYW1lX3dpdGhfdmVyc2lvbihzZWxmKToKKyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQoIm5h
bWU+PTMiKQorICAgICAgICBzZWxmLl9hc3NlcnRfcmVxdWlyZW1lbnQocmVxLCAibmFtZSIsIHNw
ZWNpZmllcj0iPj0zIikKKworICAgIGRlZiB0ZXN0X3dpdGhfbGVnYWN5X3ZlcnNpb24oc2VsZik6
CisgICAgICAgIHJlcSA9IFJlcXVpcmVtZW50KCJuYW1lPT0xLjAub3JnMSIpCisgICAgICAgIHNl
bGYuX2Fzc2VydF9yZXF1aXJlbWVudChyZXEsICJuYW1lIiwgc3BlY2lmaWVyPSI9PTEuMC5vcmcx
IikKKworICAgIGRlZiB0ZXN0X3dpdGhfbGVnYWN5X3ZlcnNpb25fYW5kX21hcmtlcihzZWxmKToK
KyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQoIm5hbWU+PTEueC55O3B5dGhvbl92ZXJzaW9uPT0n
Mi42JyIpCisgICAgICAgIHNlbGYuX2Fzc2VydF9yZXF1aXJlbWVudCgKKyAgICAgICAgICAgIHJl
cSwgIm5hbWUiLCBzcGVjaWZpZXI9Ij49MS54LnkiLCBtYXJrZXI9J3B5dGhvbl92ZXJzaW9uID09
ICIyLjYiJworICAgICAgICApCisKKyAgICBkZWYgdGVzdF92ZXJzaW9uX3dpdGhfcGFyZW5zX2Fu
ZF93aGl0ZXNwYWNlKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgibmFtZSAoPT00
KSIpCisgICAgICAgIHNlbGYuX2Fzc2VydF9yZXF1aXJlbWVudChyZXEsICJuYW1lIiwgc3BlY2lm
aWVyPSI9PTQiKQorCisgICAgZGVmIHRlc3RfbmFtZV93aXRoX211bHRpcGxlX3ZlcnNpb25zKHNl
bGYpOgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgibmFtZT49Myw8MiIpCisgICAgICAgIHNl
bGYuX2Fzc2VydF9yZXF1aXJlbWVudChyZXEsICJuYW1lIiwgc3BlY2lmaWVyPSI8Miw+PTMiKQor
CisgICAgZGVmIHRlc3RfbmFtZV93aXRoX211bHRpcGxlX3ZlcnNpb25zX2FuZF93aGl0ZXNwYWNl
KHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgibmFtZSA+PTIsIDwzIikKKyAgICAg
ICAgc2VsZi5fYXNzZXJ0X3JlcXVpcmVtZW50KHJlcSwgIm5hbWUiLCBzcGVjaWZpZXI9IjwzLD49
MiIpCisKKyAgICBkZWYgdGVzdF9leHRyYXMoc2VsZik6CisgICAgICAgIHJlcSA9IFJlcXVpcmVt
ZW50KCJmb29iYXIgW3F1dXgsYmFyXSIpCisgICAgICAgIHNlbGYuX2Fzc2VydF9yZXF1aXJlbWVu
dChyZXEsICJmb29iYXIiLCBleHRyYXM9WyJiYXIiLCAicXV1eCJdKQorCisgICAgZGVmIHRlc3Rf
ZW1wdHlfZXh0cmFzKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgiZm9vW10iKQor
ICAgICAgICBzZWxmLl9hc3NlcnRfcmVxdWlyZW1lbnQocmVxLCAiZm9vIikKKworICAgIGRlZiB0
ZXN0X3VybChzZWxmKToKKyAgICAgICAgdXJsX3NlY3Rpb24gPSAiQCBodHRwOi8vZXhhbXBsZS5j
b20iCisgICAgICAgIHBhcnNlZCA9IFVSTC5wYXJzZVN0cmluZyh1cmxfc2VjdGlvbikKKyAgICAg
ICAgYXNzZXJ0IHBhcnNlZC51cmwgPT0gImh0dHA6Ly9leGFtcGxlLmNvbSIKKworICAgIGRlZiB0
ZXN0X3VybF9hbmRfbWFya2VyKHNlbGYpOgorICAgICAgICBpbnN0cmluZyA9ICJAIGh0dHA6Ly9l
eGFtcGxlLmNvbSA7IG9zX25hbWU9PSdhJyIKKyAgICAgICAgcGFyc2VkID0gVVJMX0FORF9NQVJL
RVIucGFyc2VTdHJpbmcoaW5zdHJpbmcpCisgICAgICAgIGFzc2VydCBwYXJzZWQudXJsID09ICJo
dHRwOi8vZXhhbXBsZS5jb20iCisgICAgICAgIGFzc2VydCBzdHIocGFyc2VkLm1hcmtlcikgPT0g
J29zX25hbWUgPT0gImEiJworCisgICAgZGVmIHRlc3RfaW52YWxpZF91cmwoc2VsZik6CisgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlkUmVxdWlyZW1lbnQpIGFzIGU6CisgICAgICAg
ICAgICBSZXF1aXJlbWVudCgibmFtZSBAIGdvcGhlcjovZm9vL2NvbSIpCisgICAgICAgIGFzc2Vy
dCAiSW52YWxpZCBVUkw6ICIgaW4gc3RyKGUudmFsdWUpCisgICAgICAgIGFzc2VydCAiZ29waGVy
Oi9mb28vY29tIiBpbiBzdHIoZS52YWx1ZSkKKworICAgIGRlZiB0ZXN0X2ZpbGVfdXJsKHNlbGYp
OgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgibmFtZSBAIGZpbGU6Ly8vYWJzb2x1dGUvcGF0
aCIpCisgICAgICAgIHNlbGYuX2Fzc2VydF9yZXF1aXJlbWVudChyZXEsICJuYW1lIiwgImZpbGU6
Ly8vYWJzb2x1dGUvcGF0aCIpCisgICAgICAgIHJlcSA9IFJlcXVpcmVtZW50KCJuYW1lIEAgZmls
ZTovLy4iKQorICAgICAgICBzZWxmLl9hc3NlcnRfcmVxdWlyZW1lbnQocmVxLCAibmFtZSIsICJm
aWxlOi8vLiIpCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkX2ZpbGVfdXJscyhzZWxmKToKKyAgICAg
ICAgd2l0aCBweXRlc3QucmFpc2VzKEludmFsaWRSZXF1aXJlbWVudCk6CisgICAgICAgICAgICBS
ZXF1aXJlbWVudCgibmFtZSBAIGZpbGU6LiIpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJ
bnZhbGlkUmVxdWlyZW1lbnQpOgorICAgICAgICAgICAgUmVxdWlyZW1lbnQoIm5hbWUgQCBmaWxl
Oi8uIikKKworICAgIGRlZiB0ZXN0X2V4dHJhc19hbmRfdXJsX2FuZF9tYXJrZXIoc2VsZik6Cisg
ICAgICAgIHJlcSA9IFJlcXVpcmVtZW50KCJuYW1lIFtmcmVkLGJhcl0gQCBodHRwOi8vZm9vLmNv
bSA7IHB5dGhvbl92ZXJzaW9uPT0nMi43JyIpCisgICAgICAgIHNlbGYuX2Fzc2VydF9yZXF1aXJl
bWVudCgKKyAgICAgICAgICAgIHJlcSwKKyAgICAgICAgICAgICJuYW1lIiwKKyAgICAgICAgICAg
IGV4dHJhcz1bImJhciIsICJmcmVkIl0sCisgICAgICAgICAgICB1cmw9Imh0dHA6Ly9mb28uY29t
IiwKKyAgICAgICAgICAgIG1hcmtlcj0ncHl0aG9uX3ZlcnNpb24gPT0gIjIuNyInLAorICAgICAg
ICApCisKKyAgICBkZWYgdGVzdF9jb21wbGV4X3VybF9hbmRfbWFya2VyKHNlbGYpOgorICAgICAg
ICB1cmwgPSAiaHR0cHM6Ly9leGFtcGxlLmNvbS9uYW1lO3Y9MS4xLz9xdWVyeT1mb28mYmFyPWJh
eiNibGFoIgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgiZm9vIEAgJXMgOyBweXRob25fdmVy
c2lvbj09JzMuNCciICUgdXJsKQorICAgICAgICBzZWxmLl9hc3NlcnRfcmVxdWlyZW1lbnQocmVx
LCAiZm9vIiwgdXJsPXVybCwgbWFya2VyPSdweXRob25fdmVyc2lvbiA9PSAiMy40IicpCisKKyAg
ICBkZWYgdGVzdF9tdWx0aXBsZV9tYXJrZXJzKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1aXJl
bWVudCgKKyAgICAgICAgICAgICJuYW1lW3F1dXgsIHN0cmFuZ2VdO3B5dGhvbl92ZXJzaW9uPCcy
LjcnIGFuZCAiICJwbGF0Zm9ybV92ZXJzaW9uPT0nMiciCisgICAgICAgICkKKyAgICAgICAgbWFy
a2VyID0gJ3B5dGhvbl92ZXJzaW9uIDwgIjIuNyIgYW5kIHBsYXRmb3JtX3ZlcnNpb24gPT0gIjIi
JworICAgICAgICBzZWxmLl9hc3NlcnRfcmVxdWlyZW1lbnQocmVxLCAibmFtZSIsIGV4dHJhcz1b
InN0cmFuZ2UiLCAicXV1eCJdLCBtYXJrZXI9bWFya2VyKQorCisgICAgZGVmIHRlc3RfbXVsdGlw
bGVfY29tcGFyc2lvbl9tYXJrZXJzKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgi
bmFtZTsgb3NfbmFtZT09J2EnIGFuZCBvc19uYW1lPT0nYicgb3Igb3NfbmFtZT09J2MnIikKKyAg
ICAgICAgbWFya2VyID0gJ29zX25hbWUgPT0gImEiIGFuZCBvc19uYW1lID09ICJiIiBvciBvc19u
YW1lID09ICJjIicKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3JlcXVpcmVtZW50KHJlcSwgIm5hbWUi
LCBtYXJrZXI9bWFya2VyKQorCisgICAgZGVmIHRlc3RfaW52YWxpZF9tYXJrZXIoc2VsZik6Cisg
ICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlkUmVxdWlyZW1lbnQpOgorICAgICAgICAg
ICAgUmVxdWlyZW1lbnQoIm5hbWU7IGZvb2Jhcj09J3gnIikKKworICAgIGRlZiB0ZXN0X3R5cGVz
KHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgiZm9vYmFyW3F1dXhdPDIsPj0zOyBv
c19uYW1lPT0nYSciKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXEubmFtZSwgc3RyKQor
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXEuZXh0cmFzLCBzZXQpCisgICAgICAgIGFzc2Vy
dCByZXEudXJsIGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVxLnNwZWNpZmll
ciwgU3BlY2lmaWVyU2V0KQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXEubWFya2VyLCBN
YXJrZXIpCisKKyAgICBkZWYgdGVzdF90eXBlc193aXRoX25vdGhpbmcoc2VsZik6CisgICAgICAg
IHJlcSA9IFJlcXVpcmVtZW50KCJmb29iYXIiKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShy
ZXEubmFtZSwgc3RyKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXEuZXh0cmFzLCBzZXQp
CisgICAgICAgIGFzc2VydCByZXEudXJsIGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFu
Y2UocmVxLnNwZWNpZmllciwgU3BlY2lmaWVyU2V0KQorICAgICAgICBhc3NlcnQgcmVxLm1hcmtl
ciBpcyBOb25lCisKKyAgICBkZWYgdGVzdF90eXBlc193aXRoX3VybChzZWxmKToKKyAgICAgICAg
cmVxID0gUmVxdWlyZW1lbnQoImZvb2JhciBAIGh0dHA6Ly9mb28uY29tIikKKyAgICAgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UocmVxLm5hbWUsIHN0cikKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
cmVxLmV4dHJhcywgc2V0KQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXEudXJsLCBzdHIp
CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHJlcS5zcGVjaWZpZXIsIFNwZWNpZmllclNldCkK
KyAgICAgICAgYXNzZXJ0IHJlcS5tYXJrZXIgaXMgTm9uZQorCisgICAgZGVmIHRlc3Rfc3lzX3Bs
YXRmb3JtX2xpbnV4X2VxdWFsKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1aXJlbWVudCgnc29t
ZXRoaW5nPj0xLjIuMzsgc3lzX3BsYXRmb3JtID09ICJmb28iJykKKworICAgICAgICBhc3NlcnQg
cmVxLm5hbWUgPT0gInNvbWV0aGluZyIKKyAgICAgICAgYXNzZXJ0IHJlcS5tYXJrZXIgaXMgbm90
IE5vbmUKKyAgICAgICAgYXNzZXJ0IHJlcS5tYXJrZXIuZXZhbHVhdGUoZGljdChzeXNfcGxhdGZv
cm09ImZvbyIpKSBpcyBUcnVlCisgICAgICAgIGFzc2VydCByZXEubWFya2VyLmV2YWx1YXRlKGRp
Y3Qoc3lzX3BsYXRmb3JtPSJiYXIiKSkgaXMgRmFsc2UKKworICAgIGRlZiB0ZXN0X3N5c19wbGF0
Zm9ybV9saW51eF9pbihzZWxmKToKKyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQoImF2aWF0bz49
MS4yLjM7ICdmJyBpbiBzeXNfcGxhdGZvcm0iKQorCisgICAgICAgIGFzc2VydCByZXEubmFtZSA9
PSAiYXZpYXRvIgorICAgICAgICBhc3NlcnQgcmVxLm1hcmtlciBpcyBub3QgTm9uZQorICAgICAg
ICBhc3NlcnQgcmVxLm1hcmtlci5ldmFsdWF0ZShkaWN0KHN5c19wbGF0Zm9ybT0iZm9vIikpIGlz
IFRydWUKKyAgICAgICAgYXNzZXJ0IHJlcS5tYXJrZXIuZXZhbHVhdGUoZGljdChzeXNfcGxhdGZv
cm09ImJhciIpKSBpcyBGYWxzZQorCisgICAgZGVmIHRlc3RfcGFyc2VleGNlcHRpb25fZXJyb3Jf
bXNnKHNlbGYpOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW52YWxpZFJlcXVpcmVtZW50
KSBhcyBlOgorICAgICAgICAgICAgUmVxdWlyZW1lbnQoInRvdG8gNDIiKQorICAgICAgICBhc3Nl
cnQgIkV4cGVjdGVkIHN0cmluZ0VuZCIgaW4gc3RyKGUudmFsdWUpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy90ZXN0cy90ZXN0X3NwZWNpZmllcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0
cy90ZXN0X3NwZWNpZmllcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlhNDQ0NjZmNzUyNWY0NjY5NWYzMTZi
ODYwNDlhODhiOTA1NzcyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3Rz
L3Rlc3Rfc3BlY2lmaWVycy5weQpAQCAtMCwwICsxLDk5OSBAQAorIyBUaGlzIGZpbGUgaXMgZHVh
bCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u
CisjIDIuMCwgYW5kIHRoZSBCU0QgTGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhpcyByZXBvc2l0b3J5CisjIGZvciBjb21wbGV0ZSBkZXRhaWxzLgorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgorCitpbXBvcnQgaXRlcnRvb2xzCitpbXBvcnQgb3BlcmF0b3IKK2ltcG9ydCB3YXJuaW5ncwor
CitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gcGFja2FnaW5nLnNwZWNpZmllcnMgaW1wb3J0ICgKKyAg
ICBJbnZhbGlkU3BlY2lmaWVyLAorICAgIExlZ2FjeVNwZWNpZmllciwKKyAgICBTcGVjaWZpZXIs
CisgICAgU3BlY2lmaWVyU2V0LAorKQorZnJvbSBwYWNrYWdpbmcudmVyc2lvbiBpbXBvcnQgTGVn
YWN5VmVyc2lvbiwgVmVyc2lvbiwgcGFyc2UKKworZnJvbSAudGVzdF92ZXJzaW9uIGltcG9ydCBW
RVJTSU9OUywgTEVHQUNZX1ZFUlNJT05TCisKKworTEVHQUNZX1NQRUNJRklFUlMgPSBbCisgICAg
Ij09Mi4xLjAuMyIsCisgICAgIiE9Mi4yLjAuNSIsCisgICAgIjw9NSIsCisgICAgIj49Ny45YTEi
LAorICAgICI8MS4wLmRldjEiLAorICAgICI+Mi4wLnBvc3QxIiwKK10KKworU1BFQ0lGSUVSUyA9
IFsKKyAgICAifj0yLjAiLAorICAgICI9PTIuMS4qIiwKKyAgICAiPT0yLjEuMC4zIiwKKyAgICAi
IT0yLjIuKiIsCisgICAgIiE9Mi4yLjAuNSIsCisgICAgIjw9NSIsCisgICAgIj49Ny45YTEiLAor
ICAgICI8MS4wLmRldjEiLAorICAgICI+Mi4wLnBvc3QxIiwKKyAgICAiPT09bG9sd2F0IiwKK10K
KworCitjbGFzcyBUZXN0U3BlY2lmaWVyOgorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
c3BlY2lmaWVyIiwgU1BFQ0lGSUVSUykKKyAgICBkZWYgdGVzdF9zcGVjaWZpZXJzX3ZhbGlkKHNl
bGYsIHNwZWNpZmllcik6CisgICAgICAgIFNwZWNpZmllcihzcGVjaWZpZXIpCisKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJzcGVjaWZpZXIiLAorICAgICAgICBbCisg
ICAgICAgICAgICAjIE9wZXJhdG9yLWxlc3Mgc3BlY2lmaWVyCisgICAgICAgICAgICAiMi4wIiwK
KyAgICAgICAgICAgICMgSW52YWxpZCBvcGVyYXRvcgorICAgICAgICAgICAgIj0+Mi4wIiwKKyAg
ICAgICAgICAgICMgVmVyc2lvbi1sZXNzIHNwZWNpZmllcgorICAgICAgICAgICAgIj09IiwKKyAg
ICAgICAgICAgICMgTG9jYWwgc2VnbWVudCBvbiBvcGVyYXRvcnMgd2hpY2ggZG9uJ3Qgc3VwcG9y
dCB0aGVtCisgICAgICAgICAgICAifj0xLjArNSIsCisgICAgICAgICAgICAiPj0xLjArZGVhZGJl
ZWYiLAorICAgICAgICAgICAgIjw9MS4wK2FiYzEyMyIsCisgICAgICAgICAgICAiPjEuMCt3YXR3
YXQiLAorICAgICAgICAgICAgIjwxLjArMS4wIiwKKyAgICAgICAgICAgICMgUHJlZml4IG1hdGNo
aW5nIG9uIG9wZXJhdG9ycyB3aGljaCBkb24ndCBzdXBwb3J0IHRoZW0KKyAgICAgICAgICAgICJ+
PTEuMC4qIiwKKyAgICAgICAgICAgICI+PTEuMC4qIiwKKyAgICAgICAgICAgICI8PTEuMC4qIiwK
KyAgICAgICAgICAgICI+MS4wLioiLAorICAgICAgICAgICAgIjwxLjAuKiIsCisgICAgICAgICAg
ICAjIENvbWJpbmF0aW9uIG9mIGxvY2FsIGFuZCBwcmVmaXggbWF0Y2hpbmcgb24gb3BlcmF0b3Jz
IHdoaWNoIGRvCisgICAgICAgICAgICAjIHN1cHBvcnQgb25lIG9yIHRoZSBvdGhlcgorICAgICAg
ICAgICAgIj09MS4wLiorNSIsCisgICAgICAgICAgICAiIT0xLjAuKitkZWFkYmVlZiIsCisgICAg
ICAgICAgICAjIFByZWZpeCBtYXRjaGluZyBjYW5ub3QgYmUgdXNlZCBpbnNpZGUgb2YgYSBsb2Nh
bCB2ZXJzaW9uCisgICAgICAgICAgICAiPT0xLjArNS4qIiwKKyAgICAgICAgICAgICIhPTEuMCtk
ZWFkYmVlZi4qIiwKKyAgICAgICAgICAgICMgUHJlZml4IG1hdGNoaW5nIG11c3QgYXBwZWFyIGF0
IHRoZSBlbmQKKyAgICAgICAgICAgICI9PTEuMC4qLjUiLAorICAgICAgICAgICAgIyBDb21wYXRp
YmxlIG9wZXJhdG9yIHJlcXVpcmVzIDIgZGlnaXRzIGluIHRoZSByZWxlYXNlIG9wZXJhdG9yCisg
ICAgICAgICAgICAifj0xIiwKKyAgICAgICAgICAgICMgQ2Fubm90IHVzZSBhIHByZWZpeCBtYXRj
aGluZyBhZnRlciBhIC5kZXZOIHZlcnNpb24KKyAgICAgICAgICAgICI9PTEuMC5kZXYxLioiLAor
ICAgICAgICAgICAgIiE9MS4wLmRldjEuKiIsCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0
ZXN0X3NwZWNpZmllcnNfaW52YWxpZChzZWxmLCBzcGVjaWZpZXIpOgorICAgICAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoSW52YWxpZFNwZWNpZmllcik6CisgICAgICAgICAgICBTcGVjaWZpZXIoc3Bl
Y2lmaWVyKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAidmVyc2lv
biIsCisgICAgICAgIFsKKyAgICAgICAgICAgICMgVmFyaW91cyBkZXZlbG9wbWVudCByZWxlYXNl
IGluY2FybmF0aW9ucworICAgICAgICAgICAgIjEuMGRldiIsCisgICAgICAgICAgICAiMS4wLmRl
diIsCisgICAgICAgICAgICAiMS4wZGV2MSIsCisgICAgICAgICAgICAiMS4wZGV2IiwKKyAgICAg
ICAgICAgICIxLjAtZGV2IiwKKyAgICAgICAgICAgICIxLjAtZGV2MSIsCisgICAgICAgICAgICAi
MS4wREVWIiwKKyAgICAgICAgICAgICIxLjAuREVWIiwKKyAgICAgICAgICAgICIxLjBERVYxIiwK
KyAgICAgICAgICAgICIxLjBERVYiLAorICAgICAgICAgICAgIjEuMC5ERVYxIiwKKyAgICAgICAg
ICAgICIxLjAtREVWIiwKKyAgICAgICAgICAgICIxLjAtREVWMSIsCisgICAgICAgICAgICAjIFZh
cmlvdXMgYWxwaGEgaW5jYXJuYXRpb25zCisgICAgICAgICAgICAiMS4wYSIsCisgICAgICAgICAg
ICAiMS4wLmEiLAorICAgICAgICAgICAgIjEuMC5hMSIsCisgICAgICAgICAgICAiMS4wLWEiLAor
ICAgICAgICAgICAgIjEuMC1hMSIsCisgICAgICAgICAgICAiMS4wYWxwaGEiLAorICAgICAgICAg
ICAgIjEuMC5hbHBoYSIsCisgICAgICAgICAgICAiMS4wLmFscGhhMSIsCisgICAgICAgICAgICAi
MS4wLWFscGhhIiwKKyAgICAgICAgICAgICIxLjAtYWxwaGExIiwKKyAgICAgICAgICAgICIxLjBB
IiwKKyAgICAgICAgICAgICIxLjAuQSIsCisgICAgICAgICAgICAiMS4wLkExIiwKKyAgICAgICAg
ICAgICIxLjAtQSIsCisgICAgICAgICAgICAiMS4wLUExIiwKKyAgICAgICAgICAgICIxLjBBTFBI
QSIsCisgICAgICAgICAgICAiMS4wLkFMUEhBIiwKKyAgICAgICAgICAgICIxLjAuQUxQSEExIiwK
KyAgICAgICAgICAgICIxLjAtQUxQSEEiLAorICAgICAgICAgICAgIjEuMC1BTFBIQTEiLAorICAg
ICAgICAgICAgIyBWYXJpb3VzIGJldGEgaW5jYXJuYXRpb25zCisgICAgICAgICAgICAiMS4wYiIs
CisgICAgICAgICAgICAiMS4wLmIiLAorICAgICAgICAgICAgIjEuMC5iMSIsCisgICAgICAgICAg
ICAiMS4wLWIiLAorICAgICAgICAgICAgIjEuMC1iMSIsCisgICAgICAgICAgICAiMS4wYmV0YSIs
CisgICAgICAgICAgICAiMS4wLmJldGEiLAorICAgICAgICAgICAgIjEuMC5iZXRhMSIsCisgICAg
ICAgICAgICAiMS4wLWJldGEiLAorICAgICAgICAgICAgIjEuMC1iZXRhMSIsCisgICAgICAgICAg
ICAiMS4wQiIsCisgICAgICAgICAgICAiMS4wLkIiLAorICAgICAgICAgICAgIjEuMC5CMSIsCisg
ICAgICAgICAgICAiMS4wLUIiLAorICAgICAgICAgICAgIjEuMC1CMSIsCisgICAgICAgICAgICAi
MS4wQkVUQSIsCisgICAgICAgICAgICAiMS4wLkJFVEEiLAorICAgICAgICAgICAgIjEuMC5CRVRB
MSIsCisgICAgICAgICAgICAiMS4wLUJFVEEiLAorICAgICAgICAgICAgIjEuMC1CRVRBMSIsCisg
ICAgICAgICAgICAjIFZhcmlvdXMgcmVsZWFzZSBjYW5kaWRhdGUgaW5jYXJuYXRpb25zCisgICAg
ICAgICAgICAiMS4wYyIsCisgICAgICAgICAgICAiMS4wLmMiLAorICAgICAgICAgICAgIjEuMC5j
MSIsCisgICAgICAgICAgICAiMS4wLWMiLAorICAgICAgICAgICAgIjEuMC1jMSIsCisgICAgICAg
ICAgICAiMS4wcmMiLAorICAgICAgICAgICAgIjEuMC5yYyIsCisgICAgICAgICAgICAiMS4wLnJj
MSIsCisgICAgICAgICAgICAiMS4wLXJjIiwKKyAgICAgICAgICAgICIxLjAtcmMxIiwKKyAgICAg
ICAgICAgICIxLjBDIiwKKyAgICAgICAgICAgICIxLjAuQyIsCisgICAgICAgICAgICAiMS4wLkMx
IiwKKyAgICAgICAgICAgICIxLjAtQyIsCisgICAgICAgICAgICAiMS4wLUMxIiwKKyAgICAgICAg
ICAgICIxLjBSQyIsCisgICAgICAgICAgICAiMS4wLlJDIiwKKyAgICAgICAgICAgICIxLjAuUkMx
IiwKKyAgICAgICAgICAgICIxLjAtUkMiLAorICAgICAgICAgICAgIjEuMC1SQzEiLAorICAgICAg
ICAgICAgIyBWYXJpb3VzIHBvc3QgcmVsZWFzZSBpbmNhcm5hdGlvbnMKKyAgICAgICAgICAgICIx
LjBwb3N0IiwKKyAgICAgICAgICAgICIxLjAucG9zdCIsCisgICAgICAgICAgICAiMS4wcG9zdDEi
LAorICAgICAgICAgICAgIjEuMHBvc3QiLAorICAgICAgICAgICAgIjEuMC1wb3N0IiwKKyAgICAg
ICAgICAgICIxLjAtcG9zdDEiLAorICAgICAgICAgICAgIjEuMFBPU1QiLAorICAgICAgICAgICAg
IjEuMC5QT1NUIiwKKyAgICAgICAgICAgICIxLjBQT1NUMSIsCisgICAgICAgICAgICAiMS4wUE9T
VCIsCisgICAgICAgICAgICAiMS4wLlBPU1QxIiwKKyAgICAgICAgICAgICIxLjAtUE9TVCIsCisg
ICAgICAgICAgICAiMS4wLVBPU1QxIiwKKyAgICAgICAgICAgICIxLjAtNSIsCisgICAgICAgICAg
ICAjIExvY2FsIHZlcnNpb24gY2FzZSBpbnNlbnNpdGl2aXR5CisgICAgICAgICAgICAiMS4wK0Fi
QyIKKyAgICAgICAgICAgICMgSW50ZWdlciBOb3JtYWxpemF0aW9uCisgICAgICAgICAgICAiMS4w
MSIsCisgICAgICAgICAgICAiMS4wYTA1IiwKKyAgICAgICAgICAgICIxLjBiMDciLAorICAgICAg
ICAgICAgIjEuMGMwNTYiLAorICAgICAgICAgICAgIjEuMHJjMDkiLAorICAgICAgICAgICAgIjEu
MC5wb3N0MDAwIiwKKyAgICAgICAgICAgICIxLjEuZGV2MDkwMDAiLAorICAgICAgICAgICAgIjAw
ITEuMiIsCisgICAgICAgICAgICAiMDEwMCEwLjAiLAorICAgICAgICAgICAgIyBWYXJpb3VzIG90
aGVyIG5vcm1hbGl6YXRpb25zCisgICAgICAgICAgICAidjEuMCIsCisgICAgICAgICAgICAiICBc
ciBcZiBcdiB2MS4wXHRcbiIsCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3NwZWNp
ZmllcnNfbm9ybWFsaXplZChzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgaWYgIisiIG5vdCBpbiB2
ZXJzaW9uOgorICAgICAgICAgICAgb3BzID0gWyJ+PSIsICI9PSIsICIhPSIsICI8PSIsICI+PSIs
ICI8IiwgIj4iXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3BzID0gWyI9PSIsICIhPSJd
CisKKyAgICAgICAgZm9yIG9wIGluIG9wczoKKyAgICAgICAgICAgIFNwZWNpZmllcihvcCArIHZl
cnNpb24pCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgic3BlY2lm
aWVyIiwgImV4cGVjdGVkIiksCisgICAgICAgIFsKKyAgICAgICAgICAgICMgU2luZ2xlIGl0ZW0g
c3BlY2lmaWVycyBzaG91bGQganVzdCBiZSByZWZsZXhpdmUKKyAgICAgICAgICAgICgiIT0yLjAi
LCAiIT0yLjAiKSwKKyAgICAgICAgICAgICgiPDIuMCIsICI8Mi4wIiksCisgICAgICAgICAgICAo
Ijw9Mi4wIiwgIjw9Mi4wIiksCisgICAgICAgICAgICAoIj09Mi4wIiwgIj09Mi4wIiksCisgICAg
ICAgICAgICAoIj4yLjAiLCAiPjIuMCIpLAorICAgICAgICAgICAgKCI+PTIuMCIsICI+PTIuMCIp
LAorICAgICAgICAgICAgKCJ+PTIuMCIsICJ+PTIuMCIpLAorICAgICAgICAgICAgIyBTcGFjZXMg
c2hvdWxkIGJlIHJlbW92ZWQKKyAgICAgICAgICAgICgiPCAyIiwgIjwyIiksCisgICAgICAgIF0s
CisgICAgKQorICAgIGRlZiB0ZXN0X3NwZWNpZmllcnNfc3RyX2FuZF9yZXByKHNlbGYsIHNwZWNp
ZmllciwgZXhwZWN0ZWQpOgorICAgICAgICBzcGVjID0gU3BlY2lmaWVyKHNwZWNpZmllcikKKwor
ICAgICAgICBhc3NlcnQgc3RyKHNwZWMpID09IGV4cGVjdGVkCisgICAgICAgIGFzc2VydCByZXBy
KHNwZWMpID09ICI8U3BlY2lmaWVyKHswfSk+Ii5mb3JtYXQocmVwcihleHBlY3RlZCkpCisKKyAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInNwZWNpZmllciIsIFNQRUNJRklFUlMpCisgICAg
ZGVmIHRlc3Rfc3BlY2lmaWVyc19oYXNoKHNlbGYsIHNwZWNpZmllcik6CisgICAgICAgIGFzc2Vy
dCBoYXNoKFNwZWNpZmllcihzcGVjaWZpZXIpKSA9PSBoYXNoKFNwZWNpZmllcihzcGVjaWZpZXIp
KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoImxlZnQiLCAicmln
aHQiLCAib3AiKSwKKyAgICAgICAgaXRlcnRvb2xzLmNoYWluKAorICAgICAgICAgICAgKgorICAg
ICAgICAgICAgIyBWZXJpZnkgdGhhdCB0aGUgZXF1YWwgKD09KSBvcGVyYXRvciB3b3JrcyBjb3Jy
ZWN0bHkKKyAgICAgICAgICAgIFtbKHgsIHgsIG9wZXJhdG9yLmVxKSBmb3IgeCBpbiBTUEVDSUZJ
RVJTXV0KKyAgICAgICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIG5vdCBl
cXVhbCAoIT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgWworICAgICAg
ICAgICAgICAgIFsoeCwgeSwgb3BlcmF0b3IubmUpIGZvciBqLCB5IGluIGVudW1lcmF0ZShTUEVD
SUZJRVJTKSBpZiBpICE9IGpdCisgICAgICAgICAgICAgICAgZm9yIGksIHggaW4gZW51bWVyYXRl
KFNQRUNJRklFUlMpCisgICAgICAgICAgICBdCisgICAgICAgICksCisgICAgKQorICAgIGRlZiB0
ZXN0X2NvbXBhcmlzb25fdHJ1ZShzZWxmLCBsZWZ0LCByaWdodCwgb3ApOgorICAgICAgICBhc3Nl
cnQgb3AoU3BlY2lmaWVyKGxlZnQpLCBTcGVjaWZpZXIocmlnaHQpKQorICAgICAgICBhc3NlcnQg
b3AobGVmdCwgU3BlY2lmaWVyKHJpZ2h0KSkKKyAgICAgICAgYXNzZXJ0IG9wKFNwZWNpZmllcihs
ZWZ0KSwgcmlnaHQpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCJsZWZ0IiwgInJp
Z2h0IiksIFsoIj09Mi44LjAiLCAiPT0yLjgiKV0pCisgICAgZGVmIHRlc3RfY29tcGFyaXNvbl9j
YW5vbmljYWxpemVzKHNlbGYsIGxlZnQsIHJpZ2h0KToKKyAgICAgICAgYXNzZXJ0IFNwZWNpZmll
cihsZWZ0KSA9PSBTcGVjaWZpZXIocmlnaHQpCisgICAgICAgIGFzc2VydCBsZWZ0ID09IFNwZWNp
ZmllcihyaWdodCkKKyAgICAgICAgYXNzZXJ0IFNwZWNpZmllcihsZWZ0KSA9PSByaWdodAorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoImxlZnQiLCAicmlnaHQiLCAi
b3AiKSwKKyAgICAgICAgaXRlcnRvb2xzLmNoYWluKAorICAgICAgICAgICAgKgorICAgICAgICAg
ICAgIyBWZXJpZnkgdGhhdCB0aGUgZXF1YWwgKD09KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkK
KyAgICAgICAgICAgIFtbKHgsIHgsIG9wZXJhdG9yLm5lKSBmb3IgeCBpbiBTUEVDSUZJRVJTXV0K
KyAgICAgICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIG5vdCBlcXVhbCAo
IT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgWworICAgICAgICAgICAg
ICAgIFsoeCwgeSwgb3BlcmF0b3IuZXEpIGZvciBqLCB5IGluIGVudW1lcmF0ZShTUEVDSUZJRVJT
KSBpZiBpICE9IGpdCisgICAgICAgICAgICAgICAgZm9yIGksIHggaW4gZW51bWVyYXRlKFNQRUNJ
RklFUlMpCisgICAgICAgICAgICBdCisgICAgICAgICksCisgICAgKQorICAgIGRlZiB0ZXN0X2Nv
bXBhcmlzb25fZmFsc2Uoc2VsZiwgbGVmdCwgcmlnaHQsIG9wKToKKyAgICAgICAgYXNzZXJ0IG5v
dCBvcChTcGVjaWZpZXIobGVmdCksIFNwZWNpZmllcihyaWdodCkpCisgICAgICAgIGFzc2VydCBu
b3Qgb3AobGVmdCwgU3BlY2lmaWVyKHJpZ2h0KSkKKyAgICAgICAgYXNzZXJ0IG5vdCBvcChTcGVj
aWZpZXIobGVmdCksIHJpZ2h0KQorCisgICAgZGVmIHRlc3RfY29tcGFyaXNvbl9ub25fc3BlY2lm
aWVyKHNlbGYpOgorICAgICAgICBhc3NlcnQgU3BlY2lmaWVyKCI9PTEuMCIpICE9IDEyCisgICAg
ICAgIGFzc2VydCBub3QgU3BlY2lmaWVyKCI9PTEuMCIpID09IDEyCisgICAgICAgIGFzc2VydCBT
cGVjaWZpZXIoIj09MS4wIikgIT0gIjEyIgorICAgICAgICBhc3NlcnQgbm90IFNwZWNpZmllcigi
PT0xLjAiKSA9PSAiMTIiCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAg
ICgidmVyc2lvbiIsICJzcGVjIiwgImV4cGVjdGVkIiksCisgICAgICAgIFsKKyAgICAgICAgICAg
ICh2LCBzLCBUcnVlKQorICAgICAgICAgICAgZm9yIHYsIHMgaW4gWworICAgICAgICAgICAgICAg
ICMgVGVzdCB0aGUgZXF1YWxpdHkgb3BlcmF0aW9uCisgICAgICAgICAgICAgICAgKCIyLjAiLCAi
PT0yIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPT0yLjAiKSwKKyAgICAgICAgICAgICAg
ICAoIjIuMCIsICI9PTIuMC4wIiksCisgICAgICAgICAgICAgICAgKCIyLjArZGVhZGJlZWYiLCAi
PT0yIiksCisgICAgICAgICAgICAgICAgKCIyLjArZGVhZGJlZWYiLCAiPT0yLjAiKSwKKyAgICAg
ICAgICAgICAgICAoIjIuMCtkZWFkYmVlZiIsICI9PTIuMC4wIiksCisgICAgICAgICAgICAgICAg
KCIyLjArZGVhZGJlZWYiLCAiPT0yK2RlYWRiZWVmIiksCisgICAgICAgICAgICAgICAgKCIyLjAr
ZGVhZGJlZWYiLCAiPT0yLjArZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCtkZWFk
YmVlZiIsICI9PTIuMC4wK2RlYWRiZWVmIiksCisgICAgICAgICAgICAgICAgKCIyLjArZGVhZGJl
ZWYuMCIsICI9PTIuMC4wK2RlYWRiZWVmLjAwIiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRo
ZSBlcXVhbGl0eSBvcGVyYXRpb24gd2l0aCBhIHByZWZpeAorICAgICAgICAgICAgICAgICgiMi5k
ZXYxIiwgIj09Mi4qIiksCisgICAgICAgICAgICAgICAgKCIyYTEiLCAiPT0yLioiKSwKKyAgICAg
ICAgICAgICAgICAoIjJhMS5wb3N0MSIsICI9PTIuKiIpLAorICAgICAgICAgICAgICAgICgiMmIx
IiwgIj09Mi4qIiksCisgICAgICAgICAgICAgICAgKCIyYjEuZGV2MSIsICI9PTIuKiIpLAorICAg
ICAgICAgICAgICAgICgiMmMxIiwgIj09Mi4qIiksCisgICAgICAgICAgICAgICAgKCIyYzEucG9z
dDEuZGV2MSIsICI9PTIuKiIpLAorICAgICAgICAgICAgICAgICgiMnJjMSIsICI9PTIuKiIpLAor
ICAgICAgICAgICAgICAgICgiMiIsICI9PTIuKiIpLAorICAgICAgICAgICAgICAgICgiMi4wIiwg
Ij09Mi4qIiksCisgICAgICAgICAgICAgICAgKCIyLjAuMCIsICI9PTIuKiIpLAorICAgICAgICAg
ICAgICAgICgiMi4wLnBvc3QxIiwgIj09Mi4wLnBvc3QxLioiKSwKKyAgICAgICAgICAgICAgICAo
IjIuMC5wb3N0MS5kZXYxIiwgIj09Mi4wLnBvc3QxLioiKSwKKyAgICAgICAgICAgICAgICAoIjIu
MStsb2NhbC52ZXJzaW9uIiwgIj09Mi4xLioiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhl
IGluLWVxdWFsaXR5IG9wZXJhdGlvbgorICAgICAgICAgICAgICAgICgiMi4xIiwgIiE9MiIpLAor
ICAgICAgICAgICAgICAgICgiMi4xIiwgIiE9Mi4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAu
MSIsICIhPTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC4xIiwgIiE9Mi4wIiksCisgICAgICAg
ICAgICAgICAgKCIyLjAuMSIsICIhPTIuMC4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAi
IT0yLjArZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGluLWVxdWFsaXR5
IG9wZXJhdGlvbiB3aXRoIGEgcHJlZml4CisgICAgICAgICAgICAgICAgKCIyLjAiLCAiIT0zLioi
KSwKKyAgICAgICAgICAgICAgICAoIjIuMSIsICIhPTIuMC4qIiksCisgICAgICAgICAgICAgICAg
IyBUZXN0IHRoZSBncmVhdGVyIHRoYW4gZXF1YWwgb3BlcmF0aW9uCisgICAgICAgICAgICAgICAg
KCIyLjAiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPj0yLjAiKSwKKyAgICAg
ICAgICAgICAgICAoIjIuMCIsICI+PTIuMC4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAucG9z
dDEiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgKCIyLjAucG9zdDEuZGV2MSIsICI+PTIiKSwK
KyAgICAgICAgICAgICAgICAoIjMiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRo
ZSBsZXNzIHRoYW4gZXF1YWwgb3BlcmF0aW9uCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPD0y
IiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPD0yLjAiKSwKKyAgICAgICAgICAgICAgICAo
IjIuMCIsICI8PTIuMC4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAuZGV2MSIsICI8PTIiKSwK
KyAgICAgICAgICAgICAgICAoIjIuMGExIiwgIjw9MiIpLAorICAgICAgICAgICAgICAgICgiMi4w
YTEuZGV2MSIsICI8PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGIxIiwgIjw9MiIpLAorICAg
ICAgICAgICAgICAgICgiMi4wYjEucG9zdDEiLCAiPD0yIiksCisgICAgICAgICAgICAgICAgKCIy
LjBjMSIsICI8PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGMxLnBvc3QxLmRldjEiLCAiPD0y
IiksCisgICAgICAgICAgICAgICAgKCIyLjByYzEiLCAiPD0yIiksCisgICAgICAgICAgICAgICAg
KCIxIiwgIjw9MiIpLAorICAgICAgICAgICAgICAgICMgVGVzdCB0aGUgZ3JlYXRlciB0aGFuIG9w
ZXJhdGlvbgorICAgICAgICAgICAgICAgICgiMyIsICI+MiIpLAorICAgICAgICAgICAgICAgICgi
Mi4xIiwgIj4yLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC4xIiwgIj4yIiksCisgICAgICAg
ICAgICAgICAgKCIyLjEucG9zdDEiLCAiPjIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMStsb2Nh
bC52ZXJzaW9uIiwgIj4yIiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoZSBsZXNzIHRoYW4g
b3BlcmF0aW9uCisgICAgICAgICAgICAgICAgKCIxIiwgIjwyIiksCisgICAgICAgICAgICAgICAg
KCIyLjAiLCAiPDIuMSIpLAorICAgICAgICAgICAgICAgICgiMi4wLmRldjAiLCAiPDIuMSIpLAor
ICAgICAgICAgICAgICAgICMgVGVzdCB0aGUgY29tcGF0aWJpbGl0eSBvcGVyYXRpb24KKyAgICAg
ICAgICAgICAgICAoIjEiLCAifj0xLjAiKSwKKyAgICAgICAgICAgICAgICAoIjEuMC4xIiwgIn49
MS4wIiksCisgICAgICAgICAgICAgICAgKCIxLjEiLCAifj0xLjAiKSwKKyAgICAgICAgICAgICAg
ICAoIjEuOTk5OTk5OSIsICJ+PTEuMCIpLAorICAgICAgICAgICAgICAgICMgVGVzdCB0aGF0IGVw
b2NocyBhcmUgaGFuZGxlZCBzYW5lbHkKKyAgICAgICAgICAgICAgICAoIjIhMS4wIiwgIn49MiEx
LjAiKSwKKyAgICAgICAgICAgICAgICAoIjIhMS4wIiwgIj09MiExLioiKSwKKyAgICAgICAgICAg
ICAgICAoIjIhMS4wIiwgIj09MiExLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIhMS4wIiwgIiE9
MS4wIiksCisgICAgICAgICAgICAgICAgKCIxLjAiLCAiIT0yITEuMCIpLAorICAgICAgICAgICAg
ICAgICgiMS4wIiwgIjw9MiEwLjEiKSwKKyAgICAgICAgICAgICAgICAoIjIhMS4wIiwgIj49Mi4w
IiksCisgICAgICAgICAgICAgICAgKCIxLjAiLCAiPDIhMC4xIiksCisgICAgICAgICAgICAgICAg
KCIyITEuMCIsICI+Mi4wIiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHNvbWUgbm9ybWFsaXph
dGlvbiBydWxlcworICAgICAgICAgICAgICAgICgiMi4wLjUiLCAiPjIuMGRldiIpLAorICAgICAg
ICAgICAgXQorICAgICAgICBdCisgICAgICAgICsgWworICAgICAgICAgICAgKHYsIHMsIEZhbHNl
KQorICAgICAgICAgICAgZm9yIHYsIHMgaW4gWworICAgICAgICAgICAgICAgICMgVGVzdCB0aGUg
ZXF1YWxpdHkgb3BlcmF0aW9uCisgICAgICAgICAgICAgICAgKCIyLjEiLCAiPT0yIiksCisgICAg
ICAgICAgICAgICAgKCIyLjEiLCAiPT0yLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIuMSIsICI9
PTIuMC4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPT0yLjArZGVhZGJlZWYiKSwKKyAg
ICAgICAgICAgICAgICAjIFRlc3QgdGhlIGVxdWFsaXR5IG9wZXJhdGlvbiB3aXRoIGEgcHJlZml4
CisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPT0zLioiKSwKKyAgICAgICAgICAgICAgICAoIjIu
MSIsICI9PTIuMC4qIiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoZSBpbi1lcXVhbGl0eSBv
cGVyYXRpb24KKyAgICAgICAgICAgICAgICAoIjIuMCIsICIhPTIiKSwKKyAgICAgICAgICAgICAg
ICAoIjIuMCIsICIhPTIuMCIpLAorICAgICAgICAgICAgICAgICgiMi4wIiwgIiE9Mi4wLjAiKSwK
KyAgICAgICAgICAgICAgICAoIjIuMCtkZWFkYmVlZiIsICIhPTIiKSwKKyAgICAgICAgICAgICAg
ICAoIjIuMCtkZWFkYmVlZiIsICIhPTIuMCIpLAorICAgICAgICAgICAgICAgICgiMi4wK2RlYWRi
ZWVmIiwgIiE9Mi4wLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCtkZWFkYmVlZiIsICIhPTIr
ZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCtkZWFkYmVlZiIsICIhPTIuMCtkZWFk
YmVlZiIpLAorICAgICAgICAgICAgICAgICgiMi4wK2RlYWRiZWVmIiwgIiE9Mi4wLjArZGVhZGJl
ZWYiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCtkZWFkYmVlZi4wIiwgIiE9Mi4wLjArZGVhZGJl
ZWYuMDAiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGluLWVxdWFsaXR5IG9wZXJhdGlv
biB3aXRoIGEgcHJlZml4CisgICAgICAgICAgICAgICAgKCIyLmRldjEiLCAiIT0yLioiKSwKKyAg
ICAgICAgICAgICAgICAoIjJhMSIsICIhPTIuKiIpLAorICAgICAgICAgICAgICAgICgiMmExLnBv
c3QxIiwgIiE9Mi4qIiksCisgICAgICAgICAgICAgICAgKCIyYjEiLCAiIT0yLioiKSwKKyAgICAg
ICAgICAgICAgICAoIjJiMS5kZXYxIiwgIiE9Mi4qIiksCisgICAgICAgICAgICAgICAgKCIyYzEi
LCAiIT0yLioiKSwKKyAgICAgICAgICAgICAgICAoIjJjMS5wb3N0MS5kZXYxIiwgIiE9Mi4qIiks
CisgICAgICAgICAgICAgICAgKCIycmMxIiwgIiE9Mi4qIiksCisgICAgICAgICAgICAgICAgKCIy
IiwgIiE9Mi4qIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiIT0yLioiKSwKKyAgICAgICAg
ICAgICAgICAoIjIuMC4wIiwgIiE9Mi4qIiksCisgICAgICAgICAgICAgICAgKCIyLjAucG9zdDEi
LCAiIT0yLjAucG9zdDEuKiIpLAorICAgICAgICAgICAgICAgICgiMi4wLnBvc3QxLmRldjEiLCAi
IT0yLjAucG9zdDEuKiIpLAorICAgICAgICAgICAgICAgICMgVGVzdCB0aGUgZ3JlYXRlciB0aGFu
IGVxdWFsIG9wZXJhdGlvbgorICAgICAgICAgICAgICAgICgiMi4wLmRldjEiLCAiPj0yIiksCisg
ICAgICAgICAgICAgICAgKCIyLjBhMSIsICI+PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGEx
LmRldjEiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgKCIyLjBiMSIsICI+PTIiKSwKKyAgICAg
ICAgICAgICAgICAoIjIuMGIxLnBvc3QxIiwgIj49MiIpLAorICAgICAgICAgICAgICAgICgiMi4w
YzEiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgKCIyLjBjMS5wb3N0MS5kZXYxIiwgIj49MiIp
LAorICAgICAgICAgICAgICAgICgiMi4wcmMxIiwgIj49MiIpLAorICAgICAgICAgICAgICAgICgi
MSIsICI+PTIiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGxlc3MgdGhhbiBlcXVhbCBv
cGVyYXRpb24KKyAgICAgICAgICAgICAgICAoIjIuMC5wb3N0MSIsICI8PTIiKSwKKyAgICAgICAg
ICAgICAgICAoIjIuMC5wb3N0MS5kZXYxIiwgIjw9MiIpLAorICAgICAgICAgICAgICAgICgiMyIs
ICI8PTIiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGdyZWF0ZXIgdGhhbiBvcGVyYXRp
b24KKyAgICAgICAgICAgICAgICAoIjEiLCAiPjIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC5k
ZXYxIiwgIj4yIiksCisgICAgICAgICAgICAgICAgKCIyLjBhMSIsICI+MiIpLAorICAgICAgICAg
ICAgICAgICgiMi4wYTEucG9zdDEiLCAiPjIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGIxIiwg
Ij4yIiksCisgICAgICAgICAgICAgICAgKCIyLjBiMS5kZXYxIiwgIj4yIiksCisgICAgICAgICAg
ICAgICAgKCIyLjBjMSIsICI+MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYzEucG9zdDEuZGV2
MSIsICI+MiIpLAorICAgICAgICAgICAgICAgICgiMi4wcmMxIiwgIj4yIiksCisgICAgICAgICAg
ICAgICAgKCIyLjAiLCAiPjIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC5wb3N0MSIsICI+MiIp
LAorICAgICAgICAgICAgICAgICgiMi4wLnBvc3QxLmRldjEiLCAiPjIiKSwKKyAgICAgICAgICAg
ICAgICAoIjIuMCtsb2NhbC52ZXJzaW9uIiwgIj4yIiksCisgICAgICAgICAgICAgICAgIyBUZXN0
IHRoZSBsZXNzIHRoYW4gb3BlcmF0aW9uCisgICAgICAgICAgICAgICAgKCIyLjAuZGV2MSIsICI8
MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYTEiLCAiPDIiKSwKKyAgICAgICAgICAgICAgICAo
IjIuMGExLnBvc3QxIiwgIjwyIiksCisgICAgICAgICAgICAgICAgKCIyLjBiMSIsICI8MiIpLAor
ICAgICAgICAgICAgICAgICgiMi4wYjIuZGV2MSIsICI8MiIpLAorICAgICAgICAgICAgICAgICgi
Mi4wYzEiLCAiPDIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGMxLnBvc3QxLmRldjEiLCAiPDIi
KSwKKyAgICAgICAgICAgICAgICAoIjIuMHJjMSIsICI8MiIpLAorICAgICAgICAgICAgICAgICgi
Mi4wIiwgIjwyIiksCisgICAgICAgICAgICAgICAgKCIyLnBvc3QxIiwgIjwyIiksCisgICAgICAg
ICAgICAgICAgKCIyLnBvc3QxLmRldjEiLCAiPDIiKSwKKyAgICAgICAgICAgICAgICAoIjMiLCAi
PDIiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGNvbXBhdGliaWxpdHkgb3BlcmF0aW9u
CisgICAgICAgICAgICAgICAgKCIyLjAiLCAifj0xLjAiKSwKKyAgICAgICAgICAgICAgICAoIjEu
MS4wIiwgIn49MS4wLjAiKSwKKyAgICAgICAgICAgICAgICAoIjEuMS5wb3N0MSIsICJ+PTEuMC4w
IiksCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoYXQgZXBvY2hzIGFyZSBoYW5kbGVkIHNhbmVs
eQorICAgICAgICAgICAgICAgICgiMS4wIiwgIn49MiExLjAiKSwKKyAgICAgICAgICAgICAgICAo
IjIhMS4wIiwgIn49MS4wIiksCisgICAgICAgICAgICAgICAgKCIyITEuMCIsICI9PTEuMCIpLAor
ICAgICAgICAgICAgICAgICgiMS4wIiwgIj09MiExLjAiKSwKKyAgICAgICAgICAgICAgICAoIjIh
MS4wIiwgIj09MS4qIiksCisgICAgICAgICAgICAgICAgKCIxLjAiLCAiPT0yITEuKiIpLAorICAg
ICAgICAgICAgICAgICgiMiExLjAiLCAiIT0yITEuMCIpLAorICAgICAgICAgICAgXQorICAgICAg
ICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9zcGVjaWZpZXJzKHNlbGYsIHZlcnNpb24sIHNwZWMs
IGV4cGVjdGVkKToKKyAgICAgICAgc3BlYyA9IFNwZWNpZmllcihzcGVjLCBwcmVyZWxlYXNlcz1U
cnVlKQorCisgICAgICAgIGlmIGV4cGVjdGVkOgorICAgICAgICAgICAgIyBUZXN0IHRoYXQgdGhl
IHBsYWluIHN0cmluZyBmb3JtIHdvcmtzCisgICAgICAgICAgICBhc3NlcnQgdmVyc2lvbiBpbiBz
cGVjCisgICAgICAgICAgICBhc3NlcnQgc3BlYy5jb250YWlucyh2ZXJzaW9uKQorCisgICAgICAg
ICAgICAjIFRlc3QgdGhhdCB0aGUgdmVyc2lvbiBpbnN0YW5jZSBmb3JtIHdvcmtzCisgICAgICAg
ICAgICBhc3NlcnQgVmVyc2lvbih2ZXJzaW9uKSBpbiBzcGVjCisgICAgICAgICAgICBhc3NlcnQg
c3BlYy5jb250YWlucyhWZXJzaW9uKHZlcnNpb24pKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgIyBUZXN0IHRoYXQgdGhlIHBsYWluIHN0cmluZyBmb3JtIHdvcmtzCisgICAgICAgICAgICBh
c3NlcnQgdmVyc2lvbiBub3QgaW4gc3BlYworICAgICAgICAgICAgYXNzZXJ0IG5vdCBzcGVjLmNv
bnRhaW5zKHZlcnNpb24pCisKKyAgICAgICAgICAgICMgVGVzdCB0aGF0IHRoZSB2ZXJzaW9uIGlu
c3RhbmNlIGZvcm0gd29ya3MKKyAgICAgICAgICAgIGFzc2VydCBWZXJzaW9uKHZlcnNpb24pIG5v
dCBpbiBzcGVjCisgICAgICAgICAgICBhc3NlcnQgbm90IHNwZWMuY29udGFpbnMoVmVyc2lvbih2
ZXJzaW9uKSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJ2ZXJz
aW9uIiwgInNwZWMiLCAiZXhwZWN0ZWQiKSwKKyAgICAgICAgWworICAgICAgICAgICAgIyBUZXN0
IGlkZW50aXR5IGNvbXBhcmlzb24gYnkgaXRzZWxmCisgICAgICAgICAgICAoImxvbHdhdCIsICI9
PT1sb2x3YXQiLCBUcnVlKSwKKyAgICAgICAgICAgICgiTG9sd2F0IiwgIj09PWxvbHdhdCIsIFRy
dWUpLAorICAgICAgICAgICAgKCIxLjAiLCAiPT09MS4wIiwgVHJ1ZSksCisgICAgICAgICAgICAo
Im5vcGUiLCAiPT09bG9sd2F0IiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxLjAuMCIsICI9PT0x
LjAiLCBGYWxzZSksCisgICAgICAgICAgICAoIjEuMC5kZXYwIiwgIj09PTEuMC5kZXYwIiwgVHJ1
ZSksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3NwZWNpZmllcnNfaWRlbnRpdHko
c2VsZiwgdmVyc2lvbiwgc3BlYywgZXhwZWN0ZWQpOgorICAgICAgICBzcGVjID0gU3BlY2lmaWVy
KHNwZWMpCisKKyAgICAgICAgaWYgZXhwZWN0ZWQ6CisgICAgICAgICAgICAjIElkZW50aXR5IGNv
bXBhcmlzb25zIG9ubHkgc3VwcG9ydCB0aGUgcGxhaW4gc3RyaW5nIGZvcm0KKyAgICAgICAgICAg
IGFzc2VydCB2ZXJzaW9uIGluIHNwZWMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgSWRl
bnRpdHkgY29tcGFyaXNvbnMgb25seSBzdXBwb3J0IHRoZSBwbGFpbiBzdHJpbmcgZm9ybQorICAg
ICAgICAgICAgYXNzZXJ0IHZlcnNpb24gbm90IGluIHNwZWMKKworICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgKKyAgICAgICAgKCJzcGVjaWZpZXIiLCAiZXhwZWN0ZWQiKSwKKyAgICAgICAg
WworICAgICAgICAgICAgKCI9PTEuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiPj0xLjAiLCBG
YWxzZSksCisgICAgICAgICAgICAoIjw9MS4wIiwgRmFsc2UpLAorICAgICAgICAgICAgKCJ+PTEu
MCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiPDEuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgi
PjEuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiPDEuMC5kZXYxIiwgRmFsc2UpLAorICAgICAg
ICAgICAgKCI+MS4wLmRldjEiLCBGYWxzZSksCisgICAgICAgICAgICAoIj09MS4wLioiLCBGYWxz
ZSksCisgICAgICAgICAgICAoIj09MS4wLmRldjEiLCBUcnVlKSwKKyAgICAgICAgICAgICgiPj0x
LjAuZGV2MSIsIFRydWUpLAorICAgICAgICAgICAgKCI8PTEuMC5kZXYxIiwgVHJ1ZSksCisgICAg
ICAgICAgICAoIn49MS4wLmRldjEiLCBUcnVlKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVm
IHRlc3Rfc3BlY2lmaWVyX3ByZXJlbGVhc2VzX2RldGVjdGlvbihzZWxmLCBzcGVjaWZpZXIsIGV4
cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0IFNwZWNpZmllcihzcGVjaWZpZXIpLnByZXJlbGVhc2Vz
ID09IGV4cGVjdGVkCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgi
c3BlY2lmaWVyIiwgInZlcnNpb24iLCAiZXhwZWN0ZWQiKSwKKyAgICAgICAgWworICAgICAgICAg
ICAgKCI+PTEuMCIsICIyLjAuZGV2MSIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiPj0yLjAuZGV2
MSIsICIyLjBhMSIsIFRydWUpLAorICAgICAgICAgICAgKCI9PTIuMC4qIiwgIjIuMGExLmRldjEi
LCBGYWxzZSksCisgICAgICAgICAgICAoIj09Mi4wYTEuKiIsICIyLjBhMS5kZXYxIiwgVHJ1ZSks
CisgICAgICAgICAgICAoIjw9Mi4wIiwgIjEuMC5kZXYxIiwgRmFsc2UpLAorICAgICAgICAgICAg
KCI8PTIuMC5kZXYxIiwgIjEuMGExIiwgVHJ1ZSksCisgICAgICAgIF0sCisgICAgKQorICAgIGRl
ZiB0ZXN0X3NwZWNpZmllcnNfcHJlcmVsZWFzZXMoc2VsZiwgc3BlY2lmaWVyLCB2ZXJzaW9uLCBl
eHBlY3RlZCk6CisgICAgICAgIHNwZWMgPSBTcGVjaWZpZXIoc3BlY2lmaWVyKQorCisgICAgICAg
IGlmIGV4cGVjdGVkOgorICAgICAgICAgICAgYXNzZXJ0IHZlcnNpb24gaW4gc3BlYworICAgICAg
ICAgICAgc3BlYy5wcmVyZWxlYXNlcyA9IEZhbHNlCisgICAgICAgICAgICBhc3NlcnQgdmVyc2lv
biBub3QgaW4gc3BlYworICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IHZlcnNpb24g
bm90IGluIHNwZWMKKyAgICAgICAgICAgIHNwZWMucHJlcmVsZWFzZXMgPSBUcnVlCisgICAgICAg
ICAgICBhc3NlcnQgdmVyc2lvbiBpbiBzcGVjCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoCisgICAgICAgICgic3BlY2lmaWVyIiwgInByZXJlbGVhc2VzIiwgImlucHV0IiwgImV4cGVj
dGVkIiksCisgICAgICAgIFsKKyAgICAgICAgICAgICgiPj0xLjAiLCBOb25lLCBbIjIuMGExIl0s
IFsiMi4wYTEiXSksCisgICAgICAgICAgICAoIj49MS4wLmRldjEiLCBOb25lLCBbIjEuMCIsICIy
LjBhMSJdLCBbIjEuMCIsICIyLjBhMSJdKSwKKyAgICAgICAgICAgICgiPj0xLjAuZGV2MSIsIEZh
bHNlLCBbIjEuMCIsICIyLjBhMSJdLCBbIjEuMCJdKSwKKyAgICAgICAgXSwKKyAgICApCisgICAg
ZGVmIHRlc3Rfc3BlY2lmaWVyX2ZpbHRlcihzZWxmLCBzcGVjaWZpZXIsIHByZXJlbGVhc2VzLCBp
bnB1dCwgZXhwZWN0ZWQpOgorICAgICAgICBzcGVjID0gU3BlY2lmaWVyKHNwZWNpZmllcikKKwor
ICAgICAgICBrd2FyZ3MgPSB7InByZXJlbGVhc2VzIjogcHJlcmVsZWFzZXN9IGlmIHByZXJlbGVh
c2VzIGlzIG5vdCBOb25lIGVsc2Uge30KKworICAgICAgICBhc3NlcnQgbGlzdChzcGVjLmZpbHRl
cihpbnB1dCwgKiprd2FyZ3MpKSA9PSBleHBlY3RlZAorCisgICAgQHB5dGVzdC5tYXJrLnhmYWls
CisgICAgZGVmIHRlc3Rfc3BlY2lmaWVyX2V4cGxpY2l0X2xlZ2FjeShzZWxmKToKKyAgICAgICAg
YXNzZXJ0IFNwZWNpZmllcigiPT0xLjAiKS5jb250YWlucyhMZWdhY3lWZXJzaW9uKCIxLjAiKSkK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJzcGVjIiwgIm9wIiks
CisgICAgICAgIFsKKyAgICAgICAgICAgICgifj0yLjAiLCAifj0iKSwKKyAgICAgICAgICAgICgi
PT0yLjEuKiIsICI9PSIpLAorICAgICAgICAgICAgKCI9PTIuMS4wLjMiLCAiPT0iKSwKKyAgICAg
ICAgICAgICgiIT0yLjIuKiIsICIhPSIpLAorICAgICAgICAgICAgKCIhPTIuMi4wLjUiLCAiIT0i
KSwKKyAgICAgICAgICAgICgiPD01IiwgIjw9IiksCisgICAgICAgICAgICAoIj49Ny45YTEiLCAi
Pj0iKSwKKyAgICAgICAgICAgICgiPDEuMC5kZXYxIiwgIjwiKSwKKyAgICAgICAgICAgICgiPjIu
MC5wb3N0MSIsICI+IiksCisgICAgICAgICAgICAoIj09PWxvbHdhdCIsICI9PT0iKSwKKyAgICAg
ICAgXSwKKyAgICApCisgICAgZGVmIHRlc3Rfc3BlY2lmaWVyX29wZXJhdG9yX3Byb3BlcnR5KHNl
bGYsIHNwZWMsIG9wKToKKyAgICAgICAgYXNzZXJ0IFNwZWNpZmllcihzcGVjKS5vcGVyYXRvciA9
PSBvcAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoInNwZWMiLCAi
dmVyc2lvbiIpLAorICAgICAgICBbCisgICAgICAgICAgICAoIn49Mi4wIiwgIjIuMCIpLAorICAg
ICAgICAgICAgKCI9PTIuMS4qIiwgIjIuMS4qIiksCisgICAgICAgICAgICAoIj09Mi4xLjAuMyIs
ICIyLjEuMC4zIiksCisgICAgICAgICAgICAoIiE9Mi4yLioiLCAiMi4yLioiKSwKKyAgICAgICAg
ICAgICgiIT0yLjIuMC41IiwgIjIuMi4wLjUiKSwKKyAgICAgICAgICAgICgiPD01IiwgIjUiKSwK
KyAgICAgICAgICAgICgiPj03LjlhMSIsICI3LjlhMSIpLAorICAgICAgICAgICAgKCI8MS4wLmRl
djEiLCAiMS4wLmRldjEiKSwKKyAgICAgICAgICAgICgiPjIuMC5wb3N0MSIsICIyLjAucG9zdDEi
KSwKKyAgICAgICAgICAgICgiPT09bG9sd2F0IiwgImxvbHdhdCIpLAorICAgICAgICBdLAorICAg
ICkKKyAgICBkZWYgdGVzdF9zcGVjaWZpZXJfdmVyc2lvbl9wcm9wZXJ0eShzZWxmLCBzcGVjLCB2
ZXJzaW9uKToKKyAgICAgICAgYXNzZXJ0IFNwZWNpZmllcihzcGVjKS52ZXJzaW9uID09IHZlcnNp
b24KKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJzcGVjIiwgImV4
cGVjdGVkX2xlbmd0aCIpLAorICAgICAgICBbKCIiLCAwKSwgKCI9PTIuMCIsIDEpLCAoIj49Mi4w
IiwgMSksICgiPj0yLjAsPDMiLCAyKSwgKCI+PTIuMCw8Myw9PTIuNCIsIDMpXSwKKyAgICApCisg
ICAgZGVmIHRlc3RfbGVuZ3RoKHNlbGYsIHNwZWMsIGV4cGVjdGVkX2xlbmd0aCk6CisgICAgICAg
IHNwZWMgPSBTcGVjaWZpZXJTZXQoc3BlYykKKyAgICAgICAgYXNzZXJ0IGxlbihzcGVjKSA9PSBl
eHBlY3RlZF9sZW5ndGgKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAg
KCJzcGVjIiwgImV4cGVjdGVkX2l0ZW1zIiksCisgICAgICAgIFsKKyAgICAgICAgICAgICgiIiwg
W10pLAorICAgICAgICAgICAgKCI9PTIuMCIsIFsiPT0yLjAiXSksCisgICAgICAgICAgICAoIj49
Mi4wIiwgWyI+PTIuMCJdKSwKKyAgICAgICAgICAgICgiPj0yLjAsPDMiLCBbIj49Mi4wIiwgIjwz
Il0pLAorICAgICAgICAgICAgKCI+PTIuMCw8Myw9PTIuNCIsIFsiPj0yLjAiLCAiPDMiLCAiPT0y
LjQiXSksCisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X2l0ZXJhdGlvbihzZWxmLCBz
cGVjLCBleHBlY3RlZF9pdGVtcyk6CisgICAgICAgIHNwZWMgPSBTcGVjaWZpZXJTZXQoc3BlYykK
KyAgICAgICAgaXRlbXMgPSBzZXQoc3RyKGl0ZW0pIGZvciBpdGVtIGluIHNwZWMpCisgICAgICAg
IGFzc2VydCBpdGVtcyA9PSBzZXQoZXhwZWN0ZWRfaXRlbXMpCisKKworY2xhc3MgVGVzdExlZ2Fj
eVNwZWNpZmllcjoKKyAgICBkZWYgdGVzdF9sZWdhY3lfc3BlY2lmaWVyX2lzX2RlcHJlY2F0ZWQo
c2VsZik6CisgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MocmVjb3JkPVRydWUp
IGFzIHc6CisgICAgICAgICAgICBMZWdhY3lTcGVjaWZpZXIoIj49c29tZS1sZWdhY3ktdmVyc2lv
biIpCisgICAgICAgICAgICBhc3NlcnQgbGVuKHcpID09IDEKKyAgICAgICAgICAgIGFzc2VydCBp
c3N1YmNsYXNzKHdbMF0uY2F0ZWdvcnksIERlcHJlY2F0aW9uV2FybmluZykKKworICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJ2ZXJzaW9uIiwgInNwZWMiLCAiZXhwZWN0
ZWQiKSwKKyAgICAgICAgWworICAgICAgICAgICAgKHYsIHMsIFRydWUpCisgICAgICAgICAgICBm
b3IgdiwgcyBpbiBbCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoZSBlcXVhbGl0eSBvcGVyYXRp
b24KKyAgICAgICAgICAgICAgICAoIjIuMCIsICI9PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIu
MCIsICI9PTIuMCIpLAorICAgICAgICAgICAgICAgICgiMi4wIiwgIj09Mi4wLjAiKSwKKyAgICAg
ICAgICAgICAgICAjIFRlc3QgdGhlIGluLWVxdWFsaXR5IG9wZXJhdGlvbgorICAgICAgICAgICAg
ICAgICgiMi4xIiwgIiE9MiIpLAorICAgICAgICAgICAgICAgICgiMi4xIiwgIiE9Mi4wIiksCisg
ICAgICAgICAgICAgICAgKCIyLjAuMSIsICIhPTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMC4x
IiwgIiE9Mi4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAuMSIsICIhPTIuMC4wIiksCisgICAg
ICAgICAgICAgICAgIyBUZXN0IHRoZSBncmVhdGVyIHRoYW4gZXF1YWwgb3BlcmF0aW9uCisgICAg
ICAgICAgICAgICAgKCIyLjAiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPj0y
LjAiKSwKKyAgICAgICAgICAgICAgICAoIjIuMCIsICI+PTIuMC4wIiksCisgICAgICAgICAgICAg
ICAgKCIyLjAucG9zdDEiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgKCIyLjAucG9zdDEuZGV2
MSIsICI+PTIiKSwKKyAgICAgICAgICAgICAgICAoIjMiLCAiPj0yIiksCisgICAgICAgICAgICAg
ICAgIyBUZXN0IHRoZSBsZXNzIHRoYW4gZXF1YWwgb3BlcmF0aW9uCisgICAgICAgICAgICAgICAg
KCIyLjAiLCAiPD0yIiksCisgICAgICAgICAgICAgICAgKCIyLjAiLCAiPD0yLjAiKSwKKyAgICAg
ICAgICAgICAgICAoIjIuMCIsICI8PTIuMC4wIiksCisgICAgICAgICAgICAgICAgKCIyLjAuZGV2
MSIsICI8PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGExIiwgIjw9MiIpLAorICAgICAgICAg
ICAgICAgICgiMi4wYTEuZGV2MSIsICI8PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGIxIiwg
Ijw9MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYjEucG9zdDEiLCAiPD0yIiksCisgICAgICAg
ICAgICAgICAgKCIyLjBjMSIsICI8PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMGMxLnBvc3Qx
LmRldjEiLCAiPD0yIiksCisgICAgICAgICAgICAgICAgKCIyLjByYzEiLCAiPD0yIiksCisgICAg
ICAgICAgICAgICAgKCIxIiwgIjw9MiIpLAorICAgICAgICAgICAgICAgICMgVGVzdCB0aGUgZ3Jl
YXRlciB0aGFuIG9wZXJhdGlvbgorICAgICAgICAgICAgICAgICgiMyIsICI+MiIpLAorICAgICAg
ICAgICAgICAgICgiMi4xIiwgIj4yLjAiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGxl
c3MgdGhhbiBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICAoIjEiLCAiPDIiKSwKKyAgICAgICAg
ICAgICAgICAoIjIuMCIsICI8Mi4xIiksCisgICAgICAgICAgICBdCisgICAgICAgIF0KKyAgICAg
ICAgKyBbCisgICAgICAgICAgICAodiwgcywgRmFsc2UpCisgICAgICAgICAgICBmb3IgdiwgcyBp
biBbCisgICAgICAgICAgICAgICAgIyBUZXN0IHRoZSBlcXVhbGl0eSBvcGVyYXRpb24KKyAgICAg
ICAgICAgICAgICAoIjIuMSIsICI9PTIiKSwKKyAgICAgICAgICAgICAgICAoIjIuMSIsICI9PTIu
MCIpLAorICAgICAgICAgICAgICAgICgiMi4xIiwgIj09Mi4wLjAiKSwKKyAgICAgICAgICAgICAg
ICAjIFRlc3QgdGhlIGluLWVxdWFsaXR5IG9wZXJhdGlvbgorICAgICAgICAgICAgICAgICgiMi4w
IiwgIiE9MiIpLAorICAgICAgICAgICAgICAgICgiMi4wIiwgIiE9Mi4wIiksCisgICAgICAgICAg
ICAgICAgKCIyLjAiLCAiIT0yLjAuMCIpLAorICAgICAgICAgICAgICAgICMgVGVzdCB0aGUgZ3Jl
YXRlciB0aGFuIGVxdWFsIG9wZXJhdGlvbgorICAgICAgICAgICAgICAgICgiMi4wLmRldjEiLCAi
Pj0yIiksCisgICAgICAgICAgICAgICAgKCIyLjBhMSIsICI+PTIiKSwKKyAgICAgICAgICAgICAg
ICAoIjIuMGExLmRldjEiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgKCIyLjBiMSIsICI+PTIi
KSwKKyAgICAgICAgICAgICAgICAoIjIuMGIxLnBvc3QxIiwgIj49MiIpLAorICAgICAgICAgICAg
ICAgICgiMi4wYzEiLCAiPj0yIiksCisgICAgICAgICAgICAgICAgKCIyLjBjMS5wb3N0MS5kZXYx
IiwgIj49MiIpLAorICAgICAgICAgICAgICAgICgiMi4wcmMxIiwgIj49MiIpLAorICAgICAgICAg
ICAgICAgICgiMSIsICI+PTIiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGxlc3MgdGhh
biBlcXVhbCBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICAoIjIuMC5wb3N0MSIsICI8PTIiKSwK
KyAgICAgICAgICAgICAgICAoIjIuMC5wb3N0MS5kZXYxIiwgIjw9MiIpLAorICAgICAgICAgICAg
ICAgICgiMyIsICI8PTIiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhlIGdyZWF0ZXIgdGhh
biBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICAoIjEiLCAiPjIiKSwKKyAgICAgICAgICAgICAg
ICAoIjIuMC5kZXYxIiwgIj4yIiksCisgICAgICAgICAgICAgICAgKCIyLjBhMSIsICI+MiIpLAor
ICAgICAgICAgICAgICAgICgiMi4wYTEucG9zdDEiLCAiPjIiKSwKKyAgICAgICAgICAgICAgICAo
IjIuMGIxIiwgIj4yIiksCisgICAgICAgICAgICAgICAgKCIyLjBiMS5kZXYxIiwgIj4yIiksCisg
ICAgICAgICAgICAgICAgKCIyLjBjMSIsICI+MiIpLAorICAgICAgICAgICAgICAgICgiMi4wYzEu
cG9zdDEuZGV2MSIsICI+MiIpLAorICAgICAgICAgICAgICAgICgiMi4wcmMxIiwgIj4yIiksCisg
ICAgICAgICAgICAgICAgKCIyLjAiLCAiPjIiKSwKKyAgICAgICAgICAgICAgICAjIFRlc3QgdGhl
IGxlc3MgdGhhbiBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICAoIjMiLCAiPDIiKSwKKyAgICAg
ICAgICAgIF0KKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3Rfc3BlY2lmaWVycyhzZWxm
LCB2ZXJzaW9uLCBzcGVjLCBleHBlY3RlZCk6CisgICAgICAgIHNwZWMgPSBMZWdhY3lTcGVjaWZp
ZXIoc3BlYywgcHJlcmVsZWFzZXM9VHJ1ZSkKKworICAgICAgICBpZiBleHBlY3RlZDoKKyAgICAg
ICAgICAgICMgVGVzdCB0aGF0IHRoZSBwbGFpbiBzdHJpbmcgZm9ybSB3b3JrcworICAgICAgICAg
ICAgYXNzZXJ0IHZlcnNpb24gaW4gc3BlYworICAgICAgICAgICAgYXNzZXJ0IHNwZWMuY29udGFp
bnModmVyc2lvbikKKworICAgICAgICAgICAgIyBUZXN0IHRoYXQgdGhlIHZlcnNpb24gaW5zdGFu
Y2UgZm9ybSB3b3JrcworICAgICAgICAgICAgYXNzZXJ0IExlZ2FjeVZlcnNpb24odmVyc2lvbikg
aW4gc3BlYworICAgICAgICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnMoTGVnYWN5VmVyc2lvbih2
ZXJzaW9uKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgVGVzdCB0aGF0IHRoZSBwbGFp
biBzdHJpbmcgZm9ybSB3b3JrcworICAgICAgICAgICAgYXNzZXJ0IHZlcnNpb24gbm90IGluIHNw
ZWMKKyAgICAgICAgICAgIGFzc2VydCBub3Qgc3BlYy5jb250YWlucyh2ZXJzaW9uKQorCisgICAg
ICAgICAgICAjIFRlc3QgdGhhdCB0aGUgdmVyc2lvbiBpbnN0YW5jZSBmb3JtIHdvcmtzCisgICAg
ICAgICAgICBhc3NlcnQgTGVnYWN5VmVyc2lvbih2ZXJzaW9uKSBub3QgaW4gc3BlYworICAgICAg
ICAgICAgYXNzZXJ0IG5vdCBzcGVjLmNvbnRhaW5zKExlZ2FjeVZlcnNpb24odmVyc2lvbikpCisK
KyAgICBkZWYgdGVzdF9zcGVjaWZpZXJfZXhwbGljaXRfcHJlcmVsZWFzZXMoc2VsZik6CisgICAg
ICAgIHNwZWMgPSBMZWdhY3lTcGVjaWZpZXIoIj49MS4wIikKKyAgICAgICAgYXNzZXJ0IG5vdCBz
cGVjLnByZXJlbGVhc2VzCisgICAgICAgIHNwZWMucHJlcmVsZWFzZXMgPSBUcnVlCisgICAgICAg
IGFzc2VydCBzcGVjLnByZXJlbGVhc2VzCisKKyAgICAgICAgc3BlYyA9IExlZ2FjeVNwZWNpZmll
cigiPj0xLjAiLCBwcmVyZWxlYXNlcz1GYWxzZSkKKyAgICAgICAgYXNzZXJ0IG5vdCBzcGVjLnBy
ZXJlbGVhc2VzCisgICAgICAgIHNwZWMucHJlcmVsZWFzZXMgPSBUcnVlCisgICAgICAgIGFzc2Vy
dCBzcGVjLnByZXJlbGVhc2VzCisKKyAgICAgICAgc3BlYyA9IExlZ2FjeVNwZWNpZmllcigiPj0x
LjAiLCBwcmVyZWxlYXNlcz1UcnVlKQorICAgICAgICBhc3NlcnQgc3BlYy5wcmVyZWxlYXNlcwor
ICAgICAgICBzcGVjLnByZXJlbGVhc2VzID0gRmFsc2UKKyAgICAgICAgYXNzZXJ0IG5vdCBzcGVj
LnByZXJlbGVhc2VzCisKKyAgICAgICAgc3BlYyA9IExlZ2FjeVNwZWNpZmllcigiPj0xLjAiLCBw
cmVyZWxlYXNlcz1UcnVlKQorICAgICAgICBhc3NlcnQgc3BlYy5wcmVyZWxlYXNlcworICAgICAg
ICBzcGVjLnByZXJlbGVhc2VzID0gTm9uZQorICAgICAgICBhc3NlcnQgbm90IHNwZWMucHJlcmVs
ZWFzZXMKKworCitjbGFzcyBUZXN0U3BlY2lmaWVyU2V0OgorICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgidmVyc2lvbiIsIFZFUlNJT05TICsgTEVHQUNZX1ZFUlNJT05TKQorICAgIGRlZiB0
ZXN0X2VtcHR5X3NwZWNpZmllcihzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgc3BlYyA9IFNwZWNp
ZmllclNldChwcmVyZWxlYXNlcz1UcnVlKQorCisgICAgICAgIGFzc2VydCB2ZXJzaW9uIGluIHNw
ZWMKKyAgICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnModmVyc2lvbikKKyAgICAgICAgYXNzZXJ0
IHBhcnNlKHZlcnNpb24pIGluIHNwZWMKKyAgICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnMocGFy
c2UodmVyc2lvbikpCisKKyAgICBkZWYgdGVzdF9zcGVjaWZpZXJfcHJlcmVsZWFzZXNfZXhwbGlj
aXQoc2VsZik6CisgICAgICAgIHNwZWMgPSBTcGVjaWZpZXJTZXQoKQorICAgICAgICBhc3NlcnQg
bm90IHNwZWMucHJlcmVsZWFzZXMKKyAgICAgICAgYXNzZXJ0ICIxLjAuZGV2MSIgbm90IGluIHNw
ZWMKKyAgICAgICAgYXNzZXJ0IG5vdCBzcGVjLmNvbnRhaW5zKCIxLjAuZGV2MSIpCisgICAgICAg
IHNwZWMucHJlcmVsZWFzZXMgPSBUcnVlCisgICAgICAgIGFzc2VydCBzcGVjLnByZXJlbGVhc2Vz
CisgICAgICAgIGFzc2VydCAiMS4wLmRldjEiIGluIHNwZWMKKyAgICAgICAgYXNzZXJ0IHNwZWMu
Y29udGFpbnMoIjEuMC5kZXYxIikKKworICAgICAgICBzcGVjID0gU3BlY2lmaWVyU2V0KHByZXJl
bGVhc2VzPVRydWUpCisgICAgICAgIGFzc2VydCBzcGVjLnByZXJlbGVhc2VzCisgICAgICAgIGFz
c2VydCAiMS4wLmRldjEiIGluIHNwZWMKKyAgICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnMoIjEu
MC5kZXYxIikKKyAgICAgICAgc3BlYy5wcmVyZWxlYXNlcyA9IEZhbHNlCisgICAgICAgIGFzc2Vy
dCBub3Qgc3BlYy5wcmVyZWxlYXNlcworICAgICAgICBhc3NlcnQgIjEuMC5kZXYxIiBub3QgaW4g
c3BlYworICAgICAgICBhc3NlcnQgbm90IHNwZWMuY29udGFpbnMoIjEuMC5kZXYxIikKKworICAg
ICAgICBzcGVjID0gU3BlY2lmaWVyU2V0KHByZXJlbGVhc2VzPVRydWUpCisgICAgICAgIGFzc2Vy
dCBzcGVjLnByZXJlbGVhc2VzCisgICAgICAgIGFzc2VydCAiMS4wLmRldjEiIGluIHNwZWMKKyAg
ICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnMoIjEuMC5kZXYxIikKKyAgICAgICAgc3BlYy5wcmVy
ZWxlYXNlcyA9IE5vbmUKKyAgICAgICAgYXNzZXJ0IG5vdCBzcGVjLnByZXJlbGVhc2VzCisgICAg
ICAgIGFzc2VydCAiMS4wLmRldjEiIG5vdCBpbiBzcGVjCisgICAgICAgIGFzc2VydCBub3Qgc3Bl
Yy5jb250YWlucygiMS4wLmRldjEiKQorCisgICAgZGVmIHRlc3Rfc3BlY2lmaWVyX2NvbnRhaW5z
X3ByZXJlbGVhc2VzKHNlbGYpOgorICAgICAgICBzcGVjID0gU3BlY2lmaWVyU2V0KCkKKyAgICAg
ICAgYXNzZXJ0IHNwZWMucHJlcmVsZWFzZXMgaXMgTm9uZQorICAgICAgICBhc3NlcnQgbm90IHNw
ZWMuY29udGFpbnMoIjEuMC5kZXYxIikKKyAgICAgICAgYXNzZXJ0IHNwZWMuY29udGFpbnMoIjEu
MC5kZXYxIiwgcHJlcmVsZWFzZXM9VHJ1ZSkKKworICAgICAgICBzcGVjID0gU3BlY2lmaWVyU2V0
KHByZXJlbGVhc2VzPVRydWUpCisgICAgICAgIGFzc2VydCBzcGVjLnByZXJlbGVhc2VzCisgICAg
ICAgIGFzc2VydCBzcGVjLmNvbnRhaW5zKCIxLjAuZGV2MSIpCisgICAgICAgIGFzc2VydCBub3Qg
c3BlYy5jb250YWlucygiMS4wLmRldjEiLCBwcmVyZWxlYXNlcz1GYWxzZSkKKworICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJzcGVjaWZpZXIiLCAic3BlY2lmaWVyX3By
ZXJlbGVhc2VzIiwgInByZXJlbGVhc2VzIiwgImlucHV0IiwgImV4cGVjdGVkIiksCisgICAgICAg
IFsKKyAgICAgICAgICAgICMgR2VuZXJhbCB0ZXN0IG9mIHRoZSBmaWx0ZXIgbWV0aG9kCisgICAg
ICAgICAgICAoIiIsIE5vbmUsIE5vbmUsIFsiMS4wIiwgIjIuMGExIl0sIFsiMS4wIl0pLAorICAg
ICAgICAgICAgKCI+PTEuMC5kZXYxIiwgTm9uZSwgTm9uZSwgWyIxLjAiLCAiMi4wYTEiXSwgWyIx
LjAiLCAiMi4wYTEiXSksCisgICAgICAgICAgICAoIiIsIE5vbmUsIE5vbmUsIFsiMS4wYTEiXSwg
WyIxLjBhMSJdKSwKKyAgICAgICAgICAgICgiIiwgTm9uZSwgTm9uZSwgWyIxLjAiLCBWZXJzaW9u
KCIyLjAiKV0sIFsiMS4wIiwgVmVyc2lvbigiMi4wIildKSwKKyAgICAgICAgICAgICgiIiwgTm9u
ZSwgTm9uZSwgWyIyLjBkb2ciLCAiMS4wIl0sIFsiMS4wIl0pLAorICAgICAgICAgICAgIyBUZXN0
IG92ZXJyaWRpbmcgd2l0aCB0aGUgcHJlcmVsZWFzZXMgcGFyYW1ldGVyIG9uIGZpbHRlcgorICAg
ICAgICAgICAgKCIiLCBOb25lLCBGYWxzZSwgWyIxLjBhMSJdLCBbXSksCisgICAgICAgICAgICAo
Ij49MS4wLmRldjEiLCBOb25lLCBGYWxzZSwgWyIxLjAiLCAiMi4wYTEiXSwgWyIxLjAiXSksCisg
ICAgICAgICAgICAoIiIsIE5vbmUsIFRydWUsIFsiMS4wIiwgIjIuMGExIl0sIFsiMS4wIiwgIjIu
MGExIl0pLAorICAgICAgICAgICAgIyBUZXN0IG92ZXJyaWRpbmcgd2l0aCB0aGUgb3ZlcmFsbCBz
cGVjaWZpZXIKKyAgICAgICAgICAgICgiIiwgVHJ1ZSwgTm9uZSwgWyIxLjAiLCAiMi4wYTEiXSwg
WyIxLjAiLCAiMi4wYTEiXSksCisgICAgICAgICAgICAoIiIsIEZhbHNlLCBOb25lLCBbIjEuMCIs
ICIyLjBhMSJdLCBbIjEuMCJdKSwKKyAgICAgICAgICAgICgiPj0xLjAuZGV2MSIsIFRydWUsIE5v
bmUsIFsiMS4wIiwgIjIuMGExIl0sIFsiMS4wIiwgIjIuMGExIl0pLAorICAgICAgICAgICAgKCI+
PTEuMC5kZXYxIiwgRmFsc2UsIE5vbmUsIFsiMS4wIiwgIjIuMGExIl0sIFsiMS4wIl0pLAorICAg
ICAgICAgICAgKCIiLCBUcnVlLCBOb25lLCBbIjEuMGExIl0sIFsiMS4wYTEiXSksCisgICAgICAg
ICAgICAoIiIsIEZhbHNlLCBOb25lLCBbIjEuMGExIl0sIFtdKSwKKyAgICAgICAgXSwKKyAgICAp
CisgICAgZGVmIHRlc3Rfc3BlY2lmaWVyX2ZpbHRlcigKKyAgICAgICAgc2VsZiwgc3BlY2lmaWVy
X3ByZXJlbGVhc2VzLCBzcGVjaWZpZXIsIHByZXJlbGVhc2VzLCBpbnB1dCwgZXhwZWN0ZWQKKyAg
ICApOgorICAgICAgICBpZiBzcGVjaWZpZXJfcHJlcmVsZWFzZXMgaXMgTm9uZToKKyAgICAgICAg
ICAgIHNwZWMgPSBTcGVjaWZpZXJTZXQoc3BlY2lmaWVyKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgc3BlYyA9IFNwZWNpZmllclNldChzcGVjaWZpZXIsIHByZXJlbGVhc2VzPXNwZWNpZmll
cl9wcmVyZWxlYXNlcykKKworICAgICAgICBrd2FyZ3MgPSB7InByZXJlbGVhc2VzIjogcHJlcmVs
ZWFzZXN9IGlmIHByZXJlbGVhc2VzIGlzIG5vdCBOb25lIGVsc2Uge30KKworICAgICAgICBhc3Nl
cnQgbGlzdChzcGVjLmZpbHRlcihpbnB1dCwgKiprd2FyZ3MpKSA9PSBleHBlY3RlZAorCisgICAg
ZGVmIHRlc3RfbGVnYWN5X3NwZWNpZmllcnNfY29tYmluZWQoc2VsZik6CisgICAgICAgIHNwZWMg
PSBTcGVjaWZpZXJTZXQoIjwzLD4xLTEtMSIpCisgICAgICAgIGFzc2VydCAiMi4wIiBpbiBzcGVj
CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgic3BlY2lmaWVyIiwg
ImV4cGVjdGVkIiksCisgICAgICAgIFsKKyAgICAgICAgICAgICMgU2luZ2xlIGl0ZW0gc3BlY2lm
aWVycyBzaG91bGQganVzdCBiZSByZWZsZXhpdmUKKyAgICAgICAgICAgICgiIT0yLjAiLCAiIT0y
LjAiKSwKKyAgICAgICAgICAgICgiPDIuMCIsICI8Mi4wIiksCisgICAgICAgICAgICAoIjw9Mi4w
IiwgIjw9Mi4wIiksCisgICAgICAgICAgICAoIj09Mi4wIiwgIj09Mi4wIiksCisgICAgICAgICAg
ICAoIj4yLjAiLCAiPjIuMCIpLAorICAgICAgICAgICAgKCI+PTIuMCIsICI+PTIuMCIpLAorICAg
ICAgICAgICAgKCJ+PTIuMCIsICJ+PTIuMCIpLAorICAgICAgICAgICAgIyBTcGFjZXMgc2hvdWxk
IGJlIHJlbW92ZWQKKyAgICAgICAgICAgICgiPCAyIiwgIjwyIiksCisgICAgICAgICAgICAjIE11
bHRpcGxlIGl0ZW0gc3BlY2lmaWVycyBzaG91bGQgd29yaworICAgICAgICAgICAgKCIhPTIuMCw+
MS4wIiwgIiE9Mi4wLD4xLjAiKSwKKyAgICAgICAgICAgICgiIT0yLjAgLD4xLjAiLCAiIT0yLjAs
PjEuMCIpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9zcGVjaWZpZXJzX3N0cl9h
bmRfcmVwcihzZWxmLCBzcGVjaWZpZXIsIGV4cGVjdGVkKToKKyAgICAgICAgc3BlYyA9IFNwZWNp
ZmllclNldChzcGVjaWZpZXIpCisKKyAgICAgICAgYXNzZXJ0IHN0cihzcGVjKSA9PSBleHBlY3Rl
ZAorICAgICAgICBhc3NlcnQgcmVwcihzcGVjKSA9PSAiPFNwZWNpZmllclNldCh7MH0pPiIuZm9y
bWF0KHJlcHIoZXhwZWN0ZWQpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzcGVj
aWZpZXIiLCBTUEVDSUZJRVJTICsgTEVHQUNZX1NQRUNJRklFUlMpCisgICAgZGVmIHRlc3Rfc3Bl
Y2lmaWVyc19oYXNoKHNlbGYsIHNwZWNpZmllcik6CisgICAgICAgIGFzc2VydCBoYXNoKFNwZWNp
ZmllclNldChzcGVjaWZpZXIpKSA9PSBoYXNoKFNwZWNpZmllclNldChzcGVjaWZpZXIpKQorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoImxlZnQiLCAicmlnaHQiLCAi
ZXhwZWN0ZWQiKSwgWygiPjIuMCIsICI8NS4wIiwgIj4yLjAsPDUuMCIpXQorICAgICkKKyAgICBk
ZWYgdGVzdF9zcGVjaWZpZXJzX2NvbWJpbmUoc2VsZiwgbGVmdCwgcmlnaHQsIGV4cGVjdGVkKToK
KyAgICAgICAgcmVzdWx0ID0gU3BlY2lmaWVyU2V0KGxlZnQpICYgU3BlY2lmaWVyU2V0KHJpZ2h0
KQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFNwZWNpZmllclNldChleHBlY3RlZCkKKworICAg
ICAgICByZXN1bHQgPSBTcGVjaWZpZXJTZXQobGVmdCkgJiByaWdodAorICAgICAgICBhc3NlcnQg
cmVzdWx0ID09IFNwZWNpZmllclNldChleHBlY3RlZCkKKworICAgICAgICByZXN1bHQgPSBTcGVj
aWZpZXJTZXQobGVmdCwgcHJlcmVsZWFzZXM9VHJ1ZSkgJiBTcGVjaWZpZXJTZXQocmlnaHQpCisg
ICAgICAgIGFzc2VydCByZXN1bHQgPT0gU3BlY2lmaWVyU2V0KGV4cGVjdGVkKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnByZXJlbGVhc2VzCisKKyAgICAgICAgcmVzdWx0ID0gU3BlY2lmaWVyU2V0
KGxlZnQsIHByZXJlbGVhc2VzPUZhbHNlKSAmIFNwZWNpZmllclNldChyaWdodCkKKyAgICAgICAg
YXNzZXJ0IHJlc3VsdCA9PSBTcGVjaWZpZXJTZXQoZXhwZWN0ZWQpCisgICAgICAgIGFzc2VydCBu
b3QgcmVzdWx0LnByZXJlbGVhc2VzCisKKyAgICAgICAgcmVzdWx0ID0gU3BlY2lmaWVyU2V0KGxl
ZnQpICYgU3BlY2lmaWVyU2V0KHJpZ2h0LCBwcmVyZWxlYXNlcz1UcnVlKQorICAgICAgICBhc3Nl
cnQgcmVzdWx0ID09IFNwZWNpZmllclNldChleHBlY3RlZCkKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dC5wcmVyZWxlYXNlcworCisgICAgICAgIHJlc3VsdCA9IFNwZWNpZmllclNldChsZWZ0KSAmIFNw
ZWNpZmllclNldChyaWdodCwgcHJlcmVsZWFzZXM9RmFsc2UpCisgICAgICAgIGFzc2VydCByZXN1
bHQgPT0gU3BlY2lmaWVyU2V0KGV4cGVjdGVkKQorICAgICAgICBhc3NlcnQgbm90IHJlc3VsdC5w
cmVyZWxlYXNlcworCisgICAgICAgIHJlc3VsdCA9IFNwZWNpZmllclNldChsZWZ0LCBwcmVyZWxl
YXNlcz1UcnVlKSAmIFNwZWNpZmllclNldCgKKyAgICAgICAgICAgIHJpZ2h0LCBwcmVyZWxlYXNl
cz1UcnVlCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBTcGVjaWZpZXJTZXQo
ZXhwZWN0ZWQpCisgICAgICAgIGFzc2VydCByZXN1bHQucHJlcmVsZWFzZXMKKworICAgICAgICBy
ZXN1bHQgPSBTcGVjaWZpZXJTZXQobGVmdCwgcHJlcmVsZWFzZXM9RmFsc2UpICYgU3BlY2lmaWVy
U2V0KAorICAgICAgICAgICAgcmlnaHQsIHByZXJlbGVhc2VzPUZhbHNlCisgICAgICAgICkKKyAg
ICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBTcGVjaWZpZXJTZXQoZXhwZWN0ZWQpCisgICAgICAgIGFz
c2VydCBub3QgcmVzdWx0LnByZXJlbGVhc2VzCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2Vz
KFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgcmVzdWx0ID0gU3BlY2lmaWVyU2V0KGxlZnQsIHBy
ZXJlbGVhc2VzPVRydWUpICYgU3BlY2lmaWVyU2V0KAorICAgICAgICAgICAgICAgIHJpZ2h0LCBw
cmVyZWxlYXNlcz1GYWxzZQorICAgICAgICAgICAgKQorCisgICAgICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIHJlc3VsdCA9IFNwZWNpZmllclNldChsZWZ0
LCBwcmVyZWxlYXNlcz1GYWxzZSkgJiBTcGVjaWZpZXJTZXQoCisgICAgICAgICAgICAgICAgcmln
aHQsIHByZXJlbGVhc2VzPVRydWUKKyAgICAgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3NwZWNp
ZmllcnNfY29tYmluZV9ub3RfaW1wbGVtZW50ZWQoc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgU3BlY2lmaWVyU2V0KCkgJiAxMgorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoImxlZnQiLCAicmlnaHQiLCAi
b3AiKSwKKyAgICAgICAgaXRlcnRvb2xzLmNoYWluKAorICAgICAgICAgICAgKgorICAgICAgICAg
ICAgIyBWZXJpZnkgdGhhdCB0aGUgZXF1YWwgKD09KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkK
KyAgICAgICAgICAgIFtbKHgsIHgsIG9wZXJhdG9yLmVxKSBmb3IgeCBpbiBTUEVDSUZJRVJTXV0K
KyAgICAgICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIG5vdCBlcXVhbCAo
IT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgWworICAgICAgICAgICAg
ICAgIFsoeCwgeSwgb3BlcmF0b3IubmUpIGZvciBqLCB5IGluIGVudW1lcmF0ZShTUEVDSUZJRVJT
KSBpZiBpICE9IGpdCisgICAgICAgICAgICAgICAgZm9yIGksIHggaW4gZW51bWVyYXRlKFNQRUNJ
RklFUlMpCisgICAgICAgICAgICBdCisgICAgICAgICksCisgICAgKQorICAgIGRlZiB0ZXN0X2Nv
bXBhcmlzb25fdHJ1ZShzZWxmLCBsZWZ0LCByaWdodCwgb3ApOgorICAgICAgICBhc3NlcnQgb3Ao
U3BlY2lmaWVyU2V0KGxlZnQpLCBTcGVjaWZpZXJTZXQocmlnaHQpKQorICAgICAgICBhc3NlcnQg
b3AoU3BlY2lmaWVyU2V0KGxlZnQpLCBTcGVjaWZpZXIocmlnaHQpKQorICAgICAgICBhc3NlcnQg
b3AoU3BlY2lmaWVyKGxlZnQpLCBTcGVjaWZpZXJTZXQocmlnaHQpKQorICAgICAgICBhc3NlcnQg
b3AobGVmdCwgU3BlY2lmaWVyU2V0KHJpZ2h0KSkKKyAgICAgICAgYXNzZXJ0IG9wKFNwZWNpZmll
clNldChsZWZ0KSwgcmlnaHQpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAg
ICAgICgibGVmdCIsICJyaWdodCIsICJvcCIpLAorICAgICAgICBpdGVydG9vbHMuY2hhaW4oCisg
ICAgICAgICAgICAqCisgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBlcXVhbCAoPT0pIG9w
ZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgW1soeCwgeCwgb3BlcmF0b3IubmUp
IGZvciB4IGluIFNQRUNJRklFUlNdXQorICAgICAgICAgICAgKworICAgICAgICAgICAgIyBWZXJp
ZnkgdGhhdCB0aGUgbm90IGVxdWFsICghPSkgb3BlcmF0b3Igd29ya3MgY29ycmVjdGx5CisgICAg
ICAgICAgICBbCisgICAgICAgICAgICAgICAgWyh4LCB5LCBvcGVyYXRvci5lcSkgZm9yIGosIHkg
aW4gZW51bWVyYXRlKFNQRUNJRklFUlMpIGlmIGkgIT0gal0KKyAgICAgICAgICAgICAgICBmb3Ig
aSwgeCBpbiBlbnVtZXJhdGUoU1BFQ0lGSUVSUykKKyAgICAgICAgICAgIF0KKyAgICAgICAgKSwK
KyAgICApCisgICAgZGVmIHRlc3RfY29tcGFyaXNvbl9mYWxzZShzZWxmLCBsZWZ0LCByaWdodCwg
b3ApOgorICAgICAgICBhc3NlcnQgbm90IG9wKFNwZWNpZmllclNldChsZWZ0KSwgU3BlY2lmaWVy
U2V0KHJpZ2h0KSkKKyAgICAgICAgYXNzZXJ0IG5vdCBvcChTcGVjaWZpZXJTZXQobGVmdCksIFNw
ZWNpZmllcihyaWdodCkpCisgICAgICAgIGFzc2VydCBub3Qgb3AoU3BlY2lmaWVyKGxlZnQpLCBT
cGVjaWZpZXJTZXQocmlnaHQpKQorICAgICAgICBhc3NlcnQgbm90IG9wKGxlZnQsIFNwZWNpZmll
clNldChyaWdodCkpCisgICAgICAgIGFzc2VydCBub3Qgb3AoU3BlY2lmaWVyU2V0KGxlZnQpLCBy
aWdodCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoImxlZnQiLCAicmlnaHQiKSwg
WygiPT0yLjguMCIsICI9PTIuOCIpXSkKKyAgICBkZWYgdGVzdF9jb21wYXJpc29uX2Nhbm9uaWNh
bGl6ZXMoc2VsZiwgbGVmdCwgcmlnaHQpOgorICAgICAgICBhc3NlcnQgU3BlY2lmaWVyU2V0KGxl
ZnQpID09IFNwZWNpZmllclNldChyaWdodCkKKyAgICAgICAgYXNzZXJ0IGxlZnQgPT0gU3BlY2lm
aWVyU2V0KHJpZ2h0KQorICAgICAgICBhc3NlcnQgU3BlY2lmaWVyU2V0KGxlZnQpID09IHJpZ2h0
CisKKyAgICBkZWYgdGVzdF9jb21wYXJpc29uX25vbl9zcGVjaWZpZXIoc2VsZik6CisgICAgICAg
IGFzc2VydCBTcGVjaWZpZXJTZXQoIj09MS4wIikgIT0gMTIKKyAgICAgICAgYXNzZXJ0IG5vdCBT
cGVjaWZpZXJTZXQoIj09MS4wIikgPT0gMTIKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgKKyAgICAgICAgKCJ2ZXJzaW9uIiwgInNwZWNpZmllciIsICJleHBlY3RlZCIpLAorICAgICAg
ICBbCisgICAgICAgICAgICAoIjEuMC4wK2xvY2FsIiwgIj09MS4wLjAiLCBUcnVlKSwKKyAgICAg
ICAgICAgICgiMS4wLjArbG9jYWwiLCAiIT0xLjAuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgi
MS4wLjArbG9jYWwiLCAiPD0xLjAuMCIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjAuMCtsb2Nh
bCIsICI+PTEuMC4wIiwgVHJ1ZSksCisgICAgICAgICAgICAoIjEuMC4wK2xvY2FsIiwgIjwxLjAu
MCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMS4wLjArbG9jYWwiLCAiPjEuMC4wIiwgRmFsc2Up
LAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9jb21wYXJpc29uX2lnbm9yZXNfbG9j
YWwoc2VsZiwgdmVyc2lvbiwgc3BlY2lmaWVyLCBleHBlY3RlZCk6CisgICAgICAgIGFzc2VydCAo
VmVyc2lvbih2ZXJzaW9uKSBpbiBTcGVjaWZpZXJTZXQoc3BlY2lmaWVyKSkgPT0gZXhwZWN0ZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL3Rlc3Rfc3RydWN0dXJlcy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL3Rlc3RzL3Rlc3Rfc3RydWN0dXJlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2IxODk2
Yzc5NzNkNGM0NzEzYTEwNjUwY2Q4MmRkM2EzZTVlNTlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF9zdHJ1Y3R1cmVzLnB5CkBAIC0wLDAgKzEsNjAgQEAKKyMg
VGhpcyBmaWxlIGlzIGR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBBcGFjaGUg
TGljZW5zZSwgVmVyc2lvbgorIyAyLjAsIGFuZCB0aGUgQlNEIExpY2Vuc2UuIFNlZSB0aGUgTElD
RU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoaXMgcmVwb3NpdG9yeQorIyBmb3IgY29tcGxldGUg
ZGV0YWlscy4KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lv
biwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHBhY2thZ2luZy5fc3Ry
dWN0dXJlcyBpbXBvcnQgSW5maW5pdHksIE5lZ2F0aXZlSW5maW5pdHkKKworCitkZWYgdGVzdF9p
bmZpbml0eV9yZXByKCk6CisgICAgcmVwcihJbmZpbml0eSkgPT0gIkluZmluaXR5IgorCisKK2Rl
ZiB0ZXN0X25lZ2F0aXZlX2luZmluaXR5X3JlcHIoKToKKyAgICByZXByKE5lZ2F0aXZlSW5maW5p
dHkpID09ICItSW5maW5pdHkiCisKKworZGVmIHRlc3RfaW5maW5pdHlfaGFzaCgpOgorICAgIGFz
c2VydCBoYXNoKEluZmluaXR5KSA9PSBoYXNoKEluZmluaXR5KQorCisKK2RlZiB0ZXN0X25lZ2F0
aXZlX2luZmluaXR5X2hhc2goKToKKyAgICBhc3NlcnQgaGFzaChOZWdhdGl2ZUluZmluaXR5KSA9
PSBoYXNoKE5lZ2F0aXZlSW5maW5pdHkpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJs
ZWZ0IiwgWzEsICJhIiwgKCJiIiwgNCldKQorZGVmIHRlc3RfaW5maW5pdHlfY29tcGFyaXNvbihs
ZWZ0KToKKyAgICBhc3NlcnQgbGVmdCA8IEluZmluaXR5CisgICAgYXNzZXJ0IGxlZnQgPD0gSW5m
aW5pdHkKKyAgICBhc3NlcnQgbm90IGxlZnQgPT0gSW5maW5pdHkKKyAgICBhc3NlcnQgbGVmdCAh
PSBJbmZpbml0eQorICAgIGFzc2VydCBub3QgbGVmdCA+IEluZmluaXR5CisgICAgYXNzZXJ0IG5v
dCBsZWZ0ID49IEluZmluaXR5CisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJsZWZ0Iiwg
WzEsICJhIiwgKCJiIiwgNCldKQorZGVmIHRlc3RfbmVnYXRpdmVfaW5maW5pdHlfbGVzc2VyKGxl
ZnQpOgorICAgIGFzc2VydCBub3QgbGVmdCA8IE5lZ2F0aXZlSW5maW5pdHkKKyAgICBhc3NlcnQg
bm90IGxlZnQgPD0gTmVnYXRpdmVJbmZpbml0eQorICAgIGFzc2VydCBub3QgbGVmdCA9PSBOZWdh
dGl2ZUluZmluaXR5CisgICAgYXNzZXJ0IGxlZnQgIT0gTmVnYXRpdmVJbmZpbml0eQorICAgIGFz
c2VydCBsZWZ0ID4gTmVnYXRpdmVJbmZpbml0eQorICAgIGFzc2VydCBsZWZ0ID49IE5lZ2F0aXZl
SW5maW5pdHkKKworCitkZWYgdGVzdF9pbmZpbnR5X2VxdWFsKCk6CisgICAgYXNzZXJ0IEluZmlu
aXR5ID09IEluZmluaXR5CisKKworZGVmIHRlc3RfbmVnYXRpdmVfaW5maW5pdHlfZXF1YWwoKToK
KyAgICBhc3NlcnQgTmVnYXRpdmVJbmZpbml0eSA9PSBOZWdhdGl2ZUluZmluaXR5CisKKworZGVm
IHRlc3RfbmVnYXRlX2luZmluaXR5KCk6CisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoLUluZmluaXR5
LCBOZWdhdGl2ZUluZmluaXR5Ll9fY2xhc3NfXykKKworCitkZWYgdGVzdF9uZWdhdGVfbmVnYXRp
dmVfaW5maW5pdHkoKToKKyAgICBhc3NlcnQgaXNpbnN0YW5jZSgtTmVnYXRpdmVJbmZpbml0eSwg
SW5maW5pdHkuX19jbGFzc19fKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVz
dF90YWdzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF90YWdzLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY4YjEwOWE4OWYzMzFhMDQ4ZTAwNDkxYjAzMTBhNjJjNDNiNzE5ZDcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3RhZ3MucHkKQEAgLTAsMCArMSwxMzY0IEBA
CisjIFRoaXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQXBh
Y2hlIExpY2Vuc2UsIFZlcnNpb24KKyMgMi4wLCBhbmQgdGhlIEJTRCBMaWNlbnNlLiBTZWUgdGhl
IExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGlzIHJlcG9zaXRvcnkKKyMgZm9yIGNvbXBs
ZXRlIGRldGFpbHMuCisKK3RyeToKKyAgICBpbXBvcnQgY29sbGVjdGlvbnMuYWJjIGFzIGNvbGxl
Y3Rpb25zX2FiYworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCBjb2xsZWN0aW9ucyBh
cyBjb2xsZWN0aW9uc19hYmMKKwordHJ5OgorICAgIGltcG9ydCBjdHlwZXMKK2V4Y2VwdCBJbXBv
cnRFcnJvcjoKKyAgICBjdHlwZXMgPSBOb25lCitpbXBvcnQgZGlzdHV0aWxzLnV0aWwKKworaW1w
b3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCByZQoraW1wb3J0IHN5cworaW1wb3J0IHN5
c2NvbmZpZworaW1wb3J0IHR5cGVzCitpbXBvcnQgd2FybmluZ3MKKworaW1wb3J0IHByZXRlbmQK
K2ltcG9ydCBweXRlc3QKKworZnJvbSBwYWNrYWdpbmcgaW1wb3J0IHRhZ3MKKworCitAcHl0ZXN0
LmZpeHR1cmUKK2RlZiBleGFtcGxlX3RhZygpOgorICAgIHJldHVybiB0YWdzLlRhZygicHkzIiwg
Im5vbmUiLCAiYW55IikKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBpc194ODYoKToKKyAgICBy
ZXR1cm4gcmUubWF0Y2gociIoaVxkODZ8eDg2XzY0KSIsIHBsYXRmb3JtLm1hY2hpbmUoKSkgaXMg
bm90IE5vbmUKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBtYW55bGludXhfbW9kdWxlKG1vbmtl
eXBhdGNoKToKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfZ2V0X2dsaWJjX3ZlcnNp
b24iLCBsYW1iZGEgKmFyZ3M6ICgyLCAyMCkpCisgICAgbW9kdWxlX25hbWUgPSAiX21hbnlsaW51
eCIKKyAgICBtb2R1bGUgPSB0eXBlcy5Nb2R1bGVUeXBlKG1vZHVsZV9uYW1lKQorICAgIG1vbmtl
eXBhdGNoLnNldGl0ZW0oc3lzLm1vZHVsZXMsIG1vZHVsZV9uYW1lLCBtb2R1bGUpCisgICAgcmV0
dXJuIG1vZHVsZQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG1vY2tfaW50ZXJwcmV0ZXJfbmFt
ZShtb25rZXlwYXRjaCk6CisgICAgZGVmIG1vY2sobmFtZSk6CisgICAgICAgIGlmIGhhc2F0dHIo
c3lzLCAiaW1wbGVtZW50YXRpb24iKSBhbmQgc3lzLmltcGxlbWVudGF0aW9uLm5hbWUgIT0gbmFt
ZS5sb3dlcigpOgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMuaW1wbGVtZW50
YXRpb24sICJuYW1lIiwgbmFtZS5sb3dlcigpKQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAg
ICAgICAgZWxpZiBwbGF0Zm9ybS5weXRob25faW1wbGVtZW50YXRpb24oKSAhPSBuYW1lOgorICAg
ICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihwbGF0Zm9ybSwgInB5dGhvbl9pbXBsZW1lbnRh
dGlvbiIsIGxhbWJkYTogbmFtZSkKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgcmV0dXJuIG1vY2sKKworCitjbGFzcyBUZXN0VGFnOgorICAgIGRl
ZiB0ZXN0X2xvd2VyY2FzaW5nKHNlbGYpOgorICAgICAgICB0YWcgPSB0YWdzLlRhZygiUFkzIiwg
Ik5vbmUiLCAiQU5ZIikKKyAgICAgICAgYXNzZXJ0IHRhZy5pbnRlcnByZXRlciA9PSAicHkzIgor
ICAgICAgICBhc3NlcnQgdGFnLmFiaSA9PSAibm9uZSIKKyAgICAgICAgYXNzZXJ0IHRhZy5wbGF0
Zm9ybSA9PSAiYW55IgorCisgICAgZGVmIHRlc3RfZXF1YWxpdHkoc2VsZik6CisgICAgICAgIGFy
Z3MgPSAicHkzIiwgIm5vbmUiLCAiYW55IgorICAgICAgICBhc3NlcnQgdGFncy5UYWcoKmFyZ3Mp
ID09IHRhZ3MuVGFnKCphcmdzKQorCisgICAgZGVmIHRlc3RfZXF1YWxpdHlfZmFpbHNfd2l0aF9u
b25fdGFnKHNlbGYpOgorICAgICAgICBhc3NlcnQgbm90IHRhZ3MuVGFnKCJweTMiLCAibm9uZSIs
ICJhbnkiKSA9PSAibm9uLXRhZyIKKworICAgIGRlZiB0ZXN0X2hhc2hpbmcoc2VsZiwgZXhhbXBs
ZV90YWcpOgorICAgICAgICB0YWdzID0ge2V4YW1wbGVfdGFnfSAgIyBTaG91bGQgbm90IHJhaXNl
IFR5cGVFcnJvci4KKyAgICAgICAgYXNzZXJ0IGV4YW1wbGVfdGFnIGluIHRhZ3MKKworICAgIGRl
ZiB0ZXN0X2hhc2hfZXF1YWxpdHkoc2VsZiwgZXhhbXBsZV90YWcpOgorICAgICAgICBlcXVhbF90
YWcgPSB0YWdzLlRhZygicHkzIiwgIm5vbmUiLCAiYW55IikKKyAgICAgICAgYXNzZXJ0IGV4YW1w
bGVfdGFnID09IGVxdWFsX3RhZyAgIyBTYW5pdHkgY2hlY2suCisgICAgICAgIGFzc2VydCBleGFt
cGxlX3RhZy5fX2hhc2hfXygpID09IGVxdWFsX3RhZy5fX2hhc2hfXygpCisKKyAgICBkZWYgdGVz
dF9zdHIoc2VsZiwgZXhhbXBsZV90YWcpOgorICAgICAgICBhc3NlcnQgc3RyKGV4YW1wbGVfdGFn
KSA9PSAicHkzLW5vbmUtYW55IgorCisgICAgZGVmIHRlc3RfcmVwcihzZWxmLCBleGFtcGxlX3Rh
Zyk6CisgICAgICAgIGFzc2VydCByZXByKGV4YW1wbGVfdGFnKSA9PSAiPHB5My1ub25lLWFueSBA
IHt0YWdfaWR9PiIuZm9ybWF0KAorICAgICAgICAgICAgdGFnX2lkPWlkKGV4YW1wbGVfdGFnKQor
ICAgICAgICApCisKKyAgICBkZWYgdGVzdF9hdHRyaWJ1dGVfYWNjZXNzKHNlbGYsIGV4YW1wbGVf
dGFnKToKKyAgICAgICAgYXNzZXJ0IGV4YW1wbGVfdGFnLmludGVycHJldGVyID09ICJweTMiCisg
ICAgICAgIGFzc2VydCBleGFtcGxlX3RhZy5hYmkgPT0gIm5vbmUiCisgICAgICAgIGFzc2VydCBl
eGFtcGxlX3RhZy5wbGF0Zm9ybSA9PSAiYW55IgorCisKK2NsYXNzIFRlc3RXYXJuS2V5d29yZE9u
bHlQYXJhbWV0ZXI6CisgICAgZGVmIHRlc3Rfbm9fYXJndW1lbnQoc2VsZik6CisgICAgICAgIGFz
c2VydCBub3QgdGFncy5fd2Fybl9rZXl3b3JkX3BhcmFtZXRlcigidGVzdF93YXJuX2tleXdvcmRf
cGFyYW1ldGVycyIsIHt9KQorCisgICAgZGVmIHRlc3RfZmFsc2Uoc2VsZik6CisgICAgICAgIGFz
c2VydCBub3QgdGFncy5fd2Fybl9rZXl3b3JkX3BhcmFtZXRlcigKKyAgICAgICAgICAgICJ0ZXN0
X3dhcm5fa2V5d29yZF9wYXJhbWV0ZXJzIiwgeyJ3YXJuIjogRmFsc2V9CisgICAgICAgICkKKwor
ICAgIGRlZiB0ZXN0X3RydWUoc2VsZik6CisgICAgICAgIGFzc2VydCB0YWdzLl93YXJuX2tleXdv
cmRfcGFyYW1ldGVyKAorICAgICAgICAgICAgInRlc3Rfd2Fybl9rZXl3b3JkX3BhcmFtZXRlcnMi
LCB7Indhcm4iOiBUcnVlfQorICAgICAgICApCisKKyAgICBkZWYgdGVzdF90b29fbWFueV9hcmd1
bWVudHMoc2VsZik6CisgICAgICAgIG1lc3NhZ2VfcmUgPSByZS5jb21waWxlKHIidG9vX21hbnku
K3shcn0iLmZvcm1hdCgid2hhdGV2ZXIiKSkKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5
cGVFcnJvciwgbWF0Y2g9bWVzc2FnZV9yZSk6CisgICAgICAgICAgICB0YWdzLl93YXJuX2tleXdv
cmRfcGFyYW1ldGVyKCJ0b29fbWFueSIsIHsid2FybiI6IFRydWUsICJ3aGF0ZXZlciI6IFRydWV9
KQorCisgICAgZGVmIHRlc3Rfd3JvbmdfYXJndW1lbnQoc2VsZik6CisgICAgICAgIG1lc3NhZ2Vf
cmUgPSByZS5jb21waWxlKHIibWlzc2luZy4reyFyfSIuZm9ybWF0KCJ1bmV4cGVjdGVkIikpCisg
ICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IsIG1hdGNoPW1lc3NhZ2VfcmUpOgor
ICAgICAgICAgICAgdGFncy5fd2Fybl9rZXl3b3JkX3BhcmFtZXRlcigibWlzc2luZyIsIHsidW5l
eHBlY3RlZCI6IFRydWV9KQorCisKK2NsYXNzIFRlc3RQYXJzZVRhZzoKKyAgICBkZWYgdGVzdF9z
aW1wbGUoc2VsZiwgZXhhbXBsZV90YWcpOgorICAgICAgICBwYXJzZWRfdGFncyA9IHRhZ3MucGFy
c2VfdGFnKHN0cihleGFtcGxlX3RhZykpCisgICAgICAgIGFzc2VydCBwYXJzZWRfdGFncyA9PSB7
ZXhhbXBsZV90YWd9CisKKyAgICBkZWYgdGVzdF9tdWx0aV9pbnRlcnByZXRlcihzZWxmLCBleGFt
cGxlX3RhZyk6CisgICAgICAgIGV4cGVjdGVkID0ge2V4YW1wbGVfdGFnLCB0YWdzLlRhZygicHky
IiwgIm5vbmUiLCAiYW55Iil9CisgICAgICAgIGdpdmVuID0gdGFncy5wYXJzZV90YWcoInB5Mi5w
eTMtbm9uZS1hbnkiKQorICAgICAgICBhc3NlcnQgZ2l2ZW4gPT0gZXhwZWN0ZWQKKworICAgIGRl
ZiB0ZXN0X211bHRpX3BsYXRmb3JtKHNlbGYpOgorICAgICAgICBleHBlY3RlZCA9IHsKKyAgICAg
ICAgICAgIHRhZ3MuVGFnKCJjcDM3IiwgImNwMzdtIiwgcGxhdGZvcm0pCisgICAgICAgICAgICBm
b3IgcGxhdGZvcm0gaW4gKAorICAgICAgICAgICAgICAgICJtYWNvc3hfMTBfNl9pbnRlbCIsCisg
ICAgICAgICAgICAgICAgIm1hY29zeF8xMF85X2ludGVsIiwKKyAgICAgICAgICAgICAgICAibWFj
b3N4XzEwXzlfeDg2XzY0IiwKKyAgICAgICAgICAgICAgICAibWFjb3N4XzEwXzEwX2ludGVsIiwK
KyAgICAgICAgICAgICAgICAibWFjb3N4XzEwXzEwX3g4Nl82NCIsCisgICAgICAgICAgICApCisg
ICAgICAgIH0KKyAgICAgICAgZ2l2ZW4gPSB0YWdzLnBhcnNlX3RhZygKKyAgICAgICAgICAgICJj
cDM3LWNwMzdtLW1hY29zeF8xMF82X2ludGVsLm1hY29zeF8xMF85X2ludGVsLm1hY29zeF8xMF85
X3g4Nl82NC4iCisgICAgICAgICAgICAibWFjb3N4XzEwXzEwX2ludGVsLm1hY29zeF8xMF8xMF94
ODZfNjQiCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IGdpdmVuID09IGV4cGVjdGVkCisKKwor
Y2xhc3MgVGVzdEludGVycHJldGVyTmFtZToKKyAgICBkZWYgdGVzdF9zeXNfaW1wbGVtZW50YXRp
b25fbmFtZShzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIGNsYXNzIE1vY2tJbXBsZW1lbnRh
dGlvbihvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1vY2tfaW1wbGVtZW50
YXRpb24gPSBNb2NrSW1wbGVtZW50YXRpb24oKQorICAgICAgICBtb2NrX2ltcGxlbWVudGF0aW9u
Lm5hbWUgPSAic2lsbHl3YWxrIgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHN5cywgImlt
cGxlbWVudGF0aW9uIiwgbW9ja19pbXBsZW1lbnRhdGlvbiwgcmFpc2luZz1GYWxzZSkKKyAgICAg
ICAgYXNzZXJ0IHRhZ3MuaW50ZXJwcmV0ZXJfbmFtZSgpID09ICJzaWxseXdhbGsiCisKKyAgICBk
ZWYgdGVzdF9wbGF0Zm9ybShzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNo
LmRlbGF0dHIoc3lzLCAiaW1wbGVtZW50YXRpb24iLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBu
YW1lID0gIlNpbGx5V2FsayIKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihwbGF0Zm9ybSwg
InB5dGhvbl9pbXBsZW1lbnRhdGlvbiIsIGxhbWJkYTogbmFtZSkKKyAgICAgICAgYXNzZXJ0IHRh
Z3MuaW50ZXJwcmV0ZXJfbmFtZSgpID09IG5hbWUubG93ZXIoKQorCisgICAgZGVmIHRlc3RfaW50
ZXJwcmV0ZXJfc2hvcnRfbmFtZXMoc2VsZiwgbW9ja19pbnRlcnByZXRlcl9uYW1lLCBtb25rZXlw
YXRjaCk6CisgICAgICAgIG1vY2tfaW50ZXJwcmV0ZXJfbmFtZSgiY3B5dGhvbiIpCisgICAgICAg
IGFzc2VydCB0YWdzLmludGVycHJldGVyX25hbWUoKSA9PSAiY3AiCisKKworY2xhc3MgVGVzdElu
dGVycHJldGVyVmVyc2lvbjoKKyAgICBkZWYgdGVzdF93YXJuKHNlbGYsIG1vbmtleXBhdGNoKToK
KyAgICAgICAgY2xhc3MgTW9ja0NvbmZpZ1ZhcihvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHJldHVybl8pOgorICAgICAgICAgICAgICAgIHNlbGYud2FybiA9IE5vbmUK
KyAgICAgICAgICAgICAgICBzZWxmLl9yZXR1cm4gPSByZXR1cm5fCisKKyAgICAgICAgICAgIGRl
ZiBfX2NhbGxfXyhzZWxmLCBuYW1lLCB3YXJuKToKKyAgICAgICAgICAgICAgICBzZWxmLndhcm4g
PSB3YXJuCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JldHVybgorCisgICAgICAgIG1v
Y2tfY29uZmlnX3ZhciA9IE1vY2tDb25maWdWYXIoIjM4IikKKyAgICAgICAgbW9ua2V5cGF0Y2gu
c2V0YXR0cih0YWdzLCAiX2dldF9jb25maWdfdmFyIiwgbW9ja19jb25maWdfdmFyKQorICAgICAg
ICB0YWdzLmludGVycHJldGVyX3ZlcnNpb24od2Fybj1UcnVlKQorICAgICAgICBhc3NlcnQgbW9j
a19jb25maWdfdmFyLndhcm4KKworICAgIGRlZiB0ZXN0X3B5dGhvbl92ZXJzaW9uX25vZG90KHNl
bGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2dl
dF9jb25maWdfdmFyIiwgbGFtYmRhIHZhciwgd2FybjogIk5OIikKKyAgICAgICAgYXNzZXJ0IHRh
Z3MuaW50ZXJwcmV0ZXJfdmVyc2lvbigpID09ICJOTiIKKworICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgKKyAgICAgICAgInZlcnNpb25faW5mbyx2ZXJzaW9uX3N0ciIsCisgICAgICAgIFsK
KyAgICAgICAgICAgICgoMSwgMiwgMyksICIxMiIpLAorICAgICAgICAgICAgKCgxLCAxMiwgMyks
ICIxXzEyIiksCisgICAgICAgICAgICAoKDExLCAyLCAzKSwgIjExXzIiKSwKKyAgICAgICAgICAg
ICgoMTEsIDEyLCAzKSwgIjExXzEyIiksCisgICAgICAgICAgICAoKDEsIDIsIDEzKSwgIjEyIiks
CisgICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3N5c192ZXJzaW9uX2luZm8oc2VsZiwg
dmVyc2lvbl9pbmZvLCB2ZXJzaW9uX3N0ciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlw
YXRjaC5zZXRhdHRyKHRhZ3MsICJfZ2V0X2NvbmZpZ192YXIiLCBsYW1iZGEgKmFyZ3MsICoqa3dh
cmdzOiBOb25lKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHN5cywgInZlcnNpb25faW5m
byIsIHZlcnNpb25faW5mbykKKyAgICAgICAgYXNzZXJ0IHRhZ3MuaW50ZXJwcmV0ZXJfdmVyc2lv
bigpID09IHZlcnNpb25fc3RyCisKKworY2xhc3MgVGVzdE1hY09TUGxhdGZvcm1zOgorICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgImFyY2gsIGlzXzMyYml0LCBleHBlY3Rl
ZCIsCisgICAgICAgIFsKKyAgICAgICAgICAgICgiaTM4NiIsIFRydWUsICJpMzg2IiksCisgICAg
ICAgICAgICAoInBwYyIsIFRydWUsICJwcGMiKSwKKyAgICAgICAgICAgICgieDg2XzY0IiwgRmFs
c2UsICJ4ODZfNjQiKSwKKyAgICAgICAgICAgICgieDg2XzY0IiwgVHJ1ZSwgImkzODYiKSwKKyAg
ICAgICAgICAgICgicHBjNjQiLCBGYWxzZSwgInBwYzY0IiksCisgICAgICAgICAgICAoInBwYzY0
IiwgVHJ1ZSwgInBwYyIpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9hcmNoaXRl
Y3R1cmVzKHNlbGYsIGFyY2gsIGlzXzMyYml0LCBleHBlY3RlZCk6CisgICAgICAgIGFzc2VydCB0
YWdzLl9tYWNfYXJjaChhcmNoLCBpc18zMmJpdD1pc18zMmJpdCkgPT0gZXhwZWN0ZWQKKworICAg
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgInZlcnNpb24sYXJjaCxleHBlY3Rl
ZCIsCisgICAgICAgIFsKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAoMTAsIDE1KSwK
KyAgICAgICAgICAgICAgICAieDg2XzY0IiwKKyAgICAgICAgICAgICAgICBbIng4Nl82NCIsICJp
bnRlbCIsICJmYXQ2NCIsICJmYXQzMiIsICJ1bml2ZXJzYWwyIiwgInVuaXZlcnNhbCJdLAorICAg
ICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAoMTAsIDQpLAorICAg
ICAgICAgICAgICAgICJ4ODZfNjQiLAorICAgICAgICAgICAgICAgIFsieDg2XzY0IiwgImludGVs
IiwgImZhdDY0IiwgImZhdDMyIiwgInVuaXZlcnNhbDIiLCAidW5pdmVyc2FsIl0sCisgICAgICAg
ICAgICApLAorICAgICAgICAgICAgKCgxMCwgMyksICJ4ODZfNjQiLCBbXSksCisgICAgICAgICAg
ICAoKDEwLCAxNSksICJpMzg2IiwgWyJpMzg2IiwgImludGVsIiwgImZhdDMyIiwgImZhdCIsICJ1
bml2ZXJzYWwiXSksCisgICAgICAgICAgICAoKDEwLCA0KSwgImkzODYiLCBbImkzODYiLCAiaW50
ZWwiLCAiZmF0MzIiLCAiZmF0IiwgInVuaXZlcnNhbCJdKSwKKyAgICAgICAgICAgICgoMTAsIDMp
LCAiaTM4NiIsIFtdKSwKKyAgICAgICAgICAgICgoMTAsIDE1KSwgInBwYzY0IiwgW10pLAorICAg
ICAgICAgICAgKCgxMCwgNiksICJwcGM2NCIsIFtdKSwKKyAgICAgICAgICAgICgoMTAsIDUpLCAi
cHBjNjQiLCBbInBwYzY0IiwgImZhdDY0IiwgInVuaXZlcnNhbCJdKSwKKyAgICAgICAgICAgICgo
MTAsIDMpLCAicHBjNjQiLCBbXSksCisgICAgICAgICAgICAoKDEwLCAxNSksICJwcGMiLCBbXSks
CisgICAgICAgICAgICAoKDEwLCA3KSwgInBwYyIsIFtdKSwKKyAgICAgICAgICAgICgoMTAsIDYp
LCAicHBjIiwgWyJwcGMiLCAiZmF0MzIiLCAiZmF0IiwgInVuaXZlcnNhbCJdKSwKKyAgICAgICAg
ICAgICgoMTAsIDApLCAicHBjIiwgWyJwcGMiLCAiZmF0MzIiLCAiZmF0IiwgInVuaXZlcnNhbCJd
KSwKKyAgICAgICAgICAgICgoMTEsIDApLCAicmlzY3YiLCBbInJpc2N2Il0pLAorICAgICAgICAg
ICAgKAorICAgICAgICAgICAgICAgICgxMSwgMCksCisgICAgICAgICAgICAgICAgIng4Nl82NCIs
CisgICAgICAgICAgICAgICAgWyJ4ODZfNjQiLCAiaW50ZWwiLCAiZmF0NjQiLCAiZmF0MzIiLCAi
dW5pdmVyc2FsMiIsICJ1bml2ZXJzYWwiXSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAo
KDExLCAwKSwgImFybTY0IiwgWyJhcm02NCIsICJ1bml2ZXJzYWwyIl0pLAorICAgICAgICAgICAg
KCgxMSwgMSksICJhcm02NCIsIFsiYXJtNjQiLCAidW5pdmVyc2FsMiJdKSwKKyAgICAgICAgICAg
ICgoMTIsIDApLCAiYXJtNjQiLCBbImFybTY0IiwgInVuaXZlcnNhbDIiXSksCisgICAgICAgIF0s
CisgICAgKQorICAgIGRlZiB0ZXN0X2JpbmFyeV9mb3JtYXRzKHNlbGYsIHZlcnNpb24sIGFyY2gs
IGV4cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0IHRhZ3MuX21hY19iaW5hcnlfZm9ybWF0cyh2ZXJz
aW9uLCBhcmNoKSA9PSBleHBlY3RlZAorCisgICAgZGVmIHRlc3RfdmVyc2lvbl9kZXRlY3Rpb24o
c2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSAhPSAiRGFy
d2luIjoKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoCisgICAgICAgICAgICAgICAg
cGxhdGZvcm0sICJtYWNfdmVyIiwgbGFtYmRhOiAoIjEwLjE0IiwgKCIiLCAiIiwgIiIpLCAieDg2
XzY0IikKKyAgICAgICAgICAgICkKKyAgICAgICAgdmVyc2lvbiA9IHBsYXRmb3JtLm1hY192ZXIo
KVswXS5zcGxpdCgiLiIpCisgICAgICAgIGV4cGVjdGVkID0gIm1hY29zeF97bWFqb3J9X3ttaW5v
cn0iLmZvcm1hdChtYWpvcj12ZXJzaW9uWzBdLCBtaW5vcj12ZXJzaW9uWzFdKQorICAgICAgICBw
bGF0Zm9ybXMgPSBsaXN0KHRhZ3MubWFjX3BsYXRmb3JtcyhhcmNoPSJ4ODZfNjQiKSkKKyAgICAg
ICAgYXNzZXJ0IHBsYXRmb3Jtc1swXS5zdGFydHN3aXRoKGV4cGVjdGVkKQorCisgICAgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJhcmNoIiwgWyJ4ODZfNjQiLCAiaTM4NiJdKQorICAgIGRlZiB0
ZXN0X2FyY2hfZGV0ZWN0aW9uKHNlbGYsIGFyY2gsIG1vbmtleXBhdGNoKToKKyAgICAgICAgaWYg
cGxhdGZvcm0uc3lzdGVtKCkgIT0gIkRhcndpbiIgb3IgcGxhdGZvcm0ubWFjX3ZlcigpWzJdICE9
IGFyY2g6CisgICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAgICAgICAg
IHBsYXRmb3JtLCAibWFjX3ZlciIsIGxhbWJkYTogKCIxMC4xNCIsICgiIiwgIiIsICIiKSwgYXJj
aCkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywg
Il9tYWNfYXJjaCIsIGxhbWJkYSAqYXJnczogYXJjaCkKKyAgICAgICAgYXNzZXJ0IG5leHQodGFn
cy5tYWNfcGxhdGZvcm1zKCgxMCwgMTQpKSkuZW5kc3dpdGgoYXJjaCkKKworICAgIGRlZiB0ZXN0
X21hY19wbGF0Zm9ybXMoc2VsZik6CisgICAgICAgIHBsYXRmb3JtcyA9IGxpc3QodGFncy5tYWNf
cGxhdGZvcm1zKCgxMCwgNSksICJ4ODZfNjQiKSkKKyAgICAgICAgYXNzZXJ0IHBsYXRmb3JtcyA9
PSBbCisgICAgICAgICAgICAibWFjb3N4XzEwXzVfeDg2XzY0IiwKKyAgICAgICAgICAgICJtYWNv
c3hfMTBfNV9pbnRlbCIsCisgICAgICAgICAgICAibWFjb3N4XzEwXzVfZmF0NjQiLAorICAgICAg
ICAgICAgIm1hY29zeF8xMF81X2ZhdDMyIiwKKyAgICAgICAgICAgICJtYWNvc3hfMTBfNV91bml2
ZXJzYWwyIiwKKyAgICAgICAgICAgICJtYWNvc3hfMTBfNV91bml2ZXJzYWwiLAorICAgICAgICAg
ICAgIm1hY29zeF8xMF80X3g4Nl82NCIsCisgICAgICAgICAgICAibWFjb3N4XzEwXzRfaW50ZWwi
LAorICAgICAgICAgICAgIm1hY29zeF8xMF80X2ZhdDY0IiwKKyAgICAgICAgICAgICJtYWNvc3hf
MTBfNF9mYXQzMiIsCisgICAgICAgICAgICAibWFjb3N4XzEwXzRfdW5pdmVyc2FsMiIsCisgICAg
ICAgICAgICAibWFjb3N4XzEwXzRfdW5pdmVyc2FsIiwKKyAgICAgICAgXQorCisgICAgICAgIGFz
c2VydCBsZW4obGlzdCh0YWdzLm1hY19wbGF0Zm9ybXMoKDEwLCAxNyksICJ4ODZfNjQiKSkpID09
IDE0ICogNgorCisgICAgICAgIGFzc2VydCBub3QgbGlzdCh0YWdzLm1hY19wbGF0Zm9ybXMoKDEw
LCAwKSwgIng4Nl82NCIpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtYWpvcixt
aW5vciIsIFsoMTEsIDApLCAoMTEsIDMpLCAoMTIsIDApLCAoMTIsIDMpXSkKKyAgICBkZWYgdGVz
dF9tYWNvc18xMShzZWxmLCBtYWpvciwgbWlub3IpOgorICAgICAgICBwbGF0Zm9ybXMgPSBsaXN0
KHRhZ3MubWFjX3BsYXRmb3JtcygobWFqb3IsIG1pbm9yKSwgIng4Nl82NCIpKQorICAgICAgICBh
c3NlcnQgIm1hY29zeF8xMV8wX2FybTY0IiBub3QgaW4gcGxhdGZvcm1zCisgICAgICAgIGFzc2Vy
dCAibWFjb3N4XzExXzBfeDg2XzY0IiBpbiBwbGF0Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNv
c3hfMTFfM194ODZfNjQiIG5vdCBpbiBwbGF0Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hf
MTFfMF91bml2ZXJzYWwiIGluIHBsYXRmb3JtcworICAgICAgICBhc3NlcnQgIm1hY29zeF8xMV8w
X3VuaXZlcnNhbDIiIGluIHBsYXRmb3JtcworICAgICAgICAjIE1hYyBPUyAiMTAuMTYiIGlzIHRo
ZSB2ZXJzaW9uIG51bWJlciB0aGF0IGJpbmFyaWVzIGNvbXBpbGVkIGFnYWluc3QgYW4gb2xkCisg
ICAgICAgICMgKHByZSAxMS4wKSBTREsgd2lsbCBzZWUuICAgSXQgY2FuIGFsc28gYmUgZW5hYmxl
ZCBleHBsaWNpdGx5IGZvciBhIHByb2Nlc3MKKyAgICAgICAgIyB3aXRoIHRoZSBlbnZpcm9ubWVu
dCB2YXJpYWJsZSBTWVNURU1fVkVSU0lPTl9DT01QQVQ9MS4KKyAgICAgICAgYXNzZXJ0ICJtYWNv
c3hfMTBfMTZfeDg2XzY0IiBpbiBwbGF0Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hfMTBf
MTVfeDg2XzY0IiBpbiBwbGF0Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hfMTBfNF94ODZf
NjQiIGluIHBsYXRmb3JtcworICAgICAgICBhc3NlcnQgIm1hY29zeF8xMF8zX3g4Nl82NCIgbm90
IGluIHBsYXRmb3JtcworICAgICAgICBpZiBtYWpvciA+PSAxMjoKKyAgICAgICAgICAgIGFzc2Vy
dCAibWFjb3N4XzEyXzBfeDg2XzY0IiBpbiBwbGF0Zm9ybXMKKyAgICAgICAgICAgIGFzc2VydCAi
bWFjb3N4XzEyXzBfdW5pdmVyc2FsIiBpbiBwbGF0Zm9ybXMKKyAgICAgICAgICAgIGFzc2VydCAi
bWFjb3N4XzEyXzBfdW5pdmVyc2FsMiIgaW4gcGxhdGZvcm1zCisKKyAgICAgICAgcGxhdGZvcm1z
ID0gbGlzdCh0YWdzLm1hY19wbGF0Zm9ybXMoKG1ham9yLCBtaW5vciksICJhcm02NCIpKQorICAg
ICAgICBhc3NlcnQgIm1hY29zeF8xMV8wX2FybTY0IiBpbiBwbGF0Zm9ybXMKKyAgICAgICAgYXNz
ZXJ0ICJtYWNvc3hfMTFfM19hcm02NCIgbm90IGluIHBsYXRmb3JtcworICAgICAgICBhc3NlcnQg
Im1hY29zeF8xMV8wX3VuaXZlcnNhbCIgbm90IGluIHBsYXRmb3JtcworICAgICAgICBhc3NlcnQg
Im1hY29zeF8xMV8wX3VuaXZlcnNhbDIiIGluIHBsYXRmb3JtcworICAgICAgICBhc3NlcnQgIm1h
Y29zeF8xMF8xNV94ODZfNjQiIG5vdCBpbiBwbGF0Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNv
c3hfMTBfNF94ODZfNjQiIG5vdCBpbiBwbGF0Zm9ybXMKKyAgICAgICAgYXNzZXJ0ICJtYWNvc3hf
MTBfM194ODZfNjQiIG5vdCBpbiBwbGF0Zm9ybXMKKyAgICAgICAgaWYgbWFqb3IgPj0gMTI6Cisg
ICAgICAgICAgICBhc3NlcnQgIm1hY29zeF8xMl8wX2FybTY0IiBpbiBwbGF0Zm9ybXMKKyAgICAg
ICAgICAgIGFzc2VydCAibWFjb3N4XzEyXzBfdW5pdmVyc2FsMiIgaW4gcGxhdGZvcm1zCisKKwor
Y2xhc3MgVGVzdE1hbnlsaW51eFBsYXRmb3JtOgorICAgIGRlZiB0ZWFyZG93bl9tZXRob2Qoc2Vs
Zik6CisgICAgICAgICMgQ2xlYXIgdGhlIHZlcnNpb24gY2FjaGUKKyAgICAgICAgdGFncy5fZ2xp
YmNfdmVyc2lvbiA9IFtdCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRmIiwgKFRy
dWUsIEZhbHNlKSkKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJhdHRy
aWJ1dGUsZ2xpYmMiLCAoKCIxIiwgKDIsIDUpKSwgKCIyMDEwIiwgKDIsIDEyKSksICgiMjAxNCIs
ICgyLCAxNykpKQorICAgICkKKyAgICBkZWYgdGVzdF9tb2R1bGVfZGVjbGFyYXRpb24oCisgICAg
ICAgIHNlbGYsIG1vbmtleXBhdGNoLCBtYW55bGludXhfbW9kdWxlLCBhdHRyaWJ1dGUsIGdsaWJj
LCB0ZgorICAgICk6CisgICAgICAgIG1hbnlsaW51eCA9ICJtYW55bGludXh7fV9jb21wYXRpYmxl
Ii5mb3JtYXQoYXR0cmlidXRlKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG1hbnlsaW51
eF9tb2R1bGUsIG1hbnlsaW51eCwgdGYsIHJhaXNpbmc9RmFsc2UpCisgICAgICAgIHJlcyA9IHRh
Z3MuX2lzX21hbnlsaW51eF9jb21wYXRpYmxlKG1hbnlsaW51eCwgIng4Nl82NCIsIGdsaWJjKQor
ICAgICAgICBhc3NlcnQgdGYgaXMgcmVzCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
CisgICAgICAgICJhdHRyaWJ1dGUsZ2xpYmMiLCAoKCIxIiwgKDIsIDUpKSwgKCIyMDEwIiwgKDIs
IDEyKSksICgiMjAxNCIsICgyLCAxNykpKQorICAgICkKKyAgICBkZWYgdGVzdF9tb2R1bGVfZGVj
bGFyYXRpb25fbWlzc2luZ19hdHRyaWJ1dGUoCisgICAgICAgIHNlbGYsIG1vbmtleXBhdGNoLCBt
YW55bGludXhfbW9kdWxlLCBhdHRyaWJ1dGUsIGdsaWJjCisgICAgKToKKyAgICAgICAgbWFueWxp
bnV4ID0gIm1hbnlsaW51eHt9X2NvbXBhdGlibGUiLmZvcm1hdChhdHRyaWJ1dGUpCisgICAgICAg
IG1vbmtleXBhdGNoLmRlbGF0dHIobWFueWxpbnV4X21vZHVsZSwgbWFueWxpbnV4LCByYWlzaW5n
PUZhbHNlKQorICAgICAgICBhc3NlcnQgdGFncy5faXNfbWFueWxpbnV4X2NvbXBhdGlibGUobWFu
eWxpbnV4LCAieDg2XzY0IiwgZ2xpYmMpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
CisgICAgICAgICJ2ZXJzaW9uLGNvbXBhdGlibGUiLCAoKCgyLCAwKSwgVHJ1ZSksICgoMiwgNSks
IFRydWUpLCAoKDIsIDEwKSwgRmFsc2UpKQorICAgICkKKyAgICBkZWYgdGVzdF9pc19tYW55bGlu
dXhfY29tcGF0aWJsZV9nbGliY19zdXBwb3J0KAorICAgICAgICBzZWxmLCB2ZXJzaW9uLCBjb21w
YXRpYmxlLCBtb25rZXlwYXRjaAorICAgICk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGl0ZW0o
c3lzLm1vZHVsZXMsICJfbWFueWxpbnV4IiwgTm9uZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cih0YWdzLCAiX2dldF9nbGliY192ZXJzaW9uIiwgbGFtYmRhOiAoMiwgNSkpCisgICAgICAg
IGFzc2VydCAoCisgICAgICAgICAgICBib29sKHRhZ3MuX2lzX21hbnlsaW51eF9jb21wYXRpYmxl
KCJtYW55bGludXgxIiwgImFueSIsIHZlcnNpb24pKQorICAgICAgICAgICAgPT0gY29tcGF0aWJs
ZQorICAgICAgICApCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZlcnNpb25fc3Ry
IiwgWyJnbGliYy0yLjQuNSIsICIyIl0pCisgICAgZGVmIHRlc3RfY2hlY2tfZ2xpYmNfdmVyc2lv
bl93YXJuaW5nKHNlbGYsIHZlcnNpb25fc3RyKToKKyAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRj
aF93YXJuaW5ncyhyZWNvcmQ9VHJ1ZSkgYXMgdzoKKyAgICAgICAgICAgIHRhZ3MuX3BhcnNlX2ds
aWJjX3ZlcnNpb24odmVyc2lvbl9zdHIpCisgICAgICAgICAgICBhc3NlcnQgbGVuKHcpID09IDEK
KyAgICAgICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKHdbMF0uY2F0ZWdvcnksIFJ1bnRpbWVXYXJu
aW5nKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihub3QgY3R5cGVzLCByZWFzb249InJlcXVp
cmVzIGN0eXBlcyIpCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAidmVy
c2lvbl9zdHIsZXhwZWN0ZWQiLAorICAgICAgICBbCisgICAgICAgICAgICAjIEJlIHZlcnkgZXhw
bGljaXQgYWJvdXQgYnl0ZXMgYW5kIFVuaWNvZGUgZm9yIFB5dGhvbiAyIHRlc3RpbmcuCisgICAg
ICAgICAgICAoYiIyLjQiLCAiMi40IiksCisgICAgICAgICAgICAodSIyLjQiLCAiMi40IiksCisg
ICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X2dsaWJjX3ZlcnNpb25fc3RyaW5nKHNlbGYs
IHZlcnNpb25fc3RyLCBleHBlY3RlZCwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBjbGFzcyBMaWJj
VmVyc2lvbjoKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2ZXJzaW9uX3N0cik6Cisg
ICAgICAgICAgICAgICAgc2VsZi52ZXJzaW9uX3N0ciA9IHZlcnNpb25fc3RyCisKKyAgICAgICAg
ICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gdmVyc2lvbl9z
dHIKKworICAgICAgICBjbGFzcyBQcm9jZXNzTmFtZXNwYWNlOgorICAgICAgICAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxpYmNfdmVyc2lvbik6CisgICAgICAgICAgICAgICAgc2VsZi5nbnVfZ2V0
X2xpYmNfdmVyc2lvbiA9IGxpYmNfdmVyc2lvbgorCisgICAgICAgIHByb2Nlc3NfbmFtZXNwYWNl
ID0gUHJvY2Vzc05hbWVzcGFjZShMaWJjVmVyc2lvbih2ZXJzaW9uX3N0cikpCisgICAgICAgIG1v
bmtleXBhdGNoLnNldGF0dHIoY3R5cGVzLCAiQ0RMTCIsIGxhbWJkYSBfOiBwcm9jZXNzX25hbWVz
cGFjZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2dsaWJjX3ZlcnNpb25f
c3RyaW5nX2NvbmZzdHIiLCBsYW1iZGE6IEZhbHNlKQorCisgICAgICAgIGFzc2VydCB0YWdzLl9n
bGliY192ZXJzaW9uX3N0cmluZygpID09IGV4cGVjdGVkCisKKyAgICAgICAgZGVsIHByb2Nlc3Nf
bmFtZXNwYWNlLmdudV9nZXRfbGliY192ZXJzaW9uCisgICAgICAgIGFzc2VydCB0YWdzLl9nbGli
Y192ZXJzaW9uX3N0cmluZygpIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X2dsaWJjX3ZlcnNpb25f
c3RyaW5nX2NvbmZzdHIoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5z
ZXRhdHRyKG9zLCAiY29uZnN0ciIsIGxhbWJkYSB4OiAiZ2xpYmMgMi4yMCIsIHJhaXNpbmc9RmFs
c2UpCisgICAgICAgIGFzc2VydCB0YWdzLl9nbGliY192ZXJzaW9uX3N0cmluZ19jb25mc3RyKCkg
PT0gIjIuMjAiCisKKyAgICBkZWYgdGVzdF9nbGliY192ZXJzaW9uX3N0cmluZ19mYWlsKHNlbGYs
IG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihvcywgImNvbmZzdHIi
LCBsYW1iZGEgeDogTm9uZSwgcmFpc2luZz1GYWxzZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
aXRlbShzeXMubW9kdWxlcywgImN0eXBlcyIsIE5vbmUpCisgICAgICAgIGFzc2VydCB0YWdzLl9n
bGliY192ZXJzaW9uX3N0cmluZygpIGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IHRhZ3MuX2dldF9n
bGliY192ZXJzaW9uKCkgPT0gKC0xLCAtMSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgKKyAgICAgICAgImZhaWx1cmUiLAorICAgICAgICBbcHJldGVuZC5yYWlzZXIoVmFsdWVFcnJv
ciksIHByZXRlbmQucmFpc2VyKE9TRXJyb3IpLCBsYW1iZGEgeDogIlhYWCJdLAorICAgICkKKyAg
ICBkZWYgdGVzdF9nbGliY192ZXJzaW9uX3N0cmluZ19jb25mc3RyX2ZhaWwoc2VsZiwgbW9ua2V5
cGF0Y2gsIGZhaWx1cmUpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG9zLCAiY29uZnN0
ciIsIGZhaWx1cmUsIHJhaXNpbmc9RmFsc2UpCisgICAgICAgIGFzc2VydCB0YWdzLl9nbGliY192
ZXJzaW9uX3N0cmluZ19jb25mc3RyKCkgaXMgTm9uZQorCisgICAgZGVmIHRlc3RfZ2xpYmNfdmVy
c2lvbl9zdHJpbmdfY29uZnN0cl9taXNzaW5nKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAg
bW9ua2V5cGF0Y2guZGVsYXR0cihvcywgImNvbmZzdHIiLCByYWlzaW5nPUZhbHNlKQorICAgICAg
ICBhc3NlcnQgdGFncy5fZ2xpYmNfdmVyc2lvbl9zdHJpbmdfY29uZnN0cigpIGlzIE5vbmUKKwor
ICAgIGRlZiB0ZXN0X2dsaWJjX3ZlcnNpb25fc3RyaW5nX2N0eXBlc19taXNzaW5nKHNlbGYsIG1v
bmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0aXRlbShzeXMubW9kdWxlcywgImN0
eXBlcyIsIE5vbmUpCisgICAgICAgIGFzc2VydCB0YWdzLl9nbGliY192ZXJzaW9uX3N0cmluZ19j
dHlwZXMoKSBpcyBOb25lCisKKyAgICBkZWYgdGVzdF9nbGliY192ZXJzaW9uX3N0cmluZ19jdHlw
ZXNfcmFpc2Vfb3NlcnJvcihzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIGRlZiBwYXRjaGVk
X2NkbGwobmFtZSk6CisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCJEeW5hbWljIGxvYWRpbmcg
bm90IHN1cHBvcnRlZCIpCisKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihjdHlwZXMsICJD
RExMIiwgcGF0Y2hlZF9jZGxsKQorICAgICAgICBhc3NlcnQgdGFncy5fZ2xpYmNfdmVyc2lvbl9z
dHJpbmdfY3R5cGVzKCkgaXMgTm9uZQorCisgICAgZGVmIHRlc3RfZ2V0X2NvbmZpZ192YXJfZG9l
c19ub3RfbG9nKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgZGVidWcgPSBwcmV0ZW5kLmNh
bGxfcmVjb3JkZXIobGFtYmRhICphOiBOb25lKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRy
KHRhZ3MubG9nZ2VyLCAiZGVidWciLCBkZWJ1ZykKKyAgICAgICAgdGFncy5fZ2V0X2NvbmZpZ192
YXIoIm1pc3NpbmciKQorICAgICAgICBhc3NlcnQgZGVidWcuY2FsbHMgPT0gW10KKworICAgIGRl
ZiB0ZXN0X2dldF9jb25maWdfdmFyX2RvZXNfbG9nKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAg
ICAgZGVidWcgPSBwcmV0ZW5kLmNhbGxfcmVjb3JkZXIobGFtYmRhICphOiBOb25lKQorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MubG9nZ2VyLCAiZGVidWciLCBkZWJ1ZykKKyAgICAg
ICAgdGFncy5fZ2V0X2NvbmZpZ192YXIoIm1pc3NpbmciLCB3YXJuPVRydWUpCisgICAgICAgIGFz
c2VydCBkZWJ1Zy5jYWxscyA9PSBbCisgICAgICAgICAgICBwcmV0ZW5kLmNhbGwoCisgICAgICAg
ICAgICAgICAgIkNvbmZpZyB2YXJpYWJsZSAnJXMnIGlzIHVuc2V0LCBQeXRob24gQUJJIHRhZyBt
YXkgYmUgaW5jb3JyZWN0IiwKKyAgICAgICAgICAgICAgICAibWlzc2luZyIsCisgICAgICAgICAg
ICApCisgICAgICAgIF0KKworICAgIEBweXRlc3QubWFyay5za2lwaWYocGxhdGZvcm0uc3lzdGVt
KCkgIT0gIkxpbnV4IiwgcmVhc29uPSJyZXF1aXJlcyBMaW51eCIpCisgICAgZGVmIHRlc3RfaXNf
bWFueWxpbnV4X2NvbXBhdGlibGVfb2xkKHNlbGYpOgorICAgICAgICAjIEFzc3VtaW5nIG5vIG9u
ZSBpcyBydW5uaW5nIHRoaXMgdGVzdCB3aXRoIGEgdmVyc2lvbiBvZiBnbGliYyByZWxlYXNlZCBp
bgorICAgICAgICAjIDE5OTcuCisgICAgICAgIGFzc2VydCB0YWdzLl9pc19tYW55bGludXhfY29t
cGF0aWJsZSgiYW55IiwgImFueSIsICgyLCAwKSkKKworICAgIGRlZiB0ZXN0X2lzX21hbnlsaW51
eF9jb21wYXRpYmxlKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cih0YWdzLCAiX2dsaWJjX3ZlcnNpb25fc3RyaW5nIiwgbGFtYmRhOiAiMi40IikKKyAgICAg
ICAgYXNzZXJ0IHRhZ3MuX2lzX21hbnlsaW51eF9jb21wYXRpYmxlKCIiLCAiYW55IiwgKDIsIDQp
KQorCisgICAgZGVmIHRlc3RfZ2xpYmNfdmVyc2lvbl9zdHJpbmdfbm9uZShzZWxmLCBtb25rZXlw
YXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9nbGliY192ZXJzaW9u
X3N0cmluZyIsIGxhbWJkYTogTm9uZSkKKyAgICAgICAgYXNzZXJ0IG5vdCB0YWdzLl9pc19tYW55
bGludXhfY29tcGF0aWJsZSgiYW55IiwgImFueSIsICgyLCA0KSkKKworICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgKKyAgICAgICAgImFyY2gsaXNfMzJiaXQsZXhwZWN0ZWQiLAorICAgICAg
ICBbCisgICAgICAgICAgICAoImxpbnV4LXg4Nl82NCIsIEZhbHNlLCAibGludXhfeDg2XzY0Iiks
CisgICAgICAgICAgICAoImxpbnV4LXg4Nl82NCIsIFRydWUsICJsaW51eF9pNjg2IiksCisgICAg
ICAgICAgICAoImxpbnV4LWFhcmNoNjQiLCBGYWxzZSwgImxpbnV4X2FhcmNoNjQiKSwKKyAgICAg
ICAgICAgICgibGludXgtYWFyY2g2NCIsIFRydWUsICJsaW51eF9hcm12N2wiKSwKKyAgICAgICAg
XSwKKyAgICApCisgICAgZGVmIHRlc3RfbGludXhfcGxhdGZvcm1zXzMyXzY0Yml0X29uXzY0Yml0
X29zKAorICAgICAgICBzZWxmLCBhcmNoLCBpc18zMmJpdCwgZXhwZWN0ZWQsIG1vbmtleXBhdGNo
CisgICAgKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihkaXN0dXRpbHMudXRpbCwgImdl
dF9wbGF0Zm9ybSIsIGxhbWJkYTogYXJjaCkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihv
cywgImNvbmZzdHIiLCBsYW1iZGEgeDogImdsaWJjIDIuMjAiLCByYWlzaW5nPUZhbHNlKQorICAg
ICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfaXNfbWFueWxpbnV4X2NvbXBhdGlibGUi
LCBsYW1iZGEgKmFyZ3M6IEZhbHNlKQorICAgICAgICBsaW51eF9wbGF0Zm9ybSA9IGxpc3QodGFn
cy5fbGludXhfcGxhdGZvcm1zKGlzXzMyYml0PWlzXzMyYml0KSlbLTFdCisgICAgICAgIGFzc2Vy
dCBsaW51eF9wbGF0Zm9ybSA9PSBleHBlY3RlZAorCisgICAgZGVmIHRlc3RfbGludXhfcGxhdGZv
cm1zX21hbnlsaW51eF91bnN1cHBvcnRlZChzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1v
bmtleXBhdGNoLnNldGF0dHIoZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6
ICJsaW51eF94ODZfNjQiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG9zLCAiY29uZnN0
ciIsIGxhbWJkYSB4OiAiZ2xpYmMgMi4yMCIsIHJhaXNpbmc9RmFsc2UpCisgICAgICAgIG1vbmtl
eXBhdGNoLnNldGF0dHIodGFncywgIl9pc19tYW55bGludXhfY29tcGF0aWJsZSIsIGxhbWJkYSAq
YXJnczogRmFsc2UpCisgICAgICAgIGxpbnV4X3BsYXRmb3JtID0gbGlzdCh0YWdzLl9saW51eF9w
bGF0Zm9ybXMoaXNfMzJiaXQ9RmFsc2UpKQorICAgICAgICBhc3NlcnQgbGludXhfcGxhdGZvcm0g
PT0gWyJsaW51eF94ODZfNjQiXQorCisgICAgZGVmIHRlc3RfbGludXhfcGxhdGZvcm1zX21hbnls
aW51eDEoc2VsZiwgaXNfeDg2LCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNl
dGF0dHIoCisgICAgICAgICAgICB0YWdzLCAiX2lzX21hbnlsaW51eF9jb21wYXRpYmxlIiwgbGFt
YmRhIG5hbWUsICphcmdzOiBuYW1lID09ICJtYW55bGludXgxIgorICAgICAgICApCisgICAgICAg
IG1vbmtleXBhdGNoLnNldGF0dHIoZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1i
ZGE6ICJsaW51eF94ODZfNjQiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHBsYXRmb3Jt
LCAibWFjaGluZSIsIGxhbWJkYTogIng4Nl82NCIpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0
dHIob3MsICJjb25mc3RyIiwgbGFtYmRhIHg6ICJnbGliYyAyLjIwIiwgcmFpc2luZz1GYWxzZSkK
KyAgICAgICAgcGxhdGZvcm1zID0gbGlzdCh0YWdzLl9saW51eF9wbGF0Zm9ybXMoaXNfMzJiaXQ9
RmFsc2UpKQorICAgICAgICBhcmNoID0gcGxhdGZvcm0ubWFjaGluZSgpCisgICAgICAgIGFzc2Vy
dCBwbGF0Zm9ybXMgPT0gWyJtYW55bGludXgxXyIgKyBhcmNoLCAibGludXhfIiArIGFyY2hdCisK
KyAgICBkZWYgdGVzdF9saW51eF9wbGF0Zm9ybXNfbWFueWxpbnV4MjAxMChzZWxmLCBpc194ODYs
IG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihkaXN0dXRpbHMudXRp
bCwgImdldF9wbGF0Zm9ybSIsIGxhbWJkYTogImxpbnV4X3g4Nl82NCIpCisgICAgICAgIG1vbmtl
eXBhdGNoLnNldGF0dHIocGxhdGZvcm0sICJtYWNoaW5lIiwgbGFtYmRhOiAieDg2XzY0IikKKyAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihvcywgImNvbmZzdHIiLCBsYW1iZGEgeDogImdsaWJj
IDIuMTIiLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBwbGF0Zm9ybXMgPSBsaXN0KHRhZ3MuX2xp
bnV4X3BsYXRmb3Jtcyhpc18zMmJpdD1GYWxzZSkpCisgICAgICAgIGFyY2ggPSBwbGF0Zm9ybS5t
YWNoaW5lKCkKKyAgICAgICAgZXhwZWN0ZWQgPSBbCisgICAgICAgICAgICAibWFueWxpbnV4XzJf
MTJfIiArIGFyY2gsCisgICAgICAgICAgICAibWFueWxpbnV4MjAxMF8iICsgYXJjaCwKKyAgICAg
ICAgICAgICJtYW55bGludXhfMl8xMV8iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhf
Ml8xMF8iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl85XyIgKyBhcmNoLAorICAg
ICAgICAgICAgIm1hbnlsaW51eF8yXzhfIiArIGFyY2gsCisgICAgICAgICAgICAibWFueWxpbnV4
XzJfN18iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl82XyIgKyBhcmNoLAorICAg
ICAgICAgICAgIm1hbnlsaW51eF8yXzVfIiArIGFyY2gsCisgICAgICAgICAgICAibWFueWxpbnV4
MV8iICsgYXJjaCwKKyAgICAgICAgICAgICJsaW51eF8iICsgYXJjaCwKKyAgICAgICAgXQorICAg
ICAgICBhc3NlcnQgcGxhdGZvcm1zID09IGV4cGVjdGVkCisKKyAgICBkZWYgdGVzdF9saW51eF9w
bGF0Zm9ybXNfbWFueWxpbnV4MjAxNChzZWxmLCBpc194ODYsIG1vbmtleXBhdGNoKToKKyAgICAg
ICAgbW9ua2V5cGF0Y2guc2V0YXR0cihkaXN0dXRpbHMudXRpbCwgImdldF9wbGF0Zm9ybSIsIGxh
bWJkYTogImxpbnV4X3g4Nl82NCIpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIocGxhdGZv
cm0sICJtYWNoaW5lIiwgbGFtYmRhOiAieDg2XzY0IikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cihvcywgImNvbmZzdHIiLCBsYW1iZGEgeDogImdsaWJjIDIuMTciLCByYWlzaW5nPUZhbHNl
KQorICAgICAgICBwbGF0Zm9ybXMgPSBsaXN0KHRhZ3MuX2xpbnV4X3BsYXRmb3Jtcyhpc18zMmJp
dD1GYWxzZSkpCisgICAgICAgIGFyY2ggPSBwbGF0Zm9ybS5tYWNoaW5lKCkKKyAgICAgICAgZXhw
ZWN0ZWQgPSBbCisgICAgICAgICAgICAibWFueWxpbnV4XzJfMTdfIiArIGFyY2gsCisgICAgICAg
ICAgICAibWFueWxpbnV4MjAxNF8iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8x
Nl8iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xNV8iICsgYXJjaCwKKyAgICAg
ICAgICAgICJtYW55bGludXhfMl8xNF8iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhf
Ml8xM18iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xMl8iICsgYXJjaCwKKyAg
ICAgICAgICAgICJtYW55bGludXgyMDEwXyIgKyBhcmNoLAorICAgICAgICAgICAgIm1hbnlsaW51
eF8yXzExXyIgKyBhcmNoLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzEwXyIgKyBhcmNoLAor
ICAgICAgICAgICAgIm1hbnlsaW51eF8yXzlfIiArIGFyY2gsCisgICAgICAgICAgICAibWFueWxp
bnV4XzJfOF8iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXhfMl83XyIgKyBhcmNoLAor
ICAgICAgICAgICAgIm1hbnlsaW51eF8yXzZfIiArIGFyY2gsCisgICAgICAgICAgICAibWFueWxp
bnV4XzJfNV8iICsgYXJjaCwKKyAgICAgICAgICAgICJtYW55bGludXgxXyIgKyBhcmNoLAorICAg
ICAgICAgICAgImxpbnV4XyIgKyBhcmNoLAorICAgICAgICBdCisgICAgICAgIGFzc2VydCBwbGF0
Zm9ybXMgPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0ZXN0X2xpbnV4X3BsYXRmb3Jtc19tYW55bGlu
dXgyMDE0X2FybWhmX2FiaShzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNo
LnNldGF0dHIodGFncywgIl9nbGliY192ZXJzaW9uX3N0cmluZyIsIGxhbWJkYTogIjIuMzAiKQor
ICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAgICAgdGFncywKKyAgICAgICAg
ICAgICJfaXNfbWFueWxpbnV4X2NvbXBhdGlibGUiLAorICAgICAgICAgICAgbGFtYmRhIG5hbWUs
ICphcmdzOiBuYW1lID09ICJtYW55bGludXgyMDE0IiwKKyAgICAgICAgKQorICAgICAgICBtb25r
ZXlwYXRjaC5zZXRhdHRyKGRpc3R1dGlscy51dGlsLCAiZ2V0X3BsYXRmb3JtIiwgbGFtYmRhOiAi
bGludXhfYXJtdjdsIikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAg
IHN5cywKKyAgICAgICAgICAgICJleGVjdXRhYmxlIiwKKyAgICAgICAgICAgIG9zLnBhdGguam9p
bihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiaGVsbG8td29ybGQtYXJtdjdsLWFybWhmIiks
CisgICAgICAgICkKKyAgICAgICAgcGxhdGZvcm1zID0gbGlzdCh0YWdzLl9saW51eF9wbGF0Zm9y
bXMoaXNfMzJiaXQ9VHJ1ZSkpCisgICAgICAgIGV4cGVjdGVkID0gWyJtYW55bGludXgyMDE0X2Fy
bXY3bCIsICJsaW51eF9hcm12N2wiXQorICAgICAgICBhc3NlcnQgcGxhdGZvcm1zID09IGV4cGVj
dGVkCisKKyAgICBkZWYgdGVzdF9saW51eF9wbGF0Zm9ybXNfbWFueWxpbnV4MjAxNF9pMzg2X2Fi
aShzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywg
Il9nbGliY192ZXJzaW9uX3N0cmluZyIsIGxhbWJkYTogIjIuMTciKQorICAgICAgICBtb25rZXlw
YXRjaC5zZXRhdHRyKGRpc3R1dGlscy51dGlsLCAiZ2V0X3BsYXRmb3JtIiwgbGFtYmRhOiAibGlu
dXhfeDg2XzY0IikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAgIHN5
cywKKyAgICAgICAgICAgICJleGVjdXRhYmxlIiwKKyAgICAgICAgICAgIG9zLnBhdGguam9pbihv
cy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiaGVsbG8td29ybGQteDg2XzY0LWkzODYiKSwKKyAg
ICAgICAgKQorICAgICAgICBwbGF0Zm9ybXMgPSBsaXN0KHRhZ3MuX2xpbnV4X3BsYXRmb3Jtcyhp
c18zMmJpdD1UcnVlKSkKKyAgICAgICAgZXhwZWN0ZWQgPSBbCisgICAgICAgICAgICAibWFueWxp
bnV4XzJfMTdfaTY4NiIsCisgICAgICAgICAgICAibWFueWxpbnV4MjAxNF9pNjg2IiwKKyAgICAg
ICAgICAgICJtYW55bGludXhfMl8xNl9pNjg2IiwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8x
NV9pNjg2IiwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xNF9pNjg2IiwKKyAgICAgICAgICAg
ICJtYW55bGludXhfMl8xM19pNjg2IiwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8xMl9pNjg2
IiwKKyAgICAgICAgICAgICJtYW55bGludXgyMDEwX2k2ODYiLAorICAgICAgICAgICAgIm1hbnls
aW51eF8yXzExX2k2ODYiLAorICAgICAgICAgICAgIm1hbnlsaW51eF8yXzEwX2k2ODYiLAorICAg
ICAgICAgICAgIm1hbnlsaW51eF8yXzlfaTY4NiIsCisgICAgICAgICAgICAibWFueWxpbnV4XzJf
OF9pNjg2IiwKKyAgICAgICAgICAgICJtYW55bGludXhfMl83X2k2ODYiLAorICAgICAgICAgICAg
Im1hbnlsaW51eF8yXzZfaTY4NiIsCisgICAgICAgICAgICAibWFueWxpbnV4XzJfNV9pNjg2IiwK
KyAgICAgICAgICAgICJtYW55bGludXgxX2k2ODYiLAorICAgICAgICAgICAgImxpbnV4X2k2ODYi
LAorICAgICAgICBdCisgICAgICAgIGFzc2VydCBwbGF0Zm9ybXMgPT0gZXhwZWN0ZWQKKworICAg
IGRlZiB0ZXN0X2xpbnV4X3BsYXRmb3Jtc19tYW55bGludXhfZ2xpYmMzKHNlbGYsIG1vbmtleXBh
dGNoKToKKyAgICAgICAgIyB0ZXN0IGZvciBhIGZ1dHVyZSBnbGljIDMueCB2ZXJzaW9uCisgICAg
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9nbGliY192ZXJzaW9uX3N0cmluZyIsIGxh
bWJkYTogIjMuMiIpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9pc19tYW55
bGludXhfY29tcGF0aWJsZSIsIGxhbWJkYSBuYW1lLCAqYXJnczogVHJ1ZSkKKyAgICAgICAgbW9u
a2V5cGF0Y2guc2V0YXR0cihkaXN0dXRpbHMudXRpbCwgImdldF9wbGF0Zm9ybSIsIGxhbWJkYTog
ImxpbnV4X2FhcmNoNjQiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAg
ICAgc3lzLAorICAgICAgICAgICAgImV4ZWN1dGFibGUiLAorICAgICAgICAgICAgb3MucGF0aC5q
b2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICJoZWxsby13b3JsZC1hYXJjaDY0IiksCisg
ICAgICAgICkKKyAgICAgICAgcGxhdGZvcm1zID0gbGlzdCh0YWdzLl9saW51eF9wbGF0Zm9ybXMo
aXNfMzJiaXQ9RmFsc2UpKQorICAgICAgICBleHBlY3RlZCA9ICgKKyAgICAgICAgICAgIFsibWFu
eWxpbnV4XzNfMl9hYXJjaDY0IiwgIm1hbnlsaW51eF8zXzFfYWFyY2g2NCIsICJtYW55bGludXhf
M18wX2FhcmNoNjQiXQorICAgICAgICAgICAgKyBbIm1hbnlsaW51eF8yX3t9X2FhcmNoNjQiLmZv
cm1hdChpKSBmb3IgaSBpbiByYW5nZSg1MCwgMTYsIC0xKV0KKyAgICAgICAgICAgICsgWyJtYW55
bGludXgyMDE0X2FhcmNoNjQiLCAibGludXhfYWFyY2g2NCJdCisgICAgICAgICkKKyAgICAgICAg
YXNzZXJ0IHBsYXRmb3JtcyA9PSBleHBlY3RlZAorCisgICAgZGVmIHRlc3RfbGludXhfcGxhdGZv
cm1zX21hbnlsaW51eDIwMTRfYXJtdjZsKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9u
a2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAgIHRhZ3MsICJfaXNfbWFueWxpbnV4X2NvbXBh
dGlibGUiLCBsYW1iZGEgbmFtZSwgXzogbmFtZSA9PSAibWFueWxpbnV4MjAxNCIKKyAgICAgICAg
KQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGRpc3R1dGlscy51dGlsLCAiZ2V0X3BsYXRm
b3JtIiwgbGFtYmRhOiAibGludXhfYXJtdjZsIikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0
cihvcywgImNvbmZzdHIiLCBsYW1iZGEgeDogImdsaWJjIDIuMjAiLCByYWlzaW5nPUZhbHNlKQor
ICAgICAgICBwbGF0Zm9ybXMgPSBsaXN0KHRhZ3MuX2xpbnV4X3BsYXRmb3Jtcyhpc18zMmJpdD1U
cnVlKSkKKyAgICAgICAgZXhwZWN0ZWQgPSBbImxpbnV4X2FybXY2bCJdCisgICAgICAgIGFzc2Vy
dCBwbGF0Zm9ybXMgPT0gZXhwZWN0ZWQKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgK
KyAgICAgICAgIm1hY2hpbmUsIGFiaSwgYWx0X21hY2hpbmUiLAorICAgICAgICBbKCJ4ODZfNjQi
LCAieDMyIiwgImk2ODYiKSwgKCJhcm12N2wiLCAiYXJtZWwiLCAiYXJtdjdsIildLAorICAgICkK
KyAgICBkZWYgdGVzdF9saW51eF9wbGF0Zm9ybXNfbm90X21hbnlsaW51eF9hYmkoCisgICAgICAg
IHNlbGYsIG1vbmtleXBhdGNoLCBtYWNoaW5lLCBhYmksIGFsdF9tYWNoaW5lCisgICAgKToKKyAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2lzX21hbnlsaW51eF9jb21wYXRpYmxl
IiwgbGFtYmRhIG5hbWUsIF86IEZhbHNlKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAor
ICAgICAgICAgICAgZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6ICJsaW51
eF97fSIuZm9ybWF0KG1hY2hpbmUpCisgICAgICAgICkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cigKKyAgICAgICAgICAgIHN5cywKKyAgICAgICAgICAgICJleGVjdXRhYmxlIiwKKyAgICAg
ICAgICAgIG9zLnBhdGguam9pbigKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19m
aWxlX18pLCAiaGVsbG8td29ybGQte30te30iLmZvcm1hdChtYWNoaW5lLCBhYmkpCisgICAgICAg
ICAgICApLAorICAgICAgICApCisgICAgICAgIHBsYXRmb3JtcyA9IGxpc3QodGFncy5fbGludXhf
cGxhdGZvcm1zKGlzXzMyYml0PVRydWUpKQorICAgICAgICBleHBlY3RlZCA9IFsibGludXhfe30i
LmZvcm1hdChhbHRfbWFjaGluZSldCisgICAgICAgIGFzc2VydCBwbGF0Zm9ybXMgPT0gZXhwZWN0
ZWQKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgIm1hY2hpbmUsIGFi
aSwgZWxmX2NsYXNzLCBlbGZfZGF0YSwgZWxmX21hY2hpbmUiLAorICAgICAgICBbCisgICAgICAg
ICAgICAoCisgICAgICAgICAgICAgICAgIng4Nl82NCIsCisgICAgICAgICAgICAgICAgIngzMiIs
CisgICAgICAgICAgICAgICAgdGFncy5fRUxGRmlsZUhlYWRlci5FTEZDTEFTUzMyLAorICAgICAg
ICAgICAgICAgIHRhZ3MuX0VMRkZpbGVIZWFkZXIuRUxGREFUQTJMU0IsCisgICAgICAgICAgICAg
ICAgdGFncy5fRUxGRmlsZUhlYWRlci5FTV9YODZfNjQsCisgICAgICAgICAgICApLAorICAgICAg
ICAgICAgKAorICAgICAgICAgICAgICAgICJ4ODZfNjQiLAorICAgICAgICAgICAgICAgICJpMzg2
IiwKKyAgICAgICAgICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVMRkNMQVNTMzIsCisgICAg
ICAgICAgICAgICAgdGFncy5fRUxGRmlsZUhlYWRlci5FTEZEQVRBMkxTQiwKKyAgICAgICAgICAg
ICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVNXzM4NiwKKyAgICAgICAgICAgICksCisgICAgICAg
ICAgICAoCisgICAgICAgICAgICAgICAgIng4Nl82NCIsCisgICAgICAgICAgICAgICAgImFtZDY0
IiwKKyAgICAgICAgICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVMRkNMQVNTNjQsCisgICAg
ICAgICAgICAgICAgdGFncy5fRUxGRmlsZUhlYWRlci5FTEZEQVRBMkxTQiwKKyAgICAgICAgICAg
ICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVNX1g4Nl82NCwKKyAgICAgICAgICAgICksCisgICAg
ICAgICAgICAoCisgICAgICAgICAgICAgICAgImFybXY3bCIsCisgICAgICAgICAgICAgICAgImFy
bWVsIiwKKyAgICAgICAgICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVMRkNMQVNTMzIsCisg
ICAgICAgICAgICAgICAgdGFncy5fRUxGRmlsZUhlYWRlci5FTEZEQVRBMkxTQiwKKyAgICAgICAg
ICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVNX0FSTSwKKyAgICAgICAgICAgICksCisgICAg
ICAgICAgICAoCisgICAgICAgICAgICAgICAgImFybXY3bCIsCisgICAgICAgICAgICAgICAgImFy
bWhmIiwKKyAgICAgICAgICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVMRkNMQVNTMzIsCisg
ICAgICAgICAgICAgICAgdGFncy5fRUxGRmlsZUhlYWRlci5FTEZEQVRBMkxTQiwKKyAgICAgICAg
ICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVNX0FSTSwKKyAgICAgICAgICAgICksCisgICAg
ICAgICAgICAoCisgICAgICAgICAgICAgICAgInMzOTB4IiwKKyAgICAgICAgICAgICAgICAiczM5
MHgiLAorICAgICAgICAgICAgICAgIHRhZ3MuX0VMRkZpbGVIZWFkZXIuRUxGQ0xBU1M2NCwKKyAg
ICAgICAgICAgICAgICB0YWdzLl9FTEZGaWxlSGVhZGVyLkVMRkRBVEEyTVNCLAorICAgICAgICAg
ICAgICAgIHRhZ3MuX0VMRkZpbGVIZWFkZXIuRU1fUzM5MCwKKyAgICAgICAgICAgICksCisgICAg
ICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X2dldF9lbGZfaGVhZGVyKAorICAgICAgICBzZWxm
LCBtb25rZXlwYXRjaCwgbWFjaGluZSwgYWJpLCBlbGZfY2xhc3MsIGVsZl9kYXRhLCBlbGZfbWFj
aGluZQorICAgICk6CisgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oCisgICAgICAgICAgICBv
cy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiaGVsbG8td29ybGQte30te30iLmZvcm1hdChtYWNo
aW5lLCBhYmkpCisgICAgICAgICkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMsICJl
eGVjdXRhYmxlIiwgcGF0aCkKKyAgICAgICAgZWxmX2hlYWRlciA9IHRhZ3MuX2dldF9lbGZfaGVh
ZGVyKCkKKyAgICAgICAgYXNzZXJ0IGVsZl9oZWFkZXIuZV9pZGVudF9jbGFzcyA9PSBlbGZfY2xh
c3MKKyAgICAgICAgYXNzZXJ0IGVsZl9oZWFkZXIuZV9pZGVudF9kYXRhID09IGVsZl9kYXRhCisg
ICAgICAgIGFzc2VydCBlbGZfaGVhZGVyLmVfbWFjaGluZSA9PSBlbGZfbWFjaGluZQorCisgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAiY29udGVudCIsIFtOb25lLCAiaW52
YWxpZC1tYWdpYyIsICJpbnZhbGlkLWNsYXNzIiwgImludmFsaWQtZGF0YSIsICJ0b28tc2hvcnQi
XQorICAgICkKKyAgICBkZWYgdGVzdF9nZXRfZWxmX2hlYWRlcl9iYWRfZXhjdXRhYmxlKHNlbGYs
IG1vbmtleXBhdGNoLCBjb250ZW50KToKKyAgICAgICAgaWYgY29udGVudDoKKyAgICAgICAgICAg
IHBhdGggPSBvcy5wYXRoLmpvaW4oCisgICAgICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9f
ZmlsZV9fKSwgImhlbGxvLXdvcmxkLXt9Ii5mb3JtYXQoY29udGVudCkKKyAgICAgICAgICAgICkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBhdGggPSBOb25lCisgICAgICAgIG1vbmtleXBh
dGNoLnNldGF0dHIoc3lzLCAiZXhlY3V0YWJsZSIsIHBhdGgpCisgICAgICAgIGFzc2VydCB0YWdz
Ll9nZXRfZWxmX2hlYWRlcigpIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X2lzX2xpbnV4X2FybWhm
X25vdF9lbGYoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRy
KHRhZ3MsICJfZ2V0X2VsZl9oZWFkZXIiLCBsYW1iZGE6IE5vbmUpCisgICAgICAgIGFzc2VydCBu
b3QgdGFncy5faXNfbGludXhfYXJtaGYoKQorCisgICAgZGVmIHRlc3RfaXNfbGludXhfaTY4Nl9u
b3RfZWxmKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0
YWdzLCAiX2dldF9lbGZfaGVhZGVyIiwgbGFtYmRhOiBOb25lKQorICAgICAgICBhc3NlcnQgbm90
IHRhZ3MuX2lzX2xpbnV4X2k2ODYoKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAg
ICAicGxhdGZvcm1fbmFtZSxkaXNwYXRjaF9mdW5jIiwKKyAgICBbCisgICAgICAgICgiRGFyd2lu
IiwgIm1hY19wbGF0Zm9ybXMiKSwKKyAgICAgICAgKCJMaW51eCIsICJfbGludXhfcGxhdGZvcm1z
IiksCisgICAgICAgICgiR2VuZXJpYyIsICJfZ2VuZXJpY19wbGF0Zm9ybXMiKSwKKyAgICBdLAor
KQorZGVmIHRlc3RfX3BsYXRmb3JtX3RhZ3MocGxhdGZvcm1fbmFtZSwgZGlzcGF0Y2hfZnVuYywg
bW9ua2V5cGF0Y2gpOgorICAgIGV4cGVjdGVkID0gWyJzaWxseXdhbGsiXQorICAgIG1vbmtleXBh
dGNoLnNldGF0dHIocGxhdGZvcm0sICJzeXN0ZW0iLCBsYW1iZGE6IHBsYXRmb3JtX25hbWUpCisg
ICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCBkaXNwYXRjaF9mdW5jLCBsYW1iZGE6IGV4cGVj
dGVkKQorICAgIGFzc2VydCB0YWdzLl9wbGF0Zm9ybV90YWdzKCkgPT0gZXhwZWN0ZWQKKworCitj
bGFzcyBUZXN0Q1B5dGhvbkFCSToKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAg
ICAgICJweV9kZWJ1ZyxnZXR0b3RhbHJlZmNvdW50LHJlc3VsdCIsCisgICAgICAgIFsoMSwgRmFs
c2UsIFRydWUpLCAoMCwgRmFsc2UsIEZhbHNlKSwgKE5vbmUsIFRydWUsIFRydWUpXSwKKyAgICAp
CisgICAgZGVmIHRlc3RfZGVidWcoc2VsZiwgcHlfZGVidWcsIGdldHRvdGFscmVmY291bnQsIHJl
c3VsdCwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBjb25maWcgPSB7IlB5X0RFQlVHIjogcHlfZGVi
dWcsICJXSVRIX1BZTUFMTE9DIjogMCwgIlB5X1VOSUNPREVfU0laRSI6IDJ9CisgICAgICAgIG1v
bmtleXBhdGNoLnNldGF0dHIoc3lzY29uZmlnLCAiZ2V0X2NvbmZpZ192YXIiLCBjb25maWcuX19n
ZXRpdGVtX18pCisgICAgICAgIGlmIGdldHRvdGFscmVmY291bnQ6CisgICAgICAgICAgICBtb25r
ZXlwYXRjaC5zZXRhdHRyKHN5cywgImdldHRvdGFscmVmY291bnQiLCAxLCByYWlzaW5nPUZhbHNl
KQorICAgICAgICBleHBlY3RlZCA9IFsiY3AzN2QiIGlmIHJlc3VsdCBlbHNlICJjcDM3Il0KKyAg
ICAgICAgYXNzZXJ0IHRhZ3MuX2NweXRob25fYWJpcygoMywgNykpID09IGV4cGVjdGVkCisKKyAg
ICBkZWYgdGVzdF9kZWJ1Z19maWxlX2V4dGVuc2lvbihzZWxmLCBtb25rZXlwYXRjaCk6CisgICAg
ICAgIGNvbmZpZyA9IHsiUHlfREVCVUciOiBOb25lfQorICAgICAgICBtb25rZXlwYXRjaC5zZXRh
dHRyKHN5c2NvbmZpZywgImdldF9jb25maWdfdmFyIiwgY29uZmlnLl9fZ2V0aXRlbV9fKQorICAg
ICAgICBtb25rZXlwYXRjaC5kZWxhdHRyKHN5cywgImdldHRvdGFscmVmY291bnQiLCByYWlzaW5n
PUZhbHNlKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJFWFRFTlNJT05fU1VG
RklYRVMiLCB7Il9kLnB5ZCJ9KQorICAgICAgICBhc3NlcnQgdGFncy5fY3B5dGhvbl9hYmlzKCgz
LCA4KSkgPT0gWyJjcDM4ZCIsICJjcDM4Il0KKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgKKyAgICAgICAgImRlYnVnLGV4cGVjdGVkIiwgWyhUcnVlLCBbImNwMzhkIiwgImNwMzgiXSks
IChGYWxzZSwgWyJjcDM4Il0pXQorICAgICkKKyAgICBkZWYgdGVzdF9fZGVidWdfY3AzOChzZWxm
LCBkZWJ1ZywgZXhwZWN0ZWQsIG1vbmtleXBhdGNoKToKKyAgICAgICAgY29uZmlnID0geyJQeV9E
RUJVRyI6IGRlYnVnfQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHN5c2NvbmZpZywgImdl
dF9jb25maWdfdmFyIiwgY29uZmlnLl9fZ2V0aXRlbV9fKQorICAgICAgICBhc3NlcnQgdGFncy5f
Y3B5dGhvbl9hYmlzKCgzLCA4KSkgPT0gZXhwZWN0ZWQKKworICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgKKyAgICAgICAgInB5bWFsbG9jLHZlcnNpb24scmVzdWx0IiwKKyAgICAgICAgWwor
ICAgICAgICAgICAgKDEsICgzLCA3KSwgVHJ1ZSksCisgICAgICAgICAgICAoMCwgKDMsIDcpLCBG
YWxzZSksCisgICAgICAgICAgICAoTm9uZSwgKDMsIDcpLCBUcnVlKSwKKyAgICAgICAgICAgICgx
LCAoMywgOCksIEZhbHNlKSwKKyAgICAgICAgXSwKKyAgICApCisgICAgZGVmIHRlc3RfcHltYWxs
b2Moc2VsZiwgcHltYWxsb2MsIHZlcnNpb24sIHJlc3VsdCwgbW9ua2V5cGF0Y2gpOgorICAgICAg
ICBjb25maWcgPSB7IlB5X0RFQlVHIjogMCwgIldJVEhfUFlNQUxMT0MiOiBweW1hbGxvYywgIlB5
X1VOSUNPREVfU0laRSI6IDJ9CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lzY29uZmln
LCAiZ2V0X2NvbmZpZ192YXIiLCBjb25maWcuX19nZXRpdGVtX18pCisgICAgICAgIGJhc2VfYWJp
ID0gImNwe317fSIuZm9ybWF0KHZlcnNpb25bMF0sIHZlcnNpb25bMV0pCisgICAgICAgIGV4cGVj
dGVkID0gW2Jhc2VfYWJpICsgIm0iIGlmIHJlc3VsdCBlbHNlIGJhc2VfYWJpXQorICAgICAgICBh
c3NlcnQgdGFncy5fY3B5dGhvbl9hYmlzKHZlcnNpb24pID09IGV4cGVjdGVkCisKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICJ1bmljb2RlX3NpemUsbWF4dW5pY29kZSx2
ZXJzaW9uLHJlc3VsdCIsCisgICAgICAgIFsKKyAgICAgICAgICAgICg0LCAweDEwRkZGRiwgKDMs
IDIpLCBUcnVlKSwKKyAgICAgICAgICAgICgyLCAweEZGRkYsICgzLCAyKSwgRmFsc2UpLAorICAg
ICAgICAgICAgKE5vbmUsIDB4MTBGRkZGLCAoMywgMiksIFRydWUpLAorICAgICAgICAgICAgKE5v
bmUsIDB4RkZGRiwgKDMsIDIpLCBGYWxzZSksCisgICAgICAgICAgICAoNCwgMHgxMEZGRkYsICgz
LCAzKSwgRmFsc2UpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF93aWRlX3VuaWNv
ZGUoc2VsZiwgdW5pY29kZV9zaXplLCBtYXh1bmljb2RlLCB2ZXJzaW9uLCByZXN1bHQsIG1vbmtl
eXBhdGNoKToKKyAgICAgICAgY29uZmlnID0geyJQeV9ERUJVRyI6IDAsICJXSVRIX1BZTUFMTE9D
IjogMCwgIlB5X1VOSUNPREVfU0laRSI6IHVuaWNvZGVfc2l6ZX0KKyAgICAgICAgbW9ua2V5cGF0
Y2guc2V0YXR0cihzeXNjb25maWcsICJnZXRfY29uZmlnX3ZhciIsIGNvbmZpZy5fX2dldGl0ZW1f
XykKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMsICJtYXh1bmljb2RlIiwgbWF4dW5p
Y29kZSkKKyAgICAgICAgYmFzZV9hYmkgPSAiY3AiICsgdGFncy5fdmVyc2lvbl9ub2RvdCh2ZXJz
aW9uKQorICAgICAgICBleHBlY3RlZCA9IFtiYXNlX2FiaSArICJ1IiBpZiByZXN1bHQgZWxzZSBi
YXNlX2FiaV0KKyAgICAgICAgYXNzZXJ0IHRhZ3MuX2NweXRob25fYWJpcyh2ZXJzaW9uKSA9PSBl
eHBlY3RlZAorCisKK2NsYXNzIFRlc3RDUHl0aG9uVGFnczoKKyAgICBkZWYgdGVzdF9pdGVyYXRv
cl9yZXR1cm5lZChzZWxmKToKKyAgICAgICAgcmVzdWx0X2l0ZXJhdG9yID0gdGFncy5jcHl0aG9u
X3RhZ3MoCisgICAgICAgICAgICAoMywgOCksIFsiY3AzOGQiLCAiY3AzOCJdLCBbInBsYXQxIiwg
InBsYXQyIl0KKyAgICAgICAgKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHRfaXRl
cmF0b3IsIGNvbGxlY3Rpb25zX2FiYy5JdGVyYXRvcikKKworICAgIGRlZiB0ZXN0X2FsbF9hcmdz
KHNlbGYpOgorICAgICAgICByZXN1bHRfaXRlcmF0b3IgPSB0YWdzLmNweXRob25fdGFncygKKyAg
ICAgICAgICAgICgzLCAxMSksIFsiY3AzXzExZCIsICJjcDNfMTEiXSwgWyJwbGF0MSIsICJwbGF0
MiJdCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gbGlzdChyZXN1bHRfaXRlcmF0b3IpCisg
ICAgICAgIGFzc2VydCByZXN1bHQgPT0gWworICAgICAgICAgICAgdGFncy5UYWcoImNwM18xMSIs
ICJjcDNfMTFkIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzXzExIiwgImNw
M18xMWQiLCAicGxhdDIiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDNfMTEiLCAiY3AzXzEx
IiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzXzExIiwgImNwM18xMSIsICJw
bGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwM18xMSIsICJhYmkzIiwgInBsYXQxIiks
CisgICAgICAgICAgICB0YWdzLlRhZygiY3AzXzExIiwgImFiaTMiLCAicGxhdDIiKSwKKyAgICAg
ICAgICAgIHRhZ3MuVGFnKCJjcDNfMTEiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAg
dGFncy5UYWcoImNwM18xMSIsICJub25lIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRh
ZygiY3AzXzEwIiwgImFiaTMiLCAicGxhdDEiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDNf
MTAiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzkiLCAiYWJp
MyIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzkiLCAiYWJpMyIsICJwbGF0
MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzgiLCAiYWJpMyIsICJwbGF0MSIpLAorICAg
ICAgICAgICAgdGFncy5UYWcoImNwMzgiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICAgICAg
dGFncy5UYWcoImNwMzciLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWco
ImNwMzciLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzYiLCAi
YWJpMyIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzYiLCAiYWJpMyIsICJw
bGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzUiLCAiYWJpMyIsICJwbGF0MSIpLAor
ICAgICAgICAgICAgdGFncy5UYWcoImNwMzUiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICAg
ICAgdGFncy5UYWcoImNwMzQiLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5U
YWcoImNwMzQiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzMi
LCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzMiLCAiYWJpMyIs
ICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzIiLCAiYWJpMyIsICJwbGF0MSIp
LAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzIiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAg
ICBdCisgICAgICAgIHJlc3VsdF9pdGVyYXRvciA9IHRhZ3MuY3B5dGhvbl90YWdzKAorICAgICAg
ICAgICAgKDMsIDgpLCBbImNwMzhkIiwgImNwMzgiXSwgWyJwbGF0MSIsICJwbGF0MiJdCisgICAg
ICAgICkKKyAgICAgICAgcmVzdWx0ID0gbGlzdChyZXN1bHRfaXRlcmF0b3IpCisgICAgICAgIGFz
c2VydCByZXN1bHQgPT0gWworICAgICAgICAgICAgdGFncy5UYWcoImNwMzgiLCAiY3AzOGQiLCAi
cGxhdDEiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDM4IiwgImNwMzhkIiwgInBsYXQyIiks
CisgICAgICAgICAgICB0YWdzLlRhZygiY3AzOCIsICJjcDM4IiwgInBsYXQxIiksCisgICAgICAg
ICAgICB0YWdzLlRhZygiY3AzOCIsICJjcDM4IiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdz
LlRhZygiY3AzOCIsICJhYmkzIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3Az
OCIsICJhYmkzIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzOCIsICJub25l
IiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzOCIsICJub25lIiwgInBsYXQy
IiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzNyIsICJhYmkzIiwgInBsYXQxIiksCisgICAg
ICAgICAgICB0YWdzLlRhZygiY3AzNyIsICJhYmkzIiwgInBsYXQyIiksCisgICAgICAgICAgICB0
YWdzLlRhZygiY3AzNiIsICJhYmkzIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygi
Y3AzNiIsICJhYmkzIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzNSIsICJh
YmkzIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzNSIsICJhYmkzIiwgInBs
YXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzNCIsICJhYmkzIiwgInBsYXQxIiksCisg
ICAgICAgICAgICB0YWdzLlRhZygiY3AzNCIsICJhYmkzIiwgInBsYXQyIiksCisgICAgICAgICAg
ICB0YWdzLlRhZygiY3AzMyIsICJhYmkzIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRh
ZygiY3AzMyIsICJhYmkzIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzMiIs
ICJhYmkzIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzMiIsICJhYmkzIiwg
InBsYXQyIiksCisgICAgICAgIF0KKworICAgICAgICByZXN1bHQgPSBsaXN0KHRhZ3MuY3B5dGhv
bl90YWdzKCgzLCAzKSwgWyJjcDMzbSJdLCBbInBsYXQxIiwgInBsYXQyIl0pKQorICAgICAgICBh
c3NlcnQgcmVzdWx0ID09IFsKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDMzIiwgImNwMzNtIiwg
InBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygiY3AzMyIsICJjcDMzbSIsICJwbGF0MiIp
LAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzMiLCAiYWJpMyIsICJwbGF0MSIpLAorICAgICAg
ICAgICAgdGFncy5UYWcoImNwMzMiLCAiYWJpMyIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFn
cy5UYWcoImNwMzMiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNw
MzMiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzIiLCAiYWJp
MyIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzIiLCAiYWJpMyIsICJwbGF0
MiIpLAorICAgICAgICBdCisKKyAgICBkZWYgdGVzdF9weXRob25fdmVyc2lvbl9kZWZhdWx0cyhz
ZWxmKToKKyAgICAgICAgdGFnID0gbmV4dCh0YWdzLmNweXRob25fdGFncyhhYmlzPVsiYWJpMyJd
LCBwbGF0Zm9ybXM9WyJhbnkiXSkpCisgICAgICAgIGludGVycHJldGVyID0gImNwIiArIHRhZ3Mu
X3ZlcnNpb25fbm9kb3Qoc3lzLnZlcnNpb25faW5mb1s6Ml0pCisgICAgICAgIGFzc2VydCBpbnRl
cnByZXRlciA9PSB0YWcuaW50ZXJwcmV0ZXIKKworICAgIGRlZiB0ZXN0X2FiaV9kZWZhdWx0cyhz
ZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9j
cHl0aG9uX2FiaXMiLCBsYW1iZGEgXzEsIF8yOiBbImNwMzgiXSkKKyAgICAgICAgcmVzdWx0ID0g
bGlzdCh0YWdzLmNweXRob25fdGFncygoMywgOCksIHBsYXRmb3Jtcz1bImFueSJdKSkKKyAgICAg
ICAgYXNzZXJ0IHRhZ3MuVGFnKCJjcDM4IiwgImNwMzgiLCAiYW55IikgaW4gcmVzdWx0CisgICAg
ICAgIGFzc2VydCB0YWdzLlRhZygiY3AzOCIsICJhYmkzIiwgImFueSIpIGluIHJlc3VsdAorICAg
ICAgICBhc3NlcnQgdGFncy5UYWcoImNwMzgiLCAibm9uZSIsICJhbnkiKSBpbiByZXN1bHQKKwor
ICAgIGRlZiB0ZXN0X2FiaV9kZWZhdWx0c19uZWVkc191bmRlcnNjb3JlKHNlbGYsIG1vbmtleXBh
dGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2NweXRob25fYWJpcyIs
IGxhbWJkYSBfMSwgXzI6IFsiY3AzXzExIl0pCisgICAgICAgIHJlc3VsdCA9IGxpc3QodGFncy5j
cHl0aG9uX3RhZ3MoKDMsIDExKSwgcGxhdGZvcm1zPVsiYW55Il0pKQorICAgICAgICBhc3NlcnQg
dGFncy5UYWcoImNwM18xMSIsICJjcDNfMTEiLCAiYW55IikgaW4gcmVzdWx0CisgICAgICAgIGFz
c2VydCB0YWdzLlRhZygiY3AzXzExIiwgImFiaTMiLCAiYW55IikgaW4gcmVzdWx0CisgICAgICAg
IGFzc2VydCB0YWdzLlRhZygiY3AzXzExIiwgIm5vbmUiLCAiYW55IikgaW4gcmVzdWx0CisKKyAg
ICBkZWYgdGVzdF9wbGF0Zm9ybXNfZGVmYXVsdHMoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfcGxhdGZvcm1fdGFncyIsIGxhbWJkYTogWyJw
bGF0MSJdKQorICAgICAgICByZXN1bHQgPSBsaXN0KHRhZ3MuY3B5dGhvbl90YWdzKCgzLCA4KSwg
YWJpcz1bIndoYXRldmVyIl0pKQorICAgICAgICBhc3NlcnQgdGFncy5UYWcoImNwMzgiLCAid2hh
dGV2ZXIiLCAicGxhdDEiKSBpbiByZXN1bHQKKworICAgIGRlZiB0ZXN0X3BsYXRmb3Jtc19kZWZh
dWx0c19uZWVkc191bmRlcnNjb3JlKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5
cGF0Y2guc2V0YXR0cih0YWdzLCAiX3BsYXRmb3JtX3RhZ3MiLCBsYW1iZGE6IFsicGxhdDEiXSkK
KyAgICAgICAgcmVzdWx0ID0gbGlzdCh0YWdzLmNweXRob25fdGFncygoMywgMTEpLCBhYmlzPVsi
d2hhdGV2ZXIiXSkpCisgICAgICAgIGFzc2VydCB0YWdzLlRhZygiY3AzXzExIiwgIndoYXRldmVy
IiwgInBsYXQxIikgaW4gcmVzdWx0CisKKyAgICBkZWYgdGVzdF9tYWpvcl9vbmx5X3B5dGhvbl92
ZXJzaW9uKHNlbGYpOgorICAgICAgICByZXN1bHQgPSBsaXN0KHRhZ3MuY3B5dGhvbl90YWdzKCgz
LCksIFsiYWJpIl0sIFsicGxhdCJdKSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbCisgICAg
ICAgICAgICB0YWdzLlRhZygiY3AzIiwgImFiaSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdz
LlRhZygiY3AzIiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICBdCisKKyAgICBkZWYgdGVzdF9t
YWpvcl9vbmx5X3B5dGhvbl92ZXJzaW9uX3dpdGhfZGVmYXVsdF9hYmlzKHNlbGYpOgorICAgICAg
ICByZXN1bHQgPSBsaXN0KHRhZ3MuY3B5dGhvbl90YWdzKCgzLCksIHBsYXRmb3Jtcz1bInBsYXQi
XSkpCisgICAgICAgIGFzc2VydCByZXN1bHQgPT0gW3RhZ3MuVGFnKCJjcDMiLCAibm9uZSIsICJw
bGF0IildCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImFiaXMiLCBbW10sIFsiYWJp
MyJdLCBbIm5vbmUiXV0pCisgICAgZGVmIHRlc3Rfc2tpcF9yZWR1bmRhbnRfYWJpcyhzZWxmLCBh
YmlzKToKKyAgICAgICAgcmVzdWx0cyA9IGxpc3QodGFncy5jcHl0aG9uX3RhZ3MoKDMsIDApLCBh
YmlzPWFiaXMsIHBsYXRmb3Jtcz1bImFueSJdKSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdHMgPT0g
W3RhZ3MuVGFnKCJjcDMwIiwgIm5vbmUiLCAiYW55IildCisKKyAgICBkZWYgdGVzdF9hYmkzX3B5
dGhvbjMzKHNlbGYpOgorICAgICAgICByZXN1bHRzID0gbGlzdCh0YWdzLmNweXRob25fdGFncygo
MywgMyksIGFiaXM9WyJjcDMzIl0sIHBsYXRmb3Jtcz1bInBsYXQiXSkpCisgICAgICAgIGFzc2Vy
dCByZXN1bHRzID09IFsKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDMzIiwgImNwMzMiLCAicGxh
dCIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzMiLCAiYWJpMyIsICJwbGF0IiksCisgICAg
ICAgICAgICB0YWdzLlRhZygiY3AzMyIsICJub25lIiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRh
Z3MuVGFnKCJjcDMyIiwgImFiaTMiLCAicGxhdCIpLAorICAgICAgICBdCisKKyAgICBkZWYgdGVz
dF9ub19leGNlc3NfYWJpM19weXRob24zMihzZWxmKToKKyAgICAgICAgcmVzdWx0cyA9IGxpc3Qo
dGFncy5jcHl0aG9uX3RhZ3MoKDMsIDIpLCBhYmlzPVsiY3AzMiJdLCBwbGF0Zm9ybXM9WyJwbGF0
Il0pKQorICAgICAgICBhc3NlcnQgcmVzdWx0cyA9PSBbCisgICAgICAgICAgICB0YWdzLlRhZygi
Y3AzMiIsICJjcDMyIiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDMyIiwgImFi
aTMiLCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzIiLCAibm9uZSIsICJwbGF0
IiksCisgICAgICAgIF0KKworICAgIGRlZiB0ZXN0X25vX2FiaTNfcHl0aG9uMzEoc2VsZik6Cisg
ICAgICAgIHJlc3VsdHMgPSBsaXN0KHRhZ3MuY3B5dGhvbl90YWdzKCgzLCAxKSwgYWJpcz1bImNw
MzEiXSwgcGxhdGZvcm1zPVsicGxhdCJdKSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdHMgPT0gWwor
ICAgICAgICAgICAgdGFncy5UYWcoImNwMzEiLCAiY3AzMSIsICJwbGF0IiksCisgICAgICAgICAg
ICB0YWdzLlRhZygiY3AzMSIsICJub25lIiwgInBsYXQiKSwKKyAgICAgICAgXQorCisgICAgZGVm
IHRlc3Rfbm9fYWJpM19weXRob24yNyhzZWxmKToKKyAgICAgICAgcmVzdWx0cyA9IGxpc3QodGFn
cy5jcHl0aG9uX3RhZ3MoKDIsIDcpLCBhYmlzPVsiY3AyNyJdLCBwbGF0Zm9ybXM9WyJwbGF0Il0p
KQorICAgICAgICBhc3NlcnQgcmVzdWx0cyA9PSBbCisgICAgICAgICAgICB0YWdzLlRhZygiY3Ay
NyIsICJjcDI3IiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDI3IiwgIm5vbmUi
LCAicGxhdCIpLAorICAgICAgICBdCisKKworY2xhc3MgVGVzdEdlbmVyaWNUYWdzOgorICAgIEBw
eXRlc3QubWFyay5za2lwaWYoCisgICAgICAgIG5vdCBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIo
IlNPQUJJIiksIHJlYXNvbj0iU09BQkkgbm90IGRlZmluZWQiCisgICAgKQorICAgIGRlZiB0ZXN0
X19nZW5lcmljX2FiaV9zb2FiaV9wcm92aWRlZChzZWxmKToKKyAgICAgICAgYWJpID0gc3lzY29u
ZmlnLmdldF9jb25maWdfdmFyKCJTT0FCSSIpLnJlcGxhY2UoIi4iLCAiXyIpLnJlcGxhY2UoIi0i
LCAiXyIpCisgICAgICAgIGFzc2VydCBbYWJpXSA9PSBsaXN0KHRhZ3MuX2dlbmVyaWNfYWJpKCkp
CisKKyAgICBkZWYgdGVzdF9fZ2VuZXJpY19hYmkoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAgICAgc3lzY29uZmlnLCAiZ2V0X2NvbmZp
Z192YXIiLCBsYW1iZGEga2V5OiAiY3B5dGhvbi0zN20tZGFyd2luIgorICAgICAgICApCisgICAg
ICAgIGFzc2VydCBsaXN0KHRhZ3MuX2dlbmVyaWNfYWJpKCkpID09IFsiY3B5dGhvbl8zN21fZGFy
d2luIl0KKworICAgIGRlZiB0ZXN0X19nZW5lcmljX2FiaV9ub19zb2FiaShzZWxmLCBtb25rZXlw
YXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lzY29uZmlnLCAiZ2V0X2NvbmZp
Z192YXIiLCBsYW1iZGEga2V5OiBOb25lKQorICAgICAgICBhc3NlcnQgbm90IGxpc3QodGFncy5f
Z2VuZXJpY19hYmkoKSkKKworICAgIGRlZiB0ZXN0X2dlbmVyaWNfcGxhdGZvcm1zKHNlbGYpOgor
ICAgICAgICBwbGF0Zm9ybSA9IGRpc3R1dGlscy51dGlsLmdldF9wbGF0Zm9ybSgpLnJlcGxhY2Uo
Ii0iLCAiXyIpCisgICAgICAgIHBsYXRmb3JtID0gcGxhdGZvcm0ucmVwbGFjZSgiLiIsICJfIikK
KyAgICAgICAgYXNzZXJ0IGxpc3QodGFncy5fZ2VuZXJpY19wbGF0Zm9ybXMoKSkgPT0gW3BsYXRm
b3JtXQorCisgICAgZGVmIHRlc3RfaXRlcmF0b3JfcmV0dXJuZWQoc2VsZik6CisgICAgICAgIHJl
c3VsdF9pdGVyYXRvciA9IHRhZ3MuZ2VuZXJpY190YWdzKCJzaWxseXdhbGszMyIsIFsiYWJpIl0s
IFsicGxhdDEiLCAicGxhdDIiXSkKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0X2l0
ZXJhdG9yLCBjb2xsZWN0aW9uc19hYmMuSXRlcmF0b3IpCisKKyAgICBkZWYgdGVzdF9hbGxfYXJn
cyhzZWxmKToKKyAgICAgICAgcmVzdWx0X2l0ZXJhdG9yID0gdGFncy5nZW5lcmljX3RhZ3MoInNp
bGx5d2FsazMzIiwgWyJhYmkiXSwgWyJwbGF0MSIsICJwbGF0MiJdKQorICAgICAgICByZXN1bHQg
PSBsaXN0KHJlc3VsdF9pdGVyYXRvcikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbCisgICAg
ICAgICAgICB0YWdzLlRhZygic2lsbHl3YWxrMzMiLCAiYWJpIiwgInBsYXQxIiksCisgICAgICAg
ICAgICB0YWdzLlRhZygic2lsbHl3YWxrMzMiLCAiYWJpIiwgInBsYXQyIiksCisgICAgICAgICAg
ICB0YWdzLlRhZygic2lsbHl3YWxrMzMiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAg
dGFncy5UYWcoInNpbGx5d2FsazMzIiwgIm5vbmUiLCAicGxhdDIiKSwKKyAgICAgICAgXQorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJhYmkiLCBbW10sIFsibm9uZSJdXSkKKyAgICBk
ZWYgdGVzdF9hYmlfdW5zcGVjaWZpZWQoc2VsZiwgYWJpKToKKyAgICAgICAgbm9fYWJpID0gbGlz
dCh0YWdzLmdlbmVyaWNfdGFncygic2lsbHl3YWxrMzQiLCBhYmksIFsicGxhdDEiLCAicGxhdDIi
XSkpCisgICAgICAgIGFzc2VydCBub19hYmkgPT0gWworICAgICAgICAgICAgdGFncy5UYWcoInNp
bGx5d2FsazM0IiwgIm5vbmUiLCAicGxhdDEiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJzaWxs
eXdhbGszNCIsICJub25lIiwgInBsYXQyIiksCisgICAgICAgIF0KKworICAgIGRlZiB0ZXN0X2lu
dGVycHJldGVyX2RlZmF1bHQoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRj
aC5zZXRhdHRyKHRhZ3MsICJpbnRlcnByZXRlcl9uYW1lIiwgbGFtYmRhOiAic2lsbHl3YWxrIikK
KyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiaW50ZXJwcmV0ZXJfdmVyc2lvbiIs
IGxhbWJkYSB3YXJuOiAiTk4iKQorICAgICAgICByZXN1bHQgPSBsaXN0KHRhZ3MuZ2VuZXJpY190
YWdzKGFiaXM9WyJub25lIl0sIHBsYXRmb3Jtcz1bImFueSJdKSkKKyAgICAgICAgYXNzZXJ0IHJl
c3VsdCA9PSBbdGFncy5UYWcoInNpbGx5d2Fsa05OIiwgIm5vbmUiLCAiYW55IildCisKKyAgICBk
ZWYgdGVzdF9hYmlzX2RlZmF1bHQoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlw
YXRjaC5zZXRhdHRyKHRhZ3MsICJfZ2VuZXJpY19hYmkiLCBsYW1iZGE6IGl0ZXIoWyJhYmkiXSkp
CisgICAgICAgIHJlc3VsdCA9IGxpc3QodGFncy5nZW5lcmljX3RhZ3MoaW50ZXJwcmV0ZXI9InNp
bGx5d2FsayIsIHBsYXRmb3Jtcz1bImFueSJdKSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBb
CisgICAgICAgICAgICB0YWdzLlRhZygic2lsbHl3YWxrIiwgImFiaSIsICJhbnkiKSwKKyAgICAg
ICAgICAgIHRhZ3MuVGFnKCJzaWxseXdhbGsiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgXQor
CisgICAgZGVmIHRlc3RfcGxhdGZvcm1zX2RlZmF1bHQoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAg
ICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfcGxhdGZvcm1fdGFncyIsIGxhbWJkYTog
WyJwbGF0Il0pCisgICAgICAgIHJlc3VsdCA9IGxpc3QodGFncy5nZW5lcmljX3RhZ3MoaW50ZXJw
cmV0ZXI9InNpbGx5d2FsayIsIGFiaXM9WyJub25lIl0pKQorICAgICAgICBhc3NlcnQgcmVzdWx0
ID09IFt0YWdzLlRhZygic2lsbHl3YWxrIiwgIm5vbmUiLCAicGxhdCIpXQorCisKK2NsYXNzIFRl
c3RDb21wYXRpYmxlVGFnczoKKyAgICBkZWYgdGVzdF9hbGxfYXJncyhzZWxmKToKKyAgICAgICAg
cmVzdWx0ID0gbGlzdCh0YWdzLmNvbXBhdGlibGVfdGFncygoMywgMyksICJjcDMzIiwgWyJwbGF0
MSIsICJwbGF0MiJdKSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbCisgICAgICAgICAgICB0
YWdzLlRhZygicHkzMyIsICJub25lIiwgInBsYXQxIiksCisgICAgICAgICAgICB0YWdzLlRhZygi
cHkzMyIsICJub25lIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzIiwgIm5v
bmUiLCAicGxhdDEiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMiLCAibm9uZSIsICJwbGF0
MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzIiLCAibm9uZSIsICJwbGF0MSIpLAorICAg
ICAgICAgICAgdGFncy5UYWcoInB5MzIiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAg
dGFncy5UYWcoInB5MzEiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWco
InB5MzEiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAi
bm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJw
bGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoImNwMzMiLCAibm9uZSIsICJhbnkiKSwKKyAg
ICAgICAgICAgIHRhZ3MuVGFnKCJweTMzIiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0
YWdzLlRhZygicHkzIiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkz
MiIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzEiLCAibm9uZSIs
ICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMwIiwgIm5vbmUiLCAiYW55IiksCisg
ICAgICAgIF0KKworICAgIGRlZiB0ZXN0X2FsbF9hcmdzX25lZWRzX3VuZGVyc2NvcmUoc2VsZik6
CisgICAgICAgIHJlc3VsdCA9IGxpc3QodGFncy5jb21wYXRpYmxlX3RhZ3MoKDMsIDExKSwgImNw
M18xMSIsIFsicGxhdDEiLCAicGxhdDIiXSkpCisgICAgICAgIGFzc2VydCByZXN1bHQgPT0gWwor
ICAgICAgICAgICAgdGFncy5UYWcoInB5M18xMSIsICJub25lIiwgInBsYXQxIiksCisgICAgICAg
ICAgICB0YWdzLlRhZygicHkzXzExIiwgIm5vbmUiLCAicGxhdDIiKSwKKyAgICAgICAgICAgIHRh
Z3MuVGFnKCJweTMiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5
MyIsICJub25lIiwgInBsYXQyIiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzXzEwIiwgIm5v
bmUiLCAicGxhdDEiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTNfMTAiLCAibm9uZSIsICJw
bGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzkiLCAibm9uZSIsICJwbGF0MSIpLAor
ICAgICAgICAgICAgdGFncy5UYWcoInB5MzkiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAg
ICAgdGFncy5UYWcoInB5MzgiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5U
YWcoInB5MzgiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5Mzci
LCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzciLCAibm9uZSIs
ICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzYiLCAibm9uZSIsICJwbGF0MSIp
LAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzYiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAg
ICAgICAgdGFncy5UYWcoInB5MzUiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFn
cy5UYWcoInB5MzUiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5
MzQiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzQiLCAibm9u
ZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzMiLCAibm9uZSIsICJwbGF0
MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzMiLCAibm9uZSIsICJwbGF0MiIpLAorICAg
ICAgICAgICAgdGFncy5UYWcoInB5MzIiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAg
dGFncy5UYWcoInB5MzIiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWco
InB5MzEiLCAibm9uZSIsICJwbGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzEiLCAi
bm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJw
bGF0MSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJwbGF0MiIpLAor
ICAgICAgICAgICAgdGFncy5UYWcoImNwM18xMSIsICJub25lIiwgImFueSIpLAorICAgICAgICAg
ICAgdGFncy5UYWcoInB5M18xMSIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5U
YWcoInB5MyIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5M18xMCIs
ICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzkiLCAibm9uZSIsICJh
bnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTM4IiwgIm5vbmUiLCAiYW55IiksCisgICAg
ICAgICAgICB0YWdzLlRhZygicHkzNyIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFn
cy5UYWcoInB5MzYiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTM1
IiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzNCIsICJub25lIiwg
ImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzMiLCAibm9uZSIsICJhbnkiKSwKKyAg
ICAgICAgICAgIHRhZ3MuVGFnKCJweTMyIiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0
YWdzLlRhZygicHkzMSIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5
MzAiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgXQorCisgICAgZGVmIHRlc3RfbWFqb3Jfb25s
eV9weXRob25fdmVyc2lvbihzZWxmKToKKyAgICAgICAgcmVzdWx0ID0gbGlzdCh0YWdzLmNvbXBh
dGlibGVfdGFncygoMywpLCAiY3AzMyIsIFsicGxhdCJdKSkKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dCA9PSBbCisgICAgICAgICAgICB0YWdzLlRhZygicHkzIiwgIm5vbmUiLCAicGxhdCIpLAorICAg
ICAgICAgICAgdGFncy5UYWcoImNwMzMiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRh
Z3MuVGFnKCJweTMiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgXQorCisgICAgZGVmIHRlc3Rf
ZGVmYXVsdF9weXRob25fdmVyc2lvbihzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtl
eXBhdGNoLnNldGF0dHIoc3lzLCAidmVyc2lvbl9pbmZvIiwgKDMsIDEpKQorICAgICAgICByZXN1
bHQgPSBsaXN0KHRhZ3MuY29tcGF0aWJsZV90YWdzKGludGVycHJldGVyPSJjcDMxIiwgcGxhdGZv
cm1zPVsicGxhdCJdKSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbCisgICAgICAgICAgICB0
YWdzLlRhZygicHkzMSIsICJub25lIiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJw
eTMiLCAibm9uZSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzMCIsICJub25l
IiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJjcDMxIiwgIm5vbmUiLCAiYW55Iiks
CisgICAgICAgICAgICB0YWdzLlRhZygicHkzMSIsICJub25lIiwgImFueSIpLAorICAgICAgICAg
ICAgdGFncy5UYWcoInB5MyIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWco
InB5MzAiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgXQorCisgICAgZGVmIHRlc3RfZGVmYXVs
dF9weXRob25fdmVyc2lvbl9uZWVkc191bmRlcnNjb3JlKHNlbGYsIG1vbmtleXBhdGNoKToKKyAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMsICJ2ZXJzaW9uX2luZm8iLCAoMywgMTEpKQor
ICAgICAgICByZXN1bHQgPSBsaXN0KHRhZ3MuY29tcGF0aWJsZV90YWdzKGludGVycHJldGVyPSJj
cDNfMTEiLCBwbGF0Zm9ybXM9WyJwbGF0Il0pKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsK
KyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTNfMTEiLCAibm9uZSIsICJwbGF0IiksCisgICAgICAg
ICAgICB0YWdzLlRhZygicHkzIiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5U
YWcoInB5M18xMCIsICJub25lIiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTM5
IiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzgiLCAibm9uZSIs
ICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzNyIsICJub25lIiwgInBsYXQiKSwK
KyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTM2IiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICAg
ICAgdGFncy5UYWcoInB5MzUiLCAibm9uZSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRh
ZygicHkzNCIsICJub25lIiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMzIiwg
Im5vbmUiLCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzIiLCAibm9uZSIsICJw
bGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzMSIsICJub25lIiwgInBsYXQiKSwKKyAg
ICAgICAgICAgIHRhZ3MuVGFnKCJweTMwIiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICAgICAg
dGFncy5UYWcoImNwM18xMSIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWco
InB5M18xMSIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MyIsICJu
b25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5M18xMCIsICJub25lIiwgImFu
eSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzkiLCAibm9uZSIsICJhbnkiKSwKKyAgICAg
ICAgICAgIHRhZ3MuVGFnKCJweTM4IiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0YWdz
LlRhZygicHkzNyIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzYi
LCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTM1IiwgIm5vbmUiLCAi
YW55IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzNCIsICJub25lIiwgImFueSIpLAorICAg
ICAgICAgICAgdGFncy5UYWcoInB5MzMiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRh
Z3MuVGFnKCJweTMyIiwgIm5vbmUiLCAiYW55IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkz
MSIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIs
ICJhbnkiKSwKKyAgICAgICAgXQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF9pbnRlcnByZXRlcihz
ZWxmKToKKyAgICAgICAgcmVzdWx0ID0gbGlzdCh0YWdzLmNvbXBhdGlibGVfdGFncygoMywgMSks
IHBsYXRmb3Jtcz1bInBsYXQiXSkpCisgICAgICAgIGFzc2VydCByZXN1bHQgPT0gWworICAgICAg
ICAgICAgdGFncy5UYWcoInB5MzEiLCAibm9uZSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdz
LlRhZygicHkzIiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAi
LCAibm9uZSIsICJwbGF0IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzMSIsICJub25lIiwg
ImFueSIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MyIsICJub25lIiwgImFueSIpLAorICAg
ICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgXQorCisg
ICAgZGVmIHRlc3RfZGVmYXVsdF9wbGF0Zm9ybXMoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfcGxhdGZvcm1fdGFncyIsIGxhbWJkYTogaXRl
cihbInBsYXQiLCAicGxhdDIiXSkpCisgICAgICAgIHJlc3VsdCA9IGxpc3QodGFncy5jb21wYXRp
YmxlX3RhZ3MoKDMsIDEpLCAiY3AzMSIpKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsKKyAg
ICAgICAgICAgIHRhZ3MuVGFnKCJweTMxIiwgIm5vbmUiLCAicGxhdCIpLAorICAgICAgICAgICAg
dGFncy5UYWcoInB5MzEiLCAibm9uZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWco
InB5MyIsICJub25lIiwgInBsYXQiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMiLCAibm9u
ZSIsICJwbGF0MiIpLAorICAgICAgICAgICAgdGFncy5UYWcoInB5MzAiLCAibm9uZSIsICJwbGF0
IiksCisgICAgICAgICAgICB0YWdzLlRhZygicHkzMCIsICJub25lIiwgInBsYXQyIiksCisgICAg
ICAgICAgICB0YWdzLlRhZygiY3AzMSIsICJub25lIiwgImFueSIpLAorICAgICAgICAgICAgdGFn
cy5UYWcoInB5MzEiLCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMi
LCAibm9uZSIsICJhbnkiKSwKKyAgICAgICAgICAgIHRhZ3MuVGFnKCJweTMwIiwgIm5vbmUiLCAi
YW55IiksCisgICAgICAgIF0KKworCitjbGFzcyBUZXN0U3lzVGFnczoKKyAgICBkZWYgdGVhcmRv
d25fbWV0aG9kKHNlbGYpOgorICAgICAgICAjIENsZWFyIHRoZSB2ZXJzaW9uIGNhY2hlCisgICAg
ICAgIHRhZ3MuX2dsaWJjX3ZlcnNpb24gPSBbXQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKAorICAgICAgICAibmFtZSxleHBlY3RlZCIsCisgICAgICAgIFsoIkNQeXRob24iLCAiY3Ai
KSwgKCJQeVB5IiwgInBwIiksICgiSnl0aG9uIiwgImp5IiksICgiSXJvblB5dGhvbiIsICJpcCIp
XSwKKyAgICApCisgICAgZGVmIHRlc3RfaW50ZXJwcmV0ZXJfbmFtZShzZWxmLCBuYW1lLCBleHBl
Y3RlZCwgbW9ja19pbnRlcnByZXRlcl9uYW1lKToKKyAgICAgICAgbW9ja19pbnRlcnByZXRlcl9u
YW1lKG5hbWUpCisgICAgICAgIGFzc2VydCB0YWdzLmludGVycHJldGVyX25hbWUoKSA9PSBleHBl
Y3RlZAorCisgICAgZGVmIHRlc3RfaXRlcmF0b3Ioc2VsZik6CisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKHRhZ3Muc3lzX3RhZ3MoKSwgY29sbGVjdGlvbnNfYWJjLkl0ZXJhdG9yKQorCisgICAg
ZGVmIHRlc3RfbWFjX2NweXRob24oc2VsZiwgbW9ja19pbnRlcnByZXRlcl9uYW1lLCBtb25rZXlw
YXRjaCk6CisgICAgICAgIGlmIG1vY2tfaW50ZXJwcmV0ZXJfbmFtZSgiQ1B5dGhvbiIpOgorICAg
ICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2NweXRob25fYWJpcyIsIGxhbWJk
YSAqYTogWyJjcDMzbSJdKQorICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSAhPSAiRGFyd2lu
IjoKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIocGxhdGZvcm0sICJzeXN0ZW0iLCBs
YW1iZGE6ICJEYXJ3aW4iKQorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAi
bWFjX3BsYXRmb3JtcyIsIGxhbWJkYTogWyJtYWNvc3hfMTBfNV94ODZfNjQiXSkKKyAgICAgICAg
YWJpcyA9IHRhZ3MuX2NweXRob25fYWJpcyhzeXMudmVyc2lvbl9pbmZvWzoyXSkKKyAgICAgICAg
cGxhdGZvcm1zID0gbGlzdCh0YWdzLm1hY19wbGF0Zm9ybXMoKSkKKyAgICAgICAgcmVzdWx0ID0g
bGlzdCh0YWdzLnN5c190YWdzKCkpCisgICAgICAgIGFzc2VydCBsZW4oYWJpcykgPT0gMQorICAg
ICAgICBhc3NlcnQgcmVzdWx0WzBdID09IHRhZ3MuVGFnKAorICAgICAgICAgICAgImNwIiArIHRh
Z3MuX3ZlcnNpb25fbm9kb3Qoc3lzLnZlcnNpb25faW5mb1s6Ml0pLCBhYmlzWzBdLCBwbGF0Zm9y
bXNbMF0KKyAgICAgICAgKQorICAgICAgICBhc3NlcnQgcmVzdWx0Wy0xXSA9PSB0YWdzLlRhZygK
KyAgICAgICAgICAgICJweSIgKyB0YWdzLl92ZXJzaW9uX25vZG90KChzeXMudmVyc2lvbl9pbmZv
WzBdLCAwKSksICJub25lIiwgImFueSIKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rfd2luZG93
c19jcHl0aG9uKHNlbGYsIG1vY2tfaW50ZXJwcmV0ZXJfbmFtZSwgbW9ua2V5cGF0Y2gpOgorICAg
ICAgICBpZiBtb2NrX2ludGVycHJldGVyX25hbWUoIkNQeXRob24iKToKKyAgICAgICAgICAgIG1v
bmtleXBhdGNoLnNldGF0dHIodGFncywgIl9jcHl0aG9uX2FiaXMiLCBsYW1iZGEgKmE6IFsiY3Az
M20iXSkKKyAgICAgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgIT0gIldpbmRvd3MiOgorICAgICAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihwbGF0Zm9ybSwgInN5c3RlbSIsIGxhbWJkYTogIldp
bmRvd3MiKQorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2dlbmVyaWNf
cGxhdGZvcm1zIiwgbGFtYmRhOiBbIndpbl9hbWQ2NCJdKQorICAgICAgICBhYmlzID0gbGlzdCh0
YWdzLl9jcHl0aG9uX2FiaXMoc3lzLnZlcnNpb25faW5mb1s6Ml0pKQorICAgICAgICBwbGF0Zm9y
bXMgPSBsaXN0KHRhZ3MuX2dlbmVyaWNfcGxhdGZvcm1zKCkpCisgICAgICAgIHJlc3VsdCA9IGxp
c3QodGFncy5zeXNfdGFncygpKQorICAgICAgICBpbnRlcnByZXRlciA9ICJjcCIgKyB0YWdzLl92
ZXJzaW9uX25vZG90KHN5cy52ZXJzaW9uX2luZm9bOjJdKQorICAgICAgICBhc3NlcnQgbGVuKGFi
aXMpID09IDEKKyAgICAgICAgZXhwZWN0ZWQgPSB0YWdzLlRhZyhpbnRlcnByZXRlciwgYWJpc1sw
XSwgcGxhdGZvcm1zWzBdKQorICAgICAgICBhc3NlcnQgcmVzdWx0WzBdID09IGV4cGVjdGVkCisg
ICAgICAgIGV4cGVjdGVkID0gdGFncy5UYWcoCisgICAgICAgICAgICAicHkiICsgdGFncy5fdmVy
c2lvbl9ub2RvdCgoc3lzLnZlcnNpb25faW5mb1swXSwgMCkpLCAibm9uZSIsICJhbnkiCisgICAg
ICAgICkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdFstMV0gPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0
ZXN0X2xpbnV4X2NweXRob24oc2VsZiwgbW9ja19pbnRlcnByZXRlcl9uYW1lLCBtb25rZXlwYXRj
aCk6CisgICAgICAgIGlmIG1vY2tfaW50ZXJwcmV0ZXJfbmFtZSgiQ1B5dGhvbiIpOgorICAgICAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0YWdzLCAiX2NweXRob25fYWJpcyIsIGxhbWJkYSAq
YTogWyJjcDMzbSJdKQorICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSAhPSAiTGludXgiOgor
ICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihwbGF0Zm9ybSwgInN5c3RlbSIsIGxhbWJk
YTogIkxpbnV4IikKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9saW51
eF9wbGF0Zm9ybXMiLCBsYW1iZGE6IFsibGludXhfeDg2XzY0Il0pCisgICAgICAgIGFiaXMgPSBs
aXN0KHRhZ3MuX2NweXRob25fYWJpcyhzeXMudmVyc2lvbl9pbmZvWzoyXSkpCisgICAgICAgIHBs
YXRmb3JtcyA9IGxpc3QodGFncy5fbGludXhfcGxhdGZvcm1zKCkpCisgICAgICAgIHJlc3VsdCA9
IGxpc3QodGFncy5zeXNfdGFncygpKQorICAgICAgICBleHBlY3RlZF9pbnRlcnByZXRlciA9ICJj
cCIgKyB0YWdzLl92ZXJzaW9uX25vZG90KHN5cy52ZXJzaW9uX2luZm9bOjJdKQorICAgICAgICBh
c3NlcnQgbGVuKGFiaXMpID09IDEKKyAgICAgICAgYXNzZXJ0IHJlc3VsdFswXSA9PSB0YWdzLlRh
ZyhleHBlY3RlZF9pbnRlcnByZXRlciwgYWJpc1swXSwgcGxhdGZvcm1zWzBdKQorICAgICAgICBl
eHBlY3RlZCA9IHRhZ3MuVGFnKAorICAgICAgICAgICAgInB5IiArIHRhZ3MuX3ZlcnNpb25fbm9k
b3QoKHN5cy52ZXJzaW9uX2luZm9bMF0sIDApKSwgIm5vbmUiLCAiYW55IgorICAgICAgICApCisg
ICAgICAgIGFzc2VydCByZXN1bHRbLTFdID09IGV4cGVjdGVkCisKKyAgICBkZWYgdGVzdF9nZW5l
cmljKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihwbGF0
Zm9ybSwgInN5c3RlbSIsIGxhbWJkYTogIkdlbmVyaWMiKQorICAgICAgICBtb25rZXlwYXRjaC5z
ZXRhdHRyKHRhZ3MsICJpbnRlcnByZXRlcl9uYW1lIiwgbGFtYmRhOiAiZ2VuZXJpYyIpCisKKyAg
ICAgICAgcmVzdWx0ID0gbGlzdCh0YWdzLnN5c190YWdzKCkpCisgICAgICAgIGV4cGVjdGVkID0g
dGFncy5UYWcoCisgICAgICAgICAgICAicHkiICsgdGFncy5fdmVyc2lvbl9ub2RvdCgoc3lzLnZl
cnNpb25faW5mb1swXSwgMCkpLCAibm9uZSIsICJhbnkiCisgICAgICAgICkKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdFstMV0gPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0ZXN0X2xpbnV4X3BsYXRmb3Jt
c19tYW55bGludXgyMDE0X2FybXY2bChzZWxmLCBtb25rZXlwYXRjaCwgbWFueWxpbnV4X21vZHVs
ZSk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxh
dGZvcm0iLCBsYW1iZGE6ICJsaW51eF9hcm12NmwiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRh
dHRyKG9zLCAiY29uZnN0ciIsIGxhbWJkYSB4OiAiZ2xpYmMgMi4yMCIsIHJhaXNpbmc9RmFsc2Up
CisgICAgICAgIHBsYXRmb3JtcyA9IGxpc3QodGFncy5fbGludXhfcGxhdGZvcm1zKGlzXzMyYml0
PVRydWUpKQorICAgICAgICBleHBlY3RlZCA9IFsibGludXhfYXJtdjZsIl0KKyAgICAgICAgYXNz
ZXJ0IHBsYXRmb3JtcyA9PSBleHBlY3RlZAorCisgICAgZGVmIHRlc3Rfc2tpcF9tYW55bGludXhf
MjAxNChzZWxmLCBtb25rZXlwYXRjaCwgbWFueWxpbnV4X21vZHVsZSk6CisgICAgICAgIG1vbmtl
eXBhdGNoLnNldGF0dHIoZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6ICJs
aW51eF9wcGM2NCIpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGFncywgIl9nZXRfZ2xp
YmNfdmVyc2lvbiIsIGxhbWJkYTogKDIsIDIwKSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0
cigKKyAgICAgICAgICAgIG1hbnlsaW51eF9tb2R1bGUsICJtYW55bGludXgyMDE0X2NvbXBhdGli
bGUiLCBGYWxzZSwgcmFpc2luZz1GYWxzZQorICAgICAgICApCisgICAgICAgIGV4cGVjdGVkID0g
WworICAgICAgICAgICAgIm1hbnlsaW51eF8yXzIwX3BwYzY0IiwKKyAgICAgICAgICAgICJtYW55
bGludXhfMl8xOV9wcGM2NCIsCisgICAgICAgICAgICAibWFueWxpbnV4XzJfMThfcHBjNjQiLAor
ICAgICAgICAgICAgIyAibWFueWxpbnV4MjAxNF9wcGM2NCIsICAjIHRoaXMgb25lIGlzIHNraXBw
ZWQKKyAgICAgICAgICAgICMgIm1hbnlsaW51eF8yXzE3X3BwYzY0IiwgIyB0aGlzIG9uZSBpcyBh
bHNvIHNraXBwZWQKKyAgICAgICAgICAgICJsaW51eF9wcGM2NCIsCisgICAgICAgIF0KKyAgICAg
ICAgcGxhdGZvcm1zID0gbGlzdCh0YWdzLl9saW51eF9wbGF0Zm9ybXMoKSkKKyAgICAgICAgYXNz
ZXJ0IHBsYXRmb3JtcyA9PSBleHBlY3RlZAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KAorICAgICAgICAibWFjaGluZSwgYWJpLCBhbHRfbWFjaGluZSIsCisgICAgICAgIFsoIng4Nl82
NCIsICJ4MzIiLCAiaTY4NiIpLCAoImFybXY3bCIsICJhcm1lbCIsICJhcm12N2wiKV0sCisgICAg
KQorICAgIGRlZiB0ZXN0X2xpbnV4X3BsYXRmb3Jtc19ub3RfbWFueWxpbnV4X2FiaSgKKyAgICAg
ICAgc2VsZiwgbW9ua2V5cGF0Y2gsIG1hbnlsaW51eF9tb2R1bGUsIG1hY2hpbmUsIGFiaSwgYWx0
X21hY2hpbmUKKyAgICApOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAg
ICAgZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6ICJsaW51eF97fSIuZm9y
bWF0KG1hY2hpbmUpCisgICAgICAgICkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKKyAg
ICAgICAgICAgIHN5cywKKyAgICAgICAgICAgICJleGVjdXRhYmxlIiwKKyAgICAgICAgICAgIG9z
LnBhdGguam9pbigKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAi
aGVsbG8td29ybGQte30te30iLmZvcm1hdChtYWNoaW5lLCBhYmkpCisgICAgICAgICAgICApLAor
ICAgICAgICApCisgICAgICAgIHBsYXRmb3JtcyA9IGxpc3QodGFncy5fbGludXhfcGxhdGZvcm1z
KGlzXzMyYml0PVRydWUpKQorICAgICAgICBleHBlY3RlZCA9IFsibGludXhfe30iLmZvcm1hdChh
bHRfbWFjaGluZSldCisgICAgICAgIGFzc2VydCBwbGF0Zm9ybXMgPT0gZXhwZWN0ZWQKKworICAg
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgIm1hY2hpbmUsIG1ham9yLCBtaW5v
ciwgdGYiLCBbKCJ4ODZfNjQiLCAyLCAyMCwgRmFsc2UpLCAoInMzOTB4IiwgMiwgMjIsIFRydWUp
XQorICAgICkKKyAgICBkZWYgdGVzdF9saW51eF91c2VfbWFueWxpbnV4X2NvbXBhdGlibGUoCisg
ICAgICAgIHNlbGYsIG1vbmtleXBhdGNoLCBtYW55bGludXhfbW9kdWxlLCBtYWNoaW5lLCBtYWpv
ciwgbWlub3IsIHRmCisgICAgKToKKyAgICAgICAgZGVmIG1hbnlsaW51eF9jb21wYXRpYmxlKHRh
Z19tYWpvciwgdGFnX21pbm9yLCB0YWdfYXJjaCk6CisgICAgICAgICAgICBpZiB0YWdfbWFqb3Ig
PT0gMiBhbmQgdGFnX21pbm9yID09IDIyOgorICAgICAgICAgICAgICAgIHJldHVybiB0YWdfYXJj
aCA9PSAiczM5MHgiCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBtb25rZXlw
YXRjaC5zZXRhdHRyKHRhZ3MsICJfZ2V0X2dsaWJjX3ZlcnNpb24iLCBsYW1iZGE6IChtYWpvciwg
bWlub3IpKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAgICAgZGlzdHV0
aWxzLnV0aWwsICJnZXRfcGxhdGZvcm0iLCBsYW1iZGE6ICJsaW51eF97fSIuZm9ybWF0KG1hY2hp
bmUpCisgICAgICAgICkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigKKyAgICAgICAgICAg
IG1hbnlsaW51eF9tb2R1bGUsCisgICAgICAgICAgICAibWFueWxpbnV4X2NvbXBhdGlibGUiLAor
ICAgICAgICAgICAgbWFueWxpbnV4X2NvbXBhdGlibGUsCisgICAgICAgICAgICByYWlzaW5nPUZh
bHNlLAorICAgICAgICApCisgICAgICAgIHBsYXRmb3JtcyA9IGxpc3QodGFncy5fbGludXhfcGxh
dGZvcm1zKGlzXzMyYml0PUZhbHNlKSkKKyAgICAgICAgaWYgdGY6CisgICAgICAgICAgICBleHBl
Y3RlZCA9IFsibWFueWxpbnV4XzJfMjJfe30iLmZvcm1hdChtYWNoaW5lKV0KKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGV4cGVjdGVkID0gW10KKyAgICAgICAgZXhwZWN0ZWQuYXBwZW5kKCJs
aW51eF97fSIuZm9ybWF0KG1hY2hpbmUpKQorICAgICAgICBhc3NlcnQgcGxhdGZvcm1zID09IGV4
cGVjdGVkCisKKyAgICBkZWYgdGVzdF9saW51eF91c2VfbWFueWxpbnV4X2NvbXBhdGlibGVfbm9u
ZShzZWxmLCBtb25rZXlwYXRjaCwgbWFueWxpbnV4X21vZHVsZSk6CisgICAgICAgIGRlZiBtYW55
bGludXhfY29tcGF0aWJsZSh0YWdfbWFqb3IsIHRhZ19taW5vciwgdGFnX2FyY2gpOgorICAgICAg
ICAgICAgaWYgdGFnX21ham9yID09IDIgYW5kIHRhZ19taW5vciA8IDI1OgorICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBtb25r
ZXlwYXRjaC5zZXRhdHRyKHRhZ3MsICJfZ2V0X2dsaWJjX3ZlcnNpb24iLCBsYW1iZGE6ICgyLCAz
MCkpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoZGlzdHV0aWxzLnV0aWwsICJnZXRfcGxh
dGZvcm0iLCBsYW1iZGE6ICJsaW51eF94ODZfNjQiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRh
dHRyKAorICAgICAgICAgICAgbWFueWxpbnV4X21vZHVsZSwKKyAgICAgICAgICAgICJtYW55bGlu
dXhfY29tcGF0aWJsZSIsCisgICAgICAgICAgICBtYW55bGludXhfY29tcGF0aWJsZSwKKyAgICAg
ICAgICAgIHJhaXNpbmc9RmFsc2UsCisgICAgICAgICkKKyAgICAgICAgcGxhdGZvcm1zID0gbGlz
dCh0YWdzLl9saW51eF9wbGF0Zm9ybXMoaXNfMzJiaXQ9RmFsc2UpKQorICAgICAgICBleHBlY3Rl
ZCA9IFsKKyAgICAgICAgICAgICJtYW55bGludXhfMl8zMF94ODZfNjQiLAorICAgICAgICAgICAg
Im1hbnlsaW51eF8yXzI5X3g4Nl82NCIsCisgICAgICAgICAgICAibWFueWxpbnV4XzJfMjhfeDg2
XzY0IiwKKyAgICAgICAgICAgICJtYW55bGludXhfMl8yN194ODZfNjQiLAorICAgICAgICAgICAg
Im1hbnlsaW51eF8yXzI2X3g4Nl82NCIsCisgICAgICAgICAgICAibWFueWxpbnV4XzJfMjVfeDg2
XzY0IiwKKyAgICAgICAgICAgICJsaW51eF94ODZfNjQiLAorICAgICAgICBdCisgICAgICAgIGFz
c2VydCBwbGF0Zm9ybXMgPT0gZXhwZWN0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rl
c3RzL3Rlc3RfdXRpbHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3V0aWxzLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE4ZWE2YmRiOTBhYzQzZTVlMzUxNWE5NmIzNTZiNTNmYzc3MmI0MzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3V0aWxzLnB5CkBAIC0wLDAg
KzEsNDkgQEAKKyMgVGhpcyBmaWxlIGlzIGR1YWwgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbgorIyAyLjAsIGFuZCB0aGUgQlNEIExpY2Vuc2Uu
IFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoaXMgcmVwb3NpdG9yeQorIyBm
b3IgY29tcGxldGUgZGV0YWlscy4KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w
b3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHB5dGVzdAorCitmcm9tIHBh
Y2thZ2luZy51dGlscyBpbXBvcnQgY2Fub25pY2FsaXplX25hbWUsIGNhbm9uaWNhbGl6ZV92ZXJz
aW9uCitmcm9tIHBhY2thZ2luZy52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKAorICAgICgibmFtZSIsICJleHBlY3RlZCIpLAorICAgIFsKKyAgICAg
ICAgKCJmb28iLCAiZm9vIiksCisgICAgICAgICgiRm9vIiwgImZvbyIpLAorICAgICAgICAoImZP
byIsICJmb28iKSwKKyAgICAgICAgKCJmb28uYmFyIiwgImZvby1iYXIiKSwKKyAgICAgICAgKCJG
b28uQmFyIiwgImZvby1iYXIiKSwKKyAgICAgICAgKCJGb28uLi4uLkJhciIsICJmb28tYmFyIiks
CisgICAgICAgICgiZm9vX2JhciIsICJmb28tYmFyIiksCisgICAgICAgICgiZm9vX19fYmFyIiwg
ImZvby1iYXIiKSwKKyAgICAgICAgKCJmb28tYmFyIiwgImZvby1iYXIiKSwKKyAgICAgICAgKCJm
b28tLS0tYmFyIiwgImZvby1iYXIiKSwKKyAgICBdLAorKQorZGVmIHRlc3RfY2Fub25pY2FsaXpl
X25hbWUobmFtZSwgZXhwZWN0ZWQpOgorICAgIGFzc2VydCBjYW5vbmljYWxpemVfbmFtZShuYW1l
KSA9PSBleHBlY3RlZAorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAoInZlcnNp
b24iLCAiZXhwZWN0ZWQiKSwKKyAgICBbCisgICAgICAgIChWZXJzaW9uKCIxLjQuMCIpLCAiMS40
IiksCisgICAgICAgICgiMS40LjAiLCAiMS40IiksCisgICAgICAgICgiMS40MC4wIiwgIjEuNDAi
KSwKKyAgICAgICAgKCIxLjQuMC4wLjAwLjAwMC4wMDAwIiwgIjEuNCIpLAorICAgICAgICAoIjEu
MCIsICIxIiksCisgICAgICAgICgiMS4wK2FiYyIsICIxK2FiYyIpLAorICAgICAgICAoIjEuMC5k
ZXYwIiwgIjEuZGV2MCIpLAorICAgICAgICAoIjEuMC5wb3N0MCIsICIxLnBvc3QwIiksCisgICAg
ICAgICgiMS4wYTAiLCAiMWEwIiksCisgICAgICAgICgiMS4wcmMwIiwgIjFyYzAiKSwKKyAgICAg
ICAgKCIxMDAhMC4wIiwgIjEwMCEwIiksCisgICAgICAgICgiMS4wLjEtdGVzdDciLCAiMS4wLjEt
dGVzdDciKSwgICMgTGVnYWN5VmVyc2lvbiBpcyB1bmNoYW5nZWQKKyAgICBdLAorKQorZGVmIHRl
c3RfY2Fub25pY2FsaXplX3ZlcnNpb24odmVyc2lvbiwgZXhwZWN0ZWQpOgorICAgIGFzc2VydCBj
YW5vbmljYWxpemVfdmVyc2lvbih2ZXJzaW9uKSA9PSBleHBlY3RlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF92ZXJzaW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMv
dGVzdF92ZXJzaW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2MWZjYTIwMWRkNDc5YmE3ODI5Y2ExZGEyNmVj
MWFlOGIxYWI3NjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0
X3ZlcnNpb24ucHkKQEAgLTAsMCArMSw5MDUgQEAKKyMgVGhpcyBmaWxlIGlzIGR1YWwgbGljZW5z
ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbgorIyAyLjAs
IGFuZCB0aGUgQlNEIExpY2Vuc2UuIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9m
IHRoaXMgcmVwb3NpdG9yeQorIyBmb3IgY29tcGxldGUgZGV0YWlscy4KK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1w
b3J0IGl0ZXJ0b29scworaW1wb3J0IG9wZXJhdG9yCitpbXBvcnQgd2FybmluZ3MKKworaW1wb3J0
IHByZXRlbmQKK2ltcG9ydCBweXRlc3QKKworZnJvbSBwYWNrYWdpbmcudmVyc2lvbiBpbXBvcnQg
VmVyc2lvbiwgTGVnYWN5VmVyc2lvbiwgSW52YWxpZFZlcnNpb24sIHBhcnNlCisKKworQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKAorICAgICgidmVyc2lvbiIsICJrbGFzcyIpLCBbKCIxLjAiLCBW
ZXJzaW9uKSwgKCIxLTEtMSIsIExlZ2FjeVZlcnNpb24pXQorKQorZGVmIHRlc3RfcGFyc2UodmVy
c2lvbiwga2xhc3MpOgorICAgIGFzc2VydCBpc2luc3RhbmNlKHBhcnNlKHZlcnNpb24pLCBrbGFz
cykKKworCisjIFRoaXMgbGlzdCBtdXN0IGJlIGluIHRoZSBjb3JyZWN0IHNvcnRpbmcgb3JkZXIK
K1ZFUlNJT05TID0gWworICAgICMgSW1wbGljaXQgZXBvY2ggb2YgMAorICAgICIxLjAuZGV2NDU2
IiwKKyAgICAiMS4wYTEiLAorICAgICIxLjBhMi5kZXY0NTYiLAorICAgICIxLjBhMTIuZGV2NDU2
IiwKKyAgICAiMS4wYTEyIiwKKyAgICAiMS4wYjEuZGV2NDU2IiwKKyAgICAiMS4wYjIiLAorICAg
ICIxLjBiMi5wb3N0MzQ1LmRldjQ1NiIsCisgICAgIjEuMGIyLnBvc3QzNDUiLAorICAgICIxLjBi
Mi0zNDYiLAorICAgICIxLjBjMS5kZXY0NTYiLAorICAgICIxLjBjMSIsCisgICAgIjEuMHJjMiIs
CisgICAgIjEuMGMzIiwKKyAgICAiMS4wIiwKKyAgICAiMS4wLnBvc3Q0NTYuZGV2MzQiLAorICAg
ICIxLjAucG9zdDQ1NiIsCisgICAgIjEuMS5kZXYxIiwKKyAgICAiMS4yKzEyM2FiYyIsCisgICAg
IjEuMisxMjNhYmM0NTYiLAorICAgICIxLjIrYWJjIiwKKyAgICAiMS4yK2FiYzEyMyIsCisgICAg
IjEuMithYmMxMjNkZWYiLAorICAgICIxLjIrMTIzNC5hYmMiLAorICAgICIxLjIrMTIzNDU2IiwK
KyAgICAiMS4yLnIzMisxMjM0NTYiLAorICAgICIxLjIucmV2MzMrMTIzNDU2IiwKKyAgICAjIEV4
cGxpY2l0IGVwb2NoIG9mIDEKKyAgICAiMSExLjAuZGV2NDU2IiwKKyAgICAiMSExLjBhMSIsCisg
ICAgIjEhMS4wYTIuZGV2NDU2IiwKKyAgICAiMSExLjBhMTIuZGV2NDU2IiwKKyAgICAiMSExLjBh
MTIiLAorICAgICIxITEuMGIxLmRldjQ1NiIsCisgICAgIjEhMS4wYjIiLAorICAgICIxITEuMGIy
LnBvc3QzNDUuZGV2NDU2IiwKKyAgICAiMSExLjBiMi5wb3N0MzQ1IiwKKyAgICAiMSExLjBiMi0z
NDYiLAorICAgICIxITEuMGMxLmRldjQ1NiIsCisgICAgIjEhMS4wYzEiLAorICAgICIxITEuMHJj
MiIsCisgICAgIjEhMS4wYzMiLAorICAgICIxITEuMCIsCisgICAgIjEhMS4wLnBvc3Q0NTYuZGV2
MzQiLAorICAgICIxITEuMC5wb3N0NDU2IiwKKyAgICAiMSExLjEuZGV2MSIsCisgICAgIjEhMS4y
KzEyM2FiYyIsCisgICAgIjEhMS4yKzEyM2FiYzQ1NiIsCisgICAgIjEhMS4yK2FiYyIsCisgICAg
IjEhMS4yK2FiYzEyMyIsCisgICAgIjEhMS4yK2FiYzEyM2RlZiIsCisgICAgIjEhMS4yKzEyMzQu
YWJjIiwKKyAgICAiMSExLjIrMTIzNDU2IiwKKyAgICAiMSExLjIucjMyKzEyMzQ1NiIsCisgICAg
IjEhMS4yLnJldjMzKzEyMzQ1NiIsCitdCisKKworY2xhc3MgVGVzdFZlcnNpb246CisgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMpCisgICAgZGVmIHRlc3Rf
dmFsaWRfdmVyc2lvbnMoc2VsZiwgdmVyc2lvbik6CisgICAgICAgIFZlcnNpb24odmVyc2lvbikK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgInZlcnNpb24iLAorICAg
ICAgICBbCisgICAgICAgICAgICAjIE5vbiBzZW5zaWNhbCB2ZXJzaW9ucyBzaG91bGQgYmUgaW52
YWxpZAorICAgICAgICAgICAgImZyZW5jaCB0b2FzdCIsCisgICAgICAgICAgICAjIFZlcnNpb25z
IHdpdGggaW52YWxpZCBsb2NhbCB2ZXJzaW9ucworICAgICAgICAgICAgIjEuMCthKyIsCisgICAg
ICAgICAgICAiMS4wKysiLAorICAgICAgICAgICAgIjEuMCtfZm9vYmFyIiwKKyAgICAgICAgICAg
ICIxLjArZm9vJmFzZCIsCisgICAgICAgICAgICAiMS4wKzErMSIsCisgICAgICAgIF0sCisgICAg
KQorICAgIGRlZiB0ZXN0X2ludmFsaWRfdmVyc2lvbnMoc2VsZiwgdmVyc2lvbik6CisgICAgICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhJbnZhbGlkVmVyc2lvbik6CisgICAgICAgICAgICBWZXJzaW9u
KHZlcnNpb24pCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVy
c2lvbiIsICJub3JtYWxpemVkIiksCisgICAgICAgIFsKKyAgICAgICAgICAgICMgVmFyaW91cyBk
ZXZlbG9wbWVudCByZWxlYXNlIGluY2FybmF0aW9ucworICAgICAgICAgICAgKCIxLjBkZXYiLCAi
MS4wLmRldjAiKSwKKyAgICAgICAgICAgICgiMS4wLmRldiIsICIxLjAuZGV2MCIpLAorICAgICAg
ICAgICAgKCIxLjBkZXYxIiwgIjEuMC5kZXYxIiksCisgICAgICAgICAgICAoIjEuMGRldiIsICIx
LjAuZGV2MCIpLAorICAgICAgICAgICAgKCIxLjAtZGV2IiwgIjEuMC5kZXYwIiksCisgICAgICAg
ICAgICAoIjEuMC1kZXYxIiwgIjEuMC5kZXYxIiksCisgICAgICAgICAgICAoIjEuMERFViIsICIx
LjAuZGV2MCIpLAorICAgICAgICAgICAgKCIxLjAuREVWIiwgIjEuMC5kZXYwIiksCisgICAgICAg
ICAgICAoIjEuMERFVjEiLCAiMS4wLmRldjEiKSwKKyAgICAgICAgICAgICgiMS4wREVWIiwgIjEu
MC5kZXYwIiksCisgICAgICAgICAgICAoIjEuMC5ERVYxIiwgIjEuMC5kZXYxIiksCisgICAgICAg
ICAgICAoIjEuMC1ERVYiLCAiMS4wLmRldjAiKSwKKyAgICAgICAgICAgICgiMS4wLURFVjEiLCAi
MS4wLmRldjEiKSwKKyAgICAgICAgICAgICMgVmFyaW91cyBhbHBoYSBpbmNhcm5hdGlvbnMKKyAg
ICAgICAgICAgICgiMS4wYSIsICIxLjBhMCIpLAorICAgICAgICAgICAgKCIxLjAuYSIsICIxLjBh
MCIpLAorICAgICAgICAgICAgKCIxLjAuYTEiLCAiMS4wYTEiKSwKKyAgICAgICAgICAgICgiMS4w
LWEiLCAiMS4wYTAiKSwKKyAgICAgICAgICAgICgiMS4wLWExIiwgIjEuMGExIiksCisgICAgICAg
ICAgICAoIjEuMGFscGhhIiwgIjEuMGEwIiksCisgICAgICAgICAgICAoIjEuMC5hbHBoYSIsICIx
LjBhMCIpLAorICAgICAgICAgICAgKCIxLjAuYWxwaGExIiwgIjEuMGExIiksCisgICAgICAgICAg
ICAoIjEuMC1hbHBoYSIsICIxLjBhMCIpLAorICAgICAgICAgICAgKCIxLjAtYWxwaGExIiwgIjEu
MGExIiksCisgICAgICAgICAgICAoIjEuMEEiLCAiMS4wYTAiKSwKKyAgICAgICAgICAgICgiMS4w
LkEiLCAiMS4wYTAiKSwKKyAgICAgICAgICAgICgiMS4wLkExIiwgIjEuMGExIiksCisgICAgICAg
ICAgICAoIjEuMC1BIiwgIjEuMGEwIiksCisgICAgICAgICAgICAoIjEuMC1BMSIsICIxLjBhMSIp
LAorICAgICAgICAgICAgKCIxLjBBTFBIQSIsICIxLjBhMCIpLAorICAgICAgICAgICAgKCIxLjAu
QUxQSEEiLCAiMS4wYTAiKSwKKyAgICAgICAgICAgICgiMS4wLkFMUEhBMSIsICIxLjBhMSIpLAor
ICAgICAgICAgICAgKCIxLjAtQUxQSEEiLCAiMS4wYTAiKSwKKyAgICAgICAgICAgICgiMS4wLUFM
UEhBMSIsICIxLjBhMSIpLAorICAgICAgICAgICAgIyBWYXJpb3VzIGJldGEgaW5jYXJuYXRpb25z
CisgICAgICAgICAgICAoIjEuMGIiLCAiMS4wYjAiKSwKKyAgICAgICAgICAgICgiMS4wLmIiLCAi
MS4wYjAiKSwKKyAgICAgICAgICAgICgiMS4wLmIxIiwgIjEuMGIxIiksCisgICAgICAgICAgICAo
IjEuMC1iIiwgIjEuMGIwIiksCisgICAgICAgICAgICAoIjEuMC1iMSIsICIxLjBiMSIpLAorICAg
ICAgICAgICAgKCIxLjBiZXRhIiwgIjEuMGIwIiksCisgICAgICAgICAgICAoIjEuMC5iZXRhIiwg
IjEuMGIwIiksCisgICAgICAgICAgICAoIjEuMC5iZXRhMSIsICIxLjBiMSIpLAorICAgICAgICAg
ICAgKCIxLjAtYmV0YSIsICIxLjBiMCIpLAorICAgICAgICAgICAgKCIxLjAtYmV0YTEiLCAiMS4w
YjEiKSwKKyAgICAgICAgICAgICgiMS4wQiIsICIxLjBiMCIpLAorICAgICAgICAgICAgKCIxLjAu
QiIsICIxLjBiMCIpLAorICAgICAgICAgICAgKCIxLjAuQjEiLCAiMS4wYjEiKSwKKyAgICAgICAg
ICAgICgiMS4wLUIiLCAiMS4wYjAiKSwKKyAgICAgICAgICAgICgiMS4wLUIxIiwgIjEuMGIxIiks
CisgICAgICAgICAgICAoIjEuMEJFVEEiLCAiMS4wYjAiKSwKKyAgICAgICAgICAgICgiMS4wLkJF
VEEiLCAiMS4wYjAiKSwKKyAgICAgICAgICAgICgiMS4wLkJFVEExIiwgIjEuMGIxIiksCisgICAg
ICAgICAgICAoIjEuMC1CRVRBIiwgIjEuMGIwIiksCisgICAgICAgICAgICAoIjEuMC1CRVRBMSIs
ICIxLjBiMSIpLAorICAgICAgICAgICAgIyBWYXJpb3VzIHJlbGVhc2UgY2FuZGlkYXRlIGluY2Fy
bmF0aW9ucworICAgICAgICAgICAgKCIxLjBjIiwgIjEuMHJjMCIpLAorICAgICAgICAgICAgKCIx
LjAuYyIsICIxLjByYzAiKSwKKyAgICAgICAgICAgICgiMS4wLmMxIiwgIjEuMHJjMSIpLAorICAg
ICAgICAgICAgKCIxLjAtYyIsICIxLjByYzAiKSwKKyAgICAgICAgICAgICgiMS4wLWMxIiwgIjEu
MHJjMSIpLAorICAgICAgICAgICAgKCIxLjByYyIsICIxLjByYzAiKSwKKyAgICAgICAgICAgICgi
MS4wLnJjIiwgIjEuMHJjMCIpLAorICAgICAgICAgICAgKCIxLjAucmMxIiwgIjEuMHJjMSIpLAor
ICAgICAgICAgICAgKCIxLjAtcmMiLCAiMS4wcmMwIiksCisgICAgICAgICAgICAoIjEuMC1yYzEi
LCAiMS4wcmMxIiksCisgICAgICAgICAgICAoIjEuMEMiLCAiMS4wcmMwIiksCisgICAgICAgICAg
ICAoIjEuMC5DIiwgIjEuMHJjMCIpLAorICAgICAgICAgICAgKCIxLjAuQzEiLCAiMS4wcmMxIiks
CisgICAgICAgICAgICAoIjEuMC1DIiwgIjEuMHJjMCIpLAorICAgICAgICAgICAgKCIxLjAtQzEi
LCAiMS4wcmMxIiksCisgICAgICAgICAgICAoIjEuMFJDIiwgIjEuMHJjMCIpLAorICAgICAgICAg
ICAgKCIxLjAuUkMiLCAiMS4wcmMwIiksCisgICAgICAgICAgICAoIjEuMC5SQzEiLCAiMS4wcmMx
IiksCisgICAgICAgICAgICAoIjEuMC1SQyIsICIxLjByYzAiKSwKKyAgICAgICAgICAgICgiMS4w
LVJDMSIsICIxLjByYzEiKSwKKyAgICAgICAgICAgICMgVmFyaW91cyBwb3N0IHJlbGVhc2UgaW5j
YXJuYXRpb25zCisgICAgICAgICAgICAoIjEuMHBvc3QiLCAiMS4wLnBvc3QwIiksCisgICAgICAg
ICAgICAoIjEuMC5wb3N0IiwgIjEuMC5wb3N0MCIpLAorICAgICAgICAgICAgKCIxLjBwb3N0MSIs
ICIxLjAucG9zdDEiKSwKKyAgICAgICAgICAgICgiMS4wcG9zdCIsICIxLjAucG9zdDAiKSwKKyAg
ICAgICAgICAgICgiMS4wLXBvc3QiLCAiMS4wLnBvc3QwIiksCisgICAgICAgICAgICAoIjEuMC1w
b3N0MSIsICIxLjAucG9zdDEiKSwKKyAgICAgICAgICAgICgiMS4wUE9TVCIsICIxLjAucG9zdDAi
KSwKKyAgICAgICAgICAgICgiMS4wLlBPU1QiLCAiMS4wLnBvc3QwIiksCisgICAgICAgICAgICAo
IjEuMFBPU1QxIiwgIjEuMC5wb3N0MSIpLAorICAgICAgICAgICAgKCIxLjBQT1NUIiwgIjEuMC5w
b3N0MCIpLAorICAgICAgICAgICAgKCIxLjByIiwgIjEuMC5wb3N0MCIpLAorICAgICAgICAgICAg
KCIxLjByZXYiLCAiMS4wLnBvc3QwIiksCisgICAgICAgICAgICAoIjEuMC5QT1NUMSIsICIxLjAu
cG9zdDEiKSwKKyAgICAgICAgICAgICgiMS4wLnIxIiwgIjEuMC5wb3N0MSIpLAorICAgICAgICAg
ICAgKCIxLjAucmV2MSIsICIxLjAucG9zdDEiKSwKKyAgICAgICAgICAgICgiMS4wLVBPU1QiLCAi
MS4wLnBvc3QwIiksCisgICAgICAgICAgICAoIjEuMC1QT1NUMSIsICIxLjAucG9zdDEiKSwKKyAg
ICAgICAgICAgICgiMS4wLTUiLCAiMS4wLnBvc3Q1IiksCisgICAgICAgICAgICAoIjEuMC1yNSIs
ICIxLjAucG9zdDUiKSwKKyAgICAgICAgICAgICgiMS4wLXJldjUiLCAiMS4wLnBvc3Q1IiksCisg
ICAgICAgICAgICAjIExvY2FsIHZlcnNpb24gY2FzZSBpbnNlbnNpdGl2aXR5CisgICAgICAgICAg
ICAoIjEuMCtBYkMiLCAiMS4wK2FiYyIpLAorICAgICAgICAgICAgIyBJbnRlZ2VyIE5vcm1hbGl6
YXRpb24KKyAgICAgICAgICAgICgiMS4wMSIsICIxLjEiKSwKKyAgICAgICAgICAgICgiMS4wYTA1
IiwgIjEuMGE1IiksCisgICAgICAgICAgICAoIjEuMGIwNyIsICIxLjBiNyIpLAorICAgICAgICAg
ICAgKCIxLjBjMDU2IiwgIjEuMHJjNTYiKSwKKyAgICAgICAgICAgICgiMS4wcmMwOSIsICIxLjBy
YzkiKSwKKyAgICAgICAgICAgICgiMS4wLnBvc3QwMDAiLCAiMS4wLnBvc3QwIiksCisgICAgICAg
ICAgICAoIjEuMS5kZXYwOTAwMCIsICIxLjEuZGV2OTAwMCIpLAorICAgICAgICAgICAgKCIwMCEx
LjIiLCAiMS4yIiksCisgICAgICAgICAgICAoIjAxMDAhMC4wIiwgIjEwMCEwLjAiKSwKKyAgICAg
ICAgICAgICMgVmFyaW91cyBvdGhlciBub3JtYWxpemF0aW9ucworICAgICAgICAgICAgKCJ2MS4w
IiwgIjEuMCIpLAorICAgICAgICAgICAgKCIgICB2MS4wXHRcbiIsICIxLjAiKSwKKyAgICAgICAg
XSwKKyAgICApCisgICAgZGVmIHRlc3Rfbm9ybWFsaXplZF92ZXJzaW9ucyhzZWxmLCB2ZXJzaW9u
LCBub3JtYWxpemVkKToKKyAgICAgICAgYXNzZXJ0IHN0cihWZXJzaW9uKHZlcnNpb24pKSA9PSBu
b3JtYWxpemVkCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVy
c2lvbiIsICJleHBlY3RlZCIpLAorICAgICAgICBbCisgICAgICAgICAgICAoIjEuMC5kZXY0NTYi
LCAiMS4wLmRldjQ1NiIpLAorICAgICAgICAgICAgKCIxLjBhMSIsICIxLjBhMSIpLAorICAgICAg
ICAgICAgKCIxLjBhMi5kZXY0NTYiLCAiMS4wYTIuZGV2NDU2IiksCisgICAgICAgICAgICAoIjEu
MGExMi5kZXY0NTYiLCAiMS4wYTEyLmRldjQ1NiIpLAorICAgICAgICAgICAgKCIxLjBhMTIiLCAi
MS4wYTEyIiksCisgICAgICAgICAgICAoIjEuMGIxLmRldjQ1NiIsICIxLjBiMS5kZXY0NTYiKSwK
KyAgICAgICAgICAgICgiMS4wYjIiLCAiMS4wYjIiKSwKKyAgICAgICAgICAgICgiMS4wYjIucG9z
dDM0NS5kZXY0NTYiLCAiMS4wYjIucG9zdDM0NS5kZXY0NTYiKSwKKyAgICAgICAgICAgICgiMS4w
YjIucG9zdDM0NSIsICIxLjBiMi5wb3N0MzQ1IiksCisgICAgICAgICAgICAoIjEuMHJjMS5kZXY0
NTYiLCAiMS4wcmMxLmRldjQ1NiIpLAorICAgICAgICAgICAgKCIxLjByYzEiLCAiMS4wcmMxIiks
CisgICAgICAgICAgICAoIjEuMCIsICIxLjAiKSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q0NTYu
ZGV2MzQiLCAiMS4wLnBvc3Q0NTYuZGV2MzQiKSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q0NTYi
LCAiMS4wLnBvc3Q0NTYiKSwKKyAgICAgICAgICAgICgiMS4wLjEiLCAiMS4wLjEiKSwKKyAgICAg
ICAgICAgICgiMCExLjAuMiIsICIxLjAuMiIpLAorICAgICAgICAgICAgKCIxLjAuMys3IiwgIjEu
MC4zKzciKSwKKyAgICAgICAgICAgICgiMCExLjAuNCs4LjAiLCAiMS4wLjQrOC4wIiksCisgICAg
ICAgICAgICAoIjEuMC41KzkuNSIsICIxLjAuNSs5LjUiKSwKKyAgICAgICAgICAgICgiMS4yKzEy
MzQuYWJjIiwgIjEuMisxMjM0LmFiYyIpLAorICAgICAgICAgICAgKCIxLjIrMTIzNDU2IiwgIjEu
MisxMjM0NTYiKSwKKyAgICAgICAgICAgICgiMS4yKzEyM2FiYyIsICIxLjIrMTIzYWJjIiksCisg
ICAgICAgICAgICAoIjEuMisxMjNhYmM0NTYiLCAiMS4yKzEyM2FiYzQ1NiIpLAorICAgICAgICAg
ICAgKCIxLjIrYWJjIiwgIjEuMithYmMiKSwKKyAgICAgICAgICAgICgiMS4yK2FiYzEyMyIsICIx
LjIrYWJjMTIzIiksCisgICAgICAgICAgICAoIjEuMithYmMxMjNkZWYiLCAiMS4yK2FiYzEyM2Rl
ZiIpLAorICAgICAgICAgICAgKCIxLjEuZGV2MSIsICIxLjEuZGV2MSIpLAorICAgICAgICAgICAg
KCI3ITEuMC5kZXY0NTYiLCAiNyExLjAuZGV2NDU2IiksCisgICAgICAgICAgICAoIjchMS4wYTEi
LCAiNyExLjBhMSIpLAorICAgICAgICAgICAgKCI3ITEuMGEyLmRldjQ1NiIsICI3ITEuMGEyLmRl
djQ1NiIpLAorICAgICAgICAgICAgKCI3ITEuMGExMi5kZXY0NTYiLCAiNyExLjBhMTIuZGV2NDU2
IiksCisgICAgICAgICAgICAoIjchMS4wYTEyIiwgIjchMS4wYTEyIiksCisgICAgICAgICAgICAo
IjchMS4wYjEuZGV2NDU2IiwgIjchMS4wYjEuZGV2NDU2IiksCisgICAgICAgICAgICAoIjchMS4w
YjIiLCAiNyExLjBiMiIpLAorICAgICAgICAgICAgKCI3ITEuMGIyLnBvc3QzNDUuZGV2NDU2Iiwg
IjchMS4wYjIucG9zdDM0NS5kZXY0NTYiKSwKKyAgICAgICAgICAgICgiNyExLjBiMi5wb3N0MzQ1
IiwgIjchMS4wYjIucG9zdDM0NSIpLAorICAgICAgICAgICAgKCI3ITEuMHJjMS5kZXY0NTYiLCAi
NyExLjByYzEuZGV2NDU2IiksCisgICAgICAgICAgICAoIjchMS4wcmMxIiwgIjchMS4wcmMxIiks
CisgICAgICAgICAgICAoIjchMS4wIiwgIjchMS4wIiksCisgICAgICAgICAgICAoIjchMS4wLnBv
c3Q0NTYuZGV2MzQiLCAiNyExLjAucG9zdDQ1Ni5kZXYzNCIpLAorICAgICAgICAgICAgKCI3ITEu
MC5wb3N0NDU2IiwgIjchMS4wLnBvc3Q0NTYiKSwKKyAgICAgICAgICAgICgiNyExLjAuMSIsICI3
ITEuMC4xIiksCisgICAgICAgICAgICAoIjchMS4wLjIiLCAiNyExLjAuMiIpLAorICAgICAgICAg
ICAgKCI3ITEuMC4zKzciLCAiNyExLjAuMys3IiksCisgICAgICAgICAgICAoIjchMS4wLjQrOC4w
IiwgIjchMS4wLjQrOC4wIiksCisgICAgICAgICAgICAoIjchMS4wLjUrOS41IiwgIjchMS4wLjUr
OS41IiksCisgICAgICAgICAgICAoIjchMS4xLmRldjEiLCAiNyExLjEuZGV2MSIpLAorICAgICAg
ICBdLAorICAgICkKKyAgICBkZWYgdGVzdF92ZXJzaW9uX3N0cl9yZXByKHNlbGYsIHZlcnNpb24s
IGV4cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0IHN0cihWZXJzaW9uKHZlcnNpb24pKSA9PSBleHBl
Y3RlZAorICAgICAgICBhc3NlcnQgcmVwcihWZXJzaW9uKHZlcnNpb24pKSA9PSAiPFZlcnNpb24o
ezB9KT4iLmZvcm1hdChyZXByKGV4cGVjdGVkKSkKKworICAgIGRlZiB0ZXN0X3ZlcnNpb25fcmNf
YW5kX2NfZXF1YWxzKHNlbGYpOgorICAgICAgICBhc3NlcnQgVmVyc2lvbigiMS4wcmMxIikgPT0g
VmVyc2lvbigiMS4wYzEiKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9u
IiwgVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfdmVyc2lvbl9oYXNoKHNlbGYsIHZlcnNpb24pOgor
ICAgICAgICBhc3NlcnQgaGFzaChWZXJzaW9uKHZlcnNpb24pKSA9PSBoYXNoKFZlcnNpb24odmVy
c2lvbikpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVyc2lv
biIsICJwdWJsaWMiKSwKKyAgICAgICAgWworICAgICAgICAgICAgKCIxLjAiLCAiMS4wIiksCisg
ICAgICAgICAgICAoIjEuMC5kZXYwIiwgIjEuMC5kZXYwIiksCisgICAgICAgICAgICAoIjEuMC5k
ZXY2IiwgIjEuMC5kZXY2IiksCisgICAgICAgICAgICAoIjEuMGExIiwgIjEuMGExIiksCisgICAg
ICAgICAgICAoIjEuMGExLnBvc3Q1IiwgIjEuMGExLnBvc3Q1IiksCisgICAgICAgICAgICAoIjEu
MGExLnBvc3Q1LmRldjYiLCAiMS4wYTEucG9zdDUuZGV2NiIpLAorICAgICAgICAgICAgKCIxLjBy
YzQiLCAiMS4wcmM0IiksCisgICAgICAgICAgICAoIjEuMC5wb3N0NSIsICIxLjAucG9zdDUiKSwK
KyAgICAgICAgICAgICgiMSExLjAiLCAiMSExLjAiKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2
NiIsICIxITEuMC5kZXY2IiksCisgICAgICAgICAgICAoIjEhMS4wYTEiLCAiMSExLjBhMSIpLAor
ICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1IiwgIjEhMS4wYTEucG9zdDUiKSwKKyAgICAgICAg
ICAgICgiMSExLjBhMS5wb3N0NS5kZXY2IiwgIjEhMS4wYTEucG9zdDUuZGV2NiIpLAorICAgICAg
ICAgICAgKCIxITEuMHJjNCIsICIxITEuMHJjNCIpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0
NSIsICIxITEuMC5wb3N0NSIpLAorICAgICAgICAgICAgKCIxLjArZGVhZGJlZWYiLCAiMS4wIiks
CisgICAgICAgICAgICAoIjEuMC5kZXY2K2RlYWRiZWVmIiwgIjEuMC5kZXY2IiksCisgICAgICAg
ICAgICAoIjEuMGExK2RlYWRiZWVmIiwgIjEuMGExIiksCisgICAgICAgICAgICAoIjEuMGExLnBv
c3Q1K2RlYWRiZWVmIiwgIjEuMGExLnBvc3Q1IiksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1
LmRldjYrZGVhZGJlZWYiLCAiMS4wYTEucG9zdDUuZGV2NiIpLAorICAgICAgICAgICAgKCIxLjBy
YzQrZGVhZGJlZWYiLCAiMS4wcmM0IiksCisgICAgICAgICAgICAoIjEuMC5wb3N0NStkZWFkYmVl
ZiIsICIxLjAucG9zdDUiKSwKKyAgICAgICAgICAgICgiMSExLjArZGVhZGJlZWYiLCAiMSExLjAi
KSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2NitkZWFkYmVlZiIsICIxITEuMC5kZXY2IiksCisg
ICAgICAgICAgICAoIjEhMS4wYTErZGVhZGJlZWYiLCAiMSExLjBhMSIpLAorICAgICAgICAgICAg
KCIxITEuMGExLnBvc3Q1K2RlYWRiZWVmIiwgIjEhMS4wYTEucG9zdDUiKSwKKyAgICAgICAgICAg
ICgiMSExLjBhMS5wb3N0NS5kZXY2K2RlYWRiZWVmIiwgIjEhMS4wYTEucG9zdDUuZGV2NiIpLAor
ICAgICAgICAgICAgKCIxITEuMHJjNCtkZWFkYmVlZiIsICIxITEuMHJjNCIpLAorICAgICAgICAg
ICAgKCIxITEuMC5wb3N0NStkZWFkYmVlZiIsICIxITEuMC5wb3N0NSIpLAorICAgICAgICBdLAor
ICAgICkKKyAgICBkZWYgdGVzdF92ZXJzaW9uX3B1YmxpYyhzZWxmLCB2ZXJzaW9uLCBwdWJsaWMp
OgorICAgICAgICBhc3NlcnQgVmVyc2lvbih2ZXJzaW9uKS5wdWJsaWMgPT0gcHVibGljCisKKyAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVyc2lvbiIsICJiYXNlX3Zl
cnNpb24iKSwKKyAgICAgICAgWworICAgICAgICAgICAgKCIxLjAiLCAiMS4wIiksCisgICAgICAg
ICAgICAoIjEuMC5kZXYwIiwgIjEuMCIpLAorICAgICAgICAgICAgKCIxLjAuZGV2NiIsICIxLjAi
KSwKKyAgICAgICAgICAgICgiMS4wYTEiLCAiMS4wIiksCisgICAgICAgICAgICAoIjEuMGExLnBv
c3Q1IiwgIjEuMCIpLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NS5kZXY2IiwgIjEuMCIpLAor
ICAgICAgICAgICAgKCIxLjByYzQiLCAiMS4wIiksCisgICAgICAgICAgICAoIjEuMC5wb3N0NSIs
ICIxLjAiKSwKKyAgICAgICAgICAgICgiMSExLjAiLCAiMSExLjAiKSwKKyAgICAgICAgICAgICgi
MSExLjAuZGV2NiIsICIxITEuMCIpLAorICAgICAgICAgICAgKCIxITEuMGExIiwgIjEhMS4wIiks
CisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUiLCAiMSExLjAiKSwKKyAgICAgICAgICAgICgi
MSExLjBhMS5wb3N0NS5kZXY2IiwgIjEhMS4wIiksCisgICAgICAgICAgICAoIjEhMS4wcmM0Iiwg
IjEhMS4wIiksCisgICAgICAgICAgICAoIjEhMS4wLnBvc3Q1IiwgIjEhMS4wIiksCisgICAgICAg
ICAgICAoIjEuMCtkZWFkYmVlZiIsICIxLjAiKSwKKyAgICAgICAgICAgICgiMS4wLmRldjYrZGVh
ZGJlZWYiLCAiMS4wIiksCisgICAgICAgICAgICAoIjEuMGExK2RlYWRiZWVmIiwgIjEuMCIpLAor
ICAgICAgICAgICAgKCIxLjBhMS5wb3N0NStkZWFkYmVlZiIsICIxLjAiKSwKKyAgICAgICAgICAg
ICgiMS4wYTEucG9zdDUuZGV2NitkZWFkYmVlZiIsICIxLjAiKSwKKyAgICAgICAgICAgICgiMS4w
cmM0K2RlYWRiZWVmIiwgIjEuMCIpLAorICAgICAgICAgICAgKCIxLjAucG9zdDUrZGVhZGJlZWYi
LCAiMS4wIiksCisgICAgICAgICAgICAoIjEhMS4wK2RlYWRiZWVmIiwgIjEhMS4wIiksCisgICAg
ICAgICAgICAoIjEhMS4wLmRldjYrZGVhZGJlZWYiLCAiMSExLjAiKSwKKyAgICAgICAgICAgICgi
MSExLjBhMStkZWFkYmVlZiIsICIxITEuMCIpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1
K2RlYWRiZWVmIiwgIjEhMS4wIiksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUuZGV2Nitk
ZWFkYmVlZiIsICIxITEuMCIpLAorICAgICAgICAgICAgKCIxITEuMHJjNCtkZWFkYmVlZiIsICIx
ITEuMCIpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0NStkZWFkYmVlZiIsICIxITEuMCIpLAor
ICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF92ZXJzaW9uX2Jhc2VfdmVyc2lvbihzZWxm
LCB2ZXJzaW9uLCBiYXNlX3ZlcnNpb24pOgorICAgICAgICBhc3NlcnQgVmVyc2lvbih2ZXJzaW9u
KS5iYXNlX3ZlcnNpb24gPT0gYmFzZV92ZXJzaW9uCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoCisgICAgICAgICgidmVyc2lvbiIsICJlcG9jaCIpLAorICAgICAgICBbCisgICAgICAg
ICAgICAoIjEuMCIsIDApLAorICAgICAgICAgICAgKCIxLjAuZGV2MCIsIDApLAorICAgICAgICAg
ICAgKCIxLjAuZGV2NiIsIDApLAorICAgICAgICAgICAgKCIxLjBhMSIsIDApLAorICAgICAgICAg
ICAgKCIxLjBhMS5wb3N0NSIsIDApLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NS5kZXY2Iiwg
MCksCisgICAgICAgICAgICAoIjEuMHJjNCIsIDApLAorICAgICAgICAgICAgKCIxLjAucG9zdDUi
LCAwKSwKKyAgICAgICAgICAgICgiMSExLjAiLCAxKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2
NiIsIDEpLAorICAgICAgICAgICAgKCIxITEuMGExIiwgMSksCisgICAgICAgICAgICAoIjEhMS4w
YTEucG9zdDUiLCAxKSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5kZXY2IiwgMSksCisg
ICAgICAgICAgICAoIjEhMS4wcmM0IiwgMSksCisgICAgICAgICAgICAoIjEhMS4wLnBvc3Q1Iiwg
MSksCisgICAgICAgICAgICAoIjEuMCtkZWFkYmVlZiIsIDApLAorICAgICAgICAgICAgKCIxLjAu
ZGV2NitkZWFkYmVlZiIsIDApLAorICAgICAgICAgICAgKCIxLjBhMStkZWFkYmVlZiIsIDApLAor
ICAgICAgICAgICAgKCIxLjBhMS5wb3N0NStkZWFkYmVlZiIsIDApLAorICAgICAgICAgICAgKCIx
LjBhMS5wb3N0NS5kZXY2K2RlYWRiZWVmIiwgMCksCisgICAgICAgICAgICAoIjEuMHJjNCtkZWFk
YmVlZiIsIDApLAorICAgICAgICAgICAgKCIxLjAucG9zdDUrZGVhZGJlZWYiLCAwKSwKKyAgICAg
ICAgICAgICgiMSExLjArZGVhZGJlZWYiLCAxKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2Nitk
ZWFkYmVlZiIsIDEpLAorICAgICAgICAgICAgKCIxITEuMGExK2RlYWRiZWVmIiwgMSksCisgICAg
ICAgICAgICAoIjEhMS4wYTEucG9zdDUrZGVhZGJlZWYiLCAxKSwKKyAgICAgICAgICAgICgiMSEx
LjBhMS5wb3N0NS5kZXY2K2RlYWRiZWVmIiwgMSksCisgICAgICAgICAgICAoIjEhMS4wcmM0K2Rl
YWRiZWVmIiwgMSksCisgICAgICAgICAgICAoIjEhMS4wLnBvc3Q1K2RlYWRiZWVmIiwgMSksCisg
ICAgICAgIF0sCisgICAgKQorICAgIGRlZiB0ZXN0X3ZlcnNpb25fZXBvY2goc2VsZiwgdmVyc2lv
biwgZXBvY2gpOgorICAgICAgICBhc3NlcnQgVmVyc2lvbih2ZXJzaW9uKS5lcG9jaCA9PSBlcG9j
aAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoInZlcnNpb24iLCAi
cmVsZWFzZSIpLAorICAgICAgICBbCisgICAgICAgICAgICAoIjEuMCIsICgxLCAwKSksCisgICAg
ICAgICAgICAoIjEuMC5kZXYwIiwgKDEsIDApKSwKKyAgICAgICAgICAgICgiMS4wLmRldjYiLCAo
MSwgMCkpLAorICAgICAgICAgICAgKCIxLjBhMSIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEu
MGExLnBvc3Q1IiwgKDEsIDApKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUuZGV2NiIsICgx
LCAwKSksCisgICAgICAgICAgICAoIjEuMHJjNCIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEu
MC5wb3N0NSIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEhMS4wIiwgKDEsIDApKSwKKyAgICAg
ICAgICAgICgiMSExLjAuZGV2NiIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEhMS4wYTEiLCAo
MSwgMCkpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1IiwgKDEsIDApKSwKKyAgICAgICAg
ICAgICgiMSExLjBhMS5wb3N0NS5kZXY2IiwgKDEsIDApKSwKKyAgICAgICAgICAgICgiMSExLjBy
YzQiLCAoMSwgMCkpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0NSIsICgxLCAwKSksCisgICAg
ICAgICAgICAoIjEuMCtkZWFkYmVlZiIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEuMC5kZXY2
K2RlYWRiZWVmIiwgKDEsIDApKSwKKyAgICAgICAgICAgICgiMS4wYTErZGVhZGJlZWYiLCAoMSwg
MCkpLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NStkZWFkYmVlZiIsICgxLCAwKSksCisgICAg
ICAgICAgICAoIjEuMGExLnBvc3Q1LmRldjYrZGVhZGJlZWYiLCAoMSwgMCkpLAorICAgICAgICAg
ICAgKCIxLjByYzQrZGVhZGJlZWYiLCAoMSwgMCkpLAorICAgICAgICAgICAgKCIxLjAucG9zdDUr
ZGVhZGJlZWYiLCAoMSwgMCkpLAorICAgICAgICAgICAgKCIxITEuMCtkZWFkYmVlZiIsICgxLCAw
KSksCisgICAgICAgICAgICAoIjEhMS4wLmRldjYrZGVhZGJlZWYiLCAoMSwgMCkpLAorICAgICAg
ICAgICAgKCIxITEuMGExK2RlYWRiZWVmIiwgKDEsIDApKSwKKyAgICAgICAgICAgICgiMSExLjBh
MS5wb3N0NStkZWFkYmVlZiIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUu
ZGV2NitkZWFkYmVlZiIsICgxLCAwKSksCisgICAgICAgICAgICAoIjEhMS4wcmM0K2RlYWRiZWVm
IiwgKDEsIDApKSwKKyAgICAgICAgICAgICgiMSExLjAucG9zdDUrZGVhZGJlZWYiLCAoMSwgMCkp
LAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF92ZXJzaW9uX3JlbGVhc2Uoc2VsZiwg
dmVyc2lvbiwgcmVsZWFzZSk6CisgICAgICAgIGFzc2VydCBWZXJzaW9uKHZlcnNpb24pLnJlbGVh
c2UgPT0gcmVsZWFzZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAo
InZlcnNpb24iLCAibG9jYWwiKSwKKyAgICAgICAgWworICAgICAgICAgICAgKCIxLjAiLCBOb25l
KSwKKyAgICAgICAgICAgICgiMS4wLmRldjAiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wLmRl
djYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wYTEiLCBOb25lKSwKKyAgICAgICAgICAgICgi
MS4wYTEucG9zdDUiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUuZGV2NiIsIE5v
bmUpLAorICAgICAgICAgICAgKCIxLjByYzQiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wLnBv
c3Q1IiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wIiwgTm9uZSksCisgICAgICAgICAgICAo
IjEhMS4wLmRldjYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMSExLjBhMSIsIE5vbmUpLAorICAg
ICAgICAgICAgKCIxITEuMGExLnBvc3Q1IiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wYTEu
cG9zdDUuZGV2NiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMHJjNCIsIE5vbmUpLAorICAg
ICAgICAgICAgKCIxITEuMC5wb3N0NSIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjArZGVhZGJl
ZWYiLCAiZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICgiMS4wLmRldjYrZGVhZGJlZWYiLCAiZGVh
ZGJlZWYiKSwKKyAgICAgICAgICAgICgiMS4wYTErZGVhZGJlZWYiLCAiZGVhZGJlZWYiKSwKKyAg
ICAgICAgICAgICgiMS4wYTEucG9zdDUrZGVhZGJlZWYiLCAiZGVhZGJlZWYiKSwKKyAgICAgICAg
ICAgICgiMS4wYTEucG9zdDUuZGV2NitkZWFkYmVlZiIsICJkZWFkYmVlZiIpLAorICAgICAgICAg
ICAgKCIxLjByYzQrZGVhZGJlZWYiLCAiZGVhZGJlZWYiKSwKKyAgICAgICAgICAgICgiMS4wLnBv
c3Q1K2RlYWRiZWVmIiwgImRlYWRiZWVmIiksCisgICAgICAgICAgICAoIjEhMS4wK2RlYWRiZWVm
IiwgImRlYWRiZWVmIiksCisgICAgICAgICAgICAoIjEhMS4wLmRldjYrZGVhZGJlZWYiLCAiZGVh
ZGJlZWYiKSwKKyAgICAgICAgICAgICgiMSExLjBhMStkZWFkYmVlZiIsICJkZWFkYmVlZiIpLAor
ICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1K2RlYWRiZWVmIiwgImRlYWRiZWVmIiksCisgICAg
ICAgICAgICAoIjEhMS4wYTEucG9zdDUuZGV2NitkZWFkYmVlZiIsICJkZWFkYmVlZiIpLAorICAg
ICAgICAgICAgKCIxITEuMHJjNCtkZWFkYmVlZiIsICJkZWFkYmVlZiIpLAorICAgICAgICAgICAg
KCIxITEuMC5wb3N0NStkZWFkYmVlZiIsICJkZWFkYmVlZiIpLAorICAgICAgICBdLAorICAgICkK
KyAgICBkZWYgdGVzdF92ZXJzaW9uX2xvY2FsKHNlbGYsIHZlcnNpb24sIGxvY2FsKToKKyAgICAg
ICAgYXNzZXJ0IFZlcnNpb24odmVyc2lvbikubG9jYWwgPT0gbG9jYWwKKworICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgKCJ2ZXJzaW9uIiwgInByZSIpLAorICAgICAgICBb
CisgICAgICAgICAgICAoIjEuMCIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjAuZGV2MCIsIE5v
bmUpLAorICAgICAgICAgICAgKCIxLjAuZGV2NiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjBh
MSIsICgiYSIsIDEpKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUiLCAoImEiLCAxKSksCisg
ICAgICAgICAgICAoIjEuMGExLnBvc3Q1LmRldjYiLCAoImEiLCAxKSksCisgICAgICAgICAgICAo
IjEuMHJjNCIsICgicmMiLCA0KSksCisgICAgICAgICAgICAoIjEuMC5wb3N0NSIsIE5vbmUpLAor
ICAgICAgICAgICAgKCIxITEuMCIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMC5kZXY2Iiwg
Tm9uZSksCisgICAgICAgICAgICAoIjEhMS4wYTEiLCAoImEiLCAxKSksCisgICAgICAgICAgICAo
IjEhMS4wYTEucG9zdDUiLCAoImEiLCAxKSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUu
ZGV2NiIsICgiYSIsIDEpKSwKKyAgICAgICAgICAgICgiMSExLjByYzQiLCAoInJjIiwgNCkpLAor
ICAgICAgICAgICAgKCIxITEuMC5wb3N0NSIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjArZGVh
ZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wLmRldjYrZGVhZGJlZWYiLCBOb25lKSwK
KyAgICAgICAgICAgICgiMS4wYTErZGVhZGJlZWYiLCAoImEiLCAxKSksCisgICAgICAgICAgICAo
IjEuMGExLnBvc3Q1K2RlYWRiZWVmIiwgKCJhIiwgMSkpLAorICAgICAgICAgICAgKCIxLjBhMS5w
b3N0NS5kZXY2K2RlYWRiZWVmIiwgKCJhIiwgMSkpLAorICAgICAgICAgICAgKCIxLjByYzQrZGVh
ZGJlZWYiLCAoInJjIiwgNCkpLAorICAgICAgICAgICAgKCIxLjAucG9zdDUrZGVhZGJlZWYiLCBO
b25lKSwKKyAgICAgICAgICAgICgiMSExLjArZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAg
ICgiMSExLjAuZGV2NitkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMGExK2Rl
YWRiZWVmIiwgKCJhIiwgMSkpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1K2RlYWRiZWVm
IiwgKCJhIiwgMSkpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1LmRldjYrZGVhZGJlZWYi
LCAoImEiLCAxKSksCisgICAgICAgICAgICAoIjEhMS4wcmM0K2RlYWRiZWVmIiwgKCJyYyIsIDQp
KSwKKyAgICAgICAgICAgICgiMSExLjAucG9zdDUrZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAg
XSwKKyAgICApCisgICAgZGVmIHRlc3RfdmVyc2lvbl9wcmUoc2VsZiwgdmVyc2lvbiwgcHJlKToK
KyAgICAgICAgYXNzZXJ0IFZlcnNpb24odmVyc2lvbikucHJlID09IHByZQorCisgICAgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoInZlcnNpb24iLCAiZXhwZWN0ZWQiKSwKKyAg
ICAgICAgWworICAgICAgICAgICAgKCIxLjAuZGV2MCIsIFRydWUpLAorICAgICAgICAgICAgKCIx
LjAuZGV2MSIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjBhMS5kZXYxIiwgVHJ1ZSksCisgICAg
ICAgICAgICAoIjEuMGIxLmRldjEiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4wYzEuZGV2MSIs
IFRydWUpLAorICAgICAgICAgICAgKCIxLjByYzEuZGV2MSIsIFRydWUpLAorICAgICAgICAgICAg
KCIxLjBhMSIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjBiMSIsIFRydWUpLAorICAgICAgICAg
ICAgKCIxLjBjMSIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjByYzEiLCBUcnVlKSwKKyAgICAg
ICAgICAgICgiMS4wYTEucG9zdDEuZGV2MSIsIFRydWUpLAorICAgICAgICAgICAgKCIxLjBiMS5w
b3N0MS5kZXYxIiwgVHJ1ZSksCisgICAgICAgICAgICAoIjEuMGMxLnBvc3QxLmRldjEiLCBUcnVl
KSwKKyAgICAgICAgICAgICgiMS4wcmMxLnBvc3QxLmRldjEiLCBUcnVlKSwKKyAgICAgICAgICAg
ICgiMS4wYTEucG9zdDEiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4wYjEucG9zdDEiLCBUcnVl
KSwKKyAgICAgICAgICAgICgiMS4wYzEucG9zdDEiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4w
cmMxLnBvc3QxIiwgVHJ1ZSksCisgICAgICAgICAgICAoIjEuMCIsIEZhbHNlKSwKKyAgICAgICAg
ICAgICgiMS4wK2RldiIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMS4wLnBvc3QxIiwgRmFsc2Up
LAorICAgICAgICAgICAgKCIxLjAucG9zdDErZGV2IiwgRmFsc2UpLAorICAgICAgICBdLAorICAg
ICkKKyAgICBkZWYgdGVzdF92ZXJzaW9uX2lzX3ByZXJlbGVhc2Uoc2VsZiwgdmVyc2lvbiwgZXhw
ZWN0ZWQpOgorICAgICAgICBhc3NlcnQgVmVyc2lvbih2ZXJzaW9uKS5pc19wcmVyZWxlYXNlIGlz
IGV4cGVjdGVkCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAgICAgICgidmVy
c2lvbiIsICJkZXYiKSwKKyAgICAgICAgWworICAgICAgICAgICAgKCIxLjAiLCBOb25lKSwKKyAg
ICAgICAgICAgICgiMS4wLmRldjAiLCAwKSwKKyAgICAgICAgICAgICgiMS4wLmRldjYiLCA2KSwK
KyAgICAgICAgICAgICgiMS4wYTEiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUi
LCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUuZGV2NiIsIDYpLAorICAgICAgICAg
ICAgKCIxLjByYzQiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q1IiwgTm9uZSksCisg
ICAgICAgICAgICAoIjEhMS4wIiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wLmRldjYiLCA2
KSwKKyAgICAgICAgICAgICgiMSExLjBhMSIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMGEx
LnBvc3Q1IiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUuZGV2NiIsIDYpLAor
ICAgICAgICAgICAgKCIxITEuMHJjNCIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0
NSIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjArZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAg
ICAgICgiMS4wLmRldjYrZGVhZGJlZWYiLCA2KSwKKyAgICAgICAgICAgICgiMS4wYTErZGVhZGJl
ZWYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wYTEucG9zdDUrZGVhZGJlZWYiLCBOb25lKSwK
KyAgICAgICAgICAgICgiMS4wYTEucG9zdDUuZGV2NitkZWFkYmVlZiIsIDYpLAorICAgICAgICAg
ICAgKCIxLjByYzQrZGVhZGJlZWYiLCBOb25lKSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q1K2Rl
YWRiZWVmIiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wK2RlYWRiZWVmIiwgTm9uZSksCisg
ICAgICAgICAgICAoIjEhMS4wLmRldjYrZGVhZGJlZWYiLCA2KSwKKyAgICAgICAgICAgICgiMSEx
LjBhMStkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1K2RlYWRi
ZWVmIiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9zdDUuZGV2NitkZWFkYmVlZiIs
IDYpLAorICAgICAgICAgICAgKCIxITEuMHJjNCtkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICAg
ICAgKCIxITEuMC5wb3N0NStkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICBdLAorICAgICkKKyAg
ICBkZWYgdGVzdF92ZXJzaW9uX2RldihzZWxmLCB2ZXJzaW9uLCBkZXYpOgorICAgICAgICBhc3Nl
cnQgVmVyc2lvbih2ZXJzaW9uKS5kZXYgPT0gZGV2CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoCisgICAgICAgICgidmVyc2lvbiIsICJleHBlY3RlZCIpLAorICAgICAgICBbCisgICAg
ICAgICAgICAoIjEuMCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMS4wLmRldjAiLCBUcnVlKSwK
KyAgICAgICAgICAgICgiMS4wLmRldjYiLCBUcnVlKSwKKyAgICAgICAgICAgICgiMS4wYTEiLCBG
YWxzZSksCisgICAgICAgICAgICAoIjEuMGExLnBvc3Q1IiwgRmFsc2UpLAorICAgICAgICAgICAg
KCIxLjBhMS5wb3N0NS5kZXY2IiwgVHJ1ZSksCisgICAgICAgICAgICAoIjEuMHJjNCIsIEZhbHNl
KSwKKyAgICAgICAgICAgICgiMS4wLnBvc3Q1IiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxITEu
MCIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2NiIsIFRydWUpLAorICAgICAgICAg
ICAgKCIxITEuMGExIiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1IiwgRmFs
c2UpLAorICAgICAgICAgICAgKCIxITEuMGExLnBvc3Q1LmRldjYiLCBUcnVlKSwKKyAgICAgICAg
ICAgICgiMSExLjByYzQiLCBGYWxzZSksCisgICAgICAgICAgICAoIjEhMS4wLnBvc3Q1IiwgRmFs
c2UpLAorICAgICAgICAgICAgKCIxLjArZGVhZGJlZWYiLCBGYWxzZSksCisgICAgICAgICAgICAo
IjEuMC5kZXY2K2RlYWRiZWVmIiwgVHJ1ZSksCisgICAgICAgICAgICAoIjEuMGExK2RlYWRiZWVm
IiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NStkZWFkYmVlZiIsIEZhbHNlKSwK
KyAgICAgICAgICAgICgiMS4wYTEucG9zdDUuZGV2NitkZWFkYmVlZiIsIFRydWUpLAorICAgICAg
ICAgICAgKCIxLjByYzQrZGVhZGJlZWYiLCBGYWxzZSksCisgICAgICAgICAgICAoIjEuMC5wb3N0
NStkZWFkYmVlZiIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMSExLjArZGVhZGJlZWYiLCBGYWxz
ZSksCisgICAgICAgICAgICAoIjEhMS4wLmRldjYrZGVhZGJlZWYiLCBUcnVlKSwKKyAgICAgICAg
ICAgICgiMSExLjBhMStkZWFkYmVlZiIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMSExLjBhMS5w
b3N0NStkZWFkYmVlZiIsIEZhbHNlKSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5kZXY2
K2RlYWRiZWVmIiwgVHJ1ZSksCisgICAgICAgICAgICAoIjEhMS4wcmM0K2RlYWRiZWVmIiwgRmFs
c2UpLAorICAgICAgICAgICAgKCIxITEuMC5wb3N0NStkZWFkYmVlZiIsIEZhbHNlKSwKKyAgICAg
ICAgXSwKKyAgICApCisgICAgZGVmIHRlc3RfdmVyc2lvbl9pc19kZXZyZWxlYXNlKHNlbGYsIHZl
cnNpb24sIGV4cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0IFZlcnNpb24odmVyc2lvbikuaXNfZGV2
cmVsZWFzZSBpcyBleHBlY3RlZAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAg
ICAgICAoInZlcnNpb24iLCAicG9zdCIpLAorICAgICAgICBbCisgICAgICAgICAgICAoIjEuMCIs
IE5vbmUpLAorICAgICAgICAgICAgKCIxLjAuZGV2MCIsIE5vbmUpLAorICAgICAgICAgICAgKCIx
LjAuZGV2NiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjBhMSIsIE5vbmUpLAorICAgICAgICAg
ICAgKCIxLjBhMS5wb3N0NSIsIDUpLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NS5kZXY2Iiwg
NSksCisgICAgICAgICAgICAoIjEuMHJjNCIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjAucG9z
dDUiLCA1KSwKKyAgICAgICAgICAgICgiMSExLjAiLCBOb25lKSwKKyAgICAgICAgICAgICgiMSEx
LjAuZGV2NiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxITEuMGExIiwgTm9uZSksCisgICAgICAg
ICAgICAoIjEhMS4wYTEucG9zdDUiLCA1KSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5k
ZXY2IiwgNSksCisgICAgICAgICAgICAoIjEhMS4wcmM0IiwgTm9uZSksCisgICAgICAgICAgICAo
IjEhMS4wLnBvc3Q1IiwgNSksCisgICAgICAgICAgICAoIjEuMCtkZWFkYmVlZiIsIE5vbmUpLAor
ICAgICAgICAgICAgKCIxLjAuZGV2NitkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICAgICAgKCIx
LjBhMStkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NStkZWFkYmVl
ZiIsIDUpLAorICAgICAgICAgICAgKCIxLjBhMS5wb3N0NS5kZXY2K2RlYWRiZWVmIiwgNSksCisg
ICAgICAgICAgICAoIjEuMHJjNCtkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICAgICAgKCIxLjAu
cG9zdDUrZGVhZGJlZWYiLCA1KSwKKyAgICAgICAgICAgICgiMSExLjArZGVhZGJlZWYiLCBOb25l
KSwKKyAgICAgICAgICAgICgiMSExLjAuZGV2NitkZWFkYmVlZiIsIE5vbmUpLAorICAgICAgICAg
ICAgKCIxITEuMGExK2RlYWRiZWVmIiwgTm9uZSksCisgICAgICAgICAgICAoIjEhMS4wYTEucG9z
dDUrZGVhZGJlZWYiLCA1KSwKKyAgICAgICAgICAgICgiMSExLjBhMS5wb3N0NS5kZXY2K2RlYWRi
ZWVmIiwgNSksCisgICAgICAgICAgICAoIjEhMS4wcmM0K2RlYWRiZWVmIiwgTm9uZSksCisgICAg
ICAgICAgICAoIjEhMS4wLnBvc3Q1K2RlYWRiZWVmIiwgNSksCisgICAgICAgIF0sCisgICAgKQor
ICAgIGRlZiB0ZXN0X3ZlcnNpb25fcG9zdChzZWxmLCB2ZXJzaW9uLCBwb3N0KToKKyAgICAgICAg
YXNzZXJ0IFZlcnNpb24odmVyc2lvbikucG9zdCA9PSBwb3N0CisKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoCisgICAgICAgICgidmVyc2lvbiIsICJleHBlY3RlZCIpLAorICAgICAgICBb
CisgICAgICAgICAgICAoIjEuMC5kZXYxIiwgRmFsc2UpLAorICAgICAgICAgICAgKCIxLjAiLCBG
YWxzZSksCisgICAgICAgICAgICAoIjEuMCtmb28iLCBGYWxzZSksCisgICAgICAgICAgICAoIjEu
MC5wb3N0MS5kZXYxIiwgVHJ1ZSksCisgICAgICAgICAgICAoIjEuMC5wb3N0MSIsIFRydWUpLAor
ICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF92ZXJzaW9uX2lzX3Bvc3RyZWxlYXNlKHNl
bGYsIHZlcnNpb24sIGV4cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0IFZlcnNpb24odmVyc2lvbiku
aXNfcG9zdHJlbGVhc2UgaXMgZXhwZWN0ZWQKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgKKyAgICAgICAgKCJsZWZ0IiwgInJpZ2h0IiwgIm9wIiksCisgICAgICAgICMgQmVsb3cgd2Un
bGwgZ2VuZXJhdGUgZXZlcnkgcG9zc2libGUgY29tYmluYXRpb24gb2YgVkVSU0lPTlMgdGhhdAor
ICAgICAgICAjIHNob3VsZCBiZSBUcnVlIGZvciB0aGUgZ2l2ZW4gb3BlcmF0b3IKKyAgICAgICAg
aXRlcnRvb2xzLmNoYWluKAorICAgICAgICAgICAgKgorICAgICAgICAgICAgIyBWZXJpZnkgdGhh
dCB0aGUgbGVzcyB0aGFuICg8KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAgICAg
IFsKKyAgICAgICAgICAgICAgICBbKHgsIHksIG9wZXJhdG9yLmx0KSBmb3IgeSBpbiBWRVJTSU9O
U1tpICsgMSA6XV0KKyAgICAgICAgICAgICAgICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoVkVSU0lP
TlMpCisgICAgICAgICAgICBdCisgICAgICAgICAgICArCisgICAgICAgICAgICAjIFZlcmlmeSB0
aGF0IHRoZSBsZXNzIHRoYW4gZXF1YWwgKDw9KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkKKyAg
ICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICBbKHgsIHksIG9wZXJhdG9yLmxlKSBmb3IgeSBp
biBWRVJTSU9OU1tpOl1dCisgICAgICAgICAgICAgICAgZm9yIGksIHggaW4gZW51bWVyYXRlKFZF
UlNJT05TKQorICAgICAgICAgICAgXQorICAgICAgICAgICAgKworICAgICAgICAgICAgIyBWZXJp
ZnkgdGhhdCB0aGUgZXF1YWwgKD09KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAg
ICAgIFtbKHgsIHgsIG9wZXJhdG9yLmVxKSBmb3IgeCBpbiBWRVJTSU9OU11dCisgICAgICAgICAg
ICArCisgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBub3QgZXF1YWwgKCE9KSBvcGVyYXRv
ciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICBbKHgsIHks
IG9wZXJhdG9yLm5lKSBmb3IgaiwgeSBpbiBlbnVtZXJhdGUoVkVSU0lPTlMpIGlmIGkgIT0gal0K
KyAgICAgICAgICAgICAgICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoVkVSU0lPTlMpCisgICAgICAg
ICAgICBdCisgICAgICAgICAgICArCisgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBncmVh
dGVyIHRoYW4gZXF1YWwgKD49KSBvcGVyYXRvciB3b3JrcyBjb3JyZWN0bHkKKyAgICAgICAgICAg
IFsKKyAgICAgICAgICAgICAgICBbKHgsIHksIG9wZXJhdG9yLmdlKSBmb3IgeSBpbiBWRVJTSU9O
U1s6IGkgKyAxXV0KKyAgICAgICAgICAgICAgICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoVkVSU0lP
TlMpCisgICAgICAgICAgICBdCisgICAgICAgICAgICArCisgICAgICAgICAgICAjIFZlcmlmeSB0
aGF0IHRoZSBncmVhdGVyIHRoYW4gKD4pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAg
ICAgICAgWworICAgICAgICAgICAgICAgIFsoeCwgeSwgb3BlcmF0b3IuZ3QpIGZvciB5IGluIFZF
UlNJT05TWzppXV0KKyAgICAgICAgICAgICAgICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoVkVSU0lP
TlMpCisgICAgICAgICAgICBdCisgICAgICAgICksCisgICAgKQorICAgIGRlZiB0ZXN0X2NvbXBh
cmlzb25fdHJ1ZShzZWxmLCBsZWZ0LCByaWdodCwgb3ApOgorICAgICAgICBhc3NlcnQgb3AoVmVy
c2lvbihsZWZ0KSwgVmVyc2lvbihyaWdodCkpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoCisgICAgICAgICgibGVmdCIsICJyaWdodCIsICJvcCIpLAorICAgICAgICAjIEJlbG93IHdl
J2xsIGdlbmVyYXRlIGV2ZXJ5IHBvc3NpYmxlIGNvbWJpbmF0aW9uIG9mIFZFUlNJT05TIHRoYXQK
KyAgICAgICAgIyBzaG91bGQgYmUgRmFsc2UgZm9yIHRoZSBnaXZlbiBvcGVyYXRvcgorICAgICAg
ICBpdGVydG9vbHMuY2hhaW4oCisgICAgICAgICAgICAqCisgICAgICAgICAgICAjIFZlcmlmeSB0
aGF0IHRoZSBsZXNzIHRoYW4gKDwpIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAg
ICAgWworICAgICAgICAgICAgICAgIFsoeCwgeSwgb3BlcmF0b3IubHQpIGZvciB5IGluIFZFUlNJ
T05TWzogaSArIDFdXQorICAgICAgICAgICAgICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShWRVJT
SU9OUykKKyAgICAgICAgICAgIF0KKyAgICAgICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5
IHRoYXQgdGhlIGxlc3MgdGhhbiBlcXVhbCAoPD0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQor
ICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIFsoeCwgeSwgb3BlcmF0b3IubGUpIGZvciB5
IGluIFZFUlNJT05TWzppXV0KKyAgICAgICAgICAgICAgICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUo
VkVSU0lPTlMpCisgICAgICAgICAgICBdCisgICAgICAgICAgICArCisgICAgICAgICAgICAjIFZl
cmlmeSB0aGF0IHRoZSBlcXVhbCAoPT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAg
ICAgICAgWworICAgICAgICAgICAgICAgIFsoeCwgeSwgb3BlcmF0b3IuZXEpIGZvciBqLCB5IGlu
IGVudW1lcmF0ZShWRVJTSU9OUykgaWYgaSAhPSBqXQorICAgICAgICAgICAgICAgIGZvciBpLCB4
IGluIGVudW1lcmF0ZShWRVJTSU9OUykKKyAgICAgICAgICAgIF0KKyAgICAgICAgICAgICsKKyAg
ICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIG5vdCBlcXVhbCAoIT0pIG9wZXJhdG9yIHdvcmtz
IGNvcnJlY3RseQorICAgICAgICAgICAgW1soeCwgeCwgb3BlcmF0b3IubmUpIGZvciB4IGluIFZF
UlNJT05TXV0KKyAgICAgICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIGdy
ZWF0ZXIgdGhhbiBlcXVhbCAoPj0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAg
ICAgWworICAgICAgICAgICAgICAgIFsoeCwgeSwgb3BlcmF0b3IuZ2UpIGZvciB5IGluIFZFUlNJ
T05TW2kgKyAxIDpdXQorICAgICAgICAgICAgICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShWRVJT
SU9OUykKKyAgICAgICAgICAgIF0KKyAgICAgICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5
IHRoYXQgdGhlIGdyZWF0ZXIgdGhhbiAoPikgb3BlcmF0b3Igd29ya3MgY29ycmVjdGx5CisgICAg
ICAgICAgICBbCisgICAgICAgICAgICAgICAgWyh4LCB5LCBvcGVyYXRvci5ndCkgZm9yIHkgaW4g
VkVSU0lPTlNbaTpdXQorICAgICAgICAgICAgICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShWRVJT
SU9OUykKKyAgICAgICAgICAgIF0KKyAgICAgICAgKSwKKyAgICApCisgICAgZGVmIHRlc3RfY29t
cGFyaXNvbl9mYWxzZShzZWxmLCBsZWZ0LCByaWdodCwgb3ApOgorICAgICAgICBhc3NlcnQgbm90
IG9wKFZlcnNpb24obGVmdCksIFZlcnNpb24ocmlnaHQpKQorCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJvcCIsIFsibHQiLCAibGUiLCAiZXEiLCAiZ2UiLCAiZ3QiLCAibmUiXSkKKyAg
ICBkZWYgdGVzdF9kdW5kZXJfb3BfcmV0dXJuc19ub3RpbXBsZW1lbnRlZChzZWxmLCBvcCk6Cisg
ICAgICAgIG1ldGhvZCA9IGdldGF0dHIoVmVyc2lvbiwgIl9fezB9X18iLmZvcm1hdChvcCkpCisg
ICAgICAgIGFzc2VydCBtZXRob2QoVmVyc2lvbigiMSIpLCAxKSBpcyBOb3RJbXBsZW1lbnRlZAor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgib3AiLCAiZXhwZWN0ZWQiKSwgWygiZXEi
LCBGYWxzZSksICgibmUiLCBUcnVlKV0pCisgICAgZGVmIHRlc3RfY29tcGFyZV9vdGhlcihzZWxm
LCBvcCwgZXhwZWN0ZWQpOgorICAgICAgICBvdGhlciA9IHByZXRlbmQuc3R1YigqKnsiX197MH1f
XyIuZm9ybWF0KG9wKTogbGFtYmRhIG90aGVyOiBOb3RJbXBsZW1lbnRlZH0pCisKKyAgICAgICAg
YXNzZXJ0IGdldGF0dHIob3BlcmF0b3IsIG9wKShWZXJzaW9uKCIxIiksIG90aGVyKSBpcyBleHBl
Y3RlZAorCisgICAgZGVmIHRlc3RfY29tcGFyZV9sZWdhY3l2ZXJzaW9uX3ZlcnNpb24oc2VsZik6
CisgICAgICAgIHJlc3VsdCA9IHNvcnRlZChbVmVyc2lvbigiMCIpLCBMZWdhY3lWZXJzaW9uKCIx
IildKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFtMZWdhY3lWZXJzaW9uKCIxIiksIFZlcnNp
b24oIjAiKV0KKworICAgIGRlZiB0ZXN0X21ham9yX3ZlcnNpb24oc2VsZik6CisgICAgICAgIGFz
c2VydCBWZXJzaW9uKCIyLjEuMCIpLm1ham9yID09IDIKKworICAgIGRlZiB0ZXN0X21pbm9yX3Zl
cnNpb24oc2VsZik6CisgICAgICAgIGFzc2VydCBWZXJzaW9uKCIyLjEuMCIpLm1pbm9yID09IDEK
KyAgICAgICAgYXNzZXJ0IFZlcnNpb24oIjIiKS5taW5vciA9PSAwCisKKyAgICBkZWYgdGVzdF9t
aWNyb192ZXJzaW9uKHNlbGYpOgorICAgICAgICBhc3NlcnQgVmVyc2lvbigiMi4xLjMiKS5taWNy
byA9PSAzCisgICAgICAgIGFzc2VydCBWZXJzaW9uKCIyLjEiKS5taWNybyA9PSAwCisgICAgICAg
IGFzc2VydCBWZXJzaW9uKCIyIikubWljcm8gPT0gMAorCisKK0xFR0FDWV9WRVJTSU9OUyA9IFsi
Zm9vYmFyIiwgImEgY2F0IGlzIGZpbmUgdG9vIiwgImxvbHd1dCIsICIxLTAiLCAiMi4wLWExIl0K
KworCitjbGFzcyBUZXN0TGVnYWN5VmVyc2lvbjoKKyAgICBkZWYgdGVzdF9sZWdhY3lfdmVyc2lv
bl9pc19kZXByZWNhdGVkKHNlbGYpOgorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5p
bmdzKHJlY29yZD1UcnVlKSBhcyB3OgorICAgICAgICAgICAgTGVnYWN5VmVyc2lvbigic29tZS1s
ZWdhY3ktdmVyc2lvbiIpCisgICAgICAgICAgICBhc3NlcnQgbGVuKHcpID09IDEKKyAgICAgICAg
ICAgIGFzc2VydCBpc3N1YmNsYXNzKHdbMF0uY2F0ZWdvcnksIERlcHJlY2F0aW9uV2FybmluZykK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmVyc2lvbiIsIFZFUlNJT05TICsgTEVH
QUNZX1ZFUlNJT05TKQorICAgIGRlZiB0ZXN0X3ZhbGlkX2xlZ2FjeV92ZXJzaW9ucyhzZWxmLCB2
ZXJzaW9uKToKKyAgICAgICAgTGVnYWN5VmVyc2lvbih2ZXJzaW9uKQorCisgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisg
ICAgZGVmIHRlc3RfbGVnYWN5X3ZlcnNpb25fc3RyX3JlcHIoc2VsZiwgdmVyc2lvbik6CisgICAg
ICAgIGFzc2VydCBzdHIoTGVnYWN5VmVyc2lvbih2ZXJzaW9uKSkgPT0gdmVyc2lvbgorICAgICAg
ICBhc3NlcnQgcmVwcihMZWdhY3lWZXJzaW9uKHZlcnNpb24pKSA9PSAiPExlZ2FjeVZlcnNpb24o
ezB9KT4iLmZvcm1hdCgKKyAgICAgICAgICAgIHJlcHIodmVyc2lvbikKKyAgICAgICAgKQorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lf
VkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVnYWN5X3ZlcnNpb25faGFzaChzZWxmLCB2ZXJzaW9u
KToKKyAgICAgICAgYXNzZXJ0IGhhc2goTGVnYWN5VmVyc2lvbih2ZXJzaW9uKSkgPT0gaGFzaChM
ZWdhY3lWZXJzaW9uKHZlcnNpb24pKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2
ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVnYWN5
X3ZlcnNpb25fcHVibGljKHNlbGYsIHZlcnNpb24pOgorICAgICAgICBhc3NlcnQgTGVnYWN5VmVy
c2lvbih2ZXJzaW9uKS5wdWJsaWMgPT0gdmVyc2lvbgorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgZGVmIHRl
c3RfbGVnYWN5X3ZlcnNpb25fYmFzZV92ZXJzaW9uKHNlbGYsIHZlcnNpb24pOgorICAgICAgICBh
c3NlcnQgTGVnYWN5VmVyc2lvbih2ZXJzaW9uKS5iYXNlX3ZlcnNpb24gPT0gdmVyc2lvbgorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lf
VkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVnYWN5X3ZlcnNpb25fZXBvY2goc2VsZiwgdmVyc2lv
bik6CisgICAgICAgIGFzc2VydCBMZWdhY3lWZXJzaW9uKHZlcnNpb24pLmVwb2NoID09IC0xCisK
KyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZlcnNpb24iLCBWRVJTSU9OUyArIExFR0FD
WV9WRVJTSU9OUykKKyAgICBkZWYgdGVzdF9sZWdhY3lfdmVyc2lvbl9yZWxlYXNlKHNlbGYsIHZl
cnNpb24pOgorICAgICAgICBhc3NlcnQgTGVnYWN5VmVyc2lvbih2ZXJzaW9uKS5yZWxlYXNlIGlz
IE5vbmUKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmVyc2lvbiIsIFZFUlNJT05T
ICsgTEVHQUNZX1ZFUlNJT05TKQorICAgIGRlZiB0ZXN0X2xlZ2FjeV92ZXJzaW9uX2xvY2FsKHNl
bGYsIHZlcnNpb24pOgorICAgICAgICBhc3NlcnQgTGVnYWN5VmVyc2lvbih2ZXJzaW9uKS5sb2Nh
bCBpcyBOb25lCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZlcnNpb24iLCBWRVJT
SU9OUyArIExFR0FDWV9WRVJTSU9OUykKKyAgICBkZWYgdGVzdF9sZWdhY3lfdmVyc2lvbl9wcmUo
c2VsZiwgdmVyc2lvbik6CisgICAgICAgIGFzc2VydCBMZWdhY3lWZXJzaW9uKHZlcnNpb24pLnBy
ZSBpcyBOb25lCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZlcnNpb24iLCBWRVJT
SU9OUyArIExFR0FDWV9WRVJTSU9OUykKKyAgICBkZWYgdGVzdF9sZWdhY3lfdmVyc2lvbl9pc19w
cmVyZWxlYXNlKHNlbGYsIHZlcnNpb24pOgorICAgICAgICBhc3NlcnQgbm90IExlZ2FjeVZlcnNp
b24odmVyc2lvbikuaXNfcHJlcmVsZWFzZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVn
YWN5X3ZlcnNpb25fZGV2KHNlbGYsIHZlcnNpb24pOgorICAgICAgICBhc3NlcnQgTGVnYWN5VmVy
c2lvbih2ZXJzaW9uKS5kZXYgaXMgTm9uZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMpCisgICAgZGVmIHRlc3RfbGVn
YWN5X3ZlcnNpb25faXNfZGV2cmVsZWFzZShzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgYXNzZXJ0
IG5vdCBMZWdhY3lWZXJzaW9uKHZlcnNpb24pLmlzX2RldnJlbGVhc2UKKworICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgidmVyc2lvbiIsIFZFUlNJT05TICsgTEVHQUNZX1ZFUlNJT05TKQor
ICAgIGRlZiB0ZXN0X2xlZ2FjeV92ZXJzaW9uX3Bvc3Qoc2VsZiwgdmVyc2lvbik6CisgICAgICAg
IGFzc2VydCBMZWdhY3lWZXJzaW9uKHZlcnNpb24pLnBvc3QgaXMgTm9uZQorCisgICAgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJ2ZXJzaW9uIiwgVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMp
CisgICAgZGVmIHRlc3RfbGVnYWN5X3ZlcnNpb25faXNfcG9zdHJlbGVhc2Uoc2VsZiwgdmVyc2lv
bik6CisgICAgICAgIGFzc2VydCBub3QgTGVnYWN5VmVyc2lvbih2ZXJzaW9uKS5pc19wb3N0cmVs
ZWFzZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoImxlZnQiLCAi
cmlnaHQiLCAib3AiKSwKKyAgICAgICAgIyBCZWxvdyB3ZSdsbCBnZW5lcmF0ZSBldmVyeSBwb3Nz
aWJsZSBjb21iaW5hdGlvbiBvZgorICAgICAgICAjIFZFUlNJT05TICsgTEVHQUNZX1ZFUlNJT05T
IHRoYXQgc2hvdWxkIGJlIFRydWUgZm9yIHRoZSBnaXZlbiBvcGVyYXRvcgorICAgICAgICBpdGVy
dG9vbHMuY2hhaW4oCisgICAgICAgICAgICAqCisgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRo
ZSBlcXVhbCAoPT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgW1soeCwg
eCwgb3BlcmF0b3IuZXEpIGZvciB4IGluIFZFUlNJT05TICsgTEVHQUNZX1ZFUlNJT05TXV0KKyAg
ICAgICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIG5vdCBlcXVhbCAoIT0p
IG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAgICAgICAgWworICAgICAgICAgICAgICAg
IFsKKyAgICAgICAgICAgICAgICAgICAgKHgsIHksIG9wZXJhdG9yLm5lKQorICAgICAgICAgICAg
ICAgICAgICBmb3IgaiwgeSBpbiBlbnVtZXJhdGUoVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMp
CisgICAgICAgICAgICAgICAgICAgIGlmIGkgIT0gagorICAgICAgICAgICAgICAgIF0KKyAgICAg
ICAgICAgICAgICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lP
TlMpCisgICAgICAgICAgICBdCisgICAgICAgICksCisgICAgKQorICAgIGRlZiB0ZXN0X2NvbXBh
cmlzb25fdHJ1ZShzZWxmLCBsZWZ0LCByaWdodCwgb3ApOgorICAgICAgICBhc3NlcnQgb3AoTGVn
YWN5VmVyc2lvbihsZWZ0KSwgTGVnYWN5VmVyc2lvbihyaWdodCkpCisKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoCisgICAgICAgICgibGVmdCIsICJyaWdodCIsICJvcCIpLAorICAgICAg
ICAjIEJlbG93IHdlJ2xsIGdlbmVyYXRlIGV2ZXJ5IHBvc3NpYmxlIGNvbWJpbmF0aW9uIG9mCisg
ICAgICAgICMgVkVSU0lPTlMgKyBMRUdBQ1lfVkVSU0lPTlMgdGhhdCBzaG91bGQgYmUgRmFsc2Ug
Zm9yIHRoZSBnaXZlbgorICAgICAgICAjIG9wZXJhdG9yCisgICAgICAgIGl0ZXJ0b29scy5jaGFp
bigKKyAgICAgICAgICAgICoKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIGVxdWFsICg9
PSkgb3BlcmF0b3Igd29ya3MgY29ycmVjdGx5CisgICAgICAgICAgICBbCisgICAgICAgICAgICAg
ICAgWworICAgICAgICAgICAgICAgICAgICAoeCwgeSwgb3BlcmF0b3IuZXEpCisgICAgICAgICAg
ICAgICAgICAgIGZvciBqLCB5IGluIGVudW1lcmF0ZShWRVJTSU9OUyArIExFR0FDWV9WRVJTSU9O
UykKKyAgICAgICAgICAgICAgICAgICAgaWYgaSAhPSBqCisgICAgICAgICAgICAgICAgXQorICAg
ICAgICAgICAgICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShWRVJTSU9OUyArIExFR0FDWV9WRVJT
SU9OUykKKyAgICAgICAgICAgIF0KKyAgICAgICAgICAgICsKKyAgICAgICAgICAgICMgVmVyaWZ5
IHRoYXQgdGhlIG5vdCBlcXVhbCAoIT0pIG9wZXJhdG9yIHdvcmtzIGNvcnJlY3RseQorICAgICAg
ICAgICAgW1soeCwgeCwgb3BlcmF0b3IubmUpIGZvciB4IGluIFZFUlNJT05TICsgTEVHQUNZX1ZF
UlNJT05TXV0KKyAgICAgICAgKSwKKyAgICApCisgICAgZGVmIHRlc3RfY29tcGFyaXNvbl9mYWxz
ZShzZWxmLCBsZWZ0LCByaWdodCwgb3ApOgorICAgICAgICBhc3NlcnQgbm90IG9wKExlZ2FjeVZl
cnNpb24obGVmdCksIExlZ2FjeVZlcnNpb24ocmlnaHQpKQorCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJvcCIsIFsibHQiLCAibGUiLCAiZXEiLCAiZ2UiLCAiZ3QiLCAibmUiXSkKKyAg
ICBkZWYgdGVzdF9kdW5kZXJfb3BfcmV0dXJuc19ub3RpbXBsZW1lbnRlZChzZWxmLCBvcCk6Cisg
ICAgICAgIG1ldGhvZCA9IGdldGF0dHIoTGVnYWN5VmVyc2lvbiwgIl9fezB9X18iLmZvcm1hdChv
cCkpCisgICAgICAgIGFzc2VydCBtZXRob2QoTGVnYWN5VmVyc2lvbigiMSIpLCAxKSBpcyBOb3RJ
bXBsZW1lbnRlZAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgib3AiLCAiZXhwZWN0
ZWQiKSwgWygiZXEiLCBGYWxzZSksICgibmUiLCBUcnVlKV0pCisgICAgZGVmIHRlc3RfY29tcGFy
ZV9vdGhlcihzZWxmLCBvcCwgZXhwZWN0ZWQpOgorICAgICAgICBvdGhlciA9IHByZXRlbmQuc3R1
YigqKnsiX197MH1fXyIuZm9ybWF0KG9wKTogbGFtYmRhIG90aGVyOiBOb3RJbXBsZW1lbnRlZH0p
CisKKyAgICAgICAgYXNzZXJ0IGdldGF0dHIob3BlcmF0b3IsIG9wKShMZWdhY3lWZXJzaW9uKCIx
IiksIG90aGVyKSBpcyBleHBlY3RlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xN2I3ZjY4N2YyZGFhY2JhODg4YTM1MzY0NDY3N2RiY2ZkNDI1ZDZmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCAr
MSwzNiBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvX19pbml0X18ucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy90ZXN0cy9idWlsZC1oZWxsby13b3JsZC5zaAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rl
c3RzL2hlbGxvLXdvcmxkLWFybXY3bC1hcm1lbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxv
LXdvcmxkLWFybXY3bC1hcm1oZgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWlu
dmFsaWQtY2xhc3MKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1pbnZhbGlkLWRh
dGEKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1pbnZhbGlkLW1hZ2ljCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtczM5MHgtczM5MHgKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2lu
Zy90ZXN0cy9oZWxsby13b3JsZC10b28tc2hvcnQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxs
by13b3JsZC14ODZfNjQtYW1kNjQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC14
ODZfNjQtaTM4NgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82NC14MzIK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC5jCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVz
dHMvdGVzdF9tYXJrZXJzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF9yZXF1aXJlbWVu
dHMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3NwZWNpZmllcnMucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy90ZXN0cy90ZXN0X3N0cnVjdHVyZXMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90
ZXN0X3RhZ3MucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3V0aWxzLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvdGVzdHMvdGVzdF92ZXJzaW9uLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2lu
Zy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3czYy1pbXBvcnQubG9nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhhNzJlZmUwOWM2NzRhYjc3NzVlMDRjN2FhM2QxZjk3MTJiYmM0OTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI1IEBACitU
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgor
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBm
aWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9DSEFOR0VMT0cucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvQ09O
VFJJQlVUSU5HLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL0xJQ0VOU0UKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9M
SUNFTlNFLkFQQUNIRQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL0xJQ0VOU0UuQlNECisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdp
bmcvUkVBRE1FLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL215cHkuaW5pCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcv
bm94ZmlsZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3B5cHJvamVjdC50b21sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhdGhsaWIyL0NIQU5HRUxPRy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL0NIQU5HRUxPRy5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODY3YzFiMzhlOWJjN2NhY2E0YThkYTlhN2NmMTA2NzcxZTI3ZGZmMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvQ0hBTkdFTE9HLnJzdApAQCAtMCwwICsxLDE2
MyBAQAorSGlzdG9yeQorLS0tLS0tLQorCitWZXJzaW9uIDIuMy41CiteXl5eXl5eXl5eXl5eCisK
Ky0gRmFsbCBiYWNrIHRvIGFzY2lpIHdoZW4gZ2V0ZmlsZXN5c3RlbWVuY29kaW5nIHJldHVybnMg
Tm9uZSAoc2VlCisgIGlzc3VlICM1OSkuCisKK1ZlcnNpb24gMi4zLjQKK15eXl5eXl5eXl5eXl4K
KworLSBEbyBub3QgcmFpc2Ugd2luZG93cyBlcnJvciB3aGVuIGNhbGxpbmcgcmVzb2x2ZSBvbiBh
IG5vbi1leGlzdGluZworICBwYXRoIGluIFB5dGhvbiAyLjcsIHRvIG1hdGNoIGJlaGF2aW91ciBv
biBQeXRob24gMy54IChzZWUgaXNzdWUgIzU0KS4KKworLSBVc2UgdGhlIG5ldyBjb2xsZWN0aW9u
cy5hYmMgd2hlbiBwb3NzaWJsZSAoc2VlIGlzc3VlICM1MykuCisKKy0gU3luYyB3aXRoIHVwc3Ry
ZWFtIHBhdGhsaWIgKHNlZSBpc3N1ZXMgIzQ3IGFuZCAjNTEpLgorCitWZXJzaW9uIDIuMy4zCite
Xl5eXl5eXl5eXl5eCisKKy0gQnJpbmcgYmFjayBvbGQgZGVwcmVjYXRlZCBkZXBlbmRlbmN5IHN5
bnRheCB0byBlbnN1cmUgY29tcGF0aWJpbGl0eQorICB3aXRoIG9sZGVyIHN5c3RlbXMgKHNlZSBp
c3N1ZSAjNDYpLgorCistIERyb3AgUHl0aG9uIDMuMyBzdXBwb3J0LCBhcyBzY2FuZGlyIG5vIGxv
bmdlciBzdXBwb3J0cyBpdC4KKworLSBBZGQgUHl0aG9uIDMuNyBzdXBwb3J0LgorCitWZXJzaW9u
IDIuMy4yCiteXl5eXl5eXl5eXl5eCisKKy0gSG90Zml4IGZvciBicm9rZW4gc2V0dXAucHkuCisK
K1ZlcnNpb24gMi4zLjEKK15eXl5eXl5eXl5eXl4KKworLSBGaXggdGVzdHMgZm9yIHN5c3RlbXMg
d2hlcmUgZmlsZXN5c3RlbSBlbmNvZGluZyBvbmx5IHN1cHBvcnRzIGFzY2lpCisgIChyZXBvcnRl
ZCBieSB5dXJpdmljdCwgZml4ZWQgd2l0aCBoZWxwIG9mIGhvbm5pYmFsLCBzZWUgaXNzdWUgIzMw
KS4KKworLSBVc2UgbW9kZXJuIHNldHVwdG9vbHMgc3ludGF4IGZvciBzcGVjaWZ5aW5nIGNvbmRp
dGlvbmFsIHNjYW5kaXIKKyAgZGVwZW5kZW5jeSAoc2VlIGlzc3VlICMzMSkuCisKKy0gUmVtb3Zl
IGxlZ2FjeSB1c2Ugb2Ygc3VwcG9ydCBtb2R1bGUgZnJvbSBvbGQgcGF0aGxpYiBtb2R1bGUgKHNl
ZQorICBpc3N1ZSAjMzkpLiBUaGlzIGZpeGVzIHRoZSB0ZXN0cyBmb3IgUHl0aG9uIDMuNi4KKwor
LSBEcm9wIHRoZSAiZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzIiBhbmQg
LVFuZXcgdGVzdHMKKyAgYXMgaXQgaW50cm9kdWNlZCBzdWJ0bGUgYnVncyBpbiB0aGUgdGVzdHMs
IGFuZCBtYWludGFpbmluZyBzZXBhcmF0ZQorICB0ZXN0IG1vZHVsZXMgZm9yIHRoZXNlIGxlZ2Fj
eSBmZWF0dXJlcyBzZWVtcyBub3Qgd29ydGggdGhlIGVmZm9ydC4KKworLSBEcm9wIFB5dGhvbiAz
LjIgc3VwcG9ydCwgYXMgc2NhbmRpciBubyBsb25nZXIgc3VwcG9ydHMgaXQuCisKK1ZlcnNpb24g
Mi4zLjAKK15eXl5eXl5eXl5eXl4KKworLSBTeW5jIHdpdGggdXBzdHJlYW0gcGF0aGxpYiBmcm9t
IENQeXRob24gMy42LjEgKDdkMTAxN2QpLgorCitWZXJzaW9uIDIuMi4xCiteXl5eXl5eXl5eXl5e
CisKKy0gRml4IGNvbmRpdGlvbmFsIHNjYW5kaXIgZGVwZW5kZW5jeSBpbiB3aGVlbCAocmVwb3J0
ZWQgYnkgQXZkTiwgc2VlCisgIGlzc3VlICMyMCBhbmQgcHVsbCByZXF1ZXN0ICMyMSkuCisKK1Zl
cnNpb24gMi4yLjAKK15eXl5eXl5eXl5eXl4KKworLSBTeW5jIHdpdGggdXBzdHJlYW0gcGF0aGxp
YiBmcm9tIENQeXRob24gMy41LjIgYW5kIDMuNi4wOiBmaXggdmFyaW91cworICBleGNlcHRpb25z
LCBlbXB0eSBnbG9iIHBhdHRlcm4sIHNjYW5kaXIsIF9fZnNwYXRoX18uCisKKy0gU3VwcG9ydCB1
bmljb2RlIHN0cmluZ3MgdG8gYmUgdXNlZCB0byBjb25zdHJ1Y3QgcGF0aHMgaW4gUHl0aG9uIDIK
KyAgKHJlcG9ydGVkIGJ5IG5hdGl2ZS1hcGksIHNlZSBpc3N1ZSAjMTMgYW5kIHB1bGwgcmVxdWVz
dCAjMTUpLgorCitWZXJzaW9uIDIuMS4wCiteXl5eXl5eXl5eXl5eCisKKy0gU3luYyB3aXRoIHVw
c3RyZWFtIHBhdGhsaWIgZnJvbSBDUHl0aG9uIDMuNS4wOiBnZXRob21lZGlyLCBob21lLAorICBl
eHBhbmR1c2VyLgorCitWZXJzaW9uIDIuMC4xCiteXl5eXl5eXl5eXl5eCisKKy0gRml4IFR5cGVF
cnJvciBleGNlcHRpb25zIGluIHdyaXRlX2J5dGVzIGFuZCB3cml0ZV90ZXh0IChjb250cmlidXRl
ZAorICBieSBFbWFudWVsZSBHYWlmYXMsIHNlZSBwdWxsIHJlcXVlc3QgIzIpLgorCitWZXJzaW9u
IDIuMAorXl5eXl5eXl5eXl4KKworLSBTeW5jIHdpdGggdXBzdHJlYW0gcGF0aGxpYiBmcm9tIENQ
eXRob246IHJlYWRfdGV4dCwgd3JpdGVfdGV4dCwKKyAgcmVhZF9ieXRlcywgd3JpdGVfYnl0ZXMs
IF9fZW50ZXJfXywgX19leGl0X18sIHNhbWVmaWxlLgorLSBVc2UgdHJhdmlzIGFuZCBhcHB2ZXlv
ciBmb3IgY29udGludW91cyBpbnRlZ3JhdGlvbi4KKy0gRml4ZWQgc29tZSBidWdzIGluIHRlc3Qg
Y29kZS4KKworVmVyc2lvbiAxLjAuMQorXl5eXl5eXl5eXl5eXgorCistIFB1bGwgcmVxdWVzdCAj
NDogUHl0aG9uIDIuNiBjb21wYXRpYmlsaXR5IGJ5IGVldmVlLgorCitWZXJzaW9uIDEuMAorXl5e
Xl5eXl5eXl4KKworVGhpcyB2ZXJzaW9uIGJyaW5ncyBgYHBhdGhsaWJgYCB1cCB0byBkYXRlIHdp
dGggdGhlIG9mZmljaWFsIFB5dGhvbiAzLjQKK3JlbGVhc2UsIGFuZCBhbHNvIGZpeGVzIGEgY291
cGxlIG9mIDIuNy1zcGVjaWZpYyBpc3N1ZXMuCisKKy0gUHl0aG9uIGlzc3VlICMyMDc2NTogQWRk
IG1pc3NpbmcgZG9jdW1lbnRhdGlvbiBmb3IgUHVyZVBhdGgud2l0aF9uYW1lKCkKKyAgYW5kIFB1
cmVQYXRoLndpdGhfc3VmZml4KCkuCistIEZpeCB0ZXN0X21rZGlyX3BhcmVudHMgd2hlbiB0aGUg
d29ya2luZyBkaXJlY3RvcnkgaGFzIGFkZGl0aW9uYWwgYml0cworICBzZXQgKHN1Y2ggYXMgdGhl
IHNldGdpZCBvciBzdGlja3kgYml0cykuCistIFB5dGhvbiBpc3N1ZSAjMjAxMTE6IHBhdGhsaWIu
UGF0aC53aXRoX3N1ZmZpeCgpIG5vdyBzYW5pdHkgY2hlY2tzIHRoZQorICBnaXZlbiBzdWZmaXgu
CistIFB5dGhvbiBpc3N1ZSAjMTk5MTg6IEZpeCBQdXJlUGF0aC5yZWxhdGl2ZV90bygpIHVuZGVy
IFdpbmRvd3MuCistIFB5dGhvbiBpc3N1ZSAjMTk5MjE6IFdoZW4gUGF0aC5ta2RpcigpIGlzIGNh
bGxlZCB3aXRoIHBhcmVudHM9VHJ1ZSwgYW55CisgIG1pc3NpbmcgcGFyZW50IGlzIGNyZWF0ZWQg
d2l0aCB0aGUgZGVmYXVsdCBwZXJtaXNzaW9ucywgaWdub3JpbmcgdGhlIG1vZGUKKyAgYXJndW1l
bnQgKG1pbWlja2luZyB0aGUgUE9TSVggIm1rZGlyIC1wIiBjb21tYW5kKS4KKy0gUHl0aG9uIGlz
c3VlICMxOTg4NzogSW1wcm92ZSB0aGUgUGF0aC5yZXNvbHZlKCkgYWxnb3JpdGhtIHRvIHN1cHBv
cnQKKyAgY2VydGFpbiBzeW1saW5rIGNoYWlucy4KKy0gTWFrZSBwYXRobGliIHVzYWJsZSB1bmRl
ciBQeXRob24gMi43IHdpdGggdW5pY29kZSBwYXRobmFtZXMgKG9ubHkgcHVyZQorICBBU0NJSSwg
dGhvdWdoKS4KKy0gSXNzdWUgIzIxOiBmaXggVHlwZUVycm9yIHVuZGVyIFB5dGhvbiAyLjcgd2hl
biB1c2luZyBuZXcgZGl2aXNpb24uCistIEFkZCB0b3ggc3VwcG9ydCBmb3IgZWFzaWVyIHRlc3Rp
bmcuCisKK1ZlcnNpb24gMC45NworXl5eXl5eXl5eXl5eCisKK1RoaXMgdmVyc2lvbiBicmluZ3Mg
YGBwYXRobGliYGAgdXAgdG8gZGF0ZSB3aXRoIHRoZSBmaW5hbCBBUEkgc3BlY2lmaWVkCitpbiA6
cGVwOmA0MjhgLiAgVGhlIGNoYW5nZXMgYXJlIHRvbyBsb25nIHRvIGxpc3QgaGVyZSwgaXQgaXMg
cmVjb21tZW5kZWQKK3RvIHJlYWQgdGhlIGBkb2N1bWVudGF0aW9uIDxodHRwczovL3BhdGhsaWIu
cmVhZHRoZWRvY3Mub3JnLz5gXy4KKworLi4gd2FybmluZzo6CisgICBUaGUgQVBJIGluIHRoaXMg
dmVyc2lvbiBpcyBwYXJ0aWFsbHkgaW5jb21wYXRpYmxlIHdpdGggcGF0aGxpYiAwLjggYW5kCisg
ICBlYXJsaWVyLiAgQmUgc3VyZSB0byBjaGVjayB5b3VyIGNvZGUgZm9yIHBvc3NpYmxlIGJyZWFr
YWdlIQorCitWZXJzaW9uIDAuOAorXl5eXl5eXl5eXl4KKworLSBBZGQgUHVyZVBhdGgubmFtZSBh
bmQgUHVyZVBhdGguYW5jaG9yLgorLSBBZGQgUGF0aC5vd25lciBhbmQgUGF0aC5ncm91cC4KKy0g
QWRkIFBhdGgucmVwbGFjZSgpLgorLSBBZGQgUGF0aC5hc191cmkoKS4KKy0gSXNzdWUgIzEwOiB3
aGVuIGNyZWF0aW5nIGEgZmlsZSB3aXRoIFBhdGgub3BlbigpLCBkb24ndCBzZXQgdGhlIGV4ZWN1
dGFibGUKKyAgYml0LgorLSBJc3N1ZSAjMTE6IGZpeCBjb21wYXJpc29ucyB3aXRoIG5vbi1QYXRo
IG9iamVjdHMuCisKK1ZlcnNpb24gMC43CiteXl5eXl5eXl5eXgorCistIEFkZCAnKionIChyZWN1
cnNpdmUpIHBhdHRlcm5zIHRvIFBhdGguZ2xvYigpLgorLSBGaXggb3BlbmF0KCkgc3VwcG9ydCBh
ZnRlciB0aGUgQVBJIHJlZmFjdG9yaW5nIGluIFB5dGhvbiAzLjMgYmV0YTEuCistIEFkZCBhICp0
YXJnZXRfaXNfZGlyZWN0b3J5KiBhcmd1bWVudCB0byBQYXRoLnN5bWxpbmtfdG8oKQorCitWZXJz
aW9uIDAuNgorXl5eXl5eXl5eXl4KKworLSBBZGQgUGF0aC5pc19maWxlKCkgYW5kIFBhdGguaXNf
c3ltbGluaygpCistIEFkZCBQYXRoLmdsb2IoKSBhbmQgUGF0aC5yZ2xvYigpCistIEFkZCBQdXJl
UGF0aC5tYXRjaCgpCisKK1ZlcnNpb24gMC41CiteXl5eXl5eXl5eXgorCistIEFkZCBQYXRoLm1r
ZGlyKCkuCistIEFkZCBQeXRob24gMi43IGNvbXBhdGliaWxpdHkgYnkgTWljaGVsZSBMYWNjaGlh
LgorLSBNYWtlIHBhcmVudCgpIHJhaXNlIFZhbHVlRXJyb3Igd2hlbiB0aGUgbGV2ZWwgaXMgZ3Jl
YXRlciB0aGFuIHRoZSBwYXRoCisgIGxlbmd0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIv
TElDRU5TRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL0xJQ0VOU0UucnN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3MTVk
M2Q3YTJjZDJhYTkzN2FmODZhZGFmNTJlMjkwZjA3MTM3MWQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhdGhsaWIyL0xJQ0VOU0UucnN0CkBAIC0wLDAgKzEsMjMgQEAKK1RoZSBNSVQgTGljZW5z
ZSAoTUlUKQorCitDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNyBNYXR0aGlhcyBDLiBNLiBUcm9mZmFl
cworQ29weXJpZ2h0IChjKSAyMDEyLTIwMTQgQW50b2luZSBQaXRyb3UgYW5kIGNvbnRyaWJ1dG9y
cworCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55
IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk
IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNv
ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24g
dGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k
IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8g
ZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs
dWRlZCBpbiBhbGwKK2NvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdh
cmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ
IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J
VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJ
TSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD
T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg
SU4gVEhFCitTT0ZUV0FSRS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9NQU5JRkVTVC5p
biBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGF0aGxpYjIvTUFOSUZFU1QuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmYwMzM2OWRjNjgxYTg1
ZGEwZTQxZjIwOGU5MjBmMzczNWQ3YmUxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxp
YjIvTUFOSUZFU1QuaW4KQEAgLTAsMCArMSwxMCBAQAoraW5jbHVkZSAqLnB5CityZWN1cnNpdmUt
aW5jbHVkZSBwYXRobGliMiAqLnB5CityZWN1cnNpdmUtaW5jbHVkZSB0ZXN0cyAqLnB5CitpbmNs
dWRlICoucnN0CitpbmNsdWRlIFZFUlNJT04KK2luY2x1ZGUgcmVxdWlyZW1lbnRzLnR4dAorZXhj
bHVkZSAudHJhdmlzLnltbAorZXhjbHVkZSBhcHB2ZXlvci55bWwKK2V4Y2x1ZGUgY29kZWNvdi55
bWwKK3BydW5lIGFwcHZleW9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL1JFQURNRS5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhdGhsaWIyL1JFQURNRS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM3OGYyODRkZDFjODBhM2E4
M2UzNWJkZmEzZTIyNWM0ODk5M2JkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIv
UkVBRE1FLnJzdApAQCAtMCwwICsxLDY2IEBACitwYXRobGliMgorPT09PT09PT0KKworfGFwcHZl
eW9yfCB8dHJhdmlzfCB8Y29kZWNvdnwKKworRm9yayBvZiBwYXRobGliIGFpbWluZyB0byBzdXBw
b3J0IHRoZSBmdWxsIHN0ZGxpYiBQeXRob24gQVBJLgorCitUaGUgYG9sZCBwYXRobGliIDxodHRw
czovL2JpdGJ1Y2tldC5vcmcvcGl0cm91L3BhdGhsaWI+YF8KK21vZHVsZSBvbiBiaXRidWNrZXQg
aXMgaW4gYnVnZml4LW9ubHkgbW9kZS4KK1RoZSBnb2FsIG9mIHBhdGhsaWIyIGlzIHRvIHByb3Zp
ZGUgYSBiYWNrcG9ydCBvZgorYHN0YW5kYXJkIHBhdGhsaWIgPGh0dHA6Ly9kb2NzLnB5dGhvbi5v
cmcvZGV2L2xpYnJhcnkvcGF0aGxpYi5odG1sPmBfCittb2R1bGUgd2hpY2ggdHJhY2tzIHRoZSBz
dGFuZGFyZCBsaWJyYXJ5IG1vZHVsZSwKK3NvIGFsbCB0aGUgbmV3ZXN0IGZlYXR1cmVzIG9mIHRo
ZSBzdGFuZGFyZCBwYXRobGliIGNhbiBiZQordXNlZCBhbHNvIG9uIG9sZGVyIFB5dGhvbiB2ZXJz
aW9ucy4KKworRG93bmxvYWQKKy0tLS0tLS0tCisKK1N0YW5kYWxvbmUgcmVsZWFzZXMgYXJlIGF2
YWlsYWJsZSBvbiBQeVBJOgoraHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3BhdGhsaWIyLwor
CitEZXZlbG9wbWVudAorLS0tLS0tLS0tLS0KKworVGhlIG1haW4gZGV2ZWxvcG1lbnQgdGFrZXMg
cGxhY2UgaW4gdGhlIFB5dGhvbiBzdGFuZGFyZCBsaWJyYXJ5OiBzZWUKK3RoZSBgUHl0aG9uIGRl
dmVsb3BlcidzIGd1aWRlIDxodHRwOi8vZG9jcy5weXRob24ub3JnL2Rldmd1aWRlLz5gXy4KK0lu
IHBhcnRpY3VsYXIsIG5ldyBmZWF0dXJlcyBzaG91bGQgYmUgc3VibWl0dGVkIHRvIHRoZQorYFB5
dGhvbiBidWcgdHJhY2tlciA8aHR0cDovL2J1Z3MucHl0aG9uLm9yZy8+YF8uCisKK0lzc3VlcyB0
aGF0IG9jY3VyIGluIHRoaXMgYmFja3BvcnQsIGJ1dCB0aGF0IGRvIG5vdCBvY2N1ciBub3QgaW4g
dGhlCitzdGFuZGFyZCBQeXRob24gcGF0aGxpYiBtb2R1bGUgY2FuIGJlIHN1Ym1pdHRlZCBvbgor
dGhlIGBwYXRobGliMiBidWcgdHJhY2tlciA8aHR0cHM6Ly9naXRodWIuY29tL21jbXRyb2ZmYWVz
L3BhdGhsaWIyL2lzc3Vlcz5gXy4KKworRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCitS
ZWZlciB0byB0aGUKK2BzdGFuZGFyZCBwYXRobGliIDxodHRwOi8vZG9jcy5weXRob24ub3JnL2Rl
di9saWJyYXJ5L3BhdGhsaWIuaHRtbD5gXworZG9jdW1lbnRhdGlvbi4KKworS25vd24gSXNzdWVz
CistLS0tLS0tLS0tLS0KKworRm9yIGhpc3RvcmljIHJlYXNvbnMsIHBhdGhsaWIyIHN0aWxsIHVz
ZXMgYnl0ZXMgdG8gcmVwcmVzZW50IGZpbGUgcGF0aHMgaW50ZXJuYWxseS4KK1VuZm9ydHVuYXRl
bHksIG9uIFdpbmRvd3Mgd2l0aCBQeXRob24gMi43LCB0aGUgZmlsZSBzeXN0ZW0gZW5jb2RlciAo
YGBtY2JzYGApCitoYXMgb25seSBwb29yIHN1cHBvcnQgZm9yIG5vbi1hc2NpaSBjaGFyYWN0ZXJz
LAorYW5kIGNhbiBzaWxlbnRseSByZXBsYWNlIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIHdpdGhvdXQg
d2FybmluZy4KK0ZvciBleGFtcGxlLCBgYHUn0YLQtdGB0YInLmVuY29kZShzeXMuZ2V0ZmlsZXN5
c3RlbWVuY29kaW5nKCkpYGAgcmVzdWx0cyBpbiBgYD8/Pz9gYAord2hpY2ggaXMgb2J2aW91c2x5
IGNvbXBsZXRlbHkgdXNlbGVzcy4KKworVGhlcmVmb3JlLCBvbiBXaW5kb3dzIHdpdGggUHl0aG9u
IDIuNywgdW50aWwgdGhpcyBwcm9ibGVtIGlzIGZpeGVkIHVwc3RyZWFtLAordW5mb3J0dW5hdGVs
eSB5b3UgY2Fubm90IHJlbHkgb24gcGF0aGxpYjIgdG8gc3VwcG9ydCB0aGUgZnVsbCB1bmljb2Rl
IHJhbmdlIGZvciBmaWxlbmFtZXMuCitTZWUgYGlzc3VlICM1NiA8aHR0cHM6Ly9naXRodWIuY29t
L21jbXRyb2ZmYWVzL3BhdGhsaWIyL2lzc3Vlcy81Nj5gXyBmb3IgbW9yZSBkZXRhaWxzLgorCisu
LiB8dHJhdmlzfCBpbWFnZTo6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9tY210cm9mZmFlcy9wYXRo
bGliMi5wbmc/YnJhbmNoPWRldmVsb3AKKyAgICA6dGFyZ2V0OiBodHRwczovL3RyYXZpcy1jaS5v
cmcvbWNtdHJvZmZhZXMvcGF0aGxpYjIKKyAgICA6YWx0OiB0cmF2aXMtY2kKKworLi4gfGFwcHZl
eW9yfCBpbWFnZTo6IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9qZWN0cy9zdGF0dXMv
YmFkZHgzcnBldDJ3eWkyYz9zdmc9dHJ1ZQorICAgIDp0YXJnZXQ6IGh0dHBzOi8vY2kuYXBwdmV5
b3IuY29tL3Byb2plY3QvbWNtdHJvZmZhZXMvcGF0aGxpYjIKKyAgICA6YWx0OiBhcHB2ZXlvcgor
CisuLiB8Y29kZWNvdnwgaW1hZ2U6OiBodHRwczovL2NvZGVjb3YuaW8vZ2gvbWNtdHJvZmZhZXMv
cGF0aGxpYjIvYnJhbmNoL2RldmVsb3AvZ3JhcGgvYmFkZ2Uuc3ZnCisgICAgOnRhcmdldDogaHR0
cHM6Ly9jb2RlY292LmlvL2doL21jbXRyb2ZmYWVzL3BhdGhsaWIyCisgICAgOmFsdDogY29kZWNv
dgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL1ZFUlNJT04gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL1ZF
UlNJT04KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2M2YzlhNDkxZTBiZTdmYzMwOTc1ZWNhMTA3MWVkMjg4Y2MyMWEw
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvVkVSU0lPTgpAQCAtMCwwICsxIEBA
CisyLjMuNQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9hcHB2ZXlvci55bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
dGhsaWIyL2FwcHZleW9yLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWU3ZjI1ZjM0ZjRlZjExZTIyYjc1YzQ3
OWVlODE2MjM0NzkwOTJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9hcHB2ZXlv
ci55bWwKQEAgLTAsMCArMSwzMCBAQAorZW52aXJvbm1lbnQ6CisKKyAgbWF0cml4OgorICAgIC0g
UFlUSE9OOiAiQzpcXFB5dGhvbjI3IgorCisgICAgLSBQWVRIT046ICJDOlxcUHl0aG9uMzQiCisK
KyAgICAtIFBZVEhPTjogIkM6XFxQeXRob24zNSIKKworICAgIC0gUFlUSE9OOiAiQzpcXFB5dGhv
bjM2IgorCisgICAgLSBQWVRIT046ICJDOlxcUHl0aG9uMzciCisKK2luaXQ6CisgIC0gIiVQWVRI
T04lL3B5dGhvbiAtLXZlcnNpb24iCisKK2luc3RhbGw6CisgIC0gInBvd2Vyc2hlbGwgYXBwdmV5
b3JcXGluc3RhbGwucHMxIgorCitidWlsZDogb2ZmCisKK3Rlc3Rfc2NyaXB0OgorICAtIGNkIHRl
c3RzCisgIC0gIiVQWVRIT04lL1NjcmlwdHMvcHkudGVzdCAtLWNvdi1yZXBvcnQ9eG1sIC0tY292
PXBhdGhsaWIyIC4iCisKK2FmdGVyX3Rlc3Q6CisgIC0gcHM6IHwKKyAgICAgICRlbnY6UEFUSCA9
ICdDOlxtc3lzNjRcdXNyXGJpbjsnICsgJGVudjpQQVRICisgICAgICBJbnZva2UtV2ViUmVxdWVz
dCAtVXJpICdodHRwczovL2NvZGVjb3YuaW8vYmFzaCcgLU91dEZpbGUgY29kZWNvdi5zaAorICAg
ICAgYmFzaCBjb2RlY292LnNoIC1mICJjb3ZlcmFnZS54bWwiCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
dGhsaWIyL2FwcHZleW9yL2luc3RhbGwucHMxIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9hcHB2ZXlvci9pbnN0
YWxsLnBzMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lYmZiYjhkYjk2MThiM2UyZjY4NmE4MTE4YzY3NjA3YTEzMTEy
NDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9hcHB2ZXlvci9pbnN0YWxsLnBz
MQpAQCAtMCwwICsxLDQ0IEBACisjIFNhbXBsZSBzY3JpcHQgdG8gaW5zdGFsbCBQeXRob24gYW5k
IHBpcCB1bmRlciBXaW5kb3dzCisjIEF1dGhvcnM6IE9saXZpZXIgR3Jpc2VsIGFuZCBLeWxlIEth
c3RuZXIKKyMgTGljZW5zZTogQ0MwIDEuMCBVbml2ZXJzYWw6IGh0dHA6Ly9jcmVhdGl2ZWNvbW1v
bnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKworJEdFVF9QSVBfVVJMID0gImh0dHBzOi8v
Ym9vdHN0cmFwLnB5cGEuaW8vZ2V0LXBpcC5weSIKKyRHRVRfUElQX1BBVEggPSAiQzpcZ2V0LXBp
cC5weSIKKworCitmdW5jdGlvbiBJbnN0YWxsUGlwICgkcHl0aG9uX2hvbWUpIHsKKyAgICAkcGlw
X3BhdGggPSAkcHl0aG9uX2hvbWUgKyAiL1NjcmlwdHMvcGlwLmV4ZSIKKyAgICAkcHl0aG9uX3Bh
dGggPSAkcHl0aG9uX2hvbWUgKyAiL3B5dGhvbi5leGUiCisgICAgaWYgKC1ub3QoVGVzdC1QYXRo
ICRwaXBfcGF0aCkpIHsKKyAgICAgICAgV3JpdGUtSG9zdCAiSW5zdGFsbGluZyBwaXAuLi4iCisg
ICAgICAgICR3ZWJjbGllbnQgPSBOZXctT2JqZWN0IFN5c3RlbS5OZXQuV2ViQ2xpZW50CisgICAg
ICAgICR3ZWJjbGllbnQuRG93bmxvYWRGaWxlKCRHRVRfUElQX1VSTCwgJEdFVF9QSVBfUEFUSCkK
KyAgICAgICAgV3JpdGUtSG9zdCAiRXhlY3V0aW5nOiIgJHB5dGhvbl9wYXRoICRHRVRfUElQX1BB
VEgKKyAgICAgICAgU3RhcnQtUHJvY2VzcyAtRmlsZVBhdGggIiRweXRob25fcGF0aCIgLUFyZ3Vt
ZW50TGlzdCAiJEdFVF9QSVBfUEFUSCIgLVdhaXQgLVBhc3N0aHJ1CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgV3JpdGUtSG9zdCAiVXBncmFkaW5nIHBpcC4uLiIKKyAgICAgICAgJiAkcHl0aG9uX3Bh
dGggLW0gcGlwIGluc3RhbGwgLS11cGdyYWRlIHBpcAorICAgIH0KKyAgICBXcml0ZS1Ib3N0ICJV
cGdyYWRpbmcgc2V0dXB0b29scy4uLiIKKyAgICAmICRweXRob25fcGF0aCAtbSBwaXAgaW5zdGFs
bCAtLXVwZ3JhZGUgc2V0dXB0b29scworfQorCitmdW5jdGlvbiBJbnN0YWxsUGFja2FnZSAoJHB5
dGhvbl9ob21lLCAkcGtnKSB7CisgICAgJHBpcF9wYXRoID0gJHB5dGhvbl9ob21lICsgIi9TY3Jp
cHRzL3BpcC5leGUiCisgICAgJiAkcGlwX3BhdGggaW5zdGFsbCAkcGtnCit9CisKK2Z1bmN0aW9u
IEluc3RhbGxSZXF1aXJlbWVudHMgKCRweXRob25faG9tZSwgJHJlcXMpIHsKKyAgICAkcGlwX3Bh
dGggPSAkcHl0aG9uX2hvbWUgKyAiL1NjcmlwdHMvcGlwLmV4ZSIKKyAgICAmICRwaXBfcGF0aCBp
bnN0YWxsIC1yICRyZXFzCit9CisKK2Z1bmN0aW9uIG1haW4gKCkgeworICAgIEluc3RhbGxQaXAg
JGVudjpQWVRIT04KKyAgICBJbnN0YWxsUmVxdWlyZW1lbnRzICRlbnY6UFlUSE9OIC1yIHJlcXVp
cmVtZW50cy50eHQKKyAgICBJbnN0YWxsUGFja2FnZSAkZW52OlBZVEhPTiBweXRlc3QtY292Cisg
ICAgSW5zdGFsbFBhY2thZ2UgJGVudjpQWVRIT04gdW5pdHRlc3QyCisgICAgSW5zdGFsbFBhY2th
Z2UgJGVudjpQWVRIT04gLgorfQorCittYWluCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL2Fw
cHZleW9yL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9hcHB2ZXlvci93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zZTdmODY4ZThkODhkNmYxZDFmMGI1MmYyNjUxOTQ2ZDYzZGJmYzhh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9hcHB2ZXlvci93M2MtaW1wb3J0Lmxv
ZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL2FwcHZleW9yL2luc3Rh
bGwucHMxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL2NvZGVjb3YueW1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRo
bGliMi9jb2RlY292LnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjI0NzIwMDljNjBhY2M3MmNhMmY2ZjA2NWJi
NGI2NzRkYzY2NzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9jb2RlY292Lnlt
bApAQCAtMCwwICsxIEBACitjb21tZW50OiBvZmYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIv
cGF0aGxpYjIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3BhdGhsaWIyL19faW5pdF9fLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ1YTQ3YTY2YzY2NzQyNzE4ZDFkZTgwMTllZTc4NTdmNzk1YTM1ZjYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3BhdGhsaWIyL19faW5pdF9fLnB5CkBAIC0w
LDAgKzEsMTgwOSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNyBNYXR0aGlhcyBDLiBNLiBU
cm9mZmFlcworIyBDb3B5cmlnaHQgKGMpIDIwMTItMjAxNCBBbnRvaW5lIFBpdHJvdSBhbmQgY29u
dHJpYnV0b3JzCisjIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIExpY2Vu
c2UuCisKK2ltcG9ydCBjdHlwZXMKK2ltcG9ydCBmbm1hdGNoCitpbXBvcnQgZnVuY3Rvb2xzCitp
bXBvcnQgaW8KK2ltcG9ydCBudHBhdGgKK2ltcG9ydCBvcworaW1wb3J0IHBvc2l4cGF0aAoraW1w
b3J0IHJlCitpbXBvcnQgc2l4CitpbXBvcnQgc3lzCisKK2Zyb20gZXJybm8gaW1wb3J0IEVJTlZB
TCwgRU5PRU5ULCBFTk9URElSLCBFQkFERgorZnJvbSBlcnJubyBpbXBvcnQgRUVYSVNULCBFUEVS
TSwgRUFDQ0VTCitmcm9tIG9wZXJhdG9yIGltcG9ydCBhdHRyZ2V0dGVyCitmcm9tIHN0YXQgaW1w
b3J0ICgKKyAgICBTX0lTRElSLCBTX0lTTE5LLCBTX0lTUkVHLCBTX0lTU09DSywgU19JU0JMSywg
U19JU0NIUiwgU19JU0ZJRk8pCisKK3RyeToKKyAgICBmcm9tIGNvbGxlY3Rpb25zLmFiYyBpbXBv
cnQgU2VxdWVuY2UKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIGNvbGxlY3Rpb25zIGlt
cG9ydCBTZXF1ZW5jZQorCit0cnk6CisgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHF1b3RlIGFzIHVy
bHF1b3RlX2Zyb21fYnl0ZXMKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIHVybGxpYi5w
YXJzZSBpbXBvcnQgcXVvdGVfZnJvbV9ieXRlcyBhcyB1cmxxdW90ZV9mcm9tX2J5dGVzCisKKwor
dHJ5OgorICAgIGludGVybiA9IGludGVybgorZXhjZXB0IE5hbWVFcnJvcjoKKyAgICBpbnRlcm4g
PSBzeXMuaW50ZXJuCisKK3N1cHBvcnRzX3N5bWxpbmtzID0gVHJ1ZQoraWYgb3MubmFtZSA9PSAn
bnQnOgorICAgIGltcG9ydCBudAorICAgIGlmIHN5cy5nZXR3aW5kb3dzdmVyc2lvbigpWzoyXSA+
PSAoNiwgMCkgYW5kIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDIpOgorICAgICAgICBmcm9tIG50
IGltcG9ydCBfZ2V0ZmluYWxwYXRobmFtZQorICAgIGVsc2U6CisgICAgICAgIHN1cHBvcnRzX3N5
bWxpbmtzID0gRmFsc2UKKyAgICAgICAgX2dldGZpbmFscGF0aG5hbWUgPSBOb25lCitlbHNlOgor
ICAgIG50ID0gTm9uZQorCit0cnk6CisgICAgZnJvbSBvcyBpbXBvcnQgc2NhbmRpciBhcyBvc19z
Y2FuZGlyCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBzY2FuZGlyIGltcG9ydCBzY2Fu
ZGlyIGFzIG9zX3NjYW5kaXIKKworX19hbGxfXyA9IFsKKyAgICAiUHVyZVBhdGgiLCAiUHVyZVBv
c2l4UGF0aCIsICJQdXJlV2luZG93c1BhdGgiLAorICAgICJQYXRoIiwgIlBvc2l4UGF0aCIsICJX
aW5kb3dzUGF0aCIsCisgICAgXQorCisjCisjIEludGVybmFscworIworCisjIEVCQURGIC0gZ3Vh
cmQgYWdhaW5zIG1hY09TIGBzdGF0YCB0aHJvd2luZyBFQkFERgorX0lHTk9SRURfRVJST1MgPSAo
RU5PRU5ULCBFTk9URElSLCBFQkFERikKKworX0lHTk9SRURfV0lORVJST1JTID0gKAorICAgIDIx
LCAgIyBFUlJPUl9OT1RfUkVBRFkgLSBkcml2ZSBleGlzdHMgYnV0IGlzIG5vdCBhY2Nlc3NpYmxl
CispCisKKworZGVmIF9pZ25vcmVfZXJyb3IoZXhjZXB0aW9uKToKKyAgICByZXR1cm4gKGdldGF0
dHIoZXhjZXB0aW9uLCAnZXJybm8nLCBOb25lKSBpbiBfSUdOT1JFRF9FUlJPUyBvcgorICAgICAg
ICAgICAgZ2V0YXR0cihleGNlcHRpb24sICd3aW5lcnJvcicsIE5vbmUpIGluIF9JR05PUkVEX1dJ
TkVSUk9SUykKKworCitkZWYgX3B5Ml9mc2VuY29kZShwYXJ0cyk6CisgICAgIyBweTIgPT4gbWlu
aW1hbCB1bmljb2RlIHN1cHBvcnQKKyAgICBhc3NlcnQgc2l4LlBZMgorICAgIHJldHVybiBbcGFy
dC5lbmNvZGUoJ2FzY2lpJykgaWYgaXNpbnN0YW5jZShwYXJ0LCBzaXgudGV4dF90eXBlKQorICAg
ICAgICAgICAgZWxzZSBwYXJ0IGZvciBwYXJ0IGluIHBhcnRzXQorCisKK2RlZiBfdHJ5X2V4Y2Vw
dF9maWxlZXhpc3RzZXJyb3IodHJ5X2Z1bmMsIGV4Y2VwdF9mdW5jLCBlbHNlX2Z1bmM9Tm9uZSk6
CisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMyk6CisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHRyeV9mdW5jKCkKKyAgICAgICAgZXhjZXB0IEZpbGVFeGlzdHNFcnJvciBhcyBleGM6
CisgICAgICAgICAgICBleGNlcHRfZnVuYyhleGMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBpZiBlbHNlX2Z1bmMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgZWxzZV9mdW5jKCkK
KyAgICBlbHNlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0cnlfZnVuYygpCisgICAgICAg
IGV4Y2VwdCBFbnZpcm9ubWVudEVycm9yIGFzIGV4YzoKKyAgICAgICAgICAgIGlmIGV4Yy5lcnJu
byAhPSBFRVhJU1Q6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgZXhjZXB0X2Z1bmMoZXhjKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgaWYgZWxzZV9mdW5jIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGVsc2VfZnVuYygp
CisKKworZGVmIF90cnlfZXhjZXB0X2ZpbGVub3Rmb3VuZGVycm9yKHRyeV9mdW5jLCBleGNlcHRf
ZnVuYyk6CisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMyk6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHRyeV9mdW5jKCkKKyAgICAgICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9y
IGFzIGV4YzoKKyAgICAgICAgICAgIGV4Y2VwdF9mdW5jKGV4YykKKyAgICBlbGlmIG9zLm5hbWUg
IT0gJ250JzoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdHJ5X2Z1bmMoKQorICAgICAgICBl
eGNlcHQgRW52aXJvbm1lbnRFcnJvciBhcyBleGM6CisgICAgICAgICAgICBpZiBleGMuZXJybm8g
IT0gRU5PRU5UOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIGV4Y2VwdF9mdW5jKGV4YykKKyAgICBlbHNlOgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICB0cnlfZnVuYygpCisgICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3IgYXMgZXhj
OgorICAgICAgICAgICAgIyBlcnJubyBjb250YWlucyB3aW5lcnJvcgorICAgICAgICAgICAgIyAy
ID0gZmlsZSBub3QgZm91bmQKKyAgICAgICAgICAgICMgMyA9IHBhdGggbm90IGZvdW5kCisgICAg
ICAgICAgICBpZiBleGMuZXJybm8gbm90IGluICgyLCAzKToKKyAgICAgICAgICAgICAgICByYWlz
ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBleGNlcHRfZnVuYyhleGMpCisg
ICAgICAgIGV4Y2VwdCBFbnZpcm9ubWVudEVycm9yIGFzIGV4YzoKKyAgICAgICAgICAgIGlmIGV4
Yy5lcnJubyAhPSBFTk9FTlQ6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgZXhjZXB0X2Z1bmMoZXhjKQorCisKK2RlZiBfdHJ5X2V4Y2Vw
dF9wZXJtaXNzaW9uZXJyb3JfaXRlcih0cnlfaXRlciwgZXhjZXB0X2l0ZXIpOgorICAgIGlmIHN5
cy52ZXJzaW9uX2luZm8gPj0gKDMsIDMpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmb3Ig
eCBpbiB0cnlfaXRlcigpOgorICAgICAgICAgICAgICAgIHlpZWxkIHgKKyAgICAgICAgZXhjZXB0
IFBlcm1pc3Npb25FcnJvciBhcyBleGM6CisgICAgICAgICAgICBmb3IgeCBpbiBleGNlcHRfaXRl
cihleGMpOgorICAgICAgICAgICAgICAgIHlpZWxkIHgKKyAgICBlbHNlOgorICAgICAgICB0cnk6
CisgICAgICAgICAgICBmb3IgeCBpbiB0cnlfaXRlcigpOgorICAgICAgICAgICAgICAgIHlpZWxk
IHgKKyAgICAgICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3IgYXMgZXhjOgorICAgICAgICAgICAg
aWYgZXhjLmVycm5vIG5vdCBpbiAoRVBFUk0sIEVBQ0NFUyk6CisgICAgICAgICAgICAgICAgcmFp
c2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZm9yIHggaW4gZXhjZXB0X2l0
ZXIoZXhjKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgeAorCisKK2RlZiBfd2luMzJfZ2V0
X3VuaXF1ZV9wYXRoX2lkKHBhdGgpOgorICAgICMgZ2V0IGZpbGUgaW5mb3JtYXRpb24sIG5lZWRl
ZCBmb3Igc2FtZWZpbGUgb24gb2xkZXIgUHl0aG9uIHZlcnNpb25zCisgICAgIyBzZWUgaHR0cDov
L3RpbWdvbGRlbi5tZS51ay9weXRob24vd2luMzJfaG93X2RvX2kvCisgICAgIyBzZWVfaWZfdHdv
X2ZpbGVzX2FyZV90aGVfc2FtZV9maWxlLmh0bWwKKyAgICBmcm9tIGN0eXBlcyBpbXBvcnQgUE9J
TlRFUiwgU3RydWN0dXJlLCBXaW5FcnJvcgorICAgIGZyb20gY3R5cGVzLndpbnR5cGVzIGltcG9y
dCBEV09SRCwgSEFORExFLCBCT09MCisKKyAgICBjbGFzcyBGSUxFVElNRShTdHJ1Y3R1cmUpOgor
ICAgICAgICBfZmllbGRzXyA9IFsoImRhdGV0aW1lX2xvIiwgRFdPUkQpLAorICAgICAgICAgICAg
ICAgICAgICAoImRhdGV0aW1lX2hpIiwgRFdPUkQpLAorICAgICAgICAgICAgICAgICAgICBdCisK
KyAgICBjbGFzcyBCWV9IQU5ETEVfRklMRV9JTkZPUk1BVElPTihTdHJ1Y3R1cmUpOgorICAgICAg
ICBfZmllbGRzXyA9IFsoImF0dHJpYnV0ZXMiLCBEV09SRCksCisgICAgICAgICAgICAgICAgICAg
ICgiY3JlYXRlZF9hdCIsIEZJTEVUSU1FKSwKKyAgICAgICAgICAgICAgICAgICAgKCJhY2Nlc3Nl
ZF9hdCIsIEZJTEVUSU1FKSwKKyAgICAgICAgICAgICAgICAgICAgKCJ3cml0dGVuX2F0IiwgRklM
RVRJTUUpLAorICAgICAgICAgICAgICAgICAgICAoInZvbHVtZSIsIERXT1JEKSwKKyAgICAgICAg
ICAgICAgICAgICAgKCJmaWxlX2hpIiwgRFdPUkQpLAorICAgICAgICAgICAgICAgICAgICAoImZp
bGVfbG8iLCBEV09SRCksCisgICAgICAgICAgICAgICAgICAgICgibl9saW5rcyIsIERXT1JEKSwK
KyAgICAgICAgICAgICAgICAgICAgKCJpbmRleF9oaSIsIERXT1JEKSwKKyAgICAgICAgICAgICAg
ICAgICAgKCJpbmRleF9sbyIsIERXT1JEKSwKKyAgICAgICAgICAgICAgICAgICAgXQorCisgICAg
Q3JlYXRlRmlsZSA9IGN0eXBlcy53aW5kbGwua2VybmVsMzIuQ3JlYXRlRmlsZVcKKyAgICBDcmVh
dGVGaWxlLmFyZ3R5cGVzID0gW2N0eXBlcy5jX3djaGFyX3AsIERXT1JELCBEV09SRCwgY3R5cGVz
LmNfdm9pZF9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRFdPUkQsIERXT1JELCBIQU5E
TEVdCisgICAgQ3JlYXRlRmlsZS5yZXN0eXBlID0gSEFORExFCisgICAgR2V0RmlsZUluZm9ybWF0
aW9uQnlIYW5kbGUgPSAoCisgICAgICAgIGN0eXBlcy53aW5kbGwua2VybmVsMzIuR2V0RmlsZUlu
Zm9ybWF0aW9uQnlIYW5kbGUpCisgICAgR2V0RmlsZUluZm9ybWF0aW9uQnlIYW5kbGUuYXJndHlw
ZXMgPSBbCisgICAgICAgIEhBTkRMRSwgUE9JTlRFUihCWV9IQU5ETEVfRklMRV9JTkZPUk1BVElP
TildCisgICAgR2V0RmlsZUluZm9ybWF0aW9uQnlIYW5kbGUucmVzdHlwZSA9IEJPT0wKKyAgICBD
bG9zZUhhbmRsZSA9IGN0eXBlcy53aW5kbGwua2VybmVsMzIuQ2xvc2VIYW5kbGUKKyAgICBDbG9z
ZUhhbmRsZS5hcmd0eXBlcyA9IFtIQU5ETEVdCisgICAgQ2xvc2VIYW5kbGUucmVzdHlwZSA9IEJP
T0wKKyAgICBHRU5FUklDX1JFQUQgPSAweDgwMDAwMDAwCisgICAgRklMRV9TSEFSRV9SRUFEID0g
MHgwMDAwMDAwMQorICAgIEZJTEVfRkxBR19CQUNLVVBfU0VNQU5USUNTID0gMHgwMjAwMDAwMAor
ICAgIE9QRU5fRVhJU1RJTkcgPSAzCisgICAgaWYgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAg
ICAgZmxhZ3MgPSBGSUxFX0ZMQUdfQkFDS1VQX1NFTUFOVElDUworICAgIGVsc2U6CisgICAgICAg
IGZsYWdzID0gMAorICAgIGhmaWxlID0gQ3JlYXRlRmlsZShwYXRoLCBHRU5FUklDX1JFQUQsIEZJ
TEVfU0hBUkVfUkVBRCwKKyAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwgT1BFTl9FWElTVElO
RywgZmxhZ3MsIE5vbmUpCisgICAgaWYgaGZpbGUgPT0gMHhmZmZmZmZmZjoKKyAgICAgICAgaWYg
c3lzLnZlcnNpb25faW5mbyA+PSAoMywgMyk6CisgICAgICAgICAgICByYWlzZSBGaWxlTm90Rm91
bmRFcnJvcihwYXRoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZXhjID0gT1NFcnJvcigi
ZmlsZSBub3QgZm91bmQ6IHBhdGgiKQorICAgICAgICAgICAgZXhjLmVycm5vID0gRU5PRU5UCisg
ICAgICAgICAgICByYWlzZSBleGMKKyAgICBpbmZvID0gQllfSEFORExFX0ZJTEVfSU5GT1JNQVRJ
T04oKQorICAgIHN1Y2Nlc3MgPSBHZXRGaWxlSW5mb3JtYXRpb25CeUhhbmRsZShoZmlsZSwgaW5m
bykKKyAgICBDbG9zZUhhbmRsZShoZmlsZSkKKyAgICBpZiBzdWNjZXNzID09IDA6CisgICAgICAg
IHJhaXNlIFdpbkVycm9yKCkKKyAgICByZXR1cm4gaW5mby52b2x1bWUsIGluZm8uaW5kZXhfaGks
IGluZm8uaW5kZXhfbG8KKworCitkZWYgX2lzX3dpbGRjYXJkX3BhdHRlcm4ocGF0KToKKyAgICAj
IFdoZXRoZXIgdGhpcyBwYXR0ZXJuIG5lZWRzIGFjdHVhbCBtYXRjaGluZyB1c2luZyBmbm1hdGNo
LCBvciBjYW4KKyAgICAjIGJlIGxvb2tlZCB1cCBkaXJlY3RseSBhcyBhIGZpbGUuCisgICAgcmV0
dXJuICIqIiBpbiBwYXQgb3IgIj8iIGluIHBhdCBvciAiWyIgaW4gcGF0CisKKworY2xhc3MgX0Zs
YXZvdXIob2JqZWN0KToKKworICAgICIiIkEgZmxhdm91ciBpbXBsZW1lbnRzIGEgcGFydGljdWxh
ciAocGxhdGZvcm0tc3BlY2lmaWMpIHNldCBvZiBwYXRoCisgICAgc2VtYW50aWNzLiIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmpvaW4gPSBzZWxmLnNlcC5qb2lu
CisKKyAgICBkZWYgcGFyc2VfcGFydHMoc2VsZiwgcGFydHMpOgorICAgICAgICBpZiBzaXguUFky
OgorICAgICAgICAgICAgcGFydHMgPSBfcHkyX2ZzZW5jb2RlKHBhcnRzKQorICAgICAgICBwYXJz
ZWQgPSBbXQorICAgICAgICBzZXAgPSBzZWxmLnNlcAorICAgICAgICBhbHRzZXAgPSBzZWxmLmFs
dHNlcAorICAgICAgICBkcnYgPSByb290ID0gJycKKyAgICAgICAgaXQgPSByZXZlcnNlZChwYXJ0
cykKKyAgICAgICAgZm9yIHBhcnQgaW4gaXQ6CisgICAgICAgICAgICBpZiBub3QgcGFydDoKKyAg
ICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgYWx0c2VwOgorICAgICAgICAg
ICAgICAgIHBhcnQgPSBwYXJ0LnJlcGxhY2UoYWx0c2VwLCBzZXApCisgICAgICAgICAgICBkcnYs
IHJvb3QsIHJlbCA9IHNlbGYuc3BsaXRyb290KHBhcnQpCisgICAgICAgICAgICBpZiBzZXAgaW4g
cmVsOgorICAgICAgICAgICAgICAgIGZvciB4IGluIHJldmVyc2VkKHJlbC5zcGxpdChzZXApKToK
KyAgICAgICAgICAgICAgICAgICAgaWYgeCBhbmQgeCAhPSAnLic6CisgICAgICAgICAgICAgICAg
ICAgICAgICBwYXJzZWQuYXBwZW5kKGludGVybih4KSkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgaWYgcmVsIGFuZCByZWwgIT0gJy4nOgorICAgICAgICAgICAgICAgICAgICBw
YXJzZWQuYXBwZW5kKGludGVybihyZWwpKQorICAgICAgICAgICAgaWYgZHJ2IG9yIHJvb3Q6Cisg
ICAgICAgICAgICAgICAgaWYgbm90IGRydjoKKyAgICAgICAgICAgICAgICAgICAgIyBJZiBubyBk
cml2ZSBpcyBwcmVzZW50LCB0cnkgdG8gZmluZCBvbmUgaW4gdGhlIHByZXZpb3VzCisgICAgICAg
ICAgICAgICAgICAgICMgcGFydHMuIFRoaXMgbWFrZXMgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIGUu
Zy4KKyAgICAgICAgICAgICAgICAgICAgIyAoIkM6IiwgIi8iLCAiYSIpIHJlYXNvbmFibHkgaW50
dWl0aXZlLgorICAgICAgICAgICAgICAgICAgICBmb3IgcGFydCBpbiBpdDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIG5vdCBwYXJ0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBhbHRzZXA6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFydCA9IHBhcnQucmVwbGFjZShhbHRzZXAsIHNlcCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRydiA9IHNlbGYuc3BsaXRyb290KHBhcnQpWzBdCisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiBkcnY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsK
KyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBpZiBkcnYgb3Igcm9vdDoKKyAgICAgICAg
ICAgIHBhcnNlZC5hcHBlbmQoZHJ2ICsgcm9vdCkKKyAgICAgICAgcGFyc2VkLnJldmVyc2UoKQor
ICAgICAgICByZXR1cm4gZHJ2LCByb290LCBwYXJzZWQKKworICAgIGRlZiBqb2luX3BhcnNlZF9w
YXJ0cyhzZWxmLCBkcnYsIHJvb3QsIHBhcnRzLCBkcnYyLCByb290MiwgcGFydHMyKToKKyAgICAg
ICAgIiIiCisgICAgICAgIEpvaW4gdGhlIHR3byBwYXRocyByZXByZXNlbnRlZCBieSB0aGUgcmVz
cGVjdGl2ZQorICAgICAgICAoZHJpdmUsIHJvb3QsIHBhcnRzKSB0dXBsZXMuICBSZXR1cm4gYSBu
ZXcgKGRyaXZlLCByb290LCBwYXJ0cykgdHVwbGUuCisgICAgICAgICIiIgorICAgICAgICBpZiBy
b290MjoKKyAgICAgICAgICAgIGlmIG5vdCBkcnYyIGFuZCBkcnY6CisgICAgICAgICAgICAgICAg
cmV0dXJuIGRydiwgcm9vdDIsIFtkcnYgKyByb290Ml0gKyBwYXJ0czJbMTpdCisgICAgICAgIGVs
aWYgZHJ2MjoKKyAgICAgICAgICAgIGlmIGRydjIgPT0gZHJ2IG9yIHNlbGYuY2FzZWZvbGQoZHJ2
MikgPT0gc2VsZi5jYXNlZm9sZChkcnYpOgorICAgICAgICAgICAgICAgICMgU2FtZSBkcml2ZSA9
PiBzZWNvbmQgcGF0aCBpcyByZWxhdGl2ZSB0byB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZHJ2LCByb290LCBwYXJ0cyArIHBhcnRzMlsxOl0KKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICMgU2Vjb25kIHBhdGggaXMgbm9uLWFuY2hvcmVkIChjb21tb24gY2FzZSkKKyAgICAg
ICAgICAgIHJldHVybiBkcnYsIHJvb3QsIHBhcnRzICsgcGFydHMyCisgICAgICAgIHJldHVybiBk
cnYyLCByb290MiwgcGFydHMyCisKKworY2xhc3MgX1dpbmRvd3NGbGF2b3VyKF9GbGF2b3VyKToK
KyAgICAjIFJlZmVyZW5jZSBmb3IgV2luZG93cyBwYXRocyBjYW4gYmUgZm91bmQgYXQKKyAgICAj
IGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9hYTM2NTI0NyUyOHY9dnMu
ODUlMjkuYXNweAorCisgICAgc2VwID0gJ1xcJworICAgIGFsdHNlcCA9ICcvJworICAgIGhhc19k
cnYgPSBUcnVlCisgICAgcGF0aG1vZCA9IG50cGF0aAorCisgICAgaXNfc3VwcG9ydGVkID0gKG9z
Lm5hbWUgPT0gJ250JykKKworICAgIGRyaXZlX2xldHRlcnMgPSBzZXQoJ2FiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonKQorICAgIGV4dF9uYW1lc3Bh
Y2VfcHJlZml4ID0gJ1xcXFw/XFwnCisKKyAgICByZXNlcnZlZF9uYW1lcyA9ICgKKyAgICAgICAg
c2V0KFsnQ09OJywgJ1BSTicsICdBVVgnLCAnTlVMJ10pIHwKKyAgICAgICAgc2V0KFsnQ09NJWQn
ICUgaSBmb3IgaSBpbiByYW5nZSgxLCAxMCldKSB8CisgICAgICAgIHNldChbJ0xQVCVkJyAlIGkg
Zm9yIGkgaW4gcmFuZ2UoMSwgMTApXSkKKyAgICAgICAgKQorCisgICAgIyBJbnRlcmVzdGluZyBm
aW5kaW5ncyBhYm91dCBleHRlbmRlZCBwYXRoczoKKyAgICAjIC0gJ1xcP1xjOlxhJywgJy8vPy9j
OlxhJyBhbmQgJy8vPy9jOi9hJyBhcmUgYWxsIHN1cHBvcnRlZAorICAgICMgICBidXQgJ1xcP1xj
Oi9hJyBpcyBub3QKKyAgICAjIC0gZXh0ZW5kZWQgcGF0aHMgYXJlIGFsd2F5cyBhYnNvbHV0ZTsg
InJlbGF0aXZlIiBleHRlbmRlZCBwYXRocyB3aWxsCisgICAgIyAgIGZhaWwuCisKKyAgICBkZWYg
c3BsaXRyb290KHNlbGYsIHBhcnQsIHNlcD1zZXApOgorICAgICAgICBmaXJzdCA9IHBhcnRbMDox
XQorICAgICAgICBzZWNvbmQgPSBwYXJ0WzE6Ml0KKyAgICAgICAgaWYgKHNlY29uZCA9PSBzZXAg
YW5kIGZpcnN0ID09IHNlcCk6CisgICAgICAgICAgICAjIFhYWCBleHRlbmRlZCBwYXRocyBzaG91
bGQgYWxzbyBkaXNhYmxlIHRoZSBjb2xsYXBzaW5nIG9mICIuIgorICAgICAgICAgICAgIyBjb21w
b25lbnRzIChhY2NvcmRpbmcgdG8gTVNETiBkb2NzKS4KKyAgICAgICAgICAgIHByZWZpeCwgcGFy
dCA9IHNlbGYuX3NwbGl0X2V4dGVuZGVkX3BhdGgocGFydCkKKyAgICAgICAgICAgIGZpcnN0ID0g
cGFydFswOjFdCisgICAgICAgICAgICBzZWNvbmQgPSBwYXJ0WzE6Ml0KKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHByZWZpeCA9ICcnCisgICAgICAgIHRoaXJkID0gcGFydFsyOjNdCisgICAg
ICAgIGlmIChzZWNvbmQgPT0gc2VwIGFuZCBmaXJzdCA9PSBzZXAgYW5kIHRoaXJkICE9IHNlcCk6
CisgICAgICAgICAgICAjIGlzIGEgVU5DIHBhdGg6CisgICAgICAgICAgICAjIHZ2dnZ2dnZ2dnZ2
dnZ2dnZ2dnZ2diByb290CisgICAgICAgICAgICAjIFxcbWFjaGluZVxtb3VudHBvaW50XGRpcmVj
dG9yeVxldGNcLi4uCisgICAgICAgICAgICAjICAgICAgICAgICAgZGlyZWN0b3J5IF5eXl5eXl5e
Xl5eXl5eCisgICAgICAgICAgICBpbmRleCA9IHBhcnQuZmluZChzZXAsIDIpCisgICAgICAgICAg
ICBpZiBpbmRleCAhPSAtMToKKyAgICAgICAgICAgICAgICBpbmRleDIgPSBwYXJ0LmZpbmQoc2Vw
LCBpbmRleCArIDEpCisgICAgICAgICAgICAgICAgIyBhIFVOQyBwYXRoIGNhbid0IGhhdmUgdHdv
IHNsYXNoZXMgaW4gYSByb3cKKyAgICAgICAgICAgICAgICAjIChhZnRlciB0aGUgaW5pdGlhbCB0
d28pCisgICAgICAgICAgICAgICAgaWYgaW5kZXgyICE9IGluZGV4ICsgMToKKyAgICAgICAgICAg
ICAgICAgICAgaWYgaW5kZXgyID09IC0xOgorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgy
ID0gbGVuKHBhcnQpCisgICAgICAgICAgICAgICAgICAgIGlmIHByZWZpeDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBwcmVmaXggKyBwYXJ0WzE6aW5kZXgyXSwgc2VwLCBwYXJ0W2lu
ZGV4MiArIDE6XQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHBhcnRbOmluZGV4Ml0sIHNlcCwgcGFydFtpbmRleDIgKyAxOl0KKyAgICAg
ICAgZHJ2ID0gcm9vdCA9ICcnCisgICAgICAgIGlmIHNlY29uZCA9PSAnOicgYW5kIGZpcnN0IGlu
IHNlbGYuZHJpdmVfbGV0dGVyczoKKyAgICAgICAgICAgIGRydiA9IHBhcnRbOjJdCisgICAgICAg
ICAgICBwYXJ0ID0gcGFydFsyOl0KKyAgICAgICAgICAgIGZpcnN0ID0gdGhpcmQKKyAgICAgICAg
aWYgZmlyc3QgPT0gc2VwOgorICAgICAgICAgICAgcm9vdCA9IGZpcnN0CisgICAgICAgICAgICBw
YXJ0ID0gcGFydC5sc3RyaXAoc2VwKQorICAgICAgICByZXR1cm4gcHJlZml4ICsgZHJ2LCByb290
LCBwYXJ0CisKKyAgICBkZWYgY2FzZWZvbGQoc2VsZiwgcyk6CisgICAgICAgIHJldHVybiBzLmxv
d2VyKCkKKworICAgIGRlZiBjYXNlZm9sZF9wYXJ0cyhzZWxmLCBwYXJ0cyk6CisgICAgICAgIHJl
dHVybiBbcC5sb3dlcigpIGZvciBwIGluIHBhcnRzXQorCisgICAgZGVmIHJlc29sdmUoc2VsZiwg
cGF0aCwgc3RyaWN0PUZhbHNlKToKKyAgICAgICAgcyA9IHN0cihwYXRoKQorICAgICAgICBpZiBu
b3QgczoKKyAgICAgICAgICAgIHJldHVybiBvcy5nZXRjd2QoKQorICAgICAgICBwcmV2aW91c19z
ID0gTm9uZQorICAgICAgICBpZiBfZ2V0ZmluYWxwYXRobmFtZSBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGlmIHN0cmljdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZXh0X3RvX25v
cm1hbChfZ2V0ZmluYWxwYXRobmFtZShzKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgIyBFbmQgb2YgdGhlIHBhdGggYWZ0ZXIgdGhlIGZpcnN0IG9uZSBub3QgZm91bmQKKyAg
ICAgICAgICAgICAgICB0YWlsX3BhcnRzID0gW10KKworICAgICAgICAgICAgICAgIGRlZiBfdHJ5
X2Z1bmMoKToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0WzBdID0gc2VsZi5fZXh0X3RvX25v
cm1hbChfZ2V0ZmluYWxwYXRobmFtZShzKSkKKyAgICAgICAgICAgICAgICAgICAgIyBpZiB0aGVy
ZSB3YXMgbm8gZXhjZXB0aW9uLCBzZXQgZmxhZyB0byAwCisgICAgICAgICAgICAgICAgICAgIHJl
c3VsdFsxXSA9IDAKKworICAgICAgICAgICAgICAgIGRlZiBfZXhjX2Z1bmMoZXhjKToKKyAgICAg
ICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gW05vbmUsIDFdCisgICAgICAgICAgICAgICAgICAgIF90
cnlfZXhjZXB0X2ZpbGVub3Rmb3VuZGVycm9yKF90cnlfZnVuYywgX2V4Y19mdW5jKQorICAgICAg
ICAgICAgICAgICAgICBpZiByZXN1bHRbMV0gPT0gMTogICMgZmlsZSBub3QgZm91bmQgZXhjZXB0
aW9uIHJhaXNlZAorICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfcyA9IHMKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHMsIHRhaWwgPSBvcy5wYXRoLnNwbGl0KHMpCisgICAgICAgICAg
ICAgICAgICAgICAgICB0YWlsX3BhcnRzLmFwcGVuZCh0YWlsKQorICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgcHJldmlvdXNfcyA9PSBzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBwYXRoCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg
ICAgICBzID0gcmVzdWx0WzBdCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3MucGF0
aC5qb2luKHMsICpyZXZlcnNlZCh0YWlsX3BhcnRzKSkKKyAgICAgICAgIyBNZWFucyBmYWxsYmFj
ayBvbiBhYnNvbHV0ZQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIF9zcGxpdF9leHRl
bmRlZF9wYXRoKHNlbGYsIHMsIGV4dF9wcmVmaXg9ZXh0X25hbWVzcGFjZV9wcmVmaXgpOgorICAg
ICAgICBwcmVmaXggPSAnJworICAgICAgICBpZiBzLnN0YXJ0c3dpdGgoZXh0X3ByZWZpeCk6Cisg
ICAgICAgICAgICBwcmVmaXggPSBzWzo0XQorICAgICAgICAgICAgcyA9IHNbNDpdCisgICAgICAg
ICAgICBpZiBzLnN0YXJ0c3dpdGgoJ1VOQ1xcJyk6CisgICAgICAgICAgICAgICAgcHJlZml4ICs9
IHNbOjNdCisgICAgICAgICAgICAgICAgcyA9ICdcXCcgKyBzWzM6XQorICAgICAgICByZXR1cm4g
cHJlZml4LCBzCisKKyAgICBkZWYgX2V4dF90b19ub3JtYWwoc2VsZiwgcyk6CisgICAgICAgICMg
VHVybiBiYWNrIGFuIGV4dGVuZGVkIHBhdGggaW50byBhIG5vcm1hbCBET1MtbGlrZSBwYXRoCisg
ICAgICAgIHJldHVybiBzZWxmLl9zcGxpdF9leHRlbmRlZF9wYXRoKHMpWzFdCisKKyAgICBkZWYg
aXNfcmVzZXJ2ZWQoc2VsZiwgcGFydHMpOgorICAgICAgICAjIE5PVEU6IHRoZSBydWxlcyBmb3Ig
cmVzZXJ2ZWQgbmFtZXMgc2VlbSBzb21ld2hhdCBjb21wbGljYXRlZAorICAgICAgICAjIChlLmcu
IHIiLi5cTlVMIiBpcyByZXNlcnZlZCBidXQgbm90IHIiZm9vXE5VTCIpLgorICAgICAgICAjIFdl
IGVyciBvbiB0aGUgc2lkZSBvZiBjYXV0aW9uIGFuZCByZXR1cm4gVHJ1ZSBmb3IgcGF0aHMgd2hp
Y2ggYXJlCisgICAgICAgICMgbm90IGNvbnNpZGVyZWQgcmVzZXJ2ZWQgYnkgV2luZG93cy4KKyAg
ICAgICAgaWYgbm90IHBhcnRzOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlm
IHBhcnRzWzBdLnN0YXJ0c3dpdGgoJ1xcXFwnKToKKyAgICAgICAgICAgICMgVU5DIHBhdGhzIGFy
ZSBuZXZlciByZXNlcnZlZAorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVy
biBwYXJ0c1stMV0ucGFydGl0aW9uKCcuJylbMF0udXBwZXIoKSBpbiBzZWxmLnJlc2VydmVkX25h
bWVzCisKKyAgICBkZWYgbWFrZV91cmkoc2VsZiwgcGF0aCk6CisgICAgICAgICMgVW5kZXIgV2lu
ZG93cywgZmlsZSBVUklzIHVzZSB0aGUgVVRGLTggZW5jb2RpbmcuCisgICAgICAgIGRyaXZlID0g
cGF0aC5kcml2ZQorICAgICAgICBpZiBsZW4oZHJpdmUpID09IDIgYW5kIGRyaXZlWzFdID09ICc6
JzoKKyAgICAgICAgICAgICMgSXQncyBhIHBhdGggb24gYSBsb2NhbCBkcml2ZSA9PiAnZmlsZTov
Ly9jOi9hL2InCisgICAgICAgICAgICByZXN0ID0gcGF0aC5hc19wb3NpeCgpWzI6XS5sc3RyaXAo
Jy8nKQorICAgICAgICAgICAgcmV0dXJuICdmaWxlOi8vLyVzLyVzJyAlICgKKyAgICAgICAgICAg
ICAgICBkcml2ZSwgdXJscXVvdGVfZnJvbV9ieXRlcyhyZXN0LmVuY29kZSgndXRmLTgnKSkpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIEl0J3MgYSBwYXRoIG9uIGEgbmV0d29yayBkcml2
ZSA9PiAnZmlsZTovL2hvc3Qvc2hhcmUvYS9iJworICAgICAgICAgICAgcmV0dXJuICdmaWxlOicg
KyB1cmxxdW90ZV9mcm9tX2J5dGVzKAorICAgICAgICAgICAgICAgIHBhdGguYXNfcG9zaXgoKS5l
bmNvZGUoJ3V0Zi04JykpCisKKyAgICBkZWYgZ2V0aG9tZWRpcihzZWxmLCB1c2VybmFtZSk6Cisg
ICAgICAgIGlmICdIT01FJyBpbiBvcy5lbnZpcm9uOgorICAgICAgICAgICAgdXNlcmhvbWUgPSBv
cy5lbnZpcm9uWydIT01FJ10KKyAgICAgICAgZWxpZiAnVVNFUlBST0ZJTEUnIGluIG9zLmVudmly
b246CisgICAgICAgICAgICB1c2VyaG9tZSA9IG9zLmVudmlyb25bJ1VTRVJQUk9GSUxFJ10KKyAg
ICAgICAgZWxpZiAnSE9NRVBBVEgnIGluIG9zLmVudmlyb246CisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgZHJ2ID0gb3MuZW52aXJvblsnSE9NRURSSVZFJ10KKyAgICAgICAgICAg
IGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBkcnYgPSAnJworICAgICAgICAgICAg
dXNlcmhvbWUgPSBkcnYgKyBvcy5lbnZpcm9uWydIT01FUEFUSCddCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIkNhbid0IGRldGVybWluZSBob21lIGRpcmVj
dG9yeSIpCisKKyAgICAgICAgaWYgdXNlcm5hbWU6CisgICAgICAgICAgICAjIFRyeSB0byBndWVz
cyB1c2VyIGhvbWUgZGlyZWN0b3J5LiAgQnkgZGVmYXVsdCBhbGwgdXNlcnMKKyAgICAgICAgICAg
ICMgZGlyZWN0b3JpZXMgYXJlIGxvY2F0ZWQgaW4gdGhlIHNhbWUgcGxhY2UgYW5kIGFyZSBuYW1l
ZCBieQorICAgICAgICAgICAgIyBjb3JyZXNwb25kaW5nIHVzZXJuYW1lcy4gIElmIGN1cnJlbnQg
dXNlciBob21lIGRpcmVjdG9yeSBwb2ludHMKKyAgICAgICAgICAgICMgdG8gbm9uc3RhbmRhcmQg
cGxhY2UsIHRoaXMgZ3Vlc3MgaXMgbGlrZWx5IHdyb25nLgorICAgICAgICAgICAgaWYgb3MuZW52
aXJvblsnVVNFUk5BTUUnXSAhPSB1c2VybmFtZToKKyAgICAgICAgICAgICAgICBkcnYsIHJvb3Qs
IHBhcnRzID0gc2VsZi5wYXJzZV9wYXJ0cygodXNlcmhvbWUsKSkKKyAgICAgICAgICAgICAgICBp
ZiBwYXJ0c1stMV0gIT0gb3MuZW52aXJvblsnVVNFUk5BTUUnXToKKyAgICAgICAgICAgICAgICAg
ICAgcmFpc2UgUnVudGltZUVycm9yKCJDYW4ndCBkZXRlcm1pbmUgaG9tZSBkaXJlY3RvcnkgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvciAlciIgJSB1c2VybmFt
ZSkKKyAgICAgICAgICAgICAgICBwYXJ0c1stMV0gPSB1c2VybmFtZQorICAgICAgICAgICAgICAg
IGlmIGRydiBvciByb290OgorICAgICAgICAgICAgICAgICAgICB1c2VyaG9tZSA9IGRydiArIHJv
b3QgKyBzZWxmLmpvaW4ocGFydHNbMTpdKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgIHVzZXJob21lID0gc2VsZi5qb2luKHBhcnRzKQorICAgICAgICByZXR1cm4g
dXNlcmhvbWUKKworCitjbGFzcyBfUG9zaXhGbGF2b3VyKF9GbGF2b3VyKToKKyAgICBzZXAgPSAn
LycKKyAgICBhbHRzZXAgPSAnJworICAgIGhhc19kcnYgPSBGYWxzZQorICAgIHBhdGhtb2QgPSBw
b3NpeHBhdGgKKworICAgIGlzX3N1cHBvcnRlZCA9IChvcy5uYW1lICE9ICdudCcpCisKKyAgICBk
ZWYgc3BsaXRyb290KHNlbGYsIHBhcnQsIHNlcD1zZXApOgorICAgICAgICBpZiBwYXJ0IGFuZCBw
YXJ0WzBdID09IHNlcDoKKyAgICAgICAgICAgIHN0cmlwcGVkX3BhcnQgPSBwYXJ0LmxzdHJpcChz
ZXApCisgICAgICAgICAgICAjIEFjY29yZGluZyB0byBQT1NJWCBwYXRoIHJlc29sdXRpb246Cisg
ICAgICAgICAgICAjIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUz
OTkvYmFzZWRlZnMvCisgICAgICAgICAgICAjIHhiZF9jaGFwMDQuaHRtbCN0YWdfMDRfMTEKKyAg
ICAgICAgICAgICMgIkEgcGF0aG5hbWUgdGhhdCBiZWdpbnMgd2l0aCB0d28gc3VjY2Vzc2l2ZSBz
bGFzaGVzIG1heSBiZQorICAgICAgICAgICAgIyBpbnRlcnByZXRlZCBpbiBhbiBpbXBsZW1lbnRh
dGlvbi1kZWZpbmVkIG1hbm5lciwgYWx0aG91Z2ggbW9yZQorICAgICAgICAgICAgIyB0aGFuIHR3
byBsZWFkaW5nIHNsYXNoZXMgc2hhbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBzbGFzaCIuCisg
ICAgICAgICAgICBpZiBsZW4ocGFydCkgLSBsZW4oc3RyaXBwZWRfcGFydCkgPT0gMjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gJycsIHNlcCAqIDIsIHN0cmlwcGVkX3BhcnQKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuICcnLCBzZXAsIHN0cmlwcGVkX3BhcnQKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAnJywgJycsIHBhcnQKKworICAgIGRlZiBj
YXNlZm9sZChzZWxmLCBzKToKKyAgICAgICAgcmV0dXJuIHMKKworICAgIGRlZiBjYXNlZm9sZF9w
YXJ0cyhzZWxmLCBwYXJ0cyk6CisgICAgICAgIHJldHVybiBwYXJ0cworCisgICAgZGVmIHJlc29s
dmUoc2VsZiwgcGF0aCwgc3RyaWN0PUZhbHNlKToKKyAgICAgICAgc2VwID0gc2VsZi5zZXAKKyAg
ICAgICAgYWNjZXNzb3IgPSBwYXRoLl9hY2Nlc3NvcgorICAgICAgICBzZWVuID0ge30KKworICAg
ICAgICBkZWYgX3Jlc29sdmUocGF0aCwgcmVzdCk6CisgICAgICAgICAgICBpZiByZXN0LnN0YXJ0
c3dpdGgoc2VwKToKKyAgICAgICAgICAgICAgICBwYXRoID0gJycKKworICAgICAgICAgICAgZm9y
IG5hbWUgaW4gcmVzdC5zcGxpdChzZXApOgorICAgICAgICAgICAgICAgIGlmIG5vdCBuYW1lIG9y
IG5hbWUgPT0gJy4nOgorICAgICAgICAgICAgICAgICAgICAjIGN1cnJlbnQgZGlyCisgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgbmFtZSA9PSAnLi4nOgor
ICAgICAgICAgICAgICAgICAgICAjIHBhcmVudCBkaXIKKyAgICAgICAgICAgICAgICAgICAgcGF0
aCwgXywgXyA9IHBhdGgucnBhcnRpdGlvbihzZXApCisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgICAgICAgICAgbmV3cGF0aCA9IHBhdGggKyBzZXAgKyBuYW1lCisgICAgICAg
ICAgICAgICAgaWYgbmV3cGF0aCBpbiBzZWVuOgorICAgICAgICAgICAgICAgICAgICAjIEFscmVh
ZHkgc2VlbiB0aGlzIHBhdGgKKyAgICAgICAgICAgICAgICAgICAgcGF0aCA9IHNlZW5bbmV3cGF0
aF0KKyAgICAgICAgICAgICAgICAgICAgaWYgcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
ICAgICAgICAgICAgICMgdXNlIGNhY2hlZCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWUKKyAgICAgICAgICAgICAgICAgICAgIyBUaGUgc3ltbGluayBpcyBub3QgcmVzb2x2
ZWQsIHNvIHdlIG11c3QgaGF2ZSBhIHN5bWxpbmsKKyAgICAgICAgICAgICAgICAgICAgIyBsb29w
LgorICAgICAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIlN5bWxpbmsgbG9vcCBm
cm9tICVyIiAlIG5ld3BhdGgpCisgICAgICAgICAgICAgICAgIyBSZXNvbHZlIHRoZSBzeW1ib2xp
YyBsaW5rCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICB0YXJnZXQg
PSBhY2Nlc3Nvci5yZWFkbGluayhuZXdwYXRoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vy
cm9yIGFzIGU6CisgICAgICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gRUlOVkFMIGFuZCBz
dHJpY3Q6CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgICAg
ICAjIE5vdCBhIHN5bWxpbmssIG9yIG5vbi1zdHJpY3QgbW9kZS4gV2UganVzdCBsZWF2ZSB0aGUg
cGF0aAorICAgICAgICAgICAgICAgICAgICAjIHVudG91Y2hlZC4KKyAgICAgICAgICAgICAgICAg
ICAgcGF0aCA9IG5ld3BhdGgKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICBzZWVuW25ld3BhdGhdID0gTm9uZSAgIyBub3QgcmVzb2x2ZWQgc3ltbGluaworICAgICAg
ICAgICAgICAgICAgICBwYXRoID0gX3Jlc29sdmUocGF0aCwgdGFyZ2V0KQorICAgICAgICAgICAg
ICAgICAgICBzZWVuW25ld3BhdGhdID0gcGF0aCAgIyByZXNvbHZlZCBzeW1saW5rCisKKyAgICAg
ICAgICAgIHJldHVybiBwYXRoCisgICAgICAgICMgTk9URTogYWNjb3JkaW5nIHRvIFBPU0lYLCBn
ZXRjd2QoKSBjYW5ub3QgY29udGFpbiBwYXRoIGNvbXBvbmVudHMKKyAgICAgICAgIyB3aGljaCBh
cmUgc3ltbGlua3MuCisgICAgICAgIGJhc2UgPSAnJyBpZiBwYXRoLmlzX2Fic29sdXRlKCkgZWxz
ZSBvcy5nZXRjd2QoKQorICAgICAgICByZXR1cm4gX3Jlc29sdmUoYmFzZSwgc3RyKHBhdGgpKSBv
ciBzZXAKKworICAgIGRlZiBpc19yZXNlcnZlZChzZWxmLCBwYXJ0cyk6CisgICAgICAgIHJldHVy
biBGYWxzZQorCisgICAgZGVmIG1ha2VfdXJpKHNlbGYsIHBhdGgpOgorICAgICAgICAjIFdlIHJl
cHJlc2VudCB0aGUgcGF0aCB1c2luZyB0aGUgbG9jYWwgZmlsZXN5c3RlbSBlbmNvZGluZywKKyAg
ICAgICAgIyBmb3IgcG9ydGFiaWxpdHkgdG8gb3RoZXIgYXBwbGljYXRpb25zLgorICAgICAgICBi
cGF0aCA9IGJ5dGVzKHBhdGgpCisgICAgICAgIHJldHVybiAnZmlsZTovLycgKyB1cmxxdW90ZV9m
cm9tX2J5dGVzKGJwYXRoKQorCisgICAgZGVmIGdldGhvbWVkaXIoc2VsZiwgdXNlcm5hbWUpOgor
ICAgICAgICBpZiBub3QgdXNlcm5hbWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIG9zLmVudmlyb25bJ0hPTUUnXQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9y
OgorICAgICAgICAgICAgICAgIGltcG9ydCBwd2QKKyAgICAgICAgICAgICAgICByZXR1cm4gcHdk
LmdldHB3dWlkKG9zLmdldHVpZCgpKS5wd19kaXIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGltcG9ydCBwd2QKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHdk
LmdldHB3bmFtKHVzZXJuYW1lKS5wd19kaXIKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoK
KyAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIkNhbid0IGRldGVybWluZSBob21l
IGRpcmVjdG9yeSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3IgJXIi
ICUgdXNlcm5hbWUpCisKKworX3dpbmRvd3NfZmxhdm91ciA9IF9XaW5kb3dzRmxhdm91cigpCitf
cG9zaXhfZmxhdm91ciA9IF9Qb3NpeEZsYXZvdXIoKQorCisKK2NsYXNzIF9BY2Nlc3NvcjoKKwor
ICAgICIiIkFuIGFjY2Vzc29yIGltcGxlbWVudHMgYSBwYXJ0aWN1bGFyIChzeXN0ZW0tc3BlY2lm
aWMgb3Igbm90KSB3YXkgb2YKKyAgICBhY2Nlc3NpbmcgcGF0aHMgb24gdGhlIGZpbGVzeXN0ZW0u
IiIiCisKKworY2xhc3MgX05vcm1hbEFjY2Vzc29yKF9BY2Nlc3Nvcik6CisKKyAgICBkZWYgX3dy
YXBfc3RyZnVuYyhzdHJmdW5jKToKKyAgICAgICAgQGZ1bmN0b29scy53cmFwcyhzdHJmdW5jKQor
ICAgICAgICBkZWYgd3JhcHBlZChwYXRob2JqLCAqYXJncyk6CisgICAgICAgICAgICByZXR1cm4g
c3RyZnVuYyhzdHIocGF0aG9iaiksICphcmdzKQorICAgICAgICByZXR1cm4gc3RhdGljbWV0aG9k
KHdyYXBwZWQpCisKKyAgICBkZWYgX3dyYXBfYmluYXJ5X3N0cmZ1bmMoc3RyZnVuYyk6CisgICAg
ICAgIEBmdW5jdG9vbHMud3JhcHMoc3RyZnVuYykKKyAgICAgICAgZGVmIHdyYXBwZWQocGF0aG9i
akEsIHBhdGhvYmpCLCAqYXJncyk6CisgICAgICAgICAgICByZXR1cm4gc3RyZnVuYyhzdHIocGF0
aG9iakEpLCBzdHIocGF0aG9iakIpLCAqYXJncykKKyAgICAgICAgcmV0dXJuIHN0YXRpY21ldGhv
ZCh3cmFwcGVkKQorCisgICAgc3RhdCA9IF93cmFwX3N0cmZ1bmMob3Muc3RhdCkKKworICAgIGxz
dGF0ID0gX3dyYXBfc3RyZnVuYyhvcy5sc3RhdCkKKworICAgIG9wZW4gPSBfd3JhcF9zdHJmdW5j
KG9zLm9wZW4pCisKKyAgICBsaXN0ZGlyID0gX3dyYXBfc3RyZnVuYyhvcy5saXN0ZGlyKQorCisg
ICAgc2NhbmRpciA9IF93cmFwX3N0cmZ1bmMob3Nfc2NhbmRpcikKKworICAgIGNobW9kID0gX3dy
YXBfc3RyZnVuYyhvcy5jaG1vZCkKKworICAgIGlmIGhhc2F0dHIob3MsICJsY2htb2QiKToKKyAg
ICAgICAgbGNobW9kID0gX3dyYXBfc3RyZnVuYyhvcy5sY2htb2QpCisgICAgZWxzZToKKyAgICAg
ICAgZGVmIGxjaG1vZChzZWxmLCBwYXRob2JqLCBtb2RlKToKKyAgICAgICAgICAgIHJhaXNlIE5v
dEltcGxlbWVudGVkRXJyb3IoImxjaG1vZCgpIG5vdCBhdmFpbGFibGUgb24gdGhpcyBzeXN0ZW0i
KQorCisgICAgbWtkaXIgPSBfd3JhcF9zdHJmdW5jKG9zLm1rZGlyKQorCisgICAgdW5saW5rID0g
X3dyYXBfc3RyZnVuYyhvcy51bmxpbmspCisKKyAgICBybWRpciA9IF93cmFwX3N0cmZ1bmMob3Mu
cm1kaXIpCisKKyAgICByZW5hbWUgPSBfd3JhcF9iaW5hcnlfc3RyZnVuYyhvcy5yZW5hbWUpCisK
KyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAzKToKKyAgICAgICAgcmVwbGFjZSA9IF93
cmFwX2JpbmFyeV9zdHJmdW5jKG9zLnJlcGxhY2UpCisKKyAgICBpZiBudDoKKyAgICAgICAgaWYg
c3VwcG9ydHNfc3ltbGlua3M6CisgICAgICAgICAgICBzeW1saW5rID0gX3dyYXBfYmluYXJ5X3N0
cmZ1bmMob3Muc3ltbGluaykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRlZiBzeW1saW5r
KGEsIGIsIHRhcmdldF9pc19kaXJlY3RvcnkpOgorICAgICAgICAgICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJzeW1saW5rKCkgbm90IGF2YWls
YWJsZSBvbiB0aGlzIHN5c3RlbSIpCisgICAgZWxzZToKKyAgICAgICAgIyBVbmRlciBQT1NJWCwg
b3Muc3ltbGluaygpIHRha2VzIHR3byBhcmdzCisgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAg
ICAgZGVmIHN5bWxpbmsoYSwgYiwgdGFyZ2V0X2lzX2RpcmVjdG9yeSk6CisgICAgICAgICAgICBy
ZXR1cm4gb3Muc3ltbGluayhzdHIoYSksIHN0cihiKSkKKworICAgIHV0aW1lID0gX3dyYXBfc3Ry
ZnVuYyhvcy51dGltZSkKKworICAgICMgSGVscGVyIGZvciByZXNvbHZlKCkKKyAgICBkZWYgcmVh
ZGxpbmsoc2VsZiwgcGF0aCk6CisgICAgICAgIHJldHVybiBvcy5yZWFkbGluayhwYXRoKQorCisK
K19ub3JtYWxfYWNjZXNzb3IgPSBfTm9ybWFsQWNjZXNzb3IoKQorCisKKyMKKyMgR2xvYmJpbmcg
aGVscGVycworIworCitkZWYgX21ha2Vfc2VsZWN0b3IocGF0dGVybl9wYXJ0cyk6CisgICAgcGF0
ID0gcGF0dGVybl9wYXJ0c1swXQorICAgIGNoaWxkX3BhcnRzID0gcGF0dGVybl9wYXJ0c1sxOl0K
KyAgICBpZiBwYXQgPT0gJyoqJzoKKyAgICAgICAgY2xzID0gX1JlY3Vyc2l2ZVdpbGRjYXJkU2Vs
ZWN0b3IKKyAgICBlbGlmICcqKicgaW4gcGF0OgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAor
ICAgICAgICAgICAgIkludmFsaWQgcGF0dGVybjogJyoqJyBjYW4gb25seSBiZSBhbiBlbnRpcmUg
cGF0aCBjb21wb25lbnQiKQorICAgIGVsaWYgX2lzX3dpbGRjYXJkX3BhdHRlcm4ocGF0KToKKyAg
ICAgICAgY2xzID0gX1dpbGRjYXJkU2VsZWN0b3IKKyAgICBlbHNlOgorICAgICAgICBjbHMgPSBf
UHJlY2lzZVNlbGVjdG9yCisgICAgcmV0dXJuIGNscyhwYXQsIGNoaWxkX3BhcnRzKQorCisKK2lm
IGhhc2F0dHIoZnVuY3Rvb2xzLCAibHJ1X2NhY2hlIik6CisgICAgX21ha2Vfc2VsZWN0b3IgPSBm
dW5jdG9vbHMubHJ1X2NhY2hlKCkoX21ha2Vfc2VsZWN0b3IpCisKKworY2xhc3MgX1NlbGVjdG9y
OgorCisgICAgIiIiQSBzZWxlY3RvciBtYXRjaGVzIGEgc3BlY2lmaWMgZ2xvYiBwYXR0ZXJuIHBh
cnQgYWdhaW5zdCB0aGUgY2hpbGRyZW4KKyAgICBvZiBhIGdpdmVuIHBhdGguIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgY2hpbGRfcGFydHMpOgorICAgICAgICBzZWxmLmNoaWxkX3BhcnRz
ID0gY2hpbGRfcGFydHMKKyAgICAgICAgaWYgY2hpbGRfcGFydHM6CisgICAgICAgICAgICBzZWxm
LnN1Y2Nlc3NvciA9IF9tYWtlX3NlbGVjdG9yKGNoaWxkX3BhcnRzKQorICAgICAgICAgICAgc2Vs
Zi5kaXJvbmx5ID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zdWNjZXNz
b3IgPSBfVGVybWluYXRpbmdTZWxlY3RvcigpCisgICAgICAgICAgICBzZWxmLmRpcm9ubHkgPSBG
YWxzZQorCisgICAgZGVmIHNlbGVjdF9mcm9tKHNlbGYsIHBhcmVudF9wYXRoKToKKyAgICAgICAg
IiIiSXRlcmF0ZSBvdmVyIGFsbCBjaGlsZCBwYXRocyBvZiBgcGFyZW50X3BhdGhgIG1hdGNoZWQg
YnkgdGhpcworICAgICAgICBzZWxlY3Rvci4gIFRoaXMgY2FuIGNvbnRhaW4gcGFyZW50X3BhdGgg
aXRzZWxmLiIiIgorICAgICAgICBwYXRoX2NscyA9IHR5cGUocGFyZW50X3BhdGgpCisgICAgICAg
IGlzX2RpciA9IHBhdGhfY2xzLmlzX2RpcgorICAgICAgICBleGlzdHMgPSBwYXRoX2Nscy5leGlz
dHMKKyAgICAgICAgc2NhbmRpciA9IHBhcmVudF9wYXRoLl9hY2Nlc3Nvci5zY2FuZGlyCisgICAg
ICAgIGlmIG5vdCBpc19kaXIocGFyZW50X3BhdGgpOgorICAgICAgICAgICAgcmV0dXJuIGl0ZXIo
W10pCisgICAgICAgIHJldHVybiBzZWxmLl9zZWxlY3RfZnJvbShwYXJlbnRfcGF0aCwgaXNfZGly
LCBleGlzdHMsIHNjYW5kaXIpCisKKworY2xhc3MgX1Rlcm1pbmF0aW5nU2VsZWN0b3I6CisKKyAg
ICBkZWYgX3NlbGVjdF9mcm9tKHNlbGYsIHBhcmVudF9wYXRoLCBpc19kaXIsIGV4aXN0cywgc2Nh
bmRpcik6CisgICAgICAgIHlpZWxkIHBhcmVudF9wYXRoCisKKworY2xhc3MgX1ByZWNpc2VTZWxl
Y3RvcihfU2VsZWN0b3IpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGNoaWxkX3Bh
cnRzKToKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorICAgICAgICBfU2VsZWN0b3IuX19pbml0
X18oc2VsZiwgY2hpbGRfcGFydHMpCisKKyAgICBkZWYgX3NlbGVjdF9mcm9tKHNlbGYsIHBhcmVu
dF9wYXRoLCBpc19kaXIsIGV4aXN0cywgc2NhbmRpcik6CisgICAgICAgIGRlZiB0cnlfaXRlcigp
OgorICAgICAgICAgICAgcGF0aCA9IHBhcmVudF9wYXRoLl9tYWtlX2NoaWxkX3JlbHBhdGgoc2Vs
Zi5uYW1lKQorICAgICAgICAgICAgaWYgKGlzX2RpciBpZiBzZWxmLmRpcm9ubHkgZWxzZSBleGlz
dHMpKHBhdGgpOgorICAgICAgICAgICAgICAgIGZvciBwIGluIHNlbGYuc3VjY2Vzc29yLl9zZWxl
Y3RfZnJvbSgKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsIGlzX2RpciwgZXhpc3RzLCBz
Y2FuZGlyKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgcAorCisgICAgICAgIGRlZiBleGNl
cHRfaXRlcihleGMpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICB5aWVsZAorCisg
ICAgICAgIGZvciB4IGluIF90cnlfZXhjZXB0X3Blcm1pc3Npb25lcnJvcl9pdGVyKHRyeV9pdGVy
LCBleGNlcHRfaXRlcik6CisgICAgICAgICAgICB5aWVsZCB4CisKKworY2xhc3MgX1dpbGRjYXJk
U2VsZWN0b3IoX1NlbGVjdG9yKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXQsIGNoaWxk
X3BhcnRzKToKKyAgICAgICAgc2VsZi5wYXQgPSByZS5jb21waWxlKGZubWF0Y2gudHJhbnNsYXRl
KHBhdCkpCisgICAgICAgIF9TZWxlY3Rvci5fX2luaXRfXyhzZWxmLCBjaGlsZF9wYXJ0cykKKwor
ICAgIGRlZiBfc2VsZWN0X2Zyb20oc2VsZiwgcGFyZW50X3BhdGgsIGlzX2RpciwgZXhpc3RzLCBz
Y2FuZGlyKToKKyAgICAgICAgZGVmIHRyeV9pdGVyKCk6CisgICAgICAgICAgICBjZiA9IHBhcmVu
dF9wYXRoLl9mbGF2b3VyLmNhc2Vmb2xkCisgICAgICAgICAgICBlbnRyaWVzID0gbGlzdChzY2Fu
ZGlyKHBhcmVudF9wYXRoKSkKKyAgICAgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAg
ICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmRpcm9ubHkgb3IgZW50cnkuaXNfZGlyKCk6CisgICAg
ICAgICAgICAgICAgICAgIG5hbWUgPSBlbnRyeS5uYW1lCisgICAgICAgICAgICAgICAgICAgIGNh
c2Vmb2xkZWQgPSBjZihuYW1lKQorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnBhdC5tYXRj
aChjYXNlZm9sZGVkKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBwYXJlbnRfcGF0
aC5fbWFrZV9jaGlsZF9yZWxwYXRoKG5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
cCBpbiBzZWxmLnN1Y2Nlc3Nvci5fc2VsZWN0X2Zyb20oCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhdGgsIGlzX2RpciwgZXhpc3RzLCBzY2FuZGlyKToKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB5aWVsZCBwCisKKyAgICAgICAgZGVmIGV4Y2VwdF9pdGVyKGV4Yyk6Cisg
ICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHlpZWxkCisKKyAgICAgICAgZm9yIHggaW4g
X3RyeV9leGNlcHRfcGVybWlzc2lvbmVycm9yX2l0ZXIodHJ5X2l0ZXIsIGV4Y2VwdF9pdGVyKToK
KyAgICAgICAgICAgIHlpZWxkIHgKKworCitjbGFzcyBfUmVjdXJzaXZlV2lsZGNhcmRTZWxlY3Rv
cihfU2VsZWN0b3IpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdCwgY2hpbGRfcGFydHMp
OgorICAgICAgICBfU2VsZWN0b3IuX19pbml0X18oc2VsZiwgY2hpbGRfcGFydHMpCisKKyAgICBk
ZWYgX2l0ZXJhdGVfZGlyZWN0b3JpZXMoc2VsZiwgcGFyZW50X3BhdGgsIGlzX2Rpciwgc2NhbmRp
cik6CisgICAgICAgIHlpZWxkIHBhcmVudF9wYXRoCisKKyAgICAgICAgZGVmIHRyeV9pdGVyKCk6
CisgICAgICAgICAgICBlbnRyaWVzID0gbGlzdChzY2FuZGlyKHBhcmVudF9wYXRoKSkKKyAgICAg
ICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgICAgIGVudHJ5X2lzX2Rp
ciA9IEZhbHNlCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBlbnRy
eV9pc19kaXIgPSBlbnRyeS5pc19kaXIoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9y
IGFzIGU6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBfaWdub3JlX2Vycm9yKGUpOgorICAg
ICAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBpZiBlbnRyeV9pc19k
aXIgYW5kIG5vdCBlbnRyeS5pc19zeW1saW5rKCk6CisgICAgICAgICAgICAgICAgICAgIHBhdGgg
PSBwYXJlbnRfcGF0aC5fbWFrZV9jaGlsZF9yZWxwYXRoKGVudHJ5Lm5hbWUpCisgICAgICAgICAg
ICAgICAgICAgIGZvciBwIGluIHNlbGYuX2l0ZXJhdGVfZGlyZWN0b3JpZXMocGF0aCwgaXNfZGly
LCBzY2FuZGlyKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHAKKworICAgICAgICBk
ZWYgZXhjZXB0X2l0ZXIoZXhjKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgeWll
bGQKKworICAgICAgICBmb3IgeCBpbiBfdHJ5X2V4Y2VwdF9wZXJtaXNzaW9uZXJyb3JfaXRlcih0
cnlfaXRlciwgZXhjZXB0X2l0ZXIpOgorICAgICAgICAgICAgeWllbGQgeAorCisgICAgZGVmIF9z
ZWxlY3RfZnJvbShzZWxmLCBwYXJlbnRfcGF0aCwgaXNfZGlyLCBleGlzdHMsIHNjYW5kaXIpOgor
ICAgICAgICBkZWYgdHJ5X2l0ZXIoKToKKyAgICAgICAgICAgIHlpZWxkZWQgPSBzZXQoKQorICAg
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvcl9zZWxlY3QgPSBzZWxmLnN1
Y2Nlc3Nvci5fc2VsZWN0X2Zyb20KKyAgICAgICAgICAgICAgICBmb3Igc3RhcnRpbmdfcG9pbnQg
aW4gc2VsZi5faXRlcmF0ZV9kaXJlY3RvcmllcygKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
cmVudF9wYXRoLCBpc19kaXIsIHNjYW5kaXIpOgorICAgICAgICAgICAgICAgICAgICBmb3IgcCBp
biBzdWNjZXNzb3Jfc2VsZWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0aW5n
X3BvaW50LCBpc19kaXIsIGV4aXN0cywgc2NhbmRpcik6CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiBwIG5vdCBpbiB5aWVsZGVkOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxk
IHAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZGVkLmFkZChwKQorICAgICAgICAg
ICAgZmluYWxseToKKyAgICAgICAgICAgICAgICB5aWVsZGVkLmNsZWFyKCkKKworICAgICAgICBk
ZWYgZXhjZXB0X2l0ZXIoZXhjKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgeWll
bGQKKworICAgICAgICBmb3IgeCBpbiBfdHJ5X2V4Y2VwdF9wZXJtaXNzaW9uZXJyb3JfaXRlcih0
cnlfaXRlciwgZXhjZXB0X2l0ZXIpOgorICAgICAgICAgICAgeWllbGQgeAorCisKKyMKKyMgUHVi
bGljIEFQSQorIworCitjbGFzcyBfUGF0aFBhcmVudHMoU2VxdWVuY2UpOgorCisgICAgIiIiVGhp
cyBvYmplY3QgcHJvdmlkZXMgc2VxdWVuY2UtbGlrZSBhY2Nlc3MgdG8gdGhlIGxvZ2ljYWwgYW5j
ZXN0b3JzCisgICAgb2YgYSBwYXRoLiAgRG9uJ3QgdHJ5IHRvIGNvbnN0cnVjdCBpdCB5b3Vyc2Vs
Zi4iIiIKKyAgICBfX3Nsb3RzX18gPSAoJ19wYXRoY2xzJywgJ19kcnYnLCAnX3Jvb3QnLCAnX3Bh
cnRzJykKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoKToKKyAgICAgICAgIyBXZSBkb24n
dCBzdG9yZSB0aGUgaW5zdGFuY2UgdG8gYXZvaWQgcmVmZXJlbmNlIGN5Y2xlcworICAgICAgICBz
ZWxmLl9wYXRoY2xzID0gdHlwZShwYXRoKQorICAgICAgICBzZWxmLl9kcnYgPSBwYXRoLl9kcnYK
KyAgICAgICAgc2VsZi5fcm9vdCA9IHBhdGguX3Jvb3QKKyAgICAgICAgc2VsZi5fcGFydHMgPSBw
YXRoLl9wYXJ0cworCisgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2Ry
diBvciBzZWxmLl9yb290OgorICAgICAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9wYXJ0cykgLSAx
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gbGVuKHNlbGYuX3BhcnRzKQorCisg
ICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGlkeCk6CisgICAgICAgIGlmIGlkeCA8IDAgb3IgaWR4
ID49IGxlbihzZWxmKToKKyAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoaWR4KQorICAgICAg
ICByZXR1cm4gc2VsZi5fcGF0aGNscy5fZnJvbV9wYXJzZWRfcGFydHMoc2VsZi5fZHJ2LCBzZWxm
Ll9yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcGFydHNbOi1pZHggLSAxXSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuICI8ezB9LnBhcmVudHM+Ii5mb3JtYXQoc2VsZi5fcGF0aGNscy5fX25hbWVfXykK
KworCitjbGFzcyBQdXJlUGF0aChvYmplY3QpOgorCisgICAgIiIiUHVyZVBhdGggcmVwcmVzZW50
cyBhIGZpbGVzeXN0ZW0gcGF0aCBhbmQgb2ZmZXJzIG9wZXJhdGlvbnMgd2hpY2gKKyAgICBkb24n
dCBpbXBseSBhbnkgYWN0dWFsIGZpbGVzeXN0ZW0gSS9PLiAgRGVwZW5kaW5nIG9uIHlvdXIgc3lz
dGVtLAorICAgIGluc3RhbnRpYXRpbmcgYSBQdXJlUGF0aCB3aWxsIHJldHVybiBlaXRoZXIgYSBQ
dXJlUG9zaXhQYXRoIG9yIGEKKyAgICBQdXJlV2luZG93c1BhdGggb2JqZWN0LiAgWW91IGNhbiBh
bHNvIGluc3RhbnRpYXRlIGVpdGhlciBvZiB0aGVzZSBjbGFzc2VzCisgICAgZGlyZWN0bHksIHJl
Z2FyZGxlc3Mgb2YgeW91ciBzeXN0ZW0uCisgICAgIiIiCisgICAgX19zbG90c19fID0gKAorICAg
ICAgICAnX2RydicsICdfcm9vdCcsICdfcGFydHMnLAorICAgICAgICAnX3N0cicsICdfaGFzaCcs
ICdfcHBhcnRzJywgJ19jYWNoZWRfY3BhcnRzJywKKyAgICApCisKKyAgICBkZWYgX19uZXdfXyhj
bHMsICphcmdzKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGEgUHVyZVBhdGggZnJvbSBvbmUgb3Ig
c2V2ZXJhbCBzdHJpbmdzIGFuZCBvciBleGlzdGluZworICAgICAgICBQdXJlUGF0aCBvYmplY3Rz
LiAgVGhlIHN0cmluZ3MgYW5kIHBhdGggb2JqZWN0cyBhcmUgY29tYmluZWQgc28gYXMKKyAgICAg
ICAgdG8geWllbGQgYSBjYW5vbmljYWxpemVkIHBhdGgsIHdoaWNoIGlzIGluY29ycG9yYXRlZCBp
bnRvIHRoZQorICAgICAgICBuZXcgUHVyZVBhdGggb2JqZWN0LgorICAgICAgICAiIiIKKyAgICAg
ICAgaWYgY2xzIGlzIFB1cmVQYXRoOgorICAgICAgICAgICAgY2xzID0gUHVyZVdpbmRvd3NQYXRo
IGlmIG9zLm5hbWUgPT0gJ250JyBlbHNlIFB1cmVQb3NpeFBhdGgKKyAgICAgICAgcmV0dXJuIGNs
cy5fZnJvbV9wYXJ0cyhhcmdzKQorCisgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAg
ICMgVXNpbmcgdGhlIHBhcnRzIHR1cGxlIGhlbHBzIHNoYXJlIGludGVybmVkIHBhdGggcGFydHMK
KyAgICAgICAgIyB3aGVuIHBpY2tsaW5nIHJlbGF0ZWQgcGF0aHMuCisgICAgICAgIHJldHVybiAo
c2VsZi5fX2NsYXNzX18sIHR1cGxlKHNlbGYuX3BhcnRzKSkKKworICAgIEBjbGFzc21ldGhvZAor
ICAgIGRlZiBfcGFyc2VfYXJncyhjbHMsIGFyZ3MpOgorICAgICAgICAjIFRoaXMgaXMgdXNlZnVs
IHdoZW4geW91IGRvbid0IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlLCBqdXN0CisgICAgICAg
ICMgY2Fub25pY2FsaXplIHNvbWUgY29uc3RydWN0b3IgYXJndW1lbnRzLgorICAgICAgICBwYXJ0
cyA9IFtdCisgICAgICAgIGZvciBhIGluIGFyZ3M6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNl
KGEsIFB1cmVQYXRoKToKKyAgICAgICAgICAgICAgICBwYXJ0cyArPSBhLl9wYXJ0cworICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA2
KToKKyAgICAgICAgICAgICAgICAgICAgYSA9IG9zLmZzcGF0aChhKQorICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgZHVjayB0eXBpbmcgZm9yIG9sZGVyIFB5dGhv
biB2ZXJzaW9ucworICAgICAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKGEsICJfX2ZzcGF0aF9f
Iik6CisgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5fX2ZzcGF0aF9fKCkKKyAgICAgICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKGEsIHN0cik6CisgICAgICAgICAgICAgICAgICAgICMgRm9y
Y2UtY2FzdCBzdHIgc3ViY2xhc3NlcyB0byBzdHIgKGlzc3VlICMyMTEyNykKKyAgICAgICAgICAg
ICAgICAgICAgcGFydHMuYXBwZW5kKHN0cihhKSkKKyAgICAgICAgICAgICAgICAjIGFsc28gaGFu
ZGxlIHVuaWNvZGUgZm9yIFBZMiAoc2l4LnRleHRfdHlwZSA9IHVuaWNvZGUpCisgICAgICAgICAg
ICAgICAgZWxpZiBzaXguUFkyIGFuZCBpc2luc3RhbmNlKGEsIHNpeC50ZXh0X3R5cGUpOgorICAg
ICAgICAgICAgICAgICAgICAjIGNhc3QgdG8gc3RyIHVzaW5nIGZpbGVzeXN0ZW0gZW5jb2RpbmcK
KyAgICAgICAgICAgICAgICAgICAgIyBub3RlOiBpbiByYXJlIGNpcmN1bXN0YW5jZXMsIG9uIFB5
dGhvbiA8IDMuMiwKKyAgICAgICAgICAgICAgICAgICAgIyBnZXRmaWxlc3lzdGVtZW5jb2Rpbmcg
Y2FuIHJldHVybiBOb25lLCBpbiB0aGF0CisgICAgICAgICAgICAgICAgICAgICMgY2FzZSBmYWxs
IGJhY2sgdG8gYXNjaWkKKyAgICAgICAgICAgICAgICAgICAgcGFydHMuYXBwZW5kKGEuZW5jb2Rl
KAorICAgICAgICAgICAgICAgICAgICAgICAgc3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZygpIG9y
ICJhc2NpaSIpKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJh
aXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCBzaG91bGQg
YmUgYSBzdHIgb2JqZWN0IG9yIGFuIG9zLlBhdGhMaWtlICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJvYmplY3QgcmV0dXJuaW5nIHN0ciwgbm90ICVyIgorICAgICAgICAgICAgICAgICAgICAg
ICAgJSB0eXBlKGEpKQorICAgICAgICByZXR1cm4gY2xzLl9mbGF2b3VyLnBhcnNlX3BhcnRzKHBh
cnRzKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9mcm9tX3BhcnRzKGNscywgYXJncywg
aW5pdD1UcnVlKToKKyAgICAgICAgIyBXZSBuZWVkIHRvIGNhbGwgX3BhcnNlX2FyZ3Mgb24gdGhl
IGluc3RhbmNlLCBzbyBhcyB0byBnZXQgdGhlCisgICAgICAgICMgcmlnaHQgZmxhdm91ci4KKyAg
ICAgICAgc2VsZiA9IG9iamVjdC5fX25ld19fKGNscykKKyAgICAgICAgZHJ2LCByb290LCBwYXJ0
cyA9IHNlbGYuX3BhcnNlX2FyZ3MoYXJncykKKyAgICAgICAgc2VsZi5fZHJ2ID0gZHJ2CisgICAg
ICAgIHNlbGYuX3Jvb3QgPSByb290CisgICAgICAgIHNlbGYuX3BhcnRzID0gcGFydHMKKyAgICAg
ICAgaWYgaW5pdDoKKyAgICAgICAgICAgIHNlbGYuX2luaXQoKQorICAgICAgICByZXR1cm4gc2Vs
ZgorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9mcm9tX3BhcnNlZF9wYXJ0cyhjbHMsIGRy
diwgcm9vdCwgcGFydHMsIGluaXQ9VHJ1ZSk6CisgICAgICAgIHNlbGYgPSBvYmplY3QuX19uZXdf
XyhjbHMpCisgICAgICAgIHNlbGYuX2RydiA9IGRydgorICAgICAgICBzZWxmLl9yb290ID0gcm9v
dAorICAgICAgICBzZWxmLl9wYXJ0cyA9IHBhcnRzCisgICAgICAgIGlmIGluaXQ6CisgICAgICAg
ICAgICBzZWxmLl9pbml0KCkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBfZm9ybWF0X3BhcnNlZF9wYXJ0cyhjbHMsIGRydiwgcm9vdCwgcGFydHMpOgor
ICAgICAgICBpZiBkcnYgb3Igcm9vdDoKKyAgICAgICAgICAgIHJldHVybiBkcnYgKyByb290ICsg
Y2xzLl9mbGF2b3VyLmpvaW4ocGFydHNbMTpdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
cmV0dXJuIGNscy5fZmxhdm91ci5qb2luKHBhcnRzKQorCisgICAgZGVmIF9pbml0KHNlbGYpOgor
ICAgICAgICAjIE92ZXJyaWRkZW4gaW4gY29uY3JldGUgUGF0aAorICAgICAgICBwYXNzCisKKyAg
ICBkZWYgX21ha2VfY2hpbGQoc2VsZiwgYXJncyk6CisgICAgICAgIGRydiwgcm9vdCwgcGFydHMg
PSBzZWxmLl9wYXJzZV9hcmdzKGFyZ3MpCisgICAgICAgIGRydiwgcm9vdCwgcGFydHMgPSBzZWxm
Ll9mbGF2b3VyLmpvaW5fcGFyc2VkX3BhcnRzKAorICAgICAgICAgICAgc2VsZi5fZHJ2LCBzZWxm
Ll9yb290LCBzZWxmLl9wYXJ0cywgZHJ2LCByb290LCBwYXJ0cykKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2Zyb21fcGFyc2VkX3BhcnRzKGRydiwgcm9vdCwgcGFydHMpCisKKyAgICBkZWYgX19zdHJf
XyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Yg
dGhlIHBhdGgsIHN1aXRhYmxlIGZvcgorICAgICAgICBwYXNzaW5nIHRvIHN5c3RlbSBjYWxscy4i
IiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3N0cgorICAgICAgICBl
eGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBzZWxmLl9zdHIgPSBzZWxmLl9mb3Jt
YXRfcGFyc2VkX3BhcnRzKHNlbGYuX2Rydiwgc2VsZi5fcm9vdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFydHMpIG9yICcuJworICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX3N0cgorCisgICAgZGVmIF9fZnNwYXRoX18oc2VsZik6Cisg
ICAgICAgIHJldHVybiBzdHIoc2VsZikKKworICAgIGRlZiBhc19wb3NpeChzZWxmKToKKyAgICAg
ICAgIiIiUmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBhdGggd2l0aCBm
b3J3YXJkICgvKQorICAgICAgICBzbGFzaGVzLiIiIgorICAgICAgICBmID0gc2VsZi5fZmxhdm91
cgorICAgICAgICByZXR1cm4gc3RyKHNlbGYpLnJlcGxhY2UoZi5zZXAsICcvJykKKworICAgIGRl
ZiBfX2J5dGVzX18oc2VsZik6CisgICAgICAgICIiIlJldHVybiB0aGUgYnl0ZXMgcmVwcmVzZW50
YXRpb24gb2YgdGhlIHBhdGguICBUaGlzIGlzIG9ubHkKKyAgICAgICAgcmVjb21tZW5kZWQgdG8g
dXNlIHVuZGVyIFVuaXguIiIiCisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMik6
CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJuZWVkcyBQeXRob24gMy4y
IG9yIGxhdGVyIikKKyAgICAgICAgcmV0dXJuIG9zLmZzZW5jb2RlKHN0cihzZWxmKSkKKworICAg
IGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICJ7MH0oezEhcn0pIi5mb3JtYXQo
c2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYuYXNfcG9zaXgoKSkKKworICAgIGRlZiBhc191
cmkoc2VsZik6CisgICAgICAgICIiIlJldHVybiB0aGUgcGF0aCBhcyBhICdmaWxlJyBVUkkuIiIi
CisgICAgICAgIGlmIG5vdCBzZWxmLmlzX2Fic29sdXRlKCk6CisgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJyZWxhdGl2ZSBwYXRoIGNhbid0IGJlIGV4cHJlc3NlZCBhcyBhIGZpbGUgVVJJ
IikKKyAgICAgICAgcmV0dXJuIHNlbGYuX2ZsYXZvdXIubWFrZV91cmkoc2VsZikKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBfY3BhcnRzKHNlbGYpOgorICAgICAgICAjIENhY2hlZCBjYXNlZm9s
ZGVkIHBhcnRzLCBmb3IgaGFzaGluZyBhbmQgY29tcGFyaXNvbgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVkX2NwYXJ0cworICAgICAgICBleGNlcHQgQXR0cmli
dXRlRXJyb3I6CisgICAgICAgICAgICBzZWxmLl9jYWNoZWRfY3BhcnRzID0gc2VsZi5fZmxhdm91
ci5jYXNlZm9sZF9wYXJ0cyhzZWxmLl9wYXJ0cykKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9j
YWNoZWRfY3BhcnRzCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYg
bm90IGlzaW5zdGFuY2Uob3RoZXIsIFB1cmVQYXRoKToKKyAgICAgICAgICAgIHJldHVybiBOb3RJ
bXBsZW1lbnRlZAorICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgc2VsZi5fY3BhcnRzID09
IG90aGVyLl9jcGFydHMKKyAgICAgICAgICAgIGFuZCBzZWxmLl9mbGF2b3VyIGlzIG90aGVyLl9m
bGF2b3VyKQorCisgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBu
b3Qgc2VsZiA9PSBvdGhlcgorCisgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICB0cnk6
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5faGFzaAorICAgICAgICBleGNlcHQgQXR0cmlidXRl
RXJyb3I6CisgICAgICAgICAgICBzZWxmLl9oYXNoID0gaGFzaCh0dXBsZShzZWxmLl9jcGFydHMp
KQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2hhc2gKKworICAgIGRlZiBfX2x0X18oc2VsZiwg
b3RoZXIpOgorICAgICAgICBpZiAobm90IGlzaW5zdGFuY2Uob3RoZXIsIFB1cmVQYXRoKQorICAg
ICAgICAgICAgICAgIG9yIHNlbGYuX2ZsYXZvdXIgaXMgbm90IG90aGVyLl9mbGF2b3VyKToKKyAg
ICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgICAgICByZXR1cm4gc2VsZi5fY3Bh
cnRzIDwgb3RoZXIuX2NwYXJ0cworCisgICAgZGVmIF9fbGVfXyhzZWxmLCBvdGhlcik6CisgICAg
ICAgIGlmIChub3QgaXNpbnN0YW5jZShvdGhlciwgUHVyZVBhdGgpCisgICAgICAgICAgICAgICAg
b3Igc2VsZi5fZmxhdm91ciBpcyBub3Qgb3RoZXIuX2ZsYXZvdXIpOgorICAgICAgICAgICAgcmV0
dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgIHJldHVybiBzZWxmLl9jcGFydHMgPD0gb3RoZXIu
X2NwYXJ0cworCisgICAgZGVmIF9fZ3RfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIGlmIChub3Qg
aXNpbnN0YW5jZShvdGhlciwgUHVyZVBhdGgpCisgICAgICAgICAgICAgICAgb3Igc2VsZi5fZmxh
dm91ciBpcyBub3Qgb3RoZXIuX2ZsYXZvdXIpOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxl
bWVudGVkCisgICAgICAgIHJldHVybiBzZWxmLl9jcGFydHMgPiBvdGhlci5fY3BhcnRzCisKKyAg
ICBkZWYgX19nZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgKG5vdCBpc2luc3RhbmNlKG90
aGVyLCBQdXJlUGF0aCkKKyAgICAgICAgICAgICAgICBvciBzZWxmLl9mbGF2b3VyIGlzIG5vdCBv
dGhlci5fZmxhdm91cik6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2NwYXJ0cyA+PSBvdGhlci5fY3BhcnRzCisKKyAgICBkcml2ZSA9IHBy
b3BlcnR5KGF0dHJnZXR0ZXIoJ19kcnYnKSwKKyAgICAgICAgICAgICAgICAgICAgIGRvYz0iIiJU
aGUgZHJpdmUgcHJlZml4IChsZXR0ZXIgb3IgVU5DIHBhdGgpLCBpZiBhbnkuIiIiKQorCisgICAg
cm9vdCA9IHByb3BlcnR5KGF0dHJnZXR0ZXIoJ19yb290JyksCisgICAgICAgICAgICAgICAgICAg
IGRvYz0iIiJUaGUgcm9vdCBvZiB0aGUgcGF0aCwgaWYgYW55LiIiIikKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBhbmNob3Ioc2VsZik6CisgICAgICAgICIiIlRoZSBjb25jYXRlbmF0aW9uIG9m
IHRoZSBkcml2ZSBhbmQgcm9vdCwgb3IgJycuIiIiCisgICAgICAgIGFuY2hvciA9IHNlbGYuX2Ry
diArIHNlbGYuX3Jvb3QKKyAgICAgICAgcmV0dXJuIGFuY2hvcgorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgICIiIlRoZSBmaW5hbCBwYXRoIGNvbXBvbmVudCwg
aWYgYW55LiIiIgorICAgICAgICBwYXJ0cyA9IHNlbGYuX3BhcnRzCisgICAgICAgIGlmIGxlbihw
YXJ0cykgPT0gKDEgaWYgKHNlbGYuX2RydiBvciBzZWxmLl9yb290KSBlbHNlIDApOgorICAgICAg
ICAgICAgcmV0dXJuICcnCisgICAgICAgIHJldHVybiBwYXJ0c1stMV0KKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBzdWZmaXgoc2VsZik6CisgICAgICAgICIiIlRoZSBmaW5hbCBjb21wb25lbnQn
cyBsYXN0IHN1ZmZpeCwgaWYgYW55LiIiIgorICAgICAgICBuYW1lID0gc2VsZi5uYW1lCisgICAg
ICAgIGkgPSBuYW1lLnJmaW5kKCcuJykKKyAgICAgICAgaWYgMCA8IGkgPCBsZW4obmFtZSkgLSAx
OgorICAgICAgICAgICAgcmV0dXJuIG5hbWVbaTpdCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByZXR1cm4gJycKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzdWZmaXhlcyhzZWxmKToKKyAg
ICAgICAgIiIiQSBsaXN0IG9mIHRoZSBmaW5hbCBjb21wb25lbnQncyBzdWZmaXhlcywgaWYgYW55
LiIiIgorICAgICAgICBuYW1lID0gc2VsZi5uYW1lCisgICAgICAgIGlmIG5hbWUuZW5kc3dpdGgo
Jy4nKToKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBuYW1lID0gbmFtZS5sc3RyaXAo
Jy4nKQorICAgICAgICByZXR1cm4gWycuJyArIHN1ZmZpeCBmb3Igc3VmZml4IGluIG5hbWUuc3Bs
aXQoJy4nKVsxOl1dCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc3RlbShzZWxmKToKKyAgICAg
ICAgIiIiVGhlIGZpbmFsIHBhdGggY29tcG9uZW50LCBtaW51cyBpdHMgbGFzdCBzdWZmaXguIiIi
CisgICAgICAgIG5hbWUgPSBzZWxmLm5hbWUKKyAgICAgICAgaSA9IG5hbWUucmZpbmQoJy4nKQor
ICAgICAgICBpZiAwIDwgaSA8IGxlbihuYW1lKSAtIDE6CisgICAgICAgICAgICByZXR1cm4gbmFt
ZVs6aV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBuYW1lCisKKyAgICBkZWYg
d2l0aF9uYW1lKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiJSZXR1cm4gYSBuZXcgcGF0aCB3aXRo
IHRoZSBmaWxlIG5hbWUgY2hhbmdlZC4iIiIKKyAgICAgICAgaWYgbm90IHNlbGYubmFtZToKKyAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIiVyIGhhcyBhbiBlbXB0eSBuYW1lIiAlIChzZWxm
LCkpCisgICAgICAgIGRydiwgcm9vdCwgcGFydHMgPSBzZWxmLl9mbGF2b3VyLnBhcnNlX3BhcnRz
KChuYW1lLCkpCisgICAgICAgIGlmIChub3QgbmFtZSBvciBuYW1lWy0xXSBpbiBbc2VsZi5fZmxh
dm91ci5zZXAsIHNlbGYuX2ZsYXZvdXIuYWx0c2VwXQorICAgICAgICAgICAgICAgIG9yIGRydiBv
ciByb290IG9yIGxlbihwYXJ0cykgIT0gMSk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJJbnZhbGlkIG5hbWUgJXIiICUgKG5hbWUpKQorICAgICAgICByZXR1cm4gc2VsZi5fZnJvbV9w
YXJzZWRfcGFydHMoc2VsZi5fZHJ2LCBzZWxmLl9yb290LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fcGFydHNbOi0xXSArIFtuYW1lXSkKKworICAgIGRlZiB3
aXRoX3N1ZmZpeChzZWxmLCBzdWZmaXgpOgorICAgICAgICAiIiJSZXR1cm4gYSBuZXcgcGF0aCB3
aXRoIHRoZSBmaWxlIHN1ZmZpeCBjaGFuZ2VkLiAgSWYgdGhlIHBhdGgKKyAgICAgICAgaGFzIG5v
IHN1ZmZpeCwgYWRkIGdpdmVuIHN1ZmZpeC4gIElmIHRoZSBnaXZlbiBzdWZmaXggaXMgYW4gZW1w
dHkKKyAgICAgICAgc3RyaW5nLCByZW1vdmUgdGhlIHN1ZmZpeCBmcm9tIHRoZSBwYXRoLgorICAg
ICAgICAiIiIKKyAgICAgICAgIyBYWFggaWYgc3VmZml4IGlzIE5vbmUsIHNob3VsZCB0aGUgY3Vy
cmVudCBzdWZmaXggYmUgcmVtb3ZlZD8KKyAgICAgICAgZiA9IHNlbGYuX2ZsYXZvdXIKKyAgICAg
ICAgaWYgZi5zZXAgaW4gc3VmZml4IG9yIGYuYWx0c2VwIGFuZCBmLmFsdHNlcCBpbiBzdWZmaXg6
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIHN1ZmZpeCAlciIgJSAoc3Vm
Zml4KSkKKyAgICAgICAgaWYgc3VmZml4IGFuZCBub3Qgc3VmZml4LnN0YXJ0c3dpdGgoJy4nKSBv
ciBzdWZmaXggPT0gJy4nOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSW52YWxpZCBz
dWZmaXggJXIiICUgKHN1ZmZpeCkpCisgICAgICAgIG5hbWUgPSBzZWxmLm5hbWUKKyAgICAgICAg
aWYgbm90IG5hbWU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIlciBoYXMgYW4gZW1w
dHkgbmFtZSIgJSAoc2VsZiwpKQorICAgICAgICBvbGRfc3VmZml4ID0gc2VsZi5zdWZmaXgKKyAg
ICAgICAgaWYgbm90IG9sZF9zdWZmaXg6CisgICAgICAgICAgICBuYW1lID0gbmFtZSArIHN1ZmZp
eAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmFtZSA9IG5hbWVbOi1sZW4ob2xkX3N1ZmZp
eCldICsgc3VmZml4CisgICAgICAgIHJldHVybiBzZWxmLl9mcm9tX3BhcnNlZF9wYXJ0cyhzZWxm
Ll9kcnYsIHNlbGYuX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9wYXJ0c1s6LTFdICsgW25hbWVdKQorCisgICAgZGVmIHJlbGF0aXZlX3RvKHNlbGYs
ICpvdGhlcik6CisgICAgICAgICIiIlJldHVybiB0aGUgcmVsYXRpdmUgcGF0aCB0byBhbm90aGVy
IHBhdGggaWRlbnRpZmllZCBieSB0aGUgcGFzc2VkCisgICAgICAgIGFyZ3VtZW50cy4gIElmIHRo
ZSBvcGVyYXRpb24gaXMgbm90IHBvc3NpYmxlIChiZWNhdXNlIHRoaXMgaXMgbm90CisgICAgICAg
IGEgc3VicGF0aCBvZiB0aGUgb3RoZXIgcGF0aCksIHJhaXNlIFZhbHVlRXJyb3IuCisgICAgICAg
ICIiIgorICAgICAgICAjIEZvciB0aGUgcHVycG9zZSBvZiB0aGlzIG1ldGhvZCwgZHJpdmUgYW5k
IHJvb3QgYXJlIGNvbnNpZGVyZWQKKyAgICAgICAgIyBzZXBhcmF0ZSBwYXJ0cywgaS5lLjoKKyAg
ICAgICAgIyAgIFBhdGgoJ2M6LycpLnJlbGF0aXZlX3RvKCdjOicpICBnaXZlcyBQYXRoKCcvJykK
KyAgICAgICAgIyAgIFBhdGgoJ2M6LycpLnJlbGF0aXZlX3RvKCcvJykgICByYWlzZSBWYWx1ZUVy
cm9yCisgICAgICAgIGlmIG5vdCBvdGhlcjoKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigi
bmVlZCBhdCBsZWFzdCBvbmUgYXJndW1lbnQiKQorICAgICAgICBwYXJ0cyA9IHNlbGYuX3BhcnRz
CisgICAgICAgIGRydiA9IHNlbGYuX2RydgorICAgICAgICByb290ID0gc2VsZi5fcm9vdAorICAg
ICAgICBpZiByb290OgorICAgICAgICAgICAgYWJzX3BhcnRzID0gW2Rydiwgcm9vdF0gKyBwYXJ0
c1sxOl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFic19wYXJ0cyA9IHBhcnRzCisgICAg
ICAgIHRvX2RydiwgdG9fcm9vdCwgdG9fcGFydHMgPSBzZWxmLl9wYXJzZV9hcmdzKG90aGVyKQor
ICAgICAgICBpZiB0b19yb290OgorICAgICAgICAgICAgdG9fYWJzX3BhcnRzID0gW3RvX2Rydiwg
dG9fcm9vdF0gKyB0b19wYXJ0c1sxOl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRvX2Fi
c19wYXJ0cyA9IHRvX3BhcnRzCisgICAgICAgIG4gPSBsZW4odG9fYWJzX3BhcnRzKQorICAgICAg
ICBjZiA9IHNlbGYuX2ZsYXZvdXIuY2FzZWZvbGRfcGFydHMKKyAgICAgICAgaWYgKHJvb3Qgb3Ig
ZHJ2KSBpZiBuID09IDAgZWxzZSBjZihhYnNfcGFydHNbOm5dKSAhPSBjZih0b19hYnNfcGFydHMp
OgorICAgICAgICAgICAgZm9ybWF0dGVkID0gc2VsZi5fZm9ybWF0X3BhcnNlZF9wYXJ0cyh0b19k
cnYsIHRvX3Jvb3QsIHRvX3BhcnRzKQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiezAh
cn0gZG9lcyBub3Qgc3RhcnQgd2l0aCB7MSFyfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLmZvcm1hdChzdHIoc2VsZiksIHN0cihmb3JtYXR0ZWQpKSkKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2Zyb21fcGFyc2VkX3BhcnRzKCcnLCByb290IGlmIG4gPT0gMSBlbHNlICcnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzX3BhcnRzW246XSkKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBwYXJ0cyhzZWxmKToKKyAgICAgICAgIiIiQW4gb2JqZWN0IHByb3Zp
ZGluZyBzZXF1ZW5jZS1saWtlIGFjY2VzcyB0byB0aGUKKyAgICAgICAgY29tcG9uZW50cyBpbiB0
aGUgZmlsZXN5c3RlbSBwYXRoLiIiIgorICAgICAgICAjIFdlIGNhY2hlIHRoZSB0dXBsZSB0byBh
dm9pZCBidWlsZGluZyBhIG5ldyBvbmUgZWFjaCB0aW1lIC5wYXJ0cworICAgICAgICAjIGlzIGFj
Y2Vzc2VkLiAgWFhYIGlzIHRoaXMgbmVjZXNzYXJ5PworICAgICAgICB0cnk6CisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fcHBhcnRzCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAg
ICAgICAgICAgIHNlbGYuX3BwYXJ0cyA9IHR1cGxlKHNlbGYuX3BhcnRzKQorICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX3BwYXJ0cworCisgICAgZGVmIGpvaW5wYXRoKHNlbGYsICphcmdzKToKKyAg
ICAgICAgIiIiQ29tYmluZSB0aGlzIHBhdGggd2l0aCBvbmUgb3Igc2V2ZXJhbCBhcmd1bWVudHMs
IGFuZCByZXR1cm4gYQorICAgICAgICBuZXcgcGF0aCByZXByZXNlbnRpbmcgZWl0aGVyIGEgc3Vi
cGF0aCAoaWYgYWxsIGFyZ3VtZW50cyBhcmUgcmVsYXRpdmUKKyAgICAgICAgcGF0aHMpIG9yIGEg
dG90YWxseSBkaWZmZXJlbnQgcGF0aCAoaWYgb25lIG9mIHRoZSBhcmd1bWVudHMgaXMKKyAgICAg
ICAgYW5jaG9yZWQpLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX21ha2VfY2hp
bGQoYXJncykKKworICAgIGRlZiBfX3RydWVkaXZfXyhzZWxmLCBrZXkpOgorICAgICAgICByZXR1
cm4gc2VsZi5fbWFrZV9jaGlsZCgoa2V5LCkpCisKKyAgICBkZWYgX19ydHJ1ZWRpdl9fKHNlbGYs
IGtleSk6CisgICAgICAgIHJldHVybiBzZWxmLl9mcm9tX3BhcnRzKFtrZXldICsgc2VsZi5fcGFy
dHMpCisKKyAgICBpZiBzaXguUFkyOgorICAgICAgICBfX2Rpdl9fID0gX190cnVlZGl2X18KKyAg
ICAgICAgX19yZGl2X18gPSBfX3J0cnVlZGl2X18KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBw
YXJlbnQoc2VsZik6CisgICAgICAgICIiIlRoZSBsb2dpY2FsIHBhcmVudCBvZiB0aGUgcGF0aC4i
IiIKKyAgICAgICAgZHJ2ID0gc2VsZi5fZHJ2CisgICAgICAgIHJvb3QgPSBzZWxmLl9yb290Cisg
ICAgICAgIHBhcnRzID0gc2VsZi5fcGFydHMKKyAgICAgICAgaWYgbGVuKHBhcnRzKSA9PSAxIGFu
ZCAoZHJ2IG9yIHJvb3QpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2Zyb21fcGFyc2VkX3BhcnRzKGRydiwgcm9vdCwgcGFydHNbOi0xXSkKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBwYXJlbnRzKHNlbGYpOgorICAgICAgICAiIiJBIHNlcXVlbmNlIG9m
IHRoaXMgcGF0aCdzIGxvZ2ljYWwgcGFyZW50cy4iIiIKKyAgICAgICAgcmV0dXJuIF9QYXRoUGFy
ZW50cyhzZWxmKQorCisgICAgZGVmIGlzX2Fic29sdXRlKHNlbGYpOgorICAgICAgICAiIiJUcnVl
IGlmIHRoZSBwYXRoIGlzIGFic29sdXRlIChoYXMgYm90aCBhIHJvb3QgYW5kLCBpZiBhcHBsaWNh
YmxlLAorICAgICAgICBhIGRyaXZlKS4iIiIKKyAgICAgICAgaWYgbm90IHNlbGYuX3Jvb3Q6Cisg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9mbGF2b3Vy
Lmhhc19kcnYgb3IgYm9vbChzZWxmLl9kcnYpCisKKyAgICBkZWYgaXNfcmVzZXJ2ZWQoc2VsZik6
CisgICAgICAgICIiIlJldHVybiBUcnVlIGlmIHRoZSBwYXRoIGNvbnRhaW5zIG9uZSBvZiB0aGUg
c3BlY2lhbCBuYW1lcyByZXNlcnZlZAorICAgICAgICBieSB0aGUgc3lzdGVtLCBpZiBhbnkuIiIi
CisgICAgICAgIHJldHVybiBzZWxmLl9mbGF2b3VyLmlzX3Jlc2VydmVkKHNlbGYuX3BhcnRzKQor
CisgICAgZGVmIG1hdGNoKHNlbGYsIHBhdGhfcGF0dGVybik6CisgICAgICAgICIiIgorICAgICAg
ICBSZXR1cm4gVHJ1ZSBpZiB0aGlzIHBhdGggbWF0Y2hlcyB0aGUgZ2l2ZW4gcGF0dGVybi4KKyAg
ICAgICAgIiIiCisgICAgICAgIGNmID0gc2VsZi5fZmxhdm91ci5jYXNlZm9sZAorICAgICAgICBw
YXRoX3BhdHRlcm4gPSBjZihwYXRoX3BhdHRlcm4pCisgICAgICAgIGRydiwgcm9vdCwgcGF0X3Bh
cnRzID0gc2VsZi5fZmxhdm91ci5wYXJzZV9wYXJ0cygocGF0aF9wYXR0ZXJuLCkpCisgICAgICAg
IGlmIG5vdCBwYXRfcGFydHM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJlbXB0eSBw
YXR0ZXJuIikKKyAgICAgICAgaWYgZHJ2IGFuZCBkcnYgIT0gY2Yoc2VsZi5fZHJ2KToKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiByb290IGFuZCByb290ICE9IGNmKHNlbGYu
X3Jvb3QpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHBhcnRzID0gc2VsZi5f
Y3BhcnRzCisgICAgICAgIGlmIGRydiBvciByb290OgorICAgICAgICAgICAgaWYgbGVuKHBhdF9w
YXJ0cykgIT0gbGVuKHBhcnRzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAg
ICAgICAgIHBhdF9wYXJ0cyA9IHBhdF9wYXJ0c1sxOl0KKyAgICAgICAgZWxpZiBsZW4ocGF0X3Bh
cnRzKSA+IGxlbihwYXJ0cyk6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgZm9y
IHBhcnQsIHBhdCBpbiB6aXAocmV2ZXJzZWQocGFydHMpLCByZXZlcnNlZChwYXRfcGFydHMpKToK
KyAgICAgICAgICAgIGlmIG5vdCBmbm1hdGNoLmZubWF0Y2hjYXNlKHBhcnQsIHBhdCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKKworIyBDYW4n
dCBzdWJjbGFzcyBvcy5QYXRoTGlrZSBmcm9tIFB1cmVQYXRoIGFuZCBrZWVwIHRoZSBjb25zdHJ1
Y3RvcgorIyBvcHRpbWl6YXRpb25zIGluIFB1cmVQYXRoLl9wYXJzZV9hcmdzKCkuCitpZiBzeXMu
dmVyc2lvbl9pbmZvID49ICgzLCA2KToKKyAgICBvcy5QYXRoTGlrZS5yZWdpc3RlcihQdXJlUGF0
aCkKKworCitjbGFzcyBQdXJlUG9zaXhQYXRoKFB1cmVQYXRoKToKKyAgICBfZmxhdm91ciA9IF9w
b3NpeF9mbGF2b3VyCisgICAgX19zbG90c19fID0gKCkKKworCitjbGFzcyBQdXJlV2luZG93c1Bh
dGgoUHVyZVBhdGgpOgorICAgICIiIlB1cmVQYXRoIHN1YmNsYXNzIGZvciBXaW5kb3dzIHN5c3Rl
bXMuCisKKyAgICBPbiBhIFdpbmRvd3Mgc3lzdGVtLCBpbnN0YW50aWF0aW5nIGEgUHVyZVBhdGgg
c2hvdWxkIHJldHVybiB0aGlzIG9iamVjdC4KKyAgICBIb3dldmVyLCB5b3UgY2FuIGFsc28gaW5z
dGFudGlhdGUgaXQgZGlyZWN0bHkgb24gYW55IHN5c3RlbS4KKyAgICAiIiIKKyAgICBfZmxhdm91
ciA9IF93aW5kb3dzX2ZsYXZvdXIKKyAgICBfX3Nsb3RzX18gPSAoKQorCisKKyMgRmlsZXN5c3Rl
bS1hY2Nlc3NpbmcgY2xhc3NlcworCisKK2NsYXNzIFBhdGgoUHVyZVBhdGgpOgorICAgICIiIlB1
cmVQYXRoIHN1YmNsYXNzIHRoYXQgY2FuIG1ha2Ugc3lzdGVtIGNhbGxzLgorCisgICAgUGF0aCBy
ZXByZXNlbnRzIGEgZmlsZXN5c3RlbSBwYXRoIGJ1dCB1bmxpa2UgUHVyZVBhdGgsIGFsc28gb2Zm
ZXJzCisgICAgbWV0aG9kcyB0byBkbyBzeXN0ZW0gY2FsbHMgb24gcGF0aCBvYmplY3RzLiBEZXBl
bmRpbmcgb24geW91ciBzeXN0ZW0sCisgICAgaW5zdGFudGlhdGluZyBhIFBhdGggd2lsbCByZXR1
cm4gZWl0aGVyIGEgUG9zaXhQYXRoIG9yIGEgV2luZG93c1BhdGgKKyAgICBvYmplY3QuIFlvdSBj
YW4gYWxzbyBpbnN0YW50aWF0ZSBhIFBvc2l4UGF0aCBvciBXaW5kb3dzUGF0aCBkaXJlY3RseSwK
KyAgICBidXQgY2Fubm90IGluc3RhbnRpYXRlIGEgV2luZG93c1BhdGggb24gYSBQT1NJWCBzeXN0
ZW0gb3IgdmljZSB2ZXJzYS4KKyAgICAiIiIKKyAgICBfX3Nsb3RzX18gPSAoCisgICAgICAgICdf
YWNjZXNzb3InLAorICAgICAgICAnX2Nsb3NlZCcsCisgICAgKQorCisgICAgZGVmIF9fbmV3X18o
Y2xzLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBpZiBjbHMgaXMgUGF0aDoKKyAgICAgICAg
ICAgIGNscyA9IFdpbmRvd3NQYXRoIGlmIG9zLm5hbWUgPT0gJ250JyBlbHNlIFBvc2l4UGF0aAor
ICAgICAgICBzZWxmID0gY2xzLl9mcm9tX3BhcnRzKGFyZ3MsIGluaXQ9RmFsc2UpCisgICAgICAg
IGlmIG5vdCBzZWxmLl9mbGF2b3VyLmlzX3N1cHBvcnRlZDoKKyAgICAgICAgICAgIHJhaXNlIE5v
dEltcGxlbWVudGVkRXJyb3IoImNhbm5vdCBpbnN0YW50aWF0ZSAlciBvbiB5b3VyIHN5c3RlbSIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoY2xzLl9fbmFtZV9fLCkp
CisgICAgICAgIHNlbGYuX2luaXQoKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9p
bml0KHNlbGYsCisgICAgICAgICAgICAgICMgUHJpdmF0ZSBub24tY29uc3RydWN0b3IgYXJndW1l
bnRzCisgICAgICAgICAgICAgIHRlbXBsYXRlPU5vbmUsCisgICAgICAgICAgICAgICk6CisgICAg
ICAgIHNlbGYuX2Nsb3NlZCA9IEZhbHNlCisgICAgICAgIGlmIHRlbXBsYXRlIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgc2VsZi5fYWNjZXNzb3IgPSB0ZW1wbGF0ZS5fYWNjZXNzb3IKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX2FjY2Vzc29yID0gX25vcm1hbF9hY2Nlc3Nvcgor
CisgICAgZGVmIF9tYWtlX2NoaWxkX3JlbHBhdGgoc2VsZiwgcGFydCk6CisgICAgICAgICMgVGhp
cyBpcyBhbiBvcHRpbWl6YXRpb24gdXNlZCBmb3IgZGlyIHdhbGtpbmcuICBgcGFydGAgbXVzdCBi
ZQorICAgICAgICAjIGEgc2luZ2xlIHBhcnQgcmVsYXRpdmUgdG8gdGhpcyBwYXRoLgorICAgICAg
ICBwYXJ0cyA9IHNlbGYuX3BhcnRzICsgW3BhcnRdCisgICAgICAgIHJldHVybiBzZWxmLl9mcm9t
X3BhcnNlZF9wYXJ0cyhzZWxmLl9kcnYsIHNlbGYuX3Jvb3QsIHBhcnRzKQorCisgICAgZGVmIF9f
ZW50ZXJfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fY2xvc2VkOgorICAgICAgICAgICAgc2Vs
Zi5fcmFpc2VfY2xvc2VkKCkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2V4aXRf
XyhzZWxmLCB0LCB2LCB0Yik6CisgICAgICAgIHNlbGYuX2Nsb3NlZCA9IFRydWUKKworICAgIGRl
ZiBfcmFpc2VfY2xvc2VkKHNlbGYpOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJL08gb3Bl
cmF0aW9uIG9uIGNsb3NlZCBwYXRoIikKKworICAgIGRlZiBfb3BlbmVyKHNlbGYsIG5hbWUsIGZs
YWdzLCBtb2RlPTBvNjY2KToKKyAgICAgICAgIyBBIHN0dWIgZm9yIHRoZSBvcGVuZXIgYXJndW1l
bnQgdG8gYnVpbHQtaW4gb3BlbigpCisgICAgICAgIHJldHVybiBzZWxmLl9hY2Nlc3Nvci5vcGVu
KHNlbGYsIGZsYWdzLCBtb2RlKQorCisgICAgZGVmIF9yYXdfb3BlbihzZWxmLCBmbGFncywgbW9k
ZT0wbzc3Nyk6CisgICAgICAgICIiIgorICAgICAgICBPcGVuIHRoZSBmaWxlIHBvaW50ZWQgYnkg
dGhpcyBwYXRoIGFuZCByZXR1cm4gYSBmaWxlIGRlc2NyaXB0b3IsCisgICAgICAgIGFzIG9zLm9w
ZW4oKSBkb2VzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fY2xvc2VkOgorICAgICAg
ICAgICAgc2VsZi5fcmFpc2VfY2xvc2VkKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FjY2Vzc29y
Lm9wZW4oc2VsZiwgZmxhZ3MsIG1vZGUpCisKKyAgICAjIFB1YmxpYyBBUEkKKworICAgIEBjbGFz
c21ldGhvZAorICAgIGRlZiBjd2QoY2xzKToKKyAgICAgICAgIiIiUmV0dXJuIGEgbmV3IHBhdGgg
cG9pbnRpbmcgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkKKyAgICAgICAgKGFzIHJl
dHVybmVkIGJ5IG9zLmdldGN3ZCgpKS4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBjbHMo
b3MuZ2V0Y3dkKCkpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaG9tZShjbHMpOgorICAg
ICAgICAiIiJSZXR1cm4gYSBuZXcgcGF0aCBwb2ludGluZyB0byB0aGUgdXNlcidzIGhvbWUgZGly
ZWN0b3J5IChhcworICAgICAgICByZXR1cm5lZCBieSBvcy5wYXRoLmV4cGFuZHVzZXIoJ34nKSku
CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gY2xzKGNscygpLl9mbGF2b3VyLmdldGhvbWVk
aXIoTm9uZSkpCisKKyAgICBkZWYgc2FtZWZpbGUoc2VsZiwgb3RoZXJfcGF0aCk6CisgICAgICAg
ICIiIlJldHVybiB3aGV0aGVyIG90aGVyX3BhdGggaXMgdGhlIHNhbWUgb3Igbm90IGFzIHRoaXMg
ZmlsZQorICAgICAgICAoYXMgcmV0dXJuZWQgYnkgb3MucGF0aC5zYW1lZmlsZSgpKS4KKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIGhhc2F0dHIob3MucGF0aCwgInNhbWVzdGF0Iik6CisgICAgICAg
ICAgICBzdCA9IHNlbGYuc3RhdCgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
b3RoZXJfc3QgPSBvdGhlcl9wYXRoLnN0YXQoKQorICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0
ZUVycm9yOgorICAgICAgICAgICAgICAgIG90aGVyX3N0ID0gb3Muc3RhdChvdGhlcl9wYXRoKQor
ICAgICAgICAgICAgcmV0dXJuIG9zLnBhdGguc2FtZXN0YXQoc3QsIG90aGVyX3N0KQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgZmlsZW5hbWUxID0gc2l4LnRleHRfdHlwZShzZWxmKQorICAg
ICAgICAgICAgZmlsZW5hbWUyID0gc2l4LnRleHRfdHlwZShvdGhlcl9wYXRoKQorICAgICAgICAg
ICAgc3QxID0gX3dpbjMyX2dldF91bmlxdWVfcGF0aF9pZChmaWxlbmFtZTEpCisgICAgICAgICAg
ICBzdDIgPSBfd2luMzJfZ2V0X3VuaXF1ZV9wYXRoX2lkKGZpbGVuYW1lMikKKyAgICAgICAgICAg
IHJldHVybiBzdDEgPT0gc3QyCisKKyAgICBkZWYgaXRlcmRpcihzZWxmKToKKyAgICAgICAgIiIi
SXRlcmF0ZSBvdmVyIHRoZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4gIERvZXMgbm90IHlpZWxk
IGFueQorICAgICAgICByZXN1bHQgZm9yIHRoZSBzcGVjaWFsIHBhdGhzICcuJyBhbmQgJy4uJy4K
KyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYu
X3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIGZvciBuYW1lIGluIHNlbGYuX2FjY2Vzc29yLmxpc3Rk
aXIoc2VsZik6CisgICAgICAgICAgICBpZiBuYW1lIGluICgnLicsICcuLicpOgorICAgICAgICAg
ICAgICAgICMgWWllbGRpbmcgYSBwYXRoIG9iamVjdCBmb3IgdGhlc2UgbWFrZXMgbGl0dGxlIHNl
bnNlCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHlpZWxkIHNlbGYuX21h
a2VfY2hpbGRfcmVscGF0aChuYW1lKQorICAgICAgICAgICAgaWYgc2VsZi5fY2xvc2VkOgorICAg
ICAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3NlZCgpCisKKyAgICBkZWYgZ2xvYihzZWxmLCBw
YXR0ZXJuKToKKyAgICAgICAgIiIiSXRlcmF0ZSBvdmVyIHRoaXMgc3VidHJlZSBhbmQgeWllbGQg
YWxsIGV4aXN0aW5nIGZpbGVzIChvZiBhbnkKKyAgICAgICAga2luZCwgaW5jbHVkaW5nIGRpcmVj
dG9yaWVzKSBtYXRjaGluZyB0aGUgZ2l2ZW4gcmVsYXRpdmUgcGF0dGVybi4KKyAgICAgICAgIiIi
CisgICAgICAgIGlmIG5vdCBwYXR0ZXJuOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
VW5hY2NlcHRhYmxlIHBhdHRlcm46IHswIXJ9Ii5mb3JtYXQocGF0dGVybikpCisgICAgICAgIHBh
dHRlcm4gPSBzZWxmLl9mbGF2b3VyLmNhc2Vmb2xkKHBhdHRlcm4pCisgICAgICAgIGRydiwgcm9v
dCwgcGF0dGVybl9wYXJ0cyA9IHNlbGYuX2ZsYXZvdXIucGFyc2VfcGFydHMoKHBhdHRlcm4sKSkK
KyAgICAgICAgaWYgZHJ2IG9yIHJvb3Q6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl
ZEVycm9yKCJOb24tcmVsYXRpdmUgcGF0dGVybnMgYXJlIHVuc3VwcG9ydGVkIikKKyAgICAgICAg
c2VsZWN0b3IgPSBfbWFrZV9zZWxlY3Rvcih0dXBsZShwYXR0ZXJuX3BhcnRzKSkKKyAgICAgICAg
Zm9yIHAgaW4gc2VsZWN0b3Iuc2VsZWN0X2Zyb20oc2VsZik6CisgICAgICAgICAgICB5aWVsZCBw
CisKKyAgICBkZWYgcmdsb2Ioc2VsZiwgcGF0dGVybik6CisgICAgICAgICIiIlJlY3Vyc2l2ZWx5
IHlpZWxkIGFsbCBleGlzdGluZyBmaWxlcyAob2YgYW55IGtpbmQsIGluY2x1ZGluZworICAgICAg
ICBkaXJlY3RvcmllcykgbWF0Y2hpbmcgdGhlIGdpdmVuIHJlbGF0aXZlIHBhdHRlcm4sIGFueXdo
ZXJlIGluCisgICAgICAgIHRoaXMgc3VidHJlZS4KKyAgICAgICAgIiIiCisgICAgICAgIHBhdHRl
cm4gPSBzZWxmLl9mbGF2b3VyLmNhc2Vmb2xkKHBhdHRlcm4pCisgICAgICAgIGRydiwgcm9vdCwg
cGF0dGVybl9wYXJ0cyA9IHNlbGYuX2ZsYXZvdXIucGFyc2VfcGFydHMoKHBhdHRlcm4sKSkKKyAg
ICAgICAgaWYgZHJ2IG9yIHJvb3Q6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yKCJOb24tcmVsYXRpdmUgcGF0dGVybnMgYXJlIHVuc3VwcG9ydGVkIikKKyAgICAgICAgc2Vs
ZWN0b3IgPSBfbWFrZV9zZWxlY3RvcigoIioqIiwpICsgdHVwbGUocGF0dGVybl9wYXJ0cykpCisg
ICAgICAgIGZvciBwIGluIHNlbGVjdG9yLnNlbGVjdF9mcm9tKHNlbGYpOgorICAgICAgICAgICAg
eWllbGQgcAorCisgICAgZGVmIGFic29sdXRlKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gYW4g
YWJzb2x1dGUgdmVyc2lvbiBvZiB0aGlzIHBhdGguICBUaGlzIGZ1bmN0aW9uIHdvcmtzCisgICAg
ICAgIGV2ZW4gaWYgdGhlIHBhdGggZG9lc24ndCBwb2ludCB0byBhbnl0aGluZy4KKworICAgICAg
ICBObyBub3JtYWxpemF0aW9uIGlzIGRvbmUsIGkuZS4gYWxsICcuJyBhbmQgJy4uJyB3aWxsIGJl
IGtlcHQgYWxvbmcuCisgICAgICAgIFVzZSByZXNvbHZlKCkgdG8gZ2V0IHRoZSBjYW5vbmljYWwg
cGF0aCB0byBhIGZpbGUuCisgICAgICAgICIiIgorICAgICAgICAjIFhYWCB1bnRlc3RlZCB5ZXQh
CisgICAgICAgIGlmIHNlbGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3Nl
ZCgpCisgICAgICAgIGlmIHNlbGYuaXNfYWJzb2x1dGUoKToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmCisgICAgICAgICMgRklYTUUgdGhpcyBtdXN0IGRlZmVyIHRvIHRoZSBzcGVjaWZpYyBmbGF2
b3VyIChhbmQsIHVuZGVyIFdpbmRvd3MsCisgICAgICAgICMgdXNlIG50Ll9nZXRmdWxscGF0aG5h
bWUoKSkKKyAgICAgICAgb2JqID0gc2VsZi5fZnJvbV9wYXJ0cyhbb3MuZ2V0Y3dkKCldICsgc2Vs
Zi5fcGFydHMsIGluaXQ9RmFsc2UpCisgICAgICAgIG9iai5faW5pdCh0ZW1wbGF0ZT1zZWxmKQor
ICAgICAgICByZXR1cm4gb2JqCisKKyAgICBkZWYgcmVzb2x2ZShzZWxmLCBzdHJpY3Q9RmFsc2Up
OgorICAgICAgICAiIiIKKyAgICAgICAgTWFrZSB0aGUgcGF0aCBhYnNvbHV0ZSwgcmVzb2x2aW5n
IGFsbCBzeW1saW5rcyBvbiB0aGUgd2F5IGFuZCBhbHNvCisgICAgICAgIG5vcm1hbGl6aW5nIGl0
IChmb3IgZXhhbXBsZSB0dXJuaW5nIHNsYXNoZXMgaW50byBiYWNrc2xhc2hlcyB1bmRlcgorICAg
ICAgICBXaW5kb3dzKS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2Nsb3NlZDoKKyAg
ICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIHMgPSBzZWxmLl9mbGF2b3Vy
LnJlc29sdmUoc2VsZiwgc3RyaWN0PXN0cmljdCkKKyAgICAgICAgaWYgcyBpcyBOb25lOgorICAg
ICAgICAgICAgIyBObyBzeW1saW5rIHJlc29sdXRpb24gPT4gZm9yIGNvbnNpc3RlbmN5LCByYWlz
ZSBhbiBlcnJvciBpZgorICAgICAgICAgICAgIyB0aGUgcGF0aCBpcyBmb3JiaWRkZW4KKyAgICAg
ICAgICAgICMgYnV0IG5vdCByYWlzZSBlcnJvciBpZiBmaWxlIGRvZXMgbm90IGV4aXN0IChzZWUg
aXNzdWUgIzU0KS4KKworICAgICAgICAgICAgZGVmIF90cnlfZnVuYygpOgorICAgICAgICAgICAg
ICAgIHNlbGYuc3RhdCgpCisKKyAgICAgICAgICAgIGRlZiBfZXhjX2Z1bmMoZXhjKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIF90cnlfZXhjZXB0X2ZpbGVub3Rmb3VuZGVy
cm9yKF90cnlfZnVuYywgX2V4Y19mdW5jKQorICAgICAgICAgICAgcyA9IHN0cihzZWxmLmFic29s
dXRlKCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIGVuc3VyZSBzIGlzIGEgc3RyaW5n
IChub3JtcGF0aCByZXF1aXJlcyB0aGlzIG9uIG9sZGVyIHB5dGhvbikKKyAgICAgICAgICAgIHMg
PSBzdHIocykKKyAgICAgICAgIyBOb3cgd2UgaGF2ZSBubyBzeW1saW5rcyBpbiB0aGUgcGF0aCwg
aXQncyBzYWZlIHRvIG5vcm1hbGl6ZSBpdC4KKyAgICAgICAgbm9ybWVkID0gc2VsZi5fZmxhdm91
ci5wYXRobW9kLm5vcm1wYXRoKHMpCisgICAgICAgIG9iaiA9IHNlbGYuX2Zyb21fcGFydHMoKG5v
cm1lZCwpLCBpbml0PUZhbHNlKQorICAgICAgICBvYmouX2luaXQodGVtcGxhdGU9c2VsZikKKyAg
ICAgICAgcmV0dXJuIG9iagorCisgICAgZGVmIHN0YXQoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgc3RhdCgpIHN5c3RlbSBjYWxsIG9uIHRoaXMg
cGF0aCwgbGlrZQorICAgICAgICBvcy5zdGF0KCkgZG9lcy4KKyAgICAgICAgIiIiCisgICAgICAg
IHJldHVybiBzZWxmLl9hY2Nlc3Nvci5zdGF0KHNlbGYpCisKKyAgICBkZWYgb3duZXIoc2VsZik6
CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gdGhlIGxvZ2luIG5hbWUgb2YgdGhlIGZpbGUg
b3duZXIuCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgcHdkCisgICAgICAgIHJldHVybiBw
d2QuZ2V0cHd1aWQoc2VsZi5zdGF0KCkuc3RfdWlkKS5wd19uYW1lCisKKyAgICBkZWYgZ3JvdXAo
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gdGhlIGdyb3VwIG5hbWUgb2YgdGhl
IGZpbGUgZ2lkLgorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IGdycAorICAgICAgICByZXR1
cm4gZ3JwLmdldGdyZ2lkKHNlbGYuc3RhdCgpLnN0X2dpZCkuZ3JfbmFtZQorCisgICAgZGVmIG9w
ZW4oc2VsZiwgbW9kZT0ncicsIGJ1ZmZlcmluZz0tMSwgZW5jb2Rpbmc9Tm9uZSwKKyAgICAgICAg
ICAgICBlcnJvcnM9Tm9uZSwgbmV3bGluZT1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIE9w
ZW4gdGhlIGZpbGUgcG9pbnRlZCBieSB0aGlzIHBhdGggYW5kIHJldHVybiBhIGZpbGUgb2JqZWN0
LCBhcworICAgICAgICB0aGUgYnVpbHQtaW4gb3BlbigpIGZ1bmN0aW9uIGRvZXMuCisgICAgICAg
ICIiIgorICAgICAgICBpZiBzZWxmLl9jbG9zZWQ6CisgICAgICAgICAgICBzZWxmLl9yYWlzZV9j
bG9zZWQoKQorICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAzKToKKyAgICAgICAg
ICAgIHJldHVybiBpby5vcGVuKAorICAgICAgICAgICAgICAgIHN0cihzZWxmKSwgbW9kZSwgYnVm
ZmVyaW5nLCBlbmNvZGluZywgZXJyb3JzLCBuZXdsaW5lLAorICAgICAgICAgICAgICAgIG9wZW5l
cj1zZWxmLl9vcGVuZXIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gaW8ub3Bl
bihzdHIoc2VsZiksIG1vZGUsIGJ1ZmZlcmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVuY29kaW5nLCBlcnJvcnMsIG5ld2xpbmUpCisKKyAgICBkZWYgcmVhZF9ieXRlcyhzZWxmKToK
KyAgICAgICAgIiIiCisgICAgICAgIE9wZW4gdGhlIGZpbGUgaW4gYnl0ZXMgbW9kZSwgcmVhZCBp
dCwgYW5kIGNsb3NlIHRoZSBmaWxlLgorICAgICAgICAiIiIKKyAgICAgICAgd2l0aCBzZWxmLm9w
ZW4obW9kZT0ncmInKSBhcyBmOgorICAgICAgICAgICAgcmV0dXJuIGYucmVhZCgpCisKKyAgICBk
ZWYgcmVhZF90ZXh0KHNlbGYsIGVuY29kaW5nPU5vbmUsIGVycm9ycz1Ob25lKToKKyAgICAgICAg
IiIiCisgICAgICAgIE9wZW4gdGhlIGZpbGUgaW4gdGV4dCBtb2RlLCByZWFkIGl0LCBhbmQgY2xv
c2UgdGhlIGZpbGUuCisgICAgICAgICIiIgorICAgICAgICB3aXRoIHNlbGYub3Blbihtb2RlPSdy
JywgZW5jb2Rpbmc9ZW5jb2RpbmcsIGVycm9ycz1lcnJvcnMpIGFzIGY6CisgICAgICAgICAgICBy
ZXR1cm4gZi5yZWFkKCkKKworICAgIGRlZiB3cml0ZV9ieXRlcyhzZWxmLCBkYXRhKToKKyAgICAg
ICAgIiIiCisgICAgICAgIE9wZW4gdGhlIGZpbGUgaW4gYnl0ZXMgbW9kZSwgd3JpdGUgdG8gaXQs
IGFuZCBjbG9zZSB0aGUgZmlsZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBpc2luc3Rh
bmNlKGRhdGEsIHNpeC5iaW5hcnlfdHlwZSk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3Io
CisgICAgICAgICAgICAgICAgJ2RhdGEgbXVzdCBiZSAlcywgbm90ICVzJyAlCisgICAgICAgICAg
ICAgICAgKHNpeC5iaW5hcnlfdHlwZS5fX25hbWVfXywgZGF0YS5fX2NsYXNzX18uX19uYW1lX18p
KQorICAgICAgICB3aXRoIHNlbGYub3Blbihtb2RlPSd3YicpIGFzIGY6CisgICAgICAgICAgICBy
ZXR1cm4gZi53cml0ZShkYXRhKQorCisgICAgZGVmIHdyaXRlX3RleHQoc2VsZiwgZGF0YSwgZW5j
b2Rpbmc9Tm9uZSwgZXJyb3JzPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgT3BlbiB0aGUg
ZmlsZSBpbiB0ZXh0IG1vZGUsIHdyaXRlIHRvIGl0LCBhbmQgY2xvc2UgdGhlIGZpbGUuCisgICAg
ICAgICIiIgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShkYXRhLCBzaXgudGV4dF90eXBlKToK
KyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAnZGF0YSBtdXN0
IGJlICVzLCBub3QgJXMnICUKKyAgICAgICAgICAgICAgICAoc2l4LnRleHRfdHlwZS5fX25hbWVf
XywgZGF0YS5fX2NsYXNzX18uX19uYW1lX18pKQorICAgICAgICB3aXRoIHNlbGYub3Blbihtb2Rl
PSd3JywgZW5jb2Rpbmc9ZW5jb2RpbmcsIGVycm9ycz1lcnJvcnMpIGFzIGY6CisgICAgICAgICAg
ICByZXR1cm4gZi53cml0ZShkYXRhKQorCisgICAgZGVmIHRvdWNoKHNlbGYsIG1vZGU9MG82NjYs
IGV4aXN0X29rPVRydWUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIHRoaXMgZmlsZSB3
aXRoIHRoZSBnaXZlbiBhY2Nlc3MgbW9kZSwgaWYgaXQgZG9lc24ndCBleGlzdC4KKyAgICAgICAg
IiIiCisgICAgICAgIGlmIHNlbGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Ns
b3NlZCgpCisgICAgICAgIGlmIGV4aXN0X29rOgorICAgICAgICAgICAgIyBGaXJzdCB0cnkgdG8g
YnVtcCBtb2RpZmljYXRpb24gdGltZQorICAgICAgICAgICAgIyBJbXBsZW1lbnRhdGlvbiBub3Rl
OiBHTlUgdG91Y2ggdXNlcyB0aGUgVVRJTUVfTk9XIG9wdGlvbiBvZgorICAgICAgICAgICAgIyB0
aGUgdXRpbWVuc2F0KCkgLyBmdXRpbWVucygpIGZ1bmN0aW9ucy4KKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBzZWxmLl9hY2Nlc3Nvci51dGltZShzZWxmLCBOb25lKQorICAgICAg
ICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgIyBBdm9pZCBleGNlcHRpb24g
Y2hhaW5pbmcKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHJldHVybgorICAgICAgICBmbGFncyA9IG9zLk9fQ1JFQVQgfCBvcy5PX1dST05M
WQorICAgICAgICBpZiBub3QgZXhpc3Rfb2s6CisgICAgICAgICAgICBmbGFncyB8PSBvcy5PX0VY
Q0wKKyAgICAgICAgZmQgPSBzZWxmLl9yYXdfb3BlbihmbGFncywgbW9kZSkKKyAgICAgICAgb3Mu
Y2xvc2UoZmQpCisKKyAgICBkZWYgbWtkaXIoc2VsZiwgbW9kZT0wbzc3NywgcGFyZW50cz1GYWxz
ZSwgZXhpc3Rfb2s9RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIGEgbmV3IGRp
cmVjdG9yeSBhdCB0aGlzIGdpdmVuIHBhdGguCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxm
Ll9jbG9zZWQ6CisgICAgICAgICAgICBzZWxmLl9yYWlzZV9jbG9zZWQoKQorCisgICAgICAgIGRl
ZiBfdHJ5X2Z1bmMoKToKKyAgICAgICAgICAgIHNlbGYuX2FjY2Vzc29yLm1rZGlyKHNlbGYsIG1v
ZGUpCisKKyAgICAgICAgZGVmIF9leGNfZnVuYyhleGMpOgorICAgICAgICAgICAgaWYgbm90IHBh
cmVudHMgb3Igc2VsZi5wYXJlbnQgPT0gc2VsZjoKKyAgICAgICAgICAgICAgICByYWlzZSBleGMK
KyAgICAgICAgICAgIHNlbGYucGFyZW50Lm1rZGlyKHBhcmVudHM9VHJ1ZSwgZXhpc3Rfb2s9VHJ1
ZSkKKyAgICAgICAgICAgIHNlbGYubWtkaXIobW9kZSwgcGFyZW50cz1GYWxzZSwgZXhpc3Rfb2s9
ZXhpc3Rfb2spCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgX3RyeV9leGNlcHRfZmlsZW5v
dGZvdW5kZXJyb3IoX3RyeV9mdW5jLCBfZXhjX2Z1bmMpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9y
OgorICAgICAgICAgICAgIyBDYW5ub3QgcmVseSBvbiBjaGVja2luZyBmb3IgRUVYSVNULCBzaW5j
ZSB0aGUgb3BlcmF0aW5nIHN5c3RlbQorICAgICAgICAgICAgIyBjb3VsZCBnaXZlIHByaW9yaXR5
IHRvIG90aGVyIGVycm9ycyBsaWtlIEVBQ0NFUyBvciBFUk9GUworICAgICAgICAgICAgaWYgbm90
IGV4aXN0X29rIG9yIG5vdCBzZWxmLmlzX2RpcigpOgorICAgICAgICAgICAgICAgIHJhaXNlCisK
KyAgICBkZWYgY2htb2Qoc2VsZiwgbW9kZSk6CisgICAgICAgICIiIgorICAgICAgICBDaGFuZ2Ug
dGhlIHBlcm1pc3Npb25zIG9mIHRoZSBwYXRoLCBsaWtlIG9zLmNobW9kKCkuCisgICAgICAgICIi
IgorICAgICAgICBpZiBzZWxmLl9jbG9zZWQ6CisgICAgICAgICAgICBzZWxmLl9yYWlzZV9jbG9z
ZWQoKQorICAgICAgICBzZWxmLl9hY2Nlc3Nvci5jaG1vZChzZWxmLCBtb2RlKQorCisgICAgZGVm
IGxjaG1vZChzZWxmLCBtb2RlKToKKyAgICAgICAgIiIiCisgICAgICAgIExpa2UgY2htb2QoKSwg
ZXhjZXB0IGlmIHRoZSBwYXRoIHBvaW50cyB0byBhIHN5bWxpbmssIHRoZSBzeW1saW5rJ3MKKyAg
ICAgICAgcGVybWlzc2lvbnMgYXJlIGNoYW5nZWQsIHJhdGhlciB0aGFuIGl0cyB0YXJnZXQncy4K
KyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYu
X3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIHNlbGYuX2FjY2Vzc29yLmxjaG1vZChzZWxmLCBtb2Rl
KQorCisgICAgZGVmIHVubGluayhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJlbW92ZSB0
aGlzIGZpbGUgb3IgbGluay4KKyAgICAgICAgSWYgdGhlIHBhdGggaXMgYSBkaXJlY3RvcnksIHVz
ZSBybWRpcigpIGluc3RlYWQuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9jbG9zZWQ6
CisgICAgICAgICAgICBzZWxmLl9yYWlzZV9jbG9zZWQoKQorICAgICAgICBzZWxmLl9hY2Nlc3Nv
ci51bmxpbmsoc2VsZikKKworICAgIGRlZiBybWRpcihzZWxmKToKKyAgICAgICAgIiIiCisgICAg
ICAgIFJlbW92ZSB0aGlzIGRpcmVjdG9yeS4gIFRoZSBkaXJlY3RvcnkgbXVzdCBiZSBlbXB0eS4K
KyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYu
X3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIHNlbGYuX2FjY2Vzc29yLnJtZGlyKHNlbGYpCisKKyAg
ICBkZWYgbHN0YXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBMaWtlIHN0YXQoKSwgZXhj
ZXB0IGlmIHRoZSBwYXRoIHBvaW50cyB0byBhIHN5bWxpbmssIHRoZSBzeW1saW5rJ3MKKyAgICAg
ICAgc3RhdHVzIGluZm9ybWF0aW9uIGlzIHJldHVybmVkLCByYXRoZXIgdGhhbiBpdHMgdGFyZ2V0
J3MuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9jbG9zZWQ6CisgICAgICAgICAgICBz
ZWxmLl9yYWlzZV9jbG9zZWQoKQorICAgICAgICByZXR1cm4gc2VsZi5fYWNjZXNzb3IubHN0YXQo
c2VsZikKKworICAgIGRlZiByZW5hbWUoc2VsZiwgdGFyZ2V0KToKKyAgICAgICAgIiIiCisgICAg
ICAgIFJlbmFtZSB0aGlzIHBhdGggdG8gdGhlIGdpdmVuIHBhdGguCisgICAgICAgICIiIgorICAg
ICAgICBpZiBzZWxmLl9jbG9zZWQ6CisgICAgICAgICAgICBzZWxmLl9yYWlzZV9jbG9zZWQoKQor
ICAgICAgICBzZWxmLl9hY2Nlc3Nvci5yZW5hbWUoc2VsZiwgdGFyZ2V0KQorCisgICAgZGVmIHJl
cGxhY2Uoc2VsZiwgdGFyZ2V0KToKKyAgICAgICAgIiIiCisgICAgICAgIFJlbmFtZSB0aGlzIHBh
dGggdG8gdGhlIGdpdmVuIHBhdGgsIGNsb2JiZXJpbmcgdGhlIGV4aXN0aW5nCisgICAgICAgIGRl
c3RpbmF0aW9uIGlmIGl0IGV4aXN0cy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHN5cy52ZXJz
aW9uX2luZm8gPCAoMywgMyk6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
KCJyZXBsYWNlKCkgaXMgb25seSBhdmFpbGFibGUgIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAid2l0aCBQeXRob24gMy4zIGFuZCBsYXRlciIpCisgICAgICAgIGlmIHNl
bGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3NlZCgpCisgICAgICAgIHNl
bGYuX2FjY2Vzc29yLnJlcGxhY2Uoc2VsZiwgdGFyZ2V0KQorCisgICAgZGVmIHN5bWxpbmtfdG8o
c2VsZiwgdGFyZ2V0LCB0YXJnZXRfaXNfZGlyZWN0b3J5PUZhbHNlKToKKyAgICAgICAgIiIiCisg
ICAgICAgIE1ha2UgdGhpcyBwYXRoIGEgc3ltbGluayBwb2ludGluZyB0byB0aGUgZ2l2ZW4gcGF0
aC4KKyAgICAgICAgTm90ZSB0aGUgb3JkZXIgb2YgYXJndW1lbnRzIChzZWxmLCB0YXJnZXQpIGlz
IHRoZSByZXZlcnNlIG9mCisgICAgICAgIG9zLnN5bWxpbmsncy4KKyAgICAgICAgIiIiCisgICAg
ICAgIGlmIHNlbGYuX2Nsb3NlZDoKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlX2Nsb3NlZCgpCisg
ICAgICAgIHNlbGYuX2FjY2Vzc29yLnN5bWxpbmsodGFyZ2V0LCBzZWxmLCB0YXJnZXRfaXNfZGly
ZWN0b3J5KQorCisgICAgIyBDb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIHF1ZXJ5aW5nIHRoZSBz
dGF0IHJlc3VsdHMKKworICAgIGRlZiBleGlzdHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBXaGV0aGVyIHRoaXMgcGF0aCBleGlzdHMuCisgICAgICAgICIiIgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBzZWxmLnN0YXQoKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAg
ICAgICAgICAgaWYgbm90IF9pZ25vcmVfZXJyb3IoZSk6CisgICAgICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAg
ICAgICAgICAgICMgTm9uLWVuY29kYWJsZSBwYXRoCisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBpc19kaXIoc2VsZik6CisgICAgICAgICIi
IgorICAgICAgICBXaGV0aGVyIHRoaXMgcGF0aCBpcyBhIGRpcmVjdG9yeS4KKyAgICAgICAgIiIi
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBTX0lTRElSKHNlbGYuc3RhdCgpLnN0
X21vZGUpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICBpZiBub3Qg
X2lnbm9yZV9lcnJvcihlKToKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgIyBQ
YXRoIGRvZXNuJ3QgZXhpc3Qgb3IgaXMgYSBicm9rZW4gc3ltbGluaworICAgICAgICAgICAgIyAo
c2VlIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9waXRyb3UvcGF0aGxpYi9pc3N1ZS8xMi8pCisgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAg
ICAgICAjIE5vbi1lbmNvZGFibGUgcGF0aAorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAg
ICBkZWYgaXNfZmlsZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZXRoZXIgdGhpcyBw
YXRoIGlzIGEgcmVndWxhciBmaWxlIChhbHNvIFRydWUgZm9yIHN5bWxpbmtzIHBvaW50aW5nCisg
ICAgICAgIHRvIHJlZ3VsYXIgZmlsZXMpLgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgcmV0dXJuIFNfSVNSRUcoc2VsZi5zdGF0KCkuc3RfbW9kZSkKKyAgICAgICAgZXhj
ZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIG5vdCBfaWdub3JlX2Vycm9yKGUpOgor
ICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAjIFBhdGggZG9lc24ndCBleGlzdCBv
ciBpcyBhIGJyb2tlbiBzeW1saW5rCisgICAgICAgICAgICAjIChzZWUgaHR0cHM6Ly9iaXRidWNr
ZXQub3JnL3BpdHJvdS9wYXRobGliL2lzc3VlLzEyLykKKyAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICMgTm9uLWVuY29kYWJs
ZSBwYXRoCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBpc19tb3VudChzZWxm
KToKKyAgICAgICAgIiIiCisgICAgICAgIENoZWNrIGlmIHRoaXMgcGF0aCBpcyBhIFBPU0lYIG1v
dW50IHBvaW50CisgICAgICAgICIiIgorICAgICAgICAjIE5lZWQgdG8gZXhpc3QgYW5kIGJlIGEg
ZGlyCisgICAgICAgIGlmIG5vdCBzZWxmLmV4aXN0cygpIG9yIG5vdCBzZWxmLmlzX2RpcigpOgor
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgcGFyZW50ID0gUGF0aChzZWxmLnBh
cmVudCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGFyZW50X2RldiA9IHBhcmVudC5zdGF0
KCkuc3RfZGV2CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKKyAgICAgICAgZGV2ID0gc2VsZi5zdGF0KCkuc3RfZGV2CisgICAgICAgIGlmIGRldiAh
PSBwYXJlbnRfZGV2OgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaW5vID0gc2Vs
Zi5zdGF0KCkuc3RfaW5vCisgICAgICAgIHBhcmVudF9pbm8gPSBwYXJlbnQuc3RhdCgpLnN0X2lu
bworICAgICAgICByZXR1cm4gaW5vID09IHBhcmVudF9pbm8KKworICAgIGRlZiBpc19zeW1saW5r
KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hldGhlciB0aGlzIHBhdGggaXMgYSBzeW1i
b2xpYyBsaW5rLgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJu
IFNfSVNMTksoc2VsZi5sc3RhdCgpLnN0X21vZGUpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFz
IGU6CisgICAgICAgICAgICBpZiBub3QgX2lnbm9yZV9lcnJvcihlKToKKyAgICAgICAgICAgICAg
ICByYWlzZQorICAgICAgICAgICAgIyBQYXRoIGRvZXNuJ3QgZXhpc3QKKyAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICMgTm9u
LWVuY29kYWJsZSBwYXRoCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBpc19i
bG9ja19kZXZpY2Uoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGV0aGVyIHRoaXMgcGF0
aCBpcyBhIGJsb2NrIGRldmljZS4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHJldHVybiBTX0lTQkxLKHNlbGYuc3RhdCgpLnN0X21vZGUpCisgICAgICAgIGV4Y2VwdCBP
U0Vycm9yIGFzIGU6CisgICAgICAgICAgICBpZiBub3QgX2lnbm9yZV9lcnJvcihlKToKKyAgICAg
ICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgIyBQYXRoIGRvZXNuJ3QgZXhpc3Qgb3IgaXMg
YSBicm9rZW4gc3ltbGluaworICAgICAgICAgICAgIyAoc2VlIGh0dHBzOi8vYml0YnVja2V0Lm9y
Zy9waXRyb3UvcGF0aGxpYi9pc3N1ZS8xMi8pCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAjIE5vbi1lbmNvZGFibGUgcGF0
aAorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgaXNfY2hhcl9kZXZpY2Uoc2Vs
Zik6CisgICAgICAgICIiIgorICAgICAgICBXaGV0aGVyIHRoaXMgcGF0aCBpcyBhIGNoYXJhY3Rl
ciBkZXZpY2UuCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4g
U19JU0NIUihzZWxmLnN0YXQoKS5zdF9tb2RlKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBl
OgorICAgICAgICAgICAgaWYgbm90IF9pZ25vcmVfZXJyb3IoZSk6CisgICAgICAgICAgICAgICAg
cmFpc2UKKyAgICAgICAgICAgICMgUGF0aCBkb2Vzbid0IGV4aXN0IG9yIGlzIGEgYnJva2VuIHN5
bWxpbmsKKyAgICAgICAgICAgICMgKHNlZSBodHRwczovL2JpdGJ1Y2tldC5vcmcvcGl0cm91L3Bh
dGhsaWIvaXNzdWUvMTIvKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGV4Y2Vw
dCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgIyBOb24tZW5jb2RhYmxlIHBhdGgKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGlzX2ZpZm8oc2VsZik6CisgICAgICAgICIiIgor
ICAgICAgICBXaGV0aGVyIHRoaXMgcGF0aCBpcyBhIEZJRk8uCisgICAgICAgICIiIgorICAgICAg
ICB0cnk6CisgICAgICAgICAgICByZXR1cm4gU19JU0ZJRk8oc2VsZi5zdGF0KCkuc3RfbW9kZSkK
KyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIG5vdCBfaWdub3Jl
X2Vycm9yKGUpOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAjIFBhdGggZG9l
c24ndCBleGlzdCBvciBpcyBhIGJyb2tlbiBzeW1saW5rCisgICAgICAgICAgICAjIChzZWUgaHR0
cHM6Ly9iaXRidWNrZXQub3JnL3BpdHJvdS9wYXRobGliL2lzc3VlLzEyLykKKyAgICAgICAgICAg
IHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICMg
Tm9uLWVuY29kYWJsZSBwYXRoCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBp
c19zb2NrZXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGV0aGVyIHRoaXMgcGF0aCBp
cyBhIHNvY2tldC4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVy
biBTX0lTU09DSyhzZWxmLnN0YXQoKS5zdF9tb2RlKQorICAgICAgICBleGNlcHQgT1NFcnJvciBh
cyBlOgorICAgICAgICAgICAgaWYgbm90IF9pZ25vcmVfZXJyb3IoZSk6CisgICAgICAgICAgICAg
ICAgcmFpc2UKKyAgICAgICAgICAgICMgUGF0aCBkb2Vzbid0IGV4aXN0IG9yIGlzIGEgYnJva2Vu
IHN5bWxpbmsKKyAgICAgICAgICAgICMgKHNlZSBodHRwczovL2JpdGJ1Y2tldC5vcmcvcGl0cm91
L3BhdGhsaWIvaXNzdWUvMTIvKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgIyBOb24tZW5jb2RhYmxlIHBhdGgKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGV4cGFuZHVzZXIoc2VsZik6CisgICAgICAg
ICIiIiBSZXR1cm4gYSBuZXcgcGF0aCB3aXRoIGV4cGFuZGVkIH4gYW5kIH51c2VyIGNvbnN0cnVj
dHMKKyAgICAgICAgKGFzIHJldHVybmVkIGJ5IG9zLnBhdGguZXhwYW5kdXNlcikKKyAgICAgICAg
IiIiCisgICAgICAgIGlmIChub3QgKHNlbGYuX2RydiBvciBzZWxmLl9yb290KQorICAgICAgICAg
ICAgICAgIGFuZCBzZWxmLl9wYXJ0cyBhbmQgc2VsZi5fcGFydHNbMF1bOjFdID09ICd+Jyk6Cisg
ICAgICAgICAgICBob21lZGlyID0gc2VsZi5fZmxhdm91ci5nZXRob21lZGlyKHNlbGYuX3BhcnRz
WzBdWzE6XSkKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9mcm9tX3BhcnRzKFtob21lZGlyXSAr
IHNlbGYuX3BhcnRzWzE6XSkKKworICAgICAgICByZXR1cm4gc2VsZgorCisKK2NsYXNzIFBvc2l4
UGF0aChQYXRoLCBQdXJlUG9zaXhQYXRoKToKKyAgICAiIiJQYXRoIHN1YmNsYXNzIGZvciBub24t
V2luZG93cyBzeXN0ZW1zLgorCisgICAgT24gYSBQT1NJWCBzeXN0ZW0sIGluc3RhbnRpYXRpbmcg
YSBQYXRoIHNob3VsZCByZXR1cm4gdGhpcyBvYmplY3QuCisgICAgIiIiCisgICAgX19zbG90c19f
ID0gKCkKKworCitjbGFzcyBXaW5kb3dzUGF0aChQYXRoLCBQdXJlV2luZG93c1BhdGgpOgorICAg
ICIiIlBhdGggc3ViY2xhc3MgZm9yIFdpbmRvd3Mgc3lzdGVtcy4KKworICAgIE9uIGEgV2luZG93
cyBzeXN0ZW0sIGluc3RhbnRpYXRpbmcgYSBQYXRoIHNob3VsZCByZXR1cm4gdGhpcyBvYmplY3Qu
CisgICAgIiIiCisgICAgX19zbG90c19fID0gKCkKKworICAgIGRlZiBvd25lcihzZWxmKToKKyAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiUGF0aC5vd25lcigpIGlzIHVuc3VwcG9y
dGVkIG9uIHRoaXMgc3lzdGVtIikKKworICAgIGRlZiBncm91cChzZWxmKToKKyAgICAgICAgcmFp
c2UgTm90SW1wbGVtZW50ZWRFcnJvcigiUGF0aC5ncm91cCgpIGlzIHVuc3VwcG9ydGVkIG9uIHRo
aXMgc3lzdGVtIikKKworICAgIGRlZiBpc19tb3VudChzZWxmKToKKyAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcigKKyAgICAgICAgICAgICJQYXRoLmlzX21vdW50KCkgaXMgdW5zdXBw
b3J0ZWQgb24gdGhpcyBzeXN0ZW0iKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9wYXRobGli
Mi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvcGF0aGxpYjIvdzNjLWltcG9ydC5sb2cK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjMwYzI3NTNiMTdkY2M3MDc0MzZkMGUxM2FlOGVmMTQzNjA2NDJmNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvcGF0aGxpYjIvdzNjLWltcG9ydC5sb2cKQEAg
LTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitU
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9wYXRobGliMi9fX2luaXRfXy5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRo
bGliMi9yZXF1aXJlbWVudHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkNDMyMTI3OTAwZWNhN2I0YzFiNGY0
YTA1ODc0MDI2ZjU4NWNjMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3JlcXVp
cmVtZW50cy50eHQKQEAgLTAsMCArMSwzIEBACitzaXgKK3NjYW5kaXI7IHB5dGhvbl92ZXJzaW9u
IDwgJzMuNScKK21vY2s7IHB5dGhvbl92ZXJzaW9uIDwgJzMuMycKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGF0aGxpYjIvc2V0dXAuY2ZnIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9zZXR1cC5jZmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzJhZmM4NjFkMzE1NGU2ZTkzNzQyYjkxNjFhMzM0ZDVjODE2ZjJjNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGF0aGxpYjIvc2V0dXAuY2ZnCkBAIC0wLDAgKzEsOCBAQAorW25vc2V0ZXN0c10K
K3dpdGgtY292ZXJhZ2U9MQorY292ZXItcGFja2FnZT1wYXRobGliMgorY292ZXItYnJhbmNoZXM9
MQorY292ZXItaHRtbD0xCisKK1t3aGVlbF0KK3VuaXZlcnNhbCA9IDEKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGF0aGxpYjIvc2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3NldHVwLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmNiYjZhYWEwZGZhZTVmNzdhNzE0ODZlMDJjOGZiMTcxYjMzNWI2OWQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhdGhsaWIyL3NldHVwLnB5CkBAIC0wLDAgKzEsNDggQEAKKyMgQ29weXJpZ2h0
IChjKSAyMDE0LTIwMTcgTWF0dGhpYXMgQy4gTS4gVHJvZmZhZXMKKyMgQ29weXJpZ2h0IChjKSAy
MDEyLTIwMTQgQW50b2luZSBQaXRyb3UgYW5kIGNvbnRyaWJ1dG9ycworIyBEaXN0cmlidXRlZCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBMaWNlbnNlLgorCitpbXBvcnQgaW8KK2Zyb20gc2V0
dXB0b29scyBpbXBvcnQgc2V0dXAsIGZpbmRfcGFja2FnZXMKKworCitkZWYgcmVhZGZpbGUoZmls
ZW5hbWUpOgorICAgIHdpdGggaW8ub3BlbihmaWxlbmFtZSwgZW5jb2Rpbmc9InV0Zi04IikgYXMg
c3RyZWFtOgorICAgICAgICByZXR1cm4gc3RyZWFtLnJlYWQoKS5zcGxpdCgiXG4iKQorCisKK3Jl
YWRtZSA9IHJlYWRmaWxlKCJSRUFETUUucnN0IilbNTpdICAjIHNraXAgdGl0bGUgYW5kIGJhZGdl
cwordmVyc2lvbiA9IHJlYWRmaWxlKCJWRVJTSU9OIilbMF0uc3RyaXAoKQorCitzZXR1cCgKKyAg
ICBuYW1lPSdwYXRobGliMicsCisgICAgdmVyc2lvbj12ZXJzaW9uLAorICAgIHBhY2thZ2VzPWZp
bmRfcGFja2FnZXMoKSwKKyAgICBsaWNlbnNlPSdNSVQnLAorICAgIGRlc2NyaXB0aW9uPSdPYmpl
Y3Qtb3JpZW50ZWQgZmlsZXN5c3RlbSBwYXRocycsCisgICAgbG9uZ19kZXNjcmlwdGlvbj0iXG4i
LmpvaW4ocmVhZG1lWzI6XSksCisgICAgYXV0aG9yPSdNYXR0aGlhcyBDLiBNLiBUcm9mZmFlcycs
CisgICAgYXV0aG9yX2VtYWlsPSdtYXR0aGlhcy50cm9mZmFlc0BnbWFpbC5jb20nLAorICAgIGNs
YXNzaWZpZXJzPVsKKyAgICAgICAgJ0RldmVsb3BtZW50IFN0YXR1cyA6OiA1IC0gUHJvZHVjdGlv
bi9TdGFibGUnLAorICAgICAgICAnSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycycsCisg
ICAgICAgICdMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZScsCisgICAgICAg
ICdPcGVyYXRpbmcgU3lzdGVtIDo6IE9TIEluZGVwZW5kZW50JywKKyAgICAgICAgJ1Byb2dyYW1t
aW5nIExhbmd1YWdlIDo6IFB5dGhvbicsCisgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6
OiBQeXRob24gOjogMicsCisgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24g
OjogMycsCisgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi42JywK
KyAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyLjcnLAorICAgICAg
ICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNCcsCisgICAgICAgICdQcm9n
cmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy41JywKKyAgICAgICAgJ1Byb2dyYW1taW5n
IExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjYnLAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3Vh
Z2UgOjogUHl0aG9uIDo6IDMuNycsCisgICAgICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9w
bWVudCA6OiBMaWJyYXJpZXMnLAorICAgICAgICAnVG9waWMgOjogU3lzdGVtIDo6IEZpbGVzeXN0
ZW1zJywKKyAgICAgICAgXSwKKyAgICB1cmw9J2h0dHBzOi8vZ2l0aHViLmNvbS9tY210cm9mZmFl
cy9wYXRobGliMicsCisgICAgaW5zdGFsbF9yZXF1aXJlcz1bJ3NpeCddLAorICAgIGV4dHJhc19y
ZXF1aXJlPXsKKyAgICAgICAgJzpweXRob25fdmVyc2lvbjwiMy41Iic6IFsnc2NhbmRpciddLAor
ICAgICAgICB9LAorKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi90ZXN0cy90ZXN0X3BhdGhs
aWIyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYXRobGliMi90ZXN0cy90ZXN0X3BhdGhsaWIyLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY1YTUyODFhOWQ3MjRmNmQxOTNlM2Q2YTgzZmYwZTBlZDNlNTMxZjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhdGhsaWIyL3Rlc3RzL3Rlc3RfcGF0aGxpYjIucHkKQEAgLTAsMCArMSwyNDA2
IEBACisjIENvcHlyaWdodCAoYykgMjAxNC0yMDE3IE1hdHRoaWFzIEMuIE0uIFRyb2ZmYWVzCisj
IENvcHlyaWdodCAoYykgMjAxMi0yMDE0IEFudG9pbmUgUGl0cm91IGFuZCBjb250cmlidXRvcnMK
KyMgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgTGljZW5zZS4KKworCitp
bXBvcnQgaW8KK2ltcG9ydCBvcworaW1wb3J0IGVycm5vCitpbXBvcnQgcGF0aGxpYjIgYXMgcGF0
aGxpYgoraW1wb3J0IHBpY2tsZQoraW1wb3J0IHNpeAoraW1wb3J0IHNvY2tldAoraW1wb3J0IHN0
YXQKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZW1wZmlsZQorCitpZiBzeXMudmVyc2lvbl9pbmZvID49
ICgzLCAzKToKKyAgICBpbXBvcnQgY29sbGVjdGlvbnMuYWJjIGFzIGNvbGxlY3Rpb25zX2FiYwor
ZWxzZToKKyAgICBpbXBvcnQgY29sbGVjdGlvbnMgYXMgY29sbGVjdGlvbnNfYWJjCisKK2lmIHN5
cy52ZXJzaW9uX2luZm8gPCAoMiwgNyk6CisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgdW5pdHRl
c3QyIGFzIHVuaXR0ZXN0CisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICByYWlzZSBJ
bXBvcnRFcnJvcigidW5pdHRlc3QyIGlzIHJlcXVpcmVkIGZvciB0ZXN0cyBvbiBwcmUtMi43IikK
K2Vsc2U6CisgICAgaW1wb3J0IHVuaXR0ZXN0CisKK2lmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywg
Myk6CisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgbW9jaworICAgIGV4Y2VwdCBJbXBvcnRFcnJv
cjoKKyAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoIm1vY2sgaXMgcmVxdWlyZWQgZm9yIHRlc3Rz
IG9uIHByZS0zLjMiKQorZWxzZToKKyAgICBmcm9tIHVuaXR0ZXN0IGltcG9ydCBtb2NrCisKKyMg
YXNzZXJ0UmFpc2VzUmVnZXggaXMgbWlzc2luZyBwcmlvciB0byBQeXRob24gMy4yCitpZiBzeXMu
dmVyc2lvbl9pbmZvIDwgKDMsIDIpOgorICAgIHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydFJhaXNl
c1JlZ2V4ID0gdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0UmFpc2VzUmVnZXhwCisKK3RyeToKKyAg
ICBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9t
IHRlc3QgaW1wb3J0IHRlc3Rfc3VwcG9ydCBhcyBzdXBwb3J0CisKK2FuZHJvaWRfbm90X3Jvb3Qg
PSBnZXRhdHRyKHN1cHBvcnQsICJhbmRyb2lkX25vdF9yb290IiwgRmFsc2UpCisKK1RFU1RGTiA9
IHN1cHBvcnQuVEVTVEZOCisKKyMgd29yayBhcm91bmQgYnJva2VuIHN1cHBvcnQucm10cmVlIG9u
IFB5dGhvbiAzLjMgb24gV2luZG93cworaWYgKG9zLm5hbWUgPT0gJ250JworICAgICAgICBhbmQg
c3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCkgYW5kIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgNCkp
OgorICAgIGltcG9ydCBzaHV0aWwKKyAgICBzdXBwb3J0LnJtdHJlZSA9IHNodXRpbC5ybXRyZWUK
KwordHJ5OgorICAgIGltcG9ydCBncnAKKyAgICBpbXBvcnQgcHdkCitleGNlcHQgSW1wb3J0RXJy
b3I6CisgICAgZ3JwID0gcHdkID0gTm9uZQorCisjIHN1cHBvcnQuY2FuX3N5bWxpbmsgaXMgbWlz
c2luZyBwcmlvciB0byBQeXRob24gMworaWYgc2l4LlBZMjoKKworICAgIGRlZiBzdXBwb3J0X2Nh
bl9zeW1saW5rKCk6CisgICAgICAgIHJldHVybiBwYXRobGliLnN1cHBvcnRzX3N5bWxpbmtzCisK
KyAgICBzdXBwb3J0X3NraXBfdW5sZXNzX3N5bWxpbmsgPSB1bml0dGVzdC5za2lwSWYoCisgICAg
ICAgIG5vdCBwYXRobGliLnN1cHBvcnRzX3N5bWxpbmtzLAorICAgICAgICAic3ltbGlua3Mgbm90
IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtIikKK2Vsc2U6CisgICAgc3VwcG9ydF9jYW5fc3lt
bGluayA9IHN1cHBvcnQuY2FuX3N5bWxpbmsKKyAgICBzdXBwb3J0X3NraXBfdW5sZXNzX3N5bWxp
bmsgPSBzdXBwb3J0LnNraXBfdW5sZXNzX3N5bWxpbmsKKworCisjIEJhY2twb3J0ZWQgZnJvbSAz
LjQKK2RlZiBmc19pc19jYXNlX2luc2Vuc2l0aXZlKGRpcmVjdG9yeSk6CisgICAgIiIiRGV0ZWN0
cyBpZiB0aGUgZmlsZSBzeXN0ZW0gZm9yIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IGlzCisgICAg
Y2FzZS1pbnNlbnNpdGl2ZS4KKyAgICAiIiIKKyAgICBiYXNlX2ZwLCBiYXNlX3BhdGggPSB0ZW1w
ZmlsZS5ta3N0ZW1wKGRpcj1kaXJlY3RvcnkpCisgICAgY2FzZV9wYXRoID0gYmFzZV9wYXRoLnVw
cGVyKCkKKyAgICBpZiBjYXNlX3BhdGggPT0gYmFzZV9wYXRoOgorICAgICAgICBjYXNlX3BhdGgg
PSBiYXNlX3BhdGgubG93ZXIoKQorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguc2Ft
ZWZpbGUoYmFzZV9wYXRoLCBjYXNlX3BhdGgpCisgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAg
ICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FTk9FTlQ6CisgICAgICAgICAgICByYWlzZQorICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICBmaW5hbGx5OgorICAgICAgICBvcy51bmxpbmsoYmFzZV9w
YXRoKQorCisKK3N1cHBvcnQuZnNfaXNfY2FzZV9pbnNlbnNpdGl2ZSA9IGZzX2lzX2Nhc2VfaW5z
ZW5zaXRpdmUKKworCitjbGFzcyBfQmFzZUZsYXZvdXJUZXN0KG9iamVjdCk6CisKKyAgICBkZWYg
X2NoZWNrX3BhcnNlX3BhcnRzKHNlbGYsIGFyZywgZXhwZWN0ZWQpOgorICAgICAgICBmID0gc2Vs
Zi5mbGF2b3VyLnBhcnNlX3BhcnRzCisgICAgICAgIHNlcCA9IHNlbGYuZmxhdm91ci5zZXAKKyAg
ICAgICAgYWx0c2VwID0gc2VsZi5mbGF2b3VyLmFsdHNlcAorICAgICAgICBhY3R1YWwgPSBmKFt4
LnJlcGxhY2UoJy8nLCBzZXApIGZvciB4IGluIGFyZ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoYWN0dWFsLCBleHBlY3RlZCkKKyAgICAgICAgaWYgYWx0c2VwOgorICAgICAgICAgICAgYWN0
dWFsID0gZihbeC5yZXBsYWNlKCcvJywgYWx0c2VwKSBmb3IgeCBpbiBhcmddKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsIGV4cGVjdGVkKQorICAgICAgICBkcnYsIHJvb3Qs
IHBhcnRzID0gYWN0dWFsCisgICAgICAgICMgbmVpdGhlciBieXRlcyAocHkzKSBub3IgdW5pY29k
ZSAocHkyKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZHJ2LCBzdHIpCisgICAgICAg
IHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShyb290LCBzdHIpCisgICAgICAgIGZvciBwIGluIHBhcnRz
OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHAsIHN0cikKKworICAgIGRlZiB0
ZXN0X3BhcnNlX3BhcnRzX2NvbW1vbihzZWxmKToKKyAgICAgICAgY2hlY2sgPSBzZWxmLl9jaGVj
a19wYXJzZV9wYXJ0cworICAgICAgICBzZXAgPSBzZWxmLmZsYXZvdXIuc2VwCisgICAgICAgICMg
VW5hbmNob3JlZCBwYXJ0cworICAgICAgICBjaGVjayhbXSwgICAgICAgICAgICAgICAgICAgKCcn
LCAnJywgW10pKQorICAgICAgICBjaGVjayhbJ2EnXSwgICAgICAgICAgICAgICAgKCcnLCAnJywg
WydhJ10pKQorICAgICAgICBjaGVjayhbJ2EvJ10sICAgICAgICAgICAgICAgKCcnLCAnJywgWydh
J10pKQorICAgICAgICBjaGVjayhbJ2EnLCAnYiddLCAgICAgICAgICAgKCcnLCAnJywgWydhJywg
J2InXSkpCisgICAgICAgICMgRXhwYW5zaW9uCisgICAgICAgIGNoZWNrKFsnYS9iJ10sICAgICAg
ICAgICAgICAoJycsICcnLCBbJ2EnLCAnYiddKSkKKyAgICAgICAgY2hlY2soWydhL2IvJ10sICAg
ICAgICAgICAgICgnJywgJycsIFsnYScsICdiJ10pKQorICAgICAgICBjaGVjayhbJ2EnLCAnYi9j
JywgJ2QnXSwgICAgKCcnLCAnJywgWydhJywgJ2InLCAnYycsICdkJ10pKQorICAgICAgICAjIENv
bGxhcHNpbmcgYW5kIHN0cmlwcGluZyBleGNlc3Mgc2xhc2hlcworICAgICAgICBjaGVjayhbJ2En
LCAnYi8vYycsICdkJ10sICAgKCcnLCAnJywgWydhJywgJ2InLCAnYycsICdkJ10pKQorICAgICAg
ICBjaGVjayhbJ2EnLCAnYi9jLycsICdkJ10sICAgKCcnLCAnJywgWydhJywgJ2InLCAnYycsICdk
J10pKQorICAgICAgICAjIEVsaW1pbmF0aW5nIHN0YW5kYWxvbmUgZG90cworICAgICAgICBjaGVj
ayhbJy4nXSwgICAgICAgICAgICAgICAgKCcnLCAnJywgW10pKQorICAgICAgICBjaGVjayhbJy4n
LCAnLicsICdiJ10sICAgICAgKCcnLCAnJywgWydiJ10pKQorICAgICAgICBjaGVjayhbJ2EnLCAn
LicsICdiJ10sICAgICAgKCcnLCAnJywgWydhJywgJ2InXSkpCisgICAgICAgIGNoZWNrKFsnYScs
ICcuJywgJy4nXSwgICAgICAoJycsICcnLCBbJ2EnXSkpCisgICAgICAgICMgVGhlIGZpcnN0IHBh
cnQgaXMgYW5jaG9yZWQKKyAgICAgICAgY2hlY2soWycvYS9iJ10sICAgICAgICAgICAgICgnJywg
c2VwLCBbc2VwLCAnYScsICdiJ10pKQorICAgICAgICBjaGVjayhbJy9hJywgJ2InXSwgICAgICAg
ICAgKCcnLCBzZXAsIFtzZXAsICdhJywgJ2InXSkpCisgICAgICAgIGNoZWNrKFsnL2EvJywgJ2In
XSwgICAgICAgICAoJycsIHNlcCwgW3NlcCwgJ2EnLCAnYiddKSkKKyAgICAgICAgIyBJZ25vcmlu
ZyBwYXJ0cyBiZWZvcmUgYW4gYW5jaG9yZWQgcGFydAorICAgICAgICBjaGVjayhbJ2EnLCAnL2In
LCAnYyddLCAgICAgKCcnLCBzZXAsIFtzZXAsICdiJywgJ2MnXSkpCisgICAgICAgIGNoZWNrKFsn
YScsICcvYicsICcvYyddLCAgICAoJycsIHNlcCwgW3NlcCwgJ2MnXSkpCisKKworY2xhc3MgUG9z
aXhGbGF2b3VyVGVzdChfQmFzZUZsYXZvdXJUZXN0LCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
Zmxhdm91ciA9IHBhdGhsaWIuX3Bvc2l4X2ZsYXZvdXIKKworICAgIGRlZiB0ZXN0X3BhcnNlX3Bh
cnRzKHNlbGYpOgorICAgICAgICBjaGVjayA9IHNlbGYuX2NoZWNrX3BhcnNlX3BhcnRzCisgICAg
ICAgICMgQ29sbGFwc2luZyBvZiBleGNlc3MgbGVhZGluZyBzbGFzaGVzLCBleGNlcHQgZm9yIHRo
ZSBkb3VibGUtc2xhc2gKKyAgICAgICAgIyBzcGVjaWFsIGNhc2UuCisgICAgICAgIGNoZWNrKFsn
Ly9hJywgJ2InXSwgICAgICAgICAgICAgKCcnLCAnLy8nLCBbJy8vJywgJ2EnLCAnYiddKSkKKyAg
ICAgICAgY2hlY2soWycvLy9hJywgJ2InXSwgICAgICAgICAgICAoJycsICcvJywgWycvJywgJ2En
LCAnYiddKSkKKyAgICAgICAgY2hlY2soWycvLy8vYScsICdiJ10sICAgICAgICAgICAoJycsICcv
JywgWycvJywgJ2EnLCAnYiddKSkKKyAgICAgICAgIyBQYXRocyB3aGljaCBsb29rIGxpa2UgTlQg
cGF0aHMgYXJlbid0IHRyZWF0ZWQgc3BlY2lhbGx5CisgICAgICAgIGNoZWNrKFsnYzphJ10sICAg
ICAgICAgICAgICAgICAgKCcnLCAnJywgWydjOmEnXSkpCisgICAgICAgIGNoZWNrKFsnYzpcXGEn
XSwgICAgICAgICAgICAgICAgKCcnLCAnJywgWydjOlxcYSddKSkKKyAgICAgICAgY2hlY2soWydc
XGEnXSwgICAgICAgICAgICAgICAgICAoJycsICcnLCBbJ1xcYSddKSkKKworICAgIGRlZiB0ZXN0
X3NwbGl0cm9vdChzZWxmKToKKyAgICAgICAgZiA9IHNlbGYuZmxhdm91ci5zcGxpdHJvb3QKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCcnKSwgKCcnLCAnJywgJycpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGYoJ2EnKSwgKCcnLCAnJywgJ2EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmKCdhL2InKSwgKCcnLCAnJywgJ2EvYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGYoJ2EvYi8nKSwgKCcnLCAnJywgJ2EvYi8nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChm
KCcvYScpLCAoJycsICcvJywgJ2EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCcvYS9i
JyksICgnJywgJy8nLCAnYS9iJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZignL2EvYi8n
KSwgKCcnLCAnLycsICdhL2IvJykpCisgICAgICAgICMgVGhlIHJvb3QgaXMgY29sbGFwc2VkIHdo
ZW4gdGhlcmUgYXJlIHJlZHVuZGFudCBzbGFzaGVzCisgICAgICAgICMgZXhjZXB0IHdoZW4gdGhl
cmUgYXJlIGV4YWN0bHkgdHdvIGxlYWRpbmcgc2xhc2hlcywgd2hpY2gKKyAgICAgICAgIyBpcyBh
IHNwZWNpYWwgY2FzZSBpbiBQT1NJWC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCcvL2En
KSwgKCcnLCAnLy8nLCAnYScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJy8vL2EnKSwg
KCcnLCAnLycsICdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZignLy8vYS9iJyksICgn
JywgJy8nLCAnYS9iJykpCisgICAgICAgICMgUGF0aHMgd2hpY2ggbG9vayBsaWtlIE5UIHBhdGhz
IGFyZW4ndCB0cmVhdGVkIHNwZWNpYWxseQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ2M6
L2EvYicpLCAoJycsICcnLCAnYzovYS9iJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZign
XFwvYS9iJyksICgnJywgJycsICdcXC9hL2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChm
KCdcXGFcXGInKSwgKCcnLCAnJywgJ1xcYVxcYicpKQorCisKK2NsYXNzIE5URmxhdm91clRlc3Qo
X0Jhc2VGbGF2b3VyVGVzdCwgdW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGZsYXZvdXIgPSBwYXRo
bGliLl93aW5kb3dzX2ZsYXZvdXIKKworICAgIGRlZiB0ZXN0X3BhcnNlX3BhcnRzKHNlbGYpOgor
ICAgICAgICBjaGVjayA9IHNlbGYuX2NoZWNrX3BhcnNlX3BhcnRzCisgICAgICAgICMgRmlyc3Qg
cGFydCBpcyBhbmNob3JlZAorICAgICAgICBjaGVjayhbJ2M6J10sICAgICAgICAgICAgICAgICgn
YzonLCAnJywgWydjOiddKSkKKyAgICAgICAgY2hlY2soWydjOi8nXSwgICAgICAgICAgICAgICAo
J2M6JywgJ1xcJywgWydjOlxcJ10pKQorICAgICAgICBjaGVjayhbJy8nXSwgICAgICAgICAgICAg
ICAgICgnJywgJ1xcJywgWydcXCddKSkKKyAgICAgICAgY2hlY2soWydjOmEnXSwgICAgICAgICAg
ICAgICAoJ2M6JywgJycsIFsnYzonLCAnYSddKSkKKyAgICAgICAgY2hlY2soWydjOi9hJ10sICAg
ICAgICAgICAgICAoJ2M6JywgJ1xcJywgWydjOlxcJywgJ2EnXSkpCisgICAgICAgIGNoZWNrKFsn
L2EnXSwgICAgICAgICAgICAgICAgKCcnLCAnXFwnLCBbJ1xcJywgJ2EnXSkpCisgICAgICAgICMg
VU5DIHBhdGhzCisgICAgICAgIGNoZWNrKFsnLy9hL2InXSwgICAgICAgICAgICAgKCdcXFxcYVxc
YicsICdcXCcsIFsnXFxcXGFcXGJcXCddKSkKKyAgICAgICAgY2hlY2soWycvL2EvYi8nXSwgICAg
ICAgICAgICAoJ1xcXFxhXFxiJywgJ1xcJywgWydcXFxcYVxcYlxcJ10pKQorICAgICAgICBjaGVj
ayhbJy8vYS9iL2MnXSwgICAgICAgICAgICgnXFxcXGFcXGInLCAnXFwnLCBbJ1xcXFxhXFxiXFwn
LCAnYyddKSkKKyAgICAgICAgIyBTZWNvbmQgcGFydCBpcyBhbmNob3JlZCwgc28gdGhhdCB0aGUg
Zmlyc3QgcGFydCBpcyBpZ25vcmVkCisgICAgICAgIGNoZWNrKFsnYScsICdaOmInLCAnYyddLCAg
ICAgKCdaOicsICcnLCBbJ1o6JywgJ2InLCAnYyddKSkKKyAgICAgICAgY2hlY2soWydhJywgJ1o6
L2InLCAnYyddLCAgICAoJ1o6JywgJ1xcJywgWydaOlxcJywgJ2InLCAnYyddKSkKKyAgICAgICAg
IyBVTkMgcGF0aHMKKyAgICAgICAgY2hlY2soWydhJywgJy8vYi9jJywgJ2QnXSwgICAoJ1xcXFxi
XFxjJywgJ1xcJywgWydcXFxcYlxcY1xcJywgJ2QnXSkpCisgICAgICAgICMgQ29sbGFwc2luZyBh
bmQgc3RyaXBwaW5nIGV4Y2VzcyBzbGFzaGVzCisgICAgICAgIGNoZWNrKFsnYScsICdaOi8vYi8v
Yy8nLCAnZC8nXSwgKCdaOicsICdcXCcsIFsnWjpcXCcsICdiJywgJ2MnLCAnZCddKSkKKyAgICAg
ICAgIyBVTkMgcGF0aHMKKyAgICAgICAgY2hlY2soWydhJywgJy8vYi9jLy8nLCAnZCddLCAoJ1xc
XFxiXFxjJywgJ1xcJywgWydcXFxcYlxcY1xcJywgJ2QnXSkpCisgICAgICAgICMgRXh0ZW5kZWQg
cGF0aHMKKyAgICAgICAgY2hlY2soWycvLz8vYzovJ10sICAgICAgICAgICAoJ1xcXFw/XFxjOics
ICdcXCcsIFsnXFxcXD9cXGM6XFwnXSkpCisgICAgICAgIGNoZWNrKFsnLy8/L2M6L2EnXSwgICAg
ICAgICAgKCdcXFxcP1xcYzonLCAnXFwnLCBbJ1xcXFw/XFxjOlxcJywgJ2EnXSkpCisgICAgICAg
IGNoZWNrKFsnLy8/L2M6L2EnLCAnL2InXSwgICAgKCdcXFxcP1xcYzonLCAnXFwnLCBbJ1xcXFw/
XFxjOlxcJywgJ2InXSkpCisgICAgICAgICMgRXh0ZW5kZWQgVU5DIHBhdGhzIChmb3JtYXQgaXMg
IlxcP1xVTkNcc2VydmVyXHNoYXJlIikKKyAgICAgICAgY2hlY2soWycvLz8vVU5DL2IvYyddLAor
ICAgICAgICAgICAgICAoJ1xcXFw/XFxVTkNcXGJcXGMnLCAnXFwnLCBbJ1xcXFw/XFxVTkNcXGJc
XGNcXCddKSkKKyAgICAgICAgY2hlY2soWycvLz8vVU5DL2IvYy9kJ10sCisgICAgICAgICAgICAg
ICgnXFxcXD9cXFVOQ1xcYlxcYycsICdcXCcsIFsnXFxcXD9cXFVOQ1xcYlxcY1xcJywgJ2QnXSkp
CisgICAgICAgICMgU2Vjb25kIHBhcnQgaGFzIGEgcm9vdCBidXQgbm90IGRyaXZlCisgICAgICAg
IGNoZWNrKFsnYScsICcvYicsICdjJ10sICAgICAgKCcnLCAnXFwnLCBbJ1xcJywgJ2InLCAnYydd
KSkKKyAgICAgICAgY2hlY2soWydaOi9hJywgJy9iJywgJ2MnXSwgICAoJ1o6JywgJ1xcJywgWyda
OlxcJywgJ2InLCAnYyddKSkKKyAgICAgICAgY2hlY2soWycvLz8vWjovYScsICcvYicsICdjJ10s
CisgICAgICAgICAgICAgICgnXFxcXD9cXFo6JywgJ1xcJywgWydcXFxcP1xcWjpcXCcsICdiJywg
J2MnXSkpCisKKyAgICBkZWYgdGVzdF9zcGxpdHJvb3Qoc2VsZik6CisgICAgICAgIGYgPSBzZWxm
LmZsYXZvdXIuc3BsaXRyb290CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZignJyksICgnJywg
JycsICcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCdhJyksICgnJywgJycsICdhJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZignYVxcYicpLCAoJycsICcnLCAnYVxcYicpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ1xcYScpLCAoJycsICdcXCcsICdhJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZignXFxhXFxiJyksICgnJywgJ1xcJywgJ2FcXGInKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCdjOmFcXGInKSwgKCdjOicsICcnLCAnYVxcYicpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ2M6XFxhXFxiJyksICgnYzonLCAnXFwnLCAnYVxc
YicpKQorICAgICAgICAjIFJlZHVuZGFudCBzbGFzaGVzIGluIHRoZSByb290IGFyZSBjb2xsYXBz
ZWQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCdcXFxcYScpLCAoJycsICdcXCcsICdhJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZignXFxcXFxcYS9iJyksICgnJywgJ1xcJywgJ2Ev
YicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ2M6XFxcXGEnKSwgKCdjOicsICdcXCcs
ICdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZignYzpcXFxcXFxhL2InKSwgKCdjOics
ICdcXCcsICdhL2InKSkKKyAgICAgICAgIyBWYWxpZCBVTkMgcGF0aHMKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmKCdcXFxcYVxcYicpLCAoJ1xcXFxhXFxiJywgJ1xcJywgJycpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGYoJ1xcXFxhXFxiXFwnKSwgKCdcXFxcYVxcYicsICdcXCcsICcn
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCdcXFxcYVxcYlxcY1xcZCcpLCAoJ1xcXFxh
XFxiJywgJ1xcJywgJ2NcXGQnKSkKKyAgICAgICAgIyBUaGVzZSBhcmUgbm9uLVVOQyBwYXRocyAo
YWNjb3JkaW5nIHRvIG50cGF0aC5weSBhbmQgdGVzdF9udHBhdGgpCisgICAgICAgICMgSG93ZXZl
ciwgY29tbWFuZC5jb20gc2F5cyBzdWNoIHBhdGhzIGFyZSBpbnZhbGlkLCBzbyBpdCdzCisgICAg
ICAgICMgZGlmZmljdWx0IHRvIGtub3cgd2hhdCB0aGUgcmlnaHQgc2VtYW50aWNzIGFyZQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ1xcXFxcXGFcXGInKSwgKCcnLCAnXFwnLCAnYVxcYicp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoJ1xcXFxhJyksICgnJywgJ1xcJywgJ2EnKSkK
KworCisjCisjIFRlc3RzIGZvciB0aGUgcHVyZSBjbGFzc2VzCisjCisKK3dpdGhfZnNlbmNvZGUg
PSB1bml0dGVzdC5za2lwSWYoCisgICAgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAyKSwKKyAgICAn
b3MuZnNlbmNvZGUgaGFzIGJlZW4gaW50cm9kdWNlZCBpbiB2ZXJzaW9uIDMuMicpCisKKworY2xh
c3MgX0Jhc2VQdXJlUGF0aFRlc3Qob2JqZWN0KToKKworICAgICMga2V5cyBhcmUgY2Fub25pY2Fs
IHBhdGhzLCB2YWx1ZXMgYXJlIGxpc3Qgb2YgdHVwbGVzIG9mIGFyZ3VtZW50cworICAgICMgc3Vw
cG9zZWQgdG8gcHJvZHVjZSBlcXVhbCBwYXRocworICAgIGVxdWl2YWxlbmNlcyA9IHsKKyAgICAg
ICAgJ2EvYic6IFsKKyAgICAgICAgICAgICgnYScsICdiJyksICgnYS8nLCAnYicpLCAoJ2EnLCAn
Yi8nKSwgKCdhLycsICdiLycpLAorICAgICAgICAgICAgKCdhL2IvJywpLCAoJ2EvL2InLCksICgn
YS8vYi8vJywpLAorICAgICAgICAgICAgIyBlbXB0eSBjb21wb25lbnRzIGdldCByZW1vdmVkCisg
ICAgICAgICAgICAoJycsICdhJywgJ2InKSwgKCdhJywgJycsICdiJyksICgnYScsICdiJywgJycp
LAorICAgICAgICAgICAgXSwKKyAgICAgICAgJy9iL2MvZCc6IFsKKyAgICAgICAgICAgICgnYScs
ICcvYi9jJywgJ2QnKSwgKCdhJywgJy8vL2IvL2MnLCAnZC8nKSwKKyAgICAgICAgICAgICgnL2En
LCAnL2IvYycsICdkJyksCisgICAgICAgICAgICAjIGVtcHR5IGNvbXBvbmVudHMgZ2V0IHJlbW92
ZWQKKyAgICAgICAgICAgICgnLycsICdiJywgJycsICdjL2QnKSwgKCcvJywgJycsICdiL2MvZCcp
LCAoJycsICcvYi9jL2QnKSwKKyAgICAgICAgICAgIF0sCisgICAgfQorCisgICAgZGVmIHNldFVw
KHNlbGYpOgorICAgICAgICBwID0gc2VsZi5jbHMoJ2EnKQorICAgICAgICBzZWxmLmZsYXZvdXIg
PSBwLl9mbGF2b3VyCisgICAgICAgIHNlbGYuc2VwID0gc2VsZi5mbGF2b3VyLnNlcAorICAgICAg
ICBzZWxmLmFsdHNlcCA9IHNlbGYuZmxhdm91ci5hbHRzZXAKKworICAgIGRlZiB0ZXN0X2NvbnN0
cnVjdG9yX2NvbW1vbihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQ
KCdhJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHAsIFApCisKKyAgICAgICAgY2xh
c3MgUGF0aExpa2U6CisgICAgICAgICAgICBkZWYgX19mc3BhdGhfXyhzZWxmKToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gImEvYi9jIgorCisgICAgICAgIFAoJ2EnLCAnYicsICdjJykKKyAgICAg
ICAgUCgnL2EnLCAnYicsICdjJykKKyAgICAgICAgUCgnYS9iL2MnKQorICAgICAgICBQKCcvYS9i
L2MnKQorICAgICAgICBQKFBhdGhMaWtlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUChQ
KCdhJykpLCBQKCdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUChQKCdhJyksICdiJyks
IFAoJ2EvYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoUCgnYScpLCBQKCdiJykpLCBQ
KCdhL2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKFAoJ2EnKSwgUCgnYicpLCBQKCdj
JykpLCBQKFBhdGhMaWtlKCkpKQorCisgICAgZGVmIF9jaGVja19zdHJfc3ViY2xhc3Moc2VsZiwg
KmFyZ3MpOgorICAgICAgICAjIElzc3VlICMyMTEyNzogaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRv
IGNvbnN0cnVjdCBhIFB1cmVQYXRoIG9iamVjdAorICAgICAgICAjIGZyb20gYSBzdHIgc3ViY2xh
c3MgaW5zdGFuY2UsIGFuZCBpdCB0aGVuIGdldHMgY29udmVydGVkIHRvCisgICAgICAgICMgYSBw
dXJlIHN0ciBvYmplY3QuCisgICAgICAgIGNsYXNzIFN0clN1YmNsYXNzKHN0cik6CisgICAgICAg
ICAgICBwYXNzCisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUCgqKFN0clN1YmNs
YXNzKHgpIGZvciB4IGluIGFyZ3MpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIFAoKmFy
Z3MpKQorICAgICAgICBmb3IgcGFydCBpbiBwLnBhcnRzOgorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRJcyh0eXBlKHBhcnQpLCBzdHIpCisKKyAgICBkZWYgdGVzdF9zdHJfc3ViY2xhc3NfY29tbW9u
KHNlbGYpOgorICAgICAgICBzZWxmLl9jaGVja19zdHJfc3ViY2xhc3MoJycpCisgICAgICAgIHNl
bGYuX2NoZWNrX3N0cl9zdWJjbGFzcygnLicpCisgICAgICAgIHNlbGYuX2NoZWNrX3N0cl9zdWJj
bGFzcygnYScpCisgICAgICAgIHNlbGYuX2NoZWNrX3N0cl9zdWJjbGFzcygnYS9iLnR4dCcpCisg
ICAgICAgIHNlbGYuX2NoZWNrX3N0cl9zdWJjbGFzcygnL2EvYi50eHQnKQorCisgICAgZGVmIHRl
c3Rfam9pbl9jb21tb24oc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0g
UCgnYS9iJykKKyAgICAgICAgcHAgPSBwLmpvaW5wYXRoKCdjJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwcCwgUCgnYS9iL2MnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0eXBlKHBwKSwg
dHlwZShwKSkKKyAgICAgICAgcHAgPSBwLmpvaW5wYXRoKCdjJywgJ2QnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBwLCBQKCdhL2IvYy9kJykpCisgICAgICAgIHBwID0gcC5qb2lucGF0aChQ
KCdjJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHAsIFAoJ2EvYi9jJykpCisgICAgICAg
IHBwID0gcC5qb2lucGF0aCgnL2MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCcv
YycpKQorCisgICAgZGVmIHRlc3RfZGl2X2NvbW1vbihzZWxmKToKKyAgICAgICAgIyBCYXNpY2Fs
bHkgdGhlIHNhbWUgYXMgam9pbnBhdGgoKQorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAg
cCA9IFAoJ2EvYicpCisgICAgICAgIHBwID0gcCAvICdjJworICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBwLCBQKCdhL2IvYycpKQorICAgICAgICBzZWxmLmFzc2VydElzKHR5cGUocHApLCB0eXBl
KHApKQorICAgICAgICBwcCA9IHAgLyAnYy9kJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBw
LCBQKCdhL2IvYy9kJykpCisgICAgICAgIHBwID0gcCAvICdjJyAvICdkJworICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBwLCBQKCdhL2IvYy9kJykpCisgICAgICAgIHBwID0gJ2MnIC8gcCAvICdk
JworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCdjL2EvYi9kJykpCisgICAgICAgIHBw
ID0gcCAvIFAoJ2MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCdhL2IvYycpKQor
ICAgICAgICBwcCA9IHAgLyAnL2MnCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHAsIFAoJy9j
JykpCisKKyAgICBkZWYgX2NoZWNrX3N0cihzZWxmLCBleHBlY3RlZCwgYXJncyk6CisgICAgICAg
IHAgPSBzZWxmLmNscygqYXJncykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIocCksIGV4
cGVjdGVkLnJlcGxhY2UoJy8nLCBzZWxmLnNlcCkpCisKKyAgICBkZWYgdGVzdF9zdHJfY29tbW9u
KHNlbGYpOgorICAgICAgICAjIENhbm9uaWNhbGl6ZWQgcGF0aHMgcm91bmR0cmlwCisgICAgICAg
IGZvciBwYXRoc3RyIGluICgnYScsICdhL2InLCAnYS9iL2MnLCAnLycsICcvYS9iJywgJy9hL2Iv
YycpOgorICAgICAgICAgICAgc2VsZi5fY2hlY2tfc3RyKHBhdGhzdHIsIChwYXRoc3RyLCkpCisg
ICAgICAgICMgU3BlY2lhbCBjYXNlIGZvciB0aGUgZW1wdHkgcGF0aAorICAgICAgICBzZWxmLl9j
aGVja19zdHIoJy4nLCAoJycsKSkKKyAgICAgICAgIyBPdGhlciB0ZXN0cyBmb3Igc3RyKCkgYXJl
IGluIHRlc3RfZXF1aXZhbGVuY2VzKCkKKworICAgIGRlZiB0ZXN0X2FzX3Bvc2l4X2NvbW1vbihz
ZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIGZvciBwYXRoc3RyIGluICgnYScs
ICdhL2InLCAnYS9iL2MnLCAnLycsICcvYS9iJywgJy9hL2IvYycpOgorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChQKHBhdGhzdHIpLmFzX3Bvc2l4KCksIHBhdGhzdHIpCisgICAgICAgICMg
T3RoZXIgdGVzdHMgZm9yIGFzX3Bvc2l4KCkgYXJlIGluIHRlc3RfZXF1aXZhbGVuY2VzKCkKKwor
ICAgIEB3aXRoX2ZzZW5jb2RlCisgICAgZGVmIHRlc3RfYXNfYnl0ZXNfY29tbW9uKHNlbGYpOgor
ICAgICAgICBzZXAgPSBvcy5mc2VuY29kZShzZWxmLnNlcCkKKyAgICAgICAgUCA9IHNlbGYuY2xz
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnl0ZXMoUCgnYS9iJykpLCBiJ2EnICsgc2VwICsg
YidiJykKKworICAgIGRlZiB0ZXN0X2FzX3VyaV9jb21tb24oc2VsZik6CisgICAgICAgIFAgPSBz
ZWxmLmNscworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAg
ICAgICAgICAgUCgnYScpLmFzX3VyaSgpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
VmFsdWVFcnJvcik6CisgICAgICAgICAgICBQKCkuYXNfdXJpKCkKKworICAgIGRlZiB0ZXN0X3Jl
cHJfY29tbW9uKHNlbGYpOgorICAgICAgICBmb3IgcGF0aHN0ciBpbiAoJ2EnLCAnYS9iJywgJ2Ev
Yi9jJywgJy8nLCAnL2EvYicsICcvYS9iL2MnKToKKyAgICAgICAgICAgIHAgPSBzZWxmLmNscyhw
YXRoc3RyKQorICAgICAgICAgICAgY2xzbmFtZSA9IHAuX19jbGFzc19fLl9fbmFtZV9fCisgICAg
ICAgICAgICByID0gcmVwcihwKQorICAgICAgICAgICAgIyBUaGUgcmVwcigpIGlzIGluIHRoZSBm
b3JtIENsYXNzTmFtZSgiZm9yd2FyZC1zbGFzaGVzIHBhdGgiKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHIuc3RhcnRzd2l0aChjbHNuYW1lICsgJygnKSwgcikKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShyLmVuZHN3aXRoKCcpJyksIHIpCisgICAgICAgICAgICBpbm5lciA9IHJb
bGVuKGNsc25hbWUpICsgMTogLTFdCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwo
aW5uZXIpLCBwLmFzX3Bvc2l4KCkpCisgICAgICAgICAgICAjIFRoZSByZXByKCkgcm91bmR0cmlw
cworICAgICAgICAgICAgcSA9IGV2YWwociwgcGF0aGxpYi5fX2RpY3RfXykKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0SXMocS5fX2NsYXNzX18sIHAuX19jbGFzc19fKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChxLCBwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKHEp
LCByKQorCisgICAgZGVmIHRlc3RfZXFfY29tbW9uKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5j
bHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2InKSwgUCgnYS9iJykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS9iJyksIFAoJ2EnLCAnYicpKQorICAgICAgICBzZWxmLmFz
c2VydE5vdEVxdWFsKFAoJ2EvYicpLCBQKCdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1
YWwoUCgnYS9iJyksIFAoJy9hL2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChQKCdh
L2InKSwgUCgpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKFAoJy9hL2InKSwgUCgnLycp
KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKFAoKSwgUCgnLycpKQorICAgICAgICBzZWxm
LmFzc2VydE5vdEVxdWFsKFAoKSwgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoUCgp
LCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChQKCksIGludCkKKworICAgIGRlZiB0
ZXN0X21hdGNoX2NvbW1vbihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2EnKS5tYXRjaCwgJycpCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2EnKS5tYXRjaCwgJy4nKQorICAgICAgICAj
IFNpbXBsZSByZWxhdGl2ZSBwYXR0ZXJuCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCdiLnB5
JykubWF0Y2goJ2IucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJ2EvYi5weScpLm1h
dGNoKCdiLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCcvYS9iLnB5JykubWF0Y2go
J2IucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCdhLnB5JykubWF0Y2goJ2IucHkn
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCdiL3B5JykubWF0Y2goJ2IucHknKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCcvYS5weScpLm1hdGNoKCdiLnB5JykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoUCgnYi5weS9jJykubWF0Y2goJ2IucHknKSkKKyAgICAgICAgIyBX
aWxjYXJkIHJlbGF0aXZlIHBhdHRlcm4KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJ2IucHkn
KS5tYXRjaCgnKi5weScpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoUCgnYS9iLnB5JykubWF0
Y2goJyoucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJy9hL2IucHknKS5tYXRjaCgn
Ki5weScpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJ2IucHljJykubWF0Y2goJyoucHkn
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCdiLi9weScpLm1hdGNoKCcqLnB5JykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnYi5weS9jJykubWF0Y2goJyoucHknKSkKKyAgICAg
ICAgIyBNdWx0aS1wYXJ0IHJlbGF0aXZlIHBhdHRlcm4KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KFAoJ2FiL2MucHknKS5tYXRjaCgnYSovKi5weScpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
UCgnL2QvYWIvYy5weScpLm1hdGNoKCdhKi8qLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoUCgnYS5weScpLm1hdGNoKCdhKi8qLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
UCgnL2RhYi9jLnB5JykubWF0Y2goJ2EqLyoucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShQKCdhYi9jLnB5L2QnKS5tYXRjaCgnYSovKi5weScpKQorICAgICAgICAjIEFic29sdXRlIHBh
dHRlcm4KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJy9iLnB5JykubWF0Y2goJy8qLnB5Jykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnYi5weScpLm1hdGNoKCcvKi5weScpKQorICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJ2EvYi5weScpLm1hdGNoKCcvKi5weScpKQorICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKFAoJy9hL2IucHknKS5tYXRjaCgnLyoucHknKSkKKyAgICAgICAg
IyBNdWx0aS1wYXJ0IGFic29sdXRlIHBhdHRlcm4KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAo
Jy9hL2IucHknKS5tYXRjaCgnL2EvKi5weScpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAo
Jy9hYi5weScpLm1hdGNoKCcvYS8qLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgn
L2EvYi9jLnB5JykubWF0Y2goJy9hLyoucHknKSkKKworICAgIGRlZiB0ZXN0X29yZGVyaW5nX2Nv
bW1vbihzZWxmKToKKyAgICAgICAgIyBPcmRlcmluZyBpcyB0dXBsZS1hbGlrZQorICAgICAgICBk
ZWYgYXNzZXJ0TGVzcyhhLCBiKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhhLCBiKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGIsIGEpCisgICAgICAgIFAgPSBzZWxmLmNs
cworICAgICAgICBhID0gUCgnYScpCisgICAgICAgIGIgPSBQKCdhL2InKQorICAgICAgICBjID0g
UCgnYWJjJykKKyAgICAgICAgZCA9IFAoJ2InKQorICAgICAgICBhc3NlcnRMZXNzKGEsIGIpCisg
ICAgICAgIGFzc2VydExlc3MoYSwgYykKKyAgICAgICAgYXNzZXJ0TGVzcyhhLCBkKQorICAgICAg
ICBhc3NlcnRMZXNzKGIsIGMpCisgICAgICAgIGFzc2VydExlc3MoYywgZCkKKyAgICAgICAgUCA9
IHNlbGYuY2xzCisgICAgICAgIGEgPSBQKCcvYScpCisgICAgICAgIGIgPSBQKCcvYS9iJykKKyAg
ICAgICAgYyA9IFAoJy9hYmMnKQorICAgICAgICBkID0gUCgnL2InKQorICAgICAgICBhc3NlcnRM
ZXNzKGEsIGIpCisgICAgICAgIGFzc2VydExlc3MoYSwgYykKKyAgICAgICAgYXNzZXJ0TGVzcyhh
LCBkKQorICAgICAgICBhc3NlcnRMZXNzKGIsIGMpCisgICAgICAgIGFzc2VydExlc3MoYywgZCkK
KyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCk6CisgICAgICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICAgICAgUCgpIDwge30KKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIFAoKSA8IHt9CisKKyAgICBkZWYgdGVzdF9wYXJ0c19j
b21tb24oc2VsZik6CisgICAgICAgICMgYHBhcnRzYCByZXR1cm5zIGEgdHVwbGUKKyAgICAgICAg
c2VwID0gc2VsZi5zZXAKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKCdhL2In
KQorICAgICAgICBwYXJ0cyA9IHAucGFydHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJ0
cywgKCdhJywgJ2InKSkKKyAgICAgICAgIyBUaGUgb2JqZWN0IGdldHMgcmV1c2VkCisgICAgICAg
IHNlbGYuYXNzZXJ0SXMocGFydHMsIHAucGFydHMpCisgICAgICAgICMgV2hlbiB0aGUgcGF0aCBp
cyBhYnNvbHV0ZSwgdGhlIGFuY2hvciBpcyBhIHNlcGFyYXRlIHBhcnQKKyAgICAgICAgcCA9IFAo
Jy9hL2InKQorICAgICAgICBwYXJ0cyA9IHAucGFydHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwYXJ0cywgKHNlcCwgJ2EnLCAnYicpKQorCisgICAgZGVmIHRlc3RfZnNwYXRoX2NvbW1vbihz
ZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKCdhL2InKQorICAgICAg
ICBzZWxmLl9jaGVja19zdHIocC5fX2ZzcGF0aF9fKCksICgnYS9iJywpKQorICAgICAgICBpZiBz
eXMudmVyc2lvbl9pbmZvID49ICgzLCA2KToKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX3N0cihv
cy5mc3BhdGgocCksICgnYS9iJywpKQorCisgICAgZGVmIHRlc3RfZXF1aXZhbGVuY2VzKHNlbGYp
OgorICAgICAgICBmb3IgaywgdHVwbGVzIGluIHNlbGYuZXF1aXZhbGVuY2VzLml0ZW1zKCk6Cisg
ICAgICAgICAgICBjYW5vbiA9IGsucmVwbGFjZSgnLycsIHNlbGYuc2VwKQorICAgICAgICAgICAg
cG9zaXggPSBrLnJlcGxhY2Uoc2VsZi5zZXAsICcvJykKKyAgICAgICAgICAgIGlmIGNhbm9uICE9
IHBvc2l4OgorICAgICAgICAgICAgICAgIHR1cGxlcyA9IHR1cGxlcyArIFsKKyAgICAgICAgICAg
ICAgICAgICAgdHVwbGUocGFydC5yZXBsYWNlKCcvJywgc2VsZi5zZXApIGZvciBwYXJ0IGluIHQp
CisgICAgICAgICAgICAgICAgICAgIGZvciB0IGluIHR1cGxlcworICAgICAgICAgICAgICAgICAg
ICBdCisgICAgICAgICAgICAgICAgdHVwbGVzLmFwcGVuZCgocG9zaXgsICkpCisgICAgICAgICAg
ICBwY2Fub24gPSBzZWxmLmNscyhjYW5vbikKKyAgICAgICAgICAgIGZvciB0IGluIHR1cGxlczoK
KyAgICAgICAgICAgICAgICBwID0gc2VsZi5jbHMoKnQpCisgICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwLCBwY2Fub24sICJmYWlsZWQgd2l0aCBhcmdzIHswfSIuZm9ybWF0KHQpKQor
ICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChwKSwgaGFzaChwY2Fub24pKQor
ICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHApLCBjYW5vbikKKyAgICAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuYXNfcG9zaXgoKSwgcG9zaXgpCisKKyAgICBkZWYg
dGVzdF9wYXJlbnRfY29tbW9uKHNlbGYpOgorICAgICAgICAjIFJlbGF0aXZlCisgICAgICAgIFAg
PSBzZWxmLmNscworICAgICAgICBwID0gUCgnYS9iL2MnKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHAucGFyZW50LCBQKCdhL2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnBhcmVu
dC5wYXJlbnQsIFAoJ2EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnBhcmVudC5wYXJl
bnQucGFyZW50LCBQKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5wYXJlbnQucGFyZW50
LnBhcmVudC5wYXJlbnQsIFAoKSkKKyAgICAgICAgIyBBbmNob3JlZAorICAgICAgICBwID0gUCgn
L2EvYi9jJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnBhcmVudCwgUCgnL2EvYicpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucGFyZW50LnBhcmVudCwgUCgnL2EnKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwLnBhcmVudC5wYXJlbnQucGFyZW50LCBQKCcvJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5wYXJlbnQucGFyZW50LnBhcmVudC5wYXJlbnQsIFAoJy8n
KSkKKworICAgIGRlZiB0ZXN0X3BhcmVudHNfY29tbW9uKHNlbGYpOgorICAgICAgICAjIFJlbGF0
aXZlCisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUCgnYS9iL2MnKQorICAgICAg
ICBwYXIgPSBwLnBhcmVudHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocGFyKSwgMykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJbMF0sIFAoJ2EvYicpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBhclsxXSwgUCgnYScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBh
clsyXSwgUCgnLicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocGFyKSwgW1AoJ2Ev
YicpLCBQKCdhJyksIFAoJy4nKV0pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW5k
ZXhFcnJvcik6CisgICAgICAgICAgICBwYXJbLTFdCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoSW5kZXhFcnJvcik6CisgICAgICAgICAgICBwYXJbM10KKyAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgcGFyWzBdID0gcAorICAgICAg
ICAjIEFuY2hvcmVkCisgICAgICAgIHAgPSBQKCcvYS9iL2MnKQorICAgICAgICBwYXIgPSBwLnBh
cmVudHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocGFyKSwgMykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwYXJbMF0sIFAoJy9hL2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwYXJbMV0sIFAoJy9hJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyWzJdLCBQKCcv
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChwYXIpLCBbUCgnL2EvYicpLCBQKCcv
YScpLCBQKCcvJyldKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3Ip
OgorICAgICAgICAgICAgcGFyWzNdCisKKyAgICBkZWYgdGVzdF9kcml2ZV9jb21tb24oc2VsZik6
CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvYicp
LmRyaXZlLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iJykuZHJpdmUsICcn
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJycpLmRyaXZlLCAnJykKKworICAgIGRlZiB0
ZXN0X3Jvb3RfY29tbW9uKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2Vw
ID0gc2VsZi5zZXAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcnKS5yb290LCAnJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2InKS5yb290LCAnJykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChQKCcvJykucm9vdCwgc2VwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAo
Jy9hL2InKS5yb290LCBzZXApCisKKyAgICBkZWYgdGVzdF9hbmNob3JfY29tbW9uKHNlbGYpOgor
ICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2VwID0gc2VsZi5zZXAKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChQKCcnKS5hbmNob3IsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFAoJ2EvYicpLmFuY2hvciwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLycpLmFu
Y2hvciwgc2VwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hL2InKS5hbmNob3IsIHNl
cCkKKworICAgIGRlZiB0ZXN0X25hbWVfY29tbW9uKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5j
bHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcnKS5uYW1lLCAnJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChQKCcuJykubmFtZSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
UCgnLycpLm5hbWUsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvYicpLm5hbWUs
ICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iJykubmFtZSwgJ2InKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hL2IvLicpLm5hbWUsICdiJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChQKCdhL2IucHknKS5uYW1lLCAnYi5weScpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoUCgnL2EvYi5weScpLm5hbWUsICdiLnB5JykKKworICAgIGRlZiB0ZXN0X3N1ZmZp
eF9jb21tb24oc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFAoJycpLnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLicp
LnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLi4nKS5zdWZmaXgsICcn
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8nKS5zdWZmaXgsICcnKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFAoJ2EvYicpLnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoUCgnL2EvYicpLnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgn
L2EvYi8uJykuc3VmZml4LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2IucHkn
KS5zdWZmaXgsICcucHknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hL2IucHknKS5z
dWZmaXgsICcucHknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvLmhncmMnKS5zdWZm
aXgsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hLy5oZ3JjJykuc3VmZml4LCAn
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhLy5oZy5yYycpLnN1ZmZpeCwgJy5yYycp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnL2EvLmhnLnJjJykuc3VmZml4LCAnLnJjJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2IudGFyLmd6Jykuc3VmZml4LCAnLmd6JykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iLnRhci5neicpLnN1ZmZpeCwgJy5neicp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS9Tb21lIG5hbWUuIEVuZGluZyB3aXRoIGEg
ZG90LicpLnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnL2EvU29tZSBu
YW1lLiBFbmRpbmcgd2l0aCBhIGRvdC4nKS5zdWZmaXgsICcnKQorCisgICAgZGVmIHRlc3Rfc3Vm
Zml4ZXNfY29tbW9uKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChQKCcnKS5zdWZmaXhlcywgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
UCgnLicpLnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvJykuc3Vm
Zml4ZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvYicpLnN1ZmZpeGVzLCBb
XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iJykuc3VmZml4ZXMsIFtdKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hL2IvLicpLnN1ZmZpeGVzLCBbXSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChQKCdhL2IucHknKS5zdWZmaXhlcywgWycucHknXSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iLnB5Jykuc3VmZml4ZXMsIFsnLnB5J10pCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS8uaGdyYycpLnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChQKCcvYS8uaGdyYycpLnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChQKCdhLy5oZy5yYycpLnN1ZmZpeGVzLCBbJy5yYyddKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFAoJy9hLy5oZy5yYycpLnN1ZmZpeGVzLCBbJy5yYyddKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFAoJ2EvYi50YXIuZ3onKS5zdWZmaXhlcywgWycudGFyJywgJy5neidd
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hL2IudGFyLmd6Jykuc3VmZml4ZXMsIFsn
LnRhcicsICcuZ3onXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL1NvbWUgbmFtZS4g
RW5kaW5nIHdpdGggYSBkb3QuJykuc3VmZml4ZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFAoJy9hL1NvbWUgbmFtZS4gRW5kaW5nIHdpdGggYSBkb3QuJykuc3VmZml4ZXMsIFtdKQor
CisgICAgZGVmIHRlc3Rfc3RlbV9jb21tb24oc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJycpLnN0ZW0sICcnKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFAoJy4nKS5zdGVtLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcu
LicpLnN0ZW0sICcuLicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLycpLnN0ZW0sICcn
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvYicpLnN0ZW0sICdiJykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChQKCdhL2IucHknKS5zdGVtLCAnYicpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoUCgnYS8uaGdyYycpLnN0ZW0sICcuaGdyYycpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoUCgnYS8uaGcucmMnKS5zdGVtLCAnLmhnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCdhL2IudGFyLmd6Jykuc3RlbSwgJ2IudGFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCdhL1NvbWUgbmFtZS4gRW5kaW5nIHdpdGggYSBkb3QuJykuc3RlbSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAnU29tZSBuYW1lLiBFbmRpbmcgd2l0aCBhIGRvdC4nKQorCisgICAgZGVm
IHRlc3Rfd2l0aF9uYW1lX2NvbW1vbihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS9iJykud2l0aF9uYW1lKCdkLnhtbCcpLCBQKCdhL2Qu
eG1sJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnL2EvYicpLndpdGhfbmFtZSgnZC54
bWwnKSwgUCgnL2EvZC54bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdhL2IucHkn
KS53aXRoX25hbWUoJ2QueG1sJyksIFAoJ2EvZC54bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChQKCcvYS9iLnB5Jykud2l0aF9uYW1lKCdkLnhtbCcpLCBQKCcvYS9kLnhtbCcpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvRG90IGVuZGluZy4nKS53aXRoX25hbWUoJ2QueG1s
JyksIFAoJ2EvZC54bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9Eb3QgZW5k
aW5nLicpLndpdGhfbmFtZSgnZC54bWwnKSwgUCgnL2EvZC54bWwnKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnJykud2l0aF9uYW1lLCAnZC54bWwnKQorICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCcuJykud2l0aF9uYW1lLCAnZC54bWwn
KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCcvJykud2l0aF9uYW1l
LCAnZC54bWwnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdhL2In
KS53aXRoX25hbWUsICcnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQ
KCdhL2InKS53aXRoX25hbWUsICcvYycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVl
RXJyb3IsIFAoJ2EvYicpLndpdGhfbmFtZSwgJ2MvJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvciwgUCgnYS9iJykud2l0aF9uYW1lLCAnYy9kJykKKworICAgIGRlZiB0ZXN0
X3dpdGhfc3VmZml4X2NvbW1vbihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS9iJykud2l0aF9zdWZmaXgoJy5neicpLCBQKCdhL2IuZ3on
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iJykud2l0aF9zdWZmaXgoJy5neicp
LCBQKCcvYS9iLmd6JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYS9iLnB5Jykud2l0
aF9zdWZmaXgoJy5neicpLCBQKCdhL2IuZ3onKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQ
KCcvYS9iLnB5Jykud2l0aF9zdWZmaXgoJy5neicpLCBQKCcvYS9iLmd6JykpCisgICAgICAgICMg
U3RyaXBwaW5nIHN1ZmZpeAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2EvYi5weScpLndp
dGhfc3VmZml4KCcnKSwgUCgnYS9iJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnL2Ev
YicpLndpdGhfc3VmZml4KCcnKSwgUCgnL2EvYicpKQorICAgICAgICAjIFBhdGggZG9lc24ndCBo
YXZlIGEgImZpbGVuYW1lIiBjb21wb25lbnQKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvciwgUCgnJykud2l0aF9zdWZmaXgsICcuZ3onKQorICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhWYWx1ZUVycm9yLCBQKCcuJykud2l0aF9zdWZmaXgsICcuZ3onKQorICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCcvJykud2l0aF9zdWZmaXgsICcuZ3onKQorICAg
ICAgICAjIEludmFsaWQgc3VmZml4CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJy
b3IsIFAoJ2EvYicpLndpdGhfc3VmZml4LCAnZ3onKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhWYWx1ZUVycm9yLCBQKCdhL2InKS53aXRoX3N1ZmZpeCwgJy8nKQorICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdhL2InKS53aXRoX3N1ZmZpeCwgJy4nKQorICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdhL2InKS53aXRoX3N1ZmZpeCwgJy8u
Z3onKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdhL2InKS53aXRo
X3N1ZmZpeCwgJ2MvZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAo
J2EvYicpLndpdGhfc3VmZml4LCAnLmMvLmQnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLCBQKCdhL2InKS53aXRoX3N1ZmZpeCwgJy4vLmQnKQorICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdhL2InKS53aXRoX3N1ZmZpeCwgJy5kLy4nKQorCisg
ICAgZGVmIHRlc3RfcmVsYXRpdmVfdG9fY29tbW9uKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5j
bHMKKyAgICAgICAgcCA9IFAoJ2EvYicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVF
cnJvciwgcC5yZWxhdGl2ZV90bykKKyAgICAgICAgaWYgc2l4LlBZMzoKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcC5yZWxhdGl2ZV90bywgYidhJykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKFAoKSksIFAoJ2EvYicpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHAucmVsYXRpdmVfdG8oJycpLCBQKCdhL2InKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKFAoJ2EnKSksIFAoJ2InKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCdhJyksIFAoJ2InKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCdhLycpLCBQKCdiJykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocC5yZWxhdGl2ZV90byhQKCdhL2InKSksIFAoKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwLnJlbGF0aXZlX3RvKCdhL2InKSwgUCgpKQorICAgICAgICAjIFdpdGggc2V2ZXJh
bCBhcmdzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90bygnYScsICdiJyks
IFAoKSkKKyAgICAgICAgIyBVbnJlbGF0ZWQgcGF0aHMKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvciwgcC5yZWxhdGl2ZV90bywgUCgnYycpKQorICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCdhL2IvYycpKQorICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCdhL2MnKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcC5yZWxhdGl2ZV90bywgUCgnL2En
KSkKKyAgICAgICAgcCA9IFAoJy9hL2InKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVs
YXRpdmVfdG8oUCgnLycpKSwgUCgnYS9iJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5y
ZWxhdGl2ZV90bygnLycpLCBQKCdhL2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJl
bGF0aXZlX3RvKFAoJy9hJykpLCBQKCdiJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5y
ZWxhdGl2ZV90bygnL2EnKSwgUCgnYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVs
YXRpdmVfdG8oJy9hLycpLCBQKCdiJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxh
dGl2ZV90byhQKCcvYS9iJykpLCBQKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxh
dGl2ZV90bygnL2EvYicpLCBQKCkpCisgICAgICAgICMgVW5yZWxhdGVkIHBhdGhzCisgICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJy9jJykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJy9h
L2IvYycpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZl
X3RvLCBQKCcvYS9jJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAu
cmVsYXRpdmVfdG8sIFAoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwg
cC5yZWxhdGl2ZV90bywgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3Is
IHAucmVsYXRpdmVfdG8sIFAoJ2EnKSkKKworICAgIGRlZiB0ZXN0X3BpY2tsaW5nX2NvbW1vbihz
ZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKCcvYS9iJykKKyAgICAg
ICAgZm9yIHByb3RvIGluIHJhbmdlKDAsIHBpY2tsZS5ISUdIRVNUX1BST1RPQ09MICsgMSk6Cisg
ICAgICAgICAgICBkdW1wZWQgPSBwaWNrbGUuZHVtcHMocCwgcHJvdG8pCisgICAgICAgICAgICBw
cCA9IHBpY2tsZS5sb2FkcyhkdW1wZWQpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHBwLl9f
Y2xhc3NfXywgcC5fX2NsYXNzX18pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBw
KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYXNoKHBwKSwgaGFzaChwKSkKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHBwKSwgc3RyKHApKQorCisgICAgIyBub3RlOiB0
aGlzIGlzIGEgbmV3IHRlc3Qgbm90IHBhcnQgb2YgdXBzdHJlYW0KKyAgICAjIHRlc3QgdGhhdCB1
bmljb2RlIHdvcmtzIG9uIFB5dGhvbiAyCisgICAgQHVuaXR0ZXN0LnNraXBJZigKKyAgICAgICAg
c2l4LnVuaWNocigweDAxMDApLmVuY29kZSgKKyAgICAgICAgICAgIHN5cy5nZXRmaWxlc3lzdGVt
ZW5jb2RpbmcoKSwgInJlcGxhY2UiKSA9PSBiIj8iLAorICAgICAgICAiZmlsZSBzeXN0ZW0gZW5j
b2Rpbmcgb25seSBzdXBwb3J0cyBhc2NpaSIpCisgICAgZGVmIHRlc3RfdW5pY29kZShzZWxmKToK
KyAgICAgICAgc2VsZi5jbHMoc2l4LnVuaWNocigweDAxMDApKQorCisKK2NsYXNzIFB1cmVQb3Np
eFBhdGhUZXN0KF9CYXNlUHVyZVBhdGhUZXN0LCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgY2xz
ID0gcGF0aGxpYi5QdXJlUG9zaXhQYXRoCisKKyAgICBkZWYgdGVzdF9yb290KHNlbGYpOgorICAg
ICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvYS9iJykucm9v
dCwgJy8nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8vL2EvYicpLnJvb3QsICcvJykK
KyAgICAgICAgIyBQT1NJWCBzcGVjaWFsIGNhc2UgZm9yIHR3byBsZWFkaW5nIHNsYXNoZXMKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvL2EvYicpLnJvb3QsICcvLycpCisKKyAgICBkZWYg
dGVzdF9lcShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0
Tm90RXF1YWwoUCgnYS9iJyksIFAoJ0EvYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAo
Jy9hJyksIFAoJy8vL2EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChQKCcvYScpLCBQ
KCcvL2EnKSkKKworICAgIGRlZiB0ZXN0X2FzX3VyaShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYu
Y2xzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLycpLmFzX3VyaSgpLCAnZmlsZTovLy8n
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy9hL2IuYycpLmFzX3VyaSgpLCAnZmlsZTov
Ly9hL2IuYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnL2EvYiUjYycpLmFzX3VyaSgp
LCAnZmlsZTovLy9hL2IlMjUlMjNjJykKKworICAgIEB3aXRoX2ZzZW5jb2RlCisgICAgZGVmIHRl
c3RfYXNfdXJpX25vbl9hc2NpaShzZWxmKToKKyAgICAgICAgZnJvbSB1cmxsaWIucGFyc2UgaW1w
b3J0IHF1b3RlX2Zyb21fYnl0ZXMKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIG9zLmZzZW5jb2RlKCdceGU5JykKKyAgICAgICAgZXhjZXB0IFVuaWNvZGVF
bmNvZGVFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIlxceGU5IGNhbm5vdCBiZSBl
bmNvZGVkIHRvIHRoZSBmaWxlc3lzdGVtIGVuY29kaW5nIikKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChQKCcvYS9iXHhlOScpLmFzX3VyaSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICdm
aWxlOi8vL2EvYicgKyBxdW90ZV9mcm9tX2J5dGVzKG9zLmZzZW5jb2RlKCdceGU5JykpKQorCisg
ICAgZGVmIHRlc3RfbWF0Y2goc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKFAoJ0EucHknKS5tYXRjaCgnYS5QWScpKQorCisgICAgZGVmIHRlc3Rf
aXNfYWJzb2x1dGUoc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKFAoKS5pc19hYnNvbHV0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAo
J2EnKS5pc19hYnNvbHV0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJ2EvYi8nKS5p
c19hYnNvbHV0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoUCgnLycpLmlzX2Fic29sdXRl
KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCcvYScpLmlzX2Fic29sdXRlKCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCcvYS9iLycpLmlzX2Fic29sdXRlKCkpCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShQKCcvL2EnKS5pc19hYnNvbHV0ZSgpKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoUCgnLy9hL2InKS5pc19hYnNvbHV0ZSgpKQorCisgICAgZGVmIHRlc3RfaXNfcmVzZXJ2
ZWQoc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBzZWxmLmFzc2VydElzKEZh
bHNlLCBQKCcnKS5pc19yZXNlcnZlZCgpKQorICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNlLCBQ
KCcvJykuaXNfcmVzZXJ2ZWQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhGYWxzZSwgUCgnL2Zv
by9iYXInKS5pc19yZXNlcnZlZCgpKQorICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNlLCBQKCcv
ZGV2L2Nvbi9QUk4vTlVMJykuaXNfcmVzZXJ2ZWQoKSkKKworICAgIGRlZiB0ZXN0X2pvaW4oc2Vs
Zik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUCgnLy9hJykKKyAgICAgICAg
cHAgPSBwLmpvaW5wYXRoKCdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcCwgUCgnLy9h
L2InKSkKKyAgICAgICAgcHAgPSBQKCcvYScpLmpvaW5wYXRoKCcvL2MnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBwLCBQKCcvL2MnKSkKKyAgICAgICAgcHAgPSBQKCcvL2EnKS5qb2lucGF0
aCgnL2MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCcvYycpKQorCisgICAgZGVm
IHRlc3RfZGl2KHNlbGYpOgorICAgICAgICAjIEJhc2ljYWxseSB0aGUgc2FtZSBhcyBqb2lucGF0
aCgpCisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUCgnLy9hJykKKyAgICAgICAg
cHAgPSBwIC8gJ2InCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHAsIFAoJy8vYS9iJykpCisg
ICAgICAgIHBwID0gUCgnL2EnKSAvICcvL2MnCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHAs
IFAoJy8vYycpKQorICAgICAgICBwcCA9IFAoJy8vYScpIC8gJy9jJworICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHBwLCBQKCcvYycpKQorCisKK2NsYXNzIFB1cmVXaW5kb3dzUGF0aFRlc3QoX0Jh
c2VQdXJlUGF0aFRlc3QsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBjbHMgPSBwYXRobGliLlB1
cmVXaW5kb3dzUGF0aAorCisgICAgZXF1aXZhbGVuY2VzID0gX0Jhc2VQdXJlUGF0aFRlc3QuZXF1
aXZhbGVuY2VzLmNvcHkoKQorICAgIGVxdWl2YWxlbmNlcy51cGRhdGUoeworICAgICAgICAnYzph
JzogWygnYzonLCAnYScpLCAoJ2M6JywgJ2EvJyksICgnLycsICdjOicsICdhJyldLAorICAgICAg
ICAnYzovYSc6IFsKKyAgICAgICAgICAgICgnYzovJywgJ2EnKSwgKCdjOicsICcvJywgJ2EnKSwg
KCdjOicsICcvYScpLAorICAgICAgICAgICAgKCcveicsICdjOi8nLCAnYScpLCAoJy8veC95Jywg
J2M6LycsICdhJyksCisgICAgICAgICAgICBdLAorICAgICAgICAnLy9hL2IvJzogWygnLy9hL2In
LCldLAorICAgICAgICAnLy9hL2IvYyc6IFsKKyAgICAgICAgICAgICgnLy9hL2InLCAnYycpLCAo
Jy8vYS9iLycsICdjJyksCisgICAgICAgICAgICBdLAorICAgIH0pCisKKyAgICBkZWYgdGVzdF9z
dHIoc2VsZik6CisgICAgICAgIHAgPSBzZWxmLmNscygnYS9iL2MnKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHN0cihwKSwgJ2FcXGJcXGMnKQorICAgICAgICBwID0gc2VsZi5jbHMoJ2M6L2Ev
Yi9jJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIocCksICdjOlxcYVxcYlxcYycpCisg
ICAgICAgIHAgPSBzZWxmLmNscygnLy9hL2InKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0
cihwKSwgJ1xcXFxhXFxiXFwnKQorICAgICAgICBwID0gc2VsZi5jbHMoJy8vYS9iL2MnKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgJ1xcXFxhXFxiXFxjJykKKyAgICAgICAgcCA9
IHNlbGYuY2xzKCcvL2EvYi9jL2QnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwg
J1xcXFxhXFxiXFxjXFxkJykKKworICAgIGRlZiB0ZXN0X3N0cl9zdWJjbGFzcyhzZWxmKToKKyAg
ICAgICAgc2VsZi5fY2hlY2tfc3RyX3N1YmNsYXNzKCdjOicpCisgICAgICAgIHNlbGYuX2NoZWNr
X3N0cl9zdWJjbGFzcygnYzphJykKKyAgICAgICAgc2VsZi5fY2hlY2tfc3RyX3N1YmNsYXNzKCdj
OmFcXGIudHh0JykKKyAgICAgICAgc2VsZi5fY2hlY2tfc3RyX3N1YmNsYXNzKCdjOlxcJykKKyAg
ICAgICAgc2VsZi5fY2hlY2tfc3RyX3N1YmNsYXNzKCdjOlxcYScpCisgICAgICAgIHNlbGYuX2No
ZWNrX3N0cl9zdWJjbGFzcygnYzpcXGFcXGIudHh0JykKKyAgICAgICAgc2VsZi5fY2hlY2tfc3Ry
X3N1YmNsYXNzKCdcXFxcc29tZVxcc2hhcmUnKQorICAgICAgICBzZWxmLl9jaGVja19zdHJfc3Vi
Y2xhc3MoJ1xcXFxzb21lXFxzaGFyZVxcYScpCisgICAgICAgIHNlbGYuX2NoZWNrX3N0cl9zdWJj
bGFzcygnXFxcXHNvbWVcXHNoYXJlXFxhXFxiLnR4dCcpCisKKyAgICBkZWYgdGVzdF9lcShzZWxm
KToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzph
L2InKSwgUCgnYzphL2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYicpLCBQ
KCdjOicsICdhJywgJ2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChQKCdjOmEvYicp
LCBQKCdkOmEvYicpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKFAoJ2M6YS9iJyksIFAo
J2M6L2EvYicpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKFAoJy9hL2InKSwgUCgnYzov
YS9iJykpCisgICAgICAgICMgQ2FzZS1pbnNlbnNpdGl2aXR5CisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoUCgnYS9CJyksIFAoJ0EvYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ0M6
YS9CJyksIFAoJ2M6QS9iJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLy9Tb21lL1NI
QVJFL2EvQicpLCBQKCcvL3NvbUUvc2hhcmUvQS9iJykpCisKKyAgICBAd2l0aF9mc2VuY29kZQor
ICAgIGRlZiB0ZXN0X2FzX3VyaShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBQKCcvYS9i
JykuYXNfdXJpKCkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToK
KyAgICAgICAgICAgIFAoJ2M6YS9iJykuYXNfdXJpKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCdjOi8nKS5hc191cmkoKSwgJ2ZpbGU6Ly8vYzovJykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChQKCdjOi9hL2IuYycpLmFzX3VyaSgpLCAnZmlsZTovLy9jOi9hL2IuYycpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzovYS9iJSNjJykuYXNfdXJpKCksICdmaWxlOi8vL2M6L2Ev
YiUyNSUyM2MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvYlx4ZTknKS5hc191
cmkoKSwgJ2ZpbGU6Ly8vYzovYS9iJUMzJUE5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQ
KCcvL3NvbWUvc2hhcmUvJykuYXNfdXJpKCksICdmaWxlOi8vc29tZS9zaGFyZS8nKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFAoJy8vc29tZS9zaGFyZS9hL2IuYycpLmFzX3VyaSgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICdmaWxlOi8vc29tZS9zaGFyZS9hL2IuYycpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoUCgnLy9zb21lL3NoYXJlL2EvYiUjY1x4ZTknKS5hc191cmkoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZTovL3NvbWUvc2hhcmUvYS9iJTI1JTIzYyVD
MyVBOScpCisKKyAgICBkZWYgdGVzdF9tYXRjaF9jb21tb24oc2VsZik6CisgICAgICAgIFAgPSBz
ZWxmLmNscworICAgICAgICAjIEFic29sdXRlIHBhdHRlcm5zCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShQKCdjOi9iLnB5JykubWF0Y2goJy8qLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShQKCdjOi9iLnB5JykubWF0Y2goJ2M6Ki5weScpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
UCgnYzovYi5weScpLm1hdGNoKCdjOi8qLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
UCgnZDovYi5weScpLm1hdGNoKCdjOi8qLnB5JykpICAjIHdyb25nIGRyaXZlCisgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoUCgnYi5weScpLm1hdGNoKCcvKi5weScpKQorICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKFAoJ2IucHknKS5tYXRjaCgnYzoqLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoUCgnYi5weScpLm1hdGNoKCdjOi8qLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoUCgnYzpiLnB5JykubWF0Y2goJy8qLnB5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
UCgnYzpiLnB5JykubWF0Y2goJ2M6LyoucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQ
KCcvYi5weScpLm1hdGNoKCdjOioucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCcv
Yi5weScpLm1hdGNoKCdjOi8qLnB5JykpCisgICAgICAgICMgVU5DIHBhdHRlcm5zCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShQKCcvL3NvbWUvc2hhcmUvYS5weScpLm1hdGNoKCcvKi5weScpKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUoUCgnLy9zb21lL3NoYXJlL2EucHknKS5tYXRjaCgnLy9z
b21lL3NoYXJlLyoucHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCcvL290aGVyL3No
YXJlL2EucHknKS5tYXRjaCgnLy9zb21lL3NoYXJlLyoucHknKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShQKCcvL3NvbWUvc2hhcmUvYS9iLnB5JykubWF0Y2goJy8vc29tZS9zaGFyZS8qLnB5
JykpCisgICAgICAgICMgQ2FzZS1pbnNlbnNpdGl2aXR5CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShQKCdCLnB5JykubWF0Y2goJ2IuUFknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJ2M6
L2EvQi5QeScpLm1hdGNoKCdDOi9BLyoucFknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAo
Jy8vU29tZS9TaGFyZS9CLlB5JykubWF0Y2goJy8vc29tRS9zaGFyRS8qLnBZJykpCisKKyAgICBk
ZWYgdGVzdF9vcmRlcmluZ19jb21tb24oc2VsZik6CisgICAgICAgICMgQ2FzZS1pbnNlbnNpdGl2
aXR5CisgICAgICAgIGRlZiBhc3NlcnRPcmRlcmVkRXF1YWwoYSwgYik6CisgICAgICAgICAgICBz
ZWxmLmFzc2VydExlc3NFcXVhbChhLCBiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVy
RXF1YWwoYiwgYSkKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKCdjOkEvYicp
CisgICAgICAgIHEgPSBQKCdDOmEvQicpCisgICAgICAgIGFzc2VydE9yZGVyZWRFcXVhbChwLCBx
KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHAgPCBxKQorICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKHAgPiBxKQorICAgICAgICBwID0gUCgnLy9zb21lL1NoYXJlL0EvYicpCisgICAgICAgIHEg
PSBQKCcvL1NvbWUvU0hBUkUvYS9CJykKKyAgICAgICAgYXNzZXJ0T3JkZXJlZEVxdWFsKHAsIHEp
CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocCA8IHEpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UocCA+IHEpCisKKyAgICBkZWYgdGVzdF9wYXJ0cyhzZWxmKToKKyAgICAgICAgUCA9IHNlbGYu
Y2xzCisgICAgICAgIHAgPSBQKCdjOmEvYicpCisgICAgICAgIHBhcnRzID0gcC5wYXJ0cworICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnRzLCAoJ2M6JywgJ2EnLCAnYicpKQorICAgICAgICBw
ID0gUCgnYzovYS9iJykKKyAgICAgICAgcGFydHMgPSBwLnBhcnRzCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocGFydHMsICgnYzpcXCcsICdhJywgJ2InKSkKKyAgICAgICAgcCA9IFAoJy8vYS9i
L2MvZCcpCisgICAgICAgIHBhcnRzID0gcC5wYXJ0cworICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBhcnRzLCAoJ1xcXFxhXFxiXFwnLCAnYycsICdkJykpCisKKyAgICBkZWYgdGVzdF9wYXJlbnQo
c2VsZik6CisgICAgICAgICMgQW5jaG9yZWQKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAg
IHAgPSBQKCd6OmEvYi9jJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnBhcmVudCwgUCgn
ejphL2InKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnBhcmVudC5wYXJlbnQsIFAoJ3o6
YScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucGFyZW50LnBhcmVudC5wYXJlbnQsIFAo
J3o6JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5wYXJlbnQucGFyZW50LnBhcmVudC5w
YXJlbnQsIFAoJ3o6JykpCisgICAgICAgIHAgPSBQKCd6Oi9hL2IvYycpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocC5wYXJlbnQsIFAoJ3o6L2EvYicpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHAucGFyZW50LnBhcmVudCwgUCgnejovYScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHAucGFyZW50LnBhcmVudC5wYXJlbnQsIFAoJ3o6LycpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHAucGFyZW50LnBhcmVudC5wYXJlbnQucGFyZW50LCBQKCd6Oi8nKSkKKyAgICAgICAgcCA9
IFAoJy8vYS9iL2MvZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5wYXJlbnQsIFAoJy8v
YS9iL2MnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnBhcmVudC5wYXJlbnQsIFAoJy8v
YS9iJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5wYXJlbnQucGFyZW50LnBhcmVudCwg
UCgnLy9hL2InKSkKKworICAgIGRlZiB0ZXN0X3BhcmVudHMoc2VsZik6CisgICAgICAgICMgQW5j
aG9yZWQKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKCd6OmEvYi8nKQorICAg
ICAgICBwYXIgPSBwLnBhcmVudHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocGFyKSwg
MikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJbMF0sIFAoJ3o6YScpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHBhclsxXSwgUCgnejonKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChsaXN0KHBhciksIFtQKCd6OmEnKSwgUCgnejonKV0pCisgICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoSW5kZXhFcnJvcik6CisgICAgICAgICAgICBwYXJbMl0KKyAgICAgICAgcCA9IFAo
J3o6L2EvYi8nKQorICAgICAgICBwYXIgPSBwLnBhcmVudHMKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsZW4ocGFyKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJbMF0sIFAoJ3o6
L2EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJbMV0sIFAoJ3o6LycpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocGFyKSwgW1AoJ3o6L2EnKSwgUCgnejovJyldKQorICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IpOgorICAgICAgICAgICAgcGFy
WzJdCisgICAgICAgIHAgPSBQKCcvL2EvYi9jL2QnKQorICAgICAgICBwYXIgPSBwLnBhcmVudHMK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocGFyKSwgMikKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwYXJbMF0sIFAoJy8vYS9iL2MnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
YXJbMV0sIFAoJy8vYS9iJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChwYXIpLCBb
UCgnLy9hL2IvYycpLCBQKCcvL2EvYicpXSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhJbmRleEVycm9yKToKKyAgICAgICAgICAgIHBhclsyXQorCisgICAgZGVmIHRlc3RfZHJpdmUo
c2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAo
J2M6JykuZHJpdmUsICdjOicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzphL2InKS5k
cml2ZSwgJ2M6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi8nKS5kcml2ZSwgJ2M6
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi9hL2IvJykuZHJpdmUsICdjOicpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLy9hL2InKS5kcml2ZSwgJ1xcXFxhXFxiJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvL2EvYi8nKS5kcml2ZSwgJ1xcXFxhXFxiJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvL2EvYi9jL2QnKS5kcml2ZSwgJ1xcXFxhXFxiJykK
KworICAgIGRlZiB0ZXN0X3Jvb3Qoc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6Jykucm9vdCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoUCgnYzphL2InKS5yb290LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdj
Oi8nKS5yb290LCAnXFwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvYi8nKS5y
b290LCAnXFwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8vYS9iJykucm9vdCwgJ1xc
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvL2EvYi8nKS5yb290LCAnXFwnKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8vYS9iL2MvZCcpLnJvb3QsICdcXCcpCisKKyAgICBk
ZWYgdGVzdF9hbmNob3Ioc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFAoJ2M6JykuYW5jaG9yLCAnYzonKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFAoJ2M6YS9iJykuYW5jaG9yLCAnYzonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAo
J2M6LycpLmFuY2hvciwgJ2M6XFwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2Ev
Yi8nKS5hbmNob3IsICdjOlxcJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCcvL2EvYicp
LmFuY2hvciwgJ1xcXFxhXFxiXFwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8vYS9i
LycpLmFuY2hvciwgJ1xcXFxhXFxiXFwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJy8v
YS9iL2MvZCcpLmFuY2hvciwgJ1xcXFxhXFxiXFwnKQorCisgICAgZGVmIHRlc3RfbmFtZShzZWxm
KToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzon
KS5uYW1lLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi8nKS5uYW1lLCAnJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYicpLm5hbWUsICdiJykKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChQKCdjOi9hL2InKS5uYW1lLCAnYicpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoUCgnYzphL2IucHknKS5uYW1lLCAnYi5weScpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoUCgnYzovYS9iLnB5JykubmFtZSwgJ2IucHknKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFAoJy8vTXkucHkvU2hhcmUucGhwJykubmFtZSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoUCgnLy9NeS5weS9TaGFyZS5waHAvYS9iJykubmFtZSwgJ2InKQorCisgICAgZGVmIHRl
c3Rfc3VmZml4KHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChQKCdjOicpLnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgn
YzovJykuc3VmZml4LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYicpLnN1
ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzovYS9iJykuc3VmZml4LCAn
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYi5weScpLnN1ZmZpeCwgJy5weScp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzovYS9iLnB5Jykuc3VmZml4LCAnLnB5JykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvLmhncmMnKS5zdWZmaXgsICcnKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvLmhncmMnKS5zdWZmaXgsICcnKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS8uaGcucmMnKS5zdWZmaXgsICcucmMnKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvLmhnLnJjJykuc3VmZml4LCAnLnJjJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYi50YXIuZ3onKS5zdWZmaXgsICcuZ3onKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2EvYi50YXIuZ3onKS5zdWZmaXgsICcuZ3onKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS9Tb21lIG5hbWUuIEVuZGluZyB3aXRoIGEg
ZG90LicpLnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzovYS9Tb21l
IG5hbWUuIEVuZGluZyB3aXRoIGEgZG90LicpLnN1ZmZpeCwgJycpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoUCgnLy9NeS5weS9TaGFyZS5waHAnKS5zdWZmaXgsICcnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFAoJy8vTXkucHkvU2hhcmUucGhwL2EvYicpLnN1ZmZpeCwgJycpCisKKyAg
ICBkZWYgdGVzdF9zdWZmaXhlcyhzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzonKS5zdWZmaXhlcywgW10pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoUCgnYzovJykuc3VmZml4ZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFAoJ2M6YS9iJykuc3VmZml4ZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6
L2EvYicpLnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYi5w
eScpLnN1ZmZpeGVzLCBbJy5weSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6L2Ev
Yi5weScpLnN1ZmZpeGVzLCBbJy5weSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6
YS8uaGdyYycpLnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi9h
Ly5oZ3JjJykuc3VmZml4ZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS8u
aGcucmMnKS5zdWZmaXhlcywgWycucmMnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdj
Oi9hLy5oZy5yYycpLnN1ZmZpeGVzLCBbJy5yYyddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFAoJ2M6YS9iLnRhci5neicpLnN1ZmZpeGVzLCBbJy50YXInLCAnLmd6J10pCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoUCgnYzovYS9iLnRhci5neicpLnN1ZmZpeGVzLCBbJy50YXInLCAnLmd6
J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLy9NeS5weS9TaGFyZS5waHAnKS5zdWZm
aXhlcywgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnLy9NeS5weS9TaGFyZS5waHAv
YS9iJykuc3VmZml4ZXMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS9Tb21l
IG5hbWUuIEVuZGluZyB3aXRoIGEgZG90LicpLnN1ZmZpeGVzLCBbXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChQKCdjOi9hL1NvbWUgbmFtZS4gRW5kaW5nIHdpdGggYSBkb3QuJykuc3VmZml4
ZXMsIFtdKQorCisgICAgZGVmIHRlc3Rfc3RlbShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xz
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzonKS5zdGVtLCAnJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChQKCdjOi4nKS5zdGVtLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChQKCdjOi4uJykuc3RlbSwgJy4uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi8n
KS5zdGVtLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYicpLnN0ZW0sICdi
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYi5weScpLnN0ZW0sICdiJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvLmhncmMnKS5zdGVtLCAnLmhncmMnKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS8uaGcucmMnKS5zdGVtLCAnLmhnJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOmEvYi50YXIuZ3onKS5zdGVtLCAnYi50YXInKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS9Tb21lIG5hbWUuIEVuZGluZyB3aXRoIGEgZG90
LicpLnN0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ1NvbWUgbmFtZS4gRW5kaW5nIHdp
dGggYSBkb3QuJykKKworICAgIGRlZiB0ZXN0X3dpdGhfbmFtZShzZWxmKToKKyAgICAgICAgUCA9
IHNlbGYuY2xzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUCgnYzphL2InKS53aXRoX25hbWUo
J2QueG1sJyksIFAoJ2M6YS9kLnhtbCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6
L2EvYicpLndpdGhfbmFtZSgnZC54bWwnKSwgUCgnYzovYS9kLnhtbCcpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAorICAgICAgICAgICAgUCgnYzphL0RvdCBlbmRpbmcuJykud2l0aF9uYW1l
KCdkLnhtbCcpLCBQKCdjOmEvZC54bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAg
ICAgICAgICAgIFAoJ2M6L2EvRG90IGVuZGluZy4nKS53aXRoX25hbWUoJ2QueG1sJyksIFAoJ2M6
L2EvZC54bWwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnYzon
KS53aXRoX25hbWUsICdkLnhtbCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJy
b3IsIFAoJ2M6LycpLndpdGhfbmFtZSwgJ2QueG1sJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvciwgUCgnLy9NeS9TaGFyZScpLndpdGhfbmFtZSwgJ2QueG1sJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnYzphL2InKS53aXRoX25hbWUsICdk
OicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2M6YS9iJykud2l0
aF9uYW1lLCAnZDplJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgn
YzphL2InKS53aXRoX25hbWUsICdkOi9lJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvciwgUCgnYzphL2InKS53aXRoX25hbWUsICcvL015L1NoYXJlJykKKworICAgIGRlZiB0
ZXN0X3dpdGhfc3VmZml4KHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChQKCdjOmEvYicpLndpdGhfc3VmZml4KCcuZ3onKSwgUCgnYzphL2IuZ3on
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQKCdjOi9hL2InKS53aXRoX3N1ZmZpeCgnLmd6
JyksIFAoJ2M6L2EvYi5neicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFAoJ2M6YS9iLnB5
Jykud2l0aF9zdWZmaXgoJy5neicpLCBQKCdjOmEvYi5neicpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFAoJ2M6L2EvYi5weScpLndpdGhfc3VmZml4KCcuZ3onKSwgUCgnYzovYS9iLmd6Jykp
CisgICAgICAgICMgUGF0aCBkb2Vzbid0IGhhdmUgYSAiZmlsZW5hbWUiIGNvbXBvbmVudAorICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCcnKS53aXRoX3N1ZmZpeCwgJy5n
eicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJy4nKS53aXRoX3N1
ZmZpeCwgJy5neicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJy8n
KS53aXRoX3N1ZmZpeCwgJy5neicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJy
b3IsIFAoJy8vTXkvU2hhcmUnKS53aXRoX3N1ZmZpeCwgJy5neicpCisgICAgICAgICMgSW52YWxp
ZCBzdWZmaXgKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgUCgnYzphL2In
KS53aXRoX3N1ZmZpeCwgJ2d6JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJv
ciwgUCgnYzphL2InKS53aXRoX3N1ZmZpeCwgJy8nKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhWYWx1ZUVycm9yLCBQKCdjOmEvYicpLndpdGhfc3VmZml4LCAnXFwnKQorICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdjOmEvYicpLndpdGhfc3VmZml4LCAnYzonKQor
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdjOmEvYicpLndpdGhfc3Vm
Zml4LCAnLy5neicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2M6
YS9iJykud2l0aF9zdWZmaXgsICdcXC5neicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZh
bHVlRXJyb3IsIFAoJ2M6YS9iJykud2l0aF9zdWZmaXgsICdjOi5neicpCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2M6YS9iJykud2l0aF9zdWZmaXgsICdjL2QnKQor
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBQKCdjOmEvYicpLndpdGhfc3Vm
Zml4LCAnY1xcZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIFAoJ2M6
YS9iJykud2l0aF9zdWZmaXgsICcuYy9kJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvciwgUCgnYzphL2InKS53aXRoX3N1ZmZpeCwgJy5jXFxkJykKKworICAgIGRlZiB0ZXN0
X3JlbGF0aXZlX3RvKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9IFAo
J0M6Rm9vL0JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90byhQKCdj
OicpKSwgUCgnRm9vL0JhcicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVsYXRpdmVf
dG8oJ2M6JyksIFAoJ0Zvby9CYXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0
aXZlX3RvKFAoJ2M6Zm9PJykpLCBQKCdCYXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
LnJlbGF0aXZlX3RvKCdjOmZvTycpLCBQKCdCYXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwLnJlbGF0aXZlX3RvKCdjOmZvTy8nKSwgUCgnQmFyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocC5yZWxhdGl2ZV90byhQKCdjOmZvTy9iYVInKSksIFAoKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCdjOmZvTy9iYVInKSwgUCgpKQorICAgICAgICAjIFVu
cmVsYXRlZCBwYXRocworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJl
bGF0aXZlX3RvLCBQKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAu
cmVsYXRpdmVfdG8sICcnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBw
LnJlbGF0aXZlX3RvLCBQKCdkOicpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVy
cm9yLCBwLnJlbGF0aXZlX3RvLCBQKCcvJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZh
bHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJ0ZvbycpKQorICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCcvRm9vJykpCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJ0M6L0ZvbycpKQorICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCdDOkZv
by9CYXIvQmF6JykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVs
YXRpdmVfdG8sIFAoJ0M6Rm9vL0JheicpKQorICAgICAgICBwID0gUCgnQzovRm9vL0JhcicpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90byhQKCdjOicpKSwgUCgnL0Zvby9C
YXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCdjOicpLCBQKCcv
Rm9vL0JhcicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwLnJlbGF0aXZlX3RvKFAo
J2M6JykpKSwgJ1xcRm9vXFxCYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwLnJl
bGF0aXZlX3RvKCdjOicpKSwgJ1xcRm9vXFxCYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHAucmVsYXRpdmVfdG8oUCgnYzovJykpLCBQKCdGb28vQmFyJykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocC5yZWxhdGl2ZV90bygnYzovJyksIFAoJ0Zvby9CYXInKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKFAoJ2M6L2ZvTycpKSwgUCgnQmFyJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90bygnYzovZm9PJyksIFAoJ0JhcicpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVsYXRpdmVfdG8oJ2M6L2ZvTy8nKSwgUCgnQmFy
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90byhQKCdjOi9mb08vYmFS
JykpLCBQKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90bygnYzovZm9P
L2JhUicpLCBQKCkpCisgICAgICAgICMgVW5yZWxhdGVkIHBhdGhzCisgICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJ0M6L0JheicpKQorICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCdDOi9Gb28v
QmFyL0JheicpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0
aXZlX3RvLCBQKCdDOi9Gb28vQmF6JykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVl
RXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJ0M6Rm9vJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJ2Q6JykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJ2Q6LycpKQorICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCcvJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAucmVsYXRpdmVfdG8sIFAoJy9Gb28n
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcC5yZWxhdGl2ZV90bywg
UCgnLy9DL0ZvbycpKQorICAgICAgICAjIFVOQyBwYXRocworICAgICAgICBwID0gUCgnLy9TZXJ2
ZXIvU2hhcmUvRm9vL0JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90
byhQKCcvL3NFcnZlci9zSGFyZScpKSwgUCgnRm9vL0JhcicpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHAucmVsYXRpdmVfdG8oJy8vc0VydmVyL3NIYXJlJyksIFAoJ0Zvby9CYXInKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKCcvL3NFcnZlci9zSGFyZS8nKSwg
UCgnRm9vL0JhcicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVsYXRpdmVfdG8oUCgn
Ly9zRXJ2ZXIvc0hhcmUvRm9vJykpLCBQKCdCYXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwLnJlbGF0aXZlX3RvKCcvL3NFcnZlci9zSGFyZS9Gb28nKSwgUCgnQmFyJykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocC5yZWxhdGl2ZV90bygnLy9zRXJ2ZXIvc0hhcmUvRm9vLycpLCBQ
KCdCYXInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJlbGF0aXZlX3RvKFAoJy8vc0Vy
dmVyL3NIYXJlL0Zvby9CYXInKSksIFAoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnJl
bGF0aXZlX3RvKCcvL3NFcnZlci9zSGFyZS9Gb28vQmFyJyksIFAoKSkKKyAgICAgICAgIyBVbnJl
bGF0ZWQgcGF0aHMKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcC5yZWxh
dGl2ZV90bywgUCgnL1NlcnZlci9TaGFyZS9Gb28nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvciwgcC5yZWxhdGl2ZV90bywgUCgnYzovU2VydmVyL1NoYXJlL0ZvbycpKQor
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLnJlbGF0aXZlX3RvLCBQKCcv
L3ovU2hhcmUvRm9vJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAu
cmVsYXRpdmVfdG8sIFAoJy8vU2VydmVyL3ovRm9vJykpCisKKyAgICBkZWYgdGVzdF9pc19hYnNv
bHV0ZShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgICMgVW5kZXIgTlQsIG9u
bHkgcGF0aHMgd2l0aCBib3RoIGEgZHJpdmUgYW5kIGEgcm9vdCBhcmUgYWJzb2x1dGUKKyAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShQKCkuaXNfYWJzb2x1dGUoKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShQKCdhJykuaXNfYWJzb2x1dGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQ
KCdhL2IvJykuaXNfYWJzb2x1dGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCcvJyku
aXNfYWJzb2x1dGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQKCcvYScpLmlzX2Fic29s
dXRlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUCgnL2EvYi8nKS5pc19hYnNvbHV0ZSgp
KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFAoJ2M6JykuaXNfYWJzb2x1dGUoKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShQKCdjOmEnKS5pc19hYnNvbHV0ZSgpKQorICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKFAoJ2M6YS9iLycpLmlzX2Fic29sdXRlKCkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShQKCdjOi8nKS5pc19hYnNvbHV0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
UCgnYzovYScpLmlzX2Fic29sdXRlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCdjOi9h
L2IvJykuaXNfYWJzb2x1dGUoKSkKKyAgICAgICAgIyBVTkMgcGF0aHMgYXJlIGFic29sdXRlIGJ5
IGRlZmluaXRpb24KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJy8vYS9iJykuaXNfYWJzb2x1
dGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJy8vYS9iLycpLmlzX2Fic29sdXRlKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQKCcvL2EvYi9jJykuaXNfYWJzb2x1dGUoKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKFAoJy8vYS9iL2MvZCcpLmlzX2Fic29sdXRlKCkpCisKKyAg
ICBkZWYgdGVzdF9qb2luKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9
IFAoJ0M6L2EvYicpCisgICAgICAgIHBwID0gcC5qb2lucGF0aCgneC95JykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwcCwgUCgnQzovYS9iL3gveScpKQorICAgICAgICBwcCA9IHAuam9pbnBh
dGgoJy94L3knKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCdDOi94L3knKSkKKyAg
ICAgICAgIyBKb2luaW5nIHdpdGggYSBkaWZmZXJlbnQgZHJpdmUgPT4gdGhlIGZpcnN0IHBhdGgg
aXMgaWdub3JlZCwgZXZlbgorICAgICAgICAjIGlmIHRoZSBzZWNvbmQgcGF0aCBpcyByZWxhdGl2
ZS4KKyAgICAgICAgcHAgPSBwLmpvaW5wYXRoKCdEOngveScpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocHAsIFAoJ0Q6eC95JykpCisgICAgICAgIHBwID0gcC5qb2lucGF0aCgnRDoveC95JykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcCwgUCgnRDoveC95JykpCisgICAgICAgIHBwID0g
cC5qb2lucGF0aCgnLy9ob3N0L3NoYXJlL3gveScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cHAsIFAoJy8vaG9zdC9zaGFyZS94L3knKSkKKyAgICAgICAgIyBKb2luaW5nIHdpdGggdGhlIHNh
bWUgZHJpdmUgPT4gdGhlIGZpcnN0IHBhdGggaXMgYXBwZW5kZWQgdG8gaWYKKyAgICAgICAgIyB0
aGUgc2Vjb25kIHBhdGggaXMgcmVsYXRpdmUuCisgICAgICAgIHBwID0gcC5qb2lucGF0aCgnYzp4
L3knKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwLCBQKCdDOi9hL2IveC95JykpCisgICAg
ICAgIHBwID0gcC5qb2lucGF0aCgnYzoveC95JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
cCwgUCgnQzoveC95JykpCisKKyAgICBkZWYgdGVzdF9kaXYoc2VsZik6CisgICAgICAgICMgQmFz
aWNhbGx5IHRoZSBzYW1lIGFzIGpvaW5wYXRoKCkKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAg
ICAgIHAgPSBQKCdDOi9hL2InKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAgLyAneC95Jywg
UCgnQzovYS9iL3gveScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAgLyAneCcgLyAneScs
IFAoJ0M6L2EvYi94L3knKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwIC8gJy94L3knLCBQ
KCdDOi94L3knKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwIC8gJy94JyAvICd5JywgUCgn
QzoveC95JykpCisgICAgICAgICMgSm9pbmluZyB3aXRoIGEgZGlmZmVyZW50IGRyaXZlID0+IHRo
ZSBmaXJzdCBwYXRoIGlzIGlnbm9yZWQsIGV2ZW4KKyAgICAgICAgIyBpZiB0aGUgc2Vjb25kIHBh
dGggaXMgcmVsYXRpdmUuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocCAvICdEOngveScsIFAo
J0Q6eC95JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocCAvICdEOicgLyAneC95JywgUCgn
RDp4L3knKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwIC8gJ0Q6L3gveScsIFAoJ0Q6L3gv
eScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAgLyAnRDonIC8gJy94L3knLCBQKCdEOi94
L3knKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwIC8gJy8vaG9zdC9zaGFyZS94L3knLCBQ
KCcvL2hvc3Qvc2hhcmUveC95JykpCisgICAgICAgICMgSm9pbmluZyB3aXRoIHRoZSBzYW1lIGRy
aXZlID0+IHRoZSBmaXJzdCBwYXRoIGlzIGFwcGVuZGVkIHRvIGlmCisgICAgICAgICMgdGhlIHNl
Y29uZCBwYXRoIGlzIHJlbGF0aXZlLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAgLyAnYzp4
L3knLCBQKCdDOi9hL2IveC95JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocCAvICdjOi94
L3knLCBQKCdDOi94L3knKSkKKworICAgIGRlZiB0ZXN0X2lzX3Jlc2VydmVkKHNlbGYpOgorICAg
ICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhGYWxzZSwgUCgnJykuaXNf
cmVzZXJ2ZWQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhGYWxzZSwgUCgnLycpLmlzX3Jlc2Vy
dmVkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoRmFsc2UsIFAoJy9mb28vYmFyJykuaXNfcmVz
ZXJ2ZWQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhUcnVlLCBQKCdjb24nKS5pc19yZXNlcnZl
ZCgpKQorICAgICAgICBzZWxmLmFzc2VydElzKFRydWUsIFAoJ05VTCcpLmlzX3Jlc2VydmVkKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1ZSwgUCgnTlVMLnR4dCcpLmlzX3Jlc2VydmVkKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1ZSwgUCgnY29tMScpLmlzX3Jlc2VydmVkKCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1ZSwgUCgnY29tOS5iYXInKS5pc19yZXNlcnZlZCgpKQor
ICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNlLCBQKCdiYXIuY29tOScpLmlzX3Jlc2VydmVkKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1ZSwgUCgnbHB0MScpLmlzX3Jlc2VydmVkKCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1ZSwgUCgnbHB0OS5iYXInKS5pc19yZXNlcnZlZCgpKQor
ICAgICAgICBzZWxmLmFzc2VydElzKEZhbHNlLCBQKCdiYXIubHB0OScpLmlzX3Jlc2VydmVkKCkp
CisgICAgICAgICMgT25seSB0aGUgbGFzdCBjb21wb25lbnQgbWF0dGVycworICAgICAgICBzZWxm
LmFzc2VydElzKEZhbHNlLCBQKCdjOi9OVUwvY29uL2JheicpLmlzX3Jlc2VydmVkKCkpCisgICAg
ICAgICMgVU5DIHBhdGhzIGFyZSBuZXZlciByZXNlcnZlZAorICAgICAgICBzZWxmLmFzc2VydElz
KEZhbHNlLCBQKCcvL215L3NoYXJlL251bC9jb24vYXV4JykuaXNfcmVzZXJ2ZWQoKSkKKworCitj
bGFzcyBQdXJlUGF0aFRlc3QoX0Jhc2VQdXJlUGF0aFRlc3QsIHVuaXR0ZXN0LlRlc3RDYXNlKToK
KyAgICBjbHMgPSBwYXRobGliLlB1cmVQYXRoCisKKyAgICBkZWYgdGVzdF9jb25jcmV0ZV9jbGFz
cyhzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKCdhJykKKyAgICAgICAgc2VsZi5hc3NlcnRJ
cygKKyAgICAgICAgICAgIHR5cGUocCksCisgICAgICAgICAgICBwYXRobGliLlB1cmVXaW5kb3dz
UGF0aAorICAgICAgICAgICAgaWYgb3MubmFtZSA9PSAnbnQnIGVsc2UgcGF0aGxpYi5QdXJlUG9z
aXhQYXRoKQorCisgICAgZGVmIHRlc3RfZGlmZmVyZW50X2ZsYXZvdXJzX3VuZXF1YWwoc2VsZik6
CisgICAgICAgIHAgPSBwYXRobGliLlB1cmVQb3NpeFBhdGgoJ2EnKQorICAgICAgICBxID0gcGF0
aGxpYi5QdXJlV2luZG93c1BhdGgoJ2EnKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHAs
IHEpCisKKyAgICBAdW5pdHRlc3Quc2tpcElmKHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCksCisg
ICAgICAgICAgICAgICAgICAgICAnTW9zdCB0eXBlcyBhcmUgb3JkZXJhYmxlIGluIFB5dGhvbiAy
JykKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfZmxhdm91cnNfdW5vcmRlcmVkKHNlbGYpOgorICAg
ICAgICBwID0gcGF0aGxpYi5QdXJlUG9zaXhQYXRoKCdhJykKKyAgICAgICAgcSA9IHBhdGhsaWIu
UHVyZVdpbmRvd3NQYXRoKCdhJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBl
RXJyb3IpOgorICAgICAgICAgICAgcCA8IHEKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgcCA8PSBxCisgICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIHAgPiBxCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIHAgPj0gcQorCisKKyMKKyMg
VGVzdHMgZm9yIHRoZSBjb25jcmV0ZSBjbGFzc2VzCisjCisKKyMgTWFrZSBzdXJlIGFueSBzeW1i
b2xpYyBsaW5rcyBpbiB0aGUgYmFzZSB0ZXN0IHBhdGggYXJlIHJlc29sdmVkCitCQVNFID0gb3Mu
cGF0aC5yZWFscGF0aChURVNURk4pCisKKworZGVmIGpvaW4oKngpOgorICAgIHJldHVybiBvcy5w
YXRoLmpvaW4oQkFTRSwgKngpCisKKworZGVmIHJlbF9qb2luKCp4KToKKyAgICByZXR1cm4gb3Mu
cGF0aC5qb2luKFRFU1RGTiwgKngpCisKKworb25seV9udCA9IHVuaXR0ZXN0LnNraXBJZihvcy5u
YW1lICE9ICdudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0IHJlcXVpcmVzIGEg
V2luZG93cy1jb21wYXRpYmxlIHN5c3RlbScpCitvbmx5X3Bvc2l4ID0gdW5pdHRlc3Quc2tpcElm
KG9zLm5hbWUgPT0gJ250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3QgcmVx
dWlyZXMgYSBQT1NJWC1jb21wYXRpYmxlIHN5c3RlbScpCisKKworQG9ubHlfcG9zaXgKK2NsYXNz
IFBvc2l4UGF0aEFzUHVyZVRlc3QoUHVyZVBvc2l4UGF0aFRlc3QpOgorICAgIGNscyA9IHBhdGhs
aWIuUG9zaXhQYXRoCisKKworQG9ubHlfbnQKK2NsYXNzIFdpbmRvd3NQYXRoQXNQdXJlVGVzdChQ
dXJlV2luZG93c1BhdGhUZXN0KToKKyAgICBjbHMgPSBwYXRobGliLldpbmRvd3NQYXRoCisKKyAg
ICBkZWYgdGVzdF9vd25lcihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvcik6CisgICAgICAgICAgICBQ
KCdjOi8nKS5vd25lcigpCisKKyAgICBkZWYgdGVzdF9ncm91cChzZWxmKToKKyAgICAgICAgUCA9
IHNlbGYuY2xzCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRF
cnJvcik6CisgICAgICAgICAgICBQKCdjOi8nKS5ncm91cCgpCisKKworY2xhc3MgX0Jhc2VQYXRo
VGVzdChvYmplY3QpOgorICAgICIiIlRlc3RzIGZvciB0aGUgRlMtYWNjZXNzaW5nIGZ1bmN0aW9u
YWxpdGllcyBvZiB0aGUgUGF0aCBjbGFzc2VzLiIiIgorCisgICAgIyAoQkFTRSkKKyAgICAjICB8
CisgICAgIyAgfC0tIGJyb2tlbkxpbmsgLT4gbm9uLWV4aXN0aW5nCisgICAgIyAgfC0tIGRpckEK
KyAgICAjICB8ICAgYC0tIGxpbmtDIC0+IC4uL2RpckIKKyAgICAjICB8LS0gZGlyQgorICAgICMg
IHwgICB8LS0gZmlsZUIKKyAgICAjICB8ICAgYC0tIGxpbmtEIC0+IC4uL2RpckIKKyAgICAjICB8
LS0gZGlyQworICAgICMgIHwgICB8LS0gZGlyRAorICAgICMgIHwgICB8ICAgYC0tIGZpbGVECisg
ICAgIyAgfCAgIGAtLSBmaWxlQworICAgICMgIHwtLSBkaXJFICAjIE5vIHBlcm1pc3Npb25zCisg
ICAgIyAgfC0tIGZpbGVBCisgICAgIyAgfC0tIGxpbmtBIC0+IGZpbGVBCisgICAgIyAgYC0tIGxp
bmtCIC0+IGRpckIKKyAgICAjCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIGRlZiBj
bGVhbnVwKCk6CisgICAgICAgICAgICBvcy5jaG1vZChqb2luKCdkaXJFJyksIDBvNzc3KQorICAg
ICAgICAgICAgc3VwcG9ydC5ybXRyZWUoQkFTRSkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGNs
ZWFudXApCisgICAgICAgIG9zLm1rZGlyKEJBU0UpCisgICAgICAgIG9zLm1rZGlyKGpvaW4oJ2Rp
ckEnKSkKKyAgICAgICAgb3MubWtkaXIoam9pbignZGlyQicpKQorICAgICAgICBvcy5ta2Rpcihq
b2luKCdkaXJDJykpCisgICAgICAgIG9zLm1rZGlyKGpvaW4oJ2RpckMnLCAnZGlyRCcpKQorICAg
ICAgICBvcy5ta2Rpcihqb2luKCdkaXJFJykpCisgICAgICAgIHdpdGggb3Blbihqb2luKCdmaWxl
QScpLCAnd2InKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZShiInRoaXMgaXMgZmlsZSBBXG4i
KQorICAgICAgICB3aXRoIG9wZW4oam9pbignZGlyQicsICdmaWxlQicpLCAnd2InKSBhcyBmOgor
ICAgICAgICAgICAgZi53cml0ZShiInRoaXMgaXMgZmlsZSBCXG4iKQorICAgICAgICB3aXRoIG9w
ZW4oam9pbignZGlyQycsICdmaWxlQycpLCAnd2InKSBhcyBmOgorICAgICAgICAgICAgZi53cml0
ZShiInRoaXMgaXMgZmlsZSBDXG4iKQorICAgICAgICB3aXRoIG9wZW4oam9pbignZGlyQycsICdk
aXJEJywgJ2ZpbGVEJyksICd3YicpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKGIidGhpcyBp
cyBmaWxlIERcbiIpCisgICAgICAgIG9zLmNobW9kKGpvaW4oJ2RpckUnKSwgMCkKKyAgICAgICAg
aWYgc3VwcG9ydF9jYW5fc3ltbGluaygpOgorICAgICAgICAgICAgIyBSZWxhdGl2ZSBzeW1saW5r
cworICAgICAgICAgICAgb3Muc3ltbGluaygnZmlsZUEnLCBqb2luKCdsaW5rQScpKQorICAgICAg
ICAgICAgb3Muc3ltbGluaygnbm9uLWV4aXN0aW5nJywgam9pbignYnJva2VuTGluaycpKQorICAg
ICAgICAgICAgc2VsZi5kaXJsaW5rKCdkaXJCJywgam9pbignbGlua0InKSkKKyAgICAgICAgICAg
IHNlbGYuZGlybGluayhvcy5wYXRoLmpvaW4oJy4uJywgJ2RpckInKSwgam9pbignZGlyQScsICds
aW5rQycpKQorICAgICAgICAgICAgIyBUaGlzIG9uZSBnb2VzIHVwd2FyZHMsIGNyZWF0aW5nIGEg
bG9vcAorICAgICAgICAgICAgc2VsZi5kaXJsaW5rKG9zLnBhdGguam9pbignLi4nLCAnZGlyQicp
LCBqb2luKCdkaXJCJywgJ2xpbmtEJykpCisKKyAgICBpZiBvcy5uYW1lID09ICdudCc6CisgICAg
ICAgICMgV29ya2Fyb3VuZCBmb3IgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTEzNzcyCisg
ICAgICAgIGRlZiBkaXJsaW5rKHNlbGYsIHNyYywgZGVzdCk6CisgICAgICAgICAgICBvcy5zeW1s
aW5rKHNyYywgZGVzdCwgdGFyZ2V0X2lzX2RpcmVjdG9yeT1UcnVlKQorICAgIGVsc2U6CisgICAg
ICAgIGRlZiBkaXJsaW5rKHNlbGYsIHNyYywgZGVzdCk6CisgICAgICAgICAgICBvcy5zeW1saW5r
KHNyYywgZGVzdCkKKworICAgIGRlZiBhc3NlcnRTYW1lKHNlbGYsIHBhdGhfYSwgcGF0aF9iKToK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguc2FtZWZpbGUoc3RyKHBhdGhfYSksIHN0
cihwYXRoX2IpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICIlciBhbmQgJXIgZG9uJ3QgcG9p
bnQgdG8gdGhlIHNhbWUgZmlsZSIgJQorICAgICAgICAgICAgICAgICAgICAgICAgKHBhdGhfYSwg
cGF0aF9iKSkKKworICAgIGRlZiBhc3NlcnRGaWxlTm90Rm91bmQoc2VsZiwgZnVuYywgKmFyZ3Ms
ICoqa3dhcmdzKToKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMyk6CisgICAg
ICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEZpbGVOb3RGb3VuZEVycm9yKSBhcyBjbToK
KyAgICAgICAgICAgICAgICBmdW5jKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcikgYXMgY206CisgICAgICAg
ICAgICAgICAgIyBQeXRob24gMi42IGtsdWRnZSBmb3IgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9p
c3N1ZTc4NTMKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGZ1bmMo
KmFyZ3MsICoqa3dhcmdzKQorICAgICAgICAgICAgICAgIGV4Y2VwdDogICMgbm9xYTogRTcyMgor
ICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
bS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVOT0VOVCkKKworICAgIGRlZiBhc3NlcnRGaWxlRXhp
c3RzKHNlbGYsIGZ1bmMsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIGlmIHN5cy52ZXJzaW9u
X2luZm8gPj0gKDMsIDMpOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhGaWxl
RXhpc3RzRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgICAgIGZ1bmMoKmFyZ3MsICoqa3dhcmdz
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vy
cm9yKSBhcyBjbToKKyAgICAgICAgICAgICAgICAjIFB5dGhvbiAyLjYga2x1ZGdlIGZvciBodHRw
Oi8vYnVncy5weXRob24ub3JnL2lzc3VlNzg1MworICAgICAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYygqYXJncywgKiprd2FyZ3MpCisgICAgICAgICAgICAgICAgZXhj
ZXB0OiAgIyBub3FhOiBFNzIyCisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJubywgZXJybm8uRUVYSVNUKQorCisg
ICAgZGVmIF90ZXN0X2N3ZChzZWxmLCBwKToKKyAgICAgICAgcSA9IHNlbGYuY2xzKG9zLmdldGN3
ZCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIHEpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc3RyKHApLCBzdHIocSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShwKSwgdHlw
ZShxKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHAuaXNfYWJzb2x1dGUoKSkKKworICAgIGRl
ZiB0ZXN0X2N3ZChzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzLmN3ZCgpCisgICAgICAgIHNl
bGYuX3Rlc3RfY3dkKHApCisKKyAgICBkZWYgX3Rlc3RfaG9tZShzZWxmLCBwKToKKyAgICAgICAg
cSA9IHNlbGYuY2xzKG9zLnBhdGguZXhwYW5kdXNlcignficpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHAsIHEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHApLCBzdHIocSkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShwKSwgdHlwZShxKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKHAuaXNfYWJzb2x1dGUoKSkKKworICAgIGRlZiB0ZXN0X2hvbWUoc2VsZik6CisgICAg
ICAgIHAgPSBzZWxmLmNscy5ob21lKCkKKyAgICAgICAgc2VsZi5fdGVzdF9ob21lKHApCisKKyAg
ICBkZWYgdGVzdF9zYW1lZmlsZShzZWxmKToKKyAgICAgICAgZmlsZUFfcGF0aCA9IG9zLnBhdGgu
am9pbihCQVNFLCAnZmlsZUEnKQorICAgICAgICBmaWxlQl9wYXRoID0gb3MucGF0aC5qb2luKEJB
U0UsICdkaXJCJywgJ2ZpbGVCJykKKyAgICAgICAgcCA9IHNlbGYuY2xzKGZpbGVBX3BhdGgpCisg
ICAgICAgIHBwID0gc2VsZi5jbHMoZmlsZUFfcGF0aCkKKyAgICAgICAgcSA9IHNlbGYuY2xzKGZp
bGVCX3BhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwLnNhbWVmaWxlKGZpbGVBX3BhdGgp
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUocC5zYW1lZmlsZShwcCkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UocC5zYW1lZmlsZShmaWxlQl9wYXRoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZShwLnNhbWVmaWxlKHEpKQorICAgICAgICAjIFRlc3QgdGhlIG5vbi1leGlzdGVudCBmaWxl
IGNhc2UKKyAgICAgICAgbm9uX2V4aXN0ZW50ID0gb3MucGF0aC5qb2luKEJBU0UsICdmb28nKQor
ICAgICAgICByID0gc2VsZi5jbHMobm9uX2V4aXN0ZW50KQorICAgICAgICBzZWxmLmFzc2VydEZp
bGVOb3RGb3VuZChwLnNhbWVmaWxlLCByKQorICAgICAgICBzZWxmLmFzc2VydEZpbGVOb3RGb3Vu
ZChwLnNhbWVmaWxlLCBub25fZXhpc3RlbnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RmlsZU5vdEZv
dW5kKHIuc2FtZWZpbGUsIHApCisgICAgICAgIHNlbGYuYXNzZXJ0RmlsZU5vdEZvdW5kKHIuc2Ft
ZWZpbGUsIG5vbl9leGlzdGVudCkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlTm90Rm91bmQoci5z
YW1lZmlsZSwgcikKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlTm90Rm91bmQoci5zYW1lZmlsZSwg
bm9uX2V4aXN0ZW50KQorCisgICAgZGVmIHRlc3RfZW1wdHlfcGF0aChzZWxmKToKKyAgICAgICAg
IyBUaGUgZW1wdHkgcGF0aCBwb2ludHMgdG8gJy4nCisgICAgICAgIHAgPSBzZWxmLmNscygnJykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnN0YXQoKSwgb3Muc3RhdCgnLicpKQorCisgICAg
ZGVmIHRlc3RfZXhwYW5kdXNlcl9jb21tb24oc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscwor
ICAgICAgICBwID0gUCgnficpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5leHBhbmR1c2Vy
KCksIFAob3MucGF0aC5leHBhbmR1c2VyKCd+JykpKQorICAgICAgICBwID0gUCgnZm9vJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLmV4cGFuZHVzZXIoKSwgcCkKKyAgICAgICAgcCA9IFAo
Jy9+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLmV4cGFuZHVzZXIoKSwgcCkKKyAgICAg
ICAgcCA9IFAoJy4uL34nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuZXhwYW5kdXNlcigp
LCBwKQorICAgICAgICBwID0gUChQKCcnKS5hYnNvbHV0ZSgpLmFuY2hvcikgLyAnficKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwLmV4cGFuZHVzZXIoKSwgcCkKKworICAgIGRlZiB0ZXN0X2V4
aXN0cyhzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKEJBU0UpCisg
ICAgICAgIHNlbGYuYXNzZXJ0SXMoVHJ1ZSwgcC5leGlzdHMoKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRJcyhUcnVlLCAocCAvICdkaXJBJykuZXhpc3RzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMo
VHJ1ZSwgKHAgLyAnZmlsZUEnKS5leGlzdHMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhGYWxz
ZSwgKHAgLyAnZmlsZUEnIC8gJ2JhaCcpLmV4aXN0cygpKQorICAgICAgICBpZiBzdXBwb3J0X2Nh
bl9zeW1saW5rKCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzKFRydWUsIChwIC8gJ2xpbmtB
JykuZXhpc3RzKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKFRydWUsIChwIC8gJ2xpbmtC
JykuZXhpc3RzKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKFRydWUsIChwIC8gJ2xpbmtC
JyAvICdmaWxlQicpLmV4aXN0cygpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhGYWxzZSwg
KHAgLyAnbGlua0EnIC8gJ2JhaCcpLmV4aXN0cygpKQorICAgICAgICBzZWxmLmFzc2VydElzKEZh
bHNlLCAocCAvICdmb28nKS5leGlzdHMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhGYWxzZSwg
UCgnL3h5enp5JykuZXhpc3RzKCkpCisKKyAgICBkZWYgdGVzdF9vcGVuX2NvbW1vbihzZWxmKToK
KyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UpCisgICAgICAgIHdpdGggKHAgLyAnZmlsZUEnKS5v
cGVuKCdyJykgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShmLCBpby5U
ZXh0SU9CYXNlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgInRoaXMg
aXMgZmlsZSBBXG4iKQorICAgICAgICB3aXRoIChwIC8gJ2ZpbGVBJykub3BlbigncmInKSBhcyBm
OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGYsIGlvLkJ1ZmZlcmVkSU9CYXNl
KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKS5zdHJpcCgpLCBiInRoaXMg
aXMgZmlsZSBBIikKKyAgICAgICAgd2l0aCAocCAvICdmaWxlQScpLm9wZW4oJ3JiJywgYnVmZmVy
aW5nPTApIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZiwgaW8uUmF3
SU9CYXNlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKS5zdHJpcCgpLCBi
InRoaXMgaXMgZmlsZSBBIikKKworICAgIGRlZiB0ZXN0X3JlYWRfd3JpdGVfYnl0ZXMoc2VsZik6
CisgICAgICAgIHAgPSBzZWxmLmNscyhCQVNFKQorICAgICAgICAocCAvICdmaWxlQScpLndyaXRl
X2J5dGVzKGInYWJjZGVmZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKHAgLyAnZmlsZUEn
KS5yZWFkX2J5dGVzKCksIGInYWJjZGVmZycpCisgICAgICAgICMgY2hlY2sgdGhhdCB0cnlpbmcg
dG8gd3JpdGUgc3RyIGRvZXMgbm90IHRydW5jYXRlIHRoZSBmaWxlCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIChwIC8gJ2ZpbGVB
Jykud3JpdGVfYnl0ZXMoc2l4LnUoJ3NvbWVzdHInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHN0cihjbS5leGNlcHRpb24pLnN0YXJ0c3dpdGgoJ2RhdGEgbXVzdCBiZScpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKChwIC8gJ2ZpbGVBJykucmVhZF9ieXRlcygpLCBiJ2FiY2RlZmcnKQor
CisgICAgZGVmIHRlc3RfcmVhZF93cml0ZV90ZXh0KHNlbGYpOgorICAgICAgICBwID0gc2VsZi5j
bHMoQkFTRSkKKyAgICAgICAgKHAgLyAnZmlsZUEnKS53cml0ZV90ZXh0KHNpeC51KCdcdTAwZTRi
Y2RlZmcnKSwgZW5jb2Rpbmc9J2xhdGluLTEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChw
IC8gJ2ZpbGVBJykucmVhZF90ZXh0KAorICAgICAgICAgICAgZW5jb2Rpbmc9J3V0Zi04JywgZXJy
b3JzPSdpZ25vcmUnKSwgc2l4LnUoJ2JjZGVmZycpKQorICAgICAgICAjIGNoZWNrIHRoYXQgdHJ5
aW5nIHRvIHdyaXRlIGJ5dGVzIGRvZXMgbm90IHRydW5jYXRlIHRoZSBmaWxlCisgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIChwIC8g
J2ZpbGVBJykud3JpdGVfdGV4dChiJ3NvbWVieXRlcycpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShzdHIoY20uZXhjZXB0aW9uKS5zdGFydHN3aXRoKCdkYXRhIG11c3QgYmUnKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgocCAvICdmaWxlQScpLnJlYWRfdGV4dChlbmNvZGluZz0nbGF0aW4t
MScpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpeC51KCdcdTAwZTRiY2RlZmcnKSkKKwor
ICAgIGRlZiB0ZXN0X2l0ZXJkaXIoc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAg
ICBwID0gUChCQVNFKQorICAgICAgICBpdCA9IHAuaXRlcmRpcigpCisgICAgICAgIHBhdGhzID0g
c2V0KGl0KQorICAgICAgICBleHBlY3RlZCA9IFsnZGlyQScsICdkaXJCJywgJ2RpckMnLCAnZGly
RScsICdmaWxlQSddCisgICAgICAgIGlmIHN1cHBvcnRfY2FuX3N5bWxpbmsoKToKKyAgICAgICAg
ICAgIGV4cGVjdGVkICs9IFsnbGlua0EnLCAnbGlua0InLCAnYnJva2VuTGluayddCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocGF0aHMsIHNldChQKEJBU0UsIHEpIGZvciBxIGluIGV4cGVjdGVk
KSkKKworICAgIEBzdXBwb3J0X3NraXBfdW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9pdGVy
ZGlyX3N5bWxpbmsoc2VsZik6CisgICAgICAgICMgX19pdGVyX18gb24gYSBzeW1saW5rIHRvIGEg
ZGlyZWN0b3J5CisgICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBwID0gUChCQVNFLCAnbGlu
a0InKQorICAgICAgICBwYXRocyA9IHNldChwLml0ZXJkaXIoKSkKKyAgICAgICAgZXhwZWN0ZWQg
PSBzZXQoUChCQVNFLCAnbGlua0InLCBxKSBmb3IgcSBpbiBbJ2ZpbGVCJywgJ2xpbmtEJ10pCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0aHMsIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3Rf
aXRlcmRpcl9ub2RpcihzZWxmKToKKyAgICAgICAgIyBfX2l0ZXJfXyBvbiBzb21ldGhpbmcgdGhh
dCBpcyBub3QgYSBkaXJlY3RvcnkKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UsICdmaWxlQScp
CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcikgYXMgY206CisgICAgICAg
ICAgICAjIFB5dGhvbiAyLjYga2x1ZGdlIGZvciBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3Vl
Nzg1MworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG5leHQocC5pdGVyZGlyKCkp
CisgICAgICAgICAgICBleGNlcHQ6ICAjIG5vcWE6IEU3MjJzCisgICAgICAgICAgICAgICAgcmFp
c2UKKyAgICAgICAgIyBFTk9FTlQgb3IgRUlOVkFMIHVuZGVyIFdpbmRvd3MsIEVOT1RESVIgb3Ro
ZXJ3aXNlCisgICAgICAgICMgKHNlZSBpc3N1ZSAjMTI4MDIpCisgICAgICAgIHNlbGYuYXNzZXJ0
SW4oY20uZXhjZXB0aW9uLmVycm5vLCAoZXJybm8uRU5PVERJUiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJuby5FTk9FTlQsIGVycm5vLkVJTlZBTCkpCisK
KyAgICBkZWYgdGVzdF9nbG9iX2NvbW1vbihzZWxmKToKKyAgICAgICAgZGVmIF9jaGVjayhnbG9i
LCBleHBlY3RlZCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldChnbG9iKSwgc2V0
KFAoQkFTRSwgcSkgZm9yIHEgaW4gZXhwZWN0ZWQpKQorICAgICAgICBQID0gc2VsZi5jbHMKKyAg
ICAgICAgcCA9IFAoQkFTRSkKKyAgICAgICAgaXQgPSBwLmdsb2IoImZpbGVBIikKKyAgICAgICAg
c2VsZi5hc3NlcnRJc0luc3RhbmNlKGl0LCBjb2xsZWN0aW9uc19hYmMuSXRlcmF0b3IpCisgICAg
ICAgIF9jaGVjayhpdCwgWyJmaWxlQSJdKQorICAgICAgICBfY2hlY2socC5nbG9iKCJmaWxlQiIp
LCBbXSkKKyAgICAgICAgX2NoZWNrKHAuZ2xvYigiZGlyKi9maWxlKiIpLCBbImRpckIvZmlsZUIi
LCAiZGlyQy9maWxlQyJdKQorICAgICAgICBpZiBub3Qgc3VwcG9ydF9jYW5fc3ltbGluaygpOgor
ICAgICAgICAgICAgX2NoZWNrKHAuZ2xvYigiKkEiKSwgWydkaXJBJywgJ2ZpbGVBJ10pCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBfY2hlY2socC5nbG9iKCIqQSIpLCBbJ2RpckEnLCAnZmls
ZUEnLCAnbGlua0EnXSkKKyAgICAgICAgaWYgbm90IHN1cHBvcnRfY2FuX3N5bWxpbmsoKToKKyAg
ICAgICAgICAgIF9jaGVjayhwLmdsb2IoIipCLyoiKSwgWydkaXJCL2ZpbGVCJ10pCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBfY2hlY2socC5nbG9iKCIqQi8qIiksIFsnZGlyQi9maWxlQics
ICdkaXJCL2xpbmtEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsaW5r
Qi9maWxlQicsICdsaW5rQi9saW5rRCddKQorICAgICAgICBpZiBub3Qgc3VwcG9ydF9jYW5fc3lt
bGluaygpOgorICAgICAgICAgICAgX2NoZWNrKHAuZ2xvYigiKi9maWxlQiIpLCBbJ2RpckIvZmls
ZUInXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIF9jaGVjayhwLmdsb2IoIiovZmlsZUIi
KSwgWydkaXJCL2ZpbGVCJywgJ2xpbmtCL2ZpbGVCJ10pCisKKyAgICBkZWYgdGVzdF9yZ2xvYl9j
b21tb24oc2VsZik6CisgICAgICAgIGRlZiBfY2hlY2soZ2xvYiwgZXhwZWN0ZWQpOgorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoZ2xvYiksIHNldChQKEJBU0UsIHEpIGZvciBxIGlu
IGV4cGVjdGVkKSkKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHAgPSBQKEJBU0UpCisg
ICAgICAgIGl0ID0gcC5yZ2xvYigiZmlsZUEiKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFu
Y2UoaXQsIGNvbGxlY3Rpb25zX2FiYy5JdGVyYXRvcikKKyAgICAgICAgX2NoZWNrKGl0LCBbImZp
bGVBIl0pCisgICAgICAgIF9jaGVjayhwLnJnbG9iKCJmaWxlQiIpLCBbImRpckIvZmlsZUIiXSkK
KyAgICAgICAgX2NoZWNrKHAucmdsb2IoIiovZmlsZUEiKSwgW10pCisgICAgICAgIGlmIG5vdCBz
dXBwb3J0X2Nhbl9zeW1saW5rKCk6CisgICAgICAgICAgICBfY2hlY2socC5yZ2xvYigiKi9maWxl
QiIpLCBbImRpckIvZmlsZUIiXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIF9jaGVjayhw
LnJnbG9iKCIqL2ZpbGVCIiksIFsiZGlyQi9maWxlQiIsICJkaXJCL2xpbmtEL2ZpbGVCIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGlua0IvZmlsZUIiLCAiZGly
QS9saW5rQy9maWxlQiJdKQorICAgICAgICBfY2hlY2socC5yZ2xvYigiZmlsZSoiKSwgWyJmaWxl
QSIsICJkaXJCL2ZpbGVCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGly
Qy9maWxlQyIsICJkaXJDL2RpckQvZmlsZUQiXSkKKyAgICAgICAgcCA9IFAoQkFTRSwgImRpckMi
KQorICAgICAgICBfY2hlY2socC5yZ2xvYigiZmlsZSoiKSwgWyJkaXJDL2ZpbGVDIiwgImRpckMv
ZGlyRC9maWxlRCJdKQorICAgICAgICBfY2hlY2socC5yZ2xvYigiKi8qIiksIFsiZGlyQy9kaXJE
L2ZpbGVEIl0pCisKKyAgICBAc3VwcG9ydF9za2lwX3VubGVzc19zeW1saW5rCisgICAgZGVmIHRl
c3Rfcmdsb2Jfc3ltbGlua19sb29wKHNlbGYpOgorICAgICAgICAjIERvbid0IGdldCBmb29sZWQg
Ynkgc3ltbGluayBsb29wcyAoSXNzdWUgIzI2MDEyKQorICAgICAgICBQID0gc2VsZi5jbHMKKyAg
ICAgICAgcCA9IFAoQkFTRSkKKyAgICAgICAgZ2l2ZW4gPSBzZXQocC5yZ2xvYignKicpKQorICAg
ICAgICBleHBlY3QgPSBzZXQoWworICAgICAgICAgICAgICAgICAgJ2Jyb2tlbkxpbmsnLAorICAg
ICAgICAgICAgICAgICAgJ2RpckEnLCAnZGlyQS9saW5rQycsCisgICAgICAgICAgICAgICAgICAn
ZGlyQicsICdkaXJCL2ZpbGVCJywgJ2RpckIvbGlua0QnLAorICAgICAgICAgICAgICAgICAgJ2Rp
ckMnLCAnZGlyQy9kaXJEJywgJ2RpckMvZGlyRC9maWxlRCcsICdkaXJDL2ZpbGVDJywKKyAgICAg
ICAgICAgICAgICAgICdkaXJFJywKKyAgICAgICAgICAgICAgICAgICdmaWxlQScsCisgICAgICAg
ICAgICAgICAgICAnbGlua0EnLAorICAgICAgICAgICAgICAgICAgJ2xpbmtCJywKKyAgICAgICAg
ICAgICAgICAgIF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2l2ZW4sIHNldChbcCAvIHgg
Zm9yIHggaW4gZXhwZWN0XSkpCisKKyAgICBkZWYgdGVzdF9nbG9iX2RvdGRvdChzZWxmKToKKyAg
ICAgICAgIyAiLi4iIGlzIG5vdCBzcGVjaWFsIGluIGdsb2JzCisgICAgICAgIFAgPSBzZWxmLmNs
cworICAgICAgICBwID0gUChCQVNFKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldChwLmds
b2IoIi4uIikpLCBzZXQoW1AoQkFTRSwgIi4uIildKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZXQocC5nbG9iKCJkaXJBLy4uL2ZpbGUqIikpLAorICAgICAgICAgICAgICAgICAgICAgICAg
IHNldChbUChCQVNFLCAiZGlyQS8uLi9maWxlQSIpXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2V0KHAuZ2xvYigiLi4veHl6enkiKSksIHNldCgpKQorCisgICAgZGVmIF9jaGVja19yZXNv
bHZlKHNlbGYsIHAsIGV4cGVjdGVkLCBzdHJpY3Q9VHJ1ZSk6CisgICAgICAgIHEgPSBwLnJlc29s
dmUoc3RyaWN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHEsIGV4cGVjdGVkKQorCisgICAg
IyB0aGlzIGNhbiBiZSB1c2VkIHRvIGNoZWNrIGJvdGggcmVsYXRpdmUgYW5kIGFic29sdXRlIHJl
c29sdXRpb25zCisgICAgX2NoZWNrX3Jlc29sdmVfcmVsYXRpdmUgPSBfY2hlY2tfcmVzb2x2ZV9h
YnNvbHV0ZSA9IF9jaGVja19yZXNvbHZlCisKKyAgICBAc3VwcG9ydF9za2lwX3VubGVzc19zeW1s
aW5rCisgICAgZGVmIHRlc3RfcmVzb2x2ZV9jb21tb24oc2VsZik6CisgICAgICAgIFAgPSBzZWxm
LmNscworICAgICAgICBwID0gUChCQVNFLCAnZm9vJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKKyAgICAgICAgICAgIHAucmVzb2x2ZShzdHJpY3Q9VHJ1
ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVO
T0VOVCkKKyAgICAgICAgIyBOb24tc3RyaWN0CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Ry
KHAucmVzb2x2ZShzdHJpY3Q9RmFsc2UpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBvcy5w
YXRoLmpvaW4oQkFTRSwgJ2ZvbycpKQorICAgICAgICBwID0gUChCQVNFLCAnZm9vJywgJ2luJywg
J3NwYW0nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwLnJlc29sdmUoc3RyaWN0PUZh
bHNlKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKEJBU0UsICdmb28n
LCAnaW4nLCAnc3BhbScpKQorICAgICAgICBwID0gUChCQVNFLCAnLi4nLCAnZm9vJywgJ2luJywg
J3NwYW0nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwLnJlc29sdmUoc3RyaWN0PUZh
bHNlKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5hYnNwYXRoKG9zLnBhdGgu
am9pbignZm9vJywgJ2luJywgJ3NwYW0nKSkpCisgICAgICAgICMgVGhlc2UgYXJlIGFsbCByZWxh
dGl2ZSBzeW1saW5rcworICAgICAgICBwID0gUChCQVNFLCAnZGlyQicsICdmaWxlQicpCisgICAg
ICAgIHNlbGYuX2NoZWNrX3Jlc29sdmVfcmVsYXRpdmUocCwgcCkKKyAgICAgICAgcCA9IFAoQkFT
RSwgJ2xpbmtBJykKKyAgICAgICAgc2VsZi5fY2hlY2tfcmVzb2x2ZV9yZWxhdGl2ZShwLCBQKEJB
U0UsICdmaWxlQScpKQorICAgICAgICBwID0gUChCQVNFLCAnZGlyQScsICdsaW5rQycsICdmaWxl
QicpCisgICAgICAgIHNlbGYuX2NoZWNrX3Jlc29sdmVfcmVsYXRpdmUocCwgUChCQVNFLCAnZGly
QicsICdmaWxlQicpKQorICAgICAgICBwID0gUChCQVNFLCAnZGlyQicsICdsaW5rRCcsICdmaWxl
QicpCisgICAgICAgIHNlbGYuX2NoZWNrX3Jlc29sdmVfcmVsYXRpdmUocCwgUChCQVNFLCAnZGly
QicsICdmaWxlQicpKQorICAgICAgICAjIE5vbi1zdHJpY3QKKyAgICAgICAgcCA9IFAoQkFTRSwg
J2RpckEnLCAnbGlua0MnLCAnZmlsZUInLCAnZm9vJywgJ2luJywgJ3NwYW0nKQorICAgICAgICBz
ZWxmLl9jaGVja19yZXNvbHZlX3JlbGF0aXZlKHAsIFAoQkFTRSwgJ2RpckInLCAnZmlsZUInLCAn
Zm9vJywgJ2luJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdz
cGFtJyksIEZhbHNlKQorICAgICAgICBwID0gUChCQVNFLCAnZGlyQScsICdsaW5rQycsICcuLics
ICdmb28nLCAnaW4nLCAnc3BhbScpCisgICAgICAgIGlmIG9zLm5hbWUgPT0gJ250JzoKKyAgICAg
ICAgICAgICMgSW4gV2luZG93cywgaWYgbGlua1kgcG9pbnRzIHRvIGRpckIsICdkaXJBXGxpbmtZ
XC4uJworICAgICAgICAgICAgIyByZXNvbHZlcyB0byAnZGlyQScgd2l0aG91dCByZXNvbHZpbmcg
bGlua1kgZmlyc3QuCisgICAgICAgICAgICBzZWxmLl9jaGVja19yZXNvbHZlX3JlbGF0aXZlKHAs
IFAoQkFTRSwgJ2RpckEnLCAnZm9vJywgJ2luJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnc3BhbScpLCBGYWxzZSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICMgSW4gUG9zaXgsIGlmIGxpbmtZIHBvaW50cyB0byBkaXJCLCAnZGlyQS9saW5rWS8u
LicKKyAgICAgICAgICAgICMgcmVzb2x2ZXMgdG8gJ2RpckIvLi4nIGZpcnN0IGJlZm9yZSByZXNv
bHZpbmcgdG8gcGFyZW50IG9mIGRpckIuCisgICAgICAgICAgICBzZWxmLl9jaGVja19yZXNvbHZl
X3JlbGF0aXZlKAorICAgICAgICAgICAgICAgIHAsIFAoQkFTRSwgJ2ZvbycsICdpbicsICdzcGFt
JyksIEZhbHNlKQorICAgICAgICAjIE5vdyBjcmVhdGUgYWJzb2x1dGUgc3ltbGlua3MKKyAgICAg
ICAgZCA9IHRlbXBmaWxlLm1rZHRlbXAoc3VmZml4PSctZGlyRCcpCisgICAgICAgIHNlbGYuYWRk
Q2xlYW51cChzdXBwb3J0LnJtdHJlZSwgZCkKKyAgICAgICAgb3Muc3ltbGluayhvcy5wYXRoLmpv
aW4oZCksIGpvaW4oJ2RpckEnLCAnbGlua1gnKSkKKyAgICAgICAgb3Muc3ltbGluayhqb2luKCdk
aXJCJyksIG9zLnBhdGguam9pbihkLCAnbGlua1knKSkKKyAgICAgICAgcCA9IFAoQkFTRSwgJ2Rp
ckEnLCAnbGlua1gnLCAnbGlua1knLCAnZmlsZUInKQorICAgICAgICBzZWxmLl9jaGVja19yZXNv
bHZlX2Fic29sdXRlKHAsIFAoQkFTRSwgJ2RpckInLCAnZmlsZUInKSkKKyAgICAgICAgIyBOb24t
c3RyaWN0CisgICAgICAgIHAgPSBQKEJBU0UsICdkaXJBJywgJ2xpbmtYJywgJ2xpbmtZJywgJ2Zv
bycsICdpbicsICdzcGFtJykKKyAgICAgICAgc2VsZi5fY2hlY2tfcmVzb2x2ZV9yZWxhdGl2ZShw
LCBQKEJBU0UsICdkaXJCJywgJ2ZvbycsICdpbicsICdzcGFtJyksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRmFsc2UpCisgICAgICAgIHAgPSBQKEJBU0UsICdkaXJBJywg
J2xpbmtYJywgJ2xpbmtZJywgJy4uJywgJ2ZvbycsICdpbicsICdzcGFtJykKKyAgICAgICAgaWYg
b3MubmFtZSA9PSAnbnQnOgorICAgICAgICAgICAgIyBJbiBXaW5kb3dzLCBpZiBsaW5rWSBwb2lu
dHMgdG8gZGlyQiwgJ2RpckFcbGlua1lcLi4nCisgICAgICAgICAgICAjIHJlc29sdmVzIHRvICdk
aXJBJyB3aXRob3V0IHJlc29sdmluZyBsaW5rWSBmaXJzdC4KKyAgICAgICAgICAgIHNlbGYuX2No
ZWNrX3Jlc29sdmVfcmVsYXRpdmUocCwgUChkLCAnZm9vJywgJ2luJywgJ3NwYW0nKSwgRmFsc2Up
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIEluIFBvc2l4LCBpZiBsaW5rWSBwb2ludHMg
dG8gZGlyQiwgJ2RpckEvbGlua1kvLi4nCisgICAgICAgICAgICAjIHJlc29sdmVzIHRvICdkaXJC
Ly4uJyBmaXJzdCBiZWZvcmUgcmVzb2x2aW5nIHRvIHBhcmVudCBvZiBkaXJCLgorICAgICAgICAg
ICAgc2VsZi5fY2hlY2tfcmVzb2x2ZV9yZWxhdGl2ZSgKKyAgICAgICAgICAgICAgICBwLCBQKEJB
U0UsICdmb28nLCAnaW4nLCAnc3BhbScpLCBGYWxzZSkKKworICAgIEBzdXBwb3J0X3NraXBfdW5s
ZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9yZXNvbHZlX2RvdChzZWxmKToKKyAgICAgICAgIyBT
ZWUgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3BpdHJvdS9wYXRobGliL2lzc3VlLzkvCisgICAgICAg
ICMgcGF0aHJlc29sdmUtZmFpbHMtb24tY29tcGxleC1zeW1saW5rcworICAgICAgICBwID0gc2Vs
Zi5jbHMoQkFTRSkKKyAgICAgICAgc2VsZi5kaXJsaW5rKCcuJywgam9pbignMCcpKQorICAgICAg
ICBzZWxmLmRpcmxpbmsob3MucGF0aC5qb2luKCcwJywgJzAnKSwgam9pbignMScpKQorICAgICAg
ICBzZWxmLmRpcmxpbmsob3MucGF0aC5qb2luKCcxJywgJzEnKSwgam9pbignMicpKQorICAgICAg
ICBxID0gcCAvICcyJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHEucmVzb2x2ZShzdHJpY3Q9
VHJ1ZSksIHApCisgICAgICAgIHIgPSBxIC8gJzMnIC8gJzQnCisgICAgICAgIHNlbGYuYXNzZXJ0
RmlsZU5vdEZvdW5kKHIucmVzb2x2ZSwgc3RyaWN0PVRydWUpCisgICAgICAgICMgTm9uLXN0cmlj
dAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHIucmVzb2x2ZShzdHJpY3Q9RmFsc2UpLCBwIC8g
JzMnIC8gJzQnKQorCisgICAgZGVmIHRlc3Rfd2l0aChzZWxmKToKKyAgICAgICAgcCA9IHNlbGYu
Y2xzKEJBU0UpCisgICAgICAgIGl0ID0gcC5pdGVyZGlyKCkKKyAgICAgICAgaXQyID0gcC5pdGVy
ZGlyKCkKKyAgICAgICAgbmV4dChpdDIpCisgICAgICAgIHdpdGggcDoKKyAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgIyBJL08gb3BlcmF0aW9uIG9uIGNsb3NlZCBwYXRoCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG5leHQsIGl0KQorICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhWYWx1ZUVycm9yLCBuZXh0LCBpdDIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZh
bHVlRXJyb3IsIHAub3BlbikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwg
cC5yZXNvbHZlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLmFic29s
dXRlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwLl9fZW50ZXJfXykK
KworICAgIGRlZiB0ZXN0X2NobW9kKHNlbGYpOgorICAgICAgICBwID0gc2VsZi5jbHMoQkFTRSkg
LyAnZmlsZUEnCisgICAgICAgIG1vZGUgPSBwLnN0YXQoKS5zdF9tb2RlCisgICAgICAgICMgQ2xl
YXIgd3JpdGFibGUgYml0CisgICAgICAgIG5ld19tb2RlID0gbW9kZSAmIH4wbzIyMgorICAgICAg
ICBwLmNobW9kKG5ld19tb2RlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuc3RhdCgpLnN0
X21vZGUsIG5ld19tb2RlKQorICAgICAgICAjIFNldCB3cml0YWJsZSBiaXQKKyAgICAgICAgbmV3
X21vZGUgPSBtb2RlIHwgMG8yMjIKKyAgICAgICAgcC5jaG1vZChuZXdfbW9kZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwLnN0YXQoKS5zdF9tb2RlLCBuZXdfbW9kZSkKKworICAgICMgWFhY
IGFsc28gbmVlZCBhIHRlc3QgZm9yIGxjaG1vZAorCisgICAgZGVmIHRlc3Rfc3RhdChzZWxmKToK
KyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UpIC8gJ2ZpbGVBJworICAgICAgICBzdCA9IHAuc3Rh
dCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5zdGF0KCksIHN0KQorICAgICAgICAjIENo
YW5nZSBmaWxlIG1vZGUgYnkgZmxpcHBpbmcgd3JpdGUgYml0CisgICAgICAgIHAuY2htb2Qoc3Qu
c3RfbW9kZSBeIDBvMjIyKQorICAgICAgICBzZWxmLmFkZENsZWFudXAocC5jaG1vZCwgc3Quc3Rf
bW9kZSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChwLnN0YXQoKSwgc3QpCisKKyAgICBA
c3VwcG9ydF9za2lwX3VubGVzc19zeW1saW5rCisgICAgZGVmIHRlc3RfbHN0YXQoc2VsZik6Cisg
ICAgICAgIHAgPSBzZWxmLmNscyhCQVNFKSAvICdsaW5rQScKKyAgICAgICAgc3QgPSBwLnN0YXQo
KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHN0LCBwLmxzdGF0KCkpCisKKyAgICBkZWYg
dGVzdF9sc3RhdF9ub3N5bWxpbmsoc2VsZik6CisgICAgICAgIHAgPSBzZWxmLmNscyhCQVNFKSAv
ICdmaWxlQScKKyAgICAgICAgc3QgPSBwLnN0YXQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHN0LCBwLmxzdGF0KCkpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhwd2QsICJ0aGUgcHdk
IG1vZHVsZSBpcyBuZWVkZWQgZm9yIHRoaXMgdGVzdCIpCisgICAgZGVmIHRlc3Rfb3duZXIoc2Vs
Zik6CisgICAgICAgIHAgPSBzZWxmLmNscyhCQVNFKSAvICdmaWxlQScKKyAgICAgICAgdWlkID0g
cC5zdGF0KCkuc3RfdWlkCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG5hbWUgPSBwd2QuZ2V0
cHd1aWQodWlkKS5wd19uYW1lCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAg
IHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgInVzZXIgJWQgZG9lc24ndCBoYXZlIGFu
IGVudHJ5IGluIHRoZSBzeXN0ZW0gZGF0YWJhc2UiICUgdWlkKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKG5hbWUsIHAub3duZXIoKSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGdycCwg
InRoZSBncnAgbW9kdWxlIGlzIG5lZWRlZCBmb3IgdGhpcyB0ZXN0IikKKyAgICBkZWYgdGVzdF9n
cm91cChzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UpIC8gJ2ZpbGVBJworICAgICAg
ICBnaWQgPSBwLnN0YXQoKS5zdF9naWQKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbmFtZSA9
IGdycC5nZXRncmdpZChnaWQpLmdyX25hbWUKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAg
ICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiZ3JvdXAgJWQgZG9lc24n
dCBoYXZlIGFuIGVudHJ5IGluIHRoZSBzeXN0ZW0gZGF0YWJhc2UiICUgZ2lkKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG5hbWUsIHAuZ3JvdXAoKSkKKworICAgIGRlZiB0ZXN0X3VubGluayhz
ZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UpIC8gJ2ZpbGVBJworICAgICAgICBwLnVu
bGluaygpCisgICAgICAgIHNlbGYuYXNzZXJ0RmlsZU5vdEZvdW5kKHAuc3RhdCkKKyAgICAgICAg
c2VsZi5hc3NlcnRGaWxlTm90Rm91bmQocC51bmxpbmspCisKKyAgICBkZWYgdGVzdF9ybWRpcihz
ZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UpIC8gJ2RpckEnCisgICAgICAgIGZvciBx
IGluIHAuaXRlcmRpcigpOgorICAgICAgICAgICAgcS51bmxpbmsoKQorICAgICAgICBwLnJtZGly
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlTm90Rm91bmQocC5zdGF0KQorICAgICAgICBzZWxm
LmFzc2VydEZpbGVOb3RGb3VuZChwLnVubGluaykKKworICAgIGRlZiB0ZXN0X3JlbmFtZShzZWxm
KToKKyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0UpCisgICAgICAgIHAgPSBQIC8gJ2ZpbGVBJwor
ICAgICAgICBzaXplID0gcC5zdGF0KCkuc3Rfc2l6ZQorICAgICAgICAjIFJlbmFtaW5nIHRvIGFu
b3RoZXIgcGF0aAorICAgICAgICBxID0gUCAvICdkaXJBJyAvICdmaWxlQUEnCisgICAgICAgIHAu
cmVuYW1lKHEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocS5zdGF0KCkuc3Rfc2l6ZSwgc2l6
ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlTm90Rm91bmQocC5zdGF0KQorICAgICAgICAjIFJl
bmFtaW5nIHRvIGEgc3RyIG9mIGEgcmVsYXRpdmUgcGF0aAorICAgICAgICByID0gcmVsX2pvaW4o
J2ZpbGVBQUEnKQorICAgICAgICBxLnJlbmFtZShyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG9zLnN0YXQocikuc3Rfc2l6ZSwgc2l6ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlTm90Rm91
bmQocS5zdGF0KQorCisgICAgZGVmIHRlc3RfcmVwbGFjZShzZWxmKToKKyAgICAgICAgUCA9IHNl
bGYuY2xzKEJBU0UpCisgICAgICAgIHAgPSBQIC8gJ2ZpbGVBJworICAgICAgICBpZiBzeXMudmVy
c2lvbl9pbmZvIDwgKDMsIDMpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1w
bGVtZW50ZWRFcnJvciwgcC5yZXBsYWNlLCBwKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
IHNpemUgPSBwLnN0YXQoKS5zdF9zaXplCisgICAgICAgICMgUmVwbGFjaW5nIGEgbm9uLWV4aXN0
aW5nIHBhdGgKKyAgICAgICAgcSA9IFAgLyAnZGlyQScgLyAnZmlsZUFBJworICAgICAgICBwLnJl
cGxhY2UocSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxLnN0YXQoKS5zdF9zaXplLCBzaXpl
KQorICAgICAgICBzZWxmLmFzc2VydEZpbGVOb3RGb3VuZChwLnN0YXQpCisgICAgICAgICMgUmVw
bGFjaW5nIGFub3RoZXIgKGV4aXN0aW5nKSBwYXRoCisgICAgICAgIHIgPSByZWxfam9pbignZGly
QicsICdmaWxlQicpCisgICAgICAgIHEucmVwbGFjZShyKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG9zLnN0YXQocikuc3Rfc2l6ZSwgc2l6ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlTm90
Rm91bmQocS5zdGF0KQorCisgICAgZGVmIHRlc3RfdG91Y2hfY29tbW9uKHNlbGYpOgorICAgICAg
ICBQID0gc2VsZi5jbHMoQkFTRSkKKyAgICAgICAgcCA9IFAgLyAnbmV3ZmlsZUEnCisgICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UocC5leGlzdHMoKSkKKyAgICAgICAgcC50b3VjaCgpCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShwLmV4aXN0cygpKQorICAgICAgICAjIFJld2luZCB0aGUgbXRpbWUg
c3VmZmljaWVudGx5IGZhciBpbiB0aGUgcGFzdCB0byB3b3JrIGFyb3VuZAorICAgICAgICAjIGZp
bGVzeXN0ZW0tc3BlY2lmaWMgdGltZXN0YW1wIGdyYW51bGFyaXR5LgorICAgICAgICBvbGRfbXRp
bWUgPSBwLnN0YXQoKS5zdF9tdGltZSAtIDEwCisgICAgICAgIG9zLnV0aW1lKHN0cihwKSwgKG9s
ZF9tdGltZSwgb2xkX210aW1lKSkKKyAgICAgICAgIyBUaGUgZmlsZSBtdGltZSBzaG91bGQgYmUg
cmVmcmVzaGVkIGJ5IGNhbGxpbmcgdG91Y2goKSBhZ2FpbgorICAgICAgICBwLnRvdWNoKCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwocC5zdGF0KCkuc3RfbXRpbWUsIG9sZF9tdGlt
ZSkKKyAgICAgICAgIyBOb3cgd2l0aCBleGlzdF9vaz1GYWxzZQorICAgICAgICBwID0gUCAvICdu
ZXdmaWxlQicKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwLmV4aXN0cygpKQorICAgICAgICBw
LnRvdWNoKG1vZGU9MG83MDAsIGV4aXN0X29rPUZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUocC5leGlzdHMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgcC50b3Vj
aCwgZXhpc3Rfb2s9RmFsc2UpCisKKyAgICBkZWYgdGVzdF90b3VjaF9ub2NoYW5nZShzZWxmKToK
KyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0UpCisgICAgICAgIHAgPSBQIC8gJ2ZpbGVBJworICAg
ICAgICBwLnRvdWNoKCkKKyAgICAgICAgd2l0aCBwLm9wZW4oJ3JiJykgYXMgZjoKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCkuc3RyaXAoKSwgYiJ0aGlzIGlzIGZpbGUgQSIp
CisKKyAgICBkZWYgdGVzdF9ta2RpcihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0Up
CisgICAgICAgIHAgPSBQIC8gJ25ld2RpckEnCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocC5l
eGlzdHMoKSkKKyAgICAgICAgcC5ta2RpcigpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwLmV4
aXN0cygpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocC5pc19kaXIoKSkKKyAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKKyAgICAgICAgICAgICMgUHl0aG9u
IDIuNiBrbHVkZ2UgZm9yIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWU3ODUzCisgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgcC5ta2RpcigpCisgICAgICAgICAgICBleGNlcHQ6
ICAjIG5vcWE6IEU3MjIKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJubywgZXJybm8uRUVYSVNUKQorCisgICAgZGVmIHRlc3Rf
bWtkaXJfcGFyZW50cyhzZWxmKToKKyAgICAgICAgIyBDcmVhdGluZyBhIGNoYWluIG9mIGRpcmVj
dG9yaWVzCisgICAgICAgIHAgPSBzZWxmLmNscyhCQVNFLCAnbmV3ZGlyQicsICduZXdkaXJDJykK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwLmV4aXN0cygpKQorICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzKE9TRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgcC5ta2RpcigpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm5vLCBlcnJuby5FTk9FTlQpCisg
ICAgICAgIHAubWtkaXIocGFyZW50cz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocC5l
eGlzdHMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHAuaXNfZGlyKCkpCisgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcikgYXMgY206CisgICAgICAgICAgICBwLm1rZGly
KHBhcmVudHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJy
bm8sIGVycm5vLkVFWElTVCkKKyAgICAgICAgIyB0ZXN0IGBtb2RlYCBhcmcKKyAgICAgICAgbW9k
ZSA9IHN0YXQuU19JTU9ERShwLnN0YXQoKS5zdF9tb2RlKSAgIyBkZWZhdWx0IG1vZGUKKyAgICAg
ICAgcCA9IHNlbGYuY2xzKEJBU0UsICduZXdkaXJEJywgJ25ld2RpckUnKQorICAgICAgICBwLm1r
ZGlyKDBvNTU1LCBwYXJlbnRzPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwLmV4aXN0
cygpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocC5pc19kaXIoKSkKKyAgICAgICAgaWYgb3Mu
bmFtZSAhPSAnbnQnOgorICAgICAgICAgICAgIyB0aGUgZGlyZWN0b3J5J3MgcGVybWlzc2lvbnMg
Zm9sbG93IHRoZSBtb2RlIGFyZ3VtZW50CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0
YXQuU19JTU9ERShwLnN0YXQoKS5zdF9tb2RlKSwgMG83NTU1ICYgbW9kZSkKKyAgICAgICAgIyB0
aGUgcGFyZW50J3MgcGVybWlzc2lvbnMgZm9sbG93IHRoZSBkZWZhdWx0IHByb2Nlc3Mgc2V0dGlu
Z3MKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0LlNfSU1PREUocC5wYXJlbnQuc3RhdCgp
LnN0X21vZGUpLCBtb2RlKQorCisgICAgZGVmIHRlc3RfbWtkaXJfZXhpc3Rfb2soc2VsZik6Cisg
ICAgICAgIHAgPSBzZWxmLmNscyhCQVNFLCAnZGlyQicpCisgICAgICAgIHN0X2N0aW1lX2ZpcnN0
ID0gcC5zdGF0KCkuc3RfY3RpbWUKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHAuZXhpc3RzKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwLmlzX2RpcigpKQorICAgICAgICBzZWxmLmFzc2Vy
dEZpbGVFeGlzdHMocC5ta2RpcikKKyAgICAgICAgcC5ta2RpcihleGlzdF9vaz1UcnVlKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUocC5leGlzdHMoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwLnN0YXQoKS5zdF9jdGltZSwgc3RfY3RpbWVfZmlyc3QpCisKKyAgICBkZWYgdGVzdF9ta2Rp
cl9leGlzdF9va193aXRoX3BhcmVudChzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0Us
ICdkaXJDJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHAuZXhpc3RzKCkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RmlsZUV4aXN0cyhwLm1rZGlyKQorICAgICAgICBwID0gcCAvICduZXdkaXJDJwor
ICAgICAgICBwLm1rZGlyKHBhcmVudHM9VHJ1ZSkKKyAgICAgICAgc3RfY3RpbWVfZmlyc3QgPSBw
LnN0YXQoKS5zdF9jdGltZQorICAgICAgICBzZWxmLmFzc2VydFRydWUocC5leGlzdHMoKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRGaWxlRXhpc3RzKHAubWtkaXIsIHBhcmVudHM9VHJ1ZSkKKyAgICAg
ICAgcC5ta2RpcihwYXJlbnRzPVRydWUsIGV4aXN0X29rPVRydWUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShwLmV4aXN0cygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuc3RhdCgpLnN0
X2N0aW1lLCBzdF9jdGltZV9maXJzdCkKKworICAgIGRlZiB0ZXN0X21rZGlyX2V4aXN0X29rX3Jv
b3Qoc2VsZik6CisgICAgICAgICMgSXNzdWUgIzI1ODAzOiBBIGRyaXZlIHJvb3QgY291bGQgcmFp
c2UgUGVybWlzc2lvbkVycm9yIG9uIFdpbmRvd3MKKyAgICAgICAgc2VsZi5jbHMoJy8nKS5yZXNv
bHZlKCkubWtkaXIoZXhpc3Rfb2s9VHJ1ZSkKKyAgICAgICAgc2VsZi5jbHMoJy8nKS5yZXNvbHZl
KCkubWtkaXIocGFyZW50cz1UcnVlLCBleGlzdF9vaz1UcnVlKQorCisgICAgQG9ubHlfbnQgICAg
IyBYWFg6IG5vdCBzdXJlIGhvdyB0byB0ZXN0IHRoaXMgb24gUE9TSVgKKyAgICBkZWYgdGVzdF9t
a2Rpcl93aXRoX3Vua25vd25fZHJpdmUoc2VsZik6CisgICAgICAgIGZvciBkIGluICdaWVhXVlVU
U1JRUE9OTUxLSklIR0ZFRENCQSc6CisgICAgICAgICAgICBwID0gc2VsZi5jbHMoZCArICc6XFwn
KQorICAgICAgICAgICAgaWYgbm90IHAuaXNfZGlyKCk6CisgICAgICAgICAgICAgICAgYnJlYWsK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoImNhbm5vdCBmaW5kIGEg
ZHJpdmUgdGhhdCBkb2Vzbid0IGV4aXN0IikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhPU0Vycm9yKToKKyAgICAgICAgICAgIChwIC8gJ2NoaWxkJyAvICdwYXRoJykubWtkaXIocGFy
ZW50cz1UcnVlKQorCisgICAgZGVmIHRlc3RfbWtkaXJfd2l0aF9jaGlsZF9maWxlKHNlbGYpOgor
ICAgICAgICBwID0gc2VsZi5jbHMoQkFTRSwgJ2RpckInLCAnZmlsZUInKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUocC5leGlzdHMoKSkKKyAgICAgICAgIyBBbiBleGNlcHRpb24gaXMgcmFpc2Vk
IHdoZW4gdGhlIGxhc3QgcGF0aCBjb21wb25lbnQgaXMgYW4gZXhpc3RpbmcKKyAgICAgICAgIyBy
ZWd1bGFyIGZpbGUsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBleGlzdF9vayBpcyB0cnVlIG9yIG5v
dC4KKyAgICAgICAgc2VsZi5hc3NlcnRGaWxlRXhpc3RzKHAubWtkaXIsIHBhcmVudHM9VHJ1ZSkK
KyAgICAgICAgc2VsZi5hc3NlcnRGaWxlRXhpc3RzKHAubWtkaXIsIHBhcmVudHM9VHJ1ZSwgZXhp
c3Rfb2s9VHJ1ZSkKKworICAgIGRlZiB0ZXN0X21rZGlyX25vX3BhcmVudHNfZmlsZShzZWxmKToK
KyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UsICdmaWxlQScpCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShwLmV4aXN0cygpKQorICAgICAgICAjIEFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiB0
aGUgbGFzdCBwYXRoIGNvbXBvbmVudCBpcyBhbiBleGlzdGluZworICAgICAgICAjIHJlZ3VsYXIg
ZmlsZSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGV4aXN0X29rIGlzIHRydWUgb3Igbm90LgorICAg
ICAgICBzZWxmLmFzc2VydEZpbGVFeGlzdHMocC5ta2RpcikKKyAgICAgICAgc2VsZi5hc3NlcnRG
aWxlRXhpc3RzKHAubWtkaXIsIGV4aXN0X29rPVRydWUpCisKKyAgICBkZWYgdGVzdF9ta2Rpcl9j
b25jdXJyZW50X3BhcmVudF9jcmVhdGlvbihzZWxmKToKKyAgICAgICAgZm9yIHBhdHRlcm5fbnVt
IGluIHJhbmdlKDMyKToKKyAgICAgICAgICAgIHAgPSBzZWxmLmNscyhCQVNFLCAnZGlyQ1BDJWQn
ICUgcGF0dGVybl9udW0pCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHAuZXhpc3RzKCkp
CisKKyAgICAgICAgICAgIGRlZiBteV9ta2RpcihwYXRoLCBtb2RlPTBvNzc3KToKKyAgICAgICAg
ICAgICAgICBwYXRoID0gc3RyKHBhdGgpCisgICAgICAgICAgICAgICAgIyBFbXVsYXRlIGFub3Ro
ZXIgcHJvY2VzcyB0aGF0IHdvdWxkIGNyZWF0ZSB0aGUgZGlyZWN0b3J5CisgICAgICAgICAgICAg
ICAgIyBqdXN0IGJlZm9yZSB3ZSB0cnkgdG8gY3JlYXRlIGl0IG91cnNlbHZlcy4gIFdlIGRvIGl0
CisgICAgICAgICAgICAgICAgIyBpbiBhbGwgcG9zc2libGUgcGF0dGVybiBjb21iaW5hdGlvbnMs
IGFzc3VtaW5nIHRoYXQgdGhpcworICAgICAgICAgICAgICAgICMgZnVuY3Rpb24gaXMgY2FsbGVk
IGF0IG1vc3QgNSB0aW1lcyAoZGlyQ1BDL2RpcjEvZGlyMiwKKyAgICAgICAgICAgICAgICAjIGRp
ckNQQy9kaXIxLCBkaXJDUEMsIGRpckNQQy9kaXIxLCBkaXJDUEMvZGlyMS9kaXIyKS4KKyAgICAg
ICAgICAgICAgICBpZiBwYXR0ZXJuLnBvcCgpOgorICAgICAgICAgICAgICAgICAgICBvcy5ta2Rp
cihwYXRoLCBtb2RlKSAgICAgICMgZnJvbSBhbm90aGVyIHByb2Nlc3MKKyAgICAgICAgICAgICAg
ICAgICAgY29uY3VycmVudGx5X2NyZWF0ZWQuYWRkKHBhdGgpCisgICAgICAgICAgICAgICAgb3Mu
bWtkaXIocGF0aCwgbW9kZSkgICAgICAgICAgIyBvdXIgcmVhbCBjYWxsCisKKyAgICAgICAgICAg
IHBhdHRlcm4gPSBbYm9vbChwYXR0ZXJuX251bSAmICgxIDw8IG4pKSBmb3IgbiBpbiByYW5nZSg1
KV0KKyAgICAgICAgICAgIGNvbmN1cnJlbnRseV9jcmVhdGVkID0gc2V0KCkKKyAgICAgICAgICAg
IHAxMiA9IHAgLyAnZGlyMScgLyAnZGlyMicKKworICAgICAgICAgICAgZGVmIF90cnlfZnVuYygp
OgorICAgICAgICAgICAgICAgIHdpdGggbW9jay5wYXRjaCgicGF0aGxpYjIuX25vcm1hbF9hY2Nl
c3Nvci5ta2RpciIsIG15X21rZGlyKToKKyAgICAgICAgICAgICAgICAgICAgcDEyLm1rZGlyKHBh
cmVudHM9VHJ1ZSwgZXhpc3Rfb2s9RmFsc2UpCisKKyAgICAgICAgICAgIGRlZiBfZXhjX2Z1bmMo
ZXhjKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEluKHN0cihwMTIpLCBjb25jdXJyZW50
bHlfY3JlYXRlZCkKKworICAgICAgICAgICAgZGVmIF9lbHNlX2Z1bmMoKToKKyAgICAgICAgICAg
ICAgICBzZWxmLmFzc2VydE5vdEluKHN0cihwMTIpLCBjb25jdXJyZW50bHlfY3JlYXRlZCkKKwor
ICAgICAgICAgICAgcGF0aGxpYi5fdHJ5X2V4Y2VwdF9maWxlZXhpc3RzZXJyb3IoCisgICAgICAg
ICAgICAgICAgX3RyeV9mdW5jLCBfZXhjX2Z1bmMsIF9lbHNlX2Z1bmMpCisgICAgICAgICAgICBz
ZWxmLmFzc2VydFRydWUocC5leGlzdHMoKSkKKworICAgIEBzdXBwb3J0X3NraXBfdW5sZXNzX3N5
bWxpbmsKKyAgICBkZWYgdGVzdF9zeW1saW5rX3RvKHNlbGYpOgorICAgICAgICBQID0gc2VsZi5j
bHMoQkFTRSkKKyAgICAgICAgdGFyZ2V0ID0gUCAvICdmaWxlQScKKyAgICAgICAgIyBTeW1saW5r
aW5nIGEgcGF0aCB0YXJnZXQKKyAgICAgICAgbGluayA9IFAgLyAnZGlyQScgLyAnbGlua0FBJwor
ICAgICAgICBsaW5rLnN5bWxpbmtfdG8odGFyZ2V0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxpbmsuc3RhdCgpLCB0YXJnZXQuc3RhdCgpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFs
KGxpbmsubHN0YXQoKSwgdGFyZ2V0LnN0YXQoKSkKKyAgICAgICAgIyBTeW1saW5raW5nIGEgc3Ry
IHRhcmdldAorICAgICAgICBsaW5rID0gUCAvICdkaXJBJyAvICdsaW5rQUFBJworICAgICAgICBs
aW5rLnN5bWxpbmtfdG8oc3RyKHRhcmdldCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlu
ay5zdGF0KCksIHRhcmdldC5zdGF0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwobGlu
ay5sc3RhdCgpLCB0YXJnZXQuc3RhdCgpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGxpbmsu
aXNfZGlyKCkpCisgICAgICAgICMgU3ltbGlua2luZyB0byBhIGRpcmVjdG9yeQorICAgICAgICB0
YXJnZXQgPSBQIC8gJ2RpckInCisgICAgICAgIGxpbmsgPSBQIC8gJ2RpckEnIC8gJ2xpbmtBQUFB
JworICAgICAgICBsaW5rLnN5bWxpbmtfdG8odGFyZ2V0LCB0YXJnZXRfaXNfZGlyZWN0b3J5PVRy
dWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluay5zdGF0KCksIHRhcmdldC5zdGF0KCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwobGluay5sc3RhdCgpLCB0YXJnZXQuc3RhdCgp
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUobGluay5pc19kaXIoKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGxpc3QobGluay5pdGVyZGlyKCkpKQorCisgICAgZGVmIHRlc3RfaXNfZGlyKHNl
bGYpOgorICAgICAgICBQID0gc2VsZi5jbHMoQkFTRSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KChQIC8gJ2RpckEnKS5pc19kaXIoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoUCAvICdm
aWxlQScpLmlzX2RpcigpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKChQIC8gJ25vbi1leGlz
dGluZycpLmlzX2RpcigpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKChQIC8gJ2ZpbGVBJyAv
ICdiYWgnKS5pc19kaXIoKSkKKyAgICAgICAgaWYgc3VwcG9ydF9jYW5fc3ltbGluaygpOgorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoUCAvICdsaW5rQScpLmlzX2RpcigpKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKChQIC8gJ2xpbmtCJykuaXNfZGlyKCkpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKChQIC8gJ2Jyb2tlbkxpbmsnKS5pc19kaXIoKSkKKworICAgIGRl
ZiB0ZXN0X2lzX2ZpbGUoc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscyhCQVNFKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoKFAgLyAnZmlsZUEnKS5pc19maWxlKCkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoKFAgLyAnZGlyQScpLmlzX2ZpbGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZSgoUCAvICdub24tZXhpc3RpbmcnKS5pc19maWxlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoKFAgLyAnZmlsZUEnIC8gJ2JhaCcpLmlzX2ZpbGUoKSkKKyAgICAgICAgaWYgc3VwcG9y
dF9jYW5fc3ltbGluaygpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKChQIC8gJ2xpbmtB
JykuaXNfZmlsZSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoUCAvICdsaW5rQicp
LmlzX2ZpbGUoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnYnJva2VuTGlu
aycpLmlzX2ZpbGUoKSkKKworICAgIGRlZiB0ZXN0X2lzX3N5bWxpbmsoc2VsZik6CisgICAgICAg
IFAgPSBzZWxmLmNscyhCQVNFKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKChQIC8gJ2ZpbGVB
JykuaXNfc3ltbGluaygpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKChQIC8gJ2RpckEnKS5p
c19zeW1saW5rKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnbm9uLWV4aXN0aW5n
JykuaXNfc3ltbGluaygpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKChQIC8gJ2ZpbGVBJyAv
ICdiYWgnKS5pc19zeW1saW5rKCkpCisgICAgICAgIGlmIHN1cHBvcnRfY2FuX3N5bWxpbmsoKToK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgoUCAvICdsaW5rQScpLmlzX3N5bWxpbmsoKSkK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgoUCAvICdsaW5rQicpLmlzX3N5bWxpbmsoKSkK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgoUCAvICdicm9rZW5MaW5rJykuaXNfc3ltbGlu
aygpKQorCisgICAgZGVmIHRlc3RfaXNfZmlmb19mYWxzZShzZWxmKToKKyAgICAgICAgUCA9IHNl
bGYuY2xzKEJBU0UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnZmlsZUEnKS5pc19m
aWZvKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnZGlyQScpLmlzX2ZpZm8oKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoUCAvICdub24tZXhpc3RpbmcnKS5pc19maWZvKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnZmlsZUEnIC8gJ2JhaCcpLmlzX2ZpZm8o
KSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICJta2ZpZm8iKSwgIm9z
Lm1rZmlmbygpIHJlcXVpcmVkIikKKyAgICBAdW5pdHRlc3Quc2tpcElmKGFuZHJvaWRfbm90X3Jv
b3QsICJta2ZpZm8gbm90IGFsbG93ZWQsIG5vbiByb290IHVzZXIiKQorICAgIGRlZiB0ZXN0X2lz
X2ZpZm9fdHJ1ZShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0UsICdteWZpZm8nKQor
ICAgICAgICBvcy5ta2ZpZm8oc3RyKFApKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoUC5pc19m
aWZvKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoUC5pc19zb2NrZXQoKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShQLmlzX2ZpbGUoKSkKKworICAgIGRlZiB0ZXN0X2lzX3NvY2tldF9m
YWxzZShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0UpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoKFAgLyAnZmlsZUEnKS5pc19zb2NrZXQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZSgoUCAvICdkaXJBJykuaXNfc29ja2V0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
KFAgLyAnbm9uLWV4aXN0aW5nJykuaXNfc29ja2V0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoKFAgLyAnZmlsZUEnIC8gJ2JhaCcpLmlzX3NvY2tldCgpKQorCisgICAgQHVuaXR0ZXN0LnNr
aXBVbmxlc3MoaGFzYXR0cihzb2NrZXQsICJBRl9VTklYIiksICJVbml4IHNvY2tldHMgcmVxdWly
ZWQiKQorICAgIGRlZiB0ZXN0X2lzX3NvY2tldF90cnVlKHNlbGYpOgorICAgICAgICBQID0gc2Vs
Zi5jbHMoQkFTRSwgJ215c29jaycpCisgICAgICAgIHNvY2sgPSBzb2NrZXQuc29ja2V0KHNvY2tl
dC5BRl9VTklYLCBzb2NrZXQuU09DS19TVFJFQU0pCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChz
b2NrLmNsb3NlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzb2NrLmJpbmQoc3RyKFApKQor
ICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgIkFGX1VOSVggcGF0
aCB0b28gbG9uZyIgaW4gc3RyKGUpOgorICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoImNh
bm5vdCBiaW5kIFVuaXggc29ja2V0OiAiICsgc3RyKGUpKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUoUC5pc19zb2NrZXQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQLmlzX2ZpZm8oKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShQLmlzX2ZpbGUoKSkKKworICAgIGRlZiB0ZXN0X2lz
X2Jsb2NrX2RldmljZV9mYWxzZShzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzKEJBU0UpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnZmlsZUEnKS5pc19ibG9ja19kZXZpY2UoKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoUCAvICdkaXJBJykuaXNfYmxvY2tfZGV2aWNlKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnbm9uLWV4aXN0aW5nJykuaXNfYmxvY2tf
ZGV2aWNlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKFAgLyAnZmlsZUEnIC8gJ2JhaCcp
LmlzX2Jsb2NrX2RldmljZSgpKQorCisgICAgZGVmIHRlc3RfaXNfY2hhcl9kZXZpY2VfZmFsc2Uo
c2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscyhCQVNFKQorICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKChQIC8gJ2ZpbGVBJykuaXNfY2hhcl9kZXZpY2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZSgoUCAvICdkaXJBJykuaXNfY2hhcl9kZXZpY2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZSgoUCAvICdub24tZXhpc3RpbmcnKS5pc19jaGFyX2RldmljZSgpKQorICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKChQIC8gJ2ZpbGVBJyAvICdiYWgnKS5pc19jaGFyX2RldmljZSgpKQorCisg
ICAgQG9ubHlfcG9zaXgKKyAgICBkZWYgdGVzdF9pc19jaGFyX2RldmljZV90cnVlKHNlbGYpOgor
ICAgICAgICAjIFVuZGVyIFVuaXgsIC9kZXYvbnVsbCBzaG91bGQgZ2VuZXJhbGx5IGJlIGEgY2hh
ciBkZXZpY2UKKyAgICAgICAgUCA9IHNlbGYuY2xzKCcvZGV2L251bGwnKQorICAgICAgICBpZiBu
b3QgUC5leGlzdHMoKToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIi9kZXYvbnVsbCByZXF1
aXJlZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShQLmlzX2NoYXJfZGV2aWNlKCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoUC5pc19ibG9ja19kZXZpY2UoKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShQLmlzX2ZpbGUoKSkKKworICAgIGRlZiB0ZXN0X3BpY2tsaW5nX2NvbW1vbihz
ZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKEJBU0UsICdmaWxlQScpCisgICAgICAgIGZvciBw
cm90byBpbiByYW5nZSgwLCBwaWNrbGUuSElHSEVTVF9QUk9UT0NPTCArIDEpOgorICAgICAgICAg
ICAgZHVtcGVkID0gcGlja2xlLmR1bXBzKHAsIHByb3RvKQorICAgICAgICAgICAgcHAgPSBwaWNr
bGUubG9hZHMoZHVtcGVkKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcC5zdGF0KCks
IHAuc3RhdCgpKQorCisgICAgZGVmIHRlc3RfcGFydHNfaW50ZXJuaW5nKHNlbGYpOgorICAgICAg
ICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9IFAoJy91c3IvYmluL2ZvbycpCisgICAgICAgIHEg
PSBQKCcvdXNyL2xvY2FsL2JpbicpCisgICAgICAgICMgJ3VzcicKKyAgICAgICAgc2VsZi5hc3Nl
cnRJcyhwLnBhcnRzWzFdLCBxLnBhcnRzWzFdKQorICAgICAgICAjICdiaW4nCisgICAgICAgIHNl
bGYuYXNzZXJ0SXMocC5wYXJ0c1syXSwgcS5wYXJ0c1szXSkKKworICAgIGRlZiBfY2hlY2tfY29t
cGxleF9zeW1saW5rcyhzZWxmLCBsaW5rMF90YXJnZXQpOgorICAgICAgICAjIFRlc3Qgc29sdmlu
ZyBhIG5vbi1sb29waW5nIGNoYWluIG9mIHN5bWxpbmtzIChpc3N1ZSAjMTk4ODcpCisgICAgICAg
IFAgPSBzZWxmLmNscyhCQVNFKQorICAgICAgICBzZWxmLmRpcmxpbmsob3MucGF0aC5qb2luKCds
aW5rMCcsICdsaW5rMCcpLCBqb2luKCdsaW5rMScpKQorICAgICAgICBzZWxmLmRpcmxpbmsob3Mu
cGF0aC5qb2luKCdsaW5rMScsICdsaW5rMScpLCBqb2luKCdsaW5rMicpKQorICAgICAgICBzZWxm
LmRpcmxpbmsob3MucGF0aC5qb2luKCdsaW5rMicsICdsaW5rMicpLCBqb2luKCdsaW5rMycpKQor
ICAgICAgICBzZWxmLmRpcmxpbmsobGluazBfdGFyZ2V0LCBqb2luKCdsaW5rMCcpKQorCisgICAg
ICAgICMgUmVzb2x2ZSBhYnNvbHV0ZSBwYXRocworICAgICAgICBwID0gKFAgLyAnbGluazAnKS5y
ZXNvbHZlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLCBQKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHN0cihwKSwgQkFTRSkKKyAgICAgICAgcCA9IChQIC8gJ2xpbmsxJykucmVzb2x2
ZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocCwgUCkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzdHIocCksIEJBU0UpCisgICAgICAgIHAgPSAoUCAvICdsaW5rMicpLnJlc29sdmUoKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIFApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c3RyKHApLCBCQVNFKQorICAgICAgICBwID0gKFAgLyAnbGluazMnKS5yZXNvbHZlKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChwLCBQKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihw
KSwgQkFTRSkKKworICAgICAgICAjIFJlc29sdmUgcmVsYXRpdmUgcGF0aHMKKyAgICAgICAgb2xk
X3BhdGggPSBvcy5nZXRjd2QoKQorICAgICAgICBvcy5jaGRpcihCQVNFKQorICAgICAgICB0cnk6
CisgICAgICAgICAgICBwID0gc2VsZi5jbHMoJ2xpbmswJykucmVzb2x2ZSgpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHAsIFApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0
cihwKSwgQkFTRSkKKyAgICAgICAgICAgIHAgPSBzZWxmLmNscygnbGluazEnKS5yZXNvbHZlKCkK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocCwgUCkKKyAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc3RyKHApLCBCQVNFKQorICAgICAgICAgICAgcCA9IHNlbGYuY2xzKCdsaW5rMicp
LnJlc29sdmUoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLCBQKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzdHIocCksIEJBU0UpCisgICAgICAgICAgICBwID0gc2VsZi5j
bHMoJ2xpbmszJykucmVzb2x2ZSgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIFAp
CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgQkFTRSkKKyAgICAgICAgZmlu
YWxseToKKyAgICAgICAgICAgIG9zLmNoZGlyKG9sZF9wYXRoKQorCisgICAgQHN1cHBvcnRfc2tp
cF91bmxlc3Nfc3ltbGluaworICAgIGRlZiB0ZXN0X2NvbXBsZXhfc3ltbGlua3NfYWJzb2x1dGUo
c2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX2NvbXBsZXhfc3ltbGlua3MoQkFTRSkKKworICAg
IEBzdXBwb3J0X3NraXBfdW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9jb21wbGV4X3N5bWxp
bmtzX3JlbGF0aXZlKHNlbGYpOgorICAgICAgICBzZWxmLl9jaGVja19jb21wbGV4X3N5bWxpbmtz
KCcuJykKKworICAgIEBzdXBwb3J0X3NraXBfdW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9j
b21wbGV4X3N5bWxpbmtzX3JlbGF0aXZlX2RvdF9kb3Qoc2VsZik6CisgICAgICAgIHNlbGYuX2No
ZWNrX2NvbXBsZXhfc3ltbGlua3Mob3MucGF0aC5qb2luKCdkaXJBJywgJy4uJykpCisKKworY2xh
c3MgUGF0aFRlc3QoX0Jhc2VQYXRoVGVzdCwgdW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGNscyA9
IHBhdGhsaWIuUGF0aAorCisgICAgZGVmIHRlc3RfY29uY3JldGVfY2xhc3Moc2VsZik6CisgICAg
ICAgIHAgPSBzZWxmLmNscygnYScpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoCisgICAgICAgICAg
ICB0eXBlKHApLAorICAgICAgICAgICAgcGF0aGxpYi5XaW5kb3dzUGF0aCBpZiBvcy5uYW1lID09
ICdudCcgZWxzZSBwYXRobGliLlBvc2l4UGF0aCkKKworICAgIGRlZiB0ZXN0X3Vuc3VwcG9ydGVk
X2ZsYXZvdXIoc2VsZik6CisgICAgICAgIGlmIG9zLm5hbWUgPT0gJ250JzoKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIHBhdGhsaWIuUG9zaXhQYXRo
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVt
ZW50ZWRFcnJvciwgcGF0aGxpYi5XaW5kb3dzUGF0aCkKKworICAgIGRlZiB0ZXN0X2dsb2JfZW1w
dHlfcGF0dGVybihzZWxmKToKKyAgICAgICAgcCA9IHNlbGYuY2xzKCkKKyAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICdVbmFjY2VwdGFibGUgcGF0dGVybicp
OgorICAgICAgICAgICAgbGlzdChwLmdsb2IoJycpKQorCisKK0Bvbmx5X3Bvc2l4CitjbGFzcyBQ
b3NpeFBhdGhUZXN0KF9CYXNlUGF0aFRlc3QsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBjbHMg
PSBwYXRobGliLlBvc2l4UGF0aAorCisgICAgZGVmIF9jaGVja19zeW1saW5rX2xvb3Aoc2VsZiwg
KmFyZ3MpOgorICAgICAgICBwYXRoID0gc2VsZi5jbHMoKmFyZ3MpCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yKToKKyAgICAgICAgICAgIHByaW50KHBhdGgucmVz
b2x2ZShzdHJpY3Q9VHJ1ZSkpCisKKyAgICBkZWYgX2NoZWNrX3N5bWxpbmtfbG9vcF9ub25zdHJp
Y3Qoc2VsZiwgKmFyZ3MpOgorICAgICAgICBwYXRoID0gc2VsZi5jbHMoKmFyZ3MpCisgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yKToKKyAgICAgICAgICAgIHByaW50
KHBhdGgucmVzb2x2ZShzdHJpY3Q9RmFsc2UpKQorCisgICAgZGVmIHRlc3Rfb3Blbl9tb2RlKHNl
bGYpOgorICAgICAgICBvbGRfbWFzayA9IG9zLnVtYXNrKDApCisgICAgICAgIHNlbGYuYWRkQ2xl
YW51cChvcy51bWFzaywgb2xkX21hc2spCisgICAgICAgIHAgPSBzZWxmLmNscyhCQVNFKQorICAg
ICAgICB3aXRoIChwIC8gJ25ld19maWxlJykub3Blbignd2InKToKKyAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgc3QgPSBvcy5zdGF0KGpvaW4oJ25ld19maWxlJykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc3RhdC5TX0lNT0RFKHN0LnN0X21vZGUpLCAwbzY2NikKKyAgICAgICAgb3MudW1h
c2soMG8wMjIpCisgICAgICAgIHdpdGggKHAgLyAnb3RoZXJfbmV3X2ZpbGUnKS5vcGVuKCd3Yicp
OgorICAgICAgICAgICAgcGFzcworICAgICAgICBzdCA9IG9zLnN0YXQoam9pbignb3RoZXJfbmV3
X2ZpbGUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0LlNfSU1PREUoc3Quc3RfbW9k
ZSksIDBvNjQ0KQorCisgICAgZGVmIHRlc3RfdG91Y2hfbW9kZShzZWxmKToKKyAgICAgICAgb2xk
X21hc2sgPSBvcy51bWFzaygwKQorICAgICAgICBzZWxmLmFkZENsZWFudXAob3MudW1hc2ssIG9s
ZF9tYXNrKQorICAgICAgICBwID0gc2VsZi5jbHMoQkFTRSkKKyAgICAgICAgKHAgLyAnbmV3X2Zp
bGUnKS50b3VjaCgpCisgICAgICAgIHN0ID0gb3Muc3RhdChqb2luKCduZXdfZmlsZScpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXQuU19JTU9ERShzdC5zdF9tb2RlKSwgMG82NjYpCisg
ICAgICAgIG9zLnVtYXNrKDBvMDIyKQorICAgICAgICAocCAvICdvdGhlcl9uZXdfZmlsZScpLnRv
dWNoKCkKKyAgICAgICAgc3QgPSBvcy5zdGF0KGpvaW4oJ290aGVyX25ld19maWxlJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RhdC5TX0lNT0RFKHN0LnN0X21vZGUpLCAwbzY0NCkKKyAg
ICAgICAgKHAgLyAnbWFza2VkX25ld19maWxlJykudG91Y2gobW9kZT0wbzc1MCkKKyAgICAgICAg
c3QgPSBvcy5zdGF0KGpvaW4oJ21hc2tlZF9uZXdfZmlsZScpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHN0YXQuU19JTU9ERShzdC5zdF9tb2RlKSwgMG83NTApCisKKyAgICBAc3VwcG9ydF9z
a2lwX3VubGVzc19zeW1saW5rCisgICAgZGVmIHRlc3RfcmVzb2x2ZV9sb29wKHNlbGYpOgorICAg
ICAgICAjIExvb3BzIHdpdGggcmVsYXRpdmUgc3ltbGlua3MKKyAgICAgICAgb3Muc3ltbGluaygn
bGlua1gvaW5zaWRlJywgam9pbignbGlua1gnKSkKKyAgICAgICAgc2VsZi5fY2hlY2tfc3ltbGlu
a19sb29wKEJBU0UsICdsaW5rWCcpCisgICAgICAgIG9zLnN5bWxpbmsoJ2xpbmtZJywgam9pbign
bGlua1knKSkKKyAgICAgICAgc2VsZi5fY2hlY2tfc3ltbGlua19sb29wKEJBU0UsICdsaW5rWScp
CisgICAgICAgIG9zLnN5bWxpbmsoJ2xpbmtaLy4uL2xpbmtaJywgam9pbignbGlua1onKSkKKyAg
ICAgICAgc2VsZi5fY2hlY2tfc3ltbGlua19sb29wKEJBU0UsICdsaW5rWicpCisgICAgICAgICMg
Tm9uLXN0cmljdAorICAgICAgICBzZWxmLl9jaGVja19zeW1saW5rX2xvb3Bfbm9uc3RyaWN0KEJB
U0UsICdsaW5rWicsICdmb28nKQorICAgICAgICAjIExvb3BzIHdpdGggYWJzb2x1dGUgc3ltbGlu
a3MKKyAgICAgICAgb3Muc3ltbGluayhqb2luKCdsaW5rVS9pbnNpZGUnKSwgam9pbignbGlua1Un
KSkKKyAgICAgICAgc2VsZi5fY2hlY2tfc3ltbGlua19sb29wKEJBU0UsICdsaW5rVScpCisgICAg
ICAgIG9zLnN5bWxpbmsoam9pbignbGlua1YnKSwgam9pbignbGlua1YnKSkKKyAgICAgICAgc2Vs
Zi5fY2hlY2tfc3ltbGlua19sb29wKEJBU0UsICdsaW5rVicpCisgICAgICAgIG9zLnN5bWxpbmso
am9pbignbGlua1cvLi4vbGlua1cnKSwgam9pbignbGlua1cnKSkKKyAgICAgICAgc2VsZi5fY2hl
Y2tfc3ltbGlua19sb29wKEJBU0UsICdsaW5rVycpCisgICAgICAgICMgTm9uLXN0cmljdAorICAg
ICAgICBzZWxmLl9jaGVja19zeW1saW5rX2xvb3Bfbm9uc3RyaWN0KEJBU0UsICdsaW5rVycsICdm
b28nKQorCisgICAgZGVmIHRlc3RfZ2xvYihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisg
ICAgICAgIHAgPSBQKEJBU0UpCisgICAgICAgIGdpdmVuID0gc2V0KHAuZ2xvYigiRklMRWEiKSkK
KyAgICAgICAgZXhwZWN0ID0gc2V0KCkgaWYgbm90IHN1cHBvcnQuZnNfaXNfY2FzZV9pbnNlbnNp
dGl2ZShCQVNFKSBlbHNlIGdpdmVuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2l2ZW4sIGV4
cGVjdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQocC5nbG9iKCJGSUxFYSoiKSksIHNl
dCgpKQorCisgICAgZGVmIHRlc3Rfcmdsb2Ioc2VsZik6CisgICAgICAgIFAgPSBzZWxmLmNscwor
ICAgICAgICBwID0gUChCQVNFLCAiZGlyQyIpCisgICAgICAgIGdpdmVuID0gc2V0KHAucmdsb2Io
IkZJTEVkIikpCisgICAgICAgIGV4cGVjdCA9IHNldCgpIGlmIG5vdCBzdXBwb3J0LmZzX2lzX2Nh
c2VfaW5zZW5zaXRpdmUoQkFTRSkgZWxzZSBnaXZlbgorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGdpdmVuLCBleHBlY3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KHAucmdsb2IoIkZJ
TEVkKiIpKSwgc2V0KCkpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHB3ZCwg
J2dldHB3YWxsJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3B3ZCBtb2R1bGUgZG9lcyBu
b3QgZXhwb3NlIGdldHB3YWxsKCknKQorICAgIGRlZiB0ZXN0X2V4cGFuZHVzZXIoc2VsZik6Cisg
ICAgICAgIFAgPSBzZWxmLmNscworICAgICAgICBzdXBwb3J0LmltcG9ydF9tb2R1bGUoJ3B3ZCcp
CisgICAgICAgIGltcG9ydCBwd2QKKyAgICAgICAgcHdkZW50ID0gcHdkLmdldHB3dWlkKG9zLmdl
dHVpZCgpKQorICAgICAgICB1c2VybmFtZSA9IHB3ZGVudC5wd19uYW1lCisgICAgICAgIHVzZXJo
b21lID0gcHdkZW50LnB3X2Rpci5yc3RyaXAoJy8nKSBvciAnLycKKyAgICAgICAgIyBmaW5kIGFy
Yml0cmFyeSBkaWZmZXJlbnQgdXNlciAoaWYgZXhpc3RzKQorICAgICAgICBmb3IgcHdkZW50IGlu
IHB3ZC5nZXRwd2FsbCgpOgorICAgICAgICAgICAgb3RoZXJuYW1lID0gcHdkZW50LnB3X25hbWUK
KyAgICAgICAgICAgIG90aGVyaG9tZSA9IHB3ZGVudC5wd19kaXIucnN0cmlwKCcvJykKKyAgICAg
ICAgICAgIGlmIG90aGVybmFtZSAhPSB1c2VybmFtZSBhbmQgb3RoZXJob21lOgorICAgICAgICAg
ICAgICAgIGJyZWFrCisKKyAgICAgICAgcDEgPSBQKCd+L0RvY3VtZW50cycpCisgICAgICAgIHAy
ID0gUCgnficgKyB1c2VybmFtZSArICcvRG9jdW1lbnRzJykKKyAgICAgICAgcDMgPSBQKCd+JyAr
IG90aGVybmFtZSArICcvRG9jdW1lbnRzJykKKyAgICAgICAgcDQgPSBQKCcuLi9+JyArIHVzZXJu
YW1lICsgJy9Eb2N1bWVudHMnKQorICAgICAgICBwNSA9IFAoJy9+JyArIHVzZXJuYW1lICsgJy9E
b2N1bWVudHMnKQorICAgICAgICBwNiA9IFAoJycpCisgICAgICAgIHA3ID0gUCgnfmZha2V1c2Vy
L0RvY3VtZW50cycpCisKKyAgICAgICAgd2l0aCBzdXBwb3J0LkVudmlyb25tZW50VmFyR3VhcmQo
KSBhcyBlbnY6CisgICAgICAgICAgICBlbnYudW5zZXQoJ0hPTUUnKQorCisgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHAxLmV4cGFuZHVzZXIoKSwgUCh1c2VyaG9tZSkgLyAnRG9jdW1lbnRz
JykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDIuZXhwYW5kdXNlcigpLCBQKHVzZXJo
b21lKSAvICdEb2N1bWVudHMnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwMy5leHBh
bmR1c2VyKCksIFAob3RoZXJob21lKSAvICdEb2N1bWVudHMnKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwNC5leHBhbmR1c2VyKCksIHA0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwNS5leHBhbmR1c2VyKCksIHA1KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
Ni5leHBhbmR1c2VyKCksIHA2KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGlt
ZUVycm9yLCBwNy5leHBhbmR1c2VyKQorCisgICAgICAgICAgICBlbnYuc2V0KCdIT01FJywgJy90
bXAnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwMS5leHBhbmR1c2VyKCksIFAoJy90
bXAvRG9jdW1lbnRzJykpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAyLmV4cGFuZHVz
ZXIoKSwgUCh1c2VyaG9tZSkgLyAnRG9jdW1lbnRzJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocDMuZXhwYW5kdXNlcigpLCBQKG90aGVyaG9tZSkgLyAnRG9jdW1lbnRzJykKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDQuZXhwYW5kdXNlcigpLCBwNCkKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocDUuZXhwYW5kdXNlcigpLCBwNSkKKyAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocDYuZXhwYW5kdXNlcigpLCBwNikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKFJ1bnRpbWVFcnJvciwgcDcuZXhwYW5kdXNlcikKKworCitAb25seV9udAorY2xhc3Mg
V2luZG93c1BhdGhUZXN0KF9CYXNlUGF0aFRlc3QsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBj
bHMgPSBwYXRobGliLldpbmRvd3NQYXRoCisKKyAgICBkZWYgdGVzdF9nbG9iKHNlbGYpOgorICAg
ICAgICBQID0gc2VsZi5jbHMKKyAgICAgICAgcCA9IFAoQkFTRSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZXQocC5nbG9iKCJGSUxFYSIpKSwgc2V0KFtQKEJBU0UsICJmaWxlQSIpXSkpCisK
KyAgICBkZWYgdGVzdF9yZ2xvYihzZWxmKToKKyAgICAgICAgUCA9IHNlbGYuY2xzCisgICAgICAg
IHAgPSBQKEJBU0UsICJkaXJDIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQocC5yZ2xv
YigiRklMRWQiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KFtQKEJBU0UsICJkaXJD
L2RpckQvZmlsZUQiKV0pKQorCisgICAgZGVmIHRlc3RfZXhwYW5kdXNlcihzZWxmKToKKyAgICAg
ICAgUCA9IHNlbGYuY2xzCisgICAgICAgIHdpdGggc3VwcG9ydC5FbnZpcm9ubWVudFZhckd1YXJk
KCkgYXMgZW52OgorICAgICAgICAgICAgZW52LnVuc2V0KCdIT01FJykKKyAgICAgICAgICAgIGVu
di51bnNldCgnVVNFUlBST0ZJTEUnKQorICAgICAgICAgICAgZW52LnVuc2V0KCdIT01FUEFUSCcp
CisgICAgICAgICAgICBlbnYudW5zZXQoJ0hPTUVEUklWRScpCisgICAgICAgICAgICBlbnYuc2V0
KCdVU0VSTkFNRScsICdhbGljZScpCisKKyAgICAgICAgICAgICMgdGVzdCB0aGF0IHRoZSBwYXRo
IHJldHVybnMgdW5jaGFuZ2VkCisgICAgICAgICAgICBwMSA9IFAoJ34vTXkgRG9jdW1lbnRzJykK
KyAgICAgICAgICAgIHAyID0gUCgnfmFsaWNlL015IERvY3VtZW50cycpCisgICAgICAgICAgICBw
MyA9IFAoJ35ib2IvTXkgRG9jdW1lbnRzJykKKyAgICAgICAgICAgIHA0ID0gUCgnL34vTXkgRG9j
dW1lbnRzJykKKyAgICAgICAgICAgIHA1ID0gUCgnZDp+L015IERvY3VtZW50cycpCisgICAgICAg
ICAgICBwNiA9IFAoJycpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJy
b3IsIHAxLmV4cGFuZHVzZXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1l
RXJyb3IsIHAyLmV4cGFuZHVzZXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50
aW1lRXJyb3IsIHAzLmV4cGFuZHVzZXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHA0
LmV4cGFuZHVzZXIoKSwgcDQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHA1LmV4cGFu
ZHVzZXIoKSwgcDUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHA2LmV4cGFuZHVzZXIo
KSwgcDYpCisKKyAgICAgICAgICAgIGRlZiBjaGVjaygpOgorICAgICAgICAgICAgICAgIGVudi51
bnNldCgnVVNFUk5BTUUnKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDEuZXhw
YW5kdXNlcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUCgnQzovVXNlcnMv
YWxpY2UvTXkgRG9jdW1lbnRzJykpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
S2V5RXJyb3IsIHAyLmV4cGFuZHVzZXIpCisgICAgICAgICAgICAgICAgZW52LnNldCgnVVNFUk5B
TUUnLCAnYWxpY2UnKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDIuZXhwYW5k
dXNlcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUCgnQzovVXNlcnMvYWxp
Y2UvTXkgRG9jdW1lbnRzJykpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwMy5l
eHBhbmR1c2VyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQKCdDOi9Vc2Vy
cy9ib2IvTXkgRG9jdW1lbnRzJykpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
NC5leHBhbmR1c2VyKCksIHA0KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDUu
ZXhwYW5kdXNlcigpLCBwNSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHA2LmV4
cGFuZHVzZXIoKSwgcDYpCisKKyAgICAgICAgICAgICMgdGVzdCB0aGUgZmlyc3QgbG9va3VwIGtl
eSBpbiB0aGUgZW52IHZhcnMKKyAgICAgICAgICAgIGVudi5zZXQoJ0hPTUUnLCAnQzpcXFVzZXJz
XFxhbGljZScpCisgICAgICAgICAgICBjaGVjaygpCisKKyAgICAgICAgICAgICMgdGVzdCB0aGF0
IEhPTUVQQVRIIGlzIGF2YWlsYWJsZSBpbnN0ZWFkCisgICAgICAgICAgICBlbnYudW5zZXQoJ0hP
TUUnKQorICAgICAgICAgICAgZW52LnNldCgnSE9NRVBBVEgnLCAnQzpcXFVzZXJzXFxhbGljZScp
CisgICAgICAgICAgICBjaGVjaygpCisKKyAgICAgICAgICAgIGVudi5zZXQoJ0hPTUVEUklWRScs
ICdDOlxcJykKKyAgICAgICAgICAgIGVudi5zZXQoJ0hPTUVQQVRIJywgJ1VzZXJzXFxhbGljZScp
CisgICAgICAgICAgICBjaGVjaygpCisKKyAgICAgICAgICAgIGVudi51bnNldCgnSE9NRURSSVZF
JykKKyAgICAgICAgICAgIGVudi51bnNldCgnSE9NRVBBVEgnKQorICAgICAgICAgICAgZW52LnNl
dCgnVVNFUlBST0ZJTEUnLCAnQzpcXFVzZXJzXFxhbGljZScpCisgICAgICAgICAgICBjaGVjaygp
CisKKworIyBleHRyYSB0ZXN0IHRvIGVuc3VyZSBjb3ZlcmFnZSBvZiBpc3N1ZSAjNTQKK2RlZiB0
ZXN0X3Jlc29sdmVfZXh0cmEoKToKKyAgICBwYXRobGliLlBhdGgoIn4vZG9lc19ub3RfZXhpc3Qi
KS5yZXNvbHZlKCkKKworCitkZWYgbWFpbigpOgorICAgIHVuaXR0ZXN0Lm1haW4oX19uYW1lX18p
CisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhs
aWIyL3Rlc3RzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwZTAyY2IwYzljNWQ0ODk0NWZi
M2YyYzJiOWZkNzQ5NzNmNGFiZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3Rl
c3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxp
YjIvdGVzdHMvdGVzdF9wYXRobGliMi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ5
ZTYyZjBiNmIyNDFjYTI3YTBlZTBiOThmNDY0Njg0ZGU1ZjQ4NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGF0aGxpYjIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyNiBAQAorVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
CitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYXRobGliMi9DSEFOR0VMT0cucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9MSUNFTlNFLnJzdAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGF0aGxpYjIvTUFOSUZFU1QuaW4KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL1JFQURNRS5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhdGhsaWIyL1ZFUlNJT04KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL2FwcHZleW9yLnltbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGF0aGxpYjIvY29kZWNvdi55bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3JlcXVpcmVtZW50cy50eHQKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhdGhsaWIyL3NldHVwLmNmZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvc2V0dXAucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L0NIQU5HRUxPRy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9DSEFOR0VMT0cucnN0
CmluZGV4IDkxYmY1M2ZkY2NiNTMyZTBhNTA0ZjU4NTFhODgzNTlkZjNiY2QzODQuLjA1MzZkZGEw
M2E4NjdhNWJlMzZkNTg2Y2FhMjJlZmFmYWIwYzlmMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L0NIQU5HRUxPRy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvQ0hBTkdFTE9HLnJzdApAQCAtMSw1ICsx
LDE4MCBAQAotMC42LjAKLS0tLS0tCis9PT09PT09PT0KK0NoYW5nZWxvZworPT09PT09PT09CisK
Ky4uIHRvd25jcmllciByZWxlYXNlIG5vdGVzIHN0YXJ0CisKK3BsdWdneSAwLjEzLjEgKDIwMTkt
MTEtMjEpCis9PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUcml2aWFsL0ludGVybmFsIENo
YW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMjM2IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvcHVsbC8yMzY+YF86IEltcHJvdmVkIGRvY3VtZW50YXRp
b24sIGVzcGVjaWFsbHkgd2l0aCByZWdhcmQgdG8gcmVmZXJlbmNlcy4KKworCitwbHVnZ3kgMC4x
My4wICgyMDE5LTA5LTEwKQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVHJpdmlhbC9J
bnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzIyMiA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L2lzc3Vlcy8yMjI+YF86IFJlcGxhY2Ug
YGBpbXBvcnRsaWJfbWV0YWRhdGFgYCBiYWNrcG9ydCB3aXRoIGBgaW1wb3J0bGliLm1ldGFkYXRh
YGAgZnJvbSB0aGUKKyAgc3RhbmRhcmQgbGlicmFyeSBvbiBQeXRob24gMy44Ky4KKworCitwbHVn
Z3kgMC4xMi4wICgyMDE5LTA1LTI3KQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRmVh
dHVyZXMKKy0tLS0tLS0tCisKKy0gYCMyMTUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3BsdWdneS9pc3N1ZXMvMjE1PmBfOiBTd2l0Y2ggZnJvbSBgYHBrZ19yZXNvdXJjZXNgYCB0byBg
YGltcG9ydGxpYi1tZXRhZGF0YWBgIGZvciBlbnRyeXBvaW50IGRldGVjdGlvbiBmb3IgaW1wcm92
ZWQgcGVyZm9ybWFuY2UgYW5kIGltcG9ydCB0aW1lLiAgVGhpcyB0aW1lIHdpdGggYGAuZWdnYGAg
c3VwcG9ydC4KKworCitwbHVnZ3kgMC4xMS4wICgyMDE5LTA1LTA3KQorPT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzIwNSA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L2lzc3Vlcy8yMDU+YF86IFJldmVydCBjaGFuZ2Vz
IG1hZGUgaW4gMC4xMC4wIHJlbGVhc2UgYnJlYWtpbmcgYGAuZWdnYGAgaW5zdGFsbHMuCisKKwor
cGx1Z2d5IDAuMTAuMCAoMjAxOS0wNS0wNykKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisK
K0ZlYXR1cmVzCistLS0tLS0tLQorCistIGAjMTk5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9wbHVnZ3kvaXNzdWVzLzE5OT5gXzogU3dpdGNoIGZyb20gYGBwa2dfcmVzb3VyY2VzYGAg
dG8gYGBpbXBvcnRsaWItbWV0YWRhdGFgYCBmb3IgZW50cnlwb2ludCBkZXRlY3Rpb24gZm9yIGlt
cHJvdmVkIHBlcmZvcm1hbmNlIGFuZCBpbXBvcnQgdGltZS4KKworCitwbHVnZ3kgMC45LjAgKDIw
MTktMDItMjEpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0ZlYXR1cmVzCistLS0tLS0t
LQorCistIGAjMTg5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVz
LzE4OT5gXzogYGBQbHVnaW5NYW5hZ2VyLmxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50c2BgIG5v
dyBhY2NlcHRzIGEgYGBuYW1lYGAgcGFyYW1ldGVyIHRoYXQgd2hlbiBnaXZlbiB3aWxsCisgIGxv
YWQgb25seSBlbnRyeSBwb2ludHMgd2l0aCB0aGF0IG5hbWUuCisKKyAgYGBQbHVnaW5NYW5hZ2Vy
LmxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50c2BgIGFsc28gbm93IHJldHVybnMgdGhlIG51bWJl
ciBvZiBwbHVnaW5zIGxvYWRlZCBieSB0aGUKKyAgY2FsbCwgYXMgb3Bwb3NlZCB0byB0aGUgbnVt
YmVyIG9mIGFsbCBwbHVnaW5zIGxvYWRlZCBieSBhbGwgY2FsbHMgdG8gdGhpcyBtZXRob2QuCisK
KworCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjMTg3IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE4Nz5gXzogRml4IGludGVybmFsIGBgdmFybmFtZXNg
YCBmdW5jdGlvbiBmb3IgUHlQeTMuCisKKworcGx1Z2d5IDAuOC4xICgyMDE4LTExLTA5KQorPT09
PT09PT09PT09PT09PT09PT09PT09PQorCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMTY2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9wbHVnZ3kvaXNzdWVzLzE2Nj5gXzogQWRkIGBgc3RhY2tsZXZlbD0yYGAgdG8gaW1wbHBy
ZWZpeCB3YXJuaW5nIHNvIHRoYXQgdGhlIHJlcG9ydGVkIGxvY2F0aW9uIG9mIHdhcm5pbmcgaXMg
dGhlIGNhbGxlciBvZiBQbHVnaW5NYW5hZ2VyLgorCisKK3BsdWdneSAwLjguMCAoMjAxOC0xMC0x
NSkKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworRmVhdHVyZXMKKy0tLS0tLS0tCisKKy0g
YCMxNzcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMvMTc3PmBf
OiBBZGQgYGBnZXRfaG9va2ltcGxzKClgYCBtZXRob2QgdG8gaG9vayBjYWxsZXJzLgorCisKKwor
VHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBg
IzE2NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L2lzc3Vlcy8xNjU+YF86
IEFkZCBjaGFuZ2Vsb2cgaW4gbG9uZyBwYWNrYWdlIGRlc2NyaXB0aW9uIGFuZCBkb2N1bWVudGF0
aW9uLgorCisKKy0gYCMxNzIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9p
c3N1ZXMvMTcyPmBfOiBBZGQgYSB0ZXN0IGV4ZW1wbGlmeWluZyB0aGUgb3B0LWluIG5hdHVyZSBv
ZiBzcGVjIGRlZmluZWQgYXJncy4KKworCistIGAjNTcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3BsdWdneS9pc3N1ZXMvNTc+YF86IEVuY2Fwc3VsYXRlIGhvb2sgc3BlY2lmaWNhdGlv
bnMgaW4gYSB0eXBlIGZvciBlYXNpZXIgaW50cm9zcGVjdGlvbi4KKworCitwbHVnZ3kgMC43LjEg
KDIwMTgtMDctMjgpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0RlcHJlY2F0aW9ucyBh
bmQgUmVtb3ZhbHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzExNiA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L2lzc3Vlcy8xMTY+YF86IERlcHJlY2F0ZSB0
aGUgYGBpbXBscHJlZml4YGAga3dhcmcgdG8gYGBQbHVnaW5NYW5hZ2VyYGAgYW5kIGluc3RlYWQK
KyAgZXhwZWN0IHVzZXJzIHRvIHN0YXJ0IHVzaW5nIGV4cGxpY2l0IGBgSG9va2ltcGxNYXJrZXJg
YCBldmVyeXdoZXJlLgorCisKKworRmVhdHVyZXMKKy0tLS0tLS0tCisKKy0gYCMxMjIgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMvMTIyPmBfOiBBZGQgYGAucGx1
Z2luYGAgbWVtYmVyIHRvIGBgUGx1Z2luVmFsaWRhdGlvbkVycm9yYGAgdG8gYWNjZXNzIGZhaWxp
bmcgcGx1Z2luIGR1cmluZyBwb3N0LW1vcnRlbS4KKworCistIGAjMTM4IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzEzOD5gXzogQWRkIHBlciBpbXBsZW1lbnRh
dGlvbiB3YXJuaW5ncyBzdXBwb3J0IGZvciBob29rc3BlY3MgYWxsb3dpbmcgZm9yIGJvdGgKKyAg
ZGVwcmVjYXRpb24gYW5kIGZ1dHVyZSB3YXJuaW5ncyBvZiBsZWdhY3kgYW5kIChmdXR1cmUpIGV4
cGVyaW1lbnRhbCBob29rcworICByZXNwZWN0aXZlbHkuCisKKworCitCdWcgRml4ZXMKKy0tLS0t
LS0tLQorCistIGAjMTEwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNz
dWVzLzExMD5gXzogRml4IGEgYnVnIHdoZXJlIGBgX0hvb2tDYWxsZXIuY2FsbF9oaXN0b3JpYygp
YGAgd291bGQgY2FsbCB0aGUgYGBwcm9jYGAKKyAgYXJnIGV2ZW4gd2hlbiB0aGUgZGVmYXVsdCBp
cyBgYE5vbmVgYCByZXN1bHRpbmcgaW4gYSBgYFR5cGVFcnJvcmBgLgorCistIGAjMTYwIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE2MD5gXzogRml4IHByb2Js
ZW0gd2hlbiBoYW5kbGluZyBgYFZlcnNpb25Db25mbGljdGBgIGVycm9ycyB3aGVuIGxvYWRpbmcg
c2V0dXB0b29scyBwbHVnaW5zLgorCisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCistIGAjMTIzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9wbHVnZ3kvaXNzdWVzLzEyMz5gXzogRG9jdW1lbnQgaG93IGV4Y2VwdGlvbnMgYXJlIGhhbmRs
ZWQgYW5kIGhvdyB0aGUgaG9vayBjYWxsIGxvb3AKKyAgdGVybWluYXRlcyBpbW1lZGlhdGVseSBv
biB0aGUgZmlyc3QgZXJyb3Igd2hpY2ggaXMgdGhlbiBkZWxpdmVyZWQKKyAgdG8gYW55IHN1cnJv
dW5kaW5nIHdyYXBwZXJzLgorCisKKy0gYCMxMzYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3BsdWdneS9pc3N1ZXMvMTM2PmBfOiBEb2NzIHJld29yayBpbmNsdWRpbmcgYSBtdWNoIGJl
dHRlciBpbnRyb2R1Y3Rpb24gYW5kIGNvbXByZWhlbnNpdmUgZXhhbXBsZQorICBzZXQgZm9yIG5l
dyB1c2Vycy4gQSBiaWcgdGhhbmtzIGdvZXMgb3V0IHRvIEBvYmVzdHdhbHRlciBmb3IgdGhlIGdy
ZWF0IHdvcmshCisKKworCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCistIGAjMTE3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVn
Z3kvaXNzdWVzLzExNz5gXzogQnJlYWsgdXAgdGhlIG1haW4gbW9ub2xpdGhpYyBwYWNrYWdlIG1v
ZHVsZXMgaW50byBzZXBhcmF0ZSBtb2R1bGVzIGJ5IGNvbmNlcm4KKworCistIGAjMTMxIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzEzMT5gXzogQXV0b21hdGUg
YGBzZXR1cHRvb2xzYGAgd2hlZWxzIGJ1aWxkaW5nIGFuZCBQeVBpIHVwbG9hZCB1c2luZyBUcmF2
aXNDSS4KKworCistIGAjMTUzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kv
aXNzdWVzLzE1Mz5gXzogUmVvcmdhbml6ZSB0ZXN0cyBtb3JlIGFwcHJvcHJpYXRlbHkgYnkgbW9k
dWxlcyByZWxhdGluZyB0byBlYWNoCisgIGludGVybmFsIGNvbXBvbmVudC9mZWF0dXJlLiBUaGlz
IGlzIGluIGFuIGVmZm9ydCB0byBhdm9pZCAoZnV0dXJlKQorICBkdXBsaWNhdGlvbiBhbmQgYmV0
dGVyIHNlcGFyYXRpb24gb2YgY29uY2VybnMgaW4gdGhlIHRlc3Qgc2V0LgorCisKKy0gYCMxNTYg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMvMTU2PmBfOiBBZGQg
YGBIb29rSW1wbC5fX3JlcHJfXygpYGAgZm9yIGJldHRlciBkZWJ1Z2dpbmcuCisKKworLSBgIzY2
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzY2PmBfOiBTdGFy
dCB1c2luZyBgYHRvd25jcmllcmBgIGFuZCBhIGN1c3RvbSBgYHRveGBgIGVudmlyb25tZW50IHRv
IHByZXBhcmUgcmVsZWFzZXMhCisKKworcGx1Z2d5IDAuNy4wIChVbnJlbGVhc2VkKQorPT09PT09
PT09PT09PT09PT09PT09PT09PQorCisqIGAjMTYwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9wbHVnZ3kvaXNzdWVzLzE2MD5gXzogV2UgZGlzY292ZXJlZCBhIGRlcGxveW1lbnQgaXNz
dWUgc28gdGhpcyB2ZXJzaW9uIHdhcyBuZXZlciByZWxlYXNlZCB0byBQeVBJLCBvbmx5IHRoZSB0
YWcgZXhpc3RzLgorCitwbHVnZ3kgMC42LjAgKDIwMTctMTEtMjQpCis9PT09PT09PT09PT09PT09
PT09PT09PT09CisKIC0gQWRkIENJIHRlc3RpbmcgZm9yIHRoZSBmZWF0dXJlcywgcmVsZWFzZSwg
YW5kIG1hc3RlcgogICBicmFuY2hlcyBvZiBgYHB5dGVzdGBgIChQUiBgIzc5YF8pLgogLSBEb2N1
bWVudCBwdWJsaWMgQVBJIGZvciBgYF9SZXN1bHRgYCBvYmplY3RzIHBhc3NlZCB0byB3cmFwcGVy
cwpAQCAtMjcsOCArMjAyLDkgQEAKIC4uIF8jMTAzOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9wbHVnZ3kvcHVsbC8xMDMKIAogCi0wLjUuMgotLS0tLS0KK3BsdWdneSAwLjUuMiAoMjAx
Ny0wOS0wNikKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKwogLSBmaXggYnVnIHdoZXJlIGBg
Zmlyc3RyZXN1bHRgYCB3cmFwcGVycyB3ZXJlIGJlaW5nIHNlbnQgYW4gaW5jb3JyZWN0bHkgY29u
ZmlndXJlZAogICBgYF9SZXN1bHRgYCAoYSBsaXN0IHdhcyBzZXQgaW5zdGVhZCBvZiBhIHNpbmds
ZSB2YWx1ZSkuIEFkZCB0ZXN0cyB0byBjaGVjayBmb3IKICAgdGhpcyBhcyB3ZWxsIGFzIGBgX1Jl
c3VsdC5mb3JjZV9yZXN1bHQoKWBgIGJlaGF2aW91ci4gVGhhbmtzIHRvIGBAdGdvb2RsZXRgXwpA
QCAtNDUsMTggKzIyMSwyMCBAQAogLi4gXyM4MDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcGx1Z2d5L3B1bGwvODAKIAogCi0wLjUuMQotLS0tLS0KK3BsdWdneSAwLjUuMSAoMjAxNy0w
OC0yOSkKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKwogLSBmaXggYSBidWcgYW5kIGFkZCB0
ZXN0cyBmb3IgY2FzZSB3aGVyZSBgYGZpcnN0cmVzdWx0YGAgaG9va3MgcmV0dXJuCiAgIGBgTm9u
ZWBgIHJlc3VsdHMuIFRoYW5rcyB0byBgQFJvbm55UGZhbm5zY2htaWR0YF8gYW5kIGBAdGdvb2Rs
ZXRgXwogICBmb3IgdGhlIGlzc3VlIChgIzY4YF8pIGFuZCBQUiAoYCM2OWBfKSByZXNwZWN0aXZl
bHkuCiAKIC4uIF8jNjk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9wdWxs
LzY5Ci0uLiBfIzY4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdXNl
cy82OAorLi4gXyM2ODogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L2lzc3Vl
cy82OAorCiAKK3BsdWdneSAwLjUuMCAoMjAxNy0wOC0yOCkKKz09PT09PT09PT09PT09PT09PT09
PT09PT0KIAotMC41LjAKLS0tLS0tCiAtIGZpeCBidWcgd2hlcmUgY2FsbGJhY2tzIGZvciBoaXN0
b3JpYyBob29rcyB3b3VsZCBub3QgYmUgY2FsbGVkIGZvcgogICBhbHJlYWR5IHJlZ2lzdGVyZWQg
cGx1Z2lucy4gIFRoYW5rcyBgQHZvZGlrYF8gZm9yIHRoZSBQUgogICBhbmQgYEBocGs0MmBfIGZv
ciBmdXJ0aGVyIGZpeGVzLgpAQCAtMTE0LDggKzI5Miw5IEBACiAuLiBfIzE0OiBodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzE0CiAKIAotMC40LjAKLS0tLS0tCitw
bHVnZ3kgMC40LjAgKDIwMTYtMDktMjUpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKIC0g
YWRkIGBgaGFzX3BsdWdpbihuYW1lKWBgIG1ldGhvZCB0byBwbHVnaW5tYW5hZ2VyLiAgdGhhbmtz
IGBAbmljb2RkZW11c2BfLgogCiAtIGZpeCBgIzExYF86IG1ha2UgcGx1Z2luIHBhcnNpbmcgbW9y
ZSByZXNpbGllbnQgYWdhaW5zdCBleGNlcHRpb25zCkBAIC0xMzEsMTkgKzMxMCwyMSBAQAogLi4g
XyM0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdWVzLzQKIAogCi0w
LjMuMQotLS0tLS0KK3BsdWdneSAwLjMuMSAoMjAxNS0wOS0xNykKKz09PT09PT09PT09PT09PT09
PT09PT09PT0KKwogLSBhdm9pZCB1c2luZyBkZXByZWNhdGVkLWluLXB5dGhvbjMuNSBnZXRhcmdz
cGVjIG1ldGhvZC4gVGhhbmtzCiAgIGBAbWRib29tYF8uCiAKIAotMC4zLjAKLS0tLS0tCitwbHVn
Z3kgMC4zLjAgKDIwMTUtMDUtMDcpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKIGluaXRp
YWwgcmVsZWFzZQogCiAuLiBjb250cmlidXRvcnMKIC4uIF9AaHBrNDI6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9ocGs0MgotLi4gX0B0Z29vZGxldDogaHR0cHM6Ly9naXRodWIuY29tL3Rnb29kbGV0Cisu
LiBfQHRnb29kbGV0OiBodHRwczovL2dpdGh1Yi5jb20vZ29vZGJveQogLi4gX0BNaWNoYWxUSEVE
VURFOiBodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVEhFRFVERQogLi4gX0B2b2RpazogaHR0cHM6
Ly9naXRodWIuY29tL3ZvZGlrCiAuLiBfQFJvbm55UGZhbm5zY2htaWR0OiBodHRwczovL2dpdGh1
Yi5jb20vUm9ubnlQZmFubnNjaG1pZHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L0hPV1RPUkVM
RUFTRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9IT1dUT1JFTEVBU0UucnN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwY2M0
ZmRlZWMwZTk2N2M3YTkwMTJiOTgyYTM4YzhmMmYzYzkwODkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS9IT1dUT1JFTEVBU0UucnN0CkBAIC0wLDAgKzEsMjMgQEAKK1JlbGVhc2UgUHJv
Y2VkdXJlCistLS0tLS0tLS0tLS0tLS0tLQorCisjLiBGcm9tIGEgY2xlYW4gd29yayB0cmVlLCBl
eGVjdXRlOjoKKworICAgIHRveCAtZSByZWxlYXNlIC0tIFZFUlNJT04KKworICAgVGhpcyB3aWxs
IGNyZWF0ZSB0aGUgYnJhbmNoIHJlYWR5IHRvIGJlIHB1c2hlZC4KKworIy4gT3BlbiBhIFBSIHRh
cmdldGluZyBgYG1hc3RlcmBgLgorCisjLiBBbGwgdGVzdHMgbXVzdCBwYXNzIGFuZCB0aGUgUFIg
bXVzdCBiZSBhcHByb3ZlZCBieSBhdCBsZWFzdCBhbm90aGVyIG1haW50YWluZXIuCisKKyMuIFB1
Ymxpc2ggdG8gUHlQSSBieSBwdXNoaW5nIGEgdGFnOjoKKworICAgICBnaXQgdGFnIFguWS5aIHJl
bGVhc2UtWC5ZLloKKyAgICAgZ2l0IHB1c2ggZ2l0QGdpdGh1Yi5jb206cHl0ZXN0LWRldi9wbHVn
Z3kuZ2l0IFguWS5aCisKKyAgIFRoZSB0YWcgd2lsbCB0cmlnZ2VyIGEgbmV3IGJ1aWxkLCB3aGlj
aCB3aWxsIGRlcGxveSB0byBQeVBJLgorCisjLiBNYWtlIHN1cmUgaXQgaXMgYGF2YWlsYWJsZSBv
biBQeVBJIDxodHRwczovL3B5cGkub3JnL3Byb2plY3QvcGx1Z2d5PmBfLgorCisjLiBNZXJnZSB0
aGUgUFIgaW50byBgYG1hc3RlcmBgLCBlaXRoZXIgbWFudWFsbHkgb3IgdXNpbmcgR2l0SHViJ3Mg
d2ViIGludGVyZmFjZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L0xJQ0VOU0UgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9MSUNFTlNFCmluZGV4IDEyMTAxN2QwODY2YWZjNjE3NGJjYmQ5MjE0ZmFkZmZkODAwNmY4
MzQuLjg1ZjRkZDYzZDJkYThlMzFkN2U4NGQ1MTgwZjAxNmZkZmUzMTVjMmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L0xJQ0VOU0UKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvTElDRU5TRQpAQCAtMSw2ICsx
LDYgQEAKIFRoZSBNSVQgTGljZW5zZSAoTUlUKQogCi1Db3B5cmlnaHQgKGMpIDIwMTUgaG9sZ2Vy
IGtyZWtlbCAocmF0aGVyIHVzZXMgYml0YnVja2V0L2hwazQyKSAKK0NvcHlyaWdodCAoYykgMjAx
NSBob2xnZXIga3Jla2VsIChyYXRoZXIgdXNlcyBiaXRidWNrZXQvaHBrNDIpCiAKIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhIGNvcHkKIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv
biBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCkBAIC0xOSw0ICsxOSwzIEBAIEFVVEhP
UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg
T1IgT1RIRVIKIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX
SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogU09G
VFdBUkUuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9SRUFETUUucnN0CmluZGV4IDM2MzZiNmVjNjQyNTAyMzIwYWVjYjczODc0NmRjNWM4ODkwODJm
NDcuLmI3OWVmMDI0NjAxODU1Nzk5MTE4ZjFmODA2NDExMGM0MTIwOWQwMzYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L1JFQURNRS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvUkVBRE1FLnJzdApAQCAt
MSwxNCArMSwxNSBAQAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQogcGx1Z2d5IC0gQSBtaW5pbWFsaXN0IHByb2R1Y3Rpb24gcmVhZHkgcGx1Z2lu
IHN5c3RlbQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotfHB5cGl8IHxhbmFjb25kYXwgfHZlcnNpb25zfCB8dHJhdmlzfCB8YXBwdmV5b3J8CiAK
K3xweXBpfCB8Y29uZGEtZm9yZ2V8IHx2ZXJzaW9uc3wgfHRyYXZpc3wgfGFwcHZleW9yfCB8Z2l0
dGVyfCB8YmxhY2t8IHxjb2RlY292fAogCiBUaGlzIGlzIHRoZSBjb3JlIGZyYW1ld29yayB1c2Vk
IGJ5IHRoZSBgcHl0ZXN0YF8sIGB0b3hgXywgYW5kIGBkZXZwaWBfIHByb2plY3RzLgogCiBQbGVh
c2UgYHJlYWQgdGhlIGRvY3NgXyB0byBsZWFybiBtb3JlIQogCiBBIGRlZmluaXRpdmUgZXhhbXBs
ZQotKioqKioqKioqKioqKioqKioqKioKKz09PT09PT09PT09PT09PT09PT09CiAuLiBjb2RlLWJs
b2NrOjogcHl0aG9uCiAKICAgICBpbXBvcnQgcGx1Z2d5CkBAIC0yMCw2ICsyMSw3IEBAIEEgZGVm
aW5pdGl2ZSBleGFtcGxlCiAgICAgY2xhc3MgTXlTcGVjKG9iamVjdCk6CiAgICAgICAgICIiIkEg
aG9vayBzcGVjaWZpY2F0aW9uIG5hbWVzcGFjZS4KICAgICAgICAgIiIiCisKICAgICAgICAgQGhv
b2tzcGVjCiAgICAgICAgIGRlZiBteWhvb2soc2VsZiwgYXJnMSwgYXJnMik6CiAgICAgICAgICAg
ICAiIiJNeSBzcGVjaWFsIGxpdHRsZSBob29rIHRoYXQgeW91IGNhbiBjdXN0b21pemUuCkBAIC0y
OSw2ICszMSw3IEBAIEEgZGVmaW5pdGl2ZSBleGFtcGxlCiAgICAgY2xhc3MgUGx1Z2luXzEob2Jq
ZWN0KToKICAgICAgICAgIiIiQSBob29rIGltcGxlbWVudGF0aW9uIG5hbWVzcGFjZS4KICAgICAg
ICAgIiIiCisKICAgICAgICAgQGhvb2tpbXBsCiAgICAgICAgIGRlZiBteWhvb2soc2VsZiwgYXJn
MSwgYXJnMik6CiAgICAgICAgICAgICBwcmludCgiaW5zaWRlIFBsdWdpbl8xLm15aG9vaygpIikK
QEAgLTM4LDYgKzQxLDcgQEAgQSBkZWZpbml0aXZlIGV4YW1wbGUKICAgICBjbGFzcyBQbHVnaW5f
MihvYmplY3QpOgogICAgICAgICAiIiJBIDJuZCBob29rIGltcGxlbWVudGF0aW9uIG5hbWVzcGFj
ZS4KICAgICAgICAgIiIiCisKICAgICAgICAgQGhvb2tpbXBsCiAgICAgICAgIGRlZiBteWhvb2so
c2VsZiwgYXJnMSwgYXJnMik6CiAgICAgICAgICAgICBwcmludCgiaW5zaWRlIFBsdWdpbl8yLm15
aG9vaygpIikKQEAgLTUyLDIyICs1Niw0NiBAQCBBIGRlZmluaXRpdmUgZXhhbXBsZQogICAgIHBt
LnJlZ2lzdGVyKFBsdWdpbl8xKCkpCiAgICAgcG0ucmVnaXN0ZXIoUGx1Z2luXzIoKSkKIAotICAg
ICMgY2FsbCBvdXIgYG15aG9va2AgaG9vaworICAgICMgY2FsbCBvdXIgYGBteWhvb2tgYCBob29r
CiAgICAgcmVzdWx0cyA9IHBtLmhvb2subXlob29rKGFyZzE9MSwgYXJnMj0yKQogICAgIHByaW50
KHJlc3VsdHMpCiAKIAorUnVubmluZyB0aGlzIGRpcmVjdGx5IGdldHMgdXM6OgorCisgICAgJCBw
eXRob24gZG9jcy9leGFtcGxlcy90b3ktZXhhbXBsZS5weQorICAgIGluc2lkZSBQbHVnaW5fMi5t
eWhvb2soKQorICAgIGluc2lkZSBQbHVnaW5fMS5teWhvb2soKQorICAgIFstMSwgM10KKworCiAu
LiBiYWRnZXMKKwogLi4gfHB5cGl8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBp
L3YvcGx1Z2d5LnN2ZwotICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkv
cGx1Z2d5CisgICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLm9yZy9weXBpL3BsdWdneQorCiAuLiB8
dmVyc2lvbnN8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMv
cGx1Z2d5LnN2ZwotICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcGx1
Z2d5CisgICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLm9yZy9weXBpL3BsdWdneQorCiAuLiB8dHJh
dmlzfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHJhdmlzL3B5dGVzdC1kZXYvcGx1
Z2d5L21hc3Rlci5zdmcKICAgICA6dGFyZ2V0OiBodHRwczovL3RyYXZpcy1jaS5vcmcvcHl0ZXN0
LWRldi9wbHVnZ3kKKwogLi4gfGFwcHZleW9yfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMu
aW8vYXBwdmV5b3IvY2kvcHl0ZXN0Ym90L3BsdWdneS9tYXN0ZXIuc3ZnCiAgICAgOnRhcmdldDog
aHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9weXRlc3Rib3QvcGx1Z2d5Ci0uLiB8YW5h
Y29uZGF8IGltYWdlOjogaHR0cHM6Ly9hbmFjb25kYS5vcmcvY29uZGEtZm9yZ2UvcGx1Z2d5L2Jh
ZGdlcy92ZXJzaW9uLnN2ZwotICAgIDp0YXJnZXQ6IGh0dHBzOi8vYW5hY29uZGEub3JnL2NvbmRh
LWZvcmdlL3BsdWdneQorCisuLiB8Y29uZGEtZm9yZ2V8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hp
ZWxkcy5pby9jb25kYS92bi9jb25kYS1mb3JnZS9wbHVnZ3kuc3ZnCisgICAgOnRhcmdldDogaHR0
cHM6Ly9hbmFjb25kYS5vcmcvY29uZGEtZm9yZ2UvcHl0ZXN0CisKKy4uIHxnaXR0ZXJ8IGltYWdl
OjogaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmltL3B5dGVzdC1kZXYvcGx1Z2d5LnN2ZworICAgIDph
bHQ6IEpvaW4gdGhlIGNoYXQgYXQgaHR0cHM6Ly9naXR0ZXIuaW0vcHl0ZXN0LWRldi9wbHVnZ3kK
KyAgICA6dGFyZ2V0OiBodHRwczovL2dpdHRlci5pbS9weXRlc3QtZGV2L3BsdWdneT91dG1fc291
cmNlPWJhZGdlJnV0bV9tZWRpdW09YmFkZ2UmdXRtX2NhbXBhaWduPXByLWJhZGdlJnV0bV9jb250
ZW50PWJhZGdlCisKKy4uIHxibGFja3wgaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2Jh
ZGdlL2NvZGUlMjBzdHlsZS1ibGFjay0wMDAwMDAuc3ZnCisgICAgOnRhcmdldDogaHR0cHM6Ly9n
aXRodWIuY29tL2FtYnYvYmxhY2sKKworLi4gfGNvZGVjb3Z8IGltYWdlOjogaHR0cHM6Ly9jb2Rl
Y292LmlvL2doL3B5dGVzdC1kZXYvcGx1Z2d5L2JyYW5jaC9tYXN0ZXIvZ3JhcGgvYmFkZ2Uuc3Zn
CisgICAgOnRhcmdldDogaHR0cHM6Ly9jb2RlY292LmlvL2doL3B5dGVzdC1kZXYvcGx1Z2d5Cisg
ICAgOmFsdDogQ29kZSBjb3ZlcmFnZSBTdGF0dXMKIAogLi4gbGlua3MKIC4uIF9weXRlc3Q6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9hcHB2ZXlvci55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9hcHB2ZXlv
ci55bWwKaW5kZXggYzM5MDNmOGJmY2M2NzFiYmU4NjBiMTkxM2ZjNWNjYTA2ZGFiODg1YS4uMWZj
MTJmZmYzOTcyZDg2NDhlZmY2OGZhOTVhOTMwMjEwZmIxY2M0OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvYXBwdmV5b3IueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2FwcHZleW9yLnltbApAQCAtMSwx
NSArMSwxNCBAQAogZW52aXJvbm1lbnQ6CiAgIG1hdHJpeDoKICAgIyBub3RlOiBwbGVhc2UgdXNl
ICJ0b3ggLS1saXN0ZW52cyIgdG8gcG9wdWxhdGUgdGhlIGJ1aWxkIG1hdHJpeCBiZWxvdwotICAt
IFRPWEVOVjogImNoZWNrIgorICAtIFRPWEVOVjogImxpbnRpbmciCiAgIC0gVE9YRU5WOiAiZG9j
cyIKLSAgLSBUT1hFTlY6ICJweTI3LXB5dGVzdHJlbGVhc2UiCi0gIC0gVE9YRU5WOiAicHkzNC1w
eXRlc3RyZWxlYXNlIgotICAtIFRPWEVOVjogInB5MzUtcHl0ZXN0cmVsZWFzZSIKLSAgLSBUT1hF
TlY6ICJweTM2LXB5dGVzdHJlbGVhc2UiCi0gIC0gVE9YRU5WOiAicHlweS1weXRlc3RyZWxlYXNl
IgotICAtIFRPWEVOVjogInB5MjctcHl0ZXN0bWFzdGVyIgotICAtIFRPWEVOVjogInB5MjctcHl0
ZXN0ZmVhdHVyZXMiCisgIC0gVE9YRU5WOiAicHkyNyIKKyAgLSBUT1hFTlY6ICJweTM0IgorICAt
IFRPWEVOVjogInB5MzUiCisgIC0gVE9YRU5WOiAicHkzNiIKKyAgLSBUT1hFTlY6ICJweTM3Igor
ICAtIFRPWEVOVjogInB5cHkiCiAgIC0gVE9YRU5WOiAicHkzNi1weXRlc3RtYXN0ZXIiCiAgIC0g
VE9YRU5WOiAicHkzNi1weXRlc3RmZWF0dXJlcyIKIApAQCAtMjYsOSArMjUsMTQgQEAgaW5zdGFs
bDoKICAgLSBlY2hvIFB5UHkgaW5zdGFsbGVkCiAgIC0gcHlweSAtLXZlcnNpb24KIAotICAtIEM6
XFB5dGhvbjM1XHB5dGhvbiAtbSBwaXAgaW5zdGFsbCB0b3gKKyAgLSBDOlxQeXRob24zNVxweXRo
b24gLW0gcGlwIGluc3RhbGwgLVUgcGlwCisgIC0gQzpcUHl0aG9uMzVccHl0aG9uIC1tIHBpcCBp
bnN0YWxsIC1VIC0tZm9yY2UtcmVpbnN0YWxsIHNldHVwdG9vbHMgdG94CiAKIGJ1aWxkOiBmYWxz
ZSAgIyBOb3QgYSBDIyBwcm9qZWN0LCBidWlsZCBzdHVmZiBhdCB0aGUgdGVzdCBzdGVwIGluc3Rl
YWQuCiAKIHRlc3Rfc2NyaXB0OgotICAtIEM6XFB5dGhvbjM1XHB5dGhvbiAtbSB0b3gKKyAgLSBD
OlxQeXRob24zNVxTY3JpcHRzXHRveAorCisjIFdlIGRvbid0IGRlcGxveSBhbnl0aGluZyBvbiB0
YWdzIHdpdGggQXBwVmV5b3IsIHdlIHVzZSBUcmF2aXMgaW5zdGVhZCwgc28gd2UKKyMgbWlnaHQg
YXMgd2VsbCBzYXZlIHJlc291cmNlcworc2tpcF90YWdzOiB0cnVlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9jaGFuZ2Vsb2cvUkVBRE1FLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2NoYW5nZWxvZy9SRUFE
TUUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ3ZTIxZmIzM2ZiMzQwMDgxMjQ2YTM4MzFmMDlmYTA2NTk3MDk2
YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9jaGFuZ2Vsb2cvUkVBRE1FLnJzdApA
QCAtMCwwICsxLDMyIEBACitUaGlzIGRpcmVjdG9yeSBjb250YWlucyAibmV3c2ZyYWdtZW50cyIg
d2hpY2ggYXJlIHNob3J0IGZpbGVzIHRoYXQgY29udGFpbiBhIHNtYWxsICoqUmVTVCoqLWZvcm1h
dHRlZAordGV4dCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIG5leHQgYGBDSEFOR0VMT0dgYC4K
KworVGhlIGBgQ0hBTkdFTE9HYGAgd2lsbCBiZSByZWFkIGJ5IHVzZXJzLCBzbyB0aGlzIGRlc2Ny
aXB0aW9uIHNob3VsZCBiZSBhaW1lZCB0byBweXRlc3QgdXNlcnMKK2luc3RlYWQgb2YgZGVzY3Jp
YmluZyBpbnRlcm5hbCBjaGFuZ2VzIHdoaWNoIGFyZSBvbmx5IHJlbGV2YW50IHRvIHRoZSBkZXZl
bG9wZXJzLgorCitNYWtlIHN1cmUgdG8gdXNlIGZ1bGwgc2VudGVuY2VzIHdpdGggY29ycmVjdCBj
YXNlIGFuZCBwdW5jdHVhdGlvbiwgZm9yIGV4YW1wbGU6OgorCisgICAgRml4IGlzc3VlIHdpdGgg
bm9uLWFzY2lpIG1lc3NhZ2VzIGZyb20gdGhlIGBgd2FybmluZ3NgYCBtb2R1bGUuCisKK0VhY2gg
ZmlsZSBzaG91bGQgYmUgbmFtZWQgbGlrZSBgYDxJU1NVRT4uPFRZUEU+LnJzdGBgLCB3aGVyZQor
YGA8SVNTVUU+YGAgaXMgYW4gaXNzdWUgbnVtYmVyLCBhbmQgYGA8VFlQRT5gYCBpcyBvbmUgb2Y6
CisKKyogYGBmZWF0dXJlYGA6IG5ldyB1c2VyIGZhY2luZyBmZWF0dXJlcywgbGlrZSBuZXcgY29t
bWFuZC1saW5lIG9wdGlvbnMgYW5kIG5ldyBiZWhhdmlvci4KKyogYGBidWdmaXhgYDogZml4ZXMg
YSByZXBvcnRlZCBidWcuCisqIGBgZG9jYGA6IGRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnQsIGxp
a2UgcmV3b3JkaW5nIGFuIGVudGlyZSBzZXNzaW9uIG9yIGFkZGluZyBtaXNzaW5nIGRvY3MuCisq
IGBgcmVtb3ZhbGBgOiBmZWF0dXJlIGRlcHJlY2F0aW9uIG9yIHJlbW92YWwuCisqIGBgdmVuZG9y
YGA6IGNoYW5nZXMgaW4gcGFja2FnZXMgdmVuZG9yZWQgaW4gcHl0ZXN0LgorKiBgYHRyaXZpYWxg
YDogZml4aW5nIGEgc21hbGwgdHlwbyBvciBpbnRlcm5hbCBjaGFuZ2UgdGhhdCBtaWdodCBiZSBu
b3Rld29ydGh5LgorCitTbyBmb3IgZXhhbXBsZTogYGAxMjMuZmVhdHVyZS5yc3RgYCwgYGA0NTYu
YnVnZml4LnJzdGBgLgorCitJZiB5b3VyIFBSIGZpeGVzIGFuIGlzc3VlLCB1c2UgdGhhdCBudW1i
ZXIgaGVyZS4gSWYgdGhlcmUgaXMgbm8gaXNzdWUsCit0aGVuIGFmdGVyIHlvdSBzdWJtaXQgdGhl
IFBSIGFuZCBnZXQgdGhlIFBSIG51bWJlciB5b3UgY2FuIGFkZCBhCitjaGFuZ2Vsb2cgdXNpbmcg
dGhhdCBpbnN0ZWFkLgorCitJZiB5b3UgYXJlIG5vdCBzdXJlIHdoYXQgaXNzdWUgdHlwZSB0byB1
c2UsIGRvbid0IGhlc2l0YXRlIHRvIGFzayBpbiB5b3VyIFBSLgorCitgYHRvd25jcmllcmBgIHBy
ZXNlcnZlcyBtdWx0aXBsZSBwYXJhZ3JhcGhzIGFuZCBmb3JtYXR0aW5nIChjb2RlIGJsb2Nrcywg
bGlzdHMsIGFuZCBzbyBvbiksIGJ1dCBmb3IgZW50cmllcworb3RoZXIgdGhhbiBgYGZlYXR1cmVz
YGAgaXQgaXMgdXN1YWxseSBiZXR0ZXIgdG8gc3RpY2sgdG8gYSBzaW5nbGUgcGFyYWdyYXBoIHRv
IGtlZXAgaXQgY29uY2lzZS4gWW91IGNhbiBpbnN0YWxsCitgYHRvd25jcmllcmBgIGFuZCB0aGVu
IHJ1biBgYHRvd25jcmllciAtLWRyYWZ0YGAKK2lmIHlvdSB3YW50IHRvIGdldCBhIHByZXZpZXcg
b2YgaG93IHlvdXIgY2hhbmdlIHdpbGwgbG9vayBpbiB0aGUgZmluYWwgcmVsZWFzZSBub3Rlcy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2NoYW5nZWxvZy9fdGVtcGxhdGUucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvY2hhbmdlbG9nL190ZW1wbGF0ZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc0ZTVjMWIyZGVkMGUz
NGY4ZDBlNTNjNTNkZWVhMTkxYzA2OGMyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L2NoYW5nZWxvZy9fdGVtcGxhdGUucnN0CkBAIC0wLDAgKzEsNDAgQEAKK3slIGZvciBzZWN0aW9u
IGluIHNlY3Rpb25zICV9Cit7JSBzZXQgdW5kZXJsaW5lID0gIi0iICV9Cit7JSBpZiBzZWN0aW9u
ICV9Cit7e3NlY3Rpb259fQore3sgdW5kZXJsaW5lICogc2VjdGlvbnxsZW5ndGggfX17JSBzZXQg
dW5kZXJsaW5lID0gIn4iICV9CisKK3slIGVuZGlmICV9Cit7JSBpZiBzZWN0aW9uc1tzZWN0aW9u
XSAlfQoreyUgZm9yIGNhdGVnb3J5LCB2YWwgaW4gZGVmaW5pdGlvbnMuaXRlbXMoKSBpZiBjYXRl
Z29yeSBpbiBzZWN0aW9uc1tzZWN0aW9uXSAlfQorCit7eyBkZWZpbml0aW9uc1tjYXRlZ29yeV1b
J25hbWUnXSB9fQore3sgdW5kZXJsaW5lICogZGVmaW5pdGlvbnNbY2F0ZWdvcnldWyduYW1lJ118
bGVuZ3RoIH19CisKK3slIGlmIGRlZmluaXRpb25zW2NhdGVnb3J5XVsnc2hvd2NvbnRlbnQnXSAl
fQoreyUgZm9yIHRleHQsIHZhbHVlcyBpbiBzZWN0aW9uc1tzZWN0aW9uXVtjYXRlZ29yeV18ZGlj
dHNvcnQoYnk9J3ZhbHVlJykgJX0KK3slIHNldCBpc3N1ZV9qb2luZXIgPSBqb2luZXIoJywgJykg
JX0KKy0geyUgZm9yIHZhbHVlIGluIHZhbHVlc3xzb3J0ICV9e3sgaXNzdWVfam9pbmVyKCkgfX1g
e3sgdmFsdWUgfX0gPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9pc3N1ZXMv
e3sgdmFsdWVbMTpdIH19PmBfeyUgZW5kZm9yICV9OiB7eyB0ZXh0IH19CisKKworeyUgZW5kZm9y
ICV9Cit7JSBlbHNlICV9CistIHt7IHNlY3Rpb25zW3NlY3Rpb25dW2NhdGVnb3J5XVsnJ118c29y
dHxqb2luKCcsICcpIH19CisKKworeyUgZW5kaWYgJX0KK3slIGlmIHNlY3Rpb25zW3NlY3Rpb25d
W2NhdGVnb3J5XXxsZW5ndGggPT0gMCAlfQorCitObyBzaWduaWZpY2FudCBjaGFuZ2VzLgorCisK
K3slIGVsc2UgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVsc2UgJX0KKworTm8g
c2lnbmlmaWNhbnQgY2hhbmdlcy4KKworCit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9jaGFuZ2Vsb2cvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9jaGFuZ2Vsb2cvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZjNmQ1MmJlMDQxNTU0ZjZj
NzdkYmMyOGY2MGQ1ZjY0NjQ5MDVhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2No
YW5nZWxvZy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9jaGFuZ2Vsb2cvUkVBRE1FLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2NoYW5nZWxvZy9fdGVtcGxh
dGUucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2FwaV9yZWZlcmVuY2UucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wbHVnZ3kvZG9jcy9hcGlfcmVmZXJlbmNlLnJzdAppbmRleCBhYTE1MTM1YWQzZGYwNGUy
YjU5NDgzNjc4ZGM4NDY0YmJhYzY4YmUyLi4zOTNkMGFlYmVhMDYyOTAxNTcxNzI5ZmIzZTc4ZmEz
NmZiNTQ5NDQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2FwaV9yZWZlcmVuY2UucnN0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvYXBpX3JlZmVyZW5jZS5yc3QKQEAgLTEsMyArMSw1IEBA
Cis6b3JwaGFuOgorCiBBcGkgUmVmZXJlbmNlCiA9PT09PT09PT09PT09CiAKQEAgLTYsOSArOCwx
MiBAQCBBcGkgUmVmZXJlbmNlCiAgICAgOnVuZG9jLW1lbWJlcnM6CiAgICAgOnNob3ctaW5oZXJp
dGFuY2U6CiAKKy4uIGF1dG9jbGFzczo6IHBsdWdneS5jYWxsZXJzLl9SZXN1bHQKKy4uIGF1dG9t
ZXRob2Q6OiBwbHVnZ3kuY2FsbGVycy5fUmVzdWx0LmdldF9yZXN1bHQKKy4uIGF1dG9tZXRob2Q6
OiBwbHVnZ3kuY2FsbGVycy5fUmVzdWx0LmZvcmNlX3Jlc3VsdAogCi0uLiBhdXRvbWV0aG9kOjog
cGx1Z2d5Ll9SZXN1bHQuZ2V0X3Jlc3VsdAotCi0uLiBhdXRvbWV0aG9kOjogcGx1Z2d5Ll9SZXN1
bHQuZm9yY2VfcmVzdWx0CisuLiBhdXRvY2xhc3M6OiBwbHVnZ3kuaG9va3MuX0hvb2tDYWxsZXIK
Ky4uIGF1dG9tZXRob2Q6OiBwbHVnZ3kuaG9va3MuX0hvb2tDYWxsZXIuY2FsbF9leHRyYQorLi4g
YXV0b21ldGhvZDo6IHBsdWdneS5ob29rcy5fSG9va0NhbGxlci5jYWxsX2hpc3RvcmljCiAKLS4u
IGF1dG9tZXRob2Q6OiBwbHVnZ3kuX0hvb2tDYWxsZXIuY2FsbF9leHRyYQorLi4gYXV0b2NsYXNz
OjogcGx1Z2d5Lmhvb2tzLl9Ib29rUmVsYXkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3Mv
Y2hhbmdlbG9nLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvY2hhbmdlbG9nLnJzdApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NjViMDUyMWQwYzJjZGJmZTQ5M2QxOTc2NWIwNGQ1YzExOWZhN2ViCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9jaGFuZ2Vsb2cucnN0CkBAIC0wLDAgKzEgQEAKKy4uIGlu
Y2x1ZGU6OiAuLi9DSEFOR0VMT0cucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2Nv
bmYucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2NvbmYucHkKaW5kZXggMDQwNjUyMThmZGEwMzFjNjNi
NGQ5NWZlMWViYmZmZjhiOGUzODlmNy4uNDI4Mjk4NTBkODk0MTlkNzQ5YjkwOTU5MTgxNmJkMjc3
OGMzMjcwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9jb25mLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L2RvY3MvY29uZi5weQpAQCAtMSw1OSArMSw2NSBAQAogIyAtKi0gY29kaW5nOiB1dGYt
OCAtKi0KLWltcG9ydCBwa2dfcmVzb3VyY2VzCitpbXBvcnQgc3lzCisKK2lmIHN5cy52ZXJzaW9u
X2luZm8gPj0gKDMsIDgpOgorICAgIGZyb20gaW1wb3J0bGliIGltcG9ydCBtZXRhZGF0YQorZWxz
ZToKKyAgICBpbXBvcnQgaW1wb3J0bGliX21ldGFkYXRhIGFzIG1ldGFkYXRhCiAKIAogZXh0ZW5z
aW9ucyA9IFsKLSAgICAnc3BoaW54LmV4dC5hdXRvZG9jJywKLSAgICAnc3BoaW54LmV4dC5kb2N0
ZXN0JywKLSAgICAnc3BoaW54LmV4dC5pbnRlcnNwaGlueCcsCi0gICAgJ3NwaGlueC5leHQuY292
ZXJhZ2UnLAotICAgICdzcGhpbnguZXh0LnZpZXdjb2RlJywKKyAgICAic3BoaW54LmV4dC5hdXRv
ZG9jIiwKKyAgICAic3BoaW54LmV4dC5kb2N0ZXN0IiwKKyAgICAic3BoaW54LmV4dC5pbnRlcnNw
aGlueCIsCisgICAgInNwaGlueC5leHQuY292ZXJhZ2UiLAorICAgICJzcGhpbnguZXh0LnZpZXdj
b2RlIiwKIF0KIAogIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiB0ZW1wbGF0ZXMgaGVyZSwg
cmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCi10ZW1wbGF0ZXNfcGF0aCA9IFsnX3RlbXBsYXRl
cyddCit0ZW1wbGF0ZXNfcGF0aCA9IFsiX3RlbXBsYXRlcyJdCiAKLXNvdXJjZV9zdWZmaXggPSAn
LnJzdCcKK3NvdXJjZV9zdWZmaXggPSAiLnJzdCIKIAogIyBUaGUgbWFzdGVyIHRvY3RyZWUgZG9j
dW1lbnQuCi1tYXN0ZXJfZG9jID0gJ2luZGV4JworbWFzdGVyX2RvYyA9ICJpbmRleCIKIAogIyBH
ZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9qZWN0LgogCi1kaXN0ID0gcGtnX3Jlc291
cmNlcy5nZXRfZGlzdHJpYnV0aW9uKCdwbHVnZ3knKQotcHJvamVjdCA9IGRpc3QucHJvamVjdF9u
YW1lCi1jb3B5cmlnaHQgPSB1JzIwMTYsIEhvbGdlciBLcmVrZWwnCi1hdXRob3IgPSAnSG9sZ2Vy
IEtyZWtlbCcKK3Byb2plY3QgPSAicGx1Z2d5IgorY29weXJpZ2h0ID0gdSIyMDE2LCBIb2xnZXIg
S3Jla2VsIgorYXV0aG9yID0gIkhvbGdlciBLcmVrZWwiCiAKLXJlbGVhc2UgPSBkaXN0LnZlcnNp
b24KK3JlbGVhc2UgPSBtZXRhZGF0YS52ZXJzaW9uKHByb2plY3QpCiAjIFRoZSBzaG9ydCBYLlkg
dmVyc2lvbi4KLXZlcnNpb24gPSB1Jy4nLmpvaW4oZGlzdC52ZXJzaW9uLnNwbGl0KCcuJylbOjJd
KQordmVyc2lvbiA9IHUiLiIuam9pbihyZWxlYXNlLnNwbGl0KCIuIilbOjJdKQogCiAKIGxhbmd1
YWdlID0gTm9uZQogCi1weWdtZW50c19zdHlsZSA9ICdzcGhpbngnCi1odG1sX2xvZ28gPSAnX3N0
YXRpYy9pbWcvcGx1Zy5wbmcnCi1odG1sX3RoZW1lID0gJ2FsYWJhc3RlcicKK3B5Z21lbnRzX3N0
eWxlID0gInNwaGlueCIKKyMgaHRtbF9sb2dvID0gIl9zdGF0aWMvaW1nL3BsdWcucG5nIgoraHRt
bF90aGVtZSA9ICJhbGFiYXN0ZXIiCiBodG1sX3RoZW1lX29wdGlvbnMgPSB7Ci0gICAgIyAnbG9n
byc6ICdpbWcvcGx1Zy5wbmcnLAotICAgICMgJ2xvZ29fbmFtZSc6ICd0cnVlJywKLSAgICAnZGVz
Y3JpcHRpb24nOiAnVGhlIGBweXRlc3RgIHBsdWdpbiBzeXN0ZW0nLAotICAgICdnaXRodWJfdXNl
cic6ICdweXRlc3QtZGV2JywKLSAgICAnZ2l0aHViX3JlcG8nOiAncGx1Z2d5JywKLSAgICAnZ2l0
aHViX2J1dHRvbic6ICd0cnVlJywKLSAgICAnZ2l0aHViX2Jhbm5lcic6ICd0cnVlJywKLSAgICAn
cGFnZV93aWR0aCc6ICcxMDgwcHgnLAotICAgICdmaXhlZF9zaWRlYmFyJzogJ2ZhbHNlJywKKyAg
ICAibG9nbyI6ICJpbWcvcGx1Zy5wbmciLAorICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgcHl0ZXN0
IHBsdWdpbiBzeXN0ZW0iLAorICAgICJnaXRodWJfdXNlciI6ICJweXRlc3QtZGV2IiwKKyAgICAi
Z2l0aHViX3JlcG8iOiAicGx1Z2d5IiwKKyAgICAiZ2l0aHViX2J1dHRvbiI6ICJ0cnVlIiwKKyAg
ICAiZ2l0aHViX2Jhbm5lciI6ICJ0cnVlIiwKKyAgICAiZ2l0aHViX3R5cGUiOiAic3RhciIsCisg
ICAgInRyYXZpc19idXR0b24iOiAidHJ1ZSIsCisgICAgImJhZGdlX2JyYW5jaCI6ICJtYXN0ZXIi
LAorICAgICJwYWdlX3dpZHRoIjogIjEwODBweCIsCisgICAgImZpeGVkX3NpZGViYXIiOiAiZmFs
c2UiLAorfQoraHRtbF9zaWRlYmFycyA9IHsKKyAgICAiKioiOiBbImFib3V0Lmh0bWwiLCAibG9j
YWx0b2MuaHRtbCIsICJyZWxhdGlvbnMuaHRtbCIsICJzZWFyY2hib3guaHRtbCJdCiB9Ci1odG1s
X3N0YXRpY19wYXRoID0gWydfc3RhdGljJ10KK2h0bWxfc3RhdGljX3BhdGggPSBbIl9zdGF0aWMi
XQogCiAjIE9uZSBlbnRyeSBwZXIgbWFudWFsIHBhZ2UuIExpc3Qgb2YgdHVwbGVzCiAjIChzb3Vy
Y2Ugc3RhcnQgZmlsZSwgbmFtZSwgZGVzY3JpcHRpb24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0aW9u
KS4KLW1hbl9wYWdlcyA9IFsKLSAgICAobWFzdGVyX2RvYywgJ3BsdWdneScsIHUncGx1Z2d5IERv
Y3VtZW50YXRpb24nLAotICAgICBbYXV0aG9yXSwgMSkKLV0KK21hbl9wYWdlcyA9IFsobWFzdGVy
X2RvYywgInBsdWdneSIsIHUicGx1Z2d5IERvY3VtZW50YXRpb24iLCBbYXV0aG9yXSwgMSldCiAK
IAogIyAtLSBPcHRpb25zIGZvciBUZXhpbmZvIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC02MiwxMCArNjgsMjIgQEAgbWFuX3BhZ2VzID0gWwog
IyAoc291cmNlIHN0YXJ0IGZpbGUsIHRhcmdldCBuYW1lLCB0aXRsZSwgYXV0aG9yLAogIyAgZGly
IG1lbnUgZW50cnksIGRlc2NyaXB0aW9uLCBjYXRlZ29yeSkKIHRleGluZm9fZG9jdW1lbnRzID0g
WwotICAgIChtYXN0ZXJfZG9jLCAncGx1Z2d5JywgdSdwbHVnZ3kgRG9jdW1lbnRhdGlvbicsCi0g
ICAgIGF1dGhvciwgJ3BsdWdneScsICdPbmUgbGluZSBkZXNjcmlwdGlvbiBvZiBwcm9qZWN0Lics
Ci0gICAgICdNaXNjZWxsYW5lb3VzJyksCisgICAgKAorICAgICAgICBtYXN0ZXJfZG9jLAorICAg
ICAgICAicGx1Z2d5IiwKKyAgICAgICAgdSJwbHVnZ3kgRG9jdW1lbnRhdGlvbiIsCisgICAgICAg
IGF1dGhvciwKKyAgICAgICAgInBsdWdneSIsCisgICAgICAgICJPbmUgbGluZSBkZXNjcmlwdGlv
biBvZiBwcm9qZWN0LiIsCisgICAgICAgICJNaXNjZWxsYW5lb3VzIiwKKyAgICApCiBdCiAKICMg
RXhhbXBsZSBjb25maWd1cmF0aW9uIGZvciBpbnRlcnNwaGlueDogcmVmZXIgdG8gdGhlIFB5dGhv
biBzdGFuZGFyZCBsaWJyYXJ5LgotaW50ZXJzcGhpbnhfbWFwcGluZyA9IHsnaHR0cHM6Ly9kb2Nz
LnB5dGhvbi5vcmcvJzogTm9uZX0KK2ludGVyc3BoaW54X21hcHBpbmcgPSB7CisgICAgInB5dGhv
biI6ICgiaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMyIsIE5vbmUpLAorICAgICJweXRlc3QiOiAo
Imh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdCIsIE5vbmUpLAorICAgICJzZXR1cHRv
b2xzIjogKCJodHRwczovL3NldHVwdG9vbHMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0IiwgTm9u
ZSksCisgICAgInRveCI6ICgiaHR0cHM6Ly90b3gucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0Iiwg
Tm9uZSksCisgICAgImRldnBpIjogKCJodHRwczovL2RldnBpLm5ldC9kb2NzL2RldnBpL2RldnBp
L3N0YWJsZS8rZG9jLyIsIE5vbmUpLAorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9l
eGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS9lZ2dzYW1wbGVfc3BhbS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2Rv
Y3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0vZWdnc2FtcGxlX3NwYW0ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGQ3MWIxMzhkMDBhYzcyNDEyNWI1NzE3Y2VmZjJiOTUyYmE3YWZjNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0vZWdnc2FtcGxlX3Nw
YW0ucHkKQEAgLTAsMCArMSwyMiBAQAoraW1wb3J0IGVnZ3NhbXBsZQorCisKK0BlZ2dzYW1wbGUu
aG9va2ltcGwKK2RlZiBlZ2dzYW1wbGVfYWRkX2luZ3JlZGllbnRzKGluZ3JlZGllbnRzKToKKyAg
ICAiIiJIZXJlIHRoZSBjYWxsZXIgZXhwZWN0cyB1cyB0byByZXR1cm4gYSBsaXN0LiIiIgorICAg
IGlmICJlZ2ciIGluIGluZ3JlZGllbnRzOgorICAgICAgICBzcGFtID0gWyJsb3ZlbHkgc3BhbSIs
ICJ3b25kZXJvdXMgc3BhbSJdCisgICAgZWxzZToKKyAgICAgICAgc3BhbSA9IFsic3BsZW5kaWZl
cm91cyBzcGFtIiwgIm1hZ25pZmljZW50IHNwYW0iXQorICAgIHJldHVybiBzcGFtCisKKworQGVn
Z3NhbXBsZS5ob29raW1wbAorZGVmIGVnZ3NhbXBsZV9wcmVwX2NvbmRpbWVudHMoY29uZGltZW50
cyk6CisgICAgIiIiSGVyZSB0aGUgY2FsbGVyIHBhc3NlcyBhIG11dGFibGUgb2JqZWN0LCBzbyB3
ZSBtZXNzIHdpdGggaXQgZGlyZWN0bHkuIiIiCisgICAgdHJ5OgorICAgICAgICBkZWwgY29uZGlt
ZW50c1sic3RlYWsgc2F1Y2UiXQorICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgcGFzcwor
ICAgIGNvbmRpbWVudHNbInNwYW0gc2F1Y2UiXSA9IDQyCisgICAgcmV0dXJuIGYiTm93IHRoaXMg
aXMgd2hhdCBJIGNhbGwgYSBjb25kaW1lbnRzIHRyYXkhIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS9zZXR1cC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2Rv
Y3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0vc2V0dXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgxYThlYjQw
Mzg3OTJlMjIwMzhiMjY5NmVmN2Q3OTg2NjI4YzIwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0vc2V0dXAucHkKQEAgLTAsMCArMSw4
IEBACitmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwCisKK3NldHVwKAorICAgIG5hbWU9ImVn
Z3NhbXBsZS1zcGFtIiwKKyAgICBpbnN0YWxsX3JlcXVpcmVzPSJlZ2dzYW1wbGUiLAorICAgIGVu
dHJ5X3BvaW50cz17ImVnZ3NhbXBsZSI6IFsic3BhbSA9IGVnZ3NhbXBsZV9zcGFtIl19LAorICAg
IHB5X21vZHVsZXM9WyJlZ2dzYW1wbGVfc3BhbSJdLAorKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0vdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGU0M2UzM2U1YmFkMTUzNTViZDBlZTE0NmE0NThlNjM1N2U0MDM5YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0vdzNjLWltcG9y
dC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxl
cy9lZ2dzYW1wbGUtc3BhbS9lZ2dzYW1wbGVfc3BhbS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhh
bXBsZXMvZWdnc2FtcGxlLXNwYW0vc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2Rv
Y3MvZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS9fX2luaXRfXy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS9fX2luaXRfXy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZGM0YjM2ZGVjM2FjNWYzYjQ2NjNhZmMxOGQ1YTUzOWMwZTQyNzJlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxlL19faW5p
dF9fLnB5CkBAIC0wLDAgKzEsNCBAQAoraW1wb3J0IHBsdWdneQorCitob29raW1wbCA9IHBsdWdn
eS5Ib29raW1wbE1hcmtlcigiZWdnc2FtcGxlIikKKyIiIk1hcmtlciB0byBiZSBpbXBvcnRlZCBh
bmQgdXNlZCBpbiBwbHVnaW5zIChhbmQgZm9yIG93biBpbXBsZW1lbnRhdGlvbnMpIiIiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvaG9v
a3NwZWNzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxl
L2hvb2tzcGVjcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODg2NmIyNDkxMjg3YmFmZWYyNDg3MTFjMWQwZGE1
MjYyZDcyMzUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9l
Z2dzYW1wbGUvZWdnc2FtcGxlL2hvb2tzcGVjcy5weQpAQCAtMCwwICsxLDIxIEBACitpbXBvcnQg
cGx1Z2d5CisKK2hvb2tzcGVjID0gcGx1Z2d5Lkhvb2tzcGVjTWFya2VyKCJlZ2dzYW1wbGUiKQor
CisKK0Bob29rc3BlYworZGVmIGVnZ3NhbXBsZV9hZGRfaW5ncmVkaWVudHMoaW5ncmVkaWVudHM6
IHR1cGxlKToKKyAgICAiIiJIYXZlIGEgbG9vayBhdCB0aGUgaW5ncmVkaWVudHMgYW5kIG9mZmVy
IHlvdXIgb3duLgorCisgICAgOnBhcmFtIGluZ3JlZGllbnRzOiB0aGUgaW5ncmVkaWVudHMsIGRv
bid0IHRvdWNoIHRoZW0hCisgICAgOnJldHVybjogYSBsaXN0IG9mIGluZ3JlZGllbnRzCisgICAg
IiIiCisKKworQGhvb2tzcGVjCitkZWYgZWdnc2FtcGxlX3ByZXBfY29uZGltZW50cyhjb25kaW1l
bnRzOiBkaWN0KToKKyAgICAiIiJSZW9yZ2FuaXplIHRoZSBjb25kaW1lbnRzIHRyYXkgdG8geW91
ciBoZWFydCdzIGNvbnRlbnQuCisKKyAgICA6cGFyYW0gY29uZGltZW50czogc29tZSBzYXVjZXMg
YW5kIHN0dWZmCisgICAgOnJldHVybjogYSB3aXR0eSBjb21tZW50IGFib3V0IHlvdXIgYWN0aXZp
dHkKKyAgICAiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2Ft
cGxlL2VnZ3NhbXBsZS9ob3N0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1w
bGUvZWdnc2FtcGxlL2hvc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMxZDMzYjQ1Mzk5MjJiMGFjODYyYmFk
MDY3NmM5MTFhMzNlODg5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhh
bXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS9ob3N0LnB5CkBAIC0wLDAgKzEsNTcgQEAKK2ltcG9y
dCBpdGVydG9vbHMKK2ltcG9ydCByYW5kb20KKworaW1wb3J0IHBsdWdneQorCitmcm9tIGVnZ3Nh
bXBsZSBpbXBvcnQgaG9va3NwZWNzLCBsaWIKKworY29uZGltZW50c190cmF5ID0geyJwaWNrbGVk
IHdhbG51dHMiOiAxMywgInN0ZWFrIHNhdWNlIjogNCwgIm11c2h5IHBlYXMiOiAyfQorCisKK2Rl
ZiBtYWluKCk6CisgICAgcG0gPSBnZXRfcGx1Z2luX21hbmFnZXIoKQorICAgIGNvb2sgPSBFZ2dz
ZWxsZW50Q29vayhwbS5ob29rKQorICAgIGNvb2suYWRkX2luZ3JlZGllbnRzKCkKKyAgICBjb29r
LnByZXBhcmVfdGhlX2Zvb2QoKQorICAgIGNvb2suc2VydmVfdGhlX2Zvb2QoKQorCisKK2RlZiBn
ZXRfcGx1Z2luX21hbmFnZXIoKToKKyAgICBwbSA9IHBsdWdneS5QbHVnaW5NYW5hZ2VyKCJlZ2dz
YW1wbGUiKQorICAgIHBtLmFkZF9ob29rc3BlY3MoaG9va3NwZWNzKQorICAgIHBtLmxvYWRfc2V0
dXB0b29sc19lbnRyeXBvaW50cygiZWdnc2FtcGxlIikKKyAgICBwbS5yZWdpc3RlcihsaWIpCisg
ICAgcmV0dXJuIHBtCisKKworY2xhc3MgRWdnc2VsbGVudENvb2s6CisgICAgRkFWT1JJVEVfSU5H
UkVESUVOVFMgPSAoImVnZyIsICJlZ2ciLCAiZWdnIikKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBob29rKToKKyAgICAgICAgc2VsZi5ob29rID0gaG9vaworICAgICAgICBzZWxmLmluZ3JlZGll
bnRzID0gTm9uZQorCisgICAgZGVmIGFkZF9pbmdyZWRpZW50cyhzZWxmKToKKyAgICAgICAgcmVz
dWx0cyA9IHNlbGYuaG9vay5lZ2dzYW1wbGVfYWRkX2luZ3JlZGllbnRzKAorICAgICAgICAgICAg
aW5ncmVkaWVudHM9c2VsZi5GQVZPUklURV9JTkdSRURJRU5UUworICAgICAgICApCisgICAgICAg
IG15X2luZ3JlZGllbnRzID0gbGlzdChzZWxmLkZBVk9SSVRFX0lOR1JFRElFTlRTKQorICAgICAg
ICAjIEVhY2ggaG9vayByZXR1cm5zIGEgbGlzdCAtIHNvIHdlIGNoYWluIHRoaXMgbGlzdCBvZiBs
aXN0cworICAgICAgICBvdGhlcl9pbmdyZWRpZW50cyA9IGxpc3QoaXRlcnRvb2xzLmNoYWluKCpy
ZXN1bHRzKSkKKyAgICAgICAgc2VsZi5pbmdyZWRpZW50cyA9IG15X2luZ3JlZGllbnRzICsgb3Ro
ZXJfaW5ncmVkaWVudHMKKworICAgIGRlZiBwcmVwYXJlX3RoZV9mb29kKHNlbGYpOgorICAgICAg
ICByYW5kb20uc2h1ZmZsZShzZWxmLmluZ3JlZGllbnRzKQorCisgICAgZGVmIHNlcnZlX3RoZV9m
b29kKHNlbGYpOgorICAgICAgICBjb25kaW1lbnRfY29tbWVudHMgPSBzZWxmLmhvb2suZWdnc2Ft
cGxlX3ByZXBfY29uZGltZW50cygKKyAgICAgICAgICAgIGNvbmRpbWVudHM9Y29uZGltZW50c190
cmF5CisgICAgICAgICkKKyAgICAgICAgcHJpbnQoZiJZb3VyIGZvb2QuIEVuam95IHNvbWUgeycs
ICcuam9pbihzZWxmLmluZ3JlZGllbnRzKX0iKQorICAgICAgICBwcmludChmIlNvbWUgY29uZGlt
ZW50cz8gV2UgaGF2ZSB7JywgJy5qb2luKGNvbmRpbWVudHNfdHJheS5rZXlzKCkpfSIpCisgICAg
ICAgIGlmIGFueShjb25kaW1lbnRfY29tbWVudHMpOgorICAgICAgICAgICAgcHJpbnQoIlxuIi5q
b2luKGNvbmRpbWVudF9jb21tZW50cykpCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoK
KyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2Ft
cGxlL2VnZ3NhbXBsZS9saWIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBs
ZS9lZ2dzYW1wbGUvbGliLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyY2VhNzQ1OGVhNDkxY2M3Yjg2MDEyMmU3
ZTM5MGMxZmNmZTIwMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1w
bGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvbGliLnB5CkBAIC0wLDAgKzEsMTQgQEAKK2ltcG9ydCBl
Z2dzYW1wbGUKKworCitAZWdnc2FtcGxlLmhvb2tpbXBsCitkZWYgZWdnc2FtcGxlX2FkZF9pbmdy
ZWRpZW50cygpOgorICAgIHNwaWNlcyA9IFsic2FsdCIsICJwZXBwZXIiXQorICAgIHlvdV9jYW5f
bmV2ZXJfaGF2ZV9lbm91Z2hfZWdncyA9IFsiZWdnIiwgImVnZyJdCisgICAgaW5ncmVkaWVudHMg
PSBzcGljZXMgKyB5b3VfY2FuX25ldmVyX2hhdmVfZW5vdWdoX2VnZ3MKKyAgICByZXR1cm4gaW5n
cmVkaWVudHMKKworCitAZWdnc2FtcGxlLmhvb2tpbXBsCitkZWYgZWdnc2FtcGxlX3ByZXBfY29u
ZGltZW50cyhjb25kaW1lbnRzKToKKyAgICBjb25kaW1lbnRzWyJtaW50IHNhdWNlIl0gPSAxCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dz
YW1wbGUvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ViYWM0YWRlYWNlZTQ3ZDk3NWYyNWFm
ZGI0MzE1ZjBmYzlmMGNlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhh
bXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIwIEBA
CitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0Rv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBv
ZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUv
X19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1w
bGUvaG9va3NwZWNzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdn
c2FtcGxlL2hvc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dz
YW1wbGUvbGliLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3Nh
bXBsZS9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL3NldHVw
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhiM2ZhY2IzYjY3MThkZGRhMmQ4ZjFkN2UyYzNlZmVmYjg2MjhiMTMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9z
ZXR1cC5weQpAQCAtMCwwICsxLDggQEAKK2Zyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAsIGZp
bmRfcGFja2FnZXMKKworc2V0dXAoCisgICAgbmFtZT0iZWdnc2FtcGxlIiwKKyAgICBpbnN0YWxs
X3JlcXVpcmVzPSJwbHVnZ3k+PTAuMyw8MS4wIiwKKyAgICBlbnRyeV9wb2ludHM9eyJjb25zb2xl
X3NjcmlwdHMiOiBbImVnZ3NhbXBsZT1lZ2dzYW1wbGUuaG9zdDptYWluIl19LAorICAgIHBhY2th
Z2VzPWZpbmRfcGFja2FnZXMoKSwKKykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhh
bXBsZXMvZWdnc2FtcGxlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxl
cy9lZ2dzYW1wbGUvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBjMjU1NDAwZDNkM2QwN2Q1
YmYyMTgyOWU5NjhhNTliYmVlMDgxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2Rv
Y3MvZXhhbXBsZXMvZWdnc2FtcGxlL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1Ro
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJ
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL3NldHVwLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2ZpcnN0ZXhhbXBsZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L2RvY3MvZXhhbXBsZXMvZmlyc3RleGFtcGxlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzY2VjN2NkMjE0NDc0M2NhMWFiZmJiMmE3Y2I4MjQ4YTQ0MWQyMjkxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2Rv
Y3MvZXhhbXBsZXMvZmlyc3RleGFtcGxlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBA
QAotaW1wb3J0IHBsdWdneQotCi1ob29rc3BlYyA9IHBsdWdneS5Ib29rc3BlY01hcmtlcigibXlw
cm9qZWN0IikKLWhvb2tpbXBsID0gcGx1Z2d5Lkhvb2tpbXBsTWFya2VyKCJteXByb2plY3QiKQot
Ci0KLWNsYXNzIE15U3BlYyhvYmplY3QpOgotICAgICIiIkEgaG9vayBzcGVjaWZpY2F0aW9uIG5h
bWVzcGFjZS4KLSAgICAiIiIKLSAgICBAaG9va3NwZWMKLSAgICBkZWYgbXlob29rKHNlbGYsIGFy
ZzEsIGFyZzIpOgotICAgICAgICAiIiJNeSBzcGVjaWFsIGxpdHRsZSBob29rIHRoYXQgeW91IGNh
biBjdXN0b21pemUuCi0gICAgICAgICIiIgotCi0KLWNsYXNzIFBsdWdpbl8xKG9iamVjdCk6Ci0g
ICAgIiIiQSBob29rIGltcGxlbWVudGF0aW9uIG5hbWVzcGFjZS4KLSAgICAiIiIKLSAgICBAaG9v
a2ltcGwKLSAgICBkZWYgbXlob29rKHNlbGYsIGFyZzEsIGFyZzIpOgotICAgICAgICBwcmludCgi
aW5zaWRlIFBsdWdpbl8xLm15aG9vaygpIikKLSAgICAgICAgcmV0dXJuIGFyZzEgKyBhcmcyCi0K
LQotY2xhc3MgUGx1Z2luXzIob2JqZWN0KToKLSAgICAiIiJBIDJuZCBob29rIGltcGxlbWVudGF0
aW9uIG5hbWVzcGFjZS4KLSAgICAiIiIKLSAgICBAaG9va2ltcGwKLSAgICBkZWYgbXlob29rKHNl
bGYsIGFyZzEsIGFyZzIpOgotICAgICAgICBwcmludCgiaW5zaWRlIFBsdWdpbl8yLm15aG9vaygp
IikKLSAgICAgICAgcmV0dXJuIGFyZzEgLSBhcmcyCi0KLQotIyBjcmVhdGUgYSBtYW5hZ2VyIGFu
ZCBhZGQgdGhlIHNwZWMKLXBtID0gcGx1Z2d5LlBsdWdpbk1hbmFnZXIoIm15cHJvamVjdCIpCi1w
bS5hZGRfaG9va3NwZWNzKE15U3BlYykKLQotIyByZWdpc3RlciBwbHVnaW5zCi1wbS5yZWdpc3Rl
cihQbHVnaW5fMSgpKQotcG0ucmVnaXN0ZXIoUGx1Z2luXzIoKSkKLQotIyBjYWxsIG91ciBgbXlo
b29rYCBob29rCi1yZXN1bHRzID0gcG0uaG9vay5teWhvb2soYXJnMT0xLCBhcmcyPTIpCi1wcmlu
dChyZXN1bHRzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy90b3ktZXhh
bXBsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvdG95LWV4YW1wbGUucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGZkYzdlOTIyOGRiMjg2OTgwNDRhNjk4NzA3MTNmNmVlYmVmMjYyNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvdG95LWV4YW1wbGUucHkKQEAgLTAs
MCArMSw0MSBAQAoraW1wb3J0IHBsdWdneQorCitob29rc3BlYyA9IHBsdWdneS5Ib29rc3BlY01h
cmtlcigibXlwcm9qZWN0IikKK2hvb2tpbXBsID0gcGx1Z2d5Lkhvb2tpbXBsTWFya2VyKCJteXBy
b2plY3QiKQorCisKK2NsYXNzIE15U3BlYyhvYmplY3QpOgorICAgICIiIkEgaG9vayBzcGVjaWZp
Y2F0aW9uIG5hbWVzcGFjZS4iIiIKKworICAgIEBob29rc3BlYworICAgIGRlZiBteWhvb2soc2Vs
ZiwgYXJnMSwgYXJnMik6CisgICAgICAgICIiIk15IHNwZWNpYWwgbGl0dGxlIGhvb2sgdGhhdCB5
b3UgY2FuIGN1c3RvbWl6ZS4iIiIKKworCitjbGFzcyBQbHVnaW5fMShvYmplY3QpOgorICAgICIi
IkEgaG9vayBpbXBsZW1lbnRhdGlvbiBuYW1lc3BhY2UuIiIiCisKKyAgICBAaG9va2ltcGwKKyAg
ICBkZWYgbXlob29rKHNlbGYsIGFyZzEsIGFyZzIpOgorICAgICAgICBwcmludCgiaW5zaWRlIFBs
dWdpbl8xLm15aG9vaygpIikKKyAgICAgICAgcmV0dXJuIGFyZzEgKyBhcmcyCisKKworY2xhc3Mg
UGx1Z2luXzIob2JqZWN0KToKKyAgICAiIiJBIDJuZCBob29rIGltcGxlbWVudGF0aW9uIG5hbWVz
cGFjZS4iIiIKKworICAgIEBob29raW1wbAorICAgIGRlZiBteWhvb2soc2VsZiwgYXJnMSwgYXJn
Mik6CisgICAgICAgIHByaW50KCJpbnNpZGUgUGx1Z2luXzIubXlob29rKCkiKQorICAgICAgICBy
ZXR1cm4gYXJnMSAtIGFyZzIKKworCisjIGNyZWF0ZSBhIG1hbmFnZXIgYW5kIGFkZCB0aGUgc3Bl
YworcG0gPSBwbHVnZ3kuUGx1Z2luTWFuYWdlcigibXlwcm9qZWN0IikKK3BtLmFkZF9ob29rc3Bl
Y3MoTXlTcGVjKQorIyByZWdpc3RlciBwbHVnaW5zCitwbS5yZWdpc3RlcihQbHVnaW5fMSgpKQor
cG0ucmVnaXN0ZXIoUGx1Z2luXzIoKSkKKyMgY2FsbCBvdXIgYG15aG9va2AgaG9vaworcmVzdWx0
cyA9IHBtLmhvb2subXlob29rKGFyZzE9MSwgYXJnMj0yKQorcHJpbnQocmVzdWx0cykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9kb2NzL2V4YW1wbGVzL3czYy1pbXBvcnQubG9nCmluZGV4IDA2OGI2YTE4ZTE2NmM3ZDRl
ZmI1YjJiYjYyMTE5MTZmNWUwMDgxOWQuLmMzN2ExODBiNmJkYTJiZDBkMWJhYjViY2IwMDhiOTBi
NzZmODEwYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvdzNjLWltcG9y
dC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy93M2MtaW1wb3J0LmxvZwpAQCAt
MTQsNCArMTQsNCBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
IE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2Nz
L2V4YW1wbGVzL2ZpcnN0ZXhhbXBsZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvdG95
LWV4YW1wbGUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvaW5kZXgucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvZG9jcy9pbmRleC5yc3QKaW5kZXggZGI2NWExMDIzZmRkNTA1MGRiZjUzNTI5YzE1
MzJjMjE0Mjg5MDg4OC4uNzI1NDZkYzI0M2M3YzM1Y2Y3OTRkODAxNGEyZTI1MzBhNzcxMjAzYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9pbmRleC5yc3QKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
ZG9jcy9pbmRleC5yc3QKQEAgLTEsNjcgKzEsMTgyIEBACiBgYHBsdWdneWBgCiA9PT09PT09PT09
CisqKlRoZSBweXRlc3QgcGx1Z2luIHN5c3RlbSoqCiAKLVRoZSBgYHB5dGVzdGBgIHBsdWdpbiBz
eXN0ZW0KLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioKLWBgcGx1Z2d5YGAgaXMgdGhlIGNy
eXN0YWxsaXplZCBjb3JlIG9mIGBwbHVnaW4gbWFuYWdlbWVudCBhbmQgaG9vawotY2FsbGluZ2Bf
IGZvciBgcHl0ZXN0YF8uCi0KLUluIGZhY3QsIGBgcHl0ZXN0YGAgaXMgaXRzZWxmIGNvbXBvc2Vk
IGFzIGEgc2V0IG9mIGBgcGx1Z2d5YGAgcGx1Z2lucworV2hhdCBpcyBpdD8KKyoqKioqKioqKioq
CitgYHBsdWdneWBgIGlzIHRoZSBjcnlzdGFsbGl6ZWQgY29yZSBvZiA6cmVmOmBwbHVnaW4gbWFu
YWdlbWVudCBhbmQgaG9vaworY2FsbGluZyA8cHl0ZXN0OndyaXRpbmctcGx1Z2lucz5gIGZvciA6
c3RkOmRvYzpgcHl0ZXN0IDxweXRlc3Q6aW5kZXg+YC4KK0l0IGVuYWJsZXMgYDUwMCsgcGx1Z2lu
c2BfIHRvIGV4dGVuZCBhbmQgY3VzdG9taXplIGBgcHl0ZXN0YGAncyBkZWZhdWx0CitiZWhhdmlv
dXIuIEV2ZW4gYGBweXRlc3RgYCBpdHNlbGYgaXMgY29tcG9zZWQgYXMgYSBzZXQgb2YgYGBwbHVn
Z3lgYCBwbHVnaW5zCiB3aGljaCBhcmUgaW52b2tlZCBpbiBzZXF1ZW5jZSBhY2NvcmRpbmcgdG8g
YSB3ZWxsIGRlZmluZWQgc2V0IG9mIHByb3RvY29scy4KLVNvbWUgYDIwMCsgcGx1Z2luc2BfIHVz
ZSBgYHBsdWdneWBgIHRvIGV4dGVuZCBhbmQgY3VzdG9taXplIGBgcHl0ZXN0YGAncyBkZWZhdWx0
IGJlaGF2aW91ci4KIAotSW4gZXNzZW5jZSwgYGBwbHVnZ3lgYCBlbmFibGVzIGZ1bmN0aW9uIGBo
b29raW5nYF8gc28geW91IGNhbiBidWlsZCAicGx1Z2dhYmxlIiBzeXN0ZW1zLgorSXQgZ2l2ZXMg
dXNlcnMgdGhlIGFiaWxpdHkgdG8gZXh0ZW5kIG9yIG1vZGlmeSB0aGUgYmVoYXZpb3VyIG9mIGEK
K2BgaG9zdCBwcm9ncmFtYGAgYnkgaW5zdGFsbGluZyBhIGBgcGx1Z2luYGAgZm9yIHRoYXQgcHJv
Z3JhbS4KK1RoZSBwbHVnaW4gY29kZSB3aWxsIHJ1biBhcyBwYXJ0IG9mIG5vcm1hbCBwcm9ncmFt
IGV4ZWN1dGlvbiwgY2hhbmdpbmcgb3IKK2VuaGFuY2luZyBjZXJ0YWluIGFzcGVjdHMgb2YgaXQu
CisKK0luIGVzc2VuY2UsIGBgcGx1Z2d5YGAgZW5hYmxlcyBmdW5jdGlvbiBgaG9va2luZ2BfIHNv
IHlvdSBjYW4gYnVpbGQKKyJwbHVnZ2FibGUiIHN5c3RlbXMuCisKK1doeSBpcyBpdCB1c2VmdWw/
CisqKioqKioqKioqKioqKioqKgorVGhlcmUgYXJlIHNvbWUgZXN0YWJsaXNoZWQgbWVjaGFuaXNt
cyBmb3IgbW9kaWZ5aW5nIHRoZSBiZWhhdmlvciBvZiBvdGhlcgorcHJvZ3JhbXMvbGlicmFyaWVz
IGluIFB5dGhvbiBsaWtlCitgbWV0aG9kIG92ZXJyaWRpbmcgPGh0dHBzOi8vZW4ud2lraXBlZGlh
Lm9yZy93aWtpL01ldGhvZF9vdmVycmlkaW5nPmBfCisoZS5nLiBKaW5qYTIpIG9yCitgbW9ua2V5
IHBhdGNoaW5nIDxodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Nb25rZXlfcGF0Y2g+YF8g
KGUuZy4gZ2V2ZW50CitvciBmb3IgOnN0ZDpkb2M6YHdyaXRpbmcgdGVzdHMgPHB5dGVzdDptb25r
ZXlwYXRjaD5gKS4KK1RoZXNlIHN0cmF0ZWdpZXMgYmVjb21lIHByb2JsZW1hdGljIHRob3VnaCB3
aGVuIHNldmVyYWwgcGFydGllcyB3YW50IHRvCitwYXJ0aWNpcGF0ZSBpbiB0aGUgbW9kaWZpY2F0
aW9uIG9mIHRoZSBzYW1lIHByb2dyYW0uIFRoZXJlZm9yZSBgYHBsdWdneWBgCitkb2VzIG5vdCBy
ZWx5IG9uIHRoZXNlIG1lY2hhbmlzbXMgdG8gZW5hYmxlIGEgbW9yZSBzdHJ1Y3R1cmVkIGFwcHJv
YWNoIGFuZAorYXZvaWQgdW5uZWNlc3NhcnkgZXhwb3N1cmUgb2Ygc3RhdGUgYW5kIGJlaGF2aW91
ci4gVGhpcyBsZWFkcyB0byBhIG1vcmUKK2Bsb29zZWx5IGNvdXBsZWQgPGh0dHBzOi8vZW4ud2lr
aXBlZGlhLm9yZy93aWtpL0xvb3NlX2NvdXBsaW5nPmBfIHJlbGF0aW9uc2hpcAorYmV0d2VlbiBg
YGhvc3RgYCBhbmQgYGBwbHVnaW5zYGAuCisKK1RoZSBgYHBsdWdneWBgIGFwcHJvYWNoIHB1dHMg
dGhlIGJ1cmRlbiBvbiB0aGUgZGVzaWduZXIgb2YgdGhlCitgYGhvc3QgcHJvZ3JhbWBgIHRvIHRo
aW5rIGNhcmVmdWxseSBhYm91dCB3aGljaCBvYmplY3RzIGFyZSByZWFsbHkKK25lZWRlZCBpbiBh
IGhvb2sgaW1wbGVtZW50YXRpb24uIFRoaXMgZ2l2ZXMgYGBwbHVnaW5gYCBjcmVhdG9ycyBhIGNs
ZWFyCitmcmFtZXdvcmsgZm9yIGhvdyB0byBleHRlbmQgdGhlIGBgaG9zdGBgIHZpYSBhIHdlbGwg
ZGVmaW5lZCBzZXQgb2YgZnVuY3Rpb25zCithbmQgb2JqZWN0cyB0byB3b3JrIHdpdGguCisKK0hv
dyBkb2VzIGl0IHdvcms/CisqKioqKioqKioqKioqKioqKgorTGV0IHVzIHN0YXJ0IHdpdGggYSBz
aG9ydCBvdmVydmlldyBvZiB3aGF0IGlzIGludm9sdmVkOgorCisqIGBgaG9zdGBgIG9yIGBgaG9z
dCBwcm9ncmFtYGA6IHRoZSBwcm9ncmFtIG9mZmVyaW5nIGV4dGVuc2liaWxpdHkKKyAgYnkgc3Bl
Y2lmeWluZyBgYGhvb2sgZnVuY3Rpb25zYGAgYW5kIGludm9raW5nIHRoZWlyIGltcGxlbWVudGF0
aW9uKHMpIGFzCisgIHBhcnQgb2YgcHJvZ3JhbSBleGVjdXRpb24KKyogYGBwbHVnaW5gYDogdGhl
IHByb2dyYW0gaW1wbGVtZW50aW5nIChhIHN1YnNldCBvZikgdGhlIHNwZWNpZmllZCBob29rcyBh
bmQKKyAgcGFydGljaXBhdGluZyBpbiBwcm9ncmFtIGV4ZWN1dGlvbiB3aGVuIHRoZSBpbXBsZW1l
bnRhdGlvbnMgYXJlIGludm9rZWQKKyAgYnkgdGhlIGBgaG9zdGBgCisqIGBgcGx1Z2d5YGA6IGNv
bm5lY3RzIGBgaG9zdGBgIGFuZCBgYHBsdWdpbnNgYCBieSB1c2luZyAuLi4KKworICAgIC0gdGhl
IGhvb2sgOnJlZjpgc3BlY2lmaWNhdGlvbnMgPHNwZWNzPmAgZGVmaW5pbmcgY2FsbCBzaWduYXR1
cmVzCisgICAgICBwcm92aWRlZCBieSB0aGUgYGBob3N0YGAgKGEuay5hIGBgaG9va3NwZWNzYGAg
LSBzZWUgOnJlZjpgbWFya2luZ19ob29rc2ApCisgICAgLSB0aGUgaG9vayA6cmVmOmBpbXBsZW1l
bnRhdGlvbnMgPGltcGxzPmAgcHJvdmlkZWQgYnkgcmVnaXN0ZXJlZAorICAgICAgYGBwbHVnaW5z
YGAgKGEuay5hIGBgaG9va2ltcGxgYCAtIHNlZSBgY2FsbGJhY2tzYF8pCisgICAgLSB0aGUgaG9v
ayA6cmVmOmBjYWxsZXIgPGNhbGxpbmc+YCAtIGEgY2FsbCBsb29wIHRyaWdnZXJlZCBhdCBhcHBy
b3ByaWF0ZQorICAgICAgcHJvZ3JhbSBwb3NpdGlvbnMgaW4gdGhlIGBgaG9zdGBgIGludm9raW5n
IHRoZSBpbXBsZW1lbnRhdGlvbnMgYW5kCisgICAgICBjb2xsZWN0aW5nIHRoZSByZXN1bHRzCisK
KyAgICAuLi4gd2hlcmUgZm9yIGVhY2ggcmVnaXN0ZXJlZCBob29rICpzcGVjaWZpY2F0aW9uKiwg
YSBob29rICpjYWxsKiB3aWxsCisgICAgaW52b2tlIHVwIHRvIGBgTmBgIHJlZ2lzdGVyZWQgaG9v
ayAqaW1wbGVtZW50YXRpb25zKi4KKyogYGB1c2VyYGA6IHRoZSBwZXJzb24gd2hvIGluc3RhbGxl
ZCB0aGUgYGBob3N0IHByb2dyYW1gYCBhbmQgd2FudHMgdG8KKyAgZXh0ZW5kIGl0cyBmdW5jdGlv
bmFsaXR5IHdpdGggYGBwbHVnaW5zYGAuIEluIHRoZSBzaW1wbGVzdCBjYXNlIHRoZXkgaW5zdGFs
bAorICB0aGUgYGBwbHVnaW5gYCBpbiB0aGUgc2FtZSBlbnZpcm9ubWVudCBhcyB0aGUgYGBob3N0
YGAgYW5kIHRoZSBtYWdpYyB3aWxsCisgIGhhcHBlbiB3aGVuIHRoZSBgYGhvc3QgcHJvZ3JhbWBg
IGlzIHJ1biB0aGUgbmV4dCB0aW1lLiBEZXBlbmRpbmcgb24KKyAgdGhlIGBgcGx1Z2luYGAsIHRo
ZXJlIG1pZ2h0IGJlIG90aGVyIHRoaW5ncyB0aGV5IG5lZWQgdG8gZG8uIEZvciBleGFtcGxlLAor
ICB0aGV5IG1pZ2h0IGhhdmUgdG8gY2FsbCB0aGUgaG9zdCB3aXRoIGFuIGFkZGl0aW9uYWwgY29t
bWFuZGxpbmUgcGFyYW1ldGVyCisgIHRvIHRoZSBob3N0IHRoYXQgdGhlIGBgcGx1Z2luYGAgYWRk
ZWQuCisKK0EgdG95IGV4YW1wbGUKKy0tLS0tLS0tLS0tLS0KK0xldCB1cyBkZW1vbnN0cmF0ZSB0
aGUgY29yZSBmdW5jdGlvbmFsaXR5IGluIG9uZSBtb2R1bGUgYW5kIHNob3cgaG93IHlvdSBjYW4K
K3N0YXJ0IGV4cGVyaW1lbnRpbmcgd2l0aCBwbHVnZ3kgZnVuY3Rpb25hbGl0eS4KIAotSG93J3Mg
aXQgd29yaz8KLS0tLS0tLS0tLS0tLS0tCi1BIGBwbHVnaW5gIGlzIGEgYG5hbWVzcGFjZWBfIHdo
aWNoIGRlZmluZXMgaG9vayBmdW5jdGlvbnMuCisuLiBsaXRlcmFsaW5jbHVkZTo6IGV4YW1wbGVz
L3RveS1leGFtcGxlLnB5CiAKLWBgcGx1Z2d5YGAgbWFuYWdlcyAqcGx1Z2lucyogYnkgcmVseWlu
ZyBvbjoKK1J1bm5pbmcgdGhpcyBkaXJlY3RseSBnZXRzIHVzOjoKIAotLSBhIGhvb2sgKnNwZWNp
ZmljYXRpb24qIC0gZGVmaW5lcyBhIGNhbGwgc2lnbmF0dXJlCi0tIGEgc2V0IG9mIGhvb2sgKmlt
cGxlbWVudGF0aW9ucyogLSBha2EgYGNhbGxiYWNrc2BfCi0tIHRoZSBob29rICpjYWxsZXIqIC0g
YSBjYWxsIGxvb3Agd2hpY2ggY29sbGVjdHMgcmVzdWx0cworICAgICQgcHl0aG9uIGRvY3MvZXhh
bXBsZXMvdG95LWV4YW1wbGUucHkKIAotd2hlcmUgZm9yIGVhY2ggcmVnaXN0ZXJlZCBob29rICpz
cGVjaWZpY2F0aW9uKiwgYSBob29rICpjYWxsKiB3aWxsIGludm9rZSB1cCB0byBgYE5gYAotcmVn
aXN0ZXJlZCBob29rICppbXBsZW1lbnRhdGlvbnMqLgorICAgIGluc2lkZSBQbHVnaW5fMi5teWhv
b2soKQorICAgIGluc2lkZSBQbHVnaW5fMS5teWhvb2soKQorICAgIFstMSwgM10KIAotYGBwbHVn
Z3lgYCBhY2NvbXBsaXNoZXMgYWxsIHRoaXMgYnkgaW1wbGVtZW50aW5nIGEgYHJlcXVlc3QtcmVz
cG9uc2UgcGF0dGVybmBfIHVzaW5nICpmdW5jdGlvbioKLXN1YnNjcmlwdGlvbnMgYW5kIGNhbiBi
ZSB0aG91Z2h0IG9mIGFuZCB1c2VkIGFzIGEgcnVkaW1lbnRhcnkgYnVzbGVzcyBgcHVibGlzaC1z
dWJzY3JpYmVgXwotZXZlbnQgc3lzdGVtLgorQSBjb21wbGV0ZSBleGFtcGxlCistLS0tLS0tLS0t
LS0tLS0tLS0KK05vdyBsZXQgdXMgZGVtb25zdHJhdGUgaG93IHRoaXMgcGxheXMgdG9nZXRoZXIg
aW4gYSB2YWd1ZWx5IHJlYWwgd29ybGQgc2NlbmFyaW8uCiAKLWBgcGx1Z2d5YGAncyBhcHByb2Fj
aCBpcyBtZWFudCB0byBsZXQgYSBkZXNpZ25lciB0aGluayBjYXJlZnVseSBhYm91dCB3aGljaCBv
YmplY3RzIGFyZQotZXhwbGljaXRseSBuZWVkZWQgYnkgYW4gZXh0ZW5zaW9uIHdyaXRlci4gVGhp
cyBpcyBpbiBjb250cmFzdCB0byBzdWJjbGFzcy1iYXNlZCBleHRlbnNpb24KLXN5c3RlbXMgd2hp
Y2ggbWF5IGV4cG9zZSB1bmVjZXNzYXJ5IHN0YXRlIGFuZCBiZWhhdmlvdXIgb3IgZW5jb3VyYWdl
IGB0aWdodCBjb3VwbGluZ2BfCi1pbiBvdmVybHlpbmcgZnJhbWV3b3Jrcy4KK0xldCdzIGFzc3Vt
ZSBvdXIgYGBob3N0IHByb2dyYW1gYCBpcyBjYWxsZWQgKiplZ2dzYW1wbGUqKiB3aGVyZSBzb21l
IGVnZ3Mgd2lsbAorYmUgcHJlcGFyZWQgYW5kIHNlcnZlZCB3aXRoIGEgdHJheSBjb250YWluaW5n
IGNvbmRpbWVudHMuIEFzIGV2ZXJ5Ym9keSBrbm93czoKK3RoZSBtb3JlIGNvb2tzIGFyZSBpbnZv
bHZlZCB0aGUgYmV0dGVyIHRoZSBmb29kLCBzbyBsZXQgdXMgbWFrZSB0aGUgcHJvY2VzcworcGx1
Z2dhYmxlIGFuZCB3cml0ZSBhIHBsdWdpbiB0aGF0IGltcHJvdmVzIHRoZSBtZWFsIHdpdGggc29t
ZSBzcGFtIGFuZCByZXBsYWNlcwordGhlIHN0ZWFrIHNhdWNlIChub2JvZHkgbGlrZXMgdGhhdCBh
bnl3YXkpIHdpdGggc3BhbSBzYXVjZSAoaXQncyBhIHRoaW5nIC0gdHJ1c3QgbWUpLgogCisuLiBu
b3RlOjoKIAotQSBmaXJzdCBleGFtcGxlCi0tLS0tLS0tLS0tLS0tLS0KKyAgICAqKm5hbWluZyBt
YXJrZXJzKio6IGBgSG9va1NwZWNNYXJrZXJgYCBhbmQgYGBIb29rSW1wbE1hcmtlcmBgIG11c3Qg
YmUKKyAgICBpbml0aWFsaXplZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBgYGhvc3RgYCBwcm9qZWN0
ICh0aGUgYGBuYW1lYGAKKyAgICBwYXJhbWV0ZXIgaW4gYGBzZXR1cCgpYGApIC0gc28gKiplZ2dz
YW1wbGUqKiBpbiBvdXIgY2FzZS4KIAotLi4gbGl0ZXJhbGluY2x1ZGU6OiBleGFtcGxlcy9maXJz
dGV4YW1wbGUucHkKKyAgICAqKm5hbWluZyBwbHVnaW4gcHJvamVjdHMqKjogdGhleSBzaG91bGQg
YmUgbmFtZWQgaW4gdGhlIGZvcm0gb2YKKyAgICBgYDxob3N0Pi08cGx1Z2luPmBgIChlLmcuIGBg
cHl0ZXN0LXhkaXN0YGApLCB0aGVyZWZvcmUgd2UgY2FsbCBvdXIKKyAgICBwbHVnaW4gKmVnZ3Nh
bXBsZS1zcGFtKi4KIAotUnVubmluZyB0aGlzIGRpcmVjdGx5IGdldHMgdXM6OgorVGhlIGhvc3QK
K15eXl5eXl5eCitgYGVnZ3NhbXBsZS9lZ2dzYW1wbGUvX19pbml0X18ucHlgYAogCi0gICAgJCBw
eXRob24gZG9jcy9leGFtcGxlcy9maXJzdGV4YW1wbGUucHkKKy4uIGxpdGVyYWxpbmNsdWRlOjog
ZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS9fX2luaXRfXy5weQogCi0gICAgaW5zaWRlIFBs
dWdpbl8yLm15aG9vaygpCi0gICAgaW5zaWRlIFBsdWdpbl8xLm15aG9vaygpCi0gICAgWy0xLCAz
XQorYGBlZ2dzYW1wbGUvZWdnc2FtcGxlL2hvb2tzcGVjcy5weWBgCisKKy4uIGxpdGVyYWxpbmNs
dWRlOjogZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS9ob29rc3BlY3MucHkKKworYGBlZ2dz
YW1wbGUvZWdnc2FtcGxlL2xpYi5weWBgCisKKy4uIGxpdGVyYWxpbmNsdWRlOjogZXhhbXBsZXMv
ZWdnc2FtcGxlL2VnZ3NhbXBsZS9saWIucHkKKworYGBlZ2dzYW1wbGUvZWdnc2FtcGxlL2hvc3Qu
cHlgYAorCisuLiBsaXRlcmFsaW5jbHVkZTo6IGV4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUv
aG9zdC5weQorCitgYGVnZ3NhbXBsZS9zZXR1cC5weWBgCisKKy4uIGxpdGVyYWxpbmNsdWRlOjog
ZXhhbXBsZXMvZWdnc2FtcGxlL3NldHVwLnB5CisKK0xldCdzIGdldCBjb29raW5nIC0gd2UgaW5z
dGFsbCB0aGUgaG9zdCBhbmQgc2VlIHdoYXQgYSBwcm9ncmFtIHJ1biBsb29rcyBsaWtlOjoKKwor
ICAgICQgcGlwIGluc3RhbGwgLS1lZGl0YWJsZSBwbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1w
bGUKKyAgICAkIGVnZ3NhbXBsZQorCisgICAgWW91ciBmb29kLiBFbmpveSBzb21lIGVnZywgZWdn
LCBzYWx0LCBlZ2csIGVnZywgcGVwcGVyLCBlZ2cKKyAgICBTb21lIGNvbmRpbWVudHM/IFdlIGhh
dmUgcGlja2xlZCB3YWxudXRzLCBzdGVhayBzYXVjZSwgbXVzaHkgcGVhcywgbWludCBzYXVjZQor
CitUaGUgcGx1Z2luCiteXl5eXl5eXl5eCitgYGVnZ3NhbXBsZS1zcGFtL2VnZ3NhbXBsZV9zcGFt
LnB5YGAKKworLi4gbGl0ZXJhbGluY2x1ZGU6OiBleGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS9lZ2dz
YW1wbGVfc3BhbS5weQorCitgYGVnZ3NhbXBsZS1zcGFtL3NldHVwLnB5YGAKKworLi4gbGl0ZXJh
bGluY2x1ZGU6OiBleGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS9zZXR1cC5weQorCitMZXQncyBnZXQg
Y29va2luZyB3aXRoIG1vcmUgY29va3MgLSB3ZSBpbnN0YWxsIHRoZSBwbHVnaW4gYW5kIGFuZCBz
ZWUgd2hhdAord2UgZ2V0OjoKKworICAgICQgcGlwIGluc3RhbGwgLS1lZGl0YWJsZSBwbHVnZ3kv
ZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUtc3BhbQorICAgICQgZWdnc2FtcGxlCisKKyAgICBZb3Vy
IGZvb2QuIEVuam95IHNvbWUgZWdnLCBsb3ZlbHkgc3BhbSwgc2FsdCwgZWdnLCBlZ2csIGVnZywg
d29uZGVyb3VzIHNwYW0sIGVnZywgcGVwcGVyCisgICAgU29tZSBjb25kaW1lbnRzPyBXZSBoYXZl
IHBpY2tsZWQgd2FsbnV0cywgbXVzaHkgcGVhcywgbWludCBzYXVjZSwgc3BhbSBzYXVjZQorICAg
IE5vdyB0aGlzIGlzIHdoYXQgSSBjYWxsIGEgY29uZGltZW50cyB0cmF5IQorCitNb3JlIHJlYWwg
d29ybGQgZXhhbXBsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVG8gc2VlIGhvdyBgYHBs
dWdneWBgIGlzIHVzZWQgaW4gdGhlIHJlYWwgd29ybGQsIGhhdmUgYSBsb29rIGF0IHRoZXNlIHBy
b2plY3RzCitkb2N1bWVudGF0aW9uIGFuZCBzb3VyY2UgY29kZToKKworKiA6cmVmOmBweXRlc3Qg
PHB5dGVzdDp3cml0aW5nLXBsdWdpbnM+YAorKiA6c3RkOmRvYzpgdG94IDx0b3g6cGx1Z2lucz5g
CisqIDpzdGQ6ZG9jOmBkZXZwaSA8ZGV2cGk6ZGV2Z3VpZGUvaW5kZXg+YAogCiBGb3IgbW9yZSBk
ZXRhaWxzIGFuZCBhZHZhbmNlZCB1c2FnZSBwbGVhc2UgcmVhZCBvbi4KIAogLi4gX2RlZmluZToK
IAotRGVmaW5pbmcgYW5kIENvbGxlY3RpbmcgSG9va3MKLSoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCi1BICpwbHVnaW4qIGlzIGEgbmFtZXNwYWNlIHR5cGUgKGN1cnJlbnRseSBvbmUgb2Yg
YSBgYGNsYXNzYGAgb3IgbW9kdWxlKQotd2hpY2ggZGVmaW5lcyBhIHNldCBvZiAqaG9vayogZnVu
Y3Rpb25zLgorRGVmaW5lIGFuZCBjb2xsZWN0IGhvb2tzCisqKioqKioqKioqKioqKioqKioqKioq
KioKK0EgKnBsdWdpbiogaXMgYSA6cmVmOmBuYW1lc3BhY2UgPHB5dGhvbjp0dXQtc2NvcGVzPmAg
dHlwZSAoY3VycmVudGx5IG9uZSBvZiBhCitgYGNsYXNzYGAgb3IgbW9kdWxlKSB3aGljaCBkZWZp
bmVzIGEgc2V0IG9mICpob29rKiBmdW5jdGlvbnMuCiAKLUFzIG1lbnRpb25lZCBpbiA6cmVmOmBt
YW5hZ2VgLCBhbGwgKnBsdWdpbnMqIHdoaWNoIGRlZmluZSAqaG9va3MqCitBcyBtZW50aW9uZWQg
aW4gOnJlZjpgbWFuYWdlYCwgYWxsICpwbHVnaW5zKiB3aGljaCBzcGVjaWZ5ICpob29rcyoKIGFy
ZSBtYW5hZ2VkIGJ5IGFuIGluc3RhbmNlIG9mIGEgOnB5OmNsYXNzOmBwbHVnZ3kuUGx1Z2luTWFu
YWdlcmAgd2hpY2gKIGRlZmluZXMgdGhlIHByaW1hcnkgYGBwbHVnZ3lgYCBBUEkuCiAKLUluIG9y
ZGVyIGZvciBhIGBgUGx1Z2luTWFuYWdlcmBgIHRvIGRldGVjdCBmdW5jdGlvbnMgaW4gYSBuYW1l
c3BhY2UKK0luIG9yZGVyIGZvciBhIDpweTpjbGFzczpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyYCB0
byBkZXRlY3QgZnVuY3Rpb25zIGluIGEgbmFtZXNwYWNlCiBpbnRlbmRlZCB0byBiZSAqaG9va3Mq
LCB0aGV5IG11c3QgYmUgZGVjb3JhdGVkIHVzaW5nIHNwZWNpYWwgYGBwbHVnZ3lgYCAqbWFya3Mq
LgogCiAuLiBfbWFya2luZ19ob29rczoKQEAgLTY5LDI0ICsxODQsMjUgQEAgaW50ZW5kZWQgdG8g
YmUgKmhvb2tzKiwgdGhleSBtdXN0IGJlIGRlY29yYXRlZCB1c2luZyBzcGVjaWFsIGBgcGx1Z2d5
YGAgKm1hcmtzKi4KIE1hcmtpbmcgaG9va3MKIC0tLS0tLS0tLS0tLS0KIFRoZSA6cHk6Y2xhc3M6
YH5wbHVnZ3kuSG9va3NwZWNNYXJrZXJgIGFuZCA6cHk6Y2xhc3M6YH5wbHVnZ3kuSG9va2ltcGxN
YXJrZXJgCi1kZWNvcmF0b3JzIGFyZSB1c2VkIHRvICptYXJrKiBmdW5jdGlvbnMgZm9yIGRldGVj
dGlvbiBieSBhIGBgUGx1Z2luTWFuYWdlcmBgOgorZGVjb3JhdG9ycyBhcmUgdXNlZCB0byAqbWFy
ayogZnVuY3Rpb25zIGZvciBkZXRlY3Rpb24gYnkgYQorOnB5OmNsYXNzOmB+cGx1Z2d5LlBsdWdp
bk1hbmFnZXJgOgogCiAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBmcm9tIHBsdWdneSBp
bXBvcnQgSG9va3NwZWNNYXJrZXIsIEhvb2tpbXBsTWFya2VyCiAKLSAgICBob29rc3BlYyA9IEhv
b2tzcGVjTWFya2VyKCdwcm9qZWN0X25hbWUnKQotICAgIGhvb2tpbXBsID0gSG9va2ltcGxNYXJr
ZXIoJ3Byb2plY3RfbmFtZScpCisgICAgaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigicHJvamVj
dF9uYW1lIikKKyAgICBob29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJwcm9qZWN0X25hbWUiKQog
CiAKIEVhY2ggZGVjb3JhdG9yIHR5cGUgdGFrZXMgYSBzaW5nbGUgYGBwcm9qZWN0X25hbWVgYCBz
dHJpbmcgYXMgaXRzCiBsb25lIGFyZ3VtZW50IHRoZSB2YWx1ZSBvZiB3aGljaCBpcyB1c2VkIHRv
IG1hcmsgaG9va3MgZm9yIGRldGVjdGlvbiBieQotYnkgYSBzaW1pbGFybHkgY29uZmlndXJlZCBg
YFBsdWdpbk1hbmFnZXJgYCBpbnN0YW5jZS4KK2Egc2ltaWxhcmx5IGNvbmZpZ3VyZWQgOnB5OmNs
YXNzOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXJgIGluc3RhbmNlLgogCiBUaGF0IGlzLCBhICptYXJr
KiB0eXBlIGNhbGxlZCB3aXRoIGBgcHJvamVjdF9uYW1lYGAgcmV0dXJucyBhbiBvYmplY3Qgd2hp
Y2gKIGNhbiBiZSB1c2VkIHRvIGRlY29yYXRlIGZ1bmN0aW9ucyB3aGljaCB3aWxsIHRoZW4gYmUg
ZGV0ZWN0ZWQgYnkgYQotYGBQbHVnaW5NYW5hZ2VyYGAgd2hpY2ggd2FzIGluc3RhbnRpYXRlZCB3
aXRoIHRoZSB0aGUgc2FtZSBgYHByb2plY3RfbmFtZWBgCi12YWx1ZS4KKzpweTpjbGFzczpgfnBs
dWdneS5QbHVnaW5NYW5hZ2VyYCB3aGljaCB3YXMgaW5zdGFudGlhdGVkIHdpdGggdGhlIHNhbWUK
K2BgcHJvamVjdF9uYW1lYGAgdmFsdWUuCiAKIEZ1cnRoZXJtb3JlLCBlYWNoICpob29raW1wbCog
b3IgKmhvb2tzcGVjKiBkZWNvcmF0b3IgY2FuIGNvbmZpZ3VyZSB0aGUKIHVuZGVybHlpbmcgY2Fs
bC10aW1lIGJlaGF2aW9yIG9mIGVhY2ggKmhvb2sqIG9iamVjdCBieSBwcm92aWRpbmcgc3BlY2lh
bApAQCAtOTUsOCArMjExLDggQEAgdW5kZXJseWluZyBjYWxsLXRpbWUgYmVoYXZpb3Igb2YgZWFj
aCAqaG9vayogb2JqZWN0IGJ5IHByb3ZpZGluZyBzcGVjaWFsCiAKIC4uIG5vdGU6OgogICAgIFRo
ZSBmb2xsb3dpbmcgc2VjdGlvbnMgY29ycmVzcG9uZCB0byBzaW1pbGFyIGRvY3VtZW50YXRpb24g
aW4KLSAgICBgYHB5dGVzdGBgIGZvciBgV3JpdGluZyBob29rIGZ1bmN0aW9uc2BfIGFuZCBjYW4g
YmUgdXNlZAotICAgIGFzIGEgc3VwcGxlbWVudGFyeSByZXNvdXJjZS4KKyAgICBgYHB5dGVzdGBg
IGZvciA6cmVmOmBweXRlc3Q6d3JpdGluZ2hvb2tzYCBhbmQgY2FuIGJlIHVzZWQgYXMKKyAgICBh
IHN1cHBsZW1lbnRhcnkgcmVzb3VyY2UuCiAKIC4uIF9pbXBsczoKIApAQCAtMTEzLDcgKzIyOSw4
IEBAIHdoaWNoIGhhcyBiZWVuIGFwcHJvcHJpYXRlbHkgbWFya2VkLgogICAgIGltcG9ydCBzeXMK
ICAgICBmcm9tIHBsdWdneSBpbXBvcnQgUGx1Z2luTWFuYWdlciwgSG9va2ltcGxNYXJrZXIKIAot
ICAgIGhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoJ215cHJvamVjdCcpCisgICAgaG9va2ltcGwg
PSBIb29raW1wbE1hcmtlcigibXlwcm9qZWN0IikKKwogCiAgICAgQGhvb2tpbXBsCiAgICAgZGVm
IHNldHVwX3Byb2plY3QoY29uZmlnLCBhcmdzKToKQEAgLTEyNSw3ICsyNDIsOCBAQCB3aGljaCBo
YXMgYmVlbiBhcHByb3ByaWF0ZWx5IG1hcmtlZC4KIAogICAgICAgICByZXR1cm4gY29uZmlnCiAK
LSAgICBwbSA9IFBsdWdpbk1hbmFnZXIoJ215cHJvamVjdCcpCisKKyAgICBwbSA9IFBsdWdpbk1h
bmFnZXIoIm15cHJvamVjdCIpCiAKICAgICAjIGxvYWQgYWxsIGhvb2tpbXBscyBmcm9tIHRoZSBs
b2NhbCBtb2R1bGUncyBuYW1lc3BhY2UKICAgICBwbHVnaW5fbmFtZSA9IHBtLnJlZ2lzdGVyKHN5
cy5tb2R1bGVzW19fbmFtZV9fXSkKQEAgLTEzNCw3ICsyNTIsNyBAQCB3aGljaCBoYXMgYmVlbiBh
cHByb3ByaWF0ZWx5IG1hcmtlZC4KIAogT3B0aW9uYWwgdmFsaWRhdGlvbgogXl5eXl5eXl5eXl5e
Xl5eXl5eXgotTm9ybWFsbHkgZWFjaCAqaG9va2ltcGwqIHNob3VsZCBiZSB2YWxpZGF0ZWQgYSBh
Z2FpbnN0IGEgY29ycmVzcG9uZGluZworTm9ybWFsbHkgZWFjaCAqaG9va2ltcGwqIHNob3VsZCBi
ZSB2YWxpZGF0ZWQgYWdhaW5zdCBhIGNvcnJlc3BvbmRpbmcKIGhvb2sgOnJlZjpgc3BlY2lmaWNh
dGlvbiA8c3BlY3M+YC4gSWYgeW91IHdhbnQgdG8gbWFrZSBhbiBleGNlcHRpb24KIHRoZW4gdGhl
ICpob29raW1wbCogc2hvdWxkIGJlIG1hcmtlZCB3aXRoIHRoZSBgYCJvcHRpb25hbGhvb2siYGAg
b3B0aW9uOgogCkBAIC0xNjIsNyArMjgwLDggQEAgd2lsbCBiZSBleGVjdXRlZCAqZmlyc3QqIG9y
ICpsYXN0KiByZXNwZWN0aXZlbHkgaW4gdGhlIGhvb2sgY2FsbCBsb29wOgogICAgIGltcG9ydCBz
eXMKICAgICBmcm9tIHBsdWdneSBpbXBvcnQgUGx1Z2luTWFuYWdlciwgSG9va2ltcGxNYXJrZXIK
IAotICAgIGhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoJ215cHJvamVjdCcpCisgICAgaG9va2lt
cGwgPSBIb29raW1wbE1hcmtlcigibXlwcm9qZWN0IikKKwogCiAgICAgQGhvb2tpbXBsKHRyeWxh
c3Q9VHJ1ZSkKICAgICBkZWYgc2V0dXBfcHJvamVjdChjb25maWcsIGFyZ3MpOgpAQCAtMTc3LDgg
KzI5Niw5IEBAIHdpbGwgYmUgZXhlY3V0ZWQgKmZpcnN0KiBvciAqbGFzdCogcmVzcGVjdGl2ZWx5
IGluIHRoZSBob29rIGNhbGwgbG9vcDoKICAgICBjbGFzcyBTb21lT3RoZXJQbHVnaW4ob2JqZWN0
KToKICAgICAgICAgIiIiU29tZSBvdGhlciBwbHVnaW4gZGVmaW5pbmcgdGhlIHNhbWUgaG9vay4K
ICAgICAgICAgIiIiCisKICAgICAgICAgQGhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi0gICAgICAg
IGRlZiBzZXR1cF9wcm9qZWN0KGNvbmZpZywgYXJncyk6CisgICAgICAgIGRlZiBzZXR1cF9wcm9q
ZWN0KHNlbGYsIGNvbmZpZywgYXJncyk6CiAgICAgICAgICAgICAiIiJSZXBvcnQgd2hhdCBhcmdz
IHdlcmUgcGFzc2VkIGJlZm9yZSBjYWxsaW5nCiAgICAgICAgICAgICBkb3duc3RyZWFtIGhvb2tz
LgogICAgICAgICAgICAgIiIiCkBAIC0xODcsMTIgKzMwNywxMyBAQCB3aWxsIGJlIGV4ZWN1dGVk
ICpmaXJzdCogb3IgKmxhc3QqIHJlc3BlY3RpdmVseSBpbiB0aGUgaG9vayBjYWxsIGxvb3A6CiAK
ICAgICAgICAgICAgIHJldHVybiBjb25maWcKIAotICAgIHBtID0gUGx1Z2luTWFuYWdlcignbXlw
cm9qZWN0JykKKworICAgIHBtID0gUGx1Z2luTWFuYWdlcigibXlwcm9qZWN0IikKIAogICAgICMg
bG9hZCBmcm9tIHRoZSBsb2NhbCBtb2R1bGUncyBuYW1lc3BhY2UKICAgICBwbS5yZWdpc3Rlcihz
eXMubW9kdWxlc1tfX25hbWVfX10pCiAgICAgIyBsb2FkIGEgcGx1Z2luIGRlZmluZWQgb24gYSBj
bGFzcwotICAgIHBtLnJlZ2lzdGVyKFNvbWVQbHVnaW4oKSkKKyAgICBwbS5yZWdpc3RlcihTb21l
T3RoZXJQbHVnaW4oKSkKIAogRm9yIGFub3RoZXIgZXhhbXBsZSBzZWUgdGhlIGBob29rIGZ1bmN0
aW9uIG9yZGVyaW5nYF8gc2VjdGlvbiBvZiB0aGUKIGBgcHl0ZXN0YGAgZG9jcy4KQEAgLTIwMSw2
ICszMjIsOSBAQCBGb3IgYW5vdGhlciBleGFtcGxlIHNlZSB0aGUgYGhvb2sgZnVuY3Rpb24gb3Jk
ZXJpbmdgXyBzZWN0aW9uIG9mIHRoZQogICAgIGBgdHJ5Zmlyc3RgYCBhbmQgYGB0cnlsYXN0YGAg
aG9va3MgYXJlIHN0aWxsIGludm9rZWQgaW4gTElGTyBvcmRlciB3aXRoaW4KICAgICBlYWNoIGNh
dGVnb3J5LgogCisKKy4uIF9ob29rd3JhcHBlcnM6CisKIFdyYXBwZXJzCiBeXl5eXl5eXgogQSAq
aG9va2ltcGwqIGNhbiBiZSBtYXJrZWQgd2l0aCBhIGBgImhvb2t3cmFwcGVyImBgIG9wdGlvbiB3
aGljaCBpbmRpY2F0ZXMgdGhhdApAQCAtMjA4LDcgKzMzMiw3IEBAIHRoZSBmdW5jdGlvbiB3aWxs
IGJlIGNhbGxlZCB0byAqd3JhcCogKG9yIHN1cnJvdW5kKSBhbGwgb3RoZXIgbm9ybWFsICpob29r
aW1wbCoKIGNhbGxzLiBBICpob29rd3JhcHBlciogY2FuIHRodXMgZXhlY3V0ZSBzb21lIGNvZGUg
YWhlYWQgYW5kIGFmdGVyIHRoZSBleGVjdXRpb24KIG9mIGFsbCBjb3JyZXNwb25kaW5nIG5vbi13
cmFwcHBlciAqaG9va2ltcGxzKi4KIAotTXVjaCBpbiB0aGUgc2FtZSB3YXkgYXMgYSBgQGNvbnRl
eHRsaWIuY29udGV4dG1hbmFnZXJgXywgKmhvb2t3cmFwcGVycyogbXVzdAorTXVjaCBpbiB0aGUg
c2FtZSB3YXkgYXMgYSA6cHk6ZnVuYzpgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIgPHB5dGhv
bjpjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyPmAsICpob29rd3JhcHBlcnMqIG11c3QKIGJlIGlt
cGxlbWVudGVkIGFzIGdlbmVyYXRvciBmdW5jdGlvbiB3aXRoIGEgc2luZ2xlIGBgeWllbGRgYCBp
biBpdHMgYm9keToKIAogCkBAIC0yMjAsOCArMzQ0LDcgQEAgYmUgaW1wbGVtZW50ZWQgYXMgZ2Vu
ZXJhdG9yIGZ1bmN0aW9uIHdpdGggYSBzaW5nbGUgYGB5aWVsZGBgIGluIGl0cyBib2R5OgogICAg
ICAgICBzaG91bGQgcmV0dXJuIGpzb24gZW5jb2RlZCBjb25maWcgb3B0aW9ucy4KICAgICAgICAg
IiIiCiAgICAgICAgIGlmIGNvbmZpZy5kZWJ1ZzoKLSAgICAgICAgICAgIHByaW50KCJQcmUtaG9v
ayBjb25maWcgaXMge30iLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBjb25maWcudG9qc29uKCkp
KQorICAgICAgICAgICAgcHJpbnQoIlByZS1ob29rIGNvbmZpZyBpcyB7fSIuZm9ybWF0KGNvbmZp
Zy50b2pzb24oKSkpCiAKICAgICAgICAgIyBnZXQgaW5pdGlhbCBkZWZhdWx0IGNvbmZpZwogICAg
ICAgICBkZWZhdWx0cyA9IGNvbmZpZy50b2pzb24oKQpAQCAtMjMzLDE3ICszNTYsMTYgQEAgYmUg
aW1wbGVtZW50ZWQgYXMgZ2VuZXJhdG9yIGZ1bmN0aW9uIHdpdGggYSBzaW5nbGUgYGB5aWVsZGBg
IGluIGl0cyBib2R5OgogICAgICAgICAgICAgcHJpbnQoIkpTT04gY29uZmlnIG92ZXJyaWRlIGlz
IHt9Ii5mb3JtYXQoaXRlbSkpCiAKICAgICAgICAgaWYgY29uZmlnLmRlYnVnOgotICAgICAgICAg
ICAgcHJpbnQoIlBvc3QtaG9vayBjb25maWcgaXMge30iLmZvcm1hdCgKLSAgICAgICAgICAgICAg
ICBjb25maWcudG9qc29uKCkpKQorICAgICAgICAgICAgcHJpbnQoIlBvc3QtaG9vayBjb25maWcg
aXMge30iLmZvcm1hdChjb25maWcudG9qc29uKCkpKQogCiAgICAgICAgIGlmIGNvbmZpZy51c2Vf
ZGVmYXVsdHM6CiAgICAgICAgICAgICBvdXRjb21lLmZvcmNlX3Jlc3VsdChkZWZhdWx0cykKIAot
VGhlIGdlbmVyYXRvciBpcyBgc2VudGBfIGEgOnB5OmNsYXNzOmBwbHVnZ3kuX1Jlc3VsdGAgb2Jq
ZWN0IHdoaWNoIGNhbgorVGhlIGdlbmVyYXRvciBpcyA6cHk6bWV0aDpgc2VudCA8cHl0aG9uOmdl
bmVyYXRvci5zZW5kPmAgYSA6cHk6Y2xhc3M6YHBsdWdneS5jYWxsZXJzLl9SZXN1bHRgIG9iamVj
dCB3aGljaCBjYW4KIGJlIGFzc2lnbmVkIGluIHRoZSBgYHlpZWxkYGAgZXhwcmVzc2lvbiBhbmQg
dXNlZCB0byBvdmVycmlkZSBvciBpbnNwZWN0CiB0aGUgZmluYWwgcmVzdWx0KHMpIHJldHVybmVk
IGJhY2sgdG8gdGhlIGNhbGxlciB1c2luZyB0aGUKLTpweTptZXRoOmB+cGx1Z2d5Ll9SZXN1bHQu
Zm9yY2VfcmVzdWx0YCBvcgotOnB5Om1ldGg6YH5wbHVnZ3kuX1Jlc3VsdC5nZXRfcmVzdWx0YCBt
ZXRob2RzLgorOnB5Om1ldGg6YH5wbHVnZ3kuY2FsbGVycy5fUmVzdWx0LmZvcmNlX3Jlc3VsdGAg
b3IKKzpweTptZXRoOmB+cGx1Z2d5LmNhbGxlcnMuX1Jlc3VsdC5nZXRfcmVzdWx0YCBtZXRob2Rz
LgogCiAuLiBub3RlOjoKICAgICBIb29rIHdyYXBwZXJzIGNhbiAqKm5vdCoqIHJldHVybiByZXN1
bHRzIChhcyBwZXIgZ2VuZXJhdG9yIGZ1bmN0aW9uCkBAIC0yNzMsMTUgKzM5NSwxNyBAQCBzaG91
bGQgYmUgYWRkZWQgYmVmb3JlIHJlZ2lzdGVyaW5nIGNvcnJlc3BvbmRpbmcgKmhvb2tpbXBscyo6
CiAgICAgaW1wb3J0IHN5cwogICAgIGZyb20gcGx1Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBI
b29rc3BlY01hcmtlcgogCi0gICAgaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcignbXlwcm9qZWN0
JykKKyAgICBob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJteXByb2plY3QiKQorCiAKICAgICBA
aG9va3NwZWMKICAgICBkZWYgc2V0dXBfcHJvamVjdChjb25maWcsIGFyZ3MpOgotICAgICAgICAi
IiJUaGlzIGhvb2sgaXMgdXNlZCB0byBwcm9jZXNzIHRoZSBpbml0YWwgY29uZmlnIGFuZCBpbnB1
dAorICAgICAgICAiIiJUaGlzIGhvb2sgaXMgdXNlZCB0byBwcm9jZXNzIHRoZSBpbml0aWFsIGNv
bmZpZyBhbmQgaW5wdXQKICAgICAgICAgYXJndW1lbnRzLgogICAgICAgICAiIiIKIAotICAgIHBt
ID0gUGx1Z2luTWFuYWdlcignbXlwcm9qZWN0JykKKworICAgIHBtID0gUGx1Z2luTWFuYWdlcigi
bXlwcm9qZWN0IikKIAogICAgICMgbG9hZCBmcm9tIHRoZSBsb2NhbCBtb2R1bGUncyBuYW1lc3Bh
Y2UKICAgICBwbS5hZGRfaG9va3NwZWNzKHN5cy5tb2R1bGVzW19fbmFtZV9fXSkKQEAgLTMyMyw2
ICs0NDcsNyBAQCBJbiBvdGhlciB3b3JkcyB0aGlzIGlzIG9rOgogICAgIGRlZiBteWhvb2soY29u
ZmlnLCBhcmdzKToKICAgICAgICAgcGFzcwogCisKICAgICBAaG9va2ltcGwKICAgICBkZWYgbXlo
b29rKGFyZ3MpOgogICAgICAgICBwcmludChhcmdzKQpAQCAtMzM2LDEwICs0NjEsMTYgQEAgd2hl
cmVhcyB0aGlzIGlzIG5vdDoKICAgICBkZWYgbXlob29rKGNvbmZpZywgYXJncyk6CiAgICAgICAg
IHBhc3MKIAorCiAgICAgQGhvb2tpbXBsCiAgICAgZGVmIG15aG9vayhjb25maWcsIGFyZ3MsIGV4
dHJhX2FyZyk6CiAgICAgICAgIHByaW50KGFyZ3MpCiAKKy4uIG5vdGU6OgorICAgIFRoZSBvbmUg
ZXhjZXB0aW9uIHRvIHRoaXMgcnVsZSAodGhhdCBhICpob29rc3BlYyogbXVzdCBoYXZlIGFzIGxl
YXN0IGFzCisgICAgbWFueSBhcmd1bWVudHMgYXMgaXRzICpob29raW1wbHMqKSBpcyB0aGUgY29u
dmVudGlvbmFsIDpyZWY6YHNlbGYgPHB5dGhvbjp0dXQtcmVtYXJrcz5gIGFyZzsgdGhpcworICAg
IGlzIGFsd2F5cyBpZ25vcmVkIHdoZW4gKmhvb2tpbXBscyogYXJlIGRlZmluZWQgYXMgOnJlZjpg
bWV0aG9kcyA8cHl0aG9uOnR1dC1tZXRob2RvYmplY3RzPmAuCisKIC4uIF9maXJzdHJlc3VsdDoK
IAogRmlyc3QgcmVzdWx0IG9ubHkKQEAgLTM1NywxNSArNDg4LDE2IEBAIHRoZW4gYGBOb25lYGAu
CiBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIG9wdGltaXppbmcgYSBjYWxsIGxvb3AgZm9yIHdoaWNo
IHlvdSBhcmUgb25seQogaW50ZXJlc3RlZCBpbiBhIHNpbmdsZSBjb3JlICpob29raW1wbCouIEFu
IGV4YW1wbGUgaXMgdGhlCiBgcHl0ZXN0X2NtZGxpbmVfbWFpbmBfIGNlbnRyYWwgcm91dGluZSBv
ZiBgYHB5dGVzdGBgLgorTm90ZSB0aGF0IGFsbCBgYGhvb2t3cmFwcGVyc2BgIGFyZSBzdGlsbCBp
bnZva2VkIHdpdGggdGhlIGZpcnN0IHJlc3VsdC4KIAotQWxzbyBzZWUgdGhlIGBmaXJzdCByZXN1
bHRgXyBzZWN0aW9uIGluIHRoZSBgYHB5dGVzdGBgIGRvY3MuCitBbHNvIHNlZSB0aGUgOnJlZjpg
cHl0ZXN0OmZpcnN0cmVzdWx0YCBzZWN0aW9uIGluIHRoZSBgYHB5dGVzdGBgIGRvY3MuCiAKIC4u
IF9oaXN0b3JpYzoKIAogSGlzdG9yaWMgaG9va3MKIF5eXl5eXl5eXl5eXl5eCiBZb3UgY2FuIG1h
cmsgYSAqaG9va3NwZWMqIGFzIGJlaW5nICpoaXN0b3JpYyogbWVhbmluZyB0aGF0IHRoZSBob29r
Ci1jYW4gYmUgY2FsbGVkIHdpdGggOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5jYWxs
X2hpc3RvcmljKClgICoqYmVmb3JlKioKK2NhbiBiZSBjYWxsZWQgd2l0aCA6cHk6bWV0aDpgfnBs
dWdneS5ob29rcy5fSG9va0NhbGxlci5jYWxsX2hpc3RvcmljKClgICoqYmVmb3JlKioKIGhhdmlu
ZyBiZWVuIHJlZ2lzdGVyZWQ6CiAKIC4uIGNvZGUtYmxvY2s6OiBweXRob24KQEAgLTM3NSw3ICs1
MDcsNyBAQCBoYXZpbmcgYmVlbiByZWdpc3RlcmVkOgogICAgICAgICBwYXNzCiAKIFRoZSBpbXBs
aWNhdGlvbiBpcyB0aGF0IGxhdGUgcmVnaXN0ZXJlZCAqaG9va2ltcGxzKiB3aWxsIGJlIGNhbGxl
ZCBiYWNrCi1pbW1lZGlhdGVseSBhdCByZWdpc3RlciB0aW1lIGFuZCAqKmNhbiBub3QqKiByZXR1
cm4gYSByZXN1bHQgdG8gdGhlIGNhbGxlci4qKgoraW1tZWRpYXRlbHkgYXQgcmVnaXN0ZXIgdGlt
ZSBhbmQgKipjYW4gbm90KiogcmV0dXJuIGEgcmVzdWx0IHRvIHRoZSBjYWxsZXIuCiAKIFRoaXMg
dHVybnMgb3V0IHRvIGJlIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBkZWFsaW5nIHdpdGggbGF6
eSBvcgogZHluYW1pY2FsbHkgbG9hZGVkIHBsdWdpbnMuCkBAIC0zODMsNTcgKzUxNSw1NiBAQCBk
eW5hbWljYWxseSBsb2FkZWQgcGx1Z2lucy4KIEZvciBtb3JlIGluZm8gc2VlIDpyZWY6YGNhbGxf
aGlzdG9yaWNgLgogCiAKLS4uIGxpbmtzCi0uLiBfQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXI6
Ci0gICAgaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy42L2xpYnJhcnkvY29udGV4dGxpYi5odG1s
I2NvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKLS4uIF9weXRlc3RfY21kbGluZV9tYWluOgotICAg
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9ibG9iL21hc3Rlci9fcHl0ZXN0
L2hvb2tzcGVjLnB5I0w4MAotLi4gX2hvb2tzcGVjIG1vZHVsZToKLSAgICBodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvYmxvYi9tYXN0ZXIvX3B5dGVzdC9ob29rc3BlYy5weQot
Li4gX1dyaXRpbmcgaG9vayBmdW5jdGlvbnM6Ci0gICAgaHR0cDovL2RvYy5weXRlc3Qub3JnL2Vu
L2xhdGVzdC93cml0aW5nX3BsdWdpbnMuaHRtbCN3cml0aW5nLWhvb2stZnVuY3Rpb25zCi0uLiBf
aG9va3dyYXBwZXI6Ci0gICAgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5n
X3BsdWdpbnMuaHRtbCNob29rd3JhcHBlci1leGVjdXRpbmctYXJvdW5kLW90aGVyLWhvb2tzCi0u
LiBfaG9vayBmdW5jdGlvbiBvcmRlcmluZzoKLSAgICBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L3dyaXRpbmdfcGx1Z2lucy5odG1sI2hvb2stZnVuY3Rpb24tb3JkZXJpbmctY2FsbC1l
eGFtcGxlCi0uLiBfZmlyc3QgcmVzdWx0OgotICAgIGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3Qvd3JpdGluZ19wbHVnaW5zLmh0bWwjZmlyc3RyZXN1bHQtc3RvcC1hdC1maXJzdC1ub24t
bm9uZS1yZXN1bHQKLS4uIF9zZW50OgotICAgIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvcmVm
ZXJlbmNlL2V4cHJlc3Npb25zLmh0bWwjZ2VuZXJhdG9yLnNlbmQKK1dhcm5pbmdzIG9uIGhvb2sg
aW1wbGVtZW50YXRpb24KK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworQXMgcHJv
amVjdHMgZXZvbHZlIG5ldyBob29rcyBtYXkgYmUgaW50cm9kdWNlZCBhbmQvb3IgZGVwcmVjYXRl
ZC4KKworaWYgYSBob29rc3BlYyBzcGVjaWZpZXMgYSBgYHdhcm5fb25faW1wbGBgLCBwbHVnZ3kg
d2lsbCB0cmlnZ2VyIGl0IGZvciBhbnkgcGx1Z2luIGltcGxlbWVudGluZyB0aGUgaG9vay4KKwor
CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAaG9va3NwZWMoCisgICAgICAgIHdhcm5f
b25faW1wbD1EZXByZWNhdGlvbldhcm5pbmcoIm9sZGhvb2sgaXMgZGVwcmVjYXRlZCBhbmQgd2ls
bCBiZSByZW1vdmVkIHNvb24iKQorICAgICkKKyAgICBkZWYgb2xkaG9vaygpOgorICAgICAgICBw
YXNzCiAKIC4uIF9tYW5hZ2U6CiAKLVRoZSBQbHVnaW4gUmVnaXN0cnkKK1RoZSBQbHVnaW4gcmVn
aXN0cnkKICoqKioqKioqKioqKioqKioqKioKIGBgcGx1Z2d5YGAgbWFuYWdlcyBwbHVnaW5zIHVz
aW5nIGluc3RhbmNlcyBvZiB0aGUKIDpweTpjbGFzczpgcGx1Z2d5LlBsdWdpbk1hbmFnZXJgLgog
Ci1BIGBgUGx1Z2luTWFuYWdlcmBgIGlzIGluc3RhbnRpYXRlZCB3aXRoIGEgc2luZ2xlCitBIDpw
eTpjbGFzczpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyYCBpcyBpbnN0YW50aWF0ZWQgd2l0aCBhIHNp
bmdsZQogYGBzdHJgYCBhcmd1bWVudCwgdGhlIGBgcHJvamVjdF9uYW1lYGA6CiAKIC4uIGNvZGUt
YmxvY2s6OiBweXRob24KIAogICAgIGltcG9ydCBwbHVnZ3kKLSAgICBwbSA9IHBsdWdneS5QbHVn
aW5NYW5hZ2VyKCdteV9wcm9qZWN0X25hbWUnKQorCisgICAgcG0gPSBwbHVnZ3kuUGx1Z2luTWFu
YWdlcigibXlfcHJvamVjdF9uYW1lIikKIAogCi1UaGUgYGBwcm9qZWN0X25hbWVgYCB2YWx1ZSBp
cyB1c2VkIHdoZW4gYSBgYFBsdWdpbk1hbmFnZXJgYCBzY2FucyBmb3IgKmhvb2sqCi1mdW5jdGlv
bnMgOnJlZjpgZGVmaW5lZCBvbiBhIHBsdWdpbiA8ZGVmaW5lPmAuCi1UaGlzIGFsbG93cyBmb3Ig
bXVsdGlwbGUKLXBsdWdpbiBtYW5hZ2VycyBmcm9tIG11bHRpcGxlIHByb2plY3RzIHRvIGRlZmlu
ZSBob29rcyBhbG9uZ3NpZGUgZWFjaCBvdGhlci4KK1RoZSBgYHByb2plY3RfbmFtZWBgIHZhbHVl
IGlzIHVzZWQgd2hlbiBhIDpweTpjbGFzczpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyYAorc2NhbnMg
Zm9yICpob29rKiBmdW5jdGlvbnMgOnJlZjpgZGVmaW5lZCBvbiBhIHBsdWdpbiA8ZGVmaW5lPmAu
CitUaGlzIGFsbG93cyBmb3IgbXVsdGlwbGUgcGx1Z2luIG1hbmFnZXJzIGZyb20gbXVsdGlwbGUg
cHJvamVjdHMKK3RvIGRlZmluZSBob29rcyBhbG9uZ3NpZGUgZWFjaCBvdGhlci4KIAogCiBSZWdp
c3RyYXRpb24KIC0tLS0tLS0tLS0tLQotRWFjaCBgYFBsdWdpbk1hbmFnZXJgYCBtYWludGFpbnMg
YSAqcGx1Z2luKiByZWdpc3RyeSB3aGVyZSBlYWNoICpwbHVnaW4qCitFYWNoIDpweTpjbGFzczpg
fnBsdWdneS5QbHVnaW5NYW5hZ2VyYCBtYWludGFpbnMgYSAqcGx1Z2luKiByZWdpc3RyeSB3aGVy
ZSBlYWNoICpwbHVnaW4qCiBjb250YWlucyBhIHNldCBvZiAqaG9va2ltcGwqIGRlZmluaXRpb25z
LiBMb2FkaW5nICpob29raW1wbCogYW5kICpob29rc3BlYyoKIGRlZmluaXRpb25zIHRvIHBvcHVs
YXRlIHRoZSByZWdpc3RyeSBpcyBkZXNjcmliZWQgaW4gZGV0YWlsIGluIHRoZSBzZWN0aW9uIG9u
CiA6cmVmOmBkZWZpbmVgLgogCiBJbiBzdW1tYXJ5LCB5b3UgcGFzcyBhIHBsdWdpbiBuYW1lc3Bh
Y2Ugb2JqZWN0IHRvIHRoZQogOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5yZWdpc3Rl
cigpYCBhbmQKLTpweTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXIuYWRkX2hvb2tzcGVjKClg
IG1ldGhvZHMgdG8gY29sbGVjdAotaG9vayAqaW1wbGVtZW50YXRpb25zKiBhbmQgKnNwZWNmaWNh
dGlvbnMqIGZyb20gKnBsdWdpbiogbmFtZXNwYWNlcyByZXNwZWN0aXZlbHkuCis6cHk6bWV0aDpg
fnBsdWdneS5QbHVnaW5NYW5hZ2VyLmFkZF9ob29rc3BlY3MoKWAgbWV0aG9kcyB0byBjb2xsZWN0
Citob29rICppbXBsZW1lbnRhdGlvbnMqIGFuZCAqc3BlY2lmaWNhdGlvbnMqIGZyb20gKnBsdWdp
biogbmFtZXNwYWNlcyByZXNwZWN0aXZlbHkuCiAKIFlvdSBjYW4gdW5yZWdpc3RlciBhbnkgKnBs
dWdpbioncyBob29rcyB1c2luZwogOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci51bnJl
Z2lzdGVyKClgIGFuZCBjaGVjayBpZiBhIHBsdWdpbiBpcwpAQCAtNDQyLDExICs1NzMsMTIgQEAg
cmVnaXN0ZXJlZCBieSBwYXNzaW5nIGl0cyBuYW1lIHRvIHRoZQogCiBMb2FkaW5nIGBgc2V0dXB0
b29sc2BgIGVudHJ5IHBvaW50cwogXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4K
LVlvdSBjYW4gYXV0b21hdGljYWxseSBsb2FkIHBsdWdpbnMgcmVnaXN0ZXJlZCB0aHJvdWdoIGBz
ZXR1cHRvb2xzIGVudHJ5IHBvaW50c2BfCitZb3UgY2FuIGF1dG9tYXRpY2FsbHkgbG9hZCBwbHVn
aW5zIHJlZ2lzdGVyZWQgdGhyb3VnaAorOnJlZjpgc2V0dXB0b29scyBlbnRyeSBwb2ludHMgPHNl
dHVwdG9vbHM6ZW50cnkgcG9pbnRzPmAKIHdpdGggdGhlIDpweTptZXRoOmB+cGx1Z2d5LlBsdWdp
bk1hbmFnZXIubG9hZF9zZXR1cHRvb2xzX2VudHJ5cG9pbnRzKClgCiBtZXRob2QuCiAKLUFuIGV4
YW1wbGUgdXNlIG9mIHRoaXMgaXMgdGhlIGBweXRlc3QgZW50cnkgcG9pbnRgXy4KK0FuIGV4YW1w
bGUgdXNlIG9mIHRoaXMgaXMgdGhlIDpyZWY6YHB5dGVzdCBlbnRyeSBwb2ludCA8cHl0ZXN0OnBp
cC1pbnN0YWxsYWJsZSBwbHVnaW5zPmAuCiAKIAogQmxvY2tpbmcKQEAgLTQ1OCw3ICs1OTAsNyBA
QCBZb3UgY2FuIGJsb2NrIGFueSBwbHVnaW4gZnJvbSBiZWluZyByZWdpc3RlcmVkIHVzaW5nCiAK
IEluc3BlY3Rpb24KIC0tLS0tLS0tLS0KLVlvdSBjYW4gdXNlIGEgdmFyaWV0eSBvZiBtZXRob2Rz
IHRvIGluc3BlY3QgdGhlIGJvdGggdGhlIHJlZ2lzdHJ5CitZb3UgY2FuIHVzZSBhIHZhcmlldHkg
b2YgbWV0aG9kcyB0byBpbnNwZWN0IGJvdGggdGhlIHJlZ2lzdHJ5CiBhbmQgcGFydGljdWxhciBw
bHVnaW5zIGluIGl0OgogCiAtIDpweTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXIubGlzdF9u
YW1lX3BsdWdpbigpYCAtCkBAIC00NzcsMjggKzYwOSwyMiBAQCBZb3UgY2FuIHJldHJpZXZlIHRo
ZSAqb3B0aW9ucyogYXBwbGllZCB0byBhIHBhcnRpY3VsYXIKIDpweTptZXRoOmB+cGx1Z2d5LlBs
dWdpbk1hbmFnZXIucGFyc2VfaG9va3NwZWNfb3B0cygpYCBhbmQKIDpweTptZXRoOmB+cGx1Z2d5
LlBsdWdpbk1hbmFnZXIucGFyc2VfaG9va2ltcGxfb3B0cygpYCByZXNwZWN0aXZlbHkuCiAKLS4u
IGxpbmtzCi0uLiBfc2V0dXB0b29scyBlbnRyeSBwb2ludHM6Ci0gICAgaHR0cDovL3NldHVwdG9v
bHMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3NldHVwdG9vbHMuaHRtbCNkeW5hbWljLWRpc2Nv
dmVyeS1vZi1zZXJ2aWNlcy1hbmQtcGx1Z2lucwotLi4gX3B5dGVzdCBlbnRyeSBwb2ludDoKLSAg
ICBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dyaXRpbmdfcGx1Z2lucy5odG1sI3Nl
dHVwdG9vbHMtZW50cnktcG9pbnRzCi0KIAogLi4gX2NhbGxpbmc6CiAKLUNhbGxpbmcgSG9va3MK
K0NhbGxpbmcgaG9va3MKICoqKioqKioqKioqKioKIFRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2Yg
YGBwbHVnZ3lgYCBlbmFibGVzIGFuIGV4dGVuc2lvbiBwcm92aWRlcgogdG8gb3ZlcnJpZGUgZnVu
Y3Rpb24gY2FsbHMgbWFkZSBhdCBjZXJ0YWluIHBvaW50cyB0aHJvdWdob3V0IGEgcHJvZ3JhbS4K
IAogQSBwYXJ0aWN1bGFyICpob29rKiBpcyBpbnZva2VkIGJ5IGNhbGxpbmcgYW4gaW5zdGFuY2Ug
b2YKLWEgOnB5OmNsYXNzOmBwbHVnZ3kuX0hvb2tDYWxsZXJgIHdoaWNoIGluIHR1cm4gKmxvb3Bz
KiB0aHJvdWdoIHRoZQorYSA6cHk6Y2xhc3M6YHBsdWdneS5ob29rcy5fSG9va0NhbGxlcmAgd2hp
Y2ggaW4gdHVybiAqbG9vcHMqIHRocm91Z2ggdGhlCiBgYDE6TmBgIHJlZ2lzdGVyZWQgKmhvb2tp
bXBscyogYW5kIGNhbGxzIHRoZW0gaW4gc2VxdWVuY2UuCiAKLUV2ZXJ5IDpweTpjbGFzczpgcGx1
Z2d5LlBsdWdpbk1hbmFnZXJgIGhhcyBhIGBgaG9va2BgIGF0dHJpYnV0ZQotd2hpY2ggaXMgYW4g
aW5zdGFuY2Ugb2YgdGhpcyA6cHk6Y2xhc3M6YHBsdWdneS5fSG9va1JlbGF5YC4KLVRoZSBgYF9I
b29rUmVsYXlgYCBpdHNlbGYgY29udGFpbnMgcmVmZXJlbmNlcyAoYnkgaG9vayBuYW1lKSB0byBl
YWNoCi1yZWdpc3RlcmVkICpob29raW1wbConcyBgYF9Ib29rQ2FsbGVyYGAgaW5zdGFuY2UuCitF
dmVyeSA6cHk6Y2xhc3M6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlcmAgaGFzIGEgYGBob29rYGAgYXR0
cmlidXRlCit3aGljaCBpcyBhbiBpbnN0YW5jZSBvZiB0aGlzIDpweTpjbGFzczpgcGx1Z2d5Lmhv
b2tzLl9Ib29rUmVsYXlgLgorVGhlIDpweTpjbGFzczpgfnBsdWdneS5ob29rcy5fSG9va1JlbGF5
YCBpdHNlbGYgY29udGFpbnMgcmVmZXJlbmNlcworKGJ5IGhvb2sgbmFtZSkgdG8gZWFjaCByZWdp
c3RlcmVkICpob29raW1wbConcyA6cHk6Y2xhc3M6YH5wbHVnZ3kuaG9va3MuX0hvb2tDYWxsZXJg
IGluc3RhbmNlLgogCiBNb3JlIHByYWN0aWNhbGx5IHlvdSBjYWxsIGEgKmhvb2sqIGxpa2Ugc286
CiAKQEAgLTUxNyw3ICs2NDMsNyBAQCBNb3JlIHByYWN0aWNhbGx5IHlvdSBjYWxsIGEgKmhvb2sq
IGxpa2Ugc286CiAgICAgIyB3ZSBpbnZva2UgdGhlIF9Ib29rQ2FsbGVyIGFuZCB0aHVzIGFsbCB1
bmRlcmx5aW5nIGhvb2tpbXBscwogICAgIHJlc3VsdF9saXN0ID0gcG0uaG9vay5teWhvb2soY29u
ZmlnPWNvbmZpZywgYXJncz1zeXMuYXJndikKIAotTm90ZSB0aGF0IHlvdSAqKm11c3QqKiBjYWxs
IGhvb2tzIHVzaW5nIGtleXdvcmQgYGFyZ3VtZW50c2BfIHN5bnRheCEKK05vdGUgdGhhdCB5b3Ug
KiptdXN0KiogY2FsbCBob29rcyB1c2luZyBrZXl3b3JkIDpzdGQ6dGVybTpgcHl0aG9uOmFyZ3Vt
ZW50YCBzeW50YXghCiAKIEhvb2sgaW1wbGVtZW50YXRpb25zIGFyZSBjYWxsZWQgaW4gTElGTyBy
ZWdpc3RlcmVkIG9yZGVyOiAqdGhlIGxhc3QKIHJlZ2lzdGVyZWQgcGx1Z2luJ3MgaG9va3MgYXJl
IGNhbGxlZCBmaXJzdCouIEFzIGFuIGV4YW1wbGUsIHRoZSBiZWxvdwpAQCAtNTI3LDI3ICs2NTMs
MzQgQEAgYXNzZXJ0aW9uIHNob3VsZCBub3QgZXJyb3I6CiAKICAgICBmcm9tIHBsdWdneSBpbXBv
cnQgUGx1Z2luTWFuYWdlciwgSG9va2ltcGxNYXJrZXIKIAotICAgIGhvb2tpbXBsID0gSG9va2lt
cGxNYXJrZXIoJ215cHJvamVjdCcpCisgICAgaG9va2ltcGwgPSBIb29raW1wbE1hcmtlcigibXlw
cm9qZWN0IikKKwogCiAgICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgorICAgICAgICBAaG9va2lt
cGwKICAgICAgICAgZGVmIG15aG9vayhzZWxmLCBhcmdzKToKICAgICAgICAgICAgICIiIkRlZmF1
bHQgaW1wbGVtZW50YXRpb24uCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIHJldHVybiAx
CiAKKwogICAgIGNsYXNzIFBsdWdpbjIob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCiAgICAg
ICAgIGRlZiBteWhvb2soc2VsZiwgYXJncyk6CiAgICAgICAgICAgICAiIiJEZWZhdWx0IGltcGxl
bWVudGF0aW9uLgogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICByZXR1cm4gMgogCisKICAg
ICBjbGFzcyBQbHVnaW4zKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAogICAgICAgICBkZWYg
bXlob29rKHNlbGYsIGFyZ3MpOgogICAgICAgICAgICAgIiIiRGVmYXVsdCBpbXBsZW1lbnRhdGlv
bi4KICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgcmV0dXJuIDMKIAotICAgIHBtID0gUGx1
Z2luTWFuYWdlcignbXlwcm9qZWN0JykKKworICAgIHBtID0gUGx1Z2luTWFuYWdlcigibXlwcm9q
ZWN0IikKICAgICBwbS5yZWdpc3RlcihQbHVnaW4xKCkpCiAgICAgcG0ucmVnaXN0ZXIoUGx1Z2lu
MigpKQogICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjMoKSkKQEAgLTU2MiwxMSArNjk1LDY3IEBAIHdo
aWNoIHJldHVybnMgYSB2YWx1ZSBvdGhlciB0aGVuIGEgYGBOb25lYGAgcmVzdWx0IHdpbGwgaGF2
ZSB0aGF0IHJlc3VsdAogYXBwZW5kZWQgdG8gYSA6cHk6Y2xhc3M6YGxpc3RgIHdoaWNoIGlzIHJl
dHVybmVkIGJ5IHRoZSBjYWxsLgogCiBUaGUgb25seSBleGNlcHRpb24gdG8gdGhpcyBiZWhhdmlv
dXIgaXMgaWYgdGhlIGhvb2sgaGFzIGJlZW4gbWFya2VkIHRvIHJldHVybgotaXRzIDpyZWY6YGZp
cnN0cmVzdWx0YCBpbiB3aGljaCBjYXNlIG9ubHkgdGhlIGZpcnN0IHNpbmdsZSB2YWx1ZSAod2hp
Y2ggaXMgbm90Ci1gYE5vbmVgYCkgd2lsbCBiZSByZXR1cm5lZC4KK2l0cyA6cmVmOmBmaXJzdCBy
ZXN1bHQgb25seSA8Zmlyc3RyZXN1bHQ+YCBpbiB3aGljaCBjYXNlIG9ubHkgdGhlIGZpcnN0Citz
aW5nbGUgdmFsdWUgKHdoaWNoIGlzIG5vdCBgYE5vbmVgYCkgd2lsbCBiZSByZXR1cm5lZC4KIAog
Li4gX2NhbGxfaGlzdG9yaWM6CiAKK0V4Y2VwdGlvbiBoYW5kbGluZworLS0tLS0tLS0tLS0tLS0t
LS0tCitJZiBhbnkgKmhvb2tpbXBsKiBlcnJvcnMgd2l0aCBhbiBleGNlcHRpb24gbm8gZnVydGhl
ciBjYWxsYmFja3MKK2FyZSBpbnZva2VkIGFuZCB0aGUgZXhjZXB0aW9uIGlzIHBhY2thZ2VkIHVw
IGFuZCBkZWxpdmVyZWQgdG8KK2FueSA6cmVmOmB3cmFwcGVycyA8aG9va3dyYXBwZXJzPmAgYmVm
b3JlIGJlaW5nIHJlLXJhaXNlZCBhdCB0aGUKK2hvb2sgaW52b2NhdGlvbiBwb2ludDoKKworLi4g
Y29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1hbmFn
ZXIsIEhvb2tpbXBsTWFya2VyCisKKyAgICBob29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJteXBy
b2plY3QiKQorCisKKyAgICBjbGFzcyBQbHVnaW4xKG9iamVjdCk6CisgICAgICAgIEBob29raW1w
bAorICAgICAgICBkZWYgbXlob29rKHNlbGYsIGFyZ3MpOgorICAgICAgICAgICAgcmV0dXJuIDEK
KworCisgICAgY2xhc3MgUGx1Z2luMihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAg
ICAgZGVmIG15aG9vayhzZWxmLCBhcmdzKToKKyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJv
cgorCisKKyAgICBjbGFzcyBQbHVnaW4zKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAg
ICAgICBkZWYgbXlob29rKHNlbGYsIGFyZ3MpOgorICAgICAgICAgICAgcmV0dXJuIDMKKworCisg
ICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIG15aG9vayhzZWxmLCBhcmdz
KToKKyAgICAgICAgb3V0Y29tZSA9IHlpZWxkCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
b3V0Y29tZS5nZXRfcmVzdWx0KCkKKyAgICAgICAgZXhjZXB0IFJ1bnRpbWVFcnJvcjoKKyAgICAg
ICAgICAgICMgbG9nIHRoZSBlcnJvciBkZXRhaWxzCisgICAgICAgICAgICBwcmludChvdXRjb21l
LmV4Y2luZm8pCisKKworICAgIHBtID0gUGx1Z2luTWFuYWdlcigibXlwcm9qZWN0IikKKworICAg
ICMgcmVnaXN0ZXIgcGx1Z2lucworICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjEoKSkKKyAgICBwbS5y
ZWdpc3RlcihQbHVnaW4yKCkpCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMygpKQorCisgICAgIyBy
ZWdpc3RlciB3cmFwcGVyCisgICAgcG0ucmVnaXN0ZXIoc3lzLm1vZHVsZXNbX19uYW1lX19dKQor
CisgICAgIyB0aGlzIHJhaXNlcyBSdW50aW1lRXJyb3IgZHVlIHRvIFBsdWdpbjIKKyAgICBwbS5o
b29rLm15aG9vayhhcmdzPSgpKQorCiBIaXN0b3JpYyBjYWxscwogLS0tLS0tLS0tLS0tLS0KIEEg
Kmhpc3RvcmljIGNhbGwqIGFsbG93cyBmb3IgYWxsIG5ld2x5IHJlZ2lzdGVyZWQgZnVuY3Rpb25z
IHRvIHJlY2VpdmUgYWxsIGhvb2sKQEAgLTU3NSw0NiArNzY0LDU2IEBAIG9ubHkgdXNlZnVsIGlm
IHlvdSBleHBlY3QgdGhhdCBzb21lICpob29raW1wbHMqIG1heSBiZSByZWdpc3RlcmVkICoqYWZ0
ZXIqKiB0aGUKIGhvb2sgaXMgaW5pdGlhbGx5IGludm9rZWQuCiAKIEhpc3RvcmljIGhvb2tzIG11
c3QgYmUgOnJlZjpgc3BlY2lhbGx5IG1hcmtlZCA8aGlzdG9yaWM+YCBhbmQgY2FsbGVkCi11c2lu
ZyB0aGUgOnB5Om1ldGg6YHBsdWdneS5fSG9va0NhbGxlci5jYWxsX2hpc3RvcmljKClgIG1ldGhv
ZDoKK3VzaW5nIHRoZSA6cHk6bWV0aDpgfnBsdWdneS5ob29rcy5fSG9va0NhbGxlci5jYWxsX2hp
c3RvcmljKClgIG1ldGhvZDoKIAogLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCisgICAgZGVmIGNh
bGxiYWNrKHJlc3VsdCk6CisgICAgICAgIHByaW50KCJoaXN0b3JpYyBjYWxsIHJlc3VsdCBpcyB7
cmVzdWx0fSIuZm9ybWF0KHJlc3VsdD1yZXN1bHQpKQorCisKICAgICAjIGNhbGwgd2l0aCBoaXN0
b3J5OyBubyByZXN1bHRzIHJldHVybmVkCi0gICAgcG0uaG9vay5teWhvb2suY2FsbF9oaXN0b3Jp
Yyhjb25maWc9Y29uZmlnLCBhcmdzPXN5cy5hcmd2KQorICAgIHBtLmhvb2subXlob29rLmNhbGxf
aGlzdG9yaWMoCisgICAgICAgIGt3YXJncz17ImNvbmZpZyI6IGNvbmZpZywgImFyZ3MiOiBzeXMu
YXJndn0sIHJlc3VsdF9jYWxsYmFjaz1jYWxsYmFjaworICAgICkKIAogICAgICMgLi4uIG1vcmUg
b2Ygb3VyIHByb2dyYW0gLi4uCiAKICAgICAjIGxhdGUgbG9hZGluZyBvZiBzb21lIHBsdWdpbgog
ICAgIGltcG9ydCBteWxhdGVwbHVnaW4KIAotICAgICMgaGlzdG9yaWMgY2FsbCBiYWNrIGlzIGRv
bmUgaGVyZQorICAgICMgaGlzdG9yaWMgY2FsbGJhY2sgaXMgaW52b2tlZCBoZXJlCiAgICAgcG0u
cmVnaXN0ZXIobXlsYXRlcGx1Z2luKQogCi1Ob3RlIHRoYXQgaWYgeW91IGBgY2FsbF9oaXN0b3Jp
YygpYGAgdGhlIGBgX0hvb2tDYWxsZXJgYCAoYW5kIHRodXMgeW91cgotY2FsbGluZyBjb2RlKSBj
YW4gbm90IHJlY2VpdmUgcmVzdWx0cyBiYWNrIGZyb20gdGhlIHVuZGVybHlpbmcgKmhvb2tpbXBs
KgotZnVuY3Rpb25zLgorTm90ZSB0aGF0IGlmIHlvdSA6cHk6bWV0aDpgfnBsdWdneS5ob29rcy5f
SG9va0NhbGxlci5jYWxsX2hpc3RvcmljKClgCit0aGUgOnB5OmNsYXNzOmB+cGx1Z2d5Lmhvb2tz
Ll9Ib29rQ2FsbGVyYCAoYW5kIHRodXMgeW91ciBjYWxsaW5nIGNvZGUpCitjYW4gbm90IHJlY2Vp
dmUgcmVzdWx0cyBiYWNrIGZyb20gdGhlIHVuZGVybHlpbmcgKmhvb2tpbXBsKiBmdW5jdGlvbnMu
CitJbnN0ZWFkIHlvdSBjYW4gcHJvdmlkZSBhICpjYWxsYmFjayogZm9yIHByb2Nlc3NpbmcgcmVz
dWx0cyAobGlrZSB0aGUKK2BgY2FsbGJhY2tgYCBmdW5jdGlvbiBhYm92ZSkgd2hpY2ggd2lsbCBi
ZSBjYWxsZWQgYXMgZWFjaCBuZXcgcGx1Z2luCitpcyByZWdpc3RlcmVkLgorCisuLiBub3RlOjoK
KyAgICAqaGlzdG9yaWMqIGNhbGxzIGFyZSBpbmNvbXBhdGlibGUgd2l0aCA6cmVmOmBmaXJzdHJl
c3VsdGAgbWFya2VkCisgICAgaG9va3Mgc2luY2Ugb25seSB0aGUgZmlyc3QgcmVnaXN0ZXJlZCBw
bHVnaW4ncyBob29rKHMpIHdvdWxkCisgICAgZXZlciBiZSBjYWxsZWQuCiAKIENhbGxpbmcgd2l0
aCBleHRyYXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0KIFlvdSBjYW4gY2FsbCBhIGhvb2sgd2l0aCB0
ZW1wb3JhcmlseSBwYXJ0aWNpcGF0aW5nICppbXBsZW1lbnRhdGlvbiogZnVuY3Rpb25zCiAodGhh
dCBhcmVuJ3QgaW4gdGhlIHJlZ2lzdHJ5KSB1c2luZyB0aGUKLTpweTptZXRoOmBwbHVnZ3kuX0hv
b2tDYWxsZXIuY2FsbF9leHRyYSgpYCBtZXRob2QuCis6cHk6bWV0aDpgcGx1Z2d5Lmhvb2tzLl9I
b29rQ2FsbGVyLmNhbGxfZXh0cmEoKWAgbWV0aG9kLgogCiAKIENhbGxpbmcgd2l0aCBhIHN1YnNl
dCBvZiByZWdpc3RlcmVkIHBsdWdpbnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIFlvdSBjYW4gbWFrZSBhIGNhbGwgdXNpbmcgYSBzdWJzZXQgb2YgcGx1Z2lu
cyBieSBhc2tpbmcgdGhlCi1gYFBsdWdpbk1hbmFnZXJgYCBmaXJzdCBmb3IgYSBgYF9Ib29rQ2Fs
bGVyYGAgd2l0aCB0aG9zZSBwbHVnaW5zIHJlbW92ZWQKKzpweTpjbGFzczpgfnBsdWdneS5QbHVn
aW5NYW5hZ2VyYCBmaXJzdCBmb3IgYQorOnB5OmNsYXNzOmB+cGx1Z2d5Lmhvb2tzLl9Ib29rQ2Fs
bGVyYCB3aXRoIHRob3NlIHBsdWdpbnMgcmVtb3ZlZAogdXNpbmcgdGhlIDpweTptZXRoOmBwbHVn
Z3kuUGx1Z2luTWFuYWdlci5zdWJzZXRfaG9va19jYWxsZXIoKWAgbWV0aG9kLgogCi1Zb3UgdGhl
biBjYW4gdXNlIHRoYXQgYGBfSG9va0NhbGxlcmBgIHRvIG1ha2Ugbm9ybWFsLCBgYGNhbGxfaGlz
dG9yaWMoKWBgLAotb3IgYGBjYWxsX2V4dHJhKClgYCBjYWxscyBhcyBuZWNlc3NhcnkuCi0KLQot
Li4gbGlua3MKLS4uIF9hcmd1bWVudHM6Ci0gICAgaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9n
bG9zc2FyeS5odG1sI3Rlcm0tYXJndW1lbnQKLQorWW91IHRoZW4gY2FuIHVzZSB0aGF0IDpweTpj
bGFzczpgX0hvb2tDYWxsZXIgPHBsdWdneS5ob29rcy5fSG9va0NhbGxlcj5gCit0byBtYWtlIG5v
cm1hbCwgOnB5Om1ldGg6YH5wbHVnZ3kuaG9va3MuX0hvb2tDYWxsZXIuY2FsbF9oaXN0b3JpY2As
IG9yCis6cHk6bWV0aDpgfnBsdWdneS5ob29rcy5fSG9va0NhbGxlci5jYWxsX2V4dHJhYCBjYWxs
cyBhcyBuZWNlc3NhcnkuCiAKIEJ1aWx0LWluIHRyYWNpbmcKICoqKioqKioqKioqKioqKioKQEAg
LTYzMCw3ICs4MjksNyBAQCB1bmRvIGZ1bmN0aW9uIHRvIGRpc2FibGUgdGhlIGJlaGF2aW91ci4K
IAogLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCi0gICAgcG0gPSBQbHVnaW5NYW5hZ2VyKCdteXBy
b2plY3QnKQorICAgIHBtID0gUGx1Z2luTWFuYWdlcigibXlwcm9qZWN0IikKICAgICAjIG1hZ2lj
IGxpbmUgdG8gc2V0IGEgd3JpdGVyIGZ1bmN0aW9uCiAgICAgcG0udHJhY2Uucm9vdC5zZXR3cml0
ZXIocHJpbnQpCiAgICAgdW5kbyA9IHBtLmVuYWJsZV90cmFjaW5nKCkKQEAgLTY0OSw2ICs4NDgs
NyBAQCBUaGUgZXhwZWN0ZWQgc2lnbmF0dXJlIGFuZCBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBm
b3IgdGhlc2UgZnVuY3Rpb25zIGlzOgogICAgIGRlZiBiZWZvcmUoaG9va19uYW1lLCBtZXRob2Rz
LCBrd2FyZ3MpOgogICAgICAgICBwYXNzCiAKKwogICAgIGRlZiBhZnRlcihvdXRjb21lLCBob29r
X25hbWUsIG1ldGhvZHMsIGt3YXJncyk6CiAgICAgICAgIHBhc3MKIApAQCAtNjYzLDYgKzg2Mywx
OSBAQCBwcm9qZWN0cyByZWx5IG9uIGl0LiBPdXIgR2l0aHViIGludGVncmF0ZWQgQ0kgcHJvY2Vz
cyBydW5zIHRoZSBmdWxsCiBgdG94IHRlc3Qgc3VpdGVgXyBvbiBlYWNoIGNvbW1pdCBzbyBiZSBz
dXJlIHlvdXIgY2hhbmdlcyBjYW4gcnVuIG9uCiBhbGwgcmVxdWlyZWQgYFB5dGhvbiBpbnRlcnBy
ZXRlcnNgXyBhbmQgYGBweXRlc3RgYCB2ZXJzaW9ucy4KIAorRm9yIGRldmVsb3BtZW50LCB3ZSBz
dWdnZXN0IHRvIGNyZWF0ZSBhIHZpcnR1YWwgZW52aXJvbm1lbnQgYW5kIGluc3RhbGwgYGBwbHVn
Z3lgYCBpbgorZWRpdGFibGUgbW9kZSBhbmQgYGBkZXZgYCBkZXBlbmRlbmNpZXM6OgorCisgICAg
JCBweXRob24zIC1tIHZlbnYgLmVudgorICAgICQgc291cmNlIC5lbnYvYmluL2FjdGl2YXRlCisg
ICAgJCBwaXAgaW5zdGFsbCAtZSAuW2Rldl0KKworVG8gbWFrZSBzdXJlIHlvdSBmb2xsb3cgdGhl
IGNvZGUgc3R5bGUgdXNlZCBpbiB0aGUgcHJvamVjdCwgaW5zdGFsbCBwcmUtY29tbWl0XyB3aGlj
aAord2lsbCBydW4gc3R5bGUgY2hlY2tzIGJlZm9yZSBlYWNoIGNvbW1pdDo6CisKKyAgICAkIHBy
ZS1jb21taXQgaW5zdGFsbAorCisKIFJlbGVhc2UgUG9saWN5CiAqKioqKioqKioqKioqKgogUGx1
Z2d5IHVzZXMgYFNlbWFudGljIFZlcnNpb25pbmdgXy4gQnJlYWtpbmcgY2hhbmdlcyBhcmUgb25s
eSBmb3Jlc2VlbiBmb3IKQEAgLTY3MSwzMSArODg0LDQ0IEBAIGluIHlvdXIgcHJvamVjdCB5b3Ug
c2hvdWxkIHRodXMgdXNlIGEgZGVwZW5kZW5jeSByZXN0cmljdGlvbiBsaWtlCiBgYCJwbHVnZ3k+
PTAuMS4wLDwxLjAiYGAgdG8gYXZvaWQgc3VycHJpc2VzLgogCiAKK1RhYmxlIG9mIGNvbnRlbnRz
CisqKioqKioqKioqKioqKioqKgorCisuLiB0b2N0cmVlOjoKKyAgICA6bWF4ZGVwdGg6IDIKKwor
ICAgIGFwaV9yZWZlcmVuY2UKKyAgICBjaGFuZ2Vsb2cKKworCisKIC4uIGh5cGVybGlua3MKLS4u
IF9weXRlc3Q6Ci0gICAgaHR0cDovL3B5dGVzdC5vcmcKKy4uIF9weXRlc3RfY21kbGluZV9tYWlu
OgorICAgIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9fbW9kdWxlcy9fcHl0ZXN0
L2hvb2tzcGVjLmh0bWwjcHl0ZXN0X2NtZGxpbmVfbWFpbgorLi4gX2hvb2tzcGVjIG1vZHVsZToK
KyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvX21vZHVsZXMvX3B5dGVzdC9o
b29rc3BlYy5odG1sCisuLiBfaG9va3dyYXBwZXI6CisgICAgaHR0cDovL2RvYy5weXRlc3Qub3Jn
L2VuL2xhdGVzdC93cml0aW5nX3BsdWdpbnMuaHRtbCNob29rd3JhcHBlci1leGVjdXRpbmctYXJv
dW5kLW90aGVyLWhvb2tzCisuLiBfaG9vayBmdW5jdGlvbiBvcmRlcmluZzoKKyAgICBodHRwOi8v
ZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dyaXRpbmdfcGx1Z2lucy5odG1sI2hvb2stZnVuY3Rp
b24tb3JkZXJpbmctY2FsbC1leGFtcGxlCiAuLiBfcmVxdWVzdC1yZXNwb25zZSBwYXR0ZXJuOgog
ICAgIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1JlcXVlc3QlRTIlODAlOTNyZXNwb25z
ZQogLi4gX3B1Ymxpc2gtc3Vic2NyaWJlOgogICAgIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93
aWtpL1B1Ymxpc2glRTIlODAlOTNzdWJzY3JpYmVfcGF0dGVybgogLi4gX2hvb2tpbmc6CiAgICAg
aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSG9va2luZwotLi4gX3BsdWdpbiBtYW5hZ2Vt
ZW50IGFuZCBob29rIGNhbGxpbmc6Ci0gICAgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVz
dC93cml0aW5nX3BsdWdpbnMuaHRtbAotLi4gX25hbWVzcGFjZToKLSAgICBodHRwczovL2RvY3Mu
cHl0aG9uLm9yZy8zLjYvdHV0b3JpYWwvY2xhc3Nlcy5odG1sI3B5dGhvbi1zY29wZXMtYW5kLW5h
bWVzcGFjZXMKIC4uIF9jYWxsYmFja3M6CiAgICAgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dp
a2kvQ2FsbGJhY2tfKGNvbXB1dGVyX3Byb2dyYW1taW5nKQogLi4gX3RveCB0ZXN0IHN1aXRlOgog
ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9ibG9iL21hc3Rlci90b3gu
aW5pCiAuLiBfU2VtYW50aWMgVmVyc2lvbmluZzoKLSAgICBodHRwOi8vc2VtdmVyLm9yZy8KLS4u
IF90aWdodCBjb3VwbGluZzoKLSAgICBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db3Vw
bGluZ18lMjhjb21wdXRlcl9wcm9ncmFtbWluZyUyOSNUeXBlc19vZl9jb3VwbGluZworICAgIGh0
dHBzOi8vc2VtdmVyLm9yZy8KIC4uIF9QeXRob24gaW50ZXJwcmV0ZXJzOgogICAgIGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9ibG9iL21hc3Rlci90b3guaW5pI0wyCi0uLiBf
MjAwKyBwbHVnaW5zOgorLi4gXzUwMCsgcGx1Z2luczoKICAgICBodHRwOi8vcGx1Z2luY29tcGF0
Lmhlcm9rdWFwcC5jb20vCisuLiBfcHJlLWNvbW1pdDoKKyAgICBodHRwczovL3ByZS1jb21taXQu
Y29tLwogCiAKIC4uIEluZGljZXMgYW5kIHRhYmxlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
ZG9jcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvdzNjLWltcG9ydC5sb2cKaW5k
ZXggODc1YjU4MWI4YzJjMmZlMjJkYzJkZTY3YWM1MDY5NDI5NjQwM2I0Ny4uNDZlYjlhMDNmYTM0
MDcxYTBlYWZkNTE4YTQ4OWU0OWZhMzg0OWU0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9j
cy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL3czYy1pbXBvcnQubG9nCkBA
IC0xNSw1ICsxNSw2IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS9kb2NzL2FwaV9yZWZlcmVuY2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9jaGFu
Z2Vsb2cucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9jb25mLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9p
bmRleC5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9fX2luaXRfXy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L3BsdWdneS9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWI1MTc1ZDk1NjYxNGIwMmYzZWU1YWE4YmM5MzMxODNlYjc1MTIzMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9wbHVnZ3kvX19p
bml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2ODQgKzAsMCBAQAotaW1wb3J0IGluc3BlY3QK
LWltcG9ydCB3YXJuaW5ncwotZnJvbSAuY2FsbGVycyBpbXBvcnQgX211bHRpY2FsbCwgSG9va0Nh
bGxFcnJvciwgX1Jlc3VsdCwgX2xlZ2FjeW11bHRpY2FsbAotCi1fX3ZlcnNpb25fXyA9ICcwLjUu
My5kZXYnCi0KLV9fYWxsX18gPSBbIlBsdWdpbk1hbmFnZXIiLCAiUGx1Z2luVmFsaWRhdGlvbkVy
cm9yIiwgIkhvb2tDYWxsRXJyb3IiLAotICAgICAgICAgICAiSG9va3NwZWNNYXJrZXIiLCAiSG9v
a2ltcGxNYXJrZXIiXQotCi0KLWNsYXNzIFBsdWdpblZhbGlkYXRpb25FcnJvcihFeGNlcHRpb24p
OgotICAgICIiIiBwbHVnaW4gZmFpbGVkIHZhbGlkYXRpb24uICIiIgotCi0KLWNsYXNzIEhvb2tz
cGVjTWFya2VyKG9iamVjdCk6Ci0gICAgIiIiIERlY29yYXRvciBoZWxwZXIgY2xhc3MgZm9yIG1h
cmtpbmcgZnVuY3Rpb25zIGFzIGhvb2sgc3BlY2lmaWNhdGlvbnMuCi0KLSAgICBZb3UgY2FuIGlu
c3RhbnRpYXRlIGl0IHdpdGggYSBwcm9qZWN0X25hbWUgdG8gZ2V0IGEgZGVjb3JhdG9yLgotICAg
IENhbGxpbmcgUGx1Z2luTWFuYWdlci5hZGRfaG9va3NwZWNzIGxhdGVyIHdpbGwgZGlzY292ZXIg
YWxsIG1hcmtlZCBmdW5jdGlvbnMKLSAgICBpZiB0aGUgUGx1Z2luTWFuYWdlciB1c2VzIHRoZSBz
YW1lIHByb2plY3RfbmFtZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9q
ZWN0X25hbWUpOgotICAgICAgICBzZWxmLnByb2plY3RfbmFtZSA9IHByb2plY3RfbmFtZQotCi0g
ICAgZGVmIF9fY2FsbF9fKHNlbGYsIGZ1bmN0aW9uPU5vbmUsIGZpcnN0cmVzdWx0PUZhbHNlLCBo
aXN0b3JpYz1GYWxzZSk6Ci0gICAgICAgICIiIiBpZiBwYXNzZWQgYSBmdW5jdGlvbiwgZGlyZWN0
bHkgc2V0cyBhdHRyaWJ1dGVzIG9uIHRoZSBmdW5jdGlvbgotICAgICAgICB3aGljaCB3aWxsIG1h
a2UgaXQgZGlzY292ZXJhYmxlIHRvIGFkZF9ob29rc3BlY3MoKS4gIElmIHBhc3NlZCBubwotICAg
ICAgICBmdW5jdGlvbiwgcmV0dXJucyBhIGRlY29yYXRvciB3aGljaCBjYW4gYmUgYXBwbGllZCB0
byBhIGZ1bmN0aW9uCi0gICAgICAgIGxhdGVyIHVzaW5nIHRoZSBhdHRyaWJ1dGVzIHN1cHBsaWVk
LgotCi0gICAgICAgIElmIGZpcnN0cmVzdWx0IGlzIFRydWUgdGhlIDE6TiBob29rIGNhbGwgKE4g
YmVpbmcgdGhlIG51bWJlciBvZiByZWdpc3RlcmVkCi0gICAgICAgIGhvb2sgaW1wbGVtZW50YXRp
b24gZnVuY3Rpb25zKSB3aWxsIHN0b3AgYXQgSTw9TiB3aGVuIHRoZSBJJ3RoIGZ1bmN0aW9uCi0g
ICAgICAgIHJldHVybnMgYSBub24tTm9uZSByZXN1bHQuCi0KLSAgICAgICAgSWYgaGlzdG9yaWMg
aXMgVHJ1ZSBjYWxscyB0byBhIGhvb2sgd2lsbCBiZSBtZW1vcml6ZWQgYW5kIHJlcGxheWVkCi0g
ICAgICAgIG9uIGxhdGVyIHJlZ2lzdGVyZWQgcGx1Z2lucy4KLQotICAgICAgICAiIiIKLSAgICAg
ICAgZGVmIHNldGF0dHJfaG9va3NwZWNfb3B0cyhmdW5jKToKLSAgICAgICAgICAgIGlmIGhpc3Rv
cmljIGFuZCBmaXJzdHJlc3VsdDoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJj
YW5ub3QgaGF2ZSBhIGhpc3RvcmljIGZpcnN0cmVzdWx0IGhvb2siKQotICAgICAgICAgICAgc2V0
YXR0cihmdW5jLCBzZWxmLnByb2plY3RfbmFtZSArICJfc3BlYyIsCi0gICAgICAgICAgICAgICAg
ICAgIGRpY3QoZmlyc3RyZXN1bHQ9Zmlyc3RyZXN1bHQsIGhpc3RvcmljPWhpc3RvcmljKSkKLSAg
ICAgICAgICAgIHJldHVybiBmdW5jCi0KLSAgICAgICAgaWYgZnVuY3Rpb24gaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICByZXR1cm4gc2V0YXR0cl9ob29rc3BlY19vcHRzKGZ1bmN0aW9uKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHNldGF0dHJfaG9va3NwZWNfb3B0cwotCi0K
LWNsYXNzIEhvb2tpbXBsTWFya2VyKG9iamVjdCk6Ci0gICAgIiIiIERlY29yYXRvciBoZWxwZXIg
Y2xhc3MgZm9yIG1hcmtpbmcgZnVuY3Rpb25zIGFzIGhvb2sgaW1wbGVtZW50YXRpb25zLgotCi0g
ICAgWW91IGNhbiBpbnN0YW50aWF0ZSB3aXRoIGEgcHJvamVjdF9uYW1lIHRvIGdldCBhIGRlY29y
YXRvci4KLSAgICBDYWxsaW5nIFBsdWdpbk1hbmFnZXIucmVnaXN0ZXIgbGF0ZXIgd2lsbCBkaXNj
b3ZlciBhbGwgbWFya2VkIGZ1bmN0aW9ucwotICAgIGlmIHRoZSBQbHVnaW5NYW5hZ2VyIHVzZXMg
dGhlIHNhbWUgcHJvamVjdF9uYW1lLgotICAgICIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
cm9qZWN0X25hbWUpOgotICAgICAgICBzZWxmLnByb2plY3RfbmFtZSA9IHByb2plY3RfbmFtZQot
Ci0gICAgZGVmIF9fY2FsbF9fKHNlbGYsIGZ1bmN0aW9uPU5vbmUsIGhvb2t3cmFwcGVyPUZhbHNl
LCBvcHRpb25hbGhvb2s9RmFsc2UsCi0gICAgICAgICAgICAgICAgIHRyeWZpcnN0PUZhbHNlLCB0
cnlsYXN0PUZhbHNlKToKLQotICAgICAgICAiIiIgaWYgcGFzc2VkIGEgZnVuY3Rpb24sIGRpcmVj
dGx5IHNldHMgYXR0cmlidXRlcyBvbiB0aGUgZnVuY3Rpb24KLSAgICAgICAgd2hpY2ggd2lsbCBt
YWtlIGl0IGRpc2NvdmVyYWJsZSB0byByZWdpc3RlcigpLiAgSWYgcGFzc2VkIG5vIGZ1bmN0aW9u
LAotICAgICAgICByZXR1cm5zIGEgZGVjb3JhdG9yIHdoaWNoIGNhbiBiZSBhcHBsaWVkIHRvIGEg
ZnVuY3Rpb24gbGF0ZXIgdXNpbmcKLSAgICAgICAgdGhlIGF0dHJpYnV0ZXMgc3VwcGxpZWQuCi0K
LSAgICAgICAgSWYgb3B0aW9uYWxob29rIGlzIFRydWUgYSBtaXNzaW5nIG1hdGNoaW5nIGhvb2sg
c3BlY2lmaWNhdGlvbiB3aWxsIG5vdCByZXN1bHQKLSAgICAgICAgaW4gYW4gZXJyb3IgKGJ5IGRl
ZmF1bHQgaXQgaXMgYW4gZXJyb3IgaWYgbm8gbWF0Y2hpbmcgc3BlYyBpcyBmb3VuZCkuCi0KLSAg
ICAgICAgSWYgdHJ5Zmlyc3QgaXMgVHJ1ZSB0aGlzIGhvb2sgaW1wbGVtZW50YXRpb24gd2lsbCBy
dW4gYXMgZWFybHkgYXMgcG9zc2libGUKLSAgICAgICAgaW4gdGhlIGNoYWluIG9mIE4gaG9vayBp
bXBsZW1lbnRhdGlvbnMgZm9yIGEgc3BlY2ZpY2F0aW9uLgotCi0gICAgICAgIElmIHRyeWxhc3Qg
aXMgVHJ1ZSB0aGlzIGhvb2sgaW1wbGVtZW50YXRpb24gd2lsbCBydW4gYXMgbGF0ZSBhcyBwb3Nz
aWJsZQotICAgICAgICBpbiB0aGUgY2hhaW4gb2YgTiBob29rIGltcGxlbWVudGF0aW9ucy4KLQot
ICAgICAgICBJZiBob29rd3JhcHBlciBpcyBUcnVlIHRoZSBob29rIGltcGxlbWVudGF0aW9ucyBu
ZWVkcyB0byBleGVjdXRlIGV4YWN0bHkKLSAgICAgICAgb25lICJ5aWVsZCIuICBUaGUgY29kZSBi
ZWZvcmUgdGhlIHlpZWxkIGlzIHJ1biBlYXJseSBiZWZvcmUgYW55IG5vbi1ob29rd3JhcHBlcgot
ICAgICAgICBmdW5jdGlvbiBpcyBydW4uICBUaGUgY29kZSBhZnRlciB0aGUgeWllbGQgaXMgcnVu
IGFmdGVyIGFsbCBub24taG9va3dyYXBwZXIKLSAgICAgICAgZnVuY3Rpb24gaGF2ZSBydW4uICBU
aGUgeWllbGQgcmVjZWl2ZXMgYSBgYF9SZXN1bHRgYCBvYmplY3QgcmVwcmVzZW50aW5nCi0gICAg
ICAgIHRoZSBleGNlcHRpb24gb3IgcmVzdWx0IG91dGNvbWUgb2YgdGhlIGlubmVyIGNhbGxzIChp
bmNsdWRpbmcgb3RoZXIgaG9va3dyYXBwZXIKLSAgICAgICAgY2FsbHMpLgotCi0gICAgICAgICIi
IgotICAgICAgICBkZWYgc2V0YXR0cl9ob29raW1wbF9vcHRzKGZ1bmMpOgotICAgICAgICAgICAg
c2V0YXR0cihmdW5jLCBzZWxmLnByb2plY3RfbmFtZSArICJfaW1wbCIsCi0gICAgICAgICAgICAg
ICAgICAgIGRpY3QoaG9va3dyYXBwZXI9aG9va3dyYXBwZXIsIG9wdGlvbmFsaG9vaz1vcHRpb25h
bGhvb2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgdHJ5Zmlyc3Q9dHJ5Zmlyc3QsIHRyeWxh
c3Q9dHJ5bGFzdCkpCi0gICAgICAgICAgICByZXR1cm4gZnVuYwotCi0gICAgICAgIGlmIGZ1bmN0
aW9uIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gc2V0YXR0cl9ob29raW1wbF9vcHRzCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gc2V0YXR0cl9ob29raW1wbF9vcHRzKGZ1
bmN0aW9uKQotCi0KLWRlZiBub3JtYWxpemVfaG9va2ltcGxfb3B0cyhvcHRzKToKLSAgICBvcHRz
LnNldGRlZmF1bHQoInRyeWZpcnN0IiwgRmFsc2UpCi0gICAgb3B0cy5zZXRkZWZhdWx0KCJ0cnls
YXN0IiwgRmFsc2UpCi0gICAgb3B0cy5zZXRkZWZhdWx0KCJob29rd3JhcHBlciIsIEZhbHNlKQot
ICAgIG9wdHMuc2V0ZGVmYXVsdCgib3B0aW9uYWxob29rIiwgRmFsc2UpCi0KLQotY2xhc3MgX1Rh
Z1RyYWNlcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5f
dGFnMnByb2MgPSB7fQotICAgICAgICBzZWxmLndyaXRlciA9IE5vbmUKLSAgICAgICAgc2VsZi5p
bmRlbnQgPSAwCi0KLSAgICBkZWYgZ2V0KHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gX1Rh
Z1RyYWNlclN1YihzZWxmLCAobmFtZSwpKQotCi0gICAgZGVmIGZvcm1hdF9tZXNzYWdlKHNlbGYs
IHRhZ3MsIGFyZ3MpOgotICAgICAgICBpZiBpc2luc3RhbmNlKGFyZ3NbLTFdLCBkaWN0KToKLSAg
ICAgICAgICAgIGV4dHJhID0gYXJnc1stMV0KLSAgICAgICAgICAgIGFyZ3MgPSBhcmdzWzotMV0K
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGV4dHJhID0ge30KLQotICAgICAgICBjb250ZW50
ID0gIiAiLmpvaW4obWFwKHN0ciwgYXJncykpCi0gICAgICAgIGluZGVudCA9ICIgICIgKiBzZWxm
LmluZGVudAotCi0gICAgICAgIGxpbmVzID0gWwotICAgICAgICAgICAgIiVzJXMgWyVzXVxuIiAl
IChpbmRlbnQsIGNvbnRlbnQsICI6Ii5qb2luKHRhZ3MpKQotICAgICAgICBdCi0KLSAgICAgICAg
Zm9yIG5hbWUsIHZhbHVlIGluIGV4dHJhLml0ZW1zKCk6Ci0gICAgICAgICAgICBsaW5lcy5hcHBl
bmQoIiVzICAgICVzOiAlc1xuIiAlIChpbmRlbnQsIG5hbWUsIHZhbHVlKSkKLSAgICAgICAgcmV0
dXJuIGxpbmVzCi0KLSAgICBkZWYgcHJvY2Vzc21lc3NhZ2Uoc2VsZiwgdGFncywgYXJncyk6Ci0g
ICAgICAgIGlmIHNlbGYud3JpdGVyIGlzIG5vdCBOb25lIGFuZCBhcmdzOgotICAgICAgICAgICAg
bGluZXMgPSBzZWxmLmZvcm1hdF9tZXNzYWdlKHRhZ3MsIGFyZ3MpCi0gICAgICAgICAgICBzZWxm
LndyaXRlcignJy5qb2luKGxpbmVzKSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5f
dGFnMnByb2NbdGFnc10odGFncywgYXJncykKLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAg
ICAgICAgICAgcGFzcwotCi0gICAgZGVmIHNldHdyaXRlcihzZWxmLCB3cml0ZXIpOgotICAgICAg
ICBzZWxmLndyaXRlciA9IHdyaXRlcgotCi0gICAgZGVmIHNldHByb2Nlc3NvcihzZWxmLCB0YWdz
LCBwcm9jZXNzb3IpOgotICAgICAgICBpZiBpc2luc3RhbmNlKHRhZ3MsIHN0cik6Ci0gICAgICAg
ICAgICB0YWdzID0gdHVwbGUodGFncy5zcGxpdCgiOiIpKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodGFncywgdHVwbGUpCi0gICAgICAgIHNlbGYuX3RhZzJw
cm9jW3RhZ3NdID0gcHJvY2Vzc29yCi0KLQotY2xhc3MgX1RhZ1RyYWNlclN1YihvYmplY3QpOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290LCB0YWdzKToKLSAgICAgICAgc2VsZi5yb290ID0g
cm9vdAotICAgICAgICBzZWxmLnRhZ3MgPSB0YWdzCi0KLSAgICBkZWYgX19jYWxsX18oc2VsZiwg
KmFyZ3MpOgotICAgICAgICBzZWxmLnJvb3QucHJvY2Vzc21lc3NhZ2Uoc2VsZi50YWdzLCBhcmdz
KQotCi0gICAgZGVmIHNldG15cHJvY2Vzc29yKHNlbGYsIHByb2Nlc3Nvcik6Ci0gICAgICAgIHNl
bGYucm9vdC5zZXRwcm9jZXNzb3Ioc2VsZi50YWdzLCBwcm9jZXNzb3IpCi0KLSAgICBkZWYgZ2V0
KHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5yb290LCBz
ZWxmLnRhZ3MgKyAobmFtZSwpKQotCi0KLWNsYXNzIF9UcmFjZWRIb29rRXhlY3V0aW9uKG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsdWdpbm1hbmFnZXIsIGJlZm9yZSwgYWZ0ZXIp
OgotICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIgPSBwbHVnaW5tYW5hZ2VyCi0gICAgICAgIHNl
bGYuYmVmb3JlID0gYmVmb3JlCi0gICAgICAgIHNlbGYuYWZ0ZXIgPSBhZnRlcgotICAgICAgICBz
ZWxmLm9sZGNhbGwgPSBwbHVnaW5tYW5hZ2VyLl9pbm5lcl9ob29rZXhlYwotICAgICAgICBhc3Nl
cnQgbm90IGlzaW5zdGFuY2Uoc2VsZi5vbGRjYWxsLCBfVHJhY2VkSG9va0V4ZWN1dGlvbikKLSAg
ICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLl9pbm5lcl9ob29rZXhlYyA9IHNlbGYKLQotICAgIGRl
ZiBfX2NhbGxfXyhzZWxmLCBob29rLCBob29rX2ltcGxzLCBrd2FyZ3MpOgotICAgICAgICBzZWxm
LmJlZm9yZShob29rLm5hbWUsIGhvb2tfaW1wbHMsIGt3YXJncykKLSAgICAgICAgb3V0Y29tZSA9
IF9SZXN1bHQuZnJvbV9jYWxsKGxhbWJkYTogc2VsZi5vbGRjYWxsKGhvb2ssIGhvb2tfaW1wbHMs
IGt3YXJncykpCi0gICAgICAgIHNlbGYuYWZ0ZXIob3V0Y29tZSwgaG9vay5uYW1lLCBob29rX2lt
cGxzLCBrd2FyZ3MpCi0gICAgICAgIHJldHVybiBvdXRjb21lLmdldF9yZXN1bHQoKQotCi0gICAg
ZGVmIHVuZG8oc2VsZik6Ci0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5faW5uZXJfaG9va2V4
ZWMgPSBzZWxmLm9sZGNhbGwKLQotCi1jbGFzcyBQbHVnaW5NYW5hZ2VyKG9iamVjdCk6Ci0gICAg
IiIiIENvcmUgUGx1Z2lubWFuYWdlciBjbGFzcyB3aGljaCBtYW5hZ2VzIHJlZ2lzdHJhdGlvbgot
ICAgIG9mIHBsdWdpbiBvYmplY3RzIGFuZCAxOk4gaG9vayBjYWxsaW5nLgotCi0gICAgWW91IGNh
biByZWdpc3RlciBuZXcgaG9va3MgYnkgY2FsbGluZyBgYGFkZF9ob29rc3BlYyhtb2R1bGVfb3Jf
Y2xhc3MpYGAuCi0gICAgWW91IGNhbiByZWdpc3RlciBwbHVnaW4gb2JqZWN0cyAod2hpY2ggY29u
dGFpbiBob29rcykgYnkgY2FsbGluZwotICAgIGBgcmVnaXN0ZXIocGx1Z2luKWBgLiAgVGhlIFBs
dWdpbm1hbmFnZXIgaXMgaW5pdGlhbGl6ZWQgd2l0aCBhCi0gICAgcHJlZml4IHRoYXQgaXMgc2Vh
cmNoZWQgZm9yIGluIHRoZSBuYW1lcyBvZiB0aGUgZGljdCBvZiByZWdpc3RlcmVkCi0gICAgcGx1
Z2luIG9iamVjdHMuICBBbiBvcHRpb25hbCBleGNsdWRlZnVuYyBhbGxvd3MgdG8gYmxhY2tsaXN0
IG5hbWVzIHdoaWNoCi0gICAgYXJlIG5vdCBjb25zaWRlcmVkIGFzIGhvb2tzIGRlc3BpdGUgYSBt
YXRjaGluZyBwcmVmaXguCi0KLSAgICBGb3IgZGVidWdnaW5nIHB1cnBvc2VzIHlvdSBjYW4gY2Fs
bCBgYGVuYWJsZV90cmFjaW5nKClgYAotICAgIHdoaWNoIHdpbGwgc3Vic2VxdWVudGx5IHNlbmQg
ZGVidWcgaW5mb3JtYXRpb24gdG8gdGhlIHRyYWNlIGhlbHBlci4KLSAgICAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0X25hbWUsIGltcGxwcmVmaXg9Tm9uZSk6Ci0gICAgICAg
ICIiIiBpZiBpbXBscHJlZml4IGlzIGdpdmVuIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9ucwotICAg
ICAgICB3aWxsIGJlIHJlY29nbml6ZWQgaWYgdGhlaXIgbmFtZSBtYXRjaGVzIHRoZSBpbXBscHJl
Zml4LiAiIiIKLSAgICAgICAgc2VsZi5wcm9qZWN0X25hbWUgPSBwcm9qZWN0X25hbWUKLSAgICAg
ICAgc2VsZi5fbmFtZTJwbHVnaW4gPSB7fQotICAgICAgICBzZWxmLl9wbHVnaW4yaG9va2NhbGxl
cnMgPSB7fQotICAgICAgICBzZWxmLl9wbHVnaW5fZGlzdGluZm8gPSBbXQotICAgICAgICBzZWxm
LnRyYWNlID0gX1RhZ1RyYWNlcigpLmdldCgicGx1Z2lubWFuYWdlIikKLSAgICAgICAgc2VsZi5o
b29rID0gX0hvb2tSZWxheShzZWxmLnRyYWNlLnJvb3QuZ2V0KCJob29rIikpCi0gICAgICAgIHNl
bGYuX2ltcGxwcmVmaXggPSBpbXBscHJlZml4Ci0gICAgICAgIHNlbGYuX2lubmVyX2hvb2tleGVj
ID0gbGFtYmRhIGhvb2ssIG1ldGhvZHMsIGt3YXJnczogXAotICAgICAgICAgICAgaG9vay5tdWx0
aWNhbGwoCi0gICAgICAgICAgICAgICAgbWV0aG9kcywga3dhcmdzLAotICAgICAgICAgICAgICAg
IGZpcnN0cmVzdWx0PWhvb2suc3BlY19vcHRzLmdldCgnZmlyc3RyZXN1bHQnKSwKLSAgICAgICAg
ICAgICkKLQotICAgIGRlZiBfaG9va2V4ZWMoc2VsZiwgaG9vaywgbWV0aG9kcywga3dhcmdzKToK
LSAgICAgICAgIyBjYWxsZWQgZnJvbSBhbGwgaG9va2NhbGxlciBpbnN0YW5jZXMuCi0gICAgICAg
ICMgZW5hYmxlX3RyYWNpbmcgd2lsbCBzZXQgaXRzIG93biB3cmFwcGluZyBmdW5jdGlvbiBhdCBz
ZWxmLl9pbm5lcl9ob29rZXhlYwotICAgICAgICByZXR1cm4gc2VsZi5faW5uZXJfaG9va2V4ZWMo
aG9vaywgbWV0aG9kcywga3dhcmdzKQotCi0gICAgZGVmIHJlZ2lzdGVyKHNlbGYsIHBsdWdpbiwg
bmFtZT1Ob25lKToKLSAgICAgICAgIiIiIFJlZ2lzdGVyIGEgcGx1Z2luIGFuZCByZXR1cm4gaXRz
IGNhbm9uaWNhbCBuYW1lIG9yIE5vbmUgaWYgdGhlIG5hbWUKLSAgICAgICAgaXMgYmxvY2tlZCBm
cm9tIHJlZ2lzdGVyaW5nLiAgUmFpc2UgYSBWYWx1ZUVycm9yIGlmIHRoZSBwbHVnaW4gaXMgYWxy
ZWFkeQotICAgICAgICByZWdpc3RlcmVkLiAiIiIKLSAgICAgICAgcGx1Z2luX25hbWUgPSBuYW1l
IG9yIHNlbGYuZ2V0X2Nhbm9uaWNhbF9uYW1lKHBsdWdpbikKLQotICAgICAgICBpZiBwbHVnaW5f
bmFtZSBpbiBzZWxmLl9uYW1lMnBsdWdpbiBvciBwbHVnaW4gaW4gc2VsZi5fcGx1Z2luMmhvb2tj
YWxsZXJzOgotICAgICAgICAgICAgaWYgc2VsZi5fbmFtZTJwbHVnaW4uZ2V0KHBsdWdpbl9uYW1l
LCAtMSkgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByZXR1cm4gICMgYmxvY2tlZCBwbHVnaW4s
IHJldHVybiBOb25lIHRvIGluZGljYXRlIG5vIHJlZ2lzdHJhdGlvbgotICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigiUGx1Z2luIGFscmVhZHkgcmVnaXN0ZXJlZDogJXM9JXNcbiVzIiAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbHVnaW5fbmFtZSwgcGx1Z2luLCBzZWxmLl9u
YW1lMnBsdWdpbikpCi0KLSAgICAgICAgIyBYWFggaWYgYW4gZXJyb3IgaGFwcGVucyB3ZSBzaG91
bGQgbWFrZSBzdXJlIG5vIHN0YXRlIGhhcyBiZWVuCi0gICAgICAgICMgY2hhbmdlZCBhdCBwb2lu
dCBvZiByZXR1cm4KLSAgICAgICAgc2VsZi5fbmFtZTJwbHVnaW5bcGx1Z2luX25hbWVdID0gcGx1
Z2luCi0KLSAgICAgICAgIyByZWdpc3RlciBtYXRjaGluZyBob29rIGltcGxlbWVudGF0aW9ucyBv
ZiB0aGUgcGx1Z2luCi0gICAgICAgIHNlbGYuX3BsdWdpbjJob29rY2FsbGVyc1twbHVnaW5dID0g
aG9va2NhbGxlcnMgPSBbXQotICAgICAgICBmb3IgbmFtZSBpbiBkaXIocGx1Z2luKToKLSAgICAg
ICAgICAgIGhvb2tpbXBsX29wdHMgPSBzZWxmLnBhcnNlX2hvb2tpbXBsX29wdHMocGx1Z2luLCBu
YW1lKQotICAgICAgICAgICAgaWYgaG9va2ltcGxfb3B0cyBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgICAgICBub3JtYWxpemVfaG9va2ltcGxfb3B0cyhob29raW1wbF9vcHRzKQotICAgICAgICAg
ICAgICAgIG1ldGhvZCA9IGdldGF0dHIocGx1Z2luLCBuYW1lKQotICAgICAgICAgICAgICAgIGhv
b2tpbXBsID0gSG9va0ltcGwocGx1Z2luLCBwbHVnaW5fbmFtZSwgbWV0aG9kLCBob29raW1wbF9v
cHRzKQotICAgICAgICAgICAgICAgIGhvb2sgPSBnZXRhdHRyKHNlbGYuaG9vaywgbmFtZSwgTm9u
ZSkKLSAgICAgICAgICAgICAgICBpZiBob29rIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAg
IGhvb2sgPSBfSG9va0NhbGxlcihuYW1lLCBzZWxmLl9ob29rZXhlYykKLSAgICAgICAgICAgICAg
ICAgICAgc2V0YXR0cihzZWxmLmhvb2ssIG5hbWUsIGhvb2spCi0gICAgICAgICAgICAgICAgZWxp
ZiBob29rLmhhc19zcGVjKCk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9ob29r
KGhvb2ssIGhvb2tpbXBsKQotICAgICAgICAgICAgICAgICAgICBob29rLl9tYXliZV9hcHBseV9o
aXN0b3J5KGhvb2tpbXBsKQotICAgICAgICAgICAgICAgIGhvb2suX2FkZF9ob29raW1wbChob29r
aW1wbCkKLSAgICAgICAgICAgICAgICBob29rY2FsbGVycy5hcHBlbmQoaG9vaykKLSAgICAgICAg
cmV0dXJuIHBsdWdpbl9uYW1lCi0KLSAgICBkZWYgcGFyc2VfaG9va2ltcGxfb3B0cyhzZWxmLCBw
bHVnaW4sIG5hbWUpOgotICAgICAgICBtZXRob2QgPSBnZXRhdHRyKHBsdWdpbiwgbmFtZSkKLSAg
ICAgICAgaWYgbm90IGluc3BlY3QuaXNyb3V0aW5lKG1ldGhvZCk6Ci0gICAgICAgICAgICByZXR1
cm4KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmVzID0gZ2V0YXR0cihtZXRob2QsIHNlbGYu
cHJvamVjdF9uYW1lICsgIl9pbXBsIiwgTm9uZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoK
LSAgICAgICAgICAgIHJlcyA9IHt9Ci0gICAgICAgIGlmIHJlcyBpcyBub3QgTm9uZSBhbmQgbm90
IGlzaW5zdGFuY2UocmVzLCBkaWN0KToKLSAgICAgICAgICAgICMgZmFsc2UgcG9zaXRpdmUKLSAg
ICAgICAgICAgIHJlcyA9IE5vbmUKLSAgICAgICAgZWxpZiByZXMgaXMgTm9uZSBhbmQgc2VsZi5f
aW1wbHByZWZpeCBhbmQgbmFtZS5zdGFydHN3aXRoKHNlbGYuX2ltcGxwcmVmaXgpOgotICAgICAg
ICAgICAgcmVzID0ge30KLSAgICAgICAgcmV0dXJuIHJlcwotCi0gICAgZGVmIHVucmVnaXN0ZXIo
c2VsZiwgcGx1Z2luPU5vbmUsIG5hbWU9Tm9uZSk6Ci0gICAgICAgICIiIiB1bnJlZ2lzdGVyIGEg
cGx1Z2luIG9iamVjdCBhbmQgYWxsIGl0cyBjb250YWluZWQgaG9vayBpbXBsZW1lbnRhdGlvbnMK
LSAgICAgICAgZnJvbSBpbnRlcm5hbCBkYXRhIHN0cnVjdHVyZXMuICIiIgotICAgICAgICBpZiBu
YW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICBhc3NlcnQgcGx1Z2luIGlzIG5vdCBOb25lLCAib25l
IG9mIG5hbWUgb3IgcGx1Z2luIG5lZWRzIHRvIGJlIHNwZWNpZmllZCIKLSAgICAgICAgICAgIG5h
bWUgPSBzZWxmLmdldF9uYW1lKHBsdWdpbikKLQotICAgICAgICBpZiBwbHVnaW4gaXMgTm9uZToK
LSAgICAgICAgICAgIHBsdWdpbiA9IHNlbGYuZ2V0X3BsdWdpbihuYW1lKQotCi0gICAgICAgICMg
aWYgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0gPT0gTm9uZSByZWdpc3RyYXRpb24gd2FzIGJsb2Nr
ZWQ6IGlnbm9yZQotICAgICAgICBpZiBzZWxmLl9uYW1lMnBsdWdpbi5nZXQobmFtZSk6Ci0gICAg
ICAgICAgICBkZWwgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0KLQotICAgICAgICBmb3IgaG9va2Nh
bGxlciBpbiBzZWxmLl9wbHVnaW4yaG9va2NhbGxlcnMucG9wKHBsdWdpbiwgW10pOgotICAgICAg
ICAgICAgaG9va2NhbGxlci5fcmVtb3ZlX3BsdWdpbihwbHVnaW4pCi0KLSAgICAgICAgcmV0dXJu
IHBsdWdpbgotCi0gICAgZGVmIHNldF9ibG9ja2VkKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiIg
YmxvY2sgcmVnaXN0cmF0aW9ucyBvZiB0aGUgZ2l2ZW4gbmFtZSwgdW5yZWdpc3RlciBpZiBhbHJl
YWR5IHJlZ2lzdGVyZWQuICIiIgotICAgICAgICBzZWxmLnVucmVnaXN0ZXIobmFtZT1uYW1lKQot
ICAgICAgICBzZWxmLl9uYW1lMnBsdWdpbltuYW1lXSA9IE5vbmUKLQotICAgIGRlZiBpc19ibG9j
a2VkKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiIgcmV0dXJuIFRydWUgaWYgdGhlIG5hbWUgYmxv
Z3MgcmVnaXN0ZXJpbmcgcGx1Z2lucyBvZiB0aGF0IG5hbWUuICIiIgotICAgICAgICByZXR1cm4g
bmFtZSBpbiBzZWxmLl9uYW1lMnBsdWdpbiBhbmQgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0gaXMg
Tm9uZQotCi0gICAgZGVmIGFkZF9ob29rc3BlY3Moc2VsZiwgbW9kdWxlX29yX2NsYXNzKToKLSAg
ICAgICAgIiIiIGFkZCBuZXcgaG9vayBzcGVjaWZpY2F0aW9ucyBkZWZpbmVkIGluIHRoZSBnaXZl
biBtb2R1bGVfb3JfY2xhc3MuCi0gICAgICAgIEZ1bmN0aW9ucyBhcmUgcmVjb2duaXplZCBpZiB0
aGV5IGhhdmUgYmVlbiBkZWNvcmF0ZWQgYWNjb3JkaW5nbHkuICIiIgotICAgICAgICBuYW1lcyA9
IFtdCi0gICAgICAgIGZvciBuYW1lIGluIGRpcihtb2R1bGVfb3JfY2xhc3MpOgotICAgICAgICAg
ICAgc3BlY19vcHRzID0gc2VsZi5wYXJzZV9ob29rc3BlY19vcHRzKG1vZHVsZV9vcl9jbGFzcywg
bmFtZSkKLSAgICAgICAgICAgIGlmIHNwZWNfb3B0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICBoYyA9IGdldGF0dHIoc2VsZi5ob29rLCBuYW1lLCBOb25lKQotICAgICAgICAgICAgICAg
IGlmIGhjIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGhjID0gX0hvb2tDYWxsZXIobmFt
ZSwgc2VsZi5faG9va2V4ZWMsIG1vZHVsZV9vcl9jbGFzcywgc3BlY19vcHRzKQotICAgICAgICAg
ICAgICAgICAgICBzZXRhdHRyKHNlbGYuaG9vaywgbmFtZSwgaGMpCi0gICAgICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAgICAgIyBwbHVnaW5zIHJlZ2lzdGVyZWQgdGhpcyBob29r
IHdpdGhvdXQga25vd2luZyB0aGUgc3BlYwotICAgICAgICAgICAgICAgICAgICBoYy5zZXRfc3Bl
Y2lmaWNhdGlvbihtb2R1bGVfb3JfY2xhc3MsIHNwZWNfb3B0cykKLSAgICAgICAgICAgICAgICAg
ICAgZm9yIGhvb2tmdW5jdGlvbiBpbiAoaGMuX3dyYXBwZXJzICsgaGMuX25vbndyYXBwZXJzKToK
LSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9ob29rKGhjLCBob29rZnVuY3Rp
b24pCi0gICAgICAgICAgICAgICAgbmFtZXMuYXBwZW5kKG5hbWUpCi0KLSAgICAgICAgaWYgbm90
IG5hbWVzOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiZGlkIG5vdCBmaW5kIGFueSAl
ciBob29rcyBpbiAlciIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5wcm9q
ZWN0X25hbWUsIG1vZHVsZV9vcl9jbGFzcykpCi0KLSAgICBkZWYgcGFyc2VfaG9va3NwZWNfb3B0
cyhzZWxmLCBtb2R1bGVfb3JfY2xhc3MsIG5hbWUpOgotICAgICAgICBtZXRob2QgPSBnZXRhdHRy
KG1vZHVsZV9vcl9jbGFzcywgbmFtZSkKLSAgICAgICAgcmV0dXJuIGdldGF0dHIobWV0aG9kLCBz
ZWxmLnByb2plY3RfbmFtZSArICJfc3BlYyIsIE5vbmUpCi0KLSAgICBkZWYgZ2V0X3BsdWdpbnMo
c2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gdGhlIHNldCBvZiByZWdpc3RlcmVkIHBsdWdpbnMu
ICIiIgotICAgICAgICByZXR1cm4gc2V0KHNlbGYuX3BsdWdpbjJob29rY2FsbGVycykKLQotICAg
IGRlZiBpc19yZWdpc3RlcmVkKHNlbGYsIHBsdWdpbik6Ci0gICAgICAgICIiIiBSZXR1cm4gVHJ1
ZSBpZiB0aGUgcGx1Z2luIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC4gIiIiCi0gICAgICAgIHJldHVy
biBwbHVnaW4gaW4gc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzCi0KLSAgICBkZWYgZ2V0X2Nhbm9u
aWNhbF9uYW1lKHNlbGYsIHBsdWdpbik6Ci0gICAgICAgICIiIiBSZXR1cm4gY2Fub25pY2FsIG5h
bWUgZm9yIGEgcGx1Z2luIG9iamVjdC4gTm90ZSB0aGF0IGEgcGx1Z2luCi0gICAgICAgIG1heSBi
ZSByZWdpc3RlcmVkIHVuZGVyIGEgZGlmZmVyZW50IG5hbWUgd2hpY2ggd2FzIHNwZWNpZmllZAot
ICAgICAgICBieSB0aGUgY2FsbGVyIG9mIHJlZ2lzdGVyKHBsdWdpbiwgbmFtZSkuIFRvIG9idGFp
biB0aGUgbmFtZQotICAgICAgICBvZiBhbiByZWdpc3RlcmVkIHBsdWdpbiB1c2UgYGBnZXRfbmFt
ZShwbHVnaW4pYGAgaW5zdGVhZC4iIiIKLSAgICAgICAgcmV0dXJuIGdldGF0dHIocGx1Z2luLCAi
X19uYW1lX18iLCBOb25lKSBvciBzdHIoaWQocGx1Z2luKSkKLQotICAgIGRlZiBnZXRfcGx1Z2lu
KHNlbGYsIG5hbWUpOgotICAgICAgICAiIiIgUmV0dXJuIGEgcGx1Z2luIG9yIE5vbmUgZm9yIHRo
ZSBnaXZlbiBuYW1lLiAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUycGx1Z2luLmdldChu
YW1lKQotCi0gICAgZGVmIGhhc19wbHVnaW4oc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIiBSZXR1
cm4gVHJ1ZSBpZiBhIHBsdWdpbiB3aXRoIHRoZSBnaXZlbiBuYW1lIGlzIHJlZ2lzdGVyZWQuICIi
IgotICAgICAgICByZXR1cm4gc2VsZi5nZXRfcGx1Z2luKG5hbWUpIGlzIG5vdCBOb25lCi0KLSAg
ICBkZWYgZ2V0X25hbWUoc2VsZiwgcGx1Z2luKToKLSAgICAgICAgIiIiIFJldHVybiBuYW1lIGZv
ciByZWdpc3RlcmVkIHBsdWdpbiBvciBOb25lIGlmIG5vdCByZWdpc3RlcmVkLiAiIiIKLSAgICAg
ICAgZm9yIG5hbWUsIHZhbCBpbiBzZWxmLl9uYW1lMnBsdWdpbi5pdGVtcygpOgotICAgICAgICAg
ICAgaWYgcGx1Z2luID09IHZhbDoKLSAgICAgICAgICAgICAgICByZXR1cm4gbmFtZQotCi0gICAg
ZGVmIF92ZXJpZnlfaG9vayhzZWxmLCBob29rLCBob29raW1wbCk6Ci0gICAgICAgIGlmIGhvb2su
aXNfaGlzdG9yaWMoKSBhbmQgaG9va2ltcGwuaG9va3dyYXBwZXI6Ci0gICAgICAgICAgICByYWlz
ZSBQbHVnaW5WYWxpZGF0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgIlBsdWdpbiAlclxuaG9v
ayAlclxuaGlzdG9yaWMgaW5jb21wYXRpYmxlIHRvIGhvb2t3cmFwcGVyIiAlCi0gICAgICAgICAg
ICAgICAgKGhvb2tpbXBsLnBsdWdpbl9uYW1lLCBob29rLm5hbWUpKQotCi0gICAgICAgICMgcG9z
aXRpb25hbCBhcmcgY2hlY2tpbmcKLSAgICAgICAgbm90aW5zcGVjID0gc2V0KGhvb2tpbXBsLmFy
Z25hbWVzKSAtIHNldChob29rLmFyZ25hbWVzKQotICAgICAgICBpZiBub3RpbnNwZWM6Ci0gICAg
ICAgICAgICByYWlzZSBQbHVnaW5WYWxpZGF0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgIlBs
dWdpbiAlciBmb3IgaG9vayAlclxuaG9va2ltcGwgZGVmaW5pdGlvbjogJXNcbiIKLSAgICAgICAg
ICAgICAgICAiQXJndW1lbnQocykgJXMgYXJlIGRlY2xhcmVkIGluIHRoZSBob29raW1wbCBidXQg
IgotICAgICAgICAgICAgICAgICJjYW4gbm90IGJlIGZvdW5kIGluIHRoZSBob29rc3BlYyIgJQot
ICAgICAgICAgICAgICAgIChob29raW1wbC5wbHVnaW5fbmFtZSwgaG9vay5uYW1lLAotICAgICAg
ICAgICAgICAgICBfZm9ybWF0ZGVmKGhvb2tpbXBsLmZ1bmN0aW9uKSwgbm90aW5zcGVjKQotICAg
ICAgICAgICAgKQotCi0gICAgZGVmIGNoZWNrX3BlbmRpbmcoc2VsZik6Ci0gICAgICAgICIiIiBW
ZXJpZnkgdGhhdCBhbGwgaG9va3Mgd2hpY2ggaGF2ZSBub3QgYmVlbiB2ZXJpZmllZCBhZ2FpbnN0
Ci0gICAgICAgIGEgaG9vayBzcGVjaWZpY2F0aW9uIGFyZSBvcHRpb25hbCwgb3RoZXJ3aXNlIHJh
aXNlIFBsdWdpblZhbGlkYXRpb25FcnJvciIiIgotICAgICAgICBmb3IgbmFtZSBpbiBzZWxmLmhv
b2suX19kaWN0X186Ci0gICAgICAgICAgICBpZiBuYW1lWzBdICE9ICJfIjoKLSAgICAgICAgICAg
ICAgICBob29rID0gZ2V0YXR0cihzZWxmLmhvb2ssIG5hbWUpCi0gICAgICAgICAgICAgICAgaWYg
bm90IGhvb2suaGFzX3NwZWMoKToKLSAgICAgICAgICAgICAgICAgICAgZm9yIGhvb2tpbXBsIGlu
IChob29rLl93cmFwcGVycyArIGhvb2suX25vbndyYXBwZXJzKToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIG5vdCBob29raW1wbC5vcHRpb25hbGhvb2s6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmFpc2UgUGx1Z2luVmFsaWRhdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAidW5rbm93biBob29rICVyIGluIHBsdWdpbiAlciIgJQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobmFtZSwgaG9va2ltcGwucGx1Z2luKSkKLQotICAgIGRl
ZiBsb2FkX3NldHVwdG9vbHNfZW50cnlwb2ludHMoc2VsZiwgZW50cnlwb2ludF9uYW1lKToKLSAg
ICAgICAgIiIiIExvYWQgbW9kdWxlcyBmcm9tIHF1ZXJ5aW5nIHRoZSBzcGVjaWZpZWQgc2V0dXB0
b29scyBlbnRyeXBvaW50IG5hbWUuCi0gICAgICAgIFJldHVybiB0aGUgbnVtYmVyIG9mIGxvYWRl
ZCBwbHVnaW5zLiAiIiIKLSAgICAgICAgZnJvbSBwa2dfcmVzb3VyY2VzIGltcG9ydCAoaXRlcl9l
bnRyeV9wb2ludHMsIERpc3RyaWJ1dGlvbk5vdEZvdW5kLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBWZXJzaW9uQ29uZmxpY3QpCi0gICAgICAgIGZvciBlcCBpbiBpdGVyX2Vu
dHJ5X3BvaW50cyhlbnRyeXBvaW50X25hbWUpOgotICAgICAgICAgICAgIyBpcyB0aGUgcGx1Z2lu
IHJlZ2lzdGVyZWQgb3IgYmxvY2tlZD8KLSAgICAgICAgICAgIGlmIHNlbGYuZ2V0X3BsdWdpbihl
cC5uYW1lKSBvciBzZWxmLmlzX2Jsb2NrZWQoZXAubmFtZSk6Ci0gICAgICAgICAgICAgICAgY29u
dGludWUKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBwbHVnaW4gPSBlcC5sb2Fk
KCkKLSAgICAgICAgICAgIGV4Y2VwdCBEaXN0cmlidXRpb25Ob3RGb3VuZDoKLSAgICAgICAgICAg
ICAgICBjb250aW51ZQotICAgICAgICAgICAgZXhjZXB0IFZlcnNpb25Db25mbGljdCBhcyBlOgot
ICAgICAgICAgICAgICAgIHJhaXNlIFBsdWdpblZhbGlkYXRpb25FcnJvcigKLSAgICAgICAgICAg
ICAgICAgICAgIlBsdWdpbiAlciBjb3VsZCBub3QgYmUgbG9hZGVkOiAlcyEiICUgKGVwLm5hbWUs
IGUpKQotICAgICAgICAgICAgc2VsZi5yZWdpc3RlcihwbHVnaW4sIG5hbWU9ZXAubmFtZSkKLSAg
ICAgICAgICAgIHNlbGYuX3BsdWdpbl9kaXN0aW5mby5hcHBlbmQoKHBsdWdpbiwgZXAuZGlzdCkp
Ci0gICAgICAgIHJldHVybiBsZW4oc2VsZi5fcGx1Z2luX2Rpc3RpbmZvKQotCi0gICAgZGVmIGxp
c3RfcGx1Z2luX2Rpc3RpbmZvKHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIGxpc3Qgb2YgZGlz
dGluZm8vcGx1Z2luIHR1cGxlcyBmb3IgYWxsIHNldHVwdG9vbHMgcmVnaXN0ZXJlZAotICAgICAg
ICBwbHVnaW5zLiAiIiIKLSAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5fcGx1Z2luX2Rpc3RpbmZv
KQotCi0gICAgZGVmIGxpc3RfbmFtZV9wbHVnaW4oc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4g
bGlzdCBvZiBuYW1lL3BsdWdpbiBwYWlycy4gIiIiCi0gICAgICAgIHJldHVybiBsaXN0KHNlbGYu
X25hbWUycGx1Z2luLml0ZW1zKCkpCi0KLSAgICBkZWYgZ2V0X2hvb2tjYWxsZXJzKHNlbGYsIHBs
dWdpbik6Ci0gICAgICAgICIiIiBnZXQgYWxsIGhvb2sgY2FsbGVycyBmb3IgdGhlIHNwZWNpZmll
ZCBwbHVnaW4uICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzLmdl
dChwbHVnaW4pCi0KLSAgICBkZWYgYWRkX2hvb2tjYWxsX21vbml0b3Jpbmcoc2VsZiwgYmVmb3Jl
LCBhZnRlcik6Ci0gICAgICAgICIiIiBhZGQgYmVmb3JlL2FmdGVyIHRyYWNpbmcgZnVuY3Rpb25z
IGZvciBhbGwgaG9va3MKLSAgICAgICAgYW5kIHJldHVybiBhbiB1bmRvIGZ1bmN0aW9uIHdoaWNo
LCB3aGVuIGNhbGxlZCwKLSAgICAgICAgd2lsbCByZW1vdmUgdGhlIGFkZGVkIHRyYWNlcnMuCi0K
LSAgICAgICAgYGBiZWZvcmUoaG9va19uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpYGAgd2lsbCBi
ZSBjYWxsZWQgYWhlYWQKLSAgICAgICAgb2YgYWxsIGhvb2sgY2FsbHMgYW5kIHJlY2VpdmUgYSBo
b29rY2FsbGVyIGluc3RhbmNlLCBhIGxpc3QKLSAgICAgICAgb2YgSG9va0ltcGwgaW5zdGFuY2Vz
IGFuZCB0aGUga2V5d29yZCBhcmd1bWVudHMgZm9yIHRoZSBob29rIGNhbGwuCi0KLSAgICAgICAg
YGBhZnRlcihvdXRjb21lLCBob29rX25hbWUsIGhvb2tfaW1wbHMsIGt3YXJncylgYCByZWNlaXZl
cyB0aGUKLSAgICAgICAgc2FtZSBhcmd1bWVudHMgYXMgYGBiZWZvcmVgYCBidXQgYWxzbyBhIDpw
eTpjbGFzczpgX1Jlc3VsdGBgIG9iamVjdAotICAgICAgICB3aGljaCByZXByZXNlbnRzIHRoZSBy
ZXN1bHQgb2YgdGhlIG92ZXJhbGwgaG9vayBjYWxsLgotICAgICAgICAiIiIKLSAgICAgICAgcmV0
dXJuIF9UcmFjZWRIb29rRXhlY3V0aW9uKHNlbGYsIGJlZm9yZSwgYWZ0ZXIpLnVuZG8KLQotICAg
IGRlZiBlbmFibGVfdHJhY2luZyhzZWxmKToKLSAgICAgICAgIiIiIGVuYWJsZSB0cmFjaW5nIG9m
IGhvb2sgY2FsbHMgYW5kIHJldHVybiBhbiB1bmRvIGZ1bmN0aW9uLiAiIiIKLSAgICAgICAgaG9v
a3RyYWNlID0gc2VsZi5ob29rLl90cmFjZQotCi0gICAgICAgIGRlZiBiZWZvcmUoaG9va19uYW1l
LCBtZXRob2RzLCBrd2FyZ3MpOgotICAgICAgICAgICAgaG9va3RyYWNlLnJvb3QuaW5kZW50ICs9
IDEKLSAgICAgICAgICAgIGhvb2t0cmFjZShob29rX25hbWUsIGt3YXJncykKLQotICAgICAgICBk
ZWYgYWZ0ZXIob3V0Y29tZSwgaG9va19uYW1lLCBtZXRob2RzLCBrd2FyZ3MpOgotICAgICAgICAg
ICAgaWYgb3V0Y29tZS5leGNpbmZvIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgaG9va3RyYWNl
KCJmaW5pc2giLCBob29rX25hbWUsICItLT4iLCBvdXRjb21lLmdldF9yZXN1bHQoKSkKLSAgICAg
ICAgICAgIGhvb2t0cmFjZS5yb290LmluZGVudCAtPSAxCi0KLSAgICAgICAgcmV0dXJuIHNlbGYu
YWRkX2hvb2tjYWxsX21vbml0b3JpbmcoYmVmb3JlLCBhZnRlcikKLQotICAgIGRlZiBzdWJzZXRf
aG9va19jYWxsZXIoc2VsZiwgbmFtZSwgcmVtb3ZlX3BsdWdpbnMpOgotICAgICAgICAiIiIgUmV0
dXJuIGEgbmV3IF9Ib29rQ2FsbGVyIGluc3RhbmNlIGZvciB0aGUgbmFtZWQgbWV0aG9kCi0gICAg
ICAgIHdoaWNoIG1hbmFnZXMgY2FsbHMgdG8gYWxsIHJlZ2lzdGVyZWQgcGx1Z2lucyBleGNlcHQg
dGhlCi0gICAgICAgIG9uZXMgZnJvbSByZW1vdmVfcGx1Z2lucy4gIiIiCi0gICAgICAgIG9yaWcg
PSBnZXRhdHRyKHNlbGYuaG9vaywgbmFtZSkKLSAgICAgICAgcGx1Z2luc190b19yZW1vdmUgPSBb
cGx1ZyBmb3IgcGx1ZyBpbiByZW1vdmVfcGx1Z2lucyBpZiBoYXNhdHRyKHBsdWcsIG5hbWUpXQot
ICAgICAgICBpZiBwbHVnaW5zX3RvX3JlbW92ZToKLSAgICAgICAgICAgIGhjID0gX0hvb2tDYWxs
ZXIob3JpZy5uYW1lLCBvcmlnLl9ob29rZXhlYywgb3JpZy5fc3BlY21vZHVsZV9vcl9jbGFzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZy5zcGVjX29wdHMpCi0gICAgICAgICAg
ICBmb3IgaG9va2ltcGwgaW4gKG9yaWcuX3dyYXBwZXJzICsgb3JpZy5fbm9ud3JhcHBlcnMpOgot
ICAgICAgICAgICAgICAgIHBsdWdpbiA9IGhvb2tpbXBsLnBsdWdpbgotICAgICAgICAgICAgICAg
IGlmIHBsdWdpbiBub3QgaW4gcGx1Z2luc190b19yZW1vdmU6Ci0gICAgICAgICAgICAgICAgICAg
IGhjLl9hZGRfaG9va2ltcGwoaG9va2ltcGwpCi0gICAgICAgICAgICAgICAgICAgICMgd2UgYWxz
byBrZWVwIHRyYWNrIG9mIHRoaXMgaG9vayBjYWxsZXIgc28gaXQKLSAgICAgICAgICAgICAgICAg
ICAgIyBnZXRzIHByb3Blcmx5IHJlbW92ZWQgb24gcGx1Z2luIHVucmVnaXN0cmF0aW9uCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3BsdWdpbjJob29rY2FsbGVycy5zZXRkZWZhdWx0KHBsdWdp
biwgW10pLmFwcGVuZChoYykKLSAgICAgICAgICAgIHJldHVybiBoYwotICAgICAgICByZXR1cm4g
b3JpZwotCi0KLWRlZiB2YXJuYW1lcyhmdW5jKToKLSAgICAiIiJSZXR1cm4gdHVwbGUgb2YgcG9z
aXRpb25hbCBhbmQga2V5d3JvcmQgYXJndW1lbnQgbmFtZXMgZm9yIGEgZnVuY3Rpb24sCi0gICAg
bWV0aG9kLCBjbGFzcyBvciBjYWxsYWJsZS4KLQotICAgIEluIGNhc2Ugb2YgYSBjbGFzcywgaXRz
IGBgX19pbml0X19gYCBtZXRob2QgaXMgY29uc2lkZXJlZC4KLSAgICBGb3IgbWV0aG9kcyB0aGUg
YGBzZWxmYGAgcGFyYW1ldGVyIGlzIG5vdCBpbmNsdWRlZC4KLSAgICAiIiIKLSAgICBjYWNoZSA9
IGdldGF0dHIoZnVuYywgIl9fZGljdF9fIiwge30pCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4g
Y2FjaGVbIl92YXJuYW1lcyJdCi0gICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICBwYXNzCi0K
LSAgICBpZiBpbnNwZWN0LmlzY2xhc3MoZnVuYyk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGZ1bmMgPSBmdW5jLl9faW5pdF9fCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAg
ICAgICAgICAgIHJldHVybiAoKSwgKCkKLSAgICBlbGlmIG5vdCBpbnNwZWN0Lmlzcm91dGluZShm
dW5jKTogICMgY2FsbGFibGUgb2JqZWN0PwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmdW5j
ID0gZ2V0YXR0cihmdW5jLCAnX19jYWxsX18nLCBmdW5jKQotICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgotICAgICAgICAgICAgcmV0dXJuICgpCi0KLSAgICB0cnk6ICAjIGZ1bmMgTVVTVCBiZSBh
IGZ1bmN0aW9uIG9yIG1ldGhvZCBoZXJlIG9yIHdlIHdvbid0IHBhcnNlIGFueSBhcmdzCi0gICAg
ICAgIHNwZWMgPSBfZ2V0YXJnc3BlYyhmdW5jKQotICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAg
ICAgIHJldHVybiAoKSwgKCkKLQotICAgIGFyZ3MsIGRlZmF1bHRzID0gdHVwbGUoc3BlYy5hcmdz
KSwgc3BlYy5kZWZhdWx0cwotICAgIGlmIGRlZmF1bHRzOgotICAgICAgICBpbmRleCA9IC1sZW4o
ZGVmYXVsdHMpCi0gICAgICAgIGFyZ3MsIGRlZmF1bHRzID0gYXJnc1s6aW5kZXhdLCB0dXBsZShh
cmdzW2luZGV4Ol0pCi0gICAgZWxzZToKLSAgICAgICAgZGVmYXVsdHMgPSAoKQotCi0gICAgIyBz
dHJpcCBhbnkgaW1wbGljaXQgaW5zdGFuY2UgYXJnCi0gICAgaWYgYXJnczoKLSAgICAgICAgaWYg
aW5zcGVjdC5pc21ldGhvZChmdW5jKSBvciAoCi0gICAgICAgICAgICAnLicgaW4gZ2V0YXR0cihm
dW5jLCAnX19xdWFsbmFtZV9fJywgKCkpIGFuZCBhcmdzWzBdID09ICdzZWxmJwotICAgICAgICAp
OgotICAgICAgICAgICAgYXJncyA9IGFyZ3NbMTpdCi0KLSAgICBhc3NlcnQgInNlbGYiIG5vdCBp
biBhcmdzICAjIGJlc3QgbmFtaW5nIHByYWN0aXNlcyBjaGVjaz8KLSAgICB0cnk6Ci0gICAgICAg
IGNhY2hlWyJfdmFybmFtZXMiXSA9IGFyZ3MsIGRlZmF1bHRzCi0gICAgZXhjZXB0IFR5cGVFcnJv
cjoKLSAgICAgICAgcGFzcwotICAgIHJldHVybiBhcmdzLCBkZWZhdWx0cwotCi0KLWNsYXNzIF9I
b29rUmVsYXkob2JqZWN0KToKLSAgICAiIiIgaG9vayBob2xkZXIgb2JqZWN0IGZvciBwZXJmb3Jt
aW5nIDE6TiBob29rIGNhbGxzIHdoZXJlIE4gaXMgdGhlIG51bWJlcgotICAgIG9mIHJlZ2lzdGVy
ZWQgcGx1Z2lucy4KLQotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRyYWNlKToK
LSAgICAgICAgc2VsZi5fdHJhY2UgPSB0cmFjZQotCi0KLWNsYXNzIF9Ib29rQ2FsbGVyKG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGhvb2tfZXhlY3V0ZSwgc3BlY21vZHVs
ZV9vcl9jbGFzcz1Ob25lLAotICAgICAgICAgICAgICAgICBzcGVjX29wdHM9Tm9uZSk6Ci0gICAg
ICAgIHNlbGYubmFtZSA9IG5hbWUKLSAgICAgICAgc2VsZi5fd3JhcHBlcnMgPSBbXQotICAgICAg
ICBzZWxmLl9ub253cmFwcGVycyA9IFtdCi0gICAgICAgIHNlbGYuX2hvb2tleGVjID0gaG9va19l
eGVjdXRlCi0gICAgICAgIHNlbGYuX3NwZWNtb2R1bGVfb3JfY2xhc3MgPSBOb25lCi0gICAgICAg
IHNlbGYuYXJnbmFtZXMgPSBOb25lCi0gICAgICAgIHNlbGYua3dhcmduYW1lcyA9IE5vbmUKLSAg
ICAgICAgc2VsZi5tdWx0aWNhbGwgPSBfbXVsdGljYWxsCi0gICAgICAgIHNlbGYuc3BlY19vcHRz
ID0gc3BlY19vcHRzIG9yIHt9Ci0gICAgICAgIGlmIHNwZWNtb2R1bGVfb3JfY2xhc3MgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLnNldF9zcGVjaWZpY2F0aW9uKHNwZWNtb2R1bGVfb3Jf
Y2xhc3MsIHNwZWNfb3B0cykKLQotICAgIGRlZiBoYXNfc3BlYyhzZWxmKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX3NwZWNtb2R1bGVfb3JfY2xhc3MgaXMgbm90IE5vbmUKLQotICAgIGRlZiBzZXRf
c3BlY2lmaWNhdGlvbihzZWxmLCBzcGVjbW9kdWxlX29yX2NsYXNzLCBzcGVjX29wdHMpOgotICAg
ICAgICBhc3NlcnQgbm90IHNlbGYuaGFzX3NwZWMoKQotICAgICAgICBzZWxmLl9zcGVjbW9kdWxl
X29yX2NsYXNzID0gc3BlY21vZHVsZV9vcl9jbGFzcwotICAgICAgICBzcGVjZnVuYyA9IGdldGF0
dHIoc3BlY21vZHVsZV9vcl9jbGFzcywgc2VsZi5uYW1lKQotICAgICAgICAjIGdldCBzcGVjIGFy
ZyBzaWduYXR1cmUKLSAgICAgICAgYXJnbmFtZXMsIHNlbGYua3dhcmduYW1lcyA9IHZhcm5hbWVz
KHNwZWNmdW5jKQotICAgICAgICBzZWxmLmFyZ25hbWVzID0gWyJfX211bHRpY2FsbF9fIl0gKyBs
aXN0KGFyZ25hbWVzKQotICAgICAgICBzZWxmLnNwZWNfb3B0cy51cGRhdGUoc3BlY19vcHRzKQot
ICAgICAgICBpZiBzcGVjX29wdHMuZ2V0KCJoaXN0b3JpYyIpOgotICAgICAgICAgICAgc2VsZi5f
Y2FsbF9oaXN0b3J5ID0gW10KLQotICAgIGRlZiBpc19oaXN0b3JpYyhzZWxmKToKLSAgICAgICAg
cmV0dXJuIGhhc2F0dHIoc2VsZiwgIl9jYWxsX2hpc3RvcnkiKQotCi0gICAgZGVmIF9yZW1vdmVf
cGx1Z2luKHNlbGYsIHBsdWdpbik6Ci0gICAgICAgIGRlZiByZW1vdmUod3JhcHBlcnMpOgotICAg
ICAgICAgICAgZm9yIGksIG1ldGhvZCBpbiBlbnVtZXJhdGUod3JhcHBlcnMpOgotICAgICAgICAg
ICAgICAgIGlmIG1ldGhvZC5wbHVnaW4gPT0gcGx1Z2luOgotICAgICAgICAgICAgICAgICAgICBk
ZWwgd3JhcHBlcnNbaV0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAg
aWYgcmVtb3ZlKHNlbGYuX3dyYXBwZXJzKSBpcyBOb25lOgotICAgICAgICAgICAgaWYgcmVtb3Zl
KHNlbGYuX25vbndyYXBwZXJzKSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoInBsdWdpbiAlciBub3QgZm91bmQiICUgKHBsdWdpbiwpKQotCi0gICAgZGVmIF9hZGRf
aG9va2ltcGwoc2VsZiwgaG9va2ltcGwpOgotICAgICAgICAiIiJBIGFuIGltcGxlbWVudGF0aW9u
IHRvIHRoZSBjYWxsYmFjayBjaGFpbi4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGhvb2tpbXBs
Lmhvb2t3cmFwcGVyOgotICAgICAgICAgICAgbWV0aG9kcyA9IHNlbGYuX3dyYXBwZXJzCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBtZXRob2RzID0gc2VsZi5fbm9ud3JhcHBlcnMKLQotICAg
ICAgICBpZiBob29raW1wbC50cnlsYXN0OgotICAgICAgICAgICAgbWV0aG9kcy5pbnNlcnQoMCwg
aG9va2ltcGwpCi0gICAgICAgIGVsaWYgaG9va2ltcGwudHJ5Zmlyc3Q6Ci0gICAgICAgICAgICBt
ZXRob2RzLmFwcGVuZChob29raW1wbCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgICMgZmlu
ZCBsYXN0IG5vbi10cnlmaXJzdCBtZXRob2QKLSAgICAgICAgICAgIGkgPSBsZW4obWV0aG9kcykg
LSAxCi0gICAgICAgICAgICB3aGlsZSBpID49IDAgYW5kIG1ldGhvZHNbaV0udHJ5Zmlyc3Q6Ci0g
ICAgICAgICAgICAgICAgaSAtPSAxCi0gICAgICAgICAgICBtZXRob2RzLmluc2VydChpICsgMSwg
aG9va2ltcGwpCi0KLSAgICAgICAgaWYgJ19fbXVsdGljYWxsX18nIGluIGhvb2tpbXBsLmFyZ25h
bWVzOgotICAgICAgICAgICAgd2FybmluZ3Mud2FybigKLSAgICAgICAgICAgICAgICAiU3VwcG9y
dCBmb3IgX19tdWx0aWNhbGxfXyBpcyBub3cgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSIKLSAgICAg
ICAgICAgICAgICAicmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiIsCi0gICAgICAgICAg
ICAgICAgRGVwcmVjYXRpb25XYXJuaW5nCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxm
Lm11bHRpY2FsbCA9IF9sZWdhY3ltdWx0aWNhbGwKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToK
LSAgICAgICAgcmV0dXJuICI8X0hvb2tDYWxsZXIgJXI+IiAlIChzZWxmLm5hbWUsKQotCi0gICAg
ZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIGlmIGFyZ3M6Ci0g
ICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImhvb2sgY2FsbGluZyBzdXBwb3J0cyBvbmx5IGtl
eXdvcmQgYXJndW1lbnRzIikKLSAgICAgICAgYXNzZXJ0IG5vdCBzZWxmLmlzX2hpc3RvcmljKCkK
LSAgICAgICAgaWYgc2VsZi5hcmduYW1lczoKLSAgICAgICAgICAgIG5vdGluY2FsbCA9IHNldChz
ZWxmLmFyZ25hbWVzKSAtIHNldChbJ19fbXVsdGljYWxsX18nXSkgLSBzZXQoCi0gICAgICAgICAg
ICAgICAga3dhcmdzLmtleXMoKSkKLSAgICAgICAgICAgIGlmIG5vdGluY2FsbDoKLSAgICAgICAg
ICAgICAgICB3YXJuaW5ncy53YXJuKAotICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQocykg
e30gd2hpY2ggYXJlIGRlY2xhcmVkIGluIHRoZSBob29rc3BlYyAiCi0gICAgICAgICAgICAgICAg
ICAgICJjYW4gbm90IGJlIGZvdW5kIGluIHRoaXMgaG9vayBjYWxsIgotICAgICAgICAgICAgICAg
ICAgICAuZm9ybWF0KHR1cGxlKG5vdGluY2FsbCkpLAotICAgICAgICAgICAgICAgICAgICBzdGFj
a2xldmVsPTIsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICByZXR1cm4gc2VsZi5faG9va2V4
ZWMoc2VsZiwgc2VsZi5fbm9ud3JhcHBlcnMgKyBzZWxmLl93cmFwcGVycywga3dhcmdzKQotCi0g
ICAgZGVmIGNhbGxfaGlzdG9yaWMoc2VsZiwgcHJvYz1Ob25lLCBrd2FyZ3M9Tm9uZSk6Ci0gICAg
ICAgICIiIiBjYWxsIHRoZSBob29rIHdpdGggZ2l2ZW4gYGBrd2FyZ3NgYCBmb3IgYWxsIHJlZ2lz
dGVyZWQgcGx1Z2lucyBhbmQKLSAgICAgICAgZm9yIGFsbCBwbHVnaW5zIHdoaWNoIHdpbGwgYmUg
cmVnaXN0ZXJlZCBhZnRlcndhcmRzLgotCi0gICAgICAgIElmIGBgcHJvY2BgIGlzIG5vdCBOb25l
IGl0IHdpbGwgYmUgY2FsbGVkIGZvciBmb3IgZWFjaCBub24tTm9uZSByZXN1bHQKLSAgICAgICAg
b2J0YWluZWQgZnJvbSBhIGhvb2sgaW1wbGVtZW50YXRpb24uCi0gICAgICAgICIiIgotICAgICAg
ICBzZWxmLl9jYWxsX2hpc3RvcnkuYXBwZW5kKChrd2FyZ3Mgb3Ige30sIHByb2MpKQotICAgICAg
ICAjIGhpc3Rvcml6aW5nIGhvb2tzIGRvbid0IHJldHVybiByZXN1bHRzCi0gICAgICAgIHJlcyA9
IHNlbGYuX2hvb2tleGVjKHNlbGYsIHNlbGYuX25vbndyYXBwZXJzICsgc2VsZi5fd3JhcHBlcnMs
IGt3YXJncykKLSAgICAgICAgZm9yIHggaW4gcmVzIG9yIFtdOgotICAgICAgICAgICAgcHJvYyh4
KQotCi0gICAgZGVmIGNhbGxfZXh0cmEoc2VsZiwgbWV0aG9kcywga3dhcmdzKToKLSAgICAgICAg
IiIiIENhbGwgdGhlIGhvb2sgd2l0aCBzb21lIGFkZGl0aW9uYWwgdGVtcG9yYXJpbHkgcGFydGlj
aXBhdGluZwotICAgICAgICBtZXRob2RzIHVzaW5nIHRoZSBzcGVjaWZpZWQga3dhcmdzIGFzIGNh
bGwgcGFyYW1ldGVycy4gIiIiCi0gICAgICAgIG9sZCA9IGxpc3Qoc2VsZi5fbm9ud3JhcHBlcnMp
LCBsaXN0KHNlbGYuX3dyYXBwZXJzKQotICAgICAgICBmb3IgbWV0aG9kIGluIG1ldGhvZHM6Ci0g
ICAgICAgICAgICBvcHRzID0gZGljdChob29rd3JhcHBlcj1GYWxzZSwgdHJ5bGFzdD1GYWxzZSwg
dHJ5Zmlyc3Q9RmFsc2UpCi0gICAgICAgICAgICBob29raW1wbCA9IEhvb2tJbXBsKE5vbmUsICI8
dGVtcD4iLCBtZXRob2QsIG9wdHMpCi0gICAgICAgICAgICBzZWxmLl9hZGRfaG9va2ltcGwoaG9v
a2ltcGwpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmKCoqa3dhcmdzKQot
ICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbm9ud3JhcHBlcnMsIHNlbGYuX3dy
YXBwZXJzID0gb2xkCi0KLSAgICBkZWYgX21heWJlX2FwcGx5X2hpc3Rvcnkoc2VsZiwgbWV0aG9k
KToKLSAgICAgICAgIiIiQXBwbHkgY2FsbCBoaXN0b3J5IHRvIGEgbmV3IGhvb2tpbXBsIGlmIGl0
IGlzIG1hcmtlZCBhcyBoaXN0b3JpYy4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuaXNf
aGlzdG9yaWMoKToKLSAgICAgICAgICAgIGZvciBrd2FyZ3MsIHByb2MgaW4gc2VsZi5fY2FsbF9o
aXN0b3J5OgotICAgICAgICAgICAgICAgIHJlcyA9IHNlbGYuX2hvb2tleGVjKHNlbGYsIFttZXRo
b2RdLCBrd2FyZ3MpCi0gICAgICAgICAgICAgICAgaWYgcmVzIGFuZCBwcm9jIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgICAgICAgICBwcm9jKHJlc1swXSkKLQotCi1jbGFzcyBIb29rSW1wbChv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwbHVnaW4sIHBsdWdpbl9uYW1lLCBmdW5j
dGlvbiwgaG9va19pbXBsX29wdHMpOgotICAgICAgICBzZWxmLmZ1bmN0aW9uID0gZnVuY3Rpb24K
LSAgICAgICAgc2VsZi5hcmduYW1lcywgc2VsZi5rd2FyZ25hbWVzID0gdmFybmFtZXMoc2VsZi5m
dW5jdGlvbikKLSAgICAgICAgc2VsZi5wbHVnaW4gPSBwbHVnaW4KLSAgICAgICAgc2VsZi5vcHRz
ID0gaG9va19pbXBsX29wdHMKLSAgICAgICAgc2VsZi5wbHVnaW5fbmFtZSA9IHBsdWdpbl9uYW1l
Ci0gICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGhvb2tfaW1wbF9vcHRzKQotCi0KLWlmIGhh
c2F0dHIoaW5zcGVjdCwgJ2dldGZ1bGxhcmdzcGVjJyk6Ci0gICAgZGVmIF9nZXRhcmdzcGVjKGZ1
bmMpOgotICAgICAgICByZXR1cm4gaW5zcGVjdC5nZXRmdWxsYXJnc3BlYyhmdW5jKQotZWxzZToK
LSAgICBkZWYgX2dldGFyZ3NwZWMoZnVuYyk6Ci0gICAgICAgIHJldHVybiBpbnNwZWN0LmdldGFy
Z3NwZWMoZnVuYykKLQotCi1pZiBoYXNhdHRyKGluc3BlY3QsICdzaWduYXR1cmUnKToKLSAgICBk
ZWYgX2Zvcm1hdGRlZihmdW5jKToKLSAgICAgICAgcmV0dXJuICIlcyVzIiAlICgKLSAgICAgICAg
ICAgIGZ1bmMuX19uYW1lX18sCi0gICAgICAgICAgICBzdHIoaW5zcGVjdC5zaWduYXR1cmUoZnVu
YykpCi0gICAgICAgICkKLWVsc2U6Ci0gICAgZGVmIF9mb3JtYXRkZWYoZnVuYyk6Ci0gICAgICAg
IHJldHVybiAiJXMlcyIgJSAoCi0gICAgICAgICAgICBmdW5jLl9fbmFtZV9fLAotICAgICAgICAg
ICAgaW5zcGVjdC5mb3JtYXRhcmdzcGVjKCppbnNwZWN0LmdldGFyZ3NwZWMoZnVuYykpCi0gICAg
ICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9jYWxsZXJzLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvcGx1Z2d5L2NhbGxlcnMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNm
ZjY3YmVjZmZiY2I0YzNlMGNkYzJmZTFiZGI4YjY4MzRkYmQ3NjkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L2NhbGxlcnMu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMDEgKzAsMCBAQAotJycnCi1DYWxsIGxvb3AgbWFjaGlu
ZXJ5Ci0nJycKLWltcG9ydCBzeXMKLWltcG9ydCB3YXJuaW5ncwotCi1fcHkzID0gc3lzLnZlcnNp
b25faW5mbyA+ICgzLCAwKQotCi0KLWlmIG5vdCBfcHkzOgotICAgIGV4ZWMoIiIiCi1kZWYgX3Jl
cmFpc2UoY2xzLCB2YWwsIHRiKToKLSAgICByYWlzZSBjbHMsIHZhbCwgdGIKLSIiIikKLQotCi1k
ZWYgX3JhaXNlX3dyYXBmYWlsKHdyYXBfY29udHJvbGxlciwgbXNnKToKLSAgICBjbyA9IHdyYXBf
Y29udHJvbGxlci5naV9jb2RlCi0gICAgcmFpc2UgUnVudGltZUVycm9yKCJ3cmFwX2NvbnRyb2xs
ZXIgYXQgJXIgJXM6JWQgJXMiICUKLSAgICAgICAgICAgICAgICAgICAgICAgKGNvLmNvX25hbWUs
IGNvLmNvX2ZpbGVuYW1lLCBjby5jb19maXJzdGxpbmVubywgbXNnKSkKLQotCi1jbGFzcyBIb29r
Q2FsbEVycm9yKEV4Y2VwdGlvbik6Ci0gICAgIiIiIEhvb2sgd2FzIGNhbGxlZCB3cm9uZ2x5LiAi
IiIKLQotCi1jbGFzcyBfUmVzdWx0KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJl
c3VsdCwgZXhjaW5mbyk6Ci0gICAgICAgIHNlbGYuX3Jlc3VsdCA9IHJlc3VsdAotICAgICAgICBz
ZWxmLl9leGNpbmZvID0gZXhjaW5mbwotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGV4Y2luZm8o
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9leGNpbmZvCi0KLSAgICBAcHJvcGVydHkKLSAg
ICBkZWYgcmVzdWx0KHNlbGYpOgotICAgICAgICAiIiJHZXQgdGhlIHJlc3VsdChzKSBmb3IgdGhp
cyBob29rIGNhbGwgKERFUFJFQ0FURUQgaW4gZmF2b3Igb2YgYGBnZXRfcmVzdWx0KClgYCkuIiIi
Ci0gICAgICAgIG1zZyA9ICdVc2UgZ2V0X3Jlc3VsdCgpIHdoaWNoIGZvcmNlcyBjb3JyZWN0IGV4
Y2VwdGlvbiBoYW5kbGluZycKLSAgICAgICAgd2FybmluZ3Mud2FybihEZXByZWNhdGlvbldhcm5p
bmcobXNnKSwgc3RhY2tsZXZlbD0yKQotICAgICAgICByZXR1cm4gc2VsZi5fcmVzdWx0Ci0KLSAg
ICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJvbV9jYWxsKGNscywgZnVuYyk6Ci0gICAgICAgIF9f
dHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICByZXN1bHQgPSBleGNpbmZvID0gTm9uZQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXN1bHQgPSBmdW5jKCkKLSAgICAgICAgZXhjZXB0
IEJhc2VFeGNlcHRpb246Ci0gICAgICAgICAgICBleGNpbmZvID0gc3lzLmV4Y19pbmZvKCkKLQot
ICAgICAgICByZXR1cm4gY2xzKHJlc3VsdCwgZXhjaW5mbykKLQotICAgIGRlZiBmb3JjZV9yZXN1
bHQoc2VsZiwgcmVzdWx0KToKLSAgICAgICAgIiIiRm9yY2UgdGhlIHJlc3VsdChzKSB0byBgYHJl
c3VsdGBgLgotCi0gICAgICAgIElmIHRoZSBob29rIHdhcyBtYXJrZWQgYXMgYSBgYGZpcnN0cmVz
dWx0YGAgYSBzaW5nbGUgdmFsdWUgc2hvdWxkCi0gICAgICAgIGJlIHNldCBvdGhlcndpc2Ugc2V0
IGEgKG1vZGlmaWVkKSBsaXN0IG9mIHJlc3VsdHMuIEFueSBleGNlcHRpb25zCi0gICAgICAgIGZv
dW5kIGR1cmluZyBpbnZvY2F0aW9uIHdpbGwgYmUgZGVsZXRlZC4KLSAgICAgICAgIiIiCi0gICAg
ICAgIHNlbGYuX3Jlc3VsdCA9IHJlc3VsdAotICAgICAgICBzZWxmLl9leGNpbmZvID0gTm9uZQot
Ci0gICAgZGVmIGdldF9yZXN1bHQoc2VsZik6Ci0gICAgICAgICIiIkdldCB0aGUgcmVzdWx0KHMp
IGZvciB0aGlzIGhvb2sgY2FsbC4KLQotICAgICAgICBJZiB0aGUgaG9vayB3YXMgbWFya2VkIGFz
IGEgYGBmaXJzdHJlc3VsdGBgIG9ubHkgYSBzaW5nbGUgdmFsdWUKLSAgICAgICAgd2lsbCBiZSBy
ZXR1cm5lZCBvdGhlcndpc2UgYSBsaXN0IG9mIHJlc3VsdHMuCi0gICAgICAgICIiIgotICAgICAg
ICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgaWYgc2VsZi5fZXhjaW5mbyBpcyBO
b25lOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdAotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgZXggPSBzZWxmLl9leGNpbmZvCi0gICAgICAgICAgICBpZiBfcHkzOgotICAgICAg
ICAgICAgICAgIHJhaXNlIGV4WzFdLndpdGhfdHJhY2ViYWNrKGV4WzJdKQotICAgICAgICAgICAg
X3JlcmFpc2UoKmV4KSAgIyBub3FhCi0KLQotZGVmIF93cmFwcGVkX2NhbGwod3JhcF9jb250cm9s
bGVyLCBmdW5jKToKLSAgICAiIiIgV3JhcCBjYWxsaW5nIHRvIGEgZnVuY3Rpb24gd2l0aCBhIGdl
bmVyYXRvciB3aGljaCBuZWVkcyB0byB5aWVsZAotICAgIGV4YWN0bHkgb25jZS4gIFRoZSB5aWVs
ZCBwb2ludCB3aWxsIHRyaWdnZXIgY2FsbGluZyB0aGUgd3JhcHBlZCBmdW5jdGlvbgotICAgIGFu
ZCByZXR1cm4gaXRzIGBgX1Jlc3VsdGBgIHRvIHRoZSB5aWVsZCBwb2ludC4gIFRoZSBnZW5lcmF0
b3IgdGhlbiBuZWVkcwotICAgIHRvIGZpbmlzaCAocmFpc2UgU3RvcEl0ZXJhdGlvbikgaW4gb3Jk
ZXIgZm9yIHRoZSB3cmFwcGVkIGNhbGwgdG8gY29tcGxldGUuCi0gICAgIiIiCi0gICAgdHJ5Ogot
ICAgICAgICBuZXh0KHdyYXBfY29udHJvbGxlcikgICAjIGZpcnN0IHlpZWxkCi0gICAgZXhjZXB0
IFN0b3BJdGVyYXRpb246Ci0gICAgICAgIF9yYWlzZV93cmFwZmFpbCh3cmFwX2NvbnRyb2xsZXIs
ICJkaWQgbm90IHlpZWxkIikKLSAgICBjYWxsX291dGNvbWUgPSBfUmVzdWx0LmZyb21fY2FsbChm
dW5jKQotICAgIHRyeToKLSAgICAgICAgd3JhcF9jb250cm9sbGVyLnNlbmQoY2FsbF9vdXRjb21l
KQotICAgICAgICBfcmFpc2Vfd3JhcGZhaWwod3JhcF9jb250cm9sbGVyLCAiaGFzIHNlY29uZCB5
aWVsZCIpCi0gICAgZXhjZXB0IFN0b3BJdGVyYXRpb246Ci0gICAgICAgIHBhc3MKLSAgICByZXR1
cm4gY2FsbF9vdXRjb21lLmdldF9yZXN1bHQoKQotCi0KLWNsYXNzIF9MZWdhY3lNdWx0aUNhbGwo
b2JqZWN0KToKLSAgICAiIiIgZXhlY3V0ZSBhIGNhbGwgaW50byBtdWx0aXBsZSBweXRob24gZnVu
Y3Rpb25zL21ldGhvZHMuICIiIgotCi0gICAgIyBYWFggbm90ZSB0aGF0IHRoZSBfX211bHRpY2Fs
bF9fIGFyZ3VtZW50IGlzIHN1cHBvcnRlZCBvbmx5Ci0gICAgIyBmb3IgcHl0ZXN0IGNvbXBhdGli
aWxpdHkgcmVhc29ucy4gIEl0IHdhcyBuZXZlciBvZmZpY2lhbGx5Ci0gICAgIyBzdXBwb3J0ZWQg
dGhlcmUgYW5kIGlzIGV4cGxpY2l0ZWx5IGRlcHJlY2F0ZWQgc2luY2UgMi44Ci0gICAgIyBzbyB3
ZSBjYW4gcmVtb3ZlIGl0IHNvb24sIGFsbG93aW5nIHRvIGF2b2lkIHRoZSBiZWxvdyByZWN1cnNp
b24KLSAgICAjIGluIGV4ZWN1dGUoKSBhbmQgc2ltcGxpZnkvc3BlZWQgdXAgdGhlIGV4ZWN1dGUg
bG9vcC4KLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob29rX2ltcGxzLCBrd2FyZ3MsIGZpcnN0
cmVzdWx0PUZhbHNlKToKLSAgICAgICAgc2VsZi5ob29rX2ltcGxzID0gaG9va19pbXBscwotICAg
ICAgICBzZWxmLmNhbGxlcl9rd2FyZ3MgPSBrd2FyZ3MgICMgY29tZSBmcm9tIF9Ib29rQ2FsbGVy
Ll9fY2FsbF9fKCkKLSAgICAgICAgc2VsZi5jYWxsZXJfa3dhcmdzWyJfX211bHRpY2FsbF9fIl0g
PSBzZWxmCi0gICAgICAgIHNlbGYuZmlyc3RyZXN1bHQgPSBmaXJzdHJlc3VsdAotCi0gICAgZGVm
IGV4ZWN1dGUoc2VsZik6Ci0gICAgICAgIGNhbGxlcl9rd2FyZ3MgPSBzZWxmLmNhbGxlcl9rd2Fy
Z3MKLSAgICAgICAgc2VsZi5yZXN1bHRzID0gcmVzdWx0cyA9IFtdCi0gICAgICAgIGZpcnN0cmVz
dWx0ID0gc2VsZi5maXJzdHJlc3VsdAotCi0gICAgICAgIHdoaWxlIHNlbGYuaG9va19pbXBsczoK
LSAgICAgICAgICAgIGhvb2tfaW1wbCA9IHNlbGYuaG9va19pbXBscy5wb3AoKQotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIGFyZ3MgPSBbY2FsbGVyX2t3YXJnc1thcmduYW1lXSBm
b3IgYXJnbmFtZSBpbiBob29rX2ltcGwuYXJnbmFtZXNdCi0gICAgICAgICAgICBleGNlcHQgS2V5
RXJyb3I6Ci0gICAgICAgICAgICAgICAgZm9yIGFyZ25hbWUgaW4gaG9va19pbXBsLmFyZ25hbWVz
OgotICAgICAgICAgICAgICAgICAgICBpZiBhcmduYW1lIG5vdCBpbiBjYWxsZXJfa3dhcmdzOgot
ICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgSG9va0NhbGxFcnJvcigKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiaG9vayBjYWxsIG11c3QgcHJvdmlkZSBhcmd1bWVudCAlciIgJSAo
YXJnbmFtZSwpKQotICAgICAgICAgICAgaWYgaG9va19pbXBsLmhvb2t3cmFwcGVyOgotICAgICAg
ICAgICAgICAgIHJldHVybiBfd3JhcHBlZF9jYWxsKGhvb2tfaW1wbC5mdW5jdGlvbigqYXJncyks
IHNlbGYuZXhlY3V0ZSkKLSAgICAgICAgICAgIHJlcyA9IGhvb2tfaW1wbC5mdW5jdGlvbigqYXJn
cykKLSAgICAgICAgICAgIGlmIHJlcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBpZiBm
aXJzdHJlc3VsdDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcwotICAgICAgICAgICAg
ICAgIHJlc3VsdHMuYXBwZW5kKHJlcykKLQotICAgICAgICBpZiBub3QgZmlyc3RyZXN1bHQ6Ci0g
ICAgICAgICAgICByZXR1cm4gcmVzdWx0cwotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAg
ICAgICBzdGF0dXMgPSAiJWQgbWV0aHMiICUgKGxlbihzZWxmLmhvb2tfaW1wbHMpLCkKLSAgICAg
ICAgaWYgaGFzYXR0cihzZWxmLCAicmVzdWx0cyIpOgotICAgICAgICAgICAgc3RhdHVzID0gKCIl
ZCByZXN1bHRzLCAiICUgbGVuKHNlbGYucmVzdWx0cykpICsgc3RhdHVzCi0gICAgICAgIHJldHVy
biAiPF9NdWx0aUNhbGwgJXMsIGt3YXJncz0lcj4iICUgKHN0YXR1cywgc2VsZi5jYWxsZXJfa3dh
cmdzKQotCi0KLWRlZiBfbGVnYWN5bXVsdGljYWxsKGhvb2tfaW1wbHMsIGNhbGxlcl9rd2FyZ3Ms
IGZpcnN0cmVzdWx0PUZhbHNlKToKLSAgICByZXR1cm4gX0xlZ2FjeU11bHRpQ2FsbCgKLSAgICAg
ICAgaG9va19pbXBscywgY2FsbGVyX2t3YXJncywgZmlyc3RyZXN1bHQ9Zmlyc3RyZXN1bHQpLmV4
ZWN1dGUoKQotCi0KLWRlZiBfbXVsdGljYWxsKGhvb2tfaW1wbHMsIGNhbGxlcl9rd2FyZ3MsIGZp
cnN0cmVzdWx0PUZhbHNlKToKLSAgICAiIiJFeGVjdXRlIGEgY2FsbCBpbnRvIG11bHRpcGxlIHB5
dGhvbiBmdW5jdGlvbnMvbWV0aG9kcyBhbmQgcmV0dXJuIHRoZQotICAgIHJlc3VsdChzKS4KLQot
ICAgIGBgY2FsbGVyX2t3YXJnc2BgIGNvbWVzIGZyb20gX0hvb2tDYWxsZXIuX19jYWxsX18oKS4K
LSAgICAiIiIKLSAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICByZXN1bHRzID0gW10K
LSAgICBleGNpbmZvID0gTm9uZQotICAgIHRyeTogICMgcnVuIGltcGwgYW5kIHdyYXBwZXIgc2V0
dXAgZnVuY3Rpb25zIGluIGEgbG9vcAotICAgICAgICB0ZWFyZG93bnMgPSBbXQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBmb3IgaG9va19pbXBsIGluIHJldmVyc2VkKGhvb2tfaW1wbHMpOgot
ICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgYXJncyA9IFtjYWxsZXJf
a3dhcmdzW2FyZ25hbWVdIGZvciBhcmduYW1lIGluIGhvb2tfaW1wbC5hcmduYW1lc10KLSAgICAg
ICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIGZvciBhcmdu
YW1lIGluIGhvb2tfaW1wbC5hcmduYW1lczoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGFy
Z25hbWUgbm90IGluIGNhbGxlcl9rd2FyZ3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmFpc2UgSG9va0NhbGxFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhv
b2sgY2FsbCBtdXN0IHByb3ZpZGUgYXJndW1lbnQgJXIiICUgKGFyZ25hbWUsKSkKLQotICAgICAg
ICAgICAgICAgIGlmIGhvb2tfaW1wbC5ob29rd3JhcHBlcjoKLSAgICAgICAgICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgICAgICAgICAgZ2VuID0gaG9va19pbXBsLmZ1bmN0aW9uKCph
cmdzKQotICAgICAgICAgICAgICAgICAgICAgICAgbmV4dChnZW4pICAgIyBmaXJzdCB5aWVsZAot
ICAgICAgICAgICAgICAgICAgICAgICAgdGVhcmRvd25zLmFwcGVuZChnZW4pCi0gICAgICAgICAg
ICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgotICAgICAgICAgICAgICAgICAgICAgICAg
X3JhaXNlX3dyYXBmYWlsKGdlbiwgImRpZCBub3QgeWllbGQiKQotICAgICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgICAgIHJlcyA9IGhvb2tfaW1wbC5mdW5jdGlvbigqYXJncykK
LSAgICAgICAgICAgICAgICAgICAgaWYgcmVzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0cy5hcHBlbmQocmVzKQotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
Zmlyc3RyZXN1bHQ6ICAjIGhhbHQgZnVydGhlciBpbXBsIGNhbGxzCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgZXhjZXB0IEJhc2VFeGNlcHRpb246Ci0gICAgICAg
ICAgICBleGNpbmZvID0gc3lzLmV4Y19pbmZvKCkKLSAgICBmaW5hbGx5OgotICAgICAgICBpZiBm
aXJzdHJlc3VsdDogICMgZmlyc3QgcmVzdWx0IGhvb2tzIHJldHVybiBhIHNpbmdsZSB2YWx1ZQot
ICAgICAgICAgICAgb3V0Y29tZSA9IF9SZXN1bHQocmVzdWx0c1swXSBpZiByZXN1bHRzIGVsc2Ug
Tm9uZSwgZXhjaW5mbykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG91dGNvbWUgPSBfUmVz
dWx0KHJlc3VsdHMsIGV4Y2luZm8pCi0KLSAgICAgICAgIyBydW4gYWxsIHdyYXBwZXIgcG9zdC15
aWVsZCBibG9ja3MKLSAgICAgICAgZm9yIGdlbiBpbiByZXZlcnNlZCh0ZWFyZG93bnMpOgotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGdlbi5zZW5kKG91dGNvbWUpCi0gICAgICAg
ICAgICAgICAgX3JhaXNlX3dyYXBmYWlsKGdlbiwgImhhcyBzZWNvbmQgeWllbGQiKQotICAgICAg
ICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246Ci0gICAgICAgICAgICAgICAgcGFzcwotCi0gICAg
ICAgIHJldHVybiBvdXRjb21lLmdldF9yZXN1bHQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
cGx1Z2d5L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDBkNWEwOTM3ZDgyZTZlMjM3YTU2ZjFm
M2JjZjIxNGRjZWMyZTJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9fX2luaXRfXy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L3BsdWdneS9jYWxsZXJzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9w
eXByb2plY3QudG9tbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3B5cHJvamVjdC50b21sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgx
MWNmNTNlZDNiZWRhZmFmOTc2NTA0MTUyMDZmY2NjMGQ1NzU4N2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS9weXByb2plY3QudG9tbApAQCAtMCwwICsxLDQ0IEBACitbYnVpbGQtc3lz
dGVtXQorcmVxdWlyZXMgPSBbCisgICJzZXR1cHRvb2xzIiwKKyAgInNldHVwdG9vbHMtc2NtIiwK
KyAgIndoZWVsIiwKK10KKworW3Rvb2wudG93bmNyaWVyXQorcGFja2FnZSA9ICJwbHVnZ3kiCitw
YWNrYWdlX2RpciA9ICJzcmMvcGx1Z2d5IgorZmlsZW5hbWUgPSAiQ0hBTkdFTE9HLnJzdCIKK2Rp
cmVjdG9yeSA9ICJjaGFuZ2Vsb2cvIgordGl0bGVfZm9ybWF0ID0gInBsdWdneSB7dmVyc2lvbn0g
KHtwcm9qZWN0X2RhdGV9KSIKK3RlbXBsYXRlID0gImNoYW5nZWxvZy9fdGVtcGxhdGUucnN0Igor
CisgIFtbdG9vbC50b3duY3JpZXIudHlwZV1dCisgIGRpcmVjdG9yeSA9ICJyZW1vdmFsIgorICBu
YW1lID0gIkRlcHJlY2F0aW9ucyBhbmQgUmVtb3ZhbHMiCisgIHNob3djb250ZW50ID0gdHJ1ZQor
CisgIFtbdG9vbC50b3duY3JpZXIudHlwZV1dCisgIGRpcmVjdG9yeSA9ICJmZWF0dXJlIgorICBu
YW1lID0gIkZlYXR1cmVzIgorICBzaG93Y29udGVudCA9IHRydWUKKworICBbW3Rvb2wudG93bmNy
aWVyLnR5cGVdXQorICBkaXJlY3RvcnkgPSAiYnVnZml4IgorICBuYW1lID0gIkJ1ZyBGaXhlcyIK
KyAgc2hvd2NvbnRlbnQgPSB0cnVlCisKKyAgW1t0b29sLnRvd25jcmllci50eXBlXV0KKyAgZGly
ZWN0b3J5ID0gInZlbmRvciIKKyAgbmFtZSA9ICJWZW5kb3JlZCBMaWJyYXJpZXMiCisgIHNob3dj
b250ZW50ID0gdHJ1ZQorCisgIFtbdG9vbC50b3duY3JpZXIudHlwZV1dCisgIGRpcmVjdG9yeSA9
ICJkb2MiCisgIG5hbWUgPSAiSW1wcm92ZWQgRG9jdW1lbnRhdGlvbiIKKyAgc2hvd2NvbnRlbnQg
PSB0cnVlCisKKyAgW1t0b29sLnRvd25jcmllci50eXBlXV0KKyAgZGlyZWN0b3J5ID0gInRyaXZp
YWwiCisgIG5hbWUgPSAiVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzIgorICBzaG93Y29udGVudCA9
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NjcmlwdHMvcmVsZWFzZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L3NjcmlwdHMvcmVsZWFzZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNGExOGE0Yzc4ZGU3ZTA5ZTMz
MzkyMmEwZDdhZTdhOWRiNWQwZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2Ny
aXB0cy9yZWxlYXNlLnB5CkBAIC0wLDAgKzEsNjkgQEAKKyIiIgorUmVsZWFzZSBzY3JpcHQuCisi
IiIKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IHN5cworZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBj
aGVja19jYWxsCisKK2Zyb20gY29sb3JhbWEgaW1wb3J0IGluaXQsIEZvcmUKK2Zyb20gZ2l0IGlt
cG9ydCBSZXBvLCBSZW1vdGUKKworCitkZWYgY3JlYXRlX2JyYW5jaCh2ZXJzaW9uKToKKyAgICAi
IiJDcmVhdGUgYSBmcmVzaCBicmFuY2ggZnJvbSB1cHN0cmVhbS9tYXN0ZXIiIiIKKyAgICByZXBv
ID0gUmVwby5pbml0KCIuIikKKyAgICBpZiByZXBvLmlzX2RpcnR5KHVudHJhY2tlZF9maWxlcz1U
cnVlKToKKyAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKGYiUmVwb3NpdG9yeSBpcyBkaXJ0eSwg
cGxlYXNlIGNvbW1pdC9zdGFzaCB5b3VyIGNoYW5nZXMuIikKKworICAgIGJyYW5jaF9uYW1lID0g
ZiJyZWxlYXNlLXt2ZXJzaW9ufSIKKyAgICBwcmludChmIntGb3JlLkNZQU59Q3JlYXRlIHticmFu
Y2hfbmFtZX0gYnJhbmNoIGZyb20gdXBzdHJlYW0gbWFzdGVyIikKKyAgICB1cHN0cmVhbSA9IGdl
dF91cHN0cmVhbShyZXBvKQorICAgIHVwc3RyZWFtLmZldGNoKCkKKyAgICByZWxlYXNlX2JyYW5j
aCA9IHJlcG8uY3JlYXRlX2hlYWQoYnJhbmNoX25hbWUsIHVwc3RyZWFtLnJlZnMubWFzdGVyLCBm
b3JjZT1UcnVlKQorICAgIHJlbGVhc2VfYnJhbmNoLmNoZWNrb3V0KCkKKyAgICByZXR1cm4gcmVw
bworCisKK2RlZiBnZXRfdXBzdHJlYW0ocmVwbzogUmVwbykgLT4gUmVtb3RlOgorICAgICIiIkZp
bmQgdXBzdHJlYW0gcmVwb3NpdG9yeSBmb3IgcGx1Z2d5IG9uIHRoZSByZW1vdGVzIiIiCisgICAg
Zm9yIHJlbW90ZSBpbiByZXBvLnJlbW90ZXM6CisgICAgICAgIGZvciB1cmwgaW4gcmVtb3RlLnVy
bHM6CisgICAgICAgICAgICBpZiB1cmwuZW5kc3dpdGgoKCJweXRlc3QtZGV2L3BsdWdneS5naXQi
LCAicHl0ZXN0LWRldi9wbHVnZ3kiKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW90ZQor
ICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiY291bGQgbm90IGZpbmQgcHl0ZXN0LWRldi9wbHVnZ3kg
cmVtb3RlIikKKworCitkZWYgcHJlX3JlbGVhc2UodmVyc2lvbik6CisgICAgIiIiR2VuZXJhdGVz
IG5ldyBkb2NzLCByZWxlYXNlIGFubm91bmNlbWVudHMgYW5kIGNyZWF0ZXMgYSBsb2NhbCB0YWcu
IiIiCisgICAgY3JlYXRlX2JyYW5jaCh2ZXJzaW9uKQorICAgIGNoYW5nZWxvZyh2ZXJzaW9uLCB3
cml0ZV9vdXQ9VHJ1ZSkKKworICAgIGNoZWNrX2NhbGwoWyJnaXQiLCAiY29tbWl0IiwgIi1hIiwg
Ii1tIiwgZiJQcmVwYXJpbmcgcmVsZWFzZSB7dmVyc2lvbn0iXSkKKworICAgIHByaW50KCkKKyAg
ICBwcmludChmIntGb3JlLkdSRUVOfVBsZWFzZSBwdXNoIHlvdXIgYnJhbmNoIHRvIHlvdXIgZm9y
ayBhbmQgb3BlbiBhIFBSLiIpCisKKworZGVmIGNoYW5nZWxvZyh2ZXJzaW9uLCB3cml0ZV9vdXQ9
RmFsc2UpOgorICAgIGlmIHdyaXRlX291dDoKKyAgICAgICAgYWRkb3B0cyA9IFtdCisgICAgZWxz
ZToKKyAgICAgICAgYWRkb3B0cyA9IFsiLS1kcmFmdCJdCisgICAgcHJpbnQoZiJ7Rm9yZS5DWUFO
fUdlbmVyYXRpbmcgQ0hBTkdFTE9HIikKKyAgICBjaGVja19jYWxsKFsidG93bmNyaWVyIiwgIi0t
eWVzIiwgIi0tdmVyc2lvbiIsIHZlcnNpb25dICsgYWRkb3B0cykKKworCitkZWYgbWFpbigpOgor
ICAgIGluaXQoYXV0b3Jlc2V0PVRydWUpCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQ
YXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInZlcnNpb24iLCBoZWxwPSJSZWxlYXNl
IHZlcnNpb24iKQorICAgIG9wdGlvbnMgPSBwYXJzZXIucGFyc2VfYXJncygpCisgICAgdHJ5Ogor
ICAgICAgICBwcmVfcmVsZWFzZShvcHRpb25zLnZlcnNpb24pCisgICAgZXhjZXB0IFJ1bnRpbWVF
cnJvciBhcyBlOgorICAgICAgICBwcmludChmIntGb3JlLlJFRH1FUlJPUjoge2V9IikKKyAgICAg
ICAgcmV0dXJuIDEKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHN5cy5leGl0
KG1haW4oKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS9zY3JpcHRzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmYjljN2Rh
MDZhYWVkMGEwODczOWFiNDMxNjkzNjY2YzVmYzllMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9zY3JpcHRzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L3NjcmlwdHMvcmVsZWFzZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
c2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1cC5weQppbmRleCBiN2MwZjY5NzEyMGFkNGNjMDk3
ODcyYmQwMTBmYWRkMjAxNmQyYmU5Li5hZTJjZDg0YzExOWVkODk3M2Y0YzQyMzYyM2U3MjYzYjM0
YzNmOTM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1cC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9zZXR1cC5weQpAQCAtMSw1MSArMSw0OSBAQAotaW1wb3J0IG9zCiBmcm9tIHNldHVwdG9vbHMg
aW1wb3J0IHNldHVwCiAKIGNsYXNzaWZpZXJzID0gWwotICAgICdEZXZlbG9wbWVudCBTdGF0dXMg
OjogNCAtIEJldGEnLAotICAgICdJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzJywKLSAg
ICAnTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UnLAotICAgICdPcGVyYXRp
bmcgU3lzdGVtIDo6IFBPU0lYJywKLSAgICAnT3BlcmF0aW5nIFN5c3RlbSA6OiBNaWNyb3NvZnQg
OjogV2luZG93cycsCi0gICAgJ09wZXJhdGluZyBTeXN0ZW0gOjogTWFjT1MgOjogTWFjT1MgWCcs
Ci0gICAgJ1RvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IFRlc3RpbmcnLAotICAgICdU
b3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMnLAotICAgICdUb3BpYyA6
OiBVdGlsaXRpZXMnLAotICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1w
bGVtZW50YXRpb24gOjogQ1B5dGhvbicsCi0gICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5
dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBQeVB5J10gKyBbCi0gICAgKCdQcm9ncmFtbWluZyBM
YW5ndWFnZSA6OiBQeXRob24gOjogJXMnICUgeCkgZm9yIHggaW4KLSAgICAnMiAyLjcgMyAzLjQg
My41IDMuNicuc3BsaXQoKV0KLQotd2l0aCBvcGVuKCdSRUFETUUucnN0JykgYXMgZmQ6Ci0gICAg
bG9uZ19kZXNjcmlwdGlvbiA9IGZkLnJlYWQoKQotCi0KLWRlZiBnZXRfdmVyc2lvbigpOgotICAg
IHAgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKAotICAgICAgICAgICAgICAgICAgICAg
b3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSksICJwbHVnZ3kvX19pbml0X18ucHkiKQotICAgIHdp
dGggb3BlbihwKSBhcyBmOgotICAgICAgICBmb3IgbGluZSBpbiBmLnJlYWRsaW5lcygpOgotICAg
ICAgICAgICAgaWYgIl9fdmVyc2lvbl9fIiBpbiBsaW5lOgotICAgICAgICAgICAgICAgIHJldHVy
biBsaW5lLnN0cmlwKCkuc3BsaXQoIj0iKVstMV0uc3RyaXAoIiAnIikKLSAgICByYWlzZSBWYWx1
ZUVycm9yKCJjb3VsZCBub3QgcmVhZCB2ZXJzaW9uIikKKyAgICAiRGV2ZWxvcG1lbnQgU3RhdHVz
IDo6IDQgLSBCZXRhIiwKKyAgICAiSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycyIsCisg
ICAgIkxpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IE1JVCBMaWNlbnNlIiwKKyAgICAiT3BlcmF0
aW5nIFN5c3RlbSA6OiBQT1NJWCIsCisgICAgIk9wZXJhdGluZyBTeXN0ZW0gOjogTWljcm9zb2Z0
IDo6IFdpbmRvd3MiLAorICAgICJPcGVyYXRpbmcgU3lzdGVtIDo6IE1hY09TIDo6IE1hY09TIFgi
LAorICAgICJUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBUZXN0aW5nIiwKKyAgICAi
VG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzIiwKKyAgICAiVG9waWMg
OjogVXRpbGl0aWVzIiwKKyAgICAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IElt
cGxlbWVudGF0aW9uIDo6IENQeXRob24iLAorICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQ
eXRob24gOjogSW1wbGVtZW50YXRpb24gOjogUHlQeSIsCitdICsgWworICAgICgiUHJvZ3JhbW1p
bmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6ICVzIiAlIHgpCisgICAgZm9yIHggaW4gIjIgMi43IDMg
My40IDMuNSAzLjYgMy43IDMuOCIuc3BsaXQoKQorXQorCit3aXRoIG9wZW4oIlJFQURNRS5yc3Qi
LCAicmIiKSBhcyBmZDoKKyAgICBsb25nX2Rlc2NyaXB0aW9uID0gZmQucmVhZCgpLmRlY29kZSgi
dXRmLTgiKQorCit3aXRoIG9wZW4oIkNIQU5HRUxPRy5yc3QiLCAicmIiKSBhcyBmZDoKKyAgICBs
b25nX2Rlc2NyaXB0aW9uICs9ICJcblxuIiArIGZkLnJlYWQoKS5kZWNvZGUoInV0Zi04IikKIAog
CiBkZWYgbWFpbigpOgogICAgIHNldHVwKAotICAgICAgICBuYW1lPSdwbHVnZ3knLAotICAgICAg
ICBkZXNjcmlwdGlvbj0ncGx1Z2luIGFuZCBob29rIGNhbGxpbmcgbWVjaGFuaXNtcyBmb3IgcHl0
aG9uJywKKyAgICAgICAgbmFtZT0icGx1Z2d5IiwKKyAgICAgICAgZGVzY3JpcHRpb249InBsdWdp
biBhbmQgaG9vayBjYWxsaW5nIG1lY2hhbmlzbXMgZm9yIHB5dGhvbiIsCiAgICAgICAgIGxvbmdf
ZGVzY3JpcHRpb249bG9uZ19kZXNjcmlwdGlvbiwKLSAgICAgICAgdmVyc2lvbj1nZXRfdmVyc2lv
bigpLAotICAgICAgICBsaWNlbnNlPSdNSVQgbGljZW5zZScsCi0gICAgICAgIHBsYXRmb3Jtcz1b
J3VuaXgnLCAnbGludXgnLCAnb3N4JywgJ3dpbjMyJ10sCi0gICAgICAgIGF1dGhvcj0nSG9sZ2Vy
IEtyZWtlbCcsCi0gICAgICAgIGF1dGhvcl9lbWFpbD0naG9sZ2VyQG1lcmxpbnV4LmV1JywKLSAg
ICAgICAgdXJsPSdodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3knLAotICAgICAg
ICBweXRob25fcmVxdWlyZXM9Jz49Mi43LCAhPTMuMC4qLCAhPTMuMS4qLCAhPTMuMi4qLCAhPTMu
My4qJywKKyAgICAgICAgdXNlX3NjbV92ZXJzaW9uPXsid3JpdGVfdG8iOiAic3JjL3BsdWdneS9f
dmVyc2lvbi5weSJ9LAorICAgICAgICBzZXR1cF9yZXF1aXJlcz1bInNldHVwdG9vbHMtc2NtIl0s
CisgICAgICAgIGxpY2Vuc2U9Ik1JVCBsaWNlbnNlIiwKKyAgICAgICAgcGxhdGZvcm1zPVsidW5p
eCIsICJsaW51eCIsICJvc3giLCAid2luMzIiXSwKKyAgICAgICAgYXV0aG9yPSJIb2xnZXIgS3Jl
a2VsIiwKKyAgICAgICAgYXV0aG9yX2VtYWlsPSJob2xnZXJAbWVybGludXguZXUiLAorICAgICAg
ICB1cmw9Imh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneSIsCisgICAgICAgIHB5
dGhvbl9yZXF1aXJlcz0iPj0yLjcsICE9My4wLiosICE9My4xLiosICE9My4yLiosICE9My4zLioi
LAorICAgICAgICBpbnN0YWxsX3JlcXVpcmVzPVsnaW1wb3J0bGliLW1ldGFkYXRhPj0wLjEyO3B5
dGhvbl92ZXJzaW9uPCIzLjgiJ10sCisgICAgICAgIGV4dHJhc19yZXF1aXJlPXsiZGV2IjogWyJw
cmUtY29tbWl0IiwgInRveCJdfSwKICAgICAgICAgY2xhc3NpZmllcnM9Y2xhc3NpZmllcnMsCi0g
ICAgICAgIHBhY2thZ2VzPVsncGx1Z2d5J10sCisgICAgICAgIHBhY2thZ2VzPVsicGx1Z2d5Il0s
CisgICAgICAgIHBhY2thZ2VfZGlyPXsiIjogInNyYyJ9LAogICAgICkKIAogCi1pZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgoraWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgICBtYWluKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9zcmMvcGx1Z2d5L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNGY5OTFhNjEwMzQzYzJj
YjdkYTA2ZTVlMjZkODE4MmNkMDdlYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9z
cmMvcGx1Z2d5L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTggQEAKK3RyeToKKyAgICBmcm9tIC5f
dmVyc2lvbiBpbXBvcnQgdmVyc2lvbiBhcyBfX3ZlcnNpb25fXworZXhjZXB0IEltcG9ydEVycm9y
OgorICAgICMgYnJva2VuIGluc3RhbGxhdGlvbiwgd2UgZG9uJ3QgZXZlbiB0cnkKKyAgICAjIHVu
a25vd24gb25seSB3b3JrcyBiZWNhdXNlIHdlIGRvIHBvb3IgbWFucyB2ZXJzaW9uIGNvbXBhcmUK
KyAgICBfX3ZlcnNpb25fXyA9ICJ1bmtub3duIgorCitfX2FsbF9fID0gWworICAgICJQbHVnaW5N
YW5hZ2VyIiwKKyAgICAiUGx1Z2luVmFsaWRhdGlvbkVycm9yIiwKKyAgICAiSG9va0NhbGxFcnJv
ciIsCisgICAgIkhvb2tzcGVjTWFya2VyIiwKKyAgICAiSG9va2ltcGxNYXJrZXIiLAorXQorCitm
cm9tIC5tYW5hZ2VyIGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBQbHVnaW5WYWxpZGF0aW9uRXJyb3IK
K2Zyb20gLmNhbGxlcnMgaW1wb3J0IEhvb2tDYWxsRXJyb3IKK2Zyb20gLmhvb2tzIGltcG9ydCBI
b29rc3BlY01hcmtlciwgSG9va2ltcGxNYXJrZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Ny
Yy9wbHVnZ3kvX3RyYWNpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L190cmFjaW5nLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhiOTcxNWYwMjYxYTJlMGE0MzcyM2RlOTI1M2NjYjBmOWM4M2FkMzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L190cmFjaW5nLnB5CkBAIC0w
LDAgKzEsNjIgQEAKKyIiIgorVHJhY2luZyB1dGlscworIiIiCisKKworY2xhc3MgVGFnVHJhY2Vy
KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLl90YWdzMnBy
b2MgPSB7fQorICAgICAgICBzZWxmLl93cml0ZXIgPSBOb25lCisgICAgICAgIHNlbGYuaW5kZW50
ID0gMAorCisgICAgZGVmIGdldChzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIFRhZ1RyYWNl
clN1YihzZWxmLCAobmFtZSwpKQorCisgICAgZGVmIF9mb3JtYXRfbWVzc2FnZShzZWxmLCB0YWdz
LCBhcmdzKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShhcmdzWy0xXSwgZGljdCk6CisgICAgICAg
ICAgICBleHRyYSA9IGFyZ3NbLTFdCisgICAgICAgICAgICBhcmdzID0gYXJnc1s6LTFdCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBleHRyYSA9IHt9CisKKyAgICAgICAgY29udGVudCA9ICIg
Ii5qb2luKG1hcChzdHIsIGFyZ3MpKQorICAgICAgICBpbmRlbnQgPSAiICAiICogc2VsZi5pbmRl
bnQKKworICAgICAgICBsaW5lcyA9IFsiJXMlcyBbJXNdXG4iICUgKGluZGVudCwgY29udGVudCwg
IjoiLmpvaW4odGFncykpXQorCisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBleHRyYS5pdGVt
cygpOgorICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIlcyAgICAlczogJXNcbiIgJSAoaW5kZW50
LCBuYW1lLCB2YWx1ZSkpCisKKyAgICAgICAgcmV0dXJuICIiLmpvaW4obGluZXMpCisKKyAgICBk
ZWYgX3Byb2Nlc3NtZXNzYWdlKHNlbGYsIHRhZ3MsIGFyZ3MpOgorICAgICAgICBpZiBzZWxmLl93
cml0ZXIgaXMgbm90IE5vbmUgYW5kIGFyZ3M6CisgICAgICAgICAgICBzZWxmLl93cml0ZXIoc2Vs
Zi5fZm9ybWF0X21lc3NhZ2UodGFncywgYXJncykpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHByb2Nlc3NvciA9IHNlbGYuX3RhZ3MycHJvY1t0YWdzXQorICAgICAgICBleGNlcHQgS2V5RXJy
b3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcm9jZXNz
b3IodGFncywgYXJncykKKworICAgIGRlZiBzZXR3cml0ZXIoc2VsZiwgd3JpdGVyKToKKyAgICAg
ICAgc2VsZi5fd3JpdGVyID0gd3JpdGVyCisKKyAgICBkZWYgc2V0cHJvY2Vzc29yKHNlbGYsIHRh
Z3MsIHByb2Nlc3Nvcik6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodGFncywgc3RyKToKKyAgICAg
ICAgICAgIHRhZ3MgPSB0dXBsZSh0YWdzLnNwbGl0KCI6IikpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh0YWdzLCB0dXBsZSkKKyAgICAgICAgc2VsZi5fdGFn
czJwcm9jW3RhZ3NdID0gcHJvY2Vzc29yCisKKworY2xhc3MgVGFnVHJhY2VyU3ViKG9iamVjdCk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3QsIHRhZ3MpOgorICAgICAgICBzZWxmLnJvb3Qg
PSByb290CisgICAgICAgIHNlbGYudGFncyA9IHRhZ3MKKworICAgIGRlZiBfX2NhbGxfXyhzZWxm
LCAqYXJncyk6CisgICAgICAgIHNlbGYucm9vdC5fcHJvY2Vzc21lc3NhZ2Uoc2VsZi50YWdzLCBh
cmdzKQorCisgICAgZGVmIGdldChzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX19j
bGFzc19fKHNlbGYucm9vdCwgc2VsZi50YWdzICsgKG5hbWUsKSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L3NyYy9wbHVnZ3kvY2FsbGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvY2Fs
bGVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lN2VhNDY0YjBkYTgxYTViM2ZiNTRhOTNjNzA5NTI5ODcwOTA4
YTY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc3JjL3BsdWdneS9jYWxsZXJzLnB5
CkBAIC0wLDAgKzEsMjA4IEBACisiIiIKK0NhbGwgbG9vcCBtYWNoaW5lcnkKKyIiIgoraW1wb3J0
IHN5cworaW1wb3J0IHdhcm5pbmdzCisKK19weTMgPSBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDAp
CisKKworaWYgbm90IF9weTM6CisgICAgZXhlYygKKyAgICAgICAgIiIiCitkZWYgX3JlcmFpc2Uo
Y2xzLCB2YWwsIHRiKToKKyAgICByYWlzZSBjbHMsIHZhbCwgdGIKKyIiIgorICAgICkKKworCitk
ZWYgX3JhaXNlX3dyYXBmYWlsKHdyYXBfY29udHJvbGxlciwgbXNnKToKKyAgICBjbyA9IHdyYXBf
Y29udHJvbGxlci5naV9jb2RlCisgICAgcmFpc2UgUnVudGltZUVycm9yKAorICAgICAgICAid3Jh
cF9jb250cm9sbGVyIGF0ICVyICVzOiVkICVzIgorICAgICAgICAlIChjby5jb19uYW1lLCBjby5j
b19maWxlbmFtZSwgY28uY29fZmlyc3RsaW5lbm8sIG1zZykKKyAgICApCisKKworY2xhc3MgSG9v
a0NhbGxFcnJvcihFeGNlcHRpb24pOgorICAgICIiIiBIb29rIHdhcyBjYWxsZWQgd3JvbmdseS4g
IiIiCisKKworY2xhc3MgX1Jlc3VsdChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZXN1bHQsIGV4Y2luZm8pOgorICAgICAgICBzZWxmLl9yZXN1bHQgPSByZXN1bHQKKyAgICAgICAg
c2VsZi5fZXhjaW5mbyA9IGV4Y2luZm8KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBleGNpbmZv
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZXhjaW5mbworCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIHJlc3VsdChzZWxmKToKKyAgICAgICAgIiIiR2V0IHRoZSByZXN1bHQocykgZm9yIHRo
aXMgaG9vayBjYWxsIChERVBSRUNBVEVEIGluIGZhdm9yIG9mIGBgZ2V0X3Jlc3VsdCgpYGApLiIi
IgorICAgICAgICBtc2cgPSAiVXNlIGdldF9yZXN1bHQoKSB3aGljaCBmb3JjZXMgY29ycmVjdCBl
eGNlcHRpb24gaGFuZGxpbmciCisgICAgICAgIHdhcm5pbmdzLndhcm4oRGVwcmVjYXRpb25XYXJu
aW5nKG1zZyksIHN0YWNrbGV2ZWw9MikKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdAorCisg
ICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fY2FsbChjbHMsIGZ1bmMpOgorICAgICAgICBf
X3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgcmVzdWx0ID0gZXhjaW5mbyA9IE5vbmUK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gZnVuYygpCisgICAgICAgIGV4Y2Vw
dCBCYXNlRXhjZXB0aW9uOgorICAgICAgICAgICAgZXhjaW5mbyA9IHN5cy5leGNfaW5mbygpCisK
KyAgICAgICAgcmV0dXJuIGNscyhyZXN1bHQsIGV4Y2luZm8pCisKKyAgICBkZWYgZm9yY2VfcmVz
dWx0KHNlbGYsIHJlc3VsdCk6CisgICAgICAgICIiIkZvcmNlIHRoZSByZXN1bHQocykgdG8gYGBy
ZXN1bHRgYC4KKworICAgICAgICBJZiB0aGUgaG9vayB3YXMgbWFya2VkIGFzIGEgYGBmaXJzdHJl
c3VsdGBgIGEgc2luZ2xlIHZhbHVlIHNob3VsZAorICAgICAgICBiZSBzZXQgb3RoZXJ3aXNlIHNl
dCBhIChtb2RpZmllZCkgbGlzdCBvZiByZXN1bHRzLiBBbnkgZXhjZXB0aW9ucworICAgICAgICBm
b3VuZCBkdXJpbmcgaW52b2NhdGlvbiB3aWxsIGJlIGRlbGV0ZWQuCisgICAgICAgICIiIgorICAg
ICAgICBzZWxmLl9yZXN1bHQgPSByZXN1bHQKKyAgICAgICAgc2VsZi5fZXhjaW5mbyA9IE5vbmUK
KworICAgIGRlZiBnZXRfcmVzdWx0KHNlbGYpOgorICAgICAgICAiIiJHZXQgdGhlIHJlc3VsdChz
KSBmb3IgdGhpcyBob29rIGNhbGwuCisKKyAgICAgICAgSWYgdGhlIGhvb2sgd2FzIG1hcmtlZCBh
cyBhIGBgZmlyc3RyZXN1bHRgYCBvbmx5IGEgc2luZ2xlIHZhbHVlCisgICAgICAgIHdpbGwgYmUg
cmV0dXJuZWQgb3RoZXJ3aXNlIGEgbGlzdCBvZiByZXN1bHRzLgorICAgICAgICAiIiIKKyAgICAg
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIGlmIHNlbGYuX2V4Y2luZm8gaXMg
Tm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHQKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGV4ID0gc2VsZi5fZXhjaW5mbworICAgICAgICAgICAgaWYgX3B5MzoKKyAgICAg
ICAgICAgICAgICByYWlzZSBleFsxXS53aXRoX3RyYWNlYmFjayhleFsyXSkKKyAgICAgICAgICAg
IF9yZXJhaXNlKCpleCkgICMgbm9xYQorCisKK2RlZiBfd3JhcHBlZF9jYWxsKHdyYXBfY29udHJv
bGxlciwgZnVuYyk6CisgICAgIiIiIFdyYXAgY2FsbGluZyB0byBhIGZ1bmN0aW9uIHdpdGggYSBn
ZW5lcmF0b3Igd2hpY2ggbmVlZHMgdG8geWllbGQKKyAgICBleGFjdGx5IG9uY2UuICBUaGUgeWll
bGQgcG9pbnQgd2lsbCB0cmlnZ2VyIGNhbGxpbmcgdGhlIHdyYXBwZWQgZnVuY3Rpb24KKyAgICBh
bmQgcmV0dXJuIGl0cyBgYF9SZXN1bHRgYCB0byB0aGUgeWllbGQgcG9pbnQuICBUaGUgZ2VuZXJh
dG9yIHRoZW4gbmVlZHMKKyAgICB0byBmaW5pc2ggKHJhaXNlIFN0b3BJdGVyYXRpb24pIGluIG9y
ZGVyIGZvciB0aGUgd3JhcHBlZCBjYWxsIHRvIGNvbXBsZXRlLgorICAgICIiIgorICAgIHRyeToK
KyAgICAgICAgbmV4dCh3cmFwX2NvbnRyb2xsZXIpICAjIGZpcnN0IHlpZWxkCisgICAgZXhjZXB0
IFN0b3BJdGVyYXRpb246CisgICAgICAgIF9yYWlzZV93cmFwZmFpbCh3cmFwX2NvbnRyb2xsZXIs
ICJkaWQgbm90IHlpZWxkIikKKyAgICBjYWxsX291dGNvbWUgPSBfUmVzdWx0LmZyb21fY2FsbChm
dW5jKQorICAgIHRyeToKKyAgICAgICAgd3JhcF9jb250cm9sbGVyLnNlbmQoY2FsbF9vdXRjb21l
KQorICAgICAgICBfcmFpc2Vfd3JhcGZhaWwod3JhcF9jb250cm9sbGVyLCAiaGFzIHNlY29uZCB5
aWVsZCIpCisgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgIHBhc3MKKyAgICByZXR1
cm4gY2FsbF9vdXRjb21lLmdldF9yZXN1bHQoKQorCisKK2NsYXNzIF9MZWdhY3lNdWx0aUNhbGwo
b2JqZWN0KToKKyAgICAiIiIgZXhlY3V0ZSBhIGNhbGwgaW50byBtdWx0aXBsZSBweXRob24gZnVu
Y3Rpb25zL21ldGhvZHMuICIiIgorCisgICAgIyBYWFggbm90ZSB0aGF0IHRoZSBfX211bHRpY2Fs
bF9fIGFyZ3VtZW50IGlzIHN1cHBvcnRlZCBvbmx5CisgICAgIyBmb3IgcHl0ZXN0IGNvbXBhdGli
aWxpdHkgcmVhc29ucy4gIEl0IHdhcyBuZXZlciBvZmZpY2lhbGx5CisgICAgIyBzdXBwb3J0ZWQg
dGhlcmUgYW5kIGlzIGV4cGxpY2l0ZWx5IGRlcHJlY2F0ZWQgc2luY2UgMi44CisgICAgIyBzbyB3
ZSBjYW4gcmVtb3ZlIGl0IHNvb24sIGFsbG93aW5nIHRvIGF2b2lkIHRoZSBiZWxvdyByZWN1cnNp
b24KKyAgICAjIGluIGV4ZWN1dGUoKSBhbmQgc2ltcGxpZnkvc3BlZWQgdXAgdGhlIGV4ZWN1dGUg
bG9vcC4KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob29rX2ltcGxzLCBrd2FyZ3MsIGZpcnN0
cmVzdWx0PUZhbHNlKToKKyAgICAgICAgc2VsZi5ob29rX2ltcGxzID0gaG9va19pbXBscworICAg
ICAgICBzZWxmLmNhbGxlcl9rd2FyZ3MgPSBrd2FyZ3MgICMgY29tZSBmcm9tIF9Ib29rQ2FsbGVy
Ll9fY2FsbF9fKCkKKyAgICAgICAgc2VsZi5jYWxsZXJfa3dhcmdzWyJfX211bHRpY2FsbF9fIl0g
PSBzZWxmCisgICAgICAgIHNlbGYuZmlyc3RyZXN1bHQgPSBmaXJzdHJlc3VsdAorCisgICAgZGVm
IGV4ZWN1dGUoc2VsZik6CisgICAgICAgIGNhbGxlcl9rd2FyZ3MgPSBzZWxmLmNhbGxlcl9rd2Fy
Z3MKKyAgICAgICAgc2VsZi5yZXN1bHRzID0gcmVzdWx0cyA9IFtdCisgICAgICAgIGZpcnN0cmVz
dWx0ID0gc2VsZi5maXJzdHJlc3VsdAorCisgICAgICAgIHdoaWxlIHNlbGYuaG9va19pbXBsczoK
KyAgICAgICAgICAgIGhvb2tfaW1wbCA9IHNlbGYuaG9va19pbXBscy5wb3AoKQorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIGFyZ3MgPSBbY2FsbGVyX2t3YXJnc1thcmduYW1lXSBm
b3IgYXJnbmFtZSBpbiBob29rX2ltcGwuYXJnbmFtZXNdCisgICAgICAgICAgICBleGNlcHQgS2V5
RXJyb3I6CisgICAgICAgICAgICAgICAgZm9yIGFyZ25hbWUgaW4gaG9va19pbXBsLmFyZ25hbWVz
OgorICAgICAgICAgICAgICAgICAgICBpZiBhcmduYW1lIG5vdCBpbiBjYWxsZXJfa3dhcmdzOgor
ICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgSG9va0NhbGxFcnJvcigKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiaG9vayBjYWxsIG11c3QgcHJvdmlkZSBhcmd1bWVudCAlciIgJSAo
YXJnbmFtZSwpCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBpZiBob29r
X2ltcGwuaG9va3dyYXBwZXI6CisgICAgICAgICAgICAgICAgcmV0dXJuIF93cmFwcGVkX2NhbGwo
aG9va19pbXBsLmZ1bmN0aW9uKCphcmdzKSwgc2VsZi5leGVjdXRlKQorICAgICAgICAgICAgcmVz
ID0gaG9va19pbXBsLmZ1bmN0aW9uKCphcmdzKQorICAgICAgICAgICAgaWYgcmVzIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgICAgIGlmIGZpcnN0cmVzdWx0OgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzCisgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQocmVzKQorCisgICAg
ICAgIGlmIG5vdCBmaXJzdHJlc3VsdDoKKyAgICAgICAgICAgIHJldHVybiByZXN1bHRzCisKKyAg
ICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHN0YXR1cyA9ICIlZCBtZXRocyIgJSAobGVu
KHNlbGYuaG9va19pbXBscyksKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJyZXN1bHRzIik6
CisgICAgICAgICAgICBzdGF0dXMgPSAoIiVkIHJlc3VsdHMsICIgJSBsZW4oc2VsZi5yZXN1bHRz
KSkgKyBzdGF0dXMKKyAgICAgICAgcmV0dXJuICI8X011bHRpQ2FsbCAlcywga3dhcmdzPSVyPiIg
JSAoc3RhdHVzLCBzZWxmLmNhbGxlcl9rd2FyZ3MpCisKKworZGVmIF9sZWdhY3ltdWx0aWNhbGwo
aG9va19pbXBscywgY2FsbGVyX2t3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2UpOgorICAgIHJldHVy
biBfTGVnYWN5TXVsdGlDYWxsKAorICAgICAgICBob29rX2ltcGxzLCBjYWxsZXJfa3dhcmdzLCBm
aXJzdHJlc3VsdD1maXJzdHJlc3VsdAorICAgICkuZXhlY3V0ZSgpCisKKworZGVmIF9tdWx0aWNh
bGwoaG9va19pbXBscywgY2FsbGVyX2t3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2UpOgorICAgICIi
IkV4ZWN1dGUgYSBjYWxsIGludG8gbXVsdGlwbGUgcHl0aG9uIGZ1bmN0aW9ucy9tZXRob2RzIGFu
ZCByZXR1cm4gdGhlCisgICAgcmVzdWx0KHMpLgorCisgICAgYGBjYWxsZXJfa3dhcmdzYGAgY29t
ZXMgZnJvbSBfSG9va0NhbGxlci5fX2NhbGxfXygpLgorICAgICIiIgorICAgIF9fdHJhY2ViYWNr
aGlkZV9fID0gVHJ1ZQorICAgIHJlc3VsdHMgPSBbXQorICAgIGV4Y2luZm8gPSBOb25lCisgICAg
dHJ5OiAgIyBydW4gaW1wbCBhbmQgd3JhcHBlciBzZXR1cCBmdW5jdGlvbnMgaW4gYSBsb29wCisg
ICAgICAgIHRlYXJkb3ducyA9IFtdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBob29r
X2ltcGwgaW4gcmV2ZXJzZWQoaG9va19pbXBscyk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgICAgICBhcmdzID0gW2NhbGxlcl9rd2FyZ3NbYXJnbmFtZV0gZm9yIGFyZ25h
bWUgaW4gaG9va19pbXBsLmFyZ25hbWVzXQorICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJv
cjoKKyAgICAgICAgICAgICAgICAgICAgZm9yIGFyZ25hbWUgaW4gaG9va19pbXBsLmFyZ25hbWVz
OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgYXJnbmFtZSBub3QgaW4gY2FsbGVyX2t3YXJn
czoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBIb29rQ2FsbEVycm9yKAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaG9vayBjYWxsIG11c3QgcHJvdmlkZSBhcmd1
bWVudCAlciIgJSAoYXJnbmFtZSwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisg
ICAgICAgICAgICAgICAgaWYgaG9va19pbXBsLmhvb2t3cmFwcGVyOgorICAgICAgICAgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBnZW4gPSBob29rX2ltcGwuZnVuY3Rp
b24oKmFyZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0KGdlbikgICMgZmlyc3QgeWll
bGQKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlYXJkb3ducy5hcHBlbmQoZ2VuKQorICAgICAg
ICAgICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIF9yYWlzZV93cmFwZmFpbChnZW4sICJkaWQgbm90IHlpZWxkIikKKyAgICAgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXMgPSBob29rX2ltcGwuZnVuY3Rpb24oKmFy
Z3MpCisgICAgICAgICAgICAgICAgICAgIGlmIHJlcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHJlcykKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmIGZpcnN0cmVzdWx0OiAgIyBoYWx0IGZ1cnRoZXIgaW1wbCBjYWxscworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uOgorICAg
ICAgICAgICAgZXhjaW5mbyA9IHN5cy5leGNfaW5mbygpCisgICAgZmluYWxseToKKyAgICAgICAg
aWYgZmlyc3RyZXN1bHQ6ICAjIGZpcnN0IHJlc3VsdCBob29rcyByZXR1cm4gYSBzaW5nbGUgdmFs
dWUKKyAgICAgICAgICAgIG91dGNvbWUgPSBfUmVzdWx0KHJlc3VsdHNbMF0gaWYgcmVzdWx0cyBl
bHNlIE5vbmUsIGV4Y2luZm8pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvdXRjb21lID0g
X1Jlc3VsdChyZXN1bHRzLCBleGNpbmZvKQorCisgICAgICAgICMgcnVuIGFsbCB3cmFwcGVyIHBv
c3QteWllbGQgYmxvY2tzCisgICAgICAgIGZvciBnZW4gaW4gcmV2ZXJzZWQodGVhcmRvd25zKToK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBnZW4uc2VuZChvdXRjb21lKQorICAg
ICAgICAgICAgICAgIF9yYWlzZV93cmFwZmFpbChnZW4sICJoYXMgc2Vjb25kIHlpZWxkIikKKyAg
ICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgICAgIHBhc3MKKwor
ICAgICAgICByZXR1cm4gb3V0Y29tZS5nZXRfcmVzdWx0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L3NyYy9wbHVnZ3kvaG9va3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L2hvb2tzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBhMWMyODcxOThmMmYyYTE4OTYwOTkwNDE2NTZmNmNmZjgzMjA5MTYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L2hvb2tzLnB5CkBAIC0wLDAg
KzEsMzU5IEBACisiIiIKK0ludGVybmFsIGhvb2sgYW5ub3RhdGlvbiwgcmVwcmVzZW50YXRpb24g
YW5kIGNhbGxpbmcgbWFjaGluZXJ5LgorIiIiCitpbXBvcnQgaW5zcGVjdAoraW1wb3J0IHN5cwor
aW1wb3J0IHdhcm5pbmdzCitmcm9tIC5jYWxsZXJzIGltcG9ydCBfbGVnYWN5bXVsdGljYWxsLCBf
bXVsdGljYWxsCisKKworY2xhc3MgSG9va3NwZWNNYXJrZXIob2JqZWN0KToKKyAgICAiIiIgRGVj
b3JhdG9yIGhlbHBlciBjbGFzcyBmb3IgbWFya2luZyBmdW5jdGlvbnMgYXMgaG9vayBzcGVjaWZp
Y2F0aW9ucy4KKworICAgIFlvdSBjYW4gaW5zdGFudGlhdGUgaXQgd2l0aCBhIHByb2plY3RfbmFt
ZSB0byBnZXQgYSBkZWNvcmF0b3IuCisgICAgQ2FsbGluZyA6cHk6bWV0aDpgLlBsdWdpbk1hbmFn
ZXIuYWRkX2hvb2tzcGVjc2AgbGF0ZXIgd2lsbCBkaXNjb3ZlciBhbGwgbWFya2VkIGZ1bmN0aW9u
cworICAgIGlmIHRoZSA6cHk6Y2xhc3M6YC5QbHVnaW5NYW5hZ2VyYCB1c2VzIHRoZSBzYW1lIHBy
b2plY3RfbmFtZS4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0X25h
bWUpOgorICAgICAgICBzZWxmLnByb2plY3RfbmFtZSA9IHByb2plY3RfbmFtZQorCisgICAgZGVm
IF9fY2FsbF9fKAorICAgICAgICBzZWxmLCBmdW5jdGlvbj1Ob25lLCBmaXJzdHJlc3VsdD1GYWxz
ZSwgaGlzdG9yaWM9RmFsc2UsIHdhcm5fb25faW1wbD1Ob25lCisgICAgKToKKyAgICAgICAgIiIi
IGlmIHBhc3NlZCBhIGZ1bmN0aW9uLCBkaXJlY3RseSBzZXRzIGF0dHJpYnV0ZXMgb24gdGhlIGZ1
bmN0aW9uCisgICAgICAgIHdoaWNoIHdpbGwgbWFrZSBpdCBkaXNjb3ZlcmFibGUgdG8gOnB5Om1l
dGg6YC5QbHVnaW5NYW5hZ2VyLmFkZF9ob29rc3BlY3NgLgorICAgICAgICBJZiBwYXNzZWQgbm8g
ZnVuY3Rpb24sIHJldHVybnMgYSBkZWNvcmF0b3Igd2hpY2ggY2FuIGJlIGFwcGxpZWQgdG8gYSBm
dW5jdGlvbgorICAgICAgICBsYXRlciB1c2luZyB0aGUgYXR0cmlidXRlcyBzdXBwbGllZC4KKwor
ICAgICAgICBJZiBgYGZpcnN0cmVzdWx0YGAgaXMgYGBUcnVlYGAgdGhlIDE6TiBob29rIGNhbGwg
KE4gYmVpbmcgdGhlIG51bWJlciBvZiByZWdpc3RlcmVkCisgICAgICAgIGhvb2sgaW1wbGVtZW50
YXRpb24gZnVuY3Rpb25zKSB3aWxsIHN0b3AgYXQgSTw9TiB3aGVuIHRoZSBJJ3RoIGZ1bmN0aW9u
CisgICAgICAgIHJldHVybnMgYSBub24tYGBOb25lYGAgcmVzdWx0LgorCisgICAgICAgIElmIGBg
aGlzdG9yaWNgYCBpcyBgYFRydWVgYCBjYWxscyB0byBhIGhvb2sgd2lsbCBiZSBtZW1vcml6ZWQg
YW5kIHJlcGxheWVkCisgICAgICAgIG9uIGxhdGVyIHJlZ2lzdGVyZWQgcGx1Z2lucy4KKworICAg
ICAgICAiIiIKKworICAgICAgICBkZWYgc2V0YXR0cl9ob29rc3BlY19vcHRzKGZ1bmMpOgorICAg
ICAgICAgICAgaWYgaGlzdG9yaWMgYW5kIGZpcnN0cmVzdWx0OgorICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoImNhbm5vdCBoYXZlIGEgaGlzdG9yaWMgZmlyc3RyZXN1bHQgaG9vayIp
CisgICAgICAgICAgICBzZXRhdHRyKAorICAgICAgICAgICAgICAgIGZ1bmMsCisgICAgICAgICAg
ICAgICAgc2VsZi5wcm9qZWN0X25hbWUgKyAiX3NwZWMiLAorICAgICAgICAgICAgICAgIGRpY3Qo
CisgICAgICAgICAgICAgICAgICAgIGZpcnN0cmVzdWx0PWZpcnN0cmVzdWx0LAorICAgICAgICAg
ICAgICAgICAgICBoaXN0b3JpYz1oaXN0b3JpYywKKyAgICAgICAgICAgICAgICAgICAgd2Fybl9v
bl9pbXBsPXdhcm5fb25faW1wbCwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKQor
ICAgICAgICAgICAgcmV0dXJuIGZ1bmMKKworICAgICAgICBpZiBmdW5jdGlvbiBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgIHJldHVybiBzZXRhdHRyX2hvb2tzcGVjX29wdHMoZnVuY3Rpb24pCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2V0YXR0cl9ob29rc3BlY19vcHRzCisK
KworY2xhc3MgSG9va2ltcGxNYXJrZXIob2JqZWN0KToKKyAgICAiIiIgRGVjb3JhdG9yIGhlbHBl
ciBjbGFzcyBmb3IgbWFya2luZyBmdW5jdGlvbnMgYXMgaG9vayBpbXBsZW1lbnRhdGlvbnMuCisK
KyAgICBZb3UgY2FuIGluc3RhbnRpYXRlIHdpdGggYSBgYHByb2plY3RfbmFtZWBgIHRvIGdldCBh
IGRlY29yYXRvci4KKyAgICBDYWxsaW5nIDpweTptZXRoOmAuUGx1Z2luTWFuYWdlci5yZWdpc3Rl
cmAgbGF0ZXIgd2lsbCBkaXNjb3ZlciBhbGwgbWFya2VkIGZ1bmN0aW9ucworICAgIGlmIHRoZSA6
cHk6Y2xhc3M6YC5QbHVnaW5NYW5hZ2VyYCB1c2VzIHRoZSBzYW1lIHByb2plY3RfbmFtZS4KKyAg
ICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0X25hbWUpOgorICAgICAgICBz
ZWxmLnByb2plY3RfbmFtZSA9IHByb2plY3RfbmFtZQorCisgICAgZGVmIF9fY2FsbF9fKAorICAg
ICAgICBzZWxmLAorICAgICAgICBmdW5jdGlvbj1Ob25lLAorICAgICAgICBob29rd3JhcHBlcj1G
YWxzZSwKKyAgICAgICAgb3B0aW9uYWxob29rPUZhbHNlLAorICAgICAgICB0cnlmaXJzdD1GYWxz
ZSwKKyAgICAgICAgdHJ5bGFzdD1GYWxzZSwKKyAgICApOgorCisgICAgICAgICIiIiBpZiBwYXNz
ZWQgYSBmdW5jdGlvbiwgZGlyZWN0bHkgc2V0cyBhdHRyaWJ1dGVzIG9uIHRoZSBmdW5jdGlvbgor
ICAgICAgICB3aGljaCB3aWxsIG1ha2UgaXQgZGlzY292ZXJhYmxlIHRvIDpweTptZXRoOmAuUGx1
Z2luTWFuYWdlci5yZWdpc3RlcmAuCisgICAgICAgIElmIHBhc3NlZCBubyBmdW5jdGlvbiwgcmV0
dXJucyBhIGRlY29yYXRvciB3aGljaCBjYW4gYmUgYXBwbGllZCB0byBhCisgICAgICAgIGZ1bmN0
aW9uIGxhdGVyIHVzaW5nIHRoZSBhdHRyaWJ1dGVzIHN1cHBsaWVkLgorCisgICAgICAgIElmIGBg
b3B0aW9uYWxob29rYGAgaXMgYGBUcnVlYGAgYSBtaXNzaW5nIG1hdGNoaW5nIGhvb2sgc3BlY2lm
aWNhdGlvbiB3aWxsIG5vdCByZXN1bHQKKyAgICAgICAgaW4gYW4gZXJyb3IgKGJ5IGRlZmF1bHQg
aXQgaXMgYW4gZXJyb3IgaWYgbm8gbWF0Y2hpbmcgc3BlYyBpcyBmb3VuZCkuCisKKyAgICAgICAg
SWYgYGB0cnlmaXJzdGBgIGlzIGBgVHJ1ZWBgIHRoaXMgaG9vayBpbXBsZW1lbnRhdGlvbiB3aWxs
IHJ1biBhcyBlYXJseSBhcyBwb3NzaWJsZQorICAgICAgICBpbiB0aGUgY2hhaW4gb2YgTiBob29r
IGltcGxlbWVudGF0aW9ucyBmb3IgYSBzcGVjaWZpY2F0aW9uLgorCisgICAgICAgIElmIGBgdHJ5
bGFzdGBgIGlzIGBgVHJ1ZWBgIHRoaXMgaG9vayBpbXBsZW1lbnRhdGlvbiB3aWxsIHJ1biBhcyBs
YXRlIGFzIHBvc3NpYmxlCisgICAgICAgIGluIHRoZSBjaGFpbiBvZiBOIGhvb2sgaW1wbGVtZW50
YXRpb25zLgorCisgICAgICAgIElmIGBgaG9va3dyYXBwZXJgYCBpcyBgYFRydWVgYCB0aGUgaG9v
ayBpbXBsZW1lbnRhdGlvbnMgbmVlZHMgdG8gZXhlY3V0ZSBleGFjdGx5CisgICAgICAgIG9uZSBg
YHlpZWxkYGAuICBUaGUgY29kZSBiZWZvcmUgdGhlIGBgeWllbGRgYCBpcyBydW4gZWFybHkgYmVm
b3JlIGFueSBub24taG9va3dyYXBwZXIKKyAgICAgICAgZnVuY3Rpb24gaXMgcnVuLiAgVGhlIGNv
ZGUgYWZ0ZXIgdGhlIGBgeWllbGRgYCBpcyBydW4gYWZ0ZXIgYWxsIG5vbi1ob29rd3JhcHBlcgor
ICAgICAgICBmdW5jdGlvbiBoYXZlIHJ1bi4gIFRoZSBgYHlpZWxkYGAgcmVjZWl2ZXMgYSA6cHk6
Y2xhc3M6YC5jYWxsZXJzLl9SZXN1bHRgIG9iamVjdAorICAgICAgICByZXByZXNlbnRpbmcgdGhl
IGV4Y2VwdGlvbiBvciByZXN1bHQgb3V0Y29tZSBvZiB0aGUgaW5uZXIgY2FsbHMgKGluY2x1ZGlu
ZyBvdGhlcgorICAgICAgICBob29rd3JhcHBlciBjYWxscykuCisKKyAgICAgICAgIiIiCisKKyAg
ICAgICAgZGVmIHNldGF0dHJfaG9va2ltcGxfb3B0cyhmdW5jKToKKyAgICAgICAgICAgIHNldGF0
dHIoCisgICAgICAgICAgICAgICAgZnVuYywKKyAgICAgICAgICAgICAgICBzZWxmLnByb2plY3Rf
bmFtZSArICJfaW1wbCIsCisgICAgICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICAg
ICAgaG9va3dyYXBwZXI9aG9va3dyYXBwZXIsCisgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFs
aG9vaz1vcHRpb25hbGhvb2ssCisgICAgICAgICAgICAgICAgICAgIHRyeWZpcnN0PXRyeWZpcnN0
LAorICAgICAgICAgICAgICAgICAgICB0cnlsYXN0PXRyeWxhc3QsCisgICAgICAgICAgICAgICAg
KSwKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVybiBmdW5jCisKKyAgICAgICAgaWYg
ZnVuY3Rpb24gaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZXRhdHRyX2hvb2tpbXBsX29w
dHMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZXRhdHRyX2hvb2tpbXBsX29w
dHMoZnVuY3Rpb24pCisKKworZGVmIG5vcm1hbGl6ZV9ob29raW1wbF9vcHRzKG9wdHMpOgorICAg
IG9wdHMuc2V0ZGVmYXVsdCgidHJ5Zmlyc3QiLCBGYWxzZSkKKyAgICBvcHRzLnNldGRlZmF1bHQo
InRyeWxhc3QiLCBGYWxzZSkKKyAgICBvcHRzLnNldGRlZmF1bHQoImhvb2t3cmFwcGVyIiwgRmFs
c2UpCisgICAgb3B0cy5zZXRkZWZhdWx0KCJvcHRpb25hbGhvb2siLCBGYWxzZSkKKworCitpZiBo
YXNhdHRyKGluc3BlY3QsICJnZXRmdWxsYXJnc3BlYyIpOgorCisgICAgZGVmIF9nZXRhcmdzcGVj
KGZ1bmMpOgorICAgICAgICByZXR1cm4gaW5zcGVjdC5nZXRmdWxsYXJnc3BlYyhmdW5jKQorCisK
K2Vsc2U6CisKKyAgICBkZWYgX2dldGFyZ3NwZWMoZnVuYyk6CisgICAgICAgIHJldHVybiBpbnNw
ZWN0LmdldGFyZ3NwZWMoZnVuYykKKworCitfUFlQWTMgPSBoYXNhdHRyKHN5cywgInB5cHlfdmVy
c2lvbl9pbmZvIikgYW5kIHN5cy52ZXJzaW9uX2luZm8ubWFqb3IgPT0gMworCisKK2RlZiB2YXJu
YW1lcyhmdW5jKToKKyAgICAiIiJSZXR1cm4gdHVwbGUgb2YgcG9zaXRpb25hbCBhbmQga2V5d3Jv
cmQgYXJndW1lbnQgbmFtZXMgZm9yIGEgZnVuY3Rpb24sCisgICAgbWV0aG9kLCBjbGFzcyBvciBj
YWxsYWJsZS4KKworICAgIEluIGNhc2Ugb2YgYSBjbGFzcywgaXRzIGBgX19pbml0X19gYCBtZXRo
b2QgaXMgY29uc2lkZXJlZC4KKyAgICBGb3IgbWV0aG9kcyB0aGUgYGBzZWxmYGAgcGFyYW1ldGVy
IGlzIG5vdCBpbmNsdWRlZC4KKyAgICAiIiIKKyAgICBjYWNoZSA9IGdldGF0dHIoZnVuYywgIl9f
ZGljdF9fIiwge30pCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gY2FjaGVbIl92YXJuYW1lcyJd
CisgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICBwYXNzCisKKyAgICBpZiBpbnNwZWN0Lmlz
Y2xhc3MoZnVuYyk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZ1bmMgPSBmdW5jLl9faW5p
dF9fCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiAo
KSwgKCkKKyAgICBlbGlmIG5vdCBpbnNwZWN0Lmlzcm91dGluZShmdW5jKTogICMgY2FsbGFibGUg
b2JqZWN0PworICAgICAgICB0cnk6CisgICAgICAgICAgICBmdW5jID0gZ2V0YXR0cihmdW5jLCAi
X19jYWxsX18iLCBmdW5jKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAg
cmV0dXJuICgpLCAoKQorCisgICAgdHJ5OiAgIyBmdW5jIE1VU1QgYmUgYSBmdW5jdGlvbiBvciBt
ZXRob2QgaGVyZSBvciB3ZSB3b24ndCBwYXJzZSBhbnkgYXJncworICAgICAgICBzcGVjID0gX2dl
dGFyZ3NwZWMoZnVuYykKKyAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICByZXR1cm4gKCks
ICgpCisKKyAgICBhcmdzLCBkZWZhdWx0cyA9IHR1cGxlKHNwZWMuYXJncyksIHNwZWMuZGVmYXVs
dHMKKyAgICBpZiBkZWZhdWx0czoKKyAgICAgICAgaW5kZXggPSAtbGVuKGRlZmF1bHRzKQorICAg
ICAgICBhcmdzLCBrd2FyZ3MgPSBhcmdzWzppbmRleF0sIHR1cGxlKGFyZ3NbaW5kZXg6XSkKKyAg
ICBlbHNlOgorICAgICAgICBrd2FyZ3MgPSAoKQorCisgICAgIyBzdHJpcCBhbnkgaW1wbGljaXQg
aW5zdGFuY2UgYXJnCisgICAgIyBweXB5MyB1c2VzICJvYmoiIGluc3RlYWQgb2YgInNlbGYiIGZv
ciBkZWZhdWx0IGR1bmRlciBtZXRob2RzCisgICAgaW1wbGljaXRfbmFtZXMgPSAoInNlbGYiLCkg
aWYgbm90IF9QWVBZMyBlbHNlICgic2VsZiIsICJvYmoiKQorICAgIGlmIGFyZ3M6CisgICAgICAg
IGlmIGluc3BlY3QuaXNtZXRob2QoZnVuYykgb3IgKAorICAgICAgICAgICAgIi4iIGluIGdldGF0
dHIoZnVuYywgIl9fcXVhbG5hbWVfXyIsICgpKSBhbmQgYXJnc1swXSBpbiBpbXBsaWNpdF9uYW1l
cworICAgICAgICApOgorICAgICAgICAgICAgYXJncyA9IGFyZ3NbMTpdCisKKyAgICB0cnk6Cisg
ICAgICAgIGNhY2hlWyJfdmFybmFtZXMiXSA9IGFyZ3MsIGt3YXJncworICAgIGV4Y2VwdCBUeXBl
RXJyb3I6CisgICAgICAgIHBhc3MKKyAgICByZXR1cm4gYXJncywga3dhcmdzCisKKworY2xhc3Mg
X0hvb2tSZWxheShvYmplY3QpOgorICAgICIiIiBob29rIGhvbGRlciBvYmplY3QgZm9yIHBlcmZv
cm1pbmcgMTpOIGhvb2sgY2FsbHMgd2hlcmUgTiBpcyB0aGUgbnVtYmVyCisgICAgb2YgcmVnaXN0
ZXJlZCBwbHVnaW5zLgorCisgICAgIiIiCisKKworY2xhc3MgX0hvb2tDYWxsZXIob2JqZWN0KToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgaG9va19leGVjdXRlLCBzcGVjbW9kdWxlX29y
X2NsYXNzPU5vbmUsIHNwZWNfb3B0cz1Ob25lKToKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQor
ICAgICAgICBzZWxmLl93cmFwcGVycyA9IFtdCisgICAgICAgIHNlbGYuX25vbndyYXBwZXJzID0g
W10KKyAgICAgICAgc2VsZi5faG9va2V4ZWMgPSBob29rX2V4ZWN1dGUKKyAgICAgICAgc2VsZi5h
cmduYW1lcyA9IE5vbmUKKyAgICAgICAgc2VsZi5rd2FyZ25hbWVzID0gTm9uZQorICAgICAgICBz
ZWxmLm11bHRpY2FsbCA9IF9tdWx0aWNhbGwKKyAgICAgICAgc2VsZi5zcGVjID0gTm9uZQorICAg
ICAgICBpZiBzcGVjbW9kdWxlX29yX2NsYXNzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYXNz
ZXJ0IHNwZWNfb3B0cyBpcyBub3QgTm9uZQorICAgICAgICAgICAgc2VsZi5zZXRfc3BlY2lmaWNh
dGlvbihzcGVjbW9kdWxlX29yX2NsYXNzLCBzcGVjX29wdHMpCisKKyAgICBkZWYgaGFzX3NwZWMo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNwZWMgaXMgbm90IE5vbmUKKworICAgIGRlZiBz
ZXRfc3BlY2lmaWNhdGlvbihzZWxmLCBzcGVjbW9kdWxlX29yX2NsYXNzLCBzcGVjX29wdHMpOgor
ICAgICAgICBhc3NlcnQgbm90IHNlbGYuaGFzX3NwZWMoKQorICAgICAgICBzZWxmLnNwZWMgPSBI
b29rU3BlYyhzcGVjbW9kdWxlX29yX2NsYXNzLCBzZWxmLm5hbWUsIHNwZWNfb3B0cykKKyAgICAg
ICAgaWYgc3BlY19vcHRzLmdldCgiaGlzdG9yaWMiKToKKyAgICAgICAgICAgIHNlbGYuX2NhbGxf
aGlzdG9yeSA9IFtdCisKKyAgICBkZWYgaXNfaGlzdG9yaWMoc2VsZik6CisgICAgICAgIHJldHVy
biBoYXNhdHRyKHNlbGYsICJfY2FsbF9oaXN0b3J5IikKKworICAgIGRlZiBfcmVtb3ZlX3BsdWdp
bihzZWxmLCBwbHVnaW4pOgorICAgICAgICBkZWYgcmVtb3ZlKHdyYXBwZXJzKToKKyAgICAgICAg
ICAgIGZvciBpLCBtZXRob2QgaW4gZW51bWVyYXRlKHdyYXBwZXJzKToKKyAgICAgICAgICAgICAg
ICBpZiBtZXRob2QucGx1Z2luID09IHBsdWdpbjoKKyAgICAgICAgICAgICAgICAgICAgZGVsIHdy
YXBwZXJzW2ldCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgaWYg
cmVtb3ZlKHNlbGYuX3dyYXBwZXJzKSBpcyBOb25lOgorICAgICAgICAgICAgaWYgcmVtb3ZlKHNl
bGYuX25vbndyYXBwZXJzKSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoInBsdWdpbiAlciBub3QgZm91bmQiICUgKHBsdWdpbiwpKQorCisgICAgZGVmIGdldF9ob29r
aW1wbHMoc2VsZik6CisgICAgICAgICMgT3JkZXIgaXMgaW1wb3J0YW50IGZvciBfaG9va2V4ZWMK
KyAgICAgICAgcmV0dXJuIHNlbGYuX25vbndyYXBwZXJzICsgc2VsZi5fd3JhcHBlcnMKKworICAg
IGRlZiBfYWRkX2hvb2tpbXBsKHNlbGYsIGhvb2tpbXBsKToKKyAgICAgICAgIiIiQWRkIGFuIGlt
cGxlbWVudGF0aW9uIHRvIHRoZSBjYWxsYmFjayBjaGFpbi4KKyAgICAgICAgIiIiCisgICAgICAg
IGlmIGhvb2tpbXBsLmhvb2t3cmFwcGVyOgorICAgICAgICAgICAgbWV0aG9kcyA9IHNlbGYuX3dy
YXBwZXJzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtZXRob2RzID0gc2VsZi5fbm9ud3Jh
cHBlcnMKKworICAgICAgICBpZiBob29raW1wbC50cnlsYXN0OgorICAgICAgICAgICAgbWV0aG9k
cy5pbnNlcnQoMCwgaG9va2ltcGwpCisgICAgICAgIGVsaWYgaG9va2ltcGwudHJ5Zmlyc3Q6Cisg
ICAgICAgICAgICBtZXRob2RzLmFwcGVuZChob29raW1wbCkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICMgZmluZCBsYXN0IG5vbi10cnlmaXJzdCBtZXRob2QKKyAgICAgICAgICAgIGkgPSBs
ZW4obWV0aG9kcykgLSAxCisgICAgICAgICAgICB3aGlsZSBpID49IDAgYW5kIG1ldGhvZHNbaV0u
dHJ5Zmlyc3Q6CisgICAgICAgICAgICAgICAgaSAtPSAxCisgICAgICAgICAgICBtZXRob2RzLmlu
c2VydChpICsgMSwgaG9va2ltcGwpCisKKyAgICAgICAgaWYgIl9fbXVsdGljYWxsX18iIGluIGhv
b2tpbXBsLmFyZ25hbWVzOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAg
ICAgICAiU3VwcG9ydCBmb3IgX19tdWx0aWNhbGxfXyBpcyBub3cgZGVwcmVjYXRlZCBhbmQgd2ls
bCBiZSIKKyAgICAgICAgICAgICAgICAicmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiIs
CisgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLAorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgc2VsZi5tdWx0aWNhbGwgPSBfbGVnYWN5bXVsdGljYWxsCisKKyAgICBkZWYgX19y
ZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPF9Ib29rQ2FsbGVyICVyPiIgJSAoc2VsZi5u
YW1lLCkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAg
ICBpZiBhcmdzOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJob29rIGNhbGxpbmcgc3Vw
cG9ydHMgb25seSBrZXl3b3JkIGFyZ3VtZW50cyIpCisgICAgICAgIGFzc2VydCBub3Qgc2VsZi5p
c19oaXN0b3JpYygpCisgICAgICAgIGlmIHNlbGYuc3BlYyBhbmQgc2VsZi5zcGVjLmFyZ25hbWVz
OgorICAgICAgICAgICAgbm90aW5jYWxsID0gKAorICAgICAgICAgICAgICAgIHNldChzZWxmLnNw
ZWMuYXJnbmFtZXMpIC0gc2V0KFsiX19tdWx0aWNhbGxfXyJdKSAtIHNldChrd2FyZ3Mua2V5cygp
KQorICAgICAgICAgICAgKQorICAgICAgICAgICAgaWYgbm90aW5jYWxsOgorICAgICAgICAgICAg
ICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudChzKSB7fSB3
aGljaCBhcmUgZGVjbGFyZWQgaW4gdGhlIGhvb2tzcGVjICIKKyAgICAgICAgICAgICAgICAgICAg
ImNhbiBub3QgYmUgZm91bmQgaW4gdGhpcyBob29rIGNhbGwiLmZvcm1hdCh0dXBsZShub3RpbmNh
bGwpKSwKKyAgICAgICAgICAgICAgICAgICAgc3RhY2tsZXZlbD0yLAorICAgICAgICAgICAgICAg
ICkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2hvb2tleGVjKHNlbGYsIHNlbGYuZ2V0X2hvb2tpbXBs
cygpLCBrd2FyZ3MpCisKKyAgICBkZWYgY2FsbF9oaXN0b3JpYyhzZWxmLCByZXN1bHRfY2FsbGJh
Y2s9Tm9uZSwga3dhcmdzPU5vbmUsIHByb2M9Tm9uZSk6CisgICAgICAgICIiIkNhbGwgdGhlIGhv
b2sgd2l0aCBnaXZlbiBgYGt3YXJnc2BgIGZvciBhbGwgcmVnaXN0ZXJlZCBwbHVnaW5zIGFuZAor
ICAgICAgICBmb3IgYWxsIHBsdWdpbnMgd2hpY2ggd2lsbCBiZSByZWdpc3RlcmVkIGFmdGVyd2Fy
ZHMuCisKKyAgICAgICAgSWYgYGByZXN1bHRfY2FsbGJhY2tgYCBpcyBub3QgYGBOb25lYGAgaXQg
d2lsbCBiZSBjYWxsZWQgZm9yIGZvciBlYWNoCisgICAgICAgIG5vbi1gYE5vbmVgYCByZXN1bHQg
b2J0YWluZWQgZnJvbSBhIGhvb2sgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgLi4gbm90ZTo6
CisgICAgICAgICAgICBUaGUgYGBwcm9jYGAgYXJndW1lbnQgaXMgbm93IGRlcHJlY2F0ZWQuCisg
ICAgICAgICIiIgorICAgICAgICBpZiBwcm9jIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgd2Fy
bmluZ3Mud2FybigKKyAgICAgICAgICAgICAgICAiU3VwcG9ydCBmb3IgYHByb2NgIGFyZ3VtZW50
IGlzIG5vdyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIgorICAgICAgICAgICAgICAgICJyZW1vdmVk
IGluIGFuIHVwY29taW5nIHJlbGVhc2UuIiwKKyAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldh
cm5pbmcsCisgICAgICAgICAgICApCisgICAgICAgICAgICByZXN1bHRfY2FsbGJhY2sgPSBwcm9j
CisKKyAgICAgICAgc2VsZi5fY2FsbF9oaXN0b3J5LmFwcGVuZCgoa3dhcmdzIG9yIHt9LCByZXN1
bHRfY2FsbGJhY2spKQorICAgICAgICAjIGhpc3Rvcml6aW5nIGhvb2tzIGRvbid0IHJldHVybiBy
ZXN1bHRzCisgICAgICAgIHJlcyA9IHNlbGYuX2hvb2tleGVjKHNlbGYsIHNlbGYuZ2V0X2hvb2tp
bXBscygpLCBrd2FyZ3MpCisgICAgICAgIGlmIHJlc3VsdF9jYWxsYmFjayBpcyBOb25lOgorICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgICMgWFhYOiByZW1lbWJlciBmaXJzdHJlc3VsdCBpc24n
dCBjb21wYXQgd2l0aCBoaXN0b3JpYworICAgICAgICBmb3IgeCBpbiByZXMgb3IgW106CisgICAg
ICAgICAgICByZXN1bHRfY2FsbGJhY2soeCkKKworICAgIGRlZiBjYWxsX2V4dHJhKHNlbGYsIG1l
dGhvZHMsIGt3YXJncyk6CisgICAgICAgICIiIiBDYWxsIHRoZSBob29rIHdpdGggc29tZSBhZGRp
dGlvbmFsIHRlbXBvcmFyaWx5IHBhcnRpY2lwYXRpbmcKKyAgICAgICAgbWV0aG9kcyB1c2luZyB0
aGUgc3BlY2lmaWVkIGBga3dhcmdzYGAgYXMgY2FsbCBwYXJhbWV0ZXJzLiAiIiIKKyAgICAgICAg
b2xkID0gbGlzdChzZWxmLl9ub253cmFwcGVycyksIGxpc3Qoc2VsZi5fd3JhcHBlcnMpCisgICAg
ICAgIGZvciBtZXRob2QgaW4gbWV0aG9kczoKKyAgICAgICAgICAgIG9wdHMgPSBkaWN0KGhvb2t3
cmFwcGVyPUZhbHNlLCB0cnlsYXN0PUZhbHNlLCB0cnlmaXJzdD1GYWxzZSkKKyAgICAgICAgICAg
IGhvb2tpbXBsID0gSG9va0ltcGwoTm9uZSwgIjx0ZW1wPiIsIG1ldGhvZCwgb3B0cykKKyAgICAg
ICAgICAgIHNlbGYuX2FkZF9ob29raW1wbChob29raW1wbCkKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYoKiprd2FyZ3MpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAg
ICBzZWxmLl9ub253cmFwcGVycywgc2VsZi5fd3JhcHBlcnMgPSBvbGQKKworICAgIGRlZiBfbWF5
YmVfYXBwbHlfaGlzdG9yeShzZWxmLCBtZXRob2QpOgorICAgICAgICAiIiJBcHBseSBjYWxsIGhp
c3RvcnkgdG8gYSBuZXcgaG9va2ltcGwgaWYgaXQgaXMgbWFya2VkIGFzIGhpc3RvcmljLgorICAg
ICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5pc19oaXN0b3JpYygpOgorICAgICAgICAgICAgZm9y
IGt3YXJncywgcmVzdWx0X2NhbGxiYWNrIGluIHNlbGYuX2NhbGxfaGlzdG9yeToKKyAgICAgICAg
ICAgICAgICByZXMgPSBzZWxmLl9ob29rZXhlYyhzZWxmLCBbbWV0aG9kXSwga3dhcmdzKQorICAg
ICAgICAgICAgICAgIGlmIHJlcyBhbmQgcmVzdWx0X2NhbGxiYWNrIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgICAgICAgICByZXN1bHRfY2FsbGJhY2socmVzWzBdKQorCisKK2NsYXNzIEhvb2tJ
bXBsKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsdWdpbiwgcGx1Z2luX25hbWUs
IGZ1bmN0aW9uLCBob29rX2ltcGxfb3B0cyk6CisgICAgICAgIHNlbGYuZnVuY3Rpb24gPSBmdW5j
dGlvbgorICAgICAgICBzZWxmLmFyZ25hbWVzLCBzZWxmLmt3YXJnbmFtZXMgPSB2YXJuYW1lcyhz
ZWxmLmZ1bmN0aW9uKQorICAgICAgICBzZWxmLnBsdWdpbiA9IHBsdWdpbgorICAgICAgICBzZWxm
Lm9wdHMgPSBob29rX2ltcGxfb3B0cworICAgICAgICBzZWxmLnBsdWdpbl9uYW1lID0gcGx1Z2lu
X25hbWUKKyAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoaG9va19pbXBsX29wdHMpCisKKyAg
ICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPEhvb2tJbXBsIHBsdWdpbl9u
YW1lPSVyLCBwbHVnaW49JXI+IiAlIChzZWxmLnBsdWdpbl9uYW1lLCBzZWxmLnBsdWdpbikKKwor
CitjbGFzcyBIb29rU3BlYyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lc3Bh
Y2UsIG5hbWUsIG9wdHMpOgorICAgICAgICBzZWxmLm5hbWVzcGFjZSA9IG5hbWVzcGFjZQorICAg
ICAgICBzZWxmLmZ1bmN0aW9uID0gZnVuY3Rpb24gPSBnZXRhdHRyKG5hbWVzcGFjZSwgbmFtZSkK
KyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorICAgICAgICBzZWxmLmFyZ25hbWVzLCBzZWxmLmt3
YXJnbmFtZXMgPSB2YXJuYW1lcyhmdW5jdGlvbikKKyAgICAgICAgc2VsZi5vcHRzID0gb3B0cwor
ICAgICAgICBzZWxmLmFyZ25hbWVzID0gWyJfX211bHRpY2FsbF9fIl0gKyBsaXN0KHNlbGYuYXJn
bmFtZXMpCisgICAgICAgIHNlbGYud2Fybl9vbl9pbXBsID0gb3B0cy5nZXQoIndhcm5fb25faW1w
bCIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L21hbmFnZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9zcmMvcGx1Z2d5L21hbmFnZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdiNDJjYmEyZDVlZDE1
ZjE0YWU4ZWUyZDIzZjk1MTBmNTZiNGUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L3NyYy9wbHVnZ3kvbWFuYWdlci5weQpAQCAtMCwwICsxLDM5NCBAQAoraW1wb3J0IGluc3BlY3QK
K2ltcG9ydCBzeXMKK2Zyb20gLiBpbXBvcnQgX3RyYWNpbmcKK2Zyb20gLmNhbGxlcnMgaW1wb3J0
IF9SZXN1bHQKK2Zyb20gLmhvb2tzIGltcG9ydCBIb29rSW1wbCwgX0hvb2tSZWxheSwgX0hvb2tD
YWxsZXIsIG5vcm1hbGl6ZV9ob29raW1wbF9vcHRzCitpbXBvcnQgd2FybmluZ3MKKworaWYgc3lz
LnZlcnNpb25faW5mbyA+PSAoMywgOCk6CisgICAgZnJvbSBpbXBvcnRsaWIgaW1wb3J0IG1ldGFk
YXRhIGFzIGltcG9ydGxpYl9tZXRhZGF0YQorZWxzZToKKyAgICBpbXBvcnQgaW1wb3J0bGliX21l
dGFkYXRhCisKKworZGVmIF93YXJuX2Zvcl9mdW5jdGlvbih3YXJuaW5nLCBmdW5jdGlvbik6Cisg
ICAgd2FybmluZ3Mud2Fybl9leHBsaWNpdCgKKyAgICAgICAgd2FybmluZywKKyAgICAgICAgdHlw
ZSh3YXJuaW5nKSwKKyAgICAgICAgbGluZW5vPWZ1bmN0aW9uLl9fY29kZV9fLmNvX2ZpcnN0bGlu
ZW5vLAorICAgICAgICBmaWxlbmFtZT1mdW5jdGlvbi5fX2NvZGVfXy5jb19maWxlbmFtZSwKKyAg
ICApCisKKworY2xhc3MgUGx1Z2luVmFsaWRhdGlvbkVycm9yKEV4Y2VwdGlvbik6CisgICAgIiIi
IHBsdWdpbiBmYWlsZWQgdmFsaWRhdGlvbi4KKworICAgIDpwYXJhbSBvYmplY3QgcGx1Z2luOiB0
aGUgcGx1Z2luIHdoaWNoIGZhaWxlZCB2YWxpZGF0aW9uLAorICAgICAgICBtYXkgYmUgYSBtb2R1
bGUgb3IgYW4gYXJiaXRyYXJ5IG9iamVjdC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwbHVnaW4sIG1lc3NhZ2UpOgorICAgICAgICBzZWxmLnBsdWdpbiA9IHBsdWdpbgorICAg
ICAgICBzdXBlcihFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG1lc3NhZ2UpCisKKworY2xhc3Mg
RGlzdEZhY2FkZShvYmplY3QpOgorICAgICIiIkVtdWxhdGUgYSBwa2dfcmVzb3VyY2VzIERpc3Ry
aWJ1dGlvbiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRpc3QpOgorICAgICAgICBzZWxm
Ll9kaXN0ID0gZGlzdAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHByb2plY3RfbmFtZShzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYubWV0YWRhdGFbIm5hbWUiXQorCisgICAgZGVmIF9fZ2V0
YXR0cl9fKHNlbGYsIGF0dHIsIGRlZmF1bHQ9Tm9uZSk6CisgICAgICAgIHJldHVybiBnZXRhdHRy
KHNlbGYuX2Rpc3QsIGF0dHIsIGRlZmF1bHQpCisKKyAgICBkZWYgX19kaXJfXyhzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNvcnRlZChkaXIoc2VsZi5fZGlzdCkgKyBbIl9kaXN0IiwgInByb2plY3Rf
bmFtZSJdKQorCisKK2NsYXNzIFBsdWdpbk1hbmFnZXIob2JqZWN0KToKKyAgICAiIiIgQ29yZSA6
cHk6Y2xhc3M6YC5QbHVnaW5NYW5hZ2VyYCBjbGFzcyB3aGljaCBtYW5hZ2VzIHJlZ2lzdHJhdGlv
bgorICAgIG9mIHBsdWdpbiBvYmplY3RzIGFuZCAxOk4gaG9vayBjYWxsaW5nLgorCisgICAgWW91
IGNhbiByZWdpc3RlciBuZXcgaG9va3MgYnkgY2FsbGluZyA6cHk6bWV0aDpgYWRkX2hvb2tzcGVj
cyhtb2R1bGVfb3JfY2xhc3MpCisgICAgPC5QbHVnaW5NYW5hZ2VyLmFkZF9ob29rc3BlY3M+YC4K
KyAgICBZb3UgY2FuIHJlZ2lzdGVyIHBsdWdpbiBvYmplY3RzICh3aGljaCBjb250YWluIGhvb2tz
KSBieSBjYWxsaW5nCisgICAgOnB5Om1ldGg6YHJlZ2lzdGVyKHBsdWdpbikgPC5QbHVnaW5NYW5h
Z2VyLnJlZ2lzdGVyPmAuICBUaGUgOnB5OmNsYXNzOmAuUGx1Z2luTWFuYWdlcmAKKyAgICBpcyBp
bml0aWFsaXplZCB3aXRoIGEgcHJlZml4IHRoYXQgaXMgc2VhcmNoZWQgZm9yIGluIHRoZSBuYW1l
cyBvZiB0aGUgZGljdAorICAgIG9mIHJlZ2lzdGVyZWQgcGx1Z2luIG9iamVjdHMuCisKKyAgICBG
b3IgZGVidWdnaW5nIHB1cnBvc2VzIHlvdSBjYW4gY2FsbCA6cHk6bWV0aDpgLlBsdWdpbk1hbmFn
ZXIuZW5hYmxlX3RyYWNpbmdgCisgICAgd2hpY2ggd2lsbCBzdWJzZXF1ZW50bHkgc2VuZCBkZWJ1
ZyBpbmZvcm1hdGlvbiB0byB0aGUgdHJhY2UgaGVscGVyLgorICAgICIiIgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHByb2plY3RfbmFtZSwgaW1wbHByZWZpeD1Ob25lKToKKyAgICAgICAgIiIi
SWYgYGBpbXBscHJlZml4YGAgaXMgZ2l2ZW4gaW1wbGVtZW50YXRpb24gZnVuY3Rpb25zCisgICAg
ICAgIHdpbGwgYmUgcmVjb2duaXplZCBpZiB0aGVpciBuYW1lIG1hdGNoZXMgdGhlIGBgaW1wbHBy
ZWZpeGBgLiAiIiIKKyAgICAgICAgc2VsZi5wcm9qZWN0X25hbWUgPSBwcm9qZWN0X25hbWUKKyAg
ICAgICAgc2VsZi5fbmFtZTJwbHVnaW4gPSB7fQorICAgICAgICBzZWxmLl9wbHVnaW4yaG9va2Nh
bGxlcnMgPSB7fQorICAgICAgICBzZWxmLl9wbHVnaW5fZGlzdGluZm8gPSBbXQorICAgICAgICBz
ZWxmLnRyYWNlID0gX3RyYWNpbmcuVGFnVHJhY2VyKCkuZ2V0KCJwbHVnaW5tYW5hZ2UiKQorICAg
ICAgICBzZWxmLmhvb2sgPSBfSG9va1JlbGF5KCkKKyAgICAgICAgaWYgaW1wbHByZWZpeCBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAgICAgIlN1
cHBvcnQgZm9yIHRoZSBgaW1wbHByZWZpeGAgYXJnIGlzIG5vdyBkZXByZWNhdGVkIGFuZCB3aWxs
ICIKKyAgICAgICAgICAgICAgICAiYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBQ
bGVhc2UgdXNlIEhvb2tpbXBsTWFya2VyLiIsCisgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25X
YXJuaW5nLAorICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9MiwKKyAgICAgICAgICAgICkKKyAg
ICAgICAgc2VsZi5faW1wbHByZWZpeCA9IGltcGxwcmVmaXgKKyAgICAgICAgc2VsZi5faW5uZXJf
aG9va2V4ZWMgPSBsYW1iZGEgaG9vaywgbWV0aG9kcywga3dhcmdzOiBob29rLm11bHRpY2FsbCgK
KyAgICAgICAgICAgIG1ldGhvZHMsCisgICAgICAgICAgICBrd2FyZ3MsCisgICAgICAgICAgICBm
aXJzdHJlc3VsdD1ob29rLnNwZWMub3B0cy5nZXQoImZpcnN0cmVzdWx0IikgaWYgaG9vay5zcGVj
IGVsc2UgRmFsc2UsCisgICAgICAgICkKKworICAgIGRlZiBfaG9va2V4ZWMoc2VsZiwgaG9vaywg
bWV0aG9kcywga3dhcmdzKToKKyAgICAgICAgIyBjYWxsZWQgZnJvbSBhbGwgaG9va2NhbGxlciBp
bnN0YW5jZXMuCisgICAgICAgICMgZW5hYmxlX3RyYWNpbmcgd2lsbCBzZXQgaXRzIG93biB3cmFw
cGluZyBmdW5jdGlvbiBhdCBzZWxmLl9pbm5lcl9ob29rZXhlYworICAgICAgICByZXR1cm4gc2Vs
Zi5faW5uZXJfaG9va2V4ZWMoaG9vaywgbWV0aG9kcywga3dhcmdzKQorCisgICAgZGVmIHJlZ2lz
dGVyKHNlbGYsIHBsdWdpbiwgbmFtZT1Ob25lKToKKyAgICAgICAgIiIiIFJlZ2lzdGVyIGEgcGx1
Z2luIGFuZCByZXR1cm4gaXRzIGNhbm9uaWNhbCBuYW1lIG9yIGBgTm9uZWBgIGlmIHRoZSBuYW1l
CisgICAgICAgIGlzIGJsb2NrZWQgZnJvbSByZWdpc3RlcmluZy4gIFJhaXNlIGEgOnB5OmNsYXNz
OmBWYWx1ZUVycm9yYCBpZiB0aGUgcGx1Z2luCisgICAgICAgIGlzIGFscmVhZHkgcmVnaXN0ZXJl
ZC4gIiIiCisgICAgICAgIHBsdWdpbl9uYW1lID0gbmFtZSBvciBzZWxmLmdldF9jYW5vbmljYWxf
bmFtZShwbHVnaW4pCisKKyAgICAgICAgaWYgcGx1Z2luX25hbWUgaW4gc2VsZi5fbmFtZTJwbHVn
aW4gb3IgcGx1Z2luIGluIHNlbGYuX3BsdWdpbjJob29rY2FsbGVyczoKKyAgICAgICAgICAgIGlm
IHNlbGYuX25hbWUycGx1Z2luLmdldChwbHVnaW5fbmFtZSwgLTEpIGlzIE5vbmU6CisgICAgICAg
ICAgICAgICAgcmV0dXJuICAjIGJsb2NrZWQgcGx1Z2luLCByZXR1cm4gTm9uZSB0byBpbmRpY2F0
ZSBubyByZWdpc3RyYXRpb24KKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAg
ICAgICAgICAgIlBsdWdpbiBhbHJlYWR5IHJlZ2lzdGVyZWQ6ICVzPSVzXG4lcyIKKyAgICAgICAg
ICAgICAgICAlIChwbHVnaW5fbmFtZSwgcGx1Z2luLCBzZWxmLl9uYW1lMnBsdWdpbikKKyAgICAg
ICAgICAgICkKKworICAgICAgICAjIFhYWCBpZiBhbiBlcnJvciBoYXBwZW5zIHdlIHNob3VsZCBt
YWtlIHN1cmUgbm8gc3RhdGUgaGFzIGJlZW4KKyAgICAgICAgIyBjaGFuZ2VkIGF0IHBvaW50IG9m
IHJldHVybgorICAgICAgICBzZWxmLl9uYW1lMnBsdWdpbltwbHVnaW5fbmFtZV0gPSBwbHVnaW4K
KworICAgICAgICAjIHJlZ2lzdGVyIG1hdGNoaW5nIGhvb2sgaW1wbGVtZW50YXRpb25zIG9mIHRo
ZSBwbHVnaW4KKyAgICAgICAgc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzW3BsdWdpbl0gPSBob29r
Y2FsbGVycyA9IFtdCisgICAgICAgIGZvciBuYW1lIGluIGRpcihwbHVnaW4pOgorICAgICAgICAg
ICAgaG9va2ltcGxfb3B0cyA9IHNlbGYucGFyc2VfaG9va2ltcGxfb3B0cyhwbHVnaW4sIG5hbWUp
CisgICAgICAgICAgICBpZiBob29raW1wbF9vcHRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
ICAgIG5vcm1hbGl6ZV9ob29raW1wbF9vcHRzKGhvb2tpbXBsX29wdHMpCisgICAgICAgICAgICAg
ICAgbWV0aG9kID0gZ2V0YXR0cihwbHVnaW4sIG5hbWUpCisgICAgICAgICAgICAgICAgaG9va2lt
cGwgPSBIb29rSW1wbChwbHVnaW4sIHBsdWdpbl9uYW1lLCBtZXRob2QsIGhvb2tpbXBsX29wdHMp
CisgICAgICAgICAgICAgICAgaG9vayA9IGdldGF0dHIoc2VsZi5ob29rLCBuYW1lLCBOb25lKQor
ICAgICAgICAgICAgICAgIGlmIGhvb2sgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgaG9v
ayA9IF9Ib29rQ2FsbGVyKG5hbWUsIHNlbGYuX2hvb2tleGVjKQorICAgICAgICAgICAgICAgICAg
ICBzZXRhdHRyKHNlbGYuaG9vaywgbmFtZSwgaG9vaykKKyAgICAgICAgICAgICAgICBlbGlmIGhv
b2suaGFzX3NwZWMoKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2hvb2soaG9v
aywgaG9va2ltcGwpCisgICAgICAgICAgICAgICAgICAgIGhvb2suX21heWJlX2FwcGx5X2hpc3Rv
cnkoaG9va2ltcGwpCisgICAgICAgICAgICAgICAgaG9vay5fYWRkX2hvb2tpbXBsKGhvb2tpbXBs
KQorICAgICAgICAgICAgICAgIGhvb2tjYWxsZXJzLmFwcGVuZChob29rKQorICAgICAgICByZXR1
cm4gcGx1Z2luX25hbWUKKworICAgIGRlZiBwYXJzZV9ob29raW1wbF9vcHRzKHNlbGYsIHBsdWdp
biwgbmFtZSk6CisgICAgICAgIG1ldGhvZCA9IGdldGF0dHIocGx1Z2luLCBuYW1lKQorICAgICAg
ICBpZiBub3QgaW5zcGVjdC5pc3JvdXRpbmUobWV0aG9kKToKKyAgICAgICAgICAgIHJldHVybgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICByZXMgPSBnZXRhdHRyKG1ldGhvZCwgc2VsZi5wcm9q
ZWN0X25hbWUgKyAiX2ltcGwiLCBOb25lKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAg
ICAgICAgICAgcmVzID0ge30KKyAgICAgICAgaWYgcmVzIGlzIG5vdCBOb25lIGFuZCBub3QgaXNp
bnN0YW5jZShyZXMsIGRpY3QpOgorICAgICAgICAgICAgIyBmYWxzZSBwb3NpdGl2ZQorICAgICAg
ICAgICAgcmVzID0gTm9uZQorICAgICAgICAjIFRPRE86IHJlbW92ZSB3aGVuIHdlIGRyb3AgaW1w
bHByZWZpeCBpbiAxLjAKKyAgICAgICAgZWxpZiByZXMgaXMgTm9uZSBhbmQgc2VsZi5faW1wbHBy
ZWZpeCBhbmQgbmFtZS5zdGFydHN3aXRoKHNlbGYuX2ltcGxwcmVmaXgpOgorICAgICAgICAgICAg
X3dhcm5fZm9yX2Z1bmN0aW9uKAorICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZygK
KyAgICAgICAgICAgICAgICAgICAgIlRoZSBgaW1wbHByZWZpeGAgc3lzdGVtIGlzIGRlcHJlY2F0
ZWQgcGxlYXNlIGRlY29yYXRlICIKKyAgICAgICAgICAgICAgICAgICAgInRoaXMgZnVuY3Rpb24g
dXNpbmcgYW4gaW5zdGFuY2Ugb2YgSG9va2ltcGxNYXJrZXIuIgorICAgICAgICAgICAgICAgICks
CisgICAgICAgICAgICAgICAgbWV0aG9kLAorICAgICAgICAgICAgKQorICAgICAgICAgICAgcmVz
ID0ge30KKyAgICAgICAgcmV0dXJuIHJlcworCisgICAgZGVmIHVucmVnaXN0ZXIoc2VsZiwgcGx1
Z2luPU5vbmUsIG5hbWU9Tm9uZSk6CisgICAgICAgICIiIiB1bnJlZ2lzdGVyIGEgcGx1Z2luIG9i
amVjdCBhbmQgYWxsIGl0cyBjb250YWluZWQgaG9vayBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAg
ZnJvbSBpbnRlcm5hbCBkYXRhIHN0cnVjdHVyZXMuICIiIgorICAgICAgICBpZiBuYW1lIGlzIE5v
bmU6CisgICAgICAgICAgICBhc3NlcnQgcGx1Z2luIGlzIG5vdCBOb25lLCAib25lIG9mIG5hbWUg
b3IgcGx1Z2luIG5lZWRzIHRvIGJlIHNwZWNpZmllZCIKKyAgICAgICAgICAgIG5hbWUgPSBzZWxm
LmdldF9uYW1lKHBsdWdpbikKKworICAgICAgICBpZiBwbHVnaW4gaXMgTm9uZToKKyAgICAgICAg
ICAgIHBsdWdpbiA9IHNlbGYuZ2V0X3BsdWdpbihuYW1lKQorCisgICAgICAgICMgaWYgc2VsZi5f
bmFtZTJwbHVnaW5bbmFtZV0gPT0gTm9uZSByZWdpc3RyYXRpb24gd2FzIGJsb2NrZWQ6IGlnbm9y
ZQorICAgICAgICBpZiBzZWxmLl9uYW1lMnBsdWdpbi5nZXQobmFtZSk6CisgICAgICAgICAgICBk
ZWwgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0KKworICAgICAgICBmb3IgaG9va2NhbGxlciBpbiBz
ZWxmLl9wbHVnaW4yaG9va2NhbGxlcnMucG9wKHBsdWdpbiwgW10pOgorICAgICAgICAgICAgaG9v
a2NhbGxlci5fcmVtb3ZlX3BsdWdpbihwbHVnaW4pCisKKyAgICAgICAgcmV0dXJuIHBsdWdpbgor
CisgICAgZGVmIHNldF9ibG9ja2VkKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiIgYmxvY2sgcmVn
aXN0cmF0aW9ucyBvZiB0aGUgZ2l2ZW4gbmFtZSwgdW5yZWdpc3RlciBpZiBhbHJlYWR5IHJlZ2lz
dGVyZWQuICIiIgorICAgICAgICBzZWxmLnVucmVnaXN0ZXIobmFtZT1uYW1lKQorICAgICAgICBz
ZWxmLl9uYW1lMnBsdWdpbltuYW1lXSA9IE5vbmUKKworICAgIGRlZiBpc19ibG9ja2VkKHNlbGYs
IG5hbWUpOgorICAgICAgICAiIiIgcmV0dXJuIGBgVHJ1ZWBgIGlmIHRoZSBnaXZlbiBwbHVnaW4g
bmFtZSBpcyBibG9ja2VkLiAiIiIKKyAgICAgICAgcmV0dXJuIG5hbWUgaW4gc2VsZi5fbmFtZTJw
bHVnaW4gYW5kIHNlbGYuX25hbWUycGx1Z2luW25hbWVdIGlzIE5vbmUKKworICAgIGRlZiBhZGRf
aG9va3NwZWNzKHNlbGYsIG1vZHVsZV9vcl9jbGFzcyk6CisgICAgICAgICIiIiBhZGQgbmV3IGhv
b2sgc3BlY2lmaWNhdGlvbnMgZGVmaW5lZCBpbiB0aGUgZ2l2ZW4gYGBtb2R1bGVfb3JfY2xhc3Ng
YC4KKyAgICAgICAgRnVuY3Rpb25zIGFyZSByZWNvZ25pemVkIGlmIHRoZXkgaGF2ZSBiZWVuIGRl
Y29yYXRlZCBhY2NvcmRpbmdseS4gIiIiCisgICAgICAgIG5hbWVzID0gW10KKyAgICAgICAgZm9y
IG5hbWUgaW4gZGlyKG1vZHVsZV9vcl9jbGFzcyk6CisgICAgICAgICAgICBzcGVjX29wdHMgPSBz
ZWxmLnBhcnNlX2hvb2tzcGVjX29wdHMobW9kdWxlX29yX2NsYXNzLCBuYW1lKQorICAgICAgICAg
ICAgaWYgc3BlY19vcHRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGhjID0gZ2V0YXR0
cihzZWxmLmhvb2ssIG5hbWUsIE5vbmUpCisgICAgICAgICAgICAgICAgaWYgaGMgaXMgTm9uZToK
KyAgICAgICAgICAgICAgICAgICAgaGMgPSBfSG9va0NhbGxlcihuYW1lLCBzZWxmLl9ob29rZXhl
YywgbW9kdWxlX29yX2NsYXNzLCBzcGVjX29wdHMpCisgICAgICAgICAgICAgICAgICAgIHNldGF0
dHIoc2VsZi5ob29rLCBuYW1lLCBoYykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgICAgICAjIHBsdWdpbnMgcmVnaXN0ZXJlZCB0aGlzIGhvb2sgd2l0aG91dCBrbm93aW5n
IHRoZSBzcGVjCisgICAgICAgICAgICAgICAgICAgIGhjLnNldF9zcGVjaWZpY2F0aW9uKG1vZHVs
ZV9vcl9jbGFzcywgc3BlY19vcHRzKQorICAgICAgICAgICAgICAgICAgICBmb3IgaG9va2Z1bmN0
aW9uIGluIGhjLmdldF9ob29raW1wbHMoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
X3ZlcmlmeV9ob29rKGhjLCBob29rZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgbmFtZXMuYXBw
ZW5kKG5hbWUpCisKKyAgICAgICAgaWYgbm90IG5hbWVzOgorICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigKKyAgICAgICAgICAgICAgICAiZGlkIG5vdCBmaW5kIGFueSAlciBob29rcyBpbiAl
ciIgJSAoc2VsZi5wcm9qZWN0X25hbWUsIG1vZHVsZV9vcl9jbGFzcykKKyAgICAgICAgICAgICkK
KworICAgIGRlZiBwYXJzZV9ob29rc3BlY19vcHRzKHNlbGYsIG1vZHVsZV9vcl9jbGFzcywgbmFt
ZSk6CisgICAgICAgIG1ldGhvZCA9IGdldGF0dHIobW9kdWxlX29yX2NsYXNzLCBuYW1lKQorICAg
ICAgICByZXR1cm4gZ2V0YXR0cihtZXRob2QsIHNlbGYucHJvamVjdF9uYW1lICsgIl9zcGVjIiwg
Tm9uZSkKKworICAgIGRlZiBnZXRfcGx1Z2lucyhzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiB0
aGUgc2V0IG9mIHJlZ2lzdGVyZWQgcGx1Z2lucy4gIiIiCisgICAgICAgIHJldHVybiBzZXQoc2Vs
Zi5fcGx1Z2luMmhvb2tjYWxsZXJzKQorCisgICAgZGVmIGlzX3JlZ2lzdGVyZWQoc2VsZiwgcGx1
Z2luKToKKyAgICAgICAgIiIiIFJldHVybiBgYFRydWVgYCBpZiB0aGUgcGx1Z2luIGlzIGFscmVh
ZHkgcmVnaXN0ZXJlZC4gIiIiCisgICAgICAgIHJldHVybiBwbHVnaW4gaW4gc2VsZi5fcGx1Z2lu
Mmhvb2tjYWxsZXJzCisKKyAgICBkZWYgZ2V0X2Nhbm9uaWNhbF9uYW1lKHNlbGYsIHBsdWdpbik6
CisgICAgICAgICIiIiBSZXR1cm4gY2Fub25pY2FsIG5hbWUgZm9yIGEgcGx1Z2luIG9iamVjdC4g
Tm90ZSB0aGF0IGEgcGx1Z2luCisgICAgICAgIG1heSBiZSByZWdpc3RlcmVkIHVuZGVyIGEgZGlm
ZmVyZW50IG5hbWUgd2hpY2ggd2FzIHNwZWNpZmllZAorICAgICAgICBieSB0aGUgY2FsbGVyIG9m
IDpweTptZXRoOmByZWdpc3RlcihwbHVnaW4sIG5hbWUpIDwuUGx1Z2luTWFuYWdlci5yZWdpc3Rl
cj5gLgorICAgICAgICBUbyBvYnRhaW4gdGhlIG5hbWUgb2YgYW4gcmVnaXN0ZXJlZCBwbHVnaW4g
dXNlIDpweTptZXRoOmBnZXRfbmFtZShwbHVnaW4pCisgICAgICAgIDwuUGx1Z2luTWFuYWdlci5n
ZXRfbmFtZT5gIGluc3RlYWQuIiIiCisgICAgICAgIHJldHVybiBnZXRhdHRyKHBsdWdpbiwgIl9f
bmFtZV9fIiwgTm9uZSkgb3Igc3RyKGlkKHBsdWdpbikpCisKKyAgICBkZWYgZ2V0X3BsdWdpbihz
ZWxmLCBuYW1lKToKKyAgICAgICAgIiIiIFJldHVybiBhIHBsdWdpbiBvciBgYE5vbmVgYCBmb3Ig
dGhlIGdpdmVuIG5hbWUuICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fbmFtZTJwbHVnaW4uZ2V0
KG5hbWUpCisKKyAgICBkZWYgaGFzX3BsdWdpbihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiIFJl
dHVybiBgYFRydWVgYCBpZiBhIHBsdWdpbiB3aXRoIHRoZSBnaXZlbiBuYW1lIGlzIHJlZ2lzdGVy
ZWQuICIiIgorICAgICAgICByZXR1cm4gc2VsZi5nZXRfcGx1Z2luKG5hbWUpIGlzIG5vdCBOb25l
CisKKyAgICBkZWYgZ2V0X25hbWUoc2VsZiwgcGx1Z2luKToKKyAgICAgICAgIiIiIFJldHVybiBu
YW1lIGZvciByZWdpc3RlcmVkIHBsdWdpbiBvciBgYE5vbmVgYCBpZiBub3QgcmVnaXN0ZXJlZC4g
IiIiCisgICAgICAgIGZvciBuYW1lLCB2YWwgaW4gc2VsZi5fbmFtZTJwbHVnaW4uaXRlbXMoKToK
KyAgICAgICAgICAgIGlmIHBsdWdpbiA9PSB2YWw6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5h
bWUKKworICAgIGRlZiBfdmVyaWZ5X2hvb2soc2VsZiwgaG9vaywgaG9va2ltcGwpOgorICAgICAg
ICBpZiBob29rLmlzX2hpc3RvcmljKCkgYW5kIGhvb2tpbXBsLmhvb2t3cmFwcGVyOgorICAgICAg
ICAgICAgcmFpc2UgUGx1Z2luVmFsaWRhdGlvbkVycm9yKAorICAgICAgICAgICAgICAgIGhvb2tp
bXBsLnBsdWdpbiwKKyAgICAgICAgICAgICAgICAiUGx1Z2luICVyXG5ob29rICVyXG5oaXN0b3Jp
YyBpbmNvbXBhdGlibGUgdG8gaG9va3dyYXBwZXIiCisgICAgICAgICAgICAgICAgJSAoaG9va2lt
cGwucGx1Z2luX25hbWUsIGhvb2submFtZSksCisgICAgICAgICAgICApCisgICAgICAgIGlmIGhv
b2suc3BlYy53YXJuX29uX2ltcGw6CisgICAgICAgICAgICBfd2Fybl9mb3JfZnVuY3Rpb24oaG9v
ay5zcGVjLndhcm5fb25faW1wbCwgaG9va2ltcGwuZnVuY3Rpb24pCisgICAgICAgICMgcG9zaXRp
b25hbCBhcmcgY2hlY2tpbmcKKyAgICAgICAgbm90aW5zcGVjID0gc2V0KGhvb2tpbXBsLmFyZ25h
bWVzKSAtIHNldChob29rLnNwZWMuYXJnbmFtZXMpCisgICAgICAgIGlmIG5vdGluc3BlYzoKKyAg
ICAgICAgICAgIHJhaXNlIFBsdWdpblZhbGlkYXRpb25FcnJvcigKKyAgICAgICAgICAgICAgICBo
b29raW1wbC5wbHVnaW4sCisgICAgICAgICAgICAgICAgIlBsdWdpbiAlciBmb3IgaG9vayAlclxu
aG9va2ltcGwgZGVmaW5pdGlvbjogJXNcbiIKKyAgICAgICAgICAgICAgICAiQXJndW1lbnQocykg
JXMgYXJlIGRlY2xhcmVkIGluIHRoZSBob29raW1wbCBidXQgIgorICAgICAgICAgICAgICAgICJj
YW4gbm90IGJlIGZvdW5kIGluIHRoZSBob29rc3BlYyIKKyAgICAgICAgICAgICAgICAlICgKKyAg
ICAgICAgICAgICAgICAgICAgaG9va2ltcGwucGx1Z2luX25hbWUsCisgICAgICAgICAgICAgICAg
ICAgIGhvb2submFtZSwKKyAgICAgICAgICAgICAgICAgICAgX2Zvcm1hdGRlZihob29raW1wbC5m
dW5jdGlvbiksCisgICAgICAgICAgICAgICAgICAgIG5vdGluc3BlYywKKyAgICAgICAgICAgICAg
ICApLAorICAgICAgICAgICAgKQorCisgICAgZGVmIGNoZWNrX3BlbmRpbmcoc2VsZik6CisgICAg
ICAgICIiIiBWZXJpZnkgdGhhdCBhbGwgaG9va3Mgd2hpY2ggaGF2ZSBub3QgYmVlbiB2ZXJpZmll
ZCBhZ2FpbnN0CisgICAgICAgIGEgaG9vayBzcGVjaWZpY2F0aW9uIGFyZSBvcHRpb25hbCwgb3Ro
ZXJ3aXNlIHJhaXNlIDpweTpjbGFzczpgLlBsdWdpblZhbGlkYXRpb25FcnJvcmAuIiIiCisgICAg
ICAgIGZvciBuYW1lIGluIHNlbGYuaG9vay5fX2RpY3RfXzoKKyAgICAgICAgICAgIGlmIG5hbWVb
MF0gIT0gIl8iOgorICAgICAgICAgICAgICAgIGhvb2sgPSBnZXRhdHRyKHNlbGYuaG9vaywgbmFt
ZSkKKyAgICAgICAgICAgICAgICBpZiBub3QgaG9vay5oYXNfc3BlYygpOgorICAgICAgICAgICAg
ICAgICAgICBmb3IgaG9va2ltcGwgaW4gaG9vay5nZXRfaG9va2ltcGxzKCk6CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiBub3QgaG9va2ltcGwub3B0aW9uYWxob29rOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJhaXNlIFBsdWdpblZhbGlkYXRpb25FcnJvcigKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaG9va2ltcGwucGx1Z2luLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAidW5rbm93biBob29rICVyIGluIHBsdWdpbiAlciIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJSAobmFtZSwgaG9va2ltcGwucGx1Z2luKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICApCisKKyAgICBkZWYgbG9hZF9zZXR1cHRvb2xzX2VudHJ5cG9p
bnRzKHNlbGYsIGdyb3VwLCBuYW1lPU5vbmUpOgorICAgICAgICAiIiIgTG9hZCBtb2R1bGVzIGZy
b20gcXVlcnlpbmcgdGhlIHNwZWNpZmllZCBzZXR1cHRvb2xzIGBgZ3JvdXBgYC4KKworICAgICAg
ICA6cGFyYW0gc3RyIGdyb3VwOiBlbnRyeSBwb2ludCBncm91cCB0byBsb2FkIHBsdWdpbnMKKyAg
ICAgICAgOnBhcmFtIHN0ciBuYW1lOiBpZiBnaXZlbiwgbG9hZHMgb25seSBwbHVnaW5zIHdpdGgg
dGhlIGdpdmVuIGBgbmFtZWBgLgorICAgICAgICA6cnR5cGU6IGludAorICAgICAgICA6cmV0dXJu
OiByZXR1cm4gdGhlIG51bWJlciBvZiBsb2FkZWQgcGx1Z2lucyBieSB0aGlzIGNhbGwuCisgICAg
ICAgICIiIgorICAgICAgICBjb3VudCA9IDAKKyAgICAgICAgZm9yIGRpc3QgaW4gaW1wb3J0bGli
X21ldGFkYXRhLmRpc3RyaWJ1dGlvbnMoKToKKyAgICAgICAgICAgIGZvciBlcCBpbiBkaXN0LmVu
dHJ5X3BvaW50czoKKyAgICAgICAgICAgICAgICBpZiAoCisgICAgICAgICAgICAgICAgICAgIGVw
Lmdyb3VwICE9IGdyb3VwCisgICAgICAgICAgICAgICAgICAgIG9yIChuYW1lIGlzIG5vdCBOb25l
IGFuZCBlcC5uYW1lICE9IG5hbWUpCisgICAgICAgICAgICAgICAgICAgICMgYWxyZWFkeSByZWdp
c3RlcmVkCisgICAgICAgICAgICAgICAgICAgIG9yIHNlbGYuZ2V0X3BsdWdpbihlcC5uYW1lKQor
ICAgICAgICAgICAgICAgICAgICBvciBzZWxmLmlzX2Jsb2NrZWQoZXAubmFtZSkKKyAgICAgICAg
ICAgICAgICApOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAg
IHBsdWdpbiA9IGVwLmxvYWQoKQorICAgICAgICAgICAgICAgIHNlbGYucmVnaXN0ZXIocGx1Z2lu
LCBuYW1lPWVwLm5hbWUpCisgICAgICAgICAgICAgICAgc2VsZi5fcGx1Z2luX2Rpc3RpbmZvLmFw
cGVuZCgocGx1Z2luLCBEaXN0RmFjYWRlKGRpc3QpKSkKKyAgICAgICAgICAgICAgICBjb3VudCAr
PSAxCisgICAgICAgIHJldHVybiBjb3VudAorCisgICAgZGVmIGxpc3RfcGx1Z2luX2Rpc3RpbmZv
KHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIGxpc3Qgb2YgZGlzdGluZm8vcGx1Z2luIHR1cGxl
cyBmb3IgYWxsIHNldHVwdG9vbHMgcmVnaXN0ZXJlZAorICAgICAgICBwbHVnaW5zLiAiIiIKKyAg
ICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5fcGx1Z2luX2Rpc3RpbmZvKQorCisgICAgZGVmIGxpc3Rf
bmFtZV9wbHVnaW4oc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gbGlzdCBvZiBuYW1lL3BsdWdp
biBwYWlycy4gIiIiCisgICAgICAgIHJldHVybiBsaXN0KHNlbGYuX25hbWUycGx1Z2luLml0ZW1z
KCkpCisKKyAgICBkZWYgZ2V0X2hvb2tjYWxsZXJzKHNlbGYsIHBsdWdpbik6CisgICAgICAgICIi
IiBnZXQgYWxsIGhvb2sgY2FsbGVycyBmb3IgdGhlIHNwZWNpZmllZCBwbHVnaW4uICIiIgorICAg
ICAgICByZXR1cm4gc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzLmdldChwbHVnaW4pCisKKyAgICBk
ZWYgYWRkX2hvb2tjYWxsX21vbml0b3Jpbmcoc2VsZiwgYmVmb3JlLCBhZnRlcik6CisgICAgICAg
ICIiIiBhZGQgYmVmb3JlL2FmdGVyIHRyYWNpbmcgZnVuY3Rpb25zIGZvciBhbGwgaG9va3MKKyAg
ICAgICAgYW5kIHJldHVybiBhbiB1bmRvIGZ1bmN0aW9uIHdoaWNoLCB3aGVuIGNhbGxlZCwKKyAg
ICAgICAgd2lsbCByZW1vdmUgdGhlIGFkZGVkIHRyYWNlcnMuCisKKyAgICAgICAgYGBiZWZvcmUo
aG9va19uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpYGAgd2lsbCBiZSBjYWxsZWQgYWhlYWQKKyAg
ICAgICAgb2YgYWxsIGhvb2sgY2FsbHMgYW5kIHJlY2VpdmUgYSBob29rY2FsbGVyIGluc3RhbmNl
LCBhIGxpc3QKKyAgICAgICAgb2YgSG9va0ltcGwgaW5zdGFuY2VzIGFuZCB0aGUga2V5d29yZCBh
cmd1bWVudHMgZm9yIHRoZSBob29rIGNhbGwuCisKKyAgICAgICAgYGBhZnRlcihvdXRjb21lLCBo
b29rX25hbWUsIGhvb2tfaW1wbHMsIGt3YXJncylgYCByZWNlaXZlcyB0aGUKKyAgICAgICAgc2Ft
ZSBhcmd1bWVudHMgYXMgYGBiZWZvcmVgYCBidXQgYWxzbyBhIDpweTpjbGFzczpgcGx1Z2d5LmNh
bGxlcnMuX1Jlc3VsdGAgb2JqZWN0CisgICAgICAgIHdoaWNoIHJlcHJlc2VudHMgdGhlIHJlc3Vs
dCBvZiB0aGUgb3ZlcmFsbCBob29rIGNhbGwuCisgICAgICAgICIiIgorICAgICAgICBvbGRjYWxs
ID0gc2VsZi5faW5uZXJfaG9va2V4ZWMKKworICAgICAgICBkZWYgdHJhY2VkX2hvb2tleGVjKGhv
b2ssIGhvb2tfaW1wbHMsIGt3YXJncyk6CisgICAgICAgICAgICBiZWZvcmUoaG9vay5uYW1lLCBo
b29rX2ltcGxzLCBrd2FyZ3MpCisgICAgICAgICAgICBvdXRjb21lID0gX1Jlc3VsdC5mcm9tX2Nh
bGwobGFtYmRhOiBvbGRjYWxsKGhvb2ssIGhvb2tfaW1wbHMsIGt3YXJncykpCisgICAgICAgICAg
ICBhZnRlcihvdXRjb21lLCBob29rLm5hbWUsIGhvb2tfaW1wbHMsIGt3YXJncykKKyAgICAgICAg
ICAgIHJldHVybiBvdXRjb21lLmdldF9yZXN1bHQoKQorCisgICAgICAgIHNlbGYuX2lubmVyX2hv
b2tleGVjID0gdHJhY2VkX2hvb2tleGVjCisKKyAgICAgICAgZGVmIHVuZG8oKToKKyAgICAgICAg
ICAgIHNlbGYuX2lubmVyX2hvb2tleGVjID0gb2xkY2FsbAorCisgICAgICAgIHJldHVybiB1bmRv
CisKKyAgICBkZWYgZW5hYmxlX3RyYWNpbmcoc2VsZik6CisgICAgICAgICIiIiBlbmFibGUgdHJh
Y2luZyBvZiBob29rIGNhbGxzIGFuZCByZXR1cm4gYW4gdW5kbyBmdW5jdGlvbi4gIiIiCisgICAg
ICAgIGhvb2t0cmFjZSA9IHNlbGYudHJhY2Uucm9vdC5nZXQoImhvb2siKQorCisgICAgICAgIGRl
ZiBiZWZvcmUoaG9va19uYW1lLCBtZXRob2RzLCBrd2FyZ3MpOgorICAgICAgICAgICAgaG9va3Ry
YWNlLnJvb3QuaW5kZW50ICs9IDEKKyAgICAgICAgICAgIGhvb2t0cmFjZShob29rX25hbWUsIGt3
YXJncykKKworICAgICAgICBkZWYgYWZ0ZXIob3V0Y29tZSwgaG9va19uYW1lLCBtZXRob2RzLCBr
d2FyZ3MpOgorICAgICAgICAgICAgaWYgb3V0Y29tZS5leGNpbmZvIGlzIE5vbmU6CisgICAgICAg
ICAgICAgICAgaG9va3RyYWNlKCJmaW5pc2giLCBob29rX25hbWUsICItLT4iLCBvdXRjb21lLmdl
dF9yZXN1bHQoKSkKKyAgICAgICAgICAgIGhvb2t0cmFjZS5yb290LmluZGVudCAtPSAxCisKKyAg
ICAgICAgcmV0dXJuIHNlbGYuYWRkX2hvb2tjYWxsX21vbml0b3JpbmcoYmVmb3JlLCBhZnRlcikK
KworICAgIGRlZiBzdWJzZXRfaG9va19jYWxsZXIoc2VsZiwgbmFtZSwgcmVtb3ZlX3BsdWdpbnMp
OgorICAgICAgICAiIiIgUmV0dXJuIGEgbmV3IDpweTpjbGFzczpgLmhvb2tzLl9Ib29rQ2FsbGVy
YCBpbnN0YW5jZSBmb3IgdGhlIG5hbWVkIG1ldGhvZAorICAgICAgICB3aGljaCBtYW5hZ2VzIGNh
bGxzIHRvIGFsbCByZWdpc3RlcmVkIHBsdWdpbnMgZXhjZXB0IHRoZQorICAgICAgICBvbmVzIGZy
b20gcmVtb3ZlX3BsdWdpbnMuICIiIgorICAgICAgICBvcmlnID0gZ2V0YXR0cihzZWxmLmhvb2ss
IG5hbWUpCisgICAgICAgIHBsdWdpbnNfdG9fcmVtb3ZlID0gW3BsdWcgZm9yIHBsdWcgaW4gcmVt
b3ZlX3BsdWdpbnMgaWYgaGFzYXR0cihwbHVnLCBuYW1lKV0KKyAgICAgICAgaWYgcGx1Z2luc190
b19yZW1vdmU6CisgICAgICAgICAgICBoYyA9IF9Ib29rQ2FsbGVyKAorICAgICAgICAgICAgICAg
IG9yaWcubmFtZSwgb3JpZy5faG9va2V4ZWMsIG9yaWcuc3BlYy5uYW1lc3BhY2UsIG9yaWcuc3Bl
Yy5vcHRzCisgICAgICAgICAgICApCisgICAgICAgICAgICBmb3IgaG9va2ltcGwgaW4gb3JpZy5n
ZXRfaG9va2ltcGxzKCk6CisgICAgICAgICAgICAgICAgcGx1Z2luID0gaG9va2ltcGwucGx1Z2lu
CisgICAgICAgICAgICAgICAgaWYgcGx1Z2luIG5vdCBpbiBwbHVnaW5zX3RvX3JlbW92ZToKKyAg
ICAgICAgICAgICAgICAgICAgaGMuX2FkZF9ob29raW1wbChob29raW1wbCkKKyAgICAgICAgICAg
ICAgICAgICAgIyB3ZSBhbHNvIGtlZXAgdHJhY2sgb2YgdGhpcyBob29rIGNhbGxlciBzbyBpdAor
ICAgICAgICAgICAgICAgICAgICAjIGdldHMgcHJvcGVybHkgcmVtb3ZlZCBvbiBwbHVnaW4gdW5y
ZWdpc3RyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJz
LnNldGRlZmF1bHQocGx1Z2luLCBbXSkuYXBwZW5kKGhjKQorICAgICAgICAgICAgcmV0dXJuIGhj
CisgICAgICAgIHJldHVybiBvcmlnCisKKworaWYgaGFzYXR0cihpbnNwZWN0LCAic2lnbmF0dXJl
Iik6CisKKyAgICBkZWYgX2Zvcm1hdGRlZihmdW5jKToKKyAgICAgICAgcmV0dXJuICIlcyVzIiAl
IChmdW5jLl9fbmFtZV9fLCBzdHIoaW5zcGVjdC5zaWduYXR1cmUoZnVuYykpKQorCisKK2Vsc2U6
CisKKyAgICBkZWYgX2Zvcm1hdGRlZihmdW5jKToKKyAgICAgICAgcmV0dXJuICIlcyVzIiAlICgK
KyAgICAgICAgICAgIGZ1bmMuX19uYW1lX18sCisgICAgICAgICAgICBpbnNwZWN0LmZvcm1hdGFy
Z3NwZWMoKmluc3BlY3QuZ2V0YXJnc3BlYyhmdW5jKSksCisgICAgICAgICkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMv
cGx1Z2d5L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMzU1OTBlYTljYmM3YjkwYWM2YWZh
ZWZjNWI2MGMzODcyOGFlOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1
Z2d5L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjEgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L3NyYy9wbHVnZ3kvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L190cmFjaW5n
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvc3JjL3BsdWdneS9jYWxsZXJzLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc3Jj
L3BsdWdneS9ob29rcy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvbWFuYWdlci5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy9iZW5jaG1hcmsucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90
ZXN0aW5nL2JlbmNobWFyay5weQppbmRleCA1YTkxM2U5ZDQxOGRmYTM5ZGRkOWE3MjZkNDdhMTc1
NWZlYWI5YjhkLi5hYThkZTkyOTExYmJlZWQ0NTQ5Nzc4MjA4MzUxMTc4NjBlMGFkMDZhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2JlbmNobWFyay5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS90ZXN0aW5nL2JlbmNobWFyay5weQpAQCAtMiw4ICsyLDkgQEAKIEJlbmNobWFya2luZyBhbmQg
cGVyZm9ybWFuY2UgdGVzdHMuCiAiIiIKIGltcG9ydCBweXRlc3QKLWZyb20gcGx1Z2d5IGltcG9y
dCAoX211bHRpY2FsbCwgX2xlZ2FjeW11bHRpY2FsbCwgSG9va0ltcGwsIEhvb2tzcGVjTWFya2Vy
LAotICAgICAgICAgICAgICAgICAgICBIb29raW1wbE1hcmtlcikKK2Zyb20gcGx1Z2d5IGltcG9y
dCBIb29rc3BlY01hcmtlciwgSG9va2ltcGxNYXJrZXIKK2Zyb20gcGx1Z2d5Lmhvb2tzIGltcG9y
dCBIb29rSW1wbAorZnJvbSBwbHVnZ3kuY2FsbGVycyBpbXBvcnQgX211bHRpY2FsbCwgX2xlZ2Fj
eW11bHRpY2FsbAogCiBob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJleGFtcGxlIikKIGhvb2tp
bXBsID0gSG9va2ltcGxNYXJrZXIoImV4YW1wbGUiKQpAQCAtMTQsNyArMTUsNyBAQCBkZWYgTUMo
bWV0aG9kcywga3dhcmdzLCBjYWxsZXJ0eXBlLCBmaXJzdHJlc3VsdD1GYWxzZSk6CiAgICAgZm9y
IG1ldGhvZCBpbiBtZXRob2RzOgogICAgICAgICBmID0gSG9va0ltcGwoTm9uZSwgIjx0ZW1wPiIs
IG1ldGhvZCwgbWV0aG9kLmV4YW1wbGVfaW1wbCkKICAgICAgICAgaG9va2Z1bmNzLmFwcGVuZChm
KQotICAgIHJldHVybiBjYWxsZXJ0eXBlKGhvb2tmdW5jcywga3dhcmdzLCB7ImZpcnN0cmVzdWx0
IjogZmlyc3RyZXN1bHR9KQorICAgIHJldHVybiBjYWxsZXJ0eXBlKGhvb2tmdW5jcywga3dhcmdz
LCBmaXJzdHJlc3VsdD1maXJzdHJlc3VsdCkKIAogCiBAaG9va2ltcGwKQEAgLTI3LDMyICsyOCwy
MyBAQCBkZWYgd3JhcHBlcihhcmcxLCBhcmcyLCBhcmczKToKICAgICB5aWVsZAogCiAKLUBweXRl
c3QuZml4dHVyZSgKLSAgICBwYXJhbXM9WzEwLCAxMDBdLAotICAgIGlkcz0iaG9va3M9e30iLmZv
cm1hdCwKLSkKK0BweXRlc3QuZml4dHVyZShwYXJhbXM9WzEwLCAxMDBdLCBpZHM9Imhvb2tzPXt9
Ii5mb3JtYXQpCiBkZWYgaG9va3MocmVxdWVzdCk6CiAgICAgcmV0dXJuIFtob29rIGZvciBpIGlu
IHJhbmdlKHJlcXVlc3QucGFyYW0pXQogCiAKLUBweXRlc3QuZml4dHVyZSgKLSAgICBwYXJhbXM9
WzEwLCAxMDBdLAotICAgIGlkcz0id3JhcHBlcnM9e30iLmZvcm1hdCwKLSkKK0BweXRlc3QuZml4
dHVyZShwYXJhbXM9WzEwLCAxMDBdLCBpZHM9IndyYXBwZXJzPXt9Ii5mb3JtYXQpCiBkZWYgd3Jh
cHBlcnMocmVxdWVzdCk6CiAgICAgcmV0dXJuIFt3cmFwcGVyIGZvciBpIGluIHJhbmdlKHJlcXVl
c3QucGFyYW0pXQogCiAKLUBweXRlc3QuZml4dHVyZSgKLSAgICBwYXJhbXM9W19tdWx0aWNhbGws
IF9sZWdhY3ltdWx0aWNhbGxdLAotICAgIGlkcz1sYW1iZGEgaXRlbTogaXRlbS5fX25hbWVfXwot
KQorQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bX211bHRpY2FsbCwgX2xlZ2FjeW11bHRpY2FsbF0s
IGlkcz1sYW1iZGEgaXRlbTogaXRlbS5fX25hbWVfXykKIGRlZiBjYWxsZXJ0eXBlKHJlcXVlc3Qp
OgogICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCiAKIAogZGVmIGlubmVyX2V4ZWMobWV0aG9kcywg
Y2FsbGVydHlwZSk6Ci0gICAgcmV0dXJuIE1DKG1ldGhvZHMsIHsnYXJnMSc6IDEsICdhcmcyJzog
MiwgJ2FyZzMnOiAzfSwgY2FsbGVydHlwZSkKKyAgICByZXR1cm4gTUMobWV0aG9kcywgeyJhcmcx
IjogMSwgImFyZzIiOiAyLCAiYXJnMyI6IDN9LCBjYWxsZXJ0eXBlKQogCiAKIGRlZiB0ZXN0X2hv
b2tfYW5kX3dyYXBwZXJzX3NwZWVkKGJlbmNobWFyaywgaG9va3MsIHdyYXBwZXJzLCBjYWxsZXJ0
eXBlKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvY29uZnRlc3QucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS90ZXN0aW5nL2NvbmZ0ZXN0LnB5CmluZGV4IDNkNjFhMzQ5Yzg4YzY4N2YzMTFiMTAw
NWNhZDVjY2IwNGIxYjg5ODYuLmU0NDY2N2VmNWYxYzQxODgyOTM0YjY2MjMwZTU3N2NhMTU0NTQz
MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvY29uZnRlc3QucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvdGVzdGluZy9jb25mdGVzdC5weQpAQCAtMiwxNyArMiwxMiBAQCBpbXBvcnQgcHl0
ZXN0CiAKIAogQHB5dGVzdC5maXh0dXJlKAotICAgIHBhcmFtcz1bCi0gICAgICAgIGxhbWJkYSBz
cGVjOiBzcGVjLAotICAgICAgICBsYW1iZGEgc3BlYzogc3BlYygpCi0gICAgXSwKLSAgICBpZHM9
WwotICAgICAgICAic3BlYy1pcy1jbGFzcyIsCi0gICAgICAgICJzcGVjLWlzLWluc3RhbmNlIgot
ICAgIF0sCisgICAgcGFyYW1zPVtsYW1iZGEgc3BlYzogc3BlYywgbGFtYmRhIHNwZWM6IHNwZWMo
KV0sCisgICAgaWRzPVsic3BlYy1pcy1jbGFzcyIsICJzcGVjLWlzLWluc3RhbmNlIl0sCiApCiBk
ZWYgaGVfcG0ocmVxdWVzdCwgcG0pOgogICAgIGZyb20gcGx1Z2d5IGltcG9ydCBIb29rc3BlY01h
cmtlcgorCiAgICAgaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigiZXhhbXBsZSIpCiAKICAgICBj
bGFzcyBIb29rcyhvYmplY3QpOgpAQCAtMjcsNCArMjIsNSBAQCBkZWYgaGVfcG0ocmVxdWVzdCwg
cG0pOgogQHB5dGVzdC5maXh0dXJlCiBkZWYgcG0oKToKICAgICBmcm9tIHBsdWdneSBpbXBvcnQg
UGx1Z2luTWFuYWdlcgorCiAgICAgcmV0dXJuIFBsdWdpbk1hbmFnZXIoImV4YW1wbGUiKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2RlcHJlY2F0aW9ucy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXByZWNhdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1MTkyMWI2
Njg1ZTdmMGM4MDRmODBkMDgwNzMzMTljNDI2MDgyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXByZWNhdGlvbnMucHkKQEAgLTAsMCArMSw1NCBAQAorIiIi
CitEZXByZWNhdGlvbiB3YXJuaW5ncyB0ZXN0aW5nIHJvdW5kdXAuCisiIiIKK2ltcG9ydCBweXRl
c3QKK2Zyb20gcGx1Z2d5LmNhbGxlcnMgaW1wb3J0IF9SZXN1bHQKK2Zyb20gcGx1Z2d5IGltcG9y
dCBQbHVnaW5NYW5hZ2VyLCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIKKworaG9va3Nw
ZWMgPSBIb29rc3BlY01hcmtlcigiZXhhbXBsZSIpCitob29raW1wbCA9IEhvb2tpbXBsTWFya2Vy
KCJleGFtcGxlIikKKworCitkZWYgdGVzdF9yZXN1bHRfZGVwcmVjYXRlZCgpOgorICAgIHIgPSBf
UmVzdWx0KDEwLCBOb25lKQorICAgIHdpdGggcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgorICAg
ICAgICBhc3NlcnQgci5yZXN1bHQgPT0gMTAKKworCitkZWYgdGVzdF9pbXBscHJlZml4X2RlcHJl
Y2F0ZWQoKToKKyAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgcG0g
PSBQbHVnaW5NYW5hZ2VyKCJibGFoIiwgaW1wbHByZWZpeD0iYmxhaF8iKQorCisgICAgY2xhc3Mg
UGx1Z2luOgorICAgICAgICBkZWYgYmxhaF9teWhvb2soc2VsZiwgYXJnMSk6CisgICAgICAgICAg
ICByZXR1cm4gYXJnMQorCisgICAgd2l0aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CisgICAg
ICAgIHBtLnJlZ2lzdGVyKFBsdWdpbigpKQorCisKK2RlZiB0ZXN0X2NhbGxoaXN0b3JpY19wcm9j
X2RlcHJlY2F0ZWQocG0pOgorICAgICIiImBgcHJvY2BgIGt3YXJnIHRvIGBQbHVnaW5NYW5hbmdl
ci5jYWxsX2hpc3RvcmljKClgIGlzIG5vdyBvZmZpY2lhbGx5CisgICAgZGVwcmVjYXRlZC4KKyAg
ICAiIiIKKworICAgIGNsYXNzIFAxKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYyhoaXN0b3Jp
Yz1UcnVlKQorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIG0oc2VsZiwgeCk6CisgICAg
ICAgICAgICBwYXNzCisKKyAgICBwMSA9IFAxKCkKKyAgICBwbS5hZGRfaG9va3NwZWNzKHAxKQor
ICAgIHBtLnJlZ2lzdGVyKHAxKQorICAgIHdpdGggcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgor
ICAgICAgICBwbS5ob29rLm0uY2FsbF9oaXN0b3JpYyhrd2FyZ3M9ZGljdCh4PTEwKSwgcHJvYz1s
YW1iZGEgcmVzOiByZXMpCisKKworZGVmIHRlc3RfbXVsdGljYWxsX2RlcHJlY2F0ZWQocG0pOgor
ICAgIGNsYXNzIFAxKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgbShz
ZWxmLCBfX211bHRpY2FsbF9fLCB4KToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHB5dGVzdC5k
ZXByZWNhdGVkX2NhbGwocG0ucmVnaXN0ZXIsIFAxKCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS90ZXN0aW5nL3Rlc3RfZGV0YWlscy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXRh
aWxzLnB5CmluZGV4IDJmYWQxOThkOTU4NWQ0YzNiMTlmNWVmMjA1MmU3NDNlY2Y0ZThlNjcuLmZj
NDlmYzMwOGRlYzEwY2U1YzNmNjg5MTQ1NGY3ZDI0MzI1YjJkOTQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXRhaWxzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rpbmcv
dGVzdF9kZXRhaWxzLnB5CkBAIC0xLDggKzEsNiBAQAogaW1wb3J0IHdhcm5pbmdzCi0KIGltcG9y
dCBweXRlc3QKLQotZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1hbmFnZXIsIEhvb2tpbXBsTWFy
a2VyLCBIb29rc3BlY01hcmtlciwgX1Jlc3VsdAorZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1h
bmFnZXIsIEhvb2tpbXBsTWFya2VyLCBIb29rc3BlY01hcmtlcgogCiBob29rc3BlYyA9IEhvb2tz
cGVjTWFya2VyKCJleGFtcGxlIikKIGhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoImV4YW1wbGUi
KQpAQCAtMTEsOCArOSw3IEBAIGhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoImV4YW1wbGUiKQog
ZGVmIHRlc3RfcGFyc2VfaG9va2ltcGxfb3ZlcnJpZGUoKToKICAgICBjbGFzcyBNeVBsdWdpbk1h
bmFnZXIoUGx1Z2luTWFuYWdlcik6CiAgICAgICAgIGRlZiBwYXJzZV9ob29raW1wbF9vcHRzKHNl
bGYsIG1vZHVsZV9vcl9jbGFzcywgbmFtZSk6Ci0gICAgICAgICAgICBvcHRzID0gUGx1Z2luTWFu
YWdlci5wYXJzZV9ob29raW1wbF9vcHRzKAotICAgICAgICAgICAgICAgIHNlbGYsIG1vZHVsZV9v
cl9jbGFzcywgbmFtZSkKKyAgICAgICAgICAgIG9wdHMgPSBQbHVnaW5NYW5hZ2VyLnBhcnNlX2hv
b2tpbXBsX29wdHMoc2VsZiwgbW9kdWxlX29yX2NsYXNzLCBuYW1lKQogICAgICAgICAgICAgaWYg
b3B0cyBpcyBOb25lOgogICAgICAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgieDEiKToK
ICAgICAgICAgICAgICAgICAgICAgb3B0cyA9IHt9CkBAIC00NywxMyArNDQsMzggQEAgZGVmIHRl
c3RfcGFyc2VfaG9va2ltcGxfb3ZlcnJpZGUoKToKICAgICBhc3NlcnQgcG0uaG9vay54MW1ldGgy
Ll93cmFwcGVyc1swXS5ob29rd3JhcHBlcgogCiAKK2RlZiB0ZXN0X3dhcm5fd2hlbl9kZXByZWNh
dGVkX3NwZWNpZmllZChyZWN3YXJuKToKKyAgICB3YXJuaW5nID0gRGVwcmVjYXRpb25XYXJuaW5n
KCJmb28gaXMgZGVwcmVjYXRlZCIpCisKKyAgICBjbGFzcyBTcGVjKG9iamVjdCk6CisgICAgICAg
IEBob29rc3BlYyh3YXJuX29uX2ltcGw9d2FybmluZykKKyAgICAgICAgZGVmIGZvbyhzZWxmKToK
KyAgICAgICAgICAgIHBhc3MKKworICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgorICAgICAgICBA
aG9va2ltcGwKKyAgICAgICAgZGVmIGZvbyhzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKworICAg
IHBtID0gUGx1Z2luTWFuYWdlcihob29rc3BlYy5wcm9qZWN0X25hbWUpCisgICAgcG0uYWRkX2hv
b2tzcGVjcyhTcGVjKQorCisgICAgd2l0aCBweXRlc3Qud2FybnMoRGVwcmVjYXRpb25XYXJuaW5n
KSBhcyByZWNvcmRzOgorICAgICAgICBwbS5yZWdpc3RlcihQbHVnaW4oKSkKKyAgICAocmVjb3Jk
LCkgPSByZWNvcmRzCisgICAgYXNzZXJ0IHJlY29yZC5tZXNzYWdlIGlzIHdhcm5pbmcKKyAgICBh
c3NlcnQgcmVjb3JkLmZpbGVuYW1lID09IFBsdWdpbi5mb28uX19jb2RlX18uY29fZmlsZW5hbWUK
KyAgICBhc3NlcnQgcmVjb3JkLmxpbmVubyA9PSBQbHVnaW4uZm9vLl9fY29kZV9fLmNvX2ZpcnN0
bGluZW5vCisKKwogZGVmIHRlc3RfcGx1Z2luX2dldGF0dHJfcmFpc2VzX2Vycm9ycygpOgogICAg
ICIiIlBsdWdneSBtdXN0IGJlIGFibGUgdG8gaGFuZGxlIHBsdWdpbnMgd2hpY2ggcmFpc2Ugd2Vp
cmQgZXhjZXB0aW9ucwogICAgIHdoZW4gZ2V0YXR0cigpIGdldHMgY2FsbGVkICgjMTEpLgogICAg
ICIiIgorCiAgICAgY2xhc3MgRG9udFRvdWNoTWUob2JqZWN0KToKICAgICAgICAgZGVmIF9fZ2V0
YXR0cl9fKHNlbGYsIHgpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdjYW50IHRvdWNo
IG1lJykKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiY2FudCB0b3VjaCBtZSIpCiAKICAg
ICBjbGFzcyBNb2R1bGUob2JqZWN0KToKICAgICAgICAgcGFzcwpAQCAtNjMsMTQgKzg1LDE1IEBA
IGRlZiB0ZXN0X3BsdWdpbl9nZXRhdHRyX3JhaXNlc19lcnJvcnMoKToKIAogICAgIHBtID0gUGx1
Z2luTWFuYWdlcihob29rc3BlYy5wcm9qZWN0X25hbWUpCiAgICAgIyByZWdpc3RlcigpIHdvdWxk
IHJhaXNlIGFuIGVycm9yCi0gICAgcG0ucmVnaXN0ZXIobW9kdWxlLCAnZG9udHRvdWNoJykKLSAg
ICBhc3NlcnQgcG0uZ2V0X3BsdWdpbignZG9udHRvdWNoJykgaXMgbW9kdWxlCisgICAgcG0ucmVn
aXN0ZXIobW9kdWxlLCAiZG9udHRvdWNoIikKKyAgICBhc3NlcnQgcG0uZ2V0X3BsdWdpbigiZG9u
dHRvdWNoIikgaXMgbW9kdWxlCiAKIAogZGVmIHRlc3Rfd2FybmluZ19vbl9jYWxsX3ZzX2hvb2tz
cGVjX2FyZ19taXNtYXRjaCgpOgogICAgICIiIlZlcmlmeSB0aGF0IGlzIGEgaG9vayBpcyBjYWxs
ZWQgd2l0aCBsZXNzIGFyZ3VtZW50cyB0aGVuIGRlZmluZWQgaW4gdGhlCiAgICAgc3BlYyB0aGF0
IGEgd2FybmluZyBpcyBlbWl0dGVkLgogICAgICIiIgorCiAgICAgY2xhc3MgU3BlYzoKICAgICAg
ICAgQGhvb2tzcGVjCiAgICAgICAgIGRlZiBteWhvb2soc2VsZiwgYXJnMSwgYXJnMik6CkBAIC04
Niw3ICsxMDksNyBAQCBkZWYgdGVzdF93YXJuaW5nX29uX2NhbGxfdnNfaG9va3NwZWNfYXJnX21p
c21hdGNoKCk6CiAgICAgcG0uYWRkX2hvb2tzcGVjcyhTcGVjKCkpCiAKICAgICB3aXRoIHdhcm5p
bmdzLmNhdGNoX3dhcm5pbmdzKHJlY29yZD1UcnVlKSBhcyB3YXJuczoKLSAgICAgICAgd2Fybmlu
Z3Muc2ltcGxlZmlsdGVyKCdhbHdheXMnKQorICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIo
ImFsd2F5cyIpCiAKICAgICAgICAgIyBjYWxsaW5nIHNob3VsZCB0cmlnZ2VyIGEgd2FybmluZwog
ICAgICAgICBwbS5ob29rLm15aG9vayhhcmcxPTEpCkBAIC05Nyw3ICsxMjAsMTYgQEAgZGVmIHRl
c3Rfd2FybmluZ19vbl9jYWxsX3ZzX2hvb2tzcGVjX2FyZ19taXNtYXRjaCgpOgogICAgICAgICBh
c3NlcnQgIkFyZ3VtZW50KHMpICgnYXJnMicsKSIgaW4gc3RyKHdhcm5pbmcubWVzc2FnZSkKIAog
Ci1kZWYgdGVzdF9yZXN1bHRfZGVwcmVjYXRlZCgpOgotICAgIHIgPSBfUmVzdWx0KDEwLCBOb25l
KQotICAgIHdpdGggcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgotICAgICAgICBhc3NlcnQgci5y
ZXN1bHQgPT0gMTAKK2RlZiB0ZXN0X3JlcHIoKToKKyAgICBjbGFzcyBQbHVnaW46CisgICAgICAg
IEBob29raW1wbAorICAgICAgICBkZWYgbXlob29rKCk6CisgICAgICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yKCkKKworICAgIHBtID0gUGx1Z2luTWFuYWdlcihob29rc3BlYy5wcm9q
ZWN0X25hbWUpCisKKyAgICBwbHVnaW4gPSBQbHVnaW4oKQorICAgIHBuYW1lID0gcG0ucmVnaXN0
ZXIocGx1Z2luKQorICAgIGFzc2VydCByZXByKHBtLmhvb2subXlob29rLl9ub253cmFwcGVyc1sw
XSkgPT0gKAorICAgICAgICAiPEhvb2tJbXBsIHBsdWdpbl9uYW1lPSVyLCBwbHVnaW49JXI+IiAl
IChwbmFtZSwgcGx1Z2luKQorICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rpbmcv
dGVzdF9oZWxwZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hlbHBlcnMucHkKaW5k
ZXggYjE3ODA5Njg0NDY1MDgzZTRkMDAxMzRmMjM3NTFiZjBjNGMyYTM0OS4uNjRjM2VkYWEwYTFl
OGFmZjdjNzljOGI1ZDM1MmRiYjFjZjQwYmFiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVz
dGluZy90ZXN0X2hlbHBlcnMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hlbHBl
cnMucHkKQEAgLTEsNCArMSw4IEBACi1mcm9tIHBsdWdneSBpbXBvcnQgX2Zvcm1hdGRlZiwgdmFy
bmFtZXMKK2Zyb20gcGx1Z2d5Lmhvb2tzIGltcG9ydCB2YXJuYW1lcworZnJvbSBwbHVnZ3kubWFu
YWdlciBpbXBvcnQgX2Zvcm1hdGRlZgorCitpbXBvcnQgc3lzCitpbXBvcnQgcHl0ZXN0CiAKIAog
ZGVmIHRlc3RfdmFybmFtZXMoKToKQEAgLTE0LDggKzE4LDggQEAgZGVmIHRlc3RfdmFybmFtZXMo
KToKICAgICAgICAgICAgIHBhc3MKIAogICAgIGFzc2VydCB2YXJuYW1lcyhmKSA9PSAoKCJ4Iiwp
LCAoKSkKLSAgICBhc3NlcnQgdmFybmFtZXMoQSgpLmYpID09ICgoJ3knLCksICgpKQotICAgIGFz
c2VydCB2YXJuYW1lcyhCKCkpID09ICgoJ3onLCksICgpKQorICAgIGFzc2VydCB2YXJuYW1lcyhB
KCkuZikgPT0gKCgieSIsKSwgKCkpCisgICAgYXNzZXJ0IHZhcm5hbWVzKEIoKSkgPT0gKCgieiIs
KSwgKCkpCiAKIAogZGVmIHRlc3RfdmFybmFtZXNfZGVmYXVsdCgpOgpAQCAtNDYsMTEgKzUwLDI5
IEBAIGRlZiB0ZXN0X3Zhcm5hbWVzX2NsYXNzKCk6CiAgICAgYXNzZXJ0IHZhcm5hbWVzKEYpID09
ICgoKSwgKCkpCiAKIAorQHB5dGVzdC5tYXJrLnNraXBpZigKKyAgICBzeXMudmVyc2lvbl9pbmZv
IDwgKDMsKSwgcmVhc29uPSJLZXl3b3JkIG9ubHkgYXJndW1lbnRzIGFyZSBQeXRob24gMyBvbmx5
IgorKQorZGVmIHRlc3RfdmFybmFtZXNfa2V5d29yZF9vbmx5KCk6CisgICAgIyBTeW50YXhFcnJv
ciBvbiBQeXRob24gMiwgc28gd2UgZXhlYworICAgIG5zID0ge30KKyAgICBleGVjKAorICAgICAg
ICAiZGVmIGYxKHgsICosIHkpOiBwYXNzXG4iCisgICAgICAgICJkZWYgZjIoeCwgKiwgeT0zKTog
cGFzc1xuIgorICAgICAgICAiZGVmIGYzKHg9MSwgKiwgeT0zKTogcGFzc1xuIiwKKyAgICAgICAg
bnMsCisgICAgKQorCisgICAgYXNzZXJ0IHZhcm5hbWVzKG5zWyJmMSJdKSA9PSAoKCJ4IiwpLCAo
KSkKKyAgICBhc3NlcnQgdmFybmFtZXMobnNbImYyIl0pID09ICgoIngiLCksICgpKQorICAgIGFz
c2VydCB2YXJuYW1lcyhuc1siZjMiXSkgPT0gKCgpLCAoIngiLCkpCisKKwogZGVmIHRlc3RfZm9y
bWF0ZGVmKCk6CiAgICAgZGVmIGZ1bmN0aW9uMSgpOgogICAgICAgICBwYXNzCiAKLSAgICBhc3Nl
cnQgX2Zvcm1hdGRlZihmdW5jdGlvbjEpID09ICdmdW5jdGlvbjEoKScKKyAgICBhc3NlcnQgX2Zv
cm1hdGRlZihmdW5jdGlvbjEpID09ICJmdW5jdGlvbjEoKSIKIAogICAgIGRlZiBmdW5jdGlvbjIo
YXJnMSk6CiAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVz
dF9ob29rY2FsbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hvb2tjYWxsZXIucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTY2NGYyYmJmNjZjNjY4ZDYzNTA1OTk5MjUzNzEwNmJiZDQ3MzBkMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9ob29rY2FsbGVyLnB5CkBA
IC0wLDAgKzEsMjE1IEBACitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gcGx1Z2d5IGltcG9ydCBIb29r
aW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIKK2Zyb20gcGx1Z2d5Lmhvb2tzIGltcG9ydCBIb29r
SW1wbAorCitob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJleGFtcGxlIikKK2hvb2tpbXBsID0g
SG9va2ltcGxNYXJrZXIoImV4YW1wbGUiKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGhjKHBt
KToKKyAgICBjbGFzcyBIb29rcyhvYmplY3QpOgorICAgICAgICBAaG9va3NwZWMKKyAgICAgICAg
ZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHBtLmFk
ZF9ob29rc3BlY3MoSG9va3MpCisgICAgcmV0dXJuIHBtLmhvb2suaGVfbWV0aG9kMQorCisKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIGFkZG1ldGgoaGMpOgorICAgIGRlZiBhZGRtZXRoKHRyeWZpcnN0
PUZhbHNlLCB0cnlsYXN0PUZhbHNlLCBob29rd3JhcHBlcj1GYWxzZSk6CisgICAgICAgIGRlZiB3
cmFwKGZ1bmMpOgorICAgICAgICAgICAgaG9va2ltcGwodHJ5Zmlyc3Q9dHJ5Zmlyc3QsIHRyeWxh
c3Q9dHJ5bGFzdCwgaG9va3dyYXBwZXI9aG9va3dyYXBwZXIpKGZ1bmMpCisgICAgICAgICAgICBo
Yy5fYWRkX2hvb2tpbXBsKEhvb2tJbXBsKE5vbmUsICI8dGVtcD4iLCBmdW5jLCBmdW5jLmV4YW1w
bGVfaW1wbCkpCisgICAgICAgICAgICByZXR1cm4gZnVuYworCisgICAgICAgIHJldHVybiB3cmFw
CisKKyAgICByZXR1cm4gYWRkbWV0aAorCisKK2RlZiBmdW5jcyhob29rbWV0aG9kcyk6CisgICAg
cmV0dXJuIFtob29rbWV0aG9kLmZ1bmN0aW9uIGZvciBob29rbWV0aG9kIGluIGhvb2ttZXRob2Rz
XQorCisKK2RlZiB0ZXN0X2FkZGluZ19ub253cmFwcGVycyhoYywgYWRkbWV0aCk6CisgICAgQGFk
ZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2QxKCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRt
ZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMigpOgorICAgICAgICBwYXNzCisKKyAgICBAYWRkbWV0
aCgpCisgICAgZGVmIGhlX21ldGhvZDMoKToKKyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IGZ1
bmNzKGhjLl9ub253cmFwcGVycykgPT0gW2hlX21ldGhvZDEsIGhlX21ldGhvZDIsIGhlX21ldGhv
ZDNdCisKKworZGVmIHRlc3RfYWRkaW5nX25vbndyYXBwZXJzX3RyeWxhc3QoaGMsIGFkZG1ldGgp
OgorICAgIEBhZGRtZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMV9taWRkbGUoKToKKyAgICAgICAg
cGFzcworCisgICAgQGFkZG1ldGgodHJ5bGFzdD1UcnVlKQorICAgIGRlZiBoZV9tZXRob2QxKCk6
CisgICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMV9iKCk6
CisgICAgICAgIHBhc3MKKworICAgIGFzc2VydCBmdW5jcyhoYy5fbm9ud3JhcHBlcnMpID09IFto
ZV9tZXRob2QxLCBoZV9tZXRob2QxX21pZGRsZSwgaGVfbWV0aG9kMV9iXQorCisKK2RlZiB0ZXN0
X2FkZGluZ19ub253cmFwcGVyc190cnlsYXN0MyhoYywgYWRkbWV0aCk6CisgICAgQGFkZG1ldGgo
KQorICAgIGRlZiBoZV9tZXRob2QxX2EoKToKKyAgICAgICAgcGFzcworCisgICAgQGFkZG1ldGgo
dHJ5bGFzdD1UcnVlKQorICAgIGRlZiBoZV9tZXRob2QxX2IoKToKKyAgICAgICAgcGFzcworCisg
ICAgQGFkZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2QxX2MoKToKKyAgICAgICAgcGFzcworCisg
ICAgQGFkZG1ldGgodHJ5bGFzdD1UcnVlKQorICAgIGRlZiBoZV9tZXRob2QxX2QoKToKKyAgICAg
ICAgcGFzcworCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gWworICAgICAg
ICBoZV9tZXRob2QxX2QsCisgICAgICAgIGhlX21ldGhvZDFfYiwKKyAgICAgICAgaGVfbWV0aG9k
MV9hLAorICAgICAgICBoZV9tZXRob2QxX2MsCisgICAgXQorCisKK2RlZiB0ZXN0X2FkZGluZ19u
b253cmFwcGVyc190cnlsYXN0MihoYywgYWRkbWV0aCk6CisgICAgQGFkZG1ldGgoKQorICAgIGRl
ZiBoZV9tZXRob2QxX21pZGRsZSgpOgorICAgICAgICBwYXNzCisKKyAgICBAYWRkbWV0aCgpCisg
ICAgZGVmIGhlX21ldGhvZDFfYigpOgorICAgICAgICBwYXNzCisKKyAgICBAYWRkbWV0aCh0cnls
YXN0PVRydWUpCisgICAgZGVmIGhlX21ldGhvZDEoKToKKyAgICAgICAgcGFzcworCisgICAgYXNz
ZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gW2hlX21ldGhvZDEsIGhlX21ldGhvZDFfbWlk
ZGxlLCBoZV9tZXRob2QxX2JdCisKKworZGVmIHRlc3RfYWRkaW5nX25vbndyYXBwZXJzX3RyeWZp
cnN0KGhjLCBhZGRtZXRoKToKKyAgICBAYWRkbWV0aCh0cnlmaXJzdD1UcnVlKQorICAgIGRlZiBo
ZV9tZXRob2QxKCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRoKCkKKyAgICBkZWYgaGVf
bWV0aG9kMV9taWRkbGUoKToKKyAgICAgICAgcGFzcworCisgICAgQGFkZG1ldGgoKQorICAgIGRl
ZiBoZV9tZXRob2QxX2IoKToKKyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl9u
b253cmFwcGVycykgPT0gW2hlX21ldGhvZDFfbWlkZGxlLCBoZV9tZXRob2QxX2IsIGhlX21ldGhv
ZDFdCisKKworZGVmIHRlc3RfYWRkaW5nX3dyYXBwZXJzX29yZGVyaW5nKGhjLCBhZGRtZXRoKToK
KyAgICBAYWRkbWV0aChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBoZV9tZXRob2QxKCk6Cisg
ICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMV9taWRkbGUo
KToKKyAgICAgICAgcGFzcworCisgICAgQGFkZG1ldGgoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBk
ZWYgaGVfbWV0aG9kMygpOgorICAgICAgICBwYXNzCisKKyAgICBhc3NlcnQgZnVuY3MoaGMuX25v
bndyYXBwZXJzKSA9PSBbaGVfbWV0aG9kMV9taWRkbGVdCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl93
cmFwcGVycykgPT0gW2hlX21ldGhvZDEsIGhlX21ldGhvZDNdCisKKworZGVmIHRlc3RfYWRkaW5n
X3dyYXBwZXJzX29yZGVyaW5nX3RyeWZpcnN0KGhjLCBhZGRtZXRoKToKKyAgICBAYWRkbWV0aCho
b29rd3JhcHBlcj1UcnVlLCB0cnlmaXJzdD1UcnVlKQorICAgIGRlZiBoZV9tZXRob2QxKCk6Cisg
ICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRoKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIGhl
X21ldGhvZDIoKToKKyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IGhjLl9ub253cmFwcGVycyA9
PSBbXQorICAgIGFzc2VydCBmdW5jcyhoYy5fd3JhcHBlcnMpID09IFtoZV9tZXRob2QyLCBoZV9t
ZXRob2QxXQorCisKK2RlZiB0ZXN0X2hvb2tzcGVjKHBtKToKKyAgICBjbGFzcyBIb29rU3BlYyhv
YmplY3QpOgorICAgICAgICBAaG9va3NwZWMoKQorICAgICAgICBkZWYgaGVfbXlob29rMShhcmcx
KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1
ZSkKKyAgICAgICAgZGVmIGhlX215aG9vazIoYXJnMSk6CisgICAgICAgICAgICBwYXNzCisKKyAg
ICAgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PUZhbHNlKQorICAgICAgICBkZWYgaGVfbXlob29r
MyhhcmcxKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHBtLmFkZF9ob29rc3BlY3MoSG9va1Nw
ZWMpCisgICAgYXNzZXJ0IG5vdCBwbS5ob29rLmhlX215aG9vazEuc3BlYy5vcHRzWyJmaXJzdHJl
c3VsdCJdCisgICAgYXNzZXJ0IHBtLmhvb2suaGVfbXlob29rMi5zcGVjLm9wdHNbImZpcnN0cmVz
dWx0Il0KKyAgICBhc3NlcnQgbm90IHBtLmhvb2suaGVfbXlob29rMy5zcGVjLm9wdHNbImZpcnN0
cmVzdWx0Il0KKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm5hbWUiLCBbImhvb2t3cmFw
cGVyIiwgIm9wdGlvbmFsaG9vayIsICJ0cnlmaXJzdCIsICJ0cnlsYXN0Il0pCitAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInZhbCIsIFtUcnVlLCBGYWxzZV0pCitkZWYgdGVzdF9ob29raW1wbChu
YW1lLCB2YWwpOgorICAgIEBob29raW1wbCgqKntuYW1lOiB2YWx9KQorICAgIGRlZiBoZV9teWhv
b2sxKGFyZzEpOgorICAgICAgICBwYXNzCisKKyAgICBpZiB2YWw6CisgICAgICAgIGFzc2VydCBo
ZV9teWhvb2sxLmV4YW1wbGVfaW1wbC5nZXQobmFtZSkKKyAgICBlbHNlOgorICAgICAgICBhc3Nl
cnQgbm90IGhhc2F0dHIoaGVfbXlob29rMSwgbmFtZSkKKworCitkZWYgdGVzdF9ob29rcmVsYXlf
cmVnaXN0cnkocG0pOgorICAgICIiIlZlcmlmeSBob29rIGNhbGxlciBpbnN0YW5jZXMgYXJlIHJl
Z2lzdGVyZWQgYnkgbmFtZSBvbnRvIHRoZSByZWxheQorICAgIGFuZCBjYW4gYmUgbGlrZXdpc2Ug
dW5yZWdpc3RlcmVkLiIiIgorCisgICAgY2xhc3MgQXBpKG9iamVjdCk6CisgICAgICAgIEBob29r
c3BlYworICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAgICAgICAgICAgICJhcGkgaG9v
ayAxIgorCisgICAgcG0uYWRkX2hvb2tzcGVjcyhBcGkpCisgICAgaG9vayA9IHBtLmhvb2sKKyAg
ICBhc3NlcnQgaGFzYXR0cihob29rLCAiaGVsbG8iKQorICAgIGFzc2VydCByZXByKGhvb2suaGVs
bG8pLmZpbmQoImhlbGxvIikgIT0gLTEKKworICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgorICAg
ICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAg
ICByZXR1cm4gYXJnICsgMQorCisgICAgcGx1Z2luID0gUGx1Z2luKCkKKyAgICBwbS5yZWdpc3Rl
cihwbHVnaW4pCisgICAgb3V0ID0gaG9vay5oZWxsbyhhcmc9MykKKyAgICBhc3NlcnQgb3V0ID09
IFs0XQorICAgIGFzc2VydCBub3QgaGFzYXR0cihob29rLCAid29ybGQiKQorICAgIHBtLnVucmVn
aXN0ZXIocGx1Z2luKQorICAgIGFzc2VydCBob29rLmhlbGxvKGFyZz0zKSA9PSBbXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hvb2tyZWxheS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L3Rlc3RpbmcvdGVzdF9ob29rcmVsYXkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVlNzgyMWJlZDhmOWQwZDNhMWI5OGNmZTljMDc3MjQxNjljNWM0MWMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0
X2hvb2tyZWxheS5weQorKysgL2Rldi9udWxsCkBAIC0xLDIxMCArMCwwIEBACi1pbXBvcnQgcHl0
ZXN0Ci1mcm9tIHBsdWdneSBpbXBvcnQgUGx1Z2luVmFsaWRhdGlvbkVycm9yLCBIb29raW1wbE1h
cmtlciwgSG9va3NwZWNNYXJrZXIKLQotCi1ob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJleGFt
cGxlIikKLWhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoImV4YW1wbGUiKQotCi0KLWRlZiB0ZXN0
X2hhcHB5cGF0aChwbSk6Ci0gICAgY2xhc3MgQXBpKG9iamVjdCk6Ci0gICAgICAgIEBob29rc3Bl
YwotICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKLSAgICAgICAgICAgICJhcGkgaG9vayAx
IgotCi0gICAgcG0uYWRkX2hvb2tzcGVjcyhBcGkpCi0gICAgaG9vayA9IHBtLmhvb2sKLSAgICBh
c3NlcnQgaGFzYXR0cihob29rLCAnaGVsbG8nKQotICAgIGFzc2VydCByZXByKGhvb2suaGVsbG8p
LmZpbmQoImhlbGxvIikgIT0gLTEKLQotICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgotICAgICAg
ICBAaG9va2ltcGwKLSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICBy
ZXR1cm4gYXJnICsgMQotCi0gICAgcGx1Z2luID0gUGx1Z2luKCkKLSAgICBwbS5yZWdpc3Rlcihw
bHVnaW4pCi0gICAgb3V0ID0gaG9vay5oZWxsbyhhcmc9MykKLSAgICBhc3NlcnQgb3V0ID09IFs0
XQotICAgIGFzc2VydCBub3QgaGFzYXR0cihob29rLCAnd29ybGQnKQotICAgIHBtLnVucmVnaXN0
ZXIocGx1Z2luKQotICAgIGFzc2VydCBob29rLmhlbGxvKGFyZz0zKSA9PSBbXQotCi0KLWRlZiB0
ZXN0X2FyZ21pc21hdGNoKHBtKToKLSAgICBjbGFzcyBBcGkob2JqZWN0KToKLSAgICAgICAgQGhv
b2tzcGVjCi0gICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgotICAgICAgICAgICAgImFwaSBo
b29rIDEiCi0KLSAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKLQotICAgIGNsYXNzIFBsdWdpbihv
YmplY3QpOgotICAgICAgICBAaG9va2ltcGwKLSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZ3dy
b25nKToKLSAgICAgICAgICAgIHBhc3MKLQotICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhQbHVnaW5W
YWxpZGF0aW9uRXJyb3IpIGFzIGV4YzoKLSAgICAgICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCi0K
LSAgICBhc3NlcnQgImFyZ3dyb25nIiBpbiBzdHIoZXhjLnZhbHVlKQotCi0KLWRlZiB0ZXN0X29u
bHlfa3dhcmdzKHBtKToKLSAgICBjbGFzcyBBcGkob2JqZWN0KToKLSAgICAgICAgQGhvb2tzcGVj
Ci0gICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgotICAgICAgICAgICAgImFwaSBob29rIDEi
Ci0KLSAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKLSAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlw
ZUVycm9yKSBhcyBleGM6Ci0gICAgICAgIHBtLmhvb2suaGVsbG8oMykKLQotICAgIGNvbXByZWhl
bnNpYmxlID0gImhvb2sgY2FsbGluZyBzdXBwb3J0cyBvbmx5IGtleXdvcmQgYXJndW1lbnRzIgot
ICAgIGFzc2VydCBjb21wcmVoZW5zaWJsZSBpbiBzdHIoZXhjLnZhbHVlKQotCi0KLWRlZiB0ZXN0
X2NhbGxfb3JkZXIocG0pOgotICAgIGNsYXNzIEFwaShvYmplY3QpOgotICAgICAgICBAaG9va3Nw
ZWMKLSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICAiYXBpIGhvb2sg
MSIKLQotICAgIHBtLmFkZF9ob29rc3BlY3MoQXBpKQotCi0gICAgY2xhc3MgUGx1Z2luMShvYmpl
Y3QpOgotICAgICAgICBAaG9va2ltcGwKLSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6Ci0g
ICAgICAgICAgICByZXR1cm4gMQotCi0gICAgY2xhc3MgUGx1Z2luMihvYmplY3QpOgotICAgICAg
ICBAaG9va2ltcGwKLSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICBy
ZXR1cm4gMgotCi0gICAgY2xhc3MgUGx1Z2luMyhvYmplY3QpOgotICAgICAgICBAaG9va2ltcGwK
LSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICByZXR1cm4gMwotCi0g
ICAgY2xhc3MgUGx1Z2luNChvYmplY3QpOgotICAgICAgICBAaG9va2ltcGwoaG9va3dyYXBwZXI9
VHJ1ZSkKLSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICBhc3NlcnQg
YXJnID09IDAKLSAgICAgICAgICAgIG91dGNvbWUgPSB5aWVsZAotICAgICAgICAgICAgYXNzZXJ0
IG91dGNvbWUuZ2V0X3Jlc3VsdCgpID09IFszLCAyLCAxXQotCi0gICAgcG0ucmVnaXN0ZXIoUGx1
Z2luMSgpKQotICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjIoKSkKLSAgICBwbS5yZWdpc3RlcihQbHVn
aW4zKCkpCi0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luNCgpKSAgIyBob29rd3JhcHBlciBzaG91bGQg
Z2V0IHNhbWUgbGlzdCByZXN1bHQKLSAgICByZXMgPSBwbS5ob29rLmhlbGxvKGFyZz0wKQotICAg
IGFzc2VydCByZXMgPT0gWzMsIDIsIDFdCi0KLQotZGVmIHRlc3RfZmlyc3RyZXN1bHRfZGVmaW5p
dGlvbihwbSk6Ci0gICAgY2xhc3MgQXBpKG9iamVjdCk6Ci0gICAgICAgIEBob29rc3BlYyhmaXJz
dHJlc3VsdD1UcnVlKQotICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKLSAgICAgICAgICAg
ICJhcGkgaG9vayAxIgotCi0gICAgcG0uYWRkX2hvb2tzcGVjcyhBcGkpCi0KLSAgICBjbGFzcyBQ
bHVnaW4xKG9iamVjdCk6Ci0gICAgICAgIEBob29raW1wbAotICAgICAgICBkZWYgaGVsbG8oc2Vs
ZiwgYXJnKToKLSAgICAgICAgICAgIHJldHVybiBhcmcgKyAxCi0KLSAgICBjbGFzcyBQbHVnaW4y
KG9iamVjdCk6Ci0gICAgICAgIEBob29raW1wbAotICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJn
KToKLSAgICAgICAgICAgIHJldHVybiBhcmcgLSAxCi0KLSAgICBjbGFzcyBQbHVnaW4zKG9iamVj
dCk6Ci0gICAgICAgIEBob29raW1wbAotICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKLSAg
ICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICBjbGFzcyBQbHVnaW40KG9iamVjdCk6Ci0gICAg
ICAgIEBob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotICAgICAgICBkZWYgaGVsbG8oc2VsZiwg
YXJnKToKLSAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMwotICAgICAgICAgICAgb3V0Y29tZSA9
IHlpZWxkCi0gICAgICAgICAgICBhc3NlcnQgb3V0Y29tZS5nZXRfcmVzdWx0KCkgPT0gMgotCi0g
ICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKSAgIyBkaXNjYXJkZWQgLSBub3QgdGhlIGxhc3QgcmVn
aXN0ZXJlZCBwbHVnaW4KLSAgICBwbS5yZWdpc3RlcihQbHVnaW4yKCkpICAjIHVzZWQgYXMgcmVz
dWx0Ci0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luMygpKSAgIyBOb25lIHJlc3VsdCBpcyBpZ25vcmVk
Ci0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luNCgpKSAgIyBob29rd3JhcHBlciBzaG91bGQgZ2V0IHNh
bWUgbm9uLWxpc3QgcmVzdWx0Ci0gICAgcmVzID0gcG0uaG9vay5oZWxsbyhhcmc9MykKLSAgICBh
c3NlcnQgcmVzID09IDIKLQotCi1kZWYgdGVzdF9maXJzdHJlc3VsdF9mb3JjZV9yZXN1bHQocG0p
OgotICAgICIiIlZlcmlmeSBmb3JjaW5nIGEgcmVzdWx0IGluIGEgd3JhcHBlci4KLSAgICAiIiIK
LSAgICBjbGFzcyBBcGkob2JqZWN0KToKLSAgICAgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRy
dWUpCi0gICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgotICAgICAgICAgICAgImFwaSBob29r
IDEiCi0KLSAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKLQotICAgIGNsYXNzIFBsdWdpbjEob2Jq
ZWN0KToKLSAgICAgICAgQGhvb2tpbXBsCi0gICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgot
ICAgICAgICAgICAgcmV0dXJuIGFyZyArIDEKLQotICAgIGNsYXNzIFBsdWdpbjIob2JqZWN0KToK
LSAgICAgICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgICAgIGRlZiBoZWxsbyhz
ZWxmLCBhcmcpOgotICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAzCi0gICAgICAgICAgICBvdXRj
b21lID0geWllbGQKLSAgICAgICAgICAgIGFzc2VydCBvdXRjb21lLmdldF9yZXN1bHQoKSA9PSA0
Ci0gICAgICAgICAgICBvdXRjb21lLmZvcmNlX3Jlc3VsdCgwKQotCi0gICAgY2xhc3MgUGx1Z2lu
MyhvYmplY3QpOgotICAgICAgICBAaG9va2ltcGwKLSAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFy
Zyk6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgp
KQotICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjIoKSkgICMgd3JhcHBlcgotICAgIHBtLnJlZ2lzdGVy
KFBsdWdpbjMoKSkgICMgaWdub3JlZCBzaW5jZSByZXR1cm5zIE5vbmUKLSAgICByZXMgPSBwbS5o
b29rLmhlbGxvKGFyZz0zKQotICAgIGFzc2VydCByZXMgPT0gMCAgIyB0aGlzIHJlc3VsdCBpcyBm
b3JjZWQgYW5kIG5vdCBhIGxpc3QKLQotCi1kZWYgdGVzdF9maXJzdHJlc3VsdF9yZXR1cm5zX25v
bmUocG0pOgotICAgICIiIklmIE5vbmUgcmVzdWx0cyBhcmUgcmV0dXJuZWQgYnkgdW5kZXJseWlu
ZyBpbXBsZW1lbnRhdGlvbnMgZW5zdXJlCi0gICAgdGhlIG11bHRpLWNhbGwgbG9vcCByZXR1cm5z
IGEgTm9uZSB2YWx1ZS4KLSAgICAiIiIKLSAgICBjbGFzcyBBcGkob2JqZWN0KToKLSAgICAgICAg
QGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi0gICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcp
OgotICAgICAgICAgICAgImFwaSBob29rIDEiCi0KLSAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkK
LQotICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0KToKLSAgICAgICAgQGhvb2tpbXBsCi0gICAgICAg
IGRlZiBoZWxsbyhzZWxmLCBhcmcpOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHBt
LnJlZ2lzdGVyKFBsdWdpbjEoKSkKLSAgICByZXMgPSBwbS5ob29rLmhlbGxvKGFyZz0zKQotICAg
IGFzc2VydCByZXMgaXMgTm9uZQotCi0KLWRlZiB0ZXN0X2ZpcnN0cmVzdWx0X25vX3BsdWdpbihw
bSk6Ci0gICAgIiIiSWYgbm8gaW1wbGVtZW50YXRpb25zL3BsdWdpbnMgaGF2ZSBiZWVuIHJlZ2lz
dGVyZWQgZm9yIGEgZmlyc3RyZXN1bHQKLSAgICBob29rIHRoZSBtdWx0aS1jYWxsIGxvb3Agc2hv
dWxkIHJldHVybiBhIE5vbmUgdmFsdWUuCi0gICAgIiIiCi0gICAgY2xhc3MgQXBpKG9iamVjdCk6
Ci0gICAgICAgIEBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotICAgICAgICBkZWYgaGVsbG8o
c2VsZiwgYXJnKToKLSAgICAgICAgICAgICJhcGkgaG9vayAxIgotCi0gICAgcG0uYWRkX2hvb2tz
cGVjcyhBcGkpCi0gICAgcmVzID0gcG0uaG9vay5oZWxsbyhhcmc9MykKLSAgICBhc3NlcnQgcmVz
IGlzIE5vbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9pbnZvY2F0aW9u
cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9pbnZvY2F0aW9ucy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNmVjNjNjZmM3ZGM0MjNmYTA1NGU0NzUxNTA5ZGYwOTFlNjcxNDdhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2ludm9jYXRpb25zLnB5CkBAIC0wLDAgKzEs
MjE2IEBACitpbXBvcnQgcHl0ZXN0Citmcm9tIHBsdWdneSBpbXBvcnQgUGx1Z2luVmFsaWRhdGlv
bkVycm9yLCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIKKworCitob29rc3BlYyA9IEhv
b2tzcGVjTWFya2VyKCJleGFtcGxlIikKK2hvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoImV4YW1w
bGUiKQorCisKK2RlZiB0ZXN0X2FyZ21pc21hdGNoKHBtKToKKyAgICBjbGFzcyBBcGkob2JqZWN0
KToKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAg
ICAgICAgICAgImFwaSBob29rIDEiCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKKworICAg
IGNsYXNzIFBsdWdpbihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhl
bGxvKHNlbGYsIGFyZ3dyb25nKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhQbHVnaW5WYWxpZGF0aW9uRXJyb3IpIGFzIGV4YzoKKyAgICAgICAgcG0ucmVnaXN0
ZXIoUGx1Z2luKCkpCisKKyAgICBhc3NlcnQgImFyZ3dyb25nIiBpbiBzdHIoZXhjLnZhbHVlKQor
CisKK2RlZiB0ZXN0X29ubHlfa3dhcmdzKHBtKToKKyAgICBjbGFzcyBBcGkob2JqZWN0KToKKyAg
ICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAg
ICAgImFwaSBob29rIDEiCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBleGM6CisgICAgICAgIHBtLmhvb2suaGVsbG8oMykK
KworICAgIGNvbXByZWhlbnNpYmxlID0gImhvb2sgY2FsbGluZyBzdXBwb3J0cyBvbmx5IGtleXdv
cmQgYXJndW1lbnRzIgorICAgIGFzc2VydCBjb21wcmVoZW5zaWJsZSBpbiBzdHIoZXhjLnZhbHVl
KQorCisKK2RlZiB0ZXN0X29wdF9pbl9hcmdzKHBtKToKKyAgICAiIiJWZXJmaXkgdGhhdCB0d28g
aG9va2ltcGxzIHdpdGggbXV0ZXggYXJncyBjYW4gc2VydmUKKyAgICB1bmRlciB0aGUgc2FtZSBz
cGVjLgorICAgICIiIgorCisgICAgY2xhc3MgQXBpKG9iamVjdCk6CisgICAgICAgIEBob29rc3Bl
YworICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnMSwgYXJnMiwgY29tbW9uX2FyZyk6CisgICAg
ICAgICAgICAiYXBpIGhvb2sgMSIKKworICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0KToKKyAgICAg
ICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcxLCBjb21tb25fYXJnKToK
KyAgICAgICAgICAgIHJldHVybiBhcmcxICsgY29tbW9uX2FyZworCisgICAgY2xhc3MgUGx1Z2lu
MihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFy
ZzIsIGNvbW1vbl9hcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZzIgKyBjb21tb25fYXJnCisK
KyAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKKyAgICBwbS5yZWdpc3RlcihQbHVnaW4xKCkpCisg
ICAgcG0ucmVnaXN0ZXIoUGx1Z2luMigpKQorCisgICAgcmVzdWx0cyA9IHBtLmhvb2suaGVsbG8o
YXJnMT0xLCBhcmcyPTIsIGNvbW1vbl9hcmc9MCkKKyAgICBhc3NlcnQgcmVzdWx0cyA9PSBbMiwg
MV0KKworCitkZWYgdGVzdF9jYWxsX29yZGVyKHBtKToKKyAgICBjbGFzcyBBcGkob2JqZWN0KToK
KyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAg
ICAgICAgImFwaSBob29rIDEiCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKKworICAgIGNs
YXNzIFBsdWdpbjEob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZWxs
byhzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIDEKKworICAgIGNsYXNzIFBsdWdpbjIo
b2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcp
OgorICAgICAgICAgICAgcmV0dXJuIDIKKworICAgIGNsYXNzIFBsdWdpbjMob2JqZWN0KToKKyAg
ICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAg
ICAgcmV0dXJuIDMKKworICAgIGNsYXNzIFBsdWdpbjQob2JqZWN0KToKKyAgICAgICAgQGhvb2tp
bXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAg
ICAgICAgICAgYXNzZXJ0IGFyZyA9PSAwCisgICAgICAgICAgICBvdXRjb21lID0geWllbGQKKyAg
ICAgICAgICAgIGFzc2VydCBvdXRjb21lLmdldF9yZXN1bHQoKSA9PSBbMywgMiwgMV0KKworICAg
IHBtLnJlZ2lzdGVyKFBsdWdpbjEoKSkKKyAgICBwbS5yZWdpc3RlcihQbHVnaW4yKCkpCisgICAg
cG0ucmVnaXN0ZXIoUGx1Z2luMygpKQorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjQoKSkgICMgaG9v
a3dyYXBwZXIgc2hvdWxkIGdldCBzYW1lIGxpc3QgcmVzdWx0CisgICAgcmVzID0gcG0uaG9vay5o
ZWxsbyhhcmc9MCkKKyAgICBhc3NlcnQgcmVzID09IFszLCAyLCAxXQorCisKK2RlZiB0ZXN0X2Zp
cnN0cmVzdWx0X2RlZmluaXRpb24ocG0pOgorICAgIGNsYXNzIEFwaShvYmplY3QpOgorICAgICAg
ICBAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFy
Zyk6CisgICAgICAgICAgICAiYXBpIGhvb2sgMSIKKworICAgIHBtLmFkZF9ob29rc3BlY3MoQXBp
KQorCisgICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAg
ICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gYXJnICsgMQorCisg
ICAgY2xhc3MgUGx1Z2luMihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVm
IGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gYXJnIC0gMQorCisgICAgY2xh
c3MgUGx1Z2luMyhvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxv
KHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgY2xhc3MgUGx1Z2lu
NChvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICAgICAg
ZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICBhc3NlcnQgYXJnID09IDMKKyAgICAg
ICAgICAgIG91dGNvbWUgPSB5aWVsZAorICAgICAgICAgICAgYXNzZXJ0IG91dGNvbWUuZ2V0X3Jl
c3VsdCgpID09IDIKKworICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjEoKSkgICMgZGlzY2FyZGVkIC0g
bm90IHRoZSBsYXN0IHJlZ2lzdGVyZWQgcGx1Z2luCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMigp
KSAgIyB1c2VkIGFzIHJlc3VsdAorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjMoKSkgICMgTm9uZSBy
ZXN1bHQgaXMgaWdub3JlZAorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjQoKSkgICMgaG9va3dyYXBw
ZXIgc2hvdWxkIGdldCBzYW1lIG5vbi1saXN0IHJlc3VsdAorICAgIHJlcyA9IHBtLmhvb2suaGVs
bG8oYXJnPTMpCisgICAgYXNzZXJ0IHJlcyA9PSAyCisKKworZGVmIHRlc3RfZmlyc3RyZXN1bHRf
Zm9yY2VfcmVzdWx0KHBtKToKKyAgICAiIiJWZXJpZnkgZm9yY2luZyBhIHJlc3VsdCBpbiBhIHdy
YXBwZXIuCisgICAgIiIiCisKKyAgICBjbGFzcyBBcGkob2JqZWN0KToKKyAgICAgICAgQGhvb2tz
cGVjKGZpcnN0cmVzdWx0PVRydWUpCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAg
ICAgICAgICAgImFwaSBob29rIDEiCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKKworICAg
IGNsYXNzIFBsdWdpbjEob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBo
ZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyArIDEKKworICAgIGNsYXNz
IFBsdWdpbjIob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisg
ICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAz
CisgICAgICAgICAgICBvdXRjb21lID0geWllbGQKKyAgICAgICAgICAgIGFzc2VydCBvdXRjb21l
LmdldF9yZXN1bHQoKSA9PSA0CisgICAgICAgICAgICBvdXRjb21lLmZvcmNlX3Jlc3VsdCgwKQor
CisgICAgY2xhc3MgUGx1Z2luMyhvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAg
ZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgcG0u
cmVnaXN0ZXIoUGx1Z2luMSgpKQorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjIoKSkgICMgd3JhcHBl
cgorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjMoKSkgICMgaWdub3JlZCBzaW5jZSByZXR1cm5zIE5v
bmUKKyAgICByZXMgPSBwbS5ob29rLmhlbGxvKGFyZz0zKQorICAgIGFzc2VydCByZXMgPT0gMCAg
IyB0aGlzIHJlc3VsdCBpcyBmb3JjZWQgYW5kIG5vdCBhIGxpc3QKKworCitkZWYgdGVzdF9maXJz
dHJlc3VsdF9yZXR1cm5zX25vbmUocG0pOgorICAgICIiIklmIE5vbmUgcmVzdWx0cyBhcmUgcmV0
dXJuZWQgYnkgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbnMgZW5zdXJlCisgICAgdGhlIG11bHRp
LWNhbGwgbG9vcCByZXR1cm5zIGEgTm9uZSB2YWx1ZS4KKyAgICAiIiIKKworICAgIGNsYXNzIEFw
aShvYmplY3QpOgorICAgICAgICBAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKKyAgICAgICAg
ZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICAiYXBpIGhvb2sgMSIKKworICAgIHBt
LmFkZF9ob29rc3BlY3MoQXBpKQorCisgICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgorICAgICAg
ICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICBy
ZXR1cm4gTm9uZQorCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKQorICAgIHJlcyA9IHBtLmhv
b2suaGVsbG8oYXJnPTMpCisgICAgYXNzZXJ0IHJlcyBpcyBOb25lCisKKworZGVmIHRlc3RfZmly
c3RyZXN1bHRfbm9fcGx1Z2luKHBtKToKKyAgICAiIiJJZiBubyBpbXBsZW1lbnRhdGlvbnMvcGx1
Z2lucyBoYXZlIGJlZW4gcmVnaXN0ZXJlZCBmb3IgYSBmaXJzdHJlc3VsdAorICAgIGhvb2sgdGhl
IG11bHRpLWNhbGwgbG9vcCBzaG91bGQgcmV0dXJuIGEgTm9uZSB2YWx1ZS4KKyAgICAiIiIKKwor
ICAgIGNsYXNzIEFwaShvYmplY3QpOgorICAgICAgICBAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1
ZSkKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICAiYXBpIGhvb2sg
MSIKKworICAgIHBtLmFkZF9ob29rc3BlY3MoQXBpKQorICAgIHJlcyA9IHBtLmhvb2suaGVsbG8o
YXJnPTMpCisgICAgYXNzZXJ0IHJlcyBpcyBOb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90
ZXN0aW5nL3Rlc3RfbWV0aG9kX29yZGVyaW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0
X21ldGhvZF9vcmRlcmluZy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTU4NGEw
YWU1YTgyNDRmMWQwNjNlNzNiOWIyMzk3Mjk5M2U2MTFmYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfbWV0aG9k
X29yZGVyaW5nLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzIyICswLDAgQEAKLWltcG9ydCBweXRl
c3QKLQotCi1pbXBvcnQgc3lzCi1pbXBvcnQgdHlwZXMKLQotZnJvbSBwbHVnZ3kgaW1wb3J0IFBs
dWdpbk1hbmFnZXIsIEhvb2tJbXBsLCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIKLQot
aG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigiZXhhbXBsZSIpCi1ob29raW1wbCA9IEhvb2tpbXBs
TWFya2VyKCJleGFtcGxlIikKLQotCi1AcHl0ZXN0LmZpeHR1cmUKLWRlZiBoYyhwbSk6Ci0gICAg
Y2xhc3MgSG9va3Mob2JqZWN0KToKLSAgICAgICAgQGhvb2tzcGVjCi0gICAgICAgIGRlZiBoZV9t
ZXRob2QxKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICBwYXNzCi0gICAgcG0uYWRkX2hvb2tzcGVj
cyhIb29rcykKLSAgICByZXR1cm4gcG0uaG9vay5oZV9tZXRob2QxCi0KLQotQHB5dGVzdC5maXh0
dXJlCi1kZWYgYWRkbWV0aChoYyk6Ci0gICAgZGVmIGFkZG1ldGgodHJ5Zmlyc3Q9RmFsc2UsIHRy
eWxhc3Q9RmFsc2UsIGhvb2t3cmFwcGVyPUZhbHNlKToKLSAgICAgICAgZGVmIHdyYXAoZnVuYyk6
Ci0gICAgICAgICAgICBob29raW1wbCh0cnlmaXJzdD10cnlmaXJzdCwgdHJ5bGFzdD10cnlsYXN0
LAotICAgICAgICAgICAgICAgICAgICAgaG9va3dyYXBwZXI9aG9va3dyYXBwZXIpKGZ1bmMpCi0g
ICAgICAgICAgICBoYy5fYWRkX2hvb2tpbXBsKEhvb2tJbXBsKE5vbmUsICI8dGVtcD4iLCBmdW5j
LCBmdW5jLmV4YW1wbGVfaW1wbCkpCi0gICAgICAgICAgICByZXR1cm4gZnVuYwotICAgICAgICBy
ZXR1cm4gd3JhcAotICAgIHJldHVybiBhZGRtZXRoCi0KLQotZGVmIGZ1bmNzKGhvb2ttZXRob2Rz
KToKLSAgICByZXR1cm4gW2hvb2ttZXRob2QuZnVuY3Rpb24gZm9yIGhvb2ttZXRob2QgaW4gaG9v
a21ldGhvZHNdCi0KLQotZGVmIHRlc3RfYWRkaW5nX25vbndyYXBwZXJzKGhjLCBhZGRtZXRoKToK
LSAgICBAYWRkbWV0aCgpCi0gICAgZGVmIGhlX21ldGhvZDEoKToKLSAgICAgICAgcGFzcwotCi0g
ICAgQGFkZG1ldGgoKQotICAgIGRlZiBoZV9tZXRob2QyKCk6Ci0gICAgICAgIHBhc3MKLQotICAg
IEBhZGRtZXRoKCkKLSAgICBkZWYgaGVfbWV0aG9kMygpOgotICAgICAgICBwYXNzCi0gICAgYXNz
ZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gW2hlX21ldGhvZDEsIGhlX21ldGhvZDIsIGhl
X21ldGhvZDNdCi0KLQotZGVmIHRlc3RfYWRkaW5nX25vbndyYXBwZXJzX3RyeWxhc3QoaGMsIGFk
ZG1ldGgpOgotICAgIEBhZGRtZXRoKCkKLSAgICBkZWYgaGVfbWV0aG9kMV9taWRkbGUoKToKLSAg
ICAgICAgcGFzcwotCi0gICAgQGFkZG1ldGgodHJ5bGFzdD1UcnVlKQotICAgIGRlZiBoZV9tZXRo
b2QxKCk6Ci0gICAgICAgIHBhc3MKLQotICAgIEBhZGRtZXRoKCkKLSAgICBkZWYgaGVfbWV0aG9k
MV9iKCk6Ci0gICAgICAgIHBhc3MKLSAgICBhc3NlcnQgZnVuY3MoaGMuX25vbndyYXBwZXJzKSA9
PSBbaGVfbWV0aG9kMSwgaGVfbWV0aG9kMV9taWRkbGUsIGhlX21ldGhvZDFfYl0KLQotCi1kZWYg
dGVzdF9hZGRpbmdfbm9ud3JhcHBlcnNfdHJ5bGFzdDMoaGMsIGFkZG1ldGgpOgotICAgIEBhZGRt
ZXRoKCkKLSAgICBkZWYgaGVfbWV0aG9kMV9hKCk6Ci0gICAgICAgIHBhc3MKLQotICAgIEBhZGRt
ZXRoKHRyeWxhc3Q9VHJ1ZSkKLSAgICBkZWYgaGVfbWV0aG9kMV9iKCk6Ci0gICAgICAgIHBhc3MK
LQotICAgIEBhZGRtZXRoKCkKLSAgICBkZWYgaGVfbWV0aG9kMV9jKCk6Ci0gICAgICAgIHBhc3MK
LQotICAgIEBhZGRtZXRoKHRyeWxhc3Q9VHJ1ZSkKLSAgICBkZWYgaGVfbWV0aG9kMV9kKCk6Ci0g
ICAgICAgIHBhc3MKLSAgICBhc3NlcnQgZnVuY3MoaGMuX25vbndyYXBwZXJzKSA9PSBcCi0gICAg
ICAgIFtoZV9tZXRob2QxX2QsIGhlX21ldGhvZDFfYiwgaGVfbWV0aG9kMV9hLCBoZV9tZXRob2Qx
X2NdCi0KLQotZGVmIHRlc3RfYWRkaW5nX25vbndyYXBwZXJzX3RyeWxhc3QyKGhjLCBhZGRtZXRo
KToKLSAgICBAYWRkbWV0aCgpCi0gICAgZGVmIGhlX21ldGhvZDFfbWlkZGxlKCk6Ci0gICAgICAg
IHBhc3MKLQotICAgIEBhZGRtZXRoKCkKLSAgICBkZWYgaGVfbWV0aG9kMV9iKCk6Ci0gICAgICAg
IHBhc3MKLQotICAgIEBhZGRtZXRoKHRyeWxhc3Q9VHJ1ZSkKLSAgICBkZWYgaGVfbWV0aG9kMSgp
OgotICAgICAgICBwYXNzCi0gICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gXAot
ICAgICAgICBbaGVfbWV0aG9kMSwgaGVfbWV0aG9kMV9taWRkbGUsIGhlX21ldGhvZDFfYl0KLQot
Ci1kZWYgdGVzdF9hZGRpbmdfbm9ud3JhcHBlcnNfdHJ5Zmlyc3QoaGMsIGFkZG1ldGgpOgotICAg
IEBhZGRtZXRoKHRyeWZpcnN0PVRydWUpCi0gICAgZGVmIGhlX21ldGhvZDEoKToKLSAgICAgICAg
cGFzcwotCi0gICAgQGFkZG1ldGgoKQotICAgIGRlZiBoZV9tZXRob2QxX21pZGRsZSgpOgotICAg
ICAgICBwYXNzCi0KLSAgICBAYWRkbWV0aCgpCi0gICAgZGVmIGhlX21ldGhvZDFfYigpOgotICAg
ICAgICBwYXNzCi0gICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0gWwotICAgICAg
ICBoZV9tZXRob2QxX21pZGRsZSwgaGVfbWV0aG9kMV9iLCBoZV9tZXRob2QxXQotCi0KLWRlZiB0
ZXN0X2FkZGluZ193cmFwcGVyc19vcmRlcmluZyhoYywgYWRkbWV0aCk6Ci0gICAgQGFkZG1ldGgo
aG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYgaGVfbWV0aG9kMSgpOgotICAgICAgICBwYXNzCi0K
LSAgICBAYWRkbWV0aCgpCi0gICAgZGVmIGhlX21ldGhvZDFfbWlkZGxlKCk6Ci0gICAgICAgIHBh
c3MKLQotICAgIEBhZGRtZXRoKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIGhlX21ldGhvZDMo
KToKLSAgICAgICAgcGFzcwotCi0gICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0g
W2hlX21ldGhvZDFfbWlkZGxlXQotICAgIGFzc2VydCBmdW5jcyhoYy5fd3JhcHBlcnMpID09IFto
ZV9tZXRob2QxLCBoZV9tZXRob2QzXQotCi0KLWRlZiB0ZXN0X2FkZGluZ193cmFwcGVyc19vcmRl
cmluZ190cnlmaXJzdChoYywgYWRkbWV0aCk6Ci0gICAgQGFkZG1ldGgoaG9va3dyYXBwZXI9VHJ1
ZSwgdHJ5Zmlyc3Q9VHJ1ZSkKLSAgICBkZWYgaGVfbWV0aG9kMSgpOgotICAgICAgICBwYXNzCi0K
LSAgICBAYWRkbWV0aChob29rd3JhcHBlcj1UcnVlKQotICAgIGRlZiBoZV9tZXRob2QyKCk6Ci0g
ICAgICAgIHBhc3MKLQotICAgIGFzc2VydCBoYy5fbm9ud3JhcHBlcnMgPT0gW10KLSAgICBhc3Nl
cnQgZnVuY3MoaGMuX3dyYXBwZXJzKSA9PSBbaGVfbWV0aG9kMiwgaGVfbWV0aG9kMV0KLQotCi1k
ZWYgdGVzdF9ob29rc3BlYyhwbSk6Ci0gICAgY2xhc3MgSG9va1NwZWMob2JqZWN0KToKLSAgICAg
ICAgQGhvb2tzcGVjKCkKLSAgICAgICAgZGVmIGhlX215aG9vazEoYXJnMSk6Ci0gICAgICAgICAg
ICBwYXNzCi0KLSAgICAgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi0gICAgICAgIGRl
ZiBoZV9teWhvb2syKGFyZzEpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIEBob29rc3Bl
YyhmaXJzdHJlc3VsdD1GYWxzZSkKLSAgICAgICAgZGVmIGhlX215aG9vazMoYXJnMSk6Ci0gICAg
ICAgICAgICBwYXNzCi0KLSAgICBwbS5hZGRfaG9va3NwZWNzKEhvb2tTcGVjKQotICAgIGFzc2Vy
dCBub3QgcG0uaG9vay5oZV9teWhvb2sxLnNwZWNfb3B0c1siZmlyc3RyZXN1bHQiXQotICAgIGFz
c2VydCBwbS5ob29rLmhlX215aG9vazIuc3BlY19vcHRzWyJmaXJzdHJlc3VsdCJdCi0gICAgYXNz
ZXJ0IG5vdCBwbS5ob29rLmhlX215aG9vazMuc3BlY19vcHRzWyJmaXJzdHJlc3VsdCJdCi0KLQot
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCduYW1lJywgWyJob29rd3JhcHBlciIsICJvcHRpb25h
bGhvb2siLCAidHJ5Zmlyc3QiLCAidHJ5bGFzdCJdKQotQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCd2YWwnLCBbVHJ1ZSwgRmFsc2VdKQotZGVmIHRlc3RfaG9va2ltcGwobmFtZSwgdmFsKToKLSAg
ICBAaG9va2ltcGwoKip7bmFtZTogdmFsfSkKLSAgICBkZWYgaGVfbXlob29rMShhcmcxKToKLSAg
ICAgICAgcGFzcwotICAgIGlmIHZhbDoKLSAgICAgICAgYXNzZXJ0IGhlX215aG9vazEuZXhhbXBs
ZV9pbXBsLmdldChuYW1lKQotICAgIGVsc2U6Ci0gICAgICAgIGFzc2VydCBub3QgaGFzYXR0ciho
ZV9teWhvb2sxLCBuYW1lKQotCi0KLWRlZiB0ZXN0X2xvYWRfc2V0dXB0b29sc19pbnN0YW50aWF0
aW9uKG1vbmtleXBhdGNoLCBwbSk6Ci0gICAgcGtnX3Jlc291cmNlcyA9IHB5dGVzdC5pbXBvcnRv
cnNraXAoInBrZ19yZXNvdXJjZXMiKQotCi0gICAgZGVmIG15X2l0ZXIobmFtZSk6Ci0gICAgICAg
IGFzc2VydCBuYW1lID09ICJoZWxsbyIKLQotICAgICAgICBjbGFzcyBFbnRyeVBvaW50KG9iamVj
dCk6Ci0gICAgICAgICAgICBuYW1lID0gIm15bmFtZSIKLSAgICAgICAgICAgIGRpc3QgPSBOb25l
Ci0KLSAgICAgICAgICAgIGRlZiBsb2FkKHNlbGYpOgotICAgICAgICAgICAgICAgIGNsYXNzIFBz
ZXVkb1BsdWdpbihvYmplY3QpOgotICAgICAgICAgICAgICAgICAgICB4ID0gNDIKLSAgICAgICAg
ICAgICAgICByZXR1cm4gUHNldWRvUGx1Z2luKCkKLQotICAgICAgICByZXR1cm4gaXRlcihbRW50
cnlQb2ludCgpXSkKLQotICAgIG1vbmtleXBhdGNoLnNldGF0dHIocGtnX3Jlc291cmNlcywgJ2l0
ZXJfZW50cnlfcG9pbnRzJywgbXlfaXRlcikKLSAgICBudW0gPSBwbS5sb2FkX3NldHVwdG9vbHNf
ZW50cnlwb2ludHMoImhlbGxvIikKLSAgICBhc3NlcnQgbnVtID09IDEKLSAgICBwbHVnaW4gPSBw
bS5nZXRfcGx1Z2luKCJteW5hbWUiKQotICAgIGFzc2VydCBwbHVnaW4ueCA9PSA0MgotICAgIGFz
c2VydCBwbS5saXN0X3BsdWdpbl9kaXN0aW5mbygpID09IFsocGx1Z2luLCBOb25lKV0KLQotCi1k
ZWYgdGVzdF9sb2FkX3NldHVwdG9vbHNfbm90X2luc3RhbGxlZChtb25rZXlwYXRjaCwgcG0pOgot
ICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oCi0gICAgICAgIHN5cy5tb2R1bGVzLCAncGtnX3Jlc291
cmNlcycsCi0gICAgICAgIHR5cGVzLk1vZHVsZVR5cGUoInBrZ19yZXNvdXJjZXMiKSkKLQotICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvcik6Ci0gICAgICAgIHBtLmxvYWRfc2V0dXB0
b29sc19lbnRyeXBvaW50cygicXdlIikKLQotCi1kZWYgdGVzdF9hZGRfdHJhY2VmdW5jcyhoZV9w
bSk6Ci0gICAgb3V0ID0gW10KLQotICAgIGNsYXNzIGFwaTEob2JqZWN0KToKLSAgICAgICAgQGhv
b2tpbXBsCi0gICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYpOgotICAgICAgICAgICAgb3V0LmFw
cGVuZCgiaGVfbWV0aG9kMS1hcGkxIikKLQotICAgIGNsYXNzIGFwaTIob2JqZWN0KToKLSAgICAg
ICAgQGhvb2tpbXBsCi0gICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYpOgotICAgICAgICAgICAg
b3V0LmFwcGVuZCgiaGVfbWV0aG9kMS1hcGkyIikKLQotICAgIGhlX3BtLnJlZ2lzdGVyKGFwaTEo
KSkKLSAgICBoZV9wbS5yZWdpc3RlcihhcGkyKCkpCi0KLSAgICBkZWYgYmVmb3JlKGhvb2tfbmFt
ZSwgaG9va19pbXBscywga3dhcmdzKToKLSAgICAgICAgb3V0LmFwcGVuZCgoaG9va19uYW1lLCBs
aXN0KGhvb2tfaW1wbHMpLCBrd2FyZ3MpKQotCi0gICAgZGVmIGFmdGVyKG91dGNvbWUsIGhvb2tf
bmFtZSwgaG9va19pbXBscywga3dhcmdzKToKLSAgICAgICAgb3V0LmFwcGVuZCgob3V0Y29tZSwg
aG9va19uYW1lLCBsaXN0KGhvb2tfaW1wbHMpLCBrd2FyZ3MpKQotCi0gICAgdW5kbyA9IGhlX3Bt
LmFkZF9ob29rY2FsbF9tb25pdG9yaW5nKGJlZm9yZSwgYWZ0ZXIpCi0KLSAgICBoZV9wbS5ob29r
LmhlX21ldGhvZDEoYXJnPTEpCi0gICAgYXNzZXJ0IGxlbihvdXQpID09IDQKLSAgICBhc3NlcnQg
b3V0WzBdWzBdID09ICJoZV9tZXRob2QxIgotICAgIGFzc2VydCBsZW4ob3V0WzBdWzFdKSA9PSAy
Ci0gICAgYXNzZXJ0IGlzaW5zdGFuY2Uob3V0WzBdWzJdLCBkaWN0KQotICAgIGFzc2VydCBvdXRb
MV0gPT0gImhlX21ldGhvZDEtYXBpMiIKLSAgICBhc3NlcnQgb3V0WzJdID09ICJoZV9tZXRob2Qx
LWFwaTEiCi0gICAgYXNzZXJ0IGxlbihvdXRbM10pID09IDQKLSAgICBhc3NlcnQgb3V0WzNdWzFd
ID09IG91dFswXVswXQotCi0gICAgdW5kbygpCi0gICAgaGVfcG0uaG9vay5oZV9tZXRob2QxKGFy
Zz0xKQotICAgIGFzc2VydCBsZW4ob3V0KSA9PSA0ICsgMgotCi0KLWRlZiB0ZXN0X2hvb2tfdHJh
Y2luZyhoZV9wbSk6Ci0gICAgc2F2ZWluZGVudCA9IFtdCi0KLSAgICBjbGFzcyBhcGkxKG9iamVj
dCk6Ci0gICAgICAgIEBob29raW1wbAotICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmKToKLSAg
ICAgICAgICAgIHNhdmVpbmRlbnQuYXBwZW5kKGhlX3BtLnRyYWNlLnJvb3QuaW5kZW50KQotCi0g
ICAgY2xhc3MgYXBpMihvYmplY3QpOgotICAgICAgICBAaG9va2ltcGwKLSAgICAgICAgZGVmIGhl
X21ldGhvZDEoc2VsZik6Ci0gICAgICAgICAgICBzYXZlaW5kZW50LmFwcGVuZChoZV9wbS50cmFj
ZS5yb290LmluZGVudCkKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQotCi0gICAgaGVf
cG0ucmVnaXN0ZXIoYXBpMSgpKQotICAgIG91dCA9IFtdCi0gICAgaGVfcG0udHJhY2Uucm9vdC5z
ZXR3cml0ZXIob3V0LmFwcGVuZCkKLSAgICB1bmRvID0gaGVfcG0uZW5hYmxlX3RyYWNpbmcoKQot
ICAgIHRyeToKLSAgICAgICAgaW5kZW50ID0gaGVfcG0udHJhY2Uucm9vdC5pbmRlbnQKLSAgICAg
ICAgaGVfcG0uaG9vay5oZV9tZXRob2QxKGFyZz0xKQotICAgICAgICBhc3NlcnQgaW5kZW50ID09
IGhlX3BtLnRyYWNlLnJvb3QuaW5kZW50Ci0gICAgICAgIGFzc2VydCBsZW4ob3V0KSA9PSAyCi0g
ICAgICAgIGFzc2VydCAnaGVfbWV0aG9kMScgaW4gb3V0WzBdCi0gICAgICAgIGFzc2VydCAnZmlu
aXNoJyBpbiBvdXRbMV0KLQotICAgICAgICBvdXRbOl0gPSBbXQotICAgICAgICBoZV9wbS5yZWdp
c3RlcihhcGkyKCkpCi0KLSAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgot
ICAgICAgICAgICAgaGVfcG0uaG9vay5oZV9tZXRob2QxKGFyZz0xKQotICAgICAgICBhc3NlcnQg
aGVfcG0udHJhY2Uucm9vdC5pbmRlbnQgPT0gaW5kZW50Ci0gICAgICAgIGFzc2VydCBzYXZlaW5k
ZW50WzBdID4gaW5kZW50Ci0gICAgZmluYWxseToKLSAgICAgICAgdW5kbygpCi0KLQotQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCdpbmNsdWRlX2hvb2tzcGVjJywgW1RydWUsIEZhbHNlXSkKLWRl
ZiB0ZXN0X3ByZWZpeF9ob29raW1wbChpbmNsdWRlX2hvb2tzcGVjKToKLSAgICBwbSA9IFBsdWdp
bk1hbmFnZXIoaG9va3NwZWMucHJvamVjdF9uYW1lLCAiaGVsbG9fIikKLQotICAgIGlmIGluY2x1
ZGVfaG9va3NwZWM6Ci0gICAgICAgIGNsYXNzIEhvb2tTcGVjKG9iamVjdCk6Ci0gICAgICAgICAg
ICBAaG9va3NwZWMKLSAgICAgICAgICAgIGRlZiBoZWxsb19teWhvb2soc2VsZiwgYXJnMSk6Ci0g
ICAgICAgICAgICAgICAgIiIiIGFkZCB0byBhcmcxICIiIgotCi0gICAgICAgIHBtLmFkZF9ob29r
c3BlY3MoSG9va1NwZWMpCi0KLSAgICBjbGFzcyBQbHVnaW4ob2JqZWN0KToKLSAgICAgICAgZGVm
IGhlbGxvX215aG9vayhzZWxmLCBhcmcxKToKLSAgICAgICAgICAgIHJldHVybiBhcmcxICsgMQot
Ci0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCi0gICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCi0g
ICAgcmVzdWx0cyA9IHBtLmhvb2suaGVsbG9fbXlob29rKGFyZzE9MTcpCi0gICAgYXNzZXJ0IHJl
c3VsdHMgPT0gWzE4LCAxOF0KLQotCi1kZWYgdGVzdF9wcmVmaXhfaG9va2ltcGxfZG9udG1hdGNo
X21vZHVsZSgpOgotICAgIHBtID0gUGx1Z2luTWFuYWdlcihob29rc3BlYy5wcm9qZWN0X25hbWUs
ICJoZWxsb18iKQotCi0gICAgY2xhc3MgQmFkUGx1Z2luKG9iamVjdCk6Ci0gICAgICAgIGhlbGxv
X21vZHVsZSA9IF9faW1wb3J0X18oJ2VtYWlsJykKLQotICAgIHBtLnJlZ2lzdGVyKEJhZFBsdWdp
bigpKQotICAgIHBtLmNoZWNrX3BlbmRpbmcoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVz
dGluZy90ZXN0X211bHRpY2FsbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9tdWx0aWNh
bGwucHkKaW5kZXggODYwYTIwOWI2NjkwZTYxMzhlNzdlODc2ODc3ZDI5YTBiMzY3YjNlNC4uZWFm
NTM0YTAxNjZhNDJlNGY3MjA1YmM4M2MwZjBiZWJhMmU2ODgxOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvdGVzdGluZy90ZXN0X211bHRpY2FsbC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5n
L3Rlc3RfbXVsdGljYWxsLnB5CkBAIC0xLDMwICsxLDIwIEBACiBpbXBvcnQgcHl0ZXN0Ci0KLWZy
b20gcGx1Z2d5IGltcG9ydCBfbXVsdGljYWxsLCBfbGVnYWN5bXVsdGljYWxsLCBIb29rSW1wbCwg
SG9va0NhbGxFcnJvcgotZnJvbSBwbHVnZ3kuY2FsbGVycyBpbXBvcnQgX0xlZ2FjeU11bHRpQ2Fs
bAotZnJvbSBwbHVnZ3kgaW1wb3J0IEhvb2tzcGVjTWFya2VyLCBIb29raW1wbE1hcmtlcgorZnJv
bSBwbHVnZ3kgaW1wb3J0IEhvb2tDYWxsRXJyb3IsIEhvb2tzcGVjTWFya2VyLCBIb29raW1wbE1h
cmtlcgorZnJvbSBwbHVnZ3kuaG9va3MgaW1wb3J0IEhvb2tJbXBsCitmcm9tIHBsdWdneS5jYWxs
ZXJzIGltcG9ydCBfbXVsdGljYWxsLCBfbGVnYWN5bXVsdGljYWxsCiAKIAogaG9va3NwZWMgPSBI
b29rc3BlY01hcmtlcigiZXhhbXBsZSIpCiBob29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJleGFt
cGxlIikKIAogCi1kZWYgdGVzdF91c2VzX2NvcHlfb2ZfbWV0aG9kcygpOgotICAgIG91dCA9IFts
YW1iZGE6IDQyXQotICAgIG1jID0gX0xlZ2FjeU11bHRpQ2FsbChvdXQsIHt9KQotICAgIHJlcHIo
bWMpCi0gICAgb3V0WzpdID0gW10KLSAgICByZXMgPSBtYy5leGVjdXRlKCkKLSAgICByZXR1cm4g
cmVzID09IDQyCi0KLQogZGVmIE1DKG1ldGhvZHMsIGt3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2Up
OgogICAgIGNhbGxlciA9IF9tdWx0aWNhbGwKICAgICBob29rZnVuY3MgPSBbXQogICAgIGZvciBt
ZXRob2QgaW4gbWV0aG9kczoKICAgICAgICAgZiA9IEhvb2tJbXBsKE5vbmUsICI8dGVtcD4iLCBt
ZXRob2QsIG1ldGhvZC5leGFtcGxlX2ltcGwpCiAgICAgICAgIGhvb2tmdW5jcy5hcHBlbmQoZikK
LSAgICAgICAgaWYgJ19fbXVsdGljYWxsX18nIGluIGYuYXJnbmFtZXM6CisgICAgICAgIGlmICJf
X211bHRpY2FsbF9fIiBpbiBmLmFyZ25hbWVzOgogICAgICAgICAgICAgY2FsbGVyID0gX2xlZ2Fj
eW11bHRpY2FsbAogICAgIHJldHVybiBjYWxsZXIoaG9va2Z1bmNzLCBrd2FyZ3MsIGZpcnN0cmVz
dWx0PWZpcnN0cmVzdWx0KQogCkBAIC03MCw2ICs2MCw3IEBAIGRlZiB0ZXN0X2tleXdvcmRfYXJn
c193aXRoX2RlZmF1bHRhcmdzKCk6CiAgICAgQGhvb2tpbXBsCiAgICAgZGVmIGYoeCwgej0xKToK
ICAgICAgICAgcmV0dXJuIHggKyB6CisKICAgICByZXNsaXN0ID0gTUMoW2ZdLCBkaWN0KHg9MjMs
IHk9MjQpKQogICAgIGFzc2VydCByZXNsaXN0ID09IFsyNF0KIApAQCAtNzgsNiArNjksNyBAQCBk
ZWYgdGVzdF90YWdzX2NhbGxfZXJyb3IoKToKICAgICBAaG9va2ltcGwKICAgICBkZWYgZih4KToK
ICAgICAgICAgcmV0dXJuIHgKKwogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhIb29rQ2FsbEVycm9y
KToKICAgICAgICAgTUMoW2ZdLCB7fSkKIApAQCAtMTcyLDcgKzE2NCw3IEBAIGRlZiB0ZXN0X2hv
b2t3cmFwcGVyX3Rvb19tYW55X3lpZWxkKCk6CiAgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRp
bWVFcnJvcikgYXMgZXg6CiAgICAgICAgIE1DKFttMV0sIHt9KQogICAgIGFzc2VydCAibTEiIGlu
IHN0cihleC52YWx1ZSkKLSAgICBhc3NlcnQgKF9fZmlsZV9fICsgJzonKSBpbiBzdHIoZXgudmFs
dWUpCisgICAgYXNzZXJ0IChfX2ZpbGVfXyArICI6IikgaW4gc3RyKGV4LnZhbHVlKQogCiAKIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZXhjIiwgW1ZhbHVlRXJyb3IsIFN5c3RlbUV4aXRdKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfcGx1Z2lubWFuYWdlci5weQppbmRleCBlMmM4NmNjNjQ0
MjZiMTM2OTgwYTg5ODE0YjU2OGViZGI5NmRiODlmLi42NzI2MWFhYTdiYmFlYWZkMjVkMDY2Njc2
Y2ZhYjM4ZWIwNDNiNTZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfcGx1
Z2lubWFuYWdlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfcGx1Z2lubWFuYWdl
ci5weQpAQCAtMSw4ICsxLDE3IEBACisiIiIKK2BgUGx1Z2luTWFuYWdlcmBgIHVuaXQgYW5kIHB1
YmxpYyBBUEkgdGVzdGluZy4KKyIiIgogaW1wb3J0IHB5dGVzdAogaW1wb3J0IHR5cGVzCiAKLWZy
b20gcGx1Z2d5IGltcG9ydCAoUGx1Z2luVmFsaWRhdGlvbkVycm9yLAotICAgICAgICAgICAgICAg
ICAgICBIb29rQ2FsbEVycm9yLCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIpCitmcm9t
IHBsdWdneSBpbXBvcnQgKAorICAgIFBsdWdpbk1hbmFnZXIsCisgICAgUGx1Z2luVmFsaWRhdGlv
bkVycm9yLAorICAgIEhvb2tDYWxsRXJyb3IsCisgICAgSG9va2ltcGxNYXJrZXIsCisgICAgSG9v
a3NwZWNNYXJrZXIsCispCitmcm9tIHBsdWdneS5tYW5hZ2VyIGltcG9ydCBpbXBvcnRsaWJfbWV0
YWRhdGEKIAogCiBob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJleGFtcGxlIikKQEAgLTEwLDYg
KzE5LDcgQEAgaG9va2ltcGwgPSBIb29raW1wbE1hcmtlcigiZXhhbXBsZSIpCiAKIAogZGVmIHRl
c3RfcGx1Z2luX2RvdWJsZV9yZWdpc3RlcihwbSk6CisgICAgIiIiUmVnaXN0ZXJpbmcgdGhlIHNh
bWUgcGx1Z2luIG1vcmUgdGhlbiBvbmNlIGlzbid0IGFsbG93ZWQiIiIKICAgICBwbS5yZWdpc3Rl
cig0MiwgbmFtZT0iYWJjIikKICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CiAg
ICAgICAgIHBtLnJlZ2lzdGVyKDQyLCBuYW1lPSJhYmMiKQpAQCAtMTgsNiArMjgsOCBAQCBkZWYg
dGVzdF9wbHVnaW5fZG91YmxlX3JlZ2lzdGVyKHBtKToKIAogCiBkZWYgdGVzdF9wbShwbSk6Cisg
ICAgIiIiQmFzaWMgcmVnaXN0cmF0aW9uIHdpdGggb2JqZWN0cyIiIgorCiAgICAgY2xhc3MgQShv
YmplY3QpOgogICAgICAgICBwYXNzCiAKQEAgLTI5LDcgKzQxLDcgQEAgZGVmIHRlc3RfcG0ocG0p
OgogICAgIG91dCA9IHBtLmdldF9wbHVnaW5zKCkKICAgICBhc3NlcnQgYTEgaW4gb3V0CiAgICAg
YXNzZXJ0IGEyIGluIG91dAotICAgIGFzc2VydCBwbS5nZXRfcGx1Z2luKCdoZWxsbycpID09IGEy
CisgICAgYXNzZXJ0IHBtLmdldF9wbHVnaW4oImhlbGxvIikgPT0gYTIKICAgICBhc3NlcnQgcG0u
dW5yZWdpc3RlcihhMSkgPT0gYTEKICAgICBhc3NlcnQgbm90IHBtLmlzX3JlZ2lzdGVyZWQoYTEp
CiAKQEAgLTQzLDkgKzU1LDkgQEAgZGVmIHRlc3RfaGFzX3BsdWdpbihwbSk6CiAgICAgICAgIHBh
c3MKIAogICAgIGExID0gQSgpCi0gICAgcG0ucmVnaXN0ZXIoYTEsICdoZWxsbycpCisgICAgcG0u
cmVnaXN0ZXIoYTEsICJoZWxsbyIpCiAgICAgYXNzZXJ0IHBtLmlzX3JlZ2lzdGVyZWQoYTEpCi0g
ICAgYXNzZXJ0IHBtLmhhc19wbHVnaW4oJ2hlbGxvJykKKyAgICBhc3NlcnQgcG0uaGFzX3BsdWdp
bigiaGVsbG8iKQogCiAKIGRlZiB0ZXN0X3JlZ2lzdGVyX2R5bmFtaWNfYXR0cihoZV9wbSk6CkBA
IC0xMDQsOSArMTE2LDEyIEBAIGRlZiB0ZXN0X3JlZ2lzdGVyX21pc21hdGNoX21ldGhvZChoZV9w
bSk6CiAgICAgICAgIGRlZiBoZV9tZXRob2Rfbm90ZXhpc3RzKHNlbGYpOgogICAgICAgICAgICAg
cGFzcwogCi0gICAgaGVfcG0ucmVnaXN0ZXIoaGVsbG8oKSkKLSAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoUGx1Z2luVmFsaWRhdGlvbkVycm9yKToKKyAgICBwbHVnaW4gPSBoZWxsbygpCisKKyAgICBo
ZV9wbS5yZWdpc3RlcihwbHVnaW4pCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFBsdWdpblZhbGlk
YXRpb25FcnJvcikgYXMgZXhjaW5mbzoKICAgICAgICAgaGVfcG0uY2hlY2tfcGVuZGluZygpCisg
ICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUucGx1Z2luIGlzIHBsdWdpbgogCiAKIGRlZiB0ZXN0X3Jl
Z2lzdGVyX21pc21hdGNoX2FyZyhoZV9wbSk6CkBAIC0xMTUsMTMgKzEzMCwxNyBAQCBkZWYgdGVz
dF9yZWdpc3Rlcl9taXNtYXRjaF9hcmcoaGVfcG0pOgogICAgICAgICBkZWYgaGVfbWV0aG9kMShz
ZWxmLCBxbHdramUpOgogICAgICAgICAgICAgcGFzcwogCi0gICAgd2l0aCBweXRlc3QucmFpc2Vz
KFBsdWdpblZhbGlkYXRpb25FcnJvcik6Ci0gICAgICAgIGhlX3BtLnJlZ2lzdGVyKGhlbGxvKCkp
CisgICAgcGx1Z2luID0gaGVsbG8oKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFBsdWdpblZh
bGlkYXRpb25FcnJvcikgYXMgZXhjaW5mbzoKKyAgICAgICAgaGVfcG0ucmVnaXN0ZXIocGx1Z2lu
KQorICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLnBsdWdpbiBpcyBwbHVnaW4KIAogCiBkZWYgdGVz
dF9yZWdpc3RlcihwbSk6CiAgICAgY2xhc3MgTXlQbHVnaW4ob2JqZWN0KToKICAgICAgICAgcGFz
cworCiAgICAgbXkgPSBNeVBsdWdpbigpCiAgICAgcG0ucmVnaXN0ZXIobXkpCiAgICAgYXNzZXJ0
IG15IGluIHBtLmdldF9wbHVnaW5zKCkKQEAgLTE2MCw2ICsxNzksNyBAQCBkZWYgdGVzdF9yZWdp
c3Rlcl9oaXN0b3JpYyhwbSk6CiAgICAgICAgIEBob29rc3BlYyhoaXN0b3JpYz1UcnVlKQogICAg
ICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgogICAgICAgICAgICAgcGFzcworCiAgICAg
cG0uYWRkX2hvb2tzcGVjcyhIb29rcykKIAogICAgIHBtLmhvb2suaGVfbWV0aG9kMS5jYWxsX2hp
c3RvcmljKGt3YXJncz1kaWN0KGFyZz0xKSkKQEAgLTE4NCwyNCArMjA0LDQ4IEBAIGRlZiB0ZXN0
X3JlZ2lzdGVyX2hpc3RvcmljKHBtKToKICAgICBhc3NlcnQgb3V0ID09IFsxLCAxMCwgMTIwLCAx
Ml0KIAogCi1kZWYgdGVzdF93aXRoX3Jlc3VsdF9tZW1vcml6ZWQocG0pOgorQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJyZXN1bHRfY2FsbGJhY2siLCBbVHJ1ZSwgRmFsc2VdKQorZGVmIHRlc3Rf
d2l0aF9yZXN1bHRfbWVtb3JpemVkKHBtLCByZXN1bHRfY2FsbGJhY2spOgorICAgICIiIlZlcmlm
eSB0aGF0IGBgX0hvb2tDYWxsZXIuX21heWJlX2FwcGx5X2hpc3RvcnkoKWAKKyAgICBjb3JyZWN0
bHkgYXBwbGllcyB0aGUgYGByZXN1bHRfY2FsbGJhY2tgYCBmdW5jdGlvbiwgd2hlbiBwcm92aWRl
ZCwKKyAgICB0byB0aGUgcmVzdWx0IGZyb20gY2FsbGluZyBlYWNoIG5ld2x5IHJlZ2lzdGVyZWQg
aG9vay4KKyAgICAiIiIKKyAgICBvdXQgPSBbXQorICAgIGlmIHJlc3VsdF9jYWxsYmFjazoKKwor
ICAgICAgICBkZWYgY2FsbGJhY2socmVzKToKKyAgICAgICAgICAgIG91dC5hcHBlbmQocmVzKQor
CisgICAgZWxzZToKKyAgICAgICAgY2FsbGJhY2sgPSBOb25lCisKICAgICBjbGFzcyBIb29rcyhv
YmplY3QpOgogICAgICAgICBAaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKICAgICAgICAgZGVmIGhl
X21ldGhvZDEoc2VsZiwgYXJnKToKICAgICAgICAgICAgIHBhc3MKKwogICAgIHBtLmFkZF9ob29r
c3BlY3MoSG9va3MpCiAKKyAgICBjbGFzcyBQbHVnaW4xKG9iamVjdCk6CisgICAgICAgIEBob29r
aW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0
dXJuIGFyZyAqIDEwCisKKyAgICBwbS5yZWdpc3RlcihQbHVnaW4xKCkpCisKICAgICBoZV9tZXRo
b2QxID0gcG0uaG9vay5oZV9tZXRob2QxCi0gICAgaGVfbWV0aG9kMS5jYWxsX2hpc3RvcmljKGxh
bWJkYSByZXM6IG91dC5hcHBlbmQocmVzKSwgZGljdChhcmc9MSkpCi0gICAgb3V0ID0gW10KKyAg
ICBoZV9tZXRob2QxLmNhbGxfaGlzdG9yaWMocmVzdWx0X2NhbGxiYWNrPWNhbGxiYWNrLCBrd2Fy
Z3M9ZGljdChhcmc9MSkpCiAKLSAgICBjbGFzcyBQbHVnaW4ob2JqZWN0KToKKyAgICBjbGFzcyBQ
bHVnaW4yKG9iamVjdCk6CiAgICAgICAgIEBob29raW1wbAogICAgICAgICBkZWYgaGVfbWV0aG9k
MShzZWxmLCBhcmcpOgogICAgICAgICAgICAgcmV0dXJuIGFyZyAqIDEwCiAKLSAgICBwbS5yZWdp
c3RlcihQbHVnaW4oKSkKLSAgICBhc3NlcnQgb3V0ID09IFsxMF0KKyAgICBwbS5yZWdpc3RlcihQ
bHVnaW4yKCkpCisgICAgaWYgcmVzdWx0X2NhbGxiYWNrOgorICAgICAgICBhc3NlcnQgb3V0ID09
IFsxMCwgMTBdCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IG91dCA9PSBbXQogCiAKIGRlZiB0
ZXN0X3dpdGhfY2FsbGJhY2tzX2ltbWVkaWF0ZWx5X2V4ZWN1dGVkKHBtKToKQEAgLTIwOSw2ICsy
NTMsNyBAQCBkZWYgdGVzdF93aXRoX2NhbGxiYWNrc19pbW1lZGlhdGVseV9leGVjdXRlZChwbSk6
CiAgICAgICAgIEBob29rc3BlYyhoaXN0b3JpYz1UcnVlKQogICAgICAgICBkZWYgaGVfbWV0aG9k
MShzZWxmLCBhcmcpOgogICAgICAgICAgICAgcGFzcworCiAgICAgcG0uYWRkX2hvb2tzcGVjcyhI
b29rcykKIAogICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0KToKQEAgLTI4Myw2ICszMjgsNyBAQCBk
ZWYgdGVzdF9jYWxsX3dpdGhfdG9vX2Zld19hcmdzKHBtKToKICAgICAgICAgQGhvb2tpbXBsCiAg
ICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CiAgICAgICAgICAgICAwIC8gMAorCiAg
ICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKQogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhIb29rQ2Fs
bEVycm9yKToKICAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoVXNlcldhcm5pbmcpOgpAQCAtMzM5
LDEzICszODUsMzYgQEAgZGVmIHRlc3Rfc3Vic2V0X2hvb2tfY2FsbGVyKHBtKToKICAgICBhc3Nl
cnQgb3V0ID09IFsxMF0KIAogCi1kZWYgdGVzdF9tdWx0aWNhbGxfZGVwcmVjYXRlZChwbSk6Ci0g
ICAgY2xhc3MgUDEob2JqZWN0KToKK2RlZiB0ZXN0X2dldF9ob29raW1wbHMocG0pOgorICAgIGNs
YXNzIEhvb2tzKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYworICAgICAgICBkZWYgaGVfbWV0
aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcGFzcworCisgICAgcG0uYWRkX2hvb2tzcGVj
cyhIb29rcykKKyAgICBhc3NlcnQgcG0uaG9vay5oZV9tZXRob2QxLmdldF9ob29raW1wbHMoKSA9
PSBbXQorCisgICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgogICAgICAgICBAaG9va2ltcGwKLSAg
ICAgICAgZGVmIG0oc2VsZiwgX19tdWx0aWNhbGxfXywgeCk6CisgICAgICAgIGRlZiBoZV9tZXRo
b2QxKHNlbGYsIGFyZyk6CiAgICAgICAgICAgICBwYXNzCiAKLSAgICBweXRlc3QuZGVwcmVjYXRl
ZF9jYWxsKHBtLnJlZ2lzdGVyLCBQMSgpKQorICAgIGNsYXNzIFBsdWdpbjIob2JqZWN0KToKKyAg
ICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CisgICAg
ICAgICAgICBwYXNzCisKKyAgICBjbGFzcyBQbHVnaW5ObyhvYmplY3QpOgorICAgICAgICBwYXNz
CisKKyAgICBwbHVnaW4xLCBwbHVnaW4yLCBwbHVnaW4zID0gUGx1Z2luMSgpLCBQbHVnaW4yKCks
IFBsdWdpbk5vKCkKKyAgICBwbS5yZWdpc3RlcihwbHVnaW4xKQorICAgIHBtLnJlZ2lzdGVyKHBs
dWdpbjIpCisgICAgcG0ucmVnaXN0ZXIocGx1Z2luMykKKworICAgIGhvb2tpbXBscyA9IHBtLmhv
b2suaGVfbWV0aG9kMS5nZXRfaG9va2ltcGxzKCkKKyAgICBob29rX3BsdWdpbnMgPSBbaXRlbS5w
bHVnaW4gZm9yIGl0ZW0gaW4gaG9va2ltcGxzXQorICAgIGFzc2VydCBob29rX3BsdWdpbnMgPT0g
W3BsdWdpbjEsIHBsdWdpbjJdCiAKIAogZGVmIHRlc3RfYWRkX2hvb2tzcGVjc19ub2hvb2tzKHBt
KToKQEAgLTM1OCwxNyArNDI3LDE3NCBAQCBkZWYgdGVzdF9yZWplY3RfcHJlZml4ZWRfbW9kdWxl
KHBtKToKICAgICBwcmVmaXggaW4gaXRzIG5hbWUgKGluIHRoaXMgY2FzZSBgJ2V4YW1wbGVfKidg
IGlzbid0IGNvbGxlY3RlZAogICAgIHdoZW4gcmVnaXN0ZXJpbmcgYSBtb2R1bGUgd2hpY2ggaW1w
b3J0cyBpdC4KICAgICAiIiIKLSAgICBwbS5faW1wbHByZWZpeCA9ICdleGFtcGxlJworICAgIHBt
Ll9pbXBscHJlZml4ID0gImV4YW1wbGUiCiAgICAgY29uZnRlc3QgPSB0eXBlcy5Nb2R1bGVUeXBl
KCJjb25mdGVzdCIpCi0gICAgc3JjID0gKCIiIgorICAgIHNyYyA9ICIiIgogZGVmIGV4YW1wbGVf
aG9vaygpOgogICAgIHBhc3MKLSIiIikKKyIiIgogICAgIGV4ZWMoc3JjLCBjb25mdGVzdC5fX2Rp
Y3RfXykKICAgICBjb25mdGVzdC5leGFtcGxlX2JsYWggPSB0eXBlcy5Nb2R1bGVUeXBlKCJleGFt
cGxlX2JsYWgiKQotICAgIG5hbWUgPSBwbS5yZWdpc3Rlcihjb25mdGVzdCkKLSAgICBhc3NlcnQg
bmFtZSA9PSAnY29uZnRlc3QnCi0gICAgYXNzZXJ0IGdldGF0dHIocG0uaG9vaywgJ2V4YW1wbGVf
YmxhaCcsIE5vbmUpIGlzIE5vbmUKLSAgICBhc3NlcnQgZ2V0YXR0cihwbS5ob29rLCAnZXhhbXBs
ZV9ob29rJywgTm9uZSkgICMgY29uZnRlc3QuZXhhbXBsZV9ob29rIHNob3VsZCBiZSBjb2xsZWN0
ZWQKLSAgICBhc3NlcnQgcG0ucGFyc2VfaG9va2ltcGxfb3B0cyhjb25mdGVzdCwgJ2V4YW1wbGVf
YmxhaCcpIGlzIE5vbmUKLSAgICBhc3NlcnQgcG0ucGFyc2VfaG9va2ltcGxfb3B0cyhjb25mdGVz
dCwgJ2V4YW1wbGVfaG9vaycpID09IHt9CisgICAgd2l0aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxs
KCk6CisgICAgICAgIG5hbWUgPSBwbS5yZWdpc3Rlcihjb25mdGVzdCkKKyAgICBhc3NlcnQgbmFt
ZSA9PSAiY29uZnRlc3QiCisgICAgYXNzZXJ0IGdldGF0dHIocG0uaG9vaywgImV4YW1wbGVfYmxh
aCIsIE5vbmUpIGlzIE5vbmUKKyAgICBhc3NlcnQgZ2V0YXR0cigKKyAgICAgICAgcG0uaG9vaywg
ImV4YW1wbGVfaG9vayIsIE5vbmUKKyAgICApICAjIGNvbmZ0ZXN0LmV4YW1wbGVfaG9vayBzaG91
bGQgYmUgY29sbGVjdGVkCisgICAgd2l0aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CisgICAg
ICAgIGFzc2VydCBwbS5wYXJzZV9ob29raW1wbF9vcHRzKGNvbmZ0ZXN0LCAiZXhhbXBsZV9ibGFo
IikgaXMgTm9uZQorICAgICAgICBhc3NlcnQgcG0ucGFyc2VfaG9va2ltcGxfb3B0cyhjb25mdGVz
dCwgImV4YW1wbGVfaG9vayIpID09IHt9CisKKworZGVmIHRlc3RfbG9hZF9zZXR1cHRvb2xzX2lu
c3RhbnRpYXRpb24obW9ua2V5cGF0Y2gsIHBtKToKKyAgICBjbGFzcyBFbnRyeVBvaW50KG9iamVj
dCk6CisgICAgICAgIG5hbWUgPSAibXluYW1lIgorICAgICAgICBncm91cCA9ICJoZWxsbyIKKyAg
ICAgICAgdmFsdWUgPSAibXluYW1lOmZvbyIKKworICAgICAgICBkZWYgbG9hZChzZWxmKToKKyAg
ICAgICAgICAgIGNsYXNzIFBzZXVkb1BsdWdpbihvYmplY3QpOgorICAgICAgICAgICAgICAgIHgg
PSA0MgorCisgICAgICAgICAgICByZXR1cm4gUHNldWRvUGx1Z2luKCkKKworICAgIGNsYXNzIERp
c3RyaWJ1dGlvbihvYmplY3QpOgorICAgICAgICBlbnRyeV9wb2ludHMgPSAoRW50cnlQb2ludCgp
LCkKKworICAgIGRpc3QgPSBEaXN0cmlidXRpb24oKQorCisgICAgZGVmIG15X2Rpc3RyaWJ1dGlv
bnMoKToKKyAgICAgICAgcmV0dXJuIChkaXN0LCkKKworICAgIG1vbmtleXBhdGNoLnNldGF0dHIo
aW1wb3J0bGliX21ldGFkYXRhLCAiZGlzdHJpYnV0aW9ucyIsIG15X2Rpc3RyaWJ1dGlvbnMpCisg
ICAgbnVtID0gcG0ubG9hZF9zZXR1cHRvb2xzX2VudHJ5cG9pbnRzKCJoZWxsbyIpCisgICAgYXNz
ZXJ0IG51bSA9PSAxCisgICAgcGx1Z2luID0gcG0uZ2V0X3BsdWdpbigibXluYW1lIikKKyAgICBh
c3NlcnQgcGx1Z2luLnggPT0gNDIKKyAgICByZXQgPSBwbS5saXN0X3BsdWdpbl9kaXN0aW5mbygp
CisgICAgIyBwb29yIG1hbidzIGBhc3NlcnQgcmV0ID09IFsocGx1Z2luLCBtb2NrLkFOWSldYAor
ICAgIGFzc2VydCBsZW4ocmV0KSA9PSAxCisgICAgYXNzZXJ0IGxlbihyZXRbMF0pID09IDIKKyAg
ICBhc3NlcnQgcmV0WzBdWzBdID09IHBsdWdpbgorICAgIGFzc2VydCByZXRbMF1bMV0uX2Rpc3Qg
PT0gZGlzdAorICAgIG51bSA9IHBtLmxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50cygiaGVsbG8i
KQorICAgIGFzc2VydCBudW0gPT0gMCAgIyBubyBwbHVnaW4gbG9hZGVkIGJ5IHRoaXMgY2FsbAor
CisKK2RlZiB0ZXN0X2FkZF90cmFjZWZ1bmNzKGhlX3BtKToKKyAgICBvdXQgPSBbXQorCisgICAg
Y2xhc3MgYXBpMShvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlX21l
dGhvZDEoc2VsZik6CisgICAgICAgICAgICBvdXQuYXBwZW5kKCJoZV9tZXRob2QxLWFwaTEiKQor
CisgICAgY2xhc3MgYXBpMihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVm
IGhlX21ldGhvZDEoc2VsZik6CisgICAgICAgICAgICBvdXQuYXBwZW5kKCJoZV9tZXRob2QxLWFw
aTIiKQorCisgICAgaGVfcG0ucmVnaXN0ZXIoYXBpMSgpKQorICAgIGhlX3BtLnJlZ2lzdGVyKGFw
aTIoKSkKKworICAgIGRlZiBiZWZvcmUoaG9va19uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpOgor
ICAgICAgICBvdXQuYXBwZW5kKChob29rX25hbWUsIGxpc3QoaG9va19pbXBscyksIGt3YXJncykp
CisKKyAgICBkZWYgYWZ0ZXIob3V0Y29tZSwgaG9va19uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3Mp
OgorICAgICAgICBvdXQuYXBwZW5kKChvdXRjb21lLCBob29rX25hbWUsIGxpc3QoaG9va19pbXBs
cyksIGt3YXJncykpCisKKyAgICB1bmRvID0gaGVfcG0uYWRkX2hvb2tjYWxsX21vbml0b3Jpbmco
YmVmb3JlLCBhZnRlcikKKworICAgIGhlX3BtLmhvb2suaGVfbWV0aG9kMShhcmc9MSkKKyAgICBh
c3NlcnQgbGVuKG91dCkgPT0gNAorICAgIGFzc2VydCBvdXRbMF1bMF0gPT0gImhlX21ldGhvZDEi
CisgICAgYXNzZXJ0IGxlbihvdXRbMF1bMV0pID09IDIKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShv
dXRbMF1bMl0sIGRpY3QpCisgICAgYXNzZXJ0IG91dFsxXSA9PSAiaGVfbWV0aG9kMS1hcGkyIgor
ICAgIGFzc2VydCBvdXRbMl0gPT0gImhlX21ldGhvZDEtYXBpMSIKKyAgICBhc3NlcnQgbGVuKG91
dFszXSkgPT0gNAorICAgIGFzc2VydCBvdXRbM11bMV0gPT0gb3V0WzBdWzBdCisKKyAgICB1bmRv
KCkKKyAgICBoZV9wbS5ob29rLmhlX21ldGhvZDEoYXJnPTEpCisgICAgYXNzZXJ0IGxlbihvdXQp
ID09IDQgKyAyCisKKworZGVmIHRlc3RfaG9va190cmFjaW5nKGhlX3BtKToKKyAgICBzYXZlaW5k
ZW50ID0gW10KKworICAgIGNsYXNzIGFwaTEob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisg
ICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYpOgorICAgICAgICAgICAgc2F2ZWluZGVudC5hcHBl
bmQoaGVfcG0udHJhY2Uucm9vdC5pbmRlbnQpCisKKyAgICBjbGFzcyBhcGkyKG9iamVjdCk6Cisg
ICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmKToKKyAgICAgICAg
ICAgIHNhdmVpbmRlbnQuYXBwZW5kKGhlX3BtLnRyYWNlLnJvb3QuaW5kZW50KQorICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigpCisKKyAgICBoZV9wbS5yZWdpc3RlcihhcGkxKCkpCisgICAg
b3V0ID0gW10KKyAgICBoZV9wbS50cmFjZS5yb290LnNldHdyaXRlcihvdXQuYXBwZW5kKQorICAg
IHVuZG8gPSBoZV9wbS5lbmFibGVfdHJhY2luZygpCisgICAgdHJ5OgorICAgICAgICBpbmRlbnQg
PSBoZV9wbS50cmFjZS5yb290LmluZGVudAorICAgICAgICBoZV9wbS5ob29rLmhlX21ldGhvZDEo
YXJnPTEpCisgICAgICAgIGFzc2VydCBpbmRlbnQgPT0gaGVfcG0udHJhY2Uucm9vdC5pbmRlbnQK
KyAgICAgICAgYXNzZXJ0IGxlbihvdXQpID09IDIKKyAgICAgICAgYXNzZXJ0ICJoZV9tZXRob2Qx
IiBpbiBvdXRbMF0KKyAgICAgICAgYXNzZXJ0ICJmaW5pc2giIGluIG91dFsxXQorCisgICAgICAg
IG91dFs6XSA9IFtdCisgICAgICAgIGhlX3BtLnJlZ2lzdGVyKGFwaTIoKSkKKworICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBoZV9wbS5ob29rLmhl
X21ldGhvZDEoYXJnPTEpCisgICAgICAgIGFzc2VydCBoZV9wbS50cmFjZS5yb290LmluZGVudCA9
PSBpbmRlbnQKKyAgICAgICAgYXNzZXJ0IHNhdmVpbmRlbnRbMF0gPiBpbmRlbnQKKyAgICBmaW5h
bGx5OgorICAgICAgICB1bmRvKCkKKworCitkZWYgdGVzdF9pbXBscHJlZml4X3dhcm5pbmcocmVj
d2Fybik6CisgICAgUGx1Z2luTWFuYWdlcihob29rc3BlYy5wcm9qZWN0X25hbWUsICJoZWxsb18i
KQorICAgIHcgPSByZWN3YXJuLnBvcChEZXByZWNhdGlvbldhcm5pbmcpCisgICAgYXNzZXJ0ICJ0
ZXN0X3BsdWdpbm1hbmFnZXIucHkiIGluIHcuZmlsZW5hbWUKKworCitAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoImluY2x1ZGVfaG9va3NwZWMiLCBbVHJ1ZSwgRmFsc2VdKQorZGVmIHRlc3RfcHJl
Zml4X2hvb2tpbXBsKGluY2x1ZGVfaG9va3NwZWMpOgorICAgIHdpdGggcHl0ZXN0LmRlcHJlY2F0
ZWRfY2FsbCgpOgorICAgICAgICBwbSA9IFBsdWdpbk1hbmFnZXIoaG9va3NwZWMucHJvamVjdF9u
YW1lLCAiaGVsbG9fIikKKworICAgIGlmIGluY2x1ZGVfaG9va3NwZWM6CisKKyAgICAgICAgY2xh
c3MgSG9va1NwZWMob2JqZWN0KToKKyAgICAgICAgICAgIEBob29rc3BlYworICAgICAgICAgICAg
ZGVmIGhlbGxvX215aG9vayhzZWxmLCBhcmcxKToKKyAgICAgICAgICAgICAgICAiIiIgYWRkIHRv
IGFyZzEgIiIiCisKKyAgICAgICAgcG0uYWRkX2hvb2tzcGVjcyhIb29rU3BlYykKKworICAgIGNs
YXNzIFBsdWdpbihvYmplY3QpOgorICAgICAgICBkZWYgaGVsbG9fbXlob29rKHNlbGYsIGFyZzEp
OgorICAgICAgICAgICAgcmV0dXJuIGFyZzEgKyAxCisKKyAgICB3aXRoIHB5dGVzdC5kZXByZWNh
dGVkX2NhbGwoKToKKyAgICAgICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCisgICAgICAgIHBtLnJl
Z2lzdGVyKFBsdWdpbigpKQorICAgIHJlc3VsdHMgPSBwbS5ob29rLmhlbGxvX215aG9vayhhcmcx
PTE3KQorICAgIGFzc2VydCByZXN1bHRzID09IFsxOCwgMThdCisKKworZGVmIHRlc3RfcHJlZml4
X2hvb2tpbXBsX2RvbnRtYXRjaF9tb2R1bGUoKToKKyAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVk
X2NhbGwoKToKKyAgICAgICAgcG0gPSBQbHVnaW5NYW5hZ2VyKGhvb2tzcGVjLnByb2plY3RfbmFt
ZSwgImhlbGxvXyIpCisKKyAgICBjbGFzcyBCYWRQbHVnaW4ob2JqZWN0KToKKyAgICAgICAgaGVs
bG9fbW9kdWxlID0gX19pbXBvcnRfXygiZW1haWwiKQorCisgICAgcG0ucmVnaXN0ZXIoQmFkUGx1
Z2luKCkpCisgICAgcG0uY2hlY2tfcGVuZGluZygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90
ZXN0aW5nL3Rlc3RfdHJhY2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3RyYWNlci5w
eQppbmRleCA0YTNlMTZjZWM0MzYzOGNkMDM2MmJkOTQ5ZDQzZDI1OTA5ZDk2ZWY5Li45OTJlYzY3
OTE0OWI1ZDI2ZjY4YTI3MzRjZWRiYzZkZWJkZDkzNTJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS90ZXN0aW5nL3Rlc3RfdHJhY2VyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF90
cmFjZXIucHkKQEAgLTEsOSArMSwxNCBAQAorZnJvbSBwbHVnZ3kuX3RyYWNpbmcgaW1wb3J0IFRh
Z1RyYWNlcgogCi1mcm9tIHBsdWdneSBpbXBvcnQgX1RhZ1RyYWNlcgoraW1wb3J0IHB5dGVzdAog
CiAKLWRlZiB0ZXN0X3NpbXBsZSgpOgotICAgIHJvb3Rsb2dnZXIgPSBfVGFnVHJhY2VyKCkKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIHJvb3Rsb2dnZXIoKToKKyAgICByZXR1cm4gVGFnVHJhY2VyKCkK
KworCitkZWYgdGVzdF9zaW1wbGUocm9vdGxvZ2dlcik6CiAgICAgbG9nID0gcm9vdGxvZ2dlci5n
ZXQoInB5dGVzdCIpCiAgICAgbG9nKCJoZWxsbyIpCiAgICAgb3V0ID0gW10KQEAgLTE2LDggKzIx
LDcgQEAgZGVmIHRlc3Rfc2ltcGxlKCk6CiAgICAgYXNzZXJ0IG91dFsxXSA9PSAiaGVsbG8gW3B5
dGVzdDpjb2xsZWN0aW9uXVxuIgogCiAKLWRlZiB0ZXN0X2luZGVudCgpOgotICAgIHJvb3Rsb2dn
ZXIgPSBfVGFnVHJhY2VyKCkKK2RlZiB0ZXN0X2luZGVudChyb290bG9nZ2VyKToKICAgICBsb2cg
PSByb290bG9nZ2VyLmdldCgiMSIpCiAgICAgb3V0ID0gW10KICAgICBsb2cucm9vdC5zZXR3cml0
ZXIobGFtYmRhIGFyZzogb3V0LmFwcGVuZChhcmcpKQpAQCAtMzMsMjcgKzM3LDI4IEBAIGRlZiB0
ZXN0X2luZGVudCgpOgogICAgIGxvZy5yb290LmluZGVudCAtPSAxCiAgICAgbG9nKCJsYXN0IikK
ICAgICBhc3NlcnQgbGVuKG91dCkgPT0gNwotICAgIG5hbWVzID0gW3hbOngucmZpbmQoJyBbJyld
IGZvciB4IGluIG91dF0KKyAgICBuYW1lcyA9IFt4WzogeC5yZmluZCgiIFsiKV0gZm9yIHggaW4g
b3V0XQogICAgIGFzc2VydCBuYW1lcyA9PSBbCi0gICAgICAgICdoZWxsbycsICcgIGxpbmUxJywg
JyAgbGluZTInLAotICAgICAgICAnICAgIGxpbmUzJywgJyAgICBsaW5lNCcsICcgIGxpbmU1Jywg
J2xhc3QnXQorICAgICAgICAiaGVsbG8iLAorICAgICAgICAiICBsaW5lMSIsCisgICAgICAgICIg
IGxpbmUyIiwKKyAgICAgICAgIiAgICBsaW5lMyIsCisgICAgICAgICIgICAgbGluZTQiLAorICAg
ICAgICAiICBsaW5lNSIsCisgICAgICAgICJsYXN0IiwKKyAgICBdCiAKIAotZGVmIHRlc3RfcmVh
ZGFibGVfb3V0cHV0X2RpY3RhcmdzKCk6Ci0gICAgcm9vdGxvZ2dlciA9IF9UYWdUcmFjZXIoKQor
ZGVmIHRlc3RfcmVhZGFibGVfb3V0cHV0X2RpY3RhcmdzKHJvb3Rsb2dnZXIpOgogCi0gICAgb3V0
ID0gcm9vdGxvZ2dlci5mb3JtYXRfbWVzc2FnZShbJ3Rlc3QnXSwgWzFdKQotICAgIGFzc2VydCBv
dXQgPT0gWycxIFt0ZXN0XVxuJ10KKyAgICBvdXQgPSByb290bG9nZ2VyLl9mb3JtYXRfbWVzc2Fn
ZShbInRlc3QiXSwgWzFdKQorICAgIGFzc2VydCBvdXQgPT0gIjEgW3Rlc3RdXG4iCiAKLSAgICBv
dXQyID0gcm9vdGxvZ2dlci5mb3JtYXRfbWVzc2FnZShbJ3Rlc3QnXSwgWyd0ZXN0JywgeydhJzog
MX1dKQotICAgIGFzc2VydCBvdXQyID09IFsKLSAgICAgICAgJ3Rlc3QgW3Rlc3RdXG4nLAotICAg
ICAgICAnICAgIGE6IDFcbicKLSAgICBdCisgICAgb3V0MiA9IHJvb3Rsb2dnZXIuX2Zvcm1hdF9t
ZXNzYWdlKFsidGVzdCJdLCBbInRlc3QiLCB7ImEiOiAxfV0pCisgICAgYXNzZXJ0IG91dDIgPT0g
InRlc3QgW3Rlc3RdXG4gICAgYTogMVxuIgogCiAKLWRlZiB0ZXN0X3NldHByb2Nlc3NvcigpOgot
ICAgIHJvb3Rsb2dnZXIgPSBfVGFnVHJhY2VyKCkKK2RlZiB0ZXN0X3NldHByb2Nlc3Nvcihyb290
bG9nZ2VyKToKICAgICBsb2cgPSByb290bG9nZ2VyLmdldCgiMSIpCiAgICAgbG9nMiA9IGxvZy5n
ZXQoIjIiKQogICAgIGFzc2VydCBsb2cyLnRhZ3MgPT0gdHVwbGUoIjEyIikKQEAgLTcxLDE5ICs3
NiwzIEBAIGRlZiB0ZXN0X3NldHByb2Nlc3NvcigpOgogICAgIGxvZzIoInNlZW4iKQogICAgIHRh
Z3MsIGFyZ3MgPSBsMlswXQogICAgIGFzc2VydCBhcmdzID09ICgic2VlbiIsKQotCi0KLWRlZiB0
ZXN0X3NldG15cHJvY2Vzc29yKCk6Ci0gICAgcm9vdGxvZ2dlciA9IF9UYWdUcmFjZXIoKQotICAg
IGxvZyA9IHJvb3Rsb2dnZXIuZ2V0KCIxIikKLSAgICBsb2cyID0gbG9nLmdldCgiMiIpCi0gICAg
b3V0ID0gW10KLSAgICBsb2cyLnNldG15cHJvY2Vzc29yKGxhbWJkYSAqYXJnczogb3V0LmFwcGVu
ZChhcmdzKSkKLSAgICBsb2coIm5vdCBzZWVuIikKLSAgICBhc3NlcnQgbm90IG91dAotICAgIGxv
ZzIoNDIpCi0gICAgYXNzZXJ0IGxlbihvdXQpID09IDEKLSAgICB0YWdzLCBhcmdzID0gb3V0WzBd
Ci0gICAgYXNzZXJ0ICIxIiBpbiB0YWdzCi0gICAgYXNzZXJ0ICIyIiBpbiB0YWdzCi0gICAgYXNz
ZXJ0IGFyZ3MgPT0gKDQyLCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3czYy1pbXBvcnQubG9nCmluZGV4IDg0YmRi
YzExZDk1NTI5ZWUxNmRlYWIwNWM3MTdmNGM4YzAzYjBhNjIuLjg5NmExYmZjMjRmMjIzZTBjNTgx
MGRlMjYyOWU0ZGEzMjk1ODFjNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdzNj
LWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy93M2MtaW1wb3J0LmxvZwpAQCAt
MTYsMTAgKzE2LDExIEBAIE5vbmUKIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGlu
Zy9iZW5jaG1hcmsucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2NvbmZ0ZXN0LnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvdGVzdGluZy90ZXN0X2RlcHJlY2F0aW9ucy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rpbmcv
dGVzdF9kZXRhaWxzLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hlbHBlcnMucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfaG9va3JlbGF5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGlu
Zy90ZXN0X21ldGhvZF9vcmRlcmluZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9ob29r
Y2FsbGVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2ludm9jYXRpb25zLnB5CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvdGVzdGluZy90ZXN0X211bHRpY2FsbC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rpbmcv
dGVzdF9wbHVnaW5tYW5hZ2VyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3RyYWNlci5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3RveC5pbmkK
aW5kZXggODlkNDRlMzUyZGJhNDJmNzI2MTFmMGVlY2UwNmY2MzM2ZWE5ODFlYS4uMWE0ZTNmNTI4
ODM1ZGIxN2ViNzJlNGJmM2FhOTI5NDllMzcyZmZlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
dG94LmluaQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90b3guaW5pCkBAIC0xLDQ0ICsxLDU4IEBACiBbdG94
XQotZW52bGlzdD1jaGVjayxkb2NzLHB5ezI3LDM0LDM1LDM2LHB5fS1weXRlc3RyZWxlYXNlLHB5
ezI3LDM2fS1weXRlc3R7bWFzdGVyLGZlYXR1cmVzfQorZW52bGlzdD1saW50aW5nLGRvY3MscHl7
MjcsMzQsMzUsMzYsMzcsMzgscHkscHkzfSxweXszNiwzN30tcHl0ZXN0e21hc3RlcixmZWF0dXJl
c30KIAogW3Rlc3RlbnZdCi1jb21tYW5kcz1weS50ZXN0IHtwb3NhcmdzOnRlc3RpbmcvfQorY29t
bWFuZHM9CisgIHtlbnY6X1BMVUdHWV9UT1hfQ01EOnB5dGVzdH0ge3Bvc2FyZ3N9CisgIGNvdmVy
YWdlOiBjb3ZlcmFnZSByZXBvcnQgLW0KKyAgY292ZXJhZ2U6IGNvdmVyYWdlIHhtbAogc2V0ZW52
PQogICBfUFlURVNUX1NFVFVQX1NLSVBfUExVR0dZX0RFUD0xCisgIGNvdmVyYWdlOiBfUExVR0dZ
X1RPWF9DTUQ9Y292ZXJhZ2UgcnVuIC1tIHB5dGVzdAorICBweXRlc3RtYXN0ZXI6IF9QWVRFU1Rf
REVQPWdpdCtodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QuZ2l0QG1hc3Rlcgor
ICBweXRlc3RmZWF0dXJlczogX1BZVEVTVF9ERVA9Z2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC5naXRAZmVhdHVyZXMKIGRlcHM9Ci0gIHB5dGVzdHJlbGVhc2U6IHB5dGVz
dAotICBweXRlc3RtYXN0ZXI6IGdpdCtodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QuZ2l0QG1hc3RlcgotICBweXRlc3RmZWF0dXJlczogZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC5naXRAZmVhdHVyZXMKKyAgY292ZXJhZ2U6IGNvdmVyYWdlCisgIHtl
bnY6X1BZVEVTVF9ERVA6cHl0ZXN0fQogCiBbdGVzdGVudjpiZW5jaG1hcmtdCi1jb21tYW5kcz1w
eS50ZXN0IHtwb3NhcmdzOnRlc3RpbmcvYmVuY2htYXJrLnB5fQorY29tbWFuZHM9cHl0ZXN0IHtw
b3NhcmdzOnRlc3RpbmcvYmVuY2htYXJrLnB5fQogZGVwcz0KICAgcHl0ZXN0CiAgIHB5dGVzdC1i
ZW5jaG1hcmsKIAotW3Rlc3RlbnY6Y2hlY2tdCi1kZXBzID0KLSAgZmxha2U4Ci0gIHJlc3RydWN0
dXJlZHRleHRfbGludAotICBweWdtZW50cwotY29tbWFuZHMgPQotICBmbGFrZTggcGx1Z2d5LnB5
IHNldHVwLnB5IHRlc3RpbmcKLSAgcnN0LWxpbnQgQ0hBTkdFTE9HLnJzdCBSRUFETUUucnN0Citb
dGVzdGVudjpsaW50aW5nXQorc2tpcF9pbnN0YWxsID0gdHJ1ZQorYmFzZXB5dGhvbiA9IHB5dGhv
bjMuNgorZGVwcyA9IHByZS1jb21taXQKK2NvbW1hbmRzID0gcHJlLWNvbW1pdCBydW4gLS1hbGwt
ZmlsZXMgLS1zaG93LWRpZmYtb24tZmFpbHVyZQogCiBbdGVzdGVudjpkb2NzXQogZGVwcyA9CiAg
IHNwaGlueAogICBweWdtZW50cwogY29tbWFuZHMgPQotICBzcGhpbngtYnVpbGQgLWIgaHRtbCB7
dG94aW5pZGlyfS9kb2NzIHt0b3hpbmlkaXJ9L2J1aWxkL2h0bWwtZG9jcworICBzcGhpbngtYnVp
bGQgLVcgLWIgaHRtbCB7dG94aW5pZGlyfS9kb2NzIHt0b3hpbmlkaXJ9L2J1aWxkL2h0bWwtZG9j
cwogCiBbcHl0ZXN0XQogbWludmVyc2lvbj0yLjAKK3Rlc3RwYXRocyA9IHRlc3RpbmcKICMtLXB5
YXJncyAtLWRvY3Rlc3QtbW9kdWxlcyAtLWlnbm9yZT0udG94Ci1hZGRvcHRzPS1yeHNYCi1ub3Jl
Y3Vyc2VkaXJzPS50b3ggamEgLmhnIC5lbnYqCithZGRvcHRzPS1yIGEKIGZpbHRlcndhcm5pbmdz
ID0KICAgZXJyb3IKIAogW2ZsYWtlOF0KIG1heC1saW5lLWxlbmd0aD05OQorCitbdGVzdGVudjpy
ZWxlYXNlXQorZGVjcmlwdGlvbiA9IGRvIGEgcmVsZWFzZSwgcmVxdWlyZWQgcG9zYXJnIG9mIHRo
ZSB2ZXJzaW9uIG51bWJlcgorYmFzZXB5dGhvbiA9IHB5dGhvbjMKK3NraXBzZGlzdCA9IFRydWUK
K3VzZWRldmVsb3AgPSBUcnVlCitwYXNzZW52ID0gKgorZGVwcyA9CisgICAgY29sb3JhbWEKKyAg
ICBnaXRweXRob24KKyAgICB0b3duY3JpZXIKK2NvbW1hbmRzID0gcHl0aG9uIHNjcmlwdHMvcmVs
ZWFzZS5weSB7cG9zYXJnc30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvdzNjLWltcG9ydC5sb2cKaW5kZXggY2MxZTU5YzFhMjVmODRhNzFmZWNk
ZTIxNzQ1YjY4NmQ0OWJiMzViNS4uZDMxMDUzYWU2NDllYTM4MGVhYThjM2IyODU3NTE5MDkyYzM4
ZTU4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDEwICsxNSwxMiBAQCBOb25lCiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvQ0hBTkdFTE9HLnJzdAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L0hPV1RPUkVMRUFTRS5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9MSUNFTlNFCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvTUFOSUZFU1QuaW4KIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9SRUFETUUucnN0CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvYXBw
dmV5b3IueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcHlwcm9qZWN0LnRvbWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1
cC5jZmcKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1cC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3RveC5pbmkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvRlVORElORy55bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0
aHViL0ZVTkRJTkcueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzMDc0NDVlYmJkZTYxMTY5MWQyM2YwNzA4MjU4
YmIyZTI4OWM4MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL0ZVTkRJ
TkcueW1sCkBAIC0wLDAgKzEsNCBAQAorIyBpbmZvOgorIyAqIGh0dHBzOi8vaGVscC5naXRodWIu
Y29tL2VuL2FydGljbGVzL2Rpc3BsYXlpbmctYS1zcG9uc29yLWJ1dHRvbi1pbi15b3VyLXJlcG9z
aXRvcnkKKyMgKiBodHRwczovL3RpZGVsaWZ0LmNvbS9zdWJzY3JpcHRpb24vaG93LXRvLWNvbm5l
Y3QtdGlkZWxpZnQtd2l0aC1naXRodWIKK3RpZGVsaWZ0OiBweXBpL3B5dGVzdApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS5tZCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5n
aXRodWIvSVNTVUVfVEVNUExBVEUubWQKaW5kZXggZmJjYmIxNmZjMzUxZGU3YjdjZTcyYzI4YzBl
N2IzMzZlYWRjNGM5ZS4uZmI4MTQxNmRkNWUwZjY2YzM4YjExMDRlN2M1ZmJhN2Q3N2RhYjE0MiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS5tZAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC8uZ2l0aHViL0lTU1VFX1RFTVBMQVRFLm1kCkBAIC0xLDggKzEsMTAgQEAKKzwh
LS0KIFRoYW5rcyBmb3Igc3VibWl0dGluZyBhbiBpc3N1ZSEKIAotSGVyZSdzIGEgcXVpY2sgY2hl
Y2tsaXN0IGluIHdoYXQgdG8gaW5jbHVkZToKK0hlcmUncyBhIHF1aWNrIGNoZWNrbGlzdCBmb3Ig
d2hhdCB0byBwcm92aWRlOgorLS0+CiAKLS0gWyBdIEluY2x1ZGUgYSBkZXRhaWxlZCBkZXNjcmlw
dGlvbiBvZiB0aGUgYnVnIG9yIHN1Z2dlc3Rpb24KLS0gWyBdIGBwaXAgbGlzdGAgb2YgdGhlIHZp
cnR1YWwgZW52aXJvbm1lbnQgeW91IGFyZSB1c2luZworLSBbIF0gYSBkZXRhaWxlZCBkZXNjcmlw
dGlvbiBvZiB0aGUgYnVnIG9yIHN1Z2dlc3Rpb24KKy0gWyBdIG91dHB1dCBvZiBgcGlwIGxpc3Rg
IGZyb20gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQgeW91IGFyZSB1c2luZwogLSBbIF0gcHl0ZXN0
IGFuZCBvcGVyYXRpbmcgc3lzdGVtIHZlcnNpb25zCi0tIFsgXSBNaW5pbWFsIGV4YW1wbGUgaWYg
cG9zc2libGUKKy0gWyBdIG1pbmltYWwgZXhhbXBsZSBpZiBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvLmdpdGh1Yi9QVUxMX1JFUVVFU1RfVEVNUExBVEUubWQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1QTEFURS5tZAppbmRleCAyM2E5ZjhjNTY4MzI1NTA3
YjBlN2E1YTUyOTNiOTNkMGYxOTI3YjM1Li41OTBjYzk5NThhZTdiNThlN2VlNDUwNzkyMjAwOGEw
OTlkYmNlOTM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL1BVTExfUkVRVUVTVF9U
RU1QTEFURS5tZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1QTEFU
RS5tZApAQCAtMSw5ICsxLDEwIEBACis8IS0tCiBUaGFua3MgZm9yIHN1Ym1pdHRpbmcgYSBQUiwg
eW91ciBjb250cmlidXRpb24gaXMgcmVhbGx5IGFwcHJlY2lhdGVkIQogCi1IZXJlJ3MgYSBxdWlj
ayBjaGVja2xpc3QgdGhhdCBzaG91bGQgYmUgcHJlc2VudCBpbiBQUnMgKHlvdSBjYW4gZGVsZXRl
IHRoaXMgdGV4dCBmcm9tIHRoZSBmaW5hbCBkZXNjcmlwdGlvbiwgdGhpcyBpcwotanVzdCBhIGd1
aWRlbGluZSk6CitIZXJlIGlzIGEgcXVpY2sgY2hlY2tsaXN0IHRoYXQgc2hvdWxkIGJlIHByZXNl
bnQgaW4gUFJzLgorKHBsZWFzZSBkZWxldGUgdGhpcyB0ZXh0IGZyb20gdGhlIGZpbmFsIGRlc2Ny
aXB0aW9uLCB0aGlzIGlzIGp1c3QgYSBndWlkZWxpbmUpCistLT4KIAotLSBbIF0gQ3JlYXRlIGEg
bmV3IGNoYW5nZWxvZyBmaWxlIGluIHRoZSBgY2hhbmdlbG9nYCBmb2xkZXIsIHdpdGggYSBuYW1l
IGxpa2UgYDxJU1NVRSBOVU1CRVI+LjxUWVBFPi5yc3RgLiBTZWUgW2NoYW5nZWxvZy9SRUFETUUu
cnN0XSgvY2hhbmdlbG9nL1JFQURNRS5yc3QpIGZvciBkZXRhaWxzLgogLSBbIF0gVGFyZ2V0IHRo
ZSBgbWFzdGVyYCBicmFuY2ggZm9yIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFu
ZCB0cml2aWFsIGNoYW5nZXMuCiAtIFsgXSBUYXJnZXQgdGhlIGBmZWF0dXJlc2AgYnJhbmNoIGZv
ciBuZXcgZmVhdHVyZXMgYW5kIHJlbW92YWxzL2RlcHJlY2F0aW9ucy4KIC0gWyBdIEluY2x1ZGUg
ZG9jdW1lbnRhdGlvbiB3aGVuIGFkZGluZyBuZXcgZmVhdHVyZXMuCkBAIC0xMSw0ICsxMiw1IEBA
IGp1c3QgYSBndWlkZWxpbmUpOgogCiBVbmxlc3MgeW91ciBjaGFuZ2UgaXMgdHJpdmlhbCBvciBh
IHNtYWxsIGRvY3VtZW50YXRpb24gZml4IChlLmcuLCAgYSB0eXBvIG9yIHJld29yZCBvZiBhIHNt
YWxsIHNlY3Rpb24pIHBsZWFzZToKIAorLSBbIF0gQ3JlYXRlIGEgbmV3IGNoYW5nZWxvZyBmaWxl
IGluIHRoZSBgY2hhbmdlbG9nYCBmb2xkZXIsIHdpdGggYSBuYW1lIGxpa2UgYDxJU1NVRSBOVU1C
RVI+LjxUWVBFPi5yc3RgLiBTZWUgW2NoYW5nZWxvZy9SRUFETUUucnN0XShodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvYmxvYi9tYXN0ZXIvY2hhbmdlbG9nL1JFQURNRS5yc3Qp
IGZvciBkZXRhaWxzLgogLSBbIF0gQWRkIHlvdXJzZWxmIHRvIGBBVVRIT1JTYCBpbiBhbHBoYWJl
dGljYWwgb3JkZXI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL2NvbmZpZy55bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC8uZ2l0aHViL2NvbmZpZy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZhOGE5N2U3ODVk
MmEwODc5NzEzNmQ2NDE2YzMxMzI4ZDI0Y2ZmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0Ly5naXRodWIvY29uZmlnLnltbApAQCAtMCwwICsxLDIgQEAKK3J0ZDoKKyAgcHJvamVjdDog
cHl0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL2xhYmVscy50b21sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvLmdpdGh1Yi9sYWJlbHMudG9tbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZWYxZTkxM2FmODRjYzdh
OWZmZjQ0ZjhlNDJkZDQwN2VkZmRlODIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
LmdpdGh1Yi9sYWJlbHMudG9tbApAQCAtMCwwICsxLDE0OSBAQAorWyJvczogY3lnd2luIl0KK2Nv
bG9yID0gIjAwNmI3NSIKK2Rlc2NyaXB0aW9uID0gImN5Z3dpbiBwbGF0Zm9ybS1zcGVjaWZpYyBw
cm9ibGVtIgorbmFtZSA9ICJvczogY3lnd2luIgorCitbIm9zOiBsaW51eCJdCitjb2xvciA9ICIx
ZDc2ZGIiCitkZXNjcmlwdGlvbiA9ICJsaW51eCBwbGF0Zm9ybS1zcGVjaWZpYyBwcm9ibGVtIgor
bmFtZSA9ICJvczogbGludXgiCisKK1sib3M6IG1hYyJdCitjb2xvciA9ICJiZmRhZGMiCitkZXNj
cmlwdGlvbiA9ICJtYWMgcGxhdGZvcm0tc3BlY2lmaWMgcHJvYmxlbSIKK25hbWUgPSAib3M6IG1h
YyIKKworWyJvczogd2luZG93cyJdCitjb2xvciA9ICJmYmNhMDQiCitkZXNjcmlwdGlvbiA9ICJ3
aW5kb3dzIHBsYXRmb3JtLXNwZWNpZmljIHByb2JsZW0iCituYW1lID0gIm9zOiB3aW5kb3dzIgor
CitbInBsdWdpbjogYXJnY29tcGxldGUiXQorY29sb3IgPSAiZDRjNWY5IgorZGVzY3JpcHRpb24g
PSAicmVsYXRlZCB0byB0aGUgYXJnY29tcGxldGUgYnVpbHRpbiBwbHVnaW4iCituYW1lID0gInBs
dWdpbjogYXJnY29tcGxldGUiCisKK1sicGx1Z2luOiBjYWNoZSJdCitjb2xvciA9ICJjN2RlZjgi
CitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBjYWNoZSBidWlsdGluIHBsdWdpbiIKK25h
bWUgPSAicGx1Z2luOiBjYWNoZSIKKworWyJwbHVnaW46IGNhcHR1cmUiXQorY29sb3IgPSAiMWQ3
NmRiIgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgY2FwdHVyZSBidWlsdGluIHBsdWdp
biIKK25hbWUgPSAicGx1Z2luOiBjYXB0dXJlIgorCitbInBsdWdpbjogZGVidWdnaW5nIl0KK2Nv
bG9yID0gImRkNTJhOCIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGhlIGRlYnVnZ2luZyBi
dWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBkZWJ1Z2dpbmciCisKK1sicGx1Z2luOiBk
b2N0ZXN0cyJdCitjb2xvciA9ICJmYWQ4YzciCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRo
ZSBkb2N0ZXN0cyBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBkb2N0ZXN0cyIKKwor
WyJwbHVnaW46IGp1bml0eG1sIl0KK2NvbG9yID0gImM1ZGVmNSIKK2Rlc2NyaXB0aW9uID0gInJl
bGF0ZWQgdG8gdGhlIGp1bml0eG1sIGJ1aWx0aW4gcGx1Z2luIgorbmFtZSA9ICJwbHVnaW46IGp1
bml0eG1sIgorCitbInBsdWdpbjogbG9nZ2luZyJdCitjb2xvciA9ICJmZjU0MzIiCitkZXNjcmlw
dGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBsb2dnaW5nIGJ1aWx0aW4gcGx1Z2luIgorbmFtZSA9ICJw
bHVnaW46IGxvZ2dpbmciCisKK1sicGx1Z2luOiBtb25rZXlwYXRjaCJdCitjb2xvciA9ICIwZThh
MTYiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBtb25rZXlwYXRjaCBidWlsdGluIHBs
dWdpbiIKK25hbWUgPSAicGx1Z2luOiBtb25rZXlwYXRjaCIKKworWyJwbHVnaW46IG5vc2UiXQor
Y29sb3IgPSAiYmZkYWRjIgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgbm9zZSBpbnRl
Z3JhdGlvbiBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBub3NlIgorCitbInBsdWdp
bjogcGFzdGViaW4iXQorY29sb3IgPSAiYmZkNGYyIgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0
byB0aGUgcGFzdGViaW4gYnVpbHRpbiBwbHVnaW4iCituYW1lID0gInBsdWdpbjogcGFzdGViaW4i
CisKK1sicGx1Z2luOiBweXRlc3RlciJdCitjb2xvciA9ICJjNWRlZjUiCitkZXNjcmlwdGlvbiA9
ICJyZWxhdGVkIHRvIHRoZSBweXRlc3RlciBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2lu
OiBweXRlc3RlciIKKworWyJwbHVnaW46IHRtcGRpciJdCitjb2xvciA9ICJiZmQ0ZjIiCitkZXNj
cmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSB0bXBkaXIgYnVpbHRpbiBwbHVnaW4iCituYW1lID0g
InBsdWdpbjogdG1wZGlyIgorCitbInBsdWdpbjogdW5pdHRlc3QiXQorY29sb3IgPSAiMDA2Yjc1
IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgdW5pdHRlc3QgaW50ZWdyYXRpb24gYnVp
bHRpbiBwbHVnaW4iCituYW1lID0gInBsdWdpbjogdW5pdHRlc3QiCisKK1sicGx1Z2luOiB3YXJu
aW5ncyJdCitjb2xvciA9ICJmZWYyYzAiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSB3
YXJuaW5ncyBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiB3YXJuaW5ncyIKKworWyJw
bHVnaW46IHhkaXN0Il0KK2NvbG9yID0gIjUzMTllNyIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQg
dG8gdGhlIHhkaXN0IGV4dGVybmFsIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiB4ZGlzdCIKKwor
WyJzdGF0dXM6IGNyaXRpY2FsIl0KK2NvbG9yID0gImUxMWQyMSIKK2Rlc2NyaXB0aW9uID0gImdy
YXZlIHByb2JsZW0gb3IgdXNhYmlsaXR5IGlzc3VlIHRoYXQgYWZmZWN0cyBsb3RzIG9mIHVzZXJz
IgorbmFtZSA9ICJzdGF0dXM6IGNyaXRpY2FsIgorCitbInN0YXR1czogZWFzeSJdCitjb2xvciA9
ICJiZmU1YmYiCitkZXNjcmlwdGlvbiA9ICJlYXN5IGlzc3VlIHRoYXQgaXMgZnJpZW5kbHkgdG8g
bmV3IGNvbnRyaWJ1dG9yIgorbmFtZSA9ICJzdGF0dXM6IGVhc3kiCisKK1sic3RhdHVzOiBoZWxw
IHdhbnRlZCJdCitjb2xvciA9ICIxNTk4MTgiCitkZXNjcmlwdGlvbiA9ICJkZXZlbG9wZXJzIHdv
dWxkIGxpa2UgaGVscCBmcm9tIGV4cGVydHMgb24gdGhpcyB0b3BpYyIKK25hbWUgPSAic3RhdHVz
OiBoZWxwIHdhbnRlZCIKKworWyJzdGF0dXM6IG5lZWRzIGluZm9ybWF0aW9uIl0KK2NvbG9yID0g
IjUzMTllNyIKK2Rlc2NyaXB0aW9uID0gInJlcG9ydGVyIG5lZWRzIHRvIHByb3ZpZGUgbW9yZSBp
bmZvcm1hdGlvbjsgY2FuIGJlIGNsb3NlZCBhZnRlciAyIG9yIG1vcmUgd2Vla3Mgb2YgaW5hY3Rp
dml0eSIKK25hbWUgPSAic3RhdHVzOiBuZWVkcyBpbmZvcm1hdGlvbiIKKworWyJ0b3BpYzogY29s
bGVjdGlvbiJdCitjb2xvciA9ICIwMDZiNzUiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRo
ZSBjb2xsZWN0aW9uIHBoYXNlIgorbmFtZSA9ICJ0b3BpYzogY29sbGVjdGlvbiIKKworWyJ0b3Bp
YzogY29uZmlnIl0KK2NvbG9yID0gIjAwNmI3NSIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8g
Y29uZmlnIGhhbmRsaW5nLCBhcmd1bWVudCBwYXJzaW5nIGFuZCBjb25maWcgZmlsZSIKK25hbWUg
PSAidG9waWM6IGNvbmZpZyIKKworWyJ0b3BpYzogZml4dHVyZXMiXQorY29sb3IgPSAiNTMxOWU3
IgorZGVzY3JpcHRpb24gPSAiYW55dGhpbmcgaW52b2x2aW5nIGZpeHR1cmVzIGRpcmVjdGx5IG9y
IGluZGlyZWN0bHkiCituYW1lID0gInRvcGljOiBmaXh0dXJlcyIKKworWyJ0b3BpYzogbWFya3Mi
XQorY29sb3IgPSAiYjYwMjA1IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byBtYXJrcywgZWl0
aGVyIHRoZSBnZW5lcmFsIG1hcmtzIG9yIGJ1aWx0aW4iCituYW1lID0gInRvcGljOiBtYXJrcyIK
KworWyJ0b3BpYzogcGFyYW1ldHJpemUiXQorY29sb3IgPSAiZmJjYTA0IgorZGVzY3JpcHRpb24g
PSAicmVsYXRlZCB0byBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUiCituYW1lID0gInRvcGljOiBw
YXJhbWV0cml6ZSIKKworWyJ0b3BpYzogcmVwb3J0aW5nIl0KK2NvbG9yID0gImZlZjJjMCIKK2Rl
c2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGVybWluYWwgb3V0cHV0IGFuZCB1c2VyLWZhY2luZyBt
ZXNzYWdlcyBhbmQgZXJyb3JzIgorbmFtZSA9ICJ0b3BpYzogcmVwb3J0aW5nIgorCitbInRvcGlj
OiByZXdyaXRlIl0KK2NvbG9yID0gIjBlOGExNiIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8g
dGhlIGFzc2VydGlvbiByZXdyaXRlIG1lY2hhbmlzbSIKK25hbWUgPSAidG9waWM6IHJld3JpdGUi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvLmdpdGh1Yi93M2MtaW1wb3J0LmxvZwppbmRleCBmYjdjZjIyMjU2NGI0MmZmNDgxNzJk
YjcwYjMzODMwODYxMzk4YThiLi4zMGE2OWMzNzEyZWMxZjY5NWUwZjc5MTNjYTdkMjBkYjMyYjll
YjMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3czYy1pbXBvcnQubG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0Ly5naXRodWIvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDUgKzE0LDggQEAgUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIExpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9GVU5ESU5HLnltbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0Ly5naXRodWIvSVNTVUVfVEVNUExBVEUubWQKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0
aHViL1BVTExfUkVRVUVTVF9URU1QTEFURS5tZAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvY29uZmln
LnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvbGFiZWxzLnRvbWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0Ly5naXRodWIvd29ya2Zsb3dzL21haW4ueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi93
b3JrZmxvd3MvbWFpbi55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTAwNmZiMDkyYzg3ZDIwZmFjNmUxMzM0ZTJh
MDI1ZDE5MjVjZGJhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvd29y
a2Zsb3dzL21haW4ueW1sCkBAIC0wLDAgKzEsMTkxIEBACituYW1lOiBtYWluCisKK29uOgorICBw
dXNoOgorICAgIGJyYW5jaGVzOgorICAgICAgLSA0LjYueAorICAgIHRhZ3M6CisgICAgICAtICIq
IgorCisgIHB1bGxfcmVxdWVzdDoKKyAgICBicmFuY2hlczoKKyAgICAgIC0gNC42LngKKworam9i
czoKKyAgYnVpbGQ6CisgICAgcnVucy1vbjogJHt7IG1hdHJpeC5vcyB9fQorCisgICAgc3RyYXRl
Z3k6CisgICAgICBmYWlsLWZhc3Q6IGZhbHNlCisgICAgICBtYXRyaXg6CisgICAgICAgIG5hbWU6
IFsKKyAgICAgICAgICAid2luZG93cy1weTI3IiwKKyAgICAgICAgICAid2luZG93cy1weTM1IiwK
KyAgICAgICAgICAid2luZG93cy1weTM2IiwKKyAgICAgICAgICAid2luZG93cy1weTM3IiwKKyAg
ICAgICAgICAid2luZG93cy1weTM3LXBsdWdneSIsCisgICAgICAgICAgIndpbmRvd3MtcHkzOCIs
CisKKyAgICAgICAgICAidWJ1bnR1LXB5MjctcGx1Z2d5IiwKKyAgICAgICAgICAidWJ1bnR1LXB5
Mjctbm9ieXRlIiwKKyAgICAgICAgICAidWJ1bnR1LXB5MzciLAorICAgICAgICAgICJ1YnVudHUt
cHkzNy1wbHVnZ3kiLAorICAgICAgICAgICJ1YnVudHUtcHkzNy1wZXhwZWN0LXB5MzctdHdpc3Rl
ZCIsCisgICAgICAgICAgInVidW50dS1weTM3LWZyZWV6ZSIsCisgICAgICAgICAgInVidW50dS1w
eXB5IiwKKyAgICAgICAgICAidWJ1bnR1LXB5cHkzIiwKKworICAgICAgICAgICJtYWNvcy1weTI3
IiwKKyAgICAgICAgICAibWFjb3MtcHkzOCIsCisKKyAgICAgICAgXQorCisgICAgICAgIGluY2x1
ZGU6CisgICAgICAgICAgIyBXaW5kb3dzIGpvYnMKKyAgICAgICAgICAtIG5hbWU6ICJ3aW5kb3dz
LXB5MjciCisgICAgICAgICAgICBweXRob246ICIyLjciCisgICAgICAgICAgICBvczogd2luZG93
cy1sYXRlc3QKKyAgICAgICAgICAgIHRveF9lbnY6ICJweTI3LXhkaXN0IgorICAgICAgICAgICAg
dXNlX2NvdmVyYWdlOiB0cnVlCisgICAgICAgICAgLSBuYW1lOiAid2luZG93cy1weTM1IgorICAg
ICAgICAgICAgcHl0aG9uOiAiMy41IgorICAgICAgICAgICAgb3M6IHdpbmRvd3MtbGF0ZXN0Cisg
ICAgICAgICAgICB0b3hfZW52OiAicHkzNS14ZGlzdCIKKyAgICAgICAgICAgIHVzZV9jb3ZlcmFn
ZTogdHJ1ZQorICAgICAgICAgIC0gbmFtZTogIndpbmRvd3MtcHkzNiIKKyAgICAgICAgICAgIHB5
dGhvbjogIjMuNiIKKyAgICAgICAgICAgIG9zOiB3aW5kb3dzLWxhdGVzdAorICAgICAgICAgICAg
dG94X2VudjogInB5MzYteGRpc3QiCisgICAgICAgICAgICB1c2VfY292ZXJhZ2U6IHRydWUKKyAg
ICAgICAgICAtIG5hbWU6ICJ3aW5kb3dzLXB5MzciCisgICAgICAgICAgICBweXRob246ICIzLjci
CisgICAgICAgICAgICBvczogd2luZG93cy1sYXRlc3QKKyAgICAgICAgICAgIHRveF9lbnY6ICJw
eTM3LXR3aXN0ZWQtbnVtcHkiCisgICAgICAgICAgICB1c2VfY292ZXJhZ2U6IHRydWUKKyAgICAg
ICAgICAtIG5hbWU6ICJ3aW5kb3dzLXB5MzctcGx1Z2d5IgorICAgICAgICAgICAgcHl0aG9uOiAi
My43IgorICAgICAgICAgICAgb3M6IHdpbmRvd3MtbGF0ZXN0CisgICAgICAgICAgICB0b3hfZW52
OiAicHkzNy1wbHVnZ3ltYXN0ZXIteGRpc3QiCisgICAgICAgICAgICB1c2VfY292ZXJhZ2U6IHRy
dWUKKyAgICAgICAgICAtIG5hbWU6ICJ3aW5kb3dzLXB5MzgiCisgICAgICAgICAgICBweXRob246
ICIzLjgiCisgICAgICAgICAgICBvczogd2luZG93cy1sYXRlc3QKKyAgICAgICAgICAgIHRveF9l
bnY6ICJweTM4LXhkaXN0IgorICAgICAgICAgICAgdXNlX2NvdmVyYWdlOiB0cnVlCisKKyAgICAg
ICAgICAjIFVidW50dSBqb2JzIOKAkyBmaW5kIHRoZSByZXN0IG9mIHRoZW0gaW4gLnRyYXZpcy55
bWwKKyAgICAgICAgICAtIG5hbWU6ICJ1YnVudHUtcHkyNy1wbHVnZ3kiCisgICAgICAgICAgICBw
eXRob246ICIyLjciCisgICAgICAgICAgICBvczogdWJ1bnR1LWxhdGVzdAorICAgICAgICAgICAg
dG94X2VudjogInB5MjctcGx1Z2d5bWFzdGVyLXhkaXN0IgorICAgICAgICAgICAgdXNlX2NvdmVy
YWdlOiB0cnVlCisgICAgICAgICAgLSBuYW1lOiAidWJ1bnR1LXB5Mjctbm9ieXRlIgorICAgICAg
ICAgICAgcHl0aG9uOiAiMi43IgorICAgICAgICAgICAgb3M6IHVidW50dS1sYXRlc3QKKyAgICAg
ICAgICAgIHRveF9lbnY6ICJweTI3LW5vYnl0ZS1udW1weS14ZGlzdCIKKyAgICAgICAgICAgIHVz
ZV9jb3ZlcmFnZTogdHJ1ZQorICAgICAgICAgIC0gbmFtZTogInVidW50dS1weTM3IgorICAgICAg
ICAgICAgcHl0aG9uOiAiMy43IgorICAgICAgICAgICAgb3M6IHVidW50dS1sYXRlc3QKKyAgICAg
ICAgICAgIHRveF9lbnY6ICJweTM3LWxzb2YtbnVtcHkteGRpc3QiCisgICAgICAgICAgICB1c2Vf
Y292ZXJhZ2U6IHRydWUKKyAgICAgICAgICAtIG5hbWU6ICJ1YnVudHUtcHkzNy1wbHVnZ3kiCisg
ICAgICAgICAgICBweXRob246ICIzLjciCisgICAgICAgICAgICBvczogdWJ1bnR1LWxhdGVzdAor
ICAgICAgICAgICAgdG94X2VudjogInB5MzctcGx1Z2d5bWFzdGVyLXhkaXN0IgorICAgICAgICAg
ICAgdXNlX2NvdmVyYWdlOiB0cnVlCisgICAgICAgICAgLSBuYW1lOiAidWJ1bnR1LXB5MzctcGV4
cGVjdC1weTM3LXR3aXN0ZWQiCisgICAgICAgICAgICBweXRob246ICIzLjciCisgICAgICAgICAg
ICBvczogdWJ1bnR1LWxhdGVzdAorICAgICAgICAgICAgdG94X2VudjogInB5MzctcGV4cGVjdCxw
eTM3LXR3aXN0ZWQiCisgICAgICAgICAgICB1c2VfY292ZXJhZ2U6IHRydWUKKyAgICAgICAgICAt
IG5hbWU6ICJ1YnVudHUtcHkzNy1mcmVlemUiCisgICAgICAgICAgICBweXRob246ICIzLjciCisg
ICAgICAgICAgICBvczogdWJ1bnR1LWxhdGVzdAorICAgICAgICAgICAgdG94X2VudjogInB5Mzct
ZnJlZXplIgorICAgICAgICAgIC0gbmFtZTogInVidW50dS1weXB5IgorICAgICAgICAgICAgcHl0
aG9uOiAicHlweTIiCisgICAgICAgICAgICBvczogdWJ1bnR1LWxhdGVzdAorICAgICAgICAgICAg
dG94X2VudjogInB5cHkteGRpc3QiCisgICAgICAgICAgICB1c2VfY292ZXJhZ2U6IHRydWUKKyAg
ICAgICAgICAtIG5hbWU6ICJ1YnVudHUtcHlweTMiCisgICAgICAgICAgICBweXRob246ICJweXB5
MyIKKyAgICAgICAgICAgIG9zOiB1YnVudHUtbGF0ZXN0CisgICAgICAgICAgICB0b3hfZW52OiAi
cHlweTMteGRpc3QiCisgICAgICAgICAgICB1c2VfY292ZXJhZ2U6IHRydWUKKworICAgICAgICAg
ICMgTWFjT1Mgam9icworICAgICAgICAgIC0gbmFtZTogIm1hY29zLXB5MjciCisgICAgICAgICAg
ICBweXRob246ICIyLjciCisgICAgICAgICAgICBvczogbWFjb3MtbGF0ZXN0CisgICAgICAgICAg
ICB0b3hfZW52OiAicHkyNy14ZGlzdCIKKyAgICAgICAgICAgIHVzZV9jb3ZlcmFnZTogdHJ1ZQor
ICAgICAgICAgIC0gbmFtZTogIm1hY29zLXB5MzgiCisgICAgICAgICAgICBweXRob246ICIzLjgi
CisgICAgICAgICAgICBvczogbWFjb3MtbGF0ZXN0CisgICAgICAgICAgICB0b3hfZW52OiAicHkz
OC14ZGlzdCIKKyAgICAgICAgICAgIHVzZV9jb3ZlcmFnZTogdHJ1ZQorCisgICAgc3RlcHM6Cisg
ICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHYxCisgICAgLSBuYW1lOiBTZXQgdXAgUHl0aG9u
ICR7eyBtYXRyaXgucHl0aG9uIH19IG9uICR7eyBtYXRyaXgub3MgfX0KKyAgICAgIHVzZXM6IGFj
dGlvbnMvc2V0dXAtcHl0aG9uQHYxCisgICAgICB3aXRoOgorICAgICAgICBweXRob24tdmVyc2lv
bjogJHt7IG1hdHJpeC5weXRob24gfX0KKyAgICAtIG5hbWU6IEluc3RhbGwgZGVwZW5kZW5jaWVz
CisgICAgICBydW46IHwKKyAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBw
aXAKKyAgICAgICAgcGlwIGluc3RhbGwgdG94IGNvdmVyYWdlCisgICAgLSBuYW1lOiBUZXN0IHdp
dGhvdXQgY292ZXJhZ2UKKyAgICAgIGlmOiAiISBtYXRyaXgudXNlX2NvdmVyYWdlIgorICAgICAg
cnVuOiAidG94IC1lICR7eyBtYXRyaXgudG94X2VudiB9fSIKKworICAgIC0gbmFtZTogVGVzdCB3
aXRoIGNvdmVyYWdlCisgICAgICBpZjogIm1hdHJpeC51c2VfY292ZXJhZ2UiCisgICAgICBlbnY6
CisgICAgICAgIF9QWVRFU1RfVE9YX0NPVkVSQUdFX1JVTjogImNvdmVyYWdlIHJ1biAtbSIKKyAg
ICAgICAgQ09WRVJBR0VfUFJPQ0VTU19TVEFSVDogIi5jb3ZlcmFnZXJjIgorICAgICAgICBfUFlU
RVNUX1RPWF9FWFRSQV9ERVA6ICJjb3ZlcmFnZS1lbmFibGUtc3VicHJvY2VzcyIKKyAgICAgIHJ1
bjogInRveCAtdnYgLWUgJHt7IG1hdHJpeC50b3hfZW52IH19IgorCisgICAgLSBuYW1lOiBQcmVw
YXJlIGNvdmVyYWdlIHRva2VuCisgICAgICBpZjogKG1hdHJpeC51c2VfY292ZXJhZ2UgJiYgKCBn
aXRodWIucmVwb3NpdG9yeSA9PSAncHl0ZXN0LWRldi9weXRlc3QnIHx8IGdpdGh1Yi5ldmVudF9u
YW1lID09ICdwdWxsX3JlcXVlc3QnICkpCisgICAgICBydW46IHwKKyAgICAgICAgcHl0aG9uIHNj
cmlwdHMvYXBwZW5kX2NvZGVjb3ZfdG9rZW4ucHkKKyAgICAtIG5hbWU6IFJlcG9ydCBjb3ZlcmFn
ZQorICAgICAgaWY6IChtYXRyaXgudXNlX2NvdmVyYWdlKQorICAgICAgZW52OgorICAgICAgICBD
T0RFQ09WX05BTUU6ICR7eyBtYXRyaXgubmFtZSB9fQorICAgICAgcnVuOiBiYXNoIHNjcmlwdHMv
cmVwb3J0LWNvdmVyYWdlLnNoIC1GIEdIQSwke3sgcnVubmVyLm9zIH19CisKKyAgZGVwbG95Ogor
ICAgIGlmOiBnaXRodWIuZXZlbnRfbmFtZSA9PSAncHVzaCcgJiYgc3RhcnRzV2l0aChnaXRodWIu
ZXZlbnQucmVmLCAncmVmcy90YWdzJykgJiYgZ2l0aHViLnJlcG9zaXRvcnkgPT0gJ3B5dGVzdC1k
ZXYvcHl0ZXN0JworCisgICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAorCisgICAgbmVlZHM6IFti
dWlsZF0KKworICAgIHN0ZXBzOgorICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2MQorICAg
IC0gbmFtZTogU2V0IHVwIFB5dGhvbgorICAgICAgdXNlczogYWN0aW9ucy9zZXR1cC1weXRob25A
djEKKyAgICAgIHdpdGg6CisgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAiMy43IgorICAgIC0gbmFt
ZTogSW5zdGFsbCBkZXBlbmRlbmNpZXMKKyAgICAgIHJ1bjogfAorICAgICAgICBweXRob24gLW0g
cGlwIGluc3RhbGwgLS11cGdyYWRlIHBpcAorICAgICAgICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUg
d2hlZWwgc2V0dXB0b29scyB0b3gKKyAgICAtIG5hbWU6IEJ1aWxkIHBhY2thZ2UKKyAgICAgIHJ1
bjogfAorICAgICAgICBweXRob24gc2V0dXAucHkgc2Rpc3QgYmRpc3Rfd2hlZWwKKyAgICAtIG5h
bWU6IFB1Ymxpc2ggcGFja2FnZSB0byBQeVBJCisgICAgICB1c2VzOiBweXBhL2doLWFjdGlvbi1w
eXBpLXB1Ymxpc2hAbWFzdGVyCisgICAgICB3aXRoOgorICAgICAgICB1c2VyOiBfX3Rva2VuX18K
KyAgICAgICAgcGFzc3dvcmQ6ICR7eyBzZWNyZXRzLnB5cGlfdG9rZW4gfX0KKyAgICAtIG5hbWU6
IFB1Ymxpc2ggR2l0SHViIHJlbGVhc2Ugbm90ZXMKKyAgICAgIGVudjoKKyAgICAgICAgR0hfUkVM
RUFTRV9OT1RFU19UT0tFTjogJHt7IHNlY3JldHMucmVsZWFzZV9ub3RlcyB9fQorICAgICAgcnVu
OiB8CisgICAgICAgIHN1ZG8gYXB0LWdldCBpbnN0YWxsIHBhbmRvYworICAgICAgICB0b3ggLWUg
cHVibGlzaC1naC1yZWxlYXNlLW5vdGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHVi
L3dvcmtmbG93cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvd29ya2Zsb3dz
L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzNjc1NmRkN2JkYzExNTg1YjE1NWExMjRiZmY0
YTYyMzY3MDM1ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3dvcmtm
bG93cy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC8uZ2l0aHViL3dvcmtmbG93cy9tYWluLnltbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQVVU
SE9SUyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L0FVVEhPUlMKaW5kZXggM2VkZmRjZjg1ZWE2MmE4M2MzMmM4ZTMx
ZTM1NmQwNGQwMzVkYmViZC4uODBmY2U1MzkyOTQzMzQxZTA4ZjUwN2RjNzNkODgwODU5ZWU4NjVk
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQVVUSE9SUworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9BVVRI
T1JTCkBAIC02LDIwICs2LDMwIEBAIENvbnRyaWJ1dG9ycyBpbmNsdWRlOjoKIEFhcm9uIENvbGVt
YW4KIEFiZGVhbGkgSksKIEFiaGlqZWV0IEthc3VyZGUKK0FkYW0gSm9obnNvbgorQWRhbSBVaGxp
cgogQWhuIEtpLVdvb2sKK0FraW9taSBLYW1ha3VyYQogQWxhbiBWZWxhc2NvCiBBbGV4YW5kZXIg
Sm9obnNvbgogQWxleGVpIEtvemxlbm9rCitBbGxhbiBGZWxkbWFuCitBbHkgU2l2amkKIEFuYXRv
bHkgQnViZW5rb2ZmCiBBbmRlcnMgSG92bcO2bGxlcgorQW5kcmFzIE1pdHpraQogQW5kcmFzIFRp
bQorQW5kcmVhIENpbWF0b3JpYnVzCiBBbmRyZWFzIFplaWRsZXIKK0FuZHJleSBQYXJhbW9ub3YK
IEFuZHJ6ZWogT3N0cm93c2tpCiBBbmR5IEZyZWVsYW5kCiBBbnRob24gdmFuIGRlciBOZXV0CiBB
bnRob255IFNoYXcKIEFudGhvbnkgU290dGlsZQorQW50b24gTG9kZGVyCiBBbnRvbnkgTGVlCitB
cmVsIENvcmRlcm8KIEFybWluIFJpZ28KIEFyb24gQ295bGUKIEFyb24gQ3Vyem9uCkBAIC00Mywx
MCArNTMsMTYgQEAgQ2hhcmxlcyBDbG91ZAogQ2hhcm5qaXQgU2lOR0ggKENDU0opCiBDaHJpcyBM
YW1iCiBDaHJpc3RpYW4gQm9lbHNlbgorQ2hyaXN0aWFuIEZldHplcgogQ2hyaXN0aWFuIFRoZXVu
ZXJ0CiBDaHJpc3RpYW4gVGlzbWVyCiBDaHJpc3RvcGhlciBHaWxsaW5nCitDaHJpc3RvcGhlciBE
aWduYW0KK0NsYXVkaW8gTWFkb3R0bworQ3JhenlNZXJseW4KIEN5cnVzIE1hZGVuCitEYW1pYW4g
U2tyenlwY3phaworRGhpcmVuIFNlcmFpCiBEYW5pZWwgR3JhbmEKIERhbmllbCBIYWhsZXIKIERh
bmllbCBOdXJpCkBAIC01NSw2ICs3MSw3IEBAIERhbmllbGxlIEplbmtpbnMKIERhdmUgSHVudAog
RGF2aWQgRMOtYXotQmFycXVlcm8KIERhdmlkIE1vaHIKK0RhdmlkIFN6b3R0ZW4KIERhdmlkIFZp
ZXJyYQogRGF3LVJhbiBMaW91CiBEZW5pcyBLaXJpc292CkBAIC03MSw3ICs4OCwxMSBAQCBFbmRy
ZSBHYWxhY3ppCiBFcmljIEh1bnNiZXJnZXIKIEVyaWMgU2llZ2VybWFuCiBFcmlrIE0uIEJyYXkK
K0V2YW4gS2VwbmVyCitGYWJpZW4gWmFyaWZpYW4KK0ZhYmlvIFphZHJvem55CiBGZW5nIE1hCitG
ZXJuYW5kbyBNZXp6YWJvdHRhIFJleQogRmxvcmlhbiBCcnVoaW4KIEZsb3JpcyBCcnV5bm9vZ2hl
CiBHYWJyaWVsIFJlaXMKQEAgLTg5LDYgKzExMCw5IEBAIEh1Z28gdmFuIEtlbWVuYWRlCiBIdWkg
V2FuZyAoY29sZG5pZ2h0KQogSWFuIEJpY2tpbmcKIElhbiBMZXNwZXJhbmNlCitJbHlhIEtvbnN0
YW50aW5vdgorSW9udcibIFR1cnR1cmljxIMKK0l3YW4gQnJpcXVlbW9udAogSmFhcCBCcm9la2h1
aXplbgogSmFuIEJhbHN0ZXIKIEphbm5lIFZhbmhhbGEKQEAgLTk3LDYgKzEyMSw3IEBAIEphdmll
ciBEb21pbmdvIENhbnNpbm8KIEphdmllciBSb21lcm8KIEplZmYgUmFja2F1Y2thcwogSmVmZiBX
aWRtYW4KK0plbm5pIFJpbmtlcgogSm9obiBFZGRpZSBBeXNvbgogSm9obiBUb3dsZXIKIEpvbiBT
b25lc2VuCkBAIC0xMDQsNiArMTI5LDcgQEAgSm9uYXMgT2JyaXN0CiBKb3JkYW4gR3V5bW9uCiBK
b3JkYW4gTW9sZG93CiBKb3JkYW4gU3BlaWNoZXIKK0pvc2VwaCBIdW5rZWxlcgogSm9zaHVhIEJy
b25zb24KIEp1cmtvIEdvc3BvZG5ldGnEhwogSnVzdHluYSBKYW5jenlzenluCkBAIC0xMTEsOCAr
MTM3LDExIEBAIEthbGUgS3VuZGVydAogS2F0YXJ6eW5hIEphY2hpbQogS2F0ZXJpbmEgS291a2lv
dQogS2V2aW4gQ294CitLZXZpbiBKLiBGb2xleQogS29kaSBCLiBBcmZlcgogS29zdGlzIEFuYWdu
b3N0b3BvdWxvcworS3Jpc3RvZmZlciBOb3Jkc3Ryw7ZtCitLeWxlIEFsdGVuZG9yZgogTGF3cmVu
Y2UgTWl0Y2hlbGwKIExlZSBLYW1lbnRza3kKIExldiBNYXhpbW92CkBAIC0xMjYsNiArMTU1LDcg
QEAgTWFpayBGaWd1cmEKIE1hbmRlZXAgQmh1dGFuaQogTWFudWVsIEtyZWJiZXIKIE1hcmMgU2No
bGFpY2gKK01hcmNlbG8gRHVhcnRlIFRyZXZpc2FuaQogTWFyY2luIEJhY2hyeQogTWFyayBBYnJh
bW93aXR6CiBNYXJrdXMgVW50ZXJ3YWRpdHplcgpAQCAtMTQ2LDIyICsxNzYsMzAgQEAgTWljaGFl
bCBEcm9ldHRib29tCiBNaWNoYWVsIFNlaWZlcnQKIE1pY2hhbCBXYWpzemN6dWsKIE1paGFpIENh
cG90xIMKK01pa2UgSG95bGUgKGhveWxlbWQpCiBNaWtlIEx1bmR5CiBNaXJvIEhyb27EjW9rCiBO
YXRoYW5pZWwgV2Fpc2Jyb3QKIE5lZCBCYXRjaGVsZGVyCiBOZXZlbiBNdW5kYXIKK05pY2hvbGFz
IERldmVuaXNoCitOaWNob2xhcyBNdXJwaHkKK05pY2xhcyBPbG9mc3NvbgogTmljb2xhcyBEZWxh
YnkKK05pa29sYXkgS29uZHJhdHlldgogT2xlZyBQaWRzYWRueWkKIE9sZWcgU3VzaGNoZW5rbwog
T2xpdmVyIEJlc3R3YWx0ZXIKIE9tYXIgS29obAogT21lciBIYWRhcmkKK09uZMWZZWogU8O6a3Vw
CitPc2NhciBCZW5qYW1pbgogUGF0cmljayBIYXllcwogUGF3ZcWCIEFkYW1jemFrCiBQZWRybyBB
bGdhcnZpbwogUGlldGVyIE11bGRlcgogUGlvdHIgQmFuYXN6a2lld2ljegorUHVsa2l0IEdveWFs
CiBQdW55YXNobG9rYSBCaXN3YWwKIFF1ZW50aW4gUHJhZGV0CiBSYWxmIFNjaG1pdHQKQEAgLTE3
MSw2ICsyMDksNyBAQCBSYXBoYWVsIFBpZXJ6aW5hCiBSYXF1ZWwgQWxlZ3JlCiBSYXZpIENoYW5k
cmEKIFJvYmVydG8gUG9sbGkKK1JvbGFuZCBQdW50YWllcgogUm9tYWluIERvcmd1ZWlsCiBSb21h
biBCb2xzaGFrb3YKIFJvbm55IFBmYW5uc2NobWlkdApAQCAtMTc4LDggKzIxNywxMSBAQCBSb3Nz
IExhd2xleQogUnVzc2VsIFdpbmRlcgogUnlhbiBXb29kZW4KIFNhbXVlbCBEaW9uLUdpcmFyZGVh
dQorU2FtdWVsIFNlYXJsZXMtQnJ5YW50CiBTYW11ZWxlIFBlZHJvbmkKK1Nhbmt0IFBldGVyc2J1
ZwogU2VnZXYgRmluZXIKK1NlcmhpaSBNb3pnaG92eWkKIFNpbW9uIEdvbWl6ZWxqCiBTa3lsYXIg
RG93bmVzCiBTcmluaXZhcyBSZWRkeSBUaGF0aXBhcnRoeQpAQCAtMTg4LDYgKzIzMCw5IEBAIFN0
ZWZhbiBaaW1tZXJtYW5uCiBTdGVmYW5vIFRhc2NoaW5pCiBTdGVmZmVuIEFsbG5lcgogU3RlcGhh
biBPYmVybWFubgorU3Zlbi1IZW5kcmlrIEhhYXNlCitUYWRlayBUZWxlxbx5xYRza2kKK1Rha2Fm
dW1pIEFyYWtha2kKIFRhcmNpc2lvIEZpc2NoZXIKIFRhcmVxIEFsYXlhbgogVGVkIFhpYW8KQEAg
LTE5NiwxOCArMjQxLDIzIEBAIFRob21hcyBIaXNjaAogVGltIFN0cmF6bnkKIFRvbSBEYWx0b24K
IFRvbSBWaW5lcgorVG9tZXIgS2VyZW4KIFRyZXZvciBCZWtvbGF5CiBUeWxlciBHb29kbGV0CiBU
enUtcGluZyBDaHVuZwogVmFzaWx5IEt1em5ldHNvdgorVmljdG9yIE1hcnlhbWEKIFZpY3RvciBV
cmlhcnRlCiBWaWRhciBULiBGYXVza2UKK1ZpcmdpbCBEdXByYXMKIFZpdGFseSBMYXNobWFub3YK
IFZsYWQgRHJhZ29zCitWb2xvZHlteXIgUGlza3VuCitXaWwgQ29vbGV5CiBXaWxsaWFtIExlZQor
V2ltIEdsZW5uCiBXb3V0ZXIgdmFuIEFja29veQogWHVhbiBMdW9uZwogWHVlY29uZyBMaWFvCita
YWMgSGF0ZmllbGQtRG9kZHMKIFpvbHTDoW4gTcOhdMOpCi1Sb2xhbmQgUHVudGFpZXIKLUFsbGFu
IEZlbGRtYW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NIQU5HRUxPRy5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9DSEFOR0VMT0cucnN0CmluZGV4IDIxYTA5MDQxNGEwZGE3YWFlYmE5NTIyOGNkMjlhZTk4
MzEwZTUxNTcuLjg5NDM3NjYzZjU5YTFkMzdmZWE4OWVjOTg5ZmRkYTM3Yjc2MjJhMWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L0NIQU5HRUxPRy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQ0hBTkdF
TE9HLnJzdApAQCAtMSwzICsxLDEzIEBACis9PT09PT09PT09PT09PT09PQorQ2hhbmdlbG9nIGhp
c3RvcnkKKz09PT09PT09PT09PT09PT09CisKK1ZlcnNpb25zIGZvbGxvdyBgU2VtYW50aWMgVmVy
c2lvbmluZyA8aHR0cHM6Ly9zZW12ZXIub3JnLz5gXyAoYGA8bWFqb3I+LjxtaW5vcj4uPHBhdGNo
PmBgKS4KKworQmFja3dhcmQgaW5jb21wYXRpYmxlIChicmVha2luZykgY2hhbmdlcyB3aWxsIG9u
bHkgYmUgaW50cm9kdWNlZCBpbiBtYWpvciB2ZXJzaW9ucword2l0aCBhZHZhbmNlIG5vdGljZSBp
biB0aGUgKipEZXByZWNhdGlvbnMqKiBzZWN0aW9uIG9mIHJlbGVhc2VzLgorCisKIC4uCiAgICAg
WW91IHNob3VsZCAqTk9UKiBiZSBhZGRpbmcgbmV3IGNoYW5nZSBsb2cgZW50cmllcyB0byB0aGlz
IGZpbGUsIHRoaXMKICAgICBmaWxlIGlzIG1hbmFnZWQgYnkgdG93bmNyaWVyLiBZb3UgKm1heSog
ZWRpdCBwcmV2aW91cyBjaGFuZ2UgbG9ncyB0bwpAQCAtOCw3ICsxOCwxOTg2IEBACiAKIC4uIHRv
d25jcmllciByZWxlYXNlIG5vdGVzIHN0YXJ0CiAKLVB5dGVzdCAzLjYuMiAoMjAxOC0wNi0yMCkK
K3B5dGVzdCA0LjYuMTEgKDIwMjAtMDYtMDQpCis9PT09PT09PT09PT09PT09PT09PT09PT09PQor
CitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjNjMzNCA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy82MzM0PmBfOiBGaXggc3VtbWFyeSBlbnRyaWVzIGFwcGVh
cmluZyB0d2ljZSB3aGVuIGBgZi9GYGAgYW5kIGBgcy9TYGAgcmVwb3J0IGNoYXJzIHdlcmUgdXNl
ZCBhdCB0aGUgc2FtZSB0aW1lIGluIHRoZSBgYC1yYGAgY29tbWFuZC1saW5lIG9wdGlvbiAoZm9y
IGV4YW1wbGUgYGAtckZmYGApLgorCisgIFRoZSB1cHBlciBjYXNlIHZhcmlhbnRzIHdlcmUgbmV2
ZXIgZG9jdW1lbnRlZCBhbmQgdGhlIHByZWZlcnJlZCBmb3JtIHNob3VsZCBiZSB0aGUgbG93ZXIg
Y2FzZS4KKworCistIGAjNzMxMCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy83MzEwPmBfOiBGaXggYGBVbmJvdW5kTG9jYWxFcnJvcjogbG9jYWwgdmFyaWFibGUg
J2xldHRlcicgcmVmZXJlbmNlZCBiZWZvcmUKKyAgYXNzaWdubWVudGBgIGluIGBgX3B5dGVzdC50
ZXJtaW5hbC5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMoKWBgCisgIHdoZW4gcGx1Z2lucyByZXR1
cm4gcmVwb3J0IG9iamVjdHMgaW4gYW4gdW5jb252ZW50aW9uYWwgc3RhdGUuCisKKyAgVGhpcyB3
YXMgbWFraW5nIGBgcHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKClgYCBza2lwCisgIGVudGVyaW5n
IGlmLWJsb2NrIGJyYW5jaGVzIHRoYXQgZGVjbGFyZSB0aGUgYGBsZXR0ZXJgYCB2YXJpYWJsZS4K
KworICBUaGUgZml4IHdhcyB0byBzZXQgdGhlIGluaXRpYWwgdmFsdWUgb2YgdGhlIGBgbGV0dGVy
YGAgYmVmb3JlCisgIHRoZSBpZi1ibG9jayBjYXNjYWRlIHNvIHRoYXQgaXQgYWx3YXlzIGhhcyBh
IHZhbHVlLgorCisKK3B5dGVzdCA0LjYuMTAgKDIwMjAtMDUtMDgpCis9PT09PT09PT09PT09PT09
PT09PT09PT09PQorCitGZWF0dXJlcworLS0tLS0tLS0KKworLSBgIzY4NzAgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNjg3MD5gXzogTmV3IGBgQ29uZmlnLmlu
dm9jYXRpb25fYXJnc2BgIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSB1bmNoYW5nZWQgYXJndW1l
bnRzIHBhc3NlZCB0byBgYHB5dGVzdC5tYWluKClgYC4KKworICBSZW1hcms6IHdoaWxlIHRoaXMg
aXMgdGVjaG5pY2FsbHkgYSBuZXcgZmVhdHVyZSBhbmQgYWNjb3JkaW5nIHRvIG91ciBgcG9saWN5
IDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvcHkyNy1weTM0LWRlcHJlY2F0aW9u
Lmh0bWwjd2hhdC1nb2VzLWludG8tNC02LXgtcmVsZWFzZXM+YF8gaXQgc2hvdWxkIG5vdCBoYXZl
IGJlZW4gYmFja3BvcnRlZCwgd2UgaGF2ZSBvcGVuZWQgYW4gZXhjZXB0aW9uIGluIHRoaXMgcGFy
dGljdWxhciBjYXNlIGJlY2F1c2UgaXQgZml4ZXMgYSBzZXJpb3VzIGludGVyYWN0aW9uIHdpdGgg
YGBweXRlc3QteGRpc3RgYCwgc28gaXQgY2FuIGFsc28gYmUgY29uc2lkZXJlZCBhIGJ1Z2ZpeC4K
KworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
LSBgIzY0MDQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNjQw
ND5gXzogUmVtb3ZlIHVzYWdlIG9mIGBgcGFyc2VyYGAgbW9kdWxlLCBkZXByZWNhdGVkIGluIFB5
dGhvbiAzLjkuCisKKworcHl0ZXN0IDQuNi45ICgyMDIwLTAxLTA0KQorPT09PT09PT09PT09PT09
PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjNjMwMSA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy82MzAxPmBfOiBGaXggYXNzZXJ0aW9u
IHJld3JpdGluZyBmb3IgZWdnLWJhc2VkIGRpc3RyaWJ1dGlvbnMgYW5kIGBgZWRpdGFibGVgYCBp
bnN0YWxscyAoYGBwaXAgaW5zdGFsbCAtLWVkaXRhYmxlYGApLgorCisKK3B5dGVzdCA0LjYuOCAo
MjAxOS0xMi0xOSkKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworRmVhdHVyZXMKKy0tLS0t
LS0tCisKKy0gYCM1NDcxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzU0NzE+YF86IEpVbml0IFhNTCBub3cgaW5jbHVkZXMgYSB0aW1lc3RhbXAgYW5kIGhvc3Ru
YW1lIGluIHRoZSB0ZXN0c3VpdGUgdGFnLgorCisKKworQnVnIEZpeGVzCistLS0tLS0tLS0KKwor
LSBgIzU0MzAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTQz
MD5gXzoganVuaXR4bWw6IExvZ3MgZm9yIGZhaWxlZCB0ZXN0IGFyZSBub3cgcGFzc2VkIHRvIGp1
bml0IHJlcG9ydCBpbiBjYXNlIHRoZSB0ZXN0IGZhaWxzIGR1cmluZyBjYWxsIHBoYXNlLgorCisK
KworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
LSBgIzYzNDUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNjM0
NT5gXzogUGluIGBgY29sb3JhbWFgYCB0byBgYDAuNC4xYGAgb25seSBmb3IgUHl0aG9uIDMuNCBz
byBuZXdlciBQeXRob24gdmVyc2lvbnMgY2FuIHN0aWxsIHJlY2VpdmUgY29sb3JhbWEgdXBkYXRl
cy4KKworCitweXRlc3QgNC42LjcgKDIwMTktMTItMDUpCis9PT09PT09PT09PT09PT09PT09PT09
PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCM1NDc3IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU0Nzc+YF86IFRoZSBYTUwgZmlsZSBwcm9kdWNl
ZCBieSBgYC0tanVuaXR4bWxgYCBub3cgY29ycmVjdGx5IGNvbnRhaW4gYSBgYDx0ZXN0c3VpdGVz
PmBgIHJvb3QgZWxlbWVudC4KKworCistIGAjNjA0NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy82MDQ0PmBfOiBQcm9wZXJseSBpZ25vcmUgYGBGaWxlTm90Rm91
bmRFcnJvcmBgIChgYE9TRXJyb3IuZXJybm8gPT0gTk9FTlRgYCBpbiBQeXRob24gMikgZXhjZXB0
aW9ucyB3aGVuIHRyeWluZyB0byByZW1vdmUgb2xkIHRlbXBvcmFyeSBkaXJlY3RvcmllcywKKyAg
Zm9yIGluc3RhbmNlIHdoZW4gbXVsdGlwbGUgcHJvY2Vzc2VzIHRyeSB0byByZW1vdmUgdGhlIHNh
bWUgZGlyZWN0b3J5IChjb21tb24gd2l0aCBgYHB5dGVzdC14ZGlzdGBgCisgIGZvciBleGFtcGxl
KS4KKworCitweXRlc3QgNC42LjYgKDIwMTktMTAtMTEpCis9PT09PT09PT09PT09PT09PT09PT09
PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCM1NTIzIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU1MjM+YF86IEZpeGVkIHVzaW5nIG11bHRpcGxl
IHNob3J0IG9wdGlvbnMgdG9nZXRoZXIgaW4gdGhlIGNvbW1hbmQtbGluZSAoZm9yIGV4YW1wbGUg
YGAtdnNgYCkgaW4gUHl0aG9uIDMuOCsuCisKKworLSBgIzU1MzcgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTUzNz5gXzogUmVwbGFjZSBgYGltcG9ydGxpYl9t
ZXRhZGF0YWBgIGJhY2twb3J0IHdpdGggYGBpbXBvcnRsaWIubWV0YWRhdGFgYCBmcm9tIHRoZQor
ICBzdGFuZGFyZCBsaWJyYXJ5IG9uIFB5dGhvbiAzLjgrLgorCisKKy0gYCM1ODA2IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU4MDY+YF86IEZpeCAibGV4ZXIi
IGJlaW5nIHVzZWQgd2hlbiB1cGxvYWRpbmcgdG8gYnBhc3RlLm5ldCBmcm9tIGBgLS1wYXN0ZWJp
bmBgIHRvICJ0ZXh0Ii4KKworCistIGAjNTkwMiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy81OTAyPmBfOiBGaXggd2FybmluZ3MgYWJvdXQgZGVwcmVjYXRlZCBg
YGNtcGBgIGF0dHJpYnV0ZSBpbiBgYGF0dHJzPj0xOS4yYGAuCisKKworCitUcml2aWFsL0ludGVy
bmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjNTgwMSA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81ODAxPmBfOiBGaXhlcyBweXRo
b24gdmVyc2lvbiBjaGVja3MgKGRldGVjdGVkIGJ5IGBgZmxha2U4LTIwMjBgYCkgaW4gY2FzZSBw
eXRob240IGJlY29tZXMgYSB0aGluZy4KKworCitweXRlc3QgNC42LjUgKDIwMTktMDgtMDUpCis9
PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCM0
MzQ0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzNDQ+YF86
IEZpeCBSdW50aW1lRXJyb3IvU3RvcEl0ZXJhdGlvbiB3aGVuIHRyeWluZyB0byBjb2xsZWN0IHBh
Y2thZ2Ugd2l0aCAiX19pbml0X18ucHkiIG9ubHkuCisKKworLSBgIzU0NzggPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTQ3OD5gXzogRml4IGVuY29kZSBlcnJv
ciB3aGVuIHVzaW5nIHVuaWNvZGUgc3RyaW5ncyBpbiBleGNlcHRpb25zIHdpdGggYGBweXRlc3Qu
cmFpc2VzYGAuCisKKworLSBgIzU1MjQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNTUyND5gXzogRml4IGlzc3VlIHdoZXJlIGBgdG1wX3BhdGhgYCBhbmQgYGB0
bXBkaXJgYCB3b3VsZCBub3QgcmVtb3ZlIGRpcmVjdG9yaWVzIGNvbnRhaW5pbmcgZmlsZXMgbWFy
a2VkIGFzIHJlYWQtb25seSwKKyAgd2hpY2ggY291bGQgbGVhZCB0byBweXRlc3QgY3Jhc2hpbmcg
d2hlbiBleGVjdXRlZCBhIHNlY29uZCB0aW1lIHdpdGggdGhlIGBgLS1iYXNldGVtcGBgIG9wdGlv
bi4KKworCistIGAjNTU0NyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy81NTQ3PmBfOiBgYC0tc3RlcC13aXNlYGAgbm93IGhhbmRsZXMgYGB4ZmFpbChzdHJpY3Q9
VHJ1ZSlgYCBtYXJrZXJzIHByb3Blcmx5LgorCisKKy0gYCM1NjUwIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU2NTA+YF86IEltcHJvdmVkIG91dHB1dCB3aGVu
IHBhcnNpbmcgYW4gaW5pIGNvbmZpZ3VyYXRpb24gZmlsZSBmYWlscy4KKworCitweXRlc3QgNC42
LjQgKDIwMTktMDYtMjgpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcwor
LS0tLS0tLS0tCisKKy0gYCM1NDA0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzU0MDQ+YF86IEVtaXQgYSB3YXJuaW5nIHdoZW4gYXR0ZW1wdGluZyB0byB1bndy
YXAgYSBicm9rZW4gb2JqZWN0IHJhaXNlcyBhbiBleGNlcHRpb24sCisgIGZvciBlYXNpZXIgZGVi
dWdnaW5nIChgIzUwODAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvNTA4MD5gX18pLgorCisKKy0gYCM1NDQ0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzU0NDQ+YF86IEZpeCBgYC0tc3RlcHdpc2VgYCBtb2RlIHdoZW4gdGhl
IGZpcnN0IGZpbGUgcGFzc2VkIG9uIHRoZSBjb21tYW5kLWxpbmUgZmFpbHMgdG8gY29sbGVjdC4K
KworCistIGAjNTQ4MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy81NDgyPmBfOiBGaXggYnVnIGludHJvZHVjZWQgaW4gNC42LjAgY2F1c2luZyBjb2xsZWN0aW9u
IGVycm9ycyB3aGVuIHBhc3NpbmcKKyAgbW9yZSB0aGFuIDIgcG9zaXRpb25hbCBhcmd1bWVudHMg
dG8gYGBweXRlc3QubWFyay5wYXJhbWV0cml6ZWBgLgorCisKKy0gYCM1NTA1IDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU1MDU+YF86IEZpeCBjcmFzaCB3aGVu
IGRpc2NvdmVyeSBmYWlscyB3aGlsZSB1c2luZyBgYC1wIG5vOnRlcm1pbmFsYGAuCisKKworcHl0
ZXN0IDQuNi4zICgyMDE5LTA2LTExKQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcg
Rml4ZXMKKy0tLS0tLS0tLQorCistIGAjNTM4MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy81MzgzPmBfOiBgYC1xYGAgaGFzIGFnYWluIGFuIGltcGFjdCBvbiB0
aGUgc3R5bGUgb2YgdGhlIGNvbGxlY3RlZCBpdGVtcworICAoYGAtLWNvbGxlY3Qtb25seWBgKSB3
aGVuIGBgLS1sb2ctY2xpLWxldmVsYGAgaXMgdXNlZC4KKworCistIGAjNTM4OSA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81Mzg5PmBfOiBGaXggcmVncmVzc2lv
bnMgb2YgYCM1MDYzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC81
MDYzPmBfXyBmb3IgYGBpbXBvcnRsaWJfbWV0YWRhdGEuUGF0aERpc3RyaWJ1dGlvbmBgIHdoaWNo
IGhhdmUgdGhlaXIgYGBmaWxlc2BgIGF0dHJpYnV0ZSBiZWluZyBgYE5vbmVgYC4KKworCistIGAj
NTM5MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MzkwPmBf
OiBGaXggcmVncmVzc2lvbiB3aGVyZSB0aGUgYGBvYmpgYCBhdHRyaWJ1dGUgb2YgYGBUZXN0Q2Fz
ZWBgIGl0ZW1zIHdhcyBubyBsb25nZXIgYm91bmQgdG8gbWV0aG9kcy4KKworCitweXRlc3QgNC42
LjIgKDIwMTktMDYtMDMpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcwor
LS0tLS0tLS0tCisKKy0gYCM1MzcwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzUzNzA+YF86IFJldmVydCB1bnJvbGxpbmcgb2YgYGBhbGwoKWBgIHRvIGZpeCBg
YE5hbWVFcnJvcmBgIG9uIG5lc3RlZCBjb21wcmVoZW5zaW9ucy4KKworCistIGAjNTM3MSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MzcxPmBfOiBSZXZlcnQg
dW5yb2xsaW5nIG9mIGBgYWxsKClgYCB0byBmaXggaW5jb3JyZWN0IGhhbmRsaW5nIG9mIGdlbmVy
YXRvcnMgd2l0aCBgYGlmYGAuCisKKworLSBgIzUzNzIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTM3Mj5gXzogUmV2ZXJ0IHVucm9sbGluZyBvZiBgYGFsbCgp
YGAgdG8gZml4IGluY29ycmVjdCBhc3NlcnRpb24gd2hlbiB1c2luZyBgYGFsbCgpYGAgaW4gYW4g
ZXhwcmVzc2lvbi4KKworCitweXRlc3QgNC42LjEgKDIwMTktMDYtMDIpCis9PT09PT09PT09PT09
PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCM1MzU0IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUzNTQ+YF86IEZpeCBgYHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplYGAgd2hlbiB0aGUgYXJndmFsdWVzIGlzIGFuIGl0ZXJhdG9yLgor
CisKKy0gYCM1MzU4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzUzNTg+YF86IEZpeCBhc3NlcnRpb24gcmV3cml0aW5nIG9mIGBgYWxsKClgYCBjYWxscyB0byBk
ZWFsIHdpdGggbm9uLWdlbmVyYXRvcnMuCisKKworcHl0ZXN0IDQuNi4wICgyMDE5LTA1LTMxKQor
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJbXBvcnRhbnQKKy0tLS0tLS0tLQorCitUaGUg
YGA0LjYuWGBgIHNlcmllcyB3aWxsIGJlIHRoZSBsYXN0IHNlcmllcyB0byBzdXBwb3J0ICoqUHl0
aG9uIDIgYW5kIFB5dGhvbiAzLjQqKi4KKworRm9yIG1vcmUgZGV0YWlscywgc2VlIG91ciBgUHl0
aG9uIDIuNyBhbmQgMy40IHN1cHBvcnQgcGxhbiA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L3B5MjctcHkzNC1kZXByZWNhdGlvbi5odG1sPmBfXy4KKworCitGZWF0dXJlcworLS0t
LS0tLS0KKworLSBgIzQ1NTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNDU1OT5gXzogQWRkZWQgdGhlIGBganVuaXRfbG9nX3Bhc3NpbmdfdGVzdHNgYCBpbmkg
dmFsdWUgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgbG9nZ2luZyBvZiBw
YXNzaW5nIHRlc3Qgb3V0cHV0IGluIHRoZSBKdW5pdCBYTUwgZmlsZS4KKworCistIGAjNDk1NiA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80OTU2PmBfOiBweXRl
c3RlcidzIGBgdGVzdGRpci5zcGF3bmBgIHVzZXMgYGB0bXBkaXJgYCBhcyBIT01FL1VTRVJQUk9G
SUxFIGRpcmVjdG9yeS4KKworCistIGAjNTA2MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy81MDYyPmBfOiBVbnJvbGwgY2FsbHMgdG8gYGBhbGxgYCB0byBmdWxs
IGZvci1sb29wcyB3aXRoIGFzc2VydGlvbiByZXdyaXRpbmcgZm9yIGJldHRlciBmYWlsdXJlIG1l
c3NhZ2VzLCBlc3BlY2lhbGx5IHdoZW4gdXNpbmcgR2VuZXJhdG9yIEV4cHJlc3Npb25zLgorCisK
Ky0gYCM1MDYzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUw
NjM+YF86IFN3aXRjaCBmcm9tIGBgcGtnX3Jlc291cmNlc2BgIHRvIGBgaW1wb3J0bGliLW1ldGFk
YXRhYGAgZm9yIGVudHJ5cG9pbnQgZGV0ZWN0aW9uIGZvciBpbXByb3ZlZCBwZXJmb3JtYW5jZSBh
bmQgaW1wb3J0IHRpbWUuCisKKworLSBgIzUwOTEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvNTA5MT5gXzogVGhlIG91dHB1dCBmb3IgaW5pIG9wdGlvbnMgaW4g
YGAtLWhlbHBgYCBoYXMgYmVlbiBpbXByb3ZlZC4KKworCistIGAjNTI2OSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MjY5PmBfOiBgYHB5dGVzdC5pbXBvcnRv
cnNraXBgYCBpbmNsdWRlcyB0aGUgYGBJbXBvcnRFcnJvcmBgIG5vdyBpbiB0aGUgZGVmYXVsdCBg
YHJlYXNvbmBgLgorCisKKy0gYCM1MzExIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzUzMTE+YF86IENhcHR1cmVkIGxvZ3MgdGhhdCBhcmUgb3V0cHV0IGZvciBl
YWNoIGZhaWxpbmcgdGVzdCBhcmUgZm9ybWF0dGVkIHVzaW5nIHRoZQorICBDb2xvcmVkTGV2ZWxG
b3JtYXR0ZXIuCisKKworLSBgIzUzMTIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNTMxMj5gXzogSW1wcm92ZWQgZm9ybWF0dGluZyBvZiBtdWx0aWxpbmUgbG9n
IG1lc3NhZ2VzIGluIFB5dGhvbiAzLgorCisKKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBg
IzIwNjQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjA2ND5g
XzogVGhlIGRlYnVnZ2luZyBwbHVnaW4gaW1wb3J0cyB0aGUgd3JhcHBlZCBgYFBkYmBgIGNsYXNz
IChgYC0tcGRiY2xzYGApIG9uLWRlbWFuZCBub3cuCisKKworLSBgIzQ5MDggPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDkwOD5gXzogVGhlIGBgcHl0ZXN0X2Vu
dGVyX3BkYmBgIGhvb2sgZ2V0cyBjYWxsZWQgd2l0aCBwb3N0LW1vcnRlbSAoYGAtLXBkYmBgKS4K
KworCistIGAjNTAzNiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy81MDM2PmBfOiBGaXggaXNzdWUgd2hlcmUgZml4dHVyZXMgZGVwZW5kZW50IG9uIG90aGVyIHBh
cmFtZXRyaXplZCBmaXh0dXJlcyB3b3VsZCBiZSBlcnJvbmVvdXNseSBwYXJhbWV0cml6ZWQuCisK
KworLSBgIzUyNTYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NTI1Nj5gXzogSGFuZGxlIGludGVybmFsIGVycm9yIGR1ZSB0byBhIGxvbmUgc3Vycm9nYXRlIHVu
aWNvZGUgY2hhcmFjdGVyIG5vdCBiZWluZyByZXByZXNlbnRhYmxlIGluIEp5dGhvbi4KKworCist
IGAjNTI1NyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MjU3
PmBfOiBFbnN1cmUgdGhhdCBgYHN5cy5zdGRvdXQubW9kZWBgIGRvZXMgbm90IGluY2x1ZGUgYGAn
YidgYCBhcyBpdCBpcyBhIHRleHQgc3RyZWFtLgorCisKKy0gYCM1Mjc4IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUyNzg+YF86IFB5dGVzdCdzIGludGVybmFs
IHB5dGhvbiBwbHVnaW4gY2FuIGJlIGRpc2FibGVkIHVzaW5nIGBgLXAgbm86cHl0aG9uYGAgYWdh
aW4uCisKKworLSBgIzUyODYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNTI4Nj5gXzogRml4IGlzc3VlIHdpdGggYGBkaXNhYmxlX3Rlc3RfaWRfZXNjYXBpbmdf
YW5kX2ZvcmZlaXRfYWxsX3JpZ2h0c190b19jb21tdW5pdHlfc3VwcG9ydGBgIG9wdGlvbiBub3Qg
d29ya2luZyB3aGVuIHVzaW5nIGEgbGlzdCBvZiB0ZXN0IElEcyBpbiBwYXJhbWV0cml6ZWQgdGVz
dHMuCisKKworLSBgIzUzMzAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNTMzMD5gXzogU2hvdyB0aGUgdGVzdCBtb2R1bGUgYmVpbmcgY29sbGVjdGVkIHdoZW4g
ZW1pdHRpbmcgYGBQeXRlc3RDb2xsZWN0aW9uV2FybmluZ2BgIG1lc3NhZ2VzIGZvcgorICB0ZXN0
IGNsYXNzZXMgd2l0aCBgYF9faW5pdF9fYGAgYW5kIGBgX19uZXdfX2BgIG1ldGhvZHMgdG8gbWFr
ZSBpdCBlYXNpZXIgdG8gcGluIGRvd24gdGhlIHByb2JsZW0uCisKKworLSBgIzUzMzMgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTMzMz5gXzogRml4IHJlZ3Jl
c3Npb24gaW4gNC41LjAgd2l0aCBgYC0tbGZgYCBub3QgcmUtcnVubmluZyBhbGwgdGVzdHMgd2l0
aCBrbm93biBmYWlsdXJlcyBmcm9tIG5vbi1zZWxlY3RlZCB0ZXN0cy4KKworCisKK0ltcHJvdmVk
IERvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzUyNTAgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTI1MD5gXzogRXhwYW5kIGRv
Y3Mgb24gdXNlIG9mIGBgc2V0ZW52YGAgYW5kIGBgZGVsZW52YGAgd2l0aCBgYG1vbmtleXBhdGNo
YGAuCisKKworcHl0ZXN0IDQuNS4wICgyMDE5LTA1LTExKQorPT09PT09PT09PT09PT09PT09PT09
PT09PQorCitGZWF0dXJlcworLS0tLS0tLS0KKworLSBgIzQ4MjYgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDgyNj5gXzogQSB3YXJuaW5nIGlzIG5vdyBlbWl0
dGVkIHdoZW4gdW5rbm93biBtYXJrcyBhcmUgdXNlZCBhcyBhIGRlY29yYXRvci4KKyAgVGhpcyBp
cyBvZnRlbiBkdWUgdG8gYSB0eXBvLCB3aGljaCBjYW4gbGVhZCB0byBzaWxlbnRseSBicm9rZW4g
dGVzdHMuCisKKworLSBgIzQ5MDcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvNDkwNz5gXzogU2hvdyBYRmFpbCByZWFzb24gYXMgcGFydCBvZiBKVW5pdFhNTCBt
ZXNzYWdlIGZpZWxkLgorCisKKy0gYCM1MDEzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzUwMTM+YF86IE1lc3NhZ2VzIGZyb20gY3Jhc2ggcmVwb3J0cyBhcmUg
ZGlzcGxheWVkIHdpdGhpbiB0ZXN0IHN1bW1hcmllcyBub3csIHRydW5jYXRlZCB0byB0aGUgdGVy
bWluYWwgd2lkdGguCisKKworLSBgIzUwMjMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNTAyMz5gXzogTmV3IGZsYWcgYGAtLXN0cmljdC1tYXJrZXJzYGAgdGhh
dCB0cmlnZ2VycyBhbiBlcnJvciB3aGVuIHVua25vd24gbWFya2VycyAoZS5nLiB0aG9zZSBub3Qg
cmVnaXN0ZXJlZCB1c2luZyB0aGUgYG1hcmtlcnMgb3B0aW9uYF8gaW4gdGhlIGNvbmZpZ3VyYXRp
b24gZmlsZSkgYXJlIHVzZWQgaW4gdGhlIHRlc3Qgc3VpdGUuCisKKyAgVGhlIGV4aXN0aW5nIGBg
LS1zdHJpY3RgYCBvcHRpb24gaGFzIHRoZSBzYW1lIGJlaGF2aW9yIGN1cnJlbnRseSwgYnV0IGNh
biBiZSBhdWdtZW50ZWQgaW4gdGhlIGZ1dHVyZSBmb3IgYWRkaXRpb25hbCBjaGVja3MuCisKKyAg
Li4gX2BtYXJrZXJzIG9wdGlvbmA6IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9y
ZWZlcmVuY2UuaHRtbCNjb25mdmFsLW1hcmtlcnMKKworCistIGAjNTAyNiA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDI2PmBfOiBBc3NlcnRpb24gZmFpbHVy
ZSBtZXNzYWdlcyBmb3Igc2VxdWVuY2VzIGFuZCBkaWN0cyBjb250YWluIHRoZSBudW1iZXIgb2Yg
ZGlmZmVyZW50IGl0ZW1zIG5vdy4KKworCistIGAjNTAzNCA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDM0PmBfOiBJbXByb3ZlIHJlcG9ydGluZyB3aXRoIGBg
LS1sZmBgIGFuZCBgYC0tZmZgYCAocnVuLWxhc3QtZmFpbHVyZSkuCisKKworLSBgIzUwMzUgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTAzNT5gXzogVGhlIGBg
LS1jYWNoZS1zaG93YGAgb3B0aW9uL2FjdGlvbiBhY2NlcHRzIGFuIG9wdGlvbmFsIGdsb2IgdG8g
c2hvdyBvbmx5IG1hdGNoaW5nIGNhY2hlIGVudHJpZXMuCisKKworLSBgIzUwNTkgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTA1OT5gXzogU3RhbmRhcmQgaW5w
dXQgKHN0ZGluKSBjYW4gYmUgZ2l2ZW4gdG8gcHl0ZXN0ZXIncyBgYFRlc3RkaXIucnVuKClgYCBh
bmQgYGBUZXN0ZGlyLnBvcGVuKClgYC4KKworCistIGAjNTA2OCA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDY4PmBfOiBUaGUgYGAtcmBgIG9wdGlvbiBsZWFy
bnQgYWJvdXQgYGBBYGAgdG8gZGlzcGxheSBhbGwgcmVwb3J0cyAoaW5jbHVkaW5nIHBhc3NlZCBv
bmVzKSBpbiB0aGUgc2hvcnQgdGVzdCBzdW1tYXJ5LgorCisKKy0gYCM1MTA4IDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUxMDg+YF86IFRoZSBzaG9ydCB0ZXN0
IHN1bW1hcnkgaXMgZGlzcGxheWVkIGFmdGVyIHBhc3NlcyB3aXRoIG91dHB1dCAoYGAtclBgYCku
CisKKworLSBgIzUxNzIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvNTE3Mj5gXzogVGhlIGBgLS1sYXN0LWZhaWxlZGBgIChgYC0tbGZgYCkgb3B0aW9uIGdvdCBz
bWFydGVyIGFuZCB3aWxsIG5vdyBza2lwIGVudGlyZSBmaWxlcyBpZiBhbGwgdGVzdHMKKyAgb2Yg
dGhhdCB0ZXN0IGZpbGUgaGF2ZSBwYXNzZWQgaW4gcHJldmlvdXMgcnVucywgZ3JlYXRseSBzcGVl
ZGluZyB1cCBjb2xsZWN0aW9uLgorCisKKy0gYCM1MTc3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUxNzc+YF86IEludHJvZHVjZSBuZXcgc3BlY2lmaWMgd2Fy
bmluZyBgYFB5dGVzdFdhcm5pbmdgYCBzdWJjbGFzc2VzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGZp
bHRlciB3YXJuaW5ncyBiYXNlZCBvbiB0aGUgY2xhc3MsIHJhdGhlciB0aGFuIG9uIHRoZSBtZXNz
YWdlLiBUaGUgbmV3IHN1YmNsYXNzZXMgYXJlOgorCisKKyAgKiBgYFB5dGVzdEFzc2VydFJld3Jp
dGVXYXJuaW5nYGAKKworICAqIGBgUHl0ZXN0Q2FjaGVXYXJuaW5nYGAKKworICAqIGBgUHl0ZXN0
Q29sbGVjdGlvbldhcm5pbmdgYAorCisgICogYGBQeXRlc3RDb25maWdXYXJuaW5nYGAKKworICAq
IGBgUHl0ZXN0VW5oYW5kbGVkQ29yb3V0aW5lV2FybmluZ2BgCisKKyAgKiBgYFB5dGVzdFVua25v
d25NYXJrV2FybmluZ2BgCisKKworLSBgIzUyMDIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvNTIwMj5gXzogTmV3IGBgcmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0
eWBgIHNlc3Npb24tc2NvcGVkIGZpeHR1cmUgYWxsb3dzIHVzZXJzIHRvIGxvZyBgYDxwcm9wZXJ0
eT5gYCB0YWdzIGF0IHRoZSBgYHRlc3RzdWl0ZWBgCisgIGxldmVsIHdpdGggdGhlIGBganVuaXR4
bWxgYCBwbHVnaW4uCisKKyAgVGhlIGdlbmVyYXRlZCBYTUwgaXMgY29tcGF0aWJsZSB3aXRoIHRo
ZSBsYXRlc3QgeHVuaXQgc3RhbmRhcmQsIGNvbnRyYXJ5IHRvCisgIHRoZSBwcm9wZXJ0aWVzIHJl
Y29yZGVkIGJ5IGBgcmVjb3JkX3Byb3BlcnR5YGAgYW5kIGBgcmVjb3JkX3htbF9hdHRyaWJ1dGVg
YC4KKworCistIGAjNTIxNCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy81MjE0PmBfOiBUaGUgZGVmYXVsdCBsb2dnaW5nIGZvcm1hdCBoYXMgYmVlbiBjaGFuZ2Vk
IHRvIGltcHJvdmUgcmVhZGFiaWxpdHkuIEhlcmUgaXMgYW4KKyAgZXhhbXBsZSBvZiBhIHByZXZp
b3VzIGxvZ2dpbmcgbWVzc2FnZTo6CisKKyAgICAgIHRlc3RfbG9nX2NsaV9lbmFibGVkX2Rpc2Fi
bGVkLnB5ICAgIDMgQ1JJVElDQUwgY3JpdGljYWwgbWVzc2FnZSBsb2dnZWQgYnkgdGVzdAorCisg
IFRoaXMgaGFzIG5vdyBiZWNvbWU6OgorCisgICAgICBDUklUSUNBTCByb290OnRlc3RfbG9nX2Ns
aV9lbmFibGVkX2Rpc2FibGVkLnB5OjMgY3JpdGljYWwgbWVzc2FnZSBsb2dnZWQgYnkgdGVzdAor
CisgIFRoZSBmb3JtYXR0aW5nIGNhbiBiZSBjaGFuZ2VkIHRocm91Z2ggdGhlIGBsb2dfZm9ybWF0
IDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvcmVmZXJlbmNlLmh0bWwjY29uZnZh
bC1sb2dfZm9ybWF0PmBfXyBjb25maWd1cmF0aW9uIG9wdGlvbi4KKworCistIGAjNTIyMCA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MjIwPmBfOiBgYC0tZml4
dHVyZXNgYCBub3cgYWxzbyBzaG93cyBmaXh0dXJlIHNjb3BlIGZvciBzY29wZXMgb3RoZXIgdGhh
biBgYCJmdW5jdGlvbiJgYC4KKworCisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCM1MTEz
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUxMTM+YF86IERl
c2VsZWN0ZWQgaXRlbXMgZnJvbSBwbHVnaW5zIHVzaW5nIGBgcHl0ZXN0X2NvbGxlY3RfbW9kaWZ5
aXRlbXNgYCBhcyBhIGhvb2t3cmFwcGVyIGFyZSBjb3JyZWN0bHkgcmVwb3J0ZWQgbm93LgorCisK
Ky0gYCM1MTQ0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUx
NDQ+YF86IFdpdGggdXNhZ2UgZXJyb3JzIGBgZXhpdHN0YXR1c2BgIGlzIHNldCB0byBgYEVYSVRf
VVNBR0VFUlJPUmBgIGluIHRoZSBgYHB5dGVzdF9zZXNzaW9uZmluaXNoYGAgaG9vayBub3cgYXMg
ZXhwZWN0ZWQuCisKKworLSBgIzUyMzUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNTIzNT5gXzogYGBvdXRjb21lLmV4aXRgYCBpcyBub3QgdXNlZCB3aXRoIGBg
RU9GYGAgaW4gdGhlIHBkYiB3cmFwcGVyIGFueW1vcmUsIGJ1dCBvbmx5IHdpdGggYGBxdWl0YGAu
CisKKworCitJbXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky0gYCM0OTM1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5
MzU+YF86IEV4cGFuZCBkb2NzIG9uIHJlZ2lzdGVyaW5nIG1hcmtzIGFuZCB0aGUgZWZmZWN0IG9m
IGBgLS1zdHJpY3RgYC4KKworCisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKy0gYCM0OTQyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzQ5NDI+YF86IGBgbG9nZ2luZy5yYWlzZUV4Y2VwdGlvbnNgYCBpcyBu
b3Qgc2V0IHRvIGBgRmFsc2VgYCBhbnltb3JlLgorCisKKy0gYCM1MDEzIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUwMTM+YF86IHB5dGVzdCBub3cgZGVwZW5k
cyBvbiBgd2N3aWR0aCA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3djd2lkdGg+YF9fIHRvIHBy
b3Blcmx5IHRyYWNrIHVuaWNvZGUgY2hhcmFjdGVyIHNpemVzIGZvciBtb3JlIHByZWNpc2UgdGVy
bWluYWwgb3V0cHV0LgorCisKKy0gYCM1MDU5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzUwNTk+YF86IHB5dGVzdGVyJ3MgYGBUZXN0ZGlyLnBvcGVuKClgYCB1
c2VzIGBgc3Rkb3V0YGAgYW5kIGBgc3RkZXJyYGAgdmlhIGtleXdvcmQgYXJndW1lbnRzIHdpdGgg
ZGVmYXVsdHMgbm93IChgYHN1YnByb2Nlc3MuUElQRWBgKS4KKworCistIGAjNTA2OSA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDY5PmBfOiBUaGUgY29kZSBm
b3IgdGhlIHNob3J0IHRlc3Qgc3VtbWFyeSBpbiB0aGUgdGVybWluYWwgd2FzIG1vdmVkIHRvIHRo
ZSB0ZXJtaW5hbCBwbHVnaW4uCisKKworLSBgIzUwODIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTA4Mj5gXzogSW1wcm92ZWQgdmFsaWRhdGlvbiBvZiBrd2Fy
Z3MgZm9yIHZhcmlvdXMgbWV0aG9kcyBpbiB0aGUgcHl0ZXN0ZXIgcGx1Z2luLgorCisKKy0gYCM1
MjAyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUyMDI+YF86
IGBgcmVjb3JkX3Byb3BlcnR5YGAgbm93IGVtaXRzIGEgYGBQeXRlc3RXYXJuaW5nYGAgd2hlbiB1
c2VkIHdpdGggYGBqdW5pdF9mYW1pbHk9eHVuaXQyYGA6IHRoZSBmaXh0dXJlIGdlbmVyYXRlcwor
ICBgYHByb3BlcnR5YGAgdGFncyBhcyBjaGlsZHJlbiBvZiBgYHRlc3RjYXNlYGAsIHdoaWNoIGlz
IG5vdCBwZXJtaXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBtb3N0CisgIGByZWNlbnQgc2NoZW1hIDxo
dHRwczovL2dpdGh1Yi5jb20vamVua2luc2NpL3h1bml0LXBsdWdpbi9ibG9iL21hc3Rlci8KKyAg
c3JjL21haW4vcmVzb3VyY2VzL29yZy9qZW5raW5zY2kvcGx1Z2lucy94dW5pdC90eXBlcy9tb2Rl
bC94c2QvanVuaXQtMTAueHNkPmBfXy4KKworCistIGAjNTIzOSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MjM5PmBfOiBQaW4gYGBwbHVnZ3lgYCB0byBgYDwg
MS4wYGAgc28gd2UgZG9uJ3QgdXBkYXRlIHRvIGBgMS4wYGAgYXV0b21hdGljYWxseSB3aGVuCisg
IGl0IGdldHMgcmVsZWFzZWQ6IHRoZXJlIGFyZSBwbGFubmVkIGJyZWFraW5nIGNoYW5nZXMsIGFu
ZCB3ZSB3YW50IHRvIGVuc3VyZQorICBweXRlc3QgcHJvcGVybHkgc3VwcG9ydHMgYGBwbHVnZ3kg
MS4wYGAuCisKKworcHl0ZXN0IDQuNC4yICgyMDE5LTA1LTA4KQorPT09PT09PT09PT09PT09PT09
PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjNTA4OSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDg5PmBfOiBGaXggY3Jhc2ggY2F1c2Vk
IGJ5IGVycm9yIGluIGBgX19yZXByX19gYCBmdW5jdGlvbiB3aXRoIGJvdGggYGBzaG93bG9jYWxz
YGAgYW5kIHZlcmJvc2Ugb3V0cHV0IGVuYWJsZWQuCisKKworLSBgIzUxMzkgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTEzOT5gXzogRWxpbWluYXRlIGNvcmUg
ZGVwZW5kZW5jeSBvbiAndGVybWluYWwnIHBsdWdpbi4KKworCistIGAjNTIyOSA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MjI5PmBfOiBSZXF1aXJlIGBgcGx1
Z2d5Pj0wLjExLjBgYCB3aGljaCByZXZlcnRzIGEgZGVwZW5kZW5jeSB0byBgYGltcG9ydGxpYi1t
ZXRhZGF0YWBgIGFkZGVkIGluIGBgMC4xMC4wYGAuCisgIFRoZSBgYGltcG9ydGxpYi1tZXRhZGF0
YWBgIHBhY2thZ2UgY2Fubm90IGJlIGltcG9ydGVkIHdoZW4gaW5zdGFsbGVkIGFzIGFuIGVnZyBh
bmQgY2F1c2VzIGlzc3VlcyB3aGVuIHJlbHlpbmcgb24gYGBzZXR1cC5weWBgIHRvIGluc3RhbGwg
dGVzdCBkZXBlbmRlbmNpZXMuCisKKworCitJbXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKy0gYCM1MTcxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzUxNzE+YF86IERvYzogYGBweXRlc3RfaWdub3JlX2NvbGxlY3RgYCwg
YGBweXRlc3RfY29sbGVjdF9kaXJlY3RvcnlgYCwgYGBweXRlc3RfY29sbGVjdF9maWxlYGAgYW5k
IGBgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlYGAgaG9va3MncyAncGF0aCcgcGFyYW1ldGVy
IGRvY3VtZW50ZWQgdHlwZSBpcyBub3cgYGBweS5wYXRoLmxvY2FsYGAKKworCistIGAjNTE4OCA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MTg4PmBfOiBJbXBy
b3ZlIGhlbHAgZm9yIGBgLS1ydW54ZmFpbGBgIGZsYWcuCisKKworCitUcml2aWFsL0ludGVybmFs
IENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjNTE4MiA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MTgyPmBfOiBSZW1vdmVkIGludGVy
bmFsIGFuZCB1bnVzZWQgYGBfcHl0ZXN0LmRlcHJlY2F0ZWQuTUFSS19JTkZPX0FUVFJJQlVURWBg
LgorCisKK3B5dGVzdCA0LjQuMSAoMjAxOS0wNC0xNSkKKz09PT09PT09PT09PT09PT09PT09PT09
PT0KKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzUwMzEgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTAzMT5gXzogRW52aXJvbm1lbnQgdmFyaWFibGVz
IGFyZSBwcm9wZXJseSByZXN0b3JlZCB3aGVuIHVzaW5nIHB5dGVzdGVyJ3MgYGB0ZXN0ZGlyYGAg
Zml4dHVyZS4KKworCistIGAjNTAzOSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy81MDM5PmBfOiBGaXggcmVncmVzc2lvbiB3aXRoIGBgLS1wZGJjbHNgYCwgd2hp
Y2ggc3RvcHBlZCB3b3JraW5nIHdpdGggbG9jYWwgbW9kdWxlcyBpbiA0LjAuMC4KKworCistIGAj
NTA5MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDkyPmBf
OiBQcm9kdWNlIGEgd2FybmluZyB3aGVuIHVua25vd24ga2V5d29yZHMgYXJlIHBhc3NlZCB0byBg
YHB5dGVzdC5wYXJhbSguLi4pYGAuCisKKworLSBgIzUwOTggPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTA5OD5gXzogSW52YWxpZGF0ZSBpbXBvcnQgY2FjaGVz
IHdpdGggYGBtb25rZXlwYXRjaC5zeXNwYXRoX3ByZXBlbmRgYCwgd2hpY2ggaXMgcmVxdWlyZWQg
d2l0aCBuYW1lc3BhY2UgcGFja2FnZXMgYmVpbmcgdXNlZC4KKworCitweXRlc3QgNC40LjAgKDIw
MTktMDMtMjkpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0ZlYXR1cmVzCistLS0tLS0t
LQorCistIGAjMjIyNCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8yMjI0PmBfOiBgYGFzeW5jYGAgdGVzdCBmdW5jdGlvbnMgYXJlIHNraXBwZWQgYW5kIGEgd2Fy
bmluZyBpcyBlbWl0dGVkIHdoZW4gYSBzdWl0YWJsZQorICBhc3luYyBwbHVnaW4gaXMgbm90IGlu
c3RhbGxlZCAoc3VjaCBhcyBgYHB5dGVzdC1hc3luY2lvYGAgb3IgYGBweXRlc3QtdHJpb2BgKS4K
KworICBQcmV2aW91c2x5IGBgYXN5bmNgYCBmdW5jdGlvbnMgd291bGQgbm90IGV4ZWN1dGUgYXQg
YWxsIGJ1dCBzdGlsbCBiZSBtYXJrZWQgYXMgInBhc3NlZCIuCisKKworLSBgIzI0ODIgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjQ4Mj5gXzogSW5jbHVkZSBu
ZXcgYGBkaXNhYmxlX3Rlc3RfaWRfZXNjYXBpbmdfYW5kX2ZvcmZlaXRfYWxsX3JpZ2h0c190b19j
b21tdW5pdHlfc3VwcG9ydGBgIG9wdGlvbiB0byBkaXNhYmxlIGFzY2lpLWVzY2FwaW5nIGluIHBh
cmFtZXRyaXplZCB2YWx1ZXMuIFRoaXMgbWF5IGNhdXNlIGEgc2VyaWVzIG9mIHByb2JsZW1zIGFu
ZCBhcyB0aGUgbmFtZSBtYWtlcyBjbGVhciwgdXNlIGF0IHlvdXIgb3duIHJpc2suCisKKworLSBg
IzQ3MTggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDcxOD5g
XzogVGhlIGBgLXBgYCBvcHRpb24gY2FuIG5vdyBiZSB1c2VkIHRvIGVhcmx5LWxvYWQgcGx1Z2lu
cyBhbHNvIGJ5IGVudHJ5LXBvaW50IG5hbWUsIGluc3RlYWQgb2YganVzdAorICBieSBtb2R1bGUg
bmFtZS4KKworICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGVhcmx5IGxvYWQgZXh0ZXJuYWwg
cGx1Z2lucyBsaWtlIGBgcHl0ZXN0LWNvdmBgIGluIHRoZSBjb21tYW5kLWxpbmU6OgorCisgICAg
ICBweXRlc3QgLXAgcHl0ZXN0X2NvdgorCisKKy0gYCM0ODU1IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ4NTU+YF86IFRoZSBgYC0tcGRiY2xzYGAgb3B0aW9u
IGhhbmRsZXMgY2xhc3NlcyB2aWEgbW9kdWxlIGF0dHJpYnV0ZXMgbm93IChlLmcuCisgIGBgcGRi
OnBkYi5QZGJgYCB3aXRoIGBwZGIrK2BfKSwgYW5kIGl0cyB2YWxpZGF0aW9uIHdhcyBpbXByb3Zl
ZC4KKworICAuLiBfcGRiKys6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9wZGJwcC8KKworCist
IGAjNDg3NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80ODc1
PmBfOiBUaGUgYHRlc3RwYXRocyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3Jl
ZmVyZW5jZS5odG1sI2NvbmZ2YWwtdGVzdHBhdGhzPmBfXyBjb25maWd1cmF0aW9uIG9wdGlvbiBp
cyBub3cgZGlzcGxheWVkIG5leHQKKyAgdG8gdGhlIGBgcm9vdGRpcmBgIGFuZCBgYGluaWZpbGVg
YCBsaW5lcyBpbiB0aGUgcHl0ZXN0IGhlYWRlciBpZiB0aGUgb3B0aW9uIGlzIGluIGVmZmVjdCwg
aS5lLiwgZGlyZWN0b3JpZXMgb3IgZmlsZSBuYW1lcyB3ZXJlCisgIG5vdCBleHBsaWNpdGx5IHBh
c3NlZCBpbiB0aGUgY29tbWFuZCBsaW5lLgorCisgIEFsc28sIGBgaW5pZmlsZWBgIGlzIG9ubHkg
ZGlzcGxheWVkIGlmIHRoZXJlJ3MgYSBjb25maWd1cmF0aW9uIGZpbGUsIGluc3RlYWQgb2YgYW4g
ZW1wdHkgYGBpbmlmaWxlOmBgIHN0cmluZy4KKworCistIGAjNDkxMSA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80OTExPmBfOiBEb2N0ZXN0cyBjYW4gYmUgc2tp
cHBlZCBub3cgZHluYW1pY2FsbHkgdXNpbmcgYGBweXRlc3Quc2tpcCgpYGAuCisKKworLSBgIzQ5
MjAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDkyMD5gXzog
SW50ZXJuYWwgcmVmYWN0b3JpbmdzIGhhdmUgYmVlbiBtYWRlIGluIG9yZGVyIHRvIG1ha2UgdGhl
IGltcGxlbWVudGF0aW9uIG9mIHRoZQorICBgcHl0ZXN0LXN1YnRlc3RzIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qtc3VidGVzdHM+YF9fIHBsdWdpbgorICBwb3NzaWJsZSwg
d2hpY2ggYWRkcyB1bml0dGVzdCBzdWItdGVzdCBzdXBwb3J0IGFuZCBhIG5ldyBgYHN1YnRlc3Rz
YGAgZml4dHVyZSBhcyBkaXNjdXNzZWQgaW4KKyAgYCMxMzY3IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzEzNjc+YF9fLgorCisgIEZvciBkZXRhaWxzIG9uIHRo
ZSBpbnRlcm5hbCByZWZhY3RvcmluZ3MsIHBsZWFzZSBzZWUgdGhlIGRldGFpbHMgb24gdGhlIHJl
bGF0ZWQgUFIuCisKKworLSBgIzQ5MzEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNDkzMT5gXzogcHl0ZXN0ZXIncyBgYExpbmVNYXRjaGVyYGAgYXNzZXJ0cyB0
aGF0IHRoZSBwYXNzZWQgbGluZXMgYXJlIGEgc2VxdWVuY2UuCisKKworLSBgIzQ5MzYgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDkzNj5gXzogSGFuZGxlIGBg
LXAgcGx1Z2BgIGFmdGVyIGBgLXAgbm86cGx1Z2BgLgorCisgIFRoaXMgY2FuIGJlIHVzZWQgdG8g
b3ZlcnJpZGUgYSBibG9ja2VkIHBsdWdpbiAoZS5nLiBpbiAiYWRkb3B0cyIpIGZyb20gdGhlCisg
IGNvbW1hbmQgbGluZSBldGMuCisKKworLSBgIzQ5NTEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDk1MT5gXzogT3V0cHV0IGNhcHR1cmluZyBpcyBoYW5kbGVk
IGNvcnJlY3RseSB3aGVuIG9ubHkgY2FwdHVyaW5nIHZpYSBmaXh0dXJlcyAoY2Fwc3lzLCBjYXBm
cykgd2l0aCBgYHBkYi5zZXRfdHJhY2UoKWBgLgorCisKKy0gYCM0OTU2IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5NTY+YF86IGBgcHl0ZXN0ZXJgYCBzZXRz
IGBgJEhPTUVgYCBhbmQgYGAkVVNFUlBST0ZJTEVgYCB0byB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9y
eSBkdXJpbmcgdGVzdCBydW5zLgorCisgIFRoaXMgZW5zdXJlcyB0byBub3QgbG9hZCBjb25maWd1
cmF0aW9uIGZpbGVzIGZyb20gdGhlIHJlYWwgdXNlcidzIGhvbWUgZGlyZWN0b3J5LgorCisKKy0g
YCM0OTgwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5ODA+
YF86IE5hbWVzcGFjZSBwYWNrYWdlcyBhcmUgaGFuZGxlZCBiZXR0ZXIgd2l0aCBgYG1vbmtleXBh
dGNoLnN5c3BhdGhfcHJlcGVuZGBgIGFuZCBgYHRlc3RkaXIuc3lzcGF0aGluc2VydGBgICh2aWEg
YGBwa2dfcmVzb3VyY2VzLmZpeHVwX25hbWVzcGFjZV9wYWNrYWdlc2BgKS4KKworCistIGAjNDk5
MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80OTkzPmBfOiBU
aGUgc3RlcHdpc2UgcGx1Z2luIHJlcG9ydHMgc3RhdHVzIGluZm9ybWF0aW9uIG5vdy4KKworCist
IGAjNTAwOCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MDA4
PmBfOiBJZiBhIGBgc2V0dXAuY2ZnYGAgZmlsZSBjb250YWlucyBgYFt0b29sOnB5dGVzdF1gYCBh
bmQgYWxzbyB0aGUgbm8gbG9uZ2VyIHN1cHBvcnRlZCBgYFtweXRlc3RdYGAgc2VjdGlvbiwgcHl0
ZXN0IHdpbGwgdXNlIGBgW3Rvb2w6cHl0ZXN0XWBgIGlnbm9yaW5nIGBgW3B5dGVzdF1gYC4gUHJl
dmlvdXNseSBpdCB3b3VsZCB1bmNvbmRpdGlvbmFsbHkgZXJyb3Igb3V0LgorCisgIFRoaXMgbWFr
ZXMgaXQgc2ltcGxlciBmb3IgcGx1Z2lucyB0byBzdXBwb3J0IG9sZCBweXRlc3QgdmVyc2lvbnMu
CisKKworCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjMTg5NSA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xODk1PmBfOiBGaXggYnVnIHdoZXJlIGZpeHR1
cmVzIHJlcXVlc3RlZCBkeW5hbWljYWxseSB2aWEgYGByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgp
YGAgbWlnaHQgYmUgdGVhcmRvd24KKyAgYmVmb3JlIHRoZSByZXF1ZXN0aW5nIGZpeHR1cmUuCisK
KworLSBgIzQ4NTEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NDg1MT5gXzogcHl0ZXN0ZXIgdW5zZXRzIGBgUFlURVNUX0FERE9QVFNgYCBub3cgdG8gbm90IHVz
ZSBvdXRlciBvcHRpb25zIHdpdGggYGB0ZXN0ZGlyLnJ1bnB5dGVzdCgpYGAuCisKKworLSBgIzQ5
MDMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDkwMz5gXzog
VXNlIHRoZSBjb3JyZWN0IG1vZGlmaWVkIHRpbWUgZm9yIHllYXJzIGFmdGVyIDIwMzggaW4gcmV3
cml0dGVuIGBgLnB5Y2BgIGZpbGVzLgorCisKKy0gYCM0OTI4IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5Mjg+YF86IEZpeCBsaW5lIG9mZnNldHMgd2l0aCBg
YFNjb3BlTWlzbWF0Y2hgYCBlcnJvcnMuCisKKworLSBgIzQ5NTcgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDk1Nz5gXzogYGAtcCBubzpwbHVnaW5gYCBpcyBo
YW5kbGVkIGNvcnJlY3RseSBmb3IgZGVmYXVsdCAoaW50ZXJuYWwpIHBsdWdpbnMgbm93LCBlLmcu
IHdpdGggYGAtcCBubzpjYXB0dXJlYGAuCisKKyAgUHJldmlvdXNseSB0aGV5IHdlcmUgbG9hZGVk
IChpbXBvcnRlZCkgYWx3YXlzLCBtYWtpbmcgZS5nLiB0aGUgYGBjYXBmZGBgIGZpeHR1cmUgYXZh
aWxhYmxlLgorCisKKy0gYCM0OTY4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzQ5Njg+YF86IFRoZSBwZGIgYGBxdWl0YGAgY29tbWFuZCBpcyBoYW5kbGVkIHBy
b3Blcmx5IHdoZW4gdXNlZCBhZnRlciB0aGUgYGBkZWJ1Z2BgIGNvbW1hbmQgd2l0aCBgcGRiKytg
Xy4KKworICAuLiBfcGRiKys6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9wZGJwcC8KKworCist
IGAjNDk3NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80OTc1
PmBfOiBGaXggdGhlIGludGVycHJldGF0aW9uIG9mIGBgLXFxYGAgb3B0aW9uIHdoZXJlIGl0IHdh
cyBiZWluZyBjb25zaWRlcmVkIGFzIGBgLXZgYCBpbnN0ZWFkLgorCisKKy0gYCM0OTc4IDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5Nzg+YF86IGBgb3V0Y29t
ZXMuRXhpdGBgIGlzIG5vdCBzd2FsbG93ZWQgaW4gYGBhc3NlcnRyZXByX2NvbXBhcmVgYCBhbnlt
b3JlLgorCisKKy0gYCM0OTg4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzQ5ODg+YF86IENsb3NlIGxvZ2dpbmcncyBmaWxlIGhhbmRsZXIgZXhwbGljaXRseSB3
aGVuIHRoZSBzZXNzaW9uIGZpbmlzaGVzLgorCisKKy0gYCM1MDAzIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUwMDM+YF86IEZpeCBsaW5lIG9mZnNldCB3aXRo
IG1hcmsgY29sbGVjdGlvbiBlcnJvciAob2ZmIGJ5IG9uZSkuCisKKworCitJbXByb3ZlZCBEb2N1
bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCM0OTc0IDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5NzQ+YF86IFVwZGF0ZSBkb2NzIGZv
ciBgYHB5dGVzdF9jbWRsaW5lX3BhcnNlYGAgaG9vayB0byBub3RlIGF2YWlsYWJpbGl0eSBsaW1p
bmF0aW9ucworCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworLSBgIzQ3MTggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvNDcxOD5gXzogYGBwbHVnZ3k+PTAuOWBgIGlzIG5vdyByZXF1aXJlZC4KKworCist
IGAjNDgxNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80ODE1
PmBfOiBgYGZ1bmNzaWdzPj0xLjBgYCBpcyBub3cgcmVxdWlyZWQgZm9yIFB5dGhvbiAyLjcuCisK
KworLSBgIzQ4MjkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NDgyOT5gXzogU29tZSBsZWZ0LW92ZXIgaW50ZXJuYWwgY29kZSByZWxhdGVkIHRvIGBgeWllbGRg
YCB0ZXN0cyBoYXMgYmVlbiByZW1vdmVkLgorCisKKy0gYCM0ODkwIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ4OTA+YF86IFJlbW92ZSBpbnRlcm5hbGx5IHVu
dXNlZCBgYGFueXB5dGhvbmBgIGZpeHR1cmUgZnJvbSB0aGUgcHl0ZXN0ZXIgcGx1Z2luLgorCisK
Ky0gYCM0OTEyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ5
MTI+YF86IFJlbW92ZSBkZXByZWNhdGVkIFNwaGlueCBkaXJlY3RpdmUsIGBgYWRkX2Rlc2NyaXB0
aW9uX3VuaXQoKWBgLAorICBwaW4gc3BoaW54LXJlbW92ZWQtaW4gdG8gPj0gMC4yLjAgdG8gc3Vw
cG9ydCBTcGhpbnggMi4wLgorCisKKy0gYCM0OTEzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzQ5MTM+YF86IEZpeCBweXRlc3QgdGVzdHMgaW52b2NhdGlvbiB3
aXRoIGN1c3RvbSBgYFBZVEhPTlBBVEhgYC4KKworCistIGAjNDk2NSA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80OTY1PmBfOiBOZXcgYGBweXRlc3RfcmVwb3J0
X3RvX3NlcmlhbGl6YWJsZWBgIGFuZCBgYHB5dGVzdF9yZXBvcnRfZnJvbV9zZXJpYWxpemFibGVg
YCAqKmV4cGVyaW1lbnRhbCoqIGhvb2tzLgorCisgIFRoZXNlIGhvb2tzIHdpbGwgYmUgdXNlZCBi
eSBgYHB5dGVzdC14ZGlzdGBgLCBgYHB5dGVzdC1zdWJ0ZXN0c2BgLCBhbmQgdGhlIHJlcGxhY2Vt
ZW50IGZvcgorICByZXN1bHRsb2cgdG8gc2VyaWFsaXplIGFuZCBjdXN0b21pemUgcmVwb3J0cy4K
KworICBUaGV5IGFyZSBleHBlcmltZW50YWwsIG1lYW5pbmcgdGhhdCB0aGVpciBkZXRhaWxzIG1p
Z2h0IGNoYW5nZSBvciBldmVuIGJlIHJlbW92ZWQKKyAgY29tcGxldGVseSBpbiBmdXR1cmUgcGF0
Y2ggcmVsZWFzZXMgd2l0aG91dCB3YXJuaW5nLgorCisgIEZlZWRiYWNrIGlzIHdlbGNvbWUgZnJv
bSBwbHVnaW4gYXV0aG9ycyBhbmQgdXNlcnMgYWxpa2UuCisKKworLSBgIzQ5ODcgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDk4Nz5gXzogYGBDb2xsZWN0b3Iu
cmVwcl9mYWlsdXJlYGAgcmVzcGVjdHMgdGhlIGBgLS10YmBgIG9wdGlvbiwgYnV0IG9ubHkgZGVm
YXVsdHMgdG8gYGBzaG9ydGBgIG5vdyAod2l0aCBgYGF1dG9gYCkuCisKKworcHl0ZXN0IDQuMy4x
ICgyMDE5LTAzLTExKQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0t
LS0tLS0tLQorCistIGAjNDgxMCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy80ODEwPmBfOiBMb2dnaW5nIG1lc3NhZ2VzIGluc2lkZSBgYHB5dGVzdF9ydW50ZXN0
X2xvZ3JlcG9ydCgpYGAgYXJlIG5vdyBwcm9wZXJseSBjYXB0dXJlZCBhbmQgZGlzcGxheWVkLgor
CisKKy0gYCM0ODYxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzQ4NjE+YF86IEltcHJvdmUgdmFsaWRhdGlvbiBvZiBjb250ZW50cyB3cml0dGVuIHRvIGNhcHR1
cmVkIG91dHB1dCBzbyBpdCBiZWhhdmVzIHRoZSBzYW1lIGFzIHdoZW4gY2FwdHVyZSBpcyBkaXNh
YmxlZC4KKworCistIGAjNDg5OCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy80ODk4PmBfOiBGaXggYGBBdHRyaWJ1dGVFcnJvcjogRml4dHVyZVJlcXVlc3QgaGFz
IG5vICdjb25mZycgYXR0cmlidXRlYGAgYnVnIGluIGBgdGVzdGRpci5jb3B5X2V4YW1wbGVgYC4K
KworCisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKy0gYCM0NzY4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzQ3Njg+YF86IEF2b2lkIHBrZ19yZXNvdXJjZXMgaW1wb3J0IGF0IHRoZSB0b3AtbGV2ZWwuCisK
KworcHl0ZXN0IDQuMy4wICgyMDE5LTAyLTE2KQorPT09PT09PT09PT09PT09PT09PT09PT09PQor
CitEZXByZWNhdGlvbnMKKy0tLS0tLS0tLS0tLQorCistIGAjNDcyNCA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NzI0PmBfOiBgYHB5dGVzdC53YXJucygpYGAg
bm93IGVtaXRzIGEgd2FybmluZyB3aGVuIGl0IHJlY2VpdmVzIHVua25vd24ga2V5d29yZCBhcmd1
bWVudHMuCisKKyAgVGhpcyB3aWxsIGJlIGNoYW5nZWQgaW50byBhbiBlcnJvciBpbiB0aGUgZnV0
dXJlLgorCisKKworRmVhdHVyZXMKKy0tLS0tLS0tCisKKy0gYCMyNzUzIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI3NTM+YF86IFVzYWdlIGVycm9ycyBmcm9t
IGFyZ3BhcnNlIGFyZSBtYXBwZWQgdG8gcHl0ZXN0J3MgYGBVc2FnZUVycm9yYGAuCisKKworLSBg
IzM3MTEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzcxMT5g
XzogQWRkIHRoZSBgYC0taWdub3JlLWdsb2JgYCBwYXJhbWV0ZXIgdG8gZXhjbHVkZSB0ZXN0LW1v
ZHVsZXMgd2l0aCBVbml4IHNoZWxsLXN0eWxlIHdpbGRjYXJkcy4KKyAgQWRkIHRoZSBgYGNvbGxl
Y3RfaWdub3JlX2dsb2JgYCBmb3IgYGBjb25mdGVzdC5weWBgIHRvIGV4Y2x1ZGUgdGVzdC1tb2R1
bGVzIHdpdGggVW5peCBzaGVsbC1zdHlsZSB3aWxkY2FyZHMuCisKKworLSBgIzQ2OTggPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDY5OD5gXzogVGhlIHdhcm5p
bmcgYWJvdXQgUHl0aG9uIDIuNyBhbmQgMy40IG5vdCBiZWluZyBzdXBwb3J0ZWQgaW4gcHl0ZXN0
IDUuMCBoYXMgYmVlbiByZW1vdmVkLgorCisgIEluIHRoZSBlbmQgaXQgd2FzIGNvbnNpZGVyZWQg
dG8gYmUgbW9yZQorICBvZiBhIG51aXNhbmNlIHRoYW4gYWN0dWFsIHV0aWxpdHkgYW5kIHVzZXJz
IG9mIHRob3NlIFB5dGhvbiB2ZXJzaW9ucyBzaG91bGRuJ3QgaGF2ZSBwcm9ibGVtcyBhcyBgYHBp
cGBgIHdpbGwgbm90CisgIGluc3RhbGwgcHl0ZXN0IDUuMCBvbiB0aG9zZSBpbnRlcnByZXRlcnMu
CisKKworLSBgIzQ3MDcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvNDcwNz5gXzogV2l0aCB0aGUgaGVscCBvZiBuZXcgYGBzZXRfbG9nX3BhdGgoKWBgIG1ldGhv
ZCB0aGVyZSBpcyBhIHdheSB0byBzZXQgYGBsb2dfZmlsZWBgIHBhdGhzIGZyb20gaG9va3MuCisK
KworCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjNDY1MSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NjUxPmBfOiBgYC0taGVscGBgIGFuZCBgYC0tdmVy
c2lvbmBgIGFyZSBoYW5kbGVkIHdpdGggYGBVc2FnZUVycm9yYGAuCisKKworLSBgIzQ3ODIgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDc4Mj5gXzogRml4IGBg
QXNzZXJ0aW9uRXJyb3JgYCB3aXRoIGNvbGxlY3Rpb24gb2YgYnJva2VuIHN5bWxpbmtzIHdpdGgg
cGFja2FnZXMuCisKKworcHl0ZXN0IDQuMi4xICgyMDE5LTAyLTEyKQorPT09PT09PT09PT09PT09
PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjMjg5NSA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yODk1PmBfOiBUaGUgYGBweXRlc3Rf
cmVwb3J0X2NvbGxlY3Rpb25maW5pc2hgYCBob29rIG5vdyBpcyBhbHNvIGNhbGxlZCB3aXRoIGBg
LS1jb2xsZWN0LW9ubHlgYC4KKworCistIGAjMzg5OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8zODk5PmBfOiBEbyBub3QgcmFpc2UgYGBVc2FnZUVycm9yYGAg
d2hlbiBhbiBpbXBvcnRlZCBwYWNrYWdlIGhhcyBhIGBgcHl0ZXN0X3BsdWdpbnMucHlgYCBjaGls
ZCBtb2R1bGUuCisKKworLSBgIzQzNDcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNDM0Nz5gXzogRml4IG91dHB1dCBjYXB0dXJpbmcgd2hlbiB1c2luZyBwZGIr
KyB3aXRoIHJlY3Vyc2l2ZSBkZWJ1Z2dpbmcuCisKKworLSBgIzQ1OTIgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDU5Mj5gXzogRml4IGhhbmRsaW5nIG9mIGBg
Y29sbGVjdF9pZ25vcmVgYCB2aWEgcGFyZW50IGBgY29uZnRlc3QucHlgYC4KKworCistIGAjNDcw
MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NzAwPmBfOiBG
aXggcmVncmVzc2lvbiB3aGVyZSBgYHNldFVwQ2xhc3NgYCB3b3VsZCBhbHdheXMgYmUgY2FsbGVk
IGluIHN1YmNsYXNzZXMgZXZlbiBpZiBhbGwgdGVzdHMKKyAgd2VyZSBza2lwcGVkIGJ5IGEgYGB1
bml0dGVzdC5za2lwKClgYCBkZWNvcmF0b3IgYXBwbGllZCBpbiB0aGUgc3ViY2xhc3MuCisKKwor
LSBgIzQ3MzkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDcz
OT5gXzogRml4IGBgcGFyYW1ldHJpemUoLi4uIGlkcz08ZnVuY3Rpb24+KWBgIHdoZW4gdGhlIGZ1
bmN0aW9uIHJldHVybnMgbm9uLXN0cmluZ3MuCisKKworLSBgIzQ3NDUgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDc0NT5gXzogRml4L2ltcHJvdmUgY29sbGVj
dGlvbiBvZiBhcmdzIHdoZW4gcGFzc2luZyBpbiBgYF9faW5pdF9fLnB5YGAgYW5kIGEgdGVzdCBm
aWxlLgorCisKKy0gYCM0NzcwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzQ3NzA+YF86IGBgbW9yZV9pdGVydG9vbHNgYCBpcyBub3cgY29uc3RyYWluZWQgdG8g
PDYuMC4wIHdoZW4gcmVxdWlyZWQgZm9yIFB5dGhvbiAyLjcgY29tcGF0aWJpbGl0eS4KKworCist
IGAjNTI2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUyNj5g
XzogRml4ICJWYWx1ZUVycm9yOiBQbHVnaW4gYWxyZWFkeSByZWdpc3RlcmVkIiBleGNlcHRpb25z
IHdoZW4gcnVubmluZyBpbiBidWlsZCBkaXJlY3RvcmllcyB0aGF0IHN5bWxpbmsgdG8gYWN0dWFs
IHNvdXJjZS4KKworCisKK0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworLSBgIzM4OTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMzg5OT5gXzogQWRkIG5vdGUgdG8gYGBwbHVnaW5zLnJzdGBgIHRoYXQgYGBweXRlc3Rf
cGx1Z2luc2BgIHNob3VsZCBub3QgYmUgdXNlZCBhcyBhIG5hbWUgZm9yIGEgdXNlciBtb2R1bGUg
Y29udGFpbmluZyBwbHVnaW5zLgorCisKKy0gYCM0MzI0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzMjQ+YF86IERvY3VtZW50IGhvdyB0byB1c2UgYGByYWlz
ZXNgYCBhbmQgYGBkb2VzX25vdF9yYWlzZWBgIHRvIHdyaXRlIHBhcmFtZXRyaXplZCB0ZXN0cyB3
aXRoIGNvbmRpdGlvbmFsIHJhaXNlcy4KKworCistIGAjNDcwOSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NzA5PmBfOiBEb2N1bWVudCBob3cgdG8gY3VzdG9t
aXplIHRlc3QgZmFpbHVyZSBtZXNzYWdlcyB3aGVuIHVzaW5nCisgIGBgcHl0ZXN0Lndhcm5zYGAu
CisKKworCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCistIGAjNDc0MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy80NzQxPmBfOiBTb21lIHZlcmJvc2l0eSByZWxhdGVkIGF0dHJpYnV0ZXMgb2YgdGhlIFRlcm1p
bmFsUmVwb3J0ZXIgcGx1Z2luIGFyZSBub3cKKyAgcmVhZCBvbmx5IHByb3BlcnRpZXMuCisKKwor
cHl0ZXN0IDQuMi4wICgyMDE5LTAxLTMwKQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitG
ZWF0dXJlcworLS0tLS0tLS0KKworLSBgIzMwOTQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMzA5ND5gXzogYENsYXNzaWMgeHVuaXQtc3R5bGUgPGh0dHBzOi8v
ZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC94dW5pdF9zZXR1cC5odG1sPmBfXyBmdW5jdGlvbnMg
YW5kIG1ldGhvZHMKKyAgbm93IG9iZXkgdGhlIHNjb3BlIG9mICphdXRvdXNlKiBmaXh0dXJlcy4K
KworICBUaGlzIGZpeGVzIGEgbnVtYmVyIG9mIHN1cnByaXNpbmcgaXNzdWVzIGxpa2UgYGBzZXR1
cF9tZXRob2RgYCBiZWluZyBjYWxsZWQgYmVmb3JlIHNlc3Npb24tc2NvcGVkCisgIGF1dG91c2Ug
Zml4dHVyZXMgKHNlZSBgIzUxNyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy81MTc+YF9fIGZvciBhbiBleGFtcGxlKS4KKworCistIGAjNDYyNyA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NjI3PmBfOiBEaXNwbGF5IGEgbWVz
c2FnZSBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0IHNlc3Npb24gd2hlbiBydW5uaW5nIHVuZGVyIFB5
dGhvbiAyLjcgYW5kIDMuNCB0aGF0IHB5dGVzdCA1LjAgd2lsbCBubyBsb25nZXIKKyAgc3VwcG9y
dCB0aG9zZSBQeXRob24gdmVyc2lvbnMuCisKKworLSBgIzQ2NjAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDY2MD5gXzogVGhlIG51bWJlciBvZiAqc2VsZWN0
ZWQqIHRlc3RzIG5vdyBhcmUgYWxzbyBkaXNwbGF5ZWQgd2hlbiB0aGUgYGAta2BgIG9yIGBgLW1g
YCBmbGFncyBhcmUgdXNlZC4KKworCistIGAjNDY4OCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy80Njg4PmBfOiBgYHB5dGVzdF9yZXBvcnRfdGVzdHN0YXR1c2Bg
IGhvb2sgbm93IGNhbiBhbHNvIHJlY2VpdmUgYSBgYGNvbmZpZ2BgIHBhcmFtZXRlci4KKworCist
IGAjNDY5MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80Njkx
PmBfOiBgYHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5YGAgaG9vayBub3cgY2FuIGFsc28gcmVjZWl2
ZSBhIGBgY29uZmlnYGAgcGFyYW1ldGVyLgorCisKKworQnVnIEZpeGVzCistLS0tLS0tLS0KKwor
LSBgIzM1NDcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzU0
Nz5gXzogYGAtLWp1bml0eG1sYGAgY2FuIGVtaXQgWE1MIGNvbXBhdGlibGUgd2l0aCBKZW5raW5z
IHhVbml0LgorICBgYGp1bml0X2ZhbWlseWBgIElOSSBvcHRpb24gYWNjZXB0cyBgYGxlZ2FjeXx4
dW5pdDFgYCwgd2hpY2ggcHJvZHVjZXMgb2xkIHN0eWxlIG91dHB1dCwgYW5kIGBgeHVuaXQyYGAg
dGhhdCBjb25mb3JtcyBtb3JlIHN0cmljdGx5IHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5raW5z
Y2kveHVuaXQtcGx1Z2luL2Jsb2IveHVuaXQtMi4zLjIvc3JjL21haW4vcmVzb3VyY2VzL29yZy9q
ZW5raW5zY2kvcGx1Z2lucy94dW5pdC90eXBlcy9tb2RlbC94c2QvanVuaXQtMTAueHNkCisKKwor
LSBgIzQyODAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDI4
MD5gXzogSW1wcm92ZSBxdWl0dGluZyBmcm9tIHBkYiwgZXNwZWNpYWxseSB3aXRoIGBgLS10cmFj
ZWBgLgorCisgIFVzaW5nIGBgcVtxdWl0XWBgIGFmdGVyIGBgcGRiLnNldF90cmFjZSgpYGAgd2ls
bCBxdWl0IHB5dGVzdCBhbHNvLgorCisKKy0gYCM0NDAyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ0MDI+YF86IFdhcm5pbmcgc3VtbWFyeSBub3cgZ3JvdXBz
IHdhcm5pbmdzIGJ5IG1lc3NhZ2UgaW5zdGVhZCBvZiBieSB0ZXN0IGlkLgorCisgIFRoaXMgbWFr
ZXMgdGhlIG91dHB1dCBtb3JlIGNvbXBhY3QgYW5kIGJldHRlciBjb252ZXlzIHRoZSBnZW5lcmFs
IGlkZWEgb2YgaG93IG11Y2ggY29kZSBpcworICBhY3R1YWxseSBnZW5lcmF0aW5nIHdhcm5pbmdz
LCBpbnN0ZWFkIG9mIGhvdyBtYW55IHRlc3RzIGNhbGwgdGhhdCBjb2RlLgorCisKKy0gYCM0NTM2
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ1MzY+YF86IGBg
bW9ua2V5cGF0Y2guZGVsYXR0cmBgIGhhbmRsZXMgY2xhc3MgZGVzY3JpcHRvcnMgbGlrZSBgYHN0
YXRpY21ldGhvZGBgL2BgY2xhc3NtZXRob2RgYC4KKworCistIGAjNDY0OSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NjQ5PmBfOiBSZXN0b3JlIG1hcmtzIGJl
aW5nIGNvbnNpZGVyZWQga2V5d29yZHMgZm9yIGtleXdvcmQgZXhwcmVzc2lvbnMuCisKKworLSBg
IzQ2NTMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDY1Mz5g
XzogYGB0bXBfcGF0aGBgIGZpeHR1cmUgYW5kIG90aGVyIHJlbGF0ZWQgb25lcyBwcm92aWRlcyBy
ZXNvbHZlZCBwYXRoIChhLmsuYSByZWFsIHBhdGgpCisKKworLSBgIzQ2NjcgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDY2Nz5gXzogYGBweXRlc3RfdGVybWlu
YWxfc3VtbWFyeWBgIHVzZXMgcmVzdWx0IGZyb20gYGBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXNg
YCBob29rLCByYXRoZXIgdGhhbiBoYXJkY29kZWQgc3RyaW5ncy4KKworCistIGAjNDY2OSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NjY5PmBfOiBDb3JyZWN0
bHkgaGFuZGxlIGBgdW5pdHRlc3QuU2tpcFRlc3RgYCBleGNlcHRpb24gY29udGFpbmluZyBub24t
YXNjaWkgY2hhcmFjdGVycyBvbiBQeXRob24gMi4KKworCistIGAjNDY4MCA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NjgwPmBfOiBFbnN1cmUgdGhlIGBgdG1w
ZGlyYGAgYW5kIHRoZSBgYHRtcF9wYXRoYGAgZml4dHVyZXMgYXJlIHRoZSBzYW1lIGZvbGRlci4K
KworCistIGAjNDY4MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy80NjgxPmBfOiBFbnN1cmUgYGB0bXBfcGF0aGBgIGlzIGFsd2F5cyBhIHJlYWwgcGF0aC4KKwor
CisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky0gYCM0NjQzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ2
NDM+YF86IFVzZSBgYGEuaXRlbSgpYGAgaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBgYG5wLmFz
c2NhbGFyKGEpYGAgaW4gYGBweXRlc3QuYXBwcm94YGAuCisKKyAgYGBucC5hc3NjYWxhcmBgIGhh
cyBiZWVuIGBkZXByZWNhdGVkIDxodHRwczovL2dpdGh1Yi5jb20vbnVtcHkvbnVtcHkvYmxvYi9t
YXN0ZXIvZG9jL3JlbGVhc2UvMS4xNi4wLW5vdGVzLnJzdCNuZXctZGVwcmVjYXRpb25zPmBfXyBp
biBgYG51bXB5IDEuMTYuYGAuCisKKworLSBgIzQ2NTcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDY1Nz5gXzogQ29weSBzYWZlcmVwciBmcm9tIHB5bGliCisK
KworLSBgIzQ2NjggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NDY2OD5gXzogVGhlIHZlcmJvc2Ugd29yZCBmb3IgZXhwZWN0ZWQgZmFpbHVyZXMgaW4gdGhlIHRl
c3RzdGF0dXMgcmVwb3J0IGNoYW5nZXMgZnJvbSBgYHhmYWlsYGAgdG8gYGBYRkFJTGBgIHRvIGJl
IGNvbnNpc3RlbnQgd2l0aCBvdGhlciB0ZXN0IG91dGNvbWVzLgorCisKK3B5dGVzdCA0LjEuMSAo
MjAxOS0wMS0xMikKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVnIEZpeGVzCistLS0t
LS0tLS0KKworLSBgIzIyNTYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMjI1Nj5gXzogU2hvdyBmdWxsIHJlcHIgd2l0aCBgYGFzc2VydCBhPT1iYGAgYW5kIGBg
LXZ2YGAuCisKKworLSBgIzM0NTYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMzQ1Nj5gXzogRXh0ZW5kIERvY3Rlc3QtbW9kdWxlcyB0byBpZ25vcmUgbW9jayBv
YmplY3RzLgorCisKKy0gYCM0NjE3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzQ2MTc+YF86IEZpeGVkIGBgcHl0ZXN0Lndhcm5zYGAgYnVnIHdoZW4gY29udGV4
dCBtYW5hZ2VyIGlzIHJldXNlZCAoZS5nLiBtdWx0aXBsZSBwYXJhbWV0cml6YXRpb24pLgorCisK
Ky0gYCM0NjMxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ2
MzE+YF86IERvbid0IHJld3JpdGUgYXNzZXJ0aW9uIHdoZW4gYGBfX2dldGF0dHJfX2BgIGlzIGJy
b2tlbgorCisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCistIGAjMzM3NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8zMzc1PmBfOiBEb2N1bWVudCB0aGF0IHVzaW5nIGBgc2V0dXAuY2ZnYGAgbWF5IGNyYXNoIG90
aGVyIHRvb2xzIG9yIGNhdXNlIGhhcmQgdG8gdHJhY2sgZG93biBwcm9ibGVtcyBiZWNhdXNlIGl0
IHVzZXMgYSBkaWZmZXJlbnQgcGFyc2VyIHRoYW4gYGBweXRlc3QuaW5pYGAgb3IgYGB0b3guaW5p
YGAgZmlsZXMuCisKKworCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCistIGAjNDYwMiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy80NjAyPmBfOiBVbmluc3RhbGwgYGBoeXBvdGhlc2lzYGAgaW4gcmVnZW4gdG94
IGVudi4KKworCitweXRlc3QgNC4xLjAgKDIwMTktMDEtMDUpCis9PT09PT09PT09PT09PT09PT09
PT09PT09CisKK1JlbW92YWxzCistLS0tLS0tLQorCistIGAjMjE2OSA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMTY5PmBfOiBgYHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplYGA6IGluIHByZXZpb3VzIHZlcnNpb25zLCBlcnJvcnMgcmFpc2VkIGJ5IGlkIGZ1bmN0
aW9ucyB3ZXJlIHN1cHByZXNzZWQgYW5kIGNoYW5nZWQgaW50byB3YXJuaW5ncy4gTm93IHRoZSBl
eGNlcHRpb25zIGFyZSBwcm9wYWdhdGVkLCBhbG9uZyB3aXRoIGEgcHl0ZXN0IG1lc3NhZ2UgaW5m
b3JtaW5nIHRoZSBub2RlLCBwYXJhbWV0ZXIgdmFsdWUgYW5kIGluZGV4IHdoZXJlIHRoZSBleGNl
cHRpb24gb2NjdXJyZWQuCisKKworLSBgIzMwNzggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMzA3OD5gXzogUmVtb3ZlIGxlZ2FjeSBpbnRlcm5hbCB3YXJuaW5n
cyBzeXN0ZW06IGBgY29uZmlnLndhcm5gYCwgYGBOb2RlLndhcm5gYC4gVGhlIGBgcHl0ZXN0X2xv
Z3dhcm5pbmdgYCBub3cgaXNzdWVzIGEgd2FybmluZyB3aGVuIGltcGxlbWVudGVkLgorCisgIFNl
ZSBvdXIgYGRvY3MgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlv
bnMuaHRtbCNjb25maWctd2Fybi1hbmQtbm9kZS13YXJuPmBfXyBvbiBpbmZvcm1hdGlvbiBvbiBo
b3cgdG8gdXBkYXRlIHlvdXIgY29kZS4KKworCistIGAjMzA3OSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMDc5PmBfOiBSZW1vdmVkIHN1cHBvcnQgZm9yIHlp
ZWxkIHRlc3RzIC0gdGhleSBhcmUgZnVuZGFtZW50YWxseSBicm9rZW4gYmVjYXVzZSB0aGV5IGRv
bid0IHN1cHBvcnQgZml4dHVyZXMgcHJvcGVybHkgc2luY2UgY29sbGVjdGlvbiBhbmQgdGVzdCBl
eGVjdXRpb24gd2VyZSBzZXBhcmF0ZWQuCisKKyAgU2VlIG91ciBgZG9jcyA8aHR0cHM6Ly9kb2Nz
LnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sI3lpZWxkLXRlc3RzPmBfXyBv
biBpbmZvcm1hdGlvbiBvbiBob3cgdG8gdXBkYXRlIHlvdXIgY29kZS4KKworCistIGAjMzA4MiA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMDgyPmBfOiBSZW1v
dmVkIHN1cHBvcnQgZm9yIGFwcGx5aW5nIG1hcmtzIGRpcmVjdGx5IHRvIHZhbHVlcyBpbiBgYEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZWBgLiBVc2UgYGBweXRlc3QucGFyYW1gYCBpbnN0ZWFkLgor
CisgIFNlZSBvdXIgYGRvY3MgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXBy
ZWNhdGlvbnMuaHRtbCNtYXJrcy1pbi1weXRlc3QtbWFyay1wYXJhbWV0cml6ZT5gX18gb24gaW5m
b3JtYXRpb24gb24gaG93IHRvIHVwZGF0ZSB5b3VyIGNvZGUuCisKKworLSBgIzMwODMgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzA4Mz5gXzogUmVtb3ZlZCBg
YE1ldGFmdW5jLmFkZGNhbGxgYC4gVGhpcyB3YXMgdGhlIHByZWRlY2Vzc29yIG1lY2hhbmlzbSB0
byBgYEBweXRlc3QubWFyay5wYXJhbWV0cml6ZWBgLgorCisgIFNlZSBvdXIgYGRvY3MgPGh0dHBz
Oi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNtZXRhZnVuYy1h
ZGRjYWxsPmBfXyBvbiBpbmZvcm1hdGlvbiBvbiBob3cgdG8gdXBkYXRlIHlvdXIgY29kZS4KKwor
CistIGAjMzA4NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8z
MDg1PmBfOiBSZW1vdmVkIHN1cHBvcnQgZm9yIHBhc3Npbmcgc3RyaW5ncyB0byBgYHB5dGVzdC5t
YWluYGAuIE5vdywgYWx3YXlzIHBhc3MgYSBsaXN0IG9mIHN0cmluZ3MgaW5zdGVhZC4KKworICBT
ZWUgb3VyIGBkb2NzIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRp
b25zLmh0bWwjcGFzc2luZy1jb21tYW5kLWxpbmUtc3RyaW5nLXRvLXB5dGVzdC1tYWluPmBfXyBv
biBpbmZvcm1hdGlvbiBvbiBob3cgdG8gdXBkYXRlIHlvdXIgY29kZS4KKworCistIGAjMzA4NiA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMDg2PmBfOiBgYFtw
eXRlc3RdYGAgc2VjdGlvbiBpbiAqKnNldHVwLmNmZyoqIGZpbGVzIGlzIG5vIGxvbmdlciBzdXBw
b3J0ZWQsIHVzZSBgYFt0b29sOnB5dGVzdF1gYCBpbnN0ZWFkLiBgYHNldHVwLmNmZ2BgIGZpbGVz
CisgIGFyZSBtZWFudCBmb3IgdXNlIHdpdGggYGBkaXN0dXRpbHNgYCwgYW5kIGEgc2VjdGlvbiBu
YW1lZCBgYHB5dGVzdGBgIGhhcyBub3RvcmlvdXNseSBiZWVuIGEgc291cmNlIG9mIGNvbmZsaWN0
cyBhbmQgYnVncy4KKworICBOb3RlIHRoYXQgZm9yICoqcHl0ZXN0LmluaSoqIGFuZCAqKnRveC5p
bmkqKiBmaWxlcyB0aGUgc2VjdGlvbiByZW1haW5zIGBgW3B5dGVzdF1gYC4KKworCistIGAjMzYx
NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNjE2PmBfOiBS
ZW1vdmVkIHRoZSBkZXByZWNhdGVkIGNvbXBhdCBwcm9wZXJ0aWVzIGZvciBgYG5vZGUuQ2xhc3Mv
RnVuY3Rpb24vTW9kdWxlYGAgLSB1c2UgYGBweXRlc3QuQ2xhc3MvRnVuY3Rpb24vTW9kdWxlYGAg
bm93LgorCisgIFNlZSBvdXIgYGRvY3MgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVz
dC9kZXByZWNhdGlvbnMuaHRtbCNpbnRlcm5hbC1jbGFzc2VzLWFjY2Vzc2VkLXRocm91Z2gtbm9k
ZT5gX18gb24gaW5mb3JtYXRpb24gb24gaG93IHRvIHVwZGF0ZSB5b3VyIGNvZGUuCisKKworLSBg
IzQ0MjEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDQyMT5g
XzogUmVtb3ZlZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGBgcHl0ZXN0X25hbWVzcGFjZWBg
IGhvb2suCisKKyAgU2VlIG91ciBgZG9jcyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0
ZXN0L2RlcHJlY2F0aW9ucy5odG1sI3B5dGVzdC1uYW1lc3BhY2U+YF9fIG9uIGluZm9ybWF0aW9u
IG9uIGhvdyB0byB1cGRhdGUgeW91ciBjb2RlLgorCisKKy0gYCM0NDg5IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ0ODk+YF86IFJlbW92ZWQgYGByZXF1ZXN0
LmNhY2hlZF9zZXR1cGBgLiBUaGlzIHdhcyB0aGUgcHJlZGVjZXNzb3IgbWVjaGFuaXNtIHRvIG1v
ZGVybiBmaXh0dXJlcy4KKworICBTZWUgb3VyIGBkb2NzIDxodHRwczovL2RvY3MucHl0ZXN0Lm9y
Zy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0bWwjY2FjaGVkLXNldHVwPmBfXyBvbiBpbmZvcm1h
dGlvbiBvbiBob3cgdG8gdXBkYXRlIHlvdXIgY29kZS4KKworCistIGAjNDUzNSA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NTM1PmBfOiBSZW1vdmVkIHRoZSBk
ZXByZWNhdGVkIGBgUHlDb2xsZWN0b3IubWFrZWl0ZW1gYCBtZXRob2QuIFRoaXMgbWV0aG9kIHdh
cyBtYWRlIHB1YmxpYyBieSBtaXN0YWtlIGEgbG9uZyB0aW1lIGFnby4KKworCistIGAjNDU0MyA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NTQzPmBfOiBSZW1v
dmVkIHN1cHBvcnQgdG8gZGVmaW5lIGZpeHR1cmVzIHVzaW5nIHRoZSBgYHB5dGVzdF9mdW5jYXJn
X19gYCBwcmVmaXguIFVzZSB0aGUgYGBAcHl0ZXN0LmZpeHR1cmVgYCBkZWNvcmF0b3IgaW5zdGVh
ZC4KKworICBTZWUgb3VyIGBkb2NzIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qv
ZGVwcmVjYXRpb25zLmh0bWwjcHl0ZXN0LWZ1bmNhcmctcHJlZml4PmBfXyBvbiBpbmZvcm1hdGlv
biBvbiBob3cgdG8gdXBkYXRlIHlvdXIgY29kZS4KKworCistIGAjNDU0NSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NTQ1PmBfOiBDYWxsaW5nIGZpeHR1cmVz
IGRpcmVjdGx5IGlzIG5vdyBhbHdheXMgYW4gZXJyb3IgaW5zdGVhZCBvZiBhIHdhcm5pbmcuCisK
KyAgU2VlIG91ciBgZG9jcyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJl
Y2F0aW9ucy5odG1sI2NhbGxpbmctZml4dHVyZXMtZGlyZWN0bHk+YF9fIG9uIGluZm9ybWF0aW9u
IG9uIGhvdyB0byB1cGRhdGUgeW91ciBjb2RlLgorCisKKy0gYCM0NTQ2IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ1NDY+YF86IFJlbW92ZSBgYE5vZGUuZ2V0
X21hcmtlcihuYW1lKWBgIHRoZSByZXR1cm4gdmFsdWUgd2FzIG5vdCB1c2FibGUgZm9yIG1vcmUg
dGhhbiBhIGV4aXN0ZW5jZSBjaGVjay4KKworICBVc2UgYGBOb2RlLmdldF9jbG9zZXN0X21hcmtl
cihuYW1lKWBgIGFzIGEgcmVwbGFjZW1lbnQuCisKKworLSBgIzQ1NDcgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDU0Nz5gXzogVGhlIGRlcHJlY2F0ZWQgYGBy
ZWNvcmRfeG1sX3Byb3BlcnR5YGAgZml4dHVyZSBoYXMgYmVlbiByZW1vdmVkLCB1c2UgdGhlIG1v
cmUgZ2VuZXJpYyBgYHJlY29yZF9wcm9wZXJ0eWBgIGluc3RlYWQuCisKKyAgU2VlIG91ciBgZG9j
cyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sI3Jl
Y29yZC14bWwtcHJvcGVydHk+YF9fIGZvciBtb3JlIGluZm9ybWF0aW9uLgorCisKKy0gYCM0NTQ4
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ1NDg+YF86IEFu
IGVycm9yIGlzIG5vdyByYWlzZWQgaWYgdGhlIGBgcHl0ZXN0X3BsdWdpbnNgYCB2YXJpYWJsZSBp
cyBkZWZpbmVkIGluIGEgbm9uLXRvcC1sZXZlbCBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSAoaS5lLiwg
bm90IHJlc2lkaW5nIGluIHRoZSBgYHJvb3RkaXJgYCkuCisKKyAgU2VlIG91ciBgZG9jcyA8aHR0
cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sI3B5dGVzdC1w
bHVnaW5zLWluLW5vbi10b3AtbGV2ZWwtY29uZnRlc3QtZmlsZXM+YF9fIGZvciBtb3JlIGluZm9y
bWF0aW9uLgorCisKKy0gYCM4OTEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvODkxPmBfOiBSZW1vdmUgYGB0ZXN0ZnVuY3Rpb24ubWFya2VybmFtZWBgIGF0dHJp
YnV0ZXMgLSB1c2UgYGBOb2RlLml0ZXJfbWFya2VycyhuYW1lPU5vbmUpYGAgdG8gaXRlcmF0ZSB0
aGVtLgorCisKKworRGVwcmVjYXRpb25zCistLS0tLS0tLS0tLS0KKworLSBgIzMwNTAgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzA1MD5gXzogRGVwcmVjYXRl
ZCB0aGUgYGBweXRlc3QuY29uZmlnYGAgZ2xvYmFsLgorCisgIFNlZSBodHRwczovL2RvY3MucHl0
ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0bWwjcHl0ZXN0LWNvbmZpZy1nbG9iYWwg
Zm9yIHJhdGlvbmFsZS4KKworCistIGAjMzk3NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8zOTc0PmBfOiBQYXNzaW5nIHRoZSBgYG1lc3NhZ2VgYCBwYXJhbWV0
ZXIgb2YgYGBweXRlc3QucmFpc2VzYGAgbm93IGlzc3VlcyBhIGBgRGVwcmVjYXRpb25XYXJuaW5n
YGAuCisKKyAgSXQgaXMgYSBjb21tb24gbWlzdGFrZSB0byB0aGluayB0aGlzIHBhcmFtZXRlciB3
aWxsIG1hdGNoIHRoZSBleGNlcHRpb24gbWVzc2FnZSwgd2hpbGUgaW4gZmFjdAorICBpdCBvbmx5
IHNlcnZlcyB0byBwcm92aWRlIGEgY3VzdG9tIG1lc3NhZ2UgaW4gY2FzZSB0aGUgYGBweXRlc3Qu
cmFpc2VzYGAgY2hlY2sgZmFpbHMuIFRvIGF2b2lkIHRoaXMKKyAgbWlzdGFrZSBhbmQgYmVjYXVz
ZSBpdCBpcyBiZWxpZXZlZCB0byBiZSBsaXR0bGUgdXNlZCwgcHl0ZXN0IGlzIGRlcHJlY2F0aW5n
IGl0IHdpdGhvdXQgcHJvdmlkaW5nCisgIGFuIGFsdGVybmF0aXZlIGZvciB0aGUgbW9tZW50Lgor
CisgIElmIHlvdSBoYXZlIGNvbmNlcm5zIGFib3V0IHRoaXMsIHBsZWFzZSBjb21tZW50IG9uIGBp
c3N1ZSAjMzk3NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8z
OTc0PmBfXy4KKworCistIGAjNDQzNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy80NDM1PmBfOiBEZXByZWNhdGVkIGBgcmFpc2VzKC4uLiwgJ2NvZGUoYXNfYV9z
dHJpbmcpJylgYCBhbmQgYGB3YXJucyguLi4sICdjb2RlKGFzX2Ffc3RyaW5nKScpYGAuCisKKyAg
U2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNy
YWlzZXMtd2FybnMtZXhlYyBmb3IgcmF0aW9uYWxlIGFuZCBleGFtcGxlcy4KKworCisKK0ZlYXR1
cmVzCistLS0tLS0tLQorCistIGAjMzE5MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8zMTkxPmBfOiBBIHdhcm5pbmcgaXMgbm93IGlzc3VlZCB3aGVuIGFzc2Vy
dGlvbnMgYXJlIG1hZGUgZm9yIGBgTm9uZWBgLgorCisgIFRoaXMgaXMgYSBjb21tb24gc291cmNl
IG9mIGNvbmZ1c2lvbiBhbW9uZyBuZXcgdXNlcnMsIHdoaWNoIHdyaXRlOgorCisgIC4uIGNvZGUt
YmxvY2s6OiBweXRob24KKworICAgICAgYXNzZXJ0IG1vY2tlZF9vYmplY3QuYXNzZXJ0X2NhbGxl
ZF93aXRoKDMsIDQsIDUsIGtleT0idmFsdWUiKQorCisgIFdoZW4gdGhleSBzaG91bGQgd3JpdGU6
CisKKyAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgICBtb2NrZWRfb2JqZWN0LmFzc2Vy
dF9jYWxsZWRfd2l0aCgzLCA0LCA1LCBrZXk9InZhbHVlIikKKworICBCZWNhdXNlIHRoZSBgYGFz
c2VydF9jYWxsZWRfd2l0aGBgIG1ldGhvZCBvZiBtb2NrIG9iamVjdHMgYWxyZWFkeSBleGVjdXRl
cyBhbiBhc3NlcnRpb24uCisKKyAgVGhpcyB3YXJuaW5nIHdpbGwgbm90IGJlIGlzc3VlZCB3aGVu
IGBgTm9uZWBgIGlzIGV4cGxpY2l0bHkgY2hlY2tlZC4gQW4gYXNzZXJ0aW9uIGxpa2U6CisKKyAg
Li4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgICBhc3NlcnQgdmFyaWFibGUgaXMgTm9uZQor
CisgIHdpbGwgbm90IGlzc3VlIHRoZSB3YXJuaW5nLgorCisKKy0gYCMzNjMyIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM2MzI+YF86IFJpY2hlciBlcXVhbGl0
eSBjb21wYXJpc29uIGludHJvc3BlY3Rpb24gb24gYGBBc3NlcnRpb25FcnJvcmBgIGZvciBvYmpl
Y3RzIGNyZWF0ZWQgdXNpbmcgYGF0dHJzIDxodHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9zdGFibGUv
PmBfXyBvciBgZGF0YWNsYXNzZXMgPGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9k
YXRhY2xhc3Nlcy5odG1sPmBfIChQeXRob24gMy43KywgYGJhY2twb3J0ZWQgdG8gMy42IDxodHRw
czovL3B5cGkub3JnL3Byb2plY3QvZGF0YWNsYXNzZXM+YF9fKS4KKworCistIGAjNDI3OCA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80Mjc4PmBfOiBgYENBQ0hF
RElSLlRBR2BgIGZpbGVzIGFyZSBub3cgY3JlYXRlZCBpbnNpZGUgY2FjaGUgZGlyZWN0b3JpZXMu
CisKKyAgVGhvc2UgZmlsZXMgYXJlIHBhcnQgb2YgdGhlIGBDYWNoZSBEaXJlY3RvcnkgVGFnZ2lu
ZyBTdGFuZGFyZCA8aHR0cDovL3d3dy5iZm9yZC5pbmZvL2NhY2hlZGlyL3NwZWMuaHRtbD5gX18s
IGFuZCBjYW4KKyAgYmUgdXNlZCBieSBiYWNrdXAgb3Igc3luY2hyb25pemF0aW9uIHByb2dyYW1z
IHRvIGlkZW50aWZ5IHB5dGVzdCdzIGNhY2hlIGRpcmVjdG9yeSBhcyBzdWNoLgorCisKKy0gYCM0
MjkyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQyOTI+YF86
IGBgcHl0ZXN0Lm91dGNvbWVzLkV4aXRgYCBpcyBkZXJpdmVkIGZyb20gYGBTeXN0ZW1FeGl0YGAg
aW5zdGVhZCBvZiBgYEtleWJvYXJkSW50ZXJydXB0YGAuIFRoaXMgYWxsb3dzIHVzIHRvIGJldHRl
ciBoYW5kbGUgYGBwZGJgYCBleGl0aW5nLgorCisKKy0gYCM0MzcxIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzNzE+YF86IFVwZGF0ZWQgdGhlIGBgLS1jb2xs
ZWN0LW9ubHlgYCBvcHRpb24gdG8gZGlzcGxheSB0ZXN0IGRlc2NyaXB0aW9ucyB3aGVuIHJhbiB1
c2luZyBgYC0tdmVyYm9zZWBgLgorCisKKy0gYCM0Mzg2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzODY+YF86IFJlc3RydWN0dXJlZCBgYEV4Y2VwdGlvbklu
Zm9gYCBvYmplY3QgY29uc3RydWN0aW9uIGFuZCBlbnN1cmUgaW5jb21wbGV0ZSBpbnN0YW5jZXMg
aGF2ZSBhIGBgcmVwcmBgL2Bgc3RyYGAuCisKKworLSBgIzQ0MTYgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDQxNj5gXzogcGRiOiBhZGRlZCBzdXBwb3J0IGZv
ciBrZXl3b3JkIGFyZ3VtZW50cyB3aXRoIGBgcGRiLnNldF90cmFjZWBgLgorCisgIEl0IGhhbmRs
ZXMgYGBoZWFkZXJgYCBzaW1pbGFyIHRvIFB5dGhvbiAzLjcgZG9lcyBpdCwgYW5kIGZvcndhcmRz
IGFueQorICBvdGhlciBrZXl3b3JkIGFyZ3VtZW50cyB0byB0aGUgYGBQZGJgYCBjb25zdHJ1Y3Rv
ci4KKworICBUaGlzIGFsbG93cyBmb3IgYGBfX2ltcG9ydF9fKCJwZGIiKS5zZXRfdHJhY2Uoc2tp
cD1bImZvby4qIl0pYGAuCisKKworLSBgIzQ0ODMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvNDQ4Mz5gXzogQWRkZWQgaW5pIHBhcmFtZXRlciBgYGp1bml0X2R1
cmF0aW9uX3JlcG9ydGBgIHRvIG9wdGlvbmFsbHkgcmVwb3J0IHRlc3QgY2FsbCBkdXJhdGlvbnMs
IGV4Y2x1ZGluZyBzZXR1cCBhbmQgdGVhcmRvd24gdGltZXMuCisKKyAgVGhlIEpVbml0IFhNTCBz
cGVjaWZpY2F0aW9uIGFuZCB0aGUgZGVmYXVsdCBweXRlc3QgYmVoYXZpb3IgaXMgdG8gaW5jbHVk
ZSBzZXR1cCBhbmQgdGVhcmRvd24gdGltZXMgaW4gdGhlIHRlc3QgZHVyYXRpb24KKyAgcmVwb3J0
LiBZb3UgY2FuIGluY2x1ZGUganVzdCB0aGUgY2FsbCBkdXJhdGlvbnMgaW5zdGVhZCAoZXhjbHVk
aW5nIHNldHVwIGFuZCB0ZWFyZG93bikgYnkgYWRkaW5nIHRoaXMgdG8geW91ciBgYHB5dGVzdC5p
bmlgYCBmaWxlOgorCisgIC4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAgW3B5dGVzdF0KKyAg
ICAgIGp1bml0X2R1cmF0aW9uX3JlcG9ydCA9IGNhbGwKKworCistIGAjNDUzMiA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NTMyPmBfOiBgYC1yYWBgIG5vdyB3
aWxsIHNob3cgZXJyb3JzIGFuZCBmYWlsdXJlcyBsYXN0LCBpbnN0ZWFkIG9mIGFzIHRoZSBmaXJz
dCBpdGVtcyBpbiB0aGUgc3VtbWFyeS4KKworICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBvYnRh
aW4gYSBsaXN0IG9mIGVycm9ycyBhbmQgZmFpbHVyZXMgdG8gcnVuIHRlc3RzIHNlbGVjdGl2ZWx5
LgorCisKKy0gYCM0NTk5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzQ1OTk+YF86IGBgcHl0ZXN0LmltcG9ydG9yc2tpcGBgIG5vdyBzdXBwb3J0cyBhIGBgcmVh
c29uYGAgcGFyYW1ldGVyLCB3aGljaCB3aWxsIGJlIHNob3duIHdoZW4gdGhlCisgIHJlcXVlc3Rl
ZCBtb2R1bGUgY2Fubm90IGJlIGltcG9ydGVkLgorCisKKworQnVnIEZpeGVzCistLS0tLS0tLS0K
KworLSBgIzM1MzIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
MzUzMj5gXzogYGAtcGBgIG5vdyBhY2NlcHRzIGl0cyBhcmd1bWVudCB3aXRob3V0IGEgc3BhY2Ug
YmV0d2VlbiB0aGUgdmFsdWUsIGZvciBleGFtcGxlIGBgLXBteXBsdWdpbmBgLgorCisKKy0gYCM0
MzI3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzMjc+YF86
IGBgYXBwcm94YGAgYWdhaW4gd29ya3Mgd2l0aCBtb3JlIGdlbmVyaWMgY29udGFpbmVycywgbW9y
ZSBwcmVjaXNlbHkgaW5zdGFuY2VzIG9mIGBgSXRlcmFibGVgYCBhbmQgYGBTaXplZGBgIGluc3Rl
YWQgb2YgbW9yZSByZXN0cmljdGl2ZSBgYFNlcXVlbmNlYGAuCisKKworLSBgIzQzOTcgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDM5Nz5gXzogRW5zdXJlIHRo
YXQgbm9kZSBpZHMgYXJlIHByaW50YWJsZS4KKworCistIGAjNDQzNSA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NDM1PmBfOiBGaXhlZCBgYHJhaXNlcyguLi4s
ICdjb2RlKHN0cmluZyknKWBgIGZyYW1lIGZpbGVuYW1lLgorCisKKy0gYCM0NDU4IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ0NTg+YF86IERpc3BsYXkgYWN0
dWFsIHRlc3QgaWRzIGluIGBgLS1jb2xsZWN0LW9ubHlgYC4KKworCisKK0ltcHJvdmVkIERvY3Vt
ZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzQ1NTcgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDU1Nz5gXzogTWFya2VycyBleGFtcGxl
IGRvY3VtZW50YXRpb24gcGFnZSB1cGRhdGVkIHRvIHN1cHBvcnQgbGF0ZXN0IHB5dGVzdCB2ZXJz
aW9uLgorCisKKy0gYCM0NTU4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzQ1NTg+YF86IFVwZGF0ZSBjYWNoZSBkb2N1bWVudGF0aW9uIGV4YW1wbGUgdG8gY29y
cmVjdGx5IHNob3cgY2FjaGUgaGl0IGFuZCBtaXNzLgorCisKKy0gYCM0NTgwIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ1ODA+YF86IEltcHJvdmVkIGRldGFp
bGVkIHN1bW1hcnkgcmVwb3J0IGRvY3VtZW50YXRpb24uCisKKworCitUcml2aWFsL0ludGVybmFs
IENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjNDQ0NyA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NDQ3PmBfOiBDaGFuZ2VkIHRoZSBk
ZXByZWNhdGlvbiB0eXBlIG9mIGBgLS1yZXN1bHQtbG9nYGAgdG8gYGBQeXRlc3REZXByZWNhdGlv
bldhcm5pbmdgYC4KKworICBJdCB3YXMgZGVjaWRlZCB0byByZW1vdmUgdGhpcyBmZWF0dXJlIGF0
IHRoZSBuZXh0IG1ham9yIHJldmlzaW9uLgorCisKK3B5dGVzdCA0LjAuMiAoMjAxOC0xMi0xMykK
Kz09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBg
IzQyNjUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDI2NT5g
XzogVmFsaWRhdGUgYXJndW1lbnRzIGZyb20gdGhlIGBgUFlURVNUX0FERE9QVFNgYCBlbnZpcm9u
bWVudCB2YXJpYWJsZSBhbmQgdGhlIGBgYWRkb3B0c2BgIGluaSBvcHRpb24gc2VwYXJhdGVseS4K
KworCistIGAjNDQzNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy80NDM1PmBfOiBGaXggYGByYWlzZXMoLi4uLCAnY29kZShzdHJpbmcpJylgYCBmcmFtZSBmaWxl
bmFtZS4KKworCistIGAjNDUwMCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy80NTAwPmBfOiBXaGVuIGEgZml4dHVyZSB5aWVsZHMgYW5kIGEgbG9nIGNhbGwgaXMg
bWFkZSBhZnRlciB0aGUgdGVzdCBydW5zLCBhbmQsIGlmIHRoZSB0ZXN0IGlzIGludGVycnVwdGVk
LCBjYXB0dXJlIGF0dHJpYnV0ZXMgYXJlIGBgTm9uZWBgLgorCisKKy0gYCM0NTM4IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ1Mzg+YF86IFJhaXNlIGBgVHlw
ZUVycm9yYGAgZm9yIGBgd2l0aCByYWlzZXMoLi4uLCBtYXRjaD08bm9uLU5vbmUgZmFsc2V5IHZh
bHVlPilgYC4KKworCisKK0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworLSBgIzE0OTUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMTQ5NT5gXzogRG9jdW1lbnQgY29tbW9uIGRvY3Rlc3QgZml4dHVyZSBkaXJlY3Rvcnkg
dHJlZSBzdHJ1Y3R1cmUgcGl0ZmFsbHMKKworCitweXRlc3QgNC4wLjEgKDIwMTgtMTEtMjMpCis9
PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMz
OTUyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM5NTI+YF86
IERpc3BsYXkgd2FybmluZ3MgYmVmb3JlICJzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyIgYWdhaW4s
IGJ1dCBzdGlsbCBsYXRlciB3YXJuaW5ncyBpbiB0aGUgZW5kLgorCisKKy0gYCM0Mzg2IDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQzODY+YF86IEhhbmRsZSB1
bmluaXRpYWxpemVkIGV4Y2VwdGlvbmluZm8gaW4gcmVwci9zdHIuCisKKworLSBgIzQzOTMgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDM5Mz5gXzogRG8gbm90
IGNyZWF0ZSBgYC5naXRpZ25vcmVgYC9gYFJFQURNRS5tZGBgIGZpbGVzIGluIGV4aXN0aW5nIGNh
Y2hlIGRpcmVjdG9yaWVzLgorCisKKy0gYCM0NDAwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzQ0MDA+YF86IFJlYXJyYW5nZSB3YXJuaW5nIGhhbmRsaW5nIGZv
ciB0aGUgeWllbGQgdGVzdCBlcnJvcnMgc28gdGhlIG9wdC1vdXQgaW4gNC4wLnggY29ycmVjdGx5
IHdvcmtzLgorCisKKy0gYCM0NDA1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzQ0MDU+YF86IEZpeCBjb2xsZWN0aW9uIG9mIHRlc3RwYXRocyB3aXRoIGBgLS1w
eWFyZ3NgYC4KKworCistIGAjNDQxMiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy80NDEyPmBfOiBGaXggYXNzZXJ0aW9uIHJld3JpdGluZyBpbnZvbHZpbmcgYGBT
dGFycmVkYGAgKyBzaWRlLWVmZmVjdHMuCisKKworLSBgIzQ0MjUgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDQyNT5gXzogRW5zdXJlIHdlIHJlc29sdmUgdGhl
IGFic29sdXRlIHBhdGggd2hlbiB0aGUgZ2l2ZW4gYGAtLWJhc2V0ZW1wYGAgaXMgYSByZWxhdGl2
ZSBwYXRoLgorCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworLSBgIzQzMTUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvNDMxNT5gXzogVXNlIGBgcGtnX3Jlc291cmNlcy5wYXJzZV92ZXJzaW9uYGAgaW5z
dGVhZCBvZiBgYExvb3NlVmVyc2lvbmBgIGluIG1pbnZlcnNpb24gY2hlY2suCisKKworLSBgIzQ0
NDAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDQ0MD5gXzog
QWRqdXN0IHRoZSBzdGFjayBsZXZlbCBvZiBzb21lIGludGVybmFsIHB5dGVzdCB3YXJuaW5ncy4K
KworCitweXRlc3QgNC4wLjAgKDIwMTgtMTEtMTMpCis9PT09PT09PT09PT09PT09PT09PT09PT09
CisKK1JlbW92YWxzCistLS0tLS0tLQorCistIGAjMzczNyA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzM3PmBfOiAqKlJlbW92ZWRJblB5dGVzdDRXYXJuaW5n
cyBhcmUgbm93IGVycm9ycyBieSBkZWZhdWx0LioqCisKKyAgRm9sbG93aW5nIG91ciBwbGFuIHRv
IHJlbW92ZSBkZXByZWNhdGVkIGZlYXR1cmVzIHdpdGggYXMgbGl0dGxlIGRpc3J1cHRpb24gYXMK
KyAgcG9zc2libGUsIGFsbCB3YXJuaW5ncyBvZiB0eXBlIGBgUmVtb3ZlZEluUHl0ZXN0NFdhcm5p
bmdzYGAgbm93IGdlbmVyYXRlIGVycm9ycworICBpbnN0ZWFkIG9mIHdhcm5pbmcgbWVzc2FnZXMu
CisKKyAgKipUaGUgYWZmZWN0ZWQgZmVhdHVyZXMgd2lsbCBiZSBlZmZlY3RpdmVseSByZW1vdmVk
IGluIHB5dGVzdCA0LjEqKiwgc28gcGxlYXNlIGNvbnN1bHQgdGhlCisgIGBEZXByZWNhdGlvbnMg
YW5kIFJlbW92YWxzIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRp
b25zLmh0bWw+YF9fCisgIHNlY3Rpb24gaW4gdGhlIGRvY3MgZm9yIGRpcmVjdGlvbnMgb24gaG93
IHRvIHVwZGF0ZSBleGlzdGluZyBjb2RlLgorCisgIEluIHRoZSBweXRlc3QgYGA0LjAuWGBgIHNl
cmllcywgaXQgaXMgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBlcnJvcnMgYmFjayBpbnRvIHdhcm5p
bmdzIGFzIGEgc3RvcAorICBnYXAgbWVhc3VyZSBieSBhZGRpbmcgdGhpcyB0byB5b3VyIGBgcHl0
ZXN0LmluaWBgIGZpbGU6CisKKyAgLi4gY29kZS1ibG9jazo6IGluaQorCisgICAgICBbcHl0ZXN0
XQorICAgICAgZmlsdGVyd2FybmluZ3MgPQorICAgICAgICAgIGlnbm9yZTo6cHl0ZXN0LlJlbW92
ZWRJblB5dGVzdDRXYXJuaW5nCisKKyAgQnV0IHRoaXMgd2lsbCBzdG9wIHdvcmtpbmcgd2hlbiBw
eXRlc3QgYGA0LjFgYCBpcyByZWxlYXNlZC4KKworICAqKklmIHlvdSBoYXZlIGNvbmNlcm5zKiog
YWJvdXQgdGhlIHJlbW92YWwgb2YgYSBzcGVjaWZpYyBmZWF0dXJlLCBwbGVhc2UgYWRkIGEKKyAg
Y29tbWVudCB0byBgIzQzNDggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNDM0OD5gX18uCisKKworLSBgIzQzNTggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvNDM1OD5gXzogUmVtb3ZlIHRoZSBgYDo6KClgYCBub3RhdGlvbiB0
byBkZW5vdGUgYSB0ZXN0IGNsYXNzIGluc3RhbmNlIGluIG5vZGUgaWRzLgorCisgIFByZXZpb3Vz
bHksIG5vZGUgaWRzIHRoYXQgY29udGFpbiB0ZXN0IGluc3RhbmNlcyB3b3VsZCB1c2UgYGA6Oigp
YGAgdG8gZGVub3RlIHRoZSBpbnN0YW5jZSBsaWtlIHRoaXM6OgorCisgICAgICB0ZXN0X2Zvby5w
eTo6VGVzdDo6KCk6OnRlc3RfYmFyCisKKyAgVGhlIGV4dHJhIGBgOjooKWBgIHdhcyBwdXp6bGlu
ZyB0byBtb3N0IHVzZXJzIGFuZCBoYXMgYmVlbiByZW1vdmVkLCBzbyB0aGF0IHRoZSB0ZXN0IGlk
IGJlY29tZXMgbm93OjoKKworICAgICAgdGVzdF9mb28ucHk6OlRlc3Q6OnRlc3RfYmFyCisKKyAg
VGhpcyBjaGFuZ2UgY291bGQgbm90IGFjY29tcGFueSBhIGRlcHJlY2F0aW9uIHBlcmlvZCBhcyBp
cyB1c3VhbCB3aGVuIHVzZXItZmFjaW5nIGZ1bmN0aW9uYWxpdHkgY2hhbmdlcyBiZWNhdXNlCisg
IGl0IHdhcyBub3QgcmVhbGx5IHBvc3NpYmxlIHRvIGRldGVjdCB3aGVuIHRoZSBmdW5jdGlvbmFs
aXR5IHdhcyBiZWluZyB1c2VkIGV4cGxpY2l0bHkuCisKKyAgVGhlIGV4dHJhIGBgOjooKWBgIG1p
Z2h0IGhhdmUgYmVlbiByZW1vdmVkIGluIHNvbWUgcGxhY2VzIGludGVybmFsbHkgYWxyZWFkeSwK
KyAgd2hpY2ggdGhlbiBsZWQgdG8gY29uZnVzaW9uIGluIHBsYWNlcyB3aGVyZSBpdCB3YXMgZXhw
ZWN0ZWQsIGUuZy4gd2l0aAorICBgYC0tZGVzZWxlY3RgYCAoYCM0MTI3IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQxMjc+YF8pLgorCisgIFRlc3QgY2xhc3Mg
aW5zdGFuY2VzIGFyZSBhbHNvIG5vdCBsaXN0ZWQgd2l0aCBgYC0tY29sbGVjdC1vbmx5YGAgYW55
bW9yZS4KKworCisKK0ZlYXR1cmVzCistLS0tLS0tLQorCistIGAjNDI3MCA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MjcwPmBfOiBUaGUgYGBjYWNoZV9kaXJg
YCBvcHRpb24gdXNlcyBgYCRUT1hfRU5WX0RJUmBgIGFzIHByZWZpeCAoaWYgc2V0IGluIHRoZSBl
bnZpcm9ubWVudCkuCisKKyAgVGhpcyB1c2VzIGEgZGlmZmVyZW50IGNhY2hlIHBlciB0b3ggZW52
aXJvbm1lbnQgYnkgZGVmYXVsdC4KKworCisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMz
NTU0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM1NTQ+YF86
IEZpeCBgYENhbGxJbmZvLl9fcmVwcl9fYGAgZm9yIHdoZW4gdGhlIGNhbGwgaXMgbm90IGZpbmlz
aGVkIHlldC4KKworCitweXRlc3QgMy4xMC4xICgyMDE4LTExLTExKQorPT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBgIzQyODcgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDI4Nz5gXzogRml4IG5lc3RlZCB1
c2FnZSBvZiBkZWJ1Z2dpbmcgcGx1Z2luIChwZGIpLCBlLmcuIHdpdGggcHl0ZXN0ZXIncyBgYHRl
c3RkaXIucnVucHl0ZXN0YGAuCisKKworLSBgIzQzMDQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDMwND5gXzogQmxvY2sgdGhlIGBgc3RlcHdpc2VgYCBwbHVn
aW4gaWYgYGBjYWNoZXByb3ZpZGVyYGAgaXMgYWxzbyBibG9ja2VkLCBhcyBvbmUgZGVwZW5kcyBv
biB0aGUgb3RoZXIuCisKKworLSBgIzQzMDYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNDMwNj5gXzogUGFyc2UgYGBtaW52ZXJzaW9uYGAgYXMgYW4gYWN0dWFs
IHZlcnNpb24gYW5kIG5vdCBhcyBkb3Qtc2VwYXJhdGVkIHN0cmluZ3MuCisKKworLSBgIzQzMTAg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDMxMD5gXzogRml4
IGR1cGxpY2F0ZSBjb2xsZWN0aW9uIGR1ZSB0byBtdWx0aXBsZSBhcmdzIG1hdGNoaW5nIHRoZSBz
YW1lIHBhY2thZ2VzLgorCisKKy0gYCM0MzIxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzQzMjE+YF86IEZpeCBgYGl0ZW0ubm9kZWlkYGAgd2l0aCByZXNvbHZl
ZCBzeW1saW5rcy4KKworCistIGAjNDMyNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy80MzI1PmBfOiBGaXggY29sbGVjdGlvbiBvZiBkaXJlY3Qgc3ltbGlua2Vk
IGZpbGVzLCB3aGVyZSB0aGUgdGFyZ2V0IGRvZXMgbm90IG1hdGNoIGBgcHl0aG9uX2ZpbGVzYGAu
CisKKworLSBgIzQzMjkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvNDMyOT5gXzogRml4IFR5cGVFcnJvciBpbiByZXBvcnRfY29sbGVjdCB3aXRoIF9jb2xsZWN0
X3JlcG9ydF9sYXN0X3dyaXRlLgorCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzQzMDUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDMwNT5gXzogUmVwbGFjZSBieXRlL3VuaWNvZGUgaGVscGVy
cyBpbiB0ZXN0X2NhcHR1cmUgd2l0aCBweXRob24gbGV2ZWwgc3ludGF4LgorCisKK3B5dGVzdCAz
LjEwLjAgKDIwMTgtMTEtMDMpCis9PT09PT09PT09PT09PT09PT09PT09PT09PQorCitGZWF0dXJl
cworLS0tLS0tLS0KKworLSBgIzI2MTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMjYxOT5gXzogUmVzdW1lIGNhcHR1cmluZyBvdXRwdXQgYWZ0ZXIgYGBjb250
aW51ZWBgIHdpdGggYGBfX2ltcG9ydF9fKCJwZGIiKS5zZXRfdHJhY2UoKWBgLgorCisgIFRoaXMg
YWxzbyBhZGRzIGEgbmV3IGBgcHl0ZXN0X2xlYXZlX3BkYmBgIGhvb2ssIGFuZCBwYXNzZXMgaW4g
YGBwZGJgYCB0byB0aGUKKyAgZXhpc3RpbmcgYGBweXRlc3RfZW50ZXJfcGRiYGAgaG9vay4KKwor
CistIGAjNDE0NyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80
MTQ3PmBfOiBBZGQgYGAtLXN3YGAsIGBgLS1zdGVwd2lzZWBgIGFzIGFuIGFsdGVybmF0aXZlIHRv
IGBgLS1sZiAteGBgIGZvciBzdG9wcGluZyBhdCB0aGUgZmlyc3QgZmFpbHVyZSwgYnV0IHN0YXJ0
aW5nIHRoZSBuZXh0IHRlc3QgaW52b2NhdGlvbiBmcm9tIHRoYXQgdGVzdC4gIFNlZSBgdGhlIGRv
Y3VtZW50YXRpb24gPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jYWNoZS5odG1s
I3N0ZXB3aXNlPmBfXyBmb3IgbW9yZSBpbmZvLgorCisKKy0gYCM0MTg4IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQxODg+YF86IE1ha2UgYGAtLWNvbG9yYGAg
ZW1pdCBjb2xvcmZ1bCBkb3RzIHdoZW4gbm90IHJ1bm5pbmcgaW4gdmVyYm9zZSBtb2RlLiBFYXJs
aWVyLCBpdCB3b3VsZCBvbmx5IGNvbG9yaXplIHRoZSB0ZXN0LWJ5LXRlc3Qgb3V0cHV0IGlmIGBg
LS12ZXJib3NlYGAgd2FzIGFsc28gcGFzc2VkLgorCisKKy0gYCM0MjI1IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQyMjU+YF86IEltcHJvdmUgcGVyZm9ybWFu
Y2Ugd2l0aCBjb2xsZWN0aW9uIHJlcG9ydGluZyBpbiBub24tcXVpZXQgbW9kZSB3aXRoIHRlcm1p
bmFscy4KKworICBUaGUgImNvbGxlY3Rpbmcg4oCmIiBtZXNzYWdlIGlzIG9ubHkgcHJpbnRlZC91
cGRhdGVkIGV2ZXJ5IDAuNXMuCisKKworCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAjMjcw
MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNzAxPmBfOiBG
aXggZmFsc2UgYGBSZW1vdmVkSW5QeXRlc3Q0V2FybmluZzogdXNhZ2Ugb2YgU2Vzc2lvbi4uLiBp
cyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIHB5dGVzdGBgIHdhcm5pbmdzLgorCisKKy0gYCM0MDQ2
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQwNDY+YF86IEZp
eCBwcm9ibGVtcyB3aXRoIHJ1bm5pbmcgdGVzdHMgaW4gcGFja2FnZSBgYF9faW5pdF9fLnB5YGAg
ZmlsZXMuCisKKworLSBgIzQyNjAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvNDI2MD5gXzogU3dhbGxvdyB3YXJuaW5ncyBkdXJpbmcgYW5vbnltb3VzIGNvbXBp
bGF0aW9uIG9mIHNvdXJjZS4KKworCistIGAjNDI2MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy80MjYyPmBfOiBGaXggYWNjZXNzIGRlbmllZCBlcnJvciB3aGVu
IGRlbGV0aW5nIHN0YWxlIGRpcmVjdG9yaWVzIGNyZWF0ZWQgYnkgYGB0bXBkaXJgYCAvIGBgdG1w
X3BhdGhgYC4KKworCistIGAjNjExIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzYxMT5gXzogTmFtaW5nIGEgZml4dHVyZSBgYHJlcXVlc3RgYCB3aWxsIG5vdyBy
YWlzZSBhIHdhcm5pbmc6IHRoZSBgYHJlcXVlc3RgYCBmaXh0dXJlIGlzIGludGVybmFsIGFuZAor
ICBzaG91bGQgbm90IGJlIG92ZXJ3cml0dGVuIGFzIGl0IHdpbGwgbGVhZCB0byBpbnRlcm5hbCBl
cnJvcnMuCisKKy0gYCM0MjY2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzQyNjY+YF86IEhhbmRsZSAoaWdub3JlKSBleGNlcHRpb25zIHJhaXNlZCBkdXJpbmcg
Y29sbGVjdGlvbiwgZS5nLiB3aXRoIERqYW5nbydzIExhenlTZXR0aW5ncyBwcm94eSBjbGFzcy4K
KworCisKK0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
LSBgIzQyNTUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDI1
NT5gXzogQWRkZWQgbWlzc2luZyBkb2N1bWVudGF0aW9uIGFib3V0IHRoZSBmYWN0IHRoYXQgbW9k
dWxlIG5hbWVzIHBhc3NlZCB0byBmaWx0ZXIgd2FybmluZ3MgYXJlIG5vdCByZWdleC1lc2NhcGVk
LgorCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworLSBgIzQyNzIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvNDI3Mj5gXzogRGlzcGxheSBjYWNoZWRpciBhbHNvIGluIG5vbi12ZXJib3NlIG1vZGUgaWYg
bm9uLWRlZmF1bHQuCisKKworLSBgIzQyNzcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNDI3Nz5gXzogcGRiOiBpbXByb3ZlIG1lc3NhZ2UgYWJvdXQgb3V0cHV0
IGNhcHR1cmluZyB3aXRoIGBgc2V0X3RyYWNlYGAuCisKKyAgRG8gbm90IGRpc3BsYXkgIklPLWNh
cHR1cmluZyB0dXJuZWQgb2ZmL29uIiB3aGVuIGBgLXNgYCBpcyB1c2VkIHRvIGF2b2lkCisgIGNv
bmZ1c2lvbi4KKworCistIGAjNDI3OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy80Mjc5PmBfOiBJbXByb3ZlIG1lc3NhZ2UgYW5kIHN0YWNrIGxldmVsIG9mIHdh
cm5pbmdzIGlzc3VlZCBieSBgYG1vbmtleXBhdGNoLnNldGVudmBgIHdoZW4gdGhlIHZhbHVlIG9m
IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3QgYSBgYHN0cmBgLgorCisKK3B5dGVzdCAz
LjkuMyAoMjAxOC0xMC0yNykKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVnIEZpeGVz
CistLS0tLS0tLS0KKworLSBgIzQxNzQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNDE3ND5gXzogRml4ICJWYWx1ZUVycm9yOiBQbHVnaW4gYWxyZWFkeSByZWdp
c3RlcmVkIiB3aXRoIGNvbmZ0ZXN0IHBsdWdpbnMgdmlhIHN5bWxpbmsuCisKKworLSBgIzQxODEg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDE4MT5gXzogSGFu
ZGxlIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gY3JlYXRpb24gYW5kIGRlbGV0aW9uIG9mIHRlbXBv
cmFyeSBmb2xkZXJzLgorCisKKy0gYCM0MjIxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzQyMjE+YF86IEZpeCBidWcgd2hlcmUgdGhlIHdhcm5pbmcgc3VtbWFy
eSBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0IHNlc3Npb24gd2FzIG5vdCBzaG93aW5nIHRoZSB0ZXN0
IHdoZXJlIHRoZSB3YXJuaW5nIHdhcyBvcmlnaW5hdGVkLgorCisKKy0gYCM0MjQzIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQyNDM+YF86IEZpeCByZWdyZXNz
aW9uIHdoZW4gYGBzdGFja2xldmVsYGAgZm9yIHdhcm5pbmdzIHdhcyBwYXNzZWQgYXMgcG9zaXRp
b25hbCBhcmd1bWVudCBvbiBweXRob24yLgorCisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMzg1MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zODUxPmBfOiBBZGQgcmVmZXJlbmNlIHRvIGBgZW1wdHlf
cGFyYW1ldGVyX3NldF9tYXJrYGAgaW5pIG9wdGlvbiBpbiBkb2N1bWVudGF0aW9uIG9mIGBgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAKKworCisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYCM0MDI4IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQwMjg+YF86IFJldmVydCBwYXRjaGluZyBvZiBgYHN5
cy5icmVha3BvaW50aG9va2BgIHNpbmNlIGl0IGFwcGVhcnMgdG8gZG8gbm90aGluZy4KKworCist
IGAjNDIzMyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MjMz
PmBfOiBBcHBseSBhbiBpbXBvcnQgc29ydGVyIChgYHJlb3JkZXItcHl0aG9uLWltcG9ydHNgYCkg
dG8gdGhlIGNvZGViYXNlLgorCisKKy0gYCM0MjQ4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzQyNDg+YF86IFJlbW92ZSB1c2Ugb2YgdW5uZWNlc3NhcnkgY29t
cGF0IHNoaW0sIHNpeC5iaW5hcnlfdHlwZQorCisKK3B5dGVzdCAzLjkuMiAoMjAxOC0xMC0yMikK
Kz09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBg
IzI5MDkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjkwOT5g
XzogSW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4gYSByZWN1cnNpdmUgZGVwZW5kZW5jeSBiZXR3
ZWVuIGZpeHR1cmVzIGlzIGRldGVjdGVkLgorCisKKy0gYCMzMzQwIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzMzNDA+YF86IEZpeCBsb2dnaW5nIG1lc3NhZ2Vz
IG5vdCBzaG93biBpbiBob29rcyBgYHB5dGVzdF9zZXNzaW9uc3RhcnQoKWBgIGFuZCBgYHB5dGVz
dF9zZXNzaW9uZmluaXNoKClgYC4KKworCistIGAjMzUzMyA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNTMzPmBfOiBGaXggdW5lc2NhcGVkIFhNTCByYXcgb2Jq
ZWN0cyBpbiBKVW5pdCByZXBvcnQgZm9yIHNraXBwZWQgdGVzdHMKKworCistIGAjMzY5MSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNjkxPmBfOiBQeXRob24g
Mjogc2FmZWx5IGZvcm1hdCB3YXJuaW5nIG1lc3NhZ2UgYWJvdXQgcGFzc2luZyB1bmljb2RlIHN0
cmluZ3MgdG8gYGB3YXJuaW5ncy53YXJuYGAsIHdoaWNoIG1heSBjYXVzZQorICBzdXJwcmlzaW5n
IGBgTWVtb3J5RXJyb3JgYCBleGNlcHRpb24gd2hlbiBtb25rZXkgcGF0Y2hpbmcgYGB3YXJuaW5n
cy53YXJuYGAgaXRzZWxmLgorCisKKy0gYCM0MDI2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzQwMjY+YF86IEltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIGl0
IGlzIG5vdCBwb3NzaWJsZSB0byBkZXRlcm1pbmUgYSBmdW5jdGlvbidzIHNpZ25hdHVyZS4KKwor
CistIGAjNDE3NyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80
MTc3PmBfOiBQaW4gYGBzZXR1cHRvb2xzPj00MC4wYGAgdG8gc3VwcG9ydCBgYHB5X21vZHVsZXNg
YCBpbiBgYHNldHVwLmNmZ2BgCisKKworLSBgIzQxNzkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDE3OT5gXzogUmVzdG9yZSB0aGUgdG1wZGlyIGJlaGF2aW91
ciBvZiBzeW1saW5raW5nIHRoZSBjdXJyZW50IHRlc3QgcnVuLgorCisKKy0gYCM0MTkyIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQxOTI+YF86IEZpeCBmaWxl
bmFtZSByZXBvcnRlZCBieSBgYHdhcm5pbmdzLndhcm5gYCB3aGVuIHVzaW5nIGBgcmVjd2FybmBg
IHVuZGVyIHB5dGhvbjIuCisKKworcHl0ZXN0IDMuOS4xICgyMDE4LTEwLTE2KQorPT09PT09PT09
PT09PT09PT09PT09PT09PQorCitGZWF0dXJlcworLS0tLS0tLS0KKworLSBgIzQxNTkgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDE1OT5gXzogRm9yIHRlc3Qt
c3VpdGVzIGNvbnRhaW5pbmcgdGVzdCBjbGFzc2VzLCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhl
IHN1YmNsYXNzZWQKKyAgbW9kdWxlIGlzIG5vdyBvdXRwdXQgb25seSBpZiBhIGhpZ2hlciB2ZXJi
b3NpdHkgbGV2ZWwgaXMgc3BlY2lmaWVkIChhdCBsZWFzdAorICAiLXZ2IikuCisKKworcHl0ZXN0
IDMuOS4wICgyMDE4LTEwLTE1IC0gbm90IHB1Ymxpc2hlZCBkdWUgdG8gYSByZWxlYXNlIGF1dG9t
YXRpb24gYnVnKQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitEZXByZWNhdGlvbnMKKy0tLS0tLS0tLS0t
LQorCistIGAjMzYxNiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8zNjE2PmBfOiBUaGUgZm9sbG93aW5nIGFjY2Vzc2VzIGhhdmUgYmVlbiBkb2N1bWVudGVkIGFz
IGRlcHJlY2F0ZWQgZm9yIHllYXJzLCBidXQgYXJlIG5vdyBhY3R1YWxseSBlbWl0dGluZyBkZXBy
ZWNhdGlvbiB3YXJuaW5ncy4KKworICAqIEFjY2VzcyBvZiBgYE1vZHVsZWBgLCBgYEZ1bmN0aW9u
YGAsIGBgQ2xhc3NgYCwgYGBJbnN0YW5jZWBgLCBgYEZpbGVgYCBhbmQgYGBJdGVtYGAgdGhyb3Vn
aCBgYE5vZGVgYCBpbnN0YW5jZXMuIE5vdworICAgIHVzZXJzIHdpbGwgdGhpcyB3YXJuaW5nOjoK
KworICAgICAgICAgIHVzYWdlIG9mIEZ1bmN0aW9uLk1vZHVsZSBpcyBkZXByZWNhdGVkLCBwbGVh
c2UgdXNlIHB5dGVzdC5Nb2R1bGUgaW5zdGVhZAorCisgICAgVXNlcnMgc2hvdWxkIGp1c3QgYGBp
bXBvcnQgcHl0ZXN0YGAgYW5kIGFjY2VzcyB0aG9zZSBvYmplY3RzIHVzaW5nIHRoZSBgYHB5dGVz
dGBgIG1vZHVsZS4KKworICAqIGBgcmVxdWVzdC5jYWNoZWRfc2V0dXBgYCwgdGhpcyB3YXMgdGhl
IHByZWN1cnNvciBvZiB0aGUgc2V0dXAvdGVhcmRvd24gbWVjaGFuaXNtIGF2YWlsYWJsZSB0byBm
aXh0dXJlcy4gWW91IGNhbgorICAgIGNvbnN1bHQgYGZ1bmNhcmcgY29tcGFyaXNvbiBzZWN0aW9u
IGluIHRoZSBkb2NzIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZnVuY2FyZ19j
b21wYXJlLmh0bWw+YF8uCisKKyAgKiBVc2luZyBvYmplY3RzIG5hbWVkIGBgIkNsYXNzImBgIGFz
IGEgd2F5IHRvIGN1c3RvbWl6ZSB0aGUgdHlwZSBvZiBub2RlcyB0aGF0IGFyZSBjb2xsZWN0ZWQg
aW4gYGBDb2xsZWN0b3JgYAorICAgIHN1YmNsYXNzZXMgaGFzIGJlZW4gZGVwcmVjYXRlZC4gVXNl
cnMgaW5zdGVhZCBzaG91bGQgdXNlIGBgcHl0ZXN0X2NvbGxlY3RfbWFrZV9pdGVtYGAgdG8gY3Vz
dG9taXplIG5vZGUgdHlwZXMgZHVyaW5nCisgICAgY29sbGVjdGlvbi4KKworICAgIFRoaXMgaXNz
dWUgc2hvdWxkIGFmZmVjdCBvbmx5IGFkdmFuY2VkIHBsdWdpbnMgd2hvIGNyZWF0ZSBuZXcgY29s
bGVjdGlvbiB0eXBlcywgc28gaWYgeW91IHNlZSB0aGlzIHdhcm5pbmcKKyAgICBtZXNzYWdlIHBs
ZWFzZSBjb250YWN0IHRoZSBhdXRob3JzIHNvIHRoZXkgY2FuIGNoYW5nZSB0aGUgY29kZS4KKwor
ICAqIFRoZSB3YXJuaW5nIHRoYXQgcHJvZHVjZXMgdGhlIG1lc3NhZ2UgYmVsb3cgaGFzIGNoYW5n
ZWQgdG8gYGBSZW1vdmVkSW5QeXRlc3Q0V2FybmluZ2BgOjoKKworICAgICAgICAgIGdldGZ1bmNh
cmd2YWx1ZSBpcyBkZXByZWNhdGVkLCB1c2UgZ2V0Zml4dHVyZXZhbHVlCisKKworLSBgIzM5ODgg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzk4OD5gXzogQWRk
IGEgRGVwcmVjYXRpb24gd2FybmluZyBmb3IgcHl0ZXN0LmVuc3VyZXRlbXAgYXMgaXQgd2FzIGRl
cHJlY2F0ZWQgc2luY2UgYSB3aGlsZS4KKworCisKK0ZlYXR1cmVzCistLS0tLS0tLQorCistIGAj
MjI5MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMjkzPmBf
OiBJbXByb3ZlIHVzYWdlIGVycm9ycyBtZXNzYWdlcyBieSBoaWRpbmcgaW50ZXJuYWwgZGV0YWls
cyB3aGljaCBjYW4gYmUgZGlzdHJhY3RpbmcgYW5kIG5vaXN5LgorCisgIFRoaXMgaGFzIHRoZSBz
aWRlIGVmZmVjdCB0aGF0IHNvbWUgZXJyb3IgY29uZGl0aW9ucyB0aGF0IHByZXZpb3VzbHkgcmFp
c2VkIGdlbmVyaWMgZXJyb3JzIChzdWNoIGFzCisgIGBgVmFsdWVFcnJvcmBgIGZvciB1bnJlZ2lz
dGVyZWQgbWFya3MpIGFyZSBub3cgcmFpc2luZyBgYEZhaWxlZGBgIGV4Y2VwdGlvbnMuCisKKwor
LSBgIzMzMzIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzMz
Mj5gXzogSW1wcm92ZSB0aGUgZXJyb3IgZGlzcGxheWVkIHdoZW4gYSBgYGNvbmZ0ZXN0LnB5YGAg
ZmlsZSBjb3VsZCBub3QgYmUgaW1wb3J0ZWQuCisKKyAgSW4gb3JkZXIgdG8gaW1wbGVtZW50IHRo
aXMsIGEgbmV3IGBgY2hhaW5gYCBwYXJhbWV0ZXIgd2FzIGFkZGVkIHRvIGBgRXhjZXB0aW9uSW5m
by5nZXRyZXByYGAKKyAgdG8gc2hvdyBvciBoaWRlIGNoYWluZWQgdHJhY2ViYWNrcyBpbiBQeXRo
b24gMyAoZGVmYXVsdHMgdG8gYGBUcnVlYGApLgorCisKKy0gYCMzODQ5IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM4NDk+YF86IEFkZCBgYGVtcHR5X3BhcmFt
ZXRlcl9zZXRfbWFyaz1mYWlsX2F0X2NvbGxlY3RgYCBpbmkgb3B0aW9uIGZvciByYWlzaW5nIGFu
IGV4Y2VwdGlvbiB3aGVuIHBhcmFtZXRyaXplIGNvbGxlY3RzIGFuIGVtcHR5IHNldC4KKworCist
IGAjMzk2NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTY0
PmBfOiBMb2cgbWVzc2FnZXMgZ2VuZXJhdGVkIGluIHRoZSBjb2xsZWN0aW9uIHBoYXNlIGFyZSBz
aG93biB3aGVuCisgIGxpdmUtbG9nZ2luZyBpcyBlbmFibGVkIGFuZC9vciB3aGVuIHRoZXkgYXJl
IGxvZ2dlZCB0byBhIGZpbGUuCisKKworLSBgIzM5ODUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzk4NT5gXzogSW50cm9kdWNlIGBgdG1wX3BhdGhgYCBhcyBh
IGZpeHR1cmUgcHJvdmlkaW5nIGEgUGF0aCBvYmplY3QuCisKKworLSBgIzQwMTMgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDAxMz5gXzogRGVwcmVjYXRpb24g
d2FybmluZ3MgYXJlIG5vdyBzaG93biBldmVuIGlmIHlvdSBjdXN0b21pemUgdGhlIHdhcm5pbmdz
IGZpbHRlcnMgeW91cnNlbGYuIEluIHRoZSBwcmV2aW91cyB2ZXJzaW9uCisgIGFueSBjdXN0b21p
emF0aW9uIHdvdWxkIG92ZXJyaWRlIHB5dGVzdCdzIGZpbHRlcnMgYW5kIGRlcHJlY2F0aW9uIHdh
cm5pbmdzIHdvdWxkIGZhbGwgYmFjayB0byBiZWluZyBoaWRkZW4gYnkgZGVmYXVsdC4KKworCist
IGAjNDA3MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MDcz
PmBfOiBBbGxvdyBzcGVjaWZpY2F0aW9uIG9mIHRpbWVvdXQgZm9yIGBgVGVzdGRpci5ydW5weXRl
c3Rfc3VicHJvY2VzcygpYGAgYW5kIGBgVGVzdGRpci5ydW4oKWBgLgorCisKKy0gYCM0MDk4IDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQwOTg+YF86IEFkZCBy
ZXR1cm5jb2RlIGFyZ3VtZW50IHRvIHB5dGVzdC5leGl0KCkgdG8gZXhpdCBweXRlc3Qgd2l0aCBh
IHNwZWNpZmljIHJldHVybiBjb2RlLgorCisKKy0gYCM0MTAyIDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQxMDI+YF86IFJlaW1wbGVtZW50IGBgcHl0ZXN0LmRl
cHJlY2F0ZWRfY2FsbGBgIHVzaW5nIGBgcHl0ZXN0Lndhcm5zYGAgc28gaXQgc3VwcG9ydHMgdGhl
IGBgbWF0Y2g9Jy4uLidgYCBrZXl3b3JkIGFyZ3VtZW50LgorCisgIFRoaXMgaGFzIHRoZSBzaWRl
IGVmZmVjdCB0aGF0IGBgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbGBgIG5vdyByYWlzZXMgYGBweXRl
c3QuZmFpbC5FeGNlcHRpb25gYCBpbnN0ZWFkCisgIG9mIGBgQXNzZXJ0aW9uRXJyb3JgYC4KKwor
CistIGAjNDE0OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80
MTQ5PmBfOiBSZXF1aXJlIHNldHVwdG9vbHM+PTMwLjMgYW5kIG1vdmUgbW9zdCBvZiB0aGUgbWV0
YWRhdGEgdG8gYGBzZXR1cC5jZmdgYC4KKworCisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0g
YCMyNTM1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI1MzU+
YF86IEltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIHRlc3QgZnVuY3Rpb25zIG9mIGBgdW5pdHRl
c3QuVGVzdENhc2VgYCBzdWJjbGFzc2VzIHVzZSBhIHBhcmFtZXRyaXplZCBmaXh0dXJlLgorCisK
Ky0gYCMzMDU3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzMw
NTc+YF86IGBgcmVxdWVzdC5maXh0dXJlbmFtZXNgYCBub3cgY29ycmVjdGx5IHJldHVybnMgdGhl
IG5hbWUgb2YgZml4dHVyZXMgY3JlYXRlZCBieSBgYHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKClg
YC4KKworCistIGAjMzk0NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8zOTQ2PmBfOiBXYXJuaW5nIGZpbHRlcnMgcGFzc2VkIGFzIGNvbW1hbmQgbGluZSBvcHRp
b25zIHVzaW5nIGBgLVdgYCBub3cgdGFrZSBwcmVjZWRlbmNlIG92ZXIgZmlsdGVycyBkZWZpbmVk
IGluIGBgaW5pYGAKKyAgY29uZmlndXJhdGlvbiBmaWxlcy4KKworCistIGAjNDA2NiA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MDY2PmBfOiBGaXggc291cmNl
IHJlaW5kZW50aW5nIGJ5IHVzaW5nIGBgdGV4dHdyYXAuZGVkZW50YGAgZGlyZWN0bHkuCisKKwor
LSBgIzQxMDIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDEw
Mj5gXzogYGBweXRlc3Qud2FybmBgIHdpbGwgY2FwdHVyZSBwcmV2aW91c2x5LXdhcm5lZCB3YXJu
aW5ncyBpbiBQeXRob24gMi4gUHJldmlvdXNseSB0aGV5IHdlcmUgbmV2ZXIgcmFpc2VkLgorCisK
Ky0gYCM0MTA4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQx
MDg+YF86IFJlc29sdmUgc3ltYm9saWMgbGlua3MgZm9yIGFyZ3MuCisKKyAgVGhpcyBmaXhlcyBy
dW5uaW5nIGBgcHl0ZXN0IHRlc3RzL3Rlc3RfZm9vLnB5Ojp0ZXN0X2JhcmBgLCB3aGVyZSBgYHRl
c3RzYGAKKyAgaXMgYSBzeW1saW5rIHRvIGBgcHJvamVjdC9hcHAvdGVzdHNgYDoKKyAgcHJldmlv
dXNseSBgYHByb2plY3QvYXBwL2NvbmZ0ZXN0LnB5YGAgd291bGQgYmUgaWdub3JlZCBmb3IgZml4
dHVyZXMgdGhlbi4KKworCistIGAjNDEzMiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy80MTMyPmBfOiBGaXggZHVwbGljYXRlIHByaW50aW5nIG9mIGludGVybmFs
IGVycm9ycyB3aGVuIHVzaW5nIGBgLS1wZGJgYC4KKworCistIGAjNDEzNSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80MTM1PmBfOiBwYXRobGliIGJhc2VkIHRt
cGRpciBjbGVhbnVwIG5vdyBjb3JyZWN0bHkgaGFuZGxlcyBzeW1saW5rcyBpbiB0aGUgZm9sZGVy
LgorCisKKy0gYCM0MTUyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzQxNTI+YF86IERpc3BsYXkgdGhlIGZpbGVuYW1lIHdoZW4gZW5jb3VudGVyaW5nIGBgU3lu
dGF4V2FybmluZ2BgLgorCisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCistIGAjMzcxMyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8zNzEzPmBfOiBVcGRhdGUgdXNlZml4dHVyZXMgZG9jdW1lbnRhdGlvbiB0byBj
bGFyaWZ5IHRoYXQgaXQgY2FuJ3QgYmUgdXNlZCB3aXRoIGZpeHR1cmUgZnVuY3Rpb25zLgorCisK
Ky0gYCM0MDU4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQw
NTg+YF86IFVwZGF0ZSBmaXh0dXJlIGRvY3VtZW50YXRpb24gdG8gc3BlY2lmeSB0aGF0IGEgZml4
dHVyZSBjYW4gYmUgaW52b2tlZCB0d2ljZSBpbiB0aGUgc2NvcGUgaXQncyBkZWZpbmVkIGZvci4K
KworCistIGAjNDA2NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy80MDY0PmBfOiBBY2NvcmRpbmcgdG8gdW5pdHRlc3QucnN0LCBzZXRVcE1vZHVsZSBhbmQgdGVh
ckRvd25Nb2R1bGUgd2VyZSBub3QgaW1wbGVtZW50ZWQsIGJ1dCBpdCB0dXJucyBvdXQgdGhleSBh
cmUuIFNvIHVwZGF0ZWQgdGhlIGRvY3VtZW50YXRpb24gZm9yIHVuaXR0ZXN0LgorCisKKy0gYCM0
MTUxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQxNTE+YF86
IEFkZCB0ZW1waXIgdGVzdGluZyBleGFtcGxlIHRvIENPTlRSSUJVVElORy5yc3QgZ3VpZGUKKwor
CisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky0gYCMyMjkzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIy
OTM+YF86IFRoZSBpbnRlcm5hbCBgYE1hcmtlckVycm9yYGAgZXhjZXB0aW9uIGhhcyBiZWVuIHJl
bW92ZWQuCisKKworLSBgIzM5ODggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMzk4OD5gXzogUG9ydCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdG1wZGlyIHRvIHBh
dGhsaWIuCisKKworLSBgIzQwNjMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvNDA2Mz5gXzogRXhjbHVkZSAwLjAwIHNlY29uZCBlbnRyaWVzIGZyb20gYGAtLWR1
cmF0aW9uYGAgb3V0cHV0IHVubGVzcyBgYC12dmBgIGlzIHBhc3NlZCBvbiB0aGUgY29tbWFuZC1s
aW5lLgorCisKKy0gYCM0MDkzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzQwOTM+YF86IEZpeGVkIGZvcm1hdHRpbmcgb2Ygc3RyaW5nIGxpdGVyYWxzIGluIGlu
dGVybmFsIHRlc3RzLgorCisKK3B5dGVzdCAzLjguMiAoMjAxOC0xMC0wMikKKz09PT09PT09PT09
PT09PT09PT09PT09PT0KKworRGVwcmVjYXRpb25zIGFuZCBSZW1vdmFscworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCistIGAjNDAzNiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy80MDM2PmBfOiBUaGUgYGBpdGVtYGAgcGFyYW1ldGVyIG9mIGBgcHl0ZXN0
X3dhcm5pbmdfY2FwdHVyZWRgYCBob29rIGlzIG5vdyBkb2N1bWVudGVkIGFzIGRlcHJlY2F0ZWQu
IFdlIHJlYWxpemVkIG9ubHkgYWZ0ZXIKKyAgdGhlIGBgMy44YGAgcmVsZWFzZSB0aGF0IHRoaXMg
cGFyYW1ldGVyIGlzIGluY29tcGF0aWJsZSB3aXRoIGBgcHl0ZXN0LXhkaXN0YGAuCisKKyAgT3Vy
IHBvbGljeSBpcyB0byBub3QgZGVwcmVjYXRlIGZlYXR1cmVzIGR1cmluZyBidWdmaXggcmVsZWFz
ZXMsIGJ1dCBpbiB0aGlzIGNhc2Ugd2UgYmVsaWV2ZSBpdCBtYWtlcyBzZW5zZSBhcyB3ZSBhcmUK
KyAgb25seSBkb2N1bWVudGluZyBpdCBhcyBkZXByZWNhdGVkLCB3aXRob3V0IGlzc3Vpbmcgd2Fy
bmluZ3Mgd2hpY2ggbWlnaHQgcG90ZW50aWFsbHkgYnJlYWsgdGVzdCBzdWl0ZXMuIFRoaXMgd2ls
bCBnZXQKKyAgdGhlIHdvcmQgb3V0IHRoYXQgaG9vayBpbXBsZW1lbnRlcnMgc2hvdWxkIG5vdCB1
c2UgdGhpcyBwYXJhbWV0ZXIgYXQgYWxsLgorCisgIEluIGEgZnV0dXJlIHJlbGVhc2UgYGBpdGVt
YGAgd2lsbCBhbHdheXMgYmUgYGBOb25lYGAgYW5kIHdpbGwgZW1pdCBhIHByb3BlciB3YXJuaW5n
IHdoZW4gYSBob29rIGltcGxlbWVudGF0aW9uCisgIG1ha2VzIHVzZSBvZiBpdC4KKworCisKK0J1
ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMzNTM5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzM1Mzk+YF86IEZpeCByZWxvYWQgb24gYXNzZXJ0aW9uIHJld3Jp
dHRlbiBtb2R1bGVzLgorCisKKy0gYCM0MDM0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzQwMzQ+YF86IFRoZSBgYC51c2VyX3Byb3BlcnRpZXNgYCBhdHRyaWJ1
dGUgb2YgYGBUZXN0UmVwb3J0YGAgb2JqZWN0cyBpcyBhIGxpc3QKKyAgb2YgKG5hbWUsIHZhbHVl
KSB0dXBsZXMsIGJ1dCBjb3VsZCBzb21ldGltZXMgYmUgaW5zdGFudGlhdGVkIGFzIGEgdHVwbGUK
KyAgb2YgdHVwbGVzLiAgSXQgaXMgbm93IGFsd2F5cyBhIGxpc3QuCisKKworLSBgIzQwMzkgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDAzOT5gXzogTm8gbG9u
Z2VyIGlzc3VlIHdhcm5pbmdzIGFib3V0IHVzaW5nIGBgcHl0ZXN0X3BsdWdpbnNgYCBpbiBub24t
dG9wLWxldmVsIGRpcmVjdG9yaWVzIHdoZW4gdXNpbmcgYGAtLXB5YXJnc2BgOiB0aGUKKyAgY3Vy
cmVudCBgYC0tcHlhcmdzYGAgbWVjaGFuaXNtIGlzIG5vdCByZWxpYWJsZSBhbmQgbWlnaHQgZ2l2
ZSBmYWxzZSBuZWdhdGl2ZXMuCisKKworLSBgIzQwNDAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNDA0MD5gXzogRXhjbHVkZSBlbXB0eSByZXBvcnRzIGZvciBw
YXNzZWQgdGVzdHMgd2hlbiBgYC1yUGBgIG9wdGlvbiBpcyB1c2VkLgorCisKKy0gYCM0MDUxIDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQwNTE+YF86IEltcHJv
dmUgZXJyb3IgbWVzc2FnZSB3aGVuIGFuIGludmFsaWQgUHl0aG9uIGV4cHJlc3Npb24gaXMgcGFz
c2VkIHRvIHRoZSBgYC1tYGAgb3B0aW9uLgorCisKKy0gYCM0MDU2IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQwNTY+YF86IGBgTW9ua2V5UGF0Y2guc2V0ZW52
YGAgYW5kIGBgTW9ua2V5UGF0Y2guZGVsZW52YGAgaXNzdWUgYSB3YXJuaW5nIGlmIHRoZSBlbnZp
cm9ubWVudCB2YXJpYWJsZSBuYW1lIGlzIG5vdCBgYHN0cmBgIG9uIFB5dGhvbiAyLgorCisgIElu
IFB5dGhvbiAyLCBhZGRpbmcgYGB1bmljb2RlYGAga2V5cyB0byBgYG9zLmVudmlyb25gYCBjYXVz
ZXMgcHJvYmxlbXMgd2l0aCBgYHN1YnByb2Nlc3NgYCAoYW5kIHBvc3NpYmxlIG90aGVyIG1vZHVs
ZXMpLAorICBtYWtpbmcgdGhpcyBhIHN1YnRsZSBidWcgc3BlY2lhbGx5IHN1c2NlcHRpYmxlIHdo
ZW4gdXNlZCB3aXRoIGBgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzYGAu
CisKKworCitJbXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky0gYCMzOTI4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM5
Mjg+YF86IEFkZCBwb3NzaWJsZSB2YWx1ZXMgZm9yIGZpeHR1cmUgc2NvcGUgdG8gZG9jcy4KKwor
CitweXRlc3QgMy44LjEgKDIwMTgtMDktMjIpCis9PT09PT09PT09PT09PT09PT09PT09PT09CisK
K0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMzMjg2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzMyODY+YF86IGBgLnB5dGVzdF9jYWNoZWBgIGRpcmVjdG9y
eSBpcyBub3cgYXV0b21hdGljYWxseSBpZ25vcmVkIGJ5IEdpdC4gVXNlcnMgd2hvIHdvdWxkIGxp
a2UgdG8gY29udHJpYnV0ZSBhIHNvbHV0aW9uIGZvciBvdGhlciBTQ01zIHBsZWFzZSBjb25zdWx0
L2NvbW1lbnQgb24gdGhpcyBpc3N1ZS4KKworCistIGAjMzc0OSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzQ5PmBfOiBGaXggdGhlIGZvbGxvd2luZyBlcnJv
ciBkdXJpbmcgY29sbGVjdGlvbiBvZiB0ZXN0cyBpbnNpZGUgcGFja2FnZXM6OgorCisgICAgICBU
eXBlRXJyb3I6IG9iamVjdCBvZiB0eXBlICdQYWNrYWdlJyBoYXMgbm8gbGVuKCkKKworCistIGAj
Mzk0MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTQxPmBf
OiBGaXggYnVnIHdoZXJlIGluZGlyZWN0IHBhcmFtZXRyaXphdGlvbiB3b3VsZCBjb25zaWRlciB0
aGUgc2NvcGUgb2YgYWxsIGZpeHR1cmVzIHVzZWQgYnkgdGhlIHRlc3QgZnVuY3Rpb24gdG8gZGV0
ZXJtaW5lIHRoZSBwYXJhbWV0cml6YXRpb24gc2NvcGUsIGFuZCBub3Qgb25seSB0aGUgc2NvcGUg
b2YgdGhlIGZpeHR1cmVzIGJlaW5nIHBhcmFtZXRyaXplZC4KKworCistIGAjMzk3MyA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTczPmBfOiBGaXggY3Jhc2gg
b2YgdGhlIGFzc2VydGlvbiByZXdyaXRlciBpZiBhIHRlc3QgY2hhbmdlZCB0aGUgY3VycmVudCB3
b3JraW5nIGRpcmVjdG9yeSB3aXRob3V0IHJlc3RvcmluZyBpdCBhZnRlcndhcmRzLgorCisKKy0g
YCMzOTk4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM5OTg+
YF86IEZpeCBpc3N1ZSB0aGF0IHByZXZlbnRlZCBzb21lIGNhcGxvZyBwcm9wZXJ0aWVzIChmb3Ig
ZXhhbXBsZSBgYHJlY29yZF90dXBsZXNgYCkgZnJvbSBiZWluZyBhdmFpbGFibGUgd2hlbiBlbnRl
cmluZyB0aGUgZGVidWdnZXIgd2l0aCBgYC0tcGRiYGAuCisKKworLSBgIzM5OTkgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzk5OT5gXzogRml4IGBgVW5pY29k
ZURlY29kZUVycm9yYGAgaW4gcHl0aG9uMi54IHdoZW4gYSBjbGFzcyByZXR1cm5zIGEgbm9uLWFz
Y2lpIGJpbmFyeSBgYF9fcmVwcl9fYGAgaW4gYW4gYXNzZXJ0aW9uIHdoaWNoIGFsc28gY29udGFp
bnMgbm9uLWFzY2lpIHRleHQuCisKKworCitJbXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKy0gYCMzOTk2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzM5OTY+YF86IE5ldyBgRGVwcmVjYXRpb25zIGFuZCBSZW1vdmFscyA8
aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sPmBfIHBh
Z2Ugc2hvd3MgYWxsIGN1cnJlbnRseQorICBkZXByZWNhdGVkIGZlYXR1cmVzLCB0aGUgcmF0aW9u
YWxlIHRvIGRvIHNvLCBhbmQgYWx0ZXJuYXRpdmVzIHRvIHVwZGF0ZSB5b3VyIGNvZGUuIEl0IGFs
c28gbGlzdCBmZWF0dXJlcyByZW1vdmVkCisgIGZyb20gcHl0ZXN0IGluIHBhc3QgbWFqb3IgcmVs
ZWFzZXMgdG8gaGVscCB0aG9zZSB3aXRoIGFuY2llbnQgcHl0ZXN0IHZlcnNpb25zIHRvIHVwZ3Jh
ZGUuCisKKworCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCistIGAjMzk1NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8zOTU1PmBfOiBJbXByb3ZlIHByZS1jb21taXQgZGV0ZWN0aW9uIGZvciBjaGFuZ2Vsb2cg
ZmlsZW5hbWVzCisKKworLSBgIzM5NzUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMzk3NT5gXzogUmVtb3ZlIGxlZ2FjeSBjb2RlIGFyb3VuZCBpbV9mdW5jIGFz
IHRoYXQgd2FzIHB5dGhvbjIgb25seQorCisKK3B5dGVzdCAzLjguMCAoMjAxOC0wOS0wNSkKKz09
PT09PT09PT09PT09PT09PT09PT09PT0KKworRGVwcmVjYXRpb25zIGFuZCBSZW1vdmFscworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMjQ1MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNDUyPmBfOiBgYENvbmZpZy53YXJuYGAgYW5kIGBgTm9k
ZS53YXJuYGAgaGF2ZSBiZWVuCisgIGRlcHJlY2F0ZWQsIHNlZSBgPGh0dHBzOi8vZG9jcy5weXRl
c3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNjb25maWctd2Fybi1hbmQtbm9kZS13
YXJuPmBfIGZvciByYXRpb25hbGUgYW5kCisgIGV4YW1wbGVzLgorCistIGAjMzkzNiA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTM2PmBfOiBgYEBweXRlc3Qu
bWFyay5maWx0ZXJ3YXJuaW5nc2BgIHNlY29uZCBwYXJhbWV0ZXIgaXMgbm8gbG9uZ2VyIHJlZ2V4
LWVzY2FwZWQsCisgIG1ha2luZyBpdCBwb3NzaWJsZSB0byBhY3R1YWxseSB1c2UgcmVndWxhciBl
eHByZXNzaW9ucyB0byBjaGVjayB0aGUgd2FybmluZyBtZXNzYWdlLgorCisgICoqTm90ZSoqOiBy
ZWdleC1lc2NhcGluZyB0aGUgbWF0Y2ggc3RyaW5nIHdhcyBhbiBpbXBsZW1lbnRhdGlvbiBvdmVy
c2lnaHQgdGhhdCBtaWdodCBicmVhayB0ZXN0IHN1aXRlcyB3aGljaCBkZXBlbmQKKyAgb24gdGhl
IG9sZCBiZWhhdmlvci4KKworCisKK0ZlYXR1cmVzCistLS0tLS0tLQorCistIGAjMjQ1MiA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNDUyPmBfOiBJbnRlcm5h
bCBweXRlc3Qgd2FybmluZ3MgYXJlIG5vdyBpc3N1ZWQgdXNpbmcgdGhlIHN0YW5kYXJkIGBgd2Fy
bmluZ3NgYCBtb2R1bGUsIG1ha2luZyBpdCBwb3NzaWJsZSB0byB1c2UKKyAgdGhlIHN0YW5kYXJk
IHdhcm5pbmdzIGZpbHRlcnMgdG8gbWFuYWdlIHRob3NlIHdhcm5pbmdzLiBUaGlzIGludHJvZHVj
ZXMgYGBQeXRlc3RXYXJuaW5nYGAsCisgIGBgUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nYGAgYW5k
IGBgUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmdgYCB3YXJuaW5nIHR5cGVzIGFzIHBhcnQgb2YgdGhl
IHB1YmxpYyBBUEkuCisKKyAgQ29uc3VsdCBgdGhlIGRvY3VtZW50YXRpb24gPGh0dHBzOi8vZG9j
cy5weXRlc3Qub3JnL2VuL2xhdGVzdC93YXJuaW5ncy5odG1sI2ludGVybmFsLXB5dGVzdC13YXJu
aW5ncz5gX18gZm9yIG1vcmUgaW5mby4KKworCistIGAjMjkwOCA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yOTA4PmBfOiBgYERlcHJlY2F0aW9uV2FybmluZ2Bg
IGFuZCBgYFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmdgYCBhcmUgbm93IHNob3duIGJ5IGRlZmF1
bHQgaWYgbm8gb3RoZXIgd2FybmluZyBmaWx0ZXIgaXMKKyAgY29uZmlndXJlZC4gVGhpcyBtYWtl
cyBweXRlc3QgbW9yZSBjb21wbGlhbnQgd2l0aAorICBgUEVQLTA1MDYgPGh0dHBzOi8vd3d3LnB5
dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTA1NjUvI3JlY29tbWVuZGVkLWZpbHRlci1zZXR0aW5ncy1m
b3ItdGVzdC1ydW5uZXJzPmBfLiBTZWUKKyAgYHRoZSBkb2NzIDxodHRwczovL2RvY3MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3Qvd2FybmluZ3MuaHRtbCNkZXByZWNhdGlvbndhcm5pbmctYW5kLXBlbmRp
bmdkZXByZWNhdGlvbndhcm5pbmc+YF8gZm9yCisgIG1vcmUgaW5mby4KKworCistIGAjMzI1MSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMjUxPmBfOiBXYXJu
aW5ncyBhcmUgbm93IGNhcHR1cmVkIGFuZCBkaXNwbGF5ZWQgZHVyaW5nIHRlc3QgY29sbGVjdGlv
bi4KKworCistIGAjMzc4NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8zNzg0PmBfOiBgYFBZVEVTVF9ESVNBQkxFX1BMVUdJTl9BVVRPTE9BRGBgIGVudmlyb25t
ZW50IHZhcmlhYmxlIGRpc2FibGVzIHBsdWdpbiBhdXRvLWxvYWRpbmcgd2hlbiBzZXQuCisKKwor
LSBgIzM4MjkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzgy
OT5gXzogQWRkZWQgdGhlIGBgY291bnRgYCBvcHRpb24gdG8gYGBjb25zb2xlX291dHB1dF9zdHls
ZWBgIHRvIGVuYWJsZSBkaXNwbGF5aW5nIHRoZSBwcm9ncmVzcyBhcyBhIGNvdW50IGluc3RlYWQg
b2YgYSBwZXJjZW50YWdlLgorCisKKy0gYCMzODM3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzM4Mzc+YF86IEFkZGVkIHN1cHBvcnQgZm9yICd4ZmFpbGVkJyBh
bmQgJ3hwYXNzZWQnIG91dGNvbWVzIHRvIHRoZSBgYHB5dGVzdGVyLlJ1blJlc3VsdC5hc3NlcnRf
b3V0Y29tZXNgYCBzaWduYXR1cmUuCisKKworCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIGAj
MzkxMSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zOTExPmBf
OiBUZXJtaW5hbCB3cml0ZXIgbm93IHRha2VzIGludG8gYWNjb3VudCB1bmljb2RlIGNoYXJhY3Rl
ciB3aWR0aCB3aGVuIHdyaXRpbmcgb3V0IHByb2dyZXNzLgorCisKKy0gYCMzOTEzIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM5MTM+YF86IFB5dGVzdCBub3cg
cmV0dXJucyB3aXRoIGNvcnJlY3QgZXhpdCBjb2RlIChFWElUX1VTQUdFRVJST1IsIDQpIHdoZW4g
Y2FsbGVkIHdpdGggdW5rbm93biBhcmd1bWVudHMuCisKKworLSBgIzM5MTggPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzkxOD5gXzogSW1wcm92ZSBwZXJmb3Jt
YW5jZSBvZiBhc3NlcnRpb24gcmV3cml0aW5nLgorCisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlv
bgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMzU2NiA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNTY2PmBfOiBBZGRlZCBhIGJsdXJiIGluIHVzYWdl
LnJzdCBmb3IgdGhlIHVzYWdlIG9mIC1yIGZsYWcgd2hpY2ggaXMgdXNlZCB0byBzaG93IGFuIGV4
dHJhIHRlc3Qgc3VtbWFyeSBpbmZvLgorCisKKy0gYCMzOTA3IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM5MDc+YF86IENvcnJlY3RlZCB0eXBlIG9mIHRoZSBl
eGNlcHRpb25zIGNvbGxlY3Rpb24gcGFzc2VkIHRvIGBgeGZhaWxgYDogYGByYWlzZXNgYCBhcmd1
bWVudCBhY2NlcHRzIGEgYGB0dXBsZWBgIGluc3RlYWQgb2YgYGBsaXN0YGAuCisKKworCitUcml2
aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMzg1
MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zODUzPmBfOiBS
ZW1vdmVkIGBgInJ1biBhbGwgKG5vIHJlY29yZGVkIGZhaWx1cmVzKSJgYCBtZXNzYWdlIHByaW50
ZWQgd2l0aCBgYC0tZmFpbGVkLWZpcnN0YGAgYW5kIGBgLS1sYXN0LWZhaWxlZGBgIHdoZW4gdGhl
cmUgYXJlIG5vIGZhaWxlZCB0ZXN0cy4KKworCitweXRlc3QgMy43LjQgKDIwMTgtMDgtMjkpCis9
PT09PT09PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMz
NTA2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM1MDY+YF86
IEZpeCBwb3NzaWJsZSBpbmZpbml0ZSByZWN1cnNpb24gd2hlbiB3cml0aW5nIGBgLnB5Y2BgIGZp
bGVzLgorCisKKy0gYCMzODUzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzM4NTM+YF86IENhY2hlIHBsdWdpbiBub3cgb2JleXMgdGhlIGBgLXFgYCBmbGFnIHdo
ZW4gYGAtLWxhc3QtZmFpbGVkYGAgYW5kIGBgLS1mYWlsZWQtZmlyc3RgYCBmbGFncyBhcmUgdXNl
ZC4KKworCistIGAjMzg4MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8zODgzPmBfOiBGaXggYmFkIGNvbnNvbGUgb3V0cHV0IHdoZW4gdXNpbmcgYGBjb25zb2xl
X291dHB1dF9zdHlsZT1jbGFzc2ljYGAuCisKKworLSBgIzM4ODggPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzg4OD5gXzogRml4IG1hY09TIHNwZWNpZmljIGNv
ZGUgdXNpbmcgYGBjYXB0dXJlbWFuYWdlcmBgIHBsdWdpbiBpbiBkb2N0ZXN0cy4KKworCisKK0lt
cHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzM5MDIg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzkwMj5gXzogRml4
IHB5dGVzdC5vcmcgbGlua3MKKworCitweXRlc3QgMy43LjMgKDIwMTgtMDgtMjYpCis9PT09PT09
PT09PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMzMDMzIDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzMwMzM+YF86IEZpeHR1
cmVzIGR1cmluZyB0ZWFyZG93biBjYW4gYWdhaW4gdXNlIGBgY2Fwc3lzYGAgYW5kIGBgY2FwZmRg
YCB0byBpbnNwZWN0IG91dHB1dCBjYXB0dXJlZCBkdXJpbmcgdGVzdHMuCisKKworLSBgIzM3NzMg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzc3Mz5gXzogRml4
IGNvbGxlY3Rpb24gb2YgdGVzdHMgZnJvbSBgYF9faW5pdF9fLnB5YGAgZmlsZXMgaWYgdGhleSBt
YXRjaCB0aGUgYGBweXRob25fZmlsZXNgYCBjb25maWd1cmF0aW9uIG9wdGlvbi4KKworCistIGAj
Mzc5NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzk2PmBf
OiBGaXggaXNzdWUgd2hlcmUgdGVhcmRvd24gb2YgZml4dHVyZXMgb2YgY29uc2VjdXRpdmUgc3Vi
LXBhY2thZ2VzIHdlcmUgZXhlY3V0ZWQgb25jZSwgYXQgdGhlIGVuZCBvZiB0aGUgb3V0ZXIKKyAg
cGFja2FnZS4KKworCistIGAjMzgxNiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8zODE2PmBfOiBGaXggYnVnIHdoZXJlIGBgLS1zaG93LWNhcHR1cmU9bm9gYCBv
cHRpb24gd291bGQgc3RpbGwgc2hvdyBsb2dzIHByaW50ZWQgZHVyaW5nIGZpeHR1cmUgdGVhcmRv
d24uCisKKworLSBgIzM4MTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMzgxOT5gXzogRml4IGBgc3Rkb3V0L3N0ZGVycmBgIG5vdCBnZXR0aW5nIGNhcHR1cmVk
IHdoZW4gcmVhbC10aW1lIGNsaSBsb2dnaW5nIGlzIGFjdGl2ZS4KKworCistIGAjMzg0MyA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zODQzPmBfOiBGaXggY29s
bGVjdGlvbiBlcnJvciB3aGVuIHNwZWNpZnlpbmcgdGVzdCBmdW5jdGlvbnMgZGlyZWN0bHkgaW4g
dGhlIGNvbW1hbmQgbGluZSB1c2luZyBgYHRlc3QucHk6OnRlc3RgYCBzeW50YXggdG9nZXRoZXIg
d2l0aCBgYC0tZG9jdGVzdC1tb2R1bGVzYGAuCisKKworLSBgIzM4NDggPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzg0OD5gXzogRml4IGJ1Z3Mgd2hlcmUgdW5p
Y29kZSBhcmd1bWVudHMgY291bGQgbm90IGJlIHBhc3NlZCB0byBgYHRlc3RkaXIucnVucHl0ZXN0
YGAgb24gUHl0aG9uIDIuCisKKworLSBgIzM4NTQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMzg1ND5gXzogRml4IGRvdWJsZSBjb2xsZWN0aW9uIG9mIHRlc3Rz
IHdpdGhpbiBwYWNrYWdlcyB3aGVuIHRoZSBmaWxlbmFtZSBzdGFydHMgd2l0aCBhIGNhcGl0YWwg
bGV0dGVyLgorCisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCistIGAjMzgyNCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8zODI0PmBfOiBBZGRlZCBleGFtcGxlIGZvciBtdWx0aXBsZSBnbG9iIHBhdHRlcm4gbWF0
Y2hlcyBpbiBgYHB5dGhvbl9maWxlc2BgLgorCisKKy0gYCMzODMzIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM4MzM+YF86IEFkZGVkIG1pc3NpbmcgZG9jcyBm
b3IgYGBweXRlc3Rlci5UZXN0ZGlyYGAuCisKKworLSBgIzM4NzAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzg3MD5gXzogQ29ycmVjdCBkb2N1bWVudGF0aW9u
IGZvciBzZXR1cHRvb2xzIGludGVncmF0aW9uLgorCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFu
Z2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBgIzM4MjYgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzgyNj5gXzogUmVwbGFjZSBicm9rZW4gdHlw
ZSBhbm5vdGF0aW9ucyB3aXRoIHR5cGUgY29tbWVudHMuCisKKworLSBgIzM4NDUgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzg0NT5gXzogUmVtb3ZlIGEgcmVm
ZXJlbmNlIHRvIGlzc3VlIGAjNTY4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzU2OD5gXyBmcm9tIHRoZSBkb2N1bWVudGF0aW9uLCB3aGljaCBoYXMgc2luY2Ug
YmVlbgorICBmaXhlZC4KKworCitweXRlc3QgMy43LjIgKDIwMTgtMDgtMTYpCis9PT09PT09PT09
PT09PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMzNjcxIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM2NzE+YF86IEZpeCBgYGZp
bHRlcndhcm5pbmdzYGAgbm90IGJlaW5nIHJlZ2lzdGVyZWQgYXMgYSBidWlsdGluIG1hcmsuCisK
KworLSBgIzM3NjggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
Mzc2OD5gXywgYCMzNzg5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzM3ODk+YF86IEZpeCB0ZXN0IGNvbGxlY3Rpb24gZnJvbSBwYWNrYWdlcyBtaXhlZCB3aXRo
IG5vcm1hbCBkaXJlY3Rvcmllcy4KKworCistIGAjMzc3MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzcxPmBfOiBGaXggaW5maW5pdGUgcmVjdXJzaW9uIGR1
cmluZyBjb2xsZWN0aW9uIGlmIGEgYGBweXRlc3RfaWdub3JlX2NvbGxlY3RgYCBob29rIHJldHVy
bnMgYGBGYWxzZWBgIGluc3RlYWQgb2YgYGBOb25lYGAuCisKKworLSBgIzM3NzQgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzc3ND5gXzogRml4IGJ1ZyB3aGVy
ZSBkZWNvcmF0ZWQgZml4dHVyZXMgd291bGQgbG9zZSBmdW5jdGlvbmFsaXR5IChmb3IgZXhhbXBs
ZSBgYEBtb2NrLnBhdGNoYGApLgorCisKKy0gYCMzNzc1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3NzU+YF86IEZpeCBidWcgd2hlcmUgaW1wb3J0aW5nIG1v
ZHVsZXMgb3Igb3RoZXIgb2JqZWN0cyB3aXRoIHByZWZpeCBgYHB5dGVzdF9gYCBwcmVmaXggd291
bGQgcmFpc2UgYSBgYFBsdWdpblZhbGlkYXRpb25FcnJvcmBgLgorCisKKy0gYCMzNzg4IDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3ODg+YF86IEZpeCBgYEF0
dHJpYnV0ZUVycm9yYGAgZHVyaW5nIHRlYXJkb3duIG9mIGBgVGVzdENhc2VgYCBzdWJjbGFzc2Vz
IHdoaWNoIHJhaXNlIGFuIGV4Y2VwdGlvbiBkdXJpbmcgYGBfX2luaXRfX2BgLgorCisKKy0gYCMz
ODA0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM4MDQ+YF86
IEZpeCB0cmFjZWJhY2sgcmVwb3J0aW5nIGZvciBleGNlcHRpb25zIHdpdGggYGBfX2NhdXNlX19g
YCBjeWNsZXMuCisKKworCitJbXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy0gYCMzNzQ2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzM3NDY+YF86IEFkZCBkb2N1bWVudGF0aW9uIGZvciBgYG1ldGFmdW5jLmNvbmZpZ2Bg
IHRoYXQgaGFkIGJlZW4gbWlzdGFrZW5seSBoaWRkZW4uCisKKworcHl0ZXN0IDMuNy4xICgyMDE4
LTA4LTAyKQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0t
LQorCistIGAjMzQ3MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8zNDczPmBfOiBSYWlzZSBpbW1lZGlhdGVseSBpZiBgYGFwcHJveCgpYGAgaXMgZ2l2ZW4gYW4g
ZXhwZWN0ZWQgdmFsdWUgb2YgYSB0eXBlIGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCAoZS5nLiBzdHJp
bmdzLCBuZXN0ZWQgZGljdHMsIGV0Yy4pLgorCisKKy0gYCMzNzEyIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3MTI+YF86IENvcnJlY3RseSByZXByZXNlbnQg
dGhlIGRpbWVuc2lvbnMgb2YgYSBudW1weSBhcnJheSB3aGVuIGNhbGxpbmcgYGByZXByKClgYCBv
biBgYGFwcHJveCgpYGAuCisKKy0gYCMzNzQyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzM3NDI+YF86IEZpeCBpbmNvbXBhdGliaWxpdHkgd2l0aCB0aGlyZCBw
YXJ0eSBwbHVnaW5zIGR1cmluZyBjb2xsZWN0aW9uLCB3aGljaCBwcm9kdWNlZCB0aGUgZXJyb3Ig
YGBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnX2NvbGxlY3RmaWxlJ2BgLgorCistIGAjMzc0NSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzQ1PmBfOiBEaXNw
bGF5IHRoZSBhYnNvbHV0ZSBwYXRoIGlmIGBgY2FjaGVfZGlyYGAgaXMgbm90IHJlbGF0aXZlIHRv
IHRoZSBgYHJvb3RkaXJgYCBpbnN0ZWFkIG9mIGZhaWxpbmcuCisKKworLSBgIzM3NDcgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzc0Nz5gXzogRml4IGNvbXBh
dGliaWxpdHkgcHJvYmxlbSB3aXRoIHBsdWdpbnMgYW5kIHRoZSB3YXJuaW5nIGNvZGUgaXNzdWVk
IGJ5IGZpeHR1cmUgZnVuY3Rpb25zIHdoZW4gdGhleSBhcmUgY2FsbGVkIGRpcmVjdGx5LgorCisK
Ky0gYCMzNzQ4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3
NDg+YF86IEZpeCBpbmZpbml0ZSByZWN1cnNpb24gaW4gYGBweXRlc3QuYXBwcm94YGAgd2l0aCBh
cnJheXMgaW4gYGBudW1weTwxLjEzYGAuCisKKworLSBgIzM3NTcgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzc1Nz5gXzogUGluIHBhdGhsaWIyIHRvIGBgPj0y
LjIuMGBgIGFzIHdlIHJlcXVpcmUgYGBfX2ZzcGF0aF9fYGAgc3VwcG9ydC4KKworCistIGAjMzc2
MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNzYzPmBfOiBG
aXggYGBUeXBlRXJyb3JgYCB3aGVuIHRoZSBhc3NlcnRpb24gbWVzc2FnZSBpcyBgYGJ5dGVzYGAg
aW4gcHl0aG9uIDMuCisKKworcHl0ZXN0IDMuNy4wICgyMDE4LTA3LTMwKQorPT09PT09PT09PT09
PT09PT09PT09PT09PQorCitEZXByZWNhdGlvbnMgYW5kIFJlbW92YWxzCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKy0gYCMyNjM5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzI2Mzk+YF86IGBgcHl0ZXN0X25hbWVzcGFjZWBgIGhhcyBiZWVuIGBkZXBy
ZWNhdGVkIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0
bWwjcHl0ZXN0LW5hbWVzcGFjZT5gXy4KKworCistIGAjMzY2MSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNjYxPmBfOiBDYWxsaW5nIGEgZml4dHVyZSBmdW5j
dGlvbiBkaXJlY3RseSwgYXMgb3Bwb3NlZCB0byByZXF1ZXN0IHRoZW0gaW4gYSB0ZXN0IGZ1bmN0
aW9uLCBub3cgaXNzdWVzIGEgYGBSZW1vdmVkSW5QeXRlc3Q0V2FybmluZ2BgLiBTZWUgYHRoZSBk
b2N1bWVudGF0aW9uIGZvciByYXRpb25hbGUgYW5kIGV4YW1wbGVzIDxodHRwczovL2RvY3MucHl0
ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0bWwjY2FsbGluZy1maXh0dXJlcy1kaXJl
Y3RseT5gXy4KKworCisKK0ZlYXR1cmVzCistLS0tLS0tLQorCistIGAjMjI4MyA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMjgzPmBfOiBOZXcgYGBwYWNrYWdl
YGAgZml4dHVyZSBzY29wZTogZml4dHVyZXMgYXJlIGZpbmFsaXplZCB3aGVuIHRoZSBsYXN0IHRl
c3Qgb2YgYSAqcGFja2FnZSogZmluaXNoZXMuIFRoaXMgZmVhdHVyZSBpcyBjb25zaWRlcmVkICoq
ZXhwZXJpbWVudGFsKiosIHNvIHVzZSBpdCBzcGFyaW5nbHkuCisKKworLSBgIzM1NzYgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzU3Nj5gXzogYGBOb2RlLmFk
ZF9tYXJrZXJgYCBub3cgc3VwcG9ydHMgYW4gYGBhcHBlbmQ9VHJ1ZS9GYWxzZWBgIHBhcmFtZXRl
ciB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgbWFyayBjb21lcyBsYXN0IChkZWZhdWx0KSBvciBm
aXJzdC4KKworCistIGAjMzU3OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy8zNTc5PmBfOiBGaXh0dXJlIGBgY2FwbG9nYGAgbm93IGhhcyBhIGBgbWVzc2FnZXNg
YCBwcm9wZXJ0eSwgcHJvdmlkaW5nIGNvbnZlbmllbnQgYWNjZXNzIHRvIHRoZSBmb3JtYXQtaW50
ZXJwb2xhdGVkIGxvZyBtZXNzYWdlcyB3aXRob3V0IHRoZSBleHRyYSBkYXRhIHByb3ZpZGVkIGJ5
IHRoZSBmb3JtYXR0ZXIvaGFuZGxlci4KKworCistIGAjMzYxMCA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNjEwPmBfOiBOZXcgYGAtLXRyYWNlYGAgb3B0aW9u
IHRvIGVudGVyIHRoZSBkZWJ1Z2dlciBhdCB0aGUgc3RhcnQgb2YgYSB0ZXN0LgorCisKKy0gYCMz
NjIzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM2MjM+YF86
IEludHJvZHVjZSBgYHB5dGVzdGVyLmNvcHlfZXhhbXBsZWBgIGFzIGhlbHBlciB0byBkbyBhY2Nl
cHRhbmNlIHRlc3RzIGFnYWluc3QgZXhhbXBsZXMgZnJvbSB0aGUgcHJvamVjdC4KKworCisKK0J1
ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gYCMyMjIwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzIyMjA+YF86IEZpeCBhIGJ1ZyB3aGVyZSBmaXh0dXJlcyBvdmVy
cmlkZGVuIGJ5IGRpcmVjdCBwYXJhbWV0ZXJzIChmb3IgZXhhbXBsZSBwYXJhbWV0cml6YXRpb24p
IHdlcmUgYmVpbmcgaW5zdGFudGlhdGVkIGV2ZW4gaWYgdGhleSB3ZXJlIG5vdCBiZWluZyB1c2Vk
IGJ5IGEgdGVzdC4KKworCistIGAjMzY5NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8zNjk1PmBfOiBGaXggYGBBcHByb3hOdW1weWBgIGluaXRpYWxpc2F0aW9u
IGFyZ3VtZW50IG1peHVwLCBgYGFic2BgIGFuZCBgYHJlbGBgIHRvbGVyYW5jZXMgd2VyZSBmbGlw
cGVkIGNhdXNpbmcgc3RyYW5nZSBjb21wYXJpc29uIHJlc3VsdHMuCisgIEFkZCB0ZXN0cyB0byBj
aGVjayBgYGFic2BgIGFuZCBgYHJlbGBgIHRvbGVyYW5jZXMgZm9yIGBgbnAuYXJyYXlgYCBhbmQg
dGVzdCBmb3IgZXhwZWN0aW5nIGBgbmFuYGAgd2l0aCBgYG5wLmFycmF5KClgYAorCisKKy0gYCM5
ODAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvOTgwPmBfOiBG
aXggdHJ1bmNhdGVkIGxvY2FscyBvdXRwdXQgaW4gdmVyYm9zZSBtb2RlLgorCisKKworSW1wcm92
ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGAjMzI5NSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMjk1PmBfOiBDb3JyZWN0
IHRoZSB1c2FnZSBkb2N1bWVudGF0aW9uIG9mIGBgLS1sYXN0LWZhaWxlZC1uby1mYWlsdXJlc2Bg
IGJ5IGFkZGluZyB0aGUgbWlzc2luZyBgYC0tbGFzdC1mYWlsZWRgYCBhcmd1bWVudCBpbiB0aGUg
cHJlc2VudGVkIGV4YW1wbGVzLCBiZWNhdXNlIHRoZXkgYXJlIG1pc2xlYWRpbmcgYW5kIGxlYWQg
dG8gdGhpbmsgdGhhdCB0aGUgbWlzc2luZyBhcmd1bWVudCBpcyBub3QgbmVlZGVkLgorCisKKwor
VHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBg
IzM1MTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzUxOT5g
XzogTm93IGEgYGBSRUFETUUubWRgYCBmaWxlIGlzIGNyZWF0ZWQgaW4gYGAucHl0ZXN0X2NhY2hl
YGAgdG8gbWFrZSBpdCBjbGVhciB3aHkgdGhlIGRpcmVjdG9yeSBleGlzdHMuCisKKworcHl0ZXN0
IDMuNi40ICgyMDE4LTA3LTI4KQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4
ZXMKKy0tLS0tLS0tLQorCistIEludm9rZSBweXRlc3QgdXNpbmcgYGAtbXB5dGVzdGBgIHNvIGBg
c3lzLnBhdGhgYCBkb2VzIG5vdCBnZXQgcG9sbHV0ZWQgYnkgcGFja2FnZXMgaW5zdGFsbGVkIGlu
IGBgc2l0ZS1wYWNrYWdlc2BgLiAoYCM3NDIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNzQyPmBfKQorCisKK0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworLSBVc2UgYGBzbXRwX2Nvbm5lY3Rpb25gYCBpbnN0ZWFkIG9m
IGBgc210cGBgIGluIGZpeHR1cmVzIGRvY3VtZW50YXRpb24gdG8gYXZvaWQgcG9zc2libGUgY29u
ZnVzaW9uLiAoYCMzNTkyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzM1OTI+YF8pCisKKworVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworLSBSZW1vdmUgb2Jzb2xldGUgYGBfX2Z1dHVyZV9fYGAgaW1wb3J0cy4g
KGAjMjMxOSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMzE5
PmBfKQorCistIEFkZCBDSVRBVElPTiB0byBwcm92aWRlIGluZm9ybWF0aW9uIG9uIGhvdyB0byBm
b3JtYWxseSBjaXRlIHB5dGVzdC4gKGAjMzQwMiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8zNDAyPmBfKQorCistIFJlcGxhY2UgYnJva2VuIHR5cGUgYW5ub3Rh
dGlvbnMgd2l0aCB0eXBlIGNvbW1lbnRzLiAoYCMzNjM1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM2MzU+YF8pCisKKy0gUGluIGBgcGx1Z2d5YGAgdG8gYGA8
MC44YGAuIChgIzM3MjcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMzcyNz5gXykKKworCitweXRlc3QgMy42LjMgKDIwMTgtMDctMDQpCis9PT09PT09PT09PT09
PT09PT09PT09PT09CisKK0J1ZyBGaXhlcworLS0tLS0tLS0tCisKKy0gRml4IGBgSW1wb3J0V2Fy
bmluZ2BgIHRyaWdnZXJlZCBieSBleHBsaWNpdCByZWxhdGl2ZSBpbXBvcnRzIGluCisgIGFzc2Vy
dGlvbi1yZXdyaXR0ZW4gcGFja2FnZSBtb2R1bGVzLiAoYCMzMDYxCisgIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzMwNjE+YF8pCisKKy0gRml4IGVycm9yIGlu
IGBgcHl0ZXN0LmFwcHJveGBgIHdoZW4gZGVhbGluZyB3aXRoIDAtZGltZW5zaW9uIG51bXB5Cisg
IGFycmF5cy4gKGAjMzU5MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8zNTkzPmBfKQorCistIE5vIGxvbmdlciByYWlzZSBgYFZhbHVlRXJyb3JgYCB3aGVuIHVz
aW5nIHRoZSBgYGdldF9tYXJrZXJgYCBBUEkuIChgIzM2MDUKKyAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzYwNT5gXykKKworLSBGaXggcHJvYmxlbSB3aGVy
ZSBsb2cgbWVzc2FnZXMgd2l0aCBub24tYXNjaWkgY2hhcmFjdGVycyB3b3VsZCBub3QKKyAgYXBw
ZWFyIGluIHRoZSBvdXRwdXQgbG9nIGZpbGUuCisgIChgIzM2MzAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzYzMD5gXykKKworLSBObyBsb25nZXIgcmFpc2Ug
YGBBdHRyaWJ1dGVFcnJvcmBgIHdoZW4gbGVnYWN5IG1hcmtzIGNhbid0IGJlIHN0b3JlZCBpbgor
ICBmdW5jdGlvbnMuIChgIzM2MzEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMzYzMT5gXykKKworCitJbXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKy0gVGhlIGRlc2NyaXB0aW9uIGFib3ZlIHRoZSBleGFtcGxlIGZvciBg
YEBweXRlc3QubWFyay5za2lwaWZgYCBub3cgYmV0dGVyCisgIG1hdGNoZXMgdGhlIGNvZGUuIChg
IzM2MTEKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzYx
MT5gXykKKworCitUcml2aWFsL0ludGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCistIEludGVybmFsIHJlZmFjdG9yaW5nOiByZW1vdmVkIHVudXNlZCBgYENhbGxTcGVj
MnRveCAuX2dsb2JhbGlkX2FyZ3NgYAorICBhdHRyaWJ1dGUgYW5kIGBgbWV0YWZ1bmNgYCBwYXJh
bWV0ZXIgZnJvbSBgYENhbGxTcGVjMi5jb3B5KClgYC4gKGAjMzU5OAorICA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNTk4PmBfKQorCistIFNpbGVuY2UgdXNh
Z2Ugb2YgYGByZWR1Y2VgYCB3YXJuaW5nIGluIFB5dGhvbiAyIChgIzM2MDkKKyAgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzYwOT5gXykKKworLSBGaXggdXNh
Z2Ugb2YgYGBhdHRyLmliYGAgZGVwcmVjYXRlZCBgYGNvbnZlcnRgYCBwYXJhbWV0ZXIuIChgIzM2
NTMKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzY1Mz5g
XykKKworCitweXRlc3QgMy42LjIgKDIwMTgtMDYtMjApCiA9PT09PT09PT09PT09PT09PT09PT09
PT09CiAKIEJ1ZyBGaXhlcwpAQCAtMjYsNyArMjAxNSw3IEBAIEJ1ZyBGaXhlcwogICByYWlzZXMg
YW4gZXhjZXB0aW9uLiAoYCMzNTY5CiAgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzM1Njk+YF8pCiAKLS0gRml4IGVuY29kaW5nIGVycm9yIHdpdGggYHByaW50
YCBzdGF0ZW1lbnRzIGluIGRvY3Rlc3RzIChgIzM1ODMKKy0gRml4IGVuY29kaW5nIGVycm9yIHdp
dGggYGBwcmludGBgIHN0YXRlbWVudHMgaW4gZG9jdGVzdHMgKGAjMzU4MwogICA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zNTgzPmBfKQogCiAKQEAgLTU0LDcg
KzIwNDMsNyBAQCBUcml2aWFsL0ludGVybmFsIENoYW5nZXMKICAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzU2Nz5gXykKIAogCi1QeXRlc3QgMy42LjEgKDIw
MTgtMDYtMDUpCitweXRlc3QgMy42LjEgKDIwMTgtMDYtMDUpCiA9PT09PT09PT09PT09PT09PT09
PT09PT09CiAKIEJ1ZyBGaXhlcwpAQCAtOTgsNyArMjA4Nyw3IEBAIFRyaXZpYWwvSW50ZXJuYWwg
Q2hhbmdlcwogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8z
NTI5PmBfKQogCiAKLVB5dGVzdCAzLjYuMCAoMjAxOC0wNS0yMykKK3B5dGVzdCAzLjYuMCAoMjAx
OC0wNS0yMykKID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogRmVhdHVyZXMKQEAgLTEwNyw3
ICsyMDk2LDcgQEAgRmVhdHVyZXMKIC0gUmV2YW1wIHRoZSBpbnRlcm5hbHMgb2YgdGhlIGBgcHl0
ZXN0Lm1hcmtgYCBpbXBsZW1lbnRhdGlvbiB3aXRoIGNvcnJlY3QgcGVyCiAgIG5vZGUgaGFuZGxp
bmcgd2hpY2ggZml4ZXMgYSBudW1iZXIgb2YgbG9uZyBzdGFuZGluZyBidWdzIGNhdXNlZCBieSB0
aGUgb2xkCiAgIGRlc2lnbi4gVGhpcyBpbnRyb2R1Y2VzIG5ldyBgYE5vZGUuaXRlcl9tYXJrZXJz
KG5hbWUpYGAgYW5kCi0gIGBgTm9kZS5nZXRfY2xvc2VzdF9tYXJrKG5hbWUpYGAgQVBJcy4gVXNl
cnMgYXJlICoqc3Ryb25nbHkgZW5jb3VyYWdlZCoqIHRvCisgIGBgTm9kZS5nZXRfY2xvc2VzdF9t
YXJrZXIobmFtZSlgYCBBUElzLiBVc2VycyBhcmUgKipzdHJvbmdseSBlbmNvdXJhZ2VkKiogdG8K
ICAgcmVhZCB0aGUgYHJlYXNvbnMgZm9yIHRoZSByZXZhbXAgaW4gdGhlIGRvY3MKICAgPGh0dHBz
Oi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9tYXJrLmh0bWwjbWFya2VyLXJldmFtcC1hbmQt
aXRlcmF0aW9uPmBfLAogICBvciBqdW1wIG92ZXIgdG8gZGV0YWlscyBhYm91dCBgdXBkYXRpbmcg
ZXhpc3RpbmcgY29kZSB0byB1c2UgdGhlIG5ldyBBUElzCkBAIC0xMzMsNyArMjEyMiw3IEBAIEZl
YXR1cmVzCiAgIGV4aXRzIHRoZSBkZWJ1Z2dlci4gT24gcHl0aG9uIDMuMiBhbmQgaGlnaGVyLCB1
c2UgQ1RSTCtELiAoYCMzMjk5CiAgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzMyOTk+YF8pCiAKLS0gcHl0ZXN0IG5vdCBsb25nZXIgY2hhbmdlcyB0aGUgbG9n
IGxldmVsIG9mIHRoZSByb290IGxvZ2dlciB3aGVuIHRoZQorLSBweXRlc3Qgbm8gbG9uZ2VyIGNo
YW5nZXMgdGhlIGxvZyBsZXZlbCBvZiB0aGUgcm9vdCBsb2dnZXIgd2hlbiB0aGUKICAgYGBsb2ct
bGV2ZWxgYCBwYXJhbWV0ZXIgaGFzIGdyZWF0ZXIgbnVtZXJpYyB2YWx1ZSB0aGFuIHRoYXQgb2Yg
dGhlIGxldmVsIG9mCiAgIHRoZSByb290IGxvZ2dlciwgd2hpY2ggbWFrZXMgaXQgcGxheSBiZXR0
ZXIgd2l0aCBjdXN0b20gbG9nZ2luZyBjb25maWd1cmF0aW9uCiAgIGluIHVzZXIgY29kZS4gKGAj
MzMwNyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMzA3PmBf
KQpAQCAtMTg0LDcgKzIxNzMsNyBAQCBUcml2aWFsL0ludGVybmFsIENoYW5nZXMKICAgMy43IG9y
IG5ld2VyLiAoYCMzNDk3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzM0OTc+YF8pCiAKIAotUHl0ZXN0IDMuNS4xICgyMDE4LTA0LTIzKQorcHl0ZXN0IDMuNS4x
ICgyMDE4LTA0LTIzKQogPT09PT09PT09PT09PT09PT09PT09PT09PQogCiAKQEAgLTIzNiw3ICsy
MjI1LDcgQEAgVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCiAgIDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzMzOTg+YF8pCiAKIAotUHl0ZXN0IDMuNS4wICgyMDE4
LTAzLTIxKQorcHl0ZXN0IDMuNS4wICgyMDE4LTAzLTIxKQogPT09PT09PT09PT09PT09PT09PT09
PT09PQogCiBEZXByZWNhdGlvbnMgYW5kIFJlbW92YWxzCkBAIC0yNDcsNyArMjIzNiw3IEBAIERl
cHJlY2F0aW9ucyBhbmQgUmVtb3ZhbHMKICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvMjc3MD5gXykKIAogLSBEZWZpbmluZyBgYHB5dGVzdF9wbHVnaW5zYGAg
aXMgbm93IGRlcHJlY2F0ZWQgaW4gbm9uLXRvcC1sZXZlbCBjb25mdGVzdC5weQotICBmaWxlcywg
YmVjYXVzZSB0aGV5ICJsZWFrIiB0byB0aGUgZW50aXJlIGRpcmVjdG9yeSB0cmVlLiAoYCMzMDg0
CisgIGZpbGVzLCBiZWNhdXNlIHRoZXkgImxlYWsiIHRvIHRoZSBlbnRpcmUgZGlyZWN0b3J5IHRy
ZWUuIGBTZWUgdGhlIGRvY3MgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9kZXBy
ZWNhdGlvbnMuaHRtbCNweXRlc3QtcGx1Z2lucy1pbi1ub24tdG9wLWxldmVsLWNvbmZ0ZXN0LWZp
bGVzPmBfIGZvciB0aGUgcmF0aW9uYWxlIGJlaGluZCB0aGlzIGRlY2lzaW9uIChgIzMwODQKICAg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzA4ND5gXykKIAog
CkBAIC0yOTksNyArMjI4OCw3IEBAIEZlYXR1cmVzCiAgIGBgcHl0ZXN0X3J1bnRlc3RfbG9nZmlu
aXNoYGAgaG9va3Mgd2hlbiBsaXZlIGxvZ3MgYXJlIGVuYWJsZWQuIChgIzMxODkKICAgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzE4OT5gXykKIAotLSBQYXNz
aW5nIGAtLWxvZy1jbGktbGV2ZWxgIGluIHRoZSBjb21tYW5kLWxpbmUgbm93IGF1dG9tYXRpY2Fs
bHkgYWN0aXZhdGVzCistIFBhc3NpbmcgYGAtLWxvZy1jbGktbGV2ZWxgYCBpbiB0aGUgY29tbWFu
ZC1saW5lIG5vdyBhdXRvbWF0aWNhbGx5IGFjdGl2YXRlcwogICBsaXZlIGxvZ2dpbmcuIChgIzMx
OTAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzE5MD5gXykK
IAogLSBBZGQgY29tbWFuZCBsaW5lIG9wdGlvbiBgYC0tZGVzZWxlY3RgYCB0byBhbGxvdyBkZXNl
bGVjdGlvbiBvZiBpbmRpdmlkdWFsCkBAIC0zODgsNyArMjM3Nyw3IEBAIFRyaXZpYWwvSW50ZXJu
YWwgQ2hhbmdlcwogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8zMzA4PmBfKQogCiAKLVB5dGVzdCAzLjQuMiAoMjAxOC0wMy0wNCkKK3B5dGVzdCAzLjQuMiAo
MjAxOC0wMy0wNCkKID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogQnVnIEZpeGVzCkBAIC00
MjUsNyArMjQxNCw3IEBAIFRyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcwogICA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMjU5PmBfKQogCiAKLVB5dGVzdCAzLjQu
MSAoMjAxOC0wMi0yMCkKK3B5dGVzdCAzLjQuMSAoMjAxOC0wMi0yMCkKID09PT09PT09PT09PT09
PT09PT09PT09PT0KIAogQnVnIEZpeGVzCkBAIC00ODYsNyArMjQ3NSw3IEBAIFRyaXZpYWwvSW50
ZXJuYWwgQ2hhbmdlcwogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy85ODU+YF8pCiAKIAotUHl0ZXN0IDMuNC4wICgyMDE4LTAxLTMwKQorcHl0ZXN0IDMuNC4w
ICgyMDE4LTAxLTMwKQogPT09PT09PT09PT09PT09PT09PT09PT09PQogCiBEZXByZWNhdGlvbnMg
YW5kIFJlbW92YWxzCkBAIC02MTgsNyArMjYwNyw3IEBAIFRyaXZpYWwvSW50ZXJuYWwgQ2hhbmdl
cwogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMTI5PmBf
KQogCiAKLVB5dGVzdCAzLjMuMiAoMjAxNy0xMi0yNSkKK3B5dGVzdCAzLjMuMiAoMjAxNy0xMi0y
NSkKID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogQnVnIEZpeGVzCkBAIC02NTEsMTEgKzI2
NDAsMTEgQEAgVHJpdmlhbC9JbnRlcm5hbCBDaGFuZ2VzCiAtIENvZGUgY2xlYW51cC4gKGAjMzAx
NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMDE1PmBfLAog
ICBgIzMwMjEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzAy
MT5gXykKIAotLSBDbGVhbiB1cCBjb2RlIGJ5IHJlcGxhY2luZyBpbXBvcnRzIGFuZCByZWZlcmVu
Y2VzIG9mIGBfYXN0YCB0byBgYXN0YC4gKGAjMzAxOAotICA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8zMDE4PmBfKQorLSBDbGVhbiB1cCBjb2RlIGJ5IHJlcGxh
Y2luZyBpbXBvcnRzIGFuZCByZWZlcmVuY2VzIG9mIGBgX2FzdGBgIHRvIGBgYXN0YGAuCisgIChg
IzMwMTggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzAxOD5g
XykKIAogCi1QeXRlc3QgMy4zLjEgKDIwMTctMTItMDUpCitweXRlc3QgMy4zLjEgKDIwMTctMTIt
MDUpCiA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEJ1ZyBGaXhlcwpAQCAtNjk3LDEzICsy
Njg2LDEzIEBAIFRyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcwogICA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yOTQ5PmBfKQogCiAKLVB5dGVzdCAzLjMuMCAoMjAx
Ny0xMS0yMykKK3B5dGVzdCAzLjMuMCAoMjAxNy0xMS0yMykKID09PT09PT09PT09PT09PT09PT09
PT09PT0KIAogRGVwcmVjYXRpb25zIGFuZCBSZW1vdmFscwogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi0tIFB5dGVzdCBubyBsb25nZXIgc3VwcG9ydHMgUHl0aG9uICoqMi42KiogYW5kICoq
My4zKiouIFRob3NlIFB5dGhvbiB2ZXJzaW9ucworLSBweXRlc3Qgbm8gbG9uZ2VyIHN1cHBvcnRz
IFB5dGhvbiAqKjIuNioqIGFuZCAqKjMuMyoqLiBUaG9zZSBQeXRob24gdmVyc2lvbnMKICAgYXJl
IEVPTCBmb3Igc29tZSB0aW1lIG5vdyBhbmQgaW5jdXIgbWFpbnRlbmFuY2UgYW5kIGNvbXBhdGli
aWxpdHkgY29zdHMgb24KICAgdGhlIHB5dGVzdCBjb3JlIHRlYW0sIGFuZCBmb2xsb3dpbmcgdXAg
d2l0aCB0aGUgcmVzdCBvZiB0aGUgY29tbXVuaXR5IHdlCiAgIGRlY2lkZWQgdGhhdCB0aGV5IHdp
bGwgbm8gbG9uZ2VyIGJlIHN1cHBvcnRlZCBzdGFydGluZyBvbiB0aGlzIHZlcnNpb24uIFVzZXJz
CkBAIC03NTcsNyArMjc0Niw3IEBAIEZlYXR1cmVzCiAtIE1hdGNoIGBgd2FybnNgYCBzaWduYXR1
cmUgdG8gYGByYWlzZXNgYCBieSBhZGRpbmcgYGBtYXRjaGBgIGtleXdvcmQuIChgIzI3MDgKICAg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjcwOD5gXykKIAot
LSBQeXRlc3Qgbm93IGNhcHR1cmVzIGFuZCBkaXNwbGF5cyBvdXRwdXQgZnJvbSB0aGUgc3RhbmRh
cmQgYGBsb2dnaW5nYGAgbW9kdWxlLgorLSBweXRlc3Qgbm93IGNhcHR1cmVzIGFuZCBkaXNwbGF5
cyBvdXRwdXQgZnJvbSB0aGUgc3RhbmRhcmQgYGBsb2dnaW5nYGAgbW9kdWxlLgogICBUaGUgdXNl
ciBjYW4gY29udHJvbCB0aGUgbG9nZ2luZyBsZXZlbCB0byBiZSBjYXB0dXJlZCBieSBzcGVjaWZ5
aW5nIG9wdGlvbnMKICAgaW4gYGBweXRlc3QuaW5pYGAsIHRoZSBjb21tYW5kIGxpbmUgYW5kIGFs
c28gZHVyaW5nIGluZGl2aWR1YWwgdGVzdHMgdXNpbmcKICAgbWFya2Vycy4gQWxzbywgYSBgYGNh
cGxvZ2BgIGZpeHR1cmUgaXMgYXZhaWxhYmxlIHRoYXQgZW5hYmxlcyB1c2VycyB0byB0ZXN0CkBA
IC04MjIsNyArMjgxMSw3IEBAIEJ1ZyBGaXhlcwogICBhdm9pZHMgYSBudW1iZXIgb2YgcG90ZW50
aWFsIHByb2JsZW1zLiAoYCMyNzUxCiAgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzI3NTE+YF8pCiAKLS0gUHl0ZXN0IG5vIGxvbmdlciBjb21wbGFpbnMgYWJv
dXQgd2FybmluZ3Mgd2l0aCB1bmljb2RlIG1lc3NhZ2VzIGJlaW5nCistIHB5dGVzdCBubyBsb25n
ZXIgY29tcGxhaW5zIGFib3V0IHdhcm5pbmdzIHdpdGggdW5pY29kZSBtZXNzYWdlcyBiZWluZwog
ICBub24tYXNjaWkgY29tcGF0aWJsZSBldmVuIGZvciBhc2NpaS1jb21wYXRpYmxlIG1lc3NhZ2Vz
LiBBcyBhIHJlc3VsdCBvZiB0aGlzLAogICB3YXJuaW5ncyB3aXRoIHVuaWNvZGUgbWVzc2FnZXMg
YXJlIGNvbnZlcnRlZCBmaXJzdCB0byBhbiBhc2NpaSByZXByZXNlbnRhdGlvbgogICBmb3Igc2Fm
ZXR5LiAoYCMyODA5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzI4MDk+YF8pCkBAIC04NDIsNyArMjgzMSw3IEBAIEJ1ZyBGaXhlcwogVHJpdmlhbC9JbnRlcm5h
bCBDaGFuZ2VzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLSBweXRlc3Qgbm93IGRlcGVu
ZHMgb24gYGF0dHJzIDxodHRwczovL3B5cGkub3JnL3Byb2plY3QvYXR0cnMvPmBfIGZvciBpbnRl
cm5hbAorLSBweXRlc3Qgbm93IGRlcGVuZHMgb24gYGF0dHJzIDxodHRwczovL3B5cGkub3JnL3By
b2plY3QvYXR0cnMvPmBfXyBmb3IgaW50ZXJuYWwKICAgc3RydWN0dXJlcyB0byBlYXNlIGNvZGUg
bWFpbnRhaW5hYmlsaXR5LiAoYCMyNjQxCiAgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzI2NDE+YF8pCiAKQEAgLTg3NCw3ICsyODYzLDcgQEAgVHJpdmlhbC9J
bnRlcm5hbCBDaGFuZ2VzCiAgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzI5MjI+YF8pCiAKIAotUHl0ZXN0IDMuMi41ICgyMDE3LTExLTE1KQorcHl0ZXN0IDMu
Mi41ICgyMDE3LTExLTE1KQogPT09PT09PT09PT09PT09PT09PT09PT09PQogCiBCdWcgRml4ZXMK
QEAgLTg4NSw3ICsyODc0LDcgQEAgQnVnIEZpeGVzCiAgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI5MjY+YF8pCiAKIAotUHl0ZXN0IDMuMi40ICgyMDE3LTEx
LTEzKQorcHl0ZXN0IDMuMi40ICgyMDE3LTExLTEzKQogPT09PT09PT09PT09PT09PT09PT09PT09
PQogCiBCdWcgRml4ZXMKQEAgLTkzNCw3ICsyOTIzLDcgQEAgSW1wcm92ZWQgRG9jdW1lbnRhdGlv
bgogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy85MTE+YF8p
CiAKIAotUHl0ZXN0IDMuMi4zICgyMDE3LTEwLTAzKQorcHl0ZXN0IDMuMi4zICgyMDE3LTEwLTAz
KQogPT09PT09PT09PT09PT09PT09PT09PT09PQogCiBCdWcgRml4ZXMKQEAgLTk3NCwxMyArMjk2
MywxMyBAQCBUcml2aWFsL0ludGVybmFsIENoYW5nZXMKICAgKGAjMjc2NSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNzY1PmBfKQogCiAKLVB5dGVzdCAzLjIu
MiAoMjAxNy0wOS0wNikKK3B5dGVzdCAzLjIuMiAoMjAxNy0wOS0wNikKID09PT09PT09PT09PT09
PT09PT09PT09PT0KIAogQnVnIEZpeGVzCiAtLS0tLS0tLS0KIAotLSBDYWxsaW5nIHRoZSBkZXBy
ZWNhdGVkIGByZXF1ZXN0LmdldGZ1bmNhcmd2YWx1ZSgpYCBub3cgc2hvd3MgdGhlIHNvdXJjZSBv
ZgorLSBDYWxsaW5nIHRoZSBkZXByZWNhdGVkIGBgcmVxdWVzdC5nZXRmdW5jYXJndmFsdWUoKWBg
IG5vdyBzaG93cyB0aGUgc291cmNlIG9mCiAgIHRoZSBjYWxsLiAoYCMyNjgxIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2ODE+YF8pCiAKIC0gQWxsb3cgdGVz
dHMgZGVjbGFyZWQgYXMgYGBAc3RhdGljbWV0aG9kYGAgdG8gdXNlIGZpeHR1cmVzLiAoYCMyNjk5
CkBAIC0xMDAyLDEwICsyOTkxLDEwIEBAIEltcHJvdmVkIERvY3VtZW50YXRpb24KICAgYGBweXRl
c3QubWFyay5NQVJLRVJfTkFNRS5fX2NhbGxfX2BgIChgIzI2MDQKICAgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjYwND5gXykKIAotLSBJbiBvbmUgb2YgdGhl
IHNpbXBsZSBleGFtcGxlcywgdXNlIGBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcygpYCB0
byBza2lwCistIEluIG9uZSBvZiB0aGUgc2ltcGxlIGV4YW1wbGVzLCB1c2UgYGBweXRlc3RfY29s
bGVjdGlvbl9tb2RpZnlpdGVtcygpYGAgdG8gc2tpcAogICB0ZXN0cyBiYXNlZCBvbiBhIGNvbW1h
bmQtbGluZSBvcHRpb24sIGFsbG93aW5nIGl0cyBzaGFyaW5nIHdoaWxlIHByZXZlbnRpbmcgYQot
ICB1c2VyIGVycm9yIHdoZW4gYWNlc3NpbmcgYHB5dGVzdC5jb25maWdgIGJlZm9yZSB0aGUgYXJn
dW1lbnQgcGFyc2luZy4gKGAjMjY1MwotICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8yNjUzPmBfKQorICB1c2VyIGVycm9yIHdoZW4gYWNlc3NpbmcgYGBweXRl
c3QuY29uZmlnYGAgYmVmb3JlIHRoZSBhcmd1bWVudCBwYXJzaW5nLgorICAoYCMyNjUzIDxodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2NTM+YF8pCiAKIAogVHJp
dmlhbC9JbnRlcm5hbCBDaGFuZ2VzCkBAIC0xMDIxLDcgKzMwMTAsNyBAQCBUcml2aWFsL0ludGVy
bmFsIENoYW5nZXMKICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMjczOT5gXykKIAogCi1QeXRlc3QgMy4yLjEgKDIwMTctMDgtMDgpCitweXRlc3QgMy4yLjEg
KDIwMTctMDgtMDgpCiA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEJ1ZyBGaXhlcwpAQCAt
MTA1MSw3ICszMDQwLDcgQEAgSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgogICA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjI2PmBfKQogCiAKLVB5dGVzdCAzLjIu
MCAoMjAxNy0wNy0zMCkKK3B5dGVzdCAzLjIuMCAoMjAxNy0wNy0zMCkKID09PT09PT09PT09PT09
PT09PT09PT09PT0KIAogRGVwcmVjYXRpb25zIGFuZCBSZW1vdmFscwpAQCAtMTA4Myw3ICszMDcy
LDcgQEAgRmVhdHVyZXMKICAgZnJvbSBwYXJlbnQgY2xhc3NlcyBvciBtb2R1bGVzLiAoYCMyNTE2
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LQogICBkZXYvcHl0ZXN0L2lzc3Vlcy8yNTE2PmBf
KQogCi0tIENvbGxlY3Rpb24gaWdub3JlcyBsb2NhbCB2aXJ0dWFsZW52cyBieSBkZWZhdWx0OyBg
LS1jb2xsZWN0LWluLXZpcnR1YWxlbnZgCistIENvbGxlY3Rpb24gaWdub3JlcyBsb2NhbCB2aXJ0
dWFsZW52cyBieSBkZWZhdWx0OyBgYC0tY29sbGVjdC1pbi12aXJ0dWFsZW52YGAKICAgb3ZlcnJp
ZGVzIHRoaXMgYmVoYXZpb3IuIChgIzI1MTggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtCiAg
IGRldi9weXRlc3QvaXNzdWVzLzI1MTg+YF8pCiAKQEAgLTEyMTcsNyArMzIwNiw3IEBAIFRyaXZp
YWwvSW50ZXJuYWwgQ2hhbmdlcwogICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8yNjIwPmBfKQogCiAKLVB5dGVzdCAzLjEuMyAoMjAxNy0wNy0wMykKK3B5dGVz
dCAzLjEuMyAoMjAxNy0wNy0wMykKID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogQnVnIEZp
eGVzCkBAIC0xMjYzLDcgKzMyNTIsNyBAQCBUcml2aWFsL0ludGVybmFsIENoYW5nZXMKICAgKGAj
MjQ5OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNDk5PmBf
KQogCiAKLVB5dGVzdCAzLjEuMiAoMjAxNy0wNi0wOCkKK3B5dGVzdCAzLjEuMiAoMjAxNy0wNi0w
OCkKID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogQnVnIEZpeGVzCkBAIC0xMjk1LDcgKzMy
ODQsNyBAQCBJbXByb3ZlZCBEb2N1bWVudGF0aW9uCiAgIGFuZCBpbXByb3ZlIG92ZXJhbGwgZmxv
dyBvZiB0aGUgYGBza2lwcGluZ2BgIGRvY3MuICgjODEwKQogCiAKLVB5dGVzdCAzLjEuMSAoMjAx
Ny0wNS0zMCkKK3B5dGVzdCAzLjEuMSAoMjAxNy0wNS0zMCkKID09PT09PT09PT09PT09PT09PT09
PT09PT0KIAogQnVnIEZpeGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DSVRBVElPTiBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L0NJVEFUSU9OCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZTlkOGVjN2ExMzc1MzQ5MjU4ZjljZjUz
NTA4YmIwZTQ0MWUyNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DSVRBVElPTgpA
QCAtMCwwICsxLDE2IEBACitOT1RFOiBDaGFuZ2UgIngueSIgYnkgdGhlIHZlcnNpb24geW91IHVz
ZS4gSWYgeW91IGFyZSB1bnN1cmUgYWJvdXQgd2hpY2ggdmVyc2lvbgoreW91IGFyZSB1c2luZyBy
dW46IGBwaXAgc2hvdyBweXRlc3RgLgorCitUZXh0OgorCitbcHl0ZXN0XSBweXRlc3QgeC55LCAy
MDA0CitLcmVrZWwgZXQgYWwuLCBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QK
KworQmliVGVYOgorCitAbWlzY3tweXRlc3R4LnksCisgIHRpdGxlID0gICAgICAgIHtweXRlc3Qg
eC55fSwKKyAgYXV0aG9yID0ge0tyZWtlbCwgSG9sZ2VyIGFuZCBPbGl2ZWlyYSwgQnJ1bm8gYW5k
IFBmYW5uc2NobWlkdCwgUm9ubnkgYW5kIEJydXlub29naGUsIEZsb3JpcyBhbmQgTGF1Z2hlciwg
QnJpYW5uYSBhbmQgQnJ1aGluLCBGbG9yaWFufSwKKyAgeWVhciA9ICAgICAgICAgezIwMDR9LAor
ICB1cmwgPSB7aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0fSwKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L0NPTlRSSUJVVElORy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DT05UUklC
VVRJTkcucnN0CmluZGV4IGMwMDVjMmZiMjU0NTA1MmRmMjlhMWYwOTZkYzMwYTU3ZDI3NjkzM2Iu
LjU3NjI4YTM0YmRmNzBkNDVhNzAwNmRjNjdiNWI4Y2M3ZWY2Y2UzZjYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L0NPTlRSSUJVVElORy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQ09OVFJJQlVUSU5H
LnJzdApAQCAtMTY2LDEwICsxNjYsMTAgQEAgU2hvcnQgdmVyc2lvbgogIy4gRW5hYmxlIGFuZCBp
bnN0YWxsIGBwcmUtY29tbWl0IDxodHRwczovL3ByZS1jb21taXQuY29tPmBfIHRvIGVuc3VyZSBz
dHlsZS1ndWlkZXMgYW5kIGNvZGUgY2hlY2tzIGFyZSBmb2xsb3dlZC4KICMuIFRhcmdldCBgYG1h
c3RlcmBgIGZvciBidWdmaXhlcyBhbmQgZG9jIGNoYW5nZXMuCiAjLiBUYXJnZXQgYGBmZWF0dXJl
c2BgIGZvciBuZXcgZmVhdHVyZXMgb3IgZnVuY3Rpb25hbGl0eSBjaGFuZ2VzLgotIy4gRm9sbG93
ICoqUEVQLTgqKiBmb3IgbmFtaW5nIGFuZCBgYmxhY2sgPGh0dHBzOi8vZ2l0aHViLmNvbS9hbWJ2
L2JsYWNrPmBfIGZvciBmb3JtYXR0aW5nLgorIy4gRm9sbG93ICoqUEVQLTgqKiBmb3IgbmFtaW5n
IGFuZCBgYmxhY2sgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vYmxhY2s+YF8gZm9yIGZvcm1h
dHRpbmcuCiAjLiBUZXN0cyBhcmUgcnVuIHVzaW5nIGBgdG94YGA6OgogCi0gICAgdG94IC1lIGxp
bnRpbmcscHkyNyxweTM2CisgICAgdG94IC1lIGxpbnRpbmcscHkyNyxweTM3CiAKICAgIFRoZSB0
ZXN0IGVudmlyb25tZW50cyBhYm92ZSBhcmUgdXN1YWxseSBlbm91Z2ggdG8gY292ZXIgbW9zdCBj
YXNlcyBsb2NhbGx5LgogCkBAIC0yMzcsMTIgKzIzNywxMiBAQCBIZXJlIGlzIGEgc2ltcGxlIG92
ZXJ2aWV3LCB3aXRoIHB5dGVzdC1zcGVjaWZpYyBiaXRzOgogCiAjLiBSdW4gYWxsIHRoZSB0ZXN0
cwogCi0gICBZb3UgbmVlZCB0byBoYXZlIFB5dGhvbiAyLjcgYW5kIDMuNiBhdmFpbGFibGUgaW4g
eW91ciBzeXN0ZW0uICBOb3cKKyAgIFlvdSBuZWVkIHRvIGhhdmUgUHl0aG9uIDIuNyBhbmQgMy43
IGF2YWlsYWJsZSBpbiB5b3VyIHN5c3RlbS4gIE5vdwogICAgcnVubmluZyB0ZXN0cyBpcyBhcyBz
aW1wbGUgYXMgaXNzdWluZyB0aGlzIGNvbW1hbmQ6OgogCi0gICAgJCB0b3ggLWUgbGludGluZyxw
eTI3LHB5MzYKKyAgICAkIHRveCAtZSBsaW50aW5nLHB5MjcscHkzNwogCi0gICBUaGlzIGNvbW1h
bmQgd2lsbCBydW4gdGVzdHMgdmlhIHRoZSAidG94IiB0b29sIGFnYWluc3QgUHl0aG9uIDIuNyBh
bmQgMy42CisgICBUaGlzIGNvbW1hbmQgd2lsbCBydW4gdGVzdHMgdmlhIHRoZSAidG94IiB0b29s
IGFnYWluc3QgUHl0aG9uIDIuNyBhbmQgMy43CiAgICBhbmQgYWxzbyBwZXJmb3JtICJsaW50IiBj
b2Rpbmctc3R5bGUgY2hlY2tzLgogCiAjLiBZb3UgY2FuIG5vdyBlZGl0IHlvdXIgbG9jYWwgd29y
a2luZyBjb3B5IGFuZCBydW4gdGhlIHRlc3RzIGFnYWluIGFzIG5lY2Vzc2FyeS4gUGxlYXNlIGZv
bGxvdyBQRVAtOCBmb3IgbmFtaW5nLgpAQCAtMjUyLDkgKzI1Miw5IEBAIEhlcmUgaXMgYSBzaW1w
bGUgb3ZlcnZpZXcsIHdpdGggcHl0ZXN0LXNwZWNpZmljIGJpdHM6CiAKICAgICAkIHRveCAtZSBw
eTI3IC0tIC0tcGRiCiAKLSAgIE9yIHRvIG9ubHkgcnVuIHRlc3RzIGluIGEgcGFydGljdWxhciB0
ZXN0IG1vZHVsZSBvbiBQeXRob24gMy42OjoKKyAgIE9yIHRvIG9ubHkgcnVuIHRlc3RzIGluIGEg
cGFydGljdWxhciB0ZXN0IG1vZHVsZSBvbiBQeXRob24gMy43OjoKIAotICAgICQgdG94IC1lIHB5
MzYgLS0gdGVzdGluZy90ZXN0X2NvbmZpZy5weQorICAgICQgdG94IC1lIHB5MzcgLS0gdGVzdGlu
Zy90ZXN0X2NvbmZpZy5weQogCiAKICAgIFdoZW4gY29tbWl0dGluZywgYGBwcmUtY29tbWl0YGAg
d2lsbCByZS1mb3JtYXQgdGhlIGZpbGVzIGlmIG5lY2Vzc2FyeS4KQEAgLTI4MCw2ICsyODAsNDcg
QEAgSGVyZSBpcyBhIHNpbXBsZSBvdmVydmlldywgd2l0aCBweXRlc3Qtc3BlY2lmaWMgYml0czoK
ICAgICBiYXNlOiBmZWF0dXJlcyAgICAgICAgIyBpZiBpdCdzIGEgZmVhdHVyZQogCiAKK1dyaXRp
bmcgVGVzdHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV3JpdGluZyB0ZXN0cyBm
b3IgcGx1Z2lucyBvciBmb3IgcHl0ZXN0IGl0c2VsZiBpcyBvZnRlbiBkb25lIHVzaW5nIHRoZSBg
dGVzdGRpciBmaXh0dXJlIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvcmVmZXJl
bmNlLmh0bWwjdGVzdGRpcj5gXywgYXMgYSAiYmxhY2stYm94IiB0ZXN0LgorCitGb3IgZXhhbXBs
ZSwgdG8gZW5zdXJlIGEgc2ltcGxlIHRlc3QgcGFzc2VzIHlvdSBjYW4gd3JpdGU6CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRob24KKworICAgIGRlZiB0ZXN0X3RydWVfYXNzZXJ0aW9uKHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAgIGFzc2VydCBUcnVlCisgICAgICAg
ICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhmYWlsZWQ9MCwgcGFzc2VkPTEpCisKKworQWx0
ZXJuYXRpdmVseSwgaXQgaXMgcG9zc2libGUgdG8gbWFrZSBjaGVja3MgYmFzZWQgb24gdGhlIGFj
dHVhbCBvdXRwdXQgb2YgdGhlIHRlcm1hbCB1c2luZworKmdsb2ItbGlrZSogZXhwcmVzc2lvbnM6
CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGRlZiB0ZXN0X3RydWVfYXNzZXJ0aW9u
KHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAgIGFzc2VydCBGYWxz
ZQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiphc3NlcnQgRmFs
c2UqIiwgIioxIGZhaWxlZCoiXSkKKworV2hlbiBjaG9vc2luZyBhIGZpbGUgd2hlcmUgdG8gd3Jp
dGUgYSBuZXcgdGVzdCwgdGFrZSBhIGxvb2sgYXQgdGhlIGV4aXN0aW5nIGZpbGVzIGFuZCBzZWUg
aWYgdGhlcmUncworb25lIGZpbGUgd2hpY2ggbG9va3MgbGlrZSBhIGdvb2QgZml0LiBGb3IgZXhh
bXBsZSwgYSByZWdyZXNzaW9uIHRlc3QgYWJvdXQgYSBidWcgaW4gdGhlIGBgLS1sZmBgIG9wdGlv
bgorc2hvdWxkIGdvIGludG8gYGB0ZXN0X2NhY2hlcHJvdmlkZXIucHlgYCwgZ2l2ZW4gdGhhdCB0
aGlzIG9wdGlvbiBpcyBpbXBsZW1lbnRlZCBpbiBgYGNhY2hlcHJvdmlkZXIucHlgYC4KK0lmIGlu
IGRvdWJ0LCBnbyBhaGVhZCBhbmQgb3BlbiBhIFBSIHdpdGggeW91ciBiZXN0IGd1ZXNzIGFuZCB3
ZSBjYW4gZGlzY3VzcyB0aGlzIG92ZXIgdGhlIGNvZGUuCisKKwogSm9pbmluZyB0aGUgRGV2ZWxv
cG1lbnQgVGVhbQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9IT1dUT1JFTEVBU0UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvSE9XVE9SRUxFQVNFLnJz
dAppbmRleCA5N2JkZGY3MjAyYjFmYTBmYTkzMWExYjU3MDkwMmVkOWNkZDk0NTk4Li5iMzdhMjQ1
YzBiZTM3YmQ3NWY1ZjZkMjk5Yzg3NzIwN2NiYTcyYmEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9IT1dUT1JFTEVBU0UucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0hPV1RPUkVMRUFTRS5yc3QKQEAg
LTEwLDEwICsxMCw2IEBAIHRha2luZyBhIGxvdCBvZiB0aW1lIHRvIG1ha2UgYSBuZXcgb25lLgog
ICAgIHB5dGVzdCByZWxlYXNlcyBtdXN0IGJlIHByZXBhcmVkIG9uICoqTGludXgqKiBiZWNhdXNl
IHRoZSBkb2NzIGFuZCBleGFtcGxlcyBleHBlY3QKICAgICB0byBiZSBleGVjdXRlZCBpbiB0aGF0
IHBsYXRmb3JtLgogCi0jLiBJbnN0YWxsIGRldmVsb3BtZW50IGRlcGVuZGVuY2llcyBpbiBhIHZp
cnR1YWwgZW52aXJvbm1lbnQgd2l0aDo6Ci0KLSAgICBwaXAzIGluc3RhbGwgLVUgLXIgdGFza3Mv
cmVxdWlyZW1lbnRzLnR4dAotCiAjLiBDcmVhdGUgYSBicmFuY2ggYGByZWxlYXNlLVguWS5aYGAg
d2l0aCB0aGUgdmVyc2lvbiBmb3IgdGhlIHJlbGVhc2UuCiAKICAgICogKipwYXRjaCByZWxlYXNl
cyoqOiBmcm9tIHRoZSBsYXRlc3QgYGBtYXN0ZXJgYDsKQEAgLTIyLDE4ICsxOCwyMyBAQCB0YWtp
bmcgYSBsb3Qgb2YgdGltZSB0byBtYWtlIGEgbmV3IG9uZS4KIAogICAgRW5zdXJlIHlvdXIgYXJl
IGluIGEgY2xlYW4gd29yayB0cmVlLgogCi0jLiBHZW5lcmF0ZSBkb2NzLCBjaGFuZ2Vsb2csIGFu
bm91bmNlbWVudHMgYW5kIGEgKipsb2NhbCoqIHRhZzo6CisjLiBVc2luZyBgYHRveGBgLCBnZW5l
cmF0ZSBkb2NzLCBjaGFuZ2Vsb2csIGFubm91bmNlbWVudHM6OgorCisgICAgJCB0b3ggLWUgcmVs
ZWFzZSAtLSA8VkVSU0lPTj4KIAotICAgICBpbnZva2UgZ2VuZXJhdGUucHJlLXJlbGVhc2UgPFZF
UlNJT04+CisgICBUaGlzIHdpbGwgZ2VuZXJhdGUgYSBjb21taXQgd2l0aCBhbGwgdGhlIGNoYW5n
ZXMgcmVhZHkgZm9yIHB1c2hpbmcuCiAKICMuIE9wZW4gYSBQUiBmb3IgdGhpcyBicmFuY2ggdGFy
Z2V0aW5nIGBgbWFzdGVyYGAuCiAKICMuIEFmdGVyIGFsbCB0ZXN0cyBwYXNzIGFuZCB0aGUgUFIg
aGFzIGJlZW4gYXBwcm92ZWQsIHB1Ymxpc2ggdG8gUHlQSSBieSBwdXNoaW5nIHRoZSB0YWc6Ogog
CisgICAgIGdpdCB0YWcgPFZFUlNJT04+CiAgICAgIGdpdCBwdXNoIGdpdEBnaXRodWIuY29tOnB5
dGVzdC1kZXYvcHl0ZXN0LmdpdCA8VkVSU0lPTj4KIAogICAgV2FpdCBmb3IgdGhlIGRlcGxveSB0
byBjb21wbGV0ZSwgdGhlbiBtYWtlIHN1cmUgaXQgaXMgYGF2YWlsYWJsZSBvbiBQeVBJIDxodHRw
czovL3B5cGkub3JnL3Byb2plY3QvcHl0ZXN0PmBfLgogCisjLiBNZXJnZSB0aGUgUFIgaW50byBg
YG1hc3RlcmBgLgorCiAjLiBTZW5kIGFuIGVtYWlsIGFubm91bmNlbWVudCB3aXRoIHRoZSBjb250
ZW50cyBmcm9tOjoKIAogICAgICBkb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS08VkVSU0lPTj4ucnN0
CkBAIC00NSw1ICs0NiwzIEBAIHRha2luZyBhIGxvdCBvZiB0aW1lIHRvIG1ha2UgYSBuZXcgb25l
LgogICAgKiB0ZXN0aW5nLWluLXB5dGhvbkBsaXN0cy5pZHlsbC5vcmcgKG9ubHkgbWFqb3IvbWlu
b3IgcmVsZWFzZXMpCiAKICAgIEFuZCBhbm5vdW5jZSBpdCBvbiBgVHdpdHRlciA8aHR0cHM6Ly90
d2l0dGVyLmNvbS8+YF8gd2l0aCB0aGUgYGAjcHl0ZXN0YGAgaGFzaHRhZy4KLQotIy4gQWZ0ZXIg
YSBtaW5vci9tYWpvciByZWxlYXNlLCBtZXJnZSBgYHJlbGVhc2UtWC5ZLlpgYCBpbnRvIGBgbWFz
dGVyYGAgYW5kIHB1c2ggKG9yIG9wZW4gYSBQUikuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9M
SUNFTlNFIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvTElDRU5TRQppbmRleCA2MjlkZjQ1YWM0MDU1MzJjMTA3ZWIy
MzMyMTdiYzJhYzFhZDcwYzg4Li5kMTRmYjdmZjRiMzRiZThjZmIzNjFhM2NlOTBhMGU4ODE0NzVh
OTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9MSUNFTlNFCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0xJ
Q0VOU0UKQEAgLTEsNiArMSw2IEBACiBUaGUgTUlUIExpY2Vuc2UgKE1JVCkKIAotQ29weXJpZ2h0
IChjKSAyMDA0LTIwMTcgSG9sZ2VyIEtyZWtlbCBhbmQgb3RoZXJzCitDb3B5cmlnaHQgKGMpIDIw
MDQtMjAyMCBIb2xnZXIgS3Jla2VsIGFuZCBvdGhlcnMKIAogUGVybWlzc2lvbiBpcyBoZXJlYnkg
Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBv
ZgogdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg
IlNvZnR3YXJlIiksIHRvIGRlYWwgaW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L1JFQURNRS5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9SRUFETUUucnN0CmluZGV4IDU2NGZmZmY2YzkxZWZjYWNlNzM2YWMy
NTIxZTQ1NmI1MjMzZjc2ZTguLjY5NDA4OTc4NzAzMmRiZDZiNjYyNWMxMmQ3MDhmMzQwODlhZjBl
OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L1JFQURNRS5yc3QKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
UkVBRE1FLnJzdApAQCAtMSw4ICsxLDkgQEAKLS4uIGltYWdlOjogaHR0cDovL2RvY3MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3QvX3N0YXRpYy9weXRlc3QxLnBuZwotICAgOnRhcmdldDogaHR0cDovL2Rv
Y3MucHl0ZXN0Lm9yZworLi4gaW1hZ2U6OiBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRl
c3QvX3N0YXRpYy9weXRlc3QxLnBuZworICAgOnRhcmdldDogaHR0cHM6Ly9kb2NzLnB5dGVzdC5v
cmcvZW4vbGF0ZXN0LwogICAgOmFsaWduOiBjZW50ZXIKICAgIDphbHQ6IHB5dGVzdAogCisKIC0t
LS0tLQogCiAuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L3B5dGVzdC5z
dmcKQEAgLTE0LDE3ICsxNSwxOCBAQAogLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlv
L3B5cGkvcHl2ZXJzaW9ucy9weXRlc3Quc3ZnCiAgICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLm9y
Zy9wcm9qZWN0L3B5dGVzdC8KIAotLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2Nv
dmVyYWxscy9weXRlc3QtZGV2L3B5dGVzdC9tYXN0ZXIuc3ZnCi0gICAgOnRhcmdldDogaHR0cHM6
Ly9jb3ZlcmFsbHMuaW8vci9weXRlc3QtZGV2L3B5dGVzdAorLi4gaW1hZ2U6OiBodHRwczovL2Nv
ZGVjb3YuaW8vZ2gvcHl0ZXN0LWRldi9weXRlc3QvYnJhbmNoL21hc3Rlci9ncmFwaC9iYWRnZS5z
dmcKKyAgICA6dGFyZ2V0OiBodHRwczovL2NvZGVjb3YuaW8vZ2gvcHl0ZXN0LWRldi9weXRlc3QK
KyAgICA6YWx0OiBDb2RlIGNvdmVyYWdlIFN0YXR1cwogCiAuLiBpbWFnZTo6IGh0dHBzOi8vdHJh
dmlzLWNpLm9yZy9weXRlc3QtZGV2L3B5dGVzdC5zdmc/YnJhbmNoPW1hc3RlcgogICAgIDp0YXJn
ZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9weXRlc3QtZGV2L3B5dGVzdAogCi0uLiBpbWFnZTo6
IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9qZWN0cy9zdGF0dXMvbXJnYmphdWE3dDMz
cGc2Yj9zdmc9dHJ1ZQotICAgIDp0YXJnZXQ6IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2pl
Y3QvcHl0ZXN0Ym90L3B5dGVzdAorLi4gaW1hZ2U6OiBodHRwczovL2Rldi5henVyZS5jb20vcHl0
ZXN0LWRldi9weXRlc3QvX2FwaXMvYnVpbGQvc3RhdHVzL3B5dGVzdC1DST9icmFuY2hOYW1lPW1h
c3RlcgorICAgIDp0YXJnZXQ6IGh0dHBzOi8vZGV2LmF6dXJlLmNvbS9weXRlc3QtZGV2L3B5dGVz
dAogCiAuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxl
LWJsYWNrLTAwMDAwMC5zdmcKLSAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL2FtYnYvYmxh
Y2sKKyAgICA6dGFyZ2V0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uL2JsYWNrCiAKIC4uIGlt
YWdlOjogaHR0cHM6Ly93d3cuY29kZXRyaWFnZS5jb20vcHl0ZXN0LWRldi9weXRlc3QvYmFkZ2Vz
L3VzZXJzLnN2ZwogICAgIDp0YXJnZXQ6IGh0dHBzOi8vd3d3LmNvZGV0cmlhZ2UuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0CkBAIC02NSwyMyArNjcsMjMgQEAgVG8gZXhlY3V0ZSBpdDo6CiAgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT0gMSBmYWlsZWQgaW4gMC4wNCBzZWNvbmRzID09PT09PT09
PT09PT09PT09PT09PT09PT09PQogCiAKLUR1ZSB0byBgYHB5dGVzdGBgJ3MgZGV0YWlsZWQgYXNz
ZXJ0aW9uIGludHJvc3BlY3Rpb24sIG9ubHkgcGxhaW4gYGBhc3NlcnRgYCBzdGF0ZW1lbnRzIGFy
ZSB1c2VkLiBTZWUgYGdldHRpbmctc3RhcnRlZCA8aHR0cDovL2RvY3MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3QvZ2V0dGluZy1zdGFydGVkLmh0bWwjb3VyLWZpcnN0LXRlc3QtcnVuPmBfIGZvciBtb3Jl
IGV4YW1wbGVzLgorRHVlIHRvIGBgcHl0ZXN0YGAncyBkZXRhaWxlZCBhc3NlcnRpb24gaW50cm9z
cGVjdGlvbiwgb25seSBwbGFpbiBgYGFzc2VydGBgIHN0YXRlbWVudHMgYXJlIHVzZWQuIFNlZSBg
Z2V0dGluZy1zdGFydGVkIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZ2V0dGlu
Zy1zdGFydGVkLmh0bWwjb3VyLWZpcnN0LXRlc3QtcnVuPmBfIGZvciBtb3JlIGV4YW1wbGVzLgog
CiAKIEZlYXR1cmVzCiAtLS0tLS0tLQogCi0tIERldGFpbGVkIGluZm8gb24gZmFpbGluZyBgYXNz
ZXJ0IHN0YXRlbWVudHMgPGh0dHA6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2Fzc2VydC5o
dG1sPmBfIChubyBuZWVkIHRvIHJlbWVtYmVyIGBgc2VsZi5hc3NlcnQqYGAgbmFtZXMpOworLSBE
ZXRhaWxlZCBpbmZvIG9uIGZhaWxpbmcgYGFzc2VydCBzdGF0ZW1lbnRzIDxodHRwczovL2RvY3Mu
cHl0ZXN0Lm9yZy9lbi9sYXRlc3QvYXNzZXJ0Lmh0bWw+YF8gKG5vIG5lZWQgdG8gcmVtZW1iZXIg
YGBzZWxmLmFzc2VydCpgYCBuYW1lcyk7CiAKIC0gYEF1dG8tZGlzY292ZXJ5Ci0gIDxodHRwOi8v
ZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9nb29kcHJhY3RpY2VzLmh0bWwjcHl0aG9uLXRlc3Qt
ZGlzY292ZXJ5PmBfCisgIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZ29vZHBy
YWN0aWNlcy5odG1sI3B5dGhvbi10ZXN0LWRpc2NvdmVyeT5gXwogICBvZiB0ZXN0IG1vZHVsZXMg
YW5kIGZ1bmN0aW9uczsKIAotLSBgTW9kdWxhciBmaXh0dXJlcyA8aHR0cDovL2RvY3MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3QvZml4dHVyZS5odG1sPmBfIGZvcgorLSBgTW9kdWxhciBmaXh0dXJlcyA8
aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2ZpeHR1cmUuaHRtbD5gXyBmb3IKICAg
bWFuYWdpbmcgc21hbGwgb3IgcGFyYW1ldHJpemVkIGxvbmctbGl2ZWQgdGVzdCByZXNvdXJjZXM7
CiAKLS0gQ2FuIHJ1biBgdW5pdHRlc3QgPGh0dHA6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0
L3VuaXR0ZXN0Lmh0bWw+YF8gKG9yIHRyaWFsKSwKLSAgYG5vc2UgPGh0dHA6Ly9kb2NzLnB5dGVz
dC5vcmcvZW4vbGF0ZXN0L25vc2UuaHRtbD5gXyB0ZXN0IHN1aXRlcyBvdXQgb2YgdGhlIGJveDsK
Ky0gQ2FuIHJ1biBgdW5pdHRlc3QgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC91
bml0dGVzdC5odG1sPmBfIChvciB0cmlhbCksCisgIGBub3NlIDxodHRwczovL2RvY3MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3Qvbm9zZS5odG1sPmBfIHRlc3Qgc3VpdGVzIG91dCBvZiB0aGUgYm94Owog
CiAtIFB5dGhvbiAyLjcsIFB5dGhvbiAzLjQrLCBQeVB5IDIuMywgSnl0aG9uIDIuNSAodW50ZXN0
ZWQpOwogCkBAIC05MSw3ICs5Myw3IEBAIEZlYXR1cmVzCiBEb2N1bWVudGF0aW9uCiAtLS0tLS0t
LS0tLS0tCiAKLUZvciBmdWxsIGRvY3VtZW50YXRpb24sIGluY2x1ZGluZyBpbnN0YWxsYXRpb24s
IHR1dG9yaWFscyBhbmQgUERGIGRvY3VtZW50cywgcGxlYXNlIHNlZSBodHRwOi8vZG9jcy5weXRl
c3Qub3JnLgorRm9yIGZ1bGwgZG9jdW1lbnRhdGlvbiwgaW5jbHVkaW5nIGluc3RhbGxhdGlvbiwg
dHV0b3JpYWxzIGFuZCBQREYgZG9jdW1lbnRzLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZG9jcy5weXRl
c3Qub3JnL2VuL2xhdGVzdC8uCiAKIAogQnVncy9SZXF1ZXN0cwpAQCAtMTAzLDEzICsxMDUsMzMg
QEAgUGxlYXNlIHVzZSB0aGUgYEdpdEh1YiBpc3N1ZSB0cmFja2VyIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWUKIENoYW5nZWxvZwogLS0tLS0tLS0tCiAKLUNvbnN1
bHQgdGhlIGBDaGFuZ2Vsb2cgPGh0dHA6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5n
ZWxvZy5odG1sPmBfXyBwYWdlIGZvciBmaXhlcyBhbmQgZW5oYW5jZW1lbnRzIG9mIGVhY2ggdmVy
c2lvbi4KK0NvbnN1bHQgdGhlIGBDaGFuZ2Vsb2cgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2Vu
L2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbD5gX18gcGFnZSBmb3IgZml4ZXMgYW5kIGVuaGFuY2VtZW50
cyBvZiBlYWNoIHZlcnNpb24uCisKKworU3VwcG9ydCBweXRlc3QKKy0tLS0tLS0tLS0tLS0tCisK
K1lvdSBjYW4gc3VwcG9ydCBweXRlc3QgYnkgb2J0YWluaW5nIGEgYFRpZGVmbGlmdCBzdWJzY3Jp
cHRpb25gXy4KKworVGlkZWxpZnQgZ2l2ZXMgc29mdHdhcmUgZGV2ZWxvcG1lbnQgdGVhbXMgYSBz
aW5nbGUgc291cmNlIGZvciBwdXJjaGFzaW5nIGFuZCBtYWludGFpbmluZyB0aGVpciBzb2Z0d2Fy
ZSwKK3dpdGggcHJvZmVzc2lvbmFsIGdyYWRlIGFzc3VyYW5jZXMgZnJvbSB0aGUgZXhwZXJ0cyB3
aG8ga25vdyBpdCBiZXN0LCB3aGlsZSBzZWFtbGVzc2x5IGludGVncmF0aW5nIHdpdGggZXhpc3Rp
bmcgdG9vbHMuCisKKworLi4gX2BUaWRlZmxpZnQgc3Vic2NyaXB0aW9uYDogaHR0cHM6Ly90aWRl
bGlmdC5jb20vc3Vic2NyaXB0aW9uL3BrZy9weXBpLXB5dGVzdD91dG1fc291cmNlPXB5cGktcHl0
ZXN0JnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NhbXBhaWduPXJlYWRtZQorCisKK1NlY3VyaXR5
CiteXl5eXl5eXgorCitweXRlc3QgaGFzIG5ldmVyIGJlZW4gYXNzb2NpYXRlZCB3aXRoIGEgc2Vj
dXJpdHkgdnVuZXJhYmlsaXR5LCBidXQgaW4gYW55IGNhc2UsIHRvIHJlcG9ydCBhCitzZWN1cml0
eSB2dWxuZXJhYmlsaXR5IHBsZWFzZSB1c2UgdGhlIGBUaWRlbGlmdCBzZWN1cml0eSBjb250YWN0
IDxodHRwczovL3RpZGVsaWZ0LmNvbS9zZWN1cml0eT5gXy4KK1RpZGVsaWZ0IHdpbGwgY29vcmRp
bmF0ZSB0aGUgZml4IGFuZCBkaXNjbG9zdXJlLgogCiAKIExpY2Vuc2UKIC0tLS0tLS0KIAotQ29w
eXJpZ2h0IEhvbGdlciBLcmVrZWwgYW5kIG90aGVycywgMjAwNC0yMDE3LgorQ29weXJpZ2h0IEhv
bGdlciBLcmVrZWwgYW5kIG90aGVycywgMjAwNC0yMDIwLgogCiBEaXN0cmlidXRlZCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIGBNSVRgXyBsaWNlbnNlLCBweXRlc3QgaXMgZnJlZSBhbmQgb3BlbiBz
b3VyY2Ugc29mdHdhcmUuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L1RJREVMSUZULnJzdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L1RJREVMSUZULnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzA4MTgxN2RmZDgyMjVmZWM2
NDVkMzVmMjA3OTBlZDg3YTVmNTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvVElE
RUxJRlQucnN0CkBAIC0wLDAgKzEsNTcgQEAKKz09PT09PT09CitUaWRlbGlmdAorPT09PT09PT0K
KworcHl0ZXN0IGlzIGEgbWVtYmVyIG9mIGBUaWRlbGlmdGBfLiBUaGlzIGRvY3VtZW50IGRlc2Ny
aWJlcyBob3cgdGhlIGNvcmUgdGVhbSBtYW5hZ2VzCitUaWRlbGlmdC1yZWxhdGVkIGFjdGl2aXRp
ZXMuCisKK1doYXQgaXMgaXQKKz09PT09PT09PT0KKworVGlkZWxpZnQgYWltcyB0byBtYWtlIE9w
ZW4gU291cmNlIHN1c3RhaW5hYmxlIGJ5IG9mZmVyaW5nIHN1YnNjcmlwdGlvbnMgdG8gY29tcGFu
aWVzIHdoaWNoIHJlbHkKK29uIE9wZW4gU291cmNlIHBhY2thZ2VzLiBUaGlzIHN1YnNjcmlwdGlv
biBhbGxvd3MgaXQgdG8gcGF5IG1haW50YWluZXJzIG9mIHRob3NlIE9wZW4gU291cmNlCitwYWNr
YWdlcyB0byBhaWQgc3VzdGFpbmFiaWxpdHkgb2YgdGhlIHdvcmsuCisKK0Z1bmRzCis9PT09PQor
CitJdCB3YXMgZGVjaWRlZCBpbiB0aGUgYG1haWxpbmcgbGlzdGBfIHRoYXQgdGhlIFRpZGVsaWZ0
IGNvbnRyaWJ1dGlvbiB3aWxsIGJlIHNwbGl0IGV2ZW5seSBiZXR3ZWVuCittZW1iZXJzIG9mIHRo
ZSBgY29udHJpYnV0b3JzIHRlYW1gXyBpbnRlcmVzdGVkIGluIHJlY2VpdmluZyBmdW5kaW5nLgor
CitUaGUgY3VycmVudCBsaXN0IG9mIGNvbnRyaWJ1dG9ycyByZWNlaXZpbmcgZnVuZGluZyBhcmU6
CisKKyogYEBhc290dGlsZWBfCisqIGBAYmx1ZXllZGBfCisqIGBAbmljb2RkZW11c2BfCisKK0Nv
bnRyaWJ1dG9ycyBpbnRlcmVzdGVkIGluIHJlY2VpdmluZyBhIHBhcnQgb2YgdGhlIGZ1bmRzIGp1
c3QgbmVlZCB0byBzdWJtaXQgYSBQUiBhZGRpbmcgdGhlaXIKK25hbWUgdG8gdGhlIGxpc3QuIENv
bnRyaWJ1dG9ycyB0aGF0IHdhbnQgdG8gc3RvcCByZWNlaXZpbmcgdGhlIGZ1bmRzIHNob3VsZCBh
bHNvIHN1Ym1pdCBhIFBSCitpbiB0aGUgc2FtZSB3YXkuCisKK1RoZSBQUiBzaG91bGQgbWVudGlv
biBgQHB5dGVzdC1kZXYvdGlkZWxpZnQtYWRtaW5zYF8gc28gYXBwcm9wcmlhdGUgY2hhbmdlcwor
Y2FuIGJlIG1hZGUgaW4gdGhlIFRpZGVsaWZ0IHBsYXRmb3JtLgorCitBZnRlciB0aGUgUFIgaGFz
IGJlZW4gYWNjZXB0ZWQgYW5kIG1lcmdlZCwgdGhlIGNvbnRyaWJ1dG9yIHNob3VsZCByZWdpc3Rl
ciBpbiB0aGUgYFRpZGVsaWZ0YF8KK3BsYXRmb3JtIGFuZCBmb2xsb3cgdGhlIGluc3RydWN0aW9u
cyB0aGVyZSwgaW5jbHVkaW5nIHNpZ25pbmcgYW4gYGFncmVlbWVudGBfLgorCitBZG1pbnMKKz09
PT09PQorCitBIGZldyBwZW9wbGUgaGF2ZSBhZG1pbiBhY2Nlc3MgdG8gdGhlIFRpZGVsaWZ0IGRh
c2hib2FyZCB0byBtYWtlIGNoYW5nZXMuIFRob3NlIHBlb3BsZQorYXJlIHBhcnQgb2YgdGhlIGBA
cHl0ZXN0LWRldi90aWRlbGlmdC1hZG1pbnNgXyB0ZWFtLgorCitgQ29yZSBjb250cmlidXRvcnNg
XyBpbnRlcmVzdGVkIGluIGhlbHBpbmcgb3V0IHdpdGggVGlkZWxpZnQgbWFpbnRlbmFuY2UgYXJl
IHdlbGNvbWUhIFdlIGRvbid0CitleHBlY3QgbXVjaCB3b3JrIGhlcmUgb3RoZXIgdGhhbiB0aGUg
b2NjYXNpb25hbCBhZGRpbmcvcmVtb3ZhbCBvZiBhIGNvbnRyaWJ1dG9yIGZyb20gcmVjZWl2aW5n
CitmdW5kcy4gSnVzdCBkcm9wIGEgbGluZSB0byBvbmUgb2YgdGhlIGBAcHl0ZXN0LWRldi90aWRl
bGlmdC1hZG1pbnNgXyBvciB1c2UgdGhlIG1haWxpbmcgbGlzdC4KKworCisuLiBfYFRpZGVsaWZ0
YDogaHR0cHM6Ly90aWRlbGlmdC5jb20KKy4uIF9gbWFpbGluZyBsaXN0YDogaHR0cHM6Ly9tYWls
LnB5dGhvbi5vcmcvcGlwZXJtYWlsL3B5dGVzdC1kZXYvMjAxOS1NYXkvMDA0NzE2Lmh0bWwKKy4u
IF9gY29udHJpYnV0b3JzIHRlYW1gOiBodHRwczovL2dpdGh1Yi5jb20vb3Jncy9weXRlc3QtZGV2
L3RlYW1zL2NvbnRyaWJ1dG9ycworLi4gX2Bjb3JlIGNvbnRyaWJ1dG9yc2A6IGh0dHBzOi8vZ2l0
aHViLmNvbS9vcmdzL3B5dGVzdC1kZXYvdGVhbXMvY29yZS9tZW1iZXJzCisuLiBfYEBweXRlc3Qt
ZGV2L3RpZGVsaWZ0LWFkbWluc2A6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcmdzL3B5dGVzdC1kZXYv
dGVhbXMvdGlkZWxpZnQtYWRtaW5zL21lbWJlcnMKKy4uIF9gYWdyZWVtZW50YDogaHR0cHM6Ly90
aWRlbGlmdC5jb20vZG9jcy9saWZ0aW5nL2FncmVlbWVudAorCisuLiBfYEBhc290dGlsZWA6IGh0
dHBzOi8vZ2l0aHViLmNvbS9hc290dGlsZQorLi4gX2BAYmx1ZXllZGA6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9ibHVleWVkCisuLiBfYEBuaWNvZGRlbXVzYDogaHR0cHM6Ly9naXRodWIuY29tL25pY29k
ZGVtdXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX19pbml0X18ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2ZTQxZjA1MDRlNDcwNjQyOGY4YmMyNDFkNWQyZDEwZWRiYTAxMzhiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX19p
bml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLV9fYWxsX18gPSBbJ19fdmVy
c2lvbl9fJ10KLQotdHJ5OgotICAgIGZyb20gLl92ZXJzaW9uIGltcG9ydCB2ZXJzaW9uIGFzIF9f
dmVyc2lvbl9fCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgIyBicm9rZW4gaW5zdGFsbGF0aW9u
LCB3ZSBkb24ndCBldmVuIHRyeQotICAgICMgdW5rbm93biBvbmx5IHdvcmtzIGJlY2F1c2Ugd2Ug
ZG8gcG9vciBtYW5zIHZlcnNpb24gY29tcGFyZQotICAgIF9fdmVyc2lvbl9fID0gJ3Vua25vd24n
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19hcmdjb21wbGV0ZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvX2FyZ2NvbXBsZXRlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwNjI1YTc1ZjlmMWI3MDUwZDM4ZjM2NWM0MTM1ZGQ0OGFhNzFiMWQ2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
X2FyZ2NvbXBsZXRlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLQotIiIiYWxs
b3cgYmFzaC1jb21wbGV0aW9uIGZvciBhcmdwYXJzZSB3aXRoIGFyZ2NvbXBsZXRlIGlmIGluc3Rh
bGxlZAotbmVlZHMgYXJnY29tcGxldGU+PTAuNS42IGZvciBweXRob24gMy4yLzMuMyAob2xkZXIg
dmVyc2lvbnMgZmFpbAotdG8gZmluZCB0aGUgbWFnaWMgc3RyaW5nLCBzbyBfQVJHQ09NUExFVEUg
ZW52LiB2YXIgaXMgbmV2ZXIgc2V0LCBhbmQKLXRoaXMgZG9lcyBub3QgbmVlZCBzcGVjaWFsIGNv
ZGUuCi0KLUZ1bmN0aW9uIHRyeV9hcmdjb21wbGV0ZShwYXJzZXIpIHNob3VsZCBiZSBjYWxsZWQg
ZGlyZWN0bHkgYmVmb3JlCi10aGUgY2FsbCB0byBBcmd1bWVudFBhcnNlci5wYXJzZV9hcmdzKCku
Ci0KLVRoZSBmaWxlc2NvbXBsZXRlciBpcyB3aGF0IHlvdSBub3JtYWxseSB3b3VsZCB1c2Ugb24g
dGhlIHBvc2l0aW9uYWwKLWFyZ3VtZW50cyBzcGVjaWZpY2F0aW9uLCBpbiBvcmRlciB0byBnZXQg
ImRpcm5hbWUvIiBhZnRlciAiZGlybjxUQUI+IgotaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAiZGly
bmFtZSAiOgotCi0gICBvcHRwYXJzZXIuYWRkX2FyZ3VtZW50KENvbmZpZy5fZmlsZV9vcl9kaXIs
IG5hcmdzPScqJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuY29tcGxldGVyPWZp
bGVzY29tcGxldGVyCi0KLU90aGVyLCBhcHBsaWNhdGlvbiBzcGVjaWZpYywgY29tcGxldGVycyBz
aG91bGQgZ28gaW4gdGhlIGZpbGUKLWRvaW5nIHRoZSBhZGRfYXJndW1lbnQgY2FsbHMgYXMgdGhl
eSBuZWVkIHRvIGJlIHNwZWNpZmllZCBhcyAuY29tcGxldGVyCi1hdHRyaWJ1dGVzIGFzIHdlbGwu
IChJZiBhcmdjb21wbGV0ZSBpcyBub3QgaW5zdGFsbGVkLCB0aGUgZnVuY3Rpb24gdGhlCi1hdHRy
aWJ1dGUgcG9pbnRzIHRvIHdpbGwgbm90IGJlIHVzZWQpLgotCi1TUEVFRFVQCi09PT09PT09Ci1U
aGUgZ2VuZXJpYyBhcmdjb21wbGV0ZSBzY3JpcHQgZm9yIGJhc2gtY29tcGxldGlvbgotKC9ldGMv
YmFzaF9jb21wbGV0aW9uLmQvcHl0aG9uLWFyZ2NvbXBsZXRlLnNoICkKLXVzZXMgYSBweXRob24g
cHJvZ3JhbSB0byBkZXRlcm1pbmUgc3RhcnR1cCBzY3JpcHQgZ2VuZXJhdGVkIGJ5IHBpcC4KLVlv
dSBjYW4gc3BlZWQgdXAgY29tcGxldGlvbiBzb21ld2hhdCBieSBjaGFuZ2luZyB0aGlzIHNjcmlw
dCB0byBpbmNsdWRlCi0gICMgUFlUSE9OX0FSR0NPTVBMRVRFX09LCi1zbyB0aGUgdGhlIHB5dGhv
bi1hcmdjb21wbGV0ZS1jaGVjay1lYXN5LWluc3RhbGwtc2NyaXB0IGRvZXMgbm90Ci1uZWVkIHRv
IGJlIGNhbGxlZCB0byBmaW5kIHRoZSBlbnRyeSBwb2ludCBvZiB0aGUgY29kZSBhbmQgc2VlIGlm
IHRoYXQgaXMKLW1hcmtlZCAgd2l0aCBQWVRIT05fQVJHQ09NUExFVEVfT0sKLQotSU5TVEFMTC9E
RUJVR0dJTkcKLT09PT09PT09PT09PT09PT09Ci1UbyBpbmNsdWRlIHRoaXMgc3VwcG9ydCBpbiBh
bm90aGVyIGFwcGxpY2F0aW9uIHRoYXQgaGFzIHNldHVwLnB5IGdlbmVyYXRlZAotc2NyaXB0czoK
LS0gYWRkIHRoZSBsaW5lOgotICAgICMgUFlUSE9OX0FSR0NPTVBMRVRFX09LCi0gIG5lYXIgdGhl
IHRvcCBvZiB0aGUgbWFpbiBweXRob24gZW50cnkgcG9pbnQKLS0gaW5jbHVkZSBpbiB0aGUgZmls
ZSBjYWxsaW5nIHBhcnNlX2FyZ3MoKToKLSAgICBmcm9tIF9hcmdjb21wbGV0ZSBpbXBvcnQgdHJ5
X2FyZ2NvbXBsZXRlLCBmaWxlc2NvbXBsZXRlcgotICAgLCBjYWxsIHRyeV9hcmdjb21wbGV0ZSBq
dXN0IGJlZm9yZSBwYXJzZV9hcmdzKCksIGFuZCBvcHRpb25hbGx5IGFkZAotICAgZmlsZXNjb21w
bGV0ZXIgdG8gdGhlIHBvc2l0aW9uYWwgYXJndW1lbnRzJyBhZGRfYXJndW1lbnQoKQotSWYgdGhp
bmdzIGRvIG5vdCB3b3JrIHJpZ2h0IGF3YXk6Ci0tIHN3aXRjaCBvbiBhcmdjb21wbGV0ZSBkZWJ1
Z2dpbmcgd2l0aCAoYWxzbyBoZWxwZnVsIHdoZW4gZG9pbmcgY3VzdG9tCi0gIGNvbXBsZXRlcnMp
OgotICAgIGV4cG9ydCBfQVJDX0RFQlVHPTEKLS0gcnVuOgotICAgIHB5dGhvbi1hcmdjb21wbGV0
ZS1jaGVjay1lYXN5LWluc3RhbGwtc2NyaXB0ICQod2hpY2ggYXBwbmFtZSkKLSAgICBlY2hvICQ/
Ci0gIHdpbGwgZWNobyAwIGlmIHRoZSBtYWdpYyBsaW5lIGhhcyBiZWVuIGZvdW5kLCAxIGlmIG5v
dAotLSBzb21ldGltZXMgaXQgaGVscHMgdG8gZmluZCBlYXJseSBvbiBlcnJvcnMgdXNpbmc6Ci0g
ICAgX0FSR0NPTVBMRVRFPTEgX0FSQ19ERUJVRz0xIGFwcG5hbWUKLSAgd2hpY2ggc2hvdWxkIHRo
cm93IGEgS2V5RXJyb3I6ICdDT01QTElORScgKHdoaWNoIGlzIHByb3Blcmx5IHNldCBieSB0aGUK
LSAgZ2xvYmFsIGFyZ2NvbXBsZXRlIHNjcmlwdCkuCi0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBzeXMK
LWltcG9ydCBvcwotZnJvbSBnbG9iIGltcG9ydCBnbG9iCi0KLQotY2xhc3MgRmFzdEZpbGVzQ29t
cGxldGVyOgotICAgICdGYXN0IGZpbGUgY29tcGxldGVyIGNsYXNzJwotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGRpcmVjdG9yaWVzPVRydWUpOgotICAgICAgICBzZWxmLmRpcmVjdG9yaWVzID0g
ZGlyZWN0b3JpZXMKLQotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwcmVmaXgsICoqa3dhcmdzKToK
LSAgICAgICAgIiIib25seSBjYWxsZWQgb24gbm9uIG9wdGlvbiBjb21wbGV0aW9ucyIiIgotICAg
ICAgICBpZiBvcy5wYXRoLnNlcCBpbiBwcmVmaXhbMTpdOgotICAgICAgICAgICAgcHJlZml4X2Rp
ciA9IGxlbihvcy5wYXRoLmRpcm5hbWUocHJlZml4KSArIG9zLnBhdGguc2VwKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgcHJlZml4X2RpciA9IDAKLSAgICAgICAgY29tcGxldGlvbiA9IFtd
Ci0gICAgICAgIGdsb2JiZWQgPSBbXQotICAgICAgICBpZiAnKicgbm90IGluIHByZWZpeCBhbmQg
Jz8nIG5vdCBpbiBwcmVmaXg6Ci0gICAgICAgICAgICAjIHdlIGFyZSBvbiB1bml4LCBvdGhlcndp
c2Ugbm8gYmFzaAotICAgICAgICAgICAgaWYgbm90IHByZWZpeCBvciBwcmVmaXhbLTFdID09IG9z
LnBhdGguc2VwOgotICAgICAgICAgICAgICAgIGdsb2JiZWQuZXh0ZW5kKGdsb2IocHJlZml4ICsg
Jy4qJykpCi0gICAgICAgICAgICBwcmVmaXggKz0gJyonCi0gICAgICAgIGdsb2JiZWQuZXh0ZW5k
KGdsb2IocHJlZml4KSkKLSAgICAgICAgZm9yIHggaW4gc29ydGVkKGdsb2JiZWQpOgotICAgICAg
ICAgICAgaWYgb3MucGF0aC5pc2Rpcih4KToKLSAgICAgICAgICAgICAgICB4ICs9ICcvJwotICAg
ICAgICAgICAgIyBhcHBlbmQgc3RyaXBwaW5nIHRoZSBwcmVmaXggKGxpa2UgYmFzaCwgbm90IGxp
a2UgY29tcGdlbikKLSAgICAgICAgICAgIGNvbXBsZXRpb24uYXBwZW5kKHhbcHJlZml4X2Rpcjpd
KQotICAgICAgICByZXR1cm4gY29tcGxldGlvbgotCi0KLWlmIG9zLmVudmlyb24uZ2V0KCdfQVJH
Q09NUExFVEUnKToKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBhcmdjb21wbGV0ZS5jb21wbGV0
ZXJzCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICBzeXMuZXhpdCgtMSkKLSAgICBm
aWxlc2NvbXBsZXRlciA9IEZhc3RGaWxlc0NvbXBsZXRlcigpCi0KLSAgICBkZWYgdHJ5X2FyZ2Nv
bXBsZXRlKHBhcnNlcik6Ci0gICAgICAgIGFyZ2NvbXBsZXRlLmF1dG9jb21wbGV0ZShwYXJzZXIs
IGFsd2F5c19jb21wbGV0ZV9vcHRpb25zPUZhbHNlKQotZWxzZToKLSAgICBkZWYgdHJ5X2FyZ2Nv
bXBsZXRlKHBhcnNlcik6Ci0gICAgICAgIHBhc3MKLSAgICBmaWxlc2NvbXBsZXRlciA9IE5vbmUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX19pbml0X18ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4MTVjMTNiNDJjMjViZDMxNDk4OGRiYWE3ZmY5ZjRlM2QxZDJlNWMyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvX2NvZGUvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0iIiIg
cHl0aG9uIGluc3BlY3Rpb24vY29kZSBnZW5lcmF0aW9uIEFQSSAiIiIKLWZyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWZyb20g
LmNvZGUgaW1wb3J0IENvZGUgICMgbm9xYQotZnJvbSAuY29kZSBpbXBvcnQgRXhjZXB0aW9uSW5m
byAgIyBub3FhCi1mcm9tIC5jb2RlIGltcG9ydCBGcmFtZSAgIyBub3FhCi1mcm9tIC5jb2RlIGlt
cG9ydCBUcmFjZWJhY2sgICMgbm9xYQotZnJvbSAuY29kZSBpbXBvcnQgZ2V0cmF3Y29kZSAgIyBu
b3FhCi1mcm9tIC5zb3VyY2UgaW1wb3J0IFNvdXJjZSAgIyBub3FhCi1mcm9tIC5zb3VyY2UgaW1w
b3J0IGNvbXBpbGVfIGFzIGNvbXBpbGUgICMgbm9xYQotZnJvbSAuc291cmNlIGltcG9ydCBnZXRm
c2xpbmVubyAgIyBub3FhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19w
eTJ0cmFjZWJhY2sucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19weTJ0cmFjZWJhY2su
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhYWNmMGE0MjhkODgwNjkxZmUwMzBh
ODM1YmMyNThkMDc4NTA2ZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9fcHkydHJhY2ViYWNrLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotIyBjb3BpZWQgZnJvbSBweXRob24tMi43LjMncyB0
cmFjZWJhY2sucHkKLSMgQ0hBTkdFUzoKLSMgLSBzb21lX3N0ciBpcyByZXBsYWNlZCwgdHJ5aW5n
IHRvIGNyZWF0ZSB1bmljb2RlIHN0cmluZ3MKLSMKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCB0eXBlcwotCi0K
LWRlZiBmb3JtYXRfZXhjZXB0aW9uX29ubHkoZXR5cGUsIHZhbHVlKToKLSAgICAiIiJGb3JtYXQg
dGhlIGV4Y2VwdGlvbiBwYXJ0IG9mIGEgdHJhY2ViYWNrLgotCi0gICAgVGhlIGFyZ3VtZW50cyBh
cmUgdGhlIGV4Y2VwdGlvbiB0eXBlIGFuZCB2YWx1ZSBzdWNoIGFzIGdpdmVuIGJ5Ci0gICAgc3lz
Lmxhc3RfdHlwZSBhbmQgc3lzLmxhc3RfdmFsdWUuIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBsaXN0
IG9mCi0gICAgc3RyaW5ncywgZWFjaCBlbmRpbmcgaW4gYSBuZXdsaW5lLgotCi0gICAgTm9ybWFs
bHksIHRoZSBsaXN0IGNvbnRhaW5zIGEgc2luZ2xlIHN0cmluZzsgaG93ZXZlciwgZm9yCi0gICAg
U3ludGF4RXJyb3IgZXhjZXB0aW9ucywgaXQgY29udGFpbnMgc2V2ZXJhbCBsaW5lcyB0aGF0ICh3
aGVuCi0gICAgcHJpbnRlZCkgZGlzcGxheSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB3aGVy
ZSB0aGUgc3ludGF4Ci0gICAgZXJyb3Igb2NjdXJyZWQuCi0KLSAgICBUaGUgbWVzc2FnZSBpbmRp
Y2F0aW5nIHdoaWNoIGV4Y2VwdGlvbiBvY2N1cnJlZCBpcyBhbHdheXMgdGhlIGxhc3QKLSAgICBz
dHJpbmcgaW4gdGhlIGxpc3QuCi0KLSAgICAiIiIKLQotICAgICMgQW4gaW5zdGFuY2Ugc2hvdWxk
IG5vdCBoYXZlIGEgbWVhbmluZ2Z1bCB2YWx1ZSBwYXJhbWV0ZXIsIGJ1dAotICAgICMgc29tZXRp
bWVzIGRvZXMsIHBhcnRpY3VsYXJseSBmb3Igc3RyaW5nIGV4Y2VwdGlvbnMsIHN1Y2ggYXMKLSAg
ICAjID4+PiByYWlzZSBzdHJpbmcxLCBzdHJpbmcyICAjIGRlcHJlY2F0ZWQKLSAgICAjCi0gICAg
IyBDbGVhciB0aGVzZSBvdXQgZmlyc3QgYmVjYXVzZSBpc3N1YnR5cGUoc3RyaW5nMSwgU3ludGF4
RXJyb3IpCi0gICAgIyB3b3VsZCB0aHJvdyBhbm90aGVyIGV4Y2VwdGlvbiBhbmQgbWFzayB0aGUg
b3JpZ2luYWwgcHJvYmxlbS4KLSAgICBpZiAoaXNpbnN0YW5jZShldHlwZSwgQmFzZUV4Y2VwdGlv
bikgb3IKLSAgICAgICAgaXNpbnN0YW5jZShldHlwZSwgdHlwZXMuSW5zdGFuY2VUeXBlKSBvcgot
ICAgICAgICAgICAgZXR5cGUgaXMgTm9uZSBvciB0eXBlKGV0eXBlKSBpcyBzdHIpOgotICAgICAg
ICByZXR1cm4gW19mb3JtYXRfZmluYWxfZXhjX2xpbmUoZXR5cGUsIHZhbHVlKV0KLQotICAgIHN0
eXBlID0gZXR5cGUuX19uYW1lX18KLQotICAgIGlmIG5vdCBpc3N1YmNsYXNzKGV0eXBlLCBTeW50
YXhFcnJvcik6Ci0gICAgICAgIHJldHVybiBbX2Zvcm1hdF9maW5hbF9leGNfbGluZShzdHlwZSwg
dmFsdWUpXQotCi0gICAgIyBJdCB3YXMgYSBzeW50YXggZXJyb3I7IHNob3cgZXhhY3RseSB3aGVy
ZSB0aGUgcHJvYmxlbSB3YXMgZm91bmQuCi0gICAgbGluZXMgPSBbXQotICAgIHRyeToKLSAgICAg
ICAgbXNnLCAoZmlsZW5hbWUsIGxpbmVubywgb2Zmc2V0LCBiYWRsaW5lKSA9IHZhbHVlLmFyZ3MK
LSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICBwYXNzCi0gICAgZWxzZToKLSAgICAgICAg
ZmlsZW5hbWUgPSBmaWxlbmFtZSBvciAiPHN0cmluZz4iCi0gICAgICAgIGxpbmVzLmFwcGVuZCgn
ICBGaWxlICIlcyIsIGxpbmUgJWRcbicgJSAoZmlsZW5hbWUsIGxpbmVubykpCi0gICAgICAgIGlm
IGJhZGxpbmUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKGJhZGxpbmUs
IGJ5dGVzKTogICMgcHl0aG9uIDIgb25seQotICAgICAgICAgICAgICAgIGJhZGxpbmUgPSBiYWRs
aW5lLmRlY29kZSgndXRmLTgnLCAncmVwbGFjZScpCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQo
dScgICAgJXNcbicgJSBiYWRsaW5lLnN0cmlwKCkpCi0gICAgICAgICAgICBpZiBvZmZzZXQgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgY2FyZXRzcGFjZSA9IGJhZGxpbmUucnN0cmlwKCdc
bicpWzpvZmZzZXRdLmxzdHJpcCgpCi0gICAgICAgICAgICAgICAgIyBub24tc3BhY2Ugd2hpdGVz
cGFjZSAobGlrZXMgdGFicykgbXVzdCBiZSBrZXB0IGZvciBhbGlnbm1lbnQKLSAgICAgICAgICAg
ICAgICBjYXJldHNwYWNlID0gKChjLmlzc3BhY2UoKSBhbmQgYyBvciAnICcpIGZvciBjIGluIGNh
cmV0c3BhY2UpCi0gICAgICAgICAgICAgICAgIyBvbmx5IHRocmVlIHNwYWNlcyB0byBhY2NvdW50
IGZvciBvZmZzZXQxID09IHBvcyAwCi0gICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCcgICAl
c15cbicgJSAnJy5qb2luKGNhcmV0c3BhY2UpKQotICAgICAgICB2YWx1ZSA9IG1zZwotCi0gICAg
bGluZXMuYXBwZW5kKF9mb3JtYXRfZmluYWxfZXhjX2xpbmUoc3R5cGUsIHZhbHVlKSkKLSAgICBy
ZXR1cm4gbGluZXMKLQotCi1kZWYgX2Zvcm1hdF9maW5hbF9leGNfbGluZShldHlwZSwgdmFsdWUp
OgotICAgICIiIlJldHVybiBhIGxpc3Qgb2YgYSBzaW5nbGUgbGluZSAtLSBub3JtYWwgY2FzZSBm
b3IgZm9ybWF0X2V4Y2VwdGlvbl9vbmx5IiIiCi0gICAgdmFsdWVzdHIgPSBfc29tZV9zdHIodmFs
dWUpCi0gICAgaWYgdmFsdWUgaXMgTm9uZSBvciBub3QgdmFsdWVzdHI6Ci0gICAgICAgIGxpbmUg
PSAiJXNcbiIgJSBldHlwZQotICAgIGVsc2U6Ci0gICAgICAgIGxpbmUgPSAiJXM6ICVzXG4iICUg
KGV0eXBlLCB2YWx1ZXN0cikKLSAgICByZXR1cm4gbGluZQotCi0KLWRlZiBfc29tZV9zdHIodmFs
dWUpOgotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIHVuaWNvZGUodmFsdWUpCi0gICAgZXhjZXB0
IEV4Y2VwdGlvbjoKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHN0cih2YWx1ZSkK
LSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHBhc3MKLSAgICByZXR1cm4g
Jzx1bnByaW50YWJsZSAlcyBvYmplY3Q+JyAlIHR5cGUodmFsdWUpLl9fbmFtZV9fCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL2NvZGUucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L19jb2RlL2NvZGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmYjIzMmJk
NDMwZTliNGY4YWQ3NjllMzA1N2RkZWZlYzI4MWE2N2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9jb2RlLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsOTA2ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBzeXMKLWZy
b20gaW5zcGVjdCBpbXBvcnQgQ09fVkFSQVJHUywgQ09fVkFSS0VZV09SRFMKLWltcG9ydCByZQot
ZnJvbSB3ZWFrcmVmIGltcG9ydCByZWYKLWZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9QWTIs
IF9QWTMsIFBZMzUsIHNhZmVfc3RyCi0KLWltcG9ydCBweQotYnVpbHRpbl9yZXByID0gcmVwcgot
Ci1pZiBfUFkzOgotICAgIGZyb20gdHJhY2ViYWNrIGltcG9ydCBmb3JtYXRfZXhjZXB0aW9uX29u
bHkKLWVsc2U6Ci0gICAgZnJvbSAuX3B5MnRyYWNlYmFjayBpbXBvcnQgZm9ybWF0X2V4Y2VwdGlv
bl9vbmx5Ci0KLQotY2xhc3MgQ29kZShvYmplY3QpOgotICAgICIiIiB3cmFwcGVyIGFyb3VuZCBQ
eXRob24gY29kZSBvYmplY3RzICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJhd2NvZGUp
OgotICAgICAgICBpZiBub3QgaGFzYXR0cihyYXdjb2RlLCAiY29fZmlsZW5hbWUiKToKLSAgICAg
ICAgICAgIHJhd2NvZGUgPSBnZXRyYXdjb2RlKHJhd2NvZGUpCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIHNlbGYuZmlsZW5hbWUgPSByYXdjb2RlLmNvX2ZpbGVuYW1lCi0gICAgICAgICAgICBz
ZWxmLmZpcnN0bGluZW5vID0gcmF3Y29kZS5jb19maXJzdGxpbmVubyAtIDEKLSAgICAgICAgICAg
IHNlbGYubmFtZSA9IHJhd2NvZGUuY29fbmFtZQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJy
b3I6Ci0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIm5vdCBhIGNvZGUgb2JqZWN0OiAlciIg
JSAocmF3Y29kZSwpKQotICAgICAgICBzZWxmLnJhdyA9IHJhd2NvZGUKLQotICAgIGRlZiBfX2Vx
X18oc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZi5yYXcgPT0gb3RoZXIucmF3Ci0K
LSAgICBfX2hhc2hfXyA9IE5vbmUKLQotICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgotICAg
ICAgICByZXR1cm4gbm90IHNlbGYgPT0gb3RoZXIKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBw
YXRoKHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIGEgcGF0aCBvYmplY3QgcG9pbnRpbmcgdG8g
c291cmNlIGNvZGUgKG5vdGUgdGhhdCBpdAotICAgICAgICBtaWdodCBub3QgcG9pbnQgdG8gYW4g
YWN0dWFsbHkgZXhpc3RpbmcgZmlsZSkuICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBw
ID0gcHkucGF0aC5sb2NhbChzZWxmLnJhdy5jb19maWxlbmFtZSkKLSAgICAgICAgICAgICMgbWF5
YmUgZG9uJ3QgdHJ5IHRoaXMgY2hlY2tpbmcKLSAgICAgICAgICAgIGlmIG5vdCBwLmNoZWNrKCk6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigicHkucGF0aCBjaGVjayBmYWlsZWQuIikK
LSAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgICAgICAjIFhYWCBtYXliZSB0cnkgaGFy
ZGVyIGxpa2UgdGhlIHdlaXJkIGxvZ2ljCi0gICAgICAgICAgICAjIGluIHRoZSBzdGFuZGFyZCBs
aWIgW2xpbmVjYWNoZS51cGRhdGVjYWNoZV0gZG9lcz8KLSAgICAgICAgICAgIHAgPSBzZWxmLnJh
dy5jb19maWxlbmFtZQotCi0gICAgICAgIHJldHVybiBwCi0KLSAgICBAcHJvcGVydHkKLSAgICBk
ZWYgZnVsbHNvdXJjZShzZWxmKToKLSAgICAgICAgIiIiIHJldHVybiBhIF9weXRlc3QuX2NvZGUu
U291cmNlIG9iamVjdCBmb3IgdGhlIGZ1bGwgc291cmNlIGZpbGUgb2YgdGhlIGNvZGUKLSAgICAg
ICAgIiIiCi0gICAgICAgIGZyb20gX3B5dGVzdC5fY29kZSBpbXBvcnQgc291cmNlCi0gICAgICAg
IGZ1bGwsIF8gPSBzb3VyY2UuZmluZHNvdXJjZShzZWxmLnJhdykKLSAgICAgICAgcmV0dXJuIGZ1
bGwKLQotICAgIGRlZiBzb3VyY2Uoc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gYSBfcHl0ZXN0
Ll9jb2RlLlNvdXJjZSBvYmplY3QgZm9yIHRoZSBjb2RlIG9iamVjdCdzIHNvdXJjZSBvbmx5Ci0g
ICAgICAgICIiIgotICAgICAgICAjIHJldHVybiBzb3VyY2Ugb25seSBmb3IgdGhhdCBwYXJ0IG9m
IGNvZGUKLSAgICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKLSAgICAgICAgcmV0dXJuIF9weXRl
c3QuX2NvZGUuU291cmNlKHNlbGYucmF3KQotCi0gICAgZGVmIGdldGFyZ3Moc2VsZiwgdmFyPUZh
bHNlKToKLSAgICAgICAgIiIiIHJldHVybiBhIHR1cGxlIHdpdGggdGhlIGFyZ3VtZW50IG5hbWVz
IGZvciB0aGUgY29kZSBvYmplY3QKLQotICAgICAgICAgICAgaWYgJ3ZhcicgaXMgc2V0IFRydWUg
YWxzbyByZXR1cm4gdGhlIG5hbWVzIG9mIHRoZSB2YXJpYWJsZSBhbmQKLSAgICAgICAgICAgIGtl
eXdvcmQgYXJndW1lbnRzIHdoZW4gcHJlc2VudAotICAgICAgICAiIiIKLSAgICAgICAgIyBoYW5k
ZnVsbCBzaG9ydGN1dCBmb3IgZ2V0dGluZyBhcmdzCi0gICAgICAgIHJhdyA9IHNlbGYucmF3Ci0g
ICAgICAgIGFyZ2NvdW50ID0gcmF3LmNvX2FyZ2NvdW50Ci0gICAgICAgIGlmIHZhcjoKLSAgICAg
ICAgICAgIGFyZ2NvdW50ICs9IHJhdy5jb19mbGFncyAmIENPX1ZBUkFSR1MKLSAgICAgICAgICAg
IGFyZ2NvdW50ICs9IHJhdy5jb19mbGFncyAmIENPX1ZBUktFWVdPUkRTCi0gICAgICAgIHJldHVy
biByYXcuY29fdmFybmFtZXNbOmFyZ2NvdW50XQotCi0KLWNsYXNzIEZyYW1lKG9iamVjdCk6Ci0g
ICAgIiIiV3JhcHBlciBhcm91bmQgYSBQeXRob24gZnJhbWUgaG9sZGluZyBmX2xvY2FscyBhbmQg
Zl9nbG9iYWxzCi0gICAgaW4gd2hpY2ggZXhwcmVzc2lvbnMgY2FuIGJlIGV2YWx1YXRlZC4iIiIK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmcmFtZSk6Ci0gICAgICAgIHNlbGYubGluZW5vID0g
ZnJhbWUuZl9saW5lbm8gLSAxCi0gICAgICAgIHNlbGYuZl9nbG9iYWxzID0gZnJhbWUuZl9nbG9i
YWxzCi0gICAgICAgIHNlbGYuZl9sb2NhbHMgPSBmcmFtZS5mX2xvY2FscwotICAgICAgICBzZWxm
LnJhdyA9IGZyYW1lCi0gICAgICAgIHNlbGYuY29kZSA9IENvZGUoZnJhbWUuZl9jb2RlKQotCi0g
ICAgQHByb3BlcnR5Ci0gICAgZGVmIHN0YXRlbWVudChzZWxmKToKLSAgICAgICAgIiIiIHN0YXRl
bWVudCB0aGlzIGZyYW1lIGlzIGF0ICIiIgotICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQot
ICAgICAgICBpZiBzZWxmLmNvZGUuZnVsbHNvdXJjZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0
dXJuIF9weXRlc3QuX2NvZGUuU291cmNlKCIiKQotICAgICAgICByZXR1cm4gc2VsZi5jb2RlLmZ1
bGxzb3VyY2UuZ2V0c3RhdGVtZW50KHNlbGYubGluZW5vKQotCi0gICAgZGVmIGV2YWwoc2VsZiwg
Y29kZSwgKip2YXJzKToKLSAgICAgICAgIiIiIGV2YWx1YXRlICdjb2RlJyBpbiB0aGUgZnJhbWUK
LQotICAgICAgICAgICAgJ3ZhcnMnIGFyZSBvcHRpb25hbCBhZGRpdGlvbmFsIGxvY2FsIHZhcmlh
YmxlcwotCi0gICAgICAgICAgICByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRpb24K
LSAgICAgICAgIiIiCi0gICAgICAgIGZfbG9jYWxzID0gc2VsZi5mX2xvY2Fscy5jb3B5KCkKLSAg
ICAgICAgZl9sb2NhbHMudXBkYXRlKHZhcnMpCi0gICAgICAgIHJldHVybiBldmFsKGNvZGUsIHNl
bGYuZl9nbG9iYWxzLCBmX2xvY2FscykKLQotICAgIGRlZiBleGVjXyhzZWxmLCBjb2RlLCAqKnZh
cnMpOgotICAgICAgICAiIiIgZXhlYyAnY29kZScgaW4gdGhlIGZyYW1lCi0KLSAgICAgICAgICAg
ICd2YXJzJyBhcmUgb3B0aW9uYTsgYWRkaXRpb25hbCBsb2NhbCB2YXJpYWJsZXMKLSAgICAgICAg
IiIiCi0gICAgICAgIGZfbG9jYWxzID0gc2VsZi5mX2xvY2Fscy5jb3B5KCkKLSAgICAgICAgZl9s
b2NhbHMudXBkYXRlKHZhcnMpCi0gICAgICAgIHB5LmJ1aWx0aW4uZXhlY18oY29kZSwgc2VsZi5m
X2dsb2JhbHMsIGZfbG9jYWxzKQotCi0gICAgZGVmIHJlcHIoc2VsZiwgb2JqZWN0KToKLSAgICAg
ICAgIiIiIHJldHVybiBhICdzYWZlJyAobm9uLXJlY3Vyc2l2ZSwgb25lLWxpbmUpIHN0cmluZyBy
ZXByIGZvciAnb2JqZWN0JwotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHB5LmlvLnNhZmVy
ZXByKG9iamVjdCkKLQotICAgIGRlZiBpc190cnVlKHNlbGYsIG9iamVjdCk6Ci0gICAgICAgIHJl
dHVybiBvYmplY3QKLQotICAgIGRlZiBnZXRhcmdzKHNlbGYsIHZhcj1GYWxzZSk6Ci0gICAgICAg
ICIiIiByZXR1cm4gYSBsaXN0IG9mIHR1cGxlcyAobmFtZSwgdmFsdWUpIGZvciBhbGwgYXJndW1l
bnRzCi0KLSAgICAgICAgICAgIGlmICd2YXInIGlzIHNldCBUcnVlIGFsc28gaW5jbHVkZSB0aGUg
dmFyaWFibGUgYW5kIGtleXdvcmQKLSAgICAgICAgICAgIGFyZ3VtZW50cyB3aGVuIHByZXNlbnQK
LSAgICAgICAgIiIiCi0gICAgICAgIHJldHZhbCA9IFtdCi0gICAgICAgIGZvciBhcmcgaW4gc2Vs
Zi5jb2RlLmdldGFyZ3ModmFyKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBy
ZXR2YWwuYXBwZW5kKChhcmcsIHNlbGYuZl9sb2NhbHNbYXJnXSkpCi0gICAgICAgICAgICBleGNl
cHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcyAgICAgIyB0aGlzIGNhbiBvY2N1ciB3
aGVuIHVzaW5nIFBzeWNvCi0gICAgICAgIHJldHVybiByZXR2YWwKLQotCi1jbGFzcyBUcmFjZWJh
Y2tFbnRyeShvYmplY3QpOgotICAgICIiIiBhIHNpbmdsZSBlbnRyeSBpbiBhIHRyYWNlYmFjayAi
IiIKLQotICAgIF9yZXByX3N0eWxlID0gTm9uZQotICAgIGV4cHJpbmZvID0gTm9uZQotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHJhd2VudHJ5LCBleGNpbmZvPU5vbmUpOgotICAgICAgICBzZWxm
Ll9leGNpbmZvID0gZXhjaW5mbwotICAgICAgICBzZWxmLl9yYXdlbnRyeSA9IHJhd2VudHJ5Ci0g
ICAgICAgIHNlbGYubGluZW5vID0gcmF3ZW50cnkudGJfbGluZW5vIC0gMQotCi0gICAgZGVmIHNl
dF9yZXByX3N0eWxlKHNlbGYsIG1vZGUpOgotICAgICAgICBhc3NlcnQgbW9kZSBpbiAoInNob3J0
IiwgImxvbmciKQotICAgICAgICBzZWxmLl9yZXByX3N0eWxlID0gbW9kZQotCi0gICAgQHByb3Bl
cnR5Ci0gICAgZGVmIGZyYW1lKHNlbGYpOgotICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQot
ICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5GcmFtZShzZWxmLl9yYXdlbnRyeS50Yl9mcmFt
ZSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiByZWxsaW5lKHNlbGYpOgotICAgICAgICByZXR1
cm4gc2VsZi5saW5lbm8gLSBzZWxmLmZyYW1lLmNvZGUuZmlyc3RsaW5lbm8KLQotICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8VHJhY2ViYWNrRW50cnkgJXM6JWQ+IiAl
IChzZWxmLmZyYW1lLmNvZGUucGF0aCwgc2VsZi5saW5lbm8gKyAxKQotCi0gICAgQHByb3BlcnR5
Ci0gICAgZGVmIHN0YXRlbWVudChzZWxmKToKLSAgICAgICAgIiIiIF9weXRlc3QuX2NvZGUuU291
cmNlIG9iamVjdCBmb3IgdGhlIGN1cnJlbnQgc3RhdGVtZW50ICIiIgotICAgICAgICBzb3VyY2Ug
PSBzZWxmLmZyYW1lLmNvZGUuZnVsbHNvdXJjZQotICAgICAgICByZXR1cm4gc291cmNlLmdldHN0
YXRlbWVudChzZWxmLmxpbmVubykKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBwYXRoKHNlbGYp
OgotICAgICAgICAiIiIgcGF0aCB0byB0aGUgc291cmNlIGNvZGUgIiIiCi0gICAgICAgIHJldHVy
biBzZWxmLmZyYW1lLmNvZGUucGF0aAotCi0gICAgZGVmIGdldGxvY2FscyhzZWxmKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuZnJhbWUuZl9sb2NhbHMKLSAgICBsb2NhbHMgPSBwcm9wZXJ0eShnZXRs
b2NhbHMsIE5vbmUsIE5vbmUsICJsb2NhbHMgb2YgdW5kZXJsYXlpbmcgZnJhbWUiKQotCi0gICAg
ZGVmIGdldGZpcnN0bGluZXNvdXJjZShzZWxmKToKLSAgICAgICAgIyBvbiBKeXRob24gdGhpcyBm
aXJzdGxpbmVubyBjYW4gYmUgLTEgYXBwYXJlbnRseQotICAgICAgICByZXR1cm4gbWF4KHNlbGYu
ZnJhbWUuY29kZS5maXJzdGxpbmVubywgMCkKLQotICAgIGRlZiBnZXRzb3VyY2Uoc2VsZiwgYXN0
Y2FjaGU9Tm9uZSk6Ci0gICAgICAgICIiIiByZXR1cm4gZmFpbGluZyBzb3VyY2UgY29kZS4gIiIi
Ci0gICAgICAgICMgd2UgdXNlIHRoZSBwYXNzZWQgaW4gYXN0Y2FjaGUgdG8gbm90IHJlcGFyc2Ug
YXN0dHJlZXMKLSAgICAgICAgIyB3aXRoaW4gZXhjZXB0aW9uIGluZm8gcHJpbnRpbmcKLSAgICAg
ICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZ2V0c3RhdGVtZW50cmFuZ2VfYXN0
Ci0gICAgICAgIHNvdXJjZSA9IHNlbGYuZnJhbWUuY29kZS5mdWxsc291cmNlCi0gICAgICAgIGlm
IHNvdXJjZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAga2V5ID0g
YXN0bm9kZSA9IE5vbmUKLSAgICAgICAgaWYgYXN0Y2FjaGUgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICBrZXkgPSBzZWxmLmZyYW1lLmNvZGUucGF0aAotICAgICAgICAgICAgaWYga2V5IGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgICAgIGFzdG5vZGUgPSBhc3RjYWNoZS5nZXQoa2V5LCBOb25l
KQotICAgICAgICBzdGFydCA9IHNlbGYuZ2V0Zmlyc3RsaW5lc291cmNlKCkKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgYXN0bm9kZSwgXywgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KHNl
bGYubGluZW5vLCBzb3VyY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXN0bm9kZT1hc3Rub2RlKQotICAgICAgICBleGNlcHQgU3ludGF4RXJy
b3I6Ci0gICAgICAgICAgICBlbmQgPSBzZWxmLmxpbmVubyArIDEKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGlmIGtleSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBhc3RjYWNoZVtr
ZXldID0gYXN0bm9kZQotICAgICAgICByZXR1cm4gc291cmNlW3N0YXJ0OmVuZF0KLQotICAgIHNv
dXJjZSA9IHByb3BlcnR5KGdldHNvdXJjZSkKLQotICAgIGRlZiBpc2hpZGRlbihzZWxmKToKLSAg
ICAgICAgIiIiIHJldHVybiBUcnVlIGlmIHRoZSBjdXJyZW50IGZyYW1lIGhhcyBhIHZhciBfX3Ry
YWNlYmFja2hpZGVfXwotICAgICAgICAgICAgcmVzb2x2aW5nIHRvIFRydWUKLQotICAgICAgICAg
ICAgSWYgX190cmFjZWJhY2toaWRlX18gaXMgYSBjYWxsYWJsZSwgaXQgZ2V0cyBjYWxsZWQgd2l0
aCB0aGUKLSAgICAgICAgICAgIEV4Y2VwdGlvbkluZm8gaW5zdGFuY2UgYW5kIGNhbiBkZWNpZGUg
d2hldGhlciB0byBoaWRlIHRoZSB0cmFjZWJhY2suCi0KLSAgICAgICAgICAgIG1vc3RseSBmb3Ig
aW50ZXJuYWwgdXNlCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0Ymgg
PSBzZWxmLmZyYW1lLmZfbG9jYWxzWydfX3RyYWNlYmFja2hpZGVfXyddCi0gICAgICAgIGV4Y2Vw
dCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB0YmggPSBzZWxm
LmZyYW1lLmZfZ2xvYmFsc1snX190cmFjZWJhY2toaWRlX18nXQotICAgICAgICAgICAgZXhjZXB0
IEtleUVycm9yOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGlmIGNh
bGxhYmxlKHRiaCk6Ci0gICAgICAgICAgICByZXR1cm4gdGJoKE5vbmUgaWYgc2VsZi5fZXhjaW5m
byBpcyBOb25lIGVsc2Ugc2VsZi5fZXhjaW5mbygpKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgcmV0dXJuIHRiaAotCi0gICAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGZuID0gc3RyKHNlbGYucGF0aCkKLSAgICAgICAgZXhjZXB0IHB5LmVycm9yLkVy
cm9yOgotICAgICAgICAgICAgZm4gPSAnPz8/JwotICAgICAgICBuYW1lID0gc2VsZi5mcmFtZS5j
b2RlLm5hbWUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbGluZSA9IHN0cihzZWxmLnN0YXRl
bWVudCkubHN0cmlwKCkKLSAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAg
ICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgICAgICBsaW5lID0g
Ij8/PyIKLSAgICAgICAgcmV0dXJuICIgIEZpbGUgJXI6JWQgaW4gJXNcbiAgJXNcbiIgJSAoZm4s
IHNlbGYubGluZW5vICsgMSwgbmFtZSwgbGluZSkKLQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5mcmFtZS5jb2RlLnJhdy5jb19uYW1lCi0gICAgbmFtZSA9IHByb3Bl
cnR5KG5hbWUsIE5vbmUsIE5vbmUsICJjb19uYW1lIG9mIHVuZGVybGF5aW5nIGNvZGUiKQotCi0K
LWNsYXNzIFRyYWNlYmFjayhsaXN0KToKLSAgICAiIiIgVHJhY2ViYWNrIG9iamVjdHMgZW5jYXBz
dWxhdGUgYW5kIG9mZmVyIGhpZ2hlciBsZXZlbAotICAgICAgICBhY2Nlc3MgdG8gVHJhY2ViYWNr
IGVudHJpZXMuCi0gICAgIiIiCi0gICAgRW50cnkgPSBUcmFjZWJhY2tFbnRyeQotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIHRiLCBleGNpbmZvPU5vbmUpOgotICAgICAgICAiIiIgaW5pdGlhbGl6
ZSBmcm9tIGdpdmVuIHB5dGhvbiB0cmFjZWJhY2sgb2JqZWN0IGFuZCBFeGNlcHRpb25JbmZvICIi
IgotICAgICAgICBzZWxmLl9leGNpbmZvID0gZXhjaW5mbwotICAgICAgICBpZiBoYXNhdHRyKHRi
LCAndGJfbmV4dCcpOgotICAgICAgICAgICAgZGVmIGYoY3VyKToKLSAgICAgICAgICAgICAgICB3
aGlsZSBjdXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuRW50
cnkoY3VyLCBleGNpbmZvPWV4Y2luZm8pCi0gICAgICAgICAgICAgICAgICAgIGN1ciA9IGN1ci50
Yl9uZXh0Ci0gICAgICAgICAgICBsaXN0Ll9faW5pdF9fKHNlbGYsIGYodGIpKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgbGlzdC5fX2luaXRfXyhzZWxmLCB0YikKLQotICAgIGRlZiBjdXQo
c2VsZiwgcGF0aD1Ob25lLCBsaW5lbm89Tm9uZSwgZmlyc3RsaW5lbm89Tm9uZSwgZXhjbHVkZXBh
dGg9Tm9uZSk6Ci0gICAgICAgICIiIiByZXR1cm4gYSBUcmFjZWJhY2sgaW5zdGFuY2Ugd3JhcHBp
bmcgcGFydCBvZiB0aGlzIFRyYWNlYmFjawotCi0gICAgICAgICAgICBieSBwcm92ZGluZyBhbnkg
Y29tYmluYXRpb24gb2YgcGF0aCwgbGluZW5vIGFuZCBmaXJzdGxpbmVubywgdGhlCi0gICAgICAg
ICAgICBmaXJzdCBmcmFtZSB0byBzdGFydCB0aGUgdG8tYmUtcmV0dXJuZWQgdHJhY2ViYWNrIGlz
IGRldGVybWluZWQKLQotICAgICAgICAgICAgdGhpcyBhbGxvd3MgY3V0dGluZyB0aGUgZmlyc3Qg
cGFydCBvZiBhIFRyYWNlYmFjayBpbnN0YW5jZSBlLmcuCi0gICAgICAgICAgICBmb3IgZm9ybWF0
dGluZyByZWFzb25zIChyZW1vdmluZyBzb21lIHVuaW50ZXJlc3RpbmcgYml0cyB0aGF0IGRlYWwK
LSAgICAgICAgICAgIHdpdGggaGFuZGxpbmcgb2YgdGhlIGV4Y2VwdGlvbi90cmFjZWJhY2spCi0g
ICAgICAgICIiIgotICAgICAgICBmb3IgeCBpbiBzZWxmOgotICAgICAgICAgICAgY29kZSA9IHgu
ZnJhbWUuY29kZQotICAgICAgICAgICAgY29kZXBhdGggPSBjb2RlLnBhdGgKLSAgICAgICAgICAg
IGlmICgocGF0aCBpcyBOb25lIG9yIGNvZGVwYXRoID09IHBhdGgpIGFuZAotICAgICAgICAgICAg
ICAgIChleGNsdWRlcGF0aCBpcyBOb25lIG9yIG5vdCBoYXNhdHRyKGNvZGVwYXRoLCAncmVsdG8n
KSBvcgotICAgICAgICAgICAgICAgICBub3QgY29kZXBhdGgucmVsdG8oZXhjbHVkZXBhdGgpKSBh
bmQKLSAgICAgICAgICAgICAgICAobGluZW5vIGlzIE5vbmUgb3IgeC5saW5lbm8gPT0gbGluZW5v
KSBhbmQKLSAgICAgICAgICAgICAgICAgICAgKGZpcnN0bGluZW5vIGlzIE5vbmUgb3IgeC5mcmFt
ZS5jb2RlLmZpcnN0bGluZW5vID09IGZpcnN0bGluZW5vKSk6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIFRyYWNlYmFjayh4Ll9yYXdlbnRyeSwgc2VsZi5fZXhjaW5mbykKLSAgICAgICAgcmV0dXJu
IHNlbGYKLQotICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgotICAgICAgICB2YWwgPSBz
dXBlcihUcmFjZWJhY2ssIHNlbGYpLl9fZ2V0aXRlbV9fKGtleSkKLSAgICAgICAgaWYgaXNpbnN0
YW5jZShrZXksIHR5cGUoc2xpY2UoMCkpKToKLSAgICAgICAgICAgIHZhbCA9IHNlbGYuX19jbGFz
c19fKHZhbCkKLSAgICAgICAgcmV0dXJuIHZhbAotCi0gICAgZGVmIGZpbHRlcihzZWxmLCBmbj1s
YW1iZGEgeDogbm90IHguaXNoaWRkZW4oKSk6Ci0gICAgICAgICIiIiByZXR1cm4gYSBUcmFjZWJh
Y2sgaW5zdGFuY2Ugd2l0aCBjZXJ0YWluIGl0ZW1zIHJlbW92ZWQKLQotICAgICAgICAgICAgZm4g
aXMgYSBmdW5jdGlvbiB0aGF0IGdldHMgYSBzaW5nbGUgYXJndW1lbnQsIGEgVHJhY2ViYWNrRW50
cnkKLSAgICAgICAgICAgIGluc3RhbmNlLCBhbmQgc2hvdWxkIHJldHVybiBUcnVlIHdoZW4gdGhl
IGl0ZW0gc2hvdWxkIGJlIGFkZGVkCi0gICAgICAgICAgICB0byB0aGUgVHJhY2ViYWNrLCBGYWxz
ZSB3aGVuIG5vdAotCi0gICAgICAgICAgICBieSBkZWZhdWx0IHRoaXMgcmVtb3ZlcyBhbGwgdGhl
IFRyYWNlYmFja0VudHJpZXMgd2hpY2ggYXJlIGhpZGRlbgotICAgICAgICAgICAgKHNlZSBpc2hp
ZGRlbigpIGFib3ZlKQotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIFRyYWNlYmFjayhmaWx0
ZXIoZm4sIHNlbGYpLCBzZWxmLl9leGNpbmZvKQotCi0gICAgZGVmIGdldGNyYXNoZW50cnkoc2Vs
Zik6Ci0gICAgICAgICIiIiByZXR1cm4gbGFzdCBub24taGlkZGVuIHRyYWNlYmFjayBlbnRyeSB0
aGF0IGxlYWQKLSAgICAgICAgdG8gdGhlIGV4Y2VwdGlvbiBvZiBhIHRyYWNlYmFjay4KLSAgICAg
ICAgIiIiCi0gICAgICAgIGZvciBpIGluIHJhbmdlKC0xLCAtbGVuKHNlbGYpIC0gMSwgLTEpOgot
ICAgICAgICAgICAgZW50cnkgPSBzZWxmW2ldCi0gICAgICAgICAgICBpZiBub3QgZW50cnkuaXNo
aWRkZW4oKToKLSAgICAgICAgICAgICAgICByZXR1cm4gZW50cnkKLSAgICAgICAgcmV0dXJuIHNl
bGZbLTFdCi0KLSAgICBkZWYgcmVjdXJzaW9uaW5kZXgoc2VsZik6Ci0gICAgICAgICIiIiByZXR1
cm4gdGhlIGluZGV4IG9mIHRoZSBmcmFtZS9UcmFjZWJhY2tFbnRyeSB3aGVyZSByZWN1cnNpb24K
LSAgICAgICAgICAgIG9yaWdpbmF0ZXMgaWYgYXBwcm9wcmlhdGUsIE5vbmUgaWYgbm8gcmVjdXJz
aW9uIG9jY3VycmVkCi0gICAgICAgICIiIgotICAgICAgICBjYWNoZSA9IHt9Ci0gICAgICAgIGZv
ciBpLCBlbnRyeSBpbiBlbnVtZXJhdGUoc2VsZik6Ci0gICAgICAgICAgICAjIGlkIGZvciB0aGUg
Y29kZS5yYXcgaXMgbmVlZGVkIHRvIHdvcmsgYXJvdW5kCi0gICAgICAgICAgICAjIHRoZSBzdHJh
bmdlIG1ldGFwcm9ncmFtbWluZyBpbiB0aGUgZGVjb3JhdG9yIGxpYiBmcm9tIHB5cGkKLSAgICAg
ICAgICAgICMgd2hpY2ggZ2VuZXJhdGVzIGNvZGUgb2JqZWN0cyB0aGF0IGhhdmUgaGFzaC92YWx1
ZSBlcXVhbGl0eQotICAgICAgICAgICAgIyBYWFggbmVlZHMgYSB0ZXN0Ci0gICAgICAgICAgICBr
ZXkgPSBlbnRyeS5mcmFtZS5jb2RlLnBhdGgsIGlkKGVudHJ5LmZyYW1lLmNvZGUucmF3KSwgZW50
cnkubGluZW5vCi0gICAgICAgICAgICAjIHByaW50ICJjaGVja2luZyBmb3IgcmVjdXJzaW9uIGF0
Iiwga2V5Ci0gICAgICAgICAgICB2YWx1ZXMgPSBjYWNoZS5zZXRkZWZhdWx0KGtleSwgW10pCi0g
ICAgICAgICAgICBpZiB2YWx1ZXM6Ci0gICAgICAgICAgICAgICAgZiA9IGVudHJ5LmZyYW1lCi0g
ICAgICAgICAgICAgICAgbG9jID0gZi5mX2xvY2FscwotICAgICAgICAgICAgICAgIGZvciBvdGhl
cmxvYyBpbiB2YWx1ZXM6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGYuaXNfdHJ1ZShmLmV2YWwo
Y29fZXF1YWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19yZWN1
cnNpb25jYWNoZV9sb2NhbHNfMT1sb2MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgX19yZWN1cnNpb25jYWNoZV9sb2NhbHNfMj1vdGhlcmxvYykpOgotICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGkKLSAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoZW50cnku
ZnJhbWUuZl9sb2NhbHMpCi0gICAgICAgIHJldHVybiBOb25lCi0KLQotY29fZXF1YWwgPSBjb21w
aWxlKCdfX3JlY3Vyc2lvbmNhY2hlX2xvY2Fsc18xID09IF9fcmVjdXJzaW9uY2FjaGVfbG9jYWxz
XzInLAotICAgICAgICAgICAgICAgICAgICc/JywgJ2V2YWwnKQotCi0KLWNsYXNzIEV4Y2VwdGlv
bkluZm8ob2JqZWN0KToKLSAgICAiIiIgd3JhcHMgc3lzLmV4Y19pbmZvKCkgb2JqZWN0cyBhbmQg
b2ZmZXJzCi0gICAgICAgIGhlbHAgZm9yIG5hdmlnYXRpbmcgdGhlIHRyYWNlYmFjay4KLSAgICAi
IiIKLSAgICBfc3RyaXB0ZXh0ID0gJycKLSAgICBfYXNzZXJ0X3N0YXJ0X3JlcHIgPSAiQXNzZXJ0
aW9uRXJyb3IodVwnYXNzZXJ0ICIgaWYgX1BZMiBlbHNlICJBc3NlcnRpb25FcnJvcihcJ2Fzc2Vy
dCAiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgdHVwPU5vbmUsIGV4cHJpbmZvPU5vbmUpOgot
ICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQotICAgICAgICBpZiB0dXAgaXMgTm9uZToKLSAg
ICAgICAgICAgIHR1cCA9IHN5cy5leGNfaW5mbygpCi0gICAgICAgICAgICBpZiBleHByaW5mbyBp
cyBOb25lIGFuZCBpc2luc3RhbmNlKHR1cFsxXSwgQXNzZXJ0aW9uRXJyb3IpOgotICAgICAgICAg
ICAgICAgIGV4cHJpbmZvID0gZ2V0YXR0cih0dXBbMV0sICdtc2cnLCBOb25lKQotICAgICAgICAg
ICAgICAgIGlmIGV4cHJpbmZvIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGV4cHJpbmZv
ID0gcHkuaW8uc2FmZXJlcHIodHVwWzFdKQotICAgICAgICAgICAgICAgIGlmIGV4cHJpbmZvIGFu
ZCBleHByaW5mby5zdGFydHN3aXRoKHNlbGYuX2Fzc2VydF9zdGFydF9yZXByKToKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fc3RyaXB0ZXh0ID0gJ0Fzc2VydGlvbkVycm9yOiAnCi0gICAgICAg
IHNlbGYuX2V4Y2luZm8gPSB0dXAKLSAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiBjbGFzcwotICAg
ICAgICBzZWxmLnR5cGUgPSB0dXBbMF0KLSAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiBpbnN0YW5j
ZQotICAgICAgICBzZWxmLnZhbHVlID0gdHVwWzFdCi0gICAgICAgICM6IHRoZSBleGNlcHRpb24g
cmF3IHRyYWNlYmFjawotICAgICAgICBzZWxmLnRiID0gdHVwWzJdCi0gICAgICAgICM6IHRoZSBl
eGNlcHRpb24gdHlwZSBuYW1lCi0gICAgICAgIHNlbGYudHlwZW5hbWUgPSBzZWxmLnR5cGUuX19u
YW1lX18KLSAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiB0cmFjZWJhY2sgKF9weXRlc3QuX2NvZGUu
VHJhY2ViYWNrIGluc3RhbmNlKQotICAgICAgICBzZWxmLnRyYWNlYmFjayA9IF9weXRlc3QuX2Nv
ZGUuVHJhY2ViYWNrKHNlbGYudGIsIGV4Y2luZm89cmVmKHNlbGYpKQotCi0gICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxFeGNlcHRpb25JbmZvICVzIHRibGVuPSVkPiIg
JSAoc2VsZi50eXBlbmFtZSwgbGVuKHNlbGYudHJhY2ViYWNrKSkKLQotICAgIGRlZiBleGNvbmx5
KHNlbGYsIHRyeXNob3J0PUZhbHNlKToKLSAgICAgICAgIiIiIHJldHVybiB0aGUgZXhjZXB0aW9u
IGFzIGEgc3RyaW5nCi0KLSAgICAgICAgICAgIHdoZW4gJ3RyeXNob3J0JyByZXNvbHZlcyB0byBU
cnVlLCBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBhCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLl9B
c3NlcnRpb25FcnJvciwgb25seSB0aGUgYWN0dWFsIGV4Y2VwdGlvbiBwYXJ0IG9mCi0gICAgICAg
ICAgICB0aGUgZXhjZXB0aW9uIHJlcHJlc2VudGF0aW9uIGlzIHJldHVybmVkIChzbyAnQXNzZXJ0
aW9uRXJyb3I6ICcgaXMKLSAgICAgICAgICAgIHJlbW92ZWQgZnJvbSB0aGUgYmVnaW5uaW5nKQot
ICAgICAgICAiIiIKLSAgICAgICAgbGluZXMgPSBmb3JtYXRfZXhjZXB0aW9uX29ubHkoc2VsZi50
eXBlLCBzZWxmLnZhbHVlKQotICAgICAgICB0ZXh0ID0gJycuam9pbihsaW5lcykKLSAgICAgICAg
dGV4dCA9IHRleHQucnN0cmlwKCkKLSAgICAgICAgaWYgdHJ5c2hvcnQ6Ci0gICAgICAgICAgICBp
ZiB0ZXh0LnN0YXJ0c3dpdGgoc2VsZi5fc3RyaXB0ZXh0KToKLSAgICAgICAgICAgICAgICB0ZXh0
ID0gdGV4dFtsZW4oc2VsZi5fc3RyaXB0ZXh0KTpdCi0gICAgICAgIHJldHVybiB0ZXh0Ci0KLSAg
ICBkZWYgZXJyaXNpbnN0YW5jZShzZWxmLCBleGMpOgotICAgICAgICAiIiIgcmV0dXJuIFRydWUg
aWYgdGhlIGV4Y2VwdGlvbiBpcyBhbiBpbnN0YW5jZSBvZiBleGMgIiIiCi0gICAgICAgIHJldHVy
biBpc2luc3RhbmNlKHNlbGYudmFsdWUsIGV4YykKLQotICAgIGRlZiBfZ2V0cmVwcmNyYXNoKHNl
bGYpOgotICAgICAgICBleGNvbmx5ID0gc2VsZi5leGNvbmx5KHRyeXNob3J0PVRydWUpCi0gICAg
ICAgIGVudHJ5ID0gc2VsZi50cmFjZWJhY2suZ2V0Y3Jhc2hlbnRyeSgpCi0gICAgICAgIHBhdGgs
IGxpbmVubyA9IGVudHJ5LmZyYW1lLmNvZGUucmF3LmNvX2ZpbGVuYW1lLCBlbnRyeS5saW5lbm8K
LSAgICAgICAgcmV0dXJuIFJlcHJGaWxlTG9jYXRpb24ocGF0aCwgbGluZW5vICsgMSwgZXhjb25s
eSkKLQotICAgIGRlZiBnZXRyZXByKHNlbGYsIHNob3dsb2NhbHM9RmFsc2UsIHN0eWxlPSJsb25n
IiwKLSAgICAgICAgICAgICAgICBhYnNwYXRoPUZhbHNlLCB0YmZpbHRlcj1UcnVlLCBmdW5jYXJn
cz1GYWxzZSk6Ci0gICAgICAgICIiIiByZXR1cm4gc3RyKClhYmxlIHJlcHJlc2VudGF0aW9uIG9m
IHRoaXMgZXhjZXB0aW9uIGluZm8uCi0gICAgICAgICAgICBzaG93bG9jYWxzOiBzaG93IGxvY2Fs
cyBwZXIgdHJhY2ViYWNrIGVudHJ5Ci0gICAgICAgICAgICBzdHlsZTogbG9uZ3xzaG9ydHxub3xu
YXRpdmUgdHJhY2ViYWNrIHN0eWxlCi0gICAgICAgICAgICB0YmZpbHRlcjogaGlkZSBlbnRyaWVz
ICh3aGVyZSBfX3RyYWNlYmFja2hpZGVfXyBpcyB0cnVlKQotCi0gICAgICAgICAgICBpbiBjYXNl
IG9mIHN0eWxlPT1uYXRpdmUsIHRiZmlsdGVyIGFuZCBzaG93bG9jYWxzIGlzIGlnbm9yZWQuCi0g
ICAgICAgICIiIgotICAgICAgICBpZiBzdHlsZSA9PSAnbmF0aXZlJzoKLSAgICAgICAgICAgIHJl
dHVybiBSZXByRXhjZXB0aW9uSW5mbyhSZXByVHJhY2ViYWNrTmF0aXZlKAotICAgICAgICAgICAg
ICAgIHB5LnN0ZC50cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi50eXBlLAotICAgICAgICAgICAgICAgICAgICBzZWxmLnZhbHVlLAotICAgICAgICAg
ICAgICAgICAgICBzZWxmLnRyYWNlYmFja1swXS5fcmF3ZW50cnksCi0gICAgICAgICAgICAgICAg
KSksIHNlbGYuX2dldHJlcHJjcmFzaCgpKQotCi0gICAgICAgIGZtdCA9IEZvcm1hdHRlZEV4Y2lu
Zm8oc2hvd2xvY2Fscz1zaG93bG9jYWxzLCBzdHlsZT1zdHlsZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhYnNwYXRoPWFic3BhdGgsIHRiZmlsdGVyPXRiZmlsdGVyLCBmdW5jYXJn
cz1mdW5jYXJncykKLSAgICAgICAgcmV0dXJuIGZtdC5yZXByX2V4Y2luZm8oc2VsZikKLQotICAg
IGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAgICBlbnRyeSA9IHNlbGYudHJhY2ViYWNrWy0xXQot
ICAgICAgICBsb2MgPSBSZXByRmlsZUxvY2F0aW9uKGVudHJ5LnBhdGgsIGVudHJ5LmxpbmVubyAr
IDEsIHNlbGYuZXhjb25seSgpKQotICAgICAgICByZXR1cm4gc3RyKGxvYykKLQotICAgIGRlZiBf
X3VuaWNvZGVfXyhzZWxmKToKLSAgICAgICAgZW50cnkgPSBzZWxmLnRyYWNlYmFja1stMV0KLSAg
ICAgICAgbG9jID0gUmVwckZpbGVMb2NhdGlvbihlbnRyeS5wYXRoLCBlbnRyeS5saW5lbm8gKyAx
LCBzZWxmLmV4Y29ubHkoKSkKLSAgICAgICAgcmV0dXJuIHVuaWNvZGUobG9jKQotCi0gICAgZGVm
IG1hdGNoKHNlbGYsIHJlZ2V4cCk6Ci0gICAgICAgICIiIgotICAgICAgICBNYXRjaCB0aGUgcmVn
dWxhciBleHByZXNzaW9uICdyZWdleHAnIG9uIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YK
LSAgICAgICAgdGhlIGV4Y2VwdGlvbi4gSWYgaXQgbWF0Y2hlcyB0aGVuIFRydWUgaXMgcmV0dXJu
ZWQgKHNvIHRoYXQgaXQgaXMKLSAgICAgICAgcG9zc2libGUgdG8gd3JpdGUgJ2Fzc2VydCBleGNp
bmZvLm1hdGNoKCknKS4gSWYgaXQgZG9lc24ndCBtYXRjaCBhbgotICAgICAgICBBc3NlcnRpb25F
cnJvciBpcyByYWlzZWQuCi0gICAgICAgICIiIgotICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9
IFRydWUKLSAgICAgICAgaWYgbm90IHJlLnNlYXJjaChyZWdleHAsIHN0cihzZWxmLnZhbHVlKSk6
Ci0gICAgICAgICAgICBhc3NlcnQgMCwgIlBhdHRlcm4gJ3swIXN9JyBub3QgZm91bmQgaW4gJ3sx
IXN9JyIuZm9ybWF0KAotICAgICAgICAgICAgICAgIHJlZ2V4cCwgc2VsZi52YWx1ZSkKLSAgICAg
ICAgcmV0dXJuIFRydWUKLQotCi1jbGFzcyBGb3JtYXR0ZWRFeGNpbmZvKG9iamVjdCk6Ci0gICAg
IiIiIHByZXNlbnRpbmcgaW5mb3JtYXRpb24gYWJvdXQgZmFpbGluZyBGdW5jdGlvbnMgYW5kIEdl
bmVyYXRvcnMuICIiIgotICAgICMgZm9yIHRyYWNlYmFjayBlbnRyaWVzCi0gICAgZmxvd19tYXJr
ZXIgPSAiPiIKLSAgICBmYWlsX21hcmtlciA9ICJFIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHNob3dsb2NhbHM9RmFsc2UsIHN0eWxlPSJsb25nIiwgYWJzcGF0aD1UcnVlLCB0YmZpbHRlcj1U
cnVlLCBmdW5jYXJncz1GYWxzZSk6Ci0gICAgICAgIHNlbGYuc2hvd2xvY2FscyA9IHNob3dsb2Nh
bHMKLSAgICAgICAgc2VsZi5zdHlsZSA9IHN0eWxlCi0gICAgICAgIHNlbGYudGJmaWx0ZXIgPSB0
YmZpbHRlcgotICAgICAgICBzZWxmLmZ1bmNhcmdzID0gZnVuY2FyZ3MKLSAgICAgICAgc2VsZi5h
YnNwYXRoID0gYWJzcGF0aAotICAgICAgICBzZWxmLmFzdGNhY2hlID0ge30KLQotICAgIGRlZiBf
Z2V0aW5kZW50KHNlbGYsIHNvdXJjZSk6Ci0gICAgICAgICMgZmlndXJlIG91dCBpbmRlbnQgZm9y
IGdpdmVuIHNvdXJjZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzID0gc3RyKHNvdXJjZS5n
ZXRzdGF0ZW1lbnQobGVuKHNvdXJjZSkgLSAxKSkKLSAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50
ZXJydXB0OgotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcyA9IHN0cihzb3VyY2VbLTFdKQotICAgICAg
ICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgICAgIHJhaXNlCi0g
ICAgICAgICAgICBleGNlcHQ6ICAjIG5vcWEKLSAgICAgICAgICAgICAgICByZXR1cm4gMAotICAg
ICAgICByZXR1cm4gNCArIChsZW4ocykgLSBsZW4ocy5sc3RyaXAoKSkpCi0KLSAgICBkZWYgX2dl
dGVudHJ5c291cmNlKHNlbGYsIGVudHJ5KToKLSAgICAgICAgc291cmNlID0gZW50cnkuZ2V0c291
cmNlKHNlbGYuYXN0Y2FjaGUpCi0gICAgICAgIGlmIHNvdXJjZSBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgIHNvdXJjZSA9IHNvdXJjZS5kZWluZGVudCgpCi0gICAgICAgIHJldHVybiBzb3VyY2UK
LQotICAgIGRlZiBfc2FmZXJlcHIoc2VsZiwgb2JqKToKLSAgICAgICAgcmV0dXJuIHB5LmlvLnNh
ZmVyZXByKG9iaikKLQotICAgIGRlZiByZXByX2FyZ3Moc2VsZiwgZW50cnkpOgotICAgICAgICBp
ZiBzZWxmLmZ1bmNhcmdzOgotICAgICAgICAgICAgYXJncyA9IFtdCi0gICAgICAgICAgICBmb3Ig
YXJnbmFtZSwgYXJndmFsdWUgaW4gZW50cnkuZnJhbWUuZ2V0YXJncyh2YXI9VHJ1ZSk6Ci0gICAg
ICAgICAgICAgICAgYXJncy5hcHBlbmQoKGFyZ25hbWUsIHNlbGYuX3NhZmVyZXByKGFyZ3ZhbHVl
KSkpCi0gICAgICAgICAgICByZXR1cm4gUmVwckZ1bmNBcmdzKGFyZ3MpCi0KLSAgICBkZWYgZ2V0
X3NvdXJjZShzZWxmLCBzb3VyY2UsIGxpbmVfaW5kZXg9LTEsIGV4Y2luZm89Tm9uZSwgc2hvcnQ9
RmFsc2UpOgotICAgICAgICAiIiIgcmV0dXJuIGZvcm1hdHRlZCBhbmQgbWFya2VkIHVwIHNvdXJj
ZSBsaW5lcy4gIiIiCi0gICAgICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0gICAgICAgIGxpbmVz
ID0gW10KLSAgICAgICAgaWYgc291cmNlIGlzIE5vbmUgb3IgbGluZV9pbmRleCA+PSBsZW4oc291
cmNlLmxpbmVzKToKLSAgICAgICAgICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKCI/
Pz8iKQotICAgICAgICAgICAgbGluZV9pbmRleCA9IDAKLSAgICAgICAgaWYgbGluZV9pbmRleCA8
IDA6Ci0gICAgICAgICAgICBsaW5lX2luZGV4ICs9IGxlbihzb3VyY2UpCi0gICAgICAgIHNwYWNl
X3ByZWZpeCA9ICIgICAgIgotICAgICAgICBpZiBzaG9ydDoKLSAgICAgICAgICAgIGxpbmVzLmFw
cGVuZChzcGFjZV9wcmVmaXggKyBzb3VyY2UubGluZXNbbGluZV9pbmRleF0uc3RyaXAoKSkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHNvdXJjZS5saW5lc1s6bGluZV9p
bmRleF06Ci0gICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKHNwYWNlX3ByZWZpeCArIGxpbmUp
Ci0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoc2VsZi5mbG93X21hcmtlciArICIgICAiICsgc291
cmNlLmxpbmVzW2xpbmVfaW5kZXhdKQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gc291cmNlLmxp
bmVzW2xpbmVfaW5kZXggKyAxOl06Ci0gICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKHNwYWNl
X3ByZWZpeCArIGxpbmUpCi0gICAgICAgIGlmIGV4Y2luZm8gaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICBpbmRlbnQgPSA0IGlmIHNob3J0IGVsc2Ugc2VsZi5fZ2V0aW5kZW50KHNvdXJjZSkKLSAg
ICAgICAgICAgIGxpbmVzLmV4dGVuZChzZWxmLmdldF9leGNvbmx5KGV4Y2luZm8sIGluZGVudD1p
bmRlbnQsIG1hcmthbGw9VHJ1ZSkpCi0gICAgICAgIHJldHVybiBsaW5lcwotCi0gICAgZGVmIGdl
dF9leGNvbmx5KHNlbGYsIGV4Y2luZm8sIGluZGVudD00LCBtYXJrYWxsPUZhbHNlKToKLSAgICAg
ICAgbGluZXMgPSBbXQotICAgICAgICBpbmRlbnQgPSAiICIgKiBpbmRlbnQKLSAgICAgICAgIyBn
ZXQgdGhlIHJlYWwgZXhjZXB0aW9uIGluZm9ybWF0aW9uIG91dAotICAgICAgICBleGxpbmVzID0g
ZXhjaW5mby5leGNvbmx5KHRyeXNob3J0PVRydWUpLnNwbGl0KCdcbicpCi0gICAgICAgIGZhaWxp
bmRlbnQgPSBzZWxmLmZhaWxfbWFya2VyICsgaW5kZW50WzE6XQotICAgICAgICBmb3IgbGluZSBp
biBleGxpbmVzOgotICAgICAgICAgICAgbGluZXMuYXBwZW5kKGZhaWxpbmRlbnQgKyBsaW5lKQot
ICAgICAgICAgICAgaWYgbm90IG1hcmthbGw6Ci0gICAgICAgICAgICAgICAgZmFpbGluZGVudCA9
IGluZGVudAotICAgICAgICByZXR1cm4gbGluZXMKLQotICAgIGRlZiByZXByX2xvY2FscyhzZWxm
LCBsb2NhbHMpOgotICAgICAgICBpZiBzZWxmLnNob3dsb2NhbHM6Ci0gICAgICAgICAgICBsaW5l
cyA9IFtdCi0gICAgICAgICAgICBrZXlzID0gW2xvYyBmb3IgbG9jIGluIGxvY2FscyBpZiBsb2Nb
MF0gIT0gIkAiXQotICAgICAgICAgICAga2V5cy5zb3J0KCkKLSAgICAgICAgICAgIGZvciBuYW1l
IGluIGtleXM6Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSBsb2NhbHNbbmFtZV0KLSAgICAgICAg
ICAgICAgICBpZiBuYW1lID09ICdfX2J1aWx0aW5zX18nOgotICAgICAgICAgICAgICAgICAgICBs
aW5lcy5hcHBlbmQoIl9fYnVpbHRpbnNfXyA9IDxidWlsdGlucz4iKQotICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICMgVGhpcyBmb3JtYXR0aW5nIGNvdWxkIGFsbCBi
ZSBoYW5kbGVkIGJ5IHRoZQotICAgICAgICAgICAgICAgICAgICAjIF9yZXByKCkgZnVuY3Rpb24s
IHdoaWNoIGlzIG9ubHkgcmVwcmxpYi5SZXByIGluCi0gICAgICAgICAgICAgICAgICAgICMgZGlz
Z3Vpc2UsIHNvIGlzIHZlcnkgY29uZmlndXJhYmxlLgotICAgICAgICAgICAgICAgICAgICBzdHJf
cmVwciA9IHNlbGYuX3NhZmVyZXByKHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAjIGlmIGxl
bihzdHJfcmVwcikgPCA3MCBvciBub3QgaXNpbnN0YW5jZSh2YWx1ZSwKLSAgICAgICAgICAgICAg
ICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCwgdHVwbGUsIGRpY3QpKToK
LSAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIlLTEwcyA9ICVzIiAlIChuYW1lLCBz
dHJfcmVwcikpCi0gICAgICAgICAgICAgICAgICAgICMgZWxzZToKLSAgICAgICAgICAgICAgICAg
ICAgIyAgICBzZWxmLl9saW5lKCIlLTEwcyA9XFwiICUgKG5hbWUsKSkKLSAgICAgICAgICAgICAg
ICAgICAgIyAgICAjIFhYWAotICAgICAgICAgICAgICAgICAgICAjICAgIHB5LnN0ZC5wcHJpbnQu
cHByaW50KHZhbHVlLCBzdHJlYW09c2VsZi5leGNpbmZvd3JpdGVyKQotICAgICAgICAgICAgcmV0
dXJuIFJlcHJMb2NhbHMobGluZXMpCi0KLSAgICBkZWYgcmVwcl90cmFjZWJhY2tfZW50cnkoc2Vs
ZiwgZW50cnksIGV4Y2luZm89Tm9uZSk6Ci0gICAgICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0g
ICAgICAgIHNvdXJjZSA9IHNlbGYuX2dldGVudHJ5c291cmNlKGVudHJ5KQotICAgICAgICBpZiBz
b3VyY2UgaXMgTm9uZToKLSAgICAgICAgICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNl
KCI/Pz8iKQotICAgICAgICAgICAgbGluZV9pbmRleCA9IDAKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICMgZW50cnkuZ2V0Zmlyc3RsaW5lc291cmNlKCkgY2FuIGJlIC0xLCBzaG91bGQgYmUg
MCBvbiBqeXRob24KLSAgICAgICAgICAgIGxpbmVfaW5kZXggPSBlbnRyeS5saW5lbm8gLSBtYXgo
ZW50cnkuZ2V0Zmlyc3RsaW5lc291cmNlKCksIDApCi0KLSAgICAgICAgbGluZXMgPSBbXQotICAg
ICAgICBzdHlsZSA9IGVudHJ5Ll9yZXByX3N0eWxlCi0gICAgICAgIGlmIHN0eWxlIGlzIE5vbmU6
Ci0gICAgICAgICAgICBzdHlsZSA9IHNlbGYuc3R5bGUKLSAgICAgICAgaWYgc3R5bGUgaW4gKCJz
aG9ydCIsICJsb25nIik6Ci0gICAgICAgICAgICBzaG9ydCA9IHN0eWxlID09ICJzaG9ydCIKLSAg
ICAgICAgICAgIHJlcHJhcmdzID0gc2VsZi5yZXByX2FyZ3MoZW50cnkpIGlmIG5vdCBzaG9ydCBl
bHNlIE5vbmUKLSAgICAgICAgICAgIHMgPSBzZWxmLmdldF9zb3VyY2Uoc291cmNlLCBsaW5lX2lu
ZGV4LCBleGNpbmZvLCBzaG9ydD1zaG9ydCkKLSAgICAgICAgICAgIGxpbmVzLmV4dGVuZChzKQot
ICAgICAgICAgICAgaWYgc2hvcnQ6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJpbiAlcyIg
JSAoZW50cnkubmFtZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbWVzc2Fn
ZSA9IGV4Y2luZm8gYW5kIGV4Y2luZm8udHlwZW5hbWUgb3IgIiIKLSAgICAgICAgICAgIHBhdGgg
PSBzZWxmLl9tYWtlcGF0aChlbnRyeS5wYXRoKQotICAgICAgICAgICAgZmlsZWxvY3JlcHIgPSBS
ZXByRmlsZUxvY2F0aW9uKHBhdGgsIGVudHJ5LmxpbmVubyArIDEsIG1lc3NhZ2UpCi0gICAgICAg
ICAgICBsb2NhbHNyZXByID0gTm9uZQotICAgICAgICAgICAgaWYgbm90IHNob3J0OgotICAgICAg
ICAgICAgICAgIGxvY2Fsc3JlcHIgPSBzZWxmLnJlcHJfbG9jYWxzKGVudHJ5LmxvY2FscykKLSAg
ICAgICAgICAgIHJldHVybiBSZXByRW50cnkobGluZXMsIHJlcHJhcmdzLCBsb2NhbHNyZXByLCBm
aWxlbG9jcmVwciwgc3R5bGUpCi0gICAgICAgIGlmIGV4Y2luZm86Ci0gICAgICAgICAgICBsaW5l
cy5leHRlbmQoc2VsZi5nZXRfZXhjb25seShleGNpbmZvLCBpbmRlbnQ9NCkpCi0gICAgICAgIHJl
dHVybiBSZXByRW50cnkobGluZXMsIE5vbmUsIE5vbmUsIE5vbmUsIHN0eWxlKQotCi0gICAgZGVm
IF9tYWtlcGF0aChzZWxmLCBwYXRoKToKLSAgICAgICAgaWYgbm90IHNlbGYuYWJzcGF0aDoKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBucCA9IHB5LnBhdGgubG9jYWwoKS5iZXN0
cmVscGF0aChwYXRoKQotICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIHBhdGgKLSAgICAgICAgICAgIGlmIGxlbihucCkgPCBsZW4oc3RyKHBhdGgpKToK
LSAgICAgICAgICAgICAgICBwYXRoID0gbnAKLSAgICAgICAgcmV0dXJuIHBhdGgKLQotICAgIGRl
ZiByZXByX3RyYWNlYmFjayhzZWxmLCBleGNpbmZvKToKLSAgICAgICAgdHJhY2ViYWNrID0gZXhj
aW5mby50cmFjZWJhY2sKLSAgICAgICAgaWYgc2VsZi50YmZpbHRlcjoKLSAgICAgICAgICAgIHRy
YWNlYmFjayA9IHRyYWNlYmFjay5maWx0ZXIoKQotCi0gICAgICAgIGlmIGlzX3JlY3Vyc2lvbl9l
cnJvcihleGNpbmZvKToKLSAgICAgICAgICAgIHRyYWNlYmFjaywgZXh0cmFsaW5lID0gc2VsZi5f
dHJ1bmNhdGVfcmVjdXJzaXZlX3RyYWNlYmFjayh0cmFjZWJhY2spCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBleHRyYWxpbmUgPSBOb25lCi0KLSAgICAgICAgbGFzdCA9IHRyYWNlYmFja1st
MV0KLSAgICAgICAgZW50cmllcyA9IFtdCi0gICAgICAgIGZvciBpbmRleCwgZW50cnkgaW4gZW51
bWVyYXRlKHRyYWNlYmFjayk6Ci0gICAgICAgICAgICBlaW5mbyA9IChsYXN0ID09IGVudHJ5KSBh
bmQgZXhjaW5mbyBvciBOb25lCi0gICAgICAgICAgICByZXByZW50cnkgPSBzZWxmLnJlcHJfdHJh
Y2ViYWNrX2VudHJ5KGVudHJ5LCBlaW5mbykKLSAgICAgICAgICAgIGVudHJpZXMuYXBwZW5kKHJl
cHJlbnRyeSkKLSAgICAgICAgcmV0dXJuIFJlcHJUcmFjZWJhY2soZW50cmllcywgZXh0cmFsaW5l
LCBzdHlsZT1zZWxmLnN0eWxlKQotCi0gICAgZGVmIF90cnVuY2F0ZV9yZWN1cnNpdmVfdHJhY2Vi
YWNrKHNlbGYsIHRyYWNlYmFjayk6Ci0gICAgICAgICIiIgotICAgICAgICBUcnVuY2F0ZSB0aGUg
Z2l2ZW4gcmVjdXJzaXZlIHRyYWNlYmFjayB0cnlpbmcgdG8gZmluZCB0aGUgc3RhcnRpbmcgcG9p
bnQKLSAgICAgICAgb2YgdGhlIHJlY3Vyc2lvbi4KLQotICAgICAgICBUaGUgZGV0ZWN0aW9uIGlz
IGRvbmUgYnkgZ29pbmcgdGhyb3VnaCBlYWNoIHRyYWNlYmFjayBlbnRyeSBhbmQgZmluZGluZyB0
aGUKLSAgICAgICAgcG9pbnQgaW4gd2hpY2ggdGhlIGxvY2FscyBvZiB0aGUgZnJhbWUgYXJlIGVx
dWFsIHRvIHRoZSBsb2NhbHMgb2YgYSBwcmV2aW91cyBmcmFtZSAoc2VlIGBgcmVjdXJzaW9uaW5k
ZXgoKWBgLgotCi0gICAgICAgIEhhbmRsZSB0aGUgc2l0dWF0aW9uIHdoZXJlIHRoZSByZWN1cnNp
b24gcHJvY2VzcyBtaWdodCByYWlzZSBhbiBleGNlcHRpb24gKGZvciBleGFtcGxlCi0gICAgICAg
IGNvbXBhcmluZyBudW1weSBhcnJheXMgdXNpbmcgZXF1YWxpdHkgcmFpc2VzIGEgVHlwZUVycm9y
KSwgaW4gd2hpY2ggY2FzZSB3ZSBkbyBvdXIgYmVzdCB0bwotICAgICAgICB3YXJuIHRoZSB1c2Vy
IG9mIHRoZSBlcnJvciBhbmQgc2hvdyBhIGxpbWl0ZWQgdHJhY2ViYWNrLgotICAgICAgICAiIiIK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmVjdXJzaW9uaW5kZXggPSB0cmFjZWJhY2sucmVj
dXJzaW9uaW5kZXgoKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAg
ICBtYXhfZnJhbWVzID0gMTAKLSAgICAgICAgICAgIGV4dHJhbGluZSA9ICgKLSAgICAgICAgICAg
ICAgICAnISEhIFJlY3Vyc2lvbiBlcnJvciBkZXRlY3RlZCwgYnV0IGFuIGVycm9yIG9jY3VycmVk
IGxvY2F0aW5nIHRoZSBvcmlnaW4gb2YgcmVjdXJzaW9uLlxuJwotICAgICAgICAgICAgICAgICcg
IFRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uIGhhcHBlbmVkIHdoZW4gY29tcGFyaW5nIGxvY2FscyBp
biB0aGUgc3RhY2sgZnJhbWU6XG4nCi0gICAgICAgICAgICAgICAgJyAgICB7ZXhjX3R5cGV9OiB7
ZXhjX21zZ31cbicKLSAgICAgICAgICAgICAgICAnICBEaXNwbGF5aW5nIGZpcnN0IGFuZCBsYXN0
IHttYXhfZnJhbWVzfSBzdGFjayBmcmFtZXMgb3V0IG9mIHt0b3RhbH0uJwotICAgICAgICAgICAg
KS5mb3JtYXQoZXhjX3R5cGU9dHlwZShlKS5fX25hbWVfXywgZXhjX21zZz1zYWZlX3N0cihlKSwg
bWF4X2ZyYW1lcz1tYXhfZnJhbWVzLCB0b3RhbD1sZW4odHJhY2ViYWNrKSkKLSAgICAgICAgICAg
IHRyYWNlYmFjayA9IHRyYWNlYmFja1s6bWF4X2ZyYW1lc10gKyB0cmFjZWJhY2tbLW1heF9mcmFt
ZXM6XQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgcmVjdXJzaW9uaW5kZXggaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgZXh0cmFsaW5lID0gIiEhISBSZWN1cnNpb24gZGV0ZWN0
ZWQgKHNhbWUgbG9jYWxzICYgcG9zaXRpb24pIgotICAgICAgICAgICAgICAgIHRyYWNlYmFjayA9
IHRyYWNlYmFja1s6cmVjdXJzaW9uaW5kZXggKyAxXQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBleHRyYWxpbmUgPSBOb25lCi0KLSAgICAgICAgcmV0dXJuIHRyYWNlYmFjaywg
ZXh0cmFsaW5lCi0KLSAgICBkZWYgcmVwcl9leGNpbmZvKHNlbGYsIGV4Y2luZm8pOgotICAgICAg
ICBpZiBfUFkyOgotICAgICAgICAgICAgcmVwcnRyYWNlYmFjayA9IHNlbGYucmVwcl90cmFjZWJh
Y2soZXhjaW5mbykKLSAgICAgICAgICAgIHJlcHJjcmFzaCA9IGV4Y2luZm8uX2dldHJlcHJjcmFz
aCgpCi0KLSAgICAgICAgICAgIHJldHVybiBSZXByRXhjZXB0aW9uSW5mbyhyZXBydHJhY2ViYWNr
LCByZXByY3Jhc2gpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXByX2NoYWluID0gW10K
LSAgICAgICAgICAgIGUgPSBleGNpbmZvLnZhbHVlCi0gICAgICAgICAgICBkZXNjciA9IE5vbmUK
LSAgICAgICAgICAgIHdoaWxlIGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYgZXhj
aW5mbzoKLSAgICAgICAgICAgICAgICAgICAgcmVwcnRyYWNlYmFjayA9IHNlbGYucmVwcl90cmFj
ZWJhY2soZXhjaW5mbykKLSAgICAgICAgICAgICAgICAgICAgcmVwcmNyYXNoID0gZXhjaW5mby5f
Z2V0cmVwcmNyYXNoKCkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAg
ICAjIGZhbGxiYWNrIHRvIG5hdGl2ZSByZXByIGlmIHRoZSBleGNlcHRpb24gZG9lc24ndCBoYXZl
IGEgdHJhY2ViYWNrOgotICAgICAgICAgICAgICAgICAgICAjIEV4Y2VwdGlvbkluZm8gb2JqZWN0
cyByZXF1aXJlIGEgZnVsbCB0cmFjZWJhY2sgdG8gd29yawotICAgICAgICAgICAgICAgICAgICBy
ZXBydHJhY2ViYWNrID0gUmVwclRyYWNlYmFja05hdGl2ZShweS5zdGQudHJhY2ViYWNrLmZvcm1h
dF9leGNlcHRpb24odHlwZShlKSwgZSwgTm9uZSkpCi0gICAgICAgICAgICAgICAgICAgIHJlcHJj
cmFzaCA9IE5vbmUKLQotICAgICAgICAgICAgICAgIHJlcHJfY2hhaW4gKz0gWyhyZXBydHJhY2Vi
YWNrLCByZXByY3Jhc2gsIGRlc2NyKV0KLSAgICAgICAgICAgICAgICBpZiBlLl9fY2F1c2VfXyBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgZSA9IGUuX19jYXVzZV9fCi0gICAgICAg
ICAgICAgICAgICAgIGV4Y2luZm8gPSBFeGNlcHRpb25JbmZvKCh0eXBlKGUpLCBlLCBlLl9fdHJh
Y2ViYWNrX18pKSBpZiBlLl9fdHJhY2ViYWNrX18gZWxzZSBOb25lCi0gICAgICAgICAgICAgICAg
ICAgIGRlc2NyID0gJ1RoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2Yg
dGhlIGZvbGxvd2luZyBleGNlcHRpb246JwotICAgICAgICAgICAgICAgIGVsaWYgKGUuX19jb250
ZXh0X18gaXMgbm90IE5vbmUgYW5kIG5vdCBlLl9fc3VwcHJlc3NfY29udGV4dF9fKToKLSAgICAg
ICAgICAgICAgICAgICAgZSA9IGUuX19jb250ZXh0X18KLSAgICAgICAgICAgICAgICAgICAgZXhj
aW5mbyA9IEV4Y2VwdGlvbkluZm8oKHR5cGUoZSksIGUsIGUuX190cmFjZWJhY2tfXykpIGlmIGUu
X190cmFjZWJhY2tfXyBlbHNlIE5vbmUKLSAgICAgICAgICAgICAgICAgICAgZGVzY3IgPSAnRHVy
aW5nIGhhbmRsaW5nIG9mIHRoZSBhYm92ZSBleGNlcHRpb24sIGFub3RoZXIgZXhjZXB0aW9uIG9j
Y3VycmVkOicKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBlID0g
Tm9uZQotICAgICAgICAgICAgcmVwcl9jaGFpbi5yZXZlcnNlKCkKLSAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb25DaGFpblJlcHIocmVwcl9jaGFpbikKLQotCi1jbGFzcyBUZXJtaW5hbFJlcHIo
b2JqZWN0KToKLSAgICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICAgICAgcyA9IHNlbGYuX191bmlj
b2RlX18oKQotICAgICAgICBpZiBfUFkyOgotICAgICAgICAgICAgcyA9IHMuZW5jb2RlKCd1dGYt
OCcpCi0gICAgICAgIHJldHVybiBzCi0KLSAgICBkZWYgX191bmljb2RlX18oc2VsZik6Ci0gICAg
ICAgICMgRllJIHRoaXMgaXMgY2FsbGVkIGZyb20gcHl0ZXN0LXhkaXN0J3Mgc2VyaWFsaXphdGlv
biBvZiBleGNlcHRpb24KLSAgICAgICAgIyBpbmZvcm1hdGlvbi4KLSAgICAgICAgaW8gPSBweS5p
by5UZXh0SU8oKQotICAgICAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKGZpbGU9aW8pCi0g
ICAgICAgIHNlbGYudG90ZXJtaW5hbCh0dykKLSAgICAgICAgcmV0dXJuIGlvLmdldHZhbHVlKCku
c3RyaXAoKQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjwlcyBp
bnN0YW5jZSBhdCAlMHg+IiAlIChzZWxmLl9fY2xhc3NfXywgaWQoc2VsZikpCi0KLQotY2xhc3Mg
RXhjZXB0aW9uUmVwcihUZXJtaW5hbFJlcHIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAg
ICAgICAgc2VsZi5zZWN0aW9ucyA9IFtdCi0KLSAgICBkZWYgYWRkc2VjdGlvbihzZWxmLCBuYW1l
LCBjb250ZW50LCBzZXA9Ii0iKToKLSAgICAgICAgc2VsZi5zZWN0aW9ucy5hcHBlbmQoKG5hbWUs
IGNvbnRlbnQsIHNlcCkpCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0gICAgICAg
IGZvciBuYW1lLCBjb250ZW50LCBzZXAgaW4gc2VsZi5zZWN0aW9uczoKLSAgICAgICAgICAgIHR3
LnNlcChzZXAsIG5hbWUpCi0gICAgICAgICAgICB0dy5saW5lKGNvbnRlbnQpCi0KLQotY2xhc3Mg
RXhjZXB0aW9uQ2hhaW5SZXByKEV4Y2VwdGlvblJlcHIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBjaGFpbik6Ci0gICAgICAgIHN1cGVyKEV4Y2VwdGlvbkNoYWluUmVwciwgc2VsZikuX19pbml0
X18oKQotICAgICAgICBzZWxmLmNoYWluID0gY2hhaW4KLSAgICAgICAgIyByZXByY3Jhc2ggYW5k
IHJlcHJ0cmFjZWJhY2sgb2YgdGhlIG91dGVybW9zdCAodGhlIG5ld2VzdCkgZXhjZXB0aW9uCi0g
ICAgICAgICMgaW4gdGhlIGNoYWluCi0gICAgICAgIHNlbGYucmVwcnRyYWNlYmFjayA9IGNoYWlu
Wy0xXVswXQotICAgICAgICBzZWxmLnJlcHJjcmFzaCA9IGNoYWluWy0xXVsxXQotCi0gICAgZGVm
IHRvdGVybWluYWwoc2VsZiwgdHcpOgotICAgICAgICBmb3IgZWxlbWVudCBpbiBzZWxmLmNoYWlu
OgotICAgICAgICAgICAgZWxlbWVudFswXS50b3Rlcm1pbmFsKHR3KQotICAgICAgICAgICAgaWYg
ZWxlbWVudFsyXSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICB0dy5saW5lKCIiKQotICAg
ICAgICAgICAgICAgIHR3LmxpbmUoZWxlbWVudFsyXSwgeWVsbG93PVRydWUpCi0gICAgICAgIHN1
cGVyKEV4Y2VwdGlvbkNoYWluUmVwciwgc2VsZikudG90ZXJtaW5hbCh0dykKLQotCi1jbGFzcyBS
ZXByRXhjZXB0aW9uSW5mbyhFeGNlcHRpb25SZXByKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
cmVwcnRyYWNlYmFjaywgcmVwcmNyYXNoKToKLSAgICAgICAgc3VwZXIoUmVwckV4Y2VwdGlvbklu
Zm8sIHNlbGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2VsZi5yZXBydHJhY2ViYWNrID0gcmVwcnRy
YWNlYmFjawotICAgICAgICBzZWxmLnJlcHJjcmFzaCA9IHJlcHJjcmFzaAotCi0gICAgZGVmIHRv
dGVybWluYWwoc2VsZiwgdHcpOgotICAgICAgICBzZWxmLnJlcHJ0cmFjZWJhY2sudG90ZXJtaW5h
bCh0dykKLSAgICAgICAgc3VwZXIoUmVwckV4Y2VwdGlvbkluZm8sIHNlbGYpLnRvdGVybWluYWwo
dHcpCi0KLQotY2xhc3MgUmVwclRyYWNlYmFjayhUZXJtaW5hbFJlcHIpOgotICAgIGVudHJ5c2Vw
ID0gIl8gIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcHJlbnRyaWVzLCBleHRyYWxpbmUs
IHN0eWxlKToKLSAgICAgICAgc2VsZi5yZXByZW50cmllcyA9IHJlcHJlbnRyaWVzCi0gICAgICAg
IHNlbGYuZXh0cmFsaW5lID0gZXh0cmFsaW5lCi0gICAgICAgIHNlbGYuc3R5bGUgPSBzdHlsZQot
Ci0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgotICAgICAgICAjIHRoZSBlbnRyaWVzIG1p
Z2h0IGhhdmUgZGlmZmVyZW50IHN0eWxlcwotICAgICAgICBmb3IgaSwgZW50cnkgaW4gZW51bWVy
YXRlKHNlbGYucmVwcmVudHJpZXMpOgotICAgICAgICAgICAgaWYgZW50cnkuc3R5bGUgPT0gImxv
bmciOgotICAgICAgICAgICAgICAgIHR3LmxpbmUoIiIpCi0gICAgICAgICAgICBlbnRyeS50b3Rl
cm1pbmFsKHR3KQotICAgICAgICAgICAgaWYgaSA8IGxlbihzZWxmLnJlcHJlbnRyaWVzKSAtIDE6
Ci0gICAgICAgICAgICAgICAgbmV4dF9lbnRyeSA9IHNlbGYucmVwcmVudHJpZXNbaSArIDFdCi0g
ICAgICAgICAgICAgICAgaWYgZW50cnkuc3R5bGUgPT0gImxvbmciIG9yIFwKLSAgICAgICAgICAg
ICAgICAgICBlbnRyeS5zdHlsZSA9PSAic2hvcnQiIGFuZCBuZXh0X2VudHJ5LnN0eWxlID09ICJs
b25nIjoKLSAgICAgICAgICAgICAgICAgICAgdHcuc2VwKHNlbGYuZW50cnlzZXApCi0KLSAgICAg
ICAgaWYgc2VsZi5leHRyYWxpbmU6Ci0gICAgICAgICAgICB0dy5saW5lKHNlbGYuZXh0cmFsaW5l
KQotCi0KLWNsYXNzIFJlcHJUcmFjZWJhY2tOYXRpdmUoUmVwclRyYWNlYmFjayk6Ci0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIHRibGluZXMpOgotICAgICAgICBzZWxmLnN0eWxlID0gIm5hdGl2ZSIK
LSAgICAgICAgc2VsZi5yZXByZW50cmllcyA9IFtSZXByRW50cnlOYXRpdmUodGJsaW5lcyldCi0g
ICAgICAgIHNlbGYuZXh0cmFsaW5lID0gTm9uZQotCi0KLWNsYXNzIFJlcHJFbnRyeU5hdGl2ZShU
ZXJtaW5hbFJlcHIpOgotICAgIHN0eWxlID0gIm5hdGl2ZSIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCB0YmxpbmVzKToKLSAgICAgICAgc2VsZi5saW5lcyA9IHRibGluZXMKLQotICAgIGRlZiB0
b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgdHcud3JpdGUoIiIuam9pbihzZWxmLmxpbmVz
KSkKLQotCi1jbGFzcyBSZXByRW50cnkoVGVybWluYWxSZXByKToKLSAgICBsb2NhbHNzZXAgPSAi
XyAiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbGluZXMsIHJlcHJmdW5jYXJncywgcmVwcmxv
Y2FscywgZmlsZWxvY3JlcHIsIHN0eWxlKToKLSAgICAgICAgc2VsZi5saW5lcyA9IGxpbmVzCi0g
ICAgICAgIHNlbGYucmVwcmZ1bmNhcmdzID0gcmVwcmZ1bmNhcmdzCi0gICAgICAgIHNlbGYucmVw
cmxvY2FscyA9IHJlcHJsb2NhbHMKLSAgICAgICAgc2VsZi5yZXByZmlsZWxvYyA9IGZpbGVsb2Ny
ZXByCi0gICAgICAgIHNlbGYuc3R5bGUgPSBzdHlsZQotCi0gICAgZGVmIHRvdGVybWluYWwoc2Vs
ZiwgdHcpOgotICAgICAgICBpZiBzZWxmLnN0eWxlID09ICJzaG9ydCI6Ci0gICAgICAgICAgICBz
ZWxmLnJlcHJmaWxlbG9jLnRvdGVybWluYWwodHcpCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBz
ZWxmLmxpbmVzOgotICAgICAgICAgICAgICAgIHJlZCA9IGxpbmUuc3RhcnRzd2l0aCgiRSAgICIp
Ci0gICAgICAgICAgICAgICAgdHcubGluZShsaW5lLCBib2xkPVRydWUsIHJlZD1yZWQpCi0gICAg
ICAgICAgICAjIHR3LmxpbmUoIiIpCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgc2Vs
Zi5yZXByZnVuY2FyZ3M6Ci0gICAgICAgICAgICBzZWxmLnJlcHJmdW5jYXJncy50b3Rlcm1pbmFs
KHR3KQotICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmxpbmVzOgotICAgICAgICAgICAgcmVkID0g
bGluZS5zdGFydHN3aXRoKCJFICAgIikKLSAgICAgICAgICAgIHR3LmxpbmUobGluZSwgYm9sZD1U
cnVlLCByZWQ9cmVkKQotICAgICAgICBpZiBzZWxmLnJlcHJsb2NhbHM6Ci0gICAgICAgICAgICAj
IHR3LnNlcChzZWxmLmxvY2Fsc3NlcCwgIkxvY2FscyIpCi0gICAgICAgICAgICB0dy5saW5lKCIi
KQotICAgICAgICAgICAgc2VsZi5yZXBybG9jYWxzLnRvdGVybWluYWwodHcpCi0gICAgICAgIGlm
IHNlbGYucmVwcmZpbGVsb2M6Ci0gICAgICAgICAgICBpZiBzZWxmLmxpbmVzOgotICAgICAgICAg
ICAgICAgIHR3LmxpbmUoIiIpCi0gICAgICAgICAgICBzZWxmLnJlcHJmaWxlbG9jLnRvdGVybWlu
YWwodHcpCi0KLSAgICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICIlc1xuJXNc
biVzIiAlICgiXG4iLmpvaW4oc2VsZi5saW5lcyksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5yZXBybG9jYWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYucmVwcmZpbGVsb2MpCi0KLQotY2xhc3MgUmVwckZpbGVMb2NhdGlvbihUZXJtaW5hbFJlcHIp
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCBsaW5lbm8sIG1lc3NhZ2UpOgotICAgICAg
ICBzZWxmLnBhdGggPSBzdHIocGF0aCkKLSAgICAgICAgc2VsZi5saW5lbm8gPSBsaW5lbm8KLSAg
ICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwg
dHcpOgotICAgICAgICAjIGZpbGVuYW1lIGFuZCBsaW5lbm8gb3V0cHV0IGZvciBlYWNoIGVudHJ5
LAotICAgICAgICAjIHVzaW5nIGFuIG91dHB1dCBmb3JtYXQgdGhhdCBtb3N0IGVkaXRvcnMgdW50
ZXJzdGFuZAotICAgICAgICBtc2cgPSBzZWxmLm1lc3NhZ2UKLSAgICAgICAgaSA9IG1zZy5maW5k
KCJcbiIpCi0gICAgICAgIGlmIGkgIT0gLTE6Ci0gICAgICAgICAgICBtc2cgPSBtc2dbOmldCi0g
ICAgICAgIHR3LndyaXRlKHNlbGYucGF0aCwgYm9sZD1UcnVlLCByZWQ9VHJ1ZSkKLSAgICAgICAg
dHcubGluZSgiOiVzOiAlcyIgJSAoc2VsZi5saW5lbm8sIG1zZykpCi0KLQotY2xhc3MgUmVwckxv
Y2FscyhUZXJtaW5hbFJlcHIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsaW5lcyk6Ci0gICAg
ICAgIHNlbGYubGluZXMgPSBsaW5lcwotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgot
ICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmxpbmVzOgotICAgICAgICAgICAgdHcubGluZShsaW5l
KQotCi0KLWNsYXNzIFJlcHJGdW5jQXJncyhUZXJtaW5hbFJlcHIpOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBhcmdzKToKLSAgICAgICAgc2VsZi5hcmdzID0gYXJncwotCi0gICAgZGVmIHRvdGVy
bWluYWwoc2VsZiwgdHcpOgotICAgICAgICBpZiBzZWxmLmFyZ3M6Ci0gICAgICAgICAgICBsaW5l
c29mYXIgPSAiIgotICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlbGYuYXJnczoKLSAg
ICAgICAgICAgICAgICBucyA9ICIlcyA9ICVzIiAlIChzYWZlX3N0cihuYW1lKSwgc2FmZV9zdHIo
dmFsdWUpKQotICAgICAgICAgICAgICAgIGlmIGxlbihucykgKyBsZW4obGluZXNvZmFyKSArIDIg
PiB0dy5mdWxsd2lkdGg6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGxpbmVzb2ZhcjoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHR3LmxpbmUobGluZXNvZmFyKQotICAgICAgICAgICAgICAgICAg
ICBsaW5lc29mYXIgPSBucwotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIGxpbmVzb2ZhcjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzb2ZhciArPSAi
LCAiICsgbnMKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGxpbmVzb2ZhciA9IG5zCi0gICAgICAgICAgICBpZiBsaW5lc29mYXI6Ci0gICAgICAgICAg
ICAgICAgdHcubGluZShsaW5lc29mYXIpCi0gICAgICAgICAgICB0dy5saW5lKCIiKQotCi0KLWRl
ZiBnZXRyYXdjb2RlKG9iaiwgdHJ5Y2FsbD1UcnVlKToKLSAgICAiIiIgcmV0dXJuIGNvZGUgb2Jq
ZWN0IGZvciBnaXZlbiBmdW5jdGlvbi4gIiIiCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gb2Jq
Ll9fY29kZV9fCi0gICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICBvYmogPSBnZXRh
dHRyKG9iaiwgJ2ltX2Z1bmMnLCBvYmopCi0gICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCAnZnVu
Y19jb2RlJywgb2JqKQotICAgICAgICBvYmogPSBnZXRhdHRyKG9iaiwgJ2ZfY29kZScsIG9iaikK
LSAgICAgICAgb2JqID0gZ2V0YXR0cihvYmosICdfX2NvZGVfXycsIG9iaikKLSAgICAgICAgaWYg
dHJ5Y2FsbCBhbmQgbm90IGhhc2F0dHIob2JqLCAnY29fZmlyc3RsaW5lbm8nKToKLSAgICAgICAg
ICAgIGlmIGhhc2F0dHIob2JqLCAnX19jYWxsX18nKSBhbmQgbm90IHB5LnN0ZC5pbnNwZWN0Lmlz
Y2xhc3Mob2JqKToKLSAgICAgICAgICAgICAgICB4ID0gZ2V0cmF3Y29kZShvYmouX19jYWxsX18s
IHRyeWNhbGw9RmFsc2UpCi0gICAgICAgICAgICAgICAgaWYgaGFzYXR0cih4LCAnY29fZmlyc3Rs
aW5lbm8nKToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHgKLSAgICAgICAgcmV0dXJuIG9i
agotCi0KLWlmIFBZMzU6ICAjIFJlY3Vyc2lvbkVycm9yIGludHJvZHVjZWQgaW4gMy41Ci0gICAg
ZGVmIGlzX3JlY3Vyc2lvbl9lcnJvcihleGNpbmZvKToKLSAgICAgICAgcmV0dXJuIGV4Y2luZm8u
ZXJyaXNpbnN0YW5jZShSZWN1cnNpb25FcnJvcikgICMgbm9xYQotZWxzZToKLSAgICBkZWYgaXNf
cmVjdXJzaW9uX2Vycm9yKGV4Y2luZm8pOgotICAgICAgICBpZiBub3QgZXhjaW5mby5lcnJpc2lu
c3RhbmNlKFJ1bnRpbWVFcnJvcik6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgcmV0dXJuICJtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCBleGNlZWRl
ZCIgaW4gc3RyKGV4Y2luZm8udmFsdWUpCi0gICAgICAgIGV4Y2VwdCBVbmljb2RlRXJyb3I6Ci0g
ICAgICAgICAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
X2NvZGUvc291cmNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9zb3VyY2UucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MzhjNTk4Yjc0OWRiMjg4NjFkMjAwMDZlN2Rm
YThmOTBlNTU0YmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9zb3VyY2UucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw0MTUgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBnZW5lcmF0b3JzLCBwcmludF9mdW5jdGlvbgotCi1mcm9tIGJpc2VjdCBpbXBvcnQg
YmlzZWN0X3JpZ2h0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgc2l4Ci1pbXBvcnQgaW5zcGVjdAotaW1w
b3J0IHRva2VuaXplCi1pbXBvcnQgcHkKLWNweV9jb21waWxlID0gY29tcGlsZQotCi10cnk6Ci0g
ICAgaW1wb3J0IF9hc3QKLSAgICBmcm9tIF9hc3QgaW1wb3J0IFB5Q0ZfT05MWV9BU1QgYXMgX0FT
VF9GTEFHCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgX0FTVF9GTEFHID0gMAotICAgIF9hc3Qg
PSBOb25lCi0KLQotY2xhc3MgU291cmNlKG9iamVjdCk6Ci0gICAgIiIiIGEgaW1tdXRhYmxlIG9i
amVjdCBob2xkaW5nIGEgc291cmNlIGNvZGUgZnJhZ21lbnQsCi0gICAgICAgIHBvc3NpYmx5IGRl
aW5kZW50aW5nIGl0LgotICAgICIiIgotICAgIF9jb21waWxlY291bnRlciA9IDAKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCAqcGFydHMsICoqa3dhcmdzKToKLSAgICAgICAgc2VsZi5saW5lcyA9
IGxpbmVzID0gW10KLSAgICAgICAgZGUgPSBrd2FyZ3MuZ2V0KCdkZWluZGVudCcsIFRydWUpCi0g
ICAgICAgIHJzdHJpcCA9IGt3YXJncy5nZXQoJ3JzdHJpcCcsIFRydWUpCi0gICAgICAgIGZvciBw
YXJ0IGluIHBhcnRzOgotICAgICAgICAgICAgaWYgbm90IHBhcnQ6Ci0gICAgICAgICAgICAgICAg
cGFydGxpbmVzID0gW10KLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocGFydCwgU291cmNlKToK
LSAgICAgICAgICAgICAgICBwYXJ0bGluZXMgPSBwYXJ0LmxpbmVzCi0gICAgICAgICAgICBlbGlm
IGlzaW5zdGFuY2UocGFydCwgKHR1cGxlLCBsaXN0KSk6Ci0gICAgICAgICAgICAgICAgcGFydGxp
bmVzID0gW3gucnN0cmlwKCJcbiIpIGZvciB4IGluIHBhcnRdCi0gICAgICAgICAgICBlbGlmIGlz
aW5zdGFuY2UocGFydCwgc2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAgICAgICAgICAgcGFydGxp
bmVzID0gcGFydC5zcGxpdCgnXG4nKQotICAgICAgICAgICAgICAgIGlmIHJzdHJpcDoKLSAgICAg
ICAgICAgICAgICAgICAgd2hpbGUgcGFydGxpbmVzOgotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgcGFydGxpbmVzWy0xXS5zdHJpcCgpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0bGluZXMucG9wKCkKLSAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgcGFydGxpbmVzID0gZ2V0c291cmNlKHBhcnQsIGRlaW5k
ZW50PWRlKS5saW5lcwotICAgICAgICAgICAgaWYgZGU6Ci0gICAgICAgICAgICAgICAgcGFydGxp
bmVzID0gZGVpbmRlbnQocGFydGxpbmVzKQotICAgICAgICAgICAgbGluZXMuZXh0ZW5kKHBhcnRs
aW5lcykKLQotICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICByZXR1cm4gc2VsZi5saW5lcyA9PSBvdGhlci5saW5lcwotICAgICAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCBzdHIpOgot
ICAgICAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZikgPT0gb3RoZXIKLSAgICAgICAgICAgIHJl
dHVybiBGYWxzZQotCi0gICAgX19oYXNoX18gPSBOb25lCi0KLSAgICBkZWYgX19nZXRpdGVtX18o
c2VsZiwga2V5KToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShrZXksIGludCk6Ci0gICAgICAgICAg
ICByZXR1cm4gc2VsZi5saW5lc1trZXldCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBr
ZXkuc3RlcCBub3QgaW4gKE5vbmUsIDEpOgotICAgICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJy
b3IoImNhbm5vdCBzbGljZSBhIFNvdXJjZSB3aXRoIGEgc3RlcCIpCi0gICAgICAgICAgICBuZXdz
b3VyY2UgPSBTb3VyY2UoKQotICAgICAgICAgICAgbmV3c291cmNlLmxpbmVzID0gc2VsZi5saW5l
c1trZXkuc3RhcnQ6a2V5LnN0b3BdCi0gICAgICAgICAgICByZXR1cm4gbmV3c291cmNlCi0KLSAg
ICBkZWYgX19sZW5fXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGxlbihzZWxmLmxpbmVzKQotCi0g
ICAgZGVmIHN0cmlwKHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIG5ldyBzb3VyY2Ugb2JqZWN0
IHdpdGggdHJhaWxpbmcKLSAgICAgICAgICAgIGFuZCBsZWFkaW5nIGJsYW5rIGxpbmVzIHJlbW92
ZWQuCi0gICAgICAgICIiIgotICAgICAgICBzdGFydCwgZW5kID0gMCwgbGVuKHNlbGYpCi0gICAg
ICAgIHdoaWxlIHN0YXJ0IDwgZW5kIGFuZCBub3Qgc2VsZi5saW5lc1tzdGFydF0uc3RyaXAoKToK
LSAgICAgICAgICAgIHN0YXJ0ICs9IDEKLSAgICAgICAgd2hpbGUgZW5kID4gc3RhcnQgYW5kIG5v
dCBzZWxmLmxpbmVzW2VuZCAtIDFdLnN0cmlwKCk6Ci0gICAgICAgICAgICBlbmQgLT0gMQotICAg
ICAgICBzb3VyY2UgPSBTb3VyY2UoKQotICAgICAgICBzb3VyY2UubGluZXNbOl0gPSBzZWxmLmxp
bmVzW3N0YXJ0OmVuZF0KLSAgICAgICAgcmV0dXJuIHNvdXJjZQotCi0gICAgZGVmIHB1dGFyb3Vu
ZChzZWxmLCBiZWZvcmU9JycsIGFmdGVyPScnLCBpbmRlbnQ9JyAnICogNCk6Ci0gICAgICAgICIi
IiByZXR1cm4gYSBjb3B5IG9mIHRoZSBzb3VyY2Ugb2JqZWN0IHdpdGgKLSAgICAgICAgICAgICdi
ZWZvcmUnIGFuZCAnYWZ0ZXInIHdyYXBwZWQgYXJvdW5kIGl0LgotICAgICAgICAiIiIKLSAgICAg
ICAgYmVmb3JlID0gU291cmNlKGJlZm9yZSkKLSAgICAgICAgYWZ0ZXIgPSBTb3VyY2UoYWZ0ZXIp
Ci0gICAgICAgIG5ld3NvdXJjZSA9IFNvdXJjZSgpCi0gICAgICAgIGxpbmVzID0gWyhpbmRlbnQg
KyBsaW5lKSBmb3IgbGluZSBpbiBzZWxmLmxpbmVzXQotICAgICAgICBuZXdzb3VyY2UubGluZXMg
PSBiZWZvcmUubGluZXMgKyBsaW5lcyArIGFmdGVyLmxpbmVzCi0gICAgICAgIHJldHVybiBuZXdz
b3VyY2UKLQotICAgIGRlZiBpbmRlbnQoc2VsZiwgaW5kZW50PScgJyAqIDQpOgotICAgICAgICAi
IiIgcmV0dXJuIGEgY29weSBvZiB0aGUgc291cmNlIG9iamVjdCB3aXRoCi0gICAgICAgICAgICBh
bGwgbGluZXMgaW5kZW50ZWQgYnkgdGhlIGdpdmVuIGluZGVudC1zdHJpbmcuCi0gICAgICAgICIi
IgotICAgICAgICBuZXdzb3VyY2UgPSBTb3VyY2UoKQotICAgICAgICBuZXdzb3VyY2UubGluZXMg
PSBbKGluZGVudCArIGxpbmUpIGZvciBsaW5lIGluIHNlbGYubGluZXNdCi0gICAgICAgIHJldHVy
biBuZXdzb3VyY2UKLQotICAgIGRlZiBnZXRzdGF0ZW1lbnQoc2VsZiwgbGluZW5vLCBhc3NlcnRp
b249RmFsc2UpOgotICAgICAgICAiIiIgcmV0dXJuIFNvdXJjZSBzdGF0ZW1lbnQgd2hpY2ggY29u
dGFpbnMgdGhlCi0gICAgICAgICAgICBnaXZlbiBsaW5lbnVtYmVyIChjb3VudGVkIGZyb20gMCku
Ci0gICAgICAgICIiIgotICAgICAgICBzdGFydCwgZW5kID0gc2VsZi5nZXRzdGF0ZW1lbnRyYW5n
ZShsaW5lbm8sIGFzc2VydGlvbikKLSAgICAgICAgcmV0dXJuIHNlbGZbc3RhcnQ6ZW5kXQotCi0g
ICAgZGVmIGdldHN0YXRlbWVudHJhbmdlKHNlbGYsIGxpbmVubywgYXNzZXJ0aW9uPUZhbHNlKToK
LSAgICAgICAgIiIiIHJldHVybiAoc3RhcnQsIGVuZCkgdHVwbGUgd2hpY2ggc3BhbnMgdGhlIG1p
bmltYWwKLSAgICAgICAgICAgIHN0YXRlbWVudCByZWdpb24gd2hpY2ggY29udGFpbmluZyB0aGUg
Z2l2ZW4gbGluZW5vLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgbm90ICgwIDw9IGxpbmVubyA8
IGxlbihzZWxmKSk6Ci0gICAgICAgICAgICByYWlzZSBJbmRleEVycm9yKCJsaW5lbm8gb3V0IG9m
IHJhbmdlIikKLSAgICAgICAgYXN0LCBzdGFydCwgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2VfYXN0
KGxpbmVubywgc2VsZikKLSAgICAgICAgcmV0dXJuIHN0YXJ0LCBlbmQKLQotICAgIGRlZiBkZWlu
ZGVudChzZWxmLCBvZmZzZXQ9Tm9uZSk6Ci0gICAgICAgICIiIiByZXR1cm4gYSBuZXcgc291cmNl
IG9iamVjdCBkZWluZGVudGVkIGJ5IG9mZnNldC4KLSAgICAgICAgICAgIElmIG9mZnNldCBpcyBO
b25lIHRoZW4gZ3Vlc3MgYW4gaW5kZW50YXRpb24gb2Zmc2V0IGZyb20KLSAgICAgICAgICAgIHRo
ZSBmaXJzdCBub24tYmxhbmsgbGluZS4gIFN1YnNlcXVlbnQgbGluZXMgd2hpY2ggaGF2ZSBhCi0g
ICAgICAgICAgICBsb3dlciBpbmRlbnRhdGlvbiBvZmZzZXQgd2lsbCBiZSBjb3BpZWQgdmVyYmF0
aW0gYXMKLSAgICAgICAgICAgIHRoZXkgYXJlIGFzc3VtZWQgdG8gYmUgcGFydCBvZiBtdWx0aWxp
bmVzLgotICAgICAgICAiIiIKLSAgICAgICAgIyBYWFggbWF5YmUgdXNlIHRoZSB0b2tlbml6ZXIg
dG8gcHJvcGVybHkgaGFuZGxlIG11bHRpbGluZQotICAgICAgICAjICAgICBzdHJpbmdzIGV0Yy5w
cD8KLSAgICAgICAgbmV3c291cmNlID0gU291cmNlKCkKLSAgICAgICAgbmV3c291cmNlLmxpbmVz
WzpdID0gZGVpbmRlbnQoc2VsZi5saW5lcywgb2Zmc2V0KQotICAgICAgICByZXR1cm4gbmV3c291
cmNlCi0KLSAgICBkZWYgaXNwYXJzZWFibGUoc2VsZiwgZGVpbmRlbnQ9VHJ1ZSk6Ci0gICAgICAg
ICIiIiByZXR1cm4gVHJ1ZSBpZiBzb3VyY2UgaXMgcGFyc2VhYmxlLCBoZXVyaXN0aWNhbGx5Ci0g
ICAgICAgICAgICBkZWluZGVudGluZyBpdCBieSBkZWZhdWx0LgotICAgICAgICAiIiIKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0IHBhcnNlcgotICAgICAgICBleGNlcHQgSW1wb3J0
RXJyb3I6Ci0gICAgICAgICAgICBkZWYgc3ludGF4X2NoZWNrZXIoeCk6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGNvbXBpbGUoeCwgJ2FzZCcsICdleGVjJykKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHN5bnRheF9jaGVja2VyID0gcGFyc2VyLnN1aXRlCi0KLSAgICAgICAgaWYgZGVpbmRl
bnQ6Ci0gICAgICAgICAgICBzb3VyY2UgPSBzdHIoc2VsZi5kZWluZGVudCgpKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgc291cmNlID0gc3RyKHNlbGYpCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgICMgY29tcGlsZShzb3VyY2UrJ1xuJywgIngiLCAiZXhlYyIpCi0gICAgICAgICAgICBz
eW50YXhfY2hlY2tlcihzb3VyY2UgKyAnXG4nKQotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRl
cnJ1cHQ6Ci0gICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4g
VHJ1ZQotCi0gICAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiXG4iLmpvaW4o
c2VsZi5saW5lcykKLQotICAgIGRlZiBjb21waWxlKHNlbGYsIGZpbGVuYW1lPU5vbmUsIG1vZGU9
J2V4ZWMnLAotICAgICAgICAgICAgICAgIGZsYWc9Z2VuZXJhdG9ycy5jb21waWxlcl9mbGFnLAot
ICAgICAgICAgICAgICAgIGRvbnRfaW5oZXJpdD0wLCBfZ2VuZnJhbWU9Tm9uZSk6Ci0gICAgICAg
ICIiIiByZXR1cm4gY29tcGlsZWQgY29kZSBvYmplY3QuIGlmIGZpbGVuYW1lIGlzIE5vbmUKLSAg
ICAgICAgICAgIGludmVudCBhbiBhcnRpZmljaWFsIGZpbGVuYW1lIHdoaWNoIGRpc3BsYXlzCi0g
ICAgICAgICAgICB0aGUgc291cmNlL2xpbmUgcG9zaXRpb24gb2YgdGhlIGNhbGxlciBmcmFtZS4K
LSAgICAgICAgIiIiCi0gICAgICAgIGlmIG5vdCBmaWxlbmFtZSBvciBweS5wYXRoLmxvY2FsKGZp
bGVuYW1lKS5jaGVjayhmaWxlPTApOgotICAgICAgICAgICAgaWYgX2dlbmZyYW1lIGlzIE5vbmU6
Ci0gICAgICAgICAgICAgICAgX2dlbmZyYW1lID0gc3lzLl9nZXRmcmFtZSgxKSAgIyB0aGUgY2Fs
bGVyCi0gICAgICAgICAgICBmbiwgbGluZW5vID0gX2dlbmZyYW1lLmZfY29kZS5jb19maWxlbmFt
ZSwgX2dlbmZyYW1lLmZfbGluZW5vCi0gICAgICAgICAgICBiYXNlID0gIjwlZC1jb2RlZ2VuICIg
JSBzZWxmLl9jb21waWxlY291bnRlcgotICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX2NvbXBp
bGVjb3VudGVyICs9IDEKLSAgICAgICAgICAgIGlmIG5vdCBmaWxlbmFtZToKLSAgICAgICAgICAg
ICAgICBmaWxlbmFtZSA9IGJhc2UgKyAnJXM6JWQ+JyAlIChmbiwgbGluZW5vKQotICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IGJhc2UgKyAnJXIgJXM6JWQ+JyAl
IChmaWxlbmFtZSwgZm4sIGxpbmVubykKLSAgICAgICAgc291cmNlID0gIlxuIi5qb2luKHNlbGYu
bGluZXMpICsgJ1xuJwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjbyA9IGNweV9jb21waWxl
KHNvdXJjZSwgZmlsZW5hbWUsIG1vZGUsIGZsYWcpCi0gICAgICAgIGV4Y2VwdCBTeW50YXhFcnJv
cjoKLSAgICAgICAgICAgIGV4ID0gc3lzLmV4Y19pbmZvKClbMV0KLSAgICAgICAgICAgICMgcmUt
cmVwcmVzZW50IHN5bnRheCBlcnJvcnMgZnJvbSBwYXJzaW5nIHB5dGhvbiBzdHJpbmdzCi0gICAg
ICAgICAgICBtc2dsaW5lcyA9IHNlbGYubGluZXNbOmV4LmxpbmVub10KLSAgICAgICAgICAgIGlm
IGV4Lm9mZnNldDoKLSAgICAgICAgICAgICAgICBtc2dsaW5lcy5hcHBlbmQoIiAiICogZXgub2Zm
c2V0ICsgJ14nKQotICAgICAgICAgICAgbXNnbGluZXMuYXBwZW5kKCIoY29kZSB3YXMgY29tcGls
ZWQgcHJvYmFibHkgZnJvbSBoZXJlOiAlcykiICUgZmlsZW5hbWUpCi0gICAgICAgICAgICBuZXdl
eCA9IFN5bnRheEVycm9yKCdcbicuam9pbihtc2dsaW5lcykpCi0gICAgICAgICAgICBuZXdleC5v
ZmZzZXQgPSBleC5vZmZzZXQKLSAgICAgICAgICAgIG5ld2V4LmxpbmVubyA9IGV4LmxpbmVubwot
ICAgICAgICAgICAgbmV3ZXgudGV4dCA9IGV4LnRleHQKLSAgICAgICAgICAgIHJhaXNlIG5ld2V4
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBmbGFnICYgX0FTVF9GTEFHOgotICAgICAg
ICAgICAgICAgIHJldHVybiBjbwotICAgICAgICAgICAgbGluZXMgPSBbKHggKyAiXG4iKSBmb3Ig
eCBpbiBzZWxmLmxpbmVzXQotICAgICAgICAgICAgcHkuc3RkLmxpbmVjYWNoZS5jYWNoZVtmaWxl
bmFtZV0gPSAoMSwgTm9uZSwgbGluZXMsIGZpbGVuYW1lKQotICAgICAgICAgICAgcmV0dXJuIGNv
Ci0KLSMKLSMgcHVibGljIEFQSSBzaG9ydGN1dCBmdW5jdGlvbnMKLSMKLQotCi1kZWYgY29tcGls
ZV8oc291cmNlLCBmaWxlbmFtZT1Ob25lLCBtb2RlPSdleGVjJywgZmxhZ3M9Z2VuZXJhdG9ycy5j
b21waWxlcl9mbGFnLCBkb250X2luaGVyaXQ9MCk6Ci0gICAgIiIiIGNvbXBpbGUgdGhlIGdpdmVu
IHNvdXJjZSB0byBhIHJhdyBjb2RlIG9iamVjdCwKLSAgICAgICAgYW5kIG1haW50YWluIGFuIGlu
dGVybmFsIGNhY2hlIHdoaWNoIGFsbG93cyBsYXRlcgotICAgICAgICByZXRyaWV2YWwgb2YgdGhl
IHNvdXJjZSBjb2RlIGZvciB0aGUgY29kZSBvYmplY3QKLSAgICAgICAgYW5kIGFueSByZWN1cnNp
dmVseSBjcmVhdGVkIGNvZGUgb2JqZWN0cy4KLSAgICAiIiIKLSAgICBpZiBfYXN0IGlzIG5vdCBO
b25lIGFuZCBpc2luc3RhbmNlKHNvdXJjZSwgX2FzdC5BU1QpOgotICAgICAgICAjIFhYWCBzaG91
bGQgU291cmNlIHN1cHBvcnQgaGF2aW5nIEFTVD8KLSAgICAgICAgcmV0dXJuIGNweV9jb21waWxl
KHNvdXJjZSwgZmlsZW5hbWUsIG1vZGUsIGZsYWdzLCBkb250X2luaGVyaXQpCi0gICAgX2dlbmZy
YW1lID0gc3lzLl9nZXRmcmFtZSgxKSAgIyB0aGUgY2FsbGVyCi0gICAgcyA9IFNvdXJjZShzb3Vy
Y2UpCi0gICAgY28gPSBzLmNvbXBpbGUoZmlsZW5hbWUsIG1vZGUsIGZsYWdzLCBfZ2VuZnJhbWU9
X2dlbmZyYW1lKQotICAgIHJldHVybiBjbwotCi0KLWRlZiBnZXRmc2xpbmVubyhvYmopOgotICAg
ICIiIiBSZXR1cm4gc291cmNlIGxvY2F0aW9uIChwYXRoLCBsaW5lbm8pIGZvciB0aGUgZ2l2ZW4g
b2JqZWN0LgotICAgIElmIHRoZSBzb3VyY2UgY2Fubm90IGJlIGRldGVybWluZWQgcmV0dXJuICgi
IiwgLTEpCi0gICAgIiIiCi0gICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKLSAgICB0cnk6Ci0gICAg
ICAgIGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLkNvZGUob2JqKQotICAgIGV4Y2VwdCBUeXBlRXJyb3I6
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZuID0gKHB5LnN0ZC5pbnNwZWN0LmdldHNvdXJj
ZWZpbGUob2JqKSBvcgotICAgICAgICAgICAgICAgICAgcHkuc3RkLmluc3BlY3QuZ2V0ZmlsZShv
YmopKQotICAgICAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAgICAgICAgcmV0dXJuICIiLCAt
MQotCi0gICAgICAgIGZzcGF0aCA9IGZuIGFuZCBweS5wYXRoLmxvY2FsKGZuKSBvciBOb25lCi0g
ICAgICAgIGxpbmVubyA9IC0xCi0gICAgICAgIGlmIGZzcGF0aDoKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICBfLCBsaW5lbm8gPSBmaW5kc291cmNlKG9iaikKLSAgICAgICAgICAg
IGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICBlbHNlOgotICAgICAg
ICBmc3BhdGggPSBjb2RlLnBhdGgKLSAgICAgICAgbGluZW5vID0gY29kZS5maXJzdGxpbmVubwot
ICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmVubywgaW50KQotICAgIHJldHVybiBmc3BhdGgsIGxp
bmVubwotCi0jCi0jIGhlbHBlciBmdW5jdGlvbnMKLSMKLQotCi1kZWYgZmluZHNvdXJjZShvYmop
OgotICAgIHRyeToKLSAgICAgICAgc291cmNlbGluZXMsIGxpbmVubyA9IHB5LnN0ZC5pbnNwZWN0
LmZpbmRzb3VyY2Uob2JqKQotICAgIGV4Y2VwdCBweS5idWlsdGluLl9zeXNleDoKLSAgICAgICAg
cmFpc2UKLSAgICBleGNlcHQ6ICAjIG5vcWEKLSAgICAgICAgcmV0dXJuIE5vbmUsIC0xCi0gICAg
c291cmNlID0gU291cmNlKCkKLSAgICBzb3VyY2UubGluZXMgPSBbbGluZS5yc3RyaXAoKSBmb3Ig
bGluZSBpbiBzb3VyY2VsaW5lc10KLSAgICByZXR1cm4gc291cmNlLCBsaW5lbm8KLQotCi1kZWYg
Z2V0c291cmNlKG9iaiwgKiprd2FyZ3MpOgotICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0gICAg
b2JqID0gX3B5dGVzdC5fY29kZS5nZXRyYXdjb2RlKG9iaikKLSAgICB0cnk6Ci0gICAgICAgIHN0
cnNyYyA9IGluc3BlY3QuZ2V0c291cmNlKG9iaikKLSAgICBleGNlcHQgSW5kZW50YXRpb25FcnJv
cjoKLSAgICAgICAgc3Ryc3JjID0gIlwiQnVnZ3kgcHl0aG9uIHZlcnNpb24gY29uc2lkZXIgdXBn
cmFkaW5nLCBjYW5ub3QgZ2V0IHNvdXJjZVwiIgotICAgIGFzc2VydCBpc2luc3RhbmNlKHN0cnNy
Yywgc3RyKQotICAgIHJldHVybiBTb3VyY2Uoc3Ryc3JjLCAqKmt3YXJncykKLQotCi1kZWYgZGVp
bmRlbnQobGluZXMsIG9mZnNldD1Ob25lKToKLSAgICBpZiBvZmZzZXQgaXMgTm9uZToKLSAgICAg
ICAgZm9yIGxpbmUgaW4gbGluZXM6Ci0gICAgICAgICAgICBsaW5lID0gbGluZS5leHBhbmR0YWJz
KCkKLSAgICAgICAgICAgIHMgPSBsaW5lLmxzdHJpcCgpCi0gICAgICAgICAgICBpZiBzOgotICAg
ICAgICAgICAgICAgIG9mZnNldCA9IGxlbihsaW5lKSAtIGxlbihzKQotICAgICAgICAgICAgICAg
IGJyZWFrCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvZmZzZXQgPSAwCi0gICAgaWYgb2Zm
c2V0ID09IDA6Ci0gICAgICAgIHJldHVybiBsaXN0KGxpbmVzKQotICAgIG5ld2xpbmVzID0gW10K
LQotICAgIGRlZiByZWFkbGluZV9nZW5lcmF0b3IobGluZXMpOgotICAgICAgICBmb3IgbGluZSBp
biBsaW5lczoKLSAgICAgICAgICAgIHlpZWxkIGxpbmUgKyAnXG4nCi0gICAgICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgICAgICB5aWVsZCAnJwotCi0gICAgaXQgPSByZWFkbGluZV9nZW5lcmF0b3Io
bGluZXMpCi0KLSAgICB0cnk6Ci0gICAgICAgIGZvciBfLCBfLCAoc2xpbmUsIF8pLCAoZWxpbmUs
IF8pLCBfIGluIHRva2VuaXplLmdlbmVyYXRlX3Rva2VucyhsYW1iZGE6IG5leHQoaXQpKToKLSAg
ICAgICAgICAgIGlmIHNsaW5lID4gbGVuKGxpbmVzKToKLSAgICAgICAgICAgICAgICBicmVhayAg
IyBFbmQgb2YgaW5wdXQgcmVhY2hlZAotICAgICAgICAgICAgaWYgc2xpbmUgPiBsZW4obmV3bGlu
ZXMpOgotICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lc1tzbGluZSAtIDFdLmV4cGFuZHRhYnMo
KQotICAgICAgICAgICAgICAgIGlmIGxpbmUubHN0cmlwKCkgYW5kIGxpbmVbOm9mZnNldF0uaXNz
cGFjZSgpOgotICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZVtvZmZzZXQ6XSAgIyBEZWlu
ZGVudAotICAgICAgICAgICAgICAgIG5ld2xpbmVzLmFwcGVuZChsaW5lKQotCi0gICAgICAgICAg
ICBmb3IgaSBpbiByYW5nZShzbGluZSwgZWxpbmUpOgotICAgICAgICAgICAgICAgICMgRG9uJ3Qg
ZGVpbmRlbnQgY29udGludWluZyBsaW5lcyBvZgotICAgICAgICAgICAgICAgICMgbXVsdGlsaW5l
IHRva2VucyAoaS5lLiBtdWx0aWxpbmUgc3RyaW5ncykKLSAgICAgICAgICAgICAgICBuZXdsaW5l
cy5hcHBlbmQobGluZXNbaV0pCi0gICAgZXhjZXB0IChJbmRlbnRhdGlvbkVycm9yLCB0b2tlbml6
ZS5Ub2tlbkVycm9yKToKLSAgICAgICAgcGFzcwotICAgICMgQWRkIGFueSBsaW5lcyB3ZSBkaWRu
J3Qgc2VlLiBFLmcuIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkLgotICAgIG5ld2xpbmVzLmV4
dGVuZChsaW5lc1tsZW4obmV3bGluZXMpOl0pCi0gICAgcmV0dXJuIG5ld2xpbmVzCi0KLQotZGVm
IGdldF9zdGF0ZW1lbnRfc3RhcnRlbmQyKGxpbmVubywgbm9kZSk6Ci0gICAgaW1wb3J0IGFzdAot
ICAgICMgZmxhdHRlbiBhbGwgc3RhdGVtZW50cyBhbmQgZXhjZXB0IGhhbmRsZXJzIGludG8gb25l
IGxpbmVuby1saXN0Ci0gICAgIyBBU1QncyBsaW5lIG51bWJlcnMgc3RhcnQgaW5kZXhpbmcgYXQg
MQotICAgIHZhbHVlcyA9IFtdCi0gICAgZm9yIHggaW4gYXN0LndhbGsobm9kZSk6Ci0gICAgICAg
IGlmIGlzaW5zdGFuY2UoeCwgX2FzdC5zdG10KSBvciBpc2luc3RhbmNlKHgsIF9hc3QuRXhjZXB0
SGFuZGxlcik6Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHgubGluZW5vIC0gMSkKLSAgICAg
ICAgICAgIGZvciBuYW1lIGluICJmaW5hbGJvZHkiLCAib3JlbHNlIjoKLSAgICAgICAgICAgICAg
ICB2YWwgPSBnZXRhdHRyKHgsIG5hbWUsIE5vbmUpCi0gICAgICAgICAgICAgICAgaWYgdmFsOgot
ICAgICAgICAgICAgICAgICAgICAjIHRyZWF0IHRoZSBmaW5hbGx5L29yZWxzZSBwYXJ0IGFzIGl0
cyBvd24gc3RhdGVtZW50Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQodmFsWzBd
LmxpbmVubyAtIDEgLSAxKQotICAgIHZhbHVlcy5zb3J0KCkKLSAgICBpbnNlcnRfaW5kZXggPSBi
aXNlY3RfcmlnaHQodmFsdWVzLCBsaW5lbm8pCi0gICAgc3RhcnQgPSB2YWx1ZXNbaW5zZXJ0X2lu
ZGV4IC0gMV0KLSAgICBpZiBpbnNlcnRfaW5kZXggPj0gbGVuKHZhbHVlcyk6Ci0gICAgICAgIGVu
ZCA9IE5vbmUKLSAgICBlbHNlOgotICAgICAgICBlbmQgPSB2YWx1ZXNbaW5zZXJ0X2luZGV4XQot
ICAgIHJldHVybiBzdGFydCwgZW5kCi0KLQotZGVmIGdldHN0YXRlbWVudHJhbmdlX2FzdChsaW5l
bm8sIHNvdXJjZSwgYXNzZXJ0aW9uPUZhbHNlLCBhc3Rub2RlPU5vbmUpOgotICAgIGlmIGFzdG5v
ZGUgaXMgTm9uZToKLSAgICAgICAgY29udGVudCA9IHN0cihzb3VyY2UpCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIGFzdG5vZGUgPSBjb21waWxlKGNvbnRlbnQsICJzb3VyY2UiLCAiZXhlYyIs
IDEwMjQpICAjIDEwMjQgZm9yIEFTVAotICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAg
ICAgICAgIHN0YXJ0LCBlbmQgPSBnZXRzdGF0ZW1lbnRyYW5nZV9vbGQobGluZW5vLCBzb3VyY2Us
IGFzc2VydGlvbikKLSAgICAgICAgICAgIHJldHVybiBOb25lLCBzdGFydCwgZW5kCi0gICAgc3Rh
cnQsIGVuZCA9IGdldF9zdGF0ZW1lbnRfc3RhcnRlbmQyKGxpbmVubywgYXN0bm9kZSkKLSAgICAj
IHdlIG5lZWQgdG8gY29ycmVjdCB0aGUgZW5kOgotICAgICMgLSBhc3QtcGFyc2luZyBzdHJpcHMg
Y29tbWVudHMKLSAgICAjIC0gdGhlcmUgbWlnaHQgYmUgZW1wdHkgbGluZXMKLSAgICAjIC0gd2Ug
bWlnaHQgaGF2ZSBsZXNzZXIgaW5kZW50ZWQgY29kZSBibG9ja3MgYXQgdGhlIGVuZAotICAgIGlm
IGVuZCBpcyBOb25lOgotICAgICAgICBlbmQgPSBsZW4oc291cmNlLmxpbmVzKQotCi0gICAgaWYg
ZW5kID4gc3RhcnQgKyAxOgotICAgICAgICAjIG1ha2Ugc3VyZSB3ZSBkb24ndCBzcGFuIGRpZmZl
cmVudGx5IGluZGVudGVkIGNvZGUgYmxvY2tzCi0gICAgICAgICMgYnkgdXNpbmcgdGhlIEJsb2Nr
RmluZGVyIGhlbHBlciB1c2VkIHdoaWNoIGluc3BlY3QuZ2V0c291cmNlKCkgdXNlcyBpdHNlbGYK
LSAgICAgICAgYmxvY2tfZmluZGVyID0gaW5zcGVjdC5CbG9ja0ZpbmRlcigpCi0gICAgICAgICMg
aWYgd2Ugc3RhcnQgd2l0aCBhbiBpbmRlbnRlZCBsaW5lLCBwdXQgYmxvY2tmaW5kZXIgdG8gInN0
YXJ0ZWQiIG1vZGUKLSAgICAgICAgYmxvY2tfZmluZGVyLnN0YXJ0ZWQgPSBzb3VyY2UubGluZXNb
c3RhcnRdWzBdLmlzc3BhY2UoKQotICAgICAgICBpdCA9ICgoeCArICJcbiIpIGZvciB4IGluIHNv
dXJjZS5saW5lc1tzdGFydDplbmRdKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmb3IgdG9r
IGluIHRva2VuaXplLmdlbmVyYXRlX3Rva2VucyhsYW1iZGE6IG5leHQoaXQpKToKLSAgICAgICAg
ICAgICAgICBibG9ja19maW5kZXIudG9rZW5lYXRlcigqdG9rKQotICAgICAgICBleGNlcHQgKGlu
c3BlY3QuRW5kT2ZCbG9jaywgSW5kZW50YXRpb25FcnJvcik6Ci0gICAgICAgICAgICBlbmQgPSBi
bG9ja19maW5kZXIubGFzdCArIHN0YXJ0Ci0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAg
ICAgICAgICBwYXNzCi0KLSAgICAjIHRoZSBlbmQgbWlnaHQgc3RpbGwgcG9pbnQgdG8gYSBjb21t
ZW50IG9yIGVtcHR5IGxpbmUsIGNvcnJlY3QgaXQKLSAgICB3aGlsZSBlbmQ6Ci0gICAgICAgIGxp
bmUgPSBzb3VyY2UubGluZXNbZW5kIC0gMV0ubHN0cmlwKCkKLSAgICAgICAgaWYgbGluZS5zdGFy
dHN3aXRoKCIjIikgb3Igbm90IGxpbmU6Ci0gICAgICAgICAgICBlbmQgLT0gMQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgYnJlYWsKLSAgICByZXR1cm4gYXN0bm9kZSwgc3RhcnQsIGVuZAot
Ci0KLWRlZiBnZXRzdGF0ZW1lbnRyYW5nZV9vbGQobGluZW5vLCBzb3VyY2UsIGFzc2VydGlvbj1G
YWxzZSk6Ci0gICAgIiIiIHJldHVybiAoc3RhcnQsIGVuZCkgdHVwbGUgd2hpY2ggc3BhbnMgdGhl
IG1pbmltYWwKLSAgICAgICAgc3RhdGVtZW50IHJlZ2lvbiB3aGljaCBjb250YWluaW5nIHRoZSBn
aXZlbiBsaW5lbm8uCi0gICAgICAgIHJhaXNlIGFuIEluZGV4RXJyb3IgaWYgbm8gc3VjaCBzdGF0
ZW1lbnRyYW5nZSBjYW4gYmUgZm91bmQuCi0gICAgIiIiCi0gICAgIyBYWFggdGhpcyBsb2dpYyBp
cyBvbmx5IHVzZWQgb24gcHl0aG9uMi40IGFuZCBiZWxvdwotICAgICMgMS4gZmluZCB0aGUgc3Rh
cnQgb2YgdGhlIHN0YXRlbWVudAotICAgIGZyb20gY29kZW9wIGltcG9ydCBjb21waWxlX2NvbW1h
bmQKLSAgICBmb3Igc3RhcnQgaW4gcmFuZ2UobGluZW5vLCAtMSwgLTEpOgotICAgICAgICBpZiBh
c3NlcnRpb246Ci0gICAgICAgICAgICBsaW5lID0gc291cmNlLmxpbmVzW3N0YXJ0XQotICAgICAg
ICAgICAgIyB0aGUgZm9sbG93aW5nIGxpbmVzIGFyZSBub3QgZnVsbHkgdGVzdGVkLCBjaGFuZ2Ug
d2l0aCBjYXJlCi0gICAgICAgICAgICBpZiAnc3VwZXInIGluIGxpbmUgYW5kICdzZWxmJyBpbiBs
aW5lIGFuZCAnX19pbml0X18nIGluIGxpbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgSW5kZXhF
cnJvcigibGlrZWx5IGEgc3ViY2xhc3MiKQotICAgICAgICAgICAgaWYgImFzc2VydCIgbm90IGlu
IGxpbmUgYW5kICJyYWlzZSIgbm90IGluIGxpbmU6Ci0gICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgdHJ5bGluZXMgPSBzb3VyY2UubGluZXNbc3RhcnQ6bGluZW5vICsgMV0KLSAgICAg
ICAgIyBxdWljayBoYWNrIHRvIHByZXBhcmUgcGFyc2luZyBhbiBpbmRlbnRlZCBsaW5lIHdpdGgK
LSAgICAgICAgIyBjb21waWxlX2NvbW1hbmQoKSAod2hpY2ggZXJyb3JzIG9uICJyZXR1cm4iIG91
dHNpZGUgZGVmcykKLSAgICAgICAgdHJ5bGluZXMuaW5zZXJ0KDAsICdkZWYgeHh4KCk6JykKLSAg
ICAgICAgdHJ5c291cmNlID0gJ1xuICcuam9pbih0cnlsaW5lcykKLSAgICAgICAgIyAgICAgICAg
ICAgICAgXiBzcGFjZSBoZXJlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbXBpbGVfY29t
bWFuZCh0cnlzb3VyY2UpCi0gICAgICAgIGV4Y2VwdCAoU3ludGF4RXJyb3IsIE92ZXJmbG93RXJy
b3IsIFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAjIDIuIGZp
bmQgdGhlIGVuZCBvZiB0aGUgc3RhdGVtZW50Ci0gICAgICAgIGZvciBlbmQgaW4gcmFuZ2UobGlu
ZW5vICsgMSwgbGVuKHNvdXJjZSkgKyAxKToKLSAgICAgICAgICAgIHRyeXNvdXJjZSA9IHNvdXJj
ZVtzdGFydDplbmRdCi0gICAgICAgICAgICBpZiB0cnlzb3VyY2UuaXNwYXJzZWFibGUoKToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gc3RhcnQsIGVuZAotICAgIHJhaXNlIFN5bnRheEVycm9yKCJu
byB2YWxpZCBzb3VyY2UgcmFuZ2UgYXJvdW5kIGxpbmUgJWQgIiAlIChsaW5lbm8sKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L19jb2RlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4MjIzMzRmM2Y4ZWRhOTY2YTJkMThkZWRhNzJlOWQ5MDJmODdkNzFiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvX2NvZGUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9fY29kZS9fcHkydHJhY2ViYWNrLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9f
Y29kZS9jb2RlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9zb3VyY2UucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGE0OGU5OGM4NWFhMmJiZGU4ZGY1YzA3M2JhOWI2NDVmY2MzMjU3YjYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9hc3NlcnRpb24vX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBA
QAotIiIiCi1zdXBwb3J0IGZvciBwcmVzZW50aW5nIGRldGFpbGVkIGluZm9ybWF0aW9uIGluIGZh
aWxpbmcgYXNzZXJ0aW9ucy4KLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHN5cwotaW1wb3J0IHNpeAot
Ci1mcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB1dGlsCi1mcm9tIF9weXRlc3QuYXNzZXJ0
aW9uIGltcG9ydCByZXdyaXRlCi1mcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB0cnVuY2F0
ZQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIu
Z2V0Z3JvdXAoImRlYnVnY29uZmlnIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tYXNzZXJ0JywK
LSAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAgICAgICAg
IGRlc3Q9ImFzc2VydG1vZGUiLAotICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPSgicmV3cml0
ZSIsICJwbGFpbiIsKSwKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0icmV3cml0ZSIsCi0g
ICAgICAgICAgICAgICAgICAgIG1ldGF2YXI9Ik1PREUiLAotICAgICAgICAgICAgICAgICAgICBo
ZWxwPSIiIkNvbnRyb2wgYXNzZXJ0aW9uIGRlYnVnZ2luZyB0b29scy4gICdwbGFpbicKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtcyBubyBhc3NlcnRpb24gZGVidWdnaW5nLiAg
J3Jld3JpdGUnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoZSBkZWZhdWx0KSByZXdy
aXRlcyBhc3NlcnQgc3RhdGVtZW50cyBpbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3QgbW9kdWxlcyBvbiBpbXBvcnQgdG8gcHJvdmlkZSBhc3NlcnQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBleHByZXNzaW9uIGluZm9ybWF0aW9uLiIiIikKLQotCi1kZWYgcmVnaXN0ZXJf
YXNzZXJ0X3Jld3JpdGUoKm5hbWVzKToKLSAgICAiIiJSZWdpc3RlciBvbmUgb3IgbW9yZSBtb2R1
bGUgbmFtZXMgdG8gYmUgcmV3cml0dGVuIG9uIGltcG9ydC4KLQotICAgIFRoaXMgZnVuY3Rpb24g
d2lsbCBtYWtlIHN1cmUgdGhhdCB0aGlzIG1vZHVsZSBvciBhbGwgbW9kdWxlcyBpbnNpZGUKLSAg
ICB0aGUgcGFja2FnZSB3aWxsIGdldCB0aGVpciBhc3NlcnQgc3RhdGVtZW50cyByZXdyaXR0ZW4u
Ci0gICAgVGh1cyB5b3Ugc2hvdWxkIG1ha2Ugc3VyZSB0byBjYWxsIHRoaXMgYmVmb3JlIHRoZSBt
b2R1bGUgaXMKLSAgICBhY3R1YWxseSBpbXBvcnRlZCwgdXN1YWxseSBpbiB5b3VyIF9faW5pdF9f
LnB5IGlmIHlvdSBhcmUgYSBwbHVnaW4KLSAgICB1c2luZyBhIHBhY2thZ2UuCi0KLSAgICA6cmFp
c2UgVHlwZUVycm9yOiBpZiB0aGUgZ2l2ZW4gbW9kdWxlIG5hbWVzIGFyZSBub3Qgc3RyaW5ncy4K
LSAgICAiIiIKLSAgICBmb3IgbmFtZSBpbiBuYW1lczoKLSAgICAgICAgaWYgbm90IGlzaW5zdGFu
Y2UobmFtZSwgc3RyKToKLSAgICAgICAgICAgIG1zZyA9ICdleHBlY3RlZCBtb2R1bGUgbmFtZXMg
YXMgKmFyZ3MsIGdvdCB7MH0gaW5zdGVhZCcKLSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvciht
c2cuZm9ybWF0KHJlcHIobmFtZXMpKSkKLSAgICBmb3IgaG9vayBpbiBzeXMubWV0YV9wYXRoOgot
ICAgICAgICBpZiBpc2luc3RhbmNlKGhvb2ssIHJld3JpdGUuQXNzZXJ0aW9uUmV3cml0aW5nSG9v
ayk6Ci0gICAgICAgICAgICBpbXBvcnRob29rID0gaG9vawotICAgICAgICAgICAgYnJlYWsKLSAg
ICBlbHNlOgotICAgICAgICBpbXBvcnRob29rID0gRHVtbXlSZXdyaXRlSG9vaygpCi0gICAgaW1w
b3J0aG9vay5tYXJrX3Jld3JpdGUoKm5hbWVzKQotCi0KLWNsYXNzIER1bW15UmV3cml0ZUhvb2so
b2JqZWN0KToKLSAgICAiIiJBIG5vLW9wIGltcG9ydCBob29rIGZvciB3aGVuIHJld3JpdGluZyBp
cyBkaXNhYmxlZC4iIiIKLQotICAgIGRlZiBtYXJrX3Jld3JpdGUoc2VsZiwgKm5hbWVzKToKLSAg
ICAgICAgcGFzcwotCi0KLWNsYXNzIEFzc2VydGlvblN0YXRlOgotICAgICIiIlN0YXRlIGZvciB0
aGUgYXNzZXJ0aW9uIHBsdWdpbi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcs
IG1vZGUpOgotICAgICAgICBzZWxmLm1vZGUgPSBtb2RlCi0gICAgICAgIHNlbGYudHJhY2UgPSBj
b25maWcudHJhY2Uucm9vdC5nZXQoImFzc2VydGlvbiIpCi0gICAgICAgIHNlbGYuaG9vayA9IE5v
bmUKLQotCi1kZWYgaW5zdGFsbF9pbXBvcnRob29rKGNvbmZpZyk6Ci0gICAgIiIiVHJ5IHRvIGlu
c3RhbGwgdGhlIHJld3JpdGUgaG9vaywgcmFpc2UgU3lzdGVtRXJyb3IgaWYgaXQgZmFpbHMuIiIi
Ci0gICAgIyBKeXRob24gaGFzIGFuIEFTVCBidWcgdGhhdCBtYWtlIHRoZSBhc3NlcnRpb24gcmV3
cml0aW5nIGhvb2sgbWFsZnVuY3Rpb24uCi0gICAgaWYgKHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRo
KCdqYXZhJykpOgotICAgICAgICByYWlzZSBTeXN0ZW1FcnJvcigncmV3cml0ZSBub3Qgc3VwcG9y
dGVkJykKLQotICAgIGNvbmZpZy5fYXNzZXJ0c3RhdGUgPSBBc3NlcnRpb25TdGF0ZShjb25maWcs
ICdyZXdyaXRlJykKLSAgICBjb25maWcuX2Fzc2VydHN0YXRlLmhvb2sgPSBob29rID0gcmV3cml0
ZS5Bc3NlcnRpb25SZXdyaXRpbmdIb29rKGNvbmZpZykKLSAgICBzeXMubWV0YV9wYXRoLmluc2Vy
dCgwLCBob29rKQotICAgIGNvbmZpZy5fYXNzZXJ0c3RhdGUudHJhY2UoJ2luc3RhbGxlZCByZXdy
aXRlIGltcG9ydCBob29rJykKLQotICAgIGRlZiB1bmRvKCk6Ci0gICAgICAgIGhvb2sgPSBjb25m
aWcuX2Fzc2VydHN0YXRlLmhvb2sKLSAgICAgICAgaWYgaG9vayBpcyBub3QgTm9uZSBhbmQgaG9v
ayBpbiBzeXMubWV0YV9wYXRoOgotICAgICAgICAgICAgc3lzLm1ldGFfcGF0aC5yZW1vdmUoaG9v
aykKLQotICAgIGNvbmZpZy5hZGRfY2xlYW51cCh1bmRvKQotICAgIHJldHVybiBob29rCi0KLQot
ZGVmIHB5dGVzdF9jb2xsZWN0aW9uKHNlc3Npb24pOgotICAgICMgdGhpcyBob29rIGlzIG9ubHkg
Y2FsbGVkIHdoZW4gdGVzdCBtb2R1bGVzIGFyZSBjb2xsZWN0ZWQKLSAgICAjIHNvIGZvciBleGFt
cGxlIG5vdCBpbiB0aGUgbWFzdGVyIHByb2Nlc3Mgb2YgcHl0ZXN0LXhkaXN0Ci0gICAgIyAod2hp
Y2ggZG9lcyBub3QgY29sbGVjdCB0ZXN0IG1vZHVsZXMpCi0gICAgYXNzZXJ0c3RhdGUgPSBnZXRh
dHRyKHNlc3Npb24uY29uZmlnLCAnX2Fzc2VydHN0YXRlJywgTm9uZSkKLSAgICBpZiBhc3NlcnRz
dGF0ZToKLSAgICAgICAgaWYgYXNzZXJ0c3RhdGUuaG9vayBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIGFzc2VydHN0YXRlLmhvb2suc2V0X3Nlc3Npb24oc2Vzc2lvbikKLQotCi1kZWYgcHl0ZXN0
X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgIiIiU2V0dXAgdGhlIHB5dGVzdF9hc3NlcnRyZXBy
X2NvbXBhcmUgaG9vawotCi0gICAgVGhlIG5ld2ludGVycHJldCBhbmQgcmV3cml0ZSBtb2R1bGVz
IHdpbGwgdXNlIHV0aWwuX3JlcHJjb21wYXJlIGlmCi0gICAgaXQgZXhpc3RzIHRvIHVzZSBjdXN0
b20gcmVwb3J0aW5nIHZpYSB0aGUKLSAgICBweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlIGhvb2su
ICBUaGlzIHNldHMgdXAgdGhpcyBjdXN0b20KLSAgICBjb21wYXJpc29uIGZvciB0aGUgdGVzdC4K
LSAgICAiIiIKLSAgICBkZWYgY2FsbGJpbnJlcHIob3AsIGxlZnQsIHJpZ2h0KToKLSAgICAgICAg
IiIiQ2FsbCB0aGUgcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZSBob29rIGFuZCBwcmVwYXJlIHRo
ZSByZXN1bHQKLQotICAgICAgICBUaGlzIHVzZXMgdGhlIGZpcnN0IHJlc3VsdCBmcm9tIHRoZSBo
b29rIGFuZCB0aGVuIGVuc3VyZXMgdGhlCi0gICAgICAgIGZvbGxvd2luZzoKLSAgICAgICAgKiBP
dmVybHkgdmVyYm9zZSBleHBsYW5hdGlvbnMgYXJlIHRydW5jYXRlZCB1bmxlc3MgY29uZmlndXJl
ZCBvdGhlcndpc2UKLSAgICAgICAgICAoZWcuIGlmIHJ1bm5pbmcgaW4gdmVyYm9zZSBtb2RlKS4K
LSAgICAgICAgKiBFbWJlZGRlZCBuZXdsaW5lcyBhcmUgZXNjYXBlZCB0byBoZWxwIHV0aWwuZm9y
bWF0X2V4cGxhbmF0aW9uKCkKLSAgICAgICAgICBsYXRlci4KLSAgICAgICAgKiBJZiB0aGUgcmV3
cml0ZSBtb2RlIGlzIHVzZWQgZW1iZWRkZWQgJS1jaGFyYWN0ZXJzIGFyZSByZXBsYWNlZAotICAg
ICAgICAgIHRvIHByb3RlY3QgbGF0ZXIgJSBmb3JtYXR0aW5nLgotCi0gICAgICAgIFRoZSByZXN1
bHQgY2FuIGJlIGZvcm1hdHRlZCBieSB1dGlsLmZvcm1hdF9leHBsYW5hdGlvbigpIGZvcgotICAg
ICAgICBwcmV0dHkgcHJpbnRpbmcuCi0gICAgICAgICIiIgotICAgICAgICBob29rX3Jlc3VsdCA9
IGl0ZW0uaWhvb2sucHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZSgKLSAgICAgICAgICAgIGNvbmZp
Zz1pdGVtLmNvbmZpZywgb3A9b3AsIGxlZnQ9bGVmdCwgcmlnaHQ9cmlnaHQpCi0gICAgICAgIGZv
ciBuZXdfZXhwbCBpbiBob29rX3Jlc3VsdDoKLSAgICAgICAgICAgIGlmIG5ld19leHBsOgotICAg
ICAgICAgICAgICAgIG5ld19leHBsID0gdHJ1bmNhdGUudHJ1bmNhdGVfaWZfcmVxdWlyZWQobmV3
X2V4cGwsIGl0ZW0pCi0gICAgICAgICAgICAgICAgbmV3X2V4cGwgPSBbbGluZS5yZXBsYWNlKCJc
biIsICJcXG4iKSBmb3IgbGluZSBpbiBuZXdfZXhwbF0KLSAgICAgICAgICAgICAgICByZXMgPSBz
aXgudGV4dF90eXBlKCJcbn4iKS5qb2luKG5ld19leHBsKQotICAgICAgICAgICAgICAgIGlmIGl0
ZW0uY29uZmlnLmdldHZhbHVlKCJhc3NlcnRtb2RlIikgPT0gInJld3JpdGUiOgotICAgICAgICAg
ICAgICAgICAgICByZXMgPSByZXMucmVwbGFjZSgiJSIsICIlJSIpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHJlcwotICAgIHV0aWwuX3JlcHJjb21wYXJlID0gY2FsbGJpbnJlcHIKLQotCi1kZWYg
cHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRlbSk6Ci0gICAgdXRpbC5fcmVwcmNvbXBhcmUgPSBO
b25lCi0KLQotZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNlc3Npb24pOgotICAgIGFzc2VydHN0
YXRlID0gZ2V0YXR0cihzZXNzaW9uLmNvbmZpZywgJ19hc3NlcnRzdGF0ZScsIE5vbmUpCi0gICAg
aWYgYXNzZXJ0c3RhdGU6Ci0gICAgICAgIGlmIGFzc2VydHN0YXRlLmhvb2sgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICBhc3NlcnRzdGF0ZS5ob29rLnNldF9zZXNzaW9uKE5vbmUpCi0KLQotIyBF
eHBvc2UgdGhpcyBwbHVnaW4ncyBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIHB5dGVzdF9hc3NlcnRy
ZXByX2NvbXBhcmUgaG9vawotcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZSA9IHV0aWwuYXNzZXJ0
cmVwcl9jb21wYXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9y
ZXdyaXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vcmV3cml0ZS5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjY0MzU4ZjQ5MGJjOTFhZjlhNWVjNTI2NTJiNmU4
YjJiZTBhY2M2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9yZXdyaXRlLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsOTQ4ICswLDAgQEAKLSIiIlJld3JpdGUgYXNzZXJ0aW9uIEFTVCB0byBwcm9kdWNlIG5p
Y2UgZXJyb3IgbWVzc2FnZXMiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w
b3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBhc3QKLWltcG9ydCBfYXN0Ci1p
bXBvcnQgZXJybm8KLWltcG9ydCBpdGVydG9vbHMKLWltcG9ydCBpbXAKLWltcG9ydCBtYXJzaGFs
Ci1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0IHNpeAotaW1wb3J0IHN0cnVjdAotaW1wb3J0
IHN5cwotaW1wb3J0IHR5cGVzCi0KLWltcG9ydCBweQotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBp
bXBvcnQgdXRpbAotCi0KLSMgcHl0ZXN0IGNhY2hlcyByZXdyaXR0ZW4gcHljcyBpbiBfX3B5Y2Fj
aGVfXy4KLWlmIGhhc2F0dHIoaW1wLCAiZ2V0X3RhZyIpOgotICAgIFBZVEVTVF9UQUcgPSBpbXAu
Z2V0X3RhZygpICsgIi1QWVRFU1QiCi1lbHNlOgotICAgIGlmIGhhc2F0dHIoc3lzLCAicHlweV92
ZXJzaW9uX2luZm8iKToKLSAgICAgICAgaW1wbCA9ICJweXB5IgotICAgIGVsaWYgc3lzLnBsYXRm
b3JtID09ICJqYXZhIjoKLSAgICAgICAgaW1wbCA9ICJqeXRob24iCi0gICAgZWxzZToKLSAgICAg
ICAgaW1wbCA9ICJjcHl0aG9uIgotICAgIHZlciA9IHN5cy52ZXJzaW9uX2luZm8KLSAgICBQWVRF
U1RfVEFHID0gIiVzLSVzJXMtUFlURVNUIiAlIChpbXBsLCB2ZXJbMF0sIHZlclsxXSkKLSAgICBk
ZWwgdmVyLCBpbXBsCi0KLVBZQ19FWFQgPSAiLnB5IiArIChfX2RlYnVnX18gYW5kICJjIiBvciAi
byIpCi1QWUNfVEFJTCA9ICIuIiArIFBZVEVTVF9UQUcgKyBQWUNfRVhUCi0KLUFTQ0lJX0lTX0RF
RkFVTFRfRU5DT0RJTkcgPSBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMwotCi1pZiBzeXMudmVyc2lv
bl9pbmZvID49ICgzLCA1KToKLSAgICBhc3RfQ2FsbCA9IGFzdC5DYWxsCi1lbHNlOgotICAgIGRl
ZiBhc3RfQ2FsbChhLCBiLCBjKToKLSAgICAgICAgcmV0dXJuIGFzdC5DYWxsKGEsIGIsIGMsIE5v
bmUsIE5vbmUpCi0KLQotY2xhc3MgQXNzZXJ0aW9uUmV3cml0aW5nSG9vayhvYmplY3QpOgotICAg
ICIiIlBFUDMwMiBJbXBvcnQgaG9vayB3aGljaCByZXdyaXRlcyBhc3NlcnRzLiIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmln
Ci0gICAgICAgIHNlbGYuZm5wYXRzID0gY29uZmlnLmdldGluaSgicHl0aG9uX2ZpbGVzIikKLSAg
ICAgICAgc2VsZi5zZXNzaW9uID0gTm9uZQotICAgICAgICBzZWxmLm1vZHVsZXMgPSB7fQotICAg
ICAgICBzZWxmLl9yZXdyaXR0ZW5fbmFtZXMgPSBzZXQoKQotICAgICAgICBzZWxmLl9yZWdpc3Rl
cl93aXRoX3BrZ19yZXNvdXJjZXMoKQotICAgICAgICBzZWxmLl9tdXN0X3Jld3JpdGUgPSBzZXQo
KQotCi0gICAgZGVmIHNldF9zZXNzaW9uKHNlbGYsIHNlc3Npb24pOgotICAgICAgICBzZWxmLnNl
c3Npb24gPSBzZXNzaW9uCi0KLSAgICBkZWYgZmluZF9tb2R1bGUoc2VsZiwgbmFtZSwgcGF0aD1O
b25lKToKLSAgICAgICAgc3RhdGUgPSBzZWxmLmNvbmZpZy5fYXNzZXJ0c3RhdGUKLSAgICAgICAg
c3RhdGUudHJhY2UoImZpbmRfbW9kdWxlIGNhbGxlZCBmb3I6ICVzIiAlIG5hbWUpCi0gICAgICAg
IG5hbWVzID0gbmFtZS5yc3BsaXQoIi4iLCAxKQotICAgICAgICBsYXN0bmFtZSA9IG5hbWVzWy0x
XQotICAgICAgICBwdGggPSBOb25lCi0gICAgICAgIGlmIHBhdGggaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICAjIFN0YXJ0aW5nIHdpdGggUHl0aG9uIDMuMywgcGF0aCBpcyBhIF9OYW1lc3BhY2VQ
YXRoKCksIHdoaWNoCi0gICAgICAgICAgICAjIGNhdXNlcyBwcm9ibGVtcyBpZiBub3QgY29udmVy
dGVkIHRvIGxpc3QuCi0gICAgICAgICAgICBwYXRoID0gbGlzdChwYXRoKQotICAgICAgICAgICAg
aWYgbGVuKHBhdGgpID09IDE6Ci0gICAgICAgICAgICAgICAgcHRoID0gcGF0aFswXQotICAgICAg
ICBpZiBwdGggaXMgTm9uZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBmZCwg
Zm4sIGRlc2MgPSBpbXAuZmluZF9tb2R1bGUobGFzdG5hbWUsIHBhdGgpCi0gICAgICAgICAgICBl
eGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAg
ICAgIGlmIGZkIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGZkLmNsb3NlKCkKLSAgICAg
ICAgICAgIHRwID0gZGVzY1syXQotICAgICAgICAgICAgaWYgdHAgPT0gaW1wLlBZX0NPTVBJTEVE
OgotICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoaW1wLCAic291cmNlX2Zyb21fY2FjaGUiKToK
LSAgICAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAgICAgZm4gPSBp
bXAuc291cmNlX2Zyb21fY2FjaGUoZm4pCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1
ZUVycm9yOgotICAgICAgICAgICAgICAgICAgICAgICAgIyBQeXRob24gMyBkb2Vzbid0IGxpa2Ug
b3JwaGFuZWQgYnV0IHN0aWxsLWltcG9ydGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICMg
LnB5YyBmaWxlcy4KLSAgICAgICAgICAgICAgICAgICAgICAgIGZuID0gZm5bOi0xXQotICAgICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGZuID0gZm5bOi0xXQotICAgICAg
ICAgICAgZWxpZiB0cCAhPSBpbXAuUFlfU09VUkNFOgotICAgICAgICAgICAgICAgICMgRG9uJ3Qg
a25vdyB3aGF0IHRoaXMgaXMuCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIGZuID0gb3MucGF0aC5qb2luKHB0aCwgbmFtZS5ycGFydGl0aW9u
KCIuIilbMl0gKyAiLnB5IikKLQotICAgICAgICBmbl9weXBhdGggPSBweS5wYXRoLmxvY2FsKGZu
KQotICAgICAgICBpZiBub3Qgc2VsZi5fc2hvdWxkX3Jld3JpdGUobmFtZSwgZm5fcHlwYXRoLCBz
dGF0ZSk6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgIHNlbGYuX3Jld3JpdHRl
bl9uYW1lcy5hZGQobmFtZSkKLQotICAgICAgICAjIFRoZSByZXF1ZXN0ZWQgbW9kdWxlIGxvb2tz
IGxpa2UgYSB0ZXN0IGZpbGUsIHNvIHJld3JpdGUgaXQuIFRoaXMgaXMKLSAgICAgICAgIyB0aGUg
bW9zdCBtYWdpY2FsIHBhcnQgb2YgdGhlIHByb2Nlc3M6IGxvYWQgdGhlIHNvdXJjZSwgcmV3cml0
ZSB0aGUKLSAgICAgICAgIyBhc3NlcnRzLCBhbmQgbG9hZCB0aGUgcmV3cml0dGVuIHNvdXJjZS4g
V2UgYWxzbyBjYWNoZSB0aGUgcmV3cml0dGVuCi0gICAgICAgICMgbW9kdWxlIGNvZGUgaW4gYSBz
cGVjaWFsIHB5Yy4gV2UgbXVzdCBiZSBhd2FyZSBvZiB0aGUgcG9zc2liaWxpdHkgb2YKLSAgICAg
ICAgIyBjb25jdXJyZW50IHB5dGVzdCBwcm9jZXNzZXMgcmV3cml0aW5nIGFuZCBsb2FkaW5nIHB5
Y3MuIFRvIGF2b2lkCi0gICAgICAgICMgdHJpY2t5IHJhY2UgY29uZGl0aW9ucywgd2UgbWFpbnRh
aW4gdGhlIGZvbGxvd2luZyBpbnZhcmlhbnQ6IFRoZQotICAgICAgICAjIGNhY2hlZCBweWMgaXMg
YWx3YXlzIGEgY29tcGxldGUsIHZhbGlkIHB5Yy4gT3BlcmF0aW9ucyBvbiBpdCBtdXN0IGJlCi0g
ICAgICAgICMgYXRvbWljLiBQT1NJWCdzIGF0b21pYyByZW5hbWUgY29tZXMgaW4gaGFuZHkuCi0g
ICAgICAgIHdyaXRlID0gbm90IHN5cy5kb250X3dyaXRlX2J5dGVjb2RlCi0gICAgICAgIGNhY2hl
X2RpciA9IG9zLnBhdGguam9pbihmbl9weXBhdGguZGlybmFtZSwgIl9fcHljYWNoZV9fIikKLSAg
ICAgICAgaWYgd3JpdGU6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgb3MubWtk
aXIoY2FjaGVfZGlyKQotICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgICAgICAg
ICAgZSA9IHN5cy5leGNfaW5mbygpWzFdLmVycm5vCi0gICAgICAgICAgICAgICAgaWYgZSA9PSBl
cnJuby5FRVhJU1Q6Ci0gICAgICAgICAgICAgICAgICAgICMgRWl0aGVyIHRoZSBfX3B5Y2FjaGVf
XyBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHMgKHRoZQotICAgICAgICAgICAgICAgICAgICAjIGNv
bW1vbiBjYXNlKSBvciBpdCdzIGJsb2NrZWQgYnkgYSBub24tZGlyIG5vZGUuIEluIHRoZQotICAg
ICAgICAgICAgICAgICAgICAjIGxhdHRlciBjYXNlLCB3ZSdsbCBpZ25vcmUgaXQgaW4gX3dyaXRl
X3B5Yy4KLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgICAgIGVsaWYgZSBp
biBbZXJybm8uRU5PRU5ULCBlcnJuby5FTk9URElSXToKLSAgICAgICAgICAgICAgICAgICAgIyBP
bmUgb2YgdGhlIHBhdGggY29tcG9uZW50cyB3YXMgbm90IGEgZGlyZWN0b3J5LCBsaWtlbHkKLSAg
ICAgICAgICAgICAgICAgICAgIyBiZWNhdXNlIHdlJ3JlIGluIGEgemlwIGZpbGUuCi0gICAgICAg
ICAgICAgICAgICAgIHdyaXRlID0gRmFsc2UKLSAgICAgICAgICAgICAgICBlbGlmIGUgaW4gW2Vy
cm5vLkVBQ0NFUywgZXJybm8uRVJPRlMsIGVycm5vLkVQRVJNXToKLSAgICAgICAgICAgICAgICAg
ICAgc3RhdGUudHJhY2UoInJlYWQgb25seSBkaXJlY3Rvcnk6ICVyIiAlIGZuX3B5cGF0aC5kaXJu
YW1lKQotICAgICAgICAgICAgICAgICAgICB3cml0ZSA9IEZhbHNlCi0gICAgICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgY2FjaGVfbmFtZSA9IGZu
X3B5cGF0aC5iYXNlbmFtZVs6LTNdICsgUFlDX1RBSUwKLSAgICAgICAgcHljID0gb3MucGF0aC5q
b2luKGNhY2hlX2RpciwgY2FjaGVfbmFtZSkKLSAgICAgICAgIyBOb3RpY2UgdGhhdCBldmVuIGlm
IHdlJ3JlIGluIGEgcmVhZC1vbmx5IGRpcmVjdG9yeSwgSSdtIGdvaW5nCi0gICAgICAgICMgdG8g
Y2hlY2sgZm9yIGEgY2FjaGVkIHB5Yy4gVGhpcyBtYXkgbm90IGJlIG9wdGltYWwuLi4KLSAgICAg
ICAgY28gPSBfcmVhZF9weWMoZm5fcHlwYXRoLCBweWMsIHN0YXRlLnRyYWNlKQotICAgICAgICBp
ZiBjbyBpcyBOb25lOgotICAgICAgICAgICAgc3RhdGUudHJhY2UoInJld3JpdGluZyAlciIgJSAo
Zm4sKSkKLSAgICAgICAgICAgIHNvdXJjZV9zdGF0LCBjbyA9IF9yZXdyaXRlX3Rlc3Qoc2VsZi5j
b25maWcsIGZuX3B5cGF0aCkKLSAgICAgICAgICAgIGlmIGNvIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgIyBQcm9iYWJseSBhIFN5bnRheEVycm9yIGluIHRoZSB0ZXN0LgotICAgICAgICAgICAg
ICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBpZiB3cml0ZToKLSAgICAgICAgICAgICAgICBf
bWFrZV9yZXdyaXR0ZW5fcHljKHN0YXRlLCBzb3VyY2Vfc3RhdCwgcHljLCBjbykKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJmb3VuZCBjYWNoZWQgcmV3cml0dGVuIHB5
YyBmb3IgJXIiICUgKGZuLCkpCi0gICAgICAgIHNlbGYubW9kdWxlc1tuYW1lXSA9IGNvLCBweWMK
LSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgIGRlZiBfc2hvdWxkX3Jld3JpdGUoc2VsZiwgbmFt
ZSwgZm5fcHlwYXRoLCBzdGF0ZSk6Ci0gICAgICAgICMgYWx3YXlzIHJld3JpdGUgY29uZnRlc3Qg
ZmlsZXMKLSAgICAgICAgZm4gPSBzdHIoZm5fcHlwYXRoKQotICAgICAgICBpZiBmbl9weXBhdGgu
YmFzZW5hbWUgPT0gJ2NvbmZ0ZXN0LnB5JzoKLSAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJyZXdy
aXRpbmcgY29uZnRlc3QgZmlsZTogJXIiICUgKGZuLCkpCi0gICAgICAgICAgICByZXR1cm4gVHJ1
ZQotCi0gICAgICAgIGlmIHNlbGYuc2Vzc2lvbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGlm
IHNlbGYuc2Vzc2lvbi5pc2luaXRwYXRoKGZuKToKLSAgICAgICAgICAgICAgICBzdGF0ZS50cmFj
ZSgibWF0Y2hlZCB0ZXN0IGZpbGUgKHdhcyBzcGVjaWZpZWQgb24gY21kbGluZSk6ICVyIiAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZuLCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IFRydWUKLQotICAgICAgICAjIG1vZHVsZXMgbm90IHBhc3NlZCBleHBsaWNpdGx5IG9uIHRoZSBj
b21tYW5kIGxpbmUgYXJlIG9ubHkKLSAgICAgICAgIyByZXdyaXR0ZW4gaWYgdGhleSBtYXRjaCB0
aGUgbmFtaW5nIGNvbnZlbnRpb24gZm9yIHRlc3QgZmlsZXMKLSAgICAgICAgZm9yIHBhdCBpbiBz
ZWxmLmZucGF0czoKLSAgICAgICAgICAgIGlmIGZuX3B5cGF0aC5mbm1hdGNoKHBhdCk6Ci0gICAg
ICAgICAgICAgICAgc3RhdGUudHJhY2UoIm1hdGNoZWQgdGVzdCBmaWxlICVyIiAlIChmbiwpKQot
ICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAgICAgZm9yIG1hcmtlZCBpbiBzZWxm
Ll9tdXN0X3Jld3JpdGU6Ci0gICAgICAgICAgICBpZiBuYW1lID09IG1hcmtlZCBvciBuYW1lLnN0
YXJ0c3dpdGgobWFya2VkICsgJy4nKToKLSAgICAgICAgICAgICAgICBzdGF0ZS50cmFjZSgibWF0
Y2hlZCBtYXJrZWQgZmlsZSAlciAoZnJvbSAlcikiICUgKG5hbWUsIG1hcmtlZCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBt
YXJrX3Jld3JpdGUoc2VsZiwgKm5hbWVzKToKLSAgICAgICAgIiIiTWFyayBpbXBvcnQgbmFtZXMg
YXMgbmVlZGluZyB0byBiZSByZXdyaXR0ZW4uCi0KLSAgICAgICAgVGhlIG5hbWVkIG1vZHVsZSBv
ciBwYWNrYWdlIGFzIHdlbGwgYXMgYW55IG5lc3RlZCBtb2R1bGVzIHdpbGwKLSAgICAgICAgYmUg
cmV3cml0dGVuIG9uIGltcG9ydC4KLSAgICAgICAgIiIiCi0gICAgICAgIGFscmVhZHlfaW1wb3J0
ZWQgPSBzZXQobmFtZXMpLmludGVyc2VjdGlvbihzZXQoc3lzLm1vZHVsZXMpKQotICAgICAgICBp
ZiBhbHJlYWR5X2ltcG9ydGVkOgotICAgICAgICAgICAgZm9yIG5hbWUgaW4gYWxyZWFkeV9pbXBv
cnRlZDoKLSAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBzZWxmLl9yZXdyaXR0ZW5fbmFt
ZXM6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3dhcm5fYWxyZWFkeV9pbXBvcnRlZChuYW1l
KQotICAgICAgICBzZWxmLl9tdXN0X3Jld3JpdGUudXBkYXRlKG5hbWVzKQotCi0gICAgZGVmIF93
YXJuX2FscmVhZHlfaW1wb3J0ZWQoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHNlbGYuY29uZmlnLndh
cm4oCi0gICAgICAgICAgICAnUDEnLAotICAgICAgICAgICAgJ01vZHVsZSBhbHJlYWR5IGltcG9y
dGVkIHNvIGNhbm5vdCBiZSByZXdyaXR0ZW46ICVzJyAlIG5hbWUpCi0KLSAgICBkZWYgbG9hZF9t
b2R1bGUoc2VsZiwgbmFtZSk6Ci0gICAgICAgICMgSWYgdGhlcmUgaXMgYW4gZXhpc3RpbmcgbW9k
dWxlIG9iamVjdCBuYW1lZCAnZnVsbG5hbWUnIGluCi0gICAgICAgICMgc3lzLm1vZHVsZXMsIHRo
ZSBsb2FkZXIgbXVzdCB1c2UgdGhhdCBleGlzdGluZyBtb2R1bGUuIChPdGhlcndpc2UsCi0gICAg
ICAgICMgdGhlIHJlbG9hZCgpIGJ1aWx0aW4gd2lsbCBub3Qgd29yayBjb3JyZWN0bHkuKQotICAg
ICAgICBpZiBuYW1lIGluIHN5cy5tb2R1bGVzOgotICAgICAgICAgICAgcmV0dXJuIHN5cy5tb2R1
bGVzW25hbWVdCi0KLSAgICAgICAgY28sIHB5YyA9IHNlbGYubW9kdWxlcy5wb3AobmFtZSkKLSAg
ICAgICAgIyBJIHdpc2ggSSBjb3VsZCBqdXN0IGNhbGwgaW1wLmxvYWRfY29tcGlsZWQgaGVyZSwg
YnV0IF9fZmlsZV9fIGhhcyB0bwotICAgICAgICAjIGJlIHNldCBwcm9wZXJseS4gSW4gUHl0aG9u
IDMuMissIHRoaXMgYWxsIHdvdWxkIGJlIGhhbmRsZWQgY29ycmVjdGx5Ci0gICAgICAgICMgYnkg
bG9hZF9jb21waWxlZC4KLSAgICAgICAgbW9kID0gc3lzLm1vZHVsZXNbbmFtZV0gPSBpbXAubmV3
X21vZHVsZShuYW1lKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBtb2QuX19maWxlX18gPSBj
by5jb19maWxlbmFtZQotICAgICAgICAgICAgIyBOb3JtYWxseSwgdGhpcyBhdHRyaWJ1dGUgaXMg
My4yKy4KLSAgICAgICAgICAgIG1vZC5fX2NhY2hlZF9fID0gcHljCi0gICAgICAgICAgICBtb2Qu
X19sb2FkZXJfXyA9IHNlbGYKLSAgICAgICAgICAgIHB5LmJ1aWx0aW4uZXhlY18oY28sIG1vZC5f
X2RpY3RfXykKLSAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgICAgICBpZiBuYW1lIGlu
IHN5cy5tb2R1bGVzOgotICAgICAgICAgICAgICAgIGRlbCBzeXMubW9kdWxlc1tuYW1lXQotICAg
ICAgICAgICAgcmFpc2UKLSAgICAgICAgcmV0dXJuIHN5cy5tb2R1bGVzW25hbWVdCi0KLSAgICBk
ZWYgaXNfcGFja2FnZShzZWxmLCBuYW1lKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZmQs
IGZuLCBkZXNjID0gaW1wLmZpbmRfbW9kdWxlKG5hbWUpCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRF
cnJvcjoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBpZiBmZCBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIGZkLmNsb3NlKCkKLSAgICAgICAgdHAgPSBkZXNjWzJdCi0gICAgICAg
IHJldHVybiB0cCA9PSBpbXAuUEtHX0RJUkVDVE9SWQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAg
ZGVmIF9yZWdpc3Rlcl93aXRoX3BrZ19yZXNvdXJjZXMoY2xzKToKLSAgICAgICAgIiIiCi0gICAg
ICAgIEVuc3VyZSBwYWNrYWdlIHJlc291cmNlcyBjYW4gYmUgbG9hZGVkIGZyb20gdGhpcyBsb2Fk
ZXIuIE1heSBiZSBjYWxsZWQKLSAgICAgICAgbXVsdGlwbGUgdGltZXMsIGFzIHRoZSBvcGVyYXRp
b24gaXMgaWRlbXBvdGVudC4KLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGltcG9ydCBwa2dfcmVzb3VyY2VzCi0gICAgICAgICAgICAjIGFjY2VzcyBhbiBhdHRyaWJ1dGUg
aW4gY2FzZSBhIGRlZmVycmVkIGltcG9ydGVyIGlzIHByZXNlbnQKLSAgICAgICAgICAgIHBrZ19y
ZXNvdXJjZXMuX19uYW1lX18KLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAg
ICAgcmV0dXJuCi0KLSAgICAgICAgIyBTaW5jZSBweXRlc3QgdGVzdHMgYXJlIGFsd2F5cyBsb2Nh
dGVkIGluIHRoZSBmaWxlIHN5c3RlbSwgdGhlCi0gICAgICAgICMgIERlZmF1bHRQcm92aWRlciBp
cyBhcHByb3ByaWF0ZS4KLSAgICAgICAgcGtnX3Jlc291cmNlcy5yZWdpc3Rlcl9sb2FkZXJfdHlw
ZShjbHMsIHBrZ19yZXNvdXJjZXMuRGVmYXVsdFByb3ZpZGVyKQotCi0gICAgZGVmIGdldF9kYXRh
KHNlbGYsIHBhdGhuYW1lKToKLSAgICAgICAgIiIiT3B0aW9uYWwgUEVQMzAyIGdldF9kYXRhIEFQ
SS4KLSAgICAgICAgIiIiCi0gICAgICAgIHdpdGggb3BlbihwYXRobmFtZSwgJ3JiJykgYXMgZjoK
LSAgICAgICAgICAgIHJldHVybiBmLnJlYWQoKQotCi0KLWRlZiBfd3JpdGVfcHljKHN0YXRlLCBj
bywgc291cmNlX3N0YXQsIHB5Yyk6Ci0gICAgIyBUZWNobmljYWxseSwgd2UgZG9uJ3QgaGF2ZSB0
byBoYXZlIHRoZSBzYW1lIHB5YyBmb3JtYXQgYXMKLSAgICAjIChDKVB5dGhvbiwgc2luY2UgdGhl
c2UgInB5Y3MiIHNob3VsZCBuZXZlciBiZSBzZWVuIGJ5IGJ1aWx0aW4KLSAgICAjIGltcG9ydC4g
SG93ZXZlciwgdGhlcmUncyBsaXR0bGUgcmVhc29uIGRldmlhdGUsIGFuZCBJIGhvcGUKLSAgICAj
IHNvbWV0aW1lIHRvIGJlIGFibGUgdG8gdXNlIGltcC5sb2FkX2NvbXBpbGVkIHRvIGxvYWQgdGhl
bS4gKFNlZQotICAgICMgdGhlIGNvbW1lbnQgaW4gbG9hZF9tb2R1bGUgYWJvdmUuKQotICAgIHRy
eToKLSAgICAgICAgZnAgPSBvcGVuKHB5YywgIndiIikKLSAgICBleGNlcHQgSU9FcnJvcjoKLSAg
ICAgICAgZXJyID0gc3lzLmV4Y19pbmZvKClbMV0uZXJybm8KLSAgICAgICAgc3RhdGUudHJhY2Uo
ImVycm9yIHdyaXRpbmcgcHljIGZpbGUgYXQgJXM6IGVycm5vPSVzIiAlIChweWMsIGVycikpCi0g
ICAgICAgICMgd2UgaWdub3JlIGFueSBmYWlsdXJlIHRvIHdyaXRlIHRoZSBjYWNoZSBmaWxlCi0g
ICAgICAgICMgdGhlcmUgYXJlIG1hbnkgcmVhc29ucywgcGVybWlzc2lvbi1kZW5pZWQsIF9fcHlj
YWNoZV9fIGJlaW5nIGEKLSAgICAgICAgIyBmaWxlIGV0Yy4KLSAgICAgICAgcmV0dXJuIEZhbHNl
Ci0gICAgdHJ5OgotICAgICAgICBmcC53cml0ZShpbXAuZ2V0X21hZ2ljKCkpCi0gICAgICAgIG10
aW1lID0gaW50KHNvdXJjZV9zdGF0Lm10aW1lKQotICAgICAgICBzaXplID0gc291cmNlX3N0YXQu
c2l6ZSAmIDB4RkZGRkZGRkYKLSAgICAgICAgZnAud3JpdGUoc3RydWN0LnBhY2soIjxsbCIsIG10
aW1lLCBzaXplKSkKLSAgICAgICAgbWFyc2hhbC5kdW1wKGNvLCBmcCkKLSAgICBmaW5hbGx5Ogot
ICAgICAgICBmcC5jbG9zZSgpCi0gICAgcmV0dXJuIFRydWUKLQotCi1STiA9ICJcclxuIi5lbmNv
ZGUoInV0Zi04IikKLU4gPSAiXG4iLmVuY29kZSgidXRmLTgiKQotCi1jb29raWVfcmUgPSByZS5j
b21waWxlKHIiXlsgXHRcZl0qIy4qY29kaW5nWzo9XVsgXHRdKlstXHcuXSsiKQotQk9NX1VURjgg
PSAnXHhlZlx4YmJceGJmJwotCi0KLWRlZiBfcmV3cml0ZV90ZXN0KGNvbmZpZywgZm4pOgotICAg
ICIiIlRyeSB0byByZWFkIGFuZCByZXdyaXRlICpmbiogYW5kIHJldHVybiB0aGUgY29kZSBvYmpl
Y3QuIiIiCi0gICAgc3RhdGUgPSBjb25maWcuX2Fzc2VydHN0YXRlCi0gICAgdHJ5OgotICAgICAg
ICBzdGF0ID0gZm4uc3RhdCgpCi0gICAgICAgIHNvdXJjZSA9IGZuLnJlYWQoInJiIikKLSAgICBl
eGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKLSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKLSAgICBp
ZiBBU0NJSV9JU19ERUZBVUxUX0VOQ09ESU5HOgotICAgICAgICAjIEFTQ0lJIGlzIHRoZSBkZWZh
dWx0IGVuY29kaW5nIGluIFB5dGhvbiAyLiBXaXRob3V0IGEgY29kaW5nCi0gICAgICAgICMgZGVj
bGFyYXRpb24sIFB5dGhvbiAyIHdpbGwgY29tcGxhaW4gYWJvdXQgYW55IGJ5dGVzIGluIHRoZSBm
aWxlCi0gICAgICAgICMgb3V0c2lkZSB0aGUgQVNDSUkgcmFuZ2UuIFNhZGx5LCB0aGlzIGJlaGF2
aW9yIGRvZXMgbm90IGV4dGVuZCB0bwotICAgICAgICAjIGNvbXBpbGUoKSBvciBhc3QucGFyc2Uo
KSwgd2hpY2ggcHJlZmVyIHRvIGludGVycHJldCB0aGUgYnl0ZXMgYXMKLSAgICAgICAgIyBsYXRp
bi0xLiAoQXQgbGVhc3QgdGhleSBwcm9wZXJseSBoYW5kbGUgZXhwbGljaXQgY29kaW5nIGNvb2tp
ZXMuKSBUbwotICAgICAgICAjIHByZXNlcnZlIHRoaXMgZXJyb3IgYmVoYXZpb3IsIHdlIGNvdWxk
IGZvcmNlIGFzdC5wYXJzZSgpIHRvIHVzZSBBU0NJSQotICAgICAgICAjIGFzIHRoZSBlbmNvZGlu
ZyBieSBpbnNlcnRpbmcgYSBjb2RpbmcgY29va2llLiBVbmZvcnR1bmF0ZWx5LCB0aGF0Ci0gICAg
ICAgICMgbWVzc2VzIHVwIGxpbmUgbnVtYmVycy4gVGh1cywgd2UgaGF2ZSB0byBjaGVjayBvdXJz
ZWx2ZXMgaWYgYW55dGhpbmcKLSAgICAgICAgIyBpcyBvdXRzaWRlIHRoZSBBU0NJSSByYW5nZSBp
biB0aGUgY2FzZSBubyBlbmNvZGluZyBpcyBleHBsaWNpdGx5Ci0gICAgICAgICMgZGVjbGFyZWQu
IEZvciBtb3JlIGNvbnRleHQsIHNlZSBpc3N1ZSAjMjY5LiBZYXkgZm9yIFB5dGhvbiAzIHdoaWNo
Ci0gICAgICAgICMgZ2V0cyB0aGlzIHJpZ2h0LgotICAgICAgICBlbmQxID0gc291cmNlLmZpbmQo
IlxuIikKLSAgICAgICAgZW5kMiA9IHNvdXJjZS5maW5kKCJcbiIsIGVuZDEgKyAxKQotICAgICAg
ICBpZiAobm90IHNvdXJjZS5zdGFydHN3aXRoKEJPTV9VVEY4KSBhbmQKLSAgICAgICAgICAgIGNv
b2tpZV9yZS5tYXRjaChzb3VyY2VbMDplbmQxXSkgaXMgTm9uZSBhbmQKLSAgICAgICAgICAgICAg
ICBjb29raWVfcmUubWF0Y2goc291cmNlW2VuZDEgKyAxOmVuZDJdKSBpcyBOb25lKToKLSAgICAg
ICAgICAgIGlmIGhhc2F0dHIoc3RhdGUsICJfaW5kZWNvZGUiKToKLSAgICAgICAgICAgICAgICAj
IGVuY29kaW5ncyBpbXBvcnRlZCB1cyBhZ2Fpbiwgc28gZG9uJ3QgcmV3cml0ZS4KLSAgICAgICAg
ICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQotICAgICAgICAgICAgc3RhdGUuX2luZGVjb2RlID0g
VHJ1ZQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICAgICAgc291cmNlLmRlY29kZSgiYXNjaWkiKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBV
bmljb2RlRGVjb2RlRXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgICMgTGV0IGl0IGZhaWwgaW4g
cmVhbCBpbXBvcnQuCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lLCBOb25lCi0gICAg
ICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGRlbCBzdGF0ZS5faW5kZWNvZGUKLSAg
ICB0cnk6Ci0gICAgICAgIHRyZWUgPSBhc3QucGFyc2Uoc291cmNlKQotICAgIGV4Y2VwdCBTeW50
YXhFcnJvcjoKLSAgICAgICAgIyBMZXQgdGhpcyBwb3AgdXAgYWdhaW4gaW4gdGhlIHJlYWwgaW1w
b3J0LgotICAgICAgICBzdGF0ZS50cmFjZSgiZmFpbGVkIHRvIHBhcnNlOiAlciIgJSAoZm4sKSkK
LSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKLSAgICByZXdyaXRlX2Fzc2VydHModHJlZSwgZm4s
IGNvbmZpZykKLSAgICB0cnk6Ci0gICAgICAgIGNvID0gY29tcGlsZSh0cmVlLCBmbi5zdHJwYXRo
LCAiZXhlYyIsIGRvbnRfaW5oZXJpdD1UcnVlKQotICAgIGV4Y2VwdCBTeW50YXhFcnJvcjoKLSAg
ICAgICAgIyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhpcyBlcnJvciBpcyBmcm9tIHNvbWUgYnVnIGlu
IHRoZQotICAgICAgICAjIGFzc2VydGlvbiByZXdyaXRpbmcsIGJ1dCBJIGRvbid0IGtub3cgb2Yg
YSBmYXN0IHdheSB0byB0ZWxsLgotICAgICAgICBzdGF0ZS50cmFjZSgiZmFpbGVkIHRvIGNvbXBp
bGU6ICVyIiAlIChmbiwpKQotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQotICAgIHJldHVybiBz
dGF0LCBjbwotCi0KLWRlZiBfbWFrZV9yZXdyaXR0ZW5fcHljKHN0YXRlLCBzb3VyY2Vfc3RhdCwg
cHljLCBjbyk6Ci0gICAgIiIiVHJ5IHRvIGR1bXAgcmV3cml0dGVuIGNvZGUgdG8gKnB5YyouIiIi
Ci0gICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoIndpbiIpOgotICAgICAgICAjIFdpbmRv
d3MgZ3JhbnRzIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gb3BlbiBmaWxlcyBhbmQgZG9lc24ndCBoYXZl
IGF0b21pYwotICAgICAgICAjIHJlbmFtZSwgc28ganVzdCB3cml0ZSBpbnRvIHRoZSBmaW5hbCBm
aWxlLgotICAgICAgICBfd3JpdGVfcHljKHN0YXRlLCBjbywgc291cmNlX3N0YXQsIHB5YykKLSAg
ICBlbHNlOgotICAgICAgICAjIFdoZW4gbm90IG9uIHdpbmRvd3MsIGFzc3VtZSByZW5hbWUgaXMg
YXRvbWljLiBEdW1wIHRoZSBjb2RlIG9iamVjdAotICAgICAgICAjIGludG8gYSBmaWxlIHNwZWNp
ZmljIHRvIHRoaXMgcHJvY2VzcyBhbmQgYXRvbWljYWxseSByZXBsYWNlIGl0LgotICAgICAgICBw
cm9jX3B5YyA9IHB5YyArICIuIiArIHN0cihvcy5nZXRwaWQoKSkKLSAgICAgICAgaWYgX3dyaXRl
X3B5YyhzdGF0ZSwgY28sIHNvdXJjZV9zdGF0LCBwcm9jX3B5Yyk6Ci0gICAgICAgICAgICBvcy5y
ZW5hbWUocHJvY19weWMsIHB5YykKLQotCi1kZWYgX3JlYWRfcHljKHNvdXJjZSwgcHljLCB0cmFj
ZT1sYW1iZGEgeDogTm9uZSk6Ci0gICAgIiIiUG9zc2libHkgcmVhZCBhIHB5dGVzdCBweWMgY29u
dGFpbmluZyByZXdyaXR0ZW4gY29kZS4KLQotICAgIFJldHVybiByZXdyaXR0ZW4gY29kZSBpZiBz
dWNjZXNzZnVsIG9yIE5vbmUgaWYgbm90LgotICAgICIiIgotICAgIHRyeToKLSAgICAgICAgZnAg
PSBvcGVuKHB5YywgInJiIikKLSAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAgcmV0dXJuIE5v
bmUKLSAgICB3aXRoIGZwOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBtdGltZSA9IGludChz
b3VyY2UubXRpbWUoKSkKLSAgICAgICAgICAgIHNpemUgPSBzb3VyY2Uuc2l6ZSgpCi0gICAgICAg
ICAgICBkYXRhID0gZnAucmVhZCgxMikKLSAgICAgICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3Ig
YXMgZToKLSAgICAgICAgICAgIHRyYWNlKCdfcmVhZF9weWMoJXMpOiBFbnZpcm9ubWVudEVycm9y
ICVzJyAlIChzb3VyY2UsIGUpKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgIyBD
aGVjayBmb3IgaW52YWxpZCBvciBvdXQgb2YgZGF0ZSBweWMgZmlsZS4KLSAgICAgICAgaWYgKGxl
bihkYXRhKSAhPSAxMiBvciBkYXRhWzo0XSAhPSBpbXAuZ2V0X21hZ2ljKCkgb3IKLSAgICAgICAg
ICAgICAgICBzdHJ1Y3QudW5wYWNrKCI8bGwiLCBkYXRhWzQ6XSkgIT0gKG10aW1lLCBzaXplKSk6
Ci0gICAgICAgICAgICB0cmFjZSgnX3JlYWRfcHljKCVzKTogaW52YWxpZCBvciBvdXQgb2YgZGF0
ZSBweWMnICUgc291cmNlKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgY28gPSBtYXJzaGFsLmxvYWQoZnApCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRp
b24gYXMgZToKLSAgICAgICAgICAgIHRyYWNlKCdfcmVhZF9weWMoJXMpOiBtYXJzaGFsLmxvYWQg
ZXJyb3IgJXMnICUgKHNvdXJjZSwgZSkpCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZShjbywgdHlwZXMuQ29kZVR5cGUpOgotICAgICAgICAgICAgdHJh
Y2UoJ19yZWFkX3B5Yyglcyk6IG5vdCBhIGNvZGUgb2JqZWN0JyAlIHNvdXJjZSkKLSAgICAgICAg
ICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBjbwotCi0KLWRlZiByZXdyaXRlX2Fzc2Vy
dHMobW9kLCBtb2R1bGVfcGF0aD1Ob25lLCBjb25maWc9Tm9uZSk6Ci0gICAgIiIiUmV3cml0ZSB0
aGUgYXNzZXJ0IHN0YXRlbWVudHMgaW4gbW9kLiIiIgotICAgIEFzc2VydGlvblJld3JpdGVyKG1v
ZHVsZV9wYXRoLCBjb25maWcpLnJ1bihtb2QpCi0KLQotZGVmIF9zYWZlcmVwcihvYmopOgotICAg
ICIiIkdldCBhIHNhZmUgcmVwciBvZiBhbiBvYmplY3QgZm9yIGFzc2VydGlvbiBlcnJvciBtZXNz
YWdlcy4KLQotICAgIFRoZSBhc3NlcnRpb24gZm9ybWF0dGluZyAodXRpbC5mb3JtYXRfZXhwbGFu
YXRpb24oKSkgcmVxdWlyZXMKLSAgICBuZXdsaW5lcyB0byBiZSBlc2NhcGVkIHNpbmNlIHRoZXkg
YXJlIGEgc3BlY2lhbCBjaGFyYWN0ZXIgZm9yIGl0LgotICAgIE5vcm1hbGx5IGFzc2VydGlvbi51
dGlsLmZvcm1hdF9leHBsYW5hdGlvbigpIGRvZXMgdGhpcyBidXQgZm9yIGEKLSAgICBjdXN0b20g
cmVwciBpdCBpcyBwb3NzaWJsZSB0byBjb250YWluIG9uZSBvZiB0aGUgc3BlY2lhbCBlc2NhcGUK
LSAgICBzZXF1ZW5jZXMsIGVzcGVjaWFsbHkgJ1xueycgYW5kICdcbn0nIGFyZSBsaWtlbHkgdG8g
YmUgcHJlc2VudCBpbgotICAgIEpTT04gcmVwcnMuCi0KLSAgICAiIiIKLSAgICByZXByID0gcHku
aW8uc2FmZXJlcHIob2JqKQotICAgIGlmIGlzaW5zdGFuY2UocmVwciwgc2l4LnRleHRfdHlwZSk6
Ci0gICAgICAgIHQgPSBzaXgudGV4dF90eXBlCi0gICAgZWxzZToKLSAgICAgICAgdCA9IHNpeC5i
aW5hcnlfdHlwZQotICAgIHJldHVybiByZXByLnJlcGxhY2UodCgiXG4iKSwgdCgiXFxuIikpCi0K
LQotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbi51dGlsIGltcG9ydCBmb3JtYXRfZXhwbGFuYXRpb24g
YXMgX2Zvcm1hdF9leHBsYW5hdGlvbiAgIyBub3FhCi0KLQotZGVmIF9mb3JtYXRfYXNzZXJ0bXNn
KG9iaik6Ci0gICAgIiIiRm9ybWF0IHRoZSBjdXN0b20gYXNzZXJ0aW9uIG1lc3NhZ2UgZ2l2ZW4u
Ci0KLSAgICBGb3Igc3RyaW5ncyB0aGlzIHNpbXBseSByZXBsYWNlcyBuZXdsaW5lcyB3aXRoICdc
bn4nIHNvIHRoYXQKLSAgICB1dGlsLmZvcm1hdF9leHBsYW5hdGlvbigpIHdpbGwgcHJlc2VydmUg
dGhlbSBpbnN0ZWFkIG9mIGVzY2FwaW5nCi0gICAgbmV3bGluZXMuICBGb3Igb3RoZXIgb2JqZWN0
cyBweS5pby5zYWZlcmVwcigpIGlzIHVzZWQgZmlyc3QuCi0KLSAgICAiIiIKLSAgICAjIHJlcHJs
aWIgYXBwZWFycyB0byBoYXZlIGEgYnVnIHdoaWNoIG1lYW5zIHRoYXQgaWYgYSBzdHJpbmcKLSAg
ICAjIGNvbnRhaW5zIGEgbmV3bGluZSBpdCBnZXRzIGVzY2FwZWQsIGhvd2V2ZXIgaWYgYW4gb2Jq
ZWN0IGhhcyBhCi0gICAgIyAuX19yZXByX18oKSB3aGljaCBjb250YWlucyBuZXdsaW5lcyBpdCBk
b2VzIG5vdCBnZXQgZXNjYXBlZC4KLSAgICAjIEhvd2V2ZXIgaW4gZWl0aGVyIGNhc2Ugd2Ugd2Fu
dCB0byBwcmVzZXJ2ZSB0aGUgbmV3bGluZS4KLSAgICBpZiBpc2luc3RhbmNlKG9iaiwgc2l4LnRl
eHRfdHlwZSkgb3IgaXNpbnN0YW5jZShvYmosIHNpeC5iaW5hcnlfdHlwZSk6Ci0gICAgICAgIHMg
PSBvYmoKLSAgICAgICAgaXNfcmVwciA9IEZhbHNlCi0gICAgZWxzZToKLSAgICAgICAgcyA9IHB5
LmlvLnNhZmVyZXByKG9iaikKLSAgICAgICAgaXNfcmVwciA9IFRydWUKLSAgICBpZiBpc2luc3Rh
bmNlKHMsIHNpeC50ZXh0X3R5cGUpOgotICAgICAgICB0ID0gc2l4LnRleHRfdHlwZQotICAgIGVs
c2U6Ci0gICAgICAgIHQgPSBzaXguYmluYXJ5X3R5cGUKLSAgICBzID0gcy5yZXBsYWNlKHQoIlxu
IiksIHQoIlxufiIpKS5yZXBsYWNlKHQoIiUiKSwgdCgiJSUiKSkKLSAgICBpZiBpc19yZXByOgot
ICAgICAgICBzID0gcy5yZXBsYWNlKHQoIlxcbiIpLCB0KCJcbn4iKSkKLSAgICByZXR1cm4gcwot
Ci0KLWRlZiBfc2hvdWxkX3JlcHJfZ2xvYmFsX25hbWUob2JqKToKLSAgICByZXR1cm4gbm90IGhh
c2F0dHIob2JqLCAiX19uYW1lX18iKSBhbmQgbm90IGNhbGxhYmxlKG9iaikKLQotCi1kZWYgX2Zv
cm1hdF9ib29sb3AoZXhwbGFuYXRpb25zLCBpc19vcik6Ci0gICAgZXhwbGFuYXRpb24gPSAiKCIg
KyAoaXNfb3IgYW5kICIgb3IgIiBvciAiIGFuZCAiKS5qb2luKGV4cGxhbmF0aW9ucykgKyAiKSIK
LSAgICBpZiBpc2luc3RhbmNlKGV4cGxhbmF0aW9uLCBzaXgudGV4dF90eXBlKToKLSAgICAgICAg
dCA9IHNpeC50ZXh0X3R5cGUKLSAgICBlbHNlOgotICAgICAgICB0ID0gc2l4LmJpbmFyeV90eXBl
Ci0gICAgcmV0dXJuIGV4cGxhbmF0aW9uLnJlcGxhY2UodCgnJScpLCB0KCclJScpKQotCi0KLWRl
ZiBfY2FsbF9yZXByY29tcGFyZShvcHMsIHJlc3VsdHMsIGV4cGxzLCBlYWNoX29iaik6Ci0gICAg
Zm9yIGksIHJlcywgZXhwbCBpbiB6aXAocmFuZ2UobGVuKG9wcykpLCByZXN1bHRzLCBleHBscyk6
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRvbmUgPSBub3QgcmVzCi0gICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246Ci0gICAgICAgICAgICBkb25lID0gVHJ1ZQotICAgICAgICBpZiBkb25lOgot
ICAgICAgICAgICAgYnJlYWsKLSAgICBpZiB1dGlsLl9yZXByY29tcGFyZSBpcyBub3QgTm9uZToK
LSAgICAgICAgY3VzdG9tID0gdXRpbC5fcmVwcmNvbXBhcmUob3BzW2ldLCBlYWNoX29ialtpXSwg
ZWFjaF9vYmpbaSArIDFdKQotICAgICAgICBpZiBjdXN0b20gaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICByZXR1cm4gY3VzdG9tCi0gICAgcmV0dXJuIGV4cGwKLQotCi11bmFyeV9tYXAgPSB7Ci0g
ICAgYXN0Lk5vdDogIm5vdCAlcyIsCi0gICAgYXN0LkludmVydDogIn4lcyIsCi0gICAgYXN0LlVT
dWI6ICItJXMiLAotICAgIGFzdC5VQWRkOiAiKyVzIgotfQotCi1iaW5vcF9tYXAgPSB7Ci0gICAg
YXN0LkJpdE9yOiAifCIsCi0gICAgYXN0LkJpdFhvcjogIl4iLAotICAgIGFzdC5CaXRBbmQ6ICIm
IiwKLSAgICBhc3QuTFNoaWZ0OiAiPDwiLAotICAgIGFzdC5SU2hpZnQ6ICI+PiIsCi0gICAgYXN0
LkFkZDogIisiLAotICAgIGFzdC5TdWI6ICItIiwKLSAgICBhc3QuTXVsdDogIioiLAotICAgIGFz
dC5EaXY6ICIvIiwKLSAgICBhc3QuRmxvb3JEaXY6ICIvLyIsCi0gICAgYXN0Lk1vZDogIiUlIiwg
ICMgZXNjYXBlZCBmb3Igc3RyaW5nIGZvcm1hdHRpbmcKLSAgICBhc3QuRXE6ICI9PSIsCi0gICAg
YXN0Lk5vdEVxOiAiIT0iLAotICAgIGFzdC5MdDogIjwiLAotICAgIGFzdC5MdEU6ICI8PSIsCi0g
ICAgYXN0Lkd0OiAiPiIsCi0gICAgYXN0Lkd0RTogIj49IiwKLSAgICBhc3QuUG93OiAiKioiLAot
ICAgIGFzdC5JczogImlzIiwKLSAgICBhc3QuSXNOb3Q6ICJpcyBub3QiLAotICAgIGFzdC5Jbjog
ImluIiwKLSAgICBhc3QuTm90SW46ICJub3QgaW4iCi19Ci0jIFB5dGhvbiAzLjUrIGNvbXBhdGli
aWxpdHkKLXRyeToKLSAgICBiaW5vcF9tYXBbYXN0Lk1hdE11bHRdID0gIkAiCi1leGNlcHQgQXR0
cmlidXRlRXJyb3I6Ci0gICAgcGFzcwotCi0jIFB5dGhvbiAzLjQrIGNvbXBhdGliaWxpdHkKLWlm
IGhhc2F0dHIoYXN0LCAiTmFtZUNvbnN0YW50Iik6Ci0gICAgX05hbWVDb25zdGFudCA9IGFzdC5O
YW1lQ29uc3RhbnQKLWVsc2U6Ci0gICAgZGVmIF9OYW1lQ29uc3RhbnQoYyk6Ci0gICAgICAgIHJl
dHVybiBhc3QuTmFtZShzdHIoYyksIGFzdC5Mb2FkKCkpCi0KLQotZGVmIHNldF9sb2NhdGlvbihu
b2RlLCBsaW5lbm8sIGNvbF9vZmZzZXQpOgotICAgICIiIlNldCBub2RlIGxvY2F0aW9uIGluZm9y
bWF0aW9uIHJlY3Vyc2l2ZWx5LiIiIgotICAgIGRlZiBfZml4KG5vZGUsIGxpbmVubywgY29sX29m
ZnNldCk6Ci0gICAgICAgIGlmICJsaW5lbm8iIGluIG5vZGUuX2F0dHJpYnV0ZXM6Ci0gICAgICAg
ICAgICBub2RlLmxpbmVubyA9IGxpbmVubwotICAgICAgICBpZiAiY29sX29mZnNldCIgaW4gbm9k
ZS5fYXR0cmlidXRlczoKLSAgICAgICAgICAgIG5vZGUuY29sX29mZnNldCA9IGNvbF9vZmZzZXQK
LSAgICAgICAgZm9yIGNoaWxkIGluIGFzdC5pdGVyX2NoaWxkX25vZGVzKG5vZGUpOgotICAgICAg
ICAgICAgX2ZpeChjaGlsZCwgbGluZW5vLCBjb2xfb2Zmc2V0KQotICAgIF9maXgobm9kZSwgbGlu
ZW5vLCBjb2xfb2Zmc2V0KQotICAgIHJldHVybiBub2RlCi0KLQotY2xhc3MgQXNzZXJ0aW9uUmV3
cml0ZXIoYXN0Lk5vZGVWaXNpdG9yKToKLSAgICAiIiJBc3NlcnRpb24gcmV3cml0aW5nIGltcGxl
bWVudGF0aW9uLgotCi0gICAgVGhlIG1haW4gZW50cnlwb2ludCBpcyB0byBjYWxsIC5ydW4oKSB3
aXRoIGFuIGFzdC5Nb2R1bGUgaW5zdGFuY2UsCi0gICAgdGhpcyB3aWxsIHRoZW4gZmluZCBhbGwg
dGhlIGFzc2VydCBzdGF0ZW1lbnRzIGFuZCByZXdyaXRlIHRoZW0gdG8KLSAgICBwcm92aWRlIGlu
dGVybWVkaWF0ZSB2YWx1ZXMgYW5kIGEgZGV0YWlsZWQgYXNzZXJ0aW9uIGVycm9yLiAgU2VlCi0g
ICAgaHR0cDovL3B5Yml0ZXMuYmxvZ3Nwb3QuYmUvMjAxMS8wNy9iZWhpbmQtc2NlbmVzLW9mLXB5
dGVzdHMtbmV3LWFzc2VydGlvbi5odG1sCi0gICAgZm9yIGFuIG92ZXJ2aWV3IG9mIGhvdyB0aGlz
IHdvcmtzLgotCi0gICAgVGhlIGVudHJ5IHBvaW50IGhlcmUgaXMgLnJ1bigpIHdoaWNoIHdpbGwg
aXRlcmF0ZSBvdmVyIGFsbCB0aGUKLSAgICBzdGF0ZW1lbnRzIGluIGFuIGFzdC5Nb2R1bGUgYW5k
IGZvciBlYWNoIGFzdC5Bc3NlcnQgc3RhdGVtZW50IGl0Ci0gICAgZmluZHMgY2FsbCAudmlzaXQo
KSB3aXRoIGl0LiAgVGhlbiAudmlzaXRfQXNzZXJ0KCkgdGFrZXMgb3ZlciBhbmQKLSAgICBpcyBy
ZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgbmV3IGFzdCBzdGF0ZW1lbnRzIHRvIHJlcGxhY2UgdGhl
Ci0gICAgb3JpZ2luYWwgYXNzZXJ0IHN0YXRlbWVudDogaXQgcmV3cml0ZXMgdGhlIHRlc3Qgb2Yg
YW4gYXNzZXJ0aW9uCi0gICAgdG8gcHJvdmlkZSBpbnRlcm1lZGlhdGUgdmFsdWVzIGFuZCByZXBs
YWNlIGl0IHdpdGggYW4gaWYgc3RhdGVtZW50Ci0gICAgd2hpY2ggcmFpc2VzIGFuIGFzc2VydGlv
biBlcnJvciB3aXRoIGEgZGV0YWlsZWQgZXhwbGFuYXRpb24gaW4KLSAgICBjYXNlIHRoZSBleHBy
ZXNzaW9uIGlzIGZhbHNlLgotCi0gICAgRm9yIHRoaXMgLnZpc2l0X0Fzc2VydCgpIHVzZXMgdGhl
IHZpc2l0b3IgcGF0dGVybiB0byB2aXNpdCBhbGwgdGhlCi0gICAgQVNUIG5vZGVzIG9mIHRoZSBh
c3QuQXNzZXJ0LnRlc3QgZmllbGQsIGVhY2ggdmlzaXQgY2FsbCByZXR1cm5pbmcKLSAgICBhbiBB
U1Qgbm9kZSBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZXhwbGFuYXRpb24gc3RyaW5nLiAgRHVyaW5n
IHRoaXMKLSAgICBzdGF0ZSBpcyBrZXB0IGluIHNldmVyYWwgaW5zdGFuY2UgYXR0cmlidXRlczoK
LQotICAgIDpzdGF0ZW1lbnRzOiBBbGwgdGhlIEFTVCBzdGF0ZW1lbnRzIHdoaWNoIHdpbGwgcmVw
bGFjZSB0aGUgYXNzZXJ0Ci0gICAgICAgc3RhdGVtZW50LgotCi0gICAgOnZhcmlhYmxlczogVGhp
cyBpcyBwb3B1bGF0ZWQgYnkgLnZhcmlhYmxlKCkgd2l0aCBlYWNoIHZhcmlhYmxlCi0gICAgICAg
dXNlZCBieSB0aGUgc3RhdGVtZW50cyBzbyB0aGF0IHRoZXkgY2FuIGFsbCBiZSBzZXQgdG8gTm9u
ZSBhdAotICAgICAgIHRoZSBlbmQgb2YgdGhlIHN0YXRlbWVudHMuCi0KLSAgICA6dmFyaWFibGVf
Y291bnRlcjogQ291bnRlciB0byBjcmVhdGUgbmV3IHVuaXF1ZSB2YXJpYWJsZXMgbmVlZGVkCi0g
ICAgICAgYnkgc3RhdGVtZW50cy4gIFZhcmlhYmxlcyBhcmUgY3JlYXRlZCB1c2luZyAudmFyaWFi
bGUoKSBhbmQKLSAgICAgICBoYXZlIHRoZSBmb3JtIG9mICJAcHlfYXNzZXJ0MCIuCi0KLSAgICA6
b25fZmFpbHVyZTogVGhlIEFTVCBzdGF0ZW1lbnRzIHdoaWNoIHdpbGwgYmUgZXhlY3V0ZWQgaWYg
dGhlCi0gICAgICAgYXNzZXJ0aW9uIHRlc3QgZmFpbHMuICBUaGlzIGlzIHRoZSBjb2RlIHdoaWNo
IHdpbGwgY29uc3RydWN0Ci0gICAgICAgdGhlIGZhaWx1cmUgbWVzc2FnZSBhbmQgcmFpc2VzIHRo
ZSBBc3NlcnRpb25FcnJvci4KLQotICAgIDpleHBsYW5hdGlvbl9zcGVjaWZpZXJzOiBBIGRpY3Qg
ZmlsbGVkIGJ5IC5leHBsYW5hdGlvbl9wYXJhbSgpCi0gICAgICAgd2l0aCAlLWZvcm1hdHRpbmcg
cGxhY2Vob2xkZXJzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nCi0gICAgICAgZXhwcmVzc2lvbnMg
dG8gdXNlIGluIHRoZSBidWlsZGluZyBvZiBhbiBhc3NlcnRpb24gbWVzc2FnZS4KLSAgICAgICBU
aGlzIGlzIHVzZWQgYnkgLnBvcF9mb3JtYXRfY29udGV4dCgpIHRvIGJ1aWxkIGEgbWVzc2FnZS4K
LQotICAgIDpzdGFjazogQSBzdGFjayBvZiB0aGUgZXhwbGFuYXRpb25fc3BlY2lmaWVycyBkaWN0
cyBtYWludGFpbmVkIGJ5Ci0gICAgICAgLnB1c2hfZm9ybWF0X2NvbnRleHQoKSBhbmQgLnBvcF9m
b3JtYXRfY29udGV4dCgpIHdoaWNoIGFsbG93cwotICAgICAgIHRvIGJ1aWxkIGFub3RoZXIgJS1m
b3JtYXR0ZWQgc3RyaW5nIHdoaWxlIGFscmVhZHkgYnVpbGRpbmcgb25lLgotCi0gICAgVGhpcyBz
dGF0ZSBpcyByZXNldCBvbiBldmVyeSBuZXcgYXNzZXJ0IHN0YXRlbWVudCB2aXNpdGVkIGFuZCB1
c2VkCi0gICAgYnkgdGhlIG90aGVyIHZpc2l0b3JzLgotCi0gICAgIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgbW9kdWxlX3BhdGgsIGNvbmZpZyk6Ci0gICAgICAgIHN1cGVyKEFzc2VydGlv
blJld3JpdGVyLCBzZWxmKS5fX2luaXRfXygpCi0gICAgICAgIHNlbGYubW9kdWxlX3BhdGggPSBt
b2R1bGVfcGF0aAotICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwotCi0gICAgZGVmIHJ1bihz
ZWxmLCBtb2QpOgotICAgICAgICAiIiJGaW5kIGFsbCBhc3NlcnQgc3RhdGVtZW50cyBpbiAqbW9k
KiBhbmQgcmV3cml0ZSB0aGVtLiIiIgotICAgICAgICBpZiBub3QgbW9kLmJvZHk6Ci0gICAgICAg
ICAgICAjIE5vdGhpbmcgdG8gZG8uCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgIyBJbnNl
cnQgc29tZSBzcGVjaWFsIGltcG9ydHMgYXQgdGhlIHRvcCBvZiB0aGUgbW9kdWxlIGJ1dCBhZnRl
ciBhbnkKLSAgICAgICAgIyBkb2NzdHJpbmdzIGFuZCBfX2Z1dHVyZV9fIGltcG9ydHMuCi0gICAg
ICAgIGFsaWFzZXMgPSBbYXN0LmFsaWFzKHB5LmJ1aWx0aW4uYnVpbHRpbnMuX19uYW1lX18sICJA
cHlfYnVpbHRpbnMiKSwKLSAgICAgICAgICAgICAgICAgICBhc3QuYWxpYXMoIl9weXRlc3QuYXNz
ZXJ0aW9uLnJld3JpdGUiLCAiQHB5dGVzdF9hciIpXQotICAgICAgICBkb2MgPSBnZXRhdHRyKG1v
ZCwgImRvY3N0cmluZyIsIE5vbmUpCi0gICAgICAgIGV4cGVjdF9kb2NzdHJpbmcgPSBkb2MgaXMg
Tm9uZQotICAgICAgICBpZiBkb2MgaXMgbm90IE5vbmUgYW5kIHNlbGYuaXNfcmV3cml0ZV9kaXNh
YmxlZChkb2MpOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHBvcyA9IDAKLSAgICAgICAg
bGluZW5vID0gMQotICAgICAgICBmb3IgaXRlbSBpbiBtb2QuYm9keToKLSAgICAgICAgICAgIGlm
IChleHBlY3RfZG9jc3RyaW5nIGFuZCBpc2luc3RhbmNlKGl0ZW0sIGFzdC5FeHByKSBhbmQKLSAg
ICAgICAgICAgICAgICAgICAgaXNpbnN0YW5jZShpdGVtLnZhbHVlLCBhc3QuU3RyKSk6Ci0gICAg
ICAgICAgICAgICAgZG9jID0gaXRlbS52YWx1ZS5zCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5p
c19yZXdyaXRlX2Rpc2FibGVkKGRvYyk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybgotICAg
ICAgICAgICAgICAgIGV4cGVjdF9kb2NzdHJpbmcgPSBGYWxzZQotICAgICAgICAgICAgZWxpZiAo
bm90IGlzaW5zdGFuY2UoaXRlbSwgYXN0LkltcG9ydEZyb20pIG9yIGl0ZW0ubGV2ZWwgPiAwIG9y
Ci0gICAgICAgICAgICAgICAgICBpdGVtLm1vZHVsZSAhPSAiX19mdXR1cmVfXyIpOgotICAgICAg
ICAgICAgICAgIGxpbmVubyA9IGl0ZW0ubGluZW5vCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAg
ICAgICAgICAgIHBvcyArPSAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsaW5lbm8gPSBp
dGVtLmxpbmVubwotICAgICAgICBpbXBvcnRzID0gW2FzdC5JbXBvcnQoW2FsaWFzXSwgbGluZW5v
PWxpbmVubywgY29sX29mZnNldD0wKQotICAgICAgICAgICAgICAgICAgIGZvciBhbGlhcyBpbiBh
bGlhc2VzXQotICAgICAgICBtb2QuYm9keVtwb3M6cG9zXSA9IGltcG9ydHMKLSAgICAgICAgIyBD
b2xsZWN0IGFzc2VydHMuCi0gICAgICAgIG5vZGVzID0gW21vZF0KLSAgICAgICAgd2hpbGUgbm9k
ZXM6Ci0gICAgICAgICAgICBub2RlID0gbm9kZXMucG9wKCkKLSAgICAgICAgICAgIGZvciBuYW1l
LCBmaWVsZCBpbiBhc3QuaXRlcl9maWVsZHMobm9kZSk6Ci0gICAgICAgICAgICAgICAgaWYgaXNp
bnN0YW5jZShmaWVsZCwgbGlzdCk6Ci0gICAgICAgICAgICAgICAgICAgIG5ldyA9IFtdCi0gICAg
ICAgICAgICAgICAgICAgIGZvciBpLCBjaGlsZCBpbiBlbnVtZXJhdGUoZmllbGQpOgotICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShjaGlsZCwgYXN0LkFzc2VydCk6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIyBUcmFuc2Zvcm0gYXNzZXJ0LgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5ldy5leHRlbmQoc2VsZi52aXNpdChjaGlsZCkpCi0gICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldy5hcHBl
bmQoY2hpbGQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShjaGls
ZCwgYXN0LkFTVCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVzLmFwcGVu
ZChjaGlsZCkKLSAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihub2RlLCBuYW1lLCBuZXcpCi0g
ICAgICAgICAgICAgICAgZWxpZiAoaXNpbnN0YW5jZShmaWVsZCwgYXN0LkFTVCkgYW5kCi0gICAg
ICAgICAgICAgICAgICAgICAgIyBEb24ndCByZWN1cnNlIGludG8gZXhwcmVzc2lvbnMgYXMgdGhl
eSBjYW4ndCBjb250YWluCi0gICAgICAgICAgICAgICAgICAgICAgIyBhc3NlcnRzLgotICAgICAg
ICAgICAgICAgICAgICAgIG5vdCBpc2luc3RhbmNlKGZpZWxkLCBhc3QuZXhwcikpOgotICAgICAg
ICAgICAgICAgICAgICBub2Rlcy5hcHBlbmQoZmllbGQpCi0KLSAgICBkZWYgaXNfcmV3cml0ZV9k
aXNhYmxlZChzZWxmLCBkb2NzdHJpbmcpOgotICAgICAgICByZXR1cm4gIlBZVEVTVF9ET05UX1JF
V1JJVEUiIGluIGRvY3N0cmluZwotCi0gICAgZGVmIHZhcmlhYmxlKHNlbGYpOgotICAgICAgICAi
IiJHZXQgYSBuZXcgdmFyaWFibGUuIiIiCi0gICAgICAgICMgVXNlIGEgY2hhcmFjdGVyIGludmFs
aWQgaW4gcHl0aG9uIGlkZW50aWZpZXJzIHRvIGF2b2lkIGNsYXNoaW5nLgotICAgICAgICBuYW1l
ID0gIkBweV9hc3NlcnQiICsgc3RyKG5leHQoc2VsZi52YXJpYWJsZV9jb3VudGVyKSkKLSAgICAg
ICAgc2VsZi52YXJpYWJsZXMuYXBwZW5kKG5hbWUpCi0gICAgICAgIHJldHVybiBuYW1lCi0KLSAg
ICBkZWYgYXNzaWduKHNlbGYsIGV4cHIpOgotICAgICAgICAiIiJHaXZlICpleHByKiBhIG5hbWUu
IiIiCi0gICAgICAgIG5hbWUgPSBzZWxmLnZhcmlhYmxlKCkKLSAgICAgICAgc2VsZi5zdGF0ZW1l
bnRzLmFwcGVuZChhc3QuQXNzaWduKFthc3QuTmFtZShuYW1lLCBhc3QuU3RvcmUoKSldLCBleHBy
KSkKLSAgICAgICAgcmV0dXJuIGFzdC5OYW1lKG5hbWUsIGFzdC5Mb2FkKCkpCi0KLSAgICBkZWYg
ZGlzcGxheShzZWxmLCBleHByKToKLSAgICAgICAgIiIiQ2FsbCBweS5pby5zYWZlcmVwciBvbiB0
aGUgZXhwcmVzc2lvbi4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuaGVscGVyKCJzYWZlcmVwciIs
IGV4cHIpCi0KLSAgICBkZWYgaGVscGVyKHNlbGYsIG5hbWUsICphcmdzKToKLSAgICAgICAgIiIi
Q2FsbCBhIGhlbHBlciBpbiB0aGlzIG1vZHVsZS4iIiIKLSAgICAgICAgcHlfbmFtZSA9IGFzdC5O
YW1lKCJAcHl0ZXN0X2FyIiwgYXN0LkxvYWQoKSkKLSAgICAgICAgYXR0ciA9IGFzdC5BdHRyaWJ1
dGUocHlfbmFtZSwgIl8iICsgbmFtZSwgYXN0LkxvYWQoKSkKLSAgICAgICAgcmV0dXJuIGFzdF9D
YWxsKGF0dHIsIGxpc3QoYXJncyksIFtdKQotCi0gICAgZGVmIGJ1aWx0aW4oc2VsZiwgbmFtZSk6
Ci0gICAgICAgICIiIlJldHVybiB0aGUgYnVpbHRpbiBjYWxsZWQgKm5hbWUqLiIiIgotICAgICAg
ICBidWlsdGluX25hbWUgPSBhc3QuTmFtZSgiQHB5X2J1aWx0aW5zIiwgYXN0LkxvYWQoKSkKLSAg
ICAgICAgcmV0dXJuIGFzdC5BdHRyaWJ1dGUoYnVpbHRpbl9uYW1lLCBuYW1lLCBhc3QuTG9hZCgp
KQotCi0gICAgZGVmIGV4cGxhbmF0aW9uX3BhcmFtKHNlbGYsIGV4cHIpOgotICAgICAgICAiIiJS
ZXR1cm4gYSBuZXcgbmFtZWQgJS1mb3JtYXR0aW5nIHBsYWNlaG9sZGVyIGZvciBleHByLgotCi0g
ICAgICAgIFRoaXMgY3JlYXRlcyBhICUtZm9ybWF0dGluZyBwbGFjZWhvbGRlciBmb3IgZXhwciBp
biB0aGUKLSAgICAgICAgY3VycmVudCBmb3JtYXR0aW5nIGNvbnRleHQsIGUuZy4gYGAlKHB5MClz
YGAuICBUaGUgcGxhY2Vob2xkZXIKLSAgICAgICAgYW5kIGV4cHIgYXJlIHBsYWNlZCBpbiB0aGUg
Y3VycmVudCBmb3JtYXQgY29udGV4dCBzbyB0aGF0IGl0Ci0gICAgICAgIGNhbiBiZSB1c2VkIG9u
IHRoZSBuZXh0IGNhbGwgdG8gLnBvcF9mb3JtYXRfY29udGV4dCgpLgotCi0gICAgICAgICIiIgot
ICAgICAgICBzcGVjaWZpZXIgPSAicHkiICsgc3RyKG5leHQoc2VsZi52YXJpYWJsZV9jb3VudGVy
KSkKLSAgICAgICAgc2VsZi5leHBsYW5hdGlvbl9zcGVjaWZpZXJzW3NwZWNpZmllcl0gPSBleHBy
Ci0gICAgICAgIHJldHVybiAiJSgiICsgc3BlY2lmaWVyICsgIilzIgotCi0gICAgZGVmIHB1c2hf
Zm9ybWF0X2NvbnRleHQoc2VsZik6Ci0gICAgICAgICIiIkNyZWF0ZSBhIG5ldyBmb3JtYXR0aW5n
IGNvbnRleHQuCi0KLSAgICAgICAgVGhlIGZvcm1hdCBjb250ZXh0IGlzIHVzZWQgZm9yIHdoZW4g
YW4gZXhwbGFuYXRpb24gd2FudHMgdG8KLSAgICAgICAgaGF2ZSBhIHZhcmlhYmxlIHZhbHVlIGZv
cm1hdHRlZCBpbiB0aGUgYXNzZXJ0aW9uIG1lc3NhZ2UuICBJbgotICAgICAgICB0aGlzIGNhc2Ug
dGhlIHZhbHVlIHJlcXVpcmVkIGNhbiBiZSBhZGRlZCB1c2luZwotICAgICAgICAuZXhwbGFuYXRp
b25fcGFyYW0oKS4gIEZpbmFsbHkgLnBvcF9mb3JtYXRfY29udGV4dCgpIGlzIHVzZWQKLSAgICAg
ICAgdG8gZm9ybWF0IGEgc3RyaW5nIG9mICUtZm9ybWF0dGVkIHZhbHVlcyBhcyBhZGRlZCBieQot
ICAgICAgICAuZXhwbGFuYXRpb25fcGFyYW0oKS4KLQotICAgICAgICAiIiIKLSAgICAgICAgc2Vs
Zi5leHBsYW5hdGlvbl9zcGVjaWZpZXJzID0ge30KLSAgICAgICAgc2VsZi5zdGFjay5hcHBlbmQo
c2VsZi5leHBsYW5hdGlvbl9zcGVjaWZpZXJzKQotCi0gICAgZGVmIHBvcF9mb3JtYXRfY29udGV4
dChzZWxmLCBleHBsX2V4cHIpOgotICAgICAgICAiIiJGb3JtYXQgdGhlICUtZm9ybWF0dGVkIHN0
cmluZyB3aXRoIGN1cnJlbnQgZm9ybWF0IGNvbnRleHQuCi0KLSAgICAgICAgVGhlIGV4cGxfZXhw
ciBzaG91bGQgYmUgYW4gYXN0LlN0ciBpbnN0YW5jZSBjb25zdHJ1Y3RlZCBmcm9tCi0gICAgICAg
IHRoZSAlLXBsYWNlaG9sZGVycyBjcmVhdGVkIGJ5IC5leHBsYW5hdGlvbl9wYXJhbSgpLiAgVGhp
cyB3aWxsCi0gICAgICAgIGFkZCB0aGUgcmVxdWlyZWQgY29kZSB0byBmb3JtYXQgc2FpZCBzdHJp
bmcgdG8gLm9uX2ZhaWx1cmUgYW5kCi0gICAgICAgIHJldHVybiB0aGUgYXN0Lk5hbWUgaW5zdGFu
Y2Ugb2YgdGhlIGZvcm1hdHRlZCBzdHJpbmcuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGN1cnJl
bnQgPSBzZWxmLnN0YWNrLnBvcCgpCi0gICAgICAgIGlmIHNlbGYuc3RhY2s6Ci0gICAgICAgICAg
ICBzZWxmLmV4cGxhbmF0aW9uX3NwZWNpZmllcnMgPSBzZWxmLnN0YWNrWy0xXQotICAgICAgICBr
ZXlzID0gW2FzdC5TdHIoa2V5KSBmb3Iga2V5IGluIGN1cnJlbnQua2V5cygpXQotICAgICAgICBm
b3JtYXRfZGljdCA9IGFzdC5EaWN0KGtleXMsIGxpc3QoY3VycmVudC52YWx1ZXMoKSkpCi0gICAg
ICAgIGZvcm0gPSBhc3QuQmluT3AoZXhwbF9leHByLCBhc3QuTW9kKCksIGZvcm1hdF9kaWN0KQot
ICAgICAgICBuYW1lID0gIkBweV9mb3JtYXQiICsgc3RyKG5leHQoc2VsZi52YXJpYWJsZV9jb3Vu
dGVyKSkKLSAgICAgICAgc2VsZi5vbl9mYWlsdXJlLmFwcGVuZChhc3QuQXNzaWduKFthc3QuTmFt
ZShuYW1lLCBhc3QuU3RvcmUoKSldLCBmb3JtKSkKLSAgICAgICAgcmV0dXJuIGFzdC5OYW1lKG5h
bWUsIGFzdC5Mb2FkKCkpCi0KLSAgICBkZWYgZ2VuZXJpY192aXNpdChzZWxmLCBub2RlKToKLSAg
ICAgICAgIiIiSGFuZGxlIGV4cHJlc3Npb25zIHdlIGRvbid0IGhhdmUgY3VzdG9tIGNvZGUgZm9y
LiIiIgotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShub2RlLCBhc3QuZXhwcikKLSAgICAgICAg
cmVzID0gc2VsZi5hc3NpZ24obm9kZSkKLSAgICAgICAgcmV0dXJuIHJlcywgc2VsZi5leHBsYW5h
dGlvbl9wYXJhbShzZWxmLmRpc3BsYXkocmVzKSkKLQotICAgIGRlZiB2aXNpdF9Bc3NlcnQoc2Vs
ZiwgYXNzZXJ0Xyk6Ci0gICAgICAgICIiIlJldHVybiB0aGUgQVNUIHN0YXRlbWVudHMgdG8gcmVw
bGFjZSB0aGUgYXN0LkFzc2VydCBpbnN0YW5jZS4KLQotICAgICAgICBUaGlzIHJld3JpdGVzIHRo
ZSB0ZXN0IG9mIGFuIGFzc2VydGlvbiB0byBwcm92aWRlCi0gICAgICAgIGludGVybWVkaWF0ZSB2
YWx1ZXMgYW5kIHJlcGxhY2UgaXQgd2l0aCBhbiBpZiBzdGF0ZW1lbnQgd2hpY2gKLSAgICAgICAg
cmFpc2VzIGFuIGFzc2VydGlvbiBlcnJvciB3aXRoIGEgZGV0YWlsZWQgZXhwbGFuYXRpb24gaW4g
Y2FzZQotICAgICAgICB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZS4KLQotICAgICAgICAiIiIKLSAg
ICAgICAgaWYgaXNpbnN0YW5jZShhc3NlcnRfLnRlc3QsIGFzdC5UdXBsZSkgYW5kIHNlbGYuY29u
ZmlnIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZnNsb2NhdGlvbiA9IChzZWxmLm1vZHVsZV9w
YXRoLCBhc3NlcnRfLmxpbmVubykKLSAgICAgICAgICAgIHNlbGYuY29uZmlnLndhcm4oJ1IxJywg
J2Fzc2VydGlvbiBpcyBhbHdheXMgdHJ1ZSwgcGVyaGFwcyAnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdyZW1vdmUgcGFyZW50aGVzZXM/JywgZnNsb2NhdGlvbj1mc2xvY2F0aW9uKQot
ICAgICAgICBzZWxmLnN0YXRlbWVudHMgPSBbXQotICAgICAgICBzZWxmLnZhcmlhYmxlcyA9IFtd
Ci0gICAgICAgIHNlbGYudmFyaWFibGVfY291bnRlciA9IGl0ZXJ0b29scy5jb3VudCgpCi0gICAg
ICAgIHNlbGYuc3RhY2sgPSBbXQotICAgICAgICBzZWxmLm9uX2ZhaWx1cmUgPSBbXQotICAgICAg
ICBzZWxmLnB1c2hfZm9ybWF0X2NvbnRleHQoKQotICAgICAgICAjIFJld3JpdGUgYXNzZXJ0IGlu
dG8gYSBidW5jaCBvZiBzdGF0ZW1lbnRzLgotICAgICAgICB0b3BfY29uZGl0aW9uLCBleHBsYW5h
dGlvbiA9IHNlbGYudmlzaXQoYXNzZXJ0Xy50ZXN0KQotICAgICAgICAjIENyZWF0ZSBmYWlsdXJl
IG1lc3NhZ2UuCi0gICAgICAgIGJvZHkgPSBzZWxmLm9uX2ZhaWx1cmUKLSAgICAgICAgbmVnYXRp
b24gPSBhc3QuVW5hcnlPcChhc3QuTm90KCksIHRvcF9jb25kaXRpb24pCi0gICAgICAgIHNlbGYu
c3RhdGVtZW50cy5hcHBlbmQoYXN0LklmKG5lZ2F0aW9uLCBib2R5LCBbXSkpCi0gICAgICAgIGlm
IGFzc2VydF8ubXNnOgotICAgICAgICAgICAgYXNzZXJ0bXNnID0gc2VsZi5oZWxwZXIoJ2Zvcm1h
dF9hc3NlcnRtc2cnLCBhc3NlcnRfLm1zZykKLSAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gIlxu
PmFzc2VydCAiICsgZXhwbGFuYXRpb24KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFzc2Vy
dG1zZyA9IGFzdC5TdHIoIiIpCi0gICAgICAgICAgICBleHBsYW5hdGlvbiA9ICJhc3NlcnQgIiAr
IGV4cGxhbmF0aW9uCi0gICAgICAgIHRlbXBsYXRlID0gYXN0LkJpbk9wKGFzc2VydG1zZywgYXN0
LkFkZCgpLCBhc3QuU3RyKGV4cGxhbmF0aW9uKSkKLSAgICAgICAgbXNnID0gc2VsZi5wb3BfZm9y
bWF0X2NvbnRleHQodGVtcGxhdGUpCi0gICAgICAgIGZtdCA9IHNlbGYuaGVscGVyKCJmb3JtYXRf
ZXhwbGFuYXRpb24iLCBtc2cpCi0gICAgICAgIGVycl9uYW1lID0gYXN0Lk5hbWUoIkFzc2VydGlv
bkVycm9yIiwgYXN0LkxvYWQoKSkKLSAgICAgICAgZXhjID0gYXN0X0NhbGwoZXJyX25hbWUsIFtm
bXRdLCBbXSkKLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgotICAgICAgICAg
ICAgcmFpc2VfID0gYXN0LlJhaXNlKGV4YywgTm9uZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHJhaXNlXyA9IGFzdC5SYWlzZShleGMsIE5vbmUsIE5vbmUpCi0gICAgICAgIGJvZHkuYXBw
ZW5kKHJhaXNlXykKLSAgICAgICAgIyBDbGVhciB0ZW1wb3JhcnkgdmFyaWFibGVzIGJ5IHNldHRp
bmcgdGhlbSB0byBOb25lLgotICAgICAgICBpZiBzZWxmLnZhcmlhYmxlczoKLSAgICAgICAgICAg
IHZhcmlhYmxlcyA9IFthc3QuTmFtZShuYW1lLCBhc3QuU3RvcmUoKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICBmb3IgbmFtZSBpbiBzZWxmLnZhcmlhYmxlc10KLSAgICAgICAgICAgIGNsZWFy
ID0gYXN0LkFzc2lnbih2YXJpYWJsZXMsIF9OYW1lQ29uc3RhbnQoTm9uZSkpCi0gICAgICAgICAg
ICBzZWxmLnN0YXRlbWVudHMuYXBwZW5kKGNsZWFyKQotICAgICAgICAjIEZpeCBsaW5lIG51bWJl
cnMuCi0gICAgICAgIGZvciBzdG10IGluIHNlbGYuc3RhdGVtZW50czoKLSAgICAgICAgICAgIHNl
dF9sb2NhdGlvbihzdG10LCBhc3NlcnRfLmxpbmVubywgYXNzZXJ0Xy5jb2xfb2Zmc2V0KQotICAg
ICAgICByZXR1cm4gc2VsZi5zdGF0ZW1lbnRzCi0KLSAgICBkZWYgdmlzaXRfTmFtZShzZWxmLCBu
YW1lKToKLSAgICAgICAgIyBEaXNwbGF5IHRoZSByZXByIG9mIHRoZSBuYW1lIGlmIGl0J3MgYSBs
b2NhbCB2YXJpYWJsZSBvcgotICAgICAgICAjIF9zaG91bGRfcmVwcl9nbG9iYWxfbmFtZSgpIHRo
aW5rcyBpdCdzIGFjY2VwdGFibGUuCi0gICAgICAgIGxvY3MgPSBhc3RfQ2FsbChzZWxmLmJ1aWx0
aW4oImxvY2FscyIpLCBbXSwgW10pCi0gICAgICAgIGlubG9jcyA9IGFzdC5Db21wYXJlKGFzdC5T
dHIobmFtZS5pZCksIFthc3QuSW4oKV0sIFtsb2NzXSkKLSAgICAgICAgZG9yZXByID0gc2VsZi5o
ZWxwZXIoInNob3VsZF9yZXByX2dsb2JhbF9uYW1lIiwgbmFtZSkKLSAgICAgICAgdGVzdCA9IGFz
dC5Cb29sT3AoYXN0Lk9yKCksIFtpbmxvY3MsIGRvcmVwcl0pCi0gICAgICAgIGV4cHIgPSBhc3Qu
SWZFeHAodGVzdCwgc2VsZi5kaXNwbGF5KG5hbWUpLCBhc3QuU3RyKG5hbWUuaWQpKQotICAgICAg
ICByZXR1cm4gbmFtZSwgc2VsZi5leHBsYW5hdGlvbl9wYXJhbShleHByKQotCi0gICAgZGVmIHZp
c2l0X0Jvb2xPcChzZWxmLCBib29sb3ApOgotICAgICAgICByZXNfdmFyID0gc2VsZi52YXJpYWJs
ZSgpCi0gICAgICAgIGV4cGxfbGlzdCA9IHNlbGYuYXNzaWduKGFzdC5MaXN0KFtdLCBhc3QuTG9h
ZCgpKSkKLSAgICAgICAgYXBwID0gYXN0LkF0dHJpYnV0ZShleHBsX2xpc3QsICJhcHBlbmQiLCBh
c3QuTG9hZCgpKQotICAgICAgICBpc19vciA9IGludChpc2luc3RhbmNlKGJvb2xvcC5vcCwgYXN0
Lk9yKSkKLSAgICAgICAgYm9keSA9IHNhdmUgPSBzZWxmLnN0YXRlbWVudHMKLSAgICAgICAgZmFp
bF9zYXZlID0gc2VsZi5vbl9mYWlsdXJlCi0gICAgICAgIGxldmVscyA9IGxlbihib29sb3AudmFs
dWVzKSAtIDEKLSAgICAgICAgc2VsZi5wdXNoX2Zvcm1hdF9jb250ZXh0KCkKLSAgICAgICAgIyBQ
cm9jZXNzIGVhY2ggb3BlcmFuZCwgc2hvcnQtY2lyY3V0aW5nIGlmIG5lZWRlZC4KLSAgICAgICAg
Zm9yIGksIHYgaW4gZW51bWVyYXRlKGJvb2xvcC52YWx1ZXMpOgotICAgICAgICAgICAgaWYgaToK
LSAgICAgICAgICAgICAgICBmYWlsX2lubmVyID0gW10KLSAgICAgICAgICAgICAgICAjIGNvbmQg
aXMgc2V0IGluIGEgcHJpb3IgbG9vcCBpdGVyYXRpb24gYmVsb3cKLSAgICAgICAgICAgICAgICBz
ZWxmLm9uX2ZhaWx1cmUuYXBwZW5kKGFzdC5JZihjb25kLCBmYWlsX2lubmVyLCBbXSkpICAjIG5v
cWEKLSAgICAgICAgICAgICAgICBzZWxmLm9uX2ZhaWx1cmUgPSBmYWlsX2lubmVyCi0gICAgICAg
ICAgICBzZWxmLnB1c2hfZm9ybWF0X2NvbnRleHQoKQotICAgICAgICAgICAgcmVzLCBleHBsID0g
c2VsZi52aXNpdCh2KQotICAgICAgICAgICAgYm9keS5hcHBlbmQoYXN0LkFzc2lnbihbYXN0Lk5h
bWUocmVzX3ZhciwgYXN0LlN0b3JlKCkpXSwgcmVzKSkKLSAgICAgICAgICAgIGV4cGxfZm9ybWF0
ID0gc2VsZi5wb3BfZm9ybWF0X2NvbnRleHQoYXN0LlN0cihleHBsKSkKLSAgICAgICAgICAgIGNh
bGwgPSBhc3RfQ2FsbChhcHAsIFtleHBsX2Zvcm1hdF0sIFtdKQotICAgICAgICAgICAgc2VsZi5v
bl9mYWlsdXJlLmFwcGVuZChhc3QuRXhwcihjYWxsKSkKLSAgICAgICAgICAgIGlmIGkgPCBsZXZl
bHM6Ci0gICAgICAgICAgICAgICAgY29uZCA9IHJlcwotICAgICAgICAgICAgICAgIGlmIGlzX29y
OgotICAgICAgICAgICAgICAgICAgICBjb25kID0gYXN0LlVuYXJ5T3AoYXN0Lk5vdCgpLCBjb25k
KQotICAgICAgICAgICAgICAgIGlubmVyID0gW10KLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRl
bWVudHMuYXBwZW5kKGFzdC5JZihjb25kLCBpbm5lciwgW10pKQotICAgICAgICAgICAgICAgIHNl
bGYuc3RhdGVtZW50cyA9IGJvZHkgPSBpbm5lcgotICAgICAgICBzZWxmLnN0YXRlbWVudHMgPSBz
YXZlCi0gICAgICAgIHNlbGYub25fZmFpbHVyZSA9IGZhaWxfc2F2ZQotICAgICAgICBleHBsX3Rl
bXBsYXRlID0gc2VsZi5oZWxwZXIoImZvcm1hdF9ib29sb3AiLCBleHBsX2xpc3QsIGFzdC5OdW0o
aXNfb3IpKQotICAgICAgICBleHBsID0gc2VsZi5wb3BfZm9ybWF0X2NvbnRleHQoZXhwbF90ZW1w
bGF0ZSkKLSAgICAgICAgcmV0dXJuIGFzdC5OYW1lKHJlc192YXIsIGFzdC5Mb2FkKCkpLCBzZWxm
LmV4cGxhbmF0aW9uX3BhcmFtKGV4cGwpCi0KLSAgICBkZWYgdmlzaXRfVW5hcnlPcChzZWxmLCB1
bmFyeSk6Ci0gICAgICAgIHBhdHRlcm4gPSB1bmFyeV9tYXBbdW5hcnkub3AuX19jbGFzc19fXQot
ICAgICAgICBvcGVyYW5kX3Jlcywgb3BlcmFuZF9leHBsID0gc2VsZi52aXNpdCh1bmFyeS5vcGVy
YW5kKQotICAgICAgICByZXMgPSBzZWxmLmFzc2lnbihhc3QuVW5hcnlPcCh1bmFyeS5vcCwgb3Bl
cmFuZF9yZXMpKQotICAgICAgICByZXR1cm4gcmVzLCBwYXR0ZXJuICUgKG9wZXJhbmRfZXhwbCwp
Ci0KLSAgICBkZWYgdmlzaXRfQmluT3Aoc2VsZiwgYmlub3ApOgotICAgICAgICBzeW1ib2wgPSBi
aW5vcF9tYXBbYmlub3Aub3AuX19jbGFzc19fXQotICAgICAgICBsZWZ0X2V4cHIsIGxlZnRfZXhw
bCA9IHNlbGYudmlzaXQoYmlub3AubGVmdCkKLSAgICAgICAgcmlnaHRfZXhwciwgcmlnaHRfZXhw
bCA9IHNlbGYudmlzaXQoYmlub3AucmlnaHQpCi0gICAgICAgIGV4cGxhbmF0aW9uID0gIiglcyAl
cyAlcykiICUgKGxlZnRfZXhwbCwgc3ltYm9sLCByaWdodF9leHBsKQotICAgICAgICByZXMgPSBz
ZWxmLmFzc2lnbihhc3QuQmluT3AobGVmdF9leHByLCBiaW5vcC5vcCwgcmlnaHRfZXhwcikpCi0g
ICAgICAgIHJldHVybiByZXMsIGV4cGxhbmF0aW9uCi0KLSAgICBkZWYgdmlzaXRfQ2FsbF8zNShz
ZWxmLCBjYWxsKToKLSAgICAgICAgIiIiCi0gICAgICAgIHZpc2l0IGBhc3QuQ2FsbGAgbm9kZXMg
b24gUHl0aG9uMy41IGFuZCBhZnRlcgotICAgICAgICAiIiIKLSAgICAgICAgbmV3X2Z1bmMsIGZ1
bmNfZXhwbCA9IHNlbGYudmlzaXQoY2FsbC5mdW5jKQotICAgICAgICBhcmdfZXhwbHMgPSBbXQot
ICAgICAgICBuZXdfYXJncyA9IFtdCi0gICAgICAgIG5ld19rd2FyZ3MgPSBbXQotICAgICAgICBm
b3IgYXJnIGluIGNhbGwuYXJnczoKLSAgICAgICAgICAgIHJlcywgZXhwbCA9IHNlbGYudmlzaXQo
YXJnKQotICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVuZChleHBsKQotICAgICAgICAgICAgbmV3
X2FyZ3MuYXBwZW5kKHJlcykKLSAgICAgICAgZm9yIGtleXdvcmQgaW4gY2FsbC5rZXl3b3JkczoK
LSAgICAgICAgICAgIHJlcywgZXhwbCA9IHNlbGYudmlzaXQoa2V5d29yZC52YWx1ZSkKLSAgICAg
ICAgICAgIG5ld19rd2FyZ3MuYXBwZW5kKGFzdC5rZXl3b3JkKGtleXdvcmQuYXJnLCByZXMpKQot
ICAgICAgICAgICAgaWYga2V5d29yZC5hcmc6Ci0gICAgICAgICAgICAgICAgYXJnX2V4cGxzLmFw
cGVuZChrZXl3b3JkLmFyZyArICI9IiArIGV4cGwpCi0gICAgICAgICAgICBlbHNlOiAgIyAqKmFy
Z3MgaGF2ZSBgYXJnYCBrZXl3b3JkcyB3aXRoIGFuIC5hcmcgb2YgTm9uZQotICAgICAgICAgICAg
ICAgIGFyZ19leHBscy5hcHBlbmQoIioqIiArIGV4cGwpCi0KLSAgICAgICAgZXhwbCA9ICIlcygl
cykiICUgKGZ1bmNfZXhwbCwgJywgJy5qb2luKGFyZ19leHBscykpCi0gICAgICAgIG5ld19jYWxs
ID0gYXN0LkNhbGwobmV3X2Z1bmMsIG5ld19hcmdzLCBuZXdfa3dhcmdzKQotICAgICAgICByZXMg
PSBzZWxmLmFzc2lnbihuZXdfY2FsbCkKLSAgICAgICAgcmVzX2V4cGwgPSBzZWxmLmV4cGxhbmF0
aW9uX3BhcmFtKHNlbGYuZGlzcGxheShyZXMpKQotICAgICAgICBvdXRlcl9leHBsID0gIiVzXG57
JXMgPSAlc1xufSIgJSAocmVzX2V4cGwsIHJlc19leHBsLCBleHBsKQotICAgICAgICByZXR1cm4g
cmVzLCBvdXRlcl9leHBsCi0KLSAgICBkZWYgdmlzaXRfU3RhcnJlZChzZWxmLCBzdGFycmVkKToK
LSAgICAgICAgIyBGcm9tIFB5dGhvbiAzLjUsIGEgU3RhcnJlZCBub2RlIGNhbiBhcHBlYXIgaW4g
YSBmdW5jdGlvbiBjYWxsCi0gICAgICAgIHJlcywgZXhwbCA9IHNlbGYudmlzaXQoc3RhcnJlZC52
YWx1ZSkKLSAgICAgICAgcmV0dXJuIHN0YXJyZWQsICcqJyArIGV4cGwKLQotICAgIGRlZiB2aXNp
dF9DYWxsX2xlZ2FjeShzZWxmLCBjYWxsKToKLSAgICAgICAgIiIiCi0gICAgICAgIHZpc2l0IGBh
c3QuQ2FsbCBub2RlcyBvbiAzLjQgYW5kIGJlbG93YAotICAgICAgICAiIiIKLSAgICAgICAgbmV3
X2Z1bmMsIGZ1bmNfZXhwbCA9IHNlbGYudmlzaXQoY2FsbC5mdW5jKQotICAgICAgICBhcmdfZXhw
bHMgPSBbXQotICAgICAgICBuZXdfYXJncyA9IFtdCi0gICAgICAgIG5ld19rd2FyZ3MgPSBbXQot
ICAgICAgICBuZXdfc3RhciA9IG5ld19rd2FyZyA9IE5vbmUKLSAgICAgICAgZm9yIGFyZyBpbiBj
YWxsLmFyZ3M6Ci0gICAgICAgICAgICByZXMsIGV4cGwgPSBzZWxmLnZpc2l0KGFyZykKLSAgICAg
ICAgICAgIG5ld19hcmdzLmFwcGVuZChyZXMpCi0gICAgICAgICAgICBhcmdfZXhwbHMuYXBwZW5k
KGV4cGwpCi0gICAgICAgIGZvciBrZXl3b3JkIGluIGNhbGwua2V5d29yZHM6Ci0gICAgICAgICAg
ICByZXMsIGV4cGwgPSBzZWxmLnZpc2l0KGtleXdvcmQudmFsdWUpCi0gICAgICAgICAgICBuZXdf
a3dhcmdzLmFwcGVuZChhc3Qua2V5d29yZChrZXl3b3JkLmFyZywgcmVzKSkKLSAgICAgICAgICAg
IGFyZ19leHBscy5hcHBlbmQoa2V5d29yZC5hcmcgKyAiPSIgKyBleHBsKQotICAgICAgICBpZiBj
YWxsLnN0YXJhcmdzOgotICAgICAgICAgICAgbmV3X3N0YXIsIGV4cGwgPSBzZWxmLnZpc2l0KGNh
bGwuc3RhcmFyZ3MpCi0gICAgICAgICAgICBhcmdfZXhwbHMuYXBwZW5kKCIqIiArIGV4cGwpCi0g
ICAgICAgIGlmIGNhbGwua3dhcmdzOgotICAgICAgICAgICAgbmV3X2t3YXJnLCBleHBsID0gc2Vs
Zi52aXNpdChjYWxsLmt3YXJncykKLSAgICAgICAgICAgIGFyZ19leHBscy5hcHBlbmQoIioqIiAr
IGV4cGwpCi0gICAgICAgIGV4cGwgPSAiJXMoJXMpIiAlIChmdW5jX2V4cGwsICcsICcuam9pbihh
cmdfZXhwbHMpKQotICAgICAgICBuZXdfY2FsbCA9IGFzdC5DYWxsKG5ld19mdW5jLCBuZXdfYXJn
cywgbmV3X2t3YXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfc3RhciwgbmV3
X2t3YXJnKQotICAgICAgICByZXMgPSBzZWxmLmFzc2lnbihuZXdfY2FsbCkKLSAgICAgICAgcmVz
X2V4cGwgPSBzZWxmLmV4cGxhbmF0aW9uX3BhcmFtKHNlbGYuZGlzcGxheShyZXMpKQotICAgICAg
ICBvdXRlcl9leHBsID0gIiVzXG57JXMgPSAlc1xufSIgJSAocmVzX2V4cGwsIHJlc19leHBsLCBl
eHBsKQotICAgICAgICByZXR1cm4gcmVzLCBvdXRlcl9leHBsCi0KLSAgICAjIGFzdC5DYWxsIHNp
Z25hdHVyZSBjaGFuZ2VkIG9uIDMuNSwKLSAgICAjIGNvbmRpdGlvbmFsbHkgY2hhbmdlICB3aGlj
aCBtZXRob2RzIGlzIG5hbWVkCi0gICAgIyB2aXNpdF9DYWxsIGRlcGVuZGluZyBvbiBQeXRob24g
dmVyc2lvbgotICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDUpOgotICAgICAgICB2aXNp
dF9DYWxsID0gdmlzaXRfQ2FsbF8zNQotICAgIGVsc2U6Ci0gICAgICAgIHZpc2l0X0NhbGwgPSB2
aXNpdF9DYWxsX2xlZ2FjeQotCi0gICAgZGVmIHZpc2l0X0F0dHJpYnV0ZShzZWxmLCBhdHRyKToK
LSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXR0ci5jdHgsIGFzdC5Mb2FkKToKLSAgICAgICAg
ICAgIHJldHVybiBzZWxmLmdlbmVyaWNfdmlzaXQoYXR0cikKLSAgICAgICAgdmFsdWUsIHZhbHVl
X2V4cGwgPSBzZWxmLnZpc2l0KGF0dHIudmFsdWUpCi0gICAgICAgIHJlcyA9IHNlbGYuYXNzaWdu
KGFzdC5BdHRyaWJ1dGUodmFsdWUsIGF0dHIuYXR0ciwgYXN0LkxvYWQoKSkpCi0gICAgICAgIHJl
c19leHBsID0gc2VsZi5leHBsYW5hdGlvbl9wYXJhbShzZWxmLmRpc3BsYXkocmVzKSkKLSAgICAg
ICAgcGF0ID0gIiVzXG57JXMgPSAlcy4lc1xufSIKLSAgICAgICAgZXhwbCA9IHBhdCAlIChyZXNf
ZXhwbCwgcmVzX2V4cGwsIHZhbHVlX2V4cGwsIGF0dHIuYXR0cikKLSAgICAgICAgcmV0dXJuIHJl
cywgZXhwbAotCi0gICAgZGVmIHZpc2l0X0NvbXBhcmUoc2VsZiwgY29tcCk6Ci0gICAgICAgIHNl
bGYucHVzaF9mb3JtYXRfY29udGV4dCgpCi0gICAgICAgIGxlZnRfcmVzLCBsZWZ0X2V4cGwgPSBz
ZWxmLnZpc2l0KGNvbXAubGVmdCkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShjb21wLmxlZnQsIChf
YXN0LkNvbXBhcmUsIF9hc3QuQm9vbE9wKSk6Ci0gICAgICAgICAgICBsZWZ0X2V4cGwgPSAiKHsw
fSkiLmZvcm1hdChsZWZ0X2V4cGwpCi0gICAgICAgIHJlc192YXJpYWJsZXMgPSBbc2VsZi52YXJp
YWJsZSgpIGZvciBpIGluIHJhbmdlKGxlbihjb21wLm9wcykpXQotICAgICAgICBsb2FkX25hbWVz
ID0gW2FzdC5OYW1lKHYsIGFzdC5Mb2FkKCkpIGZvciB2IGluIHJlc192YXJpYWJsZXNdCi0gICAg
ICAgIHN0b3JlX25hbWVzID0gW2FzdC5OYW1lKHYsIGFzdC5TdG9yZSgpKSBmb3IgdiBpbiByZXNf
dmFyaWFibGVzXQotICAgICAgICBpdCA9IHppcChyYW5nZShsZW4oY29tcC5vcHMpKSwgY29tcC5v
cHMsIGNvbXAuY29tcGFyYXRvcnMpCi0gICAgICAgIGV4cGxzID0gW10KLSAgICAgICAgc3ltcyA9
IFtdCi0gICAgICAgIHJlc3VsdHMgPSBbbGVmdF9yZXNdCi0gICAgICAgIGZvciBpLCBvcCwgbmV4
dF9vcGVyYW5kIGluIGl0OgotICAgICAgICAgICAgbmV4dF9yZXMsIG5leHRfZXhwbCA9IHNlbGYu
dmlzaXQobmV4dF9vcGVyYW5kKQotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShuZXh0X29wZXJh
bmQsIChfYXN0LkNvbXBhcmUsIF9hc3QuQm9vbE9wKSk6Ci0gICAgICAgICAgICAgICAgbmV4dF9l
eHBsID0gIih7MH0pIi5mb3JtYXQobmV4dF9leHBsKQotICAgICAgICAgICAgcmVzdWx0cy5hcHBl
bmQobmV4dF9yZXMpCi0gICAgICAgICAgICBzeW0gPSBiaW5vcF9tYXBbb3AuX19jbGFzc19fXQot
ICAgICAgICAgICAgc3ltcy5hcHBlbmQoYXN0LlN0cihzeW0pKQotICAgICAgICAgICAgZXhwbCA9
ICIlcyAlcyAlcyIgJSAobGVmdF9leHBsLCBzeW0sIG5leHRfZXhwbCkKLSAgICAgICAgICAgIGV4
cGxzLmFwcGVuZChhc3QuU3RyKGV4cGwpKQotICAgICAgICAgICAgcmVzX2V4cHIgPSBhc3QuQ29t
cGFyZShsZWZ0X3JlcywgW29wXSwgW25leHRfcmVzXSkKLSAgICAgICAgICAgIHNlbGYuc3RhdGVt
ZW50cy5hcHBlbmQoYXN0LkFzc2lnbihbc3RvcmVfbmFtZXNbaV1dLCByZXNfZXhwcikpCi0gICAg
ICAgICAgICBsZWZ0X3JlcywgbGVmdF9leHBsID0gbmV4dF9yZXMsIG5leHRfZXhwbAotICAgICAg
ICAjIFVzZSBweXRlc3QuYXNzZXJ0aW9uLnV0aWwuX3JlcHJjb21wYXJlIGlmIHRoYXQncyBhdmFp
bGFibGUuCi0gICAgICAgIGV4cGxfY2FsbCA9IHNlbGYuaGVscGVyKCJjYWxsX3JlcHJjb21wYXJl
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0LlR1cGxlKHN5bXMsIGFzdC5M
b2FkKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3QuVHVwbGUobG9hZF9u
YW1lcywgYXN0LkxvYWQoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5U
dXBsZShleHBscywgYXN0LkxvYWQoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFzdC5UdXBsZShyZXN1bHRzLCBhc3QuTG9hZCgpKSkKLSAgICAgICAgaWYgbGVuKGNvbXAub3Bz
KSA+IDE6Ci0gICAgICAgICAgICByZXMgPSBhc3QuQm9vbE9wKGFzdC5BbmQoKSwgbG9hZF9uYW1l
cykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlcyA9IGxvYWRfbmFtZXNbMF0KLSAgICAg
ICAgcmV0dXJuIHJlcywgc2VsZi5leHBsYW5hdGlvbl9wYXJhbShzZWxmLnBvcF9mb3JtYXRfY29u
dGV4dChleHBsX2NhbGwpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRp
b24vdHJ1bmNhdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkMTJlMmU1YTk2MGNhNjBkOTk4Njhl
MTk4OTdhMjdkZGE2ZDgzMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5weQorKysgL2Rl
di9udWxsCkBAIC0xLDEwMiArMCwwIEBACi0iIiIKLVV0aWxpdGllcyBmb3IgdHJ1bmNhdGluZyBh
c3NlcnRpb24gb3V0cHV0LgotCi1DdXJyZW50IGRlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIHRydW5j
YXRlIGFzc2VydGlvbiBleHBsYW5hdGlvbnMgYXQKLX44IHRlcm1pbmFsIGxpbmVzLCB1bmxlc3Mg
cnVubmluZyBpbiAiLXZ2IiBtb2RlIG9yIHJ1bm5pbmcgb24gQ0kuCi0iIiIKLWZyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWlt
cG9ydCBvcwotCi1pbXBvcnQgc2l4Ci0KLQotREVGQVVMVF9NQVhfTElORVMgPSA4Ci1ERUZBVUxU
X01BWF9DSEFSUyA9IDggKiA4MAotVVNBR0VfTVNHID0gInVzZSAnLXZ2JyB0byBzaG93IgotCi0K
LWRlZiB0cnVuY2F0ZV9pZl9yZXF1aXJlZChleHBsYW5hdGlvbiwgaXRlbSwgbWF4X2xlbmd0aD1O
b25lKToKLSAgICAiIiIKLSAgICBUcnVuY2F0ZSB0aGlzIGFzc2VydGlvbiBleHBsYW5hdGlvbiBp
ZiB0aGUgZ2l2ZW4gdGVzdCBpdGVtIGlzIGVsaWdpYmxlLgotICAgICIiIgotICAgIGlmIF9zaG91
bGRfdHJ1bmNhdGVfaXRlbShpdGVtKToKLSAgICAgICAgcmV0dXJuIF90cnVuY2F0ZV9leHBsYW5h
dGlvbihleHBsYW5hdGlvbikKLSAgICByZXR1cm4gZXhwbGFuYXRpb24KLQotCi1kZWYgX3Nob3Vs
ZF90cnVuY2F0ZV9pdGVtKGl0ZW0pOgotICAgICIiIgotICAgIFdoZXRoZXIgb3Igbm90IHRoaXMg
dGVzdCBpdGVtIGlzIGVsaWdpYmxlIGZvciB0cnVuY2F0aW9uLgotICAgICIiIgotICAgIHZlcmJv
c2UgPSBpdGVtLmNvbmZpZy5vcHRpb24udmVyYm9zZQotICAgIHJldHVybiB2ZXJib3NlIDwgMiBh
bmQgbm90IF9ydW5uaW5nX29uX2NpKCkKLQotCi1kZWYgX3J1bm5pbmdfb25fY2koKToKLSAgICAi
IiJDaGVjayBpZiB3ZSdyZSBjdXJyZW50bHkgcnVubmluZyBvbiBhIENJIHN5c3RlbS4iIiIKLSAg
ICBlbnZfdmFycyA9IFsnQ0knLCAnQlVJTERfTlVNQkVSJ10KLSAgICByZXR1cm4gYW55KHZhciBp
biBvcy5lbnZpcm9uIGZvciB2YXIgaW4gZW52X3ZhcnMpCi0KLQotZGVmIF90cnVuY2F0ZV9leHBs
YW5hdGlvbihpbnB1dF9saW5lcywgbWF4X2xpbmVzPU5vbmUsIG1heF9jaGFycz1Ob25lKToKLSAg
ICAiIiIKLSAgICBUcnVuY2F0ZSBnaXZlbiBsaXN0IG9mIHN0cmluZ3MgdGhhdCBtYWtlcyB1cCB0
aGUgYXNzZXJ0aW9uIGV4cGxhbmF0aW9uLgotCi0gICAgVHJ1bmNhdGVzIHRvIGVpdGhlciA4IGxp
bmVzLCBvciA2NDAgY2hhcmFjdGVycyAtIHdoaWNoZXZlciB0aGUgaW5wdXQgcmVhY2hlcwotICAg
IGZpcnN0LiBUaGUgcmVtYWluaW5nIGxpbmVzIHdpbGwgYmUgcmVwbGFjZWQgYnkgYSB1c2FnZSBt
ZXNzYWdlLgotICAgICIiIgotCi0gICAgaWYgbWF4X2xpbmVzIGlzIE5vbmU6Ci0gICAgICAgIG1h
eF9saW5lcyA9IERFRkFVTFRfTUFYX0xJTkVTCi0gICAgaWYgbWF4X2NoYXJzIGlzIE5vbmU6Ci0g
ICAgICAgIG1heF9jaGFycyA9IERFRkFVTFRfTUFYX0NIQVJTCi0KLSAgICAjIENoZWNrIGlmIHRy
dW5jYXRpb24gcmVxdWlyZWQKLSAgICBpbnB1dF9jaGFyX2NvdW50ID0gbGVuKCIiLmpvaW4oaW5w
dXRfbGluZXMpKQotICAgIGlmIGxlbihpbnB1dF9saW5lcykgPD0gbWF4X2xpbmVzIGFuZCBpbnB1
dF9jaGFyX2NvdW50IDw9IG1heF9jaGFyczoKLSAgICAgICAgcmV0dXJuIGlucHV0X2xpbmVzCi0K
LSAgICAjIFRydW5jYXRlIGZpcnN0IHRvIG1heF9saW5lcywgYW5kIHRoZW4gdHJ1bmNhdGUgdG8g
bWF4X2NoYXJzIGlmIG1heF9jaGFycwotICAgICMgaXMgZXhjZWVkZWQuCi0gICAgdHJ1bmNhdGVk
X2V4cGxhbmF0aW9uID0gaW5wdXRfbGluZXNbOm1heF9saW5lc10KLSAgICB0cnVuY2F0ZWRfZXhw
bGFuYXRpb24gPSBfdHJ1bmNhdGVfYnlfY2hhcl9jb3VudCh0cnVuY2F0ZWRfZXhwbGFuYXRpb24s
IG1heF9jaGFycykKLQotICAgICMgQWRkIGVsbGlwc2lzIHRvIGZpbmFsIGxpbmUKLSAgICB0cnVu
Y2F0ZWRfZXhwbGFuYXRpb25bLTFdID0gdHJ1bmNhdGVkX2V4cGxhbmF0aW9uWy0xXSArICIuLi4i
Ci0KLSAgICAjIEFwcGVuZCB1c2VmdWwgbWVzc2FnZSB0byBleHBsYW5hdGlvbgotICAgIHRydW5j
YXRlZF9saW5lX2NvdW50ID0gbGVuKGlucHV0X2xpbmVzKSAtIGxlbih0cnVuY2F0ZWRfZXhwbGFu
YXRpb24pCi0gICAgdHJ1bmNhdGVkX2xpbmVfY291bnQgKz0gMSAgIyBBY2NvdW50IGZvciB0aGUg
cGFydC10cnVuY2F0ZWQgZmluYWwgbGluZQotICAgIG1zZyA9ICcuLi5GdWxsIG91dHB1dCB0cnVu
Y2F0ZWQnCi0gICAgaWYgdHJ1bmNhdGVkX2xpbmVfY291bnQgPT0gMToKLSAgICAgICAgbXNnICs9
ICcgKHswfSBsaW5lIGhpZGRlbiknLmZvcm1hdCh0cnVuY2F0ZWRfbGluZV9jb3VudCkKLSAgICBl
bHNlOgotICAgICAgICBtc2cgKz0gJyAoezB9IGxpbmVzIGhpZGRlbiknLmZvcm1hdCh0cnVuY2F0
ZWRfbGluZV9jb3VudCkKLSAgICBtc2cgKz0gIiwgezB9IiAuZm9ybWF0KFVTQUdFX01TRykKLSAg
ICB0cnVuY2F0ZWRfZXhwbGFuYXRpb24uZXh0ZW5kKFsKLSAgICAgICAgc2l4LnRleHRfdHlwZSgi
IiksCi0gICAgICAgIHNpeC50ZXh0X3R5cGUobXNnKSwKLSAgICBdKQotICAgIHJldHVybiB0cnVu
Y2F0ZWRfZXhwbGFuYXRpb24KLQotCi1kZWYgX3RydW5jYXRlX2J5X2NoYXJfY291bnQoaW5wdXRf
bGluZXMsIG1heF9jaGFycyk6Ci0gICAgIyBDaGVjayBpZiB0cnVuY2F0aW9uIHJlcXVpcmVkCi0g
ICAgaWYgbGVuKCIiLmpvaW4oaW5wdXRfbGluZXMpKSA8PSBtYXhfY2hhcnM6Ci0gICAgICAgIHJl
dHVybiBpbnB1dF9saW5lcwotCi0gICAgIyBGaW5kIHBvaW50IGF0IHdoaWNoIGlucHV0IGxlbmd0
aCBleGNlZWRzIHRvdGFsIGFsbG93ZWQgbGVuZ3RoCi0gICAgaXRlcmF0ZWRfY2hhcl9jb3VudCA9
IDAKLSAgICBmb3IgaXRlcmF0ZWRfaW5kZXgsIGlucHV0X2xpbmUgaW4gZW51bWVyYXRlKGlucHV0
X2xpbmVzKToKLSAgICAgICAgaWYgaXRlcmF0ZWRfY2hhcl9jb3VudCArIGxlbihpbnB1dF9saW5l
KSA+IG1heF9jaGFyczoKLSAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGl0ZXJhdGVkX2NoYXJf
Y291bnQgKz0gbGVuKGlucHV0X2xpbmUpCi0KLSAgICAjIENyZWF0ZSB0cnVuY2F0ZWQgZXhwbGFu
YXRpb24gd2l0aCBtb2RpZmllZCBmaW5hbCBsaW5lCi0gICAgdHJ1bmNhdGVkX3Jlc3VsdCA9IGlu
cHV0X2xpbmVzWzppdGVyYXRlZF9pbmRleF0KLSAgICBmaW5hbF9saW5lID0gaW5wdXRfbGluZXNb
aXRlcmF0ZWRfaW5kZXhdCi0gICAgaWYgZmluYWxfbGluZToKLSAgICAgICAgZmluYWxfbGluZV90
cnVuY2F0ZV9wb2ludCA9IG1heF9jaGFycyAtIGl0ZXJhdGVkX2NoYXJfY291bnQKLSAgICAgICAg
ZmluYWxfbGluZSA9IGZpbmFsX2xpbmVbOmZpbmFsX2xpbmVfdHJ1bmNhdGVfcG9pbnRdCi0gICAg
dHJ1bmNhdGVkX3Jlc3VsdC5hcHBlbmQoZmluYWxfbGluZSkKLSAgICByZXR1cm4gdHJ1bmNhdGVk
X3Jlc3VsdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdXRpbC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3V0aWwucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDUxMWQ5OGVmMWZkZjE5NjQzZDJhYzZiODg2NDhlODhjNjdiZDlkYjAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9hc3NlcnRpb24vdXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDMwOCArMCww
IEBACi0iIiJVdGlsaXRpZXMgZm9yIGFzc2VydGlvbiBkZWJ1Z2dpbmciIiIKLWZyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWlt
cG9ydCBwcHJpbnQKLQotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWltcG9ydCBweQotaW1wb3J0IHNp
eAotdHJ5OgotICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IFNlcXVlbmNlCi1leGNlcHQgSW1w
b3J0RXJyb3I6Ci0gICAgU2VxdWVuY2UgPSBsaXN0Ci0KLQotdSA9IHNpeC50ZXh0X3R5cGUKLQot
IyBUaGUgX3JlcHJjb21wYXJlIGF0dHJpYnV0ZSBvbiB0aGUgdXRpbCBtb2R1bGUgaXMgdXNlZCBi
eSB0aGUgbmV3IGFzc2VydGlvbgotIyBpbnRlcnByZXRhdGlvbiBjb2RlIGFuZCBhc3NlcnRpb24g
cmV3cml0ZXIgdG8gZGV0ZWN0IHRoaXMgcGx1Z2luIHdhcwotIyBsb2FkZWQgYW5kIGluIHR1cm4g
Y2FsbCB0aGUgaG9va3MgZGVmaW5lZCBoZXJlIGFzIHBhcnQgb2YgdGhlCi0jIERlYnVnSW50ZXJw
cmV0ZXIuCi1fcmVwcmNvbXBhcmUgPSBOb25lCi0KLQotIyB0aGUgcmUtZW5jb2RpbmcgaXMgbmVl
ZGVkIGZvciBweXRob24yIHJlcHIKLSMgd2l0aCBub24tYXNjaWkgY2hhcmFjdGVycyAoc2VlIGlz
c3VlIDg3NyBhbmQgMTM3OSkKLWRlZiBlY3Uocyk6Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4g
dShzLCAndXRmLTgnLCAncmVwbGFjZScpCi0gICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAg
cmV0dXJuIHMKLQotCi1kZWYgZm9ybWF0X2V4cGxhbmF0aW9uKGV4cGxhbmF0aW9uKToKLSAgICAi
IiJUaGlzIGZvcm1hdHMgYW4gZXhwbGFuYXRpb24KLQotICAgIE5vcm1hbGx5IGFsbCBlbWJlZGRl
ZCBuZXdsaW5lcyBhcmUgZXNjYXBlZCwgaG93ZXZlciB0aGVyZSBhcmUKLSAgICB0aHJlZSBleGNl
cHRpb25zOiBcbnssIFxufSBhbmQgXG5+LiAgVGhlIGZpcnN0IHR3byBhcmUgaW50ZW5kZWQKLSAg
ICBjb3ZlciBuZXN0ZWQgZXhwbGFuYXRpb25zLCBzZWUgZnVuY3Rpb24gYW5kIGF0dHJpYnV0ZSBl
eHBsYW5hdGlvbnMKLSAgICBmb3IgZXhhbXBsZXMgKC52aXNpdF9DYWxsKCksIHZpc2l0X0F0dHJp
YnV0ZSgpKS4gIFRoZSBsYXN0IG9uZSBpcwotICAgIGZvciB3aGVuIG9uZSBleHBsYW5hdGlvbiBu
ZWVkcyB0byBzcGFuIG11bHRpcGxlIGxpbmVzLCBlLmcuIHdoZW4KLSAgICBkaXNwbGF5aW5nIGRp
ZmZzLgotICAgICIiIgotICAgIGV4cGxhbmF0aW9uID0gZWN1KGV4cGxhbmF0aW9uKQotICAgIGxp
bmVzID0gX3NwbGl0X2V4cGxhbmF0aW9uKGV4cGxhbmF0aW9uKQotICAgIHJlc3VsdCA9IF9mb3Jt
YXRfbGluZXMobGluZXMpCi0gICAgcmV0dXJuIHUoJ1xuJykuam9pbihyZXN1bHQpCi0KLQotZGVm
IF9zcGxpdF9leHBsYW5hdGlvbihleHBsYW5hdGlvbik6Ci0gICAgIiIiUmV0dXJuIGEgbGlzdCBv
ZiBpbmRpdmlkdWFsIGxpbmVzIGluIHRoZSBleHBsYW5hdGlvbgotCi0gICAgVGhpcyB3aWxsIHJl
dHVybiBhIGxpc3Qgb2YgbGluZXMgc3BsaXQgb24gJ1xueycsICdcbn0nIGFuZCAnXG5+Jy4KLSAg
ICBBbnkgb3RoZXIgbmV3bGluZXMgd2lsbCBiZSBlc2NhcGVkIGFuZCBhcHBlYXIgaW4gdGhlIGxp
bmUgYXMgdGhlCi0gICAgbGl0ZXJhbCAnXG4nIGNoYXJhY3RlcnMuCi0gICAgIiIiCi0gICAgcmF3
X2xpbmVzID0gKGV4cGxhbmF0aW9uIG9yIHUoJycpKS5zcGxpdCgnXG4nKQotICAgIGxpbmVzID0g
W3Jhd19saW5lc1swXV0KLSAgICBmb3IgdmFsdWVzIGluIHJhd19saW5lc1sxOl06Ci0gICAgICAg
IGlmIHZhbHVlcyBhbmQgdmFsdWVzWzBdIGluIFsneycsICd9JywgJ34nLCAnPiddOgotICAgICAg
ICAgICAgbGluZXMuYXBwZW5kKHZhbHVlcykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxp
bmVzWy0xXSArPSAnXFxuJyArIHZhbHVlcwotICAgIHJldHVybiBsaW5lcwotCi0KLWRlZiBfZm9y
bWF0X2xpbmVzKGxpbmVzKToKLSAgICAiIiJGb3JtYXQgdGhlIGluZGl2aWR1YWwgbGluZXMKLQot
ICAgIFRoaXMgd2lsbCByZXBsYWNlIHRoZSAneycsICd9JyBhbmQgJ34nIGNoYXJhY3RlcnMgb2Yg
b3VyIG1pbmkKLSAgICBmb3JtYXR0aW5nIGxhbmd1YWdlIHdpdGggdGhlIHByb3BlciAnd2hlcmUg
Li4uJywgJ2FuZCAuLi4nIGFuZCAnICsKLSAgICAuLi4nIHRleHQsIHRha2luZyBjYXJlIG9mIGlu
ZGVudGF0aW9uIGFsb25nIHRoZSB3YXkuCi0KLSAgICBSZXR1cm4gYSBsaXN0IG9mIGZvcm1hdHRl
ZCBsaW5lcy4KLSAgICAiIiIKLSAgICByZXN1bHQgPSBsaW5lc1s6MV0KLSAgICBzdGFjayA9IFsw
XQotICAgIHN0YWNrY250ID0gWzBdCi0gICAgZm9yIGxpbmUgaW4gbGluZXNbMTpdOgotICAgICAg
ICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ3snKToKLSAgICAgICAgICAgIGlmIHN0YWNrY250Wy0xXToK
LSAgICAgICAgICAgICAgICBzID0gdSgnYW5kICAgJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgcyA9IHUoJ3doZXJlICcpCi0gICAgICAgICAgICBzdGFjay5hcHBlbmQobGVu
KHJlc3VsdCkpCi0gICAgICAgICAgICBzdGFja2NudFstMV0gKz0gMQotICAgICAgICAgICAgc3Rh
Y2tjbnQuYXBwZW5kKDApCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHUoJyArJykgKyB1KCcg
ICcpICogKGxlbihzdGFjaykgLSAxKSArIHMgKyBsaW5lWzE6XSkKLSAgICAgICAgZWxpZiBsaW5l
LnN0YXJ0c3dpdGgoJ30nKToKLSAgICAgICAgICAgIHN0YWNrLnBvcCgpCi0gICAgICAgICAgICBz
dGFja2NudC5wb3AoKQotICAgICAgICAgICAgcmVzdWx0W3N0YWNrWy0xXV0gKz0gbGluZVsxOl0K
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFzc2VydCBsaW5lWzBdIGluIFsnficsICc+J10K
LSAgICAgICAgICAgIHN0YWNrWy0xXSArPSAxCi0gICAgICAgICAgICBpbmRlbnQgPSBsZW4oc3Rh
Y2spIGlmIGxpbmUuc3RhcnRzd2l0aCgnficpIGVsc2UgbGVuKHN0YWNrKSAtIDEKLSAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQodSgnICAnKSAqIGluZGVudCArIGxpbmVbMTpdKQotICAgIGFzc2Vy
dCBsZW4oc3RhY2spID09IDEKLSAgICByZXR1cm4gcmVzdWx0Ci0KLQotIyBQcm92aWRlIGJhc2Vz
dHJpbmcgaW4gcHl0aG9uMwotdHJ5OgotICAgIGJhc2VzdHJpbmcgPSBiYXNlc3RyaW5nCi1leGNl
cHQgTmFtZUVycm9yOgotICAgIGJhc2VzdHJpbmcgPSBzdHIKLQotCi1kZWYgYXNzZXJ0cmVwcl9j
b21wYXJlKGNvbmZpZywgb3AsIGxlZnQsIHJpZ2h0KToKLSAgICAiIiJSZXR1cm4gc3BlY2lhbGlz
ZWQgZXhwbGFuYXRpb25zIGZvciBzb21lIG9wZXJhdG9ycy9vcGVyYW5kcyIiIgotICAgIHdpZHRo
ID0gODAgLSAxNSAtIGxlbihvcCkgLSAyICAjIDE1IGNoYXJzIGluZGVudGF0aW9uLCAxIHNwYWNl
IGFyb3VuZCBvcAotICAgIGxlZnRfcmVwciA9IHB5LmlvLnNhZmVyZXByKGxlZnQsIG1heHNpemU9
aW50KHdpZHRoIC8vIDIpKQotICAgIHJpZ2h0X3JlcHIgPSBweS5pby5zYWZlcmVwcihyaWdodCwg
bWF4c2l6ZT13aWR0aCAtIGxlbihsZWZ0X3JlcHIpKQotCi0gICAgc3VtbWFyeSA9IHUoJyVzICVz
ICVzJykgJSAoZWN1KGxlZnRfcmVwciksIG9wLCBlY3UocmlnaHRfcmVwcikpCi0KLSAgICBkZWYg
aXNzZXF1ZW5jZSh4KToKLSAgICAgICAgcmV0dXJuIChpc2luc3RhbmNlKHgsIChsaXN0LCB0dXBs
ZSwgU2VxdWVuY2UpKSBhbmQgbm90IGlzaW5zdGFuY2UoeCwgYmFzZXN0cmluZykpCi0KLSAgICBk
ZWYgaXN0ZXh0KHgpOgotICAgICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCBiYXNlc3RyaW5nKQot
Ci0gICAgZGVmIGlzZGljdCh4KToKLSAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgZGljdCkK
LQotICAgIGRlZiBpc3NldCh4KToKLSAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgKHNldCwg
ZnJvemVuc2V0KSkKLQotICAgIGRlZiBpc2l0ZXJhYmxlKG9iaik6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGl0ZXIob2JqKQotICAgICAgICAgICAgcmV0dXJuIG5vdCBpc3RleHQob2JqKQot
ICAgICAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAg
ICB2ZXJib3NlID0gY29uZmlnLmdldG9wdGlvbigndmVyYm9zZScpCi0gICAgZXhwbGFuYXRpb24g
PSBOb25lCi0gICAgdHJ5OgotICAgICAgICBpZiBvcCA9PSAnPT0nOgotICAgICAgICAgICAgaWYg
aXN0ZXh0KGxlZnQpIGFuZCBpc3RleHQocmlnaHQpOgotICAgICAgICAgICAgICAgIGV4cGxhbmF0
aW9uID0gX2RpZmZfdGV4dChsZWZ0LCByaWdodCwgdmVyYm9zZSkKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgaWYgaXNzZXF1ZW5jZShsZWZ0KSBhbmQgaXNzZXF1ZW5jZShyaWdo
dCk6Ci0gICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gX2NvbXBhcmVfZXFfc2VxdWVu
Y2UobGVmdCwgcmlnaHQsIHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgZWxpZiBpc3NldChsZWZ0
KSBhbmQgaXNzZXQocmlnaHQpOgotICAgICAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9IF9j
b21wYXJlX2VxX3NldChsZWZ0LCByaWdodCwgdmVyYm9zZSkKLSAgICAgICAgICAgICAgICBlbGlm
IGlzZGljdChsZWZ0KSBhbmQgaXNkaWN0KHJpZ2h0KToKLSAgICAgICAgICAgICAgICAgICAgZXhw
bGFuYXRpb24gPSBfY29tcGFyZV9lcV9kaWN0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQotICAgICAg
ICAgICAgICAgIGlmIGlzaXRlcmFibGUobGVmdCkgYW5kIGlzaXRlcmFibGUocmlnaHQpOgotICAg
ICAgICAgICAgICAgICAgICBleHBsID0gX2NvbXBhcmVfZXFfaXRlcmFibGUobGVmdCwgcmlnaHQs
IHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIGlmIGV4cGxhbmF0aW9uIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFuYXRpb24uZXh0ZW5kKGV4cGwpCi0gICAg
ICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBleHBsYW5hdGlv
biA9IGV4cGwKLSAgICAgICAgZWxpZiBvcCA9PSAnbm90IGluJzoKLSAgICAgICAgICAgIGlmIGlz
dGV4dChsZWZ0KSBhbmQgaXN0ZXh0KHJpZ2h0KToKLSAgICAgICAgICAgICAgICBleHBsYW5hdGlv
biA9IF9ub3Rpbl90ZXh0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQotICAgIGV4Y2VwdCBFeGNlcHRp
b246Ci0gICAgICAgIGV4cGxhbmF0aW9uID0gWwotICAgICAgICAgICAgdSgnKHB5dGVzdF9hc3Nl
cnRpb24gcGx1Z2luOiByZXByZXNlbnRhdGlvbiBvZiBkZXRhaWxzIGZhaWxlZC4gICcKLSAgICAg
ICAgICAgICAgJ1Byb2JhYmx5IGFuIG9iamVjdCBoYXMgYSBmYXVsdHkgX19yZXByX18uKScpLAot
ICAgICAgICAgICAgdShfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKSldCi0KLSAgICBpZiBu
b3QgZXhwbGFuYXRpb246Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICByZXR1cm4gW3N1bW1h
cnldICsgZXhwbGFuYXRpb24KLQotCi1kZWYgX2RpZmZfdGV4dChsZWZ0LCByaWdodCwgdmVyYm9z
ZT1GYWxzZSk6Ci0gICAgIiIiUmV0dXJuIHRoZSBleHBsYW5hdGlvbiBmb3IgdGhlIGRpZmYgYmV0
d2VlbiB0ZXh0IG9yIGJ5dGVzCi0KLSAgICBVbmxlc3MgLS12ZXJib3NlIGlzIHVzZWQgdGhpcyB3
aWxsIHNraXAgbGVhZGluZyBhbmQgdHJhaWxpbmcKLSAgICBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBp
ZGVudGljYWwgdG8ga2VlcCB0aGUgZGlmZiBtaW5pbWFsLgotCi0gICAgSWYgdGhlIGlucHV0IGFy
ZSBieXRlcyB0aGV5IHdpbGwgYmUgc2FmZWx5IGNvbnZlcnRlZCB0byB0ZXh0LgotICAgICIiIgot
ICAgIGZyb20gZGlmZmxpYiBpbXBvcnQgbmRpZmYKLSAgICBleHBsYW5hdGlvbiA9IFtdCi0gICAg
aWYgaXNpbnN0YW5jZShsZWZ0LCBzaXguYmluYXJ5X3R5cGUpOgotICAgICAgICBsZWZ0ID0gdShy
ZXByKGxlZnQpWzE6LTFdKS5yZXBsYWNlKHInXG4nLCAnXG4nKQotICAgIGlmIGlzaW5zdGFuY2Uo
cmlnaHQsIHNpeC5iaW5hcnlfdHlwZSk6Ci0gICAgICAgIHJpZ2h0ID0gdShyZXByKHJpZ2h0KVsx
Oi0xXSkucmVwbGFjZShyJ1xuJywgJ1xuJykKLSAgICBpZiBub3QgdmVyYm9zZToKLSAgICAgICAg
aSA9IDAgICMganVzdCBpbiBjYXNlIGxlZnQgb3IgcmlnaHQgaGFzIHplcm8gbGVuZ3RoCi0gICAg
ICAgIGZvciBpIGluIHJhbmdlKG1pbihsZW4obGVmdCksIGxlbihyaWdodCkpKToKLSAgICAgICAg
ICAgIGlmIGxlZnRbaV0gIT0gcmlnaHRbaV06Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAg
ICAgaWYgaSA+IDQyOgotICAgICAgICAgICAgaSAtPSAxMCAgICAgICAgICAgICAgICAgIyBQcm92
aWRlIHNvbWUgY29udGV4dAotICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBbdSgnU2tpcHBpbmcg
JXMgaWRlbnRpY2FsIGxlYWRpbmcgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hh
cmFjdGVycyBpbiBkaWZmLCB1c2UgLXYgdG8gc2hvdycpICUgaV0KLSAgICAgICAgICAgIGxlZnQg
PSBsZWZ0W2k6XQotICAgICAgICAgICAgcmlnaHQgPSByaWdodFtpOl0KLSAgICAgICAgaWYgbGVu
KGxlZnQpID09IGxlbihyaWdodCk6Ci0gICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4obGVm
dCkpOgotICAgICAgICAgICAgICAgIGlmIGxlZnRbLWldICE9IHJpZ2h0Wy1pXToKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGlmIGkgPiA0MjoKLSAgICAgICAgICAgICAg
ICBpIC09IDEwICAgICAjIFByb3ZpZGUgc29tZSBjb250ZXh0Ci0gICAgICAgICAgICAgICAgZXhw
bGFuYXRpb24gKz0gW3UoJ1NraXBwaW5nICVzIGlkZW50aWNhbCB0cmFpbGluZyAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NoYXJhY3RlcnMgaW4gZGlmZiwgdXNlIC12IHRv
IHNob3cnKSAlIGldCi0gICAgICAgICAgICAgICAgbGVmdCA9IGxlZnRbOi1pXQotICAgICAgICAg
ICAgICAgIHJpZ2h0ID0gcmlnaHRbOi1pXQotICAgIGtlZXBlbmRzID0gVHJ1ZQotICAgIGV4cGxh
bmF0aW9uICs9IFtsaW5lLnN0cmlwKCdcbicpCi0gICAgICAgICAgICAgICAgICAgIGZvciBsaW5l
IGluIG5kaWZmKGxlZnQuc3BsaXRsaW5lcyhrZWVwZW5kcyksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJpZ2h0LnNwbGl0bGluZXMoa2VlcGVuZHMpKV0KLSAgICByZXR1
cm4gZXhwbGFuYXRpb24KLQotCi1kZWYgX2NvbXBhcmVfZXFfaXRlcmFibGUobGVmdCwgcmlnaHQs
IHZlcmJvc2U9RmFsc2UpOgotICAgIGlmIG5vdCB2ZXJib3NlOgotICAgICAgICByZXR1cm4gW3Uo
J1VzZSAtdiB0byBnZXQgdGhlIGZ1bGwgZGlmZicpXQotICAgICMgZHluYW1pYyBpbXBvcnQgdG8g
c3BlZWR1cCBweXRlc3QKLSAgICBpbXBvcnQgZGlmZmxpYgotCi0gICAgdHJ5OgotICAgICAgICBs
ZWZ0X2Zvcm1hdHRpbmcgPSBwcHJpbnQucGZvcm1hdChsZWZ0KS5zcGxpdGxpbmVzKCkKLSAgICAg
ICAgcmlnaHRfZm9ybWF0dGluZyA9IHBwcmludC5wZm9ybWF0KHJpZ2h0KS5zcGxpdGxpbmVzKCkK
LSAgICAgICAgZXhwbGFuYXRpb24gPSBbdSgnRnVsbCBkaWZmOicpXQotICAgIGV4Y2VwdCBFeGNl
cHRpb246Ci0gICAgICAgICMgaGFjazogUHJldHR5UHJpbnRlci5wZm9ybWF0KCkgaW4gcHl0aG9u
IDIgZmFpbHMgd2hlbiBmb3JtYXR0aW5nIGl0ZW1zIHRoYXQgY2FuJ3QgYmUgc29ydGVkKCksIGll
LCBjYWxsaW5nCi0gICAgICAgICMgc29ydGVkKCkgb24gYSBsaXN0IHdvdWxkIHJhaXNlLiBTZWUg
aXNzdWUgIzcxOC4KLSAgICAgICAgIyBBcyBhIHdvcmthcm91bmQsIHRoZSBmdWxsIGRpZmYgaXMg
Z2VuZXJhdGVkIGJ5IHVzaW5nIHRoZSByZXByKCkgc3RyaW5nIG9mIGVhY2ggaXRlbSBvZiBlYWNo
IGNvbnRhaW5lci4KLSAgICAgICAgbGVmdF9mb3JtYXR0aW5nID0gc29ydGVkKHJlcHIoeCkgZm9y
IHggaW4gbGVmdCkKLSAgICAgICAgcmlnaHRfZm9ybWF0dGluZyA9IHNvcnRlZChyZXByKHgpIGZv
ciB4IGluIHJpZ2h0KQotICAgICAgICBleHBsYW5hdGlvbiA9IFt1KCdGdWxsIGRpZmYgKGZhbGxi
YWNrIHRvIGNhbGxpbmcgcmVwciBvbiBlYWNoIGl0ZW0pOicpXQotICAgIGV4cGxhbmF0aW9uLmV4
dGVuZChsaW5lLnN0cmlwKCkgZm9yIGxpbmUgaW4gZGlmZmxpYi5uZGlmZihsZWZ0X2Zvcm1hdHRp
bmcsIHJpZ2h0X2Zvcm1hdHRpbmcpKQotICAgIHJldHVybiBleHBsYW5hdGlvbgotCi0KLWRlZiBf
Y29tcGFyZV9lcV9zZXF1ZW5jZShsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxzZSk6Ci0gICAgZXhw
bGFuYXRpb24gPSBbXQotICAgIGZvciBpIGluIHJhbmdlKG1pbihsZW4obGVmdCksIGxlbihyaWdo
dCkpKToKLSAgICAgICAgaWYgbGVmdFtpXSAhPSByaWdodFtpXToKLSAgICAgICAgICAgIGV4cGxh
bmF0aW9uICs9IFt1KCdBdCBpbmRleCAlcyBkaWZmOiAlciAhPSAlcicpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJSAoaSwgbGVmdFtpXSwgcmlnaHRbaV0pXQotICAgICAgICAgICAgYnJl
YWsKLSAgICBpZiBsZW4obGVmdCkgPiBsZW4ocmlnaHQpOgotICAgICAgICBleHBsYW5hdGlvbiAr
PSBbdSgnTGVmdCBjb250YWlucyBtb3JlIGl0ZW1zLCBmaXJzdCBleHRyYSBpdGVtOiAlcycpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAlIHB5LmlvLnNhZmVyZXByKGxlZnRbbGVuKHJpZ2h0KV0s
KV0KLSAgICBlbGlmIGxlbihsZWZ0KSA8IGxlbihyaWdodCk6Ci0gICAgICAgIGV4cGxhbmF0aW9u
ICs9IFsKLSAgICAgICAgICAgIHUoJ1JpZ2h0IGNvbnRhaW5zIG1vcmUgaXRlbXMsIGZpcnN0IGV4
dHJhIGl0ZW06ICVzJykgJQotICAgICAgICAgICAgcHkuaW8uc2FmZXJlcHIocmlnaHRbbGVuKGxl
ZnQpXSwpXQotICAgIHJldHVybiBleHBsYW5hdGlvbgotCi0KLWRlZiBfY29tcGFyZV9lcV9zZXQo
bGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgotICAgIGV4cGxhbmF0aW9uID0gW10KLSAgICBk
aWZmX2xlZnQgPSBsZWZ0IC0gcmlnaHQKLSAgICBkaWZmX3JpZ2h0ID0gcmlnaHQgLSBsZWZ0Ci0g
ICAgaWYgZGlmZl9sZWZ0OgotICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSgnRXh0cmEgaXRl
bXMgaW4gdGhlIGxlZnQgc2V0OicpKQotICAgICAgICBmb3IgaXRlbSBpbiBkaWZmX2xlZnQ6Ci0g
ICAgICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQocHkuaW8uc2FmZXJlcHIoaXRlbSkpCi0gICAg
aWYgZGlmZl9yaWdodDoKLSAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5kKHUoJ0V4dHJhIGl0ZW1z
IGluIHRoZSByaWdodCBzZXQ6JykpCi0gICAgICAgIGZvciBpdGVtIGluIGRpZmZfcmlnaHQ6Ci0g
ICAgICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQocHkuaW8uc2FmZXJlcHIoaXRlbSkpCi0gICAg
cmV0dXJuIGV4cGxhbmF0aW9uCi0KLQotZGVmIF9jb21wYXJlX2VxX2RpY3QobGVmdCwgcmlnaHQs
IHZlcmJvc2U9RmFsc2UpOgotICAgIGV4cGxhbmF0aW9uID0gW10KLSAgICBjb21tb24gPSBzZXQo
bGVmdCkuaW50ZXJzZWN0aW9uKHNldChyaWdodCkpCi0gICAgc2FtZSA9IGRpY3QoKGssIGxlZnRb
a10pIGZvciBrIGluIGNvbW1vbiBpZiBsZWZ0W2tdID09IHJpZ2h0W2tdKQotICAgIGlmIHNhbWUg
YW5kIHZlcmJvc2UgPCAyOgotICAgICAgICBleHBsYW5hdGlvbiArPSBbdSgnT21pdHRpbmcgJXMg
aWRlbnRpY2FsIGl0ZW1zLCB1c2UgLXZ2IHRvIHNob3cnKSAlCi0gICAgICAgICAgICAgICAgICAg
ICAgICBsZW4oc2FtZSldCi0gICAgZWxpZiBzYW1lOgotICAgICAgICBleHBsYW5hdGlvbiArPSBb
dSgnQ29tbW9uIGl0ZW1zOicpXQotICAgICAgICBleHBsYW5hdGlvbiArPSBwcHJpbnQucGZvcm1h
dChzYW1lKS5zcGxpdGxpbmVzKCkKLSAgICBkaWZmID0gc2V0KGsgZm9yIGsgaW4gY29tbW9uIGlm
IGxlZnRba10gIT0gcmlnaHRba10pCi0gICAgaWYgZGlmZjoKLSAgICAgICAgZXhwbGFuYXRpb24g
Kz0gW3UoJ0RpZmZlcmluZyBpdGVtczonKV0KLSAgICAgICAgZm9yIGsgaW4gZGlmZjoKLSAgICAg
ICAgICAgIGV4cGxhbmF0aW9uICs9IFtweS5pby5zYWZlcmVwcih7azogbGVmdFtrXX0pICsgJyAh
PSAnICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBweS5pby5zYWZlcmVwcih7azogcmln
aHRba119KV0KLSAgICBleHRyYV9sZWZ0ID0gc2V0KGxlZnQpIC0gc2V0KHJpZ2h0KQotICAgIGlm
IGV4dHJhX2xlZnQ6Ci0gICAgICAgIGV4cGxhbmF0aW9uLmFwcGVuZCh1KCdMZWZ0IGNvbnRhaW5z
IG1vcmUgaXRlbXM6JykpCi0gICAgICAgIGV4cGxhbmF0aW9uLmV4dGVuZChwcHJpbnQucGZvcm1h
dCgKLSAgICAgICAgICAgIGRpY3QoKGssIGxlZnRba10pIGZvciBrIGluIGV4dHJhX2xlZnQpKS5z
cGxpdGxpbmVzKCkpCi0gICAgZXh0cmFfcmlnaHQgPSBzZXQocmlnaHQpIC0gc2V0KGxlZnQpCi0g
ICAgaWYgZXh0cmFfcmlnaHQ6Ci0gICAgICAgIGV4cGxhbmF0aW9uLmFwcGVuZCh1KCdSaWdodCBj
b250YWlucyBtb3JlIGl0ZW1zOicpKQotICAgICAgICBleHBsYW5hdGlvbi5leHRlbmQocHByaW50
LnBmb3JtYXQoCi0gICAgICAgICAgICBkaWN0KChrLCByaWdodFtrXSkgZm9yIGsgaW4gZXh0cmFf
cmlnaHQpKS5zcGxpdGxpbmVzKCkpCi0gICAgcmV0dXJuIGV4cGxhbmF0aW9uCi0KLQotZGVmIF9u
b3Rpbl90ZXh0KHRlcm0sIHRleHQsIHZlcmJvc2U9RmFsc2UpOgotICAgIGluZGV4ID0gdGV4dC5m
aW5kKHRlcm0pCi0gICAgaGVhZCA9IHRleHRbOmluZGV4XQotICAgIHRhaWwgPSB0ZXh0W2luZGV4
ICsgbGVuKHRlcm0pOl0KLSAgICBjb3JyZWN0X3RleHQgPSBoZWFkICsgdGFpbAotICAgIGRpZmYg
PSBfZGlmZl90ZXh0KGNvcnJlY3RfdGV4dCwgdGV4dCwgdmVyYm9zZSkKLSAgICBuZXdkaWZmID0g
W3UoJyVzIGlzIGNvbnRhaW5lZCBoZXJlOicpICUgcHkuaW8uc2FmZXJlcHIodGVybSwgbWF4c2l6
ZT00MildCi0gICAgZm9yIGxpbmUgaW4gZGlmZjoKLSAgICAgICAgaWYgbGluZS5zdGFydHN3aXRo
KHUoJ1NraXBwaW5nJykpOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgaWYgbGluZS5z
dGFydHN3aXRoKHUoJy0gJykpOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgaWYgbGlu
ZS5zdGFydHN3aXRoKHUoJysgJykpOgotICAgICAgICAgICAgbmV3ZGlmZi5hcHBlbmQodSgnICAn
KSArIGxpbmVbMjpdKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbmV3ZGlmZi5hcHBlbmQo
bGluZSkKLSAgICByZXR1cm4gbmV3ZGlmZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9hc3NlcnRpb24vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlv
bi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDEzMDdkM2Fi
YzcyMTU4ZjQxZDY0NDJjZmQ1OTFlMWIwNWY5Y2FjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9hc3NlcnRpb24vcmV3cml0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3Ry
dW5jYXRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdXRpbC5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
NTM3YzE0NDcyYjFjZTkxNjljZmU3NjI5MDE1ODg0YjBlNGUzZTRmLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FjaGVw
cm92aWRlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDI2MCArMCwwIEBACi0iIiIKLW1lcmdlZCBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgY2FjaGUgcHJvdmlkZXIKLQotdGhlIG5hbWUgY2FjaGUgd2Fz
IG5vdCBjaG9zZW4gdG8gZW5zdXJlIHBsdWdneSBhdXRvbWF0aWNhbGx5Ci1pZ25vcmVzIHRoZSBl
eHRlcm5hbCBweXRlc3QtY2FjaGUKLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHB5Ci1pbXBvcnQgcHl0
ZXN0Ci1pbXBvcnQganNvbgotaW1wb3J0IG9zCi1mcm9tIG9zLnBhdGggaW1wb3J0IHNlcCBhcyBf
c2VwLCBhbHRzZXAgYXMgX2FsdHNlcAotCi0KLWNsYXNzIENhY2hlKG9iamVjdCk6Ci0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCi0g
ICAgICAgIHNlbGYuX2NhY2hlZGlyID0gQ2FjaGUuY2FjaGVfZGlyX2Zyb21fY29uZmlnKGNvbmZp
ZykKLSAgICAgICAgc2VsZi50cmFjZSA9IGNvbmZpZy50cmFjZS5yb290LmdldCgiY2FjaGUiKQot
ICAgICAgICBpZiBjb25maWcuZ2V0dmFsdWUoImNhY2hlY2xlYXIiKToKLSAgICAgICAgICAgIHNl
bGYudHJhY2UoImNsZWFyaW5nIGNhY2hlZGlyIikKLSAgICAgICAgICAgIGlmIHNlbGYuX2NhY2hl
ZGlyLmNoZWNrKCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY2FjaGVkaXIucmVtb3ZlKCkKLSAg
ICAgICAgICAgIHNlbGYuX2NhY2hlZGlyLm1rZGlyKCkKLQotICAgIEBzdGF0aWNtZXRob2QKLSAg
ICBkZWYgY2FjaGVfZGlyX2Zyb21fY29uZmlnKGNvbmZpZyk6Ci0gICAgICAgIGNhY2hlX2RpciA9
IGNvbmZpZy5nZXRpbmkoImNhY2hlX2RpciIpCi0gICAgICAgIGNhY2hlX2RpciA9IG9zLnBhdGgu
ZXhwYW5kdXNlcihjYWNoZV9kaXIpCi0gICAgICAgIGNhY2hlX2RpciA9IG9zLnBhdGguZXhwYW5k
dmFycyhjYWNoZV9kaXIpCi0gICAgICAgIGlmIG9zLnBhdGguaXNhYnMoY2FjaGVfZGlyKToKLSAg
ICAgICAgICAgIHJldHVybiBweS5wYXRoLmxvY2FsKGNhY2hlX2RpcikKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHJldHVybiBjb25maWcucm9vdGRpci5qb2luKGNhY2hlX2RpcikKLQotICAg
IGRlZiBtYWtlZGlyKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiIgcmV0dXJuIGEgZGlyZWN0b3J5
IHBhdGggb2JqZWN0IHdpdGggdGhlIGdpdmVuIG5hbWUuICBJZiB0aGUKLSAgICAgICAgZGlyZWN0
b3J5IGRvZXMgbm90IHlldCBleGlzdCwgaXQgd2lsbCBiZSBjcmVhdGVkLiAgWW91IGNhbiB1c2Ug
aXQKLSAgICAgICAgdG8gbWFuYWdlIGZpbGVzIGxpa2VzIGUuIGcuIHN0b3JlL3JldHJpZXZlIGRh
dGFiYXNlCi0gICAgICAgIGR1bXBzIGFjcm9zcyB0ZXN0IHNlc3Npb25zLgotCi0gICAgICAgIDpw
YXJhbSBuYW1lOiBtdXN0IGJlIGEgc3RyaW5nIG5vdCBjb250YWluaW5nIGEgYGAvYGAgc2VwYXJh
dG9yLgotICAgICAgICAgICAgIE1ha2Ugc3VyZSB0aGUgbmFtZSBjb250YWlucyB5b3VyIHBsdWdp
biBvciBhcHBsaWNhdGlvbgotICAgICAgICAgICAgIGlkZW50aWZpZXJzIHRvIHByZXZlbnQgY2xh
c2hlcyB3aXRoIG90aGVyIGNhY2hlIHVzZXJzLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgX3Nl
cCBpbiBuYW1lIG9yIF9hbHRzZXAgaXMgbm90IE5vbmUgYW5kIF9hbHRzZXAgaW4gbmFtZToKLSAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5hbWUgaXMgbm90IGFsbG93ZWQgdG8gY29udGFp
biBwYXRoIHNlcGFyYXRvcnMiKQotICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVkaXIuZW5zdXJl
X2RpcigiZCIsIG5hbWUpCi0KLSAgICBkZWYgX2dldHZhbHVlcGF0aChzZWxmLCBrZXkpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fY2FjaGVkaXIuam9pbigndicsICprZXkuc3BsaXQoJy8nKSkKLQot
ICAgIGRlZiBnZXQoc2VsZiwga2V5LCBkZWZhdWx0KToKLSAgICAgICAgIiIiIHJldHVybiBjYWNo
ZWQgdmFsdWUgZm9yIHRoZSBnaXZlbiBrZXkuICBJZiBubyB2YWx1ZQotICAgICAgICB3YXMgeWV0
IGNhY2hlZCBvciB0aGUgdmFsdWUgY2Fubm90IGJlIHJlYWQsIHRoZSBzcGVjaWZpZWQKLSAgICAg
ICAgZGVmYXVsdCBpcyByZXR1cm5lZC4KLQotICAgICAgICA6cGFyYW0ga2V5OiBtdXN0IGJlIGEg
YGAvYGAgc2VwYXJhdGVkIHZhbHVlLiBVc3VhbGx5IHRoZSBmaXJzdAotICAgICAgICAgICAgIG5h
bWUgaXMgdGhlIG5hbWUgb2YgeW91ciBwbHVnaW4gb3IgeW91ciBhcHBsaWNhdGlvbi4KLSAgICAg
ICAgOnBhcmFtIGRlZmF1bHQ6IG11c3QgYmUgcHJvdmlkZWQgaW4gY2FzZSBvZiBhIGNhY2hlLW1p
c3Mgb3IKLSAgICAgICAgICAgICBpbnZhbGlkIGNhY2hlIHZhbHVlcy4KLQotICAgICAgICAiIiIK
LSAgICAgICAgcGF0aCA9IHNlbGYuX2dldHZhbHVlcGF0aChrZXkpCi0gICAgICAgIGlmIHBhdGgu
Y2hlY2soKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB3aXRoIHBhdGgub3Bl
bigiciIpIGFzIGY6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBqc29uLmxvYWQoZikKLSAg
ICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgICAgIHNlbGYudHJhY2Uo
ImNhY2hlLWludmFsaWQgYXQgJXMiICUgKHBhdGgsKSkKLSAgICAgICAgcmV0dXJuIGRlZmF1bHQK
LQotICAgIGRlZiBzZXQoc2VsZiwga2V5LCB2YWx1ZSk6Ci0gICAgICAgICIiIiBzYXZlIHZhbHVl
IGZvciB0aGUgZ2l2ZW4ga2V5LgotCi0gICAgICAgIDpwYXJhbSBrZXk6IG11c3QgYmUgYSBgYC9g
YCBzZXBhcmF0ZWQgdmFsdWUuIFVzdWFsbHkgdGhlIGZpcnN0Ci0gICAgICAgICAgICAgbmFtZSBp
cyB0aGUgbmFtZSBvZiB5b3VyIHBsdWdpbiBvciB5b3VyIGFwcGxpY2F0aW9uLgotICAgICAgICA6
cGFyYW0gdmFsdWU6IG11c3QgYmUgb2YgYW55IGNvbWJpbmF0aW9uIG9mIGJhc2ljCi0gICAgICAg
ICAgICAgICBweXRob24gdHlwZXMsIGluY2x1ZGluZyBuZXN0ZWQgdHlwZXMKLSAgICAgICAgICAg
ICAgIGxpa2UgZS4gZy4gbGlzdHMgb2YgZGljdGlvbmFyaWVzLgotICAgICAgICAiIiIKLSAgICAg
ICAgcGF0aCA9IHNlbGYuX2dldHZhbHVlcGF0aChrZXkpCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIHBhdGguZGlycGF0aCgpLmVuc3VyZV9kaXIoKQotICAgICAgICBleGNlcHQgKHB5LmVycm9y
LkVFWElTVCwgcHkuZXJyb3IuRUFDQ0VTKToKLSAgICAgICAgICAgIHNlbGYuY29uZmlnLndhcm4o
Ci0gICAgICAgICAgICAgICAgY29kZT0nSTknLCBtZXNzYWdlPSdjb3VsZCBub3QgY3JlYXRlIGNh
Y2hlIHBhdGggJXMnICUgKHBhdGgsKQotICAgICAgICAgICAgKQotICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGYgPSBwYXRoLm9wZW4oJ3cnKQotICAgICAgICBl
eGNlcHQgcHkuZXJyb3IuRU5PVERJUjoKLSAgICAgICAgICAgIHNlbGYuY29uZmlnLndhcm4oCi0g
ICAgICAgICAgICAgICAgY29kZT0nSTknLCBtZXNzYWdlPSdjYWNoZSBjb3VsZCBub3Qgd3JpdGUg
cGF0aCAlcycgJSAocGF0aCwpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgd2l0aCBmOgot
ICAgICAgICAgICAgICAgIHNlbGYudHJhY2UoImNhY2hlLXdyaXRlICVzOiAlciIgJSAoa2V5LCB2
YWx1ZSwpKQotICAgICAgICAgICAgICAgIGpzb24uZHVtcCh2YWx1ZSwgZiwgaW5kZW50PTIsIHNv
cnRfa2V5cz1UcnVlKQotCi0KLWNsYXNzIExGUGx1Z2luOgotICAgICIiIiBQbHVnaW4gd2hpY2gg
aW1wbGVtZW50cyB0aGUgLS1sZiAocnVuIGxhc3QtZmFpbGluZykgb3B0aW9uICIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmln
Ci0gICAgICAgIGFjdGl2ZV9rZXlzID0gJ2xmJywgJ2ZhaWxlZGZpcnN0JwotICAgICAgICBzZWxm
LmFjdGl2ZSA9IGFueShjb25maWcuZ2V0dmFsdWUoa2V5KSBmb3Iga2V5IGluIGFjdGl2ZV9rZXlz
KQotICAgICAgICBzZWxmLmxhc3RmYWlsZWQgPSBjb25maWcuY2FjaGUuZ2V0KCJjYWNoZS9sYXN0
ZmFpbGVkIiwge30pCi0gICAgICAgIHNlbGYuX3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50ID0gTm9u
ZQotCi0gICAgZGVmIHB5dGVzdF9yZXBvcnRfY29sbGVjdGlvbmZpbmlzaChzZWxmKToKLSAgICAg
ICAgaWYgc2VsZi5hY3RpdmU6Ci0gICAgICAgICAgICBpZiBub3Qgc2VsZi5fcHJldmlvdXNseV9m
YWlsZWRfY291bnQ6Ci0gICAgICAgICAgICAgICAgbW9kZSA9ICJydW4gYWxsIChubyByZWNvcmRl
ZCBmYWlsdXJlcykiCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG5vdW4gPSAn
ZmFpbHVyZScgaWYgc2VsZi5fcHJldmlvdXNseV9mYWlsZWRfY291bnQgPT0gMSBlbHNlICdmYWls
dXJlcycKLSAgICAgICAgICAgICAgICBzdWZmaXggPSAiIGZpcnN0IiBpZiBzZWxmLmNvbmZpZy5n
ZXR2YWx1ZSgiZmFpbGVkZmlyc3QiKSBlbHNlICIiCi0gICAgICAgICAgICAgICAgbW9kZSA9ICJy
ZXJ1biBwcmV2aW91cyB7Y291bnR9IHtub3VufXtzdWZmaXh9Ii5mb3JtYXQoCi0gICAgICAgICAg
ICAgICAgICAgIGNvdW50PXNlbGYuX3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50LCBzdWZmaXg9c3Vm
Zml4LCBub3VuPW5vdW4KLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICByZXR1cm4gInJ1
bi1sYXN0LWZhaWx1cmU6ICVzIiAlIG1vZGUKLQotICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dy
ZXBvcnQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgaWYgKHJlcG9ydC53aGVuID09ICdjYWxsJyBh
bmQgcmVwb3J0LnBhc3NlZCkgb3IgcmVwb3J0LnNraXBwZWQ6Ci0gICAgICAgICAgICBzZWxmLmxh
c3RmYWlsZWQucG9wKHJlcG9ydC5ub2RlaWQsIE5vbmUpCi0gICAgICAgIGVsaWYgcmVwb3J0LmZh
aWxlZDoKLSAgICAgICAgICAgIHNlbGYubGFzdGZhaWxlZFtyZXBvcnQubm9kZWlkXSA9IFRydWUK
LQotICAgIGRlZiBweXRlc3RfY29sbGVjdHJlcG9ydChzZWxmLCByZXBvcnQpOgotICAgICAgICBw
YXNzZWQgPSByZXBvcnQub3V0Y29tZSBpbiAoJ3Bhc3NlZCcsICdza2lwcGVkJykKLSAgICAgICAg
aWYgcGFzc2VkOgotICAgICAgICAgICAgaWYgcmVwb3J0Lm5vZGVpZCBpbiBzZWxmLmxhc3RmYWls
ZWQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5sYXN0ZmFpbGVkLnBvcChyZXBvcnQubm9kZWlkKQot
ICAgICAgICAgICAgICAgIHNlbGYubGFzdGZhaWxlZC51cGRhdGUoCi0gICAgICAgICAgICAgICAg
ICAgIChpdGVtLm5vZGVpZCwgVHJ1ZSkKLSAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4g
cmVwb3J0LnJlc3VsdCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYubGFzdGZhaWxl
ZFtyZXBvcnQubm9kZWlkXSA9IFRydWUKLQotICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2Rp
ZnlpdGVtcyhzZWxmLCBzZXNzaW9uLCBjb25maWcsIGl0ZW1zKToKLSAgICAgICAgaWYgc2VsZi5h
Y3RpdmUgYW5kIHNlbGYubGFzdGZhaWxlZDoKLSAgICAgICAgICAgIHByZXZpb3VzbHlfZmFpbGVk
ID0gW10KLSAgICAgICAgICAgIHByZXZpb3VzbHlfcGFzc2VkID0gW10KLSAgICAgICAgICAgIGZv
ciBpdGVtIGluIGl0ZW1zOgotICAgICAgICAgICAgICAgIGlmIGl0ZW0ubm9kZWlkIGluIHNlbGYu
bGFzdGZhaWxlZDoKLSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNseV9mYWlsZWQuYXBwZW5k
KGl0ZW0pCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcHJldmlv
dXNseV9wYXNzZWQuYXBwZW5kKGl0ZW0pCi0gICAgICAgICAgICBzZWxmLl9wcmV2aW91c2x5X2Zh
aWxlZF9jb3VudCA9IGxlbihwcmV2aW91c2x5X2ZhaWxlZCkKLSAgICAgICAgICAgIGlmIG5vdCBw
cmV2aW91c2x5X2ZhaWxlZDoKLSAgICAgICAgICAgICAgICAjIHJ1bm5pbmcgYSBzdWJzZXQgb2Yg
YWxsIHRlc3RzIHdpdGggcmVjb3JkZWQgZmFpbHVyZXMgb3V0c2lkZQotICAgICAgICAgICAgICAg
ICMgb2YgdGhlIHNldCBvZiB0ZXN0cyBjdXJyZW50bHkgZXhlY3V0aW5nCi0gICAgICAgICAgICAg
ICAgcmV0dXJuCi0gICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXR2YWx1ZSgibGYiKToKLSAg
ICAgICAgICAgICAgICBpdGVtc1s6XSA9IHByZXZpb3VzbHlfZmFpbGVkCi0gICAgICAgICAgICAg
ICAgY29uZmlnLmhvb2sucHl0ZXN0X2Rlc2VsZWN0ZWQoaXRlbXM9cHJldmlvdXNseV9wYXNzZWQp
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGl0ZW1zWzpdID0gcHJldmlvdXNs
eV9mYWlsZWQgKyBwcmV2aW91c2x5X3Bhc3NlZAotCi0gICAgZGVmIHB5dGVzdF9zZXNzaW9uZmlu
aXNoKHNlbGYsIHNlc3Npb24pOgotICAgICAgICBjb25maWcgPSBzZWxmLmNvbmZpZwotICAgICAg
ICBpZiBjb25maWcuZ2V0dmFsdWUoImNhY2hlc2hvdyIpIG9yIGhhc2F0dHIoY29uZmlnLCAic2xh
dmVpbnB1dCIpOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgc2F2ZWRfbGFzdGZhaWxl
ZCA9IGNvbmZpZy5jYWNoZS5nZXQoImNhY2hlL2xhc3RmYWlsZWQiLCB7fSkKLSAgICAgICAgaWYg
c2F2ZWRfbGFzdGZhaWxlZCAhPSBzZWxmLmxhc3RmYWlsZWQ6Ci0gICAgICAgICAgICBjb25maWcu
Y2FjaGUuc2V0KCJjYWNoZS9sYXN0ZmFpbGVkIiwgc2VsZi5sYXN0ZmFpbGVkKQotCi0KLWRlZiBw
eXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdl
bmVyYWwiKQotICAgIGdyb3VwLmFkZG9wdGlvbigKLSAgICAgICAgJy0tbGYnLCAnLS1sYXN0LWZh
aWxlZCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlc3Q9ImxmIiwKLSAgICAgICAgaGVscD0icmVy
dW4gb25seSB0aGUgdGVzdHMgdGhhdCBmYWlsZWQgIgotICAgICAgICAgICAgICJhdCB0aGUgbGFz
dCBydW4gKG9yIGFsbCBpZiBub25lIGZhaWxlZCkiKQotICAgIGdyb3VwLmFkZG9wdGlvbigKLSAg
ICAgICAgJy0tZmYnLCAnLS1mYWlsZWQtZmlyc3QnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZXN0
PSJmYWlsZWRmaXJzdCIsCi0gICAgICAgIGhlbHA9InJ1biBhbGwgdGVzdHMgYnV0IHJ1biB0aGUg
bGFzdCBmYWlsdXJlcyBmaXJzdC4gICIKLSAgICAgICAgICAgICAiVGhpcyBtYXkgcmUtb3JkZXIg
dGVzdHMgYW5kIHRodXMgbGVhZCB0byAiCi0gICAgICAgICAgICAgInJlcGVhdGVkIGZpeHR1cmUg
c2V0dXAvdGVhcmRvd24iKQotICAgIGdyb3VwLmFkZG9wdGlvbigKLSAgICAgICAgJy0tY2FjaGUt
c2hvdycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlc3Q9ImNhY2hlc2hvdyIsCi0gICAgICAgIGhl
bHA9InNob3cgY2FjaGUgY29udGVudHMsIGRvbid0IHBlcmZvcm0gY29sbGVjdGlvbiBvciB0ZXN0
cyIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKAotICAgICAgICAnLS1jYWNoZS1jbGVhcicsIGFjdGlv
bj0nc3RvcmVfdHJ1ZScsIGRlc3Q9ImNhY2hlY2xlYXIiLAotICAgICAgICBoZWxwPSJyZW1vdmUg
YWxsIGNhY2hlIGNvbnRlbnRzIGF0IHN0YXJ0IG9mIHRlc3QgcnVuLiIpCi0gICAgcGFyc2VyLmFk
ZGluaSgKLSAgICAgICAgImNhY2hlX2RpciIsIGRlZmF1bHQ9Jy5jYWNoZScsCi0gICAgICAgIGhl
bHA9ImNhY2hlIGRpcmVjdG9yeSBwYXRoLiIpCi0KLQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4o
Y29uZmlnKToKLSAgICBpZiBjb25maWcub3B0aW9uLmNhY2hlc2hvdzoKLSAgICAgICAgZnJvbSBf
cHl0ZXN0Lm1haW4gaW1wb3J0IHdyYXBfc2Vzc2lvbgotICAgICAgICByZXR1cm4gd3JhcF9zZXNz
aW9uKGNvbmZpZywgY2FjaGVzaG93KQotCi0KLUBweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1
ZSkKLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgY29uZmlnLmNhY2hlID0gQ2Fj
aGUoY29uZmlnKQotICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKExGUGx1Z2luKGNv
bmZpZyksICJsZnBsdWdpbiIpCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgY2FjaGUocmVxdWVz
dCk6Ci0gICAgIiIiCi0gICAgUmV0dXJuIGEgY2FjaGUgb2JqZWN0IHRoYXQgY2FuIHBlcnNpc3Qg
c3RhdGUgYmV0d2VlbiB0ZXN0aW5nIHNlc3Npb25zLgotCi0gICAgY2FjaGUuZ2V0KGtleSwgZGVm
YXVsdCkKLSAgICBjYWNoZS5zZXQoa2V5LCB2YWx1ZSkKLQotICAgIEtleXMgbXVzdCBiZSBhIGBg
L2BgIHNlcGFyYXRlZCB2YWx1ZSwgd2hlcmUgdGhlIGZpcnN0IHBhcnQgaXMgdXN1YWxseSB0aGUK
LSAgICBuYW1lIG9mIHlvdXIgcGx1Z2luIG9yIGFwcGxpY2F0aW9uIHRvIGF2b2lkIGNsYXNoZXMg
d2l0aCBvdGhlciBjYWNoZSB1c2Vycy4KLQotICAgIFZhbHVlcyBjYW4gYmUgYW55IG9iamVjdCBo
YW5kbGVkIGJ5IHRoZSBqc29uIHN0ZGxpYiBtb2R1bGUuCi0gICAgIiIiCi0gICAgcmV0dXJuIHJl
cXVlc3QuY29uZmlnLmNhY2hlCi0KLQotZGVmIHB5dGVzdF9yZXBvcnRfaGVhZGVyKGNvbmZpZyk6
Ci0gICAgaWYgY29uZmlnLm9wdGlvbi52ZXJib3NlOgotICAgICAgICByZWxwYXRoID0gcHkucGF0
aC5sb2NhbCgpLmJlc3RyZWxwYXRoKGNvbmZpZy5jYWNoZS5fY2FjaGVkaXIpCi0gICAgICAgIHJl
dHVybiAiY2FjaGVkaXI6ICVzIiAlIHJlbHBhdGgKLQotCi1kZWYgY2FjaGVzaG93KGNvbmZpZywg
c2Vzc2lvbik6Ci0gICAgZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAotICAgIHR3ID0gcHkuaW8u
VGVybWluYWxXcml0ZXIoKQotICAgIHR3LmxpbmUoImNhY2hlZGlyOiAiICsgc3RyKGNvbmZpZy5j
YWNoZS5fY2FjaGVkaXIpKQotICAgIGlmIG5vdCBjb25maWcuY2FjaGUuX2NhY2hlZGlyLmNoZWNr
KCk6Ci0gICAgICAgIHR3LmxpbmUoImNhY2hlIGlzIGVtcHR5IikKLSAgICAgICAgcmV0dXJuIDAK
LSAgICBkdW1teSA9IG9iamVjdCgpCi0gICAgYmFzZWRpciA9IGNvbmZpZy5jYWNoZS5fY2FjaGVk
aXIKLSAgICB2ZGlyID0gYmFzZWRpci5qb2luKCJ2IikKLSAgICB0dy5zZXAoIi0iLCAiY2FjaGUg
dmFsdWVzIikKLSAgICBmb3IgdmFscGF0aCBpbiBzb3J0ZWQodmRpci52aXNpdChsYW1iZGEgeDog
eC5pc2ZpbGUoKSkpOgotICAgICAgICBrZXkgPSB2YWxwYXRoLnJlbHRvKHZkaXIpLnJlcGxhY2Uo
dmFscGF0aC5zZXAsICIvIikKLSAgICAgICAgdmFsID0gY29uZmlnLmNhY2hlLmdldChrZXksIGR1
bW15KQotICAgICAgICBpZiB2YWwgaXMgZHVtbXk6Ci0gICAgICAgICAgICB0dy5saW5lKCIlcyBj
b250YWlucyB1bnJlYWRhYmxlIGNvbnRlbnQsICIKLSAgICAgICAgICAgICAgICAgICAgIndpbGwg
YmUgaWdub3JlZCIgJSBrZXkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0dy5saW5lKCIl
cyBjb250YWluczoiICUga2V5KQotICAgICAgICAgICAgc3RyZWFtID0gcHkuaW8uVGV4dElPKCkK
LSAgICAgICAgICAgIHBwcmludCh2YWwsIHN0cmVhbT1zdHJlYW0pCi0gICAgICAgICAgICBmb3Ig
bGluZSBpbiBzdHJlYW0uZ2V0dmFsdWUoKS5zcGxpdGxpbmVzKCk6Ci0gICAgICAgICAgICAgICAg
dHcubGluZSgiICAiICsgbGluZSkKLQotICAgIGRkaXIgPSBiYXNlZGlyLmpvaW4oImQiKQotICAg
IGlmIGRkaXIuaXNkaXIoKSBhbmQgZGRpci5saXN0ZGlyKCk6Ci0gICAgICAgIHR3LnNlcCgiLSIs
ICJjYWNoZSBkaXJlY3RvcmllcyIpCi0gICAgICAgIGZvciBwIGluIHNvcnRlZChiYXNlZGlyLmpv
aW4oImQiKS52aXNpdCgpKToKLSAgICAgICAgICAgICMgaWYgcC5jaGVjayhkaXI9MSk6Ci0gICAg
ICAgICAgICAjICAgIHByaW50KCIlcy8iICUgcC5yZWx0byhiYXNlZGlyKSkKLSAgICAgICAgICAg
IGlmIHAuaXNmaWxlKCk6Ci0gICAgICAgICAgICAgICAga2V5ID0gcC5yZWx0byhiYXNlZGlyKQot
ICAgICAgICAgICAgICAgIHR3LmxpbmUoIiVzIGlzIGEgZmlsZSBvZiBsZW5ndGggJWQiICUgKAot
ICAgICAgICAgICAgICAgICAgICAgICAga2V5LCBwLnNpemUoKSkpCi0gICAgcmV0dXJuIDAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FwdHVyZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvY2FwdHVyZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJlYmUzOGM4
YzA5MDI4NmI3N2M3MzliMzJiNjIwMzAyOTRjNzUyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NhcHR1cmUucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw2ODMgKzAsMCBAQAotIiIiCi1wZXItdGVzdCBzdGRvdXQvc3RkZXJy
IGNhcHR1cmluZyBtZWNoYW5pc20uCi0KLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgY29sbGVjdGlv
bnMKLWltcG9ydCBjb250ZXh0bGliCi1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKLWltcG9ydCBpbwot
ZnJvbSBpbyBpbXBvcnQgVW5zdXBwb3J0ZWRPcGVyYXRpb24KLWZyb20gdGVtcGZpbGUgaW1wb3J0
IFRlbXBvcmFyeUZpbGUKLQotaW1wb3J0IHNpeAotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0
LmNvbXBhdCBpbXBvcnQgQ2FwdHVyZUlPCi0KLQotcGF0Y2hzeXNkaWN0ID0gezA6ICdzdGRpbics
IDE6ICdzdGRvdXQnLCAyOiAnc3RkZXJyJ30KLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJz
ZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJnZW5lcmFsIikKLSAgICBncm91cC5f
YWRkb3B0aW9uKAotICAgICAgICAnLS1jYXB0dXJlJywgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAg
IGRlZmF1bHQ9ImZkIiBpZiBoYXNhdHRyKG9zLCAiZHVwIikgZWxzZSAic3lzIiwKLSAgICAgICAg
bWV0YXZhcj0ibWV0aG9kIiwgY2hvaWNlcz1bJ2ZkJywgJ3N5cycsICdubyddLAotICAgICAgICBo
ZWxwPSJwZXItdGVzdCBjYXB0dXJpbmcgbWV0aG9kOiBvbmUgb2YgZmR8c3lzfG5vLiIpCi0gICAg
Z3JvdXAuX2FkZG9wdGlvbigKLSAgICAgICAgJy1zJywgYWN0aW9uPSJzdG9yZV9jb25zdCIsIGNv
bnN0PSJubyIsIGRlc3Q9ImNhcHR1cmUiLAotICAgICAgICBoZWxwPSJzaG9ydGN1dCBmb3IgLS1j
YXB0dXJlPW5vLiIpCi0KLQotQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVm
IHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzKGVhcmx5X2NvbmZpZywgcGFyc2VyLCBhcmdz
KToKLSAgICBucyA9IGVhcmx5X2NvbmZpZy5rbm93bl9hcmdzX25hbWVzcGFjZQotICAgIGlmIG5z
LmNhcHR1cmUgPT0gImZkIjoKLSAgICAgICAgX3B5MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJv
dW5kKHN5cy5zdGRvdXQpCi0gICAgX2NvbG9yYW1hX3dvcmthcm91bmQoKQotICAgIF9yZWFkbGlu
ZV93b3JrYXJvdW5kKCkKLSAgICBwbHVnaW5tYW5hZ2VyID0gZWFybHlfY29uZmlnLnBsdWdpbm1h
bmFnZXIKLSAgICBjYXBtYW4gPSBDYXB0dXJlTWFuYWdlcihucy5jYXB0dXJlKQotICAgIHBsdWdp
bm1hbmFnZXIucmVnaXN0ZXIoY2FwbWFuLCAiY2FwdHVyZW1hbmFnZXIiKQotCi0gICAgIyBtYWtl
IHN1cmUgdGhhdCBjYXB0dXJlbWFuYWdlciBpcyBwcm9wZXJseSByZXNldCBhdCBmaW5hbCBzaHV0
ZG93bgotICAgIGVhcmx5X2NvbmZpZy5hZGRfY2xlYW51cChjYXBtYW4uc3RvcF9nbG9iYWxfY2Fw
dHVyaW5nKQotCi0gICAgIyBtYWtlIHN1cmUgbG9nZ2luZyBkb2VzIG5vdCByYWlzZSBleGNlcHRp
b25zIGF0IHRoZSBlbmQKLSAgICBkZWYgc2lsZW5jZV9sb2dnaW5nX2F0X3NodXRkb3duKCk6Ci0g
ICAgICAgIGlmICJsb2dnaW5nIiBpbiBzeXMubW9kdWxlczoKLSAgICAgICAgICAgIHN5cy5tb2R1
bGVzWyJsb2dnaW5nIl0ucmFpc2VFeGNlcHRpb25zID0gRmFsc2UKLSAgICBlYXJseV9jb25maWcu
YWRkX2NsZWFudXAoc2lsZW5jZV9sb2dnaW5nX2F0X3NodXRkb3duKQotCi0gICAgIyBmaW5hbGx5
IHRyaWdnZXIgY29uZnRlc3QgbG9hZGluZyBidXQgd2hpbGUgY2FwdHVyaW5nIChpc3N1ZTkzKQot
ICAgIGNhcG1hbi5zdGFydF9nbG9iYWxfY2FwdHVyaW5nKCkKLSAgICBvdXRjb21lID0geWllbGQK
LSAgICBvdXQsIGVyciA9IGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKLSAgICBpZiBv
dXRjb21lLmV4Y2luZm8gaXMgbm90IE5vbmU6Ci0gICAgICAgIHN5cy5zdGRvdXQud3JpdGUob3V0
KQotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKGVycikKLQotCi1jbGFzcyBDYXB0dXJlTWFuYWdl
cjoKLSAgICAiIiIKLSAgICBDYXB0dXJlIHBsdWdpbiwgbWFuYWdlcyB0aGF0IHRoZSBhcHByb3By
aWF0ZSBjYXB0dXJlIG1ldGhvZCBpcyBlbmFibGVkL2Rpc2FibGVkIGR1cmluZyBjb2xsZWN0aW9u
IGFuZCBlYWNoCi0gICAgdGVzdCBwaGFzZSAoc2V0dXAsIGNhbGwsIHRlYXJkb3duKS4gQWZ0ZXIg
ZWFjaCBvZiB0aG9zZSBwb2ludHMsIHRoZSBjYXB0dXJlZCBvdXRwdXQgaXMgb2J0YWluZWQgYW5k
Ci0gICAgYXR0YWNoZWQgdG8gdGhlIGNvbGxlY3Rpb24vcnVudGVzdCByZXBvcnQuCi0KLSAgICBU
aGVyZSBhcmUgdHdvIGxldmVscyBvZiBjYXB0dXJlOgotICAgICogZ2xvYmFsOiB3aGljaCBpcyBl
bmFibGVkIGJ5IGRlZmF1bHQgYW5kIGNhbiBiZSBzdXBwcmVzc2VkIGJ5IHRoZSBgYC1zYGAgb3B0
aW9uLiBUaGlzIGlzIGFsd2F5cyBlbmFibGVkL2Rpc2FibGVkCi0gICAgICBkdXJpbmcgY29sbGVj
dGlvbiBhbmQgZWFjaCB0ZXN0IHBoYXNlLgotICAgICogZml4dHVyZTogd2hlbiBhIHRlc3QgZnVu
Y3Rpb24gb3Igb25lIG9mIGl0cyBmaXh0dXJlIGRlcGVuZCBvbiB0aGUgYGBjYXBzeXNgYCBvciBg
YGNhcGZkYGAgZml4dHVyZXMuIEluIHRoaXMKLSAgICAgIGNhc2Ugc3BlY2lhbCBoYW5kbGluZyBp
cyBuZWVkZWQgdG8gZW5zdXJlIHRoZSBmaXh0dXJlcyB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aGUg
Z2xvYmFsIGNhcHR1cmUuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWV0aG9k
KToKLSAgICAgICAgc2VsZi5fbWV0aG9kID0gbWV0aG9kCi0gICAgICAgIHNlbGYuX2dsb2JhbF9j
YXB0dXJpbmcgPSBOb25lCi0KLSAgICBkZWYgX2dldGNhcHR1cmUoc2VsZiwgbWV0aG9kKToKLSAg
ICAgICAgaWYgbWV0aG9kID09ICJmZCI6Ci0gICAgICAgICAgICByZXR1cm4gTXVsdGlDYXB0dXJl
KG91dD1UcnVlLCBlcnI9VHJ1ZSwgQ2FwdHVyZT1GRENhcHR1cmUpCi0gICAgICAgIGVsaWYgbWV0
aG9kID09ICJzeXMiOgotICAgICAgICAgICAgcmV0dXJuIE11bHRpQ2FwdHVyZShvdXQ9VHJ1ZSwg
ZXJyPVRydWUsIENhcHR1cmU9U3lzQ2FwdHVyZSkKLSAgICAgICAgZWxpZiBtZXRob2QgPT0gIm5v
IjoKLSAgICAgICAgICAgIHJldHVybiBNdWx0aUNhcHR1cmUob3V0PUZhbHNlLCBlcnI9RmFsc2Us
IGluXz1GYWxzZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
InVua25vd24gY2FwdHVyaW5nIG1ldGhvZDogJXIiICUgbWV0aG9kKQotCi0gICAgZGVmIHN0YXJ0
X2dsb2JhbF9jYXB0dXJpbmcoc2VsZik6Ci0gICAgICAgIGFzc2VydCBzZWxmLl9nbG9iYWxfY2Fw
dHVyaW5nIGlzIE5vbmUKLSAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZyA9IHNlbGYuX2dl
dGNhcHR1cmUoc2VsZi5fbWV0aG9kKQotICAgICAgICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nLnN0
YXJ0X2NhcHR1cmluZygpCi0KLSAgICBkZWYgc3RvcF9nbG9iYWxfY2FwdHVyaW5nKHNlbGYpOgot
ICAgICAgICBpZiBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5wb3Bfb3V0ZXJyX3RvX29yaWcoKQotICAgICAgICAg
ICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5zdG9wX2NhcHR1cmluZygpCi0gICAgICAgICAgICBz
ZWxmLl9nbG9iYWxfY2FwdHVyaW5nID0gTm9uZQotCi0gICAgZGVmIHJlc3VtZV9nbG9iYWxfY2Fw
dHVyZShzZWxmKToKLSAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5yZXN1bWVfY2FwdHVy
aW5nKCkKLQotICAgIGRlZiBzdXNwZW5kX2dsb2JhbF9jYXB0dXJlKHNlbGYsIGl0ZW09Tm9uZSwg
aW5fPUZhbHNlKToKLSAgICAgICAgaWYgaXRlbSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNl
bGYuZGVhY3RpdmF0ZV9maXh0dXJlKGl0ZW0pCi0gICAgICAgIGNhcCA9IGdldGF0dHIoc2VsZiwg
Il9nbG9iYWxfY2FwdHVyaW5nIiwgTm9uZSkKLSAgICAgICAgaWYgY2FwIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG91dGVyciA9IGNhcC5yZWFkb3V0ZXJy
KCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2FwLnN1c3BlbmRfY2Fw
dHVyaW5nKGluXz1pbl8pCi0gICAgICAgICAgICByZXR1cm4gb3V0ZXJyCi0KLSAgICBkZWYgYWN0
aXZhdGVfZml4dHVyZShzZWxmLCBpdGVtKToKLSAgICAgICAgIiIiSWYgdGhlIGN1cnJlbnQgaXRl
bSBpcyB1c2luZyBgYGNhcHN5c2BgIG9yIGBgY2FwZmRgYCwgYWN0aXZhdGUgdGhlbSBzbyB0aGV5
IHRha2UgcHJlY2VkZW5jZSBvdmVyCi0gICAgICAgIHRoZSBnbG9iYWwgY2FwdHVyZS4KLSAgICAg
ICAgIiIiCi0gICAgICAgIGZpeHR1cmUgPSBnZXRhdHRyKGl0ZW0sICJfY2FwdHVyZV9maXh0dXJl
IiwgTm9uZSkKLSAgICAgICAgaWYgZml4dHVyZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZp
eHR1cmUuX3N0YXJ0KCkKLQotICAgIGRlZiBkZWFjdGl2YXRlX2ZpeHR1cmUoc2VsZiwgaXRlbSk6
Ci0gICAgICAgICIiIkRlYWN0aXZhdGVzIHRoZSBgYGNhcHN5c2BgIG9yIGBgY2FwZmRgYCBmaXh0
dXJlIG9mIHRoaXMgaXRlbSwgaWYgYW55LiIiIgotICAgICAgICBmaXh0dXJlID0gZ2V0YXR0cihp
dGVtLCAiX2NhcHR1cmVfZml4dHVyZSIsIE5vbmUpCi0gICAgICAgIGlmIGZpeHR1cmUgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBmaXh0dXJlLmNsb3NlKCkKLQotICAgIEBweXRlc3QuaG9va2lt
cGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQo
c2VsZiwgY29sbGVjdG9yKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShjb2xsZWN0b3IsIHB5dGVz
dC5GaWxlKToKLSAgICAgICAgICAgIHNlbGYucmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKLSAgICAg
ICAgICAgIG91dGNvbWUgPSB5aWVsZAotICAgICAgICAgICAgb3V0LCBlcnIgPSBzZWxmLnN1c3Bl
bmRfZ2xvYmFsX2NhcHR1cmUoKQotICAgICAgICAgICAgcmVwID0gb3V0Y29tZS5nZXRfcmVzdWx0
KCkKLSAgICAgICAgICAgIGlmIG91dDoKLSAgICAgICAgICAgICAgICByZXAuc2VjdGlvbnMuYXBw
ZW5kKCgiQ2FwdHVyZWQgc3Rkb3V0Iiwgb3V0KSkKLSAgICAgICAgICAgIGlmIGVycjoKLSAgICAg
ICAgICAgICAgICByZXAuc2VjdGlvbnMuYXBwZW5kKCgiQ2FwdHVyZWQgc3RkZXJyIiwgZXJyKSkK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHlpZWxkCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBs
KGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKHNlbGYsIGl0
ZW0pOgotICAgICAgICBzZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0gICAgICAgICMgbm8g
bmVlZCB0byBhY3RpdmF0ZSBhIGNhcHR1cmUgZml4dHVyZSBiZWNhdXNlIHRoZXkgYWN0aXZhdGUg
dGhlbXNlbHZlcyBkdXJpbmcgY3JlYXRpb247IHRoaXMKLSAgICAgICAgIyBvbmx5IG1ha2VzIHNl
bnNlIHdoZW4gYSBmaXh0dXJlIHVzZXMgYSBjYXB0dXJlIGZpeHR1cmUsIG90aGVyd2lzZSB0aGUg
Y2FwdHVyZSBmaXh0dXJlIHdpbGwKLSAgICAgICAgIyBiZSBhY3RpdmF0ZWQgZHVyaW5nIHB5dGVz
dF9ydW50ZXN0X2NhbGwKLSAgICAgICAgeWllbGQKLSAgICAgICAgc2VsZi5zdXNwZW5kX2NhcHR1
cmVfaXRlbShpdGVtLCAic2V0dXAiKQotCi0gICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBl
cj1UcnVlKQotICAgIGRlZiBweXRlc3RfcnVudGVzdF9jYWxsKHNlbGYsIGl0ZW0pOgotICAgICAg
ICBzZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0gICAgICAgICMgaXQgaXMgaW1wb3J0YW50
IHRvIGFjdGl2YXRlIHRoaXMgZml4dHVyZSBkdXJpbmcgdGhlIGNhbGwgcGhhc2Ugc28gaXQgb3Zl
cndyaXRlcyB0aGUgImdsb2JhbCIKLSAgICAgICAgIyBjYXB0dXJlCi0gICAgICAgIHNlbGYuYWN0
aXZhdGVfZml4dHVyZShpdGVtKQotICAgICAgICB5aWVsZAotICAgICAgICBzZWxmLnN1c3BlbmRf
Y2FwdHVyZV9pdGVtKGl0ZW0sICJjYWxsIikKLQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dy
YXBwZXI9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oc2VsZiwgaXRlbSk6
Ci0gICAgICAgIHNlbGYucmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKLSAgICAgICAgc2VsZi5hY3Rp
dmF0ZV9maXh0dXJlKGl0ZW0pCi0gICAgICAgIHlpZWxkCi0gICAgICAgIHNlbGYuc3VzcGVuZF9j
YXB0dXJlX2l0ZW0oaXRlbSwgInRlYXJkb3duIikKLQotICAgIEBweXRlc3QuaG9va2ltcGwodHJ5
Zmlyc3Q9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X2tleWJvYXJkX2ludGVycnVwdChzZWxmLCBleGNp
bmZvKToKLSAgICAgICAgc2VsZi5zdG9wX2dsb2JhbF9jYXB0dXJpbmcoKQotCi0gICAgQHB5dGVz
dC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQotICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihz
ZWxmLCBleGNpbmZvKToKLSAgICAgICAgc2VsZi5zdG9wX2dsb2JhbF9jYXB0dXJpbmcoKQotCi0g
ICAgZGVmIHN1c3BlbmRfY2FwdHVyZV9pdGVtKHNlbGYsIGl0ZW0sIHdoZW4sIGluXz1GYWxzZSk6
Ci0gICAgICAgIG91dCwgZXJyID0gc2VsZi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGl0ZW0sIGlu
Xz1pbl8pCi0gICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKHdoZW4sICJzdGRvdXQiLCBv
dXQpCi0gICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKHdoZW4sICJzdGRlcnIiLCBlcnIp
Ci0KLQotY2FwdHVyZV9maXh0dXJlcyA9IHsnY2FwZmQnLCAnY2FwZmRiaW5hcnknLCAnY2Fwc3lz
JywgJ2NhcHN5c2JpbmFyeSd9Ci0KLQotZGVmIF9lbnN1cmVfb25seV9vbmVfY2FwdHVyZV9maXh0
dXJlKHJlcXVlc3QsIG5hbWUpOgotICAgIGZpeHR1cmVzID0gc2V0KHJlcXVlc3QuZml4dHVyZW5h
bWVzKSAmIGNhcHR1cmVfZml4dHVyZXMgLSBzZXQoKG5hbWUsKSkKLSAgICBpZiBmaXh0dXJlczoK
LSAgICAgICAgZml4dHVyZXMgPSBzb3J0ZWQoZml4dHVyZXMpCi0gICAgICAgIGZpeHR1cmVzID0g
Zml4dHVyZXNbMF0gaWYgbGVuKGZpeHR1cmVzKSA9PSAxIGVsc2UgZml4dHVyZXMKLSAgICAgICAg
cmFpc2UgcmVxdWVzdC5yYWlzZWVycm9yKAotICAgICAgICAgICAgImNhbm5vdCB1c2UgezB9IGFu
ZCB7MX0gYXQgdGhlIHNhbWUgdGltZSIuZm9ybWF0KAotICAgICAgICAgICAgICAgIGZpeHR1cmVz
LCBuYW1lLAotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotCi0KLUBweXRlc3QuZml4dHVyZQot
ZGVmIGNhcHN5cyhyZXF1ZXN0KToKLSAgICAiIiJFbmFibGUgY2FwdHVyaW5nIG9mIHdyaXRlcyB0
byBzeXMuc3Rkb3V0L3N5cy5zdGRlcnIgYW5kIG1ha2UKLSAgICBjYXB0dXJlZCBvdXRwdXQgYXZh
aWxhYmxlIHZpYSBgYGNhcHN5cy5yZWFkb3V0ZXJyKClgYCBtZXRob2QgY2FsbHMKLSAgICB3aGlj
aCByZXR1cm4gYSBgYChvdXQsIGVycilgYCB0dXBsZS4gIGBgb3V0YGAgYW5kIGBgZXJyYGAgd2ls
bCBiZSBgYHRleHRgYAotICAgIG9iamVjdHMuCi0gICAgIiIiCi0gICAgX2Vuc3VyZV9vbmx5X29u
ZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwgJ2NhcHN5cycpCi0gICAgd2l0aCBfaW5zdGFsbF9j
YXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBTeXNDYXB0dXJlKSBhcyBmaXh0dXJlOgot
ICAgICAgICB5aWVsZCBmaXh0dXJlCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgY2Fwc3lzYmlu
YXJ5KHJlcXVlc3QpOgotICAgICIiIkVuYWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIHN5cy5z
dGRvdXQvc3lzLnN0ZGVyciBhbmQgbWFrZQotICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUg
dmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBgIG1ldGhvZCBjYWxscwotICAgIHdoaWNoIHJldHVy
biBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBg
Ynl0ZXNgYAotICAgIG9iamVjdHMuCi0gICAgIiIiCi0gICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0
dXJlX2ZpeHR1cmUocmVxdWVzdCwgJ2NhcHN5c2JpbmFyeScpCi0gICAgIyBDdXJyZW50bHksIHRo
ZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHRoZSBweXRob24zIHNwZWNpZmljIGAuYnVmZmVyYAotICAg
ICMgcHJvcGVydHkgb2YgQ2FwdHVyZUlPLgotICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywp
OgotICAgICAgICByYWlzZSByZXF1ZXN0LnJhaXNlZXJyb3IoJ2NhcHN5c2JpbmFyeSBpcyBvbmx5
IHN1cHBvcnRlZCBvbiBweXRob24gMycpCi0gICAgd2l0aCBfaW5zdGFsbF9jYXB0dXJlX2ZpeHR1
cmVfb25faXRlbShyZXF1ZXN0LCBTeXNDYXB0dXJlQmluYXJ5KSBhcyBmaXh0dXJlOgotICAgICAg
ICB5aWVsZCBmaXh0dXJlCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgY2FwZmQocmVxdWVzdCk6
Ci0gICAgIiIiRW5hYmxlIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gZmlsZSBkZXNjcmlwdG9ycyAx
IGFuZCAyIGFuZCBtYWtlCi0gICAgY2FwdHVyZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBm
ZC5yZWFkb3V0ZXJyKClgYCBtZXRob2QgY2FsbHMKLSAgICB3aGljaCByZXR1cm4gYSBgYChvdXQs
IGVycilgYCB0dXBsZS4gIGBgb3V0YGAgYW5kIGBgZXJyYGAgd2lsbCBiZSBgYHRleHRgYAotICAg
IG9iamVjdHMuCi0gICAgIiIiCi0gICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUo
cmVxdWVzdCwgJ2NhcGZkJykKLSAgICBpZiBub3QgaGFzYXR0cihvcywgJ2R1cCcpOgotICAgICAg
ICBweXRlc3Quc2tpcCgiY2FwZmQgZml4dHVyZSBuZWVkcyBvcy5kdXAgZnVuY3Rpb24gd2hpY2gg
aXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIHN5c3RlbSIpCi0gICAgd2l0aCBfaW5zdGFsbF9jYXB0
dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBGRENhcHR1cmUpIGFzIGZpeHR1cmU6Ci0gICAg
ICAgIHlpZWxkIGZpeHR1cmUKLQotCi1AcHl0ZXN0LmZpeHR1cmUKLWRlZiBjYXBmZGJpbmFyeShy
ZXF1ZXN0KToKLSAgICAiIiJFbmFibGUgY2FwdHVyaW5nIG9mIHdyaXRlIHRvIGZpbGUgZGVzY3Jp
cHRvcnMgMSBhbmQgMiBhbmQgbWFrZQotICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlh
IGBgY2FwZmRiaW5hcnkucmVhZG91dGVycmBgIG1ldGhvZCBjYWxscwotICAgIHdoaWNoIHJldHVy
biBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlCi0g
ICAgYGBieXRlc2BgIG9iamVjdHMuCi0gICAgIiIiCi0gICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0
dXJlX2ZpeHR1cmUocmVxdWVzdCwgJ2NhcGZkYmluYXJ5JykKLSAgICBpZiBub3QgaGFzYXR0cihv
cywgJ2R1cCcpOgotICAgICAgICBweXRlc3Quc2tpcCgiY2FwZmRiaW5hcnkgZml4dHVyZSBuZWVk
cyBvcy5kdXAgZnVuY3Rpb24gd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIHN5c3RlbSIp
Ci0gICAgd2l0aCBfaW5zdGFsbF9jYXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBGRENh
cHR1cmVCaW5hcnkpIGFzIGZpeHR1cmU6Ci0gICAgICAgIHlpZWxkIGZpeHR1cmUKLQotCi1AY29u
dGV4dGxpYi5jb250ZXh0bWFuYWdlcgotZGVmIF9pbnN0YWxsX2NhcHR1cmVfZml4dHVyZV9vbl9p
dGVtKHJlcXVlc3QsIGNhcHR1cmVfY2xhc3MpOgotICAgICIiIgotICAgIENvbnRleHQgbWFuYWdl
ciB3aGljaCBjcmVhdGVzIGEgYGBDYXB0dXJlRml4dHVyZWBgIGluc3RhbmNlIGFuZCAiaW5zdGFs
bHMiIGl0IG9uCi0gICAgdGhlIGl0ZW0vbm9kZSBvZiB0aGUgZ2l2ZW4gcmVxdWVzdC4gVXNlZCBi
eSBgYGNhcHN5c2BgIGFuZCBgYGNhcGZkYGAuCi0KLSAgICBUaGUgQ2FwdHVyZUZpeHR1cmUgaXMg
YWRkZWQgYXMgYXR0cmlidXRlIG9mIHRoZSBpdGVtIGJlY2F1c2UgaXQgbmVlZHMgdG8gYWNjZXNz
ZWQKLSAgICBieSBgYENhcHR1cmVNYW5hZ2VyYGAgZHVyaW5nIGl0cyBgYHB5dGVzdF9ydW50ZXN0
XypgYCBob29rcy4KLSAgICAiIiIKLSAgICByZXF1ZXN0Lm5vZGUuX2NhcHR1cmVfZml4dHVyZSA9
IGZpeHR1cmUgPSBDYXB0dXJlRml4dHVyZShjYXB0dXJlX2NsYXNzLCByZXF1ZXN0KQotICAgIGNh
cG1hbmFnZXIgPSByZXF1ZXN0LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbignY2FwdHVy
ZW1hbmFnZXInKQotICAgICMgbmVlZCB0byBhY3RpdmUgdGhpcyBmaXh0dXJlIHJpZ2h0IGF3YXkg
aW4gY2FzZSBpdCBpcyBiZWluZyB1c2VkIGJ5IGFub3RoZXIgZml4dHVyZSAoc2V0dXAgcGhhc2Up
Ci0gICAgIyBpZiB0aGlzIGZpeHR1cmUgaXMgYmVpbmcgdXNlZCBvbmx5IGJ5IGEgdGVzdCBmdW5j
dGlvbiAoY2FsbCBwaGFzZSksIHRoZW4gd2Ugd291bGRuJ3QgbmVlZCB0aGlzCi0gICAgIyBhY3Rp
dmF0aW9uLCBidXQgaXQgZG9lc24ndCBodXJ0Ci0gICAgY2FwbWFuYWdlci5hY3RpdmF0ZV9maXh0
dXJlKHJlcXVlc3Qubm9kZSkKLSAgICB5aWVsZCBmaXh0dXJlCi0gICAgZml4dHVyZS5jbG9zZSgp
Ci0gICAgZGVsIHJlcXVlc3Qubm9kZS5fY2FwdHVyZV9maXh0dXJlCi0KLQotY2xhc3MgQ2FwdHVy
ZUZpeHR1cmU6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNhcHR1cmVjbGFzcywgcmVxdWVzdCk6
Ci0gICAgICAgIHNlbGYuY2FwdHVyZWNsYXNzID0gY2FwdHVyZWNsYXNzCi0gICAgICAgIHNlbGYu
cmVxdWVzdCA9IHJlcXVlc3QKLQotICAgIGRlZiBfc3RhcnQoc2VsZik6Ci0gICAgICAgIHNlbGYu
X2NhcHR1cmUgPSBNdWx0aUNhcHR1cmUob3V0PVRydWUsIGVycj1UcnVlLCBpbl89RmFsc2UsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwdHVyZT1zZWxmLmNhcHR1cmVj
bGFzcykKLSAgICAgICAgc2VsZi5fY2FwdHVyZS5zdGFydF9jYXB0dXJpbmcoKQotCi0gICAgZGVm
IGNsb3NlKHNlbGYpOgotICAgICAgICBjYXAgPSBzZWxmLl9fZGljdF9fLnBvcCgiX2NhcHR1cmUi
LCBOb25lKQotICAgICAgICBpZiBjYXAgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9v
dXRlcnIgPSBjYXAucG9wX291dGVycl90b19vcmlnKCkKLSAgICAgICAgICAgIGNhcC5zdG9wX2Nh
cHR1cmluZygpCi0KLSAgICBkZWYgcmVhZG91dGVycihzZWxmKToKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX2NhcHR1cmUucmVhZG91dGVycigpCi0gICAgICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9vdXRlcnIKLQotICAg
IEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCi0gICAgZGVmIGRpc2FibGVkKHNlbGYpOgotICAg
ICAgICBzZWxmLl9jYXB0dXJlLnN1c3BlbmRfY2FwdHVyaW5nKCkKLSAgICAgICAgY2FwbWFuYWdl
ciA9IHNlbGYucmVxdWVzdC5jb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oJ2NhcHR1cmVt
YW5hZ2VyJykKLSAgICAgICAgY2FwbWFuYWdlci5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGl0ZW09
Tm9uZSwgaW5fPUZhbHNlKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB5aWVsZAotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgY2FwbWFuYWdlci5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUo
KQotICAgICAgICAgICAgc2VsZi5fY2FwdHVyZS5yZXN1bWVfY2FwdHVyaW5nKCkKLQotCi1kZWYg
c2FmZV90ZXh0X2R1cGZpbGUoZiwgbW9kZSwgZGVmYXVsdF9lbmNvZGluZz0iVVRGOCIpOgotICAg
ICIiIiByZXR1cm4gYSBvcGVuIHRleHQgZmlsZSBvYmplY3QgdGhhdCdzIGEgZHVwbGljYXRlIG9m
IGYgb24gdGhlCi0gICAgICAgIEZELWxldmVsIGlmIHBvc3NpYmxlLgotICAgICIiIgotICAgIGVu
Y29kaW5nID0gZ2V0YXR0cihmLCAiZW5jb2RpbmciLCBOb25lKQotICAgIHRyeToKLSAgICAgICAg
ZmQgPSBmLmZpbGVubygpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgaWYgImIiIG5v
dCBpbiBnZXRhdHRyKGYsICJtb2RlIiwgIiIpIGFuZCBoYXNhdHRyKGYsICJlbmNvZGluZyIpOgot
ICAgICAgICAgICAgIyB3ZSBzZWVtIHRvIGhhdmUgYSB0ZXh0IHN0cmVhbSwgbGV0J3MganVzdCB1
c2UgaXQKLSAgICAgICAgICAgIHJldHVybiBmCi0gICAgZWxzZToKLSAgICAgICAgbmV3ZmQgPSBv
cy5kdXAoZmQpCi0gICAgICAgIGlmICJiIiBub3QgaW4gbW9kZToKLSAgICAgICAgICAgIG1vZGUg
Kz0gImIiCi0gICAgICAgIGYgPSBvcy5mZG9wZW4obmV3ZmQsIG1vZGUsIDApICAjIG5vIGJ1ZmZl
cmluZwotICAgIHJldHVybiBFbmNvZGVkRmlsZShmLCBlbmNvZGluZyBvciBkZWZhdWx0X2VuY29k
aW5nKQotCi0KLWNsYXNzIEVuY29kZWRGaWxlKG9iamVjdCk6Ci0gICAgZXJyb3JzID0gInN0cmlj
dCIgICMgcG9zc2libHkgbmVlZGVkIGJ5IHB5MyBjb2RlIChpc3N1ZTU1NSkKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBidWZmZXIsIGVuY29kaW5nKToKLSAgICAgICAgc2VsZi5idWZmZXIgPSBi
dWZmZXIKLSAgICAgICAgc2VsZi5lbmNvZGluZyA9IGVuY29kaW5nCi0KLSAgICBkZWYgd3JpdGUo
c2VsZiwgb2JqKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIHNpeC50ZXh0X3R5cGUpOgot
ICAgICAgICAgICAgb2JqID0gb2JqLmVuY29kZShzZWxmLmVuY29kaW5nLCAicmVwbGFjZSIpCi0g
ICAgICAgIHNlbGYuYnVmZmVyLndyaXRlKG9iaikKLQotICAgIGRlZiB3cml0ZWxpbmVzKHNlbGYs
IGxpbmVsaXN0KToKLSAgICAgICAgZGF0YSA9ICcnLmpvaW4obGluZWxpc3QpCi0gICAgICAgIHNl
bGYud3JpdGUoZGF0YSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAg
ICAgICAiIiJFbnN1cmUgdGhhdCBmaWxlLm5hbWUgaXMgYSBzdHJpbmcuIiIiCi0gICAgICAgIHJl
dHVybiByZXByKHNlbGYuYnVmZmVyKQotCi0gICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUp
OgotICAgICAgICByZXR1cm4gZ2V0YXR0cihvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCAi
YnVmZmVyIiksIG5hbWUpCi0KLQotQ2FwdHVyZVJlc3VsdCA9IGNvbGxlY3Rpb25zLm5hbWVkdHVw
bGUoIkNhcHR1cmVSZXN1bHQiLCBbIm91dCIsICJlcnIiXSkKLQotCi1jbGFzcyBNdWx0aUNhcHR1
cmUob2JqZWN0KToKLSAgICBvdXQgPSBlcnIgPSBpbl8gPSBOb25lCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgb3V0PVRydWUsIGVycj1UcnVlLCBpbl89VHJ1ZSwgQ2FwdHVyZT1Ob25lKToKLSAg
ICAgICAgaWYgaW5fOgotICAgICAgICAgICAgc2VsZi5pbl8gPSBDYXB0dXJlKDApCi0gICAgICAg
IGlmIG91dDoKLSAgICAgICAgICAgIHNlbGYub3V0ID0gQ2FwdHVyZSgxKQotICAgICAgICBpZiBl
cnI6Ci0gICAgICAgICAgICBzZWxmLmVyciA9IENhcHR1cmUoMikKLQotICAgIGRlZiBzdGFydF9j
YXB0dXJpbmcoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuaW5fOgotICAgICAgICAgICAgc2VsZi5p
bl8uc3RhcnQoKQotICAgICAgICBpZiBzZWxmLm91dDoKLSAgICAgICAgICAgIHNlbGYub3V0LnN0
YXJ0KCkKLSAgICAgICAgaWYgc2VsZi5lcnI6Ci0gICAgICAgICAgICBzZWxmLmVyci5zdGFydCgp
Ci0KLSAgICBkZWYgcG9wX291dGVycl90b19vcmlnKHNlbGYpOgotICAgICAgICAiIiIgcG9wIGN1
cnJlbnQgc25hcHNob3Qgb3V0L2VyciBjYXB0dXJlIGFuZCBmbHVzaCB0byBvcmlnIHN0cmVhbXMu
ICIiIgotICAgICAgICBvdXQsIGVyciA9IHNlbGYucmVhZG91dGVycigpCi0gICAgICAgIGlmIG91
dDoKLSAgICAgICAgICAgIHNlbGYub3V0LndyaXRlb3JnKG91dCkKLSAgICAgICAgaWYgZXJyOgot
ICAgICAgICAgICAgc2VsZi5lcnIud3JpdGVvcmcoZXJyKQotICAgICAgICByZXR1cm4gb3V0LCBl
cnIKLQotICAgIGRlZiBzdXNwZW5kX2NhcHR1cmluZyhzZWxmLCBpbl89RmFsc2UpOgotICAgICAg
ICBpZiBzZWxmLm91dDoKLSAgICAgICAgICAgIHNlbGYub3V0LnN1c3BlbmQoKQotICAgICAgICBp
ZiBzZWxmLmVycjoKLSAgICAgICAgICAgIHNlbGYuZXJyLnN1c3BlbmQoKQotICAgICAgICBpZiBp
bl8gYW5kIHNlbGYuaW5fOgotICAgICAgICAgICAgc2VsZi5pbl8uc3VzcGVuZCgpCi0gICAgICAg
ICAgICBzZWxmLl9pbl9zdXNwZW5kZWQgPSBUcnVlCi0KLSAgICBkZWYgcmVzdW1lX2NhcHR1cmlu
ZyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5vdXQ6Ci0gICAgICAgICAgICBzZWxmLm91dC5yZXN1
bWUoKQotICAgICAgICBpZiBzZWxmLmVycjoKLSAgICAgICAgICAgIHNlbGYuZXJyLnJlc3VtZSgp
Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIl9pbl9zdXNwZW5kZWQiKToKLSAgICAgICAgICAg
IHNlbGYuaW5fLnJlc3VtZSgpCi0gICAgICAgICAgICBkZWwgc2VsZi5faW5fc3VzcGVuZGVkCi0K
LSAgICBkZWYgc3RvcF9jYXB0dXJpbmcoc2VsZik6Ci0gICAgICAgICIiIiBzdG9wIGNhcHR1cmlu
ZyBhbmQgcmVzZXQgY2FwdHVyaW5nIHN0cmVhbXMgIiIiCi0gICAgICAgIGlmIGhhc2F0dHIoc2Vs
ZiwgJ19yZXNldCcpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigid2FzIGFscmVhZHkg
c3RvcHBlZCIpCi0gICAgICAgIHNlbGYuX3Jlc2V0ID0gVHJ1ZQotICAgICAgICBpZiBzZWxmLm91
dDoKLSAgICAgICAgICAgIHNlbGYub3V0LmRvbmUoKQotICAgICAgICBpZiBzZWxmLmVycjoKLSAg
ICAgICAgICAgIHNlbGYuZXJyLmRvbmUoKQotICAgICAgICBpZiBzZWxmLmluXzoKLSAgICAgICAg
ICAgIHNlbGYuaW5fLmRvbmUoKQotCi0gICAgZGVmIHJlYWRvdXRlcnIoc2VsZik6Ci0gICAgICAg
ICIiIiByZXR1cm4gc25hcHNob3QgdW5pY29kZSB2YWx1ZSBvZiBzdGRvdXQvc3RkZXJyIGNhcHR1
cmluZ3MuICIiIgotICAgICAgICByZXR1cm4gQ2FwdHVyZVJlc3VsdChzZWxmLm91dC5zbmFwKCkg
aWYgc2VsZi5vdXQgaXMgbm90IE5vbmUgZWxzZSAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5lcnIuc25hcCgpIGlmIHNlbGYuZXJyIGlzIG5vdCBOb25lIGVsc2UgIiIpCi0K
LQotY2xhc3MgTm9DYXB0dXJlOgotICAgIF9faW5pdF9fID0gc3RhcnQgPSBkb25lID0gc3VzcGVu
ZCA9IHJlc3VtZSA9IGxhbWJkYSAqYXJnczogTm9uZQotCi0KLWNsYXNzIEZEQ2FwdHVyZUJpbmFy
eToKLSAgICAiIiJDYXB0dXJlIElPIHRvL2Zyb20gYSBnaXZlbiBvcy1sZXZlbCBmaWxlZGVzY3Jp
cHRvci4KLQotICAgIHNuYXAoKSBwcm9kdWNlcyBgYnl0ZXNgCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgdGFyZ2V0ZmQsIHRtcGZpbGU9Tm9uZSk6Ci0gICAgICAgIHNlbGYudGFy
Z2V0ZmQgPSB0YXJnZXRmZAotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLnRhcmdldGZk
X3NhdmUgPSBvcy5kdXAoc2VsZi50YXJnZXRmZCkKLSAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0g
ICAgICAgICAgICBzZWxmLnN0YXJ0ID0gbGFtYmRhOiBOb25lCi0gICAgICAgICAgICBzZWxmLmRv
bmUgPSBsYW1iZGE6IE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIHRhcmdldGZk
ID09IDA6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCB0bXBmaWxlLCAiY2Fubm90IHNldCB0
bXBmaWxlIHdpdGggc3RkaW4iCi0gICAgICAgICAgICAgICAgdG1wZmlsZSA9IG9wZW4ob3MuZGV2
bnVsbCwgInIiKQotICAgICAgICAgICAgICAgIHNlbGYuc3lzY2FwdHVyZSA9IFN5c0NhcHR1cmUo
dGFyZ2V0ZmQpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIHRtcGZpbGUg
aXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgZiA9IFRlbXBvcmFyeUZpbGUoKQotICAgICAg
ICAgICAgICAgICAgICB3aXRoIGY6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXBmaWxlID0g
c2FmZV90ZXh0X2R1cGZpbGUoZiwgbW9kZT0id2IrIikKLSAgICAgICAgICAgICAgICBpZiB0YXJn
ZXRmZCBpbiBwYXRjaHN5c2RpY3Q6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3lzY2FwdHVy
ZSA9IFN5c0NhcHR1cmUodGFyZ2V0ZmQsIHRtcGZpbGUpCi0gICAgICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5zeXNjYXB0dXJlID0gTm9DYXB0dXJlKCkKLSAgICAg
ICAgICAgIHNlbGYudG1wZmlsZSA9IHRtcGZpbGUKLSAgICAgICAgICAgIHNlbGYudG1wZmlsZV9m
ZCA9IHRtcGZpbGUuZmlsZW5vKCkKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAg
cmV0dXJuICI8RkRDYXB0dXJlICVzIG9sZGZkPSVzPiIgJSAoc2VsZi50YXJnZXRmZCwgc2VsZi50
YXJnZXRmZF9zYXZlKQotCi0gICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICAiIiIgU3RhcnQg
Y2FwdHVyaW5nIG9uIHRhcmdldGZkIHVzaW5nIG1lbW9yaXplZCB0bXBmaWxlLiAiIiIKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgb3MuZnN0YXQoc2VsZi50YXJnZXRmZF9zYXZlKQotICAgICAg
ICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBPU0Vycm9yKToKLSAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoInNhdmVkIGZpbGVkZXNjcmlwdG9yIG5vdCB2YWxpZCBhbnltb3JlIikKLSAgICAg
ICAgb3MuZHVwMihzZWxmLnRtcGZpbGVfZmQsIHNlbGYudGFyZ2V0ZmQpCi0gICAgICAgIHNlbGYu
c3lzY2FwdHVyZS5zdGFydCgpCi0KLSAgICBkZWYgc25hcChzZWxmKToKLSAgICAgICAgc2VsZi50
bXBmaWxlLnNlZWsoMCkKLSAgICAgICAgcmVzID0gc2VsZi50bXBmaWxlLnJlYWQoKQotICAgICAg
ICBzZWxmLnRtcGZpbGUuc2VlaygwKQotICAgICAgICBzZWxmLnRtcGZpbGUudHJ1bmNhdGUoKQot
ICAgICAgICByZXR1cm4gcmVzCi0KLSAgICBkZWYgZG9uZShzZWxmKToKLSAgICAgICAgIiIiIHN0
b3AgY2FwdHVyaW5nLCByZXN0b3JlIHN0cmVhbXMsIHJldHVybiBvcmlnaW5hbCBjYXB0dXJlIGZp
bGUsCi0gICAgICAgIHNlZWtlZCB0byBwb3NpdGlvbiB6ZXJvLiAiIiIKLSAgICAgICAgdGFyZ2V0
ZmRfc2F2ZSA9IHNlbGYuX19kaWN0X18ucG9wKCJ0YXJnZXRmZF9zYXZlIikKLSAgICAgICAgb3Mu
ZHVwMih0YXJnZXRmZF9zYXZlLCBzZWxmLnRhcmdldGZkKQotICAgICAgICBvcy5jbG9zZSh0YXJn
ZXRmZF9zYXZlKQotICAgICAgICBzZWxmLnN5c2NhcHR1cmUuZG9uZSgpCi0gICAgICAgIHNlbGYu
dG1wZmlsZS5jbG9zZSgpCi0KLSAgICBkZWYgc3VzcGVuZChzZWxmKToKLSAgICAgICAgc2VsZi5z
eXNjYXB0dXJlLnN1c3BlbmQoKQotICAgICAgICBvcy5kdXAyKHNlbGYudGFyZ2V0ZmRfc2F2ZSwg
c2VsZi50YXJnZXRmZCkKLQotICAgIGRlZiByZXN1bWUoc2VsZik6Ci0gICAgICAgIHNlbGYuc3lz
Y2FwdHVyZS5yZXN1bWUoKQotICAgICAgICBvcy5kdXAyKHNlbGYudG1wZmlsZV9mZCwgc2VsZi50
YXJnZXRmZCkKLQotICAgIGRlZiB3cml0ZW9yZyhzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiIHdy
aXRlIHRvIG9yaWdpbmFsIGZpbGUgZGVzY3JpcHRvci4gIiIiCi0gICAgICAgIGlmIGlzaW5zdGFu
Y2UoZGF0YSwgc2l4LnRleHRfdHlwZSk6Ci0gICAgICAgICAgICBkYXRhID0gZGF0YS5lbmNvZGUo
InV0ZjgiKSAgIyBYWFggdXNlIGVuY29kaW5nIG9mIG9yaWdpbmFsIHN0cmVhbQotICAgICAgICBv
cy53cml0ZShzZWxmLnRhcmdldGZkX3NhdmUsIGRhdGEpCi0KLQotY2xhc3MgRkRDYXB0dXJlKEZE
Q2FwdHVyZUJpbmFyeSk6Ci0gICAgIiIiQ2FwdHVyZSBJTyB0by9mcm9tIGEgZ2l2ZW4gb3MtbGV2
ZWwgZmlsZWRlc2NyaXB0b3IuCi0KLSAgICBzbmFwKCkgcHJvZHVjZXMgdGV4dAotICAgICIiIgot
ICAgIGRlZiBzbmFwKHNlbGYpOgotICAgICAgICByZXMgPSBGRENhcHR1cmVCaW5hcnkuc25hcChz
ZWxmKQotICAgICAgICBlbmMgPSBnZXRhdHRyKHNlbGYudG1wZmlsZSwgImVuY29kaW5nIiwgTm9u
ZSkKLSAgICAgICAgaWYgZW5jIGFuZCBpc2luc3RhbmNlKHJlcywgYnl0ZXMpOgotICAgICAgICAg
ICAgcmVzID0gc2l4LnRleHRfdHlwZShyZXMsIGVuYywgInJlcGxhY2UiKQotICAgICAgICByZXR1
cm4gcmVzCi0KLQotY2xhc3MgU3lzQ2FwdHVyZToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmQs
IHRtcGZpbGU9Tm9uZSk6Ci0gICAgICAgIG5hbWUgPSBwYXRjaHN5c2RpY3RbZmRdCi0gICAgICAg
IHNlbGYuX29sZCA9IGdldGF0dHIoc3lzLCBuYW1lKQotICAgICAgICBzZWxmLm5hbWUgPSBuYW1l
Ci0gICAgICAgIGlmIHRtcGZpbGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIG5hbWUgPT0gInN0
ZGluIjoKLSAgICAgICAgICAgICAgICB0bXBmaWxlID0gRG9udFJlYWRGcm9tSW5wdXQoKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB0bXBmaWxlID0gQ2FwdHVyZUlPKCkKLSAg
ICAgICAgc2VsZi50bXBmaWxlID0gdG1wZmlsZQotCi0gICAgZGVmIHN0YXJ0KHNlbGYpOgotICAg
ICAgICBzZXRhdHRyKHN5cywgc2VsZi5uYW1lLCBzZWxmLnRtcGZpbGUpCi0KLSAgICBkZWYgc25h
cChzZWxmKToKLSAgICAgICAgcmVzID0gc2VsZi50bXBmaWxlLmdldHZhbHVlKCkKLSAgICAgICAg
c2VsZi50bXBmaWxlLnNlZWsoMCkKLSAgICAgICAgc2VsZi50bXBmaWxlLnRydW5jYXRlKCkKLSAg
ICAgICAgcmV0dXJuIHJlcwotCi0gICAgZGVmIGRvbmUoc2VsZik6Ci0gICAgICAgIHNldGF0dHIo
c3lzLCBzZWxmLm5hbWUsIHNlbGYuX29sZCkKLSAgICAgICAgZGVsIHNlbGYuX29sZAotICAgICAg
ICBzZWxmLnRtcGZpbGUuY2xvc2UoKQotCi0gICAgZGVmIHN1c3BlbmQoc2VsZik6Ci0gICAgICAg
IHNldGF0dHIoc3lzLCBzZWxmLm5hbWUsIHNlbGYuX29sZCkKLQotICAgIGRlZiByZXN1bWUoc2Vs
Zik6Ci0gICAgICAgIHNldGF0dHIoc3lzLCBzZWxmLm5hbWUsIHNlbGYudG1wZmlsZSkKLQotICAg
IGRlZiB3cml0ZW9yZyhzZWxmLCBkYXRhKToKLSAgICAgICAgc2VsZi5fb2xkLndyaXRlKGRhdGEp
Ci0gICAgICAgIHNlbGYuX29sZC5mbHVzaCgpCi0KLQotY2xhc3MgU3lzQ2FwdHVyZUJpbmFyeShT
eXNDYXB0dXJlKToKLSAgICBkZWYgc25hcChzZWxmKToKLSAgICAgICAgcmVzID0gc2VsZi50bXBm
aWxlLmJ1ZmZlci5nZXR2YWx1ZSgpCi0gICAgICAgIHNlbGYudG1wZmlsZS5zZWVrKDApCi0gICAg
ICAgIHNlbGYudG1wZmlsZS50cnVuY2F0ZSgpCi0gICAgICAgIHJldHVybiByZXMKLQotCi1jbGFz
cyBEb250UmVhZEZyb21JbnB1dDoKLSAgICAiIiJUZW1wb3Jhcnkgc3R1YiBjbGFzcy4gIElkZWFs
bHkgd2hlbiBzdGRpbiBpcyBhY2Nlc3NlZCwgdGhlCi0gICAgY2FwdHVyaW5nIHNob3VsZCBiZSB0
dXJuZWQgb2ZmLCB3aXRoIHBvc3NpYmx5IGFsbCBkYXRhIGNhcHR1cmVkCi0gICAgc28gZmFyIHNl
bnQgdG8gdGhlIHNjcmVlbi4gIFRoaXMgc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSwgdGhvdWdoLAot
ICAgIGJlY2F1c2UgaW4gYXV0b21hdGVkIHRlc3QgcnVucyBpdCBpcyBiZXR0ZXIgdG8gY3Jhc2gg
dGhhbgotICAgIGhhbmcgaW5kZWZpbml0ZWx5LgotICAgICIiIgotCi0gICAgZW5jb2RpbmcgPSBO
b25lCi0KLSAgICBkZWYgcmVhZChzZWxmLCAqYXJncyk6Ci0gICAgICAgIHJhaXNlIElPRXJyb3Io
InJlYWRpbmcgZnJvbSBzdGRpbiB3aGlsZSBvdXRwdXQgaXMgY2FwdHVyZWQiKQotICAgIHJlYWRs
aW5lID0gcmVhZAotICAgIHJlYWRsaW5lcyA9IHJlYWQKLSAgICBfX2l0ZXJfXyA9IHJlYWQKLQot
ICAgIGRlZiBmaWxlbm8oc2VsZik6Ci0gICAgICAgIHJhaXNlIFVuc3VwcG9ydGVkT3BlcmF0aW9u
KCJyZWRpcmVjdGVkIHN0ZGluIGlzIHBzZXVkb2ZpbGUsICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImhhcyBubyBmaWxlbm8oKSIpCi0KLSAgICBkZWYgaXNhdHR5KHNlbGYp
OgotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBjbG9zZShzZWxmKToKLSAgICAgICAg
cGFzcwotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGJ1ZmZlcihzZWxmKToKLSAgICAgICAgaWYg
c3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZgotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoJ3JlZGlyZWN0ZWQg
c3RkaW4gaGFzIG5vIGF0dHJpYnV0ZSBidWZmZXInKQotCi0KLWRlZiBfY29sb3JhbWFfd29ya2Fy
b3VuZCgpOgotICAgICIiIgotICAgIEVuc3VyZSBjb2xvcmFtYSBpcyBpbXBvcnRlZCBzbyB0aGF0
IGl0IGF0dGFjaGVzIHRvIHRoZSBjb3JyZWN0IHN0ZGlvCi0gICAgaGFuZGxlcyBvbiBXaW5kb3dz
LgotCi0gICAgY29sb3JhbWEgdXNlcyB0aGUgdGVybWluYWwgb24gaW1wb3J0IHRpbWUuIFNvIGlm
IHNvbWV0aGluZyBkb2VzIHRoZQotICAgIGZpcnN0IGltcG9ydCBvZiBjb2xvcmFtYSB3aGlsZSBJ
L08gY2FwdHVyZSBpcyBhY3RpdmUsIGNvbG9yYW1hIHdpbGwKLSAgICBmYWlsIGluIHZhcmlvdXMg
d2F5cy4KLSAgICAiIiIKLQotICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2lu
MzInKToKLSAgICAgICAgcmV0dXJuCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgY29sb3JhbWEg
ICMgbm9xYQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcGFzcwotCi0KLWRlZiBf
cmVhZGxpbmVfd29ya2Fyb3VuZCgpOgotICAgICIiIgotICAgIEVuc3VyZSByZWFkbGluZSBpcyBp
bXBvcnRlZCBzbyB0aGF0IGl0IGF0dGFjaGVzIHRvIHRoZSBjb3JyZWN0IHN0ZGlvCi0gICAgaGFu
ZGxlcyBvbiBXaW5kb3dzLgotCi0gICAgUGRiIHVzZXMgcmVhZGxpbmUgc3VwcG9ydCB3aGVyZSBh
dmFpbGFibGUtLXdoZW4gbm90IHJ1bm5pbmcgZnJvbSB0aGUgUHl0aG9uCi0gICAgcHJvbXB0LCB0
aGUgcmVhZGxpbmUgbW9kdWxlIGlzIG5vdCBpbXBvcnRlZCB1bnRpbCBydW5uaW5nIHRoZSBwZGIg
UkVQTC4gIElmCi0gICAgcnVubmluZyBweXRlc3Qgd2l0aCB0aGUgLS1wZGIgb3B0aW9uIHRoaXMg
bWVhbnMgdGhlIHJlYWRsaW5lIG1vZHVsZSBpcyBub3QKLSAgICBpbXBvcnRlZCB1bnRpbCBhZnRl
ciBJL08gY2FwdHVyZSBoYXMgYmVlbiBzdGFydGVkLgotCi0gICAgVGhpcyBpcyBhIHByb2JsZW0g
Zm9yIHB5cmVhZGxpbmUsIHdoaWNoIGlzIG9mdGVuIHVzZWQgdG8gaW1wbGVtZW50IHJlYWRsaW5l
Ci0gICAgc3VwcG9ydCBvbiBXaW5kb3dzLCBhcyBpdCBkb2VzIG5vdCBhdHRhY2ggdG8gdGhlIGNv
cnJlY3QgaGFuZGxlcyBmb3Igc3Rkb3V0Ci0gICAgYW5kL29yIHN0ZGluIGlmIHRoZXkgaGF2ZSBi
ZWVuIHJlZGlyZWN0ZWQgYnkgdGhlIEZEQ2FwdHVyZSBtZWNoYW5pc20uICBUaGlzCi0gICAgd29y
a2Fyb3VuZCBlbnN1cmVzIHRoYXQgcmVhZGxpbmUgaXMgaW1wb3J0ZWQgYmVmb3JlIEkvTyBjYXB0
dXJlIGlzIHNldHVwIHNvCi0gICAgdGhhdCBpdCBjYW4gYXR0YWNoIHRvIHRoZSBhY3R1YWwgc3Rk
aW4vb3V0IGZvciB0aGUgY29uc29sZS4KLQotICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvcHVsbC8xMjgxCi0gICAgIiIiCi0KLSAgICBpZiBub3Qgc3lzLnBsYXRm
b3JtLnN0YXJ0c3dpdGgoJ3dpbjMyJyk6Ci0gICAgICAgIHJldHVybgotICAgIHRyeToKLSAgICAg
ICAgaW1wb3J0IHJlYWRsaW5lICAjIG5vcWEKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAg
ICAgIHBhc3MKLQotCi1kZWYgX3B5MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJvdW5kKHN0cmVh
bSk6Ci0gICAgIiIiCi0gICAgUHl0aG9uIDMuNiBpbXBsZW1lbnRlZCB1bmljb2RlIGNvbnNvbGUg
aGFuZGxpbmcgZm9yIFdpbmRvd3MuIFRoaXMgd29ya3MKLSAgICBieSByZWFkaW5nL3dyaXRpbmcg
dG8gdGhlIHJhdyBjb25zb2xlIGhhbmRsZSB1c2luZwotICAgIGBge1JlYWQsV3JpdGV9Q29uc29s
ZVdgYC4KLQotICAgIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgYXJlIGdvaW5nIHRvIGBgZHVwMmBg
IG92ZXIgdGhlIHN0ZGlvIGZpbGUKLSAgICBkZXNjcmlwdG9ycyB3aGVuIGRvaW5nIGBgRkRDYXB0
dXJlYGAgYW5kIHRoaXMgd2lsbCBgYENsb3NlSGFuZGxlYGAgdGhlCi0gICAgaGFuZGxlcyB1c2Vk
IGJ5IFB5dGhvbiB0byB3cml0ZSB0byB0aGUgY29uc29sZS4gVGhvdWdoIHRoZXJlIGlzIHN0aWxs
IHNvbWUKLSAgICB3ZWlyZG5lc3MgYW5kIHRoZSBjb25zb2xlIGhhbmRsZSBzZWVtcyB0byBvbmx5
IGJlIGNsb3NlZCByYW5kb21seSBhbmQgbm90Ci0gICAgb24gdGhlIGZpcnN0IGNhbGwgdG8gYGBD
bG9zZUhhbmRsZWBgLCBvciBtYXliZSBpdCBnZXRzIHJlb3BlbmVkIHdpdGggdGhlCi0gICAgc2Ft
ZSBoYW5kbGUgdmFsdWUgd2hlbiB3ZSBzdXNwZW5kIGNhcHR1cmluZy4KLQotICAgIFRoZSB3b3Jr
YXJvdW5kIGluIHRoaXMgY2FzZSB3aWxsIHJlb3BlbiBzdGRpbyB3aXRoIGEgZGlmZmVyZW50IGZk
IHdoaWNoCi0gICAgYWxzbyBtZWFucyBhIGRpZmZlcmVudCBoYW5kbGUgYnkgcmVwbGljYXRpbmcg
dGhlIGxvZ2ljIGluCi0gICAgIlB5X2xpZmVjeWNsZS5jOmluaXRzdGRpby9jcmVhdGVfc3RkaW8i
LgotCi0gICAgOnBhcmFtIHN0cmVhbTogaW4gcHJhY3RpY2UgYGBzeXMuc3Rkb3V0YGAgb3IgYGBz
eXMuc3RkZXJyYGAsIGJ1dCBnaXZlbgotICAgICAgICBoZXJlIGFzIHBhcmFtZXRlciBmb3IgdW5p
dHRlc3RpbmcgcHVycG9zZXMuCi0KLSAgICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHkvaXNzdWVzLzEwMwotICAgICIiIgotICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRz
d2l0aCgnd2luMzInKSBvciBzeXMudmVyc2lvbl9pbmZvWzoyXSA8ICgzLCA2KToKLSAgICAgICAg
cmV0dXJuCi0KLSAgICAjIGJhaWwgb3V0IGlmIGBgc3RyZWFtYGAgZG9lc24ndCBzZWVtIGxpa2Ug
YSBwcm9wZXIgYGBpb2BgIHN0cmVhbSAoIzI2NjYpCi0gICAgaWYgbm90IGhhc2F0dHIoc3RyZWFt
LCAnYnVmZmVyJyk6Ci0gICAgICAgIHJldHVybgotCi0gICAgYnVmZmVyZWQgPSBoYXNhdHRyKHN0
cmVhbS5idWZmZXIsICdyYXcnKQotICAgIHJhd19zdGRvdXQgPSBzdHJlYW0uYnVmZmVyLnJhdyBp
ZiBidWZmZXJlZCBlbHNlIHN0cmVhbS5idWZmZXIKLQotICAgIGlmIG5vdCBpc2luc3RhbmNlKHJh
d19zdGRvdXQsIGlvLl9XaW5kb3dzQ29uc29sZUlPKToKLSAgICAgICAgcmV0dXJuCi0KLSAgICBk
ZWYgX3Jlb3Blbl9zdGRpbyhmLCBtb2RlKToKLSAgICAgICAgaWYgbm90IGJ1ZmZlcmVkIGFuZCBt
b2RlWzBdID09ICd3JzoKLSAgICAgICAgICAgIGJ1ZmZlcmluZyA9IDAKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIGJ1ZmZlcmluZyA9IC0xCi0KLSAgICAgICAgcmV0dXJuIGlvLlRleHRJT1dy
YXBwZXIoCi0gICAgICAgICAgICBvcGVuKG9zLmR1cChmLmZpbGVubygpKSwgbW9kZSwgYnVmZmVy
aW5nKSwKLSAgICAgICAgICAgIGYuZW5jb2RpbmcsCi0gICAgICAgICAgICBmLmVycm9ycywKLSAg
ICAgICAgICAgIGYubmV3bGluZXMsCi0gICAgICAgICAgICBmLmxpbmVfYnVmZmVyaW5nKQotCi0g
ICAgc3lzLl9fc3RkaW5fXyA9IHN5cy5zdGRpbiA9IF9yZW9wZW5fc3RkaW8oc3lzLnN0ZGluLCAn
cmInKQotICAgIHN5cy5fX3N0ZG91dF9fID0gc3lzLnN0ZG91dCA9IF9yZW9wZW5fc3RkaW8oc3lz
LnN0ZG91dCwgJ3diJykKLSAgICBzeXMuX19zdGRlcnJfXyA9IHN5cy5zdGRlcnIgPSBfcmVvcGVu
X3N0ZGlvKHN5cy5zdGRlcnIsICd3YicpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2NvbXBhdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY29tcGF0LnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3NTYwZmJlYzM5NzU1NTc0N2ZjMTRhM2FhZTIzODY4NjY4NzhjMTgw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvY29tcGF0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzIyICswLDAgQEAKLSIi
IgotcHl0aG9uIHZlcnNpb24gY29tcGF0aWJpbGl0eSBjb2RlCi0iIiIKLWZyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1w
b3J0IGNvZGVjcwotaW1wb3J0IGZ1bmN0b29scwotaW1wb3J0IGluc3BlY3QKLWltcG9ydCByZQot
aW1wb3J0IHN5cwotCi1pbXBvcnQgcHkKLQotaW1wb3J0IF9weXRlc3QKLWZyb20gX3B5dGVzdC5v
dXRjb21lcyBpbXBvcnQgVEVTVF9PVVRDT01FCi0KLXRyeToKLSAgICBpbXBvcnQgZW51bQotZXhj
ZXB0IEltcG9ydEVycm9yOiAgIyBwcmFnbWE6IG5vIGNvdmVyCi0gICAgIyBPbmx5IGF2YWlsYWJs
ZSBpbiBQeXRob24gMy40KyBvciBhcyBhIGJhY2twb3J0Ci0gICAgZW51bSA9IE5vbmUKLQotCi1f
UFkzID0gc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKQotX1BZMiA9IG5vdCBfUFkzCi0KLQotaWYg
X1BZMzoKLSAgICBmcm9tIGluc3BlY3QgaW1wb3J0IHNpZ25hdHVyZSwgUGFyYW1ldGVyIGFzIFBh
cmFtZXRlcgotZWxzZToKLSAgICBmcm9tIGZ1bmNzaWdzIGltcG9ydCBzaWduYXR1cmUsIFBhcmFt
ZXRlciBhcyBQYXJhbWV0ZXIKLQotCi1Ob25lVHlwZSA9IHR5cGUoTm9uZSkKLU5PVFNFVCA9IG9i
amVjdCgpCi0KLVBZMzUgPSBzeXMudmVyc2lvbl9pbmZvWzoyXSA+PSAoMywgNSkKLVBZMzYgPSBz
eXMudmVyc2lvbl9pbmZvWzoyXSA+PSAoMywgNikKLU1PRFVMRV9OT1RfRk9VTkRfRVJST1IgPSAn
TW9kdWxlTm90Rm91bmRFcnJvcicgaWYgUFkzNiBlbHNlICdJbXBvcnRFcnJvcicKLQotCi1kZWYg
X2Zvcm1hdF9hcmdzKGZ1bmMpOgotICAgIHJldHVybiBzdHIoc2lnbmF0dXJlKGZ1bmMpKQotCi0K
LWlzZnVuY3Rpb24gPSBpbnNwZWN0LmlzZnVuY3Rpb24KLWlzY2xhc3MgPSBpbnNwZWN0LmlzY2xh
c3MKLSMgdXNlZCB0byB3b3JrIGFyb3VuZCBhIHB5dGhvbjIgZXhjZXB0aW9uIGluZm8gbGVhawot
ZXhjX2NsZWFyID0gZ2V0YXR0cihzeXMsICdleGNfY2xlYXInLCBsYW1iZGE6IE5vbmUpCi0jIFRo
ZSB0eXBlIG9mIHJlLmNvbXBpbGUgb2JqZWN0cyBpcyBub3QgZXhwb3NlZCBpbiBQeXRob24uCi1S
RUdFWF9UWVBFID0gdHlwZShyZS5jb21waWxlKCcnKSkKLQotCi1kZWYgaXNfZ2VuZXJhdG9yKGZ1
bmMpOgotICAgIGdlbmZ1bmMgPSBpbnNwZWN0LmlzZ2VuZXJhdG9yZnVuY3Rpb24oZnVuYykKLSAg
ICByZXR1cm4gZ2VuZnVuYyBhbmQgbm90IGlzY29yb3V0aW5lZnVuY3Rpb24oZnVuYykKLQotCi1k
ZWYgaXNjb3JvdXRpbmVmdW5jdGlvbihmdW5jKToKLSAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBmdW5j
IGlzIGEgZGVjb3JhdGVkIGNvcm91dGluZSBmdW5jdGlvbi4KLQotICAgIE5vdGU6IGNvcGllZCBh
bmQgbW9kaWZpZWQgZnJvbSBQeXRob24gMy41J3MgYnVpbHRpbiBjb3Vyb3V0aW5lcy5weSB0byBh
dm9pZCBpbXBvcnQgYXN5bmNpbyBkaXJlY3RseSwKLSAgICB3aGljaCBpbiB0dXJucyBhbHNvIGlu
aXRpYWxpemVzIHRoZSAibG9nZ2luZyIgbW9kdWxlIGFzIHNpZGUtZWZmZWN0IChzZWUgaXNzdWUg
IzgpLgotICAgICIiIgotICAgIHJldHVybiAoZ2V0YXR0cihmdW5jLCAnX2lzX2Nvcm91dGluZScs
IEZhbHNlKSBvcgotICAgICAgICAgICAgKGhhc2F0dHIoaW5zcGVjdCwgJ2lzY29yb3V0aW5lZnVu
Y3Rpb24nKSBhbmQgaW5zcGVjdC5pc2Nvcm91dGluZWZ1bmN0aW9uKGZ1bmMpKSkKLQotCi1kZWYg
Z2V0bG9jYXRpb24oZnVuY3Rpb24sIGN1cmRpcik6Ci0gICAgZm4gPSBweS5wYXRoLmxvY2FsKGlu
c3BlY3QuZ2V0ZmlsZShmdW5jdGlvbikpCi0gICAgbGluZW5vID0gcHkuYnVpbHRpbi5fZ2V0Y29k
ZShmdW5jdGlvbikuY29fZmlyc3RsaW5lbm8KLSAgICBpZiBmbi5yZWx0byhjdXJkaXIpOgotICAg
ICAgICBmbiA9IGZuLnJlbHRvKGN1cmRpcikKLSAgICByZXR1cm4gIiVzOiVkIiAlIChmbiwgbGlu
ZW5vICsgMSkKLQotCi1kZWYgbnVtX21vY2tfcGF0Y2hfYXJncyhmdW5jdGlvbik6Ci0gICAgIiIi
IHJldHVybiBudW1iZXIgb2YgYXJndW1lbnRzIHVzZWQgdXAgYnkgbW9jayBhcmd1bWVudHMgKGlm
IGFueSkgIiIiCi0gICAgcGF0Y2hpbmdzID0gZ2V0YXR0cihmdW5jdGlvbiwgInBhdGNoaW5ncyIs
IE5vbmUpCi0gICAgaWYgbm90IHBhdGNoaW5nczoKLSAgICAgICAgcmV0dXJuIDAKLSAgICBtb2Nr
ID0gc3lzLm1vZHVsZXMuZ2V0KCJtb2NrIiwgc3lzLm1vZHVsZXMuZ2V0KCJ1bml0dGVzdC5tb2Nr
IiwgTm9uZSkpCi0gICAgaWYgbW9jayBpcyBub3QgTm9uZToKLSAgICAgICAgcmV0dXJuIGxlbihb
cCBmb3IgcCBpbiBwYXRjaGluZ3MKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IHAuYXR0cmli
dXRlX25hbWUgYW5kIHAubmV3IGlzIG1vY2suREVGQVVMVF0pCi0gICAgcmV0dXJuIGxlbihwYXRj
aGluZ3MpCi0KLQotZGVmIGdldGZ1bmNhcmduYW1lcyhmdW5jdGlvbiwgaXNfbWV0aG9kPUZhbHNl
LCBjbHM9Tm9uZSk6Ci0gICAgIiIiUmV0dXJucyB0aGUgbmFtZXMgb2YgYSBmdW5jdGlvbidzIG1h
bmRhdG9yeSBhcmd1bWVudHMuCi0KLSAgICBUaGlzIHNob3VsZCByZXR1cm4gdGhlIG5hbWVzIG9m
IGFsbCBmdW5jdGlvbiBhcmd1bWVudHMgdGhhdDoKLSAgICAgICAgKiBBcmVuJ3QgYm91bmQgdG8g
YW4gaW5zdGFuY2Ugb3IgdHlwZSBhcyBpbiBpbnN0YW5jZSBvciBjbGFzcyBtZXRob2RzLgotICAg
ICAgICAqIERvbid0IGhhdmUgZGVmYXVsdCB2YWx1ZXMuCi0gICAgICAgICogQXJlbid0IGJvdW5k
IHdpdGggZnVuY3Rvb2xzLnBhcnRpYWwuCi0gICAgICAgICogQXJlbid0IHJlcGxhY2VkIHdpdGgg
bW9ja3MuCi0KLSAgICBUaGUgaXNfbWV0aG9kIGFuZCBjbHMgYXJndW1lbnRzIGluZGljYXRlIHRo
YXQgdGhlIGZ1bmN0aW9uIHNob3VsZAotICAgIGJlIHRyZWF0ZWQgYXMgYSBib3VuZCBtZXRob2Qg
ZXZlbiB0aG91Z2ggaXQncyBub3QgdW5sZXNzLCBvbmx5IGluCi0gICAgdGhlIGNhc2Ugb2YgY2xz
LCB0aGUgZnVuY3Rpb24gaXMgYSBzdGF0aWMgbWV0aG9kLgotCi0gICAgQFJvbm55UGZhbm5zY2ht
aWR0OiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSByZWZhY3RvcmVkIHdoZW4gd2UKLSAgICByZXZp
c2l0IGZpeHR1cmVzLiBUaGUgZml4dHVyZSBtZWNoYW5pc20gc2hvdWxkIGFzayB0aGUgbm9kZSBm
b3IKLSAgICB0aGUgZml4dHVyZSBuYW1lcywgYW5kIG5vdCB0cnkgdG8gb2J0YWluIGRpcmVjdGx5
IGZyb20gdGhlCi0gICAgZnVuY3Rpb24gb2JqZWN0IHdlbGwgYWZ0ZXIgY29sbGVjdGlvbiBoYXMg
b2NjdXJyZWQuCi0KLSAgICAiIiIKLSAgICAjIFRoZSBwYXJhbWV0ZXJzIGF0dHJpYnV0ZSBvZiBh
IFNpZ25hdHVyZSBvYmplY3QgY29udGFpbnMgYW4KLSAgICAjIG9yZGVyZWQgbWFwcGluZyBvZiBw
YXJhbWV0ZXIgbmFtZXMgdG8gUGFyYW1ldGVyIGluc3RhbmNlcy4gIFRoaXMKLSAgICAjIGNyZWF0
ZXMgYSB0dXBsZSBvZiB0aGUgbmFtZXMgb2YgdGhlIHBhcmFtZXRlcnMgdGhhdCBkb24ndCBoYXZl
Ci0gICAgIyBkZWZhdWx0cy4KLSAgICBhcmdfbmFtZXMgPSB0dXBsZShwLm5hbWUgZm9yIHAgaW4g
c2lnbmF0dXJlKGZ1bmN0aW9uKS5wYXJhbWV0ZXJzLnZhbHVlcygpCi0gICAgICAgICAgICAgICAg
ICAgICAgaWYgKHAua2luZCBpcyBQYXJhbWV0ZXIuUE9TSVRJT05BTF9PUl9LRVlXT1JEIG9yCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHAua2luZCBpcyBQYXJhbWV0ZXIuS0VZV09SRF9PTkxZ
KSBhbmQKLSAgICAgICAgICAgICAgICAgICAgICBwLmRlZmF1bHQgaXMgUGFyYW1ldGVyLmVtcHR5
KQotICAgICMgSWYgdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgdHJlYXRlZCBhcyBhIGJvdW5kIG1l
dGhvZCBldmVuIHRob3VnaAotICAgICMgaXQncyBwYXNzZWQgYXMgYW4gdW5ib3VuZCBtZXRob2Qg
b3IgZnVuY3Rpb24sIHJlbW92ZSB0aGUgZmlyc3QKLSAgICAjIHBhcmFtZXRlciBuYW1lLgotICAg
IGlmIChpc19tZXRob2Qgb3IKLSAgICAgICAgKGNscyBhbmQgbm90IGlzaW5zdGFuY2UoY2xzLl9f
ZGljdF9fLmdldChmdW5jdGlvbi5fX25hbWVfXywgTm9uZSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRpY21ldGhvZCkpKToKLSAgICAgICAgYXJnX25hbWVzID0gYXJnX25h
bWVzWzE6XQotICAgICMgUmVtb3ZlIGFueSBuYW1lcyB0aGF0IHdpbGwgYmUgcmVwbGFjZWQgd2l0
aCBtb2Nrcy4KLSAgICBpZiBoYXNhdHRyKGZ1bmN0aW9uLCAiX193cmFwcGVkX18iKToKLSAgICAg
ICAgYXJnX25hbWVzID0gYXJnX25hbWVzW251bV9tb2NrX3BhdGNoX2FyZ3MoZnVuY3Rpb24pOl0K
LSAgICByZXR1cm4gYXJnX25hbWVzCi0KLQotaWYgX1BZMzoKLSAgICBTVFJJTkdfVFlQRVMgPSBi
eXRlcywgc3RyCi0gICAgVU5JQ09ERV9UWVBFUyA9IHN0ciwKLQotICAgIGlmIFBZMzU6Ci0gICAg
ICAgIGRlZiBfYnl0ZXNfdG9fYXNjaWkodmFsKToKLSAgICAgICAgICAgIHJldHVybiB2YWwuZGVj
b2RlKCdhc2NpaScsICdiYWNrc2xhc2hyZXBsYWNlJykKLSAgICBlbHNlOgotICAgICAgICBkZWYg
X2J5dGVzX3RvX2FzY2lpKHZhbCk6Ci0gICAgICAgICAgICBpZiB2YWw6Ci0gICAgICAgICAgICAg
ICAgIyBzb3VyY2U6IGh0dHA6Ly9nb28uZ2wvYkdzbndDCi0gICAgICAgICAgICAgICAgZW5jb2Rl
ZF9ieXRlcywgXyA9IGNvZGVjcy5lc2NhcGVfZW5jb2RlKHZhbCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZW5jb2RlZF9ieXRlcy5kZWNvZGUoJ2FzY2lpJykKLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgIyBlbXB0eSBieXRlcyBjcmFzaGVzIGNvZGVjcy5lc2NhcGVfZW5jb2Rl
ICgjMTA4NykKLSAgICAgICAgICAgICAgICByZXR1cm4gJycKLQotICAgIGRlZiBhc2NpaV9lc2Nh
cGVkKHZhbCk6Ci0gICAgICAgICIiIklmIHZhbCBpcyBwdXJlIGFzY2lpLCByZXR1cm5zIGl0IGFz
IGEgc3RyKCkuICBPdGhlcndpc2UsIGVzY2FwZXMKLSAgICAgICAgYnl0ZXMgb2JqZWN0cyBpbnRv
IGEgc2VxdWVuY2Ugb2YgZXNjYXBlZCBieXRlczoKLQotICAgICAgICBiJ1x4YzNceGI0XHhjNVx4
ZDYnIC0+IHUnXFx4YzNcXHhiNFxceGM1XFx4ZDYnCi0KLSAgICAgICAgYW5kIGVzY2FwZXMgdW5p
Y29kZSBvYmplY3RzIGludG8gYSBzZXF1ZW5jZSBvZiBlc2NhcGVkIHVuaWNvZGUKLSAgICAgICAg
aWRzLCBlLmcuOgotCi0gICAgICAgICc0XFxuVlxcVTAwMDQzZWZhXFx4MGVNWFdCXFx4MWVcXHUz
MDI4XFx1MTVmZFxceGNkXFxVMDAwN2Q5NDQnCi0KLSAgICAgICAgbm90ZToKLSAgICAgICAgICAg
dGhlIG9idmlvdXMgInYuZGVjb2RlKCd1bmljb2RlLWVzY2FwZScpIiB3aWxsIHJldHVybgotICAg
ICAgICAgICB2YWxpZCB1dGYtOCB1bmljb2RlIGlmIGl0IGZpbmRzIHRoZW0gaW4gYnl0ZXMsIGJ1
dCB3ZQotICAgICAgICAgICB3YW50IHRvIHJldHVybiBlc2NhcGVkIGJ5dGVzIGZvciBhbnkgYnl0
ZSwgZXZlbiBpZiB0aGV5IG1hdGNoCi0gICAgICAgICAgIGEgdXRmLTggc3RyaW5nLgotCi0gICAg
ICAgICIiIgotICAgICAgICBpZiBpc2luc3RhbmNlKHZhbCwgYnl0ZXMpOgotICAgICAgICAgICAg
cmV0dXJuIF9ieXRlc190b19hc2NpaSh2YWwpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBy
ZXR1cm4gdmFsLmVuY29kZSgndW5pY29kZV9lc2NhcGUnKS5kZWNvZGUoJ2FzY2lpJykKLWVsc2U6
Ci0gICAgU1RSSU5HX1RZUEVTID0gYnl0ZXMsIHN0ciwgdW5pY29kZQotICAgIFVOSUNPREVfVFlQ
RVMgPSB1bmljb2RlLAotCi0gICAgZGVmIGFzY2lpX2VzY2FwZWQodmFsKToKLSAgICAgICAgIiIi
SW4gcHkyIGJ5dGVzIGFuZCBzdHIgYXJlIHRoZSBzYW1lIHR5cGUsIHNvIHJldHVybiBpZiBpdCdz
IGEgYnl0ZXMKLSAgICAgICAgb2JqZWN0LCByZXR1cm4gaXQgdW5jaGFuZ2VkIGlmIGl0IGlzIGEg
ZnVsbCBhc2NpaSBzdHJpbmcsCi0gICAgICAgIG90aGVyd2lzZSBlc2NhcGUgaXQgaW50byBpdHMg
YmluYXJ5IGZvcm0uCi0KLSAgICAgICAgSWYgaXQncyBhIHVuaWNvZGUgc3RyaW5nLCBjaGFuZ2Ug
dGhlIHVuaWNvZGUgY2hhcmFjdGVycyBpbnRvCi0gICAgICAgIHVuaWNvZGUgZXNjYXBlcy4KLQot
ICAgICAgICAiIiIKLSAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWwsIGJ5dGVzKToKLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICByZXR1cm4gdmFsLmVuY29kZSgnYXNjaWknKQotICAg
ICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKLSAgICAgICAgICAgICAgICByZXR1
cm4gdmFsLmVuY29kZSgnc3RyaW5nLWVzY2FwZScpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICByZXR1cm4gdmFsLmVuY29kZSgndW5pY29kZS1lc2NhcGUnKQotCi0KLWRlZiBnZXRfcmVhbF9m
dW5jKG9iaik6Ci0gICAgIiIiIGdldHMgdGhlIHJlYWwgZnVuY3Rpb24gb2JqZWN0IG9mIHRoZSAo
cG9zc2libHkpIHdyYXBwZWQgb2JqZWN0IGJ5Ci0gICAgZnVuY3Rvb2xzLndyYXBzIG9yIGZ1bmN0
b29scy5wYXJ0aWFsLgotICAgICIiIgotICAgIHN0YXJ0X29iaiA9IG9iagotICAgIGZvciBpIGlu
IHJhbmdlKDEwMCk6Ci0gICAgICAgIG5ld19vYmogPSBnZXRhdHRyKG9iaiwgJ19fd3JhcHBlZF9f
JywgTm9uZSkKLSAgICAgICAgaWYgbmV3X29iaiBpcyBOb25lOgotICAgICAgICAgICAgYnJlYWsK
LSAgICAgICAgb2JqID0gbmV3X29iagotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoCi0gICAgICAgICAgICAoImNvdWxkIG5vdCBmaW5kIHJlYWwgZnVuY3Rpb24gb2Yge3N0YXJ0
fSIKLSAgICAgICAgICAgICAiXG5zdG9wcGVkIGF0IHtjdXJyZW50fSIpLmZvcm1hdCgKLSAgICAg
ICAgICAgICAgICBzdGFydD1weS5pby5zYWZlcmVwcihzdGFydF9vYmopLAotICAgICAgICAgICAg
ICAgIGN1cnJlbnQ9cHkuaW8uc2FmZXJlcHIob2JqKSkpCi0gICAgaWYgaXNpbnN0YW5jZShvYmos
IGZ1bmN0b29scy5wYXJ0aWFsKToKLSAgICAgICAgb2JqID0gb2JqLmZ1bmMKLSAgICByZXR1cm4g
b2JqCi0KLQotZGVmIGdldGZzbGluZW5vKG9iaik6Ci0gICAgIyB4eHggbGV0IGRlY29yYXRvcnMg
ZXRjIHNwZWNpZnkgYSBzYW5lIG9yZGVyaW5nCi0gICAgb2JqID0gZ2V0X3JlYWxfZnVuYyhvYmop
Ci0gICAgaWYgaGFzYXR0cihvYmosICdwbGFjZV9hcycpOgotICAgICAgICBvYmogPSBvYmoucGxh
Y2VfYXMKLSAgICBmc2xpbmVubyA9IF9weXRlc3QuX2NvZGUuZ2V0ZnNsaW5lbm8ob2JqKQotICAg
IGFzc2VydCBpc2luc3RhbmNlKGZzbGluZW5vWzFdLCBpbnQpLCBvYmoKLSAgICByZXR1cm4gZnNs
aW5lbm8KLQotCi1kZWYgZ2V0aW1mdW5jKGZ1bmMpOgotICAgIHRyeToKLSAgICAgICAgcmV0dXJu
IGZ1bmMuX19mdW5jX18KLSAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIHJldHVy
biBmdW5jCi0KLQotZGVmIHNhZmVfZ2V0YXR0cihvYmplY3QsIG5hbWUsIGRlZmF1bHQpOgotICAg
ICIiIiBMaWtlIGdldGF0dHIgYnV0IHJldHVybiBkZWZhdWx0IHVwb24gYW55IEV4Y2VwdGlvbiBv
ciBhbnkgT3V0Y29tZUV4Y2VwdGlvbi4KLQotICAgIEF0dHJpYnV0ZSBhY2Nlc3MgY2FuIHBvdGVu
dGlhbGx5IGZhaWwgZm9yICdldmlsJyBQeXRob24gb2JqZWN0cy4KLSAgICBTZWUgaXNzdWUgIzIx
NC4KLSAgICBJdCBjYXRjaGVzIE91dGNvbWVFeGNlcHRpb24gYmVjYXVzZSBvZiAjMjQ5MCAoaXNz
dWUgIzU4MCksIG5ldyBvdXRjb21lcyBhcmUgZGVyaXZlZCBmcm9tIEJhc2VFeGNlcHRpb24KLSAg
ICBpbnN0ZWFkIG9mIEV4Y2VwdGlvbiAoZm9yIG1vcmUgZGV0YWlscyBjaGVjayAjMjcwNykKLSAg
ICAiIiIKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBnZXRhdHRyKG9iamVjdCwgbmFtZSwgZGVm
YXVsdCkKLSAgICBleGNlcHQgVEVTVF9PVVRDT01FOgotICAgICAgICByZXR1cm4gZGVmYXVsdAot
Ci0KLWRlZiBfaXNfdW5pdHRlc3RfdW5leHBlY3RlZF9zdWNjZXNzX2FfZmFpbHVyZSgpOgotICAg
ICIiIlJldHVybiBpZiB0aGUgdGVzdCBzdWl0ZSBzaG91bGQgZmFpbCBpZiBhIEBleHBlY3RlZEZh
aWx1cmUgdW5pdHRlc3QgdGVzdCBQQVNTRVMuCi0KLSAgICBGcm9tIGh0dHBzOi8vZG9jcy5weXRo
b24ub3JnLzMvbGlicmFyeS91bml0dGVzdC5odG1sP2hpZ2hsaWdodD11bml0dGVzdCN1bml0dGVz
dC5UZXN0UmVzdWx0Lndhc1N1Y2Nlc3NmdWw6Ci0gICAgICAgIENoYW5nZWQgaW4gdmVyc2lvbiAz
LjQ6IFJldHVybnMgRmFsc2UgaWYgdGhlcmUgd2VyZSBhbnkKLSAgICAgICAgdW5leHBlY3RlZFN1
Y2Nlc3NlcyBmcm9tIHRlc3RzIG1hcmtlZCB3aXRoIHRoZSBleHBlY3RlZEZhaWx1cmUoKSBkZWNv
cmF0b3IuCi0gICAgIiIiCi0gICAgcmV0dXJuIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDQpCi0K
LQotaWYgX1BZMzoKLSAgICBkZWYgc2FmZV9zdHIodik6Ci0gICAgICAgICIiInJldHVybnMgdiBh
cyBzdHJpbmciIiIKLSAgICAgICAgcmV0dXJuIHN0cih2KQotZWxzZToKLSAgICBkZWYgc2FmZV9z
dHIodik6Ci0gICAgICAgICIiInJldHVybnMgdiBhcyBzdHJpbmcsIGNvbnZlcnRpbmcgdG8gYXNj
aWkgaWYgbmVjZXNzYXJ5IiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzdHIo
dikKLSAgICAgICAgZXhjZXB0IFVuaWNvZGVFcnJvcjoKLSAgICAgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKHYsIHVuaWNvZGUpOgotICAgICAgICAgICAgICAgIHYgPSB1bmljb2RlKHYpCi0gICAg
ICAgICAgICBlcnJvcnMgPSAncmVwbGFjZScKLSAgICAgICAgICAgIHJldHVybiB2LmVuY29kZSgn
dXRmLTgnLCBlcnJvcnMpCi0KLQotQ09MTEVDVF9GQUtFTU9EVUxFX0FUVFJJQlVURVMgPSAoCi0g
ICAgJ0NvbGxlY3RvcicsCi0gICAgJ01vZHVsZScsCi0gICAgJ0dlbmVyYXRvcicsCi0gICAgJ0Z1
bmN0aW9uJywKLSAgICAnSW5zdGFuY2UnLAotICAgICdTZXNzaW9uJywKLSAgICAnSXRlbScsCi0g
ICAgJ0NsYXNzJywKLSAgICAnRmlsZScsCi0gICAgJ19maWxsZnVuY2FyZ3MnLAotKQotCi0KLWRl
ZiBfc2V0dXBfY29sbGVjdF9mYWtlbW9kdWxlKCk6Ci0gICAgZnJvbSB0eXBlcyBpbXBvcnQgTW9k
dWxlVHlwZQotICAgIGltcG9ydCBweXRlc3QKLSAgICBweXRlc3QuY29sbGVjdCA9IE1vZHVsZVR5
cGUoJ3B5dGVzdC5jb2xsZWN0JykKLSAgICBweXRlc3QuY29sbGVjdC5fX2FsbF9fID0gW10gICMg
dXNlZCBmb3Igc2V0bnMKLSAgICBmb3IgYXR0ciBpbiBDT0xMRUNUX0ZBS0VNT0RVTEVfQVRUUklC
VVRFUzoKLSAgICAgICAgc2V0YXR0cihweXRlc3QuY29sbGVjdCwgYXR0ciwgZ2V0YXR0cihweXRl
c3QsIGF0dHIpKQotCi0KLWlmIF9QWTI6Ci0gICAgIyBXaXRob3V0IHRoaXMgdGhlIHRlc3RfZHVw
ZmlsZV9vbl90ZXh0aW8gd2lsbCBmYWlsLCBvdGhlcndpc2UgQ2FwdHVyZUlPIGNvdWxkIGRpcmVj
dGx5IGluaGVyaXQgZnJvbSBTdHJpbmdJTy4KLSAgICBmcm9tIHB5LmlvIGltcG9ydCBUZXh0SU8K
LQotICAgIGNsYXNzIENhcHR1cmVJTyhUZXh0SU8pOgotCi0gICAgICAgIEBwcm9wZXJ0eQotICAg
ICAgICBkZWYgZW5jb2Rpbmcoc2VsZik6Ci0gICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LCAnX2VuY29kaW5nJywgJ1VURi04JykKLQotZWxzZToKLSAgICBpbXBvcnQgaW8KLQotICAgIGNs
YXNzIENhcHR1cmVJTyhpby5UZXh0SU9XcmFwcGVyKToKLSAgICAgICAgZGVmIF9faW5pdF9fKHNl
bGYpOgotICAgICAgICAgICAgc3VwZXIoQ2FwdHVyZUlPLCBzZWxmKS5fX2luaXRfXygKLSAgICAg
ICAgICAgICAgICBpby5CeXRlc0lPKCksCi0gICAgICAgICAgICAgICAgZW5jb2Rpbmc9J1VURi04
JywgbmV3bGluZT0nJywgd3JpdGVfdGhyb3VnaD1UcnVlLAotICAgICAgICAgICAgKQotCi0gICAg
ICAgIGRlZiBnZXR2YWx1ZShzZWxmKToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmJ1ZmZlci5n
ZXR2YWx1ZSgpLmRlY29kZSgnVVRGLTgnKQotCi0KLWNsYXNzIEZ1bmNhcmduYW1lc0NvbXBhdEF0
dHIob2JqZWN0KToKLSAgICAiIiIgaGVscGVyIGNsYXNzIHNvIHRoYXQgTWV0YWZ1bmMsIEZ1bmN0
aW9uIGFuZCBGaXh0dXJlUmVxdWVzdAotICAgIGRvbid0IG5lZWQgdG8gZWFjaCBkZWZpbmUgdGhl
ICJmdW5jYXJnbmFtZXMiIGNvbXBhdGliaWxpdHkgYXR0cmlidXRlLgotICAgICIiIgotICAgIEBw
cm9wZXJ0eQotICAgIGRlZiBmdW5jYXJnbmFtZXMoc2VsZik6Ci0gICAgICAgICIiIiBhbGlhcyBh
dHRyaWJ1dGUgZm9yIGBgZml4dHVyZW5hbWVzYGAgZm9yIHByZS0yLjMgY29tcGF0aWJpbGl0eSIi
IgotICAgICAgICByZXR1cm4gc2VsZi5maXh0dXJlbmFtZXMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jb25maWcucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5OWM4MDc5ZDQxNTk4NmMxOGIxZjNmZjY0ZDIw
NzU0MmU1ZTQzMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jb25maWcucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAw
ICswLDAgQEAKLSIiIiBjb21tYW5kIGxpbmUgb3B0aW9ucywgaW5pLWZpbGUgYW5kIGNvbmZ0ZXN0
LnB5IHByb2Nlc3NpbmcuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQgc2hs
ZXgKLWltcG9ydCB0cmFjZWJhY2sKLWltcG9ydCB0eXBlcwotaW1wb3J0IHdhcm5pbmdzCi0KLWlt
cG9ydCBzaXgKLWltcG9ydCBweQotIyBET04ndCBpbXBvcnQgcHl0ZXN0IGhlcmUgYmVjYXVzZSBp
dCBjYXVzZXMgaW1wb3J0IGN5Y2xlIHRyb3VibGVzCi1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKLWlt
cG9ydCBfcHl0ZXN0Ll9jb2RlCi1pbXBvcnQgX3B5dGVzdC5ob29rc3BlYyAgIyB0aGUgZXh0ZW5z
aW9uIHBvaW50IGRlZmluaXRpb25zCi1pbXBvcnQgX3B5dGVzdC5hc3NlcnRpb24KLWZyb20gcGx1
Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIK
LWZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IHNhZmVfc3RyCi0KLWhvb2tpbXBsID0gSG9va2lt
cGxNYXJrZXIoInB5dGVzdCIpCi1ob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJweXRlc3QiKQot
Ci0jIHB5dGVzdCBzdGFydHVwCi0jCi0KLQotY2xhc3MgQ29uZnRlc3RJbXBvcnRGYWlsdXJlKEV4
Y2VwdGlvbik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGV4Y2luZm8pOgotICAgICAg
ICBFeGNlcHRpb24uX19pbml0X18oc2VsZiwgcGF0aCwgZXhjaW5mbykKLSAgICAgICAgc2VsZi5w
YXRoID0gcGF0aAotICAgICAgICBzZWxmLmV4Y2luZm8gPSBleGNpbmZvCi0KLSAgICBkZWYgX19z
dHJfXyhzZWxmKToKLSAgICAgICAgZXR5cGUsIGV2YWx1ZSwgZXRiID0gc2VsZi5leGNpbmZvCi0g
ICAgICAgIGZvcm1hdHRlZCA9IHRyYWNlYmFjay5mb3JtYXRfdGIoZXRiKQotICAgICAgICAjIFRo
ZSBsZXZlbCBvZiB0aGUgdHJhY2ViYWNrcyB3ZSB3YW50IHRvIHByaW50IGlzIGhhbmQgY3JhZnRl
ZCA6KAotICAgICAgICByZXR1cm4gcmVwcihldmFsdWUpICsgJ1xuJyArICcnLmpvaW4oZm9ybWF0
dGVkWzI6XSkKLQotCi1kZWYgbWFpbihhcmdzPU5vbmUsIHBsdWdpbnM9Tm9uZSk6Ci0gICAgIiIi
IHJldHVybiBleGl0IGNvZGUsIGFmdGVyIHBlcmZvcm1pbmcgYW4gaW4tcHJvY2VzcyB0ZXN0IHJ1
bi4KLQotICAgIDphcmcgYXJnczogbGlzdCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgotCi0g
ICAgOmFyZyBwbHVnaW5zOiBsaXN0IG9mIHBsdWdpbiBvYmplY3RzIHRvIGJlIGF1dG8tcmVnaXN0
ZXJlZCBkdXJpbmcKLSAgICAgICAgICAgICAgICAgIGluaXRpYWxpemF0aW9uLgotICAgICIiIgot
ICAgIHRyeToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29uZmlnID0gX3ByZXBhcmVjb25m
aWcoYXJncywgcGx1Z2lucykKLSAgICAgICAgZXhjZXB0IENvbmZ0ZXN0SW1wb3J0RmFpbHVyZSBh
cyBlOgotICAgICAgICAgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihzeXMuc3RkZXJyKQot
ICAgICAgICAgICAgZm9yIGxpbmUgaW4gdHJhY2ViYWNrLmZvcm1hdF9leGNlcHRpb24oKmUuZXhj
aW5mbyk6Ci0gICAgICAgICAgICAgICAgdHcubGluZShsaW5lLnJzdHJpcCgpLCByZWQ9VHJ1ZSkK
LSAgICAgICAgICAgIHR3LmxpbmUoIkVSUk9SOiBjb3VsZCBub3QgbG9hZCAlc1xuIiAlIChlLnBh
dGgpLCByZWQ9VHJ1ZSkKLSAgICAgICAgICAgIHJldHVybiA0Ci0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5ob29rLnB5dGVzdF9j
bWRsaW5lX21haW4oY29uZmlnPWNvbmZpZykKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICAgICAgY29uZmlnLl9lbnN1cmVfdW5jb25maWd1cmUoKQotICAgIGV4Y2VwdCBVc2FnZUVy
cm9yIGFzIGU6Ci0gICAgICAgIGZvciBtc2cgaW4gZS5hcmdzOgotICAgICAgICAgICAgc3lzLnN0
ZGVyci53cml0ZSgiRVJST1I6ICVzXG4iICUgKG1zZywpKQotICAgICAgICByZXR1cm4gNAotCi0K
LWNsYXNzIGNtZGxpbmU6ICAjIGNvbXBhdGliaWxpdHkgbmFtZXNwYWNlCi0gICAgbWFpbiA9IHN0
YXRpY21ldGhvZChtYWluKQotCi0KLWNsYXNzIFVzYWdlRXJyb3IoRXhjZXB0aW9uKToKLSAgICAi
IiIgZXJyb3IgaW4gcHl0ZXN0IHVzYWdlIG9yIGludm9jYXRpb24iIiIKLQotCi1jbGFzcyBQcmlu
dEhlbHAoRXhjZXB0aW9uKToKLSAgICAiIiJSYWlzZWQgd2hlbiBweXRlc3Qgc2hvdWxkIHByaW50
IGl0J3MgaGVscCB0byBza2lwIHRoZSByZXN0IG9mIHRoZQotICAgIGFyZ3VtZW50IHBhcnNpbmcg
YW5kIHZhbGlkYXRpb24uIiIiCi0gICAgcGFzcwotCi0KLWRlZiBmaWxlbmFtZV9hcmcocGF0aCwg
b3B0bmFtZSk6Ci0gICAgIiIiIEFyZ3BhcnNlIHR5cGUgdmFsaWRhdG9yIGZvciBmaWxlbmFtZSBh
cmd1bWVudHMuCi0KLSAgICA6cGF0aDogcGF0aCBvZiBmaWxlbmFtZQotICAgIDpvcHRuYW1lOiBu
YW1lIG9mIHRoZSBvcHRpb24KLSAgICAiIiIKLSAgICBpZiBvcy5wYXRoLmlzZGlyKHBhdGgpOgot
ICAgICAgICByYWlzZSBVc2FnZUVycm9yKCJ7MH0gbXVzdCBiZSBhIGZpbGVuYW1lLCBnaXZlbjog
ezF9Ii5mb3JtYXQob3B0bmFtZSwgcGF0aCkpCi0gICAgcmV0dXJuIHBhdGgKLQotCi1kZWYgZGly
ZWN0b3J5X2FyZyhwYXRoLCBvcHRuYW1lKToKLSAgICAiIiJBcmdwYXJzZSB0eXBlIHZhbGlkYXRv
ciBmb3IgZGlyZWN0b3J5IGFyZ3VtZW50cy4KLQotICAgIDpwYXRoOiBwYXRoIG9mIGRpcmVjdG9y
eQotICAgIDpvcHRuYW1lOiBuYW1lIG9mIHRoZSBvcHRpb24KLSAgICAiIiIKLSAgICBpZiBub3Qg
b3MucGF0aC5pc2RpcihwYXRoKToKLSAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiezB9IG11c3Qg
YmUgYSBkaXJlY3RvcnksIGdpdmVuOiB7MX0iLmZvcm1hdChvcHRuYW1lLCBwYXRoKSkKLSAgICBy
ZXR1cm4gcGF0aAotCi0KLWRlZmF1bHRfcGx1Z2lucyA9ICgKLSAgICAibWFyayBtYWluIHRlcm1p
bmFsIHJ1bm5lciBweXRob24gZml4dHVyZXMgZGVidWdnaW5nIHVuaXR0ZXN0IGNhcHR1cmUgc2tp
cHBpbmcgIgotICAgICJ0bXBkaXIgbW9ua2V5cGF0Y2ggcmVjd2FybiBwYXN0ZWJpbiBoZWxwY29u
ZmlnIG5vc2UgYXNzZXJ0aW9uICIKLSAgICAianVuaXR4bWwgcmVzdWx0bG9nIGRvY3Rlc3QgY2Fj
aGVwcm92aWRlciBmcmVlemVfc3VwcG9ydCAiCi0gICAgInNldHVwb25seSBzZXR1cHBsYW4gd2Fy
bmluZ3MgbG9nZ2luZyIpLnNwbGl0KCkKLQotCi1idWlsdGluX3BsdWdpbnMgPSBzZXQoZGVmYXVs
dF9wbHVnaW5zKQotYnVpbHRpbl9wbHVnaW5zLmFkZCgicHl0ZXN0ZXIiKQotCi0KLWRlZiBnZXRf
Y29uZmlnKCk6Ci0gICAgIyBzdWJzZXF1ZW50IGNhbGxzIHRvIG1haW4gd2lsbCBjcmVhdGUgYSBm
cmVzaCBpbnN0YW5jZQotICAgIHBsdWdpbm1hbmFnZXIgPSBQeXRlc3RQbHVnaW5NYW5hZ2VyKCkK
LSAgICBjb25maWcgPSBDb25maWcocGx1Z2lubWFuYWdlcikKLSAgICBmb3Igc3BlYyBpbiBkZWZh
dWx0X3BsdWdpbnM6Ci0gICAgICAgIHBsdWdpbm1hbmFnZXIuaW1wb3J0X3BsdWdpbihzcGVjKQot
ICAgIHJldHVybiBjb25maWcKLQotCi1kZWYgZ2V0X3BsdWdpbl9tYW5hZ2VyKCk6Ci0gICAgIiIi
Ci0gICAgT2J0YWluIGEgbmV3IGluc3RhbmNlIG9mIHRoZQotICAgIDpweTpjbGFzczpgX3B5dGVz
dC5jb25maWcuUHl0ZXN0UGx1Z2luTWFuYWdlcmAsIHdpdGggZGVmYXVsdCBwbHVnaW5zCi0gICAg
YWxyZWFkeSBsb2FkZWQuCi0KLSAgICBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGJ5IGludGVn
cmF0aW9uIHdpdGggb3RoZXIgdG9vbHMsIGxpa2UgaG9va2luZwotICAgIGludG8gcHl0ZXN0IHRv
IHJ1biB0ZXN0cyBpbnRvIGFuIElERS4KLSAgICAiIiIKLSAgICByZXR1cm4gZ2V0X2NvbmZpZygp
LnBsdWdpbm1hbmFnZXIKLQotCi1kZWYgX3ByZXBhcmVjb25maWcoYXJncz1Ob25lLCBwbHVnaW5z
PU5vbmUpOgotICAgIHdhcm5pbmcgPSBOb25lCi0gICAgaWYgYXJncyBpcyBOb25lOgotICAgICAg
ICBhcmdzID0gc3lzLmFyZ3ZbMTpdCi0gICAgZWxpZiBpc2luc3RhbmNlKGFyZ3MsIHB5LnBhdGgu
bG9jYWwpOgotICAgICAgICBhcmdzID0gW3N0cihhcmdzKV0KLSAgICBlbGlmIG5vdCBpc2luc3Rh
bmNlKGFyZ3MsICh0dXBsZSwgbGlzdCkpOgotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhcmdz
LCBzdHIpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibm90IGEgc3RyaW5nIG9yIGFy
Z3VtZW50IGxpc3Q6ICVyIiAlIChhcmdzLCkpCi0gICAgICAgIGFyZ3MgPSBzaGxleC5zcGxpdChh
cmdzLCBwb3NpeD1zeXMucGxhdGZvcm0gIT0gIndpbjMyIikKLSAgICAgICAgZnJvbSBfcHl0ZXN0
IGltcG9ydCBkZXByZWNhdGVkCi0gICAgICAgIHdhcm5pbmcgPSBkZXByZWNhdGVkLk1BSU5fU1RS
X0FSR1MKLSAgICBjb25maWcgPSBnZXRfY29uZmlnKCkKLSAgICBwbHVnaW5tYW5hZ2VyID0gY29u
ZmlnLnBsdWdpbm1hbmFnZXIKLSAgICB0cnk6Ci0gICAgICAgIGlmIHBsdWdpbnM6Ci0gICAgICAg
ICAgICBmb3IgcGx1Z2luIGluIHBsdWdpbnM6Ci0gICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5j
ZShwbHVnaW4sIHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAgICAgICAgICAgICBwbHVnaW5t
YW5hZ2VyLmNvbnNpZGVyX3BsdWdpbmFyZyhwbHVnaW4pCi0gICAgICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICAgICAgcGx1Z2lubWFuYWdlci5yZWdpc3RlcihwbHVnaW4pCi0gICAg
ICAgIGlmIHdhcm5pbmc6Ci0gICAgICAgICAgICBjb25maWcud2FybignQzEnLCB3YXJuaW5nKQot
ICAgICAgICByZXR1cm4gcGx1Z2lubWFuYWdlci5ob29rLnB5dGVzdF9jbWRsaW5lX3BhcnNlKAot
ICAgICAgICAgICAgcGx1Z2lubWFuYWdlcj1wbHVnaW5tYW5hZ2VyLCBhcmdzPWFyZ3MpCi0gICAg
ZXhjZXB0IEJhc2VFeGNlcHRpb246Ci0gICAgICAgIGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJl
KCkKLSAgICAgICAgcmFpc2UKLQotCi1jbGFzcyBQeXRlc3RQbHVnaW5NYW5hZ2VyKFBsdWdpbk1h
bmFnZXIpOgotICAgICIiIgotICAgIE92ZXJ3cml0ZXMgOnB5OmNsYXNzOmBwbHVnZ3kuUGx1Z2lu
TWFuYWdlciA8cGx1Z2d5LlBsdWdpbk1hbmFnZXI+YCB0byBhZGQgcHl0ZXN0LXNwZWNpZmljCi0g
ICAgZnVuY3Rpb25hbGl0eToKLQotICAgICogbG9hZGluZyBwbHVnaW5zIGZyb20gdGhlIGNvbW1h
bmQgbGluZSwgYGBQWVRFU1RfUExVR0lOYGAgZW52IHZhcmlhYmxlIGFuZAotICAgICAgYGBweXRl
c3RfcGx1Z2luc2BgIGdsb2JhbCB2YXJpYWJsZXMgZm91bmQgaW4gcGx1Z2lucyBiZWluZyBsb2Fk
ZWQ7Ci0gICAgKiBgYGNvbmZ0ZXN0LnB5YGAgbG9hZGluZyBkdXJpbmcgc3RhcnQtdXA7Ci0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHN1cGVyKFB5dGVzdFBsdWdp
bk1hbmFnZXIsIHNlbGYpLl9faW5pdF9fKCJweXRlc3QiLCBpbXBscHJlZml4PSJweXRlc3RfIikK
LSAgICAgICAgc2VsZi5fY29uZnRlc3RfcGx1Z2lucyA9IHNldCgpCi0KLSAgICAgICAgIyBzdGF0
ZSByZWxhdGVkIHRvIGxvY2FsIGNvbmZ0ZXN0IHBsdWdpbnMKLSAgICAgICAgc2VsZi5fcGF0aDJj
b25mbW9kcyA9IHt9Ci0gICAgICAgIHNlbGYuX2NvbmZ0ZXN0cGF0aDJtb2QgPSB7fQotICAgICAg
ICBzZWxmLl9jb25mY3V0ZGlyID0gTm9uZQotICAgICAgICBzZWxmLl9ub2NvbmZ0ZXN0ID0gRmFs
c2UKLSAgICAgICAgc2VsZi5fZHVwbGljYXRlcGF0aHMgPSBzZXQoKQotCi0gICAgICAgIHNlbGYu
YWRkX2hvb2tzcGVjcyhfcHl0ZXN0Lmhvb2tzcGVjKQotICAgICAgICBzZWxmLnJlZ2lzdGVyKHNl
bGYpCi0gICAgICAgIGlmIG9zLmVudmlyb24uZ2V0KCdQWVRFU1RfREVCVUcnKToKLSAgICAgICAg
ICAgIGVyciA9IHN5cy5zdGRlcnIKLSAgICAgICAgICAgIGVuY29kaW5nID0gZ2V0YXR0cihlcnIs
ICdlbmNvZGluZycsICd1dGY4JykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBl
cnIgPSBweS5pby5kdXBmaWxlKGVyciwgZW5jb2Rpbmc9ZW5jb2RpbmcpCi0gICAgICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIHNlbGYu
dHJhY2Uucm9vdC5zZXR3cml0ZXIoZXJyLndyaXRlKQotICAgICAgICAgICAgc2VsZi5lbmFibGVf
dHJhY2luZygpCi0KLSAgICAgICAgIyBDb25maWcuX2NvbnNpZGVyX2ltcG9ydGhvb2sgd2lsbCBz
ZXQgYSByZWFsIG9iamVjdCBpZiByZXF1aXJlZC4KLSAgICAgICAgc2VsZi5yZXdyaXRlX2hvb2sg
PSBfcHl0ZXN0LmFzc2VydGlvbi5EdW1teVJld3JpdGVIb29rKCkKLQotICAgIGRlZiBhZGRob29r
cyhzZWxmLCBtb2R1bGVfb3JfY2xhc3MpOgotICAgICAgICAiIiIKLSAgICAgICAgLi4gZGVwcmVj
YXRlZDo6IDIuOAotCi0gICAgICAgIFVzZSA6cHk6bWV0aDpgcGx1Z2d5LlBsdWdpbk1hbmFnZXIu
YWRkX2hvb2tzcGVjcyA8UGx1Z2luTWFuYWdlci5hZGRfaG9va3NwZWNzPmAKLSAgICAgICAgaW5z
dGVhZC4KLSAgICAgICAgIiIiCi0gICAgICAgIHdhcm5pbmcgPSBkaWN0KGNvZGU9IkkyIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgZnNsb2NhdGlvbj1fcHl0ZXN0Ll9jb2RlLmdldGZzbGluZW5v
KHN5cy5fZ2V0ZnJhbWUoMSkpLAotICAgICAgICAgICAgICAgICAgICAgICBub2RlaWQ9Tm9uZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0idXNlIHBsdWdpbm1hbmFnZXIuYWRkX2hv
b2tzcGVjcyBpbnN0ZWFkIG9mICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVw
cmVjYXRlZCBhZGRob29rcygpIG1ldGhvZC4iKQotICAgICAgICBzZWxmLl93YXJuKHdhcm5pbmcp
Ci0gICAgICAgIHJldHVybiBzZWxmLmFkZF9ob29rc3BlY3MobW9kdWxlX29yX2NsYXNzKQotCi0g
ICAgZGVmIHBhcnNlX2hvb2tpbXBsX29wdHMoc2VsZiwgcGx1Z2luLCBuYW1lKToKLSAgICAgICAg
IyBweXRlc3QgaG9va3MgYXJlIGFsd2F5cyBwcmVmaXhlZCB3aXRoIHB5dGVzdF8KLSAgICAgICAg
IyBzbyB3ZSBhdm9pZCBhY2Nlc3NpbmcgcG9zc2libHkgbm9uLXJlYWRhYmxlIGF0dHJpYnV0ZXMK
LSAgICAgICAgIyAoc2VlIGlzc3VlICMxMDczKQotICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3
aXRoKCJweXRlc3RfIik6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgIyBpZ25vcmUgc29t
ZSBoaXN0b3JpYyBzcGVjaWFsIG5hbWVzIHdoaWNoIGNhbiBub3QgYmUgaG9va3MgYW55d2F5Ci0g
ICAgICAgIGlmIG5hbWUgPT0gInB5dGVzdF9wbHVnaW5zIiBvciBuYW1lLnN0YXJ0c3dpdGgoInB5
dGVzdF9mdW5jYXJnX18iKToKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIG1ldGhvZCA9
IGdldGF0dHIocGx1Z2luLCBuYW1lKQotICAgICAgICBvcHRzID0gc3VwZXIoUHl0ZXN0UGx1Z2lu
TWFuYWdlciwgc2VsZikucGFyc2VfaG9va2ltcGxfb3B0cyhwbHVnaW4sIG5hbWUpCi0gICAgICAg
IGlmIG9wdHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmb3IgbmFtZSBpbiAoInRyeWZpcnN0
IiwgInRyeWxhc3QiLCAib3B0aW9uYWxob29rIiwgImhvb2t3cmFwcGVyIik6Ci0gICAgICAgICAg
ICAgICAgb3B0cy5zZXRkZWZhdWx0KG5hbWUsIGhhc2F0dHIobWV0aG9kLCBuYW1lKSkKLSAgICAg
ICAgcmV0dXJuIG9wdHMKLQotICAgIGRlZiBwYXJzZV9ob29rc3BlY19vcHRzKHNlbGYsIG1vZHVs
ZV9vcl9jbGFzcywgbmFtZSk6Ci0gICAgICAgIG9wdHMgPSBzdXBlcihQeXRlc3RQbHVnaW5NYW5h
Z2VyLCBzZWxmKS5wYXJzZV9ob29rc3BlY19vcHRzKAotICAgICAgICAgICAgbW9kdWxlX29yX2Ns
YXNzLCBuYW1lKQotICAgICAgICBpZiBvcHRzIGlzIE5vbmU6Ci0gICAgICAgICAgICBtZXRob2Qg
PSBnZXRhdHRyKG1vZHVsZV9vcl9jbGFzcywgbmFtZSkKLSAgICAgICAgICAgIGlmIG5hbWUuc3Rh
cnRzd2l0aCgicHl0ZXN0XyIpOgotICAgICAgICAgICAgICAgIG9wdHMgPSB7ImZpcnN0cmVzdWx0
IjogaGFzYXR0cihtZXRob2QsICJmaXJzdHJlc3VsdCIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgImhpc3RvcmljIjogaGFzYXR0cihtZXRob2QsICJoaXN0b3JpYyIpfQotICAgICAgICByZXR1
cm4gb3B0cwotCi0gICAgZGVmIHJlZ2lzdGVyKHNlbGYsIHBsdWdpbiwgbmFtZT1Ob25lKToKLSAg
ICAgICAgaWYgbmFtZSA9PSAncHl0ZXN0X2NhdGNobG9nJzoKLSAgICAgICAgICAgIHNlbGYuX3dh
cm4oJ3B5dGVzdC1jYXRjaGxvZyBwbHVnaW4gaGFzIGJlZW4gbWVyZ2VkIGludG8gdGhlIGNvcmUs
ICcKLSAgICAgICAgICAgICAgICAgICAgICAgJ3BsZWFzZSByZW1vdmUgaXQgZnJvbSB5b3VyIHJl
cXVpcmVtZW50cy4nKQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHJldCA9IHN1cGVyKFB5
dGVzdFBsdWdpbk1hbmFnZXIsIHNlbGYpLnJlZ2lzdGVyKHBsdWdpbiwgbmFtZSkKLSAgICAgICAg
aWYgcmV0OgotICAgICAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9wbHVnaW5fcmVnaXN0ZXJlZC5j
YWxsX2hpc3RvcmljKAotICAgICAgICAgICAgICAgIGt3YXJncz1kaWN0KHBsdWdpbj1wbHVnaW4s
IG1hbmFnZXI9c2VsZikpCi0KLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocGx1Z2luLCB0eXBl
cy5Nb2R1bGVUeXBlKToKLSAgICAgICAgICAgICAgICBzZWxmLmNvbnNpZGVyX21vZHVsZShwbHVn
aW4pCi0gICAgICAgIHJldHVybiByZXQKLQotICAgIGRlZiBnZXRwbHVnaW4oc2VsZiwgbmFtZSk6
Ci0gICAgICAgICMgc3VwcG9ydCBkZXByZWNhdGVkIG5hbWluZyBiZWNhdXNlIHBsdWdpbnMgKHhk
aXN0IGUuZy4pIHVzZSBpdAotICAgICAgICByZXR1cm4gc2VsZi5nZXRfcGx1Z2luKG5hbWUpCi0K
LSAgICBkZWYgaGFzcGx1Z2luKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiJSZXR1cm4gVHJ1ZSBp
ZiB0aGUgcGx1Z2luIHdpdGggdGhlIGdpdmVuIG5hbWUgaXMgcmVnaXN0ZXJlZC4iIiIKLSAgICAg
ICAgcmV0dXJuIGJvb2woc2VsZi5nZXRfcGx1Z2luKG5hbWUpKQotCi0gICAgZGVmIHB5dGVzdF9j
b25maWd1cmUoc2VsZiwgY29uZmlnKToKLSAgICAgICAgIyBYWFggbm93IHRoYXQgdGhlIHBsdWdp
bm1hbmFnZXIgZXhwb3NlcyBob29raW1wbCh0cnlmaXJzdC4uLikKLSAgICAgICAgIyB3ZSBzaG91
bGQgcmVtb3ZlIHRyeWZpcnN0L3RyeWxhc3QgYXMgbWFya2VycwotICAgICAgICBjb25maWcuYWRk
aW5pdmFsdWVfbGluZSgibWFya2VycyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0cnlmaXJzdDogbWFyayBhIGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24gc3VjaCB0aGF0
IHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbHVnaW4gbWFjaGluZXJ5
IHdpbGwgdHJ5IHRvIGNhbGwgaXQgZmlyc3QvYXMgZWFybHkgYXMgcG9zc2libGUuIikKLSAgICAg
ICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAidHJ5bGFzdDogbWFyayBhIGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rp
b24gc3VjaCB0aGF0IHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbHVn
aW4gbWFjaGluZXJ5IHdpbGwgdHJ5IHRvIGNhbGwgaXQgbGFzdC9hcyBsYXRlIGFzIHBvc3NpYmxl
LiIpCi0KLSAgICBkZWYgX3dhcm4oc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgIGt3YXJncyA9IG1l
c3NhZ2UgaWYgaXNpbnN0YW5jZShtZXNzYWdlLCBkaWN0KSBlbHNlIHsKLSAgICAgICAgICAgICdj
b2RlJzogJ0kxJywKLSAgICAgICAgICAgICdtZXNzYWdlJzogbWVzc2FnZSwKLSAgICAgICAgICAg
ICdmc2xvY2F0aW9uJzogTm9uZSwKLSAgICAgICAgICAgICdub2RlaWQnOiBOb25lLAotICAgICAg
ICB9Ci0gICAgICAgIHNlbGYuaG9vay5weXRlc3RfbG9nd2FybmluZy5jYWxsX2hpc3RvcmljKGt3
YXJncz1rd2FyZ3MpCi0KLSAgICAjCi0gICAgIyBpbnRlcm5hbCBBUEkgZm9yIGxvY2FsIGNvbmZ0
ZXN0IHBsdWdpbiBoYW5kbGluZwotICAgICMKLSAgICBkZWYgX3NldF9pbml0aWFsX2NvbmZ0ZXN0
cyhzZWxmLCBuYW1lc3BhY2UpOgotICAgICAgICAiIiIgbG9hZCBpbml0aWFsIGNvbmZ0ZXN0IGZp
bGVzIGdpdmVuIGEgcHJlcGFyc2VkICJuYW1lc3BhY2UiLgotICAgICAgICAgICAgQXMgY29uZnRl
c3QgZmlsZXMgbWF5IGFkZCB0aGVpciBvd24gY29tbWFuZCBsaW5lIG9wdGlvbnMKLSAgICAgICAg
ICAgIHdoaWNoIGhhdmUgYXJndW1lbnRzICgnLS1teS1vcHQgc29tZXBhdGgnKSB3ZSBtaWdodCBn
ZXQgc29tZQotICAgICAgICAgICAgZmFsc2UgcG9zaXRpdmVzLiAgQWxsIGJ1aWx0aW4gYW5kIDNy
ZCBwYXJ0eSBwbHVnaW5zIHdpbGwgaGF2ZQotICAgICAgICAgICAgYmVlbiBsb2FkZWQsIGhvd2V2
ZXIsIHNvIGNvbW1vbiBvcHRpb25zIHdpbGwgbm90IGNvbmZ1c2Ugb3VyIGxvZ2ljCi0gICAgICAg
ICAgICBoZXJlLgotICAgICAgICAiIiIKLSAgICAgICAgY3VycmVudCA9IHB5LnBhdGgubG9jYWwo
KQotICAgICAgICBzZWxmLl9jb25mY3V0ZGlyID0gY3VycmVudC5qb2luKG5hbWVzcGFjZS5jb25m
Y3V0ZGlyLCBhYnM9VHJ1ZSkgXAotICAgICAgICAgICAgaWYgbmFtZXNwYWNlLmNvbmZjdXRkaXIg
ZWxzZSBOb25lCi0gICAgICAgIHNlbGYuX25vY29uZnRlc3QgPSBuYW1lc3BhY2Uubm9jb25mdGVz
dAotICAgICAgICB0ZXN0cGF0aHMgPSBuYW1lc3BhY2UuZmlsZV9vcl9kaXIKLSAgICAgICAgZm91
bmRhbmNob3IgPSBGYWxzZQotICAgICAgICBmb3IgcGF0aCBpbiB0ZXN0cGF0aHM6Ci0gICAgICAg
ICAgICBwYXRoID0gc3RyKHBhdGgpCi0gICAgICAgICAgICAjIHJlbW92ZSBub2RlLWlkIHN5bnRh
eAotICAgICAgICAgICAgaSA9IHBhdGguZmluZCgiOjoiKQotICAgICAgICAgICAgaWYgaSAhPSAt
MToKLSAgICAgICAgICAgICAgICBwYXRoID0gcGF0aFs6aV0KLSAgICAgICAgICAgIGFuY2hvciA9
IGN1cnJlbnQuam9pbihwYXRoLCBhYnM9MSkKLSAgICAgICAgICAgIGlmIGV4aXN0cyhhbmNob3Ip
OiAgIyB3ZSBmb3VuZCBzb21lIGZpbGUgb2JqZWN0Ci0gICAgICAgICAgICAgICAgc2VsZi5fdHJ5
X2xvYWRfY29uZnRlc3QoYW5jaG9yKQotICAgICAgICAgICAgICAgIGZvdW5kYW5jaG9yID0gVHJ1
ZQotICAgICAgICBpZiBub3QgZm91bmRhbmNob3I6Ci0gICAgICAgICAgICBzZWxmLl90cnlfbG9h
ZF9jb25mdGVzdChjdXJyZW50KQotCi0gICAgZGVmIF90cnlfbG9hZF9jb25mdGVzdChzZWxmLCBh
bmNob3IpOgotICAgICAgICBzZWxmLl9nZXRjb25mdGVzdG1vZHVsZXMoYW5jaG9yKQotICAgICAg
ICAjIGxldCdzIGFsc28gY29uc2lkZXIgdGVzdCogc3ViZGlycwotICAgICAgICBpZiBhbmNob3Iu
Y2hlY2soZGlyPTEpOgotICAgICAgICAgICAgZm9yIHggaW4gYW5jaG9yLmxpc3RkaXIoInRlc3Qq
Iik6Ci0gICAgICAgICAgICAgICAgaWYgeC5jaGVjayhkaXI9MSk6Ci0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2dldGNvbmZ0ZXN0bW9kdWxlcyh4KQotCi0gICAgZGVmIF9nZXRjb25mdGVzdG1v
ZHVsZXMoc2VsZiwgcGF0aCk6Ci0gICAgICAgIGlmIHNlbGYuX25vY29uZnRlc3Q6Ci0gICAgICAg
ICAgICByZXR1cm4gW10KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Bh
dGgyY29uZm1vZHNbcGF0aF0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAg
aWYgcGF0aC5pc2ZpbGUoKToKLSAgICAgICAgICAgICAgICBjbGlzdCA9IHNlbGYuX2dldGNvbmZ0
ZXN0bW9kdWxlcyhwYXRoLmRpcnBhdGgoKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgIyBYWFggdGhlc2UgZGF5cyB3ZSBtYXkgcmF0aGVyIHdhbnQgdG8gdXNlIGNvbmZpZy5y
b290ZGlyCi0gICAgICAgICAgICAgICAgIyBhbmQgYWxsb3cgdXNlcnMgdG8gb3B0IGludG8gbG9v
a2luZyBpbnRvIHRoZSByb290ZGlyIHBhcmVudAotICAgICAgICAgICAgICAgICMgZGlyZWN0b3Jp
ZXMgaW5zdGVhZCBvZiByZXF1aXJpbmcgdG8gc3BlY2lmeSBjb25mY3V0ZGlyCi0gICAgICAgICAg
ICAgICAgY2xpc3QgPSBbXQotICAgICAgICAgICAgICAgIGZvciBwYXJlbnQgaW4gcGF0aC5wYXJ0
cygpOgotICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9jb25mY3V0ZGlyIGFuZCBzZWxmLl9j
b25mY3V0ZGlyLnJlbHRvKHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZQotICAgICAgICAgICAgICAgICAgICBjb25mdGVzdHBhdGggPSBwYXJlbnQuam9pbigiY29uZnRl
c3QucHkiKQotICAgICAgICAgICAgICAgICAgICBpZiBjb25mdGVzdHBhdGguaXNmaWxlKCk6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBtb2QgPSBzZWxmLl9pbXBvcnRjb25mdGVzdChjb25mdGVz
dHBhdGgpCi0gICAgICAgICAgICAgICAgICAgICAgICBjbGlzdC5hcHBlbmQobW9kKQotCi0gICAg
ICAgICAgICBzZWxmLl9wYXRoMmNvbmZtb2RzW3BhdGhdID0gY2xpc3QKLSAgICAgICAgICAgIHJl
dHVybiBjbGlzdAotCi0gICAgZGVmIF9yZ2V0X3dpdGhfY29uZm1vZChzZWxmLCBuYW1lLCBwYXRo
KToKLSAgICAgICAgbW9kdWxlcyA9IHNlbGYuX2dldGNvbmZ0ZXN0bW9kdWxlcyhwYXRoKQotICAg
ICAgICBmb3IgbW9kIGluIHJldmVyc2VkKG1vZHVsZXMpOgotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIHJldHVybiBtb2QsIGdldGF0dHIobW9kLCBuYW1lKQotICAgICAgICAgICAg
ZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg
IHJhaXNlIEtleUVycm9yKG5hbWUpCi0KLSAgICBkZWYgX2ltcG9ydGNvbmZ0ZXN0KHNlbGYsIGNv
bmZ0ZXN0cGF0aCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9jb25m
dGVzdHBhdGgybW9kW2NvbmZ0ZXN0cGF0aF0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAg
ICAgICAgICAgcGtncGF0aCA9IGNvbmZ0ZXN0cGF0aC5weXBrZ3BhdGgoKQotICAgICAgICAgICAg
aWYgcGtncGF0aCBpcyBOb25lOgotICAgICAgICAgICAgICAgIF9lbnN1cmVfcmVtb3ZlZF9zeXNt
b2R1bGUoY29uZnRlc3RwYXRoLnB1cmViYXNlbmFtZSkKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICBtb2QgPSBjb25mdGVzdHBhdGgucHlpbXBvcnQoKQotICAgICAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICByYWlzZSBDb25mdGVzdEltcG9ydEZhaWx1
cmUoY29uZnRlc3RwYXRoLCBzeXMuZXhjX2luZm8oKSkKLQotICAgICAgICAgICAgc2VsZi5fY29u
ZnRlc3RfcGx1Z2lucy5hZGQobW9kKQotICAgICAgICAgICAgc2VsZi5fY29uZnRlc3RwYXRoMm1v
ZFtjb25mdGVzdHBhdGhdID0gbW9kCi0gICAgICAgICAgICBkaXJwYXRoID0gY29uZnRlc3RwYXRo
LmRpcnBhdGgoKQotICAgICAgICAgICAgaWYgZGlycGF0aCBpbiBzZWxmLl9wYXRoMmNvbmZtb2Rz
OgotICAgICAgICAgICAgICAgIGZvciBwYXRoLCBtb2RzIGluIHNlbGYuX3BhdGgyY29uZm1vZHMu
aXRlbXMoKToKLSAgICAgICAgICAgICAgICAgICAgaWYgcGF0aCBhbmQgcGF0aC5yZWx0byhkaXJw
YXRoKSBvciBwYXRoID09IGRpcnBhdGg6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
bW9kIG5vdCBpbiBtb2RzCi0gICAgICAgICAgICAgICAgICAgICAgICBtb2RzLmFwcGVuZChtb2Qp
Ci0gICAgICAgICAgICBzZWxmLnRyYWNlKCJsb2FkZWQgY29uZnRlc3Rtb2R1bGUgJXIiICUgKG1v
ZCkpCi0gICAgICAgICAgICBzZWxmLmNvbnNpZGVyX2NvbmZ0ZXN0KG1vZCkKLSAgICAgICAgICAg
IHJldHVybiBtb2QKLQotICAgICMKLSAgICAjIEFQSSBmb3IgYm9vdHN0cmFwcGluZyBwbHVnaW4g
bG9hZGluZwotICAgICMKLSAgICAjCi0KLSAgICBkZWYgY29uc2lkZXJfcHJlcGFyc2Uoc2VsZiwg
YXJncyk6Ci0gICAgICAgIGZvciBvcHQxLCBvcHQyIGluIHppcChhcmdzLCBhcmdzWzE6XSk6Ci0g
ICAgICAgICAgICBpZiBvcHQxID09ICItcCI6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb25zaWRl
cl9wbHVnaW5hcmcob3B0MikKLQotICAgIGRlZiBjb25zaWRlcl9wbHVnaW5hcmcoc2VsZiwgYXJn
KToKLSAgICAgICAgaWYgYXJnLnN0YXJ0c3dpdGgoIm5vOiIpOgotICAgICAgICAgICAgbmFtZSA9
IGFyZ1szOl0KLSAgICAgICAgICAgIHNlbGYuc2V0X2Jsb2NrZWQobmFtZSkKLSAgICAgICAgICAg
IGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF8iKToKLSAgICAgICAgICAgICAgICBzZWxm
LnNldF9ibG9ja2VkKCJweXRlc3RfIiArIG5hbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBzZWxmLmltcG9ydF9wbHVnaW4oYXJnKQotCi0gICAgZGVmIGNvbnNpZGVyX2NvbmZ0ZXN0KHNl
bGYsIGNvbmZ0ZXN0bW9kdWxlKToKLSAgICAgICAgc2VsZi5yZWdpc3Rlcihjb25mdGVzdG1vZHVs
ZSwgbmFtZT1jb25mdGVzdG1vZHVsZS5fX2ZpbGVfXykKLQotICAgIGRlZiBjb25zaWRlcl9lbnYo
c2VsZik6Ci0gICAgICAgIHNlbGYuX2ltcG9ydF9wbHVnaW5fc3BlY3Mob3MuZW52aXJvbi5nZXQo
IlBZVEVTVF9QTFVHSU5TIikpCi0KLSAgICBkZWYgY29uc2lkZXJfbW9kdWxlKHNlbGYsIG1vZCk6
Ci0gICAgICAgIHNlbGYuX2ltcG9ydF9wbHVnaW5fc3BlY3MoZ2V0YXR0cihtb2QsICdweXRlc3Rf
cGx1Z2lucycsIFtdKSkKLQotICAgIGRlZiBfaW1wb3J0X3BsdWdpbl9zcGVjcyhzZWxmLCBzcGVj
KToKLSAgICAgICAgcGx1Z2lucyA9IF9nZXRfcGx1Z2luX3NwZWNzX2FzX2xpc3Qoc3BlYykKLSAg
ICAgICAgZm9yIGltcG9ydF9zcGVjIGluIHBsdWdpbnM6Ci0gICAgICAgICAgICBzZWxmLmltcG9y
dF9wbHVnaW4oaW1wb3J0X3NwZWMpCi0KLSAgICBkZWYgaW1wb3J0X3BsdWdpbihzZWxmLCBtb2Ru
YW1lKToKLSAgICAgICAgIyBtb3N0IG9mdGVuIG1vZG5hbWUgcmVmZXJzIHRvIGJ1aWx0aW4gbW9k
dWxlcywgZS5nLiAicHl0ZXN0ZXIiLAotICAgICAgICAjICJ0ZXJtaW5hbCIgb3IgImNhcHR1cmUi
LiAgVGhvc2UgcGx1Z2lucyBhcmUgcmVnaXN0ZXJlZCB1bmRlciB0aGVpcgotICAgICAgICAjIGJh
c2VuYW1lIGZvciBoaXN0b3JpYyBwdXJwb3NlcyBidXQgbXVzdCBiZSBpbXBvcnRlZCB3aXRoIHRo
ZQotICAgICAgICAjIF9weXRlc3QgcHJlZml4LgotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSht
b2RuYW1lLCAoc2l4LnRleHRfdHlwZSwgc3RyKSksICJtb2R1bGUgbmFtZSBhcyB0ZXh0IHJlcXVp
cmVkLCBnb3QgJXIiICUgbW9kbmFtZQotICAgICAgICBtb2RuYW1lID0gc3RyKG1vZG5hbWUpCi0g
ICAgICAgIGlmIHNlbGYuaXNfYmxvY2tlZChtb2RuYW1lKSBvciBzZWxmLmdldF9wbHVnaW4obW9k
bmFtZSkgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgbW9kbmFt
ZSBpbiBidWlsdGluX3BsdWdpbnM6Ci0gICAgICAgICAgICBpbXBvcnRzcGVjID0gIl9weXRlc3Qu
IiArIG1vZG5hbWUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGltcG9ydHNwZWMgPSBtb2Ru
YW1lCi0gICAgICAgIHNlbGYucmV3cml0ZV9ob29rLm1hcmtfcmV3cml0ZShpbXBvcnRzcGVjKQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBfX2ltcG9ydF9fKGltcG9ydHNwZWMpCi0gICAgICAg
IGV4Y2VwdCBJbXBvcnRFcnJvciBhcyBlOgotICAgICAgICAgICAgbmV3X2V4Y190eXBlID0gSW1w
b3J0RXJyb3IKLSAgICAgICAgICAgIG5ld19leGNfbWVzc2FnZSA9ICdFcnJvciBpbXBvcnRpbmcg
cGx1Z2luICIlcyI6ICVzJyAlIChtb2RuYW1lLCBzYWZlX3N0cihlLmFyZ3NbMF0pKQotICAgICAg
ICAgICAgbmV3X2V4YyA9IG5ld19leGNfdHlwZShuZXdfZXhjX21lc3NhZ2UpCi0KLSAgICAgICAg
ICAgIHNpeC5yZXJhaXNlKG5ld19leGNfdHlwZSwgbmV3X2V4Yywgc3lzLmV4Y19pbmZvKClbMl0p
Ci0KLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAotICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIocHl0ZXN0LCAnc2tpcCcpIG9yIG5vdCBp
c2luc3RhbmNlKGUsIHB5dGVzdC5za2lwLkV4Y2VwdGlvbik6Ci0gICAgICAgICAgICAgICAgcmFp
c2UKLSAgICAgICAgICAgIHNlbGYuX3dhcm4oInNraXBwZWQgcGx1Z2luICVyOiAlcyIgJSAoKG1v
ZG5hbWUsIGUubXNnKSkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBtb2QgPSBzeXMubW9k
dWxlc1tpbXBvcnRzcGVjXQotICAgICAgICAgICAgc2VsZi5yZWdpc3Rlcihtb2QsIG1vZG5hbWUp
Ci0KLQotZGVmIF9nZXRfcGx1Z2luX3NwZWNzX2FzX2xpc3Qoc3BlY3MpOgotICAgICIiIgotICAg
IFBhcnNlcyBhIGxpc3Qgb2YgInBsdWdpbiBzcGVjcyIgYW5kIHJldHVybnMgYSBsaXN0IG9mIHBs
dWdpbiBuYW1lcy4KLQotICAgIFBsdWdpbiBzcGVjcyBjYW4gYmUgZ2l2ZW4gYXMgYSBsaXN0IG9m
IHN0cmluZ3Mgc2VwYXJhdGVkIGJ5ICIsIiBvciBhbHJlYWR5IGFzIGEgbGlzdC90dXBsZSBpbgot
ICAgIHdoaWNoIGNhc2UgaXQgaXMgcmV0dXJuZWQgYXMgYSBsaXN0LiBTcGVjcyBjYW4gYWxzbyBi
ZSBgTm9uZWAgaW4gd2hpY2ggY2FzZSBhbgotICAgIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQuCi0g
ICAgIiIiCi0gICAgaWYgc3BlY3MgaXMgbm90IE5vbmU6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2Uo
c3BlY3MsIHN0cik6Ci0gICAgICAgICAgICBzcGVjcyA9IHNwZWNzLnNwbGl0KCcsJykgaWYgc3Bl
Y3MgZWxzZSBbXQotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzcGVjcywgKGxpc3QsIHR1cGxl
KSk6Ci0gICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKCJQbHVnaW4gc3BlY3MgbXVzdCBiZSBh
ICcsJy1zZXBhcmF0ZWQgc3RyaW5nIG9yIGEgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibGlzdC90dXBsZSBvZiBzdHJpbmdzIGZvciBwbHVnaW4gbmFtZXMuIEdpdmVuOiAlciIgJSBz
cGVjcykKLSAgICAgICAgcmV0dXJuIGxpc3Qoc3BlY3MpCi0gICAgcmV0dXJuIFtdCi0KLQotY2xh
c3MgUGFyc2VyOgotICAgICIiIiBQYXJzZXIgZm9yIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgYW5k
IGluaS1maWxlIHZhbHVlcy4KLQotICAgIDppdmFyIGV4dHJhX2luZm86IGRpY3Qgb2YgZ2VuZXJp
YyBwYXJhbSAtPiB2YWx1ZSB0byBkaXNwbGF5IGluIGNhc2UKLSAgICAgICAgdGhlcmUncyBhbiBl
cnJvciBwcm9jZXNzaW5nIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgotICAgICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHVzYWdlPU5vbmUsIHByb2Nlc3NvcHQ9Tm9uZSk6Ci0gICAg
ICAgIHNlbGYuX2Fub255bW91cyA9IE9wdGlvbkdyb3VwKCJjdXN0b20gb3B0aW9ucyIsIHBhcnNl
cj1zZWxmKQotICAgICAgICBzZWxmLl9ncm91cHMgPSBbXQotICAgICAgICBzZWxmLl9wcm9jZXNz
b3B0ID0gcHJvY2Vzc29wdAotICAgICAgICBzZWxmLl91c2FnZSA9IHVzYWdlCi0gICAgICAgIHNl
bGYuX2luaWRpY3QgPSB7fQotICAgICAgICBzZWxmLl9pbmluYW1lcyA9IFtdCi0gICAgICAgIHNl
bGYuZXh0cmFfaW5mbyA9IHt9Ci0KLSAgICBkZWYgcHJvY2Vzc29wdGlvbihzZWxmLCBvcHRpb24p
OgotICAgICAgICBpZiBzZWxmLl9wcm9jZXNzb3B0OgotICAgICAgICAgICAgaWYgb3B0aW9uLmRl
c3Q6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc29wdChvcHRpb24pCi0KLSAgICBkZWYg
Z2V0Z3JvdXAoc2VsZiwgbmFtZSwgZGVzY3JpcHRpb249IiIsIGFmdGVyPU5vbmUpOgotICAgICAg
ICAiIiIgZ2V0IChvciBjcmVhdGUpIGEgbmFtZWQgb3B0aW9uIEdyb3VwLgotCi0gICAgICAgIDpu
YW1lOiBuYW1lIG9mIHRoZSBvcHRpb24gZ3JvdXAuCi0gICAgICAgIDpkZXNjcmlwdGlvbjogbG9u
ZyBkZXNjcmlwdGlvbiBmb3IgLS1oZWxwIG91dHB1dC4KLSAgICAgICAgOmFmdGVyOiBuYW1lIG9m
IG90aGVyIGdyb3VwLCB1c2VkIGZvciBvcmRlcmluZyAtLWhlbHAgb3V0cHV0LgotCi0gICAgICAg
IFRoZSByZXR1cm5lZCBncm91cCBvYmplY3QgaGFzIGFuIGBgYWRkb3B0aW9uYGAgbWV0aG9kIHdp
dGggdGhlIHNhbWUKLSAgICAgICAgc2lnbmF0dXJlIGFzIDpweTpmdW5jOmBwYXJzZXIuYWRkb3B0
aW9uCi0gICAgICAgIDxfcHl0ZXN0LmNvbmZpZy5QYXJzZXIuYWRkb3B0aW9uPmAgYnV0IHdpbGwg
YmUgc2hvd24gaW4gdGhlCi0gICAgICAgIHJlc3BlY3RpdmUgZ3JvdXAgaW4gdGhlIG91dHB1dCBv
ZiBgYHB5dGVzdC4gLS1oZWxwYGAuCi0gICAgICAgICIiIgotICAgICAgICBmb3IgZ3JvdXAgaW4g
c2VsZi5fZ3JvdXBzOgotICAgICAgICAgICAgaWYgZ3JvdXAubmFtZSA9PSBuYW1lOgotICAgICAg
ICAgICAgICAgIHJldHVybiBncm91cAotICAgICAgICBncm91cCA9IE9wdGlvbkdyb3VwKG5hbWUs
IGRlc2NyaXB0aW9uLCBwYXJzZXI9c2VsZikKLSAgICAgICAgaSA9IDAKLSAgICAgICAgZm9yIGks
IGdycCBpbiBlbnVtZXJhdGUoc2VsZi5fZ3JvdXBzKToKLSAgICAgICAgICAgIGlmIGdycC5uYW1l
ID09IGFmdGVyOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIHNlbGYuX2dyb3Vwcy5p
bnNlcnQoaSArIDEsIGdyb3VwKQotICAgICAgICByZXR1cm4gZ3JvdXAKLQotICAgIGRlZiBhZGRv
cHRpb24oc2VsZiwgKm9wdHMsICoqYXR0cnMpOgotICAgICAgICAiIiIgcmVnaXN0ZXIgYSBjb21t
YW5kIGxpbmUgb3B0aW9uLgotCi0gICAgICAgIDpvcHRzOiBvcHRpb24gbmFtZXMsIGNhbiBiZSBz
aG9ydCBvciBsb25nIG9wdGlvbnMuCi0gICAgICAgIDphdHRyczogc2FtZSBhdHRyaWJ1dGVzIHdo
aWNoIHRoZSBgYGFkZF9vcHRpb24oKWBgIGZ1bmN0aW9uIG9mIHRoZQotICAgICAgICAgICBgYXJn
cGFyc2UgbGlicmFyeQotICAgICAgICAgICA8aHR0cDovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJh
cnkvYXJncGFyc2UuaHRtbD5gXwotICAgICAgICAgICBhY2NlcHRzLgotCi0gICAgICAgIEFmdGVy
IGNvbW1hbmQgbGluZSBwYXJzaW5nIG9wdGlvbnMgYXJlIGF2YWlsYWJsZSBvbiB0aGUgcHl0ZXN0
IGNvbmZpZwotICAgICAgICBvYmplY3QgdmlhIGBgY29uZmlnLm9wdGlvbi5OQU1FYGAgd2hlcmUg
YGBOQU1FYGAgaXMgdXN1YWxseSBzZXQKLSAgICAgICAgYnkgcGFzc2luZyBhIGBgZGVzdGBgIGF0
dHJpYnV0ZSwgZm9yIGV4YW1wbGUKLSAgICAgICAgYGBhZGRvcHRpb24oIi0tbG9uZyIsIGRlc3Q9
Ik5BTUUiLCAuLi4pYGAuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9hbm9ueW1vdXMuYWRk
b3B0aW9uKCpvcHRzLCAqKmF0dHJzKQotCi0gICAgZGVmIHBhcnNlKHNlbGYsIGFyZ3MsIG5hbWVz
cGFjZT1Ob25lKToKLSAgICAgICAgZnJvbSBfcHl0ZXN0Ll9hcmdjb21wbGV0ZSBpbXBvcnQgdHJ5
X2FyZ2NvbXBsZXRlCi0gICAgICAgIHNlbGYub3B0cGFyc2VyID0gc2VsZi5fZ2V0cGFyc2VyKCkK
LSAgICAgICAgdHJ5X2FyZ2NvbXBsZXRlKHNlbGYub3B0cGFyc2VyKQotICAgICAgICByZXR1cm4g
c2VsZi5vcHRwYXJzZXIucGFyc2VfYXJncyhbc3RyKHgpIGZvciB4IGluIGFyZ3NdLCBuYW1lc3Bh
Y2U9bmFtZXNwYWNlKQotCi0gICAgZGVmIF9nZXRwYXJzZXIoc2VsZik6Ci0gICAgICAgIGZyb20g
X3B5dGVzdC5fYXJnY29tcGxldGUgaW1wb3J0IGZpbGVzY29tcGxldGVyCi0gICAgICAgIG9wdHBh
cnNlciA9IE15T3B0aW9uUGFyc2VyKHNlbGYsIHNlbGYuZXh0cmFfaW5mbykKLSAgICAgICAgZ3Jv
dXBzID0gc2VsZi5fZ3JvdXBzICsgW3NlbGYuX2Fub255bW91c10KLSAgICAgICAgZm9yIGdyb3Vw
IGluIGdyb3VwczoKLSAgICAgICAgICAgIGlmIGdyb3VwLm9wdGlvbnM6Ci0gICAgICAgICAgICAg
ICAgZGVzYyA9IGdyb3VwLmRlc2NyaXB0aW9uIG9yIGdyb3VwLm5hbWUKLSAgICAgICAgICAgICAg
ICBhcmdncm91cCA9IG9wdHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAoZGVzYykKLSAgICAgICAg
ICAgICAgICBmb3Igb3B0aW9uIGluIGdyb3VwLm9wdGlvbnM6Ci0gICAgICAgICAgICAgICAgICAg
IG4gPSBvcHRpb24ubmFtZXMoKQotICAgICAgICAgICAgICAgICAgICBhID0gb3B0aW9uLmF0dHJz
KCkKLSAgICAgICAgICAgICAgICAgICAgYXJnZ3JvdXAuYWRkX2FyZ3VtZW50KCpuLCAqKmEpCi0g
ICAgICAgICMgYmFzaCBsaWtlIGF1dG9jb21wbGV0aW9uIGZvciBkaXJzIChhcHBlbmRpbmcgJy8n
KQotICAgICAgICBvcHRwYXJzZXIuYWRkX2FyZ3VtZW50KEZJTEVfT1JfRElSLCBuYXJncz0nKicp
LmNvbXBsZXRlciA9IGZpbGVzY29tcGxldGVyCi0gICAgICAgIHJldHVybiBvcHRwYXJzZXIKLQot
ICAgIGRlZiBwYXJzZV9zZXRvcHRpb24oc2VsZiwgYXJncywgb3B0aW9uLCBuYW1lc3BhY2U9Tm9u
ZSk6Ci0gICAgICAgIHBhcnNlZG9wdGlvbiA9IHNlbGYucGFyc2UoYXJncywgbmFtZXNwYWNlPW5h
bWVzcGFjZSkKLSAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHBhcnNlZG9wdGlvbi5fX2RpY3Rf
Xy5pdGVtcygpOgotICAgICAgICAgICAgc2V0YXR0cihvcHRpb24sIG5hbWUsIHZhbHVlKQotICAg
ICAgICByZXR1cm4gZ2V0YXR0cihwYXJzZWRvcHRpb24sIEZJTEVfT1JfRElSKQotCi0gICAgZGVm
IHBhcnNlX2tub3duX2FyZ3Moc2VsZiwgYXJncywgbmFtZXNwYWNlPU5vbmUpOgotICAgICAgICAi
IiJwYXJzZXMgYW5kIHJldHVybnMgYSBuYW1lc3BhY2Ugb2JqZWN0IHdpdGgga25vd24gYXJndW1l
bnRzIGF0IHRoaXMKLSAgICAgICAgcG9pbnQuCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4g
c2VsZi5wYXJzZV9rbm93bl9hbmRfdW5rbm93bl9hcmdzKGFyZ3MsIG5hbWVzcGFjZT1uYW1lc3Bh
Y2UpWzBdCi0KLSAgICBkZWYgcGFyc2Vfa25vd25fYW5kX3Vua25vd25fYXJncyhzZWxmLCBhcmdz
LCBuYW1lc3BhY2U9Tm9uZSk6Ci0gICAgICAgICIiInBhcnNlcyBhbmQgcmV0dXJucyBhIG5hbWVz
cGFjZSBvYmplY3Qgd2l0aCBrbm93biBhcmd1bWVudHMsIGFuZAotICAgICAgICB0aGUgcmVtYWlu
aW5nIGFyZ3VtZW50cyB1bmtub3duIGF0IHRoaXMgcG9pbnQuCi0gICAgICAgICIiIgotICAgICAg
ICBvcHRwYXJzZXIgPSBzZWxmLl9nZXRwYXJzZXIoKQotICAgICAgICBhcmdzID0gW3N0cih4KSBm
b3IgeCBpbiBhcmdzXQotICAgICAgICByZXR1cm4gb3B0cGFyc2VyLnBhcnNlX2tub3duX2FyZ3Mo
YXJncywgbmFtZXNwYWNlPW5hbWVzcGFjZSkKLQotICAgIGRlZiBhZGRpbmkoc2VsZiwgbmFtZSwg
aGVscCwgdHlwZT1Ob25lLCBkZWZhdWx0PU5vbmUpOgotICAgICAgICAiIiIgcmVnaXN0ZXIgYW4g
aW5pLWZpbGUgb3B0aW9uLgotCi0gICAgICAgIDpuYW1lOiBuYW1lIG9mIHRoZSBpbmktdmFyaWFi
bGUKLSAgICAgICAgOnR5cGU6IHR5cGUgb2YgdGhlIHZhcmlhYmxlLCBjYW4gYmUgYGBwYXRobGlz
dGBgLCBgYGFyZ3NgYCwgYGBsaW5lbGlzdGBgCi0gICAgICAgICAgICAgICBvciBgYGJvb2xgYC4K
LSAgICAgICAgOmRlZmF1bHQ6IGRlZmF1bHQgdmFsdWUgaWYgbm8gaW5pLWZpbGUgb3B0aW9uIGV4
aXN0cyBidXQgaXMgcXVlcmllZC4KLQotICAgICAgICBUaGUgdmFsdWUgb2YgaW5pLXZhcmlhYmxl
cyBjYW4gYmUgcmV0cmlldmVkIHZpYSBhIGNhbGwgdG8KLSAgICAgICAgOnB5OmZ1bmM6YGNvbmZp
Zy5nZXRpbmkobmFtZSkgPF9weXRlc3QuY29uZmlnLkNvbmZpZy5nZXRpbmk+YC4KLSAgICAgICAg
IiIiCi0gICAgICAgIGFzc2VydCB0eXBlIGluIChOb25lLCAicGF0aGxpc3QiLCAiYXJncyIsICJs
aW5lbGlzdCIsICJib29sIikKLSAgICAgICAgc2VsZi5faW5pZGljdFtuYW1lXSA9IChoZWxwLCB0
eXBlLCBkZWZhdWx0KQotICAgICAgICBzZWxmLl9pbmluYW1lcy5hcHBlbmQobmFtZSkKLQotCi1j
bGFzcyBBcmd1bWVudEVycm9yKEV4Y2VwdGlvbik6Ci0gICAgIiIiCi0gICAgUmFpc2VkIGlmIGFu
IEFyZ3VtZW50IGluc3RhbmNlIGlzIGNyZWF0ZWQgd2l0aCBpbnZhbGlkIG9yCi0gICAgaW5jb25z
aXN0ZW50IGFyZ3VtZW50cy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2cs
IG9wdGlvbik6Ci0gICAgICAgIHNlbGYubXNnID0gbXNnCi0gICAgICAgIHNlbGYub3B0aW9uX2lk
ID0gc3RyKG9wdGlvbikKLQotICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAgICBpZiBzZWxm
Lm9wdGlvbl9pZDoKLSAgICAgICAgICAgIHJldHVybiAib3B0aW9uICVzOiAlcyIgJSAoc2VsZi5v
cHRpb25faWQsIHNlbGYubXNnKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHNl
bGYubXNnCi0KLQotY2xhc3MgQXJndW1lbnQ6Ci0gICAgIiIiY2xhc3MgdGhhdCBtaW1pY3MgdGhl
IG5lY2Vzc2FyeSBiZWhhdmlvdXIgb2Ygb3B0cGFyc2UuT3B0aW9uCi0KLSAgICBpdHMgY3VycmVu
dGx5IGEgbGVhc3QgZWZmb3J0IGltcGxlbWVudGF0aW9uCi0gICAgYW5kIGlnbm9yaW5nIGNob2lj
ZXMgYW5kIGludGVnZXIgcHJlZml4ZXMKLSAgICBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xp
YnJhcnkvb3B0cGFyc2UuaHRtbCNvcHRwYXJzZS1zdGFuZGFyZC1vcHRpb24tdHlwZXMKLSAgICAi
IiIKLSAgICBfdHlwX21hcCA9IHsKLSAgICAgICAgJ2ludCc6IGludCwKLSAgICAgICAgJ3N0cmlu
Zyc6IHN0ciwKLSAgICAgICAgJ2Zsb2F0JzogZmxvYXQsCi0gICAgICAgICdjb21wbGV4JzogY29t
cGxleCwKLSAgICB9Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgKm5hbWVzLCAqKmF0dHJzKToK
LSAgICAgICAgIiIic3RvcmUgcGFybXMgaW4gcHJpdmF0ZSB2YXJzIGZvciB1c2UgaW4gYWRkX2Fy
Z3VtZW50IiIiCi0gICAgICAgIHNlbGYuX2F0dHJzID0gYXR0cnMKLSAgICAgICAgc2VsZi5fc2hv
cnRfb3B0cyA9IFtdCi0gICAgICAgIHNlbGYuX2xvbmdfb3B0cyA9IFtdCi0gICAgICAgIHNlbGYu
ZGVzdCA9IGF0dHJzLmdldCgnZGVzdCcpCi0gICAgICAgIGlmICclZGVmYXVsdCcgaW4gKGF0dHJz
LmdldCgnaGVscCcpIG9yICcnKToKLSAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCi0gICAgICAg
ICAgICAgICAgJ3B5dGVzdCBub3cgdXNlcyBhcmdwYXJzZS4gIiVkZWZhdWx0IiBzaG91bGQgYmUn
Ci0gICAgICAgICAgICAgICAgJyBjaGFuZ2VkIHRvICIlKGRlZmF1bHQpcyIgJywKLSAgICAgICAg
ICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsCi0gICAgICAgICAgICAgICAgc3RhY2tsZXZlbD0z
KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0eXAgPSBhdHRyc1sndHlwZSddCi0gICAgICAg
IGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICMgdGhpcyBtaWdodCByYWlzZSBhIGtleWVycm9yIGFzIHdlbGwsIGRvbid0IHdhbnQg
dG8gY2F0Y2ggdGhhdAotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh0eXAsIHNpeC5zdHJpbmdf
dHlwZXMpOgotICAgICAgICAgICAgICAgIGlmIHR5cCA9PSAnY2hvaWNlJzoKLSAgICAgICAgICAg
ICAgICAgICAgd2FybmluZ3Mud2FybigKLSAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlIGFy
Z3VtZW50IHRvIGFkZG9wdGlvbigpIGlzIGEgc3RyaW5nICVyLicKLSAgICAgICAgICAgICAgICAg
ICAgICAgICcgRm9yIHBhcnNlYXJnIHRoaXMgaXMgb3B0aW9uYWwgYW5kIHdoZW4gc3VwcGxpZWQn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAnIHNob3VsZCBiZSBhIHR5cGUuJwotICAgICAgICAg
ICAgICAgICAgICAgICAgJyAob3B0aW9uczogJXMpJyAlICh0eXAsIG5hbWVzKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YWNrbGV2ZWw9MykKLSAgICAgICAgICAgICAgICAgICAgIyBhcmdwYXJzZSBleHBlY3Rz
IGEgdHlwZSBoZXJlIHRha2UgaXQgZnJvbQotICAgICAgICAgICAgICAgICAgICAjIHRoZSB0eXBl
IG9mIHRoZSBmaXJzdCBlbGVtZW50Ci0gICAgICAgICAgICAgICAgICAgIGF0dHJzWyd0eXBlJ10g
PSB0eXBlKGF0dHJzWydjaG9pY2VzJ11bMF0pCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigKLSAgICAgICAgICAgICAgICAgICAgICAgICd0
eXBlIGFyZ3VtZW50IHRvIGFkZG9wdGlvbigpIGlzIGEgc3RyaW5nICVyLicKLSAgICAgICAgICAg
ICAgICAgICAgICAgICcgRm9yIHBhcnNlYXJnIHRoaXMgc2hvdWxkIGJlIGEgdHlwZS4nCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnIChvcHRpb25zOiAlcyknICUgKHR5cCwgbmFtZXMpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLAotICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhY2tsZXZlbD0zKQotICAgICAgICAgICAgICAgICAgICBhdHRyc1sndHlwZSdd
ID0gQXJndW1lbnQuX3R5cF9tYXBbdHlwXQotICAgICAgICAgICAgICAgICMgdXNlZCBpbiB0ZXN0
X3BhcnNlb3B0IC0+IHRlc3RfcGFyc2VfZGVmYXVsdGdldHRlcgotICAgICAgICAgICAgICAgIHNl
bGYudHlwZSA9IGF0dHJzWyd0eXBlJ10KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgc2VsZi50eXBlID0gdHlwCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgYXR0cmlidXRl
IGV4aXN0ZW5jZSBpcyB0ZXN0ZWQgaW4gQ29uZmlnLl9wcm9jZXNzb3B0Ci0gICAgICAgICAgICBz
ZWxmLmRlZmF1bHQgPSBhdHRyc1snZGVmYXVsdCddCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoK
LSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgc2VsZi5fc2V0X29wdF9zdHJpbmdzKG5hbWVzKQot
ICAgICAgICBpZiBub3Qgc2VsZi5kZXN0OgotICAgICAgICAgICAgaWYgc2VsZi5fbG9uZ19vcHRz
OgotICAgICAgICAgICAgICAgIHNlbGYuZGVzdCA9IHNlbGYuX2xvbmdfb3B0c1swXVsyOl0ucmVw
bGFjZSgnLScsICdfJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgICAgICBzZWxmLmRlc3QgPSBzZWxmLl9zaG9ydF9vcHRzWzBdWzE6XQot
ICAgICAgICAgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgotICAgICAgICAgICAgICAgICAgICBy
YWlzZSBBcmd1bWVudEVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ25lZWQgYSBsb25n
IG9yIHNob3J0IG9wdGlvbicsIHNlbGYpCi0KLSAgICBkZWYgbmFtZXMoc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLl9zaG9ydF9vcHRzICsgc2VsZi5fbG9uZ19vcHRzCi0KLSAgICBkZWYgYXR0
cnMoc2VsZik6Ci0gICAgICAgICMgdXBkYXRlIGFueSBhdHRyaWJ1dGVzIHNldCBieSBwcm9jZXNz
b3B0Ci0gICAgICAgIGF0dHJzID0gJ2RlZmF1bHQgZGVzdCBoZWxwJy5zcGxpdCgpCi0gICAgICAg
IGlmIHNlbGYuZGVzdDoKLSAgICAgICAgICAgIGF0dHJzLmFwcGVuZChzZWxmLmRlc3QpCi0gICAg
ICAgIGZvciBhdHRyIGluIGF0dHJzOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IHNlbGYuX2F0dHJzW2F0dHJdID0gZ2V0YXR0cihzZWxmLCBhdHRyKQotICAgICAgICAgICAgZXhj
ZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgaWYgc2Vs
Zi5fYXR0cnMuZ2V0KCdoZWxwJyk6Ci0gICAgICAgICAgICBhID0gc2VsZi5fYXR0cnNbJ2hlbHAn
XQotICAgICAgICAgICAgYSA9IGEucmVwbGFjZSgnJWRlZmF1bHQnLCAnJShkZWZhdWx0KXMnKQot
ICAgICAgICAgICAgIyBhID0gYS5yZXBsYWNlKCclcHJvZycsICclKHByb2cpcycpCi0gICAgICAg
ICAgICBzZWxmLl9hdHRyc1snaGVscCddID0gYQotICAgICAgICByZXR1cm4gc2VsZi5fYXR0cnMK
LQotICAgIGRlZiBfc2V0X29wdF9zdHJpbmdzKHNlbGYsIG9wdHMpOgotICAgICAgICAiIiJkaXJl
Y3RseSBmcm9tIG9wdHBhcnNlCi0KLSAgICAgICAgbWlnaHQgbm90IGJlIG5lY2Vzc2FyeSBhcyB0
aGlzIGlzIHBhc3NlZCB0byBhcmdwYXJzZSBsYXRlciBvbiIiIgotICAgICAgICBmb3Igb3B0IGlu
IG9wdHM6Ci0gICAgICAgICAgICBpZiBsZW4ob3B0KSA8IDI6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgQXJndW1lbnRFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgImludmFsaWQgb3B0aW9uIHN0
cmluZyAlcjogIgotICAgICAgICAgICAgICAgICAgICAibXVzdCBiZSBhdCBsZWFzdCB0d28gY2hh
cmFjdGVycyBsb25nIiAlIG9wdCwgc2VsZikKLSAgICAgICAgICAgIGVsaWYgbGVuKG9wdCkgPT0g
MjoKLSAgICAgICAgICAgICAgICBpZiBub3QgKG9wdFswXSA9PSAiLSIgYW5kIG9wdFsxXSAhPSAi
LSIpOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBBcmd1bWVudEVycm9yKAotICAgICAgICAg
ICAgICAgICAgICAgICAgImludmFsaWQgc2hvcnQgb3B0aW9uIHN0cmluZyAlcjogIgotICAgICAg
ICAgICAgICAgICAgICAgICAgIm11c3QgYmUgb2YgdGhlIGZvcm0gLXgsICh4IGFueSBub24tZGFz
aCBjaGFyKSIgJSBvcHQsCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmKQotICAgICAgICAg
ICAgICAgIHNlbGYuX3Nob3J0X29wdHMuYXBwZW5kKG9wdCkKLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgaWYgbm90IChvcHRbMDoyXSA9PSAiLS0iIGFuZCBvcHRbMl0gIT0gIi0i
KToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJvcigKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJpbnZhbGlkIGxvbmcgb3B0aW9uIHN0cmluZyAlcjogIgotICAgICAgICAg
ICAgICAgICAgICAgICAgIm11c3Qgc3RhcnQgd2l0aCAtLSwgZm9sbG93ZWQgYnkgbm9uLWRhc2gi
ICUgb3B0LAotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZikKLSAgICAgICAgICAgICAgICBz
ZWxmLl9sb25nX29wdHMuYXBwZW5kKG9wdCkKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAg
ICAgICAgYXJncyA9IFtdCi0gICAgICAgIGlmIHNlbGYuX3Nob3J0X29wdHM6Ci0gICAgICAgICAg
ICBhcmdzICs9IFsnX3Nob3J0X29wdHM6ICcgKyByZXByKHNlbGYuX3Nob3J0X29wdHMpXQotICAg
ICAgICBpZiBzZWxmLl9sb25nX29wdHM6Ci0gICAgICAgICAgICBhcmdzICs9IFsnX2xvbmdfb3B0
czogJyArIHJlcHIoc2VsZi5fbG9uZ19vcHRzKV0KLSAgICAgICAgYXJncyArPSBbJ2Rlc3Q6ICcg
KyByZXByKHNlbGYuZGVzdCldCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3R5cGUnKToKLSAg
ICAgICAgICAgIGFyZ3MgKz0gWyd0eXBlOiAnICsgcmVwcihzZWxmLnR5cGUpXQotICAgICAgICBp
ZiBoYXNhdHRyKHNlbGYsICdkZWZhdWx0Jyk6Ci0gICAgICAgICAgICBhcmdzICs9IFsnZGVmYXVs
dDogJyArIHJlcHIoc2VsZi5kZWZhdWx0KV0KLSAgICAgICAgcmV0dXJuICdBcmd1bWVudCh7MH0p
Jy5mb3JtYXQoJywgJy5qb2luKGFyZ3MpKQotCi0KLWNsYXNzIE9wdGlvbkdyb3VwOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBkZXNjcmlwdGlvbj0iIiwgcGFyc2VyPU5vbmUpOgotICAg
ICAgICBzZWxmLm5hbWUgPSBuYW1lCi0gICAgICAgIHNlbGYuZGVzY3JpcHRpb24gPSBkZXNjcmlw
dGlvbgotICAgICAgICBzZWxmLm9wdGlvbnMgPSBbXQotICAgICAgICBzZWxmLnBhcnNlciA9IHBh
cnNlcgotCi0gICAgZGVmIGFkZG9wdGlvbihzZWxmLCAqb3B0bmFtZXMsICoqYXR0cnMpOgotICAg
ICAgICAiIiIgYWRkIGFuIG9wdGlvbiB0byB0aGlzIGdyb3VwLgotCi0gICAgICAgIGlmIGEgc2hv
cnRlbmVkIHZlcnNpb24gb2YgYSBsb25nIG9wdGlvbiBpcyBzcGVjaWZpZWQgaXQgd2lsbAotICAg
ICAgICBiZSBzdXBwcmVzc2VkIGluIHRoZSBoZWxwLiBhZGRvcHRpb24oJy0tdHdvd29yZHMnLCAn
LS10d28td29yZHMnKQotICAgICAgICByZXN1bHRzIGluIGhlbHAgc2hvd2luZyAnLS10d28td29y
ZHMnIG9ubHksIGJ1dCAtLXR3b3dvcmRzIGdldHMKLSAgICAgICAgYWNjZXB0ZWQgKiphbmQqKiB0
aGUgYXV0b21hdGljIGRlc3RpbmF0aW9uIGlzIGluIGFyZ3MudHdvd29yZHMKLSAgICAgICAgIiIi
Ci0gICAgICAgIGNvbmZsaWN0ID0gc2V0KG9wdG5hbWVzKS5pbnRlcnNlY3Rpb24oCi0gICAgICAg
ICAgICBuYW1lIGZvciBvcHQgaW4gc2VsZi5vcHRpb25zIGZvciBuYW1lIGluIG9wdC5uYW1lcygp
KQotICAgICAgICBpZiBjb25mbGljdDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm9w
dGlvbiBuYW1lcyAlcyBhbHJlYWR5IGFkZGVkIiAlIGNvbmZsaWN0KQotICAgICAgICBvcHRpb24g
PSBBcmd1bWVudCgqb3B0bmFtZXMsICoqYXR0cnMpCi0gICAgICAgIHNlbGYuX2FkZG9wdGlvbl9p
bnN0YW5jZShvcHRpb24sIHNob3J0dXBwZXI9RmFsc2UpCi0KLSAgICBkZWYgX2FkZG9wdGlvbihz
ZWxmLCAqb3B0bmFtZXMsICoqYXR0cnMpOgotICAgICAgICBvcHRpb24gPSBBcmd1bWVudCgqb3B0
bmFtZXMsICoqYXR0cnMpCi0gICAgICAgIHNlbGYuX2FkZG9wdGlvbl9pbnN0YW5jZShvcHRpb24s
IHNob3J0dXBwZXI9VHJ1ZSkKLQotICAgIGRlZiBfYWRkb3B0aW9uX2luc3RhbmNlKHNlbGYsIG9w
dGlvbiwgc2hvcnR1cHBlcj1GYWxzZSk6Ci0gICAgICAgIGlmIG5vdCBzaG9ydHVwcGVyOgotICAg
ICAgICAgICAgZm9yIG9wdCBpbiBvcHRpb24uX3Nob3J0X29wdHM6Ci0gICAgICAgICAgICAgICAg
aWYgb3B0WzBdID09ICctJyBhbmQgb3B0WzFdLmlzbG93ZXIoKToKLSAgICAgICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigibG93ZXJjYXNlIHNob3J0b3B0aW9ucyByZXNlcnZlZCIpCi0g
ICAgICAgIGlmIHNlbGYucGFyc2VyOgotICAgICAgICAgICAgc2VsZi5wYXJzZXIucHJvY2Vzc29w
dGlvbihvcHRpb24pCi0gICAgICAgIHNlbGYub3B0aW9ucy5hcHBlbmQob3B0aW9uKQotCi0KLWNs
YXNzIE15T3B0aW9uUGFyc2VyKGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgcGFyc2VyLCBleHRyYV9pbmZvPU5vbmUpOgotICAgICAgICBpZiBub3QgZXh0
cmFfaW5mbzoKLSAgICAgICAgICAgIGV4dHJhX2luZm8gPSB7fQotICAgICAgICBzZWxmLl9wYXJz
ZXIgPSBwYXJzZXIKLSAgICAgICAgYXJncGFyc2UuQXJndW1lbnRQYXJzZXIuX19pbml0X18oc2Vs
ZiwgdXNhZ2U9cGFyc2VyLl91c2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYWRkX2hlbHA9RmFsc2UsIGZvcm1hdHRlcl9jbGFzcz1Ecm9wU2hvcnRlckxvbmdI
ZWxwRm9ybWF0dGVyKQotICAgICAgICAjIGV4dHJhX2luZm8gaXMgYSBkaWN0IG9mIChwYXJhbSAt
PiB2YWx1ZSkgdG8gZGlzcGxheSBpZiB0aGVyZSdzCi0gICAgICAgICMgYW4gdXNhZ2UgZXJyb3Ig
dG8gcHJvdmlkZSBtb3JlIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIKLSAgICAg
ICAgc2VsZi5leHRyYV9pbmZvID0gZXh0cmFfaW5mbwotCi0gICAgZGVmIHBhcnNlX2FyZ3Moc2Vs
ZiwgYXJncz1Ob25lLCBuYW1lc3BhY2U9Tm9uZSk6Ci0gICAgICAgICIiImFsbG93IHNwbGl0dGlu
ZyBvZiBwb3NpdGlvbmFsIGFyZ3VtZW50cyIiIgotICAgICAgICBhcmdzLCBhcmd2ID0gc2VsZi5w
YXJzZV9rbm93bl9hcmdzKGFyZ3MsIG5hbWVzcGFjZSkKLSAgICAgICAgaWYgYXJndjoKLSAgICAg
ICAgICAgIGZvciBhcmcgaW4gYXJndjoKLSAgICAgICAgICAgICAgICBpZiBhcmcgYW5kIGFyZ1sw
XSA9PSAnLSc6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmVzID0gWyd1bnJlY29nbml6ZWQgYXJn
dW1lbnRzOiAlcycgJSAoJyAnLmpvaW4oYXJndikpXQotICAgICAgICAgICAgICAgICAgICBmb3Ig
aywgdiBpbiBzb3J0ZWQoc2VsZi5leHRyYV9pbmZvLml0ZW1zKCkpOgotICAgICAgICAgICAgICAg
ICAgICAgICAgbGluZXMuYXBwZW5kKCcgICVzOiAlcycgJSAoaywgdikpCi0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuZXJyb3IoJ1xuJy5qb2luKGxpbmVzKSkKLSAgICAgICAgICAgIGdldGF0dHIo
YXJncywgRklMRV9PUl9ESVIpLmV4dGVuZChhcmd2KQotICAgICAgICByZXR1cm4gYXJncwotCi0K
LWNsYXNzIERyb3BTaG9ydGVyTG9uZ0hlbHBGb3JtYXR0ZXIoYXJncGFyc2UuSGVscEZvcm1hdHRl
cik6Ci0gICAgIiIic2hvcnRlbiBoZWxwIGZvciBsb25nIG9wdGlvbnMgdGhhdCBkaWZmZXIgb25s
eSBpbiBleHRyYSBoeXBoZW5zCi0KLSAgICAtIGNvbGxhcHNlICoqbG9uZyoqIG9wdGlvbnMgdGhh
dCBhcmUgdGhlIHNhbWUgZXhjZXB0IGZvciBleHRyYSBoeXBoZW5zCi0gICAgLSBzcGVjaWFsIGFj
dGlvbiBhdHRyaWJ1dGUgbWFwX2xvbmdfb3B0aW9uIGFsbG93cyBzdXJwcmVzc2luZyBhZGRpdGlv
bmFsCi0gICAgICBsb25nIG9wdGlvbnMKLSAgICAtIHNob3J0Y3V0IGlmIHRoZXJlIGFyZSBvbmx5
IHR3byBvcHRpb25zIGFuZCBvbmUgb2YgdGhlbSBpcyBhIHNob3J0IG9uZQotICAgIC0gY2FjaGUg
cmVzdWx0IG9uIGFjdGlvbiBvYmplY3QgYXMgdGhpcyBpcyBjYWxsZWQgYXQgbGVhc3QgMiB0aW1l
cwotICAgICIiIgotCi0gICAgZGVmIF9mb3JtYXRfYWN0aW9uX2ludm9jYXRpb24oc2VsZiwgYWN0
aW9uKToKLSAgICAgICAgb3Jnc3RyID0gYXJncGFyc2UuSGVscEZvcm1hdHRlci5fZm9ybWF0X2Fj
dGlvbl9pbnZvY2F0aW9uKHNlbGYsIGFjdGlvbikKLSAgICAgICAgaWYgb3Jnc3RyIGFuZCBvcmdz
dHJbMF0gIT0gJy0nOiAgIyBvbmx5IG9wdGlvbmFsIGFyZ3VtZW50cwotICAgICAgICAgICAgcmV0
dXJuIG9yZ3N0cgotICAgICAgICByZXMgPSBnZXRhdHRyKGFjdGlvbiwgJ19mb3JtYXR0ZWRfYWN0
aW9uX2ludm9jYXRpb24nLCBOb25lKQotICAgICAgICBpZiByZXM6Ci0gICAgICAgICAgICByZXR1
cm4gcmVzCi0gICAgICAgIG9wdGlvbnMgPSBvcmdzdHIuc3BsaXQoJywgJykKLSAgICAgICAgaWYg
bGVuKG9wdGlvbnMpID09IDIgYW5kIChsZW4ob3B0aW9uc1swXSkgPT0gMiBvciBsZW4ob3B0aW9u
c1sxXSkgPT0gMik6Ci0gICAgICAgICAgICAjIGEgc2hvcnRjdXQgZm9yICctaCwgLS1oZWxwJyBv
ciAnLS1hYmMnLCAnLWEnCi0gICAgICAgICAgICBhY3Rpb24uX2Zvcm1hdHRlZF9hY3Rpb25faW52
b2NhdGlvbiA9IG9yZ3N0cgotICAgICAgICAgICAgcmV0dXJuIG9yZ3N0cgotICAgICAgICByZXR1
cm5fbGlzdCA9IFtdCi0gICAgICAgIG9wdGlvbl9tYXAgPSBnZXRhdHRyKGFjdGlvbiwgJ21hcF9s
b25nX29wdGlvbicsIHt9KQotICAgICAgICBpZiBvcHRpb25fbWFwIGlzIE5vbmU6Ci0gICAgICAg
ICAgICBvcHRpb25fbWFwID0ge30KLSAgICAgICAgc2hvcnRfbG9uZyA9IHt9Ci0gICAgICAgIGZv
ciBvcHRpb24gaW4gb3B0aW9uczoKLSAgICAgICAgICAgIGlmIGxlbihvcHRpb24pID09IDIgb3Ig
b3B0aW9uWzJdID09ICcgJzoKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAg
aWYgbm90IG9wdGlvbi5zdGFydHN3aXRoKCctLScpOgotICAgICAgICAgICAgICAgIHJhaXNlIEFy
Z3VtZW50RXJyb3IoJ2xvbmcgb3B0aW9uYWwgYXJndW1lbnQgd2l0aG91dCAiLS0iOiBbJXNdJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAob3B0aW9uKSwgc2VsZikKLSAg
ICAgICAgICAgIHh4b3B0aW9uID0gb3B0aW9uWzI6XQotICAgICAgICAgICAgaWYgeHhvcHRpb24u
c3BsaXQoKVswXSBub3QgaW4gb3B0aW9uX21hcDoKLSAgICAgICAgICAgICAgICBzaG9ydGVuZWQg
PSB4eG9wdGlvbi5yZXBsYWNlKCctJywgJycpCi0gICAgICAgICAgICAgICAgaWYgc2hvcnRlbmVk
IG5vdCBpbiBzaG9ydF9sb25nIG9yIFwKLSAgICAgICAgICAgICAgICAgICBsZW4oc2hvcnRfbG9u
Z1tzaG9ydGVuZWRdKSA8IGxlbih4eG9wdGlvbik6Ci0gICAgICAgICAgICAgICAgICAgIHNob3J0
X2xvbmdbc2hvcnRlbmVkXSA9IHh4b3B0aW9uCi0gICAgICAgICMgbm93IHNob3J0X2xvbmcgaGFz
IGJlZW4gZmlsbGVkIG91dCB0byB0aGUgbG9uZ2VzdCB3aXRoIGRhc2hlcwotICAgICAgICAjICoq
YW5kKiogd2Uga2VlcCB0aGUgcmlnaHQgb3B0aW9uIG9yZGVyaW5nIGZyb20gYWRkX2FyZ3VtZW50
Ci0gICAgICAgIGZvciBvcHRpb24gaW4gb3B0aW9uczoKLSAgICAgICAgICAgIGlmIGxlbihvcHRp
b24pID09IDIgb3Igb3B0aW9uWzJdID09ICcgJzoKLSAgICAgICAgICAgICAgICByZXR1cm5fbGlz
dC5hcHBlbmQob3B0aW9uKQotICAgICAgICAgICAgaWYgb3B0aW9uWzI6XSA9PSBzaG9ydF9sb25n
LmdldChvcHRpb24ucmVwbGFjZSgnLScsICcnKSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuX2xp
c3QuYXBwZW5kKG9wdGlvbi5yZXBsYWNlKCcgJywgJz0nLCAxKSkKLSAgICAgICAgYWN0aW9uLl9m
b3JtYXR0ZWRfYWN0aW9uX2ludm9jYXRpb24gPSAnLCAnLmpvaW4ocmV0dXJuX2xpc3QpCi0gICAg
ICAgIHJldHVybiBhY3Rpb24uX2Zvcm1hdHRlZF9hY3Rpb25faW52b2NhdGlvbgotCi0KLWRlZiBf
ZW5zdXJlX3JlbW92ZWRfc3lzbW9kdWxlKG1vZG5hbWUpOgotICAgIHRyeToKLSAgICAgICAgZGVs
IHN5cy5tb2R1bGVzW21vZG5hbWVdCi0gICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICBwYXNz
Ci0KLQotY2xhc3MgQ21kT3B0aW9ucyhvYmplY3QpOgotICAgICIiIiBob2xkcyBjbWRsaW5lIG9w
dGlvbnMgYXMgYXR0cmlidXRlcy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZXM9
KCkpOgotICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZSh2YWx1ZXMpCi0KLSAgICBkZWYgX19y
ZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPENtZE9wdGlvbnMgJXI+IiAlIChzZWxmLl9f
ZGljdF9fLCkKLQotICAgIGRlZiBjb3B5KHNlbGYpOgotICAgICAgICByZXR1cm4gQ21kT3B0aW9u
cyhzZWxmLl9fZGljdF9fKQotCi0KLWNsYXNzIE5vdHNldDoKLSAgICBkZWYgX19yZXByX18oc2Vs
Zik6Ci0gICAgICAgIHJldHVybiAiPE5PVFNFVD4iCi0KLQotbm90c2V0ID0gTm90c2V0KCkKLUZJ
TEVfT1JfRElSID0gJ2ZpbGVfb3JfZGlyJwotCi0KLWRlZiBfaXRlcl9yZXdyaXRhYmxlX21vZHVs
ZXMocGFja2FnZV9maWxlcyk6Ci0gICAgZm9yIGZuIGluIHBhY2thZ2VfZmlsZXM6Ci0gICAgICAg
IGlzX3NpbXBsZV9tb2R1bGUgPSAnLycgbm90IGluIGZuIGFuZCBmbi5lbmRzd2l0aCgnLnB5JykK
LSAgICAgICAgaXNfcGFja2FnZSA9IGZuLmNvdW50KCcvJykgPT0gMSBhbmQgZm4uZW5kc3dpdGgo
J19faW5pdF9fLnB5JykKLSAgICAgICAgaWYgaXNfc2ltcGxlX21vZHVsZToKLSAgICAgICAgICAg
IG1vZHVsZV9uYW1lLCBfID0gb3MucGF0aC5zcGxpdGV4dChmbikKLSAgICAgICAgICAgIHlpZWxk
IG1vZHVsZV9uYW1lCi0gICAgICAgIGVsaWYgaXNfcGFja2FnZToKLSAgICAgICAgICAgIHBhY2th
Z2VfbmFtZSA9IG9zLnBhdGguZGlybmFtZShmbikKLSAgICAgICAgICAgIHlpZWxkIHBhY2thZ2Vf
bmFtZQotCi0KLWNsYXNzIENvbmZpZyhvYmplY3QpOgotICAgICIiIiBhY2Nlc3MgdG8gY29uZmln
dXJhdGlvbiB2YWx1ZXMsIHBsdWdpbm1hbmFnZXIgYW5kIHBsdWdpbiBob29rcy4gICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsdWdpbm1hbmFnZXIpOgotICAgICAgICAjOiBhY2Nlc3Mg
dG8gY29tbWFuZCBsaW5lIG9wdGlvbiBhcyBhdHRyaWJ1dGVzLgotICAgICAgICAjOiAoZGVwcmVj
YXRlZCksIHVzZSA6cHk6ZnVuYzpgZ2V0b3B0aW9uKCkgPF9weXRlc3QuY29uZmlnLkNvbmZpZy5n
ZXRvcHRpb24+YCBpbnN0ZWFkCi0gICAgICAgIHNlbGYub3B0aW9uID0gQ21kT3B0aW9ucygpCi0g
ICAgICAgIF9hID0gRklMRV9PUl9ESVIKLSAgICAgICAgc2VsZi5fcGFyc2VyID0gUGFyc2VyKAot
ICAgICAgICAgICAgdXNhZ2U9IiUlKHByb2cpcyBbb3B0aW9uc10gWyVzXSBbJXNdIFsuLi5dIiAl
IChfYSwgX2EpLAotICAgICAgICAgICAgcHJvY2Vzc29wdD1zZWxmLl9wcm9jZXNzb3B0LAotICAg
ICAgICApCi0gICAgICAgICM6IGEgcGx1Z2lubWFuYWdlciBpbnN0YW5jZQotICAgICAgICBzZWxm
LnBsdWdpbm1hbmFnZXIgPSBwbHVnaW5tYW5hZ2VyCi0gICAgICAgIHNlbGYudHJhY2UgPSBzZWxm
LnBsdWdpbm1hbmFnZXIudHJhY2Uucm9vdC5nZXQoImNvbmZpZyIpCi0gICAgICAgIHNlbGYuaG9v
ayA9IHNlbGYucGx1Z2lubWFuYWdlci5ob29rCi0gICAgICAgIHNlbGYuX2luaWNhY2hlID0ge30K
LSAgICAgICAgc2VsZi5fb3ZlcnJpZGVfaW5pID0gKCkKLSAgICAgICAgc2VsZi5fb3B0MmRlc3Qg
PSB7fQotICAgICAgICBzZWxmLl9jbGVhbnVwID0gW10KLSAgICAgICAgc2VsZi5fd2FybiA9IHNl
bGYucGx1Z2lubWFuYWdlci5fd2FybgotICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIucmVnaXN0
ZXIoc2VsZiwgInB5dGVzdGNvbmZpZyIpCi0gICAgICAgIHNlbGYuX2NvbmZpZ3VyZWQgPSBGYWxz
ZQotCi0gICAgICAgIGRlZiBkb19zZXRucyhkaWMpOgotICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAotICAgICAgICAgICAgc2V0bnMocHl0ZXN0LCBkaWMpCi0KLSAgICAgICAgc2VsZi5ob29rLnB5
dGVzdF9uYW1lc3BhY2UuY2FsbF9oaXN0b3JpYyhkb19zZXRucywge30pCi0gICAgICAgIHNlbGYu
aG9vay5weXRlc3RfYWRkb3B0aW9uLmNhbGxfaGlzdG9yaWMoa3dhcmdzPWRpY3QocGFyc2VyPXNl
bGYuX3BhcnNlcikpCi0KLSAgICBkZWYgYWRkX2NsZWFudXAoc2VsZiwgZnVuYyk6Ci0gICAgICAg
ICIiIiBBZGQgYSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgY29uZmlnIG9iamVjdCBn
ZXRzIG91dCBvZgotICAgICAgICB1c2UgKHVzdWFsbHkgY29uaW5jaWRpbmcgd2l0aCBweXRlc3Rf
dW5jb25maWd1cmUpLiIiIgotICAgICAgICBzZWxmLl9jbGVhbnVwLmFwcGVuZChmdW5jKQotCi0g
ICAgZGVmIF9kb19jb25maWd1cmUoc2VsZik6Ci0gICAgICAgIGFzc2VydCBub3Qgc2VsZi5fY29u
ZmlndXJlZAotICAgICAgICBzZWxmLl9jb25maWd1cmVkID0gVHJ1ZQotICAgICAgICBzZWxmLmhv
b2sucHl0ZXN0X2NvbmZpZ3VyZS5jYWxsX2hpc3RvcmljKGt3YXJncz1kaWN0KGNvbmZpZz1zZWxm
KSkKLQotICAgIGRlZiBfZW5zdXJlX3VuY29uZmlndXJlKHNlbGYpOgotICAgICAgICBpZiBzZWxm
Ll9jb25maWd1cmVkOgotICAgICAgICAgICAgc2VsZi5fY29uZmlndXJlZCA9IEZhbHNlCi0gICAg
ICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZz1zZWxmKQotICAgICAg
ICAgICAgc2VsZi5ob29rLnB5dGVzdF9jb25maWd1cmUuX2NhbGxfaGlzdG9yeSA9IFtdCi0gICAg
ICAgIHdoaWxlIHNlbGYuX2NsZWFudXA6Ci0gICAgICAgICAgICBmaW4gPSBzZWxmLl9jbGVhbnVw
LnBvcCgpCi0gICAgICAgICAgICBmaW4oKQotCi0gICAgZGVmIHdhcm4oc2VsZiwgY29kZSwgbWVz
c2FnZSwgZnNsb2NhdGlvbj1Ob25lLCBub2RlaWQ9Tm9uZSk6Ci0gICAgICAgICIiIiBnZW5lcmF0
ZSBhIHdhcm5pbmcgZm9yIHRoaXMgdGVzdCBzZXNzaW9uLiAiIiIKLSAgICAgICAgc2VsZi5ob29r
LnB5dGVzdF9sb2d3YXJuaW5nLmNhbGxfaGlzdG9yaWMoa3dhcmdzPWRpY3QoCi0gICAgICAgICAg
ICBjb2RlPWNvZGUsIG1lc3NhZ2U9bWVzc2FnZSwKLSAgICAgICAgICAgIGZzbG9jYXRpb249ZnNs
b2NhdGlvbiwgbm9kZWlkPW5vZGVpZCkpCi0KLSAgICBkZWYgZ2V0X3Rlcm1pbmFsX3dyaXRlcihz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYucGx1Z2lubWFuYWdlci5nZXRfcGx1Z2luKCJ0ZXJt
aW5hbHJlcG9ydGVyIikuX3R3Ci0KLSAgICBkZWYgcHl0ZXN0X2NtZGxpbmVfcGFyc2Uoc2VsZiwg
cGx1Z2lubWFuYWdlciwgYXJncyk6Ci0gICAgICAgICMgUkVGMSBhc3NlcnQgc2VsZiA9PSBwbHVn
aW5tYW5hZ2VyLmNvbmZpZywgKHNlbGYsIHBsdWdpbm1hbmFnZXIuY29uZmlnKQotICAgICAgICBz
ZWxmLnBhcnNlKGFyZ3MpCi0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgbm90aWZ5X2V4
Y2VwdGlvbihzZWxmLCBleGNpbmZvLCBvcHRpb249Tm9uZSk6Ci0gICAgICAgIGlmIG9wdGlvbiBh
bmQgb3B0aW9uLmZ1bGx0cmFjZToKLSAgICAgICAgICAgIHN0eWxlID0gImxvbmciCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBzdHlsZSA9ICJuYXRpdmUiCi0gICAgICAgIGV4Y3JlcHIgPSBl
eGNpbmZvLmdldHJlcHIoZnVuY2FyZ3M9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaG93bG9jYWxzPWdldGF0dHIob3B0aW9uLCAnc2hvd2xvY2FscycsIEZhbHNlKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1zdHlsZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgIHJlcyA9IHNlbGYuaG9vay5weXRl
c3RfaW50ZXJuYWxlcnJvcihleGNyZXByPWV4Y3JlcHIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGNpbmZvPWV4Y2luZm8pCi0gICAgICAgIGlmIG5vdCBh
bnkocmVzKToKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHN0cihleGNyZXByKS5zcGxpdCgiXG4i
KToKLSAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJJTlRFUk5BTEVSUk9SPiAlc1xu
IiAlIGxpbmUpCi0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCi0KLSAgICBkZWYg
Y3dkX3JlbGF0aXZlX25vZGVpZChzZWxmLCBub2RlaWQpOgotICAgICAgICAjIG5vZGVpZCdzIGFy
ZSByZWxhdGl2ZSB0byB0aGUgcm9vdHBhdGgsIGNvbXB1dGUgcmVsYXRpdmUgdG8gY3dkCi0gICAg
ICAgIGlmIHNlbGYuaW52b2NhdGlvbl9kaXIgIT0gc2VsZi5yb290ZGlyOgotICAgICAgICAgICAg
ZnVsbHBhdGggPSBzZWxmLnJvb3RkaXIuam9pbihub2RlaWQpCi0gICAgICAgICAgICBub2RlaWQg
PSBzZWxmLmludm9jYXRpb25fZGlyLmJlc3RyZWxwYXRoKGZ1bGxwYXRoKQotICAgICAgICByZXR1
cm4gbm9kZWlkCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJvbWRpY3RhcmdzKGNscywg
b3B0aW9uX2RpY3QsIGFyZ3MpOgotICAgICAgICAiIiIgY29uc3RydWN0b3IgdXNlYWJsZSBmb3Ig
c3VicHJvY2Vzc2VzLiAiIiIKLSAgICAgICAgY29uZmlnID0gZ2V0X2NvbmZpZygpCi0gICAgICAg
IGNvbmZpZy5vcHRpb24uX19kaWN0X18udXBkYXRlKG9wdGlvbl9kaWN0KQotICAgICAgICBjb25m
aWcucGFyc2UoYXJncywgYWRkb3B0cz1GYWxzZSkKLSAgICAgICAgZm9yIHggaW4gY29uZmlnLm9w
dGlvbi5wbHVnaW5zOgotICAgICAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIuY29uc2lkZXJf
cGx1Z2luYXJnKHgpCi0gICAgICAgIHJldHVybiBjb25maWcKLQotICAgIGRlZiBfcHJvY2Vzc29w
dChzZWxmLCBvcHQpOgotICAgICAgICBmb3IgbmFtZSBpbiBvcHQuX3Nob3J0X29wdHMgKyBvcHQu
X2xvbmdfb3B0czoKLSAgICAgICAgICAgIHNlbGYuX29wdDJkZXN0W25hbWVdID0gb3B0LmRlc3QK
LQotICAgICAgICBpZiBoYXNhdHRyKG9wdCwgJ2RlZmF1bHQnKSBhbmQgb3B0LmRlc3Q6Ci0gICAg
ICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLm9wdGlvbiwgb3B0LmRlc3QpOgotICAgICAgICAg
ICAgICAgIHNldGF0dHIoc2VsZi5vcHRpb24sIG9wdC5kZXN0LCBvcHQuZGVmYXVsdCkKLQotICAg
IEBob29raW1wbCh0cnlsYXN0PVRydWUpCi0gICAgZGVmIHB5dGVzdF9sb2FkX2luaXRpYWxfY29u
ZnRlc3RzKHNlbGYsIGVhcmx5X2NvbmZpZyk6Ci0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5f
c2V0X2luaXRpYWxfY29uZnRlc3RzKGVhcmx5X2NvbmZpZy5rbm93bl9hcmdzX25hbWVzcGFjZSkK
LQotICAgIGRlZiBfaW5pdGluaShzZWxmLCBhcmdzKToKLSAgICAgICAgbnMsIHVua25vd25fYXJn
cyA9IHNlbGYuX3BhcnNlci5wYXJzZV9rbm93bl9hbmRfdW5rbm93bl9hcmdzKGFyZ3MsIG5hbWVz
cGFjZT1zZWxmLm9wdGlvbi5jb3B5KCkpCi0gICAgICAgIHIgPSBkZXRlcm1pbmVfc2V0dXAobnMu
aW5pZmlsZW5hbWUsIG5zLmZpbGVfb3JfZGlyICsgdW5rbm93bl9hcmdzLCB3YXJuZnVuYz1zZWxm
Lndhcm4pCi0gICAgICAgIHNlbGYucm9vdGRpciwgc2VsZi5pbmlmaWxlLCBzZWxmLmluaWNmZyA9
IHIKLSAgICAgICAgc2VsZi5fcGFyc2VyLmV4dHJhX2luZm9bJ3Jvb3RkaXInXSA9IHNlbGYucm9v
dGRpcgotICAgICAgICBzZWxmLl9wYXJzZXIuZXh0cmFfaW5mb1snaW5pZmlsZSddID0gc2VsZi5p
bmlmaWxlCi0gICAgICAgIHNlbGYuaW52b2NhdGlvbl9kaXIgPSBweS5wYXRoLmxvY2FsKCkKLSAg
ICAgICAgc2VsZi5fcGFyc2VyLmFkZGluaSgnYWRkb3B0cycsICdleHRyYSBjb21tYW5kIGxpbmUg
b3B0aW9ucycsICdhcmdzJykKLSAgICAgICAgc2VsZi5fcGFyc2VyLmFkZGluaSgnbWludmVyc2lv
bicsICdtaW5pbWFsbHkgcmVxdWlyZWQgcHl0ZXN0IHZlcnNpb24nKQotICAgICAgICBzZWxmLl9v
dmVycmlkZV9pbmkgPSBucy5vdmVycmlkZV9pbmkgb3IgKCkKLQotICAgIGRlZiBfY29uc2lkZXJf
aW1wb3J0aG9vayhzZWxmLCBhcmdzKToKLSAgICAgICAgIiIiSW5zdGFsbCB0aGUgUEVQIDMwMiBp
bXBvcnQgaG9vayBpZiB1c2luZyBhc3NlcnRpb24gcmV3cml0aW5nLgotCi0gICAgICAgIE5lZWRz
IHRvIHBhcnNlIHRoZSAtLWFzc2VydD08bW9kZT4gb3B0aW9uIGZyb20gdGhlIGNvbW1hbmRsaW5l
Ci0gICAgICAgIGFuZCBmaW5kIGFsbCB0aGUgaW5zdGFsbGVkIHBsdWdpbnMgdG8gbWFyayB0aGVt
IGZvciByZXdyaXRpbmcKLSAgICAgICAgYnkgdGhlIGltcG9ydGhvb2suCi0gICAgICAgICIiIgot
ICAgICAgICBucywgdW5rbm93bl9hcmdzID0gc2VsZi5fcGFyc2VyLnBhcnNlX2tub3duX2FuZF91
bmtub3duX2FyZ3MoYXJncykKLSAgICAgICAgbW9kZSA9IG5zLmFzc2VydG1vZGUKLSAgICAgICAg
aWYgbW9kZSA9PSAncmV3cml0ZSc6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
aG9vayA9IF9weXRlc3QuYXNzZXJ0aW9uLmluc3RhbGxfaW1wb3J0aG9vayhzZWxmKQotICAgICAg
ICAgICAgZXhjZXB0IFN5c3RlbUVycm9yOgotICAgICAgICAgICAgICAgIG1vZGUgPSAncGxhaW4n
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX21hcmtfcGx1Z2luc19m
b3JfcmV3cml0ZShob29rKQotICAgICAgICBzZWxmLl93YXJuX2Fib3V0X21pc3NpbmdfYXNzZXJ0
aW9uKG1vZGUpCi0KLSAgICBkZWYgX21hcmtfcGx1Z2luc19mb3JfcmV3cml0ZShzZWxmLCBob29r
KToKLSAgICAgICAgIiIiCi0gICAgICAgIEdpdmVuIGFuIGltcG9ydGhvb2ssIG1hcmsgZm9yIHJl
d3JpdGUgYW55IHRvcC1sZXZlbAotICAgICAgICBtb2R1bGVzIG9yIHBhY2thZ2VzIGluIHRoZSBk
aXN0cmlidXRpb24gcGFja2FnZSBmb3IKLSAgICAgICAgYWxsIHB5dGVzdCBwbHVnaW5zLgotICAg
ICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHBrZ19yZXNvdXJjZXMKLSAgICAgICAgc2VsZi5wbHVn
aW5tYW5hZ2VyLnJld3JpdGVfaG9vayA9IGhvb2sKLQotICAgICAgICAjICdSRUNPUkQnIGF2YWls
YWJsZSBmb3IgcGx1Z2lucyBpbnN0YWxsZWQgbm9ybWFsbHkgKHBpcCBpbnN0YWxsKQotICAgICAg
ICAjICdTT1VSQ0VTLnR4dCcgYXZhaWxhYmxlIGZvciBwbHVnaW5zIGluc3RhbGxlZCBpbiBkZXYg
bW9kZSAocGlwIGluc3RhbGwgLWUpCi0gICAgICAgICMgZm9yIGluc3RhbGxlZCBwbHVnaW5zICdT
T1VSQ0VTLnR4dCcgcmV0dXJucyBhbiBlbXB0eSBsaXN0LCBhbmQgdmljZS12ZXJzYQotICAgICAg
ICAjIHNvIGl0IHNob3VsZG4ndCBiZSBhbiBpc3N1ZQotICAgICAgICBtZXRhZGF0YV9maWxlcyA9
ICdSRUNPUkQnLCAnU09VUkNFUy50eHQnCi0KLSAgICAgICAgcGFja2FnZV9maWxlcyA9ICgKLSAg
ICAgICAgICAgIGVudHJ5LnNwbGl0KCcsJylbMF0KLSAgICAgICAgICAgIGZvciBlbnRyeXBvaW50
IGluIHBrZ19yZXNvdXJjZXMuaXRlcl9lbnRyeV9wb2ludHMoJ3B5dGVzdDExJykKLSAgICAgICAg
ICAgIGZvciBtZXRhZGF0YSBpbiBtZXRhZGF0YV9maWxlcwotICAgICAgICAgICAgZm9yIGVudHJ5
IGluIGVudHJ5cG9pbnQuZGlzdC5fZ2V0X21ldGFkYXRhKG1ldGFkYXRhKQotICAgICAgICApCi0K
LSAgICAgICAgZm9yIG5hbWUgaW4gX2l0ZXJfcmV3cml0YWJsZV9tb2R1bGVzKHBhY2thZ2VfZmls
ZXMpOgotICAgICAgICAgICAgaG9vay5tYXJrX3Jld3JpdGUobmFtZSkKLQotICAgIGRlZiBfd2Fy
bl9hYm91dF9taXNzaW5nX2Fzc2VydGlvbihzZWxmLCBtb2RlKToKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgYXNzZXJ0IEZhbHNlCi0gICAgICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKLSAg
ICAgICAgICAgIHBhc3MKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIG1vZGUgPT0gJ3Bs
YWluJzoKLSAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJXQVJOSU5HOiBBU1NFUlRJ
T05TIEFSRSBOT1QgRVhFQ1VURUQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
IGFuZCBGQUlMSU5HIFRFU1RTIFdJTEwgUEFTUy4gIEFyZSB5b3UiCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiIHVzaW5nIHB5dGhvbiAtTz8iKQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJXQVJOSU5HOiBhc3NlcnRpb25zIG5v
dCBpbiB0ZXN0IG1vZHVsZXMgb3IiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
IHBsdWdpbnMgd2lsbCBiZSBpZ25vcmVkIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIiBiZWNhdXNlIGFzc2VydCBzdGF0ZW1lbnRzIGFyZSBub3QgZXhlY3V0ZWQgIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ5IHRoZSB1bmRlcmx5aW5nIFB5dGhvbiBpbnRl
cnByZXRlciAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKGFyZSB5b3UgdXNp
bmcgcHl0aG9uIC1PPylcbiIpCi0KLSAgICBkZWYgX3ByZXBhcnNlKHNlbGYsIGFyZ3MsIGFkZG9w
dHM9VHJ1ZSk6Ci0gICAgICAgIGlmIGFkZG9wdHM6Ci0gICAgICAgICAgICBhcmdzWzpdID0gc2hs
ZXguc3BsaXQob3MuZW52aXJvbi5nZXQoJ1BZVEVTVF9BRERPUFRTJywgJycpKSArIGFyZ3MKLSAg
ICAgICAgc2VsZi5faW5pdGluaShhcmdzKQotICAgICAgICBpZiBhZGRvcHRzOgotICAgICAgICAg
ICAgYXJnc1s6XSA9IHNlbGYuZ2V0aW5pKCJhZGRvcHRzIikgKyBhcmdzCi0gICAgICAgIHNlbGYu
X2NoZWNrdmVyc2lvbigpCi0gICAgICAgIHNlbGYuX2NvbnNpZGVyX2ltcG9ydGhvb2soYXJncykK
LSAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX3ByZXBhcnNlKGFyZ3MpCi0gICAg
ICAgIHNlbGYucGx1Z2lubWFuYWdlci5sb2FkX3NldHVwdG9vbHNfZW50cnlwb2ludHMoJ3B5dGVz
dDExJykKLSAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX2VudigpCi0gICAgICAg
IHNlbGYua25vd25fYXJnc19uYW1lc3BhY2UgPSBucyA9IHNlbGYuX3BhcnNlci5wYXJzZV9rbm93
bl9hcmdzKGFyZ3MsIG5hbWVzcGFjZT1zZWxmLm9wdGlvbi5jb3B5KCkpCi0gICAgICAgIGlmIHNl
bGYua25vd25fYXJnc19uYW1lc3BhY2UuY29uZmN1dGRpciBpcyBOb25lIGFuZCBzZWxmLmluaWZp
bGU6Ci0gICAgICAgICAgICBjb25mY3V0ZGlyID0gcHkucGF0aC5sb2NhbChzZWxmLmluaWZpbGUp
LmRpcm5hbWUKLSAgICAgICAgICAgIHNlbGYua25vd25fYXJnc19uYW1lc3BhY2UuY29uZmN1dGRp
ciA9IGNvbmZjdXRkaXIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5ob29rLnB5dGVz
dF9sb2FkX2luaXRpYWxfY29uZnRlc3RzKGVhcmx5X2NvbmZpZz1zZWxmLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9YXJncywgcGFyc2Vy
PXNlbGYuX3BhcnNlcikKLSAgICAgICAgZXhjZXB0IENvbmZ0ZXN0SW1wb3J0RmFpbHVyZToKLSAg
ICAgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXQotICAgICAgICAgICAgaWYgbnMuaGVscCBv
ciBucy52ZXJzaW9uOgotICAgICAgICAgICAgICAgICMgd2UgZG9uJ3Qgd2FudCB0byBwcmV2ZW50
IC0taGVscC8tLXZlcnNpb24gdG8gd29yawotICAgICAgICAgICAgICAgICMgc28ganVzdCBsZXQg
aXMgcGFzcyBhbmQgcHJpbnQgYSB3YXJuaW5nIGF0IHRoZSBlbmQKLSAgICAgICAgICAgICAgICBz
ZWxmLl93YXJuKCJjb3VsZCBub3QgbG9hZCBpbml0aWFsIGNvbmZ0ZXN0cyAoJXMpXG4iICUgZS5w
YXRoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZQotCi0gICAgZGVm
IF9jaGVja3ZlcnNpb24oc2VsZik6Ci0gICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgbWlu
dmVyID0gc2VsZi5pbmljZmcuZ2V0KCdtaW52ZXJzaW9uJywgTm9uZSkKLSAgICAgICAgaWYgbWlu
dmVyOgotICAgICAgICAgICAgdmVyID0gbWludmVyLnNwbGl0KCIuIikKLSAgICAgICAgICAgIG15
dmVyID0gcHl0ZXN0Ll9fdmVyc2lvbl9fLnNwbGl0KCIuIikKLSAgICAgICAgICAgIGlmIG15dmVy
IDwgdmVyOgotICAgICAgICAgICAgICAgIHJhaXNlIHB5dGVzdC5Vc2FnZUVycm9yKAotICAgICAg
ICAgICAgICAgICAgICAiJXM6JWQ6IHJlcXVpcmVzIHB5dGVzdC0lcywgYWN0dWFsIHB5dGVzdC0l
cyciICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pbmljZmcuY29uZmlnLnBhdGgs
IHNlbGYuaW5pY2ZnLmxpbmVvZignbWludmVyc2lvbicpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgbWludmVyLCBweXRlc3QuX192ZXJzaW9uX18pKQotCi0gICAgZGVmIHBhcnNlKHNlbGYsIGFy
Z3MsIGFkZG9wdHM9VHJ1ZSk6Ci0gICAgICAgICMgcGFyc2UgZ2l2ZW4gY21kbGluZSBhcmd1bWVu
dHMgaW50byB0aGlzIGNvbmZpZyBvYmplY3QuCi0gICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihz
ZWxmLCAnYXJncycpLCAoCi0gICAgICAgICAgICAiY2FuIG9ubHkgcGFyc2UgY21kbGluZSBhcmdz
IGF0IG1vc3Qgb25jZSBwZXIgQ29uZmlnIG9iamVjdCIpCi0gICAgICAgIHNlbGYuX29yaWdhcmdz
ID0gYXJncwotICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2FkZGhvb2tzLmNhbGxfaGlzdG9yaWMo
Ci0gICAgICAgICAgICBrd2FyZ3M9ZGljdChwbHVnaW5tYW5hZ2VyPXNlbGYucGx1Z2lubWFuYWdl
cikpCi0gICAgICAgIHNlbGYuX3ByZXBhcnNlKGFyZ3MsIGFkZG9wdHM9YWRkb3B0cykKLSAgICAg
ICAgIyBYWFggZGVwcmVjYXRlZCBob29rOgotICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2NtZGxp
bmVfcHJlcGFyc2UoY29uZmlnPXNlbGYsIGFyZ3M9YXJncykKLSAgICAgICAgc2VsZi5fcGFyc2Vy
LmFmdGVyX3ByZXBhcnNlID0gVHJ1ZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBhcmdzID0g
c2VsZi5fcGFyc2VyLnBhcnNlX3NldG9wdGlvbihhcmdzLCBzZWxmLm9wdGlvbiwgbmFtZXNwYWNl
PXNlbGYub3B0aW9uKQotICAgICAgICAgICAgaWYgbm90IGFyZ3M6Ci0gICAgICAgICAgICAgICAg
Y3dkID0gb3MuZ2V0Y3dkKCkKLSAgICAgICAgICAgICAgICBpZiBjd2QgPT0gc2VsZi5yb290ZGly
OgotICAgICAgICAgICAgICAgICAgICBhcmdzID0gc2VsZi5nZXRpbmkoJ3Rlc3RwYXRocycpCi0g
ICAgICAgICAgICAgICAgaWYgbm90IGFyZ3M6Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBb
Y3dkXQotICAgICAgICAgICAgc2VsZi5hcmdzID0gYXJncwotICAgICAgICBleGNlcHQgUHJpbnRI
ZWxwOgotICAgICAgICAgICAgcGFzcwotCi0gICAgZGVmIGFkZGluaXZhbHVlX2xpbmUoc2VsZiwg
bmFtZSwgbGluZSk6Ci0gICAgICAgICIiIiBhZGQgYSBsaW5lIHRvIGFuIGluaS1maWxlIG9wdGlv
bi4gVGhlIG9wdGlvbiBtdXN0IGhhdmUgYmVlbgotICAgICAgICBkZWNsYXJlZCBidXQgbWlnaHQg
bm90IHlldCBiZSBzZXQgaW4gd2hpY2ggY2FzZSB0aGUgbGluZSBiZWNvbWVzIHRoZQotICAgICAg
ICB0aGUgZmlyc3QgbGluZSBpbiBpdHMgdmFsdWUuICIiIgotICAgICAgICB4ID0gc2VsZi5nZXRp
bmkobmFtZSkKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoeCwgbGlzdCkKLSAgICAgICAgeC5h
cHBlbmQobGluZSkgICMgbW9kaWZpZXMgdGhlIGNhY2hlZCBsaXN0IGlubGluZQotCi0gICAgZGVm
IGdldGluaShzZWxmLCBuYW1lKToKLSAgICAgICAgIiIiIHJldHVybiBjb25maWd1cmF0aW9uIHZh
bHVlIGZyb20gYW4gOnJlZjpgaW5pIGZpbGUgPGluaWZpbGVzPmAuIElmIHRoZQotICAgICAgICBz
cGVjaWZpZWQgbmFtZSBoYXNuJ3QgYmVlbiByZWdpc3RlcmVkIHRocm91Z2ggYSBwcmlvcgotICAg
ICAgICA6cHk6ZnVuYzpgcGFyc2VyLmFkZGluaSA8X3B5dGVzdC5jb25maWcuUGFyc2VyLmFkZGlu
aT5gCi0gICAgICAgIGNhbGwgKHVzdWFsbHkgZnJvbSBhIHBsdWdpbiksIGEgVmFsdWVFcnJvciBp
cyByYWlzZWQuICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5faW5p
Y2FjaGVbbmFtZV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgc2VsZi5f
aW5pY2FjaGVbbmFtZV0gPSB2YWwgPSBzZWxmLl9nZXRpbmkobmFtZSkKLSAgICAgICAgICAgIHJl
dHVybiB2YWwKLQotICAgIGRlZiBfZ2V0aW5pKHNlbGYsIG5hbWUpOgotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBkZXNjcmlwdGlvbiwgdHlwZSwgZGVmYXVsdCA9IHNlbGYuX3BhcnNlci5faW5p
ZGljdFtuYW1lXQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJ1bmtub3duIGNvbmZpZ3VyYXRpb24gdmFsdWU6ICVyIiAlIChuYW1lLCkpCi0g
ICAgICAgIHZhbHVlID0gc2VsZi5fZ2V0X292ZXJyaWRlX2luaV92YWx1ZShuYW1lKQotICAgICAg
ICBpZiB2YWx1ZSBpcyBOb25lOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHZh
bHVlID0gc2VsZi5pbmljZmdbbmFtZV0KLSAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAg
ICAgICAgICAgICAgICBpZiBkZWZhdWx0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZGVmYXVsdAotICAgICAgICAgICAgICAgIGlmIHR5cGUgaXMgTm9uZToKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICcnCi0gICAgICAgICAgICAgICAgcmV0dXJuIFtdCi0gICAg
ICAgIGlmIHR5cGUgPT0gInBhdGhsaXN0IjoKLSAgICAgICAgICAgIGRwID0gcHkucGF0aC5sb2Nh
bChzZWxmLmluaWNmZy5jb25maWcucGF0aCkuZGlycGF0aCgpCi0gICAgICAgICAgICB2YWx1ZXMg
PSBbXQotICAgICAgICAgICAgZm9yIHJlbHBhdGggaW4gc2hsZXguc3BsaXQodmFsdWUpOgotICAg
ICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoZHAuam9pbihyZWxwYXRoLCBhYnM9VHJ1ZSkpCi0g
ICAgICAgICAgICByZXR1cm4gdmFsdWVzCi0gICAgICAgIGVsaWYgdHlwZSA9PSAiYXJncyI6Ci0g
ICAgICAgICAgICByZXR1cm4gc2hsZXguc3BsaXQodmFsdWUpCi0gICAgICAgIGVsaWYgdHlwZSA9
PSAibGluZWxpc3QiOgotICAgICAgICAgICAgcmV0dXJuIFt0IGZvciB0IGluIG1hcChsYW1iZGEg
eDogeC5zdHJpcCgpLCB2YWx1ZS5zcGxpdCgiXG4iKSkgaWYgdF0KLSAgICAgICAgZWxpZiB0eXBl
ID09ICJib29sIjoKLSAgICAgICAgICAgIHJldHVybiBib29sKF9zdHJ0b2Jvb2wodmFsdWUuc3Ry
aXAoKSkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBhc3NlcnQgdHlwZSBpcyBOb25lCi0g
ICAgICAgICAgICByZXR1cm4gdmFsdWUKLQotICAgIGRlZiBfZ2V0Y29uZnRlc3RfcGF0aGxpc3Qo
c2VsZiwgbmFtZSwgcGF0aCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG1vZCwgcmVscm9v
dHMgPSBzZWxmLnBsdWdpbm1hbmFnZXIuX3JnZXRfd2l0aF9jb25mbW9kKG5hbWUsIHBhdGgpCi0g
ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAg
IG1vZHBhdGggPSBweS5wYXRoLmxvY2FsKG1vZC5fX2ZpbGVfXykuZGlycGF0aCgpCi0gICAgICAg
IHZhbHVlcyA9IFtdCi0gICAgICAgIGZvciByZWxyb290IGluIHJlbHJvb3RzOgotICAgICAgICAg
ICAgaWYgbm90IGlzaW5zdGFuY2UocmVscm9vdCwgcHkucGF0aC5sb2NhbCk6Ci0gICAgICAgICAg
ICAgICAgcmVscm9vdCA9IHJlbHJvb3QucmVwbGFjZSgiLyIsIHB5LnBhdGgubG9jYWwuc2VwKQot
ICAgICAgICAgICAgICAgIHJlbHJvb3QgPSBtb2RwYXRoLmpvaW4ocmVscm9vdCwgYWJzPVRydWUp
Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHJlbHJvb3QpCi0gICAgICAgIHJldHVybiB2YWx1
ZXMKLQotICAgIGRlZiBfZ2V0X292ZXJyaWRlX2luaV92YWx1ZShzZWxmLCBuYW1lKToKLSAgICAg
ICAgdmFsdWUgPSBOb25lCi0gICAgICAgICMgb3ZlcnJpZGVfaW5pIGlzIGEgbGlzdCBvZiBsaXN0
LCB0byBzdXBwb3J0IGJvdGggLW8gZm9vMT1iYXIxIGZvbzI9YmFyMiBhbmQKLSAgICAgICAgIyBh
bmQgLW8gZm9vMT1iYXIxIC1vIGZvbzI9YmFyMiBvcHRpb25zCi0gICAgICAgICMgYWx3YXlzIHVz
ZSB0aGUgbGFzdCBpdGVtIGlmIG11bHRpcGxlIHZhbHVlIHNldCBmb3Igc2FtZSBpbmktbmFtZSwK
LSAgICAgICAgIyBlLmcuIC1vIGZvbz1iYXIxIC1vIGZvbz1iYXIyIHdpbGwgc2V0IGZvbyB0byBi
YXIyCi0gICAgICAgIGZvciBpbmlfY29uZmlnX2xpc3QgaW4gc2VsZi5fb3ZlcnJpZGVfaW5pOgot
ICAgICAgICAgICAgZm9yIGluaV9jb25maWcgaW4gaW5pX2NvbmZpZ19saXN0OgotICAgICAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgKGtleSwgdXNlcl9pbmlfdmFsdWUpID0g
aW5pX2NvbmZpZy5zcGxpdCgiPSIsIDEpCi0gICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJy
b3I6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFVzYWdlRXJyb3IoIi1vLy0tb3ZlcnJpZGUt
aW5pIGV4cGVjdHMgb3B0aW9uPXZhbHVlIHN0eWxlLiIpCi0gICAgICAgICAgICAgICAgaWYga2V5
ID09IG5hbWU6Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdXNlcl9pbmlfdmFsdWUKLSAg
ICAgICAgcmV0dXJuIHZhbHVlCi0KLSAgICBkZWYgZ2V0b3B0aW9uKHNlbGYsIG5hbWUsIGRlZmF1
bHQ9bm90c2V0LCBza2lwPUZhbHNlKToKLSAgICAgICAgIiIiIHJldHVybiBjb21tYW5kIGxpbmUg
b3B0aW9uIHZhbHVlLgotCi0gICAgICAgIDphcmcgbmFtZTogbmFtZSBvZiB0aGUgb3B0aW9uLiAg
WW91IG1heSBhbHNvIHNwZWNpZnkKLSAgICAgICAgICAgIHRoZSBsaXRlcmFsIGBgLS1PUFRgYCBv
cHRpb24gaW5zdGVhZCBvZiB0aGUgImRlc3QiIG9wdGlvbiBuYW1lLgotICAgICAgICA6YXJnIGRl
ZmF1bHQ6IGRlZmF1bHQgdmFsdWUgaWYgbm8gb3B0aW9uIG9mIHRoYXQgbmFtZSBleGlzdHMuCi0g
ICAgICAgIDphcmcgc2tpcDogaWYgVHJ1ZSByYWlzZSBweXRlc3Quc2tpcCBpZiBvcHRpb24gZG9l
cyBub3QgZXhpc3RzCi0gICAgICAgICAgICBvciBoYXMgYSBOb25lIHZhbHVlLgotICAgICAgICAi
IiIKLSAgICAgICAgbmFtZSA9IHNlbGYuX29wdDJkZXN0LmdldChuYW1lLCBuYW1lKQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICB2YWwgPSBnZXRhdHRyKHNlbGYub3B0aW9uLCBuYW1lKQotICAg
ICAgICAgICAgaWYgdmFsIGlzIE5vbmUgYW5kIHNraXA6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
QXR0cmlidXRlRXJyb3IobmFtZSkKLSAgICAgICAgICAgIHJldHVybiB2YWwKLSAgICAgICAgZXhj
ZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgaWYgZGVmYXVsdCBpcyBub3Qgbm90c2V0
OgotICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Ci0gICAgICAgICAgICBpZiBza2lwOgot
ICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgICAgICBweXRlc3Quc2tp
cCgibm8gJXIgb3B0aW9uIGZvdW5kIiAlIChuYW1lLCkpCi0gICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCJubyBvcHRpb24gbmFtZWQgJXIiICUgKG5hbWUsKSkKLQotICAgIGRlZiBnZXR2YWx1
ZShzZWxmLCBuYW1lLCBwYXRoPU5vbmUpOgotICAgICAgICAiIiIgKGRlcHJlY2F0ZWQsIHVzZSBn
ZXRvcHRpb24oKSkgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmdldG9wdGlvbihuYW1lKQotCi0g
ICAgZGVmIGdldHZhbHVlb3Jza2lwKHNlbGYsIG5hbWUsIHBhdGg9Tm9uZSk6Ci0gICAgICAgICIi
IiAoZGVwcmVjYXRlZCwgdXNlIGdldG9wdGlvbihza2lwPVRydWUpKSAiIiIKLSAgICAgICAgcmV0
dXJuIHNlbGYuZ2V0b3B0aW9uKG5hbWUsIHNraXA9VHJ1ZSkKLQotCi1kZWYgZXhpc3RzKHBhdGgs
IGlnbm9yZT1FbnZpcm9ubWVudEVycm9yKToKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBwYXRo
LmNoZWNrKCkKLSAgICBleGNlcHQgaWdub3JlOgotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1k
ZWYgZ2V0Y2ZnKGFyZ3MsIHdhcm5mdW5jPU5vbmUpOgotICAgICIiIgotICAgIFNlYXJjaCB0aGUg
bGlzdCBvZiBhcmd1bWVudHMgZm9yIGEgdmFsaWQgaW5pLWZpbGUgZm9yIHB5dGVzdCwKLSAgICBh
bmQgcmV0dXJuIGEgdHVwbGUgb2YgKHJvb3RkaXIsIGluaWZpbGUsIGNmZy1kaWN0KS4KLQotICAg
IG5vdGU6IHdhcm5mdW5jIGlzIGFuIG9wdGlvbmFsIGZ1bmN0aW9uIHVzZWQgdG8gd2FybgotICAg
ICAgICBhYm91dCBpbmktZmlsZXMgdGhhdCB1c2UgZGVwcmVjYXRlZCBmZWF0dXJlcy4KLSAgICAg
ICAgVGhpcyBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBweXRlc3QKLSAgICAgICAg
YWRvcHRzIHN0YW5kYXJkIGRlcHJlY2F0aW9uIHdhcm5pbmdzICgjMTgwNCkuCi0gICAgIiIiCi0g
ICAgZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IFNFVFVQX0NGR19QWVRFU1QKLSAgICBp
bmliYXNlbmFtZXMgPSBbInB5dGVzdC5pbmkiLCAidG94LmluaSIsICJzZXR1cC5jZmciXQotICAg
IGFyZ3MgPSBbeCBmb3IgeCBpbiBhcmdzIGlmIG5vdCBzdHIoeCkuc3RhcnRzd2l0aCgiLSIpXQot
ICAgIGlmIG5vdCBhcmdzOgotICAgICAgICBhcmdzID0gW3B5LnBhdGgubG9jYWwoKV0KLSAgICBm
b3IgYXJnIGluIGFyZ3M6Ci0gICAgICAgIGFyZyA9IHB5LnBhdGgubG9jYWwoYXJnKQotICAgICAg
ICBmb3IgYmFzZSBpbiBhcmcucGFydHMocmV2ZXJzZT1UcnVlKToKLSAgICAgICAgICAgIGZvciBp
bmliYXNlbmFtZSBpbiBpbmliYXNlbmFtZXM6Ci0gICAgICAgICAgICAgICAgcCA9IGJhc2Uuam9p
bihpbmliYXNlbmFtZSkKLSAgICAgICAgICAgICAgICBpZiBleGlzdHMocCk6Ci0gICAgICAgICAg
ICAgICAgICAgIGluaWNvbmZpZyA9IHB5LmluaWNvbmZpZy5JbmlDb25maWcocCkKLSAgICAgICAg
ICAgICAgICAgICAgaWYgJ3B5dGVzdCcgaW4gaW5pY29uZmlnLnNlY3Rpb25zOgotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgaW5pYmFzZW5hbWUgPT0gJ3NldHVwLmNmZycgYW5kIHdhcm5mdW5j
OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5mdW5jKCdDMScsIFNFVFVQX0NGR19Q
WVRFU1QpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZSwgcCwgaW5pY29uZmln
WydweXRlc3QnXQotICAgICAgICAgICAgICAgICAgICBpZiBpbmliYXNlbmFtZSA9PSAnc2V0dXAu
Y2ZnJyBhbmQgJ3Rvb2w6cHl0ZXN0JyBpbiBpbmljb25maWcuc2VjdGlvbnM6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYmFzZSwgcCwgaW5pY29uZmlnWyd0b29sOnB5dGVzdCddCi0g
ICAgICAgICAgICAgICAgICAgIGVsaWYgaW5pYmFzZW5hbWUgPT0gInB5dGVzdC5pbmkiOgotICAg
ICAgICAgICAgICAgICAgICAgICAgIyBhbGxvd2VkIHRvIGJlIGVtcHR5Ci0gICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYmFzZSwgcCwge30KLSAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9u
ZQotCi0KLWRlZiBnZXRfY29tbW9uX2FuY2VzdG9yKHBhdGhzKToKLSAgICBjb21tb25fYW5jZXN0
b3IgPSBOb25lCi0gICAgZm9yIHBhdGggaW4gcGF0aHM6Ci0gICAgICAgIGlmIG5vdCBwYXRoLmV4
aXN0cygpOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgaWYgY29tbW9uX2FuY2VzdG9y
IGlzIE5vbmU6Ci0gICAgICAgICAgICBjb21tb25fYW5jZXN0b3IgPSBwYXRoCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBpZiBwYXRoLnJlbHRvKGNvbW1vbl9hbmNlc3Rvcikgb3IgcGF0aCA9
PSBjb21tb25fYW5jZXN0b3I6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
IGVsaWYgY29tbW9uX2FuY2VzdG9yLnJlbHRvKHBhdGgpOgotICAgICAgICAgICAgICAgIGNvbW1v
bl9hbmNlc3RvciA9IHBhdGgKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2hh
cmVkID0gcGF0aC5jb21tb24oY29tbW9uX2FuY2VzdG9yKQotICAgICAgICAgICAgICAgIGlmIHNo
YXJlZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgY29tbW9uX2FuY2VzdG9yID0g
c2hhcmVkCi0gICAgaWYgY29tbW9uX2FuY2VzdG9yIGlzIE5vbmU6Ci0gICAgICAgIGNvbW1vbl9h
bmNlc3RvciA9IHB5LnBhdGgubG9jYWwoKQotICAgIGVsaWYgY29tbW9uX2FuY2VzdG9yLmlzZmls
ZSgpOgotICAgICAgICBjb21tb25fYW5jZXN0b3IgPSBjb21tb25fYW5jZXN0b3IuZGlycGF0aCgp
Ci0gICAgcmV0dXJuIGNvbW1vbl9hbmNlc3RvcgotCi0KLWRlZiBnZXRfZGlyc19mcm9tX2FyZ3Mo
YXJncyk6Ci0gICAgZGVmIGlzX29wdGlvbih4KToKLSAgICAgICAgcmV0dXJuIHN0cih4KS5zdGFy
dHN3aXRoKCctJykKLQotICAgIGRlZiBnZXRfZmlsZV9wYXJ0X2Zyb21fbm9kZV9pZCh4KToKLSAg
ICAgICAgcmV0dXJuIHN0cih4KS5zcGxpdCgnOjonKVswXQotCi0gICAgZGVmIGdldF9kaXJfZnJv
bV9wYXRoKHBhdGgpOgotICAgICAgICBpZiBwYXRoLmlzZGlyKCk6Ci0gICAgICAgICAgICByZXR1
cm4gcGF0aAotICAgICAgICByZXR1cm4gcHkucGF0aC5sb2NhbChwYXRoLmRpcm5hbWUpCi0KLSAg
ICAjIFRoZXNlIGxvb2sgbGlrZSBwYXRocyBidXQgbWF5IG5vdCBleGlzdAotICAgIHBvc3NpYmxl
X3BhdGhzID0gKAotICAgICAgICBweS5wYXRoLmxvY2FsKGdldF9maWxlX3BhcnRfZnJvbV9ub2Rl
X2lkKGFyZykpCi0gICAgICAgIGZvciBhcmcgaW4gYXJncwotICAgICAgICBpZiBub3QgaXNfb3B0
aW9uKGFyZykKLSAgICApCi0KLSAgICByZXR1cm4gWwotICAgICAgICBnZXRfZGlyX2Zyb21fcGF0
aChwYXRoKQotICAgICAgICBmb3IgcGF0aCBpbiBwb3NzaWJsZV9wYXRocwotICAgICAgICBpZiBw
YXRoLmV4aXN0cygpCi0gICAgXQotCi0KLWRlZiBkZXRlcm1pbmVfc2V0dXAoaW5pZmlsZSwgYXJn
cywgd2FybmZ1bmM9Tm9uZSk6Ci0gICAgZGlycyA9IGdldF9kaXJzX2Zyb21fYXJncyhhcmdzKQot
ICAgIGlmIGluaWZpbGU6Ci0gICAgICAgIGluaWNvbmZpZyA9IHB5LmluaWNvbmZpZy5JbmlDb25m
aWcoaW5pZmlsZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW5pY2ZnID0gaW5pY29uZmln
WyJweXRlc3QiXQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBpbmljZmcg
PSBOb25lCi0gICAgICAgIHJvb3RkaXIgPSBnZXRfY29tbW9uX2FuY2VzdG9yKGRpcnMpCi0gICAg
ZWxzZToKLSAgICAgICAgYW5jZXN0b3IgPSBnZXRfY29tbW9uX2FuY2VzdG9yKGRpcnMpCi0gICAg
ICAgIHJvb3RkaXIsIGluaWZpbGUsIGluaWNmZyA9IGdldGNmZyhbYW5jZXN0b3JdLCB3YXJuZnVu
Yz13YXJuZnVuYykKLSAgICAgICAgaWYgcm9vdGRpciBpcyBOb25lOgotICAgICAgICAgICAgZm9y
IHJvb3RkaXIgaW4gYW5jZXN0b3IucGFydHMocmV2ZXJzZT1UcnVlKToKLSAgICAgICAgICAgICAg
ICBpZiByb290ZGlyLmpvaW4oInNldHVwLnB5IikuZXhpc3RzKCk6Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJvb3RkaXIsIGlu
aWZpbGUsIGluaWNmZyA9IGdldGNmZyhkaXJzLCB3YXJuZnVuYz13YXJuZnVuYykKLSAgICAgICAg
ICAgICAgICBpZiByb290ZGlyIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJvb3RkaXIg
PSBnZXRfY29tbW9uX2FuY2VzdG9yKFtweS5wYXRoLmxvY2FsKCksIGFuY2VzdG9yXSkKLSAgICAg
ICAgICAgICAgICAgICAgaXNfZnNfcm9vdCA9IG9zLnBhdGguc3BsaXRkcml2ZShzdHIocm9vdGRp
cikpWzFdID09ICcvJwotICAgICAgICAgICAgICAgICAgICBpZiBpc19mc19yb290OgotICAgICAg
ICAgICAgICAgICAgICAgICAgcm9vdGRpciA9IGFuY2VzdG9yCi0gICAgcmV0dXJuIHJvb3RkaXIs
IGluaWZpbGUsIGluaWNmZyBvciB7fQotCi0KLWRlZiBzZXRucyhvYmosIGRpYyk6Ci0gICAgaW1w
b3J0IHB5dGVzdAotICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBkaWMuaXRlbXMoKToKLSAgICAgICAg
aWYgaXNpbnN0YW5jZSh2YWx1ZSwgZGljdCk6Ci0gICAgICAgICAgICBtb2QgPSBnZXRhdHRyKG9i
aiwgbmFtZSwgTm9uZSkKLSAgICAgICAgICAgIGlmIG1vZCBpcyBOb25lOgotICAgICAgICAgICAg
ICAgIG1vZG5hbWUgPSAicHl0ZXN0LiVzIiAlIG5hbWUKLSAgICAgICAgICAgICAgICBtb2QgPSB0
eXBlcy5Nb2R1bGVUeXBlKG1vZG5hbWUpCi0gICAgICAgICAgICAgICAgc3lzLm1vZHVsZXNbbW9k
bmFtZV0gPSBtb2QKLSAgICAgICAgICAgICAgICBtb2QuX19hbGxfXyA9IFtdCi0gICAgICAgICAg
ICAgICAgc2V0YXR0cihvYmosIG5hbWUsIG1vZCkKLSAgICAgICAgICAgIG9iai5fX2FsbF9fLmFw
cGVuZChuYW1lKQotICAgICAgICAgICAgc2V0bnMobW9kLCB2YWx1ZSkKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHNldGF0dHIob2JqLCBuYW1lLCB2YWx1ZSkKLSAgICAgICAgICAgIG9iai5f
X2FsbF9fLmFwcGVuZChuYW1lKQotICAgICAgICAgICAgIyBpZiBvYmogIT0gcHl0ZXN0OgotICAg
ICAgICAgICAgIyAgICBweXRlc3QuX19hbGxfXy5hcHBlbmQobmFtZSkKLSAgICAgICAgICAgIHNl
dGF0dHIocHl0ZXN0LCBuYW1lLCB2YWx1ZSkKLQotCi1kZWYgY3JlYXRlX3Rlcm1pbmFsX3dyaXRl
cihjb25maWcsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgIiIiQ3JlYXRlIGEgVGVybWluYWxXcml0
ZXIgaW5zdGFuY2UgY29uZmlndXJlZCBhY2NvcmRpbmcgdG8gdGhlIG9wdGlvbnMKLSAgICBpbiB0
aGUgY29uZmlnIG9iamVjdC4gRXZlcnkgY29kZSB3aGljaCByZXF1aXJlcyBhIFRlcm1pbmFsV3Jp
dGVyIG9iamVjdAotICAgIGFuZCBoYXMgYWNjZXNzIHRvIGEgY29uZmlnIG9iamVjdCBzaG91bGQg
dXNlIHRoaXMgZnVuY3Rpb24uCi0gICAgIiIiCi0gICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRl
cigqYXJncywgKiprd2FyZ3MpCi0gICAgaWYgY29uZmlnLm9wdGlvbi5jb2xvciA9PSAneWVzJzoK
LSAgICAgICAgdHcuaGFzbWFya3VwID0gVHJ1ZQotICAgIGlmIGNvbmZpZy5vcHRpb24uY29sb3Ig
PT0gJ25vJzoKLSAgICAgICAgdHcuaGFzbWFya3VwID0gRmFsc2UKLSAgICByZXR1cm4gdHcKLQot
Ci1kZWYgX3N0cnRvYm9vbCh2YWwpOgotICAgICIiIkNvbnZlcnQgYSBzdHJpbmcgcmVwcmVzZW50
YXRpb24gb2YgdHJ1dGggdG8gdHJ1ZSAoMSkgb3IgZmFsc2UgKDApLgotCi0gICAgVHJ1ZSB2YWx1
ZXMgYXJlICd5JywgJ3llcycsICd0JywgJ3RydWUnLCAnb24nLCBhbmQgJzEnOyBmYWxzZSB2YWx1
ZXMKLSAgICBhcmUgJ24nLCAnbm8nLCAnZicsICdmYWxzZScsICdvZmYnLCBhbmQgJzAnLiAgUmFp
c2VzIFZhbHVlRXJyb3IgaWYKLSAgICAndmFsJyBpcyBhbnl0aGluZyBlbHNlLgotCi0gICAgLi4g
bm90ZTo6IGNvcGllZCBmcm9tIGRpc3R1dGlscy51dGlsCi0gICAgIiIiCi0gICAgdmFsID0gdmFs
Lmxvd2VyKCkKLSAgICBpZiB2YWwgaW4gKCd5JywgJ3llcycsICd0JywgJ3RydWUnLCAnb24nLCAn
MScpOgotICAgICAgICByZXR1cm4gMQotICAgIGVsaWYgdmFsIGluICgnbicsICdubycsICdmJywg
J2ZhbHNlJywgJ29mZicsICcwJyk6Ci0gICAgICAgIHJldHVybiAwCi0gICAgZWxzZToKLSAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCB0cnV0aCB2YWx1ZSAlciIgJSAodmFsLCkpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlYnVnZ2luZy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvZGVidWdnaW5nLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkN2Rj
YTc4MDk1NmVjMzk3NjJkMDRjYWExN2Y5ZDBmYjNiZGVmZmMyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZGVidWdnaW5n
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAgQEAKLSIiIiBpbnRlcmFjdGl2ZSBkZWJ1
Z2dpbmcgd2l0aCBQREIsIHRoZSBQeXRob24gRGVidWdnZXIuICIiIgotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0
IHBkYgotaW1wb3J0IHN5cwotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAg
Z3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQotICAgIGdyb3VwLl9hZGRvcHRpb24o
Ci0gICAgICAgICctLXBkYicsIGRlc3Q9InVzZXBkYiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0g
ICAgICAgIGhlbHA9InN0YXJ0IHRoZSBpbnRlcmFjdGl2ZSBQeXRob24gZGVidWdnZXIgb24gZXJy
b3JzLiIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbigKLSAgICAgICAgJy0tcGRiY2xzJywgZGVzdD0i
dXNlcGRiX2NscyIsIG1ldGF2YXI9Im1vZHVsZW5hbWU6Y2xhc3NuYW1lIiwKLSAgICAgICAgaGVs
cD0ic3RhcnQgYSBjdXN0b20gaW50ZXJhY3RpdmUgUHl0aG9uIGRlYnVnZ2VyIG9uIGVycm9ycy4g
IgotICAgICAgICAgICAgICJGb3IgZXhhbXBsZTogLS1wZGJjbHM9SVB5dGhvbi50ZXJtaW5hbC5k
ZWJ1Z2dlcjpUZXJtaW5hbFBkYiIpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToK
LSAgICBpZiBjb25maWcuZ2V0dmFsdWUoInVzZXBkYl9jbHMiKToKLSAgICAgICAgbW9kbmFtZSwg
Y2xhc3NuYW1lID0gY29uZmlnLmdldHZhbHVlKCJ1c2VwZGJfY2xzIikuc3BsaXQoIjoiKQotICAg
ICAgICBfX2ltcG9ydF9fKG1vZG5hbWUpCi0gICAgICAgIHBkYl9jbHMgPSBnZXRhdHRyKHN5cy5t
b2R1bGVzW21vZG5hbWVdLCBjbGFzc25hbWUpCi0gICAgZWxzZToKLSAgICAgICAgcGRiX2NscyA9
IHBkYi5QZGIKLQotICAgIGlmIGNvbmZpZy5nZXR2YWx1ZSgidXNlcGRiIik6Ci0gICAgICAgIGNv
bmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKFBkYkludm9rZSgpLCAncGRiaW52b2tlJykKLQot
ICAgIG9sZCA9IChwZGIuc2V0X3RyYWNlLCBweXRlc3RQREIuX3BsdWdpbm1hbmFnZXIpCi0KLSAg
ICBkZWYgZmluKCk6Ci0gICAgICAgIHBkYi5zZXRfdHJhY2UsIHB5dGVzdFBEQi5fcGx1Z2lubWFu
YWdlciA9IG9sZAotICAgICAgICBweXRlc3RQREIuX2NvbmZpZyA9IE5vbmUKLSAgICAgICAgcHl0
ZXN0UERCLl9wZGJfY2xzID0gcGRiLlBkYgotCi0gICAgcGRiLnNldF90cmFjZSA9IHB5dGVzdFBE
Qi5zZXRfdHJhY2UKLSAgICBweXRlc3RQREIuX3BsdWdpbm1hbmFnZXIgPSBjb25maWcucGx1Z2lu
bWFuYWdlcgotICAgIHB5dGVzdFBEQi5fY29uZmlnID0gY29uZmlnCi0gICAgcHl0ZXN0UERCLl9w
ZGJfY2xzID0gcGRiX2NscwotICAgIGNvbmZpZy5fY2xlYW51cC5hcHBlbmQoZmluKQotCi0KLWNs
YXNzIHB5dGVzdFBEQjoKLSAgICAiIiIgUHNldWRvIFBEQiB0aGF0IGRlZmVycyB0byB0aGUgcmVh
bCBwZGIuICIiIgotICAgIF9wbHVnaW5tYW5hZ2VyID0gTm9uZQotICAgIF9jb25maWcgPSBOb25l
Ci0gICAgX3BkYl9jbHMgPSBwZGIuUGRiCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0
X3RyYWNlKGNscyk6Ci0gICAgICAgICIiIiBpbnZva2UgUERCIHNldF90cmFjZSBkZWJ1Z2dpbmcs
IGRyb3BwaW5nIGFueSBJTyBjYXB0dXJpbmcuICIiIgotICAgICAgICBpbXBvcnQgX3B5dGVzdC5j
b25maWcKLSAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKCkuZl9iYWNrCi0gICAgICAgIGlm
IGNscy5fcGx1Z2lubWFuYWdlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGNhcG1hbiA9IGNs
cy5fcGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oImNhcHR1cmVtYW5hZ2VyIikKLSAgICAgICAgICAg
IGlmIGNhcG1hbjoKLSAgICAgICAgICAgICAgICBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVy
ZShpbl89VHJ1ZSkKLSAgICAgICAgICAgIHR3ID0gX3B5dGVzdC5jb25maWcuY3JlYXRlX3Rlcm1p
bmFsX3dyaXRlcihjbHMuX2NvbmZpZykKLSAgICAgICAgICAgIHR3LmxpbmUoKQotICAgICAgICAg
ICAgdHcuc2VwKCI+IiwgIlBEQiBzZXRfdHJhY2UgKElPLWNhcHR1cmluZyB0dXJuZWQgb2ZmKSIp
Ci0gICAgICAgICAgICBjbHMuX3BsdWdpbm1hbmFnZXIuaG9vay5weXRlc3RfZW50ZXJfcGRiKGNv
bmZpZz1jbHMuX2NvbmZpZykKLSAgICAgICAgY2xzLl9wZGJfY2xzKCkuc2V0X3RyYWNlKGZyYW1l
KQotCi0KLWNsYXNzIFBkYkludm9rZToKLSAgICBkZWYgcHl0ZXN0X2V4Y2VwdGlvbl9pbnRlcmFj
dChzZWxmLCBub2RlLCBjYWxsLCByZXBvcnQpOgotICAgICAgICBjYXBtYW4gPSBub2RlLmNvbmZp
Zy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigiY2FwdHVyZW1hbmFnZXIiKQotICAgICAgICBpZiBj
YXBtYW46Ci0gICAgICAgICAgICBvdXQsIGVyciA9IGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0
dXJlKGluXz1UcnVlKQotICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShvdXQpCi0gICAgICAg
ICAgICBzeXMuc3Rkb3V0LndyaXRlKGVycikKLSAgICAgICAgX2VudGVyX3BkYihub2RlLCBjYWxs
LmV4Y2luZm8sIHJlcG9ydCkKLQotICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCBl
eGNyZXByLCBleGNpbmZvKToKLSAgICAgICAgZm9yIGxpbmUgaW4gc3RyKGV4Y3JlcHIpLnNwbGl0
KCJcbiIpOgotICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiSU5URVJOQUxFUlJPUj4gJXNc
biIgJSBsaW5lKQotICAgICAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCi0gICAgICAgIHRiID0g
X3Bvc3Rtb3J0ZW1fdHJhY2ViYWNrKGV4Y2luZm8pCi0gICAgICAgIHBvc3RfbW9ydGVtKHRiKQot
Ci0KLWRlZiBfZW50ZXJfcGRiKG5vZGUsIGV4Y2luZm8sIHJlcCk6Ci0gICAgIyBYWFggd2UgcmUt
dXNlIHRoZSBUZXJtaW5hbFJlcG9ydGVyJ3MgdGVybWluYWx3cml0ZXIKLSAgICAjIGJlY2F1c2Ug
dGhpcyBzZWVtcyB0byBhdm9pZCBzb21lIGVuY29kaW5nIHJlbGF0ZWQgdHJvdWJsZXMKLSAgICAj
IGZvciBub3QgY29tcGxldGVseSBjbGVhciByZWFzb25zLgotICAgIHR3ID0gbm9kZS5jb25maWcu
cGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oInRlcm1pbmFscmVwb3J0ZXIiKS5fdHcKLSAgICB0dy5s
aW5lKCkKLSAgICB0dy5zZXAoIj4iLCAidHJhY2ViYWNrIikKLSAgICByZXAudG90ZXJtaW5hbCh0
dykKLSAgICB0dy5zZXAoIj4iLCAiZW50ZXJpbmcgUERCIikKLSAgICB0YiA9IF9wb3N0bW9ydGVt
X3RyYWNlYmFjayhleGNpbmZvKQotICAgIHBvc3RfbW9ydGVtKHRiKQotICAgIHJlcC5fcGRic2hv
d24gPSBUcnVlCi0gICAgcmV0dXJuIHJlcAotCi0KLWRlZiBfcG9zdG1vcnRlbV90cmFjZWJhY2so
ZXhjaW5mbyk6Ci0gICAgIyBBIGRvY3Rlc3QuVW5leHBlY3RlZEV4Y2VwdGlvbiBpcyBub3QgdXNl
ZnVsIGZvciBwb3N0X21vcnRlbS4KLSAgICAjIFVzZSB0aGUgdW5kZXJseWluZyBleGNlcHRpb24g
aW5zdGVhZDoKLSAgICBmcm9tIGRvY3Rlc3QgaW1wb3J0IFVuZXhwZWN0ZWRFeGNlcHRpb24KLSAg
ICBpZiBpc2luc3RhbmNlKGV4Y2luZm8udmFsdWUsIFVuZXhwZWN0ZWRFeGNlcHRpb24pOgotICAg
ICAgICByZXR1cm4gZXhjaW5mby52YWx1ZS5leGNfaW5mb1syXQotICAgIGVsc2U6Ci0gICAgICAg
IHJldHVybiBleGNpbmZvLl9leGNpbmZvWzJdCi0KLQotZGVmIF9maW5kX2xhc3Rfbm9uX2hpZGRl
bl9mcmFtZShzdGFjayk6Ci0gICAgaSA9IG1heCgwLCBsZW4oc3RhY2spIC0gMSkKLSAgICB3aGls
ZSBpIGFuZCBzdGFja1tpXVswXS5mX2xvY2Fscy5nZXQoIl9fdHJhY2ViYWNraGlkZV9fIiwgRmFs
c2UpOgotICAgICAgICBpIC09IDEKLSAgICByZXR1cm4gaQotCi0KLWRlZiBwb3N0X21vcnRlbSh0
KToKLSAgICBjbGFzcyBQZGIocHl0ZXN0UERCLl9wZGJfY2xzKToKLSAgICAgICAgZGVmIGdldF9z
dGFjayhzZWxmLCBmLCB0KToKLSAgICAgICAgICAgIHN0YWNrLCBpID0gcGRiLlBkYi5nZXRfc3Rh
Y2soc2VsZiwgZiwgdCkKLSAgICAgICAgICAgIGlmIGYgaXMgTm9uZToKLSAgICAgICAgICAgICAg
ICBpID0gX2ZpbmRfbGFzdF9ub25faGlkZGVuX2ZyYW1lKHN0YWNrKQotICAgICAgICAgICAgcmV0
dXJuIHN0YWNrLCBpCi0gICAgcCA9IFBkYigpCi0gICAgcC5yZXNldCgpCi0gICAgcC5pbnRlcmFj
dGlvbihOb25lLCB0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZXByZWNhdGVk
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZXByZWNhdGVkLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5YzBmYmVjYTdiYzllOTc0MTcwYTllY2VhYzMyNzY3N2Y1NjFmMTIzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvZGVwcmVjYXRlZC5weQorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLSIi
IgotVGhpcyBtb2R1bGUgY29udGFpbnMgZGVwcmVjYXRpb24gbWVzc2FnZXMgYW5kIGJpdHMgb2Yg
Y29kZSB1c2VkIGVsc2V3aGVyZSBpbiB0aGUgY29kZWJhc2UKLXRoYXQgaXMgcGxhbm5lZCB0byBi
ZSByZW1vdmVkIGluIHRoZSBuZXh0IHB5dGVzdCByZWxlYXNlLgotCi1LZWVwaW5nIGl0IGluIGEg
Y2VudHJhbCBsb2NhdGlvbiBtYWtlcyBpdCBlYXN5IHRvIHRyYWNrIHdoYXQgaXMgZGVwcmVjYXRl
ZCBhbmQgc2hvdWxkCi1iZSByZW1vdmVkIHdoZW4gdGhlIHRpbWUgY29tZXMuCi0iIiIKLWZyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rp
b24KLQotCi1jbGFzcyBSZW1vdmVkSW5QeXRlc3Q0V2FybmluZyhEZXByZWNhdGlvbldhcm5pbmcp
OgotICAgICIiIndhcm5pbmcgY2xhc3MgZm9yIGZlYXR1cmVzIHJlbW92ZWQgaW4gcHl0ZXN0IDQu
MCIiIgotCi0KLU1BSU5fU1RSX0FSR1MgPSAncGFzc2luZyBhIHN0cmluZyB0byBweXRlc3QubWFp
bigpIGlzIGRlcHJlY2F0ZWQsICcgXAotICAgICdwYXNzIGEgbGlzdCBvZiBhcmd1bWVudHMgaW5z
dGVhZC4nCi0KLVlJRUxEX1RFU1RTID0gJ3lpZWxkIHRlc3RzIGFyZSBkZXByZWNhdGVkLCBhbmQg
c2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gcHl0ZXN0IDQuMCcKLQotRlVOQ0FSR19QUkVGSVgg
PSAoCi0gICAgJ3tuYW1lfTogZGVjbGFyaW5nIGZpeHR1cmVzIHVzaW5nICJweXRlc3RfZnVuY2Fy
Z19fIiBwcmVmaXggaXMgZGVwcmVjYXRlZCAnCi0gICAgJ2FuZCBzY2hlZHVsZWQgdG8gYmUgcmVt
b3ZlZCBpbiBweXRlc3QgNC4wLiAgJwotICAgICdQbGVhc2UgcmVtb3ZlIHRoZSBwcmVmaXggYW5k
IHVzZSB0aGUgQHB5dGVzdC5maXh0dXJlIGRlY29yYXRvciBpbnN0ZWFkLicpCi0KLVNFVFVQX0NG
R19QWVRFU1QgPSAnW3B5dGVzdF0gc2VjdGlvbiBpbiBzZXR1cC5jZmcgZmlsZXMgaXMgZGVwcmVj
YXRlZCwgdXNlIFt0b29sOnB5dGVzdF0gaW5zdGVhZC4nCi0KLUdFVEZVTkNBUkdWQUxVRSA9ICJ1
c2Ugb2YgZ2V0ZnVuY2FyZ3ZhbHVlIGlzIGRlcHJlY2F0ZWQsIHVzZSBnZXRmaXh0dXJldmFsdWUi
Ci0KLVJFU1VMVF9MT0cgPSAoCi0gICAgJy0tcmVzdWx0LWxvZyBpcyBkZXByZWNhdGVkIGFuZCBz
Y2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gcHl0ZXN0IDQuMC5cbicKLSAgICAnU2VlIGh0dHBzOi8v
ZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC91c2FnZS5odG1sI2NyZWF0aW5nLXJlc3VsdGxvZy1m
b3JtYXQtZmlsZXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uJwotKQotCi1NQVJLX0lORk9fQVRUUklC
VVRFID0gUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoCi0gICAgIk1hcmtJbmZvIG9iamVjdHMgYXJl
IGRlcHJlY2F0ZWQgYXMgdGhleSBjb250YWluIHRoZSBtZXJnZWQgbWFya3MiCi0pCi0KLU1BUktf
UEFSQU1FVEVSU0VUX1VOUEFDS0lORyA9IFJlbW92ZWRJblB5dGVzdDRXYXJuaW5nKAotICAgICJB
cHBseWluZyBtYXJrcyBkaXJlY3RseSB0byBwYXJhbWV0ZXJzIGlzIGRlcHJlY2F0ZWQsIgotICAg
ICIgcGxlYXNlIHVzZSBweXRlc3QucGFyYW0oLi4uLCBtYXJrcz0uLi4pIGluc3RlYWQuXG4iCi0g
ICAgIkZvciBtb3JlIGRldGFpbHMsIHNlZTogaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0
ZXN0L3BhcmFtZXRyaXplLmh0bWwiCi0pCi0KLUNPTExFQ1RPUl9NQUtFSVRFTSA9IFJlbW92ZWRJ
blB5dGVzdDRXYXJuaW5nKAotICAgICJweWNvbGxlY3RvciBtYWtlaXRlbSB3YXMgcmVtb3ZlZCAi
Ci0gICAgImFzIGl0IGlzIGFuIGFjY2lkZW50aWFsbHkgbGVha2VkIGludGVybmFsIGFwaSIKLSkK
LQotTUVUQUZVTkNfQUREX0NBTEwgPSAoCi0gICAgIk1ldGFmdW5jLmFkZGNhbGwgaXMgZGVwcmVj
YXRlZCBhbmQgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gcHl0ZXN0IDQuMC5cbiIKLSAgICAi
UGxlYXNlIHVzZSBNZXRhZnVuYy5wYXJhbWV0cml6ZSBpbnN0ZWFkLiIKLSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvZG9jdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZG9j
dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJhOTBlNTUxYzUwNWFlZDk5
M2E3OTkxOWRkMDM5OTk4NjEwYTZkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RvY3Rlc3QucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwzNjkgKzAsMCBAQAotIiIiIGRpc2NvdmVyIGFuZCBydW4gZG9jdGVzdHMgaW4gbW9k
dWxlcyBhbmQgdGVzdCBmaWxlcy4iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IHRyYWNlYmFjawotCi1p
bXBvcnQgcHl0ZXN0Ci1mcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgRXhjZXB0aW9uSW5m
bywgUmVwckZpbGVMb2NhdGlvbiwgVGVybWluYWxSZXByCi1mcm9tIF9weXRlc3QuZml4dHVyZXMg
aW1wb3J0IEZpeHR1cmVSZXF1ZXN0Ci0KLQotRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX05PTkUgPSAn
bm9uZScKLURPQ1RFU1RfUkVQT1JUX0NIT0lDRV9DRElGRiA9ICdjZGlmZicKLURPQ1RFU1RfUkVQ
T1JUX0NIT0lDRV9ORElGRiA9ICduZGlmZicKLURPQ1RFU1RfUkVQT1JUX0NIT0lDRV9VRElGRiA9
ICd1ZGlmZicKLURPQ1RFU1RfUkVQT1JUX0NIT0lDRV9PTkxZX0ZJUlNUX0ZBSUxVUkUgPSAnb25s
eV9maXJzdF9mYWlsdXJlJwotCi1ET0NURVNUX1JFUE9SVF9DSE9JQ0VTID0gKAotICAgIERPQ1RF
U1RfUkVQT1JUX0NIT0lDRV9OT05FLAotICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9DRElGRiwK
LSAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfTkRJRkYsCi0gICAgRE9DVEVTVF9SRVBPUlRfQ0hP
SUNFX1VESUZGLAotICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9PTkxZX0ZJUlNUX0ZBSUxVUkUs
Ci0pCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBwYXJzZXIuYWRkaW5p
KCdkb2N0ZXN0X29wdGlvbmZsYWdzJywgJ29wdGlvbiBmbGFncyBmb3IgZG9jdGVzdHMnLAotICAg
ICAgICAgICAgICAgICAgdHlwZT0iYXJncyIsIGRlZmF1bHQ9WyJFTExJUFNJUyJdKQotICAgIHBh
cnNlci5hZGRpbmkoImRvY3Rlc3RfZW5jb2RpbmciLCAnZW5jb2RpbmcgdXNlZCBmb3IgZG9jdGVz
dCBmaWxlcycsIGRlZmF1bHQ9InV0Zi04IikKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgi
Y29sbGVjdCIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCItLWRvY3Rlc3QtbW9kdWxlcyIsCi0gICAg
ICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgIGhlbHA9InJ1biBkb2N0ZXN0cyBpbiBhbGwgLnB5IG1vZHVsZXMiLAot
ICAgICAgICAgICAgICAgICAgICBkZXN0PSJkb2N0ZXN0bW9kdWxlcyIpCi0gICAgZ3JvdXAuYWRk
b3B0aW9uKCItLWRvY3Rlc3QtcmVwb3J0IiwKLSAgICAgICAgICAgICAgICAgICAgdHlwZT1zdHIu
bG93ZXIsIGRlZmF1bHQ9InVkaWZmIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0iY2hvb3Nl
IGFub3RoZXIgb3V0cHV0IGZvcm1hdCBmb3IgZGlmZnMgb24gZG9jdGVzdCBmYWlsdXJlIiwKLSAg
ICAgICAgICAgICAgICAgICAgY2hvaWNlcz1ET0NURVNUX1JFUE9SVF9DSE9JQ0VTLAotICAgICAg
ICAgICAgICAgICAgICBkZXN0PSJkb2N0ZXN0cmVwb3J0IikKLSAgICBncm91cC5hZGRvcHRpb24o
Ii0tZG9jdGVzdC1nbG9iIiwKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJhcHBlbmQiLCBk
ZWZhdWx0PVtdLCBtZXRhdmFyPSJwYXQiLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJkb2N0
ZXN0cyBmaWxlIG1hdGNoaW5nIHBhdHRlcm4sIGRlZmF1bHQ6IHRlc3QqLnR4dCIsCi0gICAgICAg
ICAgICAgICAgICAgIGRlc3Q9ImRvY3Rlc3RnbG9iIikKLSAgICBncm91cC5hZGRvcHRpb24oIi0t
ZG9jdGVzdC1pZ25vcmUtaW1wb3J0LWVycm9ycyIsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9
Imlnbm9yZSBkb2N0ZXN0IEltcG9ydEVycm9ycyIsCi0gICAgICAgICAgICAgICAgICAgIGRlc3Q9
ImRvY3Rlc3RfaWdub3JlX2ltcG9ydF9lcnJvcnMiKQotCi0KLWRlZiBweXRlc3RfY29sbGVjdF9m
aWxlKHBhdGgsIHBhcmVudCk6Ci0gICAgY29uZmlnID0gcGFyZW50LmNvbmZpZwotICAgIGlmIHBh
dGguZXh0ID09ICIucHkiOgotICAgICAgICBpZiBjb25maWcub3B0aW9uLmRvY3Rlc3Rtb2R1bGVz
IGFuZCBub3QgX2lzX3NldHVwX3B5KGNvbmZpZywgcGF0aCwgcGFyZW50KToKLSAgICAgICAgICAg
IHJldHVybiBEb2N0ZXN0TW9kdWxlKHBhdGgsIHBhcmVudCkKLSAgICBlbGlmIF9pc19kb2N0ZXN0
KGNvbmZpZywgcGF0aCwgcGFyZW50KToKLSAgICAgICAgcmV0dXJuIERvY3Rlc3RUZXh0ZmlsZShw
YXRoLCBwYXJlbnQpCi0KLQotZGVmIF9pc19zZXR1cF9weShjb25maWcsIHBhdGgsIHBhcmVudCk6
Ci0gICAgaWYgcGF0aC5iYXNlbmFtZSAhPSAic2V0dXAucHkiOgotICAgICAgICByZXR1cm4gRmFs
c2UKLSAgICBjb250ZW50cyA9IHBhdGgucmVhZCgpCi0gICAgcmV0dXJuICdzZXR1cHRvb2xzJyBp
biBjb250ZW50cyBvciAnZGlzdHV0aWxzJyBpbiBjb250ZW50cwotCi0KLWRlZiBfaXNfZG9jdGVz
dChjb25maWcsIHBhdGgsIHBhcmVudCk6Ci0gICAgaWYgcGF0aC5leHQgaW4gKCcudHh0JywgJy5y
c3QnKSBhbmQgcGFyZW50LnNlc3Npb24uaXNpbml0cGF0aChwYXRoKToKLSAgICAgICAgcmV0dXJu
IFRydWUKLSAgICBnbG9icyA9IGNvbmZpZy5nZXRvcHRpb24oImRvY3Rlc3RnbG9iIikgb3IgWyd0
ZXN0Ki50eHQnXQotICAgIGZvciBnbG9iIGluIGdsb2JzOgotICAgICAgICBpZiBwYXRoLmNoZWNr
KGZubWF0Y2g9Z2xvYik6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgIHJldHVybiBGYWxz
ZQotCi0KLWNsYXNzIFJlcHJGYWlsRG9jdGVzdChUZXJtaW5hbFJlcHIpOgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHJlcHJsb2NhdGlvbiwgbGluZXMpOgotICAgICAgICBzZWxmLnJlcHJsb2Nh
dGlvbiA9IHJlcHJsb2NhdGlvbgotICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMKLQotICAgIGRl
ZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5saW5lczoK
LSAgICAgICAgICAgIHR3LmxpbmUobGluZSkKLSAgICAgICAgc2VsZi5yZXBybG9jYXRpb24udG90
ZXJtaW5hbCh0dykKLQotCi1jbGFzcyBEb2N0ZXN0SXRlbShweXRlc3QuSXRlbSk6Ci0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhcmVudCwgcnVubmVyPU5vbmUsIGR0ZXN0PU5vbmUpOgot
ICAgICAgICBzdXBlcihEb2N0ZXN0SXRlbSwgc2VsZikuX19pbml0X18obmFtZSwgcGFyZW50KQot
ICAgICAgICBzZWxmLnJ1bm5lciA9IHJ1bm5lcgotICAgICAgICBzZWxmLmR0ZXN0ID0gZHRlc3QK
LSAgICAgICAgc2VsZi5vYmogPSBOb25lCi0gICAgICAgIHNlbGYuZml4dHVyZV9yZXF1ZXN0ID0g
Tm9uZQotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmR0ZXN0IGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgc2VsZi5maXh0dXJlX3JlcXVlc3QgPSBfc2V0dXBfZml4dHVy
ZXMoc2VsZikKLSAgICAgICAgICAgIGdsb2JzID0gZGljdChnZXRmaXh0dXJlPXNlbGYuZml4dHVy
ZV9yZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSkKLSAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBp
biBzZWxmLmZpeHR1cmVfcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoJ2RvY3Rlc3RfbmFtZXNwYWNl
JykuaXRlbXMoKToKLSAgICAgICAgICAgICAgICBnbG9ic1tuYW1lXSA9IHZhbHVlCi0gICAgICAg
ICAgICBzZWxmLmR0ZXN0Lmdsb2JzLnVwZGF0ZShnbG9icykKLQotICAgIGRlZiBydW50ZXN0KHNl
bGYpOgotICAgICAgICBfY2hlY2tfYWxsX3NraXBwZWQoc2VsZi5kdGVzdCkKLSAgICAgICAgc2Vs
Zi5ydW5uZXIucnVuKHNlbGYuZHRlc3QpCi0KLSAgICBkZWYgcmVwcl9mYWlsdXJlKHNlbGYsIGV4
Y2luZm8pOgotICAgICAgICBpbXBvcnQgZG9jdGVzdAotICAgICAgICBpZiBleGNpbmZvLmVycmlz
aW5zdGFuY2UoKGRvY3Rlc3QuRG9jVGVzdEZhaWx1cmUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZG9jdGVzdC5VbmV4cGVjdGVkRXhjZXB0aW9uKSk6Ci0gICAgICAgICAgICBk
b2N0ZXN0ZmFpbHVyZSA9IGV4Y2luZm8udmFsdWUKLSAgICAgICAgICAgIGV4YW1wbGUgPSBkb2N0
ZXN0ZmFpbHVyZS5leGFtcGxlCi0gICAgICAgICAgICB0ZXN0ID0gZG9jdGVzdGZhaWx1cmUudGVz
dAotICAgICAgICAgICAgZmlsZW5hbWUgPSB0ZXN0LmZpbGVuYW1lCi0gICAgICAgICAgICBpZiB0
ZXN0LmxpbmVubyBpcyBOb25lOgotICAgICAgICAgICAgICAgIGxpbmVubyA9IE5vbmUKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbGluZW5vID0gdGVzdC5saW5lbm8gKyBleGFt
cGxlLmxpbmVubyArIDEKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBleGNpbmZvLnR5cGUuX19uYW1l
X18KLSAgICAgICAgICAgIHJlcHJsb2NhdGlvbiA9IFJlcHJGaWxlTG9jYXRpb24oZmlsZW5hbWUs
IGxpbmVubywgbWVzc2FnZSkKLSAgICAgICAgICAgIGNoZWNrZXIgPSBfZ2V0X2NoZWNrZXIoKQot
ICAgICAgICAgICAgcmVwb3J0X2Nob2ljZSA9IF9nZXRfcmVwb3J0X2Nob2ljZShzZWxmLmNvbmZp
Zy5nZXRvcHRpb24oImRvY3Rlc3RyZXBvcnQiKSkKLSAgICAgICAgICAgIGlmIGxpbmVubyBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgICAgICBsaW5lcyA9IGRvY3Rlc3RmYWlsdXJlLnRlc3QuZG9j
c3RyaW5nLnNwbGl0bGluZXMoRmFsc2UpCi0gICAgICAgICAgICAgICAgIyBhZGQgbGluZSBudW1i
ZXJzIHRvIHRoZSBsZWZ0IG9mIHRoZSBlcnJvciBtZXNzYWdlCi0gICAgICAgICAgICAgICAgbGlu
ZXMgPSBbIiUwM2QgJXMiICUgKGkgKyB0ZXN0LmxpbmVubyArIDEsIHgpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yIChpLCB4KSBpbiBlbnVtZXJhdGUobGluZXMpXQotICAgICAgICAgICAg
ICAgICMgdHJpbSBkb2NzdHJpbmcgZXJyb3IgbGluZXMgdG8gMTAKLSAgICAgICAgICAgICAgICBs
aW5lcyA9IGxpbmVzW21heChleGFtcGxlLmxpbmVubyAtIDksIDApOmV4YW1wbGUubGluZW5vICsg
MV0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbGluZXMgPSBbJ0VYQU1QTEUg
TE9DQVRJT04gVU5LTk9XTiwgbm90IHNob3dpbmcgYWxsIHRlc3RzIG9mIHRoYXQgZXhhbXBsZSdd
Ci0gICAgICAgICAgICAgICAgaW5kZW50ID0gJz4+PicKLSAgICAgICAgICAgICAgICBmb3IgbGlu
ZSBpbiBleGFtcGxlLnNvdXJjZS5zcGxpdGxpbmVzKCk6Ci0gICAgICAgICAgICAgICAgICAgIGxp
bmVzLmFwcGVuZCgnPz8/ICVzICVzJyAlIChpbmRlbnQsIGxpbmUpKQotICAgICAgICAgICAgICAg
ICAgICBpbmRlbnQgPSAnLi4uJwotICAgICAgICAgICAgaWYgZXhjaW5mby5lcnJpc2luc3RhbmNl
KGRvY3Rlc3QuRG9jVGVzdEZhaWx1cmUpOgotICAgICAgICAgICAgICAgIGxpbmVzICs9IGNoZWNr
ZXIub3V0cHV0X2RpZmZlcmVuY2UoZXhhbXBsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Rlc3RmYWlsdXJlLmdvdCwgcmVwb3J0X2Nob2lj
ZSkuc3BsaXQoIlxuIikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaW5uZXJf
ZXhjaW5mbyA9IEV4Y2VwdGlvbkluZm8oZXhjaW5mby52YWx1ZS5leGNfaW5mbykKLSAgICAgICAg
ICAgICAgICBsaW5lcyArPSBbIlVORVhQRUNURUQgRVhDRVBUSU9OOiAlcyIgJQotICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXByKGlubmVyX2V4Y2luZm8udmFsdWUpXQotICAgICAgICAgICAg
ICAgIGxpbmVzICs9IHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uKCpleGNpbmZvLnZhbHVlLmV4
Y19pbmZvKQotICAgICAgICAgICAgcmV0dXJuIFJlcHJGYWlsRG9jdGVzdChyZXBybG9jYXRpb24s
IGxpbmVzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHN1cGVyKERvY3Rlc3RJ
dGVtLCBzZWxmKS5yZXByX2ZhaWx1cmUoZXhjaW5mbykKLQotICAgIGRlZiByZXBvcnRpbmZvKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5mc3BhdGgsIHNlbGYuZHRlc3QubGluZW5vLCAiW2Rv
Y3Rlc3RdICVzIiAlIHNlbGYubmFtZQotCi0KLWRlZiBfZ2V0X2ZsYWdfbG9va3VwKCk6Ci0gICAg
aW1wb3J0IGRvY3Rlc3QKLSAgICByZXR1cm4gZGljdChET05UX0FDQ0VQVF9UUlVFX0ZPUl8xPWRv
Y3Rlc3QuRE9OVF9BQ0NFUFRfVFJVRV9GT1JfMSwKLSAgICAgICAgICAgICAgICBET05UX0FDQ0VQ
VF9CTEFOS0xJTkU9ZG9jdGVzdC5ET05UX0FDQ0VQVF9CTEFOS0xJTkUsCi0gICAgICAgICAgICAg
ICAgTk9STUFMSVpFX1dISVRFU1BBQ0U9ZG9jdGVzdC5OT1JNQUxJWkVfV0hJVEVTUEFDRSwKLSAg
ICAgICAgICAgICAgICBFTExJUFNJUz1kb2N0ZXN0LkVMTElQU0lTLAotICAgICAgICAgICAgICAg
IElHTk9SRV9FWENFUFRJT05fREVUQUlMPWRvY3Rlc3QuSUdOT1JFX0VYQ0VQVElPTl9ERVRBSUws
Ci0gICAgICAgICAgICAgICAgQ09NUEFSSVNPTl9GTEFHUz1kb2N0ZXN0LkNPTVBBUklTT05fRkxB
R1MsCi0gICAgICAgICAgICAgICAgQUxMT1dfVU5JQ09ERT1fZ2V0X2FsbG93X3VuaWNvZGVfZmxh
ZygpLAotICAgICAgICAgICAgICAgIEFMTE9XX0JZVEVTPV9nZXRfYWxsb3dfYnl0ZXNfZmxhZygp
LAotICAgICAgICAgICAgICAgICkKLQotCi1kZWYgZ2V0X29wdGlvbmZsYWdzKHBhcmVudCk6Ci0g
ICAgb3B0aW9uZmxhZ3Nfc3RyID0gcGFyZW50LmNvbmZpZy5nZXRpbmkoImRvY3Rlc3Rfb3B0aW9u
ZmxhZ3MiKQotICAgIGZsYWdfbG9va3VwX3RhYmxlID0gX2dldF9mbGFnX2xvb2t1cCgpCi0gICAg
ZmxhZ19hY2MgPSAwCi0gICAgZm9yIGZsYWcgaW4gb3B0aW9uZmxhZ3Nfc3RyOgotICAgICAgICBm
bGFnX2FjYyB8PSBmbGFnX2xvb2t1cF90YWJsZVtmbGFnXQotICAgIHJldHVybiBmbGFnX2FjYwot
Ci0KLWNsYXNzIERvY3Rlc3RUZXh0ZmlsZShweXRlc3QuTW9kdWxlKToKLSAgICBvYmogPSBOb25l
Ci0KLSAgICBkZWYgY29sbGVjdChzZWxmKToKLSAgICAgICAgaW1wb3J0IGRvY3Rlc3QKLQotICAg
ICAgICAjIGluc3BpcmVkIGJ5IGRvY3Rlc3QudGVzdGZpbGU7IGlkZWFsbHkgd2Ugd291bGQgdXNl
IGl0IGRpcmVjdGx5LAotICAgICAgICAjIGJ1dCBpdCBkb2Vzbid0IHN1cHBvcnQgcGFzc2luZyBh
IGN1c3RvbSBjaGVja2VyCi0gICAgICAgIGVuY29kaW5nID0gc2VsZi5jb25maWcuZ2V0aW5pKCJk
b2N0ZXN0X2VuY29kaW5nIikKLSAgICAgICAgdGV4dCA9IHNlbGYuZnNwYXRoLnJlYWRfdGV4dChl
bmNvZGluZykKLSAgICAgICAgZmlsZW5hbWUgPSBzdHIoc2VsZi5mc3BhdGgpCi0gICAgICAgIG5h
bWUgPSBzZWxmLmZzcGF0aC5iYXNlbmFtZQotICAgICAgICBnbG9icyA9IHsnX19uYW1lX18nOiAn
X19tYWluX18nfQotCi0gICAgICAgIG9wdGlvbmZsYWdzID0gZ2V0X29wdGlvbmZsYWdzKHNlbGYp
Ci0gICAgICAgIHJ1bm5lciA9IGRvY3Rlc3QuRGVidWdSdW5uZXIodmVyYm9zZT0wLCBvcHRpb25m
bGFncz1vcHRpb25mbGFncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja2VyPV9nZXRfY2hlY2tlcigpKQotICAgICAgICBfZml4X3Nwb29mX3B5dGhvbjIocnVubmVy
LCBlbmNvZGluZykKLQotICAgICAgICBwYXJzZXIgPSBkb2N0ZXN0LkRvY1Rlc3RQYXJzZXIoKQot
ICAgICAgICB0ZXN0ID0gcGFyc2VyLmdldF9kb2N0ZXN0KHRleHQsIGdsb2JzLCBuYW1lLCBmaWxl
bmFtZSwgMCkKLSAgICAgICAgaWYgdGVzdC5leGFtcGxlczoKLSAgICAgICAgICAgIHlpZWxkIERv
Y3Rlc3RJdGVtKHRlc3QubmFtZSwgc2VsZiwgcnVubmVyLCB0ZXN0KQotCi0KLWRlZiBfY2hlY2tf
YWxsX3NraXBwZWQodGVzdCk6Ci0gICAgIiIicmFpc2VzIHB5dGVzdC5za2lwKCkgaWYgYWxsIGV4
YW1wbGVzIGluIHRoZSBnaXZlbiBEb2NUZXN0IGhhdmUgdGhlIFNLSVAKLSAgICBvcHRpb24gc2V0
LgotICAgICIiIgotICAgIGltcG9ydCBkb2N0ZXN0Ci0gICAgYWxsX3NraXBwZWQgPSBhbGwoeC5v
cHRpb25zLmdldChkb2N0ZXN0LlNLSVAsIEZhbHNlKSBmb3IgeCBpbiB0ZXN0LmV4YW1wbGVzKQot
ICAgIGlmIGFsbF9za2lwcGVkOgotICAgICAgICBweXRlc3Quc2tpcCgnYWxsIHRlc3RzIHNraXBw
ZWQgYnkgK1NLSVAgb3B0aW9uJykKLQotCi1jbGFzcyBEb2N0ZXN0TW9kdWxlKHB5dGVzdC5Nb2R1
bGUpOgotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAgICAgICBpbXBvcnQgZG9jdGVzdAotICAg
ICAgICBpZiBzZWxmLmZzcGF0aC5iYXNlbmFtZSA9PSAiY29uZnRlc3QucHkiOgotICAgICAgICAg
ICAgbW9kdWxlID0gc2VsZi5jb25maWcucGx1Z2lubWFuYWdlci5faW1wb3J0Y29uZnRlc3Qoc2Vs
Zi5mc3BhdGgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgbW9kdWxlID0gc2VsZi5mc3BhdGgucHlpbXBvcnQoKQotICAgICAgICAgICAgZXhjZXB0IElt
cG9ydEVycm9yOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLmdldHZhbHVlKCdkb2N0
ZXN0X2lnbm9yZV9pbXBvcnRfZXJyb3JzJyk6Ci0gICAgICAgICAgICAgICAgICAgIHB5dGVzdC5z
a2lwKCd1bmFibGUgdG8gaW1wb3J0IG1vZHVsZSAlcicgJSBzZWxmLmZzcGF0aCkKLSAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAjIHVzZXMg
aW50ZXJuYWwgZG9jdGVzdCBtb2R1bGUgcGFyc2luZyBtZWNoYW5pc20KLSAgICAgICAgZmluZGVy
ID0gZG9jdGVzdC5Eb2NUZXN0RmluZGVyKCkKLSAgICAgICAgb3B0aW9uZmxhZ3MgPSBnZXRfb3B0
aW9uZmxhZ3Moc2VsZikKLSAgICAgICAgcnVubmVyID0gZG9jdGVzdC5EZWJ1Z1J1bm5lcih2ZXJi
b3NlPTAsIG9wdGlvbmZsYWdzPW9wdGlvbmZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoZWNrZXI9X2dldF9jaGVja2VyKCkpCi0KLSAgICAgICAgZm9yIHRlc3Qg
aW4gZmluZGVyLmZpbmQobW9kdWxlLCBtb2R1bGUuX19uYW1lX18pOgotICAgICAgICAgICAgaWYg
dGVzdC5leGFtcGxlczogICMgc2tpcCBlbXB0eSBkb2N0ZXN0cwotICAgICAgICAgICAgICAgIHlp
ZWxkIERvY3Rlc3RJdGVtKHRlc3QubmFtZSwgc2VsZiwgcnVubmVyLCB0ZXN0KQotCi0KLWRlZiBf
c2V0dXBfZml4dHVyZXMoZG9jdGVzdF9pdGVtKToKLSAgICAiIiIKLSAgICBVc2VkIGJ5IERvY3Rl
c3RUZXh0ZmlsZSBhbmQgRG9jdGVzdEl0ZW0gdG8gc2V0dXAgZml4dHVyZSBpbmZvcm1hdGlvbi4K
LSAgICAiIiIKLSAgICBkZWYgZnVuYygpOgotICAgICAgICBwYXNzCi0KLSAgICBkb2N0ZXN0X2l0
ZW0uZnVuY2FyZ3MgPSB7fQotICAgIGZtID0gZG9jdGVzdF9pdGVtLnNlc3Npb24uX2ZpeHR1cmVt
YW5hZ2VyCi0gICAgZG9jdGVzdF9pdGVtLl9maXh0dXJlaW5mbyA9IGZtLmdldGZpeHR1cmVpbmZv
KG5vZGU9ZG9jdGVzdF9pdGVtLCBmdW5jPWZ1bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNscz1Ob25lLCBmdW5jYXJncz1GYWxzZSkKLSAgICBm
aXh0dXJlX3JlcXVlc3QgPSBGaXh0dXJlUmVxdWVzdChkb2N0ZXN0X2l0ZW0pCi0gICAgZml4dHVy
ZV9yZXF1ZXN0Ll9maWxsZml4dHVyZXMoKQotICAgIHJldHVybiBmaXh0dXJlX3JlcXVlc3QKLQot
Ci1kZWYgX2dldF9jaGVja2VyKCk6Ci0gICAgIiIiCi0gICAgUmV0dXJucyBhIGRvY3Rlc3QuT3V0
cHV0Q2hlY2tlciBzdWJjbGFzcyB0aGF0IHRha2VzIGluIGFjY291bnQgdGhlCi0gICAgQUxMT1df
VU5JQ09ERSBvcHRpb24gdG8gaWdub3JlIHUnJyBwcmVmaXhlcyBpbiBzdHJpbmdzIGFuZCBBTExP
V19CWVRFUwotICAgIHRvIHN0cmlwIGInJyBwcmVmaXhlcy4KLSAgICBVc2VmdWwgd2hlbiB0aGUg
c2FtZSBkb2N0ZXN0IHNob3VsZCBydW4gaW4gUHl0aG9uIDIgYW5kIFB5dGhvbiAzLgotCi0gICAg
QW4gaW5uZXIgY2xhc3MgaXMgdXNlZCB0byBhdm9pZCBpbXBvcnRpbmcgImRvY3Rlc3QiIGF0IHRo
ZSBtb2R1bGUKLSAgICBsZXZlbC4KLSAgICAiIiIKLSAgICBpZiBoYXNhdHRyKF9nZXRfY2hlY2tl
ciwgJ0xpdGVyYWxzT3V0cHV0Q2hlY2tlcicpOgotICAgICAgICByZXR1cm4gX2dldF9jaGVja2Vy
LkxpdGVyYWxzT3V0cHV0Q2hlY2tlcigpCi0KLSAgICBpbXBvcnQgZG9jdGVzdAotICAgIGltcG9y
dCByZQotCi0gICAgY2xhc3MgTGl0ZXJhbHNPdXRwdXRDaGVja2VyKGRvY3Rlc3QuT3V0cHV0Q2hl
Y2tlcik6Ci0gICAgICAgICIiIgotICAgICAgICBDb3BpZWQgZnJvbSBkb2N0ZXN0X25vc2VfcGx1
Z2luLnB5IGZyb20gdGhlIG5sdGsgcHJvamVjdDoKLSAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHVi
LmNvbS9ubHRrL25sdGsKLQotICAgICAgICBGdXJ0aGVyIGV4dGVuZGVkIHRvIGFsc28gc3VwcG9y
dCBieXRlIGxpdGVyYWxzLgotICAgICAgICAiIiIKLQotICAgICAgICBfdW5pY29kZV9saXRlcmFs
X3JlID0gcmUuY29tcGlsZShyIihcV3xeKVt1VV0oW3JSXT9bXCdcIl0pIiwgcmUuVU5JQ09ERSkK
LSAgICAgICAgX2J5dGVzX2xpdGVyYWxfcmUgPSByZS5jb21waWxlKHIiKFxXfF4pW2JCXShbclJd
P1tcJ1wiXSkiLCByZS5VTklDT0RFKQotCi0gICAgICAgIGRlZiBjaGVja19vdXRwdXQoc2VsZiwg
d2FudCwgZ290LCBvcHRpb25mbGFncyk6Ci0gICAgICAgICAgICByZXMgPSBkb2N0ZXN0Lk91dHB1
dENoZWNrZXIuY2hlY2tfb3V0cHV0KHNlbGYsIHdhbnQsIGdvdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uZmxhZ3MpCi0gICAgICAg
ICAgICBpZiByZXM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICAgICAgICAg
YWxsb3dfdW5pY29kZSA9IG9wdGlvbmZsYWdzICYgX2dldF9hbGxvd191bmljb2RlX2ZsYWcoKQot
ICAgICAgICAgICAgYWxsb3dfYnl0ZXMgPSBvcHRpb25mbGFncyAmIF9nZXRfYWxsb3dfYnl0ZXNf
ZmxhZygpCi0gICAgICAgICAgICBpZiBub3QgYWxsb3dfdW5pY29kZSBhbmQgbm90IGFsbG93X2J5
dGVzOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICAgICBlbHNlOiAg
IyBwcmFnbWE6IG5vIGNvdmVyCi0gICAgICAgICAgICAgICAgZGVmIHJlbW92ZV9wcmVmaXhlcyhy
ZWdleCwgdHh0KToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlLnN1YihyZWdleCwgcidc
MVwyJywgdHh0KQotCi0gICAgICAgICAgICAgICAgaWYgYWxsb3dfdW5pY29kZToKLSAgICAgICAg
ICAgICAgICAgICAgd2FudCA9IHJlbW92ZV9wcmVmaXhlcyhzZWxmLl91bmljb2RlX2xpdGVyYWxf
cmUsIHdhbnQpCi0gICAgICAgICAgICAgICAgICAgIGdvdCA9IHJlbW92ZV9wcmVmaXhlcyhzZWxm
Ll91bmljb2RlX2xpdGVyYWxfcmUsIGdvdCkKLSAgICAgICAgICAgICAgICBpZiBhbGxvd19ieXRl
czoKLSAgICAgICAgICAgICAgICAgICAgd2FudCA9IHJlbW92ZV9wcmVmaXhlcyhzZWxmLl9ieXRl
c19saXRlcmFsX3JlLCB3YW50KQotICAgICAgICAgICAgICAgICAgICBnb3QgPSByZW1vdmVfcHJl
Zml4ZXMoc2VsZi5fYnl0ZXNfbGl0ZXJhbF9yZSwgZ290KQotICAgICAgICAgICAgICAgIHJlcyA9
IGRvY3Rlc3QuT3V0cHV0Q2hlY2tlci5jaGVja19vdXRwdXQoc2VsZiwgd2FudCwgZ290LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0
aW9uZmxhZ3MpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcwotCi0gICAgX2dldF9jaGVja2Vy
LkxpdGVyYWxzT3V0cHV0Q2hlY2tlciA9IExpdGVyYWxzT3V0cHV0Q2hlY2tlcgotICAgIHJldHVy
biBfZ2V0X2NoZWNrZXIuTGl0ZXJhbHNPdXRwdXRDaGVja2VyKCkKLQotCi1kZWYgX2dldF9hbGxv
d191bmljb2RlX2ZsYWcoKToKLSAgICAiIiIKLSAgICBSZWdpc3RlcnMgYW5kIHJldHVybnMgdGhl
IEFMTE9XX1VOSUNPREUgZmxhZy4KLSAgICAiIiIKLSAgICBpbXBvcnQgZG9jdGVzdAotICAgIHJl
dHVybiBkb2N0ZXN0LnJlZ2lzdGVyX29wdGlvbmZsYWcoJ0FMTE9XX1VOSUNPREUnKQotCi0KLWRl
ZiBfZ2V0X2FsbG93X2J5dGVzX2ZsYWcoKToKLSAgICAiIiIKLSAgICBSZWdpc3RlcnMgYW5kIHJl
dHVybnMgdGhlIEFMTE9XX0JZVEVTIGZsYWcuCi0gICAgIiIiCi0gICAgaW1wb3J0IGRvY3Rlc3QK
LSAgICByZXR1cm4gZG9jdGVzdC5yZWdpc3Rlcl9vcHRpb25mbGFnKCdBTExPV19CWVRFUycpCi0K
LQotZGVmIF9nZXRfcmVwb3J0X2Nob2ljZShrZXkpOgotICAgICIiIgotICAgIFRoaXMgZnVuY3Rp
b24gcmV0dXJucyB0aGUgYWN0dWFsIGBkb2N0ZXN0YCBtb2R1bGUgZmxhZyB2YWx1ZSwgd2Ugd2Fu
dCB0byBkbyBpdCBhcyBsYXRlIGFzIHBvc3NpYmxlIHRvIGF2b2lkCi0gICAgaW1wb3J0aW5nIGBk
b2N0ZXN0YCBhbmQgYWxsIGl0cyBkZXBlbmRlbmNpZXMgd2hlbiBwYXJzaW5nIG9wdGlvbnMsIGFz
IGl0IGFkZHMgb3ZlcmhlYWQgYW5kIGJyZWFrcyB0ZXN0cy4KLSAgICAiIiIKLSAgICBpbXBvcnQg
ZG9jdGVzdAotCi0gICAgcmV0dXJuIHsKLSAgICAgICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX1VE
SUZGOiBkb2N0ZXN0LlJFUE9SVF9VRElGRiwKLSAgICAgICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNF
X0NESUZGOiBkb2N0ZXN0LlJFUE9SVF9DRElGRiwKLSAgICAgICAgRE9DVEVTVF9SRVBPUlRfQ0hP
SUNFX05ESUZGOiBkb2N0ZXN0LlJFUE9SVF9ORElGRiwKLSAgICAgICAgRE9DVEVTVF9SRVBPUlRf
Q0hPSUNFX09OTFlfRklSU1RfRkFJTFVSRTogZG9jdGVzdC5SRVBPUlRfT05MWV9GSVJTVF9GQUlM
VVJFLAotICAgICAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfTk9ORTogMCwKLSAgICB9W2tleV0K
LQotCi1kZWYgX2ZpeF9zcG9vZl9weXRob24yKHJ1bm5lciwgZW5jb2RpbmcpOgotICAgICIiIgot
ICAgIEluc3RhbGxzIGEgIlNwb29mT3V0IiBpbnRvIHRoZSBnaXZlbiBEZWJ1Z1J1bm5lciBzbyBp
dCBwcm9wZXJseSBkZWFscyB3aXRoIHVuaWNvZGUgb3V0cHV0LiBUaGlzCi0gICAgc2hvdWxkIHBh
dGNoIG9ubHkgZG9jdGVzdHMgZm9yIHRleHQgZmlsZXMgYmVjYXVzZSB0aGV5IGRvbid0IGhhdmUg
YSB3YXkgdG8gZGVjbGFyZSB0aGVpcgotICAgIGVuY29kaW5nLiBEb2N0ZXN0cyBpbiBkb2NzdHJp
bmdzIGZyb20gUHl0aG9uIG1vZHVsZXMgZG9uJ3QgaGF2ZSB0aGUgc2FtZSBwcm9ibGVtIGdpdmVu
IHRoYXQKLSAgICBQeXRob24gYWxyZWFkeSBkZWNvZGVkIHRoZSBzdHJpbmdzLgotCi0gICAgVGhp
cyBmaXhlcyB0aGUgcHJvYmxlbSByZWxhdGVkIGluIGlzc3VlICMyNDM0LgotICAgICIiIgotICAg
IGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9QWTIKLSAgICBpZiBub3QgX1BZMjoKLSAgICAg
ICAgcmV0dXJuCi0KLSAgICBmcm9tIGRvY3Rlc3QgaW1wb3J0IF9TcG9vZk91dAotCi0gICAgY2xh
c3MgVW5pY29kZVNwb29mKF9TcG9vZk91dCk6Ci0KLSAgICAgICAgZGVmIGdldHZhbHVlKHNlbGYp
OgotICAgICAgICAgICAgcmVzdWx0ID0gX1Nwb29mT3V0LmdldHZhbHVlKHNlbGYpCi0gICAgICAg
ICAgICBpZiBlbmNvZGluZzoKLSAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuZGVjb2Rl
KGVuY29kaW5nKQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAotCi0gICAgcnVubmVyLl9mYWtl
b3V0ID0gVW5pY29kZVNwb29mKCkKLQotCi1AcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24n
KQotZGVmIGRvY3Rlc3RfbmFtZXNwYWNlKCk6Ci0gICAgIiIiCi0gICAgSW5qZWN0IG5hbWVzIGlu
dG8gdGhlIGRvY3Rlc3QgbmFtZXNwYWNlLgotICAgICIiIgotICAgIHJldHVybiBkaWN0KCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZml4dHVyZXMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L2ZpeHR1cmVzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDlmZmFk
ZGJhNzNmZjg0YjIzOWQ0ZjRhYTI5ZTk2ZDA1NmM1ZDhkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZml4dHVyZXMucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwxMTQ3ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGZ1bmN0
b29scwotaW1wb3J0IGluc3BlY3QKLWltcG9ydCBzeXMKLWltcG9ydCB3YXJuaW5ncwotZnJvbSBj
b2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKLQotaW1wb3J0IGF0dHIKLWltcG9ydCBweQot
ZnJvbSBweS5fY29kZS5jb2RlIGltcG9ydCBGb3JtYXR0ZWRFeGNpbmZvCi0KLWltcG9ydCBfcHl0
ZXN0Ci1mcm9tIF9weXRlc3QgaW1wb3J0IG5vZGVzCi1mcm9tIF9weXRlc3QuX2NvZGUuY29kZSBp
bXBvcnQgVGVybWluYWxSZXByCi1mcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCAoCi0gICAgTk9U
U0VULCBleGNfY2xlYXIsIF9mb3JtYXRfYXJncywKLSAgICBnZXRmc2xpbmVubywgZ2V0X3JlYWxf
ZnVuYywKLSAgICBpc19nZW5lcmF0b3IsIGlzY2xhc3MsIGdldGltZnVuYywKLSAgICBnZXRsb2Nh
dGlvbiwgZ2V0ZnVuY2FyZ25hbWVzLAotICAgIHNhZmVfZ2V0YXR0ciwKLSAgICBGdW5jYXJnbmFt
ZXNDb21wYXRBdHRyLAotKQotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBURVNU
X09VVENPTUUKLQotCi1kZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uKToKLSAgICBpbXBv
cnQgX3B5dGVzdC5weXRob24KLQotICAgIHNjb3BlbmFtZTJjbGFzcy51cGRhdGUoewotICAgICAg
ICAnY2xhc3MnOiBfcHl0ZXN0LnB5dGhvbi5DbGFzcywKLSAgICAgICAgJ21vZHVsZSc6IF9weXRl
c3QucHl0aG9uLk1vZHVsZSwKLSAgICAgICAgJ2Z1bmN0aW9uJzogX3B5dGVzdC5tYWluLkl0ZW0s
Ci0gICAgICAgICdzZXNzaW9uJzogX3B5dGVzdC5tYWluLlNlc3Npb24sCi0gICAgfSkKLSAgICBz
ZXNzaW9uLl9maXh0dXJlbWFuYWdlciA9IEZpeHR1cmVNYW5hZ2VyKHNlc3Npb24pCi0KLQotc2Nv
cGVuYW1lMmNsYXNzID0ge30KLQotCi1zY29wZTJwcm9wcyA9IGRpY3Qoc2Vzc2lvbj0oKSkKLXNj
b3BlMnByb3BzWyJtb2R1bGUiXSA9ICgiZnNwYXRoIiwgIm1vZHVsZSIpCi1zY29wZTJwcm9wc1si
Y2xhc3MiXSA9IHNjb3BlMnByb3BzWyJtb2R1bGUiXSArICgiY2xzIiwpCi1zY29wZTJwcm9wc1si
aW5zdGFuY2UiXSA9IHNjb3BlMnByb3BzWyJjbGFzcyJdICsgKCJpbnN0YW5jZSIsICkKLXNjb3Bl
MnByb3BzWyJmdW5jdGlvbiJdID0gc2NvcGUycHJvcHNbImluc3RhbmNlIl0gKyAoImZ1bmN0aW9u
IiwgImtleXdvcmRzIikKLQotCi1kZWYgc2NvcGVwcm9wZXJ0eShuYW1lPU5vbmUsIGRvYz1Ob25l
KToKLSAgICBkZWYgZGVjb3JhdGVzY29wZShmdW5jKToKLSAgICAgICAgc2NvcGVuYW1lID0gbmFt
ZSBvciBmdW5jLl9fbmFtZV9fCi0KLSAgICAgICAgZGVmIHByb3ZpZGUoc2VsZik6Ci0gICAgICAg
ICAgICBpZiBmdW5jLl9fbmFtZV9fIGluIHNjb3BlMnByb3BzW3NlbGYuc2NvcGVdOgotICAgICAg
ICAgICAgICAgIHJldHVybiBmdW5jKHNlbGYpCi0gICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVF
cnJvcigiJXMgbm90IGF2YWlsYWJsZSBpbiAlcy1zY29wZWQgY29udGV4dCIgJSAoCi0gICAgICAg
ICAgICAgICAgc2NvcGVuYW1lLCBzZWxmLnNjb3BlKSkKLQotICAgICAgICByZXR1cm4gcHJvcGVy
dHkocHJvdmlkZSwgTm9uZSwgTm9uZSwgZnVuYy5fX2RvY19fKQotICAgIHJldHVybiBkZWNvcmF0
ZXNjb3BlCi0KLQotZGVmIGdldF9zY29wZV9ub2RlKG5vZGUsIHNjb3BlKToKLSAgICBjbHMgPSBz
Y29wZW5hbWUyY2xhc3MuZ2V0KHNjb3BlKQotICAgIGlmIGNscyBpcyBOb25lOgotICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCJ1bmtub3duIHNjb3BlIikKLSAgICByZXR1cm4gbm9kZS5nZXRwYXJl
bnQoY2xzKQotCi0KLWRlZiBhZGRfZnVuY2FyZ19wc2V1ZG9fZml4dHVyZV9kZWYoY29sbGVjdG9y
LCBtZXRhZnVuYywgZml4dHVyZW1hbmFnZXIpOgotICAgICMgdGhpcyBmdW5jdGlvbiB3aWxsIHRy
YW5zZm9ybSBhbGwgY29sbGVjdGVkIGNhbGxzIHRvIGEgZnVuY3Rpb25zCi0gICAgIyBpZiB0aGV5
IHVzZSBkaXJlY3QgZnVuY2FyZ3MgKGkuZS4gZGlyZWN0IHBhcmFtZXRyaXphdGlvbikKLSAgICAj
IGJlY2F1c2Ugd2Ugd2FudCBsYXRlciB0ZXN0IGV4ZWN1dGlvbiB0byBiZSBhYmxlIHRvIHJlbHkg
b24KLSAgICAjIGFuIGV4aXN0aW5nIEZpeHR1cmVEZWYgc3RydWN0dXJlIGZvciBhbGwgYXJndW1l
bnRzLgotICAgICMgWFhYIHdlIGNhbiBwcm9iYWJseSBhdm9pZCB0aGlzIGFsZ29yaXRobSAgaWYg
d2UgbW9kaWZ5IENhbGxTcGVjMgotICAgICMgdG8gZGlyZWN0bHkgY2FyZSBmb3IgY3JlYXRpbmcg
dGhlIGZpeHR1cmVkZWZzIHdpdGhpbiBpdHMgbWV0aG9kcy4KLSAgICBpZiBub3QgbWV0YWZ1bmMu
X2NhbGxzWzBdLmZ1bmNhcmdzOgotICAgICAgICByZXR1cm4gICMgdGhpcyBmdW5jdGlvbiBjYWxs
IGRvZXMgbm90IGhhdmUgZGlyZWN0IHBhcmFtZXRyaXphdGlvbgotICAgICMgY29sbGVjdCBmdW5j
YXJncyBvZiBhbGwgY2FsbHNwZWNzIGludG8gYSBsaXN0IG9mIHZhbHVlcwotICAgIGFyZzJwYXJh
bXMgPSB7fQotICAgIGFyZzJzY29wZSA9IHt9Ci0gICAgZm9yIGNhbGxzcGVjIGluIG1ldGFmdW5j
Ll9jYWxsczoKLSAgICAgICAgZm9yIGFyZ25hbWUsIGFyZ3ZhbHVlIGluIGNhbGxzcGVjLmZ1bmNh
cmdzLml0ZW1zKCk6Ci0gICAgICAgICAgICBhc3NlcnQgYXJnbmFtZSBub3QgaW4gY2FsbHNwZWMu
cGFyYW1zCi0gICAgICAgICAgICBjYWxsc3BlYy5wYXJhbXNbYXJnbmFtZV0gPSBhcmd2YWx1ZQot
ICAgICAgICAgICAgYXJnMnBhcmFtc19saXN0ID0gYXJnMnBhcmFtcy5zZXRkZWZhdWx0KGFyZ25h
bWUsIFtdKQotICAgICAgICAgICAgY2FsbHNwZWMuaW5kaWNlc1thcmduYW1lXSA9IGxlbihhcmcy
cGFyYW1zX2xpc3QpCi0gICAgICAgICAgICBhcmcycGFyYW1zX2xpc3QuYXBwZW5kKGFyZ3ZhbHVl
KQotICAgICAgICAgICAgaWYgYXJnbmFtZSBub3QgaW4gYXJnMnNjb3BlOgotICAgICAgICAgICAg
ICAgIHNjb3BlbnVtID0gY2FsbHNwZWMuX2FyZzJzY29wZW51bS5nZXQoYXJnbmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlbnVt
X2Z1bmN0aW9uKQotICAgICAgICAgICAgICAgIGFyZzJzY29wZVthcmduYW1lXSA9IHNjb3Blc1tz
Y29wZW51bV0KLSAgICAgICAgY2FsbHNwZWMuZnVuY2FyZ3MuY2xlYXIoKQotCi0gICAgIyByZWdp
c3RlciBhcnRpZmljaWFsIEZpeHR1cmVEZWYncyBzbyB0aGF0IGxhdGVyIGF0IHRlc3QgZXhlY3V0
aW9uCi0gICAgIyB0aW1lIHdlIGNhbiByZWx5IG9uIGEgcHJvcGVyIEZpeHR1cmVEZWYgdG8gZXhp
c3QgZm9yIGZpeHR1cmUgc2V0dXAuCi0gICAgYXJnMmZpeHR1cmVkZWZzID0gbWV0YWZ1bmMuX2Fy
ZzJmaXh0dXJlZGVmcwotICAgIGZvciBhcmduYW1lLCB2YWx1ZWxpc3QgaW4gYXJnMnBhcmFtcy5p
dGVtcygpOgotICAgICAgICAjIGlmIHdlIGhhdmUgYSBzY29wZSB0aGF0IGlzIGhpZ2hlciB0aGFu
IGZ1bmN0aW9uIHdlIG5lZWQKLSAgICAgICAgIyB0byBtYWtlIHN1cmUgd2Ugb25seSBldmVyIGNy
ZWF0ZSBhbiBhY2NvcmRpbmcgZml4dHVyZWRlZiBvbgotICAgICAgICAjIGEgcGVyLXNjb3BlIGJh
c2lzLiBXZSB0aHVzIHN0b3JlIGFuZCBjYWNoZSB0aGUgZml4dHVyZWRlZiBvbiB0aGUKLSAgICAg
ICAgIyBub2RlIHJlbGF0ZWQgdG8gdGhlIHNjb3BlLgotICAgICAgICBzY29wZSA9IGFyZzJzY29w
ZVthcmduYW1lXQotICAgICAgICBub2RlID0gTm9uZQotICAgICAgICBpZiBzY29wZSAhPSAiZnVu
Y3Rpb24iOgotICAgICAgICAgICAgbm9kZSA9IGdldF9zY29wZV9ub2RlKGNvbGxlY3Rvciwgc2Nv
cGUpCi0gICAgICAgICAgICBpZiBub2RlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
IHNjb3BlID09ICJjbGFzcyIgYW5kIGlzaW5zdGFuY2UoY29sbGVjdG9yLCBfcHl0ZXN0LnB5dGhv
bi5Nb2R1bGUpCi0gICAgICAgICAgICAgICAgIyB1c2UgbW9kdWxlLWxldmVsIGNvbGxlY3RvciBm
b3IgY2xhc3Mtc2NvcGUgKGZvciBub3cpCi0gICAgICAgICAgICAgICAgbm9kZSA9IGNvbGxlY3Rv
cgotICAgICAgICBpZiBub2RlIGFuZCBhcmduYW1lIGluIG5vZGUuX25hbWUycHNldWRvZml4dHVy
ZWRlZjoKLSAgICAgICAgICAgIGFyZzJmaXh0dXJlZGVmc1thcmduYW1lXSA9IFtub2RlLl9uYW1l
MnBzZXVkb2ZpeHR1cmVkZWZbYXJnbmFtZV1dCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBm
aXh0dXJlZGVmID0gRml4dHVyZURlZihmaXh0dXJlbWFuYWdlciwgJycsIGFyZ25hbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfZGlyZWN0X3BhcmFtX2ZpeHR1cmVf
ZnVuYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzJzY29wZVthcmdu
YW1lXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlbGlzdCwgRmFs
c2UsIEZhbHNlKQotICAgICAgICAgICAgYXJnMmZpeHR1cmVkZWZzW2FyZ25hbWVdID0gW2ZpeHR1
cmVkZWZdCi0gICAgICAgICAgICBpZiBub2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAg
IG5vZGUuX25hbWUycHNldWRvZml4dHVyZWRlZlthcmduYW1lXSA9IGZpeHR1cmVkZWYKLQotCi1k
ZWYgZ2V0Zml4dHVyZW1hcmtlcihvYmopOgotICAgICIiIiByZXR1cm4gZml4dHVyZW1hcmtlciBv
ciBOb25lIGlmIGl0IGRvZXNuJ3QgZXhpc3Qgb3IgcmFpc2VkCi0gICAgZXhjZXB0aW9ucy4iIiIK
LSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBnZXRhdHRyKG9iaiwgIl9weXRlc3RmaXh0dXJlZnVu
Y3Rpb24iLCBOb25lKQotICAgIGV4Y2VwdCBURVNUX09VVENPTUU6Ci0gICAgICAgICMgc29tZSBv
YmplY3RzIHJhaXNlIGVycm9ycyBsaWtlIHJlcXVlc3QgKGZyb20gZmxhc2sgaW1wb3J0IHJlcXVl
c3QpCi0gICAgICAgICMgd2UgZG9uJ3QgZXhwZWN0IHRoZW0gdG8gYmUgZml4dHVyZSBmdW5jdGlv
bnMKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgZ2V0X3BhcmFtZXRyaXplZF9maXh0dXJl
X2tleXMoaXRlbSwgc2NvcGVudW0pOgotICAgICIiIiByZXR1cm4gbGlzdCBvZiBrZXlzIGZvciBh
bGwgcGFyYW1ldHJpemVkIGFyZ3VtZW50cyB3aGljaCBtYXRjaAotICAgIHRoZSBzcGVjaWZpZWQg
c2NvcGUuICIiIgotICAgIGFzc2VydCBzY29wZW51bSA8IHNjb3BlbnVtX2Z1bmN0aW9uICAjIGZ1
bmN0aW9uCi0gICAgdHJ5OgotICAgICAgICBjcyA9IGl0ZW0uY2FsbHNwZWMKLSAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIHBhc3MKLSAgICBlbHNlOgotICAgICAgICAjIGNzLmlu
ZGljZXMuaXRlbXMoKSBpcyByYW5kb20gb3JkZXIgb2YgYXJnbmFtZXMuICBOZWVkIHRvCi0gICAg
ICAgICMgc29ydCB0aGlzIHNvIHRoYXQgZGlmZmVyZW50IGNhbGxzIHRvCi0gICAgICAgICMgZ2V0
X3BhcmFtZXRyaXplZF9maXh0dXJlX2tleXMgd2lsbCBiZSBkZXRlcm1pbmlzdGljLgotICAgICAg
ICBmb3IgYXJnbmFtZSwgcGFyYW1faW5kZXggaW4gc29ydGVkKGNzLmluZGljZXMuaXRlbXMoKSk6
Ci0gICAgICAgICAgICBpZiBjcy5fYXJnMnNjb3BlbnVtW2FyZ25hbWVdICE9IHNjb3BlbnVtOgot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBzY29wZW51bSA9PSAwOiAg
ICAjIHNlc3Npb24KLSAgICAgICAgICAgICAgICBrZXkgPSAoYXJnbmFtZSwgcGFyYW1faW5kZXgp
Ci0gICAgICAgICAgICBlbGlmIHNjb3BlbnVtID09IDE6ICAjIG1vZHVsZQotICAgICAgICAgICAg
ICAgIGtleSA9IChhcmduYW1lLCBwYXJhbV9pbmRleCwgaXRlbS5mc3BhdGgpCi0gICAgICAgICAg
ICBlbGlmIHNjb3BlbnVtID09IDI6ICAjIGNsYXNzCi0gICAgICAgICAgICAgICAga2V5ID0gKGFy
Z25hbWUsIHBhcmFtX2luZGV4LCBpdGVtLmZzcGF0aCwgaXRlbS5jbHMpCi0gICAgICAgICAgICB5
aWVsZCBrZXkKLQotCi0jIGFsZ29yaXRobSBmb3Igc29ydGluZyBvbiBhIHBlci1wYXJhbWV0cml6
ZWQgcmVzb3VyY2Ugc2V0dXAgYmFzaXMKLSMgaXQgaXMgY2FsbGVkIGZvciBzY29wZW51bT09MCAo
c2Vzc2lvbikgZmlyc3QgYW5kIHBlcmZvcm1zIHNvcnRpbmcKLSMgZG93biB0byB0aGUgbG93ZXIg
c2NvcGVzIHN1Y2ggYXMgdG8gbWluaW1pemUgbnVtYmVyIG9mICJoaWdoIHNjb3BlIgotIyBzZXR1
cHMgYW5kIHRlYXJkb3ducwotCi1kZWYgcmVvcmRlcl9pdGVtcyhpdGVtcyk6Ci0gICAgYXJna2V5
c19jYWNoZSA9IHt9Ci0gICAgZm9yIHNjb3BlbnVtIGluIHJhbmdlKDAsIHNjb3BlbnVtX2Z1bmN0
aW9uKToKLSAgICAgICAgYXJna2V5c19jYWNoZVtzY29wZW51bV0gPSBkID0ge30KLSAgICAgICAg
Zm9yIGl0ZW0gaW4gaXRlbXM6Ci0gICAgICAgICAgICBrZXlzID0gT3JkZXJlZERpY3QuZnJvbWtl
eXMoZ2V0X3BhcmFtZXRyaXplZF9maXh0dXJlX2tleXMoaXRlbSwgc2NvcGVudW0pKQotICAgICAg
ICAgICAgaWYga2V5czoKLSAgICAgICAgICAgICAgICBkW2l0ZW1dID0ga2V5cwotICAgIHJldHVy
biByZW9yZGVyX2l0ZW1zX2F0c2NvcGUoaXRlbXMsIHNldCgpLCBhcmdrZXlzX2NhY2hlLCAwKQot
Ci0KLWRlZiByZW9yZGVyX2l0ZW1zX2F0c2NvcGUoaXRlbXMsIGlnbm9yZSwgYXJna2V5c19jYWNo
ZSwgc2NvcGVudW0pOgotICAgIGlmIHNjb3BlbnVtID49IHNjb3BlbnVtX2Z1bmN0aW9uIG9yIGxl
bihpdGVtcykgPCAzOgotICAgICAgICByZXR1cm4gaXRlbXMKLSAgICBpdGVtc19kb25lID0gW10K
LSAgICB3aGlsZSAxOgotICAgICAgICBpdGVtc19iZWZvcmUsIGl0ZW1zX3NhbWUsIGl0ZW1zX290
aGVyLCBuZXdpZ25vcmUgPSBcCi0gICAgICAgICAgICBzbGljZV9pdGVtcyhpdGVtcywgaWdub3Jl
LCBhcmdrZXlzX2NhY2hlW3Njb3BlbnVtXSkKLSAgICAgICAgaXRlbXNfYmVmb3JlID0gcmVvcmRl
cl9pdGVtc19hdHNjb3BlKAotICAgICAgICAgICAgaXRlbXNfYmVmb3JlLCBpZ25vcmUsIGFyZ2tl
eXNfY2FjaGUsIHNjb3BlbnVtICsgMSkKLSAgICAgICAgaWYgaXRlbXNfc2FtZSBpcyBOb25lOgot
ICAgICAgICAgICAgIyBub3RoaW5nIHRvIHJlb3JkZXIgaW4gdGhpcyBzY29wZQotICAgICAgICAg
ICAgYXNzZXJ0IGl0ZW1zX290aGVyIGlzIE5vbmUKLSAgICAgICAgICAgIHJldHVybiBpdGVtc19k
b25lICsgaXRlbXNfYmVmb3JlCi0gICAgICAgIGl0ZW1zX2RvbmUuZXh0ZW5kKGl0ZW1zX2JlZm9y
ZSkKLSAgICAgICAgaXRlbXMgPSBpdGVtc19zYW1lICsgaXRlbXNfb3RoZXIKLSAgICAgICAgaWdu
b3JlID0gbmV3aWdub3JlCi0KLQotZGVmIHNsaWNlX2l0ZW1zKGl0ZW1zLCBpZ25vcmUsIHNjb3Bl
ZF9hcmdrZXlzX2NhY2hlKToKLSAgICAjIHdlIHBpY2sgdGhlIGZpcnN0IGl0ZW0gd2hpY2ggdXNl
cyBhIGZpeHR1cmUgaW5zdGFuY2UgaW4gdGhlCi0gICAgIyByZXF1ZXN0ZWQgc2NvcGUgYW5kIHdo
aWNoIHdlIGhhdmVuJ3Qgc2VlbiB5ZXQuICBXZSBzbGljZSB0aGUgaW5wdXQKLSAgICAjIGl0ZW1z
IGxpc3QgaW50byBhIGxpc3Qgb2YgaXRlbXNfbm9tYXRjaCwgaXRlbXNfc2FtZSBhbmQKLSAgICAj
IGl0ZW1zX290aGVyCi0gICAgaWYgc2NvcGVkX2FyZ2tleXNfY2FjaGU6ICAjIGRvIHdlIG5lZWQg
dG8gZG8gd29yayBhdCBhbGw/Ci0gICAgICAgIGl0ID0gaXRlcihpdGVtcykKLSAgICAgICAgIyBm
aXJzdCBmaW5kIGEgc2xpY2luZyBrZXkKLSAgICAgICAgZm9yIGksIGl0ZW0gaW4gZW51bWVyYXRl
KGl0KToKLSAgICAgICAgICAgIGFyZ2tleXMgPSBzY29wZWRfYXJna2V5c19jYWNoZS5nZXQoaXRl
bSkKLSAgICAgICAgICAgIGlmIGFyZ2tleXMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
bmV3YXJna2V5cyA9IE9yZGVyZWREaWN0LmZyb21rZXlzKGsgZm9yIGsgaW4gYXJna2V5cyBpZiBr
IG5vdCBpbiBpZ25vcmUpCi0gICAgICAgICAgICAgICAgaWYgbmV3YXJna2V5czogICMgZm91bmQg
YSBzbGljaW5nIGtleQotICAgICAgICAgICAgICAgICAgICBzbGljaW5nX2FyZ2tleSwgXyA9IG5l
d2FyZ2tleXMucG9waXRlbSgpCi0gICAgICAgICAgICAgICAgICAgIGl0ZW1zX2JlZm9yZSA9IGl0
ZW1zWzppXQotICAgICAgICAgICAgICAgICAgICBpdGVtc19zYW1lID0gW2l0ZW1dCi0gICAgICAg
ICAgICAgICAgICAgIGl0ZW1zX290aGVyID0gW10KLSAgICAgICAgICAgICAgICAgICAgIyBub3cg
c2xpY2UgdGhlIHJlbWFpbmRlciBvZiB0aGUgbGlzdAotICAgICAgICAgICAgICAgICAgICBmb3Ig
aXRlbSBpbiBpdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyZ2tleXMgPSBzY29wZWRfYXJn
a2V5c19jYWNoZS5nZXQoaXRlbSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGFyZ2tleXMg
YW5kIHNsaWNpbmdfYXJna2V5IGluIGFyZ2tleXMgYW5kIFwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2xpY2luZ19hcmdrZXkgbm90IGluIGlnbm9yZToKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpdGVtc19zYW1lLmFwcGVuZChpdGVtKQotICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc19vdGhlci5hcHBl
bmQoaXRlbSkKLSAgICAgICAgICAgICAgICAgICAgbmV3aWdub3JlID0gaWdub3JlLmNvcHkoKQot
ICAgICAgICAgICAgICAgICAgICBuZXdpZ25vcmUuYWRkKHNsaWNpbmdfYXJna2V5KQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zX2JlZm9yZSwgaXRlbXNfc2FtZSwgaXRlbXNfb3Ro
ZXIsIG5ld2lnbm9yZSkKLSAgICByZXR1cm4gaXRlbXMsIE5vbmUsIE5vbmUsIE5vbmUKLQotCi1k
ZWYgZmlsbGZpeHR1cmVzKGZ1bmN0aW9uKToKLSAgICAiIiIgZmlsbCBtaXNzaW5nIGZ1bmNhcmdz
IGZvciBhIHRlc3QgZnVuY3Rpb24uICIiIgotICAgIHRyeToKLSAgICAgICAgcmVxdWVzdCA9IGZ1
bmN0aW9uLl9yZXF1ZXN0Ci0gICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAjIFhY
WCB0aGlzIHNwZWNpYWwgY29kZSBwYXRoIGlzIG9ubHkgZXhwZWN0ZWQgdG8gZXhlY3V0ZQotICAg
ICAgICAjIHdpdGggdGhlIG9lanNraXQgcGx1Z2luLiAgSXQgdXNlcyBjbGFzc2VzIHdpdGggZnVu
Y2FyZ3MKLSAgICAgICAgIyBhbmQgd2UgdGh1cyBoYXZlIHRvIHdvcmsgYSBiaXQgdG8gYWxsb3cg
dGhpcy4KLSAgICAgICAgZm0gPSBmdW5jdGlvbi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgotICAg
ICAgICBmaSA9IGZtLmdldGZpeHR1cmVpbmZvKGZ1bmN0aW9uLnBhcmVudCwgZnVuY3Rpb24ub2Jq
LCBOb25lKQotICAgICAgICBmdW5jdGlvbi5fZml4dHVyZWluZm8gPSBmaQotICAgICAgICByZXF1
ZXN0ID0gZnVuY3Rpb24uX3JlcXVlc3QgPSBGaXh0dXJlUmVxdWVzdChmdW5jdGlvbikKLSAgICAg
ICAgcmVxdWVzdC5fZmlsbGZpeHR1cmVzKCkKLSAgICAgICAgIyBwcnVuZSBvdXQgZnVuY2FyZ3Mg
Zm9yIGpzdGVzdHMKLSAgICAgICAgbmV3ZnVuY2FyZ3MgPSB7fQotICAgICAgICBmb3IgbmFtZSBp
biBmaS5hcmduYW1lczoKLSAgICAgICAgICAgIG5ld2Z1bmNhcmdzW25hbWVdID0gZnVuY3Rpb24u
ZnVuY2FyZ3NbbmFtZV0KLSAgICAgICAgZnVuY3Rpb24uZnVuY2FyZ3MgPSBuZXdmdW5jYXJncwot
ICAgIGVsc2U6Ci0gICAgICAgIHJlcXVlc3QuX2ZpbGxmaXh0dXJlcygpCi0KLQotZGVmIGdldF9k
aXJlY3RfcGFyYW1fZml4dHVyZV9mdW5jKHJlcXVlc3QpOgotICAgIHJldHVybiByZXF1ZXN0LnBh
cmFtCi0KLQotY2xhc3MgRnVuY0ZpeHR1cmVJbmZvOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBh
cmduYW1lcywgbmFtZXNfY2xvc3VyZSwgbmFtZTJmaXh0dXJlZGVmcyk6Ci0gICAgICAgIHNlbGYu
YXJnbmFtZXMgPSBhcmduYW1lcwotICAgICAgICBzZWxmLm5hbWVzX2Nsb3N1cmUgPSBuYW1lc19j
bG9zdXJlCi0gICAgICAgIHNlbGYubmFtZTJmaXh0dXJlZGVmcyA9IG5hbWUyZml4dHVyZWRlZnMK
LQotCi1jbGFzcyBGaXh0dXJlUmVxdWVzdChGdW5jYXJnbmFtZXNDb21wYXRBdHRyKToKLSAgICAi
IiIgQSByZXF1ZXN0IGZvciBhIGZpeHR1cmUgZnJvbSBhIHRlc3Qgb3IgZml4dHVyZSBmdW5jdGlv
bi4KLQotICAgIEEgcmVxdWVzdCBvYmplY3QgZ2l2ZXMgYWNjZXNzIHRvIHRoZSByZXF1ZXN0aW5n
IHRlc3QgY29udGV4dAotICAgIGFuZCBoYXMgYW4gb3B0aW9uYWwgYGBwYXJhbWBgIGF0dHJpYnV0
ZSBpbiBjYXNlCi0gICAgdGhlIGZpeHR1cmUgaXMgcGFyYW1ldHJpemVkIGluZGlyZWN0bHkuCi0g
ICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcHlmdW5jaXRlbSk6Ci0gICAgICAgIHNl
bGYuX3B5ZnVuY2l0ZW0gPSBweWZ1bmNpdGVtCi0gICAgICAgICM6IGZpeHR1cmUgZm9yIHdoaWNo
IHRoaXMgcmVxdWVzdCBpcyBiZWluZyBwZXJmb3JtZWQKLSAgICAgICAgc2VsZi5maXh0dXJlbmFt
ZSA9IE5vbmUKLSAgICAgICAgIzogU2NvcGUgc3RyaW5nLCBvbmUgb2YgImZ1bmN0aW9uIiwgImNs
YXNzIiwgIm1vZHVsZSIsICJzZXNzaW9uIgotICAgICAgICBzZWxmLnNjb3BlID0gImZ1bmN0aW9u
IgotICAgICAgICBzZWxmLl9maXh0dXJlX3ZhbHVlcyA9IHt9ICAjIGFyZ25hbWUgLT4gZml4dHVy
ZSB2YWx1ZQotICAgICAgICBzZWxmLl9maXh0dXJlX2RlZnMgPSB7fSAgIyBhcmduYW1lIC0+IEZp
eHR1cmVEZWYKLSAgICAgICAgZml4dHVyZWluZm8gPSBweWZ1bmNpdGVtLl9maXh0dXJlaW5mbwot
ICAgICAgICBzZWxmLl9hcmcyZml4dHVyZWRlZnMgPSBmaXh0dXJlaW5mby5uYW1lMmZpeHR1cmVk
ZWZzLmNvcHkoKQotICAgICAgICBzZWxmLl9hcmcyaW5kZXggPSB7fQotICAgICAgICBzZWxmLl9m
aXh0dXJlbWFuYWdlciA9IHB5ZnVuY2l0ZW0uc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKLQotICAg
IEBwcm9wZXJ0eQotICAgIGRlZiBmaXh0dXJlbmFtZXMoc2VsZik6Ci0gICAgICAgICMgYmFja3dh
cmQgaW5jb21wYXRpYmxlIG5vdGU6IG5vdyBhIHJlYWRvbmx5IHByb3BlcnR5Ci0gICAgICAgIHJl
dHVybiBsaXN0KHNlbGYuX3B5ZnVuY2l0ZW0uX2ZpeHR1cmVpbmZvLm5hbWVzX2Nsb3N1cmUpCi0K
LSAgICBAcHJvcGVydHkKLSAgICBkZWYgbm9kZShzZWxmKToKLSAgICAgICAgIiIiIHVuZGVybHlp
bmcgY29sbGVjdGlvbiBub2RlIChkZXBlbmRzIG9uIGN1cnJlbnQgcmVxdWVzdCBzY29wZSkiIiIK
LSAgICAgICAgcmV0dXJuIHNlbGYuX2dldHNjb3BlaXRlbShzZWxmLnNjb3BlKQotCi0gICAgZGVm
IF9nZXRuZXh0Zml4dHVyZWRlZihzZWxmLCBhcmduYW1lKToKLSAgICAgICAgZml4dHVyZWRlZnMg
PSBzZWxmLl9hcmcyZml4dHVyZWRlZnMuZ2V0KGFyZ25hbWUsIE5vbmUpCi0gICAgICAgIGlmIGZp
eHR1cmVkZWZzIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIHdlIGFycml2ZSBoZXJlIGJlY2F1c2Ug
b2YgYSAgYSBkeW5hbWljIGNhbGwgdG8KLSAgICAgICAgICAgICMgZ2V0Zml4dHVyZXZhbHVlKGFy
Z25hbWUpIHVzYWdlIHdoaWNoIHdhcyBuYXR1cmFsbHkKLSAgICAgICAgICAgICMgbm90IGtub3du
IGF0IHBhcnNpbmcvY29sbGVjdGlvbiB0aW1lCi0gICAgICAgICAgICBwYXJlbnRpZCA9IHNlbGYu
X3B5ZnVuY2l0ZW0ucGFyZW50Lm5vZGVpZAotICAgICAgICAgICAgZml4dHVyZWRlZnMgPSBzZWxm
Ll9maXh0dXJlbWFuYWdlci5nZXRmaXh0dXJlZGVmcyhhcmduYW1lLCBwYXJlbnRpZCkKLSAgICAg
ICAgICAgIHNlbGYuX2FyZzJmaXh0dXJlZGVmc1thcmduYW1lXSA9IGZpeHR1cmVkZWZzCi0gICAg
ICAgICMgZml4dHVyZWRlZnMgbGlzdCBpcyBpbW11dGFibGUgc28gd2UgbWFpbnRhaW4gYSBkZWNy
ZWFzaW5nIGluZGV4Ci0gICAgICAgIGluZGV4ID0gc2VsZi5fYXJnMmluZGV4LmdldChhcmduYW1l
LCAwKSAtIDEKLSAgICAgICAgaWYgZml4dHVyZWRlZnMgaXMgTm9uZSBvciAoLWluZGV4ID4gbGVu
KGZpeHR1cmVkZWZzKSk6Ci0gICAgICAgICAgICByYWlzZSBGaXh0dXJlTG9va3VwRXJyb3IoYXJn
bmFtZSwgc2VsZikKLSAgICAgICAgc2VsZi5fYXJnMmluZGV4W2FyZ25hbWVdID0gaW5kZXgKLSAg
ICAgICAgcmV0dXJuIGZpeHR1cmVkZWZzW2luZGV4XQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVm
IGNvbmZpZyhzZWxmKToKLSAgICAgICAgIiIiIHRoZSBweXRlc3QgY29uZmlnIG9iamVjdCBhc3Nv
Y2lhdGVkIHdpdGggdGhpcyByZXF1ZXN0LiAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVu
Y2l0ZW0uY29uZmlnCi0KLSAgICBAc2NvcGVwcm9wZXJ0eSgpCi0gICAgZGVmIGZ1bmN0aW9uKHNl
bGYpOgotICAgICAgICAiIiIgdGVzdCBmdW5jdGlvbiBvYmplY3QgaWYgdGhlIHJlcXVlc3QgaGFz
IGEgcGVyLWZ1bmN0aW9uIHNjb3BlLiAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0
ZW0ub2JqCi0KLSAgICBAc2NvcGVwcm9wZXJ0eSgiY2xhc3MiKQotICAgIGRlZiBjbHMoc2VsZik6
Ci0gICAgICAgICIiIiBjbGFzcyAoY2FuIGJlIE5vbmUpIHdoZXJlIHRoZSB0ZXN0IGZ1bmN0aW9u
IHdhcyBjb2xsZWN0ZWQuICIiIgotICAgICAgICBjbHNjb2wgPSBzZWxmLl9weWZ1bmNpdGVtLmdl
dHBhcmVudChfcHl0ZXN0LnB5dGhvbi5DbGFzcykKLSAgICAgICAgaWYgY2xzY29sOgotICAgICAg
ICAgICAgcmV0dXJuIGNsc2NvbC5vYmoKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBpbnN0YW5j
ZShzZWxmKToKLSAgICAgICAgIiIiIGluc3RhbmNlIChjYW4gYmUgTm9uZSkgb24gd2hpY2ggdGVz
dCBmdW5jdGlvbiB3YXMgY29sbGVjdGVkLiAiIiIKLSAgICAgICAgIyB1bml0dGVzdCBzdXBwb3J0
IGhhY2ssIHNlZSBfcHl0ZXN0LnVuaXR0ZXN0LlRlc3RDYXNlRnVuY3Rpb24KLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0uX3Rlc3RjYXNlCi0gICAgICAg
IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIGZ1bmN0aW9uID0gZ2V0YXR0cihz
ZWxmLCAiZnVuY3Rpb24iLCBOb25lKQotICAgICAgICAgICAgaWYgZnVuY3Rpb24gaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHB5LmJ1aWx0aW4uX2dldGltc2VsZihmdW5jdGlv
bikKLQotICAgIEBzY29wZXByb3BlcnR5KCkKLSAgICBkZWYgbW9kdWxlKHNlbGYpOgotICAgICAg
ICAiIiIgcHl0aG9uIG1vZHVsZSBvYmplY3Qgd2hlcmUgdGhlIHRlc3QgZnVuY3Rpb24gd2FzIGNv
bGxlY3RlZC4gIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9weWZ1bmNpdGVtLmdldHBhcmVudChf
cHl0ZXN0LnB5dGhvbi5Nb2R1bGUpLm9iagotCi0gICAgQHNjb3BlcHJvcGVydHkoKQotICAgIGRl
ZiBmc3BhdGgoc2VsZik6Ci0gICAgICAgICIiIiB0aGUgZmlsZSBzeXN0ZW0gcGF0aCBvZiB0aGUg
dGVzdCBtb2R1bGUgd2hpY2ggY29sbGVjdGVkIHRoaXMgdGVzdC4gIiIiCi0gICAgICAgIHJldHVy
biBzZWxmLl9weWZ1bmNpdGVtLmZzcGF0aAotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGtleXdv
cmRzKHNlbGYpOgotICAgICAgICAiIiIga2V5d29yZHMvbWFya2VycyBkaWN0aW9uYXJ5IGZvciB0
aGUgdW5kZXJseWluZyBub2RlLiAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYubm9kZS5rZXl3b3Jk
cwotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHNlc3Npb24oc2VsZik6Ci0gICAgICAgICIiIiBw
eXRlc3Qgc2Vzc2lvbiBvYmplY3QuICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5jaXRl
bS5zZXNzaW9uCi0KLSAgICBkZWYgYWRkZmluYWxpemVyKHNlbGYsIGZpbmFsaXplcik6Ci0gICAg
ICAgICIiIiBhZGQgZmluYWxpemVyL3RlYXJkb3duIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhZnRl
ciB0aGUKLSAgICAgICAgbGFzdCB0ZXN0IHdpdGhpbiB0aGUgcmVxdWVzdGluZyB0ZXN0IGNvbnRl
eHQgZmluaXNoZWQKLSAgICAgICAgZXhlY3V0aW9uLiAiIiIKLSAgICAgICAgIyBYWFggdXN1YWxs
eSB0aGlzIG1ldGhvZCBpcyBzaGFkb3dlZCBieSBmaXh0dXJlZGVmIHNwZWNpZmljIG9uZXMKLSAg
ICAgICAgc2VsZi5fYWRkZmluYWxpemVyKGZpbmFsaXplciwgc2NvcGU9c2VsZi5zY29wZSkKLQot
ICAgIGRlZiBfYWRkZmluYWxpemVyKHNlbGYsIGZpbmFsaXplciwgc2NvcGUpOgotICAgICAgICBj
b2xpdGVtID0gc2VsZi5fZ2V0c2NvcGVpdGVtKHNjb3BlKQotICAgICAgICBzZWxmLl9weWZ1bmNp
dGVtLnNlc3Npb24uX3NldHVwc3RhdGUuYWRkZmluYWxpemVyKAotICAgICAgICAgICAgZmluYWxp
emVyPWZpbmFsaXplciwgY29saXRlbT1jb2xpdGVtKQotCi0gICAgZGVmIGFwcGx5bWFya2VyKHNl
bGYsIG1hcmtlcik6Ci0gICAgICAgICIiIiBBcHBseSBhIG1hcmtlciB0byBhIHNpbmdsZSB0ZXN0
IGZ1bmN0aW9uIGludm9jYXRpb24uCi0gICAgICAgIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBpZiB5
b3UgZG9uJ3Qgd2FudCB0byBoYXZlIGEga2V5d29yZC9tYXJrZXIKLSAgICAgICAgb24gYWxsIGZ1
bmN0aW9uIGludm9jYXRpb25zLgotCi0gICAgICAgIDphcmcgbWFya2VyOiBhIDpweTpjbGFzczpg
X3B5dGVzdC5tYXJrLk1hcmtEZWNvcmF0b3JgIG9iamVjdAotICAgICAgICAgICAgY3JlYXRlZCBi
eSBhIGNhbGwgdG8gYGBweXRlc3QubWFyay5OQU1FKC4uLilgYC4KLSAgICAgICAgIiIiCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYubm9kZS5rZXl3b3Jkc1ttYXJrZXIubWFya25hbWVd
ID0gbWFya2VyCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IobWFya2VyKQotCi0gICAgZGVmIHJhaXNlZXJyb3Ioc2VsZiwgbXNnKToK
LSAgICAgICAgIiIiIHJhaXNlIGEgRml4dHVyZUxvb2t1cEVycm9yIHdpdGggdGhlIGdpdmVuIG1l
c3NhZ2UuICIiIgotICAgICAgICByYWlzZSBzZWxmLl9maXh0dXJlbWFuYWdlci5GaXh0dXJlTG9v
a3VwRXJyb3IoTm9uZSwgc2VsZiwgbXNnKQotCi0gICAgZGVmIF9maWxsZml4dHVyZXMoc2VsZik6
Ci0gICAgICAgIGl0ZW0gPSBzZWxmLl9weWZ1bmNpdGVtCi0gICAgICAgIGZpeHR1cmVuYW1lcyA9
IGdldGF0dHIoaXRlbSwgImZpeHR1cmVuYW1lcyIsIHNlbGYuZml4dHVyZW5hbWVzKQotICAgICAg
ICBmb3IgYXJnbmFtZSBpbiBmaXh0dXJlbmFtZXM6Ci0gICAgICAgICAgICBpZiBhcmduYW1lIG5v
dCBpbiBpdGVtLmZ1bmNhcmdzOgotICAgICAgICAgICAgICAgIGl0ZW0uZnVuY2FyZ3NbYXJnbmFt
ZV0gPSBzZWxmLmdldGZpeHR1cmV2YWx1ZShhcmduYW1lKQotCi0gICAgZGVmIGNhY2hlZF9zZXR1
cChzZWxmLCBzZXR1cCwgdGVhcmRvd249Tm9uZSwgc2NvcGU9Im1vZHVsZSIsIGV4dHJha2V5PU5v
bmUpOgotICAgICAgICAiIiIgKGRlcHJlY2F0ZWQpIFJldHVybiBhIHRlc3RpbmcgcmVzb3VyY2Ug
bWFuYWdlZCBieSBgYHNldHVwYGAgJgotICAgICAgICBgYHRlYXJkb3duYGAgY2FsbHMuICBgYHNj
b3BlYGAgYW5kIGBgZXh0cmFrZXlgYCBkZXRlcm1pbmUgd2hlbiB0aGUKLSAgICAgICAgYGB0ZWFy
ZG93bmBgIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHNvIHRoYXQgc3Vic2VxdWVudCBjYWxscyB0
bwotICAgICAgICBgYHNldHVwYGAgd291bGQgcmVjcmVhdGUgdGhlIHJlc291cmNlLiAgV2l0aCBw
eXRlc3QtMi4zIHlvdSBvZnRlbgotICAgICAgICBkbyBub3QgbmVlZCBgYGNhY2hlZF9zZXR1cCgp
YGAgYXMgeW91IGNhbiBkaXJlY3RseSBkZWNsYXJlIGEgc2NvcGUKLSAgICAgICAgb24gYSBmaXh0
dXJlIGZ1bmN0aW9uIGFuZCByZWdpc3RlciBhIGZpbmFsaXplciB0aHJvdWdoCi0gICAgICAgIGBg
cmVxdWVzdC5hZGRmaW5hbGl6ZXIoKWBgLgotCi0gICAgICAgIDphcmcgdGVhcmRvd246IGZ1bmN0
aW9uIHJlY2VpdmluZyBhIHByZXZpb3VzbHkgc2V0dXAgcmVzb3VyY2UuCi0gICAgICAgIDphcmcg
c2V0dXA6IGEgbm8tYXJndW1lbnQgZnVuY3Rpb24gY3JlYXRpbmcgYSByZXNvdXJjZS4KLSAgICAg
ICAgOmFyZyBzY29wZTogYSBzdHJpbmcgdmFsdWUgb3V0IG9mIGBgZnVuY3Rpb25gYCwgYGBjbGFz
c2BgLCBgYG1vZHVsZWBgCi0gICAgICAgICAgICBvciBgYHNlc3Npb25gYCBpbmRpY2F0aW5nIHRo
ZSBjYWNoaW5nIGxpZmVjeWNsZSBvZiB0aGUgcmVzb3VyY2UuCi0gICAgICAgIDphcmcgZXh0cmFr
ZXk6IGFkZGVkIHRvIGludGVybmFsIGNhY2hpbmcga2V5IG9mIChmdW5jYXJnbmFtZSwgc2NvcGUp
LgotICAgICAgICAiIiIKLSAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZi5jb25maWcsICdfc2V0
dXBjYWNoZScpOgotICAgICAgICAgICAgc2VsZi5jb25maWcuX3NldHVwY2FjaGUgPSB7fSAgIyBY
WFggd2Vha3JlZj8KLSAgICAgICAgY2FjaGVrZXkgPSAoc2VsZi5maXh0dXJlbmFtZSwgc2VsZi5f
Z2V0c2NvcGVpdGVtKHNjb3BlKSwgZXh0cmFrZXkpCi0gICAgICAgIGNhY2hlID0gc2VsZi5jb25m
aWcuX3NldHVwY2FjaGUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdmFsID0gY2FjaGVbY2Fj
aGVrZXldCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHNlbGYuX2NoZWNr
X3Njb3BlKHNlbGYuZml4dHVyZW5hbWUsIHNlbGYuc2NvcGUsIHNjb3BlKQotICAgICAgICAgICAg
dmFsID0gc2V0dXAoKQotICAgICAgICAgICAgY2FjaGVbY2FjaGVrZXldID0gdmFsCi0gICAgICAg
ICAgICBpZiB0ZWFyZG93biBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBkZWYgZmluYWxp
emVyKCk6Ci0gICAgICAgICAgICAgICAgICAgIGRlbCBjYWNoZVtjYWNoZWtleV0KLSAgICAgICAg
ICAgICAgICAgICAgdGVhcmRvd24odmFsKQotICAgICAgICAgICAgICAgIHNlbGYuX2FkZGZpbmFs
aXplcihmaW5hbGl6ZXIsIHNjb3BlPXNjb3BlKQotICAgICAgICByZXR1cm4gdmFsCi0KLSAgICBk
ZWYgZ2V0Zml4dHVyZXZhbHVlKHNlbGYsIGFyZ25hbWUpOgotICAgICAgICAiIiIgRHluYW1pY2Fs
bHkgcnVuIGEgbmFtZWQgZml4dHVyZSBmdW5jdGlvbi4KLQotICAgICAgICBEZWNsYXJpbmcgZml4
dHVyZXMgdmlhIGZ1bmN0aW9uIGFyZ3VtZW50IGlzIHJlY29tbWVuZGVkIHdoZXJlIHBvc3NpYmxl
LgotICAgICAgICBCdXQgaWYgeW91IGNhbiBvbmx5IGRlY2lkZSB3aGV0aGVyIHRvIHVzZSBhbm90
aGVyIGZpeHR1cmUgYXQgdGVzdAotICAgICAgICBzZXR1cCB0aW1lLCB5b3UgbWF5IHVzZSB0aGlz
IGZ1bmN0aW9uIHRvIHJldHJpZXZlIGl0IGluc2lkZSBhIGZpeHR1cmUKLSAgICAgICAgb3IgdGVz
dCBmdW5jdGlvbiBib2R5LgotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2dldF9h
Y3RpdmVfZml4dHVyZWRlZihhcmduYW1lKS5jYWNoZWRfcmVzdWx0WzBdCi0KLSAgICBkZWYgZ2V0
ZnVuY2FyZ3ZhbHVlKHNlbGYsIGFyZ25hbWUpOgotICAgICAgICAiIiIgRGVwcmVjYXRlZCwgdXNl
IGdldGZpeHR1cmV2YWx1ZS4gIiIiCi0gICAgICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVj
YXRlZAotICAgICAgICB3YXJuaW5ncy53YXJuKAotICAgICAgICAgICAgZGVwcmVjYXRlZC5HRVRG
VU5DQVJHVkFMVUUsCi0gICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsCi0gICAgICAgICAg
ICBzdGFja2xldmVsPTIpCi0gICAgICAgIHJldHVybiBzZWxmLmdldGZpeHR1cmV2YWx1ZShhcmdu
YW1lKQotCi0gICAgZGVmIF9nZXRfYWN0aXZlX2ZpeHR1cmVkZWYoc2VsZiwgYXJnbmFtZSk6Ci0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9maXh0dXJlX2RlZnNbYXJnbmFt
ZV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIGZpeHR1cmVkZWYgPSBzZWxmLl9nZXRuZXh0Zml4dHVyZWRlZihhcmduYW1lKQotICAg
ICAgICAgICAgZXhjZXB0IEZpeHR1cmVMb29rdXBFcnJvcjoKLSAgICAgICAgICAgICAgICBpZiBh
cmduYW1lID09ICJyZXF1ZXN0IjoKLSAgICAgICAgICAgICAgICAgICAgY2xhc3MgUHNldWRvRml4
dHVyZURlZjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlZF9yZXN1bHQgPSAoc2VsZiwg
WzBdLCBOb25lKQotICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUgPSAiZnVuY3Rpb24iCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBQc2V1ZG9GaXh0dXJlRGVmCi0gICAgICAgICAgICAg
ICAgcmFpc2UKLSAgICAgICAgIyByZW1vdmUgaW5kZW50IHRvIHByZXZlbnQgdGhlIHB5dGhvbjMg
ZXhjZXB0aW9uCi0gICAgICAgICMgZnJvbSBsZWFraW5nIGludG8gdGhlIGNhbGwKLSAgICAgICAg
cmVzdWx0ID0gc2VsZi5fZ2V0Zml4dHVyZXZhbHVlKGZpeHR1cmVkZWYpCi0gICAgICAgIHNlbGYu
X2ZpeHR1cmVfdmFsdWVzW2FyZ25hbWVdID0gcmVzdWx0Ci0gICAgICAgIHNlbGYuX2ZpeHR1cmVf
ZGVmc1thcmduYW1lXSA9IGZpeHR1cmVkZWYKLSAgICAgICAgcmV0dXJuIGZpeHR1cmVkZWYKLQot
ICAgIGRlZiBfZ2V0X2ZpeHR1cmVzdGFjayhzZWxmKToKLSAgICAgICAgY3VycmVudCA9IHNlbGYK
LSAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgd2hpbGUgMToKLSAgICAgICAgICAgIGZpeHR1
cmVkZWYgPSBnZXRhdHRyKGN1cnJlbnQsICJfZml4dHVyZWRlZiIsIE5vbmUpCi0gICAgICAgICAg
ICBpZiBmaXh0dXJlZGVmIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLnJldmVyc2Uo
KQotICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXMKLSAgICAgICAgICAgIHZhbHVlcy5hcHBl
bmQoZml4dHVyZWRlZikKLSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Ll9wYXJlbnRfcmVx
dWVzdAotCi0gICAgZGVmIF9nZXRmaXh0dXJldmFsdWUoc2VsZiwgZml4dHVyZWRlZik6Ci0gICAg
ICAgICMgcHJlcGFyZSBhIHN1YnJlcXVlc3Qgb2JqZWN0IGJlZm9yZSBjYWxsaW5nIGZpeHR1cmUg
ZnVuY3Rpb24KLSAgICAgICAgIyAobGF0dGVyIG1hbmFnZWQgYnkgZml4dHVyZWRlZikKLSAgICAg
ICAgYXJnbmFtZSA9IGZpeHR1cmVkZWYuYXJnbmFtZQotICAgICAgICBmdW5jaXRlbSA9IHNlbGYu
X3B5ZnVuY2l0ZW0KLSAgICAgICAgc2NvcGUgPSBmaXh0dXJlZGVmLnNjb3BlCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIHBhcmFtID0gZnVuY2l0ZW0uY2FsbHNwZWMuZ2V0cGFyYW0oYXJnbmFt
ZSkKLSAgICAgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgVmFsdWVFcnJvcik6Ci0gICAgICAg
ICAgICBwYXJhbSA9IE5PVFNFVAotICAgICAgICAgICAgcGFyYW1faW5kZXggPSAwCi0gICAgICAg
ICAgICBpZiBmaXh0dXJlZGVmLnBhcmFtcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBm
cmFtZSA9IGluc3BlY3Quc3RhY2soKVszXQotICAgICAgICAgICAgICAgIGZyYW1laW5mbyA9IGlu
c3BlY3QuZ2V0ZnJhbWVpbmZvKGZyYW1lWzBdKQotICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRo
ID0gZnJhbWVpbmZvLmZpbGVuYW1lCi0gICAgICAgICAgICAgICAgc291cmNlX2xpbmVubyA9IGZy
YW1laW5mby5saW5lbm8KLSAgICAgICAgICAgICAgICBzb3VyY2VfcGF0aCA9IHB5LnBhdGgubG9j
YWwoc291cmNlX3BhdGgpCi0gICAgICAgICAgICAgICAgaWYgc291cmNlX3BhdGgucmVsdG8oZnVu
Y2l0ZW0uY29uZmlnLnJvb3RkaXIpOgotICAgICAgICAgICAgICAgICAgICBzb3VyY2VfcGF0aCA9
IHNvdXJjZV9wYXRoLnJlbHRvKGZ1bmNpdGVtLmNvbmZpZy5yb290ZGlyKQotICAgICAgICAgICAg
ICAgIG1zZyA9ICgKLSAgICAgICAgICAgICAgICAgICAgIlRoZSByZXF1ZXN0ZWQgZml4dHVyZSBo
YXMgbm8gcGFyYW1ldGVyIGRlZmluZWQgZm9yIHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICJj
dXJyZW50IHRlc3QuXG5cblJlcXVlc3RlZCBmaXh0dXJlICd7MH0nIGRlZmluZWQgaW46XG57MX0i
Ci0gICAgICAgICAgICAgICAgICAgICJcblxuUmVxdWVzdGVkIGhlcmU6XG57Mn06ezN9Ii5mb3Jt
YXQoCi0gICAgICAgICAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLmFyZ25hbWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBnZXRsb2NhdGlvbihmaXh0dXJlZGVmLmZ1bmMsIGZ1bmNpdGVtLmNv
bmZpZy5yb290ZGlyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoLAotICAg
ICAgICAgICAgICAgICAgICAgICAgc291cmNlX2xpbmVubywKLSAgICAgICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBmYWlsKG1zZykKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICMgaW5kaWNlcyBtaWdodCBub3QgYmUgc2V0IGlmIG9sZC1zdHls
ZSBtZXRhZnVuYy5hZGRjYWxsKCkgd2FzIHVzZWQKLSAgICAgICAgICAgIHBhcmFtX2luZGV4ID0g
ZnVuY2l0ZW0uY2FsbHNwZWMuaW5kaWNlcy5nZXQoYXJnbmFtZSwgMCkKLSAgICAgICAgICAgICMg
aWYgYSBwYXJhbWV0cml6ZSBpbnZvY2F0aW9uIHNldCBhIHNjb3BlIGl0IHdpbGwgb3ZlcnJpZGUK
LSAgICAgICAgICAgICMgdGhlIHN0YXRpYyBzY29wZSBkZWZpbmVkIHdpdGggdGhlIGZpeHR1cmUg
ZnVuY3Rpb24KLSAgICAgICAgICAgIHBhcmFtc2NvcGVudW0gPSBmdW5jaXRlbS5jYWxsc3BlYy5f
YXJnMnNjb3BlbnVtLmdldChhcmduYW1lKQotICAgICAgICAgICAgaWYgcGFyYW1zY29wZW51bSBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBzY29wZSA9IHNjb3Blc1twYXJhbXNjb3BlbnVt
XQotCi0gICAgICAgIHN1YnJlcXVlc3QgPSBTdWJSZXF1ZXN0KHNlbGYsIHNjb3BlLCBwYXJhbSwg
cGFyYW1faW5kZXgsIGZpeHR1cmVkZWYpCi0KLSAgICAgICAgIyBjaGVjayBpZiBhIGhpZ2hlci1s
ZXZlbCBzY29wZWQgZml4dHVyZSBhY2Nlc3NlcyBhIGxvd2VyIGxldmVsIG9uZQotICAgICAgICBz
dWJyZXF1ZXN0Ll9jaGVja19zY29wZShhcmduYW1lLCBzZWxmLnNjb3BlLCBzY29wZSkKLQotICAg
ICAgICAjIGNsZWFyIHN5cy5leGNfaW5mbyBiZWZvcmUgaW52b2tpbmcgdGhlIGZpeHR1cmUgKHB5
dGhvbiBidWc/KQotICAgICAgICAjIGlmIGl0cyBub3QgZXhwbGljaXRseSBjbGVhcmVkIGl0IHdp
bGwgbGVhayBpbnRvIHRoZSBjYWxsCi0gICAgICAgIGV4Y19jbGVhcigpCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgICMgY2FsbCB0aGUgZml4dHVyZSBmdW5jdGlvbgotICAgICAgICAgICAgdmFs
ID0gZml4dHVyZWRlZi5leGVjdXRlKHJlcXVlc3Q9c3VicmVxdWVzdCkKLSAgICAgICAgZmluYWxs
eToKLSAgICAgICAgICAgICMgaWYgZml4dHVyZSBmdW5jdGlvbiBmYWlsZWQgaXQgbWlnaHQgaGF2
ZSByZWdpc3RlcmVkIGZpbmFsaXplcnMKLSAgICAgICAgICAgIHNlbGYuc2Vzc2lvbi5fc2V0dXBz
dGF0ZS5hZGRmaW5hbGl6ZXIoZnVuY3Rvb2xzLnBhcnRpYWwoZml4dHVyZWRlZi5maW5pc2gsIHJl
cXVlc3Q9c3VicmVxdWVzdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN1YnJlcXVlc3Qubm9kZSkKLSAgICAgICAgcmV0dXJuIHZhbAotCi0gICAg
ZGVmIF9jaGVja19zY29wZShzZWxmLCBhcmduYW1lLCBpbnZva2luZ19zY29wZSwgcmVxdWVzdGVk
X3Njb3BlKToKLSAgICAgICAgaWYgYXJnbmFtZSA9PSAicmVxdWVzdCI6Ci0gICAgICAgICAgICBy
ZXR1cm4KLSAgICAgICAgaWYgc2NvcGVtaXNtYXRjaChpbnZva2luZ19zY29wZSwgcmVxdWVzdGVk
X3Njb3BlKToKLSAgICAgICAgICAgICMgdHJ5IHRvIHJlcG9ydCBzb21ldGhpbmcgaGVscGZ1bAot
ICAgICAgICAgICAgbGluZXMgPSBzZWxmLl9mYWN0b3J5dHJhY2ViYWNrKCkKLSAgICAgICAgICAg
IGZhaWwoIlNjb3BlTWlzbWF0Y2g6IFlvdSB0cmllZCB0byBhY2Nlc3MgdGhlICVyIHNjb3BlZCAi
Ci0gICAgICAgICAgICAgICAgICJmaXh0dXJlICVyIHdpdGggYSAlciBzY29wZWQgcmVxdWVzdCBv
YmplY3QsICIKLSAgICAgICAgICAgICAgICAgImludm9sdmVkIGZhY3Rvcmllc1xuJXMiICUgKAot
ICAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3RlZF9zY29wZSwgYXJnbmFtZSwgaW52b2tpbmdf
c2NvcGUsICJcbiIuam9pbihsaW5lcykpKSwKLSAgICAgICAgICAgICAgICAgcHl0cmFjZT1GYWxz
ZSkKLQotICAgIGRlZiBfZmFjdG9yeXRyYWNlYmFjayhzZWxmKToKLSAgICAgICAgbGluZXMgPSBb
XQotICAgICAgICBmb3IgZml4dHVyZWRlZiBpbiBzZWxmLl9nZXRfZml4dHVyZXN0YWNrKCk6Ci0g
ICAgICAgICAgICBmYWN0b3J5ID0gZml4dHVyZWRlZi5mdW5jCi0gICAgICAgICAgICBmcywgbGlu
ZW5vID0gZ2V0ZnNsaW5lbm8oZmFjdG9yeSkKLSAgICAgICAgICAgIHAgPSBzZWxmLl9weWZ1bmNp
dGVtLnNlc3Npb24uZnNwYXRoLmJlc3RyZWxwYXRoKGZzKQotICAgICAgICAgICAgYXJncyA9IF9m
b3JtYXRfYXJncyhmYWN0b3J5KQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIlczolZDogIGRl
ZiAlcyVzIiAlICgKLSAgICAgICAgICAgICAgICBwLCBsaW5lbm8sIGZhY3RvcnkuX19uYW1lX18s
IGFyZ3MpKQotICAgICAgICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBfZ2V0c2NvcGVpdGVtKHNl
bGYsIHNjb3BlKToKLSAgICAgICAgaWYgc2NvcGUgPT0gImZ1bmN0aW9uIjoKLSAgICAgICAgICAg
ICMgdGhpcyBtaWdodCBhbHNvIGJlIGEgbm9uLWZ1bmN0aW9uIEl0ZW0gZGVzcGl0ZSBpdHMgYXR0
cmlidXRlIG5hbWUKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9weWZ1bmNpdGVtCi0gICAgICAg
IG5vZGUgPSBnZXRfc2NvcGVfbm9kZShzZWxmLl9weWZ1bmNpdGVtLCBzY29wZSkKLSAgICAgICAg
aWYgbm9kZSBpcyBOb25lIGFuZCBzY29wZSA9PSAiY2xhc3MiOgotICAgICAgICAgICAgIyBmYWxs
YmFjayB0byBmdW5jdGlvbiBpdGVtIGl0c2VsZgotICAgICAgICAgICAgbm9kZSA9IHNlbGYuX3B5
ZnVuY2l0ZW0KLSAgICAgICAgYXNzZXJ0IG5vZGUsICdDb3VsZCBub3Qgb2J0YWluIGEgbm9kZSBm
b3Igc2NvcGUgInt9IiBmb3IgZnVuY3Rpb24geyFyfScuZm9ybWF0KHNjb3BlLCBzZWxmLl9weWZ1
bmNpdGVtKQotICAgICAgICByZXR1cm4gbm9kZQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgot
ICAgICAgICByZXR1cm4gIjxGaXh0dXJlUmVxdWVzdCBmb3IgJXI+IiAlIChzZWxmLm5vZGUpCi0K
LQotY2xhc3MgU3ViUmVxdWVzdChGaXh0dXJlUmVxdWVzdCk6Ci0gICAgIiIiIGEgc3ViIHJlcXVl
c3QgZm9yIGhhbmRsaW5nIGdldHRpbmcgYSBmaXh0dXJlIGZyb20gYQotICAgIHRlc3QgZnVuY3Rp
b24vZml4dHVyZS4gIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgc2NvcGUs
IHBhcmFtLCBwYXJhbV9pbmRleCwgZml4dHVyZWRlZik6Ci0gICAgICAgIHNlbGYuX3BhcmVudF9y
ZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLmZpeHR1cmVuYW1lID0gZml4dHVyZWRlZi5h
cmduYW1lCi0gICAgICAgIGlmIHBhcmFtIGlzIG5vdCBOT1RTRVQ6Ci0gICAgICAgICAgICBzZWxm
LnBhcmFtID0gcGFyYW0KLSAgICAgICAgc2VsZi5wYXJhbV9pbmRleCA9IHBhcmFtX2luZGV4Ci0g
ICAgICAgIHNlbGYuc2NvcGUgPSBzY29wZQotICAgICAgICBzZWxmLl9maXh0dXJlZGVmID0gZml4
dHVyZWRlZgotICAgICAgICBzZWxmLl9weWZ1bmNpdGVtID0gcmVxdWVzdC5fcHlmdW5jaXRlbQot
ICAgICAgICBzZWxmLl9maXh0dXJlX3ZhbHVlcyA9IHJlcXVlc3QuX2ZpeHR1cmVfdmFsdWVzCi0g
ICAgICAgIHNlbGYuX2ZpeHR1cmVfZGVmcyA9IHJlcXVlc3QuX2ZpeHR1cmVfZGVmcwotICAgICAg
ICBzZWxmLl9hcmcyZml4dHVyZWRlZnMgPSByZXF1ZXN0Ll9hcmcyZml4dHVyZWRlZnMKLSAgICAg
ICAgc2VsZi5fYXJnMmluZGV4ID0gcmVxdWVzdC5fYXJnMmluZGV4Ci0gICAgICAgIHNlbGYuX2Zp
eHR1cmVtYW5hZ2VyID0gcmVxdWVzdC5fZml4dHVyZW1hbmFnZXIKLQotICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8U3ViUmVxdWVzdCAlciBmb3IgJXI+IiAlIChzZWxm
LmZpeHR1cmVuYW1lLCBzZWxmLl9weWZ1bmNpdGVtKQotCi0gICAgZGVmIGFkZGZpbmFsaXplcihz
ZWxmLCBmaW5hbGl6ZXIpOgotICAgICAgICBzZWxmLl9maXh0dXJlZGVmLmFkZGZpbmFsaXplcihm
aW5hbGl6ZXIpCi0KLQotY2xhc3MgU2NvcGVNaXNtYXRjaEVycm9yKEV4Y2VwdGlvbik6Ci0gICAg
IiIiIEEgZml4dHVyZSBmdW5jdGlvbiB0cmllcyB0byB1c2UgYSBkaWZmZXJlbnQgZml4dHVyZSBm
dW5jdGlvbiB3aGljaAotICAgIHdoaWNoIGhhcyBhIGxvd2VyIHNjb3BlIChlLmcuIGEgU2Vzc2lv
biBvbmUgY2FsbHMgYSBmdW5jdGlvbiBvbmUpCi0gICAgIiIiCi0KLQotc2NvcGVzID0gInNlc3Np
b24gbW9kdWxlIGNsYXNzIGZ1bmN0aW9uIi5zcGxpdCgpCi1zY29wZW51bV9mdW5jdGlvbiA9IHNj
b3Blcy5pbmRleCgiZnVuY3Rpb24iKQotCi0KLWRlZiBzY29wZW1pc21hdGNoKGN1cnJlbnRzY29w
ZSwgbmV3c2NvcGUpOgotICAgIHJldHVybiBzY29wZXMuaW5kZXgobmV3c2NvcGUpID4gc2NvcGVz
LmluZGV4KGN1cnJlbnRzY29wZSkKLQotCi1kZWYgc2NvcGUyaW5kZXgoc2NvcGUsIGRlc2NyLCB3
aGVyZT1Ob25lKToKLSAgICAiIiJMb29rIHVwIHRoZSBpbmRleCBvZiBgYHNjb3BlYGAgYW5kIHJh
aXNlIGEgZGVzY3JpcHRpdmUgdmFsdWUgZXJyb3IKLSAgICBpZiBub3QgZGVmaW5lZC4KLSAgICAi
IiIKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBzY29wZXMuaW5kZXgoc2NvcGUpCi0gICAgZXhj
ZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAi
ezB9IHsxfWhhcyBhbiB1bnN1cHBvcnRlZCBzY29wZSB2YWx1ZSAnezJ9JyIuZm9ybWF0KAotICAg
ICAgICAgICAgICAgIGRlc2NyLCAnZnJvbSB7MH0gJy5mb3JtYXQod2hlcmUpIGlmIHdoZXJlIGVs
c2UgJycsCi0gICAgICAgICAgICAgICAgc2NvcGUpCi0gICAgICAgICkKLQotCi1jbGFzcyBGaXh0
dXJlTG9va3VwRXJyb3IoTG9va3VwRXJyb3IpOgotICAgICIiIiBjb3VsZCBub3QgcmV0dXJuIGEg
cmVxdWVzdGVkIEZpeHR1cmUgKG1pc3Npbmcgb3IgaW52YWxpZCkuICIiIgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGFyZ25hbWUsIHJlcXVlc3QsIG1zZz1Ob25lKToKLSAgICAgICAgc2VsZi5h
cmduYW1lID0gYXJnbmFtZQotICAgICAgICBzZWxmLnJlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAg
IHNlbGYuZml4dHVyZXN0YWNrID0gcmVxdWVzdC5fZ2V0X2ZpeHR1cmVzdGFjaygpCi0gICAgICAg
IHNlbGYubXNnID0gbXNnCi0KLSAgICBkZWYgZm9ybWF0cmVwcihzZWxmKToKLSAgICAgICAgdGJs
aW5lcyA9IFtdCi0gICAgICAgIGFkZGxpbmUgPSB0YmxpbmVzLmFwcGVuZAotICAgICAgICBzdGFj
ayA9IFtzZWxmLnJlcXVlc3QuX3B5ZnVuY2l0ZW0ub2JqXQotICAgICAgICBzdGFjay5leHRlbmQo
bWFwKGxhbWJkYSB4OiB4LmZ1bmMsIHNlbGYuZml4dHVyZXN0YWNrKSkKLSAgICAgICAgbXNnID0g
c2VsZi5tc2cKLSAgICAgICAgaWYgbXNnIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgIyB0aGUg
bGFzdCBmaXh0dXJlIHJhaXNlIGFuIGVycm9yLCBsZXQncyBwcmVzZW50Ci0gICAgICAgICAgICAj
IGl0IGF0IHRoZSByZXF1ZXN0aW5nIHNpZGUKLSAgICAgICAgICAgIHN0YWNrID0gc3RhY2tbOi0x
XQotICAgICAgICBmb3IgZnVuY3Rpb24gaW4gc3RhY2s6Ci0gICAgICAgICAgICBmc3BhdGgsIGxp
bmVubyA9IGdldGZzbGluZW5vKGZ1bmN0aW9uKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIGxpbmVzLCBfID0gaW5zcGVjdC5nZXRzb3VyY2VsaW5lcyhnZXRfcmVhbF9mdW5jKGZ1
bmN0aW9uKSkKLSAgICAgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgSW5kZXhFcnJvciwgVHlwZUVy
cm9yKToKLSAgICAgICAgICAgICAgICBlcnJvcl9tc2cgPSAiZmlsZSAlcywgbGluZSAlczogc291
cmNlIGNvZGUgbm90IGF2YWlsYWJsZSIKLSAgICAgICAgICAgICAgICBhZGRsaW5lKGVycm9yX21z
ZyAlIChmc3BhdGgsIGxpbmVubyArIDEpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBhZGRsaW5lKCJmaWxlICVzLCBsaW5lICVzIiAlIChmc3BhdGgsIGxpbmVubyArIDEpKQot
ICAgICAgICAgICAgICAgIGZvciBpLCBsaW5lIGluIGVudW1lcmF0ZShsaW5lcyk6Ci0gICAgICAg
ICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJzdHJpcCgpCi0gICAgICAgICAgICAgICAgICAgIGFk
ZGxpbmUoIiAgIiArIGxpbmUpCi0gICAgICAgICAgICAgICAgICAgIGlmIGxpbmUubHN0cmlwKCku
c3RhcnRzd2l0aCgnZGVmJyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhawotCi0gICAg
ICAgIGlmIG1zZyBpcyBOb25lOgotICAgICAgICAgICAgZm0gPSBzZWxmLnJlcXVlc3QuX2ZpeHR1
cmVtYW5hZ2VyCi0gICAgICAgICAgICBhdmFpbGFibGUgPSBbXQotICAgICAgICAgICAgcGFyZW50
aWQgPSBzZWxmLnJlcXVlc3QuX3B5ZnVuY2l0ZW0ucGFyZW50Lm5vZGVpZAotICAgICAgICAgICAg
Zm9yIG5hbWUsIGZpeHR1cmVkZWZzIGluIGZtLl9hcmcyZml4dHVyZWRlZnMuaXRlbXMoKToKLSAg
ICAgICAgICAgICAgICBmYWNsaXN0ID0gbGlzdChmbS5fbWF0Y2hmYWN0b3JpZXMoZml4dHVyZWRl
ZnMsIHBhcmVudGlkKSkKLSAgICAgICAgICAgICAgICBpZiBmYWNsaXN0IGFuZCBuYW1lIG5vdCBp
biBhdmFpbGFibGU6Ci0gICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZS5hcHBlbmQobmFtZSkK
LSAgICAgICAgICAgIG1zZyA9ICJmaXh0dXJlICVyIG5vdCBmb3VuZCIgJSAoc2VsZi5hcmduYW1l
LCkKLSAgICAgICAgICAgIG1zZyArPSAiXG4gYXZhaWxhYmxlIGZpeHR1cmVzOiAlcyIgJSAoIiwg
Ii5qb2luKHNvcnRlZChhdmFpbGFibGUpKSwpCi0gICAgICAgICAgICBtc2cgKz0gIlxuIHVzZSAn
cHl0ZXN0IC0tZml4dHVyZXMgW3Rlc3RwYXRoXScgZm9yIGhlbHAgb24gdGhlbS4iCi0KLSAgICAg
ICAgcmV0dXJuIEZpeHR1cmVMb29rdXBFcnJvclJlcHIoZnNwYXRoLCBsaW5lbm8sIHRibGluZXMs
IG1zZywgc2VsZi5hcmduYW1lKQotCi0KLWNsYXNzIEZpeHR1cmVMb29rdXBFcnJvclJlcHIoVGVy
bWluYWxSZXByKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWUsIGZpcnN0bGluZW5v
LCB0YmxpbmVzLCBlcnJvcnN0cmluZywgYXJnbmFtZSk6Ci0gICAgICAgIHNlbGYudGJsaW5lcyA9
IHRibGluZXMKLSAgICAgICAgc2VsZi5lcnJvcnN0cmluZyA9IGVycm9yc3RyaW5nCi0gICAgICAg
IHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQotICAgICAgICBzZWxmLmZpcnN0bGluZW5vID0gZmly
c3RsaW5lbm8KLSAgICAgICAgc2VsZi5hcmduYW1lID0gYXJnbmFtZQotCi0gICAgZGVmIHRvdGVy
bWluYWwoc2VsZiwgdHcpOgotICAgICAgICAjIHR3LmxpbmUoIkZpeHR1cmVMb29rdXBFcnJvcjog
JXMiICUoc2VsZi5hcmduYW1lKSwgcmVkPVRydWUpCi0gICAgICAgIGZvciB0YmxpbmUgaW4gc2Vs
Zi50YmxpbmVzOgotICAgICAgICAgICAgdHcubGluZSh0YmxpbmUucnN0cmlwKCkpCi0gICAgICAg
IGxpbmVzID0gc2VsZi5lcnJvcnN0cmluZy5zcGxpdCgiXG4iKQotICAgICAgICBpZiBsaW5lczoK
LSAgICAgICAgICAgIHR3LmxpbmUoJ3swfSAgICAgICB7MX0nLmZvcm1hdChGb3JtYXR0ZWRFeGNp
bmZvLmZhaWxfbWFya2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpbmVzWzBdLnN0cmlwKCkpLCByZWQ9VHJ1ZSkKLSAgICAgICAgICAgIGZvciBsaW5lIGlu
IGxpbmVzWzE6XToKLSAgICAgICAgICAgICAgICB0dy5saW5lKCd7MH0gICAgICAgezF9Jy5mb3Jt
YXQoRm9ybWF0dGVkRXhjaW5mby5mbG93X21hcmtlciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGluZS5zdHJpcCgpKSwgcmVkPVRydWUpCi0gICAgICAg
IHR3LmxpbmUoKQotICAgICAgICB0dy5saW5lKCIlczolZCIgJSAoc2VsZi5maWxlbmFtZSwgc2Vs
Zi5maXJzdGxpbmVubyArIDEpKQotCi0KLWRlZiBmYWlsX2ZpeHR1cmVmdW5jKGZpeHR1cmVmdW5j
LCBtc2cpOgotICAgIGZzLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhmaXh0dXJlZnVuYykKLSAgICBs
b2NhdGlvbiA9ICIlczolcyIgJSAoZnMsIGxpbmVubyArIDEpCi0gICAgc291cmNlID0gX3B5dGVz
dC5fY29kZS5Tb3VyY2UoZml4dHVyZWZ1bmMpCi0gICAgZmFpbChtc2cgKyAiOlxuXG4iICsgc3Ry
KHNvdXJjZS5pbmRlbnQoKSkgKyAiXG4iICsgbG9jYXRpb24sCi0gICAgICAgICBweXRyYWNlPUZh
bHNlKQotCi0KLWRlZiBjYWxsX2ZpeHR1cmVfZnVuYyhmaXh0dXJlZnVuYywgcmVxdWVzdCwga3dh
cmdzKToKLSAgICB5aWVsZGN0eCA9IGlzX2dlbmVyYXRvcihmaXh0dXJlZnVuYykKLSAgICBpZiB5
aWVsZGN0eDoKLSAgICAgICAgaXQgPSBmaXh0dXJlZnVuYygqKmt3YXJncykKLSAgICAgICAgcmVz
ID0gbmV4dChpdCkKLQotICAgICAgICBkZWYgdGVhcmRvd24oKToKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICBuZXh0KGl0KQotICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRp
b246Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBmYWlsX2ZpeHR1cmVmdW5jKGZpeHR1cmVmdW5jLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInlpZWxkX2ZpeHR1cmUgZnVuY3Rpb24gaGFzIG1vcmUgdGhhbiBvbmUgJ3lp
ZWxkJyIpCi0KLSAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIodGVhcmRvd24pCi0gICAgZWxz
ZToKLSAgICAgICAgcmVzID0gZml4dHVyZWZ1bmMoKiprd2FyZ3MpCi0gICAgcmV0dXJuIHJlcwot
Ci0KLWNsYXNzIEZpeHR1cmVEZWY6Ci0gICAgIiIiIEEgY29udGFpbmVyIGZvciBhIGZhY3Rvcnkg
ZGVmaW5pdGlvbi4gIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZml4dHVyZW1hbmFnZXIs
IGJhc2VpZCwgYXJnbmFtZSwgZnVuYywgc2NvcGUsIHBhcmFtcywKLSAgICAgICAgICAgICAgICAg
dW5pdHRlc3Q9RmFsc2UsIGlkcz1Ob25lKToKLSAgICAgICAgc2VsZi5fZml4dHVyZW1hbmFnZXIg
PSBmaXh0dXJlbWFuYWdlcgotICAgICAgICBzZWxmLmJhc2VpZCA9IGJhc2VpZCBvciAnJwotICAg
ICAgICBzZWxmLmhhc19sb2NhdGlvbiA9IGJhc2VpZCBpcyBub3QgTm9uZQotICAgICAgICBzZWxm
LmZ1bmMgPSBmdW5jCi0gICAgICAgIHNlbGYuYXJnbmFtZSA9IGFyZ25hbWUKLSAgICAgICAgc2Vs
Zi5zY29wZSA9IHNjb3BlCi0gICAgICAgIHNlbGYuc2NvcGVudW0gPSBzY29wZTJpbmRleCgKLSAg
ICAgICAgICAgIHNjb3BlIG9yICJmdW5jdGlvbiIsCi0gICAgICAgICAgICBkZXNjcj0nZml4dHVy
ZSB7MH0nLmZvcm1hdChmdW5jLl9fbmFtZV9fKSwKLSAgICAgICAgICAgIHdoZXJlPWJhc2VpZAot
ICAgICAgICApCi0gICAgICAgIHNlbGYucGFyYW1zID0gcGFyYW1zCi0gICAgICAgIHNlbGYuYXJn
bmFtZXMgPSBnZXRmdW5jYXJnbmFtZXMoZnVuYywgaXNfbWV0aG9kPXVuaXR0ZXN0KQotICAgICAg
ICBzZWxmLnVuaXR0ZXN0ID0gdW5pdHRlc3QKLSAgICAgICAgc2VsZi5pZHMgPSBpZHMKLSAgICAg
ICAgc2VsZi5fZmluYWxpemVycyA9IFtdCi0KLSAgICBkZWYgYWRkZmluYWxpemVyKHNlbGYsIGZp
bmFsaXplcik6Ci0gICAgICAgIHNlbGYuX2ZpbmFsaXplcnMuYXBwZW5kKGZpbmFsaXplcikKLQot
ICAgIGRlZiBmaW5pc2goc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIGV4Y2VwdGlvbnMgPSBbXQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aGlsZSBzZWxmLl9maW5hbGl6ZXJzOgotICAgICAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgZnVuYyA9IHNlbGYuX2ZpbmFsaXpl
cnMucG9wKCkKLSAgICAgICAgICAgICAgICAgICAgZnVuYygpCi0gICAgICAgICAgICAgICAgZXhj
ZXB0OiAgIyBub3FhCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnMuYXBwZW5kKHN5cy5l
eGNfaW5mbygpKQotICAgICAgICAgICAgaWYgZXhjZXB0aW9uczoKLSAgICAgICAgICAgICAgICBl
ID0gZXhjZXB0aW9uc1swXQotICAgICAgICAgICAgICAgIGRlbCBleGNlcHRpb25zICAjIGVuc3Vy
ZSB3ZSBkb24ndCBrZWVwIGFsbCBmcmFtZXMgYWxpdmUgYmVjYXVzZSBvZiB0aGUgdHJhY2ViYWNr
Ci0gICAgICAgICAgICAgICAgcHkuYnVpbHRpbi5fcmVyYWlzZSgqZSkKLQotICAgICAgICBmaW5h
bGx5OgotICAgICAgICAgICAgaG9vayA9IHNlbGYuX2ZpeHR1cmVtYW5hZ2VyLnNlc3Npb24uZ2V0
aG9va3Byb3h5KHJlcXVlc3Qubm9kZS5mc3BhdGgpCi0gICAgICAgICAgICBob29rLnB5dGVzdF9m
aXh0dXJlX3Bvc3RfZmluYWxpemVyKGZpeHR1cmVkZWY9c2VsZiwgcmVxdWVzdD1yZXF1ZXN0KQot
ICAgICAgICAgICAgIyBldmVuIGlmIGZpbmFsaXphdGlvbiBmYWlscywgd2UgaW52YWxpZGF0ZQot
ICAgICAgICAgICAgIyB0aGUgY2FjaGVkIGZpeHR1cmUgdmFsdWUgYW5kIHJlbW92ZQotICAgICAg
ICAgICAgIyBhbGwgZmluYWxpemVycyBiZWNhdXNlIHRoZXkgbWF5IGJlIGJvdW5kIG1ldGhvZHMg
d2hpY2ggd2lsbAotICAgICAgICAgICAgIyBrZWVwIGluc3RhbmNlcyBhbGl2ZQotICAgICAgICAg
ICAgaWYgaGFzYXR0cihzZWxmLCAiY2FjaGVkX3Jlc3VsdCIpOgotICAgICAgICAgICAgICAgIGRl
bCBzZWxmLmNhY2hlZF9yZXN1bHQKLSAgICAgICAgICAgIHNlbGYuX2ZpbmFsaXplcnMgPSBbXQot
Ci0gICAgZGVmIGV4ZWN1dGUoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICMgZ2V0IHJlcXVpcmVk
IGFyZ3VtZW50cyBhbmQgcmVnaXN0ZXIgb3VyIG93biBmaW5pc2goKQotICAgICAgICAjIHdpdGgg
dGhlaXIgZmluYWxpemF0aW9uCi0gICAgICAgIGZvciBhcmduYW1lIGluIHNlbGYuYXJnbmFtZXM6
Ci0gICAgICAgICAgICBmaXh0dXJlZGVmID0gcmVxdWVzdC5fZ2V0X2FjdGl2ZV9maXh0dXJlZGVm
KGFyZ25hbWUpCi0gICAgICAgICAgICBpZiBhcmduYW1lICE9ICJyZXF1ZXN0IjoKLSAgICAgICAg
ICAgICAgICBmaXh0dXJlZGVmLmFkZGZpbmFsaXplcihmdW5jdG9vbHMucGFydGlhbChzZWxmLmZp
bmlzaCwgcmVxdWVzdD1yZXF1ZXN0KSkKLQotICAgICAgICBteV9jYWNoZV9rZXkgPSByZXF1ZXN0
LnBhcmFtX2luZGV4Ci0gICAgICAgIGNhY2hlZF9yZXN1bHQgPSBnZXRhdHRyKHNlbGYsICJjYWNo
ZWRfcmVzdWx0IiwgTm9uZSkKLSAgICAgICAgaWYgY2FjaGVkX3Jlc3VsdCBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHJlc3VsdCwgY2FjaGVfa2V5LCBlcnIgPSBjYWNoZWRfcmVzdWx0Ci0gICAg
ICAgICAgICBpZiBteV9jYWNoZV9rZXkgPT0gY2FjaGVfa2V5OgotICAgICAgICAgICAgICAgIGlm
IGVyciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgcHkuYnVpbHRpbi5fcmVyYWlz
ZSgqZXJyKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQKLSAgICAgICAgICAgICMgd2UgaGF2ZSBhIHByZXZpb3VzIGJ1dCBkaWZmZXJlbnRs
eSBwYXJhbWV0cml6ZWQgZml4dHVyZSBpbnN0YW5jZQotICAgICAgICAgICAgIyBzbyB3ZSBuZWVk
IHRvIHRlYXIgaXQgZG93biBiZWZvcmUgY3JlYXRpbmcgYSBuZXcgb25lCi0gICAgICAgICAgICBz
ZWxmLmZpbmlzaChyZXF1ZXN0KQotICAgICAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHNlbGYs
ICJjYWNoZWRfcmVzdWx0IikKLQotICAgICAgICBob29rID0gc2VsZi5fZml4dHVyZW1hbmFnZXIu
c2Vzc2lvbi5nZXRob29rcHJveHkocmVxdWVzdC5ub2RlLmZzcGF0aCkKLSAgICAgICAgcmV0dXJu
IGhvb2sucHl0ZXN0X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRlZj1zZWxmLCByZXF1ZXN0PXJlcXVl
c3QpCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAoIjxGaXh0dXJl
RGVmIG5hbWU9JXIgc2NvcGU9JXIgYmFzZWlkPSVyID4iICUKLSAgICAgICAgICAgICAgICAoc2Vs
Zi5hcmduYW1lLCBzZWxmLnNjb3BlLCBzZWxmLmJhc2VpZCkpCi0KLQotZGVmIHB5dGVzdF9maXh0
dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgotICAgICIiIiBFeGVjdXRpb24gb2YgZml4
dHVyZSBzZXR1cC4gIiIiCi0gICAga3dhcmdzID0ge30KLSAgICBmb3IgYXJnbmFtZSBpbiBmaXh0
dXJlZGVmLmFyZ25hbWVzOgotICAgICAgICBmaXhkZWYgPSByZXF1ZXN0Ll9nZXRfYWN0aXZlX2Zp
eHR1cmVkZWYoYXJnbmFtZSkKLSAgICAgICAgcmVzdWx0LCBhcmdfY2FjaGVfa2V5LCBleGMgPSBm
aXhkZWYuY2FjaGVkX3Jlc3VsdAotICAgICAgICByZXF1ZXN0Ll9jaGVja19zY29wZShhcmduYW1l
LCByZXF1ZXN0LnNjb3BlLCBmaXhkZWYuc2NvcGUpCi0gICAgICAgIGt3YXJnc1thcmduYW1lXSA9
IHJlc3VsdAotCi0gICAgZml4dHVyZWZ1bmMgPSBmaXh0dXJlZGVmLmZ1bmMKLSAgICBpZiBmaXh0
dXJlZGVmLnVuaXR0ZXN0OgotICAgICAgICBpZiByZXF1ZXN0Lmluc3RhbmNlIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgIyBiaW5kIHRoZSB1bmJvdW5kIG1ldGhvZCB0byB0aGUgVGVzdENhc2Ug
aW5zdGFuY2UKLSAgICAgICAgICAgIGZpeHR1cmVmdW5jID0gZml4dHVyZWRlZi5mdW5jLl9fZ2V0
X18ocmVxdWVzdC5pbnN0YW5jZSkKLSAgICBlbHNlOgotICAgICAgICAjIHRoZSBmaXh0dXJlIGZ1
bmN0aW9uIG5lZWRzIHRvIGJlIGJvdW5kIHRvIHRoZSBhY3R1YWwKLSAgICAgICAgIyByZXF1ZXN0
Lmluc3RhbmNlIHNvIHRoYXQgY29kZSB3b3JraW5nIHdpdGggImZpeHR1cmVkZWYiIGJlaGF2ZXMK
LSAgICAgICAgIyBhcyBleHBlY3RlZC4KLSAgICAgICAgaWYgcmVxdWVzdC5pbnN0YW5jZSBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgIGZpeHR1cmVmdW5jID0gZ2V0aW1mdW5jKGZpeHR1cmVkZWYu
ZnVuYykKLSAgICAgICAgICAgIGlmIGZpeHR1cmVmdW5jICE9IGZpeHR1cmVkZWYuZnVuYzoKLSAg
ICAgICAgICAgICAgICBmaXh0dXJlZnVuYyA9IGZpeHR1cmVmdW5jLl9fZ2V0X18ocmVxdWVzdC5p
bnN0YW5jZSkKLSAgICBteV9jYWNoZV9rZXkgPSByZXF1ZXN0LnBhcmFtX2luZGV4Ci0gICAgdHJ5
OgotICAgICAgICByZXN1bHQgPSBjYWxsX2ZpeHR1cmVfZnVuYyhmaXh0dXJlZnVuYywgcmVxdWVz
dCwga3dhcmdzKQotICAgIGV4Y2VwdCBURVNUX09VVENPTUU6Ci0gICAgICAgIGZpeHR1cmVkZWYu
Y2FjaGVkX3Jlc3VsdCA9IChOb25lLCBteV9jYWNoZV9rZXksIHN5cy5leGNfaW5mbygpKQotICAg
ICAgICByYWlzZQotICAgIGZpeHR1cmVkZWYuY2FjaGVkX3Jlc3VsdCA9IChyZXN1bHQsIG15X2Nh
Y2hlX2tleSwgTm9uZSkKLSAgICByZXR1cm4gcmVzdWx0Ci0KLQotZGVmIF9lbnN1cmVfaW1tdXRh
YmxlX2lkcyhpZHMpOgotICAgIGlmIGlkcyBpcyBOb25lOgotICAgICAgICByZXR1cm4KLSAgICBp
ZiBjYWxsYWJsZShpZHMpOgotICAgICAgICByZXR1cm4gaWRzCi0gICAgcmV0dXJuIHR1cGxlKGlk
cykKLQotCi1AYXR0ci5zKGZyb3plbj1UcnVlKQotY2xhc3MgRml4dHVyZUZ1bmN0aW9uTWFya2Vy
KG9iamVjdCk6Ci0gICAgc2NvcGUgPSBhdHRyLmliKCkKLSAgICBwYXJhbXMgPSBhdHRyLmliKGNv
bnZlcnQ9YXR0ci5jb252ZXJ0ZXJzLm9wdGlvbmFsKHR1cGxlKSkKLSAgICBhdXRvdXNlID0gYXR0
ci5pYihkZWZhdWx0PUZhbHNlKQotICAgIGlkcyA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lLCBjb252
ZXJ0PV9lbnN1cmVfaW1tdXRhYmxlX2lkcykKLSAgICBuYW1lID0gYXR0ci5pYihkZWZhdWx0PU5v
bmUpCi0KLSAgICBkZWYgX19jYWxsX18oc2VsZiwgZnVuY3Rpb24pOgotICAgICAgICBpZiBpc2Ns
YXNzKGZ1bmN0aW9uKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAg
ICAgICAgImNsYXNzIGZpeHR1cmVzIG5vdCBzdXBwb3J0ZWQgKG1heSBiZSBpbiB0aGUgZnV0dXJl
KSIpCi0gICAgICAgIGZ1bmN0aW9uLl9weXRlc3RmaXh0dXJlZnVuY3Rpb24gPSBzZWxmCi0gICAg
ICAgIHJldHVybiBmdW5jdGlvbgotCi0KLWRlZiBmaXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIHBh
cmFtcz1Ob25lLCBhdXRvdXNlPUZhbHNlLCBpZHM9Tm9uZSwgbmFtZT1Ob25lKToKLSAgICAiIiIg
KHJldHVybiBhKSBkZWNvcmF0b3IgdG8gbWFyayBhIGZpeHR1cmUgZmFjdG9yeSBmdW5jdGlvbi4K
LQotICAgIFRoaXMgZGVjb3JhdG9yIGNhbiBiZSB1c2VkICh3aXRoIG9yIHdpdGhvdXQgcGFyYW1l
dGVycykgdG8gZGVmaW5lIGEKLSAgICBmaXh0dXJlIGZ1bmN0aW9uLiAgVGhlIG5hbWUgb2YgdGhl
IGZpeHR1cmUgZnVuY3Rpb24gY2FuIGxhdGVyIGJlCi0gICAgcmVmZXJlbmNlZCB0byBjYXVzZSBp
dHMgaW52b2NhdGlvbiBhaGVhZCBvZiBydW5uaW5nIHRlc3RzOiB0ZXN0Ci0gICAgbW9kdWxlcyBv
ciBjbGFzc2VzIGNhbiB1c2UgdGhlIHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKGZpeHR1cmVuYW1l
KQotICAgIG1hcmtlci4gIFRlc3QgZnVuY3Rpb25zIGNhbiBkaXJlY3RseSB1c2UgZml4dHVyZSBu
YW1lcyBhcyBpbnB1dAotICAgIGFyZ3VtZW50cyBpbiB3aGljaCBjYXNlIHRoZSBmaXh0dXJlIGlu
c3RhbmNlIHJldHVybmVkIGZyb20gdGhlIGZpeHR1cmUKLSAgICBmdW5jdGlvbiB3aWxsIGJlIGlu
amVjdGVkLgotCi0gICAgOmFyZyBzY29wZTogdGhlIHNjb3BlIGZvciB3aGljaCB0aGlzIGZpeHR1
cmUgaXMgc2hhcmVkLCBvbmUgb2YKLSAgICAgICAgICAgICAgICAiZnVuY3Rpb24iIChkZWZhdWx0
KSwgImNsYXNzIiwgIm1vZHVsZSIgb3IgInNlc3Npb24iLgotCi0gICAgOmFyZyBwYXJhbXM6IGFu
IG9wdGlvbmFsIGxpc3Qgb2YgcGFyYW1ldGVycyB3aGljaCB3aWxsIGNhdXNlIG11bHRpcGxlCi0g
ICAgICAgICAgICAgICAgaW52b2NhdGlvbnMgb2YgdGhlIGZpeHR1cmUgZnVuY3Rpb24gYW5kIGFs
bCBvZiB0aGUgdGVzdHMKLSAgICAgICAgICAgICAgICB1c2luZyBpdC4KLQotICAgIDphcmcgYXV0
b3VzZTogaWYgVHJ1ZSwgdGhlIGZpeHR1cmUgZnVuYyBpcyBhY3RpdmF0ZWQgZm9yIGFsbCB0ZXN0
cyB0aGF0Ci0gICAgICAgICAgICAgICAgY2FuIHNlZSBpdC4gIElmIEZhbHNlICh0aGUgZGVmYXVs
dCkgdGhlbiBhbiBleHBsaWNpdAotICAgICAgICAgICAgICAgIHJlZmVyZW5jZSBpcyBuZWVkZWQg
dG8gYWN0aXZhdGUgdGhlIGZpeHR1cmUuCi0KLSAgICA6YXJnIGlkczogbGlzdCBvZiBzdHJpbmcg
aWRzIGVhY2ggY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1zCi0gICAgICAgICAgICAgICAgc28g
dGhhdCB0aGV5IGFyZSBwYXJ0IG9mIHRoZSB0ZXN0IGlkLiBJZiBubyBpZHMgYXJlIHByb3ZpZGVk
Ci0gICAgICAgICAgICAgICAgdGhleSB3aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZy
b20gdGhlIHBhcmFtcy4KLQotICAgIDphcmcgbmFtZTogdGhlIG5hbWUgb2YgdGhlIGZpeHR1cmUu
IFRoaXMgZGVmYXVsdHMgdG8gdGhlIG5hbWUgb2YgdGhlCi0gICAgICAgICAgICAgICAgZGVjb3Jh
dGVkIGZ1bmN0aW9uLiBJZiBhIGZpeHR1cmUgaXMgdXNlZCBpbiB0aGUgc2FtZSBtb2R1bGUgaW4K
LSAgICAgICAgICAgICAgICB3aGljaCBpdCBpcyBkZWZpbmVkLCB0aGUgZnVuY3Rpb24gbmFtZSBv
ZiB0aGUgZml4dHVyZSB3aWxsIGJlCi0gICAgICAgICAgICAgICAgc2hhZG93ZWQgYnkgdGhlIGZ1
bmN0aW9uIGFyZyB0aGF0IHJlcXVlc3RzIHRoZSBmaXh0dXJlOyBvbmUgd2F5Ci0gICAgICAgICAg
ICAgICAgdG8gcmVzb2x2ZSB0aGlzIGlzIHRvIG5hbWUgdGhlIGRlY29yYXRlZCBmdW5jdGlvbgot
ICAgICAgICAgICAgICAgIGBgZml4dHVyZV88Zml4dHVyZW5hbWU+YGAgYW5kIHRoZW4gdXNlCi0g
ICAgICAgICAgICAgICAgYGBAcHl0ZXN0LmZpeHR1cmUobmFtZT0nPGZpeHR1cmVuYW1lPicpYGAu
Ci0KLSAgICBGaXh0dXJlcyBjYW4gb3B0aW9uYWxseSBwcm92aWRlIHRoZWlyIHZhbHVlcyB0byB0
ZXN0IGZ1bmN0aW9ucyB1c2luZyBhIGBgeWllbGRgYCBzdGF0ZW1lbnQsCi0gICAgaW5zdGVhZCBv
ZiBgYHJldHVybmBgLiBJbiB0aGlzIGNhc2UsIHRoZSBjb2RlIGJsb2NrIGFmdGVyIHRoZSBgYHlp
ZWxkYGAgc3RhdGVtZW50IGlzIGV4ZWN1dGVkCi0gICAgYXMgdGVhcmRvd24gY29kZSByZWdhcmRs
ZXNzIG9mIHRoZSB0ZXN0IG91dGNvbWUuIEEgZml4dHVyZSBmdW5jdGlvbiBtdXN0IHlpZWxkIGV4
YWN0bHkgb25jZS4KLSAgICAiIiIKLSAgICBpZiBjYWxsYWJsZShzY29wZSkgYW5kIHBhcmFtcyBp
cyBOb25lIGFuZCBhdXRvdXNlIGlzIEZhbHNlOgotICAgICAgICAjIGRpcmVjdCBkZWNvcmF0aW9u
Ci0gICAgICAgIHJldHVybiBGaXh0dXJlRnVuY3Rpb25NYXJrZXIoCi0gICAgICAgICAgICAiZnVu
Y3Rpb24iLCBwYXJhbXMsIGF1dG91c2UsIG5hbWU9bmFtZSkoc2NvcGUpCi0gICAgaWYgcGFyYW1z
IGlzIG5vdCBOb25lIGFuZCBub3QgaXNpbnN0YW5jZShwYXJhbXMsIChsaXN0LCB0dXBsZSkpOgot
ICAgICAgICBwYXJhbXMgPSBsaXN0KHBhcmFtcykKLSAgICByZXR1cm4gRml4dHVyZUZ1bmN0aW9u
TWFya2VyKHNjb3BlLCBwYXJhbXMsIGF1dG91c2UsIGlkcz1pZHMsIG5hbWU9bmFtZSkKLQotCi1k
ZWYgeWllbGRfZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBwYXJhbXM9Tm9uZSwgYXV0b3VzZT1G
YWxzZSwgaWRzPU5vbmUsIG5hbWU9Tm9uZSk6Ci0gICAgIiIiIChyZXR1cm4gYSkgZGVjb3JhdG9y
IHRvIG1hcmsgYSB5aWVsZC1maXh0dXJlIGZhY3RvcnkgZnVuY3Rpb24uCi0KLSAgICAuLiBkZXBy
ZWNhdGVkOjogMy4wCi0gICAgICAgIFVzZSA6cHk6ZnVuYzpgcHl0ZXN0LmZpeHR1cmVgIGRpcmVj
dGx5IGluc3RlYWQuCi0gICAgIiIiCi0gICAgaWYgY2FsbGFibGUoc2NvcGUpIGFuZCBwYXJhbXMg
aXMgTm9uZSBhbmQgbm90IGF1dG91c2U6Ci0gICAgICAgICMgZGlyZWN0IGRlY29yYXRpb24KLSAg
ICAgICAgcmV0dXJuIEZpeHR1cmVGdW5jdGlvbk1hcmtlcigKLSAgICAgICAgICAgICJmdW5jdGlv
biIsIHBhcmFtcywgYXV0b3VzZSwgaWRzPWlkcywgbmFtZT1uYW1lKShzY29wZSkKLSAgICBlbHNl
OgotICAgICAgICByZXR1cm4gRml4dHVyZUZ1bmN0aW9uTWFya2VyKHNjb3BlLCBwYXJhbXMsIGF1
dG91c2UsIGlkcz1pZHMsIG5hbWU9bmFtZSkKLQotCi1kZWZhdWx0ZnVuY2FyZ3ByZWZpeG1hcmtl
ciA9IGZpeHR1cmUoKQotCi0KLUBmaXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKLWRlZiBweXRlc3Rj
b25maWcocmVxdWVzdCk6Ci0gICAgIiIiIHRoZSBweXRlc3QgY29uZmlnIG9iamVjdCB3aXRoIGFj
Y2VzcyB0byBjb21tYW5kIGxpbmUgb3B0cy4iIiIKLSAgICByZXR1cm4gcmVxdWVzdC5jb25maWcK
LQotCi1jbGFzcyBGaXh0dXJlTWFuYWdlcjoKLSAgICAiIiIKLSAgICBweXRlc3QgZml4dHVyZXMg
ZGVmaW5pdGlvbnMgYW5kIGluZm9ybWF0aW9uIGlzIHN0b3JlZCBhbmQgbWFuYWdlZAotICAgIGZy
b20gdGhpcyBjbGFzcy4KLQotICAgIER1cmluZyBjb2xsZWN0aW9uIGZtLnBhcnNlZmFjdG9yaWVz
KCkgaXMgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRvIHBhcnNlCi0gICAgZml4dHVyZSBmdW5jdGlv
biBkZWZpbml0aW9ucyBpbnRvIEZpeHR1cmVEZWYgb2JqZWN0cyBhbmQgaW50ZXJuYWwKLSAgICBk
YXRhIHN0cnVjdHVyZXMuCi0KLSAgICBEdXJpbmcgY29sbGVjdGlvbiBvZiB0ZXN0IGZ1bmN0aW9u
cywgbWV0YWZ1bmMtbWVjaGFuaWNzIGluc3RhbnRpYXRlCi0gICAgYSBGdW5jRml4dHVyZUluZm8g
b2JqZWN0IHdoaWNoIGlzIGNhY2hlZCBwZXIgbm9kZS9mdW5jLW5hbWUuCi0gICAgVGhpcyBGdW5j
Rml4dHVyZUluZm8gb2JqZWN0IGlzIGxhdGVyIHJldHJpZXZlZCBieSBGdW5jdGlvbiBub2Rlcwot
ICAgIHdoaWNoIHRoZW1zZWx2ZXMgb2ZmZXIgYSBmaXh0dXJlbmFtZXMgYXR0cmlidXRlLgotCi0g
ICAgVGhlIEZ1bmNGaXh0dXJlSW5mbyBvYmplY3QgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgZml4
dHVyZXMgYW5kIEZpeHR1cmVEZWZzCi0gICAgcmVsZXZhbnQgZm9yIGEgcGFydGljdWxhciBmdW5j
dGlvbi4gIEFuIGluaXRpYWwgbGlzdCBvZiBmaXh0dXJlcyBpcwotICAgIGFzc2VtYmxlZCBsaWtl
IHRoaXM6Ci0KLSAgICAtIGluaS1kZWZpbmVkIHVzZWZpeHR1cmVzCi0gICAgLSBhdXRvdXNlLW1h
cmtlZCBmaXh0dXJlcyBhbG9uZyB0aGUgY29sbGVjdGlvbiBjaGFpbiB1cCBmcm9tIHRoZSBmdW5j
dGlvbgotICAgIC0gdXNlZml4dHVyZXMgbWFya2VycyBhdCBtb2R1bGUvY2xhc3MvZnVuY3Rpb24g
bGV2ZWwKLSAgICAtIHRlc3QgZnVuY3Rpb24gZnVuY2FyZ3MKLQotICAgIFN1YnNlcXVlbnRseSB0
aGUgZnVuY2ZpeHR1cmVpbmZvLmZpeHR1cmVuYW1lcyBhdHRyaWJ1dGUgaXMgY29tcHV0ZWQKLSAg
ICBhcyB0aGUgY2xvc3VyZSBvZiB0aGUgZml4dHVyZXMgbmVlZGVkIHRvIHNldHVwIHRoZSBpbml0
aWFsIGZpeHR1cmVzLAotICAgIGkuIGUuIGZpeHR1cmVzIG5lZWRlZCBieSBmaXh0dXJlIGZ1bmN0
aW9ucyB0aGVtc2VsdmVzIGFyZSBhcHBlbmRlZAotICAgIHRvIHRoZSBmaXh0dXJlbmFtZXMgbGlz
dC4KLQotICAgIFVwb24gdGhlIHRlc3Qtc2V0dXAgcGhhc2VzIGFsbCBmaXh0dXJlbmFtZXMgYXJl
IGluc3RhbnRpYXRlZCwgcmV0cmlldmVkCi0gICAgYnkgYSBsb29rdXAgb2YgdGhlaXIgRnVuY0Zp
eHR1cmVJbmZvLgotICAgICIiIgotCi0gICAgX2FyZ3ByZWZpeCA9ICJweXRlc3RfZnVuY2FyZ19f
IgotICAgIEZpeHR1cmVMb29rdXBFcnJvciA9IEZpeHR1cmVMb29rdXBFcnJvcgotICAgIEZpeHR1
cmVMb29rdXBFcnJvclJlcHIgPSBGaXh0dXJlTG9va3VwRXJyb3JSZXByCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgc2Vzc2lvbik6Ci0gICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KLSAg
ICAgICAgc2VsZi5jb25maWcgPSBzZXNzaW9uLmNvbmZpZwotICAgICAgICBzZWxmLl9hcmcyZml4
dHVyZWRlZnMgPSB7fQotICAgICAgICBzZWxmLl9ob2xkZXJvYmpzZWVuID0gc2V0KCkKLSAgICAg
ICAgc2VsZi5fYXJnMmZpbmlzaCA9IHt9Ci0gICAgICAgIHNlbGYuX25vZGVpZF9hbmRfYXV0b3Vz
ZW5hbWVzID0gWygiIiwgc2VsZi5jb25maWcuZ2V0aW5pKCJ1c2VmaXh0dXJlcyIpKV0KLSAgICAg
ICAgc2Vzc2lvbi5jb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihzZWxmLCAiZnVuY21hbmFn
ZSIpCi0KLSAgICBkZWYgZ2V0Zml4dHVyZWluZm8oc2VsZiwgbm9kZSwgZnVuYywgY2xzLCBmdW5j
YXJncz1UcnVlKToKLSAgICAgICAgaWYgZnVuY2FyZ3MgYW5kIG5vdCBoYXNhdHRyKG5vZGUsICJu
b2Z1bmNhcmdzIik6Ci0gICAgICAgICAgICBhcmduYW1lcyA9IGdldGZ1bmNhcmduYW1lcyhmdW5j
LCBjbHM9Y2xzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXJnbmFtZXMgPSAoKQotICAg
ICAgICB1c2VmaXh0dXJlcyA9IGdldGF0dHIoZnVuYywgInVzZWZpeHR1cmVzIiwgTm9uZSkKLSAg
ICAgICAgaW5pdGlhbG5hbWVzID0gYXJnbmFtZXMKLSAgICAgICAgaWYgdXNlZml4dHVyZXMgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICBpbml0aWFsbmFtZXMgPSB1c2VmaXh0dXJlcy5hcmdzICsg
aW5pdGlhbG5hbWVzCi0gICAgICAgIGZtID0gbm9kZS5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgot
ICAgICAgICBuYW1lc19jbG9zdXJlLCBhcmcyZml4dHVyZWRlZnMgPSBmbS5nZXRmaXh0dXJlY2xv
c3VyZShpbml0aWFsbmFtZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUpCi0gICAgICAgIHJldHVybiBGdW5jRml4dHVy
ZUluZm8oYXJnbmFtZXMsIG5hbWVzX2Nsb3N1cmUsIGFyZzJmaXh0dXJlZGVmcykKLQotICAgIGRl
ZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQoc2VsZiwgcGx1Z2luKToKLSAgICAgICAgbm9kZWlk
ID0gTm9uZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwID0gcHkucGF0aC5sb2NhbChwbHVn
aW4uX19maWxlX18pCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAg
IHBhc3MKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgICMgY29uc3RydWN0IHRoZSBiYXNlIG5v
ZGVpZCB3aGljaCBpcyBsYXRlciB1c2VkIHRvIGNoZWNrCi0gICAgICAgICAgICAjIHdoYXQgZml4
dHVyZXMgYXJlIHZpc2libGUgZm9yIHBhcnRpY3VsYXIgdGVzdHMgKGFzIGRlbm90ZWQKLSAgICAg
ICAgICAgICMgYnkgdGhlaXIgdGVzdCBpZCkKLSAgICAgICAgICAgIGlmIHAuYmFzZW5hbWUuc3Rh
cnRzd2l0aCgiY29uZnRlc3QucHkiKToKLSAgICAgICAgICAgICAgICBub2RlaWQgPSBwLmRpcnBh
dGgoKS5yZWx0byhzZWxmLmNvbmZpZy5yb290ZGlyKQotICAgICAgICAgICAgICAgIGlmIHAuc2Vw
ICE9IG5vZGVzLlNFUDoKLSAgICAgICAgICAgICAgICAgICAgbm9kZWlkID0gbm9kZWlkLnJlcGxh
Y2UocC5zZXAsIG5vZGVzLlNFUCkKLSAgICAgICAgc2VsZi5wYXJzZWZhY3RvcmllcyhwbHVnaW4s
IG5vZGVpZCkKLQotICAgIGRlZiBfZ2V0YXV0b3VzZW5hbWVzKHNlbGYsIG5vZGVpZCk6Ci0gICAg
ICAgICIiIiByZXR1cm4gYSB0dXBsZSBvZiBmaXh0dXJlIG5hbWVzIHRvIGJlIHVzZWQuICIiIgot
ICAgICAgICBhdXRvdXNlbmFtZXMgPSBbXQotICAgICAgICBmb3IgYmFzZWlkLCBiYXNlbmFtZXMg
aW4gc2VsZi5fbm9kZWlkX2FuZF9hdXRvdXNlbmFtZXM6Ci0gICAgICAgICAgICBpZiBub2RlaWQu
c3RhcnRzd2l0aChiYXNlaWQpOgotICAgICAgICAgICAgICAgIGlmIGJhc2VpZDoKLSAgICAgICAg
ICAgICAgICAgICAgaSA9IGxlbihiYXNlaWQpCi0gICAgICAgICAgICAgICAgICAgIG5leHRjaGFy
ID0gbm9kZWlkW2k6aSArIDFdCi0gICAgICAgICAgICAgICAgICAgIGlmIG5leHRjaGFyIGFuZCBu
ZXh0Y2hhciBub3QgaW4gIjovIjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g
ICAgICAgICAgICAgICAgYXV0b3VzZW5hbWVzLmV4dGVuZChiYXNlbmFtZXMpCi0gICAgICAgICMg
bWFrZSBzdXJlIGF1dG91c2VuYW1lcyBhcmUgc29ydGVkIGJ5IHNjb3BlLCBzY29wZW51bSAwIGlz
IHNlc3Npb24KLSAgICAgICAgYXV0b3VzZW5hbWVzLnNvcnQoCi0gICAgICAgICAgICBrZXk9bGFt
YmRhIHg6IHNlbGYuX2FyZzJmaXh0dXJlZGVmc1t4XVstMV0uc2NvcGVudW0pCi0gICAgICAgIHJl
dHVybiBhdXRvdXNlbmFtZXMKLQotICAgIGRlZiBnZXRmaXh0dXJlY2xvc3VyZShzZWxmLCBmaXh0
dXJlbmFtZXMsIHBhcmVudG5vZGUpOgotICAgICAgICAjIGNvbGxlY3QgdGhlIGNsb3N1cmUgb2Yg
YWxsIGZpeHR1cmVzICwgc3RhcnRpbmcgd2l0aCB0aGUgZ2l2ZW4KLSAgICAgICAgIyBmaXh0dXJl
bmFtZXMgYXMgdGhlIGluaXRpYWwgc2V0LiAgQXMgd2UgaGF2ZSB0byB2aXNpdCBhbGwKLSAgICAg
ICAgIyBmYWN0b3J5IGRlZmluaXRpb25zIGFueXdheSwgd2UgYWxzbyByZXR1cm4gYSBhcmcyZml4
dHVyZWRlZnMKLSAgICAgICAgIyBtYXBwaW5nIHNvIHRoYXQgdGhlIGNhbGxlciBjYW4gcmV1c2Ug
aXQgYW5kIGRvZXMgbm90IGhhdmUKLSAgICAgICAgIyB0byByZS1kaXNjb3ZlciBmaXh0dXJlZGVm
cyBhZ2FpbiBmb3IgZWFjaCBmaXh0dXJlbmFtZQotICAgICAgICAjIChkaXNjb3ZlcmluZyBtYXRj
aGluZyBmaXh0dXJlcyBmb3IgYSBnaXZlbiBuYW1lL25vZGUgaXMgZXhwZW5zaXZlKQotCi0gICAg
ICAgIHBhcmVudGlkID0gcGFyZW50bm9kZS5ub2RlaWQKLSAgICAgICAgZml4dHVyZW5hbWVzX2Ns
b3N1cmUgPSBzZWxmLl9nZXRhdXRvdXNlbmFtZXMocGFyZW50aWQpCi0KLSAgICAgICAgZGVmIG1l
cmdlKG90aGVybGlzdCk6Ci0gICAgICAgICAgICBmb3IgYXJnIGluIG90aGVybGlzdDoKLSAgICAg
ICAgICAgICAgICBpZiBhcmcgbm90IGluIGZpeHR1cmVuYW1lc19jbG9zdXJlOgotICAgICAgICAg
ICAgICAgICAgICBmaXh0dXJlbmFtZXNfY2xvc3VyZS5hcHBlbmQoYXJnKQotCi0gICAgICAgIG1l
cmdlKGZpeHR1cmVuYW1lcykKLSAgICAgICAgYXJnMmZpeHR1cmVkZWZzID0ge30KLSAgICAgICAg
bGFzdGxlbiA9IC0xCi0gICAgICAgIHdoaWxlIGxhc3RsZW4gIT0gbGVuKGZpeHR1cmVuYW1lc19j
bG9zdXJlKToKLSAgICAgICAgICAgIGxhc3RsZW4gPSBsZW4oZml4dHVyZW5hbWVzX2Nsb3N1cmUp
Ci0gICAgICAgICAgICBmb3IgYXJnbmFtZSBpbiBmaXh0dXJlbmFtZXNfY2xvc3VyZToKLSAgICAg
ICAgICAgICAgICBpZiBhcmduYW1lIGluIGFyZzJmaXh0dXJlZGVmczoKLSAgICAgICAgICAgICAg
ICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBmaXh0dXJlZGVmcyA9IHNlbGYuZ2V0Zml4
dHVyZWRlZnMoYXJnbmFtZSwgcGFyZW50aWQpCi0gICAgICAgICAgICAgICAgaWYgZml4dHVyZWRl
ZnM6Ci0gICAgICAgICAgICAgICAgICAgIGFyZzJmaXh0dXJlZGVmc1thcmduYW1lXSA9IGZpeHR1
cmVkZWZzCi0gICAgICAgICAgICAgICAgICAgIG1lcmdlKGZpeHR1cmVkZWZzWy0xXS5hcmduYW1l
cykKLSAgICAgICAgcmV0dXJuIGZpeHR1cmVuYW1lc19jbG9zdXJlLCBhcmcyZml4dHVyZWRlZnMK
LQotICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMoc2VsZiwgbWV0YWZ1bmMpOgotICAgICAg
ICBmb3IgYXJnbmFtZSBpbiBtZXRhZnVuYy5maXh0dXJlbmFtZXM6Ci0gICAgICAgICAgICBmYWNs
aXN0ID0gbWV0YWZ1bmMuX2FyZzJmaXh0dXJlZGVmcy5nZXQoYXJnbmFtZSkKLSAgICAgICAgICAg
IGlmIGZhY2xpc3Q6Ci0gICAgICAgICAgICAgICAgZml4dHVyZWRlZiA9IGZhY2xpc3RbLTFdCi0g
ICAgICAgICAgICAgICAgaWYgZml4dHVyZWRlZi5wYXJhbXMgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICAgICAgICAgIHBhcmFtZXRyaXplX2Z1bmMgPSBnZXRhdHRyKG1ldGFmdW5jLmZ1bmN0aW9u
LCAncGFyYW1ldHJpemUnLCBOb25lKQotICAgICAgICAgICAgICAgICAgICBmdW5jX3BhcmFtcyA9
IGdldGF0dHIocGFyYW1ldHJpemVfZnVuYywgJ2FyZ3MnLCBbW05vbmVdXSkKLSAgICAgICAgICAg
ICAgICAgICAgZnVuY19rd2FyZ3MgPSBnZXRhdHRyKHBhcmFtZXRyaXplX2Z1bmMsICdrd2FyZ3Mn
LCB7fSkKLSAgICAgICAgICAgICAgICAgICAgIyBza2lwIGRpcmVjdGx5IHBhcmFtZXRyaXplZCBh
cmd1bWVudHMKLSAgICAgICAgICAgICAgICAgICAgaWYgImFyZ25hbWVzIiBpbiBmdW5jX2t3YXJn
czoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyZ25hbWVzID0gcGFyYW1ldHJpemVfZnVuYy5r
d2FyZ3NbImFyZ25hbWVzIl0KLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ25hbWVzID0gZnVuY19wYXJhbXNbMF0KLSAgICAgICAgICAgICAgICAg
ICAgaWYgbm90IGlzaW5zdGFuY2UoYXJnbmFtZXMsICh0dXBsZSwgbGlzdCkpOgotICAgICAgICAg
ICAgICAgICAgICAgICAgYXJnbmFtZXMgPSBbeC5zdHJpcCgpIGZvciB4IGluIGFyZ25hbWVzLnNw
bGl0KCIsIikgaWYgeC5zdHJpcCgpXQotICAgICAgICAgICAgICAgICAgICBpZiBhcmduYW1lIG5v
dCBpbiBmdW5jX3BhcmFtcyBhbmQgYXJnbmFtZSBub3QgaW4gYXJnbmFtZXM6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZShhcmduYW1lLCBmaXh0dXJlZGVmLnBh
cmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGly
ZWN0PVRydWUsIHNjb3BlPWZpeHR1cmVkZWYuc2NvcGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZHM9Zml4dHVyZWRlZi5pZHMpCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlICAjIHdpbGwgcmFpc2UgRml4dHVyZUxvb2t1
cEVycm9yIGF0IHNldHVwIHRpbWUKLQotICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlp
dGVtcyhzZWxmLCBpdGVtcyk6Ci0gICAgICAgICMgc2VwYXJhdGUgcGFyYW1ldHJpemVkIHNldHVw
cwotICAgICAgICBpdGVtc1s6XSA9IHJlb3JkZXJfaXRlbXMoaXRlbXMpCi0KLSAgICBkZWYgcGFy
c2VmYWN0b3JpZXMoc2VsZiwgbm9kZV9vcl9vYmosIG5vZGVpZD1OT1RTRVQsIHVuaXR0ZXN0PUZh
bHNlKToKLSAgICAgICAgaWYgbm9kZWlkIGlzIG5vdCBOT1RTRVQ6Ci0gICAgICAgICAgICBob2xk
ZXJvYmogPSBub2RlX29yX29iagotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaG9sZGVyb2Jq
ID0gbm9kZV9vcl9vYmoub2JqCi0gICAgICAgICAgICBub2RlaWQgPSBub2RlX29yX29iai5ub2Rl
aWQKLSAgICAgICAgaWYgaG9sZGVyb2JqIGluIHNlbGYuX2hvbGRlcm9ianNlZW46Ci0gICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5faG9sZGVyb2Jqc2Vlbi5hZGQoaG9sZGVyb2JqKQot
ICAgICAgICBhdXRvdXNlbmFtZXMgPSBbXQotICAgICAgICBmb3IgbmFtZSBpbiBkaXIoaG9sZGVy
b2JqKToKLSAgICAgICAgICAgICMgVGhlIGF0dHJpYnV0ZSBjYW4gYmUgYW4gYXJiaXRyYXJ5IGRl
c2NyaXB0b3IsIHNvIHRoZSBhdHRyaWJ1dGUKLSAgICAgICAgICAgICMgYWNjZXNzIGJlbG93IGNh
biByYWlzZS4gc2FmZV9nZXRhdHQoKSBpZ25vcmVzIHN1Y2ggZXhjZXB0aW9ucy4KLSAgICAgICAg
ICAgIG9iaiA9IHNhZmVfZ2V0YXR0cihob2xkZXJvYmosIG5hbWUsIE5vbmUpCi0gICAgICAgICAg
ICAjIGZpeHR1cmUgZnVuY3Rpb25zIGhhdmUgYSBweXRlc3RfZnVuY2FyZ19fIHByZWZpeCAocHJl
LTIuMyBzdHlsZSkKLSAgICAgICAgICAgICMgb3IgYXJlICJAcHl0ZXN0LmZpeHR1cmUiIG1hcmtl
ZAotICAgICAgICAgICAgbWFya2VyID0gZ2V0Zml4dHVyZW1hcmtlcihvYmopCi0gICAgICAgICAg
ICBpZiBtYXJrZXIgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3
aXRoKHNlbGYuX2FyZ3ByZWZpeCk6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgICAgICAgICAgaWYgbm90IGNhbGxhYmxlKG9iaik6Ci0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCi0gICAgICAgICAgICAgICAgbWFya2VyID0gZGVmYXVsdGZ1bmNhcmdwcmVmaXhtYXJr
ZXIKLSAgICAgICAgICAgICAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKLSAgICAg
ICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJuKCdDMScsIGRlcHJlY2F0ZWQuRlVOQ0FSR19QUkVG
SVguZm9ybWF0KG5hbWU9bmFtZSksIG5vZGVpZD1ub2RlaWQpCi0gICAgICAgICAgICAgICAgbmFt
ZSA9IG5hbWVbbGVuKHNlbGYuX2FyZ3ByZWZpeCk6XQotICAgICAgICAgICAgZWxpZiBub3QgaXNp
bnN0YW5jZShtYXJrZXIsIEZpeHR1cmVGdW5jdGlvbk1hcmtlcik6Ci0gICAgICAgICAgICAgICAg
IyBtYWdpYyBnbG9iYWxzICB3aXRoIF9fZ2V0YXR0cl9fIG1pZ2h0IGhhdmUgZ290IHVzIGEgd3Jv
bmcKLSAgICAgICAgICAgICAgICAjIGZpeHR1cmUgYXR0cmlidXRlCi0gICAgICAgICAgICAgICAg
Y29udGludWUKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgbWFya2VyLm5h
bWU6Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSBtYXJrZXIubmFtZQotICAgICAgICAgICAg
ICAgIG1zZyA9ICdmaXh0dXJlcyBjYW5ub3QgaGF2ZSAicHl0ZXN0X2Z1bmNhcmdfXyIgcHJlZml4
ICcgXAotICAgICAgICAgICAgICAgICAgICAgICdhbmQgYmUgZGVjb3JhdGVkIHdpdGggQHB5dGVz
dC5maXh0dXJlOlxuJXMnICUgbmFtZQotICAgICAgICAgICAgICAgIGFzc2VydCBub3QgbmFtZS5z
dGFydHN3aXRoKHNlbGYuX2FyZ3ByZWZpeCksIG1zZwotCi0gICAgICAgICAgICBmaXh0dXJlX2Rl
ZiA9IEZpeHR1cmVEZWYoc2VsZiwgbm9kZWlkLCBuYW1lLCBvYmosCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWFya2VyLnNjb3BlLCBtYXJrZXIucGFyYW1zLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0PXVuaXR0ZXN0LCBpZHM9bWFy
a2VyLmlkcykKLQotICAgICAgICAgICAgZmFjbGlzdCA9IHNlbGYuX2FyZzJmaXh0dXJlZGVmcy5z
ZXRkZWZhdWx0KG5hbWUsIFtdKQotICAgICAgICAgICAgaWYgZml4dHVyZV9kZWYuaGFzX2xvY2F0
aW9uOgotICAgICAgICAgICAgICAgIGZhY2xpc3QuYXBwZW5kKGZpeHR1cmVfZGVmKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIGZpeHR1cmVkZWZzIHdpdGggbm8gbG9jYXRp
b24gYXJlIGF0IHRoZSBmcm9udAotICAgICAgICAgICAgICAgICMgc28gdGhpcyBpbnNlcnRzIHRo
ZSBjdXJyZW50IGZpeHR1cmVkZWYgYWZ0ZXIgdGhlCi0gICAgICAgICAgICAgICAgIyBleGlzdGlu
ZyBmaXh0dXJlZGVmcyBmcm9tIGV4dGVybmFsIHBsdWdpbnMgYnV0Ci0gICAgICAgICAgICAgICAg
IyBiZWZvcmUgdGhlIGZpeHR1cmVkZWZzIHByb3ZpZGVkIGluIGNvbmZ0ZXN0cy4KLSAgICAgICAg
ICAgICAgICBpID0gbGVuKFtmIGZvciBmIGluIGZhY2xpc3QgaWYgbm90IGYuaGFzX2xvY2F0aW9u
XSkKLSAgICAgICAgICAgICAgICBmYWNsaXN0Lmluc2VydChpLCBmaXh0dXJlX2RlZikKLSAgICAg
ICAgICAgIGlmIG1hcmtlci5hdXRvdXNlOgotICAgICAgICAgICAgICAgIGF1dG91c2VuYW1lcy5h
cHBlbmQobmFtZSkKLQotICAgICAgICBpZiBhdXRvdXNlbmFtZXM6Ci0gICAgICAgICAgICBzZWxm
Ll9ub2RlaWRfYW5kX2F1dG91c2VuYW1lcy5hcHBlbmQoKG5vZGVpZCBvciAnJywgYXV0b3VzZW5h
bWVzKSkKLQotICAgIGRlZiBnZXRmaXh0dXJlZGVmcyhzZWxmLCBhcmduYW1lLCBub2RlaWQpOgot
ICAgICAgICAiIiIKLSAgICAgICAgR2V0cyBhIGxpc3Qgb2YgZml4dHVyZXMgd2hpY2ggYXJlIGFw
cGxpY2FibGUgdG8gdGhlIGdpdmVuIG5vZGUgaWQuCi0KLSAgICAgICAgOnBhcmFtIHN0ciBhcmdu
YW1lOiBuYW1lIG9mIHRoZSBmaXh0dXJlIHRvIHNlYXJjaCBmb3IKLSAgICAgICAgOnBhcmFtIHN0
ciBub2RlaWQ6IGZ1bGwgbm9kZSBpZCBvZiB0aGUgcmVxdWVzdGluZyB0ZXN0LgotICAgICAgICA6
cmV0dXJuOiBsaXN0W0ZpeHR1cmVEZWZdCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBmaXh0dXJlZGVmcyA9IHNlbGYuX2FyZzJmaXh0dXJlZGVmc1thcmduYW1lXQotICAg
ICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgcmV0dXJuIHR1cGxlKHNlbGYuX21hdGNoZmFjdG9yaWVzKGZpeHR1
cmVkZWZzLCBub2RlaWQpKQotCi0gICAgZGVmIF9tYXRjaGZhY3RvcmllcyhzZWxmLCBmaXh0dXJl
ZGVmcywgbm9kZWlkKToKLSAgICAgICAgZm9yIGZpeHR1cmVkZWYgaW4gZml4dHVyZWRlZnM6Ci0g
ICAgICAgICAgICBpZiBub2Rlcy5pc2NoaWxkbm9kZShmaXh0dXJlZGVmLmJhc2VpZCwgbm9kZWlk
KToKLSAgICAgICAgICAgICAgICB5aWVsZCBmaXh0dXJlZGVmCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9mcmVl
emVfc3VwcG9ydC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTcxNDdhODgyNTBh
MzU1M2M4NWM0NGIxODI4MjNlNTQyYjlmNzRiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotIiIiCi1Qcm92aWRlcyBhIGZ1bmN0aW9u
IHRvIHJlcG9ydCBhbGwgaW50ZXJuYWwgbW9kdWxlcyBmb3IgdXNpbmcgZnJlZXppbmcgdG9vbHMK
LXB5dGVzdAotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLQotZGVmIGZyZWV6ZV9pbmNsdWRlcygpOgotICAgICIi
IgotICAgIFJldHVybnMgYSBsaXN0IG9mIG1vZHVsZSBuYW1lcyB1c2VkIGJ5IHB5LnRlc3QgdGhh
dCBzaG91bGQgYmUKLSAgICBpbmNsdWRlZCBieSBjeF9mcmVlemUuCi0gICAgIiIiCi0gICAgaW1w
b3J0IHB5Ci0gICAgaW1wb3J0IF9weXRlc3QKLSAgICByZXN1bHQgPSBsaXN0KF9pdGVyX2FsbF9t
b2R1bGVzKHB5KSkKLSAgICByZXN1bHQgKz0gbGlzdChfaXRlcl9hbGxfbW9kdWxlcyhfcHl0ZXN0
KSkKLSAgICByZXR1cm4gcmVzdWx0Ci0KLQotZGVmIF9pdGVyX2FsbF9tb2R1bGVzKHBhY2thZ2Us
IHByZWZpeD0nJyk6Ci0gICAgIiIiCi0gICAgSXRlcmF0ZXMgb3ZlciB0aGUgbmFtZXMgb2YgYWxs
IG1vZHVsZXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdmVuCi0gICAgcGFja2FnZSwgcmVj
dXJzaXZlbHkuCi0gICAgRXhhbXBsZToKLSAgICAgICAgX2l0ZXJfYWxsX21vZHVsZXMoX3B5dGVz
dCkgLT4KLSAgICAgICAgICAgIFsnX3B5dGVzdC5hc3NlcnRpb24ubmV3aW50ZXJwcmV0JywKLSAg
ICAgICAgICAgICAnX3B5dGVzdC5jYXB0dXJlJywKLSAgICAgICAgICAgICAnX3B5dGVzdC5jb3Jl
JywKLSAgICAgICAgICAgICAuLi4KLSAgICAgICAgICAgIF0KLSAgICAiIiIKLSAgICBpbXBvcnQg
b3MKLSAgICBpbXBvcnQgcGtndXRpbAotICAgIGlmIHR5cGUocGFja2FnZSkgaXMgbm90IHN0cjoK
LSAgICAgICAgcGF0aCwgcHJlZml4ID0gcGFja2FnZS5fX3BhdGhfX1swXSwgcGFja2FnZS5fX25h
bWVfXyArICcuJwotICAgIGVsc2U6Ci0gICAgICAgIHBhdGggPSBwYWNrYWdlCi0gICAgZm9yIF8s
IG5hbWUsIGlzX3BhY2thZ2UgaW4gcGtndXRpbC5pdGVyX21vZHVsZXMoW3BhdGhdKToKLSAgICAg
ICAgaWYgaXNfcGFja2FnZToKLSAgICAgICAgICAgIGZvciBtIGluIF9pdGVyX2FsbF9tb2R1bGVz
KG9zLnBhdGguam9pbihwYXRoLCBuYW1lKSwgcHJlZml4PW5hbWUgKyAnLicpOgotICAgICAgICAg
ICAgICAgIHlpZWxkIHByZWZpeCArIG0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHlpZWxk
IHByZWZpeCArIG5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvaGVscGNvbmZp
Zy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvaGVscGNvbmZpZy5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTc0NDYzN2Y4NjYwZjI3MmM0ODhhMmFiMGM2OGVlNGU4NTcxOGJiYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L2hlbHBjb25maWcucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxODQgKzAsMCBAQAot
IiIiIHZlcnNpb24gaW5mbywgaGVscCBtZXNzYWdlcywgdHJhY2luZyBjb25maWd1cmF0aW9uLiAg
IiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCi0KLWltcG9ydCBweQotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0LmNv
bmZpZyBpbXBvcnQgUHJpbnRIZWxwCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLWZyb20gYXJncGFy
c2UgaW1wb3J0IEFjdGlvbgotCi0KLWNsYXNzIEhlbHBBY3Rpb24oQWN0aW9uKToKLSAgICAiIiJU
aGlzIGlzIGFuIGFyZ3BhcnNlIEFjdGlvbiB0aGF0IHdpbGwgcmFpc2UgYW4gZXhjZXB0aW9uIGlu
Ci0gICAgb3JkZXIgdG8gc2tpcCB0aGUgcmVzdCBvZiB0aGUgYXJndW1lbnQgcGFyc2luZyB3aGVu
IC0taGVscCBpcyBwYXNzZWQuCi0gICAgVGhpcyBwcmV2ZW50cyBhcmdwYXJzZSBmcm9tIHF1aXR0
aW5nIGR1ZSB0byBtaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50cwotICAgIHdoZW4gYW55IGFyZSBk
ZWZpbmVkLCBmb3IgZXhhbXBsZSBieSBgYHB5dGVzdF9hZGRvcHRpb25gYC4KLSAgICBUaGlzIGlz
IHNpbWlsYXIgdG8gdGhlIHdheSB0aGF0IHRoZSBidWlsdGluIGFyZ3BhcnNlIC0taGVscCBvcHRp
b24gaXMKLSAgICBpbXBsZW1lbnRlZCBieSByYWlzaW5nIFN5c3RlbUV4aXQuCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwKLSAgICAgICAgICAgICAgICAgb3B0aW9uX3N0cmluZ3Ms
Ci0gICAgICAgICAgICAgICAgIGRlc3Q9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZGVmYXVsdD1G
YWxzZSwKLSAgICAgICAgICAgICAgICAgaGVscD1Ob25lKToKLSAgICAgICAgc3VwZXIoSGVscEFj
dGlvbiwgc2VsZikuX19pbml0X18oCi0gICAgICAgICAgICBvcHRpb25fc3RyaW5ncz1vcHRpb25f
c3RyaW5ncywKLSAgICAgICAgICAgIGRlc3Q9ZGVzdCwKLSAgICAgICAgICAgIGNvbnN0PVRydWUs
Ci0gICAgICAgICAgICBkZWZhdWx0PWRlZmF1bHQsCi0gICAgICAgICAgICBuYXJncz0wLAotICAg
ICAgICAgICAgaGVscD1oZWxwKQotCi0gICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBhcnNlciwgbmFt
ZXNwYWNlLCB2YWx1ZXMsIG9wdGlvbl9zdHJpbmc9Tm9uZSk6Ci0gICAgICAgIHNldGF0dHIobmFt
ZXNwYWNlLCBzZWxmLmRlc3QsIHNlbGYuY29uc3QpCi0KLSAgICAgICAgIyBXZSBzaG91bGQgb25s
eSBza2lwIHRoZSByZXN0IG9mIHRoZSBwYXJzaW5nIGFmdGVyIHByZXBhcnNlIGlzIGRvbmUKLSAg
ICAgICAgaWYgZ2V0YXR0cihwYXJzZXIuX3BhcnNlciwgJ2FmdGVyX3ByZXBhcnNlJywgRmFsc2Up
OgotICAgICAgICAgICAgcmFpc2UgUHJpbnRIZWxwCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24o
cGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgnZGVidWdjb25maWcnKQotICAg
IGdyb3VwLmFkZG9wdGlvbignLS12ZXJzaW9uJywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAg
ICAgICAgICAgICAgICAgaGVscD0iZGlzcGxheSBweXRlc3QgbGliIHZlcnNpb24gYW5kIGltcG9y
dCBpbmZvcm1hdGlvbi4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24oIi1oIiwgIi0taGVscCIsIGFj
dGlvbj1IZWxwQWN0aW9uLCBkZXN0PSJoZWxwIiwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9
InNob3cgaGVscCBtZXNzYWdlIGFuZCBjb25maWd1cmF0aW9uIGluZm8iKQotICAgIGdyb3VwLl9h
ZGRvcHRpb24oJy1wJywgYWN0aW9uPSJhcHBlbmQiLCBkZXN0PSJwbHVnaW5zIiwgZGVmYXVsdD1b
XSwKLSAgICAgICAgICAgICAgICAgICAgIG1ldGF2YXI9Im5hbWUiLAotICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iZWFybHktbG9hZCBnaXZlbiBwbHVnaW4gKG11bHRpLWFsbG93ZWQpLiAiCi0g
ICAgICAgICAgICAgICAgICAgICAiVG8gYXZvaWQgbG9hZGluZyBvZiBwbHVnaW5zLCB1c2UgdGhl
IGBubzpgIHByZWZpeCwgZS5nLiAiCi0gICAgICAgICAgICAgICAgICAgICAiYG5vOmRvY3Rlc3Rg
LiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLXRyYWNlY29uZmlnJywgJy0tdHJhY2UtY29uZmln
JywKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxz
ZSwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0idHJhY2UgY29uc2lkZXJhdGlvbnMgb2YgY29u
ZnRlc3QucHkgZmlsZXMuIiksCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLWRlYnVnJywKLSAgICAg
ICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0iZGVidWciLCBkZWZhdWx0
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJzdG9yZSBpbnRlcm5hbCB0cmFjaW5n
IGRlYnVnIGluZm9ybWF0aW9uIGluICdweXRlc3RkZWJ1Zy5sb2cnLiIpCi0gICAgZ3JvdXAuX2Fk
ZG9wdGlvbigKLSAgICAgICAgJy1vJywgJy0tb3ZlcnJpZGUtaW5pJywgbmFyZ3M9JyonLCBkZXN0
PSJvdmVycmlkZV9pbmkiLAotICAgICAgICBhY3Rpb249ImFwcGVuZCIsCi0gICAgICAgIGhlbHA9
Im92ZXJyaWRlIGNvbmZpZyBvcHRpb24gd2l0aCBvcHRpb249dmFsdWUgc3R5bGUsIGUuZy4gYC1v
IHhmYWlsX3N0cmljdD1UcnVlYC4iKQotCi0KLUBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9
VHJ1ZSkKLWRlZiBweXRlc3RfY21kbGluZV9wYXJzZSgpOgotICAgIG91dGNvbWUgPSB5aWVsZAot
ICAgIGNvbmZpZyA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCi0gICAgaWYgY29uZmlnLm9wdGlvbi5k
ZWJ1ZzoKLSAgICAgICAgcGF0aCA9IG9zLnBhdGguYWJzcGF0aCgicHl0ZXN0ZGVidWcubG9nIikK
LSAgICAgICAgZGVidWdmaWxlID0gb3BlbihwYXRoLCAndycpCi0gICAgICAgIGRlYnVnZmlsZS53
cml0ZSgidmVyc2lvbnMgcHl0ZXN0LSVzLCBweS0lcywgIgotICAgICAgICAgICAgICAgICAgICAg
ICAgInB5dGhvbi0lc1xuY3dkPSVzXG5hcmdzPSVzXG5cbiIgJSAoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHl0ZXN0Ll9fdmVyc2lvbl9fLCBweS5fX3ZlcnNpb25fXywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLiIuam9pbihtYXAoc3RyLCBzeXMudmVyc2lvbl9pbmZvKSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MuZ2V0Y3dkKCksIGNvbmZpZy5fb3JpZ2Fy
Z3MpKQotICAgICAgICBjb25maWcudHJhY2Uucm9vdC5zZXR3cml0ZXIoZGVidWdmaWxlLndyaXRl
KQotICAgICAgICB1bmRvX3RyYWNpbmcgPSBjb25maWcucGx1Z2lubWFuYWdlci5lbmFibGVfdHJh
Y2luZygpCi0gICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIndyaXRpbmcgcHl0ZXN0ZGVidWcgaW5m
b3JtYXRpb24gdG8gJXNcbiIgJSBwYXRoKQotCi0gICAgICAgIGRlZiB1bnNldF90cmFjaW5nKCk6
Ci0gICAgICAgICAgICBkZWJ1Z2ZpbGUuY2xvc2UoKQotICAgICAgICAgICAgc3lzLnN0ZGVyci53
cml0ZSgid3JvdGUgcHl0ZXN0ZGVidWcgaW5mb3JtYXRpb24gdG8gJXNcbiIgJQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWJ1Z2ZpbGUubmFtZSkKLSAgICAgICAgICAgIGNvbmZpZy50
cmFjZS5yb290LnNldHdyaXRlcihOb25lKQotICAgICAgICAgICAgdW5kb190cmFjaW5nKCkKLQot
ICAgICAgICBjb25maWcuYWRkX2NsZWFudXAodW5zZXRfdHJhY2luZykKLQotCi1kZWYgcHl0ZXN0
X2NtZGxpbmVfbWFpbihjb25maWcpOgotICAgIGlmIGNvbmZpZy5vcHRpb24udmVyc2lvbjoKLSAg
ICAgICAgcCA9IHB5LnBhdGgubG9jYWwocHl0ZXN0Ll9fZmlsZV9fKQotICAgICAgICBzeXMuc3Rk
ZXJyLndyaXRlKCJUaGlzIGlzIHB5dGVzdCB2ZXJzaW9uICVzLCBpbXBvcnRlZCBmcm9tICVzXG4i
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAocHl0ZXN0Ll9fdmVyc2lvbl9fLCBwKSkKLSAg
ICAgICAgcGx1Z2luaW5mbyA9IGdldHBsdWdpbnZlcnNpb25pbmZvKGNvbmZpZykKLSAgICAgICAg
aWYgcGx1Z2luaW5mbzoKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHBsdWdpbmluZm86Ci0gICAg
ICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShsaW5lICsgIlxuIikKLSAgICAgICAgcmV0dXJu
IDAKLSAgICBlbGlmIGNvbmZpZy5vcHRpb24uaGVscDoKLSAgICAgICAgY29uZmlnLl9kb19jb25m
aWd1cmUoKQotICAgICAgICBzaG93aGVscChjb25maWcpCi0gICAgICAgIGNvbmZpZy5fZW5zdXJl
X3VuY29uZmlndXJlKCkKLSAgICAgICAgcmV0dXJuIDAKLQotCi1kZWYgc2hvd2hlbHAoY29uZmln
KToKLSAgICByZXBvcnRlciA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldF9wbHVnaW4oJ3Rlcm1p
bmFscmVwb3J0ZXInKQotICAgIHR3ID0gcmVwb3J0ZXIuX3R3Ci0gICAgdHcud3JpdGUoY29uZmln
Ll9wYXJzZXIub3B0cGFyc2VyLmZvcm1hdF9oZWxwKCkpCi0gICAgdHcubGluZSgpCi0gICAgdHcu
bGluZSgpCi0gICAgdHcubGluZSgiW3B5dGVzdF0gaW5pLW9wdGlvbnMgaW4gdGhlIGZpcnN0ICIK
LSAgICAgICAgICAgICJweXRlc3QuaW5pfHRveC5pbml8c2V0dXAuY2ZnIGZpbGUgZm91bmQ6IikK
LSAgICB0dy5saW5lKCkKLQotICAgIGZvciBuYW1lIGluIGNvbmZpZy5fcGFyc2VyLl9pbmluYW1l
czoKLSAgICAgICAgaGVscCwgdHlwZSwgZGVmYXVsdCA9IGNvbmZpZy5fcGFyc2VyLl9pbmlkaWN0
W25hbWVdCi0gICAgICAgIGlmIHR5cGUgaXMgTm9uZToKLSAgICAgICAgICAgIHR5cGUgPSAic3Ry
aW5nIgotICAgICAgICBzcGVjID0gIiVzICglcykiICUgKG5hbWUsIHR5cGUpCi0gICAgICAgIGxp
bmUgPSAiICAlLTI0cyAlcyIgJSAoc3BlYywgaGVscCkKLSAgICAgICAgdHcubGluZShsaW5lWzp0
dy5mdWxsd2lkdGhdKQotCi0gICAgdHcubGluZSgpCi0gICAgdHcubGluZSgiZW52aXJvbm1lbnQg
dmFyaWFibGVzOiIpCi0gICAgdmFycyA9IFsKLSAgICAgICAgKCJQWVRFU1RfQURET1BUUyIsICJl
eHRyYSBjb21tYW5kIGxpbmUgb3B0aW9ucyIpLAotICAgICAgICAoIlBZVEVTVF9QTFVHSU5TIiwg
ImNvbW1hLXNlcGFyYXRlZCBwbHVnaW5zIHRvIGxvYWQgZHVyaW5nIHN0YXJ0dXAiKSwKLSAgICAg
ICAgKCJQWVRFU1RfREVCVUciLCAic2V0IHRvIGVuYWJsZSBkZWJ1ZyB0cmFjaW5nIG9mIHB5dGVz
dCdzIGludGVybmFscyIpCi0gICAgXQotICAgIGZvciBuYW1lLCBoZWxwIGluIHZhcnM6Ci0gICAg
ICAgIHR3LmxpbmUoIiAgJS0yNHMgJXMiICUgKG5hbWUsIGhlbHApKQotICAgIHR3LmxpbmUoKQot
ICAgIHR3LmxpbmUoKQotCi0gICAgdHcubGluZSgidG8gc2VlIGF2YWlsYWJsZSBtYXJrZXJzIHR5
cGU6IHB5dGVzdCAtLW1hcmtlcnMiKQotICAgIHR3LmxpbmUoInRvIHNlZSBhdmFpbGFibGUgZml4
dHVyZXMgdHlwZTogcHl0ZXN0IC0tZml4dHVyZXMiKQotICAgIHR3LmxpbmUoIihzaG93biBhY2Nv
cmRpbmcgdG8gc3BlY2lmaWVkIGZpbGVfb3JfZGlyIG9yIGN1cnJlbnQgZGlyICIKLSAgICAgICAg
ICAgICJpZiBub3Qgc3BlY2lmaWVkKSIpCi0KLSAgICBmb3Igd2FybmluZ3JlcG9ydCBpbiByZXBv
cnRlci5zdGF0cy5nZXQoJ3dhcm5pbmdzJywgW10pOgotICAgICAgICB0dy5saW5lKCJ3YXJuaW5n
IDogIiArIHdhcm5pbmdyZXBvcnQubWVzc2FnZSwgcmVkPVRydWUpCi0gICAgcmV0dXJuCi0KLQot
Y29uZnRlc3Rfb3B0aW9ucyA9IFsKLSAgICAoJ3B5dGVzdF9wbHVnaW5zJywgJ2xpc3Qgb2YgcGx1
Z2luIG5hbWVzIHRvIGxvYWQnKSwKLV0KLQotCi1kZWYgZ2V0cGx1Z2ludmVyc2lvbmluZm8oY29u
ZmlnKToKLSAgICBsaW5lcyA9IFtdCi0gICAgcGx1Z2luaW5mbyA9IGNvbmZpZy5wbHVnaW5tYW5h
Z2VyLmxpc3RfcGx1Z2luX2Rpc3RpbmZvKCkKLSAgICBpZiBwbHVnaW5pbmZvOgotICAgICAgICBs
aW5lcy5hcHBlbmQoInNldHVwdG9vbHMgcmVnaXN0ZXJlZCBwbHVnaW5zOiIpCi0gICAgICAgIGZv
ciBwbHVnaW4sIGRpc3QgaW4gcGx1Z2luaW5mbzoKLSAgICAgICAgICAgIGxvYyA9IGdldGF0dHIo
cGx1Z2luLCAnX19maWxlX18nLCByZXByKHBsdWdpbikpCi0gICAgICAgICAgICBjb250ZW50ID0g
IiVzLSVzIGF0ICVzIiAlIChkaXN0LnByb2plY3RfbmFtZSwgZGlzdC52ZXJzaW9uLCBsb2MpCi0g
ICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgIiArIGNvbnRlbnQpCi0gICAgcmV0dXJuIGxpbmVz
Ci0KLQotZGVmIHB5dGVzdF9yZXBvcnRfaGVhZGVyKGNvbmZpZyk6Ci0gICAgbGluZXMgPSBbXQot
ICAgIGlmIGNvbmZpZy5vcHRpb24uZGVidWcgb3IgY29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoK
LSAgICAgICAgbGluZXMuYXBwZW5kKCJ1c2luZzogcHl0ZXN0LSVzIHB5bGliLSVzIiAlCi0gICAg
ICAgICAgICAgICAgICAgICAocHl0ZXN0Ll9fdmVyc2lvbl9fLCBweS5fX3ZlcnNpb25fXykpCi0K
LSAgICAgICAgdmVyaW5mbyA9IGdldHBsdWdpbnZlcnNpb25pbmZvKGNvbmZpZykKLSAgICAgICAg
aWYgdmVyaW5mbzoKLSAgICAgICAgICAgIGxpbmVzLmV4dGVuZCh2ZXJpbmZvKQotCi0gICAgaWYg
Y29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoKLSAgICAgICAgbGluZXMuYXBwZW5kKCJhY3RpdmUg
cGx1Z2luczoiKQotICAgICAgICBpdGVtcyA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmxpc3RfbmFt
ZV9wbHVnaW4oKQotICAgICAgICBmb3IgbmFtZSwgcGx1Z2luIGluIGl0ZW1zOgotICAgICAgICAg
ICAgaWYgaGFzYXR0cihwbHVnaW4sICdfX2ZpbGVfXycpOgotICAgICAgICAgICAgICAgIHIgPSBw
bHVnaW4uX19maWxlX18KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgciA9IHJl
cHIocGx1Z2luKQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICAgJS0yMHM6ICVzIiAlIChu
YW1lLCByKSkKLSAgICByZXR1cm4gbGluZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvaG9va3NwZWMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hvb2tzcGVjLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDBiZjk5ZDM3NWFhNmM3NWVlNzQzZmU2OWVjZjc5NzAy
MjMyMmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvaG9va3NwZWMucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MjMgKzAs
MCBAQAotIiIiIGhvb2sgc3BlY2lmaWNhdGlvbnMgZm9yIHB5dGVzdCBwbHVnaW5zLCBpbnZva2Vk
IGZyb20gbWFpbi5weSBhbmQgYnVpbHRpbiBwbHVnaW5zLiAgIiIiCi0KLWZyb20gcGx1Z2d5IGlt
cG9ydCBIb29rc3BlY01hcmtlcgotCi1ob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJweXRlc3Qi
KQotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgSW5pdGlhbGl6YXRpb24gaG9va3MgY2FsbGVkIGZv
ciBldmVyeSBwbHVnaW4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLUBob29rc3BlYyhoaXN0b3Jp
Yz1UcnVlKQotZGVmIHB5dGVzdF9hZGRob29rcyhwbHVnaW5tYW5hZ2VyKToKLSAgICAiIiJjYWxs
ZWQgYXQgcGx1Z2luIHJlZ2lzdHJhdGlvbiB0aW1lIHRvIGFsbG93IGFkZGluZyBuZXcgaG9va3Mg
dmlhIGEgY2FsbCB0bwotICAgIHBsdWdpbm1hbmFnZXIuYWRkX2hvb2tzcGVjcyhtb2R1bGVfb3Jf
Y2xhc3MsIHByZWZpeCkuIiIiCi0KLQotQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCi1kZWYgcHl0
ZXN0X25hbWVzcGFjZSgpOgotICAgICIiIgotICAgIERFUFJFQ0FURUQ6IHRoaXMgaG9vayBjYXVz
ZXMgZGlyZWN0IG1vbmtleXBhdGNoaW5nIG9uIHB5dGVzdCwgaXRzIHVzZSBpcyBzdHJvbmdseSBk
aXNjb3VyYWdlZAotICAgIHJldHVybiBkaWN0IG9mIG5hbWUtPm9iamVjdCB0byBiZSBtYWRlIGds
b2JhbGx5IGF2YWlsYWJsZSBpbgotICAgIHRoZSBweXRlc3QgbmFtZXNwYWNlLiAgVGhpcyBob29r
IGlzIGNhbGxlZCBhdCBwbHVnaW4gcmVnaXN0cmF0aW9uCi0gICAgdGltZS4KLSAgICAiIiIKLQot
Ci1AaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKLWRlZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQo
cGx1Z2luLCBtYW5hZ2VyKToKLSAgICAiIiIgYSBuZXcgcHl0ZXN0IHBsdWdpbiBnb3QgcmVnaXN0
ZXJlZC4gIiIiCi0KLQotQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCi1kZWYgcHl0ZXN0X2FkZG9w
dGlvbihwYXJzZXIpOgotICAgICIiInJlZ2lzdGVyIGFyZ3BhcnNlLXN0eWxlIG9wdGlvbnMgYW5k
IGluaS1zdHlsZSBjb25maWcgdmFsdWVzLAotICAgIGNhbGxlZCBvbmNlIGF0IHRoZSBiZWdpbm5p
bmcgb2YgYSB0ZXN0IHJ1bi4KLQotICAgIC4uIG5vdGU6OgotCi0gICAgICAgIFRoaXMgZnVuY3Rp
b24gc2hvdWxkIGJlIGltcGxlbWVudGVkIG9ubHkgaW4gcGx1Z2lucyBvciBgYGNvbmZ0ZXN0LnB5
YGAKLSAgICAgICAgZmlsZXMgc2l0dWF0ZWQgYXQgdGhlIHRlc3RzIHJvb3QgZGlyZWN0b3J5IGR1
ZSB0byBob3cgcHl0ZXN0Ci0gICAgICAgIDpyZWY6YGRpc2NvdmVycyBwbHVnaW5zIGR1cmluZyBz
dGFydHVwIDxwbHVnaW5vcmRlcj5gLgotCi0gICAgOmFyZyBwYXJzZXI6IFRvIGFkZCBjb21tYW5k
IGxpbmUgb3B0aW9ucywgY2FsbAotICAgICAgICA6cHk6ZnVuYzpgcGFyc2VyLmFkZG9wdGlvbigu
Li4pIDxfcHl0ZXN0LmNvbmZpZy5QYXJzZXIuYWRkb3B0aW9uPmAuCi0gICAgICAgIFRvIGFkZCBp
bmktZmlsZSB2YWx1ZXMgY2FsbCA6cHk6ZnVuYzpgcGFyc2VyLmFkZGluaSguLi4pCi0gICAgICAg
IDxfcHl0ZXN0LmNvbmZpZy5QYXJzZXIuYWRkaW5pPmAuCi0KLSAgICBPcHRpb25zIGNhbiBsYXRl
ciBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZQotICAgIDpweTpjbGFzczpgY29uZmlnIDxfcHl0ZXN0
LmNvbmZpZy5Db25maWc+YCBvYmplY3QsIHJlc3BlY3RpdmVseToKLQotICAgIC0gOnB5OmZ1bmM6
YGNvbmZpZy5nZXRvcHRpb24obmFtZSkgPF9weXRlc3QuY29uZmlnLkNvbmZpZy5nZXRvcHRpb24+
YCB0bwotICAgICAgcmV0cmlldmUgdGhlIHZhbHVlIG9mIGEgY29tbWFuZCBsaW5lIG9wdGlvbi4K
LQotICAgIC0gOnB5OmZ1bmM6YGNvbmZpZy5nZXRpbmkobmFtZSkgPF9weXRlc3QuY29uZmlnLkNv
bmZpZy5nZXRpbmk+YCB0byByZXRyaWV2ZQotICAgICAgYSB2YWx1ZSByZWFkIGZyb20gYW4gaW5p
LXN0eWxlIGZpbGUuCi0KLSAgICBUaGUgY29uZmlnIG9iamVjdCBpcyBwYXNzZWQgYXJvdW5kIG9u
IG1hbnkgaW50ZXJuYWwgb2JqZWN0cyB2aWEgdGhlIGBgLmNvbmZpZ2BgCi0gICAgYXR0cmlidXRl
IG9yIGNhbiBiZSByZXRyaWV2ZWQgYXMgdGhlIGBgcHl0ZXN0Y29uZmlnYGAgZml4dHVyZSBvciBh
Y2Nlc3NlZAotICAgIHZpYSAoZGVwcmVjYXRlZCkgYGBweXRlc3QuY29uZmlnYGAuCi0gICAgIiIi
Ci0KLQotQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25m
aWcpOgotICAgICIiIgotICAgIEFsbG93cyBwbHVnaW5zIGFuZCBjb25mdGVzdCBmaWxlcyB0byBw
ZXJmb3JtIGluaXRpYWwgY29uZmlndXJhdGlvbi4KLQotICAgIFRoaXMgaG9vayBpcyBjYWxsZWQg
Zm9yIGV2ZXJ5IHBsdWdpbiBhbmQgaW5pdGlhbCBjb25mdGVzdCBmaWxlCi0gICAgYWZ0ZXIgY29t
bWFuZCBsaW5lIG9wdGlvbnMgaGF2ZSBiZWVuIHBhcnNlZC4KLQotICAgIEFmdGVyIHRoYXQsIHRo
ZSBob29rIGlzIGNhbGxlZCBmb3Igb3RoZXIgY29uZnRlc3QgZmlsZXMgYXMgdGhleSBhcmUKLSAg
ICBpbXBvcnRlZC4KLQotICAgIDphcmcgY29uZmlnOiBweXRlc3QgY29uZmlnIG9iamVjdAotICAg
IDp0eXBlIGNvbmZpZzogX3B5dGVzdC5jb25maWcuQ29uZmlnCi0gICAgIiIiCi0KLSMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotIyBCb290c3RyYXBwaW5nIGhvb2tzIGNhbGxlZCBmb3IgcGx1Z2lucyByZWdp
c3RlcmVkIGVhcmx5IGVub3VnaDoKLSMgaW50ZXJuYWwgYW5kIDNyZCBwYXJ0eSBwbHVnaW5zIGFz
IHdlbGwgYXMgZGlyZWN0bHkKLSMgZGlzY292ZXJhYmxlIGNvbmZ0ZXN0LnB5IGxvY2FsIHBsdWdp
bnMuCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkK
LWRlZiBweXRlc3RfY21kbGluZV9wYXJzZShwbHVnaW5tYW5hZ2VyLCBhcmdzKToKLSAgICAiIiJy
ZXR1cm4gaW5pdGlhbGl6ZWQgY29uZmlnIG9iamVjdCwgcGFyc2luZyB0aGUgc3BlY2lmaWVkIGFy
Z3MuCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJz
dHJlc3VsdGAgIiIiCi0KLQotZGVmIHB5dGVzdF9jbWRsaW5lX3ByZXBhcnNlKGNvbmZpZywgYXJn
cyk6Ci0gICAgIiIiKGRlcHJlY2F0ZWQpIG1vZGlmeSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGJl
Zm9yZSBvcHRpb24gcGFyc2luZy4gIiIiCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUp
Ci1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgotICAgICIiIiBjYWxsZWQgZm9yIHBl
cmZvcm1pbmcgdGhlIG1haW4gY29tbWFuZCBsaW5lIGFjdGlvbi4gVGhlIGRlZmF1bHQKLSAgICBp
bXBsZW1lbnRhdGlvbiB3aWxsIGludm9rZSB0aGUgY29uZmlndXJlIGhvb2tzIGFuZCBydW50ZXN0
X21haW5sb29wLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJl
ZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0
cyhlYXJseV9jb25maWcsIHBhcnNlciwgYXJncyk6Ci0gICAgIiIiIGltcGxlbWVudHMgdGhlIGxv
YWRpbmcgb2YgaW5pdGlhbCBjb25mdGVzdCBmaWxlcyBhaGVhZAotICAgIG9mIGNvbW1hbmQgbGlu
ZSBvcHRpb24gcGFyc2luZy4gIiIiCi0KLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGNvbGxlY3Rp
b24gaG9va3MKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1
ZSkKLWRlZiBweXRlc3RfY29sbGVjdGlvbihzZXNzaW9uKToKLSAgICAiIiIgcGVyZm9ybSB0aGUg
Y29sbGVjdGlvbiBwcm90b2NvbCBmb3IgdGhlIGdpdmVuIHNlc3Npb24uCi0KLSAgICBTdG9wcyBh
dCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQot
ZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKHNlc3Npb24sIGNvbmZpZywgaXRlbXMp
OgotICAgICIiIiBjYWxsZWQgYWZ0ZXIgY29sbGVjdGlvbiBoYXMgYmVlbiBwZXJmb3JtZWQsIG1h
eSBmaWx0ZXIgb3IgcmUtb3JkZXIKLSAgICB0aGUgaXRlbXMgaW4tcGxhY2UuIiIiCi0KLQotZGVm
IHB5dGVzdF9jb2xsZWN0aW9uX2ZpbmlzaChzZXNzaW9uKToKLSAgICAiIiIgY2FsbGVkIGFmdGVy
IGNvbGxlY3Rpb24gaGFzIGJlZW4gcGVyZm9ybWVkIGFuZCBtb2RpZmllZC4gIiIiCi0KLQotQGhv
b2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgs
IGNvbmZpZyk6Ci0gICAgIiIiIHJldHVybiBUcnVlIHRvIHByZXZlbnQgY29uc2lkZXJpbmcgdGhp
cyBwYXRoIGZvciBjb2xsZWN0aW9uLgotICAgIFRoaXMgaG9vayBpcyBjb25zdWx0ZWQgZm9yIGFs
bCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgcHJpb3IgdG8gY2FsbGluZwotICAgIG1vcmUgc3BlY2lm
aWMgaG9va3MuCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVm
OmBmaXJzdHJlc3VsdGAKLSAgICAiIiIKLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkK
LWRlZiBweXRlc3RfY29sbGVjdF9kaXJlY3RvcnkocGF0aCwgcGFyZW50KToKLSAgICAiIiIgY2Fs
bGVkIGJlZm9yZSB0cmF2ZXJzaW5nIGEgZGlyZWN0b3J5IGZvciBjb2xsZWN0aW9uIGZpbGVzLgot
Ci0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1
bHRgICIiIgotCi0KLWRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6Ci0gICAg
IiIiIHJldHVybiBjb2xsZWN0aW9uIE5vZGUgb3IgTm9uZSBmb3IgdGhlIGdpdmVuIHBhdGguIEFu
eSBuZXcgbm9kZQotICAgIG5lZWRzIHRvIGhhdmUgdGhlIHNwZWNpZmllZCBgYHBhcmVudGBgIGFz
IGEgcGFyZW50LiIiIgotCi0jIGxvZ2dpbmcgaG9va3MgZm9yIGNvbGxlY3Rpb24KLQotCi1kZWYg
cHl0ZXN0X2NvbGxlY3RzdGFydChjb2xsZWN0b3IpOgotICAgICIiIiBjb2xsZWN0b3Igc3RhcnRz
IGNvbGxlY3RpbmcuICIiIgotCi0KLWRlZiBweXRlc3RfaXRlbWNvbGxlY3RlZChpdGVtKToKLSAg
ICAiIiIgd2UganVzdCBjb2xsZWN0ZWQgYSB0ZXN0IGl0ZW0uICIiIgotCi0KLWRlZiBweXRlc3Rf
Y29sbGVjdHJlcG9ydChyZXBvcnQpOgotICAgICIiIiBjb2xsZWN0b3IgZmluaXNoZWQgY29sbGVj
dGluZy4gIiIiCi0KLQotZGVmIHB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zKToKLSAgICAiIiIgY2Fs
bGVkIGZvciB0ZXN0IGl0ZW1zIGRlc2VsZWN0ZWQgYnkga2V5d29yZC4gIiIiCi0KLQotQGhvb2tz
cGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQoY29s
bGVjdG9yKToKLSAgICAiIiIgcGVyZm9ybSBgYGNvbGxlY3Rvci5jb2xsZWN0KClgYCBhbmQgcmV0
dXJuIGEgQ29sbGVjdFJlcG9ydC4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3Vs
dCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFB5
dGhvbiB0ZXN0IGZ1bmN0aW9uIHJlbGF0ZWQgaG9va3MKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0K
LUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFrZW1v
ZHVsZShwYXRoLCBwYXJlbnQpOgotICAgICIiIiByZXR1cm4gYSBNb2R1bGUgY29sbGVjdG9yIG9y
IE5vbmUgZm9yIHRoZSBnaXZlbiBwYXRoLgotICAgIFRoaXMgaG9vayB3aWxsIGJlIGNhbGxlZCBm
b3IgZWFjaCBtYXRjaGluZyB0ZXN0IG1vZHVsZSBwYXRoLgotICAgIFRoZSBweXRlc3RfY29sbGVj
dF9maWxlIGhvb2sgbmVlZHMgdG8gYmUgdXNlZCBpZiB5b3Ugd2FudCB0bwotICAgIGNyZWF0ZSB0
ZXN0IG1vZHVsZXMgZm9yIGZpbGVzIHRoYXQgZG8gbm90IG1hdGNoIGFzIGEgdGVzdCBtb2R1bGUu
Ci0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJl
c3VsdGAgIiIiCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X3B5
Y29sbGVjdF9tYWtlaXRlbShjb2xsZWN0b3IsIG5hbWUsIG9iaik6Ci0gICAgIiIiIHJldHVybiBj
dXN0b20gaXRlbS9jb2xsZWN0b3IgZm9yIGEgcHl0aG9uIG9iamVjdCBpbiBhIG1vZHVsZSwgb3Ig
Tm9uZS4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZp
cnN0cmVzdWx0YCAiIiIKLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRl
c3RfcHlmdW5jX2NhbGwocHlmdW5jaXRlbSk6Ci0gICAgIiIiIGNhbGwgdW5kZXJseWluZyB0ZXN0
IGZ1bmN0aW9uLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJl
ZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1
bmMpOgotICAgICIiIiBnZW5lcmF0ZSAobXVsdGlwbGUpIHBhcmFtZXRyaXplZCBjYWxscyB0byBh
IHRlc3QgZnVuY3Rpb24uIiIiCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYg
cHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQoY29uZmlnLCB2YWwsIGFyZ25hbWUpOgotICAgICIi
IlJldHVybiBhIHVzZXItZnJpZW5kbHkgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZl
biBgYHZhbGBgIHRoYXQgd2lsbCBiZSB1c2VkCi0gICAgYnkgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplIGNhbGxzLiBSZXR1cm4gTm9uZSBpZiB0aGUgaG9vayBkb2Vzbid0IGtub3cgYWJvdXQgYGB2
YWxgYC4KLSAgICBUaGUgcGFyYW1ldGVyIG5hbWUgaXMgYXZhaWxhYmxlIGFzIGBgYXJnbmFtZWBg
LCBpZiByZXF1aXJlZC4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2Vl
IDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGdlbmVyaWMg
cnVudGVzdCByZWxhdGVkIGhvb2tzCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1AaG9va3NwZWMo
Zmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfcnVudGVzdGxvb3Aoc2Vzc2lvbik6Ci0gICAg
IiIiIGNhbGxlZCBmb3IgcGVyZm9ybWluZyB0aGUgbWFpbiBydW50ZXN0IGxvb3AKLSAgICAoYWZ0
ZXIgY29sbGVjdGlvbiBmaW5pc2hlZCkuCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSBy
ZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotZGVmIHB5dGVzdF9pdGVtc3Rh
cnQoaXRlbSwgbm9kZSk6Ci0gICAgIiIiIChkZXByZWNhdGVkLCB1c2UgcHl0ZXN0X3J1bnRlc3Rf
bG9nc3RhcnQpLiAiIiIKLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRl
c3RfcnVudGVzdF9wcm90b2NvbChpdGVtLCBuZXh0aXRlbSk6Ci0gICAgIiIiIGltcGxlbWVudHMg
dGhlIHJ1bnRlc3Rfc2V0dXAvY2FsbC90ZWFyZG93biBwcm90b2NvbCBmb3IKLSAgICB0aGUgZ2l2
ZW4gdGVzdCBpdGVtLCBpbmNsdWRpbmcgY2FwdHVyaW5nIGV4Y2VwdGlvbnMgYW5kIGNhbGxpbmcK
LSAgICByZXBvcnRpbmcgaG9va3MuCi0KLSAgICA6YXJnIGl0ZW06IHRlc3QgaXRlbSBmb3Igd2hp
Y2ggdGhlIHJ1bnRlc3QgcHJvdG9jb2wgaXMgcGVyZm9ybWVkLgotCi0gICAgOmFyZyBuZXh0aXRl
bTogdGhlIHNjaGVkdWxlZC10by1iZS1uZXh0IHRlc3QgaXRlbSAob3IgTm9uZSBpZiB0aGlzCi0g
ICAgICAgICAgICAgICAgICAgaXMgdGhlIGVuZCBteSBmcmllbmQpLiAgVGhpcyBhcmd1bWVudCBp
cyBwYXNzZWQgb24gdG8KLSAgICAgICAgICAgICAgICAgICA6cHk6ZnVuYzpgcHl0ZXN0X3J1bnRl
c3RfdGVhcmRvd25gLgotCi0gICAgOnJldHVybiBib29sZWFuOiBUcnVlIGlmIG5vIGZ1cnRoZXIg
aG9vayBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIGJlIGludm9rZWQuCi0KLQotICAgIFN0b3BzIGF0
IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1k
ZWYgcHl0ZXN0X3J1bnRlc3RfbG9nc3RhcnQobm9kZWlkLCBsb2NhdGlvbik6Ci0gICAgIiIiIHNp
Z25hbCB0aGUgc3RhcnQgb2YgcnVubmluZyBhIHNpbmdsZSB0ZXN0IGl0ZW0uICIiIgotCi0KLWRl
ZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKLSAgICAiIiIgY2FsbGVkIGJlZm9yZSBgYHB5
dGVzdF9ydW50ZXN0X2NhbGwoaXRlbSlgYC4gIiIiCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X2Nh
bGwoaXRlbSk6Ci0gICAgIiIiIGNhbGxlZCB0byBleGVjdXRlIHRoZSB0ZXN0IGBgaXRlbWBgLiAi
IiIKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRlbSwgbmV4dGl0ZW0pOgotICAg
ICIiIiBjYWxsZWQgYWZ0ZXIgYGBweXRlc3RfcnVudGVzdF9jYWxsYGAuCi0KLSAgICA6YXJnIG5l
eHRpdGVtOiB0aGUgc2NoZWR1bGVkLXRvLWJlLW5leHQgdGVzdCBpdGVtIChOb25lIGlmIG5vIGZ1
cnRoZXIKLSAgICAgICAgICAgICAgICAgICB0ZXN0IGl0ZW0gaXMgc2NoZWR1bGVkKS4gIFRoaXMg
YXJndW1lbnQgY2FuIGJlIHVzZWQgdG8KLSAgICAgICAgICAgICAgICAgICBwZXJmb3JtIGV4YWN0
IHRlYXJkb3ducywgaS5lLiBjYWxsaW5nIGp1c3QgZW5vdWdoIGZpbmFsaXplcnMKLSAgICAgICAg
ICAgICAgICAgICBzbyB0aGF0IG5leHRpdGVtIG9ubHkgbmVlZHMgdG8gY2FsbCBzZXR1cC1mdW5j
dGlvbnMuCi0gICAgIiIiCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0
ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToKLSAgICAiIiIgcmV0dXJuIGEgOnB5
OmNsYXNzOmBfcHl0ZXN0LnJ1bm5lci5UZXN0UmVwb3J0YCBvYmplY3QKLSAgICBmb3IgdGhlIGdp
dmVuIDpweTpjbGFzczpgcHl0ZXN0Lkl0ZW0gPF9weXRlc3QubWFpbi5JdGVtPmAgYW5kCi0gICAg
OnB5OmNsYXNzOmBfcHl0ZXN0LnJ1bm5lci5DYWxsSW5mb2AuCi0KLSAgICBTdG9wcyBhdCBmaXJz
dCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotZGVmIHB5
dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChyZXBvcnQpOgotICAgICIiIiBwcm9jZXNzIGEgdGVzdCBz
ZXR1cC9jYWxsL3RlYXJkb3duIHJlcG9ydCByZWxhdGluZyB0bwotICAgIHRoZSByZXNwZWN0aXZl
IHBoYXNlIG9mIGV4ZWN1dGluZyBhIHRlc3QuICIiIgotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMg
Rml4dHVyZSByZWxhdGVkIGhvb2tzCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1AaG9va3NwZWMo
Zmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVmLCBy
ZXF1ZXN0KToKLSAgICAiIiIgcGVyZm9ybXMgZml4dHVyZSBzZXR1cCBleGVjdXRpb24uCi0KLSAg
ICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAg
IiIiCi0KLQotZGVmIHB5dGVzdF9maXh0dXJlX3Bvc3RfZmluYWxpemVyKGZpeHR1cmVkZWYsIHJl
cXVlc3QpOgotICAgICIiIiBjYWxsZWQgYWZ0ZXIgZml4dHVyZSB0ZWFyZG93biwgYnV0IGJlZm9y
ZSB0aGUgY2FjaGUgaXMgY2xlYXJlZCBzbwotICAgIHRoZSBmaXh0dXJlIHJlc3VsdCBjYWNoZSBg
YGZpeHR1cmVkZWYuY2FjaGVkX3Jlc3VsdGBgIGNhbgotICAgIHN0aWxsIGJlIGFjY2Vzc2VkLiIi
IgotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgdGVzdCBzZXNzaW9uIHJlbGF0ZWQgaG9va3MKLSMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi0KLWRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb24pOgot
ICAgICIiIiBiZWZvcmUgc2Vzc2lvbi5tYWluKCkgaXMgY2FsbGVkLiAiIiIKLQotCi1kZWYgcHl0
ZXN0X3Nlc3Npb25maW5pc2goc2Vzc2lvbiwgZXhpdHN0YXR1cyk6Ci0gICAgIiIiIHdob2xlIHRl
c3QgcnVuIGZpbmlzaGVzLiAiIiIKLQotCi1kZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZyk6
Ci0gICAgIiIiIGNhbGxlZCBiZWZvcmUgdGVzdCBwcm9jZXNzIGlzIGV4aXRlZC4gICIiIgotCi0K
LSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotIyBob29rcyBmb3IgY3VzdG9taXppbmcgdGhlIGFzc2VydCBt
ZXRob2RzCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotZGVmIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBh
cmUoY29uZmlnLCBvcCwgbGVmdCwgcmlnaHQpOgotICAgICIiInJldHVybiBleHBsYW5hdGlvbiBm
b3IgY29tcGFyaXNvbnMgaW4gZmFpbGluZyBhc3NlcnQgZXhwcmVzc2lvbnMuCi0KLSAgICBSZXR1
cm4gTm9uZSBmb3Igbm8gY3VzdG9tIGV4cGxhbmF0aW9uLCBvdGhlcndpc2UgcmV0dXJuIGEgbGlz
dAotICAgIG9mIHN0cmluZ3MuICBUaGUgc3RyaW5ncyB3aWxsIGJlIGpvaW5lZCBieSBuZXdsaW5l
cyBidXQgYW55IG5ld2xpbmVzCi0gICAgKmluKiBhIHN0cmluZyB3aWxsIGJlIGVzY2FwZWQuICBO
b3RlIHRoYXQgYWxsIGJ1dCB0aGUgZmlyc3QgbGluZSB3aWxsCi0gICAgYmUgaW5kZW50ZWQgc2xp
Z2h0bHksIHRoZSBpbnRlbnRpb24gaXMgZm9yIHRoZSBmaXJzdCBsaW5lIHRvIGJlIGEgc3VtbWFy
eS4KLSAgICAiIiIKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGhvb2tzIGZvciBpbmZsdWVuY2lu
ZyByZXBvcnRpbmcgKGludm9rZWQgZnJvbSBfcHl0ZXN0X3Rlcm1pbmFsKQotIyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0KLQotZGVmIHB5dGVzdF9yZXBvcnRfaGVhZGVyKGNvbmZpZywgc3RhcnRkaXIpOgot
ICAgICIiIiByZXR1cm4gYSBzdHJpbmcgb3IgbGlzdCBvZiBzdHJpbmdzIHRvIGJlIGRpc3BsYXll
ZCBhcyBoZWFkZXIgaW5mbyBmb3IgdGVybWluYWwgcmVwb3J0aW5nLgotCi0gICAgOnBhcmFtIGNv
bmZpZzogdGhlIHB5dGVzdCBjb25maWcgb2JqZWN0LgotICAgIDpwYXJhbSBzdGFydGRpcjogcHku
cGF0aCBvYmplY3Qgd2l0aCB0aGUgc3RhcnRpbmcgZGlyCi0KLSAgICAuLiBub3RlOjoKLQotICAg
ICAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBvbmx5IGluIHBsdWdpbnMg
b3IgYGBjb25mdGVzdC5weWBgCi0gICAgICAgIGZpbGVzIHNpdHVhdGVkIGF0IHRoZSB0ZXN0cyBy
b290IGRpcmVjdG9yeSBkdWUgdG8gaG93IHB5dGVzdAotICAgICAgICA6cmVmOmBkaXNjb3ZlcnMg
cGx1Z2lucyBkdXJpbmcgc3RhcnR1cCA8cGx1Z2lub3JkZXI+YC4KLSAgICAiIiIKLQotCi1kZWYg
cHl0ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNoKGNvbmZpZywgc3RhcnRkaXIsIGl0ZW1zKToK
LSAgICAiIiIKLSAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKLQotICAgIHJldHVybiBhIHN0cmlu
ZyBvciBsaXN0IG9mIHN0cmluZ3MgdG8gYmUgZGlzcGxheWVkIGFmdGVyIGNvbGxlY3Rpb24gaGFz
IGZpbmlzaGVkIHN1Y2Nlc3NmdWxseS4KLQotICAgIFRoaXMgc3RyaW5ncyB3aWxsIGJlIGRpc3Bs
YXllZCBhZnRlciB0aGUgc3RhbmRhcmQgImNvbGxlY3RlZCBYIGl0ZW1zIiBtZXNzYWdlLgotCi0g
ICAgOnBhcmFtIGNvbmZpZzogdGhlIHB5dGVzdCBjb25maWcgb2JqZWN0LgotICAgIDpwYXJhbSBz
dGFydGRpcjogcHkucGF0aCBvYmplY3Qgd2l0aCB0aGUgc3RhcnRpbmcgZGlyCi0gICAgOnBhcmFt
IGl0ZW1zOiBsaXN0IG9mIHB5dGVzdCBpdGVtcyB0aGF0IGFyZSBnb2luZyB0byBiZSBleGVjdXRl
ZDsgdGhpcyBsaXN0IHNob3VsZCBub3QgYmUgbW9kaWZpZWQuCi0gICAgIiIiCi0KLQotQGhvb2tz
cGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKHJlcG9y
dCk6Ci0gICAgIiIiIHJldHVybiByZXN1bHQtY2F0ZWdvcnksIHNob3J0bGV0dGVyIGFuZCB2ZXJi
b3NlIHdvcmQgZm9yIHJlcG9ydGluZy4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJl
c3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYgcHl0ZXN0X3Rlcm1pbmFs
X3N1bW1hcnkodGVybWluYWxyZXBvcnRlciwgZXhpdHN0YXR1cyk6Ci0gICAgIiIiIGFkZCBhZGRp
dGlvbmFsIHNlY3Rpb24gaW4gdGVybWluYWwgc3VtbWFyeSByZXBvcnRpbmcuICAiIiIKLQotCi1A
aG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKLWRlZiBweXRlc3RfbG9nd2FybmluZyhtZXNzYWdlLCBj
b2RlLCBub2RlaWQsIGZzbG9jYXRpb24pOgotICAgICIiIiBwcm9jZXNzIGEgd2FybmluZyBzcGVj
aWZpZWQgYnkgYSBtZXNzYWdlLCBhIGNvZGUgc3RyaW5nLAotICAgIGEgbm9kZWlkIGFuZCBmc2xv
Y2F0aW9uIChib3RoIG9mIHdoaWNoIG1heSBiZSBOb25lCi0gICAgaWYgdGhlIHdhcm5pbmcgaXMg
bm90IHRpZWQgdG8gYSBwYXJ0aWxhciBub2RlL2xvY2F0aW9uKS4iIiIKLQotIyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0jIGRvY3Rlc3QgaG9va3MKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLUBob29rc3Bl
YyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9kb2N0ZXN0X3ByZXBhcmVfY29udGVudChj
b250ZW50KToKLSAgICAiIiIgcmV0dXJuIHByb2Nlc3NlZCBjb250ZW50IGZvciBhIGdpdmVuIGRv
Y3Rlc3QKLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZp
cnN0cmVzdWx0YCAiIiIKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGVycm9yIGhhbmRsaW5nIGFu
ZCBpbnRlcm5hbCBkZWJ1Z2dpbmcgaG9va3MKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLWRlZiBw
eXRlc3RfaW50ZXJuYWxlcnJvcihleGNyZXByLCBleGNpbmZvKToKLSAgICAiIiIgY2FsbGVkIGZv
ciBpbnRlcm5hbCBlcnJvcnMuICIiIgotCi0KLWRlZiBweXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0
KGV4Y2luZm8pOgotICAgICIiIiBjYWxsZWQgZm9yIGtleWJvYXJkIGludGVycnVwdC4gIiIiCi0K
LQotZGVmIHB5dGVzdF9leGNlcHRpb25faW50ZXJhY3Qobm9kZSwgY2FsbCwgcmVwb3J0KToKLSAg
ICAiIiJjYWxsZWQgd2hlbiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCB3aGljaCBjYW4gcG90ZW50
aWFsbHkgYmUKLSAgICBpbnRlcmFjdGl2ZWx5IGhhbmRsZWQuCi0KLSAgICBUaGlzIGhvb2sgaXMg
b25seSBjYWxsZWQgaWYgYW4gZXhjZXB0aW9uIHdhcyByYWlzZWQKLSAgICB0aGF0IGlzIG5vdCBh
biBpbnRlcm5hbCBleGNlcHRpb24gbGlrZSBgYHNraXAuRXhjZXB0aW9uYGAuCi0gICAgIiIiCi0K
LQotZGVmIHB5dGVzdF9lbnRlcl9wZGIoY29uZmlnKToKLSAgICAiIiIgY2FsbGVkIHVwb24gcGRi
LnNldF90cmFjZSgpLCBjYW4gYmUgdXNlZCBieSBwbHVnaW5zIHRvIHRha2Ugc3BlY2lhbAotICAg
IGFjdGlvbiBqdXN0IGJlZm9yZSB0aGUgcHl0aG9uIGRlYnVnZ2VyIGVudGVycyBpbiBpbnRlcmFj
dGl2ZSBtb2RlLgotCi0gICAgOmFyZyBjb25maWc6IHB5dGVzdCBjb25maWcgb2JqZWN0Ci0gICAg
OnR5cGUgY29uZmlnOiBfcHl0ZXN0LmNvbmZpZy5Db25maWcKLSAgICAiIiIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvanVuaXR4bWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2p1
bml0eG1sLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZmI0MGRjMzU0ODc0ZjAz
NjRkZTBjODNhYzlmZjY2MWJjYTc3OWYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvanVuaXR4bWwucHkKKysrIC9kZXYv
bnVsbApAQCAtMSw0NTMgKzAsMCBAQAotIiIiCi0gICAgcmVwb3J0IHRlc3QgcmVzdWx0cyBpbiBK
VW5pdC1YTUwgZm9ybWF0LAotICAgIGZvciB1c2Ugd2l0aCBKZW5raW5zIGFuZCBidWlsZCBpbnRl
Z3JhdGlvbiBzZXJ2ZXJzLgotCi0KLUJhc2VkIG9uIGluaXRpYWwgY29kZSBmcm9tIFJvc3MgTGF3
bGV5LgotCi1PdXRwdXQgY29uZm9ybXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS94
dW5pdC1wbHVnaW4vYmxvYi9tYXN0ZXIvCi1zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2plbmtpbnNj
aS9wbHVnaW5zL3h1bml0L3R5cGVzL21vZGVsL3hzZC9qdW5pdC0xMC54c2QKLSIiIgotZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgotCi1pbXBvcnQgZnVuY3Rvb2xzCi1pbXBvcnQgcHkKLWltcG9ydCBvcwotaW1wb3J0IHJlCi1p
bXBvcnQgc3lzCi1pbXBvcnQgdGltZQotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0IGltcG9y
dCBub2RlcwotZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgZmlsZW5hbWVfYXJnCi0KLSMgUHl0
aG9uIDIuWCBhbmQgMy5YIGNvbXBhdGliaWxpdHkKLWlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPCAz
OgotICAgIGZyb20gY29kZWNzIGltcG9ydCBvcGVuCi1lbHNlOgotICAgIHVuaWNociA9IGNocgot
ICAgIHVuaWNvZGUgPSBzdHIKLSAgICBsb25nID0gaW50Ci0KLQotY2xhc3MgSnVuaXQocHkueG1s
Lk5hbWVzcGFjZSk6Ci0gICAgcGFzcwotCi0KLSMgV2UgbmVlZCB0byBnZXQgdGhlIHN1YnNldCBv
ZiB0aGUgaW52YWxpZCB1bmljb2RlIHJhbmdlcyBhY2NvcmRpbmcgdG8KLSMgWE1MIDEuMCB3aGlj
aCBhcmUgdmFsaWQgaW4gdGhpcyBweXRob24gYnVpbGQuICBIZW5jZSB3ZSBjYWxjdWxhdGUKLSMg
dGhpcyBkeW5hbWljYWxseSBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgaXQuICBUaGUgc3BlYyByYW5n
ZSBvZiB2YWxpZAotIyBjaGFycyBpczogQ2hhciA6Oj0gI3g5IHwgI3hBIHwgI3hEIHwgWyN4MjAt
I3hEN0ZGXSB8IFsjeEUwMDAtI3hGRkZEXQotIyAgICAgICAgICAgICAgICAgICAgfCBbI3gxMDAw
MC0jeDEwRkZGRl0KLV9sZWdhbF9jaGFycyA9ICgweDA5LCAweDBBLCAweDBkKQotX2xlZ2FsX3Jh
bmdlcyA9ICgKLSAgICAoMHgyMCwgMHg3RSksICgweDgwLCAweEQ3RkYpLCAoMHhFMDAwLCAweEZG
RkQpLCAoMHgxMDAwMCwgMHgxMEZGRkYpLAotKQotX2xlZ2FsX3htbF9yZSA9IFsKLSAgICB1bmlj
b2RlKCIlcy0lcyIpICUgKHVuaWNocihsb3cpLCB1bmljaHIoaGlnaCkpCi0gICAgZm9yIChsb3cs
IGhpZ2gpIGluIF9sZWdhbF9yYW5nZXMgaWYgbG93IDwgc3lzLm1heHVuaWNvZGUKLV0KLV9sZWdh
bF94bWxfcmUgPSBbdW5pY2hyKHgpIGZvciB4IGluIF9sZWdhbF9jaGFyc10gKyBfbGVnYWxfeG1s
X3JlCi1pbGxlZ2FsX3htbF9yZSA9IHJlLmNvbXBpbGUodW5pY29kZSgnW14lc10nKSAlIHVuaWNv
ZGUoJycpLmpvaW4oX2xlZ2FsX3htbF9yZSkpCi1kZWwgX2xlZ2FsX2NoYXJzCi1kZWwgX2xlZ2Fs
X3JhbmdlcwotZGVsIF9sZWdhbF94bWxfcmUKLQotX3B5X2V4dF9yZSA9IHJlLmNvbXBpbGUociJc
LnB5JCIpCi0KLQotZGVmIGJpbl94bWxfZXNjYXBlKGFyZyk6Ci0gICAgZGVmIHJlcGwobWF0Y2hv
YmopOgotICAgICAgICBpID0gb3JkKG1hdGNob2JqLmdyb3VwKCkpCi0gICAgICAgIGlmIGkgPD0g
MHhGRjoKLSAgICAgICAgICAgIHJldHVybiB1bmljb2RlKCcjeCUwMlgnKSAlIGkKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHJldHVybiB1bmljb2RlKCcjeCUwNFgnKSAlIGkKLQotICAgIHJl
dHVybiBweS54bWwucmF3KGlsbGVnYWxfeG1sX3JlLnN1YihyZXBsLCBweS54bWwuZXNjYXBlKGFy
ZykpKQotCi0KLWNsYXNzIF9Ob2RlUmVwb3J0ZXIob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgbm9kZWlkLCB4bWwpOgotCi0gICAgICAgIHNlbGYuaWQgPSBub2RlaWQKLSAgICAgICAg
c2VsZi54bWwgPSB4bWwKLSAgICAgICAgc2VsZi5hZGRfc3RhdHMgPSBzZWxmLnhtbC5hZGRfc3Rh
dHMKLSAgICAgICAgc2VsZi5kdXJhdGlvbiA9IDAKLSAgICAgICAgc2VsZi5wcm9wZXJ0aWVzID0g
W10KLSAgICAgICAgc2VsZi5ub2RlcyA9IFtdCi0gICAgICAgIHNlbGYudGVzdGNhc2UgPSBOb25l
Ci0gICAgICAgIHNlbGYuYXR0cnMgPSB7fQotCi0gICAgZGVmIGFwcGVuZChzZWxmLCBub2RlKToK
LSAgICAgICAgc2VsZi54bWwuYWRkX3N0YXRzKHR5cGUobm9kZSkuX19uYW1lX18pCi0gICAgICAg
IHNlbGYubm9kZXMuYXBwZW5kKG5vZGUpCi0KLSAgICBkZWYgYWRkX3Byb3BlcnR5KHNlbGYsIG5h
bWUsIHZhbHVlKToKLSAgICAgICAgc2VsZi5wcm9wZXJ0aWVzLmFwcGVuZCgoc3RyKG5hbWUpLCBi
aW5feG1sX2VzY2FwZSh2YWx1ZSkpKQotCi0gICAgZGVmIG1ha2VfcHJvcGVydGllc19ub2RlKHNl
bGYpOgotICAgICAgICAiIiJSZXR1cm4gYSBKdW5pdCBub2RlIGNvbnRhaW5pbmcgY3VzdG9tIHBy
b3BlcnRpZXMsIGlmIGFueS4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYucHJvcGVydGll
czoKLSAgICAgICAgICAgIHJldHVybiBKdW5pdC5wcm9wZXJ0aWVzKFsKLSAgICAgICAgICAgICAg
ICBKdW5pdC5wcm9wZXJ0eShuYW1lPW5hbWUsIHZhbHVlPXZhbHVlKQotICAgICAgICAgICAgICAg
IGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLnByb3BlcnRpZXMKLSAgICAgICAgICAgIF0pCi0gICAg
ICAgIHJldHVybiAnJwotCi0gICAgZGVmIHJlY29yZF90ZXN0cmVwb3J0KHNlbGYsIHRlc3RyZXBv
cnQpOgotICAgICAgICBhc3NlcnQgbm90IHNlbGYudGVzdGNhc2UKLSAgICAgICAgbmFtZXMgPSBt
YW5nbGVfdGVzdF9hZGRyZXNzKHRlc3RyZXBvcnQubm9kZWlkKQotICAgICAgICBjbGFzc25hbWVz
ID0gbmFtZXNbOi0xXQotICAgICAgICBpZiBzZWxmLnhtbC5wcmVmaXg6Ci0gICAgICAgICAgICBj
bGFzc25hbWVzLmluc2VydCgwLCBzZWxmLnhtbC5wcmVmaXgpCi0gICAgICAgIGF0dHJzID0gewot
ICAgICAgICAgICAgImNsYXNzbmFtZSI6ICIuIi5qb2luKGNsYXNzbmFtZXMpLAotICAgICAgICAg
ICAgIm5hbWUiOiBiaW5feG1sX2VzY2FwZShuYW1lc1stMV0pLAotICAgICAgICAgICAgImZpbGUi
OiB0ZXN0cmVwb3J0LmxvY2F0aW9uWzBdLAotICAgICAgICB9Ci0gICAgICAgIGlmIHRlc3RyZXBv
cnQubG9jYXRpb25bMV0gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBhdHRyc1sibGluZSJdID0g
dGVzdHJlcG9ydC5sb2NhdGlvblsxXQotICAgICAgICBpZiBoYXNhdHRyKHRlc3RyZXBvcnQsICJ1
cmwiKToKLSAgICAgICAgICAgIGF0dHJzWyJ1cmwiXSA9IHRlc3RyZXBvcnQudXJsCi0gICAgICAg
IHNlbGYuYXR0cnMgPSBhdHRycwotCi0gICAgZGVmIHRvX3htbChzZWxmKToKLSAgICAgICAgdGVz
dGNhc2UgPSBKdW5pdC50ZXN0Y2FzZSh0aW1lPXNlbGYuZHVyYXRpb24sICoqc2VsZi5hdHRycykK
LSAgICAgICAgdGVzdGNhc2UuYXBwZW5kKHNlbGYubWFrZV9wcm9wZXJ0aWVzX25vZGUoKSkKLSAg
ICAgICAgZm9yIG5vZGUgaW4gc2VsZi5ub2RlczoKLSAgICAgICAgICAgIHRlc3RjYXNlLmFwcGVu
ZChub2RlKQotICAgICAgICByZXR1cm4gdGVzdGNhc2UKLQotICAgIGRlZiBfYWRkX3NpbXBsZShz
ZWxmLCBraW5kLCBtZXNzYWdlLCBkYXRhPU5vbmUpOgotICAgICAgICBkYXRhID0gYmluX3htbF9l
c2NhcGUoZGF0YSkKLSAgICAgICAgbm9kZSA9IGtpbmQoZGF0YSwgbWVzc2FnZT1tZXNzYWdlKQot
ICAgICAgICBzZWxmLmFwcGVuZChub2RlKQotCi0gICAgZGVmIHdyaXRlX2NhcHR1cmVkX291dHB1
dChzZWxmLCByZXBvcnQpOgotICAgICAgICBmb3IgY2FwbmFtZSBpbiAoJ291dCcsICdlcnInKToK
LSAgICAgICAgICAgIGNvbnRlbnQgPSBnZXRhdHRyKHJlcG9ydCwgJ2NhcHN0ZCcgKyBjYXBuYW1l
KQotICAgICAgICAgICAgaWYgY29udGVudDoKLSAgICAgICAgICAgICAgICB0YWcgPSBnZXRhdHRy
KEp1bml0LCAnc3lzdGVtLScgKyBjYXBuYW1lKQotICAgICAgICAgICAgICAgIHNlbGYuYXBwZW5k
KHRhZyhiaW5feG1sX2VzY2FwZShjb250ZW50KSkpCi0KLSAgICBkZWYgYXBwZW5kX3Bhc3Moc2Vs
ZiwgcmVwb3J0KToKLSAgICAgICAgc2VsZi5hZGRfc3RhdHMoJ3Bhc3NlZCcpCi0KLSAgICBkZWYg
YXBwZW5kX2ZhaWx1cmUoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgIyBtc2cgPSBzdHIocmVwb3J0
LmxvbmdyZXByLnJlcHJ0cmFjZWJhY2suZXh0cmFsaW5lKQotICAgICAgICBpZiBoYXNhdHRyKHJl
cG9ydCwgIndhc3hmYWlsIik6Ci0gICAgICAgICAgICBzZWxmLl9hZGRfc2ltcGxlKAotICAgICAg
ICAgICAgICAgIEp1bml0LnNraXBwZWQsCi0gICAgICAgICAgICAgICAgInhmYWlsLW1hcmtlZCB0
ZXN0IHBhc3NlcyB1bmV4cGVjdGVkbHkiKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYg
aGFzYXR0cihyZXBvcnQubG9uZ3JlcHIsICJyZXByY3Jhc2giKToKLSAgICAgICAgICAgICAgICBt
ZXNzYWdlID0gcmVwb3J0LmxvbmdyZXByLnJlcHJjcmFzaC5tZXNzYWdlCi0gICAgICAgICAgICBl
bGlmIGlzaW5zdGFuY2UocmVwb3J0LmxvbmdyZXByLCAodW5pY29kZSwgc3RyKSk6Ci0gICAgICAg
ICAgICAgICAgbWVzc2FnZSA9IHJlcG9ydC5sb25ncmVwcgotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gc3RyKHJlcG9ydC5sb25ncmVwcikKLSAgICAgICAgICAg
IG1lc3NhZ2UgPSBiaW5feG1sX2VzY2FwZShtZXNzYWdlKQotICAgICAgICAgICAgZmFpbCA9IEp1
bml0LmZhaWx1cmUobWVzc2FnZT1tZXNzYWdlKQotICAgICAgICAgICAgZmFpbC5hcHBlbmQoYmlu
X3htbF9lc2NhcGUocmVwb3J0LmxvbmdyZXByKSkKLSAgICAgICAgICAgIHNlbGYuYXBwZW5kKGZh
aWwpCi0KLSAgICBkZWYgYXBwZW5kX2NvbGxlY3RfZXJyb3Ioc2VsZiwgcmVwb3J0KToKLSAgICAg
ICAgIyBtc2cgPSBzdHIocmVwb3J0LmxvbmdyZXByLnJlcHJ0cmFjZWJhY2suZXh0cmFsaW5lKQot
ICAgICAgICBzZWxmLmFwcGVuZChKdW5pdC5lcnJvcihiaW5feG1sX2VzY2FwZShyZXBvcnQubG9u
Z3JlcHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSJjb2xsZWN0
aW9uIGZhaWx1cmUiKSkKLQotICAgIGRlZiBhcHBlbmRfY29sbGVjdF9za2lwcGVkKHNlbGYsIHJl
cG9ydCk6Ci0gICAgICAgIHNlbGYuX2FkZF9zaW1wbGUoCi0gICAgICAgICAgICBKdW5pdC5za2lw
cGVkLCAiY29sbGVjdGlvbiBza2lwcGVkIiwgcmVwb3J0LmxvbmdyZXByKQotCi0gICAgZGVmIGFw
cGVuZF9lcnJvcihzZWxmLCByZXBvcnQpOgotICAgICAgICBpZiBnZXRhdHRyKHJlcG9ydCwgJ3do
ZW4nLCBOb25lKSA9PSAndGVhcmRvd24nOgotICAgICAgICAgICAgbXNnID0gInRlc3QgdGVhcmRv
d24gZmFpbHVyZSIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG1zZyA9ICJ0ZXN0IHNldHVw
IGZhaWx1cmUiCi0gICAgICAgIHNlbGYuX2FkZF9zaW1wbGUoCi0gICAgICAgICAgICBKdW5pdC5l
cnJvciwgbXNnLCByZXBvcnQubG9uZ3JlcHIpCi0KLSAgICBkZWYgYXBwZW5kX3NraXBwZWQoc2Vs
ZiwgcmVwb3J0KToKLSAgICAgICAgaWYgaGFzYXR0cihyZXBvcnQsICJ3YXN4ZmFpbCIpOgotICAg
ICAgICAgICAgc2VsZi5fYWRkX3NpbXBsZSgKLSAgICAgICAgICAgICAgICBKdW5pdC5za2lwcGVk
LCAiZXhwZWN0ZWQgdGVzdCBmYWlsdXJlIiwgcmVwb3J0Lndhc3hmYWlsCi0gICAgICAgICAgICAp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmaWxlbmFtZSwgbGluZW5vLCBza2lwcmVhc29u
ID0gcmVwb3J0LmxvbmdyZXByCi0gICAgICAgICAgICBpZiBza2lwcmVhc29uLnN0YXJ0c3dpdGgo
IlNraXBwZWQ6ICIpOgotICAgICAgICAgICAgICAgIHNraXByZWFzb24gPSBiaW5feG1sX2VzY2Fw
ZShza2lwcmVhc29uWzk6XSkKLSAgICAgICAgICAgIHNlbGYuYXBwZW5kKAotICAgICAgICAgICAg
ICAgIEp1bml0LnNraXBwZWQoIiVzOiVzOiAlcyIgJSAoZmlsZW5hbWUsIGxpbmVubywgc2tpcHJl
YXNvbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJweXRlc3Quc2tpcCIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXNraXByZWFzb24pKQotICAg
ICAgICBzZWxmLndyaXRlX2NhcHR1cmVkX291dHB1dChyZXBvcnQpCi0KLSAgICBkZWYgZmluYWxp
emUoc2VsZik6Ci0gICAgICAgIGRhdGEgPSBzZWxmLnRvX3htbCgpLnVuaWNvZGUoaW5kZW50PTAp
Ci0gICAgICAgIHNlbGYuX19kaWN0X18uY2xlYXIoKQotICAgICAgICBzZWxmLnRvX3htbCA9IGxh
bWJkYTogcHkueG1sLnJhdyhkYXRhKQotCi0KLUBweXRlc3QuZml4dHVyZQotZGVmIHJlY29yZF94
bWxfcHJvcGVydHkocmVxdWVzdCk6Ci0gICAgIiIiQWRkIGV4dHJhIHhtbCBwcm9wZXJ0aWVzIHRv
IHRoZSB0YWcgZm9yIHRoZSBjYWxsaW5nIHRlc3QuCi0gICAgVGhlIGZpeHR1cmUgaXMgY2FsbGFi
bGUgd2l0aCBgYChuYW1lLCB2YWx1ZSlgYCwgd2l0aCB2YWx1ZSBiZWluZyBhdXRvbWF0aWNhbGx5
Ci0gICAgeG1sLWVuY29kZWQuCi0gICAgIiIiCi0gICAgcmVxdWVzdC5ub2RlLndhcm4oCi0gICAg
ICAgIGNvZGU9J0MzJywKLSAgICAgICAgbWVzc2FnZT0ncmVjb3JkX3htbF9wcm9wZXJ0eSBpcyBh
biBleHBlcmltZW50YWwgZmVhdHVyZScsCi0gICAgKQotICAgIHhtbCA9IGdldGF0dHIocmVxdWVz
dC5jb25maWcsICJfeG1sIiwgTm9uZSkKLSAgICBpZiB4bWwgaXMgbm90IE5vbmU6Ci0gICAgICAg
IG5vZGVfcmVwb3J0ZXIgPSB4bWwubm9kZV9yZXBvcnRlcihyZXF1ZXN0Lm5vZGUubm9kZWlkKQot
ICAgICAgICByZXR1cm4gbm9kZV9yZXBvcnRlci5hZGRfcHJvcGVydHkKLSAgICBlbHNlOgotICAg
ICAgICBkZWYgYWRkX3Byb3BlcnR5X25vb3AobmFtZSwgdmFsdWUpOgotICAgICAgICAgICAgcGFz
cwotCi0gICAgICAgIHJldHVybiBhZGRfcHJvcGVydHlfbm9vcAotCi0KLWRlZiBweXRlc3RfYWRk
b3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInRlcm1pbmFsIHJl
cG9ydGluZyIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKAotICAgICAgICAnLS1qdW5pdHhtbCcsICct
LWp1bml0LXhtbCcsCi0gICAgICAgIGFjdGlvbj0ic3RvcmUiLAotICAgICAgICBkZXN0PSJ4bWxw
YXRoIiwKLSAgICAgICAgbWV0YXZhcj0icGF0aCIsCi0gICAgICAgIHR5cGU9ZnVuY3Rvb2xzLnBh
cnRpYWwoZmlsZW5hbWVfYXJnLCBvcHRuYW1lPSItLWp1bml0eG1sIiksCi0gICAgICAgIGRlZmF1
bHQ9Tm9uZSwKLSAgICAgICAgaGVscD0iY3JlYXRlIGp1bml0LXhtbCBzdHlsZSByZXBvcnQgZmls
ZSBhdCBnaXZlbiBwYXRoLiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKAotICAgICAgICAnLS1qdW5p
dHByZWZpeCcsICctLWp1bml0LXByZWZpeCcsCi0gICAgICAgIGFjdGlvbj0ic3RvcmUiLAotICAg
ICAgICBtZXRhdmFyPSJzdHIiLAotICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgIGhlbHA9
InByZXBlbmQgcHJlZml4IHRvIGNsYXNzbmFtZXMgaW4ganVuaXQteG1sIG91dHB1dCIpCi0gICAg
cGFyc2VyLmFkZGluaSgianVuaXRfc3VpdGVfbmFtZSIsICJUZXN0IHN1aXRlIG5hbWUgZm9yIEpV
bml0IHJlcG9ydCIsIGRlZmF1bHQ9InB5dGVzdCIpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUo
Y29uZmlnKToKLSAgICB4bWxwYXRoID0gY29uZmlnLm9wdGlvbi54bWxwYXRoCi0gICAgIyBwcmV2
ZW50IG9wZW5pbmcgeG1sbG9nIG9uIHNsYXZlIG5vZGVzICh4ZGlzdCkKLSAgICBpZiB4bWxwYXRo
IGFuZCBub3QgaGFzYXR0cihjb25maWcsICdzbGF2ZWlucHV0Jyk6Ci0gICAgICAgIGNvbmZpZy5f
eG1sID0gTG9nWE1MKHhtbHBhdGgsIGNvbmZpZy5vcHRpb24uanVuaXRwcmVmaXgsIGNvbmZpZy5n
ZXRpbmkoImp1bml0X3N1aXRlX25hbWUiKSkKLSAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIu
cmVnaXN0ZXIoY29uZmlnLl94bWwpCi0KLQotZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShjb25maWcp
OgotICAgIHhtbCA9IGdldGF0dHIoY29uZmlnLCAnX3htbCcsIE5vbmUpCi0gICAgaWYgeG1sOgot
ICAgICAgICBkZWwgY29uZmlnLl94bWwKLSAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIudW5y
ZWdpc3Rlcih4bWwpCi0KLQotZGVmIG1hbmdsZV90ZXN0X2FkZHJlc3MoYWRkcmVzcyk6Ci0gICAg
cGF0aCwgcG9zc2libGVfb3Blbl9icmFja2V0LCBwYXJhbXMgPSBhZGRyZXNzLnBhcnRpdGlvbign
WycpCi0gICAgbmFtZXMgPSBwYXRoLnNwbGl0KCI6OiIpCi0gICAgdHJ5OgotICAgICAgICBuYW1l
cy5yZW1vdmUoJygpJykKLSAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgcGFzcwotICAg
ICMgY29udmVydCBmaWxlIHBhdGggdG8gZG90dGVkIHBhdGgKLSAgICBuYW1lc1swXSA9IG5hbWVz
WzBdLnJlcGxhY2Uobm9kZXMuU0VQLCAnLicpCi0gICAgbmFtZXNbMF0gPSBfcHlfZXh0X3JlLnN1
YigiIiwgbmFtZXNbMF0pCi0gICAgIyBwdXQgYW55IHBhcmFtcyBiYWNrCi0gICAgbmFtZXNbLTFd
ICs9IHBvc3NpYmxlX29wZW5fYnJhY2tldCArIHBhcmFtcwotICAgIHJldHVybiBuYW1lcwotCi0K
LWNsYXNzIExvZ1hNTChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dmaWxlLCBw
cmVmaXgsIHN1aXRlX25hbWU9InB5dGVzdCIpOgotICAgICAgICBsb2dmaWxlID0gb3MucGF0aC5l
eHBhbmR1c2VyKG9zLnBhdGguZXhwYW5kdmFycyhsb2dmaWxlKSkKLSAgICAgICAgc2VsZi5sb2dm
aWxlID0gb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmFic3BhdGgobG9nZmlsZSkpCi0gICAgICAg
IHNlbGYucHJlZml4ID0gcHJlZml4Ci0gICAgICAgIHNlbGYuc3VpdGVfbmFtZSA9IHN1aXRlX25h
bWUKLSAgICAgICAgc2VsZi5zdGF0cyA9IGRpY3QuZnJvbWtleXMoWwotICAgICAgICAgICAgJ2Vy
cm9yJywKLSAgICAgICAgICAgICdwYXNzZWQnLAotICAgICAgICAgICAgJ2ZhaWx1cmUnLAotICAg
ICAgICAgICAgJ3NraXBwZWQnLAotICAgICAgICBdLCAwKQotICAgICAgICBzZWxmLm5vZGVfcmVw
b3J0ZXJzID0ge30gICMgbm9kZWlkIC0+IF9Ob2RlUmVwb3J0ZXIKLSAgICAgICAgc2VsZi5ub2Rl
X3JlcG9ydGVyc19vcmRlcmVkID0gW10KLSAgICAgICAgc2VsZi5nbG9iYWxfcHJvcGVydGllcyA9
IFtdCi0gICAgICAgICMgTGlzdCBvZiByZXBvcnRzIHRoYXQgZmFpbGVkIG9uIGNhbGwgYnV0IHRl
YXJkb3duIGlzIHBlbmRpbmcuCi0gICAgICAgIHNlbGYub3Blbl9yZXBvcnRzID0gW10KLSAgICAg
ICAgc2VsZi5jbnRfZG91YmxlX2ZhaWxfdGVzdHMgPSAwCi0KLSAgICBkZWYgZmluYWxpemUoc2Vs
ZiwgcmVwb3J0KToKLSAgICAgICAgbm9kZWlkID0gZ2V0YXR0cihyZXBvcnQsICdub2RlaWQnLCBy
ZXBvcnQpCi0gICAgICAgICMgbG9jYWwgaGFjayB0byBoYW5kbGUgeGRpc3QgcmVwb3J0IG9yZGVy
Ci0gICAgICAgIHNsYXZlbm9kZSA9IGdldGF0dHIocmVwb3J0LCAnbm9kZScsIE5vbmUpCi0gICAg
ICAgIHJlcG9ydGVyID0gc2VsZi5ub2RlX3JlcG9ydGVycy5wb3AoKG5vZGVpZCwgc2xhdmVub2Rl
KSkKLSAgICAgICAgaWYgcmVwb3J0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXBvcnRl
ci5maW5hbGl6ZSgpCi0KLSAgICBkZWYgbm9kZV9yZXBvcnRlcihzZWxmLCByZXBvcnQpOgotICAg
ICAgICBub2RlaWQgPSBnZXRhdHRyKHJlcG9ydCwgJ25vZGVpZCcsIHJlcG9ydCkKLSAgICAgICAg
IyBsb2NhbCBoYWNrIHRvIGhhbmRsZSB4ZGlzdCByZXBvcnQgb3JkZXIKLSAgICAgICAgc2xhdmVu
b2RlID0gZ2V0YXR0cihyZXBvcnQsICdub2RlJywgTm9uZSkKLQotICAgICAgICBrZXkgPSBub2Rl
aWQsIHNsYXZlbm9kZQotCi0gICAgICAgIGlmIGtleSBpbiBzZWxmLm5vZGVfcmVwb3J0ZXJzOgot
ICAgICAgICAgICAgIyBUT0RPOiBicmVhc2tzIGZvciAtLWRpc3Q9ZWFjaAotICAgICAgICAgICAg
cmV0dXJuIHNlbGYubm9kZV9yZXBvcnRlcnNba2V5XQotCi0gICAgICAgIHJlcG9ydGVyID0gX05v
ZGVSZXBvcnRlcihub2RlaWQsIHNlbGYpCi0KLSAgICAgICAgc2VsZi5ub2RlX3JlcG9ydGVyc1tr
ZXldID0gcmVwb3J0ZXIKLSAgICAgICAgc2VsZi5ub2RlX3JlcG9ydGVyc19vcmRlcmVkLmFwcGVu
ZChyZXBvcnRlcikKLQotICAgICAgICByZXR1cm4gcmVwb3J0ZXIKLQotICAgIGRlZiBhZGRfc3Rh
dHMoc2VsZiwga2V5KToKLSAgICAgICAgaWYga2V5IGluIHNlbGYuc3RhdHM6Ci0gICAgICAgICAg
ICBzZWxmLnN0YXRzW2tleV0gKz0gMQotCi0gICAgZGVmIF9vcGVudGVzdGNhc2Uoc2VsZiwgcmVw
b3J0KToKLSAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLm5vZGVfcmVwb3J0ZXIocmVwb3J0KQotICAg
ICAgICByZXBvcnRlci5yZWNvcmRfdGVzdHJlcG9ydChyZXBvcnQpCi0gICAgICAgIHJldHVybiBy
ZXBvcnRlcgotCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxmLCByZXBvcnQp
OgotICAgICAgICAiIiJoYW5kbGUgYSBzZXR1cC9jYWxsL3RlYXJkb3duIHJlcG9ydCwgZ2VuZXJh
dGluZyB0aGUgYXBwcm9wcmlhdGUKLSAgICAgICAgeG1sIHRhZ3MgYXMgbmVjZXNzYXJ5LgotCi0g
ICAgICAgIG5vdGU6IGR1ZSB0byBwbHVnaW5zIGxpa2UgeGRpc3QsIHRoaXMgaG9vayBtYXkgYmUg
Y2FsbGVkIGluIGludGVybGFjZWQKLSAgICAgICAgb3JkZXIgd2l0aCByZXBvcnRzIGZyb20gb3Ro
ZXIgbm9kZXMuIGZvciBleGFtcGxlOgotCi0gICAgICAgIHVzdWFsIGNhbGwgb3JkZXI6Ci0gICAg
ICAgICAgICAtPiBzZXR1cCBub2RlMQotICAgICAgICAgICAgLT4gY2FsbCBub2RlMQotICAgICAg
ICAgICAgLT4gdGVhcmRvd24gbm9kZTEKLSAgICAgICAgICAgIC0+IHNldHVwIG5vZGUyCi0gICAg
ICAgICAgICAtPiBjYWxsIG5vZGUyCi0gICAgICAgICAgICAtPiB0ZWFyZG93biBub2RlMgotCi0g
ICAgICAgIHBvc3NpYmxlIGNhbGwgb3JkZXIgaW4geGRpc3Q6Ci0gICAgICAgICAgICAtPiBzZXR1
cCBub2RlMQotICAgICAgICAgICAgLT4gY2FsbCBub2RlMQotICAgICAgICAgICAgLT4gc2V0dXAg
bm9kZTIKLSAgICAgICAgICAgIC0+IGNhbGwgbm9kZTIKLSAgICAgICAgICAgIC0+IHRlYXJkb3du
IG5vZGUyCi0gICAgICAgICAgICAtPiB0ZWFyZG93biBub2RlMQotICAgICAgICAiIiIKLSAgICAg
ICAgY2xvc2VfcmVwb3J0ID0gTm9uZQotICAgICAgICBpZiByZXBvcnQucGFzc2VkOgotICAgICAg
ICAgICAgaWYgcmVwb3J0LndoZW4gPT0gImNhbGwiOiAgIyBpZ25vcmUgc2V0dXAvdGVhcmRvd24K
LSAgICAgICAgICAgICAgICByZXBvcnRlciA9IHNlbGYuX29wZW50ZXN0Y2FzZShyZXBvcnQpCi0g
ICAgICAgICAgICAgICAgcmVwb3J0ZXIuYXBwZW5kX3Bhc3MocmVwb3J0KQotICAgICAgICBlbGlm
IHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgICAgICBpZiByZXBvcnQud2hlbiA9PSAidGVhcmRvd24i
OgotICAgICAgICAgICAgICAgICMgVGhlIGZvbGxvd2luZyB2YXJzIGFyZSBuZWVkZWQgd2hlbiB4
ZGlzdCBwbHVnaW4gaXMgdXNlZAotICAgICAgICAgICAgICAgIHJlcG9ydF93aWQgPSBnZXRhdHRy
KHJlcG9ydCwgIndvcmtlcl9pZCIsIE5vbmUpCi0gICAgICAgICAgICAgICAgcmVwb3J0X2lpID0g
Z2V0YXR0cihyZXBvcnQsICJpdGVtX2luZGV4IiwgTm9uZSkKLSAgICAgICAgICAgICAgICBjbG9z
ZV9yZXBvcnQgPSBuZXh0KAotICAgICAgICAgICAgICAgICAgICAocmVwIGZvciByZXAgaW4gc2Vs
Zi5vcGVuX3JlcG9ydHMKLSAgICAgICAgICAgICAgICAgICAgIGlmIChyZXAubm9kZWlkID09IHJl
cG9ydC5ub2RlaWQgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cihyZXAsICJp
dGVtX2luZGV4IiwgTm9uZSkgPT0gcmVwb3J0X2lpIGFuZAotICAgICAgICAgICAgICAgICAgICAg
ICAgIGdldGF0dHIocmVwLCAid29ya2VyX2lkIiwgTm9uZSkgPT0gcmVwb3J0X3dpZAotICAgICAg
ICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgICksIE5vbmUpCi0gICAg
ICAgICAgICAgICAgaWYgY2xvc2VfcmVwb3J0OgotICAgICAgICAgICAgICAgICAgICAjIFdlIG5l
ZWQgdG8gb3BlbiBuZXcgdGVzdGNhc2UgaW4gY2FzZSB3ZSBoYXZlIGZhaWx1cmUgaW4KLSAgICAg
ICAgICAgICAgICAgICAgIyBjYWxsIGFuZCBlcnJvciBpbiB0ZWFyZG93biBpbiBvcmRlciB0byBm
b2xsb3cganVuaXQKLSAgICAgICAgICAgICAgICAgICAgIyBzY2hlbWEKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5maW5hbGl6ZShjbG9zZV9yZXBvcnQpCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuY250X2RvdWJsZV9mYWlsX3Rlc3RzICs9IDEKLSAgICAgICAgICAgIHJlcG9ydGVyID0gc2Vs
Zi5fb3BlbnRlc3RjYXNlKHJlcG9ydCkKLSAgICAgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJj
YWxsIjoKLSAgICAgICAgICAgICAgICByZXBvcnRlci5hcHBlbmRfZmFpbHVyZShyZXBvcnQpCi0g
ICAgICAgICAgICAgICAgc2VsZi5vcGVuX3JlcG9ydHMuYXBwZW5kKHJlcG9ydCkKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmVwb3J0ZXIuYXBwZW5kX2Vycm9yKHJlcG9ydCkK
LSAgICAgICAgZWxpZiByZXBvcnQuc2tpcHBlZDoKLSAgICAgICAgICAgIHJlcG9ydGVyID0gc2Vs
Zi5fb3BlbnRlc3RjYXNlKHJlcG9ydCkKLSAgICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9za2lw
cGVkKHJlcG9ydCkKLSAgICAgICAgc2VsZi51cGRhdGVfdGVzdGNhc2VfZHVyYXRpb24ocmVwb3J0
KQotICAgICAgICBpZiByZXBvcnQud2hlbiA9PSAidGVhcmRvd24iOgotICAgICAgICAgICAgcmVw
b3J0ZXIgPSBzZWxmLl9vcGVudGVzdGNhc2UocmVwb3J0KQotICAgICAgICAgICAgcmVwb3J0ZXIu
d3JpdGVfY2FwdHVyZWRfb3V0cHV0KHJlcG9ydCkKLSAgICAgICAgICAgIHNlbGYuZmluYWxpemUo
cmVwb3J0KQotICAgICAgICAgICAgcmVwb3J0X3dpZCA9IGdldGF0dHIocmVwb3J0LCAid29ya2Vy
X2lkIiwgTm9uZSkKLSAgICAgICAgICAgIHJlcG9ydF9paSA9IGdldGF0dHIocmVwb3J0LCAiaXRl
bV9pbmRleCIsIE5vbmUpCi0gICAgICAgICAgICBjbG9zZV9yZXBvcnQgPSBuZXh0KAotICAgICAg
ICAgICAgICAgIChyZXAgZm9yIHJlcCBpbiBzZWxmLm9wZW5fcmVwb3J0cwotICAgICAgICAgICAg
ICAgICBpZiAocmVwLm5vZGVpZCA9PSByZXBvcnQubm9kZWlkIGFuZAotICAgICAgICAgICAgICAg
ICAgICAgZ2V0YXR0cihyZXAsICJpdGVtX2luZGV4IiwgTm9uZSkgPT0gcmVwb3J0X2lpIGFuZAot
ICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cihyZXAsICJ3b3JrZXJfaWQiLCBOb25lKSA9PSBy
ZXBvcnRfd2lkCi0gICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICksIE5v
bmUpCi0gICAgICAgICAgICBpZiBjbG9zZV9yZXBvcnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5v
cGVuX3JlcG9ydHMucmVtb3ZlKGNsb3NlX3JlcG9ydCkKLQotICAgIGRlZiB1cGRhdGVfdGVzdGNh
c2VfZHVyYXRpb24oc2VsZiwgcmVwb3J0KToKLSAgICAgICAgIiIiYWNjdW11bGF0ZXMgdG90YWwg
ZHVyYXRpb24gZm9yIG5vZGVpZCBmcm9tIGdpdmVuIHJlcG9ydCBhbmQgdXBkYXRlcwotICAgICAg
ICB0aGUgSnVuaXQudGVzdGNhc2Ugd2l0aCB0aGUgbmV3IHRvdGFsIGlmIGFscmVhZHkgY3JlYXRl
ZC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJlcG9ydGVyID0gc2VsZi5ub2RlX3JlcG9ydGVyKHJl
cG9ydCkKLSAgICAgICAgcmVwb3J0ZXIuZHVyYXRpb24gKz0gZ2V0YXR0cihyZXBvcnQsICdkdXJh
dGlvbicsIDAuMCkKLQotICAgIGRlZiBweXRlc3RfY29sbGVjdHJlcG9ydChzZWxmLCByZXBvcnQp
OgotICAgICAgICBpZiBub3QgcmVwb3J0LnBhc3NlZDoKLSAgICAgICAgICAgIHJlcG9ydGVyID0g
c2VsZi5fb3BlbnRlc3RjYXNlKHJlcG9ydCkKLSAgICAgICAgICAgIGlmIHJlcG9ydC5mYWlsZWQ6
Ci0gICAgICAgICAgICAgICAgcmVwb3J0ZXIuYXBwZW5kX2NvbGxlY3RfZXJyb3IocmVwb3J0KQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXBvcnRlci5hcHBlbmRfY29sbGVj
dF9za2lwcGVkKHJlcG9ydCkKLQotICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCBl
eGNyZXByKToKLSAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLm5vZGVfcmVwb3J0ZXIoJ2ludGVybmFs
JykKLSAgICAgICAgcmVwb3J0ZXIuYXR0cnMudXBkYXRlKGNsYXNzbmFtZT0icHl0ZXN0IiwgbmFt
ZT0naW50ZXJuYWwnKQotICAgICAgICByZXBvcnRlci5fYWRkX3NpbXBsZShKdW5pdC5lcnJvciwg
J2ludGVybmFsIGVycm9yJywgZXhjcmVwcikKLQotICAgIGRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0
KHNlbGYpOgotICAgICAgICBzZWxmLnN1aXRlX3N0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQotCi0g
ICAgZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNlbGYpOgotICAgICAgICBkaXJuYW1lID0gb3Mu
cGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChzZWxmLmxvZ2ZpbGUpKQotICAgICAgICBpZiBu
b3Qgb3MucGF0aC5pc2RpcihkaXJuYW1lKToKLSAgICAgICAgICAgIG9zLm1ha2VkaXJzKGRpcm5h
bWUpCi0gICAgICAgIGxvZ2ZpbGUgPSBvcGVuKHNlbGYubG9nZmlsZSwgJ3cnLCBlbmNvZGluZz0n
dXRmLTgnKQotICAgICAgICBzdWl0ZV9zdG9wX3RpbWUgPSB0aW1lLnRpbWUoKQotICAgICAgICBz
dWl0ZV90aW1lX2RlbHRhID0gc3VpdGVfc3RvcF90aW1lIC0gc2VsZi5zdWl0ZV9zdGFydF90aW1l
Ci0KLSAgICAgICAgbnVtdGVzdHMgPSAoc2VsZi5zdGF0c1sncGFzc2VkJ10gKyBzZWxmLnN0YXRz
WydmYWlsdXJlJ10gKwotICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRzWydza2lwcGVkJ10g
KyBzZWxmLnN0YXRzWydlcnJvciddIC0KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5jbnRfZG91
YmxlX2ZhaWxfdGVzdHMpCi0gICAgICAgIGxvZ2ZpbGUud3JpdGUoJzw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9InV0Zi04Ij8+JykKLQotICAgICAgICBsb2dmaWxlLndyaXRlKEp1bml0LnRl
c3RzdWl0ZSgKLSAgICAgICAgICAgIHNlbGYuX2dldF9nbG9iYWxfcHJvcGVydGllc19ub2RlKCks
Ci0gICAgICAgICAgICBbeC50b194bWwoKSBmb3IgeCBpbiBzZWxmLm5vZGVfcmVwb3J0ZXJzX29y
ZGVyZWRdLAotICAgICAgICAgICAgbmFtZT1zZWxmLnN1aXRlX25hbWUsCi0gICAgICAgICAgICBl
cnJvcnM9c2VsZi5zdGF0c1snZXJyb3InXSwKLSAgICAgICAgICAgIGZhaWx1cmVzPXNlbGYuc3Rh
dHNbJ2ZhaWx1cmUnXSwKLSAgICAgICAgICAgIHNraXBzPXNlbGYuc3RhdHNbJ3NraXBwZWQnXSwK
LSAgICAgICAgICAgIHRlc3RzPW51bXRlc3RzLAotICAgICAgICAgICAgdGltZT0iJS4zZiIgJSBz
dWl0ZV90aW1lX2RlbHRhLCApLnVuaWNvZGUoaW5kZW50PTApKQotICAgICAgICBsb2dmaWxlLmNs
b3NlKCkKLQotICAgIGRlZiBweXRlc3RfdGVybWluYWxfc3VtbWFyeShzZWxmLCB0ZXJtaW5hbHJl
cG9ydGVyKToKLSAgICAgICAgdGVybWluYWxyZXBvcnRlci53cml0ZV9zZXAoIi0iLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ2VuZXJhdGVkIHhtbCBmaWxlOiAlcyIgJSAo
c2VsZi5sb2dmaWxlKSkKLQotICAgIGRlZiBhZGRfZ2xvYmFsX3Byb3BlcnR5KHNlbGYsIG5hbWUs
IHZhbHVlKToKLSAgICAgICAgc2VsZi5nbG9iYWxfcHJvcGVydGllcy5hcHBlbmQoKHN0cihuYW1l
KSwgYmluX3htbF9lc2NhcGUodmFsdWUpKSkKLQotICAgIGRlZiBfZ2V0X2dsb2JhbF9wcm9wZXJ0
aWVzX25vZGUoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiBhIEp1bml0IG5vZGUgY29udGFpbmlu
ZyBjdXN0b20gcHJvcGVydGllcywgaWYgYW55LgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2Vs
Zi5nbG9iYWxfcHJvcGVydGllczoKLSAgICAgICAgICAgIHJldHVybiBKdW5pdC5wcm9wZXJ0aWVz
KAotICAgICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgSnVuaXQucHJvcGVydHko
bmFtZT1uYW1lLCB2YWx1ZT12YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgZm9yIG5hbWUsIHZh
bHVlIGluIHNlbGYuZ2xvYmFsX3Byb3BlcnRpZXMKLSAgICAgICAgICAgICAgICBdCi0gICAgICAg
ICAgICApCi0gICAgICAgIHJldHVybiAnJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9sb2dnaW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9sb2dnaW5nLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlZDRkYjI1YWQ0NDMxZWZiMTc0ZmNhNWY4YWQ0ODFiZDM5OWU0
Y2NkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvbG9nZ2luZy5weQorKysgL2Rldi9udWxsCkBAIC0xLDMzNyArMCwwIEBA
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCi0KLWltcG9ydCBsb2dnaW5nCi1mcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNsb3Np
bmcsIGNvbnRleHRtYW5hZ2VyCi1pbXBvcnQgc3lzCi1pbXBvcnQgc2l4Ci0KLWltcG9ydCBweXRl
c3QKLWltcG9ydCBweQotCi0KLURFRkFVTFRfTE9HX0ZPUk1BVCA9ICclKGZpbGVuYW1lKS0yNXMg
JShsaW5lbm8pNGQgJShsZXZlbG5hbWUpLThzICUobWVzc2FnZSlzJwotREVGQVVMVF9MT0dfREFU
RV9GT1JNQVQgPSAnJUg6JU06JVMnCi0KLQotZGVmIGdldF9vcHRpb25faW5pKGNvbmZpZywgKm5h
bWVzKToKLSAgICBmb3IgbmFtZSBpbiBuYW1lczoKLSAgICAgICAgcmV0ID0gY29uZmlnLmdldG9w
dGlvbihuYW1lKSAgIyAnZGVmYXVsdCcgYXJnIHdvbid0IHdvcmsgYXMgZXhwZWN0ZWQKLSAgICAg
ICAgaWYgcmV0IGlzIE5vbmU6Ci0gICAgICAgICAgICByZXQgPSBjb25maWcuZ2V0aW5pKG5hbWUp
Ci0gICAgICAgIGlmIHJldDoKLSAgICAgICAgICAgIHJldHVybiByZXQKLQotCi1kZWYgcHl0ZXN0
X2FkZG9wdGlvbihwYXJzZXIpOgotICAgICIiIkFkZCBvcHRpb25zIHRvIGNvbnRyb2wgbG9nIGNh
cHR1cmluZy4iIiIKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgnbG9nZ2luZycpCi0KLSAg
ICBkZWYgYWRkX29wdGlvbl9pbmkob3B0aW9uLCBkZXN0LCBkZWZhdWx0PU5vbmUsIHR5cGU9Tm9u
ZSwgKiprd2FyZ3MpOgotICAgICAgICBwYXJzZXIuYWRkaW5pKGRlc3QsIGRlZmF1bHQ9ZGVmYXVs
dCwgdHlwZT10eXBlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2RlZmF1bHQgdmFsdWUg
Zm9yICcgKyBvcHRpb24pCi0gICAgICAgIGdyb3VwLmFkZG9wdGlvbihvcHRpb24sIGRlc3Q9ZGVz
dCwgKiprd2FyZ3MpCi0KLSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAgJy0tbm8tcHJpbnQt
bG9ncycsCi0gICAgICAgIGRlc3Q9J2xvZ19wcmludCcsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBj
b25zdD1GYWxzZSwgZGVmYXVsdD1UcnVlLAotICAgICAgICB0eXBlPSdib29sJywKLSAgICAgICAg
aGVscD0nZGlzYWJsZSBwcmludGluZyBjYXVnaHQgbG9ncyBvbiBmYWlsZWQgdGVzdHMuJykKLSAg
ICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAgJy0tbG9nLWxldmVsJywKLSAgICAgICAgZGVzdD0n
bG9nX2xldmVsJywgZGVmYXVsdD1Ob25lLAotICAgICAgICBoZWxwPSdsb2dnaW5nIGxldmVsIHVz
ZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlJykKLSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAg
Jy0tbG9nLWZvcm1hdCcsCi0gICAgICAgIGRlc3Q9J2xvZ19mb3JtYXQnLCBkZWZhdWx0PURFRkFV
TFRfTE9HX0ZPUk1BVCwKLSAgICAgICAgaGVscD0nbG9nIGZvcm1hdCBhcyB1c2VkIGJ5IHRoZSBs
b2dnaW5nIG1vZHVsZS4nKQotICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1sb2ctZGF0
ZS1mb3JtYXQnLAotICAgICAgICBkZXN0PSdsb2dfZGF0ZV9mb3JtYXQnLCBkZWZhdWx0PURFRkFV
TFRfTE9HX0RBVEVfRk9STUFULAotICAgICAgICBoZWxwPSdsb2cgZGF0ZSBmb3JtYXQgYXMgdXNl
ZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykKLSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAg
Jy0tbG9nLWNsaS1sZXZlbCcsCi0gICAgICAgIGRlc3Q9J2xvZ19jbGlfbGV2ZWwnLCBkZWZhdWx0
PU5vbmUsCi0gICAgICAgIGhlbHA9J2NsaSBsb2dnaW5nIGxldmVsLicpCi0gICAgYWRkX29wdGlv
bl9pbmkoCi0gICAgICAgICctLWxvZy1jbGktZm9ybWF0JywKLSAgICAgICAgZGVzdD0nbG9nX2Ns
aV9mb3JtYXQnLCBkZWZhdWx0PU5vbmUsCi0gICAgICAgIGhlbHA9J2xvZyBmb3JtYXQgYXMgdXNl
ZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykKLSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAg
Jy0tbG9nLWNsaS1kYXRlLWZvcm1hdCcsCi0gICAgICAgIGRlc3Q9J2xvZ19jbGlfZGF0ZV9mb3Jt
YXQnLCBkZWZhdWx0PU5vbmUsCi0gICAgICAgIGhlbHA9J2xvZyBkYXRlIGZvcm1hdCBhcyB1c2Vk
IGJ5IHRoZSBsb2dnaW5nIG1vZHVsZS4nKQotICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAn
LS1sb2ctZmlsZScsCi0gICAgICAgIGRlc3Q9J2xvZ19maWxlJywgZGVmYXVsdD1Ob25lLAotICAg
ICAgICBoZWxwPSdwYXRoIHRvIGEgZmlsZSB3aGVuIGxvZ2dpbmcgd2lsbCBiZSB3cml0dGVuIHRv
LicpCi0gICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICctLWxvZy1maWxlLWxldmVsJywKLSAg
ICAgICAgZGVzdD0nbG9nX2ZpbGVfbGV2ZWwnLCBkZWZhdWx0PU5vbmUsCi0gICAgICAgIGhlbHA9
J2xvZyBmaWxlIGxvZ2dpbmcgbGV2ZWwuJykKLSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAg
Jy0tbG9nLWZpbGUtZm9ybWF0JywKLSAgICAgICAgZGVzdD0nbG9nX2ZpbGVfZm9ybWF0JywgZGVm
YXVsdD1ERUZBVUxUX0xPR19GT1JNQVQsCi0gICAgICAgIGhlbHA9J2xvZyBmb3JtYXQgYXMgdXNl
ZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykKLSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAg
Jy0tbG9nLWZpbGUtZGF0ZS1mb3JtYXQnLAotICAgICAgICBkZXN0PSdsb2dfZmlsZV9kYXRlX2Zv
cm1hdCcsIGRlZmF1bHQ9REVGQVVMVF9MT0dfREFURV9GT1JNQVQsCi0gICAgICAgIGhlbHA9J2xv
ZyBkYXRlIGZvcm1hdCBhcyB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1vZHVsZS4nKQotCi0KLUBjb250
ZXh0bWFuYWdlcgotZGVmIGxvZ2dpbmdfdXNpbmdfaGFuZGxlcihoYW5kbGVyLCBsb2dnZXI9Tm9u
ZSk6Ci0gICAgIiIiQ29udGV4dCBtYW5hZ2VyIHRoYXQgc2FmZWx5IHJlZ2lzdGVycyBhIGdpdmVu
IGhhbmRsZXIuIiIiCi0gICAgbG9nZ2VyID0gbG9nZ2VyIG9yIGxvZ2dpbmcuZ2V0TG9nZ2VyKGxv
Z2dlcikKLQotICAgIGlmIGhhbmRsZXIgaW4gbG9nZ2VyLmhhbmRsZXJzOiAgIyByZWVudHJhbmN5
Ci0gICAgICAgICMgQWRkaW5nIHRoZSBzYW1lIGhhbmRsZXIgdHdpY2Ugd291bGQgY29uZnVzZSBs
b2dnaW5nIHN5c3RlbS4KLSAgICAgICAgIyBKdXN0IGRvbid0IGRvIHRoYXQuCi0gICAgICAgIHlp
ZWxkCi0gICAgZWxzZToKLSAgICAgICAgbG9nZ2VyLmFkZEhhbmRsZXIoaGFuZGxlcikKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgeWllbGQKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
IGxvZ2dlci5yZW1vdmVIYW5kbGVyKGhhbmRsZXIpCi0KLQotQGNvbnRleHRtYW5hZ2VyCi1kZWYg
Y2F0Y2hpbmdfbG9ncyhoYW5kbGVyLCBmb3JtYXR0ZXI9Tm9uZSwKLSAgICAgICAgICAgICAgICAg
IGxldmVsPWxvZ2dpbmcuTk9UU0VULCBsb2dnZXI9Tm9uZSk6Ci0gICAgIiIiQ29udGV4dCBtYW5h
Z2VyIHRoYXQgcHJlcGFyZXMgdGhlIHdob2xlIGxvZ2dpbmcgbWFjaGluZXJ5IHByb3Blcmx5LiIi
IgotICAgIGxvZ2dlciA9IGxvZ2dlciBvciBsb2dnaW5nLmdldExvZ2dlcihsb2dnZXIpCi0KLSAg
ICBpZiBmb3JtYXR0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVy
KGZvcm1hdHRlcikKLSAgICBoYW5kbGVyLnNldExldmVsKGxldmVsKQotCi0gICAgd2l0aCBsb2dn
aW5nX3VzaW5nX2hhbmRsZXIoaGFuZGxlciwgbG9nZ2VyKToKLSAgICAgICAgb3JpZ19sZXZlbCA9
IGxvZ2dlci5sZXZlbAotICAgICAgICBsb2dnZXIuc2V0TGV2ZWwobWluKG9yaWdfbGV2ZWwsIGxl
dmVsKSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgeWllbGQgaGFuZGxlcgotICAgICAgICBm
aW5hbGx5OgotICAgICAgICAgICAgbG9nZ2VyLnNldExldmVsKG9yaWdfbGV2ZWwpCi0KLQotY2xh
c3MgTG9nQ2FwdHVyZUhhbmRsZXIobG9nZ2luZy5TdHJlYW1IYW5kbGVyKToKLSAgICAiIiJBIGxv
Z2dpbmcgaGFuZGxlciB0aGF0IHN0b3JlcyBsb2cgcmVjb3JkcyBhbmQgdGhlIGxvZyB0ZXh0LiIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IGxv
ZyBoYW5kbGVyLiIiIgotICAgICAgICBsb2dnaW5nLlN0cmVhbUhhbmRsZXIuX19pbml0X18oc2Vs
ZiwgcHkuaW8uVGV4dElPKCkpCi0gICAgICAgIHNlbGYucmVjb3JkcyA9IFtdCi0KLSAgICBkZWYg
ZW1pdChzZWxmLCByZWNvcmQpOgotICAgICAgICAiIiJLZWVwIHRoZSBsb2cgcmVjb3JkcyBpbiBh
IGxpc3QgaW4gYWRkaXRpb24gdG8gdGhlIGxvZyB0ZXh0LiIiIgotICAgICAgICBzZWxmLnJlY29y
ZHMuYXBwZW5kKHJlY29yZCkKLSAgICAgICAgbG9nZ2luZy5TdHJlYW1IYW5kbGVyLmVtaXQoc2Vs
ZiwgcmVjb3JkKQotCi0KLWNsYXNzIExvZ0NhcHR1cmVGaXh0dXJlKG9iamVjdCk6Ci0gICAgIiIi
UHJvdmlkZXMgYWNjZXNzIGFuZCBjb250cm9sIG9mIGxvZyBjYXB0dXJpbmcuIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgaXRlbSk6Ci0gICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgZnVuY2Fy
Zy4iIiIKLSAgICAgICAgc2VsZi5faXRlbSA9IGl0ZW0KLQotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiBoYW5kbGVyKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5faXRlbS5jYXRjaF9sb2dfaGFu
ZGxlcgotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHRleHQoc2VsZik6Ci0gICAgICAgICIiIlJl
dHVybnMgdGhlIGxvZyB0ZXh0LiIiIgotICAgICAgICByZXR1cm4gc2VsZi5oYW5kbGVyLnN0cmVh
bS5nZXR2YWx1ZSgpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgcmVjb3JkcyhzZWxmKToKLSAg
ICAgICAgIiIiUmV0dXJucyB0aGUgbGlzdCBvZiBsb2cgcmVjb3Jkcy4iIiIKLSAgICAgICAgcmV0
dXJuIHNlbGYuaGFuZGxlci5yZWNvcmRzCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgcmVjb3Jk
X3R1cGxlcyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgYSBzdHJpcGVkIGRv
d24gdmVyc2lvbiBvZiBsb2cgcmVjb3JkcyBpbnRlbmRlZAotICAgICAgICBmb3IgdXNlIGluIGFz
c2VydGlvbiBjb21wYXJpc29uLgotCi0gICAgICAgIFRoZSBmb3JtYXQgb2YgdGhlIHR1cGxlIGlz
OgotCi0gICAgICAgICAgICAobG9nZ2VyX25hbWUsIGxvZ19sZXZlbCwgbWVzc2FnZSkKLSAgICAg
ICAgIiIiCi0gICAgICAgIHJldHVybiBbKHIubmFtZSwgci5sZXZlbG5vLCByLmdldE1lc3NhZ2Uo
KSkgZm9yIHIgaW4gc2VsZi5yZWNvcmRzXQotCi0gICAgZGVmIGNsZWFyKHNlbGYpOgotICAgICAg
ICAiIiJSZXNldCB0aGUgbGlzdCBvZiBsb2cgcmVjb3Jkcy4iIiIKLSAgICAgICAgc2VsZi5oYW5k
bGVyLnJlY29yZHMgPSBbXQotCi0gICAgZGVmIHNldF9sZXZlbChzZWxmLCBsZXZlbCwgbG9nZ2Vy
PU5vbmUpOgotICAgICAgICAiIiJTZXRzIHRoZSBsZXZlbCBmb3IgY2FwdHVyaW5nIG9mIGxvZ3Mu
Ci0KLSAgICAgICAgQnkgZGVmYXVsdCwgdGhlIGxldmVsIGlzIHNldCBvbiB0aGUgaGFuZGxlciB1
c2VkIHRvIGNhcHR1cmUKLSAgICAgICAgbG9ncy4gU3BlY2lmeSBhIGxvZ2dlciBuYW1lIHRvIGlu
c3RlYWQgc2V0IHRoZSBsZXZlbCBvZiBhbnkKLSAgICAgICAgbG9nZ2VyLgotICAgICAgICAiIiIK
LSAgICAgICAgaWYgbG9nZ2VyIGlzIE5vbmU6Ci0gICAgICAgICAgICBsb2dnZXIgPSBzZWxmLmhh
bmRsZXIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKGxvZ2dlcikKLSAgICAgICAgbG9nZ2VyLnNldExldmVsKGxldmVsKQotCi0gICAgQGNvbnRl
eHRtYW5hZ2VyCi0gICAgZGVmIGF0X2xldmVsKHNlbGYsIGxldmVsLCBsb2dnZXI9Tm9uZSk6Ci0g
ICAgICAgICIiIkNvbnRleHQgbWFuYWdlciB0aGF0IHNldHMgdGhlIGxldmVsIGZvciBjYXB0dXJp
bmcgb2YgbG9ncy4KLQotICAgICAgICBCeSBkZWZhdWx0LCB0aGUgbGV2ZWwgaXMgc2V0IG9uIHRo
ZSBoYW5kbGVyIHVzZWQgdG8gY2FwdHVyZQotICAgICAgICBsb2dzLiBTcGVjaWZ5IGEgbG9nZ2Vy
IG5hbWUgdG8gaW5zdGVhZCBzZXQgdGhlIGxldmVsIG9mIGFueQotICAgICAgICBsb2dnZXIuCi0g
ICAgICAgICIiIgotICAgICAgICBpZiBsb2dnZXIgaXMgTm9uZToKLSAgICAgICAgICAgIGxvZ2dl
ciA9IHNlbGYuaGFuZGxlcgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbG9nZ2VyID0gbG9n
Z2luZy5nZXRMb2dnZXIobG9nZ2VyKQotCi0gICAgICAgIG9yaWdfbGV2ZWwgPSBsb2dnZXIubGV2
ZWwKLSAgICAgICAgbG9nZ2VyLnNldExldmVsKGxldmVsKQotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICB5aWVsZAotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgbG9nZ2VyLnNldExldmVs
KG9yaWdfbGV2ZWwpCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgY2FwbG9nKHJlcXVlc3QpOgot
ICAgICIiIkFjY2VzcyBhbmQgY29udHJvbCBsb2cgY2FwdHVyaW5nLgotCi0gICAgQ2FwdHVyZWQg
bG9ncyBhcmUgYXZhaWxhYmxlIHRocm91Z2ggdGhlIGZvbGxvd2luZyBtZXRob2RzOjoKLQotICAg
ICogY2FwbG9nLnRleHQoKSAgICAgICAgICAtPiBzdHJpbmcgY29udGFpbmluZyBmb3JtYXR0ZWQg
bG9nIG91dHB1dAotICAgICogY2FwbG9nLnJlY29yZHMoKSAgICAgICAtPiBsaXN0IG9mIGxvZ2dp
bmcuTG9nUmVjb3JkIGluc3RhbmNlcwotICAgICogY2FwbG9nLnJlY29yZF90dXBsZXMoKSAtPiBs
aXN0IG9mIChsb2dnZXJfbmFtZSwgbGV2ZWwsIG1lc3NhZ2UpIHR1cGxlcwotICAgICIiIgotICAg
IHJldHVybiBMb2dDYXB0dXJlRml4dHVyZShyZXF1ZXN0Lm5vZGUpCi0KLQotZGVmIGdldF9hY3R1
YWxfbG9nX2xldmVsKGNvbmZpZywgKnNldHRpbmdfbmFtZXMpOgotICAgICIiIlJldHVybiB0aGUg
YWN0dWFsIGxvZ2dpbmcgbGV2ZWwuIiIiCi0KLSAgICBmb3Igc2V0dGluZ19uYW1lIGluIHNldHRp
bmdfbmFtZXM6Ci0gICAgICAgIGxvZ19sZXZlbCA9IGNvbmZpZy5nZXRvcHRpb24oc2V0dGluZ19u
YW1lKQotICAgICAgICBpZiBsb2dfbGV2ZWwgaXMgTm9uZToKLSAgICAgICAgICAgIGxvZ19sZXZl
bCA9IGNvbmZpZy5nZXRpbmkoc2V0dGluZ19uYW1lKQotICAgICAgICBpZiBsb2dfbGV2ZWw6Ci0g
ICAgICAgICAgICBicmVhawotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybgotCi0gICAgaWYgaXNp
bnN0YW5jZShsb2dfbGV2ZWwsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICBsb2dfbGV2ZWwg
PSBsb2dfbGV2ZWwudXBwZXIoKQotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIGludChnZXRhdHRy
KGxvZ2dpbmcsIGxvZ19sZXZlbCwgbG9nX2xldmVsKSkKLSAgICBleGNlcHQgVmFsdWVFcnJvcjoK
LSAgICAgICAgIyBQeXRob24gbG9nZ2luZyBkb2VzIG5vdCByZWNvZ25pc2UgdGhpcyBhcyBhIGxv
Z2dpbmcgbGV2ZWwKLSAgICAgICAgcmFpc2UgcHl0ZXN0LlVzYWdlRXJyb3IoCi0gICAgICAgICAg
ICAiJ3swfScgaXMgbm90IHJlY29nbml6ZWQgYXMgYSBsb2dnaW5nIGxldmVsIG5hbWUgZm9yICIK
LSAgICAgICAgICAgICInezF9Jy4gUGxlYXNlIGNvbnNpZGVyIHBhc3NpbmcgdGhlICIKLSAgICAg
ICAgICAgICJsb2dnaW5nIGxldmVsIG51bSBpbnN0ZWFkLiIuZm9ybWF0KAotICAgICAgICAgICAg
ICAgIGxvZ19sZXZlbCwKLSAgICAgICAgICAgICAgICBzZXR0aW5nX25hbWUpKQotCi0KLWRlZiBw
eXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0
ZXIoTG9nZ2luZ1BsdWdpbihjb25maWcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdsb2dnaW5nLXBsdWdpbicpCi0KLQotY2xhc3MgTG9nZ2luZ1BsdWdpbihvYmplY3QpOgot
ICAgICIiIkF0dGFjaGVzIHRvIHRoZSBsb2dnaW5nIG1vZHVsZSBhbmQgY2FwdHVyZXMgbG9nIG1l
c3NhZ2VzIGZvciBlYWNoIHRlc3QuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
Y29uZmlnKToKLSAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyBwbHVnaW4gdG8gY2FwdHVyZSBsb2cg
bWVzc2FnZXMuCi0KLSAgICAgICAgVGhlIGZvcm1hdHRlciBjYW4gYmUgc2FmZWx5IHNoYXJlZCBh
Y3Jvc3MgYWxsIGhhbmRsZXJzIHNvCi0gICAgICAgIGNyZWF0ZSBhIHNpbmdsZSBvbmUgZm9yIHRo
ZSBlbnRpcmUgdGVzdCBzZXNzaW9uIGhlcmUuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmxv
Z19jbGlfbGV2ZWwgPSBnZXRfYWN0dWFsX2xvZ19sZXZlbCgKLSAgICAgICAgICAgIGNvbmZpZywg
J2xvZ19jbGlfbGV2ZWwnLCAnbG9nX2xldmVsJykgb3IgbG9nZ2luZy5XQVJOSU5HCi0KLSAgICAg
ICAgc2VsZi5wcmludF9sb2dzID0gZ2V0X29wdGlvbl9pbmkoY29uZmlnLCAnbG9nX3ByaW50JykK
LSAgICAgICAgc2VsZi5mb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcigKLSAgICAgICAgICAg
IGdldF9vcHRpb25faW5pKGNvbmZpZywgJ2xvZ19mb3JtYXQnKSwKLSAgICAgICAgICAgIGdldF9v
cHRpb25faW5pKGNvbmZpZywgJ2xvZ19kYXRlX2Zvcm1hdCcpKQotCi0gICAgICAgIGxvZ19jbGlf
aGFuZGxlciA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcihzeXMuc3RkZXJyKQotICAgICAgICBsb2df
Y2xpX2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKAotICAgICAgICAgICAgY29uZmlnLCAnbG9nX2Ns
aV9mb3JtYXQnLCAnbG9nX2Zvcm1hdCcpCi0gICAgICAgIGxvZ19jbGlfZGF0ZV9mb3JtYXQgPSBn
ZXRfb3B0aW9uX2luaSgKLSAgICAgICAgICAgIGNvbmZpZywgJ2xvZ19jbGlfZGF0ZV9mb3JtYXQn
LCAnbG9nX2RhdGVfZm9ybWF0JykKLSAgICAgICAgbG9nX2NsaV9mb3JtYXR0ZXIgPSBsb2dnaW5n
LkZvcm1hdHRlcigKLSAgICAgICAgICAgIGxvZ19jbGlfZm9ybWF0LAotICAgICAgICAgICAgZGF0
ZWZtdD1sb2dfY2xpX2RhdGVfZm9ybWF0KQotICAgICAgICBzZWxmLmxvZ19jbGlfaGFuZGxlciA9
IGxvZ19jbGlfaGFuZGxlciAgIyBuZWVkZWQgZm9yIGEgc2luZ2xlIHVuaXR0ZXN0Ci0gICAgICAg
IHNlbGYubGl2ZV9sb2dzID0gY2F0Y2hpbmdfbG9ncyhsb2dfY2xpX2hhbmRsZXIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXI9bG9nX2NsaV9mb3JtYXR0
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbD1zZWxmLmxv
Z19jbGlfbGV2ZWwpCi0KLSAgICAgICAgbG9nX2ZpbGUgPSBnZXRfb3B0aW9uX2luaShjb25maWcs
ICdsb2dfZmlsZScpCi0gICAgICAgIGlmIGxvZ19maWxlOgotICAgICAgICAgICAgc2VsZi5sb2df
ZmlsZV9sZXZlbCA9IGdldF9hY3R1YWxfbG9nX2xldmVsKAotICAgICAgICAgICAgICAgIGNvbmZp
ZywgJ2xvZ19maWxlX2xldmVsJykgb3IgbG9nZ2luZy5XQVJOSU5HCi0KLSAgICAgICAgICAgIGxv
Z19maWxlX2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKAotICAgICAgICAgICAgICAgIGNvbmZpZywg
J2xvZ19maWxlX2Zvcm1hdCcsICdsb2dfZm9ybWF0JykKLSAgICAgICAgICAgIGxvZ19maWxlX2Rh
dGVfZm9ybWF0ID0gZ2V0X29wdGlvbl9pbmkoCi0gICAgICAgICAgICAgICAgY29uZmlnLCAnbG9n
X2ZpbGVfZGF0ZV9mb3JtYXQnLCAnbG9nX2RhdGVfZm9ybWF0JykKLSAgICAgICAgICAgIHNlbGYu
bG9nX2ZpbGVfaGFuZGxlciA9IGxvZ2dpbmcuRmlsZUhhbmRsZXIoCi0gICAgICAgICAgICAgICAg
bG9nX2ZpbGUsCi0gICAgICAgICAgICAgICAgIyBFYWNoIHB5dGVzdCBydW50ZXN0cyBzZXNzaW9u
IHdpbGwgd3JpdGUgdG8gYSBjbGVhbiBsb2dmaWxlCi0gICAgICAgICAgICAgICAgbW9kZT0ndycp
Ci0gICAgICAgICAgICBsb2dfZmlsZV9mb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcigKLSAg
ICAgICAgICAgICAgICBsb2dfZmlsZV9mb3JtYXQsCi0gICAgICAgICAgICAgICAgZGF0ZWZtdD1s
b2dfZmlsZV9kYXRlX2Zvcm1hdCkKLSAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVfaGFuZGxlci5z
ZXRGb3JtYXR0ZXIobG9nX2ZpbGVfZm9ybWF0dGVyKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgc2VsZi5sb2dfZmlsZV9oYW5kbGVyID0gTm9uZQotCi0gICAgQGNvbnRleHRtYW5hZ2VyCi0g
ICAgZGVmIF9ydW50ZXN0X2ZvcihzZWxmLCBpdGVtLCB3aGVuKToKLSAgICAgICAgIiIiSW1wbGVt
ZW50cyB0aGUgaW50ZXJuYWxzIG9mIHB5dGVzdF9ydW50ZXN0X3h4eCgpIGhvb2suIiIiCi0gICAg
ICAgIHdpdGggY2F0Y2hpbmdfbG9ncyhMb2dDYXB0dXJlSGFuZGxlcigpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9ybWF0dGVyPXNlbGYuZm9ybWF0dGVyKSBhcyBsb2dfaGFuZGxlcjoK
LSAgICAgICAgICAgIGl0ZW0uY2F0Y2hfbG9nX2hhbmRsZXIgPSBsb2dfaGFuZGxlcgotICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHlpZWxkICAjIHJ1biB0ZXN0Ci0gICAgICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGRlbCBpdGVtLmNhdGNoX2xvZ19oYW5kbGVyCi0K
LSAgICAgICAgICAgIGlmIHNlbGYucHJpbnRfbG9nczoKLSAgICAgICAgICAgICAgICAjIEFkZCBh
IGNhcHR1cmVkIGxvZyBzZWN0aW9uIHRvIHRoZSByZXBvcnQuCi0gICAgICAgICAgICAgICAgbG9n
ID0gbG9nX2hhbmRsZXIuc3RyZWFtLmdldHZhbHVlKCkuc3RyaXAoKQotICAgICAgICAgICAgICAg
IGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKHdoZW4sICdsb2cnLCBsb2cpCi0KLSAgICBAcHl0ZXN0
Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVw
KHNlbGYsIGl0ZW0pOgotICAgICAgICB3aXRoIHNlbGYuX3J1bnRlc3RfZm9yKGl0ZW0sICdzZXR1
cCcpOgotICAgICAgICAgICAgeWllbGQKLQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBw
ZXI9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfY2FsbChzZWxmLCBpdGVtKToKLSAgICAg
ICAgd2l0aCBzZWxmLl9ydW50ZXN0X2ZvcihpdGVtLCAnY2FsbCcpOgotICAgICAgICAgICAgeWll
bGQKLQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYgcHl0
ZXN0X3J1bnRlc3RfdGVhcmRvd24oc2VsZiwgaXRlbSk6Ci0gICAgICAgIHdpdGggc2VsZi5fcnVu
dGVzdF9mb3IoaXRlbSwgJ3RlYXJkb3duJyk6Ci0gICAgICAgICAgICB5aWVsZAotCi0gICAgQHB5
dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotICAgIGRlZiBweXRlc3RfcnVudGVzdGxv
b3Aoc2VsZiwgc2Vzc2lvbik6Ci0gICAgICAgICIiIlJ1bnMgYWxsIGNvbGxlY3RlZCB0ZXN0IGl0
ZW1zLiIiIgotICAgICAgICB3aXRoIHNlbGYubGl2ZV9sb2dzOgotICAgICAgICAgICAgaWYgc2Vs
Zi5sb2dfZmlsZV9oYW5kbGVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHdpdGggY2xv
c2luZyhzZWxmLmxvZ19maWxlX2hhbmRsZXIpOgotICAgICAgICAgICAgICAgICAgICB3aXRoIGNh
dGNoaW5nX2xvZ3Moc2VsZi5sb2dfZmlsZV9oYW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV2ZWw9c2VsZi5sb2dfZmlsZV9sZXZlbCk6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB5aWVsZCAgIyBydW4gYWxsIHRoZSB0ZXN0cwotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICB5aWVsZCAgIyBydW4gYWxsIHRoZSB0ZXN0cwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYWluLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYWlu
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTU1NDA5OGRhYzI5OWY2ZDljNzFk
MmJmMTkzOWY4YWVhNDMzMTExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFpbi5weQorKysgL2Rldi9udWxsCkBAIC0x
LDgyMSArMCwwIEBACi0iIiIgY29yZSBpbXBsZW1lbnRhdGlvbiBvZiB0ZXN0aW5nIHByb2Nlc3M6
IGluaXQsIHNlc3Npb24sIHJ1bnRlc3QgbG9vcC4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBmdW5j
dG9vbHMKLWltcG9ydCBvcwotaW1wb3J0IHNpeAotaW1wb3J0IHN5cwotCi1pbXBvcnQgX3B5dGVz
dAotZnJvbSBfcHl0ZXN0IGltcG9ydCBub2RlcwotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWltcG9y
dCBweQotdHJ5OgotICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE11dGFibGVNYXBwaW5nIGFz
IE1hcHBpbmdNaXhpbgotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIGZyb20gVXNlckRpY3QgaW1w
b3J0IERpY3RNaXhpbiBhcyBNYXBwaW5nTWl4aW4KLQotZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBv
cnQgZGlyZWN0b3J5X2FyZywgVXNhZ2VFcnJvciwgaG9va2ltcGwKLWZyb20gX3B5dGVzdC5vdXRj
b21lcyBpbXBvcnQgZXhpdAotZnJvbSBfcHl0ZXN0LnJ1bm5lciBpbXBvcnQgY29sbGVjdF9vbmVf
bm9kZQotCi10cmFjZWJhY2tjdXRkaXIgPSBweS5wYXRoLmxvY2FsKF9weXRlc3QuX19maWxlX18p
LmRpcnBhdGgoKQotCi0jIGV4aXRjb2RlcyBmb3IgdGhlIGNvbW1hbmQgbGluZQotRVhJVF9PSyA9
IDAKLUVYSVRfVEVTVFNGQUlMRUQgPSAxCi1FWElUX0lOVEVSUlVQVEVEID0gMgotRVhJVF9JTlRF
Uk5BTEVSUk9SID0gMwotRVhJVF9VU0FHRUVSUk9SID0gNAotRVhJVF9OT1RFU1RTQ09MTEVDVEVE
ID0gNQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgcGFyc2VyLmFkZGlu
aSgibm9yZWN1cnNlZGlycyIsICJkaXJlY3RvcnkgcGF0dGVybnMgdG8gYXZvaWQgZm9yIHJlY3Vy
c2lvbiIsCi0gICAgICAgICAgICAgICAgICB0eXBlPSJhcmdzIiwgZGVmYXVsdD1bJy4qJywgJ2J1
aWxkJywgJ2Rpc3QnLCAnQ1ZTJywgJ19kYXJjcycsICd7YXJjaH0nLCAnKi5lZ2cnLCAndmVudidd
KQotICAgIHBhcnNlci5hZGRpbmkoInRlc3RwYXRocyIsICJkaXJlY3RvcmllcyB0byBzZWFyY2gg
Zm9yIHRlc3RzIHdoZW4gbm8gZmlsZXMgb3IgZGlyZWN0b3JpZXMgYXJlIGdpdmVuIGluIHRoZSAi
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbW1hbmQgbGluZS4iLAotICAgICAg
ICAgICAgICAgICAgdHlwZT0iYXJncyIsIGRlZmF1bHQ9W10pCi0gICAgIyBwYXJzZXIuYWRkaW5p
KCJkaXJwYXR0ZXJucyIsCi0gICAgIyAgICAicGF0dGVybnMgc3BlY2lmeWluZyBwb3NzaWJsZSBs
b2NhdGlvbnMgb2YgdGVzdCBmaWxlcyIsCi0gICAgIyAgICB0eXBlPSJsaW5lbGlzdCIsIGRlZmF1
bHQ9WyIqKi90ZXN0XyoudHh0IiwKLSAgICAjICAgICAgICAgICAgIioqL3Rlc3RfKi5weSIsICIq
Ki8qX3Rlc3QucHkiXQotICAgICMgKQotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJnZW5l
cmFsIiwgInJ1bm5pbmcgYW5kIHNlbGVjdGlvbiBvcHRpb25zIikKLSAgICBncm91cC5fYWRkb3B0
aW9uKCcteCcsICctLWV4aXRmaXJzdCcsIGFjdGlvbj0ic3RvcmVfY29uc3QiLAotICAgICAgICAg
ICAgICAgICAgICAgZGVzdD0ibWF4ZmFpbCIsIGNvbnN0PTEsCi0gICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJleGl0IGluc3RhbnRseSBvbiBmaXJzdCBlcnJvciBvciBmYWlsZWQgdGVzdC4iKSwK
LSAgICBncm91cC5fYWRkb3B0aW9uKCctLW1heGZhaWwnLCBtZXRhdmFyPSJudW0iLAotICAgICAg
ICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsIHR5cGU9aW50LCBkZXN0PSJtYXhmYWlsIiwg
ZGVmYXVsdD0wLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0iZXhpdCBhZnRlciBmaXJzdCBu
dW0gZmFpbHVyZXMgb3IgZXJyb3JzLiIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLS1zdHJpY3Qn
LCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0ibWFya3Mg
bm90IHJlZ2lzdGVyZWQgaW4gY29uZmlndXJhdGlvbiBmaWxlIHJhaXNlIGVycm9ycy4iKQotICAg
IGdyb3VwLl9hZGRvcHRpb24oIi1jIiwgbWV0YXZhcj0iZmlsZSIsIHR5cGU9c3RyLCBkZXN0PSJp
bmlmaWxlbmFtZSIsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJsb2FkIGNvbmZpZ3VyYXRp
b24gZnJvbSBgZmlsZWAgaW5zdGVhZCBvZiB0cnlpbmcgdG8gbG9jYXRlIG9uZSBvZiB0aGUgaW1w
bGljaXQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uZmlndXJhdGlvbiBmaWxlcy4i
KQotICAgIGdyb3VwLl9hZGRvcHRpb24oIi0tY29udGludWUtb24tY29sbGVjdGlvbi1lcnJvcnMi
LCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxz
ZSwgZGVzdD0iY29udGludWVfb25fY29sbGVjdGlvbl9lcnJvcnMiLAotICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iRm9yY2UgdGVzdCBleGVjdXRpb24gZXZlbiBpZiBjb2xsZWN0aW9uIGVycm9y
cyBvY2N1ci4iKQotCi0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImNvbGxlY3QiLCAiY29s
bGVjdGlvbiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLWNvbGxlY3Rvbmx5JywgJy0tY29sbGVj
dC1vbmx5JywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0i
b25seSBjb2xsZWN0IHRlc3RzLCBkb24ndCBleGVjdXRlIHRoZW0uIiksCi0gICAgZ3JvdXAuYWRk
b3B0aW9uKCctLXB5YXJncycsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAg
ICAgIGhlbHA9InRyeSB0byBpbnRlcnByZXQgYWxsIGFyZ3VtZW50cyBhcyBweXRob24gcGFja2Fn
ZXMuIikKLSAgICBncm91cC5hZGRvcHRpb24oIi0taWdub3JlIiwgYWN0aW9uPSJhcHBlbmQiLCBt
ZXRhdmFyPSJwYXRoIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0iaWdub3JlIHBhdGggZHVy
aW5nIGNvbGxlY3Rpb24gKG11bHRpLWFsbG93ZWQpLiIpCi0gICAgIyB3aGVuIGNoYW5naW5nIHRo
aXMgdG8gLS1jb25mLWN1dC1kaXIsIGNvbmZpZy5weSBDb25mdGVzdC5zZXRpbml0aWFsCi0gICAg
IyBuZWVkcyB1cGdyYWRpbmcgYXMgd2VsbAotICAgIGdyb3VwLmFkZG9wdGlvbignLS1jb25mY3V0
ZGlyJywgZGVzdD0iY29uZmN1dGRpciIsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAg
ICAgbWV0YXZhcj0iZGlyIiwgdHlwZT1mdW5jdG9vbHMucGFydGlhbChkaXJlY3RvcnlfYXJnLCBv
cHRuYW1lPSItLWNvbmZjdXRkaXIiKSwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0ib25seSBs
b2FkIGNvbmZ0ZXN0LnB5J3MgcmVsYXRpdmUgdG8gc3BlY2lmaWVkIGRpci4iKQotICAgIGdyb3Vw
LmFkZG9wdGlvbignLS1ub2NvbmZ0ZXN0JywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAg
ICAgICAgICAgICAgZGVzdD0ibm9jb25mdGVzdCIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAg
ICAgICAgICAgIGhlbHA9IkRvbid0IGxvYWQgYW55IGNvbmZ0ZXN0LnB5IGZpbGVzLiIpCi0gICAg
Z3JvdXAuYWRkb3B0aW9uKCctLWtlZXBkdXBsaWNhdGVzJywgJy0ta2VlcC1kdXBsaWNhdGVzJywg
YWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgZGVzdD0ia2VlcGR1cGxp
Y2F0ZXMiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJLZWVwIGR1
cGxpY2F0ZSB0ZXN0cy4iKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1jb2xsZWN0LWluLXZpcnR1
YWxlbnYnLCBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAgICAgICAgICAgICBkZXN0PSdj
b2xsZWN0X2luX3ZpcnR1YWxlbnYnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJEb24ndCBpZ25vcmUgdGVzdHMgaW4gYSBsb2NhbCB2aXJ0dWFsZW52IGRpcmVjdG9y
eSIpCi0KLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZGVidWdjb25maWciLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0IHNlc3Npb24gZGVidWdnaW5nIGFuZCBjb25maWd1
cmF0aW9uIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tYmFzZXRlbXAnLCBkZXN0PSJiYXNldGVt
cCIsIGRlZmF1bHQ9Tm9uZSwgbWV0YXZhcj0iZGlyIiwKLSAgICAgICAgICAgICAgICAgICAgaGVs
cD0iYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciB0aGlzIHRlc3QgcnVuLiIpCi0KLQotZGVm
IHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICBfX2ltcG9ydF9fKCdweXRlc3QnKS5jb25m
aWcgPSBjb25maWcgICMgY29tcGF0aWJpbHRpeQotCi0KLWRlZiB3cmFwX3Nlc3Npb24oY29uZmln
LCBkb2l0KToKLSAgICAiIiJTa2VsZXRvbiBjb21tYW5kIGxpbmUgcHJvZ3JhbSIiIgotICAgIHNl
c3Npb24gPSBTZXNzaW9uKGNvbmZpZykKLSAgICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElUX09L
Ci0gICAgaW5pdHN0YXRlID0gMAotICAgIHRyeToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
Y29uZmlnLl9kb19jb25maWd1cmUoKQotICAgICAgICAgICAgaW5pdHN0YXRlID0gMQotICAgICAg
ICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uPXNlc3Npb24pCi0g
ICAgICAgICAgICBpbml0c3RhdGUgPSAyCi0gICAgICAgICAgICBzZXNzaW9uLmV4aXRzdGF0dXMg
PSBkb2l0KGNvbmZpZywgc2Vzc2lvbikgb3IgMAotICAgICAgICBleGNlcHQgVXNhZ2VFcnJvcjoK
LSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdCBGYWlsZWQ6Ci0gICAgICAgICAgICBz
ZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElUX1RFU1RTRkFJTEVECi0gICAgICAgIGV4Y2VwdCBLZXli
b2FyZEludGVycnVwdDoKLSAgICAgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2Vw
dGlvbkluZm8oKQotICAgICAgICAgICAgaWYgaW5pdHN0YXRlIDwgMiBhbmQgaXNpbnN0YW5jZShl
eGNpbmZvLnZhbHVlLCBleGl0LkV4Y2VwdGlvbik6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVy
ci53cml0ZSgnezB9OiB7MX1cbicuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICBleGNpbmZv
LnR5cGVuYW1lLCBleGNpbmZvLnZhbHVlLm1zZykpCi0gICAgICAgICAgICBjb25maWcuaG9vay5w
eXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KGV4Y2luZm89ZXhjaW5mbykKLSAgICAgICAgICAgIHNl
c3Npb24uZXhpdHN0YXR1cyA9IEVYSVRfSU5URVJSVVBURUQKLSAgICAgICAgZXhjZXB0OiAgIyBu
b3FhCi0gICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkK
LSAgICAgICAgICAgIGNvbmZpZy5ub3RpZnlfZXhjZXB0aW9uKGV4Y2luZm8sIGNvbmZpZy5vcHRp
b24pCi0gICAgICAgICAgICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElUX0lOVEVSTkFMRVJST1IK
LSAgICAgICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShTeXN0ZW1FeGl0KToKLSAgICAg
ICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJtYWlubG9vcDogY2F1Z2h0IFNwdXJpb3VzIFN5
c3RlbUV4aXQhXG4iKQotCi0gICAgZmluYWxseToKLSAgICAgICAgZXhjaW5mbyA9IE5vbmUgICMg
RXhwbGljaXRseSBicmVhayByZWZlcmVuY2UgY3ljbGUuCi0gICAgICAgIHNlc3Npb24uc3RhcnRk
aXIuY2hkaXIoKQotICAgICAgICBpZiBpbml0c3RhdGUgPj0gMjoKLSAgICAgICAgICAgIGNvbmZp
Zy5ob29rLnB5dGVzdF9zZXNzaW9uZmluaXNoKAotICAgICAgICAgICAgICAgIHNlc3Npb249c2Vz
c2lvbiwKLSAgICAgICAgICAgICAgICBleGl0c3RhdHVzPXNlc3Npb24uZXhpdHN0YXR1cykKLSAg
ICAgICAgY29uZmlnLl9lbnN1cmVfdW5jb25maWd1cmUoKQotICAgIHJldHVybiBzZXNzaW9uLmV4
aXRzdGF0dXMKLQotCi1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgotICAgIHJldHVy
biB3cmFwX3Nlc3Npb24oY29uZmlnLCBfbWFpbikKLQotCi1kZWYgX21haW4oY29uZmlnLCBzZXNz
aW9uKToKLSAgICAiIiIgZGVmYXVsdCBjb21tYW5kIGxpbmUgcHJvdG9jb2wgZm9yIGluaXRpYWxp
emF0aW9uLCBzZXNzaW9uLAotICAgIHJ1bm5pbmcgdGVzdHMgYW5kIHJlcG9ydGluZy4gIiIiCi0g
ICAgY29uZmlnLmhvb2sucHl0ZXN0X2NvbGxlY3Rpb24oc2Vzc2lvbj1zZXNzaW9uKQotICAgIGNv
bmZpZy5ob29rLnB5dGVzdF9ydW50ZXN0bG9vcChzZXNzaW9uPXNlc3Npb24pCi0KLSAgICBpZiBz
ZXNzaW9uLnRlc3RzZmFpbGVkOgotICAgICAgICByZXR1cm4gRVhJVF9URVNUU0ZBSUxFRAotICAg
IGVsaWYgc2Vzc2lvbi50ZXN0c2NvbGxlY3RlZCA9PSAwOgotICAgICAgICByZXR1cm4gRVhJVF9O
T1RFU1RTQ09MTEVDVEVECi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0aW9uKHNlc3Npb24pOgotICAg
IHJldHVybiBzZXNzaW9uLnBlcmZvcm1fY29sbGVjdCgpCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0
bG9vcChzZXNzaW9uKToKLSAgICBpZiAoc2Vzc2lvbi50ZXN0c2ZhaWxlZCBhbmQKLSAgICAgICAg
ICAgIG5vdCBzZXNzaW9uLmNvbmZpZy5vcHRpb24uY29udGludWVfb25fY29sbGVjdGlvbl9lcnJv
cnMpOgotICAgICAgICByYWlzZSBzZXNzaW9uLkludGVycnVwdGVkKAotICAgICAgICAgICAgIiVk
IGVycm9ycyBkdXJpbmcgY29sbGVjdGlvbiIgJSBzZXNzaW9uLnRlc3RzZmFpbGVkKQotCi0gICAg
aWYgc2Vzc2lvbi5jb25maWcub3B0aW9uLmNvbGxlY3Rvbmx5OgotICAgICAgICByZXR1cm4gVHJ1
ZQotCi0gICAgZm9yIGksIGl0ZW0gaW4gZW51bWVyYXRlKHNlc3Npb24uaXRlbXMpOgotICAgICAg
ICBuZXh0aXRlbSA9IHNlc3Npb24uaXRlbXNbaSArIDFdIGlmIGkgKyAxIDwgbGVuKHNlc3Npb24u
aXRlbXMpIGVsc2UgTm9uZQotICAgICAgICBpdGVtLmNvbmZpZy5ob29rLnB5dGVzdF9ydW50ZXN0
X3Byb3RvY29sKGl0ZW09aXRlbSwgbmV4dGl0ZW09bmV4dGl0ZW0pCi0gICAgICAgIGlmIHNlc3Np
b24uc2hvdWxkZmFpbDoKLSAgICAgICAgICAgIHJhaXNlIHNlc3Npb24uRmFpbGVkKHNlc3Npb24u
c2hvdWxkZmFpbCkKLSAgICAgICAgaWYgc2Vzc2lvbi5zaG91bGRzdG9wOgotICAgICAgICAgICAg
cmFpc2Ugc2Vzc2lvbi5JbnRlcnJ1cHRlZChzZXNzaW9uLnNob3VsZHN0b3ApCi0gICAgcmV0dXJu
IFRydWUKLQotCi1kZWYgX2luX3ZlbnYocGF0aCk6Ci0gICAgIiIiQXR0ZW1wdHMgdG8gZGV0ZWN0
IGlmIGBgcGF0aGBgIGlzIHRoZSByb290IG9mIGEgVmlydHVhbCBFbnZpcm9ubWVudCBieQotICAg
IGNoZWNraW5nIGZvciB0aGUgZXhpc3RlbmNlIG9mIHRoZSBhcHByb3ByaWF0ZSBhY3RpdmF0ZSBz
Y3JpcHQiIiIKLSAgICBiaW5kaXIgPSBwYXRoLmpvaW4oJ1NjcmlwdHMnIGlmIHN5cy5wbGF0Zm9y
bS5zdGFydHN3aXRoKCd3aW4nKSBlbHNlICdiaW4nKQotICAgIGlmIG5vdCBiaW5kaXIuZXhpc3Rz
KCk6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIGFjdGl2YXRlcyA9ICgnYWN0aXZhdGUnLCAn
YWN0aXZhdGUuY3NoJywgJ2FjdGl2YXRlLmZpc2gnLAotICAgICAgICAgICAgICAgICAnQWN0aXZh
dGUnLCAnQWN0aXZhdGUuYmF0JywgJ0FjdGl2YXRlLnBzMScpCi0gICAgcmV0dXJuIGFueShbZm5h
bWUuYmFzZW5hbWUgaW4gYWN0aXZhdGVzIGZvciBmbmFtZSBpbiBiaW5kaXIubGlzdGRpcigpXSkK
LQotCi1kZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgsIGNvbmZpZyk6Ci0gICAgaWdub3Jl
X3BhdGhzID0gY29uZmlnLl9nZXRjb25mdGVzdF9wYXRobGlzdCgiY29sbGVjdF9pZ25vcmUiLCBw
YXRoPXBhdGguZGlycGF0aCgpKQotICAgIGlnbm9yZV9wYXRocyA9IGlnbm9yZV9wYXRocyBvciBb
XQotICAgIGV4Y2x1ZGVvcHQgPSBjb25maWcuZ2V0b3B0aW9uKCJpZ25vcmUiKQotICAgIGlmIGV4
Y2x1ZGVvcHQ6Ci0gICAgICAgIGlnbm9yZV9wYXRocy5leHRlbmQoW3B5LnBhdGgubG9jYWwoeCkg
Zm9yIHggaW4gZXhjbHVkZW9wdF0pCi0KLSAgICBpZiBweS5wYXRoLmxvY2FsKHBhdGgpIGluIGln
bm9yZV9wYXRoczoKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGFsbG93X2luX3ZlbnYgPSBj
b25maWcuZ2V0b3B0aW9uKCJjb2xsZWN0X2luX3ZpcnR1YWxlbnYiKQotICAgIGlmIF9pbl92ZW52
KHBhdGgpIGFuZCBub3QgYWxsb3dfaW5fdmVudjoKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAg
ICMgU2tpcCBkdXBsaWNhdGUgcGF0aHMuCi0gICAga2VlcGR1cGxpY2F0ZXMgPSBjb25maWcuZ2V0
b3B0aW9uKCJrZWVwZHVwbGljYXRlcyIpCi0gICAgZHVwbGljYXRlX3BhdGhzID0gY29uZmlnLnBs
dWdpbm1hbmFnZXIuX2R1cGxpY2F0ZXBhdGhzCi0gICAgaWYgbm90IGtlZXBkdXBsaWNhdGVzOgot
ICAgICAgICBpZiBwYXRoIGluIGR1cGxpY2F0ZV9wYXRoczoKLSAgICAgICAgICAgIHJldHVybiBU
cnVlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBkdXBsaWNhdGVfcGF0aHMuYWRkKHBhdGgp
Ci0KLSAgICByZXR1cm4gRmFsc2UKLQotCi1jbGFzcyBGU0hvb2tQcm94eToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgZnNwYXRoLCBwbSwgcmVtb3ZlX21vZHMpOgotICAgICAgICBzZWxmLmZzcGF0
aCA9IGZzcGF0aAotICAgICAgICBzZWxmLnBtID0gcG0KLSAgICAgICAgc2VsZi5yZW1vdmVfbW9k
cyA9IHJlbW92ZV9tb2RzCi0KLSAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6Ci0gICAg
ICAgIHggPSBzZWxmLnBtLnN1YnNldF9ob29rX2NhbGxlcihuYW1lLCByZW1vdmVfcGx1Z2lucz1z
ZWxmLnJlbW92ZV9tb2RzKQotICAgICAgICBzZWxmLl9fZGljdF9fW25hbWVdID0geAotICAgICAg
ICByZXR1cm4geAotCi0KLWNsYXNzIF9Db21wYXRQcm9wZXJ0eShvYmplY3QpOgotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZQotCi0gICAgZGVm
IF9fZ2V0X18oc2VsZiwgb2JqLCBvd25lcik6Ci0gICAgICAgIGlmIG9iaiBpcyBOb25lOgotICAg
ICAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgICAgICAjIFRPRE86IHJlZW5hYmxlIGluIHRoZSBm
ZWF0dXJlcyBicmFuY2gKLSAgICAgICAgIyB3YXJuaW5ncy53YXJuKAotICAgICAgICAjICAgICAi
dXNhZ2Ugb2Yge293bmVyIXJ9LntuYW1lfSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIHB5dGVz
dC57bmFtZX0gaW5zdGVhZCIuZm9ybWF0KAotICAgICAgICAjICAgICAgICAgbmFtZT1zZWxmLm5h
bWUsIG93bmVyPXR5cGUob3duZXIpLl9fbmFtZV9fKSwKLSAgICAgICAgIyAgICAgUGVuZGluZ0Rl
cHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQotICAgICAgICByZXR1cm4gZ2V0YXR0cihf
X2ltcG9ydF9fKCdweXRlc3QnKSwgc2VsZi5uYW1lKQotCi0KLWNsYXNzIE5vZGVLZXl3b3JkcyhN
YXBwaW5nTWl4aW4pOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlKToKLSAgICAgICAgc2Vs
Zi5ub2RlID0gbm9kZQotICAgICAgICBzZWxmLnBhcmVudCA9IG5vZGUucGFyZW50Ci0gICAgICAg
IHNlbGYuX21hcmtlcnMgPSB7bm9kZS5uYW1lOiBUcnVlfQotCi0gICAgZGVmIF9fZ2V0aXRlbV9f
KHNlbGYsIGtleSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9tYXJr
ZXJzW2tleV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgaWYgc2VsZi5w
YXJlbnQgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgcmV0dXJu
IHNlbGYucGFyZW50LmtleXdvcmRzW2tleV0KLQotICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBr
ZXksIHZhbHVlKToKLSAgICAgICAgc2VsZi5fbWFya2Vyc1trZXldID0gdmFsdWUKLQotICAgIGRl
ZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW5u
b3QgZGVsZXRlIGtleSBpbiBrZXl3b3JkcyBkaWN0IikKLQotICAgIGRlZiBfX2l0ZXJfXyhzZWxm
KToKLSAgICAgICAgc2VlbiA9IHNldChzZWxmLl9tYXJrZXJzKQotICAgICAgICBpZiBzZWxmLnBh
cmVudCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlZW4udXBkYXRlKHNlbGYucGFyZW50Lmtl
eXdvcmRzKQotICAgICAgICByZXR1cm4gaXRlcihzZWVuKQotCi0gICAgZGVmIF9fbGVuX18oc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBsZW4oc2VsZi5fX2l0ZXJfXygpKQotCi0gICAgZGVmIGtleXMo
c2VsZik6Ci0gICAgICAgIHJldHVybiBsaXN0KHNlbGYpCi0KLSAgICBkZWYgX19yZXByX18oc2Vs
Zik6Ci0gICAgICAgIHJldHVybiAiPE5vZGVLZXl3b3JkcyBmb3Igbm9kZSAlcz4iICUgKHNlbGYu
bm9kZSwgKQotCi0KLWNsYXNzIE5vZGUob2JqZWN0KToKLSAgICAiIiIgYmFzZSBjbGFzcyBmb3Ig
Q29sbGVjdG9yIGFuZCBJdGVtIHRoZSB0ZXN0IGNvbGxlY3Rpb24gdHJlZS4KLSAgICBDb2xsZWN0
b3Igc3ViY2xhc3NlcyBoYXZlIGNoaWxkcmVuLCBJdGVtcyBhcmUgdGVybWluYWwgbm9kZXMuIiIi
Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgcGFyZW50PU5vbmUsIGNvbmZpZz1Ob25l
LCBzZXNzaW9uPU5vbmUpOgotICAgICAgICAjOiBhIHVuaXF1ZSBuYW1lIHdpdGhpbiB0aGUgc2Nv
cGUgb2YgdGhlIHBhcmVudCBub2RlCi0gICAgICAgIHNlbGYubmFtZSA9IG5hbWUKLQotICAgICAg
ICAjOiB0aGUgcGFyZW50IGNvbGxlY3RvciBub2RlLgotICAgICAgICBzZWxmLnBhcmVudCA9IHBh
cmVudAotCi0gICAgICAgICM6IHRoZSBweXRlc3QgY29uZmlnIG9iamVjdAotICAgICAgICBzZWxm
LmNvbmZpZyA9IGNvbmZpZyBvciBwYXJlbnQuY29uZmlnCi0KLSAgICAgICAgIzogdGhlIHNlc3Np
b24gdGhpcyBub2RlIGlzIHBhcnQgb2YKLSAgICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbiBv
ciBwYXJlbnQuc2Vzc2lvbgotCi0gICAgICAgICM6IGZpbGVzeXN0ZW0gcGF0aCB3aGVyZSB0aGlz
IG5vZGUgd2FzIGNvbGxlY3RlZCBmcm9tIChjYW4gYmUgTm9uZSkKLSAgICAgICAgc2VsZi5mc3Bh
dGggPSBnZXRhdHRyKHBhcmVudCwgJ2ZzcGF0aCcsIE5vbmUpCi0KLSAgICAgICAgIzoga2V5d29y
ZHMvbWFya2VycyBjb2xsZWN0ZWQgZnJvbSBhbGwgc2NvcGVzCi0gICAgICAgIHNlbGYua2V5d29y
ZHMgPSBOb2RlS2V5d29yZHMoc2VsZikKLQotICAgICAgICAjOiBhbGxvdyBhZGRpbmcgb2YgZXh0
cmEga2V5d29yZHMgdG8gdXNlIGZvciBtYXRjaGluZwotICAgICAgICBzZWxmLmV4dHJhX2tleXdv
cmRfbWF0Y2hlcyA9IHNldCgpCi0KLSAgICAgICAgIyB1c2VkIGZvciBzdG9yaW5nIGFydGlmaWNp
YWwgZml4dHVyZWRlZnMgZm9yIGRpcmVjdCBwYXJhbWV0cml6YXRpb24KLSAgICAgICAgc2VsZi5f
bmFtZTJwc2V1ZG9maXh0dXJlZGVmID0ge30KLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBpaG9v
ayhzZWxmKToKLSAgICAgICAgIiIiIGZzcGF0aCBzZW5zaXRpdmUgaG9vayBwcm94eSB1c2VkIHRv
IGNhbGwgcHl0ZXN0IGhvb2tzIiIiCi0gICAgICAgIHJldHVybiBzZWxmLnNlc3Npb24uZ2V0aG9v
a3Byb3h5KHNlbGYuZnNwYXRoKQotCi0gICAgTW9kdWxlID0gX0NvbXBhdFByb3BlcnR5KCJNb2R1
bGUiKQotICAgIENsYXNzID0gX0NvbXBhdFByb3BlcnR5KCJDbGFzcyIpCi0gICAgSW5zdGFuY2Ug
PSBfQ29tcGF0UHJvcGVydHkoIkluc3RhbmNlIikKLSAgICBGdW5jdGlvbiA9IF9Db21wYXRQcm9w
ZXJ0eSgiRnVuY3Rpb24iKQotICAgIEZpbGUgPSBfQ29tcGF0UHJvcGVydHkoIkZpbGUiKQotICAg
IEl0ZW0gPSBfQ29tcGF0UHJvcGVydHkoIkl0ZW0iKQotCi0gICAgZGVmIF9nZXRjdXN0b21jbGFz
cyhzZWxmLCBuYW1lKToKLSAgICAgICAgbWF5YmVfY29tcGF0cHJvcCA9IGdldGF0dHIodHlwZShz
ZWxmKSwgbmFtZSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShtYXliZV9jb21wYXRwcm9wLCBfQ29t
cGF0UHJvcGVydHkpOgotICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoX19pbXBvcnRfXygncHl0
ZXN0JyksIG5hbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBjbHMgPSBnZXRhdHRyKHNl
bGYsIG5hbWUpCi0gICAgICAgICAgICAjIFRPRE86IHJlZW5hYmxlIGluIHRoZSBmZWF0dXJlcyBi
cmFuY2gKLSAgICAgICAgICAgICMgd2FybmluZ3Mud2FybigidXNlIG9mIG5vZGUuJXMgaXMgZGVw
cmVjYXRlZCwgIgotICAgICAgICAgICAgIyAgICAidXNlIHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0
ZW0oLi4uKSB0byBjcmVhdGUgY3VzdG9tICIKLSAgICAgICAgICAgICMgICAgImNvbGxlY3Rpb24g
bm9kZXMiICUgbmFtZSwgY2F0ZWdvcnk9RGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICByZXR1
cm4gY2xzCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPCVzICVy
PiIgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2V0YXR0cihzZWxmLCAnbmFtZScsIE5vbmUpKQotCi0gICAgZGVmIHdhcm4oc2VsZiwgY29k
ZSwgbWVzc2FnZSk6Ci0gICAgICAgICIiIiBnZW5lcmF0ZSBhIHdhcm5pbmcgd2l0aCB0aGUgZ2l2
ZW4gY29kZSBhbmQgbWVzc2FnZSBmb3IgdGhpcwotICAgICAgICBpdGVtLiAiIiIKLSAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29kZSwgc3RyKQotICAgICAgICBmc2xvY2F0aW9uID0gZ2V0YXR0
cihzZWxmLCAibG9jYXRpb24iLCBOb25lKQotICAgICAgICBpZiBmc2xvY2F0aW9uIGlzIE5vbmU6
Ci0gICAgICAgICAgICBmc2xvY2F0aW9uID0gZ2V0YXR0cihzZWxmLCAiZnNwYXRoIiwgTm9uZSkK
LSAgICAgICAgc2VsZi5paG9vay5weXRlc3RfbG9nd2FybmluZy5jYWxsX2hpc3RvcmljKGt3YXJn
cz1kaWN0KAotICAgICAgICAgICAgY29kZT1jb2RlLCBtZXNzYWdlPW1lc3NhZ2UsCi0gICAgICAg
ICAgICBub2RlaWQ9c2VsZi5ub2RlaWQsIGZzbG9jYXRpb249ZnNsb2NhdGlvbikpCi0KLSAgICAj
IG1ldGhvZHMgZm9yIG9yZGVyaW5nIG5vZGVzCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIG5vZGVp
ZChzZWxmKToKLSAgICAgICAgIiIiIGEgOjotc2VwYXJhdGVkIHN0cmluZyBkZW5vdGluZyBpdHMg
Y29sbGVjdGlvbiB0cmVlIGFkZHJlc3MuICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBy
ZXR1cm4gc2VsZi5fbm9kZWlkCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAg
ICAgICAgIHNlbGYuX25vZGVpZCA9IHggPSBzZWxmLl9tYWtlaWQoKQotICAgICAgICAgICAgcmV0
dXJuIHgKLQotICAgIGRlZiBfbWFrZWlkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5wYXJl
bnQubm9kZWlkICsgIjo6IiArIHNlbGYubmFtZQotCi0gICAgZGVmIF9faGFzaF9fKHNlbGYpOgot
ICAgICAgICByZXR1cm4gaGFzaChzZWxmLm5vZGVpZCkKLQotICAgIGRlZiBzZXR1cChzZWxmKToK
LSAgICAgICAgcGFzcwotCi0gICAgZGVmIHRlYXJkb3duKHNlbGYpOgotICAgICAgICBwYXNzCi0K
LSAgICBkZWYgbGlzdGNoYWluKHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIGxpc3Qgb2YgYWxs
IHBhcmVudCBjb2xsZWN0b3JzIHVwIHRvIHNlbGYsCi0gICAgICAgICAgICBzdGFydGluZyBmcm9t
IHJvb3Qgb2YgY29sbGVjdGlvbiB0cmVlLiAiIiIKLSAgICAgICAgY2hhaW4gPSBbXQotICAgICAg
ICBpdGVtID0gc2VsZgotICAgICAgICB3aGlsZSBpdGVtIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgY2hhaW4uYXBwZW5kKGl0ZW0pCi0gICAgICAgICAgICBpdGVtID0gaXRlbS5wYXJlbnQKLSAg
ICAgICAgY2hhaW4ucmV2ZXJzZSgpCi0gICAgICAgIHJldHVybiBjaGFpbgotCi0gICAgZGVmIGFk
ZF9tYXJrZXIoc2VsZiwgbWFya2VyKToKLSAgICAgICAgIiIiIGR5bmFtaWNhbGx5IGFkZCBhIG1h
cmtlciBvYmplY3QgdG8gdGhlIG5vZGUuCi0KLSAgICAgICAgYGBtYXJrZXJgYCBjYW4gYmUgYSBz
dHJpbmcgb3IgcHl0ZXN0Lm1hcmsuKiBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGZy
b20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrRGVjb3JhdG9yLCBNQVJLX0dFTgotICAgICAgICBp
ZiBpc2luc3RhbmNlKG1hcmtlciwgc2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAgICAgICBtYXJr
ZXIgPSBnZXRhdHRyKE1BUktfR0VOLCBtYXJrZXIpCi0gICAgICAgIGVsaWYgbm90IGlzaW5zdGFu
Y2UobWFya2VyLCBNYXJrRGVjb3JhdG9yKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
ImlzIG5vdCBhIHN0cmluZyBvciBweXRlc3QubWFyay4qIE1hcmtlciIpCi0gICAgICAgIHNlbGYu
a2V5d29yZHNbbWFya2VyLm5hbWVdID0gbWFya2VyCi0KLSAgICBkZWYgZ2V0X21hcmtlcihzZWxm
LCBuYW1lKToKLSAgICAgICAgIiIiIGdldCBhIG1hcmtlciBvYmplY3QgZnJvbSB0aGlzIG5vZGUg
b3IgTm9uZSBpZgotICAgICAgICB0aGUgbm9kZSBkb2Vzbid0IGhhdmUgYSBtYXJrZXIgd2l0aCB0
aGF0IG5hbWUuICIiIgotICAgICAgICB2YWwgPSBzZWxmLmtleXdvcmRzLmdldChuYW1lLCBOb25l
KQotICAgICAgICBpZiB2YWwgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmcm9tIF9weXRlc3Qu
bWFyayBpbXBvcnQgTWFya0luZm8sIE1hcmtEZWNvcmF0b3IKLSAgICAgICAgICAgIGlmIGlzaW5z
dGFuY2UodmFsLCAoTWFya0RlY29yYXRvciwgTWFya0luZm8pKToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdmFsCi0KLSAgICBkZWYgbGlzdGV4dHJha2V5d29yZHMoc2VsZik6Ci0gICAgICAgICIi
IiBSZXR1cm4gYSBzZXQgb2YgYWxsIGV4dHJhIGtleXdvcmRzIGluIHNlbGYgYW5kIGFueSBwYXJl
bnRzLiIiIgotICAgICAgICBleHRyYV9rZXl3b3JkcyA9IHNldCgpCi0gICAgICAgIGl0ZW0gPSBz
ZWxmCi0gICAgICAgIGZvciBpdGVtIGluIHNlbGYubGlzdGNoYWluKCk6Ci0gICAgICAgICAgICBl
eHRyYV9rZXl3b3Jkcy51cGRhdGUoaXRlbS5leHRyYV9rZXl3b3JkX21hdGNoZXMpCi0gICAgICAg
IHJldHVybiBleHRyYV9rZXl3b3JkcwotCi0gICAgZGVmIGxpc3RuYW1lcyhzZWxmKToKLSAgICAg
ICAgcmV0dXJuIFt4Lm5hbWUgZm9yIHggaW4gc2VsZi5saXN0Y2hhaW4oKV0KLQotICAgIGRlZiBh
ZGRmaW5hbGl6ZXIoc2VsZiwgZmluKToKLSAgICAgICAgIiIiIHJlZ2lzdGVyIGEgZnVuY3Rpb24g
dG8gYmUgY2FsbGVkIHdoZW4gdGhpcyBub2RlIGlzIGZpbmFsaXplZC4KLQotICAgICAgICBUaGlz
IG1ldGhvZCBjYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGlzIG5vZGUgaXMgYWN0aXZlCi0gICAg
ICAgIGluIGEgc2V0dXAgY2hhaW4sIGZvciBleGFtcGxlIGR1cmluZyBzZWxmLnNldHVwKCkuCi0g
ICAgICAgICIiIgotICAgICAgICBzZWxmLnNlc3Npb24uX3NldHVwc3RhdGUuYWRkZmluYWxpemVy
KGZpbiwgc2VsZikKLQotICAgIGRlZiBnZXRwYXJlbnQoc2VsZiwgY2xzKToKLSAgICAgICAgIiIi
IGdldCB0aGUgbmV4dCBwYXJlbnQgbm9kZSAoaW5jbHVkaW5nIG91cnNlbGYpCi0gICAgICAgIHdo
aWNoIGlzIGFuIGluc3RhbmNlIG9mIHRoZSBnaXZlbiBjbGFzcyIiIgotICAgICAgICBjdXJyZW50
ID0gc2VsZgotICAgICAgICB3aGlsZSBjdXJyZW50IGFuZCBub3QgaXNpbnN0YW5jZShjdXJyZW50
LCBjbHMpOgotICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50Ci0gICAgICAgIHJl
dHVybiBjdXJyZW50Ci0KLSAgICBkZWYgX3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pOgot
ICAgICAgICBwYXNzCi0KLSAgICBkZWYgX3JlcHJfZmFpbHVyZV9weShzZWxmLCBleGNpbmZvLCBz
dHlsZT1Ob25lKToKLSAgICAgICAgZm0gPSBzZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyCi0g
ICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShmbS5GaXh0dXJlTG9va3VwRXJyb3IpOgot
ICAgICAgICAgICAgcmV0dXJuIGV4Y2luZm8udmFsdWUuZm9ybWF0cmVwcigpCi0gICAgICAgIHRi
ZmlsdGVyID0gVHJ1ZQotICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24uZnVsbHRyYWNlOgot
ICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHRi
ID0gX3B5dGVzdC5fY29kZS5UcmFjZWJhY2soW2V4Y2luZm8udHJhY2ViYWNrWy0xXV0pCi0gICAg
ICAgICAgICBzZWxmLl9wcnVuZXRyYWNlYmFjayhleGNpbmZvKQotICAgICAgICAgICAgaWYgbGVu
KGV4Y2luZm8udHJhY2ViYWNrKSA9PSAwOgotICAgICAgICAgICAgICAgIGV4Y2luZm8udHJhY2Vi
YWNrID0gdGIKLSAgICAgICAgICAgIHRiZmlsdGVyID0gRmFsc2UgICMgcHJ1bmV0cmFjZWJhY2sg
YWxyZWFkeSBkb2VzIGl0Ci0gICAgICAgICAgICBpZiBzdHlsZSA9PSAiYXV0byI6Ci0gICAgICAg
ICAgICAgICAgc3R5bGUgPSAibG9uZyIKLSAgICAgICAgIyBYWFggc2hvdWxkIGV4Y2luZm8uZ2V0
cmVwciByZWNvcmQgYWxsIGRhdGEgYW5kIHRvdGVybWluYWwoKSBwcm9jZXNzIGl0PwotICAgICAg
ICBpZiBzdHlsZSBpcyBOb25lOgotICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRi
c3R5bGUgPT0gInNob3J0IjoKLSAgICAgICAgICAgICAgICBzdHlsZSA9ICJzaG9ydCIKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKLQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBvcy5nZXRjd2QoKQotICAgICAgICAgICAgYWJzcGF0aCA9IEZhbHNl
Ci0gICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgYWJzcGF0aCA9IFRydWUKLQot
ICAgICAgICByZXR1cm4gZXhjaW5mby5nZXRyZXByKGZ1bmNhcmdzPVRydWUsIGFic3BhdGg9YWJz
cGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bG9jYWxzPXNlbGYuY29u
ZmlnLm9wdGlvbi5zaG93bG9jYWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
eWxlPXN0eWxlLCB0YmZpbHRlcj10YmZpbHRlcikKLQotICAgIHJlcHJfZmFpbHVyZSA9IF9yZXBy
X2ZhaWx1cmVfcHkKLQotCi1jbGFzcyBDb2xsZWN0b3IoTm9kZSk6Ci0gICAgIiIiIENvbGxlY3Rv
ciBpbnN0YW5jZXMgY3JlYXRlIGNoaWxkcmVuIHRocm91Z2ggY29sbGVjdCgpCi0gICAgICAgIGFu
ZCB0aHVzIGl0ZXJhdGl2ZWx5IGJ1aWxkIGEgdHJlZS4KLSAgICAiIiIKLQotICAgIGNsYXNzIENv
bGxlY3RFcnJvcihFeGNlcHRpb24pOgotICAgICAgICAiIiIgYW4gZXJyb3IgZHVyaW5nIGNvbGxl
Y3Rpb24sIGNvbnRhaW5zIGEgY3VzdG9tIG1lc3NhZ2UuICIiIgotCi0gICAgZGVmIGNvbGxlY3Qo
c2VsZik6Ci0gICAgICAgICIiIiByZXR1cm5zIGEgbGlzdCBvZiBjaGlsZHJlbiAoaXRlbXMgYW5k
IGNvbGxlY3RvcnMpCi0gICAgICAgICAgICBmb3IgdGhpcyBjb2xsZWN0aW9uIG5vZGUuCi0gICAg
ICAgICIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJhYnN0cmFjdCIpCi0K
LSAgICBkZWYgcmVwcl9mYWlsdXJlKHNlbGYsIGV4Y2luZm8pOgotICAgICAgICAiIiIgcmVwcmVz
ZW50IGEgY29sbGVjdGlvbiBmYWlsdXJlLiAiIiIKLSAgICAgICAgaWYgZXhjaW5mby5lcnJpc2lu
c3RhbmNlKHNlbGYuQ29sbGVjdEVycm9yKToKLSAgICAgICAgICAgIGV4YyA9IGV4Y2luZm8udmFs
dWUKLSAgICAgICAgICAgIHJldHVybiBzdHIoZXhjLmFyZ3NbMF0pCi0gICAgICAgIHJldHVybiBz
ZWxmLl9yZXByX2ZhaWx1cmVfcHkoZXhjaW5mbywgc3R5bGU9InNob3J0IikKLQotICAgIGRlZiBf
cHJ1bmV0cmFjZWJhY2soc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwg
J2ZzcGF0aCcpOgotICAgICAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKLSAg
ICAgICAgICAgIG50cmFjZWJhY2sgPSB0cmFjZWJhY2suY3V0KHBhdGg9c2VsZi5mc3BhdGgpCi0g
ICAgICAgICAgICBpZiBudHJhY2ViYWNrID09IHRyYWNlYmFjazoKLSAgICAgICAgICAgICAgICBu
dHJhY2ViYWNrID0gbnRyYWNlYmFjay5jdXQoZXhjbHVkZXBhdGg9dHJhY2ViYWNrY3V0ZGlyKQot
ICAgICAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSBudHJhY2ViYWNrLmZpbHRlcigpCi0KLQot
Y2xhc3MgRlNDb2xsZWN0b3IoQ29sbGVjdG9yKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnNw
YXRoLCBwYXJlbnQ9Tm9uZSwgY29uZmlnPU5vbmUsIHNlc3Npb249Tm9uZSk6Ci0gICAgICAgIGZz
cGF0aCA9IHB5LnBhdGgubG9jYWwoZnNwYXRoKSAgIyB4eHggb25seSBmb3IgdGVzdF9yZXN1bHRs
b2cucHk/Ci0gICAgICAgIG5hbWUgPSBmc3BhdGguYmFzZW5hbWUKLSAgICAgICAgaWYgcGFyZW50
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmVsID0gZnNwYXRoLnJlbHRvKHBhcmVudC5mc3Bh
dGgpCi0gICAgICAgICAgICBpZiByZWw6Ci0gICAgICAgICAgICAgICAgbmFtZSA9IHJlbAotICAg
ICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZShvcy5zZXAsIG5vZGVzLlNFUCkKLSAgICAgICAg
c3VwZXIoRlNDb2xsZWN0b3IsIHNlbGYpLl9faW5pdF9fKG5hbWUsIHBhcmVudCwgY29uZmlnLCBz
ZXNzaW9uKQotICAgICAgICBzZWxmLmZzcGF0aCA9IGZzcGF0aAotCi0gICAgZGVmIF9jaGVja19p
bml0aWFscGF0aHNfZm9yX3JlbHBhdGgoc2VsZik6Ci0gICAgICAgIGZvciBpbml0aWFscGF0aCBp
biBzZWxmLnNlc3Npb24uX2luaXRpYWxwYXRoczoKLSAgICAgICAgICAgIGlmIHNlbGYuZnNwYXRo
LmNvbW1vbihpbml0aWFscGF0aCkgPT0gaW5pdGlhbHBhdGg6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHNlbGYuZnNwYXRoLnJlbHRvKGluaXRpYWxwYXRoLmRpcm5hbWUpCi0KLSAgICBkZWYgX21h
a2VpZChzZWxmKToKLSAgICAgICAgcmVscGF0aCA9IHNlbGYuZnNwYXRoLnJlbHRvKHNlbGYuY29u
ZmlnLnJvb3RkaXIpCi0KLSAgICAgICAgaWYgbm90IHJlbHBhdGg6Ci0gICAgICAgICAgICByZWxw
YXRoID0gc2VsZi5fY2hlY2tfaW5pdGlhbHBhdGhzX2Zvcl9yZWxwYXRoKCkKLSAgICAgICAgaWYg
b3Muc2VwICE9IG5vZGVzLlNFUDoKLSAgICAgICAgICAgIHJlbHBhdGggPSByZWxwYXRoLnJlcGxh
Y2Uob3Muc2VwLCBub2Rlcy5TRVApCi0gICAgICAgIHJldHVybiByZWxwYXRoCi0KLQotY2xhc3Mg
RmlsZShGU0NvbGxlY3Rvcik6Ci0gICAgIiIiIGJhc2UgY2xhc3MgZm9yIGNvbGxlY3RpbmcgdGVz
dHMgZnJvbSBhIGZpbGUuICIiIgotCi0KLWNsYXNzIEl0ZW0oTm9kZSk6Ci0gICAgIiIiIGEgYmFz
aWMgdGVzdCBpbnZvY2F0aW9uIGl0ZW0uIE5vdGUgdGhhdCBmb3IgYSBzaW5nbGUgZnVuY3Rpb24K
LSAgICB0aGVyZSBtaWdodCBiZSBtdWx0aXBsZSB0ZXN0IGludm9jYXRpb24gaXRlbXMuCi0gICAg
IiIiCi0gICAgbmV4dGl0ZW0gPSBOb25lCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwg
cGFyZW50PU5vbmUsIGNvbmZpZz1Ob25lLCBzZXNzaW9uPU5vbmUpOgotICAgICAgICBzdXBlcihJ
dGVtLCBzZWxmKS5fX2luaXRfXyhuYW1lLCBwYXJlbnQsIGNvbmZpZywgc2Vzc2lvbikKLSAgICAg
ICAgc2VsZi5fcmVwb3J0X3NlY3Rpb25zID0gW10KLQotICAgIGRlZiBhZGRfcmVwb3J0X3NlY3Rp
b24oc2VsZiwgd2hlbiwga2V5LCBjb250ZW50KToKLSAgICAgICAgIiIiCi0gICAgICAgIEFkZHMg
YSBuZXcgcmVwb3J0IHNlY3Rpb24sIHNpbWlsYXIgdG8gd2hhdCdzIGRvbmUgaW50ZXJuYWxseSB0
byBhZGQgc3Rkb3V0IGFuZAotICAgICAgICBzdGRlcnIgY2FwdHVyZWQgb3V0cHV0OjoKLQotICAg
ICAgICAgICAgaXRlbS5hZGRfcmVwb3J0X3NlY3Rpb24oImNhbGwiLCAic3Rkb3V0IiwgInJlcG9y
dCBzZWN0aW9uIGNvbnRlbnRzIikKLQotICAgICAgICA6cGFyYW0gc3RyIHdoZW46Ci0gICAgICAg
ICAgICBPbmUgb2YgdGhlIHBvc3NpYmxlIGNhcHR1cmUgc3RhdGVzLCBgYCJzZXR1cCJgYCwgYGAi
Y2FsbCJgYCwgYGAidGVhcmRvd24iYGAuCi0gICAgICAgIDpwYXJhbSBzdHIga2V5OgotICAgICAg
ICAgICAgTmFtZSBvZiB0aGUgc2VjdGlvbiwgY2FuIGJlIGN1c3RvbWl6ZWQgYXQgd2lsbC4gUHl0
ZXN0IHVzZXMgYGAic3Rkb3V0ImBgIGFuZAotICAgICAgICAgICAgYGAic3RkZXJyImBgIGludGVy
bmFsbHkuCi0KLSAgICAgICAgOnBhcmFtIHN0ciBjb250ZW50OgotICAgICAgICAgICAgVGhlIGZ1
bGwgY29udGVudHMgYXMgYSBzdHJpbmcuCi0gICAgICAgICIiIgotICAgICAgICBpZiBjb250ZW50
OgotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X3NlY3Rpb25zLmFwcGVuZCgod2hlbiwga2V5LCBj
b250ZW50KSkKLQotICAgIGRlZiByZXBvcnRpbmZvKHNlbGYpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5mc3BhdGgsIE5vbmUsICIiCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbG9jYXRpb24oc2Vs
Zik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9sb2NhdGlvbgotICAg
ICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBsb2NhdGlvbiA9IHNlbGYu
cmVwb3J0aW5mbygpCi0gICAgICAgICAgICAjIGJlc3RyZWxwYXRoIGlzIGEgcXVpdGUgc2xvdyBm
dW5jdGlvbgotICAgICAgICAgICAgY2FjaGUgPSBzZWxmLmNvbmZpZy5fX2RpY3RfXy5zZXRkZWZh
dWx0KCJfYmVzdHJlbHBhdGhjYWNoZSIsIHt9KQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIGZzcGF0aCA9IGNhY2hlW2xvY2F0aW9uWzBdXQotICAgICAgICAgICAgZXhjZXB0IEtl
eUVycm9yOgotICAgICAgICAgICAgICAgIGZzcGF0aCA9IHNlbGYuc2Vzc2lvbi5mc3BhdGguYmVz
dHJlbHBhdGgobG9jYXRpb25bMF0pCi0gICAgICAgICAgICAgICAgY2FjaGVbbG9jYXRpb25bMF1d
ID0gZnNwYXRoCi0gICAgICAgICAgICBsb2NhdGlvbiA9IChmc3BhdGgsIGxvY2F0aW9uWzFdLCBz
dHIobG9jYXRpb25bMl0pKQotICAgICAgICAgICAgc2VsZi5fbG9jYXRpb24gPSBsb2NhdGlvbgot
ICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uCi0KLQotY2xhc3MgTm9NYXRjaChFeGNlcHRpb24p
OgotICAgICIiIiByYWlzZWQgaWYgbWF0Y2hpbmcgY2Fubm90IGxvY2F0ZSBhIG1hdGNoaW5nIG5h
bWVzLiAiIiIKLQotCi1jbGFzcyBJbnRlcnJ1cHRlZChLZXlib2FyZEludGVycnVwdCk6Ci0gICAg
IiIiIHNpZ25hbHMgYW4gaW50ZXJydXB0ZWQgdGVzdCBydW4uICIiIgotICAgIF9fbW9kdWxlX18g
PSAnYnVpbHRpbnMnICAjIGZvciBweTMKLQotCi1jbGFzcyBGYWlsZWQoRXhjZXB0aW9uKToKLSAg
ICAiIiIgc2lnbmFscyBhbiBzdG9wIGFzIGZhaWxlZCB0ZXN0IHJ1bi4gIiIiCi0KLQotY2xhc3Mg
U2Vzc2lvbihGU0NvbGxlY3Rvcik6Ci0gICAgSW50ZXJydXB0ZWQgPSBJbnRlcnJ1cHRlZAotICAg
IEZhaWxlZCA9IEZhaWxlZAotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6Ci0gICAg
ICAgIEZTQ29sbGVjdG9yLl9faW5pdF9fKHNlbGYsIGNvbmZpZy5yb290ZGlyLCBwYXJlbnQ9Tm9u
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPWNvbmZpZywgc2Vzc2lvbj1z
ZWxmKQotICAgICAgICBzZWxmLnRlc3RzZmFpbGVkID0gMAotICAgICAgICBzZWxmLnRlc3RzY29s
bGVjdGVkID0gMAotICAgICAgICBzZWxmLnNob3VsZHN0b3AgPSBGYWxzZQotICAgICAgICBzZWxm
LnNob3VsZGZhaWwgPSBGYWxzZQotICAgICAgICBzZWxmLnRyYWNlID0gY29uZmlnLnRyYWNlLnJv
b3QuZ2V0KCJjb2xsZWN0aW9uIikKLSAgICAgICAgc2VsZi5fbm9yZWN1cnNlcGF0dGVybnMgPSBj
b25maWcuZ2V0aW5pKCJub3JlY3Vyc2VkaXJzIikKLSAgICAgICAgc2VsZi5zdGFydGRpciA9IHB5
LnBhdGgubG9jYWwoKQotICAgICAgICBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVy
KHNlbGYsIG5hbWU9InNlc3Npb24iKQotCi0gICAgZGVmIF9tYWtlaWQoc2VsZik6Ci0gICAgICAg
IHJldHVybiAiIgotCi0gICAgQGhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi0gICAgZGVmIHB5dGVz
dF9jb2xsZWN0c3RhcnQoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuc2hvdWxkZmFpbDoKLSAgICAg
ICAgICAgIHJhaXNlIHNlbGYuRmFpbGVkKHNlbGYuc2hvdWxkZmFpbCkKLSAgICAgICAgaWYgc2Vs
Zi5zaG91bGRzdG9wOgotICAgICAgICAgICAgcmFpc2Ugc2VsZi5JbnRlcnJ1cHRlZChzZWxmLnNo
b3VsZHN0b3ApCi0KLSAgICBAaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0
X3J1bnRlc3RfbG9ncmVwb3J0KHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIGlmIHJlcG9ydC5mYWls
ZWQgYW5kIG5vdCBoYXNhdHRyKHJlcG9ydCwgJ3dhc3hmYWlsJyk6Ci0gICAgICAgICAgICBzZWxm
LnRlc3RzZmFpbGVkICs9IDEKLSAgICAgICAgICAgIG1heGZhaWwgPSBzZWxmLmNvbmZpZy5nZXR2
YWx1ZSgibWF4ZmFpbCIpCi0gICAgICAgICAgICBpZiBtYXhmYWlsIGFuZCBzZWxmLnRlc3RzZmFp
bGVkID49IG1heGZhaWw6Ci0gICAgICAgICAgICAgICAgc2VsZi5zaG91bGRmYWlsID0gInN0b3Bw
aW5nIGFmdGVyICVkIGZhaWx1cmVzIiAlICgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0
c2ZhaWxlZCkKLSAgICBweXRlc3RfY29sbGVjdHJlcG9ydCA9IHB5dGVzdF9ydW50ZXN0X2xvZ3Jl
cG9ydAotCi0gICAgZGVmIGlzaW5pdHBhdGgoc2VsZiwgcGF0aCk6Ci0gICAgICAgIHJldHVybiBw
YXRoIGluIHNlbGYuX2luaXRpYWxwYXRocwotCi0gICAgZGVmIGdldGhvb2twcm94eShzZWxmLCBm
c3BhdGgpOgotICAgICAgICAjIGNoZWNrIGlmIHdlIGhhdmUgdGhlIGNvbW1vbiBjYXNlIG9mIHJ1
bm5pbmcKLSAgICAgICAgIyBob29rcyB3aXRoIGFsbCBjb25mdGVzdC5weSBmaWxlc2FsbCBjb25m
dGVzdC5weQotICAgICAgICBwbSA9IHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIKLSAgICAgICAg
bXlfY29uZnRlc3Rtb2R1bGVzID0gcG0uX2dldGNvbmZ0ZXN0bW9kdWxlcyhmc3BhdGgpCi0gICAg
ICAgIHJlbW92ZV9tb2RzID0gcG0uX2NvbmZ0ZXN0X3BsdWdpbnMuZGlmZmVyZW5jZShteV9jb25m
dGVzdG1vZHVsZXMpCi0gICAgICAgIGlmIHJlbW92ZV9tb2RzOgotICAgICAgICAgICAgIyBvbmUg
b3IgbW9yZSBjb25mdGVzdHMgYXJlIG5vdCBpbiB1c2UgYXQgdGhpcyBmc3BhdGgKLSAgICAgICAg
ICAgIHByb3h5ID0gRlNIb29rUHJveHkoZnNwYXRoLCBwbSwgcmVtb3ZlX21vZHMpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAjIGFsbCBwbHVnaXMgYXJlIGFjdGl2ZSBmb3IgdGhpcyBmc3Bh
dGgKLSAgICAgICAgICAgIHByb3h5ID0gc2VsZi5jb25maWcuaG9vawotICAgICAgICByZXR1cm4g
cHJveHkKLQotICAgIGRlZiBwZXJmb3JtX2NvbGxlY3Qoc2VsZiwgYXJncz1Ob25lLCBnZW5pdGVt
cz1UcnVlKToKLSAgICAgICAgaG9vayA9IHNlbGYuY29uZmlnLmhvb2sKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgaXRlbXMgPSBzZWxmLl9wZXJmb3JtX2NvbGxlY3QoYXJncywgZ2VuaXRlbXMp
Ci0gICAgICAgICAgICBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmNoZWNrX3BlbmRpbmcoKQot
ICAgICAgICAgICAgaG9vay5weXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhzZXNzaW9uPXNl
bGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZp
Zz1zZWxmLmNvbmZpZywgaXRlbXM9aXRlbXMpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICBob29rLnB5dGVzdF9jb2xsZWN0aW9uX2ZpbmlzaChzZXNzaW9uPXNlbGYpCi0gICAgICAgIHNl
bGYudGVzdHNjb2xsZWN0ZWQgPSBsZW4oaXRlbXMpCi0gICAgICAgIHJldHVybiBpdGVtcwotCi0g
ICAgZGVmIF9wZXJmb3JtX2NvbGxlY3Qoc2VsZiwgYXJncywgZ2VuaXRlbXMpOgotICAgICAgICBp
ZiBhcmdzIGlzIE5vbmU6Ci0gICAgICAgICAgICBhcmdzID0gc2VsZi5jb25maWcuYXJncwotICAg
ICAgICBzZWxmLnRyYWNlKCJwZXJmb3JtX2NvbGxlY3QiLCBzZWxmLCBhcmdzKQotICAgICAgICBz
ZWxmLnRyYWNlLnJvb3QuaW5kZW50ICs9IDEKLSAgICAgICAgc2VsZi5fbm90Zm91bmQgPSBbXQot
ICAgICAgICBzZWxmLl9pbml0aWFscGF0aHMgPSBzZXQoKQotICAgICAgICBzZWxmLl9pbml0aWFs
cGFydHMgPSBbXQotICAgICAgICBzZWxmLml0ZW1zID0gaXRlbXMgPSBbXQotICAgICAgICBmb3Ig
YXJnIGluIGFyZ3M6Ci0gICAgICAgICAgICBwYXJ0cyA9IHNlbGYuX3BhcnNlYXJnKGFyZykKLSAg
ICAgICAgICAgIHNlbGYuX2luaXRpYWxwYXJ0cy5hcHBlbmQocGFydHMpCi0gICAgICAgICAgICBz
ZWxmLl9pbml0aWFscGF0aHMuYWRkKHBhcnRzWzBdKQotICAgICAgICByZXAgPSBjb2xsZWN0X29u
ZV9ub2RlKHNlbGYpCi0gICAgICAgIHNlbGYuaWhvb2sucHl0ZXN0X2NvbGxlY3RyZXBvcnQocmVw
b3J0PXJlcCkKLSAgICAgICAgc2VsZi50cmFjZS5yb290LmluZGVudCAtPSAxCi0gICAgICAgIGlm
IHNlbGYuX25vdGZvdW5kOgotICAgICAgICAgICAgZXJyb3JzID0gW10KLSAgICAgICAgICAgIGZv
ciBhcmcsIGV4YyBpbiBzZWxmLl9ub3Rmb3VuZDoKLSAgICAgICAgICAgICAgICBsaW5lID0gIihu
byBuYW1lICVyIGluIGFueSBvZiAlcikiICUgKGFyZywgZXhjLmFyZ3NbMF0pCi0gICAgICAgICAg
ICAgICAgZXJyb3JzLmFwcGVuZCgibm90IGZvdW5kOiAlc1xuJXMiICUgKGFyZywgbGluZSkpCi0g
ICAgICAgICAgICAgICAgIyBYWFg6IHRlc3QgdGhpcwotICAgICAgICAgICAgcmFpc2UgVXNhZ2VF
cnJvcigqZXJyb3JzKQotICAgICAgICBpZiBub3QgZ2VuaXRlbXM6Ci0gICAgICAgICAgICByZXR1
cm4gcmVwLnJlc3VsdAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgcmVwLnBhc3NlZDoK
LSAgICAgICAgICAgICAgICBmb3Igbm9kZSBpbiByZXAucmVzdWx0OgotICAgICAgICAgICAgICAg
ICAgICBzZWxmLml0ZW1zLmV4dGVuZChzZWxmLmdlbml0ZW1zKG5vZGUpKQotICAgICAgICAgICAg
cmV0dXJuIGl0ZW1zCi0KLSAgICBkZWYgY29sbGVjdChzZWxmKToKLSAgICAgICAgZm9yIHBhcnRz
IGluIHNlbGYuX2luaXRpYWxwYXJ0czoKLSAgICAgICAgICAgIGFyZyA9ICI6OiIuam9pbihtYXAo
c3RyLCBwYXJ0cykpCi0gICAgICAgICAgICBzZWxmLnRyYWNlKCJwcm9jZXNzaW5nIGFyZ3VtZW50
IiwgYXJnKQotICAgICAgICAgICAgc2VsZi50cmFjZS5yb290LmluZGVudCArPSAxCi0gICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZm9yIHggaW4gc2VsZi5fY29sbGVjdChhcmcpOgot
ICAgICAgICAgICAgICAgICAgICB5aWVsZCB4Ci0gICAgICAgICAgICBleGNlcHQgTm9NYXRjaDoK
LSAgICAgICAgICAgICAgICAjIHdlIGFyZSBpbnNpZGUgYSBtYWtlX3JlcG9ydCBob29rIHNvCi0g
ICAgICAgICAgICAgICAgIyB3ZSBjYW5ub3QgZGlyZWN0bHkgcGFzcyB0aHJvdWdoIHRoZSBleGNl
cHRpb24KLSAgICAgICAgICAgICAgICBzZWxmLl9ub3Rmb3VuZC5hcHBlbmQoKGFyZywgc3lzLmV4
Y19pbmZvKClbMV0pKQotCi0gICAgICAgICAgICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50IC09IDEK
LQotICAgIGRlZiBfY29sbGVjdChzZWxmLCBhcmcpOgotICAgICAgICBuYW1lcyA9IHNlbGYuX3Bh
cnNlYXJnKGFyZykKLSAgICAgICAgcGF0aCA9IG5hbWVzLnBvcCgwKQotICAgICAgICBpZiBwYXRo
LmNoZWNrKGRpcj0xKToKLSAgICAgICAgICAgIGFzc2VydCBub3QgbmFtZXMsICJpbnZhbGlkIGFy
ZyAlciIgJSAoYXJnLCkKLSAgICAgICAgICAgIGZvciBwYXRoIGluIHBhdGgudmlzaXQoZmlsPWxh
bWJkYSB4OiB4LmNoZWNrKGZpbGU9MSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlYz1zZWxmLl9yZWN1cnNlLCBiZj1UcnVlLCBzb3J0PVRydWUpOgotICAgICAgICAgICAg
ICAgIGZvciB4IGluIHNlbGYuX2NvbGxlY3RmaWxlKHBhdGgpOgotICAgICAgICAgICAgICAgICAg
ICB5aWVsZCB4Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBhc3NlcnQgcGF0aC5jaGVjayhm
aWxlPTEpCi0gICAgICAgICAgICBmb3IgeCBpbiBzZWxmLm1hdGNobm9kZXMoc2VsZi5fY29sbGVj
dGZpbGUocGF0aCksIG5hbWVzKToKLSAgICAgICAgICAgICAgICB5aWVsZCB4Ci0KLSAgICBkZWYg
X2NvbGxlY3RmaWxlKHNlbGYsIHBhdGgpOgotICAgICAgICBpaG9vayA9IHNlbGYuZ2V0aG9va3By
b3h5KHBhdGgpCi0gICAgICAgIGlmIG5vdCBzZWxmLmlzaW5pdHBhdGgocGF0aCk6Ci0gICAgICAg
ICAgICBpZiBpaG9vay5weXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aD1wYXRoLCBjb25maWc9c2Vs
Zi5jb25maWcpOgotICAgICAgICAgICAgICAgIHJldHVybiAoKQotICAgICAgICByZXR1cm4gaWhv
b2sucHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoPXBhdGgsIHBhcmVudD1zZWxmKQotCi0gICAgZGVm
IF9yZWN1cnNlKHNlbGYsIHBhdGgpOgotICAgICAgICBpaG9vayA9IHNlbGYuZ2V0aG9va3Byb3h5
KHBhdGguZGlycGF0aCgpKQotICAgICAgICBpZiBpaG9vay5weXRlc3RfaWdub3JlX2NvbGxlY3Qo
cGF0aD1wYXRoLCBjb25maWc9c2VsZi5jb25maWcpOgotICAgICAgICAgICAgcmV0dXJuCi0gICAg
ICAgIGZvciBwYXQgaW4gc2VsZi5fbm9yZWN1cnNlcGF0dGVybnM6Ci0gICAgICAgICAgICBpZiBw
YXRoLmNoZWNrKGZubWF0Y2g9cGF0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAg
ICAgICAgaWhvb2sgPSBzZWxmLmdldGhvb2twcm94eShwYXRoKQotICAgICAgICBpaG9vay5weXRl
c3RfY29sbGVjdF9kaXJlY3RvcnkocGF0aD1wYXRoLCBwYXJlbnQ9c2VsZikKLSAgICAgICAgcmV0
dXJuIFRydWUKLQotICAgIGRlZiBfdHJ5Y29udmVydHB5YXJnKHNlbGYsIHgpOgotICAgICAgICAi
IiJDb252ZXJ0IGEgZG90dGVkIG1vZHVsZSBuYW1lIHRvIHBhdGguCi0KLSAgICAgICAgIiIiCi0g
ICAgICAgIGltcG9ydCBwa2d1dGlsCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGxvYWRlciA9
IHBrZ3V0aWwuZmluZF9sb2FkZXIoeCkKLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAg
ICAgICAgICAgcmV0dXJuIHgKLSAgICAgICAgaWYgbG9hZGVyIGlzIE5vbmU6Ci0gICAgICAgICAg
ICByZXR1cm4geAotICAgICAgICAjIFRoaXMgbWV0aG9kIGlzIHNvbWV0aW1lcyBpbnZva2VkIHdo
ZW4gQXNzZXJ0aW9uUmV3cml0aW5nSG9vaywgd2hpY2gKLSAgICAgICAgIyBkb2VzIG5vdCBkZWZp
bmUgYSBnZXRfZmlsZW5hbWUgbWV0aG9kLCBpcyBhbHJlYWR5IGluIHBsYWNlOgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBwYXRoID0gbG9hZGVyLmdldF9maWxlbmFtZSh4KQotICAgICAgICBl
eGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAjIFJldHJpZXZlIHBhdGggZnJvbSBB
c3NlcnRpb25SZXdyaXRpbmdIb29rOgotICAgICAgICAgICAgcGF0aCA9IGxvYWRlci5tb2R1bGVz
W3hdWzBdLmNvX2ZpbGVuYW1lCi0gICAgICAgIGlmIGxvYWRlci5pc19wYWNrYWdlKHgpOgotICAg
ICAgICAgICAgcGF0aCA9IG9zLnBhdGguZGlybmFtZShwYXRoKQotICAgICAgICByZXR1cm4gcGF0
aAotCi0gICAgZGVmIF9wYXJzZWFyZyhzZWxmLCBhcmcpOgotICAgICAgICAiIiIgcmV0dXJuIChm
c3BhdGgsIG5hbWVzKSB0dXBsZSBhZnRlciBjaGVja2luZyB0aGUgZmlsZSBleGlzdHMuICIiIgot
ICAgICAgICBwYXJ0cyA9IHN0cihhcmcpLnNwbGl0KCI6OiIpCi0gICAgICAgIGlmIHNlbGYuY29u
ZmlnLm9wdGlvbi5weWFyZ3M6Ci0gICAgICAgICAgICBwYXJ0c1swXSA9IHNlbGYuX3RyeWNvbnZl
cnRweWFyZyhwYXJ0c1swXSkKLSAgICAgICAgcmVscGF0aCA9IHBhcnRzWzBdLnJlcGxhY2UoIi8i
LCBvcy5zZXApCi0gICAgICAgIHBhdGggPSBzZWxmLmNvbmZpZy5pbnZvY2F0aW9uX2Rpci5qb2lu
KHJlbHBhdGgsIGFicz1UcnVlKQotICAgICAgICBpZiBub3QgcGF0aC5jaGVjaygpOgotICAgICAg
ICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnB5YXJnczoKLSAgICAgICAgICAgICAgICByYWlz
ZSBVc2FnZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAiZmlsZSBvciBwYWNrYWdlIG5vdCBm
b3VuZDogIiArIGFyZyArCi0gICAgICAgICAgICAgICAgICAgICIgKG1pc3NpbmcgX19pbml0X18u
cHk/KSIpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFVzYWdlRXJy
b3IoImZpbGUgbm90IGZvdW5kOiAiICsgYXJnKQotICAgICAgICBwYXJ0c1swXSA9IHBhdGgKLSAg
ICAgICAgcmV0dXJuIHBhcnRzCi0KLSAgICBkZWYgbWF0Y2hub2RlcyhzZWxmLCBtYXRjaGluZywg
bmFtZXMpOgotICAgICAgICBzZWxmLnRyYWNlKCJtYXRjaG5vZGVzIiwgbWF0Y2hpbmcsIG5hbWVz
KQotICAgICAgICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50ICs9IDEKLSAgICAgICAgbm9kZXMgPSBz
ZWxmLl9tYXRjaG5vZGVzKG1hdGNoaW5nLCBuYW1lcykKLSAgICAgICAgbnVtID0gbGVuKG5vZGVz
KQotICAgICAgICBzZWxmLnRyYWNlKCJtYXRjaG5vZGVzIGZpbmlzaGVkIC0+ICIsIG51bSwgIm5v
ZGVzIikKLSAgICAgICAgc2VsZi50cmFjZS5yb290LmluZGVudCAtPSAxCi0gICAgICAgIGlmIG51
bSA9PSAwOgotICAgICAgICAgICAgcmFpc2UgTm9NYXRjaChtYXRjaGluZywgbmFtZXNbOjFdKQot
ICAgICAgICByZXR1cm4gbm9kZXMKLQotICAgIGRlZiBfbWF0Y2hub2RlcyhzZWxmLCBtYXRjaGlu
ZywgbmFtZXMpOgotICAgICAgICBpZiBub3QgbWF0Y2hpbmcgb3Igbm90IG5hbWVzOgotICAgICAg
ICAgICAgcmV0dXJuIG1hdGNoaW5nCi0gICAgICAgIG5hbWUgPSBuYW1lc1swXQotICAgICAgICBh
c3NlcnQgbmFtZQotICAgICAgICBuZXh0bmFtZXMgPSBuYW1lc1sxOl0KLSAgICAgICAgcmVzdWx0
bm9kZXMgPSBbXQotICAgICAgICBmb3Igbm9kZSBpbiBtYXRjaGluZzoKLSAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2Uobm9kZSwgSXRlbSk6Ci0gICAgICAgICAgICAgICAgaWYgbm90IG5hbWVzOgot
ICAgICAgICAgICAgICAgICAgICByZXN1bHRub2Rlcy5hcHBlbmQobm9kZSkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZQotICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uobm9kZSwgQ29sbGVj
dG9yKQotICAgICAgICAgICAgcmVwID0gY29sbGVjdF9vbmVfbm9kZShub2RlKQotICAgICAgICAg
ICAgaWYgcmVwLnBhc3NlZDoKLSAgICAgICAgICAgICAgICBoYXNfbWF0Y2hlZCA9IEZhbHNlCi0g
ICAgICAgICAgICAgICAgZm9yIHggaW4gcmVwLnJlc3VsdDoKLSAgICAgICAgICAgICAgICAgICAg
IyBUT0RPOiByZW1vdmUgcGFyYW1ldHJpemVkIHdvcmthcm91bmQgb25jZSBjb2xsZWN0aW9uIHN0
cnVjdHVyZSBjb250YWlucyBwYXJhbWV0cml6YXRpb24KLSAgICAgICAgICAgICAgICAgICAgaWYg
eC5uYW1lID09IG5hbWUgb3IgeC5uYW1lLnNwbGl0KCJbIilbMF0gPT0gbmFtZToKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdG5vZGVzLmV4dGVuZChzZWxmLm1hdGNobm9kZXMoW3hdLCBu
ZXh0bmFtZXMpKQotICAgICAgICAgICAgICAgICAgICAgICAgaGFzX21hdGNoZWQgPSBUcnVlCi0g
ICAgICAgICAgICAgICAgIyBYWFggYWNjZXB0IElEcyB0aGF0IGRvbid0IGhhdmUgIigpIiBmb3Ig
Y2xhc3MgaW5zdGFuY2VzCi0gICAgICAgICAgICAgICAgaWYgbm90IGhhc19tYXRjaGVkIGFuZCBs
ZW4ocmVwLnJlc3VsdCkgPT0gMSBhbmQgeC5uYW1lID09ICIoKSI6Ci0gICAgICAgICAgICAgICAg
ICAgIG5leHRuYW1lcy5pbnNlcnQoMCwgbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0
bm9kZXMuZXh0ZW5kKHNlbGYubWF0Y2hub2RlcyhbeF0sIG5leHRuYW1lcykpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgICMgcmVwb3J0IGNvbGxlY3Rpb24gZmFpbHVyZXMgaGVy
ZSB0byBhdm9pZCBmYWlsaW5nIHRvIHJ1biBzb21lIHRlc3QKLSAgICAgICAgICAgICAgICAjIHNw
ZWNpZmllZCBpbiB0aGUgY29tbWFuZCBsaW5lIGJlY2F1c2UgdGhlIG1vZHVsZSBjb3VsZCBub3Qg
YmUKLSAgICAgICAgICAgICAgICAjIGltcG9ydGVkICgjMTM0KQotICAgICAgICAgICAgICAgIG5v
ZGUuaWhvb2sucHl0ZXN0X2NvbGxlY3RyZXBvcnQocmVwb3J0PXJlcCkKLSAgICAgICAgcmV0dXJu
IHJlc3VsdG5vZGVzCi0KLSAgICBkZWYgZ2VuaXRlbXMoc2VsZiwgbm9kZSk6Ci0gICAgICAgIHNl
bGYudHJhY2UoImdlbml0ZW1zIiwgbm9kZSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlLCBJ
dGVtKToKLSAgICAgICAgICAgIG5vZGUuaWhvb2sucHl0ZXN0X2l0ZW1jb2xsZWN0ZWQoaXRlbT1u
b2RlKQotICAgICAgICAgICAgeWllbGQgbm9kZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2Uobm9kZSwgQ29sbGVjdG9yKQotICAgICAgICAgICAgcmVwID0gY29s
bGVjdF9vbmVfbm9kZShub2RlKQotICAgICAgICAgICAgaWYgcmVwLnBhc3NlZDoKLSAgICAgICAg
ICAgICAgICBmb3Igc3Vibm9kZSBpbiByZXAucmVzdWx0OgotICAgICAgICAgICAgICAgICAgICBm
b3IgeCBpbiBzZWxmLmdlbml0ZW1zKHN1Ym5vZGUpOgotICAgICAgICAgICAgICAgICAgICAgICAg
eWllbGQgeAotICAgICAgICAgICAgbm9kZS5paG9vay5weXRlc3RfY29sbGVjdHJlcG9ydChyZXBv
cnQ9cmVwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYXJrLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9tYXJrLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjFm
MDFiMWEyZTM0ZGIzNWNiMjYxYTNmYjQ5MGYxYzQ2NTdkNGQxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFyay5weQor
KysgL2Rldi9udWxsCkBAIC0xLDQ5NiArMCwwIEBACi0iIiIgZ2VuZXJpYyBtZWNoYW5pc20gZm9y
IG1hcmtpbmcgYW5kIHNlbGVjdGluZyBweXRob24gZnVuY3Rpb25zLiAiIiIKLWZyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQot
aW1wb3J0IGluc3BlY3QKLWltcG9ydCB3YXJuaW5ncwotaW1wb3J0IGF0dHIKLWZyb20gY29sbGVj
dGlvbnMgaW1wb3J0IG5hbWVkdHVwbGUKLWZyb20gb3BlcmF0b3IgaW1wb3J0IGF0dHJnZXR0ZXIK
LWZyb20gc2l4Lm1vdmVzIGltcG9ydCBtYXAKLWZyb20gLmRlcHJlY2F0ZWQgaW1wb3J0IE1BUktf
UEFSQU1FVEVSU0VUX1VOUEFDS0lORwotZnJvbSAuY29tcGF0IGltcG9ydCBOT1RTRVQsIGdldGZz
bGluZW5vCi0KLQotZGVmIGFsaWFzKG5hbWUsIHdhcm5pbmc9Tm9uZSk6Ci0gICAgZ2V0dGVyID0g
YXR0cmdldHRlcihuYW1lKQotCi0gICAgZGVmIHdhcm5lZChzZWxmKToKLSAgICAgICAgd2Fybmlu
Z3Mud2Fybih3YXJuaW5nLCBzdGFja2xldmVsPTIpCi0gICAgICAgIHJldHVybiBnZXR0ZXIoc2Vs
ZikKLQotICAgIHJldHVybiBwcm9wZXJ0eShnZXR0ZXIgaWYgd2FybmluZyBpcyBOb25lIGVsc2Ug
d2FybmVkLCBkb2M9J2FsaWFzIGZvciAnICsgbmFtZSkKLQotCi1jbGFzcyBQYXJhbWV0ZXJTZXQo
bmFtZWR0dXBsZSgnUGFyYW1ldGVyU2V0JywgJ3ZhbHVlcywgbWFya3MsIGlkJykpOgotICAgIEBj
bGFzc21ldGhvZAotICAgIGRlZiBwYXJhbShjbHMsICp2YWx1ZXMsICoqa3cpOgotICAgICAgICBt
YXJrcyA9IGt3LnBvcCgnbWFya3MnLCAoKSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShtYXJrcywg
TWFya0RlY29yYXRvcik6Ci0gICAgICAgICAgICBtYXJrcyA9IG1hcmtzLAotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobWFya3MsICh0dXBsZSwgbGlzdCwgc2V0
KSkKLQotICAgICAgICBkZWYgcGFyYW1fZXh0cmFjdF9pZChpZD1Ob25lKToKLSAgICAgICAgICAg
IHJldHVybiBpZAotCi0gICAgICAgIGlkID0gcGFyYW1fZXh0cmFjdF9pZCgqKmt3KQotICAgICAg
ICByZXR1cm4gY2xzKHZhbHVlcywgbWFya3MsIGlkKQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAg
ZGVmIGV4dHJhY3RfZnJvbShjbHMsIHBhcmFtZXRlcnNldCwgbGVnYWN5X2ZvcmNlX3R1cGxlPUZh
bHNlKToKLSAgICAgICAgIiIiCi0gICAgICAgIDpwYXJhbSBwYXJhbWV0ZXJzZXQ6Ci0gICAgICAg
ICAgICBhIGxlZ2FjeSBzdHlsZSBwYXJhbWV0ZXJzZXQgdGhhdCBtYXkgb3IgbWF5IG5vdCBiZSBh
IHR1cGxlLAotICAgICAgICAgICAgYW5kIG1heSBvciBtYXkgbm90IGJlIHdyYXBwZWQgaW50byBh
IG1lc3Mgb2YgbWFyayBvYmplY3RzCi0KLSAgICAgICAgOnBhcmFtIGxlZ2FjeV9mb3JjZV90dXBs
ZToKLSAgICAgICAgICAgIGVuZm9yY2UgdHVwbGUgd3JhcHBpbmcgc28gc2luZ2xlIGFyZ3VtZW50
IHR1cGxlIHZhbHVlcwotICAgICAgICAgICAgZG9uJ3QgZ2V0IGRlY29tcG9zZWQgYW5kIGJyZWFr
IHRlc3RzCi0KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgaXNpbnN0YW5jZShwYXJhbWV0ZXJz
ZXQsIGNscyk6Ci0gICAgICAgICAgICByZXR1cm4gcGFyYW1ldGVyc2V0Ci0gICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKHBhcmFtZXRlcnNldCwgTWFya0RlY29yYXRvcikgYW5kIGxlZ2FjeV9mb3Jj
ZV90dXBsZToKLSAgICAgICAgICAgIHJldHVybiBjbHMucGFyYW0ocGFyYW1ldGVyc2V0KQotCi0g
ICAgICAgIG5ld21hcmtzID0gW10KLSAgICAgICAgYXJndmFsID0gcGFyYW1ldGVyc2V0Ci0gICAg
ICAgIHdoaWxlIGlzaW5zdGFuY2UoYXJndmFsLCBNYXJrRGVjb3JhdG9yKToKLSAgICAgICAgICAg
IG5ld21hcmtzLmFwcGVuZChNYXJrRGVjb3JhdG9yKE1hcmsoCi0gICAgICAgICAgICAgICAgYXJn
dmFsLm1hcmtuYW1lLCBhcmd2YWwuYXJnc1s6LTFdLCBhcmd2YWwua3dhcmdzKSkpCi0gICAgICAg
ICAgICBhcmd2YWwgPSBhcmd2YWwuYXJnc1stMV0KLSAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3Rh
bmNlKGFyZ3ZhbCwgUGFyYW1ldGVyU2V0KQotICAgICAgICBpZiBsZWdhY3lfZm9yY2VfdHVwbGU6
Ci0gICAgICAgICAgICBhcmd2YWwgPSBhcmd2YWwsCi0KLSAgICAgICAgaWYgbmV3bWFya3M6Ci0g
ICAgICAgICAgICB3YXJuaW5ncy53YXJuKE1BUktfUEFSQU1FVEVSU0VUX1VOUEFDS0lORykKLQot
ICAgICAgICByZXR1cm4gY2xzKGFyZ3ZhbCwgbWFya3M9bmV3bWFya3MsIGlkPU5vbmUpCi0KLSAg
ICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX2Zvcl9wYXJhbWV0ZXJpemUoY2xzLCBhcmduYW1lcywg
YXJndmFsdWVzLCBmdW5jdGlvbik6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ25hbWVz
LCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAgICAgIGFyZ25hbWVzID0gW3guc3RyaXAoKSBmb3Ig
eCBpbiBhcmduYW1lcy5zcGxpdCgiLCIpIGlmIHguc3RyaXAoKV0KLSAgICAgICAgICAgIGZvcmNl
X3R1cGxlID0gbGVuKGFyZ25hbWVzKSA9PSAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBm
b3JjZV90dXBsZSA9IEZhbHNlCi0gICAgICAgIHBhcmFtZXRlcnMgPSBbCi0gICAgICAgICAgICBQ
YXJhbWV0ZXJTZXQuZXh0cmFjdF9mcm9tKHgsIGxlZ2FjeV9mb3JjZV90dXBsZT1mb3JjZV90dXBs
ZSkKLSAgICAgICAgICAgIGZvciB4IGluIGFyZ3ZhbHVlc10KLSAgICAgICAgZGVsIGFyZ3ZhbHVl
cwotCi0gICAgICAgIGlmIG5vdCBwYXJhbWV0ZXJzOgotICAgICAgICAgICAgZnMsIGxpbmVubyA9
IGdldGZzbGluZW5vKGZ1bmN0aW9uKQotICAgICAgICAgICAgcmVhc29uID0gImdvdCBlbXB0eSBw
YXJhbWV0ZXIgc2V0ICVyLCBmdW5jdGlvbiAlcyBhdCAlczolZCIgJSAoCi0gICAgICAgICAgICAg
ICAgYXJnbmFtZXMsIGZ1bmN0aW9uLl9fbmFtZV9fLCBmcywgbGluZW5vKQotICAgICAgICAgICAg
bWFyayA9IE1BUktfR0VOLnNraXAocmVhc29uPXJlYXNvbikKLSAgICAgICAgICAgIHBhcmFtZXRl
cnMuYXBwZW5kKFBhcmFtZXRlclNldCgKLSAgICAgICAgICAgICAgICB2YWx1ZXM9KE5PVFNFVCwp
ICogbGVuKGFyZ25hbWVzKSwKLSAgICAgICAgICAgICAgICBtYXJrcz1bbWFya10sCi0gICAgICAg
ICAgICAgICAgaWQ9Tm9uZSwKLSAgICAgICAgICAgICkpCi0gICAgICAgIHJldHVybiBhcmduYW1l
cywgcGFyYW1ldGVycwotCi0KLWNsYXNzIE1hcmtlckVycm9yKEV4Y2VwdGlvbik6Ci0KLSAgICAi
IiJFcnJvciBpbiB1c2Ugb2YgYSBweXRlc3QgbWFya2VyL2F0dHJpYnV0ZS4iIiIKLQotCi1kZWYg
cGFyYW0oKnZhbHVlcywgKiprdyk6Ci0gICAgcmV0dXJuIFBhcmFtZXRlclNldC5wYXJhbSgqdmFs
dWVzLCAqKmt3KQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAg
PSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQotICAgIGdyb3VwLl9hZGRvcHRpb24oCi0gICAg
ICAgICctaycsCi0gICAgICAgIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJrZXl3b3JkIiwgZGVmYXVs
dD0nJywgbWV0YXZhcj0iRVhQUkVTU0lPTiIsCi0gICAgICAgIGhlbHA9Im9ubHkgcnVuIHRlc3Rz
IHdoaWNoIG1hdGNoIHRoZSBnaXZlbiBzdWJzdHJpbmcgZXhwcmVzc2lvbi4gIgotICAgICAgICAg
ICAgICJBbiBleHByZXNzaW9uIGlzIGEgcHl0aG9uIGV2YWx1YXRhYmxlIGV4cHJlc3Npb24gIgot
ICAgICAgICAgICAgICJ3aGVyZSBhbGwgbmFtZXMgYXJlIHN1YnN0cmluZy1tYXRjaGVkIGFnYWlu
c3QgdGVzdCBuYW1lcyAiCi0gICAgICAgICAgICAgImFuZCB0aGVpciBwYXJlbnQgY2xhc3Nlcy4g
RXhhbXBsZTogLWsgJ3Rlc3RfbWV0aG9kIG9yIHRlc3RfIgotICAgICAgICAgICAgICJvdGhlcicg
bWF0Y2hlcyBhbGwgdGVzdCBmdW5jdGlvbnMgYW5kIGNsYXNzZXMgd2hvc2UgbmFtZSAiCi0gICAg
ICAgICAgICAgImNvbnRhaW5zICd0ZXN0X21ldGhvZCcgb3IgJ3Rlc3Rfb3RoZXInLCB3aGlsZSAt
ayAnbm90IHRlc3RfbWV0aG9kJyAiCi0gICAgICAgICAgICAgIm1hdGNoZXMgdGhvc2UgdGhhdCBk
b24ndCBjb250YWluICd0ZXN0X21ldGhvZCcgaW4gdGhlaXIgbmFtZXMuICIKLSAgICAgICAgICAg
ICAiQWRkaXRpb25hbGx5IGtleXdvcmRzIGFyZSBtYXRjaGVkIHRvIGNsYXNzZXMgYW5kIGZ1bmN0
aW9ucyAiCi0gICAgICAgICAgICAgImNvbnRhaW5pbmcgZXh0cmEgbmFtZXMgaW4gdGhlaXIgJ2V4
dHJhX2tleXdvcmRfbWF0Y2hlcycgc2V0LCAiCi0gICAgICAgICAgICAgImFzIHdlbGwgYXMgZnVu
Y3Rpb25zIHdoaWNoIGhhdmUgbmFtZXMgYXNzaWduZWQgZGlyZWN0bHkgdG8gdGhlbS4iCi0gICAg
KQotCi0gICAgZ3JvdXAuX2FkZG9wdGlvbigKLSAgICAgICAgIi1tIiwKLSAgICAgICAgYWN0aW9u
PSJzdG9yZSIsIGRlc3Q9Im1hcmtleHByIiwgZGVmYXVsdD0iIiwgbWV0YXZhcj0iTUFSS0VYUFIi
LAotICAgICAgICBoZWxwPSJvbmx5IHJ1biB0ZXN0cyBtYXRjaGluZyBnaXZlbiBtYXJrIGV4cHJl
c3Npb24uICAiCi0gICAgICAgICAgICAgImV4YW1wbGU6IC1tICdtYXJrMSBhbmQgbm90IG1hcmsy
Jy4iCi0gICAgKQotCi0gICAgZ3JvdXAuYWRkb3B0aW9uKAotICAgICAgICAiLS1tYXJrZXJzIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgaGVscD0ic2hvdyBtYXJrZXJzIChidWlsdGlu
LCBwbHVnaW4gYW5kIHBlci1wcm9qZWN0IG9uZXMpLiIKLSAgICApCi0KLSAgICBwYXJzZXIuYWRk
aW5pKCJtYXJrZXJzIiwgIm1hcmtlcnMgZm9yIHRlc3QgZnVuY3Rpb25zIiwgJ2xpbmVsaXN0JykK
LQotCi1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgotICAgIGltcG9ydCBfcHl0ZXN0
LmNvbmZpZwotICAgIGlmIGNvbmZpZy5vcHRpb24ubWFya2VyczoKLSAgICAgICAgY29uZmlnLl9k
b19jb25maWd1cmUoKQotICAgICAgICB0dyA9IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5h
bF93cml0ZXIoY29uZmlnKQotICAgICAgICBmb3IgbGluZSBpbiBjb25maWcuZ2V0aW5pKCJtYXJr
ZXJzIik6Ci0gICAgICAgICAgICBwYXJ0cyA9IGxpbmUuc3BsaXQoIjoiLCAxKQotICAgICAgICAg
ICAgbmFtZSA9IHBhcnRzWzBdCi0gICAgICAgICAgICByZXN0ID0gcGFydHNbMV0gaWYgbGVuKHBh
cnRzKSA9PSAyIGVsc2UgJycKLSAgICAgICAgICAgIHR3LndyaXRlKCJAcHl0ZXN0Lm1hcmsuJXM6
IiAlIG5hbWUsIGJvbGQ9VHJ1ZSkKLSAgICAgICAgICAgIHR3LmxpbmUocmVzdCkKLSAgICAgICAg
ICAgIHR3LmxpbmUoKQotICAgICAgICBjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSgpCi0gICAg
ICAgIHJldHVybiAwCi0KLQotcHl0ZXN0X2NtZGxpbmVfbWFpbi50cnlmaXJzdCA9IFRydWUKLQot
Ci1kZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoaXRlbXMsIGNvbmZpZyk6Ci0gICAg
a2V5d29yZGV4cHIgPSBjb25maWcub3B0aW9uLmtleXdvcmQubHN0cmlwKCkKLSAgICBtYXRjaGV4
cHIgPSBjb25maWcub3B0aW9uLm1hcmtleHByCi0gICAgaWYgbm90IGtleXdvcmRleHByIGFuZCBu
b3QgbWF0Y2hleHByOgotICAgICAgICByZXR1cm4KLSAgICAjIHB5dGVzdCB1c2VkIHRvIGFsbG93
ICItIiBmb3IgbmVnYXRpbmcKLSAgICAjIGJ1dCB0b2RheSB3ZSBqdXN0IGFsbG93ICItIiBhdCB0
aGUgYmVnaW5uaW5nLCB1c2UgIm5vdCIgaW5zdGVhZAotICAgICMgd2UgcHJvYmFibHkgcmVtb3Zl
ICItIiBhbHRvZ2V0aGVyIHNvb24KLSAgICBpZiBrZXl3b3JkZXhwci5zdGFydHN3aXRoKCItIik6
Ci0gICAgICAgIGtleXdvcmRleHByID0gIm5vdCAiICsga2V5d29yZGV4cHJbMTpdCi0gICAgc2Vs
ZWN0dW50aWwgPSBGYWxzZQotICAgIGlmIGtleXdvcmRleHByWy0xOl0gPT0gIjoiOgotICAgICAg
ICBzZWxlY3R1bnRpbCA9IFRydWUKLSAgICAgICAga2V5d29yZGV4cHIgPSBrZXl3b3JkZXhwcls6
LTFdCi0KLSAgICByZW1haW5pbmcgPSBbXQotICAgIGRlc2VsZWN0ZWQgPSBbXQotICAgIGZvciBj
b2xpdGVtIGluIGl0ZW1zOgotICAgICAgICBpZiBrZXl3b3JkZXhwciBhbmQgbm90IG1hdGNoa2V5
d29yZChjb2xpdGVtLCBrZXl3b3JkZXhwcik6Ci0gICAgICAgICAgICBkZXNlbGVjdGVkLmFwcGVu
ZChjb2xpdGVtKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgc2VsZWN0dW50aWw6Ci0g
ICAgICAgICAgICAgICAga2V5d29yZGV4cHIgPSBOb25lCi0gICAgICAgICAgICBpZiBtYXRjaGV4
cHI6Ci0gICAgICAgICAgICAgICAgaWYgbm90IG1hdGNobWFyayhjb2xpdGVtLCBtYXRjaGV4cHIp
OgotICAgICAgICAgICAgICAgICAgICBkZXNlbGVjdGVkLmFwcGVuZChjb2xpdGVtKQotICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgcmVtYWluaW5nLmFwcGVuZChjb2xp
dGVtKQotCi0gICAgaWYgZGVzZWxlY3RlZDoKLSAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X2Rl
c2VsZWN0ZWQoaXRlbXM9ZGVzZWxlY3RlZCkKLSAgICAgICAgaXRlbXNbOl0gPSByZW1haW5pbmcK
LQotCi1AYXR0ci5zCi1jbGFzcyBNYXJrTWFwcGluZyhvYmplY3QpOgotICAgICIiIlByb3ZpZGVz
IGEgbG9jYWwgbWFwcGluZyBmb3IgbWFya2VycyB3aGVyZSBpdGVtIGFjY2VzcwotICAgIHJlc29s
dmVzIHRvIFRydWUgaWYgdGhlIG1hcmtlciBpcyBwcmVzZW50LiAiIiIKLQotICAgIG93bl9tYXJr
X25hbWVzID0gYXR0ci5pYigpCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJvbV9rZXl3
b3JkcyhjbHMsIGtleXdvcmRzKToKLSAgICAgICAgbWFya19uYW1lcyA9IHNldCgpCi0gICAgICAg
IGZvciBrZXksIHZhbHVlIGluIGtleXdvcmRzLml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiBpc2lu
c3RhbmNlKHZhbHVlLCBNYXJrSW5mbykgb3IgaXNpbnN0YW5jZSh2YWx1ZSwgTWFya0RlY29yYXRv
cik6Ci0gICAgICAgICAgICAgICAgbWFya19uYW1lcy5hZGQoa2V5KQotICAgICAgICByZXR1cm4g
Y2xzKG1hcmtfbmFtZXMpCi0KLSAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgbmFtZSk6Ci0gICAg
ICAgIHJldHVybiBuYW1lIGluIHNlbGYub3duX21hcmtfbmFtZXMKLQotCi1jbGFzcyBLZXl3b3Jk
TWFwcGluZyhvYmplY3QpOgotICAgICIiIlByb3ZpZGVzIGEgbG9jYWwgbWFwcGluZyBmb3Iga2V5
d29yZHMuCi0gICAgR2l2ZW4gYSBsaXN0IG9mIG5hbWVzLCBtYXAgYW55IHN1YnN0cmluZyBvZiBv
bmUgb2YgdGhlc2UgbmFtZXMgdG8gVHJ1ZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBuYW1lcyk6Ci0gICAgICAgIHNlbGYuX25hbWVzID0gbmFtZXMKLQotICAgIGRlZiBfX2dl
dGl0ZW1fXyhzZWxmLCBzdWJuYW1lKToKLSAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi5fbmFtZXM6
Ci0gICAgICAgICAgICBpZiBzdWJuYW1lIGluIG5hbWU6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLQotZGVmIG1hdGNobWFyayhjb2xpdGVtLCBt
YXJrZXhwcik6Ci0gICAgIiIiVHJpZXMgdG8gbWF0Y2ggb24gYW55IG1hcmtlciBuYW1lcywgYXR0
YWNoZWQgdG8gdGhlIGdpdmVuIGNvbGl0ZW0uIiIiCi0gICAgcmV0dXJuIGV2YWwobWFya2V4cHIs
IHt9LCBNYXJrTWFwcGluZy5mcm9tX2tleXdvcmRzKGNvbGl0ZW0ua2V5d29yZHMpKQotCi0KLWRl
ZiBtYXRjaGtleXdvcmQoY29saXRlbSwga2V5d29yZGV4cHIpOgotICAgICIiIlRyaWVzIHRvIG1h
dGNoIGdpdmVuIGtleXdvcmQgZXhwcmVzc2lvbiB0byBnaXZlbiBjb2xsZWN0b3IgaXRlbS4KLQot
ICAgIFdpbGwgbWF0Y2ggb24gdGhlIG5hbWUgb2YgY29saXRlbSwgaW5jbHVkaW5nIHRoZSBuYW1l
cyBvZiBpdHMgcGFyZW50cy4KLSAgICBPbmx5IG1hdGNoZXMgbmFtZXMgb2YgaXRlbXMgd2hpY2gg
YXJlIGVpdGhlciBhIDpjbGFzczpgQ2xhc3NgIG9yIGEKLSAgICA6Y2xhc3M6YEZ1bmN0aW9uYC4K
LSAgICBBZGRpdGlvbmFsbHksIG1hdGNoZXMgb24gbmFtZXMgaW4gdGhlICdleHRyYV9rZXl3b3Jk
X21hdGNoZXMnIHNldCBvZgotICAgIGFueSBpdGVtLCBhcyB3ZWxsIGFzIG5hbWVzIGRpcmVjdGx5
IGFzc2lnbmVkIHRvIHRlc3QgZnVuY3Rpb25zLgotICAgICIiIgotICAgIG1hcHBlZF9uYW1lcyA9
IHNldCgpCi0KLSAgICAjIEFkZCB0aGUgbmFtZXMgb2YgdGhlIGN1cnJlbnQgaXRlbSBhbmQgYW55
IHBhcmVudCBpdGVtcwotICAgIGltcG9ydCBweXRlc3QKLSAgICBmb3IgaXRlbSBpbiBjb2xpdGVt
Lmxpc3RjaGFpbigpOgotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpdGVtLCBweXRlc3QuSW5z
dGFuY2UpOgotICAgICAgICAgICAgbWFwcGVkX25hbWVzLmFkZChpdGVtLm5hbWUpCi0KLSAgICAj
IEFkZCB0aGUgbmFtZXMgYWRkZWQgYXMgZXh0cmEga2V5d29yZHMgdG8gY3VycmVudCBvciBwYXJl
bnQgaXRlbXMKLSAgICBmb3IgbmFtZSBpbiBjb2xpdGVtLmxpc3RleHRyYWtleXdvcmRzKCk6Ci0g
ICAgICAgIG1hcHBlZF9uYW1lcy5hZGQobmFtZSkKLQotICAgICMgQWRkIHRoZSBuYW1lcyBhdHRh
Y2hlZCB0byB0aGUgY3VycmVudCBmdW5jdGlvbiB0aHJvdWdoIGRpcmVjdCBhc3NpZ25tZW50Ci0g
ICAgaWYgaGFzYXR0cihjb2xpdGVtLCAnZnVuY3Rpb24nKToKLSAgICAgICAgZm9yIG5hbWUgaW4g
Y29saXRlbS5mdW5jdGlvbi5fX2RpY3RfXzoKLSAgICAgICAgICAgIG1hcHBlZF9uYW1lcy5hZGQo
bmFtZSkKLQotICAgIG1hcHBpbmcgPSBLZXl3b3JkTWFwcGluZyhtYXBwZWRfbmFtZXMpCi0gICAg
aWYgIiAiIG5vdCBpbiBrZXl3b3JkZXhwcjoKLSAgICAgICAgIyBzcGVjaWFsIGNhc2UgdG8gYWxs
b3cgZm9yIHNpbXBsZSAiLWsgcGFzcyIgYW5kICItayAxLjMiCi0gICAgICAgIHJldHVybiBtYXBw
aW5nW2tleXdvcmRleHByXQotICAgIGVsaWYga2V5d29yZGV4cHIuc3RhcnRzd2l0aCgibm90ICIp
IGFuZCAiICIgbm90IGluIGtleXdvcmRleHByWzQ6XToKLSAgICAgICAgcmV0dXJuIG5vdCBtYXBw
aW5nW2tleXdvcmRleHByWzQ6XV0KLSAgICByZXR1cm4gZXZhbChrZXl3b3JkZXhwciwge30sIG1h
cHBpbmcpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICBjb25maWcuX29s
ZF9tYXJrX2NvbmZpZyA9IE1BUktfR0VOLl9jb25maWcKLSAgICBpZiBjb25maWcub3B0aW9uLnN0
cmljdDoKLSAgICAgICAgTUFSS19HRU4uX2NvbmZpZyA9IGNvbmZpZwotCi0KLWRlZiBweXRlc3Rf
dW5jb25maWd1cmUoY29uZmlnKToKLSAgICBNQVJLX0dFTi5fY29uZmlnID0gZ2V0YXR0cihjb25m
aWcsICdfb2xkX21hcmtfY29uZmlnJywgTm9uZSkKLQotCi1jbGFzcyBNYXJrR2VuZXJhdG9yOgot
ICAgICIiIiBGYWN0b3J5IGZvciA6Y2xhc3M6YE1hcmtEZWNvcmF0b3JgIG9iamVjdHMgLSBleHBv
c2VkIGFzCi0gICAgYSBgYHB5dGVzdC5tYXJrYGAgc2luZ2xldG9uIGluc3RhbmNlLiAgRXhhbXBs
ZTo6Ci0KLSAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgIEBweXRlc3QubWFyay5zbG93
dGVzdAotICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKLSAgICAgICAgICAgIHBhc3MKLQot
ICAgIHdpbGwgc2V0IGEgJ3Nsb3d0ZXN0JyA6Y2xhc3M6YE1hcmtJbmZvYCBvYmplY3QKLSAgICBv
biB0aGUgYGB0ZXN0X2Z1bmN0aW9uYGAgb2JqZWN0LiAiIiIKLSAgICBfY29uZmlnID0gTm9uZQot
Ci0gICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgotICAgICAgICBpZiBuYW1lWzBdID09
ICJfIjoKLSAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCJNYXJrZXIgbmFtZSBtdXN0
IE5PVCBzdGFydCB3aXRoIHVuZGVyc2NvcmUiKQotICAgICAgICBpZiBzZWxmLl9jb25maWcgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9jaGVjayhuYW1lKQotICAgICAgICByZXR1cm4g
TWFya0RlY29yYXRvcihNYXJrKG5hbWUsICgpLCB7fSkpCi0KLSAgICBkZWYgX2NoZWNrKHNlbGYs
IG5hbWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpZiBuYW1lIGluIHNlbGYuX21hcmtl
cnM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJv
cjoKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgc2VsZi5fbWFya2VycyA9IHZhbHVlcyA9IHNl
dCgpCi0gICAgICAgIGZvciBsaW5lIGluIHNlbGYuX2NvbmZpZy5nZXRpbmkoIm1hcmtlcnMiKToK
LSAgICAgICAgICAgIG1hcmtlciA9IGxpbmUuc3BsaXQoIjoiLCAxKVswXQotICAgICAgICAgICAg
bWFya2VyID0gbWFya2VyLnJzdHJpcCgpCi0gICAgICAgICAgICB4ID0gbWFya2VyLnNwbGl0KCIo
IiwgMSlbMF0KLSAgICAgICAgICAgIHZhbHVlcy5hZGQoeCkKLSAgICAgICAgaWYgbmFtZSBub3Qg
aW4gc2VsZi5fbWFya2VyczoKLSAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCIlciBu
b3QgYSByZWdpc3RlcmVkIG1hcmtlciIgJSAobmFtZSwpKQotCi0KLWRlZiBpc3Rlc3RmdW5jKGZ1
bmMpOgotICAgIHJldHVybiBoYXNhdHRyKGZ1bmMsICJfX2NhbGxfXyIpIGFuZCBcCi0gICAgICAg
IGdldGF0dHIoZnVuYywgIl9fbmFtZV9fIiwgIjxsYW1iZGE+IikgIT0gIjxsYW1iZGE+IgotCi0K
LUBhdHRyLnMoZnJvemVuPVRydWUpCi1jbGFzcyBNYXJrKG9iamVjdCk6Ci0gICAgbmFtZSA9IGF0
dHIuaWIoKQotICAgIGFyZ3MgPSBhdHRyLmliKCkKLSAgICBrd2FyZ3MgPSBhdHRyLmliKCkKLQot
ICAgIGRlZiBjb21iaW5lZF93aXRoKHNlbGYsIG90aGVyKToKLSAgICAgICAgYXNzZXJ0IHNlbGYu
bmFtZSA9PSBvdGhlci5uYW1lCi0gICAgICAgIHJldHVybiBNYXJrKAotICAgICAgICAgICAgc2Vs
Zi5uYW1lLCBzZWxmLmFyZ3MgKyBvdGhlci5hcmdzLAotICAgICAgICAgICAgZGljdChzZWxmLmt3
YXJncywgKipvdGhlci5rd2FyZ3MpKQotCi0KLUBhdHRyLnMKLWNsYXNzIE1hcmtEZWNvcmF0b3Io
b2JqZWN0KToKLSAgICAiIiIgQSBkZWNvcmF0b3IgZm9yIHRlc3QgZnVuY3Rpb25zIGFuZCB0ZXN0
IGNsYXNzZXMuICBXaGVuIGFwcGxpZWQKLSAgICBpdCB3aWxsIGNyZWF0ZSA6Y2xhc3M6YE1hcmtJ
bmZvYCBvYmplY3RzIHdoaWNoIG1heSBiZQotICAgIDpyZWY6YHJldHJpZXZlZCBieSBob29rcyBh
cyBpdGVtIGtleXdvcmRzIDxleGNvbnRyb2xza2lwPmAuCi0gICAgTWFya0RlY29yYXRvciBpbnN0
YW5jZXMgYXJlIG9mdGVuIGNyZWF0ZWQgbGlrZSB0aGlzOjoKLQotICAgICAgICBtYXJrMSA9IHB5
dGVzdC5tYXJrLk5BTUUgICAgICAgICAgICAgICMgc2ltcGxlIE1hcmtEZWNvcmF0b3IKLSAgICAg
ICAgbWFyazIgPSBweXRlc3QubWFyay5OQU1FKG5hbWUxPXZhbHVlKSAjIHBhcmFtZXRyaXplZCBN
YXJrRGVjb3JhdG9yCi0KLSAgICBhbmQgY2FuIHRoZW4gYmUgYXBwbGllZCBhcyBkZWNvcmF0b3Jz
IHRvIHRlc3QgZnVuY3Rpb25zOjoKLQotICAgICAgICBAbWFyazIKLSAgICAgICAgZGVmIHRlc3Rf
ZnVuY3Rpb24oKToKLSAgICAgICAgICAgIHBhc3MKLQotICAgIFdoZW4gYSBNYXJrRGVjb3JhdG9y
IGluc3RhbmNlIGlzIGNhbGxlZCBpdCBkb2VzIHRoZSBmb2xsb3dpbmc6Ci0gICAgICAxLiBJZiBj
YWxsZWQgd2l0aCBhIHNpbmdsZSBjbGFzcyBhcyBpdHMgb25seSBwb3NpdGlvbmFsIGFyZ3VtZW50
IGFuZCBubwotICAgICAgICAgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cywgaXQgYXR0YWNo
ZXMgaXRzZWxmIHRvIHRoZSBjbGFzcyBzbyBpdAotICAgICAgICAgZ2V0cyBhcHBsaWVkIGF1dG9t
YXRpY2FsbHkgdG8gYWxsIHRlc3QgY2FzZXMgZm91bmQgaW4gdGhhdCBjbGFzcy4KLSAgICAgIDIu
IElmIGNhbGxlZCB3aXRoIGEgc2luZ2xlIGZ1bmN0aW9uIGFzIGl0cyBvbmx5IHBvc2l0aW9uYWwg
YXJndW1lbnQgYW5kCi0gICAgICAgICBubyBhZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnRzLCBp
dCBhdHRhY2hlcyBhIE1hcmtJbmZvIG9iamVjdCB0byB0aGUKLSAgICAgICAgIGZ1bmN0aW9uLCBj
b250YWluaW5nIGFsbCB0aGUgYXJndW1lbnRzIGFscmVhZHkgc3RvcmVkIGludGVybmFsbHkgaW4K
LSAgICAgICAgIHRoZSBNYXJrRGVjb3JhdG9yLgotICAgICAgMy4gV2hlbiBjYWxsZWQgaW4gYW55
IG90aGVyIGNhc2UsIGl0IHBlcmZvcm1zIGEgJ2Zha2UgY29uc3RydWN0aW9uJyBjYWxsLAotICAg
ICAgICAgaS5lLiBpdCByZXR1cm5zIGEgbmV3IE1hcmtEZWNvcmF0b3IgaW5zdGFuY2Ugd2l0aCB0
aGUgb3JpZ2luYWwKLSAgICAgICAgIE1hcmtEZWNvcmF0b3IncyBjb250ZW50IHVwZGF0ZWQgd2l0
aCB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byB0aGlzCi0gICAgICAgICBjYWxsLgotCi0gICAgTm90
ZTogVGhlIHJ1bGVzIGFib3ZlIHByZXZlbnQgTWFya0RlY29yYXRvciBvYmplY3RzIGZyb20gc3Rv
cmluZyBvbmx5IGEKLSAgICBzaW5nbGUgZnVuY3Rpb24gb3IgY2xhc3MgcmVmZXJlbmNlIGFzIHRo
ZWlyIHBvc2l0aW9uYWwgYXJndW1lbnQgd2l0aCBubwotICAgIGFkZGl0aW9uYWwga2V5d29yZCBv
ciBwb3NpdGlvbmFsIGFyZ3VtZW50cy4KLQotICAgICIiIgotCi0gICAgbWFyayA9IGF0dHIuaWIo
dmFsaWRhdG9yPWF0dHIudmFsaWRhdG9ycy5pbnN0YW5jZV9vZihNYXJrKSkKLQotICAgIG5hbWUg
PSBhbGlhcygnbWFyay5uYW1lJykKLSAgICBhcmdzID0gYWxpYXMoJ21hcmsuYXJncycpCi0gICAg
a3dhcmdzID0gYWxpYXMoJ21hcmsua3dhcmdzJykKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBt
YXJrbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYubmFtZSAgIyBmb3IgYmFja3dhcmQt
Y29tcGF0ICgyLjQuMSBoYWQgdGhpcyBhdHRyKQotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhl
cik6Ci0gICAgICAgIHJldHVybiBzZWxmLm1hcmsgPT0gb3RoZXIubWFyayBpZiBpc2luc3RhbmNl
KG90aGVyLCBNYXJrRGVjb3JhdG9yKSBlbHNlIEZhbHNlCi0KLSAgICBkZWYgX19yZXByX18oc2Vs
Zik6Ci0gICAgICAgIHJldHVybiAiPE1hcmtEZWNvcmF0b3IgJXI+IiAlIChzZWxmLm1hcmssKQot
Ci0gICAgZGVmIHdpdGhfYXJncyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiIg
cmV0dXJuIGEgTWFya0RlY29yYXRvciB3aXRoIGV4dHJhIGFyZ3VtZW50cyBhZGRlZAotCi0gICAg
ICAgIHVubGlrZSBjYWxsIHRoaXMgY2FuIGJlIHVzZWQgZXZlbiBpZiB0aGUgc29sZSBhcmd1bWVu
dCBpcyBhIGNhbGxhYmxlL2NsYXNzCi0KLSAgICAgICAgOnJldHVybjogTWFya0RlY29yYXRvcgot
ICAgICAgICAiIiIKLQotICAgICAgICBtYXJrID0gTWFyayhzZWxmLm5hbWUsIGFyZ3MsIGt3YXJn
cykKLSAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYubWFyay5jb21iaW5lZF93aXRo
KG1hcmspKQotCi0gICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAg
ICAgICIiIiBpZiBwYXNzZWQgYSBzaW5nbGUgY2FsbGFibGUgYXJndW1lbnQ6IGRlY29yYXRlIGl0
IHdpdGggbWFyayBpbmZvLgotICAgICAgICAgICAgb3RoZXJ3aXNlIGFkZCAqYXJncy8qKmt3YXJn
cyBpbi1wbGFjZSB0byBtYXJrIGluZm9ybWF0aW9uLiAiIiIKLSAgICAgICAgaWYgYXJncyBhbmQg
bm90IGt3YXJnczoKLSAgICAgICAgICAgIGZ1bmMgPSBhcmdzWzBdCi0gICAgICAgICAgICBpc19j
bGFzcyA9IGluc3BlY3QuaXNjbGFzcyhmdW5jKQotICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID09
IDEgYW5kIChpc3Rlc3RmdW5jKGZ1bmMpIG9yIGlzX2NsYXNzKToKLSAgICAgICAgICAgICAgICBp
ZiBpc19jbGFzczoKLSAgICAgICAgICAgICAgICAgICAgc3RvcmVfbWFyayhmdW5jLCBzZWxmLm1h
cmspCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgc3RvcmVfbGVn
YWN5X21hcmtpbmZvKGZ1bmMsIHNlbGYubWFyaykKLSAgICAgICAgICAgICAgICAgICAgc3RvcmVf
bWFyayhmdW5jLCBzZWxmLm1hcmspCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmMKLSAgICAg
ICAgcmV0dXJuIHNlbGYud2l0aF9hcmdzKCphcmdzLCAqKmt3YXJncykKLQotCi1kZWYgZ2V0X3Vu
cGFja2VkX21hcmtzKG9iaik6Ci0gICAgIiIiCi0gICAgb2J0YWluIHRoZSB1bnBhY2tlZCBtYXJr
cyB0aGF0IGFyZSBzdG9yZWQgb24gYSBvYmplY3QKLSAgICAiIiIKLSAgICBtYXJrX2xpc3QgPSBn
ZXRhdHRyKG9iaiwgJ3B5dGVzdG1hcmsnLCBbXSkKLQotICAgIGlmIG5vdCBpc2luc3RhbmNlKG1h
cmtfbGlzdCwgbGlzdCk6Ci0gICAgICAgIG1hcmtfbGlzdCA9IFttYXJrX2xpc3RdCi0gICAgcmV0
dXJuIFsKLSAgICAgICAgZ2V0YXR0cihtYXJrLCAnbWFyaycsIG1hcmspICAjIHVucGFjayBNYXJr
RGVjb3JhdG9yCi0gICAgICAgIGZvciBtYXJrIGluIG1hcmtfbGlzdAotICAgIF0KLQotCi1kZWYg
c3RvcmVfbWFyayhvYmosIG1hcmspOgotICAgICIiInN0b3JlIGEgTWFyayBvbiBhIG9iamVjdAot
ICAgIHRoaXMgaXMgdXNlZCB0byBpbXBsZW1lbnQgdGhlIE1hcmsgZGVjbGFyYXRpb25zL2RlY29y
YXRvcnMgY29ycmVjdGx5Ci0gICAgIiIiCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2UobWFyaywgTWFy
ayksIG1hcmsKLSAgICAjIGFsd2F5cyByZWFzc2lnbiBuYW1lIHRvIGF2b2lkIHVwZGF0aW5nIHB5
dGVzdG1hcmsKLSAgICAjIGluIGEgcmVmZXJlbmNlIHRoYXQgd2FzIG9ubHkgYm9ycm93ZWQKLSAg
ICBvYmoucHl0ZXN0bWFyayA9IGdldF91bnBhY2tlZF9tYXJrcyhvYmopICsgW21hcmtdCi0KLQot
ZGVmIHN0b3JlX2xlZ2FjeV9tYXJraW5mbyhmdW5jLCBtYXJrKToKLSAgICAiIiJjcmVhdGUgdGhl
IGxlZ2FjeSBNYXJrSW5mbyBvYmplY3RzIGFuZCBwdXQgdGhlbSBvbnRvIHRoZSBmdW5jdGlvbgot
ICAgICIiIgotICAgIGlmIG5vdCBpc2luc3RhbmNlKG1hcmssIE1hcmspOgotICAgICAgICByYWlz
ZSBUeXBlRXJyb3IoImdvdCB7bWFyayFyfSBpbnN0ZWFkIG9mIGEgTWFyayIuZm9ybWF0KG1hcms9
bWFyaykpCi0gICAgaG9sZGVyID0gZ2V0YXR0cihmdW5jLCBtYXJrLm5hbWUsIE5vbmUpCi0gICAg
aWYgaG9sZGVyIGlzIE5vbmU6Ci0gICAgICAgIGhvbGRlciA9IE1hcmtJbmZvKG1hcmspCi0gICAg
ICAgIHNldGF0dHIoZnVuYywgbWFyay5uYW1lLCBob2xkZXIpCi0gICAgZWxzZToKLSAgICAgICAg
aG9sZGVyLmFkZF9tYXJrKG1hcmspCi0KLQotY2xhc3MgTWFya0luZm8ob2JqZWN0KToKLSAgICAi
IiIgTWFya2luZyBvYmplY3QgY3JlYXRlZCBieSA6Y2xhc3M6YE1hcmtEZWNvcmF0b3JgIGluc3Rh
bmNlcy4gIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWFyayk6Ci0gICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKG1hcmssIE1hcmspLCByZXByKG1hcmspCi0gICAgICAgIHNlbGYuY29tYmlu
ZWQgPSBtYXJrCi0gICAgICAgIHNlbGYuX21hcmtzID0gW21hcmtdCi0KLSAgICBuYW1lID0gYWxp
YXMoJ2NvbWJpbmVkLm5hbWUnKQotICAgIGFyZ3MgPSBhbGlhcygnY29tYmluZWQuYXJncycpCi0g
ICAga3dhcmdzID0gYWxpYXMoJ2NvbWJpbmVkLmt3YXJncycpCi0KLSAgICBkZWYgX19yZXByX18o
c2VsZik6Ci0gICAgICAgIHJldHVybiAiPE1hcmtJbmZvIHswIXJ9PiIuZm9ybWF0KHNlbGYuY29t
YmluZWQpCi0KLSAgICBkZWYgYWRkX21hcmsoc2VsZiwgbWFyayk6Ci0gICAgICAgICIiIiBhZGQg
YSBNYXJrSW5mbyB3aXRoIHRoZSBnaXZlbiBhcmdzIGFuZCBrd2FyZ3MuICIiIgotICAgICAgICBz
ZWxmLl9tYXJrcy5hcHBlbmQobWFyaykKLSAgICAgICAgc2VsZi5jb21iaW5lZCA9IHNlbGYuY29t
YmluZWQuY29tYmluZWRfd2l0aChtYXJrKQotCi0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAg
ICAgICAiIiIgeWllbGQgTWFya0luZm8gb2JqZWN0cyBlYWNoIHJlbGF0aW5nIHRvIGEgbWFya2lu
Zy1jYWxsLiAiIiIKLSAgICAgICAgcmV0dXJuIG1hcChNYXJrSW5mbywgc2VsZi5fbWFya3MpCi0K
LQotTUFSS19HRU4gPSBNYXJrR2VuZXJhdG9yKCkKLQotCi1kZWYgX21hcmtlZChmdW5jLCBtYXJr
KToKLSAgICAiIiIgUmV0dXJucyBUcnVlIGlmIDpmdW5jOiBpcyBhbHJlYWR5IG1hcmtlZCB3aXRo
IDptYXJrOiwgRmFsc2Ugb3RoZXJ3aXNlLgotICAgIFRoaXMgY2FuIGhhcHBlbiBpZiBtYXJrZXIg
aXMgYXBwbGllZCB0byBjbGFzcyBhbmQgdGhlIHRlc3QgZmlsZSBpcwotICAgIGludm9rZWQgbW9y
ZSB0aGFuIG9uY2UuCi0gICAgIiIiCi0gICAgdHJ5OgotICAgICAgICBmdW5jX21hcmsgPSBnZXRh
dHRyKGZ1bmMsIG1hcmsubmFtZSkKLSAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAg
IHJldHVybiBGYWxzZQotICAgIHJldHVybiBtYXJrLmFyZ3MgPT0gZnVuY19tYXJrLmFyZ3MgYW5k
IG1hcmsua3dhcmdzID09IGZ1bmNfbWFyay5rd2FyZ3MKLQotCi1kZWYgdHJhbnNmZXJfbWFya2Vy
cyhmdW5jb2JqLCBjbHMsIG1vZCk6Ci0gICAgIiIiCi0gICAgdGhpcyBmdW5jdGlvbiB0cmFuc2Zl
cnMgY2xhc3MgbGV2ZWwgbWFya2VycyBhbmQgbW9kdWxlIGxldmVsIG1hcmtlcnMKLSAgICBpbnRv
IGZ1bmN0aW9uIGxldmVsIG1hcmtpbmZvIG9iamVjdHMKLQotICAgIHRoaXMgaXMgdGhlIG1haW4g
cmVhc29uIHdoeSBtYXJrcyBhcmUgc28gYnJva2VuCi0gICAgdGhlIHJlc29sdXRpb24gd2lsbCBp
bnZvbHZlIHBoYXNpbmcgb3V0IGZ1bmN0aW9uIGxldmVsIE1hcmtJbmZvIG9iamVjdHMKLQotICAg
ICIiIgotICAgIGZvciBvYmogaW4gKGNscywgbW9kKToKLSAgICAgICAgZm9yIG1hcmsgaW4gZ2V0
X3VucGFja2VkX21hcmtzKG9iaik6Ci0gICAgICAgICAgICBpZiBub3QgX21hcmtlZChmdW5jb2Jq
LCBtYXJrKToKLSAgICAgICAgICAgICAgICBzdG9yZV9sZWdhY3lfbWFya2luZm8oZnVuY29iaiwg
bWFyaykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbW9ua2V5cGF0Y2gucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L21vbmtleXBhdGNoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0MGFlNTYwZjA3MDJiMTM2MGEzMDlkOTE0NzMwMjkwM2IxMTc0ZTZjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvbW9ua2V5cGF0Y2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNTggKzAsMCBAQAotIiIiIG1v
bmtleXBhdGNoaW5nIGFuZCBtb2NraW5nIGZ1bmN0aW9uYWxpdHkuICAiIiIKLWZyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQot
aW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1pbXBvcnQgcmUKLWltcG9ydCBzaXgKLWZyb20gX3B5dGVz
dC5maXh0dXJlcyBpbXBvcnQgZml4dHVyZQotCi1SRV9JTVBPUlRfRVJST1JfTkFNRSA9IHJlLmNv
bXBpbGUoIl5ObyBtb2R1bGUgbmFtZWQgKC4qKSQiKQotCi0KLUBmaXh0dXJlCi1kZWYgbW9ua2V5
cGF0Y2goKToKLSAgICAiIiJUaGUgcmV0dXJuZWQgYGBtb25rZXlwYXRjaGBgIGZpeHR1cmUgcHJv
dmlkZXMgdGhlc2UKLSAgICBoZWxwZXIgbWV0aG9kcyB0byBtb2RpZnkgb2JqZWN0cywgZGljdGlv
bmFyaWVzIG9yIG9zLmVudmlyb246OgotCi0gICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIob2Jq
LCBuYW1lLCB2YWx1ZSwgcmFpc2luZz1UcnVlKQotICAgICAgICBtb25rZXlwYXRjaC5kZWxhdHRy
KG9iaiwgbmFtZSwgcmFpc2luZz1UcnVlKQotICAgICAgICBtb25rZXlwYXRjaC5zZXRpdGVtKG1h
cHBpbmcsIG5hbWUsIHZhbHVlKQotICAgICAgICBtb25rZXlwYXRjaC5kZWxpdGVtKG9iaiwgbmFt
ZSwgcmFpc2luZz1UcnVlKQotICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYobmFtZSwgdmFsdWUs
IHByZXBlbmQ9RmFsc2UpCi0gICAgICAgIG1vbmtleXBhdGNoLmRlbGVudihuYW1lLCB2YWx1ZSwg
cmFpc2luZz1UcnVlKQotICAgICAgICBtb25rZXlwYXRjaC5zeXNwYXRoX3ByZXBlbmQocGF0aCkK
LSAgICAgICAgbW9ua2V5cGF0Y2guY2hkaXIocGF0aCkKLQotICAgIEFsbCBtb2RpZmljYXRpb25z
IHdpbGwgYmUgdW5kb25lIGFmdGVyIHRoZSByZXF1ZXN0aW5nCi0gICAgdGVzdCBmdW5jdGlvbiBv
ciBmaXh0dXJlIGhhcyBmaW5pc2hlZC4gVGhlIGBgcmFpc2luZ2BgCi0gICAgcGFyYW1ldGVyIGRl
dGVybWluZXMgaWYgYSBLZXlFcnJvciBvciBBdHRyaWJ1dGVFcnJvcgotICAgIHdpbGwgYmUgcmFp
c2VkIGlmIHRoZSBzZXQvZGVsZXRpb24gb3BlcmF0aW9uIGhhcyBubyB0YXJnZXQuCi0gICAgIiIi
Ci0gICAgbXBhdGNoID0gTW9ua2V5UGF0Y2goKQotICAgIHlpZWxkIG1wYXRjaAotICAgIG1wYXRj
aC51bmRvKCkKLQotCi1kZWYgcmVzb2x2ZShuYW1lKToKLSAgICAjIHNpbXBsaWZpZWQgZnJvbSB6
b3BlLmRvdHRlZG5hbWUKLSAgICBwYXJ0cyA9IG5hbWUuc3BsaXQoJy4nKQotCi0gICAgdXNlZCA9
IHBhcnRzLnBvcCgwKQotICAgIGZvdW5kID0gX19pbXBvcnRfXyh1c2VkKQotICAgIGZvciBwYXJ0
IGluIHBhcnRzOgotICAgICAgICB1c2VkICs9ICcuJyArIHBhcnQKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgZm91bmQgPSBnZXRhdHRyKGZvdW5kLCBwYXJ0KQotICAgICAgICBleGNlcHQgQXR0
cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBjb250aW51ZQotICAgICAgICAjIHdlIHVzZSBleHBsaWNpdCB1bi1uZXN0aW5nIG9mIHRoZSBo
YW5kbGluZyBibG9jayBpbiBvcmRlcgotICAgICAgICAjIHRvIGF2b2lkIG5lc3RlZCBleGNlcHRp
b25zIG9uIHB5dGhvbiAzCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIF9faW1wb3J0X18odXNl
ZCkKLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yIGFzIGV4OgotICAgICAgICAgICAgIyBzdHIg
aXMgdXNlZCBmb3IgcHkyIHZzIHB5MwotICAgICAgICAgICAgZXhwZWN0ZWQgPSBzdHIoZXgpLnNw
bGl0KClbLTFdCi0gICAgICAgICAgICBpZiBleHBlY3RlZCA9PSB1c2VkOgotICAgICAgICAgICAg
ICAgIHJhaXNlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIEltcG9y
dEVycm9yKAotICAgICAgICAgICAgICAgICAgICAnaW1wb3J0IGVycm9yIGluICVzOiAlcycgJSAo
dXNlZCwgZXgpCi0gICAgICAgICAgICAgICAgKQotICAgICAgICBmb3VuZCA9IGFubm90YXRlZF9n
ZXRhdHRyKGZvdW5kLCBwYXJ0LCB1c2VkKQotICAgIHJldHVybiBmb3VuZAotCi0KLWRlZiBhbm5v
dGF0ZWRfZ2V0YXR0cihvYmosIG5hbWUsIGFubik6Ci0gICAgdHJ5OgotICAgICAgICBvYmogPSBn
ZXRhdHRyKG9iaiwgbmFtZSkKLSAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIHJh
aXNlIEF0dHJpYnV0ZUVycm9yKAotICAgICAgICAgICAgJyVyIG9iamVjdCBhdCAlcyBoYXMgbm8g
YXR0cmlidXRlICVyJyAlICgKLSAgICAgICAgICAgICAgICB0eXBlKG9iaikuX19uYW1lX18sIGFu
biwgbmFtZQotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgcmV0dXJuIG9iagotCi0KLWRl
ZiBkZXJpdmVfaW1wb3J0cGF0aChpbXBvcnRfcGF0aCwgcmFpc2luZyk6Ci0gICAgaWYgbm90IGlz
aW5zdGFuY2UoaW1wb3J0X3BhdGgsIHNpeC5zdHJpbmdfdHlwZXMpIG9yICIuIiBub3QgaW4gaW1w
b3J0X3BhdGg6Ci0gICAgICAgIHJhaXNlIFR5cGVFcnJvcigibXVzdCBiZSBhYnNvbHV0ZSBpbXBv
cnQgcGF0aCBzdHJpbmcsIG5vdCAlciIgJQotICAgICAgICAgICAgICAgICAgICAgICAgKGltcG9y
dF9wYXRoLCkpCi0gICAgbW9kdWxlLCBhdHRyID0gaW1wb3J0X3BhdGgucnNwbGl0KCcuJywgMSkK
LSAgICB0YXJnZXQgPSByZXNvbHZlKG1vZHVsZSkKLSAgICBpZiByYWlzaW5nOgotICAgICAgICBh
bm5vdGF0ZWRfZ2V0YXR0cih0YXJnZXQsIGF0dHIsIGFubj1tb2R1bGUpCi0gICAgcmV0dXJuIGF0
dHIsIHRhcmdldAotCi0KLWNsYXNzIE5vdHNldDoKLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0g
ICAgICAgIHJldHVybiAiPG5vdHNldD4iCi0KLQotbm90c2V0ID0gTm90c2V0KCkKLQotCi1jbGFz
cyBNb25rZXlQYXRjaDoKLSAgICAiIiIgT2JqZWN0IHJldHVybmVkIGJ5IHRoZSBgYG1vbmtleXBh
dGNoYGAgZml4dHVyZSBrZWVwaW5nIGEgcmVjb3JkIG9mIHNldGF0dHIvaXRlbS9lbnYvc3lzcGF0
aCBjaGFuZ2VzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBz
ZWxmLl9zZXRhdHRyID0gW10KLSAgICAgICAgc2VsZi5fc2V0aXRlbSA9IFtdCi0gICAgICAgIHNl
bGYuX2N3ZCA9IE5vbmUKLSAgICAgICAgc2VsZi5fc2F2ZXN5c3BhdGggPSBOb25lCi0KLSAgICBk
ZWYgc2V0YXR0cihzZWxmLCB0YXJnZXQsIG5hbWUsIHZhbHVlPW5vdHNldCwgcmFpc2luZz1UcnVl
KToKLSAgICAgICAgIiIiIFNldCBhdHRyaWJ1dGUgdmFsdWUgb24gdGFyZ2V0LCBtZW1vcml6aW5n
IHRoZSBvbGQgdmFsdWUuCi0gICAgICAgIEJ5IGRlZmF1bHQgcmFpc2UgQXR0cmlidXRlRXJyb3Ig
aWYgdGhlIGF0dHJpYnV0ZSBkaWQgbm90IGV4aXN0LgotCi0gICAgICAgIEZvciBjb252ZW5pZW5j
ZSB5b3UgY2FuIHNwZWNpZnkgYSBzdHJpbmcgYXMgYGB0YXJnZXRgYCB3aGljaAotICAgICAgICB3
aWxsIGJlIGludGVycHJldGVkIGFzIGEgZG90dGVkIGltcG9ydCBwYXRoLCB3aXRoIHRoZSBsYXN0
IHBhcnQKLSAgICAgICAgYmVpbmcgdGhlIGF0dHJpYnV0ZSBuYW1lLiAgRXhhbXBsZToKLSAgICAg
ICAgYGBtb25rZXlwYXRjaC5zZXRhdHRyKCJvcy5nZXRjd2QiLCBsYW1iZGEgeDogIi8iKWBgCi0g
ICAgICAgIHdvdWxkIHNldCB0aGUgYGBnZXRjd2RgYCBmdW5jdGlvbiBvZiB0aGUgYGBvc2BgIG1v
ZHVsZS4KLQotICAgICAgICBUaGUgYGByYWlzaW5nYGAgdmFsdWUgZGV0ZXJtaW5lcyBpZiB0aGUg
c2V0YXR0ciBzaG91bGQgZmFpbAotICAgICAgICBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBhbHJl
YWR5IHByZXNlbnQgKGRlZmF1bHRzIHRvIFRydWUKLSAgICAgICAgd2hpY2ggbWVhbnMgaXQgd2ls
bCByYWlzZSkuCi0gICAgICAgICIiIgotICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUK
LSAgICAgICAgaW1wb3J0IGluc3BlY3QKLQotICAgICAgICBpZiB2YWx1ZSBpcyBub3RzZXQ6Ci0g
ICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh0YXJnZXQsIHNpeC5zdHJpbmdfdHlwZXMpOgot
ICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigidXNlIHNldGF0dHIodGFyZ2V0LCBuYW1l
LCB2YWx1ZSkgb3IgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2V0YXR0cih0
YXJnZXQsIHZhbHVlKSB3aXRoIHRhcmdldCBiZWluZyBhIGRvdHRlZCAiCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJpbXBvcnQgc3RyaW5nIikKLSAgICAgICAgICAgIHZhbHVlID0g
bmFtZQotICAgICAgICAgICAgbmFtZSwgdGFyZ2V0ID0gZGVyaXZlX2ltcG9ydHBhdGgodGFyZ2V0
LCByYWlzaW5nKQotCi0gICAgICAgIG9sZHZhbCA9IGdldGF0dHIodGFyZ2V0LCBuYW1lLCBub3Rz
ZXQpCi0gICAgICAgIGlmIHJhaXNpbmcgYW5kIG9sZHZhbCBpcyBub3RzZXQ6Ci0gICAgICAgICAg
ICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiJXIgaGFzIG5vIGF0dHJpYnV0ZSAlciIgJSAodGFyZ2V0
LCBuYW1lKSkKLQotICAgICAgICAjIGF2b2lkIGNsYXNzIGRlc2NyaXB0b3JzIGxpa2Ugc3RhdGlj
bWV0aG9kL2NsYXNzbWV0aG9kCi0gICAgICAgIGlmIGluc3BlY3QuaXNjbGFzcyh0YXJnZXQpOgot
ICAgICAgICAgICAgb2xkdmFsID0gdGFyZ2V0Ll9fZGljdF9fLmdldChuYW1lLCBub3RzZXQpCi0g
ICAgICAgIHNlbGYuX3NldGF0dHIuYXBwZW5kKCh0YXJnZXQsIG5hbWUsIG9sZHZhbCkpCi0gICAg
ICAgIHNldGF0dHIodGFyZ2V0LCBuYW1lLCB2YWx1ZSkKLQotICAgIGRlZiBkZWxhdHRyKHNlbGYs
IHRhcmdldCwgbmFtZT1ub3RzZXQsIHJhaXNpbmc9VHJ1ZSk6Ci0gICAgICAgICIiIiBEZWxldGUg
YXR0cmlidXRlIGBgbmFtZWBgIGZyb20gYGB0YXJnZXRgYCwgYnkgZGVmYXVsdCByYWlzZQotICAg
ICAgICBBdHRyaWJ1dGVFcnJvciBpdCB0aGUgYXR0cmlidXRlIGRpZCBub3QgcHJldmlvdXNseSBl
eGlzdC4KLQotICAgICAgICBJZiBubyBgYG5hbWVgYCBpcyBzcGVjaWZpZWQgYW5kIGBgdGFyZ2V0
YGAgaXMgYSBzdHJpbmcKLSAgICAgICAgaXQgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhIGRvdHRl
ZCBpbXBvcnQgcGF0aCB3aXRoIHRoZQotICAgICAgICBsYXN0IHBhcnQgYmVpbmcgdGhlIGF0dHJp
YnV0ZSBuYW1lLgotCi0gICAgICAgIElmIGBgcmFpc2luZ2BgIGlzIHNldCB0byBGYWxzZSwgbm8g
ZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIGlmIHRoZQotICAgICAgICBhdHRyaWJ1dGUgaXMgbWlz
c2luZy4KLSAgICAgICAgIiIiCi0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAg
ICAgICBpZiBuYW1lIGlzIG5vdHNldDoKLSAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHRh
cmdldCwgc2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9y
KCJ1c2UgZGVsYXR0cih0YXJnZXQsIG5hbWUpIG9yICIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRlbGF0dHIodGFyZ2V0KSB3aXRoIHRhcmdldCBiZWluZyBhIGRvdHRlZCAiCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbXBvcnQgc3RyaW5nIikKLSAgICAgICAg
ICAgIG5hbWUsIHRhcmdldCA9IGRlcml2ZV9pbXBvcnRwYXRoKHRhcmdldCwgcmFpc2luZykKLQot
ICAgICAgICBpZiBub3QgaGFzYXR0cih0YXJnZXQsIG5hbWUpOgotICAgICAgICAgICAgaWYgcmFp
c2luZzoKLSAgICAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fc2V0YXR0ci5hcHBlbmQoKHRhcmdldCwgbmFtZSwg
Z2V0YXR0cih0YXJnZXQsIG5hbWUsIG5vdHNldCkpKQotICAgICAgICAgICAgZGVsYXR0cih0YXJn
ZXQsIG5hbWUpCi0KLSAgICBkZWYgc2V0aXRlbShzZWxmLCBkaWMsIG5hbWUsIHZhbHVlKToKLSAg
ICAgICAgIiIiIFNldCBkaWN0aW9uYXJ5IGVudHJ5IGBgbmFtZWBgIHRvIHZhbHVlLiAiIiIKLSAg
ICAgICAgc2VsZi5fc2V0aXRlbS5hcHBlbmQoKGRpYywgbmFtZSwgZGljLmdldChuYW1lLCBub3Rz
ZXQpKSkKLSAgICAgICAgZGljW25hbWVdID0gdmFsdWUKLQotICAgIGRlZiBkZWxpdGVtKHNlbGYs
IGRpYywgbmFtZSwgcmFpc2luZz1UcnVlKToKLSAgICAgICAgIiIiIERlbGV0ZSBgYG5hbWVgYCBm
cm9tIGRpY3QuIFJhaXNlIEtleUVycm9yIGlmIGl0IGRvZXNuJ3QgZXhpc3QuCi0KLSAgICAgICAg
SWYgYGByYWlzaW5nYGAgaXMgc2V0IHRvIEZhbHNlLCBubyBleGNlcHRpb24gd2lsbCBiZSByYWlz
ZWQgaWYgdGhlCi0gICAgICAgIGtleSBpcyBtaXNzaW5nLgotICAgICAgICAiIiIKLSAgICAgICAg
aWYgbmFtZSBub3QgaW4gZGljOgotICAgICAgICAgICAgaWYgcmFpc2luZzoKLSAgICAgICAgICAg
ICAgICByYWlzZSBLZXlFcnJvcihuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2Vs
Zi5fc2V0aXRlbS5hcHBlbmQoKGRpYywgbmFtZSwgZGljLmdldChuYW1lLCBub3RzZXQpKSkKLSAg
ICAgICAgICAgIGRlbCBkaWNbbmFtZV0KLQotICAgIGRlZiBzZXRlbnYoc2VsZiwgbmFtZSwgdmFs
dWUsIHByZXBlbmQ9Tm9uZSk6Ci0gICAgICAgICIiIiBTZXQgZW52aXJvbm1lbnQgdmFyaWFibGUg
YGBuYW1lYGAgdG8gYGB2YWx1ZWBgLiAgSWYgYGBwcmVwZW5kYGAKLSAgICAgICAgaXMgYSBjaGFy
YWN0ZXIsIHJlYWQgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgdmFyaWFibGUgdmFsdWUKLSAgICAg
ICAgYW5kIHByZXBlbmQgdGhlIGBgdmFsdWVgYCBhZGpvaW5lZCB3aXRoIHRoZSBgYHByZXBlbmRg
YCBjaGFyYWN0ZXIuIiIiCi0gICAgICAgIHZhbHVlID0gc3RyKHZhbHVlKQotICAgICAgICBpZiBw
cmVwZW5kIGFuZCBuYW1lIGluIG9zLmVudmlyb246Ci0gICAgICAgICAgICB2YWx1ZSA9IHZhbHVl
ICsgcHJlcGVuZCArIG9zLmVudmlyb25bbmFtZV0KLSAgICAgICAgc2VsZi5zZXRpdGVtKG9zLmVu
dmlyb24sIG5hbWUsIHZhbHVlKQotCi0gICAgZGVmIGRlbGVudihzZWxmLCBuYW1lLCByYWlzaW5n
PVRydWUpOgotICAgICAgICAiIiIgRGVsZXRlIGBgbmFtZWBgIGZyb20gdGhlIGVudmlyb25tZW50
LiBSYWlzZSBLZXlFcnJvciBpdCBkb2VzIG5vdAotICAgICAgICBleGlzdC4KLQotICAgICAgICBJ
ZiBgYHJhaXNpbmdgYCBpcyBzZXQgdG8gRmFsc2UsIG5vIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNl
ZCBpZiB0aGUKLSAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbWlzc2luZy4KLSAgICAg
ICAgIiIiCi0gICAgICAgIHNlbGYuZGVsaXRlbShvcy5lbnZpcm9uLCBuYW1lLCByYWlzaW5nPXJh
aXNpbmcpCi0KLSAgICBkZWYgc3lzcGF0aF9wcmVwZW5kKHNlbGYsIHBhdGgpOgotICAgICAgICAi
IiIgUHJlcGVuZCBgYHBhdGhgYCB0byBgYHN5cy5wYXRoYGAgbGlzdCBvZiBpbXBvcnQgbG9jYXRp
b25zLiAiIiIKLSAgICAgICAgaWYgc2VsZi5fc2F2ZXN5c3BhdGggaXMgTm9uZToKLSAgICAgICAg
ICAgIHNlbGYuX3NhdmVzeXNwYXRoID0gc3lzLnBhdGhbOl0KLSAgICAgICAgc3lzLnBhdGguaW5z
ZXJ0KDAsIHN0cihwYXRoKSkKLQotICAgIGRlZiBjaGRpcihzZWxmLCBwYXRoKToKLSAgICAgICAg
IiIiIENoYW5nZSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB0byB0aGUgc3BlY2lmaWVk
IHBhdGguCi0gICAgICAgIFBhdGggY2FuIGJlIGEgc3RyaW5nIG9yIGEgcHkucGF0aC5sb2NhbCBv
YmplY3QuCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLl9jd2QgaXMgTm9uZToKLSAgICAg
ICAgICAgIHNlbGYuX2N3ZCA9IG9zLmdldGN3ZCgpCi0gICAgICAgIGlmIGhhc2F0dHIocGF0aCwg
ImNoZGlyIik6Ci0gICAgICAgICAgICBwYXRoLmNoZGlyKCkKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIG9zLmNoZGlyKHBhdGgpCi0KLSAgICBkZWYgdW5kbyhzZWxmKToKLSAgICAgICAgIiIi
IFVuZG8gcHJldmlvdXMgY2hhbmdlcy4gIFRoaXMgY2FsbCBjb25zdW1lcyB0aGUKLSAgICAgICAg
dW5kbyBzdGFjay4gQ2FsbGluZyBpdCBhIHNlY29uZCB0aW1lIGhhcyBubyBlZmZlY3QgdW5sZXNz
Ci0gICAgICAgIHlvdSBkbyBtb3JlIG1vbmtleXBhdGNoaW5nIGFmdGVyIHRoZSB1bmRvIGNhbGwu
Ci0KLSAgICAgICAgVGhlcmUgaXMgZ2VuZXJhbGx5IG5vIG5lZWQgdG8gY2FsbCBgdW5kbygpYCwg
c2luY2UgaXQgaXMKLSAgICAgICAgY2FsbGVkIGF1dG9tYXRpY2FsbHkgZHVyaW5nIHRlYXItZG93
bi4KLQotICAgICAgICBOb3RlIHRoYXQgdGhlIHNhbWUgYG1vbmtleXBhdGNoYCBmaXh0dXJlIGlz
IHVzZWQgYWNyb3NzIGEKLSAgICAgICAgc2luZ2xlIHRlc3QgZnVuY3Rpb24gaW52b2NhdGlvbi4g
SWYgYG1vbmtleXBhdGNoYCBpcyB1c2VkIGJvdGggYnkKLSAgICAgICAgdGhlIHRlc3QgZnVuY3Rp
b24gaXRzZWxmIGFuZCBvbmUgb2YgdGhlIHRlc3QgZml4dHVyZXMsCi0gICAgICAgIGNhbGxpbmcg
YHVuZG8oKWAgd2lsbCB1bmRvIGFsbCBvZiB0aGUgY2hhbmdlcyBtYWRlIGluCi0gICAgICAgIGJv
dGggZnVuY3Rpb25zLgotICAgICAgICAiIiIKLSAgICAgICAgZm9yIG9iaiwgbmFtZSwgdmFsdWUg
aW4gcmV2ZXJzZWQoc2VsZi5fc2V0YXR0cik6Ci0gICAgICAgICAgICBpZiB2YWx1ZSBpcyBub3Qg
bm90c2V0OgotICAgICAgICAgICAgICAgIHNldGF0dHIob2JqLCBuYW1lLCB2YWx1ZSkKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZGVsYXR0cihvYmosIG5hbWUpCi0gICAgICAg
IHNlbGYuX3NldGF0dHJbOl0gPSBbXQotICAgICAgICBmb3IgZGljdGlvbmFyeSwgbmFtZSwgdmFs
dWUgaW4gcmV2ZXJzZWQoc2VsZi5fc2V0aXRlbSk6Ci0gICAgICAgICAgICBpZiB2YWx1ZSBpcyBu
b3RzZXQ6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBkZWwgZGlj
dGlvbmFyeVtuYW1lXQotICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAg
ICAgICAgICAgICAgcGFzcyAgIyB3YXMgYWxyZWFkeSBkZWxldGVkLCBzbyB3ZSBoYXZlIHRoZSBk
ZXNpcmVkIHN0YXRlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGRpY3Rpb25h
cnlbbmFtZV0gPSB2YWx1ZQotICAgICAgICBzZWxmLl9zZXRpdGVtWzpdID0gW10KLSAgICAgICAg
aWYgc2VsZi5fc2F2ZXN5c3BhdGggaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzeXMucGF0aFs6
XSA9IHNlbGYuX3NhdmVzeXNwYXRoCi0gICAgICAgICAgICBzZWxmLl9zYXZlc3lzcGF0aCA9IE5v
bmUKLQotICAgICAgICBpZiBzZWxmLl9jd2QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBvcy5j
aGRpcihzZWxmLl9jd2QpCi0gICAgICAgICAgICBzZWxmLl9jd2QgPSBOb25lCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vZGVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub2Rl
cy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQzYWYyY2U2N2M4OTU4Zjk1MzM1
Mjk0NDRlYjJiZjJiMWI3Nzk5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vZGVzLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMzcgKzAsMCBAQAotU0VQID0gIi8iCi0KLQotZGVmIF9zcGxpdG5vZGUobm9kZWlkKToKLSAg
ICAiIiJTcGxpdCBhIG5vZGVpZCBpbnRvIGNvbnN0aXR1ZW50ICdwYXJ0cycuCi0KLSAgICBOb2Rl
IElEcyBhcmUgc3RyaW5ncywgYW5kIGNhbiBiZSB0aGluZ3MgbGlrZToKLSAgICAgICAgJycKLSAg
ICAgICAgJ3Rlc3RpbmcvY29kZScKLSAgICAgICAgJ3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8u
cHknCi0gICAgICAgICd0ZXN0aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5OjpUZXN0Rm9ybWF0dGVk
RXhjaW5mbzo6KCknCi0KLSAgICBSZXR1cm4gdmFsdWVzIGFyZSBsaXN0cyBlLmcuCi0gICAgICAg
IFtdCi0gICAgICAgIFsndGVzdGluZycsICdjb2RlJ10KLSAgICAgICAgWyd0ZXN0aW5nJywgJ2Nv
ZGUnLCAndGVzdF9leGNpbmZvLnB5J10KLSAgICAgICAgWyd0ZXN0aW5nJywgJ2NvZGUnLCAndGVz
dF9leGNpbmZvLnB5JywgJ1Rlc3RGb3JtYXR0ZWRFeGNpbmZvJywgJygpJ10KLSAgICAiIiIKLSAg
ICBpZiBub2RlaWQgPT0gJyc6Ci0gICAgICAgICMgSWYgdGhlcmUgaXMgbm8gcm9vdCBub2RlIGF0
IGFsbCwgcmV0dXJuIGFuIGVtcHR5IGxpc3Qgc28gdGhlIGNhbGxlcidzIGxvZ2ljIGNhbiByZW1h
aW4gc2FuZQotICAgICAgICByZXR1cm4gW10KLSAgICBwYXJ0cyA9IG5vZGVpZC5zcGxpdChTRVAp
Ci0gICAgIyBSZXBsYWNlIHNpbmdsZSBsYXN0IGVsZW1lbnQgJ3Rlc3RfZm9vLnB5OjpCYXI6Oigp
JyB3aXRoIG11bHRpcGxlIGVsZW1lbnRzICd0ZXN0X2Zvby5weScsICdCYXInLCAnKCknCi0gICAg
cGFydHNbLTE6XSA9IHBhcnRzWy0xXS5zcGxpdCgiOjoiKQotICAgIHJldHVybiBwYXJ0cwotCi0K
LWRlZiBpc2NoaWxkbm9kZShiYXNlaWQsIG5vZGVpZCk6Ci0gICAgIiIiUmV0dXJuIFRydWUgaWYg
dGhlIG5vZGVpZCBpcyBhIGNoaWxkIG5vZGUgb2YgdGhlIGJhc2VpZC4KLQotICAgIEUuZy4gJ2Zv
by9iYXI6OkJhejo6KCknIGlzIGEgY2hpbGQgb2YgJ2ZvbycsICdmb28vYmFyJyBhbmQgJ2Zvby9i
YXI6OkJheicsIGJ1dCBub3Qgb2YgJ2Zvby9ibG9ycCcKLSAgICAiIiIKLSAgICBiYXNlX3BhcnRz
ID0gX3NwbGl0bm9kZShiYXNlaWQpCi0gICAgbm9kZV9wYXJ0cyA9IF9zcGxpdG5vZGUobm9kZWlk
KQotICAgIGlmIGxlbihub2RlX3BhcnRzKSA8IGxlbihiYXNlX3BhcnRzKToKLSAgICAgICAgcmV0
dXJuIEZhbHNlCi0gICAgcmV0dXJuIG5vZGVfcGFydHNbOmxlbihiYXNlX3BhcnRzKV0gPT0gYmFz
ZV9wYXJ0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub3NlLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9ub3NlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODE1
NDJlYWRmMzc3ZDFkM2FkZGZhYWZlYTVkNjRhODgzMjk4YTAzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvbm9zZS5weQor
KysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLSIiIiBydW4gdGVzdCBzdWl0ZXMgd3JpdHRl
biBmb3Igbm9zZS4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBzeXMKLQotZnJvbSBfcHl0ZXN0IGlt
cG9ydCB1bml0dGVzdCwgcnVubmVyLCBweXRob24KLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0
IGhvb2tpbXBsCi0KLQotZGVmIGdldF9za2lwX2V4Y2VwdGlvbnMoKToKLSAgICBza2lwX2NsYXNz
ZXMgPSBzZXQoKQotICAgIGZvciBtb2R1bGVfbmFtZSBpbiAoJ3VuaXR0ZXN0JywgJ3VuaXR0ZXN0
MicsICdub3NlJyk6Ci0gICAgICAgIG1vZCA9IHN5cy5tb2R1bGVzLmdldChtb2R1bGVfbmFtZSkK
LSAgICAgICAgaWYgaGFzYXR0cihtb2QsICdTa2lwVGVzdCcpOgotICAgICAgICAgICAgc2tpcF9j
bGFzc2VzLmFkZChtb2QuU2tpcFRlc3QpCi0gICAgcmV0dXJuIHR1cGxlKHNraXBfY2xhc3NlcykK
LQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToKLSAgICBpZiBj
YWxsLmV4Y2luZm8gYW5kIGNhbGwuZXhjaW5mby5lcnJpc2luc3RhbmNlKGdldF9za2lwX2V4Y2Vw
dGlvbnMoKSk6Ci0gICAgICAgICMgbGV0J3Mgc3Vic3RpdHV0ZSB0aGUgZXhjaW5mbyB3aXRoIGEg
cHl0ZXN0LnNraXAgb25lCi0gICAgICAgIGNhbGwyID0gY2FsbC5fX2NsYXNzX18oCi0gICAgICAg
ICAgICBsYW1iZGE6IHJ1bm5lci5za2lwKHN0cihjYWxsLmV4Y2luZm8udmFsdWUpKSwgY2FsbC53
aGVuKQotICAgICAgICBjYWxsLmV4Y2luZm8gPSBjYWxsMi5leGNpbmZvCi0KLQotQGhvb2tpbXBs
KHRyeWxhc3Q9VHJ1ZSkKLWRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKLSAgICBpZiBp
c19wb3RlbnRpYWxfbm9zZXRlc3QoaXRlbSk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbS5w
YXJlbnQsIHB5dGhvbi5HZW5lcmF0b3IpOgotICAgICAgICAgICAgZ2VuID0gaXRlbS5wYXJlbnQK
LSAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKGdlbiwgJ19ub3NlZ2Vuc2V0dXAnKToKLSAgICAg
ICAgICAgICAgICBjYWxsX29wdGlvbmFsKGdlbi5vYmosICdzZXR1cCcpCi0gICAgICAgICAgICAg
ICAgaWYgaXNpbnN0YW5jZShnZW4ucGFyZW50LCBweXRob24uSW5zdGFuY2UpOgotICAgICAgICAg
ICAgICAgICAgICBjYWxsX29wdGlvbmFsKGdlbi5wYXJlbnQub2JqLCAnc2V0dXAnKQotICAgICAg
ICAgICAgICAgIGdlbi5fbm9zZWdlbnNldHVwID0gVHJ1ZQotICAgICAgICBpZiBub3QgY2FsbF9v
cHRpb25hbChpdGVtLm9iaiwgJ3NldHVwJyk6Ci0gICAgICAgICAgICAjIGNhbGwgbW9kdWxlIGxl
dmVsIHNldHVwIGlmIHRoZXJlIGlzIG5vIG9iamVjdCBsZXZlbCBvbmUKLSAgICAgICAgICAgIGNh
bGxfb3B0aW9uYWwoaXRlbS5wYXJlbnQub2JqLCAnc2V0dXAnKQotICAgICAgICAjIFhYWCB0aGlz
IGltcGxpZXMgd2Ugb25seSBjYWxsIHRlYXJkb3duIHdoZW4gc2V0dXAgd29ya2VkCi0gICAgICAg
IGl0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZS5hZGRmaW5hbGl6ZXIoKGxhbWJkYTogdGVhcmRvd25f
bm9zZShpdGVtKSksIGl0ZW0pCi0KLQotZGVmIHRlYXJkb3duX25vc2UoaXRlbSk6Ci0gICAgaWYg
aXNfcG90ZW50aWFsX25vc2V0ZXN0KGl0ZW0pOgotICAgICAgICBpZiBub3QgY2FsbF9vcHRpb25h
bChpdGVtLm9iaiwgJ3RlYXJkb3duJyk6Ci0gICAgICAgICAgICBjYWxsX29wdGlvbmFsKGl0ZW0u
cGFyZW50Lm9iaiwgJ3RlYXJkb3duJykKLSAgICAgICAgIyBpZiBoYXNhdHRyKGl0ZW0ucGFyZW50
LCAnX25vc2VnZW5zZXR1cCcpOgotICAgICAgICAjICAgICNjYWxsX29wdGlvbmFsKGl0ZW0uX25v
c2VnZW5zZXR1cCwgJ3RlYXJkb3duJykKLSAgICAgICAgIyAgICBkZWwgaXRlbS5wYXJlbnQuX25v
c2VnZW5zZXR1cAotCi0KLWRlZiBweXRlc3RfbWFrZV9jb2xsZWN0X3JlcG9ydChjb2xsZWN0b3Ip
OgotICAgIGlmIGlzaW5zdGFuY2UoY29sbGVjdG9yLCBweXRob24uR2VuZXJhdG9yKToKLSAgICAg
ICAgY2FsbF9vcHRpb25hbChjb2xsZWN0b3Iub2JqLCAnc2V0dXAnKQotCi0KLWRlZiBpc19wb3Rl
bnRpYWxfbm9zZXRlc3QoaXRlbSk6Ci0gICAgIyBleHRyYSBjaGVjayBuZWVkZWQgc2luY2Ugd2Ug
ZG8gbm90IGRvIG5vc2Ugc3R5bGUgc2V0dXAvdGVhcmRvd24KLSAgICAjIG9uIGRpcmVjdCB1bml0
dGVzdCBzdHlsZSBjbGFzc2VzCi0gICAgcmV0dXJuIGlzaW5zdGFuY2UoaXRlbSwgcHl0aG9uLkZ1
bmN0aW9uKSBhbmQgXAotICAgICAgICBub3QgaXNpbnN0YW5jZShpdGVtLCB1bml0dGVzdC5UZXN0
Q2FzZUZ1bmN0aW9uKQotCi0KLWRlZiBjYWxsX29wdGlvbmFsKG9iaiwgbmFtZSk6Ci0gICAgbWV0
aG9kID0gZ2V0YXR0cihvYmosIG5hbWUsIE5vbmUpCi0gICAgaXNmaXh0dXJlID0gaGFzYXR0ciht
ZXRob2QsICJfcHl0ZXN0Zml4dHVyZWZ1bmN0aW9uIikKLSAgICBpZiBtZXRob2QgaXMgbm90IE5v
bmUgYW5kIG5vdCBpc2ZpeHR1cmUgYW5kIGNhbGxhYmxlKG1ldGhvZCk6Ci0gICAgICAgICMgSWYg
dGhlcmUncyBhbnkgcHJvYmxlbXMgYWxsb3cgdGhlIGV4Y2VwdGlvbiB0byByYWlzZSByYXRoZXIg
dGhhbgotICAgICAgICAjIHNpbGVudGx5IGlnbm9yaW5nIHRoZW0KLSAgICAgICAgbWV0aG9kKCkK
LSAgICAgICAgcmV0dXJuIFRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvb3V0
Y29tZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L291dGNvbWVzLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZjBjMThmYTZjMWI0ODc4M2EzYTlkM2E2NDVkM2UyNDRkNjczYzE0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3Qvb3V0Y29tZXMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNDcgKzAsMCBAQAot
IiIiCi1leGNlcHRpb24gY2xhc3NlcyBhbmQgY29uc3RhbnRzIGhhbmRsaW5nIHRlc3Qgb3V0Y29t
ZXMKLWFzIHdlbGwgYXMgZnVuY3Rpb25zIGNyZWF0aW5nIHRoZW0KLSIiIgotZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1w
b3J0IHB5Ci1pbXBvcnQgc3lzCi0KLQotY2xhc3MgT3V0Y29tZUV4Y2VwdGlvbihCYXNlRXhjZXB0
aW9uKToKLSAgICAiIiIgT3V0Y29tZUV4Y2VwdGlvbiBhbmQgaXRzIHN1YmNsYXNzIGluc3RhbmNl
cyBpbmRpY2F0ZSBhbmQKLSAgICAgICAgY29udGFpbiBpbmZvIGFib3V0IHRlc3QgYW5kIGNvbGxl
Y3Rpb24gb3V0Y29tZXMuCi0gICAgIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZz1Ob25l
LCBweXRyYWNlPVRydWUpOgotICAgICAgICBCYXNlRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYsIG1z
ZykKLSAgICAgICAgc2VsZi5tc2cgPSBtc2cKLSAgICAgICAgc2VsZi5weXRyYWNlID0gcHl0cmFj
ZQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICBpZiBzZWxmLm1zZzoKLSAgICAg
ICAgICAgIHZhbCA9IHNlbGYubXNnCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbCwgYnl0
ZXMpOgotICAgICAgICAgICAgICAgIHZhbCA9IHB5Ll9idWlsdGluLl90b3RleHQodmFsLCBlcnJv
cnM9J3JlcGxhY2UnKQotICAgICAgICAgICAgcmV0dXJuIHZhbAotICAgICAgICByZXR1cm4gIjwl
cyBpbnN0YW5jZT4iICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCkKLSAgICBfX3N0cl9fID0g
X19yZXByX18KLQotCi1URVNUX09VVENPTUUgPSAoT3V0Y29tZUV4Y2VwdGlvbiwgRXhjZXB0aW9u
KQotCi0KLWNsYXNzIFNraXBwZWQoT3V0Y29tZUV4Y2VwdGlvbik6Ci0gICAgIyBYWFggaGFja2lz
aDogb24gM2sgd2UgZmFrZSB0byBsaXZlIGluIHRoZSBidWlsdGlucwotICAgICMgaW4gb3JkZXIg
dG8gaGF2ZSBTa2lwcGVkIGV4Y2VwdGlvbiBwcmludGluZyBzaG9ydGVyL25pY2VyCi0gICAgX19t
b2R1bGVfXyA9ICdidWlsdGlucycKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2c9Tm9uZSwg
cHl0cmFjZT1UcnVlLCBhbGxvd19tb2R1bGVfbGV2ZWw9RmFsc2UpOgotICAgICAgICBPdXRjb21l
RXhjZXB0aW9uLl9faW5pdF9fKHNlbGYsIG1zZz1tc2csIHB5dHJhY2U9cHl0cmFjZSkKLSAgICAg
ICAgc2VsZi5hbGxvd19tb2R1bGVfbGV2ZWwgPSBhbGxvd19tb2R1bGVfbGV2ZWwKLQotCi1jbGFz
cyBGYWlsZWQoT3V0Y29tZUV4Y2VwdGlvbik6Ci0gICAgIiIiIHJhaXNlZCBmcm9tIGFuIGV4cGxp
Y2l0IGNhbGwgdG8gcHl0ZXN0LmZhaWwoKSAiIiIKLSAgICBfX21vZHVsZV9fID0gJ2J1aWx0aW5z
JwotCi0KLWNsYXNzIEV4aXQoS2V5Ym9hcmRJbnRlcnJ1cHQpOgotICAgICIiIiByYWlzZWQgZm9y
IGltbWVkaWF0ZSBwcm9ncmFtIGV4aXRzIChubyB0cmFjZWJhY2tzL3N1bW1hcmllcykiIiIKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgbXNnPSJ1bmtub3duIHJlYXNvbiIpOgotICAgICAgICBzZWxm
Lm1zZyA9IG1zZwotICAgICAgICBLZXlib2FyZEludGVycnVwdC5fX2luaXRfXyhzZWxmLCBtc2cp
Ci0KLSMgZXhwb3NlZCBoZWxwZXIgbWV0aG9kcwotCi0KLWRlZiBleGl0KG1zZyk6Ci0gICAgIiIi
IGV4aXQgdGVzdGluZyBwcm9jZXNzIGFzIGlmIEtleWJvYXJkSW50ZXJydXB0IHdhcyB0cmlnZ2Vy
ZWQuICIiIgotICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgIHJhaXNlIEV4aXQobXNn
KQotCi0KLWV4aXQuRXhjZXB0aW9uID0gRXhpdAotCi0KLWRlZiBza2lwKG1zZz0iIiwgKiprd2Fy
Z3MpOgotICAgICIiIiBza2lwIGFuIGV4ZWN1dGluZyB0ZXN0IHdpdGggdGhlIGdpdmVuIG1lc3Nh
Z2UuICBOb3RlOiBpdCdzIHVzdWFsbHkKLSAgICBiZXR0ZXIgdG8gdXNlIHRoZSBweXRlc3QubWFy
ay5za2lwaWYgbWFya2VyIHRvIGRlY2xhcmUgYSB0ZXN0IHRvIGJlCi0gICAgc2tpcHBlZCB1bmRl
ciBjZXJ0YWluIGNvbmRpdGlvbnMgbGlrZSBtaXNtYXRjaGluZyBwbGF0Zm9ybXMgb3IKLSAgICBk
ZXBlbmRlbmNpZXMuICBTZWUgdGhlIHB5dGVzdF9za2lwcGluZyBwbHVnaW4gZm9yIGRldGFpbHMu
Ci0KLSAgICA6a3dhcmcgYm9vbCBhbGxvd19tb2R1bGVfbGV2ZWw6IGFsbG93cyB0aGlzIGZ1bmN0
aW9uIHRvIGJlIGNhbGxlZCBhdAotICAgICAgICBtb2R1bGUgbGV2ZWwsIHNraXBwaW5nIHRoZSBy
ZXN0IG9mIHRoZSBtb2R1bGUuIERlZmF1bHQgdG8gRmFsc2UuCi0gICAgIiIiCi0gICAgX190cmFj
ZWJhY2toaWRlX18gPSBUcnVlCi0gICAgYWxsb3dfbW9kdWxlX2xldmVsID0ga3dhcmdzLnBvcCgn
YWxsb3dfbW9kdWxlX2xldmVsJywgRmFsc2UpCi0gICAgaWYga3dhcmdzOgotICAgICAgICBrZXlz
ID0gW2sgZm9yIGsgaW4ga3dhcmdzLmtleXMoKV0KLSAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd1
bmV4cGVjdGVkIGtleXdvcmQgYXJndW1lbnRzOiB7MH0nLmZvcm1hdChrZXlzKSkKLSAgICByYWlz
ZSBTa2lwcGVkKG1zZz1tc2csIGFsbG93X21vZHVsZV9sZXZlbD1hbGxvd19tb2R1bGVfbGV2ZWwp
Ci0KLQotc2tpcC5FeGNlcHRpb24gPSBTa2lwcGVkCi0KLQotZGVmIGZhaWwobXNnPSIiLCBweXRy
YWNlPVRydWUpOgotICAgICIiIiBleHBsaWNpdGx5IGZhaWwgYW4gY3VycmVudGx5LWV4ZWN1dGlu
ZyB0ZXN0IHdpdGggdGhlIGdpdmVuIE1lc3NhZ2UuCi0KLSAgICA6YXJnIHB5dHJhY2U6IGlmIGZh
bHNlIHRoZSBtc2cgcmVwcmVzZW50cyB0aGUgZnVsbCBmYWlsdXJlIGluZm9ybWF0aW9uCi0gICAg
ICAgICAgICAgICAgICBhbmQgbm8gcHl0aG9uIHRyYWNlYmFjayB3aWxsIGJlIHJlcG9ydGVkLgot
ICAgICIiIgotICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgIHJhaXNlIEZhaWxlZCht
c2c9bXNnLCBweXRyYWNlPXB5dHJhY2UpCi0KLQotZmFpbC5FeGNlcHRpb24gPSBGYWlsZWQKLQot
Ci1jbGFzcyBYRmFpbGVkKGZhaWwuRXhjZXB0aW9uKToKLSAgICAiIiIgcmFpc2VkIGZyb20gYW4g
ZXhwbGljaXQgY2FsbCB0byBweXRlc3QueGZhaWwoKSAiIiIKLQotCi1kZWYgeGZhaWwocmVhc29u
PSIiKToKLSAgICAiIiIgeGZhaWwgYW4gZXhlY3V0aW5nIHRlc3Qgb3Igc2V0dXAgZnVuY3Rpb25z
IHdpdGggdGhlIGdpdmVuIHJlYXNvbi4iIiIKLSAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUK
LSAgICByYWlzZSBYRmFpbGVkKHJlYXNvbikKLQotCi14ZmFpbC5FeGNlcHRpb24gPSBYRmFpbGVk
Ci0KLQotZGVmIGltcG9ydG9yc2tpcChtb2RuYW1lLCBtaW52ZXJzaW9uPU5vbmUpOgotICAgICIi
IiByZXR1cm4gaW1wb3J0ZWQgbW9kdWxlIGlmIGl0IGhhcyBhdCBsZWFzdCAibWludmVyc2lvbiIg
YXMgaXRzCi0gICAgX192ZXJzaW9uX18gYXR0cmlidXRlLiAgSWYgbm8gbWludmVyc2lvbiBpcyBz
cGVjaWZpZWQgdGhlIGEgc2tpcAotICAgIGlzIG9ubHkgdHJpZ2dlcmVkIGlmIHRoZSBtb2R1bGUg
Y2FuIG5vdCBiZSBpbXBvcnRlZC4KLSAgICAiIiIKLSAgICBpbXBvcnQgd2FybmluZ3MKLSAgICBf
X3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICBjb21waWxlKG1vZG5hbWUsICcnLCAnZXZhbCcp
ICAjIHRvIGNhdGNoIHN5bnRheGVycm9ycwotICAgIHNob3VsZF9za2lwID0gRmFsc2UKLQotICAg
IHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKLSAgICAgICAgIyBtYWtlIHN1cmUgdG8g
aWdub3JlIEltcG9ydFdhcm5pbmdzIHRoYXQgbWlnaHQgaGFwcGVuIGJlY2F1c2UKLSAgICAgICAg
IyBvZiBleGlzdGluZyBkaXJlY3RvcmllcyB3aXRoIHRoZSBzYW1lIG5hbWUgd2UncmUgdHJ5aW5n
IHRvCi0gICAgICAgICMgaW1wb3J0IGJ1dCB3aXRob3V0IGEgX19pbml0X18ucHkgZmlsZQotICAg
ICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoJ2lnbm9yZScpCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIF9faW1wb3J0X18obW9kbmFtZSkKLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgot
ICAgICAgICAgICAgIyBEbyBub3QgcmFpc2UgY2hhaW5lZCBleGNlcHRpb24gaGVyZSgjMTQ4NSkK
LSAgICAgICAgICAgIHNob3VsZF9za2lwID0gVHJ1ZQotICAgIGlmIHNob3VsZF9za2lwOgotICAg
ICAgICByYWlzZSBTa2lwcGVkKCJjb3VsZCBub3QgaW1wb3J0ICVyIiAlIChtb2RuYW1lLCksIGFs
bG93X21vZHVsZV9sZXZlbD1UcnVlKQotICAgIG1vZCA9IHN5cy5tb2R1bGVzW21vZG5hbWVdCi0g
ICAgaWYgbWludmVyc2lvbiBpcyBOb25lOgotICAgICAgICByZXR1cm4gbW9kCi0gICAgdmVyYXR0
ciA9IGdldGF0dHIobW9kLCAnX192ZXJzaW9uX18nLCBOb25lKQotICAgIGlmIG1pbnZlcnNpb24g
aXMgbm90IE5vbmU6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZyb20gcGtnX3Jlc291cmNl
cyBpbXBvcnQgcGFyc2VfdmVyc2lvbiBhcyBwdgotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6
Ci0gICAgICAgICAgICByYWlzZSBTa2lwcGVkKCJ3ZSBoYXZlIGEgcmVxdWlyZWQgdmVyc2lvbiBm
b3IgJXIgYnV0IGNhbiBub3QgaW1wb3J0ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgInBr
Z19yZXNvdXJjZXMgdG8gcGFyc2UgdmVyc2lvbiBzdHJpbmdzLiIgJSAobW9kbmFtZSwpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19tb2R1bGVfbGV2ZWw9VHJ1ZSkKLSAgICAgICAg
aWYgdmVyYXR0ciBpcyBOb25lIG9yIHB2KHZlcmF0dHIpIDwgcHYobWludmVyc2lvbik6Ci0gICAg
ICAgICAgICByYWlzZSBTa2lwcGVkKCJtb2R1bGUgJXIgaGFzIF9fdmVyc2lvbl9fICVyLCByZXF1
aXJlZCBpczogJXIiICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RuYW1lLCB2ZXJh
dHRyLCBtaW52ZXJzaW9uKSwgYWxsb3dfbW9kdWxlX2xldmVsPVRydWUpCi0gICAgcmV0dXJuIG1v
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9wYXN0ZWJpbi5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvcGFzdGViaW4ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1
ODhiMDIxYjEyNDIyZjU1MDdjOWJkZmE1MTFmNjFmM2QwMjgxZjkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9wYXN0ZWJp
bi5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwMCArMCwwIEBACi0iIiIgc3VibWl0IGZhaWx1cmUg
b3IgdGVzdCBzZXNzaW9uIGluZm9ybWF0aW9uIHRvIGEgcGFzdGViaW4gc2VydmljZS4gIiIiCi1m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1
bmN0aW9uCi0KLWltcG9ydCBweXRlc3QKLWltcG9ydCBzaXgKLWltcG9ydCBzeXMKLWltcG9ydCB0
ZW1wZmlsZQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBw
YXJzZXIuZ2V0Z3JvdXAoInRlcm1pbmFsIHJlcG9ydGluZyIpCi0gICAgZ3JvdXAuX2FkZG9wdGlv
bignLS1wYXN0ZWJpbicsIG1ldGF2YXI9Im1vZGUiLAotICAgICAgICAgICAgICAgICAgICAgYWN0
aW9uPSdzdG9yZScsIGRlc3Q9InBhc3RlYmluIiwgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAg
ICAgICAgICAgY2hvaWNlcz1bJ2ZhaWxlZCcsICdhbGwnXSwKLSAgICAgICAgICAgICAgICAgICAg
IGhlbHA9InNlbmQgZmFpbGVkfGFsbCBpbmZvIHRvIGJwYXN0ZS5uZXQgcGFzdGViaW4gc2Vydmlj
ZS4iKQotCi0KLUBweXRlc3QuaG9va2ltcGwodHJ5bGFzdD1UcnVlKQotZGVmIHB5dGVzdF9jb25m
aWd1cmUoY29uZmlnKToKLSAgICBpZiBjb25maWcub3B0aW9uLnBhc3RlYmluID09ICJhbGwiOgot
ICAgICAgICB0ciA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigndGVybWluYWxyZXBv
cnRlcicpCi0gICAgICAgICMgaWYgbm8gdGVybWluYWwgcmVwb3J0ZXIgcGx1Z2luIGlzIHByZXNl
bnQsIG5vdGhpbmcgd2UgY2FuIGRvIGhlcmU7Ci0gICAgICAgICMgdGhpcyBjYW4gaGFwcGVuIHdo
ZW4gdGhpcyBmdW5jdGlvbiBleGVjdXRlcyBpbiBhIHNsYXZlIG5vZGUKLSAgICAgICAgIyB3aGVu
IHVzaW5nIHB5dGVzdC14ZGlzdCwgZm9yIGV4YW1wbGUKLSAgICAgICAgaWYgdHIgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICAjIHBhc3RlYmluIGZpbGUgd2lsbCBiZSB1dGYtOCBlbmNvZGVkIGJp
bmFyeSBmaWxlCi0gICAgICAgICAgICBjb25maWcuX3Bhc3RlYmluZmlsZSA9IHRlbXBmaWxlLlRl
bXBvcmFyeUZpbGUoJ3crYicpCi0gICAgICAgICAgICBvbGR3cml0ZSA9IHRyLl90dy53cml0ZQot
Ci0gICAgICAgICAgICBkZWYgdGVlX3dyaXRlKHMsICoqa3dhcmdzKToKLSAgICAgICAgICAgICAg
ICBvbGR3cml0ZShzLCAqKmt3YXJncykKLSAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHMs
IHNpeC50ZXh0X3R5cGUpOgotICAgICAgICAgICAgICAgICAgICBzID0gcy5lbmNvZGUoJ3V0Zi04
JykKLSAgICAgICAgICAgICAgICBjb25maWcuX3Bhc3RlYmluZmlsZS53cml0ZShzKQotCi0gICAg
ICAgICAgICB0ci5fdHcud3JpdGUgPSB0ZWVfd3JpdGUKLQotCi1kZWYgcHl0ZXN0X3VuY29uZmln
dXJlKGNvbmZpZyk6Ci0gICAgaWYgaGFzYXR0cihjb25maWcsICdfcGFzdGViaW5maWxlJyk6Ci0g
ICAgICAgICMgZ2V0IHRlcm1pbmFsIGNvbnRlbnRzIGFuZCBkZWxldGUgZmlsZQotICAgICAgICBj
b25maWcuX3Bhc3RlYmluZmlsZS5zZWVrKDApCi0gICAgICAgIHNlc3Npb25sb2cgPSBjb25maWcu
X3Bhc3RlYmluZmlsZS5yZWFkKCkKLSAgICAgICAgY29uZmlnLl9wYXN0ZWJpbmZpbGUuY2xvc2Uo
KQotICAgICAgICBkZWwgY29uZmlnLl9wYXN0ZWJpbmZpbGUKLSAgICAgICAgIyB1bmRvIG91ciBw
YXRjaGluZyBpbiB0aGUgdGVybWluYWwgcmVwb3J0ZXIKLSAgICAgICAgdHIgPSBjb25maWcucGx1
Z2lubWFuYWdlci5nZXRwbHVnaW4oJ3Rlcm1pbmFscmVwb3J0ZXInKQotICAgICAgICBkZWwgdHIu
X3R3Ll9fZGljdF9fWyd3cml0ZSddCi0gICAgICAgICMgd3JpdGUgc3VtbWFyeQotICAgICAgICB0
ci53cml0ZV9zZXAoIj0iLCAiU2VuZGluZyBpbmZvcm1hdGlvbiB0byBQYXN0ZSBTZXJ2aWNlIikK
LSAgICAgICAgcGFzdGViaW51cmwgPSBjcmVhdGVfbmV3X3Bhc3RlKHNlc3Npb25sb2cpCi0gICAg
ICAgIHRyLndyaXRlX2xpbmUoInBhc3RlYmluIHNlc3Npb24tbG9nOiAlc1xuIiAlIHBhc3RlYmlu
dXJsKQotCi0KLWRlZiBjcmVhdGVfbmV3X3Bhc3RlKGNvbnRlbnRzKToKLSAgICAiIiIKLSAgICBD
cmVhdGVzIGEgbmV3IHBhc3RlIHVzaW5nIGJwYXN0ZS5uZXQgc2VydmljZS4KLQotICAgIDpjb250
ZW50czogcGFzdGUgY29udGVudHMgYXMgdXRmLTggZW5jb2RlZCBieXRlcwotICAgIDpyZXR1cm5z
OiB1cmwgdG8gdGhlIHBhc3RlZCBjb250ZW50cwotICAgICIiIgotICAgIGltcG9ydCByZQotICAg
IGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgICAgIGZyb20gdXJsbGliIGltcG9y
dCB1cmxvcGVuLCB1cmxlbmNvZGUKLSAgICBlbHNlOgotICAgICAgICBmcm9tIHVybGxpYi5yZXF1
ZXN0IGltcG9ydCB1cmxvcGVuCi0gICAgICAgIGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxl
bmNvZGUKLQotICAgIHBhcmFtcyA9IHsKLSAgICAgICAgJ2NvZGUnOiBjb250ZW50cywKLSAgICAg
ICAgJ2xleGVyJzogJ3B5dGhvbjMnIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMyBlbHNlICdw
eXRob24nLAotICAgICAgICAnZXhwaXJ5JzogJzF3ZWVrJywKLSAgICB9Ci0gICAgdXJsID0gJ2h0
dHBzOi8vYnBhc3RlLm5ldCcKLSAgICByZXNwb25zZSA9IHVybG9wZW4odXJsLCBkYXRhPXVybGVu
Y29kZShwYXJhbXMpLmVuY29kZSgnYXNjaWknKSkucmVhZCgpCi0gICAgbSA9IHJlLnNlYXJjaChy
J2hyZWY9Ii9yYXcvKFx3KykiJywgcmVzcG9uc2UuZGVjb2RlKCd1dGYtOCcpKQotICAgIGlmIG06
Ci0gICAgICAgIHJldHVybiAnJXMvc2hvdy8lcycgJSAodXJsLCBtLmdyb3VwKDEpKQotICAgIGVs
c2U6Ci0gICAgICAgIHJldHVybiAnYmFkIHJlc3BvbnNlOiAnICsgcmVzcG9uc2UKLQotCi1kZWYg
cHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlcik6Ci0gICAgaW1wb3J0IF9w
eXRlc3QuY29uZmlnCi0gICAgaWYgdGVybWluYWxyZXBvcnRlci5jb25maWcub3B0aW9uLnBhc3Rl
YmluICE9ICJmYWlsZWQiOgotICAgICAgICByZXR1cm4KLSAgICB0ciA9IHRlcm1pbmFscmVwb3J0
ZXIKLSAgICBpZiAnZmFpbGVkJyBpbiB0ci5zdGF0czoKLSAgICAgICAgdGVybWluYWxyZXBvcnRl
ci53cml0ZV9zZXAoIj0iLCAiU2VuZGluZyBpbmZvcm1hdGlvbiB0byBQYXN0ZSBTZXJ2aWNlIikK
LSAgICAgICAgZm9yIHJlcCBpbiB0ZXJtaW5hbHJlcG9ydGVyLnN0YXRzLmdldCgnZmFpbGVkJyk6
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbXNnID0gcmVwLmxvbmdyZXByLnJl
cHJ0cmFjZWJhY2sucmVwcmVudHJpZXNbLTFdLnJlcHJmaWxlbG9jCi0gICAgICAgICAgICBleGNl
cHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAgICAgbXNnID0gdHIuX2dldGZhaWx1cmVo
ZWFkbGluZShyZXApCi0gICAgICAgICAgICB0dyA9IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJt
aW5hbF93cml0ZXIodGVybWluYWxyZXBvcnRlci5jb25maWcsIHN0cmluZ2lvPVRydWUpCi0gICAg
ICAgICAgICByZXAudG90ZXJtaW5hbCh0dykKLSAgICAgICAgICAgIHMgPSB0dy5zdHJpbmdpby5n
ZXR2YWx1ZSgpCi0gICAgICAgICAgICBhc3NlcnQgbGVuKHMpCi0gICAgICAgICAgICBwYXN0ZWJp
bnVybCA9IGNyZWF0ZV9uZXdfcGFzdGUocykKLSAgICAgICAgICAgIHRyLndyaXRlX2xpbmUoIiVz
IC0tPiAlcyIgJSAobXNnLCBwYXN0ZWJpbnVybCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L3B5dGVzdGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRlc3Rlci5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJkZDU5OTRmMWJiZmI0ZGQ2YjQyOWQ4NmVmNzQ4
Y2JkNTc4ZDU3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGVzdGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTE4
NyArMCwwIEBACi0iIiIgKGRpc2FibGVkIGJ5IGRlZmF1bHQpIHN1cHBvcnQgZm9yIHRlc3Rpbmcg
cHl0ZXN0IGFuZCBweXRlc3QgcGx1Z2lucy4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBjb2RlY3MK
LWltcG9ydCBnYwotaW1wb3J0IG9zCi1pbXBvcnQgcGxhdGZvcm0KLWltcG9ydCByZQotaW1wb3J0
IHN1YnByb2Nlc3MKLWltcG9ydCBzaXgKLWltcG9ydCBzeXMKLWltcG9ydCB0aW1lCi1pbXBvcnQg
dHJhY2ViYWNrCi1mcm9tIGZubWF0Y2ggaW1wb3J0IGZubWF0Y2gKLQotZnJvbSB3ZWFrcmVmIGlt
cG9ydCBXZWFrS2V5RGljdGlvbmFyeQotCi1mcm9tIF9weXRlc3QuY2FwdHVyZSBpbXBvcnQgTXVs
dGlDYXB0dXJlLCBTeXNDYXB0dXJlCi1mcm9tIF9weXRlc3QuX2NvZGUgaW1wb3J0IFNvdXJjZQot
aW1wb3J0IHB5Ci1pbXBvcnQgcHl0ZXN0Ci1mcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgU2Vzc2lv
biwgRVhJVF9PSwotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlIGltcG9ydCBBc3NlcnRp
b25SZXdyaXRpbmdIb29rCi0KLQotUFlURVNUX0ZVTExQQVRIID0gb3MucGF0aC5hYnNwYXRoKHB5
dGVzdC5fX2ZpbGVfXy5yc3RyaXAoIm9jIikpLnJlcGxhY2UoIiRweS5jbGFzcyIsICIucHkiKQot
Ci0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgIyBncm91cCA9IHBhcnNlci5n
ZXRncm91cCgicHl0ZXN0ZXIiLCAicHl0ZXN0ZXIgKHNlbGYtdGVzdHMpIG9wdGlvbnMiKQotICAg
IHBhcnNlci5hZGRvcHRpb24oJy0tbHNvZicsCi0gICAgICAgICAgICAgICAgICAgICBhY3Rpb249
InN0b3JlX3RydWUiLCBkZXN0PSJsc29mIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9KCJydW4gRkQgY2hlY2tzIGlmIGxzb2YgaXMgYXZhaWxhYmxlIikpCi0KLSAg
ICBwYXJzZXIuYWRkb3B0aW9uKCctLXJ1bnB5dGVzdCcsIGRlZmF1bHQ9ImlucHJvY2VzcyIsIGRl
c3Q9InJ1bnB5dGVzdCIsCi0gICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPSgiaW5wcm9jZXNz
IiwgInN1YnByb2Nlc3MiLCApLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0oInJ1biBweXRl
c3Qgc3ViIHJ1bnMgaW4gdGVzdHMgdXNpbmcgYW4gJ2lucHJvY2VzcycgIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm9yICdzdWJwcm9jZXNzJyAocHl0aG9uIC1tIG1haW4pIG1ldGhvZCIp
KQotCi0KLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLmdldHZh
bHVlKCJsc29mIik6Ci0gICAgICAgIGNoZWNrZXIgPSBMc29mRmRMZWFrQ2hlY2tlcigpCi0gICAg
ICAgIGlmIGNoZWNrZXIubWF0Y2hpbmdfcGxhdGZvcm0oKToKLSAgICAgICAgICAgIGNvbmZpZy5w
bHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKGNoZWNrZXIpCi0KLQotY2xhc3MgTHNvZkZkTGVha0NoZWNr
ZXIob2JqZWN0KToKLSAgICBkZWYgZ2V0X29wZW5fZmlsZXMoc2VsZik6Ci0gICAgICAgIG91dCA9
IHNlbGYuX2V4ZWNfbHNvZigpCi0gICAgICAgIG9wZW5fZmlsZXMgPSBzZWxmLl9wYXJzZV9sc29m
X291dHB1dChvdXQpCi0gICAgICAgIHJldHVybiBvcGVuX2ZpbGVzCi0KLSAgICBkZWYgX2V4ZWNf
bHNvZihzZWxmKToKLSAgICAgICAgcGlkID0gb3MuZ2V0cGlkKCkKLSAgICAgICAgcmV0dXJuIHB5
LnByb2Nlc3MuY21kZXhlYygibHNvZiAtRmZuMCAtcCAlZCIgJSBwaWQpCi0KLSAgICBkZWYgX3Bh
cnNlX2xzb2Zfb3V0cHV0KHNlbGYsIG91dCk6Ci0gICAgICAgIGRlZiBpc29wZW4obGluZSk6Ci0g
ICAgICAgICAgICByZXR1cm4gbGluZS5zdGFydHN3aXRoKCdmJykgYW5kICgiZGVsZXRlZCIgbm90
IGluIGxpbmUgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnbWVtJyBub3QgaW4gbGluZSBhbmQgInR4dCIgbm90IGluIGxpbmUgYW5kICdjd2QnIG5vdCBp
biBsaW5lKQotCi0gICAgICAgIG9wZW5fZmlsZXMgPSBbXQotCi0gICAgICAgIGZvciBsaW5lIGlu
IG91dC5zcGxpdCgiXG4iKToKLSAgICAgICAgICAgIGlmIGlzb3BlbihsaW5lKToKLSAgICAgICAg
ICAgICAgICBmaWVsZHMgPSBsaW5lLnNwbGl0KCdcMCcpCi0gICAgICAgICAgICAgICAgZmQgPSBm
aWVsZHNbMF1bMTpdCi0gICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBmaWVsZHNbMV1bMTpdCi0g
ICAgICAgICAgICAgICAgaWYgZmlsZW5hbWUuc3RhcnRzd2l0aCgnLycpOgotICAgICAgICAgICAg
ICAgICAgICBvcGVuX2ZpbGVzLmFwcGVuZCgoZmQsIGZpbGVuYW1lKSkKLQotICAgICAgICByZXR1
cm4gb3Blbl9maWxlcwotCi0gICAgZGVmIG1hdGNoaW5nX3BsYXRmb3JtKHNlbGYpOgotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBweS5wcm9jZXNzLmNtZGV4ZWMoImxzb2YgLXYiKQotICAgICAg
ICBleGNlcHQgKHB5LnByb2Nlc3MuY21kZXhlYy5FcnJvciwgVW5pY29kZURlY29kZUVycm9yKToK
LSAgICAgICAgICAgICMgY21kZXhlYyBtYXkgcmFpc2UgVW5pY29kZURlY29kZUVycm9yIG9uIFdp
bmRvd3Mgc3lzdGVtcwotICAgICAgICAgICAgIyB3aXRoIGxvY2FsZSBvdGhlciB0aGFuIGVuZ2xp
c2g6Ci0gICAgICAgICAgICAjIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9weXRlc3QtZGV2L3B5L2lz
c3Vlcy82NgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICByZXR1cm4gVHJ1ZQotCi0gICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVl
LCB0cnlmaXJzdD1UcnVlKQotICAgIGRlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbChzZWxmLCBp
dGVtKToKLSAgICAgICAgbGluZXMxID0gc2VsZi5nZXRfb3Blbl9maWxlcygpCi0gICAgICAgIHlp
ZWxkCi0gICAgICAgIGlmIGhhc2F0dHIoc3lzLCAicHlweV92ZXJzaW9uX2luZm8iKToKLSAgICAg
ICAgICAgIGdjLmNvbGxlY3QoKQotICAgICAgICBsaW5lczIgPSBzZWxmLmdldF9vcGVuX2ZpbGVz
KCkKLQotICAgICAgICBuZXdfZmRzID0gc2V0KFt0WzBdIGZvciB0IGluIGxpbmVzMl0pIC0gc2V0
KFt0WzBdIGZvciB0IGluIGxpbmVzMV0pCi0gICAgICAgIGxlYWtlZF9maWxlcyA9IFt0IGZvciB0
IGluIGxpbmVzMiBpZiB0WzBdIGluIG5ld19mZHNdCi0gICAgICAgIGlmIGxlYWtlZF9maWxlczoK
LSAgICAgICAgICAgIGVycm9yID0gW10KLSAgICAgICAgICAgIGVycm9yLmFwcGVuZCgiKioqKiog
JXMgRkQgbGVha2FnZSBkZXRlY3RlZCIgJSBsZW4obGVha2VkX2ZpbGVzKSkKLSAgICAgICAgICAg
IGVycm9yLmV4dGVuZChbc3RyKGYpIGZvciBmIGluIGxlYWtlZF9maWxlc10pCi0gICAgICAgICAg
ICBlcnJvci5hcHBlbmQoIioqKiBCZWZvcmU6IikKLSAgICAgICAgICAgIGVycm9yLmV4dGVuZChb
c3RyKGYpIGZvciBmIGluIGxpbmVzMV0pCi0gICAgICAgICAgICBlcnJvci5hcHBlbmQoIioqKiBB
ZnRlcjoiKQotICAgICAgICAgICAgZXJyb3IuZXh0ZW5kKFtzdHIoZikgZm9yIGYgaW4gbGluZXMy
XSkKLSAgICAgICAgICAgIGVycm9yLmFwcGVuZChlcnJvclswXSkKLSAgICAgICAgICAgIGVycm9y
LmFwcGVuZCgiKioqIGZ1bmN0aW9uICVzOiVzOiAlcyAiICUgaXRlbS5sb2NhdGlvbikKLSAgICAg
ICAgICAgIGVycm9yLmFwcGVuZCgiU2VlIGlzc3VlICMyMzY2IikKLSAgICAgICAgICAgIGl0ZW0u
d2FybignJywgIlxuIi5qb2luKGVycm9yKSkKLQotCi0jIFhYWCBjb3BpZWQgZnJvbSBleGVjbmV0
J3MgY29uZnRlc3QucHkgLSBuZWVkcyB0byBiZSBtZXJnZWQKLXdpbnB5bWFwID0gewotICAgICdw
eXRob24yLjcnOiByJ0M6XFB5dGhvbjI3XHB5dGhvbi5leGUnLAotICAgICdweXRob24zLjQnOiBy
J0M6XFB5dGhvbjM0XHB5dGhvbi5leGUnLAotICAgICdweXRob24zLjUnOiByJ0M6XFB5dGhvbjM1
XHB5dGhvbi5leGUnLAotICAgICdweXRob24zLjYnOiByJ0M6XFB5dGhvbjM2XHB5dGhvbi5leGUn
LAotfQotCi0KLWRlZiBnZXRleGVjdXRhYmxlKG5hbWUsIGNhY2hlPXt9KToKLSAgICB0cnk6Ci0g
ICAgICAgIHJldHVybiBjYWNoZVtuYW1lXQotICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAg
ZXhlY3V0YWJsZSA9IHB5LnBhdGgubG9jYWwuc3lzZmluZChuYW1lKQotICAgICAgICBpZiBleGVj
dXRhYmxlOgotICAgICAgICAgICAgaW1wb3J0IHN1YnByb2Nlc3MKLSAgICAgICAgICAgIHBvcGVu
ID0gc3VicHJvY2Vzcy5Qb3Blbihbc3RyKGV4ZWN1dGFibGUpLCAiLS12ZXJzaW9uIl0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUs
IHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCi0gICAgICAgICAgICBvdXQsIGVyciA9IHBvcGVuLmNv
bW11bmljYXRlKCkKLSAgICAgICAgICAgIGlmIG5hbWUgPT0gImp5dGhvbiI6Ci0gICAgICAgICAg
ICAgICAgaWYgbm90IGVyciBvciAiMi41IiBub3QgaW4gZXJyOgotICAgICAgICAgICAgICAgICAg
ICBleGVjdXRhYmxlID0gTm9uZQotICAgICAgICAgICAgICAgIGlmICIyLjUuMiIgaW4gZXJyOgot
ICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gTm9uZSAgIyBodHRwOi8vYnVncy5qeXRo
b24ub3JnL2lzc3VlMTc5MAotICAgICAgICAgICAgZWxpZiBwb3Blbi5yZXR1cm5jb2RlICE9IDA6
Ci0gICAgICAgICAgICAgICAgIyBIYW5kbGUgcHllbnYncyAxMjcuCi0gICAgICAgICAgICAgICAg
ZXhlY3V0YWJsZSA9IE5vbmUKLSAgICAgICAgY2FjaGVbbmFtZV0gPSBleGVjdXRhYmxlCi0gICAg
ICAgIHJldHVybiBleGVjdXRhYmxlCi0KLQotQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bJ3B5dGhv
bjIuNycsICdweXRob24zLjQnLCAncHlweScsICdweXB5MyddKQotZGVmIGFueXB5dGhvbihyZXF1
ZXN0KToKLSAgICBuYW1lID0gcmVxdWVzdC5wYXJhbQotICAgIGV4ZWN1dGFibGUgPSBnZXRleGVj
dXRhYmxlKG5hbWUpCi0gICAgaWYgZXhlY3V0YWJsZSBpcyBOb25lOgotICAgICAgICBpZiBzeXMu
cGxhdGZvcm0gPT0gIndpbjMyIjoKLSAgICAgICAgICAgIGV4ZWN1dGFibGUgPSB3aW5weW1hcC5n
ZXQobmFtZSwgTm9uZSkKLSAgICAgICAgICAgIGlmIGV4ZWN1dGFibGU6Ci0gICAgICAgICAgICAg
ICAgZXhlY3V0YWJsZSA9IHB5LnBhdGgubG9jYWwoZXhlY3V0YWJsZSkKLSAgICAgICAgICAgICAg
ICBpZiBleGVjdXRhYmxlLmNoZWNrKCk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBleGVj
dXRhYmxlCi0gICAgICAgIHB5dGVzdC5za2lwKCJubyBzdWl0YWJsZSAlcyBmb3VuZCIgJSAobmFt
ZSwpKQotICAgIHJldHVybiBleGVjdXRhYmxlCi0KLSMgdXNlZCBhdCBsZWFzdCBieSBweXRlc3Qt
eGRpc3QgcGx1Z2luCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgX3B5dGVzdChyZXF1ZXN0KToK
LSAgICAiIiIgUmV0dXJuIGEgaGVscGVyIHdoaWNoIG9mZmVycyBhIGdldGhvb2tyZWNvcmRlciho
b29rKQotICAgIG1ldGhvZCB3aGljaCByZXR1cm5zIGEgSG9va1JlY29yZGVyIGluc3RhbmNlIHdo
aWNoIGhlbHBzCi0gICAgdG8gbWFrZSBhc3NlcnRpb25zIGFib3V0IGNhbGxlZCBob29rcy4KLSAg
ICAiIiIKLSAgICByZXR1cm4gUHl0ZXN0QXJnKHJlcXVlc3QpCi0KLQotY2xhc3MgUHl0ZXN0QXJn
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgc2VsZi5yZXF1ZXN0
ID0gcmVxdWVzdAotCi0gICAgZGVmIGdldGhvb2tyZWNvcmRlcihzZWxmLCBob29rKToKLSAgICAg
ICAgaG9va3JlY29yZGVyID0gSG9va1JlY29yZGVyKGhvb2suX3BtKQotICAgICAgICBzZWxmLnJl
cXVlc3QuYWRkZmluYWxpemVyKGhvb2tyZWNvcmRlci5maW5pc2hfcmVjb3JkaW5nKQotICAgICAg
ICByZXR1cm4gaG9va3JlY29yZGVyCi0KLQotZGVmIGdldF9wdWJsaWNfbmFtZXModmFsdWVzKToK
LSAgICAiIiJPbmx5IHJldHVybiBuYW1lcyBmcm9tIGl0ZXJhdG9yIHZhbHVlcyB3aXRob3V0IGEg
bGVhZGluZyB1bmRlcnNjb3JlLiIiIgotICAgIHJldHVybiBbeCBmb3IgeCBpbiB2YWx1ZXMgaWYg
eFswXSAhPSAiXyJdCi0KLQotY2xhc3MgUGFyc2VkQ2FsbDoKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbmFtZSwga3dhcmdzKToKLSAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoa3dhcmdzKQot
ICAgICAgICBzZWxmLl9uYW1lID0gbmFtZQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAg
ICAgICBkID0gc2VsZi5fX2RpY3RfXy5jb3B5KCkKLSAgICAgICAgZGVsIGRbJ19uYW1lJ10KLSAg
ICAgICAgcmV0dXJuICI8UGFyc2VkQ2FsbCAlcigqKiVyKT4iICUgKHNlbGYuX25hbWUsIGQpCi0K
LQotY2xhc3MgSG9va1JlY29yZGVyOgotICAgICIiIlJlY29yZCBhbGwgaG9va3MgY2FsbGVkIGlu
IGEgcGx1Z2luIG1hbmFnZXIuCi0KLSAgICBUaGlzIHdyYXBzIGFsbCB0aGUgaG9vayBjYWxscyBp
biB0aGUgcGx1Z2luIG1hbmFnZXIsIHJlY29yZGluZwotICAgIGVhY2ggY2FsbCBiZWZvcmUgcHJv
cGFnYXRpbmcgdGhlIG5vcm1hbCBjYWxscy4KLQotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBsdWdpbm1hbmFnZXIpOgotICAgICAgICBzZWxmLl9wbHVnaW5tYW5hZ2VyID0gcGx1
Z2lubWFuYWdlcgotICAgICAgICBzZWxmLmNhbGxzID0gW10KLQotICAgICAgICBkZWYgYmVmb3Jl
KGhvb2tfbmFtZSwgaG9va19pbXBscywga3dhcmdzKToKLSAgICAgICAgICAgIHNlbGYuY2FsbHMu
YXBwZW5kKFBhcnNlZENhbGwoaG9va19uYW1lLCBrd2FyZ3MpKQotCi0gICAgICAgIGRlZiBhZnRl
cihvdXRjb21lLCBob29rX25hbWUsIGhvb2tfaW1wbHMsIGt3YXJncyk6Ci0gICAgICAgICAgICBw
YXNzCi0KLSAgICAgICAgc2VsZi5fdW5kb193cmFwcGluZyA9IHBsdWdpbm1hbmFnZXIuYWRkX2hv
b2tjYWxsX21vbml0b3JpbmcoYmVmb3JlLCBhZnRlcikKLQotICAgIGRlZiBmaW5pc2hfcmVjb3Jk
aW5nKHNlbGYpOgotICAgICAgICBzZWxmLl91bmRvX3dyYXBwaW5nKCkKLQotICAgIGRlZiBnZXRj
YWxscyhzZWxmLCBuYW1lcyk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UobmFtZXMsIHN0cik6Ci0g
ICAgICAgICAgICBuYW1lcyA9IG5hbWVzLnNwbGl0KCkKLSAgICAgICAgcmV0dXJuIFtjYWxsIGZv
ciBjYWxsIGluIHNlbGYuY2FsbHMgaWYgY2FsbC5fbmFtZSBpbiBuYW1lc10KLQotICAgIGRlZiBh
c3NlcnRfY29udGFpbnMoc2VsZiwgZW50cmllcyk6Ci0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9f
ID0gVHJ1ZQotICAgICAgICBpID0gMAotICAgICAgICBlbnRyaWVzID0gbGlzdChlbnRyaWVzKQot
ICAgICAgICBiYWNrbG9jYWxzID0gc3lzLl9nZXRmcmFtZSgxKS5mX2xvY2FscwotICAgICAgICB3
aGlsZSBlbnRyaWVzOgotICAgICAgICAgICAgbmFtZSwgY2hlY2sgPSBlbnRyaWVzLnBvcCgwKQot
ICAgICAgICAgICAgZm9yIGluZCwgY2FsbCBpbiBlbnVtZXJhdGUoc2VsZi5jYWxsc1tpOl0pOgot
ICAgICAgICAgICAgICAgIGlmIGNhbGwuX25hbWUgPT0gbmFtZToKLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoIk5BTUVNQVRDSCIsIG5hbWUsIGNhbGwpCi0gICAgICAgICAgICAgICAgICAgIGlm
IGV2YWwoY2hlY2ssIGJhY2tsb2NhbHMsIGNhbGwuX19kaWN0X18pOgotICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnQoIkNIRUNLRVJNQVRDSCIsIHJlcHIoY2hlY2spLCAiLT4iLCBjYWxsKQot
ICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQo
Ik5PQ0hFQ0tFUk1BVENIIiwgcmVwcihjaGVjayksICItIiwgY2FsbCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgICAgIGkgKz0gaW5kICsgMQotICAg
ICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIHByaW50KCJOT05BTUVNQVRD
SCIsIG5hbWUsICJ3aXRoIiwgY2FsbCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgcHl0ZXN0LmZhaWwoImNvdWxkIG5vdCBmaW5kICVyIGNoZWNrICVyIiAlIChuYW1lLCBjaGVj
aykpCi0KLSAgICBkZWYgcG9wY2FsbChzZWxmLCBuYW1lKToKLSAgICAgICAgX190cmFjZWJhY2to
aWRlX18gPSBUcnVlCi0gICAgICAgIGZvciBpLCBjYWxsIGluIGVudW1lcmF0ZShzZWxmLmNhbGxz
KToKLSAgICAgICAgICAgIGlmIGNhbGwuX25hbWUgPT0gbmFtZToKLSAgICAgICAgICAgICAgICBk
ZWwgc2VsZi5jYWxsc1tpXQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsCi0gICAgICAgIGxp
bmVzID0gWyJjb3VsZCBub3QgZmluZCBjYWxsICVyLCBpbjoiICUgKG5hbWUsKV0KLSAgICAgICAg
bGluZXMuZXh0ZW5kKFsiICAlcyIgJSBzdHIoeCkgZm9yIHggaW4gc2VsZi5jYWxsc10pCi0gICAg
ICAgIHB5dGVzdC5mYWlsKCJcbiIuam9pbihsaW5lcykpCi0KLSAgICBkZWYgZ2V0Y2FsbChzZWxm
LCBuYW1lKToKLSAgICAgICAgdmFsdWVzID0gc2VsZi5nZXRjYWxscyhuYW1lKQotICAgICAgICBh
c3NlcnQgbGVuKHZhbHVlcykgPT0gMSwgKG5hbWUsIHZhbHVlcykKLSAgICAgICAgcmV0dXJuIHZh
bHVlc1swXQotCi0gICAgIyBmdW5jdGlvbmFsaXR5IGZvciB0ZXN0IHJlcG9ydHMKLQotICAgIGRl
ZiBnZXRyZXBvcnRzKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgbmFtZXM9InB5dGVzdF9ydW50
ZXN0X2xvZ3JlcG9ydCBweXRlc3RfY29sbGVjdHJlcG9ydCIpOgotICAgICAgICByZXR1cm4gW3gu
cmVwb3J0IGZvciB4IGluIHNlbGYuZ2V0Y2FsbHMobmFtZXMpXQotCi0gICAgZGVmIG1hdGNocmVw
b3J0KHNlbGYsIGluYW1lcGFydD0iIiwKLSAgICAgICAgICAgICAgICAgICAgbmFtZXM9InB5dGVz
dF9ydW50ZXN0X2xvZ3JlcG9ydCBweXRlc3RfY29sbGVjdHJlcG9ydCIsIHdoZW49Tm9uZSk6Ci0g
ICAgICAgICIiIiByZXR1cm4gYSB0ZXN0cmVwb3J0IHdob3NlIGRvdHRlZCBpbXBvcnQgcGF0aCBt
YXRjaGVzICIiIgotICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICBmb3IgcmVwIGluIHNlbGYu
Z2V0cmVwb3J0cyhuYW1lcz1uYW1lcyk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgaWYgbm90IHdoZW4gYW5kIHJlcC53aGVuICE9ICJjYWxsIiBhbmQgcmVwLnBhc3NlZDoKLSAg
ICAgICAgICAgICAgICAgICAgIyBzZXR1cC90ZWFyZG93biBwYXNzaW5nIHJlcG9ydHMgLSBsZXQn
cyBpZ25vcmUgdGhvc2UKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAg
ICBpZiB3aGVuIGFuZCBnZXRhdHRyKHJlcCwgJ3doZW4nLCBOb25lKSAhPSB3aGVuOgotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBub3QgaW5hbWVwYXJ0IG9yIGluYW1l
cGFydCBpbiByZXAubm9kZWlkLnNwbGl0KCI6OiIpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5h
cHBlbmQocmVwKQotICAgICAgICBpZiBub3QgdmFsdWVzOgotICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigiY291bGQgbm90IGZpbmQgdGVzdCByZXBvcnQgbWF0Y2hpbmcgJXI6ICIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm5vIHRlc3QgcmVwb3J0cyBhdCBhbGwhIiAlIChpbmFt
ZXBhcnQsKSkKLSAgICAgICAgaWYgbGVuKHZhbHVlcykgPiAxOgotICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAiZm91bmQgMiBvciBtb3JlIHRlc3RyZXBvcnRz
IG1hdGNoaW5nICVyOiAlcyIgJSAoaW5hbWVwYXJ0LCB2YWx1ZXMpKQotICAgICAgICByZXR1cm4g
dmFsdWVzWzBdCi0KLSAgICBkZWYgZ2V0ZmFpbHVyZXMoc2VsZiwKLSAgICAgICAgICAgICAgICAg
ICAgbmFtZXM9J3B5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCBweXRlc3RfY29sbGVjdHJlcG9ydCcp
OgotICAgICAgICByZXR1cm4gW3JlcCBmb3IgcmVwIGluIHNlbGYuZ2V0cmVwb3J0cyhuYW1lcykg
aWYgcmVwLmZhaWxlZF0KLQotICAgIGRlZiBnZXRmYWlsZWRjb2xsZWN0aW9ucyhzZWxmKToKLSAg
ICAgICAgcmV0dXJuIHNlbGYuZ2V0ZmFpbHVyZXMoJ3B5dGVzdF9jb2xsZWN0cmVwb3J0JykKLQot
ICAgIGRlZiBsaXN0b3V0Y29tZXMoc2VsZik6Ci0gICAgICAgIHBhc3NlZCA9IFtdCi0gICAgICAg
IHNraXBwZWQgPSBbXQotICAgICAgICBmYWlsZWQgPSBbXQotICAgICAgICBmb3IgcmVwIGluIHNl
bGYuZ2V0cmVwb3J0cygKLSAgICAgICAgICAgICAgICAicHl0ZXN0X2NvbGxlY3RyZXBvcnQgcHl0
ZXN0X3J1bnRlc3RfbG9ncmVwb3J0Iik6Ci0gICAgICAgICAgICBpZiByZXAucGFzc2VkOgotICAg
ICAgICAgICAgICAgIGlmIGdldGF0dHIocmVwLCAid2hlbiIsIE5vbmUpID09ICJjYWxsIjoKLSAg
ICAgICAgICAgICAgICAgICAgcGFzc2VkLmFwcGVuZChyZXApCi0gICAgICAgICAgICBlbGlmIHJl
cC5za2lwcGVkOgotICAgICAgICAgICAgICAgIHNraXBwZWQuYXBwZW5kKHJlcCkKLSAgICAgICAg
ICAgIGVsaWYgcmVwLmZhaWxlZDoKLSAgICAgICAgICAgICAgICBmYWlsZWQuYXBwZW5kKHJlcCkK
LSAgICAgICAgcmV0dXJuIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkCi0KLSAgICBkZWYgY291bnRv
dXRjb21lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIFtsZW4oeCkgZm9yIHggaW4gc2VsZi5saXN0
b3V0Y29tZXMoKV0KLQotICAgIGRlZiBhc3NlcnRvdXRjb21lKHNlbGYsIHBhc3NlZD0wLCBza2lw
cGVkPTAsIGZhaWxlZD0wKToKLSAgICAgICAgcmVhbHBhc3NlZCwgcmVhbHNraXBwZWQsIHJlYWxm
YWlsZWQgPSBzZWxmLmxpc3RvdXRjb21lcygpCi0gICAgICAgIGFzc2VydCBwYXNzZWQgPT0gbGVu
KHJlYWxwYXNzZWQpCi0gICAgICAgIGFzc2VydCBza2lwcGVkID09IGxlbihyZWFsc2tpcHBlZCkK
LSAgICAgICAgYXNzZXJ0IGZhaWxlZCA9PSBsZW4ocmVhbGZhaWxlZCkKLQotICAgIGRlZiBjbGVh
cihzZWxmKToKLSAgICAgICAgc2VsZi5jYWxsc1s6XSA9IFtdCi0KLQotQHB5dGVzdC5maXh0dXJl
Ci1kZWYgbGluZWNvbXAocmVxdWVzdCk6Ci0gICAgcmV0dXJuIExpbmVDb21wKCkKLQotCi1AcHl0
ZXN0LmZpeHR1cmUobmFtZT0nTGluZU1hdGNoZXInKQotZGVmIExpbmVNYXRjaGVyX2ZpeHR1cmUo
cmVxdWVzdCk6Ci0gICAgcmV0dXJuIExpbmVNYXRjaGVyCi0KLQotQHB5dGVzdC5maXh0dXJlCi1k
ZWYgdGVzdGRpcihyZXF1ZXN0LCB0bXBkaXJfZmFjdG9yeSk6Ci0gICAgcmV0dXJuIFRlc3RkaXIo
cmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpCi0KLQotcmV4X291dGNvbWUgPSByZS5jb21waWxlKHIi
KFxkKykgKFtcdy1dKykiKQotCi0KLWNsYXNzIFJ1blJlc3VsdDoKLSAgICAiIiJUaGUgcmVzdWx0
IG9mIHJ1bm5pbmcgYSBjb21tYW5kLgotCi0gICAgQXR0cmlidXRlczoKLQotICAgIDpyZXQ6IFRo
ZSByZXR1cm4gdmFsdWUuCi0gICAgOm91dGxpbmVzOiBMaXN0IG9mIGxpbmVzIGNhcHR1cmVkIGZy
b20gc3Rkb3V0LgotICAgIDplcnJsaW5lczogTGlzdCBvZiBsaW5lcyBjYXB0dXJlcyBmcm9tIHN0
ZGVyci4KLSAgICA6c3Rkb3V0OiA6cHk6Y2xhc3M6YExpbmVNYXRjaGVyYCBvZiBzdGRvdXQsIHVz
ZSBgYHN0ZG91dC5zdHIoKWBgIHRvCi0gICAgICAgcmVjb25zdHJ1Y3Qgc3Rkb3V0IG9yIHRoZSBj
b21tb25seSB1c2VkCi0gICAgICAgYGBzdGRvdXQuZm5tYXRjaF9saW5lcygpYGAgbWV0aG9kLgot
ICAgIDpzdGRlcnJyOiA6cHk6Y2xhc3M6YExpbmVNYXRjaGVyYCBvZiBzdGRlcnIuCi0gICAgOmR1
cmF0aW9uOiBEdXJhdGlvbiBpbiBzZWNvbmRzLgotCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgcmV0LCBvdXRsaW5lcywgZXJybGluZXMsIGR1cmF0aW9uKToKLSAgICAgICAgc2Vs
Zi5yZXQgPSByZXQKLSAgICAgICAgc2VsZi5vdXRsaW5lcyA9IG91dGxpbmVzCi0gICAgICAgIHNl
bGYuZXJybGluZXMgPSBlcnJsaW5lcwotICAgICAgICBzZWxmLnN0ZG91dCA9IExpbmVNYXRjaGVy
KG91dGxpbmVzKQotICAgICAgICBzZWxmLnN0ZGVyciA9IExpbmVNYXRjaGVyKGVycmxpbmVzKQot
ICAgICAgICBzZWxmLmR1cmF0aW9uID0gZHVyYXRpb24KLQotICAgIGRlZiBwYXJzZW91dGNvbWVz
KHNlbGYpOgotICAgICAgICAiIiIgUmV0dXJuIGEgZGljdGlvbmFyeSBvZiBvdXRjb21lc3RyaW5n
LT5udW0gZnJvbSBwYXJzaW5nCi0gICAgICAgIHRoZSB0ZXJtaW5hbCBvdXRwdXQgdGhhdCB0aGUg
dGVzdCBwcm9jZXNzIHByb2R1Y2VkLiIiIgotICAgICAgICBmb3IgbGluZSBpbiByZXZlcnNlZChz
ZWxmLm91dGxpbmVzKToKLSAgICAgICAgICAgIGlmICdzZWNvbmRzJyBpbiBsaW5lOgotICAgICAg
ICAgICAgICAgIG91dGNvbWVzID0gcmV4X291dGNvbWUuZmluZGFsbChsaW5lKQotICAgICAgICAg
ICAgICAgIGlmIG91dGNvbWVzOgotICAgICAgICAgICAgICAgICAgICBkID0ge30KLSAgICAgICAg
ICAgICAgICAgICAgZm9yIG51bSwgY2F0IGluIG91dGNvbWVzOgotICAgICAgICAgICAgICAgICAg
ICAgICAgZFtjYXRdID0gaW50KG51bSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGQKLSAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUHl0ZXN0IHRlcm1pbmFsIHJlcG9ydCBub3QgZm91bmQi
KQotCi0gICAgZGVmIGFzc2VydF9vdXRjb21lcyhzZWxmLCBwYXNzZWQ9MCwgc2tpcHBlZD0wLCBm
YWlsZWQ9MCwgZXJyb3I9MCk6Ci0gICAgICAgICIiIiBhc3NlcnQgdGhhdCB0aGUgc3BlY2lmaWVk
IG91dGNvbWVzIGFwcGVhciB3aXRoIHRoZSByZXNwZWN0aXZlCi0gICAgICAgIG51bWJlcnMgKDAg
bWVhbnMgaXQgZGlkbid0IG9jY3VyKSBpbiB0aGUgdGV4dCBvdXRwdXQgZnJvbSBhIHRlc3QgcnVu
LiIiIgotICAgICAgICBkID0gc2VsZi5wYXJzZW91dGNvbWVzKCkKLSAgICAgICAgb2J0YWluZWQg
PSB7Ci0gICAgICAgICAgICAncGFzc2VkJzogZC5nZXQoJ3Bhc3NlZCcsIDApLAotICAgICAgICAg
ICAgJ3NraXBwZWQnOiBkLmdldCgnc2tpcHBlZCcsIDApLAotICAgICAgICAgICAgJ2ZhaWxlZCc6
IGQuZ2V0KCdmYWlsZWQnLCAwKSwKLSAgICAgICAgICAgICdlcnJvcic6IGQuZ2V0KCdlcnJvcics
IDApLAotICAgICAgICB9Ci0gICAgICAgIGFzc2VydCBvYnRhaW5lZCA9PSBkaWN0KHBhc3NlZD1w
YXNzZWQsIHNraXBwZWQ9c2tpcHBlZCwgZmFpbGVkPWZhaWxlZCwgZXJyb3I9ZXJyb3IpCi0KLQot
Y2xhc3MgVGVzdGRpcjoKLSAgICAiIiJUZW1wb3JhcnkgdGVzdCBkaXJlY3Rvcnkgd2l0aCB0b29s
cyB0byB0ZXN0L3J1biBweXRlc3QgaXRzZWxmLgotCi0gICAgVGhpcyBpcyBiYXNlZCBvbiB0aGUg
YGB0bXBkaXJgYCBmaXh0dXJlIGJ1dCBwcm92aWRlcyBhIG51bWJlciBvZgotICAgIG1ldGhvZHMg
d2hpY2ggYWlkIHdpdGggdGVzdGluZyBweXRlc3QgaXRzZWxmLiAgVW5sZXNzCi0gICAgOnB5Om1l
dGg6YGNoZGlyYCBpcyB1c2VkIGFsbCBtZXRob2RzIHdpbGwgdXNlIDpweTphdHRyOmB0bXBkaXJg
IGFzCi0gICAgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4KLQotICAgIEF0dHJpYnV0ZXM6Ci0K
LSAgICA6dG1wZGlyOiBUaGUgOnB5OmNsYXNzOmBweS5wYXRoLmxvY2FsYCBpbnN0YW5jZSBvZiB0
aGUgdGVtcG9yYXJ5Ci0gICAgICAgZGlyZWN0b3J5LgotCi0gICAgOnBsdWdpbnM6IEEgbGlzdCBv
ZiBwbHVnaW5zIHRvIHVzZSB3aXRoIDpweTptZXRoOmBwYXJzZWNvbmZpZ2AgYW5kCi0gICAgICAg
OnB5Om1ldGg6YHJ1bnB5dGVzdGAuICBJbml0aWFsbHkgdGhpcyBpcyBhbiBlbXB0eSBsaXN0IGJ1
dAotICAgICAgIHBsdWdpbnMgY2FuIGJlIGFkZGVkIHRvIHRoZSBsaXN0LiAgVGhlIHR5cGUgb2Yg
aXRlbXMgdG8gYWRkIHRvCi0gICAgICAgdGhlIGxpc3QgZGVwZW5kIG9uIHRoZSBtZXRob2Qgd2hp
Y2ggdXNlcyB0aGVtIHNvIHJlZmVyIHRvIHRoZW0KLSAgICAgICBmb3IgZGV0YWlscy4KLQotICAg
ICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5KToK
LSAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLl9tb2RfY29sbGVj
dGlvbnMgPSBXZWFrS2V5RGljdGlvbmFyeSgpCi0gICAgICAgIG5hbWUgPSByZXF1ZXN0LmZ1bmN0
aW9uLl9fbmFtZV9fCi0gICAgICAgIHNlbGYudG1wZGlyID0gdG1wZGlyX2ZhY3RvcnkubWt0ZW1w
KG5hbWUsIG51bWJlcmVkPVRydWUpCi0gICAgICAgIHNlbGYucGx1Z2lucyA9IFtdCi0gICAgICAg
IHNlbGYuX3NhdmVzeXNwYXRoID0gKGxpc3Qoc3lzLnBhdGgpLCBsaXN0KHN5cy5tZXRhX3BhdGgp
KQotICAgICAgICBzZWxmLl9zYXZlbW9kdWxla2V5cyA9IHNldChzeXMubW9kdWxlcykKLSAgICAg
ICAgc2VsZi5jaGRpcigpICAjIGFsd2F5cyBjaGRpcgotICAgICAgICBzZWxmLnJlcXVlc3QuYWRk
ZmluYWxpemVyKHNlbGYuZmluYWxpemUpCi0gICAgICAgIG1ldGhvZCA9IHNlbGYucmVxdWVzdC5j
b25maWcuZ2V0b3B0aW9uKCItLXJ1bnB5dGVzdCIpCi0gICAgICAgIGlmIG1ldGhvZCA9PSAiaW5w
cm9jZXNzIjoKLSAgICAgICAgICAgIHNlbGYuX3J1bnB5dGVzdF9tZXRob2QgPSBzZWxmLnJ1bnB5
dGVzdF9pbnByb2Nlc3MKLSAgICAgICAgZWxpZiBtZXRob2QgPT0gInN1YnByb2Nlc3MiOgotICAg
ICAgICAgICAgc2VsZi5fcnVucHl0ZXN0X21ldGhvZCA9IHNlbGYucnVucHl0ZXN0X3N1YnByb2Nl
c3MKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8VGVzdGRpciAl
cj4iICUgKHNlbGYudG1wZGlyLCkKLQotICAgIGRlZiBmaW5hbGl6ZShzZWxmKToKLSAgICAgICAg
IiIiQ2xlYW4gdXAgZ2xvYmFsIHN0YXRlIGFydGlmYWN0cy4KLQotICAgICAgICBTb21lIG1ldGhv
ZHMgbW9kaWZ5IHRoZSBnbG9iYWwgaW50ZXJwcmV0ZXIgc3RhdGUgYW5kIHRoaXMKLSAgICAgICAg
dHJpZXMgdG8gY2xlYW4gdGhpcyB1cC4gIEl0IGRvZXMgbm90IHJlbW92ZSB0aGUgdGVtcG9yYXJ5
Ci0gICAgICAgIGRpcmVjdG9yeSBob3dldmVyIHNvIGl0IGNhbiBiZSBsb29rZWQgYXQgYWZ0ZXIg
dGhlIHRlc3QgcnVuCi0gICAgICAgIGhhcyBmaW5pc2hlZC4KLQotICAgICAgICAiIiIKLSAgICAg
ICAgc3lzLnBhdGhbOl0sIHN5cy5tZXRhX3BhdGhbOl0gPSBzZWxmLl9zYXZlc3lzcGF0aAotICAg
ICAgICBpZiBoYXNhdHRyKHNlbGYsICdfb2xkZGlyJyk6Ci0gICAgICAgICAgICBzZWxmLl9vbGRk
aXIuY2hkaXIoKQotICAgICAgICBzZWxmLmRlbGV0ZV9sb2FkZWRfbW9kdWxlcygpCi0KLSAgICBk
ZWYgZGVsZXRlX2xvYWRlZF9tb2R1bGVzKHNlbGYpOgotICAgICAgICAiIiJEZWxldGUgbW9kdWxl
cyB0aGF0IGhhdmUgYmVlbiBsb2FkZWQgZHVyaW5nIGEgdGVzdC4KLQotICAgICAgICBUaGlzIGFs
bG93cyB0aGUgaW50ZXJwcmV0ZXIgdG8gY2F0Y2ggbW9kdWxlIGNoYW5nZXMgaW4gY2FzZQotICAg
ICAgICB0aGUgbW9kdWxlIGlzIHJlLWltcG9ydGVkLgotICAgICAgICAiIiIKLSAgICAgICAgZm9y
IG5hbWUgaW4gc2V0KHN5cy5tb2R1bGVzKS5kaWZmZXJlbmNlKHNlbGYuX3NhdmVtb2R1bGVrZXlz
KToKLSAgICAgICAgICAgICMgc29tZSB6b3BlIG1vZHVsZXMgdXNlZCBieSB0d2lzdGVkLXJlbGF0
ZWQgdGVzdHMga2VlcHMgaW50ZXJuYWwKLSAgICAgICAgICAgICMgc3RhdGUgYW5kIGNhbid0IGJl
IGRlbGV0ZWQ7IHdlIGhhZCBzb21lIHRyb3VibGUgaW4gdGhlIHBhc3QKLSAgICAgICAgICAgICMg
d2l0aCB6b3BlLmludGVyZmFjZSBmb3IgZXhhbXBsZQotICAgICAgICAgICAgaWYgbm90IG5hbWUu
c3RhcnRzd2l0aCgiem9wZSIpOgotICAgICAgICAgICAgICAgIGRlbCBzeXMubW9kdWxlc1tuYW1l
XQotCi0gICAgZGVmIG1ha2VfaG9va19yZWNvcmRlcihzZWxmLCBwbHVnaW5tYW5hZ2VyKToKLSAg
ICAgICAgIiIiQ3JlYXRlIGEgbmV3IDpweTpjbGFzczpgSG9va1JlY29yZGVyYCBmb3IgYSBQbHVn
aW5NYW5hZ2VyLiIiIgotICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIocGx1Z2lubWFuYWdlciwg
InJlcHJlYyIpCi0gICAgICAgIHBsdWdpbm1hbmFnZXIucmVwcmVjID0gcmVwcmVjID0gSG9va1Jl
Y29yZGVyKHBsdWdpbm1hbmFnZXIpCi0gICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIo
cmVwcmVjLmZpbmlzaF9yZWNvcmRpbmcpCi0gICAgICAgIHJldHVybiByZXByZWMKLQotICAgIGRl
ZiBjaGRpcihzZWxmKToKLSAgICAgICAgIiIiQ2QgaW50byB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9y
eS4KLQotICAgICAgICBUaGlzIGlzIGRvbmUgYXV0b21hdGljYWxseSB1cG9uIGluc3RhbnRpYXRp
b24uCi0KLSAgICAgICAgIiIiCi0gICAgICAgIG9sZCA9IHNlbGYudG1wZGlyLmNoZGlyKCkKLSAg
ICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ19vbGRkaXInKToKLSAgICAgICAgICAgIHNlbGYu
X29sZGRpciA9IG9sZAotCi0gICAgZGVmIF9tYWtlZmlsZShzZWxmLCBleHQsIGFyZ3MsIGt3YXJn
cywgZW5jb2Rpbmc9J3V0Zi04Jyk6Ci0gICAgICAgIGl0ZW1zID0gbGlzdChrd2FyZ3MuaXRlbXMo
KSkKLQotICAgICAgICBkZWYgdG9fdGV4dChzKToKLSAgICAgICAgICAgIHJldHVybiBzLmRlY29k
ZShlbmNvZGluZykgaWYgaXNpbnN0YW5jZShzLCBieXRlcykgZWxzZSBzaXgudGV4dF90eXBlKHMp
Ci0KLSAgICAgICAgaWYgYXJnczoKLSAgICAgICAgICAgIHNvdXJjZSA9IHUiXG4iLmpvaW4odG9f
dGV4dCh4KSBmb3IgeCBpbiBhcmdzKQotICAgICAgICAgICAgYmFzZW5hbWUgPSBzZWxmLnJlcXVl
c3QuZnVuY3Rpb24uX19uYW1lX18KLSAgICAgICAgICAgIGl0ZW1zLmluc2VydCgwLCAoYmFzZW5h
bWUsIHNvdXJjZSkpCi0KLSAgICAgICAgcmV0ID0gTm9uZQotICAgICAgICBmb3IgYmFzZW5hbWUs
IHZhbHVlIGluIGl0ZW1zOgotICAgICAgICAgICAgcCA9IHNlbGYudG1wZGlyLmpvaW4oYmFzZW5h
bWUpLm5ldyhleHQ9ZXh0KQotICAgICAgICAgICAgcC5kaXJwYXRoKCkuZW5zdXJlX2RpcigpCi0g
ICAgICAgICAgICBzb3VyY2UgPSBTb3VyY2UodmFsdWUpCi0gICAgICAgICAgICBzb3VyY2UgPSB1
IlxuIi5qb2luKHRvX3RleHQobGluZSkgZm9yIGxpbmUgaW4gc291cmNlLmxpbmVzKQotICAgICAg
ICAgICAgcC53cml0ZShzb3VyY2Uuc3RyaXAoKS5lbmNvZGUoZW5jb2RpbmcpLCAid2IiKQotICAg
ICAgICAgICAgaWYgcmV0IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgcmV0ID0gcAotICAgICAg
ICByZXR1cm4gcmV0Ci0KLSAgICBkZWYgbWFrZWZpbGUoc2VsZiwgZXh0LCAqYXJncywgKiprd2Fy
Z3MpOgotICAgICAgICAiIiJDcmVhdGUgYSBuZXcgZmlsZSBpbiB0aGUgdGVzdGRpci4KLQotICAg
ICAgICBleHQ6IFRoZSBleHRlbnNpb24gdGhlIGZpbGUgc2hvdWxkIHVzZSwgaW5jbHVkaW5nIHRo
ZSBkb3QuCi0gICAgICAgICAgIEUuZy4gIi5weSIuCi0KLSAgICAgICAgYXJnczogQWxsIGFyZ3Mg
d2lsbCBiZSB0cmVhdGVkIGFzIHN0cmluZ3MgYW5kIGpvaW5lZCB1c2luZwotICAgICAgICAgICBu
ZXdsaW5lcy4gIFRoZSByZXN1bHQgd2lsbCBiZSB3cml0dGVuIGFzIGNvbnRlbnRzIHRvIHRoZQot
ICAgICAgICAgICBmaWxlLiAgVGhlIG5hbWUgb2YgdGhlIGZpbGUgd2lsbCBiZSBiYXNlZCBvbiB0
aGUgdGVzdAotICAgICAgICAgICBmdW5jdGlvbiByZXF1ZXN0aW5nIHRoaXMgZml4dHVyZS4KLSAg
ICAgICAgICAgRS5nLiAidGVzdGRpci5tYWtlZmlsZSgnLnR4dCcsICdsaW5lMScsICdsaW5lMicp
IgotCi0gICAgICAgIGt3YXJnczogRWFjaCBrZXl3b3JkIGlzIHRoZSBuYW1lIG9mIGEgZmlsZSwg
d2hpbGUgdGhlIHZhbHVlIG9mCi0gICAgICAgICAgIGl0IHdpbGwgYmUgd3JpdHRlbiBhcyBjb250
ZW50cyBvZiB0aGUgZmlsZS4KLSAgICAgICAgICAgRS5nLiAidGVzdGRpci5tYWtlZmlsZSgnLmlu
aScsIHB5dGVzdD0nW3B5dGVzdF1cbmFkZG9wdHM9LXJzXG4nKSIKLQotICAgICAgICAiIiIKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX21ha2VmaWxlKGV4dCwgYXJncywga3dhcmdzKQotCi0gICAgZGVm
IG1ha2Vjb25mdGVzdChzZWxmLCBzb3VyY2UpOgotICAgICAgICAiIiJXcml0ZSBhIGNvbnRlc3Qu
cHkgZmlsZSB3aXRoICdzb3VyY2UnIGFzIGNvbnRlbnRzLiIiIgotICAgICAgICByZXR1cm4gc2Vs
Zi5tYWtlcHlmaWxlKGNvbmZ0ZXN0PXNvdXJjZSkKLQotICAgIGRlZiBtYWtlaW5pKHNlbGYsIHNv
dXJjZSk6Ci0gICAgICAgICIiIldyaXRlIGEgdG94LmluaSBmaWxlIHdpdGggJ3NvdXJjZScgYXMg
Y29udGVudHMuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLm1ha2VmaWxlKCcuaW5pJywgdG94PXNv
dXJjZSkKLQotICAgIGRlZiBnZXRpbmljZmcoc2VsZiwgc291cmNlKToKLSAgICAgICAgIiIiUmV0
dXJuIHRoZSBweXRlc3Qgc2VjdGlvbiBmcm9tIHRoZSB0b3guaW5pIGNvbmZpZyBmaWxlLiIiIgot
ICAgICAgICBwID0gc2VsZi5tYWtlaW5pKHNvdXJjZSkKLSAgICAgICAgcmV0dXJuIHB5LmluaWNv
bmZpZy5JbmlDb25maWcocClbJ3B5dGVzdCddCi0KLSAgICBkZWYgbWFrZXB5ZmlsZShzZWxmLCAq
YXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiJTaG9ydGN1dCBmb3IgLm1ha2VmaWxlKCkgd2l0
aCBhIC5weSBleHRlbnNpb24uIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9tYWtlZmlsZSgnLnB5
JywgYXJncywga3dhcmdzKQotCi0gICAgZGVmIG1ha2V0eHRmaWxlKHNlbGYsICphcmdzLCAqKmt3
YXJncyk6Ci0gICAgICAgICIiIlNob3J0Y3V0IGZvciAubWFrZWZpbGUoKSB3aXRoIGEgLnR4dCBl
eHRlbnNpb24uIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9tYWtlZmlsZSgnLnR4dCcsIGFyZ3Ms
IGt3YXJncykKLQotICAgIGRlZiBzeXNwYXRoaW5zZXJ0KHNlbGYsIHBhdGg9Tm9uZSk6Ci0gICAg
ICAgICIiIlByZXBlbmQgYSBkaXJlY3RvcnkgdG8gc3lzLnBhdGgsIGRlZmF1bHRzIHRvIDpweTph
dHRyOmB0bXBkaXJgLgotCi0gICAgICAgIFRoaXMgaXMgdW5kb25lIGF1dG9tYXRpY2FsbHkgYWZ0
ZXIgdGhlIHRlc3QuCi0gICAgICAgICIiIgotICAgICAgICBpZiBwYXRoIGlzIE5vbmU6Ci0gICAg
ICAgICAgICBwYXRoID0gc2VsZi50bXBkaXIKLSAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHN0
cihwYXRoKSkKLSAgICAgICAgIyBhIGNhbGwgdG8gc3lzcGF0aGluc2VydCgpIHVzdWFsbHkgbWVh
bnMgdGhhdCB0aGUgY2FsbGVyCi0gICAgICAgICMgd2FudHMgdG8gaW1wb3J0IHNvbWUgZHluYW1p
Y2FsbHkgY3JlYXRlZCBmaWxlcy4KLSAgICAgICAgIyB3aXRoIHB5dGhvbjMgd2UgdGh1cyBpbnZh
bGlkYXRlIGltcG9ydCBjYWNoZXMuCi0gICAgICAgIHNlbGYuX3Bvc3NpYmx5X2ludmFsaWRhdGVf
aW1wb3J0X2NhY2hlcygpCi0KLSAgICBkZWYgX3Bvc3NpYmx5X2ludmFsaWRhdGVfaW1wb3J0X2Nh
Y2hlcyhzZWxmKToKLSAgICAgICAgIyBpbnZhbGlkYXRlIGNhY2hlcyBpZiB3ZSBjYW4gKHB5MzMg
YW5kIGFib3ZlKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbXBvcnQgaW1wb3J0bGliCi0g
ICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoaW1wb3J0bGliLCAiaW52YWxpZGF0ZV9jYWNoZXMi
KToKLSAgICAgICAgICAgICAgICBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKQotCi0gICAg
ZGVmIG1rZGlyKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiJDcmVhdGUgYSBuZXcgKHN1YilkaXJl
Y3RvcnkuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLnRtcGRpci5ta2RpcihuYW1lKQotCi0gICAg
ZGVmIG1rcHlkaXIoc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIkNyZWF0ZSBhIG5ldyBweXRob24g
cGFja2FnZS4KLQotICAgICAgICBUaGlzIGNyZWF0ZXMgYSAoc3ViKWRpcmVjdG9yeSB3aXRoIGFu
IGVtcHR5IGBgX19pbml0X18ucHlgYAotICAgICAgICBmaWxlIHNvIHRoYXQgaXMgcmVjb2duaXNl
ZCBhcyBhIHB5dGhvbiBwYWNrYWdlLgotCi0gICAgICAgICIiIgotICAgICAgICBwID0gc2VsZi5t
a2RpcihuYW1lKQotICAgICAgICBwLmVuc3VyZSgiX19pbml0X18ucHkiKQotICAgICAgICByZXR1
cm4gcAotCi0gICAgU2Vzc2lvbiA9IFNlc3Npb24KLQotICAgIGRlZiBnZXRub2RlKHNlbGYsIGNv
bmZpZywgYXJnKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBjb2xsZWN0aW9uIG5vZGUgb2YgYSBm
aWxlLgotCi0gICAgICAgIDpwYXJhbSBjb25maWc6IDpweTpjbGFzczpgX3B5dGVzdC5jb25maWcu
Q29uZmlnYCBpbnN0YW5jZSwgc2VlCi0gICAgICAgICAgIDpweTptZXRoOmBwYXJzZWNvbmZpZ2Ag
YW5kIDpweTptZXRoOmBwYXJzZWNvbmZpZ3VyZWAgdG8KLSAgICAgICAgICAgY3JlYXRlIHRoZSBj
b25maWd1cmF0aW9uLgotCi0gICAgICAgIDpwYXJhbSBhcmc6IEEgOnB5OmNsYXNzOmBweS5wYXRo
LmxvY2FsYCBpbnN0YW5jZSBvZiB0aGUgZmlsZS4KLQotICAgICAgICAiIiIKLSAgICAgICAgc2Vz
c2lvbiA9IFNlc3Npb24oY29uZmlnKQotICAgICAgICBhc3NlcnQgJzo6JyBub3QgaW4gc3RyKGFy
ZykKLSAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwoYXJnKQotICAgICAgICBjb25maWcuaG9vay5w
eXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb249c2Vzc2lvbikKLSAgICAgICAgcmVzID0gc2Vzc2lv
bi5wZXJmb3JtX2NvbGxlY3QoW3N0cihwKV0sIGdlbml0ZW1zPUZhbHNlKVswXQotICAgICAgICBj
b25maWcuaG9vay5weXRlc3Rfc2Vzc2lvbmZpbmlzaChzZXNzaW9uPXNlc3Npb24sIGV4aXRzdGF0
dXM9RVhJVF9PSykKLSAgICAgICAgcmV0dXJuIHJlcwotCi0gICAgZGVmIGdldHBhdGhub2RlKHNl
bGYsIHBhdGgpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIGNvbGxlY3Rpb24gbm9kZSBvZiBhIGZp
bGUuCi0KLSAgICAgICAgVGhpcyBpcyBsaWtlIDpweTptZXRoOmBnZXRub2RlYCBidXQgdXNlcwot
ICAgICAgICA6cHk6bWV0aDpgcGFyc2Vjb25maWd1cmVgIHRvIGNyZWF0ZSB0aGUgKGNvbmZpZ3Vy
ZWQpIHB5dGVzdAotICAgICAgICBDb25maWcgaW5zdGFuY2UuCi0KLSAgICAgICAgOnBhcmFtIHBh
dGg6IEEgOnB5OmNsYXNzOmBweS5wYXRoLmxvY2FsYCBpbnN0YW5jZSBvZiB0aGUgZmlsZS4KLQot
ICAgICAgICAiIiIKLSAgICAgICAgY29uZmlnID0gc2VsZi5wYXJzZWNvbmZpZ3VyZShwYXRoKQot
ICAgICAgICBzZXNzaW9uID0gU2Vzc2lvbihjb25maWcpCi0gICAgICAgIHggPSBzZXNzaW9uLmZz
cGF0aC5iZXN0cmVscGF0aChwYXRoKQotICAgICAgICBjb25maWcuaG9vay5weXRlc3Rfc2Vzc2lv
bnN0YXJ0KHNlc3Npb249c2Vzc2lvbikKLSAgICAgICAgcmVzID0gc2Vzc2lvbi5wZXJmb3JtX2Nv
bGxlY3QoW3hdLCBnZW5pdGVtcz1GYWxzZSlbMF0KLSAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0
X3Nlc3Npb25maW5pc2goc2Vzc2lvbj1zZXNzaW9uLCBleGl0c3RhdHVzPUVYSVRfT0spCi0gICAg
ICAgIHJldHVybiByZXMKLQotICAgIGRlZiBnZW5pdGVtcyhzZWxmLCBjb2xpdGVtcyk6Ci0gICAg
ICAgICIiIkdlbmVyYXRlIGFsbCB0ZXN0IGl0ZW1zIGZyb20gYSBjb2xsZWN0aW9uIG5vZGUuCi0K
LSAgICAgICAgVGhpcyByZWN1cnNlcyBpbnRvIHRoZSBjb2xsZWN0aW9uIG5vZGUgYW5kIHJldHVy
bnMgYSBsaXN0IG9mCi0gICAgICAgIGFsbCB0aGUgdGVzdCBpdGVtcyBjb250YWluZWQgd2l0aGlu
LgotCi0gICAgICAgICIiIgotICAgICAgICBzZXNzaW9uID0gY29saXRlbXNbMF0uc2Vzc2lvbgot
ICAgICAgICByZXN1bHQgPSBbXQotICAgICAgICBmb3IgY29saXRlbSBpbiBjb2xpdGVtczoKLSAg
ICAgICAgICAgIHJlc3VsdC5leHRlbmQoc2Vzc2lvbi5nZW5pdGVtcyhjb2xpdGVtKSkKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdAotCi0gICAgZGVmIHJ1bml0ZW0oc2VsZiwgc291cmNlKToKLSAgICAg
ICAgIiIiUnVuIHRoZSAidGVzdF9mdW5jIiBJdGVtLgotCi0gICAgICAgIFRoZSBjYWxsaW5nIHRl
c3QgaW5zdGFuY2UgKHRoZSBjbGFzcyB3aGljaCBjb250YWlucyB0aGUgdGVzdAotICAgICAgICBt
ZXRob2QpIG11c3QgcHJvdmlkZSBhIGBgLmdldHJ1bm5lcigpYGAgbWV0aG9kIHdoaWNoIHNob3Vs
ZAotICAgICAgICByZXR1cm4gYSBydW5uZXIgd2hpY2ggY2FuIHJ1biB0aGUgdGVzdCBwcm90b2Nv
bCBmb3IgYSBzaW5nbGUKLSAgICAgICAgaXRlbSwgbGlrZSBlLmcuIDpweTpmdW5jOmBfcHl0ZXN0
LnJ1bm5lci5ydW50ZXN0cHJvdG9jb2xgLgotCi0gICAgICAgICIiIgotICAgICAgICAjIHVzZWQg
ZnJvbSBydW5uZXIgZnVuY3Rpb25hbCB0ZXN0cwotICAgICAgICBpdGVtID0gc2VsZi5nZXRpdGVt
KHNvdXJjZSkKLSAgICAgICAgIyB0aGUgdGVzdCBjbGFzcyB3aGVyZSB3ZSBhcmUgY2FsbGVkIGZy
b20gd2FudHMgdG8gcHJvdmlkZSB0aGUgcnVubmVyCi0gICAgICAgIHRlc3RjbGFzc2luc3RhbmNl
ID0gc2VsZi5yZXF1ZXN0Lmluc3RhbmNlCi0gICAgICAgIHJ1bm5lciA9IHRlc3RjbGFzc2luc3Rh
bmNlLmdldHJ1bm5lcigpCi0gICAgICAgIHJldHVybiBydW5uZXIoaXRlbSkKLQotICAgIGRlZiBp
bmxpbmVfcnVuc291cmNlKHNlbGYsIHNvdXJjZSwgKmNtZGxpbmVhcmdzKToKLSAgICAgICAgIiIi
UnVuIGEgdGVzdCBtb2R1bGUgaW4gcHJvY2VzcyB1c2luZyBgYHB5dGVzdC5tYWluKClgYC4KLQot
ICAgICAgICBUaGlzIHJ1biB3cml0ZXMgInNvdXJjZSIgaW50byBhIHRlbXBvcmFyeSBmaWxlIGFu
ZCBydW5zCi0gICAgICAgIGBgcHl0ZXN0Lm1haW4oKWBgIG9uIGl0LCByZXR1cm5pbmcgYSA6cHk6
Y2xhc3M6YEhvb2tSZWNvcmRlcmAKLSAgICAgICAgaW5zdGFuY2UgZm9yIHRoZSByZXN1bHQuCi0K
LSAgICAgICAgOnBhcmFtIHNvdXJjZTogVGhlIHNvdXJjZSBjb2RlIG9mIHRoZSB0ZXN0IG1vZHVs
ZS4KLQotICAgICAgICA6cGFyYW0gY21kbGluZWFyZ3M6IEFueSBleHRyYSBjb21tYW5kIGxpbmUg
YXJndW1lbnRzIHRvIHVzZS4KLQotICAgICAgICA6cmV0dXJuOiA6cHk6Y2xhc3M6YEhvb2tSZWNv
cmRlcmAgaW5zdGFuY2Ugb2YgdGhlIHJlc3VsdC4KLQotICAgICAgICAiIiIKLSAgICAgICAgcCA9
IHNlbGYubWFrZXB5ZmlsZShzb3VyY2UpCi0gICAgICAgIHZhbHVlcyA9IGxpc3QoY21kbGluZWFy
Z3MpICsgW3BdCi0gICAgICAgIHJldHVybiBzZWxmLmlubGluZV9ydW4oKnZhbHVlcykKLQotICAg
IGRlZiBpbmxpbmVfZ2VuaXRlbXMoc2VsZiwgKmFyZ3MpOgotICAgICAgICAiIiJSdW4gYGBweXRl
c3QubWFpbihbJy0tY29sbGVjdG9ubHknXSlgYCBpbi1wcm9jZXNzLgotCi0gICAgICAgIFJldHVy
bnMgYSB0dXBsZSBvZiB0aGUgY29sbGVjdGVkIGl0ZW1zIGFuZCBhCi0gICAgICAgIDpweTpjbGFz
czpgSG9va1JlY29yZGVyYCBpbnN0YW5jZS4KLQotICAgICAgICBUaGlzIHJ1bnMgdGhlIDpweTpm
dW5jOmBweXRlc3QubWFpbmAgZnVuY3Rpb24gdG8gcnVuIGFsbCBvZgotICAgICAgICBweXRlc3Qg
aW5zaWRlIHRoZSB0ZXN0IHByb2Nlc3MgaXRzZWxmIGxpa2UKLSAgICAgICAgOnB5Om1ldGg6YGlu
bGluZV9ydW5gLiAgSG93ZXZlciB0aGUgcmV0dXJuIHZhbHVlIGlzIGEgdHVwbGUgb2YKLSAgICAg
ICAgdGhlIGNvbGxlY3Rpb24gaXRlbXMgYW5kIGEgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGlu
c3RhbmNlLgotCi0gICAgICAgICIiIgotICAgICAgICByZWMgPSBzZWxmLmlubGluZV9ydW4oIi0t
Y29sbGVjdC1vbmx5IiwgKmFyZ3MpCi0gICAgICAgIGl0ZW1zID0gW3guaXRlbSBmb3IgeCBpbiBy
ZWMuZ2V0Y2FsbHMoInB5dGVzdF9pdGVtY29sbGVjdGVkIildCi0gICAgICAgIHJldHVybiBpdGVt
cywgcmVjCi0KLSAgICBkZWYgaW5saW5lX3J1bihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAg
ICAgICAiIiJSdW4gYGBweXRlc3QubWFpbigpYGAgaW4tcHJvY2VzcywgcmV0dXJuaW5nIGEgSG9v
a1JlY29yZGVyLgotCi0gICAgICAgIFRoaXMgcnVucyB0aGUgOnB5OmZ1bmM6YHB5dGVzdC5tYWlu
YCBmdW5jdGlvbiB0byBydW4gYWxsIG9mCi0gICAgICAgIHB5dGVzdCBpbnNpZGUgdGhlIHRlc3Qg
cHJvY2VzcyBpdHNlbGYuICBUaGlzIG1lYW5zIGl0IGNhbgotICAgICAgICByZXR1cm4gYSA6cHk6
Y2xhc3M6YEhvb2tSZWNvcmRlcmAgaW5zdGFuY2Ugd2hpY2ggZ2l2ZXMgbW9yZQotICAgICAgICBk
ZXRhaWxlZCByZXN1bHRzIGZyb20gdGhlbiBydW4gdGhlbiBjYW4gYmUgZG9uZSBieSBtYXRjaGlu
ZwotICAgICAgICBzdGRvdXQvc3RkZXJyIGZyb20gOnB5Om1ldGg6YHJ1bnB5dGVzdGAuCi0KLSAg
ICAgICAgOnBhcmFtIGFyZ3M6IEFueSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRvIHBhc3MgdG8K
LSAgICAgICAgICAgOnB5OmZ1bmM6YHB5dGVzdC5tYWluYC4KLQotICAgICAgICA6cGFyYW0gcGx1
Z2luOiAoa2V5d29yZC1vbmx5KSBFeHRyYSBwbHVnaW4gaW5zdGFuY2VzIHRoZQotICAgICAgICAg
ICBgYHB5dGVzdC5tYWluKClgYCBpbnN0YW5jZSBzaG91bGQgdXNlLgotCi0gICAgICAgIDpyZXR1
cm46IEEgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGluc3RhbmNlLgotICAgICAgICAiIiIKLSAg
ICAgICAgIyBXaGVuIHJ1bm5pbmcgcHkudGVzdCBpbmxpbmUgYW55IHBsdWdpbnMgYWN0aXZlIGlu
IHRoZSBtYWluCi0gICAgICAgICMgdGVzdCBwcm9jZXNzIGFyZSBhbHJlYWR5IGltcG9ydGVkLiAg
U28gdGhpcyBkaXNhYmxlcyB0aGUKLSAgICAgICAgIyB3YXJuaW5nIHdoaWNoIHdpbGwgdHJpZ2dl
ciB0byBzYXkgdGhleSBjYW4gbm8gbG9uZ2VyIGJlCi0gICAgICAgICMgcmV3cml0dGVuLCB3aGlj
aCBpcyBmaW5lIGFzIHRoZXkgYXJlIGFscmVhZHkgcmV3cml0dGVuLgotICAgICAgICBvcmlnX3dh
cm4gPSBBc3NlcnRpb25SZXdyaXRpbmdIb29rLl93YXJuX2FscmVhZHlfaW1wb3J0ZWQKLQotICAg
ICAgICBkZWYgcmV2ZXJ0KCk6Ci0gICAgICAgICAgICBBc3NlcnRpb25SZXdyaXRpbmdIb29rLl93
YXJuX2FscmVhZHlfaW1wb3J0ZWQgPSBvcmlnX3dhcm4KLQotICAgICAgICBzZWxmLnJlcXVlc3Qu
YWRkZmluYWxpemVyKHJldmVydCkKLSAgICAgICAgQXNzZXJ0aW9uUmV3cml0aW5nSG9vay5fd2Fy
bl9hbHJlYWR5X2ltcG9ydGVkID0gbGFtYmRhICphOiBOb25lCi0KLSAgICAgICAgcmVjID0gW10K
LQotICAgICAgICBjbGFzcyBDb2xsZWN0OgotICAgICAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1
cmUoeCwgY29uZmlnKToKLSAgICAgICAgICAgICAgICByZWMuYXBwZW5kKHNlbGYubWFrZV9ob29r
X3JlY29yZGVyKGNvbmZpZy5wbHVnaW5tYW5hZ2VyKSkKLQotICAgICAgICBwbHVnaW5zID0ga3dh
cmdzLmdldCgicGx1Z2lucyIpIG9yIFtdCi0gICAgICAgIHBsdWdpbnMuYXBwZW5kKENvbGxlY3Qo
KSkKLSAgICAgICAgcmV0ID0gcHl0ZXN0Lm1haW4obGlzdChhcmdzKSwgcGx1Z2lucz1wbHVnaW5z
KQotICAgICAgICBzZWxmLmRlbGV0ZV9sb2FkZWRfbW9kdWxlcygpCi0gICAgICAgIGlmIGxlbihy
ZWMpID09IDE6Ci0gICAgICAgICAgICByZXByZWMgPSByZWMucG9wKCkKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIGNsYXNzIHJlcHJlYzoKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAg
IHJlcHJlYy5yZXQgPSByZXQKLQotICAgICAgICAjIHR5cGljYWxseSB3ZSByZXJhaXNlIGtleWJv
YXJkIGludGVycnVwdHMgZnJvbSB0aGUgY2hpbGQgcnVuCi0gICAgICAgICMgYmVjYXVzZSBpdCdz
IG91ciB1c2VyIHJlcXVlc3RpbmcgaW50ZXJydXB0aW9uIG9mIHRoZSB0ZXN0aW5nCi0gICAgICAg
IGlmIHJldCA9PSAyIGFuZCBub3Qga3dhcmdzLmdldCgibm9fcmVyYWlzZV9jdHJsYyIpOgotICAg
ICAgICAgICAgY2FsbHMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9rZXlib2FyZF9pbnRlcnJ1
cHQiKQotICAgICAgICAgICAgaWYgY2FsbHMgYW5kIGNhbGxzWy0xXS5leGNpbmZvLnR5cGUgPT0g
S2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgS2V5Ym9hcmRJbnRlcnJ1
cHQoKQotICAgICAgICByZXR1cm4gcmVwcmVjCi0KLSAgICBkZWYgcnVucHl0ZXN0X2lucHJvY2Vz
cyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiIgUmV0dXJuIHJlc3VsdCBvZiBy
dW5uaW5nIHB5dGVzdCBpbi1wcm9jZXNzLCBwcm92aWRpbmcgYSBzaW1pbGFyCi0gICAgICAgIGlu
dGVyZmFjZSB0byB3aGF0IHNlbGYucnVucHl0ZXN0KCkgcHJvdmlkZXMuICIiIgotICAgICAgICBp
ZiBrd2FyZ3MuZ2V0KCJzeXNwYXRoaW5zZXJ0Iik6Ci0gICAgICAgICAgICBzZWxmLnN5c3BhdGhp
bnNlcnQoKQotICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQotICAgICAgICBjYXB0dXJlID0gTXVs
dGlDYXB0dXJlKENhcHR1cmU9U3lzQ2FwdHVyZSkKLSAgICAgICAgY2FwdHVyZS5zdGFydF9jYXB0
dXJpbmcoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
cmVwcmVjID0gc2VsZi5pbmxpbmVfcnVuKCphcmdzLCAqKmt3YXJncykKLSAgICAgICAgICAgIGV4
Y2VwdCBTeXN0ZW1FeGl0IGFzIGU6Ci0KLSAgICAgICAgICAgICAgICBjbGFzcyByZXByZWM6Ci0g
ICAgICAgICAgICAgICAgICAgIHJldCA9IGUuYXJnc1swXQotCi0gICAgICAgICAgICBleGNlcHQg
RXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQotCi0gICAg
ICAgICAgICAgICAgY2xhc3MgcmVwcmVjOgotICAgICAgICAgICAgICAgICAgICByZXQgPSAzCi0g
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBvdXQsIGVyciA9IGNhcHR1cmUucmVhZG91dGVy
cigpCi0gICAgICAgICAgICBjYXB0dXJlLnN0b3BfY2FwdHVyaW5nKCkKLSAgICAgICAgICAgIHN5
cy5zdGRvdXQud3JpdGUob3V0KQotICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShlcnIpCi0K
LSAgICAgICAgcmVzID0gUnVuUmVzdWx0KHJlcHJlYy5yZXQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBvdXQuc3BsaXQoIlxuIiksIGVyci5zcGxpdCgiXG4iKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWUudGltZSgpIC0gbm93KQotICAgICAgICByZXMucmVwcmVjID0gcmVwcmVjCi0g
ICAgICAgIHJldHVybiByZXMKLQotICAgIGRlZiBydW5weXRlc3Qoc2VsZiwgKmFyZ3MsICoqa3dh
cmdzKToKLSAgICAgICAgIiIiIFJ1biBweXRlc3QgaW5saW5lIG9yIGluIGEgc3VicHJvY2Vzcywg
ZGVwZW5kaW5nIG9uIHRoZSBjb21tYW5kIGxpbmUKLSAgICAgICAgb3B0aW9uICItLXJ1bnB5dGVz
dCIgYW5kIHJldHVybiBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4KLQotICAgICAgICAiIiIKLSAg
ICAgICAgYXJncyA9IHNlbGYuX2Vuc3VyZV9iYXNldGVtcChhcmdzKQotICAgICAgICByZXR1cm4g
c2VsZi5fcnVucHl0ZXN0X21ldGhvZCgqYXJncywgKiprd2FyZ3MpCi0KLSAgICBkZWYgX2Vuc3Vy
ZV9iYXNldGVtcChzZWxmLCBhcmdzKToKLSAgICAgICAgYXJncyA9IFtzdHIoeCkgZm9yIHggaW4g
YXJnc10KLSAgICAgICAgZm9yIHggaW4gYXJnczoKLSAgICAgICAgICAgIGlmIHN0cih4KS5zdGFy
dHN3aXRoKCctLWJhc2V0ZW1wJyk6Ci0gICAgICAgICAgICAgICAgIyBwcmludCgiYmFzZWR0ZW1w
IGV4aXN0czogJXMiICUoYXJncywpKQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1iYXNldGVtcD0lcyIgJSBzZWxmLnRtcGRp
ci5kaXJwYXRoKCdiYXNldGVtcCcpKQotICAgICAgICAgICAgIyBwcmludCgiYWRkZWQgYmFzZXRl
bXA6ICVzIiAlKGFyZ3MsKSkKLSAgICAgICAgcmV0dXJuIGFyZ3MKLQotICAgIGRlZiBwYXJzZWNv
bmZpZyhzZWxmLCAqYXJncyk6Ci0gICAgICAgICIiIlJldHVybiBhIG5ldyBweXRlc3QgQ29uZmln
IGluc3RhbmNlIGZyb20gZ2l2ZW4gY29tbWFuZGxpbmUgYXJncy4KLQotICAgICAgICBUaGlzIGlu
dm9rZXMgdGhlIHB5dGVzdCBib290c3RyYXBwaW5nIGNvZGUgaW4gX3B5dGVzdC5jb25maWcKLSAg
ICAgICAgdG8gY3JlYXRlIGEgbmV3IDpweTpjbGFzczpgX3B5dGVzdC5jb3JlLlBsdWdpbk1hbmFn
ZXJgIGFuZAotICAgICAgICBjYWxsIHRoZSBweXRlc3RfY21kbGluZV9wYXJzZSBob29rIHRvIGNy
ZWF0ZSBuZXcKLSAgICAgICAgOnB5OmNsYXNzOmBfcHl0ZXN0LmNvbmZpZy5Db25maWdgIGluc3Rh
bmNlLgotCi0gICAgICAgIElmIDpweTphdHRyOmBwbHVnaW5zYCBoYXMgYmVlbiBwb3B1bGF0ZWQg
dGhleSBzaG91bGQgYmUgcGx1Z2luCi0gICAgICAgIG1vZHVsZXMgd2hpY2ggd2lsbCBiZSByZWdp
c3RlcmVkIHdpdGggdGhlIFBsdWdpbk1hbmFnZXIuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGFy
Z3MgPSBzZWxmLl9lbnN1cmVfYmFzZXRlbXAoYXJncykKLQotICAgICAgICBpbXBvcnQgX3B5dGVz
dC5jb25maWcKLSAgICAgICAgY29uZmlnID0gX3B5dGVzdC5jb25maWcuX3ByZXBhcmVjb25maWco
YXJncywgc2VsZi5wbHVnaW5zKQotICAgICAgICAjIHdlIGRvbid0IGtub3cgd2hhdCB0aGUgdGVz
dCB3aWxsIGRvIHdpdGggdGhpcyBoYWxmLXNldHVwIGNvbmZpZwotICAgICAgICAjIG9iamVjdCBh
bmQgdGh1cyB3ZSBtYWtlIHN1cmUgaXQgZ2V0cyB1bmNvbmZpZ3VyZWQgcHJvcGVybHkgaW4gYW55
Ci0gICAgICAgICMgY2FzZSAob3RoZXJ3aXNlIGNhcHR1cmluZyBjb3VsZCBzdGlsbCBiZSBhY3Rp
dmUsIGZvciBleGFtcGxlKQotICAgICAgICBzZWxmLnJlcXVlc3QuYWRkZmluYWxpemVyKGNvbmZp
Zy5fZW5zdXJlX3VuY29uZmlndXJlKQotICAgICAgICByZXR1cm4gY29uZmlnCi0KLSAgICBkZWYg
cGFyc2Vjb25maWd1cmUoc2VsZiwgKmFyZ3MpOgotICAgICAgICAiIiJSZXR1cm4gYSBuZXcgcHl0
ZXN0IGNvbmZpZ3VyZWQgQ29uZmlnIGluc3RhbmNlLgotCi0gICAgICAgIFRoaXMgcmV0dXJucyBh
IG5ldyA6cHk6Y2xhc3M6YF9weXRlc3QuY29uZmlnLkNvbmZpZ2AgaW5zdGFuY2UKLSAgICAgICAg
bGlrZSA6cHk6bWV0aDpgcGFyc2Vjb25maWdgLCBidXQgYWxzbyBjYWxscyB0aGUKLSAgICAgICAg
cHl0ZXN0X2NvbmZpZ3VyZSBob29rLgotCi0gICAgICAgICIiIgotICAgICAgICBjb25maWcgPSBz
ZWxmLnBhcnNlY29uZmlnKCphcmdzKQotICAgICAgICBjb25maWcuX2RvX2NvbmZpZ3VyZSgpCi0g
ICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIoY29uZmlnLl9lbnN1cmVfdW5jb25maWd1
cmUpCi0gICAgICAgIHJldHVybiBjb25maWcKLQotICAgIGRlZiBnZXRpdGVtKHNlbGYsIHNvdXJj
ZSwgZnVuY25hbWU9InRlc3RfZnVuYyIpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIHRlc3QgaXRl
bSBmb3IgYSB0ZXN0IGZ1bmN0aW9uLgotCi0gICAgICAgIFRoaXMgd3JpdGVzIHRoZSBzb3VyY2Ug
dG8gYSBweXRob24gZmlsZSBhbmQgcnVucyBweXRlc3QncwotICAgICAgICBjb2xsZWN0aW9uIG9u
IHRoZSByZXN1bHRpbmcgbW9kdWxlLCByZXR1cm5pbmcgdGhlIHRlc3QgaXRlbQotICAgICAgICBm
b3IgdGhlIHJlcXVlc3RlZCBmdW5jdGlvbiBuYW1lLgotCi0gICAgICAgIDpwYXJhbSBzb3VyY2U6
IFRoZSBtb2R1bGUgc291cmNlLgotCi0gICAgICAgIDpwYXJhbSBmdW5jbmFtZTogVGhlIG5hbWUg
b2YgdGhlIHRlc3QgZnVuY3Rpb24gZm9yIHdoaWNoIHRoZQotICAgICAgICAgICBJdGVtIG11c3Qg
YmUgcmV0dXJuZWQuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGl0ZW1zID0gc2VsZi5nZXRpdGVt
cyhzb3VyY2UpCi0gICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgotICAgICAgICAgICAgaWYgaXRl
bS5uYW1lID09IGZ1bmNuYW1lOgotICAgICAgICAgICAgICAgIHJldHVybiBpdGVtCi0gICAgICAg
IGFzc2VydCAwLCAiJXIgaXRlbSBub3QgZm91bmQgaW4gbW9kdWxlOlxuJXNcbml0ZW1zOiAlcyIg
JSAoCi0gICAgICAgICAgICAgICAgICBmdW5jbmFtZSwgc291cmNlLCBpdGVtcykKLQotICAgIGRl
ZiBnZXRpdGVtcyhzZWxmLCBzb3VyY2UpOgotICAgICAgICAiIiJSZXR1cm4gYWxsIHRlc3QgaXRl
bXMgY29sbGVjdGVkIGZyb20gdGhlIG1vZHVsZS4KLQotICAgICAgICBUaGlzIHdyaXRlcyB0aGUg
c291cmNlIHRvIGEgcHl0aG9uIGZpbGUgYW5kIHJ1bnMgcHl0ZXN0J3MKLSAgICAgICAgY29sbGVj
dGlvbiBvbiB0aGUgcmVzdWx0aW5nIG1vZHVsZSwgcmV0dXJuaW5nIGFsbCB0ZXN0IGl0ZW1zCi0g
ICAgICAgIGNvbnRhaW5lZCB3aXRoaW4uCi0KLSAgICAgICAgIiIiCi0gICAgICAgIG1vZGNvbCA9
IHNlbGYuZ2V0bW9kdWxlY29sKHNvdXJjZSkKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2VuaXRlbXMo
W21vZGNvbF0pCi0KLSAgICBkZWYgZ2V0bW9kdWxlY29sKHNlbGYsIHNvdXJjZSwgY29uZmlnYXJn
cz0oKSwgd2l0aGluaXQ9RmFsc2UpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIG1vZHVsZSBjb2xs
ZWN0aW9uIG5vZGUgZm9yIGBgc291cmNlYGAuCi0KLSAgICAgICAgVGhpcyB3cml0ZXMgYGBzb3Vy
Y2VgYCB0byBhIGZpbGUgdXNpbmcgOnB5Om1ldGg6YG1ha2VweWZpbGVgCi0gICAgICAgIGFuZCB0
aGVuIHJ1bnMgdGhlIHB5dGVzdCBjb2xsZWN0aW9uIG9uIGl0LCByZXR1cm5pbmcgdGhlCi0gICAg
ICAgIGNvbGxlY3Rpb24gbm9kZSBmb3IgdGhlIHRlc3QgbW9kdWxlLgotCi0gICAgICAgIDpwYXJh
bSBzb3VyY2U6IFRoZSBzb3VyY2UgY29kZSBvZiB0aGUgbW9kdWxlIHRvIGNvbGxlY3QuCi0KLSAg
ICAgICAgOnBhcmFtIGNvbmZpZ2FyZ3M6IEFueSBleHRyYSBhcmd1bWVudHMgdG8gcGFzcyB0bwot
ICAgICAgICAgICA6cHk6bWV0aDpgcGFyc2Vjb25maWd1cmVgLgotCi0gICAgICAgIDpwYXJhbSB3
aXRoaW5pdDogV2hldGhlciB0byBhbHNvIHdyaXRlIGEgYGBfX2luaXRfXy5weWBgIGZpbGUKLSAg
ICAgICAgICAgdG8gdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gZW5zdXJlIGl0IGlzIGEgcGFj
a2FnZS4KLQotICAgICAgICAiIiIKLSAgICAgICAga3cgPSB7c2VsZi5yZXF1ZXN0LmZ1bmN0aW9u
Ll9fbmFtZV9fOiBTb3VyY2Uoc291cmNlKS5zdHJpcCgpfQotICAgICAgICBwYXRoID0gc2VsZi5t
YWtlcHlmaWxlKCoqa3cpCi0gICAgICAgIGlmIHdpdGhpbml0OgotICAgICAgICAgICAgc2VsZi5t
YWtlcHlmaWxlKF9faW5pdF9fPSIjIikKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcgPSBz
ZWxmLnBhcnNlY29uZmlndXJlKHBhdGgsICpjb25maWdhcmdzKQotICAgICAgICBub2RlID0gc2Vs
Zi5nZXRub2RlKGNvbmZpZywgcGF0aCkKLQotICAgICAgICByZXR1cm4gbm9kZQotCi0gICAgZGVm
IGNvbGxlY3RfYnlfbmFtZShzZWxmLCBtb2Rjb2wsIG5hbWUpOgotICAgICAgICAiIiJSZXR1cm4g
dGhlIGNvbGxlY3Rpb24gbm9kZSBmb3IgbmFtZSBmcm9tIHRoZSBtb2R1bGUgY29sbGVjdGlvbi4K
LQotICAgICAgICBUaGlzIHdpbGwgc2VhcmNoIGEgbW9kdWxlIGNvbGxlY3Rpb24gbm9kZSBmb3Ig
YSBjb2xsZWN0aW9uCi0gICAgICAgIG5vZGUgbWF0Y2hpbmcgdGhlIGdpdmVuIG5hbWUuCi0KLSAg
ICAgICAgOnBhcmFtIG1vZGNvbDogQSBtb2R1bGUgY29sbGVjdGlvbiBub2RlLCBzZWUKLSAgICAg
ICAgICAgOnB5Om1ldGg6YGdldG1vZHVsZWNvbGAuCi0KLSAgICAgICAgOnBhcmFtIG5hbWU6IFRo
ZSBuYW1lIG9mIHRoZSBub2RlIHRvIHJldHVybi4KLQotICAgICAgICAiIiIKLSAgICAgICAgaWYg
bW9kY29sIG5vdCBpbiBzZWxmLl9tb2RfY29sbGVjdGlvbnM6Ci0gICAgICAgICAgICBzZWxmLl9t
b2RfY29sbGVjdGlvbnNbbW9kY29sXSA9IGxpc3QobW9kY29sLmNvbGxlY3QoKSkKLSAgICAgICAg
Zm9yIGNvbGl0ZW0gaW4gc2VsZi5fbW9kX2NvbGxlY3Rpb25zW21vZGNvbF06Ci0gICAgICAgICAg
ICBpZiBjb2xpdGVtLm5hbWUgPT0gbmFtZToKLSAgICAgICAgICAgICAgICByZXR1cm4gY29saXRl
bQotCi0gICAgZGVmIHBvcGVuKHNlbGYsIGNtZGFyZ3MsIHN0ZG91dCwgc3RkZXJyLCAqKmt3KToK
LSAgICAgICAgIiIiSW52b2tlIHN1YnByb2Nlc3MuUG9wZW4uCi0KLSAgICAgICAgVGhpcyBjYWxs
cyBzdWJwcm9jZXNzLlBvcGVuIG1ha2luZyBzdXJlIHRoZSBjdXJyZW50IHdvcmtpbmcKLSAgICAg
ICAgZGlyZWN0b3J5IGlzIHRoZSBQWVRIT05QQVRILgotCi0gICAgICAgIFlvdSBwcm9iYWJseSB3
YW50IHRvIHVzZSA6cHk6bWV0aDpgcnVuYCBpbnN0ZWFkLgotCi0gICAgICAgICIiIgotICAgICAg
ICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQotICAgICAgICBlbnZbJ1BZVEhPTlBBVEgnXSA9IG9z
LnBhdGhzZXAuam9pbihmaWx0ZXIoTm9uZSwgWwotICAgICAgICAgICAgc3RyKG9zLmdldGN3ZCgp
KSwgZW52LmdldCgnUFlUSE9OUEFUSCcsICcnKV0pKQotICAgICAgICBrd1snZW52J10gPSBlbnYK
LQotICAgICAgICBwb3BlbiA9IHN1YnByb2Nlc3MuUG9wZW4oY21kYXJncywgc3RkaW49c3VicHJv
Y2Vzcy5QSVBFLCBzdGRvdXQ9c3Rkb3V0LCBzdGRlcnI9c3RkZXJyLCAqKmt3KQotICAgICAgICBw
b3Blbi5zdGRpbi5jbG9zZSgpCi0KLSAgICAgICAgcmV0dXJuIHBvcGVuCi0KLSAgICBkZWYgcnVu
KHNlbGYsICpjbWRhcmdzKToKLSAgICAgICAgIiIiUnVuIGEgY29tbWFuZCB3aXRoIGFyZ3VtZW50
cy4KLQotICAgICAgICBSdW4gYSBwcm9jZXNzIHVzaW5nIHN1YnByb2Nlc3MuUG9wZW4gc2F2aW5n
IHRoZSBzdGRvdXQgYW5kCi0gICAgICAgIHN0ZGVyci4KLQotICAgICAgICBSZXR1cm5zIGEgOnB5
OmNsYXNzOmBSdW5SZXN1bHRgLgotCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5f
cnVuKCpjbWRhcmdzKQotCi0gICAgZGVmIF9ydW4oc2VsZiwgKmNtZGFyZ3MpOgotICAgICAgICBj
bWRhcmdzID0gW3N0cih4KSBmb3IgeCBpbiBjbWRhcmdzXQotICAgICAgICBwMSA9IHNlbGYudG1w
ZGlyLmpvaW4oInN0ZG91dCIpCi0gICAgICAgIHAyID0gc2VsZi50bXBkaXIuam9pbigic3RkZXJy
IikKLSAgICAgICAgcHJpbnQoInJ1bm5pbmc6IiwgJyAnLmpvaW4oY21kYXJncykpCi0gICAgICAg
IHByaW50KCIgICAgIGluOiIsIHN0cihweS5wYXRoLmxvY2FsKCkpKQotICAgICAgICBmMSA9IGNv
ZGVjcy5vcGVuKHN0cihwMSksICJ3IiwgZW5jb2Rpbmc9InV0ZjgiKQotICAgICAgICBmMiA9IGNv
ZGVjcy5vcGVuKHN0cihwMiksICJ3IiwgZW5jb2Rpbmc9InV0ZjgiKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQotICAgICAgICAgICAgcG9wZW4gPSBzZWxmLnBv
cGVuKGNtZGFyZ3MsIHN0ZG91dD1mMSwgc3RkZXJyPWYyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsb3NlX2Zkcz0oc3lzLnBsYXRmb3JtICE9ICJ3aW4zMiIpKQotICAgICAgICAg
ICAgcmV0ID0gcG9wZW4ud2FpdCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBmMS5j
bG9zZSgpCi0gICAgICAgICAgICBmMi5jbG9zZSgpCi0gICAgICAgIGYxID0gY29kZWNzLm9wZW4o
c3RyKHAxKSwgInIiLCBlbmNvZGluZz0idXRmOCIpCi0gICAgICAgIGYyID0gY29kZWNzLm9wZW4o
c3RyKHAyKSwgInIiLCBlbmNvZGluZz0idXRmOCIpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IG91dCA9IGYxLnJlYWQoKS5zcGxpdGxpbmVzKCkKLSAgICAgICAgICAgIGVyciA9IGYyLnJlYWQo
KS5zcGxpdGxpbmVzKCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGYxLmNsb3NlKCkK
LSAgICAgICAgICAgIGYyLmNsb3NlKCkKLSAgICAgICAgc2VsZi5fZHVtcF9saW5lcyhvdXQsIHN5
cy5zdGRvdXQpCi0gICAgICAgIHNlbGYuX2R1bXBfbGluZXMoZXJyLCBzeXMuc3RkZXJyKQotICAg
ICAgICByZXR1cm4gUnVuUmVzdWx0KHJldCwgb3V0LCBlcnIsIHRpbWUudGltZSgpIC0gbm93KQot
Ci0gICAgZGVmIF9kdW1wX2xpbmVzKHNlbGYsIGxpbmVzLCBmcCk6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAgICAgICAgICAgICAgIHByaW50KGxpbmUs
IGZpbGU9ZnApCi0gICAgICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6Ci0gICAgICAgICAg
ICBwcmludCgiY291bGRuJ3QgcHJpbnQgdG8gJXMgYmVjYXVzZSBvZiBlbmNvZGluZyIgJSAoZnAs
KSkKLQotICAgIGRlZiBfZ2V0cHl0ZXN0YXJncyhzZWxmKToKLSAgICAgICAgIyB3ZSBjYW5ub3Qg
dXNlICIoc3lzLmV4ZWN1dGFibGUsc2NyaXB0KSIKLSAgICAgICAgIyBiZWNhdXNlIG9uIHdpbmRv
d3MgdGhlIHNjcmlwdCBpcyBlLmcuIGEgcHl0ZXN0LmV4ZQotICAgICAgICByZXR1cm4gKHN5cy5l
eGVjdXRhYmxlLCBQWVRFU1RfRlVMTFBBVEgpICMgbm9xYQotCi0gICAgZGVmIHJ1bnB5dGhvbihz
ZWxmLCBzY3JpcHQpOgotICAgICAgICAiIiJSdW4gYSBweXRob24gc2NyaXB0IHVzaW5nIHN5cy5l
eGVjdXRhYmxlIGFzIGludGVycHJldGVyLgotCi0gICAgICAgIFJldHVybnMgYSA6cHk6Y2xhc3M6
YFJ1blJlc3VsdGAuCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5ydW4oc3lzLmV4
ZWN1dGFibGUsIHNjcmlwdCkKLQotICAgIGRlZiBydW5weXRob25fYyhzZWxmLCBjb21tYW5kKToK
LSAgICAgICAgIiIiUnVuIHB5dGhvbiAtYyAiY29tbWFuZCIsIHJldHVybiBhIDpweTpjbGFzczpg
UnVuUmVzdWx0YC4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuKHN5cy5leGVjdXRhYmxlLCAi
LWMiLCBjb21tYW5kKQotCi0gICAgZGVmIHJ1bnB5dGVzdF9zdWJwcm9jZXNzKHNlbGYsICphcmdz
LCAqKmt3YXJncyk6Ci0gICAgICAgICIiIlJ1biBweXRlc3QgYXMgYSBzdWJwcm9jZXNzIHdpdGgg
Z2l2ZW4gYXJndW1lbnRzLgotCi0gICAgICAgIEFueSBwbHVnaW5zIGFkZGVkIHRvIHRoZSA6cHk6
YXR0cjpgcGx1Z2luc2AgbGlzdCB3aWxsIGFkZGVkCi0gICAgICAgIHVzaW5nIHRoZSBgYC1wYGAg
Y29tbWFuZCBsaW5lIG9wdGlvbi4gIEFkZHRpb25hbGx5Ci0gICAgICAgIGBgLS1iYXNldGVtcGBg
IGlzIHVzZWQgcHV0IGFueSB0ZW1wb3JhcnkgZmlsZXMgYW5kIGRpcmVjdG9yaWVzCi0gICAgICAg
IGluIGEgbnVtYmVyZWQgZGlyZWN0b3J5IHByZWZpeGVkIHdpdGggInJ1bnB5dGVzdC0iIHNvIHRo
ZXkgZG8KLSAgICAgICAgbm90IGNvbmZsaWN0IHdpdGggdGhlIG5vcm1hbCBudW1iZXJkIHB5dGVz
dCBsb2NhdGlvbiBmb3IKLSAgICAgICAgdGVtcG9yYXJ5IGZpbGVzIGFuZCBkaXJlY3Rvcmllcy4K
LQotICAgICAgICBSZXR1cm5zIGEgOnB5OmNsYXNzOmBSdW5SZXN1bHRgLgotCi0gICAgICAgICIi
IgotICAgICAgICBwID0gcHkucGF0aC5sb2NhbC5tYWtlX251bWJlcmVkX2RpcihwcmVmaXg9InJ1
bnB5dGVzdC0iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
ZWVwPU5vbmUsIHJvb3RkaXI9c2VsZi50bXBkaXIpCi0gICAgICAgIGFyZ3MgPSAoJy0tYmFzZXRl
bXA9JXMnICUgcCwgKSArIGFyZ3MKLSAgICAgICAgIyBmb3IgeCBpbiBhcmdzOgotICAgICAgICAj
ICAgIGlmICctLWNvbmZjdXRkaXInIGluIHN0cih4KToKLSAgICAgICAgIyAgICAgICAgYnJlYWsK
LSAgICAgICAgIyBlbHNlOgotICAgICAgICAjICAgIHBhc3MKLSAgICAgICAgIyAgICBhcmdzID0g
KCctLWNvbmZjdXRkaXI9LicsKSArIGFyZ3MKLSAgICAgICAgcGx1Z2lucyA9IFt4IGZvciB4IGlu
IHNlbGYucGx1Z2lucyBpZiBpc2luc3RhbmNlKHgsIHN0cildCi0gICAgICAgIGlmIHBsdWdpbnM6
Ci0gICAgICAgICAgICBhcmdzID0gKCctcCcsIHBsdWdpbnNbMF0pICsgYXJncwotICAgICAgICBh
cmdzID0gc2VsZi5fZ2V0cHl0ZXN0YXJncygpICsgYXJncwotICAgICAgICByZXR1cm4gc2VsZi5y
dW4oKmFyZ3MpCi0KLSAgICBkZWYgc3Bhd25fcHl0ZXN0KHNlbGYsIHN0cmluZywgZXhwZWN0X3Rp
bWVvdXQ9MTAuMCk6Ci0gICAgICAgICIiIlJ1biBweXRlc3QgdXNpbmcgcGV4cGVjdC4KLQotICAg
ICAgICBUaGlzIG1ha2VzIHN1cmUgdG8gdXNlIHRoZSByaWdodCBweXRlc3QgYW5kIHNldHMgdXAg
dGhlCi0gICAgICAgIHRlbXBvcmFyeSBkaXJlY3RvcnkgbG9jYXRpb25zLgotCi0gICAgICAgIFRo
ZSBwZXhwZWN0IGNoaWxkIGlzIHJldHVybmVkLgotCi0gICAgICAgICIiIgotICAgICAgICBiYXNl
dGVtcCA9IHNlbGYudG1wZGlyLm1rZGlyKCJ0ZW1wLXBleHBlY3QiKQotICAgICAgICBpbnZva2Ug
PSAiICIuam9pbihtYXAoc3RyLCBzZWxmLl9nZXRweXRlc3RhcmdzKCkpKQotICAgICAgICBjbWQg
PSAiJXMgLS1iYXNldGVtcD0lcyAlcyIgJSAoaW52b2tlLCBiYXNldGVtcCwgc3RyaW5nKQotICAg
ICAgICByZXR1cm4gc2VsZi5zcGF3bihjbWQsIGV4cGVjdF90aW1lb3V0PWV4cGVjdF90aW1lb3V0
KQotCi0gICAgZGVmIHNwYXduKHNlbGYsIGNtZCwgZXhwZWN0X3RpbWVvdXQ9MTAuMCk6Ci0gICAg
ICAgICIiIlJ1biBhIGNvbW1hbmQgdXNpbmcgcGV4cGVjdC4KLQotICAgICAgICBUaGUgcGV4cGVj
dCBjaGlsZCBpcyByZXR1cm5lZC4KLSAgICAgICAgIiIiCi0gICAgICAgIHBleHBlY3QgPSBweXRl
c3QuaW1wb3J0b3Jza2lwKCJwZXhwZWN0IiwgIjMuMCIpCi0gICAgICAgIGlmIGhhc2F0dHIoc3lz
LCAncHlweV92ZXJzaW9uX2luZm8nKSBhbmQgJzY0JyBpbiBwbGF0Zm9ybS5tYWNoaW5lKCk6Ci0g
ICAgICAgICAgICBweXRlc3Quc2tpcCgicHlweS02NCBiaXQgbm90IHN1cHBvcnRlZCIpCi0gICAg
ICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJmcmVlYnNkIik6Ci0gICAgICAgICAgICBw
eXRlc3QueGZhaWwoInBleHBlY3QgZG9lcyBub3Qgd29yayByZWxpYWJseSBvbiBmcmVlYnNkIikK
LSAgICAgICAgbG9nZmlsZSA9IHNlbGYudG1wZGlyLmpvaW4oInNwYXduLm91dCIpLm9wZW4oIndi
IikKLSAgICAgICAgY2hpbGQgPSBwZXhwZWN0LnNwYXduKGNtZCwgbG9nZmlsZT1sb2dmaWxlKQot
ICAgICAgICBzZWxmLnJlcXVlc3QuYWRkZmluYWxpemVyKGxvZ2ZpbGUuY2xvc2UpCi0gICAgICAg
IGNoaWxkLnRpbWVvdXQgPSBleHBlY3RfdGltZW91dAotICAgICAgICByZXR1cm4gY2hpbGQKLQot
Ci1kZWYgZ2V0ZGVjb2RlZChvdXQpOgotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIG91dC5kZWNv
ZGUoInV0Zi04IikKLSAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgotICAgICAgICByZXR1
cm4gIklOVEVSTkFMIG5vdC11dGY4LWRlY29kZWFibGUsIHRydW5jYXRlZCBzdHJpbmc6XG4lcyIg
JSAoCi0gICAgICAgICAgICBweS5pby5zYWZlcmVwcihvdXQpLCkKLQotCi1jbGFzcyBMaW5lQ29t
cDoKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuc3RyaW5naW8gPSBweS5p
by5UZXh0SU8oKQotCi0gICAgZGVmIGFzc2VydF9jb250YWluc19saW5lcyhzZWxmLCBsaW5lczIp
OgotICAgICAgICAiIiIgYXNzZXJ0IHRoYXQgbGluZXMyIGFyZSBjb250YWluZWQgKGxpbmVhcmx5
KSBpbiBsaW5lczEuCi0gICAgICAgICAgICByZXR1cm4gYSBsaXN0IG9mIGV4dHJhbGluZXMgZm91
bmQuCi0gICAgICAgICIiIgotICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAg
ICAgdmFsID0gc2VsZi5zdHJpbmdpby5nZXR2YWx1ZSgpCi0gICAgICAgIHNlbGYuc3RyaW5naW8u
dHJ1bmNhdGUoMCkKLSAgICAgICAgc2VsZi5zdHJpbmdpby5zZWVrKDApCi0gICAgICAgIGxpbmVz
MSA9IHZhbC5zcGxpdCgiXG4iKQotICAgICAgICByZXR1cm4gTGluZU1hdGNoZXIobGluZXMxKS5m
bm1hdGNoX2xpbmVzKGxpbmVzMikKLQotCi1jbGFzcyBMaW5lTWF0Y2hlcjoKLSAgICAiIiJGbGV4
aWJsZSBtYXRjaGluZyBvZiB0ZXh0LgotCi0gICAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGNsYXNz
IHRvIHRlc3QgbGFyZ2UgdGV4dHMgbGlrZSB0aGUgb3V0cHV0IG9mCi0gICAgY29tbWFuZHMuCi0K
LSAgICBUaGUgY29uc3RydWN0b3IgdGFrZXMgYSBsaXN0IG9mIGxpbmVzIHdpdGhvdXQgdGhlaXIg
dHJhaWxpbmcKLSAgICBuZXdsaW5lcywgaS5lLiBgYHRleHQuc3BsaXRsaW5lcygpYGAuCi0KLSAg
ICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsaW5lcyk6Ci0gICAgICAgIHNlbGYubGlu
ZXMgPSBsaW5lcwotICAgICAgICBzZWxmLl9sb2dfb3V0cHV0ID0gW10KLQotICAgIGRlZiBzdHIo
c2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgZW50aXJlIG9yaWdpbmFsIHRleHQuIiIiCi0g
ICAgICAgIHJldHVybiAiXG4iLmpvaW4oc2VsZi5saW5lcykKLQotICAgIGRlZiBfZ2V0bGluZXMo
c2VsZiwgbGluZXMyKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lczIsIHN0cik6Ci0gICAg
ICAgICAgICBsaW5lczIgPSBTb3VyY2UobGluZXMyKQotICAgICAgICBpZiBpc2luc3RhbmNlKGxp
bmVzMiwgU291cmNlKToKLSAgICAgICAgICAgIGxpbmVzMiA9IGxpbmVzMi5zdHJpcCgpLmxpbmVz
Ci0gICAgICAgIHJldHVybiBsaW5lczIKLQotICAgIGRlZiBmbm1hdGNoX2xpbmVzX3JhbmRvbShz
ZWxmLCBsaW5lczIpOgotICAgICAgICAiIiJDaGVjayBsaW5lcyBleGlzdCBpbiB0aGUgb3V0cHV0
IHVzaW5nIGBgZm5tYXRjaC5mbm1hdGNoYGAsIGluIGFueSBvcmRlci4KLQotICAgICAgICBUaGUg
YXJndW1lbnQgaXMgYSBsaXN0IG9mIGxpbmVzIHdoaWNoIGhhdmUgdG8gb2NjdXIgaW4gdGhlCi0g
ICAgICAgIG91dHB1dCwgaW4gYW55IG9yZGVyLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5f
bWF0Y2hfbGluZXNfcmFuZG9tKGxpbmVzMiwgZm5tYXRjaCkKLQotICAgIGRlZiByZV9tYXRjaF9s
aW5lc19yYW5kb20oc2VsZiwgbGluZXMyKToKLSAgICAgICAgIiIiQ2hlY2sgbGluZXMgZXhpc3Qg
aW4gdGhlIG91dHB1dCB1c2luZyBgYHJlLm1hdGNoYGAsIGluIGFueSBvcmRlci4KLQotICAgICAg
ICBUaGUgYXJndW1lbnQgaXMgYSBsaXN0IG9mIGxpbmVzIHdoaWNoIGhhdmUgdG8gb2NjdXIgaW4g
dGhlCi0gICAgICAgIG91dHB1dCwgaW4gYW55IG9yZGVyLgotCi0gICAgICAgICIiIgotICAgICAg
ICBzZWxmLl9tYXRjaF9saW5lc19yYW5kb20obGluZXMyLCBsYW1iZGEgbmFtZSwgcGF0OiByZS5t
YXRjaChwYXQsIG5hbWUpKQotCi0gICAgZGVmIF9tYXRjaF9saW5lc19yYW5kb20oc2VsZiwgbGlu
ZXMyLCBtYXRjaF9mdW5jKToKLSAgICAgICAgIiIiQ2hlY2sgbGluZXMgZXhpc3QgaW4gdGhlIG91
dHB1dC4KLQotICAgICAgICBUaGUgYXJndW1lbnQgaXMgYSBsaXN0IG9mIGxpbmVzIHdoaWNoIGhh
dmUgdG8gb2NjdXIgaW4gdGhlCi0gICAgICAgIG91dHB1dCwgaW4gYW55IG9yZGVyLiAgRWFjaCBs
aW5lIGNhbiBjb250YWluIGdsb2Igd2hpbGRjYXJkcy4KLQotICAgICAgICAiIiIKLSAgICAgICAg
bGluZXMyID0gc2VsZi5fZ2V0bGluZXMobGluZXMyKQotICAgICAgICBmb3IgbGluZSBpbiBsaW5l
czI6Ci0gICAgICAgICAgICBmb3IgeCBpbiBzZWxmLmxpbmVzOgotICAgICAgICAgICAgICAgIGlm
IGxpbmUgPT0geCBvciBtYXRjaF9mdW5jKHgsIGxpbmUpOgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9sb2coIm1hdGNoZWQ6ICIsIHJlcHIobGluZSkpCi0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZygibGluZSAl
ciBub3QgZm91bmQgaW4gb3V0cHV0IiAlIGxpbmUpCi0gICAgICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcihzZWxmLl9sb2dfdGV4dCkKLQotICAgIGRlZiBnZXRfbGluZXNfYWZ0ZXIoc2VsZiwg
Zm5saW5lKToKLSAgICAgICAgIiIiUmV0dXJuIGFsbCBsaW5lcyBmb2xsb3dpbmcgdGhlIGdpdmVu
IGxpbmUgaW4gdGhlIHRleHQuCi0KLSAgICAgICAgVGhlIGdpdmVuIGxpbmUgY2FuIGNvbnRhaW4g
Z2xvYiB3aWxkY2FyZHMuCi0gICAgICAgICIiIgotICAgICAgICBmb3IgaSwgbGluZSBpbiBlbnVt
ZXJhdGUoc2VsZi5saW5lcyk6Ci0gICAgICAgICAgICBpZiBmbmxpbmUgPT0gbGluZSBvciBmbm1h
dGNoKGxpbmUsIGZubGluZSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYubGluZXNbaSAr
IDE6XQotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJsaW5lICVyIG5vdCBmb3VuZCBpbiBvdXRw
dXQiICUgZm5saW5lKQotCi0gICAgZGVmIF9sb2coc2VsZiwgKmFyZ3MpOgotICAgICAgICBzZWxm
Ll9sb2dfb3V0cHV0LmFwcGVuZCgnICcuam9pbigoc3RyKHgpIGZvciB4IGluIGFyZ3MpKSkKLQot
ICAgIEBwcm9wZXJ0eQotICAgIGRlZiBfbG9nX3RleHQoc2VsZik6Ci0gICAgICAgIHJldHVybiAn
XG4nLmpvaW4oc2VsZi5fbG9nX291dHB1dCkKLQotICAgIGRlZiBmbm1hdGNoX2xpbmVzKHNlbGYs
IGxpbmVzMik6Ci0gICAgICAgICIiIlNlYXJjaCBjYXB0dXJlZCB0ZXh0IGZvciBtYXRjaGluZyBs
aW5lcyB1c2luZyBgYGZubWF0Y2guZm5tYXRjaGBgLgotCi0gICAgICAgIFRoZSBhcmd1bWVudCBp
cyBhIGxpc3Qgb2YgbGluZXMgd2hpY2ggaGF2ZSB0byBtYXRjaCBhbmQgY2FuCi0gICAgICAgIHVz
ZSBnbG9iIHdpbGRjYXJkcy4gIElmIHRoZXkgZG8gbm90IG1hdGNoIGEgcHl0ZXN0LmZhaWwoKSBp
cwotICAgICAgICBjYWxsZWQuICBUaGUgbWF0Y2hlcyBhbmQgbm9uLW1hdGNoZXMgYXJlIGFsc28g
cHJpbnRlZCBvbgotICAgICAgICBzdGRvdXQuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYu
X21hdGNoX2xpbmVzKGxpbmVzMiwgZm5tYXRjaCwgJ2ZubWF0Y2gnKQotCi0gICAgZGVmIHJlX21h
dGNoX2xpbmVzKHNlbGYsIGxpbmVzMik6Ci0gICAgICAgICIiIlNlYXJjaCBjYXB0dXJlZCB0ZXh0
IGZvciBtYXRjaGluZyBsaW5lcyB1c2luZyBgYHJlLm1hdGNoYGAuCi0KLSAgICAgICAgVGhlIGFy
Z3VtZW50IGlzIGEgbGlzdCBvZiBsaW5lcyB3aGljaCBoYXZlIHRvIG1hdGNoIHVzaW5nIGBgcmUu
bWF0Y2hgYC4KLSAgICAgICAgSWYgdGhleSBkbyBub3QgbWF0Y2ggYSBweXRlc3QuZmFpbCgpIGlz
IGNhbGxlZC4KLQotICAgICAgICBUaGUgbWF0Y2hlcyBhbmQgbm9uLW1hdGNoZXMgYXJlIGFsc28g
cHJpbnRlZCBvbgotICAgICAgICBzdGRvdXQuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9t
YXRjaF9saW5lcyhsaW5lczIsIGxhbWJkYSBuYW1lLCBwYXQ6IHJlLm1hdGNoKHBhdCwgbmFtZSks
ICdyZS5tYXRjaCcpCi0KLSAgICBkZWYgX21hdGNoX2xpbmVzKHNlbGYsIGxpbmVzMiwgbWF0Y2hf
ZnVuYywgbWF0Y2hfbmlja25hbWUpOgotICAgICAgICAiIiJVbmRlcmx5aW5nIGltcGxlbWVudGF0
aW9uIG9mIGBgZm5tYXRjaF9saW5lc2BgIGFuZCBgYHJlX21hdGNoX2xpbmVzYGAuCi0KLSAgICAg
ICAgOnBhcmFtIGxpc3Rbc3RyXSBsaW5lczI6IGxpc3Qgb2Ygc3RyaW5nIHBhdHRlcm5zIHRvIG1h
dGNoLiBUaGUgYWN0dWFsIGZvcm1hdCBkZXBlbmRzIG9uCi0gICAgICAgICAgICBgYG1hdGNoX2Z1
bmNgYC4KLSAgICAgICAgOnBhcmFtIG1hdGNoX2Z1bmM6IGEgY2FsbGFibGUgYGBtYXRjaF9mdW5j
KGxpbmUsIHBhdHRlcm4pYGAgd2hlcmUgbGluZSBpcyB0aGUgY2FwdHVyZWQKLSAgICAgICAgICAg
IGxpbmUgZnJvbSBzdGRvdXQvc3RkZXJyIGFuZCBwYXR0ZXJuIGlzIHRoZSBtYXRjaGluZyBwYXR0
ZXJuLgotCi0gICAgICAgIDpwYXJhbSBzdHIgbWF0Y2hfbmlja25hbWU6IHRoZSBuaWNrbmFtZSBm
b3IgdGhlIG1hdGNoIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBsb2dnZWQKLSAgICAgICAgICAgIHRv
IHN0ZG91dCB3aGVuIGEgbWF0Y2ggb2NjdXJzLgotICAgICAgICAiIiIKLSAgICAgICAgbGluZXMy
ID0gc2VsZi5fZ2V0bGluZXMobGluZXMyKQotICAgICAgICBsaW5lczEgPSBzZWxmLmxpbmVzWzpd
Ci0gICAgICAgIG5leHRsaW5lID0gTm9uZQotICAgICAgICBleHRyYWxpbmVzID0gW10KLSAgICAg
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIGZvciBsaW5lIGluIGxpbmVzMjoK
LSAgICAgICAgICAgIG5vbWF0Y2hwcmludGVkID0gRmFsc2UKLSAgICAgICAgICAgIHdoaWxlIGxp
bmVzMToKLSAgICAgICAgICAgICAgICBuZXh0bGluZSA9IGxpbmVzMS5wb3AoMCkKLSAgICAgICAg
ICAgICAgICBpZiBsaW5lID09IG5leHRsaW5lOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9s
b2coImV4YWN0IG1hdGNoOiIsIHJlcHIobGluZSkpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFr
Ci0gICAgICAgICAgICAgICAgZWxpZiBtYXRjaF9mdW5jKG5leHRsaW5lLCBsaW5lKToKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fbG9nKCIlczoiICUgbWF0Y2hfbmlja25hbWUsIHJlcHIobGlu
ZSkpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZygiICAgd2l0aDoiLCByZXByKG5leHRs
aW5lKSkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICBpZiBub3Qgbm9tYXRjaHByaW50ZWQ6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9sb2coIm5vbWF0Y2g6IiwgcmVwcihsaW5lKSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG5vbWF0Y2hwcmludGVkID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9sb2coIiAgICBhbmQ6IiwgcmVwcihuZXh0bGluZSkpCi0gICAgICAgICAgICAgICAgZXh0
cmFsaW5lcy5hcHBlbmQobmV4dGxpbmUpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZygicmVtYWlucyB1bm1hdGNoZWQ6ICVyIiAlIChsaW5lLCkpCi0gICAgICAg
ICAgICAgICAgcHl0ZXN0LmZhaWwoc2VsZi5fbG9nX3RleHQpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L3B5dGhvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTAxNzFhOWU5YzkwOTA5ZGEzY2UyN2JhNTk2
MzhhNWZjOWIxNjQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTE3
NSArMCwwIEBACi0iIiIgUHl0aG9uIHRlc3QgZGlzY292ZXJ5LCBzZXR1cCBhbmQgcnVuIG9mIHRl
c3QgZnVuY3Rpb25zLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGZubWF0Y2gKLWltcG9ydCBpbnNw
ZWN0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKLWltcG9ydCBjb2xsZWN0aW9ucwotaW1wb3J0IHdh
cm5pbmdzCi1mcm9tIHRleHR3cmFwIGltcG9ydCBkZWRlbnQKLWZyb20gaXRlcnRvb2xzIGltcG9y
dCBjb3VudAotCi0KLWltcG9ydCBweQotaW1wb3J0IHNpeAotZnJvbSBfcHl0ZXN0Lm1hcmsgaW1w
b3J0IE1hcmtlckVycm9yCi1mcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBob29raW1wbAotCi1p
bXBvcnQgX3B5dGVzdAotaW1wb3J0IHBsdWdneQotZnJvbSBfcHl0ZXN0IGltcG9ydCBmaXh0dXJl
cwotZnJvbSBfcHl0ZXN0IGltcG9ydCBtYWluCi1mcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0
ZWQKLWZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0ICgKLSAgICBpc2NsYXNzLCBpc2Z1bmN0aW9u
LCBpc19nZW5lcmF0b3IsIGFzY2lpX2VzY2FwZWQsCi0gICAgUkVHRVhfVFlQRSwgU1RSSU5HX1RZ
UEVTLCBOb25lVHlwZSwgTk9UU0VULAotICAgIGdldF9yZWFsX2Z1bmMsIGdldGZzbGluZW5vLCBz
YWZlX2dldGF0dHIsCi0gICAgc2FmZV9zdHIsIGdldGxvY2F0aW9uLCBlbnVtLAotKQotZnJvbSBf
cHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsCi1mcm9tIF9weXRlc3QubWFyayBpbXBvcnQgdHJh
bnNmZXJfbWFya2VycwotCi1jdXRkaXIxID0gcHkucGF0aC5sb2NhbChwbHVnZ3kuX19maWxlX18u
cnN0cmlwKCJvYyIpKQotY3V0ZGlyMiA9IHB5LnBhdGgubG9jYWwoX3B5dGVzdC5fX2ZpbGVfXyku
ZGlycGF0aCgpCi1jdXRkaXIzID0gcHkucGF0aC5sb2NhbChweS5fX2ZpbGVfXykuZGlycGF0aCgp
Ci0KLQotZGVmIGZpbHRlcl90cmFjZWJhY2soZW50cnkpOgotICAgICIiIlJldHVybiBUcnVlIGlm
IGEgVHJhY2ViYWNrRW50cnkgaW5zdGFuY2Ugc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSB0cmFjZWJh
Y2tzOgotICAgICogZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvZGUgKG5vIGNvZGUgdG8gc2hvdyB1
cCBmb3IgaXQpOwotICAgICogaW50ZXJuYWwgdHJhY2ViYWNrIGZyb20gcHl0ZXN0IG9yIGl0cyBp
bnRlcm5hbCBsaWJyYXJpZXMsIHB5IGFuZCBwbHVnZ3kuCi0gICAgIiIiCi0gICAgIyBlbnRyeS5w
YXRoIG1pZ2h0IHNvbWV0aW1lcyByZXR1cm4gYSBzdHIgb2JqZWN0IHdoZW4gdGhlIGVudHJ5Ci0g
ICAgIyBwb2ludHMgdG8gZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvZGUKLSAgICAjIHNlZSBodHRw
czovL2JpdGJ1Y2tldC5vcmcvcHl0ZXN0LWRldi9weS9pc3N1ZXMvNzEKLSAgICByYXdfZmlsZW5h
bWUgPSBlbnRyeS5mcmFtZS5jb2RlLnJhdy5jb19maWxlbmFtZQotICAgIGlzX2dlbmVyYXRlZCA9
ICc8JyBpbiByYXdfZmlsZW5hbWUgYW5kICc+JyBpbiByYXdfZmlsZW5hbWUKLSAgICBpZiBpc19n
ZW5lcmF0ZWQ6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgICMgZW50cnkucGF0aCBtaWdodCBw
b2ludCB0byBhbiBpbmV4aXN0aW5nIGZpbGUsIGluIHdoaWNoIGNhc2UgaXQgd2lsbAotICAgICMg
YWxzc28gcmV0dXJuIGEgc3RyIG9iamVjdC4gc2VlICMxMTMzCi0gICAgcCA9IHB5LnBhdGgubG9j
YWwoZW50cnkucGF0aCkKLSAgICByZXR1cm4gcCAhPSBjdXRkaXIxIGFuZCBub3QgcC5yZWx0byhj
dXRkaXIyKSBhbmQgbm90IHAucmVsdG8oY3V0ZGlyMykKLQotCi1kZWYgcHlvYmpfcHJvcGVydHko
bmFtZSk6Ci0gICAgZGVmIGdldChzZWxmKToKLSAgICAgICAgbm9kZSA9IHNlbGYuZ2V0cGFyZW50
KGdldGF0dHIoX19pbXBvcnRfXygncHl0ZXN0JyksIG5hbWUpKQotICAgICAgICBpZiBub2RlIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgcmV0dXJuIG5vZGUub2JqCi0gICAgZG9jID0gInB5dGhv
biAlcyBvYmplY3QgdGhpcyBub2RlIHdhcyBjb2xsZWN0ZWQgZnJvbSAoY2FuIGJlIE5vbmUpLiIg
JSAoCi0gICAgICAgICAgbmFtZS5sb3dlcigpLCkKLSAgICByZXR1cm4gcHJvcGVydHkoZ2V0LCBO
b25lLCBOb25lLCBkb2MpCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBn
cm91cCA9IHBhcnNlci5nZXRncm91cCgiZ2VuZXJhbCIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCct
LWZpeHR1cmVzJywgJy0tZnVuY2FyZ3MnLAotICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0
b3JlX3RydWUiLCBkZXN0PSJzaG93Zml4dHVyZXMiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJzaG93IGF2YWlsYWJsZSBmaXh0dXJlcywgc29ydGVkIGJ5IHBsdWdp
biBhcHBlYXJhbmNlIikKLSAgICBncm91cC5hZGRvcHRpb24oCi0gICAgICAgICctLWZpeHR1cmVz
LXBlci10ZXN0JywKLSAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgZGVzdD0i
c2hvd19maXh0dXJlc19wZXJfdGVzdCIsCi0gICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAg
IGhlbHA9InNob3cgZml4dHVyZXMgcGVyIHRlc3QiLAotICAgICkKLSAgICBwYXJzZXIuYWRkaW5p
KCJ1c2VmaXh0dXJlcyIsIHR5cGU9ImFyZ3MiLCBkZWZhdWx0PVtdLAotICAgICAgICAgICAgICAg
ICAgaGVscD0ibGlzdCBvZiBkZWZhdWx0IGZpeHR1cmVzIHRvIGJlIHVzZWQgd2l0aCB0aGlzIHBy
b2plY3QiKQotICAgIHBhcnNlci5hZGRpbmkoInB5dGhvbl9maWxlcyIsIHR5cGU9ImFyZ3MiLAot
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD1bJ3Rlc3RfKi5weScsICcqX3Rlc3QucHknXSwKLSAg
ICAgICAgICAgICAgICAgIGhlbHA9Imdsb2Itc3R5bGUgZmlsZSBwYXR0ZXJucyBmb3IgUHl0aG9u
IHRlc3QgbW9kdWxlIGRpc2NvdmVyeSIpCi0gICAgcGFyc2VyLmFkZGluaSgicHl0aG9uX2NsYXNz
ZXMiLCB0eXBlPSJhcmdzIiwgZGVmYXVsdD1bIlRlc3QiLCBdLAotICAgICAgICAgICAgICAgICAg
aGVscD0icHJlZml4ZXMgb3IgZ2xvYiBuYW1lcyBmb3IgUHl0aG9uIHRlc3QgY2xhc3MgZGlzY292
ZXJ5IikKLSAgICBwYXJzZXIuYWRkaW5pKCJweXRob25fZnVuY3Rpb25zIiwgdHlwZT0iYXJncyIs
IGRlZmF1bHQ9WyJ0ZXN0IiwgXSwKLSAgICAgICAgICAgICAgICAgIGhlbHA9InByZWZpeGVzIG9y
IGdsb2IgbmFtZXMgZm9yIFB5dGhvbiB0ZXN0IGZ1bmN0aW9uIGFuZCAiCi0gICAgICAgICAgICAg
ICAgICAibWV0aG9kIGRpc2NvdmVyeSIpCi0KLSAgICBncm91cC5hZGRvcHRpb24oIi0taW1wb3J0
LW1vZGUiLCBkZWZhdWx0PSJwcmVwZW5kIiwKLSAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1b
InByZXBlbmQiLCAiYXBwZW5kIl0sIGRlc3Q9ImltcG9ydG1vZGUiLAotICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJwcmVwZW5kL2FwcGVuZCB0byBzeXMucGF0aCB3aGVuIGltcG9ydGluZyB0ZXN0
IG1vZHVsZXMsICIKLSAgICAgICAgICAgICAgICAgICAgImRlZmF1bHQgaXMgdG8gcHJlcGVuZC4i
KQotCi0KLWRlZiBweXRlc3RfY21kbGluZV9tYWluKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLm9w
dGlvbi5zaG93Zml4dHVyZXM6Ci0gICAgICAgIHNob3dmaXh0dXJlcyhjb25maWcpCi0gICAgICAg
IHJldHVybiAwCi0gICAgaWYgY29uZmlnLm9wdGlvbi5zaG93X2ZpeHR1cmVzX3Blcl90ZXN0Ogot
ICAgICAgICBzaG93X2ZpeHR1cmVzX3Blcl90ZXN0KGNvbmZpZykKLSAgICAgICAgcmV0dXJuIDAK
LQotCi1kZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAjIHRob3NlIGFs
dGVybmF0aXZlIHNwZWxsaW5ncyBhcmUgY29tbW9uIC0gcmFpc2UgYSBzcGVjaWZpYyBlcnJvciB0
byBhbGVydAotICAgICMgdGhlIHVzZXIKLSAgICBhbHRfc3BlbGxpbmdzID0gWydwYXJhbWV0ZXJp
emUnLCAncGFyYW1ldHJpc2UnLCAncGFyYW1ldGVyaXNlJ10KLSAgICBmb3IgYXR0ciBpbiBhbHRf
c3BlbGxpbmdzOgotICAgICAgICBpZiBoYXNhdHRyKG1ldGFmdW5jLmZ1bmN0aW9uLCBhdHRyKToK
LSAgICAgICAgICAgIG1zZyA9ICJ7MH0gaGFzICd7MX0nLCBzcGVsbGluZyBzaG91bGQgYmUgJ3Bh
cmFtZXRyaXplJyIKLSAgICAgICAgICAgIHJhaXNlIE1hcmtlckVycm9yKG1zZy5mb3JtYXQobWV0
YWZ1bmMuZnVuY3Rpb24uX19uYW1lX18sIGF0dHIpKQotICAgIHRyeToKLSAgICAgICAgbWFya2Vy
cyA9IG1ldGFmdW5jLmZ1bmN0aW9uLnBhcmFtZXRyaXplCi0gICAgZXhjZXB0IEF0dHJpYnV0ZUVy
cm9yOgotICAgICAgICByZXR1cm4KLSAgICBmb3IgbWFya2VyIGluIG1hcmtlcnM6Ci0gICAgICAg
IG1ldGFmdW5jLnBhcmFtZXRyaXplKCptYXJrZXIuYXJncywgKiptYXJrZXIua3dhcmdzKQotCi0K
LWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgY29uZmlnLmFkZGluaXZhbHVlX2xp
bmUoIm1hcmtlcnMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJhbWV0cml6ZShh
cmduYW1lcywgYXJndmFsdWVzKTogY2FsbCBhIHRlc3QgZnVuY3Rpb24gbXVsdGlwbGUgIgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lcyBwYXNzaW5nIGluIGRpZmZlcmVudCBhcmd1
bWVudHMgaW4gdHVybi4gYXJndmFsdWVzIGdlbmVyYWxseSAiCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIm5lZWRzIHRvIGJlIGEgbGlzdCBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lm
aWVzIG9ubHkgb25lIG5hbWUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvciBhIGxp
c3Qgb2YgdHVwbGVzIG9mIHZhbHVlcyBpZiBhcmduYW1lcyBzcGVjaWZpZXMgbXVsdGlwbGUgbmFt
ZXMuICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhhbXBsZTogQHBhcmFtZXRyaXpl
KCdhcmcxJywgWzEsMl0pIHdvdWxkIGxlYWQgdG8gdHdvIGNhbGxzIG9mIHRoZSAiCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImRlY29yYXRlZCB0ZXN0IGZ1bmN0aW9uLCBvbmUgd2l0aCBh
cmcxPTEgYW5kIGFub3RoZXIgd2l0aCBhcmcxPTIuIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3BhcmFtZXRyaXplLmh0bWwgZm9yIG1v
cmUgaW5mbyBhbmQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGFtcGxlcy4iCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5l
KCJtYXJrZXJzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidXNlZml4dHVyZXMoZml4
dHVyZW5hbWUxLCBmaXh0dXJlbmFtZTIsIC4uLik6IG1hcmsgdGVzdHMgYXMgbmVlZGluZyAiCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImFsbCBvZiB0aGUgc3BlY2lmaWVkIGZpeHR1cmVz
LiBzZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L2ZpeHR1cmUuaHRtbCN1c2VmaXh0dXJlcyAi
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotCi0KLUBob29raW1wbCh0cnlsYXN0PVRy
dWUpCi1kZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVuY2l0ZW0pOgotICAgIHRlc3RmdW5jdGlv
biA9IHB5ZnVuY2l0ZW0ub2JqCi0gICAgaWYgcHlmdW5jaXRlbS5faXN5aWVsZGVkZnVuY3Rpb24o
KToKLSAgICAgICAgdGVzdGZ1bmN0aW9uKCpweWZ1bmNpdGVtLl9hcmdzKQotICAgIGVsc2U6Ci0g
ICAgICAgIGZ1bmNhcmdzID0gcHlmdW5jaXRlbS5mdW5jYXJncwotICAgICAgICB0ZXN0YXJncyA9
IHt9Ci0gICAgICAgIGZvciBhcmcgaW4gcHlmdW5jaXRlbS5fZml4dHVyZWluZm8uYXJnbmFtZXM6
Ci0gICAgICAgICAgICB0ZXN0YXJnc1thcmddID0gZnVuY2FyZ3NbYXJnXQotICAgICAgICB0ZXN0
ZnVuY3Rpb24oKip0ZXN0YXJncykKLSAgICByZXR1cm4gVHJ1ZQotCi0KLWRlZiBweXRlc3RfY29s
bGVjdF9maWxlKHBhdGgsIHBhcmVudCk6Ci0gICAgZXh0ID0gcGF0aC5leHQKLSAgICBpZiBleHQg
PT0gIi5weSI6Ci0gICAgICAgIGlmIG5vdCBwYXJlbnQuc2Vzc2lvbi5pc2luaXRwYXRoKHBhdGgp
OgotICAgICAgICAgICAgZm9yIHBhdCBpbiBwYXJlbnQuY29uZmlnLmdldGluaSgncHl0aG9uX2Zp
bGVzJyk6Ci0gICAgICAgICAgICAgICAgaWYgcGF0aC5mbm1hdGNoKHBhdCk6Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJldHVy
bgotICAgICAgICBpaG9vayA9IHBhcmVudC5zZXNzaW9uLmdldGhvb2twcm94eShwYXRoKQotICAg
ICAgICByZXR1cm4gaWhvb2sucHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlKHBhdGg9cGF0aCwg
cGFyZW50PXBhcmVudCkKLQotCi1kZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlKHBhdGgs
IHBhcmVudCk6Ci0gICAgcmV0dXJuIE1vZHVsZShwYXRoLCBwYXJlbnQpCi0KLQotQGhvb2tpbXBs
KGhvb2t3cmFwcGVyPVRydWUpCi1kZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbShjb2xsZWN0
b3IsIG5hbWUsIG9iaik6Ci0gICAgb3V0Y29tZSA9IHlpZWxkCi0gICAgcmVzID0gb3V0Y29tZS5n
ZXRfcmVzdWx0KCkKLSAgICBpZiByZXMgaXMgbm90IE5vbmU6Ci0gICAgICAgIHJldHVybgotICAg
ICMgbm90aGluZyB3YXMgY29sbGVjdGVkIGVsc2V3aGVyZSwgbGV0J3MgZG8gaXQgaGVyZQotICAg
IGlmIGlzY2xhc3Mob2JqKToKLSAgICAgICAgaWYgY29sbGVjdG9yLmlzdGVzdGNsYXNzKG9iaiwg
bmFtZSk6Ci0gICAgICAgICAgICBDbGFzcyA9IGNvbGxlY3Rvci5fZ2V0Y3VzdG9tY2xhc3MoIkNs
YXNzIikKLSAgICAgICAgICAgIG91dGNvbWUuZm9yY2VfcmVzdWx0KENsYXNzKG5hbWUsIHBhcmVu
dD1jb2xsZWN0b3IpKQotICAgIGVsaWYgY29sbGVjdG9yLmlzdGVzdGZ1bmN0aW9uKG9iaiwgbmFt
ZSk6Ci0gICAgICAgICMgbW9jayBzZWVtcyB0byBzdG9yZSB1bmJvdW5kIG1ldGhvZHMgKGlzc3Vl
NDczKSwgbm9ybWFsaXplIGl0Ci0gICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCAiX19mdW5jX18i
LCBvYmopCi0gICAgICAgICMgV2UgbmVlZCB0byB0cnkgYW5kIHVud3JhcCB0aGUgZnVuY3Rpb24g
aWYgaXQncyBhIGZ1bmN0b29scy5wYXJ0aWFsCi0gICAgICAgICMgb3IgYSBmdW50b29scy53cmFw
cGVkLgotICAgICAgICAjIFdlIG11c24ndCBpZiBpdCdzIGJlZW4gd3JhcHBlZCB3aXRoIG1vY2su
cGF0Y2ggKHB5dGhvbiAyIG9ubHkpCi0gICAgICAgIGlmIG5vdCAoaXNmdW5jdGlvbihvYmopIG9y
IGlzZnVuY3Rpb24oZ2V0X3JlYWxfZnVuYyhvYmopKSk6Ci0gICAgICAgICAgICBjb2xsZWN0b3Iu
d2Fybihjb2RlPSJDMiIsIG1lc3NhZ2U9ImNhbm5vdCBjb2xsZWN0ICVyIGJlY2F1c2UgaXQgaXMg
bm90IGEgZnVuY3Rpb24uIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBuYW1lLCApCi0g
ICAgICAgIGVsaWYgZ2V0YXR0cihvYmosICJfX3Rlc3RfXyIsIFRydWUpOgotICAgICAgICAgICAg
aWYgaXNfZ2VuZXJhdG9yKG9iaik6Ci0gICAgICAgICAgICAgICAgcmVzID0gR2VuZXJhdG9yKG5h
bWUsIHBhcmVudD1jb2xsZWN0b3IpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IHJlcyA9IGxpc3QoY29sbGVjdG9yLl9nZW5mdW5jdGlvbnMobmFtZSwgb2JqKSkKLSAgICAgICAg
ICAgIG91dGNvbWUuZm9yY2VfcmVzdWx0KHJlcykKLQotCi1kZWYgcHl0ZXN0X21ha2VfcGFyYW1l
dHJpemVfaWQoY29uZmlnLCB2YWwsIGFyZ25hbWU9Tm9uZSk6Ci0gICAgcmV0dXJuIE5vbmUKLQot
Ci1jbGFzcyBQeW9iakNvbnRleHQob2JqZWN0KToKLSAgICBtb2R1bGUgPSBweW9ial9wcm9wZXJ0
eSgiTW9kdWxlIikKLSAgICBjbHMgPSBweW9ial9wcm9wZXJ0eSgiQ2xhc3MiKQotICAgIGluc3Rh
bmNlID0gcHlvYmpfcHJvcGVydHkoIkluc3RhbmNlIikKLQotCi1jbGFzcyBQeW9iak1peGluKFB5
b2JqQ29udGV4dCk6Ci0gICAgZGVmIG9iaigpOgotICAgICAgICBkZWYgZmdldChzZWxmKToKLSAg
ICAgICAgICAgIG9iaiA9IGdldGF0dHIoc2VsZiwgJ19vYmonLCBOb25lKQotICAgICAgICAgICAg
aWYgb2JqIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fb2JqID0gb2JqID0gc2VsZi5f
Z2V0b2JqKCkKLSAgICAgICAgICAgIHJldHVybiBvYmoKLQotICAgICAgICBkZWYgZnNldChzZWxm
LCB2YWx1ZSk6Ci0gICAgICAgICAgICBzZWxmLl9vYmogPSB2YWx1ZQotCi0gICAgICAgIHJldHVy
biBwcm9wZXJ0eShmZ2V0LCBmc2V0LCBOb25lLCAidW5kZXJseWluZyBweXRob24gb2JqZWN0IikK
LQotICAgIG9iaiA9IG9iaigpCi0KLSAgICBkZWYgX2dldG9iaihzZWxmKToKLSAgICAgICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5wYXJlbnQub2JqLCBzZWxmLm5hbWUpCi0KLSAgICBkZWYgZ2V0bW9k
cGF0aChzZWxmLCBzdG9wYXRtb2R1bGU9VHJ1ZSwgaW5jbHVkZW1vZHVsZT1GYWxzZSk6Ci0gICAg
ICAgICIiIiByZXR1cm4gcHl0aG9uIHBhdGggcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5pbmcgbW9k
dWxlLiAiIiIKLSAgICAgICAgY2hhaW4gPSBzZWxmLmxpc3RjaGFpbigpCi0gICAgICAgIGNoYWlu
LnJldmVyc2UoKQotICAgICAgICBwYXJ0cyA9IFtdCi0gICAgICAgIGZvciBub2RlIGluIGNoYWlu
OgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlLCBJbnN0YW5jZSk6Ci0gICAgICAgICAg
ICAgICAgY29udGludWUKLSAgICAgICAgICAgIG5hbWUgPSBub2RlLm5hbWUKLSAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2Uobm9kZSwgTW9kdWxlKToKLSAgICAgICAgICAgICAgICBuYW1lID0gb3Mu
cGF0aC5zcGxpdGV4dChuYW1lKVswXQotICAgICAgICAgICAgICAgIGlmIHN0b3BhdG1vZHVsZToK
LSAgICAgICAgICAgICAgICAgICAgaWYgaW5jbHVkZW1vZHVsZToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHBhcnRzLmFwcGVuZChuYW1lKQotICAgICAgICAgICAgICAgICAgICBicmVhawotICAg
ICAgICAgICAgcGFydHMuYXBwZW5kKG5hbWUpCi0gICAgICAgIHBhcnRzLnJldmVyc2UoKQotICAg
ICAgICBzID0gIi4iLmpvaW4ocGFydHMpCi0gICAgICAgIHJldHVybiBzLnJlcGxhY2UoIi5bIiwg
IlsiKQotCi0gICAgZGVmIF9nZXRmc2xpbmVubyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGdldGZz
bGluZW5vKHNlbGYub2JqKQotCi0gICAgZGVmIHJlcG9ydGluZm8oc2VsZik6Ci0gICAgICAgICMg
WFhYIGNhY2hpbmc/Ci0gICAgICAgIG9iaiA9IHNlbGYub2JqCi0gICAgICAgIGNvbXBhdF9jb19m
aXJzdGxpbmVubyA9IGdldGF0dHIob2JqLCAnY29tcGF0X2NvX2ZpcnN0bGluZW5vJywgTm9uZSkK
LSAgICAgICAgaWYgaXNpbnN0YW5jZShjb21wYXRfY29fZmlyc3RsaW5lbm8sIGludCk6Ci0gICAg
ICAgICAgICAjIG5vc2UgY29tcGF0aWJpbGl0eQotICAgICAgICAgICAgZnNwYXRoID0gc3lzLm1v
ZHVsZXNbb2JqLl9fbW9kdWxlX19dLl9fZmlsZV9fCi0gICAgICAgICAgICBpZiBmc3BhdGguZW5k
c3dpdGgoIi5weWMiKToKLSAgICAgICAgICAgICAgICBmc3BhdGggPSBmc3BhdGhbOi0xXQotICAg
ICAgICAgICAgbGluZW5vID0gY29tcGF0X2NvX2ZpcnN0bGluZW5vCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBmc3BhdGgsIGxpbmVubyA9IGdldGZzbGluZW5vKG9iaikKLSAgICAgICAgbW9k
cGF0aCA9IHNlbGYuZ2V0bW9kcGF0aCgpCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmVu
bywgaW50KQotICAgICAgICByZXR1cm4gZnNwYXRoLCBsaW5lbm8sIG1vZHBhdGgKLQotCi1jbGFz
cyBQeUNvbGxlY3RvcihQeW9iak1peGluLCBtYWluLkNvbGxlY3Rvcik6Ci0KLSAgICBkZWYgZnVu
Y25hbWVmaWx0ZXIoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9tYXRjaGVzX3By
ZWZpeF9vcl9nbG9iX29wdGlvbigncHl0aG9uX2Z1bmN0aW9ucycsIG5hbWUpCi0KLSAgICBkZWYg
aXNub3NldGVzdChzZWxmLCBvYmopOgotICAgICAgICAiIiIgTG9vayBmb3IgdGhlIF9fdGVzdF9f
IGF0dHJpYnV0ZSwgd2hpY2ggaXMgYXBwbGllZCBieSB0aGUKLSAgICAgICAgQG5vc2UudG9vbHMu
aXN0ZXN0IGRlY29yYXRvcgotICAgICAgICAiIiIKLSAgICAgICAgIyBXZSBleHBsaWNpdGx5IGNo
ZWNrIGZvciAiaXMgVHJ1ZSIgaGVyZSB0byBub3QgbWlzdGFrZW5seSB0cmVhdAotICAgICAgICAj
IGNsYXNzZXMgd2l0aCBhIGN1c3RvbSBfX2dldGF0dHJfXyByZXR1cm5pbmcgc29tZXRoaW5nIHRy
dXRoeSAobGlrZSBhCi0gICAgICAgICMgZnVuY3Rpb24pIGFzIHRlc3QgY2xhc3Nlcy4KLSAgICAg
ICAgcmV0dXJuIHNhZmVfZ2V0YXR0cihvYmosICdfX3Rlc3RfXycsIEZhbHNlKSBpcyBUcnVlCi0K
LSAgICBkZWYgY2xhc3NuYW1lZmlsdGVyKHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5fbWF0Y2hlc19wcmVmaXhfb3JfZ2xvYl9vcHRpb24oJ3B5dGhvbl9jbGFzc2VzJywgbmFtZSkK
LQotICAgIGRlZiBpc3Rlc3RmdW5jdGlvbihzZWxmLCBvYmosIG5hbWUpOgotICAgICAgICBpZiBz
ZWxmLmZ1bmNuYW1lZmlsdGVyKG5hbWUpIG9yIHNlbGYuaXNub3NldGVzdChvYmopOgotICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZShvYmosIHN0YXRpY21ldGhvZCk6Ci0gICAgICAgICAgICAgICAg
IyBzdGF0aWMgbWV0aG9kcyBuZWVkIHRvIGJlIHVud3JhcHBlZAotICAgICAgICAgICAgICAgIG9i
aiA9IHNhZmVfZ2V0YXR0cihvYmosICdfX2Z1bmNfXycsIEZhbHNlKQotICAgICAgICAgICAgICAg
IGlmIG9iaiBpcyBGYWxzZToKLSAgICAgICAgICAgICAgICAgICAgIyBQeXRob24gMi42IHdyYXBz
IGluIGEgZGlmZmVyZW50IHdheSB0aGF0IHdlIHdvbid0IHRyeSB0byBoYW5kbGUKLSAgICAgICAg
ICAgICAgICAgICAgbXNnID0gImNhbm5vdCBjb2xsZWN0IHN0YXRpYyBtZXRob2QgJXIgYmVjYXVz
ZSAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIml0IGlzIG5vdCBhIGZ1bmN0aW9uIChh
bHdheXMgdGhlIGNhc2UgaW4gUHl0aG9uIDIuNikiCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu
d2FybigKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU9IkMyIiwgbWVzc2FnZT1tc2cgJSBu
YW1lKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIHJldHVy
biAoCi0gICAgICAgICAgICAgICAgc2FmZV9nZXRhdHRyKG9iaiwgIl9fY2FsbF9fIiwgRmFsc2Up
IGFuZCBmaXh0dXJlcy5nZXRmaXh0dXJlbWFya2VyKG9iaikgaXMgTm9uZQotICAgICAgICAgICAg
KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgaXN0
ZXN0Y2xhc3Moc2VsZiwgb2JqLCBuYW1lKToKLSAgICAgICAgcmV0dXJuIHNlbGYuY2xhc3NuYW1l
ZmlsdGVyKG5hbWUpIG9yIHNlbGYuaXNub3NldGVzdChvYmopCi0KLSAgICBkZWYgX21hdGNoZXNf
cHJlZml4X29yX2dsb2Jfb3B0aW9uKHNlbGYsIG9wdGlvbl9uYW1lLCBuYW1lKToKLSAgICAgICAg
IiIiCi0gICAgICAgIGNoZWNrcyBpZiB0aGUgZ2l2ZW4gbmFtZSBtYXRjaGVzIHRoZSBwcmVmaXgg
b3IgZ2xvYi1wYXR0ZXJuIGRlZmluZWQKLSAgICAgICAgaW4gaW5pIGNvbmZpZ3VyYXRpb24uCi0g
ICAgICAgICIiIgotICAgICAgICBmb3Igb3B0aW9uIGluIHNlbGYuY29uZmlnLmdldGluaShvcHRp
b25fbmFtZSk6Ci0gICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgob3B0aW9uKToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICAgICAgIyBjaGVjayB0aGF0IG5hbWUgbG9v
a3MgbGlrZSBhIGdsb2Itc3RyaW5nIGJlZm9yZSBjYWxsaW5nIGZubWF0Y2gKLSAgICAgICAgICAg
ICMgYmVjYXVzZSB0aGlzIGlzIGNhbGxlZCBmb3IgZXZlcnkgbmFtZSBpbiBlYWNoIGNvbGxlY3Rl
ZCBtb2R1bGUsCi0gICAgICAgICAgICAjIGFuZCBmbm1hdGNoIGlzIHNvbWV3aGF0IGV4cGVuc2l2
ZSB0byBjYWxsCi0gICAgICAgICAgICBlbGlmICgnKicgaW4gb3B0aW9uIG9yICc/JyBpbiBvcHRp
b24gb3IgJ1snIGluIG9wdGlvbikgYW5kIFwKLSAgICAgICAgICAgICAgICAgICAgZm5tYXRjaC5m
bm1hdGNoKG5hbWUsIG9wdGlvbik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAg
ICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgY29sbGVjdChzZWxmKToKLSAgICAgICAgaWYgbm90
IGdldGF0dHIoc2VsZi5vYmosICJfX3Rlc3RfXyIsIFRydWUpOgotICAgICAgICAgICAgcmV0dXJu
IFtdCi0KLSAgICAgICAgIyBOQi4gd2UgYXZvaWQgcmFuZG9tIGdldGF0dHJzIGFuZCBwZWVrIGlu
IHRoZSBfX2RpY3RfXyBpbnN0ZWFkCi0gICAgICAgICMgKFhYWCBvcmlnaW5hbGx5IGludHJvZHVj
ZWQgZnJvbSBhIFB5UHkgbmVlZCwgc3RpbGwgdHJ1ZT8pCi0gICAgICAgIGRpY3RzID0gW2dldGF0
dHIoc2VsZi5vYmosICdfX2RpY3RfXycsIHt9KV0KLSAgICAgICAgZm9yIGJhc2VjbHMgaW4gaW5z
cGVjdC5nZXRtcm8oc2VsZi5vYmouX19jbGFzc19fKToKLSAgICAgICAgICAgIGRpY3RzLmFwcGVu
ZChiYXNlY2xzLl9fZGljdF9fKQotICAgICAgICBzZWVuID0ge30KLSAgICAgICAgdmFsdWVzID0g
W10KLSAgICAgICAgZm9yIGRpYyBpbiBkaWN0czoKLSAgICAgICAgICAgIGZvciBuYW1lLCBvYmog
aW4gbGlzdChkaWMuaXRlbXMoKSk6Ci0gICAgICAgICAgICAgICAgaWYgbmFtZSBpbiBzZWVuOgot
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgIHNlZW5bbmFtZV0g
PSBUcnVlCi0gICAgICAgICAgICAgICAgcmVzID0gc2VsZi5fbWFrZWl0ZW0obmFtZSwgb2JqKQot
ICAgICAgICAgICAgICAgIGlmIHJlcyBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICBjb250
aW51ZQotICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlcywgbGlzdCk6Ci0gICAg
ICAgICAgICAgICAgICAgIHJlcyA9IFtyZXNdCi0gICAgICAgICAgICAgICAgdmFsdWVzLmV4dGVu
ZChyZXMpCi0gICAgICAgIHZhbHVlcy5zb3J0KGtleT1sYW1iZGEgaXRlbTogaXRlbS5yZXBvcnRp
bmZvKClbOjJdKQotICAgICAgICByZXR1cm4gdmFsdWVzCi0KLSAgICBkZWYgbWFrZWl0ZW0oc2Vs
ZiwgbmFtZSwgb2JqKToKLSAgICAgICAgd2FybmluZ3Mud2FybihkZXByZWNhdGVkLkNPTExFQ1RP
Ul9NQUtFSVRFTSwgc3RhY2tsZXZlbD0yKQotICAgICAgICBzZWxmLl9tYWtlaXRlbShuYW1lLCBv
YmopCi0KLSAgICBkZWYgX21ha2VpdGVtKHNlbGYsIG5hbWUsIG9iaik6Ci0gICAgICAgICMgYXNz
ZXJ0IHNlbGYuaWhvb2suZnNwYXRoID09IHNlbGYuZnNwYXRoLCBzZWxmCi0gICAgICAgIHJldHVy
biBzZWxmLmlob29rLnB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oCi0gICAgICAgICAgICBjb2xs
ZWN0b3I9c2VsZiwgbmFtZT1uYW1lLCBvYmo9b2JqKQotCi0gICAgZGVmIF9nZW5mdW5jdGlvbnMo
c2VsZiwgbmFtZSwgZnVuY29iaik6Ci0gICAgICAgIG1vZHVsZSA9IHNlbGYuZ2V0cGFyZW50KE1v
ZHVsZSkub2JqCi0gICAgICAgIGNsc2NvbCA9IHNlbGYuZ2V0cGFyZW50KENsYXNzKQotICAgICAg
ICBjbHMgPSBjbHNjb2wgYW5kIGNsc2NvbC5vYmogb3IgTm9uZQotICAgICAgICB0cmFuc2Zlcl9t
YXJrZXJzKGZ1bmNvYmosIGNscywgbW9kdWxlKQotICAgICAgICBmbSA9IHNlbGYuc2Vzc2lvbi5f
Zml4dHVyZW1hbmFnZXIKLSAgICAgICAgZml4dHVyZWluZm8gPSBmbS5nZXRmaXh0dXJlaW5mbyhz
ZWxmLCBmdW5jb2JqLCBjbHMpCi0gICAgICAgIG1ldGFmdW5jID0gTWV0YWZ1bmMoZnVuY29iaiwg
Zml4dHVyZWluZm8sIHNlbGYuY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
cz1jbHMsIG1vZHVsZT1tb2R1bGUpCi0gICAgICAgIG1ldGhvZHMgPSBbXQotICAgICAgICBpZiBo
YXNhdHRyKG1vZHVsZSwgInB5dGVzdF9nZW5lcmF0ZV90ZXN0cyIpOgotICAgICAgICAgICAgbWV0
aG9kcy5hcHBlbmQobW9kdWxlLnB5dGVzdF9nZW5lcmF0ZV90ZXN0cykKLSAgICAgICAgaWYgaGFz
YXR0cihjbHMsICJweXRlc3RfZ2VuZXJhdGVfdGVzdHMiKToKLSAgICAgICAgICAgIG1ldGhvZHMu
YXBwZW5kKGNscygpLnB5dGVzdF9nZW5lcmF0ZV90ZXN0cykKLSAgICAgICAgaWYgbWV0aG9kczoK
LSAgICAgICAgICAgIHNlbGYuaWhvb2sucHl0ZXN0X2dlbmVyYXRlX3Rlc3RzLmNhbGxfZXh0cmEo
bWV0aG9kcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGljdChtZXRhZnVuYz1tZXRhZnVuYykpCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBzZWxmLmlob29rLnB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYz1tZXRhZnVuYykK
LQotICAgICAgICBGdW5jdGlvbiA9IHNlbGYuX2dldGN1c3RvbWNsYXNzKCJGdW5jdGlvbiIpCi0g
ICAgICAgIGlmIG5vdCBtZXRhZnVuYy5fY2FsbHM6Ci0gICAgICAgICAgICB5aWVsZCBGdW5jdGlv
bihuYW1lLCBwYXJlbnQ9c2VsZiwgZml4dHVyZWluZm89Zml4dHVyZWluZm8pCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAjIGFkZCBmdW5jYXJncygpIGFzIGZpeHR1cmVkZWZzIHRvIGZpeHR1
cmVpbmZvLmFyZzJmaXh0dXJlZGVmcwotICAgICAgICAgICAgZml4dHVyZXMuYWRkX2Z1bmNhcmdf
cHNldWRvX2ZpeHR1cmVfZGVmKHNlbGYsIG1ldGFmdW5jLCBmbSkKLQotICAgICAgICAgICAgZm9y
IGNhbGxzcGVjIGluIG1ldGFmdW5jLl9jYWxsczoKLSAgICAgICAgICAgICAgICBzdWJuYW1lID0g
IiVzWyVzXSIgJSAobmFtZSwgY2FsbHNwZWMuaWQpCi0gICAgICAgICAgICAgICAgeWllbGQgRnVu
Y3Rpb24obmFtZT1zdWJuYW1lLCBwYXJlbnQ9c2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYWxsc3BlYz1jYWxsc3BlYywgY2FsbG9iaj1mdW5jb2JqLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpeHR1cmVpbmZvPWZpeHR1cmVpbmZvLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtleXdvcmRzPXtjYWxsc3BlYy5pZDogVHJ1ZX0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxuYW1lPW5hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKQotCi0KLWNsYXNzIE1vZHVsZShtYWluLkZpbGUsIFB5Q29sbGVj
dG9yKToKLSAgICAiIiIgQ29sbGVjdG9yIGZvciB0ZXN0IGNsYXNzZXMgYW5kIGZ1bmN0aW9ucy4g
IiIiCi0KLSAgICBkZWYgX2dldG9iaihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ltcG9y
dHRlc3Rtb2R1bGUoKQotCi0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgIHNlbGYuc2Vz
c2lvbi5fZml4dHVyZW1hbmFnZXIucGFyc2VmYWN0b3JpZXMoc2VsZikKLSAgICAgICAgcmV0dXJu
IHN1cGVyKE1vZHVsZSwgc2VsZikuY29sbGVjdCgpCi0KLSAgICBkZWYgX2ltcG9ydHRlc3Rtb2R1
bGUoc2VsZik6Ci0gICAgICAgICMgd2UgYXNzdW1lIHdlIGFyZSBvbmx5IGNhbGxlZCBvbmNlIHBl
ciBtb2R1bGUKLSAgICAgICAgaW1wb3J0bW9kZSA9IHNlbGYuY29uZmlnLmdldG9wdGlvbigiLS1p
bXBvcnQtbW9kZSIpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG1vZCA9IHNlbGYuZnNwYXRo
LnB5aW1wb3J0KGVuc3VyZXN5c3BhdGg9aW1wb3J0bW9kZSkKLSAgICAgICAgZXhjZXB0IFN5bnRh
eEVycm9yOgotICAgICAgICAgICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3IoCi0gICAgICAgICAg
ICAgICAgX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkuZ2V0cmVwcihzdHlsZT0ic2hvcnQi
KSkKLSAgICAgICAgZXhjZXB0IHNlbGYuZnNwYXRoLkltcG9ydE1pc21hdGNoRXJyb3I6Ci0gICAg
ICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClbMV0KLSAgICAgICAgICAgIHJhaXNlIHNlbGYuQ29s
bGVjdEVycm9yKAotICAgICAgICAgICAgICAgICJpbXBvcnQgZmlsZSBtaXNtYXRjaDpcbiIKLSAg
ICAgICAgICAgICAgICAiaW1wb3J0ZWQgbW9kdWxlICVyIGhhcyB0aGlzIF9fZmlsZV9fIGF0dHJp
YnV0ZTpcbiIKLSAgICAgICAgICAgICAgICAiICAlc1xuIgotICAgICAgICAgICAgICAgICJ3aGlj
aCBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIHRlc3QgZmlsZSB3ZSB3YW50IHRvIGNvbGxlY3Q6XG4i
Ci0gICAgICAgICAgICAgICAgIiAgJXNcbiIKLSAgICAgICAgICAgICAgICAiSElOVDogcmVtb3Zl
IF9fcHljYWNoZV9fIC8gLnB5YyBmaWxlcyBhbmQvb3IgdXNlIGEgIgotICAgICAgICAgICAgICAg
ICJ1bmlxdWUgYmFzZW5hbWUgZm9yIHlvdXIgdGVzdCBmaWxlIG1vZHVsZXMiCi0gICAgICAgICAg
ICAgICAgJSBlLmFyZ3MKLSAgICAgICAgICAgICkKLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9y
OgotICAgICAgICAgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IEV4Y2VwdGlvbklu
Zm8KLSAgICAgICAgICAgIGV4Y19pbmZvID0gRXhjZXB0aW9uSW5mbygpCi0gICAgICAgICAgICBp
ZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24oJ3ZlcmJvc2UnKSA8IDI6Ci0gICAgICAgICAgICAgICAg
ZXhjX2luZm8udHJhY2ViYWNrID0gZXhjX2luZm8udHJhY2ViYWNrLmZpbHRlcihmaWx0ZXJfdHJh
Y2ViYWNrKQotICAgICAgICAgICAgZXhjX3JlcHIgPSBleGNfaW5mby5nZXRyZXByKHN0eWxlPSdz
aG9ydCcpIGlmIGV4Y19pbmZvLnRyYWNlYmFjayBlbHNlIGV4Y19pbmZvLmV4Y29ubHkoKQotICAg
ICAgICAgICAgZm9ybWF0dGVkX3RiID0gc2FmZV9zdHIoZXhjX3JlcHIpCi0gICAgICAgICAgICBy
YWlzZSBzZWxmLkNvbGxlY3RFcnJvcigKLSAgICAgICAgICAgICAgICAiSW1wb3J0RXJyb3Igd2hp
bGUgaW1wb3J0aW5nIHRlc3QgbW9kdWxlICd7ZnNwYXRofScuXG4iCi0gICAgICAgICAgICAgICAg
IkhpbnQ6IG1ha2Ugc3VyZSB5b3VyIHRlc3QgbW9kdWxlcy9wYWNrYWdlcyBoYXZlIHZhbGlkIFB5
dGhvbiBuYW1lcy5cbiIKLSAgICAgICAgICAgICAgICAiVHJhY2ViYWNrOlxuIgotICAgICAgICAg
ICAgICAgICJ7dHJhY2ViYWNrfSIuZm9ybWF0KGZzcGF0aD1zZWxmLmZzcGF0aCwgdHJhY2ViYWNr
PWZvcm1hdHRlZF90YikKLSAgICAgICAgICAgICkKLSAgICAgICAgZXhjZXB0IF9weXRlc3QucnVu
bmVyLlNraXBwZWQgYXMgZToKLSAgICAgICAgICAgIGlmIGUuYWxsb3dfbW9kdWxlX2xldmVsOgot
ICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICByYWlzZSBzZWxmLkNvbGxlY3RFcnJv
cigKLSAgICAgICAgICAgICAgICAiVXNpbmcgcHl0ZXN0LnNraXAgb3V0c2lkZSBvZiBhIHRlc3Qg
aXMgbm90IGFsbG93ZWQuICIKLSAgICAgICAgICAgICAgICAiVG8gZGVjb3JhdGUgYSB0ZXN0IGZ1
bmN0aW9uLCB1c2UgdGhlIEBweXRlc3QubWFyay5za2lwICIKLSAgICAgICAgICAgICAgICAib3Ig
QHB5dGVzdC5tYXJrLnNraXBpZiBkZWNvcmF0b3JzIGluc3RlYWQsIGFuZCB0byBza2lwIGEgIgot
ICAgICAgICAgICAgICAgICJtb2R1bGUgdXNlIGBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsue3Nr
aXAsc2tpcGlmfS4iCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuY29uZmlnLnBsdWdpbm1h
bmFnZXIuY29uc2lkZXJfbW9kdWxlKG1vZCkKLSAgICAgICAgcmV0dXJuIG1vZAotCi0gICAgZGVm
IHNldHVwKHNlbGYpOgotICAgICAgICBzZXR1cF9tb2R1bGUgPSBfZ2V0X3h1bml0X3NldHVwX3Rl
YXJkb3duKHNlbGYub2JqLCAic2V0VXBNb2R1bGUiKQotICAgICAgICBpZiBzZXR1cF9tb2R1bGUg
aXMgTm9uZToKLSAgICAgICAgICAgIHNldHVwX21vZHVsZSA9IF9nZXRfeHVuaXRfc2V0dXBfdGVh
cmRvd24oc2VsZi5vYmosICJzZXR1cF9tb2R1bGUiKQotICAgICAgICBpZiBzZXR1cF9tb2R1bGUg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZXR1cF9tb2R1bGUoKQotCi0gICAgICAgIHRlYXJk
b3duX21vZHVsZSA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24oc2VsZi5vYmosICd0ZWFyRG93
bk1vZHVsZScpCi0gICAgICAgIGlmIHRlYXJkb3duX21vZHVsZSBpcyBOb25lOgotICAgICAgICAg
ICAgdGVhcmRvd25fbW9kdWxlID0gX2dldF94dW5pdF9zZXR1cF90ZWFyZG93bihzZWxmLm9iaiwg
J3RlYXJkb3duX21vZHVsZScpCi0gICAgICAgIGlmIHRlYXJkb3duX21vZHVsZSBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIHNlbGYuYWRkZmluYWxpemVyKHRlYXJkb3duX21vZHVsZSkKLQotCi1k
ZWYgX2dldF94dW5pdF9zZXR1cF90ZWFyZG93bihob2xkZXIsIGF0dHJfbmFtZSwgcGFyYW1fb2Jq
PU5vbmUpOgotICAgICIiIgotICAgIFJldHVybiBhIGNhbGxhYmxlIHRvIHBlcmZvcm0geHVuaXQt
c3R5bGUgc2V0dXAgb3IgdGVhcmRvd24gaWYKLSAgICB0aGUgZnVuY3Rpb24gZXhpc3RzIGluIHRo
ZSBgYGhvbGRlcmBgIG9iamVjdC4KLSAgICBUaGUgYGBwYXJhbV9vYmpgYCBwYXJhbWV0ZXIgaXMg
dGhlIHBhcmFtZXRlciB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24KLSAgICB3
aGVuIHRoZSBjYWxsYWJsZSBpcyBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMsIGRlZmF1bHRzIHRv
IHRoZSBgYGhvbGRlcmBgIG9iamVjdC4KLSAgICBSZXR1cm4gYGBOb25lYGAgaWYgYSBzdWl0YWJs
ZSBjYWxsYWJsZSBpcyBub3QgZm91bmQuCi0gICAgIiIiCi0gICAgcGFyYW1fb2JqID0gcGFyYW1f
b2JqIGlmIHBhcmFtX29iaiBpcyBub3QgTm9uZSBlbHNlIGhvbGRlcgotICAgIHJlc3VsdCA9IF9n
ZXRfeHVuaXRfZnVuYyhob2xkZXIsIGF0dHJfbmFtZSkKLSAgICBpZiByZXN1bHQgaXMgbm90IE5v
bmU6Ci0gICAgICAgIGFyZ19jb3VudCA9IHJlc3VsdC5fX2NvZGVfXy5jb19hcmdjb3VudAotICAg
ICAgICBpZiBpbnNwZWN0LmlzbWV0aG9kKHJlc3VsdCk6Ci0gICAgICAgICAgICBhcmdfY291bnQg
LT0gMQotICAgICAgICBpZiBhcmdfY291bnQ6Ci0gICAgICAgICAgICByZXR1cm4gbGFtYmRhOiBy
ZXN1bHQocGFyYW1fb2JqKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dAotCi0KLWRlZiBfZ2V0X3h1bml0X2Z1bmMob2JqLCBuYW1lKToKLSAgICAiIiJSZXR1cm4gdGhl
IGF0dHJpYnV0ZSBmcm9tIHRoZSBnaXZlbiBvYmplY3QgdG8gYmUgdXNlZCBhcyBhIHNldHVwL3Rl
YXJkb3duCi0gICAgeHVuaXQtc3R5bGUgZnVuY3Rpb24sIGJ1dCBvbmx5IGlmIG5vdCBtYXJrZWQg
YXMgYSBmaXh0dXJlIHRvCi0gICAgYXZvaWQgY2FsbGluZyBpdCB0d2ljZS4KLSAgICAiIiIKLSAg
ICBtZXRoID0gZ2V0YXR0cihvYmosIG5hbWUsIE5vbmUpCi0gICAgaWYgZml4dHVyZXMuZ2V0Zml4
dHVyZW1hcmtlcihtZXRoKSBpcyBOb25lOgotICAgICAgICByZXR1cm4gbWV0aAotCi0KLWNsYXNz
IENsYXNzKFB5Q29sbGVjdG9yKToKLSAgICAiIiIgQ29sbGVjdG9yIGZvciB0ZXN0IG1ldGhvZHMu
ICIiIgotCi0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzYWZlX2dldGF0
dHIoc2VsZi5vYmosICJfX3Rlc3RfXyIsIFRydWUpOgotICAgICAgICAgICAgcmV0dXJuIFtdCi0g
ICAgICAgIGlmIGhhc2luaXQoc2VsZi5vYmopOgotICAgICAgICAgICAgc2VsZi53YXJuKCJDMSIs
ICJjYW5ub3QgY29sbGVjdCB0ZXN0IGNsYXNzICVyIGJlY2F1c2UgaXQgaGFzIGEgIgotICAgICAg
ICAgICAgICAgICAgICAgICJfX2luaXRfXyBjb25zdHJ1Y3RvciIgJSBzZWxmLm9iai5fX25hbWVf
XykKLSAgICAgICAgICAgIHJldHVybiBbXQotICAgICAgICBlbGlmIGhhc25ldyhzZWxmLm9iaik6
Ci0gICAgICAgICAgICBzZWxmLndhcm4oIkMxIiwgImNhbm5vdCBjb2xsZWN0IHRlc3QgY2xhc3Mg
JXIgYmVjYXVzZSBpdCBoYXMgYSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fbmV3
X18gY29uc3RydWN0b3IiICUgc2VsZi5vYmouX19uYW1lX18pCi0gICAgICAgICAgICByZXR1cm4g
W10KLSAgICAgICAgcmV0dXJuIFtzZWxmLl9nZXRjdXN0b21jbGFzcygiSW5zdGFuY2UiKShuYW1l
PSIoKSIsIHBhcmVudD1zZWxmKV0KLQotICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgc2V0
dXBfY2xhc3MgPSBfZ2V0X3h1bml0X2Z1bmMoc2VsZi5vYmosICdzZXR1cF9jbGFzcycpCi0gICAg
ICAgIGlmIHNldHVwX2NsYXNzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2V0dXBfY2xhc3Mg
PSBnZXRhdHRyKHNldHVwX2NsYXNzLCAnaW1fZnVuYycsIHNldHVwX2NsYXNzKQotICAgICAgICAg
ICAgc2V0dXBfY2xhc3MgPSBnZXRhdHRyKHNldHVwX2NsYXNzLCAnX19mdW5jX18nLCBzZXR1cF9j
bGFzcykKLSAgICAgICAgICAgIHNldHVwX2NsYXNzKHNlbGYub2JqKQotCi0gICAgICAgIGZpbl9j
bGFzcyA9IGdldGF0dHIoc2VsZi5vYmosICd0ZWFyZG93bl9jbGFzcycsIE5vbmUpCi0gICAgICAg
IGlmIGZpbl9jbGFzcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZpbl9jbGFzcyA9IGdldGF0
dHIoZmluX2NsYXNzLCAnaW1fZnVuYycsIGZpbl9jbGFzcykKLSAgICAgICAgICAgIGZpbl9jbGFz
cyA9IGdldGF0dHIoZmluX2NsYXNzLCAnX19mdW5jX18nLCBmaW5fY2xhc3MpCi0gICAgICAgICAg
ICBzZWxmLmFkZGZpbmFsaXplcihsYW1iZGE6IGZpbl9jbGFzcyhzZWxmLm9iaikpCi0KLQotY2xh
c3MgSW5zdGFuY2UoUHlDb2xsZWN0b3IpOgotICAgIGRlZiBfZ2V0b2JqKHNlbGYpOgotICAgICAg
ICByZXR1cm4gc2VsZi5wYXJlbnQub2JqKCkKLQotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAg
ICAgICBzZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyLnBhcnNlZmFjdG9yaWVzKHNlbGYpCi0g
ICAgICAgIHJldHVybiBzdXBlcihJbnN0YW5jZSwgc2VsZikuY29sbGVjdCgpCi0KLSAgICBkZWYg
bmV3aW5zdGFuY2Uoc2VsZik6Ci0gICAgICAgIHNlbGYub2JqID0gc2VsZi5fZ2V0b2JqKCkKLSAg
ICAgICAgcmV0dXJuIHNlbGYub2JqCi0KLQotY2xhc3MgRnVuY3Rpb25NaXhpbihQeW9iak1peGlu
KToKLSAgICAiIiIgbWl4aW4gZm9yIHRoZSBjb2RlIGNvbW1vbiB0byBGdW5jdGlvbiBhbmQgR2Vu
ZXJhdG9yLgotICAgICIiIgotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICAiIiIgcGVy
Zm9ybSBzZXR1cCBmb3IgdGhpcyB0ZXN0IGZ1bmN0aW9uLiAiIiIKLSAgICAgICAgaWYgaGFzYXR0
cihzZWxmLCAnX3ByZXNlcnZlZHBhcmVudCcpOgotICAgICAgICAgICAgb2JqID0gc2VsZi5fcHJl
c2VydmVkcGFyZW50Ci0gICAgICAgIGVsaWYgaXNpbnN0YW5jZShzZWxmLnBhcmVudCwgSW5zdGFu
Y2UpOgotICAgICAgICAgICAgb2JqID0gc2VsZi5wYXJlbnQubmV3aW5zdGFuY2UoKQotICAgICAg
ICAgICAgc2VsZi5vYmogPSBzZWxmLl9nZXRvYmooKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgb2JqID0gc2VsZi5wYXJlbnQub2JqCi0gICAgICAgIGlmIGluc3BlY3QuaXNtZXRob2Qoc2Vs
Zi5vYmopOgotICAgICAgICAgICAgc2V0dXBfbmFtZSA9ICdzZXR1cF9tZXRob2QnCi0gICAgICAg
ICAgICB0ZWFyZG93bl9uYW1lID0gJ3RlYXJkb3duX21ldGhvZCcKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNldHVwX25hbWUgPSAnc2V0dXBfZnVuY3Rpb24nCi0gICAgICAgICAgICB0ZWFy
ZG93bl9uYW1lID0gJ3RlYXJkb3duX2Z1bmN0aW9uJwotICAgICAgICBzZXR1cF9mdW5jX29yX21l
dGhvZCA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24ob2JqLCBzZXR1cF9uYW1lLCBwYXJhbV9v
Ymo9c2VsZi5vYmopCi0gICAgICAgIGlmIHNldHVwX2Z1bmNfb3JfbWV0aG9kIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgc2V0dXBfZnVuY19vcl9tZXRob2QoKQotICAgICAgICB0ZWFyZG93bl9m
dW5jX29yX21ldGhvZCA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24ob2JqLCB0ZWFyZG93bl9u
YW1lLCBwYXJhbV9vYmo9c2VsZi5vYmopCi0gICAgICAgIGlmIHRlYXJkb3duX2Z1bmNfb3JfbWV0
aG9kIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5hZGRmaW5hbGl6ZXIodGVhcmRvd25f
ZnVuY19vcl9tZXRob2QpCi0KLSAgICBkZWYgX3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8p
OgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfb2JqJykgYW5kIG5vdCBzZWxmLmNvbmZpZy5v
cHRpb24uZnVsbHRyYWNlOgotICAgICAgICAgICAgY29kZSA9IF9weXRlc3QuX2NvZGUuQ29kZShn
ZXRfcmVhbF9mdW5jKHNlbGYub2JqKSkKLSAgICAgICAgICAgIHBhdGgsIGZpcnN0bGluZW5vID0g
Y29kZS5wYXRoLCBjb2RlLmZpcnN0bGluZW5vCi0gICAgICAgICAgICB0cmFjZWJhY2sgPSBleGNp
bmZvLnRyYWNlYmFjawotICAgICAgICAgICAgbnRyYWNlYmFjayA9IHRyYWNlYmFjay5jdXQocGF0
aD1wYXRoLCBmaXJzdGxpbmVubz1maXJzdGxpbmVubykKLSAgICAgICAgICAgIGlmIG50cmFjZWJh
Y2sgPT0gdHJhY2ViYWNrOgotICAgICAgICAgICAgICAgIG50cmFjZWJhY2sgPSBudHJhY2ViYWNr
LmN1dChwYXRoPXBhdGgpCi0gICAgICAgICAgICAgICAgaWYgbnRyYWNlYmFjayA9PSB0cmFjZWJh
Y2s6Ci0gICAgICAgICAgICAgICAgICAgICMgbnRyYWNlYmFjayA9IG50cmFjZWJhY2suY3V0KGV4
Y2x1ZGVwYXRoPWN1dGRpcjIpCi0gICAgICAgICAgICAgICAgICAgIG50cmFjZWJhY2sgPSBudHJh
Y2ViYWNrLmZpbHRlcihmaWx0ZXJfdHJhY2ViYWNrKQotICAgICAgICAgICAgICAgICAgICBpZiBu
b3QgbnRyYWNlYmFjazoKLSAgICAgICAgICAgICAgICAgICAgICAgIG50cmFjZWJhY2sgPSB0cmFj
ZWJhY2sKLQotICAgICAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSBudHJhY2ViYWNrLmZpbHRl
cigpCi0gICAgICAgICAgICAjIGlzc3VlMzY0OiBtYXJrIGFsbCBidXQgZmlyc3QgYW5kIGxhc3Qg
ZnJhbWVzIHRvCi0gICAgICAgICAgICAjIG9ubHkgc2hvdyBhIHNpbmdsZS1saW5lIG1lc3NhZ2Ug
Zm9yIGVhY2ggZnJhbWUKLSAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi50YnN0eWxl
ID09ICJhdXRvIjoKLSAgICAgICAgICAgICAgICBpZiBsZW4oZXhjaW5mby50cmFjZWJhY2spID4g
MjoKLSAgICAgICAgICAgICAgICAgICAgZm9yIGVudHJ5IGluIGV4Y2luZm8udHJhY2ViYWNrWzE6
LTFdOgotICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkuc2V0X3JlcHJfc3R5bGUoJ3Nob3J0
JykKLQotICAgIGRlZiBfcmVwcl9mYWlsdXJlX3B5KHNlbGYsIGV4Y2luZm8sIHN0eWxlPSJsb25n
Iik6Ci0gICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShmYWlsLkV4Y2VwdGlvbik6Ci0g
ICAgICAgICAgICBpZiBub3QgZXhjaW5mby52YWx1ZS5weXRyYWNlOgotICAgICAgICAgICAgICAg
IHJldHVybiBweS5fYnVpbHRpbi5fdG90ZXh0KGV4Y2luZm8udmFsdWUpCi0gICAgICAgIHJldHVy
biBzdXBlcihGdW5jdGlvbk1peGluLCBzZWxmKS5fcmVwcl9mYWlsdXJlX3B5KGV4Y2luZm8sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0eWxlPXN0eWxlKQotCi0gICAgZGVmIHJlcHJfZmFpbHVyZShzZWxmLCBleGNpbmZvLCBvdXRl
cnI9Tm9uZSk6Ci0gICAgICAgIGFzc2VydCBvdXRlcnIgaXMgTm9uZSwgIlhYWCBvdXRlcnIgdXNh
Z2UgaXMgZGVwcmVjYXRlZCIKLSAgICAgICAgc3R5bGUgPSBzZWxmLmNvbmZpZy5vcHRpb24udGJz
dHlsZQotICAgICAgICBpZiBzdHlsZSA9PSAiYXV0byI6Ci0gICAgICAgICAgICBzdHlsZSA9ICJs
b25nIgotICAgICAgICByZXR1cm4gc2VsZi5fcmVwcl9mYWlsdXJlX3B5KGV4Y2luZm8sIHN0eWxl
PXN0eWxlKQotCi0KLWNsYXNzIEdlbmVyYXRvcihGdW5jdGlvbk1peGluLCBQeUNvbGxlY3Rvcik6
Ci0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgICMgdGVzdCBnZW5lcmF0b3JzIGFyZSBz
ZWVuIGFzIGNvbGxlY3RvcnMgYnV0IHRoZXkgYWxzbwotICAgICAgICAjIGludm9rZSBzZXR1cC90
ZWFyZG93biBvbiBwb3B1bGFyIHJlcXVlc3QKLSAgICAgICAgIyAoaW5kdWNlZCBieSB0aGUgY29t
bW9uICJ0ZXN0XyoiIG5hbWluZyBzaGFyZWQgd2l0aCBub3JtYWwgdGVzdHMpCi0gICAgICAgIGZy
b20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAotICAgICAgICBzZWxmLnNlc3Npb24uX3NldHVw
c3RhdGUucHJlcGFyZShzZWxmKQotICAgICAgICAjIHNlZSBGdW5jdGlvbk1peGluLnNldHVwIGFu
ZCB0ZXN0X3NldHVwc3RhdGVfaXNfcHJlc2VydmVkXzEzNAotICAgICAgICBzZWxmLl9wcmVzZXJ2
ZWRwYXJlbnQgPSBzZWxmLnBhcmVudC5vYmoKLSAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAg
c2VlbiA9IHt9Ci0gICAgICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShzZWxmLm9iaigpKToKLSAg
ICAgICAgICAgIG5hbWUsIGNhbGwsIGFyZ3MgPSBzZWxmLmdldGNhbGxhcmdzKHgpCi0gICAgICAg
ICAgICBpZiBub3QgY2FsbGFibGUoY2FsbCk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVy
cm9yKCIlciB5aWVsZGVkIG5vbiBjYWxsYWJsZSB0ZXN0ICVyIiAlIChzZWxmLm9iaiwgY2FsbCwp
KQotICAgICAgICAgICAgaWYgbmFtZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIG5hbWUgPSAi
WyVkXSIgJSBpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG5hbWUgPSAiWycl
cyddIiAlIG5hbWUKLSAgICAgICAgICAgIGlmIG5hbWUgaW4gc2VlbjoKLSAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCIlciBnZW5lcmF0ZWQgdGVzdHMgd2l0aCBub24tdW5pcXVlIG5h
bWUgJXIiICUgKHNlbGYsIG5hbWUpKQotICAgICAgICAgICAgc2VlbltuYW1lXSA9IFRydWUKLSAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQoc2VsZi5GdW5jdGlvbihuYW1lLCBzZWxmLCBhcmdzPWFy
Z3MsIGNhbGxvYmo9Y2FsbCkpCi0gICAgICAgIHNlbGYud2FybignQzEnLCBkZXByZWNhdGVkLllJ
RUxEX1RFU1RTKQotICAgICAgICByZXR1cm4gdmFsdWVzCi0KLSAgICBkZWYgZ2V0Y2FsbGFyZ3Mo
c2VsZiwgb2JqKToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCAodHVwbGUsIGxpc3Qp
KToKLSAgICAgICAgICAgIG9iaiA9IChvYmosKQotICAgICAgICAjIGV4cGxpY2l0IG5hbWluZwot
ICAgICAgICBpZiBpc2luc3RhbmNlKG9ialswXSwgc2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAg
ICAgICBuYW1lID0gb2JqWzBdCi0gICAgICAgICAgICBvYmogPSBvYmpbMTpdCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBuYW1lID0gTm9uZQotICAgICAgICBjYWxsLCBhcmdzID0gb2JqWzBd
LCBvYmpbMTpdCi0gICAgICAgIHJldHVybiBuYW1lLCBjYWxsLCBhcmdzCi0KLQotZGVmIGhhc2lu
aXQob2JqKToKLSAgICBpbml0ID0gZ2V0YXR0cihvYmosICdfX2luaXRfXycsIE5vbmUpCi0gICAg
aWYgaW5pdDoKLSAgICAgICAgcmV0dXJuIGluaXQgIT0gb2JqZWN0Ll9faW5pdF9fCi0KLQotZGVm
IGhhc25ldyhvYmopOgotICAgIG5ldyA9IGdldGF0dHIob2JqLCAnX19uZXdfXycsIE5vbmUpCi0g
ICAgaWYgbmV3OgotICAgICAgICByZXR1cm4gbmV3ICE9IG9iamVjdC5fX25ld19fCi0KLQotY2xh
c3MgQ2FsbFNwZWMyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGFmdW5jKToK
LSAgICAgICAgc2VsZi5tZXRhZnVuYyA9IG1ldGFmdW5jCi0gICAgICAgIHNlbGYuZnVuY2FyZ3Mg
PSB7fQotICAgICAgICBzZWxmLl9pZGxpc3QgPSBbXQotICAgICAgICBzZWxmLnBhcmFtcyA9IHt9
Ci0gICAgICAgIHNlbGYuX2dsb2JhbGlkID0gTk9UU0VUCi0gICAgICAgIHNlbGYuX2dsb2JhbGlk
X2FyZ3MgPSBzZXQoKQotICAgICAgICBzZWxmLl9nbG9iYWxwYXJhbSA9IE5PVFNFVAotICAgICAg
ICBzZWxmLl9hcmcyc2NvcGVudW0gPSB7fSAgIyB1c2VkIGZvciBzb3J0aW5nIHBhcmFtZXRyaXpl
ZCByZXNvdXJjZXMKLSAgICAgICAgc2VsZi5tYXJrcyA9IFtdCi0gICAgICAgIHNlbGYuaW5kaWNl
cyA9IHt9Ci0KLSAgICBkZWYgY29weShzZWxmLCBtZXRhZnVuYyk6Ci0gICAgICAgIGNzID0gQ2Fs
bFNwZWMyKHNlbGYubWV0YWZ1bmMpCi0gICAgICAgIGNzLmZ1bmNhcmdzLnVwZGF0ZShzZWxmLmZ1
bmNhcmdzKQotICAgICAgICBjcy5wYXJhbXMudXBkYXRlKHNlbGYucGFyYW1zKQotICAgICAgICBj
cy5tYXJrcy5leHRlbmQoc2VsZi5tYXJrcykKLSAgICAgICAgY3MuaW5kaWNlcy51cGRhdGUoc2Vs
Zi5pbmRpY2VzKQotICAgICAgICBjcy5fYXJnMnNjb3BlbnVtLnVwZGF0ZShzZWxmLl9hcmcyc2Nv
cGVudW0pCi0gICAgICAgIGNzLl9pZGxpc3QgPSBsaXN0KHNlbGYuX2lkbGlzdCkKLSAgICAgICAg
Y3MuX2dsb2JhbGlkID0gc2VsZi5fZ2xvYmFsaWQKLSAgICAgICAgY3MuX2dsb2JhbGlkX2FyZ3Mg
PSBzZWxmLl9nbG9iYWxpZF9hcmdzCi0gICAgICAgIGNzLl9nbG9iYWxwYXJhbSA9IHNlbGYuX2ds
b2JhbHBhcmFtCi0gICAgICAgIHJldHVybiBjcwotCi0gICAgZGVmIF9jaGVja2FyZ25vdGNvbnRh
aW5lZChzZWxmLCBhcmcpOgotICAgICAgICBpZiBhcmcgaW4gc2VsZi5wYXJhbXMgb3IgYXJnIGlu
IHNlbGYuZnVuY2FyZ3M6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJkdXBsaWNhdGUg
JXIiICUgKGFyZywpKQotCi0gICAgZGVmIGdldHBhcmFtKHNlbGYsIG5hbWUpOgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJhbXNbbmFtZV0KLSAgICAgICAgZXhjZXB0
IEtleUVycm9yOgotICAgICAgICAgICAgaWYgc2VsZi5fZ2xvYmFscGFyYW0gaXMgTk9UU0VUOgot
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobmFtZSkKLSAgICAgICAgICAgIHJldHVy
biBzZWxmLl9nbG9iYWxwYXJhbQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGlkKHNlbGYpOgot
ICAgICAgICByZXR1cm4gIi0iLmpvaW4obWFwKHN0ciwgZmlsdGVyKE5vbmUsIHNlbGYuX2lkbGlz
dCkpKQotCi0gICAgZGVmIHNldG11bHRpMihzZWxmLCB2YWx0eXBlcywgYXJnbmFtZXMsIHZhbHNl
dCwgaWQsIG1hcmtzLCBzY29wZW51bSwKLSAgICAgICAgICAgICAgICAgIHBhcmFtX2luZGV4KToK
LSAgICAgICAgZm9yIGFyZywgdmFsIGluIHppcChhcmduYW1lcywgdmFsc2V0KToKLSAgICAgICAg
ICAgIHNlbGYuX2NoZWNrYXJnbm90Y29udGFpbmVkKGFyZykKLSAgICAgICAgICAgIHZhbHR5cGVf
Zm9yX2FyZyA9IHZhbHR5cGVzW2FyZ10KLSAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgdmFsdHlw
ZV9mb3JfYXJnKVthcmddID0gdmFsCi0gICAgICAgICAgICBzZWxmLmluZGljZXNbYXJnXSA9IHBh
cmFtX2luZGV4Ci0gICAgICAgICAgICBzZWxmLl9hcmcyc2NvcGVudW1bYXJnXSA9IHNjb3BlbnVt
Ci0gICAgICAgIHNlbGYuX2lkbGlzdC5hcHBlbmQoaWQpCi0gICAgICAgIHNlbGYubWFya3MuZXh0
ZW5kKG1hcmtzKQotCi0gICAgZGVmIHNldGFsbChzZWxmLCBmdW5jYXJncywgaWQsIHBhcmFtKToK
LSAgICAgICAgZm9yIHggaW4gZnVuY2FyZ3M6Ci0gICAgICAgICAgICBzZWxmLl9jaGVja2FyZ25v
dGNvbnRhaW5lZCh4KQotICAgICAgICBzZWxmLmZ1bmNhcmdzLnVwZGF0ZShmdW5jYXJncykKLSAg
ICAgICAgaWYgaWQgaXMgbm90IE5PVFNFVDoKLSAgICAgICAgICAgIHNlbGYuX2lkbGlzdC5hcHBl
bmQoaWQpCi0gICAgICAgIGlmIHBhcmFtIGlzIG5vdCBOT1RTRVQ6Ci0gICAgICAgICAgICBhc3Nl
cnQgc2VsZi5fZ2xvYmFscGFyYW0gaXMgTk9UU0VUCi0gICAgICAgICAgICBzZWxmLl9nbG9iYWxw
YXJhbSA9IHBhcmFtCi0gICAgICAgIGZvciBhcmcgaW4gZnVuY2FyZ3M6Ci0gICAgICAgICAgICBz
ZWxmLl9hcmcyc2NvcGVudW1bYXJnXSA9IGZpeHR1cmVzLnNjb3BlbnVtX2Z1bmN0aW9uCi0KLQot
Y2xhc3MgTWV0YWZ1bmMoZml4dHVyZXMuRnVuY2FyZ25hbWVzQ29tcGF0QXR0cik6Ci0gICAgIiIi
Ci0gICAgTWV0YWZ1bmMgb2JqZWN0cyBhcmUgcGFzc2VkIHRvIHRoZSBgYHB5dGVzdF9nZW5lcmF0
ZV90ZXN0c2BgIGhvb2suCi0gICAgVGhleSBoZWxwIHRvIGluc3BlY3QgYSB0ZXN0IGZ1bmN0aW9u
IGFuZCB0byBnZW5lcmF0ZSB0ZXN0cyBhY2NvcmRpbmcgdG8KLSAgICB0ZXN0IGNvbmZpZ3VyYXRp
b24gb3IgdmFsdWVzIHNwZWNpZmllZCBpbiB0aGUgY2xhc3Mgb3IgbW9kdWxlIHdoZXJlIGEKLSAg
ICB0ZXN0IGZ1bmN0aW9uIGlzIGRlZmluZWQuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgZnVuY3Rpb24sIGZpeHR1cmVpbmZvLCBjb25maWcsIGNscz1Ob25lLCBtb2R1bGU9Tm9u
ZSk6Ci0gICAgICAgICM6IGFjY2VzcyB0byB0aGUgOmNsYXNzOmBfcHl0ZXN0LmNvbmZpZy5Db25m
aWdgIG9iamVjdCBmb3IgdGhlIHRlc3Qgc2Vzc2lvbgotICAgICAgICBzZWxmLmNvbmZpZyA9IGNv
bmZpZwotCi0gICAgICAgICM6IHRoZSBtb2R1bGUgb2JqZWN0IHdoZXJlIHRoZSB0ZXN0IGZ1bmN0
aW9uIGlzIGRlZmluZWQgaW4uCi0gICAgICAgIHNlbGYubW9kdWxlID0gbW9kdWxlCi0KLSAgICAg
ICAgIzogdW5kZXJseWluZyBweXRob24gdGVzdCBmdW5jdGlvbgotICAgICAgICBzZWxmLmZ1bmN0
aW9uID0gZnVuY3Rpb24KLQotICAgICAgICAjOiBzZXQgb2YgZml4dHVyZSBuYW1lcyByZXF1aXJl
ZCBieSB0aGUgdGVzdCBmdW5jdGlvbgotICAgICAgICBzZWxmLmZpeHR1cmVuYW1lcyA9IGZpeHR1
cmVpbmZvLm5hbWVzX2Nsb3N1cmUKLQotICAgICAgICAjOiBjbGFzcyBvYmplY3Qgd2hlcmUgdGhl
IHRlc3QgZnVuY3Rpb24gaXMgZGVmaW5lZCBpbiBvciBgYE5vbmVgYC4KLSAgICAgICAgc2VsZi5j
bHMgPSBjbHMKLQotICAgICAgICBzZWxmLl9jYWxscyA9IFtdCi0gICAgICAgIHNlbGYuX2lkcyA9
IHNldCgpCi0gICAgICAgIHNlbGYuX2FyZzJmaXh0dXJlZGVmcyA9IGZpeHR1cmVpbmZvLm5hbWUy
Zml4dHVyZWRlZnMKLQotICAgIGRlZiBwYXJhbWV0cml6ZShzZWxmLCBhcmduYW1lcywgYXJndmFs
dWVzLCBpbmRpcmVjdD1GYWxzZSwgaWRzPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIHNjb3Bl
PU5vbmUpOgotICAgICAgICAiIiIgQWRkIG5ldyBpbnZvY2F0aW9ucyB0byB0aGUgdW5kZXJseWlu
ZyB0ZXN0IGZ1bmN0aW9uIHVzaW5nIHRoZSBsaXN0Ci0gICAgICAgIG9mIGFyZ3ZhbHVlcyBmb3Ig
dGhlIGdpdmVuIGFyZ25hbWVzLiAgUGFyYW1ldHJpemF0aW9uIGlzIHBlcmZvcm1lZAotICAgICAg
ICBkdXJpbmcgdGhlIGNvbGxlY3Rpb24gcGhhc2UuICBJZiB5b3UgbmVlZCB0byBzZXR1cCBleHBl
bnNpdmUgcmVzb3VyY2VzCi0gICAgICAgIHNlZSBhYm91dCBzZXR0aW5nIGluZGlyZWN0IHRvIGRv
IGl0IHJhdGhlciBhdCB0ZXN0IHNldHVwIHRpbWUuCi0KLSAgICAgICAgOmFyZyBhcmduYW1lczog
YSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nIGRlbm90aW5nIG9uZSBvciBtb3JlIGFyZ3VtZW50Ci0g
ICAgICAgICAgICAgICAgICAgICAgIG5hbWVzLCBvciBhIGxpc3QvdHVwbGUgb2YgYXJndW1lbnQg
c3RyaW5ncy4KLQotICAgICAgICA6YXJnIGFyZ3ZhbHVlczogVGhlIGxpc3Qgb2YgYXJndmFsdWVz
IGRldGVybWluZXMgaG93IG9mdGVuIGEKLSAgICAgICAgICAgIHRlc3QgaXMgaW52b2tlZCB3aXRo
IGRpZmZlcmVudCBhcmd1bWVudCB2YWx1ZXMuICBJZiBvbmx5IG9uZQotICAgICAgICAgICAgYXJn
bmFtZSB3YXMgc3BlY2lmaWVkIGFyZ3ZhbHVlcyBpcyBhIGxpc3Qgb2YgdmFsdWVzLiAgSWYgTgot
ICAgICAgICAgICAgYXJnbmFtZXMgd2VyZSBzcGVjaWZpZWQsIGFyZ3ZhbHVlcyBtdXN0IGJlIGEg
bGlzdCBvZiBOLXR1cGxlcywKLSAgICAgICAgICAgIHdoZXJlIGVhY2ggdHVwbGUtZWxlbWVudCBz
cGVjaWZpZXMgYSB2YWx1ZSBmb3IgaXRzIHJlc3BlY3RpdmUKLSAgICAgICAgICAgIGFyZ25hbWUu
Ci0KLSAgICAgICAgOmFyZyBpbmRpcmVjdDogVGhlIGxpc3Qgb2YgYXJnbmFtZXMgb3IgYm9vbGVh
bi4gQSBsaXN0IG9mIGFyZ3VtZW50cycKLSAgICAgICAgICAgIG5hbWVzIChzdWJzZXQgb2YgYXJn
bmFtZXMpLiBJZiBUcnVlIHRoZSBsaXN0IGNvbnRhaW5zIGFsbCBuYW1lcyBmcm9tCi0gICAgICAg
ICAgICB0aGUgYXJnbmFtZXMuIEVhY2ggYXJndmFsdWUgY29ycmVzcG9uZGluZyB0byBhbiBhcmdu
YW1lIGluIHRoaXMgbGlzdCB3aWxsCi0gICAgICAgICAgICBiZSBwYXNzZWQgYXMgcmVxdWVzdC5w
YXJhbSB0byBpdHMgcmVzcGVjdGl2ZSBhcmduYW1lIGZpeHR1cmUKLSAgICAgICAgICAgIGZ1bmN0
aW9uIHNvIHRoYXQgaXQgY2FuIHBlcmZvcm0gbW9yZSBleHBlbnNpdmUgc2V0dXBzIGR1cmluZyB0
aGUKLSAgICAgICAgICAgIHNldHVwIHBoYXNlIG9mIGEgdGVzdCByYXRoZXIgdGhhbiBhdCBjb2xs
ZWN0aW9uIHRpbWUuCi0KLSAgICAgICAgOmFyZyBpZHM6IGxpc3Qgb2Ygc3RyaW5nIGlkcywgb3Ig
YSBjYWxsYWJsZS4KLSAgICAgICAgICAgIElmIHN0cmluZ3MsIGVhY2ggaXMgY29ycmVzcG9uZGlu
ZyB0byB0aGUgYXJndmFsdWVzIHNvIHRoYXQgdGhleSBhcmUKLSAgICAgICAgICAgIHBhcnQgb2Yg
dGhlIHRlc3QgaWQuIElmIE5vbmUgaXMgZ2l2ZW4gYXMgaWQgb2Ygc3BlY2lmaWMgdGVzdCwgdGhl
Ci0gICAgICAgICAgICBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBpZCBmb3IgdGhhdCBhcmd1bWVu
dCB3aWxsIGJlIHVzZWQuCi0gICAgICAgICAgICBJZiBjYWxsYWJsZSwgaXQgc2hvdWxkIHRha2Ug
b25lIGFyZ3VtZW50IChhIHNpbmdsZSBhcmd2YWx1ZSkgYW5kIHJldHVybgotICAgICAgICAgICAg
YSBzdHJpbmcgb3IgcmV0dXJuIE5vbmUuIElmIE5vbmUsIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVy
YXRlZCBpZCBmb3IgdGhhdAotICAgICAgICAgICAgYXJndW1lbnQgd2lsbCBiZSB1c2VkLgotICAg
ICAgICAgICAgSWYgbm8gaWRzIGFyZSBwcm92aWRlZCB0aGV5IHdpbGwgYmUgZ2VuZXJhdGVkIGF1
dG9tYXRpY2FsbHkgZnJvbQotICAgICAgICAgICAgdGhlIGFyZ3ZhbHVlcy4KLQotICAgICAgICA6
YXJnIHNjb3BlOiBpZiBzcGVjaWZpZWQgaXQgZGVub3RlcyB0aGUgc2NvcGUgb2YgdGhlIHBhcmFt
ZXRlcnMuCi0gICAgICAgICAgICBUaGUgc2NvcGUgaXMgdXNlZCBmb3IgZ3JvdXBpbmcgdGVzdHMg
YnkgcGFyYW1ldGVyIGluc3RhbmNlcy4KLSAgICAgICAgICAgIEl0IHdpbGwgYWxzbyBvdmVycmlk
ZSBhbnkgZml4dHVyZS1mdW5jdGlvbiBkZWZpbmVkIHNjb3BlLCBhbGxvd2luZwotICAgICAgICAg
ICAgdG8gc2V0IGEgZHluYW1pYyBzY29wZSB1c2luZyB0ZXN0IGNvbnRleHQgb3IgY29uZmlndXJh
dGlvbi4KLSAgICAgICAgIiIiCi0gICAgICAgIGZyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQg
c2NvcGUyaW5kZXgKLSAgICAgICAgZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IFBhcmFtZXRlclNl
dAotICAgICAgICBmcm9tIHB5LmlvIGltcG9ydCBzYWZlcmVwcgotICAgICAgICBhcmduYW1lcywg
cGFyYW1ldGVycyA9IFBhcmFtZXRlclNldC5fZm9yX3BhcmFtZXRlcml6ZSgKLSAgICAgICAgICAg
IGFyZ25hbWVzLCBhcmd2YWx1ZXMsIHNlbGYuZnVuY3Rpb24pCi0gICAgICAgIGRlbCBhcmd2YWx1
ZXMKLQotICAgICAgICBpZiBzY29wZSBpcyBOb25lOgotICAgICAgICAgICAgc2NvcGUgPSBfZmlu
ZF9wYXJhbWV0cml6ZWRfc2NvcGUoYXJnbmFtZXMsIHNlbGYuX2FyZzJmaXh0dXJlZGVmcywgaW5k
aXJlY3QpCi0KLSAgICAgICAgc2NvcGVudW0gPSBzY29wZTJpbmRleChzY29wZSwgZGVzY3I9J2Nh
bGwgdG8gezB9Jy5mb3JtYXQoc2VsZi5wYXJhbWV0cml6ZSkpCi0gICAgICAgIHZhbHR5cGVzID0g
e30KLSAgICAgICAgZm9yIGFyZyBpbiBhcmduYW1lczoKLSAgICAgICAgICAgIGlmIGFyZyBub3Qg
aW4gc2VsZi5maXh0dXJlbmFtZXM6Ci0gICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpbmRp
cmVjdCwgKHR1cGxlLCBsaXN0KSk6Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnZml4dHVy
ZScgaWYgYXJnIGluIGluZGlyZWN0IGVsc2UgJ2FyZ3VtZW50JwotICAgICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnZml4dHVyZScgaWYgaW5kaXJlY3QgZWxz
ZSAnYXJndW1lbnQnCi0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAg
ICAgICAgICAgICAgIiVyIHVzZXMgbm8gJXMgJXIiICUgKAotICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5mdW5jdGlvbiwgbmFtZSwgYXJnKSkKLQotICAgICAgICBpZiBpbmRpcmVjdCBpcyBU
cnVlOgotICAgICAgICAgICAgdmFsdHlwZXMgPSBkaWN0LmZyb21rZXlzKGFyZ25hbWVzLCAicGFy
YW1zIikKLSAgICAgICAgZWxpZiBpbmRpcmVjdCBpcyBGYWxzZToKLSAgICAgICAgICAgIHZhbHR5
cGVzID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywgImZ1bmNhcmdzIikKLSAgICAgICAgZWxpZiBp
c2luc3RhbmNlKGluZGlyZWN0LCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAgICAgIHZhbHR5cGVz
ID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywgImZ1bmNhcmdzIikKLSAgICAgICAgICAgIGZvciBh
cmcgaW4gaW5kaXJlY3Q6Ci0gICAgICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBhcmduYW1lczoK
LSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW5kaXJlY3QgZ2l2ZW4gdG8g
JXI6IGZpeHR1cmUgJXIgZG9lc24ndCBleGlzdCIgJSAoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbiwgYXJnKSkKLSAgICAgICAgICAgICAgICB2YWx0
eXBlc1thcmddID0gInBhcmFtcyIKLSAgICAgICAgaWRmbiA9IE5vbmUKLSAgICAgICAgaWYgY2Fs
bGFibGUoaWRzKToKLSAgICAgICAgICAgIGlkZm4gPSBpZHMKLSAgICAgICAgICAgIGlkcyA9IE5v
bmUKLSAgICAgICAgaWYgaWRzOgotICAgICAgICAgICAgaWYgbGVuKGlkcykgIT0gbGVuKHBhcmFt
ZXRlcnMpOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJyVkIHRlc3RzIHNwZWNp
ZmllZCB3aXRoICVkIGlkcycgJSAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZW4ocGFyYW1ldGVycyksIGxlbihpZHMpKSkKLSAgICAgICAgICAgIGZvciBpZF92YWx1ZSBpbiBp
ZHM6Ci0gICAgICAgICAgICAgICAgaWYgaWRfdmFsdWUgaXMgbm90IE5vbmUgYW5kIG5vdCBpc2lu
c3RhbmNlKGlkX3ZhbHVlLCBzaXguc3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgICAgICAgICAg
bXNnID0gJ2lkcyBtdXN0IGJlIGxpc3Qgb2Ygc3RyaW5ncywgZm91bmQ6ICVzICh0eXBlOiAlcykn
Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobXNnICUgKHNhZmVyZXByKGlk
X3ZhbHVlKSwgdHlwZShpZF92YWx1ZSkuX19uYW1lX18pKQotICAgICAgICBpZHMgPSBpZG1ha2Vy
KGFyZ25hbWVzLCBwYXJhbWV0ZXJzLCBpZGZuLCBpZHMsIHNlbGYuY29uZmlnKQotICAgICAgICBu
ZXdjYWxscyA9IFtdCi0gICAgICAgIGZvciBjYWxsc3BlYyBpbiBzZWxmLl9jYWxscyBvciBbQ2Fs
bFNwZWMyKHNlbGYpXToKLSAgICAgICAgICAgIGVsZW1lbnRzID0gemlwKGlkcywgcGFyYW1ldGVy
cywgY291bnQoKSkKLSAgICAgICAgICAgIGZvciBhX2lkLCBwYXJhbSwgcGFyYW1faW5kZXggaW4g
ZWxlbWVudHM6Ci0gICAgICAgICAgICAgICAgaWYgbGVuKHBhcmFtLnZhbHVlcykgIT0gbGVuKGFy
Z25hbWVzKToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAg
ICAgICAgICAgICAgICAgICdJbiAicGFyYW1ldHJpemUiIHRoZSBudW1iZXIgb2YgdmFsdWVzICh7
MH0pIG11c3QgYmUgJwotICAgICAgICAgICAgICAgICAgICAgICAgJ2VxdWFsIHRvIHRoZSBudW1i
ZXIgb2YgbmFtZXMgKHsxfSknLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXJhbS52YWx1ZXMsIGFyZ25hbWVzKSkKLSAgICAgICAgICAgICAgICBuZXdjYWxsc3BlYyA9IGNh
bGxzcGVjLmNvcHkoc2VsZikKLSAgICAgICAgICAgICAgICBuZXdjYWxsc3BlYy5zZXRtdWx0aTIo
dmFsdHlwZXMsIGFyZ25hbWVzLCBwYXJhbS52YWx1ZXMsIGFfaWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhcmFtLm1hcmtzLCBzY29wZW51bSwgcGFyYW1faW5kZXgp
Ci0gICAgICAgICAgICAgICAgbmV3Y2FsbHMuYXBwZW5kKG5ld2NhbGxzcGVjKQotICAgICAgICBz
ZWxmLl9jYWxscyA9IG5ld2NhbGxzCi0KLSAgICBkZWYgYWRkY2FsbChzZWxmLCBmdW5jYXJncz1O
b25lLCBpZD1OT1RTRVQsIHBhcmFtPU5PVFNFVCk6Ci0gICAgICAgICIiIiBBZGQgYSBuZXcgY2Fs
bCB0byB0aGUgdW5kZXJseWluZyB0ZXN0IGZ1bmN0aW9uIGR1cmluZyB0aGUgY29sbGVjdGlvbiBw
aGFzZSBvZiBhIHRlc3QgcnVuLgotCi0gICAgICAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKLQotICAg
ICAgICAgICAgVXNlIDptZXRoOmBwYXJhbWV0cml6ZWAgaW5zdGVhZC4KLQotICAgICAgICBOb3Rl
IHRoYXQgcmVxdWVzdC5hZGRjYWxsKCkgaXMgY2FsbGVkIGR1cmluZyB0aGUgdGVzdCBjb2xsZWN0
aW9uIHBoYXNlIHByaW9yIGFuZAotICAgICAgICBpbmRlcGVuZGVudGx5IHRvIGFjdHVhbCB0ZXN0
IGV4ZWN1dGlvbi4gIFlvdSBzaG91bGQgb25seSB1c2UgYWRkY2FsbCgpCi0gICAgICAgIGlmIHlv
dSBuZWVkIHRvIHNwZWNpZnkgbXVsdGlwbGUgYXJndW1lbnRzIG9mIGEgdGVzdCBmdW5jdGlvbi4K
LQotICAgICAgICA6YXJnIGZ1bmNhcmdzOiBhcmd1bWVudCBrZXl3b3JkIGRpY3Rpb25hcnkgdXNl
ZCB3aGVuIGludm9raW5nCi0gICAgICAgICAgICB0aGUgdGVzdCBmdW5jdGlvbi4KLQotICAgICAg
ICA6YXJnIGlkOiB1c2VkIGZvciByZXBvcnRpbmcgYW5kIGlkZW50aWZpY2F0aW9uIHB1cnBvc2Vz
LiAgSWYgeW91Ci0gICAgICAgICAgICBkb24ndCBzdXBwbHkgYW4gYGlkYCBhbiBhdXRvbWF0aWMg
dW5pcXVlIGlkIHdpbGwgYmUgZ2VuZXJhdGVkLgotCi0gICAgICAgIDphcmcgcGFyYW06IGEgcGFy
YW1ldGVyIHdoaWNoIHdpbGwgYmUgZXhwb3NlZCB0byBhIGxhdGVyIGZpeHR1cmUgZnVuY3Rpb24K
LSAgICAgICAgICAgIGludm9jYXRpb24gdGhyb3VnaCB0aGUgYGByZXF1ZXN0LnBhcmFtYGAgYXR0
cmlidXRlLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5jb25maWc6Ci0gICAgICAgICAg
ICBzZWxmLmNvbmZpZy53YXJuKCdDMScsIG1lc3NhZ2U9ZGVwcmVjYXRlZC5NRVRBRlVOQ19BRERf
Q0FMTCwgZnNsb2NhdGlvbj1Ob25lKQotICAgICAgICBhc3NlcnQgZnVuY2FyZ3MgaXMgTm9uZSBv
ciBpc2luc3RhbmNlKGZ1bmNhcmdzLCBkaWN0KQotICAgICAgICBpZiBmdW5jYXJncyBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIGZvciBuYW1lIGluIGZ1bmNhcmdzOgotICAgICAgICAgICAgICAg
IGlmIG5hbWUgbm90IGluIHNlbGYuZml4dHVyZW5hbWVzOgotICAgICAgICAgICAgICAgICAgICBm
YWlsKCJmdW5jYXJnICVyIG5vdCB1c2VkIGluIHRoaXMgZnVuY3Rpb24uIiAlIG5hbWUpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBmdW5jYXJncyA9IHt9Ci0gICAgICAgIGlmIGlkIGlzIE5v
bmU6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpZD1Ob25lIG5vdCBhbGxvd2VkIikK
LSAgICAgICAgaWYgaWQgaXMgTk9UU0VUOgotICAgICAgICAgICAgaWQgPSBsZW4oc2VsZi5fY2Fs
bHMpCi0gICAgICAgIGlkID0gc3RyKGlkKQotICAgICAgICBpZiBpZCBpbiBzZWxmLl9pZHM6Ci0g
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJkdXBsaWNhdGUgaWQgJXIiICUgaWQpCi0gICAg
ICAgIHNlbGYuX2lkcy5hZGQoaWQpCi0KLSAgICAgICAgY3MgPSBDYWxsU3BlYzIoc2VsZikKLSAg
ICAgICAgY3Muc2V0YWxsKGZ1bmNhcmdzLCBpZCwgcGFyYW0pCi0gICAgICAgIHNlbGYuX2NhbGxz
LmFwcGVuZChjcykKLQotCi1kZWYgX2ZpbmRfcGFyYW1ldHJpemVkX3Njb3BlKGFyZ25hbWVzLCBh
cmcyZml4dHVyZWRlZnMsIGluZGlyZWN0KToKLSAgICAiIiJGaW5kIHRoZSBtb3N0IGFwcHJvcHJp
YXRlIHNjb3BlIGZvciBhIHBhcmFtZXRyaXplZCBjYWxsIGJhc2VkIG9uIGl0cyBhcmd1bWVudHMu
Ci0KLSAgICBXaGVuIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGRpcmVjdCBhcmd1bWVudCwgYWx3YXlz
IHVzZSAiZnVuY3Rpb24iIHNjb3BlLgotCi0gICAgV2hlbiBhIHRlc3QgZnVuY3Rpb24gaXMgcGFy
YW1ldHJpemVkIGFuZCBhbGwgaXRzIGFyZ3VtZW50cyBhcmUgaW5kaXJlY3QKLSAgICAoZS5nLiBm
aXh0dXJlcyksIHJldHVybiB0aGUgbW9zdCBuYXJyb3cgc2NvcGUgYmFzZWQgb24gdGhlIGZpeHR1
cmVzIHVzZWQuCi0KLSAgICBSZWxhdGVkIHRvIGlzc3VlICMxODMyLCBiYXNlZCBvbiBjb2RlIHBv
c3RlZCBieSBAS2luZ2RyZWFkLgotICAgICIiIgotICAgIGZyb20gX3B5dGVzdC5maXh0dXJlcyBp
bXBvcnQgc2NvcGVzCi0gICAgaW5kaXJlY3RfYXNfbGlzdCA9IGlzaW5zdGFuY2UoaW5kaXJlY3Qs
IChsaXN0LCB0dXBsZSkpCi0gICAgYWxsX2FyZ3VtZW50c19hcmVfZml4dHVyZXMgPSBpbmRpcmVj
dCBpcyBUcnVlIG9yIFwKLSAgICAgICAgaW5kaXJlY3RfYXNfbGlzdCBhbmQgbGVuKGluZGlyZWN0
KSA9PSBhcmduYW1lcwotICAgIGlmIGFsbF9hcmd1bWVudHNfYXJlX2ZpeHR1cmVzOgotICAgICAg
ICBmaXh0dXJlZGVmcyA9IGFyZzJmaXh0dXJlZGVmcyBvciB7fQotICAgICAgICB1c2VkX3Njb3Bl
cyA9IFtmaXh0dXJlZGVmWzBdLnNjb3BlIGZvciBuYW1lLCBmaXh0dXJlZGVmIGluIGZpeHR1cmVk
ZWZzLml0ZW1zKCldCi0gICAgICAgIGlmIHVzZWRfc2NvcGVzOgotICAgICAgICAgICAgIyBUYWtl
cyB0aGUgbW9zdCBuYXJyb3cgc2NvcGUgZnJvbSB1c2VkIGZpeHR1cmVzCi0gICAgICAgICAgICBm
b3Igc2NvcGUgaW4gcmV2ZXJzZWQoc2NvcGVzKToKLSAgICAgICAgICAgICAgICBpZiBzY29wZSBp
biB1c2VkX3Njb3BlczoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlCi0KLSAgICBy
ZXR1cm4gJ2Z1bmN0aW9uJwotCi0KLWRlZiBfaWR2YWwodmFsLCBhcmduYW1lLCBpZHgsIGlkZm4s
IGNvbmZpZz1Ob25lKToKLSAgICBpZiBpZGZuOgotICAgICAgICBzID0gTm9uZQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBzID0gaWRmbih2YWwpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246
Ci0gICAgICAgICAgICAjIFNlZSBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzIxNjkKLSAgICAgICAgICAgIGltcG9ydCB3YXJuaW5ncwotICAgICAgICAg
ICAgbXNnID0gIlJhaXNlZCB3aGlsZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBhcmFtZXRl
ciAlcyBhdCBwb3NpdGlvbiAlZC4iICUgKGFyZ25hbWUsIGlkeCkKLSAgICAgICAgICAgIG1zZyAr
PSAnXG5VcGRhdGUgeW91ciBjb2RlIGFzIHRoaXMgd2lsbCByYWlzZSBhbiBlcnJvciBpbiBweXRl
c3QtNC4wLicKLSAgICAgICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5p
bmcpCi0gICAgICAgIGlmIHM6Ci0gICAgICAgICAgICByZXR1cm4gYXNjaWlfZXNjYXBlZChzKQot
Ci0gICAgaWYgY29uZmlnOgotICAgICAgICBob29rX2lkID0gY29uZmlnLmhvb2sucHl0ZXN0X21h
a2VfcGFyYW1ldHJpemVfaWQoCi0gICAgICAgICAgICBjb25maWc9Y29uZmlnLCB2YWw9dmFsLCBh
cmduYW1lPWFyZ25hbWUpCi0gICAgICAgIGlmIGhvb2tfaWQ6Ci0gICAgICAgICAgICByZXR1cm4g
aG9va19pZAotCi0gICAgaWYgaXNpbnN0YW5jZSh2YWwsIFNUUklOR19UWVBFUyk6Ci0gICAgICAg
IHJldHVybiBhc2NpaV9lc2NhcGVkKHZhbCkKLSAgICBlbGlmIGlzaW5zdGFuY2UodmFsLCAoZmxv
YXQsIGludCwgYm9vbCwgTm9uZVR5cGUpKToKLSAgICAgICAgcmV0dXJuIHN0cih2YWwpCi0gICAg
ZWxpZiBpc2luc3RhbmNlKHZhbCwgUkVHRVhfVFlQRSk6Ci0gICAgICAgIHJldHVybiBhc2NpaV9l
c2NhcGVkKHZhbC5wYXR0ZXJuKQotICAgIGVsaWYgZW51bSBpcyBub3QgTm9uZSBhbmQgaXNpbnN0
YW5jZSh2YWwsIGVudW0uRW51bSk6Ci0gICAgICAgIHJldHVybiBzdHIodmFsKQotICAgIGVsaWYg
aXNjbGFzcyh2YWwpIGFuZCBoYXNhdHRyKHZhbCwgJ19fbmFtZV9fJyk6Ci0gICAgICAgIHJldHVy
biB2YWwuX19uYW1lX18KLSAgICByZXR1cm4gc3RyKGFyZ25hbWUpICsgc3RyKGlkeCkKLQotCi1k
ZWYgX2lkdmFsc2V0KGlkeCwgcGFyYW1ldGVyc2V0LCBhcmduYW1lcywgaWRmbiwgaWRzLCBjb25m
aWc9Tm9uZSk6Ci0gICAgaWYgcGFyYW1ldGVyc2V0LmlkIGlzIG5vdCBOb25lOgotICAgICAgICBy
ZXR1cm4gcGFyYW1ldGVyc2V0LmlkCi0gICAgaWYgaWRzIGlzIE5vbmUgb3IgKGlkeCA+PSBsZW4o
aWRzKSBvciBpZHNbaWR4XSBpcyBOb25lKToKLSAgICAgICAgdGhpc19pZCA9IFtfaWR2YWwodmFs
LCBhcmduYW1lLCBpZHgsIGlkZm4sIGNvbmZpZykKLSAgICAgICAgICAgICAgICAgICBmb3IgdmFs
LCBhcmduYW1lIGluIHppcChwYXJhbWV0ZXJzZXQudmFsdWVzLCBhcmduYW1lcyldCi0gICAgICAg
IHJldHVybiAiLSIuam9pbih0aGlzX2lkKQotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiBhc2Np
aV9lc2NhcGVkKGlkc1tpZHhdKQotCi0KLWRlZiBpZG1ha2VyKGFyZ25hbWVzLCBwYXJhbWV0ZXJz
ZXRzLCBpZGZuPU5vbmUsIGlkcz1Ob25lLCBjb25maWc9Tm9uZSk6Ci0gICAgaWRzID0gW19pZHZh
bHNldCh2YWxpbmRleCwgcGFyYW1ldGVyc2V0LCBhcmduYW1lcywgaWRmbiwgaWRzLCBjb25maWcp
Ci0gICAgICAgICAgIGZvciB2YWxpbmRleCwgcGFyYW1ldGVyc2V0IGluIGVudW1lcmF0ZShwYXJh
bWV0ZXJzZXRzKV0KLSAgICBpZiBsZW4oc2V0KGlkcykpICE9IGxlbihpZHMpOgotICAgICAgICAj
IFRoZSBpZHMgYXJlIG5vdCB1bmlxdWUKLSAgICAgICAgZHVwbGljYXRlcyA9IFt0ZXN0aWQgZm9y
IHRlc3RpZCBpbiBpZHMgaWYgaWRzLmNvdW50KHRlc3RpZCkgPiAxXQotICAgICAgICBjb3VudGVy
cyA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KGxhbWJkYTogMCkKLSAgICAgICAgZm9yIGluZGV4
LCB0ZXN0aWQgaW4gZW51bWVyYXRlKGlkcyk6Ci0gICAgICAgICAgICBpZiB0ZXN0aWQgaW4gZHVw
bGljYXRlczoKLSAgICAgICAgICAgICAgICBpZHNbaW5kZXhdID0gdGVzdGlkICsgc3RyKGNvdW50
ZXJzW3Rlc3RpZF0pCi0gICAgICAgICAgICAgICAgY291bnRlcnNbdGVzdGlkXSArPSAxCi0gICAg
cmV0dXJuIGlkcwotCi0KLWRlZiBzaG93X2ZpeHR1cmVzX3Blcl90ZXN0KGNvbmZpZyk6Ci0gICAg
ZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IHdyYXBfc2Vzc2lvbgotICAgIHJldHVybiB3cmFwX3Nl
c3Npb24oY29uZmlnLCBfc2hvd19maXh0dXJlc19wZXJfdGVzdCkKLQotCi1kZWYgX3Nob3dfZml4
dHVyZXNfcGVyX3Rlc3QoY29uZmlnLCBzZXNzaW9uKToKLSAgICBpbXBvcnQgX3B5dGVzdC5jb25m
aWcKLSAgICBzZXNzaW9uLnBlcmZvcm1fY29sbGVjdCgpCi0gICAgY3VyZGlyID0gcHkucGF0aC5s
b2NhbCgpCi0gICAgdHcgPSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNv
bmZpZykKLSAgICB2ZXJib3NlID0gY29uZmlnLmdldHZhbHVlKCJ2ZXJib3NlIikKLQotICAgIGRl
ZiBnZXRfYmVzdF9yZWxwYXRoKGZ1bmMpOgotICAgICAgICBsb2MgPSBnZXRsb2NhdGlvbihmdW5j
LCBjdXJkaXIpCi0gICAgICAgIHJldHVybiBjdXJkaXIuYmVzdHJlbHBhdGgobG9jKQotCi0gICAg
ZGVmIHdyaXRlX2ZpeHR1cmUoZml4dHVyZV9kZWYpOgotICAgICAgICBhcmduYW1lID0gZml4dHVy
ZV9kZWYuYXJnbmFtZQotICAgICAgICBpZiB2ZXJib3NlIDw9IDAgYW5kIGFyZ25hbWUuc3RhcnRz
d2l0aCgiXyIpOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIHZlcmJvc2UgPiAwOgot
ICAgICAgICAgICAgYmVzdHJlbCA9IGdldF9iZXN0X3JlbHBhdGgoZml4dHVyZV9kZWYuZnVuYykK
LSAgICAgICAgICAgIGZ1bmNhcmdzcGVjID0gInswfSAtLSB7MX0iLmZvcm1hdChhcmduYW1lLCBi
ZXN0cmVsKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnVuY2FyZ3NwZWMgPSBhcmduYW1l
Ci0gICAgICAgIHR3LmxpbmUoZnVuY2FyZ3NwZWMsIGdyZWVuPVRydWUpCi0gICAgICAgIGZpeHR1
cmVfZG9jID0gZml4dHVyZV9kZWYuZnVuYy5fX2RvY19fCi0gICAgICAgIGlmIGZpeHR1cmVfZG9j
OgotICAgICAgICAgICAgd3JpdGVfZG9jc3RyaW5nKHR3LCBmaXh0dXJlX2RvYykKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHR3LmxpbmUoJyAgICBubyBkb2NzdHJpbmcgYXZhaWxhYmxlJywg
cmVkPVRydWUpCi0KLSAgICBkZWYgd3JpdGVfaXRlbShpdGVtKToKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgaW5mbyA9IGl0ZW0uX2ZpeHR1cmVpbmZvCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1
dGVFcnJvcjoKLSAgICAgICAgICAgICMgZG9jdGVzdHMgaXRlbXMgaGF2ZSBubyBfZml4dHVyZWlu
Zm8gYXR0cmlidXRlCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgbm90IGluZm8ubmFt
ZTJmaXh0dXJlZGVmczoKLSAgICAgICAgICAgICMgdGhpcyB0ZXN0IGl0ZW0gZG9lcyBub3QgdXNl
IGFueSBmaXh0dXJlcwotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHR3LmxpbmUoKQotICAg
ICAgICB0dy5zZXAoJy0nLCAnZml4dHVyZXMgdXNlZCBieSB7MH0nLmZvcm1hdChpdGVtLm5hbWUp
KQotICAgICAgICB0dy5zZXAoJy0nLCAnKHswfSknLmZvcm1hdChnZXRfYmVzdF9yZWxwYXRoKGl0
ZW0uZnVuY3Rpb24pKSkKLSAgICAgICAgIyBkaWN0IGtleSBub3QgdXNlZCBpbiBsb29wIGJ1dCBu
ZWVkZWQgZm9yIHNvcnRpbmcKLSAgICAgICAgZm9yIF8sIGZpeHR1cmVkZWZzIGluIHNvcnRlZChp
bmZvLm5hbWUyZml4dHVyZWRlZnMuaXRlbXMoKSk6Ci0gICAgICAgICAgICBhc3NlcnQgZml4dHVy
ZWRlZnMgaXMgbm90IE5vbmUKLSAgICAgICAgICAgIGlmIG5vdCBmaXh0dXJlZGVmczoKLSAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgIyBsYXN0IGl0ZW0gaXMgZXhwZWN0ZWQg
dG8gYmUgdGhlIG9uZSB1c2VkIGJ5IHRoZSB0ZXN0IGl0ZW0KLSAgICAgICAgICAgIHdyaXRlX2Zp
eHR1cmUoZml4dHVyZWRlZnNbLTFdKQotCi0gICAgZm9yIHNlc3Npb25faXRlbSBpbiBzZXNzaW9u
Lml0ZW1zOgotICAgICAgICB3cml0ZV9pdGVtKHNlc3Npb25faXRlbSkKLQotCi1kZWYgc2hvd2Zp
eHR1cmVzKGNvbmZpZyk6Ci0gICAgZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IHdyYXBfc2Vzc2lv
bgotICAgIHJldHVybiB3cmFwX3Nlc3Npb24oY29uZmlnLCBfc2hvd2ZpeHR1cmVzX21haW4pCi0K
LQotZGVmIF9zaG93Zml4dHVyZXNfbWFpbihjb25maWcsIHNlc3Npb24pOgotICAgIGltcG9ydCBf
cHl0ZXN0LmNvbmZpZwotICAgIHNlc3Npb24ucGVyZm9ybV9jb2xsZWN0KCkKLSAgICBjdXJkaXIg
PSBweS5wYXRoLmxvY2FsKCkKLSAgICB0dyA9IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5h
bF93cml0ZXIoY29uZmlnKQotICAgIHZlcmJvc2UgPSBjb25maWcuZ2V0dmFsdWUoInZlcmJvc2Ui
KQotCi0gICAgZm0gPSBzZXNzaW9uLl9maXh0dXJlbWFuYWdlcgotCi0gICAgYXZhaWxhYmxlID0g
W10KLSAgICBzZWVuID0gc2V0KCkKLQotICAgIGZvciBhcmduYW1lLCBmaXh0dXJlZGVmcyBpbiBm
bS5fYXJnMmZpeHR1cmVkZWZzLml0ZW1zKCk6Ci0gICAgICAgIGFzc2VydCBmaXh0dXJlZGVmcyBp
cyBub3QgTm9uZQotICAgICAgICBpZiBub3QgZml4dHVyZWRlZnM6Ci0gICAgICAgICAgICBjb250
aW51ZQotICAgICAgICBmb3IgZml4dHVyZWRlZiBpbiBmaXh0dXJlZGVmczoKLSAgICAgICAgICAg
IGxvYyA9IGdldGxvY2F0aW9uKGZpeHR1cmVkZWYuZnVuYywgY3VyZGlyKQotICAgICAgICAgICAg
aWYgKGZpeHR1cmVkZWYuYXJnbmFtZSwgbG9jKSBpbiBzZWVuOgotICAgICAgICAgICAgICAgIGNv
bnRpbnVlCi0gICAgICAgICAgICBzZWVuLmFkZCgoZml4dHVyZWRlZi5hcmduYW1lLCBsb2MpKQot
ICAgICAgICAgICAgYXZhaWxhYmxlLmFwcGVuZCgobGVuKGZpeHR1cmVkZWYuYmFzZWlkKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYuZnVuYy5fX21vZHVsZV9fLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyZGlyLmJlc3RyZWxwYXRoKGxvYyksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLmFyZ25hbWUsIGZpeHR1cmVk
ZWYpKQotCi0gICAgYXZhaWxhYmxlLnNvcnQoKQotICAgIGN1cnJlbnRtb2R1bGUgPSBOb25lCi0g
ICAgZm9yIGJhc2VpZCwgbW9kdWxlLCBiZXN0cmVsLCBhcmduYW1lLCBmaXh0dXJlZGVmIGluIGF2
YWlsYWJsZToKLSAgICAgICAgaWYgY3VycmVudG1vZHVsZSAhPSBtb2R1bGU6Ci0gICAgICAgICAg
ICBpZiBub3QgbW9kdWxlLnN0YXJ0c3dpdGgoIl9weXRlc3QuIik6Ci0gICAgICAgICAgICAgICAg
dHcubGluZSgpCi0gICAgICAgICAgICAgICAgdHcuc2VwKCItIiwgImZpeHR1cmVzIGRlZmluZWQg
ZnJvbSAlcyIgJSAobW9kdWxlLCkpCi0gICAgICAgICAgICAgICAgY3VycmVudG1vZHVsZSA9IG1v
ZHVsZQotICAgICAgICBpZiB2ZXJib3NlIDw9IDAgYW5kIGFyZ25hbWVbMF0gPT0gIl8iOgotICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgaWYgdmVyYm9zZSA+IDA6Ci0gICAgICAgICAgICBm
dW5jYXJnc3BlYyA9ICIlcyAtLSAlcyIgJSAoYXJnbmFtZSwgYmVzdHJlbCwpCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBmdW5jYXJnc3BlYyA9IGFyZ25hbWUKLSAgICAgICAgdHcubGluZShm
dW5jYXJnc3BlYywgZ3JlZW49VHJ1ZSkKLSAgICAgICAgbG9jID0gZ2V0bG9jYXRpb24oZml4dHVy
ZWRlZi5mdW5jLCBjdXJkaXIpCi0gICAgICAgIGRvYyA9IGZpeHR1cmVkZWYuZnVuYy5fX2RvY19f
IG9yICIiCi0gICAgICAgIGlmIGRvYzoKLSAgICAgICAgICAgIHdyaXRlX2RvY3N0cmluZyh0dywg
ZG9jKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdHcubGluZSgiICAgICVzOiBubyBkb2Nz
dHJpbmcgYXZhaWxhYmxlIiAlIChsb2MsKSwKLSAgICAgICAgICAgICAgICAgICAgcmVkPVRydWUp
Ci0KLQotZGVmIHdyaXRlX2RvY3N0cmluZyh0dywgZG9jKToKLSAgICBJTkRFTlQgPSAiICAgICIK
LSAgICBkb2MgPSBkb2MucnN0cmlwKCkKLSAgICBpZiAiXG4iIGluIGRvYzoKLSAgICAgICAgZmly
c3RsaW5lLCByZXN0ID0gZG9jLnNwbGl0KCJcbiIsIDEpCi0gICAgZWxzZToKLSAgICAgICAgZmly
c3RsaW5lLCByZXN0ID0gZG9jLCAiIgotCi0gICAgaWYgZmlyc3RsaW5lLnN0cmlwKCk6Ci0gICAg
ICAgIHR3LmxpbmUoSU5ERU5UICsgZmlyc3RsaW5lLnN0cmlwKCkpCi0KLSAgICBpZiByZXN0Ogot
ICAgICAgICBmb3IgbGluZSBpbiBkZWRlbnQocmVzdCkuc3BsaXQoIlxuIik6Ci0gICAgICAgICAg
ICB0dy53cml0ZShJTkRFTlQgKyBsaW5lICsgIlxuIikKLQotCi1jbGFzcyBGdW5jdGlvbihGdW5j
dGlvbk1peGluLCBtYWluLkl0ZW0sIGZpeHR1cmVzLkZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgot
ICAgICIiIiBhIEZ1bmN0aW9uIEl0ZW0gaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdXAgYW5k
IGV4ZWN1dGluZyBhCi0gICAgUHl0aG9uIHRlc3QgZnVuY3Rpb24uCi0gICAgIiIiCi0gICAgX2dl
bmlkID0gTm9uZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhcmVudCwgYXJncz1O
b25lLCBjb25maWc9Tm9uZSwKLSAgICAgICAgICAgICAgICAgY2FsbHNwZWM9Tm9uZSwgY2FsbG9i
aj1OT1RTRVQsIGtleXdvcmRzPU5vbmUsIHNlc3Npb249Tm9uZSwKLSAgICAgICAgICAgICAgICAg
Zml4dHVyZWluZm89Tm9uZSwgb3JpZ2luYWxuYW1lPU5vbmUpOgotICAgICAgICBzdXBlcihGdW5j
dGlvbiwgc2VsZikuX19pbml0X18obmFtZSwgcGFyZW50LCBjb25maWc9Y29uZmlnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbj1zZXNzaW9uKQotICAgICAg
ICBzZWxmLl9hcmdzID0gYXJncwotICAgICAgICBpZiBjYWxsb2JqIGlzIG5vdCBOT1RTRVQ6Ci0g
ICAgICAgICAgICBzZWxmLm9iaiA9IGNhbGxvYmoKLQotICAgICAgICBzZWxmLmtleXdvcmRzLnVw
ZGF0ZShzZWxmLm9iai5fX2RpY3RfXykKLSAgICAgICAgaWYgY2FsbHNwZWM6Ci0gICAgICAgICAg
ICBzZWxmLmNhbGxzcGVjID0gY2FsbHNwZWMKLSAgICAgICAgICAgICMgdGhpcyBpcyB0b3RhbCBo
b3N0aWxlIGFuZCBhIG1lc3MKLSAgICAgICAgICAgICMga2V5d29yZHMgYXJlIGJyb2tlbiBieSBk
ZXNpZ24gYnkgbm93Ci0gICAgICAgICAgICAjIHRoaXMgd2lsbCBiZSByZWRlZW1lZCBsYXRlcgot
ICAgICAgICAgICAgZm9yIG1hcmsgaW4gY2FsbHNwZWMubWFya3M6Ci0gICAgICAgICAgICAgICAg
IyBmZWVsIGZyZWUgdG8gY3J5LCB0aGlzIHdhcyBicm9rZW4gZm9yIHllYXJzIGJlZm9yZQotICAg
ICAgICAgICAgICAgICMgYW5kIGtleXdvcmRzIGNhbnQgZml4IGl0IHBlciBkZXNpZ24KLSAgICAg
ICAgICAgICAgICBzZWxmLmtleXdvcmRzW21hcmsubmFtZV0gPSBtYXJrCi0gICAgICAgIGlmIGtl
eXdvcmRzOgotICAgICAgICAgICAgc2VsZi5rZXl3b3Jkcy51cGRhdGUoa2V5d29yZHMpCi0KLSAg
ICAgICAgaWYgZml4dHVyZWluZm8gaXMgTm9uZToKLSAgICAgICAgICAgIGZpeHR1cmVpbmZvID0g
c2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlci5nZXRmaXh0dXJlaW5mbygKLSAgICAgICAgICAg
ICAgICBzZWxmLnBhcmVudCwgc2VsZi5vYmosIHNlbGYuY2xzLAotICAgICAgICAgICAgICAgIGZ1
bmNhcmdzPW5vdCBzZWxmLl9pc3lpZWxkZWRmdW5jdGlvbigpKQotICAgICAgICBzZWxmLl9maXh0
dXJlaW5mbyA9IGZpeHR1cmVpbmZvCi0gICAgICAgIHNlbGYuZml4dHVyZW5hbWVzID0gZml4dHVy
ZWluZm8ubmFtZXNfY2xvc3VyZQotICAgICAgICBzZWxmLl9pbml0cmVxdWVzdCgpCi0KLSAgICAg
ICAgIzogb3JpZ2luYWwgZnVuY3Rpb24gbmFtZSwgd2l0aG91dCBhbnkgZGVjb3JhdGlvbnMgKGZv
ciBleGFtcGxlCi0gICAgICAgICM6IHBhcmFtZXRyaXphdGlvbiBhZGRzIGEgYGAiWy4uLl0iYGAg
c3VmZml4IHRvIGZ1bmN0aW9uIG5hbWVzKS4KLSAgICAgICAgIzoKLSAgICAgICAgIzogLi4gdmVy
c2lvbmFkZGVkOjogMy4wCi0gICAgICAgIHNlbGYub3JpZ2luYWxuYW1lID0gb3JpZ2luYWxuYW1l
Ci0KLSAgICBkZWYgX2luaXRyZXF1ZXN0KHNlbGYpOgotICAgICAgICBzZWxmLmZ1bmNhcmdzID0g
e30KLSAgICAgICAgaWYgc2VsZi5faXN5aWVsZGVkZnVuY3Rpb24oKToKLSAgICAgICAgICAgIGFz
c2VydCBub3QgaGFzYXR0cihzZWxmLCAiY2FsbHNwZWMiKSwgKAotICAgICAgICAgICAgICAgICJ5
aWVsZGVkIGZ1bmN0aW9ucyAoZGVwcmVjYXRlZCkgY2Fubm90IGhhdmUgZnVuY2FyZ3MiKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiY2FsbHNwZWMiKToKLSAg
ICAgICAgICAgICAgICBjYWxsc3BlYyA9IHNlbGYuY2FsbHNwZWMKLSAgICAgICAgICAgICAgICBh
c3NlcnQgbm90IGNhbGxzcGVjLmZ1bmNhcmdzCi0gICAgICAgICAgICAgICAgc2VsZi5fZ2VuaWQg
PSBjYWxsc3BlYy5pZAotICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoY2FsbHNwZWMsICJwYXJh
bSIpOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcmFtID0gY2FsbHNwZWMucGFyYW0KLSAg
ICAgICAgc2VsZi5fcmVxdWVzdCA9IGZpeHR1cmVzLkZpeHR1cmVSZXF1ZXN0KHNlbGYpCi0KLSAg
ICBAcHJvcGVydHkKLSAgICBkZWYgZnVuY3Rpb24oc2VsZik6Ci0gICAgICAgICJ1bmRlcmx5aW5n
IHB5dGhvbiAnZnVuY3Rpb24nIG9iamVjdCIKLSAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5v
YmosICdpbV9mdW5jJywgc2VsZi5vYmopCi0KLSAgICBkZWYgX2dldG9iaihzZWxmKToKLSAgICAg
ICAgbmFtZSA9IHNlbGYubmFtZQotICAgICAgICBpID0gbmFtZS5maW5kKCJbIikgICMgcGFyYW1l
dHJpemF0aW9uCi0gICAgICAgIGlmIGkgIT0gLTE6Ci0gICAgICAgICAgICBuYW1lID0gbmFtZVs6
aV0KLSAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5wYXJlbnQub2JqLCBuYW1lKQotCi0gICAg
QHByb3BlcnR5Ci0gICAgZGVmIF9weWZ1bmNpdGVtKHNlbGYpOgotICAgICAgICAiKGNvbXBhdG9u
bHkpIGZvciBjb2RlIGV4cGVjdGluZyBweXRlc3QtMi4yIHN0eWxlIHJlcXVlc3Qgb2JqZWN0cyIK
LSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgIGRlZiBfaXN5aWVsZGVkZnVuY3Rpb24oc2VsZik6
Ci0gICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYsICJfYXJncyIsIE5vbmUpIGlzIG5vdCBOb25l
Ci0KLSAgICBkZWYgcnVudGVzdChzZWxmKToKLSAgICAgICAgIiIiIGV4ZWN1dGUgdGhlIHVuZGVy
bHlpbmcgdGVzdCBmdW5jdGlvbi4gIiIiCi0gICAgICAgIHNlbGYuaWhvb2sucHl0ZXN0X3B5ZnVu
Y19jYWxsKHB5ZnVuY2l0ZW09c2VsZikKLQotICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAg
c3VwZXIoRnVuY3Rpb24sIHNlbGYpLnNldHVwKCkKLSAgICAgICAgZml4dHVyZXMuZmlsbGZpeHR1
cmVzKHNlbGYpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbl9hcGkucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbl9hcGkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDgxOTYwMjk1YjM4MWJkMGU5OTIzZjdmYjNkMDFhZTExMTIxNDJmOWUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9weXRob25fYXBpLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjE5ICswLDAgQEAKLWltcG9y
dCBtYXRoCi1pbXBvcnQgc3lzCi0KLWltcG9ydCBweQotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHpp
cAotCi1mcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBpc2NsYXNzCi1mcm9tIF9weXRlc3Qub3V0
Y29tZXMgaW1wb3J0IGZhaWwKLWltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0KLQotZGVmIF9jbXBfcmFp
c2VzX3R5cGVfZXJyb3Ioc2VsZiwgb3RoZXIpOgotICAgICIiIl9fY21wX18gaW1wbGVtZW50YXRp
b24gd2hpY2ggcmFpc2VzIFR5cGVFcnJvci4gVXNlZAotICAgIGJ5IEFwcHJveCBiYXNlIGNsYXNz
ZXMgdG8gaW1wbGVtZW50IG9ubHkgPT0gYW5kICE9IGFuZCByYWlzZSBhCi0gICAgVHlwZUVycm9y
IGZvciBvdGhlciBjb21wYXJpc29ucy4KLQotICAgIE5lZWRlZCBpbiBQeXRob24gMiBvbmx5LCBQ
eXRob24gMyBhbGwgaXQgdGFrZXMgaXMgbm90IGltcGxlbWVudGluZyB0aGUKLSAgICBvdGhlciBv
cGVyYXRvcnMgYXQgYWxsLgotICAgICIiIgotICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQot
ICAgIHJhaXNlIFR5cGVFcnJvcignQ29tcGFyaXNvbiBvcGVyYXRvcnMgb3RoZXIgdGhhbiA9PSBh
bmQgIT0gbm90IHN1cHBvcnRlZCBieSBhcHByb3ggb2JqZWN0cycpCi0KLQotIyBidWlsdGluIHB5
dGVzdC5hcHByb3ggaGVscGVyCi0KLQotY2xhc3MgQXBwcm94QmFzZShvYmplY3QpOgotICAgICIi
IgotICAgIFByb3ZpZGUgc2hhcmVkIHV0aWxpdGllcyBmb3IgbWFraW5nIGFwcHJveGltYXRlIGNv
bXBhcmlzb25zIGJldHdlZW4gbnVtYmVycwotICAgIG9yIHNlcXVlbmNlcyBvZiBudW1iZXJzLgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4cGVjdGVkLCByZWw9Tm9uZSwgYWJz
PU5vbmUsIG5hbl9vaz1GYWxzZSk6Ci0gICAgICAgIHNlbGYuZXhwZWN0ZWQgPSBleHBlY3RlZAot
ICAgICAgICBzZWxmLmFicyA9IGFicwotICAgICAgICBzZWxmLnJlbCA9IHJlbAotICAgICAgICBz
ZWxmLm5hbl9vayA9IG5hbl9vawotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICBy
YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCi0KLSAgICBkZWYgX19lcV9fKHNlbGYsIGFjdHVhbCk6
Ci0gICAgICAgIHJldHVybiBhbGwoCi0gICAgICAgICAgICBhID09IHNlbGYuX2FwcHJveF9zY2Fs
YXIoeCkKLSAgICAgICAgICAgIGZvciBhLCB4IGluIHNlbGYuX3lpZWxkX2NvbXBhcmlzb25zKGFj
dHVhbCkpCi0KLSAgICBfX2hhc2hfXyA9IE5vbmUKLQotICAgIGRlZiBfX25lX18oc2VsZiwgYWN0
dWFsKToKLSAgICAgICAgcmV0dXJuIG5vdCAoYWN0dWFsID09IHNlbGYpCi0KLSAgICBpZiBzeXMu
dmVyc2lvbl9pbmZvWzBdID09IDI6Ci0gICAgICAgIF9fY21wX18gPSBfY21wX3JhaXNlc190eXBl
X2Vycm9yCi0KLSAgICBkZWYgX2FwcHJveF9zY2FsYXIoc2VsZiwgeCk6Ci0gICAgICAgIHJldHVy
biBBcHByb3hTY2FsYXIoeCwgcmVsPXNlbGYucmVsLCBhYnM9c2VsZi5hYnMsIG5hbl9vaz1zZWxm
Lm5hbl9vaykKLQotICAgIGRlZiBfeWllbGRfY29tcGFyaXNvbnMoc2VsZiwgYWN0dWFsKToKLSAg
ICAgICAgIiIiCi0gICAgICAgIFlpZWxkIGFsbCB0aGUgcGFpcnMgb2YgbnVtYmVycyB0byBiZSBj
b21wYXJlZC4gIFRoaXMgaXMgdXNlZCB0bwotICAgICAgICBpbXBsZW1lbnQgdGhlIGBfX2VxX19g
IG1ldGhvZC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IK
LQotCi1jbGFzcyBBcHByb3hOdW1weShBcHByb3hCYXNlKToKLSAgICAiIiIKLSAgICBQZXJmb3Jt
IGFwcHJveGltYXRlIGNvbXBhcmlzb25zIGZvciBudW1weSBhcnJheXMuCi0gICAgIiIiCi0KLSAg
ICAjIFRlbGwgbnVtcHkgdG8gdXNlIG91ciBgX19lcV9fYCBvcGVyYXRvciBpbnN0ZWFkIG9mIGl0
cy4KLSAgICBfX2FycmF5X3ByaW9yaXR5X18gPSAxMDAKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxm
KToKLSAgICAgICAgIyBJdCBtaWdodCBiZSBuaWNlIHRvIHJld3JpdGUgdGhpcyBmdW5jdGlvbiB0
byBhY2NvdW50IGZvciB0aGUKLSAgICAgICAgIyBzaGFwZSBvZiB0aGUgYXJyYXkuLi4KLSAgICAg
ICAgcmV0dXJuICJhcHByb3goezAhcn0pIi5mb3JtYXQobGlzdCgKLSAgICAgICAgICAgIHNlbGYu
X2FwcHJveF9zY2FsYXIoeCkgZm9yIHggaW4gc2VsZi5leHBlY3RlZCkpCi0KLSAgICBpZiBzeXMu
dmVyc2lvbl9pbmZvWzBdID09IDI6Ci0gICAgICAgIF9fY21wX18gPSBfY21wX3JhaXNlc190eXBl
X2Vycm9yCi0KLSAgICBkZWYgX19lcV9fKHNlbGYsIGFjdHVhbCk6Ci0gICAgICAgIGltcG9ydCBu
dW1weSBhcyBucAotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGFjdHVhbCA9IG5wLmFzYXJy
YXkoYWN0dWFsKQotICAgICAgICBleGNlcHQ6ICAjIG5vcWEKLSAgICAgICAgICAgIHJhaXNlIFR5
cGVFcnJvcigiY2Fubm90IGNvbXBhcmUgJ3swfScgdG8gbnVtcHkubmRhcnJheSIuZm9ybWF0KGFj
dHVhbCkpCi0KLSAgICAgICAgaWYgYWN0dWFsLnNoYXBlICE9IHNlbGYuZXhwZWN0ZWQuc2hhcGU6
Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4gQXBwcm94QmFzZS5f
X2VxX18oc2VsZiwgYWN0dWFsKQotCi0gICAgZGVmIF95aWVsZF9jb21wYXJpc29ucyhzZWxmLCBh
Y3R1YWwpOgotICAgICAgICBpbXBvcnQgbnVtcHkgYXMgbnAKLQotICAgICAgICAjIFdlIGNhbiBi
ZSBzdXJlIHRoYXQgYGFjdHVhbGAgaXMgYSBudW1weSBhcnJheSwgYmVjYXVzZSBpdCdzCi0gICAg
ICAgICMgY2FzdGVkIGluIGBfX2VxX19gIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gYEFwcHJveEJh
c2UuX19lcV9fYCwKLSAgICAgICAgIyB3aGljaCBpcyB0aGUgb25seSBtZXRob2QgdGhhdCBjYWxs
cyB0aGlzIG9uZS4KLSAgICAgICAgZm9yIGkgaW4gbnAubmRpbmRleChzZWxmLmV4cGVjdGVkLnNo
YXBlKToKLSAgICAgICAgICAgIHlpZWxkIGFjdHVhbFtpXSwgc2VsZi5leHBlY3RlZFtpXQotCi0K
LWNsYXNzIEFwcHJveE1hcHBpbmcoQXBwcm94QmFzZSk6Ci0gICAgIiIiCi0gICAgUGVyZm9ybSBh
cHByb3hpbWF0ZSBjb21wYXJpc29ucyBmb3IgbWFwcGluZ3Mgd2hlcmUgdGhlIHZhbHVlcyBhcmUg
bnVtYmVycwotICAgICh0aGUga2V5cyBjYW4gYmUgYW55dGhpbmcpLgotICAgICIiIgotCi0gICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gImFwcHJveCh7MCFyfSkiLmZvcm1h
dChkaWN0KAotICAgICAgICAgICAgKGssIHNlbGYuX2FwcHJveF9zY2FsYXIodikpCi0gICAgICAg
ICAgICBmb3IgaywgdiBpbiBzZWxmLmV4cGVjdGVkLml0ZW1zKCkpKQotCi0gICAgZGVmIF9fZXFf
XyhzZWxmLCBhY3R1YWwpOgotICAgICAgICBpZiBzZXQoYWN0dWFsLmtleXMoKSkgIT0gc2V0KHNl
bGYuZXhwZWN0ZWQua2V5cygpKToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAg
IHJldHVybiBBcHByb3hCYXNlLl9fZXFfXyhzZWxmLCBhY3R1YWwpCi0KLSAgICBkZWYgX3lpZWxk
X2NvbXBhcmlzb25zKHNlbGYsIGFjdHVhbCk6Ci0gICAgICAgIGZvciBrIGluIHNlbGYuZXhwZWN0
ZWQua2V5cygpOgotICAgICAgICAgICAgeWllbGQgYWN0dWFsW2tdLCBzZWxmLmV4cGVjdGVkW2td
Ci0KLQotY2xhc3MgQXBwcm94U2VxdWVuY2UoQXBwcm94QmFzZSk6Ci0gICAgIiIiCi0gICAgUGVy
Zm9ybSBhcHByb3hpbWF0ZSBjb21wYXJpc29ucyBmb3Igc2VxdWVuY2VzIG9mIG51bWJlcnMuCi0g
ICAgIiIiCi0KLSAgICAjIFRlbGwgbnVtcHkgdG8gdXNlIG91ciBgX19lcV9fYCBvcGVyYXRvciBp
bnN0ZWFkIG9mIGl0cy4KLSAgICBfX2FycmF5X3ByaW9yaXR5X18gPSAxMDAKLQotICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKLSAgICAgICAgc2VxX3R5cGUgPSB0eXBlKHNlbGYuZXhwZWN0ZWQpCi0g
ICAgICAgIGlmIHNlcV90eXBlIG5vdCBpbiAodHVwbGUsIGxpc3QsIHNldCk6Ci0gICAgICAgICAg
ICBzZXFfdHlwZSA9IGxpc3QKLSAgICAgICAgcmV0dXJuICJhcHByb3goezAhcn0pIi5mb3JtYXQo
c2VxX3R5cGUoCi0gICAgICAgICAgICBzZWxmLl9hcHByb3hfc2NhbGFyKHgpIGZvciB4IGluIHNl
bGYuZXhwZWN0ZWQpKQotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBhY3R1YWwpOgotICAgICAgICBp
ZiBsZW4oYWN0dWFsKSAhPSBsZW4oc2VsZi5leHBlY3RlZCk6Ci0gICAgICAgICAgICByZXR1cm4g
RmFsc2UKLSAgICAgICAgcmV0dXJuIEFwcHJveEJhc2UuX19lcV9fKHNlbGYsIGFjdHVhbCkKLQot
ICAgIGRlZiBfeWllbGRfY29tcGFyaXNvbnMoc2VsZiwgYWN0dWFsKToKLSAgICAgICAgcmV0dXJu
IHppcChhY3R1YWwsIHNlbGYuZXhwZWN0ZWQpCi0KLQotY2xhc3MgQXBwcm94U2NhbGFyKEFwcHJv
eEJhc2UpOgotICAgICIiIgotICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgZm9y
IHNpbmdsZSBudW1iZXJzIG9ubHkuCi0gICAgIiIiCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6
Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1cm4gYSBzdHJpbmcgY29tbXVuaWNhdGluZyBib3Ro
IHRoZSBleHBlY3RlZCB2YWx1ZSBhbmQgdGhlIHRvbGVyYW5jZQotICAgICAgICBmb3IgdGhlIGNv
bXBhcmlzb24gYmVpbmcgbWFkZSwgZS5nLiAnMS4wICstIDFlLTYnLiAgVXNlIHRoZSB1bmljb2Rl
Ci0gICAgICAgIHBsdXMvbWludXMgc3ltYm9sIGlmIHRoaXMgaXMgcHl0aG9uMyAoaXQncyB0b28g
aGFyZCB0byBnZXQgcmlnaHQgZm9yCi0gICAgICAgIHB5dGhvbjIpLgotICAgICAgICAiIiIKLSAg
ICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmV4cGVjdGVkLCBjb21wbGV4KToKLSAgICAgICAgICAg
IHJldHVybiBzdHIoc2VsZi5leHBlY3RlZCkKLQotICAgICAgICAjIEluZmluaXRpZXMgYXJlbid0
IGNvbXBhcmVkIHVzaW5nIHRvbGVyYW5jZXMsIHNvIGRvbid0IHNob3cgYQotICAgICAgICAjIHRv
bGVyYW5jZS4KLSAgICAgICAgaWYgbWF0aC5pc2luZihzZWxmLmV4cGVjdGVkKToKLSAgICAgICAg
ICAgIHJldHVybiBzdHIoc2VsZi5leHBlY3RlZCkKLQotICAgICAgICAjIElmIGEgc2Vuc2libGUg
dG9sZXJhbmNlIGNhbid0IGJlIGNhbGN1bGF0ZWQsIHNlbGYudG9sZXJhbmNlIHdpbGwKLSAgICAg
ICAgIyByYWlzZSBhIFZhbHVlRXJyb3IuICBJbiB0aGlzIGNhc2UsIGRpc3BsYXkgJz8/PycuCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHZldHRlZF90b2xlcmFuY2UgPSAnezouMWV9Jy5mb3Jt
YXQoc2VsZi50b2xlcmFuY2UpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAg
ICAgdmV0dGVkX3RvbGVyYW5jZSA9ICc/Pz8nCi0KLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5m
b1swXSA9PSAyOgotICAgICAgICAgICAgcmV0dXJuICd7MH0gKy0gezF9Jy5mb3JtYXQoc2VsZi5l
eHBlY3RlZCwgdmV0dGVkX3RvbGVyYW5jZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJl
dHVybiB1J3swfSBcdTAwYjEgezF9Jy5mb3JtYXQoc2VsZi5leHBlY3RlZCwgdmV0dGVkX3RvbGVy
YW5jZSkKLQotICAgIGRlZiBfX2VxX18oc2VsZiwgYWN0dWFsKToKLSAgICAgICAgIiIiCi0gICAg
ICAgIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgZXhwZWN0
ZWQgdmFsdWUgd2l0aGluCi0gICAgICAgIHRoZSBwcmUtc3BlY2lmaWVkIHRvbGVyYW5jZS4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgIyBTaG9ydC1jaXJjdWl0IGV4YWN0IGVxdWFsaXR5LgotICAg
ICAgICBpZiBhY3R1YWwgPT0gc2VsZi5leHBlY3RlZDoKLSAgICAgICAgICAgIHJldHVybiBUcnVl
Ci0KLSAgICAgICAgIyBBbGxvdyB0aGUgdXNlciB0byBjb250cm9sIHdoZXRoZXIgTmFOcyBhcmUg
Y29uc2lkZXJlZCBlcXVhbCB0byBlYWNoCi0gICAgICAgICMgb3RoZXIgb3Igbm90LiAgVGhlIGFi
cygpIGNhbGxzIGFyZSBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGNvbXBsZXgKLSAgICAgICAgIyBu
dW1iZXJzLgotICAgICAgICBpZiBtYXRoLmlzbmFuKGFicyhzZWxmLmV4cGVjdGVkKSk6Ci0gICAg
ICAgICAgICByZXR1cm4gc2VsZi5uYW5fb2sgYW5kIG1hdGguaXNuYW4oYWJzKGFjdHVhbCkpCi0K
LSAgICAgICAgIyBJbmZpbml0eSBzaG91bGRuJ3QgYmUgYXBwcm94aW1hdGVseSBlcXVhbCB0byBh
bnl0aGluZyBidXQgaXRzZWxmLCBidXQKLSAgICAgICAgIyBpZiB0aGVyZSdzIGEgcmVsYXRpdmUg
dG9sZXJhbmNlLCBpdCB3aWxsIGJlIGluZmluaXRlIGFuZCBpbmZpbml0eQotICAgICAgICAjIHdp
bGwgc2VlbSBhcHByb3hpbWF0ZWx5IGVxdWFsIHRvIGV2ZXJ5dGhpbmcuICBUaGUgZXF1YWwtdG8t
aXRzZWxmCi0gICAgICAgICMgY2FzZSB3b3VsZCBoYXZlIGJlZW4gc2hvcnQgY2lyY3VpdGVkIGFi
b3ZlLCBzbyBoZXJlIHdlIGNhbiBqdXN0Ci0gICAgICAgICMgcmV0dXJuIGZhbHNlIGlmIHRoZSBl
eHBlY3RlZCB2YWx1ZSBpcyBpbmZpbml0ZS4gIFRoZSBhYnMoKSBjYWxsIGlzCi0gICAgICAgICMg
Zm9yIGNvbXBhdGliaWxpdHkgd2l0aCBjb21wbGV4IG51bWJlcnMuCi0gICAgICAgIGlmIG1hdGgu
aXNpbmYoYWJzKHNlbGYuZXhwZWN0ZWQpKToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0g
ICAgICAgICMgUmV0dXJuIHRydWUgaWYgdGhlIHR3byBudW1iZXJzIGFyZSB3aXRoaW4gdGhlIHRv
bGVyYW5jZS4KLSAgICAgICAgcmV0dXJuIGFicyhzZWxmLmV4cGVjdGVkIC0gYWN0dWFsKSA8PSBz
ZWxmLnRvbGVyYW5jZQotCi0gICAgX19oYXNoX18gPSBOb25lCi0KLSAgICBAcHJvcGVydHkKLSAg
ICBkZWYgdG9sZXJhbmNlKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJuIHRoZSB0
b2xlcmFuY2UgZm9yIHRoZSBjb21wYXJpc29uLiAgVGhpcyBjb3VsZCBiZSBlaXRoZXIgYW4KLSAg
ICAgICAgYWJzb2x1dGUgdG9sZXJhbmNlIG9yIGEgcmVsYXRpdmUgdG9sZXJhbmNlLCBkZXBlbmRp
bmcgb24gd2hhdCB0aGUgdXNlcgotICAgICAgICBzcGVjaWZpZWQgb3Igd2hpY2ggd291bGQgYmUg
bGFyZ2VyLgotICAgICAgICAiIiIKLSAgICAgICAgZGVmIHNldF9kZWZhdWx0KHgsIGRlZmF1bHQp
OgotICAgICAgICAgICAgcmV0dXJuIHggaWYgeCBpcyBub3QgTm9uZSBlbHNlIGRlZmF1bHQKLQot
ICAgICAgICAjIEZpZ3VyZSBvdXQgd2hhdCB0aGUgYWJzb2x1dGUgdG9sZXJhbmNlIHNob3VsZCBi
ZS4gIGBgc2VsZi5hYnNgYCBpcwotICAgICAgICAjIGVpdGhlciBOb25lIG9yIGEgdmFsdWUgc3Bl
Y2lmaWVkIGJ5IHRoZSB1c2VyLgotICAgICAgICBhYnNvbHV0ZV90b2xlcmFuY2UgPSBzZXRfZGVm
YXVsdChzZWxmLmFicywgMWUtMTIpCi0KLSAgICAgICAgaWYgYWJzb2x1dGVfdG9sZXJhbmNlIDwg
MDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImFic29sdXRlIHRvbGVyYW5jZSBjYW4n
dCBiZSBuZWdhdGl2ZToge30iLmZvcm1hdChhYnNvbHV0ZV90b2xlcmFuY2UpKQotICAgICAgICBp
ZiBtYXRoLmlzbmFuKGFic29sdXRlX3RvbGVyYW5jZSk6Ci0gICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCJhYnNvbHV0ZSB0b2xlcmFuY2UgY2FuJ3QgYmUgTmFOLiIpCi0KLSAgICAgICAgIyBJ
ZiB0aGUgdXNlciBzcGVjaWZpZWQgYW4gYWJzb2x1dGUgdG9sZXJhbmNlIGJ1dCBub3QgYSByZWxh
dGl2ZSBvbmUsCi0gICAgICAgICMganVzdCByZXR1cm4gdGhlIGFic29sdXRlIHRvbGVyYW5jZS4K
LSAgICAgICAgaWYgc2VsZi5yZWwgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIHNlbGYuYWJzIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJldHVybiBhYnNvbHV0ZV90b2xlcmFuY2UKLQot
ICAgICAgICAjIEZpZ3VyZSBvdXQgd2hhdCB0aGUgcmVsYXRpdmUgdG9sZXJhbmNlIHNob3VsZCBi
ZS4gIGBgc2VsZi5yZWxgYCBpcwotICAgICAgICAjIGVpdGhlciBOb25lIG9yIGEgdmFsdWUgc3Bl
Y2lmaWVkIGJ5IHRoZSB1c2VyLiAgVGhpcyBpcyBkb25lIGFmdGVyCi0gICAgICAgICMgd2UndmUg
bWFkZSBzdXJlIHRoZSB1c2VyIGRpZG4ndCBhc2sgZm9yIGFuIGFic29sdXRlIHRvbGVyYW5jZSBv
bmx5LAotICAgICAgICAjIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byByYWlzZSBlcnJvcnMgYWJv
dXQgdGhlIHJlbGF0aXZlIHRvbGVyYW5jZSBpZgotICAgICAgICAjIHdlIGFyZW4ndCBldmVuIGdv
aW5nIHRvIHVzZSBpdC4KLSAgICAgICAgcmVsYXRpdmVfdG9sZXJhbmNlID0gc2V0X2RlZmF1bHQo
c2VsZi5yZWwsIDFlLTYpICogYWJzKHNlbGYuZXhwZWN0ZWQpCi0KLSAgICAgICAgaWYgcmVsYXRp
dmVfdG9sZXJhbmNlIDwgMDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInJlbGF0aXZl
IHRvbGVyYW5jZSBjYW4ndCBiZSBuZWdhdGl2ZToge30iLmZvcm1hdChhYnNvbHV0ZV90b2xlcmFu
Y2UpKQotICAgICAgICBpZiBtYXRoLmlzbmFuKHJlbGF0aXZlX3RvbGVyYW5jZSk6Ci0gICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCJyZWxhdGl2ZSB0b2xlcmFuY2UgY2FuJ3QgYmUgTmFOLiIp
Ci0KLSAgICAgICAgIyBSZXR1cm4gdGhlIGxhcmdlciBvZiB0aGUgcmVsYXRpdmUgYW5kIGFic29s
dXRlIHRvbGVyYW5jZXMuCi0gICAgICAgIHJldHVybiBtYXgocmVsYXRpdmVfdG9sZXJhbmNlLCBh
YnNvbHV0ZV90b2xlcmFuY2UpCi0KLQotZGVmIGFwcHJveChleHBlY3RlZCwgcmVsPU5vbmUsIGFi
cz1Ob25lLCBuYW5fb2s9RmFsc2UpOgotICAgICIiIgotICAgIEFzc2VydCB0aGF0IHR3byBudW1i
ZXJzIChvciB0d28gc2V0cyBvZiBudW1iZXJzKSBhcmUgZXF1YWwgdG8gZWFjaCBvdGhlcgotICAg
IHdpdGhpbiBzb21lIHRvbGVyYW5jZS4KLQotICAgIER1ZSB0byB0aGUgYGludHJpY2FjaWVzIG9m
IGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWNgX18sIG51bWJlcnMgdGhhdCB3ZQotICAgIHdvdWxk
IGludHVpdGl2ZWx5IGV4cGVjdCB0byBiZSBlcXVhbCBhcmUgbm90IGFsd2F5cyBzbzo6Ci0KLSAg
ICAgICAgPj4+IDAuMSArIDAuMiA9PSAwLjMKLSAgICAgICAgRmFsc2UKLQotICAgIF9fIGh0dHBz
Oi8vZG9jcy5weXRob24ub3JnLzMvdHV0b3JpYWwvZmxvYXRpbmdwb2ludC5odG1sCi0KLSAgICBU
aGlzIHByb2JsZW0gaXMgY29tbW9ubHkgZW5jb3VudGVyZWQgd2hlbiB3cml0aW5nIHRlc3RzLCBl
LmcuIHdoZW4gbWFraW5nCi0gICAgc3VyZSB0aGF0IGZsb2F0aW5nLXBvaW50IHZhbHVlcyBhcmUg
d2hhdCB5b3UgZXhwZWN0IHRoZW0gdG8gYmUuICBPbmUgd2F5IHRvCi0gICAgZGVhbCB3aXRoIHRo
aXMgcHJvYmxlbSBpcyB0byBhc3NlcnQgdGhhdCB0d28gZmxvYXRpbmctcG9pbnQgbnVtYmVycyBh
cmUKLSAgICBlcXVhbCB0byB3aXRoaW4gc29tZSBhcHByb3ByaWF0ZSB0b2xlcmFuY2U6OgotCi0g
ICAgICAgID4+PiBhYnMoKDAuMSArIDAuMikgLSAwLjMpIDwgMWUtNgotICAgICAgICBUcnVlCi0K
LSAgICBIb3dldmVyLCBjb21wYXJpc29ucyBsaWtlIHRoaXMgYXJlIHRlZGlvdXMgdG8gd3JpdGUg
YW5kIGRpZmZpY3VsdCB0bwotICAgIHVuZGVyc3RhbmQuICBGdXJ0aGVybW9yZSwgYWJzb2x1dGUg
Y29tcGFyaXNvbnMgbGlrZSB0aGUgb25lIGFib3ZlIGFyZQotICAgIHVzdWFsbHkgZGlzY291cmFn
ZWQgYmVjYXVzZSB0aGVyZSdzIG5vIHRvbGVyYW5jZSB0aGF0IHdvcmtzIHdlbGwgZm9yIGFsbAot
ICAgIHNpdHVhdGlvbnMuICBgYDFlLTZgYCBpcyBnb29kIGZvciBudW1iZXJzIGFyb3VuZCBgYDFg
YCwgYnV0IHRvbyBzbWFsbCBmb3IKLSAgICB2ZXJ5IGJpZyBudW1iZXJzIGFuZCB0b28gYmlnIGZv
ciB2ZXJ5IHNtYWxsIG9uZXMuICBJdCdzIGJldHRlciB0byBleHByZXNzCi0gICAgdGhlIHRvbGVy
YW5jZSBhcyBhIGZyYWN0aW9uIG9mIHRoZSBleHBlY3RlZCB2YWx1ZSwgYnV0IHJlbGF0aXZlIGNv
bXBhcmlzb25zCi0gICAgbGlrZSB0aGF0IGFyZSBldmVuIG1vcmUgZGlmZmljdWx0IHRvIHdyaXRl
IGNvcnJlY3RseSBhbmQgY29uY2lzZWx5LgotCi0gICAgVGhlIGBgYXBwcm94YGAgY2xhc3MgcGVy
Zm9ybXMgZmxvYXRpbmctcG9pbnQgY29tcGFyaXNvbnMgdXNpbmcgYSBzeW50YXgKLSAgICB0aGF0
J3MgYXMgaW50dWl0aXZlIGFzIHBvc3NpYmxlOjoKLQotICAgICAgICA+Pj4gZnJvbSBweXRlc3Qg
aW1wb3J0IGFwcHJveAotICAgICAgICA+Pj4gMC4xICsgMC4yID09IGFwcHJveCgwLjMpCi0gICAg
ICAgIFRydWUKLQotICAgIFRoZSBzYW1lIHN5bnRheCBhbHNvIHdvcmtzIGZvciBzZXF1ZW5jZXMg
b2YgbnVtYmVyczo6Ci0KLSAgICAgICAgPj4+ICgwLjEgKyAwLjIsIDAuMiArIDAuNCkgPT0gYXBw
cm94KCgwLjMsIDAuNikpCi0gICAgICAgIFRydWUKLQotICAgIERpY3Rpb25hcnkgKnZhbHVlcyo6
OgotCi0gICAgICAgID4+PiB7J2EnOiAwLjEgKyAwLjIsICdiJzogMC4yICsgMC40fSA9PSBhcHBy
b3goeydhJzogMC4zLCAnYic6IDAuNn0pCi0gICAgICAgIFRydWUKLQotICAgIEFuZCBgYG51bXB5
YGAgYXJyYXlzOjoKLQotICAgICAgICA+Pj4gaW1wb3J0IG51bXB5IGFzIG5wICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZG9jdGVzdDog
K1NLSVAKLSAgICAgICAgPj4+IG5wLmFycmF5KFswLjEsIDAuMl0pICsgbnAuYXJyYXkoWzAuMiwg
MC40XSkgPT0gYXBwcm94KG5wLmFycmF5KFswLjMsIDAuNl0pKSAjIGRvY3Rlc3Q6ICtTS0lQCi0g
ICAgICAgIFRydWUKLQotICAgIEJ5IGRlZmF1bHQsIGBgYXBwcm94YGAgY29uc2lkZXJzIG51bWJl
cnMgd2l0aGluIGEgcmVsYXRpdmUgdG9sZXJhbmNlIG9mCi0gICAgYGAxZS02YGAgKGkuZS4gb25l
IHBhcnQgaW4gYSBtaWxsaW9uKSBvZiBpdHMgZXhwZWN0ZWQgdmFsdWUgdG8gYmUgZXF1YWwuCi0g
ICAgVGhpcyB0cmVhdG1lbnQgd291bGQgbGVhZCB0byBzdXJwcmlzaW5nIHJlc3VsdHMgaWYgdGhl
IGV4cGVjdGVkIHZhbHVlIHdhcwotICAgIGBgMC4wYGAsIGJlY2F1c2Ugbm90aGluZyBidXQgYGAw
LjBgYCBpdHNlbGYgaXMgcmVsYXRpdmVseSBjbG9zZSB0byBgYDAuMGBgLgotICAgIFRvIGhhbmRs
ZSB0aGlzIGNhc2UgbGVzcyBzdXJwcmlzaW5nbHksIGBgYXBwcm94YGAgYWxzbyBjb25zaWRlcnMg
bnVtYmVycwotICAgIHdpdGhpbiBhbiBhYnNvbHV0ZSB0b2xlcmFuY2Ugb2YgYGAxZS0xMmBgIG9m
IGl0cyBleHBlY3RlZCB2YWx1ZSB0byBiZQotICAgIGVxdWFsLiAgSW5maW5pdHkgYW5kIE5hTiBh
cmUgc3BlY2lhbCBjYXNlcy4gIEluZmluaXR5IGlzIG9ubHkgY29uc2lkZXJlZAotICAgIGVxdWFs
IHRvIGl0c2VsZiwgcmVnYXJkbGVzcyBvZiB0aGUgcmVsYXRpdmUgdG9sZXJhbmNlLiAgTmFOIGlz
IG5vdAotICAgIGNvbnNpZGVyZWQgZXF1YWwgdG8gYW55dGhpbmcgYnkgZGVmYXVsdCwgYnV0IHlv
dSBjYW4gbWFrZSBpdCBiZSBlcXVhbCB0bwotICAgIGl0c2VsZiBieSBzZXR0aW5nIHRoZSBgYG5h
bl9va2BgIGFyZ3VtZW50IHRvIFRydWUuICAoVGhpcyBpcyBtZWFudCB0bwotICAgIGZhY2lsaXRh
dGUgY29tcGFyaW5nIGFycmF5cyB0aGF0IHVzZSBOYU4gdG8gbWVhbiAibm8gZGF0YSIuKQotCi0g
ICAgQm90aCB0aGUgcmVsYXRpdmUgYW5kIGFic29sdXRlIHRvbGVyYW5jZXMgY2FuIGJlIGNoYW5n
ZWQgYnkgcGFzc2luZwotICAgIGFyZ3VtZW50cyB0byB0aGUgYGBhcHByb3hgYCBjb25zdHJ1Y3Rv
cjo6Ci0KLSAgICAgICAgPj4+IDEuMDAwMSA9PSBhcHByb3goMSkKLSAgICAgICAgRmFsc2UKLSAg
ICAgICAgPj4+IDEuMDAwMSA9PSBhcHByb3goMSwgcmVsPTFlLTMpCi0gICAgICAgIFRydWUKLSAg
ICAgICAgPj4+IDEuMDAwMSA9PSBhcHByb3goMSwgYWJzPTFlLTMpCi0gICAgICAgIFRydWUKLQot
ICAgIElmIHlvdSBzcGVjaWZ5IGBgYWJzYGAgYnV0IG5vdCBgYHJlbGBgLCB0aGUgY29tcGFyaXNv
biB3aWxsIG5vdCBjb25zaWRlcgotICAgIHRoZSByZWxhdGl2ZSB0b2xlcmFuY2UgYXQgYWxsLiAg
SW4gb3RoZXIgd29yZHMsIHR3byBudW1iZXJzIHRoYXQgYXJlIHdpdGhpbgotICAgIHRoZSBkZWZh
dWx0IHJlbGF0aXZlIHRvbGVyYW5jZSBvZiBgYDFlLTZgYCB3aWxsIHN0aWxsIGJlIGNvbnNpZGVy
ZWQgdW5lcXVhbAotICAgIGlmIHRoZXkgZXhjZWVkIHRoZSBzcGVjaWZpZWQgYWJzb2x1dGUgdG9s
ZXJhbmNlLiAgSWYgeW91IHNwZWNpZnkgYm90aAotICAgIGBgYWJzYGAgYW5kIGBgcmVsYGAsIHRo
ZSBudW1iZXJzIHdpbGwgYmUgY29uc2lkZXJlZCBlcXVhbCBpZiBlaXRoZXIKLSAgICB0b2xlcmFu
Y2UgaXMgbWV0OjoKLQotICAgICAgICA+Pj4gMSArIDFlLTggPT0gYXBwcm94KDEpCi0gICAgICAg
IFRydWUKLSAgICAgICAgPj4+IDEgKyAxZS04ID09IGFwcHJveCgxLCBhYnM9MWUtMTIpCi0gICAg
ICAgIEZhbHNlCi0gICAgICAgID4+PiAxICsgMWUtOCA9PSBhcHByb3goMSwgcmVsPTFlLTYsIGFi
cz0xZS0xMikKLSAgICAgICAgVHJ1ZQotCi0gICAgSWYgeW91J3JlIHRoaW5raW5nIGFib3V0IHVz
aW5nIGBgYXBwcm94YGAsIHRoZW4geW91IG1pZ2h0IHdhbnQgdG8ga25vdyBob3cKLSAgICBpdCBj
b21wYXJlcyB0byBvdGhlciBnb29kIHdheXMgb2YgY29tcGFyaW5nIGZsb2F0aW5nLXBvaW50IG51
bWJlcnMuICBBbGwgb2YKLSAgICB0aGVzZSBhbGdvcml0aG1zIGFyZSBiYXNlZCBvbiByZWxhdGl2
ZSBhbmQgYWJzb2x1dGUgdG9sZXJhbmNlcyBhbmQgc2hvdWxkCi0gICAgYWdyZWUgZm9yIHRoZSBt
b3N0IHBhcnQsIGJ1dCB0aGV5IGRvIGhhdmUgbWVhbmluZ2Z1bCBkaWZmZXJlbmNlczoKLQotICAg
IC0gYGBtYXRoLmlzY2xvc2UoYSwgYiwgcmVsX3RvbD0xZS05LCBhYnNfdG9sPTAuMClgYDogIFRy
dWUgaWYgdGhlIHJlbGF0aXZlCi0gICAgICB0b2xlcmFuY2UgaXMgbWV0IHcuci50LiBlaXRoZXIg
YGBhYGAgb3IgYGBiYGAgb3IgaWYgdGhlIGFic29sdXRlCi0gICAgICB0b2xlcmFuY2UgaXMgbWV0
LiAgQmVjYXVzZSB0aGUgcmVsYXRpdmUgdG9sZXJhbmNlIGlzIGNhbGN1bGF0ZWQgdy5yLnQuCi0g
ICAgICBib3RoIGBgYWBgIGFuZCBgYGJgYCwgdGhpcyB0ZXN0IGlzIHN5bW1ldHJpYyAoaS5lLiAg
bmVpdGhlciBgYGFgYCBub3IKLSAgICAgIGBgYmBgIGlzIGEgInJlZmVyZW5jZSB2YWx1ZSIpLiAg
WW91IGhhdmUgdG8gc3BlY2lmeSBhbiBhYnNvbHV0ZSB0b2xlcmFuY2UKLSAgICAgIGlmIHlvdSB3
YW50IHRvIGNvbXBhcmUgdG8gYGAwLjBgYCBiZWNhdXNlIHRoZXJlIGlzIG5vIHRvbGVyYW5jZSBi
eQotICAgICAgZGVmYXVsdC4gIE9ubHkgYXZhaWxhYmxlIGluIHB5dGhvbj49My41LiAgYE1vcmUg
aW5mb3JtYXRpb24uLi5gX18KLQotICAgICAgX18gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9s
aWJyYXJ5L21hdGguaHRtbCNtYXRoLmlzY2xvc2UKLQotICAgIC0gYGBudW1weS5pc2Nsb3NlKGEs
IGIsIHJ0b2w9MWUtNSwgYXRvbD0xZS04KWBgOiBUcnVlIGlmIHRoZSBkaWZmZXJlbmNlCi0gICAg
ICBiZXR3ZWVuIGBgYWBgIGFuZCBgYGJgYCBpcyBsZXNzIHRoYXQgdGhlIHN1bSBvZiB0aGUgcmVs
YXRpdmUgdG9sZXJhbmNlCi0gICAgICB3LnIudC4gYGBiYGAgYW5kIHRoZSBhYnNvbHV0ZSB0b2xl
cmFuY2UuICBCZWNhdXNlIHRoZSByZWxhdGl2ZSB0b2xlcmFuY2UKLSAgICAgIGlzIG9ubHkgY2Fs
Y3VsYXRlZCB3LnIudC4gYGBiYGAsIHRoaXMgdGVzdCBpcyBhc3ltbWV0cmljIGFuZCB5b3UgY2Fu
Ci0gICAgICB0aGluayBvZiBgYGJgYCBhcyB0aGUgcmVmZXJlbmNlIHZhbHVlLiAgU3VwcG9ydCBm
b3IgY29tcGFyaW5nIHNlcXVlbmNlcwotICAgICAgaXMgcHJvdmlkZWQgYnkgYGBudW1weS5hbGxj
bG9zZWBgLiAgYE1vcmUgaW5mb3JtYXRpb24uLi5gX18KLQotICAgICAgX18gaHR0cDovL2RvY3Mu
c2NpcHkub3JnL2RvYy9udW1weS0xLjEwLjAvcmVmZXJlbmNlL2dlbmVyYXRlZC9udW1weS5pc2Ns
b3NlLmh0bWwKLQotICAgIC0gYGB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRBbG1vc3RFcXVhbChh
LCBiKWBgOiBUcnVlIGlmIGBgYWBgIGFuZCBgYGJgYAotICAgICAgYXJlIHdpdGhpbiBhbiBhYnNv
bHV0ZSB0b2xlcmFuY2Ugb2YgYGAxZS03YGAuICBObyByZWxhdGl2ZSB0b2xlcmFuY2UgaXMKLSAg
ICAgIGNvbnNpZGVyZWQgYW5kIHRoZSBhYnNvbHV0ZSB0b2xlcmFuY2UgY2Fubm90IGJlIGNoYW5n
ZWQsIHNvIHRoaXMgZnVuY3Rpb24KLSAgICAgIGlzIG5vdCBhcHByb3ByaWF0ZSBmb3IgdmVyeSBs
YXJnZSBvciB2ZXJ5IHNtYWxsIG51bWJlcnMuICBBbHNvLCBpdCdzIG9ubHkKLSAgICAgIGF2YWls
YWJsZSBpbiBzdWJjbGFzc2VzIG9mIGBgdW5pdHRlc3QuVGVzdENhc2VgYCBhbmQgaXQncyB1Z2x5
IGJlY2F1c2UgaXQKLSAgICAgIGRvZXNuJ3QgZm9sbG93IFBFUDguICBgTW9yZSBpbmZvcm1hdGlv
bi4uLmBfXwotCi0gICAgICBfXyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvdW5p
dHRlc3QuaHRtbCN1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRBbG1vc3RFcXVhbAotCi0gICAgLSBg
YGEgPT0gcHl0ZXN0LmFwcHJveChiLCByZWw9MWUtNiwgYWJzPTFlLTEyKWBgOiBUcnVlIGlmIHRo
ZSByZWxhdGl2ZQotICAgICAgdG9sZXJhbmNlIGlzIG1ldCB3LnIudC4gYGBiYGAgb3IgaWYgdGhl
IGFic29sdXRlIHRvbGVyYW5jZSBpcyBtZXQuCi0gICAgICBCZWNhdXNlIHRoZSByZWxhdGl2ZSB0
b2xlcmFuY2UgaXMgb25seSBjYWxjdWxhdGVkIHcuci50LiBgYGJgYCwgdGhpcyB0ZXN0Ci0gICAg
ICBpcyBhc3ltbWV0cmljIGFuZCB5b3UgY2FuIHRoaW5rIG9mIGBgYmBgIGFzIHRoZSByZWZlcmVu
Y2UgdmFsdWUuICBJbiB0aGUKLSAgICAgIHNwZWNpYWwgY2FzZSB0aGF0IHlvdSBleHBsaWNpdGx5
IHNwZWNpZnkgYW4gYWJzb2x1dGUgdG9sZXJhbmNlIGJ1dCBub3QgYQotICAgICAgcmVsYXRpdmUg
dG9sZXJhbmNlLCBvbmx5IHRoZSBhYnNvbHV0ZSB0b2xlcmFuY2UgaXMgY29uc2lkZXJlZC4KLQot
ICAgIC4uIHdhcm5pbmc6OgotCi0gICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKLQotICAg
ICAgIEluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVudCBiZWhhdmlvciwgYGBUeXBlRXJyb3Jg
YCBpcwotICAgICAgIHJhaXNlZCBmb3IgYGA+YGAsIGBgPj1gYCwgYGA8YGAgYW5kIGBgPD1gYCBj
b21wYXJpc29ucy4KLSAgICAgICBUaGUgZXhhbXBsZSBiZWxvdyBpbGx1c3RyYXRlcyB0aGUgcHJv
YmxlbTo6Ci0KLSAgICAgICAgICAgYXNzZXJ0IGFwcHJveCgwLjEpID4gMC4xICsgMWUtMTAgICMg
Y2FsbHMgYXBwcm94KDAuMSkuX19ndF9fKDAuMSArIDFlLTEwKQotICAgICAgICAgICBhc3NlcnQg
MC4xICsgMWUtMTAgPiBhcHByb3goMC4xKSAgIyBjYWxscyBhcHByb3goMC4xKS5fX2x0X18oMC4x
ICsgMWUtMTApCi0KLSAgICAgICBJbiB0aGUgc2Vjb25kIGV4YW1wbGUgb25lIGV4cGVjdHMgYGBh
cHByb3goMC4xKS5fX2xlX18oMC4xICsgMWUtMTApYGAKLSAgICAgICB0byBiZSBjYWxsZWQuIEJ1
dCBpbnN0ZWFkLCBgYGFwcHJveCgwLjEpLl9fbHRfXygwLjEgKyAxZS0xMClgYCBpcyB1c2VkIHRv
Ci0gICAgICAgY29tcGFyaXNvbi4gVGhpcyBpcyBiZWNhdXNlIHRoZSBjYWxsIGhpZXJhcmNoeSBv
ZiByaWNoIGNvbXBhcmlzb25zCi0gICAgICAgZm9sbG93cyBhIGZpeGVkIGJlaGF2aW9yLiBgTW9y
ZSBpbmZvcm1hdGlvbi4uLmBfXwotCi0gICAgICAgX18gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcv
My9yZWZlcmVuY2UvZGF0YW1vZGVsLmh0bWwjb2JqZWN0Ll9fZ2VfXwotICAgICIiIgotCi0gICAg
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTWFwcGluZywgU2VxdWVuY2UKLSAgICBmcm9tIF9weXRl
c3QuY29tcGF0IGltcG9ydCBTVFJJTkdfVFlQRVMgYXMgU3RyaW5nCi0KLSAgICAjIERlbGVnYXRl
IHRoZSBjb21wYXJpc29uIHRvIGEgY2xhc3MgdGhhdCBrbm93cyBob3cgdG8gZGVhbCB3aXRoIHRo
ZSB0eXBlCi0gICAgIyBvZiB0aGUgZXhwZWN0ZWQgdmFsdWUgKGUuZy4gaW50LCBmbG9hdCwgbGlz
dCwgZGljdCwgbnVtcHkuYXJyYXksIGV0YykuCi0gICAgIwotICAgICMgVGhpcyBhcmNoaXRlY3R1
cmUgaXMgcmVhbGx5IGRyaXZlbiBieSB0aGUgbmVlZCB0byBzdXBwb3J0IG51bXB5IGFycmF5cy4K
LSAgICAjIFRoZSBvbmx5IHdheSB0byBvdmVycmlkZSBgPT1gIGZvciBhcnJheXMgd2l0aG91dCBy
ZXF1aXJpbmcgdGhhdCBhcHByb3ggYmUKLSAgICAjIHRoZSBsZWZ0IG9wZXJhbmQgaXMgdG8gaW5o
ZXJpdCB0aGUgYXBwcm94IG9iamVjdCBmcm9tIGBudW1weS5uZGFycmF5YC4KLSAgICAjIEJ1dCB0
aGF0IGNhbid0IGJlIGEgZ2VuZXJhbCBzb2x1dGlvbiwgYmVjYXVzZSBpdCByZXF1aXJlcyAoMSkg
bnVtcHkgdG8gYmUKLSAgICAjIGluc3RhbGxlZCBhbmQgKDIpIHRoZSBleHBlY3RlZCB2YWx1ZSB0
byBiZSBhIG51bXB5IGFycmF5LiAgU28gdGhlIGdlbmVyYWwKLSAgICAjIHNvbHV0aW9uIGlzIHRv
IGRlbGVnYXRlIGVhY2ggdHlwZSBvZiBleHBlY3RlZCB2YWx1ZSB0byBhIGRpZmZlcmVudCBjbGFz
cy4KLSAgICAjCi0gICAgIyBUaGlzIGhhcyB0aGUgYWR2YW50YWdlIHRoYXQgaXQgbWFkZSBpdCBl
YXN5IHRvIHN1cHBvcnQgbWFwcGluZyB0eXBlcwotICAgICMgKGkuZS4gZGljdCkuICBUaGUgb2xk
IGNvZGUgYWNjZXB0ZWQgbWFwcGluZyB0eXBlcywgYnV0IHdvdWxkIG9ubHkgY29tcGFyZQotICAg
ICMgdGhlaXIga2V5cywgd2hpY2ggaXMgcHJvYmFibHkgbm90IHdoYXQgbW9zdCBwZW9wbGUgd291
bGQgZXhwZWN0LgotCi0gICAgaWYgX2lzX251bXB5X2FycmF5KGV4cGVjdGVkKToKLSAgICAgICAg
Y2xzID0gQXBwcm94TnVtcHkKLSAgICBlbGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWQsIE1hcHBpbmcp
OgotICAgICAgICBjbHMgPSBBcHByb3hNYXBwaW5nCi0gICAgZWxpZiBpc2luc3RhbmNlKGV4cGVj
dGVkLCBTZXF1ZW5jZSkgYW5kIG5vdCBpc2luc3RhbmNlKGV4cGVjdGVkLCBTdHJpbmcpOgotICAg
ICAgICBjbHMgPSBBcHByb3hTZXF1ZW5jZQotICAgIGVsc2U6Ci0gICAgICAgIGNscyA9IEFwcHJv
eFNjYWxhcgotCi0gICAgcmV0dXJuIGNscyhleHBlY3RlZCwgcmVsLCBhYnMsIG5hbl9vaykKLQot
Ci1kZWYgX2lzX251bXB5X2FycmF5KG9iaik6Ci0gICAgIiIiCi0gICAgUmV0dXJuIHRydWUgaWYg
dGhlIGdpdmVuIG9iamVjdCBpcyBhIG51bXB5IGFycmF5LiAgTWFrZSBhIHNwZWNpYWwgZWZmb3J0
IHRvCi0gICAgYXZvaWQgaW1wb3J0aW5nIG51bXB5IHVubGVzcyBpdCdzIHJlYWxseSBuZWNlc3Nh
cnkuCi0gICAgIiIiCi0gICAgaW1wb3J0IGluc3BlY3QKLQotICAgIGZvciBjbHMgaW4gaW5zcGVj
dC5nZXRtcm8odHlwZShvYmopKToKLSAgICAgICAgaWYgY2xzLl9fbW9kdWxlX18gPT0gJ251bXB5
JzoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBpbXBvcnQgbnVtcHkgYXMgbnAK
LSAgICAgICAgICAgICAgICByZXR1cm4gaXNpbnN0YW5jZShvYmosIG5wLm5kYXJyYXkpCi0gICAg
ICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcwotCi0gICAg
cmV0dXJuIEZhbHNlCi0KLQotIyBidWlsdGluIHB5dGVzdC5yYWlzZXMgaGVscGVyCi0KLWRlZiBy
YWlzZXMoZXhwZWN0ZWRfZXhjZXB0aW9uLCAqYXJncywgKiprd2FyZ3MpOgotICAgICIiIgotICAg
IEFzc2VydCB0aGF0IGEgY29kZSBibG9jay9mdW5jdGlvbiBjYWxsIHJhaXNlcyBgYGV4cGVjdGVk
X2V4Y2VwdGlvbmBgCi0gICAgYW5kIHJhaXNlIGEgZmFpbHVyZSBleGNlcHRpb24gb3RoZXJ3aXNl
LgotCi0gICAgVGhpcyBoZWxwZXIgcHJvZHVjZXMgYSBgYEV4Y2VwdGlvbkluZm8oKWBgIG9iamVj
dCAoc2VlIGJlbG93KS4KLQotICAgIFlvdSBtYXkgdXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBjb250
ZXh0IG1hbmFnZXI6OgotCi0gICAgICAgID4+PiB3aXRoIHJhaXNlcyhaZXJvRGl2aXNpb25FcnJv
cik6Ci0gICAgICAgIC4uLiAgICAxLzAKLQotICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMi4xMAot
Ci0gICAgSW4gdGhlIGNvbnRleHQgbWFuYWdlciBmb3JtIHlvdSBtYXkgdXNlIHRoZSBrZXl3b3Jk
IGFyZ3VtZW50Ci0gICAgYGBtZXNzYWdlYGAgdG8gc3BlY2lmeSBhIGN1c3RvbSBmYWlsdXJlIG1l
c3NhZ2U6OgotCi0gICAgICAgID4+PiB3aXRoIHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgbWVz
c2FnZT0iRXhwZWN0aW5nIFplcm9EaXZpc2lvbkVycm9yIik6Ci0gICAgICAgIC4uLiAgICBwYXNz
Ci0gICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKLSAgICAgICAgICAu
Li4KLSAgICAgICAgRmFpbGVkOiBFeHBlY3RpbmcgWmVyb0RpdmlzaW9uRXJyb3IKLQotICAgIC4u
IG5vdGU6OgotCi0gICAgICAgV2hlbiB1c2luZyBgYHB5dGVzdC5yYWlzZXNgYCBhcyBhIGNvbnRl
eHQgbWFuYWdlciwgaXQncyB3b3J0aHdoaWxlIHRvCi0gICAgICAgbm90ZSB0aGF0IG5vcm1hbCBj
b250ZXh0IG1hbmFnZXIgcnVsZXMgYXBwbHkgYW5kIHRoYXQgdGhlIGV4Y2VwdGlvbgotICAgICAg
IHJhaXNlZCAqbXVzdCogYmUgdGhlIGZpbmFsIGxpbmUgaW4gdGhlIHNjb3BlIG9mIHRoZSBjb250
ZXh0IG1hbmFnZXIuCi0gICAgICAgTGluZXMgb2YgY29kZSBhZnRlciB0aGF0LCB3aXRoaW4gdGhl
IHNjb3BlIG9mIHRoZSBjb250ZXh0IG1hbmFnZXIgd2lsbAotICAgICAgIG5vdCBiZSBleGVjdXRl
ZC4gRm9yIGV4YW1wbGU6OgotCi0gICAgICAgICAgID4+PiB2YWx1ZSA9IDE1Ci0gICAgICAgICAg
ID4+PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9yKSBhcyBleGNfaW5mbzoKLSAgICAgICAgICAgLi4u
ICAgICBpZiB2YWx1ZSA+IDEwOgotICAgICAgICAgICAuLi4gICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJ2YWx1ZSBtdXN0IGJlIDw9IDEwIikKLSAgICAgICAgICAgLi4uICAgICBhc3NlcnQgZXhj
X2luZm8udHlwZSA9PSBWYWx1ZUVycm9yICAjIHRoaXMgd2lsbCBub3QgZXhlY3V0ZQotCi0gICAg
ICAgSW5zdGVhZCwgdGhlIGZvbGxvd2luZyBhcHByb2FjaCBtdXN0IGJlIHRha2VuIChub3RlIHRo
ZSBkaWZmZXJlbmNlIGluCi0gICAgICAgc2NvcGUpOjoKLQotICAgICAgICAgICA+Pj4gd2l0aCBy
YWlzZXMoVmFsdWVFcnJvcikgYXMgZXhjX2luZm86Ci0gICAgICAgICAgIC4uLiAgICAgaWYgdmFs
dWUgPiAxMDoKLSAgICAgICAgICAgLi4uICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidmFsdWUg
bXVzdCBiZSA8PSAxMCIpCi0gICAgICAgICAgIC4uLgotICAgICAgICAgICA+Pj4gYXNzZXJ0IGV4
Y19pbmZvLnR5cGUgPT0gVmFsdWVFcnJvcgotCi0KLSAgICBTaW5jZSB2ZXJzaW9uIGBgMy4xYGAg
eW91IGNhbiB1c2UgdGhlIGtleXdvcmQgYXJndW1lbnQgYGBtYXRjaGBgIHRvIGFzc2VydCB0aGF0
IHRoZQotICAgIGV4Y2VwdGlvbiBtYXRjaGVzIGEgdGV4dCBvciByZWdleDo6Ci0KLSAgICAgICAg
Pj4+IHdpdGggcmFpc2VzKFZhbHVlRXJyb3IsIG1hdGNoPSdtdXN0IGJlIDAgb3IgTm9uZScpOgot
ICAgICAgICAuLi4gICAgIHJhaXNlIFZhbHVlRXJyb3IoInZhbHVlIG11c3QgYmUgMCBvciBOb25l
IikKLQotICAgICAgICA+Pj4gd2l0aCByYWlzZXMoVmFsdWVFcnJvciwgbWF0Y2g9cidtdXN0IGJl
IFxkKyQnKToKLSAgICAgICAgLi4uICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJl
IDQyIikKLQotICAgICoqTGVnYWN5IGZvcm1zKioKLQotICAgIFRoZSBmb3JtcyBiZWxvdyBhcmUg
ZnVsbHkgc3VwcG9ydGVkIGJ1dCBhcmUgZGlzY291cmFnZWQgZm9yIG5ldyBjb2RlIGJlY2F1c2Ug
dGhlCi0gICAgY29udGV4dCBtYW5hZ2VyIGZvcm0gaXMgcmVnYXJkZWQgYXMgbW9yZSByZWFkYWJs
ZSBhbmQgbGVzcyBlcnJvci1wcm9uZS4KLQotICAgIEl0IGlzIHBvc3NpYmxlIHRvIHNwZWNpZnkg
YSBjYWxsYWJsZSBieSBwYXNzaW5nIGEgdG8tYmUtY2FsbGVkIGxhbWJkYTo6Ci0KLSAgICAgICAg
Pj4+IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgbGFtYmRhOiAxLzApCi0gICAgICAgIDxFeGNl
cHRpb25JbmZvIC4uLj4KLQotICAgIG9yIHlvdSBjYW4gc3BlY2lmeSBhbiBhcmJpdHJhcnkgY2Fs
bGFibGUgd2l0aCBhcmd1bWVudHM6OgotCi0gICAgICAgID4+PiBkZWYgZih4KTogcmV0dXJuIDEv
eAotICAgICAgICAuLi4KLSAgICAgICAgPj4+IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgZiwg
MCkKLSAgICAgICAgPEV4Y2VwdGlvbkluZm8gLi4uPgotICAgICAgICA+Pj4gcmFpc2VzKFplcm9E
aXZpc2lvbkVycm9yLCBmLCB4PTApCi0gICAgICAgIDxFeGNlcHRpb25JbmZvIC4uLj4KLQotICAg
IEl0IGlzIGFsc28gcG9zc2libGUgdG8gcGFzcyBhIHN0cmluZyB0byBiZSBldmFsdWF0ZWQgYXQg
cnVudGltZTo6Ci0KLSAgICAgICAgPj4+IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgImYoMCki
KQotICAgICAgICA8RXhjZXB0aW9uSW5mbyAuLi4+Ci0KLSAgICBUaGUgc3RyaW5nIHdpbGwgYmUg
ZXZhbHVhdGVkIHVzaW5nIHRoZSBzYW1lIGBgbG9jYWxzKClgYCBhbmQgYGBnbG9iYWxzKClgYAot
ICAgIGF0IHRoZSBtb21lbnQgb2YgdGhlIGBgcmFpc2VzYGAgY2FsbC4KLQotICAgIC4uIGF1dG9j
bGFzczo6IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbwotICAgICAgICA6bWVtYmVyczoKLQot
ICAgIC4uIG5vdGU6OgotICAgICAgICBTaW1pbGFyIHRvIGNhdWdodCBleGNlcHRpb24gb2JqZWN0
cyBpbiBQeXRob24sIGV4cGxpY2l0bHkgY2xlYXJpbmcKLSAgICAgICAgbG9jYWwgcmVmZXJlbmNl
cyB0byByZXR1cm5lZCBgYEV4Y2VwdGlvbkluZm9gYCBvYmplY3RzIGNhbgotICAgICAgICBoZWxw
IHRoZSBQeXRob24gaW50ZXJwcmV0ZXIgc3BlZWQgdXAgaXRzIGdhcmJhZ2UgY29sbGVjdGlvbi4K
LQotICAgICAgICBDbGVhcmluZyB0aG9zZSByZWZlcmVuY2VzIGJyZWFrcyBhIHJlZmVyZW5jZSBj
eWNsZQotICAgICAgICAoYGBFeGNlcHRpb25JbmZvYGAgLS0+IGNhdWdodCBleGNlcHRpb24gLS0+
IGZyYW1lIHN0YWNrIHJhaXNpbmcKLSAgICAgICAgdGhlIGV4Y2VwdGlvbiAtLT4gY3VycmVudCBm
cmFtZSBzdGFjayAtLT4gbG9jYWwgdmFyaWFibGVzIC0tPgotICAgICAgICBgYEV4Y2VwdGlvbklu
Zm9gYCkgd2hpY2ggbWFrZXMgUHl0aG9uIGtlZXAgYWxsIG9iamVjdHMgcmVmZXJlbmNlZAotICAg
ICAgICBmcm9tIHRoYXQgY3ljbGUgKGluY2x1ZGluZyBhbGwgbG9jYWwgdmFyaWFibGVzIGluIHRo
ZSBjdXJyZW50Ci0gICAgICAgIGZyYW1lKSBhbGl2ZSB1bnRpbCB0aGUgbmV4dCBjeWNsaWMgZ2Fy
YmFnZSBjb2xsZWN0aW9uIHJ1bi4gU2VlIHRoZQotICAgICAgICBvZmZpY2lhbCBQeXRob24gYGB0
cnlgYCBzdGF0ZW1lbnQgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxlZAotICAgICAgICBp
bmZvcm1hdGlvbi4KLQotICAgICIiIgotICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAg
IG1zZyA9ICgiZXhjZXB0aW9ucyBtdXN0IGJlIG9sZC1zdHlsZSBjbGFzc2VzIG9yIgotICAgICAg
ICAgICAiIGRlcml2ZWQgZnJvbSBCYXNlRXhjZXB0aW9uLCBub3QgJXMiKQotICAgIGlmIGlzaW5z
dGFuY2UoZXhwZWN0ZWRfZXhjZXB0aW9uLCB0dXBsZSk6Ci0gICAgICAgIGZvciBleGMgaW4gZXhw
ZWN0ZWRfZXhjZXB0aW9uOgotICAgICAgICAgICAgaWYgbm90IGlzY2xhc3MoZXhjKToKLSAgICAg
ICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnICUgdHlwZShleGMpKQotICAgIGVsaWYgbm90
IGlzY2xhc3MoZXhwZWN0ZWRfZXhjZXB0aW9uKToKLSAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1z
ZyAlIHR5cGUoZXhwZWN0ZWRfZXhjZXB0aW9uKSkKLQotICAgIG1lc3NhZ2UgPSAiRElEIE5PVCBS
QUlTRSB7MH0iLmZvcm1hdChleHBlY3RlZF9leGNlcHRpb24pCi0gICAgbWF0Y2hfZXhwciA9IE5v
bmUKLQotICAgIGlmIG5vdCBhcmdzOgotICAgICAgICBpZiAibWVzc2FnZSIgaW4ga3dhcmdzOgot
ICAgICAgICAgICAgbWVzc2FnZSA9IGt3YXJncy5wb3AoIm1lc3NhZ2UiKQotICAgICAgICBpZiAi
bWF0Y2giIGluIGt3YXJnczoKLSAgICAgICAgICAgIG1hdGNoX2V4cHIgPSBrd2FyZ3MucG9wKCJt
YXRjaCIpCi0gICAgICAgICAgICBtZXNzYWdlICs9ICIgbWF0Y2hpbmcgJ3swfSciLmZvcm1hdCht
YXRjaF9leHByKQotICAgICAgICByZXR1cm4gUmFpc2VzQ29udGV4dChleHBlY3RlZF9leGNlcHRp
b24sIG1lc3NhZ2UsIG1hdGNoX2V4cHIpCi0gICAgZWxpZiBpc2luc3RhbmNlKGFyZ3NbMF0sIHN0
cik6Ci0gICAgICAgIGNvZGUsID0gYXJncwotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2Rl
LCBzdHIpCi0gICAgICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgxKQotICAgICAgICBsb2MgPSBm
cmFtZS5mX2xvY2Fscy5jb3B5KCkKLSAgICAgICAgbG9jLnVwZGF0ZShrd2FyZ3MpCi0gICAgICAg
ICMgcHJpbnQgInJhaXNlcyBmcmFtZSBzY29wZTogJXIiICUgZnJhbWUuZl9sb2NhbHMKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgY29kZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKGNvZGUpLmNv
bXBpbGUoKQotICAgICAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhjb2RlLCBmcmFtZS5mX2dsb2Jh
bHMsIGxvYykKLSAgICAgICAgICAgICMgWFhYIGRpZG4nVCBtZWFuIGZfZ2xvYmFscyA9PSBmX2xv
Y2FscyBzb21ldGhpbmcgc3BlY2lhbD8KLSAgICAgICAgICAgICMgICAgIHRoaXMgaXMgZGVzdHJv
eWVkIGhlcmUgLi4uCi0gICAgICAgIGV4Y2VwdCBleHBlY3RlZF9leGNlcHRpb246Ci0gICAgICAg
ICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKLSAgICBlbHNlOgotICAg
ICAgICBmdW5jID0gYXJnc1swXQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmdW5jKCphcmdz
WzE6XSwgKiprd2FyZ3MpCi0gICAgICAgIGV4Y2VwdCBleHBlY3RlZF9leGNlcHRpb246Ci0gICAg
ICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKLSAgICBmYWlsKG1l
c3NhZ2UpCi0KLQotcmFpc2VzLkV4Y2VwdGlvbiA9IGZhaWwuRXhjZXB0aW9uCi0KLQotY2xhc3Mg
UmFpc2VzQ29udGV4dChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHBlY3RlZF9l
eGNlcHRpb24sIG1lc3NhZ2UsIG1hdGNoX2V4cHIpOgotICAgICAgICBzZWxmLmV4cGVjdGVkX2V4
Y2VwdGlvbiA9IGV4cGVjdGVkX2V4Y2VwdGlvbgotICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNz
YWdlCi0gICAgICAgIHNlbGYubWF0Y2hfZXhwciA9IG1hdGNoX2V4cHIKLSAgICAgICAgc2VsZi5l
eGNpbmZvID0gTm9uZQotCi0gICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgc2VsZi5l
eGNpbmZvID0gb2JqZWN0Ll9fbmV3X18oX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKQotICAg
ICAgICByZXR1cm4gc2VsZi5leGNpbmZvCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgKnRwKToK
LSAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIGlmIHRwWzBdIGlzIE5v
bmU6Ci0gICAgICAgICAgICBmYWlsKHNlbGYubWVzc2FnZSkKLSAgICAgICAgc2VsZi5leGNpbmZv
Ll9faW5pdF9fKHRwKQotICAgICAgICBzdXBwcmVzc19leGNlcHRpb24gPSBpc3N1YmNsYXNzKHNl
bGYuZXhjaW5mby50eXBlLCBzZWxmLmV4cGVjdGVkX2V4Y2VwdGlvbikKLSAgICAgICAgaWYgc3lz
LnZlcnNpb25faW5mb1swXSA9PSAyIGFuZCBzdXBwcmVzc19leGNlcHRpb246Ci0gICAgICAgICAg
ICBzeXMuZXhjX2NsZWFyKCkKLSAgICAgICAgaWYgc2VsZi5tYXRjaF9leHByOgotICAgICAgICAg
ICAgc2VsZi5leGNpbmZvLm1hdGNoKHNlbGYubWF0Y2hfZXhwcikKLSAgICAgICAgcmV0dXJuIHN1
cHByZXNzX2V4Y2VwdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZWN3YXJu
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZWN3YXJuLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0ZmNlYjEwYTdmMzQwNDNmNDBkYzQzOTYwODkxY2FkYzJmZTQxYTI4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvcmVjd2Fybi5weQorKysgL2Rldi9udWxsCkBAIC0xLDIzNiArMCwwIEBACi0iIiIgcmVj
b3JkaW5nIHdhcm5pbmdzIGR1cmluZyB0ZXN0IGZ1bmN0aW9uIGV4ZWN1dGlvbi4gIiIiCi1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCi0KLWltcG9ydCBpbnNwZWN0Ci0KLWltcG9ydCBfcHl0ZXN0Ll9jb2RlCi1pbXBvcnQgcHkK
LWltcG9ydCBzeXMKLWltcG9ydCB3YXJuaW5ncwotCi1pbXBvcnQgcmUKLQotZnJvbSBfcHl0ZXN0
LmZpeHR1cmVzIGltcG9ydCB5aWVsZF9maXh0dXJlCi1mcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1w
b3J0IGZhaWwKLQotCi1AeWllbGRfZml4dHVyZQotZGVmIHJlY3dhcm4oKToKLSAgICAiIiJSZXR1
cm4gYSBXYXJuaW5nc1JlY29yZGVyIGluc3RhbmNlIHRoYXQgcHJvdmlkZXMgdGhlc2UgbWV0aG9k
czoKLQotICAgICogYGBwb3AoY2F0ZWdvcnk9Tm9uZSlgYDogcmV0dXJuIGxhc3Qgd2FybmluZyBt
YXRjaGluZyB0aGUgY2F0ZWdvcnkuCi0gICAgKiBgYGNsZWFyKClgYDogY2xlYXIgbGlzdCBvZiB3
YXJuaW5ncwotCi0gICAgU2VlIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS93YXJuaW5n
cy5odG1sIGZvciBpbmZvcm1hdGlvbgotICAgIG9uIHdhcm5pbmcgY2F0ZWdvcmllcy4KLSAgICAi
IiIKLSAgICB3cmVjID0gV2FybmluZ3NSZWNvcmRlcigpCi0gICAgd2l0aCB3cmVjOgotICAgICAg
ICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoJ2RlZmF1bHQnKQotICAgICAgICB5aWVsZCB3cmVjCi0K
LQotZGVmIGRlcHJlY2F0ZWRfY2FsbChmdW5jPU5vbmUsICphcmdzLCAqKmt3YXJncyk6Ci0gICAg
IiIiY29udGV4dCBtYW5hZ2VyIHRoYXQgY2FuIGJlIHVzZWQgdG8gZW5zdXJlIGEgYmxvY2sgb2Yg
Y29kZSB0cmlnZ2VycyBhCi0gICAgYGBEZXByZWNhdGlvbldhcm5pbmdgYCBvciBgYFBlbmRpbmdE
ZXByZWNhdGlvbldhcm5pbmdgYDo6Ci0KLSAgICAgICAgPj4+IGltcG9ydCB3YXJuaW5ncwotICAg
ICAgICA+Pj4gZGVmIGFwaV9jYWxsX3YyKCk6Ci0gICAgICAgIC4uLiAgICAgd2FybmluZ3Mud2Fy
bigndXNlIHYzIG9mIHRoaXMgYXBpJywgRGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICAuLi4g
ICAgIHJldHVybiAyMDAKLQotICAgICAgICA+Pj4gd2l0aCBkZXByZWNhdGVkX2NhbGwoKToKLSAg
ICAgICAgLi4uICAgIGFzc2VydCBhcGlfY2FsbF92MigpID09IDIwMAotCi0gICAgYGBkZXByZWNh
dGVkX2NhbGxgYCBjYW4gYWxzbyBiZSB1c2VkIGJ5IHBhc3NpbmcgYSBmdW5jdGlvbiBhbmQgYGAq
YXJnc2BgIGFuZCBgYCprd2FyZ3NgYCwKLSAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgZW5zdXJl
IGNhbGxpbmcgYGBmdW5jKCphcmdzLCAqKmt3YXJncylgYCBwcm9kdWNlcyBvbmUgb2YgdGhlIHdh
cm5pbmdzCi0gICAgdHlwZXMgYWJvdmUuCi0gICAgIiIiCi0gICAgaWYgbm90IGZ1bmM6Ci0gICAg
ICAgIHJldHVybiBfRGVwcmVjYXRlZENhbGxDb250ZXh0KCkKLSAgICBlbHNlOgotICAgICAgICBf
X3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgd2l0aCBfRGVwcmVjYXRlZENhbGxDb250
ZXh0KCk6Ci0gICAgICAgICAgICByZXR1cm4gZnVuYygqYXJncywgKiprd2FyZ3MpCi0KLQotY2xh
c3MgX0RlcHJlY2F0ZWRDYWxsQ29udGV4dChvYmplY3QpOgotICAgICIiIkltcGxlbWVudHMgdGhl
IGxvZ2ljIHRvIGNhcHR1cmUgZGVwcmVjYXRpb24gd2FybmluZ3MgYXMgYSBjb250ZXh0IG1hbmFn
ZXIuIiIiCi0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBzZWxmLl9jYXB0dXJl
ZF9jYXRlZ29yaWVzID0gW10KLSAgICAgICAgc2VsZi5fb2xkX3dhcm4gPSB3YXJuaW5ncy53YXJu
Ci0gICAgICAgIHNlbGYuX29sZF93YXJuX2V4cGxpY2l0ID0gd2FybmluZ3Mud2Fybl9leHBsaWNp
dAotICAgICAgICB3YXJuaW5ncy53YXJuX2V4cGxpY2l0ID0gc2VsZi5fd2Fybl9leHBsaWNpdAot
ICAgICAgICB3YXJuaW5ncy53YXJuID0gc2VsZi5fd2FybgotCi0gICAgZGVmIF93YXJuX2V4cGxp
Y2l0KHNlbGYsIG1lc3NhZ2UsIGNhdGVnb3J5LCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBz
ZWxmLl9jYXB0dXJlZF9jYXRlZ29yaWVzLmFwcGVuZChjYXRlZ29yeSkKLQotICAgIGRlZiBfd2Fy
bihzZWxmLCBtZXNzYWdlLCBjYXRlZ29yeT1Ob25lLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAg
ICBpZiBpc2luc3RhbmNlKG1lc3NhZ2UsIFdhcm5pbmcpOgotICAgICAgICAgICAgc2VsZi5fY2Fw
dHVyZWRfY2F0ZWdvcmllcy5hcHBlbmQobWVzc2FnZS5fX2NsYXNzX18pCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBzZWxmLl9jYXB0dXJlZF9jYXRlZ29yaWVzLmFwcGVuZChjYXRlZ29yeSkK
LQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKToKLSAg
ICAgICAgd2FybmluZ3Mud2Fybl9leHBsaWNpdCA9IHNlbGYuX29sZF93YXJuX2V4cGxpY2l0Ci0g
ICAgICAgIHdhcm5pbmdzLndhcm4gPSBzZWxmLl9vbGRfd2FybgotCi0gICAgICAgIGlmIGV4Y190
eXBlIGlzIE5vbmU6Ci0gICAgICAgICAgICBkZXByZWNhdGlvbl9jYXRlZ29yaWVzID0gKERlcHJl
Y2F0aW9uV2FybmluZywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykKLSAgICAgICAgICAgIGlm
IG5vdCBhbnkoaXNzdWJjbGFzcyhjLCBkZXByZWNhdGlvbl9jYXRlZ29yaWVzKSBmb3IgYyBpbiBz
ZWxmLl9jYXB0dXJlZF9jYXRlZ29yaWVzKToKLSAgICAgICAgICAgICAgICBfX3RyYWNlYmFja2hp
ZGVfXyA9IFRydWUKLSAgICAgICAgICAgICAgICBtc2cgPSAiRGlkIG5vdCBwcm9kdWNlIERlcHJl
Y2F0aW9uV2FybmluZyBvciBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nIgotICAgICAgICAgICAg
ICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKG1zZykKLQotCi1kZWYgd2FybnMoZXhwZWN0ZWRfd2Fy
bmluZywgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAiIiJBc3NlcnQgdGhhdCBjb2RlIHJhaXNlcyBh
IHBhcnRpY3VsYXIgY2xhc3Mgb2Ygd2FybmluZy4KLQotICAgIFNwZWNpZmljYWxseSwgdGhlIGlu
cHV0IEBleHBlY3RlZF93YXJuaW5nIGNhbiBiZSBhIHdhcm5pbmcgY2xhc3Mgb3IKLSAgICB0dXBs
ZSBvZiB3YXJuaW5nIGNsYXNzZXMsIGFuZCB0aGUgY29kZSBtdXN0IHJldHVybiB0aGF0IHdhcm5p
bmcKLSAgICAoaWYgYSBzaW5nbGUgY2xhc3MpIG9yIG9uZSBvZiB0aG9zZSB3YXJuaW5ncyAoaWYg
YSB0dXBsZSkuCi0KLSAgICBUaGlzIGhlbHBlciBwcm9kdWNlcyBhIGxpc3Qgb2YgYGB3YXJuaW5n
cy5XYXJuaW5nTWVzc2FnZWBgIG9iamVjdHMsCi0gICAgb25lIGZvciBlYWNoIHdhcm5pbmcgcmFp
c2VkLgotCi0gICAgVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdl
ciwgb3IgYW55IG9mIHRoZSBvdGhlciB3YXlzCi0gICAgYGBweXRlc3QucmFpc2VzYGAgY2FuIGJl
IHVzZWQ6OgotCi0gICAgICAgID4+PiB3aXRoIHdhcm5zKFJ1bnRpbWVXYXJuaW5nKToKLSAgICAg
ICAgLi4uICAgIHdhcm5pbmdzLndhcm4oIm15IHdhcm5pbmciLCBSdW50aW1lV2FybmluZykKLQot
ICAgIEluIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9ybSB5b3UgbWF5IHVzZSB0aGUga2V5d29yZCBh
cmd1bWVudCBgYG1hdGNoYGAgdG8gYXNzZXJ0Ci0gICAgdGhhdCB0aGUgZXhjZXB0aW9uIG1hdGNo
ZXMgYSB0ZXh0IG9yIHJlZ2V4OjoKLQotICAgICAgICA+Pj4gd2l0aCB3YXJucyhVc2VyV2Fybmlu
ZywgbWF0Y2g9J211c3QgYmUgMCBvciBOb25lJyk6Ci0gICAgICAgIC4uLiAgICAgd2FybmluZ3Mu
d2FybigidmFsdWUgbXVzdCBiZSAwIG9yIE5vbmUiLCBVc2VyV2FybmluZykKLQotICAgICAgICA+
Pj4gd2l0aCB3YXJucyhVc2VyV2FybmluZywgbWF0Y2g9cidtdXN0IGJlIFxkKyQnKToKLSAgICAg
ICAgLi4uICAgICB3YXJuaW5ncy53YXJuKCJ2YWx1ZSBtdXN0IGJlIDQyIiwgVXNlcldhcm5pbmcp
Ci0KLSAgICAgICAgPj4+IHdpdGggd2FybnMoVXNlcldhcm5pbmcsIG1hdGNoPXInbXVzdCBiZSBc
ZCskJyk6Ci0gICAgICAgIC4uLiAgICAgd2FybmluZ3Mud2FybigidGhpcyBpcyBub3QgaGVyZSIs
IFVzZXJXYXJuaW5nKQotICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
Ci0gICAgICAgICAgLi4uCi0gICAgICAgIEZhaWxlZDogRElEIE5PVCBXQVJOLiBObyB3YXJuaW5n
cyBvZiB0eXBlIC4uLlVzZXJXYXJuaW5nLi4uIHdhcyBlbWl0dGVkLi4uCi0KLSAgICAiIiIKLSAg
ICBtYXRjaF9leHByID0gTm9uZQotICAgIGlmIG5vdCBhcmdzOgotICAgICAgICBpZiAibWF0Y2gi
IGluIGt3YXJnczoKLSAgICAgICAgICAgIG1hdGNoX2V4cHIgPSBrd2FyZ3MucG9wKCJtYXRjaCIp
Ci0gICAgICAgIHJldHVybiBXYXJuaW5nc0NoZWNrZXIoZXhwZWN0ZWRfd2FybmluZywgbWF0Y2hf
ZXhwcj1tYXRjaF9leHByKQotICAgIGVsaWYgaXNpbnN0YW5jZShhcmdzWzBdLCBzdHIpOgotICAg
ICAgICBjb2RlLCA9IGFyZ3MKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29kZSwgc3RyKQot
ICAgICAgICBmcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkKLSAgICAgICAgbG9jID0gZnJhbWUuZl9s
b2NhbHMuY29weSgpCi0gICAgICAgIGxvYy51cGRhdGUoa3dhcmdzKQotCi0gICAgICAgIHdpdGgg
V2FybmluZ3NDaGVja2VyKGV4cGVjdGVkX3dhcm5pbmcsIG1hdGNoX2V4cHI9bWF0Y2hfZXhwcik6
Ci0gICAgICAgICAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoY29kZSkuY29tcGlsZSgp
Ci0gICAgICAgICAgICBweS5idWlsdGluLmV4ZWNfKGNvZGUsIGZyYW1lLmZfZ2xvYmFscywgbG9j
KQotICAgIGVsc2U6Ci0gICAgICAgIGZ1bmMgPSBhcmdzWzBdCi0gICAgICAgIHdpdGggV2Fybmlu
Z3NDaGVja2VyKGV4cGVjdGVkX3dhcm5pbmcsIG1hdGNoX2V4cHI9bWF0Y2hfZXhwcik6Ci0gICAg
ICAgICAgICByZXR1cm4gZnVuYygqYXJnc1sxOl0sICoqa3dhcmdzKQotCi0KLWNsYXNzIFdhcm5p
bmdzUmVjb3JkZXIod2FybmluZ3MuY2F0Y2hfd2FybmluZ3MpOgotICAgICIiIkEgY29udGV4dCBt
YW5hZ2VyIHRvIHJlY29yZCByYWlzZWQgd2FybmluZ3MuCi0KLSAgICBBZGFwdGVkIGZyb20gYHdh
cm5pbmdzLmNhdGNoX3dhcm5pbmdzYC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKLSAgICAgICAgc3VwZXIoV2FybmluZ3NSZWNvcmRlciwgc2VsZikuX19pbml0X18ocmVjb3Jk
PVRydWUpCi0gICAgICAgIHNlbGYuX2VudGVyZWQgPSBGYWxzZQotICAgICAgICBzZWxmLl9saXN0
ID0gW10KLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBsaXN0KHNlbGYpOgotICAgICAgICAiIiJU
aGUgbGlzdCBvZiByZWNvcmRlZCB3YXJuaW5ncy4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2xp
c3QKLQotICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBpKToKLSAgICAgICAgIiIiR2V0IGEgcmVj
b3JkZWQgd2FybmluZyBieSBpbmRleC4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2xpc3RbaV0K
LQotICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAgICAgICAgIiIiSXRlcmF0ZSB0aHJvdWdoIHRo
ZSByZWNvcmRlZCB3YXJuaW5ncy4iIiIKLSAgICAgICAgcmV0dXJuIGl0ZXIoc2VsZi5fbGlzdCkK
LQotICAgIGRlZiBfX2xlbl9fKHNlbGYpOgotICAgICAgICAiIiJUaGUgbnVtYmVyIG9mIHJlY29y
ZGVkIHdhcm5pbmdzLiIiIgotICAgICAgICByZXR1cm4gbGVuKHNlbGYuX2xpc3QpCi0KLSAgICBk
ZWYgcG9wKHNlbGYsIGNscz1XYXJuaW5nKToKLSAgICAgICAgIiIiUG9wIHRoZSBmaXJzdCByZWNv
cmRlZCB3YXJuaW5nLCByYWlzZSBleGNlcHRpb24gaWYgbm90IGV4aXN0cy4iIiIKLSAgICAgICAg
Zm9yIGksIHcgaW4gZW51bWVyYXRlKHNlbGYuX2xpc3QpOgotICAgICAgICAgICAgaWYgaXNzdWJj
bGFzcyh3LmNhdGVnb3J5LCBjbHMpOgotICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9saXN0
LnBvcChpKQotICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgcmFpc2Ug
QXNzZXJ0aW9uRXJyb3IoIiVyIG5vdCBmb3VuZCBpbiB3YXJuaW5nIGxpc3QiICUgY2xzKQotCi0g
ICAgZGVmIGNsZWFyKHNlbGYpOgotICAgICAgICAiIiJDbGVhciB0aGUgbGlzdCBvZiByZWNvcmRl
ZCB3YXJuaW5ncy4iIiIKLSAgICAgICAgc2VsZi5fbGlzdFs6XSA9IFtdCi0KLSAgICBkZWYgX19l
bnRlcl9fKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9lbnRlcmVkOgotICAgICAgICAgICAgX190
cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIkNh
bm5vdCBlbnRlciAlciB0d2ljZSIgJSBzZWxmKQotICAgICAgICBzZWxmLl9saXN0ID0gc3VwZXIo
V2FybmluZ3NSZWNvcmRlciwgc2VsZikuX19lbnRlcl9fKCkKLSAgICAgICAgd2FybmluZ3Muc2lt
cGxlZmlsdGVyKCdhbHdheXMnKQotICAgICAgICByZXR1cm4gc2VsZgotCi0gICAgZGVmIF9fZXhp
dF9fKHNlbGYsICpleGNfaW5mbyk6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9lbnRlcmVkOgotICAg
ICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgICAgICByYWlzZSBSdW50
aW1lRXJyb3IoIkNhbm5vdCBleGl0ICVyIHdpdGhvdXQgZW50ZXJpbmcgZmlyc3QiICUgc2VsZikK
LSAgICAgICAgc3VwZXIoV2FybmluZ3NSZWNvcmRlciwgc2VsZikuX19leGl0X18oKmV4Y19pbmZv
KQotCi0KLWNsYXNzIFdhcm5pbmdzQ2hlY2tlcihXYXJuaW5nc1JlY29yZGVyKToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgZXhwZWN0ZWRfd2FybmluZz1Ob25lLCBtYXRjaF9leHByPU5vbmUpOgot
ICAgICAgICBzdXBlcihXYXJuaW5nc0NoZWNrZXIsIHNlbGYpLl9faW5pdF9fKCkKLQotICAgICAg
ICBtc2cgPSAoImV4Y2VwdGlvbnMgbXVzdCBiZSBvbGQtc3R5bGUgY2xhc3NlcyBvciAiCi0gICAg
ICAgICAgICAgICAiZGVyaXZlZCBmcm9tIFdhcm5pbmcsIG5vdCAlcyIpCi0gICAgICAgIGlmIGlz
aW5zdGFuY2UoZXhwZWN0ZWRfd2FybmluZywgdHVwbGUpOgotICAgICAgICAgICAgZm9yIGV4YyBp
biBleHBlY3RlZF93YXJuaW5nOgotICAgICAgICAgICAgICAgIGlmIG5vdCBpbnNwZWN0LmlzY2xh
c3MoZXhjKToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZyAlIHR5cGUo
ZXhjKSkKLSAgICAgICAgZWxpZiBpbnNwZWN0LmlzY2xhc3MoZXhwZWN0ZWRfd2FybmluZyk6Ci0g
ICAgICAgICAgICBleHBlY3RlZF93YXJuaW5nID0gKGV4cGVjdGVkX3dhcm5pbmcsKQotICAgICAg
ICBlbGlmIGV4cGVjdGVkX3dhcm5pbmcgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBU
eXBlRXJyb3IobXNnICUgdHlwZShleHBlY3RlZF93YXJuaW5nKSkKLQotICAgICAgICBzZWxmLmV4
cGVjdGVkX3dhcm5pbmcgPSBleHBlY3RlZF93YXJuaW5nCi0gICAgICAgIHNlbGYubWF0Y2hfZXhw
ciA9IG1hdGNoX2V4cHIKLQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhjX2luZm8pOgotICAg
ICAgICBzdXBlcihXYXJuaW5nc0NoZWNrZXIsIHNlbGYpLl9fZXhpdF9fKCpleGNfaW5mbykKLQot
ICAgICAgICAjIG9ubHkgY2hlY2sgaWYgd2UncmUgbm90IGN1cnJlbnRseSBoYW5kbGluZyBhbiBl
eGNlcHRpb24KLSAgICAgICAgaWYgYWxsKGEgaXMgTm9uZSBmb3IgYSBpbiBleGNfaW5mbyk6Ci0g
ICAgICAgICAgICBpZiBzZWxmLmV4cGVjdGVkX3dhcm5pbmcgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICAgICAgaWYgbm90IGFueShpc3N1YmNsYXNzKHIuY2F0ZWdvcnksIHNlbGYuZXhwZWN0ZWRf
d2FybmluZykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciByIGluIHNlbGYpOgotICAg
ICAgICAgICAgICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgICAgICAg
ICAgICAgZmFpbCgiRElEIE5PVCBXQVJOLiBObyB3YXJuaW5ncyBvZiB0eXBlIHswfSB3YXMgZW1p
dHRlZC4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgbGlzdCBvZiBlbWl0dGVkIHdh
cm5pbmdzIGlzOiB7MX0uIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuZXhwZWN0ZWRfd2FybmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VhY2gu
bWVzc2FnZSBmb3IgZWFjaCBpbiBzZWxmXSkpCi0gICAgICAgICAgICAgICAgZWxpZiBzZWxmLm1h
dGNoX2V4cHIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGZvciByIGluIHNlbGY6
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBpc3N1YmNsYXNzKHIuY2F0ZWdvcnksIHNlbGYu
ZXhwZWN0ZWRfd2FybmluZyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmUuY29t
cGlsZShzZWxmLm1hdGNoX2V4cHIpLnNlYXJjaChzdHIoci5tZXNzYWdlKSk6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCJESUQgTk9UIFdBUk4uIE5vIHdhcm5pbmdzIG9m
IHR5cGUgezB9IG1hdGNoaW5nIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICgnezF9
Jykgd2FzIGVtaXR0ZWQuIFRoZSBsaXN0IG9mIGVtaXR0ZWQgd2FybmluZ3MiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIgaXM6IHsyfS4iLmZvcm1hdChzZWxmLmV4cGVjdGVkX3dhcm5p
bmcsIHNlbGYubWF0Y2hfZXhwciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtlYWNoLm1lc3NhZ2UgZm9yIGVhY2ggaW4gc2VsZl0pKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZXN1bHRsb2cucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L3Jlc3VsdGxvZy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWY5YzJkMWY2NTM2
MGYzOGQwZDY0MTIzZDY0NjU3YzA3MjZhMjY2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Jlc3VsdGxvZy5weQorKysg
L2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi0iIiIgbG9nIG1hY2hpbmUtcGFyc2VhYmxlIHRl
c3Qgc2Vzc2lvbiByZXN1bHQgaW5mb3JtYXRpb24gaW4gYSBwbGFpbgotdGV4dCBmaWxlLgotIiIi
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCi0KLWltcG9ydCBweQotaW1wb3J0IG9zCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRp
b24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgidGVybWluYWwgcmVwb3J0
aW5nIiwgInJlc3VsdGxvZyBwbHVnaW4gb3B0aW9ucyIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCct
LXJlc3VsdGxvZycsICctLXJlc3VsdC1sb2cnLCBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgICAg
ICAgICAgICAgbWV0YXZhcj0icGF0aCIsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAg
ICAgaGVscD0iREVQUkVDQVRFRCBwYXRoIGZvciBtYWNoaW5lLXJlYWRhYmxlIHJlc3VsdCBsb2cu
IikKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgIHJlc3VsdGxvZyA9IGNv
bmZpZy5vcHRpb24ucmVzdWx0bG9nCi0gICAgIyBwcmV2ZW50IG9wZW5pbmcgcmVzdWx0bG9nIG9u
IHNsYXZlIG5vZGVzICh4ZGlzdCkKLSAgICBpZiByZXN1bHRsb2cgYW5kIG5vdCBoYXNhdHRyKGNv
bmZpZywgJ3NsYXZlaW5wdXQnKToKLSAgICAgICAgZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShv
cy5wYXRoLmFic3BhdGgocmVzdWx0bG9nKSkKLSAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIo
ZGlybmFtZSk6Ci0gICAgICAgICAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQotICAgICAgICBsb2dm
aWxlID0gb3BlbihyZXN1bHRsb2csICd3JywgMSkgICMgbGluZSBidWZmZXJlZAotICAgICAgICBj
b25maWcuX3Jlc3VsdGxvZyA9IFJlc3VsdExvZyhjb25maWcsIGxvZ2ZpbGUpCi0gICAgICAgIGNv
bmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKGNvbmZpZy5fcmVzdWx0bG9nKQotCi0gICAgICAg
IGZyb20gX3B5dGVzdC5kZXByZWNhdGVkIGltcG9ydCBSRVNVTFRfTE9HCi0gICAgICAgIGNvbmZp
Zy53YXJuKCdDMScsIFJFU1VMVF9MT0cpCi0KLQotZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShjb25m
aWcpOgotICAgIHJlc3VsdGxvZyA9IGdldGF0dHIoY29uZmlnLCAnX3Jlc3VsdGxvZycsIE5vbmUp
Ci0gICAgaWYgcmVzdWx0bG9nOgotICAgICAgICByZXN1bHRsb2cubG9nZmlsZS5jbG9zZSgpCi0g
ICAgICAgIGRlbCBjb25maWcuX3Jlc3VsdGxvZwotICAgICAgICBjb25maWcucGx1Z2lubWFuYWdl
ci51bnJlZ2lzdGVyKHJlc3VsdGxvZykKLQotCi1kZWYgZ2VuZXJpY19wYXRoKGl0ZW0pOgotICAg
IGNoYWluID0gaXRlbS5saXN0Y2hhaW4oKQotICAgIGdwYXRoID0gW2NoYWluWzBdLm5hbWVdCi0g
ICAgZnNwYXRoID0gY2hhaW5bMF0uZnNwYXRoCi0gICAgZnNwYXJ0ID0gRmFsc2UKLSAgICBmb3Ig
bm9kZSBpbiBjaGFpblsxOl06Ci0gICAgICAgIG5ld2ZzcGF0aCA9IG5vZGUuZnNwYXRoCi0gICAg
ICAgIGlmIG5ld2ZzcGF0aCA9PSBmc3BhdGg6Ci0gICAgICAgICAgICBpZiBmc3BhcnQ6Ci0gICAg
ICAgICAgICAgICAgZ3BhdGguYXBwZW5kKCc6JykKLSAgICAgICAgICAgICAgICBmc3BhcnQgPSBG
YWxzZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBncGF0aC5hcHBlbmQoJy4n
KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZ3BhdGguYXBwZW5kKCcvJykKLSAgICAgICAg
ICAgIGZzcGFydCA9IFRydWUKLSAgICAgICAgbmFtZSA9IG5vZGUubmFtZQotICAgICAgICBpZiBu
YW1lWzBdIGluICcoWyc6Ci0gICAgICAgICAgICBncGF0aC5wb3AoKQotICAgICAgICBncGF0aC5h
cHBlbmQobmFtZSkKLSAgICAgICAgZnNwYXRoID0gbmV3ZnNwYXRoCi0gICAgcmV0dXJuICcnLmpv
aW4oZ3BhdGgpCi0KLQotY2xhc3MgUmVzdWx0TG9nKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGNvbmZpZywgbG9nZmlsZSk6Ci0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCi0g
ICAgICAgIHNlbGYubG9nZmlsZSA9IGxvZ2ZpbGUgICMgcHJlZmVyYWJseSBsaW5lIGJ1ZmZlcmVk
Ci0KLSAgICBkZWYgd3JpdGVfbG9nX2VudHJ5KHNlbGYsIHRlc3RwYXRoLCBsZXR0ZXJjb2RlLCBs
b25ncmVwcik6Ci0gICAgICAgIHByaW50KCIlcyAlcyIgJSAobGV0dGVyY29kZSwgdGVzdHBhdGgp
LCBmaWxlPXNlbGYubG9nZmlsZSkKLSAgICAgICAgZm9yIGxpbmUgaW4gbG9uZ3JlcHIuc3BsaXRs
aW5lcygpOgotICAgICAgICAgICAgcHJpbnQoIiAlcyIgJSBsaW5lLCBmaWxlPXNlbGYubG9nZmls
ZSkKLQotICAgIGRlZiBsb2dfb3V0Y29tZShzZWxmLCByZXBvcnQsIGxldHRlcmNvZGUsIGxvbmdy
ZXByKToKLSAgICAgICAgdGVzdHBhdGggPSBnZXRhdHRyKHJlcG9ydCwgJ25vZGVpZCcsIE5vbmUp
Ci0gICAgICAgIGlmIHRlc3RwYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICB0ZXN0cGF0aCA9IHJl
cG9ydC5mc3BhdGgKLSAgICAgICAgc2VsZi53cml0ZV9sb2dfZW50cnkodGVzdHBhdGgsIGxldHRl
cmNvZGUsIGxvbmdyZXByKQotCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxm
LCByZXBvcnQpOgotICAgICAgICBpZiByZXBvcnQud2hlbiAhPSAiY2FsbCIgYW5kIHJlcG9ydC5w
YXNzZWQ6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcmVzID0gc2VsZi5jb25maWcuaG9v
ay5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0PXJlcG9ydCkKLSAgICAgICAgY29kZSA9
IHJlc1sxXQotICAgICAgICBpZiBjb2RlID09ICd4JzoKLSAgICAgICAgICAgIGxvbmdyZXByID0g
c3RyKHJlcG9ydC5sb25ncmVwcikKLSAgICAgICAgZWxpZiBjb2RlID09ICdYJzoKLSAgICAgICAg
ICAgIGxvbmdyZXByID0gJycKLSAgICAgICAgZWxpZiByZXBvcnQucGFzc2VkOgotICAgICAgICAg
ICAgbG9uZ3JlcHIgPSAiIgotICAgICAgICBlbGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgICAg
ICBsb25ncmVwciA9IHN0cihyZXBvcnQubG9uZ3JlcHIpCi0gICAgICAgIGVsaWYgcmVwb3J0LnNr
aXBwZWQ6Ci0gICAgICAgICAgICBsb25ncmVwciA9IHN0cihyZXBvcnQubG9uZ3JlcHJbMl0pCi0g
ICAgICAgIHNlbGYubG9nX291dGNvbWUocmVwb3J0LCBjb2RlLCBsb25ncmVwcikKLQotICAgIGRl
ZiBweXRlc3RfY29sbGVjdHJlcG9ydChzZWxmLCByZXBvcnQpOgotICAgICAgICBpZiBub3QgcmVw
b3J0LnBhc3NlZDoKLSAgICAgICAgICAgIGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgICAgICAg
ICAgY29kZSA9ICJGIgotICAgICAgICAgICAgICAgIGxvbmdyZXByID0gc3RyKHJlcG9ydC5sb25n
cmVwcikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHJlcG9ydC5z
a2lwcGVkCi0gICAgICAgICAgICAgICAgY29kZSA9ICJTIgotICAgICAgICAgICAgICAgIGxvbmdy
ZXByID0gIiVzOiVkOiAlcyIgJSByZXBvcnQubG9uZ3JlcHIKLSAgICAgICAgICAgIHNlbGYubG9n
X291dGNvbWUocmVwb3J0LCBjb2RlLCBsb25ncmVwcikKLQotICAgIGRlZiBweXRlc3RfaW50ZXJu
YWxlcnJvcihzZWxmLCBleGNyZXByKToKLSAgICAgICAgcmVwcmNyYXNoID0gZ2V0YXR0cihleGNy
ZXByLCAncmVwcmNyYXNoJywgTm9uZSkKLSAgICAgICAgcGF0aCA9IGdldGF0dHIocmVwcmNyYXNo
LCAicGF0aCIsIE5vbmUpCi0gICAgICAgIGlmIHBhdGggaXMgTm9uZToKLSAgICAgICAgICAgIHBh
dGggPSAiY3dkOiVzIiAlIHB5LnBhdGgubG9jYWwoKQotICAgICAgICBzZWxmLndyaXRlX2xvZ19l
bnRyeShwYXRoLCAnIScsIHN0cihleGNyZXByKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvcnVubmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ydW5uZXIucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwN2VkMmEyNDhiMzIyMzllMDU3MzYyMzQwNzE4YjQ1MjE3
ZDdjZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9ydW5uZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1MDYgKzAsMCBA
QAotIiIiIGJhc2ljIGNvbGxlY3QgYW5kIHJ1bnRlc3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb25z
ICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBw
cmludF9mdW5jdGlvbgotCi1pbXBvcnQgYmRiCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLWZyb20g
dGltZSBpbXBvcnQgdGltZQotCi1pbXBvcnQgcHkKLWZyb20gX3B5dGVzdC5fY29kZS5jb2RlIGlt
cG9ydCBUZXJtaW5hbFJlcHIsIEV4Y2VwdGlvbkluZm8KLWZyb20gX3B5dGVzdC5vdXRjb21lcyBp
bXBvcnQgc2tpcCwgU2tpcHBlZCwgVEVTVF9PVVRDT01FCi0KLSMKLSMgcHl0ZXN0IHBsdWdpbiBo
b29rcwotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJz
ZXIuZ2V0Z3JvdXAoInRlcm1pbmFsIHJlcG9ydGluZyIsICJyZXBvcnRpbmciLCBhZnRlcj0iZ2Vu
ZXJhbCIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLWR1cmF0aW9ucycsCi0gICAgICAgICAgICAg
ICAgICAgIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWludCwgZGVmYXVsdD1Ob25lLCBtZXRhdmFyPSJO
IiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0ic2hvdyBOIHNsb3dlc3Qgc2V0dXAvdGVzdCBk
dXJhdGlvbnMgKE49MCBmb3IgYWxsKS4iKSwKLQotCi1kZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1h
cnkodGVybWluYWxyZXBvcnRlcik6Ci0gICAgZHVyYXRpb25zID0gdGVybWluYWxyZXBvcnRlci5j
b25maWcub3B0aW9uLmR1cmF0aW9ucwotICAgIGlmIGR1cmF0aW9ucyBpcyBOb25lOgotICAgICAg
ICByZXR1cm4KLSAgICB0ciA9IHRlcm1pbmFscmVwb3J0ZXIKLSAgICBkbGlzdCA9IFtdCi0gICAg
Zm9yIHJlcGxpc3QgaW4gdHIuc3RhdHMudmFsdWVzKCk6Ci0gICAgICAgIGZvciByZXAgaW4gcmVw
bGlzdDoKLSAgICAgICAgICAgIGlmIGhhc2F0dHIocmVwLCAnZHVyYXRpb24nKToKLSAgICAgICAg
ICAgICAgICBkbGlzdC5hcHBlbmQocmVwKQotICAgIGlmIG5vdCBkbGlzdDoKLSAgICAgICAgcmV0
dXJuCi0gICAgZGxpc3Quc29ydChrZXk9bGFtYmRhIHg6IHguZHVyYXRpb24pCi0gICAgZGxpc3Qu
cmV2ZXJzZSgpCi0gICAgaWYgbm90IGR1cmF0aW9uczoKLSAgICAgICAgdHIud3JpdGVfc2VwKCI9
IiwgInNsb3dlc3QgdGVzdCBkdXJhdGlvbnMiKQotICAgIGVsc2U6Ci0gICAgICAgIHRyLndyaXRl
X3NlcCgiPSIsICJzbG93ZXN0ICVzIHRlc3QgZHVyYXRpb25zIiAlIGR1cmF0aW9ucykKLSAgICAg
ICAgZGxpc3QgPSBkbGlzdFs6ZHVyYXRpb25zXQotCi0gICAgZm9yIHJlcCBpbiBkbGlzdDoKLSAg
ICAgICAgbm9kZWlkID0gcmVwLm5vZGVpZC5yZXBsYWNlKCI6OigpOjoiLCAiOjoiKQotICAgICAg
ICB0ci53cml0ZV9saW5lKCIlMDIuMmZzICUtOHMgJXMiICUKLSAgICAgICAgICAgICAgICAgICAg
ICAocmVwLmR1cmF0aW9uLCByZXAud2hlbiwgbm9kZWlkKSkKLQotCi1kZWYgcHl0ZXN0X3Nlc3Np
b25zdGFydChzZXNzaW9uKToKLSAgICBzZXNzaW9uLl9zZXR1cHN0YXRlID0gU2V0dXBTdGF0ZSgp
Ci0KLQotZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNlc3Npb24pOgotICAgIHNlc3Npb24uX3Nl
dHVwc3RhdGUudGVhcmRvd25fYWxsKCkKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2wo
aXRlbSwgbmV4dGl0ZW0pOgotICAgIGl0ZW0uaWhvb2sucHl0ZXN0X3J1bnRlc3RfbG9nc3RhcnQo
Ci0gICAgICAgIG5vZGVpZD1pdGVtLm5vZGVpZCwgbG9jYXRpb249aXRlbS5sb2NhdGlvbiwKLSAg
ICApCi0gICAgcnVudGVzdHByb3RvY29sKGl0ZW0sIG5leHRpdGVtPW5leHRpdGVtKQotICAgIHJl
dHVybiBUcnVlCi0KLQotZGVmIHJ1bnRlc3Rwcm90b2NvbChpdGVtLCBsb2c9VHJ1ZSwgbmV4dGl0
ZW09Tm9uZSk6Ci0gICAgaGFzcmVxdWVzdCA9IGhhc2F0dHIoaXRlbSwgIl9yZXF1ZXN0IikKLSAg
ICBpZiBoYXNyZXF1ZXN0IGFuZCBub3QgaXRlbS5fcmVxdWVzdDoKLSAgICAgICAgaXRlbS5faW5p
dHJlcXVlc3QoKQotICAgIHJlcCA9IGNhbGxfYW5kX3JlcG9ydChpdGVtLCAic2V0dXAiLCBsb2cp
Ci0gICAgcmVwb3J0cyA9IFtyZXBdCi0gICAgaWYgcmVwLnBhc3NlZDoKLSAgICAgICAgaWYgaXRl
bS5jb25maWcub3B0aW9uLnNldHVwc2hvdzoKLSAgICAgICAgICAgIHNob3dfdGVzdF9pdGVtKGl0
ZW0pCi0gICAgICAgIGlmIG5vdCBpdGVtLmNvbmZpZy5vcHRpb24uc2V0dXBvbmx5OgotICAgICAg
ICAgICAgcmVwb3J0cy5hcHBlbmQoY2FsbF9hbmRfcmVwb3J0KGl0ZW0sICJjYWxsIiwgbG9nKSkK
LSAgICByZXBvcnRzLmFwcGVuZChjYWxsX2FuZF9yZXBvcnQoaXRlbSwgInRlYXJkb3duIiwgbG9n
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0aXRlbT1uZXh0aXRlbSkp
Ci0gICAgIyBhZnRlciBhbGwgdGVhcmRvd24gaG9va3MgaGF2ZSBiZWVuIGNhbGxlZAotICAgICMg
d2FudCBmdW5jYXJncyBhbmQgcmVxdWVzdCBpbmZvIHRvIGdvIGF3YXkKLSAgICBpZiBoYXNyZXF1
ZXN0OgotICAgICAgICBpdGVtLl9yZXF1ZXN0ID0gRmFsc2UKLSAgICAgICAgaXRlbS5mdW5jYXJn
cyA9IE5vbmUKLSAgICByZXR1cm4gcmVwb3J0cwotCi0KLWRlZiBzaG93X3Rlc3RfaXRlbShpdGVt
KToKLSAgICAiIiJTaG93IHRlc3QgZnVuY3Rpb24sIHBhcmFtZXRlcnMgYW5kIHRoZSBmaXh0dXJl
cyBvZiB0aGUgdGVzdCBpdGVtLiIiIgotICAgIHR3ID0gaXRlbS5jb25maWcuZ2V0X3Rlcm1pbmFs
X3dyaXRlcigpCi0gICAgdHcubGluZSgpCi0gICAgdHcud3JpdGUoJyAnICogOCkKLSAgICB0dy53
cml0ZShpdGVtLl9ub2RlaWQpCi0gICAgdXNlZF9maXh0dXJlcyA9IHNvcnRlZChpdGVtLl9maXh0
dXJlaW5mby5uYW1lMmZpeHR1cmVkZWZzLmtleXMoKSkKLSAgICBpZiB1c2VkX2ZpeHR1cmVzOgot
ICAgICAgICB0dy53cml0ZSgnIChmaXh0dXJlcyB1c2VkOiB7MH0pJy5mb3JtYXQoJywgJy5qb2lu
KHVzZWRfZml4dHVyZXMpKSkKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0g
ICAgX3VwZGF0ZV9jdXJyZW50X3Rlc3RfdmFyKGl0ZW0sICdzZXR1cCcpCi0gICAgaXRlbS5zZXNz
aW9uLl9zZXR1cHN0YXRlLnByZXBhcmUoaXRlbSkKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfY2Fs
bChpdGVtKToKLSAgICBfdXBkYXRlX2N1cnJlbnRfdGVzdF92YXIoaXRlbSwgJ2NhbGwnKQotICAg
IHRyeToKLSAgICAgICAgaXRlbS5ydW50ZXN0KCkKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAg
ICAgICAjIFN0b3JlIHRyYWNlIGluZm8gdG8gYWxsb3cgcG9zdG1vcnRlbSBkZWJ1Z2dpbmcKLSAg
ICAgICAgdHlwZSwgdmFsdWUsIHRiID0gc3lzLmV4Y19pbmZvKCkKLSAgICAgICAgdGIgPSB0Yi50
Yl9uZXh0ICAjIFNraXAgKnRoaXMqIGZyYW1lCi0gICAgICAgIHN5cy5sYXN0X3R5cGUgPSB0eXBl
Ci0gICAgICAgIHN5cy5sYXN0X3ZhbHVlID0gdmFsdWUKLSAgICAgICAgc3lzLmxhc3RfdHJhY2Vi
YWNrID0gdGIKLSAgICAgICAgZGVsIHRiICAjIEdldCByaWQgb2YgaXQgaW4gdGhpcyBuYW1lc3Bh
Y2UKLSAgICAgICAgcmFpc2UKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRlbSwg
bmV4dGl0ZW0pOgotICAgIF91cGRhdGVfY3VycmVudF90ZXN0X3ZhcihpdGVtLCAndGVhcmRvd24n
KQotICAgIGl0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZS50ZWFyZG93bl9leGFjdChpdGVtLCBuZXh0
aXRlbSkKLSAgICBfdXBkYXRlX2N1cnJlbnRfdGVzdF92YXIoaXRlbSwgTm9uZSkKLQotCi1kZWYg
X3VwZGF0ZV9jdXJyZW50X3Rlc3RfdmFyKGl0ZW0sIHdoZW4pOgotICAgICIiIgotICAgIFVwZGF0
ZSBQWVRFU1RfQ1VSUkVOVF9URVNUIHRvIHJlZmxlY3QgdGhlIGN1cnJlbnQgaXRlbSBhbmQgc3Rh
Z2UuCi0KLSAgICBJZiBgYHdoZW5gYCBpcyBOb25lLCBkZWxldGUgUFlURVNUX0NVUlJFTlRfVEVT
VCBmcm9tIHRoZSBlbnZpcm9ubWVudC4KLSAgICAiIiIKLSAgICB2YXJfbmFtZSA9ICdQWVRFU1Rf
Q1VSUkVOVF9URVNUJwotICAgIGlmIHdoZW46Ci0gICAgICAgIHZhbHVlID0gJ3swfSAoezF9KScu
Zm9ybWF0KGl0ZW0ubm9kZWlkLCB3aGVuKQotICAgICAgICAjIGRvbid0IGFsbG93IG51bGwgYnl0
ZXMgb24gZW52aXJvbm1lbnQgdmFyaWFibGVzIChzZWUgIzI2NDQsICMyOTU3KQotICAgICAgICB2
YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJ1x4MDAnLCAnKG51bGwpJykKLSAgICAgICAgb3MuZW52aXJv
blt2YXJfbmFtZV0gPSB2YWx1ZQotICAgIGVsc2U6Ci0gICAgICAgIG9zLmVudmlyb24ucG9wKHZh
cl9uYW1lKQotCi0KLWRlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0KToKLSAgICBp
ZiByZXBvcnQud2hlbiBpbiAoInNldHVwIiwgInRlYXJkb3duIik6Ci0gICAgICAgIGlmIHJlcG9y
dC5mYWlsZWQ6Ci0gICAgICAgICAgICAjICAgICAgY2F0ZWdvcnksIHNob3J0bGV0dGVyLCB2ZXJi
b3NlLXdvcmQKLSAgICAgICAgICAgIHJldHVybiAiZXJyb3IiLCAiRSIsICJFUlJPUiIKLSAgICAg
ICAgZWxpZiByZXBvcnQuc2tpcHBlZDoKLSAgICAgICAgICAgIHJldHVybiAic2tpcHBlZCIsICJz
IiwgIlNLSVBQRUQiCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gIiIsICIiLCAi
IgotCi0KLSMKLSMgSW1wbGVtZW50YXRpb24KLQotZGVmIGNhbGxfYW5kX3JlcG9ydChpdGVtLCB3
aGVuLCBsb2c9VHJ1ZSwgKiprd2RzKToKLSAgICBjYWxsID0gY2FsbF9ydW50ZXN0X2hvb2soaXRl
bSwgd2hlbiwgKiprd2RzKQotICAgIGhvb2sgPSBpdGVtLmlob29rCi0gICAgcmVwb3J0ID0gaG9v
ay5weXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW09aXRlbSwgY2FsbD1jYWxsKQotICAgIGlm
IGxvZzoKLSAgICAgICAgaG9vay5weXRlc3RfcnVudGVzdF9sb2dyZXBvcnQocmVwb3J0PXJlcG9y
dCkKLSAgICBpZiBjaGVja19pbnRlcmFjdGl2ZV9leGNlcHRpb24oY2FsbCwgcmVwb3J0KToKLSAg
ICAgICAgaG9vay5weXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0KG5vZGU9aXRlbSwgY2FsbD1jYWxs
LCByZXBvcnQ9cmVwb3J0KQotICAgIHJldHVybiByZXBvcnQKLQotCi1kZWYgY2hlY2tfaW50ZXJh
Y3RpdmVfZXhjZXB0aW9uKGNhbGwsIHJlcG9ydCk6Ci0gICAgcmV0dXJuIGNhbGwuZXhjaW5mbyBh
bmQgbm90ICgKLSAgICAgICAgaGFzYXR0cihyZXBvcnQsICJ3YXN4ZmFpbCIpIG9yCi0gICAgICAg
IGNhbGwuZXhjaW5mby5lcnJpc2luc3RhbmNlKHNraXAuRXhjZXB0aW9uKSBvcgotICAgICAgICBj
YWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5jZShiZGIuQmRiUXVpdCkpCi0KLQotZGVmIGNhbGxfcnVu
dGVzdF9ob29rKGl0ZW0sIHdoZW4sICoqa3dkcyk6Ci0gICAgaG9va25hbWUgPSAicHl0ZXN0X3J1
bnRlc3RfIiArIHdoZW4KLSAgICBpaG9vayA9IGdldGF0dHIoaXRlbS5paG9vaywgaG9va25hbWUp
Ci0gICAgcmV0dXJuIENhbGxJbmZvKGxhbWJkYTogaWhvb2soaXRlbT1pdGVtLCAqKmt3ZHMpLCB3
aGVuPXdoZW4pCi0KLQotY2xhc3MgQ2FsbEluZm86Ci0gICAgIiIiIFJlc3VsdC9FeGNlcHRpb24g
aW5mbyBhIGZ1bmN0aW9uIGludm9jYXRpb24uICIiIgotICAgICM6IE5vbmUgb3IgRXhjZXB0aW9u
SW5mbyBvYmplY3QuCi0gICAgZXhjaW5mbyA9IE5vbmUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBmdW5jLCB3aGVuKToKLSAgICAgICAgIzogY29udGV4dCBvZiBpbnZvY2F0aW9uOiBvbmUgb2Yg
InNldHVwIiwgImNhbGwiLAotICAgICAgICAjOiAidGVhcmRvd24iLCAibWVtb2NvbGxlY3QiCi0g
ICAgICAgIHNlbGYud2hlbiA9IHdoZW4KLSAgICAgICAgc2VsZi5zdGFydCA9IHRpbWUoKQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLnJlc3VsdCA9IGZ1bmMoKQotICAgICAgICBleGNl
cHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICBzZWxmLnN0b3AgPSB0aW1lKCkKLSAg
ICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdDogICMgbm9xYQotICAgICAgICAgICAgc2Vs
Zi5leGNpbmZvID0gRXhjZXB0aW9uSW5mbygpCi0gICAgICAgIHNlbGYuc3RvcCA9IHRpbWUoKQot
Ci0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmV4Y2luZm86Ci0gICAg
ICAgICAgICBzdGF0dXMgPSAiZXhjZXB0aW9uOiAlcyIgJSBzdHIoc2VsZi5leGNpbmZvLnZhbHVl
KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc3RhdHVzID0gInJlc3VsdDogJXIiICUgKHNl
bGYucmVzdWx0LCkKLSAgICAgICAgcmV0dXJuICI8Q2FsbEluZm8gd2hlbj0lciAlcz4iICUgKHNl
bGYud2hlbiwgc3RhdHVzKQotCi0KLWRlZiBnZXRzbGF2ZWluZm9saW5lKG5vZGUpOgotICAgIHRy
eToKLSAgICAgICAgcmV0dXJuIG5vZGUuX3NsYXZlaW5mb2NhY2hlCi0gICAgZXhjZXB0IEF0dHJp
YnV0ZUVycm9yOgotICAgICAgICBkID0gbm9kZS5zbGF2ZWluZm8KLSAgICAgICAgdmVyID0gIiVz
LiVzLiVzIiAlIGRbJ3ZlcnNpb25faW5mbyddWzozXQotICAgICAgICBub2RlLl9zbGF2ZWluZm9j
YWNoZSA9IHMgPSAiWyVzXSAlcyAtLSBQeXRob24gJXMgJXMiICUgKAotICAgICAgICAgICAgZFsn
aWQnXSwgZFsnc3lzcGxhdGZvcm0nXSwgdmVyLCBkWydleGVjdXRhYmxlJ10pCi0gICAgICAgIHJl
dHVybiBzCi0KLQotY2xhc3MgQmFzZVJlcG9ydChvYmplY3QpOgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsICoqa3cpOgotICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZShrdykKLQotICAgIGRl
ZiB0b3Rlcm1pbmFsKHNlbGYsIG91dCk6Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ25vZGUn
KToKLSAgICAgICAgICAgIG91dC5saW5lKGdldHNsYXZlaW5mb2xpbmUoc2VsZi5ub2RlKSkKLQot
ICAgICAgICBsb25ncmVwciA9IHNlbGYubG9uZ3JlcHIKLSAgICAgICAgaWYgbG9uZ3JlcHIgaXMg
Tm9uZToKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGlmIGhhc2F0dHIobG9uZ3JlcHIs
ICd0b3Rlcm1pbmFsJyk6Ci0gICAgICAgICAgICBsb25ncmVwci50b3Rlcm1pbmFsKG91dCkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBvdXQubGluZShs
b25ncmVwcikKLSAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6Ci0gICAgICAg
ICAgICAgICAgb3V0LmxpbmUoIjx1bnByaW50YWJsZSBsb25ncmVwcj4iKQotCi0gICAgZGVmIGdl
dF9zZWN0aW9ucyhzZWxmLCBwcmVmaXgpOgotICAgICAgICBmb3IgbmFtZSwgY29udGVudCBpbiBz
ZWxmLnNlY3Rpb25zOgotICAgICAgICAgICAgaWYgbmFtZS5zdGFydHN3aXRoKHByZWZpeCk6Ci0g
ICAgICAgICAgICAgICAgeWllbGQgcHJlZml4LCBjb250ZW50Ci0KLSAgICBAcHJvcGVydHkKLSAg
ICBkZWYgbG9uZ3JlcHJ0ZXh0KHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgUmVhZC1vbmx5
IHByb3BlcnR5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzdHJpbmcgcmVwcmVzZW50YXRpb24KLSAg
ICAgICAgb2YgYGBsb25ncmVwcmBgLgotCi0gICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMAot
ICAgICAgICAiIiIKLSAgICAgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihzdHJpbmdpbz1U
cnVlKQotICAgICAgICB0dy5oYXNtYXJrdXAgPSBGYWxzZQotICAgICAgICBzZWxmLnRvdGVybWlu
YWwodHcpCi0gICAgICAgIGV4YyA9IHR3LnN0cmluZ2lvLmdldHZhbHVlKCkKLSAgICAgICAgcmV0
dXJuIGV4Yy5zdHJpcCgpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgY2Fwc3Rkb3V0KHNlbGYp
OgotICAgICAgICAiIiJSZXR1cm4gY2FwdHVyZWQgdGV4dCBmcm9tIHN0ZG91dCwgaWYgY2FwdHVy
aW5nIGlzIGVuYWJsZWQKLQotICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKLSAgICAgICAg
IiIiCi0gICAgICAgIHJldHVybiAnJy5qb2luKGNvbnRlbnQgZm9yIChwcmVmaXgsIGNvbnRlbnQp
IGluIHNlbGYuZ2V0X3NlY3Rpb25zKCdDYXB0dXJlZCBzdGRvdXQnKSkKLQotICAgIEBwcm9wZXJ0
eQotICAgIGRlZiBjYXBzdGRlcnIoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiBjYXB0dXJlZCB0
ZXh0IGZyb20gc3RkZXJyLCBpZiBjYXB0dXJpbmcgaXMgZW5hYmxlZAotCi0gICAgICAgIC4uIHZl
cnNpb25hZGRlZDo6IDMuMAotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuICcnLmpvaW4oY29u
dGVudCBmb3IgKHByZWZpeCwgY29udGVudCkgaW4gc2VsZi5nZXRfc2VjdGlvbnMoJ0NhcHR1cmVk
IHN0ZGVycicpKQotCi0gICAgcGFzc2VkID0gcHJvcGVydHkobGFtYmRhIHg6IHgub3V0Y29tZSA9
PSAicGFzc2VkIikKLSAgICBmYWlsZWQgPSBwcm9wZXJ0eShsYW1iZGEgeDogeC5vdXRjb21lID09
ICJmYWlsZWQiKQotICAgIHNraXBwZWQgPSBwcm9wZXJ0eShsYW1iZGEgeDogeC5vdXRjb21lID09
ICJza2lwcGVkIikKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBmc3BhdGgoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBzZWxmLm5vZGVpZC5zcGxpdCgiOjoiKVswXQotCi0KLWRlZiBweXRlc3RfcnVu
dGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgotICAgIHdoZW4gPSBjYWxsLndoZW4KLSAgICBk
dXJhdGlvbiA9IGNhbGwuc3RvcCAtIGNhbGwuc3RhcnQKLSAgICBrZXl3b3JkcyA9IGRpY3QoWyh4
LCAxKSBmb3IgeCBpbiBpdGVtLmtleXdvcmRzXSkKLSAgICBleGNpbmZvID0gY2FsbC5leGNpbmZv
Ci0gICAgc2VjdGlvbnMgPSBbXQotICAgIGlmIG5vdCBjYWxsLmV4Y2luZm86Ci0gICAgICAgIG91
dGNvbWUgPSAicGFzc2VkIgotICAgICAgICBsb25ncmVwciA9IE5vbmUKLSAgICBlbHNlOgotICAg
ICAgICBpZiBub3QgaXNpbnN0YW5jZShleGNpbmZvLCBFeGNlcHRpb25JbmZvKToKLSAgICAgICAg
ICAgIG91dGNvbWUgPSAiZmFpbGVkIgotICAgICAgICAgICAgbG9uZ3JlcHIgPSBleGNpbmZvCi0g
ICAgICAgIGVsaWYgZXhjaW5mby5lcnJpc2luc3RhbmNlKHNraXAuRXhjZXB0aW9uKToKLSAgICAg
ICAgICAgIG91dGNvbWUgPSAic2tpcHBlZCIKLSAgICAgICAgICAgIHIgPSBleGNpbmZvLl9nZXRy
ZXByY3Jhc2goKQotICAgICAgICAgICAgbG9uZ3JlcHIgPSAoc3RyKHIucGF0aCksIHIubGluZW5v
LCByLm1lc3NhZ2UpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvdXRjb21lID0gImZhaWxl
ZCIKLSAgICAgICAgICAgIGlmIGNhbGwud2hlbiA9PSAiY2FsbCI6Ci0gICAgICAgICAgICAgICAg
bG9uZ3JlcHIgPSBpdGVtLnJlcHJfZmFpbHVyZShleGNpbmZvKQotICAgICAgICAgICAgZWxzZTog
ICMgZXhjZXB0aW9uIGluIHNldHVwIG9yIHRlYXJkb3duCi0gICAgICAgICAgICAgICAgbG9uZ3Jl
cHIgPSBpdGVtLl9yZXByX2ZhaWx1cmVfcHkoZXhjaW5mbywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1pdGVtLmNvbmZpZy5vcHRpb24udGJz
dHlsZSkKLSAgICBmb3IgcndoZW4sIGtleSwgY29udGVudCBpbiBpdGVtLl9yZXBvcnRfc2VjdGlv
bnM6Ci0gICAgICAgIHNlY3Rpb25zLmFwcGVuZCgoIkNhcHR1cmVkICVzICVzIiAlIChrZXksIHJ3
aGVuKSwgY29udGVudCkpCi0gICAgcmV0dXJuIFRlc3RSZXBvcnQoaXRlbS5ub2RlaWQsIGl0ZW0u
bG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMsIG91dGNvbWUsIGxvbmdy
ZXByLCB3aGVuLAotICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zLCBkdXJhdGlvbikKLQot
Ci1jbGFzcyBUZXN0UmVwb3J0KEJhc2VSZXBvcnQpOgotICAgICIiIiBCYXNpYyB0ZXN0IHJlcG9y
dCBvYmplY3QgKGFsc28gdXNlZCBmb3Igc2V0dXAgYW5kIHRlYXJkb3duIGNhbGxzIGlmCi0gICAg
dGhleSBmYWlsKS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlaWQsIGxv
Y2F0aW9uLCBrZXl3b3Jkcywgb3V0Y29tZSwKLSAgICAgICAgICAgICAgICAgbG9uZ3JlcHIsIHdo
ZW4sIHNlY3Rpb25zPSgpLCBkdXJhdGlvbj0wLCAqKmV4dHJhKToKLSAgICAgICAgIzogbm9ybWFs
aXplZCBjb2xsZWN0aW9uIG5vZGUgaWQKLSAgICAgICAgc2VsZi5ub2RlaWQgPSBub2RlaWQKLQot
ICAgICAgICAjOiBhIChmaWxlc3lzdGVtcGF0aCwgbGluZW5vLCBkb21haW5pbmZvKSB0dXBsZSBp
bmRpY2F0aW5nIHRoZQotICAgICAgICAjOiBhY3R1YWwgbG9jYXRpb24gb2YgYSB0ZXN0IGl0ZW0g
LSBpdCBtaWdodCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUKLSAgICAgICAgIzogY29sbGVjdGVkIG9u
ZSBlLmcuIGlmIGEgbWV0aG9kIGlzIGluaGVyaXRlZCBmcm9tIGEgZGlmZmVyZW50IG1vZHVsZS4K
LSAgICAgICAgc2VsZi5sb2NhdGlvbiA9IGxvY2F0aW9uCi0KLSAgICAgICAgIzogYSBuYW1lIC0+
IHZhbHVlIGRpY3Rpb25hcnkgY29udGFpbmluZyBhbGwga2V5d29yZHMgYW5kCi0gICAgICAgICM6
IG1hcmtlcnMgYXNzb2NpYXRlZCB3aXRoIGEgdGVzdCBpbnZvY2F0aW9uLgotICAgICAgICBzZWxm
LmtleXdvcmRzID0ga2V5d29yZHMKLQotICAgICAgICAjOiB0ZXN0IG91dGNvbWUsIGFsd2F5cyBv
bmUgb2YgInBhc3NlZCIsICJmYWlsZWQiLCAic2tpcHBlZCIuCi0gICAgICAgIHNlbGYub3V0Y29t
ZSA9IG91dGNvbWUKLQotICAgICAgICAjOiBOb25lIG9yIGEgZmFpbHVyZSByZXByZXNlbnRhdGlv
bi4KLSAgICAgICAgc2VsZi5sb25ncmVwciA9IGxvbmdyZXByCi0KLSAgICAgICAgIzogb25lIG9m
ICdzZXR1cCcsICdjYWxsJywgJ3RlYXJkb3duJyB0byBpbmRpY2F0ZSBydW50ZXN0IHBoYXNlLgot
ICAgICAgICBzZWxmLndoZW4gPSB3aGVuCi0KLSAgICAgICAgIzogbGlzdCBvZiBwYWlycyBgYChz
dHIsIHN0cilgYCBvZiBleHRyYSBpbmZvcm1hdGlvbiB3aGljaCBuZWVkcyB0bwotICAgICAgICAj
OiBtYXJzaGFsbGFibGUuIFVzZWQgYnkgcHl0ZXN0IHRvIGFkZCBjYXB0dXJlZCB0ZXh0Ci0gICAg
ICAgICM6IGZyb20gYGBzdGRvdXRgYCBhbmQgYGBzdGRlcnJgYCwgYnV0IG1heSBiZSB1c2VkIGJ5
IG90aGVyIHBsdWdpbnMKLSAgICAgICAgIzogdG8gYWRkIGFyYml0cmFyeSBpbmZvcm1hdGlvbiB0
byByZXBvcnRzLgotICAgICAgICBzZWxmLnNlY3Rpb25zID0gbGlzdChzZWN0aW9ucykKLQotICAg
ICAgICAjOiB0aW1lIGl0IHRvb2sgdG8gcnVuIGp1c3QgdGhlIHRlc3QKLSAgICAgICAgc2VsZi5k
dXJhdGlvbiA9IGR1cmF0aW9uCi0KLSAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoZXh0cmEp
Ci0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPFRlc3RSZXBvcnQg
JXIgd2hlbj0lciBvdXRjb21lPSVyPiIgJSAoCi0gICAgICAgICAgICBzZWxmLm5vZGVpZCwgc2Vs
Zi53aGVuLCBzZWxmLm91dGNvbWUpCi0KLQotY2xhc3MgVGVhcmRvd25FcnJvclJlcG9ydChCYXNl
UmVwb3J0KToKLSAgICBvdXRjb21lID0gImZhaWxlZCIKLSAgICB3aGVuID0gInRlYXJkb3duIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvbmdyZXByLCAqKmV4dHJhKToKLSAgICAgICAgc2Vs
Zi5sb25ncmVwciA9IGxvbmdyZXByCi0gICAgICAgIHNlbGYuc2VjdGlvbnMgPSBbXQotICAgICAg
ICBzZWxmLl9fZGljdF9fLnVwZGF0ZShleHRyYSkKLQotCi1kZWYgcHl0ZXN0X21ha2VfY29sbGVj
dF9yZXBvcnQoY29sbGVjdG9yKToKLSAgICBjYWxsID0gQ2FsbEluZm8oCi0gICAgICAgIGxhbWJk
YTogbGlzdChjb2xsZWN0b3IuY29sbGVjdCgpKSwKLSAgICAgICAgJ2NvbGxlY3QnKQotICAgIGxv
bmdyZXByID0gTm9uZQotICAgIGlmIG5vdCBjYWxsLmV4Y2luZm86Ci0gICAgICAgIG91dGNvbWUg
PSAicGFzc2VkIgotICAgIGVsc2U6Ci0gICAgICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgbm9zZQot
ICAgICAgICBza2lwX2V4Y2VwdGlvbnMgPSAoU2tpcHBlZCwpICsgbm9zZS5nZXRfc2tpcF9leGNl
cHRpb25zKCkKLSAgICAgICAgaWYgY2FsbC5leGNpbmZvLmVycmlzaW5zdGFuY2Uoc2tpcF9leGNl
cHRpb25zKToKLSAgICAgICAgICAgIG91dGNvbWUgPSAic2tpcHBlZCIKLSAgICAgICAgICAgIHIg
PSBjb2xsZWN0b3IuX3JlcHJfZmFpbHVyZV9weShjYWxsLmV4Y2luZm8sICJsaW5lIikucmVwcmNy
YXNoCi0gICAgICAgICAgICBsb25ncmVwciA9IChzdHIoci5wYXRoKSwgci5saW5lbm8sIHIubWVz
c2FnZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG91dGNvbWUgPSAiZmFpbGVkIgotICAg
ICAgICAgICAgZXJyb3JpbmZvID0gY29sbGVjdG9yLnJlcHJfZmFpbHVyZShjYWxsLmV4Y2luZm8p
Ci0gICAgICAgICAgICBpZiBub3QgaGFzYXR0cihlcnJvcmluZm8sICJ0b3Rlcm1pbmFsIik6Ci0g
ICAgICAgICAgICAgICAgZXJyb3JpbmZvID0gQ29sbGVjdEVycm9yUmVwcihlcnJvcmluZm8pCi0g
ICAgICAgICAgICBsb25ncmVwciA9IGVycm9yaW5mbwotICAgIHJlcCA9IENvbGxlY3RSZXBvcnQo
Y29sbGVjdG9yLm5vZGVpZCwgb3V0Y29tZSwgbG9uZ3JlcHIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBnZXRhdHRyKGNhbGwsICdyZXN1bHQnLCBOb25lKSkKLSAgICByZXAuY2FsbCA9IGNhbGwg
ICMgc2VlIGNvbGxlY3Rfb25lX25vZGUKLSAgICByZXR1cm4gcmVwCi0KLQotY2xhc3MgQ29sbGVj
dFJlcG9ydChCYXNlUmVwb3J0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZWlkLCBvdXRj
b21lLCBsb25ncmVwciwgcmVzdWx0LAotICAgICAgICAgICAgICAgICBzZWN0aW9ucz0oKSwgKipl
eHRyYSk6Ci0gICAgICAgIHNlbGYubm9kZWlkID0gbm9kZWlkCi0gICAgICAgIHNlbGYub3V0Y29t
ZSA9IG91dGNvbWUKLSAgICAgICAgc2VsZi5sb25ncmVwciA9IGxvbmdyZXByCi0gICAgICAgIHNl
bGYucmVzdWx0ID0gcmVzdWx0IG9yIFtdCi0gICAgICAgIHNlbGYuc2VjdGlvbnMgPSBsaXN0KHNl
Y3Rpb25zKQotICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZShleHRyYSkKLQotICAgIEBwcm9w
ZXJ0eQotICAgIGRlZiBsb2NhdGlvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIChzZWxmLmZzcGF0
aCwgTm9uZSwgc2VsZi5mc3BhdGgpCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAg
IHJldHVybiAiPENvbGxlY3RSZXBvcnQgJXIgbGVucmVzdWx0PSVzIG91dGNvbWU9JXI+IiAlICgK
LSAgICAgICAgICAgIHNlbGYubm9kZWlkLCBsZW4oc2VsZi5yZXN1bHQpLCBzZWxmLm91dGNvbWUp
Ci0KLQotY2xhc3MgQ29sbGVjdEVycm9yUmVwcihUZXJtaW5hbFJlcHIpOgotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBtc2cpOgotICAgICAgICBzZWxmLmxvbmdyZXByID0gbXNnCi0KLSAgICBkZWYg
dG90ZXJtaW5hbChzZWxmLCBvdXQpOgotICAgICAgICBvdXQubGluZShzZWxmLmxvbmdyZXByLCBy
ZWQ9VHJ1ZSkKLQotCi1jbGFzcyBTZXR1cFN0YXRlKG9iamVjdCk6Ci0gICAgIiIiIHNoYXJlZCBz
dGF0ZSBmb3Igc2V0dGluZyB1cC90ZWFyaW5nIGRvd24gdGVzdCBpdGVtcyBvciBjb2xsZWN0b3Jz
LiAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5zdGFjayA9IFtd
Ci0gICAgICAgIHNlbGYuX2ZpbmFsaXplcnMgPSB7fQotCi0gICAgZGVmIGFkZGZpbmFsaXplcihz
ZWxmLCBmaW5hbGl6ZXIsIGNvbGl0ZW0pOgotICAgICAgICAiIiIgYXR0YWNoIGEgZmluYWxpemVy
IHRvIHRoZSBnaXZlbiBjb2xpdGVtLgotICAgICAgICBpZiBjb2xpdGVtIGlzIE5vbmUsIHRoaXMg
d2lsbCBhZGQgYSBmaW5hbGl6ZXIgdGhhdAotICAgICAgICBpcyBjYWxsZWQgYXQgdGhlIGVuZCBv
ZiB0ZWFyZG93bl9hbGwoKS4KLSAgICAgICAgIiIiCi0gICAgICAgIGFzc2VydCBjb2xpdGVtIGFu
ZCBub3QgaXNpbnN0YW5jZShjb2xpdGVtLCB0dXBsZSkKLSAgICAgICAgYXNzZXJ0IGNhbGxhYmxl
KGZpbmFsaXplcikKLSAgICAgICAgIyBhc3NlcnQgY29saXRlbSBpbiBzZWxmLnN0YWNrICAjIHNv
bWUgdW5pdCB0ZXN0cyBkb24ndCBzZXR1cCBzdGFjayA6LwotICAgICAgICBzZWxmLl9maW5hbGl6
ZXJzLnNldGRlZmF1bHQoY29saXRlbSwgW10pLmFwcGVuZChmaW5hbGl6ZXIpCi0KLSAgICBkZWYg
X3BvcF9hbmRfdGVhcmRvd24oc2VsZik6Ci0gICAgICAgIGNvbGl0ZW0gPSBzZWxmLnN0YWNrLnBv
cCgpCi0gICAgICAgIHNlbGYuX3RlYXJkb3duX3dpdGhfZmluYWxpemF0aW9uKGNvbGl0ZW0pCi0K
LSAgICBkZWYgX2NhbGxmaW5hbGl6ZXJzKHNlbGYsIGNvbGl0ZW0pOgotICAgICAgICBmaW5hbGl6
ZXJzID0gc2VsZi5fZmluYWxpemVycy5wb3AoY29saXRlbSwgTm9uZSkKLSAgICAgICAgZXhjID0g
Tm9uZQotICAgICAgICB3aGlsZSBmaW5hbGl6ZXJzOgotICAgICAgICAgICAgZmluID0gZmluYWxp
emVycy5wb3AoKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGZpbigpCi0gICAg
ICAgICAgICBleGNlcHQgVEVTVF9PVVRDT01FOgotICAgICAgICAgICAgICAgICMgWFhYIE9ubHkg
Zmlyc3QgZXhjZXB0aW9uIHdpbGwgYmUgc2VlbiBieSB1c2VyLAotICAgICAgICAgICAgICAgICMg
ICAgIGlkZWFsbHkgYWxsIHNob3VsZCBiZSByZXBvcnRlZC4KLSAgICAgICAgICAgICAgICBpZiBl
eGMgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgZXhjID0gc3lzLmV4Y19pbmZvKCkKLSAg
ICAgICAgaWYgZXhjOgotICAgICAgICAgICAgcHkuYnVpbHRpbi5fcmVyYWlzZSgqZXhjKQotCi0g
ICAgZGVmIF90ZWFyZG93bl93aXRoX2ZpbmFsaXphdGlvbihzZWxmLCBjb2xpdGVtKToKLSAgICAg
ICAgc2VsZi5fY2FsbGZpbmFsaXplcnMoY29saXRlbSkKLSAgICAgICAgaWYgaGFzYXR0cihjb2xp
dGVtLCAidGVhcmRvd24iKToKLSAgICAgICAgICAgIGNvbGl0ZW0udGVhcmRvd24oKQotICAgICAg
ICBmb3IgY29saXRlbSBpbiBzZWxmLl9maW5hbGl6ZXJzOgotICAgICAgICAgICAgYXNzZXJ0IGNv
bGl0ZW0gaXMgTm9uZSBvciBjb2xpdGVtIGluIHNlbGYuc3RhY2sgXAotICAgICAgICAgICAgICAg
IG9yIGlzaW5zdGFuY2UoY29saXRlbSwgdHVwbGUpCi0KLSAgICBkZWYgdGVhcmRvd25fYWxsKHNl
bGYpOgotICAgICAgICB3aGlsZSBzZWxmLnN0YWNrOgotICAgICAgICAgICAgc2VsZi5fcG9wX2Fu
ZF90ZWFyZG93bigpCi0gICAgICAgIGZvciBrZXkgaW4gbGlzdChzZWxmLl9maW5hbGl6ZXJzKToK
LSAgICAgICAgICAgIHNlbGYuX3RlYXJkb3duX3dpdGhfZmluYWxpemF0aW9uKGtleSkKLSAgICAg
ICAgYXNzZXJ0IG5vdCBzZWxmLl9maW5hbGl6ZXJzCi0KLSAgICBkZWYgdGVhcmRvd25fZXhhY3Qo
c2VsZiwgaXRlbSwgbmV4dGl0ZW0pOgotICAgICAgICBuZWVkZWRfY29sbGVjdG9ycyA9IG5leHRp
dGVtIGFuZCBuZXh0aXRlbS5saXN0Y2hhaW4oKSBvciBbXQotICAgICAgICBzZWxmLl90ZWFyZG93
bl90b3dhcmRzKG5lZWRlZF9jb2xsZWN0b3JzKQotCi0gICAgZGVmIF90ZWFyZG93bl90b3dhcmRz
KHNlbGYsIG5lZWRlZF9jb2xsZWN0b3JzKToKLSAgICAgICAgd2hpbGUgc2VsZi5zdGFjazoKLSAg
ICAgICAgICAgIGlmIHNlbGYuc3RhY2sgPT0gbmVlZGVkX2NvbGxlY3RvcnNbOmxlbihzZWxmLnN0
YWNrKV06Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIHNlbGYuX3BvcF9hbmRf
dGVhcmRvd24oKQotCi0gICAgZGVmIHByZXBhcmUoc2VsZiwgY29saXRlbSk6Ci0gICAgICAgICIi
IiBzZXR1cCBvYmplY3RzIGFsb25nIHRoZSBjb2xsZWN0b3IgY2hhaW4gdG8gdGhlIHRlc3QtbWV0
aG9kCi0gICAgICAgICAgICBhbmQgdGVhcmRvd24gcHJldmlvdXNseSBzZXR1cCBvYmplY3RzLiIi
IgotICAgICAgICBuZWVkZWRfY29sbGVjdG9ycyA9IGNvbGl0ZW0ubGlzdGNoYWluKCkKLSAgICAg
ICAgc2VsZi5fdGVhcmRvd25fdG93YXJkcyhuZWVkZWRfY29sbGVjdG9ycykKLQotICAgICAgICAj
IGNoZWNrIGlmIHRoZSBsYXN0IGNvbGxlY3Rpb24gbm9kZSBoYXMgcmFpc2VkIGFuIGVycm9yCi0g
ICAgICAgIGZvciBjb2wgaW4gc2VsZi5zdGFjazoKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoY29s
LCAnX3ByZXBhcmVfZXhjJyk6Ci0gICAgICAgICAgICAgICAgcHkuYnVpbHRpbi5fcmVyYWlzZSgq
Y29sLl9wcmVwYXJlX2V4YykKLSAgICAgICAgZm9yIGNvbCBpbiBuZWVkZWRfY29sbGVjdG9yc1ts
ZW4oc2VsZi5zdGFjayk6XToKLSAgICAgICAgICAgIHNlbGYuc3RhY2suYXBwZW5kKGNvbCkKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjb2wuc2V0dXAoKQotICAgICAgICAgICAg
ZXhjZXB0IFRFU1RfT1VUQ09NRToKLSAgICAgICAgICAgICAgICBjb2wuX3ByZXBhcmVfZXhjID0g
c3lzLmV4Y19pbmZvKCkKLSAgICAgICAgICAgICAgICByYWlzZQotCi0KLWRlZiBjb2xsZWN0X29u
ZV9ub2RlKGNvbGxlY3Rvcik6Ci0gICAgaWhvb2sgPSBjb2xsZWN0b3IuaWhvb2sKLSAgICBpaG9v
ay5weXRlc3RfY29sbGVjdHN0YXJ0KGNvbGxlY3Rvcj1jb2xsZWN0b3IpCi0gICAgcmVwID0gaWhv
b2sucHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9yPWNvbGxlY3RvcikKLSAgICBj
YWxsID0gcmVwLl9fZGljdF9fLnBvcCgiY2FsbCIsIE5vbmUpCi0gICAgaWYgY2FsbCBhbmQgY2hl
Y2tfaW50ZXJhY3RpdmVfZXhjZXB0aW9uKGNhbGwsIHJlcCk6Ci0gICAgICAgIGlob29rLnB5dGVz
dF9leGNlcHRpb25faW50ZXJhY3Qobm9kZT1jb2xsZWN0b3IsIGNhbGw9Y2FsbCwgcmVwb3J0PXJl
cCkKLSAgICByZXR1cm4gcmVwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVw
b25seS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBvbmx5LnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhMWM3NDU3ZDdlNTA2YzA3YjdjMTc1ZWI4Yzk0NzBlYjYxYjVmZDdh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3Qvc2V0dXBvbmx5LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9m
dW5jdGlvbgotCi1pbXBvcnQgcHl0ZXN0Ci1pbXBvcnQgc3lzCi0KLQotZGVmIHB5dGVzdF9hZGRv
cHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZGVidWdjb25maWci
KQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1zZXR1cG9ubHknLCAnLS1zZXR1cC1vbmx5JywgYWN0
aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0ib25seSBzZXR1cCBm
aXh0dXJlcywgZG8gbm90IGV4ZWN1dGUgdGVzdHMuIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0t
c2V0dXBzaG93JywgJy0tc2V0dXAtc2hvdycsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAg
ICAgICAgICAgICAgIGhlbHA9InNob3cgc2V0dXAgb2YgZml4dHVyZXMgd2hpbGUgZXhlY3V0aW5n
IHRlc3RzLiIpCi0KLQotQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVmIHB5
dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgotICAgIHlpZWxkCi0gICAg
Y29uZmlnID0gcmVxdWVzdC5jb25maWcKLSAgICBpZiBjb25maWcub3B0aW9uLnNldHVwc2hvdzoK
LSAgICAgICAgaWYgaGFzYXR0cihyZXF1ZXN0LCAncGFyYW0nKToKLSAgICAgICAgICAgICMgU2F2
ZSB0aGUgZml4dHVyZSBwYXJhbWV0ZXIgc28gLl9zaG93X2ZpeHR1cmVfYWN0aW9uKCkgY2FuCi0g
ICAgICAgICAgICAjIGRpc3BsYXkgaXQgbm93IGFuZCBkdXJpbmcgdGhlIHRlYXJkb3duIChpbiAu
ZmluaXNoKCkpLgotICAgICAgICAgICAgaWYgZml4dHVyZWRlZi5pZHM6Ci0gICAgICAgICAgICAg
ICAgaWYgY2FsbGFibGUoZml4dHVyZWRlZi5pZHMpOgotICAgICAgICAgICAgICAgICAgICBmaXh0
dXJlZGVmLmNhY2hlZF9wYXJhbSA9IGZpeHR1cmVkZWYuaWRzKHJlcXVlc3QucGFyYW0pCi0gICAg
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgZml4dHVyZWRlZi5jYWNoZWRf
cGFyYW0gPSBmaXh0dXJlZGVmLmlkc1sKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
cGFyYW1faW5kZXhdCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGZpeHR1cmVk
ZWYuY2FjaGVkX3BhcmFtID0gcmVxdWVzdC5wYXJhbQotICAgICAgICBfc2hvd19maXh0dXJlX2Fj
dGlvbihmaXh0dXJlZGVmLCAnU0VUVVAnKQotCi0KLWRlZiBweXRlc3RfZml4dHVyZV9wb3N0X2Zp
bmFsaXplcihmaXh0dXJlZGVmKToKLSAgICBpZiBoYXNhdHRyKGZpeHR1cmVkZWYsICJjYWNoZWRf
cmVzdWx0Iik6Ci0gICAgICAgIGNvbmZpZyA9IGZpeHR1cmVkZWYuX2ZpeHR1cmVtYW5hZ2VyLmNv
bmZpZwotICAgICAgICBpZiBjb25maWcub3B0aW9uLnNldHVwc2hvdzoKLSAgICAgICAgICAgIF9z
aG93X2ZpeHR1cmVfYWN0aW9uKGZpeHR1cmVkZWYsICdURUFSRE9XTicpCi0gICAgICAgICAgICBp
ZiBoYXNhdHRyKGZpeHR1cmVkZWYsICJjYWNoZWRfcGFyYW0iKToKLSAgICAgICAgICAgICAgICBk
ZWwgZml4dHVyZWRlZi5jYWNoZWRfcGFyYW0KLQotCi1kZWYgX3Nob3dfZml4dHVyZV9hY3Rpb24o
Zml4dHVyZWRlZiwgbXNnKToKLSAgICBjb25maWcgPSBmaXh0dXJlZGVmLl9maXh0dXJlbWFuYWdl
ci5jb25maWcKLSAgICBjYXBtYW4gPSBjb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oJ2Nh
cHR1cmVtYW5hZ2VyJykKLSAgICBpZiBjYXBtYW46Ci0gICAgICAgIG91dCwgZXJyID0gY2FwbWFu
LnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoKQotCi0gICAgdHcgPSBjb25maWcuZ2V0X3Rlcm1pbmFs
X3dyaXRlcigpCi0gICAgdHcubGluZSgpCi0gICAgdHcud3JpdGUoJyAnICogMiAqIGZpeHR1cmVk
ZWYuc2NvcGVudW0pCi0gICAgdHcud3JpdGUoJ3tzdGVwfSB7c2NvcGV9IHtmaXh0dXJlfScuZm9y
bWF0KAotICAgICAgICBzdGVwPW1zZy5sanVzdCg4KSwgICMgYWxpZ24gdGhlIG91dHB1dCB0byBU
RUFSRE9XTgotICAgICAgICBzY29wZT1maXh0dXJlZGVmLnNjb3BlWzBdLnVwcGVyKCksCi0gICAg
ICAgIGZpeHR1cmU9Zml4dHVyZWRlZi5hcmduYW1lKSkKLQotICAgIGlmIG1zZyA9PSAnU0VUVVAn
OgotICAgICAgICBkZXBzID0gc29ydGVkKGFyZyBmb3IgYXJnIGluIGZpeHR1cmVkZWYuYXJnbmFt
ZXMgaWYgYXJnICE9ICdyZXF1ZXN0JykKLSAgICAgICAgaWYgZGVwczoKLSAgICAgICAgICAgIHR3
LndyaXRlKCcgKGZpeHR1cmVzIHVzZWQ6IHswfSknLmZvcm1hdCgnLCAnLmpvaW4oZGVwcykpKQot
Ci0gICAgaWYgaGFzYXR0cihmaXh0dXJlZGVmLCAnY2FjaGVkX3BhcmFtJyk6Ci0gICAgICAgIHR3
LndyaXRlKCdbezB9XScuZm9ybWF0KGZpeHR1cmVkZWYuY2FjaGVkX3BhcmFtKSkKLQotICAgIGlm
IGNhcG1hbjoKLSAgICAgICAgY2FwbWFuLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0gICAgICAg
IHN5cy5zdGRvdXQud3JpdGUob3V0KQotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKGVycikKLQot
Ci1AcHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFp
bihjb25maWcpOgotICAgIGlmIGNvbmZpZy5vcHRpb24uc2V0dXBvbmx5OgotICAgICAgICBjb25m
aWcub3B0aW9uLnNldHVwc2hvdyA9IFRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3Qvc2V0dXBwbGFuLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9zZXR1cHBsYW4ucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMWJkNDA2OThiNzcyYjA2YTM3Mjk3Y2ZjMzRlMGE3
OGJkMTE2NDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9zZXR1cHBsYW4ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNSAr
MCwwIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBweXRlc3QKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlv
bihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJkZWJ1Z2NvbmZpZyIpCi0g
ICAgZ3JvdXAuYWRkb3B0aW9uKCctLXNldHVwcGxhbicsICctLXNldHVwLXBsYW4nLCBhY3Rpb249
InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IHdoYXQgZml4dHVy
ZXMgYW5kIHRlc3RzIHdvdWxkIGJlIGV4ZWN1dGVkIGJ1dCAiCi0gICAgICAgICAgICAgICAgICAg
ICJkb24ndCBleGVjdXRlIGFueXRoaW5nLiIpCi0KLQotQHB5dGVzdC5ob29raW1wbCh0cnlmaXJz
dD1UcnVlKQotZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgot
ICAgICMgV2lsbCByZXR1cm4gYSBkdW1teSBmaXh0dXJlIGlmIHRoZSBzZXR1cG9ubHkgb3B0aW9u
IGlzIHByb3ZpZGVkLgotICAgIGlmIHJlcXVlc3QuY29uZmlnLm9wdGlvbi5zZXR1cHBsYW46Ci0g
ICAgICAgIGZpeHR1cmVkZWYuY2FjaGVkX3Jlc3VsdCA9IChOb25lLCBOb25lLCBOb25lKQotICAg
ICAgICByZXR1cm4gZml4dHVyZWRlZi5jYWNoZWRfcmVzdWx0Ci0KLQotQHB5dGVzdC5ob29raW1w
bCh0cnlmaXJzdD1UcnVlKQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKLSAgICBp
ZiBjb25maWcub3B0aW9uLnNldHVwcGxhbjoKLSAgICAgICAgY29uZmlnLm9wdGlvbi5zZXR1cG9u
bHkgPSBUcnVlCi0gICAgICAgIGNvbmZpZy5vcHRpb24uc2V0dXBzaG93ID0gVHJ1ZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9za2lwcGluZy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3Qvc2tpcHBpbmcucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExZTViNDM4MDBi
NTRmOGM4YTI5MDU0MGIxM2RhM2EwMjgyMGQ3ZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9za2lwcGluZy5weQorKysg
L2Rldi9udWxsCkBAIC0xLDM5NyArMCwwIEBACi0iIiIgc3VwcG9ydCBmb3Igc2tpcC94ZmFpbCBm
dW5jdGlvbnMgYW5kIG1hcmtlcnMuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgb3MKLWltcG9ydCBz
aXgKLWltcG9ydCBzeXMKLWltcG9ydCB0cmFjZWJhY2sKLQotZnJvbSBfcHl0ZXN0LmNvbmZpZyBp
bXBvcnQgaG9va2ltcGwKLWZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrSW5mbywgTWFya0Rl
Y29yYXRvcgotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBza2lwLCB4ZmFpbCwg
VEVTVF9PVVRDT01FCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91
cCA9IHBhcnNlci5nZXRncm91cCgiZ2VuZXJhbCIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLXJ1
bnhmYWlsJywKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0i
cnVueGZhaWwiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJydW4g
dGVzdHMgZXZlbiBpZiB0aGV5IGFyZSBtYXJrZWQgeGZhaWwiKQotCi0gICAgcGFyc2VyLmFkZGlu
aSgieGZhaWxfc3RyaWN0IiwgImRlZmF1bHQgZm9yIHRoZSBzdHJpY3QgcGFyYW1ldGVyIG9mIHhm
YWlsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWFya2VycyB3aGVuIG5v
dCBnaXZlbiBleHBsaWNpdGx5IChkZWZhdWx0OiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkZhbHNlKSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJib29s
IikKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgIGlmIGNvbmZpZy5vcHRp
b24ucnVueGZhaWw6Ci0gICAgICAgICMgeWF5IGEgaGFjawotICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgIG9sZCA9IHB5dGVzdC54ZmFpbAotICAgICAgICBjb25maWcuX2NsZWFudXAuYXBw
ZW5kKGxhbWJkYTogc2V0YXR0cihweXRlc3QsICJ4ZmFpbCIsIG9sZCkpCi0KLSAgICAgICAgZGVm
IG5vcCgqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIG5vcC5F
eGNlcHRpb24gPSB4ZmFpbC5FeGNlcHRpb24KLSAgICAgICAgc2V0YXR0cihweXRlc3QsICJ4ZmFp
bCIsIG5vcCkKLQotICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic2tpcChyZWFzb249Tm9uZSk6IHNraXAgdGhlIGdpdmVu
IHRlc3QgZnVuY3Rpb24gd2l0aCBhbiBvcHRpb25hbCByZWFzb24uICIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiRXhhbXBsZTogc2tpcChyZWFzb249XCJubyB3YXkgb2YgY3VycmVudGx5
IHRlc3RpbmcgdGhpc1wiKSBza2lwcyB0aGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0ZXN0LiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgY29uZmlnLmFkZGlu
aXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJza2lw
aWYoY29uZGl0aW9uKTogc2tpcCB0aGUgZ2l2ZW4gdGVzdCBmdW5jdGlvbiBpZiBldmFsKGNvbmRp
dGlvbikgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXN1bHRzIGluIGEgVHJ1ZSB2
YWx1ZS4gIEV2YWx1YXRpb24gaGFwcGVucyB3aXRoaW4gdGhlICIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibW9kdWxlIGdsb2JhbCBjb250ZXh0LiBFeGFtcGxlOiBza2lwaWYoJ3N5cy5w
bGF0Zm9ybSA9PSBcIndpbjMyXCInKSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNr
aXBzIHRoZSB0ZXN0IGlmIHdlIGFyZSBvbiB0aGUgd2luMzIgcGxhdGZvcm0uIHNlZSAiCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9za2lwcGlu
Zy5odG1sIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICBjb25maWcuYWRkaW5p
dmFsdWVfbGluZSgibWFya2VycyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInhmYWls
KGNvbmRpdGlvbiwgcmVhc29uPU5vbmUsIHJ1bj1UcnVlLCByYWlzZXM9Tm9uZSwgc3RyaWN0PUZh
bHNlKTogIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYXJrIHRoZSB0ZXN0IGZ1bmN0
aW9uIGFzIGFuIGV4cGVjdGVkIGZhaWx1cmUgaWYgZXZhbChjb25kaXRpb24pICIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaGFzIGEgVHJ1ZSB2YWx1ZS4gT3B0aW9uYWxseSBzcGVjaWZ5
IGEgcmVhc29uIGZvciBiZXR0ZXIgcmVwb3J0aW5nICIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiYW5kIHJ1bj1GYWxzZSBpZiB5b3UgZG9uJ3QgZXZlbiB3YW50IHRvIGV4ZWN1dGUgdGhl
IHRlc3QgZnVuY3Rpb24uICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWYgb25seSBz
cGVjaWZpYyBleGNlcHRpb24ocykgYXJlIGV4cGVjdGVkLCB5b3UgY2FuIGxpc3QgdGhlbSBpbiAi
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInJhaXNlcywgYW5kIGlmIHRoZSB0ZXN0IGZh
aWxzIGluIG90aGVyIHdheXMsIGl0IHdpbGwgYmUgcmVwb3J0ZWQgYXMgIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJhIHRydWUgZmFpbHVyZS4gU2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xh
dGVzdC9za2lwcGluZy5odG1sIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLQotCi1j
bGFzcyBNYXJrRXZhbHVhdG9yKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZW0s
IG5hbWUpOgotICAgICAgICBzZWxmLml0ZW0gPSBpdGVtCi0gICAgICAgIHNlbGYuX21hcmtzID0g
Tm9uZQotICAgICAgICBzZWxmLl9tYXJrID0gTm9uZQotICAgICAgICBzZWxmLl9tYXJrX25hbWUg
PSBuYW1lCi0KLSAgICBkZWYgX19ib29sX18oc2VsZik6Ci0gICAgICAgIHNlbGYuX21hcmtzID0g
c2VsZi5fZ2V0X21hcmtzKCkKLSAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5fbWFya3MpCi0gICAg
X19ub256ZXJvX18gPSBfX2Jvb2xfXwotCi0gICAgZGVmIHdhc3ZhbGlkKHNlbGYpOgotICAgICAg
ICByZXR1cm4gbm90IGhhc2F0dHIoc2VsZiwgJ2V4YycpCi0KLSAgICBkZWYgX2dldF9tYXJrcyhz
ZWxmKToKLQotICAgICAgICBrZXl3b3JkID0gc2VsZi5pdGVtLmtleXdvcmRzLmdldChzZWxmLl9t
YXJrX25hbWUpCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5d29yZCwgTWFya0RlY29yYXRvcik6
Ci0gICAgICAgICAgICByZXR1cm4gW2tleXdvcmQubWFya10KLSAgICAgICAgZWxpZiBpc2luc3Rh
bmNlKGtleXdvcmQsIE1hcmtJbmZvKToKLSAgICAgICAgICAgIHJldHVybiBbeC5jb21iaW5lZCBm
b3IgeCBpbiBrZXl3b3JkXQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIFtdCi0K
LSAgICBkZWYgaW52YWxpZHJhaXNlKHNlbGYsIGV4Yyk6Ci0gICAgICAgIHJhaXNlcyA9IHNlbGYu
Z2V0KCdyYWlzZXMnKQotICAgICAgICBpZiBub3QgcmFpc2VzOgotICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIHJldHVybiBub3QgaXNpbnN0YW5jZShleGMsIHJhaXNlcykKLQotICAgIGRlZiBp
c3RydWUoc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9pc3Ry
dWUoKQotICAgICAgICBleGNlcHQgVEVTVF9PVVRDT01FOgotICAgICAgICAgICAgc2VsZi5leGMg
PSBzeXMuZXhjX2luZm8oKQotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmV4Y1sxXSwg
U3ludGF4RXJyb3IpOgotICAgICAgICAgICAgICAgIG1zZyA9IFsiICIgKiAoc2VsZi5leGNbMV0u
b2Zmc2V0ICsgNCkgKyAiXiIsIF0KLSAgICAgICAgICAgICAgICBtc2cuYXBwZW5kKCJTeW50YXhF
cnJvcjogaW52YWxpZCBzeW50YXgiKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICBtc2cgPSB0cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbl9vbmx5KCpzZWxmLmV4Y1s6Ml0pCi0g
ICAgICAgICAgICBmYWlsKCJFcnJvciBldmFsdWF0aW5nICVyIGV4cHJlc3Npb25cbiIKLSAgICAg
ICAgICAgICAgICAgIiAgICAlc1xuIgotICAgICAgICAgICAgICAgICAiJXMiCi0gICAgICAgICAg
ICAgICAgICUgKHNlbGYuX21hcmtfbmFtZSwgc2VsZi5leHByLCAiXG4iLmpvaW4obXNnKSksCi0g
ICAgICAgICAgICAgICAgIHB5dHJhY2U9RmFsc2UpCi0KLSAgICBkZWYgX2dldGdsb2JhbHMoc2Vs
Zik6Ci0gICAgICAgIGQgPSB7J29zJzogb3MsICdzeXMnOiBzeXMsICdjb25maWcnOiBzZWxmLml0
ZW0uY29uZmlnfQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYuaXRlbSwgJ29iaicpOgotICAgICAg
ICAgICAgZC51cGRhdGUoc2VsZi5pdGVtLm9iai5fX2dsb2JhbHNfXykKLSAgICAgICAgcmV0dXJu
IGQKLQotICAgIGRlZiBfaXN0cnVlKHNlbGYpOgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdy
ZXN1bHQnKToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdAotICAgICAgICBzZWxmLl9t
YXJrcyA9IHNlbGYuX2dldF9tYXJrcygpCi0KLSAgICAgICAgaWYgc2VsZi5fbWFya3M6Ci0gICAg
ICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlCi0gICAgICAgICAgICBmb3IgbWFyayBpbiBzZWxm
Ll9tYXJrczoKLSAgICAgICAgICAgICAgICBzZWxmLl9tYXJrID0gbWFyawotICAgICAgICAgICAg
ICAgIGlmICdjb25kaXRpb24nIGluIG1hcmsua3dhcmdzOgotICAgICAgICAgICAgICAgICAgICBh
cmdzID0gKG1hcmsua3dhcmdzWydjb25kaXRpb24nXSwpCi0gICAgICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICAgICAgYXJncyA9IG1hcmsuYXJncwotCi0gICAgICAgICAgICAgICAg
Zm9yIGV4cHIgaW4gYXJnczoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5leHByID0gZXhwcgot
ICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV4cHIsIHNpeC5zdHJpbmdfdHlwZXMp
OgotICAgICAgICAgICAgICAgICAgICAgICAgZCA9IHNlbGYuX2dldGdsb2JhbHMoKQotICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2FjaGVkX2V2YWwoc2VsZi5pdGVtLmNvbmZpZywg
ZXhwciwgZCkKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICJyZWFzb24iIG5vdCBpbiBtYXJrLmt3YXJnczoKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAjIFhYWCBiZXR0ZXIgYmUgY2hlY2tlZCBhdCBjb2xsZWN0aW9uIHRpbWUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSAieW91IG5lZWQgdG8gc3BlY2lmeSByZWFzb249
U1RSSU5HICIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGVuIHVzaW5n
IGJvb2xlYW5zIGFzIGNvbmRpdGlvbnMuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZh
aWwobXNnKQotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYm9vbChleHByKQotICAg
ICAgICAgICAgICAgICAgICBpZiByZXN1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LnJlc3VsdCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVhc29uID0gbWFy
ay5rd2FyZ3MuZ2V0KCdyZWFzb24nLCBOb25lKQotICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5leHByID0gZXhwcgotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0
Ci0KLSAgICAgICAgICAgICAgICBpZiBub3QgYXJnczoKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5yZXN1bHQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIHNlbGYucmVhc29uID0gbWFyay5r
d2FyZ3MuZ2V0KCdyZWFzb24nLCBOb25lKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5yZXN1bHQKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgZ2V0KHNlbGYsIGF0dHIs
IGRlZmF1bHQ9Tm9uZSk6Ci0gICAgICAgIGlmIHNlbGYuX21hcmsgaXMgTm9uZToKLSAgICAgICAg
ICAgIHJldHVybiBkZWZhdWx0Ci0gICAgICAgIHJldHVybiBzZWxmLl9tYXJrLmt3YXJncy5nZXQo
YXR0ciwgZGVmYXVsdCkKLQotICAgIGRlZiBnZXRleHBsYW5hdGlvbihzZWxmKToKLSAgICAgICAg
ZXhwbCA9IGdldGF0dHIoc2VsZiwgJ3JlYXNvbicsIE5vbmUpIG9yIHNlbGYuZ2V0KCdyZWFzb24n
LCBOb25lKQotICAgICAgICBpZiBub3QgZXhwbDoKLSAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRy
KHNlbGYsICdleHByJyk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICIiCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIHJldHVybiAiY29uZGl0aW9uOiAiICsgc3RyKHNlbGYuZXhw
cikKLSAgICAgICAgcmV0dXJuIGV4cGwKLQotCi1AaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLWRl
ZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKLSAgICAjIENoZWNrIGlmIHNraXAgb3Igc2tp
cGlmIGFyZSBzcGVjaWZpZWQgYXMgcHl0ZXN0IG1hcmtzCi0gICAgaXRlbS5fc2tpcHBlZF9ieV9t
YXJrID0gRmFsc2UKLSAgICBza2lwaWZfaW5mbyA9IGl0ZW0ua2V5d29yZHMuZ2V0KCdza2lwaWYn
KQotICAgIGlmIGlzaW5zdGFuY2Uoc2tpcGlmX2luZm8sIChNYXJrSW5mbywgTWFya0RlY29yYXRv
cikpOgotICAgICAgICBldmFsX3NraXBpZiA9IE1hcmtFdmFsdWF0b3IoaXRlbSwgJ3NraXBpZicp
Ci0gICAgICAgIGlmIGV2YWxfc2tpcGlmLmlzdHJ1ZSgpOgotICAgICAgICAgICAgaXRlbS5fc2tp
cHBlZF9ieV9tYXJrID0gVHJ1ZQotICAgICAgICAgICAgc2tpcChldmFsX3NraXBpZi5nZXRleHBs
YW5hdGlvbigpKQotCi0gICAgc2tpcF9pbmZvID0gaXRlbS5rZXl3b3Jkcy5nZXQoJ3NraXAnKQot
ICAgIGlmIGlzaW5zdGFuY2Uoc2tpcF9pbmZvLCAoTWFya0luZm8sIE1hcmtEZWNvcmF0b3IpKToK
LSAgICAgICAgaXRlbS5fc2tpcHBlZF9ieV9tYXJrID0gVHJ1ZQotICAgICAgICBpZiAncmVhc29u
JyBpbiBza2lwX2luZm8ua3dhcmdzOgotICAgICAgICAgICAgc2tpcChza2lwX2luZm8ua3dhcmdz
WydyZWFzb24nXSkKLSAgICAgICAgZWxpZiBza2lwX2luZm8uYXJnczoKLSAgICAgICAgICAgIHNr
aXAoc2tpcF9pbmZvLmFyZ3NbMF0pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBza2lwKCJ1
bmNvbmRpdGlvbmFsIHNraXAiKQotCi0gICAgaXRlbS5fZXZhbHhmYWlsID0gTWFya0V2YWx1YXRv
cihpdGVtLCAneGZhaWwnKQotICAgIGNoZWNrX3hmYWlsX25vX3J1bihpdGVtKQotCi0KLUBob29r
aW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVmIHB5dGVzdF9weWZ1bmNfY2FsbChweWZ1bmNpdGVt
KToKLSAgICBjaGVja194ZmFpbF9ub19ydW4ocHlmdW5jaXRlbSkKLSAgICBvdXRjb21lID0geWll
bGQKLSAgICBwYXNzZWQgPSBvdXRjb21lLmV4Y2luZm8gaXMgTm9uZQotICAgIGlmIHBhc3NlZDoK
LSAgICAgICAgY2hlY2tfc3RyaWN0X3hmYWlsKHB5ZnVuY2l0ZW0pCi0KLQotZGVmIGNoZWNrX3hm
YWlsX25vX3J1bihpdGVtKToKLSAgICAiIiJjaGVjayB4ZmFpbChydW49RmFsc2UpIiIiCi0gICAg
aWYgbm90IGl0ZW0uY29uZmlnLm9wdGlvbi5ydW54ZmFpbDoKLSAgICAgICAgZXZhbHhmYWlsID0g
aXRlbS5fZXZhbHhmYWlsCi0gICAgICAgIGlmIGV2YWx4ZmFpbC5pc3RydWUoKToKLSAgICAgICAg
ICAgIGlmIG5vdCBldmFseGZhaWwuZ2V0KCdydW4nLCBUcnVlKToKLSAgICAgICAgICAgICAgICB4
ZmFpbCgiW05PVFJVTl0gIiArIGV2YWx4ZmFpbC5nZXRleHBsYW5hdGlvbigpKQotCi0KLWRlZiBj
aGVja19zdHJpY3RfeGZhaWwocHlmdW5jaXRlbSk6Ci0gICAgIiIiY2hlY2sgeGZhaWwoc3RyaWN0
PVRydWUpIGZvciB0aGUgZ2l2ZW4gUEFTU0lORyB0ZXN0IiIiCi0gICAgZXZhbHhmYWlsID0gcHlm
dW5jaXRlbS5fZXZhbHhmYWlsCi0gICAgaWYgZXZhbHhmYWlsLmlzdHJ1ZSgpOgotICAgICAgICBz
dHJpY3RfZGVmYXVsdCA9IHB5ZnVuY2l0ZW0uY29uZmlnLmdldGluaSgneGZhaWxfc3RyaWN0JykK
LSAgICAgICAgaXNfc3RyaWN0X3hmYWlsID0gZXZhbHhmYWlsLmdldCgnc3RyaWN0Jywgc3RyaWN0
X2RlZmF1bHQpCi0gICAgICAgIGlmIGlzX3N0cmljdF94ZmFpbDoKLSAgICAgICAgICAgIGRlbCBw
eWZ1bmNpdGVtLl9ldmFseGZhaWwKLSAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gZXZhbHhmYWls
LmdldGV4cGxhbmF0aW9uKCkKLSAgICAgICAgICAgIGZhaWwoJ1tYUEFTUyhzdHJpY3QpXSAnICsg
ZXhwbGFuYXRpb24sIHB5dHJhY2U9RmFsc2UpCi0KLQotQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRy
dWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToKLSAgICBvdXRj
b21lID0geWllbGQKLSAgICByZXAgPSBvdXRjb21lLmdldF9yZXN1bHQoKQotICAgIGV2YWx4ZmFp
bCA9IGdldGF0dHIoaXRlbSwgJ19ldmFseGZhaWwnLCBOb25lKQotICAgICMgdW5pdHR0ZXN0IHNw
ZWNpYWwgY2FzZSwgc2VlIHNldHRpbmcgb2YgX3VuZXhwZWN0ZWRzdWNjZXNzCi0gICAgaWYgaGFz
YXR0cihpdGVtLCAnX3VuZXhwZWN0ZWRzdWNjZXNzJykgYW5kIHJlcC53aGVuID09ICJjYWxsIjoK
LSAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgX2lzX3VuaXR0ZXN0X3VuZXhwZWN0
ZWRfc3VjY2Vzc19hX2ZhaWx1cmUKLSAgICAgICAgaWYgaXRlbS5fdW5leHBlY3RlZHN1Y2Nlc3M6
Ci0gICAgICAgICAgICByZXAubG9uZ3JlcHIgPSAiVW5leHBlY3RlZCBzdWNjZXNzOiB7MH0iLmZv
cm1hdChpdGVtLl91bmV4cGVjdGVkc3VjY2VzcykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHJlcC5sb25ncmVwciA9ICJVbmV4cGVjdGVkIHN1Y2Nlc3MiCi0gICAgICAgIGlmIF9pc191bml0
dGVzdF91bmV4cGVjdGVkX3N1Y2Nlc3NfYV9mYWlsdXJlKCk6Ci0gICAgICAgICAgICByZXAub3V0
Y29tZSA9ICJmYWlsZWQiCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXAub3V0Y29tZSA9
ICJwYXNzZWQiCi0gICAgICAgICAgICByZXAud2FzeGZhaWwgPSByZXAubG9uZ3JlcHIKLSAgICBl
bGlmIGl0ZW0uY29uZmlnLm9wdGlvbi5ydW54ZmFpbDoKLSAgICAgICAgcGFzcyAgICMgZG9uJ3Qg
aW50ZXJlZmVyZQotICAgIGVsaWYgY2FsbC5leGNpbmZvIGFuZCBjYWxsLmV4Y2luZm8uZXJyaXNp
bnN0YW5jZSh4ZmFpbC5FeGNlcHRpb24pOgotICAgICAgICByZXAud2FzeGZhaWwgPSAicmVhc29u
OiAiICsgY2FsbC5leGNpbmZvLnZhbHVlLm1zZwotICAgICAgICByZXAub3V0Y29tZSA9ICJza2lw
cGVkIgotICAgIGVsaWYgZXZhbHhmYWlsIGFuZCBub3QgcmVwLnNraXBwZWQgYW5kIGV2YWx4ZmFp
bC53YXN2YWxpZCgpIGFuZCBcCi0gICAgICAgICAgICBldmFseGZhaWwuaXN0cnVlKCk6Ci0gICAg
ICAgIGlmIGNhbGwuZXhjaW5mbzoKLSAgICAgICAgICAgIGlmIGV2YWx4ZmFpbC5pbnZhbGlkcmFp
c2UoY2FsbC5leGNpbmZvLnZhbHVlKToKLSAgICAgICAgICAgICAgICByZXAub3V0Y29tZSA9ICJm
YWlsZWQiCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJlcC5vdXRjb21lID0g
InNraXBwZWQiCi0gICAgICAgICAgICAgICAgcmVwLndhc3hmYWlsID0gZXZhbHhmYWlsLmdldGV4
cGxhbmF0aW9uKCkKLSAgICAgICAgZWxpZiBjYWxsLndoZW4gPT0gImNhbGwiOgotICAgICAgICAg
ICAgc3RyaWN0X2RlZmF1bHQgPSBpdGVtLmNvbmZpZy5nZXRpbmkoJ3hmYWlsX3N0cmljdCcpCi0g
ICAgICAgICAgICBpc19zdHJpY3RfeGZhaWwgPSBldmFseGZhaWwuZ2V0KCdzdHJpY3QnLCBzdHJp
Y3RfZGVmYXVsdCkKLSAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gZXZhbHhmYWlsLmdldGV4cGxh
bmF0aW9uKCkKLSAgICAgICAgICAgIGlmIGlzX3N0cmljdF94ZmFpbDoKLSAgICAgICAgICAgICAg
ICByZXAub3V0Y29tZSA9ICJmYWlsZWQiCi0gICAgICAgICAgICAgICAgcmVwLmxvbmdyZXByID0g
IltYUEFTUyhzdHJpY3QpXSB7MH0iLmZvcm1hdChleHBsYW5hdGlvbikKLSAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgcmVwLm91dGNvbWUgPSAicGFzc2VkIgotICAgICAgICAgICAg
ICAgIHJlcC53YXN4ZmFpbCA9IGV4cGxhbmF0aW9uCi0gICAgZWxpZiBpdGVtLl9za2lwcGVkX2J5
X21hcmsgYW5kIHJlcC5za2lwcGVkIGFuZCB0eXBlKHJlcC5sb25ncmVwcikgaXMgdHVwbGU6Ci0g
ICAgICAgICMgc2tpcHBlZCBieSBtYXJrLnNraXBpZjsgY2hhbmdlIHRoZSBsb2NhdGlvbiBvZiB0
aGUgZmFpbHVyZQotICAgICAgICAjIHRvIHBvaW50IHRvIHRoZSBpdGVtIGRlZmluaXRpb24sIG90
aGVyd2lzZSBpdCB3aWxsIGRpc3BsYXkKLSAgICAgICAgIyB0aGUgbG9jYXRpb24gb2Ygd2hlcmUg
dGhlIHNraXAgZXhjZXB0aW9uIHdhcyByYWlzZWQgd2l0aGluIHB5dGVzdAotICAgICAgICBmaWxl
bmFtZSwgbGluZSwgcmVhc29uID0gcmVwLmxvbmdyZXByCi0gICAgICAgIGZpbGVuYW1lLCBsaW5l
ID0gaXRlbS5sb2NhdGlvbls6Ml0KLSAgICAgICAgcmVwLmxvbmdyZXByID0gZmlsZW5hbWUsIGxp
bmUsIHJlYXNvbgotCi0jIGNhbGxlZCBieSB0ZXJtaW5hbHJlcG9ydGVyIHByb2dyZXNzIHJlcG9y
dGluZwotCi0KLWRlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0KToKLSAgICBpZiBo
YXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIik6Ci0gICAgICAgIGlmIHJlcG9ydC5za2lwcGVkOgot
ICAgICAgICAgICAgcmV0dXJuICJ4ZmFpbGVkIiwgIngiLCAieGZhaWwiCi0gICAgICAgIGVsaWYg
cmVwb3J0LnBhc3NlZDoKLSAgICAgICAgICAgIHJldHVybiAieHBhc3NlZCIsICJYIiwgKCJYUEFT
UyIsIHsneWVsbG93JzogVHJ1ZX0pCi0KLSMgY2FsbGVkIGJ5IHRoZSB0ZXJtaW5hbHJlcG9ydGVy
IGluc3RhbmNlL3BsdWdpbgotCi0KLWRlZiBweXRlc3RfdGVybWluYWxfc3VtbWFyeSh0ZXJtaW5h
bHJlcG9ydGVyKToKLSAgICB0ciA9IHRlcm1pbmFscmVwb3J0ZXIKLSAgICBpZiBub3QgdHIucmVw
b3J0Y2hhcnM6Ci0gICAgICAgICMgZm9yIG5hbWUgaW4gInhmYWlsZWQgc2tpcHBlZCBmYWlsZWQg
eHBhc3NlZCI6Ci0gICAgICAgICMgICAgaWYgbm90IHRyLnN0YXRzLmdldChuYW1lLCAwKToKLSAg
ICAgICAgIyAgICAgICAgdHIud3JpdGVfbGluZSgiSElOVDogdXNlICctcicgb3B0aW9uIHRvIHNl
ZSBleHRyYSAiCi0gICAgICAgICMgICAgICAgICAgICAgICJzdW1tYXJ5IGluZm8gYWJvdXQgdGVz
dHMiKQotICAgICAgICAjICAgICAgICBicmVhawotICAgICAgICByZXR1cm4KLQotICAgIGxpbmVz
ID0gW10KLSAgICBmb3IgY2hhciBpbiB0ci5yZXBvcnRjaGFyczoKLSAgICAgICAgaWYgY2hhciA9
PSAieCI6Ci0gICAgICAgICAgICBzaG93X3hmYWlsZWQodGVybWluYWxyZXBvcnRlciwgbGluZXMp
Ci0gICAgICAgIGVsaWYgY2hhciA9PSAiWCI6Ci0gICAgICAgICAgICBzaG93X3hwYXNzZWQodGVy
bWluYWxyZXBvcnRlciwgbGluZXMpCi0gICAgICAgIGVsaWYgY2hhciBpbiAiZkYiOgotICAgICAg
ICAgICAgc2hvd19zaW1wbGUodGVybWluYWxyZXBvcnRlciwgbGluZXMsICdmYWlsZWQnLCAiRkFJ
TCAlcyIpCi0gICAgICAgIGVsaWYgY2hhciBpbiAic1MiOgotICAgICAgICAgICAgc2hvd19za2lw
cGVkKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKQotICAgICAgICBlbGlmIGNoYXIgPT0gIkUiOgot
ICAgICAgICAgICAgc2hvd19zaW1wbGUodGVybWluYWxyZXBvcnRlciwgbGluZXMsICdlcnJvcics
ICJFUlJPUiAlcyIpCi0gICAgICAgIGVsaWYgY2hhciA9PSAncCc6Ci0gICAgICAgICAgICBzaG93
X3NpbXBsZSh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcywgJ3Bhc3NlZCcsICJQQVNTRUQgJXMiKQot
Ci0gICAgaWYgbGluZXM6Ci0gICAgICAgIHRyLl90dy5zZXAoIj0iLCAic2hvcnQgdGVzdCBzdW1t
YXJ5IGluZm8iKQotICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKLSAgICAgICAgICAgIHRyLl90
dy5saW5lKGxpbmUpCi0KLQotZGVmIHNob3dfc2ltcGxlKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVz
LCBzdGF0LCBmb3JtYXQpOgotICAgIGZhaWxlZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0
KHN0YXQpCi0gICAgaWYgZmFpbGVkOgotICAgICAgICBmb3IgcmVwIGluIGZhaWxlZDoKLSAgICAg
ICAgICAgIHBvcyA9IHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnLmN3ZF9yZWxhdGl2ZV9ub2RlaWQo
cmVwLm5vZGVpZCkKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZChmb3JtYXQgJSAocG9zLCkpCi0K
LQotZGVmIHNob3dfeGZhaWxlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6Ci0gICAgeGZhaWxl
ZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0KCJ4ZmFpbGVkIikKLSAgICBpZiB4ZmFpbGVk
OgotICAgICAgICBmb3IgcmVwIGluIHhmYWlsZWQ6Ci0gICAgICAgICAgICBwb3MgPSB0ZXJtaW5h
bHJlcG9ydGVyLmNvbmZpZy5jd2RfcmVsYXRpdmVfbm9kZWlkKHJlcC5ub2RlaWQpCi0gICAgICAg
ICAgICByZWFzb24gPSByZXAud2FzeGZhaWwKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiWEZB
SUwgJXMiICUgKHBvcywpKQotICAgICAgICAgICAgaWYgcmVhc29uOgotICAgICAgICAgICAgICAg
IGxpbmVzLmFwcGVuZCgiICAiICsgc3RyKHJlYXNvbikpCi0KLQotZGVmIHNob3dfeHBhc3NlZCh0
ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6Ci0gICAgeHBhc3NlZCA9IHRlcm1pbmFscmVwb3J0ZXIu
c3RhdHMuZ2V0KCJ4cGFzc2VkIikKLSAgICBpZiB4cGFzc2VkOgotICAgICAgICBmb3IgcmVwIGlu
IHhwYXNzZWQ6Ci0gICAgICAgICAgICBwb3MgPSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5jd2Rf
cmVsYXRpdmVfbm9kZWlkKHJlcC5ub2RlaWQpCi0gICAgICAgICAgICByZWFzb24gPSByZXAud2Fz
eGZhaWwKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiWFBBU1MgJXMgJXMiICUgKHBvcywgcmVh
c29uKSkKLQotCi1kZWYgY2FjaGVkX2V2YWwoY29uZmlnLCBleHByLCBkKToKLSAgICBpZiBub3Qg
aGFzYXR0cihjb25maWcsICdfZXZhbGNhY2hlJyk6Ci0gICAgICAgIGNvbmZpZy5fZXZhbGNhY2hl
ID0ge30KLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBjb25maWcuX2V2YWxjYWNoZVtleHByXQot
ICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKLSAgICAg
ICAgZXhwcmNvZGUgPSBfcHl0ZXN0Ll9jb2RlLmNvbXBpbGUoZXhwciwgbW9kZT0iZXZhbCIpCi0g
ICAgICAgIGNvbmZpZy5fZXZhbGNhY2hlW2V4cHJdID0geCA9IGV2YWwoZXhwcmNvZGUsIGQpCi0g
ICAgICAgIHJldHVybiB4Ci0KLQotZGVmIGZvbGRlZF9za2lwcyhza2lwcGVkKToKLSAgICBkID0g
e30KLSAgICBmb3IgZXZlbnQgaW4gc2tpcHBlZDoKLSAgICAgICAga2V5ID0gZXZlbnQubG9uZ3Jl
cHIKLSAgICAgICAgYXNzZXJ0IGxlbihrZXkpID09IDMsIChldmVudCwga2V5KQotICAgICAgICBr
ZXl3b3JkcyA9IGdldGF0dHIoZXZlbnQsICdrZXl3b3JkcycsIHt9KQotICAgICAgICAjIGZvbGRp
bmcgcmVwb3J0cyB3aXRoIGdsb2JhbCBweXRlc3RtYXJrIHZhcmlhYmxlCi0gICAgICAgICMgdGhp
cyBpcyB3b3JrYXJvdW5kLCBiZWNhdXNlIGZvciBub3cgd2UgY2Fubm90IGlkZW50aWZ5IHRoZSBz
Y29wZSBvZiBhIHNraXAgbWFya2VyCi0gICAgICAgICMgVE9ETzogcmV2aXNpdCBhZnRlciBtYXJr
cyBzY29wZSB3b3VsZCBiZSBmaXhlZAotICAgICAgICB3aGVuID0gZ2V0YXR0cihldmVudCwgJ3do
ZW4nLCBOb25lKQotICAgICAgICBpZiB3aGVuID09ICdzZXR1cCcgYW5kICdza2lwJyBpbiBrZXl3
b3JkcyBhbmQgJ3B5dGVzdG1hcmsnIG5vdCBpbiBrZXl3b3JkczoKLSAgICAgICAgICAgIGtleSA9
IChrZXlbMF0sIE5vbmUsIGtleVsyXSwgKQotICAgICAgICBkLnNldGRlZmF1bHQoa2V5LCBbXSku
YXBwZW5kKGV2ZW50KQotICAgIHZhbHVlcyA9IFtdCi0gICAgZm9yIGtleSwgZXZlbnRzIGluIGQu
aXRlbXMoKToKLSAgICAgICAgdmFsdWVzLmFwcGVuZCgobGVuKGV2ZW50cyksKSArIGtleSkKLSAg
ICByZXR1cm4gdmFsdWVzCi0KLQotZGVmIHNob3dfc2tpcHBlZCh0ZXJtaW5hbHJlcG9ydGVyLCBs
aW5lcyk6Ci0gICAgdHIgPSB0ZXJtaW5hbHJlcG9ydGVyCi0gICAgc2tpcHBlZCA9IHRyLnN0YXRz
LmdldCgnc2tpcHBlZCcsIFtdKQotICAgIGlmIHNraXBwZWQ6Ci0gICAgICAgICMgaWYgbm90IHRy
Lmhhc29wdCgnc2tpcHBlZCcpOgotICAgICAgICAjICAgIHRyLndyaXRlX2xpbmUoCi0gICAgICAg
ICMgICAgICAgICIlZCBza2lwcGVkIHRlc3RzLCBzcGVjaWZ5IC1ycyBmb3IgbW9yZSBpbmZvIiAl
Ci0gICAgICAgICMgICAgICAgIGxlbihza2lwcGVkKSkKLSAgICAgICAgIyAgICByZXR1cm4KLSAg
ICAgICAgZnNraXBzID0gZm9sZGVkX3NraXBzKHNraXBwZWQpCi0gICAgICAgIGlmIGZza2lwczoK
LSAgICAgICAgICAgICMgdHIud3JpdGVfc2VwKCJfIiwgInNraXBwZWQgdGVzdCBzdW1tYXJ5IikK
LSAgICAgICAgICAgIGZvciBudW0sIGZzcGF0aCwgbGluZW5vLCByZWFzb24gaW4gZnNraXBzOgot
ICAgICAgICAgICAgICAgIGlmIHJlYXNvbi5zdGFydHN3aXRoKCJTa2lwcGVkOiAiKToKLSAgICAg
ICAgICAgICAgICAgICAgcmVhc29uID0gcmVhc29uWzk6XQotICAgICAgICAgICAgICAgIGlmIGxp
bmVubyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKAotICAg
ICAgICAgICAgICAgICAgICAgICAgIlNLSVAgWyVkXSAlczolZDogJXMiICUKLSAgICAgICAgICAg
ICAgICAgICAgICAgIChudW0sIGZzcGF0aCwgbGluZW5vICsgMSwgcmVhc29uKSkKLSAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAiU0tJUCBbJWRdICVzOiAlcyIgJQotICAgICAgICAgICAgICAgICAg
ICAgICAgKG51bSwgZnNwYXRoLCByZWFzb24pKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC90ZXJtaW5hbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdGVybWluYWwucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhYmE1ZTg0NWU1MTkwYWY0NmJkZjQ0YTAzNTJmOWNk
NDA3NjliNjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC90ZXJtaW5hbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDcwMyAr
MCwwIEBACi0iIiIgdGVybWluYWwgcmVwb3J0aW5nIG9mIHRoZSBmdWxsIHRlc3RpbmcgcHJvY2Vz
cy4KLQotVGhpcyBpcyBhIGdvb2Qgc291cmNlIGZvciBsb29raW5nIGF0IHRoZSB2YXJpb3VzIHJl
cG9ydGluZyBob29rcy4KLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgaXRlcnRvb2xzCi1pbXBvcnQg
cGxhdGZvcm0KLWltcG9ydCBzeXMKLWltcG9ydCB0aW1lCi0KLWltcG9ydCBwbHVnZ3kKLWltcG9y
dCBweQotaW1wb3J0IHNpeAotCi1pbXBvcnQgcHl0ZXN0Ci1mcm9tIF9weXRlc3QgaW1wb3J0IG5v
ZGVzCi1mcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9PSywgRVhJVF9URVNUU0ZBSUxFRCwg
RVhJVF9JTlRFUlJVUFRFRCwgXAotICAgIEVYSVRfVVNBR0VFUlJPUiwgRVhJVF9OT1RFU1RTQ09M
TEVDVEVECi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBh
cnNlci5nZXRncm91cCgidGVybWluYWwgcmVwb3J0aW5nIiwgInJlcG9ydGluZyIsIGFmdGVyPSJn
ZW5lcmFsIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCctdicsICctLXZlcmJvc2UnLCBhY3Rpb249
ImNvdW50IiwKLSAgICAgICAgICAgICAgICAgICAgIGRlc3Q9InZlcmJvc2UiLCBkZWZhdWx0PTAs
IGhlbHA9ImluY3JlYXNlIHZlcmJvc2l0eS4iKSwKLSAgICBncm91cC5fYWRkb3B0aW9uKCctcScs
ICctLXF1aWV0JywgYWN0aW9uPSJjb3VudCIsCi0gICAgICAgICAgICAgICAgICAgICBkZXN0PSJx
dWlldCIsIGRlZmF1bHQ9MCwgaGVscD0iZGVjcmVhc2UgdmVyYm9zaXR5LiIpLAotICAgIGdyb3Vw
Ll9hZGRvcHRpb24oJy1yJywKLSAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLCBk
ZXN0PSJyZXBvcnRjaGFycyIsIGRlZmF1bHQ9JycsIG1ldGF2YXI9ImNoYXJzIiwKLSAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9InNob3cgZXh0cmEgdGVzdCBzdW1tYXJ5IGluZm8gYXMgc3BlY2lm
aWVkIGJ5IGNoYXJzIChmKWFpbGVkLCAiCi0gICAgICAgICAgICAgICAgICAgICAiKEUpZXJyb3Is
IChzKXNraXBwZWQsICh4KWZhaWxlZCwgKFgpcGFzc2VkLCAiCi0gICAgICAgICAgICAgICAgICAg
ICAiKHApcGFzc2VkLCAoUClwYXNzZWQgd2l0aCBvdXRwdXQsIChhKWFsbCBleGNlcHQgcFAuICIK
LSAgICAgICAgICAgICAgICAgICAgICJXYXJuaW5ncyBhcmUgZGlzcGxheWVkIGF0IGFsbCB0aW1l
cyBleGNlcHQgd2hlbiAiCi0gICAgICAgICAgICAgICAgICAgICAiLS1kaXNhYmxlLXdhcm5pbmdz
IGlzIHNldCIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLS1kaXNhYmxlLXdhcm5pbmdzJywgJy0t
ZGlzYWJsZS1weXRlc3Qtd2FybmluZ3MnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAg
ICAgICAgZGVzdD0nZGlzYWJsZV93YXJuaW5ncycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAg
ICAgICAgICAgICAgICAgICBoZWxwPSdkaXNhYmxlIHdhcm5pbmdzIHN1bW1hcnknKQotICAgIGdy
b3VwLl9hZGRvcHRpb24oJy1sJywgJy0tc2hvd2xvY2FscycsCi0gICAgICAgICAgICAgICAgICAg
ICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJzaG93bG9jYWxzIiwgZGVmYXVsdD1GYWxzZSwK
LSAgICAgICAgICAgICAgICAgICAgIGhlbHA9InNob3cgbG9jYWxzIGluIHRyYWNlYmFja3MgKGRp
c2FibGVkIGJ5IGRlZmF1bHQpLiIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLS10YicsIG1ldGF2
YXI9InN0eWxlIiwKLSAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJ0
YnN0eWxlIiwgZGVmYXVsdD0nYXV0bycsCi0gICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsn
YXV0bycsICdsb25nJywgJ3Nob3J0JywgJ25vJywgJ2xpbmUnLCAnbmF0aXZlJ10sCi0gICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJ0cmFjZWJhY2sgcHJpbnQgbW9kZSAoYXV0by9sb25nL3Nob3J0
L2xpbmUvbmF0aXZlL25vKS4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24oJy0tZnVsbHRyYWNlJywg
Jy0tZnVsbC10cmFjZScsCi0gICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUi
LCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0iZG9uJ3QgY3V0IGFu
eSB0cmFjZWJhY2tzIChkZWZhdWx0IGlzIHRvIGN1dCkuIikKLSAgICBncm91cC5fYWRkb3B0aW9u
KCctLWNvbG9yJywgbWV0YXZhcj0iY29sb3IiLAotICAgICAgICAgICAgICAgICAgICAgYWN0aW9u
PSJzdG9yZSIsIGRlc3Q9ImNvbG9yIiwgZGVmYXVsdD0nYXV0bycsCi0gICAgICAgICAgICAgICAg
ICAgICBjaG9pY2VzPVsneWVzJywgJ25vJywgJ2F1dG8nXSwKLSAgICAgICAgICAgICAgICAgICAg
IGhlbHA9ImNvbG9yIHRlcm1pbmFsIG91dHB1dCAoeWVzL25vL2F1dG8pLiIpCi0KLSAgICBwYXJz
ZXIuYWRkaW5pKCJjb25zb2xlX291dHB1dF9zdHlsZSIsCi0gICAgICAgICAgICAgICAgICBoZWxw
PSJjb25zb2xlIG91dHB1dDogY2xhc3NpYyBvciB3aXRoIGFkZGl0aW9uYWwgcHJvZ3Jlc3MgaW5m
b3JtYXRpb24gKGNsYXNzaWN8cHJvZ3Jlc3MpLiIsCi0gICAgICAgICAgICAgICAgICBkZWZhdWx0
PSdwcm9ncmVzcycpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICBjb25m
aWcub3B0aW9uLnZlcmJvc2UgLT0gY29uZmlnLm9wdGlvbi5xdWlldAotICAgIHJlcG9ydGVyID0g
VGVybWluYWxSZXBvcnRlcihjb25maWcsIHN5cy5zdGRvdXQpCi0gICAgY29uZmlnLnBsdWdpbm1h
bmFnZXIucmVnaXN0ZXIocmVwb3J0ZXIsICd0ZXJtaW5hbHJlcG9ydGVyJykKLSAgICBpZiBjb25m
aWcub3B0aW9uLmRlYnVnIG9yIGNvbmZpZy5vcHRpb24udHJhY2Vjb25maWc6Ci0gICAgICAgIGRl
ZiBteXdyaXRlcih0YWdzLCBhcmdzKToKLSAgICAgICAgICAgIG1zZyA9ICIgIi5qb2luKG1hcChz
dHIsIGFyZ3MpKQotICAgICAgICAgICAgcmVwb3J0ZXIud3JpdGVfbGluZSgiW3RyYWNlY29uZmln
XSAiICsgbXNnKQotICAgICAgICBjb25maWcudHJhY2Uucm9vdC5zZXRwcm9jZXNzb3IoInB5dGVz
dDpjb25maWciLCBteXdyaXRlcikKLQotCi1kZWYgZ2V0cmVwb3J0b3B0KGNvbmZpZyk6Ci0gICAg
cmVwb3J0b3B0cyA9ICIiCi0gICAgcmVwb3J0Y2hhcnMgPSBjb25maWcub3B0aW9uLnJlcG9ydGNo
YXJzCi0gICAgaWYgbm90IGNvbmZpZy5vcHRpb24uZGlzYWJsZV93YXJuaW5ncyBhbmQgJ3cnIG5v
dCBpbiByZXBvcnRjaGFyczoKLSAgICAgICAgcmVwb3J0Y2hhcnMgKz0gJ3cnCi0gICAgZWxpZiBj
b25maWcub3B0aW9uLmRpc2FibGVfd2FybmluZ3MgYW5kICd3JyBpbiByZXBvcnRjaGFyczoKLSAg
ICAgICAgcmVwb3J0Y2hhcnMgPSByZXBvcnRjaGFycy5yZXBsYWNlKCd3JywgJycpCi0gICAgaWYg
cmVwb3J0Y2hhcnM6Ci0gICAgICAgIGZvciBjaGFyIGluIHJlcG9ydGNoYXJzOgotICAgICAgICAg
ICAgaWYgY2hhciBub3QgaW4gcmVwb3J0b3B0cyBhbmQgY2hhciAhPSAnYSc6Ci0gICAgICAgICAg
ICAgICAgcmVwb3J0b3B0cyArPSBjaGFyCi0gICAgICAgICAgICBlbGlmIGNoYXIgPT0gJ2EnOgot
ICAgICAgICAgICAgICAgIHJlcG9ydG9wdHMgPSAnZkVzeFh3JwotICAgIHJldHVybiByZXBvcnRv
cHRzCi0KLQotZGVmIHB5dGVzdF9yZXBvcnRfdGVzdHN0YXR1cyhyZXBvcnQpOgotICAgIGlmIHJl
cG9ydC5wYXNzZWQ6Ci0gICAgICAgIGxldHRlciA9ICIuIgotICAgIGVsaWYgcmVwb3J0LnNraXBw
ZWQ6Ci0gICAgICAgIGxldHRlciA9ICJzIgotICAgIGVsaWYgcmVwb3J0LmZhaWxlZDoKLSAgICAg
ICAgbGV0dGVyID0gIkYiCi0gICAgICAgIGlmIHJlcG9ydC53aGVuICE9ICJjYWxsIjoKLSAgICAg
ICAgICAgIGxldHRlciA9ICJmIgotICAgIHJldHVybiByZXBvcnQub3V0Y29tZSwgbGV0dGVyLCBy
ZXBvcnQub3V0Y29tZS51cHBlcigpCi0KLQotY2xhc3MgV2FybmluZ1JlcG9ydDoKLSAgICAiIiIK
LSAgICBTaW1wbGUgc3RydWN0dXJlIHRvIGhvbGQgd2FybmluZ3MgaW5mb3JtYXRpb24gY2FwdHVy
ZWQgYnkgYGBweXRlc3RfbG9nd2FybmluZ2BgLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGNvZGUsIG1lc3NhZ2UsIG5vZGVpZD1Ob25lLCBmc2xvY2F0aW9uPU5vbmUpOgotICAg
ICAgICAiIiIKLSAgICAgICAgOnBhcmFtIGNvZGU6IHVudXNlZAotICAgICAgICA6cGFyYW0gc3Ry
IG1lc3NhZ2U6IHVzZXIgZnJpZW5kbHkgbWVzc2FnZSBhYm91dCB0aGUgd2FybmluZwotICAgICAg
ICA6cGFyYW0gc3RyfE5vbmUgbm9kZWlkOiBub2RlIGlkIHRoYXQgZ2VuZXJhdGVkIHRoZSB3YXJu
aW5nIChzZWUgYGBnZXRfbG9jYXRpb25gYCkuCi0gICAgICAgIDpwYXJhbSB0dXBsZXxweS5wYXRo
LmxvY2FsIGZzbG9jYXRpb246Ci0gICAgICAgICAgICBmaWxlIHN5c3RlbSBsb2NhdGlvbiBvZiB0
aGUgc291cmNlIG9mIHRoZSB3YXJuaW5nIChzZWUgYGBnZXRfbG9jYXRpb25gYCkuCi0gICAgICAg
ICIiIgotICAgICAgICBzZWxmLmNvZGUgPSBjb2RlCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1l
c3NhZ2UKLSAgICAgICAgc2VsZi5ub2RlaWQgPSBub2RlaWQKLSAgICAgICAgc2VsZi5mc2xvY2F0
aW9uID0gZnNsb2NhdGlvbgotCi0gICAgZGVmIGdldF9sb2NhdGlvbihzZWxmLCBjb25maWcpOgot
ICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJucyB0aGUgbW9yZSB1c2VyLWZyaWVuZGx5IGluZm9y
bWF0aW9uIGFib3V0IHRoZSBsb2NhdGlvbgotICAgICAgICBvZiBhIHdhcm5pbmcsIG9yIE5vbmUu
Ci0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLm5vZGVpZDoKLSAgICAgICAgICAgIHJldHVy
biBzZWxmLm5vZGVpZAotICAgICAgICBpZiBzZWxmLmZzbG9jYXRpb246Ci0gICAgICAgICAgICBp
ZiBpc2luc3RhbmNlKHNlbGYuZnNsb2NhdGlvbiwgdHVwbGUpIGFuZCBsZW4oc2VsZi5mc2xvY2F0
aW9uKSA+PSAyOgotICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBsaW5lbnVtID0gc2VsZi5mc2xv
Y2F0aW9uWzoyXQotICAgICAgICAgICAgICAgIHJlbHBhdGggPSBweS5wYXRoLmxvY2FsKGZpbGVu
YW1lKS5yZWx0byhjb25maWcuaW52b2NhdGlvbl9kaXIpCi0gICAgICAgICAgICAgICAgcmV0dXJu
ICclczolcycgJSAocmVscGF0aCwgbGluZW51bSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHN0cihzZWxmLmZzbG9jYXRpb24pCi0gICAgICAgIHJldHVybiBOb25l
Ci0KLQotY2xhc3MgVGVybWluYWxSZXBvcnRlcjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29u
ZmlnLCBmaWxlPU5vbmUpOgotICAgICAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKLSAgICAgICAg
c2VsZi5jb25maWcgPSBjb25maWcKLSAgICAgICAgc2VsZi52ZXJib3NpdHkgPSBzZWxmLmNvbmZp
Zy5vcHRpb24udmVyYm9zZQotICAgICAgICBzZWxmLnNob3doZWFkZXIgPSBzZWxmLnZlcmJvc2l0
eSA+PSAwCi0gICAgICAgIHNlbGYuc2hvd2ZzcGF0aCA9IHNlbGYudmVyYm9zaXR5ID49IDAKLSAg
ICAgICAgc2VsZi5zaG93bG9uZ3Rlc3RpbmZvID0gc2VsZi52ZXJib3NpdHkgPiAwCi0gICAgICAg
IHNlbGYuX251bWNvbGxlY3RlZCA9IDAKLSAgICAgICAgc2VsZi5fc2Vzc2lvbiA9IE5vbmUKLQot
ICAgICAgICBzZWxmLnN0YXRzID0ge30KLSAgICAgICAgc2VsZi5zdGFydGRpciA9IHB5LnBhdGgu
bG9jYWwoKQotICAgICAgICBpZiBmaWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICBmaWxlID0gc3lz
LnN0ZG91dAotICAgICAgICBzZWxmLl90dyA9IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5h
bF93cml0ZXIoY29uZmlnLCBmaWxlKQotICAgICAgICAjIHNlbGYud3JpdGVyIHdpbGwgYmUgZGVw
cmVjYXRlZCBpbiBweXRlc3QtMy40Ci0gICAgICAgIHNlbGYud3JpdGVyID0gc2VsZi5fdHcKLSAg
ICAgICAgc2VsZi5fc2NyZWVuX3dpZHRoID0gc2VsZi5fdHcuZnVsbHdpZHRoCi0gICAgICAgIHNl
bGYuY3VycmVudGZzcGF0aCA9IE5vbmUKLSAgICAgICAgc2VsZi5yZXBvcnRjaGFycyA9IGdldHJl
cG9ydG9wdChjb25maWcpCi0gICAgICAgIHNlbGYuaGFzbWFya3VwID0gc2VsZi5fdHcuaGFzbWFy
a3VwCi0gICAgICAgIHNlbGYuaXNhdHR5ID0gZmlsZS5pc2F0dHkoKQotICAgICAgICBzZWxmLl9w
cm9ncmVzc19pdGVtc19yZXBvcnRlZCA9IDAKLSAgICAgICAgc2VsZi5fc2hvd19wcm9ncmVzc19p
bmZvID0gc2VsZi5jb25maWcuZ2V0aW5pKCdjb25zb2xlX291dHB1dF9zdHlsZScpID09ICdwcm9n
cmVzcycKLQotICAgIGRlZiBoYXNvcHQoc2VsZiwgY2hhcik6Ci0gICAgICAgIGNoYXIgPSB7J3hm
YWlsZWQnOiAneCcsICdza2lwcGVkJzogJ3MnfS5nZXQoY2hhciwgY2hhcikKLSAgICAgICAgcmV0
dXJuIGNoYXIgaW4gc2VsZi5yZXBvcnRjaGFycwotCi0gICAgZGVmIHdyaXRlX2ZzcGF0aF9yZXN1
bHQoc2VsZiwgbm9kZWlkLCByZXMpOgotICAgICAgICBmc3BhdGggPSBzZWxmLmNvbmZpZy5yb290
ZGlyLmpvaW4obm9kZWlkLnNwbGl0KCI6OiIpWzBdKQotICAgICAgICBpZiBmc3BhdGggIT0gc2Vs
Zi5jdXJyZW50ZnNwYXRoOgotICAgICAgICAgICAgaWYgc2VsZi5jdXJyZW50ZnNwYXRoIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX3Byb2dyZXNzX2luZm9ybWF0aW9u
X2ZpbGxpbmdfc3BhY2UoKQotICAgICAgICAgICAgc2VsZi5jdXJyZW50ZnNwYXRoID0gZnNwYXRo
Ci0gICAgICAgICAgICBmc3BhdGggPSBzZWxmLnN0YXJ0ZGlyLmJlc3RyZWxwYXRoKGZzcGF0aCkK
LSAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoKQotICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUo
ZnNwYXRoICsgIiAiKQotICAgICAgICBzZWxmLl90dy53cml0ZShyZXMpCi0KLSAgICBkZWYgd3Jp
dGVfZW5zdXJlX3ByZWZpeChzZWxmLCBwcmVmaXgsIGV4dHJhPSIiLCAqKmt3YXJncyk6Ci0gICAg
ICAgIGlmIHNlbGYuY3VycmVudGZzcGF0aCAhPSBwcmVmaXg6Ci0gICAgICAgICAgICBzZWxmLl90
dy5saW5lKCkKLSAgICAgICAgICAgIHNlbGYuY3VycmVudGZzcGF0aCA9IHByZWZpeAotICAgICAg
ICAgICAgc2VsZi5fdHcud3JpdGUocHJlZml4KQotICAgICAgICBpZiBleHRyYToKLSAgICAgICAg
ICAgIHNlbGYuX3R3LndyaXRlKGV4dHJhLCAqKmt3YXJncykKLSAgICAgICAgICAgIHNlbGYuY3Vy
cmVudGZzcGF0aCA9IC0yCi0gICAgICAgICAgICBzZWxmLl93cml0ZV9wcm9ncmVzc19pbmZvcm1h
dGlvbl9maWxsaW5nX3NwYWNlKCkKLQotICAgIGRlZiBlbnN1cmVfbmV3bGluZShzZWxmKToKLSAg
ICAgICAgaWYgc2VsZi5jdXJyZW50ZnNwYXRoOgotICAgICAgICAgICAgc2VsZi5fdHcubGluZSgp
Ci0gICAgICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSBOb25lCi0KLSAgICBkZWYgd3JpdGUo
c2VsZiwgY29udGVudCwgKiptYXJrdXApOgotICAgICAgICBzZWxmLl90dy53cml0ZShjb250ZW50
LCAqKm1hcmt1cCkKLQotICAgIGRlZiB3cml0ZV9saW5lKHNlbGYsIGxpbmUsICoqbWFya3VwKToK
LSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobGluZSwgc2l4LnRleHRfdHlwZSk6Ci0gICAgICAg
ICAgICBsaW5lID0gc2l4LnRleHRfdHlwZShsaW5lLCBlcnJvcnM9InJlcGxhY2UiKQotICAgICAg
ICBzZWxmLmVuc3VyZV9uZXdsaW5lKCkKLSAgICAgICAgc2VsZi5fdHcubGluZShsaW5lLCAqKm1h
cmt1cCkKLQotICAgIGRlZiByZXdyaXRlKHNlbGYsIGxpbmUsICoqbWFya3VwKToKLSAgICAgICAg
IiIiCi0gICAgICAgIFJld2luZHMgdGhlIHRlcm1pbmFsIGN1cnNvciB0byB0aGUgYmVnaW5uaW5n
IGFuZCB3cml0ZXMgdGhlIGdpdmVuIGxpbmUuCi0KLSAgICAgICAgOmt3YXJnIGVyYXNlOiBpZiBU
cnVlLCB3aWxsIGFsc28gYWRkIHNwYWNlcyB1bnRpbCB0aGUgZnVsbCB0ZXJtaW5hbCB3aWR0aCB0
byBlbnN1cmUKLSAgICAgICAgICAgIHByZXZpb3VzIGxpbmVzIGFyZSBwcm9wZXJseSBlcmFzZWQu
Ci0KLSAgICAgICAgVGhlIHJlc3Qgb2YgdGhlIGtleXdvcmQgYXJndW1lbnRzIGFyZSBtYXJrdXAg
aW5zdHJ1Y3Rpb25zLgotICAgICAgICAiIiIKLSAgICAgICAgZXJhc2UgPSBtYXJrdXAucG9wKCdl
cmFzZScsIEZhbHNlKQotICAgICAgICBpZiBlcmFzZToKLSAgICAgICAgICAgIGZpbGxfY291bnQg
PSBzZWxmLl90dy5mdWxsd2lkdGggLSBsZW4obGluZSkgLSAxCi0gICAgICAgICAgICBmaWxsID0g
JyAnICogZmlsbF9jb3VudAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmlsbCA9ICcnCi0g
ICAgICAgIGxpbmUgPSBzdHIobGluZSkKLSAgICAgICAgc2VsZi5fdHcud3JpdGUoIlxyIiArIGxp
bmUgKyBmaWxsLCAqKm1hcmt1cCkKLQotICAgIGRlZiB3cml0ZV9zZXAoc2VsZiwgc2VwLCB0aXRs
ZT1Ob25lLCAqKm1hcmt1cCk6Ci0gICAgICAgIHNlbGYuZW5zdXJlX25ld2xpbmUoKQotICAgICAg
ICBzZWxmLl90dy5zZXAoc2VwLCB0aXRsZSwgKiptYXJrdXApCi0KLSAgICBkZWYgc2VjdGlvbihz
ZWxmLCB0aXRsZSwgc2VwPSI9IiwgKiprdyk6Ci0gICAgICAgIHNlbGYuX3R3LnNlcChzZXAsIHRp
dGxlLCAqKmt3KQotCi0gICAgZGVmIGxpbmUoc2VsZiwgbXNnLCAqKmt3KToKLSAgICAgICAgc2Vs
Zi5fdHcubGluZShtc2csICoqa3cpCi0KLSAgICBkZWYgcHl0ZXN0X2ludGVybmFsZXJyb3Ioc2Vs
ZiwgZXhjcmVwcik6Ci0gICAgICAgIGZvciBsaW5lIGluIHNpeC50ZXh0X3R5cGUoZXhjcmVwciku
c3BsaXQoIlxuIik6Ci0gICAgICAgICAgICBzZWxmLndyaXRlX2xpbmUoIklOVEVSTkFMRVJST1I+
ICIgKyBsaW5lKQotICAgICAgICByZXR1cm4gMQotCi0gICAgZGVmIHB5dGVzdF9sb2d3YXJuaW5n
KHNlbGYsIGNvZGUsIGZzbG9jYXRpb24sIG1lc3NhZ2UsIG5vZGVpZCk6Ci0gICAgICAgIHdhcm5p
bmdzID0gc2VsZi5zdGF0cy5zZXRkZWZhdWx0KCJ3YXJuaW5ncyIsIFtdKQotICAgICAgICB3YXJu
aW5nID0gV2FybmluZ1JlcG9ydChjb2RlPWNvZGUsIGZzbG9jYXRpb249ZnNsb2NhdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1tZXNzYWdlLCBub2RlaWQ9bm9k
ZWlkKQotICAgICAgICB3YXJuaW5ncy5hcHBlbmQod2FybmluZykKLQotICAgIGRlZiBweXRlc3Rf
cGx1Z2luX3JlZ2lzdGVyZWQoc2VsZiwgcGx1Z2luKToKLSAgICAgICAgaWYgc2VsZi5jb25maWcu
b3B0aW9uLnRyYWNlY29uZmlnOgotICAgICAgICAgICAgbXNnID0gIlBMVUdJTiByZWdpc3RlcmVk
OiAlcyIgJSAocGx1Z2luLCkKLSAgICAgICAgICAgICMgWFhYIHRoaXMgZXZlbnQgbWF5IGhhcHBl
biBkdXJpbmcgc2V0dXAvdGVhcmRvd24gdGltZQotICAgICAgICAgICAgIyAgICAgd2hpY2ggdW5m
b3J0dW5hdGVseSBjYXB0dXJlcyBvdXIgb3V0cHV0IGhlcmUKLSAgICAgICAgICAgICMgICAgIHdo
aWNoIGdhcmJsZXMgb3VyIG91dHB1dCBpZiB3ZSB1c2Ugc2VsZi53cml0ZV9saW5lCi0gICAgICAg
ICAgICBzZWxmLndyaXRlX2xpbmUobXNnKQotCi0gICAgZGVmIHB5dGVzdF9kZXNlbGVjdGVkKHNl
bGYsIGl0ZW1zKToKLSAgICAgICAgc2VsZi5zdGF0cy5zZXRkZWZhdWx0KCdkZXNlbGVjdGVkJywg
W10pLmV4dGVuZChpdGVtcykKLQotICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dzdGFydChzZWxm
LCBub2RlaWQsIGxvY2F0aW9uKToKLSAgICAgICAgIyBlbnN1cmUgdGhhdCB0aGUgcGF0aCBpcyBw
cmludGVkIGJlZm9yZSB0aGUKLSAgICAgICAgIyAxc3QgdGVzdCBvZiBhIG1vZHVsZSBzdGFydHMg
cnVubmluZwotICAgICAgICBpZiBzZWxmLnNob3dsb25ndGVzdGluZm86Ci0gICAgICAgICAgICBs
aW5lID0gc2VsZi5fbG9jYXRpb25saW5lKG5vZGVpZCwgKmxvY2F0aW9uKQotICAgICAgICAgICAg
c2VsZi53cml0ZV9lbnN1cmVfcHJlZml4KGxpbmUsICIiKQotICAgICAgICBlbGlmIHNlbGYuc2hv
d2ZzcGF0aDoKLSAgICAgICAgICAgIGZzaWQgPSBub2RlaWQuc3BsaXQoIjo6IilbMF0KLSAgICAg
ICAgICAgIHNlbGYud3JpdGVfZnNwYXRoX3Jlc3VsdChmc2lkLCAiIikKLQotICAgIGRlZiBweXRl
c3RfcnVudGVzdF9sb2dyZXBvcnQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgcmVwID0gcmVwb3J0
Ci0gICAgICAgIHJlcyA9IHNlbGYuY29uZmlnLmhvb2sucHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVz
KHJlcG9ydD1yZXApCi0gICAgICAgIGNhdCwgbGV0dGVyLCB3b3JkID0gcmVzCi0gICAgICAgIGlm
IGlzaW5zdGFuY2Uod29yZCwgdHVwbGUpOgotICAgICAgICAgICAgd29yZCwgbWFya3VwID0gd29y
ZAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbWFya3VwID0gTm9uZQotICAgICAgICBzZWxm
LnN0YXRzLnNldGRlZmF1bHQoY2F0LCBbXSkuYXBwZW5kKHJlcCkKLSAgICAgICAgc2VsZi5fdGVz
dHNfcmFuID0gVHJ1ZQotICAgICAgICBpZiBub3QgbGV0dGVyIGFuZCBub3Qgd29yZDoKLSAgICAg
ICAgICAgICMgcHJvYmFibHkgcGFzc2VkIHNldHVwL3RlYXJkb3duCi0gICAgICAgICAgICByZXR1
cm4KLSAgICAgICAgcnVubmluZ194ZGlzdCA9IGhhc2F0dHIocmVwLCAnbm9kZScpCi0gICAgICAg
IHNlbGYuX3Byb2dyZXNzX2l0ZW1zX3JlcG9ydGVkICs9IDEKLSAgICAgICAgaWYgc2VsZi52ZXJi
b3NpdHkgPD0gMDoKLSAgICAgICAgICAgIGlmIG5vdCBydW5uaW5nX3hkaXN0IGFuZCBzZWxmLnNo
b3dmc3BhdGg6Ci0gICAgICAgICAgICAgICAgc2VsZi53cml0ZV9mc3BhdGhfcmVzdWx0KHJlcC5u
b2RlaWQsIGxldHRlcikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
dHcud3JpdGUobGV0dGVyKQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfcHJvZ3Jlc3NfaWZfcGFz
dF9lZGdlKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIG1hcmt1cCBpcyBOb25lOgot
ICAgICAgICAgICAgICAgIGlmIHJlcC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgICAgIG1hcmt1
cCA9IHsnZ3JlZW4nOiBUcnVlfQotICAgICAgICAgICAgICAgIGVsaWYgcmVwLmZhaWxlZDoKLSAg
ICAgICAgICAgICAgICAgICAgbWFya3VwID0geydyZWQnOiBUcnVlfQotICAgICAgICAgICAgICAg
IGVsaWYgcmVwLnNraXBwZWQ6Ci0gICAgICAgICAgICAgICAgICAgIG1hcmt1cCA9IHsneWVsbG93
JzogVHJ1ZX0KLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBtYXJr
dXAgPSB7fQotICAgICAgICAgICAgbGluZSA9IHNlbGYuX2xvY2F0aW9ubGluZShyZXAubm9kZWlk
LCAqcmVwLmxvY2F0aW9uKQotICAgICAgICAgICAgaWYgbm90IHJ1bm5pbmdfeGRpc3Q6Ci0gICAg
ICAgICAgICAgICAgc2VsZi53cml0ZV9lbnN1cmVfcHJlZml4KGxpbmUsIHdvcmQsICoqbWFya3Vw
KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLmVuc3VyZV9uZXdsaW5l
KCkKLSAgICAgICAgICAgICAgICBzZWxmLl90dy53cml0ZSgiWyVzXSIgJSByZXAubm9kZS5nYXRl
d2F5LmlkKQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX3Nob3dfcHJvZ3Jlc3NfaW5mbzoKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUoc2VsZi5fZ2V0X3Byb2dyZXNzX2luZm9y
bWF0aW9uX21lc3NhZ2UoKSArICIgIiwgY3lhbj1UcnVlKQotICAgICAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKCcgJykKLSAgICAgICAgICAgICAg
ICBzZWxmLl90dy53cml0ZSh3b3JkLCAqKm1hcmt1cCkKLSAgICAgICAgICAgICAgICBzZWxmLl90
dy53cml0ZSgiICIgKyBsaW5lKQotICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudGZzcGF0aCA9
IC0yCi0KLSAgICBkZWYgX3dyaXRlX3Byb2dyZXNzX2lmX3Bhc3RfZWRnZShzZWxmKToKLSAgICAg
ICAgaWYgbm90IHNlbGYuX3Nob3dfcHJvZ3Jlc3NfaW5mbzoKLSAgICAgICAgICAgIHJldHVybgot
ICAgICAgICBsYXN0X2l0ZW0gPSBzZWxmLl9wcm9ncmVzc19pdGVtc19yZXBvcnRlZCA9PSBzZWxm
Ll9zZXNzaW9uLnRlc3RzY29sbGVjdGVkCi0gICAgICAgIGlmIGxhc3RfaXRlbToKLSAgICAgICAg
ICAgIHNlbGYuX3dyaXRlX3Byb2dyZXNzX2luZm9ybWF0aW9uX2ZpbGxpbmdfc3BhY2UoKQotICAg
ICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgcGFzdF9lZGdlID0gc2VsZi5fdHcuY2hhcnNfb25f
Y3VycmVudF9saW5lICsgc2VsZi5fUFJPR1JFU1NfTEVOR1RIICsgMSA+PSBzZWxmLl9zY3JlZW5f
d2lkdGgKLSAgICAgICAgaWYgcGFzdF9lZGdlOgotICAgICAgICAgICAgbXNnID0gc2VsZi5fZ2V0
X3Byb2dyZXNzX2luZm9ybWF0aW9uX21lc3NhZ2UoKQotICAgICAgICAgICAgc2VsZi5fdHcud3Jp
dGUobXNnICsgJ1xuJywgY3lhbj1UcnVlKQotCi0gICAgX1BST0dSRVNTX0xFTkdUSCA9IGxlbign
IFsxMDAlXScpCi0KLSAgICBkZWYgX2dldF9wcm9ncmVzc19pbmZvcm1hdGlvbl9tZXNzYWdlKHNl
bGYpOgotICAgICAgICBjb2xsZWN0ZWQgPSBzZWxmLl9zZXNzaW9uLnRlc3RzY29sbGVjdGVkCi0g
ICAgICAgIGlmIGNvbGxlY3RlZDoKLSAgICAgICAgICAgIHByb2dyZXNzID0gc2VsZi5fcHJvZ3Jl
c3NfaXRlbXNfcmVwb3J0ZWQgKiAxMDAgLy8gY29sbGVjdGVkCi0gICAgICAgICAgICByZXR1cm4g
JyBbezozZH0lXScuZm9ybWF0KHByb2dyZXNzKQotICAgICAgICByZXR1cm4gJyBbMTAwJV0nCi0K
LSAgICBkZWYgX3dyaXRlX3Byb2dyZXNzX2luZm9ybWF0aW9uX2ZpbGxpbmdfc3BhY2Uoc2VsZik6
Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9zaG93X3Byb2dyZXNzX2luZm86Ci0gICAgICAgICAgICBy
ZXR1cm4KLSAgICAgICAgbXNnID0gc2VsZi5fZ2V0X3Byb2dyZXNzX2luZm9ybWF0aW9uX21lc3Nh
Z2UoKQotICAgICAgICBmaWxsID0gJyAnICogKHNlbGYuX3R3LmZ1bGx3aWR0aCAtIHNlbGYuX3R3
LmNoYXJzX29uX2N1cnJlbnRfbGluZSAtIGxlbihtc2cpIC0gMSkKLSAgICAgICAgc2VsZi53cml0
ZShmaWxsICsgbXNnLCBjeWFuPVRydWUpCi0KLSAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb24oc2Vs
Zik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLmlzYXR0eSBhbmQgc2VsZi5jb25maWcub3B0aW9uLnZl
cmJvc2UgPj0gMToKLSAgICAgICAgICAgIHNlbGYud3JpdGUoImNvbGxlY3RpbmcgLi4uICIsIGJv
bGQ9VHJ1ZSkKLQotICAgIGRlZiBweXRlc3RfY29sbGVjdHJlcG9ydChzZWxmLCByZXBvcnQpOgot
ICAgICAgICBpZiByZXBvcnQuZmFpbGVkOgotICAgICAgICAgICAgc2VsZi5zdGF0cy5zZXRkZWZh
dWx0KCJlcnJvciIsIFtdKS5hcHBlbmQocmVwb3J0KQotICAgICAgICBlbGlmIHJlcG9ydC5za2lw
cGVkOgotICAgICAgICAgICAgc2VsZi5zdGF0cy5zZXRkZWZhdWx0KCJza2lwcGVkIiwgW10pLmFw
cGVuZChyZXBvcnQpCi0gICAgICAgIGl0ZW1zID0gW3ggZm9yIHggaW4gcmVwb3J0LnJlc3VsdCBp
ZiBpc2luc3RhbmNlKHgsIHB5dGVzdC5JdGVtKV0KLSAgICAgICAgc2VsZi5fbnVtY29sbGVjdGVk
ICs9IGxlbihpdGVtcykKLSAgICAgICAgaWYgc2VsZi5pc2F0dHk6Ci0gICAgICAgICAgICAjIHNl
bGYud3JpdGVfZnNwYXRoX3Jlc3VsdChyZXBvcnQubm9kZWlkLCAnRScpCi0gICAgICAgICAgICBz
ZWxmLnJlcG9ydF9jb2xsZWN0KCkKLQotICAgIGRlZiByZXBvcnRfY29sbGVjdChzZWxmLCBmaW5h
bD1GYWxzZSk6Ci0gICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlIDwgMDoKLSAg
ICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGVycm9ycyA9IGxlbihzZWxmLnN0YXRzLmdldCgn
ZXJyb3InLCBbXSkpCi0gICAgICAgIHNraXBwZWQgPSBsZW4oc2VsZi5zdGF0cy5nZXQoJ3NraXBw
ZWQnLCBbXSkpCi0gICAgICAgIGlmIGZpbmFsOgotICAgICAgICAgICAgbGluZSA9ICJjb2xsZWN0
ZWQgIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbGluZSA9ICJjb2xsZWN0aW5nICIKLSAg
ICAgICAgbGluZSArPSBzdHIoc2VsZi5fbnVtY29sbGVjdGVkKSArICIgaXRlbSIgKyAoJycgaWYg
c2VsZi5fbnVtY29sbGVjdGVkID09IDEgZWxzZSAncycpCi0gICAgICAgIGlmIGVycm9yczoKLSAg
ICAgICAgICAgIGxpbmUgKz0gIiAvICVkIGVycm9ycyIgJSBlcnJvcnMKLSAgICAgICAgaWYgc2tp
cHBlZDoKLSAgICAgICAgICAgIGxpbmUgKz0gIiAvICVkIHNraXBwZWQiICUgc2tpcHBlZAotICAg
ICAgICBpZiBzZWxmLmlzYXR0eToKLSAgICAgICAgICAgIHNlbGYucmV3cml0ZShsaW5lLCBib2xk
PVRydWUsIGVyYXNlPVRydWUpCi0gICAgICAgICAgICBpZiBmaW5hbDoKLSAgICAgICAgICAgICAg
ICBzZWxmLndyaXRlKCdcbicpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLndyaXRl
X2xpbmUobGluZSkKLQotICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhzZWxm
KToKLSAgICAgICAgc2VsZi5yZXBvcnRfY29sbGVjdChUcnVlKQotCi0gICAgQHB5dGVzdC5ob29r
aW1wbCh0cnlsYXN0PVRydWUpCi0gICAgZGVmIHB5dGVzdF9zZXNzaW9uc3RhcnQoc2VsZiwgc2Vz
c2lvbik6Ci0gICAgICAgIHNlbGYuX3Nlc3Npb24gPSBzZXNzaW9uCi0gICAgICAgIHNlbGYuX3Nl
c3Npb25zdGFydHRpbWUgPSB0aW1lLnRpbWUoKQotICAgICAgICBpZiBub3Qgc2VsZi5zaG93aGVh
ZGVyOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgInRl
c3Qgc2Vzc2lvbiBzdGFydHMiLCBib2xkPVRydWUpCi0gICAgICAgIHZlcmluZm8gPSBwbGF0Zm9y
bS5weXRob25fdmVyc2lvbigpCi0gICAgICAgIG1zZyA9ICJwbGF0Zm9ybSAlcyAtLSBQeXRob24g
JXMiICUgKHN5cy5wbGF0Zm9ybSwgdmVyaW5mbykKLSAgICAgICAgaWYgaGFzYXR0cihzeXMsICdw
eXB5X3ZlcnNpb25faW5mbycpOgotICAgICAgICAgICAgdmVyaW5mbyA9ICIuIi5qb2luKG1hcChz
dHIsIHN5cy5weXB5X3ZlcnNpb25faW5mb1s6M10pKQotICAgICAgICAgICAgbXNnICs9ICJbcHlw
eS0lcy0lc10iICUgKHZlcmluZm8sIHN5cy5weXB5X3ZlcnNpb25faW5mb1szXSkKLSAgICAgICAg
bXNnICs9ICIsIHB5dGVzdC0lcywgcHktJXMsIHBsdWdneS0lcyIgJSAoCi0gICAgICAgICAgICAg
ICBweXRlc3QuX192ZXJzaW9uX18sIHB5Ll9fdmVyc2lvbl9fLCBwbHVnZ3kuX192ZXJzaW9uX18p
Ci0gICAgICAgIGlmIHNlbGYudmVyYm9zaXR5ID4gMCBvciBzZWxmLmNvbmZpZy5vcHRpb24uZGVi
dWcgb3IgXAotICAgICAgICAgICBnZXRhdHRyKHNlbGYuY29uZmlnLm9wdGlvbiwgJ3Bhc3RlYmlu
JywgTm9uZSk6Ci0gICAgICAgICAgICBtc2cgKz0gIiAtLSAiICsgc3RyKHN5cy5leGVjdXRhYmxl
KQotICAgICAgICBzZWxmLndyaXRlX2xpbmUobXNnKQotICAgICAgICBsaW5lcyA9IHNlbGYuY29u
ZmlnLmhvb2sucHl0ZXN0X3JlcG9ydF9oZWFkZXIoCi0gICAgICAgICAgICBjb25maWc9c2VsZi5j
b25maWcsIHN0YXJ0ZGlyPXNlbGYuc3RhcnRkaXIpCi0gICAgICAgIHNlbGYuX3dyaXRlX3JlcG9y
dF9saW5lc19mcm9tX2hvb2tzKGxpbmVzKQotCi0gICAgZGVmIF93cml0ZV9yZXBvcnRfbGluZXNf
ZnJvbV9ob29rcyhzZWxmLCBsaW5lcyk6Ci0gICAgICAgIGxpbmVzLnJldmVyc2UoKQotICAgICAg
ICBmb3IgbGluZSBpbiBmbGF0dGVuKGxpbmVzKToKLSAgICAgICAgICAgIHNlbGYud3JpdGVfbGlu
ZShsaW5lKQotCi0gICAgZGVmIHB5dGVzdF9yZXBvcnRfaGVhZGVyKHNlbGYsIGNvbmZpZyk6Ci0g
ICAgICAgIGluaWZpbGUgPSAiIgotICAgICAgICBpZiBjb25maWcuaW5pZmlsZToKLSAgICAgICAg
ICAgIGluaWZpbGUgPSAiICIgKyBjb25maWcucm9vdGRpci5iZXN0cmVscGF0aChjb25maWcuaW5p
ZmlsZSkKLSAgICAgICAgbGluZXMgPSBbInJvb3RkaXI6ICVzLCBpbmlmaWxlOiVzIiAlIChjb25m
aWcucm9vdGRpciwgaW5pZmlsZSldCi0KLSAgICAgICAgcGx1Z2luaW5mbyA9IGNvbmZpZy5wbHVn
aW5tYW5hZ2VyLmxpc3RfcGx1Z2luX2Rpc3RpbmZvKCkKLSAgICAgICAgaWYgcGx1Z2luaW5mbzoK
LQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgICJwbHVnaW5zOiAl
cyIgJSAiLCAiLmpvaW4oX3BsdWdpbl9uYW1ldmVyc2lvbnMocGx1Z2luaW5mbykpKQotICAgICAg
ICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9maW5pc2goc2VsZiwg
c2Vzc2lvbik6Ci0gICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi5jb2xsZWN0b25seToKLSAg
ICAgICAgICAgIHNlbGYuX3ByaW50Y29sbGVjdGVkaXRlbXMoc2Vzc2lvbi5pdGVtcykKLSAgICAg
ICAgICAgIGlmIHNlbGYuc3RhdHMuZ2V0KCdmYWlsZWQnKToKLSAgICAgICAgICAgICAgICBzZWxm
Ll90dy5zZXAoIiEiLCAiY29sbGVjdGlvbiBmYWlsdXJlcyIpCi0gICAgICAgICAgICAgICAgZm9y
IHJlcCBpbiBzZWxmLnN0YXRzLmdldCgnZmFpbGVkJyk6Ci0gICAgICAgICAgICAgICAgICAgIHJl
cC50b3Rlcm1pbmFsKHNlbGYuX3R3KQotICAgICAgICAgICAgICAgIHJldHVybiAxCi0gICAgICAg
ICAgICByZXR1cm4gMAotICAgICAgICBsaW5lcyA9IHNlbGYuY29uZmlnLmhvb2sucHl0ZXN0X3Jl
cG9ydF9jb2xsZWN0aW9uZmluaXNoKAotICAgICAgICAgICAgY29uZmlnPXNlbGYuY29uZmlnLCBz
dGFydGRpcj1zZWxmLnN0YXJ0ZGlyLCBpdGVtcz1zZXNzaW9uLml0ZW1zKQotICAgICAgICBzZWxm
Ll93cml0ZV9yZXBvcnRfbGluZXNfZnJvbV9ob29rcyhsaW5lcykKLQotICAgIGRlZiBfcHJpbnRj
b2xsZWN0ZWRpdGVtcyhzZWxmLCBpdGVtcyk6Ci0gICAgICAgICMgdG8gcHJpbnQgb3V0IGl0ZW1z
IGFuZCB0aGVpciBwYXJlbnQgY29sbGVjdG9ycwotICAgICAgICAjIHdlIHRha2UgY2FyZSB0byBs
ZWF2ZSBvdXQgSW5zdGFuY2VzIGFrYSAoKQotICAgICAgICAjIGJlY2F1c2UgbGF0ZXIgdmVyc2lv
bnMgYXJlIGdvaW5nIHRvIGdldCByaWQgb2YgdGhlbSBhbnl3YXkKLSAgICAgICAgaWYgc2VsZi5j
b25maWcub3B0aW9uLnZlcmJvc2UgPCAwOgotICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0
aW9uLnZlcmJvc2UgPCAtMToKLSAgICAgICAgICAgICAgICBjb3VudHMgPSB7fQotICAgICAgICAg
ICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgotICAgICAgICAgICAgICAgICAgICBuYW1lID0gaXRl
bS5ub2RlaWQuc3BsaXQoJzo6JywgMSlbMF0KLSAgICAgICAgICAgICAgICAgICAgY291bnRzW25h
bWVdID0gY291bnRzLmdldChuYW1lLCAwKSArIDEKLSAgICAgICAgICAgICAgICBmb3IgbmFtZSwg
Y291bnQgaW4gc29ydGVkKGNvdW50cy5pdGVtcygpKToKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fdHcubGluZSgiJXM6ICVkIiAlIChuYW1lLCBjb3VudCkpCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgotICAgICAgICAgICAgICAgICAgICBu
b2RlaWQgPSBpdGVtLm5vZGVpZAotICAgICAgICAgICAgICAgICAgICBub2RlaWQgPSBub2RlaWQu
cmVwbGFjZSgiOjooKTo6IiwgIjo6IikKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdHcubGlu
ZShub2RlaWQpCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgc3RhY2sgPSBbXQotICAgICAg
ICBpbmRlbnQgPSAiIgotICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKLSAgICAgICAgICAgIG5l
ZWRlZF9jb2xsZWN0b3JzID0gaXRlbS5saXN0Y2hhaW4oKVsxOl0gICMgc3RyaXAgcm9vdCBub2Rl
Ci0gICAgICAgICAgICB3aGlsZSBzdGFjazoKLSAgICAgICAgICAgICAgICBpZiBzdGFjayA9PSBu
ZWVkZWRfY29sbGVjdG9yc1s6bGVuKHN0YWNrKV06Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFr
Ci0gICAgICAgICAgICAgICAgc3RhY2sucG9wKCkKLSAgICAgICAgICAgIGZvciBjb2wgaW4gbmVl
ZGVkX2NvbGxlY3RvcnNbbGVuKHN0YWNrKTpdOgotICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVu
ZChjb2wpCi0gICAgICAgICAgICAgICAgIyBpZiBjb2wubmFtZSA9PSAiKCkiOgotICAgICAgICAg
ICAgICAgICMgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBpbmRlbnQgPSAobGVuKHN0YWNr
KSAtIDEpICogIiAgIgotICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoIiVzJXMiICUgKGlu
ZGVudCwgY29sKSkKLQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAg
ICBkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2VsZiwgZXhpdHN0YXR1cyk6Ci0gICAgICAgIG91
dGNvbWUgPSB5aWVsZAotICAgICAgICBvdXRjb21lLmdldF9yZXN1bHQoKQotICAgICAgICBzZWxm
Ll90dy5saW5lKCIiKQotICAgICAgICBzdW1tYXJ5X2V4aXRfY29kZXMgPSAoCi0gICAgICAgICAg
ICBFWElUX09LLCBFWElUX1RFU1RTRkFJTEVELCBFWElUX0lOVEVSUlVQVEVELCBFWElUX1VTQUdF
RVJST1IsCi0gICAgICAgICAgICBFWElUX05PVEVTVFNDT0xMRUNURUQpCi0gICAgICAgIGlmIGV4
aXRzdGF0dXMgaW4gc3VtbWFyeV9leGl0X2NvZGVzOgotICAgICAgICAgICAgc2VsZi5jb25maWcu
aG9vay5weXRlc3RfdGVybWluYWxfc3VtbWFyeSh0ZXJtaW5hbHJlcG9ydGVyPXNlbGYsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXRzdGF0
dXM9ZXhpdHN0YXR1cykKLSAgICAgICAgICAgIHNlbGYuc3VtbWFyeV9lcnJvcnMoKQotICAgICAg
ICAgICAgc2VsZi5zdW1tYXJ5X2ZhaWx1cmVzKCkKLSAgICAgICAgICAgIHNlbGYuc3VtbWFyeV93
YXJuaW5ncygpCi0gICAgICAgICAgICBzZWxmLnN1bW1hcnlfcGFzc2VzKCkKLSAgICAgICAgaWYg
ZXhpdHN0YXR1cyA9PSBFWElUX0lOVEVSUlVQVEVEOgotICAgICAgICAgICAgc2VsZi5fcmVwb3J0
X2tleWJvYXJkaW50ZXJydXB0KCkKLSAgICAgICAgICAgIGRlbCBzZWxmLl9rZXlib2FyZGludGVy
cnVwdF9tZW1vCi0gICAgICAgIHNlbGYuc3VtbWFyeV9kZXNlbGVjdGVkKCkKLSAgICAgICAgc2Vs
Zi5zdW1tYXJ5X3N0YXRzKCkKLQotICAgIGRlZiBweXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KHNl
bGYsIGV4Y2luZm8pOgotICAgICAgICBzZWxmLl9rZXlib2FyZGludGVycnVwdF9tZW1vID0gZXhj
aW5mby5nZXRyZXByKGZ1bmNhcmdzPVRydWUpCi0KLSAgICBkZWYgcHl0ZXN0X3VuY29uZmlndXJl
KHNlbGYpOgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfa2V5Ym9hcmRpbnRlcnJ1cHRfbWVt
bycpOgotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2tleWJvYXJkaW50ZXJydXB0KCkKLQotICAg
IGRlZiBfcmVwb3J0X2tleWJvYXJkaW50ZXJydXB0KHNlbGYpOgotICAgICAgICBleGNyZXByID0g
c2VsZi5fa2V5Ym9hcmRpbnRlcnJ1cHRfbWVtbwotICAgICAgICBtc2cgPSBleGNyZXByLnJlcHJj
cmFzaC5tZXNzYWdlCi0gICAgICAgIHNlbGYud3JpdGVfc2VwKCIhIiwgbXNnKQotICAgICAgICBp
ZiAiS2V5Ym9hcmRJbnRlcnJ1cHQiIGluIG1zZzoKLSAgICAgICAgICAgIGlmIHNlbGYuY29uZmln
Lm9wdGlvbi5mdWxsdHJhY2U6Ci0gICAgICAgICAgICAgICAgZXhjcmVwci50b3Rlcm1pbmFsKHNl
bGYuX3R3KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5l
KCJ0byBzaG93IGEgZnVsbCB0cmFjZWJhY2sgb24gS2V5Ym9hcmRJbnRlcnJ1cHQgdXNlIC0tZnVs
bHRyYWNlIiwgeWVsbG93PVRydWUpCi0gICAgICAgICAgICAgICAgZXhjcmVwci5yZXByY3Jhc2gu
dG90ZXJtaW5hbChzZWxmLl90dykKLQotICAgIGRlZiBfbG9jYXRpb25saW5lKHNlbGYsIG5vZGVp
ZCwgZnNwYXRoLCBsaW5lbm8sIGRvbWFpbik6Ci0gICAgICAgIGRlZiBta3JlbChub2RlaWQpOgot
ICAgICAgICAgICAgbGluZSA9IHNlbGYuY29uZmlnLmN3ZF9yZWxhdGl2ZV9ub2RlaWQobm9kZWlk
KQotICAgICAgICAgICAgaWYgZG9tYWluIGFuZCBsaW5lLmVuZHN3aXRoKGRvbWFpbik6Ci0gICAg
ICAgICAgICAgICAgbGluZSA9IGxpbmVbOi1sZW4oZG9tYWluKV0KLSAgICAgICAgICAgICAgICB2
YWx1ZXMgPSBkb21haW4uc3BsaXQoIlsiKQotICAgICAgICAgICAgICAgIHZhbHVlc1swXSA9IHZh
bHVlc1swXS5yZXBsYWNlKCcuJywgJzo6JykgICMgZG9uJ3QgcmVwbGFjZSAnLicgaW4gcGFyYW1z
Ci0gICAgICAgICAgICAgICAgbGluZSArPSAiWyIuam9pbih2YWx1ZXMpCi0gICAgICAgICAgICBy
ZXR1cm4gbGluZQotICAgICAgICAjIGNvbGxlY3RfZnNwYXRoIGNvbWVzIGZyb20gdGVzdGlkIHdo
aWNoIGhhcyBhICIvIi1ub3JtYWxpemVkIHBhdGgKLQotICAgICAgICBpZiBmc3BhdGg6Ci0gICAg
ICAgICAgICByZXMgPSBta3JlbChub2RlaWQpLnJlcGxhY2UoIjo6KCkiLCAiIikgICMgcGFyZW5z
LW5vcm1hbGl6YXRpb24KLSAgICAgICAgICAgIGlmIG5vZGVpZC5zcGxpdCgiOjoiKVswXSAhPSBm
c3BhdGgucmVwbGFjZSgiXFwiLCBub2Rlcy5TRVApOgotICAgICAgICAgICAgICAgIHJlcyArPSAi
IDwtICIgKyBzZWxmLnN0YXJ0ZGlyLmJlc3RyZWxwYXRoKGZzcGF0aCkKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHJlcyA9ICJbbG9jYXRpb25dIgotICAgICAgICByZXR1cm4gcmVzICsgIiAi
Ci0KLSAgICBkZWYgX2dldGZhaWx1cmVoZWFkbGluZShzZWxmLCByZXApOgotICAgICAgICBpZiBo
YXNhdHRyKHJlcCwgJ2xvY2F0aW9uJyk6Ci0gICAgICAgICAgICBmc3BhdGgsIGxpbmVubywgZG9t
YWluID0gcmVwLmxvY2F0aW9uCi0gICAgICAgICAgICByZXR1cm4gZG9tYWluCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICByZXR1cm4gInRlc3Qgc2Vzc2lvbiIgICMgWFhYPwotCi0gICAgZGVm
IF9nZXRjcmFzaGxpbmUoc2VsZiwgcmVwKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0
dXJuIHN0cihyZXAubG9uZ3JlcHIucmVwcmNyYXNoKQotICAgICAgICBleGNlcHQgQXR0cmlidXRl
RXJyb3I6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHN0cihyZXAu
bG9uZ3JlcHIpWzo1MF0KLSAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gIiIKLQotICAgICMKLSAgICAjIHN1bW1hcmllcyBmb3Igc2Vzc2lv
bmZpbmlzaAotICAgICMKLSAgICBkZWYgZ2V0cmVwb3J0cyhzZWxmLCBuYW1lKToKLSAgICAgICAg
dmFsdWVzID0gW10KLSAgICAgICAgZm9yIHggaW4gc2VsZi5zdGF0cy5nZXQobmFtZSwgW10pOgot
ICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoeCwgJ19wZGJzaG93bicpOgotICAgICAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoeCkKLSAgICAgICAgcmV0dXJuIHZhbHVlcwotCi0gICAgZGVmIHN1
bW1hcnlfd2FybmluZ3Moc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuaGFzb3B0KCJ3Iik6Ci0gICAg
ICAgICAgICBhbGxfd2FybmluZ3MgPSBzZWxmLnN0YXRzLmdldCgid2FybmluZ3MiKQotICAgICAg
ICAgICAgaWYgbm90IGFsbF93YXJuaW5nczoKLSAgICAgICAgICAgICAgICByZXR1cm4KLQotICAg
ICAgICAgICAgZ3JvdXBlZCA9IGl0ZXJ0b29scy5ncm91cGJ5KGFsbF93YXJuaW5ncywga2V5PWxh
bWJkYSB3cjogd3IuZ2V0X2xvY2F0aW9uKHNlbGYuY29uZmlnKSkKLQotICAgICAgICAgICAgc2Vs
Zi53cml0ZV9zZXAoIj0iLCAid2FybmluZ3Mgc3VtbWFyeSIsIHllbGxvdz1UcnVlLCBib2xkPUZh
bHNlKQotICAgICAgICAgICAgZm9yIGxvY2F0aW9uLCB3YXJuaW5nX3JlY29yZHMgaW4gZ3JvdXBl
ZDoKLSAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5lKHN0cihsb2NhdGlvbikgb3IgJzx1bmRl
dGVybWluZWQgbG9jYXRpb24+JykKLSAgICAgICAgICAgICAgICBmb3IgdyBpbiB3YXJuaW5nX3Jl
Y29yZHM6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmVzID0gdy5tZXNzYWdlLnNwbGl0bGluZXMo
KQotICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCA9ICdcbicuam9pbignICAnICsgeCBmb3Ig
eCBpbiBsaW5lcykKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZShpbmRlbnRlZCkK
LSAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5lKCkKLSAgICAgICAgICAgIHNlbGYuX3R3Lmxp
bmUoJy0tIERvY3M6IGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvd2FybmluZ3MuaHRt
bCcpCi0KLSAgICBkZWYgc3VtbWFyeV9wYXNzZXMoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuY29u
ZmlnLm9wdGlvbi50YnN0eWxlICE9ICJubyI6Ci0gICAgICAgICAgICBpZiBzZWxmLmhhc29wdCgi
UCIpOgotICAgICAgICAgICAgICAgIHJlcG9ydHMgPSBzZWxmLmdldHJlcG9ydHMoJ3Bhc3NlZCcp
Ci0gICAgICAgICAgICAgICAgaWYgbm90IHJlcG9ydHM6Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybgotICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgIlBBU1NFUyIpCi0gICAg
ICAgICAgICAgICAgZm9yIHJlcCBpbiByZXBvcnRzOgotICAgICAgICAgICAgICAgICAgICBtc2cg
PSBzZWxmLl9nZXRmYWlsdXJlaGVhZGxpbmUocmVwKQotICAgICAgICAgICAgICAgICAgICBzZWxm
LndyaXRlX3NlcCgiXyIsIG1zZykKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3V0cmVwX3N1
bW1hcnkocmVwKQotCi0gICAgZGVmIHByaW50X3RlYXJkb3duX3NlY3Rpb25zKHNlbGYsIHJlcCk6
Ci0gICAgICAgIGZvciBzZWNuYW1lLCBjb250ZW50IGluIHJlcC5zZWN0aW9uczoKLSAgICAgICAg
ICAgIGlmICd0ZWFyZG93bicgaW4gc2VjbmFtZToKLSAgICAgICAgICAgICAgICBzZWxmLl90dy5z
ZXAoJy0nLCBzZWNuYW1lKQotICAgICAgICAgICAgICAgIGlmIGNvbnRlbnRbLTE6XSA9PSAiXG4i
OgotICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0gY29udGVudFs6LTFdCi0gICAgICAgICAg
ICAgICAgc2VsZi5fdHcubGluZShjb250ZW50KQotCi0gICAgZGVmIHN1bW1hcnlfZmFpbHVyZXMo
c2VsZik6Ci0gICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi50YnN0eWxlICE9ICJubyI6Ci0g
ICAgICAgICAgICByZXBvcnRzID0gc2VsZi5nZXRyZXBvcnRzKCdmYWlsZWQnKQotICAgICAgICAg
ICAgaWYgbm90IHJlcG9ydHM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBz
ZWxmLndyaXRlX3NlcCgiPSIsICJGQUlMVVJFUyIpCi0gICAgICAgICAgICBmb3IgcmVwIGluIHJl
cG9ydHM6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgPT0g
ImxpbmUiOgotICAgICAgICAgICAgICAgICAgICBsaW5lID0gc2VsZi5fZ2V0Y3Jhc2hsaW5lKHJl
cCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9saW5lKGxpbmUpCi0gICAgICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gc2VsZi5fZ2V0ZmFpbHVyZWhl
YWRsaW5lKHJlcCkKLSAgICAgICAgICAgICAgICAgICAgbWFya3VwID0geydyZWQnOiBUcnVlLCAn
Ym9sZCc6IFRydWV9Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCJfIiwgbXNn
LCAqKm1hcmt1cCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3V0cmVwX3N1bW1hcnkocmVw
KQotICAgICAgICAgICAgICAgICAgICBmb3IgcmVwb3J0IGluIHNlbGYuZ2V0cmVwb3J0cygnJyk6
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiByZXBvcnQubm9kZWlkID09IHJlcC5ub2RlaWQg
YW5kIHJlcG9ydC53aGVuID09ICd0ZWFyZG93bic6Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5wcmludF90ZWFyZG93bl9zZWN0aW9ucyhyZXBvcnQpCi0KLSAgICBkZWYgc3VtbWFy
eV9lcnJvcnMoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi50YnN0eWxlICE9
ICJubyI6Ci0gICAgICAgICAgICByZXBvcnRzID0gc2VsZi5nZXRyZXBvcnRzKCdlcnJvcicpCi0g
ICAgICAgICAgICBpZiBub3QgcmVwb3J0czoKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAg
ICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgIkVSUk9SUyIpCi0gICAgICAgICAgICBmb3IgcmVw
IGluIHNlbGYuc3RhdHNbJ2Vycm9yJ106Ci0gICAgICAgICAgICAgICAgbXNnID0gc2VsZi5fZ2V0
ZmFpbHVyZWhlYWRsaW5lKHJlcCkKLSAgICAgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihyZXAs
ICd3aGVuJyk6Ci0gICAgICAgICAgICAgICAgICAgICMgY29sbGVjdAotICAgICAgICAgICAgICAg
ICAgICBtc2cgPSAiRVJST1IgY29sbGVjdGluZyAiICsgbXNnCi0gICAgICAgICAgICAgICAgZWxp
ZiByZXAud2hlbiA9PSAic2V0dXAiOgotICAgICAgICAgICAgICAgICAgICBtc2cgPSAiRVJST1Ig
YXQgc2V0dXAgb2YgIiArIG1zZwotICAgICAgICAgICAgICAgIGVsaWYgcmVwLndoZW4gPT0gInRl
YXJkb3duIjoKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gIkVSUk9SIGF0IHRlYXJkb3duIG9m
ICIgKyBtc2cKLSAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiXyIsIG1zZykKLSAgICAg
ICAgICAgICAgICBzZWxmLl9vdXRyZXBfc3VtbWFyeShyZXApCi0KLSAgICBkZWYgX291dHJlcF9z
dW1tYXJ5KHNlbGYsIHJlcCk6Ci0gICAgICAgIHJlcC50b3Rlcm1pbmFsKHNlbGYuX3R3KQotICAg
ICAgICBmb3Igc2VjbmFtZSwgY29udGVudCBpbiByZXAuc2VjdGlvbnM6Ci0gICAgICAgICAgICBz
ZWxmLl90dy5zZXAoIi0iLCBzZWNuYW1lKQotICAgICAgICAgICAgaWYgY29udGVudFstMTpdID09
ICJcbiI6Ci0gICAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnRbOi0xXQotICAgICAgICAg
ICAgc2VsZi5fdHcubGluZShjb250ZW50KQotCi0gICAgZGVmIHN1bW1hcnlfc3RhdHMoc2VsZik6
Ci0gICAgICAgIHNlc3Npb25fZHVyYXRpb24gPSB0aW1lLnRpbWUoKSAtIHNlbGYuX3Nlc3Npb25z
dGFydHRpbWUKLSAgICAgICAgKGxpbmUsIGNvbG9yKSA9IGJ1aWxkX3N1bW1hcnlfc3RhdHNfbGlu
ZShzZWxmLnN0YXRzKQotICAgICAgICBtc2cgPSAiJXMgaW4gJS4yZiBzZWNvbmRzIiAlIChsaW5l
LCBzZXNzaW9uX2R1cmF0aW9uKQotICAgICAgICBtYXJrdXAgPSB7Y29sb3I6IFRydWUsICdib2xk
JzogVHJ1ZX0KLQotICAgICAgICBpZiBzZWxmLnZlcmJvc2l0eSA+PSAwOgotICAgICAgICAgICAg
c2VsZi53cml0ZV9zZXAoIj0iLCBtc2csICoqbWFya3VwKQotICAgICAgICBpZiBzZWxmLnZlcmJv
c2l0eSA9PSAtMToKLSAgICAgICAgICAgIHNlbGYud3JpdGVfbGluZShtc2csICoqbWFya3VwKQot
Ci0gICAgZGVmIHN1bW1hcnlfZGVzZWxlY3RlZChzZWxmKToKLSAgICAgICAgaWYgJ2Rlc2VsZWN0
ZWQnIGluIHNlbGYuc3RhdHM6Ci0gICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICIlZCB0
ZXN0cyBkZXNlbGVjdGVkIiAlICgKLSAgICAgICAgICAgICAgICBsZW4oc2VsZi5zdGF0c1snZGVz
ZWxlY3RlZCddKSksIGJvbGQ9VHJ1ZSkKLQotCi1kZWYgcmVwcl9weXRob252ZXJzaW9uKHY9Tm9u
ZSk6Ci0gICAgaWYgdiBpcyBOb25lOgotICAgICAgICB2ID0gc3lzLnZlcnNpb25faW5mbwotICAg
IHRyeToKLSAgICAgICAgcmV0dXJuICIlcy4lcy4lcy0lcy0lcyIgJSB2Ci0gICAgZXhjZXB0IChU
eXBlRXJyb3IsIFZhbHVlRXJyb3IpOgotICAgICAgICByZXR1cm4gc3RyKHYpCi0KLQotZGVmIGZs
YXR0ZW4odmFsdWVzKToKLSAgICBmb3IgeCBpbiB2YWx1ZXM6Ci0gICAgICAgIGlmIGlzaW5zdGFu
Y2UoeCwgKGxpc3QsIHR1cGxlKSk6Ci0gICAgICAgICAgICBmb3IgeSBpbiBmbGF0dGVuKHgpOgot
ICAgICAgICAgICAgICAgIHlpZWxkIHkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHlpZWxk
IHgKLQotCi1kZWYgYnVpbGRfc3VtbWFyeV9zdGF0c19saW5lKHN0YXRzKToKLSAgICBrZXlzID0g
KCJmYWlsZWQgcGFzc2VkIHNraXBwZWQgZGVzZWxlY3RlZCAiCi0gICAgICAgICAgICAieGZhaWxl
ZCB4cGFzc2VkIHdhcm5pbmdzIGVycm9yIikuc3BsaXQoKQotICAgIHVua25vd25fa2V5X3NlZW4g
PSBGYWxzZQotICAgIGZvciBrZXkgaW4gc3RhdHMua2V5cygpOgotICAgICAgICBpZiBrZXkgbm90
IGluIGtleXM6Ci0gICAgICAgICAgICBpZiBrZXk6ICAjIHNldHVwL3RlYXJkb3duIHJlcG9ydHMg
aGF2ZSBhbiBlbXB0eSBrZXksIGlnbm9yZSB0aGVtCi0gICAgICAgICAgICAgICAga2V5cy5hcHBl
bmQoa2V5KQotICAgICAgICAgICAgICAgIHVua25vd25fa2V5X3NlZW4gPSBUcnVlCi0gICAgcGFy
dHMgPSBbXQotICAgIGZvciBrZXkgaW4ga2V5czoKLSAgICAgICAgdmFsID0gc3RhdHMuZ2V0KGtl
eSwgTm9uZSkKLSAgICAgICAgaWYgdmFsOgotICAgICAgICAgICAgcGFydHMuYXBwZW5kKCIlZCAl
cyIgJSAobGVuKHZhbCksIGtleSkpCi0KLSAgICBpZiBwYXJ0czoKLSAgICAgICAgbGluZSA9ICIs
ICIuam9pbihwYXJ0cykKLSAgICBlbHNlOgotICAgICAgICBsaW5lID0gIm5vIHRlc3RzIHJhbiIK
LQotICAgIGlmICdmYWlsZWQnIGluIHN0YXRzIG9yICdlcnJvcicgaW4gc3RhdHM6Ci0gICAgICAg
IGNvbG9yID0gJ3JlZCcKLSAgICBlbGlmICd3YXJuaW5ncycgaW4gc3RhdHMgb3IgdW5rbm93bl9r
ZXlfc2VlbjoKLSAgICAgICAgY29sb3IgPSAneWVsbG93JwotICAgIGVsaWYgJ3Bhc3NlZCcgaW4g
c3RhdHM6Ci0gICAgICAgIGNvbG9yID0gJ2dyZWVuJwotICAgIGVsc2U6Ci0gICAgICAgIGNvbG9y
ID0gJ3llbGxvdycKLQotICAgIHJldHVybiAobGluZSwgY29sb3IpCi0KLQotZGVmIF9wbHVnaW5f
bmFtZXZlcnNpb25zKHBsdWdpbmluZm8pOgotICAgIHZhbHVlcyA9IFtdCi0gICAgZm9yIHBsdWdp
biwgZGlzdCBpbiBwbHVnaW5pbmZvOgotICAgICAgICAjIGdldHMgdXMgbmFtZSBhbmQgdmVyc2lv
biEKLSAgICAgICAgbmFtZSA9ICd7ZGlzdC5wcm9qZWN0X25hbWV9LXtkaXN0LnZlcnNpb259Jy5m
b3JtYXQoZGlzdD1kaXN0KQotICAgICAgICAjIHF1ZXN0aW9uYWJsZSBjb252ZW5pZW5jZSwgYnV0
IGl0IGtlZXBzIHRoaW5ncyBzaG9ydAotICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoInB5dGVz
dC0iKToKLSAgICAgICAgICAgIG5hbWUgPSBuYW1lWzc6XQotICAgICAgICAjIHdlIGRlY2lkZWQg
dG8gcHJpbnQgcHl0aG9uIHBhY2thZ2UgbmFtZXMKLSAgICAgICAgIyB0aGV5IGNhbiBoYXZlIG1v
cmUgdGhhbiBvbmUgcGx1Z2luCi0gICAgICAgIGlmIG5hbWUgbm90IGluIHZhbHVlczoKLSAgICAg
ICAgICAgIHZhbHVlcy5hcHBlbmQobmFtZSkKLSAgICByZXR1cm4gdmFsdWVzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3RtcGRpci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdG1w
ZGlyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTFiMDMyMjM3YWZiZjQ2OGNj
MGUzNDlkMmIyNjJiOTI4M2U5NzgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdG1wZGlyLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMTI2ICswLDAgQEAKLSIiIiBzdXBwb3J0IGZvciBwcm92aWRpbmcgdGVtcG9yYXJ5IGRp
cmVjdG9yaWVzIHRvIHRlc3QgZnVuY3Rpb25zLiAgIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCByZQot
Ci1pbXBvcnQgcHl0ZXN0Ci1pbXBvcnQgcHkKLWZyb20gX3B5dGVzdC5tb25rZXlwYXRjaCBpbXBv
cnQgTW9ua2V5UGF0Y2gKLQotCi1jbGFzcyBUZW1wZGlyRmFjdG9yeToKLSAgICAiIiJGYWN0b3J5
IGZvciB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgdW5kZXIgdGhlIGNvbW1vbiBiYXNlIHRlbXAgZGly
ZWN0b3J5LgotCi0gICAgVGhlIGJhc2UgZGlyZWN0b3J5IGNhbiBiZSBjb25maWd1cmVkIHVzaW5n
IHRoZSBgYC0tYmFzZXRlbXBgYCBvcHRpb24uCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgY29uZmlnKToKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLSAgICAgICAgc2Vs
Zi50cmFjZSA9IGNvbmZpZy50cmFjZS5nZXQoInRtcGRpciIpCi0KLSAgICBkZWYgZW5zdXJldGVt
cChzZWxmLCBzdHJpbmcsIGRpcj0xKToKLSAgICAgICAgIiIiIChkZXByZWNhdGVkKSByZXR1cm4g
dGVtcG9yYXJ5IGRpcmVjdG9yeSBwYXRoIHdpdGgKLSAgICAgICAgICAgIHRoZSBnaXZlbiBzdHJp
bmcgYXMgdGhlIHRyYWlsaW5nIHBhcnQuICBJdCBpcyB1c3VhbGx5Ci0gICAgICAgICAgICBiZXR0
ZXIgdG8gdXNlIHRoZSAndG1wZGlyJyBmdW5jdGlvbiBhcmd1bWVudCB3aGljaAotICAgICAgICAg
ICAgcHJvdmlkZXMgYW4gZW1wdHkgdW5pcXVlLXBlci10ZXN0LWludm9jYXRpb24gZGlyZWN0b3J5
Ci0gICAgICAgICAgICBhbmQgaXMgZ3VhcmFudGVlZCB0byBiZSBlbXB0eS4KLSAgICAgICAgIiIi
Ci0gICAgICAgICMgcHkubG9nLl9hcGl3YXJuKCI+MS4xIiwgInVzZSB0bXBkaXIgZnVuY3Rpb24g
YXJndW1lbnQiKQotICAgICAgICByZXR1cm4gc2VsZi5nZXRiYXNldGVtcCgpLmVuc3VyZShzdHJp
bmcsIGRpcj1kaXIpCi0KLSAgICBkZWYgbWt0ZW1wKHNlbGYsIGJhc2VuYW1lLCBudW1iZXJlZD1U
cnVlKToKLSAgICAgICAgIiIiQ3JlYXRlIGEgc3ViZGlyZWN0b3J5IG9mIHRoZSBiYXNlIHRlbXBv
cmFyeSBkaXJlY3RvcnkgYW5kIHJldHVybiBpdC4KLSAgICAgICAgSWYgYGBudW1iZXJlZGBgLCBl
bnN1cmUgdGhlIGRpcmVjdG9yeSBpcyB1bmlxdWUgYnkgYWRkaW5nIGEgbnVtYmVyCi0gICAgICAg
IHByZWZpeCBncmVhdGVyIHRoYW4gYW55IGV4aXN0aW5nIG9uZS4KLSAgICAgICAgIiIiCi0gICAg
ICAgIGJhc2V0ZW1wID0gc2VsZi5nZXRiYXNldGVtcCgpCi0gICAgICAgIGlmIG5vdCBudW1iZXJl
ZDoKLSAgICAgICAgICAgIHAgPSBiYXNldGVtcC5ta2RpcihiYXNlbmFtZSkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKHByZWZp
eD1iYXNlbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGtlZXA9MCwgcm9vdGRpcj1iYXNldGVtcCwgbG9ja190aW1lb3V0PU5vbmUpCi0gICAgICAg
IHNlbGYudHJhY2UoIm1rdGVtcCIsIHApCi0gICAgICAgIHJldHVybiBwCi0KLSAgICBkZWYgZ2V0
YmFzZXRlbXAoc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gYmFzZSB0ZW1wb3JhcnkgZGlyZWN0
b3J5LiAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Jhc2V0ZW1w
Ci0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIGJhc2V0ZW1wID0g
c2VsZi5jb25maWcub3B0aW9uLmJhc2V0ZW1wCi0gICAgICAgICAgICBpZiBiYXNldGVtcDoKLSAg
ICAgICAgICAgICAgICBiYXNldGVtcCA9IHB5LnBhdGgubG9jYWwoYmFzZXRlbXApCi0gICAgICAg
ICAgICAgICAgaWYgYmFzZXRlbXAuY2hlY2soKToKLSAgICAgICAgICAgICAgICAgICAgYmFzZXRl
bXAucmVtb3ZlKCkKLSAgICAgICAgICAgICAgICBiYXNldGVtcC5ta2RpcigpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHRlbXByb290ID0gcHkucGF0aC5sb2NhbC5nZXRfdGVt
cHJvb3QoKQotICAgICAgICAgICAgICAgIHVzZXIgPSBnZXRfdXNlcigpCi0gICAgICAgICAgICAg
ICAgaWYgdXNlcjoKLSAgICAgICAgICAgICAgICAgICAgIyB1c2UgYSBzdWItZGlyZWN0b3J5IGlu
IHRoZSB0ZW1wcm9vdCB0byBzcGVlZC11cAotICAgICAgICAgICAgICAgICAgICAjIG1ha2VfbnVt
YmVyZWRfZGlyKCkgY2FsbAotICAgICAgICAgICAgICAgICAgICByb290ZGlyID0gdGVtcHJvb3Qu
am9pbigncHl0ZXN0LW9mLSVzJyAlIHVzZXIpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAgICAgcm9vdGRpciA9IHRlbXByb290Ci0gICAgICAgICAgICAgICAgcm9vdGRp
ci5lbnN1cmUoZGlyPTEpCi0gICAgICAgICAgICAgICAgYmFzZXRlbXAgPSBweS5wYXRoLmxvY2Fs
Lm1ha2VfbnVtYmVyZWRfZGlyKHByZWZpeD0ncHl0ZXN0LScsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RkaXI9cm9vdGRpcikK
LSAgICAgICAgICAgIHNlbGYuX2Jhc2V0ZW1wID0gdCA9IGJhc2V0ZW1wLnJlYWxwYXRoKCkKLSAg
ICAgICAgICAgIHNlbGYudHJhY2UoIm5ldyBiYXNldGVtcCIsIHQpCi0gICAgICAgICAgICByZXR1
cm4gdAotCi0gICAgZGVmIGZpbmlzaChzZWxmKToKLSAgICAgICAgc2VsZi50cmFjZSgiZmluaXNo
IikKLQotCi1kZWYgZ2V0X3VzZXIoKToKLSAgICAiIiJSZXR1cm4gdGhlIGN1cnJlbnQgdXNlciBu
YW1lLCBvciBOb25lIGlmIGdldHVzZXIoKSBkb2VzIG5vdCB3b3JrCi0gICAgaW4gdGhlIGN1cnJl
bnQgZW52aXJvbm1lbnQgKHNlZSAjMTAxMCkuCi0gICAgIiIiCi0gICAgaW1wb3J0IGdldHBhc3MK
LSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBnZXRwYXNzLmdldHVzZXIoKQotICAgIGV4Y2VwdCAo
SW1wb3J0RXJyb3IsIEtleUVycm9yKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotCi0jIGJhY2t3
YXJkIGNvbXBhdGliaWxpdHkKLVRlbXBkaXJIYW5kbGVyID0gVGVtcGRpckZhY3RvcnkKLQotCi1k
ZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgICIiIkNyZWF0ZSBhIFRlbXBkaXJGYWN0
b3J5IGFuZCBhdHRhY2ggaXQgdG8gdGhlIGNvbmZpZyBvYmplY3QuCi0KLSAgICBUaGlzIGlzIHRv
IGNvbXBseSB3aXRoIGV4aXN0aW5nIHBsdWdpbnMgd2hpY2ggZXhwZWN0IHRoZSBoYW5kbGVyIHRv
IGJlCi0gICAgYXZhaWxhYmxlIGF0IHB5dGVzdF9jb25maWd1cmUgdGltZSwgYnV0IGlkZWFsbHkg
c2hvdWxkIGJlIG1vdmVkIGVudGlyZWx5Ci0gICAgdG8gdGhlIHRtcGRpcl9mYWN0b3J5IHNlc3Np
b24gZml4dHVyZS4KLSAgICAiIiIKLSAgICBtcCA9IE1vbmtleVBhdGNoKCkKLSAgICB0ID0gVGVt
cGRpckZhY3RvcnkoY29uZmlnKQotICAgIGNvbmZpZy5fY2xlYW51cC5leHRlbmQoW21wLnVuZG8s
IHQuZmluaXNoXSkKLSAgICBtcC5zZXRhdHRyKGNvbmZpZywgJ190bXBkaXJoYW5kbGVyJywgdCwg
cmFpc2luZz1GYWxzZSkKLSAgICBtcC5zZXRhdHRyKHB5dGVzdCwgJ2Vuc3VyZXRlbXAnLCB0LmVu
c3VyZXRlbXAsIHJhaXNpbmc9RmFsc2UpCi0KLQotQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNz
aW9uJykKLWRlZiB0bXBkaXJfZmFjdG9yeShyZXF1ZXN0KToKLSAgICAiIiJSZXR1cm4gYSBUZW1w
ZGlyRmFjdG9yeSBpbnN0YW5jZSBmb3IgdGhlIHRlc3Qgc2Vzc2lvbi4KLSAgICAiIiIKLSAgICBy
ZXR1cm4gcmVxdWVzdC5jb25maWcuX3RtcGRpcmhhbmRsZXIKLQotCi1AcHl0ZXN0LmZpeHR1cmUK
LWRlZiB0bXBkaXIocmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpOgotICAgICIiIlJldHVybiBhIHRl
bXBvcmFyeSBkaXJlY3RvcnkgcGF0aCBvYmplY3QKLSAgICB3aGljaCBpcyB1bmlxdWUgdG8gZWFj
aCB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb24sCi0gICAgY3JlYXRlZCBhcyBhIHN1YiBkaXJlY3Rv
cnkgb2YgdGhlIGJhc2UgdGVtcG9yYXJ5Ci0gICAgZGlyZWN0b3J5LiAgVGhlIHJldHVybmVkIG9i
amVjdCBpcyBhIGBweS5wYXRoLmxvY2FsYF8KLSAgICBwYXRoIG9iamVjdC4KLSAgICAiIiIKLSAg
ICBuYW1lID0gcmVxdWVzdC5ub2RlLm5hbWUKLSAgICBuYW1lID0gcmUuc3ViKHIiW1xXXSIsICJf
IiwgbmFtZSkKLSAgICBNQVhWQUwgPSAzMAotICAgIGlmIGxlbihuYW1lKSA+IE1BWFZBTDoKLSAg
ICAgICAgbmFtZSA9IG5hbWVbOk1BWFZBTF0KLSAgICB4ID0gdG1wZGlyX2ZhY3RvcnkubWt0ZW1w
KG5hbWUsIG51bWJlcmVkPVRydWUpCi0gICAgcmV0dXJuIHgKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvdW5pdHRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3VuaXR0ZXN0LnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGRiMzk0OTVlMzk3MDM0NGI0YTZkOGY5
MmE4NjgwODdiNWZlZjI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwyMzcgKzAsMCBAQAotIiIiIGRpc2NvdmVyeSBhbmQgcnVubmluZyBvZiBzdGQtbGlicmFyeSAi
dW5pdHRlc3QiIHN0eWxlIHRlc3RzLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IHN5cwotaW1wb3J0
IHRyYWNlYmFjawotCi0jIGZvciB0cmFuc2ZlcnJpbmcgbWFya2VycwotaW1wb3J0IF9weXRlc3Qu
X2NvZGUKLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGhvb2tpbXBsCi1mcm9tIF9weXRlc3Qu
b3V0Y29tZXMgaW1wb3J0IGZhaWwsIHNraXAsIHhmYWlsCi1mcm9tIF9weXRlc3QucHl0aG9uIGlt
cG9ydCB0cmFuc2Zlcl9tYXJrZXJzLCBDbGFzcywgTW9kdWxlLCBGdW5jdGlvbgotCi0KLWRlZiBw
eXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKGNvbGxlY3RvciwgbmFtZSwgb2JqKToKLSAgICAjIGhh
cyB1bml0dGVzdCBiZWVuIGltcG9ydGVkIGFuZCBpcyBvYmogYSBzdWJjbGFzcyBvZiBpdHMgVGVz
dENhc2U/Ci0gICAgdHJ5OgotICAgICAgICBpZiBub3QgaXNzdWJjbGFzcyhvYmosIHN5cy5tb2R1
bGVzWyJ1bml0dGVzdCJdLlRlc3RDYXNlKToKLSAgICAgICAgICAgIHJldHVybgotICAgIGV4Y2Vw
dCBFeGNlcHRpb246Ci0gICAgICAgIHJldHVybgotICAgICMgeWVzLCBzbyBsZXQncyBjb2xsZWN0
IGl0Ci0gICAgcmV0dXJuIFVuaXRUZXN0Q2FzZShuYW1lLCBwYXJlbnQ9Y29sbGVjdG9yKQotCi0K
LWNsYXNzIFVuaXRUZXN0Q2FzZShDbGFzcyk6Ci0gICAgIyBtYXJrZXIgZm9yIGZpeHR1cmVtYW5n
ZXIuZ2V0Zml4dHVyZWluZm8oKQotICAgICMgdG8gZGVjbGFyZSB0aGF0IG91ciBjaGlsZHJlbiBk
byBub3Qgc3VwcG9ydCBmdW5jYXJncwotICAgIG5vZnVuY2FyZ3MgPSBUcnVlCi0KLSAgICBkZWYg
c2V0dXAoc2VsZik6Ci0gICAgICAgIGNscyA9IHNlbGYub2JqCi0gICAgICAgIGlmIGdldGF0dHIo
Y2xzLCAnX191bml0dGVzdF9za2lwX18nLCBGYWxzZSk6Ci0gICAgICAgICAgICByZXR1cm4gICMg
c2tpcHBlZAotICAgICAgICBzZXR1cCA9IGdldGF0dHIoY2xzLCAnc2V0VXBDbGFzcycsIE5vbmUp
Ci0gICAgICAgIGlmIHNldHVwIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2V0dXAoKQotICAg
ICAgICB0ZWFyZG93biA9IGdldGF0dHIoY2xzLCAndGVhckRvd25DbGFzcycsIE5vbmUpCi0gICAg
ICAgIGlmIHRlYXJkb3duIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5hZGRmaW5hbGl6
ZXIodGVhcmRvd24pCi0gICAgICAgIHN1cGVyKFVuaXRUZXN0Q2FzZSwgc2VsZikuc2V0dXAoKQot
Ci0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgIGZyb20gdW5pdHRlc3QgaW1wb3J0IFRl
c3RMb2FkZXIKLSAgICAgICAgY2xzID0gc2VsZi5vYmoKLSAgICAgICAgaWYgbm90IGdldGF0dHIo
Y2xzLCAiX190ZXN0X18iLCBUcnVlKToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxm
LnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyLnBhcnNlZmFjdG9yaWVzKHNlbGYsIHVuaXR0ZXN0PVRy
dWUpCi0gICAgICAgIGxvYWRlciA9IFRlc3RMb2FkZXIoKQotICAgICAgICBtb2R1bGUgPSBzZWxm
LmdldHBhcmVudChNb2R1bGUpLm9iagotICAgICAgICBmb3VuZHNvbWV0aGluZyA9IEZhbHNlCi0g
ICAgICAgIGZvciBuYW1lIGluIGxvYWRlci5nZXRUZXN0Q2FzZU5hbWVzKHNlbGYub2JqKToKLSAg
ICAgICAgICAgIHggPSBnZXRhdHRyKHNlbGYub2JqLCBuYW1lKQotICAgICAgICAgICAgaWYgbm90
IGdldGF0dHIoeCwgJ19fdGVzdF9fJywgVHJ1ZSk6Ci0gICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgICAgIGZ1bmNvYmogPSBnZXRhdHRyKHgsICdpbV9mdW5jJywgeCkKLSAgICAgICAg
ICAgIHRyYW5zZmVyX21hcmtlcnMoZnVuY29iaiwgY2xzLCBtb2R1bGUpCi0gICAgICAgICAgICB5
aWVsZCBUZXN0Q2FzZUZ1bmN0aW9uKG5hbWUsIHBhcmVudD1zZWxmKQotICAgICAgICAgICAgZm91
bmRzb21ldGhpbmcgPSBUcnVlCi0KLSAgICAgICAgaWYgbm90IGZvdW5kc29tZXRoaW5nOgotICAg
ICAgICAgICAgcnVudGVzdCA9IGdldGF0dHIoc2VsZi5vYmosICdydW5UZXN0JywgTm9uZSkKLSAg
ICAgICAgICAgIGlmIHJ1bnRlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgdXQgPSBz
eXMubW9kdWxlcy5nZXQoInR3aXN0ZWQudHJpYWwudW5pdHRlc3QiLCBOb25lKQotICAgICAgICAg
ICAgICAgIGlmIHV0IGlzIE5vbmUgb3IgcnVudGVzdCAhPSB1dC5UZXN0Q2FzZS5ydW5UZXN0Ogot
ICAgICAgICAgICAgICAgICAgICB5aWVsZCBUZXN0Q2FzZUZ1bmN0aW9uKCdydW5UZXN0JywgcGFy
ZW50PXNlbGYpCi0KLQotY2xhc3MgVGVzdENhc2VGdW5jdGlvbihGdW5jdGlvbik6Ci0gICAgX2V4
Y2luZm8gPSBOb25lCi0KLSAgICBkZWYgc2V0dXAoc2VsZik6Ci0gICAgICAgIHNlbGYuX3Rlc3Rj
YXNlID0gc2VsZi5wYXJlbnQub2JqKHNlbGYubmFtZSkKLSAgICAgICAgc2VsZi5fZml4X3VuaXR0
ZXN0X3NraXBfZGVjb3JhdG9yKCkKLSAgICAgICAgc2VsZi5fb2JqID0gZ2V0YXR0cihzZWxmLl90
ZXN0Y2FzZSwgc2VsZi5uYW1lKQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX3Rlc3RjYXNlLCAn
c2V0dXBfbWV0aG9kJyk6Ci0gICAgICAgICAgICBzZWxmLl90ZXN0Y2FzZS5zZXR1cF9tZXRob2Qo
c2VsZi5fb2JqKQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJfcmVxdWVzdCIpOgotICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC5fZmlsbGZpeHR1cmVzKCkKLQotICAgIGRlZiBfZml4X3VuaXR0
ZXN0X3NraXBfZGVjb3JhdG9yKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhlIEB1bml0
dGVzdC5za2lwIGRlY29yYXRvciBjYWxscyBmdW5jdG9vbHMud3JhcHMoc2VsZi5fdGVzdGNhc2Up
Ci0gICAgICAgIFRoZSBjYWxsIHRvIGZ1bmN0b29scy53cmFwcygpIGZhaWxzIHVubGVzcyBzZWxm
Ll90ZXN0Y2FzZQotICAgICAgICBoYXMgYSBfX25hbWVfXyBhdHRyaWJ1dGUuIFRoaXMgaXMgdXN1
YWxseSBhdXRvbWF0aWNhbGx5IHN1cHBsaWVkCi0gICAgICAgIGlmIHRoZSB0ZXN0IGlzIGEgZnVu
Y3Rpb24gb3IgbWV0aG9kLCBidXQgd2UgbmVlZCB0byBhZGQgbWFudWFsbHkKLSAgICAgICAgaGVy
ZS4KLQotICAgICAgICBTZWUgaXNzdWUgIzExNjkKLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHN5
cy52ZXJzaW9uX2luZm9bMF0gPT0gMjoKLSAgICAgICAgICAgIHNldGF0dHIoc2VsZi5fdGVzdGNh
c2UsICJfX25hbWVfXyIsIHNlbGYubmFtZSkKLQotICAgIGRlZiB0ZWFyZG93bihzZWxmKToKLSAg
ICAgICAgaWYgaGFzYXR0cihzZWxmLl90ZXN0Y2FzZSwgJ3RlYXJkb3duX21ldGhvZCcpOgotICAg
ICAgICAgICAgc2VsZi5fdGVzdGNhc2UudGVhcmRvd25fbWV0aG9kKHNlbGYuX29iaikKLSAgICAg
ICAgIyBBbGxvdyBnYXJiYWdlIGNvbGxlY3Rpb24gb24gVGVzdENhc2UgaW5zdGFuY2UgYXR0cmli
dXRlcy4KLSAgICAgICAgc2VsZi5fdGVzdGNhc2UgPSBOb25lCi0gICAgICAgIHNlbGYuX29iaiA9
IE5vbmUKLQotICAgIGRlZiBzdGFydFRlc3Qoc2VsZiwgdGVzdGNhc2UpOgotICAgICAgICBwYXNz
Ci0KLSAgICBkZWYgX2FkZGV4Y2luZm8oc2VsZiwgcmF3ZXhjaW5mbyk6Ci0gICAgICAgICMgdW53
cmFwIHBvdGVudGlhbCBleGNlcHRpb24gaW5mbyAoc2VlIHR3aXN0ZWQgdHJpYWwgc3VwcG9ydCBi
ZWxvdykKLSAgICAgICAgcmF3ZXhjaW5mbyA9IGdldGF0dHIocmF3ZXhjaW5mbywgJ19yYXdleGNp
bmZvJywgcmF3ZXhjaW5mbykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZXhjaW5mbyA9IF9w
eXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbyhyYXdleGNpbmZvKQotICAgICAgICBleGNlcHQgVHlw
ZUVycm9yOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICAgICAgdmFsdWVzID0gdHJhY2ViYWNrLmZvcm1hdF9leGNlcHRpb24oKnJhd2V4Y2lu
Zm8pCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlcy5pbnNlcnQoMCwgIk5PVEU6IEluY29tcGF0
aWJsZSBFeGNlcHRpb24gUmVwcmVzZW50YXRpb24sICIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZGlzcGxheWluZyBuYXRpdmVseTpcblxuIikKLSAgICAgICAgICAgICAgICAg
ICAgZmFpbCgiIi5qb2luKHZhbHVlcyksIHB5dHJhY2U9RmFsc2UpCi0gICAgICAgICAgICAgICAg
ZXhjZXB0IChmYWlsLkV4Y2VwdGlvbiwgS2V5Ym9hcmRJbnRlcnJ1cHQpOgotICAgICAgICAgICAg
ICAgICAgICByYWlzZQotICAgICAgICAgICAgICAgIGV4Y2VwdDogICMgbm9xYQotICAgICAgICAg
ICAgICAgICAgICBmYWlsKCJFUlJPUjogVW5rbm93biBJbmNvbXBhdGlibGUgRXhjZXB0aW9uICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAicmVwcmVzZW50YXRpb246XG4lciIgJSAocmF3ZXhj
aW5mbywpLCBweXRyYWNlPUZhbHNlKQotICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJy
dXB0OgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBleGNlcHQgZmFpbC5FeGNl
cHRpb246Ci0gICAgICAgICAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9u
SW5mbygpCi0gICAgICAgIHNlbGYuX19kaWN0X18uc2V0ZGVmYXVsdCgnX2V4Y2luZm8nLCBbXSku
YXBwZW5kKGV4Y2luZm8pCi0KLSAgICBkZWYgYWRkRXJyb3Ioc2VsZiwgdGVzdGNhc2UsIHJhd2V4
Y2luZm8pOgotICAgICAgICBzZWxmLl9hZGRleGNpbmZvKHJhd2V4Y2luZm8pCi0KLSAgICBkZWYg
YWRkRmFpbHVyZShzZWxmLCB0ZXN0Y2FzZSwgcmF3ZXhjaW5mbyk6Ci0gICAgICAgIHNlbGYuX2Fk
ZGV4Y2luZm8ocmF3ZXhjaW5mbykKLQotICAgIGRlZiBhZGRTa2lwKHNlbGYsIHRlc3RjYXNlLCBy
ZWFzb24pOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBza2lwKHJlYXNvbikKLSAgICAgICAg
ZXhjZXB0IHNraXAuRXhjZXB0aW9uOgotICAgICAgICAgICAgc2VsZi5fc2tpcHBlZF9ieV9tYXJr
ID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fYWRkZXhjaW5mbyhzeXMuZXhjX2luZm8oKSkKLQot
ICAgIGRlZiBhZGRFeHBlY3RlZEZhaWx1cmUoc2VsZiwgdGVzdGNhc2UsIHJhd2V4Y2luZm8sIHJl
YXNvbj0iIik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHhmYWlsKHN0cihyZWFzb24pKQot
ICAgICAgICBleGNlcHQgeGZhaWwuRXhjZXB0aW9uOgotICAgICAgICAgICAgc2VsZi5fYWRkZXhj
aW5mbyhzeXMuZXhjX2luZm8oKSkKLQotICAgIGRlZiBhZGRVbmV4cGVjdGVkU3VjY2VzcyhzZWxm
LCB0ZXN0Y2FzZSwgcmVhc29uPSIiKToKLSAgICAgICAgc2VsZi5fdW5leHBlY3RlZHN1Y2Nlc3Mg
PSByZWFzb24KLQotICAgIGRlZiBhZGRTdWNjZXNzKHNlbGYsIHRlc3RjYXNlKToKLSAgICAgICAg
cGFzcwotCi0gICAgZGVmIHN0b3BUZXN0KHNlbGYsIHRlc3RjYXNlKToKLSAgICAgICAgcGFzcwot
Ci0gICAgZGVmIF9oYW5kbGVfc2tpcChzZWxmKToKLSAgICAgICAgIyBpbXBsZW1lbnRzIHRoZSBz
a2lwcGluZyBtYWNoaW5lcnkgKHNlZSAjMjEzNykKLSAgICAgICAgIyBhbmFsb2cgdG8gcHl0aG9u
cyBMaWIvdW5pdHRlc3QvY2FzZS5weTpydW4KLSAgICAgICAgdGVzdE1ldGhvZCA9IGdldGF0dHIo
c2VsZi5fdGVzdGNhc2UsIHNlbGYuX3Rlc3RjYXNlLl90ZXN0TWV0aG9kTmFtZSkKLSAgICAgICAg
aWYgKGdldGF0dHIoc2VsZi5fdGVzdGNhc2UuX19jbGFzc19fLCAiX191bml0dGVzdF9za2lwX18i
LCBGYWxzZSkgb3IKLSAgICAgICAgICAgICAgICBnZXRhdHRyKHRlc3RNZXRob2QsICJfX3VuaXR0
ZXN0X3NraXBfXyIsIEZhbHNlKSk6Ci0gICAgICAgICAgICAjIElmIHRoZSBjbGFzcyBvciBtZXRo
b2Qgd2FzIHNraXBwZWQuCi0gICAgICAgICAgICBza2lwX3doeSA9IChnZXRhdHRyKHNlbGYuX3Rl
c3RjYXNlLl9fY2xhc3NfXywgJ19fdW5pdHRlc3Rfc2tpcF93aHlfXycsICcnKSBvcgotICAgICAg
ICAgICAgICAgICAgICAgICAgZ2V0YXR0cih0ZXN0TWV0aG9kLCAnX191bml0dGVzdF9za2lwX3do
eV9fJywgJycpKQotICAgICAgICAgICAgdHJ5OiAgIyBQWTMsIHVuaXR0ZXN0MiBvbiBQWTIKLSAg
ICAgICAgICAgICAgICBzZWxmLl90ZXN0Y2FzZS5fYWRkU2tpcChzZWxmLCBzZWxmLl90ZXN0Y2Fz
ZSwgc2tpcF93aHkpCi0gICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOiAgIyBQWTIKLSAgICAg
ICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdICE9IDI6Ci0gICAgICAgICAgICAgICAg
ICAgIHJhaXNlCi0gICAgICAgICAgICAgICAgc2VsZi5fdGVzdGNhc2UuX2FkZFNraXAoc2VsZiwg
c2tpcF93aHkpCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICByZXR1cm4gRmFsc2UK
LQotICAgIGRlZiBydW50ZXN0KHNlbGYpOgotICAgICAgICBpZiBzZWxmLmNvbmZpZy5wbHVnaW5t
YW5hZ2VyLmdldF9wbHVnaW4oInBkYmludm9rZSIpIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxm
Ll90ZXN0Y2FzZShyZXN1bHQ9c2VsZikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgICMgZGlz
YWJsZXMgdGVhckRvd24gYW5kIGNsZWFudXBzIGZvciBwb3N0IG1vcnRlbSBkZWJ1Z2dpbmcgKHNl
ZSAjMTg5MCkKLSAgICAgICAgICAgIGlmIHNlbGYuX2hhbmRsZV9za2lwKCk6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgICAgICBzZWxmLl90ZXN0Y2FzZS5kZWJ1ZygpCi0KLSAgICBk
ZWYgX3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pOgotICAgICAgICBGdW5jdGlvbi5fcHJ1
bmV0cmFjZWJhY2soc2VsZiwgZXhjaW5mbykKLSAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50
cmFjZWJhY2suZmlsdGVyKAotICAgICAgICAgICAgbGFtYmRhIHg6IG5vdCB4LmZyYW1lLmZfZ2xv
YmFscy5nZXQoJ19fdW5pdHRlc3QnKSkKLSAgICAgICAgaWYgdHJhY2ViYWNrOgotICAgICAgICAg
ICAgZXhjaW5mby50cmFjZWJhY2sgPSB0cmFjZWJhY2sKLQotCi1AaG9va2ltcGwodHJ5Zmlyc3Q9
VHJ1ZSkKLWRlZiBweXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgotICAgIGlm
IGlzaW5zdGFuY2UoaXRlbSwgVGVzdENhc2VGdW5jdGlvbik6Ci0gICAgICAgIGlmIGl0ZW0uX2V4
Y2luZm86Ci0gICAgICAgICAgICBjYWxsLmV4Y2luZm8gPSBpdGVtLl9leGNpbmZvLnBvcCgwKQot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGRlbCBjYWxsLnJlc3VsdAotICAgICAg
ICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgICAgIHBhc3MKLQotIyB0
d2lzdGVkIHRyaWFsIHN1cHBvcnQKLQotCi1AaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLWRl
ZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbChpdGVtKToKLSAgICBpZiBpc2luc3RhbmNlKGl0ZW0s
IFRlc3RDYXNlRnVuY3Rpb24pIGFuZCBcCi0gICAgICAgJ3R3aXN0ZWQudHJpYWwudW5pdHRlc3Qn
IGluIHN5cy5tb2R1bGVzOgotICAgICAgICB1dCA9IHN5cy5tb2R1bGVzWyd0d2lzdGVkLnB5dGhv
bi5mYWlsdXJlJ10KLSAgICAgICAgRmFpbHVyZV9faW5pdF9fID0gdXQuRmFpbHVyZS5fX2luaXRf
XwotICAgICAgICBjaGVja190ZXN0Y2FzZV9pbXBsZW1lbnRzX3RyaWFsX3JlcG9ydGVyKCkKLQot
ICAgICAgICBkZWYgZXhjc3RvcmUoc2VsZiwgZXhjX3ZhbHVlPU5vbmUsIGV4Y190eXBlPU5vbmUs
IGV4Y190Yj1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgY2FwdHVyZVZhcnM9Tm9uZSk6Ci0g
ICAgICAgICAgICBpZiBleGNfdmFsdWUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLl9y
YXdleGNpbmZvID0gc3lzLmV4Y19pbmZvKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgaWYgZXhjX3R5cGUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgZXhjX3R5cGUg
PSB0eXBlKGV4Y192YWx1ZSkKLSAgICAgICAgICAgICAgICBzZWxmLl9yYXdleGNpbmZvID0gKGV4
Y190eXBlLCBleGNfdmFsdWUsIGV4Y190YikKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICBGYWlsdXJlX19pbml0X18oc2VsZiwgZXhjX3ZhbHVlLCBleGNfdHlwZSwgZXhjX3RiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXB0dXJlVmFycz1jYXB0dXJlVmFycykK
LSAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgICAgICAgICAgRmFpbHVyZV9f
aW5pdF9fKHNlbGYsIGV4Y192YWx1ZSwgZXhjX3R5cGUsIGV4Y190YikKLQotICAgICAgICB1dC5G
YWlsdXJlLl9faW5pdF9fID0gZXhjc3RvcmUKLSAgICAgICAgeWllbGQKLSAgICAgICAgdXQuRmFp
bHVyZS5fX2luaXRfXyA9IEZhaWx1cmVfX2luaXRfXwotICAgIGVsc2U6Ci0gICAgICAgIHlpZWxk
Ci0KLQotZGVmIGNoZWNrX3Rlc3RjYXNlX2ltcGxlbWVudHNfdHJpYWxfcmVwb3J0ZXIoZG9uZT1b
XSk6Ci0gICAgaWYgZG9uZToKLSAgICAgICAgcmV0dXJuCi0gICAgZnJvbSB6b3BlLmludGVyZmFj
ZSBpbXBvcnQgY2xhc3NJbXBsZW1lbnRzCi0gICAgZnJvbSB0d2lzdGVkLnRyaWFsLml0cmlhbCBp
bXBvcnQgSVJlcG9ydGVyCi0gICAgY2xhc3NJbXBsZW1lbnRzKFRlc3RDYXNlRnVuY3Rpb24sIElS
ZXBvcnRlcikKLSAgICBkb25lLmFwcGVuZCgxKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4MGVmYzBjOTEwZmQwNzYyZWY2MDEzZjQ4
ZWZkMzM0NjNmNDM5OGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDUxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX19pbml0X18ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19hcmdjb21wbGV0ZS5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvY2FjaGVwcm92aWRlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FwdHVyZS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jb25maWcu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlYnVnZ2luZy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvZGVwcmVjYXRlZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZG9jdGVzdC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvZml4dHVyZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZyZWV6ZV9z
dXBwb3J0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9oZWxwY29uZmlnLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9ob29rc3BlYy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvanVuaXR4bWwucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2xvZ2dpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21h
aW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21hcmsucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L21vbmtleXBhdGNoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub2Rlcy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3Qvbm9zZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvb3V0Y29tZXMucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L3Bhc3RlYmluLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRl
c3Rlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9weXRob25fYXBpLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZWN3YXJuLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9yZXN1bHRsb2cucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3J1bm5l
ci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBvbmx5LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9zZXR1cHBsYW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NraXBwaW5nLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC90ZXJtaW5hbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdG1wZGly
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC91bml0dGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3Qvd2FybmluZ3MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvd2FybmluZ3Mu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3dhcm5pbmdzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzYzJiMTkxNGZiNjkxNjRiMzgwZjFmNTI5NGY1NzQ5ZWQzZTQ5MjlkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3Qvd2FybmluZ3MucHkKKysrIC9kZXYvbnVsbApAQCAtMSw5NiArMCwwIEBACi1mcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9u
Ci0KLWltcG9ydCB3YXJuaW5ncwotZnJvbSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdl
cgotCi1pbXBvcnQgcHl0ZXN0Ci0KLWZyb20gX3B5dGVzdCBpbXBvcnQgY29tcGF0Ci0KLQotZGVm
IF9zZXRvcHRpb24od21vZCwgYXJnKToKLSAgICAiIiIKLSAgICBDb3B5IG9mIHRoZSB3YXJuaW5n
Ll9zZXRvcHRpb24gZnVuY3Rpb24gYnV0IGRvZXMgbm90IGVzY2FwZSBhcmd1bWVudHMuCi0gICAg
IiIiCi0gICAgcGFydHMgPSBhcmcuc3BsaXQoJzonKQotICAgIGlmIGxlbihwYXJ0cykgPiA1Ogot
ICAgICAgICByYWlzZSB3bW9kLl9PcHRpb25FcnJvcigidG9vIG1hbnkgZmllbGRzIChtYXggNSk6
ICVyIiAlIChhcmcsKSkKLSAgICB3aGlsZSBsZW4ocGFydHMpIDwgNToKLSAgICAgICAgcGFydHMu
YXBwZW5kKCcnKQotICAgIGFjdGlvbiwgbWVzc2FnZSwgY2F0ZWdvcnksIG1vZHVsZSwgbGluZW5v
ID0gW3Muc3RyaXAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciBzIGluIHBhcnRzXQotICAgIGFjdGlvbiA9IHdtb2QuX2dldGFjdGlvbihhY3Rp
b24pCi0gICAgY2F0ZWdvcnkgPSB3bW9kLl9nZXRjYXRlZ29yeShjYXRlZ29yeSkKLSAgICBpZiBs
aW5lbm86Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGxpbmVubyA9IGludChsaW5lbm8pCi0g
ICAgICAgICAgICBpZiBsaW5lbm8gPCAwOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IKLSAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBPdmVyZmxvd0Vycm9yKToKLSAgICAgICAg
ICAgIHJhaXNlIHdtb2QuX09wdGlvbkVycm9yKCJpbnZhbGlkIGxpbmVubyAlciIgJSAobGluZW5v
LCkpCi0gICAgZWxzZToKLSAgICAgICAgbGluZW5vID0gMAotICAgIHdtb2QuZmlsdGVyd2Fybmlu
Z3MoYWN0aW9uLCBtZXNzYWdlLCBjYXRlZ29yeSwgbW9kdWxlLCBsaW5lbm8pCi0KLQotZGVmIHB5
dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgicHl0
ZXN0LXdhcm5pbmdzIikKLSAgICBncm91cC5hZGRvcHRpb24oCi0gICAgICAgICctVycsICctLXB5
dGhvbndhcm5pbmdzJywgYWN0aW9uPSdhcHBlbmQnLAotICAgICAgICBoZWxwPSJzZXQgd2hpY2gg
d2FybmluZ3MgdG8gcmVwb3J0LCBzZWUgLVcgb3B0aW9uIG9mIHB5dGhvbiBpdHNlbGYuIikKLSAg
ICBwYXJzZXIuYWRkaW5pKCJmaWx0ZXJ3YXJuaW5ncyIsIHR5cGU9ImxpbmVsaXN0IiwKLSAgICAg
ICAgICAgICAgICAgIGhlbHA9IkVhY2ggbGluZSBzcGVjaWZpZXMgYSBwYXR0ZXJuIGZvciAiCi0g
ICAgICAgICAgICAgICAgICAid2FybmluZ3MuZmlsdGVyd2FybmluZ3MuICIKLSAgICAgICAgICAg
ICAgICAgICJQcm9jZXNzZWQgYWZ0ZXIgLVcgYW5kIC0tcHl0aG9ud2FybmluZ3MuIikKLQotCi1A
Y29udGV4dG1hbmFnZXIKLWRlZiBjYXRjaF93YXJuaW5nc19mb3JfaXRlbShpdGVtKToKLSAgICAi
IiIKLSAgICBjYXRjaGVzIHRoZSB3YXJuaW5ncyBnZW5lcmF0ZWQgZHVyaW5nIHNldHVwL2NhbGwv
dGVhcmRvd24gZXhlY3V0aW9uCi0gICAgb2YgdGhlIGdpdmVuIGl0ZW0gYW5kIGFmdGVyIGl0IGlz
IGRvbmUgcG9zdHMgdGhlbSBhcyB3YXJuaW5ncyB0byB0aGlzCi0gICAgaXRlbS4KLSAgICAiIiIK
LSAgICBhcmdzID0gaXRlbS5jb25maWcuZ2V0b3B0aW9uKCdweXRob253YXJuaW5ncycpIG9yIFtd
Ci0gICAgaW5pZmlsdGVycyA9IGl0ZW0uY29uZmlnLmdldGluaSgiZmlsdGVyd2FybmluZ3MiKQot
ICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MocmVjb3JkPVRydWUpIGFzIGxvZzoKLSAg
ICAgICAgZm9yIGFyZyBpbiBhcmdzOgotICAgICAgICAgICAgd2FybmluZ3MuX3NldG9wdGlvbihh
cmcpCi0KLSAgICAgICAgZm9yIGFyZyBpbiBpbmlmaWx0ZXJzOgotICAgICAgICAgICAgX3NldG9w
dGlvbih3YXJuaW5ncywgYXJnKQotCi0gICAgICAgIG1hcmsgPSBpdGVtLmdldF9tYXJrZXIoJ2Zp
bHRlcndhcm5pbmdzJykKLSAgICAgICAgaWYgbWFyazoKLSAgICAgICAgICAgIGZvciBhcmcgaW4g
bWFyay5hcmdzOgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLl9zZXRvcHRpb24oYXJnKQotCi0g
ICAgICAgIHlpZWxkCi0KLSAgICAgICAgZm9yIHdhcm5pbmcgaW4gbG9nOgotICAgICAgICAgICAg
d2Fybl9tc2cgPSB3YXJuaW5nLm1lc3NhZ2UKLSAgICAgICAgICAgIHVuaWNvZGVfd2FybmluZyA9
IEZhbHNlCi0KLSAgICAgICAgICAgIGlmIGNvbXBhdC5fUFkyIGFuZCBhbnkoaXNpbnN0YW5jZSht
LCBjb21wYXQuVU5JQ09ERV9UWVBFUykgZm9yIG0gaW4gd2Fybl9tc2cuYXJncyk6Ci0gICAgICAg
ICAgICAgICAgbmV3X2FyZ3MgPSBbXQotICAgICAgICAgICAgICAgIGZvciBtIGluIHdhcm5fbXNn
LmFyZ3M6Ci0gICAgICAgICAgICAgICAgICAgIG5ld19hcmdzLmFwcGVuZChjb21wYXQuYXNjaWlf
ZXNjYXBlZChtKSBpZiBpc2luc3RhbmNlKG0sIGNvbXBhdC5VTklDT0RFX1RZUEVTKSBlbHNlIG0p
Ci0gICAgICAgICAgICAgICAgdW5pY29kZV93YXJuaW5nID0gbGlzdCh3YXJuX21zZy5hcmdzKSAh
PSBuZXdfYXJncwotICAgICAgICAgICAgICAgIHdhcm5fbXNnLmFyZ3MgPSBuZXdfYXJncwotCi0g
ICAgICAgICAgICBtc2cgPSB3YXJuaW5ncy5mb3JtYXR3YXJuaW5nKAotICAgICAgICAgICAgICAg
IHdhcm5fbXNnLCB3YXJuaW5nLmNhdGVnb3J5LAotICAgICAgICAgICAgICAgIHdhcm5pbmcuZmls
ZW5hbWUsIHdhcm5pbmcubGluZW5vLCB3YXJuaW5nLmxpbmUpCi0gICAgICAgICAgICBpdGVtLndh
cm4oInVudXNlZCIsIG1zZykKLQotICAgICAgICAgICAgaWYgdW5pY29kZV93YXJuaW5nOgotICAg
ICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCi0gICAgICAgICAgICAgICAgICAgICJXYXJuaW5n
IGlzIHVzaW5nIHVuaWNvZGUgbm9uIGNvbnZlcnRpYmxlIHRvIGFzY2lpLCAiCi0gICAgICAgICAg
ICAgICAgICAgICJjb252ZXJ0aW5nIHRvIGEgc2FmZSByZXByZXNlbnRhdGlvbjpcbiAgJXMiICUg
bXNnLAotICAgICAgICAgICAgICAgICAgICBVbmljb2RlV2FybmluZykKLQotCi1AcHl0ZXN0Lmhv
b2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woaXRl
bSk6Ci0gICAgd2l0aCBjYXRjaF93YXJuaW5nc19mb3JfaXRlbShpdGVtKToKLSAgICAgICAgeWll
bGQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2FwcHZleW9yLnltbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Fw
cHZleW9yLnltbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjgwOGZhNmQ5MWE5Zjdl
MDdjZDViZmI0ZDg2YjRlODYyOWMyMzlhNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9hcHB2ZXlvci55bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0OCArMCwwIEBACi1lbnZpcm9ubWVudDoKLSAgQ09WRVJBTExTX1JFUE9fVE9LRU46Ci0g
ICAgc2VjdXJlOiAyTko1Q3Q1NWNISjlXRWczeGJTcUN1djByZGd6emI2cG56T0lHNU9rTWJUbmR3
M3dPQnJYbnRXRm9RclhpTUZpCi0gICAgIyB0aGlzIGlzIHB5dGVzdCdzIHRva2VuIGluIGNvdmVy
YWxscy5pbywgZW5jcnlwdGVkCi0gICAgIyB1c2luZyBweXRlc3Rib3QgYWNjb3VudCBhcyBkZXRh
aWxlZCBoZXJlOgotICAgICMgaHR0cHM6Ly93d3cuYXBwdmV5b3IuY29tL2RvY3MvYnVpbGQtY29u
ZmlndXJhdGlvbiNzZWN1cmUtdmFyaWFibGVzCi0KLSAgbWF0cml4OgotICAjIGNvdmVyYWxscyBp
cyBub3QgaW4gdGhlIGRlZmF1bHQgZW52IGxpc3QKLSAgLSBUT1hFTlY6ICJjb3ZlcmFsbHMiCi0g
ICMgbm90ZTogcGxlYXNlIHVzZSAidG94IC0tbGlzdGVudnMiIHRvIHBvcHVsYXRlIHRoZSBidWls
ZCBtYXRyaXggYmVsb3cKLSAgLSBUT1hFTlY6ICJsaW50aW5nIgotICAtIFRPWEVOVjogInB5Mjci
Ci0gIC0gVE9YRU5WOiAicHkzNCIKLSAgLSBUT1hFTlY6ICJweTM1IgotICAtIFRPWEVOVjogInB5
MzYiCi0gIC0gVE9YRU5WOiAicHlweSIKLSAgLSBUT1hFTlY6ICJweTI3LXBleHBlY3QiCi0gIC0g
VE9YRU5WOiAicHkyNy14ZGlzdCIKLSAgLSBUT1hFTlY6ICJweTI3LXRyaWFsIgotICAtIFRPWEVO
VjogInB5MjctbnVtcHkiCi0gIC0gVE9YRU5WOiAicHkyNy1wbHVnZ3ltYXN0ZXIiCi0gIC0gVE9Y
RU5WOiAicHkzNi1wZXhwZWN0IgotICAtIFRPWEVOVjogInB5MzYteGRpc3QiCi0gIC0gVE9YRU5W
OiAicHkzNi10cmlhbCIKLSAgLSBUT1hFTlY6ICJweTM2LW51bXB5IgotICAtIFRPWEVOVjogInB5
MzYtcGx1Z2d5bWFzdGVyIgotICAtIFRPWEVOVjogInB5Mjctbm9ieXRlIgotICAtIFRPWEVOVjog
ImRvY3Rlc3RpbmciCi0gIC0gVE9YRU5WOiAicHkzNS1mcmVlemUiCi0gIC0gVE9YRU5WOiAiZG9j
cyIKLQotaW5zdGFsbDoKLSAgLSBlY2hvIEluc3RhbGxlZCBQeXRob25zCi0gIC0gZGlyIGM6XFB5
dGhvbioKLQotICAtIGlmICIlVE9YRU5WJSIgPT0gInB5cHkiIGNhbGwgc2NyaXB0c1xpbnN0YWxs
LXB5cHkuYmF0Ci0KLSAgLSBDOlxQeXRob24zNlxweXRob24gLW0gcGlwIGluc3RhbGwgLS11cGdy
YWRlIC0tcHJlIHRveAotCi1idWlsZDogZmFsc2UgICMgTm90IGEgQyMgcHJvamVjdCwgYnVpbGQg
c3R1ZmYgYXQgdGhlIHRlc3Qgc3RlcCBpbnN0ZWFkLgotCi10ZXN0X3NjcmlwdDoKLSAgLSBjYWxs
IHNjcmlwdHNcY2FsbC10b3guYmF0Ci0KLWNhY2hlOgotICAtICclTE9DQUxBUFBEQVRBJVxwaXBc
Y2FjaGUnCi0gIC0gJyVVU0VSUFJPRklMRSVcLmNhY2hlXHByZS1jb21taXQnCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9henVyZS1waXBlbGluZXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYXp1cmUtcGlw
ZWxpbmVzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTg0NjEwZmQxODU3NThiN2JjNDhlMGIyNTRmMmE4MzRi
YjAyMDI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYXp1cmUtcGlwZWxpbmVzLnlt
bApAQCAtMCwwICsxLDEwNyBAQAordHJpZ2dlcjoKKy0gbWFzdGVyCistIGZlYXR1cmVzCisKK3Zh
cmlhYmxlczoKKyAgUFlURVNUX0FERE9QVFM6ICItLWp1bml0eG1sPWJ1aWxkL3Rlc3QtcmVzdWx0
cy8kKHRveC5lbnYpLnhtbCAtdnYiCisgIHB5dGhvbi5uZWVkc192YzogRmFsc2UKKyAgQ09WRVJB
R0VfRklMRTogIiQoQnVpbGQuUmVwb3NpdG9yeS5Mb2NhbFBhdGgpLy5jb3ZlcmFnZSIKKyAgQ09W
RVJBR0VfUFJPQ0VTU19TVEFSVDogIiQoQnVpbGQuUmVwb3NpdG9yeS5Mb2NhbFBhdGgpLy5jb3Zl
cmFnZXJjIgorICBQWVRFU1RfQ09WRVJBR0U6ICcwJworCitqb2JzOgorCistIGpvYjogJ1Rlc3Qn
CisgIHBvb2w6CisgICAgdm1JbWFnZTogInZzMjAxNy13aW4yMDE2IgorICBzdHJhdGVneToKKyAg
ICBtYXRyaXg6CisgICAgICBweTI3OgorICAgICAgICBweXRob24udmVyc2lvbjogJzIuNycKKyAg
ICAgICAgdG94LmVudjogJ3B5MjcnCisgICAgICBweTI3LW5vYnl0ZS1sc29mLW51bXB5OgorICAg
ICAgICBweXRob24udmVyc2lvbjogJzIuNycKKyAgICAgICAgdG94LmVudjogJ3B5MjctbHNvZi1u
b2J5dGUtbnVtcHknCisgICAgICAgICMgQ292ZXJhZ2UgZm9yOgorICAgICAgICAjIC0gdGVzdF9z
dXBwb3J0c19icmVha3BvaW50X21vZHVsZV9nbG9iYWwKKyAgICAgICAgIyAtIHRlc3RfdGVybWlu
YWxfcmVwb3J0ZXJfd3JpdGVyX2F0dHIgKHdpdGhvdXQgeGRpc3QpCisgICAgICAgICMgLSAiaWYg
d3JpdGUiIGJyYW5jaCBpbiBfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlCisgICAgICAgICMgLSBu
dW1weQorICAgICAgICAjIC0gcHl0ZXN0ZXIncyBMc29mRmRMZWFrQ2hlY2tlciAoYmVpbmcgc2tp
cHBlZCkKKyAgICAgICAgUFlURVNUX0NPVkVSQUdFOiAnMScKKyAgICAgIHB5MjctdHdpc3RlZDoK
KyAgICAgICAgcHl0aG9uLnZlcnNpb246ICcyLjcnCisgICAgICAgIHRveC5lbnY6ICdweTI3LXR3
aXN0ZWQnCisgICAgICAgIHB5dGhvbi5uZWVkc192YzogVHJ1ZQorICAgICAgcHkyNy1wbHVnZ3lt
YXN0ZXIteGRpc3Q6CisgICAgICAgIHB5dGhvbi52ZXJzaW9uOiAnMi43JworICAgICAgICB0b3gu
ZW52OiAncHkyNy1wbHVnZ3ltYXN0ZXIteGRpc3QnCisgICAgICAgICMgQ292ZXJhZ2UgZm9yOgor
ICAgICAgICAjIC0gZXhjZXB0LUlPRXJyb3IgaW4gX2F0dGVtcHRfdG9fY2xvc2VfY2FwdHVyZV9m
aWxlIGZvciBweTIuCisgICAgICAgICMgICBBbHNvIHNlZW4gd2l0aCBweTI3LW5vYnl0ZSAodXNp
bmcgeGRpc3QpLCBhbmQgcHkyNy14ZGlzdC4KKyAgICAgICAgIyAgIEJ1dCBubyBleGNlcHRpb24g
d2l0aCBweTI3LXBleHBlY3QscHkyNy10d2lzdGVkLHB5MjctbnVtcHkuCisgICAgICAgIFBZVEVT
VF9DT1ZFUkFHRTogJzEnCisgICAgICAjIC0tIHB5cHkyIGFuZCBweXB5MyBhcmUgZGlzYWJsZWQg
Zm9yIG5vdzogIzUyNzkgLS0KKyAgICAgICMgcHlweToKKyAgICAgICMgICBweXRob24udmVyc2lv
bjogJ3B5cHkyJworICAgICAgIyAgIHRveC5lbnY6ICdweXB5JworICAgICAgIyBweXB5MzoKKyAg
ICAgICMgICBweXRob24udmVyc2lvbjogJ3B5cHkzJworICAgICAgIyAgIHRveC5lbnY6ICdweXB5
MycKKyAgICAgIHB5MzUteGRpc3Q6CisgICAgICAgIHB5dGhvbi52ZXJzaW9uOiAnMy41JworICAg
ICAgICB0b3guZW52OiAncHkzNS14ZGlzdCcKKyAgICAgICAgIyBDb3ZlcmFnZSBmb3I6CisgICAg
ICAgICMgLSB0ZXN0X3N1cHBvcnRzX2JyZWFrcG9pbnRfbW9kdWxlX2dsb2JhbAorICAgICAgICBQ
WVRFU1RfQ09WRVJBR0U6ICcxJworICAgICAgcHkzNi14ZGlzdDoKKyAgICAgICAgcHl0aG9uLnZl
cnNpb246ICczLjYnCisgICAgICAgIHRveC5lbnY6ICdweTM2LXhkaXN0JworICAgICAgcHkzNzoK
KyAgICAgICAgcHl0aG9uLnZlcnNpb246ICczLjcnCisgICAgICAgIHRveC5lbnY6ICdweTM3Jwor
ICAgICAgICAjIENvdmVyYWdlIGZvcjoKKyAgICAgICAgIyAtIF9weTM2X3dpbmRvd3Njb25zb2xl
aW9fd29ya2Fyb3VuZCAod2l0aCBweTM2KykKKyAgICAgICAgIyAtIHRlc3RfcmVxdWVzdF9nYXJi
YWdlIChubyB4ZGlzdCkKKyAgICAgICAgUFlURVNUX0NPVkVSQUdFOiAnMScKKyAgICAgIHB5Mzct
bGludGluZy9kb2NzL2RvY3Rlc3Rpbmc6CisgICAgICAgIHB5dGhvbi52ZXJzaW9uOiAnMy43Jwor
ICAgICAgICB0b3guZW52OiAnbGludGluZyxkb2NzLGRvY3Rlc3RpbmcnCisgICAgICBweTM3LXR3
aXN0ZWQvbnVtcHk6CisgICAgICAgIHB5dGhvbi52ZXJzaW9uOiAnMy43JworICAgICAgICB0b3gu
ZW52OiAncHkzNy10d2lzdGVkLHB5MzctbnVtcHknCisgICAgICBweTM3LXBsdWdneW1hc3Rlci14
ZGlzdDoKKyAgICAgICAgcHl0aG9uLnZlcnNpb246ICczLjcnCisgICAgICAgIHRveC5lbnY6ICdw
eTM3LXBsdWdneW1hc3Rlci14ZGlzdCcKKyAgICBtYXhQYXJhbGxlbDogMTAKKworICBzdGVwczoK
KyAgLSB0YXNrOiBVc2VQeXRob25WZXJzaW9uQDAKKyAgICBpbnB1dHM6CisgICAgICB2ZXJzaW9u
U3BlYzogJyQocHl0aG9uLnZlcnNpb24pJworICAgICAgYXJjaGl0ZWN0dXJlOiAneDY0JworCisg
IC0gc2NyaXB0OiBjaG9jbyBpbnN0YWxsIHZjcHl0aG9uMjcKKyAgICBjb25kaXRpb246IGVxKHZh
cmlhYmxlc1sncHl0aG9uLm5lZWRzX3ZjJ10sIFRydWUpCisgICAgZGlzcGxheU5hbWU6ICdJbnN0
YWxsIFZDIGZvciBweTI3JworCisgIC0gc2NyaXB0OiBweXRob24gLW0gcGlwIGluc3RhbGwgdG94
CisgICAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIHRveCcKKworICAtIHNjcmlwdDogfAorICAgICAg
Y2FsbCBzY3JpcHRzL3NldHVwLWNvdmVyYWdlLXZhcnMuYmF0IHx8IGdvdG8gOmVvZgorICAgICAg
cHl0aG9uIC1tIHRveCAtZSAkKHRveC5lbnYpCisgICAgZGlzcGxheU5hbWU6ICdSdW4gdGVzdHMn
CisKKyAgLSB0YXNrOiBQdWJsaXNoVGVzdFJlc3VsdHNAMgorICAgIGlucHV0czoKKyAgICAgIHRl
c3RSZXN1bHRzRmlsZXM6ICdidWlsZC90ZXN0LXJlc3VsdHMvJCh0b3guZW52KS54bWwnCisgICAg
ICB0ZXN0UnVuVGl0bGU6ICckKHRveC5lbnYpJworICAgIGNvbmRpdGlvbjogc3VjY2VlZGVkT3JG
YWlsZWQoKQorCisgIC0gc2NyaXB0OiBjYWxsIHNjcmlwdHNcdXBsb2FkLWNvdmVyYWdlLmJhdAor
ICAgIGRpc3BsYXlOYW1lOiAnUmVwb3J0IGFuZCB1cGxvYWQgY292ZXJhZ2UnCisgICAgY29uZGl0
aW9uOiBlcSh2YXJpYWJsZXNbJ1BZVEVTVF9DT1ZFUkFHRSddLCAnMScpCisgICAgZW52OgorICAg
ICAgQ09ERUNPVl9UT0tFTjogJChDT0RFQ09WX1RPS0VOKQorICAgICAgUFlURVNUX0NPREVDT1Zf
TkFNRTogJCh0b3guZW52KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvYmVuY2gucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9iZW5jaC9iZW5jaC5weQppbmRleCA0ZTcyNDQ0ZTdkN2EyN2NmNGE4MTc0
YWJkOTE2NGE1ZjMyZWJmM2VhLi40NjhlZjUyMTk1N2YwODg0ZDgwNmI1MWQ3MmFhYWY3YTZkMjRl
MDk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9iZW5jaC5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9iZW5jaC9iZW5jaC5weQpAQCAtMSwzICsxLDQgQEAKKyMgLSotIGNvZGluZzogdXRmLTgg
LSotCiBpbXBvcnQgc3lzCiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CkBAIC01LDcgKzYs
NyBAQCBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIGltcG9ydCBweXRlc3QgICMgTk9R
QQogICAgIGltcG9ydCBwc3RhdHMKIAotICAgIHNjcmlwdCA9IHN5cy5hcmd2WzE6XSBpZiBsZW4o
c3lzLmFyZ3YpID4gMSBlbHNlICJlbXB0eS5weSIKKyAgICBzY3JpcHQgPSBzeXMuYXJndlsxOl0g
aWYgbGVuKHN5cy5hcmd2KSA+IDEgZWxzZSBbImVtcHR5LnB5Il0KICAgICBzdGF0cyA9IGNQcm9m
aWxlLnJ1bigicHl0ZXN0LmNtZGxpbmUubWFpbiglcikiICUgc2NyaXB0LCAicHJvZiIpCiAgICAg
cCA9IHBzdGF0cy5TdGF0cygicHJvZiIpCiAgICAgcC5zdHJpcF9kaXJzKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2JlbmNoL2JlbmNoX2FyZ2NvbXBsZXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVu
Y2gvYmVuY2hfYXJnY29tcGxldGUucHkKaW5kZXggNDk1ZTJjNGVkM2IxMzA2MWZlZDhjNDE3Zjk4
Y2UxNWUyNGQ5ZjRhZC4uMjk3NjM3YmFkMGQ2NzRjMGE4Mjg5YzEwMjY3YjI4NWVjOWE1YjY3NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvYmVuY2hfYXJnY29tcGxldGUucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvYmVuY2gvYmVuY2hfYXJnY29tcGxldGUucHkKQEAgLTEsMTAgKzEsOCBAQAot
Ci0KKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAjIDEwMDAwIGl0ZXJhdGlvbnMsIGp1c3QgZm9y
IHJlbGF0aXZlIGNvbXBhcmlzb24KICMgICAgICAgICAgICAgICAgICAgICAgMi43LjUgICAgIDMu
My4yCiAjIEZpbGVzQ29tcGxldGVyICAgICAgIDc1LjExMDkgICA2OS4yMTE2CiAjIEZhc3RGaWxl
c0NvbXBsZXRlciAgICAwLjczODMgICAgMS4wNzYwCi0KIGltcG9ydCB0aW1laXQKIAogaW1wb3J0
cyA9IFsKQEAgLTE5LDQgKzE3LDQgQEAgcnVuID0gJ2ZjKCIvZCIpJwogCiBpZiBfX25hbWVfXyA9
PSAiX19tYWluX18iOgogICAgIHByaW50KHRpbWVpdC50aW1laXQocnVuLCBzZXR1cD1zZXR1cCAl
IGltcG9ydHNbMF0sIG51bWJlcj1jb3VudCkpCi0gICAgcHJpbnQoKHRpbWVpdC50aW1laXQocnVu
LCBzZXR1cD1zZXR1cCAlIGltcG9ydHNbMV0sIG51bWJlcj1jb3VudCkpKQorICAgIHByaW50KHRp
bWVpdC50aW1laXQocnVuLCBzZXR1cD1zZXR1cCAlIGltcG9ydHNbMV0sIG51bWJlcj1jb3VudCkp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9lbXB0eS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Jl
bmNoL2VtcHR5LnB5CmluZGV4IGI5MDMxOTkzNmIzZTBiMjUwMzVkNDQxNjdkYTI4MjAxYmFmOTMw
NTEuLmJmZGE4ODIzNWRlYzU5NzkyMDc2YTEwMTZjZjY4YjUzYTcxMTEwMzkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2JlbmNoL2VtcHR5LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2VtcHR5
LnB5CkBAIC0xLDQgKzEsMyBAQAotaW1wb3J0IHB5Ci0KKyMgLSotIGNvZGluZzogdXRmLTggLSot
CiBmb3IgaSBpbiByYW5nZSgxMDAwKToKLSAgICBweS5idWlsdGluLmV4ZWNfKCJkZWYgdGVzdF9m
dW5jXyVkKCk6IHBhc3MiICUgaSkKKyAgICBleGVjKCJkZWYgdGVzdF9mdW5jXyVkKCk6IHBhc3Mi
ICUgaSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL21hbnlwYXJhbS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2JlbmNoL21hbnlwYXJhbS5weQppbmRleCBhMjViMDk4ZGU4NjhlMTU5ZTQ0M2EyNDE5
YzVmYzdhMTQ1Zjc3ZGNlLi5jNDdlMjVmNTE4Mjc5NDMyYmRkMGRhNjJiNDQxMGVjMTliMTM4MzFh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9tYW55cGFyYW0ucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvYmVuY2gvbWFueXBhcmFtLnB5CkBAIC0xLDQgKzEsNCBAQAotCisjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQogaW1wb3J0IHB5dGVzdAogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Jl
bmNoL3NraXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9za2lwLnB5CmluZGV4IGIxMDVlNzlmODJl
YmY5ZjY1Yjg2NGE5NGIxNGY0ODRkY2MyYzYzNmMuLjI5ZTAzZTU0ZmM2NjNhY2IzYzI1MTc1Y2Ey
N2M4OWE2ZTA3ZDZmODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL3NraXAucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvYmVuY2gvc2tpcC5weQpAQCAtMSw2ICsxLDcgQEAKKyMgLSotIGNvZGlu
ZzogdXRmLTggLSotCiBmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgcmFuZ2UKLWltcG9ydCBweXRlc3QK
IAoraW1wb3J0IHB5dGVzdAogCiBTS0lQID0gVHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9jaGFuZ2Vsb2cvUkVBRE1FLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy9SRUFETUUucnN0
CmluZGV4IGUzNGJkNGRhMjY3Y2ZmOTA2YzZhMzJkMTlkY2ExNzQ0ZjM5YzRjMTguLmU0NzE0MDli
MDIzYzkxMDM2ZGUyNWQwNDkyNTAxMjdhYTYwZGU5NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2NoYW5nZWxvZy9SRUFETUUucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy9SRUFETUUu
cnN0CkBAIC0xNCw3ICsxNCw4IEBAIEVhY2ggZmlsZSBzaG91bGQgYmUgbmFtZWQgbGlrZSBgYDxJ
U1NVRT4uPFRZUEU+LnJzdGBgLCB3aGVyZQogKiBgYGZlYXR1cmVgYDogbmV3IHVzZXIgZmFjaW5n
IGZlYXR1cmVzLCBsaWtlIG5ldyBjb21tYW5kLWxpbmUgb3B0aW9ucyBhbmQgbmV3IGJlaGF2aW9y
LgogKiBgYGJ1Z2ZpeGBgOiBmaXhlcyBhIHJlcG9ydGVkIGJ1Zy4KICogYGBkb2NgYDogZG9jdW1l
bnRhdGlvbiBpbXByb3ZlbWVudCwgbGlrZSByZXdvcmRpbmcgYW4gZW50aXJlIHNlc3Npb24gb3Ig
YWRkaW5nIG1pc3NpbmcgZG9jcy4KLSogYGByZW1vdmFsYGA6IGZlYXR1cmUgZGVwcmVjYXRpb24g
b3IgcmVtb3ZhbC4KKyogYGBkZXByZWNhdGlvbmBgOiBmZWF0dXJlIGRlcHJlY2F0aW9uLgorKiBg
YHJlbW92YWxgYDogZmVhdHVyZSByZW1vdmFsLgogKiBgYHZlbmRvcmBgOiBjaGFuZ2VzIGluIHBh
Y2thZ2VzIHZlbmRvcmVkIGluIHB5dGVzdC4KICogYGB0cml2aWFsYGA6IGZpeGluZyBhIHNtYWxs
IHR5cG8gb3IgaW50ZXJuYWwgY2hhbmdlIHRoYXQgbWlnaHQgYmUgbm90ZXdvcnRoeS4KIApAQCAt
MjYsNyArMjcsNyBAQCBjaGFuZ2Vsb2cgdXNpbmcgdGhhdCBpbnN0ZWFkLgogCiBJZiB5b3UgYXJl
IG5vdCBzdXJlIHdoYXQgaXNzdWUgdHlwZSB0byB1c2UsIGRvbid0IGhlc2l0YXRlIHRvIGFzayBp
biB5b3VyIFBSLgogCi1Ob3RlIHRoYXQgdGhlIGBgdG93bmNyaWVyYGAgdG9vbCB3aWxsIGF1dG9t
YXRpY2FsbHkKLXJlZmxvdyB5b3VyIHRleHQsIHNvIGl0IHdpbGwgd29yayBiZXN0IGlmIHlvdSBz
dGljayB0byBhIHNpbmdsZSBwYXJhZ3JhcGgsIGJ1dCBtdWx0aXBsZSBzZW50ZW5jZXMgYW5kIGxp
bmtzIGFyZSBPSwotYW5kIGVuY291cmFnZWQuIFlvdSBjYW4gaW5zdGFsbCBgYHRvd25jcmllcmBg
IGFuZCB0aGVuIHJ1biBgYHRvd25jcmllciAtLWRyYWZ0YGAKK2BgdG93bmNyaWVyYGAgcHJlc2Vy
dmVzIG11bHRpcGxlIHBhcmFncmFwaHMgYW5kIGZvcm1hdHRpbmcgKGNvZGUgYmxvY2tzLCBsaXN0
cywgYW5kIHNvIG9uKSwgYnV0IGZvciBlbnRyaWVzCitvdGhlciB0aGFuIGBgZmVhdHVyZXNgYCBp
dCBpcyB1c3VhbGx5IGJldHRlciB0byBzdGljayB0byBhIHNpbmdsZSBwYXJhZ3JhcGggdG8ga2Vl
cCBpdCBjb25jaXNlLiBZb3UgY2FuIGluc3RhbGwKK2BgdG93bmNyaWVyYGAgYW5kIHRoZW4gcnVu
IGBgdG93bmNyaWVyIC0tZHJhZnRgYAogaWYgeW91IHdhbnQgdG8gZ2V0IGEgcHJldmlldyBvZiBo
b3cgeW91ciBjaGFuZ2Ugd2lsbCBsb29rIGluIHRoZSBmaW5hbCByZWxlYXNlIG5vdGVzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nL190ZW1wbGF0ZS5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9jaGFuZ2Vsb2cvX3RlbXBsYXRlLnJzdAppbmRleCBhODk4YWJjMTVhZjE3MTIzZTdhNDdmYTRk
ODk2NjE1Y2E1YmMwYTVhLi41ZGU0YWU5N2VhOGRjN2VjZTU5MmU2Yzc4NTFhYmYzOWFmMzE4NTIw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvX3RlbXBsYXRlLnJzdAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9jaGFuZ2Vsb2cvX3RlbXBsYXRlLnJzdApAQCAtMTQsNyArMTQsNyBAQAogeyUg
aWYgZGVmaW5pdGlvbnNbY2F0ZWdvcnldWydzaG93Y29udGVudCddICV9CiB7JSBmb3IgdGV4dCwg
dmFsdWVzIGluIHNlY3Rpb25zW3NlY3Rpb25dW2NhdGVnb3J5XXxkaWN0c29ydChieT0ndmFsdWUn
KSAlfQogeyUgc2V0IGlzc3VlX2pvaW5lciA9IGpvaW5lcignLCAnKSAlfQotLSB7eyB0ZXh0IH19
eyUgaWYgY2F0ZWdvcnkgIT0gJ3ZlbmRvcicgJX0gKHslIGZvciB2YWx1ZSBpbiB2YWx1ZXN8c29y
dCAlfXt7IGlzc3VlX2pvaW5lcigpIH19YHt7IHZhbHVlIH19IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzL3t7IHZhbHVlWzE6XSB9fT5gX3slIGVuZGZvciAlfSl7
JSBlbmRpZiAlfQorLSB7JSBmb3IgdmFsdWUgaW4gdmFsdWVzfHNvcnQgJX17eyBpc3N1ZV9qb2lu
ZXIoKSB9fWB7eyB2YWx1ZSB9fSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy97eyB2YWx1ZVsxOl0gfX0+YF97JSBlbmRmb3IgJX06IHt7IHRleHQgfX0KIAogCiB7
JSBlbmRmb3IgJX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NvZGVjb3YueW1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvY29kZWNvdi55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBhMzA4NTg4ZTIwMTI3Y2M3YWQwYWI1ODM1
NmI2YjY3NzM5MWJlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NvZGVjb3YueW1s
CkBAIC0wLDAgKzEsNyBAQAorY292ZXJhZ2U6CisgIHN0YXR1czoKKyAgICBwcm9qZWN0OiB0cnVl
CisgICAgcGF0Y2g6IHRydWUKKyAgICBjaGFuZ2VzOiB0cnVlCisKK2NvbW1lbnQ6IG9mZgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL01ha2VmaWxlIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L01ha2VmaWxlCmluZGV4IGZhOGU4MjY2YTI5ZTcxZjQ5ZDcwZTc5Y2FmZWUwZGE0NGU1Zjc4ZWEu
LjM0MWE1Y2I4NTI0MzFkYWUwYmUwN2VkMzQ2ZmJjMjA5NDM0YWRmODggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9NYWtlZmlsZQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vTWFrZWZp
bGUKQEAgLTEzLDYgKzEzLDkgQEAgUEFQRVJPUFRfbGV0dGVyID0gLUQgbGF0ZXhfcGFwZXJfc2l6
ZT1sZXR0ZXIKIEFMTFNQSElOWE9QVFMgICA9IC1kICQoQlVJTERESVIpL2RvY3RyZWVzICQoUEFQ
RVJPUFRfJChQQVBFUikpICQoU1BISU5YT1BUUykgLgogCiBSRUdFTkRPQ19BUkdTIDo9IFwKKwkt
LW5vcm1hbGl6ZSAiL1sgXHRdK1xuL1xuLyIgXAorCS0tbm9ybWFsaXplICJ+XCQkUkVHRU5ET0Nf
VE1QRElSfi9ob21lL3N3ZWV0L3Byb2plY3R+IiBcCisJLS1ub3JtYWxpemUgIn4vcGF0aC90by9l
eGFtcGxlfi9ob21lL3N3ZWV0L3Byb2plY3R+IiBcCiAJLS1ub3JtYWxpemUgIi9pbiBcZCsuXGQr
IHNlY29uZHMvaW4gMC4xMiBzZWNvbmRzLyIgXAogCS0tbm9ybWFsaXplICJAL3RtcC9weXRlc3Qt
b2YtLiovcHl0ZXN0LVxkK0BQWVRFU1RfVE1QRElSQCIgXAogCS0tbm9ybWFsaXplICJAcHl0ZXN0
LShcZCspXFwuW14gLF0rQHB5dGVzdC1cMS54LnlAIiBcCkBAIC0zOCw4ICs0MSw5IEBAIGhlbHA6
CiBjbGVhbjoKIAktcm0gLXJmICQoQlVJTERESVIpLyoKIAorcmVnZW46IFJFR0VORE9DX0ZJTEVT
Oj0qLnJzdCAqLyoucnN0CiByZWdlbjoKLQlQWVRIT05ET05UV1JJVEVCWVRFQ09ERT0xIFBZVEVT
VF9BRERPUFQ9LXBubzpoeXBvdGhlc2lzIENPTFVNTlM9NzYgcmVnZW5kb2MgLS11cGRhdGUgKi5y
c3QgKi8qLnJzdCAke1JFR0VORE9DX0FSR1N9CisJUFlUSE9ORE9OVFdSSVRFQllURUNPREU9MSBQ
WVRFU1RfQURET1BUUz0iLXBubzpoeXBvdGhlc2lzIC1XaWdub3JlOjpweXRlc3QuUHl0ZXN0VW5r
bm93bk1hcmtXYXJuaW5nIiBDT0xVTU5TPTc2IHJlZ2VuZG9jIC0tdXBkYXRlICR7UkVHRU5ET0Nf
RklMRVN9ICR7UkVHRU5ET0NfQVJHU30KIAogaHRtbDoKIAkkKFNQSElOWEJVSUxEKSAtYiBodG1s
ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL190aGVtZXMvZmxhc2tfdGhlbWVfc3VwcG9ydC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9fdGhlbWVzL2ZsYXNrX3RoZW1lX3N1cHBvcnQucHkKaW5kZXggMGRjZjUzYjc1NDJiNzA5
M2UyYmQ4OTYxNWU1MzIwMjM2MDU0MTdlYi4uYzVkY2RiZTI3MzcwYmQzNzUxZTU0MzZiYmM5ZTZi
MDJmOWY4NGYxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2tf
dGhlbWVfc3VwcG9ydC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFza190
aGVtZV9zdXBwb3J0LnB5CkBAIC0xLDE5ICsxLDE4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0q
LQogIyBmbGFza3kgZXh0ZW5zaW9ucy4gIGZsYXNreSBweWdtZW50cyBzdHlsZSBiYXNlZCBvbiB0
YW5nbyBzdHlsZQogZnJvbSBweWdtZW50cy5zdHlsZSBpbXBvcnQgU3R5bGUKLWZyb20gcHlnbWVu
dHMudG9rZW4gaW1wb3J0ICgKLSAgICBLZXl3b3JkLAotICAgIE5hbWUsCi0gICAgQ29tbWVudCwK
LSAgICBTdHJpbmcsCi0gICAgRXJyb3IsCi0gICAgTnVtYmVyLAotICAgIE9wZXJhdG9yLAotICAg
IEdlbmVyaWMsCi0gICAgV2hpdGVzcGFjZSwKLSAgICBQdW5jdHVhdGlvbiwKLSAgICBPdGhlciwK
LSAgICBMaXRlcmFsLAotKQorZnJvbSBweWdtZW50cy50b2tlbiBpbXBvcnQgQ29tbWVudAorZnJv
bSBweWdtZW50cy50b2tlbiBpbXBvcnQgRXJyb3IKK2Zyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0
IEdlbmVyaWMKK2Zyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0IEtleXdvcmQKK2Zyb20gcHlnbWVu
dHMudG9rZW4gaW1wb3J0IExpdGVyYWwKK2Zyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0IE5hbWUK
K2Zyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0IE51bWJlcgorZnJvbSBweWdtZW50cy50b2tlbiBp
bXBvcnQgT3BlcmF0b3IKK2Zyb20gcHlnbWVudHMudG9rZW4gaW1wb3J0IE90aGVyCitmcm9tIHB5
Z21lbnRzLnRva2VuIGltcG9ydCBQdW5jdHVhdGlvbgorZnJvbSBweWdtZW50cy50b2tlbiBpbXBv
cnQgU3RyaW5nCitmcm9tIHB5Z21lbnRzLnRva2VuIGltcG9ydCBXaGl0ZXNwYWNlCiAKIAogY2xh
c3MgRmxhc2t5U3R5bGUoU3R5bGUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL2luZGV4LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9pbmRleC5yc3QK
aW5kZXggMTA3ZmNkMmFkMzNmN2VjY2NjY2Y2YWIxOGU1ZDNmNDgzNzQ5YjMyZi4uNzRhZDAyODU1
MDlmZTUzNjA2OTU2ODA5OGI5NjgzZjVlMzcwOGYxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL2luZGV4LnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvaW5kZXgucnN0CkBAIC02LDYgKzYsNDcgQEAgUmVsZWFzZSBhbm5vdW5jZW1lbnRzCiAgICA6
bWF4ZGVwdGg6IDIKIAogCisgICByZWxlYXNlLTQuNi4xMQorICAgcmVsZWFzZS00LjYuMTAKKyAg
IHJlbGVhc2UtNC42LjkKKyAgIHJlbGVhc2UtNC42LjgKKyAgIHJlbGVhc2UtNC42LjcKKyAgIHJl
bGVhc2UtNC42LjYKKyAgIHJlbGVhc2UtNC42LjUKKyAgIHJlbGVhc2UtNC42LjQKKyAgIHJlbGVh
c2UtNC42LjMKKyAgIHJlbGVhc2UtNC42LjIKKyAgIHJlbGVhc2UtNC42LjEKKyAgIHJlbGVhc2Ut
NC42LjAKKyAgIHJlbGVhc2UtNC41LjAKKyAgIHJlbGVhc2UtNC40LjIKKyAgIHJlbGVhc2UtNC40
LjEKKyAgIHJlbGVhc2UtNC40LjAKKyAgIHJlbGVhc2UtNC4zLjEKKyAgIHJlbGVhc2UtNC4zLjAK
KyAgIHJlbGVhc2UtNC4yLjEKKyAgIHJlbGVhc2UtNC4yLjAKKyAgIHJlbGVhc2UtNC4xLjEKKyAg
IHJlbGVhc2UtNC4xLjAKKyAgIHJlbGVhc2UtNC4wLjIKKyAgIHJlbGVhc2UtNC4wLjEKKyAgIHJl
bGVhc2UtNC4wLjAKKyAgIHJlbGVhc2UtMy4xMC4xCisgICByZWxlYXNlLTMuMTAuMAorICAgcmVs
ZWFzZS0zLjkuMworICAgcmVsZWFzZS0zLjkuMgorICAgcmVsZWFzZS0zLjkuMQorICAgcmVsZWFz
ZS0zLjkuMAorICAgcmVsZWFzZS0zLjguMgorICAgcmVsZWFzZS0zLjguMQorICAgcmVsZWFzZS0z
LjguMAorICAgcmVsZWFzZS0zLjcuNAorICAgcmVsZWFzZS0zLjcuMworICAgcmVsZWFzZS0zLjcu
MgorICAgcmVsZWFzZS0zLjcuMQorICAgcmVsZWFzZS0zLjcuMAorICAgcmVsZWFzZS0zLjYuNAor
ICAgcmVsZWFzZS0zLjYuMwogICAgcmVsZWFzZS0zLjYuMgogICAgcmVsZWFzZS0zLjYuMQogICAg
cmVsZWFzZS0zLjYuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi40LjAucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40
LjAucnN0CmluZGV4IDI1ZjYyNTRjNTI5OWI4ZmJiNzc4MGJmODcxYmRiMmJmYzljODhhYmMuLjFi
MDE2ODg0MTQ2ZjQxNTNkZDM1NzliZDg5YjY5M2U1ZWI2ZDdkNzEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNC4wLnJzdAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjQuMC5yc3QKQEAgLTIzLDcgKzIzLDcgQEAgYSBm
dWxsIGxpc3Qgb2YgZGV0YWlscy4gIEEgZmV3IGZlYXR1cmUgaGlnaGxpZ2h0czoKICAgY2FsbGVk
IGlmIHRoZSBjb3JyZXNwb25kaW5nIHNldHVwIG1ldGhvZCBzdWNjZWVkZWQuCiAKIC0gaW50ZWdy
YXRlIHRhYi1jb21wbGV0aW9uIG9uIGNvbW1hbmQgbGluZSBvcHRpb25zIGlmIHlvdQotICBoYXZl
IGBhcmdjb21wbGV0ZSA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2FyZ2NvbXBsZXRlPmBf
CisgIGhhdmUgYGFyZ2NvbXBsZXRlIDxodHRwczovL3B5cGkub3JnL3Byb2plY3QvYXJnY29tcGxl
dGUvPmBfCiAgIGNvbmZpZ3VyZWQuCiAKIC0gYWxsb3cgYm9vbGVhbiBleHByZXNzaW9uIGRpcmVj
dGx5IHdpdGggc2tpcGlmL3hmYWlsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0yLjkuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0yLjkuMC5yc3QKaW5kZXggOGQ4Mjk5OTZkODNjZGYzYmY5ZDUyYTY0OTY4NjI4MTljMzk5
NDBmZS4uYzA3OWZkZjZiZmQ2MmQ4ZDYyMDM0MDA1YWEzNzkwZTMzYWMyNzhhZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjAucnN0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4wLnJzdApAQCAtMTI0LDcgKzEy
NCw3IEBAIFRoZSBweS50ZXN0IERldmVsb3BtZW50IFRlYW0KICAgVGhhbmtzIGBAYmllcm5gXyBm
b3IgdGhlIFBSLgogCiAqIEZpeCBgdHJhY2ViYWNrIHN0eWxlIGRvY3NgXyB0byBkZXNjcmliZSBh
bGwgb2YgdGhlIGF2YWlsYWJsZSBvcHRpb25zCi0gIChhdXRvL2xvbmcvc2hvcnQvbGluZS9uYXRp
dmUvbm8pLCB3aXRoIGBhdXRvYCBiZWluZyB0aGUgZGVmYXVsdCBzaW5jZSB2Mi42LgorICAoYXV0
by9sb25nL3Nob3J0L2xpbmUvbmF0aXZlL25vKSwgd2l0aCBgYGF1dG9gYCBiZWluZyB0aGUgZGVm
YXVsdCBzaW5jZSB2Mi42LgogICBUaGFua3MgYEBoYWNrZWJyb3RgXyBmb3IgdGhlIFBSLgogCiAq
IEZpeCAoYCMxNDIyYF8pOiBqdW5pdCByZWNvcmRfeG1sX3Byb3BlcnR5IGRvZXNuJ3QgYWxsb3cg
bXVsdGlwbGUgcmVjb3JkcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMy4xMC4wLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTMuMTAuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUzZGYyNzAyMTk2N2VkMzk3YTMzOWMzNzZhNjdmZTk5
OGNkMGY4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTMuMTAuMC5yc3QKQEAgLTAsMCArMSw0MyBAQAorcHl0ZXN0LTMuMTAuMAorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBweXRlc3QgdGVhbSBpcyBw
cm91ZCB0byBhbm5vdW5jZSB0aGUgMy4xMC4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVy
ZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdhaW5z
dCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0
Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFu
ZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBh
dCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0
L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2Ugdmlz
aXQ6CisKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0FzIHVzdWFs
LCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5
dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFt
b25nIHRoZW06CisKKyogQW5kZXJzIEhvdm3DtmxsZXIKKyogQW5kcmV1IFZhbGxib25hIFBsYXph
cworKiBBbmtpdCBHb2VsCisqIEFudGhvbnkgU290dGlsZQorKiBCZXJuYXJkbyBHb21lcworKiBC
cmlhbm5hIExhdWdoZXIKKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorKiBEYXZp
ZCBTem90dGVuCisqIE1pY2sgS29jaAorKiBOaWNsYXMgT2xvZnNzb24KKyogUGFsYXNoIENoYXR0
ZXJqZWUKKyogUm9ubnkgUGZhbm5zY2htaWR0CisqIFN2ZW4tSGVuZHJpayBIYWFzZQorKiBWaWxs
ZSBTa3l0dMOkCisqIFdpbGxpYW0gSmFtaXIgU2lsdmEKKworCitIYXBweSB0ZXN0aW5nLAorVGhl
IFB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjEwLjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMy4xMC4xLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTZiMjRhZTE1YmNmNzBjZGI2MzhkOWQ0
OGY0MGRmNGUwZTgzZDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMy4xMC4xLnJzdApAQCAtMCwwICsxLDI0IEBACitweXRlc3QtMy4xMC4x
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDMuMTAu
MSBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJl
bGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlw
IGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxh
YmxlIGF0IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4K
KworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0
aGVtOgorCisqIEFudGhvbnkgU290dGlsZQorKiBCb3JpcyBGZWxkCisqIEJydW5vIE9saXZlaXJh
CisqIERhbmllbCBIYWhsZXIKKyogRmFiaWVuIFpBUklGSUFOCisqIEpvbiBEdWZyZXNuZQorKiBS
b25ueSBQZmFubnNjaG1pZHQKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9w
bWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0zLjYuMy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMy5y
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDdiYjA1YTNkNzJiODJmYjE4ZTU2MTA5YzVlYjBiMDBkNGVhZGM2NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMu
Ni4zLnJzdApAQCAtMCwwICsxLDI3IEBACitweXRlc3QtMy42LjMKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgMy42LjMgaGFzIGp1c3QgYmVlbiByZWxl
YXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3At
aW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBw
eXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5
dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBj
b250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQWRhbUVyOAorKiBB
bnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogSmVhbi1QYXVsIENhbGRlcm9uZQor
KiBKb24gRHVmcmVzbmUKKyogTWFyY2VsbyBEdWFydGUgVHJldmlzYW5pCisqIE9uZMWZZWogU8O6
a3VwCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBULkUuQSBkZSBTb3V6YQorKiBWaWN0b3IgTWFy
eWFtYQorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuNi40LnJzdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuNi40LnJzdApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZDZjZmY1MDMwNTUzMjBhNmE5MWFiMzJhOTgxMTVkMjQ2NDMxODMxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy42LjQucnN0CkBAIC0w
LDAgKzEsMjQgQEAKK3B5dGVzdC0zLjYuNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKK3B5dGVzdCAzLjYuNCBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEku
CisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVu
dC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUg
ZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRv
IHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUKKyogQmVybmhh
cmQgTS4gV2llZGVtYW5uCisqIEJydW5vIE9saXZlaXJhCisqIERyZXcKKyogRSBIZXJzaGV5Cisq
IEh1Z28gTWFydGlucworKiBWbGFkIFNoY2hlcmJpbmEKKworCitIYXBweSB0ZXN0aW5nLAorVGhl
IHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjcuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0zLjcuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIyYjIyNTE3ZTljNDlkMDVmMjkxNTI0ZDkx
MWQ2ZWE3NzQzZjg1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTMuNy4wLnJzdApAQCAtMCwwICsxLDQxIEBACitweXRlc3QtMy43LjAKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0g
aXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDMuNy4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1h
dHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdh
aW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBw
bGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVz
IGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9v
ayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVz
dC9jaGFuZ2Vsb2cuaHRtbAorCitGb3IgY29tcGxldGUgZG9jdW1lbnRhdGlvbiwgcGxlYXNlIHZp
c2l0OgorCisgICAgaHR0cDovL2RvY3MucHl0ZXN0Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1
cGdyYWRlIGZyb20gcHlwaSB2aWE6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhh
bmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgor
CisqIEFsYW4KKyogQWxhbiBCcmFtbWVyCisqIEFtbWFyIE5hamphcgorKiBBbnRob255IFNvdHRp
bGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogSmVmZnJleSBSYWNrYXVja2FzCisqIEthbGUgS3VuZGVy
dAorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogU2VyaGlpIE1vemdob3Z5aQorKiBUYWRlayBUZWxl
xbx5xYRza2kKKyogV2lsIENvb2xleQorKiBhYnJhbW1lcgorKiBhdmlybHJtYQorKiB0dXJ0dXJp
Y2EKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIFB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMS5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMS5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTFjMzUxMjNkYmZhNjVkMGJjNDIyOTJlZjMxYmM2NmQ2MjNmNDQwNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuNy4xLnJzdApAQCAtMCww
ICsxLDIxIEBACitweXRlc3QtMy43LjEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitweXRlc3QgMy43LjEgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgor
CitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQu
IFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1
bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0
ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0
aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5vIE9s
aXZlaXJhCisqIEthbGUgS3VuZGVydAorKiBSb25ueSBQZmFubnNjaG1pZHQKKworCitIYXBweSB0
ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY3ZTA3NDRkNTBkZTg4
Yjc0MjgzZGQ4MTdjMGM0MTY5NjY4MzJiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuNy4yLnJzdApAQCAtMCwwICsxLDI1IEBACitweXRl
c3QtMy43LjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRl
c3QgMy43LjIgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVn
LWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6Ogor
CisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlz
IGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5o
dG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFt
b25nIHRoZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5vIE9saXZlaXJhCisqIERhbmll
bCBIYWhsZXIKKyogSm9zaCBIb2xsYW5kCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBTYW5rdCBQ
ZXRlcnNidWcKKyogV2VzIFRob21hcworKiB0dXJ0dXJpY2EKKworCitIYXBweSB0ZXN0aW5nLAor
VGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0zLjcuMy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU0ZDRmZGZlZTczOTg0MzcwNDhkYWQw
MTM2ZGJkNTEzZWM0MDY2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTMuNy4zLnJzdApAQCAtMCwwICsxLDMyIEBACitweXRlc3QtMy43LjMK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgMy43LjMg
aGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxl
YXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBp
bnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJs
ZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitU
aGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06
CisKKyogQW5kcmV3IENoYW1waW9uCisqIEFudGhvbnkgU290dGlsZQorKiBCcnVubyBPbGl2ZWly
YQorKiBEYW5pZWwgSGFobGVyCisqIEdhbmRhbGYgU2F4ZQorKiBKZW5uaWZlciBSaW5rZXIKKyog
TmF0YW4gTGFvCisqIE9uZMWZZWogU8O6a3VwCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBTYW5r
dCBQZXRlcnNidWcKKyogVHlsZXIgUmljaGFyZAorKiBWaWN0b3IgTWFyeWFtYQorKiBWbGFkIFNo
Y2hlcmJpbmEKKyogdHVydHVyaWNhCisqIHdpbSBnbGVubgorCisKK0hhcHB5IHRlc3RpbmcsCitU
aGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTMuNy40LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTMuNy40LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYWI4OTM4ZjRmNjk5ZGE0OWE5NGFlNDU4
NmI5NWU0ZmY1M2Q1NzBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMy43LjQucnN0CkBAIC0wLDAgKzEsMjIgQEAKK3B5dGVzdC0zLjcuNAor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCAzLjcuNCBo
YXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVh
c2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGlu
c3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxl
IGF0IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKwor
VGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVt
OgorCisqIEFudGhvbnkgU290dGlsZQorKiBCcnVubyBPbGl2ZWlyYQorKiBEYW5pZWwgSGFobGVy
CisqIEppcmkgS3VuY2FyCisqIFN0ZXZlIFBpZXJjeQorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUg
cHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTMuOC4wLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTMuOC4wLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmMzNDRlYTIzZTg4MmZkNGRkMzdiZWUyODQy
OWM3Mjc3MTExM2YyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMy44LjAucnN0CkBAIC0wLDAgKzEsMzggQEAKK3B5dGVzdC0zLjguMAorPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBweXRlc3QgdGVhbSBp
cyBwcm91ZCB0byBhbm5vdW5jZSB0aGUgMy44LjAgcmVsZWFzZSEKKworcHl0ZXN0IGlzIGEgbWF0
dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAyMDAwIHRlc3RzCithZ2Fp
bnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBs
YXRmb3Jtcy4KKworVGhpcyByZWxlYXNlIGNvbnRhaW5zIGEgbnVtYmVyIG9mIGJ1Z3MgZml4ZXMg
YW5kIGltcHJvdmVtZW50cywgc28gdXNlcnMgYXJlIGVuY291cmFnZWQKK3RvIHRha2UgYSBsb29r
IGF0IHRoZSBDSEFOR0VMT0c6CisKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRl
c3QvY2hhbmdlbG9nLmh0bWwKKworRm9yIGNvbXBsZXRlIGRvY3VtZW50YXRpb24sIHBsZWFzZSB2
aXNpdDoKKworICAgIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC8KKworQXMgdXN1
YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOgorCisgICAgcGlwIGluc3RhbGwgLVUg
cHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwg
YW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogQ3Jh
enlNZXJseW4KKyogRGFuaWVsIEhhaGxlcgorKiBGYWJpbyBaYWRyb3pueQorKiBKZWZmcmV5IFJh
Y2thdWNrYXMKKyogUm9ubnkgUGZhbm5zY2htaWR0CisqIFZpcmdpbCBEdXByYXMKKyogZGhpcmVu
c3IKKyogaG9lZmxpbmcKKyogd2ltIGdsZW5uCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBQeXRl
c3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMy44LjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMy44LjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMDVlNThjYjNmMDU1MzA0OTdiM2IzNDVhYjk4ODRj
Nzc5ZmI1ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0zLjguMS5yc3QKQEAgLTAsMCArMSwyNSBAQAorcHl0ZXN0LTMuOC4xCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDMuOC4xIGhhcyBqdXN0
IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVp
bmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAt
LXVwZ3JhZGUgcHl0ZXN0CisKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0
cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3Mg
dG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyog
QW5raXQgR29lbAorKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVs
IEhhaGxlcgorKiBNYXhpbWlsaWFuIEFsYmVydAorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogV2ls
bGlhbSBKYW1pciBTaWx2YQorKiB3aW0gZ2xlbm4KKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5
dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0zLjguMi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0zLjguMi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTI0YzMzYWE0MGVhOTNlZWNiYTY2ODdhMjJiNjgz
MTVhY2IwZmRkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTMuOC4yLnJzdApAQCAtMCwwICsxLDI4IEBACitweXRlc3QtMy44LjIKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgMy44LjIgaGFzIGp1
c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBi
ZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxs
IC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBo
dHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5r
cyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKwor
KiBBbmtpdCBHb2VsCisqIEFudGhvbnkgU290dGlsZQorKiBCcnVubyBPbGl2ZWlyYQorKiBEYW5p
ZWwgSGFobGVyCisqIERlbmlzIE90a2lkYWNoCisqIEhhcnJ5IFBlcmNpdmFsCisqIEplZmZyZXkg
UmFja2F1Y2thcworKiBKb3NlIENhcmxvcyBNZW5lemVzCisqIFJvbm55IFBmYW5uc2NobWlkdAor
KiBaYWMtSEQKKyogaXdhbmIKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9w
bWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0zLjkuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMC5y
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTRjZmJlOTAzN2RmOTcwYzZmODhhYzcyMmMyY2ZjNjEzMTk2OWMzOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMu
OS4wLnJzdApAQCAtMCwwICsxLDQzIEBACitweXRlc3QtMy45LjAKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5u
b3VuY2UgdGhlIDMuOS4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVz
dGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBh
c3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1Ro
aXMgcmVsZWFzZSBjb250YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVu
dHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdF
TE9HOgorCisgICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5o
dG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2UgdmlzaXQ6CisKKyAgICBo
dHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVw
Z3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFu
a3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisK
KyogQW5kcmVhIENpbWF0b3JpYnVzCisqIEFua2l0IEdvZWwKKyogQW50aG9ueSBTb3R0aWxlCisq
IEJlbiBFeWFsCisqIEJydW5vIE9saXZlaXJhCisqIERhbmllbCBIYWhsZXIKKyogSmVmZnJleSBS
YWNrYXVja2FzCisqIEpvc2UgQ2FybG9zIE1lbmV6ZXMKKyogS3lsZSBBbHRlbmRvcmYKKyogTmlr
bGFzIEpRCisqIFBhbGFzaCBDaGF0dGVyamVlCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBUaG9t
YXMgSGVzcworKiBUaG9tYXMgSGlzY2gKKyogVG9tZXIgS2VyZW4KKyogVmljdG9yIE1hcnlhbWEK
KworCitIYXBweSB0ZXN0aW5nLAorVGhlIFB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMS5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMS5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA1
MGU0NjUzMDU3MjM0MGFhMmZiODQwODQyYmJlNjgxYjI4MDI3MQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuOS4xLnJzdApAQCAtMCwwICsx
LDIwIEBACitweXRlc3QtMy45LjEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorCitweXRlc3QgMy45LjEgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitU
aGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRv
IHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwg
Y2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRl
c3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRo
aXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBCcnVubyBPbGl2ZWlyYQorKiBSb25ueSBQZmFu
bnNjaG1pZHQKKyogVGhvbWFzIEhpc2NoCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3Qg
RGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMy45LjIucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My45LjIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0NDA4MzFjYjkzMjQxMDM4MzM3ZTY0ZDA4YzRmMzJhYWUy
NjJhNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0zLjkuMi5yc3QKQEAgLTAsMCArMSwyMyBAQAorcHl0ZXN0LTMuOS4yCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDMuOS4yIGhhcyBqdXN0IGJl
ZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcg
YSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVw
Z3JhZGUgcHl0ZXN0CisKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cHM6
Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8g
YWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW5r
aXQgR29lbAorKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogUm9ubnkgUGZh
bm5zY2htaWR0CisqIFZpbmNlbnQgQmFyYmFyZXNpCisqIHlrYW50b3IKKworCitIYXBweSB0ZXN0
aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjkuMy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQ4NGI0Y2FiY2I3ZjE5MDdh
YTNhNTc2YTM3MzQ2NGVmNmFhZDY0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuOS4zLnJzdApAQCAtMCwwICsxLDI0IEBACitweXRlc3Qt
My45LjMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3Qg
My45LjMgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZp
eCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisg
IHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2
YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0
bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1v
bmcgdGhlbToKKworKiBBbmRyZWFzIFByb2ZvdXMKKyogQW5raXQgR29lbAorKiBBbnRob255IFNv
dHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorKiBKb24gRHVmcmVzbmUK
KyogUm9ubnkgUGZhbm5zY2htaWR0CisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2
ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtNC4wLjAucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4w
LjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU1YWQ2OWI1ZmQ2NTM5NTcwMTg0YzU2Mzg2MjRhMzU3NWMxYTAz
NTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS00LjAuMC5yc3QKQEAgLTAsMCArMSwzMCBAQAorcHl0ZXN0LTQuMC4wCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhlIHB5dGVzdCB0ZWFtIGlzIHByb3VkIHRv
IGFubm91bmNlIHRoZSA0LjAuMCByZWxlYXNlIQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9u
IHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDIwMDAgdGVzdHMKK2FnYWluc3QgaXRzZWxm
LCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgor
CitUaGlzIHJlbGVhc2UgY29udGFpbnMgYSBudW1iZXIgb2YgYnVncyBmaXhlcyBhbmQgaW1wcm92
ZW1lbnRzLCBzbyB1c2VycyBhcmUgZW5jb3VyYWdlZAordG8gdGFrZSBhIGxvb2sgYXQgdGhlIENI
QU5HRUxPRzoKKworICAgIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vs
b2cuaHRtbAorCitGb3IgY29tcGxldGUgZG9jdW1lbnRhdGlvbiwgcGxlYXNlIHZpc2l0OgorCisg
ICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0LworCitBcyB1c3VhbCwgeW91IGNh
biB1cGdyYWRlIGZyb20gcHlwaSB2aWE6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKwor
VGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVt
OgorCisqIEJydW5vIE9saXZlaXJhCisqIERhbmllbCBIYWhsZXIKKyogUm9ubnkgUGZhbm5zY2ht
aWR0CisKKworSGFwcHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4wLjEucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4wLjEucnN0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMxYjIyMmMwM2I1MGZjNDQwODVmM2ZkMThkZDY0NTM0YzMzY2JiZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjAuMS5yc3QKQEAgLTAs
MCArMSwyMyBAQAorcHl0ZXN0LTQuMC4xCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworcHl0ZXN0IDQuMC4xIGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4K
KworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50
LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisKK1RoZSBm
dWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0
byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5v
IE9saXZlaXJhCisqIERhbmllbCBIYWhsZXIKKyogTWljaGFlbCBELiBIb3lsZQorKiBSb25ueSBQ
ZmFubnNjaG1pZHQKKyogU2xhbQorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVs
b3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTQuMC4yLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuMC4y
LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zYjZlNGJlNzE4M2ZlODg0N2JhYWQ4ZjJkZWM4MGE3OWY4YWFlMjQz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
NC4wLjIucnN0CkBAIC0wLDAgKzEsMjQgQEAKK3B5dGVzdC00LjAuMgorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCA0LjAuMiBoYXMganVzdCBiZWVuIHJl
bGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJv
cC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRl
IHB5dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9j
cy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3
aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFudGhvbnkg
U290dGlsZQorKiBCcnVubyBPbGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisqIFBlZHJvIEFsZ2Fy
dmlvCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBUb21lciBLZXJlbgorKiBZYXNoIFRvZGkKKwor
CitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjEuMC5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjEuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdhMDc2
ZjYxYzkxMWJhZmE0ZjYwNjlmODlkYjgzZDQ5MjE5M2UzNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuMS4wLnJzdApAQCAtMCwwICsxLDQ0
IEBACitweXRlc3QtNC4xLjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorCitUaGUgcHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDQuMS4wIHJlbGVh
c2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0
aGFuIGEgMjAwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJl
bnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250YWlucyBh
IG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFyZSBlbmNv
dXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0cHM6Ly9k
b2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBk
b2N1bWVudGF0aW9uLCBwbGVhc2UgdmlzaXQ6CisKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9y
Zy9lbi9sYXRlc3QvCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToK
KworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmli
dXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQWRhbSBKb2huc29uCisqIEFs
eSBTaXZqaQorKiBBbmRyZXkgUGFyYW1vbm92CisqIEFudGhvbnkgU290dGlsZQorKiBCcnVubyBP
bGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisqIERhdmlkIFZvCisqIEh5dW5jaGVsIEtpbQorKiBK
ZWZmcmV5IFJhY2thdWNrYXMKKyogS2FuZ3Vyb3MKKyogTmljaG9sYXMgRGV2ZW5pc2gKKyogUGVk
cm8gQWxnYXJ2aW8KKyogUmFuZHkgQmFybG93CisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBUb21l
ciBLZXJlbgorKiBmZXVpbGxlbW9ydGUKKyogd2ltIGdsZW5uCisKKworSGFwcHkgdGVzdGluZywK
K1RoZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtNC4xLjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtNC4xLjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwNjQ0ZmM4NGVmNWNkOWQ3NTIwNGU1
Mjg0MDcyYWMyZGFiMzQ1YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS00LjEuMS5yc3QKQEAgLTAsMCArMSwyNyBAQAorcHl0ZXN0LTQuMS4x
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDQuMS4x
IGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVs
ZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAg
aW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFi
bGUgYXQgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgor
CitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRo
ZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEFudG9uIExvZGRlcgorKiBCcnVubyBPbGl2ZWly
YQorKiBEYW5pZWwgSGFobGVyCisqIERhdmlkIFZvCisqIE9zY2FyIEJlbmphbWluCisqIFJvbm55
IFBmYW5uc2NobWlkdAorKiBWaWN0b3IgTWFyeWFtYQorKiBZb2F2IENhc3BpCisqIGRtaXRyeS5k
eWdhbG8KKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjIuMC5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjIuMC5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmMyNjJjMWUwMWJkMjBmZjg3OGFmYjQ5MjFiNDhmODcxNWMwNmVmZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuMi4wLnJzdApAQCAt
MCwwICsxLDM3IEBACitweXRlc3QtNC4yLjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDQu
Mi4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdp
dGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFu
eSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBj
b250YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJz
IGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAg
aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBj
b21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2UgdmlzaXQ6CisKKyAgICBodHRwczovL2RvY3Mu
cHl0ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBw
eXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdo
byBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQWRhbSBVaGxp
cgorKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogQ2hyaXN0b3BoZXIgRGln
bmFtCisqIERhbmllbCBIYWhsZXIKKyogSm9zZXBoIEh1bmtlbGVyCisqIEtyaXN0b2ZmZXIgTm9y
ZHN0cm9lbQorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogVGhvbWFzIEhpc2NoCisqIHdpbSBnbGVu
bgorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgUHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuMi4xLnJzdCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuMi4xLnJzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YWVjMDIyZGYwYmU5ZWZhOGRlNjgwMDRmNzFhNTA5NDg4MTY1ZGQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4yLjEucnN0CkBAIC0wLDAg
KzEsMzAgQEAKK3B5dGVzdC00LjIuMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKK3B5dGVzdCA0LjIuMSBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisK
K1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4g
VG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVs
bCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xh
dGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8g
dGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFudGhvbnkgU290dGlsZQorKiBBcmVsIENv
cmRlcm8KKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorKiBIb2xnZXIgS29ocgor
KiBLZXZpbiBKLiBGb2xleQorKiBOaWNrIE11cnBoeQorKiBQYXdlxYIgU3RyYWRvbXNraQorKiBS
YXBoYWVsIFBpZXJ6aW5hCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBTYW0gQnJpZ2h0bWFuCisq
IFRob21hcyBIaXNjaAorKiBaYWMgSGF0ZmllbGQtRG9kZHMKKworCitIYXBweSB0ZXN0aW5nLAor
VGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS00LjMuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS00LjMuMC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTkzOTM4MTQ4NDYzZWNjMTliZGQyMTAx
YzQ1NTEzYWY0ZDE1Yzc0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTQuMy4wLnJzdApAQCAtMCwwICsxLDM2IEBACitweXRlc3QtNC4zLjAK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRl
YW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDQuMy4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBh
IG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cwor
YWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFu
ZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250YWlucyBhIG51bWJlciBvZiBidWdzIGZp
eGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEg
bG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVh
c2UgdmlzaXQ6CisKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0Fz
IHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxs
IC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVh
c2UsIGFtb25nIHRoZW06CisKKyogQW5kcmFzIE1pdHpraQorKiBBbnRob255IFNvdHRpbGUKKyog
QnJ1bm8gT2xpdmVpcmEKKyogQ2hyaXN0aWFuIEZldHplcgorKiBEYW5pZWwgSGFobGVyCisqIEdy
eWdvcmlpIEllcm1vbGVua28KKyogUi4gQWxleCBNYXRldmlzaAorKiBSb25ueSBQZmFubnNjaG1p
ZHQKKyogY2NsYXVzcworCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgUHl0ZXN0IERldmVsb3BtZW50
IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQu
My4xLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuMy4xLnJzdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NWQxNGZmZmVkOWQ4OTUzOWI3MmUzM2JkODJjNTU2Zjk5ZjVlMmViCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4zLjEu
cnN0CkBAIC0wLDAgKzEsMjkgQEAKK3B5dGVzdC00LjMuMQorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCA0LjMuMSBoYXMganVzdCBiZWVuIHJlbGVhc2Vk
IHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiBy
ZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVz
dAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9jcy5weXRl
c3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29u
dHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFuZHJhcyBNaXR6a2kK
KyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5vIE9saXZlaXJhCisqIERhbmllbCBIYWhsZXIKKyog
RGFuaWxvIEhvcnRhCisqIEdyeWdvcmlpIEllcm1vbGVua28KKyogSmVmZiBIYWxlCisqIEt5bGUg
QWx0ZW5kb3JmCisqIFN0ZXBoYW4gSG95ZXIKKyogWmFjIEhhdGZpZWxkLURvZGRzCisqIFphYy1I
RAorKiBzb25nYm93ZW4KKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVu
dCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00
LjQuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMC5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGM1YmNiYzdkMzVhMzNiMGU3NTYyM2M0ZWJjMjhjZjgyMjEyMjhkYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNC4w
LnJzdApAQCAtMCwwICsxLDM5IEBACitweXRlc3QtNC40LjAKKz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3Vu
Y2UgdGhlIDQuNC4wIHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGlu
ZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Np
bmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMg
cmVsZWFzZSBjb250YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMs
IHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9H
OgorCisgICAgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1s
CisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2UgdmlzaXQ6CisKKyAgICBodHRw
czovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3Jh
ZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3Mg
dG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyog
QW50aG9ueSBTb3R0aWxlCisqIEFwYURvY3RvcgorKiBCZXJuaGFyZCBNLiBXaWVkZW1hbm4KKyog
QnJpYW4gU2tpbm4KKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorKiBHYXJ5IFR5
bGVyCisqIEplb25nIFl1bldvbgorKiBNaXJvIEhyb27EjW9rCisqIFRha2FmdW1pIEFyYWtha2kK
KyogaGVucnlraXJvbmRlCisqIHNtaGVpZHJpY2gKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIFB5
dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS00LjQuMS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS00LjQuMS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJjMGVlNzc5OGI2ZTIxYjMzM2U5NmYzYjdjNDU2
NTdiOTdjNDUwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTQuNC4xLnJzdApAQCAtMCwwICsxLDIwIEBACitweXRlc3QtNC40LjEKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgNC40LjEgaGFzIGp1
c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBi
ZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxs
IC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBo
dHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5r
cyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKwor
KiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorCisK
K0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNC4yLnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNC4yLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmUyZGFj
NTZiM2E5NTJmNmM0ZDk4MDVlYmEzNmJmNTJhMWZlZWVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC40LjIucnN0CkBAIC0wLDAgKzEsMzMg
QEAKK3B5dGVzdC00LjQuMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKK3B5dGVzdCA0LjQuMiBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMg
aXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBn
cmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVsbCBjaGFu
Z2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9j
aGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyBy
ZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFsbGFuIExld2lzCisqIEFudGhvbnkgU290dGlsZQor
KiBCcnVubyBPbGl2ZWlyYQorKiBEYW1pYW5Ta3J6eXBjemFrCisqIERhbmllbCBIYWhsZXIKKyog
RG9uIEtpcmtieQorKiBEb3VnbGFzIFRob3IKKyogSHVnbworKiBJbHlhIEtvbnN0YW50aW5vdgor
KiBKb24gRHVmcmVzbmUKKyogTWF0dCBDb29wZXIKKyogTmlrb2xheSBLb25kcmF0eWV2CisqIE9u
ZMWZZWogU8O6a3VwCisqIFBldGVyIFNjaHV0dAorKiBSb21haW4gQ2hvc3NhcnQKKyogU2l0YWt0
aWYKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjUuMC5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjUuMC5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDg0NTc5YWM0MTlhN2NiOGRmZDgyZjMyNGQxMTA1OWQ4ZTM2NmNhZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNS4wLnJzdApAQCAtMCww
ICsxLDM1IEBACitweXRlc3QtNC41LjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDQuNS4w
IHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGgg
bW9yZSB0aGFuIGEgMjAwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBk
aWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250
YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFy
ZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0
cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21w
bGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2UgdmlzaXQ6CisKKyAgICBodHRwczovL2RvY3MucHl0
ZXN0Lm9yZy9lbi9sYXRlc3QvCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBp
IHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBj
b250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW50aG9ueSBTb3R0
aWxlCisqIEJydW5vIE9saXZlaXJhCisqIERhbmllbCBIYWhsZXIKKyogRmxvcmlzIEJydXlub29n
aGUKKyogUHVsa2l0IEdveWFsCisqIFNhbXVlbCBTZWFybGVzLUJyeWFudAorKiBaYWMgSGF0Zmll
bGQtRG9kZHMKKyogWmFjLUhECisKKworSGFwcHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2ZWxv
cG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtNC42LjAucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjAu
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM3M2Y1ZDY2ZWI3NGFlZTU5MmJkNjI4M2FjOWU0OTIyODc3ZjY2ZDYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00
LjYuMC5yc3QKQEAgLTAsMCArMSw0MyBAQAorcHl0ZXN0LTQuNi4wCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhlIHB5dGVzdCB0ZWFtIGlzIHByb3VkIHRvIGFu
bm91bmNlIHRoZSA0LjYuMCByZWxlYXNlIQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRl
c3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDIwMDAgdGVzdHMKK2FnYWluc3QgaXRzZWxmLCBw
YXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgorCitU
aGlzIHJlbGVhc2UgY29udGFpbnMgYSBudW1iZXIgb2YgYnVncyBmaXhlcyBhbmQgaW1wcm92ZW1l
bnRzLCBzbyB1c2VycyBhcmUgZW5jb3VyYWdlZAordG8gdGFrZSBhIGxvb2sgYXQgdGhlIENIQU5H
RUxPRzoKKworICAgIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cu
aHRtbAorCitGb3IgY29tcGxldGUgZG9jdW1lbnRhdGlvbiwgcGxlYXNlIHZpc2l0OgorCisgICAg
aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0LworCitBcyB1c3VhbCwgeW91IGNhbiB1
cGdyYWRlIGZyb20gcHlwaSB2aWE6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhh
bmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgor
CisqIEFraW9taSBLYW1ha3VyYQorKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEK
KyogRGFuaWVsIEhhaGxlcgorKiBEYXZpZCBSw7Z0aGxpc2JlcmdlcgorKiBFdmFuIEtlcG5lcgor
KiBKZWZmcmV5IFJhY2thdWNrYXMKKyogTXlDb21wdXRlcgorKiBOaWtpdGEgS3Jva29zaAorKiBS
YXVsIFRhbWJyZQorKiBUaG9tYXMgSGlzY2gKKyogVGltIEhvZmZtYW5uCisqIFRvbWVyIEtlcmVu
CisqIFZpY3RvciBNYXJ5YW1hCisqIGRhbmllbHgxMjMKKyogb2xlZy15ZWdvcm92CisKKworSGFw
cHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjEucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4ZDAxNzU0NGQy
MGRmMWUzMzJmYzUwMWYxMDhmM2NhZGIzNjMyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMS5yc3QKQEAgLTAsMCArMSwxOSBAQAor
cHl0ZXN0LTQuNi4xCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
cHl0ZXN0IDQuNi4xIGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBh
IGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRl
OjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisKK1RoZSBmdWxsIGNoYW5nZWxv
ZyBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5n
ZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVh
c2UsIGFtb25nIHRoZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEJydW5vIE9saXZlaXJhCisK
KworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjEwLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi4xMC5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc5
MzhiODc1MWEyNzg4OTcwY2UwYWNkYzk5ZDhjMGVhZTg1MTJkNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi4xMC5yc3QKQEAgLTAsMCAr
MSwyMCBAQAorcHl0ZXN0LTQuNi4xMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKK3B5dGVzdCA0LjYuMTAgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgor
CitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQu
IFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1
bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRv
IHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8g
T2xpdmVpcmEKKyogRmVybmFuZG8gTWV6CisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3Qg
RGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtNC42LjExLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTQuNi4xMS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc2NTg0YmRmNTIzNTU1NzgwMjc0MDYwZDMzM2NkMjg0
MTJjMjdiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTQuNi4xMS5yc3QKQEAgLTAsMCArMSwyMCBAQAorcHl0ZXN0LTQuNi4xMQorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCA0LjYuMTEgaGFzIGp1
c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBi
ZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxs
IC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBo
dHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5r
cyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKwor
KiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogU3ZpYXRvc2xhdiBTeWRvcmVu
a28KKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMi5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMi5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODUyNjU3OWI5ZTc3OTBjZDMxMTY0NjE3MWYwM2Y1YWExYjMxYmFmZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi4yLnJzdApAQCAtMCww
ICsxLDE4IEBACitweXRlc3QtNC42LjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitweXRlc3QgNC42LjIgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgor
CitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQu
IFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1
bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRv
IHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUKKworCitIYXBw
eSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMy5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJmYjM1NWExNWFk
OWRjZTUyOTBmNmQ3NmNmMTE5M2Y0ZDBjODA4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi4zLnJzdApAQCAtMCwwICsxLDIxIEBACitw
eXRlc3QtNC42LjMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitw
eXRlc3QgNC42LjMgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEg
YnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6
OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9n
IGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdl
bG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFz
ZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyog
RGFuaWVsIEhhaGxlcgorKiBEaXJrIFRob21hcworCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0
ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTQuNi40LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTQuNi40LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjM1ZWQ0ZjBkNGMwMjZkYWVkNzM4ZGU5MGVlOTk0
MGZjNjI5OGFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtNC42LjQucnN0CkBAIC0wLDAgKzEsMjIgQEAKK3B5dGVzdC00LjYuNAorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCA0LjYuNCBoYXMganVz
dCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJl
aW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwg
LS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0
dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtz
IHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisq
IEFudGhvbnkgU290dGlsZQorKiBCcnVubyBPbGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisqIFRo
b21hcyBHcmFpbmdlcgorKiBaYWMgSGF0ZmllbGQtRG9kZHMKKworCitIYXBweSB0ZXN0aW5nLAor
VGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuNS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS00LjYuNS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjk5OGQ0ZTRjNWYwYTE0NWJlMzhkMjM5
OTJjNjc4Yzc3ZTZlZjk3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTQuNi41LnJzdApAQCAtMCwwICsxLDIxIEBACitweXRlc3QtNC42LjUK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgNC42LjUg
aGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxl
YXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBp
bnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJs
ZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisK
K1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhl
bToKKworKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxl
cgorKiBUaG9tYXMgR3JhaW5nZXIKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZl
bG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS00LjYuNi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYu
Ni5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzQ3YTMxNjk1YjJhZGZlOTQ4N2Y2ZjVhMzg1MDc4OTcwMWJiNDA2
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTQuNi42LnJzdApAQCAtMCwwICsxLDIwIEBACitweXRlc3QtNC42LjYKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgNC42LjYgaGFzIGp1c3QgYmVlbiBy
ZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRy
b3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFk
ZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2Rv
Y3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwg
d2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255
IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogTWljaGFlbCBHb2VyegorCisKK0hhcHB5IHRl
c3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi43LnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTQuNi43LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTZjZjZhOTUwYTA4NDgy
NGJiNTA0NzBjY2FhMDIxNDFiOWZmOWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjcucnN0CkBAIC0wLDAgKzEsMTkgQEAKK3B5dGVz
dC00LjYuNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVz
dCA0LjYuNyBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWct
Zml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisK
KyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMg
YXZhaWxhYmxlIGF0IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cu
aHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBh
bW9uZyB0aGVtOgorCisqIEJydW5vIE9saXZlaXJhCisqIERhbmllbCBIYWhsZXIKKworCitIYXBw
eSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuOC5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuOC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MwNGU1ZGJlOWI3
MWNiMmQwMGYwNjMxODU2YmFiZWVmNDc2OTViMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi44LnJzdApAQCAtMCwwICsxLDIwIEBACitw
eXRlc3QtNC42LjgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitw
eXRlc3QgNC42LjggaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEg
YnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6
OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKworVGhlIGZ1bGwgY2hhbmdlbG9n
IGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdl
bG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFz
ZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRpbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyog
UnlhbiBNYXN0CisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVh
bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42Ljku
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjkucnN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFlMDQ3OGM1MmQ5MmY4YWE4M2I2ZGJlOGMzMDBkZTBkMTliOGIxMmYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuOS5yc3QK
QEAgLTAsMCArMSwyMSBAQAorcHl0ZXN0LTQuNi45Cis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworcHl0ZXN0IDQuNi45IGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8g
UHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxh
Y2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisK
K1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly9kb2NzLnB5dGVzdC5v
cmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmli
dXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQW50aG9ueSBTb3R0aWxlCisq
IEJydW5vIE9saXZlaXJhCisqIEZlbGl4IFlhbgorKiBIdWdvCisKKworSGFwcHkgdGVzdGluZywK
K1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3czYy1pbXBvcnQubG9nCmluZGV4IDQ2NGM4YmNkNGRjNjczNGIxNTdlZjFkMzgzMGYwOTM5YWVl
NWM1ZDQuLjY5NmM3YTgyNWU3MmMzZDZkYmNkZTIxOGY0ZDZhZDA2ZTIzMGE2YzIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS93M2MtaW1wb3J0LmxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvdzNjLWltcG9ydC5sb2cKQEAgLTY3LDYgKzY3LDggQEAg
TGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjEu
MS5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjEuMi5yc3QKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjEuMy5yc3QKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjEwLjAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMy4xMC4xLnJzdAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTMuMi4wLnJzdAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTMuMi4xLnJzdAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi4yLnJz
dApAQCAtODQsNCArODYsNDMgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjYuMC5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0zLjYuMS5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0z
LjYuMi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMy5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuNC5yc3QKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0zLjcuMi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0zLjcuMy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuNC5y
c3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjguMC5yc3QKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjguMS5yc3QKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjguMi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0zLjkuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0zLjkuMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjku
Mi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMy5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjAuMC5yc3QKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjAuMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS00LjAuMi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS00LjEuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00
LjEuMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjIuMC5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjIuMS5yc3QKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjMuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS00LjMuMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS00LjQuMC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS00LjQuMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMi5y
c3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjUuMC5yc3QKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMC5yc3QKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS00LjYuMTAucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtNC42LjExLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQu
Ni4yLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi4zLnJzdAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi40LnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi41LnJzdAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTQuNi42LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTQuNi43LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTQuNi44LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTQuNi45LnJz
dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9zcHJpbnQyMDE2LnJzdApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fzc2VydC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYXNz
ZXJ0LnJzdAppbmRleCBlMGU5YjkzMDU4NzVlZjgxMmQ4OTYyYjA2ZDI5OGQ1MDI4YmI0NDNiLi4x
ZTA2ZDk3NTdiMzBiMTQ4ZDVhZjk5NjYyOTY0NTBmYjEyMjhlZjZkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYXNzZXJ0LnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYXNzZXJ0
LnJzdApAQCAtMTIsMjIgKzEyLDI4IEBAIEFzc2VydGluZyB3aXRoIHRoZSBgYGFzc2VydGBgIHN0
YXRlbWVudAogCiBgYHB5dGVzdGBgIGFsbG93cyB5b3UgdG8gdXNlIHRoZSBzdGFuZGFyZCBweXRo
b24gYGBhc3NlcnRgYCBmb3IgdmVyaWZ5aW5nCiBleHBlY3RhdGlvbnMgYW5kIHZhbHVlcyBpbiBQ
eXRob24gdGVzdHMuICBGb3IgZXhhbXBsZSwgeW91IGNhbiB3cml0ZSB0aGUKLWZvbGxvd2luZzo6
Citmb2xsb3dpbmc6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVudCBv
ZiB0ZXN0X2Fzc2VydDEucHkKICAgICBkZWYgZigpOgogICAgICAgICByZXR1cm4gMwogCisKICAg
ICBkZWYgdGVzdF9mdW5jdGlvbigpOgogICAgICAgICBhc3NlcnQgZigpID09IDQKIAogdG8gYXNz
ZXJ0IHRoYXQgeW91ciBmdW5jdGlvbiByZXR1cm5zIGEgY2VydGFpbiB2YWx1ZS4gSWYgdGhpcyBh
c3NlcnRpb24gZmFpbHMKLXlvdSB3aWxsIHNlZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5j
dGlvbiBjYWxsOjoKK3lvdSB3aWxsIHNlZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlv
biBjYWxsOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCB0ZXN0X2Fz
c2VydDEucHkKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0
YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0g
UHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICBy
b290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0t
IFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAg
Y2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVH
RU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVkIDEgaXRlbQogCiAgICAgdGVzdF9hc3NlcnQxLnB5
IEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEw
MCVdCkBAIC00MCw3ICs0Niw3IEBAIHlvdSB3aWxsIHNlZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRo
ZSBmdW5jdGlvbiBjYWxsOjoKICAgICBFICAgICAgIGFzc2VydCAzID09IDQKICAgICBFICAgICAg
ICArICB3aGVyZSAzID0gZigpCiAKLSAgICB0ZXN0X2Fzc2VydDEucHk6NTogQXNzZXJ0aW9uRXJy
b3IKKyAgICB0ZXN0X2Fzc2VydDEucHk6NjogQXNzZXJ0aW9uRXJyb3IKICAgICA9PT09PT09PT09
PT09PT09PT09PT09PT09IDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09
PT09PT09PT09CiAKIGBgcHl0ZXN0YGAgaGFzIHN1cHBvcnQgZm9yIHNob3dpbmcgdGhlIHZhbHVl
cyBvZiB0aGUgbW9zdCBjb21tb24gc3ViZXhwcmVzc2lvbnMKQEAgLTQ5LDcgKzU1LDkgQEAgb3Bl
cmF0b3JzLiAoU2VlIDpyZWY6YHRicmVwb3J0ZGVtb2ApLiAgVGhpcyBhbGxvd3MgeW91IHRvIHVz
ZSB0aGUKIGlkaW9tYXRpYyBweXRob24gY29uc3RydWN0cyB3aXRob3V0IGJvaWxlcnBsYXRlIGNv
ZGUgd2hpbGUgbm90IGxvc2luZwogaW50cm9zcGVjdGlvbiBpbmZvcm1hdGlvbi4KIAotSG93ZXZl
ciwgaWYgeW91IHNwZWNpZnkgYSBtZXNzYWdlIHdpdGggdGhlIGFzc2VydGlvbiBsaWtlIHRoaXM6
OgorSG93ZXZlciwgaWYgeW91IHNwZWNpZnkgYSBtZXNzYWdlIHdpdGggdGhlIGFzc2VydGlvbiBs
aWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIGFzc2VydCBhICUgMiA9
PSAwLCAidmFsdWUgd2FzIG9kZCwgc2hvdWxkIGJlIGV2ZW4iCiAKQEAgLTY0LDUwICs3Miw3MSBA
QCBBc3NlcnRpb25zIGFib3V0IGV4cGVjdGVkIGV4Y2VwdGlvbnMKIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBJbiBvcmRlciB0byB3cml0ZSBhc3NlcnRpb25z
IGFib3V0IHJhaXNlZCBleGNlcHRpb25zLCB5b3UgY2FuIHVzZQotYGBweXRlc3QucmFpc2VzYGAg
YXMgYSBjb250ZXh0IG1hbmFnZXIgbGlrZSB0aGlzOjoKK2BgcHl0ZXN0LnJhaXNlc2BgIGFzIGEg
Y29udGV4dCBtYW5hZ2VyIGxpa2UgdGhpczoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAg
ICAgaW1wb3J0IHB5dGVzdAogCisKICAgICBkZWYgdGVzdF96ZXJvX2RpdmlzaW9uKCk6CiAgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6CiAgICAgICAgICAgICAx
IC8gMAogCi1hbmQgaWYgeW91IG5lZWQgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhlIGFjdHVhbCBleGNl
cHRpb24gaW5mbyB5b3UgbWF5IHVzZTo6CithbmQgaWYgeW91IG5lZWQgdG8gaGF2ZSBhY2Nlc3Mg
dG8gdGhlIGFjdHVhbCBleGNlcHRpb24gaW5mbyB5b3UgbWF5IHVzZToKKworLi4gY29kZS1ibG9j
azo6IHB5dGhvbgogCiAgICAgZGVmIHRlc3RfcmVjdXJzaW9uX2RlcHRoKCk6CiAgICAgICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGV4Y2luZm86CisKICAgICAgICAgICAg
IGRlZiBmKCk6CiAgICAgICAgICAgICAgICAgZigpCisKICAgICAgICAgICAgIGYoKQotICAgICAg
ICBhc3NlcnQgJ21heGltdW0gcmVjdXJzaW9uJyBpbiBzdHIoZXhjaW5mby52YWx1ZSkKKyAgICAg
ICAgYXNzZXJ0ICJtYXhpbXVtIHJlY3Vyc2lvbiIgaW4gc3RyKGV4Y2luZm8udmFsdWUpCiAKIGBg
ZXhjaW5mb2BgIGlzIGEgYGBFeGNlcHRpb25JbmZvYGAgaW5zdGFuY2UsIHdoaWNoIGlzIGEgd3Jh
cHBlciBhcm91bmQKIHRoZSBhY3R1YWwgZXhjZXB0aW9uIHJhaXNlZC4gIFRoZSBtYWluIGF0dHJp
YnV0ZXMgb2YgaW50ZXJlc3QgYXJlCiBgYC50eXBlYGAsIGBgLnZhbHVlYGAgYW5kIGBgLnRyYWNl
YmFja2BgLgogCi0uLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMAorWW91IGNhbiBwYXNzIGEgYGBtYXRj
aGBgIGtleXdvcmQgcGFyYW1ldGVyIHRvIHRoZSBjb250ZXh0LW1hbmFnZXIgdG8gdGVzdAordGhh
dCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGVzIG9uIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRp
b24gb2YgYW4gZXhjZXB0aW9uCisoc2ltaWxhciB0byB0aGUgYGBUZXN0Q2FzZS5hc3NlcnRSYWlz
ZXNSZWdleHBgYCBtZXRob2QgZnJvbSBgYHVuaXR0ZXN0YGApOgorCisuLiBjb2RlLWJsb2NrOjog
cHl0aG9uCisKKyAgICBpbXBvcnQgcHl0ZXN0CiAKLUluIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9y
bSB5b3UgbWF5IHVzZSB0aGUga2V5d29yZCBhcmd1bWVudAotYGBtZXNzYWdlYGAgdG8gc3BlY2lm
eSBhIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2U6OgogCi0gICAgID4+PiB3aXRoIHJhaXNlcyhaZXJv
RGl2aXNpb25FcnJvciwgbWVzc2FnZT0iRXhwZWN0aW5nIFplcm9EaXZpc2lvbkVycm9yIik6Ci0g
ICAgIC4uLiAgICAgcGFzcwotICAgICAuLi4gRmFpbGVkOiBFeHBlY3RpbmcgWmVyb0RpdmlzaW9u
RXJyb3IKKyAgICBkZWYgbXlmdW5jKCk6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4Y2Vw
dGlvbiAxMjMgcmFpc2VkIikKIAotSWYgeW91IHdhbnQgdG8gd3JpdGUgdGVzdCBjb2RlIHRoYXQg
d29ya3Mgb24gUHl0aG9uIDIuNCBhcyB3ZWxsLAoteW91IG1heSBhbHNvIHVzZSB0d28gb3RoZXIg
d2F5cyB0byB0ZXN0IGZvciBhbiBleHBlY3RlZCBleGNlcHRpb246OgorCisgICAgZGVmIHRlc3Rf
bWF0Y2goKToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1hdGNoPXIi
LiogMTIzIC4qIik6CisgICAgICAgICAgICBteWZ1bmMoKQorCitUaGUgcmVnZXhwIHBhcmFtZXRl
ciBvZiB0aGUgYGBtYXRjaGBgIG1ldGhvZCBpcyBtYXRjaGVkIHdpdGggdGhlIGBgcmUuc2VhcmNo
YGAKK2Z1bmN0aW9uLCBzbyBpbiB0aGUgYWJvdmUgZXhhbXBsZSBgYG1hdGNoPScxMjMnYGAgd291
bGQgaGF2ZSB3b3JrZWQgYXMKK3dlbGwuCisKK1RoZXJlJ3MgYW4gYWx0ZXJuYXRlIGZvcm0gb2Yg
dGhlIGBgcHl0ZXN0LnJhaXNlc2BgIGZ1bmN0aW9uIHdoZXJlIHlvdSBwYXNzCithIGZ1bmN0aW9u
IHRoYXQgd2lsbCBiZSBleGVjdXRlZCB3aXRoIHRoZSBnaXZlbiBgYCphcmdzYGAgYW5kIGBgKipr
d2FyZ3NgYCBhbmQKK2Fzc2VydCB0aGF0IHRoZSBnaXZlbiBleGNlcHRpb24gaXMgcmFpc2VkOgor
CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBweXRlc3QucmFpc2VzKEV4cGVjdGVkRXhj
ZXB0aW9uLCBmdW5jLCAqYXJncywgKiprd2FyZ3MpCi0gICAgcHl0ZXN0LnJhaXNlcyhFeHBlY3Rl
ZEV4Y2VwdGlvbiwgImZ1bmMoKmFyZ3MsICoqa3dhcmdzKSIpCiAKLWJvdGggb2Ygd2hpY2ggZXhl
Y3V0ZSB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uIHdpdGggYXJncyBhbmQga3dhcmdzIGFuZAotYXNz
ZXJ0cyB0aGF0IHRoZSBnaXZlbiBgYEV4cGVjdGVkRXhjZXB0aW9uYGAgaXMgcmFpc2VkLiAgVGhl
IHJlcG9ydGVyIHdpbGwKLXByb3ZpZGUgeW91IHdpdGggaGVscGZ1bCBvdXRwdXQgaW4gY2FzZSBv
ZiBmYWlsdXJlcyBzdWNoIGFzICpubworVGhlIHJlcG9ydGVyIHdpbGwgcHJvdmlkZSB5b3Ugd2l0
aCBoZWxwZnVsIG91dHB1dCBpbiBjYXNlIG9mIGZhaWx1cmVzIHN1Y2ggYXMgKm5vCiBleGNlcHRp
b24qIG9yICp3cm9uZyBleGNlcHRpb24qLgogCiBOb3RlIHRoYXQgaXQgaXMgYWxzbyBwb3NzaWJs
ZSB0byBzcGVjaWZ5IGEgInJhaXNlcyIgYXJndW1lbnQgdG8KIGBgcHl0ZXN0Lm1hcmsueGZhaWxg
YCwgd2hpY2ggY2hlY2tzIHRoYXQgdGhlIHRlc3QgaXMgZmFpbGluZyBpbiBhIG1vcmUKLXNwZWNp
ZmljIHdheSB0aGFuIGp1c3QgaGF2aW5nIGFueSBleGNlcHRpb24gcmFpc2VkOjoKK3NwZWNpZmlj
IHdheSB0aGFuIGp1c3QgaGF2aW5nIGFueSBleGNlcHRpb24gcmFpc2VkOgorCisuLiBjb2RlLWJs
b2NrOjogcHl0aG9uCiAKICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmFpc2VzPUluZGV4RXJyb3Ip
CiAgICAgZGVmIHRlc3RfZigpOgpAQCAtMTE5LDMwICsxNDgsMTMgQEAgZXhjZXB0aW9ucyB5b3Vy
IG93biBjb2RlIGlzIGRlbGliZXJhdGVseSByYWlzaW5nLCB3aGVyZWFzIHVzaW5nCiBsaWtlIGRv
Y3VtZW50aW5nIHVuZml4ZWQgYnVncyAod2hlcmUgdGhlIHRlc3QgZGVzY3JpYmVzIHdoYXQgInNo
b3VsZCIgaGFwcGVuKQogb3IgYnVncyBpbiBkZXBlbmRlbmNpZXMuCiAKLUFsc28sIHRoZSBjb250
ZXh0IG1hbmFnZXIgZm9ybSBhY2NlcHRzIGEgYGBtYXRjaGBgIGtleXdvcmQgcGFyYW1ldGVyIHRv
IHRlc3QKLXRoYXQgYSByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hlcyBvbiB0aGUgc3RyaW5nIHJl
cHJlc2VudGF0aW9uIG9mIGFuIGV4Y2VwdGlvbgotKGxpa2UgdGhlIGBgVGVzdENhc2UuYXNzZXJ0
UmFpc2VzUmVnZXhwYGAgbWV0aG9kIGZyb20gYGB1bml0dGVzdGBgKTo6Ci0KLSAgICBpbXBvcnQg
cHl0ZXN0Ci0KLSAgICBkZWYgbXlmdW5jKCk6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4
Y2VwdGlvbiAxMjMgcmFpc2VkIikKLQotICAgIGRlZiB0ZXN0X21hdGNoKCk6Ci0gICAgICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtYXRjaD1yJy4qIDEyMyAuKicpOgotICAgICAg
ICAgICAgbXlmdW5jKCkKLQotVGhlIHJlZ2V4cCBwYXJhbWV0ZXIgb2YgdGhlIGBgbWF0Y2hgYCBt
ZXRob2QgaXMgbWF0Y2hlZCB3aXRoIHRoZSBgYHJlLnNlYXJjaGBgCi1mdW5jdGlvbi4gU28gaW4g
dGhlIGFib3ZlIGV4YW1wbGUgYGBtYXRjaD0nMTIzJ2BgIHdvdWxkIGhhdmUgd29ya2VkIGFzCi13
ZWxsLgotCiAKIC4uIF9gYXNzZXJ0d2FybnNgOgogCiBBc3NlcnRpb25zIGFib3V0IGV4cGVjdGVk
IHdhcm5pbmdzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0u
LiB2ZXJzaW9uYWRkZWQ6OiAyLjgKKwogCiBZb3UgY2FuIGNoZWNrIHRoYXQgY29kZSByYWlzZXMg
YSBwYXJ0aWN1bGFyIHdhcm5pbmcgdXNpbmcKIDpyZWY6YHB5dGVzdC53YXJucyA8d2FybnM+YC4K
QEAgLTE1MywyNCArMTY1LDMwIEBAIFlvdSBjYW4gY2hlY2sgdGhhdCBjb2RlIHJhaXNlcyBhIHBh
cnRpY3VsYXIgd2FybmluZyB1c2luZwogTWFraW5nIHVzZSBvZiBjb250ZXh0LXNlbnNpdGl2ZSBj
b21wYXJpc29ucwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAyLjAKKwogCiBgYHB5dGVzdGBgIGhhcyByaWNoIHN1
cHBvcnQgZm9yIHByb3ZpZGluZyBjb250ZXh0LXNlbnNpdGl2ZSBpbmZvcm1hdGlvbgotd2hlbiBp
dCBlbmNvdW50ZXJzIGNvbXBhcmlzb25zLiAgRm9yIGV4YW1wbGU6Ogord2hlbiBpdCBlbmNvdW50
ZXJzIGNvbXBhcmlzb25zLiAgRm9yIGV4YW1wbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24K
IAogICAgICMgY29udGVudCBvZiB0ZXN0X2Fzc2VydDIucHkKIAorCiAgICAgZGVmIHRlc3Rfc2V0
X2NvbXBhcmlzb24oKToKICAgICAgICAgc2V0MSA9IHNldCgiMTMwOCIpCiAgICAgICAgIHNldDIg
PSBzZXQoIjgwMzUiKQogICAgICAgICBhc3NlcnQgc2V0MSA9PSBzZXQyCiAKLWlmIHlvdSBydW4g
dGhpcyBtb2R1bGU6OgoraWYgeW91IHJ1biB0aGlzIG1vZHVsZToKKworLi4gY29kZS1ibG9jazo6
IHB5dGVzdAogCiAgICAgJCBweXRlc3QgdGVzdF9hc3NlcnQyLnB5CiAgICAgPT09PT09PT09PT09
PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55
LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00Lngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8u
cHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3Rl
ZCAxIGl0ZW0KIAogICAgIHRlc3RfYXNzZXJ0Mi5weSBGICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtMTg5LDcgKzIwNyw3IEBAIGlm
IHlvdSBydW4gdGhpcyBtb2R1bGU6OgogICAgIEUgICAgICAgICAnNScKICAgICBFICAgICAgICAg
VXNlIC12IHRvIGdldCB0aGUgZnVsbCBkaWZmCiAKLSAgICB0ZXN0X2Fzc2VydDIucHk6NTogQXNz
ZXJ0aW9uRXJyb3IKKyAgICB0ZXN0X2Fzc2VydDIucHk6NjogQXNzZXJ0aW9uRXJyb3IKICAgICA9
PT09PT09PT09PT09PT09PT09PT09PT09IDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09
PT09PT09PT09PT09PT09PT09CiAKIFNwZWNpYWwgY29tcGFyaXNvbnMgYXJlIGRvbmUgZm9yIGEg
bnVtYmVyIG9mIGNhc2VzOgpAQCAtMjAwLDggKzIxOCw4IEBAIFNwZWNpYWwgY29tcGFyaXNvbnMg
YXJlIGRvbmUgZm9yIGEgbnVtYmVyIG9mIGNhc2VzOgogCiBTZWUgdGhlIDpyZWY6YHJlcG9ydGlu
ZyBkZW1vIDx0YnJlcG9ydGRlbW8+YCBmb3IgbWFueSBtb3JlIGV4YW1wbGVzLgogCi1EZWZpbmlu
ZyB5b3VyIG93biBhc3NlcnRpb24gY29tcGFyaXNvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRGVmaW5pbmcgeW91ciBvd24gZXhwbGFuYXRpb24gZm9y
IGZhaWxlZCBhc3NlcnRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogSXQgaXMgcG9zc2libGUgdG8gYWRkIHlvdXIgb3duIGRldGFpbGVk
IGV4cGxhbmF0aW9ucyBieSBpbXBsZW1lbnRpbmcKIHRoZSBgYHB5dGVzdF9hc3NlcnRyZXByX2Nv
bXBhcmVgYCBob29rLgpAQCAtMjEwLDE2ICsyMjgsMjEgQEAgdGhlIGBgcHl0ZXN0X2Fzc2VydHJl
cHJfY29tcGFyZWBgIGhvb2suCiAgICA6bm9pbmRleDoKIAogQXMgYW4gZXhhbXBsZSBjb25zaWRl
ciBhZGRpbmcgdGhlIGZvbGxvd2luZyBob29rIGluIGEgOnJlZjpgY29uZnRlc3QucHkgPGNvbmZ0
ZXN0LnB5PmAKLWZpbGUgd2hpY2ggcHJvdmlkZXMgYW4gYWx0ZXJuYXRpdmUgZXhwbGFuYXRpb24g
Zm9yIGBgRm9vYGAgb2JqZWN0czo6CitmaWxlIHdoaWNoIHByb3ZpZGVzIGFuIGFsdGVybmF0aXZl
IGV4cGxhbmF0aW9uIGZvciBgYEZvb2BgIG9iamVjdHM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRo
b24KIAogICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CiAgICBmcm9tIHRlc3RfZm9vY29tcGFy
ZSBpbXBvcnQgRm9vCisKKwogICAgZGVmIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUob3AsIGxl
ZnQsIHJpZ2h0KToKICAgICAgICBpZiBpc2luc3RhbmNlKGxlZnQsIEZvbykgYW5kIGlzaW5zdGFu
Y2UocmlnaHQsIEZvbykgYW5kIG9wID09ICI9PSI6Ci0gICAgICAgICAgIHJldHVybiBbJ0NvbXBh
cmluZyBGb28gaW5zdGFuY2VzOicsCi0gICAgICAgICAgICAgICAgICAgJyAgIHZhbHM6ICVzICE9
ICVzJyAlIChsZWZ0LnZhbCwgcmlnaHQudmFsKV0KKyAgICAgICAgICAgcmV0dXJuIFsiQ29tcGFy
aW5nIEZvbyBpbnN0YW5jZXM6IiwgIiAgIHZhbHM6ICVzICE9ICVzIiAlIChsZWZ0LnZhbCwgcmln
aHQudmFsKV0KIAotbm93LCBnaXZlbiB0aGlzIHRlc3QgbW9kdWxlOjoKK25vdywgZ2l2ZW4gdGhp
cyB0ZXN0IG1vZHVsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAjIGNvbnRlbnQg
b2YgdGVzdF9mb29jb21wYXJlLnB5CiAgICBjbGFzcyBGb28ob2JqZWN0KToKQEAgLTIyOSwxMyAr
MjUyLDE2IEBAIG5vdywgZ2l2ZW4gdGhpcyB0ZXN0IG1vZHVsZTo6CiAgICAgICAgZGVmIF9fZXFf
XyhzZWxmLCBvdGhlcik6CiAgICAgICAgICAgIHJldHVybiBzZWxmLnZhbCA9PSBvdGhlci52YWwK
IAorCiAgICBkZWYgdGVzdF9jb21wYXJlKCk6CiAgICAgICAgZjEgPSBGb28oMSkKICAgICAgICBm
MiA9IEZvbygyKQogICAgICAgIGFzc2VydCBmMSA9PSBmMgogCiB5b3UgY2FuIHJ1biB0aGUgdGVz
dCBtb2R1bGUgYW5kIGdldCB0aGUgY3VzdG9tIG91dHB1dCBkZWZpbmVkIGluCi10aGUgY29uZnRl
c3QgZmlsZTo6Cit0aGUgY29uZnRlc3QgZmlsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAog
CiAgICAkIHB5dGVzdCAtcSB0ZXN0X2Zvb2NvbXBhcmUucHkKICAgIEYgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAl
XQpAQCAtMjQ5LDUxICsyNzUsNzMgQEAgdGhlIGNvbmZ0ZXN0IGZpbGU6OgogICAgRSAgICAgICBh
c3NlcnQgQ29tcGFyaW5nIEZvbyBpbnN0YW5jZXM6CiAgICBFICAgICAgICAgICAgdmFsczogMSAh
PSAyCiAKLSAgIHRlc3RfZm9vY29tcGFyZS5weToxMTogQXNzZXJ0aW9uRXJyb3IKKyAgIHRlc3Rf
Zm9vY29tcGFyZS5weToxMjogQXNzZXJ0aW9uRXJyb3IKICAgIDEgZmFpbGVkIGluIDAuMTIgc2Vj
b25kcwogCiAuLiBfYXNzZXJ0LWRldGFpbHM6CiAuLiBfYGFzc2VydCBpbnRyb3NwZWN0aW9uYDoK
IAotQWR2YW5jZWQgYXNzZXJ0aW9uIGludHJvc3BlY3Rpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK0Fzc2VydGlvbiBpbnRyb3NwZWN0aW9uIGRldGFpbHMKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAyLjEKIAogCiBS
ZXBvcnRpbmcgZGV0YWlscyBhYm91dCBhIGZhaWxpbmcgYXNzZXJ0aW9uIGlzIGFjaGlldmVkIGJ5
IHJld3JpdGluZyBhc3NlcnQKIHN0YXRlbWVudHMgYmVmb3JlIHRoZXkgYXJlIHJ1bi4gIFJld3Jp
dHRlbiBhc3NlcnQgc3RhdGVtZW50cyBwdXQgaW50cm9zcGVjdGlvbgogaW5mb3JtYXRpb24gaW50
byB0aGUgYXNzZXJ0aW9uIGZhaWx1cmUgbWVzc2FnZS4gIGBgcHl0ZXN0YGAgb25seSByZXdyaXRl
cyB0ZXN0Ci1tb2R1bGVzIGRpcmVjdGx5IGRpc2NvdmVyZWQgYnkgaXRzIHRlc3QgY29sbGVjdGlv
biBwcm9jZXNzLCBzbyBhc3NlcnRzIGluCi1zdXBwb3J0aW5nIG1vZHVsZXMgd2hpY2ggYXJlIG5v
dCB0aGVtc2VsdmVzIHRlc3QgbW9kdWxlcyB3aWxsIG5vdCBiZSByZXdyaXR0ZW4uCittb2R1bGVz
IGRpcmVjdGx5IGRpc2NvdmVyZWQgYnkgaXRzIHRlc3QgY29sbGVjdGlvbiBwcm9jZXNzLCBzbyAq
KmFzc2VydHMgaW4KK3N1cHBvcnRpbmcgbW9kdWxlcyB3aGljaCBhcmUgbm90IHRoZW1zZWx2ZXMg
dGVzdCBtb2R1bGVzIHdpbGwgbm90IGJlIHJld3JpdHRlbioqLgogCi0uLiBub3RlOjoKK1lvdSBj
YW4gbWFudWFsbHkgZW5hYmxlIGFzc2VydGlvbiByZXdyaXRpbmcgZm9yIGFuIGltcG9ydGVkIG1v
ZHVsZSBieSBjYWxsaW5nCitgcmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGUgPGh0dHBzOi8vZG9jcy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5nX3BsdWdpbnMuaHRtbCNhc3NlcnRpb24tcmV3cml0
aW5nPmBfCitiZWZvcmUgeW91IGltcG9ydCBpdCAoYSBnb29kIHBsYWNlIHRvIGRvIHRoYXQgaXMg
aW4geW91ciByb290IGBgY29uZnRlc3QucHlgYCkuCiAKLSAgIGBgcHl0ZXN0YGAgcmV3cml0ZXMg
dGVzdCBtb2R1bGVzIG9uIGltcG9ydCBieSB1c2luZyBhbiBpbXBvcnQKLSAgIGhvb2sgdG8gd3Jp
dGUgbmV3IGBgcHljYGAgZmlsZXMuIE1vc3Qgb2YgdGhlIHRpbWUgdGhpcyB3b3JrcyB0cmFuc3Bh
cmVudGx5LgotICAgSG93ZXZlciwgaWYgeW91IGFyZSBtZXNzaW5nIHdpdGggaW1wb3J0IHlvdXJz
ZWxmLCB0aGUgaW1wb3J0IGhvb2sgbWF5Ci0gICBpbnRlcmZlcmUuCitGb3IgZnVydGhlciBpbmZv
cm1hdGlvbiwgQmVuamFtaW4gUGV0ZXJzb24gd3JvdGUgdXAgYEJlaGluZCB0aGUgc2NlbmVzIG9m
IHB5dGVzdCdzIG5ldyBhc3NlcnRpb24gcmV3cml0aW5nIDxodHRwOi8vcHliaXRlcy5ibG9nc3Bv
dC5jb20vMjAxMS8wNy9iZWhpbmQtc2NlbmVzLW9mLXB5dGVzdHMtbmV3LWFzc2VydGlvbi5odG1s
PmBfLgogCi0gICBJZiB0aGlzIGlzIHRoZSBjYXNlIHlvdSBoYXZlIHR3byBvcHRpb25zOgorQXNz
ZXJ0aW9uIHJld3JpdGluZyBjYWNoZXMgZmlsZXMgb24gZGlzaworfn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCi0gICAqIERpc2FibGUgcmV3cml0aW5nIGZvciBhIHNw
ZWNpZmljIG1vZHVsZSBieSBhZGRpbmcgdGhlIHN0cmluZwotICAgICBgYFBZVEVTVF9ET05UX1JF
V1JJVEVgYCB0byBpdHMgZG9jc3RyaW5nLgorYGBweXRlc3RgYCB3aWxsIHdyaXRlIGJhY2sgdGhl
IHJld3JpdHRlbiBtb2R1bGVzIHRvIGRpc2sgZm9yIGNhY2hpbmcuIFlvdSBjYW4gZGlzYWJsZQor
dGhpcyBiZWhhdmlvciAoZm9yIGV4YW1wbGUgdG8gYXZvaWQgbGVhdmluZyBzdGFsZSBgYC5weWNg
YCBmaWxlcyBhcm91bmQgaW4gcHJvamVjdHMgdGhhdAorbW92ZSBmaWxlcyBhcm91bmQgYSBsb3Qp
IGJ5IGFkZGluZyB0aGlzIHRvIHRoZSB0b3Agb2YgeW91ciBgYGNvbmZ0ZXN0LnB5YGAgZmlsZToK
IAotICAgKiBEaXNhYmxlIHJld3JpdGluZyBmb3IgYWxsIG1vZHVsZXMgYnkgdXNpbmcgYGAtLWFz
c2VydD1wbGFpbmBgLgorLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCi0gICBBZGRpdGlvbmFsbHks
IHJld3JpdGluZyB3aWxsIGZhaWwgc2lsZW50bHkgaWYgaXQgY2Fubm90IHdyaXRlIG5ldyBgYC5w
eWNgYCBmaWxlcywKLSAgIGkuZS4gaW4gYSByZWFkLW9ubHkgZmlsZXN5c3RlbSBvciBhIHppcGZp
bGUuCisgICBpbXBvcnQgc3lzCisKKyAgIHN5cy5kb250X3dyaXRlX2J5dGVjb2RlID0gVHJ1ZQor
CitOb3RlIHRoYXQgeW91IHN0aWxsIGdldCB0aGUgYmVuZWZpdHMgb2YgYXNzZXJ0aW9uIGludHJv
c3BlY3Rpb24sIHRoZSBvbmx5IGNoYW5nZSBpcyB0aGF0Cit0aGUgYGAucHljYGAgZmlsZXMgd29u
J3QgYmUgY2FjaGVkIG9uIGRpc2suCisKK0FkZGl0aW9uYWxseSwgcmV3cml0aW5nIHdpbGwgc2ls
ZW50bHkgc2tpcCBjYWNoaW5nIGlmIGl0IGNhbm5vdCB3cml0ZSBuZXcgYGAucHljYGAgZmlsZXMs
CitpLmUuIGluIGEgcmVhZC1vbmx5IGZpbGVzeXN0ZW0gb3IgYSB6aXBmaWxlLgorCisKK0Rpc2Fi
bGluZyBhc3NlcnQgcmV3cml0aW5nCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitgYHB5
dGVzdGBgIHJld3JpdGVzIHRlc3QgbW9kdWxlcyBvbiBpbXBvcnQgYnkgdXNpbmcgYW4gaW1wb3J0
Citob29rIHRvIHdyaXRlIG5ldyBgYHB5Y2BgIGZpbGVzLiBNb3N0IG9mIHRoZSB0aW1lIHRoaXMg
d29ya3MgdHJhbnNwYXJlbnRseS4KK0hvd2V2ZXIsIGlmIHlvdSBhcmUgd29ya2luZyB3aXRoIHRo
ZSBpbXBvcnQgbWFjaGluZXJ5IHlvdXJzZWxmLCB0aGUgaW1wb3J0IGhvb2sgbWF5CitpbnRlcmZl
cmUuCisKK0lmIHRoaXMgaXMgdGhlIGNhc2UgeW91IGhhdmUgdHdvIG9wdGlvbnM6CisKKyogRGlz
YWJsZSByZXdyaXRpbmcgZm9yIGEgc3BlY2lmaWMgbW9kdWxlIGJ5IGFkZGluZyB0aGUgc3RyaW5n
CisgIGBgUFlURVNUX0RPTlRfUkVXUklURWBgIHRvIGl0cyBkb2NzdHJpbmcuCisKKyogRGlzYWJs
ZSByZXdyaXRpbmcgZm9yIGFsbCBtb2R1bGVzIGJ5IHVzaW5nIGBgLS1hc3NlcnQ9cGxhaW5gYC4K
IAogCi1Gb3IgZnVydGhlciBpbmZvcm1hdGlvbiwgQmVuamFtaW4gUGV0ZXJzb24gd3JvdGUgdXAg
YEJlaGluZCB0aGUgc2NlbmVzIG9mIHB5dGVzdCdzIG5ldyBhc3NlcnRpb24gcmV3cml0aW5nIDxo
dHRwOi8vcHliaXRlcy5ibG9nc3BvdC5jb20vMjAxMS8wNy9iZWhpbmQtc2NlbmVzLW9mLXB5dGVz
dHMtbmV3LWFzc2VydGlvbi5odG1sPmBfLgogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAyLjEKICAgIEFk
ZCBhc3NlcnQgcmV3cml0aW5nIGFzIGFuIGFsdGVybmF0ZSBpbnRyb3NwZWN0aW9uIHRlY2huaXF1
ZS4KIAotLi4gdmVyc2lvbmNoYW5nZWQ6OiAyLjEKKwogICAgSW50cm9kdWNlIHRoZSBgYC0tYXNz
ZXJ0YGAgb3B0aW9uLiBEZXByZWNhdGUgYGAtLW5vLWFzc2VydGBgIGFuZAogICAgYGAtLW5vbWFn
aWNgYC4KIAotLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjAKKwogICAgUmVtb3ZlcyB0aGUgYGAtLW5v
LWFzc2VydGBgIGFuZCBgYC0tbm9tYWdpY2BgIG9wdGlvbnMuCiAgICBSZW1vdmVzIHRoZSBgYC0t
YXNzZXJ0PXJlaW50ZXJwYGAgb3B0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2JhY2t3YXJkcy1jb21wYXRpYmlsaXR5LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9iYWNrd2Fy
ZHMtY29tcGF0aWJpbGl0eS5yc3QKaW5kZXggNTU1MDZlN2MzMzhlZDY1NjA1ZjhiM2NjNGY1NmEz
ZTllOTBlZmRjYi4uNTZhZmQ5OGFmYTc2ZDU2YTZlYTdiYTZmYTA4NDZkYThlN2Y1ZDkyMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2JhY2t3YXJkcy1jb21wYXRpYmlsaXR5LnJzdAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFja3dhcmRzLWNvbXBhdGliaWxpdHkucnN0CkBAIC03
LDE0ICs3LDE2IEBAIEtlZXBpbmcgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaGFzIGEgdmVyeSBo
aWdoIHByaW9yaXR5IGluIHRoZSBweXRlc3QgcHJvamVjdC4KIAogV2l0aCB0aGUgcHl0ZXN0IDMu
MCByZWxlYXNlIHdlIGludHJvZHVjZWQgYSBjbGVhciBjb21tdW5pY2F0aW9uIHNjaGVtZSBmb3Ig
d2hlbiB3ZSB3aWxsIGFjdHVhbGx5IHJlbW92ZSB0aGUgb2xkIGJ1c3RlZCBqb2ludCBhbmQgcG9s
aXRlbHkgYXNrIHlvdSB0byB1c2UgdGhlIG5ldyBob3RuZXNzIGluc3RlYWQsIHdoaWxlIGdpdmlu
ZyB5b3UgZW5vdWdoIHRpbWUgdG8gYWRqdXN0IHlvdXIgdGVzdHMgb3IgcmFpc2UgY29uY2VybnMg
aWYgdGhlcmUgYXJlIHZhbGlkIHJlYXNvbnMgdG8ga2VlcCBkZXByZWNhdGVkIGZ1bmN0aW9uYWxp
dHkgYXJvdW5kLgogCi1UbyBjb21tdW5pY2F0ZSBjaGFuZ2VzIHdlIGFyZSBhbHJlYWR5IGlzc3Vp
bmcgZGVwcmVjYXRpb24gd2FybmluZ3MsIGJ1dCB0aGV5IGFyZSBub3QgZGlzcGxheWVkIGJ5IGRl
ZmF1bHQuIEluIHB5dGVzdCAzLjAgd2UgY2hhbmdlZCB0aGUgZGVmYXVsdCBzZXR0aW5nIHNvIHRo
YXQgcHl0ZXN0IGRlcHJlY2F0aW9uIHdhcm5pbmdzIGFyZSBkaXNwbGF5ZWQgaWYgbm90IGV4cGxp
Y2l0bHkgc2lsZW5jZWQgKHdpdGggYGAtLWRpc2FibGUtcHl0ZXN0LXdhcm5pbmdzYGApLgorVG8g
Y29tbXVuaWNhdGUgY2hhbmdlcyB3ZSBpc3N1ZSBkZXByZWNhdGlvbiB3YXJuaW5ncyB1c2luZyBh
IGN1c3RvbSB3YXJuaW5nIGhpZXJhcmNoeSAoc2VlIDpyZWY6YGludGVybmFsLXdhcm5pbmdzYCku
IFRoZXNlIHdhcm5pbmdzIG1heSBiZSBzdXBwcmVzc2VkIHVzaW5nIHRoZSBzdGFuZGFyZCBtZWFu
czogYGAtV2BgIGNvbW1hbmQtbGluZSBmbGFnIG9yIGBgZmlsdGVyd2FybmluZ3NgYCBpbmkgb3B0
aW9ucyAoc2VlIDpyZWY6YHdhcm5pbmdzYCksIGJ1dCB3ZSBzdWdnZXN0IHRvIHVzZSB0aGVzZSBz
cGFyaW5nbHkgYW5kIHRlbXBvcmFyaWx5LCBhbmQgaGVlZCB0aGUgd2FybmluZ3Mgd2hlbiBwb3Nz
aWJsZS4KIAotV2Ugd2lsbCBvbmx5IHJlbW92ZSBkZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgaW4g
bWFqb3IgcmVsZWFzZXMgKGUuZy4gaWYgd2UgZGVwcmVjYXRlIHNvbWV0aGluZyBpbiAzLjAgd2Ug
d2lsbCByZW1vdmUgaXQgaW4gNC4wKSwgYW5kIGtlZXAgaXQgYXJvdW5kIGZvciBhdCBsZWFzdCB0
d28gbWlub3IgcmVsZWFzZXMgKGUuZy4gaWYgd2UgZGVwcmVjYXRlIHNvbWV0aGluZyBpbiAzLjkg
YW5kIDQuMCBpcyB0aGUgbmV4dCByZWxlYXNlLCB3ZSB3aWxsIG5vdCByZW1vdmUgaXQgaW4gNC4w
IGJ1dCBpbiA1LjApLgorV2Ugd2lsbCBvbmx5IHN0YXJ0IHRoZSByZW1vdmFsIG9mIGRlcHJlY2F0
ZWQgZnVuY3Rpb25hbGl0eSBpbiBtYWpvciByZWxlYXNlcyAoZS5nLiBpZiB3ZSBkZXByZWNhdGUg
c29tZXRoaW5nIGluIDMuMCB3ZSB3aWxsIHN0YXJ0IHRvIHJlbW92ZSBpdCBpbiA0LjApLCBhbmQg
a2VlcCBpdCBhcm91bmQgZm9yIGF0IGxlYXN0IHR3byBtaW5vciByZWxlYXNlcyAoZS5nLiBpZiB3
ZSBkZXByZWNhdGUgc29tZXRoaW5nIGluIDMuOSBhbmQgNC4wIGlzIHRoZSBuZXh0IHJlbGVhc2Us
IHdlIHN0YXJ0IHRvIHJlbW92ZSBpdCBpbiA1LjAsIG5vdCBpbiA0LjApLgorCitXaGVuIHRoZSBk
ZXByZWNhdGlvbiBleHBpcmVzIChlLmcuIDQuMCBpcyByZWxlYXNlZCksIHdlIHdvbid0IHJlbW92
ZSB0aGUgZGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGltbWVkaWF0ZWx5LCBidXQgd2lsbCB1c2Ug
dGhlIHN0YW5kYXJkIHdhcm5pbmcgZmlsdGVycyB0byB0dXJuIHRoZW0gaW50byAqKmVycm9ycyoq
IGJ5IGRlZmF1bHQuIFRoaXMgYXBwcm9hY2ggbWFrZXMgaXQgZXhwbGljaXQgdGhhdCByZW1vdmFs
IGlzIGltbWluZW50LCBhbmQgc3RpbGwgZ2l2ZXMgeW91IHRpbWUgdG8gdHVybiB0aGUgZGVwcmVj
YXRlZCBmZWF0dXJlIGludG8gYSB3YXJuaW5nIGluc3RlYWQgb2YgYW4gZXJyb3Igc28gaXQgY2Fu
IGJlIGRlYWx0IHdpdGggaW4geW91ciBvd24gdGltZS4gSW4gdGhlIG5leHQgbWlub3IgcmVsZWFz
ZSAoZS5nLiA0LjEpLCB0aGUgZmVhdHVyZSB3aWxsIGJlIGVmZmVjdGl2ZWx5IHJlbW92ZWQuCiAK
IAogRGVwcmVjYXRpb24gUm9hZG1hcAogLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1XZSB0cmFjayBk
ZXByZWNhdGlvbiBhbmQgcmVtb3ZhbCBvZiBmZWF0dXJlcyB1c2luZyBtaWxlc3RvbmVzIGFuZCB0
aGUgYGRlcHJlY2F0aW9uIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzP3E9bGFiZWwlM0ElMjJ0eXBlJTNBK2RlcHJlY2F0aW9uJTIyPmBfIGFuZCBgcmVtb3ZhbCA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2xhYmVscy90eXBlJTNBJTIwcmVt
b3ZhbD5gXyBsYWJlbHMgb24gR2l0SHViLgorRmVhdHVyZXMgY3VycmVudGx5IGRlcHJlY2F0ZWQg
YW5kIHJlbW92ZWQgaW4gcHJldmlvdXMgcmVsZWFzZXMgY2FuIGJlIGZvdW5kIGluIDpyZWY6YGRl
cHJlY2F0aW9uc2AuCiAKLUZvbGxvd2luZyBvdXIgZGVwcmVjYXRpb24gcG9saWN5LCBhZnRlciBz
dGFydGluZyBpc3N1aW5nIGRlcHJlY2F0aW9uIHdhcm5pbmdzIHdlIGtlZXAgZmVhdHVyZXMgZm9y
ICphdCBsZWFzdCogdHdvIG1pbm9yIHZlcnNpb25zIGJlZm9yZSBjb25zaWRlcmluZyByZW1vdmFs
LgorV2UgdHJhY2sgZnV0dXJlIGRlcHJlY2F0aW9uIGFuZCByZW1vdmFsIG9mIGZlYXR1cmVzIHVz
aW5nIG1pbGVzdG9uZXMgYW5kIHRoZSBgZGVwcmVjYXRpb24gPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXM/cT1sYWJlbCUzQSUyMnR5cGUlM0ErZGVwcmVjYXRpb24l
MjI+YF8gYW5kIGByZW1vdmFsIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
bGFiZWxzL3R5cGUlM0ElMjByZW1vdmFsPmBfIGxhYmVscyBvbiBHaXRIdWIuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFzaC1jb21wbGV0aW9uLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9iYXNoLWNvbXBsZXRpb24ucnN0CmluZGV4IDA4ZDk3ODIwOTBjYTBhMWM5Mjg5ZjQ2YTE0
NDVhYWQ0N2FlMWY5YTYuLmVhYTA3ODgxNDE0ZGRhZjhjNmYwYTRlYTIxYTgzMjU3YmZlMWEyZGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9iYXNoLWNvbXBsZXRpb24ucnN0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9iYXNoLWNvbXBsZXRpb24ucnN0CkBAIC04LDE4ICs4LDI2IEBA
IFdoZW4gdXNpbmcgYmFzaCBhcyB5b3VyIHNoZWxsLCBgYHB5dGVzdGBgIGNhbiB1c2UgYXJnY29t
cGxldGUKIChodHRwczovL2FyZ2NvbXBsZXRlLnJlYWR0aGVkb2NzLmlvLykgZm9yIGF1dG8tY29t
cGxldGlvbi4KIEZvciB0aGlzIGBgYXJnY29tcGxldGVgYCBuZWVkcyB0byBiZSBpbnN0YWxsZWQg
KiphbmQqKiBlbmFibGVkLgogCi1JbnN0YWxsIGFyZ2NvbXBsZXRlIHVzaW5nOjoKK0luc3RhbGwg
YXJnY29tcGxldGUgdXNpbmc6CiAKLSAgICAgICAgc3VkbyBwaXAgaW5zdGFsbCAnYXJnY29tcGxl
dGU+PTAuNS43JworLi4gY29kZS1ibG9jazo6IGJhc2gKIAotRm9yIGdsb2JhbCBhY3RpdmF0aW9u
IG9mIGFsbCBhcmdjb21wbGV0ZSBlbmFibGVkIHB5dGhvbiBhcHBsaWNhdGlvbnMgcnVuOjoKKyAg
ICBzdWRvIHBpcCBpbnN0YWxsICdhcmdjb21wbGV0ZT49MC41LjcnCisKK0ZvciBnbG9iYWwgYWN0
aXZhdGlvbiBvZiBhbGwgYXJnY29tcGxldGUgZW5hYmxlZCBweXRob24gYXBwbGljYXRpb25zIHJ1
bjoKKworLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgIHN1ZG8gYWN0aXZhdGUtZ2xvYmFsLXB5
dGhvbi1hcmdjb21wbGV0ZQogCi1Gb3IgcGVybWFuZW50IChidXQgbm90IGdsb2JhbCkgYGBweXRl
c3RgYCBhY3RpdmF0aW9uLCB1c2U6OgorRm9yIHBlcm1hbmVudCAoYnV0IG5vdCBnbG9iYWwpIGBg
cHl0ZXN0YGAgYWN0aXZhdGlvbiwgdXNlOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAorCisgICAg
cmVnaXN0ZXItcHl0aG9uLWFyZ2NvbXBsZXRlIHB5dGVzdCA+PiB+Ly5iYXNocmMKIAotICAgICAg
ICByZWdpc3Rlci1weXRob24tYXJnY29tcGxldGUgcHl0ZXN0ID4+IH4vLmJhc2hyYworRm9yIG9u
ZS10aW1lIGFjdGl2YXRpb24gb2YgYXJnY29tcGxldGUgZm9yIGBgcHl0ZXN0YGAgb25seSwgdXNl
OgogCi1Gb3Igb25lLXRpbWUgYWN0aXZhdGlvbiBvZiBhcmdjb21wbGV0ZSBmb3IgYGBweXRlc3Rg
YCBvbmx5LCB1c2U6OgorLi4gY29kZS1ibG9jazo6IGJhc2gKIAotICAgICAgICBldmFsICIkKHJl
Z2lzdGVyLXB5dGhvbi1hcmdjb21wbGV0ZSBweXRlc3QpIgorICAgIGV2YWwgIiQocmVnaXN0ZXIt
cHl0aG9uLWFyZ2NvbXBsZXRlIHB5dGVzdCkiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYnVpbHRpbi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYnVpbHRpbi5yc3QKaW5kZXggYzJk
MjM0NjliYzg0N2MwOTdjMDA3YWEyZWRmMTYxMTk4OGMzMWQxNi4uYTRjMjA2OTVjM2JjZmM3ZWQ5
ODYxOTk3YzFmOGIzYzk1Yzg5YWZlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2J1
aWx0aW4ucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9idWlsdGluLnJzdApAQCAtMTIsNyAr
MTIsOSBAQCBGb3IgaW5mb3JtYXRpb24gb24gcGx1Z2luIGhvb2tzIGFuZCBvYmplY3RzLCBzZWUg
OnJlZjpgcGx1Z2luc2AuCiAKIEZvciBpbmZvcm1hdGlvbiBvbiB0aGUgYGBweXRlc3QubWFya2Bg
IG1lY2hhbmlzbSwgc2VlIDpyZWY6YG1hcmtgLgogCi1Gb3IgaW5mb3JtYXRpb24gYWJvdXQgZml4
dHVyZXMsIHNlZSA6cmVmOmBmaXh0dXJlc2AuIFRvIHNlZSBhIGNvbXBsZXRlIGxpc3Qgb2YgYXZh
aWxhYmxlIGZpeHR1cmVzIChhZGQgYGAtdmBgIHRvIGFsc28gc2VlIGZpeHR1cmVzIHdpdGggbGVh
ZGluZyBgYF9gYCksIHR5cGUgOjoKK0ZvciBpbmZvcm1hdGlvbiBhYm91dCBmaXh0dXJlcywgc2Vl
IDpyZWY6YGZpeHR1cmVzYC4gVG8gc2VlIGEgY29tcGxldGUgbGlzdCBvZiBhdmFpbGFibGUgZml4
dHVyZXMgKGFkZCBgYC12YGAgdG8gYWxzbyBzZWUgZml4dHVyZXMgd2l0aCBsZWFkaW5nIGBgX2Bg
KSwgdHlwZSA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xIC0t
Zml4dHVyZXMKICAgICBjYWNoZQpAQCAtMjUsMzYgKzI3LDQ3IEBAIEZvciBpbmZvcm1hdGlvbiBh
Ym91dCBmaXh0dXJlcywgc2VlIDpyZWY6YGZpeHR1cmVzYC4gVG8gc2VlIGEgY29tcGxldGUgbGlz
dCBvZiBhCiAgICAgICAgIG5hbWUgb2YgeW91ciBwbHVnaW4gb3IgYXBwbGljYXRpb24gdG8gYXZv
aWQgY2xhc2hlcyB3aXRoIG90aGVyIGNhY2hlIHVzZXJzLgogCiAgICAgICAgIFZhbHVlcyBjYW4g
YmUgYW55IG9iamVjdCBoYW5kbGVkIGJ5IHRoZSBqc29uIHN0ZGxpYiBtb2R1bGUuCisKICAgICBj
YXBzeXMKLSAgICAgICAgRW5hYmxlIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gYGBzeXMuc3Rkb3V0
YGAgYW5kIGBgc3lzLnN0ZGVycmBgIGFuZCBtYWtlCi0gICAgICAgIGNhcHR1cmVkIG91dHB1dCBh
dmFpbGFibGUgdmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBgIG1ldGhvZCBjYWxscwotICAgICAg
ICB3aGljaCByZXR1cm4gYSBgYChvdXQsIGVycilgYCBuYW1lZHR1cGxlLiAgYGBvdXRgYCBhbmQg
YGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgCi0gICAgICAgIG9iamVjdHMuCisgICAgICAgIEVuYWJs
ZSB0ZXh0IGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gYGBzeXMuc3Rkb3V0YGAgYW5kIGBgc3lzLnN0
ZGVycmBgLgorCisgICAgICAgIFRoZSBjYXB0dXJlZCBvdXRwdXQgaXMgbWFkZSBhdmFpbGFibGUg
dmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBgIG1ldGhvZAorICAgICAgICBjYWxscywgd2hpY2gg
cmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgbmFtZWR0dXBsZS4KKyAgICAgICAgYGBvdXRgYCBhbmQg
YGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgIG9iamVjdHMuCisKICAgICBjYXBzeXNiaW5hcnkKLSAg
ICAgICAgRW5hYmxlIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gYGBzeXMuc3Rkb3V0YGAgYW5kIGBg
c3lzLnN0ZGVycmBgIGFuZCBtYWtlCi0gICAgICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUg
dmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBgIG1ldGhvZCBjYWxscwotICAgICAgICB3aGljaCBy
ZXR1cm4gYSBgYChvdXQsIGVycilgYCB0dXBsZS4gIGBgb3V0YGAgYW5kIGBgZXJyYGAgd2lsbCBi
ZSBgYGJ5dGVzYGAKLSAgICAgICAgb2JqZWN0cy4KKyAgICAgICAgRW5hYmxlIGJ5dGVzIGNhcHR1
cmluZyBvZiB3cml0ZXMgdG8gYGBzeXMuc3Rkb3V0YGAgYW5kIGBgc3lzLnN0ZGVycmBgLgorCisg
ICAgICAgIFRoZSBjYXB0dXJlZCBvdXRwdXQgaXMgbWFkZSBhdmFpbGFibGUgdmlhIGBgY2Fwc3lz
YmluYXJ5LnJlYWRvdXRlcnIoKWBgCisgICAgICAgIG1ldGhvZCBjYWxscywgd2hpY2ggcmV0dXJu
IGEgYGAob3V0LCBlcnIpYGAgbmFtZWR0dXBsZS4KKyAgICAgICAgYGBvdXRgYCBhbmQgYGBlcnJg
YCB3aWxsIGJlIGBgYnl0ZXNgYCBvYmplY3RzLgorCiAgICAgY2FwZmQKLSAgICAgICAgRW5hYmxl
IGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gZmlsZSBkZXNjcmlwdG9ycyBgYDFgYCBhbmQgYGAyYGAg
YW5kIG1ha2UKLSAgICAgICAgY2FwdHVyZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBmZC5y
ZWFkb3V0ZXJyKClgYCBtZXRob2QgY2FsbHMKLSAgICAgICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0
LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUgYGB0ZXh0YGAKLSAg
ICAgICAgb2JqZWN0cy4KKyAgICAgICAgRW5hYmxlIHRleHQgY2FwdHVyaW5nIG9mIHdyaXRlcyB0
byBmaWxlIGRlc2NyaXB0b3JzIGBgMWBgIGFuZCBgYDJgYC4KKworICAgICAgICBUaGUgY2FwdHVy
ZWQgb3V0cHV0IGlzIG1hZGUgYXZhaWxhYmxlIHZpYSBgYGNhcGZkLnJlYWRvdXRlcnIoKWBgIG1l
dGhvZAorICAgICAgICBjYWxscywgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgbmFtZWR0
dXBsZS4KKyAgICAgICAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgIG9iamVj
dHMuCisKICAgICBjYXBmZGJpbmFyeQotICAgICAgICBFbmFibGUgY2FwdHVyaW5nIG9mIHdyaXRl
IHRvIGZpbGUgZGVzY3JpcHRvcnMgMSBhbmQgMiBhbmQgbWFrZQotICAgICAgICBjYXB0dXJlZCBv
dXRwdXQgYXZhaWxhYmxlIHZpYSBgYGNhcGZkYmluYXJ5LnJlYWRvdXRlcnJgYCBtZXRob2QgY2Fs
bHMKLSAgICAgICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBg
IGFuZCBgYGVycmBgIHdpbGwgYmUKLSAgICAgICAgYGBieXRlc2BgIG9iamVjdHMuCi0gICAgZG9j
dGVzdF9uYW1lc3BhY2UKKyAgICAgICAgRW5hYmxlIGJ5dGVzIGNhcHR1cmluZyBvZiB3cml0ZXMg
dG8gZmlsZSBkZXNjcmlwdG9ycyBgYDFgYCBhbmQgYGAyYGAuCisKKyAgICAgICAgVGhlIGNhcHR1
cmVkIG91dHB1dCBpcyBtYWRlIGF2YWlsYWJsZSB2aWEgYGBjYXBmZC5yZWFkb3V0ZXJyKClgYCBt
ZXRob2QKKyAgICAgICAgY2FsbHMsIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIG5hbWVk
dHVwbGUuCisgICAgICAgIGBgb3V0YGAgYW5kIGBgZXJyYGAgd2lsbCBiZSBgYGJ5dGVgYCBvYmpl
Y3RzLgorCisgICAgZG9jdGVzdF9uYW1lc3BhY2UgW3Nlc3Npb24gc2NvcGVdCiAgICAgICAgIEZp
eHR1cmUgdGhhdCByZXR1cm5zIGEgOnB5OmNsYXNzOmBkaWN0YCB0aGF0IHdpbGwgYmUgaW5qZWN0
ZWQgaW50byB0aGUgbmFtZXNwYWNlIG9mIGRvY3Rlc3RzLgotICAgIHB5dGVzdGNvbmZpZworCisg
ICAgcHl0ZXN0Y29uZmlnIFtzZXNzaW9uIHNjb3BlXQogICAgICAgICBTZXNzaW9uLXNjb3BlZCBm
aXh0dXJlIHRoYXQgcmV0dXJucyB0aGUgOmNsYXNzOmBfcHl0ZXN0LmNvbmZpZy5Db25maWdgIG9i
amVjdC4KIAogICAgICAgICBFeGFtcGxlOjoKIAogICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHB5
dGVzdGNvbmZpZyk6Ci0gICAgICAgICAgICAgICAgaWYgcHl0ZXN0Y29uZmlnLmdldG9wdGlvbigi
dmVyYm9zZSIpOgorICAgICAgICAgICAgICAgIGlmIHB5dGVzdGNvbmZpZy5nZXRvcHRpb24oInZl
cmJvc2UiKSA+IDA6CiAgICAgICAgICAgICAgICAgICAgIC4uLgorCiAgICAgcmVjb3JkX3Byb3Bl
cnR5CiAgICAgICAgIEFkZCBhbiBleHRyYSBwcm9wZXJ0aWVzIHRoZSBjYWxsaW5nIHRlc3QuCiAg
ICAgICAgIFVzZXIgcHJvcGVydGllcyBiZWNvbWUgcGFydCBvZiB0aGUgdGVzdCByZXBvcnQgYW5k
IGFyZSBhdmFpbGFibGUgdG8gdGhlCkBAIC02NiwyMSArNzksMzYgQEAgRm9yIGluZm9ybWF0aW9u
IGFib3V0IGZpeHR1cmVzLCBzZWUgOnJlZjpgZml4dHVyZXNgLiBUbyBzZWUgYSBjb21wbGV0ZSBs
aXN0IG9mIGEKIAogICAgICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24ocmVjb3JkX3Byb3BlcnR5
KToKICAgICAgICAgICAgICAgICByZWNvcmRfcHJvcGVydHkoImV4YW1wbGVfa2V5IiwgMSkKLSAg
ICByZWNvcmRfeG1sX3Byb3BlcnR5Ci0gICAgICAgIChEZXByZWNhdGVkKSB1c2UgcmVjb3JkX3By
b3BlcnR5LgorCiAgICAgcmVjb3JkX3htbF9hdHRyaWJ1dGUKICAgICAgICAgQWRkIGV4dHJhIHht
bCBhdHRyaWJ1dGVzIHRvIHRoZSB0YWcgZm9yIHRoZSBjYWxsaW5nIHRlc3QuCiAgICAgICAgIFRo
ZSBmaXh0dXJlIGlzIGNhbGxhYmxlIHdpdGggYGAobmFtZSwgdmFsdWUpYGAsIHdpdGggdmFsdWUg
YmVpbmcKICAgICAgICAgYXV0b21hdGljYWxseSB4bWwtZW5jb2RlZAorCisgICAgcmVjb3JkX3Rl
c3RzdWl0ZV9wcm9wZXJ0eSBbc2Vzc2lvbiBzY29wZV0KKyAgICAgICAgUmVjb3JkcyBhIG5ldyBg
YDxwcm9wZXJ0eT5gYCB0YWcgYXMgY2hpbGQgb2YgdGhlIHJvb3QgYGA8dGVzdHN1aXRlPmBgLiBU
aGlzIGlzIHN1aXRhYmxlIHRvCisgICAgICAgIHdyaXRpbmcgZ2xvYmFsIGluZm9ybWF0aW9uIHJl
Z2FyZGluZyB0aGUgZW50aXJlIHRlc3Qgc3VpdGUsIGFuZCBpcyBjb21wYXRpYmxlIHdpdGggYGB4
dW5pdDJgYCBKVW5pdCBmYW1pbHkuCisKKyAgICAgICAgVGhpcyBpcyBhIGBgc2Vzc2lvbmBgLXNj
b3BlZCBmaXh0dXJlIHdoaWNoIGlzIGNhbGxlZCB3aXRoIGBgKG5hbWUsIHZhbHVlKWBgLiBFeGFt
cGxlOgorCisgICAgICAgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICAgICAgZGVm
IHRlc3RfZm9vKHJlY29yZF90ZXN0c3VpdGVfcHJvcGVydHkpOgorICAgICAgICAgICAgICAgIHJl
Y29yZF90ZXN0c3VpdGVfcHJvcGVydHkoIkFSQ0giLCAiUFBDIikKKyAgICAgICAgICAgICAgICBy
ZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KCJTVE9SQUdFX1RZUEUiLCAiQ0VQSCIpCisKKyAgICAg
ICAgYGBuYW1lYGAgbXVzdCBiZSBhIHN0cmluZywgYGB2YWx1ZWBgIHdpbGwgYmUgY29udmVydGVk
IHRvIGEgc3RyaW5nIGFuZCBwcm9wZXJseSB4bWwtZXNjYXBlZC4KKwogICAgIGNhcGxvZwogICAg
ICAgICBBY2Nlc3MgYW5kIGNvbnRyb2wgbG9nIGNhcHR1cmluZy4KIAotICAgICAgICBDYXB0dXJl
ZCBsb2dzIGFyZSBhdmFpbGFibGUgdGhyb3VnaCB0aGUgZm9sbG93aW5nIG1ldGhvZHM6OgorICAg
ICAgICBDYXB0dXJlZCBsb2dzIGFyZSBhdmFpbGFibGUgdGhyb3VnaCB0aGUgZm9sbG93aW5nIHBy
b3BlcnRpZXMvbWV0aG9kczo6CiAKICAgICAgICAgKiBjYXBsb2cudGV4dCAgICAgICAgICAgIC0+
IHN0cmluZyBjb250YWluaW5nIGZvcm1hdHRlZCBsb2cgb3V0cHV0CiAgICAgICAgICogY2FwbG9n
LnJlY29yZHMgICAgICAgICAtPiBsaXN0IG9mIGxvZ2dpbmcuTG9nUmVjb3JkIGluc3RhbmNlcwog
ICAgICAgICAqIGNhcGxvZy5yZWNvcmRfdHVwbGVzICAgLT4gbGlzdCBvZiAobG9nZ2VyX25hbWUs
IGxldmVsLCBtZXNzYWdlKSB0dXBsZXMKICAgICAgICAgKiBjYXBsb2cuY2xlYXIoKSAgICAgICAg
IC0+IGNsZWFyIGNhcHR1cmVkIHJlY29yZHMgYW5kIGZvcm1hdHRlZCBsb2cgb3V0cHV0IHN0cmlu
ZworCiAgICAgbW9ua2V5cGF0Y2gKICAgICAgICAgVGhlIHJldHVybmVkIGBgbW9ua2V5cGF0Y2hg
YCBmaXh0dXJlIHByb3ZpZGVzIHRoZXNlCiAgICAgICAgIGhlbHBlciBtZXRob2RzIHRvIG1vZGlm
eSBvYmplY3RzLCBkaWN0aW9uYXJpZXMgb3Igb3MuZW52aXJvbjo6CkBAIC05MCw3ICsxMTgsNyBA
QCBGb3IgaW5mb3JtYXRpb24gYWJvdXQgZml4dHVyZXMsIHNlZSA6cmVmOmBmaXh0dXJlc2AuIFRv
IHNlZSBhIGNvbXBsZXRlIGxpc3Qgb2YgYQogICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0aXRl
bShtYXBwaW5nLCBuYW1lLCB2YWx1ZSkKICAgICAgICAgICAgIG1vbmtleXBhdGNoLmRlbGl0ZW0o
b2JqLCBuYW1lLCByYWlzaW5nPVRydWUpCiAgICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYo
bmFtZSwgdmFsdWUsIHByZXBlbmQ9RmFsc2UpCi0gICAgICAgICAgICBtb25rZXlwYXRjaC5kZWxl
bnYobmFtZSwgdmFsdWUsIHJhaXNpbmc9VHJ1ZSkKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLmRl
bGVudihuYW1lLCByYWlzaW5nPVRydWUpCiAgICAgICAgICAgICBtb25rZXlwYXRjaC5zeXNwYXRo
X3ByZXBlbmQocGF0aCkKICAgICAgICAgICAgIG1vbmtleXBhdGNoLmNoZGlyKHBhdGgpCiAKQEAg
LTk4LDEzICsxMjYsMTkgQEAgRm9yIGluZm9ybWF0aW9uIGFib3V0IGZpeHR1cmVzLCBzZWUgOnJl
ZjpgZml4dHVyZXNgLiBUbyBzZWUgYSBjb21wbGV0ZSBsaXN0IG9mIGEKICAgICAgICAgdGVzdCBm
dW5jdGlvbiBvciBmaXh0dXJlIGhhcyBmaW5pc2hlZC4gVGhlIGBgcmFpc2luZ2BgCiAgICAgICAg
IHBhcmFtZXRlciBkZXRlcm1pbmVzIGlmIGEgS2V5RXJyb3Igb3IgQXR0cmlidXRlRXJyb3IKICAg
ICAgICAgd2lsbCBiZSByYWlzZWQgaWYgdGhlIHNldC9kZWxldGlvbiBvcGVyYXRpb24gaGFzIG5v
IHRhcmdldC4KKwogICAgIHJlY3dhcm4KICAgICAgICAgUmV0dXJuIGEgOmNsYXNzOmBXYXJuaW5n
c1JlY29yZGVyYCBpbnN0YW5jZSB0aGF0IHJlY29yZHMgYWxsIHdhcm5pbmdzIGVtaXR0ZWQgYnkg
dGVzdCBmdW5jdGlvbnMuCiAKICAgICAgICAgU2VlIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGli
cmFyeS93YXJuaW5ncy5odG1sIGZvciBpbmZvcm1hdGlvbgogICAgICAgICBvbiB3YXJuaW5nIGNh
dGVnb3JpZXMuCi0gICAgdG1wZGlyX2ZhY3RvcnkKLSAgICAgICAgUmV0dXJuIGEgVGVtcGRpckZh
Y3RvcnkgaW5zdGFuY2UgZm9yIHRoZSB0ZXN0IHNlc3Npb24uCisKKyAgICB0bXBkaXJfZmFjdG9y
eSBbc2Vzc2lvbiBzY29wZV0KKyAgICAgICAgUmV0dXJuIGEgOmNsYXNzOmBfcHl0ZXN0LnRtcGRp
ci5UZW1wZGlyRmFjdG9yeWAgaW5zdGFuY2UgZm9yIHRoZSB0ZXN0IHNlc3Npb24uCisKKyAgICB0
bXBfcGF0aF9mYWN0b3J5IFtzZXNzaW9uIHNjb3BlXQorICAgICAgICBSZXR1cm4gYSA6Y2xhc3M6
YF9weXRlc3QudG1wZGlyLlRlbXBQYXRoRmFjdG9yeWAgaW5zdGFuY2UgZm9yIHRoZSB0ZXN0IHNl
c3Npb24uCisKICAgICB0bXBkaXIKICAgICAgICAgUmV0dXJuIGEgdGVtcG9yYXJ5IGRpcmVjdG9y
eSBwYXRoIG9iamVjdAogICAgICAgICB3aGljaCBpcyB1bmlxdWUgdG8gZWFjaCB0ZXN0IGZ1bmN0
aW9uIGludm9jYXRpb24sCkBAIC0xMTQsNiArMTQ4LDE4IEBAIEZvciBpbmZvcm1hdGlvbiBhYm91
dCBmaXh0dXJlcywgc2VlIDpyZWY6YGZpeHR1cmVzYC4gVG8gc2VlIGEgY29tcGxldGUgbGlzdCBv
ZiBhCiAKICAgICAgICAgLi4gX2BweS5wYXRoLmxvY2FsYDogaHR0cHM6Ly9weS5yZWFkdGhlZG9j
cy5pby9lbi9sYXRlc3QvcGF0aC5odG1sCiAKKyAgICB0bXBfcGF0aAorICAgICAgICBSZXR1cm4g
YSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHBhdGggb2JqZWN0CisgICAgICAgIHdoaWNoIGlzIHVuaXF1
ZSB0byBlYWNoIHRlc3QgZnVuY3Rpb24gaW52b2NhdGlvbiwKKyAgICAgICAgY3JlYXRlZCBhcyBh
IHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGJhc2UgdGVtcG9yYXJ5CisgICAgICAgIGRpcmVjdG9yeS4g
IFRoZSByZXR1cm5lZCBvYmplY3QgaXMgYSA6Y2xhc3M6YHBhdGhsaWIuUGF0aGAKKyAgICAgICAg
b2JqZWN0LgorCisgICAgICAgIC4uIG5vdGU6OgorCisgICAgICAgICAgICBpbiBweXRob24gPCAz
LjYgdGhpcyBpcyBhIHBhdGhsaWIyLlBhdGgKKworCiAgICAgbm8gdGVzdHMgcmFuIGluIDAuMTIg
c2Vjb25kcwogCiBZb3UgY2FuIGFsc28gaW50ZXJhY3RpdmVseSBhc2sgZm9yIGhlbHAsIGUuZy4g
YnkgdHlwaW5nIG9uIHRoZSBQeXRob24gaW50ZXJhY3RpdmUgcHJvbXB0IHNvbWV0aGluZyBsaWtl
OjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jYWNoZS5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vY2FjaGUucnN0CmluZGV4IDM3YmNmNzA3MGQ0MmJhZjk4ZDA4ZGE0ZGMyYjVhMGFk
MGM0YTkyNzMuLjI3YTg0NDkxMDhjOTJjNDE0OGUwY2QzMTk4MjE5YzhhMDM1ZDVjMTEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jYWNoZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2NhY2hlLnJzdApAQCAtNSw3ICs1LDcgQEAKIENhY2hlOiB3b3JraW5nIHdpdGggY3Jvc3Mt
dGVzdHJ1biBzdGF0ZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAK
LS4uIHZlcnNpb25hZGRlZDo6IDIuOAorCiAKIFVzYWdlCiAtLS0tLS0tLS0KQEAgLTQzLDcgKzQz
LDkgQEAgRmlyc3QsIGxldCdzIGNyZWF0ZSA1MCB0ZXN0IGludm9jYXRpb24gb2Ygd2hpY2ggb25s
eSAyIGZhaWw6OgogICAgICAgICBpZiBpIGluICgxNywgMjUpOgogICAgICAgICAgICBweXRlc3Qu
ZmFpbCgiYmFkIGx1Y2siKQogCi1JZiB5b3UgcnVuIHRoaXMgZm9yIHRoZSBmaXJzdCB0aW1lIHlv
dSB3aWxsIHNlZSB0d28gZmFpbHVyZXM6OgorSWYgeW91IHJ1biB0aGlzIGZvciB0aGUgZmlyc3Qg
dGltZSB5b3Ugd2lsbCBzZWUgdHdvIGZhaWx1cmVzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0
CiAKICAgICAkIHB5dGVzdCAtcQogICAgIC4uLi4uLi4uLi4uLi4uLi4uRi4uLi4uLi5GLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtNzIsMTMgKzc0
LDE2IEBAIElmIHlvdSBydW4gdGhpcyBmb3IgdGhlIGZpcnN0IHRpbWUgeW91IHdpbGwgc2VlIHR3
byBmYWlsdXJlczo6CiAgICAgdGVzdF81MC5weTo2OiBGYWlsZWQKICAgICAyIGZhaWxlZCwgNDgg
cGFzc2VkIGluIDAuMTIgc2Vjb25kcwogCi1JZiB5b3UgdGhlbiBydW4gaXQgd2l0aCBgYC0tbGZg
YDo6CitJZiB5b3UgdGhlbiBydW4gaXQgd2l0aCBgYC0tbGZgYDoKKworLi4gY29kZS1ibG9jazo6
IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLS1sZgogICAgID09PT09PT09PT09PT09PT09PT09PT09
PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAg
ICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54Lnks
IHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Ci0g
ICAgY29sbGVjdGVkIDUwIGl0ZW1zIC8gNDggZGVzZWxlY3RlZAorICAgIHBsYXRmb3JtIGxpbnV4
IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Cisg
ICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAk
UkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVjdGVkIDUwIGl0ZW1zIC8gNDggZGVzZWxlY3RlZCAv
IDIgc2VsZWN0ZWQKICAgICBydW4tbGFzdC1mYWlsdXJlOiByZXJ1biBwcmV2aW91cyAyIGZhaWx1
cmVzCiAKICAgICB0ZXN0XzUwLnB5IEZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KQEAgLTExMywxMiArMTE4LDE1IEBAIG5vdCBi
ZWVuIHJ1biAoImRlc2VsZWN0ZWQiKS4KIAogTm93LCBpZiB5b3UgcnVuIHdpdGggdGhlIGBgLS1m
ZmBgIG9wdGlvbiwgYWxsIHRlc3RzIHdpbGwgYmUgcnVuIGJ1dCB0aGUgZmlyc3QKIHByZXZpb3Vz
IGZhaWx1cmVzIHdpbGwgYmUgZXhlY3V0ZWQgZmlyc3QgKGFzIGNhbiBiZSBzZWVuIGZyb20gdGhl
IHNlcmllcwotb2YgYGBGRmBgIGFuZCBkb3RzKTo6CitvZiBgYEZGYGAgYW5kIGRvdHMpOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtLWZmCiAgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMu
eC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJ
UiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00
LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJ
WC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxl
Y3RlZCA1MCBpdGVtcwogICAgIHJ1bi1sYXN0LWZhaWx1cmU6IHJlcnVuIHByZXZpb3VzIDIgZmFp
bHVyZXMgZmlyc3QKIApAQCAtMTYwLDEwICsxNjgsMTIgQEAgQmVoYXZpb3Igd2hlbiBubyB0ZXN0
cyBmYWlsZWQgaW4gdGhlIGxhc3QgcnVuCiAKIFdoZW4gbm8gdGVzdHMgZmFpbGVkIGluIHRoZSBs
YXN0IHJ1biwgb3Igd2hlbiBubyBjYWNoZWQgYGBsYXN0ZmFpbGVkYGAgZGF0YSB3YXMKIGZvdW5k
LCBgYHB5dGVzdGBgIGNhbiBiZSBjb25maWd1cmVkIGVpdGhlciB0byBydW4gYWxsIG9mIHRoZSB0
ZXN0cyBvciBubyB0ZXN0cywKLXVzaW5nIHRoZSBgYC0tbGFzdC1mYWlsZWQtbm8tZmFpbHVyZXNg
YCBvcHRpb24sIHdoaWNoIHRha2VzIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczo6Cit1c2lu
ZyB0aGUgYGAtLWxhc3QtZmFpbGVkLW5vLWZhaWx1cmVzYGAgb3B0aW9uLCB3aGljaCB0YWtlcyBv
bmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKLSAg
ICBweXRlc3QgLS1sYXN0LWZhaWxlZC1uby1mYWlsdXJlcyBhbGwgICAgIyBydW4gYWxsIHRlc3Rz
IChkZWZhdWx0IGJlaGF2aW9yKQotICAgIHB5dGVzdCAtLWxhc3QtZmFpbGVkLW5vLWZhaWx1cmVz
IG5vbmUgICAjIHJ1biBubyB0ZXN0cyBhbmQgZXhpdAorICAgIHB5dGVzdCAtLWxhc3QtZmFpbGVk
IC0tbGFzdC1mYWlsZWQtbm8tZmFpbHVyZXMgYWxsICAgICMgcnVuIGFsbCB0ZXN0cyAoZGVmYXVs
dCBiZWhhdmlvcikKKyAgICBweXRlc3QgLS1sYXN0LWZhaWxlZCAtLWxhc3QtZmFpbGVkLW5vLWZh
aWx1cmVzIG5vbmUgICAjIHJ1biBubyB0ZXN0cyBhbmQgZXhpdAogCiBUaGUgbmV3IGNvbmZpZy5j
YWNoZSBvYmplY3QKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNzksMTEg
KzE4OSwxNCBAQCBhY3Jvc3MgcHl0ZXN0IGludm9jYXRpb25zOjoKICAgICBpbXBvcnQgcHl0ZXN0
CiAgICAgaW1wb3J0IHRpbWUKIAorICAgIGRlZiBleHBlbnNpdmVfY29tcHV0YXRpb24oKToKKyAg
ICAgICAgcHJpbnQoInJ1bm5pbmcgZXhwZW5zaXZlIGNvbXB1dGF0aW9uLi4uIikKKwogICAgIEBw
eXRlc3QuZml4dHVyZQogICAgIGRlZiBteWRhdGEocmVxdWVzdCk6CiAgICAgICAgIHZhbCA9IHJl
cXVlc3QuY29uZmlnLmNhY2hlLmdldCgiZXhhbXBsZS92YWx1ZSIsIE5vbmUpCiAgICAgICAgIGlm
IHZhbCBpcyBOb25lOgotICAgICAgICAgICAgdGltZS5zbGVlcCg5KjAuNikgIyBleHBlbnNpdmUg
Y29tcHV0YXRpb24gOikKKyAgICAgICAgICAgIGV4cGVuc2l2ZV9jb21wdXRhdGlvbigpCiAgICAg
ICAgICAgICB2YWwgPSA0MgogICAgICAgICAgICAgcmVxdWVzdC5jb25maWcuY2FjaGUuc2V0KCJl
eGFtcGxlL3ZhbHVlIiwgdmFsKQogICAgICAgICByZXR1cm4gdmFsCkBAIC0xOTEsOCArMjA0LDkg
QEAgYWNyb3NzIHB5dGVzdCBpbnZvY2F0aW9uczo6CiAgICAgZGVmIHRlc3RfZnVuY3Rpb24obXlk
YXRhKToKICAgICAgICAgYXNzZXJ0IG15ZGF0YSA9PSAyMwogCi1JZiB5b3UgcnVuIHRoaXMgY29t
bWFuZCBvbmNlLCBpdCB3aWxsIHRha2UgYSB3aGlsZSBiZWNhdXNlCi1vZiB0aGUgc2xlZXA6Ogor
SWYgeW91IHJ1biB0aGlzIGNvbW1hbmQgZm9yIHRoZSBmaXJzdCB0aW1lLCB5b3UgY2FuIHNlZSB0
aGUgcHJpbnQgc3RhdGVtZW50OgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5
dGVzdCAtcQogICAgIEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtMjA1LDExICsyMTksMTUgQEAgb2Yg
dGhlIHNsZWVwOjoKICAgICA+ICAgICAgIGFzc2VydCBteWRhdGEgPT0gMjMKICAgICBFICAgICAg
IGFzc2VydCA0MiA9PSAyMwogCi0gICAgdGVzdF9jYWNoaW5nLnB5OjE0OiBBc3NlcnRpb25FcnJv
cgorICAgIHRlc3RfY2FjaGluZy5weToxNzogQXNzZXJ0aW9uRXJyb3IKKyAgICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRvdXQgc2V0dXAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgcnVubmluZyBleHBlbnNpdmUgY29tcHV0YXRpb24uLi4KICAgICAxIGZh
aWxlZCBpbiAwLjEyIHNlY29uZHMKIAogSWYgeW91IHJ1biBpdCBhIHNlY29uZCB0aW1lIHRoZSB2
YWx1ZSB3aWxsIGJlIHJldHJpZXZlZCBmcm9tCi10aGUgY2FjaGUgYW5kIHRoaXMgd2lsbCBiZSBx
dWljazo6Cit0aGUgY2FjaGUgYW5kIG5vdGhpbmcgd2lsbCBiZSBwcmludGVkOgorCisuLiBjb2Rl
LWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcQogICAgIEYgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAl
XQpAQCAtMjIyLDQxICsyNDAsNzYgQEAgdGhlIGNhY2hlIGFuZCB0aGlzIHdpbGwgYmUgcXVpY2s6
OgogICAgID4gICAgICAgYXNzZXJ0IG15ZGF0YSA9PSAyMwogICAgIEUgICAgICAgYXNzZXJ0IDQy
ID09IDIzCiAKLSAgICB0ZXN0X2NhY2hpbmcucHk6MTQ6IEFzc2VydGlvbkVycm9yCisgICAgdGVz
dF9jYWNoaW5nLnB5OjE3OiBBc3NlcnRpb25FcnJvcgogICAgIDEgZmFpbGVkIGluIDAuMTIgc2Vj
b25kcwogCiBTZWUgdGhlIDpyZWY6YGNhY2hlLWFwaWAgZm9yIG1vcmUgZGV0YWlscy4KIAogCiBJ
bnNwZWN0aW5nIENhY2hlIGNvbnRlbnQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBZb3UgY2FuIGFsd2F5cyBwZWVrIGF0IHRoZSBj
b250ZW50IG9mIHRoZSBjYWNoZSB1c2luZyB0aGUKLWBgLS1jYWNoZS1zaG93YGAgY29tbWFuZCBs
aW5lIG9wdGlvbjo6CitgYC0tY2FjaGUtc2hvd2BgIGNvbW1hbmQgbGluZSBvcHRpb246CisKKy4u
IGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC0tY2FjaGUtc2hvdwogICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5
dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRP
Q19UTVBESVIsIGluaWZpbGU6Ci0gICAgY2FjaGVkaXI6ICRSRUdFTkRPQ19UTVBESVIvLnB5dGVz
dF9jYWNoZQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gY2FjaGUgdmFsdWVz
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQ
eXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNh
Y2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VO
RE9DX1RNUERJUgorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisg
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGNhY2hlIHZhbHVlcyBmb3IgJyonIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIGNhY2hlL2xhc3RmYWlsZWQgY29udGFpbnM6Ci0g
ICAgICB7J3Rlc3RfY2FjaGluZy5weTo6dGVzdF9mdW5jdGlvbic6IFRydWV9CisgICAgICB7J3Rl
c3RfNTAucHk6OnRlc3RfbnVtWzE3XSc6IFRydWUsCisgICAgICAgJ3Rlc3RfNTAucHk6OnRlc3Rf
bnVtWzI1XSc6IFRydWUsCisgICAgICAgJ3Rlc3RfYXNzZXJ0MS5weTo6dGVzdF9mdW5jdGlvbic6
IFRydWUsCisgICAgICAgJ3Rlc3RfYXNzZXJ0Mi5weTo6dGVzdF9zZXRfY29tcGFyaXNvbic6IFRy
dWUsCisgICAgICAgJ3Rlc3RfY2FjaGluZy5weTo6dGVzdF9mdW5jdGlvbic6IFRydWUsCisgICAg
ICAgJ3Rlc3RfZm9vY29tcGFyZS5weTo6dGVzdF9jb21wYXJlJzogVHJ1ZX0KICAgICBjYWNoZS9u
b2RlaWRzIGNvbnRhaW5zOgogICAgICAgWyd0ZXN0X2NhY2hpbmcucHk6OnRlc3RfZnVuY3Rpb24n
XQorICAgIGNhY2hlL3N0ZXB3aXNlIGNvbnRhaW5zOgorICAgICAgW10KKyAgICBleGFtcGxlL3Zh
bHVlIGNvbnRhaW5zOgorICAgICAgNDIKKworICAgID09PT09PT09PT09PT09PT09PT09PT09IG5v
IHRlc3RzIHJhbiBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT0KKworYGAt
LWNhY2hlLXNob3dgYCB0YWtlcyBhbiBvcHRpb25hbCBhcmd1bWVudCB0byBzcGVjaWZ5IGEgZ2xv
YiBwYXR0ZXJuIGZvcgorZmlsdGVyaW5nOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CisKKyAg
ICAkIHB5dGVzdCAtLWNhY2hlLXNob3cgZXhhbXBsZS8qCisgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0x
LngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3Rf
Y2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY2FjaGVkaXI6ICRQWVRI
T05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBjYWNo
ZSB2YWx1ZXMgZm9yICdleGFtcGxlLyonIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgZXhh
bXBsZS92YWx1ZSBjb250YWluczoKICAgICAgIDQyCiAKICAgICA9PT09PT09PT09PT09PT09PT09
PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09
CiAKIENsZWFyaW5nIENhY2hlIGNvbnRlbnQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogWW91IGNhbiBpbnN0cnVjdCBweXRlc3QgdG8g
Y2xlYXIgYWxsIGNhY2hlIGZpbGVzIGFuZCB2YWx1ZXMKLWJ5IGFkZGluZyB0aGUgYGAtLWNhY2hl
LWNsZWFyYGAgb3B0aW9uIGxpa2UgdGhpczo6CitieSBhZGRpbmcgdGhlIGBgLS1jYWNoZS1jbGVh
cmBgIG9wdGlvbiBsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRl
c3QgLS1jYWNoZS1jbGVhcgogCiBUaGlzIGlzIHJlY29tbWVuZGVkIGZvciBpbnZvY2F0aW9ucyBm
cm9tIENvbnRpbnVvdXMgSW50ZWdyYXRpb24KIHNlcnZlcnMgd2hlcmUgaXNvbGF0aW9uIGFuZCBj
b3JyZWN0bmVzcyBpcyBtb3JlIGltcG9ydGFudAogdGhhbiBzcGVlZC4KKworCitTdGVwd2lzZQor
LS0tLS0tLS0KKworQXMgYW4gYWx0ZXJuYXRpdmUgdG8gYGAtLWxmIC14YGAsIGVzcGVjaWFsbHkg
Zm9yIGNhc2VzIHdoZXJlIHlvdSBleHBlY3QgYSBsYXJnZSBwYXJ0IG9mIHRoZSB0ZXN0IHN1aXRl
IHdpbGwgZmFpbCwgYGAtLXN3YGAsIGBgLS1zdGVwd2lzZWBgIGFsbG93cyB5b3UgdG8gZml4IHRo
ZW0gb25lIGF0IGEgdGltZS4gVGhlIHRlc3Qgc3VpdGUgd2lsbCBydW4gdW50aWwgdGhlIGZpcnN0
IGZhaWx1cmUgYW5kIHRoZW4gc3RvcC4gQXQgdGhlIG5leHQgaW52b2NhdGlvbiwgdGVzdHMgd2ls
bCBjb250aW51ZSBmcm9tIHRoZSBsYXN0IGZhaWxpbmcgdGVzdCBhbmQgdGhlbiBydW4gdW50aWwg
dGhlIG5leHQgZmFpbGluZyB0ZXN0LiBZb3UgbWF5IHVzZSB0aGUgYGAtLXN0ZXB3aXNlLXNraXBg
YCBvcHRpb24gdG8gaWdub3JlIG9uZSBmYWlsaW5nIHRlc3QgYW5kIHN0b3AgdGhlIHRlc3QgZXhl
Y3V0aW9uIG9uIHRoZSBzZWNvbmQgZmFpbGluZyB0ZXN0IGluc3RlYWQuIFRoaXMgaXMgdXNlZnVs
IGlmIHlvdSBnZXQgc3R1Y2sgb24gYSBmYWlsaW5nIHRlc3QgYW5kIGp1c3Qgd2FudCB0byBpZ25v
cmUgaXQgdW50aWwgbGF0ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2FwdHVy
ZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2FwdHVyZS5yc3QKaW5kZXggYWI4NmZiNTVmM2Q4
ODIzNDBlMjA4ZmY3OTIxZjMwZmE0ZjQ0N2I5Yi4uOTA0MDNkMjNhYjcxMGFiZGY4OGE0Y2ViYTU5
YjZiNTg4MWEyOTJhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NhcHR1cmUucnN0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jYXB0dXJlLnJzdApAQCAtMzUsNyArMzUsOSBAQCBU
aGVyZSBhcmUgdHdvIHdheXMgaW4gd2hpY2ggYGBweXRlc3RgYCBjYW4gcGVyZm9ybSBjYXB0dXJp
bmc6CiAKIC4uIF9gZGlzYWJsZSBjYXB0dXJpbmdgOgogCi1Zb3UgY2FuIGluZmx1ZW5jZSBvdXRw
dXQgY2FwdHVyaW5nIG1lY2hhbmlzbXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lOjoKK1lvdSBjYW4g
aW5mbHVlbmNlIG91dHB1dCBjYXB0dXJpbmcgbWVjaGFuaXNtcyBmcm9tIHRoZSBjb21tYW5kIGxp
bmU6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLXMgICAgICAgICAgICAj
IGRpc2FibGUgYWxsIGNhcHR1cmluZwogICAgIHB5dGVzdCAtLWNhcHR1cmU9c3lzICMgcmVwbGFj
ZSBzeXMuc3Rkb3V0L3N0ZGVyciB3aXRoIGluLW1lbSBmaWxlcwpAQCAtNTIsNyArNTQsNyBAQCBp
cyB0aGF0IHlvdSBjYW4gdXNlIHByaW50IHN0YXRlbWVudHMgZm9yIGRlYnVnZ2luZzo6CiAgICAg
IyBjb250ZW50IG9mIHRlc3RfbW9kdWxlLnB5CiAKICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVu
Y3Rpb24pOgotICAgICAgICBwcmludCAoInNldHRpbmcgdXAgJXMiICUgZnVuY3Rpb24pCisgICAg
ICAgIHByaW50KCJzZXR0aW5nIHVwICVzIiAlIGZ1bmN0aW9uKQogCiAgICAgZGVmIHRlc3RfZnVu
YzEoKToKICAgICAgICAgYXNzZXJ0IFRydWUKQEAgLTYxLDEyICs2MywxNSBAQCBpcyB0aGF0IHlv
dSBjYW4gdXNlIHByaW50IHN0YXRlbWVudHMgZm9yIGRlYnVnZ2luZzo6CiAgICAgICAgIGFzc2Vy
dCBGYWxzZQogCiBhbmQgcnVubmluZyB0aGlzIG1vZHVsZSB3aWxsIHNob3cgeW91IHByZWNpc2Vs
eSB0aGUgb3V0cHV0Ci1vZiB0aGUgZmFpbGluZyBmdW5jdGlvbiBhbmQgaGlkZSB0aGUgb3RoZXIg
b25lOjoKK29mIHRoZSBmYWlsaW5nIGZ1bmN0aW9uIGFuZCBoaWRlIHRoZSBvdGhlciBvbmU6CisK
Ky4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0CiAgICAgPT09PT09PT09PT09
PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55
LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00Lngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8u
cHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3Rl
ZCAyIGl0ZW1zCiAKICAgICB0ZXN0X21vZHVsZS5weSAuRiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KQEAgLTExNiwxMSArMTIxLDExIEBA
IHNhbWUgaW50ZXJmYWNlIGJ1dCBhbGxvd3MgdG8gYWxzbyBjYXB0dXJlIG91dHB1dCBmcm9tCiBs
aWJyYXJpZXMgb3Igc3VicHJvY2Vzc2VzIHRoYXQgZGlyZWN0bHkgd3JpdGUgdG8gb3BlcmF0aW5n
CiBzeXN0ZW0gbGV2ZWwgb3V0cHV0IHN0cmVhbXMgKEZEMSBhbmQgRkQyKS4KIAotLi4gdmVyc2lv
bmFkZGVkOjogMy4zCisKIAogVGhlIHJldHVybiB2YWx1ZSBmcm9tIGBgcmVhZG91dGVycmBgIGNo
YW5nZWQgdG8gYSBgYG5hbWVkdHVwbGVgYCB3aXRoIHR3byBhdHRyaWJ1dGVzLCBgYG91dGBgIGFu
ZCBgYGVycmBgLgogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogCiBJZiB0aGUgY29kZSB1bmRl
ciB0ZXN0IHdyaXRlcyBub24tdGV4dHVhbCBkYXRhLCB5b3UgY2FuIGNhcHR1cmUgdGhpcyB1c2lu
ZwogdGhlIGBgY2Fwc3lzYmluYXJ5YGAgZml4dHVyZSB3aGljaCBpbnN0ZWFkIHJldHVybnMgYGBi
eXRlc2BgIGZyb20KQEAgLTEyOCw3ICsxMzMsNyBAQCB0aGUgYGByZWFkb3V0ZXJyYGAgbWV0aG9k
LiAgVGhlIGBgY2FwZnN5c2JpbmFyeWBgIGZpeHR1cmUgaXMgY3VycmVudGx5IG9ubHkKIGF2YWls
YWJsZSBpbiBweXRob24gMy4KIAogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogCiBJZiB0aGUg
Y29kZSB1bmRlciB0ZXN0IHdyaXRlcyBub24tdGV4dHVhbCBkYXRhLCB5b3UgY2FuIGNhcHR1cmUg
dGhpcyB1c2luZwogdGhlIGBgY2FwZmRiaW5hcnlgYCBmaXh0dXJlIHdoaWNoIGluc3RlYWQgcmV0
dXJucyBgYGJ5dGVzYGAgZnJvbQpAQCAtMTM2LDcgKzE0MSw3IEBAIHRoZSBgYHJlYWRvdXRlcnJg
YCBtZXRob2QuICBUaGUgYGBjYXBmZGJpbmFyeWBgIGZpeHR1cmUgb3BlcmF0ZXMgb24gdGhlCiBm
aWxlZGVzY3JpcHRvciBsZXZlbC4KIAogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKKwogCiBUbyB0
ZW1wb3JhcmlseSBkaXNhYmxlIGNhcHR1cmUgd2l0aGluIGEgdGVzdCwgYm90aCBgYGNhcHN5c2Bg
CiBhbmQgYGBjYXBmZGBgIGhhdmUgYSBgYGRpc2FibGVkKClgYCBtZXRob2QgdGhhdCBjYW4gYmUg
dXNlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NoYW5nZWxvZy5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vY2hhbmdlbG9nLnJzdAppbmRleCBhNTliM2M3ZTI1MGVlYWExMTFlMmJm
M2ZlZGYwYTQ0OWZmYjM4YjNmLi5mOWEyMTlhOTJhZTMyYTEwYTFlNWJiMGE2NmFmNjRlMjJkZjky
ODFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2hhbmdlbG9nLnJzdAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vY2hhbmdlbG9nLnJzdApAQCAtMSw3ICsxLDQgQEAKIAogLi4gX2No
YW5nZWxvZzoKIAotQ2hhbmdlbG9nIGhpc3RvcnkKLT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotCiAuLiBpbmNsdWRlOjogLi4vLi4vQ0hBTkdFTE9HLnJzdApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2NvbmYucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29uZi5weQpp
bmRleCBlYmZmNmZmM2JmYTQ4Yzg4NDBkMjExNjQyMmM3ZmRmYjI5NTY0YjUzLi4zOWJhNWU0Zjg1
NDUyMTI2OTJhODM1ODE3NjUyYmJkZTZkNTQ3NzhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vY29uZi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29uZi5weQpAQCAtMTAsMTcg
KzEwLDE1IEBACiAjCiAjIEFsbCBjb25maWd1cmF0aW9uIHZhbHVlcyBoYXZlIGEgZGVmYXVsdDsg
dmFsdWVzIHRoYXQgYXJlIGNvbW1lbnRlZCBvdXQKICMgc2VydmUgdG8gc2hvdyB0aGUgZGVmYXVs
dC4KLQogIyBUaGUgdmVyc2lvbiBpbmZvIGZvciB0aGUgcHJvamVjdCB5b3UncmUgZG9jdW1lbnRp
bmcsIGFjdHMgYXMgcmVwbGFjZW1lbnQgZm9yCiAjIHx2ZXJzaW9ufCBhbmQgfHJlbGVhc2V8LCBh
bHNvIHVzZWQgaW4gdmFyaW91cyBvdGhlciBwbGFjZXMgdGhyb3VnaG91dCB0aGUKICMgYnVpbHQg
ZG9jdW1lbnRzLgogIwogIyBUaGUgZnVsbCB2ZXJzaW9uLCBpbmNsdWRpbmcgYWxwaGEvYmV0YS9y
YyB0YWdzLgogIyBUaGUgc2hvcnQgWC5ZIHZlcnNpb24uCi0KK2ltcG9ydCBkYXRldGltZQogaW1w
b3J0IG9zCiBpbXBvcnQgc3lzCi1pbXBvcnQgZGF0ZXRpbWUKIAogZnJvbSBfcHl0ZXN0IGltcG9y
dCBfX3ZlcnNpb25fXyBhcyB2ZXJzaW9uCiAKQEAgLTQyLDExICs0MCwxMyBAQCB0b2RvX2luY2x1
ZGVfdG9kb3MgPSAxCiAjIEFkZCBhbnkgU3BoaW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVy
ZSwgYXMgc3RyaW5ncy4gVGhleSBjYW4gYmUgZXh0ZW5zaW9ucwogIyBjb21pbmcgd2l0aCBTcGhp
bnggKG5hbWVkICdzcGhpbnguZXh0LionKSBvciB5b3VyIGN1c3RvbSBvbmVzLgogZXh0ZW5zaW9u
cyA9IFsKKyAgICAicHlnbWVudHNfcHl0ZXN0IiwKICAgICAic3BoaW54LmV4dC5hdXRvZG9jIiwK
LSAgICAic3BoaW54LmV4dC50b2RvIiwKICAgICAic3BoaW54LmV4dC5hdXRvc3VtbWFyeSIsCiAg
ICAgInNwaGlueC5leHQuaW50ZXJzcGhpbngiLAorICAgICJzcGhpbnguZXh0LnRvZG8iLAogICAg
ICJzcGhpbnguZXh0LnZpZXdjb2RlIiwKKyAgICAic3BoaW54X3JlbW92ZWRfaW4iLAogICAgICJz
cGhpbnhjb250cmliX3RyaW8iLAogXQogCkBAIC02NSw3ICs2NSw3IEBAIG1hc3Rlcl9kb2MgPSAi
Y29udGVudHMiCiAjIEdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2plY3QuCiBwcm9q
ZWN0ID0gdSJweXRlc3QiCiB5ZWFyID0gZGF0ZXRpbWUuZGF0ZXRpbWUudXRjbm93KCkueWVhcgot
Y29weXJpZ2h0ID0gdSIyMDE14oCTe30gLCBob2xnZXIga3Jla2VsIGFuZCBweXRlc3QtZGV2IHRl
YW0iLmZvcm1hdCh5ZWFyKQorY29weXJpZ2h0ID0gdSIyMDE14oCTMjAyMCwgaG9sZ2VyIGtyZWtl
bCBhbmQgcHl0ZXN0LWRldiB0ZWFtIgogCiAKICMgVGhlIGxhbmd1YWdlIGZvciBjb250ZW50IGF1
dG9nZW5lcmF0ZWQgYnkgU3BoaW54LiBSZWZlciB0byBkb2N1bWVudGF0aW9uCkBAIC0yNzUsNyAr
Mjc1LDcgQEAgbWFuX3BhZ2VzID0gWygidXNhZ2UiLCAicHl0ZXN0IiwgdSJweXRlc3QgdXNhZ2Ui
LCBbdSJob2xnZXIga3Jla2VsIGF0IG1lcmxpbnV4IGUKIGVwdWJfdGl0bGUgPSB1InB5dGVzdCIK
IGVwdWJfYXV0aG9yID0gdSJob2xnZXIga3Jla2VsIGF0IG1lcmxpbnV4IGV1IgogZXB1Yl9wdWJs
aXNoZXIgPSB1ImhvbGdlciBrcmVrZWwgYXQgbWVybGludXggZXUiCi1lcHViX2NvcHlyaWdodCA9
IHUiMjAxMywgaG9sZ2VyIGtyZWtlbCBldCBhbGlpIgorZXB1Yl9jb3B5cmlnaHQgPSB1IjIwMTMt
MjAyMCwgaG9sZ2VyIGtyZWtlbCBldCBhbGlpIgogCiAjIFRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4
dC4gSXQgZGVmYXVsdHMgdG8gdGhlIGxhbmd1YWdlIG9wdGlvbgogIyBvciBlbiBpZiB0aGUgbGFu
Z3VhZ2UgaXMgbm90IHNldC4KQEAgLTMyOSwxMyArMzI5LDEzIEBAIHRleGluZm9fZG9jdW1lbnRz
ID0gWwogCiAKICMgRXhhbXBsZSBjb25maWd1cmF0aW9uIGZvciBpbnRlcnNwaGlueDogcmVmZXIg
dG8gdGhlIFB5dGhvbiBzdGFuZGFyZCBsaWJyYXJ5LgotaW50ZXJzcGhpbnhfbWFwcGluZyA9IHsi
cHl0aG9uIjogKCJodHRwOi8vZG9jcy5weXRob24ub3JnLzMiLCBOb25lKX0KK2ludGVyc3BoaW54
X21hcHBpbmcgPSB7InB5dGhvbiI6ICgiaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMyIsIE5vbmUp
fQogCiAKIGRlZiBzZXR1cChhcHApOgogICAgICMgZnJvbSBzcGhpbnguZXh0LmF1dG9kb2MgaW1w
b3J0IGN1dF9saW5lcwogICAgICMgYXBwLmNvbm5lY3QoJ2F1dG9kb2MtcHJvY2Vzcy1kb2NzdHJp
bmcnLCBjdXRfbGluZXMoNCwgd2hhdD1bJ21vZHVsZSddKSkKLSAgICBhcHAuYWRkX2Rlc2NyaXB0
aW9uX3VuaXQoCisgICAgYXBwLmFkZF9vYmplY3RfdHlwZSgKICAgICAgICAgImNvbmZ2YWwiLAog
ICAgICAgICAiY29uZnZhbCIsCiAgICAgICAgIG9iam5hbWU9ImNvbmZpZ3VyYXRpb24gdmFsdWUi
LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2NvbmZ0ZXN0LnB5CmluZGV4IDFhNjJlMWI1ZGY1MzUwM2U4ZTMzZTVlMTA1OTVj
M2I1MWI1Yzg2MTMuLmI1MWFhZTViNjg1YThkZmE3YTE3NTZhN2NkNzVhN2QxMTcwNGQ5MDEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb25mdGVzdC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vY29uZnRlc3QucHkKQEAgLTEgKzEsMiBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KIGNvbGxlY3RfaWdub3JlID0gWyJjb25mLnB5Il0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9jb250ZW50cy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29udGVudHMucnN0Cmlu
ZGV4IDlmMWQ4ZDg1YWMyNWE2YTc4OGJiMTA2Mjg0MjI5ZGE0YzExZmY5MGIuLjFlYzUwMmMxZjJi
OGM1YWU3N2QzNmQ4OGI2NDQ0YzlkZWI2ODdjZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9jb250ZW50cy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRlbnRzLnJzdApA
QCAtMzMsMTIgKzMzLDE1IEBAIEZ1bGwgcHl0ZXN0IGRvY3VtZW50YXRpb24KICAgIHJlZmVyZW5j
ZQogCiAgICBnb29kcHJhY3RpY2VzCisgICBmbGFreQogICAgcHl0aG9ucGF0aAogICAgY3VzdG9t
aXplCiAgICBleGFtcGxlL2luZGV4CiAgICBiYXNoLWNvbXBsZXRpb24KIAogICAgYmFja3dhcmRz
LWNvbXBhdGliaWxpdHkKKyAgIGRlcHJlY2F0aW9ucworICAgcHkyNy1weTM0LWRlcHJlY2F0aW9u
CiAgICBoaXN0b3JpY2FsLW5vdGVzCiAgICBsaWNlbnNlCiAgICBjb250cmlidXRpbmcKQEAgLTQ3
LDYgKzUwLDcgQEAgRnVsbCBweXRlc3QgZG9jdW1lbnRhdGlvbgogICAgcHJvamVjdHMKICAgIGZh
cQogICAgY29udGFjdAorICAgdGlkZWxpZnQKIAogLi4gb25seTo6IGh0bWwKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2N1c3RvbWl6ZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
Y3VzdG9taXplLnJzdAppbmRleCBjMWEzNDk4YzdiNjdkNDhlY2M5YmNjZDQyMWI1ZTM4ZTM4OGNh
ZTcyLi43NzIxN2U5ZDJlM2VjNzgzMjU0ZjYyNzczOWY5YmI2Y2E2NzRhNjZiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vY3VzdG9taXplLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vY3VzdG9taXplLnJzdApAQCAtNSw3ICs1LDkgQEAgQ29tbWFuZCBsaW5lIG9wdGlvbnMgYW5k
IGNvbmZpZ3VyYXRpb24gZmlsZSBzZXR0aW5ncwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogWW91IGNhbiBnZXQgaGVs
cCBvbiBjb21tYW5kIGxpbmUgb3B0aW9ucyBhbmQgdmFsdWVzIGluIElOSS1zdHlsZQotY29uZmln
dXJhdGlvbnMgZmlsZXMgYnkgdXNpbmcgdGhlIGdlbmVyYWwgaGVscCBvcHRpb246OgorY29uZmln
dXJhdGlvbnMgZmlsZXMgYnkgdXNpbmcgdGhlIGdlbmVyYWwgaGVscCBvcHRpb246CisKKy4uIGNv
ZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLWggICAjIHByaW50cyBvcHRpb25zIF9hbmRf
IGNvbmZpZyBmaWxlIHNldHRpbmdzCiAKQEAgLTE4LDcgKzIwLDcgQEAgd2hpY2ggd2VyZSByZWdp
c3RlcmVkIGJ5IGluc3RhbGxlZCBwbHVnaW5zLgogSW5pdGlhbGl6YXRpb246IGRldGVybWluaW5n
IHJvb3RkaXIgYW5kIGluaWZpbGUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKLS4uIHZlcnNpb25hZGRlZDo6IDIuNworCiAKIHB5dGVzdCBkZXRlcm1p
bmVzIGEgYGByb290ZGlyYGAgZm9yIGVhY2ggdGVzdCBydW4gd2hpY2ggZGVwZW5kcyBvbgogdGhl
IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgKHNwZWNpZmllZCB0ZXN0IGZpbGVzLCBwYXRocykgYW5k
IG9uCkBAIC0zMiw3ICszNCw3IEBAIEhlcmUncyBhIHN1bW1hcnkgd2hhdCBgYHB5dGVzdGBgIHVz
ZXMgYGByb290ZGlyYGAgZm9yOgogICBjbGFzcyBuYW1lLCBmdW5jdGlvbiBuYW1lIGFuZCBwYXJh
bWV0cml6YXRpb24gKGlmIGFueSkuCiAKICogSXMgdXNlZCBieSBwbHVnaW5zIGFzIGEgc3RhYmxl
IGxvY2F0aW9uIHRvIHN0b3JlIHByb2plY3QvdGVzdCBydW4gc3BlY2lmaWMgaW5mb3JtYXRpb247
Ci0gIGZvciBleGFtcGxlLCB0aGUgaW50ZXJuYWwgOnJlZjpgY2FjaGUgPGNhY2hlPmAgcGx1Z2lu
IGNyZWF0ZXMgYSBgYC5jYWNoZWBgIHN1YmRpcmVjdG9yeQorICBmb3IgZXhhbXBsZSwgdGhlIGlu
dGVybmFsIDpyZWY6YGNhY2hlIDxjYWNoZT5gIHBsdWdpbiBjcmVhdGVzIGEgYGAucHl0ZXN0X2Nh
Y2hlYGAgc3ViZGlyZWN0b3J5CiAgIGluIGBgcm9vdGRpcmBgIHRvIHN0b3JlIGl0cyBjcm9zcy10
ZXN0IHJ1biBzdGF0ZS4KIAogSW1wb3J0YW50IHRvIGVtcGhhc2l6ZSB0aGF0IGBgcm9vdGRpcmBg
IGlzICoqTk9UKiogdXNlZCB0byBtb2RpZnkgYGBzeXMucGF0aGBgL2BgUFlUSE9OUEFUSGBgIG9y
CkBAIC04OCwxNiArOTAsMjAgQEAgVGhlIGBgY29uZmlnYGAgb2JqZWN0IHdpbGwgc3Vic2VxdWVu
dGx5IGNhcnJ5IHRoZXNlIGF0dHJpYnV0ZXM6CiAKIC0gYGBjb25maWcuaW5pZmlsZWBgOiB0aGUg
ZGV0ZXJtaW5lZCBpbmktZmlsZSwgbWF5IGJlIGBgTm9uZWBgLgogCi1UaGUgcm9vdGRpciBpcyB1
c2VkIGEgcmVmZXJlbmNlIGRpcmVjdG9yeSBmb3IgY29uc3RydWN0aW5nIHRlc3QKK1RoZSByb290
ZGlyIGlzIHVzZWQgYXMgYSByZWZlcmVuY2UgZGlyZWN0b3J5IGZvciBjb25zdHJ1Y3RpbmcgdGVz
dAogYWRkcmVzc2VzICgibm9kZWlkcyIpIGFuZCBjYW4gYmUgdXNlZCBhbHNvIGJ5IHBsdWdpbnMg
Zm9yIHN0b3JpbmcKIHBlci10ZXN0cnVuIGluZm9ybWF0aW9uLgogCi1FeGFtcGxlOjoKK0V4YW1w
bGU6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgcGF0aC90by90ZXN0ZGly
IHBhdGgvb3RoZXIvCiAKIHdpbGwgZGV0ZXJtaW5lIHRoZSBjb21tb24gYW5jZXN0b3IgYXMgYGBw
YXRoYGAgYW5kIHRoZW4KLWNoZWNrIGZvciBpbmktZmlsZXMgYXMgZm9sbG93czo6CitjaGVjayBm
b3IgaW5pLWZpbGVzIGFzIGZvbGxvd3M6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CiAKICAgICAj
IGZpcnN0IGxvb2sgZm9yIHB5dGVzdC5pbmkgZmlsZXMKICAgICBwYXRoL3B5dGVzdC5pbmkKQEAg
LTEyNywyNSArMTMzLDMzIEBAIHByb2dyZXNzIG91dHB1dCwgeW91IGNhbiB3cml0ZSBpdCBpbnRv
IGEgY29uZmlndXJhdGlvbiBmaWxlOgogCiAuLiBjb2RlLWJsb2NrOjogaW5pCiAKLSAgICAjIGNv
bnRlbnQgb2YgcHl0ZXN0LmluaQotICAgICMgKG9yIHRveC5pbmkgb3Igc2V0dXAuY2ZnKQorICAg
ICMgY29udGVudCBvZiBweXRlc3QuaW5pIG9yIHRveC5pbmkKKyAgICAjIHNldHVwLmNmZyBmaWxl
cyBzaG91bGQgdXNlIFt0b29sOnB5dGVzdF0gc2VjdGlvbiBpbnN0ZWFkCiAgICAgW3B5dGVzdF0K
ICAgICBhZGRvcHRzID0gLXJhIC1xCiAKIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gc2V0IGEgYGBQ
WVRFU1RfQURET1BUU2BgIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGFkZCBjb21tYW5kCi1saW5l
IG9wdGlvbnMgd2hpbGUgdGhlIGVudmlyb25tZW50IGlzIGluIHVzZTo6CitsaW5lIG9wdGlvbnMg
d2hpbGUgdGhlIGVudmlyb25tZW50IGlzIGluIHVzZToKKworLi4gY29kZS1ibG9jazo6IGJhc2gK
IAogICAgIGV4cG9ydCBQWVRFU1RfQURET1BUUz0iLXYiCiAKLUhlcmUncyBob3cgdGhlIGNvbW1h
bmQtbGluZSBpcyBidWlsdCBpbiB0aGUgcHJlc2VuY2Ugb2YgYGBhZGRvcHRzYGAgb3IgdGhlIGVu
dmlyb25tZW50IHZhcmlhYmxlOjoKK0hlcmUncyBob3cgdGhlIGNvbW1hbmQtbGluZSBpcyBidWls
dCBpbiB0aGUgcHJlc2VuY2Ugb2YgYGBhZGRvcHRzYGAgb3IgdGhlIGVudmlyb25tZW50IHZhcmlh
YmxlOgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAogCi0gICAgPHB5dGVzdC5pbmk6YWRkb3B0cz4g
JFBZVEVTVF9BRERPVFBTIDxleHRyYSBjb21tYW5kLWxpbmUgYXJndW1lbnRzPgorICAgIDxweXRl
c3QuaW5pOmFkZG9wdHM+ICRQWVRFU1RfQURET1BUUyA8ZXh0cmEgY29tbWFuZC1saW5lIGFyZ3Vt
ZW50cz4KIAotU28gaWYgdGhlIHVzZXIgZXhlY3V0ZXMgaW4gdGhlIGNvbW1hbmQtbGluZTo6CitT
byBpZiB0aGUgdXNlciBleGVjdXRlcyBpbiB0aGUgY29tbWFuZC1saW5lOgorCisuLiBjb2RlLWJs
b2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC1tIHNsb3cKIAotVGhlIGFjdHVhbCBjb21tYW5kIGxp
bmUgZXhlY3V0ZWQgaXM6OgorVGhlIGFjdHVhbCBjb21tYW5kIGxpbmUgZXhlY3V0ZWQgaXM6CisK
Ky4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLXJhIC1xIC12IC1tIHNsb3cKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2RlcHJlY2F0aW9ucy5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZGVwcmVjYXRpb25zLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTA1YzBhOTRhYzlkOTJm
Y2JjMmJmNjllZDQ1YWI2OWU5YjQxYjBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2RlcHJlY2F0aW9ucy5yc3QKQEAgLTAsMCArMSw1MzUgQEAKKy4uIF9kZXByZWNhdGlv
bnM6CisKK0RlcHJlY2F0aW9ucyBhbmQgUmVtb3ZhbHMKKz09PT09PT09PT09PT09PT09PT09PT09
PT0KKworVGhpcyBwYWdlIGxpc3RzIGFsbCBweXRlc3QgZmVhdHVyZXMgdGhhdCBhcmUgY3VycmVu
dGx5IGRlcHJlY2F0ZWQgb3IgaGF2ZSBiZWVuIHJlbW92ZWQgaW4gcGFzdCBtYWpvciByZWxlYXNl
cy4KK1RoZSBvYmplY3RpdmUgaXMgdG8gZ2l2ZSB1c2VycyBhIGNsZWFyIHJhdGlvbmFsZSB3aHkg
YSBjZXJ0YWluIGZlYXR1cmUgaGFzIGJlZW4gcmVtb3ZlZCwgYW5kIHdoYXQgYWx0ZXJuYXRpdmVz
CitzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLgorCisuLiBjb250ZW50czo6CisgICAgOmRlcHRoOiAz
CisgICAgOmxvY2FsOgorCisKK0RlcHJlY2F0ZWQgRmVhdHVyZXMKKy0tLS0tLS0tLS0tLS0tLS0t
LS0KKworQmVsb3cgaXMgYSBjb21wbGV0ZSBsaXN0IG9mIGFsbCBweXRlc3QgZmVhdHVyZXMgd2hp
Y2ggYXJlIGNvbnNpZGVyZWQgZGVwcmVjYXRlZC4gVXNpbmcgdGhvc2UgZmVhdHVyZXMgd2lsbCBp
c3N1ZQorOmNsYXNzOmBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMuUHl0ZXN0V2FybmluZ2Agb3Igc3Vi
Y2xhc3Nlcywgd2hpY2ggY2FuIGJlIGZpbHRlcmVkIHVzaW5nCis6cmVmOmBzdGFuZGFyZCB3YXJu
aW5nIGZpbHRlcnMgPHdhcm5pbmdzPmAuCisKKy4uIF9gcmFpc2VzIG1lc3NhZ2UgZGVwcmVjYXRl
ZGA6CisKK2BgIm1lc3NhZ2UiYGAgcGFyYW1ldGVyIG9mIGBgcHl0ZXN0LnJhaXNlc2BgCit+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiBkZXByZWNhdGVk
OjogNC4xCisKK0l0IGlzIGEgY29tbW9uIG1pc3Rha2UgdG8gdGhpbmsgdGhpcyBwYXJhbWV0ZXIg
d2lsbCBtYXRjaCB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UsIHdoaWxlIGluIGZhY3QKK2l0IG9ubHkg
c2VydmVzIHRvIHByb3ZpZGUgYSBjdXN0b20gbWVzc2FnZSBpbiBjYXNlIHRoZSBgYHB5dGVzdC5y
YWlzZXNgYCBjaGVjayBmYWlscy4gVG8gcHJldmVudAordXNlcnMgZnJvbSBtYWtpbmcgdGhpcyBt
aXN0YWtlLCBhbmQgYmVjYXVzZSBpdCBpcyBiZWxpZXZlZCB0byBiZSBsaXR0bGUgdXNlZCwgcHl0
ZXN0IGlzCitkZXByZWNhdGluZyBpdCB3aXRob3V0IHByb3ZpZGluZyBhbiBhbHRlcm5hdGl2ZSBm
b3IgdGhlIG1vbWVudC4KKworSWYgeW91IGhhdmUgYSB2YWxpZCB1c2UgY2FzZSBmb3IgdGhpcyBw
YXJhbWV0ZXIsIGNvbnNpZGVyIHRoYXQgdG8gb2J0YWluIHRoZSBzYW1lIHJlc3VsdHMKK3lvdSBj
YW4ganVzdCBjYWxsIGBgcHl0ZXN0LmZhaWxgYCBtYW51YWxseSBhdCB0aGUgZW5kIG9mIHRoZSBg
YHdpdGhgYCBzdGF0ZW1lbnQuCisKK0ZvciBleGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0
aG9uCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVGltZW91dEVycm9yLCBtZXNzYWdlPSJDbGll
bnQgZ290IHVuZXhwZWN0ZWQgbWVzc2FnZSIpOgorICAgICAgICB3YWl0X2Zvcih3ZWJzb2NrZXQu
cmVjdigpLCAwLjUpCisKKworQmVjb21lczoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFRpbWVvdXRFcnJvcik6CisgICAgICAgIHdhaXRfZm9yKHdl
YnNvY2tldC5yZWN2KCksIDAuNSkKKyAgICAgICAgcHl0ZXN0LmZhaWwoIkNsaWVudCBnb3QgdW5l
eHBlY3RlZCBtZXNzYWdlIikKKworCitJZiB5b3Ugc3RpbGwgaGF2ZSBjb25jZXJucyBhYm91dCB0
aGlzIGRlcHJlY2F0aW9uIGFuZCBmdXR1cmUgcmVtb3ZhbCwgcGxlYXNlIGNvbW1lbnQgb24KK2Bp
c3N1ZSAjMzk3NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8z
OTc0PmBfXy4KKworCitgYHB5dGVzdC5jb25maWdgYCBnbG9iYWwKK35+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fgorCisuLiBkZXByZWNhdGVkOjogNC4xCisKK1RoZSBgYHB5dGVzdC5jb25maWdgYCBn
bG9iYWwgb2JqZWN0IGlzIGRlcHJlY2F0ZWQuICBJbnN0ZWFkIHVzZQorYGByZXF1ZXN0LmNvbmZp
Z2BgICh2aWEgdGhlIGBgcmVxdWVzdGBgIGZpeHR1cmUpIG9yIGlmIHlvdSBhcmUgYSBwbHVnaW4g
YXV0aG9yCit1c2UgdGhlIGBgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpYGAgaG9vay4gTm90ZSB0
aGF0IG1hbnkgaG9va3MgY2FuIGFsc28gYWNjZXNzCit0aGUgYGBjb25maWdgYCBvYmplY3QgaW5k
aXJlY3RseSwgdGhyb3VnaCBgYHNlc3Npb24uY29uZmlnYGAgb3IgYGBpdGVtLmNvbmZpZ2BgIGZv
ciBleGFtcGxlLgorCisuLiBfcmFpc2VzLXdhcm5zLWV4ZWM6CisKK2BgcmFpc2VzYGAgLyBgYHdh
cm5zYGAgd2l0aCBhIHN0cmluZyBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50Cit+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiBkZXBy
ZWNhdGVkOjogNC4xCisKK1VzZSB0aGUgY29udGV4dCBtYW5hZ2VyIGZvcm0gb2YgdGhlc2UgaW5z
dGVhZC4gIFdoZW4gbmVjZXNzYXJ5LCBpbnZva2UgYGBleGVjYGAKK2RpcmVjdGx5LgorCitFeGFt
cGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBweXRlc3QucmFpc2VzKFplcm9E
aXZpc2lvbkVycm9yLCAiMSAvIDAiKQorICAgIHB5dGVzdC5yYWlzZXMoU3ludGF4RXJyb3IsICJh
ICQgYiIpCisKKyAgICBweXRlc3Qud2FybnMoRGVwcmVjYXRpb25XYXJuaW5nLCAibXlfZnVuY3Rp
b24oKSIpCisgICAgcHl0ZXN0Lndhcm5zKFN5bnRheFdhcm5pbmcsICJhc3NlcnQoMSwgMikiKQor
CitCZWNvbWVzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgorICAgICAgICAxIC8gMAorICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhTeW50YXhFcnJvcik6CisgICAgICAgIGV4ZWMoImEgJCBiIikgICMgZXhlYyBpcyBy
ZXF1aXJlZCBmb3IgaW52YWxpZCBzeW50YXgKKworICAgIHdpdGggcHl0ZXN0Lndhcm5zKERlcHJl
Y2F0aW9uV2FybmluZyk6CisgICAgICAgIG15X2Z1bmN0aW9uKCkKKyAgICB3aXRoIHB5dGVzdC53
YXJucyhTeW50YXhXYXJuaW5nKToKKyAgICAgICAgZXhlYygiYXNzZXJ0KDEsIDIpIikgICMgZXhl
YyBpcyB1c2VkIHRvIGF2b2lkIGEgdG9wLWxldmVsIHdhcm5pbmcKKworCisKKworCisKK1Jlc3Vs
dCBsb2cgKGBgLS1yZXN1bHQtbG9nYGApCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgor
CisKKworVGhlIGBgLS1yZXN1bHRsb2dgYCBjb21tYW5kIGxpbmUgb3B0aW9uIGhhcyBiZWVuIGRl
cHJlY2F0ZWQ6IGl0IGlzIGxpdHRsZSB1c2VkCithbmQgdGhlcmUgYXJlIG1vcmUgbW9kZXJuIGFu
ZCBiZXR0ZXIgYWx0ZXJuYXRpdmVzLCBmb3IgZXhhbXBsZSBgcHl0ZXN0LXRhcCA8aHR0cHM6Ly90
YXBweS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvPmBfLgorCitUaGlzIGZlYXR1cmUgd2lsbCBi
ZSBlZmZlY3RpdmVseSByZW1vdmVkIGluIHB5dGVzdCA0LjAgYXMgdGhlIHRlYW0gaW50ZW5kcyB0
byBpbmNsdWRlIGEgYmV0dGVyIGFsdGVybmF0aXZlIGluIHRoZSBjb3JlLgorCitJZiB5b3UgaGF2
ZSBhbnkgY29uY2VybnMsIHBsZWFzZSBkb24ndCBoZXNpdGF0ZSB0byBgb3BlbiBhbiBpc3N1ZSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcz5gX18uCisKK1JlbW92
ZWQgRmVhdHVyZXMKKy0tLS0tLS0tLS0tLS0tLS0KKworQXMgc3RhdGVkIGluIG91ciA6cmVmOmBi
YWNrd2FyZHMtY29tcGF0aWJpbGl0eWAgcG9saWN5LCBkZXByZWNhdGVkIGZlYXR1cmVzIGFyZSBy
ZW1vdmVkIG9ubHkgaW4gbWFqb3IgcmVsZWFzZXMgYWZ0ZXIKK2FuIGFwcHJvcHJpYXRlIHBlcmlv
ZCBvZiBkZXByZWNhdGlvbiBoYXMgcGFzc2VkLgorCitVc2luZyBgYENsYXNzYGAgaW4gY3VzdG9t
IENvbGxlY3RvcnMKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiB2
ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitVc2luZyBvYmplY3RzIG5hbWVkIGBgIkNsYXNzImBgIGFz
IGEgd2F5IHRvIGN1c3RvbWl6ZSB0aGUgdHlwZSBvZiBub2RlcyB0aGF0IGFyZSBjb2xsZWN0ZWQg
aW4gYGBDb2xsZWN0b3JgYAorc3ViY2xhc3NlcyBoYXMgYmVlbiBkZXByZWNhdGVkLiBVc2VycyBp
bnN0ZWFkIHNob3VsZCB1c2UgYGBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtYGAgdG8gY3VzdG9t
aXplIG5vZGUgdHlwZXMgZHVyaW5nCitjb2xsZWN0aW9uLgorCitUaGlzIGlzc3VlIHNob3VsZCBh
ZmZlY3Qgb25seSBhZHZhbmNlZCBwbHVnaW5zIHdobyBjcmVhdGUgbmV3IGNvbGxlY3Rpb24gdHlw
ZXMsIHNvIGlmIHlvdSBzZWUgdGhpcyB3YXJuaW5nCittZXNzYWdlIHBsZWFzZSBjb250YWN0IHRo
ZSBhdXRob3JzIHNvIHRoZXkgY2FuIGNoYW5nZSB0aGUgY29kZS4KKworCittYXJrcyBpbiBgYHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitBcHBseWluZyBtYXJrcyB0byB2YWx1
ZXMgb2YgYSBgYHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAgY2FsbCBpcyBub3cgZGVwcmVjYXRl
ZC4gRm9yIGV4YW1wbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgImEsIGIiLAorICAgICAgICBbCisgICAgICAgICAg
ICAoMywgOSksCisgICAgICAgICAgICBweXRlc3QubWFyay54ZmFpbChyZWFzb249ImZsYWt5Iiko
NiwgMzYpLAorICAgICAgICAgICAgKDEwLCAxMDApLAorICAgICAgICAgICAgKDIwLCAyMDApLAor
ICAgICAgICAgICAgKDQwLCA0MDApLAorICAgICAgICAgICAgKDUwLCA1MDApLAorICAgICAgICBd
LAorICAgICkKKyAgICBkZWYgdGVzdF9mb28oYSwgYik6CisgICAgICAgIC4uLgorCitUaGlzIGNv
ZGUgYXBwbGllcyB0aGUgYGBweXRlc3QubWFyay54ZmFpbChyZWFzb249ImZsYWt5IilgYCBtYXJr
IHRvIHRoZSBgYCg2LCAzNilgYCB2YWx1ZSBvZiB0aGUgYWJvdmUgcGFyYW1ldHJpemF0aW9uCitj
YWxsLgorCitUaGlzIHdhcyBjb25zaWRlcmVkIGhhcmQgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCwg
YW5kIGFsc28gaXRzIGltcGxlbWVudGF0aW9uIHByZXNlbnRlZCBwcm9ibGVtcyB0byB0aGUgY29k
ZSBwcmV2ZW50aW5nCitmdXJ0aGVyIGludGVybmFsIGltcHJvdmVtZW50cyBpbiB0aGUgbWFya3Mg
YXJjaGl0ZWN0dXJlLgorCitUbyB1cGRhdGUgdGhlIGNvZGUsIHVzZSBgYHB5dGVzdC5wYXJhbWBg
OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoCisgICAgICAgICJhLCBiIiwKKyAgICAgICAgWworICAgICAgICAgICAgKDMsIDkpLAorICAg
ICAgICAgICAgcHl0ZXN0LnBhcmFtKDYsIDM2LCBtYXJrcz1weXRlc3QubWFyay54ZmFpbChyZWFz
b249ImZsYWt5IikpLAorICAgICAgICAgICAgKDEwLCAxMDApLAorICAgICAgICAgICAgKDIwLCAy
MDApLAorICAgICAgICAgICAgKDQwLCA0MDApLAorICAgICAgICAgICAgKDUwLCA1MDApLAorICAg
ICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9mb28oYSwgYik6CisgICAgICAgIC4uLgorCisK
K2BgcHl0ZXN0X2Z1bmNhcmdfX2BgIHByZWZpeAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
CisKKy4uIHZlcnNpb25yZW1vdmVkOjogNC4wCisKK0luIHZlcnkgZWFybHkgcHl0ZXN0IHZlcnNp
b25zIGZpeHR1cmVzIGNvdWxkIGJlIGRlZmluZWQgdXNpbmcgdGhlIGBgcHl0ZXN0X2Z1bmNhcmdf
X2BgIHByZWZpeDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgZGVmIHB5dGVzdF9m
dW5jYXJnX19kYXRhKCk6CisgICAgICAgIHJldHVybiBTb21lRGF0YSgpCisKK1N3aXRjaCBvdmVy
IHRvIHRoZSBgYEBweXRlc3QuZml4dHVyZWBgIGRlY29yYXRvcjoKKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgorCisgICAgQHB5dGVzdC5maXh0dXJlCisgICAgZGVmIGRhdGEoKToKKyAgICAgICAg
cmV0dXJuIFNvbWVEYXRhKCkKKworCisKK1tweXRlc3RdIHNlY3Rpb24gaW4gc2V0dXAuY2ZnIGZp
bGVzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVt
b3ZlZDo6IDQuMAorCitgYFtweXRlc3RdYGAgc2VjdGlvbnMgaW4gYGBzZXR1cC5jZmdgYCBmaWxl
cyBzaG91bGQgbm93IGJlIG5hbWVkIGBgW3Rvb2w6cHl0ZXN0XWBgCit0byBhdm9pZCBjb25mbGlj
dHMgd2l0aCBvdGhlciBkaXN0dXRpbHMgY29tbWFuZHMuCisKKworTWV0YWZ1bmMuYWRkY2FsbAor
fn5+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCis6bWV0aDpgX3B5
dGVzdC5weXRob24uTWV0YWZ1bmMuYWRkY2FsbGAgd2FzIGEgcHJlY3Vyc29yIHRvIHRoZSBjdXJy
ZW50IHBhcmFtZXRyaXplZCBtZWNoYW5pc20uIFVzZXJzIHNob3VsZCB1c2UKKzptZXRoOmBfcHl0
ZXN0LnB5dGhvbi5NZXRhZnVuYy5wYXJhbWV0cml6ZWAgaW5zdGVhZC4KKworRXhhbXBsZToKKwor
Li4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyht
ZXRhZnVuYyk6CisgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoeyJpIjogMX0sIGlkPSIxIikKKyAg
ICAgICAgbWV0YWZ1bmMuYWRkY2FsbCh7ImkiOiAyfSwgaWQ9IjIiKQorCitCZWNvbWVzOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1l
dGFmdW5jKToKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoImkiLCBbMSwgMl0sIGlkcz1b
IjEiLCAiMiJdKQorCisKK2BgY2FjaGVkX3NldHVwYGAKK35+fn5+fn5+fn5+fn5+fn4KKworLi4g
dmVyc2lvbnJlbW92ZWQ6OiA0LjAKKworYGByZXF1ZXN0LmNhY2hlZF9zZXR1cGBgIHdhcyB0aGUg
cHJlY3Vyc29yIG9mIHRoZSBzZXR1cC90ZWFyZG93biBtZWNoYW5pc20gYXZhaWxhYmxlIHRvIGZp
eHR1cmVzLgorCitFeGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICBkZWYgZGJfc2Vzc2lvbigpOgorICAgICAgICByZXR1cm4gcmVxdWVz
dC5jYWNoZWRfc2V0dXAoCisgICAgICAgICAgICBzZXR1cD1TZXNzaW9uLmNyZWF0ZSwgdGVhcmRv
d249bGFtYmRhIHNlc3Npb246IHNlc3Npb24uY2xvc2UoKSwgc2NvcGU9Im1vZHVsZSIKKyAgICAg
ICAgKQorCitUaGlzIHNob3VsZCBiZSB1cGRhdGVkIHRvIG1ha2UgdXNlIG9mIHN0YW5kYXJkIGZp
eHR1cmUgbWVjaGFuaXNtczoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgQHB5dGVz
dC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgIGRlZiBkYl9zZXNzaW9uKCk6CisgICAgICAg
IHNlc3Npb24gPSBTZXNzaW9uLmNyZWF0ZSgpCisgICAgICAgIHlpZWxkIHNlc3Npb24KKyAgICAg
ICAgc2Vzc2lvbi5jbG9zZSgpCisKKworWW91IGNhbiBjb25zdWx0IGBmdW5jYXJnIGNvbXBhcmlz
b24gc2VjdGlvbiBpbiB0aGUgZG9jcyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0
L2Z1bmNhcmdfY29tcGFyZS5odG1sPmBfIGZvcgorbW9yZSBpbmZvcm1hdGlvbi4KKworCitweXRl
c3RfcGx1Z2lucyBpbiBub24tdG9wLWxldmVsIGNvbmZ0ZXN0IGZpbGVzCit+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKy4uIHZlcnNpb25yZW1vdmVkOjog
NC4wCisKK0RlZmluaW5nIGBgcHl0ZXN0X3BsdWdpbnNgYCBpcyBub3cgZGVwcmVjYXRlZCBpbiBu
b24tdG9wLWxldmVsIGNvbmZ0ZXN0LnB5CitmaWxlcyBiZWNhdXNlIHRoZXkgd2lsbCBhY3RpdmF0
ZSByZWZlcmVuY2VkIHBsdWdpbnMgKmdsb2JhbGx5Kiwgd2hpY2ggaXMgc3VycHJpc2luZyBiZWNh
dXNlIGZvciBhbGwgb3RoZXIgcHl0ZXN0CitmZWF0dXJlcyBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMg
YXJlIG9ubHkgKmFjdGl2ZSogZm9yIHRlc3RzIGF0IG9yIGJlbG93IGl0LgorCisKK2BgQ29uZmln
Lndhcm5gYCBhbmQgYGBOb2RlLndhcm5gYAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+CisKKy4uIHZlcnNpb25yZW1vdmVkOjogNC4wCisKK1Rob3NlIG1ldGhvZHMgd2VyZSBwYXJ0
IG9mIHRoZSBpbnRlcm5hbCBweXRlc3Qgd2FybmluZ3Mgc3lzdGVtLCBidXQgc2luY2UgYGAzLjhg
YCBweXRlc3QgaXMgdXNpbmcgdGhlIGJ1aWx0aW4gd2FybmluZworc3lzdGVtIGZvciBpdHMgb3du
IHdhcm5pbmdzLCBzbyB0aG9zZSB0d28gZnVuY3Rpb25zIGFyZSBub3cgZGVwcmVjYXRlZC4KKwor
YGBDb25maWcud2FybmBgIHNob3VsZCBiZSByZXBsYWNlZCBieSBjYWxscyB0byB0aGUgc3RhbmRh
cmQgYGB3YXJuaW5ncy53YXJuYGAsIGV4YW1wbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24K
KworICAgIGNvbmZpZy53YXJuKCJDMSIsICJzb21lIHdhcm5pbmciKQorCitCZWNvbWVzOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICB3YXJuaW5ncy53YXJuKHB5dGVzdC5QeXRlc3RX
YXJuaW5nKCJzb21lIHdhcm5pbmciKSkKKworYGBOb2RlLndhcm5gYCBub3cgc3VwcG9ydHMgdHdv
IHNpZ25hdHVyZXM6CisKKyogYGBub2RlLndhcm4oUHl0ZXN0V2FybmluZygic29tZSBtZXNzYWdl
IikpYGA6IGlzIG5vdyB0aGUgKipyZWNvbW1lbmRlZCoqIHdheSB0byBjYWxsIHRoaXMgZnVuY3Rp
b24uCisgIFRoZSB3YXJuaW5nIGluc3RhbmNlIG11c3QgYmUgYSBQeXRlc3RXYXJuaW5nIG9yIHN1
YmNsYXNzLgorCisqIGBgbm9kZS53YXJuKCJDSSIsICJzb21lIG1lc3NhZ2UiKWBgOiB0aGlzIGNv
ZGUvbWVzc2FnZSBmb3JtIGhhcyBiZWVuICoqcmVtb3ZlZCoqIGFuZCBzaG91bGQgYmUgY29udmVy
dGVkIHRvIHRoZSB3YXJuaW5nIGluc3RhbmNlIGZvcm0gYWJvdmUuCisKK3JlY29yZF94bWxfcHJv
cGVydHkKK35+fn5+fn5+fn5+fn5+fn5+fn4KKworLi4gdmVyc2lvbnJlbW92ZWQ6OiA0LjAKKwor
VGhlIGBgcmVjb3JkX3htbF9wcm9wZXJ0eWBgIGZpeHR1cmUgaXMgbm93IGRlcHJlY2F0ZWQgaW4g
ZmF2b3Igb2YgdGhlIG1vcmUgZ2VuZXJpYyBgYHJlY29yZF9wcm9wZXJ0eWBgLCB3aGljaAorY2Fu
IGJlIHVzZWQgYnkgb3RoZXIgY29uc3VtZXJzIChmb3IgZXhhbXBsZSBgYHB5dGVzdC1odG1sYGAp
IHRvIG9idGFpbiBjdXN0b20gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRlc3QgcnVuLgorCitUaGlz
IGlzIGp1c3QgYSBtYXR0ZXIgb2YgcmVuYW1pbmcgdGhlIGZpeHR1cmUgYXMgdGhlIEFQSSBpcyB0
aGUgc2FtZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgZGVmIHRlc3RfZm9vKHJl
Y29yZF94bWxfcHJvcGVydHkpOgorICAgICAgICAuLi4KKworQ2hhbmdlIHRvOgorCisuLiBjb2Rl
LWJsb2NrOjogcHl0aG9uCisKKyAgICBkZWYgdGVzdF9mb28ocmVjb3JkX3Byb3BlcnR5KToKKyAg
ICAgICAgLi4uCisKKworUGFzc2luZyBjb21tYW5kLWxpbmUgc3RyaW5nIHRvIGBgcHl0ZXN0Lm1h
aW4oKWBgCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K
KworLi4gdmVyc2lvbnJlbW92ZWQ6OiA0LjAKKworUGFzc2luZyBhIGNvbW1hbmQtbGluZSBzdHJp
bmcgdG8gYGBweXRlc3QubWFpbigpYGAgaXMgZGVwcmVjYXRlZDoKKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgorCisgICAgcHl0ZXN0Lm1haW4oIi12IC1zIikKKworUGFzcyBhIGxpc3QgaW5zdGVh
ZDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgcHl0ZXN0Lm1haW4oWyItdiIsICIt
cyJdKQorCisKK0J5IHBhc3NpbmcgYSBzdHJpbmcsIHVzZXJzIGV4cGVjdCB0aGF0IHB5dGVzdCB3
aWxsIGludGVycHJldCB0aGF0IGNvbW1hbmQtbGluZSB1c2luZyB0aGUgc2hlbGwgcnVsZXMgdGhl
eSBhcmUgd29ya2luZworb24gKGZvciBleGFtcGxlIGBgYmFzaGBgIG9yIGBgUG93ZXJzaGVsbGBg
KSwgYnV0IHRoaXMgaXMgdmVyeSBoYXJkL2ltcG9zc2libGUgdG8gZG8gaW4gYSBwb3J0YWJsZSB3
YXkuCisKKworQ2FsbGluZyBmaXh0dXJlcyBkaXJlY3RseQorfn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitDYWxsaW5nIGEgZml4dHVyZSBmdW5j
dGlvbiBkaXJlY3RseSwgYXMgb3Bwb3NlZCB0byByZXF1ZXN0IHRoZW0gaW4gYSB0ZXN0IGZ1bmN0
aW9uLCBpcyBkZXByZWNhdGVkLgorCitGb3IgZXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6IHB5
dGhvbgorCisgICAgQHB5dGVzdC5maXh0dXJlCisgICAgZGVmIGNlbGwoKToKKyAgICAgICAgcmV0
dXJuIC4uLgorCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgZnVsbF9jZWxsKCk6Cisg
ICAgICAgIGNlbGwgPSBjZWxsKCkKKyAgICAgICAgY2VsbC5tYWtlX2Z1bGwoKQorICAgICAgICBy
ZXR1cm4gY2VsbAorCitUaGlzIGlzIGEgZ3JlYXQgc291cmNlIG9mIGNvbmZ1c2lvbiB0byBuZXcg
dXNlcnMsIHdoaWNoIHdpbGwgb2Z0ZW4gY2FsbCB0aGUgZml4dHVyZSBmdW5jdGlvbnMgYW5kIHJl
cXVlc3QgdGhlbSBmcm9tIHRlc3QgZnVuY3Rpb25zIGludGVyY2hhbmdlYWJseSwgd2hpY2ggYnJl
YWtzIHRoZSBmaXh0dXJlIHJlc29sdXRpb24gbW9kZWwuCisKK0luIHRob3NlIGNhc2VzIGp1c3Qg
cmVxdWVzdCB0aGUgZnVuY3Rpb24gZGlyZWN0bHkgaW4gdGhlIGRlcGVuZGVudCBmaXh0dXJlOgor
CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYg
Y2VsbCgpOgorICAgICAgICByZXR1cm4gLi4uCisKKworICAgIEBweXRlc3QuZml4dHVyZQorICAg
IGRlZiBmdWxsX2NlbGwoY2VsbCk6CisgICAgICAgIGNlbGwubWFrZV9mdWxsKCkKKyAgICAgICAg
cmV0dXJuIGNlbGwKKworQWx0ZXJuYXRpdmVseSBpZiB0aGUgZml4dHVyZSBmdW5jdGlvbiBpcyBj
YWxsZWQgbXVsdGlwbGUgdGltZXMgaW5zaWRlIGEgdGVzdCAobWFraW5nIGl0IGhhcmQgdG8gYXBw
bHkgdGhlIGFib3ZlIHBhdHRlcm4pIG9yCitpZiB5b3Ugd291bGQgbGlrZSB0byBtYWtlIG1pbmlt
YWwgY2hhbmdlcyB0byB0aGUgY29kZSwgeW91IGNhbiBjcmVhdGUgYSBmaXh0dXJlIHdoaWNoIGNh
bGxzIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiB0b2dldGhlcgord2l0aCB0aGUgYGBuYW1lYGAgcGFy
YW1ldGVyOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBkZWYgY2VsbCgpOgorICAg
ICAgICByZXR1cm4gLi4uCisKKworICAgIEBweXRlc3QuZml4dHVyZShuYW1lPSJjZWxsIikKKyAg
ICBkZWYgY2VsbF9maXh0dXJlKCk6CisgICAgICAgIHJldHVybiBjZWxsKCkKKworCitgYHlpZWxk
YGAgdGVzdHMKK35+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitw
eXRlc3Qgc3VwcG9ydGVkIGBgeWllbGRgYC1zdHlsZSB0ZXN0cywgd2hlcmUgYSB0ZXN0IGZ1bmN0
aW9uIGFjdHVhbGx5IGBgeWllbGRgYCBmdW5jdGlvbnMgYW5kIHZhbHVlcwordGhhdCBhcmUgdGhl
biB0dXJuZWQgaW50byBwcm9wZXIgdGVzdCBtZXRob2RzLiBFeGFtcGxlOgorCisuLiBjb2RlLWJs
b2NrOjogcHl0aG9uCisKKyAgICBkZWYgY2hlY2soeCwgeSk6CisgICAgICAgIGFzc2VydCB4ICoq
IHggPT0geQorCisKKyAgICBkZWYgdGVzdF9zcXVhcmVkKCk6CisgICAgICAgIHlpZWxkIGNoZWNr
LCAyLCA0CisgICAgICAgIHlpZWxkIGNoZWNrLCAzLCA5CisKK1RoaXMgd291bGQgcmVzdWx0IGlu
dG8gdHdvIGFjdHVhbCB0ZXN0IGZ1bmN0aW9ucyBiZWluZyBnZW5lcmF0ZWQuCisKK1RoaXMgZm9y
bSBvZiB0ZXN0IGZ1bmN0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBmaXh0dXJlcyBwcm9wZXJseSwgYW5k
IHVzZXJzIHNob3VsZCBzd2l0Y2ggdG8gYGBweXRlc3QubWFyay5wYXJhbWV0cml6ZWBgOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIngs
IHkiLCBbKDIsIDQpLCAoMywgOSldKQorICAgIGRlZiB0ZXN0X3NxdWFyZWQoeCwgeSk6CisgICAg
ICAgIGFzc2VydCB4ICoqIHggPT0geQorCitJbnRlcm5hbCBjbGFzc2VzIGFjY2Vzc2VkIHRocm91
Z2ggYGBOb2RlYGAKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgor
CisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitBY2Nlc3Mgb2YgYGBNb2R1bGVgYCwgYGBGdW5j
dGlvbmBgLCBgYENsYXNzYGAsIGBgSW5zdGFuY2VgYCwgYGBGaWxlYGAgYW5kIGBgSXRlbWBgIHRo
cm91Z2ggYGBOb2RlYGAgaW5zdGFuY2VzIG5vdyBpc3N1ZQordGhpcyB3YXJuaW5nOjoKKworICAg
IHVzYWdlIG9mIEZ1bmN0aW9uLk1vZHVsZSBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIHB5dGVz
dC5Nb2R1bGUgaW5zdGVhZAorCitVc2VycyBzaG91bGQganVzdCBgYGltcG9ydCBweXRlc3RgYCBh
bmQgYWNjZXNzIHRob3NlIG9iamVjdHMgdXNpbmcgdGhlIGBgcHl0ZXN0YGAgbW9kdWxlLgorCitU
aGlzIGhhcyBiZWVuIGRvY3VtZW50ZWQgYXMgZGVwcmVjYXRlZCBmb3IgeWVhcnMsIGJ1dCBvbmx5
IG5vdyB3ZSBhcmUgYWN0dWFsbHkgZW1pdHRpbmcgZGVwcmVjYXRpb24gd2FybmluZ3MuCisKK2Bg
Tm9kZS5nZXRfbWFya2VyYGAKK35+fn5+fn5+fn5+fn5+fn5+fn4KKworLi4gdmVyc2lvbnJlbW92
ZWQ6OiA0LjAKKworQXMgcGFydCBvZiBhIGxhcmdlIDpyZWY6YG1hcmtlci1yZXZhbXBgLCA6bWV0
aDpgX3B5dGVzdC5ub2Rlcy5Ob2RlLmdldF9tYXJrZXJgIGlzIGRlcHJlY2F0ZWQuIFNlZQorOnJl
ZjpgdGhlIGRvY3VtZW50YXRpb24gPHVwZGF0ZSBtYXJrZXIgY29kZT5gIG9uIHRpcHMgb24gaG93
IHRvIHVwZGF0ZSB5b3VyIGNvZGUuCisKKworYGBzb21lZnVuY3Rpb24ubWFya25hbWVgYAorfn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVtb3ZlZDo6IDQuMAorCitBcyBw
YXJ0IG9mIGEgbGFyZ2UgOnJlZjpgbWFya2VyLXJldmFtcGAgd2UgYWxyZWFkeSBkZXByZWNhdGVk
IHVzaW5nIGBgTWFya0luZm9gYAordGhlIG9ubHkgY29ycmVjdCB3YXkgdG8gZ2V0IG1hcmtlcnMg
b2YgYW4gZWxlbWVudCBpcyB2aWEgYGBub2RlLml0ZXJfbWFya2VycyhuYW1lKWBgLgorCisKK2Bg
cHl0ZXN0X25hbWVzcGFjZWBgCit+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9ucmVt
b3ZlZDo6IDQuMAorCitUaGlzIGhvb2sgaXMgZGVwcmVjYXRlZCBiZWNhdXNlIGl0IGdyZWF0bHkg
Y29tcGxpY2F0ZXMgdGhlIHB5dGVzdCBpbnRlcm5hbHMgcmVnYXJkaW5nIGNvbmZpZ3VyYXRpb24g
YW5kIGluaXRpYWxpemF0aW9uLCBtYWtpbmcgc29tZQorYnVnIGZpeGVzIGFuZCByZWZhY3Rvcmlu
Z3MgaW1wb3NzaWJsZS4KKworRXhhbXBsZSBvZiB1c2FnZToKKworLi4gY29kZS1ibG9jazo6IHB5
dGhvbgorCisgICAgY2xhc3MgTXlTeW1ib2w6CisgICAgICAgIC4uLgorCisKKyAgICBkZWYgcHl0
ZXN0X25hbWVzcGFjZSgpOgorICAgICAgICByZXR1cm4geyJteV9zeW1ib2wiOiBNeVN5bWJvbCgp
fQorCisKK1BsdWdpbiBhdXRob3JzIHJlbHlpbmcgb24gdGhpcyBob29rIHNob3VsZCBpbnN0ZWFk
IHJlcXVpcmUgdGhhdCB1c2VycyBub3cgaW1wb3J0IHRoZSBwbHVnaW4gbW9kdWxlcyBkaXJlY3Rs
eSAod2l0aCBhbiBhcHByb3ByaWF0ZSBwdWJsaWMgQVBJKS4KKworQXMgYSBzdG9wZ2FwIG1lYXN1
cmUsIHBsdWdpbiBhdXRob3JzIG1heSBzdGlsbCBpbmplY3QgdGhlaXIgbmFtZXMgaW50byBweXRl
c3QncyBuYW1lc3BhY2UsIHVzdWFsbHkgZHVyaW5nIGBgcHl0ZXN0X2NvbmZpZ3VyZWBgOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKworICAgIGRlZiBw
eXRlc3RfY29uZmlndXJlKCk6CisgICAgICAgIHB5dGVzdC5teV9zeW1ib2wgPSBNeVN5bWJvbCgp
CisKKworCisKK1JlaW50ZXJwcmV0YXRpb24gbW9kZSAoYGAtLWFzc2VydD1yZWludGVycGBgKQor
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKy4uIHZlcnNp
b25yZW1vdmVkOjogMy4wCisKK1JlaW50ZXJwcmV0YXRpb24gbW9kZSBoYXMgbm93IGJlZW4gcmVt
b3ZlZCBhbmQgb25seSBwbGFpbiBhbmQgcmV3cml0ZQorbW9kZSBhcmUgYXZhaWxhYmxlLCBjb25z
ZXF1ZW50bHkgdGhlIGBgLS1hc3NlcnQ9cmVpbnRlcnBgYCBvcHRpb24gaXMKK25vIGxvbmdlciBh
dmFpbGFibGUuICBUaGlzIGFsc28gbWVhbnMgZmlsZXMgaW1wb3J0ZWQgZnJvbSBwbHVnaW5zIG9y
CitgYGNvbmZ0ZXN0LnB5YGAgd2lsbCBub3QgYmVuZWZpdCBmcm9tIGltcHJvdmVkIGFzc2VydGlv
bnMgYnkKK2RlZmF1bHQsIHlvdSBzaG91bGQgdXNlIGBgcHl0ZXN0LnJlZ2lzdGVyX2Fzc2VydF9y
ZXdyaXRlKClgYCB0bworZXhwbGljaXRseSB0dXJuIG9uIGFzc2VydGlvbiByZXdyaXRpbmcgZm9y
IHRob3NlIGZpbGVzLgorCitSZW1vdmVkIGNvbW1hbmQtbGluZSBvcHRpb25zCit+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+CisKKy4uIHZlcnNpb25yZW1vdmVkOjogMy4wCisKK1RoZSBmb2xs
b3dpbmcgZGVwcmVjYXRlZCBjb21tYW5kbGluZSBvcHRpb25zIHdlcmUgcmVtb3ZlZDoKKworKiBg
YC0tZ2Vuc2NyaXB0YGA6IG5vIGxvbmdlciBzdXBwb3J0ZWQ7CisqIGBgLS1uby1hc3NlcnRgYDog
dXNlIGBgLS1hc3NlcnQ9cGxhaW5gYCBpbnN0ZWFkOworKiBgYC0tbm9tYWdpY2BgOiB1c2UgYGAt
LWFzc2VydD1wbGFpbmBgIGluc3RlYWQ7CisqIGBgLS1yZXBvcnRgYDogdXNlIGBgLXJgYCBpbnN0
ZWFkOworCitweS50ZXN0LVgqIGVudHJ5IHBvaW50cworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K
KworLi4gdmVyc2lvbnJlbW92ZWQ6OiAzLjAKKworUmVtb3ZlZCBhbGwgYGBweS50ZXN0LVgqYGAg
ZW50cnkgcG9pbnRzLiBUaGUgdmVyc2lvbmVkLCBzdWZmaXhlZCBlbnRyeSBwb2ludHMKK3dlcmUg
bmV2ZXIgZG9jdW1lbnRlZCBhbmQgYSBsZWZ0b3ZlciBmcm9tIGEgcHJlLXZpcnR1YWxlbnYgZXJh
LiBUaGVzZSBlbnRyeQorcG9pbnRzIGFsc28gY3JlYXRlZCBicm9rZW4gZW50cnkgcG9pbnRzIGlu
IHdoZWVscywgc28gcmVtb3ZpbmcgdGhlbSBhbHNvCityZW1vdmVzIGEgc291cmNlIG9mIGNvbmZ1
c2lvbiBmb3IgdXNlcnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZGV2ZWxvcG1l
bnRfZ3VpZGUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2RldmVsb3BtZW50X2d1aWRlLnJzdApp
bmRleCA2OWU4NjY5NDNlNTc1ODEwMzQxMDRkYWEyZmE3NzAzMDNmNmM5ZmQ0Li42NDk0MTkzMTZk
MTg2ZWU3NjA5YjA4MWRjZTk0Nzc1ZTIyM2IzNDU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZGV2ZWxvcG1lbnRfZ3VpZGUucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kZXZl
bG9wbWVudF9ndWlkZS5yc3QKQEAgLTM5LDYgKzM5LDExIEBAIGF2b2lkIGNyZWF0aW5nIGxhYmVs
cyBqdXN0IGZvciB0aGUgc2FrZSBvZiBjcmVhdGluZyB0aGVtLgogCiBFYWNoIGxhYmVsIHNob3Vs
ZCBpbmNsdWRlIGEgZGVzY3JpcHRpb24gaW4gdGhlIEdpdEh1YidzIGludGVyZmFjZSBzdGF0aW5n
IGl0cyBwdXJwb3NlLgogCitMYWJlbHMgYXJlIG1hbmFnZWQgdXNpbmcgYGxhYmVscyA8aHR0cHM6
Ly9naXRodWIuY29tL2hhY2tlYnJvdC9sYWJlbHM+YF8uIEFsbCB0aGUgbGFiZWxzIGluIHRoZSBy
ZXBvc2l0b3J5CithcmUga2VwdCBpbiBgYC5naXRodWIvbGFiZWxzLnRvbWxgYCwgc28gYW55IGNo
YW5nZXMgc2hvdWxkIGJlIHZpYSBQUnMgdG8gdGhhdCBmaWxlLgorQWZ0ZXIgYSBQUiBpcyBhY2Nl
cHRlZCBhbmQgbWVyZ2VkLCBvbmUgb2YgdGhlIG1haW50YWluZXJzIG11c3QgbWFudWFsbHkgc3lu
Y2hyb25pemUgdGhlIGxhYmVscyBmaWxlIHdpdGggdGhlCitHaXRIdWIgcmVwb3NpdG9yeS4KKwog
VGVtcG9yYXJ5IGxhYmVscwogfn5+fn5+fn5+fn5+fn5+fgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZG9jdGVzdC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZG9jdGVzdC5yc3QK
aW5kZXggOTQ4OGVlODI2NTcyOTJmMTM3ZmRlM2Q0MjIxYWZiMGY2NGQzOWExYS4uMmNiNzBhZjcy
NTg4NjlkNWNhMDcxNzA5NThiZThiMzk1NDNlZGM3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2RvY3Rlc3QucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kb2N0ZXN0LnJzdApA
QCAtNCw1MSArNCw0NyBAQCBEb2N0ZXN0IGludGVncmF0aW9uIGZvciBtb2R1bGVzIGFuZCB0ZXN0
IGZpbGVzCiAKIEJ5IGRlZmF1bHQgYWxsIGZpbGVzIG1hdGNoaW5nIHRoZSBgYHRlc3QqLnR4dGBg
IHBhdHRlcm4gd2lsbAogYmUgcnVuIHRocm91Z2ggdGhlIHB5dGhvbiBzdGFuZGFyZCBgYGRvY3Rl
c3RgYCBtb2R1bGUuICBZb3UKLWNhbiBjaGFuZ2UgdGhlIHBhdHRlcm4gYnkgaXNzdWluZzo6Citj
YW4gY2hhbmdlIHRoZSBwYXR0ZXJuIGJ5IGlzc3Vpbmc6CiAKLSAgICBweXRlc3QgLS1kb2N0ZXN0
LWdsb2I9JyoucnN0JwotCi1vbiB0aGUgY29tbWFuZCBsaW5lLiBTaW5jZSB2ZXJzaW9uIGBgMi45
YGAsIGBgLS1kb2N0ZXN0LWdsb2JgYAotY2FuIGJlIGdpdmVuIG11bHRpcGxlIHRpbWVzIGluIHRo
ZSBjb21tYW5kLWxpbmUuCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCi0uLiB2ZXJzaW9uYWRkZWQ6
OiAzLjEKKyAgICBweXRlc3QgLS1kb2N0ZXN0LWdsb2I9JyoucnN0JwogCi0gICAgWW91IGNhbiBz
cGVjaWZ5IHRoZSBlbmNvZGluZyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhvc2UgZG9jdGVzdCBm
aWxlcwotICAgIHVzaW5nIHRoZSBgYGRvY3Rlc3RfZW5jb2RpbmdgYCBpbmkgb3B0aW9uOgorb24g
dGhlIGNvbW1hbmQgbGluZS4gYGAtLWRvY3Rlc3QtZ2xvYmBgIGNhbiBiZSBnaXZlbiBtdWx0aXBs
ZSB0aW1lcyBpbiB0aGUgY29tbWFuZC1saW5lLgogCi0gICAgLi4gY29kZS1ibG9jazo6IGluaQor
SWYgeW91IHRoZW4gaGF2ZSBhIHRleHQgZmlsZSBsaWtlIHRoaXM6CiAKLSAgICAgICAgIyBjb250
ZW50IG9mIHB5dGVzdC5pbmkKLSAgICAgICAgW3B5dGVzdF0KLSAgICAgICAgZG9jdGVzdF9lbmNv
ZGluZyA9IGxhdGluMQorLi4gY29kZS1ibG9jazo6IHRleHQKIAotICAgIFRoZSBkZWZhdWx0IGVu
Y29kaW5nIGlzIFVURi04LgorICAgICMgY29udGVudCBvZiB0ZXN0X2V4YW1wbGUudHh0CiAKLVlv
dSBjYW4gYWxzbyB0cmlnZ2VyIHJ1bm5pbmcgb2YgZG9jdGVzdHMKLWZyb20gZG9jc3RyaW5ncyBp
biBhbGwgcHl0aG9uIG1vZHVsZXMgKGluY2x1ZGluZyByZWd1bGFyCi1weXRob24gdGVzdCBtb2R1
bGVzKTo6CisgICAgaGVsbG8gdGhpcyBpcyBhIGRvY3Rlc3QKKyAgICA+Pj4geCA9IDMKKyAgICA+
Pj4geAorICAgIDMKIAotICAgIHB5dGVzdCAtLWRvY3Rlc3QtbW9kdWxlcwordGhlbiB5b3UgY2Fu
IGp1c3QgaW52b2tlIGBgcHl0ZXN0YGAgZGlyZWN0bHk6CiAKLVlvdSBjYW4gbWFrZSB0aGVzZSBj
aGFuZ2VzIHBlcm1hbmVudCBpbiB5b3VyIHByb2plY3QgYnkKLXB1dHRpbmcgdGhlbSBpbnRvIGEg
cHl0ZXN0LmluaSBmaWxlIGxpa2UgdGhpczoKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAotLi4g
Y29kZS1ibG9jazo6IGluaQorICAgICQgcHl0ZXN0CisgICAgPT09PT09PT09PT09PT09PT09PT09
PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
ICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngu
eSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2Fj
aGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVjdGVkIDEgaXRlbQog
Ci0gICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkKLSAgICBbcHl0ZXN0XQotICAgIGFkZG9wdHMg
PSAtLWRvY3Rlc3QtbW9kdWxlcworICAgIHRlc3RfZXhhbXBsZS50eHQgLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQogCi1JZiB5b3UgdGhl
biBoYXZlIGEgdGV4dCBmaWxlIGxpa2UgdGhpczo6CisgICAgPT09PT09PT09PT09PT09PT09PT09
PT09PSAxIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQog
Ci0gICAgIyBjb250ZW50IG9mIGV4YW1wbGUucnN0CitCeSBkZWZhdWx0LCBweXRlc3Qgd2lsbCBj
b2xsZWN0IGBgdGVzdCoudHh0YGAgZmlsZXMgbG9va2luZyBmb3IgZG9jdGVzdCBkaXJlY3RpdmVz
LCBidXQgeW91CitjYW4gcGFzcyBhZGRpdGlvbmFsIGdsb2JzIHVzaW5nIHRoZSBgYC0tZG9jdGVz
dC1nbG9iYGAgb3B0aW9uIChtdWx0aS1hbGxvd2VkKS4KIAotICAgIGhlbGxvIHRoaXMgaXMgYSBk
b2N0ZXN0Ci0gICAgPj4+IHggPSAzCi0gICAgPj4+IHgKLSAgICAzCitJbiBhZGRpdGlvbiB0byB0
ZXh0IGZpbGVzLCB5b3UgY2FuIGFsc28gZXhlY3V0ZSBkb2N0ZXN0cyBkaXJlY3RseSBmcm9tIGRv
Y3N0cmluZ3Mgb2YgeW91ciBjbGFzc2VzCithbmQgZnVuY3Rpb25zLCBpbmNsdWRpbmcgZnJvbSB0
ZXN0IG1vZHVsZXM6CiAKLWFuZCBhbm90aGVyIGxpa2UgdGhpczo6CisuLiBjb2RlLWJsb2NrOjog
cHl0aG9uCiAKICAgICAjIGNvbnRlbnQgb2YgbXltb2R1bGUucHkKICAgICBkZWYgc29tZXRoaW5n
KCk6CkBAIC01OCwzMSArNTQsNjAgQEAgYW5kIGFub3RoZXIgbGlrZSB0aGlzOjoKICAgICAgICAg
IiIiCiAgICAgICAgIHJldHVybiA0MgogCi10aGVuIHlvdSBjYW4ganVzdCBpbnZva2UgYGBweXRl
c3RgYCB3aXRob3V0IGNvbW1hbmQgbGluZSBvcHRpb25zOjoKKy4uIGNvZGUtYmxvY2s6OiBiYXNo
CiAKLSAgICAkIHB5dGVzdAorICAgICQgcHl0ZXN0IC0tZG9jdGVzdC1tb2R1bGVzCiAgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0
ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9D
X1RNUERJUiwgaW5pZmlsZTogcHl0ZXN0LmluaQotICAgIGNvbGxlY3RlZCAxIGl0ZW0KKyAgICBw
bGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBs
dWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisg
ICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgorICAgIGNvbGxlY3RlZCAyIGl0ZW1zCiAKLSAg
ICBteW1vZHVsZS5weSAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbMTAwJV0KKyAgICBteW1vZHVsZS5weSAuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIDUwJV0KKyAgICB0ZXN0X2V4
YW1wbGUudHh0IC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbMTAwJV0KIAotICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gMSBwYXNzZWQgaW4g
MC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICA9PT09PT09PT09PT09
PT09PT09PT09PT09IDIgcGFzc2VkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09
PT09PT09CiAKLUl0IGlzIHBvc3NpYmxlIHRvIHVzZSBmaXh0dXJlcyB1c2luZyB0aGUgYGBnZXRm
aXh0dXJlYGAgaGVscGVyOjoKK1lvdSBjYW4gbWFrZSB0aGVzZSBjaGFuZ2VzIHBlcm1hbmVudCBp
biB5b3VyIHByb2plY3QgYnkKK3B1dHRpbmcgdGhlbSBpbnRvIGEgcHl0ZXN0LmluaSBmaWxlIGxp
a2UgdGhpczoKIAotICAgICMgY29udGVudCBvZiBleGFtcGxlLnJzdAotICAgID4+PiB0bXAgPSBn
ZXRmaXh0dXJlKCd0bXBkaXInKQotICAgID4+PiAuLi4KLSAgICA+Pj4KKy4uIGNvZGUtYmxvY2s6
OiBpbmkKIAotQWxzbywgOnJlZjpgdXNlZml4dHVyZXNgIGFuZCA6cmVmOmBhdXRvdXNlYCBmaXh0
dXJlcyBhcmUgc3VwcG9ydGVkCi13aGVuIGV4ZWN1dGluZyB0ZXh0IGRvY3Rlc3QgZmlsZXMuCisg
ICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkKKyAgICBbcHl0ZXN0XQorICAgIGFkZG9wdHMgPSAt
LWRvY3Rlc3QtbW9kdWxlcworCisuLiBub3RlOjoKKworICAgIFRoZSBidWlsdGluIHB5dGVzdCBk
b2N0ZXN0IHN1cHBvcnRzIG9ubHkgYGBkb2N0ZXN0YGAgYmxvY2tzLCBidXQgaWYgeW91IGFyZSBs
b29raW5nCisgICAgZm9yIG1vcmUgYWR2YW5jZWQgY2hlY2tpbmcgb3ZlciAqYWxsKiB5b3VyIGRv
Y3VtZW50YXRpb24sCisgICAgaW5jbHVkaW5nIGRvY3Rlc3RzLCBgYC4uIGNvZGVibG9jazo6IHB5
dGhvbmBgIFNwaGlueCBkaXJlY3RpdmUgc3VwcG9ydCwKKyAgICBhbmQgYW55IG90aGVyIGV4YW1w
bGVzIHlvdXIgZG9jdW1lbnRhdGlvbiBtYXkgaW5jbHVkZSwgeW91IG1heSB3aXNoIHRvCisgICAg
Y29uc2lkZXIgYFN5YmlsIDxodHRwczovL3N5YmlsLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9p
bmRleC5odG1sPmBfXy4KKyAgICBJdCBwcm92aWRlcyBweXRlc3QgaW50ZWdyYXRpb24gb3V0IG9m
IHRoZSBib3guCisKKworRW5jb2RpbmcKKy0tLS0tLS0tCisKK1RoZSBkZWZhdWx0IGVuY29kaW5n
IGlzICoqVVRGLTgqKiwgYnV0IHlvdSBjYW4gc3BlY2lmeSB0aGUgZW5jb2RpbmcKK3RoYXQgd2ls
bCBiZSB1c2VkIGZvciB0aG9zZSBkb2N0ZXN0IGZpbGVzIHVzaW5nIHRoZQorYGBkb2N0ZXN0X2Vu
Y29kaW5nYGAgaW5pIG9wdGlvbjoKKworLi4gY29kZS1ibG9jazo6IGluaQorCisgICAgIyBjb250
ZW50IG9mIHB5dGVzdC5pbmkKKyAgICBbcHl0ZXN0XQorICAgIGRvY3Rlc3RfZW5jb2RpbmcgPSBs
YXRpbjEKKworVXNpbmcgJ2RvY3Rlc3QnIG9wdGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLVRoZSBzdGFuZGFyZCBgYGRvY3Rlc3RgYCBtb2R1bGUgcHJvdmlkZXMgc29tZSBzZXR0aW5n
IGZsYWdzIHRvIGNvbmZpZ3VyZSB0aGUKLXN0cmljdG5lc3Mgb2YgZG9jdGVzdCB0ZXN0cy4gSW4g
cHl0ZXN0LCB5b3UgY2FuIGVuYWJsZSB0aG9zZSBmbGFncyB1c2luZyB0aGUKLWNvbmZpZ3VyYXRp
b24gZmlsZS4gVG8gbWFrZSBweXRlc3QgaWdub3JlIHRyYWlsaW5nIHdoaXRlc3BhY2VzIGFuZCBp
Z25vcmUKK1RoZSBzdGFuZGFyZCBgYGRvY3Rlc3RgYCBtb2R1bGUgcHJvdmlkZXMgc29tZSBgb3B0
aW9ucyA8aHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L2RvY3Rlc3QuaHRtbCNvcHRp
b24tZmxhZ3M+YF9fCit0byBjb25maWd1cmUgdGhlIHN0cmljdG5lc3Mgb2YgZG9jdGVzdCB0ZXN0
cy4gSW4gcHl0ZXN0LCB5b3UgY2FuIGVuYWJsZSB0aG9zZSBmbGFncyB1c2luZyB0aGUKK2NvbmZp
Z3VyYXRpb24gZmlsZS4KKworRm9yIGV4YW1wbGUsIHRvIG1ha2UgcHl0ZXN0IGlnbm9yZSB0cmFp
bGluZyB3aGl0ZXNwYWNlcyBhbmQgaWdub3JlCiBsZW5ndGh5IGV4Y2VwdGlvbiBzdGFjayB0cmFj
ZXMgeW91IGNhbiBqdXN0IHdyaXRlOgogCiAuLiBjb2RlLWJsb2NrOjogaW5pCkBAIC05OSwzNCAr
MTI0LDY3IEBAIFB5dGhvbiAzIHVuY2hhbmdlZDoKICogYGBBTExPV19CWVRFU2BgOiB3aGVuIGVu
YWJsZWQsIHRoZSBgYGJgYCBwcmVmaXggaXMgc3RyaXBwZWQgZnJvbSBieXRlIHN0cmluZ3MKICAg
aW4gZXhwZWN0ZWQgZG9jdGVzdCBvdXRwdXQuCiAKLUFzIHdpdGggYW55IG90aGVyIG9wdGlvbiBm
bGFnLCB0aGVzZSBmbGFncyBjYW4gYmUgZW5hYmxlZCBpbiBgYHB5dGVzdC5pbmlgYCB1c2luZwot
dGhlIGBgZG9jdGVzdF9vcHRpb25mbGFnc2BgIGluaSBvcHRpb246Ci0KLS4uIGNvZGUtYmxvY2s6
OiBpbmkKLQotICAgIFtweXRlc3RdCi0gICAgZG9jdGVzdF9vcHRpb25mbGFncyA9IEFMTE9XX1VO
SUNPREUgQUxMT1dfQllURVMKLQorQWx0ZXJuYXRpdmVseSwgb3B0aW9ucyBjYW4gYmUgZW5hYmxl
ZCBieSBhbiBpbmxpbmUgY29tbWVudCBpbiB0aGUgZG9jIHRlc3QKK2l0c2VsZjoKIAotQWx0ZXJu
YXRpdmVseSwgaXQgY2FuIGJlIGVuYWJsZWQgYnkgYW4gaW5saW5lIGNvbW1lbnQgaW4gdGhlIGRv
YyB0ZXN0Ci1pdHNlbGY6OgorLi4gY29kZS1ibG9jazo6IHJzdAogCiAgICAgIyBjb250ZW50IG9m
IGV4YW1wbGUucnN0CiAgICAgPj4+IGdldF91bmljb2RlX2dyZWV0aW5nKCkgICMgZG9jdGVzdDog
K0FMTE9XX1VOSUNPREUKICAgICAnSGVsbG8nCiAKLUJ5IGRlZmF1bHQsIHB5dGVzdCB3b3VsZCBy
ZXBvcnQgb25seSB0aGUgZmlyc3QgZmFpbHVyZSBmb3IgYSBnaXZlbiBkb2N0ZXN0LiAgSWYKLXlv
dSB3YW50IHRvIGNvbnRpbnVlIHRoZSB0ZXN0IGV2ZW4gd2hlbiB5b3UgaGF2ZSBmYWlsdXJlcywg
ZG86OgorQnkgZGVmYXVsdCwgcHl0ZXN0IHdvdWxkIHJlcG9ydCBvbmx5IHRoZSBmaXJzdCBmYWls
dXJlIGZvciBhIGdpdmVuIGRvY3Rlc3QuIElmCit5b3Ugd2FudCB0byBjb250aW51ZSB0aGUgdGVz
dCBldmVuIHdoZW4geW91IGhhdmUgZmFpbHVyZXMsIGRvOgorCisuLiBjb2RlLWJsb2NrOjogYmFz
aAogCiAgICAgcHl0ZXN0IC0tZG9jdGVzdC1tb2R1bGVzIC0tZG9jdGVzdC1jb250aW51ZS1vbi1m
YWlsdXJlCiAKIAotLi4gX2Bkb2N0ZXN0X25hbWVzcGFjZWA6CitPdXRwdXQgZm9ybWF0CistLS0t
LS0tLS0tLS0tCisKK1lvdSBjYW4gY2hhbmdlIHRoZSBkaWZmIG91dHB1dCBmb3JtYXQgb24gZmFp
bHVyZSBmb3IgeW91ciBkb2N0ZXN0cworYnkgdXNpbmcgb25lIG9mIHN0YW5kYXJkIGRvY3Rlc3Qg
bW9kdWxlcyBmb3JtYXQgaW4gb3B0aW9ucworKHNlZSA6ZGF0YTpgcHl0aG9uOmRvY3Rlc3QuUkVQ
T1JUX1VESUZGYCwgOmRhdGE6YHB5dGhvbjpkb2N0ZXN0LlJFUE9SVF9DRElGRmAsCis6ZGF0YTpg
cHl0aG9uOmRvY3Rlc3QuUkVQT1JUX05ESUZGYCwgOmRhdGE6YHB5dGhvbjpkb2N0ZXN0LlJFUE9S
VF9PTkxZX0ZJUlNUX0ZBSUxVUkVgKToKKworLi4gY29kZS1ibG9jazo6IGJhc2gKKworICAgIHB5
dGVzdCAtLWRvY3Rlc3QtbW9kdWxlcyAtLWRvY3Rlc3QtcmVwb3J0IG5vbmUKKyAgICBweXRlc3Qg
LS1kb2N0ZXN0LW1vZHVsZXMgLS1kb2N0ZXN0LXJlcG9ydCB1ZGlmZgorICAgIHB5dGVzdCAtLWRv
Y3Rlc3QtbW9kdWxlcyAtLWRvY3Rlc3QtcmVwb3J0IGNkaWZmCisgICAgcHl0ZXN0IC0tZG9jdGVz
dC1tb2R1bGVzIC0tZG9jdGVzdC1yZXBvcnQgbmRpZmYKKyAgICBweXRlc3QgLS1kb2N0ZXN0LW1v
ZHVsZXMgLS1kb2N0ZXN0LXJlcG9ydCBvbmx5X2ZpcnN0X2ZhaWx1cmUKKworCitweXRlc3Qtc3Bl
Y2lmaWMgZmVhdHVyZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitTb21lIGZlYXR1cmVz
IGFyZSBwcm92aWRlZCB0byBtYWtlIHdyaXRpbmcgZG9jdGVzdHMgZWFzaWVyIG9yIHdpdGggYmV0
dGVyIGludGVncmF0aW9uIHdpdGgKK3lvdXIgZXhpc3RpbmcgdGVzdCBzdWl0ZS4gS2VlcCBpbiBt
aW5kIGhvd2V2ZXIgdGhhdCBieSB1c2luZyB0aG9zZSBmZWF0dXJlcyB5b3Ugd2lsbCBtYWtlCit5
b3VyIGRvY3Rlc3RzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBzdGFuZGFyZCBgYGRvY3Rlc3RzYGAg
bW9kdWxlLgogCi1UaGUgJ2RvY3Rlc3RfbmFtZXNwYWNlJyBmaXh0dXJlCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitVc2luZyBmaXh0dXJlcworXl5eXl5eXl5eXl5eXl4KIAotLi4g
dmVyc2lvbmFkZGVkOjogMy4wCitJdCBpcyBwb3NzaWJsZSB0byB1c2UgZml4dHVyZXMgdXNpbmcg
dGhlIGBgZ2V0Zml4dHVyZWBgIGhlbHBlcjoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAg
ICMgY29udGVudCBvZiBleGFtcGxlLnJzdAorICAgID4+PiB0bXAgPSBnZXRmaXh0dXJlKCd0bXBk
aXInKQorICAgID4+PiAuLi4KKyAgICA+Pj4KKworQWxzbywgOnJlZjpgdXNlZml4dHVyZXNgIGFu
ZCA6cmVmOmBhdXRvdXNlYCBmaXh0dXJlcyBhcmUgc3VwcG9ydGVkCit3aGVuIGV4ZWN1dGluZyB0
ZXh0IGRvY3Rlc3QgZmlsZXMuCisKKworLi4gX2Bkb2N0ZXN0X25hbWVzcGFjZWA6CisKKydkb2N0
ZXN0X25hbWVzcGFjZScgZml4dHVyZQorXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAKIFRo
ZSBgYGRvY3Rlc3RfbmFtZXNwYWNlYGAgZml4dHVyZSBjYW4gYmUgdXNlZCB0byBpbmplY3QgaXRl
bXMgaW50byB0aGUKIG5hbWVzcGFjZSBpbiB3aGljaCB5b3VyIGRvY3Rlc3RzIHJ1bi4gSXQgaXMg
aW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoaW4KQEAgLTE1MiwxOSArMjEwLDE4IEBAIHdoaWNoIGNh
biB0aGVuIGJlIHVzZWQgaW4geW91ciBkb2N0ZXN0cyBkaXJlY3RseTo6CiAgICAgICAgICIiIgog
ICAgICAgICBwYXNzCiAKK05vdGUgdGhhdCBsaWtlIHRoZSBub3JtYWwgYGBjb25mdGVzdC5weWBg
LCB0aGUgZml4dHVyZXMgYXJlIGRpc2NvdmVyZWQgaW4gdGhlIGRpcmVjdG9yeSB0cmVlIGNvbmZ0
ZXN0IGlzIGluLgorTWVhbmluZyB0aGF0IGlmIHlvdSBwdXQgeW91ciBkb2N0ZXN0IHdpdGggeW91
ciBzb3VyY2UgY29kZSwgdGhlIHJlbGV2YW50IGNvbmZ0ZXN0LnB5IG5lZWRzIHRvIGJlIGluIHRo
ZSBzYW1lIGRpcmVjdG9yeSB0cmVlLgorRml4dHVyZXMgd2lsbCBub3QgYmUgZGlzY292ZXJlZCBp
biBhIHNpYmxpbmcgZGlyZWN0b3J5IHRyZWUhCiAKLU91dHB1dCBmb3JtYXQKLS0tLS0tLS0tLS0t
LS0KK1NraXBwaW5nIHRlc3RzIGR5bmFtaWNhbGx5CiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e
XgogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKKy4uIHZlcnNpb25hZGRlZDo6IDQuNAogCi1Zb3Ug
Y2FuIGNoYW5nZSB0aGUgZGlmZiBvdXRwdXQgZm9ybWF0IG9uIGZhaWx1cmUgZm9yIHlvdXIgZG9j
dGVzdHMKLWJ5IHVzaW5nIG9uZSBvZiBzdGFuZGFyZCBkb2N0ZXN0IG1vZHVsZXMgZm9ybWF0IGlu
IG9wdGlvbnMKLShzZWUgOmRhdGE6YHB5dGhvbjpkb2N0ZXN0LlJFUE9SVF9VRElGRmAsIDpkYXRh
OmBweXRob246ZG9jdGVzdC5SRVBPUlRfQ0RJRkZgLAotOmRhdGE6YHB5dGhvbjpkb2N0ZXN0LlJF
UE9SVF9ORElGRmAsIDpkYXRhOmBweXRob246ZG9jdGVzdC5SRVBPUlRfT05MWV9GSVJTVF9GQUlM
VVJFYCk6OgorWW91IGNhbiB1c2UgYGBweXRlc3Quc2tpcGBgIHRvIGR5bmFtaWNhbGx5IHNraXAg
ZG9jdGVzdHMuIEZvciBleGFtcGxlOjoKIAotICAgIHB5dGVzdCAtLWRvY3Rlc3QtbW9kdWxlcyAt
LWRvY3Rlc3QtcmVwb3J0IG5vbmUKLSAgICBweXRlc3QgLS1kb2N0ZXN0LW1vZHVsZXMgLS1kb2N0
ZXN0LXJlcG9ydCB1ZGlmZgotICAgIHB5dGVzdCAtLWRvY3Rlc3QtbW9kdWxlcyAtLWRvY3Rlc3Qt
cmVwb3J0IGNkaWZmCi0gICAgcHl0ZXN0IC0tZG9jdGVzdC1tb2R1bGVzIC0tZG9jdGVzdC1yZXBv
cnQgbmRpZmYKLSAgICBweXRlc3QgLS1kb2N0ZXN0LW1vZHVsZXMgLS1kb2N0ZXN0LXJlcG9ydCBv
bmx5X2ZpcnN0X2ZhaWx1cmUKKyAgICA+Pj4gaW1wb3J0IHN5cywgcHl0ZXN0CisgICAgPj4+IGlm
IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKToKKyAgICAuLi4gICAgIHB5dGVzdC5za2lw
KCd0aGlzIGRvY3Rlc3QgZG9lcyBub3Qgd29yayBvbiBXaW5kb3dzJykKKyAgICAuLi4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9mYWlsdXJlX2RlbW8u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZmFpbHVyZV9kZW1vLnB5
CmluZGV4IGRjMjdmNWRmYmMxMmQ5MDZhMTJhNGJlMTliMzhjNmNjY2ZiNmFlNjMuLmJhOTEwZWY2
YTg4YzAxM2U4ODhiMDhiMjIwOGEzYmQxYzgxYzk1MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9mYWlsdXJlX2RlbW8ucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2ZhaWx1cmVfZGVtby5weQpAQCAtMSw2ICsxLDcg
QEAKLWZyb20gcHl0ZXN0IGltcG9ydCByYWlzZXMKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBp
bXBvcnQgX3B5dGVzdC5fY29kZQotaW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0Citmcm9tIHB5dGVz
dCBpbXBvcnQgcmFpc2VzCiAKIAogZGVmIG90aGVyZnVuYyhhLCBiKToKQEAgLTE1LDE5ICsxNiwx
MyBAQCBkZWYgb3RoZXJmdW5jX211bHRpKGEsIGIpOgogICAgIGFzc2VydCBhID09IGIKIAogCitA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhcmFtMSwgcGFyYW0yIiwgWygzLCA2KV0pCiBkZWYg
dGVzdF9nZW5lcmF0aXZlKHBhcmFtMSwgcGFyYW0yKToKICAgICBhc3NlcnQgcGFyYW0xICogMiA8
IHBhcmFtMgogCiAKLWRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgotICAgIGlm
ICJwYXJhbTEiIGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lczoKLSAgICAgICAgbWV0YWZ1bmMuYWRk
Y2FsbChmdW5jYXJncz1kaWN0KHBhcmFtMT0zLCBwYXJhbTI9NikpCi0KLQogY2xhc3MgVGVzdEZh
aWxpbmcob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X3NpbXBsZShzZWxmKToKLQogICAgICAgICBk
ZWYgZigpOgogICAgICAgICAgICAgcmV0dXJuIDQyCiAKQEAgLTQwLDcgKzM1LDYgQEAgY2xhc3Mg
VGVzdEZhaWxpbmcob2JqZWN0KToKICAgICAgICAgb3RoZXJmdW5jX211bHRpKDQyLCA2ICogOSkK
IAogICAgIGRlZiB0ZXN0X25vdChzZWxmKToKLQogICAgICAgICBkZWYgZigpOgogICAgICAgICAg
ICAgcmV0dXJuIDQyCiAKQEAgLTQ4LDcgKzQyLDYgQEAgY2xhc3MgVGVzdEZhaWxpbmcob2JqZWN0
KToKIAogCiBjbGFzcyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMob2JqZWN0KToKLQogICAg
IGRlZiB0ZXN0X2VxX3RleHQoc2VsZik6CiAgICAgICAgIGFzc2VydCAic3BhbSIgPT0gImVnZ3Mi
CiAKQEAgLTEwNCw5ICs5NywzMiBAQCBjbGFzcyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMo
b2JqZWN0KToKICAgICAgICAgdGV4dCA9ICJoZWFkICIgKiA1MCArICJmIiAqIDcwICsgInRhaWwg
IiAqIDIwCiAgICAgICAgIGFzc2VydCAiZiIgKiA3MCBub3QgaW4gdGV4dAogCisgICAgZGVmIHRl
c3RfZXFfZGF0YWNsYXNzKHNlbGYpOgorICAgICAgICBmcm9tIGRhdGFjbGFzc2VzIGltcG9ydCBk
YXRhY2xhc3MKKworICAgICAgICBAZGF0YWNsYXNzCisgICAgICAgIGNsYXNzIEZvbyhvYmplY3Qp
OgorICAgICAgICAgICAgYTogaW50CisgICAgICAgICAgICBiOiBzdHIKKworICAgICAgICBsZWZ0
ID0gRm9vKDEsICJiIikKKyAgICAgICAgcmlnaHQgPSBGb28oMSwgImMiKQorICAgICAgICBhc3Nl
cnQgbGVmdCA9PSByaWdodAorCisgICAgZGVmIHRlc3RfZXFfYXR0cnMoc2VsZik6CisgICAgICAg
IGltcG9ydCBhdHRyCisKKyAgICAgICAgQGF0dHIucworICAgICAgICBjbGFzcyBGb28ob2JqZWN0
KToKKyAgICAgICAgICAgIGEgPSBhdHRyLmliKCkKKyAgICAgICAgICAgIGIgPSBhdHRyLmliKCkK
KworICAgICAgICBsZWZ0ID0gRm9vKDEsICJiIikKKyAgICAgICAgcmlnaHQgPSBGb28oMSwgImMi
KQorICAgICAgICBhc3NlcnQgbGVmdCA9PSByaWdodAogCi1kZWYgdGVzdF9hdHRyaWJ1dGUoKToK
IAorZGVmIHRlc3RfYXR0cmlidXRlKCk6CiAgICAgY2xhc3MgRm9vKG9iamVjdCk6CiAgICAgICAg
IGIgPSAxCiAKQEAgLTExNSw3ICsxMzEsNiBAQCBkZWYgdGVzdF9hdHRyaWJ1dGUoKToKIAogCiBk
ZWYgdGVzdF9hdHRyaWJ1dGVfaW5zdGFuY2UoKToKLQogICAgIGNsYXNzIEZvbyhvYmplY3QpOgog
ICAgICAgICBiID0gMQogCkBAIC0xMjMsOSArMTM4LDcgQEAgZGVmIHRlc3RfYXR0cmlidXRlX2lu
c3RhbmNlKCk6CiAKIAogZGVmIHRlc3RfYXR0cmlidXRlX2ZhaWx1cmUoKToKLQogICAgIGNsYXNz
IEZvbyhvYmplY3QpOgotCiAgICAgICAgIGRlZiBfZ2V0X2Ioc2VsZik6CiAgICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oIkZhaWxlZCB0byBnZXQgYXR0cmliIikKIApAQCAtMTM2LDcgKzE0OSw2
IEBAIGRlZiB0ZXN0X2F0dHJpYnV0ZV9mYWlsdXJlKCk6CiAKIAogZGVmIHRlc3RfYXR0cmlidXRl
X211bHRpcGxlKCk6Ci0KICAgICBjbGFzcyBGb28ob2JqZWN0KToKICAgICAgICAgYiA9IDEKIApA
QCAtMTUxLDEzICsxNjMsMTIgQEAgZGVmIGdsb2JmKHgpOgogCiAKIGNsYXNzIFRlc3RSYWlzZXMo
b2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X3JhaXNlcyhzZWxmKToKLSAgICAgICAgcyA9ICJxd2Ui
ICAjIE5PUUEKLSAgICAgICAgcmFpc2VzKFR5cGVFcnJvciwgImludChzKSIpCisgICAgICAgIHMg
PSAicXdlIgorICAgICAgICByYWlzZXMoVHlwZUVycm9yLCBpbnQsIHMpCiAKICAgICBkZWYgdGVz
dF9yYWlzZXNfZG9lc250KHNlbGYpOgotICAgICAgICByYWlzZXMoSU9FcnJvciwgImludCgnMycp
IikKKyAgICAgICAgcmFpc2VzKElPRXJyb3IsIGludCwgIjMiKQogCiAgICAgZGVmIHRlc3RfcmFp
c2Uoc2VsZik6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImRlbW8gZXJyb3IiKQpAQCAtMTg3
LDE1ICsxOTgsMTMgQEAgZGVmIHRlc3RfZHluYW1pY19jb21waWxlX3Nob3dzX25pY2VseSgpOgog
ICAgIG5hbWUgPSAiYWJjLTEyMyIKICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZShuYW1lKQog
ICAgIGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLmNvbXBpbGUoc3JjLCBuYW1lLCAiZXhlYyIpCi0gICAg
cHkuYnVpbHRpbi5leGVjXyhjb2RlLCBtb2R1bGUuX19kaWN0X18pCisgICAgZXhlYyhjb2RlLCBt
b2R1bGUuX19kaWN0X18pCiAgICAgc3lzLm1vZHVsZXNbbmFtZV0gPSBtb2R1bGUKICAgICBtb2R1
bGUuZm9vKCkKIAogCiBjbGFzcyBUZXN0TW9yZUVycm9ycyhvYmplY3QpOgotCiAgICAgZGVmIHRl
c3RfY29tcGxleF9lcnJvcihzZWxmKToKLQogICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAg
cmV0dXJuIDQ0CiAKQEAgLTIxOCw3ICsyMjcsNiBAQCBjbGFzcyBUZXN0TW9yZUVycm9ycyhvYmpl
Y3QpOgogICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKGcpCiAKICAgICBkZWYgdGVzdF9zdGFy
dHN3aXRoX25lc3RlZChzZWxmKToKLQogICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAgcmV0
dXJuICIxMjMiCiAKQEAgLTI0Niw5ICsyNTQsNyBAQCBjbGFzcyBUZXN0TW9yZUVycm9ycyhvYmpl
Y3QpOgogCiAKIGNsYXNzIFRlc3RDdXN0b21Bc3NlcnRNc2cob2JqZWN0KToKLQogICAgIGRlZiB0
ZXN0X3NpbmdsZV9saW5lKHNlbGYpOgotCiAgICAgICAgIGNsYXNzIEEob2JqZWN0KToKICAgICAg
ICAgICAgIGEgPSAxCiAKQEAgLTI1NiwxNyArMjYyLDE1IEBAIGNsYXNzIFRlc3RDdXN0b21Bc3Nl
cnRNc2cob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IEEuYSA9PSBiLCAiQS5hIGFwcGVhcnMgbm90
IHRvIGJlIGIiCiAKICAgICBkZWYgdGVzdF9tdWx0aWxpbmUoc2VsZik6Ci0KICAgICAgICAgY2xh
c3MgQShvYmplY3QpOgogICAgICAgICAgICAgYSA9IDEKIAogICAgICAgICBiID0gMgogICAgICAg
ICBhc3NlcnQgKAogICAgICAgICAgICAgQS5hID09IGIKLSAgICAgICAgKSwgIkEuYSBhcHBlYXJz
IG5vdCB0byBiZSBiXG4iICJvciBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYlxub25lIG9mIHRob3Nl
IgorICAgICAgICApLCAiQS5hIGFwcGVhcnMgbm90IHRvIGJlIGJcbm9yIGRvZXMgbm90IGFwcGVh
ciB0byBiZSBiXG5vbmUgb2YgdGhvc2UiCiAKICAgICBkZWYgdGVzdF9jdXN0b21fcmVwcihzZWxm
KToKLQogICAgICAgICBjbGFzcyBKU09OKG9iamVjdCk6CiAgICAgICAgICAgICBhID0gMQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rl
c3Rtb2R1bGVfY29uZmlnL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUv
YXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZpZy9jb25mdGVzdC5weQppbmRleCA0ODU5
YmVhNzhlNjhmODJkOTUzNDgyZjFlYjk1NjhmMjEwODE0ZmQ5Li44ZTA0YWMyYWM0NjljNmY1MGQ2
NWVkN2EwZThiMGU1MzlkZGViZGM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL2NvbmZ0ZXN0LnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9nbG9iYWxfdGVzdG1vZHVsZV9j
b25maWcvY29uZnRlc3QucHkKQEAgLTEsNiArMSw4IEBACi1pbXBvcnQgcHl0ZXN0CisjIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IHB5CiAKK2ltcG9ydCBweXRlc3QKKwogbXlkaXIgPSBw
eS5wYXRoLmxvY2FsKF9fZmlsZV9fKS5kaXJwYXRoKCkKIAogCkBAIC0xMCw0ICsxMiw0IEBAIGRl
ZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKICAgICAgICAgICAgIHJldHVybgogICAgICAg
ICBtb2QgPSBpdGVtLmdldHBhcmVudChweXRlc3QuTW9kdWxlKS5vYmoKICAgICAgICAgaWYgaGFz
YXR0cihtb2QsICJoZWxsbyIpOgotICAgICAgICAgICAgcHJpbnQoIm1vZC5oZWxsbyAlciIgJSAo
bW9kLmhlbGxvLCkpCisgICAgICAgICAgICBwcmludCgibW9kLmhlbGxvIHshcn0iLmZvcm1hdCht
b2QuaGVsbG8pKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0
aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZpZy90ZXN0X2hlbGxvX3dvcmxkLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZpZy90
ZXN0X2hlbGxvX3dvcmxkLnB5CmluZGV4IDgyOGU2YjlmZDdkN2JlM2MyNzIwYzliMWRlNWViZTM2
ZGYxNzM3M2EuLmJmY2NjOTRmNzEyZGIyN2ZkMWFiMjJmMDdiMmIwZTkzODc1NDI0MDUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9nbG9iYWxfdGVzdG1v
ZHVsZV9jb25maWcvdGVzdF9oZWxsb193b3JsZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL3Rlc3RfaGVsbG9fd29y
bGQucHkKQEAgLTEsNSArMSw2IEBACi0KKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBoZWxsbyA9
ICJ3b3JsZCIKIAorCiBkZWYgdGVzdF9mdW5jKCk6CiAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3Rlc3RfZmFpbHVyZXMucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9mYWlsdXJlcy5weQppbmRleCAx
MTUwZWMxMmY2NmQ4ZTM1YzNjNzY2N2NhMWMyNGIyM2Y2YzM2MWMzLi42MGI1ZTIxMzExODE5OTUw
NTFiMjVmZTE1MzU1ZjgzOGQ1NjRlZjViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9mYWlsdXJlcy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9mYWlsdXJlcy5weQpAQCAtMSw4ICsxLDggQEAKLQor
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGltcG9ydCBweQogCiBmYWlsdXJlX2RlbW8gPSBweS5w
YXRoLmxvY2FsKF9fZmlsZV9fKS5kaXJwYXRoKCJmYWlsdXJlX2RlbW8ucHkiKQotcHl0ZXN0X3Bs
dWdpbnMgPSAicHl0ZXN0ZXIiLAorcHl0ZXN0X3BsdWdpbnMgPSAoInB5dGVzdGVyIiwpCiAKIAog
ZGVmIHRlc3RfZmFpbHVyZV9kZW1vX2ZhaWxzX3Byb3Blcmx5KHRlc3RkaXIpOgpAQCAtMTAsNSAr
MTAsNSBAQCBkZWYgdGVzdF9mYWlsdXJlX2RlbW9fZmFpbHNfcHJvcGVybHkodGVzdGRpcik6CiAg
ICAgZmFpbHVyZV9kZW1vLmNvcHkodGFyZ2V0KQogICAgIGZhaWx1cmVfZGVtby5jb3B5KHRlc3Rk
aXIudG1wZGlyLmpvaW4oZmFpbHVyZV9kZW1vLmJhc2VuYW1lKSkKICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCh0YXJnZXQsIHN5c3BhdGhpbnNlcnQ9VHJ1ZSkKLSAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWyIqNDIgZmFpbGVkKiJdKQorICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbIio0NCBmYWlsZWQqIl0pCiAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3Rlc3Rfc2V0
dXBfZmxvd19leGFtcGxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9u
L3Rlc3Rfc2V0dXBfZmxvd19leGFtcGxlLnB5CmluZGV4IGMwMDcxMWRjMjM4MWJhYTA3NWZjODBj
OWVmNTVhYTM4NjkxMjlmMDIuLmY0OWQ2ZDhlZDMxODgwYzdmYzgyMmE1ZTJmYjU4ZTA5OTYzNjBi
Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi90ZXN0
X3NldHVwX2Zsb3dfZXhhbXBsZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9h
c3NlcnRpb24vdGVzdF9zZXR1cF9mbG93X2V4YW1wbGUucHkKQEAgLTEsOSArMSw5IEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQogZGVmIHNldHVwX21vZHVsZShtb2R1bGUpOgogICAgIG1vZHVs
ZS5UZXN0U3RhdGVGdWxsVGhpbmcuY2xhc3Njb3VudCA9IDAKIAogCiBjbGFzcyBUZXN0U3RhdGVG
dWxsVGhpbmcob2JqZWN0KToKLQogICAgIGRlZiBzZXR1cF9jbGFzcyhjbHMpOgogICAgICAgICBj
bHMuY2xhc3Njb3VudCArPSAxCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL2F0dGljLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2F0dGljLnJzdAppbmRl
eCBkNmZlY2YzNDBiNjIxZTY1OTQ5MTFiOGM3NWUxNWJkZDkyYTBjMTEwLi45YmYzNzAzY2UxYTNi
MjhiODhlN2FjMzlmYjI4NGFiOTIyNTVjMWRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9hdHRpYy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXR0
aWMucnN0CkBAIC0yNCwxMCArMjQsMTAgQEAgZXhhbXBsZTogc3BlY2lmeWluZyBhbmQgc2VsZWN0
aW5nIGFjY2VwdGFuY2UgdGVzdHMKICAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgic3BlY2lm
eSAtQSB0byBydW4gYWNjZXB0YW5jZSB0ZXN0cyIpCiAgICAgICAgICAgICBzZWxmLnRtcGRpciA9
IHJlcXVlc3QuY29uZmlnLm1rdGVtcChyZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fLCBudW1iZXJl
ZD1UcnVlKQogCi0gICAgICAgIGRlZiBydW4oc2VsZiwgY21kKToKKyAgICAgICAgZGVmIHJ1bihz
ZWxmLCAqY21kKToKICAgICAgICAgICAgICIiIiBjYWxsZWQgYnkgdGVzdCBjb2RlIHRvIGV4ZWN1
dGUgYW4gYWNjZXB0YW5jZSB0ZXN0LiAiIiIKICAgICAgICAgICAgIHNlbGYudG1wZGlyLmNoZGly
KCkKLSAgICAgICAgICAgIHJldHVybiBweS5wcm9jZXNzLmNtZGV4ZWMoY21kKQorICAgICAgICAg
ICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KGNtZCkuZGVjb2RlKCkKIAogCiBhbmQg
dGhlIGFjdHVhbCB0ZXN0IGZ1bmN0aW9uIGV4YW1wbGU6CkBAIC0zNiw3ICszNiw3IEBAIGFuZCB0
aGUgYWN0dWFsIHRlc3QgZnVuY3Rpb24gZXhhbXBsZToKIAogICAgIGRlZiB0ZXN0X3NvbWVfYWNj
ZXB0YW5jZV9hc3BlY3QoYWNjZXB0KToKICAgICAgICAgYWNjZXB0LnRtcGRpci5ta2Rpcigic29t
ZXN1YiIpCi0gICAgICAgIHJlc3VsdCA9IGFjY2VwdC5ydW4oImxzIC1sYSIpCisgICAgICAgIHJl
c3VsdCA9IGFjY2VwdC5ydW4oImxzIiwgIi1sYSIpCiAgICAgICAgIGFzc2VydCAic29tZXN1YiIg
aW4gcmVzdWx0CiAKIElmIHlvdSBydW4gdGhpcyB0ZXN0IHdpdGhvdXQgc3BlY2lmeWluZyBhIGNv
bW1hbmQgbGluZSBvcHRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29uZnRlc3QucHkKaW5k
ZXggZjkwNTczOGM0ZjZjN2FlNWVmNmQ4OWIxOWZlYjE4MzVkNzQ5ZTAwNS4uMWY1YTk2MWFkYTAz
ZmE2OTQ3NzJiZWZjNzkwYjJhYzdjODQ0MWI3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvY29uZnRlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUv
Y29uZnRlc3QucHkKQEAgLTEgKzEsMiBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGNvbGxl
Y3RfaWdub3JlID0gWyJub25weXRob24iXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2V4YW1wbGUvY29zdGx5c2V0dXAvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9jb3N0bHlzZXR1cC9jb25mdGVzdC5weQppbmRleCA0NjZjNjJjMDZhYjg4MDNlMWM0Yjc0
ODNjNzg3NDBlNjMxMDYxZGZhLi5iOTBjNzc0NzMzYmI5OWNjODQxYzY1Y2VmODczZTliNzdjYmM5
NGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9j
b25mdGVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9j
b25mdGVzdC5weQpAQCAtMSw0ICsxLDQgQEAKLQorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGlt
cG9ydCBweXRlc3QKIAogCkBAIC0xMCw3ICsxMCw2IEBAIGRlZiBzZXR1cChyZXF1ZXN0KToKIAog
CiBjbGFzcyBDb3N0bHlTZXR1cChvYmplY3QpOgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgog
ICAgICAgICBpbXBvcnQgdGltZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9jb3N0bHlzZXR1cC9zdWIxL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvY29zdGx5c2V0dXAvc3ViMS9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzkyZDYwMDU0ODllYmVlNjJjZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29z
dGx5c2V0dXAvc3ViMS90ZXN0X3F1aWNrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUv
Y29zdGx5c2V0dXAvc3ViMS90ZXN0X3F1aWNrLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkOTc2NTc4NjdlMDIxZGJlOGM2NDI2N2U1ZWI0Nzc4NDJkNjczYzNhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdGVzdF9xdWljay5weQorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotCi1kZWYgdGVzdF9xdWljayhzZXR1cCk6Ci0gICAgcGFzcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzN2Y2NmExOGJhNzIwOTA0
ODI4NDllZmY0OGNkNzJjMzRjNzc4M2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3Vi
MS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvX19pbml0X18ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL3Rlc3RfcXVpY2su
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1
YjIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9z
dWIyL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTJkNjAwNTQ4
OWViZWU2MmNkZTAyMDY2ZjE5YzU1MjFlNjIwNDUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNl
dHVwL3N1YjIvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0jCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL3Rlc3Rf
dHdvLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi90ZXN0
X3R3by5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmVkNmVlNGQ4OThmZjZlZmE3
NmU2YTFkNDkwYzRjZDFiMGU4YzA0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIy
L3Rlc3RfdHdvLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1kZWYgdGVzdF9zb21l
dGhpbmcoc2V0dXApOgotICAgIGFzc2VydCBzZXR1cC50aW1lY29zdGx5ID09IDEKLQotZGVmIHRl
c3Rfc29tZXRoaW5nX21vcmUoc2V0dXApOgotICAgIGFzc2VydCBzZXR1cC50aW1lY29zdGx5ID09
IDEKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAv
c3ViMi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNl
dHVwL3N1YjIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJh
NjQyMGVjODNkODc3OGJiNTBiYmVhMGE3MGY1MmVmYjk5ZjcyNmIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUv
Y29zdGx5c2V0dXAvc3ViMi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1
YjIvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9z
dWIyL3Rlc3RfdHdvLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9j
b3N0bHlzZXR1cC9zdWJfYS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2Nvc3RseXNldHVwL3N1Yl9hL19faW5pdF9fLnB5CmluZGV4IDc5MmQ2MDA1NDg5ZWJlZTYyY2Rl
MDIwNjZmMTljNTUyMWU2MjA0NTEuLmVjNTFjNWEyYjlkZDYyMzA3M2ZhNzUyMDY1YTViNWE2MTU3
ODBjN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVw
L3N1Yl9hL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3Rs
eXNldHVwL3N1Yl9hL19faW5pdF9fLnB5CkBAIC0xICsxLDIgQEAKKyMgLSotIGNvZGluZzogdXRm
LTggLSotCiAjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlz
ZXR1cC9zdWJfYS90ZXN0X3F1aWNrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29z
dGx5c2V0dXAvc3ViX2EvdGVzdF9xdWljay5weQppbmRleCAzOGRkYTI2NjBkMjQ2ZjFlMWRhNjdj
NDU2NTI0NWVkMTBhODk3NmI3Li40ZjdiOWYxYWM3ZDVkYzM0NDFjMzU2MGVkNzA2NzIwMDZhZTcz
MzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9z
dWJfYS90ZXN0X3F1aWNrLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3Rs
eXNldHVwL3N1Yl9hL3Rlc3RfcXVpY2sucHkKQEAgLTEsMiArMSwzIEBACisjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQogZGVmIHRlc3RfcXVpY2soc2V0dXApOgogICAgIHBhc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9iL19faW5pdF9fLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvX19pbml0X18u
cHkKaW5kZXggNzkyZDYwMDU0ODllYmVlNjJjZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MS4uZWM1MWM1
YTJiOWRkNjIzMDczZmE3NTIwNjVhNWI1YTYxNTc4MGM3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvX19pbml0X18ucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvX19pbml0X18ucHkKQEAg
LTEgKzEsMiBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9iL3Rlc3RfdHdvLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvdGVzdF90d28ucHkKaW5k
ZXggYjE2NTNhYWFiODhhNTE3YTY2NzJiNjI1MzhkNzY0OTQzY2Q0YzY4My4uNGUwOGJjMmI2OWVh
YTlkMDg4ZGE4YzJhMTE0NDUwMTBiZWYyMmUzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvdGVzdF90d28ucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvdGVzdF90d28ucHkKQEAgLTEsMyAr
MSw0IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogZGVmIHRlc3Rfc29tZXRoaW5nKHNldHVw
KToKICAgICBhc3NlcnQgc2V0dXAudGltZWNvc3RseSA9PSAxCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9leGFtcGxlL21hcmtlcnMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvbWFya2Vycy5yc3QKaW5kZXggYmYzNTJiYzgxMjk4YWQ0NGFmYjU0NzFlMTQ2ODY3Yjlk
NzdmMDVhMC4uYjhkOGJlZjBjYjE4OTY5NjQ4YzY1ZjQ5ZjgxYjM0NDhlNzFjZDM4OSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbWFya2Vycy5yc3QKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvbWFya2Vycy5yc3QKQEAgLTQsNTAgKzQsNjYgQEAKIFdvcmtp
bmcgd2l0aCBjdXN0b20gbWFya2VycwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogCi1IZXJlIGFyZSBzb21lIGV4YW1wbGUgdXNpbmcgdGhlIDpyZWY6
YG1hcmtgIG1lY2hhbmlzbS4KK0hlcmUgYXJlIHNvbWUgZXhhbXBsZXMgdXNpbmcgdGhlIDpyZWY6
YG1hcmtgIG1lY2hhbmlzbS4KKworLi4gX2BtYXJrIHJ1bmA6CiAKIE1hcmtpbmcgdGVzdCBmdW5j
dGlvbnMgYW5kIHNlbGVjdGluZyB0aGVtIGZvciBhIHJ1bgogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1Zb3UgY2FuICJtYXJrIiBhIHRlc3Qg
ZnVuY3Rpb24gd2l0aCBjdXN0b20gbWV0YWRhdGEgbGlrZSB0aGlzOjoKK1lvdSBjYW4gIm1hcmsi
IGEgdGVzdCBmdW5jdGlvbiB3aXRoIGN1c3RvbSBtZXRhZGF0YSBsaWtlIHRoaXM6CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVudCBvZiB0ZXN0X3NlcnZlci5weQogCiAg
ICAgaW1wb3J0IHB5dGVzdAorCisKICAgICBAcHl0ZXN0Lm1hcmsud2VidGVzdAogICAgIGRlZiB0
ZXN0X3NlbmRfaHR0cCgpOgotICAgICAgICBwYXNzICMgcGVyZm9ybSBzb21lIHdlYnRlc3QgdGVz
dCBmb3IgeW91ciBhcHAKKyAgICAgICAgcGFzcyAgIyBwZXJmb3JtIHNvbWUgd2VidGVzdCB0ZXN0
IGZvciB5b3VyIGFwcAorCisKICAgICBkZWYgdGVzdF9zb21ldGhpbmdfcXVpY2soKToKICAgICAg
ICAgcGFzcworCisKICAgICBkZWYgdGVzdF9hbm90aGVyKCk6CiAgICAgICAgIHBhc3MKKworCiAg
ICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CiAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxm
KToKICAgICAgICAgICAgIHBhc3MKIAotLi4gdmVyc2lvbmFkZGVkOjogMi4yCiAKLVlvdSBjYW4g
dGhlbiByZXN0cmljdCBhIHRlc3QgcnVuIHRvIG9ubHkgcnVuIHRlc3RzIG1hcmtlZCB3aXRoIGBg
d2VidGVzdGBgOjoKKworWW91IGNhbiB0aGVuIHJlc3RyaWN0IGEgdGVzdCBydW4gdG8gb25seSBy
dW4gdGVzdHMgbWFya2VkIHdpdGggYGB3ZWJ0ZXN0YGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRl
c3QKIAogICAgICQgcHl0ZXN0IC12IC1tIHdlYnRlc3QKICAgICA9PT09PT09PT09PT09PT09PT09
PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEu
eC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbjMuNQotICAgIGNh
Y2hlZGlyOiAucHl0ZXN0X2NhY2hlCi0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5p
ZmlsZToKLSAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgNCBpdGVtcyAvIDMgZGVzZWxlY3Rl
ZAorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0x
LngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24KKyAgICBjYWNo
ZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRP
Q19UTVBESVIKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgNCBpdGVtcyAvIDMgZGVzZWxl
Y3RlZCAvIDEgc2VsZWN0ZWQKIAogICAgIHRlc3Rfc2VydmVyLnB5Ojp0ZXN0X3NlbmRfaHR0cCBQ
QVNTRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQogCiAgICAgPT09PT09
PT09PT09PT09PT09IDEgcGFzc2VkLCAzIGRlc2VsZWN0ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09
PT09PT09PT09PT09PQogCi1PciB0aGUgaW52ZXJzZSwgcnVubmluZyBhbGwgdGVzdHMgZXhjZXB0
IHRoZSB3ZWJ0ZXN0IG9uZXM6OgorT3IgdGhlIGludmVyc2UsIHJ1bm5pbmcgYWxsIHRlc3RzIGV4
Y2VwdCB0aGUgd2VidGVzdCBvbmVzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAk
IHB5dGVzdCAtdiAtbSAibm90IHdlYnRlc3QiCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09
PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAg
IHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwg
cGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24zLjUKLSAgICBjYWNoZWRp
cjogLnB5dGVzdF9jYWNoZQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6
Ci0gICAgY29sbGVjdGluZyAuLi4gY29sbGVjdGVkIDQgaXRlbXMgLyAxIGRlc2VsZWN0ZWQKKyAg
ICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54Lnks
IHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uCisgICAgY2FjaGVkaXI6
ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1Q
RElSCisgICAgY29sbGVjdGluZyAuLi4gY29sbGVjdGVkIDQgaXRlbXMgLyAxIGRlc2VsZWN0ZWQg
LyAzIHNlbGVjdGVkCiAKICAgICB0ZXN0X3NlcnZlci5weTo6dGVzdF9zb21ldGhpbmdfcXVpY2sg
UEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgICBbIDMzJV0KICAgICB0ZXN0X3NlcnZlci5w
eTo6dGVzdF9hbm90aGVyIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
IDY2JV0KQEAgLTYwLDQ1ICs3Niw1MSBAQCBTZWxlY3RpbmcgdGVzdHMgYmFzZWQgb24gdGhlaXIg
bm9kZSBJRAogCiBZb3UgY2FuIHByb3ZpZGUgb25lIG9yIG1vcmUgOnJlZjpgbm9kZSBJRHMgPG5v
ZGUtaWQ+YCBhcyBwb3NpdGlvbmFsCiBhcmd1bWVudHMgdG8gc2VsZWN0IG9ubHkgc3BlY2lmaWVk
IHRlc3RzLiBUaGlzIG1ha2VzIGl0IGVhc3kgdG8gc2VsZWN0Ci10ZXN0cyBiYXNlZCBvbiB0aGVp
ciBtb2R1bGUsIGNsYXNzLCBtZXRob2QsIG9yIGZ1bmN0aW9uIG5hbWU6OgordGVzdHMgYmFzZWQg
b24gdGhlaXIgbW9kdWxlLCBjbGFzcywgbWV0aG9kLCBvciBmdW5jdGlvbiBuYW1lOgorCisuLiBj
b2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtdiB0ZXN0X3NlcnZlci5weTo6VGVz
dENsYXNzOjp0ZXN0X21ldGhvZAogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0
IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0w
LngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41Ci0gICAgY2FjaGVkaXI6IC5weXRl
c3RfY2FjaGUKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBs
YXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1
Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24KKyAgICBjYWNoZWRpcjogJFBZ
VEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIK
ICAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgMSBpdGVtCiAKICAgICB0ZXN0X3NlcnZlci5w
eTo6VGVzdENsYXNzOjp0ZXN0X21ldGhvZCBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICBb
MTAwJV0KIAogICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gMSBwYXNzZWQgaW4gMC4xMiBz
ZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KIAotWW91IGNhbiBhbHNvIHNlbGVjdCBv
biB0aGUgY2xhc3M6OgorWW91IGNhbiBhbHNvIHNlbGVjdCBvbiB0aGUgY2xhc3M6CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC12IHRlc3Rfc2VydmVyLnB5OjpUZXN0
Q2xhc3MKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0
cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0
aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhP
Tl9QUkVGSVgvYmluL3B5dGhvbjMuNQotICAgIGNhY2hlZGlyOiAucHl0ZXN0X2NhY2hlCi0gICAg
cm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAt
LSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAk
UFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uCisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5w
eXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGlu
ZyAuLi4gY29sbGVjdGVkIDEgaXRlbQogCiAgICAgdGVzdF9zZXJ2ZXIucHk6OlRlc3RDbGFzczo6
dGVzdF9tZXRob2QgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCiAKICAgICA9
PT09PT09PT09PT09PT09PT09PT09PT09IDEgcGFzc2VkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09
PT09PT09PT09PT09PT09PT09CiAKLU9yIHNlbGVjdCBtdWx0aXBsZSBub2Rlczo6CitPciBzZWxl
Y3QgbXVsdGlwbGUgbm9kZXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAotICAkIHB5dGVz
dCAtdiB0ZXN0X3NlcnZlci5weTo6VGVzdENsYXNzIHRlc3Rfc2VydmVyLnB5Ojp0ZXN0X3NlbmRf
aHR0cAotICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAz
LngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJF
RklYL2Jpbi9weXRob24zLjUKLSAgY2FjaGVkaXI6IC5weXRlc3RfY2FjaGUKLSAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKLSAgY29sbGVjdGluZyAuLi4gY29sbGVjdGVkIDIg
aXRlbXMKKyAgICAkIHB5dGVzdCAtdiB0ZXN0X3NlcnZlci5weTo6VGVzdENsYXNzIHRlc3Rfc2Vy
dmVyLnB5Ojp0ZXN0X3NlbmRfaHR0cAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0
ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uCisgICAgY2FjaGVkaXI6ICRQWVRI
T05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisg
ICAgY29sbGVjdGluZyAuLi4gY29sbGVjdGVkIDIgaXRlbXMKIAotICB0ZXN0X3NlcnZlci5weTo6
VGVzdENsYXNzOjp0ZXN0X21ldGhvZCBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICBbIDUw
JV0KLSAgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc2VuZF9odHRwIFBBU1NFRCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgdGVzdF9zZXJ2ZXIucHk6OlRlc3RDbGFzczo6
dGVzdF9tZXRob2QgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgWyA1MCVdCisgICAgdGVz
dF9zZXJ2ZXIucHk6OnRlc3Rfc2VuZF9odHRwIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWzEwMCVdCiAKLSAgPT09PT09PT09PT09PT09PT09PT09PT09PSAyIHBhc3NlZCBp
biAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQorICAgID09PT09PT09PT09
PT09PT09PT09PT09PT0gMiBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09
PT09PT09PT0KIAogLi4gX25vZGUtaWQ6CiAKQEAgLTEyNCwyNyArMTQ2LDMxIEBAIFVzaW5nIGBg
LWsgZXhwcmBgIHRvIHNlbGVjdCB0ZXN0cyBiYXNlZCBvbiB0aGVpciBuYW1lCiBZb3UgY2FuIHVz
ZSB0aGUgYGAta2BgIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gc3BlY2lmeSBhbiBleHByZXNzaW9u
CiB3aGljaCBpbXBsZW1lbnRzIGEgc3Vic3RyaW5nIG1hdGNoIG9uIHRoZSB0ZXN0IG5hbWVzIGlu
c3RlYWQgb2YgdGhlCiBleGFjdCBtYXRjaCBvbiBtYXJrZXJzIHRoYXQgYGAtbWBgIHByb3ZpZGVz
LiAgVGhpcyBtYWtlcyBpdCBlYXN5IHRvCi1zZWxlY3QgdGVzdHMgYmFzZWQgb24gdGhlaXIgbmFt
ZXM6Ogorc2VsZWN0IHRlc3RzIGJhc2VkIG9uIHRoZWlyIG5hbWVzOgorCisuLiBjb2RlLWJsb2Nr
OjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtdiAtayBodHRwICAjIHJ1bm5pbmcgd2l0aCB0aGUg
YWJvdmUgZGVmaW5lZCBleGFtcGxlIG1vZHVsZQogICAgID09PT09PT09PT09PT09PT09PT09PT09
PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAg
ICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54Lnks
IHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41Ci0gICAgY2FjaGVk
aXI6IC5weXRlc3RfY2FjaGUKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxl
OgotICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA0IGl0ZW1zIC8gMyBkZXNlbGVjdGVkCisg
ICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55
LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbgorICAgIGNhY2hlZGly
OiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RN
UERJUgorICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA0IGl0ZW1zIC8gMyBkZXNlbGVjdGVk
IC8gMSBzZWxlY3RlZAogCiAgICAgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc2VuZF9odHRwIFBBU1NF
RCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCiAKICAgICA9PT09PT09PT09
PT09PT09PT0gMSBwYXNzZWQsIDMgZGVzZWxlY3RlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09
PT09PT09PT09CiAKLUFuZCB5b3UgY2FuIGFsc28gcnVuIGFsbCB0ZXN0cyBleGNlcHQgdGhlIG9u
ZXMgdGhhdCBtYXRjaCB0aGUga2V5d29yZDo6CitBbmQgeW91IGNhbiBhbHNvIHJ1biBhbGwgdGVz
dHMgZXhjZXB0IHRoZSBvbmVzIHRoYXQgbWF0Y2ggdGhlIGtleXdvcmQ6CisKKy4uIGNvZGUtYmxv
Y2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1rICJub3Qgc2VuZF9odHRwIiAtdgogICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5
dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4v
cHl0aG9uMy41Ci0gICAgY2FjaGVkaXI6IC5weXRlc3RfY2FjaGUKLSAgICByb290ZGlyOiAkUkVH
RU5ET0NfVE1QRElSLCBpbmlmaWxlOgotICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA0IGl0
ZW1zIC8gMSBkZXNlbGVjdGVkCisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBw
eXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmlu
L3B5dGhvbgorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAg
cm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgorICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA0
IGl0ZW1zIC8gMSBkZXNlbGVjdGVkIC8gMyBzZWxlY3RlZAogCiAgICAgdGVzdF9zZXJ2ZXIucHk6
OnRlc3Rfc29tZXRoaW5nX3F1aWNrIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgWyAz
MyVdCiAgICAgdGVzdF9zZXJ2ZXIucHk6OnRlc3RfYW5vdGhlciBQQVNTRUQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyA2NiVdCkBAIC0xNTIsMTQgKzE3OCwxNiBAQCBBbmQgeW91
IGNhbiBhbHNvIHJ1biBhbGwgdGVzdHMgZXhjZXB0IHRoZSBvbmVzIHRoYXQgbWF0Y2ggdGhlIGtl
eXdvcmQ6OgogCiAgICAgPT09PT09PT09PT09PT09PT09IDMgcGFzc2VkLCAxIGRlc2VsZWN0ZWQg
aW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PQogCi1PciB0byBzZWxlY3QgImh0dHAi
IGFuZCAicXVpY2siIHRlc3RzOjoKK09yIHRvIHNlbGVjdCAiaHR0cCIgYW5kICJxdWljayIgdGVz
dHM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1rICJodHRwIG9y
IHF1aWNrIiAtdgogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24g
c3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAt
LSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAk
UFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41Ci0gICAgY2FjaGVkaXI6IC5weXRlc3RfY2FjaGUK
LSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgotICAgIGNvbGxlY3Rpbmcg
Li4uIGNvbGxlY3RlZCA0IGl0ZW1zIC8gMiBkZXNlbGVjdGVkCisgICAgcGxhdGZvcm0gbGludXgg
LS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0g
JFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbgorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8u
cHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgorICAgIGNvbGxlY3Rp
bmcgLi4uIGNvbGxlY3RlZCA0IGl0ZW1zIC8gMiBkZXNlbGVjdGVkIC8gMiBzZWxlY3RlZAogCiAg
ICAgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc2VuZF9odHRwIFBBU1NFRCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWyA1MCVdCiAgICAgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc29tZXRoaW5n
X3F1aWNrIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC0xODQsMzEg
KzIxMiwzNyBAQCBPciB0byBzZWxlY3QgImh0dHAiIGFuZCAicXVpY2siIHRlc3RzOjoKIFJlZ2lz
dGVyaW5nIG1hcmtlcnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAot
Li4gdmVyc2lvbmFkZGVkOjogMi4yCisKIAogLi4gaW5pLXN5bnRheCBmb3IgY3VzdG9tIG1hcmtl
cnM6CiAKLVJlZ2lzdGVyaW5nIG1hcmtlcnMgZm9yIHlvdXIgdGVzdCBzdWl0ZSBpcyBzaW1wbGU6
OgorUmVnaXN0ZXJpbmcgbWFya2VycyBmb3IgeW91ciB0ZXN0IHN1aXRlIGlzIHNpbXBsZToKKwor
Li4gY29kZS1ibG9jazo6IGluaQogCiAgICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkKICAgICBb
cHl0ZXN0XQogICAgIG1hcmtlcnMgPQogICAgICAgICB3ZWJ0ZXN0OiBtYXJrIGEgdGVzdCBhcyBh
IHdlYnRlc3QuCiAKLVlvdSBjYW4gYXNrIHdoaWNoIG1hcmtlcnMgZXhpc3QgZm9yIHlvdXIgdGVz
dCBzdWl0ZSAtIHRoZSBsaXN0IGluY2x1ZGVzIG91ciBqdXN0IGRlZmluZWQgYGB3ZWJ0ZXN0YGAg
bWFya2Vyczo6CitZb3UgY2FuIGFzayB3aGljaCBtYXJrZXJzIGV4aXN0IGZvciB5b3VyIHRlc3Qg
c3VpdGUgLSB0aGUgbGlzdCBpbmNsdWRlcyBvdXIganVzdCBkZWZpbmVkIGBgd2VidGVzdGBgIG1h
cmtlcnM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC0tbWFya2Vy
cwogICAgIEBweXRlc3QubWFyay53ZWJ0ZXN0OiBtYXJrIGEgdGVzdCBhcyBhIHdlYnRlc3QuCiAK
KyAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3Mod2FybmluZyk6IGFkZCBhIHdhcm5pbmcg
ZmlsdGVyIHRvIHRoZSBnaXZlbiB0ZXN0LiBzZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L3dhcm5pbmdzLmh0bWwjcHl0ZXN0LW1hcmstZmlsdGVyd2FybmluZ3MKKwogICAgIEBw
eXRlc3QubWFyay5za2lwKHJlYXNvbj1Ob25lKTogc2tpcCB0aGUgZ2l2ZW4gdGVzdCBmdW5jdGlv
biB3aXRoIGFuIG9wdGlvbmFsIHJlYXNvbi4gRXhhbXBsZTogc2tpcChyZWFzb249Im5vIHdheSBv
ZiBjdXJyZW50bHkgdGVzdGluZyB0aGlzIikgc2tpcHMgdGhlIHRlc3QuCiAKLSAgICBAcHl0ZXN0
Lm1hcmsuc2tpcGlmKGNvbmRpdGlvbik6IHNraXAgdGhlIGdpdmVuIHRlc3QgZnVuY3Rpb24gaWYg
ZXZhbChjb25kaXRpb24pIHJlc3VsdHMgaW4gYSBUcnVlIHZhbHVlLiAgRXZhbHVhdGlvbiBoYXBw
ZW5zIHdpdGhpbiB0aGUgbW9kdWxlIGdsb2JhbCBjb250ZXh0LiBFeGFtcGxlOiBza2lwaWYoJ3N5
cy5wbGF0Zm9ybSA9PSAid2luMzIiJykgc2tpcHMgdGhlIHRlc3QgaWYgd2UgYXJlIG9uIHRoZSB3
aW4zMiBwbGF0Zm9ybS4gc2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9za2lwcGluZy5odG1s
CisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihjb25kaXRpb24pOiBza2lwIHRoZSBnaXZlbiB0ZXN0
IGZ1bmN0aW9uIGlmIGV2YWwoY29uZGl0aW9uKSByZXN1bHRzIGluIGEgVHJ1ZSB2YWx1ZS4gIEV2
YWx1YXRpb24gaGFwcGVucyB3aXRoaW4gdGhlIG1vZHVsZSBnbG9iYWwgY29udGV4dC4gRXhhbXBs
ZTogc2tpcGlmKCdzeXMucGxhdGZvcm0gPT0gIndpbjMyIicpIHNraXBzIHRoZSB0ZXN0IGlmIHdl
IGFyZSBvbiB0aGUgd2luMzIgcGxhdGZvcm0uIHNlZSBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9l
bi9sYXRlc3Qvc2tpcHBpbmcuaHRtbAogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKGNvbmRpdGlv
biwgcmVhc29uPU5vbmUsIHJ1bj1UcnVlLCByYWlzZXM9Tm9uZSwgc3RyaWN0PUZhbHNlKTogbWFy
ayB0aGUgdGVzdCBmdW5jdGlvbiBhcyBhbiBleHBlY3RlZCBmYWlsdXJlIGlmIGV2YWwoY29uZGl0
aW9uKSBoYXMgYSBUcnVlIHZhbHVlLiBPcHRpb25hbGx5IHNwZWNpZnkgYSByZWFzb24gZm9yIGJl
dHRlciByZXBvcnRpbmcgYW5kIHJ1bj1GYWxzZSBpZiB5b3UgZG9uJ3QgZXZlbiB3YW50IHRvIGV4
ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24uIElmIG9ubHkgc3BlY2lmaWMgZXhjZXB0aW9uKHMpIGFy
ZSBleHBlY3RlZCwgeW91IGNhbiBsaXN0IHRoZW0gaW4gcmFpc2VzLCBhbmQgaWYgdGhlIHRlc3Qg
ZmFpbHMgaW4gb3RoZXIgd2F5cywgaXQgd2lsbCBiZSByZXBvcnRlZCBhcyBhIHRydWUgZmFpbHVy
ZS4gU2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9za2lwcGluZy5odG1sCisgICAgQHB5dGVz
dC5tYXJrLnhmYWlsKGNvbmRpdGlvbiwgcmVhc29uPU5vbmUsIHJ1bj1UcnVlLCByYWlzZXM9Tm9u
ZSwgc3RyaWN0PUZhbHNlKTogbWFyayB0aGUgdGVzdCBmdW5jdGlvbiBhcyBhbiBleHBlY3RlZCBm
YWlsdXJlIGlmIGV2YWwoY29uZGl0aW9uKSBoYXMgYSBUcnVlIHZhbHVlLiBPcHRpb25hbGx5IHNw
ZWNpZnkgYSByZWFzb24gZm9yIGJldHRlciByZXBvcnRpbmcgYW5kIHJ1bj1GYWxzZSBpZiB5b3Ug
ZG9uJ3QgZXZlbiB3YW50IHRvIGV4ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24uIElmIG9ubHkgc3Bl
Y2lmaWMgZXhjZXB0aW9uKHMpIGFyZSBleHBlY3RlZCwgeW91IGNhbiBsaXN0IHRoZW0gaW4gcmFp
c2VzLCBhbmQgaWYgdGhlIHRlc3QgZmFpbHMgaW4gb3RoZXIgd2F5cywgaXQgd2lsbCBiZSByZXBv
cnRlZCBhcyBhIHRydWUgZmFpbHVyZS4gU2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xh
dGVzdC9za2lwcGluZy5odG1sCiAKLSAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoYXJnbmFt
ZXMsIGFyZ3ZhbHVlcyk6IGNhbGwgYSB0ZXN0IGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIHBhc3Np
bmcgaW4gZGlmZmVyZW50IGFyZ3VtZW50cyBpbiB0dXJuLiBhcmd2YWx1ZXMgZ2VuZXJhbGx5IG5l
ZWRzIHRvIGJlIGEgbGlzdCBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVzIG9ubHkgb25l
IG5hbWUgb3IgYSBsaXN0IG9mIHR1cGxlcyBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVz
IG11bHRpcGxlIG5hbWVzLiBFeGFtcGxlOiBAcGFyYW1ldHJpemUoJ2FyZzEnLCBbMSwyXSkgd291
bGQgbGVhZCB0byB0d28gY2FsbHMgb2YgdGhlIGRlY29yYXRlZCB0ZXN0IGZ1bmN0aW9uLCBvbmUg
d2l0aCBhcmcxPTEgYW5kIGFub3RoZXIgd2l0aCBhcmcxPTIuc2VlIGh0dHA6Ly9weXRlc3Qub3Jn
L2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIGZvciBtb3JlIGluZm8gYW5kIGV4YW1wbGVzLgorICAg
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZShhcmduYW1lcywgYXJndmFsdWVzKTogY2FsbCBhIHRl
c3QgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMgcGFzc2luZyBpbiBkaWZmZXJlbnQgYXJndW1lbnRz
IGluIHR1cm4uIGFyZ3ZhbHVlcyBnZW5lcmFsbHkgbmVlZHMgdG8gYmUgYSBsaXN0IG9mIHZhbHVl
cyBpZiBhcmduYW1lcyBzcGVjaWZpZXMgb25seSBvbmUgbmFtZSBvciBhIGxpc3Qgb2YgdHVwbGVz
IG9mIHZhbHVlcyBpZiBhcmduYW1lcyBzcGVjaWZpZXMgbXVsdGlwbGUgbmFtZXMuIEV4YW1wbGU6
IEBwYXJhbWV0cml6ZSgnYXJnMScsIFsxLDJdKSB3b3VsZCBsZWFkIHRvIHR3byBjYWxscyBvZiB0
aGUgZGVjb3JhdGVkIHRlc3QgZnVuY3Rpb24sIG9uZSB3aXRoIGFyZzE9MSBhbmQgYW5vdGhlciB3
aXRoIGFyZzE9Mi5zZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3BhcmFtZXRy
aXplLmh0bWwgZm9yIG1vcmUgaW5mbyBhbmQgZXhhbXBsZXMuCiAKLSAgICBAcHl0ZXN0Lm1hcmsu
dXNlZml4dHVyZXMoZml4dHVyZW5hbWUxLCBmaXh0dXJlbmFtZTIsIC4uLik6IG1hcmsgdGVzdHMg
YXMgbmVlZGluZyBhbGwgb2YgdGhlIHNwZWNpZmllZCBmaXh0dXJlcy4gc2VlIGh0dHA6Ly9weXRl
c3Qub3JnL2xhdGVzdC9maXh0dXJlLmh0bWwjdXNlZml4dHVyZXMKKyAgICBAcHl0ZXN0Lm1hcmsu
dXNlZml4dHVyZXMoZml4dHVyZW5hbWUxLCBmaXh0dXJlbmFtZTIsIC4uLik6IG1hcmsgdGVzdHMg
YXMgbmVlZGluZyBhbGwgb2YgdGhlIHNwZWNpZmllZCBmaXh0dXJlcy4gc2VlIGh0dHBzOi8vZG9j
cy5weXRlc3Qub3JnL2VuL2xhdGVzdC9maXh0dXJlLmh0bWwjdXNlZml4dHVyZXMKIAogICAgIEBw
eXRlc3QubWFyay50cnlmaXJzdDogbWFyayBhIGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24g
c3VjaCB0aGF0IHRoZSBwbHVnaW4gbWFjaGluZXJ5IHdpbGwgdHJ5IHRvIGNhbGwgaXQgZmlyc3Qv
YXMgZWFybHkgYXMgcG9zc2libGUuCiAKQEAgLTIyNyw3ICsyNjEsNyBAQCBGb3IgYW4gZXhhbXBs
ZSBvbiBob3cgdG8gYWRkIGFuZCB3b3JrIHdpdGggbWFya2VycyBmcm9tIGEgcGx1Z2luLCBzZWUK
ICAgICAqIEFza2luZyBmb3IgZXhpc3RpbmcgbWFya2VycyB2aWEgYGBweXRlc3QgLS1tYXJrZXJz
YGAgZ2l2ZXMgZ29vZCBvdXRwdXQKIAogICAgICogVHlwb3MgaW4gZnVuY3Rpb24gbWFya2VycyBh
cmUgdHJlYXRlZCBhcyBhbiBlcnJvciBpZiB5b3UgdXNlCi0gICAgICB0aGUgYGAtLXN0cmljdGBg
IG9wdGlvbi4KKyAgICAgIHRoZSBgYC0tc3RyaWN0LW1hcmtlcnNgYCBvcHRpb24uCiAKIC4uIF9g
c2NvcGVkLW1hcmtpbmdgOgogCkBAIC0yMzUsMTQgKzI2OSwxOSBAQCBNYXJraW5nIHdob2xlIGNs
YXNzZXMgb3IgbW9kdWxlcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCiBZb3UgbWF5IHVzZSBgYHB5dGVzdC5tYXJrYGAgZGVjb3JhdG9ycyB3
aXRoIGNsYXNzZXMgdG8gYXBwbHkgbWFya2VycyB0byBhbGwgb2YKLWl0cyB0ZXN0IG1ldGhvZHM6
OgoraXRzIHRlc3QgbWV0aG9kczoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyBj
b250ZW50IG9mIHRlc3RfbWFya19jbGFzc2xldmVsLnB5CiAgICAgaW1wb3J0IHB5dGVzdAorCisK
ICAgICBAcHl0ZXN0Lm1hcmsud2VidGVzdAogICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgog
ICAgICAgICBkZWYgdGVzdF9zdGFydHVwKHNlbGYpOgogICAgICAgICAgICAgcGFzcworCiAgICAg
ICAgIGRlZiB0ZXN0X3N0YXJ0dXBfYW5kX21vcmUoc2VsZik6CiAgICAgICAgICAgICBwYXNzCiAK
QEAgLTI1MCwxNyArMjg5LDIzIEBAIFRoaXMgaXMgZXF1aXZhbGVudCB0byBkaXJlY3RseSBhcHBs
eWluZyB0aGUgZGVjb3JhdG9yIHRvIHRoZQogdHdvIHRlc3QgZnVuY3Rpb25zLgogCiBUbyByZW1h
aW4gYmFja3dhcmQtY29tcGF0aWJsZSB3aXRoIFB5dGhvbiAyLjQgeW91IGNhbiBhbHNvIHNldCBh
Ci1gYHB5dGVzdG1hcmtgYCBhdHRyaWJ1dGUgb24gYSBUZXN0Q2xhc3MgbGlrZSB0aGlzOjoKK2Bg
cHl0ZXN0bWFya2BgIGF0dHJpYnV0ZSBvbiBhIFRlc3RDbGFzcyBsaWtlIHRoaXM6CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRob24KIAogICAgIGltcG9ydCBweXRlc3QKIAorCiAgICAgY2xhc3MgVGVz
dENsYXNzKG9iamVjdCk6CiAgICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay53ZWJ0ZXN0
CiAKLW9yIGlmIHlvdSBuZWVkIHRvIHVzZSBtdWx0aXBsZSBtYXJrZXJzIHlvdSBjYW4gdXNlIGEg
bGlzdDo6CitvciBpZiB5b3UgbmVlZCB0byB1c2UgbXVsdGlwbGUgbWFya2VycyB5b3UgY2FuIHVz
ZSBhIGxpc3Q6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIGltcG9ydCBweXRlc3QK
IAorCiAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CiAgICAgICAgIHB5dGVzdG1hcmsgPSBb
cHl0ZXN0Lm1hcmsud2VidGVzdCwgcHl0ZXN0Lm1hcmsuc2xvd3Rlc3RdCiAKQEAgLTI2OSw4ICsz
MTQsMTIgQEAgWW91IGNhbiBhbHNvIHNldCBhIG1vZHVsZSBsZXZlbCBtYXJrZXI6OgogICAgIGlt
cG9ydCBweXRlc3QKICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsud2VidGVzdAogCi1pbiB3
aGljaCBjYXNlIGl0IHdpbGwgYmUgYXBwbGllZCB0byBhbGwgZnVuY3Rpb25zIGFuZAotbWV0aG9k
cyBkZWZpbmVkIGluIHRoZSBtb2R1bGUuCitvciBtdWx0aXBsZSBtYXJrZXJzOjoKKworICAgIHB5
dGVzdG1hcmsgPSBbcHl0ZXN0Lm1hcmsud2VidGVzdCwgcHl0ZXN0Lm1hcmsuc2xvd3Rlc3RdCisK
K2luIHdoaWNoIGNhc2UgbWFya2VycyB3aWxsIGJlIGFwcGxpZWQgKGluIGxlZnQtdG8tcmlnaHQg
b3JkZXIpIHRvCithbGwgZnVuY3Rpb25zIGFuZCBtZXRob2RzIGRlZmluZWQgaW4gdGhlIG1vZHVs
ZS4KIAogLi4gX2BtYXJraW5nIGluZGl2aWR1YWwgdGVzdHMgd2hlbiB1c2luZyBwYXJhbWV0cml6
ZWA6CiAKQEAgLTI3OSwzMiArMzI4LDI0IEBAIE1hcmtpbmcgaW5kaXZpZHVhbCB0ZXN0cyB3aGVu
IHVzaW5nIHBhcmFtZXRyaXplCiAKIFdoZW4gdXNpbmcgcGFyYW1ldHJpemUsIGFwcGx5aW5nIGEg
bWFyayB3aWxsIG1ha2UgaXQgYXBwbHkKIHRvIGVhY2ggaW5kaXZpZHVhbCB0ZXN0LiBIb3dldmVy
IGl0IGlzIGFsc28gcG9zc2libGUgdG8KLWFwcGx5IGEgbWFya2VyIHRvIGFuIGluZGl2aWR1YWwg
dGVzdCBpbnN0YW5jZTo6CithcHBseSBhIG1hcmtlciB0byBhbiBpbmRpdmlkdWFsIHRlc3QgaW5z
dGFuY2U6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIGltcG9ydCBweXRlc3QKIAor
CiAgICAgQHB5dGVzdC5tYXJrLmZvbwotICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoIm4i
LCAiZXhwZWN0ZWQiKSwgWwotICAgICAgICAoMSwgMiksCi0gICAgICAgIHB5dGVzdC5tYXJrLmJh
cigoMSwgMykpLAotICAgICAgICAoMiwgMyksCi0gICAgXSkKKyAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoCisgICAgICAgICgibiIsICJleHBlY3RlZCIpLCBbKDEsIDIpLCBweXRlc3QucGFy
YW0oKDEsIDMpLCBtYXJrcz1weXRlc3QubWFyay5iYXIpLCAoMiwgMyldCisgICAgKQogICAgIGRl
ZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6Ci0gICAgICAgICBhc3NlcnQgbiArIDEgPT0g
ZXhwZWN0ZWQKKyAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCiAKIEluIHRoaXMgZXhh
bXBsZSB0aGUgbWFyayAiZm9vIiB3aWxsIGFwcGx5IHRvIGVhY2ggb2YgdGhlIHRocmVlCiB0ZXN0
cywgd2hlcmVhcyB0aGUgImJhciIgbWFyayBpcyBvbmx5IGFwcGxpZWQgdG8gdGhlIHNlY29uZCB0
ZXN0LgogU2tpcCBhbmQgeGZhaWwgbWFya3MgY2FuIGFsc28gYmUgYXBwbGllZCBpbiB0aGlzIHdh
eSwgc2VlIDpyZWY6YHNraXAveGZhaWwgd2l0aCBwYXJhbWV0cml6ZWAuCiAKLS4uIG5vdGU6Ogot
Ci0gICAgSWYgdGhlIGRhdGEgeW91IGFyZSBwYXJhbWV0cml6aW5nIGhhcHBlbiB0byBiZSBzaW5n
bGUgY2FsbGFibGVzLCB5b3UgbmVlZCB0byBiZSBjYXJlZnVsCi0gICAgd2hlbiBtYXJraW5nIHRo
ZXNlIGl0ZW1zLiBgcHl0ZXN0Lm1hcmsueGZhaWwobXlfZnVuYylgIHdvbid0IHdvcmsgYmVjYXVz
ZSBpdCdzIGFsc28gdGhlCi0gICAgc2lnbmF0dXJlIG9mIGEgZnVuY3Rpb24gYmVpbmcgZGVjb3Jh
dGVkLiBUbyByZXNvbHZlIHRoaXMgYW1iaWd1aXR5LCB5b3UgbmVlZCB0byBwYXNzIGEKLSAgICBy
ZWFzb24gYXJndW1lbnQ6Ci0gICAgYHB5dGVzdC5tYXJrLnhmYWlsKGZ1bmNfYmFyLCByZWFzb249
Iklzc3VlIzciKWAuCi0KLQogLi4gX2BhZGRpbmcgYSBjdXN0b20gbWFya2VyIGZyb20gYSBwbHVn
aW5gOgogCiBDdXN0b20gbWFya2VyIGFuZCBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGNvbnRyb2wg
dGVzdCBydW5zCkBAIC0zMTUsNzQgKzM1Niw5OSBAQCBDdXN0b20gbWFya2VyIGFuZCBjb21tYW5k
IGxpbmUgb3B0aW9uIHRvIGNvbnRyb2wgdGVzdCBydW5zCiBQbHVnaW5zIGNhbiBwcm92aWRlIGN1
c3RvbSBtYXJrZXJzIGFuZCBpbXBsZW1lbnQgc3BlY2lmaWMgYmVoYXZpb3VyCiBiYXNlZCBvbiBp
dC4gVGhpcyBpcyBhIHNlbGYtY29udGFpbmVkIGV4YW1wbGUgd2hpY2ggYWRkcyBhIGNvbW1hbmQK
IGxpbmUgb3B0aW9uIGFuZCBhIHBhcmFtZXRyaXplZCB0ZXN0IGZ1bmN0aW9uIG1hcmtlciB0byBy
dW4gdGVzdHMKLXNwZWNpZmllcyB2aWEgbmFtZWQgZW52aXJvbm1lbnRzOjoKK3NwZWNpZmllcyB2
aWEgbmFtZWQgZW52aXJvbm1lbnRzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICAj
IGNvbnRlbnQgb2YgY29uZnRlc3QucHkKIAogICAgIGltcG9ydCBweXRlc3QKKworCiAgICAgZGVm
IHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLUUi
LCBhY3Rpb249InN0b3JlIiwgbWV0YXZhcj0iTkFNRSIsCi0gICAgICAgICAgICBoZWxwPSJvbmx5
IHJ1biB0ZXN0cyBtYXRjaGluZyB0aGUgZW52aXJvbm1lbnQgTkFNRS4iKQorICAgICAgICBwYXJz
ZXIuYWRkb3B0aW9uKAorICAgICAgICAgICAgIi1FIiwKKyAgICAgICAgICAgIGFjdGlvbj0ic3Rv
cmUiLAorICAgICAgICAgICAgbWV0YXZhcj0iTkFNRSIsCisgICAgICAgICAgICBoZWxwPSJvbmx5
IHJ1biB0ZXN0cyBtYXRjaGluZyB0aGUgZW52aXJvbm1lbnQgTkFNRS4iLAorICAgICAgICApCisK
IAogICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CiAgICAgICAgICMgcmVnaXN0ZXIg
YW4gYWRkaXRpb25hbCBtYXJrZXIKLSAgICAgICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1h
cmtlcnMiLAotICAgICAgICAgICAgImVudihuYW1lKTogbWFyayB0ZXN0IHRvIHJ1biBvbmx5IG9u
IG5hbWVkIGVudmlyb25tZW50IikKKyAgICAgICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoCisg
ICAgICAgICAgICAibWFya2VycyIsICJlbnYobmFtZSk6IG1hcmsgdGVzdCB0byBydW4gb25seSBv
biBuYW1lZCBlbnZpcm9ubWVudCIKKyAgICAgICAgKQorCiAKICAgICBkZWYgcHl0ZXN0X3J1bnRl
c3Rfc2V0dXAoaXRlbSk6Ci0gICAgICAgIGVudm5hbWVzID0gW21hcmsuYXJnc1swXSBmb3IgbWFy
ayBpbiBpdGVtLml0ZXJfbWFya2VycyhuYW1lPSdlbnYnKV0KKyAgICAgICAgZW52bmFtZXMgPSBb
bWFyay5hcmdzWzBdIGZvciBtYXJrIGluIGl0ZW0uaXRlcl9tYXJrZXJzKG5hbWU9ImVudiIpXQog
ICAgICAgICBpZiBlbnZuYW1lczoKICAgICAgICAgICAgIGlmIGl0ZW0uY29uZmlnLmdldG9wdGlv
bigiLUUiKSBub3QgaW4gZW52bmFtZXM6CiAgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoInRl
c3QgcmVxdWlyZXMgZW52IGluICVyIiAlIGVudm5hbWVzKQogCi1BIHRlc3QgZmlsZSB1c2luZyB0
aGlzIGxvY2FsIHBsdWdpbjo6CitBIHRlc3QgZmlsZSB1c2luZyB0aGlzIGxvY2FsIHBsdWdpbjoK
KworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyBjb250ZW50IG9mIHRlc3Rfc29tZWVu
di5weQogCiAgICAgaW1wb3J0IHB5dGVzdAorCisKICAgICBAcHl0ZXN0Lm1hcmsuZW52KCJzdGFn
ZTEiKQogICAgIGRlZiB0ZXN0X2Jhc2ljX2RiX29wZXJhdGlvbigpOgogICAgICAgICBwYXNzCiAK
IGFuZCBhbiBleGFtcGxlIGludm9jYXRpb25zIHNwZWNpZnlpbmcgYSBkaWZmZXJlbnQgZW52aXJv
bm1lbnQgdGhhbiB3aGF0Ci10aGUgdGVzdCBuZWVkczo6Cit0aGUgdGVzdCBuZWVkczoKKworLi4g
Y29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLUUgc3RhZ2UyCiAgICAgPT09PT09
PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0
LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RN
UERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVz
dC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BS
RUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNv
bGxlY3RlZCAxIGl0ZW0KIAogICAgIHRlc3Rfc29tZWVudi5weSBzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQogCiAgICAgPT09PT09PT09
PT09PT09PT09PT09PT09IDEgc2tpcHBlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09
PT09PT09PT09PQogCi1hbmQgaGVyZSBpcyBvbmUgdGhhdCBzcGVjaWZpZXMgZXhhY3RseSB0aGUg
ZW52aXJvbm1lbnQgbmVlZGVkOjoKK2FuZCBoZXJlIGlzIG9uZSB0aGF0IHNwZWNpZmllcyBleGFj
dGx5IHRoZSBlbnZpcm9ubWVudCBuZWVkZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAog
ICAgICQgcHl0ZXN0IC1FIHN0YWdlMQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0
ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxh
dGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVn
Z3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAg
IHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQgMSBpdGVtCiAKICAgICB0
ZXN0X3NvbWVlbnYucHkgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbMTAwJV0KIAogICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gMSBwYXNz
ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KIAotVGhlIGBgLS1t
YXJrZXJzYGAgb3B0aW9uIGFsd2F5cyBnaXZlcyB5b3UgYSBsaXN0IG9mIGF2YWlsYWJsZSBtYXJr
ZXJzOjoKK1RoZSBgYC0tbWFya2Vyc2BgIG9wdGlvbiBhbHdheXMgZ2l2ZXMgeW91IGEgbGlzdCBv
ZiBhdmFpbGFibGUgbWFya2VyczoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBw
eXRlc3QgLS1tYXJrZXJzCiAgICAgQHB5dGVzdC5tYXJrLmVudihuYW1lKTogbWFyayB0ZXN0IHRv
IHJ1biBvbmx5IG9uIG5hbWVkIGVudmlyb25tZW50CiAKKyAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVy
d2FybmluZ3Mod2FybmluZyk6IGFkZCBhIHdhcm5pbmcgZmlsdGVyIHRvIHRoZSBnaXZlbiB0ZXN0
LiBzZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwjcHl0
ZXN0LW1hcmstZmlsdGVyd2FybmluZ3MKKwogICAgIEBweXRlc3QubWFyay5za2lwKHJlYXNvbj1O
b25lKTogc2tpcCB0aGUgZ2l2ZW4gdGVzdCBmdW5jdGlvbiB3aXRoIGFuIG9wdGlvbmFsIHJlYXNv
bi4gRXhhbXBsZTogc2tpcChyZWFzb249Im5vIHdheSBvZiBjdXJyZW50bHkgdGVzdGluZyB0aGlz
Iikgc2tpcHMgdGhlIHRlc3QuCiAKLSAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKGNvbmRpdGlvbik6
IHNraXAgdGhlIGdpdmVuIHRlc3QgZnVuY3Rpb24gaWYgZXZhbChjb25kaXRpb24pIHJlc3VsdHMg
aW4gYSBUcnVlIHZhbHVlLiAgRXZhbHVhdGlvbiBoYXBwZW5zIHdpdGhpbiB0aGUgbW9kdWxlIGds
b2JhbCBjb250ZXh0LiBFeGFtcGxlOiBza2lwaWYoJ3N5cy5wbGF0Zm9ybSA9PSAid2luMzIiJykg
c2tpcHMgdGhlIHRlc3QgaWYgd2UgYXJlIG9uIHRoZSB3aW4zMiBwbGF0Zm9ybS4gc2VlIGh0dHA6
Ly9weXRlc3Qub3JnL2xhdGVzdC9za2lwcGluZy5odG1sCisgICAgQHB5dGVzdC5tYXJrLnNraXBp
Zihjb25kaXRpb24pOiBza2lwIHRoZSBnaXZlbiB0ZXN0IGZ1bmN0aW9uIGlmIGV2YWwoY29uZGl0
aW9uKSByZXN1bHRzIGluIGEgVHJ1ZSB2YWx1ZS4gIEV2YWx1YXRpb24gaGFwcGVucyB3aXRoaW4g
dGhlIG1vZHVsZSBnbG9iYWwgY29udGV4dC4gRXhhbXBsZTogc2tpcGlmKCdzeXMucGxhdGZvcm0g
PT0gIndpbjMyIicpIHNraXBzIHRoZSB0ZXN0IGlmIHdlIGFyZSBvbiB0aGUgd2luMzIgcGxhdGZv
cm0uIHNlZSBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvc2tpcHBpbmcuaHRtbAog
Ci0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKGNvbmRpdGlvbiwgcmVhc29uPU5vbmUsIHJ1bj1UcnVl
LCByYWlzZXM9Tm9uZSwgc3RyaWN0PUZhbHNlKTogbWFyayB0aGUgdGVzdCBmdW5jdGlvbiBhcyBh
biBleHBlY3RlZCBmYWlsdXJlIGlmIGV2YWwoY29uZGl0aW9uKSBoYXMgYSBUcnVlIHZhbHVlLiBP
cHRpb25hbGx5IHNwZWNpZnkgYSByZWFzb24gZm9yIGJldHRlciByZXBvcnRpbmcgYW5kIHJ1bj1G
YWxzZSBpZiB5b3UgZG9uJ3QgZXZlbiB3YW50IHRvIGV4ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24u
IElmIG9ubHkgc3BlY2lmaWMgZXhjZXB0aW9uKHMpIGFyZSBleHBlY3RlZCwgeW91IGNhbiBsaXN0
IHRoZW0gaW4gcmFpc2VzLCBhbmQgaWYgdGhlIHRlc3QgZmFpbHMgaW4gb3RoZXIgd2F5cywgaXQg
d2lsbCBiZSByZXBvcnRlZCBhcyBhIHRydWUgZmFpbHVyZS4gU2VlIGh0dHA6Ly9weXRlc3Qub3Jn
L2xhdGVzdC9za2lwcGluZy5odG1sCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKGNvbmRpdGlvbiwg
cmVhc29uPU5vbmUsIHJ1bj1UcnVlLCByYWlzZXM9Tm9uZSwgc3RyaWN0PUZhbHNlKTogbWFyayB0
aGUgdGVzdCBmdW5jdGlvbiBhcyBhbiBleHBlY3RlZCBmYWlsdXJlIGlmIGV2YWwoY29uZGl0aW9u
KSBoYXMgYSBUcnVlIHZhbHVlLiBPcHRpb25hbGx5IHNwZWNpZnkgYSByZWFzb24gZm9yIGJldHRl
ciByZXBvcnRpbmcgYW5kIHJ1bj1GYWxzZSBpZiB5b3UgZG9uJ3QgZXZlbiB3YW50IHRvIGV4ZWN1
dGUgdGhlIHRlc3QgZnVuY3Rpb24uIElmIG9ubHkgc3BlY2lmaWMgZXhjZXB0aW9uKHMpIGFyZSBl
eHBlY3RlZCwgeW91IGNhbiBsaXN0IHRoZW0gaW4gcmFpc2VzLCBhbmQgaWYgdGhlIHRlc3QgZmFp
bHMgaW4gb3RoZXIgd2F5cywgaXQgd2lsbCBiZSByZXBvcnRlZCBhcyBhIHRydWUgZmFpbHVyZS4g
U2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9za2lwcGluZy5odG1sCiAKLSAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoYXJnbmFtZXMsIGFyZ3ZhbHVlcyk6IGNhbGwgYSB0
ZXN0IGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIHBhc3NpbmcgaW4gZGlmZmVyZW50IGFyZ3VtZW50
cyBpbiB0dXJuLiBhcmd2YWx1ZXMgZ2VuZXJhbGx5IG5lZWRzIHRvIGJlIGEgbGlzdCBvZiB2YWx1
ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVzIG9ubHkgb25lIG5hbWUgb3IgYSBsaXN0IG9mIHR1cGxl
cyBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVzIG11bHRpcGxlIG5hbWVzLiBFeGFtcGxl
OiBAcGFyYW1ldHJpemUoJ2FyZzEnLCBbMSwyXSkgd291bGQgbGVhZCB0byB0d28gY2FsbHMgb2Yg
dGhlIGRlY29yYXRlZCB0ZXN0IGZ1bmN0aW9uLCBvbmUgd2l0aCBhcmcxPTEgYW5kIGFub3RoZXIg
d2l0aCBhcmcxPTIuc2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9wYXJhbWV0cml6ZS5odG1s
IGZvciBtb3JlIGluZm8gYW5kIGV4YW1wbGVzLgorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZShhcmduYW1lcywgYXJndmFsdWVzKTogY2FsbCBhIHRlc3QgZnVuY3Rpb24gbXVsdGlwbGUgdGlt
ZXMgcGFzc2luZyBpbiBkaWZmZXJlbnQgYXJndW1lbnRzIGluIHR1cm4uIGFyZ3ZhbHVlcyBnZW5l
cmFsbHkgbmVlZHMgdG8gYmUgYSBsaXN0IG9mIHZhbHVlcyBpZiBhcmduYW1lcyBzcGVjaWZpZXMg
b25seSBvbmUgbmFtZSBvciBhIGxpc3Qgb2YgdHVwbGVzIG9mIHZhbHVlcyBpZiBhcmduYW1lcyBz
cGVjaWZpZXMgbXVsdGlwbGUgbmFtZXMuIEV4YW1wbGU6IEBwYXJhbWV0cml6ZSgnYXJnMScsIFsx
LDJdKSB3b3VsZCBsZWFkIHRvIHR3byBjYWxscyBvZiB0aGUgZGVjb3JhdGVkIHRlc3QgZnVuY3Rp
b24sIG9uZSB3aXRoIGFyZzE9MSBhbmQgYW5vdGhlciB3aXRoIGFyZzE9Mi5zZWUgaHR0cHM6Ly9k
b2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3BhcmFtZXRyaXplLmh0bWwgZm9yIG1vcmUgaW5mbyBh
bmQgZXhhbXBsZXMuCiAKLSAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoZml4dHVyZW5hbWUx
LCBmaXh0dXJlbmFtZTIsIC4uLik6IG1hcmsgdGVzdHMgYXMgbmVlZGluZyBhbGwgb2YgdGhlIHNw
ZWNpZmllZCBmaXh0dXJlcy4gc2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9maXh0dXJlLmh0
bWwjdXNlZml4dHVyZXMKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoZml4dHVyZW5hbWUx
LCBmaXh0dXJlbmFtZTIsIC4uLik6IG1hcmsgdGVzdHMgYXMgbmVlZGluZyBhbGwgb2YgdGhlIHNw
ZWNpZmllZCBmaXh0dXJlcy4gc2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9m
aXh0dXJlLmh0bWwjdXNlZml4dHVyZXMKIAogICAgIEBweXRlc3QubWFyay50cnlmaXJzdDogbWFy
ayBhIGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24gc3VjaCB0aGF0IHRoZSBwbHVnaW4gbWFj
aGluZXJ5IHdpbGwgdHJ5IHRvIGNhbGwgaXQgZmlyc3QvYXMgZWFybHkgYXMgcG9zc2libGUuCiAK
QEAgLTM5NiwzMSArNDYyLDQwIEBAIFBhc3NpbmcgYSBjYWxsYWJsZSB0byBjdXN0b20gbWFya2Vy
cwogCiAuLiByZWdlbmRvYzp3aXBlCiAKLUJlbG93IGlzIHRoZSBjb25maWcgZmlsZSB0aGF0IHdp
bGwgYmUgdXNlZCBpbiB0aGUgbmV4dCBleGFtcGxlczo6CitCZWxvdyBpcyB0aGUgY29uZmlnIGZp
bGUgdGhhdCB3aWxsIGJlIHVzZWQgaW4gdGhlIG5leHQgZXhhbXBsZXM6CisKKy4uIGNvZGUtYmxv
Y2s6OiBweXRob24KIAogICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQogICAgIGltcG9ydCBz
eXMKIAorCiAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgotICAgICAgICBmb3Ig
bWFya2VyIGluIGl0ZW0uaXRlcl9tYXJrZXJzKG5hbWU9J215X21hcmtlcicpOgorICAgICAgICBm
b3IgbWFya2VyIGluIGl0ZW0uaXRlcl9tYXJrZXJzKG5hbWU9Im15X21hcmtlciIpOgogICAgICAg
ICAgICAgcHJpbnQobWFya2VyKQogICAgICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCiAKIEEg
Y3VzdG9tIG1hcmtlciBjYW4gaGF2ZSBpdHMgYXJndW1lbnQgc2V0LCBpLmUuIGBgYXJnc2BgIGFu
ZCBgYGt3YXJnc2BgIHByb3BlcnRpZXMsIGRlZmluZWQgYnkgZWl0aGVyIGludm9raW5nIGl0IGFz
IGEgY2FsbGFibGUgb3IgdXNpbmcgYGBweXRlc3QubWFyay5NQVJLRVJfTkFNRS53aXRoX2FyZ3Ng
YC4gVGhlc2UgdHdvIG1ldGhvZHMgYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3QgbW9zdCBvZiB0aGUg
dGltZS4KIAotSG93ZXZlciwgaWYgdGhlcmUgaXMgYSBjYWxsYWJsZSBhcyB0aGUgc2luZ2xlIHBv
c2l0aW9uYWwgYXJndW1lbnQgd2l0aCBubyBrZXl3b3JkIGFyZ3VtZW50cywgdXNpbmcgdGhlIGBg
cHl0ZXN0Lm1hcmsuTUFSS0VSX05BTUUoYylgYCB3aWxsIG5vdCBwYXNzIGBgY2BgIGFzIGEgcG9z
aXRpb25hbCBhcmd1bWVudCBidXQgZGVjb3JhdGUgYGBjYGAgd2l0aCB0aGUgY3VzdG9tIG1hcmtl
ciAoc2VlIDpyZWY6YE1hcmtEZWNvcmF0b3IgPG1hcms+YCkuIEZvcnR1bmF0ZWx5LCBgYHB5dGVz
dC5tYXJrLk1BUktFUl9OQU1FLndpdGhfYXJnc2BgIGNvbWVzIHRvIHRoZSByZXNjdWU6OgorSG93
ZXZlciwgaWYgdGhlcmUgaXMgYSBjYWxsYWJsZSBhcyB0aGUgc2luZ2xlIHBvc2l0aW9uYWwgYXJn
dW1lbnQgd2l0aCBubyBrZXl3b3JkIGFyZ3VtZW50cywgdXNpbmcgdGhlIGBgcHl0ZXN0Lm1hcmsu
TUFSS0VSX05BTUUoYylgYCB3aWxsIG5vdCBwYXNzIGBgY2BgIGFzIGEgcG9zaXRpb25hbCBhcmd1
bWVudCBidXQgZGVjb3JhdGUgYGBjYGAgd2l0aCB0aGUgY3VzdG9tIG1hcmtlciAoc2VlIDpyZWY6
YE1hcmtEZWNvcmF0b3IgPG1hcms+YCkuIEZvcnR1bmF0ZWx5LCBgYHB5dGVzdC5tYXJrLk1BUktF
Ul9OQU1FLndpdGhfYXJnc2BgIGNvbWVzIHRvIHRoZSByZXNjdWU6CisKKy4uIGNvZGUtYmxvY2s6
OiBweXRob24KIAogICAgICMgY29udGVudCBvZiB0ZXN0X2N1c3RvbV9tYXJrZXIucHkKICAgICBp
bXBvcnQgcHl0ZXN0CiAKKwogICAgIGRlZiBoZWxsb193b3JsZCgqYXJncywgKiprd2FyZ3MpOgot
ICAgICAgICByZXR1cm4gJ0hlbGxvIFdvcmxkJworICAgICAgICByZXR1cm4gIkhlbGxvIFdvcmxk
IgorCiAKICAgICBAcHl0ZXN0Lm1hcmsubXlfbWFya2VyLndpdGhfYXJncyhoZWxsb193b3JsZCkK
ICAgICBkZWYgdGVzdF93aXRoX2FyZ3MoKToKICAgICAgICAgcGFzcwogCi1UaGUgb3V0cHV0IGlz
IGFzIGZvbGxvd3M6OgorVGhlIG91dHB1dCBpcyBhcyBmb2xsb3dzOgorCisuLiBjb2RlLWJsb2Nr
OjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcSAtcwogICAgIE1hcmsobmFtZT0nbXlfbWFya2Vy
JywgYXJncz0oPGZ1bmN0aW9uIGhlbGxvX3dvcmxkIGF0IDB4ZGVhZGJlZWY+LCksIGt3YXJncz17
fSkKQEAgLTQzOCwxMiArNTEzLDE2IEBAIFJlYWRpbmcgbWFya2VycyB3aGljaCB3ZXJlIHNldCBm
cm9tIG11bHRpcGxlIHBsYWNlcwogLi4gcmVnZW5kb2M6d2lwZQogCiBJZiB5b3UgYXJlIGhlYXZp
bHkgdXNpbmcgbWFya2VycyBpbiB5b3VyIHRlc3Qgc3VpdGUgeW91IG1heSBlbmNvdW50ZXIgdGhl
IGNhc2Ugd2hlcmUgYSBtYXJrZXIgaXMgYXBwbGllZCBzZXZlcmFsIHRpbWVzIHRvIGEgdGVzdCBm
dW5jdGlvbi4gIEZyb20gcGx1Z2luCi1jb2RlIHlvdSBjYW4gcmVhZCBvdmVyIGFsbCBzdWNoIHNl
dHRpbmdzLiAgRXhhbXBsZTo6Citjb2RlIHlvdSBjYW4gcmVhZCBvdmVyIGFsbCBzdWNoIHNldHRp
bmdzLiAgRXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyBjb250ZW50
IG9mIHRlc3RfbWFya190aHJlZV90aW1lcy5weQogICAgIGltcG9ydCBweXRlc3QKKwogICAgIHB5
dGVzdG1hcmsgPSBweXRlc3QubWFyay5nbG9iKCJtb2R1bGUiLCB4PTEpCiAKKwogICAgIEBweXRl
c3QubWFyay5nbG9iKCJjbGFzcyIsIHg9MikKICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToK
ICAgICAgICAgQHB5dGVzdC5tYXJrLmdsb2IoImZ1bmN0aW9uIiwgeD0zKQpAQCAtNDUxLDE3ICs1
MzAsMjIgQEAgY29kZSB5b3UgY2FuIHJlYWQgb3ZlciBhbGwgc3VjaCBzZXR0aW5ncy4gIEV4YW1w
bGU6OgogICAgICAgICAgICAgcGFzcwogCiBIZXJlIHdlIGhhdmUgdGhlIG1hcmtlciAiZ2xvYiIg
YXBwbGllZCB0aHJlZSB0aW1lcyB0byB0aGUgc2FtZQotdGVzdCBmdW5jdGlvbi4gIEZyb20gYSBj
b25mdGVzdCBmaWxlIHdlIGNhbiByZWFkIGl0IGxpa2UgdGhpczo6Cit0ZXN0IGZ1bmN0aW9uLiAg
RnJvbSBhIGNvbmZ0ZXN0IGZpbGUgd2UgY2FuIHJlYWQgaXQgbGlrZSB0aGlzOgorCisuLiBjb2Rl
LWJsb2NrOjogcHl0aG9uCiAKICAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKICAgICBpbXBv
cnQgc3lzCiAKKwogICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKLSAgICAgICAg
Zm9yIG1hcmsgaW4gaXRlbS5pdGVyX21hcmtlcnMobmFtZT0nZ2xvYicpOgotICAgICAgICAgICAg
cHJpbnQgKCJnbG9iIGFyZ3M9JXMga3dhcmdzPSVzIiAlKG1hcmsuYXJncywgbWFyay5rd2FyZ3Mp
KQorICAgICAgICBmb3IgbWFyayBpbiBpdGVtLml0ZXJfbWFya2VycyhuYW1lPSJnbG9iIik6Cisg
ICAgICAgICAgICBwcmludCgiZ2xvYiBhcmdzPSVzIGt3YXJncz0lcyIgJSAobWFyay5hcmdzLCBt
YXJrLmt3YXJncykpCiAgICAgICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKIAotTGV0J3MgcnVu
IHRoaXMgd2l0aG91dCBjYXB0dXJpbmcgb3V0cHV0IGFuZCBzZWUgd2hhdCB3ZSBnZXQ6OgorTGV0
J3MgcnVuIHRoaXMgd2l0aG91dCBjYXB0dXJpbmcgb3V0cHV0IGFuZCBzZWUgd2hhdCB3ZSBnZXQ6
CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xIC1zCiAgICAgZ2xv
YiBhcmdzPSgnZnVuY3Rpb24nLCkga3dhcmdzPXsneCc6IDN9CkBAIC00NzksNyArNTYzLDkgQEAg
Q29uc2lkZXIgeW91IGhhdmUgYSB0ZXN0IHN1aXRlIHdoaWNoIG1hcmtzIHRlc3RzIGZvciBwYXJ0
aWN1bGFyIHBsYXRmb3JtcywKIG5hbWVseSBgYHB5dGVzdC5tYXJrLmRhcndpbmBgLCBgYHB5dGVz
dC5tYXJrLndpbjMyYGAgZXRjLiBhbmQgeW91CiBhbHNvIGhhdmUgdGVzdHMgdGhhdCBydW4gb24g
YWxsIHBsYXRmb3JtcyBhbmQgaGF2ZSBubyBzcGVjaWZpYwogbWFya2VyLiAgSWYgeW91IG5vdyB3
YW50IHRvIGhhdmUgYSB3YXkgdG8gb25seSBydW4gdGhlIHRlc3RzCi1mb3IgeW91ciBwYXJ0aWN1
bGFyIHBsYXRmb3JtLCB5b3UgY291bGQgdXNlIHRoZSBmb2xsb3dpbmcgcGx1Z2luOjoKK2ZvciB5
b3VyIHBhcnRpY3VsYXIgcGxhdGZvcm0sIHlvdSBjb3VsZCB1c2UgdGhlIGZvbGxvd2luZyBwbHVn
aW46CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVudCBvZiBjb25mdGVz
dC5weQogICAgICMKQEAgLTQ4OCw2ICs1NzQsNyBAQCBmb3IgeW91ciBwYXJ0aWN1bGFyIHBsYXRm
b3JtLCB5b3UgY291bGQgdXNlIHRoZSBmb2xsb3dpbmcgcGx1Z2luOjoKIAogICAgIEFMTCA9IHNl
dCgiZGFyd2luIGxpbnV4IHdpbjMyIi5zcGxpdCgpKQogCisKICAgICBkZWYgcHl0ZXN0X3J1bnRl
c3Rfc2V0dXAoaXRlbSk6CiAgICAgICAgIHN1cHBvcnRlZF9wbGF0Zm9ybXMgPSBBTEwuaW50ZXJz
ZWN0aW9uKG1hcmsubmFtZSBmb3IgbWFyayBpbiBpdGVtLml0ZXJfbWFya2VycygpKQogICAgICAg
ICBwbGF0ID0gc3lzLnBsYXRmb3JtCkBAIC00OTUsNDggKzU4Miw2MCBAQCBmb3IgeW91ciBwYXJ0
aWN1bGFyIHBsYXRmb3JtLCB5b3UgY291bGQgdXNlIHRoZSBmb2xsb3dpbmcgcGx1Z2luOjoKICAg
ICAgICAgICAgIHB5dGVzdC5za2lwKCJjYW5ub3QgcnVuIG9uIHBsYXRmb3JtICVzIiAlIChwbGF0
KSkKIAogdGhlbiB0ZXN0cyB3aWxsIGJlIHNraXBwZWQgaWYgdGhleSB3ZXJlIHNwZWNpZmllZCBm
b3IgYSBkaWZmZXJlbnQgcGxhdGZvcm0uCi1MZXQncyBkbyBhIGxpdHRsZSB0ZXN0IGZpbGUgdG8g
c2hvdyBob3cgdGhpcyBsb29rcyBsaWtlOjoKK0xldCdzIGRvIGEgbGl0dGxlIHRlc3QgZmlsZSB0
byBzaG93IGhvdyB0aGlzIGxvb2tzIGxpa2U6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAog
ICAgICMgY29udGVudCBvZiB0ZXN0X3BsYXQucHkKIAogICAgIGltcG9ydCBweXRlc3QKIAorCiAg
ICAgQHB5dGVzdC5tYXJrLmRhcndpbgogICAgIGRlZiB0ZXN0X2lmX2FwcGxlX2lzX2V2aWwoKToK
ICAgICAgICAgcGFzcwogCisKICAgICBAcHl0ZXN0Lm1hcmsubGludXgKICAgICBkZWYgdGVzdF9p
Zl9saW51eF93b3JrcygpOgogICAgICAgICBwYXNzCiAKKwogICAgIEBweXRlc3QubWFyay53aW4z
MgogICAgIGRlZiB0ZXN0X2lmX3dpbjMyX2NyYXNoZXMoKToKICAgICAgICAgcGFzcwogCisKICAg
ICBkZWYgdGVzdF9ydW5zX2V2ZXJ5d2hlcmUoKToKICAgICAgICAgcGFzcwogCi10aGVuIHlvdSB3
aWxsIHNlZSB0d28gdGVzdHMgc2tpcHBlZCBhbmQgdHdvIGV4ZWN1dGVkIHRlc3RzIGFzIGV4cGVj
dGVkOjoKK3RoZW4geW91IHdpbGwgc2VlIHR3byB0ZXN0cyBza2lwcGVkIGFuZCB0d28gZXhlY3V0
ZWQgdGVzdHMgYXMgZXhwZWN0ZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQg
cHl0ZXN0IC1ycyAjIHRoaXMgb3B0aW9uIHJlcG9ydHMgc2tpcCByZWFzb25zCiAgICAgPT09PT09
PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0
LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RN
UERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVz
dC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BS
RUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNv
bGxlY3RlZCA0IGl0ZW1zCiAKICAgICB0ZXN0X3BsYXQucHkgcy5zLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KLSAgICA9PT09PT09PT09
PT09PT09PT09PT09PT09IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvID09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0gICAgU0tJUCBbMl0gJFJFR0VORE9DX1RNUERJUi9jb25mdGVzdC5weToxMjog
Y2Fubm90IHJ1biBvbiBwbGF0Zm9ybSBsaW51eAogCisgICAgPT09PT09PT09PT09PT09PT09PT09
PT09PSBzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PQor
ICAgIFNLSVBQRUQgWzJdICRSRUdFTkRPQ19UTVBESVIvY29uZnRlc3QucHk6MTM6IGNhbm5vdCBy
dW4gb24gcGxhdGZvcm0gbGludXgKICAgICA9PT09PT09PT09PT09PT09PT09IDIgcGFzc2VkLCAy
IHNraXBwZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09CiAKLU5vdGUgdGhh
dCBpZiB5b3Ugc3BlY2lmeSBhIHBsYXRmb3JtIHZpYSB0aGUgbWFya2VyLWNvbW1hbmQgbGluZSBv
cHRpb24gbGlrZSB0aGlzOjoKK05vdGUgdGhhdCBpZiB5b3Ugc3BlY2lmeSBhIHBsYXRmb3JtIHZp
YSB0aGUgbWFya2VyLWNvbW1hbmQgbGluZSBvcHRpb24gbGlrZSB0aGlzOgorCisuLiBjb2RlLWJs
b2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtbSBsaW51eAogICAgID09PT09PT09PT09PT09
PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwg
cHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGlu
aWZpbGU6Ci0gICAgY29sbGVjdGVkIDQgaXRlbXMgLyAzIGRlc2VsZWN0ZWQKKyAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0w
LngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9v
dGRpcjogJFJFR0VORE9DX1RNUERJUgorICAgIGNvbGxlY3RlZCA0IGl0ZW1zIC8gMyBkZXNlbGVj
dGVkIC8gMSBzZWxlY3RlZAogCiAgICAgdGVzdF9wbGF0LnB5IC4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCiAKQEAgLTU1MiwyOCAr
NjUxLDM4IEBAIEF1dG9tYXRpY2FsbHkgYWRkaW5nIG1hcmtlcnMgYmFzZWQgb24gdGVzdCBuYW1l
cwogSWYgeW91IGEgdGVzdCBzdWl0ZSB3aGVyZSB0ZXN0IGZ1bmN0aW9uIG5hbWVzIGluZGljYXRl
IGEgY2VydGFpbgogdHlwZSBvZiB0ZXN0LCB5b3UgY2FuIGltcGxlbWVudCBhIGhvb2sgdGhhdCBh
dXRvbWF0aWNhbGx5IGRlZmluZXMKIG1hcmtlcnMgc28gdGhhdCB5b3UgY2FuIHVzZSB0aGUgYGAt
bWBgIG9wdGlvbiB3aXRoIGl0LiBMZXQncyBsb29rCi1hdCB0aGlzIHRlc3QgbW9kdWxlOjoKK2F0
IHRoaXMgdGVzdCBtb2R1bGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29u
dGVudCBvZiB0ZXN0X21vZHVsZS5weQogCisKICAgICBkZWYgdGVzdF9pbnRlcmZhY2Vfc2ltcGxl
KCk6CiAgICAgICAgIGFzc2VydCAwCiAKKwogICAgIGRlZiB0ZXN0X2ludGVyZmFjZV9jb21wbGV4
KCk6CiAgICAgICAgIGFzc2VydCAwCiAKKwogICAgIGRlZiB0ZXN0X2V2ZW50X3NpbXBsZSgpOgog
ICAgICAgICBhc3NlcnQgMAogCisKICAgICBkZWYgdGVzdF9zb21ldGhpbmdfZWxzZSgpOgogICAg
ICAgICBhc3NlcnQgMAogCiBXZSB3YW50IHRvIGR5bmFtaWNhbGx5IGRlZmluZSB0d28gbWFya2Vy
cyBhbmQgY2FuIGRvIGl0IGluIGEKLWBgY29uZnRlc3QucHlgYCBwbHVnaW46OgorYGBjb25mdGVz
dC5weWBgIHBsdWdpbjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyBjb250ZW50
IG9mIGNvbmZ0ZXN0LnB5CiAKICAgICBpbXBvcnQgcHl0ZXN0CisKKwogICAgIGRlZiBweXRlc3Rf
Y29sbGVjdGlvbl9tb2RpZnlpdGVtcyhpdGVtcyk6CiAgICAgICAgIGZvciBpdGVtIGluIGl0ZW1z
OgogICAgICAgICAgICAgaWYgImludGVyZmFjZSIgaW4gaXRlbS5ub2RlaWQ6CkBAIC01ODEsNDgg
KzY5MCw1NCBAQCBXZSB3YW50IHRvIGR5bmFtaWNhbGx5IGRlZmluZSB0d28gbWFya2VycyBhbmQg
Y2FuIGRvIGl0IGluIGEKICAgICAgICAgICAgIGVsaWYgImV2ZW50IiBpbiBpdGVtLm5vZGVpZDoK
ICAgICAgICAgICAgICAgICBpdGVtLmFkZF9tYXJrZXIocHl0ZXN0Lm1hcmsuZXZlbnQpCiAKLVdl
IGNhbiBub3cgdXNlIHRoZSBgYC1tIG9wdGlvbmBgIHRvIHNlbGVjdCBvbmUgc2V0OjoKLQotICAk
IHB5dGVzdCAtbSBpbnRlcmZhY2UgLS10Yj1zaG9ydAotICA9PT09PT09PT09PT09PT09PT09PT09
PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0g
IHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwg
cGx1Z2d5LTAueC55Ci0gIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Ci0gIGNv
bGxlY3RlZCA0IGl0ZW1zIC8gMiBkZXNlbGVjdGVkCi0KLSAgdGVzdF9tb2R1bGUucHkgRkYgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCi0K
LSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotICBfX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0
X2ludGVyZmFjZV9zaW1wbGUgX19fX19fX19fX19fX19fX19fX19fX19fX19fCi0gIHRlc3RfbW9k
dWxlLnB5OjM6IGluIHRlc3RfaW50ZXJmYWNlX3NpbXBsZQotICAgICAgYXNzZXJ0IDAKLSAgRSAg
IGFzc2VydCAwCi0gIF9fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfaW50ZXJmYWNlX2Nv
bXBsZXggX19fX19fX19fX19fX19fX19fX19fX19fX18KLSAgdGVzdF9tb2R1bGUucHk6NjogaW4g
dGVzdF9pbnRlcmZhY2VfY29tcGxleAotICAgICAgYXNzZXJ0IDAKLSAgRSAgIGFzc2VydCAwCi0g
ID09PT09PT09PT09PT09PT09PSAyIGZhaWxlZCwgMiBkZXNlbGVjdGVkIGluIDAuMTIgc2Vjb25k
cyA9PT09PT09PT09PT09PT09PT0KLQotb3IgdG8gc2VsZWN0IGJvdGggImV2ZW50IiBhbmQgImlu
dGVyZmFjZSIgdGVzdHM6OgotCi0gICQgcHl0ZXN0IC1tICJpbnRlcmZhY2Ugb3IgZXZlbnQiIC0t
dGI9c2hvcnQKLSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFy
dHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRo
b24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICByb290ZGly
OiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgotICBjb2xsZWN0ZWQgNCBpdGVtcyAvIDEgZGVz
ZWxlY3RlZAotCi0gIHRlc3RfbW9kdWxlLnB5IEZGRiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQotCi0gID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LSAgX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9pbnRlcmZhY2Vfc2ltcGxlIF9fX19f
X19fX19fX19fX19fX19fX19fX19fXwotICB0ZXN0X21vZHVsZS5weTozOiBpbiB0ZXN0X2ludGVy
ZmFjZV9zaW1wbGUKLSAgICAgIGFzc2VydCAwCi0gIEUgICBhc3NlcnQgMAotICBfX19fX19fX19f
X19fX19fX19fX19fX19fXyB0ZXN0X2ludGVyZmFjZV9jb21wbGV4IF9fX19fX19fX19fX19fX19f
X19fX19fX19fCi0gIHRlc3RfbW9kdWxlLnB5OjY6IGluIHRlc3RfaW50ZXJmYWNlX2NvbXBsZXgK
LSAgICAgIGFzc2VydCAwCi0gIEUgICBhc3NlcnQgMAotICBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fIHRlc3RfZXZlbnRfc2ltcGxlIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fCi0g
IHRlc3RfbW9kdWxlLnB5Ojk6IGluIHRlc3RfZXZlbnRfc2ltcGxlCi0gICAgICBhc3NlcnQgMAot
ICBFICAgYXNzZXJ0IDAKLSAgPT09PT09PT09PT09PT09PT09IDMgZmFpbGVkLCAxIGRlc2VsZWN0
ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PQorV2UgY2FuIG5vdyB1c2UgdGhl
IGBgLW0gb3B0aW9uYGAgdG8gc2VsZWN0IG9uZSBzZXQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRl
c3QKKworICAgICQgcHl0ZXN0IC1tIGludGVyZmFjZSAtLXRiPXNob3J0CisgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQu
eC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklY
Ly5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVj
dGVkIDQgaXRlbXMgLyAyIGRlc2VsZWN0ZWQgLyAyIHNlbGVjdGVkCisKKyAgICB0ZXN0X21vZHVs
ZS5weSBGRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbMTAwJV0KKworICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJF
UyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19f
X19fX19fX19fXyB0ZXN0X2ludGVyZmFjZV9zaW1wbGUgX19fX19fX19fX19fX19fX19fX19fX19f
X19fCisgICAgdGVzdF9tb2R1bGUucHk6NDogaW4gdGVzdF9pbnRlcmZhY2Vfc2ltcGxlCisgICAg
ICAgIGFzc2VydCAwCisgICAgRSAgIGFzc2VydCAwCisgICAgX19fX19fX19fX19fX19fX19fX19f
X19fX18gdGVzdF9pbnRlcmZhY2VfY29tcGxleCBfX19fX19fX19fX19fX19fX19fX19fX19fXwor
ICAgIHRlc3RfbW9kdWxlLnB5Ojg6IGluIHRlc3RfaW50ZXJmYWNlX2NvbXBsZXgKKyAgICAgICAg
YXNzZXJ0IDAKKyAgICBFICAgYXNzZXJ0IDAKKyAgICA9PT09PT09PT09PT09PT09PT0gMiBmYWls
ZWQsIDIgZGVzZWxlY3RlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09CisKK29y
IHRvIHNlbGVjdCBib3RoICJldmVudCIgYW5kICJpbnRlcmZhY2UiIHRlc3RzOgorCisuLiBjb2Rl
LWJsb2NrOjogcHl0ZXN0CisKKyAgICAkIHB5dGVzdCAtbSAiaW50ZXJmYWNlIG9yIGV2ZW50IiAt
LXRiPXNob3J0CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBz
dGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0t
IFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAg
Y2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVH
RU5ET0NfVE1QRElSCisgICAgY29sbGVjdGVkIDQgaXRlbXMgLyAxIGRlc2VsZWN0ZWQgLyAzIHNl
bGVjdGVkCisKKyAgICB0ZXN0X21vZHVsZS5weSBGRkYgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKworICAgID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2ludGVyZmFjZV9zaW1wbGUg
X19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgdGVzdF9tb2R1bGUucHk6NDogaW4gdGVz
dF9pbnRlcmZhY2Vfc2ltcGxlCisgICAgICAgIGFzc2VydCAwCisgICAgRSAgIGFzc2VydCAwCisg
ICAgX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9pbnRlcmZhY2VfY29tcGxleCBfX19f
X19fX19fX19fX19fX19fX19fX19fXworICAgIHRlc3RfbW9kdWxlLnB5Ojg6IGluIHRlc3RfaW50
ZXJmYWNlX2NvbXBsZXgKKyAgICAgICAgYXNzZXJ0IDAKKyAgICBFICAgYXNzZXJ0IDAKKyAgICBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZXZlbnRfc2ltcGxlIF9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCisgICAgdGVzdF9tb2R1bGUucHk6MTI6IGluIHRlc3RfZXZlbnRf
c2ltcGxlCisgICAgICAgIGFzc2VydCAwCisgICAgRSAgIGFzc2VydCAwCisgICAgPT09PT09PT09
PT09PT09PT09IDMgZmFpbGVkLCAxIGRlc2VsZWN0ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09
PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbXVsdGlw
eXRob24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9tdWx0aXB5dGhvbi5weQppbmRl
eCA5NzA4MDBjN2U2MTRjNjhjZmZmNzA4ZjdjZmE1NGVmNGI2OTcwMTI2Li5kYzcyMmFhYzkxZDA2
MTkzNmExNjRhZjJhNmViNDRhZDVmZDBhMTA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9tdWx0aXB5dGhvbi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9tdWx0aXB5dGhvbi5weQpAQCAtMSwxMCArMSwxMyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KICIiIgogbW9kdWxlIGNvbnRhaW5pbmcgYSBwYXJhbWV0cml6ZWQgdGVzdHMgdGVzdGluZyBj
cm9zcy1weXRob24KIHNlcmlhbGl6YXRpb24gdmlhIHRoZSBwaWNrbGUgbW9kdWxlLgogIiIiCi1p
bXBvcnQgcHkKK2ltcG9ydCBkaXN0dXRpbHMuc3Bhd24KK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBv
cnQgdGV4dHdyYXAKKwogaW1wb3J0IHB5dGVzdAotaW1wb3J0IF9weXRlc3QuX2NvZGUKIAogcHl0
aG9ubGlzdCA9IFsicHl0aG9uMi43IiwgInB5dGhvbjMuNCIsICJweXRob24zLjUiXQogCkBAIC0y
MSw0NiArMjQsNDcgQEAgZGVmIHB5dGhvbjIocmVxdWVzdCwgcHl0aG9uMSk6CiAKIAogY2xhc3Mg
UHl0aG9uKG9iamVjdCk6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgdmVyc2lvbiwgcGlja2xl
ZmlsZSk6Ci0gICAgICAgIHNlbGYucHl0aG9ucGF0aCA9IHB5LnBhdGgubG9jYWwuc3lzZmluZCh2
ZXJzaW9uKQorICAgICAgICBzZWxmLnB5dGhvbnBhdGggPSBkaXN0dXRpbHMuc3Bhd24uZmluZF9l
eGVjdXRhYmxlKHZlcnNpb24pCiAgICAgICAgIGlmIG5vdCBzZWxmLnB5dGhvbnBhdGg6Ci0gICAg
ICAgICAgICBweXRlc3Quc2tpcCgiJXIgbm90IGZvdW5kIiAlICh2ZXJzaW9uLCkpCisgICAgICAg
ICAgICBweXRlc3Quc2tpcCgieyFyfSBub3QgZm91bmQiLmZvcm1hdCh2ZXJzaW9uKSkKICAgICAg
ICAgc2VsZi5waWNrbGVmaWxlID0gcGlja2xlZmlsZQogCiAgICAgZGVmIGR1bXBzKHNlbGYsIG9i
aik6CiAgICAgICAgIGR1bXBmaWxlID0gc2VsZi5waWNrbGVmaWxlLmRpcnBhdGgoImR1bXAucHki
KQogICAgICAgICBkdW1wZmlsZS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291
cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHBpY2tsZQotICAg
ICAgICAgICAgZiA9IG9wZW4oJXIsICd3YicpCi0gICAgICAgICAgICBzID0gcGlja2xlLmR1bXAo
JXIsIGYsIHByb3RvY29sPTIpCi0gICAgICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgIiIiCi0g
ICAgICAgICAgICAgICAgJSAoc3RyKHNlbGYucGlja2xlZmlsZSksIG9iaikKKyAgICAgICAgICAg
IHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICByIiIiCisgICAgICAgICAgICAgICAg
aW1wb3J0IHBpY2tsZQorICAgICAgICAgICAgICAgIGYgPSBvcGVuKHshcn0sICd3YicpCisgICAg
ICAgICAgICAgICAgcyA9IHBpY2tsZS5kdW1wKHshcn0sIGYsIHByb3RvY29sPTIpCisgICAgICAg
ICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgICAgICAgICAgIiIiLmZvcm1hdCgKKyAgICAgICAg
ICAgICAgICAgICAgc3RyKHNlbGYucGlja2xlZmlsZSksIG9iagorICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgICkKICAgICAgICAgKQotICAgICAgICBweS5wcm9jZXNzLmNtZGV4ZWMoIiVz
ICVzIiAlIChzZWxmLnB5dGhvbnBhdGgsIGR1bXBmaWxlKSkKKyAgICAgICAgc3VicHJvY2Vzcy5j
aGVja19jYWxsKChzZWxmLnB5dGhvbnBhdGgsIHN0cihkdW1wZmlsZSkpKQogCiAgICAgZGVmIGxv
YWRfYW5kX2lzX3RydWUoc2VsZiwgZXhwcmVzc2lvbik6CiAgICAgICAgIGxvYWRmaWxlID0gc2Vs
Zi5waWNrbGVmaWxlLmRpcnBhdGgoImxvYWQucHkiKQogICAgICAgICBsb2FkZmlsZS53cml0ZSgK
LSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgot
ICAgICAgICAgICAgaW1wb3J0IHBpY2tsZQotICAgICAgICAgICAgZiA9IG9wZW4oJXIsICdyYicp
Ci0gICAgICAgICAgICBvYmogPSBwaWNrbGUubG9hZChmKQotICAgICAgICAgICAgZi5jbG9zZSgp
Ci0gICAgICAgICAgICByZXMgPSBldmFsKCVyKQotICAgICAgICAgICAgaWYgbm90IHJlczoKLSAg
ICAgICAgICAgICAgICByYWlzZSBTeXN0ZW1FeGl0KDEpCi0gICAgICAgICIiIgotICAgICAgICAg
ICAgICAgICUgKHN0cihzZWxmLnBpY2tsZWZpbGUpLCBleHByZXNzaW9uKQorICAgICAgICAgICAg
dGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgIHIiIiIKKyAgICAgICAgICAgICAgICBp
bXBvcnQgcGlja2xlCisgICAgICAgICAgICAgICAgZiA9IG9wZW4oeyFyfSwgJ3JiJykKKyAgICAg
ICAgICAgICAgICBvYmogPSBwaWNrbGUubG9hZChmKQorICAgICAgICAgICAgICAgIGYuY2xvc2Uo
KQorICAgICAgICAgICAgICAgIHJlcyA9IGV2YWwoeyFyfSkKKyAgICAgICAgICAgICAgICBpZiBu
b3QgcmVzOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBTeXN0ZW1FeGl0KDEpCisgICAgICAg
ICAgICAgICAgIiIiLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYucGlja2xl
ZmlsZSksIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICApCiAgICAg
ICAgICkKICAgICAgICAgcHJpbnQobG9hZGZpbGUpCi0gICAgICAgIHB5LnByb2Nlc3MuY21kZXhl
YygiJXMgJXMiICUgKHNlbGYucHl0aG9ucGF0aCwgbG9hZGZpbGUpKQorICAgICAgICBzdWJwcm9j
ZXNzLmNoZWNrX2NhbGwoKHNlbGYucHl0aG9ucGF0aCwgc3RyKGxvYWRmaWxlKSkpCiAKIAogQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJvYmoiLCBbNDIsIHt9LCB7MTogM31dKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi5yc3QKaW5kZXggNGY1YWRmNjNmZDc2MWY5NDg1OWM4
NzNhZWFmOTEzZmI0MjJlMDk2ZS4uMDkxMDA3MWMxNGE2NWEwNGFjYjQ1ZDA4M2ZiOTk1YjA5MjEx
OGY2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uLnJz
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24ucnN0CkBAIC0yMywx
MiArMjMsMTUgQEAgWW91IGNhbiBjcmVhdGUgYSBzaW1wbGUgZXhhbXBsZSBmaWxlOgogICAgIDps
aXRlcmFsOgogCiBhbmQgaWYgeW91IGluc3RhbGxlZCBgUHlZQU1MYF8gb3IgYSBjb21wYXRpYmxl
IFlBTUwtcGFyc2VyIHlvdSBjYW4KLW5vdyBleGVjdXRlIHRoZSB0ZXN0IHNwZWNpZmljYXRpb246
Ogorbm93IGV4ZWN1dGUgdGhlIHRlc3Qgc3BlY2lmaWNhdGlvbjoKKworLi4gY29kZS1ibG9jazo6
IHB5dGVzdAogCiAgICAgbm9ucHl0aG9uICQgcHl0ZXN0IHRlc3Rfc2ltcGxlLnltbAogICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5
dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRP
Q19UTVBESVIvbm9ucHl0aG9uLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhv
biAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVk
aXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0Nf
VE1QRElSL25vbnB5dGhvbgogICAgIGNvbGxlY3RlZCAyIGl0ZW1zCiAKICAgICB0ZXN0X3NpbXBs
ZS55bWwgRi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbMTAwJV0KQEAgLTU1LDEzICs1OCwxNSBAQCB5b3VyIG93biBkb21haW4gc3BlY2lmaWMgdGVz
dGluZyBsYW5ndWFnZSB0aGlzIHdheS4KICAgICB3aWxsIGJlIHJlcG9ydGVkIGFzIGEgKHJlZCkg
c3RyaW5nLgogCiBgYHJlcG9ydGluZm8oKWBgIGlzIHVzZWQgZm9yIHJlcHJlc2VudGluZyB0aGUg
dGVzdCBsb2NhdGlvbiBhbmQgaXMgYWxzbwotY29uc3VsdGVkIHdoZW4gcmVwb3J0aW5nIGluIGBg
dmVyYm9zZWBgIG1vZGU6OgorY29uc3VsdGVkIHdoZW4gcmVwb3J0aW5nIGluIGBgdmVyYm9zZWBg
IG1vZGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgIG5vbnB5dGhvbiAkIHB5dGVz
dCAtdgogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRz
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRo
b24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9O
X1BSRUZJWC9iaW4vcHl0aG9uMy41Ci0gICAgY2FjaGVkaXI6IC5weXRlc3RfY2FjaGUKLSAgICBy
b290ZGlyOiAkUkVHRU5ET0NfVE1QRElSL25vbnB5dGhvbiwgaW5pZmlsZToKKyAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0w
LngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uCisgICAgY2FjaGVkaXI6ICRQWVRIT05f
UFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSL25vbnB5
dGhvbgogICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCAyIGl0ZW1zCiAKICAgICB0ZXN0X3Np
bXBsZS55bWw6OmhlbGxvIEZBSUxFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbIDUwJV0KQEAgLTc3LDE1ICs4MiwxOSBAQCBjb25zdWx0ZWQgd2hlbiByZXBvcnRpbmcg
aW4gYGB2ZXJib3NlYGAgbW9kZTo6CiAuLiByZWdlbmRvYzp3aXBlCiAKIFdoaWxlIGRldmVsb3Bp
bmcgeW91ciBjdXN0b20gdGVzdCBjb2xsZWN0aW9uIGFuZCBleGVjdXRpb24gaXQncyBhbHNvCi1p
bnRlcmVzdGluZyB0byBqdXN0IGxvb2sgYXQgdGhlIGNvbGxlY3Rpb24gdHJlZTo6CitpbnRlcmVz
dGluZyB0byBqdXN0IGxvb2sgYXQgdGhlIGNvbGxlY3Rpb24gdHJlZToKKworLi4gY29kZS1ibG9j
azo6IHB5dGVzdAogCiAgICAgbm9ucHl0aG9uICQgcHl0ZXN0IC0tY29sbGVjdC1vbmx5CiAgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwg
cHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VO
RE9DX1RNUERJUi9ub25weXRob24sIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0
aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNo
ZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRP
Q19UTVBESVIvbm9ucHl0aG9uCiAgICAgY29sbGVjdGVkIDIgaXRlbXMKLSAgICA8WWFtbEZpbGUg
J3Rlc3Rfc2ltcGxlLnltbCc+Ci0gICAgICA8WWFtbEl0ZW0gJ2hlbGxvJz4KLSAgICAgIDxZYW1s
SXRlbSAnb2snPgorICAgIDxQYWNrYWdlICRSRUdFTkRPQ19UTVBESVIvbm9ucHl0aG9uPgorICAg
ICAgPFlhbWxGaWxlIHRlc3Rfc2ltcGxlLnltbD4KKyAgICAgICAgPFlhbWxJdGVtIGhlbGxvPgor
ICAgICAgICA8WWFtbEl0ZW0gb2s+CiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0
ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vY29uZnRlc3QucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vY29uZnRlc3QucHkKaW5kZXggODQy
OWRkMTE0YjE4NTFiMDlmZGEyZjNiYTM3YjZiMjBhNjRjZjYxYS4uMzA2YWEyNTAzNzk1ODZlMjk2
NzUxMzA0YzI1ZTNiODU2ZWYyOGIwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvbm9ucHl0aG9uL2NvbmZ0ZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL25vbnB5dGhvbi9jb25mdGVzdC5weQpAQCAtMSw1ICsxLDUgQEAKKyMgLSotIGNvZGluZzog
dXRmLTggLSotCiAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKLQogaW1wb3J0IHB5dGVzdAogCiAK
QEAgLTksNyArOSw2IEBAIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhcmVudCwgcGF0aCk6CiAK
IAogY2xhc3MgWWFtbEZpbGUocHl0ZXN0LkZpbGUpOgotCiAgICAgZGVmIGNvbGxlY3Qoc2VsZik6
CiAgICAgICAgIGltcG9ydCB5YW1sICAjIHdlIG5lZWQgYSB5YW1sIHBhcnNlciwgZS5nLiBQeVlB
TUwKIApAQCAtMTksNyArMTgsNiBAQCBjbGFzcyBZYW1sRmlsZShweXRlc3QuRmlsZSk6CiAKIAog
Y2xhc3MgWWFtbEl0ZW0ocHl0ZXN0Lkl0ZW0pOgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5h
bWUsIHBhcmVudCwgc3BlYyk6CiAgICAgICAgIHN1cGVyKFlhbWxJdGVtLCBzZWxmKS5fX2luaXRf
XyhuYW1lLCBwYXJlbnQpCiAgICAgICAgIHNlbGYuc3BlYyA9IHNwZWMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3BhcmFtZXRyaXplLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL3BhcmFtZXRyaXplLnJzdAppbmRleCA4ODI3MDBmZWMxMWVmNjNlOTNhMTNk
YTcxNjYxM2VjMjg1YmNjNDhmLi4yYWI1ZTNhYjEwYzZiY2ExMmEyOWRkNGRmYTQ2OGEyZjlkODRi
ODA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9wYXJhbWV0cml6ZS5y
c3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcGFyYW1ldHJpemUucnN0CkBAIC00
MiwxNCArNDIsMTggQEAgTm93IHdlIGFkZCBhIHRlc3QgY29uZmlndXJhdGlvbiBsaWtlIHRoaXM6
OgogICAgICAgICAgICAgICAgIGVuZCA9IDIKICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRy
aXplKCJwYXJhbTEiLCByYW5nZShlbmQpKQogCi1UaGlzIG1lYW5zIHRoYXQgd2Ugb25seSBydW4g
MiB0ZXN0cyBpZiB3ZSBkbyBub3QgcGFzcyBgYC0tYWxsYGA6OgorVGhpcyBtZWFucyB0aGF0IHdl
IG9ubHkgcnVuIDIgdGVzdHMgaWYgd2UgZG8gbm90IHBhc3MgYGAtLWFsbGBgOgorCisuLiBjb2Rl
LWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcSB0ZXN0X2NvbXB1dGUucHkKICAgICAu
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbMTAwJV0KICAgICAyIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMKIAogV2UgcnVu
IG9ubHkgdHdvIGNvbXB1dGF0aW9ucywgc28gd2Ugc2VlIHR3byBkb3RzLgotbGV0J3MgcnVuIHRo
ZSBmdWxsIG1vbnR5OjoKK2xldCdzIHJ1biB0aGUgZnVsbCBtb250eToKKworLi4gY29kZS1ibG9j
azo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXEgLS1hbGwKICAgICAuLi4uRiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAw
JV0KQEAgLTEzNCwyMyArMTM4LDI1IEBAIHVzZWQgYXMgdGhlIHRlc3QgSURzLiBUaGVzZSBhcmUg
c3VjY2luY3QsIGJ1dCBjYW4gYmUgYSBwYWluIHRvIG1haW50YWluLgogSW4gYGB0ZXN0X3RpbWVk
aXN0YW5jZV92MmBgLCB3ZSBzcGVjaWZpZWQgYGBpZHNgYCBhcyBhIGZ1bmN0aW9uIHRoYXQgY2Fu
IGdlbmVyYXRlIGEKIHN0cmluZyByZXByZXNlbnRhdGlvbiB0byBtYWtlIHBhcnQgb2YgdGhlIHRl
c3QgSUQuIFNvIG91ciBgYGRhdGV0aW1lYGAgdmFsdWVzIHVzZSB0aGUKIGxhYmVsIGdlbmVyYXRl
ZCBieSBgYGlkZm5gYCwgYnV0IGJlY2F1c2Ugd2UgZGlkbid0IGdlbmVyYXRlIGEgbGFiZWwgZm9y
IGBgdGltZWRlbHRhYGAKLW9iamVjdHMsIHRoZXkgYXJlIHN0aWxsIHVzaW5nIHRoZSBkZWZhdWx0
IHB5dGVzdCByZXByZXNlbnRhdGlvbjo6CitvYmplY3RzLCB0aGV5IGFyZSBzdGlsbCB1c2luZyB0
aGUgZGVmYXVsdCBweXRlc3QgcmVwcmVzZW50YXRpb246CiAKKy4uIGNvZGUtYmxvY2s6OiBweXRl
c3QKIAogICAgICQgcHl0ZXN0IHRlc3RfdGltZS5weSAtLWNvbGxlY3Qtb25seQogICAgID09PT09
PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVz
dC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19U
TVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRl
c3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9Q
UkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBj
b2xsZWN0ZWQgOCBpdGVtcwotICAgIDxNb2R1bGUgJ3Rlc3RfdGltZS5weSc+Ci0gICAgICA8RnVu
Y3Rpb24gJ3Rlc3RfdGltZWRpc3RhbmNlX3YwW2EwLWIwLWV4cGVjdGVkMF0nPgotICAgICAgPEZ1
bmN0aW9uICd0ZXN0X3RpbWVkaXN0YW5jZV92MFthMS1iMS1leHBlY3RlZDFdJz4KLSAgICAgIDxG
dW5jdGlvbiAndGVzdF90aW1lZGlzdGFuY2VfdjFbZm9yd2FyZF0nPgotICAgICAgPEZ1bmN0aW9u
ICd0ZXN0X3RpbWVkaXN0YW5jZV92MVtiYWNrd2FyZF0nPgotICAgICAgPEZ1bmN0aW9uICd0ZXN0
X3RpbWVkaXN0YW5jZV92MlsyMDAxMTIxMi0yMDAxMTIxMS1leHBlY3RlZDBdJz4KLSAgICAgIDxG
dW5jdGlvbiAndGVzdF90aW1lZGlzdGFuY2VfdjJbMjAwMTEyMTEtMjAwMTEyMTItZXhwZWN0ZWQx
XSc+Ci0gICAgICA8RnVuY3Rpb24gJ3Rlc3RfdGltZWRpc3RhbmNlX3YzW2ZvcndhcmRdJz4KLSAg
ICAgIDxGdW5jdGlvbiAndGVzdF90aW1lZGlzdGFuY2VfdjNbYmFja3dhcmRdJz4KKyAgICA8TW9k
dWxlIHRlc3RfdGltZS5weT4KKyAgICAgIDxGdW5jdGlvbiB0ZXN0X3RpbWVkaXN0YW5jZV92MFth
MC1iMC1leHBlY3RlZDBdPgorICAgICAgPEZ1bmN0aW9uIHRlc3RfdGltZWRpc3RhbmNlX3YwW2Ex
LWIxLWV4cGVjdGVkMV0+CisgICAgICA8RnVuY3Rpb24gdGVzdF90aW1lZGlzdGFuY2VfdjFbZm9y
d2FyZF0+CisgICAgICA8RnVuY3Rpb24gdGVzdF90aW1lZGlzdGFuY2VfdjFbYmFja3dhcmRdPgor
ICAgICAgPEZ1bmN0aW9uIHRlc3RfdGltZWRpc3RhbmNlX3YyWzIwMDExMjEyLTIwMDExMjExLWV4
cGVjdGVkMF0+CisgICAgICA8RnVuY3Rpb24gdGVzdF90aW1lZGlzdGFuY2VfdjJbMjAwMTEyMTEt
MjAwMTEyMTItZXhwZWN0ZWQxXT4KKyAgICAgIDxGdW5jdGlvbiB0ZXN0X3RpbWVkaXN0YW5jZV92
M1tmb3J3YXJkXT4KKyAgICAgIDxGdW5jdGlvbiB0ZXN0X3RpbWVkaXN0YW5jZV92M1tiYWNrd2Fy
ZF0+CiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBz
ZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CiAKQEAgLTE5MSwzMyArMTk3LDM3IEBAIG9u
bHkgaGF2ZSB0byB3b3JrIGEgYml0IHRvIGNvbnN0cnVjdCB0aGUgY29ycmVjdCBhcmd1bWVudHMg
Zm9yIHB5dGVzdCdzCiAgICAgICAgIGRlZiB0ZXN0X2RlbW8yKHNlbGYsIGF0dHJpYnV0ZSk6CiAg
ICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShhdHRyaWJ1dGUsIHN0cikKIAotdGhpcyBpcyBh
IGZ1bGx5IHNlbGYtY29udGFpbmVkIGV4YW1wbGUgd2hpY2ggeW91IGNhbiBydW4gd2l0aDo6Cit0
aGlzIGlzIGEgZnVsbHkgc2VsZi1jb250YWluZWQgZXhhbXBsZSB3aGljaCB5b3UgY2FuIHJ1biB3
aXRoOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCB0ZXN0X3NjZW5h
cmlvcy5weQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3Rh
cnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQ
eXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJv
b3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0g
UHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBj
YWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdF
TkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQgNCBpdGVtcwogCiAgICAgdGVzdF9zY2VuYXJpb3Mu
cHkgLi4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEw
MCVdCiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDQgcGFzc2VkIGluIDAuMTIgc2Vj
b25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKLUlmIHlvdSBqdXN0IGNvbGxlY3QgdGVz
dHMgeW91J2xsIGFsc28gbmljZWx5IHNlZSAnYWR2YW5jZWQnIGFuZCAnYmFzaWMnIGFzIHZhcmlh
bnRzIGZvciB0aGUgdGVzdCBmdW5jdGlvbjo6CitJZiB5b3UganVzdCBjb2xsZWN0IHRlc3RzIHlv
dSdsbCBhbHNvIG5pY2VseSBzZWUgJ2FkdmFuY2VkJyBhbmQgJ2Jhc2ljJyBhcyB2YXJpYW50cyBm
b3IgdGhlIHRlc3QgZnVuY3Rpb246CiAKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQg
cHl0ZXN0IC0tY29sbGVjdC1vbmx5IHRlc3Rfc2NlbmFyaW9zLnB5CiAgICAgPT09PT09PT09PT09
PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55
LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00Lngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8u
cHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3Rl
ZCA0IGl0ZW1zCi0gICAgPE1vZHVsZSAndGVzdF9zY2VuYXJpb3MucHknPgotICAgICAgPENsYXNz
ICdUZXN0U2FtcGxlV2l0aFNjZW5hcmlvcyc+Ci0gICAgICAgIDxJbnN0YW5jZSAnKCknPgotICAg
ICAgICAgIDxGdW5jdGlvbiAndGVzdF9kZW1vMVtiYXNpY10nPgotICAgICAgICAgIDxGdW5jdGlv
biAndGVzdF9kZW1vMltiYXNpY10nPgotICAgICAgICAgIDxGdW5jdGlvbiAndGVzdF9kZW1vMVth
ZHZhbmNlZF0nPgotICAgICAgICAgIDxGdW5jdGlvbiAndGVzdF9kZW1vMlthZHZhbmNlZF0nPgor
ICAgIDxNb2R1bGUgdGVzdF9zY2VuYXJpb3MucHk+CisgICAgICA8Q2xhc3MgVGVzdFNhbXBsZVdp
dGhTY2VuYXJpb3M+CisgICAgICAgICAgPEZ1bmN0aW9uIHRlc3RfZGVtbzFbYmFzaWNdPgorICAg
ICAgICAgIDxGdW5jdGlvbiB0ZXN0X2RlbW8yW2Jhc2ljXT4KKyAgICAgICAgICA8RnVuY3Rpb24g
dGVzdF9kZW1vMVthZHZhbmNlZF0+CisgICAgICAgICAgPEZ1bmN0aW9uIHRlc3RfZGVtbzJbYWR2
YW5jZWRdPgogCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAu
MTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PQogCkBAIC0yNjksMjAgKzI3OSwyNSBA
QCBjcmVhdGVzIGEgZGF0YWJhc2Ugb2JqZWN0IGZvciB0aGUgYWN0dWFsIHRlc3QgaW52b2NhdGlv
bnM6OgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxp
ZCBpbnRlcm5hbCB0ZXN0IGNvbmZpZyIpCiAKLUxldCdzIGZpcnN0IHNlZSBob3cgaXQgbG9va3Mg
bGlrZSBhdCBjb2xsZWN0aW9uIHRpbWU6OgorTGV0J3MgZmlyc3Qgc2VlIGhvdyBpdCBsb29rcyBs
aWtlIGF0IGNvbGxlY3Rpb24gdGltZToKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAg
JCBweXRlc3QgdGVzdF9iYWNrZW5kcy5weSAtLWNvbGxlY3Qtb25seQogICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIs
IGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54
LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgv
LnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0
ZWQgMiBpdGVtcwotICAgIDxNb2R1bGUgJ3Rlc3RfYmFja2VuZHMucHknPgotICAgICAgPEZ1bmN0
aW9uICd0ZXN0X2RiX2luaXRpYWxpemVkW2QxXSc+Ci0gICAgICA8RnVuY3Rpb24gJ3Rlc3RfZGJf
aW5pdGlhbGl6ZWRbZDJdJz4KKyAgICA8TW9kdWxlIHRlc3RfYmFja2VuZHMucHk+CisgICAgICA8
RnVuY3Rpb24gdGVzdF9kYl9pbml0aWFsaXplZFtkMV0+CisgICAgICA8RnVuY3Rpb24gdGVzdF9k
Yl9pbml0aWFsaXplZFtkMl0+CiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0
cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CiAKLUFuZCB0aGVu
IHdoZW4gd2UgcnVuIHRoZSB0ZXN0OjoKK0FuZCB0aGVuIHdoZW4gd2UgcnVuIHRoZSB0ZXN0Ogor
CisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcSB0ZXN0X2JhY2tlbmRz
LnB5CiAgICAgLkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC0zMzAsMTUgKzM0NSwxOCBAQCB3aWxsIGJl
IHBhc3NlZCB0byByZXNwZWN0aXZlIGZpeHR1cmUgZnVuY3Rpb246OgogICAgICAgICBhc3NlcnQg
eCA9PSAnYWFhJwogICAgICAgICBhc3NlcnQgeSA9PSAnYicKIAotVGhlIHJlc3VsdCBvZiB0aGlz
IHRlc3Qgd2lsbCBiZSBzdWNjZXNzZnVsOjoKK1RoZSByZXN1bHQgb2YgdGhpcyB0ZXN0IHdpbGwg
YmUgc3VjY2Vzc2Z1bDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3Qg
dGVzdF9pbmRpcmVjdF9saXN0LnB5IC0tY29sbGVjdC1vbmx5CiAgICAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBw
eS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5p
ZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwg
cHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0
ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAx
IGl0ZW0KLSAgICA8TW9kdWxlICd0ZXN0X2luZGlyZWN0X2xpc3QucHknPgotICAgICAgPEZ1bmN0
aW9uICd0ZXN0X2luZGlyZWN0W2EtYl0nPgorICAgIDxNb2R1bGUgdGVzdF9pbmRpcmVjdF9saXN0
LnB5PgorICAgICAgPEZ1bmN0aW9uIHRlc3RfaW5kaXJlY3RbYS1iXT4KIAogICAgID09PT09PT09
PT09PT09PT09PT09PT09IG5vIHRlc3RzIHJhbiBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09
PT09PT09PT09PT0KIApAQCAtMzc1LDEwICszOTMsMTMgQEAgcGFyYW1ldHJpemVyYF8gYnV0IGlu
IGEgbG90IGxlc3MgY29kZTo6CiAgICAgICAgICAgICBhc3NlcnQgYSA9PSBiCiAKICAgICAgICAg
ZGVmIHRlc3RfemVyb2RpdmlzaW9uKHNlbGYsIGEsIGIpOgotICAgICAgICAgICAgcHl0ZXN0LnJh
aXNlcyhaZXJvRGl2aXNpb25FcnJvciwgImEvYiIpCisgICAgICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgorICAgICAgICAgICAgICAgIGEgLyBiCiAKIE91ciB0
ZXN0IGdlbmVyYXRvciBsb29rcyB1cCBhIGNsYXNzLWxldmVsIGRlZmluaXRpb24gd2hpY2ggc3Bl
Y2lmaWVzIHdoaWNoCi1hcmd1bWVudCBzZXRzIHRvIHVzZSBmb3IgZWFjaCB0ZXN0IGZ1bmN0aW9u
LiAgTGV0J3MgcnVuIGl0OjoKK2FyZ3VtZW50IHNldHMgdG8gdXNlIGZvciBlYWNoIHRlc3QgZnVu
Y3Rpb24uICBMZXQncyBydW4gaXQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQg
cHl0ZXN0IC1xCiAgICAgRi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC00MDgsMTEgKzQyOSwxNiBAQCBp
cyB0byBiZSBydW4gd2l0aCBkaWZmZXJlbnQgc2V0cyBvZiBhcmd1bWVudHMgZm9yIGl0cyB0aHJl
ZSBhcmd1bWVudHM6CiAKIC4uIGxpdGVyYWxpbmNsdWRlOjogbXVsdGlweXRob24ucHkKIAotUnVu
bmluZyBpdCByZXN1bHRzIGluIHNvbWUgc2tpcHMgaWYgd2UgZG9uJ3QgaGF2ZSBhbGwgdGhlIHB5
dGhvbiBpbnRlcnByZXRlcnMgaW5zdGFsbGVkIGFuZCBvdGhlcndpc2UgcnVucyBhbGwgY29tYmlu
YXRpb25zICg1IGludGVycHJldGVycyB0aW1lcyA1IGludGVycHJldGVycyB0aW1lcyAzIG9iamVj
dHMgdG8gc2VyaWFsaXplL2Rlc2VyaWFsaXplKTo6CitSdW5uaW5nIGl0IHJlc3VsdHMgaW4gc29t
ZSBza2lwcyBpZiB3ZSBkb24ndCBoYXZlIGFsbCB0aGUgcHl0aG9uIGludGVycHJldGVycyBpbnN0
YWxsZWQgYW5kIG90aGVyd2lzZSBydW5zIGFsbCBjb21iaW5hdGlvbnMgKDUgaW50ZXJwcmV0ZXJz
IHRpbWVzIDUgaW50ZXJwcmV0ZXJzIHRpbWVzIDMgb2JqZWN0cyB0byBzZXJpYWxpemUvZGVzZXJp
YWxpemUpOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgIC4gJCBweXRlc3QgLXJzIC1x
IG11bHRpcHl0aG9uLnB5Ci0gICAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KLSAgIDI3IHBhc3NlZCBpbiAw
LjEyIHNlY29uZHMKKyAgIC4uLnNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgPT09PT09PT09PT09PT09PT09
PT09PT09PSBzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgU0tJUFBFRCBbMTJdICRSRUdFTkRPQ19UTVBESVIvQ1dEL211bHRpcHl0aG9uLnB5OjMx
OiAncHl0aG9uMy40JyBub3QgZm91bmQKKyAgIFNLSVBQRUQgWzEyXSAkUkVHRU5ET0NfVE1QRElS
L0NXRC9tdWx0aXB5dGhvbi5weTozMTogJ3B5dGhvbjMuNScgbm90IGZvdW5kCisgICAzIHBhc3Nl
ZCwgMjQgc2tpcHBlZCBpbiAwLjEyIHNlY29uZHMKIAogSW5kaXJlY3QgcGFyYW1ldHJpemF0aW9u
IG9mIG9wdGlvbmFsIGltcGxlbWVudGF0aW9ucy9pbXBvcnRzCiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDU1
LDE4ICs0ODEsMjEgQEAgQW5kIGZpbmFsbHkgYSBsaXR0bGUgdGVzdCBtb2R1bGU6OgogICAgICAg
ICBhc3NlcnQgcm91bmQoYmFzZW1vZC5mdW5jMSgpLCAzKSA9PSByb3VuZChvcHRtb2QuZnVuYzEo
KSwgMykKIAogCi1JZiB5b3UgcnVuIHRoaXMgd2l0aCByZXBvcnRpbmcgZm9yIHNraXBzIGVuYWJs
ZWQ6OgorSWYgeW91IHJ1biB0aGlzIHdpdGggcmVwb3J0aW5nIGZvciBza2lwcyBlbmFibGVkOgor
CisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcnMgdGVzdF9tb2R1bGUu
cHkKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9u
IDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGly
OiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhv
biAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVk
aXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0Nf
VE1QRElSCiAgICAgY29sbGVjdGVkIDIgaXRlbXMKIAogICAgIHRlc3RfbW9kdWxlLnB5IC5zICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQot
ICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gc2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8gPT09
PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBTS0lQIFsxXSAkUkVHRU5ET0NfVE1QRElSL2Nv
bmZ0ZXN0LnB5OjExOiBjb3VsZCBub3QgaW1wb3J0ICdvcHQyJwogCisgICAgPT09PT09PT09PT09
PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09
PT09PT09PQorICAgIFNLSVBQRUQgWzFdICRSRUdFTkRPQ19UTVBESVIvY29uZnRlc3QucHk6MTE6
IGNvdWxkIG5vdCBpbXBvcnQgJ29wdDInOiBObyBtb2R1bGUgbmFtZWQgJ29wdDInCiAgICAgPT09
PT09PT09PT09PT09PT09PSAxIHBhc3NlZCwgMSBza2lwcGVkIGluIDAuMTIgc2Vjb25kcyA9PT09
PT09PT09PT09PT09PT09PQogCiBZb3UnbGwgc2VlIHRoYXQgd2UgZG9uJ3QgaGF2ZSBhbiBgYG9w
dDJgYCBtb2R1bGUgYW5kIHRodXMgdGhlIHNlY29uZCB0ZXN0IHJ1bgpAQCAtNDg3LDIxICs1MTYs
MjUgQEAgU2V0IG1hcmtzIG9yIHRlc3QgSUQgZm9yIGluZGl2aWR1YWwgcGFyYW1ldHJpemVkIHRl
c3QKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKIFVzZSBgYHB5dGVzdC5wYXJhbWBgIHRvIGFwcGx5IG1hcmtzIG9y
IHNldCB0ZXN0IElEIHRvIGluZGl2aWR1YWwgcGFyYW1ldHJpemVkIHRlc3QuCi1Gb3IgZXhhbXBs
ZTo6CitGb3IgZXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyBjb250
ZW50IG9mIHRlc3RfcHl0ZXN0X3BhcmFtX2V4YW1wbGUucHkKICAgICBpbXBvcnQgcHl0ZXN0Ci0g
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd0ZXN0X2lucHV0LGV4cGVjdGVkJywgWwotICAg
ICAgICAoJzMrNScsIDgpLAotICAgICAgICBweXRlc3QucGFyYW0oJzErNycsIDgsCi0gICAgICAg
ICAgICAgICAgICAgICBtYXJrcz1weXRlc3QubWFyay5iYXNpYyksCi0gICAgICAgIHB5dGVzdC5w
YXJhbSgnMis0JywgNiwKLSAgICAgICAgICAgICAgICAgICAgIG1hcmtzPXB5dGVzdC5tYXJrLmJh
c2ljLAotICAgICAgICAgICAgICAgICAgICAgaWQ9J2Jhc2ljXzIrNCcpLAotICAgICAgICBweXRl
c3QucGFyYW0oJzYqOScsIDQyLAotICAgICAgICAgICAgICAgICAgICAgbWFya3M9W3B5dGVzdC5t
YXJrLmJhc2ljLCBweXRlc3QubWFyay54ZmFpbF0sCi0gICAgICAgICAgICAgICAgICAgICBpZD0n
YmFzaWNfNio5JyksCi0gICAgXSkKKworCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAor
ICAgICAgICAidGVzdF9pbnB1dCxleHBlY3RlZCIsCisgICAgICAgIFsKKyAgICAgICAgICAgICgi
Mys1IiwgOCksCisgICAgICAgICAgICBweXRlc3QucGFyYW0oIjErNyIsIDgsIG1hcmtzPXB5dGVz
dC5tYXJrLmJhc2ljKSwKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgiMis0IiwgNiwgbWFya3M9
cHl0ZXN0Lm1hcmsuYmFzaWMsIGlkPSJiYXNpY18yKzQiKSwKKyAgICAgICAgICAgIHB5dGVzdC5w
YXJhbSgKKyAgICAgICAgICAgICAgICAiNio5IiwgNDIsIG1hcmtzPVtweXRlc3QubWFyay5iYXNp
YywgcHl0ZXN0Lm1hcmsueGZhaWxdLCBpZD0iYmFzaWNfNio5IgorICAgICAgICAgICAgKSwKKyAg
ICAgICAgXSwKKyAgICApCiAgICAgZGVmIHRlc3RfZXZhbCh0ZXN0X2lucHV0LCBleHBlY3RlZCk6
CiAgICAgICAgIGFzc2VydCBldmFsKHRlc3RfaW5wdXQpID09IGV4cGVjdGVkCiAKQEAgLTUxMCwy
MSArNTQzLDIyIEBAIHdlIG1hcmsgdGhlIHJlc3QgdGhyZWUgcGFyYW1ldHJpemVkIHRlc3RzIHdp
dGggdGhlIGN1c3RvbSBtYXJrZXIgYGBiYXNpY2BgLAogYW5kIGZvciB0aGUgZm91cnRoIHRlc3Qg
d2UgYWxzbyB1c2UgdGhlIGJ1aWx0LWluIG1hcmsgYGB4ZmFpbGBgIHRvIGluZGljYXRlIHRoaXMK
IHRlc3QgaXMgZXhwZWN0ZWQgdG8gZmFpbC4gRm9yIGV4cGxpY2l0bmVzcywgd2Ugc2V0IHRlc3Qg
aWRzIGZvciBzb21lIHRlc3RzLgogCi1UaGVuIHJ1biBgYHB5dGVzdGBgIHdpdGggdmVyYm9zZSBt
b2RlIGFuZCB3aXRoIG9ubHkgdGhlIGBgYmFzaWNgYCBtYXJrZXI6OgorVGhlbiBydW4gYGBweXRl
c3RgYCB3aXRoIHZlcmJvc2UgbW9kZSBhbmQgd2l0aCBvbmx5IHRoZSBgYGJhc2ljYGAgbWFya2Vy
OgogCi0gICAgcHl0ZXN0IC12IC1tIGJhc2ljCi0gICAgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRo
b24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3Rk
aXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Ci0gICAgY29sbGVjdGVkIDQgaXRlbXMKKy4u
IGNvZGUtYmxvY2s6OiBweXRlc3QKKworICAgICQgcHl0ZXN0IC12IC1tIGJhc2ljCisgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0
ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9w
eXRob24KKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJv
b3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgMTcg
aXRlbXMgLyAxNCBkZXNlbGVjdGVkIC8gMyBzZWxlY3RlZAogCi0gICAgdGVzdF9weXRlc3RfcGFy
YW1fZXhhbXBsZS5weTo6dGVzdF9ldmFsWzErNy04XSBQQVNTRUQKLSAgICB0ZXN0X3B5dGVzdF9w
YXJhbV9leGFtcGxlLnB5Ojp0ZXN0X2V2YWxbYmFzaWNfMis0XSBQQVNTRUQKLSAgICB0ZXN0X3B5
dGVzdF9wYXJhbV9leGFtcGxlLnB5Ojp0ZXN0X2V2YWxbYmFzaWNfNio5XSB4ZmFpbAotICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1bW1h
cnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAg
WEZBSUwgdGVzdF9weXRlc3RfcGFyYW1fZXhhbXBsZS5weTo6dGVzdF9ldmFsW2Jhc2ljXzYqOV0K
KyAgICB0ZXN0X3B5dGVzdF9wYXJhbV9leGFtcGxlLnB5Ojp0ZXN0X2V2YWxbMSs3LThdIFBBU1NF
RCAgICAgICAgICAgICAgICBbIDMzJV0KKyAgICB0ZXN0X3B5dGVzdF9wYXJhbV9leGFtcGxlLnB5
Ojp0ZXN0X2V2YWxbYmFzaWNfMis0XSBQQVNTRUQgICAgICAgICAgICBbIDY2JV0KKyAgICB0ZXN0
X3B5dGVzdF9wYXJhbV9leGFtcGxlLnB5Ojp0ZXN0X2V2YWxbYmFzaWNfNio5XSBYRkFJTCAgICAg
ICAgICAgICBbMTAwJV0KIAotICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAxIHRlc3RzIGRlc2VsZWN0ZWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisgICAgPT09PT09PT09PT09IDIgcGFzc2VkLCAxNCBkZXNlbGVj
dGVkLCAxIHhmYWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PQogCiBBcyB0aGUgcmVz
dWx0OgogCkBAIC01MzQsMyArNTY4LDUwIEBAIEFzIHRoZSByZXN1bHQ6CiAtIFRoZSB0ZXN0IGBg
dGVzdF9ldmFsWzErNy04XWBgIHBhc3NlZCwgYnV0IHRoZSBuYW1lIGlzIGF1dG9nZW5lcmF0ZWQg
YW5kIGNvbmZ1c2luZy4KIC0gVGhlIHRlc3QgYGB0ZXN0X2V2YWxbYmFzaWNfMis0XWBgIHBhc3Nl
ZC4KIC0gVGhlIHRlc3QgYGB0ZXN0X2V2YWxbYmFzaWNfNio5XWBgIHdhcyBleHBlY3RlZCB0byBm
YWlsIGFuZCBkaWQgZmFpbC4KKworLi4gX2BwYXJhbWV0cml6aW5nX2NvbmRpdGlvbmFsX3JhaXNp
bmdgOgorCitQYXJhbWV0cml6aW5nIGNvbmRpdGlvbmFsIHJhaXNpbmcKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K1VzZSA6ZnVuYzpgcHl0ZXN0LnJhaXNlc2Agd2l0aCB0aGUKKzpyZWY6YHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplIHJlZmAgZGVjb3JhdG9yIHRvIHdyaXRlIHBhcmFtZXRyaXplZCB0ZXN0cworaW4g
d2hpY2ggc29tZSB0ZXN0cyByYWlzZSBleGNlcHRpb25zIGFuZCBvdGhlcnMgZG8gbm90LgorCitJ
dCBpcyBoZWxwZnVsIHRvIGRlZmluZSBhIG5vLW9wIGNvbnRleHQgbWFuYWdlciBgYGRvZXNfbm90
X3JhaXNlYGAgdG8gc2VydmUKK2FzIGEgY29tcGxlbWVudCB0byBgYHJhaXNlc2BgLiBGb3IgZXhh
bXBsZTo6CisKKyAgICBmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCisgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgQGNvbnRleHRtYW5hZ2VyCisgICAgZGVmIGRvZXNfbm90X3Jh
aXNlKCk6CisgICAgICAgIHlpZWxkCisKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgn
ZXhhbXBsZV9pbnB1dCxleHBlY3RhdGlvbicsIFsKKyAgICAgICAgKDMsIGRvZXNfbm90X3JhaXNl
KCkpLAorICAgICAgICAoMiwgZG9lc19ub3RfcmFpc2UoKSksCisgICAgICAgICgxLCBkb2VzX25v
dF9yYWlzZSgpKSwKKyAgICAgICAgKDAsIHB5dGVzdC5yYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3Ip
KSwKKyAgICBdKQorICAgIGRlZiB0ZXN0X2RpdmlzaW9uKGV4YW1wbGVfaW5wdXQsIGV4cGVjdGF0
aW9uKToKKyAgICAgICAgIiIiVGVzdCBob3cgbXVjaCBJIGtub3cgZGl2aXNpb24uIiIiCisgICAg
ICAgIHdpdGggZXhwZWN0YXRpb246CisgICAgICAgICAgICBhc3NlcnQgKDYgLyBleGFtcGxlX2lu
cHV0KSBpcyBub3QgTm9uZQorCitJbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIGZpcnN0IHRocmVl
IHRlc3QgY2FzZXMgc2hvdWxkIHJ1biB1bmV4Y2VwdGlvbmFsbHksCit3aGlsZSB0aGUgZm91cnRo
IHNob3VsZCByYWlzZSBgYFplcm9EaXZpc2lvbkVycm9yYGAuCisKK0lmIHlvdSdyZSBvbmx5IHN1
cHBvcnRpbmcgUHl0aG9uIDMuNyssIHlvdSBjYW4gc2ltcGx5IHVzZSBgYG51bGxjb250ZXh0YGAK
K3RvIGRlZmluZSBgYGRvZXNfbm90X3JhaXNlYGA6OgorCisgICAgZnJvbSBjb250ZXh0bGliIGlt
cG9ydCBudWxsY29udGV4dCBhcyBkb2VzX25vdF9yYWlzZQorCitPciwgaWYgeW91J3JlIHN1cHBv
cnRpbmcgUHl0aG9uIDMuMysgeW91IGNhbiB1c2U6OgorCisgICAgZnJvbSBjb250ZXh0bGliIGlt
cG9ydCBFeGl0U3RhY2sgYXMgZG9lc19ub3RfcmFpc2UKKworT3IsIGlmIGRlc2lyZWQsIHlvdSBj
YW4gYGBwaXAgaW5zdGFsbCBjb250ZXh0bGliMmBgIGFuZCB1c2U6OgorCisgICAgZnJvbSBjb250
ZXh0bGliMiBpbXBvcnQgRXhpdFN0YWNrIGFzIGRvZXNfbm90X3JhaXNlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9weTJweTMvY29uZnRlc3QucHkKaW5kZXggNWQ5YTA3ZTNlMzJhY2I0
YmZiNDA2ZDMwMWRmNGFlNTM3YzRlZDcyYy4uYTZiOWFmN2E4NjBlNWEzNDJiNjBjMzIyNDExYjc1
MmJiZDU2YjgzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkz
L2NvbmZ0ZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My9jb25m
dGVzdC5weQpAQCAtMSwxMSArMSwxMiBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGltcG9y
dCBzeXMKKwogaW1wb3J0IHB5dGVzdAogCiBweTMgPSBzeXMudmVyc2lvbl9pbmZvWzBdID49IDMK
IAogCiBjbGFzcyBEdW1teUNvbGxlY3RvcihweXRlc3QuY29sbGVjdC5GaWxlKToKLQogICAgIGRl
ZiBjb2xsZWN0KHNlbGYpOgogICAgICAgICByZXR1cm4gW10KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkyLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkyLnB5CmluZGV4IDY2NGFjZjE3OGEwMDBkNjZmZWI5
OWQxZmI5NmMyYjIzNzQ2M2ViMjguLjFmNjY1MDg2ZTYwYWQwNDAyMjFjODZhMzdjODQ3NzY5YTFi
YzQyNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90ZXN0
X3B5Mi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvdGVzdF9weTIu
cHkKQEAgLTEsNiArMSw1IEBACi0KIGRlZiB0ZXN0X2V4Y2VwdGlvbl9zeW50YXgoKToKICAgICB0
cnk6Ci0gICAgICAgIDAvMAorICAgICAgICAwIC8gMAogICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25F
cnJvciwgZToKLSAgICAgICAgcGFzcworICAgICAgICBhc3NlcnQgZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkzLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkzLnB5CmluZGV4IGJhZjBmZmJkODIyMDZlMzI0
MjYzZDg5YjNjN2E2OWNlNWEwYjU3YWQuLjMwMTUxZjkxNGE4NzRhZmNlODAxYjc2MjcyNTc5YzU2
ODhkMTlkNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90
ZXN0X3B5My5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvdGVzdF9w
eTMucHkKQEAgLTEsNSArMSw2IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogZGVmIHRlc3Rf
ZXhjZXB0aW9uX3N5bnRheCgpOgogICAgIHRyeToKICAgICAgICAgMCAvIDAKICAgICBleGNlcHQg
WmVyb0RpdmlzaW9uRXJyb3IgYXMgZToKLSAgICAgICAgcGFzcworICAgICAgICBhc3NlcnQgZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5dGhvbmNvbGxlY3Rpb24ucHkKaW5kZXgg
MzYwMzM2MWMzZGNmOGFiMTc4NzViNmFhMjYyZWM4NDgyNGI1YmEzNi4uYmJjM2ZlODY4ZWEyOGNl
YzQzNTQ2NTdjM2FjMmIzZDdlOTdkZjkyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9weXRob25jb2xsZWN0aW9uLnB5CkBAIC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5nOiB1
dGYtOCAtKi0KICMgcnVuIHRoaXMgd2l0aCAkIHB5dGVzdCAtLWNvbGxlY3Qtb25seSB0ZXN0X2Nv
bGxlY3Rvbmx5LnB5CiAjCiAKQEAgLTcsNyArOCw2IEBAIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CiAK
IAogY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6
CiAgICAgICAgIHBhc3MKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUv
cHl0aG9uY29sbGVjdGlvbi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weXRob25j
b2xsZWN0aW9uLnJzdAppbmRleCA4ZTlkM2FlNjJhN2RjZmZkNjU2ZmEwNzQ4Nzg3NjRkOGVkNThj
ZmU3Li4wMmMxMmY2YmM5ZjA5MWJmNGMzOGM5OWQ2NWJjY2ViMGI5YjI3ZTlmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weXRob25jb2xsZWN0aW9uLnJzdAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weXRob25jb2xsZWN0aW9uLnJzdApAQCAtNiw3ICs2
LDkgQEAgSWdub3JlIHBhdGhzIGR1cmluZyB0ZXN0IGNvbGxlY3Rpb24KIAogWW91IGNhbiBlYXNp
bHkgaWdub3JlIGNlcnRhaW4gdGVzdCBkaXJlY3RvcmllcyBhbmQgbW9kdWxlcyBkdXJpbmcgY29s
bGVjdGlvbgogYnkgcGFzc2luZyB0aGUgYGAtLWlnbm9yZT1wYXRoYGAgb3B0aW9uIG9uIHRoZSBj
bGkuIGBgcHl0ZXN0YGAgYWxsb3dzIG11bHRpcGxlCi1gYC0taWdub3JlYGAgb3B0aW9ucy4gRXhh
bXBsZTo6CitgYC0taWdub3JlYGAgb3B0aW9ucy4gRXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6
IHRleHQKIAogICAgIHRlc3RzLwogICAgIHwtLSBleGFtcGxlCkBAIC0yNCwyMCArMjYsMjUgQEAg
YnkgcGFzc2luZyB0aGUgYGAtLWlnbm9yZT1wYXRoYGAgb3B0aW9uIG9uIHRoZSBjbGkuIGBgcHl0
ZXN0YGAgYWxsb3dzIG11bHRpcGxlCiAgICAgICAgICAgICAnLS0gdGVzdF93b3JsZF8wMy5weQog
CiBOb3cgaWYgeW91IGludm9rZSBgYHB5dGVzdGBgIHdpdGggYGAtLWlnbm9yZT10ZXN0cy9mb29i
YXIvdGVzdF9mb29iYXJfMDMucHkgLS1pZ25vcmU9dGVzdHMvaGVsbG8vYGAsCi15b3Ugd2lsbCBz
ZWUgdGhhdCBgYHB5dGVzdGBgIG9ubHkgY29sbGVjdHMgdGVzdC1tb2R1bGVzLCB3aGljaCBkbyBu
b3QgbWF0Y2ggdGhlIHBhdHRlcm5zIHNwZWNpZmllZDo6Cit5b3Ugd2lsbCBzZWUgdGhhdCBgYHB5
dGVzdGBgIG9ubHkgY29sbGVjdHMgdGVzdC1tb2R1bGVzLCB3aGljaCBkbyBub3QgbWF0Y2ggdGhl
IHBhdHRlcm5zIHNwZWNpZmllZDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCi0gICAgPT09
PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PQotICAgIHBsYXRmb3JtIGRhcndp
biAtLSBQeXRob24gMi43LjEwLCBweXRlc3QtMi44LjIsIHB5LTEuNC4zMCwgcGx1Z2d5LTAuMy4x
CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAz
LngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CiAgICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKICAgICBjb2xsZWN0ZWQgNSBpdGVtcwogCi0gICAg
dGVzdHMvZXhhbXBsZS90ZXN0X2V4YW1wbGVfMDEucHkgLgotICAgIHRlc3RzL2V4YW1wbGUvdGVz
dF9leGFtcGxlXzAyLnB5IC4KLSAgICB0ZXN0cy9leGFtcGxlL3Rlc3RfZXhhbXBsZV8wMy5weSAu
Ci0gICAgdGVzdHMvZm9vYmFyL3Rlc3RfZm9vYmFyXzAxLnB5IC4KLSAgICB0ZXN0cy9mb29iYXIv
dGVzdF9mb29iYXJfMDIucHkgLgorICAgIHRlc3RzL2V4YW1wbGUvdGVzdF9leGFtcGxlXzAxLnB5
IC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgMjAlXQorICAgIHRlc3RzL2V4
YW1wbGUvdGVzdF9leGFtcGxlXzAyLnB5IC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsgNDAlXQorICAgIHRlc3RzL2V4YW1wbGUvdGVzdF9leGFtcGxlXzAzLnB5IC4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgNjAlXQorICAgIHRlc3RzL2Zvb2Jhci90ZXN0
X2Zvb2Jhcl8wMS5weSAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgODAl
XQorICAgIHRlc3RzL2Zvb2Jhci90ZXN0X2Zvb2Jhcl8wMi5weSAuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsxMDAlXQorCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09
PSA1IHBhc3NlZCBpbiAwLjAyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQogCi0g
ICAgPT09PT09PSA1IHBhc3NlZCBpbiAwLjAyIHNlY29uZHMgPT09PT09PQorVGhlIGBgLS1pZ25v
cmUtZ2xvYmBgIG9wdGlvbiBhbGxvd3MgdG8gaWdub3JlIHRlc3QgZmlsZSBwYXRocyBiYXNlZCBv
biBVbml4IHNoZWxsLXN0eWxlIHdpbGRjYXJkcy4KK0lmIHlvdSB3YW50IHRvIGV4Y2x1ZGUgdGVz
dC1tb2R1bGVzIHRoYXQgZW5kIHdpdGggYGBfMDEucHlgYCwgZXhlY3V0ZSBgYHB5dGVzdGBgIHdp
dGggYGAtLWlnbm9yZS1nbG9iPScqXzAxLnB5J2BgLgogCiBEZXNlbGVjdCB0ZXN0cyBkdXJpbmcg
dGVzdCBjb2xsZWN0aW9uCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA
IC01Miw3ICs1OSw5IEBAIEtlZXBpbmcgZHVwbGljYXRlIHBhdGhzIHNwZWNpZmllZCBmcm9tIGNv
bW1hbmQgbGluZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCiBEZWZhdWx0IGJlaGF2aW9yIG9mIGBgcHl0ZXN0YGAgaXMgdG8gaWdub3JlIGR1
cGxpY2F0ZSBwYXRocyBzcGVjaWZpZWQgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgotRXhhbXBsZTo6
CitFeGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICBweXRlc3QgcGF0aF9h
IHBhdGhfYQogCkBAIC02Myw3ICs3Miw5IEBAIEV4YW1wbGU6OgogSnVzdCBjb2xsZWN0IHRlc3Rz
IG9uY2UuCiAKIFRvIGNvbGxlY3QgZHVwbGljYXRlIHRlc3RzLCB1c2UgdGhlIGBgLS1rZWVwLWR1
cGxpY2F0ZXNgYCBvcHRpb24gb24gdGhlIGNsaS4KLUV4YW1wbGU6OgorRXhhbXBsZToKKworLi4g
Y29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgcHl0ZXN0IC0ta2VlcC1kdXBsaWNhdGVzIHBhdGhf
YSBwYXRoX2EKIApAQCAtNzMsNyArODQsOSBAQCBFeGFtcGxlOjoKIAogQXMgdGhlIGNvbGxlY3Rv
ciBqdXN0IHdvcmtzIG9uIGRpcmVjdG9yaWVzLCBpZiB5b3Ugc3BlY2lmeSB0d2ljZSBhIHNpbmds
ZSB0ZXN0IGZpbGUsIGBgcHl0ZXN0YGAgd2lsbAogc3RpbGwgY29sbGVjdCBpdCB0d2ljZSwgbm8g
bWF0dGVyIGlmIHRoZSBgYC0ta2VlcC1kdXBsaWNhdGVzYGAgaXMgbm90IHNwZWNpZmllZC4KLUV4
YW1wbGU6OgorRXhhbXBsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgcHl0ZXN0
IHRlc3RfYS5weSB0ZXN0X2EucHkKIApAQCAtODUsNyArOTgsOSBAQCBFeGFtcGxlOjoKIENoYW5n
aW5nIGRpcmVjdG9yeSByZWN1cnNpb24KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVlvdSBjYW4gc2V0IHRoZSA6Y29uZnZhbDpgbm9yZWN1
cnNlZGlyc2Agb3B0aW9uIGluIGFuIGluaS1maWxlLCBmb3IgZXhhbXBsZSB5b3VyIGBgcHl0ZXN0
LmluaWBgIGluIHRoZSBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5OjoKK1lvdSBjYW4gc2V0IHRoZSA6
Y29uZnZhbDpgbm9yZWN1cnNlZGlyc2Agb3B0aW9uIGluIGFuIGluaS1maWxlLCBmb3IgZXhhbXBs
ZSB5b3VyIGBgcHl0ZXN0LmluaWBgIGluIHRoZSBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5OgorCisu
LiBjb2RlLWJsb2NrOjogaW5pCiAKICAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQogICAgIFtw
eXRlc3RdCkBAIC0xMDAsMTkgKzExNSwyMyBAQCBDaGFuZ2luZyBuYW1pbmcgY29udmVudGlvbnMK
IAogWW91IGNhbiBjb25maWd1cmUgZGlmZmVyZW50IG5hbWluZyBjb252ZW50aW9ucyBieSBzZXR0
aW5nCiB0aGUgOmNvbmZ2YWw6YHB5dGhvbl9maWxlc2AsIDpjb25mdmFsOmBweXRob25fY2xhc3Nl
c2AgYW5kCi06Y29uZnZhbDpgcHl0aG9uX2Z1bmN0aW9uc2AgY29uZmlndXJhdGlvbiBvcHRpb25z
LiAgRXhhbXBsZTo6Cis6Y29uZnZhbDpgcHl0aG9uX2Z1bmN0aW9uc2AgY29uZmlndXJhdGlvbiBv
cHRpb25zLgorSGVyZSBpcyBhbiBleGFtcGxlOgorCisuLiBjb2RlLWJsb2NrOjogaW5pCiAKICAg
ICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQorICAgICMgRXhhbXBsZSAxOiBoYXZlIHB5dGVzdCBs
b29rIGZvciAiY2hlY2siIGluc3RlYWQgb2YgInRlc3QiCiAgICAgIyBjYW4gYWxzbyBiZSBkZWZp
bmVkIGluIHRveC5pbmkgb3Igc2V0dXAuY2ZnIGZpbGUsIGFsdGhvdWdoIHRoZSBzZWN0aW9uCiAg
ICAgIyBuYW1lIGluIHNldHVwLmNmZyBmaWxlcyBzaG91bGQgYmUgInRvb2w6cHl0ZXN0IgogICAg
IFtweXRlc3RdCi0gICAgcHl0aG9uX2ZpbGVzPWNoZWNrXyoucHkKLSAgICBweXRob25fY2xhc3Nl
cz1DaGVjawotICAgIHB5dGhvbl9mdW5jdGlvbnM9Kl9jaGVjaworICAgIHB5dGhvbl9maWxlcyA9
IGNoZWNrXyoucHkKKyAgICBweXRob25fY2xhc3NlcyA9IENoZWNrCisgICAgcHl0aG9uX2Z1bmN0
aW9ucyA9ICpfY2hlY2sKIAogVGhpcyB3b3VsZCBtYWtlIGBgcHl0ZXN0YGAgbG9vayBmb3IgdGVz
dHMgaW4gZmlsZXMgdGhhdCBtYXRjaCB0aGUgYGBjaGVja18qCiAucHlgYCBnbG9iLXBhdHRlcm4s
IGBgQ2hlY2tgYCBwcmVmaXhlcyBpbiBjbGFzc2VzLCBhbmQgZnVuY3Rpb25zIGFuZCBtZXRob2Rz
Ci10aGF0IG1hdGNoIGBgKl9jaGVja2BgLiAgRm9yIGV4YW1wbGUsIGlmIHdlIGhhdmU6OgordGhh
dCBtYXRjaCBgYCpfY2hlY2tgYC4gRm9yIGV4YW1wbGUsIGlmIHdlIGhhdmU6OgogCiAgICAgIyBj
b250ZW50IG9mIGNoZWNrX215YXBwLnB5CiAgICAgY2xhc3MgQ2hlY2tNeUFwcChvYmplY3QpOgpA
QCAtMTIxLDI2ICsxNDAsMzggQEAgdGhhdCBtYXRjaCBgYCpfY2hlY2tgYC4gIEZvciBleGFtcGxl
LCBpZiB3ZSBoYXZlOjoKICAgICAgICAgZGVmIGNvbXBsZXhfY2hlY2soc2VsZik6CiAgICAgICAg
ICAgICBwYXNzCiAKLXRoZW4gdGhlIHRlc3QgY29sbGVjdGlvbiBsb29rcyBsaWtlIHRoaXM6Ogor
VGhlIHRlc3QgY29sbGVjdGlvbiB3b3VsZCBsb29rIGxpa2UgdGhpczoKKworLi4gY29kZS1ibG9j
azo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLS1jb2xsZWN0LW9ubHkKICAgICA9PT09PT09PT09
PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54
LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24g
My54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGly
OiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCiAgICAgcm9vdGRpcjogJFJFR0VORE9DX1RN
UERJUiwgaW5pZmlsZTogcHl0ZXN0LmluaQogICAgIGNvbGxlY3RlZCAyIGl0ZW1zCi0gICAgPE1v
ZHVsZSAnY2hlY2tfbXlhcHAucHknPgotICAgICAgPENsYXNzICdDaGVja015QXBwJz4KLSAgICAg
ICAgPEluc3RhbmNlICcoKSc+Ci0gICAgICAgICAgPEZ1bmN0aW9uICdzaW1wbGVfY2hlY2snPgot
ICAgICAgICAgIDxGdW5jdGlvbiAnY29tcGxleF9jaGVjayc+CisgICAgPE1vZHVsZSBjaGVja19t
eWFwcC5weT4KKyAgICAgIDxDbGFzcyBDaGVja015QXBwPgorICAgICAgICAgIDxGdW5jdGlvbiBz
aW1wbGVfY2hlY2s+CisgICAgICAgICAgPEZ1bmN0aW9uIGNvbXBsZXhfY2hlY2s+CiAKICAgICA9
PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09
PT09PT09PT09PT09PT09PT09CiAKK1lvdSBjYW4gY2hlY2sgZm9yIG11bHRpcGxlIGdsb2IgcGF0
dGVybnMgYnkgYWRkaW5nIGEgc3BhY2UgYmV0d2VlbiB0aGUgcGF0dGVybnM6CisKKy4uIGNvZGUt
YmxvY2s6OiBpbmkKKworICAgICMgRXhhbXBsZSAyOiBoYXZlIHB5dGVzdCBsb29rIGZvciBmaWxl
cyB3aXRoICJ0ZXN0IiBhbmQgImV4YW1wbGUiCisgICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmks
IHRveC5pbmksIG9yIHNldHVwLmNmZyBmaWxlIChyZXBsYWNlICJweXRlc3QiCisgICAgIyB3aXRo
ICJ0b29sOnB5dGVzdCIgZm9yIHNldHVwLmNmZykKKyAgICBbcHl0ZXN0XQorICAgIHB5dGhvbl9m
aWxlcyA9IHRlc3RfKi5weSBleGFtcGxlXyoucHkKKwogLi4gbm90ZTo6CiAKICAgIHRoZSBgYHB5
dGhvbl9mdW5jdGlvbnNgYCBhbmQgYGBweXRob25fY2xhc3Nlc2BgIG9wdGlvbnMgaGFzIG5vIGVm
ZmVjdAogICAgZm9yIGBgdW5pdHRlc3QuVGVzdENhc2VgYCB0ZXN0IGRpc2NvdmVyeSBiZWNhdXNl
IHB5dGVzdCBkZWxlZ2F0ZXMKLSAgIGRldGVjdGlvbiBvZiB0ZXN0IGNhc2UgbWV0aG9kcyB0byB1
bml0dGVzdCBjb2RlLgorICAgZGlzY292ZXJ5IG9mIHRlc3QgY2FzZSBtZXRob2RzIHRvIHVuaXR0
ZXN0IGNvZGUuCiAKIEludGVycHJldGluZyBjbWRsaW5lIGFyZ3VtZW50cyBhcyBQeXRob24gcGFj
a2FnZXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCkBAIC0xNDgsMTMgKzE3OSwxNyBAQCBJbnRlcnByZXRpbmcgY21kbGluZSBhcmd1bWVudHMg
YXMgUHl0aG9uIHBhY2thZ2VzCiBZb3UgY2FuIHVzZSB0aGUgYGAtLXB5YXJnc2BgIG9wdGlvbiB0
byBtYWtlIGBgcHl0ZXN0YGAgdHJ5CiBpbnRlcnByZXRpbmcgYXJndW1lbnRzIGFzIHB5dGhvbiBw
YWNrYWdlIG5hbWVzLCBkZXJpdmluZwogdGhlaXIgZmlsZSBzeXN0ZW0gcGF0aCBhbmQgdGhlbiBy
dW5uaW5nIHRoZSB0ZXN0LiBGb3IKLWV4YW1wbGUgaWYgeW91IGhhdmUgdW5pdHRlc3QyIGluc3Rh
bGxlZCB5b3UgY2FuIHR5cGU6OgorZXhhbXBsZSBpZiB5b3UgaGF2ZSB1bml0dGVzdDIgaW5zdGFs
bGVkIHlvdSBjYW4gdHlwZToKKworLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVzdCAt
LXB5YXJncyB1bml0dGVzdDIudGVzdC50ZXN0X3NraXBwaW5nIC1xCiAKIHdoaWNoIHdvdWxkIHJ1
biB0aGUgcmVzcGVjdGl2ZSB0ZXN0IG1vZHVsZS4gIExpa2Ugd2l0aAogb3RoZXIgb3B0aW9ucywg
dGhyb3VnaCBhbiBpbmktZmlsZSBhbmQgdGhlIDpjb25mdmFsOmBhZGRvcHRzYCBvcHRpb24geW91
Ci1jYW4gbWFrZSB0aGlzIGNoYW5nZSBtb3JlIHBlcm1hbmVudGx5OjoKK2NhbiBtYWtlIHRoaXMg
Y2hhbmdlIG1vcmUgcGVybWFuZW50bHk6CisKKy4uIGNvZGUtYmxvY2s6OiBpbmkKIAogICAgICMg
Y29udGVudCBvZiBweXRlc3QuaW5pCiAgICAgW3B5dGVzdF0KQEAgLTE2NywxOSArMjAyLDIxIEBA
IHRyZWF0IGl0IGFzIGEgZmlsZXN5c3RlbSBwYXRoLgogRmluZGluZyBvdXQgd2hhdCBpcyBjb2xs
ZWN0ZWQKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LVlvdSBjYW4gYWx3YXlzIHBlZWsgYXQgdGhlIGNvbGxlY3Rpb24gdHJlZSB3aXRob3V0IHJ1bm5p
bmcgdGVzdHMgbGlrZSB0aGlzOjoKK1lvdSBjYW4gYWx3YXlzIHBlZWsgYXQgdGhlIGNvbGxlY3Rp
b24gdHJlZSB3aXRob3V0IHJ1bm5pbmcgdGVzdHMgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2Nr
OjogcHl0ZXN0CiAKICAgICAuICQgcHl0ZXN0IC0tY29sbGVjdC1vbmx5IHB5dGhvbmNvbGxlY3Rp
b24ucHkKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0
cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0
aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCiAgICAg
cm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZTogcHl0ZXN0LmluaQogICAgIGNvbGxl
Y3RlZCAzIGl0ZW1zCi0gICAgPE1vZHVsZSAnQ1dEL3B5dGhvbmNvbGxlY3Rpb24ucHknPgotICAg
ICAgPEZ1bmN0aW9uICd0ZXN0X2Z1bmN0aW9uJz4KLSAgICAgIDxDbGFzcyAnVGVzdENsYXNzJz4K
LSAgICAgICAgPEluc3RhbmNlICcoKSc+Ci0gICAgICAgICAgPEZ1bmN0aW9uICd0ZXN0X21ldGhv
ZCc+Ci0gICAgICAgICAgPEZ1bmN0aW9uICd0ZXN0X2Fub3RoZXJtZXRob2QnPgorICAgIDxNb2R1
bGUgQ1dEL3B5dGhvbmNvbGxlY3Rpb24ucHk+CisgICAgICA8RnVuY3Rpb24gdGVzdF9mdW5jdGlv
bj4KKyAgICAgIDxDbGFzcyBUZXN0Q2xhc3M+CisgICAgICAgICAgPEZ1bmN0aW9uIHRlc3RfbWV0
aG9kPgorICAgICAgICAgIDxGdW5jdGlvbiB0ZXN0X2Fub3RoZXJtZXRob2Q+CiAKICAgICA9PT09
PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09
PT09PT09PT09PT09PT09CiAKQEAgLTE5MCw3ICsyMjcsOSBAQCBDdXN0b21pemluZyB0ZXN0IGNv
bGxlY3Rpb24KIAogLi4gcmVnZW5kb2M6d2lwZQogCi1Zb3UgY2FuIGVhc2lseSBpbnN0cnVjdCBg
YHB5dGVzdGBgIHRvIGRpc2NvdmVyIHRlc3RzIGZyb20gZXZlcnkgUHl0aG9uIGZpbGU6OgorWW91
IGNhbiBlYXNpbHkgaW5zdHJ1Y3QgYGBweXRlc3RgYCB0byBkaXNjb3ZlciB0ZXN0cyBmcm9tIGV2
ZXJ5IFB5dGhvbiBmaWxlOgorCisuLiBjb2RlLWJsb2NrOjogaW5pCiAKICAgICAjIGNvbnRlbnQg
b2YgcHl0ZXN0LmluaQogICAgIFtweXRlc3RdCkBAIC0yMjMsNyArMjYyLDkgQEAgYW5kIGEgYGBz
ZXR1cC5weWBgIGR1bW15IGZpbGUgbGlrZSB0aGlzOjoKICAgICAwLzAgICMgd2lsbCByYWlzZSBl
eGNlcHRpb24gaWYgaW1wb3J0ZWQKIAogSWYgeW91IHJ1biB3aXRoIGEgUHl0aG9uIDIgaW50ZXJw
cmV0ZXIgdGhlbiB5b3Ugd2lsbCBmaW5kIHRoZSBvbmUgdGVzdCBhbmQgd2lsbAotbGVhdmUgb3V0
IHRoZSBgYHNldHVwLnB5YGAgZmlsZTo6CitsZWF2ZSBvdXQgdGhlIGBgc2V0dXAucHlgYCBmaWxl
OgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAjJCBweXRlc3QgLS1jb2xsZWN0LW9u
bHkKICAgICA9PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT0KQEAgLTIzNiwxMiArMjc3
LDI5IEBAIGxlYXZlIG91dCB0aGUgYGBzZXR1cC5weWBgIGZpbGU6OgogICAgID09PT09PSBubyB0
ZXN0cyByYW4gaW4gMC4wNCBzZWNvbmRzID09PT09PQogCiBJZiB5b3UgcnVuIHdpdGggYSBQeXRo
b24gMyBpbnRlcnByZXRlciBib3RoIHRoZSBvbmUgdGVzdCBhbmQgdGhlIGBgc2V0dXAucHlgYAot
ZmlsZSB3aWxsIGJlIGxlZnQgb3V0OjoKK2ZpbGUgd2lsbCBiZSBsZWZ0IG91dDoKKworLi4gY29k
ZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLS1jb2xsZWN0LW9ubHkKICAgICA9PT09
PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRl
c3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQ
eXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNh
Y2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCiAgICAgcm9vdGRpcjogJFJFR0VO
RE9DX1RNUERJUiwgaW5pZmlsZTogcHl0ZXN0LmluaQogICAgIGNvbGxlY3RlZCAwIGl0ZW1zCiAK
ICAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRz
ID09PT09PT09PT09PT09PT09PT09PT09CisKK0l0J3MgYWxzbyBwb3NzaWJsZSB0byBpZ25vcmUg
ZmlsZXMgYmFzZWQgb24gVW5peCBzaGVsbC1zdHlsZSB3aWxkY2FyZHMgYnkgYWRkaW5nCitwYXR0
ZXJucyB0byBgYGNvbGxlY3RfaWdub3JlX2dsb2JgYC4KKworVGhlIGZvbGxvd2luZyBleGFtcGxl
IGBgY29uZnRlc3QucHlgYCBpZ25vcmVzIHRoZSBmaWxlIGBgc2V0dXAucHlgYCBhbmQgaW4KK2Fk
ZGl0aW9uIGFsbCBmaWxlcyB0aGF0IGVuZCB3aXRoIGBgKl9weTIucHlgYCB3aGVuIGV4ZWN1dGVk
IHdpdGggYSBQeXRob24gMworaW50ZXJwcmV0ZXI6OgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0
ZXN0LnB5CisgICAgaW1wb3J0IHN5cworCisgICAgY29sbGVjdF9pZ25vcmUgPSBbInNldHVwLnB5
Il0KKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMjoKKyAgICAgICAgY29sbGVjdF9pZ25v
cmVfZ2xvYiA9IFsiKl9weTIucHkiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvcmVwb3J0aW5nZGVtby5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9yZXBv
cnRpbmdkZW1vLnJzdAppbmRleCA0NjkxYjEyOGJiODNmOGIzNGY3MzU0ZDIyZjQ0YjBiN2E2NTIw
ZGQ4Li5kMDBjOTgzNjI2NWM0ODg0MGJiZDViNjlkMjczYjVhY2ZjYTk5OWY5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9yZXBvcnRpbmdkZW1vLnJzdAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9yZXBvcnRpbmdkZW1vLnJzdApAQCAtMSwzOCArMSwzNyBA
QAotCiAuLiBfYHRicmVwb3J0ZGVtb2A6CiAKIERlbW8gb2YgUHl0aG9uIGZhaWx1cmUgcmVwb3J0
cyB3aXRoIHB5dGVzdAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitI
ZXJlIGlzIGEgbmljZSBydW4gb2Ygc2V2ZXJhbCBmYWlsdXJlcyBhbmQgaG93IGBgcHl0ZXN0YGAg
cHJlc2VudHMgdGhpbmdzOgogCi1IZXJlIGlzIGEgbmljZSBydW4gb2Ygc2V2ZXJhbCB0ZW5zIG9m
IGZhaWx1cmVzCi1hbmQgaG93IGBgcHl0ZXN0YGAgcHJlc2VudHMgdGhpbmdzICh1bmZvcnR1bmF0
ZWx5Ci1ub3Qgc2hvd2luZyB0aGUgbmljZSBjb2xvcnMgaGVyZSBpbiB0aGUgSFRNTCB0aGF0IHlv
dQotZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKKy4uIGNv
ZGUtYmxvY2s6OiBweXRlc3QKIAogICAgIGFzc2VydGlvbiAkIHB5dGVzdCBmYWlsdXJlX2RlbW8u
cHkKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9u
IDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGly
OiAkUkVHRU5ET0NfVE1QRElSL2Fzc2VydGlvbiwgaW5pZmlsZToKLSAgICBjb2xsZWN0ZWQgNDIg
aXRlbXMKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwg
cHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0
ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUi9hc3NlcnRpb24KKyAgICBj
b2xsZWN0ZWQgNDQgaXRlbXMKIAotICAgIGZhaWx1cmVfZGVtby5weSBGRkZGRkZGRkZGRkZGRkZG
RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYgICAgICAgICAgIFsxMDAlXQorICAgIGZhaWx1cmVf
ZGVtby5weSBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiAgICAg
ICAgIFsxMDAlXQogCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxV
UkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIF9fX19fX19fX19fX19f
X19fX19fX19fX19fX18gdGVzdF9nZW5lcmF0aXZlWzBdIF9fX19fX19fX19fX19fX19fX19fX19f
X19fX18KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9nZW5lcmF0aXZlWzMt
Nl0gX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAKICAgICBwYXJhbTEgPSAzLCBwYXJhbTIg
PSA2CiAKKyAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwYXJhbTEsIHBhcmFtMiIs
IFsoMywgNildKQogICAgICAgICBkZWYgdGVzdF9nZW5lcmF0aXZlKHBhcmFtMSwgcGFyYW0yKToK
ICAgICA+ICAgICAgIGFzc2VydCBwYXJhbTEgKiAyIDwgcGFyYW0yCiAgICAgRSAgICAgICBhc3Nl
cnQgKDMgKiAyKSA8IDYKIAotICAgIGZhaWx1cmVfZGVtby5weToxOTogQXNzZXJ0aW9uRXJyb3IK
KyAgICBmYWlsdXJlX2RlbW8ucHk6MjE6IEFzc2VydGlvbkVycm9yCiAgICAgX19fX19fX19fX19f
X19fX19fX19fX19fXyBUZXN0RmFpbGluZy50ZXN0X3NpbXBsZSBfX19fX19fX19fX19fX19fX19f
X19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdEZhaWxpbmcgb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+CiAKICAgICAgICAgZGVmIHRlc3Rfc2ltcGxlKHNlbGYpOgotCiAgICAgICAg
ICAgICBkZWYgZigpOgogICAgICAgICAgICAgICAgIHJldHVybiA0MgogCkBAIC00NCw3ICs0Myw3
IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAg
RSAgICAgICAgKyAgd2hlcmUgNDIgPSA8ZnVuY3Rpb24gVGVzdEZhaWxpbmcudGVzdF9zaW1wbGUu
PGxvY2Fscz4uZiBhdCAweGRlYWRiZWVmPigpCiAgICAgRSAgICAgICAgKyAgYW5kICAgNDMgPSA8
ZnVuY3Rpb24gVGVzdEZhaWxpbmcudGVzdF9zaW1wbGUuPGxvY2Fscz4uZyBhdCAweGRlYWRiZWVm
PigpCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6Mzc6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVy
ZV9kZW1vLnB5OjMyOiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fX19fIFRl
c3RGYWlsaW5nLnRlc3Rfc2ltcGxlX211bHRpbGluZSBfX19fX19fX19fX19fX19fX19fX18KIAog
ICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RGYWlsaW5nIG9iamVjdCBhdCAweGRlYWRiZWVm
PgpAQCAtNTIsNyArNTEsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcg
b24gdGhhdCk6OgogICAgICAgICBkZWYgdGVzdF9zaW1wbGVfbXVsdGlsaW5lKHNlbGYpOgogICAg
ID4gICAgICAgb3RoZXJmdW5jX211bHRpKDQyLCA2ICogOSkKIAotICAgIGZhaWx1cmVfZGVtby5w
eTo0MDoKKyAgICBmYWlsdXJlX2RlbW8ucHk6MzU6CiAgICAgXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfCiAK
ICAgICBhID0gNDIsIGIgPSA1NApAQCAtNjEsMTMgKzYwLDEyIEBAIGdldCBvbiB0aGUgdGVybWlu
YWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgPiAgICAgICBhc3NlcnQgYSA9PSBi
CiAgICAgRSAgICAgICBhc3NlcnQgNDIgPT0gNTQKIAotICAgIGZhaWx1cmVfZGVtby5weToxNTog
QXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTY6IEFzc2VydGlvbkVycm9yCiAg
ICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fIFRlc3RGYWlsaW5nLnRlc3Rfbm90IF9fX19f
X19fX19fX19fX19fX19fX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdEZh
aWxpbmcgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CiAKICAgICAgICAgZGVmIHRlc3Rfbm90KHNlbGYp
OgotCiAgICAgICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAgICAgIHJldHVybiA0MgogCkBA
IC03NSw3ICs3Myw3IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0
aGF0KTo6CiAgICAgRSAgICAgICBhc3NlcnQgbm90IDQyCiAgICAgRSAgICAgICAgKyAgd2hlcmUg
NDIgPSA8ZnVuY3Rpb24gVGVzdEZhaWxpbmcudGVzdF9ub3QuPGxvY2Fscz4uZiBhdCAweGRlYWRi
ZWVmPigpCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6NDc6IEFzc2VydGlvbkVycm9yCisgICAgZmFp
bHVyZV9kZW1vLnB5OjQxOiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fIFRl
c3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX3RleHQgX19fX19fX19fX19fX19fX18K
IAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBv
YmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTg2LDcgKzg0LDcgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5h
bCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAgICAgLSBzcGFtCiAgICAg
RSAgICAgICAgICsgZWdncwogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjUzOiBBc3NlcnRpb25FcnJv
cgorICAgIGZhaWx1cmVfZGVtby5weTo0NjogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19f
X19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX3NpbWlsYXJfdGV4dCBfX19f
X19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBs
YW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CkBAIC05OSw3ICs5Nyw3IEBAIGdldCBvbiB0
aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgRSAgICAgICAgICsg
Zm9vIDIgYmFyCiAgICAgRSAgICAgICAgID8gICAgIF4KIAotICAgIGZhaWx1cmVfZGVtby5weTo1
NjogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6NDk6IEFzc2VydGlvbkVycm9y
CiAgICAgX19fX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX211
bHRpbGluZV90ZXh0IF9fX19fX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVz
dFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgpAQCAtMTEyLDcg
KzExMCw3IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6
CiAgICAgRSAgICAgICAgICsgZWdncwogICAgIEUgICAgICAgICAgIGJhcgogCi0gICAgZmFpbHVy
ZV9kZW1vLnB5OjU5OiBBc3NlcnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVtby5weTo1MjogQXNz
ZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlv
bnMudGVzdF9lcV9sb25nX3RleHQgX19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1
cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+
CkBAIC0xMjksNyArMTI3LDcgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5n
IG9uIHRoYXQpOjoKICAgICBFICAgICAgICAgKyAxMTExMTExMTExYjIyMjIyMjIyMgogICAgIEUg
ICAgICAgICA/ICAgICAgICAgICBeCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6NjQ6IEFzc2VydGlv
bkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjU3OiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19f
X19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9lcV9sb25nX3RleHRfbXVsdGls
aW5lIF9fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNl
ZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTE0OSw3ICsxNDcsNyBAQCBn
ZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgIEUKICAg
ICBFICAgICAgICAgLi4uRnVsbCBvdXRwdXQgdHJ1bmNhdGVkICg3IGxpbmVzIGhpZGRlbiksIHVz
ZSAnLXZ2JyB0byBzaG93CiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6Njk6IEFzc2VydGlvbkVycm9y
CisgICAgZmFpbHVyZV9kZW1vLnB5OjYyOiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19f
X19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX2xpc3QgX19fX19fX19f
X19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxh
bmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTE2MCw3ICsxNTgsNyBAQCBnZXQgb24g
dGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgIEUgICAgICAgICBB
dCBpbmRleCAyIGRpZmY6IDIgIT0gMwogICAgIEUgICAgICAgICBVc2UgLXYgdG8gZ2V0IHRoZSBm
dWxsIGRpZmYKIAotICAgIGZhaWx1cmVfZGVtby5weTo3MjogQXNzZXJ0aW9uRXJyb3IKKyAgICBm
YWlsdXJlX2RlbW8ucHk6NjU6IEFzc2VydGlvbkVycm9yCiAgICAgX19fX19fX19fX19fX18gVGVz
dFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zLnRlc3RfZXFfbGlzdF9sb25nIF9fX19fX19fX19fX19f
XwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25z
IG9iamVjdCBhdCAweGRlYWRiZWVmPgpAQCAtMTczLDcgKzE3MSw3IEBAIGdldCBvbiB0aGUgdGVy
bWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgRSAgICAgICAgIEF0IGluZGV4
IDEwMCBkaWZmOiAxICE9IDIKICAgICBFICAgICAgICAgVXNlIC12IHRvIGdldCB0aGUgZnVsbCBk
aWZmCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6Nzc6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVy
ZV9kZW1vLnB5OjcwOiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fIFRlc3RT
cGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX2RpY3QgX19fX19fX19fX19fX19fX18KIAog
ICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmpl
Y3QgYXQgMHhkZWFkYmVlZj4KQEAgLTE4NCwxNCArMTgyLDE0IEBAIGdldCBvbiB0aGUgdGVybWlu
YWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgRSAgICAgICAgIE9taXR0aW5nIDEg
aWRlbnRpY2FsIGl0ZW1zLCB1c2UgLXZ2IHRvIHNob3cKICAgICBFICAgICAgICAgRGlmZmVyaW5n
IGl0ZW1zOgogICAgIEUgICAgICAgICB7J2InOiAxfSAhPSB7J2InOiAyfQotICAgIEUgICAgICAg
ICBMZWZ0IGNvbnRhaW5zIG1vcmUgaXRlbXM6CisgICAgRSAgICAgICAgIExlZnQgY29udGFpbnMg
MSBtb3JlIGl0ZW06CiAgICAgRSAgICAgICAgIHsnYyc6IDB9Ci0gICAgRSAgICAgICAgIFJpZ2h0
IGNvbnRhaW5zIG1vcmUgaXRlbXM6CisgICAgRSAgICAgICAgIFJpZ2h0IGNvbnRhaW5zIDEgbW9y
ZSBpdGVtOgogICAgIEUgICAgICAgICB7J2QnOiAwfS4uLgogICAgIEUKICAgICBFICAgICAgICAg
Li4uRnVsbCBvdXRwdXQgdHJ1bmNhdGVkICgyIGxpbmVzIGhpZGRlbiksIHVzZSAnLXZ2JyB0byBz
aG93CiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6ODA6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVy
ZV9kZW1vLnB5OjczOiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fIFRlc3RT
cGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX3NldCBfX19fX19fX19fX19fX19fX18KIAog
ICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmpl
Y3QgYXQgMHhkZWFkYmVlZj4KQEAgLTIwOSw3ICsyMDcsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFs
IC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgIEUKICAgICBFICAgICAgICAgLi4uRnVs
bCBvdXRwdXQgdHJ1bmNhdGVkICgyIGxpbmVzIGhpZGRlbiksIHVzZSAnLXZ2JyB0byBzaG93CiAK
LSAgICBmYWlsdXJlX2RlbW8ucHk6ODM6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1v
LnB5Ojc2OiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX18gVGVzdFNwZWNpYWxpc2Vk
RXhwbGFuYXRpb25zLnRlc3RfZXFfbG9uZ2VyX2xpc3QgX19fX19fX19fX19fX18KIAogICAgIHNl
bGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQg
MHhkZWFkYmVlZj4KQEAgLTIxNywxMCArMjE1LDEwIEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3
ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgICAgIGRlZiB0ZXN0X2VxX2xvbmdlcl9saXN0
KHNlbGYpOgogICAgID4gICAgICAgYXNzZXJ0IFsxLCAyXSA9PSBbMSwgMiwgM10KICAgICBFICAg
ICAgIGFzc2VydCBbMSwgMl0gPT0gWzEsIDIsIDNdCi0gICAgRSAgICAgICAgIFJpZ2h0IGNvbnRh
aW5zIG1vcmUgaXRlbXMsIGZpcnN0IGV4dHJhIGl0ZW06IDMKKyAgICBFICAgICAgICAgUmlnaHQg
Y29udGFpbnMgb25lIG1vcmUgaXRlbTogMwogICAgIEUgICAgICAgICBVc2UgLXYgdG8gZ2V0IHRo
ZSBmdWxsIGRpZmYKIAotICAgIGZhaWx1cmVfZGVtby5weTo4NjogQXNzZXJ0aW9uRXJyb3IKKyAg
ICBmYWlsdXJlX2RlbW8ucHk6Nzk6IEFzc2VydGlvbkVycm9yCiAgICAgX19fX19fX19fX19fX19f
X18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zLnRlc3RfaW5fbGlzdCBfX19fX19fX19fX19f
X19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRp
b25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgpAQCAtMjI5LDcgKzIyNyw3IEBAIGdldCBvbiB0aGUg
dGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgPiAgICAgICBhc3NlcnQg
MSBpbiBbMCwgMiwgMywgNCwgNV0KICAgICBFICAgICAgIGFzc2VydCAxIGluIFswLCAyLCAzLCA0
LCA1XQogCi0gICAgZmFpbHVyZV9kZW1vLnB5Ojg5OiBBc3NlcnRpb25FcnJvcgorICAgIGZhaWx1
cmVfZGVtby5weTo4MjogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fIFRlc3RTcGVjaWFs
aXNlZEV4cGxhbmF0aW9ucy50ZXN0X25vdF9pbl90ZXh0X211bHRpbGluZSBfX19fX19fX19fCiAK
ICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2Jq
ZWN0IGF0IDB4ZGVhZGJlZWY+CkBAIC0yNDgsNyArMjQ2LDcgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5h
bCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAgICBFCiAgICAgRSAgICAgICAgIC4uLkZ1
bGwgb3V0cHV0IHRydW5jYXRlZCAoMiBsaW5lcyBoaWRkZW4pLCB1c2UgJy12dicgdG8gc2hvdwog
Ci0gICAgZmFpbHVyZV9kZW1vLnB5OjkzOiBBc3NlcnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVt
by5weTo4NjogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRF
eHBsYW5hdGlvbnMudGVzdF9ub3RfaW5fdGV4dF9zaW5nbGUgX19fX19fX19fX19fCiAKICAgICBz
ZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+CkBAIC0yNjEsNyArMjU5LDcgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdl
IGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAgICAgICBzaW5nbGUgZm9vIGxpbmUK
ICAgICBFICAgICAgICAgPyAgICAgICAgKysrCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6OTc6IEFz
c2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjkwOiBBc3NlcnRpb25FcnJvcgogICAg
IF9fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9ub3RfaW5fdGV4dF9z
aW5nbGVfbG9uZyBfX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVj
aWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTI3NCw3ICsyNzIs
NyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAg
IEUgICAgICAgICAgIGhlYWQgaGVhZCBmb28gdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwg
dGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRh
aWwgdGFpbCB0YWlsCiAgICAgRSAgICAgICAgID8gICAgICAgICAgICsrKwogCi0gICAgZmFpbHVy
ZV9kZW1vLnB5OjEwMTogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6OTQ6IEFz
c2VydGlvbkVycm9yCiAgICAgX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0
X25vdF9pbl90ZXh0X3NpbmdsZV9sb25nX3Rlcm0gX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWls
dXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVjdCBhdCAweGRlYWRiZWVm
PgpAQCAtMjg3LDExICsyODUsNTIgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3Jr
aW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAgICAgICBoZWFkIGhlYWQgZmZmZmZmZmZmZmZmZmZm
ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZnRh
aWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWls
IHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbAogICAgIEUgICAgICAgICA/
ICAgICAgICAgICArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MTA1OiBBc3Nl
cnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVtby5weTo5ODogQXNzZXJ0aW9uRXJyb3IKKyAgICBf
X19fX19fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9lcV9kYXRhY2xh
c3MgX19fX19fX19fX19fX19fCisKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lh
bGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisKKyAgICAgICAgZGVmIHRl
c3RfZXFfZGF0YWNsYXNzKHNlbGYpOgorICAgICAgICAgICAgZnJvbSBkYXRhY2xhc3NlcyBpbXBv
cnQgZGF0YWNsYXNzCisKKyAgICAgICAgICAgIEBkYXRhY2xhc3MKKyAgICAgICAgICAgIGNsYXNz
IEZvbyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGE6IGludAorICAgICAgICAgICAgICAgIGI6
IHN0cgorCisgICAgICAgICAgICBsZWZ0ID0gRm9vKDEsICJiIikKKyAgICAgICAgICAgIHJpZ2h0
ID0gRm9vKDEsICJjIikKKyAgICA+ICAgICAgIGFzc2VydCBsZWZ0ID09IHJpZ2h0CisgICAgRSAg
ICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0IFRlc3RTcGVjaWFsaXMuLi5vbyhhPTEsIGI9J2In
KSA9PSBUZXN0U3BlY2lhbGlzZS4uLm9vKGE9MSwgYj0nYycpCisgICAgRSAgICAgICAgIE9taXR0
aW5nIDEgaWRlbnRpY2FsIGl0ZW1zLCB1c2UgLXZ2IHRvIHNob3cKKyAgICBFICAgICAgICAgRGlm
ZmVyaW5nIGF0dHJpYnV0ZXM6CisgICAgRSAgICAgICAgIGI6ICdiJyAhPSAnYycKKworICAgIGZh
aWx1cmVfZGVtby5weToxMTA6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fXyBU
ZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9lcV9hdHRycyBfX19fX19fX19fX19fX19f
XworCisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25z
IG9iamVjdCBhdCAweGRlYWRiZWVmPgorCisgICAgICAgIGRlZiB0ZXN0X2VxX2F0dHJzKHNlbGYp
OgorICAgICAgICAgICAgaW1wb3J0IGF0dHIKKworICAgICAgICAgICAgQGF0dHIucworICAgICAg
ICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICAgICAgYSA9IGF0dHIuaWIoKQor
ICAgICAgICAgICAgICAgIGIgPSBhdHRyLmliKCkKKworICAgICAgICAgICAgbGVmdCA9IEZvbygx
LCAiYiIpCisgICAgICAgICAgICByaWdodCA9IEZvbygxLCAiYyIpCisgICAgPiAgICAgICBhc3Nl
cnQgbGVmdCA9PSByaWdodAorICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCBGb28o
YT0xLCBiPSdiJykgPT0gRm9vKGE9MSwgYj0nYycpCisgICAgRSAgICAgICAgIE9taXR0aW5nIDEg
aWRlbnRpY2FsIGl0ZW1zLCB1c2UgLXZ2IHRvIHNob3cKKyAgICBFICAgICAgICAgRGlmZmVyaW5n
IGF0dHJpYnV0ZXM6CisgICAgRSAgICAgICAgIGI6ICdiJyAhPSAnYycKKworICAgIGZhaWx1cmVf
ZGVtby5weToxMjI6IEFzc2VydGlvbkVycm9yCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fIHRlc3RfYXR0cmlidXRlIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogCiAg
ICAgICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZSgpOgotCiAgICAgICAgICAgICBjbGFzcyBGb28ob2Jq
ZWN0KToKICAgICAgICAgICAgICAgICBiID0gMQogCkBAIC0zMDAsMTEgKzMzOSwxMCBAQCBnZXQg
b24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgIEUgICAgICAg
YXNzZXJ0IDEgPT0gMgogICAgIEUgICAgICAgICsgIHdoZXJlIDEgPSA8ZmFpbHVyZV9kZW1vLnRl
c3RfYXR0cmlidXRlLjxsb2NhbHM+LkZvbyBvYmplY3QgYXQgMHhkZWFkYmVlZj4uYgogCi0gICAg
ZmFpbHVyZV9kZW1vLnB5OjExNDogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6
MTMwOiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9h
dHRyaWJ1dGVfaW5zdGFuY2UgX19fX19fX19fX19fX19fX19fX19fX19fX18KIAogICAgICAgICBk
ZWYgdGVzdF9hdHRyaWJ1dGVfaW5zdGFuY2UoKToKLQogICAgICAgICAgICAgY2xhc3MgRm9vKG9i
amVjdCk6CiAgICAgICAgICAgICAgICAgYiA9IDEKIApAQCAtMzEzLDEzICszNTEsMTEgQEAgZ2V0
IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAg
ICArICB3aGVyZSAxID0gPGZhaWx1cmVfZGVtby50ZXN0X2F0dHJpYnV0ZV9pbnN0YW5jZS48bG9j
YWxzPi5Gb28gb2JqZWN0IGF0IDB4ZGVhZGJlZWY+LmIKICAgICBFICAgICAgICArICAgIHdoZXJl
IDxmYWlsdXJlX2RlbW8udGVzdF9hdHRyaWJ1dGVfaW5zdGFuY2UuPGxvY2Fscz4uRm9vIG9iamVj
dCBhdCAweGRlYWRiZWVmPiA9IDxjbGFzcyAnZmFpbHVyZV9kZW1vLnRlc3RfYXR0cmlidXRlX2lu
c3RhbmNlLjxsb2NhbHM+LkZvbyc+KCkKIAotICAgIGZhaWx1cmVfZGVtby5weToxMjI6IEFzc2Vy
dGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjEzNzogQXNzZXJ0aW9uRXJyb3IKICAgICBf
X19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2F0dHJpYnV0ZV9mYWlsdXJlIF9fX19fX19f
X19fX19fX19fX19fX19fX19fCiAKICAgICAgICAgZGVmIHRlc3RfYXR0cmlidXRlX2ZhaWx1cmUo
KToKLQogICAgICAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6Ci0KICAgICAgICAgICAgICAgICBk
ZWYgX2dldF9iKHNlbGYpOgogICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkZh
aWxlZCB0byBnZXQgYXR0cmliIikKIApAQCAtMzI4LDcgKzM2NCw3IEBAIGdldCBvbiB0aGUgdGVy
bWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgICAgICAgICBpID0gRm9vKCkK
ICAgICA+ICAgICAgIGFzc2VydCBpLmIgPT0gMgogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjEzNToK
KyAgICBmYWlsdXJlX2RlbW8ucHk6MTQ4OgogICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXwogCiAgICAg
c2VsZiA9IDxmYWlsdXJlX2RlbW8udGVzdF9hdHRyaWJ1dGVfZmFpbHVyZS48bG9jYWxzPi5Gb28g
b2JqZWN0IGF0IDB4ZGVhZGJlZWY+CkBAIC0zMzcsMTEgKzM3MywxMCBAQCBnZXQgb24gdGhlIHRl
cm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgID4gICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCJGYWlsZWQgdG8gZ2V0IGF0dHJpYiIpCiAgICAgRSAgICAgICBFeGNlcHRpb246IEZh
aWxlZCB0byBnZXQgYXR0cmliCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MTMwOiBFeGNlcHRpb24K
KyAgICBmYWlsdXJlX2RlbW8ucHk6MTQzOiBFeGNlcHRpb24KICAgICBfX19fX19fX19fX19fX19f
X19fX19fX19fIHRlc3RfYXR0cmlidXRlX211bHRpcGxlIF9fX19fX19fX19fX19fX19fX19fX19f
X19fCiAKICAgICAgICAgZGVmIHRlc3RfYXR0cmlidXRlX211bHRpcGxlKCk6Ci0KICAgICAgICAg
ICAgIGNsYXNzIEZvbyhvYmplY3QpOgogICAgICAgICAgICAgICAgIGIgPSAxCiAKQEAgLTM1NSwz
MSArMzkwLDI2IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0
KTo6CiAgICAgRSAgICAgICAgKyAgYW5kICAgMiA9IDxmYWlsdXJlX2RlbW8udGVzdF9hdHRyaWJ1
dGVfbXVsdGlwbGUuPGxvY2Fscz4uQmFyIG9iamVjdCBhdCAweGRlYWRiZWVmPi5iCiAgICAgRSAg
ICAgICAgKyAgICB3aGVyZSA8ZmFpbHVyZV9kZW1vLnRlc3RfYXR0cmlidXRlX211bHRpcGxlLjxs
b2NhbHM+LkJhciBvYmplY3QgYXQgMHhkZWFkYmVlZj4gPSA8Y2xhc3MgJ2ZhaWx1cmVfZGVtby50
ZXN0X2F0dHJpYnV0ZV9tdWx0aXBsZS48bG9jYWxzPi5CYXInPigpCiAKLSAgICBmYWlsdXJlX2Rl
bW8ucHk6MTQ2OiBBc3NlcnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVtby5weToxNTg6IEFzc2Vy
dGlvbkVycm9yCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX18gVGVzdFJhaXNlcy50ZXN0
X3JhaXNlcyBfX19fX19fX19fX19fX19fX19fX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJl
X2RlbW8uVGVzdFJhaXNlcyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KIAogICAgICAgICBkZWYgdGVz
dF9yYWlzZXMoc2VsZik6Ci0gICAgICAgICAgICBzID0gInF3ZSIgICMgTk9RQQotICAgID4gICAg
ICAgcmFpc2VzKFR5cGVFcnJvciwgImludChzKSIpCi0KLSAgICBmYWlsdXJlX2RlbW8ucHk6MTU3
OgotICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXwotCi0gICAgPiAgIGludChzKQotICAgIEUgICBWYWx1
ZUVycm9yOiBpbnZhbGlkIGxpdGVyYWwgZm9yIGludCgpIHdpdGggYmFzZSAxMDogJ3F3ZScKKyAg
ICAgICAgICAgIHMgPSAicXdlIgorICAgID4gICAgICAgcmFpc2VzKFR5cGVFcnJvciwgaW50LCBz
KQorICAgIEUgICAgICAgVmFsdWVFcnJvcjogaW52YWxpZCBsaXRlcmFsIGZvciBpbnQoKSB3aXRo
IGJhc2UgMTA6ICdxd2UnCiAKLSAgICA8MC1jb2RlZ2VuICRQWVRIT05fUFJFRklYL2xpYi9weXRo
b24zLjUvc2l0ZS1wYWNrYWdlcy9fcHl0ZXN0L3B5dGhvbl9hcGkucHk6NjM0PjoxOiBWYWx1ZUVy
cm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjE2ODogVmFsdWVFcnJvcgogICAgIF9fX19fX19fX19f
X19fX19fX19fX18gVGVzdFJhaXNlcy50ZXN0X3JhaXNlc19kb2VzbnQgX19fX19fX19fX19fX19f
X19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RSYWlzZXMgb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+CiAKICAgICAgICAgZGVmIHRlc3RfcmFpc2VzX2RvZXNudChzZWxmKToKLSAg
ICA+ICAgICAgIHJhaXNlcyhJT0Vycm9yLCAiaW50KCczJykiKQorICAgID4gICAgICAgcmFpc2Vz
KElPRXJyb3IsIGludCwgIjMiKQogICAgIEUgICAgICAgRmFpbGVkOiBESUQgTk9UIFJBSVNFIDxj
bGFzcyAnT1NFcnJvcic+CiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MTYwOiBGYWlsZWQKKyAgICBm
YWlsdXJlX2RlbW8ucHk6MTcxOiBGYWlsZWQKICAgICBfX19fX19fX19fX19fX19fX19fX19fX19f
XyBUZXN0UmFpc2VzLnRlc3RfcmFpc2UgX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAKICAg
ICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0UmFpc2VzIG9iamVjdCBhdCAweGRlYWRiZWVmPgpA
QCAtMzg4LDcgKzQxOCw3IEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBv
biB0aGF0KTo6CiAgICAgPiAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJkZW1vIGVycm9yIikKICAg
ICBFICAgICAgIFZhbHVlRXJyb3I6IGRlbW8gZXJyb3IKIAotICAgIGZhaWx1cmVfZGVtby5weTox
NjM6IFZhbHVlRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTc0OiBWYWx1ZUVycm9yCiAgICAg
X19fX19fX19fX19fX19fX19fX19fX19fIFRlc3RSYWlzZXMudGVzdF90dXBsZWVycm9yIF9fX19f
X19fX19fX19fX19fX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFJhaXNl
cyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTM5Nyw3ICs0MjcsNyBAQCBnZXQgb24gdGhlIHRl
cm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgID4gICAgICAgYSwgYiA9IFsx
XSAgIyBOT1FBCiAgICAgRSAgICAgICBWYWx1ZUVycm9yOiBub3QgZW5vdWdoIHZhbHVlcyB0byB1
bnBhY2sgKGV4cGVjdGVkIDIsIGdvdCAxKQogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjE2NjogVmFs
dWVFcnJvcgorICAgIGZhaWx1cmVfZGVtby5weToxNzc6IFZhbHVlRXJyb3IKICAgICBfX19fX18g
VGVzdFJhaXNlcy50ZXN0X3JlaW50ZXJwcmV0X2ZhaWxzX3dpdGhfcHJpbnRfZm9yX3RoZV9mdW5f
b2ZfaXQgX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0UmFpc2VzIG9iamVj
dCBhdCAweGRlYWRiZWVmPgpAQCAtNDA2LDkgKzQzNiw5IEBAIGdldCBvbiB0aGUgdGVybWluYWwg
LSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgICAgICAgICBpdGVtcyA9IFsxLCAyLCAz
XQogICAgICAgICAgICAgcHJpbnQoIml0ZW1zIGlzICVyIiAlIGl0ZW1zKQogICAgID4gICAgICAg
YSwgYiA9IGl0ZW1zLnBvcCgpCi0gICAgRSAgICAgICBUeXBlRXJyb3I6ICdpbnQnIG9iamVjdCBp
cyBub3QgaXRlcmFibGUKKyAgICBFICAgICAgIFR5cGVFcnJvcjogY2Fubm90IHVucGFjayBub24t
aXRlcmFibGUgaW50IG9iamVjdAogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjE3MTogVHlwZUVycm9y
CisgICAgZmFpbHVyZV9kZW1vLnB5OjE4MjogVHlwZUVycm9yCiAgICAgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIENhcHR1cmVkIHN0ZG91dCBjYWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogICAgIGl0ZW1zIGlzIFsxLCAyLCAzXQogICAgIF9fX19fX19fX19fX19fX19fX19fX19f
XyBUZXN0UmFpc2VzLnRlc3Rfc29tZV9lcnJvciBfX19fX19fX19fX19fX19fX19fX19fX18KQEAg
LTQxOSw3ICs0NDksNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24g
dGhhdCk6OgogICAgID4gICAgICAgaWYgbmFtZW5vdGV4aTogICMgTk9RQQogICAgIEUgICAgICAg
TmFtZUVycm9yOiBuYW1lICduYW1lbm90ZXhpJyBpcyBub3QgZGVmaW5lZAogCi0gICAgZmFpbHVy
ZV9kZW1vLnB5OjE3NDogTmFtZUVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjE4NTogTmFtZUVy
cm9yCiAgICAgX19fX19fX19fX19fX19fX19fX18gdGVzdF9keW5hbWljX2NvbXBpbGVfc2hvd3Nf
bmljZWx5IF9fX19fX19fX19fX19fX19fX19fXwogCiAgICAgICAgIGRlZiB0ZXN0X2R5bmFtaWNf
Y29tcGlsZV9zaG93c19uaWNlbHkoKToKQEAgLTQzMCwyNCArNDYwLDIzIEBAIGdldCBvbiB0aGUg
dGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0aGF0KTo6CiAgICAgICAgICAgICBuYW1lID0g
ImFiYy0xMjMiCiAgICAgICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZShuYW1lKQogICAg
ICAgICAgICAgY29kZSA9IF9weXRlc3QuX2NvZGUuY29tcGlsZShzcmMsIG5hbWUsICJleGVjIikK
LSAgICAgICAgICAgIHB5LmJ1aWx0aW4uZXhlY18oY29kZSwgbW9kdWxlLl9fZGljdF9fKQorICAg
ICAgICAgICAgZXhlYyhjb2RlLCBtb2R1bGUuX19kaWN0X18pCiAgICAgICAgICAgICBzeXMubW9k
dWxlc1tuYW1lXSA9IG1vZHVsZQogICAgID4gICAgICAgbW9kdWxlLmZvbygpCiAKLSAgICBmYWls
dXJlX2RlbW8ucHk6MTkyOgorICAgIGZhaWx1cmVfZGVtby5weToyMDM6CiAgICAgXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfCiAKICAgICAgICAgZGVmIGZvbygpOgogICAgID4gICAgYXNzZXJ0IDEgPT0gMAog
ICAgIEUgICAgQXNzZXJ0aW9uRXJyb3IKIAotICAgIDwyLWNvZGVnZW4gJ2FiYy0xMjMnICRSRUdF
TkRPQ19UTVBESVIvYXNzZXJ0aW9uL2ZhaWx1cmVfZGVtby5weToxODk+OjI6IEFzc2VydGlvbkVy
cm9yCisgICAgPDAtY29kZWdlbiAnYWJjLTEyMycgJFJFR0VORE9DX1RNUERJUi9hc3NlcnRpb24v
ZmFpbHVyZV9kZW1vLnB5OjIwMD46MjogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fX19f
X19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X2NvbXBsZXhfZXJyb3IgX19fX19fX19fX19fX19f
X19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3Qg
YXQgMHhkZWFkYmVlZj4KIAogICAgICAgICBkZWYgdGVzdF9jb21wbGV4X2Vycm9yKHNlbGYpOgot
CiAgICAgICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAgICAgIHJldHVybiA0NAogCkBAIC00
NTYsOSArNDg1LDkgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRo
YXQpOjoKIAogICAgID4gICAgICAgc29tZWZ1bmMoZigpLCBnKCkpCiAKLSAgICBmYWlsdXJlX2Rl
bW8ucHk6MjA1OgorICAgIGZhaWx1cmVfZGVtby5weToyMTQ6CiAgICAgXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfCi0gICAgZmFpbHVyZV9kZW1vLnB5OjExOiBpbiBzb21lZnVuYworICAgIGZhaWx1cmVfZGVt
by5weToxMjogaW4gc29tZWZ1bmMKICAgICAgICAgb3RoZXJmdW5jKHgsIHkpCiAgICAgXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfCiAKQEAgLTQ2OCw3ICs0OTcsNyBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0g
d2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgID4gICAgICAgYXNzZXJ0IGEgPT0gYgogICAg
IEUgICAgICAgYXNzZXJ0IDQ0ID09IDQzCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6NzogQXNzZXJ0
aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6ODogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19f
X19fX19fX19fX19fX19fIFRlc3RNb3JlRXJyb3JzLnRlc3RfejFfdW5wYWNrX2Vycm9yIF9fX19f
X19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9y
cyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTQ3OCw3ICs1MDcsNyBAQCBnZXQgb24gdGhlIHRl
cm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgID4gICAgICAgYSwgYiA9IGl0
ZW1zCiAgICAgRSAgICAgICBWYWx1ZUVycm9yOiBub3QgZW5vdWdoIHZhbHVlcyB0byB1bnBhY2sg
KGV4cGVjdGVkIDIsIGdvdCAwKQogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjIwOTogVmFsdWVFcnJv
cgorICAgIGZhaWx1cmVfZGVtby5weToyMTg6IFZhbHVlRXJyb3IKICAgICBfX19fX19fX19fX19f
X19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X3oyX3R5cGVfZXJyb3IgX19fX19fX19fX19fX19f
X19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3Qg
YXQgMHhkZWFkYmVlZj4KQEAgLTQ4Niw5ICs1MTUsOSBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0g
d2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgICAgICBkZWYgdGVzdF96Ml90eXBlX2Vycm9y
KHNlbGYpOgogICAgICAgICAgICAgaXRlbXMgPSAzCiAgICAgPiAgICAgICBhLCBiID0gaXRlbXMK
LSAgICBFICAgICAgIFR5cGVFcnJvcjogJ2ludCcgb2JqZWN0IGlzIG5vdCBpdGVyYWJsZQorICAg
IEUgICAgICAgVHlwZUVycm9yOiBjYW5ub3QgdW5wYWNrIG5vbi1pdGVyYWJsZSBpbnQgb2JqZWN0
CiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MjEzOiBUeXBlRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8u
cHk6MjIyOiBUeXBlRXJyb3IKICAgICBfX19fX19fX19fX19fX19fX19fX19fIFRlc3RNb3JlRXJy
b3JzLnRlc3Rfc3RhcnRzd2l0aCBfX19fX19fX19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0g
PGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTUw
MSwxMyArNTMwLDEyIEBAIGdldCBvbiB0aGUgdGVybWluYWwgLSB3ZSBhcmUgd29ya2luZyBvbiB0
aGF0KTo6CiAgICAgRSAgICAgICAgKyAgd2hlcmUgRmFsc2UgPSA8YnVpbHQtaW4gbWV0aG9kIHN0
YXJ0c3dpdGggb2Ygc3RyIG9iamVjdCBhdCAweGRlYWRiZWVmPignNDU2JykKICAgICBFICAgICAg
ICArICAgIHdoZXJlIDxidWlsdC1pbiBtZXRob2Qgc3RhcnRzd2l0aCBvZiBzdHIgb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+ID0gJzEyMycuc3RhcnRzd2l0aAogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjIx
ODogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6MjI3OiBBc3NlcnRpb25FcnJv
cgogICAgIF9fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X3N0YXJ0c3dpdGhf
bmVzdGVkIF9fX19fX19fX19fX19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRl
c3RNb3JlRXJyb3JzIG9iamVjdCBhdCAweGRlYWRiZWVmPgogCiAgICAgICAgIGRlZiB0ZXN0X3N0
YXJ0c3dpdGhfbmVzdGVkKHNlbGYpOgotCiAgICAgICAgICAgICBkZWYgZigpOgogICAgICAgICAg
ICAgICAgIHJldHVybiAiMTIzIgogCkBAIC01MjEsNyArNTQ5LDcgQEAgZ2V0IG9uIHRoZSB0ZXJt
aW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAgICArICAgICAgd2hl
cmUgJzEyMycgPSA8ZnVuY3Rpb24gVGVzdE1vcmVFcnJvcnMudGVzdF9zdGFydHN3aXRoX25lc3Rl
ZC48bG9jYWxzPi5mIGF0IDB4ZGVhZGJlZWY+KCkKICAgICBFICAgICAgICArICAgIGFuZCAgICc0
NTYnID0gPGZ1bmN0aW9uIFRlc3RNb3JlRXJyb3JzLnRlc3Rfc3RhcnRzd2l0aF9uZXN0ZWQuPGxv
Y2Fscz4uZyBhdCAweGRlYWRiZWVmPigpCiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MjI4OiBBc3Nl
cnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVtby5weToyMzY6IEFzc2VydGlvbkVycm9yCiAgICAg
X19fX19fX19fX19fX19fX19fX19fIFRlc3RNb3JlRXJyb3JzLnRlc3RfZ2xvYmFsX2Z1bmMgX19f
X19fX19fX19fX19fX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdE1vcmVF
cnJvcnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CkBAIC01MzIsNyArNTYwLDcgQEAgZ2V0IG9uIHRo
ZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAgICArICB3
aGVyZSBGYWxzZSA9IGlzaW5zdGFuY2UoNDMsIGZsb2F0KQogICAgIEUgICAgICAgICsgICAgd2hl
cmUgNDMgPSBnbG9iZig0MikKIAotICAgIGZhaWx1cmVfZGVtby5weToyMzE6IEFzc2VydGlvbkVy
cm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjIzOTogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19f
X19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X2luc3RhbmNlIF9fX19fX19fX19f
X19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9ycyBv
YmplY3QgYXQgMHhkZWFkYmVlZj4KQEAgLTU0Myw3ICs1NzEsNyBAQCBnZXQgb24gdGhlIHRlcm1p
bmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAgIEUgICAgICAgYXNzZXJ0IDQyICE9
IDQyCiAgICAgRSAgICAgICAgKyAgd2hlcmUgNDIgPSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3JlRXJy
b3JzIG9iamVjdCBhdCAweGRlYWRiZWVmPi54CiAKLSAgICBmYWlsdXJlX2RlbW8ucHk6MjM1OiBB
c3NlcnRpb25FcnJvcgorICAgIGZhaWx1cmVfZGVtby5weToyNDM6IEFzc2VydGlvbkVycm9yCiAg
ICAgX19fX19fX19fX19fX19fX19fX19fX18gVGVzdE1vcmVFcnJvcnMudGVzdF9jb21wYXJlIF9f
X19fX19fX19fX19fX19fX19fX19fXwogCiAgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdE1v
cmVFcnJvcnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CkBAIC01NTMsNyArNTgxLDcgQEAgZ2V0IG9u
IHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9uIHRoYXQpOjoKICAgICBFICAgICAgIGFz
c2VydCAxMSA8IDUKICAgICBFICAgICAgICArICB3aGVyZSAxMSA9IGdsb2JmKDEwKQogCi0gICAg
ZmFpbHVyZV9kZW1vLnB5OjIzODogQXNzZXJ0aW9uRXJyb3IKKyAgICBmYWlsdXJlX2RlbW8ucHk6
MjQ2OiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVy
cm9ycy50ZXN0X3RyeV9maW5hbGx5IF9fX19fX19fX19fX19fX19fX19fX18KIAogICAgIHNlbGYg
PSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3JlRXJyb3JzIG9iamVjdCBhdCAweGRlYWRiZWVmPgpAQCAt
NTY0LDEzICs1OTIsMTIgQEAgZ2V0IG9uIHRoZSB0ZXJtaW5hbCAtIHdlIGFyZSB3b3JraW5nIG9u
IHRoYXQpOjoKICAgICA+ICAgICAgICAgICBhc3NlcnQgeCA9PSAwCiAgICAgRSAgICAgICAgICAg
YXNzZXJ0IDEgPT0gMAogCi0gICAgZmFpbHVyZV9kZW1vLnB5OjI0MzogQXNzZXJ0aW9uRXJyb3IK
KyAgICBmYWlsdXJlX2RlbW8ucHk6MjUxOiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19fX19f
X19fX19fX18gVGVzdEN1c3RvbUFzc2VydE1zZy50ZXN0X3NpbmdsZV9saW5lIF9fX19fX19fX19f
X19fX19fX18KIAogICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RDdXN0b21Bc3NlcnRNc2cg
b2JqZWN0IGF0IDB4ZGVhZGJlZWY+CiAKICAgICAgICAgZGVmIHRlc3Rfc2luZ2xlX2xpbmUoc2Vs
Zik6Ci0KICAgICAgICAgICAgIGNsYXNzIEEob2JqZWN0KToKICAgICAgICAgICAgICAgICBhID0g
MQogCkBAIC01ODAsMzMgKzYwNywzMSBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdv
cmtpbmcgb24gdGhhdCk6OgogICAgIEUgICAgICAgYXNzZXJ0IDEgPT0gMgogICAgIEUgICAgICAg
ICsgIHdoZXJlIDEgPSA8Y2xhc3MgJ2ZhaWx1cmVfZGVtby5UZXN0Q3VzdG9tQXNzZXJ0TXNnLnRl
c3Rfc2luZ2xlX2xpbmUuPGxvY2Fscz4uQSc+LmEKIAotICAgIGZhaWx1cmVfZGVtby5weToyNTY6
IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjI2MjogQXNzZXJ0aW9uRXJyb3IK
ICAgICBfX19fX19fX19fX19fX19fX19fXyBUZXN0Q3VzdG9tQXNzZXJ0TXNnLnRlc3RfbXVsdGls
aW5lIF9fX19fX19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0
Q3VzdG9tQXNzZXJ0TXNnIG9iamVjdCBhdCAweGRlYWRiZWVmPgogCiAgICAgICAgIGRlZiB0ZXN0
X211bHRpbGluZShzZWxmKToKLQogICAgICAgICAgICAgY2xhc3MgQShvYmplY3QpOgogICAgICAg
ICAgICAgICAgIGEgPSAxCiAKICAgICAgICAgICAgIGIgPSAyCiAgICAgPiAgICAgICBhc3NlcnQg
KAogICAgICAgICAgICAgICAgIEEuYSA9PSBiCi0gICAgICAgICAgICApLCAiQS5hIGFwcGVhcnMg
bm90IHRvIGJlIGJcbiIgIm9yIGRvZXMgbm90IGFwcGVhciB0byBiZSBiXG5vbmUgb2YgdGhvc2Ui
CisgICAgICAgICAgICApLCAiQS5hIGFwcGVhcnMgbm90IHRvIGJlIGJcbm9yIGRvZXMgbm90IGFw
cGVhciB0byBiZSBiXG5vbmUgb2YgdGhvc2UiCiAgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjog
QS5hIGFwcGVhcnMgbm90IHRvIGJlIGIKICAgICBFICAgICAgICAgb3IgZG9lcyBub3QgYXBwZWFy
IHRvIGJlIGIKICAgICBFICAgICAgICAgb25lIG9mIHRob3NlCiAgICAgRSAgICAgICBhc3NlcnQg
MSA9PSAyCiAgICAgRSAgICAgICAgKyAgd2hlcmUgMSA9IDxjbGFzcyAnZmFpbHVyZV9kZW1vLlRl
c3RDdXN0b21Bc3NlcnRNc2cudGVzdF9tdWx0aWxpbmUuPGxvY2Fscz4uQSc+LmEKIAotICAgIGZh
aWx1cmVfZGVtby5weToyNjQ6IEFzc2VydGlvbkVycm9yCisgICAgZmFpbHVyZV9kZW1vLnB5OjI2
OTogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19fX19fX19fX19fX19fIFRlc3RDdXN0b21Bc3Nl
cnRNc2cudGVzdF9jdXN0b21fcmVwciBfX19fX19fX19fX19fX19fX19fCiAKICAgICBzZWxmID0g
PGZhaWx1cmVfZGVtby5UZXN0Q3VzdG9tQXNzZXJ0TXNnIG9iamVjdCBhdCAweGRlYWRiZWVmPgog
CiAgICAgICAgIGRlZiB0ZXN0X2N1c3RvbV9yZXByKHNlbGYpOgotCiAgICAgICAgICAgICBjbGFz
cyBKU09OKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgYSA9IDEKIApAQCAtNjIzLDExICs2NDgs
NSBAQCBnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24gdGhhdCk6OgogICAg
IEUgICAgICAgYXNzZXJ0IDEgPT0gMgogICAgIEUgICAgICAgICsgIHdoZXJlIDEgPSBUaGlzIGlz
IEpTT05cbntcbiAgJ2Zvbyc6ICdiYXInXG59LmEKIAotICAgIGZhaWx1cmVfZGVtby5weToyNzg6
IEFzc2VydGlvbkVycm9yCi0gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gd2Fybmlu
Z3Mgc3VtbWFyeSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIDx1bmRldGVybWlu
ZWQgbG9jYXRpb24+Ci0gICAgICBNZXRhZnVuYy5hZGRjYWxsIGlzIGRlcHJlY2F0ZWQgYW5kIHNj
aGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdCA0LjAuCi0gICAgICBQbGVhc2UgdXNlIE1l
dGFmdW5jLnBhcmFtZXRyaXplIGluc3RlYWQuCi0KLSAgICAtLSBEb2NzOiBodHRwOi8vZG9jLnB5
dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwKLSAgICA9PT09PT09PT09PT09PT09PT0g
NDIgZmFpbGVkLCAxIHdhcm5pbmdzIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09
CisgICAgZmFpbHVyZV9kZW1vLnB5OjI4MjogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09
PT09PT09PT09PT09PT0gNDQgZmFpbGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09
PT09PT09PT09CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zaW1wbGUu
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvc2ltcGxlLnJzdAppbmRleCAxODA2Mzdh
ZTk5NGJmMTEwZDExOWY0NTBmMjIxODE5NDRhOWVmYjUwLi4xZGVlOTgxYmU3NzhjNzZiZTM3NDUy
NzBjY2U0ODJhZGRkZDU5NTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9zaW1wbGUucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3NpbXBsZS5yc3QK
QEAgLTQzLDcgKzQzLDkgQEAgcHJvdmlkZSB0aGUgYGBjbWRvcHRgYCB0aHJvdWdoIGEgOnJlZjpg
Zml4dHVyZSBmdW5jdGlvbiA8Zml4dHVyZSBmdW5jdGlvbj5gOgogICAgIGRlZiBjbWRvcHQocmVx
dWVzdCk6CiAgICAgICAgIHJldHVybiByZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oIi0tY21kb3B0
IikKIAotTGV0J3MgcnVuIHRoaXMgd2l0aG91dCBzdXBwbHlpbmcgb3VyIG5ldyBvcHRpb246Ogor
TGV0J3MgcnVuIHRoaXMgd2l0aG91dCBzdXBwbHlpbmcgb3VyIG5ldyBvcHRpb246CisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xIHRlc3Rfc2FtcGxlLnB5CiAgICAg
RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWzEwMCVdCkBAIC02NSw3ICs2Nyw5IEBAIExldCdzIHJ1biB0aGlzIHdpdGhv
dXQgc3VwcGx5aW5nIG91ciBuZXcgb3B0aW9uOjoKICAgICBmaXJzdAogICAgIDEgZmFpbGVkIGlu
IDAuMTIgc2Vjb25kcwogCi1BbmQgbm93IHdpdGggc3VwcGx5aW5nIGEgY29tbWFuZCBsaW5lIG9w
dGlvbjo6CitBbmQgbm93IHdpdGggc3VwcGx5aW5nIGEgY29tbWFuZCBsaW5lIG9wdGlvbjoKKwor
Li4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXEgLS1jbWRvcHQ9dHlwZTIK
ICAgICBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbMTAwJV0KQEAgLTEwMyw3ICsxMDcsNyBAQCB0aGUgY29tbWFuZCBs
aW5lIGFyZ3VtZW50cyBiZWZvcmUgdGhleSBnZXQgcHJvY2Vzc2VkOgogCiAuLiBjb2RlLWJsb2Nr
OjogcHl0aG9uCiAKLSAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKyAgICAjIHNldHVwdG9v
bHMgcGx1Z2luCiAgICAgaW1wb3J0IHN5cwogCiAKQEAgLTExNywxMiArMTIxLDE1IEBAIHRoZSBj
b21tYW5kIGxpbmUgYXJndW1lbnRzIGJlZm9yZSB0aGV5IGdldCBwcm9jZXNzZWQ6CiBJZiB5b3Ug
aGF2ZSB0aGUgYHhkaXN0IHBsdWdpbiA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGVzdC14
ZGlzdC8+YF8gaW5zdGFsbGVkCiB5b3Ugd2lsbCBub3cgYWx3YXlzIHBlcmZvcm0gdGVzdCBydW5z
IHVzaW5nIGEgbnVtYmVyCiBvZiBzdWJwcm9jZXNzZXMgY2xvc2UgdG8geW91ciBDUFUuIFJ1bm5p
bmcgaW4gYW4gZW1wdHkKLWRpcmVjdG9yeSB3aXRoIHRoZSBhYm92ZSBjb25mdGVzdC5weTo6Citk
aXJlY3Rvcnkgd2l0aCB0aGUgYWJvdmUgY29uZnRlc3QucHk6CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRlc3QKIAogICAgICQgcHl0ZXN0CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRl
c3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRm
b3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5
LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAg
cm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAwIGl0ZW1zCiAKICAgICA9
PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRzID09PT09
PT09PT09PT09PT09PT09PT09CkBAIC0xNzUsMjYgKzE4MiwzMiBAQCBXZSBjYW4gbm93IHdyaXRl
IGEgdGVzdCBtb2R1bGUgbGlrZSB0aGlzOgogICAgIGRlZiB0ZXN0X2Z1bmNfc2xvdygpOgogICAg
ICAgICBwYXNzCiAKLWFuZCB3aGVuIHJ1bm5pbmcgaXQgd2lsbCBzZWUgYSBza2lwcGVkICJzbG93
IiB0ZXN0OjoKK2FuZCB3aGVuIHJ1bm5pbmcgaXQgd2lsbCBzZWUgYSBza2lwcGVkICJzbG93IiB0
ZXN0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcnMgICAgIyAi
LXJzIiBtZWFucyByZXBvcnQgZGV0YWlscyBvbiB0aGUgbGl0dGxlICdzJwogICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0z
LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBE
SVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3Qt
NC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVG
SVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xs
ZWN0ZWQgMiBpdGVtcwogCiAgICAgdGVzdF9tb2R1bGUucHkgLnMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCi0gICAgPT09PT09PT09PT09
PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09
PT09PT09PQotICAgIFNLSVAgWzFdIHRlc3RfbW9kdWxlLnB5Ojg6IG5lZWQgLS1ydW5zbG93IG9w
dGlvbiB0byBydW4KIAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gc2hvcnQgdGVzdCBz
dW1tYXJ5IGluZm8gPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBTS0lQUEVEIFsxXSB0
ZXN0X21vZHVsZS5weTo4OiBuZWVkIC0tcnVuc2xvdyBvcHRpb24gdG8gcnVuCiAgICAgPT09PT09
PT09PT09PT09PT09PSAxIHBhc3NlZCwgMSBza2lwcGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09
PT09PT09PT09PT09PQogCi1PciBydW4gaXQgaW5jbHVkaW5nIHRoZSBgYHNsb3dgYCBtYXJrZWQg
dGVzdDo6CitPciBydW4gaXQgaW5jbHVkaW5nIHRoZSBgYHNsb3dgYCBtYXJrZWQgdGVzdDoKKwor
Li4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLS1ydW5zbG93CiAgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0
ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9D
X1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5
dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9O
X1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAg
IGNvbGxlY3RlZCAyIGl0ZW1zCiAKICAgICB0ZXN0X21vZHVsZS5weSAuLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KQEAgLTIzMCw3ICsy
NDMsOSBAQCBFeGFtcGxlOgogVGhlIGBgX190cmFjZWJhY2toaWRlX19gYCBzZXR0aW5nIGluZmx1
ZW5jZXMgYGBweXRlc3RgYCBzaG93aW5nCiBvZiB0cmFjZWJhY2tzOiB0aGUgYGBjaGVja2NvbmZp
Z2BgIGZ1bmN0aW9uIHdpbGwgbm90IGJlIHNob3duCiB1bmxlc3MgdGhlIGBgLS1mdWxsLXRyYWNl
YGAgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBzcGVjaWZpZWQuCi1MZXQncyBydW4gb3VyIGxpdHRs
ZSBmdW5jdGlvbjo6CitMZXQncyBydW4gb3VyIGxpdHRsZSBmdW5jdGlvbjoKKworLi4gY29kZS1i
bG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXEgdGVzdF9jaGVja2NvbmZpZy5weQogICAg
IEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsxMDAlXQpAQCAtMzI3LDEzICszNDIsMTYgQEAgSXQncyBlYXN5IHRvIHBy
ZXNlbnQgZXh0cmEgaW5mb3JtYXRpb24gaW4gYSBgYHB5dGVzdGBgIHJ1bjoKICAgICBkZWYgcHl0
ZXN0X3JlcG9ydF9oZWFkZXIoY29uZmlnKToKICAgICAgICAgcmV0dXJuICJwcm9qZWN0IGRlcHM6
IG15bGliLTEuMSIKIAotd2hpY2ggd2lsbCBhZGQgdGhlIHN0cmluZyB0byB0aGUgdGVzdCBoZWFk
ZXIgYWNjb3JkaW5nbHk6Ogord2hpY2ggd2lsbCBhZGQgdGhlIHN0cmluZyB0byB0aGUgdGVzdCBo
ZWFkZXIgYWNjb3JkaW5nbHk6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0
ZXN0CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhv
biAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcGxhdGZv
cm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3kt
MC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQogICAgIHBy
b2plY3QgZGVwczogbXlsaWItMS4xCi0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5p
ZmlsZToKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVkIDAgaXRl
bXMKIAogICAgID09PT09PT09PT09PT09PT09PT09PT09IG5vIHRlc3RzIHJhbiBpbiAwLjEyIHNl
Y29uZHMgPT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTM1MywyNSArMzcxLDMwIEBAIGRpc3Bs
YXkgbW9yZSBpbmZvcm1hdGlvbiBpZiBhcHBsaWNhYmxlOgogICAgICAgICBpZiBjb25maWcuZ2V0
b3B0aW9uKCJ2ZXJib3NlIikgPiAwOgogICAgICAgICAgICAgcmV0dXJuIFsiaW5mbzE6IGRpZCB5
b3Uga25vdyB0aGF0IC4uLiIsICJkaWQgeW91PyJdCiAKLXdoaWNoIHdpbGwgYWRkIGluZm8gb25s
eSB3aGVuIHJ1biB3aXRoICItLXYiOjoKK3doaWNoIHdpbGwgYWRkIGluZm8gb25seSB3aGVuIHJ1
biB3aXRoICItLXYiOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAt
dgogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24g
My54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BS
RUZJWC9iaW4vcHl0aG9uMy41Ci0gICAgY2FjaGVkaXI6IC5weXRlc3RfY2FjaGUKKyAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uCisgICAgY2FjaGVkaXI6ICRQWVRI
T05fUFJFRklYLy5weXRlc3RfY2FjaGUKICAgICBpbmZvMTogZGlkIHlvdSBrbm93IHRoYXQgLi4u
CiAgICAgZGlkIHlvdT8KLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgor
ICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0
ZWQgMCBpdGVtcwogCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGlu
IDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PQogCi1hbmQgbm90aGluZyB3aGVu
IHJ1biBwbGFpbmx5OjoKK2FuZCBub3RoaW5nIHdoZW4gcnVuIHBsYWlubHk6CisKKy4uIGNvZGUt
YmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0CiAgICAgPT09PT09PT09PT09PT09PT09PT09
PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
ICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngu
eSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToK
KyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54
LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2Nh
Y2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAwIGl0ZW1z
CiAKICAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNv
bmRzID09PT09PT09PT09PT09PT09PT09PT09CkBAIC00MDMsMTggKzQyNiwyMSBAQCBvdXQgd2hp
Y2ggdGVzdHMgYXJlIHRoZSBzbG93ZXN0LiBMZXQncyBtYWtlIGFuIGFydGlmaWNpYWwgdGVzdCBz
dWl0ZToKICAgICBkZWYgdGVzdF9mdW5jc2xvdzIoKToKICAgICAgICAgdGltZS5zbGVlcCgwLjMp
CiAKLU5vdyB3ZSBjYW4gcHJvZmlsZSB3aGljaCB0ZXN0IGZ1bmN0aW9ucyBleGVjdXRlIHRoZSBz
bG93ZXN0OjoKK05vdyB3ZSBjYW4gcHJvZmlsZSB3aGljaCB0ZXN0IGZ1bmN0aW9ucyBleGVjdXRl
IHRoZSBzbG93ZXN0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAt
LWR1cmF0aW9ucz0zCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lv
biBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4
IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0g
ICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51
eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQor
ICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAzIGl0ZW1zCiAKICAgICB0ZXN0X3NvbWVf
YXJlX3Nsb3cucHkgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbMTAwJV0KIAogICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gc2xvd2VzdCAzIHRlc3Qg
ZHVyYXRpb25zID09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICAwLjMwcyBjYWxsICAgICB0
ZXN0X3NvbWVfYXJlX3Nsb3cucHk6OnRlc3RfZnVuY3Nsb3cyCisgICAgMC4zMXMgY2FsbCAgICAg
dGVzdF9zb21lX2FyZV9zbG93LnB5Ojp0ZXN0X2Z1bmNzbG93MgogICAgIDAuMjBzIGNhbGwgICAg
IHRlc3Rfc29tZV9hcmVfc2xvdy5weTo6dGVzdF9mdW5jc2xvdzEKICAgICAwLjEwcyBjYWxsICAg
ICB0ZXN0X3NvbWVfYXJlX3Nsb3cucHk6OnRlc3RfZnVuY2Zhc3QKICAgICA9PT09PT09PT09PT09
PT09PT09PT09PT09IDMgcGFzc2VkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09
PT09PT09CkBAIC00NzUsMTIgKzUwMSwxNSBAQCB0ZXN0cyBpbiBhIGNsYXNzLiAgSGVyZSBpcyBh
IHRlc3QgbW9kdWxlIGV4YW1wbGU6CiAgICAgZGVmIHRlc3Rfbm9ybWFsKCk6CiAgICAgICAgIHBh
c3MKIAotSWYgd2UgcnVuIHRoaXM6OgorSWYgd2UgcnVuIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6
OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1yeAogICAgID09PT09PT09PT09PT09PT09PT09PT09
PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAg
ICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54Lnks
IHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Cisg
ICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55
LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNo
ZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQgNCBpdGVtcwog
CiAgICAgdGVzdF9zdGVwLnB5IC5GeC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC00OTYsNyArNTI1LDcgQEAgSWYgd2UgcnVuIHRo
aXM6OgogCiAgICAgdGVzdF9zdGVwLnB5OjExOiBBc3NlcnRpb25FcnJvcgogICAgID09PT09PT09
PT09PT09PT09PT09PT09PT0gc2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8gPT09PT09PT09PT09PT09
PT09PT09PT09PT0KLSAgICBYRkFJTCB0ZXN0X3N0ZXAucHk6OlRlc3RVc2VySGFuZGxpbmc6Oigp
Ojp0ZXN0X2RlbGV0aW9uCisgICAgWEZBSUwgdGVzdF9zdGVwLnB5OjpUZXN0VXNlckhhbmRsaW5n
Ojp0ZXN0X2RlbGV0aW9uCiAgICAgICByZWFzb246IHByZXZpb3VzIHRlc3QgZmFpbGVkICh0ZXN0
X21vZGlmaWNhdGlvbikKICAgICA9PT09PT09PT09PT09PSAxIGZhaWxlZCwgMiBwYXNzZWQsIDEg
eGZhaWxlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09CiAKQEAgLTU1NiwxMiArNTg1
LDE1IEBAIHRoZSBgYGRiYGAgZml4dHVyZToKICAgICBkZWYgdGVzdF9yb290KGRiKTogICMgbm8g
ZGIgaGVyZSwgd2lsbCBlcnJvciBvdXQKICAgICAgICAgcGFzcwogCi1XZSBjYW4gcnVuIHRoaXM6
OgorV2UgY2FuIHJ1biB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5
dGVzdAogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRz
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRo
b24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3Rk
aXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0
aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNo
ZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRP
Q19UTVBESVIKICAgICBjb2xsZWN0ZWQgNyBpdGVtcwogCiAgICAgdGVzdF9zdGVwLnB5IC5GeC4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyA1NyVd
CkBAIC01NzQsNyArNjA2LDcgQEAgV2UgY2FuIHJ1biB0aGlzOjoKICAgICBmaWxlICRSRUdFTkRP
Q19UTVBESVIvYi90ZXN0X2Vycm9yLnB5LCBsaW5lIDEKICAgICAgIGRlZiB0ZXN0X3Jvb3QoZGIp
OiAgIyBubyBkYiBoZXJlLCB3aWxsIGVycm9yIG91dAogICAgIEUgICAgICAgZml4dHVyZSAnZGIn
IG5vdCBmb3VuZAotICAgID4gICAgICAgYXZhaWxhYmxlIGZpeHR1cmVzOiBjYWNoZSwgY2FwZmQs
IGNhcGZkYmluYXJ5LCBjYXBsb2csIGNhcHN5cywgY2Fwc3lzYmluYXJ5LCBkb2N0ZXN0X25hbWVz
cGFjZSwgbW9ua2V5cGF0Y2gsIHB5dGVzdGNvbmZpZywgcmVjb3JkX3Byb3BlcnR5LCByZWNvcmRf
eG1sX2F0dHJpYnV0ZSwgcmVjb3JkX3htbF9wcm9wZXJ0eSwgcmVjd2FybiwgdG1wZGlyLCB0bXBk
aXJfZmFjdG9yeQorICAgID4gICAgICAgYXZhaWxhYmxlIGZpeHR1cmVzOiBjYWNoZSwgY2FwZmQs
IGNhcGZkYmluYXJ5LCBjYXBsb2csIGNhcHN5cywgY2Fwc3lzYmluYXJ5LCBkb2N0ZXN0X25hbWVz
cGFjZSwgbW9ua2V5cGF0Y2gsIHB5dGVzdGNvbmZpZywgcmVjb3JkX3Byb3BlcnR5LCByZWNvcmRf
dGVzdHN1aXRlX3Byb3BlcnR5LCByZWNvcmRfeG1sX2F0dHJpYnV0ZSwgcmVjd2FybiwgdG1wX3Bh
dGgsIHRtcF9wYXRoX2ZhY3RvcnksIHRtcGRpciwgdG1wZGlyX2ZhY3RvcnkKICAgICA+ICAgICAg
IHVzZSAncHl0ZXN0IC0tZml4dHVyZXMgW3Rlc3RwYXRoXScgZm9yIGhlbHAgb24gdGhlbS4KIAog
ICAgICRSRUdFTkRPQ19UTVBESVIvYi90ZXN0X2Vycm9yLnB5OjEKQEAgLTY2NywxMiArNjk5LDE1
IEBAIGlmIHlvdSB0aGVuIGhhdmUgZmFpbGluZyB0ZXN0czoKICAgICBkZWYgdGVzdF9mYWlsMigp
OgogICAgICAgICBhc3NlcnQgMAogCi1hbmQgcnVuIHRoZW06OgorYW5kIHJ1biB0aGVtOgorCisu
LiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCB0ZXN0X21vZHVsZS5weQogICAg
ID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54Lnks
IHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdF
TkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55
LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZ
VEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIK
ICAgICBjb2xsZWN0ZWQgMiBpdGVtcwogCiAgICAgdGVzdF9tb2R1bGUucHkgRkYgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC02OTYs
NyArNzMxLDkgQEAgYW5kIHJ1biB0aGVtOjoKICAgICB0ZXN0X21vZHVsZS5weTo2OiBBc3NlcnRp
b25FcnJvcgogICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gMiBmYWlsZWQgaW4gMC4xMiBz
ZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KIAoteW91IHdpbGwgaGF2ZSBhICJmYWls
dXJlcyIgZmlsZSB3aGljaCBjb250YWlucyB0aGUgZmFpbGluZyB0ZXN0IGlkczo6Cit5b3Ugd2ls
bCBoYXZlIGEgImZhaWx1cmVzIiBmaWxlIHdoaWNoIGNvbnRhaW5zIHRoZSBmYWlsaW5nIHRlc3Qg
aWRzOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgJCBjYXQgZmFpbHVyZXMKICAgICB0
ZXN0X21vZHVsZS5weTo6dGVzdF9mYWlsMSAoUFlURVNUX1RNUERJUi90ZXN0X2ZhaWwxMCkKQEAg
LTc2NiwxMiArODAzLDE1IEBAIGlmIHlvdSB0aGVuIGhhdmUgZmFpbGluZyB0ZXN0czoKICAgICBk
ZWYgdGVzdF9mYWlsMigpOgogICAgICAgICBhc3NlcnQgMAogCi1hbmQgcnVuIGl0OjoKK2FuZCBy
dW4gaXQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1zIHRlc3Rf
bW9kdWxlLnB5CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBz
dGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0t
IFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAg
cm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAt
LSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAg
IGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJF
R0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RlZCAzIGl0ZW1zCiAKICAgICB0ZXN0X21vZHVsZS5w
eSBFc2V0dGluZyB1cCBhIHRlc3QgZmFpbGVkISB0ZXN0X21vZHVsZS5weTo6dGVzdF9zZXR1cF9m
YWlscwpAQCAtODE0LDcgKzg1NCw3IEBAIGluZm9ybWF0aW9uLgogYGBQWVRFU1RfQ1VSUkVOVF9U
RVNUYGAgZW52aXJvbm1lbnQgdmFyaWFibGUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLS4uIHZlcnNpb25hZGRlZDo6IDMuMgorCiAKIFNvbWV0aW1lcyBh
IHRlc3Qgc2Vzc2lvbiBtaWdodCBnZXQgc3R1Y2sgYW5kIHRoZXJlIG1pZ2h0IGJlIG5vIGVhc3kg
d2F5IHRvIGZpZ3VyZSBvdXQKIHdoaWNoIHRlc3QgZ290IHN0dWNrLCBmb3IgZXhhbXBsZSBpZiBw
eXRlc3Qgd2FzIHJ1biBpbiBxdWlldCBtb2RlIChgYC1xYGApIG9yIHlvdSBkb24ndCBoYXZlIGFj
Y2VzcyB0byB0aGUgY29uc29sZQpAQCAtODUyLDYgKzg5Miw4IEBAIEluIHRoYXQgb3JkZXIuCiAg
ICAgY2FuIGJlIGNoYW5nZWQgYmV0d2VlbiByZWxlYXNlcyAoZXZlbiBidWcgZml4ZXMpIHNvIGl0
IHNob3VsZG4ndCBiZSByZWxpZWQgb24gZm9yIHNjcmlwdGluZwogICAgIG9yIGF1dG9tYXRpb24u
CiAKKy4uIF9mcmVlemluZy1weXRlc3Q6CisKIEZyZWV6aW5nIHB5dGVzdAogLS0tLS0tLS0tLS0t
LS0tCiAKQEAgLTg5NSw2ICs5MzcsOCBAQCBsaWtlIGBgcHl0ZXN0LXRpbWVvdXRgYCB0aGV5IG11
c3QgYmUgaW1wb3J0ZWQgZXhwbGljaXRseSBhbmQgcGFzc2VkIG9uIHRvIHB5dGVzdAogCiAKIFRo
aXMgYWxsb3dzIHlvdSB0byBleGVjdXRlIHRlc3RzIHVzaW5nIHRoZSBmcm96ZW4KLWFwcGxpY2F0
aW9uIHdpdGggc3RhbmRhcmQgYGBweXRlc3RgYCBjb21tYW5kLWxpbmUgb3B0aW9uczo6CithcHBs
aWNhdGlvbiB3aXRoIHN0YW5kYXJkIGBgcHl0ZXN0YGAgY29tbWFuZC1saW5lIG9wdGlvbnM6CisK
Ky4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICAuL2FwcF9tYWluIC0tcHl0ZXN0IC0tdmVyYm9z
ZSAtLXRiPWxvbmcgLS1qdW5pdHhtbD1yZXN1bHRzLnhtbCB0ZXN0LXN1aXRlLwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvc3BlY2lhbC5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9zcGVjaWFsLnJzdAppbmRleCAxZmMzMmY2YzgxNzNhNWFjMGYxMjdmOWMx
NTllOTMzZWEwZjRjNWNhLi44MDBjYjhlOTAxMDU4Zjg3YjhkZTA5MDdjMDNjZWMzOGVhMTcxM2Qx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zcGVjaWFsLnJzdAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zcGVjaWFsLnJzdApAQCAtMTMsNyArMTMsNyBA
QCBjYWxscyBpdDo6CiAKICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iLCBhdXRv
dXNlPVRydWUpCiAgICAgZGVmIGNhbGxhdHRyX2FoZWFkX29mX2FsbHRlc3RzKHJlcXVlc3QpOgot
ICAgICAgICBwcmludCAoImNhbGxhdHRyX2FoZWFkX29mX2FsbHRlc3RzIGNhbGxlZCIpCisgICAg
ICAgIHByaW50KCJjYWxsYXR0cl9haGVhZF9vZl9hbGx0ZXN0cyBjYWxsZWQiKQogICAgICAgICBz
ZWVuID0gc2V0KFtOb25lXSkKICAgICAgICAgc2Vzc2lvbiA9IHJlcXVlc3Qubm9kZQogICAgICAg
ICBmb3IgaXRlbSBpbiBzZXNzaW9uLml0ZW1zOgpAQCAtMzEsMjAgKzMxLDIwIEBAIHdpbGwgYmUg
Y2FsbGVkIGFoZWFkIG9mIHJ1bm5pbmcgYW55IHRlc3RzOjoKICAgICBjbGFzcyBUZXN0SGVsbG8o
b2JqZWN0KToKICAgICAgICAgQGNsYXNzbWV0aG9kCiAgICAgICAgIGRlZiBjYWxsbWUoY2xzKToK
LSAgICAgICAgICAgIHByaW50ICgiY2FsbG1lIGNhbGxlZCEiKQorICAgICAgICAgICAgcHJpbnQo
ImNhbGxtZSBjYWxsZWQhIikKIAogICAgICAgICBkZWYgdGVzdF9tZXRob2QxKHNlbGYpOgotICAg
ICAgICAgICAgcHJpbnQgKCJ0ZXN0X21ldGhvZDEgY2FsbGVkIikKKyAgICAgICAgICAgIHByaW50
KCJ0ZXN0X21ldGhvZDEgY2FsbGVkIikKIAogICAgICAgICBkZWYgdGVzdF9tZXRob2QyKHNlbGYp
OgotICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0X21ldGhvZDEgY2FsbGVkIikKKyAgICAgICAgICAg
IHByaW50KCJ0ZXN0X21ldGhvZDEgY2FsbGVkIikKIAogICAgIGNsYXNzIFRlc3RPdGhlcihvYmpl
Y3QpOgogICAgICAgICBAY2xhc3NtZXRob2QKICAgICAgICAgZGVmIGNhbGxtZShjbHMpOgotICAg
ICAgICAgICAgcHJpbnQgKCJjYWxsbWUgb3RoZXIgY2FsbGVkIikKKyAgICAgICAgICAgIHByaW50
KCJjYWxsbWUgb3RoZXIgY2FsbGVkIikKICAgICAgICAgZGVmIHRlc3Rfb3RoZXIoc2VsZik6Ci0g
ICAgICAgICAgICBwcmludCAoInRlc3Qgb3RoZXIiKQorICAgICAgICAgICAgcHJpbnQoInRlc3Qg
b3RoZXIiKQogCiAgICAgIyB3b3JrcyB3aXRoIHVuaXR0ZXN0IGFzIHdlbGwgLi4uCiAgICAgaW1w
b3J0IHVuaXR0ZXN0CkBAIC01MiwxMiArNTIsMTQgQEAgd2lsbCBiZSBjYWxsZWQgYWhlYWQgb2Yg
cnVubmluZyBhbnkgdGVzdHM6OgogICAgIGNsYXNzIFNvbWVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgQGNsYXNzbWV0aG9kCiAgICAgICAgIGRlZiBjYWxsbWUoc2VsZik6Ci0gICAg
ICAgICAgICBwcmludCAoIlNvbWVUZXN0IGNhbGxtZSBjYWxsZWQiKQorICAgICAgICAgICAgcHJp
bnQoIlNvbWVUZXN0IGNhbGxtZSBjYWxsZWQiKQogCiAgICAgICAgIGRlZiB0ZXN0X3VuaXQxKHNl
bGYpOgotICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0X3VuaXQxIG1ldGhvZCBjYWxsZWQiKQorICAg
ICAgICAgICAgcHJpbnQoInRlc3RfdW5pdDEgbWV0aG9kIGNhbGxlZCIpCiAKLUlmIHlvdSBydW4g
dGhpcyB3aXRob3V0IG91dHB1dCBjYXB0dXJpbmc6OgorSWYgeW91IHJ1biB0aGlzIHdpdGhvdXQg
b3V0cHV0IGNhcHR1cmluZzoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRl
c3QgLXEgLXMgdGVzdF9tb2R1bGUucHkKICAgICBjYWxsYXR0cl9haGVhZF9vZl9hbGx0ZXN0cyBj
YWxsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3hmYWlsX2RlbW8u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS94ZmFpbF9kZW1vLnB5CmluZGV4IDAxZTZk
YTFhZDJlZDIwYjYzMzUwOGM2NjhkZjU4MDUyNTFkZTBmNjAuLjg4Mzg0YTE1NjJhNGQyNjczMjBh
NDgxOTVlOWI3OWY0YzczODdmMzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL3hmYWlsX2RlbW8ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUveGZhaWxf
ZGVtby5weQpAQCAtMSwzICsxLDQgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBpbXBvcnQg
cHl0ZXN0CiAKIHhmYWlsID0gcHl0ZXN0Lm1hcmsueGZhaWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9maXh0dXJlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9maXh0dXJlLnJzdApp
bmRleCBkNGQzODY3OTJlMDg4N2QwYzBkY2MwYjFkMjI2MjliNWNhMjQyOGJlLi5lZDljMTFiMmVh
NzkwMDcxNGM4MTdkN2UyZGVhNDQ3ZTYwZWMzOGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZml4dHVyZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ZpeHR1cmUucnN0CkBA
IC03LDcgKzcsNyBAQCBweXRlc3QgZml4dHVyZXM6IGV4cGxpY2l0LCBtb2R1bGFyLCBzY2FsYWJs
ZQogCiAuLiBjdXJyZW50bW9kdWxlOjogX3B5dGVzdC5weXRob24KIAotLi4gdmVyc2lvbmFkZGVk
OjogMi4wLzIuMy8yLjQKKwogCiAuLiBfYHhVbml0YDogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcv
d2lraS9YVW5pdAogLi4gX2BwdXJwb3NlIG9mIHRlc3QgZml4dHVyZXNgOiBodHRwOi8vZW4ud2lr
aXBlZGlhLm9yZy93aWtpL1Rlc3RfZml4dHVyZSNTb2Z0d2FyZQpAQCAtNTUsMjMgKzU1LDI2IEBA
IHVzaW5nIGl0OjoKICAgICBpbXBvcnQgcHl0ZXN0CiAKICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAg
ICBkZWYgc210cCgpOgorICAgIGRlZiBzbXRwX2Nvbm5lY3Rpb24oKToKICAgICAgICAgaW1wb3J0
IHNtdHBsaWIKICAgICAgICAgcmV0dXJuIHNtdHBsaWIuU01UUCgic210cC5nbWFpbC5jb20iLCA1
ODcsIHRpbWVvdXQ9NSkKIAotICAgIGRlZiB0ZXN0X2VobG8oc210cCk6Ci0gICAgICAgIHJlc3Bv
bnNlLCBtc2cgPSBzbXRwLmVobG8oKQorICAgIGRlZiB0ZXN0X2VobG8oc210cF9jb25uZWN0aW9u
KToKKyAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHBfY29ubmVjdGlvbi5laGxvKCkKICAgICAg
ICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAogICAgICAgICBhc3NlcnQgMCAjIGZvciBkZW1vIHB1
cnBvc2VzCiAKLUhlcmUsIHRoZSBgYHRlc3RfZWhsb2BgIG5lZWRzIHRoZSBgYHNtdHBgYCBmaXh0
dXJlIHZhbHVlLiAgcHl0ZXN0CitIZXJlLCB0aGUgYGB0ZXN0X2VobG9gYCBuZWVkcyB0aGUgYGBz
bXRwX2Nvbm5lY3Rpb25gYCBmaXh0dXJlIHZhbHVlLiAgcHl0ZXN0CiB3aWxsIGRpc2NvdmVyIGFu
ZCBjYWxsIHRoZSA6cHk6ZnVuYzpgQHB5dGVzdC5maXh0dXJlIDxfcHl0ZXN0LnB5dGhvbi5maXh0
dXJlPmAKLW1hcmtlZCBgYHNtdHBgYCBmaXh0dXJlIGZ1bmN0aW9uLiAgUnVubmluZyB0aGUgdGVz
dCBsb29rcyBsaWtlIHRoaXM6OgorbWFya2VkIGBgc210cF9jb25uZWN0aW9uYGAgZml4dHVyZSBm
dW5jdGlvbi4gIFJ1bm5pbmcgdGhlIHRlc3QgbG9va3MgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJs
b2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCB0ZXN0X3NtdHBzaW1wbGUucHkKICAgICA9PT09
PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRl
c3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5ET0Nf
VE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0
ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05f
UFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAg
Y29sbGVjdGVkIDEgaXRlbQogCiAgICAgdGVzdF9zbXRwc2ltcGxlLnB5IEYgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC03OSwxMCArODIs
MTAgQEAgbWFya2VkIGBgc210cGBgIGZpeHR1cmUgZnVuY3Rpb24uICBSdW5uaW5nIHRoZSB0ZXN0
IGxvb2tzIGxpa2UgdGhpczo6CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgIF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZWhsbyBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KIAotICAgIHNtdHAgPSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRi
ZWVmPgorICAgIHNtdHBfY29ubmVjdGlvbiA9IDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVh
ZGJlZWY+CiAKLSAgICAgICAgZGVmIHRlc3RfZWhsbyhzbXRwKToKLSAgICAgICAgICAgIHJlc3Bv
bnNlLCBtc2cgPSBzbXRwLmVobG8oKQorICAgICAgICBkZWYgdGVzdF9laGxvKHNtdHBfY29ubmVj
dGlvbik6CisgICAgICAgICAgICByZXNwb25zZSwgbXNnID0gc210cF9jb25uZWN0aW9uLmVobG8o
KQogICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAogICAgID4gICAgICAgYXNzZXJ0
IDAgIyBmb3IgZGVtbyBwdXJwb3NlcwogICAgIEUgICAgICAgYXNzZXJ0IDAKQEAgLTkxLDE4ICs5
NCwxOCBAQCBtYXJrZWQgYGBzbXRwYGAgZml4dHVyZSBmdW5jdGlvbi4gIFJ1bm5pbmcgdGhlIHRl
c3QgbG9va3MgbGlrZSB0aGlzOjoKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEgZmFp
bGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEluIHRoZSBm
YWlsdXJlIHRyYWNlYmFjayB3ZSBzZWUgdGhhdCB0aGUgdGVzdCBmdW5jdGlvbiB3YXMgY2FsbGVk
IHdpdGggYQotYGBzbXRwYGAgYXJndW1lbnQsIHRoZSBgYHNtdHBsaWIuU01UUCgpYGAgaW5zdGFu
Y2UgY3JlYXRlZCBieSB0aGUgZml4dHVyZQorYGBzbXRwX2Nvbm5lY3Rpb25gYCBhcmd1bWVudCwg
dGhlIGBgc210cGxpYi5TTVRQKClgYCBpbnN0YW5jZSBjcmVhdGVkIGJ5IHRoZSBmaXh0dXJlCiBm
dW5jdGlvbi4gIFRoZSB0ZXN0IGZ1bmN0aW9uIGZhaWxzIG9uIG91ciBkZWxpYmVyYXRlIGBgYXNz
ZXJ0IDBgYC4gIEhlcmUgaXMKIHRoZSBleGFjdCBwcm90b2NvbCB1c2VkIGJ5IGBgcHl0ZXN0YGAg
dG8gY2FsbCB0aGUgdGVzdCBmdW5jdGlvbiB0aGlzIHdheToKIAogMS4gcHl0ZXN0IDpyZWY6YGZp
bmRzIDx0ZXN0IGRpc2NvdmVyeT5gIHRoZSBgYHRlc3RfZWhsb2BgIGJlY2F1c2UKICAgIG9mIHRo
ZSBgYHRlc3RfYGAgcHJlZml4LiAgVGhlIHRlc3QgZnVuY3Rpb24gbmVlZHMgYSBmdW5jdGlvbiBh
cmd1bWVudAotICAgbmFtZWQgYGBzbXRwYGAuICBBIG1hdGNoaW5nIGZpeHR1cmUgZnVuY3Rpb24g
aXMgZGlzY292ZXJlZCBieQotICAgbG9va2luZyBmb3IgYSBmaXh0dXJlLW1hcmtlZCBmdW5jdGlv
biBuYW1lZCBgYHNtdHBgYC4KKyAgIG5hbWVkIGBgc210cF9jb25uZWN0aW9uYGAuICBBIG1hdGNo
aW5nIGZpeHR1cmUgZnVuY3Rpb24gaXMgZGlzY292ZXJlZCBieQorICAgbG9va2luZyBmb3IgYSBm
aXh0dXJlLW1hcmtlZCBmdW5jdGlvbiBuYW1lZCBgYHNtdHBfY29ubmVjdGlvbmBgLgogCi0yLiBg
YHNtdHAoKWBgIGlzIGNhbGxlZCB0byBjcmVhdGUgYW4gaW5zdGFuY2UuCisyLiBgYHNtdHBfY29u
bmVjdGlvbigpYGAgaXMgY2FsbGVkIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZS4KIAotMy4gYGB0ZXN0
X2VobG8oPFNNVFAgaW5zdGFuY2U+KWBgIGlzIGNhbGxlZCBhbmQgZmFpbHMgaW4gdGhlIGxhc3QK
KzMuIGBgdGVzdF9laGxvKDxzbXRwX2Nvbm5lY3Rpb24gaW5zdGFuY2U+KWBgIGlzIGNhbGxlZCBh
bmQgZmFpbHMgaW4gdGhlIGxhc3QKICAgIGxpbmUgb2YgdGhlIHRlc3QgZnVuY3Rpb24uCiAKIE5v
dGUgdGhhdCBpZiB5b3UgbWlzc3BlbGwgYSBmdW5jdGlvbiBhcmd1bWVudCBvciB3YW50CkBAIC0x
MTEsNyArMTE0LDkgQEAgd2l0aCBhIGxpc3Qgb2YgYXZhaWxhYmxlIGZ1bmN0aW9uIGFyZ3VtZW50
cy4KIAogLi4gbm90ZTo6CiAKLSAgICBZb3UgY2FuIGFsd2F5cyBpc3N1ZSA6OgorICAgIFlvdSBj
YW4gYWx3YXlzIGlzc3VlOgorCisgICAgLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgICAgICBw
eXRlc3QgLS1maXh0dXJlcyB0ZXN0X3NpbXBsZWZhY3RvcnkucHkKIApAQCAtMTUzLDggKzE1OCw4
IEBAIFRoaXMgbWFrZXMgdXNlIG9mIHRoZSBhdXRvbWF0aWMgY2FjaGluZyBtZWNoYW5pc21zIG9m
IHB5dGVzdC4KIAogQW5vdGhlciBnb29kIGFwcHJvYWNoIGlzIGJ5IGFkZGluZyB0aGUgZGF0YSBm
aWxlcyBpbiB0aGUgYGB0ZXN0c2BgIGZvbGRlci4KIFRoZXJlIGFyZSBhbHNvIGNvbW11bml0eSBw
bHVnaW5zIGF2YWlsYWJsZSB0byBoZWxwIG1hbmFnaW5nIHRoaXMgYXNwZWN0IG9mCi10ZXN0aW5n
LCBlLmcuIGBweXRlc3QtZGF0YWRpciA8aHR0cHM6Ly9naXRodWIuY29tL2dhYnJpZWxjbnIvcHl0
ZXN0LWRhdGFkaXI+YF9fCi1hbmQgYHB5dGVzdC1kYXRhZmlsZXMgPGh0dHBzOi8vcHlwaS5weXRo
b24ub3JnL3B5cGkvcHl0ZXN0LWRhdGFmaWxlcz5gX18uCit0ZXN0aW5nLCBlLmcuIGBweXRlc3Qt
ZGF0YWRpciA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGVzdC1kYXRhZGlyLz5gX18KK2Fu
ZCBgcHl0ZXN0LWRhdGFmaWxlcyA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGVzdC1kYXRh
ZmlsZXMvPmBfXy4KIAogLi4gX3NtdHBzaGFyZWQ6CiAKQEAgLTE2NywxMCArMTcyLDExIEBAIEZp
eHR1cmVzIHJlcXVpcmluZyBuZXR3b3JrIGFjY2VzcyBkZXBlbmQgb24gY29ubmVjdGl2aXR5IGFu
ZCBhcmUKIHVzdWFsbHkgdGltZS1leHBlbnNpdmUgdG8gY3JlYXRlLiAgRXh0ZW5kaW5nIHRoZSBw
cmV2aW91cyBleGFtcGxlLCB3ZQogY2FuIGFkZCBhIGBgc2NvcGU9Im1vZHVsZSJgYCBwYXJhbWV0
ZXIgdG8gdGhlCiA6cHk6ZnVuYzpgQHB5dGVzdC5maXh0dXJlIDxfcHl0ZXN0LnB5dGhvbi5maXh0
dXJlPmAgaW52b2NhdGlvbgotdG8gY2F1c2UgdGhlIGRlY29yYXRlZCBgYHNtdHBgYCBmaXh0dXJl
IGZ1bmN0aW9uIHRvIG9ubHkgYmUgaW52b2tlZCBvbmNlCi1wZXIgdGVzdCAqbW9kdWxlKiAodGhl
IGRlZmF1bHQgaXMgdG8gaW52b2tlIG9uY2UgcGVyIHRlc3QgKmZ1bmN0aW9uKikuCit0byBjYXVz
ZSB0aGUgZGVjb3JhdGVkIGBgc210cF9jb25uZWN0aW9uYGAgZml4dHVyZSBmdW5jdGlvbiB0byBv
bmx5IGJlIGludm9rZWQKK29uY2UgcGVyIHRlc3QgKm1vZHVsZSogKHRoZSBkZWZhdWx0IGlzIHRv
IGludm9rZSBvbmNlIHBlciB0ZXN0ICpmdW5jdGlvbiopLgogTXVsdGlwbGUgdGVzdCBmdW5jdGlv
bnMgaW4gYSB0ZXN0IG1vZHVsZSB3aWxsIHRodXMKLWVhY2ggcmVjZWl2ZSB0aGUgc2FtZSBgYHNt
dHBgYCBmaXh0dXJlIGluc3RhbmNlLCB0aHVzIHNhdmluZyB0aW1lLgorZWFjaCByZWNlaXZlIHRo
ZSBzYW1lIGBgc210cF9jb25uZWN0aW9uYGAgZml4dHVyZSBpbnN0YW5jZSwgdGh1cyBzYXZpbmcg
dGltZS4KK1Bvc3NpYmxlIHZhbHVlcyBmb3IgYGBzY29wZWBgIGFyZTogYGBmdW5jdGlvbmBgLCBg
YGNsYXNzYGAsIGBgbW9kdWxlYGAsIGBgcGFja2FnZWBgIG9yIGBgc2Vzc2lvbmBgLgogCiBUaGUg
bmV4dCBleGFtcGxlIHB1dHMgdGhlIGZpeHR1cmUgZnVuY3Rpb24gaW50byBhIHNlcGFyYXRlIGBg
Y29uZnRlc3QucHlgYCBmaWxlCiBzbyB0aGF0IHRlc3RzIGZyb20gbXVsdGlwbGUgdGVzdCBtb2R1
bGVzIGluIHRoZSBkaXJlY3RvcnkgY2FuCkBAIC0xODEsMzMgKzE4NywzNyBAQCBhY2Nlc3MgdGhl
IGZpeHR1cmUgZnVuY3Rpb246OgogICAgIGltcG9ydCBzbXRwbGliCiAKICAgICBAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9Im1vZHVsZSIpCi0gICAgZGVmIHNtdHAoKToKKyAgICBkZWYgc210cF9jb25u
ZWN0aW9uKCk6CiAgICAgICAgIHJldHVybiBzbXRwbGliLlNNVFAoInNtdHAuZ21haWwuY29tIiwg
NTg3LCB0aW1lb3V0PTUpCiAKLVRoZSBuYW1lIG9mIHRoZSBmaXh0dXJlIGFnYWluIGlzIGBgc210
cGBgIGFuZCB5b3UgY2FuIGFjY2VzcyBpdHMgcmVzdWx0IGJ5Ci1saXN0aW5nIHRoZSBuYW1lIGBg
c210cGBgIGFzIGFuIGlucHV0IHBhcmFtZXRlciBpbiBhbnkgdGVzdCBvciBmaXh0dXJlCi1mdW5j
dGlvbiAoaW4gb3IgYmVsb3cgdGhlIGRpcmVjdG9yeSB3aGVyZSBgYGNvbmZ0ZXN0LnB5YGAgaXMg
bG9jYXRlZCk6OgorVGhlIG5hbWUgb2YgdGhlIGZpeHR1cmUgYWdhaW4gaXMgYGBzbXRwX2Nvbm5l
Y3Rpb25gYCBhbmQgeW91IGNhbiBhY2Nlc3MgaXRzCityZXN1bHQgYnkgbGlzdGluZyB0aGUgbmFt
ZSBgYHNtdHBfY29ubmVjdGlvbmBgIGFzIGFuIGlucHV0IHBhcmFtZXRlciBpbiBhbnkKK3Rlc3Qg
b3IgZml4dHVyZSBmdW5jdGlvbiAoaW4gb3IgYmVsb3cgdGhlIGRpcmVjdG9yeSB3aGVyZSBgYGNv
bmZ0ZXN0LnB5YGAgaXMKK2xvY2F0ZWQpOjoKIAogICAgICMgY29udGVudCBvZiB0ZXN0X21vZHVs
ZS5weQogCi0gICAgZGVmIHRlc3RfZWhsbyhzbXRwKToKLSAgICAgICAgcmVzcG9uc2UsIG1zZyA9
IHNtdHAuZWhsbygpCisgICAgZGVmIHRlc3RfZWhsbyhzbXRwX2Nvbm5lY3Rpb24pOgorICAgICAg
ICByZXNwb25zZSwgbXNnID0gc210cF9jb25uZWN0aW9uLmVobG8oKQogICAgICAgICBhc3NlcnQg
cmVzcG9uc2UgPT0gMjUwCiAgICAgICAgIGFzc2VydCBiInNtdHAuZ21haWwuY29tIiBpbiBtc2cK
ICAgICAgICAgYXNzZXJ0IDAgICMgZm9yIGRlbW8gcHVycG9zZXMKIAotICAgIGRlZiB0ZXN0X25v
b3Aoc210cCk6Ci0gICAgICAgIHJlc3BvbnNlLCBtc2cgPSBzbXRwLm5vb3AoKQorICAgIGRlZiB0
ZXN0X25vb3Aoc210cF9jb25uZWN0aW9uKToKKyAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHBf
Y29ubmVjdGlvbi5ub29wKCkKICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAogICAgICAg
ICBhc3NlcnQgMCAgIyBmb3IgZGVtbyBwdXJwb3NlcwogCiBXZSBkZWxpYmVyYXRlbHkgaW5zZXJ0
IGZhaWxpbmcgYGBhc3NlcnQgMGBgIHN0YXRlbWVudHMgaW4gb3JkZXIgdG8KLWluc3BlY3Qgd2hh
dCBpcyBnb2luZyBvbiBhbmQgY2FuIG5vdyBydW4gdGhlIHRlc3RzOjoKK2luc3BlY3Qgd2hhdCBp
cyBnb2luZyBvbiBhbmQgY2FuIG5vdyBydW4gdGhlIHRlc3RzOgorCisuLiBjb2RlLWJsb2NrOjog
cHl0ZXN0CiAKICAgICAkIHB5dGVzdCB0ZXN0X21vZHVsZS5weQogICAgID09PT09PT09PT09PT09
PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwg
cHktMS54LnksIHBsdWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGlu
aWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54Lnks
IHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5
dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQg
MiBpdGVtcwogCiAgICAgdGVzdF9tb2R1bGUucHkgRkYgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCkBAIC0yMTUsMTAgKzIyNSwxMCBAQCBp
bnNwZWN0IHdoYXQgaXMgZ29pbmcgb24gYW5kIGNhbiBub3cgcnVuIHRoZSB0ZXN0czo6CiAgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
IHRlc3RfZWhsbyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIAotICAgIHNtdHAg
PSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIHNtdHBfY29ubmVjdGlv
biA9IDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CiAKLSAgICAgICAgZGVmIHRl
c3RfZWhsbyhzbXRwKToKLSAgICAgICAgICAgIHJlc3BvbnNlLCBtc2cgPSBzbXRwLmVobG8oKQor
ICAgICAgICBkZWYgdGVzdF9laGxvKHNtdHBfY29ubmVjdGlvbik6CisgICAgICAgICAgICByZXNw
b25zZSwgbXNnID0gc210cF9jb25uZWN0aW9uLmVobG8oKQogICAgICAgICAgICAgYXNzZXJ0IHJl
c3BvbnNlID09IDI1MAogICAgICAgICAgICAgYXNzZXJ0IGIic210cC5nbWFpbC5jb20iIGluIG1z
ZwogICAgID4gICAgICAgYXNzZXJ0IDAgICMgZm9yIGRlbW8gcHVycG9zZXMKQEAgLTIyNywxMCAr
MjM3LDEwIEBAIGluc3BlY3Qgd2hhdCBpcyBnb2luZyBvbiBhbmQgY2FuIG5vdyBydW4gdGhlIHRl
c3RzOjoKICAgICB0ZXN0X21vZHVsZS5weTo2OiBBc3NlcnRpb25FcnJvcgogICAgIF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fIHRlc3Rfbm9vcCBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KIAotICAgIHNtdHAgPSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRi
ZWVmPgorICAgIHNtdHBfY29ubmVjdGlvbiA9IDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVh
ZGJlZWY+CiAKLSAgICAgICAgZGVmIHRlc3Rfbm9vcChzbXRwKToKLSAgICAgICAgICAgIHJlc3Bv
bnNlLCBtc2cgPSBzbXRwLm5vb3AoKQorICAgICAgICBkZWYgdGVzdF9ub29wKHNtdHBfY29ubmVj
dGlvbik6CisgICAgICAgICAgICByZXNwb25zZSwgbXNnID0gc210cF9jb25uZWN0aW9uLm5vb3Ao
KQogICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAogICAgID4gICAgICAgYXNzZXJ0
IDAgICMgZm9yIGRlbW8gcHVycG9zZXMKICAgICBFICAgICAgIGFzc2VydCAwCkBAIC0yMzksMjkg
KzI0OSw1MCBAQCBpbnNwZWN0IHdoYXQgaXMgZ29pbmcgb24gYW5kIGNhbiBub3cgcnVuIHRoZSB0
ZXN0czo6CiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAyIGZhaWxlZCBpbiAwLjEyIHNl
Y29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQogCiBZb3Ugc2VlIHRoZSB0d28gYGBhc3Nl
cnQgMGBgIGZhaWxpbmcgYW5kIG1vcmUgaW1wb3J0YW50bHkgeW91IGNhbiBhbHNvIHNlZQotdGhh
dCB0aGUgc2FtZSAobW9kdWxlLXNjb3BlZCkgYGBzbXRwYGAgb2JqZWN0IHdhcyBwYXNzZWQgaW50
byB0aGUgdHdvCi10ZXN0IGZ1bmN0aW9ucyBiZWNhdXNlIHB5dGVzdCBzaG93cyB0aGUgaW5jb21p
bmcgYXJndW1lbnQgdmFsdWVzIGluIHRoZQotdHJhY2ViYWNrLiAgQXMgYSByZXN1bHQsIHRoZSB0
d28gdGVzdCBmdW5jdGlvbnMgdXNpbmcgYGBzbXRwYGAgcnVuIGFzCi1xdWljayBhcyBhIHNpbmds
ZSBvbmUgYmVjYXVzZSB0aGV5IHJldXNlIHRoZSBzYW1lIGluc3RhbmNlLgordGhhdCB0aGUgc2Ft
ZSAobW9kdWxlLXNjb3BlZCkgYGBzbXRwX2Nvbm5lY3Rpb25gYCBvYmplY3Qgd2FzIHBhc3NlZCBp
bnRvIHRoZQordHdvIHRlc3QgZnVuY3Rpb25zIGJlY2F1c2UgcHl0ZXN0IHNob3dzIHRoZSBpbmNv
bWluZyBhcmd1bWVudCB2YWx1ZXMgaW4gdGhlCit0cmFjZWJhY2suICBBcyBhIHJlc3VsdCwgdGhl
IHR3byB0ZXN0IGZ1bmN0aW9ucyB1c2luZyBgYHNtdHBfY29ubmVjdGlvbmBgIHJ1bgorYXMgcXVp
Y2sgYXMgYSBzaW5nbGUgb25lIGJlY2F1c2UgdGhleSByZXVzZSB0aGUgc2FtZSBpbnN0YW5jZS4K
IAotSWYgeW91IGRlY2lkZSB0aGF0IHlvdSByYXRoZXIgd2FudCB0byBoYXZlIGEgc2Vzc2lvbi1z
Y29wZWQgYGBzbXRwYGAKK0lmIHlvdSBkZWNpZGUgdGhhdCB5b3UgcmF0aGVyIHdhbnQgdG8gaGF2
ZSBhIHNlc3Npb24tc2NvcGVkIGBgc210cF9jb25uZWN0aW9uYGAKIGluc3RhbmNlLCB5b3UgY2Fu
IHNpbXBseSBkZWNsYXJlIGl0OgogCiAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBAcHl0
ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQotICAgIGRlZiBzbXRwKCk6CisgICAgZGVmIHNt
dHBfY29ubmVjdGlvbigpOgogICAgICAgICAjIHRoZSByZXR1cm5lZCBmaXh0dXJlIHZhbHVlIHdp
bGwgYmUgc2hhcmVkIGZvcgogICAgICAgICAjIGFsbCB0ZXN0cyBuZWVkaW5nIGl0CiAgICAgICAg
IC4uLgogCiBGaW5hbGx5LCB0aGUgYGBjbGFzc2BgIHNjb3BlIHdpbGwgaW52b2tlIHRoZSBmaXh0
dXJlIG9uY2UgcGVyIHRlc3QgKmNsYXNzKi4KIAorLi4gbm90ZTo6CisKKyAgICBQeXRlc3Qgd2ls
bCBvbmx5IGNhY2hlIG9uZSBpbnN0YW5jZSBvZiBhIGZpeHR1cmUgYXQgYSB0aW1lLgorICAgIFRo
aXMgbWVhbnMgdGhhdCB3aGVuIHVzaW5nIGEgcGFyYW1ldHJpemVkIGZpeHR1cmUsIHB5dGVzdCBt
YXkgaW52b2tlIGEgZml4dHVyZSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgZ2l2ZW4gc2NvcGUuCisK
KworYGBwYWNrYWdlYGAgc2NvcGUgKGV4cGVyaW1lbnRhbCkKK15eXl5eXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eCisKKworCitJbiBweXRlc3QgMy43IHRoZSBgYHBhY2thZ2VgYCBzY29wZSBo
YXMgYmVlbiBpbnRyb2R1Y2VkLiBQYWNrYWdlLXNjb3BlZCBmaXh0dXJlcworYXJlIGZpbmFsaXpl
ZCB3aGVuIHRoZSBsYXN0IHRlc3Qgb2YgYSAqcGFja2FnZSogZmluaXNoZXMuCisKKy4uIHdhcm5p
bmc6OgorICAgIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBjb25zaWRlcmVkICoqZXhwZXJpbWVudGFs
KiogYW5kIG1heSBiZSByZW1vdmVkIGluIGZ1dHVyZQorICAgIHZlcnNpb25zIGlmIGhpZGRlbiBj
b3JuZXItY2FzZXMgb3Igc2VyaW91cyBwcm9ibGVtcyB3aXRoIHRoaXMgZnVuY3Rpb25hbGl0eQor
ICAgIGFyZSBkaXNjb3ZlcmVkIGFmdGVyIGl0IGdldHMgbW9yZSB1c2FnZSBpbiB0aGUgd2lsZC4K
KworICAgIFVzZSB0aGlzIG5ldyBmZWF0dXJlIHNwYXJpbmdseSBhbmQgcGxlYXNlIG1ha2Ugc3Vy
ZSB0byByZXBvcnQgYW55IGlzc3VlcyB5b3UgZmluZC4KKwogCiBIaWdoZXItc2NvcGVkIGZpeHR1
cmVzIGFyZSBpbnN0YW50aWF0ZWQgZmlyc3QKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjUKKwogCiBXaXRoaW4gYSBm
dW5jdGlvbiByZXF1ZXN0IGZvciBmZWF0dXJlcywgZml4dHVyZSBvZiBoaWdoZXItc2NvcGVzIChz
dWNoIGFzIGBgc2Vzc2lvbmBgKSBhcmUgaW5zdGFudGlhdGVkIGZpcnN0IHRoYW4KIGxvd2VyLXNj
b3BlZCBmaXh0dXJlcyAoc3VjaCBhcyBgYGZ1bmN0aW9uYGAgb3IgYGBjbGFzc2BgKS4gVGhlIHJl
bGF0aXZlIG9yZGVyIG9mIGZpeHR1cmVzIG9mIHNhbWUgc2NvcGUgZm9sbG93cwpAQCAtMzIzLDI0
ICszNTQsMjYgQEAgdGhlIGNvZGUgYWZ0ZXIgdGhlICp5aWVsZCogc3RhdGVtZW50IHNlcnZlcyBh
cyB0aGUgdGVhcmRvd24gY29kZToKIAogCiAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1
bGUiKQotICAgIGRlZiBzbXRwKCk6Ci0gICAgICAgIHNtdHAgPSBzbXRwbGliLlNNVFAoInNtdHAu
Z21haWwuY29tIiwgNTg3LCB0aW1lb3V0PTUpCi0gICAgICAgIHlpZWxkIHNtdHAgICMgcHJvdmlk
ZSB0aGUgZml4dHVyZSB2YWx1ZQorICAgIGRlZiBzbXRwX2Nvbm5lY3Rpb24oKToKKyAgICAgICAg
c210cF9jb25uZWN0aW9uID0gc210cGxpYi5TTVRQKCJzbXRwLmdtYWlsLmNvbSIsIDU4NywgdGlt
ZW91dD01KQorICAgICAgICB5aWVsZCBzbXRwX2Nvbm5lY3Rpb24gICMgcHJvdmlkZSB0aGUgZml4
dHVyZSB2YWx1ZQogICAgICAgICBwcmludCgidGVhcmRvd24gc210cCIpCi0gICAgICAgIHNtdHAu
Y2xvc2UoKQorICAgICAgICBzbXRwX2Nvbm5lY3Rpb24uY2xvc2UoKQogCiBUaGUgYGBwcmludGBg
IGFuZCBgYHNtdHAuY2xvc2UoKWBgIHN0YXRlbWVudHMgd2lsbCBleGVjdXRlIHdoZW4gdGhlIGxh
c3QgdGVzdCBpbgogdGhlIG1vZHVsZSBoYXMgZmluaXNoZWQgZXhlY3V0aW9uLCByZWdhcmRsZXNz
IG9mIHRoZSBleGNlcHRpb24gc3RhdHVzIG9mIHRoZQogdGVzdHMuCiAKLUxldCdzIGV4ZWN1dGUg
aXQ6OgorTGV0J3MgZXhlY3V0ZSBpdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAg
JCBweXRlc3QgLXMgLXEgLS10Yj1ubwogICAgIEZGdGVhcmRvd24gc210cAogCiAgICAgMiBmYWls
ZWQgaW4gMC4xMiBzZWNvbmRzCiAKLVdlIHNlZSB0aGF0IHRoZSBgYHNtdHBgYCBpbnN0YW5jZSBp
cyBmaW5hbGl6ZWQgYWZ0ZXIgdGhlIHR3bworV2Ugc2VlIHRoYXQgdGhlIGBgc210cF9jb25uZWN0
aW9uYGAgaW5zdGFuY2UgaXMgZmluYWxpemVkIGFmdGVyIHRoZSB0d28KIHRlc3RzIGZpbmlzaGVk
IGV4ZWN1dGlvbi4gIE5vdGUgdGhhdCBpZiB3ZSBkZWNvcmF0ZWQgb3VyIGZpeHR1cmUKIGZ1bmN0
aW9uIHdpdGggYGBzY29wZT0nZnVuY3Rpb24nYGAgdGhlbiBmaXh0dXJlIHNldHVwIGFuZCBjbGVh
bnVwIHdvdWxkCiBvY2N1ciBhcm91bmQgZWFjaCBzaW5nbGUgdGVzdC4gIEluIGVpdGhlciBjYXNl
IHRoZSB0ZXN0CkBAIC0zNTgsMTMgKzM5MSwxMyBAQCBOb3RlIHRoYXQgd2UgY2FuIGFsc28gc2Vh
bWxlc3NseSB1c2UgdGhlIGBgeWllbGRgYCBzeW50YXggd2l0aCBgYHdpdGhgYCBzdGF0ZW1lbgog
CiAKICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCi0gICAgZGVmIHNtdHAoKToK
LSAgICAgICAgd2l0aCBzbXRwbGliLlNNVFAoInNtdHAuZ21haWwuY29tIiwgNTg3LCB0aW1lb3V0
PTUpIGFzIHNtdHA6Ci0gICAgICAgICAgICB5aWVsZCBzbXRwICAjIHByb3ZpZGUgdGhlIGZpeHR1
cmUgdmFsdWUKKyAgICBkZWYgc210cF9jb25uZWN0aW9uKCk6CisgICAgICAgIHdpdGggc210cGxp
Yi5TTVRQKCJzbXRwLmdtYWlsLmNvbSIsIDU4NywgdGltZW91dD01KSBhcyBzbXRwX2Nvbm5lY3Rp
b246CisgICAgICAgICAgICB5aWVsZCBzbXRwX2Nvbm5lY3Rpb24gICMgcHJvdmlkZSB0aGUgZml4
dHVyZSB2YWx1ZQogCiAKLVRoZSBgYHNtdHBgYCBjb25uZWN0aW9uIHdpbGwgYmUgY2xvc2VkIGFm
dGVyIHRoZSB0ZXN0IGZpbmlzaGVkIGV4ZWN1dGlvbgotYmVjYXVzZSB0aGUgYGBzbXRwYGAgb2Jq
ZWN0IGF1dG9tYXRpY2FsbHkgY2xvc2VzIHdoZW4KK1RoZSBgYHNtdHBfY29ubmVjdGlvbmBgIGNv
bm5lY3Rpb24gd2lsbCBiZSBjbG9zZWQgYWZ0ZXIgdGhlIHRlc3QgZmluaXNoZWQKK2V4ZWN1dGlv
biBiZWNhdXNlIHRoZSBgYHNtdHBfY29ubmVjdGlvbmBgIG9iamVjdCBhdXRvbWF0aWNhbGx5IGNs
b3NlcyB3aGVuCiB0aGUgYGB3aXRoYGAgc3RhdGVtZW50IGVuZHMuCiAKIE5vdGUgdGhhdCBpZiBh
biBleGNlcHRpb24gaGFwcGVucyBkdXJpbmcgdGhlICpzZXR1cCogY29kZSAoYmVmb3JlIHRoZSBg
YHlpZWxkYGAga2V5d29yZCksIHRoZQpAQCAtMzc0LDcgKzQwNyw3IEBAIEFuIGFsdGVybmF0aXZl
IG9wdGlvbiBmb3IgZXhlY3V0aW5nICp0ZWFyZG93biogY29kZSBpcyB0bwogbWFrZSB1c2Ugb2Yg
dGhlIGBgYWRkZmluYWxpemVyYGAgbWV0aG9kIG9mIHRoZSBgcmVxdWVzdC1jb250ZXh0YF8gb2Jq
ZWN0IHRvIHJlZ2lzdGVyCiBmaW5hbGl6YXRpb24gZnVuY3Rpb25zLgogCi1IZXJlJ3MgdGhlIGBg
c210cGBgIGZpeHR1cmUgY2hhbmdlZCB0byB1c2UgYGBhZGRmaW5hbGl6ZXJgYCBmb3IgY2xlYW51
cDoKK0hlcmUncyB0aGUgYGBzbXRwX2Nvbm5lY3Rpb25gYCBmaXh0dXJlIGNoYW5nZWQgdG8gdXNl
IGBgYWRkZmluYWxpemVyYGAgZm9yIGNsZWFudXA6CiAKIC4uIGNvZGUtYmxvY2s6OiBweXRob24K
IApAQCAtMzg0LDE1ICs0MTcsMTUgQEAgSGVyZSdzIHRoZSBgYHNtdHBgYCBmaXh0dXJlIGNoYW5n
ZWQgdG8gdXNlIGBgYWRkZmluYWxpemVyYGAgZm9yIGNsZWFudXA6CiAKIAogICAgIEBweXRlc3Qu
Zml4dHVyZShzY29wZT0ibW9kdWxlIikKLSAgICBkZWYgc210cChyZXF1ZXN0KToKLSAgICAgICAg
c210cCA9IHNtdHBsaWIuU01UUCgic210cC5nbWFpbC5jb20iLCA1ODcsIHRpbWVvdXQ9NSkKKyAg
ICBkZWYgc210cF9jb25uZWN0aW9uKHJlcXVlc3QpOgorICAgICAgICBzbXRwX2Nvbm5lY3Rpb24g
PSBzbXRwbGliLlNNVFAoInNtdHAuZ21haWwuY29tIiwgNTg3LCB0aW1lb3V0PTUpCiAKICAgICAg
ICAgZGVmIGZpbigpOgotICAgICAgICAgICAgcHJpbnQoInRlYXJkb3duIHNtdHAiKQotICAgICAg
ICAgICAgc210cC5jbG9zZSgpCisgICAgICAgICAgICBwcmludCgidGVhcmRvd24gc210cF9jb25u
ZWN0aW9uIikKKyAgICAgICAgICAgIHNtdHBfY29ubmVjdGlvbi5jbG9zZSgpCiAKICAgICAgICAg
cmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQotICAgICAgICByZXR1cm4gc210cCAgIyBwcm92aWRl
IHRoZSBmaXh0dXJlIHZhbHVlCisgICAgICAgIHJldHVybiBzbXRwX2Nvbm5lY3Rpb24gICMgcHJv
dmlkZSB0aGUgZml4dHVyZSB2YWx1ZQogCiAKIEJvdGggYGB5aWVsZGBgIGFuZCBgYGFkZGZpbmFs
aXplcmBgIG1ldGhvZHMgd29yayBzaW1pbGFybHkgYnkgY2FsbGluZyB0aGVpciBjb2RlIGFmdGVy
IHRoZSB0ZXN0CkBAIC00MjUsNyArNDU4LDcgQEAgRml4dHVyZXMgY2FuIGludHJvc3BlY3QgdGhl
IHJlcXVlc3RpbmcgdGVzdCBjb250ZXh0CiAKIEZpeHR1cmUgZnVuY3Rpb25zIGNhbiBhY2NlcHQg
dGhlIDpweTpjbGFzczpgcmVxdWVzdCA8Rml4dHVyZVJlcXVlc3Q+YCBvYmplY3QKIHRvIGludHJv
c3BlY3QgdGhlICJyZXF1ZXN0aW5nIiB0ZXN0IGZ1bmN0aW9uLCBjbGFzcyBvciBtb2R1bGUgY29u
dGV4dC4KLUZ1cnRoZXIgZXh0ZW5kaW5nIHRoZSBwcmV2aW91cyBgYHNtdHBgYCBmaXh0dXJlIGV4
YW1wbGUsIGxldCdzCitGdXJ0aGVyIGV4dGVuZGluZyB0aGUgcHJldmlvdXMgYGBzbXRwX2Nvbm5l
Y3Rpb25gYCBmaXh0dXJlIGV4YW1wbGUsIGxldCdzCiByZWFkIGFuIG9wdGlvbmFsIHNlcnZlciBV
UkwgZnJvbSB0aGUgdGVzdCBtb2R1bGUgd2hpY2ggdXNlcyBvdXIgZml4dHVyZTo6CiAKICAgICAj
IGNvbnRlbnQgb2YgY29uZnRlc3QucHkKQEAgLTQzMywxNiArNDY2LDE4IEBAIHJlYWQgYW4gb3B0
aW9uYWwgc2VydmVyIFVSTCBmcm9tIHRoZSB0ZXN0IG1vZHVsZSB3aGljaCB1c2VzIG91ciBmaXh0
dXJlOjoKICAgICBpbXBvcnQgc210cGxpYgogCiAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJt
b2R1bGUiKQotICAgIGRlZiBzbXRwKHJlcXVlc3QpOgorICAgIGRlZiBzbXRwX2Nvbm5lY3Rpb24o
cmVxdWVzdCk6CiAgICAgICAgIHNlcnZlciA9IGdldGF0dHIocmVxdWVzdC5tb2R1bGUsICJzbXRw
c2VydmVyIiwgInNtdHAuZ21haWwuY29tIikKLSAgICAgICAgc210cCA9IHNtdHBsaWIuU01UUChz
ZXJ2ZXIsIDU4NywgdGltZW91dD01KQotICAgICAgICB5aWVsZCBzbXRwCi0gICAgICAgIHByaW50
ICgiZmluYWxpemluZyAlcyAoJXMpIiAlIChzbXRwLCBzZXJ2ZXIpKQotICAgICAgICBzbXRwLmNs
b3NlKCkKKyAgICAgICAgc210cF9jb25uZWN0aW9uID0gc210cGxpYi5TTVRQKHNlcnZlciwgNTg3
LCB0aW1lb3V0PTUpCisgICAgICAgIHlpZWxkIHNtdHBfY29ubmVjdGlvbgorICAgICAgICBwcmlu
dCgiZmluYWxpemluZyAlcyAoJXMpIiAlIChzbXRwX2Nvbm5lY3Rpb24sIHNlcnZlcikpCisgICAg
ICAgIHNtdHBfY29ubmVjdGlvbi5jbG9zZSgpCiAKIFdlIHVzZSB0aGUgYGByZXF1ZXN0Lm1vZHVs
ZWBgIGF0dHJpYnV0ZSB0byBvcHRpb25hbGx5IG9idGFpbiBhbgogYGBzbXRwc2VydmVyYGAgYXR0
cmlidXRlIGZyb20gdGhlIHRlc3QgbW9kdWxlLiAgSWYgd2UganVzdCBleGVjdXRlCi1hZ2Fpbiwg
bm90aGluZyBtdWNoIGhhcyBjaGFuZ2VkOjoKK2FnYWluLCBub3RoaW5nIG11Y2ggaGFzIGNoYW5n
ZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1zIC1xIC0tdGI9
bm8KICAgICBGRmZpbmFsaXppbmcgPHNtdHBsaWIuU01UUCBvYmplY3QgYXQgMHhkZWFkYmVlZj4g
KHNtdHAuZ21haWwuY29tKQpAQCAtNDU2LDIzICs0OTEsMjUgQEAgc2VydmVyIFVSTCBpbiBpdHMg
bW9kdWxlIG5hbWVzcGFjZTo6CiAKICAgICBzbXRwc2VydmVyID0gIm1haWwucHl0aG9uLm9yZyIg
ICMgd2lsbCBiZSByZWFkIGJ5IHNtdHAgZml4dHVyZQogCi0gICAgZGVmIHRlc3Rfc2hvd2hlbG8o
c210cCk6Ci0gICAgICAgIGFzc2VydCAwLCBzbXRwLmhlbG8oKQorICAgIGRlZiB0ZXN0X3Nob3do
ZWxvKHNtdHBfY29ubmVjdGlvbik6CisgICAgICAgIGFzc2VydCAwLCBzbXRwX2Nvbm5lY3Rpb24u
aGVsbygpCisKK1J1bm5pbmcgaXQ6CiAKLVJ1bm5pbmcgaXQ6OgorLi4gY29kZS1ibG9jazo6IHB5
dGVzdAogCiAgICAgJCBweXRlc3QgLXFxIC0tdGI9c2hvcnQgdGVzdF9hbm90aGVyc210cC5weQog
ICAgIEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsxMDAlXQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9zaG93aGVsbyBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCiAgICAgdGVzdF9hbm90aGVyc210cC5weTo1OiBpbiB0ZXN0X3Nob3do
ZWxvCi0gICAgICAgIGFzc2VydCAwLCBzbXRwLmhlbG8oKQorICAgICAgICBhc3NlcnQgMCwgc210
cF9jb25uZWN0aW9uLmhlbG8oKQogICAgIEUgICBBc3NlcnRpb25FcnJvcjogKDI1MCwgYidtYWls
LnB5dGhvbi5vcmcnKQogICAgIEUgICBhc3NlcnQgMAogICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gQ2FwdHVyZWQgc3Rkb3V0IHRlYXJkb3duIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
ICAgICBmaW5hbGl6aW5nIDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+IChtYWls
LnB5dGhvbi5vcmcpCiAKLXZvaWxhISBUaGUgYGBzbXRwYGAgZml4dHVyZSBmdW5jdGlvbiBwaWNr
ZWQgdXAgb3VyIG1haWwgc2VydmVyIG5hbWUKK3ZvaWxhISBUaGUgYGBzbXRwX2Nvbm5lY3Rpb25g
YCBmaXh0dXJlIGZ1bmN0aW9uIHBpY2tlZCB1cCBvdXIgbWFpbCBzZXJ2ZXIgbmFtZQogZnJvbSB0
aGUgbW9kdWxlIG5hbWVzcGFjZS4KIAogLi4gX2BmaXh0dXJlLWZhY3RvcnlgOgpAQCAtNTM1LDEz
ICs1NzIsMTMgQEAgUGFyYW1ldHJpemluZyBmaXh0dXJlcwogCiBGaXh0dXJlIGZ1bmN0aW9ucyBj
YW4gYmUgcGFyYW1ldHJpemVkIGluIHdoaWNoIGNhc2UgdGhleSB3aWxsIGJlIGNhbGxlZAogbXVs
dGlwbGUgdGltZXMsIGVhY2ggdGltZSBleGVjdXRpbmcgdGhlIHNldCBvZiBkZXBlbmRlbnQgdGVz
dHMsIGkuIGUuIHRoZQotdGVzdHMgdGhhdCBkZXBlbmQgb24gdGhpcyBmaXh0dXJlLiAgVGVzdCBm
dW5jdGlvbnMgZG8gdXN1YWxseSBub3QgbmVlZAordGVzdHMgdGhhdCBkZXBlbmQgb24gdGhpcyBm
aXh0dXJlLiAgVGVzdCBmdW5jdGlvbnMgdXN1YWxseSBkbyBub3QgbmVlZAogdG8gYmUgYXdhcmUg
b2YgdGhlaXIgcmUtcnVubmluZy4gIEZpeHR1cmUgcGFyYW1ldHJpemF0aW9uIGhlbHBzIHRvCiB3
cml0ZSBleGhhdXN0aXZlIGZ1bmN0aW9uYWwgdGVzdHMgZm9yIGNvbXBvbmVudHMgd2hpY2ggdGhl
bXNlbHZlcyBjYW4gYmUKIGNvbmZpZ3VyZWQgaW4gbXVsdGlwbGUgd2F5cy4KIAogRXh0ZW5kaW5n
IHRoZSBwcmV2aW91cyBleGFtcGxlLCB3ZSBjYW4gZmxhZyB0aGUgZml4dHVyZSB0byBjcmVhdGUg
dHdvCi1gYHNtdHBgYCBmaXh0dXJlIGluc3RhbmNlcyB3aGljaCB3aWxsIGNhdXNlIGFsbCB0ZXN0
cyB1c2luZyB0aGUgZml4dHVyZQorYGBzbXRwX2Nvbm5lY3Rpb25gYCBmaXh0dXJlIGluc3RhbmNl
cyB3aGljaCB3aWxsIGNhdXNlIGFsbCB0ZXN0cyB1c2luZyB0aGUgZml4dHVyZQogdG8gcnVuIHR3
aWNlLiAgVGhlIGZpeHR1cmUgZnVuY3Rpb24gZ2V0cyBhY2Nlc3MgdG8gZWFjaCBwYXJhbWV0ZXIK
IHRocm91Z2ggdGhlIHNwZWNpYWwgOnB5OmNsYXNzOmByZXF1ZXN0IDxGaXh0dXJlUmVxdWVzdD5g
IG9iamVjdDo6CiAKQEAgLTU1MSwyNyArNTg4LDI5IEBAIHRocm91Z2ggdGhlIHNwZWNpYWwgOnB5
OmNsYXNzOmByZXF1ZXN0IDxGaXh0dXJlUmVxdWVzdD5gIG9iamVjdDo6CiAKICAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsCiAgICAgICAgICAgICAgICAgICAgIHBhcmFtcz1bInNt
dHAuZ21haWwuY29tIiwgIm1haWwucHl0aG9uLm9yZyJdKQotICAgIGRlZiBzbXRwKHJlcXVlc3Qp
OgotICAgICAgICBzbXRwID0gc210cGxpYi5TTVRQKHJlcXVlc3QucGFyYW0sIDU4NywgdGltZW91
dD01KQotICAgICAgICB5aWVsZCBzbXRwCi0gICAgICAgIHByaW50ICgiZmluYWxpemluZyAlcyIg
JSBzbXRwKQotICAgICAgICBzbXRwLmNsb3NlKCkKKyAgICBkZWYgc210cF9jb25uZWN0aW9uKHJl
cXVlc3QpOgorICAgICAgICBzbXRwX2Nvbm5lY3Rpb24gPSBzbXRwbGliLlNNVFAocmVxdWVzdC5w
YXJhbSwgNTg3LCB0aW1lb3V0PTUpCisgICAgICAgIHlpZWxkIHNtdHBfY29ubmVjdGlvbgorICAg
ICAgICBwcmludCgiZmluYWxpemluZyAlcyIgJSBzbXRwX2Nvbm5lY3Rpb24pCisgICAgICAgIHNt
dHBfY29ubmVjdGlvbi5jbG9zZSgpCiAKIFRoZSBtYWluIGNoYW5nZSBpcyB0aGUgZGVjbGFyYXRp
b24gb2YgYGBwYXJhbXNgYCB3aXRoCiA6cHk6ZnVuYzpgQHB5dGVzdC5maXh0dXJlIDxfcHl0ZXN0
LnB5dGhvbi5maXh0dXJlPmAsIGEgbGlzdCBvZiB2YWx1ZXMKIGZvciBlYWNoIG9mIHdoaWNoIHRo
ZSBmaXh0dXJlIGZ1bmN0aW9uIHdpbGwgZXhlY3V0ZSBhbmQgY2FuIGFjY2VzcwogYSB2YWx1ZSB2
aWEgYGByZXF1ZXN0LnBhcmFtYGAuICBObyB0ZXN0IGZ1bmN0aW9uIGNvZGUgbmVlZHMgdG8gY2hh
bmdlLgotU28gbGV0J3MganVzdCBkbyBhbm90aGVyIHJ1bjo6CitTbyBsZXQncyBqdXN0IGRvIGFu
b3RoZXIgcnVuOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAkIHB5dGVzdCAtcSB0
ZXN0X21vZHVsZS5weQogICAgIEZGRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQogICAgID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KICAgICBfX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9laGxvW3NtdHAuZ21haWwu
Y29tXSBfX19fX19fX19fX19fX19fX19fX19fX19fCiAKLSAgICBzbXRwID0gPHNtdHBsaWIuU01U
UCBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICBzbXRwX2Nvbm5lY3Rpb24gPSA8c210cGxpYi5T
TVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgogCi0gICAgICAgIGRlZiB0ZXN0X2VobG8oc210cCk6
Ci0gICAgICAgICAgICByZXNwb25zZSwgbXNnID0gc210cC5laGxvKCkKKyAgICAgICAgZGVmIHRl
c3RfZWhsbyhzbXRwX2Nvbm5lY3Rpb24pOgorICAgICAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNt
dHBfY29ubmVjdGlvbi5laGxvKCkKICAgICAgICAgICAgIGFzc2VydCByZXNwb25zZSA9PSAyNTAK
ICAgICAgICAgICAgIGFzc2VydCBiInNtdHAuZ21haWwuY29tIiBpbiBtc2cKICAgICA+ICAgICAg
IGFzc2VydCAwICAjIGZvciBkZW1vIHB1cnBvc2VzCkBAIC01ODAsMTAgKzYxOSwxMCBAQCBTbyBs
ZXQncyBqdXN0IGRvIGFub3RoZXIgcnVuOjoKICAgICB0ZXN0X21vZHVsZS5weTo2OiBBc3NlcnRp
b25FcnJvcgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X25vb3Bbc210cC5nbWFp
bC5jb21dIF9fX19fX19fX19fX19fX19fX19fX19fX18KIAotICAgIHNtdHAgPSA8c210cGxpYi5T
TVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIHNtdHBfY29ubmVjdGlvbiA9IDxzbXRwbGli
LlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CiAKLSAgICAgICAgZGVmIHRlc3Rfbm9vcChzbXRw
KToKLSAgICAgICAgICAgIHJlc3BvbnNlLCBtc2cgPSBzbXRwLm5vb3AoKQorICAgICAgICBkZWYg
dGVzdF9ub29wKHNtdHBfY29ubmVjdGlvbik6CisgICAgICAgICAgICByZXNwb25zZSwgbXNnID0g
c210cF9jb25uZWN0aW9uLm5vb3AoKQogICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1
MAogICAgID4gICAgICAgYXNzZXJ0IDAgICMgZm9yIGRlbW8gcHVycG9zZXMKICAgICBFICAgICAg
IGFzc2VydCAwCkBAIC01OTEsMjMgKzYzMCwyMyBAQCBTbyBsZXQncyBqdXN0IGRvIGFub3RoZXIg
cnVuOjoKICAgICB0ZXN0X21vZHVsZS5weToxMTogQXNzZXJ0aW9uRXJyb3IKICAgICBfX19fX19f
X19fX19fX19fX19fX19fX18gdGVzdF9laGxvW21haWwucHl0aG9uLm9yZ10gX19fX19fX19fX19f
X19fX19fX19fX19fCiAKLSAgICBzbXRwID0gPHNtdHBsaWIuU01UUCBvYmplY3QgYXQgMHhkZWFk
YmVlZj4KKyAgICBzbXRwX2Nvbm5lY3Rpb24gPSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRl
YWRiZWVmPgogCi0gICAgICAgIGRlZiB0ZXN0X2VobG8oc210cCk6Ci0gICAgICAgICAgICByZXNw
b25zZSwgbXNnID0gc210cC5laGxvKCkKKyAgICAgICAgZGVmIHRlc3RfZWhsbyhzbXRwX2Nvbm5l
Y3Rpb24pOgorICAgICAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHBfY29ubmVjdGlvbi5laGxv
KCkKICAgICAgICAgICAgIGFzc2VydCByZXNwb25zZSA9PSAyNTAKICAgICA+ICAgICAgIGFzc2Vy
dCBiInNtdHAuZ21haWwuY29tIiBpbiBtc2cKLSAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBh
c3NlcnQgYidzbXRwLmdtYWlsLmNvbScgaW4gYidtYWlsLnB5dGhvbi5vcmdcblBJUEVMSU5JTkdc
blNJWkUgNTEyMDAwMDBcbkVUUk5cblNUQVJUVExTXG5BVVRIIERJR0VTVC1NRDUgTlRMTSBDUkFN
LU1ENVxuRU5IQU5DRURTVEFUVVNDT0RFU1xuOEJJVE1JTUVcbkRTTlxuU01UUFVURjgnCisgICAg
RSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0IGInc210cC5nbWFpbC5jb20nIGluIGInbWFp
bC5weXRob24ub3JnXG5QSVBFTElOSU5HXG5TSVpFIDUxMjAwMDAwXG5FVFJOXG5TVEFSVFRMU1xu
QVVUSCBESUdFU1QtTUQ1IE5UTE0gQ1JBTS1NRDVcbkVOSEFOQ0VEU1RBVFVTQ09ERVNcbjhCSVRN
SU1FXG5EU05cblNNVFBVVEY4XG5DSFVOS0lORycKIAogICAgIHRlc3RfbW9kdWxlLnB5OjU6IEFz
c2VydGlvbkVycm9yCiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3Rk
b3V0IHNldHVwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIGZpbmFsaXppbmcgPHNt
dHBsaWIuU01UUCBvYmplY3QgYXQgMHhkZWFkYmVlZj4KICAgICBfX19fX19fX19fX19fX19fX19f
X19fX18gdGVzdF9ub29wW21haWwucHl0aG9uLm9yZ10gX19fX19fX19fX19fX19fX19fX19fX19f
CiAKLSAgICBzbXRwID0gPHNtdHBsaWIuU01UUCBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICBz
bXRwX2Nvbm5lY3Rpb24gPSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgogCi0g
ICAgICAgIGRlZiB0ZXN0X25vb3Aoc210cCk6Ci0gICAgICAgICAgICByZXNwb25zZSwgbXNnID0g
c210cC5ub29wKCkKKyAgICAgICAgZGVmIHRlc3Rfbm9vcChzbXRwX2Nvbm5lY3Rpb24pOgorICAg
ICAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHBfY29ubmVjdGlvbi5ub29wKCkKICAgICAgICAg
ICAgIGFzc2VydCByZXNwb25zZSA9PSAyNTAKICAgICA+ICAgICAgIGFzc2VydCAwICAjIGZvciBk
ZW1vIHB1cnBvc2VzCiAgICAgRSAgICAgICBhc3NlcnQgMApAQCAtNjE4LDcgKzY1Nyw3IEBAIFNv
IGxldCdzIGp1c3QgZG8gYW5vdGhlciBydW46OgogICAgIDQgZmFpbGVkIGluIDAuMTIgc2Vjb25k
cwogCiBXZSBzZWUgdGhhdCBvdXIgdHdvIHRlc3QgZnVuY3Rpb25zIGVhY2ggcmFuIHR3aWNlLCBh
Z2FpbnN0IHRoZSBkaWZmZXJlbnQKLWBgc210cGBgIGluc3RhbmNlcy4gIE5vdGUgYWxzbywgdGhh
dCB3aXRoIHRoZSBgYG1haWwucHl0aG9uLm9yZ2BgCitgYHNtdHBfY29ubmVjdGlvbmBgIGluc3Rh
bmNlcy4gIE5vdGUgYWxzbywgdGhhdCB3aXRoIHRoZSBgYG1haWwucHl0aG9uLm9yZ2BgCiBjb25u
ZWN0aW9uIHRoZSBzZWNvbmQgdGVzdCBmYWlscyBpbiBgYHRlc3RfZWhsb2BgIGJlY2F1c2UgYQog
ZGlmZmVyZW50IHNlcnZlciBzdHJpbmcgaXMgZXhwZWN0ZWQgdGhhbiB3aGF0IGFycml2ZWQuCiAK
QEAgLTY2MywyNiArNzAyLDI5IEBAIGEgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBjYWxsZWQgd2l0
aCB0aGUgZml4dHVyZSB2YWx1ZSBhbmQgdGhlbgogaGFzIHRvIHJldHVybiBhIHN0cmluZyB0byB1
c2UuICBJbiB0aGUgbGF0dGVyIGNhc2UgaWYgdGhlIGZ1bmN0aW9uCiByZXR1cm4gYGBOb25lYGAg
dGhlbiBweXRlc3QncyBhdXRvLWdlbmVyYXRlZCBJRCB3aWxsIGJlIHVzZWQuCiAKLVJ1bm5pbmcg
dGhlIGFib3ZlIHRlc3RzIHJlc3VsdHMgaW4gdGhlIGZvbGxvd2luZyB0ZXN0IElEcyBiZWluZyB1
c2VkOjoKK1J1bm5pbmcgdGhlIGFib3ZlIHRlc3RzIHJlc3VsdHMgaW4gdGhlIGZvbGxvd2luZyB0
ZXN0IElEcyBiZWluZyB1c2VkOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICQgcHl0
ZXN0IC0tY29sbGVjdC1vbmx5CiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBz
ZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICBwbGF0Zm9ybSBs
aW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngu
eQotICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgIHBsYXRmb3JtIGxp
bnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55
CisgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUgogICAgY29sbGVjdGVkIDEwIGl0ZW1zCi0gICA8TW9kdWxlICd0ZXN0
X2Fub3RoZXJzbXRwLnB5Jz4KLSAgICAgPEZ1bmN0aW9uICd0ZXN0X3Nob3doZWxvW3NtdHAuZ21h
aWwuY29tXSc+Ci0gICAgIDxGdW5jdGlvbiAndGVzdF9zaG93aGVsb1ttYWlsLnB5dGhvbi5vcmdd
Jz4KLSAgIDxNb2R1bGUgJ3Rlc3RfaWRzLnB5Jz4KLSAgICAgPEZ1bmN0aW9uICd0ZXN0X2Fbc3Bh
bV0nPgotICAgICA8RnVuY3Rpb24gJ3Rlc3RfYVtoYW1dJz4KLSAgICAgPEZ1bmN0aW9uICd0ZXN0
X2JbZWdnc10nPgotICAgICA8RnVuY3Rpb24gJ3Rlc3RfYlsxXSc+Ci0gICA8TW9kdWxlICd0ZXN0
X21vZHVsZS5weSc+Ci0gICAgIDxGdW5jdGlvbiAndGVzdF9laGxvW3NtdHAuZ21haWwuY29tXSc+
Ci0gICAgIDxGdW5jdGlvbiAndGVzdF9ub29wW3NtdHAuZ21haWwuY29tXSc+Ci0gICAgIDxGdW5j
dGlvbiAndGVzdF9laGxvW21haWwucHl0aG9uLm9yZ10nPgotICAgICA8RnVuY3Rpb24gJ3Rlc3Rf
bm9vcFttYWlsLnB5dGhvbi5vcmddJz4KKyAgIDxNb2R1bGUgdGVzdF9hbm90aGVyc210cC5weT4K
KyAgICAgPEZ1bmN0aW9uIHRlc3Rfc2hvd2hlbG9bc210cC5nbWFpbC5jb21dPgorICAgICA8RnVu
Y3Rpb24gdGVzdF9zaG93aGVsb1ttYWlsLnB5dGhvbi5vcmddPgorICAgPE1vZHVsZSB0ZXN0X2lk
cy5weT4KKyAgICAgPEZ1bmN0aW9uIHRlc3RfYVtzcGFtXT4KKyAgICAgPEZ1bmN0aW9uIHRlc3Rf
YVtoYW1dPgorICAgICA8RnVuY3Rpb24gdGVzdF9iW2VnZ3NdPgorICAgICA8RnVuY3Rpb24gdGVz
dF9iWzFdPgorICAgPE1vZHVsZSB0ZXN0X21vZHVsZS5weT4KKyAgICAgPEZ1bmN0aW9uIHRlc3Rf
ZWhsb1tzbXRwLmdtYWlsLmNvbV0+CisgICAgIDxGdW5jdGlvbiB0ZXN0X25vb3Bbc210cC5nbWFp
bC5jb21dPgorICAgICA8RnVuY3Rpb24gdGVzdF9laGxvW21haWwucHl0aG9uLm9yZ10+CisgICAg
IDxGdW5jdGlvbiB0ZXN0X25vb3BbbWFpbC5weXRob24ub3JnXT4KIAogICAgPT09PT09PT09PT09
PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09
PT09PT09PQogCkBAIC03MDUsMTMgKzc0NywxNSBAQCBFeGFtcGxlOjoKICAgICBkZWYgdGVzdF9k
YXRhKGRhdGFfc2V0KToKICAgICAgICAgcGFzcwogCi1SdW5uaW5nIHRoaXMgdGVzdCB3aWxsICpz
a2lwKiB0aGUgaW52b2NhdGlvbiBvZiBgYGRhdGFfc2V0YGAgd2l0aCB2YWx1ZSBgYDJgYDo6CitS
dW5uaW5nIHRoaXMgdGVzdCB3aWxsICpza2lwKiB0aGUgaW52b2NhdGlvbiBvZiBgYGRhdGFfc2V0
YGAgd2l0aCB2YWx1ZSBgYDJgYDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBw
eXRlc3QgdGVzdF9maXh0dXJlX21hcmtzLnB5IC12CiAgICAgPT09PT09PT09PT09PT09PT09PT09
PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
ICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngu
eSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24zLjUKLSAgICBjYWNo
ZWRpcjogLnB5dGVzdF9jYWNoZQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZp
bGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5
LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbgorICAgIGNh
Y2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VO
RE9DX1RNUERJUgogICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCAzIGl0ZW1zCiAKICAgICB0
ZXN0X2ZpeHR1cmVfbWFya3MucHk6OnRlc3RfZGF0YVswXSBQQVNTRUQgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbIDMzJV0KQEAgLTczMCw0NiArNzc0LDQ4IEBAIGNhbiB1c2Ugb3RoZXIgZml4
dHVyZXMgdGhlbXNlbHZlcy4gIFRoaXMgY29udHJpYnV0ZXMgdG8gYSBtb2R1bGFyIGRlc2lnbgog
b2YgeW91ciBmaXh0dXJlcyBhbmQgYWxsb3dzIHJlLXVzZSBvZiBmcmFtZXdvcmstc3BlY2lmaWMg
Zml4dHVyZXMgYWNyb3NzCiBtYW55IHByb2plY3RzLiAgQXMgYSBzaW1wbGUgZXhhbXBsZSwgd2Ug
Y2FuIGV4dGVuZCB0aGUgcHJldmlvdXMgZXhhbXBsZQogYW5kIGluc3RhbnRpYXRlIGFuIG9iamVj
dCBgYGFwcGBgIHdoZXJlIHdlIHN0aWNrIHRoZSBhbHJlYWR5IGRlZmluZWQKLWBgc210cGBgIHJl
c291cmNlIGludG8gaXQ6OgorYGBzbXRwX2Nvbm5lY3Rpb25gYCByZXNvdXJjZSBpbnRvIGl0OjoK
IAogICAgICMgY29udGVudCBvZiB0ZXN0X2FwcHNldHVwLnB5CiAKICAgICBpbXBvcnQgcHl0ZXN0
CiAKICAgICBjbGFzcyBBcHAob2JqZWN0KToKLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNt
dHApOgotICAgICAgICAgICAgc2VsZi5zbXRwID0gc210cAorICAgICAgICBkZWYgX19pbml0X18o
c2VsZiwgc210cF9jb25uZWN0aW9uKToKKyAgICAgICAgICAgIHNlbGYuc210cF9jb25uZWN0aW9u
ID0gc210cF9jb25uZWN0aW9uCiAKICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIp
Ci0gICAgZGVmIGFwcChzbXRwKToKLSAgICAgICAgcmV0dXJuIEFwcChzbXRwKQorICAgIGRlZiBh
cHAoc210cF9jb25uZWN0aW9uKToKKyAgICAgICAgcmV0dXJuIEFwcChzbXRwX2Nvbm5lY3Rpb24p
CiAKLSAgICBkZWYgdGVzdF9zbXRwX2V4aXN0cyhhcHApOgotICAgICAgICBhc3NlcnQgYXBwLnNt
dHAKKyAgICBkZWYgdGVzdF9zbXRwX2Nvbm5lY3Rpb25fZXhpc3RzKGFwcCk6CisgICAgICAgIGFz
c2VydCBhcHAuc210cF9jb25uZWN0aW9uCiAKIEhlcmUgd2UgZGVjbGFyZSBhbiBgYGFwcGBgIGZp
eHR1cmUgd2hpY2ggcmVjZWl2ZXMgdGhlIHByZXZpb3VzbHkgZGVmaW5lZAotYGBzbXRwYGAgZml4
dHVyZSBhbmQgaW5zdGFudGlhdGVzIGFuIGBgQXBwYGAgb2JqZWN0IHdpdGggaXQuICBMZXQncyBy
dW4gaXQ6OgorYGBzbXRwX2Nvbm5lY3Rpb25gYCBmaXh0dXJlIGFuZCBpbnN0YW50aWF0ZXMgYW4g
YGBBcHBgYCBvYmplY3Qgd2l0aCBpdC4gIExldCdzIHJ1biBpdDoKKworLi4gY29kZS1ibG9jazo6
IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXYgdGVzdF9hcHBzZXR1cC5weQogICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0z
LngueSwgcHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9u
My41Ci0gICAgY2FjaGVkaXI6IC5weXRlc3RfY2FjaGUKLSAgICByb290ZGlyOiAkUkVHRU5ET0Nf
VE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0
ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9w
eXRob24KKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJv
b3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgMiBp
dGVtcwogCi0gICAgdGVzdF9hcHBzZXR1cC5weTo6dGVzdF9zbXRwX2V4aXN0c1tzbXRwLmdtYWls
LmNvbV0gUEFTU0VEICAgICAgICAgICAgWyA1MCVdCi0gICAgdGVzdF9hcHBzZXR1cC5weTo6dGVz
dF9zbXRwX2V4aXN0c1ttYWlsLnB5dGhvbi5vcmddIFBBU1NFRCAgICAgICAgICAgWzEwMCVdCisg
ICAgdGVzdF9hcHBzZXR1cC5weTo6dGVzdF9zbXRwX2Nvbm5lY3Rpb25fZXhpc3RzW3NtdHAuZ21h
aWwuY29tXSBQQVNTRUQgWyA1MCVdCisgICAgdGVzdF9hcHBzZXR1cC5weTo6dGVzdF9zbXRwX2Nv
bm5lY3Rpb25fZXhpc3RzW21haWwucHl0aG9uLm9yZ10gUEFTU0VEIFsxMDAlXQogCiAgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PSAyIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09
PT09PT09PT09PT09PT09PQogCi1EdWUgdG8gdGhlIHBhcmFtZXRyaXphdGlvbiBvZiBgYHNtdHBg
YCB0aGUgdGVzdCB3aWxsIHJ1biB0d2ljZSB3aXRoIHR3bworRHVlIHRvIHRoZSBwYXJhbWV0cml6
YXRpb24gb2YgYGBzbXRwX2Nvbm5lY3Rpb25gYCwgdGhlIHRlc3Qgd2lsbCBydW4gdHdpY2Ugd2l0
aCB0d28KIGRpZmZlcmVudCBgYEFwcGBgIGluc3RhbmNlcyBhbmQgcmVzcGVjdGl2ZSBzbXRwIHNl
cnZlcnMuICBUaGVyZSBpcyBubwotbmVlZCBmb3IgdGhlIGBgYXBwYGAgZml4dHVyZSB0byBiZSBh
d2FyZSBvZiB0aGUgYGBzbXRwYGAgcGFyYW1ldHJpemF0aW9uCi1hcyBweXRlc3Qgd2lsbCBmdWxs
eSBhbmFseXNlIHRoZSBmaXh0dXJlIGRlcGVuZGVuY3kgZ3JhcGguCituZWVkIGZvciB0aGUgYGBh
cHBgYCBmaXh0dXJlIHRvIGJlIGF3YXJlIG9mIHRoZSBgYHNtdHBfY29ubmVjdGlvbmBgCitwYXJh
bWV0cml6YXRpb24gYmVjYXVzZSBweXRlc3Qgd2lsbCBmdWxseSBhbmFseXNlIHRoZSBmaXh0dXJl
IGRlcGVuZGVuY3kgZ3JhcGguCiAKLU5vdGUsIHRoYXQgdGhlIGBgYXBwYGAgZml4dHVyZSBoYXMg
YSBzY29wZSBvZiBgYG1vZHVsZWBgIGFuZCB1c2VzIGEKLW1vZHVsZS1zY29wZWQgYGBzbXRwYGAg
Zml4dHVyZS4gIFRoZSBleGFtcGxlIHdvdWxkIHN0aWxsIHdvcmsgaWYgYGBzbXRwYGAKLXdhcyBj
YWNoZWQgb24gYSBgYHNlc3Npb25gYCBzY29wZTogaXQgaXMgZmluZSBmb3IgZml4dHVyZXMgdG8g
dXNlCitOb3RlIHRoYXQgdGhlIGBgYXBwYGAgZml4dHVyZSBoYXMgYSBzY29wZSBvZiBgYG1vZHVs
ZWBgIGFuZCB1c2VzIGEKK21vZHVsZS1zY29wZWQgYGBzbXRwX2Nvbm5lY3Rpb25gYCBmaXh0dXJl
LiAgVGhlIGV4YW1wbGUgd291bGQgc3RpbGwgd29yayBpZgorYGBzbXRwX2Nvbm5lY3Rpb25gYCB3
YXMgY2FjaGVkIG9uIGEgYGBzZXNzaW9uYGAgc2NvcGU6IGl0IGlzIGZpbmUgZm9yIGZpeHR1cmVz
IHRvIHVzZQogImJyb2FkZXIiIHNjb3BlZCBmaXh0dXJlcyBidXQgbm90IHRoZSBvdGhlciB3YXkg
cm91bmQ6CiBBIHNlc3Npb24tc2NvcGVkIGZpeHR1cmUgY291bGQgbm90IHVzZSBhIG1vZHVsZS1z
Y29wZWQgb25lIGluIGEKIG1lYW5pbmdmdWwgd2F5LgpAQCAtNzg4LDcgKzgzNCw3IEBAIGZpcnN0
IGV4ZWN1dGUgd2l0aCBvbmUgaW5zdGFuY2UgYW5kIHRoZW4gZmluYWxpemVycyBhcmUgY2FsbGVk
CiBiZWZvcmUgdGhlIG5leHQgZml4dHVyZSBpbnN0YW5jZSBpcyBjcmVhdGVkLiAgQW1vbmcgb3Ro
ZXIgdGhpbmdzLAogdGhpcyBlYXNlcyB0ZXN0aW5nIG9mIGFwcGxpY2F0aW9ucyB3aGljaCBjcmVh
dGUgYW5kIHVzZSBnbG9iYWwgc3RhdGUuCiAKLVRoZSBmb2xsb3dpbmcgZXhhbXBsZSB1c2VzIHR3
byBwYXJhbWV0cml6ZWQgZml4dHVyZSwgb25lIG9mIHdoaWNoIGlzCitUaGUgZm9sbG93aW5nIGV4
YW1wbGUgdXNlcyB0d28gcGFyYW1ldHJpemVkIGZpeHR1cmVzLCBvbmUgb2Ygd2hpY2ggaXMKIHNj
b3BlZCBvbiBhIHBlci1tb2R1bGUgYmFzaXMsIGFuZCBhbGwgdGhlIGZ1bmN0aW9ucyBwZXJmb3Jt
IGBgcHJpbnRgYCBjYWxscwogdG8gc2hvdyB0aGUgc2V0dXAvdGVhcmRvd24gZmxvdzo6CiAKQEAg
LTc5OCwzMiArODQ0LDM0IEBAIHRvIHNob3cgdGhlIHNldHVwL3RlYXJkb3duIGZsb3c6OgogICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgcGFyYW1zPVsibW9kMSIsICJtb2QyIl0p
CiAgICAgZGVmIG1vZGFyZyhyZXF1ZXN0KToKICAgICAgICAgcGFyYW0gPSByZXF1ZXN0LnBhcmFt
Ci0gICAgICAgIHByaW50ICgiICBTRVRVUCBtb2RhcmcgJXMiICUgcGFyYW0pCisgICAgICAgIHBy
aW50KCIgIFNFVFVQIG1vZGFyZyAlcyIgJSBwYXJhbSkKICAgICAgICAgeWllbGQgcGFyYW0KLSAg
ICAgICAgcHJpbnQgKCIgIFRFQVJET1dOIG1vZGFyZyAlcyIgJSBwYXJhbSkKKyAgICAgICAgcHJp
bnQoIiAgVEVBUkRPV04gbW9kYXJnICVzIiAlIHBhcmFtKQogCiAgICAgQHB5dGVzdC5maXh0dXJl
KHNjb3BlPSJmdW5jdGlvbiIsIHBhcmFtcz1bMSwyXSkKICAgICBkZWYgb3RoZXJhcmcocmVxdWVz
dCk6CiAgICAgICAgIHBhcmFtID0gcmVxdWVzdC5wYXJhbQotICAgICAgICBwcmludCAoIiAgU0VU
VVAgb3RoZXJhcmcgJXMiICUgcGFyYW0pCisgICAgICAgIHByaW50KCIgIFNFVFVQIG90aGVyYXJn
ICVzIiAlIHBhcmFtKQogICAgICAgICB5aWVsZCBwYXJhbQotICAgICAgICBwcmludCAoIiAgVEVB
UkRPV04gb3RoZXJhcmcgJXMiICUgcGFyYW0pCisgICAgICAgIHByaW50KCIgIFRFQVJET1dOIG90
aGVyYXJnICVzIiAlIHBhcmFtKQogCiAgICAgZGVmIHRlc3RfMChvdGhlcmFyZyk6Ci0gICAgICAg
IHByaW50ICgiICBSVU4gdGVzdDAgd2l0aCBvdGhlcmFyZyAlcyIgJSBvdGhlcmFyZykKKyAgICAg
ICAgcHJpbnQoIiAgUlVOIHRlc3QwIHdpdGggb3RoZXJhcmcgJXMiICUgb3RoZXJhcmcpCiAgICAg
ZGVmIHRlc3RfMShtb2RhcmcpOgotICAgICAgICBwcmludCAoIiAgUlVOIHRlc3QxIHdpdGggbW9k
YXJnICVzIiAlIG1vZGFyZykKKyAgICAgICAgcHJpbnQoIiAgUlVOIHRlc3QxIHdpdGggbW9kYXJn
ICVzIiAlIG1vZGFyZykKICAgICBkZWYgdGVzdF8yKG90aGVyYXJnLCBtb2RhcmcpOgotICAgICAg
ICBwcmludCAoIiAgUlVOIHRlc3QyIHdpdGggb3RoZXJhcmcgJXMgYW5kIG1vZGFyZyAlcyIgJSAo
b3RoZXJhcmcsIG1vZGFyZykpCisgICAgICAgIHByaW50KCIgIFJVTiB0ZXN0MiB3aXRoIG90aGVy
YXJnICVzIGFuZCBtb2RhcmcgJXMiICUgKG90aGVyYXJnLCBtb2RhcmcpKQorCiAKK0xldCdzIHJ1
biB0aGUgdGVzdHMgaW4gdmVyYm9zZSBtb2RlIGFuZCB3aXRoIGxvb2tpbmcgYXQgdGhlIHByaW50
LW91dHB1dDoKIAotTGV0J3MgcnVuIHRoZSB0ZXN0cyBpbiB2ZXJib3NlIG1vZGUgYW5kIHdpdGgg
bG9va2luZyBhdCB0aGUgcHJpbnQtb3V0cHV0OjoKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAog
ICAgICQgcHl0ZXN0IC12IC1zIHRlc3RfbW9kdWxlLnB5CiAgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0x
LngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24zLjUKLSAgICBj
YWNoZWRpcjogLnB5dGVzdF9jYWNoZQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGlu
aWZpbGU6CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54Lnks
IHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbgorICAg
IGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJF
R0VORE9DX1RNUERJUgogICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA4IGl0ZW1zCiAKICAg
ICB0ZXN0X21vZHVsZS5weTo6dGVzdF8wWzFdICAgU0VUVVAgb3RoZXJhcmcgMQpAQCAtOTE5LDcg
Kzk2Nyw5IEBAIGFuZCBkZWNsYXJlIGl0cyB1c2UgaW4gYSB0ZXN0IG1vZHVsZSB2aWEgYSBgYHVz
ZWZpeHR1cmVzYGAgbWFya2VyOjoKIER1ZSB0byB0aGUgYGB1c2VmaXh0dXJlc2BgIG1hcmtlciwg
dGhlIGBgY2xlYW5kaXJgYCBmaXh0dXJlCiB3aWxsIGJlIHJlcXVpcmVkIGZvciB0aGUgZXhlY3V0
aW9uIG9mIGVhY2ggdGVzdCBtZXRob2QsIGp1c3QgYXMgaWYKIHlvdSBzcGVjaWZpZWQgYSAiY2xl
YW5kaXIiIGZ1bmN0aW9uIGFyZ3VtZW50IHRvIGVhY2ggb2YgdGhlbS4gIExldCdzIHJ1biBpdAot
dG8gdmVyaWZ5IG91ciBmaXh0dXJlIGlzIGFjdGl2YXRlZCBhbmQgdGhlIHRlc3RzIHBhc3M6Ogor
dG8gdmVyaWZ5IG91ciBmaXh0dXJlIGlzIGFjdGl2YXRlZCBhbmQgdGhlIHRlc3RzIHBhc3M6CisK
Ky4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xCiAgICAgLi4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgWzEwMCVdCkBAIC05NDMsNyArOTkzLDcgQEAgYSBnZW5lcmljIGZlYXR1cmUgb2YgdGhlIG1h
cmsgbWVjaGFuaXNtOgogTm90ZSB0aGF0IHRoZSBhc3NpZ25lZCB2YXJpYWJsZSAqbXVzdCogYmUg
Y2FsbGVkIGBgcHl0ZXN0bWFya2BgLCBhc3NpZ25pbmcgZS5nLgogYGBmb29tYXJrYGAgd2lsbCBu
b3QgYWN0aXZhdGUgdGhlIGZpeHR1cmVzLgogCi1MYXN0bHkgeW91IGNhbiBwdXQgZml4dHVyZXMg
cmVxdWlyZWQgYnkgYWxsIHRlc3RzIGluIHlvdXIgcHJvamVjdAorSXQgaXMgYWxzbyBwb3NzaWJs
ZSB0byBwdXQgZml4dHVyZXMgcmVxdWlyZWQgYnkgYWxsIHRlc3RzIGluIHlvdXIgcHJvamVjdAog
aW50byBhbiBpbmktZmlsZToKIAogLi4gY29kZS1ibG9jazo6IGluaQpAQCAtOTUzLDYgKzEwMDMs
MjIgQEAgaW50byBhbiBpbmktZmlsZToKICAgICB1c2VmaXh0dXJlcyA9IGNsZWFuZGlyCiAKIAor
Li4gd2FybmluZzo6CisKKyAgICBOb3RlIHRoaXMgbWFyayBoYXMgbm8gZWZmZWN0IGluICoqZml4
dHVyZSBmdW5jdGlvbnMqKi4gRm9yIGV4YW1wbGUsCisgICAgdGhpcyAqKndpbGwgbm90IHdvcmsg
YXMgZXhwZWN0ZWQqKjoKKworICAgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICBA
cHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoIm15X290aGVyX2ZpeHR1cmUiKQorICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIG15X2ZpeHR1cmVfdGhhdF9zYWRseV93b250X3VzZV9t
eV9vdGhlcl9maXh0dXJlKCk6CisgICAgICAgICAgICAuLi4KKworICAgIEN1cnJlbnRseSB0aGlz
IHdpbGwgbm90IGdlbmVyYXRlIGFueSBlcnJvciBvciB3YXJuaW5nLCBidXQgdGhpcyBpcyBpbnRl
bmRlZAorICAgIHRvIGJlIGhhbmRsZWQgYnkgYCMzNjY0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM2NjQ+YF8uCisKKwogLi4gX2BhdXRvdXNlYDoKIC4uIF9g
YXV0b3VzZSBmaXh0dXJlc2A6CiAKQEAgLTEwMDIsNyArMTA2OCw5IEBAIHdoaWNoIGltcGxpZXMg
dGhhdCBhbGwgdGVzdCBtZXRob2RzIGluIHRoZSBjbGFzcyB3aWxsIHVzZSB0aGlzIGZpeHR1cmUK
IHdpdGhvdXQgYSBuZWVkIHRvIHN0YXRlIGl0IGluIHRoZSB0ZXN0IGZ1bmN0aW9uIHNpZ25hdHVy
ZSBvciB3aXRoIGEKIGNsYXNzLWxldmVsIGBgdXNlZml4dHVyZXNgYCBkZWNvcmF0b3IuCiAKLUlm
IHdlIHJ1biBpdCwgd2UgZ2V0IHR3byBwYXNzaW5nIHRlc3RzOjoKK0lmIHdlIHJ1biBpdCwgd2Ug
Z2V0IHR3byBwYXNzaW5nIHRlc3RzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAk
IHB5dGVzdCAtcQogICAgIC4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpAQCAtMTExMSw2ICsxMTc5LDggQEAg
R2l2ZW4gdGhlIHRlc3RzIGZpbGUgc3RydWN0dXJlIGlzOgogCiAgICAgICAgIGNvbmZ0ZXN0LnB5
CiAgICAgICAgICAgICAjIGNvbnRlbnQgb2YgdGVzdHMvY29uZnRlc3QucHkKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKwogICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCiAgICAgICAgICAg
ICBkZWYgdXNlcm5hbWUoKToKICAgICAgICAgICAgICAgICByZXR1cm4gJ3VzZXJuYW1lJwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ZsYWt5LnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9mbGFreS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUzNDAzMTZlYTA3MjhjNWZhNjk4N2IzMjg2MmExZTUx
MTlmZmU3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9mbGFreS5yc3QK
QEAgLTAsMCArMSwxMjUgQEAKKworRmxha3kgdGVzdHMKKy0tLS0tLS0tLS0tCisKK0EgImZsYWt5
IiB0ZXN0IGlzIG9uZSB0aGF0IGV4aGliaXRzIGludGVybWl0dGVudCBvciBzcG9yYWRpYyBmYWls
dXJlLCB0aGF0IHNlZW1zIHRvIGhhdmUgbm9uLWRldGVybWluaXN0aWMgYmVoYXZpb3VyLiBTb21l
dGltZXMgaXQgcGFzc2VzLCBzb21ldGltZXMgaXQgZmFpbHMsIGFuZCBpdCdzIG5vdCBjbGVhciB3
aHkuIFRoaXMgcGFnZSBkaXNjdXNzZXMgcHl0ZXN0IGZlYXR1cmVzIHRoYXQgY2FuIGhlbHAgYW5k
IG90aGVyIGdlbmVyYWwgc3RyYXRlZ2llcyBmb3IgaWRlbnRpZnlpbmcsIGZpeGluZyBvciBtaXRp
Z2F0aW5nIHRoZW0uCisKK1doeSBmbGFreSB0ZXN0cyBhcmUgYSBwcm9ibGVtCiteXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXgorCitGbGFreSB0ZXN0cyBhcmUgcGFydGljdWxhcmx5IHRyb3Vi
bGVzb21lIHdoZW4gYSBjb250aW51b3VzIGludGVncmF0aW9uIChDSSkgc2VydmVyIGlzIGJlaW5n
IHVzZWQsIHNvIHRoYXQgYWxsIHRlc3RzIG11c3QgcGFzcyBiZWZvcmUgYSBuZXcgY29kZSBjaGFu
Z2UgY2FuIGJlIG1lcmdlZC4gSWYgdGhlIHRlc3QgcmVzdWx0IGlzIG5vdCBhIHJlbGlhYmxlIHNp
Z25hbCAtLSB0aGF0IGEgdGVzdCBmYWlsdXJlIG1lYW5zIHRoZSBjb2RlIGNoYW5nZSBicm9rZSB0
aGUgdGVzdCAtLSBkZXZlbG9wZXJzIGNhbiBiZWNvbWUgbWlzdHJ1c3RmdWwgb2YgdGhlIHRlc3Qg
cmVzdWx0cywgd2hpY2ggY2FuIGxlYWQgdG8gb3Zlcmxvb2tpbmcgZ2VudWluZSBmYWlsdXJlcy4g
SXQgaXMgYWxzbyBhIHNvdXJjZSBvZiB3YXN0ZWQgdGltZSBhcyBkZXZlbG9wZXJzIG11c3QgcmUt
cnVuIHRlc3Qgc3VpdGVzIGFuZCBpbnZlc3RpZ2F0ZSBzcHVyaW91cyBmYWlsdXJlcy4KKworCitQ
b3RlbnRpYWwgcm9vdCBjYXVzZXMKK15eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitTeXN0ZW0gc3Rh
dGUKK35+fn5+fn5+fn5+fgorCitCcm9hZGx5IHNwZWFraW5nLCBhIGZsYWt5IHRlc3QgaW5kaWNh
dGVzIHRoYXQgdGhlIHRlc3QgcmVsaWVzIG9uIHNvbWUgc3lzdGVtIHN0YXRlIHRoYXQgaXMgbm90
IGJlaW5nIGFwcHJvcHJpYXRlbHkgY29udHJvbGxlZCAtIHRoZSB0ZXN0IGVudmlyb25tZW50IGlz
IG5vdCBzdWZmaWNpZW50bHkgaXNvbGF0ZWQuIEhpZ2hlciBsZXZlbCB0ZXN0cyBhcmUgbW9yZSBs
aWtlbHkgdG8gYmUgZmxha3kgYXMgdGhleSByZWx5IG9uIG1vcmUgc3RhdGUuCisKK0ZsYWt5IHRl
c3RzIHNvbWV0aW1lcyBhcHBlYXIgd2hlbiBhIHRlc3Qgc3VpdGUgaXMgcnVuIGluIHBhcmFsbGVs
IChzdWNoIGFzIHVzZSBvZiBweXRlc3QteGRpc3QpLiBUaGlzIGNhbiBpbmRpY2F0ZSBhIHRlc3Qg
aXMgcmVsaWFudCBvbiB0ZXN0IG9yZGVyaW5nLgorCistICBQZXJoYXBzIGEgZGlmZmVyZW50IHRl
c3QgaXMgZmFpbGluZyB0byBjbGVhbiB1cCBhZnRlciBpdHNlbGYgYW5kIGxlYXZpbmcgYmVoaW5k
IGRhdGEgd2hpY2ggY2F1c2VzIHRoZSBmbGFreSB0ZXN0IHRvIGZhaWwuCistIFRoZSBmbGFreSB0
ZXN0IGlzIHJlbGlhbnQgb24gZGF0YSBmcm9tIGEgcHJldmlvdXMgdGVzdCB0aGF0IGRvZXNuJ3Qg
Y2xlYW4gdXAgYWZ0ZXIgaXRzZWxmLCBhbmQgaW4gcGFyYWxsZWwgcnVucyB0aGF0IHByZXZpb3Vz
IHRlc3QgaXMgbm90IGFsd2F5cyBwcmVzZW50CistIFRlc3RzIHRoYXQgbW9kaWZ5IGdsb2JhbCBz
dGF0ZSB0eXBpY2FsbHkgY2Fubm90IGJlIHJ1biBpbiBwYXJhbGxlbC4KKworCitPdmVybHkgc3Ry
aWN0IGFzc2VydGlvbgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworT3Zlcmx5IHN0cmljdCBh
c3NlcnRpb25zIGNhbiBjYXVzZSBwcm9ibGVtcyB3aXRoIGZsb2F0aW5nIHBvaW50IGNvbXBhcmlz
b24gYXMgd2VsbCBhcyB0aW1pbmcgaXNzdWVzLiBgcHl0ZXN0LmFwcHJveCA8aHR0cHM6Ly9kb2Nz
LnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3JlZmVyZW5jZS5odG1sI3B5dGVzdC1hcHByb3g+YF8gaXMg
dXNlZnVsIGhlcmUuCisKKworUHl0ZXN0IGZlYXR1cmVzCiteXl5eXl5eXl5eXl5eXl4KKworWGZh
aWwgc3RyaWN0Cit+fn5+fn5+fn5+fn4KKworOnJlZjpgcHl0ZXN0Lm1hcmsueGZhaWwgcmVmYCB3
aXRoIGBgc3RyaWN0PUZhbHNlYGAgY2FuIGJlIHVzZWQgdG8gbWFyayBhIHRlc3Qgc28gdGhhdCBp
dHMgZmFpbHVyZSBkb2VzIG5vdCBjYXVzZSB0aGUgd2hvbGUgYnVpbGQgdG8gYnJlYWsuIFRoaXMg
Y291bGQgYmUgY29uc2lkZXJlZCBsaWtlIGEgbWFudWFsIHF1YXJhbnRpbmUsIGFuZCBpcyByYXRo
ZXIgZGFuZ2Vyb3VzIHRvIHVzZSBwZXJtYW5lbnRseS4KKworCitQWVRFU1RfQ1VSUkVOVF9URVNU
Cit+fn5+fn5+fn5+fn5+fn5+fn5+CisKKzpyZWY6YHB5dGVzdCBjdXJyZW50IHRlc3QgZW52YCBt
YXkgYmUgdXNlZnVsIGZvciBmaWd1cmluZyBvdXQgIndoaWNoIHRlc3QgZ290IHN0dWNrIi4KKwor
CitQbHVnaW5zCit+fn5+fn5+CisKK1JlcnVubmluZyBhbnkgZmFpbGVkIHRlc3RzIGNhbiBtaXRp
Z2F0ZSB0aGUgbmVnYXRpdmUgZWZmZWN0cyBvZiBmbGFreSB0ZXN0cyBieSBnaXZpbmcgdGhlbSBh
ZGRpdGlvbmFsIGNoYW5jZXMgdG8gcGFzcywgc28gdGhhdCB0aGUgb3ZlcmFsbCBidWlsZCBkb2Vz
IG5vdCBmYWlsLiBTZXZlcmFsIHB5dGVzdCBwbHVnaW5zIHN1cHBvcnQgdGhpczoKKworKiBgZmxh
a3kgPGh0dHBzOi8vZ2l0aHViLmNvbS9ib3gvZmxha3k+YF8KKyogYHB5dGVzdC1mbGFrZWZpbmRl
ciA8aHR0cHM6Ly9naXRodWIuY29tL2Ryb3Bib3gvcHl0ZXN0LWZsYWtlZmluZGVyPmBfIC0gYGJs
b2cgcG9zdCA8aHR0cHM6Ly9ibG9ncy5kcm9wYm94LmNvbS90ZWNoLzIwMTYvMDMvb3Blbi1zb3Vy
Y2luZy1weXRlc3QtdG9vbHMvPmBfCisqIGBweXRlc3QtcmVydW5mYWlsdXJlcyA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0LXJlcnVuZmFpbHVyZXM+YF8KKyogYHB5dGVzdC1y
ZXBsYXkgPGh0dHBzOi8vZ2l0aHViLmNvbS9FU1NTL3B5dGVzdC1yZXBsYXk+YF86IFRoaXMgcGx1
Z2luIGhlbHBzIHRvIHJlcHJvZHVjZSBsb2NhbGx5IGNyYXNoZXMgb3IgZmxha3kgdGVzdHMgb2Jz
ZXJ2ZWQgZHVyaW5nIENJIHJ1bnMuCisKK1BsdWdpbnMgdG8gZGVsaWJlcmF0ZWx5IHJhbmRvbWl6
ZSB0ZXN0cyBjYW4gaGVscCBleHBvc2UgdGVzdHMgd2l0aCBzdGF0ZSBwcm9ibGVtczoKKworKiBg
cHl0ZXN0LXJhbmRvbS1vcmRlciA8aHR0cHM6Ly9naXRodWIuY29tL2piYXNrby9weXRlc3QtcmFu
ZG9tLW9yZGVyPmBfCisqIGBweXRlc3QtcmFuZG9tbHkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC1yYW5kb21seT5gXworCisKK090aGVyIGdlbmVyYWwgc3RyYXRlZ2llcwor
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK1NwbGl0IHVwIHRlc3Qgc3VpdGVzCit+fn5+fn5+
fn5+fn5+fn5+fn5+fgorCitJdCBjYW4gYmUgY29tbW9uIHRvIHNwbGl0IGEgc2luZ2xlIHRlc3Qg
c3VpdGUgaW50byB0d28sIHN1Y2ggYXMgdW5pdCB2cyBpbnRlZ3JhdGlvbiwgYW5kIG9ubHkgdXNl
IHRoZSB1bml0IHRlc3Qgc3VpdGUgYXMgYSBDSSBnYXRlLiBUaGlzIGFsc28gaGVscHMga2VlcCBi
dWlsZCB0aW1lcyBtYW5hZ2VhYmxlIGFzIGhpZ2ggbGV2ZWwgdGVzdHMgdGVuZCB0byBiZSBzbG93
ZXIuIEhvd2V2ZXIsIGl0IG1lYW5zIGl0IGRvZXMgYmVjb21lIHBvc3NpYmxlIGZvciBjb2RlIHRo
YXQgYnJlYWtzIHRoZSBidWlsZCB0byBiZSBtZXJnZWQsIHNvIGV4dHJhIHZpZ2lsYW5jZSBpcyBu
ZWVkZWQgZm9yIG1vbml0b3JpbmcgdGhlIGludGVncmF0aW9uIHRlc3QgcmVzdWx0cy4KKworCitW
aWRlby9zY3JlZW5zaG90IG9uIGZhaWx1cmUKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgor
CitGb3IgVUkgdGVzdHMgdGhlc2UgYXJlIGltcG9ydGFudCBmb3IgdW5kZXJzdGFuZGluZyB3aGF0
IHRoZSBzdGF0ZSBvZiB0aGUgVUkgd2FzIHdoZW4gdGhlIHRlc3QgZmFpbGVkLiBweXRlc3Qtc3Bs
aW50ZXIgY2FuIGJlIHVzZWQgd2l0aCBwbHVnaW5zIGxpa2UgcHl0ZXN0LWJkZCBhbmQgY2FuIGBz
YXZlIGEgc2NyZWVuc2hvdCBvbiB0ZXN0IGZhaWx1cmUgPGh0dHBzOi8vcHl0ZXN0LXNwbGludGVy
LnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8jYXV0b21hdGljLXNjcmVlbnNob3RzLW9uLXRlc3Qt
ZmFpbHVyZT5gXywgd2hpY2ggY2FuIGhlbHAgdG8gaXNvbGF0ZSB0aGUgY2F1c2UuCisKKworRGVs
ZXRlIG9yIHJld3JpdGUgdGhlIHRlc3QKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0lm
IHRoZSBmdW5jdGlvbmFsaXR5IGlzIGNvdmVyZWQgYnkgb3RoZXIgdGVzdHMsIHBlcmhhcHMgdGhl
IHRlc3QgY2FuIGJlIHJlbW92ZWQuIElmIG5vdCwgcGVyaGFwcyBpdCBjYW4gYmUgcmV3cml0dGVu
IGF0IGEgbG93ZXIgbGV2ZWwgd2hpY2ggd2lsbCByZW1vdmUgdGhlIGZsYWtpbmVzcyBvciBtYWtl
IGl0cyBzb3VyY2UgbW9yZSBhcHBhcmVudC4KKworCitRdWFyYW50aW5lCit+fn5+fn5+fn5+CisK
K01hcmsgTGFwaWVycmUgZGlzY3Vzc2VzIHRoZSBgUHJvcyBhbmQgQ29ucyBvZiBRdWFyYW50aW5l
ZCBUZXN0cyA8aHR0cHM6Ly9kZXYudG8vbWxhcGllcnJlL3Byb3MtYW5kLWNvbnMtb2YtcXVhcmFu
dGluZWQtdGVzdHMtMmVtaj5gXyBpbiBhIHBvc3QgZnJvbSAyMDE4LgorCisKKworQ0kgdG9vbHMg
dGhhdCByZXJ1biBvbiBmYWlsdXJlCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwor
QXp1cmUgUGlwZWxpbmVzICh0aGUgQXp1cmUgY2xvdWQgQ0kvQ0QgdG9vbCwgZm9ybWVybHkgVmlz
dWFsIFN0dWRpbyBUZWFtIFNlcnZpY2VzIG9yIFZTVFMpIGhhcyBhIGZlYXR1cmUgdG8gYGlkZW50
aWZ5IGZsYWt5IHRlc3RzIDxodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9henVyZS9k
ZXZvcHMvcmVsZWFzZS1ub3Rlcy8yMDE3L2RlYy0xMS12c3RzI2lkZW50aWZ5LWZsYWt5LXRlc3Rz
PmBfIGFuZCByZXJ1biBmYWlsZWQgdGVzdHMuCisKKworCitSZXNlYXJjaAorXl5eXl5eXl4KKwor
VGhpcyBpcyBhIGxpbWl0ZWQgbGlzdCwgcGxlYXNlIHN1Ym1pdCBhbiBpc3N1ZSBvciBwdWxsIHJl
cXVlc3QgdG8gZXhwYW5kIGl0IQorCisqIEdhbywgWmViYW8sIFlhbGFuIExpYW5nLCBNeXJhIEIu
IENvaGVuLCBBdGlmIE0uIE1lbW9uLCBhbmQgWmhlbiBXYW5nLiAiTWFraW5nIHN5c3RlbSB1c2Vy
IGludGVyYWN0aXZlIHRlc3RzIHJlcGVhdGFibGU6IFdoZW4gYW5kIHdoYXQgc2hvdWxkIHdlIGNv
bnRyb2w/LiIgSW4gKlNvZnR3YXJlIEVuZ2luZWVyaW5nIChJQ1NFKSwgMjAxNSBJRUVFL0FDTSAz
N3RoIElFRUUgSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uKiwgdm9sLiAxLCBwcC4gNTUtNjUu
IElFRUUsIDIwMTUuICBgUERGIDxodHRwOi8vd3d3LmNzLnVtZC5lZHUvfmF0aWYvcHVicy9nYW8t
aWNzZTE1LnBkZj5gX18KKyogUGFsb21iYSwgRmFiaW8sIGFuZCBBbmR5IFphaWRtYW4uICJEb2Vz
IHJlZmFjdG9yaW5nIG9mIHRlc3Qgc21lbGxzIGluZHVjZSBmaXhpbmcgZmxha3kgdGVzdHM/LiIg
SW4gKlNvZnR3YXJlIE1haW50ZW5hbmNlIGFuZCBFdm9sdXRpb24gKElDU01FKSwgMjAxNyBJRUVF
IEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBvbiosIHBwLiAxLTEyLiBJRUVFLCAyMDE3LiBgUERG
IGluIEdvb2dsZSBEcml2ZSA8aHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8xMEhkY0NR
aXVRVmdXM3lZVUpELVRTVHExTmJZRXBybDAvdmlldz5gX18KKyogIEJlbGwsIEpvbmF0aGFuLCBP
d29sYWJpIExlZ3Vuc2VuLCBNaWNoYWVsIEhpbHRvbiwgTGFteWFhIEVsb3Vzc2ksIFRpZmFueSBZ
dW5nLCBhbmQgRGFya28gTWFyaW5vdi4gIkRlRmxha2VyOiBBdXRvbWF0aWNhbGx5IGRldGVjdGlu
ZyBmbGFreSB0ZXN0cy4iIEluICpQcm9jZWVkaW5ncyBvZiB0aGUgMjAxOCBJbnRlcm5hdGlvbmFs
IENvbmZlcmVuY2Ugb24gU29mdHdhcmUgRW5naW5lZXJpbmcqLiAyMDE4LiBgUERGIDxodHRwczov
L3d3dy5qb25iZWxsLm5ldC9pY3NlMTgtZGVmbGFrZXIucGRmPmBfXworCisKK1Jlc291cmNlcwor
Xl5eXl5eXl5eCisKKyogYEVyYWRpY2F0aW5nIE5vbi1EZXRlcm1pbmlzbSBpbiBUZXN0cyA8aHR0
cHM6Ly9tYXJ0aW5mb3dsZXIuY29tL2FydGljbGVzL25vbkRldGVybWluaXNtLmh0bWw+YF8gYnkg
TWFydGluIEZvd2xlciwgMjAxMQorKiBgTm8gbW9yZSBmbGFreSB0ZXN0cyBvbiB0aGUgR28gdGVh
bSA8aHR0cHM6Ly93d3cudGhvdWdodHdvcmtzLmNvbS9pbnNpZ2h0cy9ibG9nL25vLW1vcmUtZmxh
a3ktdGVzdHMtZ28tdGVhbT5gXyBieSBQYXZhbiBTdWRhcnNoYW4sIDIwMTIKKyogYFRoZSBCdWls
ZCBUaGF0IENyaWVkIEJyb2tlbjogQnVpbGRpbmcgVHJ1c3QgaW4geW91ciBDb250aW51b3VzIElu
dGVncmF0aW9uIFRlc3RzIDxodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9Wb3RKcVY0bjhp
Zz5gXyB0YWxrICh2aWRlbykgYnkgYEFuZ2llIEpvbmVzIDxodHRwOi8vYW5naWVqb25lcy50ZWNo
Lz5gXyBhdCBTZWxlbml1bUNvbmYgQXVzdGluIDIwMTcKKyogYFRlc3QgYW5kIENvZGUgUG9kY2Fz
dDogRmxha3kgVGVzdHMgYW5kIEhvdyB0byBEZWFsIHdpdGggVGhlbSA8aHR0cHM6Ly90ZXN0YW5k
Y29kZS5jb20vNTA+YF8gYnkgQnJpYW4gT2trZW4gYW5kIEFudGhvbnkgU2hhdywgMjAxOAorKiBN
aWNyb3NvZnQ6CisKKyAgKiBgSG93IHdlIGFwcHJvYWNoIHRlc3RpbmcgVlNUUyB0byBlbmFibGUg
Y29udGludW91cyBkZWxpdmVyeSA8aHR0cHM6Ly9ibG9ncy5tc2RuLm1pY3Jvc29mdC5jb20vYmhh
cnJ5LzIwMTcvMDYvMjgvdGVzdGluZy1pbi1hLWNsb3VkLWRlbGl2ZXJ5LWNhZGVuY2UvPmBfIGJ5
IEJyaWFuIEhhcnJ5IE1TLCAyMDE3CisgICogYEVsaW1pbmF0aW5nIEZsYWt5IFRlc3RzIDxodHRw
czovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9henVyZS9kZXZvcHMvbGVhcm4vZGV2b3BzLWF0
LW1pY3Jvc29mdC9lbGltaW5hdGluZy1mbGFreS10ZXN0cz5gXyBibG9nIGFuZCB0YWxrICh2aWRl
bykgYnkgTXVuaWwgU2hhaCwgMjAxNworCisqIEdvb2dsZToKKworICAqIGBGbGFreSBUZXN0cyBh
dCBHb29nbGUgYW5kIEhvdyBXZSBNaXRpZ2F0ZSBUaGVtIDxodHRwczovL3Rlc3RpbmcuZ29vZ2xl
YmxvZy5jb20vMjAxNi8wNS9mbGFreS10ZXN0cy1hdC1nb29nbGUtYW5kLWhvdy13ZS5odG1sPmBf
IGJ5IEpvaG4gTWljY28sIDIwMTYKKyAgKiBgV2hlcmUgZG8gR29vZ2xlJ3MgZmxha3kgdGVzdHMg
Y29tZSBmcm9tPyA8aHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZG9jdW1lbnQvZC8xbVowLUtjOTdE
SV9GM3RmX0dCV19OQl9hcWthLVAxalZPc0ZmdWZ4cVVVTS9lZGl0I2hlYWRpbmc9aC5lYzByNGZ5
cHNsZWg+YF8gIGJ5IEplZmYgTGlzdGZpZWxkLCAyMDE3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZnVuY2FyZ19jb21wYXJlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9mdW5jYXJn
X2NvbXBhcmUucnN0CmluZGV4IGMyOWJhMWYzYzM1NzU3ZjU3YWE0Y2QwYTIzNGZmOWIxZGQ2ODM5
NTcuLjRmYTliNzlhZTdhYzA5YjNlNzZiMWM3ZGUyMjg0M2YwOGI3YmNjYjcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9mdW5jYXJnX2NvbXBhcmUucnN0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9mdW5jYXJnX2NvbXBhcmUucnN0CkBAIC03LDcgKzcsNyBAQCBweXRlc3QtMi4zOiBy
ZWFzb25pbmcgZm9yIGZpeHR1cmUvZnVuY2FyZyBldm9sdXRpb24KIAogKipUYXJnZXQgYXVkaWVu
Y2UqKjogUmVhZGluZyB0aGlzIGRvY3VtZW50IHJlcXVpcmVzIGJhc2ljIGtub3dsZWRnZSBvZgog
cHl0aG9uIHRlc3RpbmcsIHhVbml0IHNldHVwIG1ldGhvZHMgYW5kIHRoZSAocHJldmlvdXMpIGJh
c2ljIHB5dGVzdAotZnVuY2FyZyBtZWNoYW5pc20sIHNlZSBodHRwOi8vcHl0ZXN0Lm9yZy8yLjIu
NC9mdW5jYXJncy5odG1sCitmdW5jYXJnIG1lY2hhbmlzbSwgc2VlIGh0dHBzOi8vZG9jcy5weXRl
c3Qub3JnL2VuL2xhdGVzdC9oaXN0b3JpY2FsLW5vdGVzLmh0bWwjZnVuY2FyZ3MtYW5kLXB5dGVz
dC1mdW5jYXJnLgogSWYgeW91IGFyZSBuZXcgdG8gcHl0ZXN0LCB0aGVuIHlvdSBjYW4gc2ltcGx5
IGlnbm9yZSB0aGlzCiBzZWN0aW9uIGFuZCByZWFkIHRoZSBvdGhlciBzZWN0aW9ucy4KIApAQCAt
MjYsOSArMjYsOSBAQCBhIHBlci1zZXNzaW9uIERhdGFiYXNlIG9iamVjdDo6CiAgICAgIyBjb250
ZW50IG9mIGNvbmZ0ZXN0LnB5CiAgICAgY2xhc3MgRGF0YWJhc2Uob2JqZWN0KToKICAgICAgICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICAgICAgcHJpbnQgKCJkYXRhYmFzZSBpbnN0YW5j
ZSBjcmVhdGVkIikKKyAgICAgICAgICAgIHByaW50KCJkYXRhYmFzZSBpbnN0YW5jZSBjcmVhdGVk
IikKICAgICAgICAgZGVmIGRlc3Ryb3koc2VsZik6Ci0gICAgICAgICAgICBwcmludCAoImRhdGFi
YXNlIGluc3RhbmNlIGRlc3Ryb3llZCIpCisgICAgICAgICAgICBwcmludCgiZGF0YWJhc2UgaW5z
dGFuY2UgZGVzdHJveWVkIikKIAogICAgIGRlZiBweXRlc3RfZnVuY2FyZ19fZGIocmVxdWVzdCk6
CiAgICAgICAgIHJldHVybiByZXF1ZXN0LmNhY2hlZF9zZXR1cChzZXR1cD1EYXRhQmFzZSwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9nZXR0aW5nLXN0YXJ0ZWQucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2dldHRpbmctc3RhcnRlZC5yc3QKaW5kZXggZjJkYmVjNWU5MzI4ZGFkNjRl
YjU5NTgwNWE1YTM0Yzg3NWMwMmVlMi4uODgyMzg1YjI5NjA2ZjA1MjJkODk5NWZjNzM4YWZhNTRi
OTA0NDUzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dldHRpbmctc3RhcnRlZC5y
c3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dldHRpbmctc3RhcnRlZC5yc3QKQEAgLTEsMTUg
KzEsMTIgQEAKIEluc3RhbGxhdGlvbiBhbmQgR2V0dGluZyBTdGFydGVkCiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQogCi0qKlB5dGhvbnMqKjogUHl0aG9uIDIuNywgMy40LCAz
LjUsIDMuNiwgSnl0aG9uLCBQeVB5LTIuMworKipQeXRob25zKio6IFB5dGhvbiAyLjcsIDMuNCwg
My41LCAzLjYsIDMuNywgSnl0aG9uLCBQeVB5LTIuMwogCiAqKlBsYXRmb3JtcyoqOiBVbml4L1Bv
c2l4IGFuZCBXaW5kb3dzCiAKICoqUHlQSSBwYWNrYWdlIG5hbWUqKjogYHB5dGVzdCA8aHR0cHM6
Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGVzdC8+YF8KIAotKipEZXBlbmRlbmNpZXMqKjogYHB5IDxo
dHRwczovL3B5cGkub3JnL3Byb2plY3QvcHkvPmBfLAotYGNvbG9yYW1hIChXaW5kb3dzKSA8aHR0
cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2NvbG9yYW1hLz5gXywKLQogKipEb2N1bWVudGF0aW9uIGFz
IFBERioqOiBgZG93bmxvYWQgbGF0ZXN0IDxodHRwczovL21lZGlhLnJlYWR0aGVkb2NzLm9yZy9w
ZGYvcHl0ZXN0L2xhdGVzdC9weXRlc3QucGRmPmBfCiAKIGBgcHl0ZXN0YGAgaXMgYSBmcmFtZXdv
cmsgdGhhdCBtYWtlcyBidWlsZGluZyBzaW1wbGUgYW5kIHNjYWxhYmxlIHRlc3RzIGVhc3kuIFRl
c3RzIGFyZSBleHByZXNzaXZlIGFuZCByZWFkYWJsZeKAlG5vIGJvaWxlcnBsYXRlIGNvZGUgcmVx
dWlyZWQuIEdldCBzdGFydGVkIGluIG1pbnV0ZXMgd2l0aCBhIHNtYWxsIHVuaXQgdGVzdCBvciBj
b21wbGV4IGZ1bmN0aW9uYWwgdGVzdCBmb3IgeW91ciBhcHBsaWNhdGlvbiBvciBsaWJyYXJ5LgpA
QCAtMjAsMTQgKzE3LDE4IEBAIEluc3RhbGxhdGlvbiBhbmQgR2V0dGluZyBTdGFydGVkCiBJbnN0
YWxsIGBgcHl0ZXN0YGAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotMS4gUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpbiB5b3VyIGNvbW1hbmQgbGluZTo6Cisx
LiBSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIGluIHlvdXIgY29tbWFuZCBsaW5lOgorCisuLiBj
b2RlLWJsb2NrOjogYmFzaAogCiAgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CiAKLTIuIENoZWNr
IHRoYXQgeW91IGluc3RhbGxlZCB0aGUgY29ycmVjdCB2ZXJzaW9uOjoKKzIuIENoZWNrIHRoYXQg
eW91IGluc3RhbGxlZCB0aGUgY29ycmVjdCB2ZXJzaW9uOgorCisuLiBjb2RlLWJsb2NrOjogYmFz
aAogCiAgICAgJCBweXRlc3QgLS12ZXJzaW9uCi0gICAgVGhpcyBpcyBweXRlc3QgdmVyc2lvbiAz
LngueSwgaW1wb3J0ZWQgZnJvbSAkUFlUSE9OX1BSRUZJWC9saWIvcHl0aG9uMy41L3NpdGUtcGFj
a2FnZXMvcHl0ZXN0LnB5CisgICAgVGhpcyBpcyBweXRlc3QgdmVyc2lvbiA0LngueSwgaW1wb3J0
ZWQgZnJvbSAkUFlUSE9OX1BSRUZJWC9saWIvcHl0aG9uMy43L3NpdGUtcGFja2FnZXMvcHl0ZXN0
LnB5CiAKIC4uIF9gc2ltcGxldGVzdGA6CiAKQEAgLTQzLDEyICs0NCwxNSBAQCBDcmVhdGUgYSBz
aW1wbGUgdGVzdCBmdW5jdGlvbiB3aXRoIGp1c3QgZm91ciBsaW5lcyBvZiBjb2RlOjoKICAgICBk
ZWYgdGVzdF9hbnN3ZXIoKToKICAgICAgICAgYXNzZXJ0IGZ1bmMoMykgPT0gNQogCi1UaGF04oCZ
cyBpdC4gWW91IGNhbiBub3cgZXhlY3V0ZSB0aGUgdGVzdCBmdW5jdGlvbjo6CitUaGF04oCZcyBp
dC4gWW91IGNhbiBub3cgZXhlY3V0ZSB0aGUgdGVzdCBmdW5jdGlvbjoKKworLi4gY29kZS1ibG9j
azo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09
PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAg
cGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBw
bHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAg
IHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwg
cGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUK
KyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVkIDEgaXRlbQogCiAg
ICAgdGVzdF9zYW1wbGUucHkgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWzEwMCVdCkBAIC03OSw3ICs4Myw3IEBAIFJ1biBtdWx0aXBsZSB0ZXN0
cwogQXNzZXJ0IHRoYXQgYSBjZXJ0YWluIGV4Y2VwdGlvbiBpcyByYWlzZWQKIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVVz
ZSB0aGUgYGByYWlzZXNgYCBoZWxwZXIgdG8gYXNzZXJ0IHRoYXQgc29tZSBjb2RlIHJhaXNlcyBh
biBleGNlcHRpb246OgorVXNlIHRoZSA6cmVmOmByYWlzZXMgPGFzc2VydHJhaXNlcz5gIGhlbHBl
ciB0byBhc3NlcnQgdGhhdCBzb21lIGNvZGUgcmFpc2VzIGFuIGV4Y2VwdGlvbjo6CiAKICAgICAj
IGNvbnRlbnQgb2YgdGVzdF9zeXNleGl0LnB5CiAgICAgaW1wb3J0IHB5dGVzdApAQCAtOTAsNyAr
OTQsOSBAQCBVc2UgdGhlIGBgcmFpc2VzYGAgaGVscGVyIHRvIGFzc2VydCB0aGF0IHNvbWUgY29k
ZSByYWlzZXMgYW4gZXhjZXB0aW9uOjoKICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3Rl
bUV4aXQpOgogICAgICAgICAgICAgZigpCiAKLUV4ZWN1dGUgdGhlIHRlc3QgZnVuY3Rpb24gd2l0
aCDigJxxdWlldOKAnSByZXBvcnRpbmcgbW9kZTo6CitFeGVjdXRlIHRoZSB0ZXN0IGZ1bmN0aW9u
IHdpdGgg4oCccXVpZXTigJ0gcmVwb3J0aW5nIG1vZGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRl
c3QKIAogICAgICQgcHl0ZXN0IC1xIHRlc3Rfc3lzZXhpdC5weQogICAgIC4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsx
MDAlXQpAQCAtMTExLDcgKzExNyw5IEBAIE9uY2UgeW91IGRldmVsb3AgbXVsdGlwbGUgdGVzdHMs
IHlvdSBtYXkgd2FudCB0byBncm91cCB0aGVtIGludG8gYSBjbGFzcy4gcHl0ZXN0CiAgICAgICAg
ICAgICB4ID0gImhlbGxvIgogICAgICAgICAgICAgYXNzZXJ0IGhhc2F0dHIoeCwgJ2NoZWNrJykK
IAotYGBweXRlc3RgYCBkaXNjb3ZlcnMgYWxsIHRlc3RzIGZvbGxvd2luZyBpdHMgOnJlZjpgQ29u
dmVudGlvbnMgZm9yIFB5dGhvbiB0ZXN0IGRpc2NvdmVyeSA8dGVzdCBkaXNjb3Zlcnk+YCwgc28g
aXQgZmluZHMgYm90aCBgYHRlc3RfYGAgcHJlZml4ZWQgZnVuY3Rpb25zLiBUaGVyZSBpcyBubyBu
ZWVkIHRvIHN1YmNsYXNzIGFueXRoaW5nLiBXZSBjYW4gc2ltcGx5IHJ1biB0aGUgbW9kdWxlIGJ5
IHBhc3NpbmcgaXRzIGZpbGVuYW1lOjoKK2BgcHl0ZXN0YGAgZGlzY292ZXJzIGFsbCB0ZXN0cyBm
b2xsb3dpbmcgaXRzIDpyZWY6YENvbnZlbnRpb25zIGZvciBQeXRob24gdGVzdCBkaXNjb3Zlcnkg
PHRlc3QgZGlzY292ZXJ5PmAsIHNvIGl0IGZpbmRzIGJvdGggYGB0ZXN0X2BgIHByZWZpeGVkIGZ1
bmN0aW9ucy4gVGhlcmUgaXMgbm8gbmVlZCB0byBzdWJjbGFzcyBhbnl0aGluZy4gV2UgY2FuIHNp
bXBseSBydW4gdGhlIG1vZHVsZSBieSBwYXNzaW5nIGl0cyBmaWxlbmFtZToKKworLi4gY29kZS1i
bG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXEgdGVzdF9jbGFzcy5weQogICAgIC5GICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsxMDAlXQpAQCAtMTM4LDEwICsxNDYsMTIgQEAgUmVxdWVzdCBhIHVuaXF1ZSB0ZW1w
b3JhcnkgZGlyZWN0b3J5IGZvciBmdW5jdGlvbmFsIHRlc3RzCiAKICAgICAjIGNvbnRlbnQgb2Yg
dGVzdF90bXBkaXIucHkKICAgICBkZWYgdGVzdF9uZWVkc2ZpbGVzKHRtcGRpcik6Ci0gICAgICAg
IHByaW50ICh0bXBkaXIpCisgICAgICAgIHByaW50KHRtcGRpcikKICAgICAgICAgYXNzZXJ0IDAK
IAotTGlzdCB0aGUgbmFtZSBgYHRtcGRpcmBgIGluIHRoZSB0ZXN0IGZ1bmN0aW9uIHNpZ25hdHVy
ZSBhbmQgYGBweXRlc3RgYCB3aWxsIGxvb2t1cCBhbmQgY2FsbCBhIGZpeHR1cmUgZmFjdG9yeSB0
byBjcmVhdGUgdGhlIHJlc291cmNlIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSB0ZXN0IGZ1bmN0aW9u
IGNhbGwuIEJlZm9yZSB0aGUgdGVzdCBydW5zLCBgYHB5dGVzdGBgIGNyZWF0ZXMgYSB1bmlxdWUt
cGVyLXRlc3QtaW52b2NhdGlvbiB0ZW1wb3JhcnkgZGlyZWN0b3J5OjoKK0xpc3QgdGhlIG5hbWUg
YGB0bXBkaXJgYCBpbiB0aGUgdGVzdCBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIGBgcHl0ZXN0YGAg
d2lsbCBsb29rdXAgYW5kIGNhbGwgYSBmaXh0dXJlIGZhY3RvcnkgdG8gY3JlYXRlIHRoZSByZXNv
dXJjZSBiZWZvcmUgcGVyZm9ybWluZyB0aGUgdGVzdCBmdW5jdGlvbiBjYWxsLiBCZWZvcmUgdGhl
IHRlc3QgcnVucywgYGBweXRlc3RgYCBjcmVhdGVzIGEgdW5pcXVlLXBlci10ZXN0LWludm9jYXRp
b24gdGVtcG9yYXJ5IGRpcmVjdG9yeToKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAg
JCBweXRlc3QgLXEgdGVzdF90bXBkaXIucHkKICAgICBGICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KQEAgLTE1
MSw3ICsxNjEsNyBAQCBMaXN0IHRoZSBuYW1lIGBgdG1wZGlyYGAgaW4gdGhlIHRlc3QgZnVuY3Rp
b24gc2lnbmF0dXJlIGFuZCBgYHB5dGVzdGBgIHdpbGwgbG9vawogICAgIHRtcGRpciA9IGxvY2Fs
KCdQWVRFU1RfVE1QRElSL3Rlc3RfbmVlZHNmaWxlczAnKQogCiAgICAgICAgIGRlZiB0ZXN0X25l
ZWRzZmlsZXModG1wZGlyKToKLSAgICAgICAgICAgIHByaW50ICh0bXBkaXIpCisgICAgICAgICAg
ICBwcmludCh0bXBkaXIpCiAgICAgPiAgICAgICBhc3NlcnQgMAogICAgIEUgICAgICAgYXNzZXJ0
IDAKIApAQCAtMTYyLDcgKzE3Miw5IEBAIExpc3QgdGhlIG5hbWUgYGB0bXBkaXJgYCBpbiB0aGUg
dGVzdCBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIGBgcHl0ZXN0YGAgd2lsbCBsb29rCiAKIE1vcmUg
aW5mbyBvbiB0bXBkaXIgaGFuZGxpbmcgaXMgYXZhaWxhYmxlIGF0IDpyZWY6YFRlbXBvcmFyeSBk
aXJlY3RvcmllcyBhbmQgZmlsZXMgPHRtcGRpciBoYW5kbGluZz5gLgogCi1GaW5kIG91dCB3aGF0
IGtpbmQgb2YgYnVpbHRpbiA6cmVmOmBweXRlc3QgZml4dHVyZXMgPGZpeHR1cmVzPmAgZXhpc3Qg
d2l0aCB0aGUgY29tbWFuZDo6CitGaW5kIG91dCB3aGF0IGtpbmQgb2YgYnVpbHRpbiA6cmVmOmBw
eXRlc3QgZml4dHVyZXMgPGZpeHR1cmVzPmAgZXhpc3Qgd2l0aCB0aGUgY29tbWFuZDoKKworLi4g
Y29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVzdCAtLWZpeHR1cmVzICAgIyBzaG93cyBidWls
dGluIGFuZCBjdXN0b20gZml4dHVyZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2dvb2RwcmFjdGljZXMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dvb2RwcmFjdGljZXMucnN0
CmluZGV4IDJiYmQ5ZDBhZTU4NDE5NzczMWY1Y2U2NjFhMmE3ZDZjNjdhMmY1YTkuLmYwOGJkNWM0
MDc4ZmIwZDQxYjBhZmE4NGY2NjVjNmUyMDM0Nzc3MmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9nb29kcHJhY3RpY2VzLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZ29vZHBy
YWN0aWNlcy5yc3QKQEAgLTQsNiArNCwyOCBAQAogR29vZCBJbnRlZ3JhdGlvbiBQcmFjdGljZXMK
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAorSW5z
dGFsbCBwYWNrYWdlIHdpdGggcGlwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKK0ZvciBkZXZlbG9wbWVudCwgd2UgcmVjb21tZW5kIHlvdSB1c2Ug
dmVudl8gZm9yIHZpcnR1YWwgZW52aXJvbm1lbnRzCisob3IgdmlydHVhbGVudl8gZm9yIFB5dGhv
biAyLjcpIGFuZAorcGlwXyBmb3IgaW5zdGFsbGluZyB5b3VyIGFwcGxpY2F0aW9uIGFuZCBhbnkg
ZGVwZW5kZW5jaWVzLAorYXMgd2VsbCBhcyB0aGUgYGBweXRlc3RgYCBwYWNrYWdlIGl0c2VsZi4K
K1RoaXMgZW5zdXJlcyB5b3VyIGNvZGUgYW5kIGRlcGVuZGVuY2llcyBhcmUgaXNvbGF0ZWQgZnJv
bSB5b3VyIHN5c3RlbSBQeXRob24gaW5zdGFsbGF0aW9uLgorCitOZXh0LCBwbGFjZSBhIGBgc2V0
dXAucHlgYCBmaWxlIGluIHRoZSByb290IG9mIHlvdXIgcGFja2FnZSB3aXRoIHRoZSBmb2xsb3dp
bmcgbWluaW11bSBjb250ZW50OjoKKworICAgIGZyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAs
IGZpbmRfcGFja2FnZXMKKworICAgIHNldHVwKG5hbWU9IlBBQ0tBR0VOQU1FIiwgcGFja2FnZXM9
ZmluZF9wYWNrYWdlcygpKQorCitXaGVyZSBgYFBBQ0tBR0VOQU1FYGAgaXMgdGhlIG5hbWUgb2Yg
eW91ciBwYWNrYWdlLiBZb3UgY2FuIHRoZW4gaW5zdGFsbCB5b3VyIHBhY2thZ2UgaW4gImVkaXRh
YmxlIiBtb2RlIGJ5IHJ1bm5pbmcgZnJvbSB0aGUgc2FtZSBkaXJlY3Rvcnk6OgorCisgICAgIHBp
cCBpbnN0YWxsIC1lIC4KKword2hpY2ggbGV0cyB5b3UgY2hhbmdlIHlvdXIgc291cmNlIGNvZGUg
KGJvdGggdGVzdHMgYW5kIGFwcGxpY2F0aW9uKSBhbmQgcmVydW4gdGVzdHMgYXQgd2lsbC4KK1Ro
aXMgaXMgc2ltaWxhciB0byBydW5uaW5nIGBgcHl0aG9uIHNldHVwLnB5IGRldmVsb3BgYCBvciBg
YGNvbmRhIGRldmVsb3BgYCBpbiB0aGF0IGl0IGluc3RhbGxzCit5b3VyIHBhY2thZ2UgdXNpbmcg
YSBzeW1saW5rIHRvIHlvdXIgZGV2ZWxvcG1lbnQgY29kZS4KIAogLi4gX2B0ZXN0IGRpc2NvdmVy
eWA6CiAuLiBfYFB5dGhvbiB0ZXN0IGRpc2NvdmVyeWA6CkBAIC0yMCw4ICs0Miw4IEBAIENvbnZl
bnRpb25zIGZvciBQeXRob24gdGVzdCBkaXNjb3ZlcnkKICogSW4gdGhvc2UgZGlyZWN0b3JpZXMs
IHNlYXJjaCBmb3IgYGB0ZXN0XyoucHlgYCBvciBgYCpfdGVzdC5weWBgIGZpbGVzLCBpbXBvcnRl
ZCBieSB0aGVpciBgdGVzdCBwYWNrYWdlIG5hbWVgXy4KICogRnJvbSB0aG9zZSBmaWxlcywgY29s
bGVjdCB0ZXN0IGl0ZW1zOgogCi0gICogYGB0ZXN0X2BgIHByZWZpeGVkIHRlc3QgZnVuY3Rpb25z
IG9yIG1ldGhvZHMgb3V0c2lkZSBvZiBjbGFzcwotICAqIGBgdGVzdF9gYCBwcmVmaXhlZCB0ZXN0
IGZ1bmN0aW9ucyBvciBtZXRob2RzIGluc2lkZSBgYFRlc3RgYCBwcmVmaXhlZCB0ZXN0IGNsYXNz
ZXMgKHdpdGhvdXQgYW4gYGBfX2luaXRfX2BgIG1ldGhvZCkKKyAgKiBgYHRlc3RgYCBwcmVmaXhl
ZCB0ZXN0IGZ1bmN0aW9ucyBvciBtZXRob2RzIG91dHNpZGUgb2YgY2xhc3MKKyAgKiBgYHRlc3Rg
YCBwcmVmaXhlZCB0ZXN0IGZ1bmN0aW9ucyBvciBtZXRob2RzIGluc2lkZSBgYFRlc3RgYCBwcmVm
aXhlZCB0ZXN0IGNsYXNzZXMgKHdpdGhvdXQgYW4gYGBfX2luaXRfX2BgIG1ldGhvZCkKIAogRm9y
IGV4YW1wbGVzIG9mIGhvdyB0byBjdXN0b21pemUgeW91ciB0ZXN0IGRpc2NvdmVyeSA6ZG9jOmBl
eGFtcGxlL3B5dGhvbmNvbGxlY3Rpb25gLgogCkBAIC01MSw4ICs3MywxOCBAQCB0byBrZWVwIHRl
c3RzIHNlcGFyYXRlIGZyb20gYWN0dWFsIGFwcGxpY2F0aW9uIGNvZGUgKG9mdGVuIGEgZ29vZCBp
ZGVhKTo6CiAgICAgICAgIHRlc3Rfdmlldy5weQogICAgICAgICAuLi4KIAotVGhpcyB3YXkgeW91
ciB0ZXN0cyBjYW4gcnVuIGVhc2lseSBhZ2FpbnN0IGFuIGluc3RhbGxlZCB2ZXJzaW9uCi1vZiBg
YG15cGtnYGAuCitUaGlzIGhhcyB0aGUgZm9sbG93aW5nIGJlbmVmaXRzOgorCisqIFlvdXIgdGVz
dHMgY2FuIHJ1biBhZ2FpbnN0IGFuIGluc3RhbGxlZCB2ZXJzaW9uIGFmdGVyIGV4ZWN1dGluZyBg
YHBpcCBpbnN0YWxsIC5gYC4KKyogWW91ciB0ZXN0cyBjYW4gcnVuIGFnYWluc3QgdGhlIGxvY2Fs
IGNvcHkgd2l0aCBhbiBlZGl0YWJsZSBpbnN0YWxsIGFmdGVyIGV4ZWN1dGluZyBgYHBpcCBpbnN0
YWxsIC0tZWRpdGFibGUgLmBgLgorKiBJZiB5b3UgZG9uJ3QgaGF2ZSBhIGBgc2V0dXAucHlgYCBm
aWxlIGFuZCBhcmUgcmVseWluZyBvbiB0aGUgZmFjdCB0aGF0IFB5dGhvbiBieSBkZWZhdWx0IHB1
dHMgdGhlIGN1cnJlbnQKKyAgZGlyZWN0b3J5IGluIGBgc3lzLnBhdGhgYCB0byBpbXBvcnQgeW91
ciBwYWNrYWdlLCB5b3UgY2FuIGV4ZWN1dGUgYGBweXRob24gLW0gcHl0ZXN0YGAgdG8gZXhlY3V0
ZSB0aGUgdGVzdHMgYWdhaW5zdCB0aGUKKyAgbG9jYWwgY29weSBkaXJlY3RseSwgd2l0aG91dCB1
c2luZyBgYHBpcGBgLgorCisuLiBub3RlOjoKKworICAgIFNlZSA6cmVmOmBweXRob25wYXRoYCBm
b3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGNhbGxpbmcg
YGBweXRlc3RgYCBhbmQKKyAgICBgYHB5dGhvbiAtbSBweXRlc3RgYC4KIAogTm90ZSB0aGF0IHVz
aW5nIHRoaXMgc2NoZW1lIHlvdXIgdGVzdCBmaWxlcyBtdXN0IGhhdmUgKip1bmlxdWUgbmFtZXMq
KiwgYmVjYXVzZQogYGBweXRlc3RgYCB3aWxsIGltcG9ydCB0aGVtIGFzICp0b3AtbGV2ZWwqIG1v
ZHVsZXMgc2luY2UgdGhlcmUgYXJlIG5vIHBhY2thZ2VzCkBAIC0xNzcsMTkgKzIwOSw2IEBAIE5v
dGUgdGhhdCB0aGlzIGxheW91dCBhbHNvIHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGBg
c3JjYGAgbGF5b3V0IG1lbnRpb25lCiB0b3gKIC0tLS0tLQogCi1Gb3IgZGV2ZWxvcG1lbnQsIHdl
IHJlY29tbWVuZCB0byB1c2UgdmlydHVhbGVudl8gZW52aXJvbm1lbnRzIGFuZCBwaXBfCi1mb3Ig
aW5zdGFsbGluZyB5b3VyIGFwcGxpY2F0aW9uIGFuZCBhbnkgZGVwZW5kZW5jaWVzCi1hcyB3ZWxs
IGFzIHRoZSBgYHB5dGVzdGBgIHBhY2thZ2UgaXRzZWxmLiBUaGlzIGVuc3VyZXMgeW91ciBjb2Rl
IGFuZAotZGVwZW5kZW5jaWVzIGFyZSBpc29sYXRlZCBmcm9tIHRoZSBzeXN0ZW0gUHl0aG9uIGlu
c3RhbGxhdGlvbi4KLQotWW91IGNhbiB0aGVuIGluc3RhbGwgeW91ciBwYWNrYWdlIGluICJlZGl0
YWJsZSIgbW9kZTo6Ci0KLSAgICAgcGlwIGluc3RhbGwgLWUgLgotCi13aGljaCBsZXRzIHlvdSBj
aGFuZ2UgeW91ciBzb3VyY2UgY29kZSAoYm90aCB0ZXN0cyBhbmQgYXBwbGljYXRpb24pIGFuZCBy
ZXJ1biB0ZXN0cyBhdCB3aWxsLgotVGhpcyBpcyBzaW1pbGFyIHRvIHJ1bm5pbmcgYHB5dGhvbiBz
ZXR1cC5weSBkZXZlbG9wYCBvciBgY29uZGEgZGV2ZWxvcGAgaW4gdGhhdCBpdCBpbnN0YWxscwot
eW91ciBwYWNrYWdlIHVzaW5nIGEgc3ltbGluayB0byB5b3VyIGRldmVsb3BtZW50IGNvZGUuCi0K
IE9uY2UgeW91IGFyZSBkb25lIHdpdGggeW91ciB3b3JrIGFuZCB3YW50IHRvIG1ha2Ugc3VyZSB0
aGF0IHlvdXIgYWN0dWFsCiBwYWNrYWdlIHBhc3NlcyBhbGwgdGVzdHMgeW91IG1heSB3YW50IHRv
IGxvb2sgaW50byBgdG94YF8sIHRoZQogdmlydHVhbGVudiB0ZXN0IGF1dG9tYXRpb24gdG9vbCBh
bmQgaXRzIGBweXRlc3Qgc3VwcG9ydApAQCAtMjgyLDcgKzMwMSw3IEBAIHlvdXIgb3duIHNldHVw
dG9vbHMgVGVzdCBjb21tYW5kIGZvciBpbnZva2luZyBweXRlc3QuCiAgICAgc2V0dXAoCiAgICAg
ICAgICMgLi4uLAogICAgICAgICB0ZXN0c19yZXF1aXJlPVsicHl0ZXN0Il0sCi0gICAgICAgIGNt
ZGNsYXNzPXsidGVzdCI6IFB5VGVzdH0sCisgICAgICAgIGNtZGNsYXNzPXsicHl0ZXN0IjogUHlU
ZXN0fSwKICAgICApCiAKIE5vdyBpZiB5b3UgcnVuOjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9oaXN0b3JpY2FsLW5vdGVzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9oaXN0b3Jp
Y2FsLW5vdGVzLnJzdAppbmRleCAwMjhjZWZmOWIxNzQ4NjFiY2Q5NTBlYTllN2E4NzM0NTM4ZTMz
MmE5Li5jODQwMzcyOGYyZjg5ZDE3ZjhkODM3OWU0Yjk2Yjc1ZGJiODY3NDU5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vaGlzdG9yaWNhbC1ub3Rlcy5yc3QKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2hpc3RvcmljYWwtbm90ZXMucnN0CkBAIC00LDEwICs0LDEyMSBAQCBIaXN0b3Jp
Y2FsIE5vdGVzCiBUaGlzIHBhZ2UgbGlzdHMgZmVhdHVyZXMgb3IgYmVoYXZpb3IgZnJvbSBwcmV2
aW91cyB2ZXJzaW9ucyBvZiBweXRlc3Qgd2hpY2ggaGF2ZSBjaGFuZ2VkIG92ZXIgdGhlIHllYXJz
LiBUaGV5IGFyZQoga2VwdCBoZXJlIGFzIGEgaGlzdG9yaWNhbCBub3RlIHNvIHVzZXJzIGxvb2tp
bmcgYXQgb2xkIGNvZGUgY2FuIGZpbmQgZG9jdW1lbnRhdGlvbiByZWxhdGVkIHRvIHRoZW0uCiAK
KworLi4gX21hcmtlci1yZXZhbXA6CisKK01hcmtlciByZXZhbXAgYW5kIGl0ZXJhdGlvbgorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy42CisKK3B5
dGVzdCdzIG1hcmtlciBpbXBsZW1lbnRhdGlvbiB0cmFkaXRpb25hbGx5IHdvcmtlZCBieSBzaW1w
bHkgdXBkYXRpbmcgdGhlIGBgX19kaWN0X19gYCBhdHRyaWJ1dGUgb2YgZnVuY3Rpb25zIHRvIGN1
bXVsYXRpdmVseSBhZGQgbWFya2Vycy4gQXMgYSByZXN1bHQsIG1hcmtlcnMgd291bGQgdW5pbnRl
bnRpb25hbGx5IGJlIHBhc3NlZCBhbG9uZyBjbGFzcyBoaWVyYXJjaGllcyBpbiBzdXJwcmlzaW5n
IHdheXMuIEZ1cnRoZXIsIHRoZSBBUEkgZm9yIHJldHJpZXZpbmcgdGhlbSB3YXMgaW5jb25zaXN0
ZW50LCBhcyBtYXJrZXJzIGZyb20gcGFyYW1ldGVyaXphdGlvbiB3b3VsZCBiZSBzdG9yZWQgZGlm
ZmVyZW50bHkgdGhhbiBtYXJrZXJzIGFwcGxpZWQgdXNpbmcgdGhlIGBgQHB5dGVzdC5tYXJrYGAg
ZGVjb3JhdG9yIGFuZCBtYXJrZXJzIGFkZGVkIHZpYSBgYG5vZGUuYWRkX21hcmtlcmBgLgorCitU
aGlzIHN0YXRlIG9mIHRoaW5ncyBtYWRlIGl0IHRlY2huaWNhbGx5IG5leHQgdG8gaW1wb3NzaWJs
ZSB0byB1c2UgZGF0YSBmcm9tIG1hcmtlcnMgY29ycmVjdGx5IHdpdGhvdXQgaGF2aW5nIGEgZGVl
cCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbnRlcm5hbHMsIGxlYWRpbmcgdG8gc3VidGxlIGFuZCBo
YXJkIHRvIHVuZGVyc3RhbmQgYnVncyBpbiBtb3JlIGFkdmFuY2VkIHVzYWdlcy4KKworRGVwZW5k
aW5nIG9uIGhvdyBhIG1hcmtlciBnb3QgZGVjbGFyZWQvY2hhbmdlZCBvbmUgd291bGQgZ2V0IGVp
dGhlciBhIGBgTWFya2VySW5mb2BgIHdoaWNoIG1pZ2h0IGNvbnRhaW4gbWFya2VycyBmcm9tIHNp
YmxpbmcgY2xhc3NlcywKK2BgTWFya0RlY29yYXRvcnNgYCB3aGVuIG1hcmtzIGNhbWUgZnJvbSBw
YXJhbWV0ZXJpemF0aW9uIG9yIGZyb20gYSBgYG5vZGUuYWRkX21hcmtlcmBgIGNhbGwsIGRpc2Nh
cmRpbmcgcHJpb3IgbWFya3MuIEFsc28gYGBNYXJrZXJJbmZvYGAgYWN0cyBsaWtlIGEgc2luZ2xl
IG1hcmssIHdoZW4gaXQgaW4gZmFjdCByZXByZXNlbnRzIGEgbWVyZ2VkIHZpZXcgb24gbXVsdGlw
bGUgbWFya3Mgd2l0aCB0aGUgc2FtZSBuYW1lLgorCitPbiB0b3Agb2YgdGhhdCBtYXJrZXJzIHdl
cmUgbm90IGFjY2Vzc2libGUgaW4gdGhlIHNhbWUgd2F5IGZvciBtb2R1bGVzLCBjbGFzc2VzLCBh
bmQgZnVuY3Rpb25zL21ldGhvZHMuCitJbiBmYWN0LCBtYXJrZXJzIHdlcmUgb25seSBhY2Nlc3Np
YmxlIGluIGZ1bmN0aW9ucywgZXZlbiBpZiB0aGV5IHdlcmUgZGVjbGFyZWQgb24gY2xhc3Nlcy9t
b2R1bGVzLgorCitBIG5ldyBBUEkgdG8gYWNjZXNzIG1hcmtlcnMgaGFzIGJlZW4gaW50cm9kdWNl
ZCBpbiBweXRlc3QgMy42IGluIG9yZGVyIHRvIHNvbHZlIHRoZSBwcm9ibGVtcyB3aXRoCit0aGUg
aW5pdGlhbCBkZXNpZ24sIHByb3ZpZGluZyB0aGUgOmZ1bmM6YF9weXRlc3Qubm9kZXMuTm9kZS5p
dGVyX21hcmtlcnNgIG1ldGhvZCB0byBpdGVyYXRlIG92ZXIKK21hcmtlcnMgaW4gYSBjb25zaXN0
ZW50IG1hbm5lciBhbmQgcmV3b3JraW5nIHRoZSBpbnRlcm5hbHMsIHdoaWNoIHNvbHZlZCBhIGdy
ZWF0IGRlYWwgb2YgcHJvYmxlbXMKK3dpdGggdGhlIGluaXRpYWwgZGVzaWduLgorCisKKy4uIF91
cGRhdGUgbWFya2VyIGNvZGU6CisKK1VwZGF0aW5nIGNvZGUKK35+fn5+fn5+fn5+fn4KKworVGhl
IG9sZCBgYE5vZGUuZ2V0X21hcmtlcihuYW1lKWBgIGZ1bmN0aW9uIGlzIGNvbnNpZGVyZWQgZGVw
cmVjYXRlZCBiZWNhdXNlIGl0IHJldHVybnMgYW4gaW50ZXJuYWwgYGBNYXJrZXJJbmZvYGAgb2Jq
ZWN0Cit3aGljaCBjb250YWlucyB0aGUgbWVyZ2VkIG5hbWUsIGBgKmFyZ3NgYCBhbmQgYGAqKmt3
YXJnc2BgIG9mIGFsbCB0aGUgbWFya2VycyB3aGljaCBhcHBseSB0byB0aGF0IG5vZGUuCisKK0lu
IGdlbmVyYWwgdGhlcmUgYXJlIHR3byBzY2VuYXJpb3Mgb24gaG93IG1hcmtlcnMgc2hvdWxkIGJl
IGhhbmRsZWQ6CisKKzEuIE1hcmtzIG92ZXJ3cml0ZSBlYWNoIG90aGVyLiBPcmRlciBtYXR0ZXJz
IGJ1dCB5b3Ugb25seSB3YW50IHRvIHRoaW5rIG9mIHlvdXIgbWFyayBhcyBhIHNpbmdsZSBpdGVt
LiBFLmcuCitgYGxvZ19sZXZlbCgnaW5mbycpYGAgYXQgYSBtb2R1bGUgbGV2ZWwgY2FuIGJlIG92
ZXJ3cml0dGVuIGJ5IGBgbG9nX2xldmVsKCdkZWJ1ZycpYGAgZm9yIGEgc3BlY2lmaWMgdGVzdC4K
KworICAgIEluIHRoaXMgY2FzZSwgdXNlIGBgTm9kZS5nZXRfY2xvc2VzdF9tYXJrZXIobmFtZSlg
YDoKKworICAgIC4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICAgICAjIHJlcGxhY2UgdGhp
czoKKyAgICAgICAgbWFya2VyID0gaXRlbS5nZXRfbWFya2VyKCJsb2dfbGV2ZWwiKQorICAgICAg
ICBpZiBtYXJrZXI6CisgICAgICAgICAgICBsZXZlbCA9IG1hcmtlci5hcmdzWzBdCisKKyAgICAg
ICAgIyBieSB0aGlzOgorICAgICAgICBtYXJrZXIgPSBpdGVtLmdldF9jbG9zZXN0X21hcmtlcigi
bG9nX2xldmVsIikKKyAgICAgICAgaWYgbWFya2VyOgorICAgICAgICAgICAgbGV2ZWwgPSBtYXJr
ZXIuYXJnc1swXQorCisyLiBNYXJrcyBjb21wb3NlIGluIGFuIGFkZGl0aXZlIG1hbm5lci4gRS5n
LiBgYHNraXBpZihjb25kaXRpb24pYGAgbWFya3MgbWVhbiB5b3UganVzdCB3YW50IHRvIGV2YWx1
YXRlIGFsbCBvZiB0aGVtLAorb3JkZXIgZG9lc24ndCBldmVuIG1hdHRlci4gWW91IHByb2JhYmx5
IHdhbnQgdG8gdGhpbmsgb2YgeW91ciBtYXJrcyBhcyBhIHNldCBoZXJlLgorCisgICBJbiB0aGlz
IGNhc2UgaXRlcmF0ZSBvdmVyIGVhY2ggbWFyayBhbmQgaGFuZGxlIHRoZWlyIGBgKmFyZ3NgYCBh
bmQgYGAqKmt3YXJnc2BgIGluZGl2aWR1YWxseS4KKworICAgLi4gY29kZS1ibG9jazo6IHB5dGhv
bgorCisgICAgICAgICMgcmVwbGFjZSB0aGlzCisgICAgICAgIHNraXBpZiA9IGl0ZW0uZ2V0X21h
cmtlcigic2tpcGlmIikKKyAgICAgICAgaWYgc2tpcGlmOgorICAgICAgICAgICAgZm9yIGNvbmRp
dGlvbiBpbiBza2lwaWYuYXJnczoKKyAgICAgICAgICAgICAgICAjIGV2YWwgY29uZGl0aW9uCisg
ICAgICAgICAgICAgICAgLi4uCisKKyAgICAgICAgIyBieSB0aGlzOgorICAgICAgICBmb3Igc2tp
cGlmIGluIGl0ZW0uaXRlcl9tYXJrZXJzKCJza2lwaWYiKToKKyAgICAgICAgICAgIGNvbmRpdGlv
biA9IHNraXBpZi5hcmdzWzBdCisgICAgICAgICAgICAjIGV2YWwgY29uZGl0aW9uCisKKworSWYg
eW91IGFyZSB1bnN1cmUgb3IgaGF2ZSBhbnkgcXVlc3Rpb25zLCBwbGVhc2UgY29uc2lkZXIgb3Bl
bmluZworYGFuIGlzc3VlIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzPmBfLgorCitSZWxhdGVkIGlzc3Vlcworfn5+fn5+fn5+fn5+fn4KKworSGVyZSBpcyBhIG5v
bi1leGhhdXN0aXZlIGxpc3Qgb2YgaXNzdWVzIGZpeGVkIGJ5IHRoZSBuZXcgaW1wbGVtZW50YXRp
b246CisKKyogTWFya3MgZG9uJ3QgcGljayB1cCBuZXN0ZWQgY2xhc3NlcyAoYCMxOTkgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTk5PmBfKS4KKworKiBNYXJr
ZXJzIHN0YWluIG9uIGFsbCByZWxhdGVkIGNsYXNzZXMgKGAjNTY4IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzU2OD5gXykuCisKKyogQ29tYmluaW5nIG1hcmtz
IC0gYXJncyBhbmQga3dhcmdzIGNhbGN1bGF0aW9uIChgIzI4OTcgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjg5Nz5gXykuCisKKyogYGByZXF1ZXN0Lm5vZGUu
Z2V0X21hcmtlcignbmFtZScpYGAgcmV0dXJucyBgYE5vbmVgYCBmb3IgbWFya2VycyBhcHBsaWVk
IGluIGNsYXNzZXMgKGAjOTAyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzkwMj5gXykuCisKKyogTWFya3MgYXBwbGllZCBpbiBwYXJhbWV0cml6ZSBhcmUgc3Rv
cmVkIGFzIG1hcmtkZWNvcmF0b3IgKGAjMjQwMCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8yNDAwPmBfKS4KKworKiBGaXggbWFya2VyIGludGVyYWN0aW9uIGlu
IGEgYmFja3dhcmQgaW5jb21wYXRpYmxlIHdheSAoYCMxNjcwIDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE2NzA+YF8pLgorCisqIFJlZmFjdG9yIG1hcmtzIHRv
IGdldCByaWQgb2YgdGhlIGN1cnJlbnQgIm1hcmtzIHRyYW5zZmVyIiBtZWNoYW5pc20gKGAjMjM2
MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMzYzPmBfKS4K
KworKiBJbnRyb2R1Y2UgRnVuY3Rpb25EZWZpbml0aW9uIG5vZGUsIHVzZSBpdCBpbiBnZW5lcmF0
ZV90ZXN0cyAoYCMyNTIyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzI1MjI+YF8pLgorCisqIFJlbW92ZSBuYW1lZCBtYXJrZXIgYXR0cmlidXRlcyBhbmQgY29s
bGVjdCBtYXJrZXJzIGluIGl0ZW1zIChgIzg5MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy84OTE+YF8pLgorCisqIHNraXBpZiBtYXJrIGZyb20gcGFyYW1ldHJp
emUgaGlkZXMgbW9kdWxlIGxldmVsIHNraXBpZiBtYXJrIChgIzE1NDAgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTU0MD5gXykuCisKKyogc2tpcGlmICsgcGFy
YW1ldHJpemUgbm90IHNraXBwaW5nIHRlc3RzIChgIzEyOTYgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTI5Nj5gXykuCisKKyogTWFya2VyIHRyYW5zZmVyIGlu
Y29tcGF0aWJsZSB3aXRoIGluaGVyaXRhbmNlIChgIzUzNSA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MzU+YF8pLgorCitNb3JlIGRldGFpbHMgY2FuIGJlIGZv
dW5kIGluIHRoZSBgb3JpZ2luYWwgUFIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9wdWxsLzMzMTc+YF8uCisKKy4uIG5vdGU6OgorCisgICAgaW4gYSBmdXR1cmUgbWFqb3Ig
cmVsYXNlIG9mIHB5dGVzdCB3ZSB3aWxsIGludHJvZHVjZSBjbGFzcyBiYXNlZCBtYXJrZXJzLAor
ICAgIGF0IHdoaWNoIHBvaW50IG1hcmtlcnMgd2lsbCBubyBsb25nZXIgYmUgbGltaXRlZCB0byBp
bnN0YW5jZXMgb2YgOnB5OmNsYXNzOmBNYXJrYC4KKworCiBjYWNoZSBwbHVnaW4gaW50ZWdyYXRl
ZCBpbnRvIHRoZSBjb3JlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LS4uIHZlcnNpb25hZGRlZDo6IDIuOAorCiAKIFRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSA6cmVm
OmBjb3JlIGNhY2hlIDxjYWNoZT5gIHBsdWdpbiB3YXMgcHJldmlvdXNseSBkaXN0cmlidXRlZAog
YXMgYSB0aGlyZCBwYXJ0eSBwbHVnaW4gbmFtZWQgYGBweXRlc3QtY2FjaGVgYC4gIFRoZSBjb3Jl
IHBsdWdpbgpAQCAtMTgsNyArMTI5LDcgQEAgY2FuIG9ubHkgc3RvcmUvcmVjZWl2ZSBkYXRhIGJl
dHdlZW4gdGVzdCBydW5zIHRoYXQgaXMganNvbi1zZXJpYWxpemFibGUuCiBmdW5jYXJncyBhbmQg
YGBweXRlc3RfZnVuY2FyZ19fYGAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
Ci0uLiB2ZXJzaW9uY2hhbmdlZDo6IDIuMworCiAKIEluIHZlcnNpb25zIHByaW9yIHRvIDIuMyB0
aGVyZSB3YXMgbm8gYGBAcHl0ZXN0LmZpeHR1cmVgYCBtYXJrZXIKIGFuZCB5b3UgaGFkIHRvIHVz
ZSBhIG1hZ2ljIGBgcHl0ZXN0X2Z1bmNhcmdfX05BTUVgYCBwcmVmaXgKQEAgLTMwLDcgKzE0MSw3
IEBAIGZ1bmN0aW9ucy4KIGBgQHB5dGVzdC55aWVsZF9maXh0dXJlYGAgZGVjb3JhdG9yCiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0uLiB2ZXJzaW9uY2hhbmdlZDo6IDIu
MTAKKwogCiBQcmlvciB0byB2ZXJzaW9uIDIuMTAsIGluIG9yZGVyIHRvIHVzZSBhIGBgeWllbGRg
YCBzdGF0ZW1lbnQgdG8gZXhlY3V0ZSB0ZWFyZG93biBjb2RlIG9uZQogaGFkIHRvIG1hcmsgYSBm
aXh0dXJlIHVzaW5nIHRoZSBgYHlpZWxkX2ZpeHR1cmVgYCBtYXJrZXIuIEZyb20gMi4xMCBvbndh
cmQsIG5vcm1hbApAQCAtNDEsNyArMTUyLDcgQEAgYW5kIGNvbnNpZGVyZWQgZGVwcmVjYXRlZC4K
IGBgW3B5dGVzdF1gYCBoZWFkZXIgaW4gYGBzZXR1cC5jZmdgYAogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIHZlcnNpb25jaGFuZ2VkOjogMy4wCisKIAogUHJpb3Ig
dG8gMy4wLCB0aGUgc3VwcG9ydGVkIHNlY3Rpb24gbmFtZSB3YXMgYGBbcHl0ZXN0XWBgLiBEdWUg
dG8gaG93CiB0aGlzIG1heSBjb2xsaWRlIHdpdGggc29tZSBkaXN0dXRpbHMgY29tbWFuZHMsIHRo
ZSByZWNvbW1lbmRlZApAQCAtNTQsMTcgKzE2NSwxOSBAQCBuYW1lIGlzIGBgW3B5dGVzdF1gYC4K
IEFwcGx5aW5nIG1hcmtzIHRvIGBgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAgcGFyYW1ldGVy
cwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKLS4uIHZlcnNpb25jaGFuZ2VkOjogMy4xCisKIAogUHJpb3IgdG8gdmVyc2lvbiAzLjEg
dGhlIHN1cHBvcnRlZCBtZWNoYW5pc20gZm9yIG1hcmtpbmcgdmFsdWVzCi11c2VkIHRoZSBzeW50
YXg6OgordXNlZCB0aGUgc3ludGF4OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBp
bXBvcnQgcHl0ZXN0Ci0gICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ0ZXN0X2lucHV0LGV4
cGVjdGVkIiwgWwotICAgICAgICAoIjMrNSIsIDgpLAotICAgICAgICAoIjIrNCIsIDYpLAotICAg
ICAgICBweXRlc3QubWFyay54ZmFpbCgoIjYqOSIsIDQyKSwpLAotICAgIF0pCisKKworICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgInRlc3RfaW5wdXQsZXhwZWN0ZWQiLCBb
KCIzKzUiLCA4KSwgKCIyKzQiLCA2KSwgcHl0ZXN0Lm1hcmsueGZhaWwoKCI2KjkiLCA0MikpXQor
ICAgICkKICAgICBkZWYgdGVzdF9ldmFsKHRlc3RfaW5wdXQsIGV4cGVjdGVkKToKICAgICAgICAg
YXNzZXJ0IGV2YWwodGVzdF9pbnB1dCkgPT0gZXhwZWN0ZWQKIApAQCAtNzgsNyArMTkxLDcgQEAg
VGhlIG9sZCBzeW50YXggaXMgcGxhbm5lZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdC00LjAuCiBg
YEBweXRlc3QubWFyay5wYXJhbWV0cml6ZWBgIGFyZ3VtZW50IG5hbWVzIGFzIGEgdHVwbGUKIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0u
LiB2ZXJzaW9uY2hhbmdlZDo6IDIuNAorCiAKIEluIHZlcnNpb25zIHByaW9yIHRvIDIuNCBvbmUg
bmVlZGVkIHRvIHNwZWNpZnkgdGhlIGFyZ3VtZW50CiBuYW1lcyBhcyBhIHR1cGxlLiAgVGhpcyBy
ZW1haW5zIHZhbGlkIGJ1dCB0aGUgc2ltcGxlciBgYCJuYW1lMSxuYW1lMiwuLi4iYGAKQEAgLTg5
LDcgKzIwMiw3IEBAIGl0J3MgZWFzaWVyIHRvIHdyaXRlIGFuZCBwcm9kdWNlcyBsZXNzIGxpbmUg
bm9pc2UuCiBzZXR1cDogaXMgbm93IGFuICJhdXRvdXNlIGZpeHR1cmUiCiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIHZlcnNpb25jaGFuZ2VkOjogMi4zCisKIAogRHVy
aW5nIGRldmVsb3BtZW50IHByaW9yIHRvIHRoZSBweXRlc3QtMi4zIHJlbGVhc2UgdGhlIG5hbWUK
IGBgcHl0ZXN0LnNldHVwYGAgd2FzIHVzZWQgYnV0IGJlZm9yZSB0aGUgcmVsZWFzZSBpdCB3YXMg
cmVuYW1lZApAQCAtMTAyLDEyICsyMTUsMTYgQEAgbmFtZWx5IDpyZWY6YGF1dG91c2UgZml4dHVy
ZXNgCiBDb25kaXRpb25zIGFzIHN0cmluZ3MgaW5zdGVhZCBvZiBib29sZWFucwogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLi4gdmVyc2lvbmNoYW5nZWQ6OiAy
LjQKKwogCiBQcmlvciB0byBweXRlc3QtMi40IHRoZSBvbmx5IHdheSB0byBzcGVjaWZ5IHNraXBp
Zi94ZmFpbCBjb25kaXRpb25zIHdhcwotdG8gdXNlIHN0cmluZ3M6OgordG8gdXNlIHN0cmluZ3M6
CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIGltcG9ydCBzeXMKKworCiAgICAgQHB5
dGVzdC5tYXJrLnNraXBpZigic3lzLnZlcnNpb25faW5mbyA+PSAoMywzKSIpCiAgICAgZGVmIHRl
c3RfZnVuY3Rpb24oKToKICAgICAgICAgLi4uCkBAIC0xMzksMTcgKzI1NiwyMCBAQCBkaWN0aW9u
YXJ5IHdoaWNoIGlzIGNvbnN0cnVjdGVkIGFzIGZvbGxvd3M6CiAgIGV4cHJlc3Npb24gaXMgYXBw
bGllZC4KIAogVGhlIHB5dGVzdCBgYGNvbmZpZ2BgIG9iamVjdCBhbGxvd3MgeW91IHRvIHNraXAg
YmFzZWQgb24gYSB0ZXN0Ci1jb25maWd1cmF0aW9uIHZhbHVlIHdoaWNoIHlvdSBtaWdodCBoYXZl
IGFkZGVkOjoKK2NvbmZpZ3VyYXRpb24gdmFsdWUgd2hpY2ggeW91IG1pZ2h0IGhhdmUgYWRkZWQ6
CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIEBweXRlc3QubWFyay5za2lwaWYoIm5v
dCBjb25maWcuZ2V0dmFsdWUoJ2RiJykiKQotICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKC4uLik6Cisg
ICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKICAgICAgICAgLi4uCiAKLVRoZSBlcXVpdmFsZW50IHdp
dGggImJvb2xlYW4gY29uZGl0aW9ucyIgaXM6OgorVGhlIGVxdWl2YWxlbnQgd2l0aCAiYm9vbGVh
biBjb25kaXRpb25zIiBpczoKIAotICAgIEBweXRlc3QubWFyay5za2lwaWYobm90IHB5dGVzdC5j
b25maWcuZ2V0dmFsdWUoImRiIiksCi0gICAgICAgICAgICAgICAgICAgICAgICByZWFzb249Ii0t
ZGIgd2FzIG5vdCBzcGVjaWZpZWQiKQotICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKC4uLik6CisuLiBj
b2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKG5vdCBweXRlc3Qu
Y29uZmlnLmdldHZhbHVlKCJkYiIpLCByZWFzb249Ii0tZGIgd2FzIG5vdCBzcGVjaWZpZWQiKQor
ICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CiAgICAgICAgIHBhc3MKIAogLi4gbm90ZTo6CkBAIC0x
NjIsMTYgKzI4MiwzMCBAQCBUaGUgZXF1aXZhbGVudCB3aXRoICJib29sZWFuIGNvbmRpdGlvbnMi
IGlzOjoKIGBgcHl0ZXN0LnNldF90cmFjZSgpYGAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAot
Li4gdmVyc2lvbmNoYW5nZWQ6OiAyLjQKIAotUHJldmlvdXMgdG8gdmVyc2lvbiAyLjQgdG8gc2V0
IGEgYnJlYWsgcG9pbnQgaW4gY29kZSBvbmUgbmVlZGVkIHRvIHVzZSBgYHB5dGVzdC5zZXRfdHJh
Y2UoKWBgOjoKKworUHJldmlvdXMgdG8gdmVyc2lvbiAyLjQgdG8gc2V0IGEgYnJlYWsgcG9pbnQg
aW4gY29kZSBvbmUgbmVlZGVkIHRvIHVzZSBgYHB5dGVzdC5zZXRfdHJhY2UoKWBgOgorCisuLiBj
b2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBpbXBvcnQgcHl0ZXN0CisKKwogICAgIGRlZiB0ZXN0
X2Z1bmN0aW9uKCk6CiAgICAgICAgIC4uLgotICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkgICAg
IyBpbnZva2UgUERCIGRlYnVnZ2VyIGFuZCB0cmFjaW5nCisgICAgICAgIHB5dGVzdC5zZXRfdHJh
Y2UoKSAgIyBpbnZva2UgUERCIGRlYnVnZ2VyIGFuZCB0cmFjaW5nCiAKIAogVGhpcyBpcyBubyBs
b25nZXIgbmVlZGVkIGFuZCBvbmUgY2FuIHVzZSB0aGUgbmF0aXZlIGBgaW1wb3J0IHBkYjtwZGIu
c2V0X3RyYWNlKClgYCBjYWxsIGRpcmVjdGx5LgogCiBGb3IgbW9yZSBkZXRhaWxzIHNlZSA6cmVm
OmBicmVha3BvaW50c2AuCisKKyJjb21wYXQiIHByb3BlcnRpZXMKKy0tLS0tLS0tLS0tLS0tLS0t
LS0KKworCisKK0FjY2VzcyBvZiBgYE1vZHVsZWBgLCBgYEZ1bmN0aW9uYGAsIGBgQ2xhc3NgYCwg
YGBJbnN0YW5jZWBgLCBgYEZpbGVgYCBhbmQgYGBJdGVtYGAgdGhyb3VnaCBgYE5vZGVgYCBpbnN0
YW5jZXMgaGF2ZSBsb25nCitiZWVuIGRvY3VtZW50ZWQgYXMgZGVwcmVjYXRlZCwgYnV0IHN0YXJ0
ZWQgdG8gZW1pdCB3YXJuaW5ncyBmcm9tIHB5dGVzdCBgYDMuOWBgIGFuZCBvbndhcmQuCisKK1Vz
ZXJzIHNob3VsZCBqdXN0IGBgaW1wb3J0IHB5dGVzdGBgIGFuZCBhY2Nlc3MgdGhvc2Ugb2JqZWN0
cyB1c2luZyB0aGUgYGBweXRlc3RgYCBtb2R1bGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vaW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2luZGV4LnJzdAppbmRleCA2YTM4
MmU1NzE3M2FlNjc5MTk1NmRmYzkzYWNjNGVhMmQ2N2M1ZWIyLi5lZGNiYmViODRlNzAxZGM3NTdl
MDk4ZmQ4Zjc3YmUwNjAyNGJlNTIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW5k
ZXgucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbmRleC5yc3QKQEAgLTIyLDEyICsyMiwx
NSBAQCBBbiBleGFtcGxlIG9mIGEgc2ltcGxlIHRlc3Q6CiAgICAgICAgIGFzc2VydCBpbmMoMykg
PT0gNQogCiAKLVRvIGV4ZWN1dGUgaXQ6OgorVG8gZXhlY3V0ZSBpdDoKKworLi4gY29kZS1ibG9j
azo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09
PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAg
cGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBw
bHVnZ3ktMC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAg
IHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwg
cGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUK
KyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVkIDEgaXRlbQogCiAg
ICAgdGVzdF9zYW1wbGUucHkgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWzEwMCVdCkBAIC04NCw3ICs4Nyw3IEBAIENvbnN1bHQgdGhlIDpyZWY6
YENoYW5nZWxvZyA8Y2hhbmdlbG9nPmAgcGFnZSBmb3IgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyBv
ZiBlYWNoCiBMaWNlbnNlCiAtLS0tLS0tCiAKLUNvcHlyaWdodCBIb2xnZXIgS3Jla2VsIGFuZCBv
dGhlcnMsIDIwMDQtMjAxNy4KK0NvcHlyaWdodCBIb2xnZXIgS3Jla2VsIGFuZCBvdGhlcnMsIDIw
MDQtMjAyMC4KIAogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBgTUlUYF8gbGlj
ZW5zZSwgcHl0ZXN0IGlzIGZyZWUgYW5kIG9wZW4gc291cmNlIHNvZnR3YXJlLgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbGljZW5zZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
bGljZW5zZS5yc3QKaW5kZXggYjhjMGRjZTFiZWE4ZTE3MDU3NTAzY2JhMjA0MTk5OTA1Yjk0OTFm
MS4uYzZjMTBiYmYzNThjNGIxYjE2MjQxYjExM2M2N2E2ZGJmZjBlMThmMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2xpY2Vuc2UucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9s
aWNlbnNlLnJzdApAQCAtNSwxMSArNSwxMSBAQCBMaWNlbnNlCiAKIERpc3RyaWJ1dGVkIHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgYE1JVGBfIGxpY2Vuc2UsIHB5dGVzdCBpcyBmcmVlIGFuZCBvcGVu
IHNvdXJjZSBzb2Z0d2FyZS4KIAotOjoKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CiAKICAgICBUaGUg
TUlUIExpY2Vuc2UgKE1JVCkKIAotICAgIENvcHlyaWdodCAoYykgMjAwNC0yMDE3IEhvbGdlciBL
cmVrZWwgYW5kIG90aGVycworICAgIENvcHlyaWdodCAoYykgMjAwNC0yMDIwIEhvbGdlciBLcmVr
ZWwgYW5kIG90aGVycwogCiAgICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv
ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgogICAgIHRoaXMgc29m
dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp
LCB0byBkZWFsIGluCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbGlua3MuaW5jIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2xpbmtzLmluYwppbmRleCA0ZDVhNGIxZWViZjJjODA0OGEyOWNh
ZTlmZGM0YTkwOTZlYmE3M2MwLi4xYjdjYmQwNWIwMGExODg3NjM0OTg3MmU0NDI2ODNhNTc0OTI0
NzM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbGlua3MuaW5jCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9saW5rcy5pbmMKQEAgLTE0LDYgKzE0LDcgQEAKIC4uIF9gZGlzdHJpYnV0
ZSBkb2NzYDoKIC4uIF9gZGlzdHJpYnV0ZWA6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9kaXN0
cmlidXRlLwogLi4gX2BwaXBgOiBodHRwczovL3B5cGkub3JnL3Byb2plY3QvcGlwLworLi4gX2B2
ZW52YDogaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L3ZlbnYuaHRtbC8KIC4uIF9g
dmlydHVhbGVudmA6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC92aXJ0dWFsZW52LwogLi4gX2h1
ZHNvbjogaHR0cDovL2h1ZHNvbi1jaS5vcmcvCiAuLiBfamVua2luczogaHR0cDovL2plbmtpbnMt
Y2kub3JnLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xvZ2dpbmcucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2xvZ2dpbmcucnN0CmluZGV4IDAwODI5YzE1ZWVmNzgwZmQzMjU5ZDhh
MzgyYjBjMTYzNWVmY2M1NmYuLmE1MzUwOTE4NGY2ODE0ZWIyZDMwZTgyN2U4M2YwMzNiMTE3YTBl
MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9sb2dnaW5nLnJzdAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vbG9nZ2luZy5yc3QKQEAgLTMsMTcgKzMsMjEgQEAKIExvZ2dpbmcKIC0t
LS0tLS0KIAotLi4gdmVyc2lvbmFkZGVkOjogMy4zCi0uLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAor
CisKIAogcHl0ZXN0IGNhcHR1cmVzIGxvZyBtZXNzYWdlcyBvZiBsZXZlbCBgYFdBUk5JTkdgYCBv
ciBhYm92ZSBhdXRvbWF0aWNhbGx5IGFuZCBkaXNwbGF5cyB0aGVtIGluIHRoZWlyIG93biBzZWN0
aW9uCiBmb3IgZWFjaCBmYWlsZWQgdGVzdCBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgY2FwdHVyZWQg
c3Rkb3V0IGFuZCBzdGRlcnIuCiAKLVJ1bm5pbmcgd2l0aG91dCBvcHRpb25zOjoKK1J1bm5pbmcg
d2l0aG91dCBvcHRpb25zOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0CiAK
LVNob3dzIGZhaWxlZCB0ZXN0cyBsaWtlIHNvOjoKK1Nob3dzIGZhaWxlZCB0ZXN0cyBsaWtlIHNv
OgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBDYXB0dXJlZCBzdGRsb2cgY2FsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgdGVzdF9y
ZXBvcnRpbmcucHkgICAgMjYgV0FSTklORyAgdGV4dCBnb2luZyB0byBsb2dnZXIKQEAgLTI3LDEy
ICszMSwxNiBAQCBCeSBkZWZhdWx0IGVhY2ggY2FwdHVyZWQgbG9nIG1lc3NhZ2Ugc2hvd3MgdGhl
IG1vZHVsZSwgbGluZSBudW1iZXIsIGxvZyBsZXZlbAogYW5kIG1lc3NhZ2UuCiAKIElmIGRlc2ly
ZWQgdGhlIGxvZyBhbmQgZGF0ZSBmb3JtYXQgY2FuIGJlIHNwZWNpZmllZCB0bwotYW55dGhpbmcg
dGhhdCB0aGUgbG9nZ2luZyBtb2R1bGUgc3VwcG9ydHMgYnkgcGFzc2luZyBzcGVjaWZpYyBmb3Jt
YXR0aW5nIG9wdGlvbnM6OgorYW55dGhpbmcgdGhhdCB0aGUgbG9nZ2luZyBtb2R1bGUgc3VwcG9y
dHMgYnkgcGFzc2luZyBzcGVjaWZpYyBmb3JtYXR0aW5nIG9wdGlvbnM6CisKKy4uIGNvZGUtYmxv
Y2s6OiBiYXNoCiAKICAgICBweXRlc3QgLS1sb2ctZm9ybWF0PSIlKGFzY3RpbWUpcyAlKGxldmVs
bmFtZSlzICUobWVzc2FnZSlzIiBcCiAgICAgICAgICAgICAtLWxvZy1kYXRlLWZvcm1hdD0iJVkt
JW0tJWQgJUg6JU06JVMiCiAKLVNob3dzIGZhaWxlZCB0ZXN0cyBsaWtlIHNvOjoKK1Nob3dzIGZh
aWxlZCB0ZXN0cyBsaWtlIHNvOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAgICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRsb2cgY2FsbCAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAgICAgMjAxMC0wNC0xMCAxNDo0ODo0NCBXQVJOSU5HIHRleHQgZ29pbmcgdG8gbG9n
Z2VyCkBAIC01MSw3ICs1OSw5IEBAIFRoZXNlIG9wdGlvbnMgY2FuIGFsc28gYmUgY3VzdG9taXpl
ZCB0aHJvdWdoIGBgcHl0ZXN0LmluaWBgIGZpbGU6CiAgICAgbG9nX2RhdGVfZm9ybWF0ID0gJVkt
JW0tJWQgJUg6JU06JVMKIAogRnVydGhlciBpdCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlIHJlcG9y
dGluZyBvZiBjYXB0dXJlZCBjb250ZW50IChzdGRvdXQsCi1zdGRlcnIgYW5kIGxvZ3MpIG9uIGZh
aWxlZCB0ZXN0cyBjb21wbGV0ZWx5IHdpdGg6Ogorc3RkZXJyIGFuZCBsb2dzKSBvbiBmYWlsZWQg
dGVzdHMgY29tcGxldGVseSB3aXRoOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0
ZXN0IC0tc2hvdy1jYXB0dXJlPW5vCiAKQEAgLTEzMyw3ICsxNDMsNiBAQCB0aGUgcmVjb3JkcyBm
b3IgdGhlIGBgc2V0dXBgYCBhbmQgYGBjYWxsYGAgc3RhZ2VzIGR1cmluZyB0ZWFyZG93biBsaWtl
IHNvOgogCiAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKLQogICAgIEBweXRlc3QuZml4dHVyZQog
ICAgIGRlZiB3aW5kb3coY2FwbG9nKToKICAgICAgICAgd2luZG93ID0gY3JlYXRlX3dpbmRvdygp
CkBAIC0xOTgsNiArMjA3LDkgQEAgb3B0aW9uIG5hbWVzIGFyZToKICogYGBsb2dfZmlsZV9mb3Jt
YXRgYAogKiBgYGxvZ19maWxlX2RhdGVfZm9ybWF0YGAKIAorWW91IGNhbiBjYWxsIGBgc2V0X2xv
Z19wYXRoKClgYCB0byBjdXN0b21pemUgdGhlIGxvZ19maWxlIHBhdGggZHluYW1pY2FsbHkuIFRo
aXMgZnVuY3Rpb25hbGl0eQoraXMgY29uc2lkZXJlZCAqKmV4cGVyaW1lbnRhbCoqLgorCiAuLiBf
bG9nX3JlbGVhc2Vfbm90ZXM6CiAKIFJlbGVhc2Ugbm90ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9tYXJrLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9tYXJrLnJzdAppbmRleCBh
YTEyMTBiYjZiNWFmNGYxNGU2NDcxY2YwZjc0NWY4YzcwOTUxYjU5Li5kZTZhYjc4MjIyY2Q5ODA3
YTRjNTcwMTI2M2EwZjRlZWY0MTM5ZmRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
bWFyay5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL21hcmsucnN0CkBAIC0xLDkgKzEsNyBA
QAotCiAuLiBfbWFyazoKIAogTWFya2luZyB0ZXN0IGZ1bmN0aW9ucyB3aXRoIGF0dHJpYnV0ZXMK
LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIEJ5
IHVzaW5nIHRoZSBgYHB5dGVzdC5tYXJrYGAgaGVscGVyIHlvdSBjYW4gZWFzaWx5IHNldAogbWV0
YWRhdGEgb24geW91ciB0ZXN0IGZ1bmN0aW9ucy4gVGhlcmUgYXJlCkBAIC0xNyw4ICsxNSwxMCBA
QCBzb21lIGJ1aWx0aW4gbWFya2VycywgZm9yIGV4YW1wbGU6CiAgIHRvIHRoZSBzYW1lIHRlc3Qg
ZnVuY3Rpb24uCiAKIEl0J3MgZWFzeSB0byBjcmVhdGUgY3VzdG9tIG1hcmtlcnMgb3IgdG8gYXBw
bHkgbWFya2VycwotdG8gd2hvbGUgdGVzdCBjbGFzc2VzIG9yIG1vZHVsZXMuIFNlZSA6cmVmOmBt
YXJrIGV4YW1wbGVzYCBmb3IgZXhhbXBsZXMKLXdoaWNoIGFsc28gc2VydmUgYXMgZG9jdW1lbnRh
dGlvbi4KK3RvIHdob2xlIHRlc3QgY2xhc3NlcyBvciBtb2R1bGVzLiBUaG9zZSBtYXJrZXJzIGNh
biBiZSB1c2VkIGJ5IHBsdWdpbnMsIGFuZCBhbHNvCithcmUgY29tbW9ubHkgdXNlZCB0byA6cmVm
OmBzZWxlY3QgdGVzdHMgPG1hcmsgcnVuPmAgb24gdGhlIGNvbW1hbmQtbGluZSB3aXRoIHRoZSBg
YC1tYGAgb3B0aW9uLgorCitTZWUgOnJlZjpgbWFyayBleGFtcGxlc2AgZm9yIGV4YW1wbGVzIHdo
aWNoIGFsc28gc2VydmUgYXMgZG9jdW1lbnRhdGlvbi4KIAogLi4gbm90ZTo6CiAKQEAgLTI2LDEz
NCArMjYsNTMgQEAgd2hpY2ggYWxzbyBzZXJ2ZSBhcyBkb2N1bWVudGF0aW9uLgogICAgIDpyZWY6
YGZpeHR1cmVzIDxmaXh0dXJlcz5gLgogCiAKLVJhaXNpbmcgZXJyb3JzIG9uIHVua25vd24gbWFy
a3M6IC0tc3RyaWN0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
Ci1XaGVuIHRoZSBgYC0tc3RyaWN0YGAgY29tbWFuZC1saW5lIGZsYWcgaXMgcGFzc2VkLCBhbnkg
bWFya3Mgbm90IHJlZ2lzdGVyZWQgaW4gdGhlIGBgcHl0ZXN0LmluaWBgIGZpbGUgd2lsbCB0cmln
Z2VyIGFuIGVycm9yLgotCi1NYXJrcyBjYW4gYmUgcmVnaXN0ZXJlZCBsaWtlIHRoaXM6Ci0KLS4u
IGNvZGUtYmxvY2s6OiBpbmkKLQotICAgIFtweXRlc3RdCi0gICAgbWFya2VycyA9Ci0gICAgICAg
IHNsb3cKLSAgICAgICAgc2VyaWFsCitSZWdpc3RlcmluZyBtYXJrcworLS0tLS0tLS0tLS0tLS0t
LS0KIAotVGhpcyBjYW4gYmUgdXNlZCB0byBwcmV2ZW50IHVzZXJzIG1pc3R5cGluZyBtYXJrIG5h
bWVzIGJ5IGFjY2lkZW50LiBUZXN0IHN1aXRlcyB0aGF0IHdhbnQgdG8gZW5mb3JjZSB0aGlzCi1z
aG91bGQgYWRkIGBgLS1zdHJpY3RgYCB0byBgYGFkZG9wdHNgYDoKK1lvdSBjYW4gcmVnaXN0ZXIg
Y3VzdG9tIG1hcmtzIGluIHlvdXIgYGBweXRlc3QuaW5pYGAgZmlsZSBsaWtlIHRoaXM6CiAKIC4u
IGNvZGUtYmxvY2s6OiBpbmkKIAogICAgIFtweXRlc3RdCi0gICAgYWRkb3B0cyA9IC0tc3RyaWN0
CiAgICAgbWFya2VycyA9Ci0gICAgICAgIHNsb3cKKyAgICAgICAgc2xvdzogbWFya3MgdGVzdHMg
YXMgc2xvdyAoZGVzZWxlY3Qgd2l0aCAnLW0gIm5vdCBzbG93IicpCiAgICAgICAgIHNlcmlhbAog
CitOb3RlIHRoYXQgZXZlcnl0aGluZyBhZnRlciB0aGUgYGA6YGAgaXMgYW4gb3B0aW9uYWwgZGVz
Y3JpcHRpb24uCiAKLS4uIGBtYXJrZXItaXRlcmF0aW9uYAotCi1NYXJrZXIgcmV2YW1wIGFuZCBp
dGVyYXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0uLiB2ZXJzaW9uYWRkZWQ6
OiAzLjYKLQotcHl0ZXN0J3MgbWFya2VyIGltcGxlbWVudGF0aW9uIHRyYWRpdGlvbmFsbHkgd29y
a2VkIGJ5IHNpbXBseSB1cGRhdGluZyB0aGUgYGBfX2RpY3RfX2BgIGF0dHJpYnV0ZSBvZiBmdW5j
dGlvbnMgdG8gYWRkIG1hcmtlcnMsIGluIGEgY3VtdWxhdGl2ZSBtYW5uZXIuIEFzIGEgcmVzdWx0
IG9mIHRoZSB0aGlzLCBtYXJrZXJzIHdvdWxkIHVuaW50ZW5kZWx5IGJlIHBhc3NlZCBhbG9uZyBj
bGFzcyBoaWVyYXJjaGllcyBpbiBzdXJwcmlzaW5nIHdheXMgcGx1cyB0aGUgQVBJIGZvciByZXRy
aXZpbmcgdGhlbSB3YXMgaW5jb25zaXN0ZW50LCBhcyBtYXJrZXJzIGZyb20gcGFyYW1ldGVyaXph
dGlvbiB3b3VsZCBiZSBzdG9yZWQgZGlmZmVyZW50bHkgdGhhbiBtYXJrZXJzIGFwcGxpZWQgdXNp
bmcgdGhlIGBgQHB5dGVzdC5tYXJrYGAgZGVjb3JhdG9yIGFuZCBtYXJrZXJzIGFkZGVkIHZpYSBg
YG5vZGUuYWRkX21hcmtlcmBgLgotCi1UaGlzIHN0YXRlIG9mIHRoaW5ncyBtYWRlIGl0IHRlY2hu
aWNhbGx5IG5leHQgdG8gaW1wb3NzaWJsZSB0byB1c2UgZGF0YSBmcm9tIG1hcmtlcnMgY29ycmVj
dGx5IHdpdGhvdXQgaGF2aW5nIGEgZGVlcCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBpbnRlcm5hbHMs
IGxlYWRpbmcgdG8gc3VidGxlIGFuZCBoYXJkIHRvIHVuZGVyc3RhbmQgYnVncyBpbiBtb3JlIGFk
dmFuY2VkIHVzYWdlcy4KLQotRGVwZW5kaW5nIG9uIGhvdyBhIG1hcmtlciBnb3QgZGVjbGFyZWQv
Y2hhbmdlZCBvbmUgd291bGQgZ2V0IGVpdGhlciBhIGBgTWFya2VySW5mb2BgIHdoaWNoIG1pZ2h0
IGNvbnRhaW4gbWFya2VycyBmcm9tIHNpYmxpbmcgY2xhc3NlcywKLWBgTWFya0RlY29yYXRvcnNg
YCB3aGVuIG1hcmtzIGNhbWUgZnJvbSBwYXJhbWV0ZXJpemF0aW9uIG9yIGZyb20gYSBgYG5vZGUu
YWRkX21hcmtlcmBgIGNhbGwsIGRpc2NhcmRpbmcgcHJpb3IgbWFya3MuIEFsc28gYGBNYXJrZXJJ
bmZvYGAgYWN0cyBsaWtlIGEgc2luZ2xlIG1hcmssIHdoZW4gaXQgaW4gZmFjdCByZXByZXNlbnRz
IGEgbWVyZ2VkIHZpZXcgb24gbXVsdGlwbGUgbWFya3Mgd2l0aCB0aGUgc2FtZSBuYW1lLgotCi1P
biB0b3Agb2YgdGhhdCBtYXJrZXJzIHdoZXJlIG5vdCBhY2Nlc3NpYmxlIHRoZSBzYW1lIHdheSBm
b3IgbW9kdWxlcywgY2xhc3NlcywgYW5kIGZ1bmN0aW9ucy9tZXRob2RzLAotaW4gZmFjdCwgbWFy
a2VycyB3aGVyZSBvbmx5IGFjY2Vzc2libGUgaW4gZnVuY3Rpb25zLCBldmVuIGlmIHRoZXkgd2hl
cmUgZGVjbGFyZWQgb24gY2xhc3Nlcy9tb2R1bGVzLgotCi1BIG5ldyBBUEkgdG8gYWNjZXNzIG1h
cmtlcnMgaGFzIGJlZW4gaW50cm9kdWNlZCBpbiBweXRlc3QgMy42IGluIG9yZGVyIHRvIHNvbHZl
IHRoZSBwcm9ibGVtcyB3aXRoIHRoZSBpbml0aWFsIGRlc2lnbiwgcHJvdmlkaW5nIDpmdW5jOmBf
cHl0ZXN0Lm5vZGVzLk5vZGUuaXRlcl9tYXJrZXJzYCBtZXRob2QgdG8gaXRlcmF0ZSBvdmVyIG1h
cmtlcnMgaW4gYSBjb25zaXN0ZW50IG1hbm5lciBhbmQgcmV3b3JraW5nIHRoZSBpbnRlcm5hbHMs
IHdoaWNoIHNvbHZlZCBncmVhdCBkZWFsIG9mIHByb2JsZW1zIHdpdGggdGhlIGluaXRpYWwgZGVz
aWduLgotCi0KLS4uIF91cGRhdGUgbWFya2VyIGNvZGU6Ci0KLVVwZGF0aW5nIGNvZGUKLX5+fn5+
fn5+fn5+fn4KLQotVGhlIG9sZCBgYE5vZGUuZ2V0X21hcmtlcihuYW1lKWBgIGZ1bmN0aW9uIGlz
IGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBiZWNhdXNlIGl0IHJldHVybnMgYW4gaW50ZXJuYWwgYGBN
YXJrZXJJbmZvYGAgb2JqZWN0Ci13aGljaCBjb250YWlucyB0aGUgbWVyZ2VkIG5hbWUsIGBgKmFy
Z3NgYCBhbmQgYGAqKmt3YXJnc2BgIG9mIGFsbCB0aGUgbWFya2VycyB3aGljaCBhcHBseSB0byB0
aGF0IG5vZGUuCi0KLUluIGdlbmVyYWwgdGhlcmUgYXJlIHR3byBzY2VuYXJpb3Mgb24gaG93IG1h
cmtlcnMgc2hvdWxkIGJlIGhhbmRsZWQ6Ci0KLTEuIE1hcmtzIG92ZXJ3cml0ZSBlYWNoIG90aGVy
LiBPcmRlciBtYXR0ZXJzIGJ1dCB5b3Ugb25seSB3YW50IHRvIHRoaW5rIG9mIHlvdXIgbWFyayBh
cyBhIHNpbmdsZSBpdGVtLiBFLmcuCi1gYGxvZ19sZXZlbCgnaW5mbycpYGAgYXQgYSBtb2R1bGUg
bGV2ZWwgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IGBgbG9nX2xldmVsKCdkZWJ1ZycpYGAgZm9yIGEg
c3BlY2lmaWMgdGVzdC4KK0FsdGVybmF0aXZlbHksIHlvdSBjYW4gcmVnaXN0ZXIgbmV3IG1hcmtl
cnMgcHJvZ3JhbWF0aWNhbGx5IGluIGEKKzpyZWY6YHB5dGVzdF9jb25maWd1cmUgPGluaXRpYWxp
emF0aW9uLWhvb2tzPmAgaG9vazoKIAotICAgIEluIHRoaXMgY2FzZSByZXBsYWNlIHVzZSBgYE5v
ZGUuZ2V0X2Nsb3Nlc3RfbWFya2VyKG5hbWUpYGA6CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAK
LSAgICAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29u
ZmlnKToKKyAgICAgICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoCisgICAgICAgICAgICAibWFy
a2VycyIsICJlbnYobmFtZSk6IG1hcmsgdGVzdCB0byBydW4gb25seSBvbiBuYW1lZCBlbnZpcm9u
bWVudCIKKyAgICAgICAgKQogCi0gICAgICAgICMgcmVwbGFjZSB0aGlzOgotICAgICAgICBtYXJr
ZXIgPSBpdGVtLmdldF9tYXJrZXIoImxvZ19sZXZlbCIpCi0gICAgICAgIGlmIG1hcmtlcjoKLSAg
ICAgICAgICAgIGxldmVsID0gbWFya2VyLmFyZ3NbMF0KIAotICAgICAgICAjIGJ5IHRoaXM6Ci0g
ICAgICAgIG1hcmtlciA9IGl0ZW0uZ2V0X2Nsb3Nlc3RfbWFya2VyKCJsb2dfbGV2ZWwiKQotICAg
ICAgICBpZiBtYXJrZXI6Ci0gICAgICAgICAgICBsZXZlbCA9IG1hcmtlci5hcmdzWzBdCitSZWdp
c3RlcmVkIG1hcmtzIGFwcGVhciBpbiBweXRlc3QncyBoZWxwIHRleHQgYW5kIGRvIG5vdCBlbWl0
IHdhcm5pbmdzIChzZWUgdGhlIG5leHQgc2VjdGlvbikuIEl0CitpcyByZWNvbW1lbmRlZCB0aGF0
IHRoaXJkLXBhcnR5IHBsdWdpbnMgYWx3YXlzIDpyZWY6YHJlZ2lzdGVyIHRoZWlyIG1hcmtlcnMg
PHJlZ2lzdGVyaW5nLW1hcmtlcnM+YC4KIAotMi4gTWFya3MgY29tcG9zZSBhZGRpdGl2ZS4gRS5n
LiBgYHNraXBpZihjb25kaXRpb24pYGAgbWFya3MgbWVhbnMgeW91IGp1c3Qgd2FudCB0byBldmFs
dWF0ZSBhbGwgb2YgdGhlbSwKLW9yZGVyIGRvZXNuJ3QgZXZlbiBtYXR0ZXIuIFlvdSBwcm9iYWJs
eSB3YW50IHRvIHRoaW5rIG9mIHlvdXIgbWFya3MgYXMgYSBzZXQgaGVyZS4KKy4uIF91bmtub3du
LW1hcmtzOgogCi0gICBJbiB0aGlzIGNhc2UgaXRlcmF0ZSBvdmVyIGVhY2ggbWFyayBhbmQgaGFu
ZGxlIHRoZWlyIGBgKmFyZ3NgYCBhbmQgYGAqKmt3YXJnc2BgIGluZGl2aWR1YWxseS4KK1JhaXNp
bmcgZXJyb3JzIG9uIHVua25vd24gbWFya3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAotICAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgorVW5yZWdpc3RlcmVkIG1hcmtzIGFwcGxp
ZWQgd2l0aCB0aGUgYGBAcHl0ZXN0Lm1hcmsubmFtZV9vZl90aGVfbWFya2BgIGRlY29yYXRvcgor
d2lsbCBhbHdheXMgZW1pdCBhIHdhcm5pbmcgaW4gb3JkZXIgdG8gYXZvaWQgc2lsZW50bHkgZG9p
bmcgc29tZXRoaW5nCitzdXJwcmlzaW5nIGR1ZSB0byBtaXMtdHlwZWQgbmFtZXMuIEFzIGRlc2Ny
aWJlZCBpbiB0aGUgcHJldmlvdXMgc2VjdGlvbiwgeW91IGNhbiBkaXNhYmxlCit0aGUgd2Fybmlu
ZyBmb3IgY3VzdG9tIG1hcmtzIGJ5IHJlZ2lzdGVyaW5nIHRoZW0gaW4geW91ciBgYHB5dGVzdC5p
bmlgYCBmaWxlIG9yCit1c2luZyBhIGN1c3RvbSBgYHB5dGVzdF9jb25maWd1cmVgYCBob29rLgog
Ci0gICAgICAgICMgcmVwbGFjZSB0aGlzCi0gICAgICAgIHNraXBpZiA9IGl0ZW0uZ2V0X21hcmtl
cigic2tpcGlmIikKLSAgICAgICAgaWYgc2tpcGlmOgotICAgICAgICAgICAgZm9yIGNvbmRpdGlv
biBpbiBza2lwaWYuYXJnczoKLSAgICAgICAgICAgICAgICAjIGV2YWwgY29uZGl0aW9uCi0gICAg
ICAgICAgICAgICAgLi4uCitXaGVuIHRoZSBgYC0tc3RyaWN0LW1hcmtlcnNgYCBjb21tYW5kLWxp
bmUgZmxhZyBpcyBwYXNzZWQsIGFueSB1bmtub3duIG1hcmtzIGFwcGxpZWQKK3dpdGggdGhlIGBg
QHB5dGVzdC5tYXJrLm5hbWVfb2ZfdGhlX21hcmtgYCBkZWNvcmF0b3Igd2lsbCB0cmlnZ2VyIGFu
IGVycm9yLiBZb3UgY2FuCitlbmZvcmNlIHRoaXMgdmFsaWRhdGlvbiBpbiB5b3VyIHByb2plY3Qg
YnkgYWRkaW5nIGBgLS1zdHJpY3QtbWFya2Vyc2BgIHRvIGBgYWRkb3B0c2BgOgogCi0gICAgICAg
ICMgYnkgdGhpczoKLSAgICAgICAgZm9yIHNraXBpZiBpbiBpdGVtLml0ZXJfbWFya2Vycygic2tp
cGlmIik6Ci0gICAgICAgICAgICBjb25kaXRpb24gPSBza2lwaWYuYXJnc1swXQotICAgICAgICAg
ICAgIyBldmFsIGNvbmRpdGlvbgotCi0KLUlmIHlvdSBhcmUgdW5zdXJlIG9yIGhhdmUgYW55IHF1
ZXN0aW9ucywgcGxlYXNlIGNvbnNpZGVyIG9wZW5pbmcKLWBhbiBpc3N1ZSA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcz5gXy4KLQotUmVsYXRlZCBpc3N1ZXMKLX5+
fn5+fn5+fn5+fn5+Ci0KLUhlcmUgaXMgYSBub24tZXhoYXVzdGl2ZSBsaXN0IG9mIGlzc3VlcyBm
aXhlZCBieSB0aGUgbmV3IGltcGxlbWVudGF0aW9uOgotCi0qIE1hcmtzIGRvbid0IHBpY2sgdXAg
bmVzdGVkIGNsYXNzZXMgKGAjMTk5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzE5OT5gXykuCi0KLSogbWFya2VycyBzdGFpbnMgb24gYWxsIHJlbGF0ZWQgY2xh
c3NlcyAoYCM1NjggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
NTY4PmBfKS4KLQotKiBjb21iaW5pbmcgbWFya3MgLSBhcmdzIGFuZCBrd2FyZ3MgY2FsY3VsYXRp
b24gKGAjMjg5NyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8y
ODk3PmBfKS4KLQotKiBgYHJlcXVlc3Qubm9kZS5nZXRfbWFya2VyKCduYW1lJylgYCByZXR1cm5z
IGBgTm9uZWBgIGZvciBtYXJrZXJzIGFwcGxpZWQgaW4gY2xhc3NlcyAoYCM5MDIgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvOTAyPmBfKS4KLQotKiBtYXJrcyBh
cHBsaWVkIGluIHBhcmFtZXRyaXplIGFyZSBzdG9yZWQgYXMgbWFya2RlY29yYXRvciAoYCMyNDAw
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI0MDA+YF8pLgot
Ci0qIGZpeCBtYXJrZXIgaW50ZXJhY3Rpb24gaW4gYSBiYWNrd2FyZCBpbmNvbXBhdGlibGUgd2F5
IChgIzE2NzAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTY3
MD5gXykuCi0KLSogUmVmYWN0b3IgbWFya3MgdG8gZ2V0IHJpZCBvZiB0aGUgY3VycmVudCAibWFy
a3MgdHJhbnNmZXIiIG1lY2hhbmlzbSAoYCMyMzYzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzIzNjM+YF8pLgotCi0qIEludHJvZHVjZSBGdW5jdGlvbkRlZmlu
aXRpb24gbm9kZSwgdXNlIGl0IGluIGdlbmVyYXRlX3Rlc3RzIChgIzI1MjIgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjUyMj5gXykuCi0KLSogcmVtb3ZlIG5h
bWVkIG1hcmtlciBhdHRyaWJ1dGVzIGFuZCBjb2xsZWN0IG1hcmtlcnMgaW4gaXRlbXMgKGAjODkx
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzg5MT5gXykuCi0K
LSogc2tpcGlmIG1hcmsgZnJvbSBwYXJhbWV0cml6ZSBoaWRlcyBtb2R1bGUgbGV2ZWwgc2tpcGlm
IG1hcmsgKGAjMTU0MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8xNTQwPmBfKS4KLQotKiBza2lwaWYgKyBwYXJhbWV0cml6ZSBub3Qgc2tpcHBpbmcgdGVzdHMg
KGAjMTI5NiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMjk2
PmBfKS4KLQotKiBtYXJrZXIgdHJhbnNmZXIgaW5jb21wYXRpYmxlIHdpdGggaW5oZXJpdGFuY2Ug
KGAjNTM1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUzNT5g
XykuCi0KLU1vcmUgZGV0YWlscyBjYW4gYmUgZm91bmQgaW4gdGhlIGBvcmlnaW5hbCBQUiA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMzMxNz5gXy4KLQotLi4gbm90
ZTo6CisuLiBjb2RlLWJsb2NrOjogaW5pCiAKLSAgICBpbiBhIGZ1dHVyZSBtYWpvciByZWxhc2Ug
b2YgcHl0ZXN0IHdlIHdpbGwgaW50cm9kdWNlIGNsYXNzIGJhc2VkIG1hcmtlcnMsCi0gICAgYXQg
d2hpY2ggcG9pbnRzIG1hcmtlcnMgd2lsbCBubyBsb25nZXIgYmUgbGltaXRlZCB0byBpbnN0YW5j
ZXMgb2YgOnB5OmNsYXNzOmBNYXJrYAorICAgIFtweXRlc3RdCisgICAgYWRkb3B0cyA9IC0tc3Ry
aWN0LW1hcmtlcnMKKyAgICBtYXJrZXJzID0KKyAgICAgICAgc2xvdzogbWFya3MgdGVzdHMgYXMg
c2xvdyAoZGVzZWxlY3Qgd2l0aCAnLW0gIm5vdCBzbG93IicpCisgICAgICAgIHNlcmlhbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL21vbmtleXBhdGNoLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9tb25rZXlwYXRjaC5yc3QKaW5kZXggMWE2OWMzYTQyOWQyOGZjNWZjYmExOGIxMjJh
NTdlZTU2NzZjOTRkYy4uYzkzMDRlMGZiNzAwMDYyYWZhMDZhNGQ3OGE2ZDBhM2U5MTJlNzU1OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL21vbmtleXBhdGNoLnJzdAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vbW9ua2V5cGF0Y2gucnN0CkBAIC0xNiw3ICsxNiw3IEBAIGFuZCBhIGRp
c2N1c3Npb24gb2YgaXRzIG1vdGl2YXRpb24uCiAKIAogU2ltcGxlIGV4YW1wbGU6IG1vbmtleXBh
dGNoaW5nIGZ1bmN0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
IElmIHlvdSB3YW50IHRvIHByZXRlbmQgdGhhdCBgYG9zLmV4cGFuZHVzZXJgYCByZXR1cm5zIGEg
Y2VydGFpbgogZGlyZWN0b3J5LCB5b3UgY2FuIHVzZSB0aGUgOnB5Om1ldGg6YG1vbmtleXBhdGNo
LnNldGF0dHJgIG1ldGhvZCB0bwpAQCAtMzgsOCArMzgsOCBAQCBIZXJlIG91ciB0ZXN0IGZ1bmN0
aW9uIG1vbmtleXBhdGNoZXMgYGBvcy5wYXRoLmV4cGFuZHVzZXJgYCBhbmQKIHRoZW4gY2FsbHMg
aW50byBhIGZ1bmN0aW9uIHRoYXQgY2FsbHMgaXQuICBBZnRlciB0aGUgdGVzdCBmdW5jdGlvbgog
ZmluaXNoZXMgdGhlIGBgb3MucGF0aC5leHBhbmR1c2VyYGAgbW9kaWZpY2F0aW9uIHdpbGwgYmUg
dW5kb25lLgogCi1leGFtcGxlOiBwcmV2ZW50aW5nICJyZXF1ZXN0cyIgZnJvbSByZW1vdGUgb3Bl
cmF0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitHbG9iYWwgcGF0Y2ggZXhhbXBsZTogcHJldmVudGluZyAicmVxdWVzdHMiIGZyb20g
cmVtb3RlIG9wZXJhdGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBJZiB5b3Ugd2FudCB0byBwcmV2ZW50IHRo
ZSAicmVxdWVzdHMiIGxpYnJhcnkgZnJvbSBwZXJmb3JtaW5nIGh0dHAKIHJlcXVlc3RzIGluIGFs
bCB5b3VyIHRlc3RzLCB5b3UgY2FuIGRvOjoKQEAgLTgxLDYgKzgxLDgwIEBAIHNvIHRoYXQgYW55
IGF0dGVtcHRzIHdpdGhpbiB0ZXN0cyB0byBjcmVhdGUgaHR0cCByZXF1ZXN0cyB3aWxsIGZhaWwu
CiAgICAgU2VlIGlzc3VlIGAjMzI5MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8zMjkwPmBfIGZvciBkZXRhaWxzLgogCiAKK01vbmtleXBhdGNoaW5nIGVudmly
b25tZW50IHZhcmlhYmxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K0lmIHlvdSBhcmUgd29ya2luZyB3aXRoIGVudmlyb25tZW50IHZhcmlhYmxlcyB5b3Ugb2Z0ZW4g
bmVlZCB0byBzYWZlbHkgY2hhbmdlIHRoZSB2YWx1ZXMKK29yIGRlbGV0ZSB0aGVtIGZyb20gdGhl
IHN5c3RlbSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gYGBNb25rZXlwYXRjaGBgIHByb3ZpZGVzIGEg
bWVjaGFuaXNtCit0byBkbyB0aGlzIHVzaW5nIHRoZSBgYHNldGVudmBgIGFuZCBgYGRlbGVudmBg
IG1ldGhvZC4gT3VyIGV4YW1wbGUgY29kZSB0byB0ZXN0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0
aG9uCisKKyAgICAjIGNvbnRlbnRzIG9mIG91ciBvcmlnaW5hbCBjb2RlIGZpbGUgZS5nLiBjb2Rl
LnB5CisgICAgaW1wb3J0IG9zCisKKworICAgIGRlZiBnZXRfb3NfdXNlcl9sb3dlcigpOgorICAg
ICAgICAiIiJTaW1wbGUgcmV0cmlldmFsIGZ1bmN0aW9uLgorICAgICAgICBSZXR1cm5zIGxvd2Vy
Y2FzZSBVU0VSIG9yIHJhaXNlcyBFbnZpcm9ubWVudEVycm9yLiIiIgorICAgICAgICB1c2VybmFt
ZSA9IG9zLmdldGVudigiVVNFUiIpCisKKyAgICAgICAgaWYgdXNlcm5hbWUgaXMgTm9uZToKKyAg
ICAgICAgICAgIHJhaXNlIEVudmlyb25tZW50RXJyb3IoIlVTRVIgZW52aXJvbm1lbnQgaXMgbm90
IHNldC4iKQorCisgICAgICAgIHJldHVybiB1c2VybmFtZS5sb3dlcigpCisKK1RoZXJlIGFyZSB0
d28gcG90ZW50aWFsIHBhdGhzLiBGaXJzdCwgdGhlIGBgVVNFUmBgIGVudmlyb25tZW50IHZhcmlh
YmxlIGlzIHNldCB0byBhCit2YWx1ZS4gU2Vjb25kLCB0aGUgYGBVU0VSYGAgZW52aXJvbm1lbnQg
dmFyaWFibGUgZG9lcyBub3QgZXhpc3QuIFVzaW5nIGBgbW9ua2V5cGF0Y2hgYAorYm90aCBwYXRo
cyBjYW4gYmUgc2FmZWx5IHRlc3RlZCB3aXRob3V0IGltcGFjdGluZyB0aGUgcnVubmluZyBlbnZp
cm9ubWVudDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50cyBvZiBv
dXIgdGVzdCBmaWxlIGUuZy4gdGVzdF9jb2RlLnB5CisgICAgaW1wb3J0IHB5dGVzdAorCisKKyAg
ICBkZWYgdGVzdF91cHBlcl90b19sb3dlcihtb25rZXlwYXRjaCk6CisgICAgICAgICIiIlNldCB0
aGUgVVNFUiBlbnYgdmFyIHRvIGFzc2VydCB0aGUgYmVoYXZpb3IuIiIiCisgICAgICAgIG1vbmtl
eXBhdGNoLnNldGVudigiVVNFUiIsICJUZXN0aW5nVXNlciIpCisgICAgICAgIGFzc2VydCBnZXRf
b3NfdXNlcl9sb3dlcigpID09ICJ0ZXN0aW5ndXNlciIKKworCisgICAgZGVmIHRlc3RfcmFpc2Vf
ZXhjZXB0aW9uKG1vbmtleXBhdGNoKToKKyAgICAgICAgIiIiUmVtb3ZlIHRoZSBVU0VSIGVudiB2
YXIgYW5kIGFzc2VydCBFbnZpcm9ubWVudEVycm9yIGlzIHJhaXNlZC4iIiIKKyAgICAgICAgbW9u
a2V5cGF0Y2guZGVsZW52KCJVU0VSIiwgcmFpc2luZz1GYWxzZSkKKworICAgICAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoRW52aXJvbm1lbnRFcnJvcik6CisgICAgICAgICAgICBfID0gZ2V0X29zX3Vz
ZXJfbG93ZXIoKQorCitUaGlzIGJlaGF2aW9yIGNhbiBiZSBtb3ZlZCBpbnRvIGBgZml4dHVyZWBg
IHN0cnVjdHVyZXMgYW5kIHNoYXJlZCBhY3Jvc3MgdGVzdHM6CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRob24KKworICAgIGltcG9ydCBweXRlc3QKKworCisgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ZGVmIG1vY2tfZW52X3VzZXIobW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRl
bnYoIlVTRVIiLCAiVGVzdGluZ1VzZXIiKQorCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBk
ZWYgbW9ja19lbnZfbWlzc2luZyhtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLmRl
bGVudigiVVNFUiIsIHJhaXNpbmc9RmFsc2UpCisKKworICAgICMgTm90aWNlIHRoZSB0ZXN0cyBy
ZWZlcmVuY2UgdGhlIGZpeHR1cmVzIGZvciBtb2NrcworICAgIGRlZiB0ZXN0X3VwcGVyX3RvX2xv
d2VyKG1vY2tfZW52X3VzZXIpOgorICAgICAgICBhc3NlcnQgZ2V0X29zX3VzZXJfbG93ZXIoKSA9
PSAidGVzdGluZ3VzZXIiCisKKworICAgIGRlZiB0ZXN0X3JhaXNlX2V4Y2VwdGlvbihtb2NrX2Vu
dl9taXNzaW5nKToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEVudmlyb25tZW50RXJyb3Ip
OgorICAgICAgICAgICAgXyA9IGdldF9vc191c2VyX2xvd2VyKCkKKworCisKIC4uIGN1cnJlbnRt
b2R1bGU6OiBfcHl0ZXN0Lm1vbmtleXBhdGNoCiAKIEFQSSBSZWZlcmVuY2UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9ub3NlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9ub3NlLnJz
dAppbmRleCAxZjdiN2I2Mzg0NDhmYjI3MzU4ZDVhNGYwY2QzMWUxMWRkZDQxMWI2Li43MDFlYTQ0
ZWNhMWU5ZDk1YWE5ZDdlNGRhMzIyMWZmZDVlZTFiYWIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vbm9zZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL25vc2UucnN0CkBAIC0x
Miw3ICsxMiw5IEBAIFJ1bm5pbmcgdGVzdHMgd3JpdHRlbiBmb3Igbm9zZQogVXNhZ2UKIC0tLS0t
LS0tLS0tLS0KIAotQWZ0ZXIgOnJlZjpgaW5zdGFsbGF0aW9uYCB0eXBlOjoKK0FmdGVyIDpyZWY6
YGluc3RhbGxhdGlvbmAgdHlwZToKKworLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGhv
biBzZXR1cC5weSBkZXZlbG9wICAjIG1ha2Ugc3VyZSB0ZXN0cyBjYW4gaW1wb3J0IG91ciBwYWNr
YWdlCiAgICAgcHl0ZXN0ICAjIGluc3RlYWQgb2YgJ25vc2V0ZXN0cycKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9wYXJhbWV0cml6ZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcGFy
YW1ldHJpemUucnN0CmluZGV4IDY5M2NmMTkxM2JmOGJmMDMwZjMyZGQyOGI5NjQ0ZmQ4ZjlkOTUz
MzUuLjBhYmU3ZDcwMTM3MjllYzhjYmI3YTkwZTMxNWJjNTgwZjE5YzU3NTcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9wYXJhbWV0cml6ZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3BhcmFtZXRyaXplLnJzdApAQCAtMjksMzMgKzI5LDM2IEBAIHB5dGVzdCBlbmFibGVzIHRl
c3QgcGFyYW1ldHJpemF0aW9uIGF0IHNldmVyYWwgbGV2ZWxzOgogCiAuLiByZWdlbmRvYzogd2lw
ZQogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAyLjIKLS4uIHZlcnNpb25jaGFuZ2VkOjogMi40CisKKwog
ICAgIFNldmVyYWwgaW1wcm92ZW1lbnRzLgogCiBUaGUgYnVpbHRpbiA6cmVmOmBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSByZWZgIGRlY29yYXRvciBlbmFibGVzCiBwYXJhbWV0cml6YXRpb24gb2Yg
YXJndW1lbnRzIGZvciBhIHRlc3QgZnVuY3Rpb24uICBIZXJlIGlzIGEgdHlwaWNhbCBleGFtcGxl
CiBvZiBhIHRlc3QgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIGNoZWNraW5nIHRoYXQgYSBjZXJ0
YWluIGlucHV0IGxlYWRzCi10byBhbiBleHBlY3RlZCBvdXRwdXQ6OgordG8gYW4gZXhwZWN0ZWQg
b3V0cHV0OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICAjIGNvbnRlbnQgb2YgdGVz
dF9leHBlY3RhdGlvbi5weQogICAgIGltcG9ydCBweXRlc3QKLSAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoInRlc3RfaW5wdXQsZXhwZWN0ZWQiLCBbCi0gICAgICAgICgiMys1IiwgOCksCi0g
ICAgICAgICgiMis0IiwgNiksCi0gICAgICAgICgiNio5IiwgNDIpLAotICAgIF0pCisKKworICAg
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGVzdF9pbnB1dCxleHBlY3RlZCIsIFsoIjMrNSIs
IDgpLCAoIjIrNCIsIDYpLCAoIjYqOSIsIDQyKV0pCiAgICAgZGVmIHRlc3RfZXZhbCh0ZXN0X2lu
cHV0LCBleHBlY3RlZCk6CiAgICAgICAgIGFzc2VydCBldmFsKHRlc3RfaW5wdXQpID09IGV4cGVj
dGVkCiAKIEhlcmUsIHRoZSBgYEBwYXJhbWV0cml6ZWBgIGRlY29yYXRvciBkZWZpbmVzIHRocmVl
IGRpZmZlcmVudCBgYCh0ZXN0X2lucHV0LGV4cGVjdGVkKWBgCiB0dXBsZXMgc28gdGhhdCB0aGUg
YGB0ZXN0X2V2YWxgYCBmdW5jdGlvbiB3aWxsIHJ1biB0aHJlZSB0aW1lcyB1c2luZwotdGhlbSBp
biB0dXJuOjoKK3RoZW0gaW4gdHVybjoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAg
JCBweXRlc3QKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0
YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXggLS0g
UHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAgICBy
b290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4IC0t
IFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAg
Y2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVH
RU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVkIDMgaXRlbXMKIAogICAgIHRlc3RfZXhwZWN0YXRp
b24ucHkgLi5GICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsx
MDAlXQpAQCAtNjUsMTkgKzY4LDMwIEBAIHRoZW0gaW4gdHVybjo6CiAKICAgICB0ZXN0X2lucHV0
ID0gJzYqOScsIGV4cGVjdGVkID0gNDIKIAotICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInRlc3RfaW5wdXQsZXhwZWN0ZWQiLCBbCi0gICAgICAgICAgICAoIjMrNSIsIDgpLAotICAg
ICAgICAgICAgKCIyKzQiLCA2KSwKLSAgICAgICAgICAgICgiNio5IiwgNDIpLAotICAgICAgICBd
KQorICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRlc3RfaW5wdXQsZXhwZWN0ZWQi
LCBbKCIzKzUiLCA4KSwgKCIyKzQiLCA2KSwgKCI2KjkiLCA0MildKQogICAgICAgICBkZWYgdGVz
dF9ldmFsKHRlc3RfaW5wdXQsIGV4cGVjdGVkKToKICAgICA+ICAgICAgIGFzc2VydCBldmFsKHRl
c3RfaW5wdXQpID09IGV4cGVjdGVkCiAgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0
IDU0ID09IDQyCiAgICAgRSAgICAgICAgKyAgd2hlcmUgNTQgPSBldmFsKCc2KjknKQogCi0gICAg
dGVzdF9leHBlY3RhdGlvbi5weTo4OiBBc3NlcnRpb25FcnJvcgorICAgIHRlc3RfZXhwZWN0YXRp
b24ucHk6NjogQXNzZXJ0aW9uRXJyb3IKICAgICA9PT09PT09PT09PT09PT09PT09PSAxIGZhaWxl
ZCwgMiBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09CiAKKy4uIG5v
dGU6OgorCisgICAgcHl0ZXN0IGJ5IGRlZmF1bHQgZXNjYXBlcyBhbnkgbm9uLWFzY2lpIGNoYXJh
Y3RlcnMgdXNlZCBpbiB1bmljb2RlIHN0cmluZ3MKKyAgICBmb3IgdGhlIHBhcmFtZXRyaXphdGlv
biBiZWNhdXNlIGl0IGhhcyBzZXZlcmFsIGRvd25zaWRlcy4KKyAgICBJZiBob3dldmVyIHlvdSB3
b3VsZCBsaWtlIHRvIHVzZSB1bmljb2RlIHN0cmluZ3MgaW4gcGFyYW1ldHJpemF0aW9uIGFuZCBz
ZWUgdGhlbSBpbiB0aGUgdGVybWluYWwgYXMgaXMgKG5vbi1lc2NhcGVkKSwgdXNlIHRoaXMgb3B0
aW9uIGluIHlvdXIgYGBweXRlc3QuaW5pYGA6CisKKyAgICAuLiBjb2RlLWJsb2NrOjogaW5pCisK
KyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgZGlzYWJsZV90ZXN0X2lkX2VzY2FwaW5nX2FuZF9m
b3JmZWl0X2FsbF9yaWdodHNfdG9fY29tbXVuaXR5X3N1cHBvcnQgPSBUcnVlCisKKyAgICBLZWVw
IGluIG1pbmQgaG93ZXZlciB0aGF0IHRoaXMgbWlnaHQgY2F1c2UgdW53YW50ZWQgc2lkZSBlZmZl
Y3RzIGFuZAorICAgIGV2ZW4gYnVncyBkZXBlbmRpbmcgb24gdGhlIE9TIHVzZWQgYW5kIHBsdWdp
bnMgY3VycmVudGx5IGluc3RhbGxlZCwgc28gdXNlIGl0IGF0IHlvdXIgb3duIHJpc2suCisKKwog
QXMgZGVzaWduZWQgaW4gdGhpcyBleGFtcGxlLCBvbmx5IG9uZSBwYWlyIG9mIGlucHV0L291dHB1
dCB2YWx1ZXMgZmFpbHMKIHRoZSBzaW1wbGUgdGVzdCBmdW5jdGlvbi4gIEFuZCBhcyB1c3VhbCB3
aXRoIHRlc3QgZnVuY3Rpb24gYXJndW1lbnRzLAogeW91IGNhbiBzZWUgdGhlIGBgaW5wdXRgYCBh
bmQgYGBvdXRwdXRgYCB2YWx1ZXMgaW4gdGhlIHRyYWNlYmFjay4KQEAgLTg2LDI1ICsxMDAsMzAg
QEAgTm90ZSB0aGF0IHlvdSBjb3VsZCBhbHNvIHVzZSB0aGUgcGFyYW1ldHJpemUgbWFya2VyIG9u
IGEgY2xhc3Mgb3IgYSBtb2R1bGUKIChzZWUgOnJlZjpgbWFya2ApIHdoaWNoIHdvdWxkIGludm9r
ZSBzZXZlcmFsIGZ1bmN0aW9ucyB3aXRoIHRoZSBhcmd1bWVudCBzZXRzLgogCiBJdCBpcyBhbHNv
IHBvc3NpYmxlIHRvIG1hcmsgaW5kaXZpZHVhbCB0ZXN0IGluc3RhbmNlcyB3aXRoaW4gcGFyYW1l
dHJpemUsCi1mb3IgZXhhbXBsZSB3aXRoIHRoZSBidWlsdGluIGBgbWFyay54ZmFpbGBgOjoKK2Zv
ciBleGFtcGxlIHdpdGggdGhlIGJ1aWx0aW4gYGBtYXJrLnhmYWlsYGA6CisKKy4uIGNvZGUtYmxv
Y2s6OiBweXRob24KIAogICAgICMgY29udGVudCBvZiB0ZXN0X2V4cGVjdGF0aW9uLnB5CiAgICAg
aW1wb3J0IHB5dGVzdAotICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGVzdF9pbnB1dCxl
eHBlY3RlZCIsIFsKLSAgICAgICAgKCIzKzUiLCA4KSwKLSAgICAgICAgKCIyKzQiLCA2KSwKLSAg
ICAgICAgcHl0ZXN0LnBhcmFtKCI2KjkiLCA0MiwKLSAgICAgICAgICAgICAgICAgICAgIG1hcmtz
PXB5dGVzdC5tYXJrLnhmYWlsKSwKLSAgICBdKQorCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoCisgICAgICAgICJ0ZXN0X2lucHV0LGV4cGVjdGVkIiwKKyAgICAgICAgWygiMys1Iiwg
OCksICgiMis0IiwgNiksIHB5dGVzdC5wYXJhbSgiNio5IiwgNDIsIG1hcmtzPXB5dGVzdC5tYXJr
LnhmYWlsKV0sCisgICAgKQogICAgIGRlZiB0ZXN0X2V2YWwodGVzdF9pbnB1dCwgZXhwZWN0ZWQp
OgogICAgICAgICBhc3NlcnQgZXZhbCh0ZXN0X2lucHV0KSA9PSBleHBlY3RlZAogCi1MZXQncyBy
dW4gdGhpczo6CitMZXQncyBydW4gdGhpczoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAg
ICAgJCBweXRlc3QKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9u
IHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZvcm0gbGludXgg
LS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKLSAg
ICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRmb3JtIGxpbnV4
IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Cisg
ICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAk
UkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVkIDMgaXRlbXMKIAogICAgIHRlc3RfZXhwZWN0
YXRpb24ucHkgLi54ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsxMDAlXQpAQCAtMTE0LDEwICsxMzMsMTggQEAgTGV0J3MgcnVuIHRoaXM6OgogVGhlIG9uZSBw
YXJhbWV0ZXIgc2V0IHdoaWNoIGNhdXNlZCBhIGZhaWx1cmUgcHJldmlvdXNseSBub3cKIHNob3dz
IHVwIGFzIGFuICJ4ZmFpbGVkIChleHBlY3RlZCB0byBmYWlsKSIgdGVzdC4KIAorSW4gY2FzZSB0
aGUgdmFsdWVzIHByb3ZpZGVkIHRvIGBgcGFyYW1ldHJpemVgYCByZXN1bHQgaW4gYW4gZW1wdHkg
bGlzdCAtIGZvcgorZXhhbXBsZSwgaWYgdGhleSdyZSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgYnkg
c29tZSBmdW5jdGlvbiAtIHRoZSBiZWhhdmlvdXIgb2YKK3B5dGVzdCBpcyBkZWZpbmVkIGJ5IHRo
ZSA6Y29uZnZhbDpgZW1wdHlfcGFyYW1ldGVyX3NldF9tYXJrYCBvcHRpb24uCisKIFRvIGdldCBh
bGwgY29tYmluYXRpb25zIG9mIG11bHRpcGxlIHBhcmFtZXRyaXplZCBhcmd1bWVudHMgeW91IGNh
biBzdGFjawotYGBwYXJhbWV0cml6ZWBgIGRlY29yYXRvcnM6OgorYGBwYXJhbWV0cml6ZWBgIGRl
Y29yYXRvcnM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgIGltcG9ydCBweXRlc3QK
KworCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ4IiwgWzAsIDFdKQogICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgieSIsIFsyLCAzXSkKICAgICBkZWYgdGVzdF9mb28oeCwgeSk6
CkBAIC0xNDEsMzQgKzE2OCw0OCBAQCBwYXJhbWV0cml6YXRpb24uCiAKIEZvciBleGFtcGxlLCBs
ZXQncyBzYXkgd2Ugd2FudCB0byBydW4gYSB0ZXN0IHRha2luZyBzdHJpbmcgaW5wdXRzIHdoaWNo
CiB3ZSB3YW50IHRvIHNldCB2aWEgYSBuZXcgYGBweXRlc3RgYCBjb21tYW5kIGxpbmUgb3B0aW9u
LiAgTGV0J3MgZmlyc3Qgd3JpdGUKLWEgc2ltcGxlIHRlc3QgYWNjZXB0aW5nIGEgYGBzdHJpbmdp
bnB1dGBgIGZpeHR1cmUgZnVuY3Rpb24gYXJndW1lbnQ6OgorYSBzaW1wbGUgdGVzdCBhY2NlcHRp
bmcgYSBgYHN0cmluZ2lucHV0YGAgZml4dHVyZSBmdW5jdGlvbiBhcmd1bWVudDoKKworLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyBjb250ZW50IG9mIHRlc3Rfc3RyaW5ncy5weQogCisK
ICAgICBkZWYgdGVzdF92YWxpZF9zdHJpbmcoc3RyaW5naW5wdXQpOgogICAgICAgICBhc3NlcnQg
c3RyaW5naW5wdXQuaXNhbHBoYSgpCiAKIE5vdyB3ZSBhZGQgYSBgYGNvbmZ0ZXN0LnB5YGAgZmls
ZSBjb250YWluaW5nIHRoZSBhZGRpdGlvbiBvZiBhCi1jb21tYW5kIGxpbmUgb3B0aW9uIGFuZCB0
aGUgcGFyYW1ldHJpemF0aW9uIG9mIG91ciB0ZXN0IGZ1bmN0aW9uOjoKK2NvbW1hbmQgbGluZSBv
cHRpb24gYW5kIHRoZSBwYXJhbWV0cml6YXRpb24gb2Ygb3VyIHRlc3QgZnVuY3Rpb246CisKKy4u
IGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQogCisK
ICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgICAgICBwYXJzZXIuYWRkb3B0
aW9uKCItLXN0cmluZ2lucHV0IiwgYWN0aW9uPSJhcHBlbmQiLCBkZWZhdWx0PVtdLAotICAgICAg
ICAgICAgaGVscD0ibGlzdCBvZiBzdHJpbmdpbnB1dHMgdG8gcGFzcyB0byB0ZXN0IGZ1bmN0aW9u
cyIpCisgICAgICAgIHBhcnNlci5hZGRvcHRpb24oCisgICAgICAgICAgICAiLS1zdHJpbmdpbnB1
dCIsCisgICAgICAgICAgICBhY3Rpb249ImFwcGVuZCIsCisgICAgICAgICAgICBkZWZhdWx0PVtd
LAorICAgICAgICAgICAgaGVscD0ibGlzdCBvZiBzdHJpbmdpbnB1dHMgdG8gcGFzcyB0byB0ZXN0
IGZ1bmN0aW9ucyIsCisgICAgICAgICkKKwogCiAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0
cyhtZXRhZnVuYyk6Ci0gICAgICAgIGlmICdzdHJpbmdpbnB1dCcgaW4gbWV0YWZ1bmMuZml4dHVy
ZW5hbWVzOgotICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoInN0cmluZ2lucHV0IiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFmdW5jLmNvbmZpZy5nZXRvcHRp
b24oJ3N0cmluZ2lucHV0JykpCisgICAgICAgIGlmICJzdHJpbmdpbnB1dCIgaW4gbWV0YWZ1bmMu
Zml4dHVyZW5hbWVzOgorICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoInN0cmluZ2lu
cHV0IiwgbWV0YWZ1bmMuY29uZmlnLmdldG9wdGlvbigic3RyaW5naW5wdXQiKSkKIAotSWYgd2Ug
bm93IHBhc3MgdHdvIHN0cmluZ2lucHV0IHZhbHVlcywgb3VyIHRlc3Qgd2lsbCBydW4gdHdpY2U6
OgorSWYgd2Ugbm93IHBhc3MgdHdvIHN0cmluZ2lucHV0IHZhbHVlcywgb3VyIHRlc3Qgd2lsbCBy
dW4gdHdpY2U6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xIC0t
c3RyaW5naW5wdXQ9ImhlbGxvIiAtLXN0cmluZ2lucHV0PSJ3b3JsZCIgdGVzdF9zdHJpbmdzLnB5
CiAgICAgLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWzEwMCVdCiAgICAgMiBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzCiAK
LUxldCdzIGFsc28gcnVuIHdpdGggYSBzdHJpbmdpbnB1dCB0aGF0IHdpbGwgbGVhZCB0byBhIGZh
aWxpbmcgdGVzdDo6CitMZXQncyBhbHNvIHJ1biB3aXRoIGEgc3RyaW5naW5wdXQgdGhhdCB3aWxs
IGxlYWQgdG8gYSBmYWlsaW5nIHRlc3Q6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAg
ICQgcHl0ZXN0IC1xIC0tc3RyaW5naW5wdXQ9IiEiIHRlc3Rfc3RyaW5ncy5weQogICAgIEYgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsxMDAlXQpAQCAtMTgzLDE5ICsyMjQsMjEgQEAgTGV0J3MgYWxzbyBydW4gd2l0aCBh
IHN0cmluZ2lucHV0IHRoYXQgd2lsbCBsZWFkIHRvIGEgZmFpbGluZyB0ZXN0OjoKICAgICBFICAg
ICAgICArICB3aGVyZSBGYWxzZSA9IDxidWlsdC1pbiBtZXRob2QgaXNhbHBoYSBvZiBzdHIgb2Jq
ZWN0IGF0IDB4ZGVhZGJlZWY+KCkKICAgICBFICAgICAgICArICAgIHdoZXJlIDxidWlsdC1pbiBt
ZXRob2QgaXNhbHBoYSBvZiBzdHIgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+ID0gJyEnLmlzYWxwaGEK
IAotICAgIHRlc3Rfc3RyaW5ncy5weTozOiBBc3NlcnRpb25FcnJvcgorICAgIHRlc3Rfc3RyaW5n
cy5weTo0OiBBc3NlcnRpb25FcnJvcgogICAgIDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcwogCiBB
cyBleHBlY3RlZCBvdXIgdGVzdCBmdW5jdGlvbiBmYWlscy4KIAogSWYgeW91IGRvbid0IHNwZWNp
ZnkgYSBzdHJpbmdpbnB1dCBpdCB3aWxsIGJlIHNraXBwZWQgYmVjYXVzZQogYGBtZXRhZnVuYy5w
YXJhbWV0cml6ZSgpYGAgd2lsbCBiZSBjYWxsZWQgd2l0aCBhbiBlbXB0eSBwYXJhbWV0ZXIKLWxp
c3Q6OgorbGlzdDoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3QgLXEg
LXJzIHRlc3Rfc3RyaW5ncy5weQogICAgIHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQogICAgID09PT09PT09
PT09PT09PT09PT09PT09PT0gc2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8gPT09PT09PT09PT09PT09
PT09PT09PT09PT0KLSAgICBTS0lQIFsxXSB0ZXN0X3N0cmluZ3MucHk6IGdvdCBlbXB0eSBwYXJh
bWV0ZXIgc2V0IFsnc3RyaW5naW5wdXQnXSwgZnVuY3Rpb24gdGVzdF92YWxpZF9zdHJpbmcgYXQg
JFJFR0VORE9DX1RNUERJUi90ZXN0X3N0cmluZ3MucHk6MQorICAgIFNLSVBQRUQgWzFdIHRlc3Rf
c3RyaW5ncy5weTogZ290IGVtcHR5IHBhcmFtZXRlciBzZXQgWydzdHJpbmdpbnB1dCddLCBmdW5j
dGlvbiB0ZXN0X3ZhbGlkX3N0cmluZyBhdCAkUkVHRU5ET0NfVE1QRElSL3Rlc3Rfc3RyaW5ncy5w
eToyCiAgICAgMSBza2lwcGVkIGluIDAuMTIgc2Vjb25kcwogCiBOb3RlIHRoYXQgd2hlbiBjYWxs
aW5nIGBgbWV0YWZ1bmMucGFyYW1ldHJpemVgYCBtdWx0aXBsZSB0aW1lcyB3aXRoIGRpZmZlcmVu
dCBwYXJhbWV0ZXIgc2V0cywgYWxsIHBhcmFtZXRlciBuYW1lcyBhY3Jvc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9wbHVnaW5zLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wbHVn
aW5zLnJzdAppbmRleCA5ZGRiYTVkMzhjYTY5Y2EwNzY1MWQwZjMyNjVhZGU4MGNlMGVjOGZlLi5l
ODA5NjkxOTNhYmQ0ZjM0ZTdiNjI1YjQ5ZmVlMTI0OTNkMTZkOGU0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vcGx1Z2lucy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3BsdWdp
bnMucnN0CkBAIC0yNyw3ICsyNyw3IEBAIEhlcmUgaXMgYSBsaXR0bGUgYW5ub3RhdGVkIGxpc3Qg
Zm9yIHNvbWUgcG9wdWxhciBwbHVnaW5zOgogICBmb3IgYHR3aXN0ZWQgPGh0dHA6Ly90d2lzdGVk
bWF0cml4LmNvbT5gXyBhcHBzLCBzdGFydGluZyBhIHJlYWN0b3IgYW5kCiAgIHByb2Nlc3Npbmcg
ZGVmZXJyZWRzIGZyb20gdGVzdCBmdW5jdGlvbnMuCiAKLSogYHB5dGVzdC1jb3YgPGh0dHBzOi8v
cHlwaS5vcmcvcHJvamVjdC9weXRlc3QtY292Lz5gXzoKKyogYHB5dGVzdC1jb3YgPGh0dHBzOi8v
cHlwaS5vcmcvcHJvamVjdC9weXRlc3QtY292Lz5gX186CiAgIGNvdmVyYWdlIHJlcG9ydGluZywg
Y29tcGF0aWJsZSB3aXRoIGRpc3RyaWJ1dGVkIHRlc3RpbmcKIAogKiBgcHl0ZXN0LXhkaXN0IDxo
dHRwczovL3B5cGkub3JnL3Byb2plY3QvcHl0ZXN0LXhkaXN0Lz5gXzoKQEAgLTU5LDkgKzU5LDkg
QEAgVG8gc2VlIGEgY29tcGxldGUgbGlzdCBvZiBhbGwgcGx1Z2lucyB3aXRoIHRoZWlyIGxhdGVz
dCB0ZXN0aW5nCiBzdGF0dXMgYWdhaW5zdCBkaWZmZXJlbnQgcHl0ZXN0IGFuZCBQeXRob24gdmVy
c2lvbnMsIHBsZWFzZSB2aXNpdAogYHBsdWdpbmNvbXBhdCA8aHR0cDovL3BsdWdpbmNvbXBhdC5o
ZXJva3VhcHAuY29tLz5gXy4KIAotWW91IG1heSBhbHNvIGRpc2NvdmVyIG1vcmUgcGx1Z2lucyB0
aHJvdWdoIGEgYHB5dGVzdC0gcHlwaS5weXRob24ub3JnIHNlYXJjaGBfLgorWW91IG1heSBhbHNv
IGRpc2NvdmVyIG1vcmUgcGx1Z2lucyB0aHJvdWdoIGEgYHB5dGVzdC0gcHlwaS5vcmcgc2VhcmNo
YF8uCiAKLS4uIF9gcHl0ZXN0LSBweXBpLnB5dGhvbi5vcmcgc2VhcmNoYDogaHR0cHM6Ly9weXBp
Lm9yZy9zZWFyY2gvP3E9cHl0ZXN0LQorLi4gX2BweXRlc3QtIHB5cGkub3JnIHNlYXJjaGA6IGh0
dHBzOi8vcHlwaS5vcmcvc2VhcmNoLz9xPXB5dGVzdC0KIAogCiAuLiBfYGF2YWlsYWJsZSBpbnN0
YWxsYWJsZSBwbHVnaW5zYDoKQEAgLTY5LDIzICs2OSwyNiBAQCBZb3UgbWF5IGFsc28gZGlzY292
ZXIgbW9yZSBwbHVnaW5zIHRocm91Z2ggYSBgcHl0ZXN0LSBweXBpLnB5dGhvbi5vcmcgc2VhcmNo
YF8uCiBSZXF1aXJpbmcvTG9hZGluZyBwbHVnaW5zIGluIGEgdGVzdCBtb2R1bGUgb3IgY29uZnRl
c3QgZmlsZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotWW91IGNhbiByZXF1aXJlIHBsdWdpbnMgaW4gYSB0ZXN0IG1vZHVsZSBv
ciBhIGNvbmZ0ZXN0IGZpbGUgbGlrZSB0aGlzOjoKK1lvdSBjYW4gcmVxdWlyZSBwbHVnaW5zIGlu
IGEgdGVzdCBtb2R1bGUgb3IgYSBjb25mdGVzdCBmaWxlIGxpa2UgdGhpczoKIAotICAgIHB5dGVz
dF9wbHVnaW5zID0gIm15YXBwLnRlc3RzdXBwb3J0Lm15cGx1Z2luIiwKKy4uIGNvZGUtYmxvY2s6
OiBweXRob24KKworICAgIHB5dGVzdF9wbHVnaW5zID0gKCJteWFwcC50ZXN0c3VwcG9ydC5teXBs
dWdpbiIsKQogCiBXaGVuIHRoZSB0ZXN0IG1vZHVsZSBvciBjb25mdGVzdCBwbHVnaW4gaXMgbG9h
ZGVkIHRoZSBzcGVjaWZpZWQgcGx1Z2lucwogd2lsbCBiZSBsb2FkZWQgYXMgd2VsbC4KIAotICAg
IHB5dGVzdF9wbHVnaW5zID0gIm15YXBwLnRlc3RzdXBwb3J0Lm15cGx1Z2luIgotCi13aGljaCB3
aWxsIGltcG9ydCB0aGUgc3BlY2lmaWVkIG1vZHVsZSBhcyBhIGBgcHl0ZXN0YGAgcGx1Z2luLgot
CiAuLiBub3RlOjoKICAgICBSZXF1aXJpbmcgcGx1Z2lucyB1c2luZyBhIGBgcHl0ZXN0X3BsdWdp
bnNgYCB2YXJpYWJsZSBpbiBub24tcm9vdAogICAgIGBgY29uZnRlc3QucHlgYCBmaWxlcyBpcyBk
ZXByZWNhdGVkLiBTZWUKICAgICA6cmVmOmBmdWxsIGV4cGxhbmF0aW9uIDxyZXF1aXJpbmcgcGx1
Z2lucyBpbiBub24tcm9vdCBjb25mdGVzdHM+YAogICAgIGluIHRoZSBXcml0aW5nIHBsdWdpbnMg
c2VjdGlvbi4KIAorLi4gbm90ZTo6CisgICBUaGUgbmFtZSBgYHB5dGVzdF9wbHVnaW5zYGAgaXMg
cmVzZXJ2ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBhcyBhCisgICBuYW1lIGZvciBhIGN1c3Rv
bSBwbHVnaW4gbW9kdWxlLgorCisKIC4uIF9gZmluZHBsdWdpbm5hbWVgOgogCiBGaW5kaW5nIG91
dCB3aGljaCBwbHVnaW5zIGFyZSBhY3RpdmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9wcm9wb3NhbHMvcGFyYW1ldHJpemVfd2l0aF9maXh0dXJlcy5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vcHJvcG9zYWxzL3BhcmFtZXRyaXplX3dpdGhfZml4dHVyZXMucnN0CmluZGV4IDkyZTc5
OTNmMzkwNmFlMDZmM2NkMjNlNTA5NGVmZDUzZGIxMjU1YzguLmI3Mjk1ZjI3YWIyMThiZTQ0YmU1
YTU3MDU3OTFkYmYxNTc5ZmQ3YzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9w
b3NhbHMvcGFyYW1ldHJpemVfd2l0aF9maXh0dXJlcy5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Byb3Bvc2Fscy9wYXJhbWV0cml6ZV93aXRoX2ZpeHR1cmVzLnJzdApAQCAtNzUsNyArNzUs
NyBAQCBJc3N1ZXMKIC0tLS0tLQogCiAqIEJ5IHVzaW5nIGBgcmVxdWVzdC5nZXRmdW5jYXJndmFs
dWUoKWBgIHdlIHJlbHkgb24gYWN0dWFsIGZpeHR1cmUgZnVuY3Rpb24KLSAgZXhlY3V0aW9uIHRv
IGtub3cgd2hhdCBmaXh0dXJlcyBhcmUgaW52b2x2ZWQsIGR1ZSB0byBpdCdzIGR5bmFtaWMgbmF0
dXJlCisgIGV4ZWN1dGlvbiB0byBrbm93IHdoYXQgZml4dHVyZXMgYXJlIGludm9sdmVkLCBkdWUg
dG8gaXRzIGR5bmFtaWMgbmF0dXJlCiAqIE1vcmUgaW1wb3J0YW50bHksIGBgcmVxdWVzdC5nZXRm
dW5jYXJndmFsdWUoKWBgIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoCiAgIHBhcmFtZXRyaXplZCBm
aXh0dXJlcywgc3VjaCBhcyBgYGV4dHJhX2NvbnRleHRgYAogKiBUaGlzIGlzIHZlcnkgaW5jb252
ZW5pZW50IGlmIHlvdSB3aXNoIHRvIGV4dGVuZCBhbiBleGlzdGluZyB0ZXN0IHN1aXRlIGJ5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHkyNy1weTM0LWRlcHJlY2F0aW9uLnJzdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9weTI3LXB5MzQtZGVwcmVjYXRpb24ucnN0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBjYTk3NTM5YzgyN2MzOWE1NTE4M2RiYWM3ZWE3MTA5YTU4ZTJiN2EKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHkyNy1weTM0LWRlcHJlY2F0aW9uLnJzdApAQCAtMCww
ICsxLDI2IEBACitQeXRob24gMi43IGFuZCAzLjQgc3VwcG9ydCBwbGFuCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK1B5dGhvbiAyLjcgRU9MIGlzIGZhc3QgYXBwcm9hY2hpbmcs
IHdpdGgKK3Vwc3RyZWFtIHN1cHBvcnQgYGVuZGluZyBpbiAyMDIwIDxodHRwczovL2xlZ2FjeS5w
eXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMzczLyNpZDQ+YF9fLgorUHl0aG9uIDMuNCdzIGxhc3Qg
cmVsZWFzZSBpcyBzY2hlZHVsZWQgZm9yCitgTWFyY2ggMjAxOSA8aHR0cHM6Ly93d3cucHl0aG9u
Lm9yZy9kZXYvcGVwcy9wZXAtMDQyOS8jcmVsZWFzZS1zY2hlZHVsZT5gX18uIHB5dGVzdCBpcyBv
bmUgb2YKK3RoZSBwYXJ0aWNpcGF0aW5nIHByb2plY3RzIG9mIHRoZSBodHRwczovL3B5dGhvbjNz
dGF0ZW1lbnQub3JnLgorCitUaGUgKipweXRlc3QgNC42Kiogc2VyaWVzIHdpbGwgYmUgdGhlIGxh
c3QgdG8gc3VwcG9ydCBQeXRob24gMi43IGFuZCAzLjQsIGFuZCBpcyBzY2hlZHVsZWQKK3RvIGJl
IHJlbGVhc2VkIGJ5ICoqbWlkLTIwMTkqKi4gKipweXRlc3QgNS4wKiogYW5kIG9ud2FyZHMgd2ls
bCBzdXBwb3J0IG9ubHkgUHl0aG9uIDMuNSsuCisKK1RoYW5rcyB0byB0aGUgYHB5dGhvbl9yZXF1
aXJlc2BfIGBgc2V0dXB0b29sc2BgIG9wdGlvbiwKK1B5dGhvbiAyLjcgYW5kIFB5dGhvbiAzLjQg
dXNlcnMgdXNpbmcgYSBtb2Rlcm4gYGBwaXBgYCB2ZXJzaW9uCit3aWxsIGluc3RhbGwgdGhlIGxh
c3QgcHl0ZXN0IGBgNC42YGAgdmVyc2lvbiBhdXRvbWF0aWNhbGx5IGV2ZW4gaWYgYGA1LjBgYCBv
ciBsYXRlcgorYXJlIGF2YWlsYWJsZSBvbiBQeVBJLgorCitXaGlsZSBweXRlc3QgYGA1LjBgYCB3
aWxsIGJlIHRoZSBuZXcgbWFpbnN0cmVhbSBhbmQgZGV2ZWxvcG1lbnQgdmVyc2lvbiwgdW50aWwg
KipKYW51YXJ5IDIwMjAqKgordGhlIHB5dGVzdCBjb3JlIHRlYW0gcGxhbnMgdG8gbWFrZSBidWct
Zml4IHJlbGVhc2VzIG9mIHRoZSBweXRlc3QgYGA0LjZgYCBzZXJpZXMgYnkKK2JhY2stcG9ydGlu
ZyBwYXRjaGVzIHRvIHRoZSBgYDQuNi54YGAgYnJhbmNoIHRoYXQgYWZmZWN0IFB5dGhvbiAyIHVz
ZXJzLgorCisqKkFmdGVyIDIwMjAqKiwgdGhlIGNvcmUgdGVhbSB3aWxsIG5vIGxvbmdlciBhY3Rp
dmVseSBiYWNrcG9ydCBwYXRjaGVzLCBidXQgdGhlIGBgNC42LnhgYAorYnJhbmNoIHdpbGwgY29u
dGludWUgdG8gZXhpc3Qgc28gdGhlIGNvbW11bml0eSBpdHNlbGYgY2FuIGNvbnRyaWJ1dGUgcGF0
Y2hlcy4gVGhlIGNvcmUgdGVhbSB3aWxsCitiZSBoYXBweSB0byBhY2NlcHQgdGhvc2UgcGF0Y2hl
cyBhbmQgbWFrZSBuZXcgYGA0LjZgYCByZWxlYXNlcyAqKnVudGlsIG1pZC0yMDIwKiouCisKKy4u
IF9gcHl0aG9uX3JlcXVpcmVzYDogaHR0cHM6Ly9wYWNrYWdpbmcucHl0aG9uLm9yZy9ndWlkZXMv
ZGlzdHJpYnV0aW5nLXBhY2thZ2VzLXVzaW5nLXNldHVwdG9vbHMvI3B5dGhvbi1yZXF1aXJlcz4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9yZWZlcmVuY2UucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3JlZmVyZW5jZS5yc3QKaW5kZXggZmU5ZTg3MDQyZjlhMWY1ZTc4ZDU1ZjY2YmIy
MWE1ZmE4ZTY2YThlNi4uY2M1ZmU4ZDhiZjY1ZWFkNzIwNDJkYWQyMTYxZjk5Y2NjN2Q3MzJhYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3JlZmVyZW5jZS5yc3QKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3JlZmVyZW5jZS5yc3QKQEAgLTEsNCArMSwzIEBACi0KIFJlZmVyZW5jZQog
PT09PT09PT09CiAKQEAgLTQ5LDcgKzQ4LDcgQEAgcHl0ZXN0Lm1haW4KIC4uIGF1dG9mdW5jdGlv
bjo6IF9weXRlc3QuY29uZmlnLm1haW4KIAogcHl0ZXN0LnBhcmFtCi1+fn5+fn5+fn5+fn5+Cit+
fn5+fn5+fn5+fn4KIAogLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0LnBhcmFtKCp2YWx1ZXMsIFtp
ZF0sIFttYXJrc10pCiAKQEAgLTg0LDYgKzgzLDEyIEBAIHB5dGVzdC53YXJucwogLi4gYXV0b2Z1
bmN0aW9uOjogcHl0ZXN0Lndhcm5zKGV4cGVjdGVkX3dhcm5pbmc6IEV4Y2VwdGlvbiwgW21hdGNo
XSkKICAgICA6d2l0aDoKIAorcHl0ZXN0LmZyZWV6ZV9pbmNsdWRlcworfn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+CisKKyoqVHV0b3JpYWwqKjogOnJlZjpgZnJlZXppbmctcHl0ZXN0YC4K
KworLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0LmZyZWV6ZV9pbmNsdWRlcwogCiAuLiBfYG1hcmtz
IHJlZmA6CiAKQEAgLTExMSw2ICsxMTYsNyBAQCBBZGQgd2FybmluZyBmaWx0ZXJzIHRvIG1hcmtl
ZCB0ZXN0IGl0ZW1zLgogICAgICAgICBBICp3YXJuaW5nIHNwZWNpZmljYXRpb24gc3RyaW5nKiwg
d2hpY2ggaXMgY29tcG9zZWQgb2YgY29udGVudHMgb2YgdGhlIHR1cGxlIGBgKGFjdGlvbiwgbWVz
c2FnZSwgY2F0ZWdvcnksIG1vZHVsZSwgbGluZW5vKWBgCiAgICAgICAgIGFzIHNwZWNpZmllZCBp
biBgVGhlIFdhcm5pbmdzIGZpbHRlciA8aHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5
L3dhcm5pbmdzLmh0bWwjd2FybmluZy1maWx0ZXI+YF8gc2VjdGlvbiBvZgogICAgICAgICB0aGUg
UHl0aG9uIGRvY3VtZW50YXRpb24sIHNlcGFyYXRlZCBieSBgYCI6ImBgLiBPcHRpb25hbCBmaWVs
ZHMgY2FuIGJlIG9taXR0ZWQuCisgICAgICAgIE1vZHVsZSBuYW1lcyBwYXNzZWQgZm9yIGZpbHRl
cmluZyBhcmUgbm90IHJlZ2V4LWVzY2FwZWQuCiAKICAgICAgICAgRm9yIGV4YW1wbGU6CiAKQEAg
LTE2MSw2ICsxNjcsMjUgQEAgU2tpcCBhIHRlc3QgZnVuY3Rpb24gaWYgYSBjb25kaXRpb24gaXMg
YGBUcnVlYGAuCiAgICAgOmtleXdvcmQgc3RyIHJlYXNvbjogUmVhc29uIHdoeSB0aGUgdGVzdCBm
dW5jdGlvbiBpcyBiZWluZyBza2lwcGVkLgogCiAKKy4uIF9gcHl0ZXN0Lm1hcmsudXNlZml4dHVy
ZXMgcmVmYDoKKworcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMKK35+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+CisKKyoqVHV0b3JpYWwqKjogOnJlZjpgdXNlZml4dHVyZXNgLgorCitNYXJrIGEgdGVzdCBm
dW5jdGlvbiBhcyB1c2luZyB0aGUgZ2l2ZW4gZml4dHVyZSBuYW1lcy4KKworLi4gd2FybmluZzo6
CisKKyAgICBUaGlzIG1hcmsgaGFzIG5vIGVmZmVjdCB3aGVuIGFwcGxpZWQKKyAgICB0byBhICoq
Zml4dHVyZSoqIGZ1bmN0aW9uLgorCisuLiBweTpmdW5jdGlvbjo6IHB5dGVzdC5tYXJrLnVzZWZp
eHR1cmVzKCpuYW1lcykKKworICAgIDpwYXJhbSBhcmdzOiB0aGUgbmFtZXMgb2YgdGhlIGZpeHR1
cmUgdG8gdXNlLCBhcyBzdHJpbmdzCisKKwogLi4gX2BweXRlc3QubWFyay54ZmFpbCByZWZgOgog
CiBweXRlc3QubWFyay54ZmFpbApAQCAtMTczLDE2ICsxOTgsMTggQEAgTWFya3MgYSB0ZXN0IGZ1
bmN0aW9uIGFzICpleHBlY3RlZCB0byBmYWlsKi4KIC4uIHB5OmZ1bmN0aW9uOjogcHl0ZXN0Lm1h
cmsueGZhaWwoY29uZGl0aW9uPU5vbmUsICosIHJlYXNvbj1Ob25lLCByYWlzZXM9Tm9uZSwgcnVu
PVRydWUsIHN0cmljdD1GYWxzZSkKIAogICAgIDp0eXBlIGNvbmRpdGlvbjogYm9vbCBvciBzdHIK
LSAgICA6cGFyYW0gY29uZGl0aW9uOiBgYFRydWUvRmFsc2VgYCBpZiB0aGUgY29uZGl0aW9uIHNo
b3VsZCBiZSBtYXJrZWQgYXMgeGZhaWwgb3IgYSA6cmVmOmBjb25kaXRpb24gc3RyaW5nIDxzdHJp
bmcgY29uZGl0aW9ucz5gLgorICAgIDpwYXJhbSBjb25kaXRpb246CisgICAgICAgIENvbmRpdGlv
biBmb3IgbWFya2luZyB0aGUgdGVzdCBmdW5jdGlvbiBhcyB4ZmFpbCAoYGBUcnVlL0ZhbHNlYGAg
b3IgYQorICAgICAgICA6cmVmOmBjb25kaXRpb24gc3RyaW5nIDxzdHJpbmcgY29uZGl0aW9ucz5g
KS4KICAgICA6a2V5d29yZCBzdHIgcmVhc29uOiBSZWFzb24gd2h5IHRoZSB0ZXN0IGZ1bmN0aW9u
IGlzIG1hcmtlZCBhcyB4ZmFpbC4KICAgICA6a2V5d29yZCBFeGNlcHRpb24gcmFpc2VzOiBFeGNl
cHRpb24gc3ViY2xhc3MgZXhwZWN0ZWQgdG8gYmUgcmFpc2VkIGJ5IHRoZSB0ZXN0IGZ1bmN0aW9u
OyBvdGhlciBleGNlcHRpb25zIHdpbGwgZmFpbCB0aGUgdGVzdC4KICAgICA6a2V5d29yZCBib29s
IHJ1bjoKICAgICAgICAgSWYgdGhlIHRlc3QgZnVuY3Rpb24gc2hvdWxkIGFjdHVhbGx5IGJlIGV4
ZWN1dGVkLiBJZiBgYEZhbHNlYGAsIHRoZSBmdW5jdGlvbiB3aWxsIGFsd2F5cyB4ZmFpbCBhbmQg
d2lsbAotICAgICAgICBub3QgYmUgZXhlY3V0ZWQgKHVzZWZ1bCBhIGZ1bmN0aW9uIGlzIHNlZ2Zh
dWx0aW5nKS4KKyAgICAgICAgbm90IGJlIGV4ZWN1dGVkICh1c2VmdWwgaWYgYSBmdW5jdGlvbiBp
cyBzZWdmYXVsdGluZykuCiAgICAgOmtleXdvcmQgYm9vbCBzdHJpY3Q6CiAgICAgICAgICogSWYg
YGBGYWxzZWBgICh0aGUgZGVmYXVsdCkgdGhlIGZ1bmN0aW9uIHdpbGwgYmUgc2hvd24gaW4gdGhl
IHRlcm1pbmFsIG91dHB1dCBhcyBgYHhmYWlsZWRgYCBpZiBpdCBmYWlscwogICAgICAgICAgIGFu
ZCBhcyBgYHhwYXNzYGAgaWYgaXQgcGFzc2VzLiBJbiBib3RoIGNhc2VzIHRoaXMgd2lsbCBub3Qg
Y2F1c2UgdGhlIHRlc3Qgc3VpdGUgdG8gZmFpbCBhcyBhIHdob2xlLiBUaGlzCi0gICAgICAgICAg
aXMgcGFydGljdWxhcmx5IHVzZWZ1bCB0byBtYXJrICpmbGFreSogdGVzdHMgKHRlc3RzIHRoYXQg
cmFuZG9tIGF0IGZhaWwpIHRvIGJlIHRhY2tsZWQgbGF0ZXIuCisgICAgICAgICAgaXMgcGFydGlj
dWxhcmx5IHVzZWZ1bCB0byBtYXJrICpmbGFreSogdGVzdHMgKHRlc3RzIHRoYXQgZmFpbCBhdCBy
YW5kb20pIHRvIGJlIHRhY2tsZWQgbGF0ZXIuCiAgICAgICAgICogSWYgYGBUcnVlYGAsIHRoZSBm
dW5jdGlvbiB3aWxsIGJlIHNob3duIGluIHRoZSB0ZXJtaW5hbCBvdXRwdXQgYXMgYGB4ZmFpbGVk
YGAgaWYgaXQgZmFpbHMsIGJ1dCBpZiBpdAogICAgICAgICAgIHVuZXhwZWN0ZWRseSBwYXNzZXMg
dGhlbiBpdCB3aWxsICoqZmFpbCoqIHRoZSB0ZXN0IHN1aXRlLiBUaGlzIGlzIHBhcnRpY3VsYXJs
eSB1c2VmdWwgdG8gbWFyayBmdW5jdGlvbnMKICAgICAgICAgICB0aGF0IGFyZSBhbHdheXMgZmFp
bGluZyBhbmQgdGhlcmUgc2hvdWxkIGJlIGEgY2xlYXIgaW5kaWNhdGlvbiBpZiB0aGV5IHVuZXhw
ZWN0ZWRseSBzdGFydCB0byBwYXNzIChmb3IgZXhhbXBsZQpAQCAtMzk3LDYgKzQyNCwxNCBAQCBy
ZWNvcmRfcHJvcGVydHkKIAogLi4gYXV0b2Z1bmN0aW9uOjogX3B5dGVzdC5qdW5pdHhtbC5yZWNv
cmRfcHJvcGVydHkoKQogCisKK3JlY29yZF90ZXN0c3VpdGVfcHJvcGVydHkKK35+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn4KKworKipUdXRvcmlhbCoqOiA6cmVmOmByZWNvcmRfdGVzdHN1aXRlX3By
b3BlcnR5IGV4YW1wbGVgLgorCisuLiBhdXRvZnVuY3Rpb246OiBfcHl0ZXN0Lmp1bml0eG1sLnJl
Y29yZF90ZXN0c3VpdGVfcHJvcGVydHkoKQorCiBjYXBsb2cKIH5+fn5+fgogCkBAIC00NDEsNyAr
NDc2LDcgQEAgVG8gdXNlIGl0LCBpbmNsdWRlIGluIHlvdXIgdG9wLW1vc3QgYGBjb25mdGVzdC5w
eWBgIGZpbGU6OgogCiAKIC4uIGF1dG9jbGFzczo6IFRlc3RkaXIoKQotICAgIDptZW1iZXJzOiBy
dW5weXRlc3QscnVucHl0ZXN0X3N1YnByb2Nlc3MscnVucHl0ZXN0X2lucHJvY2VzcyxtYWtlY29u
ZnRlc3QsbWFrZXB5ZmlsZQorICAgIDptZW1iZXJzOgogCiAuLiBhdXRvY2xhc3M6OiBSdW5SZXN1
bHQoKQogICAgIDptZW1iZXJzOgpAQCAtNDczLDYgKzUwOCwzMiBAQCBFYWNoIHJlY29yZGVkIHdh
cm5pbmcgaXMgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmB3YXJuaW5ncy5XYXJuaW5nTWVzc2FnZWAu
CiAgICAgZGlmZmVyZW50bHk7IHNlZSA6cmVmOmBlbnN1cmluZ19mdW5jdGlvbl90cmlnZ2Vyc2Au
CiAKIAordG1wX3BhdGgKK35+fn5+fn5+CisKKyoqVHV0b3JpYWwqKjogOmRvYzpgdG1wZGlyYAor
CisuLiBjdXJyZW50bW9kdWxlOjogX3B5dGVzdC50bXBkaXIKKworLi4gYXV0b2Z1bmN0aW9uOjog
dG1wX3BhdGgoKQorICAgIDpuby1hdXRvLW9wdGlvbnM6CisKKwordG1wX3BhdGhfZmFjdG9yeQor
fn5+fn5+fn5+fn5+fn5+fgorCisqKlR1dG9yaWFsKio6IDpyZWY6YHRtcF9wYXRoX2ZhY3Rvcnkg
ZXhhbXBsZWAKKworLi4gX2B0bXBfcGF0aF9mYWN0b3J5IGZhY3RvcnkgYXBpYDoKKworYGB0bXBf
cGF0aF9mYWN0b3J5YGAgaW5zdGFuY2VzIGhhdmUgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorCisu
LiBjdXJyZW50bW9kdWxlOjogX3B5dGVzdC50bXBkaXIKKworLi4gYXV0b21ldGhvZDo6IFRlbXBQ
YXRoRmFjdG9yeS5ta3RlbXAKKy4uIGF1dG9tZXRob2Q6OiBUZW1wUGF0aEZhY3RvcnkuZ2V0YmFz
ZXRlbXAKKworCiB0bXBkaXIKIH5+fn5+fgogCkBAIC01MjAsNiArNTgxLDggQEAgQm9vdHN0cmFw
cGluZyBob29rcyBjYWxsZWQgZm9yIHBsdWdpbnMgcmVnaXN0ZXJlZCBlYXJseSBlbm91Z2ggKGlu
dGVybmFsIGFuZCBzZXQKIC4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9jbWRsaW5lX3BhcnNlCiAu
LiBhdXRvZnVuY3Rpb246OiBweXRlc3RfY21kbGluZV9tYWluCiAKKy4uIF9gaW5pdGlhbGl6YXRp
b24taG9va3NgOgorCiBJbml0aWFsaXphdGlvbiBob29rcwogfn5+fn5+fn5+fn5+fn5+fn5+fn4K
IApAQCAtNTMyLDYgKzU5NSw4IEBAIEluaXRpYWxpemF0aW9uIGhvb2tzIGNhbGxlZCBmb3IgcGx1
Z2lucyBhbmQgYGBjb25mdGVzdC5weWBgIGZpbGVzLgogLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0
X3Nlc3Npb25zdGFydAogLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3Nlc3Npb25maW5pc2gKIAor
Li4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkCisKIFRlc3QgcnVubmlu
ZyBob29rcwogfn5+fn5+fn5+fn5+fn5+fn5+CiAKQEAgLTU1NSw2ICs2MjAsOCBAQCBpbnRvIGlu
dGVyYWN0aXZlIGRlYnVnZ2luZyB3aGVuIGEgdGVzdCBmYWlsdXJlIG9jY3Vycy4KIFRoZSA6cHk6
bW9kOmBfcHl0ZXN0LnRlcm1pbmFsYCByZXBvcnRlZCBzcGVjaWZpY2FsbHkgdXNlcwogdGhlIHJl
cG9ydGluZyBob29rIHRvIHByaW50IGluZm9ybWF0aW9uIGFib3V0IGEgdGVzdCBydW4uCiAKKy4u
IGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9weWZ1bmNfY2FsbAorCiBDb2xsZWN0aW9uIGhvb2tzCiB+
fn5+fn5+fn5+fn5+fn5+CiAKQEAgLTU2NCw2ICs2MzEsNyBAQCBDb2xsZWN0aW9uIGhvb2tzCiAu
LiBhdXRvZnVuY3Rpb246OiBweXRlc3RfaWdub3JlX2NvbGxlY3QKIC4uIGF1dG9mdW5jdGlvbjo6
IHB5dGVzdF9jb2xsZWN0X2RpcmVjdG9yeQogLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2NvbGxl
Y3RfZmlsZQorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlCiAK
IEZvciBpbmZsdWVuY2luZyB0aGUgY29sbGVjdGlvbiBvZiBvYmplY3RzIGluIFB5dGhvbiBtb2R1
bGVzCiB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGhvb2s6CkBAIC01NzcsMTIgKzY0NSwxNSBA
QCBpdGVtcywgZGVsZXRlIG9yIG90aGVyd2lzZSBhbWVuZCB0aGUgdGVzdCBpdGVtczoKIAogLi4g
YXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMKIAorLi4gYXV0b2Z1
bmN0aW9uOjogcHl0ZXN0X2NvbGxlY3Rpb25fZmluaXNoCisKIFJlcG9ydGluZyBob29rcwogfn5+
fn5+fn5+fn5+fn5+CiAKIFNlc3Npb24gcmVsYXRlZCByZXBvcnRpbmcgaG9va3M6CiAKIC4uIGF1
dG9mdW5jdGlvbjo6IHB5dGVzdF9jb2xsZWN0c3RhcnQKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVz
dF9tYWtlX2NvbGxlY3RfcmVwb3J0CiAuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfaXRlbWNvbGxl
Y3RlZAogLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2NvbGxlY3RyZXBvcnQKIC4uIGF1dG9mdW5j
dGlvbjo6IHB5dGVzdF9kZXNlbGVjdGVkCkBAIC01OTIsNiArNjYzLDcgQEAgU2Vzc2lvbiByZWxh
dGVkIHJlcG9ydGluZyBob29rczoKIC4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF90ZXJtaW5hbF9z
dW1tYXJ5CiAuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfZml4dHVyZV9zZXR1cAogLi4gYXV0b2Z1
bmN0aW9uOjogcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIKKy4uIGF1dG9mdW5jdGlvbjo6
IHB5dGVzdF93YXJuaW5nX2NhcHR1cmVkCiAKIEFuZCBoZXJlIGlzIHRoZSBjZW50cmFsIGhvb2sg
Zm9yIHJlcG9ydGluZyBhYm91dAogdGVzdCBleGVjdXRpb246CkBAIC02OTcsMTMgKzc2OSw2IEBA
IE1hcmtHZW5lcmF0b3IKICAgICA6bWVtYmVyczoKIAogCi1NYXJrSW5mbwotfn5+fn5+fn4KLQot
Li4gYXV0b2NsYXNzOjogX3B5dGVzdC5tYXJrLk1hcmtJbmZvCi0gICAgOm1lbWJlcnM6Ci0KLQog
TWFyawogfn5+fgogCkBAIC03NjgsNyArODMzLDcgQEAgVGVzdFJlcG9ydAogX1Jlc3VsdAogfn5+
fn5+fgogCi0uLiBhdXRvY2xhc3M6OiBwbHVnZ3kuX1Jlc3VsdAorLi4gYXV0b2NsYXNzOjogcGx1
Z2d5LmNhbGxlcnMuX1Jlc3VsdAogICAgIDptZW1iZXJzOgogCiBTcGVjaWFsIFZhcmlhYmxlcwpA
QCAtNzc3LDYgKzg0MiwzMyBAQCBTcGVjaWFsIFZhcmlhYmxlcwogcHl0ZXN0IHRyZWF0cyBzb21l
IGdsb2JhbCB2YXJpYWJsZXMgaW4gYSBzcGVjaWFsIG1hbm5lciB3aGVuIGRlZmluZWQgaW4gYSB0
ZXN0IG1vZHVsZS4KIAogCitjb2xsZWN0X2lnbm9yZQorfn5+fn5+fn5+fn5+fn4KKworKipUdXRv
cmlhbCoqOiA6cmVmOmBjdXN0b21pemluZy10ZXN0LWNvbGxlY3Rpb25gCisKK0NhbiBiZSBkZWNs
YXJlZCBpbiAqY29uZnRlc3QucHkgZmlsZXMqIHRvIGV4Y2x1ZGUgdGVzdCBkaXJlY3RvcmllcyBv
ciBtb2R1bGVzLgorTmVlZHMgdG8gYmUgYGBsaXN0W3N0cl1gYC4KKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgorCisgIGNvbGxlY3RfaWdub3JlID0gWyJzZXR1cC5weSJdCisKKworY29sbGVjdF9p
Z25vcmVfZ2xvYgorfn5+fn5+fn5+fn5+fn5+fn5+fgorCisqKlR1dG9yaWFsKio6IDpyZWY6YGN1
c3RvbWl6aW5nLXRlc3QtY29sbGVjdGlvbmAKKworQ2FuIGJlIGRlY2xhcmVkIGluICpjb25mdGVz
dC5weSBmaWxlcyogdG8gZXhjbHVkZSB0ZXN0IGRpcmVjdG9yaWVzIG9yIG1vZHVsZXMKK3dpdGgg
VW5peCBzaGVsbC1zdHlsZSB3aWxkY2FyZHMuIE5lZWRzIHRvIGJlIGBgbGlzdFtzdHJdYGAgd2hl
cmUgYGBzdHJgYCBjYW4KK2NvbnRhaW4gZ2xvYiBwYXR0ZXJucy4KKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgorCisgIGNvbGxlY3RfaWdub3JlX2dsb2IgPSBbIipfaWdub3JlLnB5Il0KKworCiBw
eXRlc3RfcGx1Z2lucwogfn5+fn5+fn5+fn5+fn4KIApAQCAtODAwLDcgKzg5Miw3IEBAIHB5dGVz
dF9tYXJrCiAqKlR1dG9yaWFsKio6IDpyZWY6YHNjb3BlZC1tYXJraW5nYAogCiBDYW4gYmUgZGVj
bGFyZWQgYXQgdGhlICoqZ2xvYmFsKiogbGV2ZWwgaW4gKnRlc3QgbW9kdWxlcyogdG8gYXBwbHkg
b25lIG9yIG1vcmUgOnJlZjpgbWFya3MgPG1hcmtzIHJlZj5gIHRvIGFsbAotdGVzdCBmdW5jdGlv
bnMgYW5kIG1ldGhvZHMuIENhbiBiZSBlaXRoZXIgYSBzaW5nbGUgbWFyayBvciBhIHNlcXVlbmNl
IG9mIG1hcmtzLgordGVzdCBmdW5jdGlvbnMgYW5kIG1ldGhvZHMuIENhbiBiZSBlaXRoZXIgYSBz
aW5nbGUgbWFyayBvciBhIGxpc3Qgb2YgbWFya3MuCiAKIC4uIGNvZGUtYmxvY2s6OiBweXRob24K
IApAQCAtODEzLDcgKzkwNSw3IEBAIHRlc3QgZnVuY3Rpb25zIGFuZCBtZXRob2RzLiBDYW4gYmUg
ZWl0aGVyIGEgc2luZ2xlIG1hcmsgb3IgYSBzZXF1ZW5jZSBvZiBtYXJrcy4KIAogICAgIGltcG9y
dCBweXRlc3QKIAotICAgIHB5dGVzdG1hcmsgPSAocHl0ZXN0Lm1hcmsuaW50ZWdyYXRpb24sIHB5
dGVzdC5tYXJrLnNsb3cpCisgICAgcHl0ZXN0bWFyayA9IFtweXRlc3QubWFyay5pbnRlZ3JhdGlv
biwgcHl0ZXN0Lm1hcmsuc2xvd10KIAogUFlURVNUX0RPTlRfUkVXUklURSAobW9kdWxlIGRvY3N0
cmluZykKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CkBAIC04NDcsNiAr
OTM5LDExIEBAIENvbnRhaW5zIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1vZHVsZXMgdGhhdCBz
aG91bGQgYmUgbG9hZGVkIGFzIHBsdWdpbnM6CiAKICAgICBleHBvcnQgUFlURVNUX1BMVUdJTlM9
bXltb2R1bGUucGx1Z2luLHhkaXN0CiAKK1BZVEVTVF9ESVNBQkxFX1BMVUdJTl9BVVRPTE9BRAor
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK1doZW4gc2V0LCBkaXNhYmxlcyBwbHVn
aW4gYXV0by1sb2FkaW5nIHRocm91Z2ggc2V0dXB0b29scyBlbnRyeXBvaW50cy4gT25seSBleHBs
aWNpdGx5IHNwZWNpZmllZCBwbHVnaW5zIHdpbGwgYmUKK2xvYWRlZC4KIAogUFlURVNUX0NVUlJF
TlRfVEVTVAogfn5+fn5+fn5+fn5+fn5+fn5+fgpAQCAtODY0LDYgKzk2MSwxMiBAQCBIZXJlIGlz
IGEgbGlzdCBvZiBidWlsdGluIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IG1heSBiZSB3cml0
dGVuIGluIGEgYGBweXRlcwogZmlsZSwgdXN1YWxseSBsb2NhdGVkIGF0IHRoZSByb290IG9mIHlv
dXIgcmVwb3NpdG9yeS4gQWxsIG9wdGlvbnMgbXVzdCBiZSB1bmRlciBhIGBgW3B5dGVzdF1gYCBz
ZWN0aW9uCiAoYGBbdG9vbDpweXRlc3RdYGAgZm9yIGBgc2V0dXAuY2ZnYGAgZmlsZXMpLgogCisu
LiB3YXJuaW5nOjoKKyAgICBVc2FnZSBvZiBgYHNldHVwLmNmZ2BgIGlzIG5vdCByZWNvbW1lbmRl
ZCB1bmxlc3MgZm9yIHZlcnkgc2ltcGxlIHVzZSBjYXNlcy4gYGAuY2ZnYGAKKyAgICBmaWxlcyB1
c2UgYSBkaWZmZXJlbnQgcGFyc2VyIHRoYW4gYGBweXRlc3QuaW5pYGAgYW5kIGBgdG94LmluaWBg
IHdoaWNoIG1pZ2h0IGNhdXNlIGhhcmQgdG8gdHJhY2sKKyAgICBkb3duIHByb2JsZW1zLgorICAg
IFdoZW4gcG9zc2libGUsIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgbGF0dGVyIGZpbGVz
IHRvIGhvbGQgeW91ciBweXRlc3QgY29uZmlndXJhdGlvbi4KKwogQ29uZmlndXJhdGlvbiBmaWxl
IG9wdGlvbnMgbWF5IGJlIG92ZXJ3cml0dGVuIGluIHRoZSBjb21tYW5kLWxpbmUgYnkgdXNpbmcg
YGAtby8tLW92ZXJyaWRlYGAsIHdoaWNoIGNhbiBhbHNvIGJlCiBwYXNzZWQgbXVsdGlwbGUgdGlt
ZXMuIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoK
IApAQCAtODkwLDcgKzk5Myw3IEBAIHBhc3NlZCBtdWx0aXBsZSB0aW1lcy4gVGhlIGV4cGVjdGVk
IGZvcm1hdCBpcyBgYG5hbWU9dmFsdWVgYC4gRm9yIGV4YW1wbGU6OgogCiAuLiBjb25mdmFsOjog
Y2FjaGVfZGlyCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgorCiAKICAgIFNldHMgYSBkaXJl
Y3Rvcnkgd2hlcmUgc3RvcmVzIGNvbnRlbnQgb2YgY2FjaGUgcGx1Z2luLiBEZWZhdWx0IGRpcmVj
dG9yeSBpcwogICAgYGAucHl0ZXN0X2NhY2hlYGAgd2hpY2ggaXMgY3JlYXRlZCBpbiA6cmVmOmBy
b290ZGlyIDxyb290ZGlyPmAuIERpcmVjdG9yeSBtYXkgYmUKQEAgLTkxMCwxMiArMTAxMywxMyBA
QCBwYXNzZWQgbXVsdGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBuYW1lPXZh
bHVlYGAuIEZvciBleGFtcGxlOjoKIAogLi4gY29uZnZhbDo6IGNvbnNvbGVfb3V0cHV0X3N0eWxl
CiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAKICAgIFNldHMgdGhlIGNvbnNvbGUgb3V0
cHV0IHN0eWxlIHdoaWxlIHJ1bm5pbmcgdGVzdHM6CiAKICAgICogYGBjbGFzc2ljYGA6IGNsYXNz
aWMgcHl0ZXN0IG91dHB1dC4KICAgICogYGBwcm9ncmVzc2BgOiBsaWtlIGNsYXNzaWMgcHl0ZXN0
IG91dHB1dCwgYnV0IHdpdGggYSBwcm9ncmVzcyBpbmRpY2F0b3IuCisgICAqIGBgY291bnRgYDog
bGlrZSBwcm9ncmVzcywgYnV0IHNob3dzIHByb2dyZXNzIGFzIHRoZSBudW1iZXIgb2YgdGVzdHMg
Y29tcGxldGVkIGluc3RlYWQgb2YgYSBwZXJjZW50LgogCiAgICBUaGUgZGVmYXVsdCBpcyBgYHBy
b2dyZXNzYGAsIGJ1dCB5b3UgY2FuIGZhbGxiYWNrIHRvIGBgY2xhc3NpY2BgIGlmIHlvdSBwcmVm
ZXIgb3IKICAgIHRoZSBuZXcgbW9kZSBpcyBjYXVzaW5nIHVuZXhwZWN0ZWQgcHJvYmxlbXM6CkBA
IC05MjksNyArMTAzMyw3IEBAIHBhc3NlZCBtdWx0aXBsZSB0aW1lcy4gVGhlIGV4cGVjdGVkIGZv
cm1hdCBpcyBgYG5hbWU9dmFsdWVgYC4gRm9yIGV4YW1wbGU6OgogCiAuLiBjb25mdmFsOjogZG9j
dGVzdF9lbmNvZGluZwogCi0gICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKKwogCiAgICBEZWZhdWx0
IGVuY29kaW5nIHRvIHVzZSB0byBkZWNvZGUgdGV4dCBmaWxlcyB3aXRoIGRvY3N0cmluZ3MuCiAg
ICA6ZG9jOmBTZWUgaG93IHB5dGVzdCBoYW5kbGVzIGRvY3Rlc3RzIDxkb2N0ZXN0PmAuCkBAIC05
NDMsMTIgKzEwNDcsMTMgQEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUgZXhwZWN0ZWQgZm9y
bWF0IGlzIGBgbmFtZT12YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNvbmZ2YWw6OiBlbXB0
eV9wYXJhbWV0ZXJfc2V0X21hcmsKIAotICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCiAKICAg
ICBBbGxvd3MgdG8gcGljayB0aGUgYWN0aW9uIGZvciBlbXB0eSBwYXJhbWV0ZXJzZXRzIGluIHBh
cmFtZXRlcml6YXRpb24KIAogICAgICogYGBza2lwYGAgc2tpcHMgdGVzdHMgd2l0aCBhbiBlbXB0
eSBwYXJhbWV0ZXJzZXQgKGRlZmF1bHQpCiAgICAgKiBgYHhmYWlsYGAgbWFya3MgdGVzdHMgd2l0
aCBhbiBlbXB0eSBwYXJhbWV0ZXJzZXQgYXMgeGZhaWwocnVuPUZhbHNlKQorICAgICogYGBmYWls
X2F0X2NvbGxlY3RgYCByYWlzZXMgYW4gZXhjZXB0aW9uIGlmIHBhcmFtZXRyaXplIGNvbGxlY3Rz
IGFuIGVtcHR5IHBhcmFtZXRlciBzZXQKIAogICAgIC4uIGNvZGUtYmxvY2s6OiBpbmkKIApAQCAt
OTY1LDcgKzEwNzAsNyBAQCBwYXNzZWQgbXVsdGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBmb3Jt
YXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoKIAogLi4gY29uZnZhbDo6IGZpbHRl
cndhcm5pbmdzCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMQorCiAKICAgIFNldHMgYSBsaXN0
IG9mIGZpbHRlcnMgYW5kIGFjdGlvbnMgdGhhdCBzaG91bGQgYmUgdGFrZW4gZm9yIG1hdGNoZWQK
ICAgIHdhcm5pbmdzLiBCeSBkZWZhdWx0IGFsbCB3YXJuaW5ncyBlbWl0dGVkIGR1cmluZyB0aGUg
dGVzdCBzZXNzaW9uCkBAIC05ODMsOSArMTA4OCw2NCBAQCBwYXNzZWQgbXVsdGlwbGUgdGltZXMu
IFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoKICAg
IGludG8gZXJyb3JzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2UgcmVmZXIgdG8gOnJlZjpg
d2FybmluZ3NgLgogCiAKLS4uIGNvbmZ2YWw6OiBqdW5pdF9zdWl0ZV9uYW1lCisuLiBjb25mdmFs
OjoganVuaXRfZHVyYXRpb25fcmVwb3J0CisKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiA0LjEKKwor
ICAgIENvbmZpZ3VyZXMgaG93IGR1cmF0aW9ucyBhcmUgcmVjb3JkZWQgaW50byB0aGUgSlVuaXQg
WE1MIHJlcG9ydDoKKworICAgICogYGB0b3RhbGBgICh0aGUgZGVmYXVsdCk6IGR1cmF0aW9uIHRp
bWVzIHJlcG9ydGVkIGluY2x1ZGUgc2V0dXAsIGNhbGwsIGFuZCB0ZWFyZG93biB0aW1lcy4KKyAg
ICAqIGBgY2FsbGBgOiBkdXJhdGlvbiB0aW1lcyByZXBvcnRlZCBpbmNsdWRlIG9ubHkgY2FsbCB0
aW1lcywgZXhjbHVkaW5nIHNldHVwIGFuZCB0ZWFyZG93bi4KKworICAgIC4uIGNvZGUtYmxvY2s6
OiBpbmkKKworICAgICAgICBbcHl0ZXN0XQorICAgICAgICBqdW5pdF9kdXJhdGlvbl9yZXBvcnQg
PSBjYWxsCisKKworLi4gY29uZnZhbDo6IGp1bml0X2ZhbWlseQorCisgICAgLi4gdmVyc2lvbmFk
ZGVkOjogNC4yCisKKyAgICBDb25maWd1cmVzIHRoZSBmb3JtYXQgb2YgdGhlIGdlbmVyYXRlZCBK
VW5pdCBYTUwgZmlsZS4gVGhlIHBvc3NpYmxlIG9wdGlvbnMgYXJlOgorCisgICAgKiBgYHh1bml0
MWBgIChvciBgYGxlZ2FjeWBgKTogcHJvZHVjZXMgb2xkIHN0eWxlIG91dHB1dCwgY29tcGF0aWJs
ZSB3aXRoIHRoZSB4dW5pdCAxLjAgZm9ybWF0LiAqKlRoaXMgaXMgdGhlIGRlZmF1bHQqKi4KKyAg
ICAqIGBgeHVuaXQyYGA6IHByb2R1Y2VzIGB4dW5pdCAyLjAgc3R5bGUgb3V0cHV0IDxodHRwczov
L2dpdGh1Yi5jb20vamVua2luc2NpL3h1bml0LXBsdWdpbi9ibG9iL3h1bml0LTIuMy4yL3NyYy9t
YWluL3Jlc291cmNlcy9vcmcvamVua2luc2NpL3BsdWdpbnMveHVuaXQvdHlwZXMvbW9kZWwveHNk
L2p1bml0LTEwLnhzZD5gX18sCisgICAgICAgIHdoaWNoIHNob3VsZCBiZSBtb3JlIGNvbXBhdGli
bGUgd2l0aCBsYXRlc3QgSmVua2lucyB2ZXJzaW9ucy4KKworICAgIC4uIGNvZGUtYmxvY2s6OiBp
bmkKKworICAgICAgICBbcHl0ZXN0XQorICAgICAgICBqdW5pdF9mYW1pbHkgPSB4dW5pdDIKKwor
CisuLiBjb25mdmFsOjoganVuaXRfbG9nZ2luZworCisgICAgLi4gdmVyc2lvbmFkZGVkOjogMy41
CisKKyAgICBDb25maWd1cmVzIGlmIHN0ZG91dC9zdGRlcnIgc2hvdWxkIGJlIHdyaXR0ZW4gdG8g
dGhlIEpVbml0IFhNTCBmaWxlLiBWYWxpZCB2YWx1ZXMgYXJlCisgICAgYGBzeXN0ZW0tb3V0YGAs
IGBgc3lzdGVtLWVycmBgLCBhbmQgYGBub2BgICh0aGUgZGVmYXVsdCkuCisKKyAgICAuLiBjb2Rl
LWJsb2NrOjogaW5pCisKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAganVuaXRfbG9nZ2luZyA9
IHN5c3RlbS1vdXQKKwogCi0gICAgLi4gdmVyc2lvbmFkZGVkOjogMy4xCisuLiBjb25mdmFsOjog
anVuaXRfbG9nX3Bhc3NpbmdfdGVzdHMKKworICAgIC4uIHZlcnNpb25hZGRlZDo6IDQuNgorCisg
ICAgSWYgYGBqdW5pdF9sb2dnaW5nICE9ICJubyJgYCwgY29uZmlndXJlcyBpZiB0aGUgY2FwdHVy
ZWQgb3V0cHV0IHNob3VsZCBiZSB3cml0dGVuCisgICAgdG8gdGhlIEpVbml0IFhNTCBmaWxlIGZv
ciAqKnBhc3NpbmcqKiB0ZXN0cy4gRGVmYXVsdCBpcyBgYFRydWVgYC4KKworICAgIC4uIGNvZGUt
YmxvY2s6OiBpbmkKKworICAgICAgICBbcHl0ZXN0XQorICAgICAgICBqdW5pdF9sb2dfcGFzc2lu
Z190ZXN0cyA9IEZhbHNlCisKKworLi4gY29uZnZhbDo6IGp1bml0X3N1aXRlX25hbWUKIAogICAg
IFRvIHNldCB0aGUgbmFtZSBvZiB0aGUgcm9vdCB0ZXN0IHN1aXRlIHhtbCBpdGVtLCB5b3UgY2Fu
IGNvbmZpZ3VyZSB0aGUgYGBqdW5pdF9zdWl0ZV9uYW1lYGAgb3B0aW9uIGluIHlvdXIgY29uZmln
IGZpbGU6CiAKQEAgLTk5Nyw3ICsxMTU3LDcgQEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUg
ZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNv
bmZ2YWw6OiBsb2dfY2xpX2RhdGVfZm9ybWF0CiAKLSAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMK
KwogCiAgICAgU2V0cyBhIDpweTpmdW5jOmB0aW1lLnN0cmZ0aW1lYC1jb21wYXRpYmxlIHN0cmlu
ZyB0aGF0IHdpbGwgYmUgdXNlZCB3aGVuIGZvcm1hdHRpbmcgZGF0ZXMgZm9yIGxpdmUgbG9nZ2lu
Zy4KIApAQCAtMTAxMCw3ICsxMTcwLDcgQEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUgZXhw
ZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNvbmZ2
YWw6OiBsb2dfY2xpX2Zvcm1hdAogCi0gICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogICAg
IFNldHMgYSA6cHk6bW9kOmBsb2dnaW5nYC1jb21wYXRpYmxlIHN0cmluZyB1c2VkIHRvIGZvcm1h
dCBsaXZlIGxvZ2dpbmcgbWVzc2FnZXMuCiAKQEAgLTEwMjQsNyArMTE4NCw3IEBAIHBhc3NlZCBt
dWx0aXBsZSB0aW1lcy4gVGhlIGV4cGVjdGVkIGZvcm1hdCBpcyBgYG5hbWU9dmFsdWVgYC4gRm9y
IGV4YW1wbGU6OgogCiAuLiBjb25mdmFsOjogbG9nX2NsaV9sZXZlbAogCi0gICAgLi4gdmVyc2lv
bmFkZGVkOjogMy4zCisKIAogICAgIFNldHMgdGhlIG1pbmltdW0gbG9nIG1lc3NhZ2UgbGV2ZWwg
dGhhdCBzaG91bGQgYmUgY2FwdHVyZWQgZm9yIGxpdmUgbG9nZ2luZy4gVGhlIGludGVnZXIgdmFs
dWUgb3IKICAgICB0aGUgbmFtZXMgb2YgdGhlIGxldmVscyBjYW4gYmUgdXNlZC4KQEAgLTEwMzks
NyArMTE5OSw3IEBAIHBhc3NlZCBtdWx0aXBsZSB0aW1lcy4gVGhlIGV4cGVjdGVkIGZvcm1hdCBp
cyBgYG5hbWU9dmFsdWVgYC4gRm9yIGV4YW1wbGU6OgogCiAuLiBjb25mdmFsOjogbG9nX2RhdGVf
Zm9ybWF0CiAKLSAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogCiAgICAgU2V0cyBhIDpweTpm
dW5jOmB0aW1lLnN0cmZ0aW1lYC1jb21wYXRpYmxlIHN0cmluZyB0aGF0IHdpbGwgYmUgdXNlZCB3
aGVuIGZvcm1hdHRpbmcgZGF0ZXMgZm9yIGxvZ2dpbmcgY2FwdHVyZS4KIApAQCAtMTA1Myw3ICsx
MjEzLDcgQEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUgZXhwZWN0ZWQgZm9ybWF0IGlzIGBg
bmFtZT12YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNvbmZ2YWw6OiBsb2dfZmlsZQogCi0g
ICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogICAgIFNldHMgYSBmaWxlIG5hbWUgcmVsYXRp
dmUgdG8gdGhlIGBgcHl0ZXN0LmluaWBgIGZpbGUgd2hlcmUgbG9nIG1lc3NhZ2VzIHNob3VsZCBi
ZSB3cml0dGVuIHRvLCBpbiBhZGRpdGlvbgogICAgIHRvIHRoZSBvdGhlciBsb2dnaW5nIGZhY2ls
aXRpZXMgdGhhdCBhcmUgYWN0aXZlLgpAQCAtMTA2OCw3ICsxMjI4LDcgQEAgcGFzc2VkIG11bHRp
cGxlIHRpbWVzLiBUaGUgZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12YWx1ZWBgLiBGb3IgZXhh
bXBsZTo6CiAKIC4uIGNvbmZ2YWw6OiBsb2dfZmlsZV9kYXRlX2Zvcm1hdAogCi0gICAgLi4gdmVy
c2lvbmFkZGVkOjogMy4zCisKIAogICAgIFNldHMgYSA6cHk6ZnVuYzpgdGltZS5zdHJmdGltZWAt
Y29tcGF0aWJsZSBzdHJpbmcgdGhhdCB3aWxsIGJlIHVzZWQgd2hlbiBmb3JtYXR0aW5nIGRhdGVz
IGZvciB0aGUgbG9nZ2luZyBmaWxlLgogCkBAIC0xMDgxLDcgKzEyNDEsNyBAQCBwYXNzZWQgbXVs
dGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZvciBl
eGFtcGxlOjoKIAogLi4gY29uZnZhbDo6IGxvZ19maWxlX2Zvcm1hdAogCi0gICAgLi4gdmVyc2lv
bmFkZGVkOjogMy4zCisKIAogICAgIFNldHMgYSA6cHk6bW9kOmBsb2dnaW5nYC1jb21wYXRpYmxl
IHN0cmluZyB1c2VkIHRvIGZvcm1hdCBsb2dnaW5nIG1lc3NhZ2VzIHJlZGlyZWN0ZWQgdG8gdGhl
IGxvZ2dpbmcgZmlsZS4KIApAQCAtMTA5NCw3ICsxMjU0LDcgQEAgcGFzc2VkIG11bHRpcGxlIHRp
bWVzLiBUaGUgZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12YWx1ZWBgLiBGb3IgZXhhbXBsZTo6
CiAKIC4uIGNvbmZ2YWw6OiBsb2dfZmlsZV9sZXZlbAogCi0gICAgLi4gdmVyc2lvbmFkZGVkOjog
My4zCisKIAogICAgIFNldHMgdGhlIG1pbmltdW0gbG9nIG1lc3NhZ2UgbGV2ZWwgdGhhdCBzaG91
bGQgYmUgY2FwdHVyZWQgZm9yIHRoZSBsb2dnaW5nIGZpbGUuIFRoZSBpbnRlZ2VyIHZhbHVlIG9y
CiAgICAgdGhlIG5hbWVzIG9mIHRoZSBsZXZlbHMgY2FuIGJlIHVzZWQuCkBAIC0xMTA5LDcgKzEy
NjksNyBAQCBwYXNzZWQgbXVsdGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBu
YW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoKIAogLi4gY29uZnZhbDo6IGxvZ19mb3JtYXQKIAot
ICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAKICAgICBTZXRzIGEgOnB5Om1vZDpgbG9nZ2lu
Z2AtY29tcGF0aWJsZSBzdHJpbmcgdXNlZCB0byBmb3JtYXQgY2FwdHVyZWQgbG9nZ2luZyBtZXNz
YWdlcy4KIApAQCAtMTEyMyw3ICsxMjgzLDcgQEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUg
ZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNv
bmZ2YWw6OiBsb2dfbGV2ZWwKIAotICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAKICAgICBT
ZXRzIHRoZSBtaW5pbXVtIGxvZyBtZXNzYWdlIGxldmVsIHRoYXQgc2hvdWxkIGJlIGNhcHR1cmVk
IGZvciBsb2dnaW5nIGNhcHR1cmUuIFRoZSBpbnRlZ2VyIHZhbHVlIG9yCiAgICAgdGhlIG5hbWVz
IG9mIHRoZSBsZXZlbHMgY2FuIGJlIHVzZWQuCkBAIC0xMTM4LDcgKzEyOTgsNyBAQCBwYXNzZWQg
bXVsdGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZv
ciBleGFtcGxlOjoKIAogLi4gY29uZnZhbDo6IGxvZ19wcmludAogCi0gICAgLi4gdmVyc2lvbmFk
ZGVkOjogMy4zCisKIAogICAgIElmIHNldCB0byBgYEZhbHNlYGAsIHdpbGwgZGlzYWJsZSBkaXNw
bGF5aW5nIGNhcHR1cmVkIGxvZ2dpbmcgbWVzc2FnZXMgZm9yIGZhaWxlZCB0ZXN0cy4KIApAQCAt
MTE1MiwxMiArMTMxMiwxNyBAQCBwYXNzZWQgbXVsdGlwbGUgdGltZXMuIFRoZSBleHBlY3RlZCBm
b3JtYXQgaXMgYGBuYW1lPXZhbHVlYGAuIEZvciBleGFtcGxlOjoKIAogLi4gY29uZnZhbDo6IG1h
cmtlcnMKIAotICAgIExpc3Qgb2YgbWFya2VycyB0aGF0IGFyZSBhbGxvd2VkIGluIHRlc3QgZnVu
Y3Rpb25zLCBlbmZvcmNlZCB3aGVuIGBgLS1zdHJpY3RgYCBjb21tYW5kLWxpbmUgYXJndW1lbnQg
aXMgdXNlZC4KLSAgICBZb3UgY2FuIHVzZSBhIG1hcmtlciBuYW1lIHBlciBsaW5lLCBpbmRlbnRl
ZCBmcm9tIHRoZSBvcHRpb24gbmFtZS4KKyAgICBXaGVuIHRoZSBgYC0tc3RyaWN0LW1hcmtlcnNg
YCBvciBgYC0tc3RyaWN0YGAgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBhcmUgdXNlZCwKKyAgICBv
bmx5IGtub3duIG1hcmtlcnMgLSBkZWZpbmVkIGluIGNvZGUgYnkgY29yZSBweXRlc3Qgb3Igc29t
ZSBwbHVnaW4gLSBhcmUgYWxsb3dlZC4KKworICAgIFlvdSBjYW4gbGlzdCBhZGRpdGlvbmFsIG1h
cmtlcnMgaW4gdGhpcyBzZXR0aW5nIHRvIGFkZCB0aGVtIHRvIHRoZSB3aGl0ZWxpc3QsCisgICAg
aW4gd2hpY2ggY2FzZSB5b3UgcHJvYmFibHkgd2FudCB0byBhZGQgYGAtLXN0cmljdC1tYXJrZXJz
YGAgdG8gYGBhZGRvcHRzYGAKKyAgICB0byBhdm9pZCBmdXR1cmUgcmVncmVzc2lvbnM6CiAKICAg
ICAuLiBjb2RlLWJsb2NrOjogaW5pCiAKICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgYWRkb3B0
cyA9IC0tc3RyaWN0LW1hcmtlcnMKICAgICAgICAgbWFya2VycyA9CiAgICAgICAgICAgICBzbG93
CiAgICAgICAgICAgICBzZXJpYWwKQEAgLTEyMTAsNyArMTM3NSw4IEBAIHBhc3NlZCBtdWx0aXBs
ZSB0aW1lcy4gVGhlIGV4cGVjdGVkIGZvcm1hdCBpcyBgYG5hbWU9dmFsdWVgYC4gRm9yIGV4YW1w
bGU6OgogLi4gY29uZnZhbDo6IHB5dGhvbl9jbGFzc2VzCiAKICAgIE9uZSBvciBtb3JlIG5hbWUg
cHJlZml4ZXMgb3IgZ2xvYi1zdHlsZSBwYXR0ZXJucyBkZXRlcm1pbmluZyB3aGljaCBjbGFzc2Vz
Ci0gICBhcmUgY29uc2lkZXJlZCBmb3IgdGVzdCBjb2xsZWN0aW9uLiBCeSBkZWZhdWx0LCBweXRl
c3Qgd2lsbCBjb25zaWRlciBhbnkKKyAgIGFyZSBjb25zaWRlcmVkIGZvciB0ZXN0IGNvbGxlY3Rp
b24uIFNlYXJjaCBmb3IgbXVsdGlwbGUgZ2xvYiBwYXR0ZXJucyBieQorICAgYWRkaW5nIGEgc3Bh
Y2UgYmV0d2VlbiBwYXR0ZXJucy4gQnkgZGVmYXVsdCwgcHl0ZXN0IHdpbGwgY29uc2lkZXIgYW55
CiAgICBjbGFzcyBwcmVmaXhlZCB3aXRoIGBgVGVzdGBgIGFzIGEgdGVzdCBjb2xsZWN0aW9uLiAg
SGVyZSBpcyBhbiBleGFtcGxlIG9mIGhvdwogICAgdG8gY29sbGVjdCB0ZXN0cyBmcm9tIGNsYXNz
ZXMgdGhhdCBlbmQgaW4gYGBTdWl0ZWBgOgogCkBAIC0xMjI3LDE1ICsxMzkzLDMzIEBAIHBhc3Nl
ZCBtdWx0aXBsZSB0aW1lcy4gVGhlIGV4cGVjdGVkIGZvcm1hdCBpcyBgYG5hbWU9dmFsdWVgYC4g
Rm9yIGV4YW1wbGU6OgogLi4gY29uZnZhbDo6IHB5dGhvbl9maWxlcwogCiAgICBPbmUgb3IgbW9y
ZSBHbG9iLXN0eWxlIGZpbGUgcGF0dGVybnMgZGV0ZXJtaW5pbmcgd2hpY2ggcHl0aG9uIGZpbGVz
Ci0gICBhcmUgY29uc2lkZXJlZCBhcyB0ZXN0IG1vZHVsZXMuIEJ5IGRlZmF1bHQsIHB5dGVzdCB3
aWxsIGNvbnNpZGVyCi0gICBhbnkgZmlsZSBtYXRjaGluZyB3aXRoIGBgdGVzdF8qLnB5YGAgYW5k
IGBgKl90ZXN0LnB5YGAgZ2xvYnMgYXMgYSB0ZXN0Ci0gICBtb2R1bGUuCisgICBhcmUgY29uc2lk
ZXJlZCBhcyB0ZXN0IG1vZHVsZXMuIFNlYXJjaCBmb3IgbXVsdGlwbGUgZ2xvYiBwYXR0ZXJucyBi
eQorICAgYWRkaW5nIGEgc3BhY2UgYmV0d2VlbiBwYXR0ZXJuczoKKworICAgLi4gY29kZS1ibG9j
azo6IGluaQorCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIHB5dGhvbl9maWxlcyA9IHRlc3Rf
Ki5weSBjaGVja18qLnB5IGV4YW1wbGVfKi5weQorCisgICBPciBvbmUgcGVyIGxpbmU6CisKKyAg
IC4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAgICBbcHl0ZXN0XQorICAgICAgICBweXRob25f
ZmlsZXMgPQorICAgICAgICAgICAgdGVzdF8qLnB5CisgICAgICAgICAgICBjaGVja18qLnB5Cisg
ICAgICAgICAgICBleGFtcGxlXyoucHkKKworICAgQnkgZGVmYXVsdCwgZmlsZXMgbWF0Y2hpbmcg
YGB0ZXN0XyoucHlgYCBhbmQgYGAqX3Rlc3QucHlgYCB3aWxsIGJlIGNvbnNpZGVyZWQKKyAgIHRl
c3QgbW9kdWxlcy4KIAogCiAuLiBjb25mdmFsOjogcHl0aG9uX2Z1bmN0aW9ucwogCiAgICBPbmUg
b3IgbW9yZSBuYW1lIHByZWZpeGVzIG9yIGdsb2ItcGF0dGVybnMgZGV0ZXJtaW5pbmcgd2hpY2gg
dGVzdCBmdW5jdGlvbnMKLSAgIGFuZCBtZXRob2RzIGFyZSBjb25zaWRlcmVkIHRlc3RzLiBCeSBk
ZWZhdWx0LCBweXRlc3Qgd2lsbCBjb25zaWRlciBhbnkKKyAgIGFuZCBtZXRob2RzIGFyZSBjb25z
aWRlcmVkIHRlc3RzLiBTZWFyY2ggZm9yIG11bHRpcGxlIGdsb2IgcGF0dGVybnMgYnkKKyAgIGFk
ZGluZyBhIHNwYWNlIGJldHdlZW4gcGF0dGVybnMuIEJ5IGRlZmF1bHQsIHB5dGVzdCB3aWxsIGNv
bnNpZGVyIGFueQogICAgZnVuY3Rpb24gcHJlZml4ZWQgd2l0aCBgYHRlc3RgYCBhcyBhIHRlc3Qu
ICBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgaG93CiAgICB0byBjb2xsZWN0IHRlc3QgZnVuY3Rpb25z
IGFuZCBtZXRob2RzIHRoYXQgZW5kIGluIGBgX3Rlc3RgYDoKIApAQCAtMTI1Myw3ICsxNDM3LDcg
QEAgcGFzc2VkIG11bHRpcGxlIHRpbWVzLiBUaGUgZXhwZWN0ZWQgZm9ybWF0IGlzIGBgbmFtZT12
YWx1ZWBgLiBGb3IgZXhhbXBsZTo6CiAKIC4uIGNvbmZ2YWw6OiB0ZXN0cGF0aHMKIAotICAgLi4g
dmVyc2lvbmFkZGVkOjogMi44CisKIAogICAgU2V0cyBsaXN0IG9mIGRpcmVjdG9yaWVzIHRoYXQg
c2hvdWxkIGJlIHNlYXJjaGVkIGZvciB0ZXN0cyB3aGVuCiAgICBubyBzcGVjaWZpYyBkaXJlY3Rv
cmllcywgZmlsZXMgb3IgdGVzdCBpZHMgYXJlIGdpdmVuIGluIHRoZSBjb21tYW5kIGxpbmUgd2hl
bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3JlcXVpcmVtZW50cy50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vcmVxdWlyZW1lbnRzLnR4dAppbmRleCBlM2NjNDdlZDVhNTBkOGRiZWU1
NDVjMzg5NDFjYzc1N2JiYjA0MjkzLi5iZTIyYjdkYjg3MmRjYWQ5YWQwZGI2OWJhMjczOWFkN2Yw
N2FhMGNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVxdWlyZW1lbnRzLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVxdWlyZW1lbnRzLnR4dApAQCAtMSw0ICsxLDQgQEAK
LSMgcGlubmluZyBzcGhpbnggdG8gMS40LiogZHVlIHRvIHNlYXJjaCBpc3N1ZXMgd2l0aCBydGQ6
Ci0jIGh0dHBzOi8vZ2l0aHViLmNvbS9ydGZkL3JlYWR0aGVkb2NzLXNwaGlueC1leHQvaXNzdWVz
LzI1Ci1zcGhpbnggPT0xLjQuKgorcHlnbWVudHMtcHl0ZXN0Pj0xLjEuMAorc3BoaW54Pj0xLjgu
Miw8Mi4xCiBzcGhpbnhjb250cmliLXRyaW8KK3NwaGlueC1yZW1vdmVkLWluPj0wLjIuMApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3NraXBwaW5nLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9za2lwcGluZy5yc3QKaW5kZXggYmZhNmYzZTc1YTYyOTU0NDk2ZjUyZWE5YzVkNjVjMDY5
ZGUwZWVkZi4uOGQwYzQ5OWIzMjhmZWY2MzY4NGQzMjliNTJiMDI2OTBiMGFlMjI5MyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3NraXBwaW5nLnJzdAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vc2tpcHBpbmcucnN0CkBAIC0yMiw3ICsyMiw5IEBAIGl0J3MgYW4gKip4cGFzcyoqIGFu
ZCB3aWxsIGJlIHJlcG9ydGVkIGluIHRoZSB0ZXN0IHN1bW1hcnkuCiBgYHB5dGVzdGBgIGNvdW50
cyBhbmQgbGlzdHMgKnNraXAqIGFuZCAqeGZhaWwqIHRlc3RzIHNlcGFyYXRlbHkuIERldGFpbGVk
CiBpbmZvcm1hdGlvbiBhYm91dCBza2lwcGVkL3hmYWlsZWQgdGVzdHMgaXMgbm90IHNob3duIGJ5
IGRlZmF1bHQgdG8gYXZvaWQKIGNsdXR0ZXJpbmcgdGhlIG91dHB1dC4gIFlvdSBjYW4gdXNlIHRo
ZSBgYC1yYGAgb3B0aW9uIHRvIHNlZSBkZXRhaWxzCi1jb3JyZXNwb25kaW5nIHRvIHRoZSAic2hv
cnQiIGxldHRlcnMgc2hvd24gaW4gdGhlIHRlc3QgcHJvZ3Jlc3M6OgorY29ycmVzcG9uZGluZyB0
byB0aGUgInNob3J0IiBsZXR0ZXJzIHNob3duIGluIHRoZSB0ZXN0IHByb2dyZXNzOgorCisuLiBj
b2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC1yeFhzICAjIHNob3cgZXh0cmEgaW5mbyBv
biB4ZmFpbGVkLCB4cGFzc2VkLCBhbmQgc2tpcHBlZCB0ZXN0cwogCkBAIC0zNyw3ICszOSw3IEBA
IE1vcmUgZGV0YWlscyBvbiB0aGUgYGAtcmBgIG9wdGlvbiBjYW4gYmUgZm91bmQgYnkgcnVubmlu
ZyBgYHB5dGVzdCAtaGBgLgogU2tpcHBpbmcgdGVzdCBmdW5jdGlvbnMKIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKLS4uIHZlcnNpb25hZGRlZDo6IDIuOQorCiAKIFRoZSBzaW1wbGVzdCB3YXkg
dG8gc2tpcCBhIHRlc3QgZnVuY3Rpb24gaXMgdG8gbWFyayBpdCB3aXRoIHRoZSBgYHNraXBgYCBk
ZWNvcmF0b3IKIHdoaWNoIG1heSBiZSBwYXNzZWQgYW4gb3B0aW9uYWwgYGByZWFzb25gYDoKQEAg
LTU4LDU0ICs2MCw2OCBAQCBieSBjYWxsaW5nIHRoZSBgYHB5dGVzdC5za2lwKHJlYXNvbilgYCBm
dW5jdGlvbjoKICAgICAgICAgaWYgbm90IHZhbGlkX2NvbmZpZygpOgogICAgICAgICAgICAgcHl0
ZXN0LnNraXAoInVuc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb24iKQogCitUaGUgaW1wZXJhdGl2ZSBt
ZXRob2QgaXMgdXNlZnVsIHdoZW4gaXQgaXMgbm90IHBvc3NpYmxlIHRvIGV2YWx1YXRlIHRoZSBz
a2lwIGNvbmRpdGlvbgorZHVyaW5nIGltcG9ydCB0aW1lLgorCiBJdCBpcyBhbHNvIHBvc3NpYmxl
IHRvIHNraXAgdGhlIHdob2xlIG1vZHVsZSB1c2luZwogYGBweXRlc3Quc2tpcChyZWFzb24sIGFs
bG93X21vZHVsZV9sZXZlbD1UcnVlKWBgIGF0IHRoZSBtb2R1bGUgbGV2ZWw6CiAKIC4uIGNvZGUt
YmxvY2s6OiBweXRob24KIAorICAgIGltcG9ydCBzeXMKICAgICBpbXBvcnQgcHl0ZXN0CiAKLSAg
ICBpZiBub3QgcHl0ZXN0LmNvbmZpZy5nZXRvcHRpb24oIi0tY3VzdG9tLWZsYWciKToKLSAgICAg
ICAgcHl0ZXN0LnNraXAoIi0tY3VzdG9tLWZsYWcgaXMgbWlzc2luZywgc2tpcHBpbmcgdGVzdHMi
LCBhbGxvd19tb2R1bGVfbGV2ZWw9VHJ1ZSkKKyAgICBpZiBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0
c3dpdGgoIndpbiIpOgorICAgICAgICBweXRlc3Quc2tpcCgic2tpcHBpbmcgd2luZG93cy1vbmx5
IHRlc3RzIiwgYWxsb3dfbW9kdWxlX2xldmVsPVRydWUpCiAKLVRoZSBpbXBlcmF0aXZlIG1ldGhv
ZCBpcyB1c2VmdWwgd2hlbiBpdCBpcyBub3QgcG9zc2libGUgdG8gZXZhbHVhdGUgdGhlIHNraXAg
Y29uZGl0aW9uCi1kdXJpbmcgaW1wb3J0IHRpbWUuCiAKICoqUmVmZXJlbmNlKio6IDpyZWY6YHB5
dGVzdC5tYXJrLnNraXAgcmVmYAogCiBgYHNraXBpZmBgCiB+fn5+fn5+fn5+CiAKLS4uIHZlcnNp
b25hZGRlZDo6IDIuMAorCiAKIElmIHlvdSB3aXNoIHRvIHNraXAgc29tZXRoaW5nIGNvbmRpdGlv
bmFsbHkgdGhlbiB5b3UgY2FuIHVzZSBgYHNraXBpZmBgIGluc3RlYWQuCiBIZXJlIGlzIGFuIGV4
YW1wbGUgb2YgbWFya2luZyBhIHRlc3QgZnVuY3Rpb24gdG8gYmUgc2tpcHBlZAotd2hlbiBydW4g
b24gYSBQeXRob24zLjYgaW50ZXJwcmV0ZXI6Ogord2hlbiBydW4gb24gYW4gaW50ZXJwcmV0ZXIg
ZWFybGllciB0aGFuIFB5dGhvbjMuNjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAg
aW1wb3J0IHN5cwotICAgIEBweXRlc3QubWFyay5za2lwaWYoc3lzLnZlcnNpb25faW5mbyA8ICgz
LDYpLAotICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJyZXF1aXJlcyBweXRob24zLjYi
KQorCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9uX2luZm8gPCAoMywgNiks
IHJlYXNvbj0icmVxdWlyZXMgcHl0aG9uMy42IG9yIGhpZ2hlciIpCiAgICAgZGVmIHRlc3RfZnVu
Y3Rpb24oKToKICAgICAgICAgLi4uCiAKIElmIHRoZSBjb25kaXRpb24gZXZhbHVhdGVzIHRvIGBg
VHJ1ZWBgIGR1cmluZyBjb2xsZWN0aW9uLCB0aGUgdGVzdCBmdW5jdGlvbiB3aWxsIGJlIHNraXBw
ZWQsCiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVhc29uIGFwcGVhcmluZyBpbiB0aGUgc3VtbWFyeSB3
aGVuIHVzaW5nIGBgLXJzYGAuCiAKLVlvdSBjYW4gc2hhcmUgYGBza2lwaWZgYCBtYXJrZXJzIGJl
dHdlZW4gbW9kdWxlcy4gIENvbnNpZGVyIHRoaXMgdGVzdCBtb2R1bGU6OgorWW91IGNhbiBzaGFy
ZSBgYHNraXBpZmBgIG1hcmtlcnMgYmV0d2VlbiBtb2R1bGVzLiAgQ29uc2lkZXIgdGhpcyB0ZXN0
IG1vZHVsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyBjb250ZW50IG9mIHRl
c3RfbXltb2R1bGUucHkKICAgICBpbXBvcnQgbXltb2R1bGUKLSAgICBtaW52ZXJzaW9uID0gcHl0
ZXN0Lm1hcmsuc2tpcGlmKG15bW9kdWxlLl9fdmVyc2lvbmluZm9fXyA8ICgxLDEpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJhdCBsZWFzdCBteW1vZHVsZS0x
LjEgcmVxdWlyZWQiKQorCisgICAgbWludmVyc2lvbiA9IHB5dGVzdC5tYXJrLnNraXBpZigKKyAg
ICAgICAgbXltb2R1bGUuX192ZXJzaW9uaW5mb19fIDwgKDEsIDEpLCByZWFzb249ImF0IGxlYXN0
IG15bW9kdWxlLTEuMSByZXF1aXJlZCIKKyAgICApCisKKwogICAgIEBtaW52ZXJzaW9uCiAgICAg
ZGVmIHRlc3RfZnVuY3Rpb24oKToKICAgICAgICAgLi4uCiAKLVlvdSBjYW4gaW1wb3J0IHRoZSBt
YXJrZXIgYW5kIHJldXNlIGl0IGluIGFub3RoZXIgdGVzdCBtb2R1bGU6OgorWW91IGNhbiBpbXBv
cnQgdGhlIG1hcmtlciBhbmQgcmV1c2UgaXQgaW4gYW5vdGhlciB0ZXN0IG1vZHVsZToKKworLi4g
Y29kZS1ibG9jazo6IHB5dGhvbgogCiAgICAgIyB0ZXN0X215b3RoZXJtb2R1bGUucHkKICAgICBm
cm9tIHRlc3RfbXltb2R1bGUgaW1wb3J0IG1pbnZlcnNpb24KIAorCiAgICAgQG1pbnZlcnNpb24K
ICAgICBkZWYgdGVzdF9hbm90aGVyZnVuY3Rpb24oKToKICAgICAgICAgLi4uCkBAIC0xMjQsMjQg
KzE0MCwxOCBAQCBzbyB0aGV5IGFyZSBzdXBwb3J0ZWQgbWFpbmx5IGZvciBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5IHJlYXNvbnMuCiBTa2lwIGFsbCB0ZXN0IGZ1bmN0aW9ucyBvZiBhIGNsYXNzIG9y
IG1vZHVsZQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAot
WW91IGNhbiB1c2UgdGhlIGBgc2tpcGlmYGAgbWFya2VyIChhcyBhbnkgb3RoZXIgbWFya2VyKSBv
biBjbGFzc2VzOjoKK1lvdSBjYW4gdXNlIHRoZSBgYHNraXBpZmBgIG1hcmtlciAoYXMgYW55IG90
aGVyIG1hcmtlcikgb24gY2xhc3NlczoKIAotICAgIEBweXRlc3QubWFyay5za2lwaWYoc3lzLnBs
YXRmb3JtID09ICd3aW4zMicsCi0gICAgICAgICAgICAgICAgICAgICAgICByZWFzb249ImRvZXMg
bm90IHJ1biBvbiB3aW5kb3dzIikKLSAgICBjbGFzcyBUZXN0UG9zaXhDYWxscyhvYmplY3QpOgor
Li4gY29kZS1ibG9jazo6IHB5dGhvbgogCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxh
dGZvcm0gPT0gIndpbjMyIiwgcmVhc29uPSJkb2VzIG5vdCBydW4gb24gd2luZG93cyIpCisgICAg
Y2xhc3MgVGVzdFBvc2l4Q2FsbHMob2JqZWN0KToKICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24o
c2VsZik6CiAgICAgICAgICAgICAid2lsbCBub3QgYmUgc2V0dXAgb3IgcnVuIHVuZGVyICd3aW4z
MicgcGxhdGZvcm0iCiAKIElmIHRoZSBjb25kaXRpb24gaXMgYGBUcnVlYGAsIHRoaXMgbWFya2Vy
IHdpbGwgcHJvZHVjZSBhIHNraXAgcmVzdWx0IGZvcgogZWFjaCBvZiB0aGUgdGVzdCBtZXRob2Rz
IG9mIHRoYXQgY2xhc3MuCiAKLS4uIHdhcm5pbmc6OgotCi0gICBUaGUgdXNlIG9mIGBgc2tpcGlm
YGAgb24gY2xhc3NlcyB0aGF0IHVzZSBpbmhlcml0YW5jZSBpcyBzdHJvbmdseQotICAgZGlzY291
cmFnZWQuIGBBIEtub3duIGJ1ZyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy81Njg+YF8KLSAgIGluIHB5dGVzdCdzIG1hcmtlcnMgbWF5IGNhdXNlIHVuZXhwZWN0
ZWQgYmVoYXZpb3IgaW4gc3VwZXIgY2xhc3Nlcy4KLQogSWYgeW91IHdhbnQgdG8gc2tpcCBhbGwg
dGVzdCBmdW5jdGlvbnMgb2YgYSBtb2R1bGUsIHlvdSBtYXkgdXNlCiB0aGUgYGBweXRlc3RtYXJr
YGAgbmFtZSBvbiB0aGUgZ2xvYmFsIGxldmVsOgogCkBAIC0xOTgsNyArMjA4LDcgQEAgSGVyZSdz
IGEgcXVpY2sgZ3VpZGUgb24gaG93IHRvIHNraXAgdGVzdHMgaW4gYSBtb2R1bGUgaW4gZGlmZmVy
ZW50IHNpdHVhdGlvbnM6CiAKICAgLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCi0gICAgICAgIHB5
dGVzdG1hcmsgPSBweXRlc3QubWFyay5za2lwaWYoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsICJ0
ZXN0cyBmb3IgbGludXggb25seSIpCisgICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5z
a2lwaWYoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsIHJlYXNvbj0idGVzdHMgZm9yIGxpbnV4IG9u
bHkiKQogCiAzLiBTa2lwIGFsbCB0ZXN0cyBpbiBhIG1vZHVsZSBpZiBzb21lIGltcG9ydCBpcyBt
aXNzaW5nOgogCkBAIC0yNDQsNyArMjU0LDcgQEAgaW50ZXJuYWxseSBieSByYWlzaW5nIGEga25v
d24gZXhjZXB0aW9uLgogYGBzdHJpY3RgYCBwYXJhbWV0ZXIKIH5+fn5+fn5+fn5+fn5+fn5+fn5+
CiAKLS4uIHZlcnNpb25hZGRlZDo6IDIuOQorCiAKIEJvdGggYGBYRkFJTGBgIGFuZCBgYFhQQVNT
YGAgZG9uJ3QgZmFpbCB0aGUgdGVzdCBzdWl0ZSwgdW5sZXNzIHRoZSBgYHN0cmljdGBgIGtleXdv
cmQtb25seQogcGFyYW1ldGVyIGlzIHBhc3NlZCBhcyBgYFRydWVgYDoKQEAgLTI3MSwxMCArMjgx
LDExIEBAIFlvdSBjYW4gY2hhbmdlIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBgYHN0cmljdGBg
IHBhcmFtZXRlciB1c2luZyB0aGUKIH5+fn5+fn5+fn5+fn5+fn5+fn5+CiAKIEFzIHdpdGggc2tp
cGlmXyB5b3UgY2FuIGFsc28gbWFyayB5b3VyIGV4cGVjdGF0aW9uIG9mIGEgZmFpbHVyZQotb24g
YSBwYXJ0aWN1bGFyIHBsYXRmb3JtOjoKK29uIGEgcGFydGljdWxhciBwbGF0Zm9ybToKKworLi4g
Y29kZS1ibG9jazo6IHB5dGhvbgogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9u
X2luZm8gPj0gKDMsNiksCi0gICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0icHl0aG9uMy42
IGFwaSBjaGFuZ2VzIikKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+
PSAoMywgNiksIHJlYXNvbj0icHl0aG9uMy42IGFwaSBjaGFuZ2VzIikKICAgICBkZWYgdGVzdF9m
dW5jdGlvbigpOgogICAgICAgICAuLi4KIApAQCAtMjgzLDcgKzI5NCw3IEBAIG9uIGEgcGFydGlj
dWxhciBwbGF0Zm9ybTo6CiB+fn5+fn5+fn5+fn5+fn5+fn5+fgogCiBJZiB5b3Ugd2FudCB0byBi
ZSBtb3JlIHNwZWNpZmljIGFzIHRvIHdoeSB0aGUgdGVzdCBpcyBmYWlsaW5nLCB5b3UgY2FuIHNw
ZWNpZnkKLWEgc2luZ2xlIGV4Y2VwdGlvbiwgb3IgYSBsaXN0IG9mIGV4Y2VwdGlvbnMsIGluIHRo
ZSBgYHJhaXNlc2BgIGFyZ3VtZW50LgorYSBzaW5nbGUgZXhjZXB0aW9uLCBvciBhIHR1cGxlIG9m
IGV4Y2VwdGlvbnMsIGluIHRoZSBgYHJhaXNlc2BgIGFyZ3VtZW50LgogCiAuLiBjb2RlLWJsb2Nr
OjogcHl0aG9uCiAKQEAgLTMxMyw3ICszMjQsOSBAQCBpbnZlc3RpZ2F0ZWQgbGF0ZXIuCiBJZ25v
cmluZyB4ZmFpbAogfn5+fn5+fn5+fn5+fn4KIAotQnkgc3BlY2lmeWluZyBvbiB0aGUgY29tbWFu
ZGxpbmU6OgorQnkgc3BlY2lmeWluZyBvbiB0aGUgY29tbWFuZGxpbmU6CisKKy4uIGNvZGUtYmxv
Y2s6OiBiYXNoCiAKICAgICBweXRlc3QgLS1ydW54ZmFpbAogCkBAIC0zMjcsMTUgKzM0MCwxOSBA
QCBIZXJlIGlzIGEgc2ltcGxlIHRlc3QgZmlsZSB3aXRoIHRoZSBzZXZlcmFsIHVzYWdlczoKIAog
Li4gbGl0ZXJhbGluY2x1ZGU6OiBleGFtcGxlL3hmYWlsX2RlbW8ucHkKIAotUnVubmluZyBpdCB3
aXRoIHRoZSByZXBvcnQtb24teGZhaWwgb3B0aW9uIGdpdmVzIHRoaXMgb3V0cHV0OjoKK1J1bm5p
bmcgaXQgd2l0aCB0aGUgcmVwb3J0LW9uLXhmYWlsIG9wdGlvbiBnaXZlcyB0aGlzIG91dHB1dDoK
KworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgZXhhbXBsZSAkIHB5dGVzdCAtcnggeGZh
aWxfZGVtby5weQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24g
c3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwbGF0Zm9ybSBsaW51eCAt
LSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQotICAg
IHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIvZXhhbXBsZSwgaW5pZmlsZToKKyAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00LngueSwgcHktMS54LnksIHBsdWdneS0w
LngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8ucHl0ZXN0X2NhY2hlCisgICAgcm9v
dGRpcjogJFJFR0VORE9DX1RNUERJUi9leGFtcGxlCiAgICAgY29sbGVjdGVkIDcgaXRlbXMKIAog
ICAgIHhmYWlsX2RlbW8ucHkgeHh4eHh4eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsxMDAlXQorCiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBz
aG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgIFhG
QUlMIHhmYWlsX2RlbW8ucHk6OnRlc3RfaGVsbG8KICAgICBYRkFJTCB4ZmFpbF9kZW1vLnB5Ojp0
ZXN0X2hlbGxvMgpAQCAtMzQ5LDcgKzM2Niw2IEBAIFJ1bm5pbmcgaXQgd2l0aCB0aGUgcmVwb3J0
LW9uLXhmYWlsIG9wdGlvbiBnaXZlcyB0aGlzIG91dHB1dDo6CiAgICAgWEZBSUwgeGZhaWxfZGVt
by5weTo6dGVzdF9oZWxsbzYKICAgICAgIHJlYXNvbjogcmVhc29uCiAgICAgWEZBSUwgeGZhaWxf
ZGVtby5weTo6dGVzdF9oZWxsbzcKLQogICAgID09PT09PT09PT09PT09PT09PT09PT09PSA3IHhm
YWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLi4gX2Bz
a2lwL3hmYWlsIHdpdGggcGFyYW1ldHJpemVgOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3RhbGtzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90YWxrcy5yc3QKaW5kZXggNzk1MzRl
YTZlOWE2Zjc5NWZlMzdmNzBjODQ4ODdkMWFiNjUwYjBlOS4uYmUwYzZmYjlmZDQ0ZTljMzk4N2Yz
NWRmMjdkMzkyNWNmYWY5Y2E4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RhbGtz
LnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGFsa3MucnN0CkBAIC0xNCwxMiArMTQsMjAg
QEAgVGFsa3MgYW5kIFR1dG9yaWFscwogQm9va3MKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCistIGBweXRlc3QgUXVpY2sgU3RhcnQgR3VpZGUsIGJ5IEJy
dW5vIE9saXZlaXJhICgyMDE4KQorICA8aHR0cHM6Ly93d3cucGFja3RwdWIuY29tL3dlYi1kZXZl
bG9wbWVudC9weXRlc3QtcXVpY2stc3RhcnQtZ3VpZGU+YF8uCisKIC0gYFB5dGhvbiBUZXN0aW5n
IHdpdGggcHl0ZXN0LCBieSBCcmlhbiBPa2tlbiAoMjAxNykKICAgPGh0dHBzOi8vcHJhZ3Byb2cu
Y29tL2Jvb2svYm9weXRlc3QvcHl0aG9uLXRlc3Rpbmctd2l0aC1weXRlc3Q+YF8uCiAKIFRhbGtz
IGFuZCBibG9nIHBvc3RpbmdzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAorLSBweXRlc3Q6IHJlY29tbWVuZGF0aW9ucywgYmFzaWMgcGFja2FnZXMgZm9y
IHRlc3RpbmcgaW4gUHl0aG9uIGFuZCBEamFuZ28sIEFuZHJldSBWYWxsYm9uYSwgUHljb25FUyAy
MDE3IChgc2xpZGVzIGluIGVuZ2xpc2ggPGh0dHA6Ly90YWxrcy5hcHNsLmlvL3Rlc3RpbmctcHlj
b25lcy0yMDE3Lz5gXywgYHZpZGVvIGluIHNwYW5pc2ggPGh0dHBzOi8vd3d3LnlvdXR1YmUuY29t
L3dhdGNoP3Y9SzIwR2VSLWxYRGs+YF8pCisKKy0gYHB5dGVzdCBhZHZhbmNlZCwgQW5kcmV3IFN2
ZXRsb3YgKFJ1c3NpYW4sIFB5Q29uIFJ1c3NpYSwgMjAxNikKKyAgPGh0dHBzOi8vd3d3LnlvdXR1
YmUuY29tL3dhdGNoP3Y9N0tnaWhkS1RXWTQ+YF8uCisKIC0gYFB5dGhvbmljIHRlc3RpbmcsIEln
b3IgU3Rhcmlrb3YgKFJ1c3NpYW4sIFB5TnNrLCBOb3ZlbWJlciAyMDE2KQogICA8aHR0cHM6Ly93
d3cueW91dHViZS5jb20vd2F0Y2g/dj1fOTJuZmRkNW5LOD5gXy4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Rlc3QvYXR0aWMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
YXR0aWMucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjk0NDY2MWNiNWNlNzE1
MGFkOWRmZmU3ZTUzOWRkZjE4ZDhhMDgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2F0dGljLnJzdAorKysgL2Rl
di9udWxsCkBAIC0xLDExNyArMCwwIEBACi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotQVRUSUMgZG9jdW1lbnRhdGlvbgotPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotWFhYIFJFVklFVyBhbmQgcmVtb3ZlIHRo
ZSBiZWxvdyAgWFhYCi0KLUN1c3RvbWl6aW5nIHRoZSB0ZXN0aW5nIHByb2Nlc3MKLT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLQotd3JpdGluZyBjb25mdGVzdC5weSBmaWxlcwotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotWW91IG1heSBwdXQgY29uZnRlc3Qu
cHkgZmlsZXMgY29udGFpbmluZyBwcm9qZWN0LXNwZWNpZmljCi1jb25maWd1cmF0aW9uIGluIHlv
dXIgcHJvamVjdCdzIHJvb3QgZGlyZWN0b3J5LCBpdCdzIHVzdWFsbHkKLWJlc3QgdG8gcHV0IGl0
IGp1c3QgaW50byB0aGUgc2FtZSBkaXJlY3RvcnkgbGV2ZWwgYXMgeW91cgotdG9wbW9zdCBgYF9f
aW5pdF9fLnB5YGAuICBJbiBmYWN0LCBgYHB5dGVzdGBgIHBlcmZvcm1zCi1hbiAidXB3YXJkcyIg
c2VhcmNoIHN0YXJ0aW5nIGZyb20gdGhlIGRpcmVjdG9yeSB0aGF0IHlvdSBzcGVjaWZ5Ci10byBi
ZSB0ZXN0ZWQgYW5kIHdpbGwgbG9va3VwIGNvbmZpZ3VyYXRpb24gdmFsdWVzIHJpZ2h0LXRvLWxl
ZnQuCi1Zb3UgbWF5IGhhdmUgb3B0aW9ucyB0aGF0IHJlc2lkZSBlLmcuIGluIHlvdXIgaG9tZSBk
aXJlY3RvcnkKLWJ1dCBub3RlIHRoYXQgcHJvamVjdCBzcGVjaWZpYyBzZXR0aW5ncyB3aWxsIGJl
IGNvbnNpZGVyZWQKLWZpcnN0LiAgVGhlcmUgaXMgYSBmbGFnIHRoYXQgaGVscHMgeW91IGRlYnVn
Z2luZyB5b3VyCi1jb25mdGVzdC5weSBjb25maWd1cmF0aW9uczo6Ci0KLSAgICBweXRlc3QgLS10
cmFjZS1jb25maWcKLQotCi1jdXN0b21pemluZyB0aGUgY29sbGVjdGluZyBhbmQgcnVubmluZyBw
cm9jZXNzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
Ci1UbyBpbnRyb2R1Y2UgZGlmZmVyZW50IHRlc3QgaXRlbXMgeW91IGNhbiBjcmVhdGUKLW9uZSBv
ciBtb3JlIGBgY29uZnRlc3QucHlgYCBmaWxlcyBpbiB5b3VyIHByb2plY3QuCi1XaGVuIHRoZSBj
b2xsZWN0aW9uIHByb2Nlc3MgdHJhdmVyc2VzIGRpcmVjdG9yaWVzCi1hbmQgbW9kdWxlcyB0aGUg
ZGVmYXVsdCBjb2xsZWN0b3JzIHdpbGwgcHJvZHVjZQotY3VzdG9tIENvbGxlY3RvcnMgYW5kIEl0
ZW1zIGlmIHRoZXkgYXJlIGZvdW5kCi1pbiBhIGxvY2FsIGBgY29uZnRlc3QucHlgYCBmaWxlLgot
Ci0KLUN1c3RvbWl6aW5nIHRoZSBjb2xsZWN0aW9uIHByb2Nlc3MgaW4gYSBtb2R1bGUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotSWYgeW91IGhhdmUg
YSBtb2R1bGUgd2hlcmUgeW91IHdhbnQgdG8gdGFrZSByZXNwb25zaWJpbGl0eSBmb3IKLWNvbGxl
Y3RpbmcgeW91ciBvd24gdGVzdCBJdGVtcyBhbmQgcG9zc2libHkgZXZlbiBmb3IgZXhlY3V0aW5n
Ci1hIHRlc3QgdGhlbiB5b3UgY2FuIHByb3ZpZGUgYGdlbmVyYXRpdmUgdGVzdHNgXyB0aGF0IHlp
ZWxkCi1jYWxsYWJsZXMgYW5kIHBvc3NpYmx5IGFyZ3VtZW50cyBhcyBhIHR1cGxlLiAgIFRoaXMg
aXMgZXNwZWNpYWxseQotdXNlZnVsIGZvciBjYWxsaW5nIGFwcGxpY2F0aW9uIHRlc3QgbWFjaGlu
ZXJ5IHdpdGggZGlmZmVyZW50Ci1wYXJhbWV0ZXIgc2V0cyBidXQgY291bnRpbmcgZWFjaCBvZiB0
aGUgY2FsbHMgYXMgYSBzZXBhcmF0ZQotdGVzdHMuCi0KLS4uIF9gZ2VuZXJhdGl2ZSB0ZXN0c2A6
IGZlYXR1cmVzLmh0bWwjZ2VuZXJhdGl2ZS10ZXN0cwotCi1UaGUgb3RoZXIgZXh0ZW5zaW9uIHBv
c3NpYmlsaXR5IGlzIGFib3V0Ci1zcGVjaWZ5aW5nIGEgY3VzdG9tIHRlc3QgYGBJdGVtYGAgY2xh
c3Mgd2hpY2gKLWlzIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHVwIGFuZCBleGVjdXRpbmcgYW4g
dW5kZXJseWluZwotdGVzdC4gIE9yIHlvdSBjYW4gZXh0ZW5kIHRoZSBjb2xsZWN0aW9uIHByb2Nl
c3MgZm9yIGEgd2hvbGUKLWRpcmVjdG9yeSB0cmVlIGJ5IHB1dHRpbmcgSXRlbXMgaW4gYSBgYGNv
bmZ0ZXN0LnB5YGAgY29uZmlndXJhdGlvbiBmaWxlLgotVGhlIGNvbGxlY3Rpb24gcHJvY2VzcyBk
eW5hbWljYWxseSBjb25zdWx0cyB0aGUgKmNoYWluIG9mIGNvbmZ0ZXN0LnB5KgotbW9kdWxlcyB0
byBkZXRlcm1pbmUgY29sbGVjdG9ycyBhbmQgaXRlbXMgYXQgYGBEaXJlY3RvcnlgYCwgYGBNb2R1
bGVgYCwKLWBgQ2xhc3NgYCwgYGBGdW5jdGlvbmBgIG9yIGBgR2VuZXJhdG9yYGAgbGV2ZWwgcmVz
cGVjdGl2ZWx5LgotCi1DdXN0b21pemluZyBleGVjdXRpb24gb2YgSXRlbXMgYW5kIEZ1bmN0aW9u
cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
Ci0tIGBgcHl0ZXN0LkZ1bmN0aW9uYGAgdGVzdCBpdGVtcyBjb250cm9sIGV4ZWN1dGlvbgotICBv
ZiBhIHRlc3QgZnVuY3Rpb24gdGhyb3VnaCBpdHMgYGBmdW5jdGlvbi5ydW50ZXN0KClgYCBtZXRo
b2QuCi0gIFRoaXMgbWV0aG9kIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJmb3JtaW5nIHNldHVwIGFu
ZCB0ZWFyZG93bgotICAoIlRlc3QgRml4dHVyZXMiKSBmb3IgYSB0ZXN0IEZ1bmN0aW9uLgotCi0t
IGBgRnVuY3Rpb24uZXhlY3V0ZSh0YXJnZXQsICphcmdzKWBgIG1ldGhvZHMgYXJlIGludm9rZWQg
YnkKLSAgdGhlIGRlZmF1bHQgYGBGdW5jdGlvbi5ydW4oKWBgIHRvIGFjdHVhbGx5IGV4ZWN1dGUg
YSBweXRob24KLSAgZnVuY3Rpb24gd2l0aCB0aGUgZ2l2ZW4gKHVzdWFsbHkgZW1wdHkgc2V0IG9m
KSBhcmd1bWVudHMuCi0KLS4uIF9gcHktZGV2IG1haWxpbmcgbGlzdGA6IGh0dHA6Ly9jb2Rlc3Bl
YWsubmV0L21haWxtYW4vbGlzdGluZm8vcHktZGV2Ci0KLQotLi4gX2B0ZXN0IGdlbmVyYXRvcnNg
OiBmdW5jYXJncy5odG1sI3Rlc3QtZ2VuZXJhdG9ycwotCi0uLiBfYGdlbmVyYXRpdmUgdGVzdHNg
OgotCi1nZW5lcmF0aXZlIHRlc3RzOiB5aWVsZGluZyBwYXJhbWV0cml6ZWQgdGVzdHMKLT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotRGVwcmVj
YXRlZCBzaW5jZSAxLjAgaW4gZmF2b3VyIG9mIGB0ZXN0IGdlbmVyYXRvcnNgXy4KLQotKkdlbmVy
YXRpdmUgdGVzdHMqIGFyZSB0ZXN0IG1ldGhvZHMgdGhhdCBhcmUgKmdlbmVyYXRvciBmdW5jdGlv
bnMqIHdoaWNoCi1gYHlpZWxkYGAgY2FsbGFibGVzIGFuZCB0aGVpciBhcmd1bWVudHMuICBUaGlz
IGlzIHVzZWZ1bCBmb3IgcnVubmluZyBhCi10ZXN0IGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIGFn
YWluc3QgZGlmZmVyZW50IHBhcmFtZXRlcnMuICBFeGFtcGxlOjoKLQotICAgIGRlZiB0ZXN0X2dl
bmVyYXRpdmUoKToKLSAgICAgICAgZm9yIHggaW4gKDQyLDE3LDQ5KToKLSAgICAgICAgICAgIHlp
ZWxkIGNoZWNrLCB4Ci0KLSAgICBkZWYgY2hlY2soYXJnKToKLSAgICAgICAgYXNzZXJ0IGFyZyAl
IDcgPT0gMCAgICMgc2Vjb25kIGdlbmVyYXRlZCB0ZXN0cyBmYWlscyEKLQotTm90ZSB0aGF0IGBg
dGVzdF9nZW5lcmF0aXZlKClgYCB3aWxsIGNhdXNlIHRocmVlIHRlc3RzCi10byBnZXQgcnVuLCBu
b3RhYmx5IGBgY2hlY2soNDIpYGAsIGBgY2hlY2soMTcpYGAgYW5kIGBgY2hlY2soNDkpYGAKLW9m
IHdoaWNoIHRoZSBtaWRkbGUgb25lIHdpbGwgb2J2aW91c2x5IGZhaWwuCi0KLVRvIG1ha2UgaXQg
ZWFzaWVyIHRvIGRpc3Rpbmd1aXNoIHRoZSBnZW5lcmF0ZWQgdGVzdHMgaXQgaXMgcG9zc2libGUg
dG8gc3BlY2lmeSBhbiBleHBsaWNpdCBuYW1lIGZvciB0aGVtLCBsaWtlIGZvciBleGFtcGxlOjoK
LQotICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmUoKToKLSAgICAgICAgZm9yIHggaW4gKDQyLDE3LDQ5
KToKLSAgICAgICAgICAgIHlpZWxkICJjYXNlICVkIiAlIHgsIGNoZWNrLCB4Ci0KLQotZGlzYWJs
aW5nIGEgdGVzdCBjbGFzcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1JZiB5b3Ugd2FudCB0
byBkaXNhYmxlIGEgY29tcGxldGUgdGVzdCBjbGFzcyB5b3UKLWNhbiBzZXQgdGhlIGNsYXNzLWxl
dmVsIGF0dHJpYnV0ZSBgYGRpc2FibGVkYGAuCi1Gb3IgZXhhbXBsZSwgaW4gb3JkZXIgdG8gYXZv
aWQgcnVubmluZyBzb21lIHRlc3RzIG9uIFdpbjMyOjoKLQotICAgIGNsYXNzIFRlc3RQb3NpeE9u
bHkob2JqZWN0KToKLSAgICAgICAgZGlzYWJsZWQgPSBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJwot
Ci0gICAgICAgIGRlZiB0ZXN0X3h4eChzZWxmKToKLSAgICAgICAgICAgIC4uLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvY29uZmlnLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vdGVzdC9jb25maWcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2JhNWE0
NmY5ODJlYWEyYTc3OGNmODY1YjA1MDNkMzBjOGFhYjhkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9jb25maWcu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTxodG1sPgotICAgIDxoZWFkPgot
ICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIgMSA7IFVSTD1jdXN0
b21pemUuaHRtbCIgLz4KLSAgICA8L2hlYWQ+Ci0KLSAgICA8Ym9keT4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KLXZhciBnYUpzSG9zdCA9ICgoImh0dHBzOiIgPT0gZG9jdW1lbnQu
bG9jYXRpb24ucHJvdG9jb2wpID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0cDovL3d3dy4iKTsKLWRv
Y3VtZW50LndyaXRlKHVuZXNjYXBlKCIlM0NzY3JpcHQgc3JjPSciICsgZ2FKc0hvc3QgKyAiZ29v
Z2xlLWFuYWx5dGljcy5jb20vZ2EuanMnIHR5cGU9J3RleHQvamF2YXNjcmlwdCclM0UlM0Mvc2Ny
aXB0JTNFIikpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci10
cnkgewotdmFyIHBhZ2VUcmFja2VyID0gX2dhdC5fZ2V0VHJhY2tlcigiVUEtNzU5NzI3NC0zIik7
Ci1wYWdlVHJhY2tlci5fdHJhY2tQYWdldmlldygpOwotfSBjYXRjaChlcnIpIHt9PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+Ci0gICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
dGVzdC9kaXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzMjg1NTBhODVjYjEwNTIxYWMyMTZiMjU5MWYyNjg5
ZTQ2NGU5MTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZGlzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTgg
KzAsMCBAQAotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9InJl
ZnJlc2giIGNvbnRlbnQ9IiAxIDsgVVJMPXBsdWdpbi94ZGlzdC5odG1sIiAvPgotICAgIDwvaGVh
ZD4KLQotICAgIDxib2R5PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotdmFyIGdh
SnNIb3N0ID0gKCgiaHR0cHM6IiA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCkgPyAiaHR0
cHM6Ly9zc2wuIiA6ICJodHRwOi8vd3d3LiIpOwotZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoIiUz
Q3NjcmlwdCBzcmM9JyIgKyBnYUpzSG9zdCArICJnb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcycg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0JyUzRSUzQy9zY3JpcHQlM0UiKSk7Ci08L3NjcmlwdD4KLTxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLXRyeSB7Ci12YXIgcGFnZVRyYWNrZXIgPSBf
Z2F0Ll9nZXRUcmFja2VyKCJVQS03NTk3Mjc0LTMiKTsKLXBhZ2VUcmFja2VyLl90cmFja1BhZ2V2
aWV3KCk7Ci19IGNhdGNoKGVycikge308L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLSAgICAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2V4dGVuZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3Rlc3QvZXh0ZW5kLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNiYTVhNDZmOTgyZWFhMmE3NzhjZjg2NWIwNTAzZDMwYzhhYWI4ZGMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rl
c3QvZXh0ZW5kLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08aHRtbD4KLSAg
ICA8aGVhZD4KLSAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iIDEg
OyBVUkw9Y3VzdG9taXplLmh0bWwiIC8+Ci0gICAgPC9oZWFkPgotCi0gICAgPGJvZHk+Ci08c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci12YXIgZ2FKc0hvc3QgPSAoKCJodHRwczoiID09
IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKSA/ICJodHRwczovL3NzbC4iIDogImh0dHA6Ly93
d3cuIik7Ci1kb2N1bWVudC53cml0ZSh1bmVzY2FwZSgiJTNDc2NyaXB0IHNyYz0nIiArIGdhSnNI
b3N0ICsgImdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
JTNFJTNDL3NjcmlwdCUzRSIpKTsKLTwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgotdHJ5IHsKLXZhciBwYWdlVHJhY2tlciA9IF9nYXQuX2dldFRyYWNrZXIoIlVBLTc1
OTcyNzQtMyIpOwotcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsKLX0gY2F0Y2goZXJyKSB7
fTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvaW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvaW5kZXgu
cnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTNiNWE1NGRhMDhjNjcyYzNhZjk3
MmU0N2JmN2Q0NmU4ODYxYjVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2luZGV4LnJzdAorKysgL2Rldi9udWxs
CkBAIC0xLDM1ICswLDAgQEAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotcHl0ZXN0IGRvY3VtZW50YXRpb24gaW5kZXgKLT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotCi0KLWZlYXR1cmVzXzogb3ZlcnZpZXcgYW5kIGRpc2N1c3Npb24gb2Yg
ZmVhdHVyZXMuCi0KLXF1aWNrc3RhcnRfOiBnZXR0aW5nIHN0YXJ0ZWQgd2l0aCB3cml0aW5nIGEg
c2ltcGxlIHRlc3QuCi0KLWB0YWxrcywgdHV0b3JpYWxzLCBleGFtcGxlc2BfOiB0dXRvcmlhbCBl
eGFtcGxlcywgc2xpZGVzCi0KLWZ1bmNhcmdzXzogcG93ZXJmdWwgcGFyYW1ldHJpemVkIHRlc3Qg
ZnVuY3Rpb24gc2V0dXAKLQotYHBsdWdpbnNgXzogbGlzdCBvZiBhdmFpbGFibGUgcGx1Z2lucyB3
aXRoIHVzYWdlIGV4YW1wbGVzIGFuZCBmZWF0dXJlIGRldGFpbHMuCi0KLWN1c3RvbWl6ZV86IGNv
bmZpZ3VyYXRpb24sIGN1c3RvbWl6YXRpb24sIGV4dGVuc2lvbnMKLQotY2hhbmdlbG9nXzogaGlz
dG9yeSBvZiBjaGFuZ2VzIGNvdmVyaW5nIGxhc3QgcmVsZWFzZXMKLQotKipDb250aW51b3VzIElu
dGVncmF0aW9uIG9mIHB5dGVzdCdzIG93biB0ZXN0cyBhbmQgcGx1Z2lucyB3aXRoIEh1ZHNvbioq
OgotCi0gICAgYGh0dHA6Ly9odWRzb24udGVzdHJ1bi5vcmcvdmlldy9weXRlc3RgXwotCi0uLiBf
YGh0dHA6Ly9odWRzb24udGVzdHJ1bi5vcmcvdmlldy9weXRlc3RgOiBodHRwOi8vaHVkc29uLnRl
c3RydW4ub3JnL3ZpZXcvcHl0ZXN0LwotCi0KLS4uIF9jaGFuZ2Vsb2c6IC4uL2NoYW5nZWxvZy5o
dG1sCi0uLiBfYHBsdWdpbnNgOiBwbHVnaW4vaW5kZXguaHRtbAotLi4gX2B0YWxrcywgdHV0b3Jp
YWxzLCBleGFtcGxlc2A6IHRhbGtzLmh0bWwKLS4uIF9xdWlja3N0YXJ0OiBxdWlja3N0YXJ0Lmh0
bWwKLS4uIF9mZWF0dXJlczogZmVhdHVyZXMuaHRtbAotLi4gX2Z1bmNhcmdzOiBmdW5jYXJncy5o
dG1sCi0uLiBfY3VzdG9taXplOiBjdXN0b21pemUuaHRtbAotCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L21pc3Npb24ucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
bWlzc2lvbi5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxYzI1MmRjMGQ4NmE0
YzQxNzUzZDY1NjE5ODMyMWFhOGQ5ZTMyNGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvbWlzc2lvbi5yc3QKKysr
IC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0KLU1pc3Npb24KLT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotCi1gYHB5dGVzdGBgIHN0cml2ZXMgdG8gbWFrZSB0ZXN0aW5n
IGEgZnVuIGFuZCBuby1ib2lsZXJwbGF0ZSBlZmZvcnQuCi0KLVRoZSB0b29sIGlzIGRpc3RyaWJ1
dGVkIGFzIGEgYHB5dGVzdGAgcGFja2FnZS4gIEl0cyBwcm9qZWN0IGluZGVwZW5kZW50Ci1gYHB5
dGVzdGBgIGNvbW1hbmQgbGluZSB0b29sIGhlbHBzIHlvdSB0bzoKLQotKiByYXBpZGx5IGNvbGxl
Y3QgYW5kIHJ1biB0ZXN0cwotKiBydW4gdW5pdC0gb3IgZG9jdGVzdHMsIGZ1bmN0aW9uYWwgb3Ig
aW50ZWdyYXRpb24gdGVzdHMKLSogZGlzdHJpYnV0ZSB0ZXN0cyB0byBtdWx0aXBsZSBlbnZpcm9u
bWVudHMKLSogdXNlIGxvY2FsIG9yIGdsb2JhbCBwbHVnaW5zIGZvciBjdXN0b20gdGVzdCB0eXBl
cyBhbmQgc2V0dXAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9j
b3YucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2Nvdi5yc3QKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0MWM3ZWY5NDc5MzRlYTU2YWFmNTAyMjhkMzEyOTc1NzRi
NWE1N2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2Nvdi5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwy
MzAgKzAsMCBAQAotCi1wcm9kdWNlIGNvZGUgY292ZXJhZ2UgcmVwb3J0cyB1c2luZyB0aGUgJ2Nv
dmVyYWdlJyBwYWNrYWdlLCBpbmNsdWRpbmcgc3VwcG9ydCBmb3IgZGlzdHJpYnV0ZWQgdGVzdGlu
Zy4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4u
IGNvbnRlbnRzOjoKLSAgOmxvY2FsOgotCi1UaGlzIHBsdWdpbiBwcm9kdWNlcyBjb3ZlcmFnZSBy
ZXBvcnRzLiAgSXQgc3VwcG9ydHMgY2VudHJhbGlzZWQgdGVzdGluZyBhbmQgZGlzdHJpYnV0ZWQg
dGVzdGluZyBpbgotYm90aCBsb2FkIGFuZCBlYWNoIG1vZGVzLiAgSXQgYWxzbyBzdXBwb3J0cyBj
b3ZlcmFnZSBvZiBzdWJwcm9jZXNzZXMuCi0KLUFsbCBmZWF0dXJlcyBvZmZlcmVkIGJ5IHRoZSBj
b3ZlcmFnZSBwYWNrYWdlIHNob3VsZCBiZSBhdmFpbGFibGUsIGVpdGhlciB0aHJvdWdoIHB5dGVz
dC1jb3Ygb3IKLXRocm91Z2ggY292ZXJhZ2UncyBjb25maWcgZmlsZS4KLQotCi1JbnN0YWxsYXRp
b24KLS0tLS0tLS0tLS0tLQotCi1UaGUgYHB5dGVzdC1jb3ZgXyBwYWNrYWdlIG1heSBiZSBpbnN0
YWxsZWQgd2l0aCBwaXAgb3IgZWFzeV9pbnN0YWxsOjoKLQotICAgIHBpcCBpbnN0YWxsIHB5dGVz
dC1jb3YKLSAgICBlYXN5X2luc3RhbGwgcHl0ZXN0LWNvdgotCi0uLiBfYHB5dGVzdC1jb3ZgOiBo
dHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LWNvdi8KLQotCi1Vbmluc3RhbGxhdGlv
bgotLS0tLS0tLS0tLS0tLS0KLQotVW5pbnN0YWxsaW5nIHBhY2thZ2VzIGlzIHN1cHBvcnRlZCBi
eSBwaXA6OgotCi0gICAgcGlwIHVuaW5zdGFsbCBweXRlc3QtY292Ci0KLUhvd2V2ZXIgZWFzeV9p
bnN0YWxsIGRvZXMgbm90IHByb3ZpZGUgYW4gdW5pbnN0YWxsIGZhY2lsaXR5LgotCi0uLiBJTVBP
UlRBTlQ6OgotCi0gICAgRW5zdXJlIHRoYXQgeW91IG1hbnVhbGx5IGRlbGV0ZSB0aGUgaW5pdF9j
b3ZtYWluLnB0aCBmaWxlIGluIHlvdXIKLSAgICBzaXRlLXBhY2thZ2VzIGRpcmVjdG9yeS4KLQot
ICAgIFRoaXMgZmlsZSBzdGFydHMgY292ZXJhZ2UgY29sbGVjdGlvbiBvZiBzdWJwcm9jZXNzZXMg
aWYgYXBwcm9wcmlhdGUgZHVyaW5nCi0gICAgc2l0ZSBpbml0aWFsaXphdGlvbiBhdCBweXRob24g
c3RhcnR1cC4KLQotCi1Vc2FnZQotLS0tLS0KLQotQ2VudHJhbGlzZWQgVGVzdGluZwotfn5+fn5+
fn5+fn5+fn5+fn5+fgotCi1DZW50cmFsaXNlZCB0ZXN0aW5nIHdpbGwgcmVwb3J0IG9uIHRoZSBj
b21iaW5lZCBjb3ZlcmFnZSBvZiB0aGUgbWFpbiBwcm9jZXNzIGFuZCBhbGwgb2YgaXQncwotc3Vi
cHJvY2Vzc2VzLgotCi1SdW5uaW5nIGNlbnRyYWxpc2VkIHRlc3Rpbmc6OgotCi0gICAgcHl0ZXN0
IC0tY292IG15cHJvaiB0ZXN0cy8KLQotU2hvd3MgYSB0ZXJtaW5hbCByZXBvcnQ6OgotCi0gICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0gY292ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIu
Ni40LWZpbmFsLTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAg
ICAgU3RtdHMgICBNaXNzICBDb3ZlcgotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgICBteXByb2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAl
Ci0gICAgbXlwcm9qL215cHJvaiAgICAgICAgICAyNTcgICAgIDEzICAgIDk0JQotICAgIG15cHJv
ai9mZWF0dXJlNDI4NiAgICAgIDk0ICAgICAgNyAgICA5MiUKLSAgICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMg
ICAgIDIwICAgIDk0JQotCi0KLURpc3RyaWJ1dGVkIFRlc3Rpbmc6IExvYWQKLX5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn4KLQotRGlzdHJpYnV0ZWQgdGVzdGluZyB3aXRoIGRpc3QgbW9kZSBzZXQg
dG8gbG9hZCB3aWxsIHJlcG9ydCBvbiB0aGUgY29tYmluZWQgY292ZXJhZ2Ugb2YgYWxsIHNsYXZl
cy4KLVRoZSBzbGF2ZXMgbWF5IGJlIHNwcmVhZCBvdXQgb3ZlciBhbnkgbnVtYmVyIG9mIGhvc3Rz
IGFuZCBlYWNoIHNsYXZlIG1heSBiZSBsb2NhdGVkIGFueXdoZXJlIG9uIHRoZQotZmlsZSBzeXN0
ZW0uICBFYWNoIHNsYXZlIHdpbGwgaGF2ZSBpdCdzIHN1YnByb2Nlc3NlcyBtZWFzdXJlZC4KLQot
UnVubmluZyBkaXN0cmlidXRlZCB0ZXN0aW5nIHdpdGggZGlzdCBtb2RlIHNldCB0byBsb2FkOjoK
LQotICAgIHB5dGVzdCAtLWNvdiBteXByb2ogLW4gMiB0ZXN0cy8KLQotU2hvd3MgYSB0ZXJtaW5h
bCByZXBvcnQ6OgotCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gY292ZXJhZ2U6IHBsYXRmb3Jt
IGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFsLTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAg
TmFtZSAgICAgICAgICAgICAgICAgU3RtdHMgICBNaXNzICBDb3ZlcgotICAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBteXByb2ovX19pbml0X18gICAgICAg
ICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlwcm9qL215cHJvaiAgICAgICAgICAyNTcgICAgIDEz
ICAgIDk0JQotICAgIG15cHJvai9mZWF0dXJlNDI4NiAgICAgIDk0ICAgICAgNyAgICA5MiUKLSAg
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgVE9UQUwgICAg
ICAgICAgICAgICAgICAzNTMgICAgIDIwICAgIDk0JQotCi0KLUFnYWluIGJ1dCBzcHJlYWQgb3Zl
ciBkaWZmZXJlbnQgaG9zdHMgYW5kIGRpZmZlcmVudCBkaXJlY3Rvcmllczo6Ci0KLSAgICBweXRl
c3QgLS1jb3YgbXlwcm9qIC0tZGlzdCBsb2FkCi0gICAgICAgICAgICAtLXR4IHNzaD1tZW1lZG91
Z2hAaG9zdDEvL2NoZGlyPXRlc3RlbnYxCi0gICAgICAgICAgICAtLXR4IHNzaD1tZW1lZG91Z2hA
aG9zdDIvL2NoZGlyPS90bXAvdGVzdGVudjIvL3B5dGhvbj0vdG1wL2VudjEvYmluL3B5dGhvbgot
ICAgICAgICAgICAgLS1yc3luY2RpciBteXByb2ogLS1yc3luY2RpciB0ZXN0cyAtLXJzeW5jIGV4
YW1wbGVzCi0gICAgICAgICAgICB0ZXN0cy8KLQotU2hvd3MgYSB0ZXJtaW5hbCByZXBvcnQ6Ogot
Ci0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gY292ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0
aG9uIDIuNi40LWZpbmFsLTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAg
ICAgICAgICAgU3RtdHMgICBNaXNzICBDb3ZlcgotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLSAgICBteXByb2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAg
ICAxMDAlCi0gICAgbXlwcm9qL215cHJvaiAgICAgICAgICAyNTcgICAgIDEzICAgIDk0JQotICAg
IG15cHJvai9mZWF0dXJlNDI4NiAgICAgIDk0ICAgICAgNyAgICA5MiUKLSAgICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgVE9UQUwgICAgICAgICAgICAgICAg
ICAzNTMgICAgIDIwICAgIDk0JQotCi0KLURpc3RyaWJ1dGVkIFRlc3Rpbmc6IEVhY2gKLX5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQotRGlzdHJpYnV0ZWQgdGVzdGluZyB3aXRoIGRpc3QgbW9k
ZSBzZXQgdG8gZWFjaCB3aWxsIHJlcG9ydCBvbiB0aGUgY29tYmluZWQgY292ZXJhZ2Ugb2YgYWxs
IHNsYXZlcy4KLVNpbmNlIGVhY2ggc2xhdmUgaXMgcnVubmluZyBhbGwgdGVzdHMgdGhpcyBhbGxv
d3MgZ2VuZXJhdGluZyBhIGNvbWJpbmVkIGNvdmVyYWdlIHJlcG9ydCBmb3IgbXVsdGlwbGUKLWVu
dmlyb25tZW50cy4KLQotUnVubmluZyBkaXN0cmlidXRlZCB0ZXN0aW5nIHdpdGggZGlzdCBtb2Rl
IHNldCB0byBlYWNoOjoKLQotICAgIHB5dGVzdCAtLWNvdiBteXByb2ogLS1kaXN0IGVhY2gKLSAg
ICAgICAgICAgIC0tdHggcG9wZW4vL2NoZGlyPS90bXAvdGVzdGVudjMvL3B5dGhvbj0vdXNyL2xv
Y2FsL3B5dGhvbjI3L2Jpbi9weXRob24KLSAgICAgICAgICAgIC0tdHggc3NoPW1lbWVkb3VnaEBo
b3N0Mi8vY2hkaXI9L3RtcC90ZXN0ZW52NC8vcHl0aG9uPS90bXAvZW52Mi9iaW4vcHl0aG9uCi0g
ICAgICAgICAgICAtLXJzeW5jZGlyIG15cHJvaiAtLXJzeW5jZGlyIHRlc3RzIC0tcnN5bmMgZXhh
bXBsZXMKLSAgICAgICAgICAgIHRlc3RzLwotCi1TaG93cyBhIHRlcm1pbmFsIHJlcG9ydDo6Ci0K
LSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNi41LWZpbmFsLTAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNy4wLWZp
bmFsLTAKLSAgICBOYW1lICAgICAgICAgICAgICAgICBTdG10cyAgIE1pc3MgIENvdmVyCi0gICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIG15cHJvai9fX2lu
aXRfXyAgICAgICAgICAyICAgICAgMCAgIDEwMCUKLSAgICBteXByb2ovbXlwcm9qICAgICAgICAg
IDI1NyAgICAgMTMgICAgOTQlCi0gICAgbXlwcm9qL2ZlYXR1cmU0Mjg2ICAgICAgOTQgICAgICA3
ICAgIDkyJQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICBUT1RBTCAgICAgICAgICAgICAgICAgIDM1MyAgICAgMjAgICAgOTQlCi0KLQotUmVwb3J0aW5n
Ci0tLS0tLS0tLS0KLQotSXQgaXMgcG9zc2libGUgdG8gZ2VuZXJhdGUgYW55IGNvbWJpbmF0aW9u
IG9mIHRoZSByZXBvcnRzIGZvciBhIHNpbmdsZSB0ZXN0IHJ1bi4KLQotVGhlIGF2YWlsYWJsZSBy
ZXBvcnRzIGFyZSB0ZXJtaW5hbCAod2l0aCBvciB3aXRob3V0IG1pc3NpbmcgbGluZSBudW1iZXJz
IHNob3duKSwgSFRNTCwgWE1MIGFuZAotYW5ub3RhdGVkIHNvdXJjZSBjb2RlLgotCi1UaGUgdGVy
bWluYWwgcmVwb3J0IHdpdGhvdXQgbGluZSBudW1iZXJzIChkZWZhdWx0KTo6Ci0KLSAgICBweXRl
c3QgLS1jb3YtcmVwb3J0IHRlcm0gLS1jb3YgbXlwcm9qIHRlc3RzLwotCi0gICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0gY292ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFs
LTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMg
ICBNaXNzICBDb3ZlcgotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSAgICBteXByb2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlw
cm9qL215cHJvaiAgICAgICAgICAyNTcgICAgIDEzICAgIDk0JQotICAgIG15cHJvai9mZWF0dXJl
NDI4NiAgICAgIDk0ICAgICAgNyAgICA5MiUKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAg
IDk0JQotCi0KLVRoZSB0ZXJtaW5hbCByZXBvcnQgd2l0aCBsaW5lIG51bWJlcnM6OgotCi0gICAg
cHl0ZXN0IC0tY292LXJlcG9ydCB0ZXJtLW1pc3NpbmcgLS1jb3YgbXlwcm9qIHRlc3RzLwotCi0g
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gY292ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9u
IDIuNi40LWZpbmFsLTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAg
ICAgICAgU3RtdHMgICBNaXNzICBDb3ZlciAgIE1pc3NpbmcKLSAgICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIG15cHJvai9fX2luaXRfXyAg
ICAgICAgICAyICAgICAgMCAgIDEwMCUKLSAgICBteXByb2ovbXlwcm9qICAgICAgICAgIDI1NyAg
ICAgMTMgICAgOTQlICAgMjQtMjYsIDk5LCAxNDksIDIzMy0yMzYsIDI5Ny0yOTgsIDM2OS0zNzAK
LSAgICBteXByb2ovZmVhdHVyZTQyODYgICAgICA5NCAgICAgIDcgICAgOTIlICAgMTgzLTE4OCwg
MTk3Ci0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSAgICBUT1RBTCAgICAgICAgICAgICAgICAgIDM1MyAgICAgMjAgICAgOTQlCi0KLQotVGhl
IHJlbWFpbmluZyB0aHJlZSByZXBvcnRzIG91dHB1dCB0byBmaWxlcyB3aXRob3V0IHNob3dpbmcg
YW55dGhpbmcgb24gdGhlIHRlcm1pbmFsICh1c2VmdWwgZm9yCi13aGVuIHRoZSBvdXRwdXQgaXMg
Z29pbmcgdG8gYSBjb250aW51b3VzIGludGVncmF0aW9uIHNlcnZlcik6OgotCi0gICAgcHl0ZXN0
IC0tY292LXJlcG9ydCBodG1sIC0tY292LXJlcG9ydCB4bWwgLS1jb3YtcmVwb3J0IGFubm90YXRl
IC0tY292IG15cHJvaiB0ZXN0cy8KLQotCi1Db3ZlcmFnZSBEYXRhIEZpbGUKLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi1UaGUgZGF0YSBmaWxlIGlzIGVyYXNlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRl
c3RpbmcgdG8gZW5zdXJlIGNsZWFuIGRhdGEgZm9yIGVhY2ggdGVzdCBydW4uCi0KLVRoZSBkYXRh
IGZpbGUgaXMgbGVmdCBhdCB0aGUgZW5kIG9mIHRlc3Rpbmcgc28gdGhhdCBpdCBpcyBwb3NzaWJs
ZSB0byB1c2Ugbm9ybWFsIGNvdmVyYWdlIHRvb2xzIHRvCi1leGFtaW5lIGl0LgotCi0KLUxpbWl0
YXRpb25zCi0tLS0tLS0tLS0tLQotCi1Gb3IgZGlzdHJpYnV0ZWQgdGVzdGluZyB0aGUgc2xhdmVz
IG11c3QgaGF2ZSB0aGUgcHl0ZXN0LWNvdiBwYWNrYWdlIGluc3RhbGxlZC4gIFRoaXMgaXMgbmVl
ZGVkIHNpbmNlCi10aGUgcGx1Z2luIG11c3QgYmUgcmVnaXN0ZXJlZCB0aHJvdWdoIHNldHVwdG9v
bHMgLyBkaXN0cmlidXRlIGZvciBweXRlc3QgdG8gc3RhcnQgdGhlIHBsdWdpbiBvbiB0aGUKLXNs
YXZlLgotCi1Gb3Igc3VicHJvY2VzcyBtZWFzdXJlbWVudCBlbnZpcm9ubWVudCB2YXJpYWJsZXMg
bXVzdCBtYWtlIGl0IGZyb20gdGhlIG1haW4gcHJvY2VzcyB0byB0aGUKLXN1YnByb2Nlc3MuICBU
aGUgcHl0aG9uIHVzZWQgYnkgdGhlIHN1YnByb2Nlc3MgbXVzdCBoYXZlIHB5dGVzdC1jb3YgaW5z
dGFsbGVkLiAgVGhlIHN1YnByb2Nlc3MgbXVzdAotZG8gbm9ybWFsIHNpdGUgaW5pdGlhbGl6YXRp
b24gc28gdGhhdCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGNhbiBiZSBkZXRlY3RlZCBhbmQg
Y292ZXJhZ2UKLXN0YXJ0ZWQuCi0KLQotQWNrbm93bGVkZ21lbnRzCi0tLS0tLS0tLS0tLS0tLS0t
Ci0KLUhvbGdlciBLcmVrZWwgZm9yIHB5dGVzdCB3aXRoIGl0cyBkaXN0cmlidXRlZCB0ZXN0aW5n
IHN1cHBvcnQuCi0KLU5lZCBCYXRjaGVsZGVyIGZvciBjb3ZlcmFnZSBhbmQgaXRzIGFiaWxpdHkg
dG8gY29tYmluZSB0aGUgY292ZXJhZ2UgcmVzdWx0cyBvZiBwYXJhbGxlbCBydW5zLgotCi1XaGls
c3QgdGhpcyBwbHVnaW4gaGFzIGJlZW4gYnVpbHQgZnJlc2ggZnJvbSB0aGUgZ3JvdW5kIHVwIHRv
IHN1cHBvcnQgZGlzdHJpYnV0ZWQgdGVzdGluZyBpdCBoYXMKLWJlZW4gaW5mbHVlbmNlZCBieSB0
aGUgd29yayBkb25lIG9uIHB5dGVzdC1jb3ZlcmFnZSAoUm9zcyBMYXdsZXksIEphbWVzIE1pbGxz
LCBIb2xnZXIgS3Jla2VsKSBhbmQKLW5vc2UtY292ZXIgKEphc29uIFBlbGxlcmluKSB3aGljaCBh
cmUgb3RoZXIgY292ZXJhZ2UgcGx1Z2lucyBmb3IgcHl0ZXN0IGFuZCBub3NlIHJlc3BlY3RpdmVs
eS4KLQotTm8gZG91YnQgb3RoZXJzIGhhdmUgY29udHJpYnV0ZWQgdG8gdGhlc2UgdG9vbHMgYXMg
d2VsbC4KLQotY29tbWFuZCBsaW5lIG9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQot
YGAtLWNvdj1wYXRoYGAKLSAgICBtZWFzdXJlIGNvdmVyYWdlIGZvciBmaWxlc3lzdGVtIHBhdGgg
KG11bHRpLWFsbG93ZWQpCi1gYC0tY292LXJlcG9ydD10eXBlYGAKLSAgICB0eXBlIG9mIHJlcG9y
dCB0byBnZW5lcmF0ZTogdGVybSwgdGVybS1taXNzaW5nLCBhbm5vdGF0ZSwgaHRtbCwgeG1sICht
dWx0aS1hbGxvd2VkKQotYGAtLWNvdi1jb25maWc9cGF0aGBgCi0gICAgY29uZmlnIGZpbGUgZm9y
IGNvdmVyYWdlLCBkZWZhdWx0OiAuY292ZXJhZ2VyYwotCi0uLiBpbmNsdWRlOjogbGlua3MudHh0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vY292ZXJhZ2UucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2NvdmVyYWdlLnJzdApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzExMzlkMDA4YmEwMjBhN2Y3YjY5NmEyM2M4NDJjM2Y1MzNk
ZGM1Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vY292ZXJhZ2UucnN0CisrKyAvZGV2L251bGwKQEAg
LTEsNTEgKzAsMCBAQAotCi1Xcml0ZSBhbmQgcmVwb3J0IGNvdmVyYWdlIGRhdGEgd2l0aCB0aGUg
J2NvdmVyYWdlJyBwYWNrYWdlLgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLQotCi0uLiBjb250ZW50czo6Ci0gIDpsb2NhbDoKLQot
Tm90ZTogT3JpZ2luYWwgY29kZSBieSBSb3NzIExhd2xleS4gCi0KLUluc3RhbGwKLS0tLS0tLS0t
LS0tLS0tCi0KLVVzZSBwaXAgdG8gKHVuKWluc3RhbGw6OgotCi0gICAgcGlwIGluc3RhbGwgcHl0
ZXN0LWNvdmVyYWdlIAotICAgIHBpcCB1bmluc3RhbGwgcHl0ZXN0LWNvdmVyYWdlIAotCi1vciBh
bHRlcm5hdGl2ZWx5IHVzZSBlYXN5X2luc3RhbGwgdG8gaW5zdGFsbDo6Ci0KLSAgICBlYXN5X2lu
c3RhbGwgcHl0ZXN0LWNvdmVyYWdlIAotCi0KLVVzYWdlIAotLS0tLS0tLS0tLS0tLQotCi1UbyBn
ZXQgZnVsbCB0ZXN0IGNvdmVyYWdlIHJlcG9ydHMgZm9yIGEgcGFydGljdWxhciBwYWNrYWdlIHR5
cGU6OgotCi0gICAgcHl0ZXN0IC0tY292ZXItcmVwb3J0PXJlcG9ydAotCi1jb21tYW5kIGxpbmUg
b3B0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1gYC0tY292ZXI9Q09WRVJQQUNLQUdF
U2BgCi0gICAgKG11bHRpIGFsbG93ZWQpIG9ubHkgaW5jbHVkZSBpbmZvIGZyb20gc3BlY2lmaWVk
IHBhY2thZ2UuCi1gYC0tY292ZXItcmVwb3J0PVJFUE9SVF9UWVBFYGAKLSAgICBodG1sOiBEaXJl
Y3RvcnkgZm9yIGh0bWwgb3V0cHV0LgotICAgICAgICAgICAgICAgICAgICByZXBvcnQ6IE91dHB1
dCBhIHRleHQgcmVwb3J0LgotICAgICAgICAgICAgICAgICAgICBhbm5vdGF0ZTogQW5ub3RhdGUg
eW91ciBzb3VyY2UgY29kZSBmb3Igd2hpY2ggbGluZXMgd2VyZSBleGVjdXRlZCBhbmQgd2hpY2gg
d2VyZSBub3QuCi0gICAgICAgICAgICAgICAgICAgIHhtbDogT3V0cHV0IGFuIHhtbCByZXBvcnQg
Y29tcGF0aWJsZSB3aXRoIHRoZSBjb2JlcnR1cmEgcGx1Z2luIGZvciBodWRzb24uCi1gYC0tY292
ZXItZGlyZWN0b3J5PURJUkVDVE9SWWBgCi0gICAgRGlyZWN0b3J5IGZvciB0aGUgcmVwb3J0cyAo
aHRtbCAvIGFubm90YXRlIHJlc3VsdHMpIGRlZmF1bHRzIHRvIC4vY292ZXJhZ2UKLWBgLS1jb3Zl
ci14bWwtZmlsZT1YTUxfRklMRWBgCi0gICAgRmlsZSBmb3IgdGhlIHhtbCByZXBvcnQgZGVmYXVs
dHMgdG8gLi9jb3ZlcmFnZS54bWwKLWBgLS1jb3Zlci1zaG93LW1pc3NpbmdgYAotICAgIFNob3cg
bWlzc2luZyBmaWxlcwotYGAtLWNvdmVyLWlnbm9yZS1lcnJvcnM9SUdOT1JFX0VSUk9SU2BgCi0g
ICAgSWdub3JlIGVycm9ycyBvZiBmaW5kaW5nIHNvdXJjZSBmaWxlcyBmb3IgY29kZS4KLQotLi4g
aW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
cGx1Z2luL2RqYW5nby5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vZGphbmdv
LnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDYxNDk3YjM4NWVkZTU4NDlmYzRi
ZTI2YzM5ZTY1OGVjNzFiMTM5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vZGphbmdvLnJzdAorKysg
L2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotcHl0ZXN0X2RqYW5nbyBwbHVnaW4gKEVYVEVSTkFM
KQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXB5dGVzdF9k
amFuZ28gaXMgYSBwbHVnaW4gZm9yIGBgcHl0ZXN0YGAgdGhhdCBwcm92aWRlcyBhIHNldCBvZiB1
c2VmdWwgdG9vbHMgZm9yIHRlc3RpbmcgRGphbmdvIGFwcGxpY2F0aW9ucywgY2hlY2tvdXQgQmVu
IEZpcnNobWFuJ3MgYHB5dGVzdF9kamFuZ28gZ2l0aHViIHBhZ2VgXy4KLQotLi4gX2BweXRlc3Rf
ZGphbmdvIGdpdGh1YiBwYWdlYDogaHR0cDovL2dpdGh1Yi5jb20vYmZpcnNoL3B5dGVzdF9kamFu
Z28vdHJlZS9tYXN0ZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1
Z2luL2ZpZ2xlYWYucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2ZpZ2xlYWYu
cnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzE2MDNhZGU5ZmMzZGYxN2I4MjIx
ODJkOGYzNTc5YjJiNmM4Nzg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9maWdsZWFmLnJzdAorKysg
L2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLQotcmVwb3J0IHRlc3QgY292ZXJhZ2UgdXNpbmcg
dGhlICdmaWdsZWFmJyBwYWNrYWdlLgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotCi0KLS4uIGNvbnRlbnRzOjoKLSAgOmxvY2FsOgotCi1JbnN0YWxs
Ci0tLS0tLS0tLS0tLS0tLS0KLQotVG8gaW5zdGFsbCB0aGUgcGx1Z2luIGlzc3VlOjoKLQotICAg
IGVhc3lfaW5zdGFsbCBweXRlc3QtZmlnbGVhZiAgIyBvcgotICAgIHBpcCBpbnN0YWxsIHB5dGVz
dC1maWdsZWFmICAgCi0KLWFuZCBpZiB5b3UgYXJlIHVzaW5nIHBpcCB5b3UgY2FuIGFsc28gdW5p
bnN0YWxsOjoKLQotICAgIHBpcCB1bmluc3RhbGwgcHl0ZXN0LWZpZ2xlYWYKLQotCi1Vc2FnZQot
LS0tLS0tLS0tLS0tLS0tCi0KLUFmdGVyIGluc3RhbGxhdGlvbiB5b3UgY2FuIHNpbXBseSB0eXBl
OjoKLQotICAgIHB5dGVzdCAtLWZpZ2xlYWYgWy4uLl0KLQotdG8gZW5hYmxlIGZpZ2xlYWYgY292
ZXJhZ2UgaW4geW91ciB0ZXN0IHJ1bi4gIEEgZGVmYXVsdCAiLmZpZ2xlYWYiIGRhdGEgZmlsZQot
YW5kICJodG1sIiBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkLiAgWW91IGNhbiB1c2UgY29tbWFu
ZCBsaW5lIG9wdGlvbnMKLXRvIGNvbnRyb2wgd2hlcmUgZGF0YSBhbmQgaHRtbCBmaWxlcyBhcmUg
Y3JlYXRlZC4KLQotY29tbWFuZCBsaW5lIG9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LQotYGAtLWZpZ2xlYWZgYAotICAgIHRyYWNlIHB5dGhvbiBjb3ZlcmFnZSB3aXRoIGZpZ2xlYWYg
YW5kIHdyaXRlIEhUTUwgZm9yIGZpbGVzIGJlbG93IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyCi1g
YC0tZmlnLWRhdGE9ZGlyYGAKLSAgICBzZXQgdHJhY2luZyBmaWxlLCBkZWZhdWx0OiAiLmZpZ2xl
YWYiLgotYGAtLWZpZy1odG1sPWRpcmBgCi0gICAgc2V0IGh0bWwgcmVwb3J0aW5nIGRpciwgZGVm
YXVsdCAiaHRtbCIuCi0KLS4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9oZWxwY29uZmlnLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi90ZXN0L3BsdWdpbi9oZWxwY29uZmlnLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzI2Yjc1YzQ1NTJlMTQyYWE5ZGZhNTViYWYxNjY3MDQ2ZDcxMTM2MC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
dGVzdC9wbHVnaW4vaGVscGNvbmZpZy5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBA
Ci0KLXByb3ZpZGUgdmVyc2lvbiBpbmZvLCBjb25mdGVzdC9lbnZpcm9ubWVudCBjb25maWcgbmFt
ZXMuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotCi0KLS4uIGNvbnRlbnRzOjoKLSAgOmxvY2FsOgotCi0KLQotY29tbWFuZCBsaW5lIG9w
dGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotYGAtLXZlcnNpb25gYAotICAgIGRpc3Bs
YXkgcHkgbGliIHZlcnNpb24gYW5kIGltcG9ydCBpbmZvcm1hdGlvbi4KLWBgLXAgbmFtZWBgCi0g
ICAgZWFybHktbG9hZCBnaXZlbiBwbHVnaW4gKG11bHRpLWFsbG93ZWQpLgotYGAtLXRyYWNlLWNv
bmZpZ2BgCi0gICAgdHJhY2UgY29uc2lkZXJhdGlvbnMgb2YgY29uZnRlc3QucHkgZmlsZXMuCi1g
YC0tZGVidWdgYAotICAgIGdlbmVyYXRlIGFuZCBzaG93IGludGVybmFsIGRlYnVnZ2luZyBpbmZv
cm1hdGlvbi4KLWBgLS1oZWxwLWNvbmZpZ2BgCi0gICAgc2hvdyBhdmFpbGFibGUgY29uZnRlc3Qu
cHkgYW5kIEVOVi12YXJpYWJsZSBuYW1lcy4KLQotU3RhcnQgaW1wcm92aW5nIHRoaXMgcGx1Z2lu
IGluIDMwIHNlY29uZHMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0KLQotMS4gRG93bmxvYWQgYHB5dGVzdF9oZWxwY29uZmlnLnB5YF8gcGx1Z2luIHNvdXJjZSBj
b2RlCi0yLiBwdXQgaXQgc29tZXdoZXJlIGFzIGBgcHl0ZXN0X2hlbHBjb25maWcucHlgYCBpbnRv
IHlvdXIgaW1wb3J0IHBhdGgKLTMuIGEgc3Vic2VxdWVudCBgYHB5dGVzdGBgIHJ1biB3aWxsIHVz
ZSB5b3VyIGxvY2FsIHZlcnNpb24KLQotQ2hlY2tvdXQgY3VzdG9taXplXywgb3RoZXIgcGx1Z2lu
c18gb3IgYGdldCBpbiBjb250YWN0YF8uCi0KLS4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9pbmRleC5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaW5kZXgucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4NTNhNGRjZTY4MWM4ZjZiYmVjMWY3MTc1OWUxMmJlOTU5MDE2ZTJiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L3BsdWdpbi9pbmRleC5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0K
LWFkdmFuY2VkIHB5dGhvbiB0ZXN0aW5nCi09PT09PT09PT09PT09PT09PT09PT09PQotCi1za2lw
cGluZ18gYWR2YW5jZWQgc2tpcHBpbmcgZm9yIHB5dGhvbiB0ZXN0IGZ1bmN0aW9ucywgY2xhc3Nl
cyBvciBtb2R1bGVzLgotCi1tYXJrXyBnZW5lcmljIG1lY2hhbmlzbSBmb3IgbWFya2luZyBweXRo
b24gZnVuY3Rpb25zLgotCi1wZGJfIGludGVyYWN0aXZlIGRlYnVnZ2luZyB3aXRoIHRoZSBQeXRo
b24gRGVidWdnZXIuCi0KLWZpZ2xlYWZfIChleHRlcm5hbCkgcmVwb3J0IHRlc3QgY292ZXJhZ2Ug
dXNpbmcgdGhlICdmaWdsZWFmJyBwYWNrYWdlLgotCi1tb25rZXlwYXRjaF8gc2FmZWx5IHBhdGNo
IG9iamVjdCBhdHRyaWJ1dGVzLCBkaWN0cyBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgotCi1j
b3ZlcmFnZV8gKGV4dGVybmFsKSBXcml0ZSBhbmQgcmVwb3J0IGNvdmVyYWdlIGRhdGEgd2l0aCB0
aGUgJ2NvdmVyYWdlJyBwYWNrYWdlLgotCi1jb3ZfIChleHRlcm5hbCkgcHJvZHVjZSBjb2RlIGNv
dmVyYWdlIHJlcG9ydHMgdXNpbmcgdGhlICdjb3ZlcmFnZScgcGFja2FnZSwgaW5jbHVkaW5nIHN1
cHBvcnQgZm9yIGRpc3RyaWJ1dGVkIHRlc3RpbmcuCi0KLWNhcHR1cmVfIGNvbmZpZ3VyYWJsZSBw
ZXItdGVzdCBzdGRvdXQvc3RkZXJyIGNhcHR1cmluZyBtZWNoYW5pc21zLgotCi1jYXB0dXJlbG9n
XyAoZXh0ZXJuYWwpIGNhcHR1cmUgb3V0cHV0IG9mIGxvZ2dpbmcgbW9kdWxlLgotCi1yZWN3YXJu
XyBoZWxwZXJzIGZvciBhc3NlcnRpbmcgZGVwcmVjYXRpb24gYW5kIG90aGVyIHdhcm5pbmdzLgot
Ci10bXBkaXJfIHByb3ZpZGUgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHRvIHRlc3QgZnVuY3Rpb25z
LgotCi0KLWRpc3RyaWJ1dGVkIHRlc3RpbmcsIENJIGFuZCBkZXBsb3ltZW50Ci09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi14ZGlzdF8gKGV4dGVybmFsKSBsb29wIG9u
IGZhaWxpbmcgdGVzdHMsIGRpc3RyaWJ1dGUgdGVzdCBydW5zIHRvIENQVXMgYW5kIGhvc3RzLgot
Ci1wYXN0ZWJpbl8gc3VibWl0IGZhaWx1cmUgb3IgdGVzdCBzZXNzaW9uIGluZm9ybWF0aW9uIHRv
IGEgcGFzdGViaW4gc2VydmljZS4KLQotanVuaXR4bWxfIGxvZ2dpbmcgb2YgdGVzdCByZXN1bHRz
IGluIEpVbml0LVhNTCBmb3JtYXQsIGZvciB1c2Ugd2l0aCBIdWRzb24KLQotcmVzdWx0bG9nXyBu
b24teG1sIG1hY2hpbmUtcmVhZGFibGUgbG9nZ2luZyBvZiB0ZXN0IHJlc3VsdHMuCi0KLWdlbnNj
cmlwdF8gZ2VuZXJhdGUgc3RhbmRhbG9uZSB0ZXN0IHNjcmlwdCB0byBiZSBkaXN0cmlidXRlZCBh
bG9uZyB3aXRoIGFuIGFwcGxpY2F0aW9uLgotCi0KLXRlc3RpbmcgZG9tYWlucyBhbmQgY29udmVu
dGlvbnMgY29kZWNoZWNrZXJzCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotCi1vZWpza2l0XyAoZXh0ZXJuYWwpIHJ1biBqYXZhc2NyaXB0IHRlc3RzIGluIHJl
YWwgbGlmZSBicm93c2VycwotCi1kamFuZ29fIChleHRlcm5hbCkgZm9yIHRlc3RpbmcgZGphbmdv
IGFwcGxpY2F0aW9ucwotCi11bml0dGVzdF8gYXV0b21hdGljYWxseSBkaXNjb3ZlciBhbmQgcnVu
IHRyYWRpdGlvbmFsICJ1bml0dGVzdC5weSIgc3R5bGUgdGVzdHMuCi0KLW5vc2VfIG5vc2UtY29t
cGF0aWJpbGl0eSBwbHVnaW46IGFsbG93IHRvIHJ1biBub3NlIHRlc3Qgc3VpdGVzIG5hdGl2ZWx5
LgotCi1kb2N0ZXN0XyBjb2xsZWN0IGFuZCBleGVjdXRlIGRvY3Rlc3RzIGZyb20gbW9kdWxlcyBh
bmQgdGVzdCBmaWxlcy4KLQotcmVzdGRvY18gcGVyZm9ybSBSZVNUIHN5bnRheCwgbG9jYWwgYW5k
IHJlbW90ZSByZWZlcmVuY2UgdGVzdHMgb24gLnJzdC8udHh0IGZpbGVzLgotCi0KLWludGVybmFs
LCBkZWJ1Z2dpbmcsIGhlbHAgZnVuY3Rpb25hbGl0eQotPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0KLWhlbHBjb25maWdfIHByb3ZpZGUgdmVyc2lvbiBpbmZvLCBjb25m
dGVzdC9lbnZpcm9ubWVudCBjb25maWcgbmFtZXMuCi0KLXRlcm1pbmFsXyBJbXBsZW1lbnRzIHRl
cm1pbmFsIHJlcG9ydGluZyBvZiB0aGUgZnVsbCB0ZXN0aW5nIHByb2Nlc3MuCi0KLWhvb2tsb2df
IGxvZyBpbnZvY2F0aW9ucyBvZiBleHRlbnNpb24gaG9va3MgdG8gYSBmaWxlLgotCi0KLS4uIGlu
Y2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Bs
dWdpbi9saW5rcy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbGlua3MucnN0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGVjMmI0ODQ4YTY5ZTVlYjgwNTY4NTg5
Y2MzZjk5ZTJkZGQyZTM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9saW5rcy5yc3QKKysrIC9kZXYv
bnVsbApAQCAtMSw0NSArMCwwIEBACi0uLiBfYGhlbHBjb25maWdgOiBoZWxwY29uZmlnLmh0bWwK
LS4uIF9gcHl0ZXN0X3JlY3dhcm4ucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10
cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfcmVjd2Fybi5weQotLi4gX2B1bml0dGVz
dGA6IHVuaXR0ZXN0Lmh0bWwKLS4uIF9gcHl0ZXN0X21vbmtleXBhdGNoLnB5YDogaHR0cDovL2Jp
dGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X21v
bmtleXBhdGNoLnB5Ci0uLiBfYHBhc3RlYmluYDogcGFzdGViaW4uaHRtbAotLi4gX2Bza2lwcGlu
Z2A6IHNraXBwaW5nLmh0bWwKLS4uIF9gcGx1Z2luc2A6IGluZGV4Lmh0bWwKLS4uIF9gbWFya2A6
IG1hcmsuaHRtbAotLi4gX2B0bXBkaXJgOiB0bXBkaXIuaHRtbAotLi4gX2BweXRlc3RfZG9jdGVz
dC5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9f
cGx1Z2luL3B5dGVzdF9kb2N0ZXN0LnB5Ci0uLiBfYGNhcHR1cmVgOiBjYXB0dXJlLmh0bWwKLS4u
IF9gcHl0ZXN0X25vc2UucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9y
YXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3Rfbm9zZS5weQotLi4gX2BweXRlc3RfcmVzdGRvYy5w
eWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1
Z2luL3B5dGVzdF9yZXN0ZG9jLnB5Ci0uLiBfYHJlc3Rkb2NgOiByZXN0ZG9jLmh0bWwKLS4uIF9g
eGRpc3RgOiB4ZGlzdC5odG1sCi0uLiBfYHB5dGVzdF9wYXN0ZWJpbi5weWA6IGh0dHA6Ly9iaXRi
dWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9wYXN0
ZWJpbi5weQotLi4gX2BweXRlc3RfdG1wZGlyLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBr
NDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3RtcGRpci5weQotLi4gX2B0
ZXJtaW5hbGA6IHRlcm1pbmFsLmh0bWwKLS4uIF9gcHl0ZXN0X2hvb2tsb2cucHlgOiBodHRwOi8v
Yml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3Rf
aG9va2xvZy5weQotLi4gX2BjYXB0dXJlbG9nYDogY2FwdHVyZWxvZy5odG1sCi0uLiBfYGp1bml0
eG1sYDoganVuaXR4bWwuaHRtbAotLi4gX2BweXRlc3Rfc2tpcHBpbmcucHlgOiBodHRwOi8vYml0
YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3Rfc2tp
cHBpbmcucHkKLS4uIF9gY2hlY2tvdXQgdGhlIHB5dGVzdCBkZXZlbG9wbWVudCB2ZXJzaW9uYDog
Li4vLi4vaW5zdGFsbC5odG1sI2NoZWNrb3V0Ci0uLiBfYHB5dGVzdF9oZWxwY29uZmlnLnB5YDog
aHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4v
cHl0ZXN0X2hlbHBjb25maWcucHkKLS4uIF9gb2Vqc2tpdGA6IG9lanNraXQuaHRtbAotLi4gX2Bk
b2N0ZXN0YDogZG9jdGVzdC5odG1sCi0uLiBfYHB5dGVzdF9tYXJrLnB5YDogaHR0cDovL2JpdGJ1
Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X21hcmsu
cHkKLS4uIF9gZ2V0IGluIGNvbnRhY3RgOiAuLi8uLi9jb250YWN0Lmh0bWwKLS4uIF9gcHl0ZXN0
X2NhcHR1cmUucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4z
LjQvcHkvX3BsdWdpbi9weXRlc3RfY2FwdHVyZS5weQotLi4gX2BmaWdsZWFmYDogZmlnbGVhZi5o
dG1sCi0uLiBfYGN1c3RvbWl6ZWA6IC4uL2N1c3RvbWl6ZS5odG1sCi0uLiBfYGhvb2tsb2dgOiBo
b29rbG9nLmh0bWwKLS4uIF9gcHl0ZXN0X3Rlcm1pbmFsLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5v
cmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3Rlcm1pbmFsLnB5
Ci0uLiBfYHJlY3dhcm5gOiByZWN3YXJuLmh0bWwKLS4uIF9gcHl0ZXN0X3BkYi5weWA6IGh0dHA6
Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVz
dF9wZGIucHkKLS4uIF9gbW9ua2V5cGF0Y2hgOiBtb25rZXlwYXRjaC5odG1sCi0uLiBfYGNvdmVy
YWdlYDogY292ZXJhZ2UuaHRtbAotLi4gX2ByZXN1bHRsb2dgOiByZXN1bHRsb2cuaHRtbAotLi4g
X2Bjb3ZgOiBjb3YuaHRtbAotLi4gX2BweXRlc3RfanVuaXR4bWwucHlgOiBodHRwOi8vYml0YnVj
a2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfanVuaXR4
bWwucHkKLS4uIF9gZGphbmdvYDogZGphbmdvLmh0bWwKLS4uIF9gcHl0ZXN0X3VuaXR0ZXN0LnB5
YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVn
aW4vcHl0ZXN0X3VuaXR0ZXN0LnB5Ci0uLiBfYG5vc2VgOiBub3NlLmh0bWwKLS4uIF9gcHl0ZXN0
X3Jlc3VsdGxvZy5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8x
LjMuNC9weS9fcGx1Z2luL3B5dGVzdF9yZXN1bHRsb2cucHkKLS4uIF9gcGRiYDogcGRiLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9ub3NlLnJzdCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9ub3NlLnJzdApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOWVlYWU1ZmY2OTdmMDVhMjI2NTFmOTZmMGE5YmUwY2UyMTA0ZTU5MC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC9wbHVnaW4vbm9zZS5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBA
Ci0KLW5vc2UtY29tcGF0aWJpbGl0eSBwbHVnaW46IGFsbG93IHRvIHJ1biBub3NlIHRlc3Qgc3Vp
dGVzIG5hdGl2ZWx5LgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLQotLi4gY29udGVudHM6OgotICA6bG9jYWw6Ci0K
LVRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIHBsdWdpbiBmb3IgYWxsb3dpbmcgdG8gcnVuIHRlc3Rz
IHdyaXR0ZW4KLWluICdub3NldGVzdHMnIHN0eWxlIHdpdGggYGBweXRlc3RgYC4KLQotVXNhZ2UK
LS0tLS0tLS0tLS0tLS0KLQotdHlwZTo6Ci0KLSAgICBweXRlc3QgICMgaW5zdGVhZCBvZiAnbm9z
ZXRlc3RzJwotCi1hbmQgeW91IHNob3VsZCBiZSBhYmxlIHRvIHJ1biBub3NlIHN0eWxlIHRlc3Rz
IGFuZCBhdCB0aGUgc2FtZQotdGltZSBjYW4gbWFrZSBmdWxsIHVzZSBvZiBweXRlc3QncyBjYXBh
YmlsaXRpZXMuCi0KLVN1cHBvcnRlZCBub3NlIElkaW9tcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi0qIHNldHVwIGFuZCB0ZWFyZG93biBhdCBtb2R1bGUvY2xhc3MvbWV0aG9kIGxldmVsCi0q
IFNraXBUZXN0IGV4Y2VwdGlvbnMgYW5kIG1hcmtlcnMKLSogc2V0dXAvdGVhcmRvd24gZGVjb3Jh
dG9ycwotKiB5aWVsZC1iYXNlZCB0ZXN0cyBhbmQgdGhlaXIgc2V0dXAKLSogZ2VuZXJhbCB1c2Fn
ZSBvZiBub3NlIHV0aWxpdGllcwotCi1VbnN1cHBvcnRlZCBpZGlvbXMgLyBpc3N1ZXMKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLSBub3NlLXN0eWxlIGRvY3Rlc3RzIGFy
ZSBub3QgY29sbGVjdGVkIGFuZCBleGVjdXRlZCBjb3JyZWN0bHksCi0gIGFsc28gZml4dHVyZXMg
ZG9uJ3Qgd29yay4KLQotLSBubyBub3NlLWNvbmZpZ3VyYXRpb24gaXMgcmVjb2duaXplZAotCi1J
ZiB5b3UgZmluZCBvdGhlciBpc3N1ZXMgb3IgaGF2ZSBzdWdnZXN0aW9ucyBwbGVhc2UgcnVuOjoK
LQotICAgIHB5dGVzdCAtLXBhc3RlYmluPWFsbAotCi1hbmQgc2VuZCB0aGUgcmVzdWx0aW5nIFVS
TCB0byBhIGBgcHl0ZXN0YGAgY29udGFjdCBjaGFubmVsLAotYXQgYmVzdCB0byB0aGUgbWFpbGlu
ZyBsaXN0LgotCi1TdGFydCBpbXByb3ZpbmcgdGhpcyBwbHVnaW4gaW4gMzAgc2Vjb25kcwotPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotCi0xLiBEb3dubG9hZCBg
cHl0ZXN0X25vc2UucHlgXyBwbHVnaW4gc291cmNlIGNvZGUKLTIuIHB1dCBpdCBzb21ld2hlcmUg
YXMgYGBweXRlc3Rfbm9zZS5weWBgIGludG8geW91ciBpbXBvcnQgcGF0aAotMy4gYSBzdWJzZXF1
ZW50IGBgcHl0ZXN0YGAgcnVuIHdpbGwgdXNlIHlvdXIgbG9jYWwgdmVyc2lvbgotCi1DaGVja291
dCBjdXN0b21pemVfLCBvdGhlciBwbHVnaW5zXyBvciBgZ2V0IGluIGNvbnRhY3RgXy4KLQotLi4g
aW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
cGx1Z2luL29lanNraXQucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL29lanNr
aXQucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTk1YWExN2M3MmQ1Y2UwYjc5
MTU0YTYyYzk3ZjBhMjEwZDIzYWRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9vZWpza2l0LnJzdAor
KysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLXB5dGVzdF9vZWpza2l0IHBsdWdpbiAoRVhU
RVJOQUwpCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVGhl
IGBvZWpza2l0YF8gb2ZmZXJzIGEgYGBweXRlc3RgYCBwbHVnaW4gZm9yIHJ1bm5pbmcgSmF2YXNj
cmlwdCB0ZXN0cyBpbiBsaXZlIGJyb3dzZXJzLiAgIFJ1bm5pbmcgaW5zaWRlIHRoZSBicm93c2Vy
cyBjb21lcyB3aXRoIHNvbWUgc3BlZWQgY29zdCwgb24gdGhlIG90aGVyIGhhbmQgaXQgbWVhbnMg
Zm9yIGV4YW1wbGUgdGhlIGNvZGUgaXMgdGVzdGVkIGFnYWluc3QgdGhlIHJlYWwtd29yZCBET00g
aW1wbGVtZW50YXRpb25zLgotVGhlIGFwcHJvYWNoIGVuYWJsZXMgdG8gd3JpdGUgaW50ZWdyYXRp
b24gdGVzdHMgc3VjaCB0aGF0IHRoZSBKYXZhU2NyaXB0IGNvZGUgaXMgdGVzdGVkIGFnYWluc3Qg
c2VydmVyLXNpZGUgUHl0aG9uIGNvZGUgbW9ja2VkIGFzIG5lY2Vzc2FyeS4gQW55IHNlcnZlci1z
aWRlIGZyYW1ld29yayB0aGF0IGNhbiBhbHJlYWR5IGJlIGV4cG9zZWQgdGhyb3VnaCBXU0dJIChv
ciBmb3Igd2hpY2ggYSBzdWJzZXQgb2YgV1NHSSBjYW4gYmUgd3JpdHRlbiB0byBhY2NvbW1vZGF0
ZSB0aGUganNraXQgb3duIG5lZWRzKSBjYW4gcGxheSBhbG9uZy4KLQotRm9yIG1vcmUgaW5mbyBh
bmQgZG93bmxvYWQgcGxlYXNlIHZpc2l0IHRoZSBgb2Vqc2tpdCBQeVBJYF8gcGFnZS4KLQotLi4g
X2BvZWpza2l0YDoKLS4uIF9gb2Vqc2tpdCBQeVBJYDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9w
eXBpL29lanNraXQKLQotLi4gc291cmNlIGxpbmsgJ2h0dHA6Ly9iaXRidWNrZXQub3JnL3BlZHJv
bmlzL2pzLWluZnJhc3RydWN0dXJlL3NyYy90aXAvcHl0ZXN0X2pzdGVzdHMucHknLApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3Rlcm1pbmFsLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi90ZXJtaW5hbC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGUwN2Q0ZjcyMTgzYTlhMjc2NzYzMzZjZDk4NGU2Zjc1ZWZhMzBhNzEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvcGx1Z2luL3Rlcm1pbmFsLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICsw
LDAgQEAKLQotSW1wbGVtZW50cyB0ZXJtaW5hbCByZXBvcnRpbmcgb2YgdGhlIGZ1bGwgdGVzdGlu
ZyBwcm9jZXNzLgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotCi0KLS4uIGNvbnRlbnRzOjoKLSAgOmxvY2FsOgotCi1UaGlzIGlzIGEg
Z29vZCBzb3VyY2UgZm9yIGxvb2tpbmcgYXQgdGhlIHZhcmlvdXMgcmVwb3J0aW5nIGhvb2tzLgot
Ci1jb21tYW5kIGxpbmUgb3B0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1gYC12LCAt
LXZlcmJvc2VgYAotICAgIGluY3JlYXNlIHZlcmJvc2l0eS4KLWBgLXIgY2hhcnNgYAotICAgIHNo
b3cgZXh0cmEgdGVzdCBzdW1tYXJ5IGluZm8gYXMgc3BlY2lmaWVkIGJ5IGNoYXJzIChmKWFpbGVk
LCAocylza2lwcGVkLCAoeClmYWlsZWQsIChYKXBhc3NlZC4KLWBgLWwsIC0tc2hvd2xvY2Fsc2Bg
Ci0gICAgc2hvdyBsb2NhbHMgaW4gdHJhY2ViYWNrcyAoZGlzYWJsZWQgYnkgZGVmYXVsdCkuCi1g
YC0tdGI9c3R5bGVgYAotICAgIHRyYWNlYmFjayBwcmludCBtb2RlIChsb25nL3Nob3J0L2xpbmUv
bm8pLgotYGAtLWZ1bGwtdHJhY2VgYAotICAgIGRvbid0IGN1dCBhbnkgdHJhY2ViYWNrcyAoZGVm
YXVsdCBpcyB0byBjdXQpLgotYGAtLWZpeHR1cmVzYGAKLSAgICBzaG93IGF2YWlsYWJsZSBmdW5j
dGlvbiBhcmd1bWVudHMsIHNvcnRlZCBieSBwbHVnaW4KLQotU3RhcnQgaW1wcm92aW5nIHRoaXMg
cGx1Z2luIGluIDMwIHNlY29uZHMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0KLQotMS4gRG93bmxvYWQgYHB5dGVzdF90ZXJtaW5hbC5weWBfIHBsdWdpbiBzb3Vy
Y2UgY29kZQotMi4gcHV0IGl0IHNvbWV3aGVyZSBhcyBgYHB5dGVzdF90ZXJtaW5hbC5weWBgIGlu
dG8geW91ciBpbXBvcnQgcGF0aAotMy4gYSBzdWJzZXF1ZW50IGBgcHl0ZXN0YGAgcnVuIHdpbGwg
dXNlIHlvdXIgbG9jYWwgdmVyc2lvbgotCi1DaGVja291dCBjdXN0b21pemVfLCBvdGhlciBwbHVn
aW5zXyBvciBgZ2V0IGluIGNvbnRhY3RgXy4KLQotLi4gaW5jbHVkZTo6IGxpbmtzLnR4dApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmOTA2NzE3ZDRkM2Y2MmNjOTdiMTUzMTUxNTFiMDdmODRkZDE4
ZGQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDI3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9j
b3YucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2NvdmVyYWdlLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9kamFuZ28ucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Rlc3QvcGx1Z2luL2ZpZ2xlYWYucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1
Z2luL2hlbHBjb25maWcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2luZGV4
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9saW5rcy5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbm9zZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVz
dC9wbHVnaW4vb2Vqc2tpdC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdGVy
bWluYWwucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3hkaXN0LnJzdApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3hkaXN0LnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi94ZGlzdC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUwNmQyNDBhZWUxM2M3ZGQzMTljOTMzMTNjZjNlOGVmNGUyNjUyMTkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Rlc3QvcGx1Z2luL3hkaXN0LnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDE3MiArMCwwIEBA
Ci0KLWxvb3Agb24gZmFpbGluZyB0ZXN0cywgZGlzdHJpYnV0ZSB0ZXN0IHJ1bnMgdG8gQ1BVcyBh
bmQgaG9zdHMuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotCi0KLS4uIGNvbnRlbnRzOjoKLSAgOmxvY2FsOgotCi1UaGUgYHB5
dGVzdC14ZGlzdGBfIHBsdWdpbiBleHRlbmRzIGBgcHl0ZXN0YGAgd2l0aCBzb21lIHVuaXF1ZQot
dGVzdCBleGVjdXRpb24gbW9kZXM6Ci0KLSogTG9vcG9uZmFpbDogcnVuIHlvdXIgdGVzdHMgcmVw
ZWF0ZWRseSBpbiBhIHN1YnByb2Nlc3MuICBBZnRlciBlYWNoIHJ1bgotICBgYHB5dGVzdGBgIHdh
aXRzIHVudGlsIGEgZmlsZSBpbiB5b3VyIHByb2plY3QgY2hhbmdlcyBhbmQgdGhlbiByZS1ydW5z
IHRoZQotICBwcmV2aW91c2x5IGZhaWxpbmcgdGVzdHMuICBUaGlzIGlzIHJlcGVhdGVkIHVudGls
IGFsbCB0ZXN0cyBwYXNzIGFmdGVyIHdoaWNoCi0gIGFnYWluIGEgZnVsbCBydW4gaXMgcGVyZm9y
bWVkLgotCi0qIExvYWQtYmFsYW5jaW5nOiBpZiB5b3UgaGF2ZSBtdWx0aXBsZSBDUFVzIG9yIGhv
c3RzIHlvdSBjYW4gdXNlCi0gIHRob3NlIGZvciBhIGNvbWJpbmVkIHRlc3QgcnVuLiAgVGhpcyBh
bGxvd3MgdG8gc3BlZWQgdXAKLSAgZGV2ZWxvcG1lbnQgb3IgdG8gdXNlIHNwZWNpYWwgcmVzb3Vy
Y2VzIG9mIHJlbW90ZSBtYWNoaW5lcy4KLQotKiBNdWx0aS1QbGF0Zm9ybSBjb3ZlcmFnZTogeW91
IGNhbiBzcGVjaWZ5IGRpZmZlcmVudCBQeXRob24gaW50ZXJwcmV0ZXJzCi0gIG9yIGRpZmZlcmVu
dCBwbGF0Zm9ybXMgYW5kIHJ1biB0ZXN0cyBpbiBwYXJhbGxlbCBvbiBhbGwgb2YgdGhlbS4KLQot
QmVmb3JlIHJ1bm5pbmcgdGVzdHMgcmVtb3RlbHksIGBgcHl0ZXN0YGAgZWZmaWNpZW50bHkgc3lu
Y2hyb25pemVzIHlvdXIKLXByb2dyYW0gc291cmNlIGNvZGUgdG8gdGhlIHJlbW90ZSBwbGFjZS4g
IEFsbCB0ZXN0IHJlc3VsdHMKLWFyZSByZXBvcnRlZCBiYWNrIGFuZCBkaXNwbGF5ZWQgdG8geW91
ciBsb2NhbCB0ZXN0IHNlc3Npb24uCi1Zb3UgbWF5IHNwZWNpZnkgZGlmZmVyZW50IFB5dGhvbiB2
ZXJzaW9ucyBhbmQgaW50ZXJwcmV0ZXJzLgotCi0uLiBfYHB5dGVzdC14ZGlzdGA6IGh0dHA6Ly9w
eXBpLnB5dGhvbi5vcmcvcHlwaS9weXRlc3QteGRpc3QKLQotVXNhZ2UgZXhhbXBsZXMKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi1TcGVlZCB1cCB0ZXN0IHJ1bnMgYnkgc2VuZGluZyB0ZXN0cyB0
byBtdWx0aXBsZSBDUFVzCi0rKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwotCi1UbyBzZW5kIHRlc3RzIHRvIG11bHRpcGxlIENQVXMsIHR5
cGU6OgotCi0gICAgcHl0ZXN0IC1uIE5VTQotCi1Fc3BlY2lhbGx5IGZvciBsb25nZXIgcnVubmlu
ZyB0ZXN0cyBvciB0ZXN0cyByZXF1aXJpbmcKLWEgbG90IG9mIElPIHRoaXMgY2FuIGxlYWQgdG8g
Y29uc2lkZXJhYmxlIHNwZWVkIHVwcy4KLQotCi1SdW5uaW5nIHRlc3RzIGluIGEgUHl0aG9uIHN1
YnByb2Nlc3MKLSsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrCi0KLVRvIGluc3RhbnRpYXRlIGEgcHl0aG9uMi40IHN1YiBwcm9jZXNzIGFu
ZCBzZW5kIHRlc3RzIHRvIGl0LCB5b3UgbWF5IHR5cGU6OgotCi0gICAgcHl0ZXN0IC1kIC0tdHgg
cG9wZW4vL3B5dGhvbj1weXRob24yLjQKLQotVGhpcyB3aWxsIHN0YXJ0IGEgc3VicHJvY2VzcyB3
aGljaCBpcyBydW4gd2l0aCB0aGUgInB5dGhvbjIuNCIKLVB5dGhvbiBpbnRlcnByZXRlciwgZm91
bmQgaW4geW91ciBzeXN0ZW0gYmluYXJ5IGxvb2t1cCBwYXRoLgotCi1JZiB5b3UgcHJlZml4IHRo
ZSAtLXR4IG9wdGlvbiB2YWx1ZSBsaWtlIHRoaXM6OgotCi0gICAgLS10eCAzKnBvcGVuLy9weXRo
b249cHl0aG9uMi40Ci0KLXRoZW4gdGhyZWUgc3VicHJvY2Vzc2VzIHdvdWxkIGJlIGNyZWF0ZWQg
YW5kIHRlc3RzCi13aWxsIGJlIGxvYWQtYmFsYW5jZWQgYWNyb3NzIHRoZXNlIHRocmVlIHByb2Nl
c3Nlcy4KLQotCi1TZW5kaW5nIHRlc3RzIHRvIHJlbW90ZSBTU0ggYWNjb3VudHMKLSsrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0KLVN1
cHBvc2UgeW91IGhhdmUgYSBwYWNrYWdlIGBgbXlwa2dgYCB3aGljaCBjb250YWlucyBzb21lCi10
ZXN0cyB0aGF0IHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHJ1biBsb2NhbGx5LiBBbmQgeW91Ci1oYXZl
IGEgc3NoLXJlYWNoYWJsZSBtYWNoaW5lIGBgbXlob3N0YGAuICBUaGVuCi15b3UgY2FuIGFkLWhv
YyBkaXN0cmlidXRlIHlvdXIgdGVzdHMgYnkgdHlwaW5nOjoKLQotICAgIHB5dGVzdCAtZCAtLXR4
IHNzaD1teWhvc3Rwb3BlbiAtLXJzeW5jZGlyIG15cGtnIG15cGtnCi0KLVRoaXMgd2lsbCBzeW5j
aHJvbml6ZSB5b3VyIGBgbXlwa2dgYCBwYWNrYWdlIGRpcmVjdG9yeQotdG8gYSByZW1vdGUgc3No
IGFjY291bnQgYW5kIHRoZW4gbG9jYWxseSBjb2xsZWN0IHRlc3RzCi1hbmQgc2VuZCB0aGVtIHRv
IHJlbW90ZSBwbGFjZXMgZm9yIGV4ZWN1dGlvbi4KLQotWW91IGNhbiBzcGVjaWZ5IG11bHRpcGxl
IGBgLS1yc3luY2RpcmBgIGRpcmVjdG9yaWVzCi10byBiZSBzZW50IHRvIHRoZSByZW1vdGUgc2lk
ZS4KLQotKipOT1RFOioqIEZvciBgYHB5dGVzdGBgIHRvIGNvbGxlY3QgYW5kIHNlbmQgdGVzdHMg
Y29ycmVjdGx5Ci15b3Ugbm90IG9ubHkgbmVlZCB0byBtYWtlIHN1cmUgYWxsIGNvZGUgYW5kIHRl
c3RzCi1kaXJlY3RvcmllcyBhcmUgcnN5bmNlZCwgYnV0IHRoYXQgYW55IHRlc3QgKHN1YikgZGly
ZWN0b3J5Ci1hbHNvIGhhcyBhbiBgYF9faW5pdF9fLnB5YGAgZmlsZSBiZWNhdXNlIGludGVybmFs
bHkKLWBgcHl0ZXN0YGAgcmVmZXJlbmNlcyB0ZXN0cyB1c2luZyB0aGVpciBmdWxseSBxdWFsaWZp
ZWQgcHl0aG9uCi1tb2R1bGUgcGF0aC4gICoqWW91IHdpbGwgb3RoZXJ3aXNlIGdldCBzdHJhbmdl
IGVycm9ycyoqCi1kdXJpbmcgc2V0dXAgb2YgdGhlIHJlbW90ZSBzaWRlLgotCi1TZW5kaW5nIHRl
c3RzIHRvIHJlbW90ZSBTb2NrZXQgU2VydmVycwotKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLQotRG93bmxvYWQgdGhlIHNpbmdsZS1t
b2R1bGUgYHNvY2tldHNlcnZlci5weWBfIFB5dGhvbiBwcm9ncmFtCi1hbmQgcnVuIGl0IGxpa2Ug
dGhpczo6Ci0KLSAgICBweXRob24gc29ja2V0c2VydmVyLnB5Ci0KLUl0IHdpbGwgdGVsbCB5b3Ug
dGhhdCBpdCBzdGFydHMgbGlzdGVuaW5nIG9uIHRoZSBkZWZhdWx0Ci1wb3J0LiAgWW91IGNhbiBu
b3cgb24geW91ciBob21lIG1hY2hpbmUgc3BlY2lmeSB0aGlzCi1uZXcgc29ja2V0IGhvc3Qgd2l0
aCBzb21ldGhpbmcgbGlrZSB0aGlzOjoKLQotICAgIHB5dGVzdCAtZCAtLXR4IHNvY2tldD0xOTIu
MTY4LjEuMTAyOjg4ODggLS1yc3luY2RpciBteXBrZyBteXBrZwotCi0KLS4uIF9gYXRvbmNlYDoK
LQotUnVubmluZyB0ZXN0cyBvbiBtYW55IHBsYXRmb3JtcyBhdCBvbmNlCi0rKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotCi1UaGUgYmFz
aWMgY29tbWFuZCB0byBydW4gdGVzdHMgb24gbXVsdGlwbGUgcGxhdGZvcm1zIGlzOjoKLQotICAg
IHB5dGVzdCAtLWRpc3Q9ZWFjaCAtLXR4PXNwZWMxIC0tdHg9c3BlYzIKLQotSWYgeW91IHNwZWNp
ZnkgYSB3aW5kb3dzIGhvc3QsIGFuIE9TWCBob3N0IGFuZCBhIExpbnV4Ci1lbnZpcm9ubWVudCB0
aGlzIGNvbW1hbmQgd2lsbCBzZW5kIGVhY2ggdGVzdHMgdG8gYWxsCi1wbGF0Zm9ybXMgLSBhbmQg
cmVwb3J0IGJhY2sgZmFpbHVyZXMgZnJvbSBhbGwgcGxhdGZvcm1zCi1hdCBvbmNlLiAgIFRoZSBz
cGVjaWZpY2F0aW9ucyBzdHJpbmdzIHVzZSB0aGUgYHhzcGVjIHN5bnRheGBfLgotCi0uLiBfYHhz
cGVjIHN5bnRheGA6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L2V4ZWNuZXQvdHJ1bmsvYmFzaWNzLmh0
bWwjeHNwZWMKLQotLi4gX2Bzb2NrZXRzZXJ2ZXIucHlgOiBodHRwOi8vY29kZXNwZWFrLm5ldC9z
dm4vcHkvZGlzdC9weS9leGVjbmV0L3NjcmlwdC9zb2NrZXRzZXJ2ZXIucHkKLQotLi4gX2BleGVj
bmV0YDogaHR0cDovL2NvZGVzcGVhay5uZXQvZXhlY25ldAotCi1TcGVjaWZ5aW5nIHRlc3QgZXhl
YyBlbnZpcm9ubWVudHMgaW4gYSBjb25mdGVzdC5weQotKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLQotSW5zdGVhZCBvZiBzcGVjaWZ5
aW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLCB5b3UgY2FuCi1wdXQgb3B0aW9ucyB2YWx1ZXMgaW4g
YSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSBsaWtlIHRoaXM6OgotCi0gICAgb3B0aW9uX3R4ID0gWydz
c2g9bXlob3N0Ly9weXRob249cHl0aG9uMi43JywgJ3BvcGVuLy9weXRob249cHl0aG9uMi43J10K
LSAgICBvcHRpb25fZGlzdCA9IFRydWUKLQotQW55IGNvbW1hbmRsaW5lIGBgLS10eGBgIHNwZWNp
ZmljYXRpb25zICB3aWxsIGFkZCB0byB0aGUgbGlzdCBvZgotYXZhaWxhYmxlIGV4ZWN1dGlvbiBl
bnZpcm9ubWVudHMuCi0KLVNwZWNpZnlpbmcgInJzeW5jIiBkaXJzIGluIGEgY29uZnRlc3QucHkK
LSsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrCi0KLUluIHlvdXIgYGBteXBrZy9jb25mdGVzdC5weWBgIHlvdSBtYXkgc3BlY2lmeSBkaXJl
Y3RvcmllcyB0byBzeW5jaHJvbmlzZQotb3IgdG8gZXhjbHVkZTo6Ci0KLSAgICByc3luY2RpcnMg
PSBbJy4nLCAnLi4vcGx1Z2lucyddCi0gICAgcnN5bmNpZ25vcmUgPSBbJ19jYWNoZSddCi0KLVRo
ZXNlIGRpcmVjdG9yeSBzcGVjaWZpY2F0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9y
eQotd2hlcmUgdGhlIGBgY29uZnRlc3QucHlgYCBpcyBmb3VuZC4KLQotY29tbWFuZCBsaW5lIG9w
dGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotYGAtZiwgLS1sb29wb25mYWlsYGAKLSAg
ICBydW4gdGVzdHMgaW4gc3VicHJvY2Vzcywgd2FpdCBmb3IgbW9kaWZpZWQgZmlsZXMgYW5kIHJl
LXJ1biBmYWlsaW5nIHRlc3Qgc2V0IHVudGlsIGFsbCBwYXNzLgotYGAtbiBudW1wcm9jZXNzZXNg
YAotICAgIHNob3J0Y3V0IGZvciAnLS1kaXN0PWxvYWQgLS10eD1OVU0qcG9wZW4nCi1gYC0tYm94
ZWRgYAotICAgIGJveCBlYWNoIHRlc3QgcnVuIGluIGEgc2VwYXJhdGUgcHJvY2VzcyAodW5peCkK
LWBgLS1kaXN0PWRpc3Rtb2RlYGAKLSAgICBzZXQgbW9kZSBmb3IgZGlzdHJpYnV0aW5nIHRlc3Rz
IHRvIGV4ZWMgZW52aXJvbm1lbnRzLgotCi0gICAgZWFjaDogc2VuZCBlYWNoIHRlc3QgdG8gZWFj
aCBhdmFpbGFibGUgZW52aXJvbm1lbnQuCi0KLSAgICBsb2FkOiBzZW5kIGVhY2ggdGVzdCB0byBv
bmUgYXZhaWxhYmxlIGVudmlyb25tZW50IHNvIGl0IGlzIHJ1biBvbmx5IG9uY2UuCi0KLSAgICAo
ZGVmYXVsdCkgbm86IHJ1biB0ZXN0cyBpbnByb2Nlc3MsIGRvbid0IGRpc3RyaWJ1dGUuCi1gYC0t
dHg9eHNwZWNgYAotICAgIGFkZCBhIHRlc3QgZXhlY3V0aW9uIGVudmlyb25tZW50LiBzb21lIGV4
YW1wbGVzOiAtLXR4IHBvcGVuLy9weXRob249cHl0aG9uMi43IC0tdHggc29ja2V0PTE5Mi4xNjgu
MS4xMDI6ODg4OCAtLXR4IHNzaD11c2VyQGNvZGVzcGVhay5uZXQvL2NoZGlyPXRlc3RjYWNoZQot
YGAtZGBgCi0gICAgbG9hZC1iYWxhbmNlIHRlc3RzLiAgc2hvcnRjdXQgZm9yICctLWRpc3Q9bG9h
ZCcKLWBgLS1yc3luY2Rpcj1kaXIxYGAKLSAgICBhZGQgZGlyZWN0b3J5IGZvciByc3luY2luZyB0
byByZW1vdGUgdHggbm9kZXMuCi0KLS4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Rlc3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L3Rlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2QwMGY3MThhNjc3
MjRjZjBhZjkwNTQ4NGMxOGNjNmI1ZWIyNTAzYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC90ZXN0Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAg
PG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iIDEgOyBVUkw9aW5kZXguaHRtbCIg
Lz4KLSAgICA8L2hlYWQ+Ci0KLSAgICA8Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KLXZhciBnYUpzSG9zdCA9ICgoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJv
dG9jb2wpID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0cDovL3d3dy4iKTsKLWRvY3VtZW50LndyaXRl
KHVuZXNjYXBlKCIlM0NzY3JpcHQgc3JjPSciICsgZ2FKc0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGlj
cy5jb20vZ2EuanMnIHR5cGU9J3RleHQvamF2YXNjcmlwdCclM0UlM0Mvc2NyaXB0JTNFIikpOwot
PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci10cnkgewotdmFyIHBh
Z2VUcmFja2VyID0gX2dhdC5fZ2V0VHJhY2tlcigiVUEtNzU5NzI3NC0zIik7Ci1wYWdlVHJhY2tl
ci5fdHJhY2tQYWdldmlldygpOwotfSBjYXRjaChlcnIpIHt9PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+Ci0gICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWI5M2Y1ZjdjZmEwZTI3MGI2Y2Q1NTJiN2ExNjlhNzM3
Yjk5MmY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvYXR0aWMucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvY29uZmlnLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
dGVzdC9kaXN0Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9leHRlbmQuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2luZGV4LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0
L21pc3Npb24ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvdGVzdC5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGlkZWxpZnQucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3RpZGVsaWZ0LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjhiZjIyMTkwNWQ0OGMxZjkwNmRjNzlmZmEwOTdj
MjBkNTQ0ZTEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RpZGVsaWZ0
LnJzdApAQCAtMCwwICsxLDQgQEAKKworCisKKy4uIGluY2x1ZGU6OiAuLi8uLi9USURFTElGVC5y
c3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90bXBkaXIucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3RtcGRpci5yc3QKaW5kZXggNDIxYjRjODk4YzVhZTE5MjYwNzIwNzM3ZTU2M2I0
ZDlkNzBhNTBkOS4uMzMwMDExYmIzNDgyN2ZjZDk2OWU0NzdiMjU0MjY4ODkwODBkYTEwZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RtcGRpci5yc3QKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3RtcGRpci5yc3QKQEAgLTUsNiArNSw4MyBAQAogVGVtcG9yYXJ5IGRpcmVjdG9yaWVz
IGFuZCBmaWxlcwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CiAKK1RoZSBgYHRtcF9wYXRoYGAgZml4dHVyZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKworCisKK1lvdSBjYW4gdXNlIHRoZSBgYHRtcF9wYXRoYGAgZml4dHVyZSB3aGljaCB3aWxs
Citwcm92aWRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB1bmlxdWUgdG8gdGhlIHRlc3QgaW52b2Nh
dGlvbiwKK2NyZWF0ZWQgaW4gdGhlIGBiYXNlIHRlbXBvcmFyeSBkaXJlY3RvcnlgXy4KKworYGB0
bXBfcGF0aGBgIGlzIGEgYGBwYXRobGliL3BhdGhsaWIyLlBhdGhgYCBvYmplY3QuIEhlcmUgaXMg
YW4gZXhhbXBsZSB0ZXN0IHVzYWdlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAj
IGNvbnRlbnQgb2YgdGVzdF90bXBfcGF0aC5weQorICAgIGltcG9ydCBvcworCisgICAgQ09OVEVO
VCA9IHUiY29udGVudCIKKworCisgICAgZGVmIHRlc3RfY3JlYXRlX2ZpbGUodG1wX3BhdGgpOgor
ICAgICAgICBkID0gdG1wX3BhdGggLyAic3ViIgorICAgICAgICBkLm1rZGlyKCkKKyAgICAgICAg
cCA9IGQgLyAiaGVsbG8udHh0IgorICAgICAgICBwLndyaXRlX3RleHQoQ09OVEVOVCkKKyAgICAg
ICAgYXNzZXJ0IHAucmVhZF90ZXh0KCkgPT0gQ09OVEVOVAorICAgICAgICBhc3NlcnQgbGVuKGxp
c3QodG1wX3BhdGguaXRlcmRpcigpKSkgPT0gMQorICAgICAgICBhc3NlcnQgMAorCitSdW5uaW5n
IHRoaXMgd291bGQgcmVzdWx0IGluIGEgcGFzc2VkIHRlc3QgZXhjZXB0IGZvciB0aGUgbGFzdAor
YGBhc3NlcnQgMGBgIGxpbmUgd2hpY2ggd2UgdXNlIHRvIGxvb2sgYXQgdmFsdWVzOgorCisuLiBj
b2RlLWJsb2NrOjogcHl0ZXN0CisKKyAgICAkIHB5dGVzdCB0ZXN0X3RtcF9wYXRoLnB5CisgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwg
cHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRI
T05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisg
ICAgY29sbGVjdGVkIDEgaXRlbQorCisgICAgdGVzdF90bXBfcGF0aC5weSBGICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisKKyAgICA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9j
cmVhdGVfZmlsZSBfX19fX19fX19fX19fX19fX19fX19fX19fX19fXworCisgICAgdG1wX3BhdGgg
PSBQb3NpeFBhdGgoJ1BZVEVTVF9UTVBESVIvdGVzdF9jcmVhdGVfZmlsZTAnKQorCisgICAgICAg
IGRlZiB0ZXN0X2NyZWF0ZV9maWxlKHRtcF9wYXRoKToKKyAgICAgICAgICAgIGQgPSB0bXBfcGF0
aCAvICJzdWIiCisgICAgICAgICAgICBkLm1rZGlyKCkKKyAgICAgICAgICAgIHAgPSBkIC8gImhl
bGxvLnR4dCIKKyAgICAgICAgICAgIHAud3JpdGVfdGV4dChDT05URU5UKQorICAgICAgICAgICAg
YXNzZXJ0IHAucmVhZF90ZXh0KCkgPT0gQ09OVEVOVAorICAgICAgICAgICAgYXNzZXJ0IGxlbihs
aXN0KHRtcF9wYXRoLml0ZXJkaXIoKSkpID09IDEKKyAgICA+ICAgICAgIGFzc2VydCAwCisgICAg
RSAgICAgICBhc3NlcnQgMAorCisgICAgdGVzdF90bXBfcGF0aC5weToxMzogQXNzZXJ0aW9uRXJy
b3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEgZmFpbGVkIGluIDAuMTIgc2Vjb25k
cyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIF9gdG1wX3BhdGhfZmFjdG9yeSBleGFt
cGxlYDoKKworVGhlIGBgdG1wX3BhdGhfZmFjdG9yeWBgIGZpeHR1cmUKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKworCisKK1RoZSBgYHRtcF9wYXRoX2ZhY3RvcnlgYCBpcyBh
IHNlc3Npb24tc2NvcGVkIGZpeHR1cmUgd2hpY2ggY2FuIGJlIHVzZWQKK3RvIGNyZWF0ZSBhcmJp
dHJhcnkgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIGZyb20gYW55IG90aGVyIGZpeHR1cmUgb3IgdGVz
dC4KKworSXQgaXMgaW50ZW5kZWQgdG8gcmVwbGFjZSBgYHRtcGRpcl9mYWN0b3J5YGAsIGFuZCBy
ZXR1cm5zIDpjbGFzczpgcGF0aGxpYi5QYXRoYCBpbnN0YW5jZXMuCisKK1NlZSA6cmVmOmB0bXBf
cGF0aF9mYWN0b3J5IEFQSSA8dG1wX3BhdGhfZmFjdG9yeSBmYWN0b3J5IGFwaT5gIGZvciBkZXRh
aWxzLgorCisKIFRoZSAndG1wZGlyJyBmaXh0dXJlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBA
IC0yNSwxMiArMTAyLDE1IEBAIGFuZCBtb3JlLiAgSGVyZSBpcyBhbiBleGFtcGxlIHRlc3QgdXNh
Z2U6OgogICAgICAgICBhc3NlcnQgMAogCiBSdW5uaW5nIHRoaXMgd291bGQgcmVzdWx0IGluIGEg
cGFzc2VkIHRlc3QgZXhjZXB0IGZvciB0aGUgbGFzdAotYGBhc3NlcnQgMGBgIGxpbmUgd2hpY2gg
d2UgdXNlIHRvIGxvb2sgYXQgdmFsdWVzOjoKK2BgYXNzZXJ0IDBgYCBsaW5lIHdoaWNoIHdlIHVz
ZSB0byBsb29rIGF0IHZhbHVlczoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBw
eXRlc3QgdGVzdF90bXBkaXIucHkKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVz
dCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgcGxhdGZv
cm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3kt
MC54LnkKLSAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIHBsYXRm
b3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngueSwgcGx1Z2d5
LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2FjaGUKKyAgICBy
b290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCiAgICAgY29sbGVjdGVkIDEgaXRlbQogCiAgICAgdGVz
dF90bXBkaXIucHkgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWzEwMCVdCkBAIC01Niw3ICsxMzYsNyBAQCBSdW5uaW5nIHRoaXMgd291bGQgcmVz
dWx0IGluIGEgcGFzc2VkIHRlc3QgZXhjZXB0IGZvciB0aGUgbGFzdAogVGhlICd0bXBkaXJfZmFj
dG9yeScgZml4dHVyZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0uLiB2ZXJzaW9u
YWRkZWQ6OiAyLjgKKwogCiBUaGUgYGB0bXBkaXJfZmFjdG9yeWBgIGlzIGEgc2Vzc2lvbi1zY29w
ZWQgZml4dHVyZSB3aGljaCBjYW4gYmUgdXNlZAogdG8gY3JlYXRlIGFyYml0cmFyeSB0ZW1wb3Jh
cnkgZGlyZWN0b3JpZXMgZnJvbSBhbnkgb3RoZXIgZml4dHVyZSBvciB0ZXN0LgpAQCAtOTgsNyAr
MTc4LDkgQEAgdGhlIHN5c3RlbSB0ZW1wb3JhcnkgZGlyZWN0b3J5LiAgVGhlIGJhc2UgbmFtZSB3
aWxsIGJlIGBgcHl0ZXN0LU5VTWBgIHdoZXJlCiBgYE5VTWBgIHdpbGwgYmUgaW5jcmVtZW50ZWQg
d2l0aCBlYWNoIHRlc3QgcnVuLiAgTW9yZW92ZXIsIGVudHJpZXMgb2xkZXIKIHRoYW4gMyB0ZW1w
b3JhcnkgZGlyZWN0b3JpZXMgd2lsbCBiZSByZW1vdmVkLgogCi1Zb3UgY2FuIG92ZXJyaWRlIHRo
ZSBkZWZhdWx0IHRlbXBvcmFyeSBkaXJlY3Rvcnkgc2V0dGluZyBsaWtlIHRoaXM6OgorWW91IGNh
biBvdmVycmlkZSB0aGUgZGVmYXVsdCB0ZW1wb3JhcnkgZGlyZWN0b3J5IHNldHRpbmcgbGlrZSB0
aGlzOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC0tYmFzZXRlbXA9bXlk
aXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3VuaXR0ZXN0LnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi91bml0dGVzdC5yc3QKaW5kZXggNTMxOTJiMzQ2OWQzZmNlMGEzYWNkOGQ2
YjAyMzgyOTE3NjFhODIzMC4uMDU2MzJhZWY0YjI1Y2E1ZWJmYjI5Y2YyMGNjNmQzMmVkZGYwM2Jm
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3VuaXR0ZXN0LnJzdAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdW5pdHRlc3QucnN0CkBAIC0yMiwxNiArMjIsMTUgQEAgQWxtb3N0IGFs
bCBgYHVuaXR0ZXN0YGAgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKIAogKiBgYEB1bml0dGVzdC5z
a2lwYGAgc3R5bGUgZGVjb3JhdG9yczsKICogYGBzZXRVcC90ZWFyRG93bmBgOwotKiBgYHNldFVw
Q2xhc3MvdGVhckRvd25DbGFzcygpYGA7CisqIGBgc2V0VXBDbGFzcy90ZWFyRG93bkNsYXNzYGA7
CisqIGBgc2V0VXBNb2R1bGUvdGVhckRvd25Nb2R1bGVgYDsKIAogLi4gX2Bsb2FkX3Rlc3RzIHBy
b3RvY29sYDogaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L3VuaXR0ZXN0Lmh0bWwj
bG9hZC10ZXN0cy1wcm90b2NvbAotLi4gX2BzZXRVcE1vZHVsZS90ZWFyRG93bk1vZHVsZWA6IGh0
dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS91bml0dGVzdC5odG1sI3NldHVwbW9kdWxl
LWFuZC10ZWFyZG93bm1vZHVsZQogLi4gX2BzdWJ0ZXN0c2A6IGh0dHBzOi8vZG9jcy5weXRob24u
b3JnLzMvbGlicmFyeS91bml0dGVzdC5odG1sI2Rpc3Rpbmd1aXNoaW5nLXRlc3QtaXRlcmF0aW9u
cy11c2luZy1zdWJ0ZXN0cwogCiBVcCB0byB0aGlzIHBvaW50IHB5dGVzdCBkb2VzIG5vdCBoYXZl
IHN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6CiAKICogYGxvYWRfdGVzdHMgcHJv
dG9jb2xgXzsKLSogYHNldFVwTW9kdWxlL3RlYXJEb3duTW9kdWxlYF87CiAqIGBzdWJ0ZXN0c2Bf
OwogCiBCZW5lZml0cyBvdXQgb2YgdGhlIGJveApAQCAtMTIzLDEyICsxMjIsMTUgQEAgZml4dHVy
ZSBkZWZpbml0aW9uOjoKIFRoZSBgYEBweXRlc3QubWFyay51c2VmaXh0dXJlcygiZGJfY2xhc3Mi
KWBgIGNsYXNzLWRlY29yYXRvciBtYWtlcyBzdXJlIHRoYXQKIHRoZSBweXRlc3QgZml4dHVyZSBm
dW5jdGlvbiBgYGRiX2NsYXNzYGAgaXMgY2FsbGVkIG9uY2UgcGVyIGNsYXNzLgogRHVlIHRvIHRo
ZSBkZWxpYmVyYXRlbHkgZmFpbGluZyBhc3NlcnQgc3RhdGVtZW50cywgd2UgY2FuIHRha2UgYSBs
b29rIGF0Ci10aGUgYGBzZWxmLmRiYGAgdmFsdWVzIGluIHRoZSB0cmFjZWJhY2s6OgordGhlIGBg
c2VsZi5kYmBgIHZhbHVlcyBpbiB0aGUgdHJhY2ViYWNrOgorCisuLiBjb2RlLWJsb2NrOjogcHl0
ZXN0CiAKICAgICAkIHB5dGVzdCB0ZXN0X3VuaXR0ZXN0X2RiLnB5CiAgICAgPT09PT09PT09PT09
PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55
LCBweS0xLngueSwgcGx1Z2d5LTAueC55Ci0gICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC00Lngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIGNhY2hlZGlyOiAkUFlUSE9OX1BSRUZJWC8u
cHl0ZXN0X2NhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUgogICAgIGNvbGxlY3Rl
ZCAyIGl0ZW1zCiAKICAgICB0ZXN0X3VuaXR0ZXN0X2RiLnB5IEZGICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KQEAgLTIwMCw3ICsyMDIsOSBAQCB1
c2VkIGZvciBhbGwgbWV0aG9kcyBvZiB0aGUgY2xhc3Mgd2hlcmUgaXQgaXMgZGVmaW5lZC4gIFRo
aXMgaXMgYQogc2hvcnRjdXQgZm9yIHVzaW5nIGEgYGBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMo
ImluaXRkaXIiKWBgIG1hcmtlcgogb24gdGhlIGNsYXNzIGxpa2UgaW4gdGhlIHByZXZpb3VzIGV4
YW1wbGUuCiAKLVJ1bm5pbmcgdGhpcyB0ZXN0IG1vZHVsZSAuLi46OgorUnVubmluZyB0aGlzIHRl
c3QgbW9kdWxlIC4uLjoKKworLi4gY29kZS1ibG9jazo6IHB5dGVzdAogCiAgICAgJCBweXRlc3Qg
LXEgdGVzdF91bml0dGVzdF9jbGVhbmRpci5weQogICAgIC4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3VzYWdlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi91c2FnZS5yc3QKaW5kZXggMjViZTU0Mzk1YWY3YjM5OWU4MDk5ZWQzZjI3NmNmOTM4OTcyODMx
MC4uYWNmNzM2ZjIxMWUxMjFhNTJiZGE3YWJkZmJiMzIzYTg1ODNjMTNkYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3VzYWdlLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdXNh
Z2UucnN0CkBAIC0xMCw5ICsxMCwxMSBAQCBVc2FnZSBhbmQgSW52b2NhdGlvbnMKIENhbGxpbmcg
cHl0ZXN0IHRocm91Z2ggYGBweXRob24gLW0gcHl0ZXN0YGAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIHZlcnNpb25hZGRlZDo6IDIu
MAogCi1Zb3UgY2FuIGludm9rZSB0ZXN0aW5nIHRocm91Z2ggdGhlIFB5dGhvbiBpbnRlcnByZXRl
ciBmcm9tIHRoZSBjb21tYW5kIGxpbmU6OgorCitZb3UgY2FuIGludm9rZSB0ZXN0aW5nIHRocm91
Z2ggdGhlIFB5dGhvbiBpbnRlcnByZXRlciBmcm9tIHRoZSBjb21tYW5kIGxpbmU6CisKKy4uIGNv
ZGUtYmxvY2s6OiB0ZXh0CiAKICAgICBweXRob24gLW0gcHl0ZXN0IFsuLi5dCiAKQEAgLTM0LDcg
KzM2LDcgQEAgUnVubmluZyBgYHB5dGVzdGBgIGNhbiByZXN1bHQgaW4gc2l4IGRpZmZlcmVudCBl
eGl0IGNvZGVzOgogR2V0dGluZyBoZWxwIG9uIHZlcnNpb24sIG9wdGlvbiBuYW1lcywgZW52aXJv
bm1lbnQgdmFyaWFibGVzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi06OgorLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAg
IHB5dGVzdCAtLXZlcnNpb24gICAjIHNob3dzIHdoZXJlIHB5dGVzdCB3YXMgaW1wb3J0ZWQgZnJv
bQogICAgIHB5dGVzdCAtLWZpeHR1cmVzICAjIHNob3cgYXZhaWxhYmxlIGJ1aWx0aW4gZnVuY3Rp
b24gYXJndW1lbnRzCkBAIC00Niw3ICs0OCw5IEBAIEdldHRpbmcgaGVscCBvbiB2ZXJzaW9uLCBv
cHRpb24gbmFtZXMsIGVudmlyb25tZW50IHZhcmlhYmxlcwogU3RvcHBpbmcgYWZ0ZXIgdGhlIGZp
cnN0IChvciBOKSBmYWlsdXJlcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLVRvIHN0b3AgdGhlIHRlc3RpbmcgcHJvY2VzcyBhZnRlciB0aGUg
Zmlyc3QgKE4pIGZhaWx1cmVzOjoKK1RvIHN0b3AgdGhlIHRlc3RpbmcgcHJvY2VzcyBhZnRlciB0
aGUgZmlyc3QgKE4pIGZhaWx1cmVzOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0
ZXN0IC14ICAgICAgICAgICAgIyBzdG9wIGFmdGVyIGZpcnN0IGZhaWx1cmUKICAgICBweXRlc3Qg
LS1tYXhmYWlsPTIgICAgIyBzdG9wIGFmdGVyIHR3byBmYWlsdXJlcwpAQCAtNjAsMTkgKzY0LDE5
IEBAIFB5dGVzdCBzdXBwb3J0cyBzZXZlcmFsIHdheXMgdG8gcnVuIGFuZCBzZWxlY3QgdGVzdHMg
ZnJvbSB0aGUgY29tbWFuZC1saW5lLgogCiAqKlJ1biB0ZXN0cyBpbiBhIG1vZHVsZSoqCiAKLTo6
CisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IHRlc3RfbW9kLnB5CiAKICoqUnVu
IHRlc3RzIGluIGEgZGlyZWN0b3J5KioKIAotOjoKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAg
ICBweXRlc3QgdGVzdGluZy8KIAogKipSdW4gdGVzdHMgYnkga2V5d29yZCBleHByZXNzaW9ucyoq
CiAKLTo6CisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC1rICJNeUNsYXNzIGFu
ZCBub3QgbWV0aG9kIgogCkBAIC04NywxOCArOTEsMjIgQEAgVGhlIGV4YW1wbGUgYWJvdmUgd2ls
bCBydW4gYGBUZXN0TXlDbGFzcy50ZXN0X3NvbWV0aGluZ2BgICBidXQgbm90IGBgVGVzdE15Q2xh
c3MKIEVhY2ggY29sbGVjdGVkIHRlc3QgaXMgYXNzaWduZWQgYSB1bmlxdWUgYGBub2RlaWRgYCB3
aGljaCBjb25zaXN0IG9mIHRoZSBtb2R1bGUgZmlsZW5hbWUgZm9sbG93ZWQKIGJ5IHNwZWNpZmll
cnMgbGlrZSBjbGFzcyBuYW1lcywgZnVuY3Rpb24gbmFtZXMgYW5kIHBhcmFtZXRlcnMgZnJvbSBw
YXJhbWV0cml6YXRpb24sIHNlcGFyYXRlZCBieSBgYDo6YGAgY2hhcmFjdGVycy4KIAotVG8gcnVu
IGEgc3BlY2lmaWMgdGVzdCB3aXRoaW4gYSBtb2R1bGU6OgorVG8gcnVuIGEgc3BlY2lmaWMgdGVz
dCB3aXRoaW4gYSBtb2R1bGU6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3Qg
dGVzdF9tb2QucHk6OnRlc3RfZnVuYwogCiAKLUFub3RoZXIgZXhhbXBsZSBzcGVjaWZ5aW5nIGEg
dGVzdCBtZXRob2QgaW4gdGhlIGNvbW1hbmQgbGluZTo6CitBbm90aGVyIGV4YW1wbGUgc3BlY2lm
eWluZyBhIHRlc3QgbWV0aG9kIGluIHRoZSBjb21tYW5kIGxpbmU6CisKKy4uIGNvZGUtYmxvY2s6
OiBiYXNoCiAKICAgICBweXRlc3QgdGVzdF9tb2QucHk6OlRlc3RDbGFzczo6dGVzdF9tZXRob2QK
IAogKipSdW4gdGVzdHMgYnkgbWFya2VyIGV4cHJlc3Npb25zKioKIAotOjoKKy4uIGNvZGUtYmxv
Y2s6OiBiYXNoCiAKICAgICBweXRlc3QgLW0gc2xvdwogCkBAIC0xMDgsNyArMTE2LDcgQEAgRm9y
IG1vcmUgaW5mb3JtYXRpb24gc2VlIDpyZWY6YG1hcmtzIDxtYXJrPmAuCiAKICoqUnVuIHRlc3Rz
IGZyb20gcGFja2FnZXMqKgogCi06OgorLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVz
dCAtLXB5YXJncyBwa2cudGVzdGluZwogCkBAIC0xMTgsNyArMTI2LDkgQEAgVGhpcyB3aWxsIGlt
cG9ydCBgYHBrZy50ZXN0aW5nYGAgYW5kIHVzZSBpdHMgZmlsZXN5c3RlbSBsb2NhdGlvbiB0byBm
aW5kIGFuZCBydW4KIE1vZGlmeWluZyBQeXRob24gdHJhY2ViYWNrIHByaW50aW5nCiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUV4YW1wbGVzIGZvciBt
b2RpZnlpbmcgdHJhY2ViYWNrIHByaW50aW5nOjoKK0V4YW1wbGVzIGZvciBtb2RpZnlpbmcgdHJh
Y2ViYWNrIHByaW50aW5nOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAgICAgcHl0ZXN0IC0t
c2hvd2xvY2FscyAjIHNob3cgbG9jYWwgdmFyaWFibGVzIGluIHRyYWNlYmFja3MKICAgICBweXRl
c3QgLWwgICAgICAgICAgICMgc2hvdyBsb2NhbCB2YXJpYWJsZXMgKHNob3J0Y3V0KQpAQCAtMTQw
LDYgKzE1MCwxODAgQEAgd2lsbCBiZSBzaG93biAoYmVjYXVzZSBLZXlib2FyZEludGVycnVwdCBp
cyBjYXVnaHQgYnkgcHl0ZXN0KS4gQnkgdXNpbmcgdGhpcwogb3B0aW9uIHlvdSBtYWtlIHN1cmUg
YSB0cmFjZSBpcyBzaG93bi4KIAogCisuLiBfYHB5dGVzdC5kZXRhaWxlZF9mYWlsZWRfdGVzdHNf
dXNhZ2VgOgorCitEZXRhaWxlZCBzdW1tYXJ5IHJlcG9ydAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworCisKK1RoZSBgYC1yYGAgZmxhZyBjYW4gYmUgdXNlZCB0byBkaXNwbGF5IGEgInNob3J0
IHRlc3Qgc3VtbWFyeSBpbmZvIiBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0IHNlc3Npb24sCittYWtp
bmcgaXQgZWFzeSBpbiBsYXJnZSB0ZXN0IHN1aXRlcyB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9m
IGFsbCBmYWlsdXJlcywgc2tpcHMsIHhmYWlscywgZXRjLgorCitFeGFtcGxlOgorCisuLiBjb2Rl
LWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9leGFtcGxlLnB5CisgICAg
aW1wb3J0IHB5dGVzdAorCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgZXJyb3JfZml4
dHVyZSgpOgorICAgICAgICBhc3NlcnQgMAorCisKKyAgICBkZWYgdGVzdF9vaygpOgorICAgICAg
ICBwcmludCgib2siKQorCisKKyAgICBkZWYgdGVzdF9mYWlsKCk6CisgICAgICAgIGFzc2VydCAw
CisKKworICAgIGRlZiB0ZXN0X2Vycm9yKGVycm9yX2ZpeHR1cmUpOgorICAgICAgICBwYXNzCisK
KworICAgIGRlZiB0ZXN0X3NraXAoKToKKyAgICAgICAgcHl0ZXN0LnNraXAoInNraXBwaW5nIHRo
aXMgdGVzdCIpCisKKworICAgIGRlZiB0ZXN0X3hmYWlsKCk6CisgICAgICAgIHB5dGVzdC54ZmFp
bCgieGZhaWxpbmcgdGhpcyB0ZXN0IikKKworCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNv
bj0iYWx3YXlzIHhmYWlsIikKKyAgICBkZWYgdGVzdF94cGFzcygpOgorICAgICAgICBwYXNzCisK
KworLi4gY29kZS1ibG9jazo6IHB5dGVzdAorCisgICAgJCBweXRlc3QgLXJhCisgICAgPT09PT09
PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0
LTQueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJF
RklYLy5weXRlc3RfY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29s
bGVjdGVkIDYgaXRlbXMKKworICAgIHRlc3RfZXhhbXBsZS5weSAuRkVzeFggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorCisgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSBFUlJPUlMgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fIEVSUk9SIGF0IHNldHVwIG9m
IHRlc3RfZXJyb3IgX19fX19fX19fX19fX19fX19fX19fX18KKworICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKKyAgICAgICAgZGVmIGVycm9yX2ZpeHR1cmUoKToKKyAgICA+ICAgICAgIGFzc2VydCAw
CisgICAgRSAgICAgICBhc3NlcnQgMAorCisgICAgdGVzdF9leGFtcGxlLnB5OjY6IEFzc2VydGlv
bkVycm9yCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fIHRlc3RfZmFpbCBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
KworICAgICAgICBkZWYgdGVzdF9mYWlsKCk6CisgICAgPiAgICAgICBhc3NlcnQgMAorICAgIEUg
ICAgICAgYXNzZXJ0IDAKKworICAgIHRlc3RfZXhhbXBsZS5weToxNDogQXNzZXJ0aW9uRXJyb3IK
KyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvID09
PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgU0tJUFBFRCBbMV0gJFJFR0VORE9DX1RNUERJ
Ui90ZXN0X2V4YW1wbGUucHk6MjM6IHNraXBwaW5nIHRoaXMgdGVzdAorICAgIFhGQUlMIHRlc3Rf
ZXhhbXBsZS5weTo6dGVzdF94ZmFpbAorICAgICAgcmVhc29uOiB4ZmFpbGluZyB0aGlzIHRlc3QK
KyAgICBYUEFTUyB0ZXN0X2V4YW1wbGUucHk6OnRlc3RfeHBhc3MgYWx3YXlzIHhmYWlsCisgICAg
RVJST1IgdGVzdF9leGFtcGxlLnB5Ojp0ZXN0X2Vycm9yIC0gYXNzZXJ0IDAKKyAgICBGQUlMRUQg
dGVzdF9leGFtcGxlLnB5Ojp0ZXN0X2ZhaWwgLSBhc3NlcnQgMAorICAgID0gMSBmYWlsZWQsIDEg
cGFzc2VkLCAxIHNraXBwZWQsIDEgeGZhaWxlZCwgMSB4cGFzc2VkLCAxIGVycm9yIGluIDAuMTIg
c2Vjb25kcyA9CisKK1RoZSBgYC1yYGAgb3B0aW9ucyBhY2NlcHRzIGEgbnVtYmVyIG9mIGNoYXJh
Y3RlcnMgYWZ0ZXIgaXQsIHdpdGggYGBhYGAgdXNlZAorYWJvdmUgbWVhbmluZyAiYWxsIGV4Y2Vw
dCBwYXNzZXMiLgorCitIZXJlIGlzIHRoZSBmdWxsIGxpc3Qgb2YgYXZhaWxhYmxlIGNoYXJhY3Rl
cnMgdGhhdCBjYW4gYmUgdXNlZDoKKworIC0gYGBmYGAgLSBmYWlsZWQKKyAtIGBgRWBgIC0gZXJy
b3IKKyAtIGBgc2BgIC0gc2tpcHBlZAorIC0gYGB4YGAgLSB4ZmFpbGVkCisgLSBgYFhgYCAtIHhw
YXNzZWQKKyAtIGBgcGBgIC0gcGFzc2VkCisgLSBgYFBgYCAtIHBhc3NlZCB3aXRoIG91dHB1dAor
IC0gYGBhYGAgLSBhbGwgZXhjZXB0IGBgcFBgYAorIC0gYGBBYGAgLSBhbGwKKworTW9yZSB0aGFu
IG9uZSBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQsIHNvIGZvciBleGFtcGxlIHRvIG9ubHkgc2VlIGZh
aWxlZCBhbmQgc2tpcHBlZCB0ZXN0cywgeW91IGNhbiBleGVjdXRlOgorCisuLiBjb2RlLWJsb2Nr
OjogcHl0ZXN0CisKKyAgICAkIHB5dGVzdCAtcmZzCisgICAgPT09PT09PT09PT09PT09PT09PT09
PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
ICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0xLngu
eSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3RfY2Fj
aGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSCisgICAgY29sbGVjdGVkIDYgaXRlbXMK
KworICAgIHRlc3RfZXhhbXBsZS5weSAuRkVzeFggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsxMDAlXQorCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSBFUlJPUlMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAg
IF9fX19fX19fX19fX19fX19fX19fX19fIEVSUk9SIGF0IHNldHVwIG9mIHRlc3RfZXJyb3IgX19f
X19fX19fX19fX19fX19fX19fX18KKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAg
ZGVmIGVycm9yX2ZpeHR1cmUoKToKKyAgICA+ICAgICAgIGFzc2VydCAwCisgICAgRSAgICAgICBh
c3NlcnQgMAorCisgICAgdGVzdF9leGFtcGxlLnB5OjY6IEFzc2VydGlvbkVycm9yCisgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRl
c3RfZmFpbCBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKworICAgICAgICBkZWYg
dGVzdF9mYWlsKCk6CisgICAgPiAgICAgICBhc3NlcnQgMAorICAgIEUgICAgICAgYXNzZXJ0IDAK
KworICAgIHRlc3RfZXhhbXBsZS5weToxNDogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09
PT09PT09PT09PT09PT09IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvID09PT09PT09PT09PT09PT09
PT09PT09PT09CisgICAgRkFJTEVEIHRlc3RfZXhhbXBsZS5weTo6dGVzdF9mYWlsIC0gYXNzZXJ0
IDAKKyAgICBTS0lQUEVEIFsxXSAkUkVHRU5ET0NfVE1QRElSL3Rlc3RfZXhhbXBsZS5weToyMzog
c2tpcHBpbmcgdGhpcyB0ZXN0CisgICAgPSAxIGZhaWxlZCwgMSBwYXNzZWQsIDEgc2tpcHBlZCwg
MSB4ZmFpbGVkLCAxIHhwYXNzZWQsIDEgZXJyb3IgaW4gMC4xMiBzZWNvbmRzID0KKworVXNpbmcg
YGBwYGAgbGlzdHMgdGhlIHBhc3NpbmcgdGVzdHMsIHdoaWxzdCBgYFBgYCBhZGRzIGFuIGV4dHJh
IHNlY3Rpb24gIlBBU1NFUyIgd2l0aCB0aG9zZSB0ZXN0cyB0aGF0IHBhc3NlZCBidXQgaGFkCitj
YXB0dXJlZCBvdXRwdXQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKKworICAgICQgcHl0ZXN0
IC1ycFAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0
cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0
aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBjYWNo
ZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRP
Q19UTVBESVIKKyAgICBjb2xsZWN0ZWQgNiBpdGVtcworCisgICAgdGVzdF9leGFtcGxlLnB5IC5G
RXN4WCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVd
CisKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEVSUk9SUyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX18g
RVJST1IgYXQgc2V0dXAgb2YgdGVzdF9lcnJvciBfX19fX19fX19fX19fX19fX19fX19fXworCisg
ICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgZXJyb3JfZml4dHVyZSgpOgorICAg
ID4gICAgICAgYXNzZXJ0IDAKKyAgICBFICAgICAgIGFzc2VydCAwCisKKyAgICB0ZXN0X2V4YW1w
bGUucHk6NjogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9mYWlsIF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXworCisgICAgICAgIGRlZiB0ZXN0X2ZhaWwoKToKKyAgICA+ICAgICAg
IGFzc2VydCAwCisgICAgRSAgICAgICBhc3NlcnQgMAorCisgICAgdGVzdF9leGFtcGxlLnB5OjE0
OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
UEFTU0VTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9vayBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhcHR1cmVkIHN0ZG91
dCBjYWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIG9rCisgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09
PT09PT09PT09PQorICAgIFBBU1NFRCB0ZXN0X2V4YW1wbGUucHk6OnRlc3Rfb2sKKyAgICA9IDEg
ZmFpbGVkLCAxIHBhc3NlZCwgMSBza2lwcGVkLCAxIHhmYWlsZWQsIDEgeHBhc3NlZCwgMSBlcnJv
ciBpbiAwLjEyIHNlY29uZHMgPQorCiAuLiBfcGRiLW9wdGlvbjoKIAogRHJvcHBpbmcgdG8gUERC
XyAoUHl0aG9uIERlYnVnZ2VyKSBvbiBmYWlsdXJlcwpAQCAtMTQ4LDEzICszMzIsMTcgQEAgRHJv
cHBpbmcgdG8gUERCXyAoUHl0aG9uIERlYnVnZ2VyKSBvbiBmYWlsdXJlcwogLi4gX1BEQjogaHR0
cDovL2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5L3BkYi5odG1sCiAKIFB5dGhvbiBjb21lcyB3aXRo
IGEgYnVpbHRpbiBQeXRob24gZGVidWdnZXIgY2FsbGVkIFBEQl8uICBgYHB5dGVzdGBgCi1hbGxv
d3Mgb25lIHRvIGRyb3AgaW50byB0aGUgUERCXyBwcm9tcHQgdmlhIGEgY29tbWFuZCBsaW5lIG9w
dGlvbjo6CithbGxvd3Mgb25lIHRvIGRyb3AgaW50byB0aGUgUERCXyBwcm9tcHQgdmlhIGEgY29t
bWFuZCBsaW5lIG9wdGlvbjoKKworLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVzdCAt
LXBkYgogCiBUaGlzIHdpbGwgaW52b2tlIHRoZSBQeXRob24gZGVidWdnZXIgb24gZXZlcnkgZmFp
bHVyZSAob3IgS2V5Ym9hcmRJbnRlcnJ1cHQpLgogT2Z0ZW4geW91IG1pZ2h0IG9ubHkgd2FudCB0
byBkbyB0aGlzIGZvciB0aGUgZmlyc3QgZmFpbGluZyB0ZXN0IHRvIHVuZGVyc3RhbmQKLWEgY2Vy
dGFpbiBmYWlsdXJlIHNpdHVhdGlvbjo6CithIGNlcnRhaW4gZmFpbHVyZSBzaXR1YXRpb246CisK
Ky4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLXggLS1wZGIgICAjIGRyb3AgdG8g
UERCIG9uIGZpcnN0IGZhaWx1cmUsIHRoZW4gZW5kIHRlc3Qgc2Vzc2lvbgogICAgIHB5dGVzdCAt
LXBkYiAtLW1heGZhaWw9MyAgIyBkcm9wIHRvIFBEQiBmb3IgZmlyc3QgdGhyZWUgZmFpbHVyZXMK
QEAgLTE3MSw2ICszNTksMjAgQEAgZm9yIGV4YW1wbGU6OgogICAgID4+PiBzeXMubGFzdF92YWx1
ZQogICAgIEFzc2VydGlvbkVycm9yKCdhc3NlcnQgcmVzdWx0ID09ICJvayInLCkKIAorLi4gX3Ry
YWNlLW9wdGlvbjoKKworRHJvcHBpbmcgdG8gUERCXyAoUHl0aG9uIERlYnVnZ2VyKSBhdCB0aGUg
c3RhcnQgb2YgYSB0ZXN0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKworYGBweXRlc3RgYCBhbGxvd3Mgb25lIHRvIGRyb3AgaW50
byB0aGUgUERCXyBwcm9tcHQgaW1tZWRpYXRlbHkgYXQgdGhlIHN0YXJ0IG9mIGVhY2ggdGVzdCB2
aWEgYSBjb21tYW5kIGxpbmUgb3B0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAorCisgICAg
cHl0ZXN0IC0tdHJhY2UKKworVGhpcyB3aWxsIGludm9rZSB0aGUgUHl0aG9uIGRlYnVnZ2VyIGF0
IHRoZSBzdGFydCBvZiBldmVyeSB0ZXN0LgorCiAuLiBfYnJlYWtwb2ludHM6CiAKIFNldHRpbmcg
YnJlYWtwb2ludHMKQEAgLTE4NCwxMCArMzg2LDggQEAgaW4geW91ciBjb2RlIGFuZCBweXRlc3Qg
YXV0b21hdGljYWxseSBkaXNhYmxlcyBpdHMgb3V0cHV0IGNhcHR1cmUgZm9yIHRoYXQgdGVzdDoK
ICogT3V0cHV0IGNhcHR1cmUgaW4gb3RoZXIgdGVzdHMgaXMgbm90IGFmZmVjdGVkLgogKiBBbnkg
cHJpb3IgdGVzdCBvdXRwdXQgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIGNhcHR1cmVkIGFuZCB3aWxs
IGJlIHByb2Nlc3NlZCBhcwogICBzdWNoLgotKiBBbnkgbGF0ZXIgb3V0cHV0IHByb2R1Y2VkIHdp
dGhpbiB0aGUgc2FtZSB0ZXN0IHdpbGwgbm90IGJlIGNhcHR1cmVkIGFuZCB3aWxsCi0gIGluc3Rl
YWQgZ2V0IHNlbnQgZGlyZWN0bHkgdG8gYGBzeXMuc3Rkb3V0YGAuIE5vdGUgdGhhdCB0aGlzIGhv
bGRzIHRydWUgZXZlbgotICBmb3IgdGVzdCBvdXRwdXQgb2NjdXJyaW5nIGFmdGVyIHlvdSBleGl0
IHRoZSBpbnRlcmFjdGl2ZSBQREJfIHRyYWNpbmcgc2Vzc2lvbgotICBhbmQgY29udGludWUgd2l0
aCB0aGUgcmVndWxhciB0ZXN0IHJ1bi4KKyogT3V0cHV0IGNhcHR1cmUgZ2V0cyByZXN1bWVkIHdo
ZW4gZW5kaW5nIHRoZSBkZWJ1Z2dlciBzZXNzaW9uICh2aWEgdGhlCisgIGBgY29udGludWVgYCBj
b21tYW5kKS4KIAogCiAuLiBfYGJyZWFrcG9pbnQtYnVpbHRpbmA6CkBAIC0yMDAsOCArNDAwLDgg
QEAgUHl0ZXN0IHN1cHBvcnRzIHRoZSB1c2Ugb2YgYGBicmVha3BvaW50KClgYCB3aXRoIHRoZSBm
b2xsb3dpbmcgYmVoYXZpb3VyczoKIAogIC0gV2hlbiBgYGJyZWFrcG9pbnQoKWBgIGlzIGNhbGxl
ZCBhbmQgYGBQWVRIT05CUkVBS1BPSU5UYGAgaXMgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlLCBw
eXRlc3Qgd2lsbCB1c2UgdGhlIGN1c3RvbSBpbnRlcm5hbCBQREIgdHJhY2UgVUkgaW5zdGVhZCBv
ZiB0aGUgc3lzdGVtIGRlZmF1bHQgYGBQZGJgYC4KICAtIFdoZW4gdGVzdHMgYXJlIGNvbXBsZXRl
LCB0aGUgc3lzdGVtIHdpbGwgZGVmYXVsdCBiYWNrIHRvIHRoZSBzeXN0ZW0gYGBQZGJgYCB0cmFj
ZSBVSS4KLSAtIElmIGBgLS1wZGJgYCBpcyBjYWxsZWQgb24gZXhlY3V0aW9uIG9mIHB5dGVzdCwg
dGhlIGN1c3RvbSBpbnRlcm5hbCBQZGIgdHJhY2UgVUkgaXMgdXNlZCBvbiBgYGJvdGhicmVha3Bv
aW50KClgYCBhbmQgZmFpbGVkIHRlc3RzL3VuaGFuZGxlZCBleGNlcHRpb25zLgotIC0gSWYgYGAt
LXBkYmNsc2BgIGlzIHVzZWQsIHRoZSBjdXN0b20gY2xhc3MgZGVidWdnZXIgd2lsbCBiZSBleGVj
dXRlZCB3aGVuIGEgdGVzdCBmYWlscyAoYXMgZXhwZWN0ZWQgd2l0aGluIGV4aXN0aW5nIGJlaGF2
aW91ciksIGJ1dCBhbHNvIHdoZW4gYGBicmVha3BvaW50KClgYCBpcyBjYWxsZWQgZnJvbSB3aXRo
aW4gYSB0ZXN0LCB0aGUgY3VzdG9tIGNsYXNzIGRlYnVnZ2VyIHdpbGwgYmUgaW5zdGFudGlhdGVk
LgorIC0gV2l0aCBgYC0tcGRiYGAgcGFzc2VkIHRvIHB5dGVzdCwgdGhlIGN1c3RvbSBpbnRlcm5h
bCBQZGIgdHJhY2UgVUkgaXMgdXNlZCB3aXRoIGJvdGggYGBicmVha3BvaW50KClgYCBhbmQgZmFp
bGVkIHRlc3RzL3VuaGFuZGxlZCBleGNlcHRpb25zLgorIC0gYGAtLXBkYmNsc2BgIGNhbiBiZSB1
c2VkIHRvIHNwZWNpZnkgYSBjdXN0b20gZGVidWdnZXIgY2xhc3MuCiAKIC4uIF9kdXJhdGlvbnM6
CiAKQEAgLTIxMCwyMiArNDEwLDI3IEBAIFByb2ZpbGluZyB0ZXN0IGV4ZWN1dGlvbiBkdXJhdGlv
bgogCiAuLiB2ZXJzaW9uYWRkZWQ6IDIuMgogCi1UbyBnZXQgYSBsaXN0IG9mIHRoZSBzbG93ZXN0
IDEwIHRlc3QgZHVyYXRpb25zOjoKK1RvIGdldCBhIGxpc3Qgb2YgdGhlIHNsb3dlc3QgMTAgdGVz
dCBkdXJhdGlvbnM6CisKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAgICBweXRlc3QgLS1kdXJh
dGlvbnM9MTAKIAorQnkgZGVmYXVsdCwgcHl0ZXN0IHdpbGwgbm90IHNob3cgdGVzdCBkdXJhdGlv
bnMgdGhhdCBhcmUgdG9vIHNtYWxsICg8MC4wMXMpIHVubGVzcyBgYC12dmBgIGlzIHBhc3NlZCBv
biB0aGUgY29tbWFuZC1saW5lLgogCiBDcmVhdGluZyBKVW5pdFhNTCBmb3JtYXQgZmlsZXMKIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVG8g
Y3JlYXRlIHJlc3VsdCBmaWxlcyB3aGljaCBjYW4gYmUgcmVhZCBieSBKZW5raW5zXyBvciBvdGhl
ciBDb250aW51b3VzCi1pbnRlZ3JhdGlvbiBzZXJ2ZXJzLCB1c2UgdGhpcyBpbnZvY2F0aW9uOjoK
K2ludGVncmF0aW9uIHNlcnZlcnMsIHVzZSB0aGlzIGludm9jYXRpb246CisKKy4uIGNvZGUtYmxv
Y2s6OiBiYXNoCiAKICAgICBweXRlc3QgLS1qdW5pdHhtbD1wYXRoCiAKIHRvIGNyZWF0ZSBhbiBY
TUwgZmlsZSBhdCBgYHBhdGhgYC4KIAotLi4gdmVyc2lvbmFkZGVkOjogMy4xCisKIAogVG8gc2V0
IHRoZSBuYW1lIG9mIHRoZSByb290IHRlc3Qgc3VpdGUgeG1sIGl0ZW0sIHlvdSBjYW4gY29uZmln
dXJlIHRoZSBgYGp1bml0X3N1aXRlX25hbWVgYCBvcHRpb24gaW4geW91ciBjb25maWcgZmlsZToK
IApAQCAtMjM0LDE4ICs0MzksMjUgQEAgVG8gc2V0IHRoZSBuYW1lIG9mIHRoZSByb290IHRlc3Qg
c3VpdGUgeG1sIGl0ZW0sIHlvdSBjYW4gY29uZmlndXJlIHRoZSBgYGp1bml0X3MKICAgICBbcHl0
ZXN0XQogICAgIGp1bml0X3N1aXRlX25hbWUgPSBteV9zdWl0ZQogCisuLiB2ZXJzaW9uYWRkZWQ6
OiA0LjAKKworSlVuaXQgWE1MIHNwZWNpZmljYXRpb24gc2VlbXMgdG8gaW5kaWNhdGUgdGhhdCBg
YCJ0aW1lImBgIGF0dHJpYnV0ZQorc2hvdWxkIHJlcG9ydCB0b3RhbCB0ZXN0IGV4ZWN1dGlvbiB0
aW1lcywgaW5jbHVkaW5nIHNldHVwIGFuZCB0ZWFyZG93bgorKGAxIDxodHRwOi8vd2luZHlyb2Fk
LmNvbS5hdS9kbC9PcGVuJTIwU291cmNlL0pVbml0LnhzZD5gXywgYDIKKzxodHRwczovL3d3dy5p
Ym0uY29tL3N1cHBvcnQva25vd2xlZGdlY2VudGVyL2VuL1NTUTJSMl8xNC4xLjAvY29tLmlibS5y
c2FyLmFuYWx5c2lzLmNvZGVyZXZpZXcuY29ib2wuZG9jL3RvcGljcy9jYWNfdXNlcmVzdWx0c19q
dW5pdC5odG1sPmBfKS4KK0l0IGlzIHRoZSBkZWZhdWx0IHB5dGVzdCBiZWhhdmlvci4gVG8gcmVw
b3J0IGp1c3QgY2FsbCBkdXJhdGlvbnMKK2luc3RlYWQsIGNvbmZpZ3VyZSB0aGUgYGBqdW5pdF9k
dXJhdGlvbl9yZXBvcnRgYCBvcHRpb24gbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogaW5p
CisKKyAgICBbcHl0ZXN0XQorICAgIGp1bml0X2R1cmF0aW9uX3JlcG9ydCA9IGNhbGwKKwogLi4g
X3JlY29yZF9wcm9wZXJ0eSBleGFtcGxlOgogCiByZWNvcmRfcHJvcGVydHkKIF5eXl5eXl5eXl5e
Xl5eXgogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAyLjgKLS4uIHZlcnNpb25jaGFuZ2VkOjogMy41Ci0K
LSAgIEZpeHR1cmUgcmVuYW1lZCBmcm9tIGBgcmVjb3JkX3htbF9wcm9wZXJ0eWBgIHRvIGBgcmVj
b3JkX3Byb3BlcnR5YGAgYXMgdXNlcgotICAgcHJvcGVydGllcyBhcmUgbm93IGF2YWlsYWJsZSB0
byBhbGwgcmVwb3J0ZXJzLgotICAgYGByZWNvcmRfeG1sX3Byb3BlcnR5YGAgaXMgbm93IGRlcHJl
Y2F0ZWQuCi0KIElmIHlvdSB3YW50IHRvIGxvZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBh
IHRlc3QsIHlvdSBjYW4gdXNlIHRoZQogYGByZWNvcmRfcHJvcGVydHlgYCBmaXh0dXJlOgogCkBA
IC0zMDMsMTUgKzUxNSwxMyBAQCBXaWxsIHJlc3VsdCBpbjoKIAogLi4gd2FybmluZzo6CiAKLSAg
ICBgYHJlY29yZF9wcm9wZXJ0eWBgIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlIGFuZCBtYXkg
Y2hhbmdlIGluIHRoZSBmdXR1cmUuCi0KLSAgICBBbHNvIHBsZWFzZSBub3RlIHRoYXQgdXNpbmcg
dGhpcyBmZWF0dXJlIHdpbGwgYnJlYWsgYW55IHNjaGVtYSB2ZXJpZmljYXRpb24uCisgICAgUGxl
YXNlIG5vdGUgdGhhdCB1c2luZyB0aGlzIGZlYXR1cmUgd2lsbCBicmVhayBzY2hlbWEgdmVyaWZp
Y2F0aW9ucyBmb3IgdGhlIGxhdGVzdCBKVW5pdFhNTCBzY2hlbWEuCiAgICAgVGhpcyBtaWdodCBi
ZSBhIHByb2JsZW0gd2hlbiB1c2VkIHdpdGggc29tZSBDSSBzZXJ2ZXJzLgogCiByZWNvcmRfeG1s
X2F0dHJpYnV0ZQogXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KIAotLi4gdmVyc2lv
bmFkZGVkOjogMy40CisKIAogVG8gYWRkIGFuIGFkZGl0aW9uYWwgeG1sIGF0dHJpYnV0ZSB0byBh
IHRlc3RjYXNlIGVsZW1lbnQsIHlvdSBjYW4gdXNlCiBgYHJlY29yZF94bWxfYXR0cmlidXRlYGAg
Zml4dHVyZS4gVGhpcyBjYW4gYWxzbyBiZSB1c2VkIHRvIG92ZXJyaWRlIGV4aXN0aW5nIHZhbHVl
czoKQEAgLTM2OCw0MyArNTc4LDQ1IEBAIEluc3RlYWQsIHRoaXMgd2lsbCBhZGQgYW4gYXR0cmli
dXRlIGBgYXNzZXJ0aW9ucz0iUkVRLTEyMzQiYGAgaW5zaWRlIHRoZSBnZW5lcmF0CiAgICAgICAg
ICAgICA8L3hzOmNvbXBsZXhUeXBlPgogICAgICAgICA8L3hzOmVsZW1lbnQ+CiAKLUxvZ1hNTDog
YWRkX2dsb2JhbF9wcm9wZXJ0eQotXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKy4u
IHdhcm5pbmc6OgogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKKyAgICBQbGVhc2Ugbm90ZSB0aGF0
IHVzaW5nIHRoaXMgZmVhdHVyZSB3aWxsIGJyZWFrIHNjaGVtYSB2ZXJpZmljYXRpb25zIGZvciB0
aGUgbGF0ZXN0IEpVbml0WE1MIHNjaGVtYS4KKyAgICBUaGlzIG1pZ2h0IGJlIGEgcHJvYmxlbSB3
aGVuIHVzZWQgd2l0aCBzb21lIENJIHNlcnZlcnMuCiAKLUlmIHlvdSB3YW50IHRvIGFkZCBhIHBy
b3BlcnRpZXMgbm9kZSBpbiB0aGUgdGVzdHN1aXRlIGxldmVsLCB3aGljaCBtYXkgY29udGFpbnMg
cHJvcGVydGllcyB0aGF0IGFyZSByZWxldmFudAotdG8gYWxsIHRlc3RjYXNlcyB5b3UgY2FuIHVz
ZSBgYExvZ1hNTC5hZGRfZ2xvYmFsX3Byb3BlcnRpZXNgYAorLi4gX3JlY29yZF90ZXN0c3VpdGVf
cHJvcGVydHkgZXhhbXBsZToKIAotLi4gY29kZS1ibG9jazo6IHB5dGhvbgorcmVjb3JkX3Rlc3Rz
dWl0ZV9wcm9wZXJ0eQorXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogCi0gICAgaW1wb3J0IHB5
dGVzdAorLi4gdmVyc2lvbmFkZGVkOjogNC41CiAKK0lmIHlvdSB3YW50IHRvIGFkZCBhIHByb3Bl
cnRpZXMgbm9kZSBhdCB0aGUgdGVzdC1zdWl0ZSBsZXZlbCwgd2hpY2ggbWF5IGNvbnRhaW5zIHBy
b3BlcnRpZXMKK3RoYXQgYXJlIHJlbGV2YW50IHRvIGFsbCB0ZXN0cywgeW91IGNhbiB1c2UgdGhl
IGBgcmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eWBgIHNlc3Npb24tc2NvcGVkIGZpeHR1cmU6CiAK
LSAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQotICAgIGRlZiBsb2dfZ2xvYmFs
X2Vudl9mYWN0cyhmKToKK1RoZSBgYHJlY29yZF90ZXN0c3VpdGVfcHJvcGVydHlgYCBzZXNzaW9u
LXNjb3BlZCBmaXh0dXJlIGNhbiBiZSB1c2VkIHRvIGFkZCBwcm9wZXJ0aWVzIHJlbGV2YW50Cit0
byBhbGwgdGVzdHMuCiAKLSAgICAgICAgaWYgcHl0ZXN0LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmhh
c3BsdWdpbigianVuaXR4bWwiKToKLSAgICAgICAgICAgIG15X2p1bml0ID0gZ2V0YXR0cihweXRl
c3QuY29uZmlnLCAiX3htbCIsIE5vbmUpCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKLSAgICAg
ICAgbXlfanVuaXQuYWRkX2dsb2JhbF9wcm9wZXJ0eSgiQVJDSCIsICJQUEMiKQotICAgICAgICBt
eV9qdW5pdC5hZGRfZ2xvYmFsX3Byb3BlcnR5KCJTVE9SQUdFX1RZUEUiLCAiQ0VQSCIpCisgICAg
aW1wb3J0IHB5dGVzdAogCiAKLSAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMobG9nX2dsb2Jh
bF9lbnZfZmFjdHMuX19uYW1lX18pCi0gICAgZGVmIHN0YXJ0X2FuZF9wcmVwYXJlX2VudigpOgot
ICAgICAgICBwYXNzCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIiwgYXV0b3Vz
ZT1UcnVlKQorICAgIGRlZiBsb2dfZ2xvYmFsX2Vudl9mYWN0cyhyZWNvcmRfdGVzdHN1aXRlX3By
b3BlcnR5KToKKyAgICAgICAgcmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eSgiQVJDSCIsICJQUEMi
KQorICAgICAgICByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KCJTVE9SQUdFX1RZUEUiLCAiQ0VQ
SCIpCiAKIAogICAgIGNsYXNzIFRlc3RNZShvYmplY3QpOgogICAgICAgICBkZWYgdGVzdF9mb28o
c2VsZik6CiAgICAgICAgICAgICBhc3NlcnQgVHJ1ZQogCi1UaGlzIHdpbGwgYWRkIGEgcHJvcGVy
dHkgbm9kZSBiZWxvdyB0aGUgdGVzdHN1aXRlIG5vZGUgdG8gdGhlIGdlbmVyYXRlZCB4bWw6CitU
aGUgZml4dHVyZSBpcyBhIGNhbGxhYmxlIHdoaWNoIHJlY2VpdmVzIGBgbmFtZWBgIGFuZCBgYHZh
bHVlYGAgb2YgYSBgYDxwcm9wZXJ0eT5gYCB0YWcKK2FkZGVkIGF0IHRoZSB0ZXN0LXN1aXRlIGxl
dmVsIG9mIHRoZSBnZW5lcmF0ZWQgeG1sOgogCiAuLiBjb2RlLWJsb2NrOjogeG1sCiAKLSAgICA8
dGVzdHN1aXRlIGVycm9ycz0iMCIgZmFpbHVyZXM9IjAiIG5hbWU9InB5dGVzdCIgc2tpcHM9IjAi
IHRlc3RzPSIxIiB0aW1lPSIwLjAwNiI+CisgICAgPHRlc3RzdWl0ZSBlcnJvcnM9IjAiIGZhaWx1
cmVzPSIwIiBuYW1lPSJweXRlc3QiIHNraXBwZWQ9IjAiIHRlc3RzPSIxIiB0aW1lPSIwLjAwNiI+
CiAgICAgICA8cHJvcGVydGllcz4KICAgICAgICAgPHByb3BlcnR5IG5hbWU9IkFSQ0giIHZhbHVl
PSJQUEMiLz4KICAgICAgICAgPHByb3BlcnR5IG5hbWU9IlNUT1JBR0VfVFlQRSIgdmFsdWU9IkNF
UEgiLz4KQEAgLTQxMiwyNyArNjI0LDI1IEBAIFRoaXMgd2lsbCBhZGQgYSBwcm9wZXJ0eSBub2Rl
IGJlbG93IHRoZSB0ZXN0c3VpdGUgbm9kZSB0byB0aGUgZ2VuZXJhdGVkIHhtbDoKICAgICAgIDx0
ZXN0Y2FzZSBjbGFzc25hbWU9InRlc3RfbWUuVGVzdE1lIiBmaWxlPSJ0ZXN0X21lLnB5IiBsaW5l
PSIxNiIgbmFtZT0idGVzdF9mb28iIHRpbWU9IjAuMDAwMjQzNjYzNzg3ODQyIi8+CiAgICAgPC90
ZXN0c3VpdGU+CiAKLS4uIHdhcm5pbmc6OgorYGBuYW1lYGAgbXVzdCBiZSBhIHN0cmluZywgYGB2
YWx1ZWBgIHdpbGwgYmUgY29udmVydGVkIHRvIGEgc3RyaW5nIGFuZCBwcm9wZXJseSB4bWwtZXNj
YXBlZC4KKworVGhlIGdlbmVyYXRlZCBYTUwgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBsYXRlc3Qg
YGB4dW5pdGBgIHN0YW5kYXJkLCBjb250cmFyeSB0byBgcmVjb3JkX3Byb3BlcnR5YF8KK2FuZCBg
cmVjb3JkX3htbF9hdHRyaWJ1dGVgXy4KIAotICAgIFRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIGZl
YXR1cmUsIGFuZCBpdHMgaW50ZXJmYWNlIG1pZ2h0IGJlIHJlcGxhY2VkCi0gICAgYnkgc29tZXRo
aW5nIG1vcmUgcG93ZXJmdWwgYW5kIGdlbmVyYWwgaW4gZnV0dXJlIHZlcnNpb25zLiBUaGUKLSAg
ICBmdW5jdGlvbmFsaXR5IHBlci1zZSB3aWxsIGJlIGtlcHQuCiAKIENyZWF0aW5nIHJlc3VsdGxv
ZyBmb3JtYXQgZmlsZXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotLi4gZGVwcmVjYXRlZDo6IDMuMAogCi0gICAgVGhpcyBvcHRpb24gaXMg
cmFyZWx5IHVzZWQgYW5kIGlzIHNjaGVkdWxlZCBmb3IgcmVtb3ZhbCBpbiA0LjAuCiAKLSAgICBB
biBhbHRlcm5hdGl2ZSBmb3IgdXNlcnMgd2hpY2ggc3RpbGwgbmVlZCBzaW1pbGFyIGZ1bmN0aW9u
YWxpdHkgaXMgdG8gdXNlIHRoZQotICAgIGBweXRlc3QtdGFwIDxodHRwczovL3B5cGkub3JnL3By
b2plY3QvcHl0ZXN0LXRhcC8+YF8gcGx1Z2luIHdoaWNoIHByb3ZpZGVzCi0gICAgYSBzdHJlYW0g
b2YgdGVzdCBkYXRhLgorICAgIFRoaXMgb3B0aW9uIGlzIHJhcmVseSB1c2VkIGFuZCBpcyBzY2hl
ZHVsZWQgZm9yIHJlbW92YWwgaW4gNS4wLgorCisgICAgU2VlIGB0aGUgZGVwcmVjYXRpb24gZG9j
cyA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJlY2F0aW9ucy5odG1sI3Jl
c3VsdC1sb2ctcmVzdWx0LWxvZz5gX18KKyAgICBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAotICAg
IElmIHlvdSBoYXZlIGFueSBjb25jZXJucywgcGxlYXNlIGRvbid0IGhlc2l0YXRlIHRvCi0gICAg
YG9wZW4gYW4gaXNzdWUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXM+YF8uCitUbyBjcmVhdGUgcGxhaW4tdGV4dCBtYWNoaW5lLXJlYWRhYmxlIHJlc3VsdCBmaWxl
cyB5b3UgY2FuIGlzc3VlOgogCi1UbyBjcmVhdGUgcGxhaW4tdGV4dCBtYWNoaW5lLXJlYWRhYmxl
IHJlc3VsdCBmaWxlcyB5b3UgY2FuIGlzc3VlOjoKKy4uIGNvZGUtYmxvY2s6OiBiYXNoCiAKICAg
ICBweXRlc3QgLS1yZXN1bHRsb2c9cGF0aAogCkBAIC00NDUsNyArNjU1LDkgQEAgYnkgdGhlIGBQ
eVB5LXRlc3RgXyB3ZWIgcGFnZSB0byBzaG93IHRlc3QgcmVzdWx0cyBvdmVyIHNldmVyYWwgcmV2
aXNpb25zLgogU2VuZGluZyB0ZXN0IHJlcG9ydCB0byBvbmxpbmUgcGFzdGViaW4gc2VydmljZQog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAot
KipDcmVhdGluZyBhIFVSTCBmb3IgZWFjaCB0ZXN0IGZhaWx1cmUqKjo6CisqKkNyZWF0aW5nIGEg
VVJMIGZvciBlYWNoIHRlc3QgZmFpbHVyZSoqOgorCisuLiBjb2RlLWJsb2NrOjogYmFzaAogCiAg
ICAgcHl0ZXN0IC0tcGFzdGViaW49ZmFpbGVkCiAKQEAgLTQ1MywxMiArNjY1LDMwIEBAIFRoaXMg
d2lsbCBzdWJtaXQgdGVzdCBydW4gaW5mb3JtYXRpb24gdG8gYSByZW1vdGUgUGFzdGUgc2Vydmlj
ZSBhbmQKIHByb3ZpZGUgYSBVUkwgZm9yIGVhY2ggZmFpbHVyZS4gIFlvdSBtYXkgc2VsZWN0IHRl
c3RzIGFzIHVzdWFsIG9yIGFkZAogZm9yIGV4YW1wbGUgYGAteGBgIGlmIHlvdSBvbmx5IHdhbnQg
dG8gc2VuZCBvbmUgcGFydGljdWxhciBmYWlsdXJlLgogCi0qKkNyZWF0aW5nIGEgVVJMIGZvciBh
IHdob2xlIHRlc3Qgc2Vzc2lvbiBsb2cqKjo6CisqKkNyZWF0aW5nIGEgVVJMIGZvciBhIHdob2xl
IHRlc3Qgc2Vzc2lvbiBsb2cqKjoKKworLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVz
dCAtLXBhc3RlYmluPWFsbAogCiBDdXJyZW50bHkgb25seSBwYXN0aW5nIHRvIHRoZSBodHRwOi8v
YnBhc3RlLm5ldCBzZXJ2aWNlIGlzIGltcGxlbWVudGVkLgogCitFYXJseSBsb2FkaW5nIHBsdWdp
bnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIGVhcmx5LWxvYWQgcGx1Z2lucyAo
aW50ZXJuYWwgYW5kIGV4dGVybmFsKSBleHBsaWNpdGx5IGluIHRoZSBjb21tYW5kLWxpbmUgd2l0
aCB0aGUgYGAtcGBgIG9wdGlvbjo6CisKKyAgICBweXRlc3QgLXAgbXlwbHVnaW5tb2R1bGUKKwor
VGhlIG9wdGlvbiByZWNlaXZlcyBhIGBgbmFtZWBgIHBhcmFtZXRlciwgd2hpY2ggY2FuIGJlOgor
CisqIEEgZnVsbCBtb2R1bGUgZG90dGVkIG5hbWUsIGZvciBleGFtcGxlIGBgbXlwcm9qZWN0LnBs
dWdpbnNgYC4gVGhpcyBkb3R0ZWQgbmFtZSBtdXN0IGJlIGltcG9ydGFibGUuCisqIFRoZSBlbnRy
eS1wb2ludCBuYW1lIG9mIGEgcGx1Z2luLiBUaGlzIGlzIHRoZSBuYW1lIHBhc3NlZCB0byBgYHNl
dHVwdG9vbHNgYCB3aGVuIHRoZSBwbHVnaW4gaXMKKyAgcmVnaXN0ZXJlZC4gRm9yIGV4YW1wbGUg
dG8gZWFybHktbG9hZCB0aGUgYHB5dGVzdC1jb3YgPGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9w
eXRlc3QtY292Lz5gX18gcGx1Z2luIHlvdSBjYW4gdXNlOjoKKworICAgIHB5dGVzdCAtcCBweXRl
c3RfY292CisKKwogRGlzYWJsaW5nIHBsdWdpbnMKIC0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTQ2
Niw3ICs2OTYsOSBAQCBUbyBkaXNhYmxlIGxvYWRpbmcgc3BlY2lmaWMgcGx1Z2lucyBhdCBpbnZv
Y2F0aW9uIHRpbWUsIHVzZSB0aGUgYGAtcGBgIG9wdGlvbgogdG9nZXRoZXIgd2l0aCB0aGUgcHJl
Zml4IGBgbm86YGAuCiAKIEV4YW1wbGU6IHRvIGRpc2FibGUgbG9hZGluZyB0aGUgcGx1Z2luIGBg
ZG9jdGVzdGBgLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IKLWV4ZWN1dGluZyBkb2N0ZXN0IHRl
c3RzIGZyb20gdGV4dCBmaWxlcywgaW52b2tlIHB5dGVzdCBsaWtlIHRoaXM6OgorZXhlY3V0aW5n
IGRvY3Rlc3QgdGVzdHMgZnJvbSB0ZXh0IGZpbGVzLCBpbnZva2UgcHl0ZXN0IGxpa2UgdGhpczoK
KworLi4gY29kZS1ibG9jazo6IGJhc2gKIAogICAgIHB5dGVzdCAtcCBubzpkb2N0ZXN0CiAKQEAg
LTQ3NSw3ICs3MDcsNyBAQCBleGVjdXRpbmcgZG9jdGVzdCB0ZXN0cyBmcm9tIHRleHQgZmlsZXMs
IGludm9rZSBweXRlc3QgbGlrZSB0aGlzOjoKIENhbGxpbmcgcHl0ZXN0IGZyb20gUHl0aG9uIGNv
ZGUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotLi4gdmVyc2lvbmFkZGVkOjogMi4wCisKIAogWW91IGNhbiBpbnZva2UgYGBweXRlc3RgYCBm
cm9tIFB5dGhvbiBjb2RlIGRpcmVjdGx5OjoKIApAQCAtNDk4LDExICs3MzAsMzAgQEAgWW91IGNh
biBzcGVjaWZ5IGFkZGl0aW9uYWwgcGx1Z2lucyB0byBgYHB5dGVzdC5tYWluYGA6OgogICAgIHB5
dGVzdC5tYWluKFsiLXFxIl0sIHBsdWdpbnM9W015UGx1Z2luKCldKQogCiBSdW5uaW5nIGl0IHdp
bGwgc2hvdyB0aGF0IGBgTXlQbHVnaW5gYCB3YXMgYWRkZWQgYW5kIGl0cwotaG9vayB3YXMgaW52
b2tlZDo6Citob29rIHdhcyBpbnZva2VkOgorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CiAKICAg
ICAkIHB5dGhvbiBteWludm9rZS5weQotICAgIC4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXSoqKiB0ZXN0IHJ1
biByZXBvcnRpbmcgZmluaXNoaW5nCisgICAgLkZFc3hYLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdKioqIHRlc3QgcnVu
IHJlcG9ydGluZyBmaW5pc2hpbmcKKworICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gRVJST1JTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19f
X19fX19fX19fX19fX19fX19fXyBFUlJPUiBhdCBzZXR1cCBvZiB0ZXN0X2Vycm9yIF9fX19fX19f
X19fX19fX19fX19fX19fCisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBl
cnJvcl9maXh0dXJlKCk6CisgICAgPiAgICAgICBhc3NlcnQgMAorICAgIEUgICAgICAgYXNzZXJ0
IDAKKworICAgIHRlc3RfZXhhbXBsZS5weTo2OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2Zh
aWwgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisKKyAgICAgICAgZGVmIHRlc3Rf
ZmFpbCgpOgorICAgID4gICAgICAgYXNzZXJ0IDAKKyAgICBFICAgICAgIGFzc2VydCAwCiAKKyAg
ICB0ZXN0X2V4YW1wbGUucHk6MTQ6IEFzc2VydGlvbkVycm9yCiAKIC4uIG5vdGU6OgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdzNjLWltcG9ydC5sb2cKaW5kZXggZTdmMWY1N2E0ODdmM2QyZDc5OGNmMGQ0ZWZiM2Y3
ODQxNjZlYWZlOS4uZjc3M2FlMzhkYjRhYjk4MWM2OTllNGFmMTBlNzM2N2Y4NjAzMzBmNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi93M2MtaW1wb3J0LmxvZwpAQCAtMjksMTEgKzI5LDEzIEBAIExpc3Qgb2YgZmls
ZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRlbnRzLnJzdAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9jb250cmlidXRpbmcucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2N1c3RvbWl6ZS5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZGVwcmVjYXRpb25zLnJzdAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9k
ZXZlbG9wbWVudF9ndWlkZS5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZG9jdGVzdC5yc3QKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhpc3Rpbmd0ZXN0c3VpdGUucnN0CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2ZhcS5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZml4dHVyZS5yc3QKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZmxha3kucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Z1bmNhcmdfY29tcGFyZS5y
c3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVuY2FyZ3MucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2dldHRpbmctc3RhcnRlZC5yc3QKQEAgLTUwLDYgKzUyLDcgQEAgTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vcGFyYW1ldHJpemUucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Bs
dWdpbnMucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Byb2plY3RzLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9weTI3LXB5MzQtZGVwcmVjYXRpb24ucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3B5
dGVzdC5pbmkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHl0aG9ucGF0aC5yc3QKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vcmVjd2Fybi5yc3QKQEAgLTU3LDYgKzYwLDcgQEAgTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vcmVxdWlyZW1lbnRzLnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9z
a2lwcGluZy5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGFsa3MucnN0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3RpZGVsaWZ0LnJzdAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90bXBkaXIucnN0CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3VuaXR0ZXN0LnJzdAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi91c2FnZS5y
c3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93YXJuaW5ncy5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vd2FybmluZ3MucnN0CmluZGV4IGRmOTNhMDJiNTQwYWQwZWFiMWQ3MzFjYTc4
MjQzNWRiNTMwNDkzODIuLjhmOGQ2ZjNlMWM2MzNkNmRhMDczMzIzOTI1OTg2YjgwMGUzMzZmZjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93YXJuaW5ncy5yc3QKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3dhcm5pbmdzLnJzdApAQCAtMyw0MyArMyw1MCBAQAogV2FybmluZ3MgQ2Fw
dHVyZQogPT09PT09PT09PT09PT09PQogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKKwogCiBTdGFy
dGluZyBmcm9tIHZlcnNpb24gYGAzLjFgYCwgcHl0ZXN0IG5vdyBhdXRvbWF0aWNhbGx5IGNhdGNo
ZXMgd2FybmluZ3MgZHVyaW5nIHRlc3QgZXhlY3V0aW9uCi1hbmQgZGlzcGxheXMgdGhlbSBhdCB0
aGUgZW5kIG9mIHRoZSBzZXNzaW9uOjoKK2FuZCBkaXNwbGF5cyB0aGVtIGF0IHRoZSBlbmQgb2Yg
dGhlIHNlc3Npb246CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAgICMgY29udGVudCBv
ZiB0ZXN0X3Nob3dfd2FybmluZ3MucHkKICAgICBpbXBvcnQgd2FybmluZ3MKIAorCiAgICAgZGVm
IGFwaV92MSgpOgogICAgICAgICB3YXJuaW5ncy53YXJuKFVzZXJXYXJuaW5nKCJhcGkgdjEsIHNo
b3VsZCB1c2UgZnVuY3Rpb25zIGZyb20gdjIiKSkKICAgICAgICAgcmV0dXJuIDEKIAorCiAgICAg
ZGVmIHRlc3Rfb25lKCk6CiAgICAgICAgIGFzc2VydCBhcGlfdjEoKSA9PSAxCiAKLVJ1bm5pbmcg
cHl0ZXN0IG5vdyBwcm9kdWNlcyB0aGlzIG91dHB1dDo6CitSdW5uaW5nIHB5dGVzdCBub3cgcHJv
ZHVjZXMgdGhpcyBvdXRwdXQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0
ZXN0IHRlc3Rfc2hvd193YXJuaW5ncy5weQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09
PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBw
bGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBs
dWdneS0wLngueQotICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAg
cGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtNC54LnksIHB5LTEueC55LCBw
bHVnZ3ktMC54LnkKKyAgICBjYWNoZWRpcjogJFBZVEhPTl9QUkVGSVgvLnB5dGVzdF9jYWNoZQor
ICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIKICAgICBjb2xsZWN0ZWQgMSBpdGVtCiAKICAg
ICB0ZXN0X3Nob3dfd2FybmluZ3MucHkgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbMTAwJV0KIAogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
IHdhcm5pbmdzIHN1bW1hcnkgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICB0ZXN0
X3Nob3dfd2FybmluZ3MucHk6OnRlc3Rfb25lCi0gICAgICAkUkVHRU5ET0NfVE1QRElSL3Rlc3Rf
c2hvd193YXJuaW5ncy5weTo0OiBVc2VyV2FybmluZzogYXBpIHYxLCBzaG91bGQgdXNlIGZ1bmN0
aW9ucyBmcm9tIHYyCisgICAgICAkUkVHRU5ET0NfVE1QRElSL3Rlc3Rfc2hvd193YXJuaW5ncy5w
eTo1OiBVc2VyV2FybmluZzogYXBpIHYxLCBzaG91bGQgdXNlIGZ1bmN0aW9ucyBmcm9tIHYyCiAg
ICAgICAgIHdhcm5pbmdzLndhcm4oVXNlcldhcm5pbmcoImFwaSB2MSwgc2hvdWxkIHVzZSBmdW5j
dGlvbnMgZnJvbSB2MiIpKQogCi0gICAgLS0gRG9jczogaHR0cDovL2RvYy5weXRlc3Qub3JnL2Vu
L2xhdGVzdC93YXJuaW5ncy5odG1sCisgICAgLS0gRG9jczogaHR0cHM6Ly9kb2NzLnB5dGVzdC5v
cmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwKICAgICA9PT09PT09PT09PT09PT09PT09IDEgcGFz
c2VkLCAxIHdhcm5pbmdzIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09CiAKLVB5
dGVzdCBieSBkZWZhdWx0IGNhdGNoZXMgYWxsIHdhcm5pbmdzIGV4Y2VwdCBmb3IgYGBEZXByZWNh
dGlvbldhcm5pbmdgYCBhbmQgYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGAuCi0KIFRoZSBg
YC1XYGAgZmxhZyBjYW4gYmUgcGFzc2VkIHRvIGNvbnRyb2wgd2hpY2ggd2FybmluZ3Mgd2lsbCBi
ZSBkaXNwbGF5ZWQgb3IgZXZlbiB0dXJuCi10aGVtIGludG8gZXJyb3JzOjoKK3RoZW0gaW50byBl
cnJvcnM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRlc3QKIAogICAgICQgcHl0ZXN0IC1xIHRlc3Rf
c2hvd193YXJuaW5ncy5weSAtVyBlcnJvcjo6VXNlcldhcm5pbmcKICAgICBGICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
MTAwJV0KQEAgLTQ5LDE0ICs1NiwxNCBAQCB0aGVtIGludG8gZXJyb3JzOjoKICAgICAgICAgZGVm
IHRlc3Rfb25lKCk6CiAgICAgPiAgICAgICBhc3NlcnQgYXBpX3YxKCkgPT0gMQogCi0gICAgdGVz
dF9zaG93X3dhcm5pbmdzLnB5Ojg6CisgICAgdGVzdF9zaG93X3dhcm5pbmdzLnB5OjEwOgogICAg
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXwogCiAgICAgICAgIGRlZiBhcGlfdjEoKToKICAgICA+ICAgICAg
IHdhcm5pbmdzLndhcm4oVXNlcldhcm5pbmcoImFwaSB2MSwgc2hvdWxkIHVzZSBmdW5jdGlvbnMg
ZnJvbSB2MiIpKQogICAgIEUgICAgICAgVXNlcldhcm5pbmc6IGFwaSB2MSwgc2hvdWxkIHVzZSBm
dW5jdGlvbnMgZnJvbSB2MgogCi0gICAgdGVzdF9zaG93X3dhcm5pbmdzLnB5OjQ6IFVzZXJXYXJu
aW5nCisgICAgdGVzdF9zaG93X3dhcm5pbmdzLnB5OjU6IFVzZXJXYXJuaW5nCiAgICAgMSBmYWls
ZWQgaW4gMC4xMiBzZWNvbmRzCiAKIFRoZSBzYW1lIG9wdGlvbiBjYW4gYmUgc2V0IGluIHRoZSBg
YHB5dGVzdC5pbmlgYCBmaWxlIHVzaW5nIHRoZSBgYGZpbHRlcndhcm5pbmdzYGAgaW5pIG9wdGlv
bi4KQEAgLTc4LDEzICs4NSwxMiBAQCBCb3RoIGBgLVdgYCBjb21tYW5kLWxpbmUgb3B0aW9uIGFu
ZCBgYGZpbHRlcndhcm5pbmdzYGAgaW5pIG9wdGlvbiBhcmUgYmFzZWQgb24gUAogYC1XIG9wdGlv
bmBfIGFuZCBgd2FybmluZ3Muc2ltcGxlZmlsdGVyYF8sIHNvIHBsZWFzZSByZWZlciB0byB0aG9z
ZSBzZWN0aW9ucyBpbiB0aGUgUHl0aG9uCiBkb2N1bWVudGF0aW9uIGZvciBvdGhlciBleGFtcGxl
cyBhbmQgYWR2YW5jZWQgdXNhZ2UuCiAKLQogLi4gX2BmaWx0ZXJ3YXJuaW5nc2A6CiAKIGBgQHB5
dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzYGAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAotLi4gdmVyc2lvbmFkZGVkOjogMy4yCisKIAogWW91IGNhbiB1c2UgdGhlIGBgQHB5dGVz
dC5tYXJrLmZpbHRlcndhcm5pbmdzYGAgdG8gYWRkIHdhcm5pbmcgZmlsdGVycyB0byBzcGVjaWZp
YyB0ZXN0IGl0ZW1zLAogYWxsb3dpbmcgeW91IHRvIGhhdmUgZmluZXIgY29udHJvbCBvZiB3aGlj
aCB3YXJuaW5ncyBzaG91bGQgYmUgY2FwdHVyZWQgYXQgdGVzdCwgY2xhc3Mgb3IKQEAgLTExNywy
NCArMTIzLDYgQEAgZGVjb3JhdG9yIG9yIHRvIGFsbCB0ZXN0cyBpbiBhIG1vZHVsZSBieSBzZXR0
aW5nIHRoZSBgYHB5dGVzdG1hcmtgYCB2YXJpYWJsZToKICAgICBweXRlc3RtYXJrID0gcHl0ZXN0
Lm1hcmsuZmlsdGVyd2FybmluZ3MoImVycm9yIikKIAogCi0uLiBub3RlOjoKLQotICAgIEV4Y2Vw
dCBmb3IgdGhlc2UgZmVhdHVyZXMsIHB5dGVzdCBkb2VzIG5vdCBjaGFuZ2UgdGhlIHB5dGhvbiB3
YXJuaW5nIGZpbHRlcjsgaXQgb25seSBjYXB0dXJlcwotICAgIGFuZCBkaXNwbGF5cyB0aGUgd2Fy
bmluZ3Mgd2hpY2ggYXJlIGlzc3VlZCB3aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnRseSBjb25m
aWd1cmVkIGZpbHRlciwKLSAgICBpbmNsdWRpbmcgY2hhbmdlcyB0byB0aGUgZmlsdGVyIG1hZGUg
YnkgdGVzdCBmdW5jdGlvbnMgb3IgYnkgdGhlIHN5c3RlbSB1bmRlciB0ZXN0LgotCi0uLiBub3Rl
OjoKLQotICAgIGBgRGVwcmVjYXRpb25XYXJuaW5nYGAgYW5kIGBgUGVuZGluZ0RlcHJlY2F0aW9u
V2FybmluZ2BgIGFyZSBoaWRkZW4gYnkgdGhlIHN0YW5kYXJkIGxpYnJhcnkKLSAgICBieSBkZWZh
dWx0IHNvIHlvdSBoYXZlIHRvIGV4cGxpY2l0bHkgY29uZmlndXJlIHRoZW0gdG8gYmUgZGlzcGxh
eWVkIGluIHlvdXIgYGBweXRlc3QuaW5pYGA6Ci0KLSAgICAuLiBjb2RlLWJsb2NrOjogaW5pCi0K
LSAgICAgICAgW3B5dGVzdF0KLSAgICAgICAgZmlsdGVyd2FybmluZ3MgPQotICAgICAgICAgICAg
b25jZTo6RGVwcmVjYXRpb25XYXJuaW5nCi0gICAgICAgICAgICBvbmNlOjpQZW5kaW5nRGVwcmVj
YXRpb25XYXJuaW5nCi0KIAogKkNyZWRpdHMgZ28gdG8gRmxvcmlhbiBTY2h1bHplIGZvciB0aGUg
cmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGluIHRoZSogYHB5dGVzdC13YXJuaW5nc2BfCiAqcGx1
Z2luLioKQEAgLTE0MywxOCArMTMxLDExMCBAQCBkZWNvcmF0b3Igb3IgdG8gYWxsIHRlc3RzIGlu
IGEgbW9kdWxlIGJ5IHNldHRpbmcgdGhlIGBgcHl0ZXN0bWFya2BgIHZhcmlhYmxlOgogLi4gX3dh
cm5pbmdzLnNpbXBsZWZpbHRlcjogaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L3dh
cm5pbmdzLmh0bWwjd2FybmluZ3Muc2ltcGxlZmlsdGVyCiAuLiBfYHB5dGVzdC13YXJuaW5nc2A6
IGh0dHBzOi8vZ2l0aHViLmNvbS9mc2NodWx6ZS9weXRlc3Qtd2FybmluZ3MKIAorRGlzYWJsaW5n
IHdhcm5pbmdzIHN1bW1hcnkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0FsdGhvdWdo
IG5vdCByZWNvbW1lbmRlZCwgeW91IGNhbiB1c2UgdGhlIGBgLS1kaXNhYmxlLXdhcm5pbmdzYGAg
Y29tbWFuZC1saW5lIG9wdGlvbiB0byBzdXBwcmVzcyB0aGUKK3dhcm5pbmcgc3VtbWFyeSBlbnRp
cmVseSBmcm9tIHRoZSB0ZXN0IHJ1biBvdXRwdXQuCiAKLURpc2FibGluZyB3YXJuaW5nIGNhcHR1
cmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0Rpc2FibGluZyB3YXJuaW5nIGNhcHR1cmUg
ZW50aXJlbHkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotVGhpcyBmZWF0
dXJlIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBidXQgY2FuIGJlIGRpc2FibGVkIGVudGlyZWx5IGlu
IHlvdXIgYGBweXRlc3QuaW5pYGAgZmlsZSB3aXRoOgorVGhpcyBwbHVnaW4gaXMgZW5hYmxlZCBi
eSBkZWZhdWx0IGJ1dCBjYW4gYmUgZGlzYWJsZWQgZW50aXJlbHkgaW4geW91ciBgYHB5dGVzdC5p
bmlgYCBmaWxlIHdpdGg6CiAKICAgICAuLiBjb2RlLWJsb2NrOjogaW5pCiAKICAgICAgICAgW3B5
dGVzdF0KICAgICAgICAgYWRkb3B0cyA9IC1wIG5vOndhcm5pbmdzCiAKLU9yIHBhc3NpbmcgYGAt
cCBubzp3YXJuaW5nc2BgIGluIHRoZSBjb21tYW5kLWxpbmUuCitPciBwYXNzaW5nIGBgLXAgbm86
d2FybmluZ3NgYCBpbiB0aGUgY29tbWFuZC1saW5lLiBUaGlzIG1pZ2h0IGJlIHVzZWZ1bCBpZiB5
b3VyIHRlc3Qgc3VpdGVzIGhhbmRsZXMgd2FybmluZ3MKK3VzaW5nIGFuIGV4dGVybmFsIHN5c3Rl
bS4KKworCisuLiBfYGRlcHJlY2F0aW9uLXdhcm5pbmdzYDoKKworRGVwcmVjYXRpb25XYXJuaW5n
IGFuZCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisKKworQnkgZGVmYXVsdCBweXRlc3Qgd2lsbCBk
aXNwbGF5IGBgRGVwcmVjYXRpb25XYXJuaW5nYGAgYW5kIGBgUGVuZGluZ0RlcHJlY2F0aW9uV2Fy
bmluZ2BgIHdhcm5pbmdzIGZyb20KK3VzZXIgY29kZSBhbmQgdGhpcmQtcGFydHkgbGlicmFyaWVz
LCBhcyByZWNvbW1lbmRlZCBieSBgUEVQLTA1NjUgPGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2
L3BlcHMvcGVwLTA1NjU+YF8uCitUaGlzIGhlbHBzIHVzZXJzIGtlZXAgdGhlaXIgY29kZSBtb2Rl
cm4gYW5kIGF2b2lkIGJyZWFrYWdlcyB3aGVuIGRlcHJlY2F0ZWQgd2FybmluZ3MgYXJlIGVmZmVj
dGl2ZWx5IHJlbW92ZWQuCisKK1NvbWV0aW1lcyBpdCBpcyB1c2VmdWwgdG8gaGlkZSBzb21lIHNw
ZWNpZmljIGRlcHJlY2F0aW9uIHdhcm5pbmdzIHRoYXQgaGFwcGVuIGluIGNvZGUgdGhhdCB5b3Ug
aGF2ZSBubyBjb250cm9sIG92ZXIKKyhzdWNoIGFzIHRoaXJkLXBhcnR5IGxpYnJhcmllcyksIGlu
IHdoaWNoIGNhc2UgeW91IG1pZ2h0IHVzZSB0aGUgd2FybmluZyBmaWx0ZXJzIG9wdGlvbnMgKGlu
aSBvciBtYXJrcykgdG8gaWdub3JlCit0aG9zZSB3YXJuaW5ncy4KKworRm9yIGV4YW1wbGU6CisK
Ky4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgIFtweXRlc3RdCisgICAgZmlsdGVyd2FybmluZ3Mg
PQorICAgICAgICBpZ25vcmU6LipVLiptb2RlIGlzIGRlcHJlY2F0ZWQ6RGVwcmVjYXRpb25XYXJu
aW5nCisKKworVGhpcyB3aWxsIGlnbm9yZSBhbGwgd2FybmluZ3Mgb2YgdHlwZSBgYERlcHJlY2F0
aW9uV2FybmluZ2BgIHdoZXJlIHRoZSBzdGFydCBvZiB0aGUgbWVzc2FnZSBtYXRjaGVzCit0aGUg
cmVndWxhciBleHByZXNzaW9uIGBgIi4qVS4qbW9kZSBpcyBkZXByZWNhdGVkImBgLgorCisuLiBu
b3RlOjoKKyAgICBJZiB3YXJuaW5ncyBhcmUgY29uZmlndXJlZCBhdCB0aGUgaW50ZXJwcmV0ZXIg
bGV2ZWwsIHVzaW5nCisgICAgdGhlIGBQWVRIT05XQVJOSU5HUyA8aHR0cHM6Ly9kb2NzLnB5dGhv
bi5vcmcvMy91c2luZy9jbWRsaW5lLmh0bWwjZW52dmFyLVBZVEhPTldBUk5JTkdTPmBfIGVudmly
b25tZW50IHZhcmlhYmxlIG9yIHRoZQorICAgIGBgLVdgYCBjb21tYW5kLWxpbmUgb3B0aW9uLCBw
eXRlc3Qgd2lsbCBub3QgY29uZmlndXJlIGFueSBmaWx0ZXJzIGJ5IGRlZmF1bHQuCisKKyAgICBB
bHNvIHB5dGVzdCBkb2Vzbid0IGZvbGxvdyBgYFBFUC0wNTA2YGAgc3VnZ2VzdGlvbiBvZiByZXNl
dHRpbmcgYWxsIHdhcm5pbmcgZmlsdGVycyBiZWNhdXNlCisgICAgaXQgbWlnaHQgYnJlYWsgdGVz
dCBzdWl0ZXMgdGhhdCBjb25maWd1cmUgd2FybmluZyBmaWx0ZXJzIHRoZW1zZWx2ZXMKKyAgICBi
eSBjYWxsaW5nIGBgd2FybmluZ3Muc2ltcGxlZmlsdGVyYGAgKHNlZSBpc3N1ZSBgIzI0MzAgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjQzMD5gXworICAgIGZv
ciBhbiBleGFtcGxlIG9mIHRoYXQpLgorCisKKy4uIF9gZW5zdXJpbmcgYSBmdW5jdGlvbiB0cmln
Z2VycyBhIGRlcHJlY2F0aW9uIHdhcm5pbmdgOgorCisuLiBfZW5zdXJpbmdfZnVuY3Rpb25fdHJp
Z2dlcnM6CisKK0Vuc3VyaW5nIGNvZGUgdHJpZ2dlcnMgYSBkZXByZWNhdGlvbiB3YXJuaW5nCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIGFs
c28gY2FsbCBhIGdsb2JhbCBoZWxwZXIgZm9yIGNoZWNraW5nCit0aGF0IGEgY2VydGFpbiBmdW5j
dGlvbiBjYWxsIHRyaWdnZXJzIGEgYGBEZXByZWNhdGlvbldhcm5pbmdgYCBvcgorYGBQZW5kaW5n
RGVwcmVjYXRpb25XYXJuaW5nYGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGlt
cG9ydCBweXRlc3QKKworCisgICAgZGVmIHRlc3RfZ2xvYmFsKCk6CisgICAgICAgIHB5dGVzdC5k
ZXByZWNhdGVkX2NhbGwobXlmdW5jdGlvbiwgMTcpCisKK0J5IGRlZmF1bHQsIGBgRGVwcmVjYXRp
b25XYXJuaW5nYGAgYW5kIGBgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZ2BgIHdpbGwgbm90IGJl
CitjYXVnaHQgd2hlbiB1c2luZyBgYHB5dGVzdC53YXJuc2BgIG9yIGBgcmVjd2FybmBgIGJlY2F1
c2UgZGVmYXVsdCBQeXRob24gd2FybmluZ3MgZmlsdGVycyBoaWRlCit0aGVtLiBJZiB5b3Ugd2lz
aCB0byByZWNvcmQgdGhlbSBpbiB5b3VyIG93biBjb2RlLCB1c2UgdGhlCitjb21tYW5kIGBgd2Fy
bmluZ3Muc2ltcGxlZmlsdGVyKCdhbHdheXMnKWBgOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9u
CisKKyAgICBpbXBvcnQgd2FybmluZ3MKKyAgICBpbXBvcnQgcHl0ZXN0CisKKworICAgIGRlZiB0
ZXN0X2RlcHJlY2F0aW9uKHJlY3dhcm4pOgorICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIo
ImFsd2F5cyIpCisgICAgICAgIHdhcm5pbmdzLndhcm4oImRlcHJlY2F0ZWQiLCBEZXByZWNhdGlv
bldhcm5pbmcpCisgICAgICAgIGFzc2VydCBsZW4ocmVjd2FybikgPT0gMQorICAgICAgICBhc3Nl
cnQgcmVjd2Fybi5wb3AoRGVwcmVjYXRpb25XYXJuaW5nKQorCitZb3UgY2FuIGFsc28gdXNlIGl0
IGFzIGEgY29udGV4dG1hbmFnZXI6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGRl
ZiB0ZXN0X2dsb2JhbCgpOgorICAgICAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToK
KyAgICAgICAgICAgIG15b2JqZWN0LmRlcHJlY2F0ZWRfbWV0aG9kKCkKKworCiAKIC4uIF9gYXNz
ZXJ0aW5nIHdhcm5pbmdzYDoKIApAQCAtMTY1LDE2ICsyNDUsMTkgQEAgT3IgcGFzc2luZyBgYC1w
IG5vOndhcm5pbmdzYGAgaW4gdGhlIGNvbW1hbmQtbGluZS4KIC4uIF93YXJuczoKIAogQXNzZXJ0
aW5nIHdhcm5pbmdzIHdpdGggdGhlIHdhcm5zIGZ1bmN0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKIAotLi4gdmVyc2lvbmFkZGVkOjogMi44CiAKIFlvdSBjYW4gY2hl
Y2sgdGhhdCBjb2RlIHJhaXNlcyBhIHBhcnRpY3VsYXIgd2FybmluZyB1c2luZyBgYHB5dGVzdC53
YXJuc2BgLAotd2hpY2ggd29ya3MgaW4gYSBzaW1pbGFyIG1hbm5lciB0byA6cmVmOmByYWlzZXMg
PGFzc2VydHJhaXNlcz5gOjoKK3doaWNoIHdvcmtzIGluIGEgc2ltaWxhciBtYW5uZXIgdG8gOnJl
ZjpgcmFpc2VzIDxhc3NlcnRyYWlzZXM+YDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCiAg
ICAgaW1wb3J0IHdhcm5pbmdzCiAgICAgaW1wb3J0IHB5dGVzdAogCisKICAgICBkZWYgdGVzdF93
YXJuaW5nKCk6CiAgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKFVzZXJXYXJuaW5nKToKICAgICAg
ICAgICAgIHdhcm5pbmdzLndhcm4oIm15IHdhcm5pbmciLCBVc2VyV2FybmluZykKQEAgLTIwMSw3
ICsyODQsOSBAQCBZb3UgY2FuIGFsc28gY2FsbCBgYHB5dGVzdC53YXJuc2BgIG9uIGEgZnVuY3Rp
b24gb3IgY29kZSBzdHJpbmc6OgogCiBUaGUgZnVuY3Rpb24gYWxzbyByZXR1cm5zIGEgbGlzdCBv
ZiBhbGwgcmFpc2VkIHdhcm5pbmdzIChhcwogYGB3YXJuaW5ncy5XYXJuaW5nTWVzc2FnZWBgIG9i
amVjdHMpLCB3aGljaCB5b3UgY2FuIHF1ZXJ5IGZvcgotYWRkaXRpb25hbCBpbmZvcm1hdGlvbjo6
CithZGRpdGlvbmFsIGluZm9ybWF0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKICAg
ICB3aXRoIHB5dGVzdC53YXJucyhSdW50aW1lV2FybmluZykgYXMgcmVjb3JkOgogICAgICAgICB3
YXJuaW5ncy53YXJuKCJhbm90aGVyIHdhcm5pbmciLCBSdW50aW1lV2FybmluZykKQEAgLTIyMywx
MyArMzA4LDE1IEBAIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gZXhhbWluZSByYWlzZWQgd2Fybmlu
Z3MgaW4gZGV0YWlsIHVzaW5nIHRoZQogLi4gX3JlY3dhcm46CiAKIFJlY29yZGluZyB3YXJuaW5n
cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLS0tLS0tLS0tLS0tLS0tLS0KIAogWW91IGNh
biByZWNvcmQgcmFpc2VkIHdhcm5pbmdzIGVpdGhlciB1c2luZyBgYHB5dGVzdC53YXJuc2BgIG9y
IHdpdGgKIHRoZSBgYHJlY3dhcm5gYCBmaXh0dXJlLgogCiBUbyByZWNvcmQgd2l0aCBgYHB5dGVz
dC53YXJuc2BgIHdpdGhvdXQgYXNzZXJ0aW5nIGFueXRoaW5nIGFib3V0IHRoZSB3YXJuaW5ncywK
LXBhc3MgYGBOb25lYGAgYXMgdGhlIGV4cGVjdGVkIHdhcm5pbmcgdHlwZTo6CitwYXNzIGBgTm9u
ZWBgIGFzIHRoZSBleHBlY3RlZCB3YXJuaW5nIHR5cGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRo
b24KIAogICAgIHdpdGggcHl0ZXN0Lndhcm5zKE5vbmUpIGFzIHJlY29yZDoKICAgICAgICAgd2Fy
bmluZ3Mud2FybigidXNlciIsIFVzZXJXYXJuaW5nKQpAQCAtMjM5LDEwICszMjYsMTMgQEAgcGFz
cyBgYE5vbmVgYCBhcyB0aGUgZXhwZWN0ZWQgd2FybmluZyB0eXBlOjoKICAgICBhc3NlcnQgc3Ry
KHJlY29yZFswXS5tZXNzYWdlKSA9PSAidXNlciIKICAgICBhc3NlcnQgc3RyKHJlY29yZFsxXS5t
ZXNzYWdlKSA9PSAicnVudGltZSIKIAotVGhlIGBgcmVjd2FybmBgIGZpeHR1cmUgd2lsbCByZWNv
cmQgd2FybmluZ3MgZm9yIHRoZSB3aG9sZSBmdW5jdGlvbjo6CitUaGUgYGByZWN3YXJuYGAgZml4
dHVyZSB3aWxsIHJlY29yZCB3YXJuaW5ncyBmb3IgdGhlIHdob2xlIGZ1bmN0aW9uOgorCisuLiBj
b2RlLWJsb2NrOjogcHl0aG9uCiAKICAgICBpbXBvcnQgd2FybmluZ3MKIAorCiAgICAgZGVmIHRl
c3RfaGVsbG8ocmVjd2Fybik6CiAgICAgICAgIHdhcm5pbmdzLndhcm4oImhlbGxvIiwgVXNlcldh
cm5pbmcpCiAgICAgICAgIGFzc2VydCBsZW4ocmVjd2FybikgPT0gMQpAQCAtMjYxLDM4ICszNTEs
ODQgQEAgd2FybmluZ3MsIG9yIGluZGV4IGludG8gaXQgdG8gZ2V0IGEgcGFydGljdWxhciByZWNv
cmRlZCB3YXJuaW5nLgogCiBGdWxsIEFQSTogOmNsYXNzOmBXYXJuaW5nc1JlY29yZGVyYC4KIAot
Li4gX2BlbnN1cmluZyBhIGZ1bmN0aW9uIHRyaWdnZXJzIGEgZGVwcmVjYXRpb24gd2FybmluZ2A6
CisuLiBfY3VzdG9tX2ZhaWx1cmVfbWVzc2FnZXM6CiAKLS4uIF9lbnN1cmluZ19mdW5jdGlvbl90
cmlnZ2VyczoKK0N1c3RvbSBmYWlsdXJlIG1lc3NhZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCi1FbnN1cmluZyBhIGZ1bmN0aW9uIHRyaWdnZXJzIGEgZGVwcmVjYXRpb24gd2FybmluZwot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
UmVjb3JkaW5nIHdhcm5pbmdzIHByb3ZpZGVzIGFuIG9wcG9ydHVuaXR5IHRvIHByb2R1Y2UgY3Vz
dG9tIHRlc3QKK2ZhaWx1cmUgbWVzc2FnZXMgZm9yIHdoZW4gbm8gd2FybmluZ3MgYXJlIGlzc3Vl
ZCBvciBvdGhlciBjb25kaXRpb25zCithcmUgbWV0LgogCi1Zb3UgY2FuIGFsc28gY2FsbCBhIGds
b2JhbCBoZWxwZXIgZm9yIGNoZWNraW5nCi10aGF0IGEgY2VydGFpbiBmdW5jdGlvbiBjYWxsIHRy
aWdnZXJzIGEgYGBEZXByZWNhdGlvbldhcm5pbmdgYCBvcgotYGBQZW5kaW5nRGVwcmVjYXRpb25X
YXJuaW5nYGA6OgorLi4gY29kZS1ibG9jazo6IHB5dGhvbgogCi0gICAgaW1wb3J0IHB5dGVzdAor
ICAgIGRlZiB0ZXN0KCk6CisgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKFdhcm5pbmcpIGFzIHJl
Y29yZDoKKyAgICAgICAgICAgIGYoKQorICAgICAgICAgICAgaWYgbm90IHJlY29yZDoKKyAgICAg
ICAgICAgICAgICBweXRlc3QuZmFpbCgiRXhwZWN0ZWQgYSB3YXJuaW5nISIpCiAKLSAgICBkZWYg
dGVzdF9nbG9iYWwoKToKLSAgICAgICAgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbChteWZ1bmN0aW9u
LCAxNykKK0lmIG5vIHdhcm5pbmdzIGFyZSBpc3N1ZWQgd2hlbiBjYWxsaW5nIGBgZmBgLCB0aGVu
IGBgbm90IHJlY29yZGBgIHdpbGwKK2V2YWx1YXRlIHRvIGBgVHJ1ZWBgLiAgWW91IGNhbiB0aGVu
IGNhbGwgYGBweXRlc3QuZmFpbGBgIHdpdGggYQorY3VzdG9tIGVycm9yIG1lc3NhZ2UuCiAKLUJ5
IGRlZmF1bHQsIGBgRGVwcmVjYXRpb25XYXJuaW5nYGAgYW5kIGBgUGVuZGluZ0RlcHJlY2F0aW9u
V2FybmluZ2BgIHdpbGwgbm90IGJlCi1jYXVnaHQgd2hlbiB1c2luZyBgYHB5dGVzdC53YXJuc2Bg
IG9yIGBgcmVjd2FybmBgIGJlY2F1c2UgZGVmYXVsdCBQeXRob24gd2FybmluZ3MgZmlsdGVycyBo
aWRlCi10aGVtLiBJZiB5b3Ugd2lzaCB0byByZWNvcmQgdGhlbSBpbiB5b3VyIG93biBjb2RlLCB1
c2UgdGhlCi1jb21tYW5kIGBgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdhbHdheXMnKWBgOjoKKy4u
IF9pbnRlcm5hbC13YXJuaW5nczoKIAotICAgIGltcG9ydCB3YXJuaW5ncwotICAgIGltcG9ydCBw
eXRlc3QKK0ludGVybmFsIHB5dGVzdCB3YXJuaW5ncworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLSAgICBkZWYgdGVzdF9kZXByZWNhdGlvbihyZWN3YXJuKToKLSAgICAgICAgd2FybmluZ3Mu
c2ltcGxlZmlsdGVyKCdhbHdheXMnKQotICAgICAgICB3YXJuaW5ncy53YXJuKCJkZXByZWNhdGVk
IiwgRGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICBhc3NlcnQgbGVuKHJlY3dhcm4pID09IDEK
LSAgICAgICAgYXNzZXJ0IHJlY3dhcm4ucG9wKERlcHJlY2F0aW9uV2FybmluZykKIAotWW91IGNh
biBhbHNvIHVzZSBpdCBhcyBhIGNvbnRleHRtYW5hZ2VyOjoKIAotICAgIGRlZiB0ZXN0X2dsb2Jh
bCgpOgotICAgICAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToKLSAgICAgICAgICAg
IG15b2JqZWN0LmRlcHJlY2F0ZWRfbWV0aG9kKCkKK3B5dGVzdCBtYXkgZ2VuZXJhdGUgaXRzIG93
biB3YXJuaW5ncyBpbiBzb21lIHNpdHVhdGlvbnMsIHN1Y2ggYXMgaW1wcm9wZXIgdXNhZ2Ugb3Ig
ZGVwcmVjYXRlZCBmZWF0dXJlcy4KKworRm9yIGV4YW1wbGUsIHB5dGVzdCB3aWxsIGVtaXQgYSB3
YXJuaW5nIGlmIGl0IGVuY291bnRlcnMgYSBjbGFzcyB0aGF0IG1hdGNoZXMgOmNvbmZ2YWw6YHB5
dGhvbl9jbGFzc2VzYCBidXQgYWxzbworZGVmaW5lcyBhbiBgYF9faW5pdF9fYGAgY29uc3RydWN0
b3IsIGFzIHRoaXMgcHJldmVudHMgdGhlIGNsYXNzIGZyb20gYmVpbmcgaW5zdGFudGlhdGVkOgor
CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9weXRlc3Rf
d2FybmluZ3MucHkKKyAgICBjbGFzcyBUZXN0OgorICAgICAgICBkZWYgX19pbml0X18oc2VsZik6
CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgICAg
ICAgICAgYXNzZXJ0IDEgPT0gMQorCisuLiBjb2RlLWJsb2NrOjogcHl0ZXN0CisKKyAgICAkIHB5
dGVzdCB0ZXN0X3B5dGVzdF93YXJuaW5ncy5weSAtcQorCisgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gd2FybmluZ3Mgc3VtbWFyeSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgIHRlc3RfcHl0ZXN0X3dhcm5pbmdzLnB5OjEKKyAgICAgICRSRUdFTkRPQ19UTVBESVIv
dGVzdF9weXRlc3Rfd2FybmluZ3MucHk6MTogUHl0ZXN0Q29sbGVjdGlvbldhcm5pbmc6IGNhbm5v
dCBjb2xsZWN0IHRlc3QgY2xhc3MgJ1Rlc3QnIGJlY2F1c2UgaXQgaGFzIGEgX19pbml0X18gY29u
c3RydWN0b3IgKGZyb206IHRlc3RfcHl0ZXN0X3dhcm5pbmdzLnB5KQorICAgICAgICBjbGFzcyBU
ZXN0OgorCisgICAgLS0gRG9jczogaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dh
cm5pbmdzLmh0bWwKKyAgICAxIHdhcm5pbmdzIGluIDAuMTIgc2Vjb25kcworCitUaGVzZSB3YXJu
aW5ncyBtaWdodCBiZSBmaWx0ZXJlZCB1c2luZyB0aGUgc2FtZSBidWlsdGluIG1lY2hhbmlzbXMg
dXNlZCB0byBmaWx0ZXIgb3RoZXIgdHlwZXMgb2Ygd2FybmluZ3MuCisKK1BsZWFzZSByZWFkIG91
ciA6cmVmOmBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eWAgdG8gbGVhcm4gaG93IHdlIHByb2NlZWQg
YWJvdXQgZGVwcmVjYXRpbmcgYW5kIGV2ZW50dWFsbHkgcmVtb3ZpbmcKK2ZlYXR1cmVzLgorCitU
aGUgZm9sbG93aW5nIHdhcm5pbmcgdHlwZXMgYXJlcyB1c2VkIGJ5IHB5dGVzdCBhbmQgYXJlIHBh
cnQgb2YgdGhlIHB1YmxpYyBBUEk6CisKKy4uIGF1dG9jbGFzczo6IHB5dGVzdC5QeXRlc3RXYXJu
aW5nCisKKy4uIGF1dG9jbGFzczo6IHB5dGVzdC5QeXRlc3RBc3NlcnRSZXdyaXRlV2FybmluZwor
CisuLiBhdXRvY2xhc3M6OiBweXRlc3QuUHl0ZXN0Q2FjaGVXYXJuaW5nCisKKy4uIGF1dG9jbGFz
czo6IHB5dGVzdC5QeXRlc3RDb2xsZWN0aW9uV2FybmluZworCisuLiBhdXRvY2xhc3M6OiBweXRl
c3QuUHl0ZXN0Q29uZmlnV2FybmluZworCisuLiBhdXRvY2xhc3M6OiBweXRlc3QuUHl0ZXN0RGVw
cmVjYXRpb25XYXJuaW5nCisKKy4uIGF1dG9jbGFzczo6IHB5dGVzdC5QeXRlc3RFeHBlcmltZW50
YWxBcGlXYXJuaW5nCisKKy4uIGF1dG9jbGFzczo6IHB5dGVzdC5QeXRlc3RVbmhhbmRsZWRDb3Jv
dXRpbmVXYXJuaW5nCisKKy4uIGF1dG9jbGFzczo6IHB5dGVzdC5QeXRlc3RVbmtub3duTWFya1dh
cm5pbmcKKworLi4gYXV0b2NsYXNzOjogcHl0ZXN0LlJlbW92ZWRJblB5dGVzdDRXYXJuaW5nCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vd3JpdGluZ19wbHVnaW5zLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi93cml0aW5nX3BsdWdpbnMucnN0CmluZGV4IDk1YjgxMGJjYjM2ZjQ4NWNj
OGRhNzg3NzQ5NTc2YzdkYTk5MTMwM2EuLjA0ZGM2OGI2NDJkZTJmZTEwMDNlNzBjYjg3YTgyNDg3
YzVmZGE0ODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93cml0aW5nX3BsdWdpbnMu
cnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93cml0aW5nX3BsdWdpbnMucnN0CkBAIC03Myw3
ICs3Myw3IEBAIHN1YiBkaXJlY3RvcnkgYnV0IG5vdCBmb3Igb3RoZXIgZGlyZWN0b3JpZXM6Ogog
ICAgIGEvY29uZnRlc3QucHk6CiAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVt
KToKICAgICAgICAgICAgICMgY2FsbGVkIGZvciBydW5uaW5nIGVhY2ggdGVzdCBpbiAnYScgZGly
ZWN0b3J5Ci0gICAgICAgICAgICBwcmludCAoInNldHRpbmcgdXAiLCBpdGVtKQorICAgICAgICAg
ICAgcHJpbnQoInNldHRpbmcgdXAiLCBpdGVtKQogCiAgICAgYS90ZXN0X3N1Yi5weToKICAgICAg
ICAgZGVmIHRlc3Rfc3ViKCk6CkBAIC0yMjMsNyArMjIzLDYgQEAgaW1wb3J0IGBgaGVscGVyLnB5
YGAgbm9ybWFsbHkuICBUaGUgY29udGVudHMgb2YKICAgIHB5dGVzdC5yZWdpc3Rlcl9hc3NlcnRf
cmV3cml0ZSgicHl0ZXN0X2Zvby5oZWxwZXIiKQogCiAKLQogUmVxdWlyaW5nL0xvYWRpbmcgcGx1
Z2lucyBpbiBhIHRlc3QgbW9kdWxlIG9yIGNvbmZ0ZXN0IGZpbGUKIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTI4Niw2ICsy
ODUsMjYgQEAgdGhlIHBsdWdpbiBtYW5hZ2VyIGxpa2UgdGhpczoKIElmIHlvdSB3YW50IHRvIGxv
b2sgYXQgdGhlIG5hbWVzIG9mIGV4aXN0aW5nIHBsdWdpbnMsIHVzZQogdGhlIGBgLS10cmFjZS1j
b25maWdgYCBvcHRpb24uCiAKKworLi4gX3JlZ2lzdGVyaW5nLW1hcmtlcnM6CisKK1JlZ2lzdGVy
aW5nIGN1c3RvbSBtYXJrZXJzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3Vy
IHBsdWdpbiB1c2VzIGFueSBtYXJrZXJzLCB5b3Ugc2hvdWxkIHJlZ2lzdGVyIHRoZW0gc28gdGhh
dCB0aGV5IGFwcGVhciBpbgorcHl0ZXN0J3MgaGVscCB0ZXh0IGFuZCBkbyBub3QgOnJlZjpgY2F1
c2Ugc3B1cmlvdXMgd2FybmluZ3MgPHVua25vd24tbWFya3M+YC4KK0ZvciBleGFtcGxlLCB0aGUg
Zm9sbG93aW5nIHBsdWdpbiB3b3VsZCByZWdpc3RlciBgYGNvb2xfbWFya2VyYGAgYW5kCitgYG1h
cmtfd2l0aGBgIGZvciBhbGwgdXNlcnM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAg
IGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgICAgIGNvbmZpZy5hZGRpbml2YWx1
ZV9saW5lKCJtYXJrZXJzIiwgImNvb2xfbWFya2VyOiB0aGlzIG9uZSBpcyBmb3IgY29vbCB0ZXN0
cy4iKQorICAgICAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgKKyAgICAgICAgICAgICJtYXJr
ZXJzIiwgIm1hcmtfd2l0aChhcmcsIGFyZzIpOiB0aGlzIG1hcmtlciB0YWtlcyBhcmd1bWVudHMu
IgorICAgICAgICApCisKKwogVGVzdGluZyBwbHVnaW5zCiAtLS0tLS0tLS0tLS0tLS0KIApAQCAt
Mzg2LDExICs0MDUsNTQgQEAgcmV0dXJuIGEgcmVzdWx0IG9iamVjdCwgd2l0aCB3aGljaCB3ZSBj
YW4gYXNzZXJ0IHRoZSB0ZXN0cycgb3V0Y29tZXMuCiAgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0
Y29tZXMocGFzc2VkPTQpCiAKIAorYWRkaXRpb25hbGx5IGl0IGlzIHBvc3NpYmxlIHRvIGNvcHkg
ZXhhbXBsZXMgZm9yIGFuIGV4YW1wbGUgZm9sZGVyIGJlZm9yZSBydW5uaW5nIHB5dGVzdCBvbiBp
dAorCisuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkKKyAg
W3B5dGVzdF0KKyAgcHl0ZXN0ZXJfZXhhbXBsZV9kaXIgPSAuCisKKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfZXhhbXBsZS5weQorCisKKyAgICBkZWYg
dGVzdF9wbHVnaW4odGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCJ0ZXN0
X2V4YW1wbGUucHkiKQorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLWsiLCAidGVzdF9leGFt
cGxlIikKKworCisgICAgZGVmIHRlc3RfZXhhbXBsZSgpOgorICAgICAgICBwYXNzCisKKy4uIGNv
ZGUtYmxvY2s6OiBweXRlc3QKKworICAgICQgcHl0ZXN0CisgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTQueC55LCBweS0x
LngueSwgcGx1Z2d5LTAueC55CisgICAgY2FjaGVkaXI6ICRQWVRIT05fUFJFRklYLy5weXRlc3Rf
Y2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOiBweXRlc3QuaW5p
CisgICAgY29sbGVjdGVkIDIgaXRlbXMKKworICAgIHRlc3RfZXhhbXBsZS5weSAuLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorCisgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gd2FybmluZ3Mgc3VtbWFyeSA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorICAgIHRlc3RfZXhhbXBsZS5weTo6dGVzdF9wbHVnaW4KKyAg
ICAgICRSRUdFTkRPQ19UTVBESVIvdGVzdF9leGFtcGxlLnB5OjQ6IFB5dGVzdEV4cGVyaW1lbnRh
bEFwaVdhcm5pbmc6IHRlc3RkaXIuY29weV9leGFtcGxlIGlzIGFuIGV4cGVyaW1lbnRhbCBhcGkg
dGhhdCBtYXkgY2hhbmdlIG92ZXIgdGltZQorICAgICAgICB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgi
dGVzdF9leGFtcGxlLnB5IikKKworICAgIC0tIERvY3M6IGh0dHBzOi8vZG9jcy5weXRlc3Qub3Jn
L2VuL2xhdGVzdC93YXJuaW5ncy5odG1sCisgICAgPT09PT09PT09PT09PT09PT09PSAyIHBhc3Nl
ZCwgMSB3YXJuaW5ncyBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PQorCiBGb3Ig
bW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVzdWx0IG9iamVjdCB0aGF0IGBgcnVucHl0ZXN0
KClgYCByZXR1cm5zLCBhbmQKIHRoZSBtZXRob2RzIHRoYXQgaXQgcHJvdmlkZXMgcGxlYXNlIGNo
ZWNrIG91dCB0aGUgOnB5OmNsYXNzOmBSdW5SZXN1bHQKIDxfcHl0ZXN0LnB5dGVzdGVyLlJ1blJl
c3VsdD5gIGRvY3VtZW50YXRpb24uCiAKIAorCisKIC4uIF9gd3JpdGluZ2hvb2tzYDoKIAogV3Jp
dGluZyBob29rIGZ1bmN0aW9ucwpAQCAtNDUzLDcgKzUxNSw3IEBAIGhvb2t3cmFwcGVyOiBleGVj
dXRpbmcgYXJvdW5kIG90aGVyIGhvb2tzCiAKIC4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0LmNv
cmUKIAotLi4gdmVyc2lvbmFkZGVkOjogMi43CisKIAogcHl0ZXN0IHBsdWdpbnMgY2FuIGltcGxl
bWVudCBob29rIHdyYXBwZXJzIHdoaWNoIHdyYXAgdGhlIGV4ZWN1dGlvbgogb2Ygb3RoZXIgaG9v
ayBpbXBsZW1lbnRhdGlvbnMuICBBIGhvb2sgd3JhcHBlciBpcyBhIGdlbmVyYXRvciBmdW5jdGlv
bgpAQCAtNDY2LDEwICs1MjgsMTMgQEAgYSA6cHk6Y2xhc3M6YFJlc3VsdCA8cGx1Z2d5Ll9SZXN1
bHQ+YCBpbnN0YW5jZSB3aGljaCBlbmNhcHN1bGF0ZXMgYSByZXN1bHQgb3IKIGV4Y2VwdGlvbiBp
bmZvLiAgVGhlIHlpZWxkIHBvaW50IGl0c2VsZiB3aWxsIHRodXMgdHlwaWNhbGx5IG5vdCByYWlz
ZQogZXhjZXB0aW9ucyAodW5sZXNzIHRoZXJlIGFyZSBidWdzKS4KIAotSGVyZSBpcyBhbiBleGFt
cGxlIGRlZmluaXRpb24gb2YgYSBob29rIHdyYXBwZXI6OgorSGVyZSBpcyBhbiBleGFtcGxlIGRl
ZmluaXRpb24gb2YgYSBob29rIHdyYXBwZXI6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAog
ICAgIGltcG9ydCBweXRlc3QKIAorCiAgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1U
cnVlKQogICAgIGRlZiBweXRlc3RfcHlmdW5jX2NhbGwocHlmdW5jaXRlbSk6CiAgICAgICAgIGRv
X3NvbWV0aGluZ19iZWZvcmVfbmV4dF9ob29rX2V4ZWN1dGVzKCkKQEAgLTU3NCwxMCArNjM5LDEz
IEBAIGlmIHlvdSBkZXBlbmQgb24gYSBwbHVnaW4gdGhhdCBpcyBub3QgaW5zdGFsbGVkLCB2YWxp
ZGF0aW9uIHdpbGwgZmFpbCBhbmQKIHRoZSBlcnJvciBtZXNzYWdlIHdpbGwgbm90IG1ha2UgbXVj
aCBzZW5zZSB0byB5b3VyIHVzZXJzLgogCiBPbmUgYXBwcm9hY2ggaXMgdG8gZGVmZXIgdGhlIGhv
b2sgaW1wbGVtZW50YXRpb24gdG8gYSBuZXcgcGx1Z2luIGluc3RlYWQgb2YKLWRlY2xhcmluZyB0
aGUgaG9vayBmdW5jdGlvbnMgZGlyZWN0bHkgaW4geW91ciBwbHVnaW4gbW9kdWxlLCBmb3IgZXhh
bXBsZTo6CitkZWNsYXJpbmcgdGhlIGhvb2sgZnVuY3Rpb25zIGRpcmVjdGx5IGluIHlvdXIgcGx1
Z2luIG1vZHVsZSwgZm9yIGV4YW1wbGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KIAogICAg
ICMgY29udGVudHMgb2YgbXlwbHVnaW4ucHkKIAorCiAgICAgY2xhc3MgRGVmZXJQbHVnaW4ob2Jq
ZWN0KToKICAgICAgICAgIiIiU2ltcGxlIHBsdWdpbiB0byBkZWZlciBweXRlc3QteGRpc3QgaG9v
ayBmdW5jdGlvbnMuIiIiCiAKQEAgLTU4NSw4ICs2NTMsOSBAQCBkZWNsYXJpbmcgdGhlIGhvb2sg
ZnVuY3Rpb25zIGRpcmVjdGx5IGluIHlvdXIgcGx1Z2luIG1vZHVsZSwgZm9yIGV4YW1wbGU6Ogog
ICAgICAgICAgICAgIiIic3RhbmRhcmQgeGRpc3QgaG9vayBmdW5jdGlvbi4KICAgICAgICAgICAg
ICIiIgogCisKICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgICAgICBpZiBj
b25maWcucGx1Z2lubWFuYWdlci5oYXNwbHVnaW4oJ3hkaXN0Jyk6CisgICAgICAgIGlmIGNvbmZp
Zy5wbHVnaW5tYW5hZ2VyLmhhc3BsdWdpbigieGRpc3QiKToKICAgICAgICAgICAgIGNvbmZpZy5w
bHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKERlZmVyUGx1Z2luKCkpCiAKIFRoaXMgaGFzIHRoZSBhZGRl
ZCBiZW5lZml0IG9mIGFsbG93aW5nIHlvdSB0byBjb25kaXRpb25hbGx5IGluc3RhbGwgaG9va3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi94dW5pdF9zZXR1cC5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4veHVuaXRfc2V0dXAucnN0CmluZGV4IDdhNmMwOTlmNTU5MDllMGI2NDMxNmI3
YWEyMmRkZWIyY2ViODc5MTQuLjQ2Njg3MzMwMjU1N2JkMjk0OGVkMmNhNGE3NTgzZTFlMDM0ZTM3
ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi94dW5pdF9zZXR1cC5yc3QKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3h1bml0X3NldHVwLnJzdApAQCAtOTMsNyArOTMsMTUgQEAgUmVt
YXJrczoKIAogKiBJdCBpcyBwb3NzaWJsZSBmb3Igc2V0dXAvdGVhcmRvd24gcGFpcnMgdG8gYmUg
aW52b2tlZCBtdWx0aXBsZSB0aW1lcwogICBwZXIgdGVzdGluZyBwcm9jZXNzLgorCiAqIHRlYXJk
b3duIGZ1bmN0aW9ucyBhcmUgbm90IGNhbGxlZCBpZiB0aGUgY29ycmVzcG9uZGluZyBzZXR1cCBm
dW5jdGlvbiBleGlzdGVkCiAgIGFuZCBmYWlsZWQvd2FzIHNraXBwZWQuCiAKKyogUHJpb3IgdG8g
cHl0ZXN0LTQuMiwgeHVuaXQtc3R5bGUgZnVuY3Rpb25zIGRpZCBub3Qgb2JleSB0aGUgc2NvcGUg
cnVsZXMgb2YgZml4dHVyZXMsIHNvCisgIGl0IHdhcyBwb3NzaWJsZSwgZm9yIGV4YW1wbGUsIGZv
ciBhIGBgc2V0dXBfbWV0aG9kYGAgdG8gYmUgY2FsbGVkIGJlZm9yZSBhCisgIHNlc3Npb24tc2Nv
cGVkIGF1dG91c2UgZml4dHVyZS4KKworICBOb3cgdGhlIHh1bml0LXN0eWxlIGZ1bmN0aW9ucyBh
cmUgaW50ZWdyYXRlZCB3aXRoIHRoZSBmaXh0dXJlIG1lY2hhbmlzbSBhbmQgb2JleSB0aGUgcHJv
cGVyCisgIHNjb3BlIHJ1bGVzIG9mIGZpeHR1cmVzIGludm9sdmVkIGluIHRoZSBjYWxsLgorCiAu
LiBfYHVuaXR0ZXN0LnB5IG1vZHVsZWA6IGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS91
bml0dGVzdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4veWllbGRmaXh0dXJl
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi95aWVsZGZpeHR1cmUucnN0CmluZGV4IDZmZDFlZGFj
MmY1ZTAwNDJlZWUxODYzZWFiZDM5MzU0MGZjODYzMjMuLjQ3NTkwZjlkYjk2ZjY1NGExM2RmYjQ2
YTI1NDFmMmUxNzBlNDU0YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi95aWVsZGZp
eHR1cmUucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi95aWVsZGZpeHR1cmUucnN0CkBAIC01
LDkgKzUsOSBAQAogInlpZWxkX2ZpeHR1cmUiIGZ1bmN0aW9ucwogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS4uIGRlcHJl
Y2F0ZWQ6OiAzLjAKIAotLi4gdmVyc2lvbmFkZGVkOjogMi40CisKKwogCiAuLiBpbXBvcnRhbnQ6
OgogICAgIFNpbmNlIHB5dGVzdC0zLjAsIGZpeHR1cmVzIHVzaW5nIHRoZSBub3JtYWwgYGBmaXh0
dXJlYGAgZGVjb3JhdG9yIGNhbiB1c2UgYSBgYHlpZWxkYGAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2V4dHJhL2dldF9pc3N1ZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9nZXRfaXNzdWVzLnB5
CmluZGV4IGMwMjY5NzJiMTQ1ZGEwNTQ2MmMxYmE2NzhhNmNlYTU2ZTQwMWI4ZDYuLjU5OGExYWY0
MDlmMzJhNDI4ZDlhODMxNzczYTllZTZjYTU1ZmQ1ZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2V4dHJhL2dldF9pc3N1ZXMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvZ2V0X2lzc3Vlcy5w
eQpAQCAtMSw0ICsxLDYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBpbXBvcnQganNvbgor
CiBpbXBvcnQgcHkKIGltcG9ydCByZXF1ZXN0cwogCkBAIC02NCw5ICs2Niw5IEBAIGRlZiByZXBv
cnQoaXNzdWVzKToKICAgICAgICAgcHJpbnQodGl0bGUpCiAgICAgICAgICMgcHJpbnQoKQogICAg
ICAgICAjIGxpbmVzID0gYm9keS5zcGxpdCgiXG4iKQotICAgICAgICAjIHByaW50ICgiXG4iLmpv
aW4obGluZXNbOjNdKSkKKyAgICAgICAgIyBwcmludCgiXG4iLmpvaW4obGluZXNbOjNdKSkKICAg
ICAgICAgIyBpZiBsZW4obGluZXMpID4gMyBvciBsZW4oYm9keSkgPiAyNDA6Ci0gICAgICAgICMg
ICAgcHJpbnQgKCIuLi4iKQorICAgICAgICAjICAgIHByaW50KCIuLi4iKQogICAgIHByaW50KCJc
blxuRm91bmQgJXMgb3BlbiBpc3N1ZXMiICUgbGVuKGlzc3VlcykpCiAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZXh0cmEvc2V0dXAtcHkudGVzdC9zZXR1cC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4
dHJhL3NldHVwLXB5LnRlc3Qvc2V0dXAucHkKaW5kZXggZDA1NjBjZTFmNWY0NDM3ZTU3NGFlYmM1
MmRkZjhiOGEzN2I4NjA1ZC4uY2ZlMThjMjhmNTIxMTI3ZjgyNjdjMzlhMDA5ZjI0ZjRjODJjMTcw
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvc2V0dXAtcHkudGVzdC9zZXR1cC5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9leHRyYS9zZXR1cC1weS50ZXN0L3NldHVwLnB5CkBAIC0xLDMgKzEs
NCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIGltcG9ydCBzeXMKIGZyb20gZGlzdHV0aWxz
LmNvcmUgaW1wb3J0IHNldHVwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3B5cHJvamVjdC50
b21sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvcHlwcm9qZWN0LnRvbWwKaW5kZXggNjVlNmJmNTliZjFjMjk1NTIz
MDEzOGQ5MDgwMTQ5MDQ5ZjJjZmYyMC4uMmE0Y2Q2NWMxMThlMDZlOTc3ZTlhZGZkZmIwMDdkYzA1
NzgzNWNiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvcHlwcm9qZWN0LnRvbWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvcHlwcm9qZWN0LnRvbWwKQEAgLTEsMjAgKzEsMjggQEAKIFtidWlsZC1zeXN0ZW1d
CiByZXF1aXJlcyA9IFsKLSAgInNldHVwdG9vbHMiLAorICAjIHN5bmMgd2l0aCBzZXR1cC5weSB1
bnRpbCB3ZSBkaXNjYXJkIG5vbi1wZXAtNTE3LzUxOAorICAic2V0dXB0b29scz49NDAuMCIsCiAg
ICJzZXR1cHRvb2xzLXNjbSIsCiAgICJ3aGVlbCIsCiBdCitidWlsZC1iYWNrZW5kID0gInNldHVw
dG9vbHMuYnVpbGRfbWV0YSIKIAogW3Rvb2wudG93bmNyaWVyXQogcGFja2FnZSA9ICJweXRlc3Qi
CiBwYWNrYWdlX2RpciA9ICJzcmMiCiBmaWxlbmFtZSA9ICJDSEFOR0VMT0cucnN0IgogZGlyZWN0
b3J5ID0gImNoYW5nZWxvZy8iCit0aXRsZV9mb3JtYXQgPSAicHl0ZXN0IHt2ZXJzaW9ufSAoe3By
b2plY3RfZGF0ZX0pIgogdGVtcGxhdGUgPSAiY2hhbmdlbG9nL190ZW1wbGF0ZS5yc3QiCiAKICAg
W1t0b29sLnRvd25jcmllci50eXBlXV0KICAgZGlyZWN0b3J5ID0gInJlbW92YWwiCi0gIG5hbWUg
PSAiRGVwcmVjYXRpb25zIGFuZCBSZW1vdmFscyIKKyAgbmFtZSA9ICJSZW1vdmFscyIKKyAgc2hv
d2NvbnRlbnQgPSB0cnVlCisKKyAgW1t0b29sLnRvd25jcmllci50eXBlXV0KKyAgZGlyZWN0b3J5
ID0gImRlcHJlY2F0aW9uIgorICBuYW1lID0gIkRlcHJlY2F0aW9ucyIKICAgc2hvd2NvbnRlbnQg
PSB0cnVlCiAKICAgW1t0b29sLnRvd25jcmllci50eXBlXV0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NjcmlwdHMvYXBwZW5kX2NvZGVjb3ZfdG9rZW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRz
L2FwcGVuZF9jb2RlY292X3Rva2VuLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzYTgyMDc1ZmExOTg1ZTljZDI5
ZmMzMzU4YTFmMzBkMjVjMWQxMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3Jp
cHRzL2FwcGVuZF9jb2RlY292X3Rva2VuLnB5CkBAIC0wLDAgKzEsMzUgQEAKKyMgLSotIGNvZGlu
ZzogdXRmLTggLSotCisiIiIKK0FwcGVuZHMgdGhlIGNvZGVjb3YgdG9rZW4gdG8gdGhlICdjb2Rl
Y292LnltbCcgZmlsZSBhdCB0aGUgcm9vdCBvZiB0aGUgcmVwb3NpdG9yeS4KK1RoaXMgaXMgZG9u
ZSBieSBDSSBkdXJpbmcgUFJzIGFuZCBidWlsZHMgb24gdGhlIHB5dGVzdC1kZXYgcmVwb3NpdG9y
eSBzbyB3ZSBjYW4gdXBsb2FkIGNvdmVyYWdlLCBhdCBsZWFzdAordW50aWwgY29kZWNvdiBncm93
cyBzb21lIG5hdGl2ZSBpbnRlZ3JhdGlvbiBsaWtlIGl0IGhhcyB3aXRoIFRyYXZpcyBhbmQgQXBw
VmV5b3IuCitTZWUgZGlzY3Vzc2lvbiBpbiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvcHVsbC82NDQxIGZvciBtb3JlIGluZm9ybWF0aW9uLgorIiIiCitpbXBvcnQgb3MucGF0
aAorZnJvbSB0ZXh0d3JhcCBpbXBvcnQgZGVkZW50CisKKworZGVmIG1haW4oKToKKyAgICB0aGlz
X2RpciA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKKyAgICBjb3ZfZmlsZSA9IG9zLnBhdGgu
am9pbih0aGlzX2RpciwgIi4uIiwgImNvZGVjb3YueW1sIikKKworICAgIGFzc2VydCBvcy5wYXRo
LmlzZmlsZShjb3ZfZmlsZSksICJ7Y292X2ZpbGV9IGRvZXMgbm90IGV4aXN0Ii5mb3JtYXQoCisg
ICAgICAgIGNvdl9maWxlPWNvdl9maWxlCisgICAgKQorCisgICAgd2l0aCBvcGVuKGNvdl9maWxl
LCAiYSIpIGFzIGY6CisgICAgICAgICMgdG9rZW4gZnJvbTogaHR0cHM6Ly9jb2RlY292LmlvL2do
L3B5dGVzdC1kZXYvcHl0ZXN0L3NldHRpbmdzCisgICAgICAgICMgdXNlIHNhbWUgVVJMIHRvIHJl
Z2VuZXJhdGUgaXQgaWYgbmVlZGVkCisgICAgICAgIHRleHQgPSBkZWRlbnQoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgIGNvZGVjb3Y6CisgICAgICAgICAgICAgIHRva2VuOiAiMWVjYTNi
MWYtMzFhMi00ZmI4LWE4YzMtMTM4YjQ0MWI1MGE3IgorICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICBmLndyaXRlKHRleHQpCisKKyAgICBwcmludCgiVG9rZW4gdXBkYXRlZDoiLCBjb3Zf
ZmlsZSkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIG1haW4oKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9jYWxsLXRveC5iYXQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3Jp
cHRzL2NhbGwtdG94LmJhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZmYjI1YzFk
ZjFkMTAxYTE5NDhkOWNiYzk2ZTk2OWI1MjRjYmJhNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2NhbGwtdG94LmJhdAor
KysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotUkVNIHNraXAgImNvdmVyYWxscyIgcnVuIGlu
IFBScyBvciBmb3JrcwotaWYgIiVUT1hFTlYlIiA9PSAiY292ZXJhbGxzIiAoCi0gICAgaWYgbm90
IGRlZmluZWQgQ09WRVJBTExTX1JFUE9fVE9LRU4gKAotICAgICAgICBlY2hvIHNraXBwaW5nIGNv
dmVyYWxscyBydW4gYmVjYXVzZSBDT1ZFUkFMTFNfUkVQT19UT0tFTiBpcyBub3QgZGVmaW5lZAot
ICAgICAgICBleGl0IC9iIDAKLSAgICApCi0pCi1DOlxQeXRob24zNlxweXRob24gLW0gdG94CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2luc3RhbGwtcHlweS5iYXQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zY3JpcHRzL2luc3RhbGwtcHlweS5iYXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDgwMTJlYTQ2YWNhNDVmZjMyMDdmM2NlZjg5YmE0Y2IyZDZkYzE3ZjIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9p
bnN0YWxsLXB5cHkuYmF0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1SRU0gaW5zdGFs
bCBweXB5IHVzaW5nIGNob2NvCi1SRU0gcmVkaXJlY3QgdG8gYSBmaWxlIGJlY2F1c2UgY2hvY28g
aW5zdGFsbCBweXRob24ucHlweSBpcyB0b28gbm9pc3kuIElmIHRoZSBjb21tYW5kIGZhaWxzLCB3
cml0ZSBvdXRwdXQgdG8gY29uc29sZQotY2hvY28gaW5zdGFsbCBweXRob24ucHlweSA+IHB5cHkt
aW5zdC5sb2cgMj4mMSB8fCAodHlwZSBweXB5LWluc3QubG9nICYgZXhpdCAvYiAxKQotc2V0IFBB
VEg9QzpcdG9vbHNccHlweVxweXB5OyVQQVRIJSAjIHNvIHRveCBjYW4gZmluZCBweXB5Ci1lY2hv
IFB5UHkgaW5zdGFsbGVkCi1weXB5IC0tdmVyc2lvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c2NyaXB0cy9wdWJsaXNoX2doX3JlbGVhc2Vfbm90ZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRz
L3B1Ymxpc2hfZ2hfcmVsZWFzZV9ub3Rlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmY5NDZiNThhM2I0Yzdm
NzIwYzNjYTk3NTVkNjY3NWJjZTQ2NDYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c2NyaXB0cy9wdWJsaXNoX2doX3JlbGVhc2Vfbm90ZXMucHkKQEAgLTAsMCArMSw5NiBAQAorIyAt
Ki0gY29kaW5nOiB1dGYtOCAtKi0KKyIiIgorU2NyaXB0IHVzZWQgdG8gcHVibGlzaCBHaXRIdWIg
cmVsZWFzZSBub3RlcyBleHRyYWN0ZWQgZnJvbSBDSEFOR0VMT0cucnN0LgorCitUaGlzIHNjcmlw
dCBpcyBtZWFudCB0byBiZSBleGVjdXRlZCBhZnRlciBhIHN1Y2Nlc3NmdWwgZGVwbG95bWVudCBp
biBUcmF2aXMuCisKK1VzZXMgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CisK
KyogR0lUX1RBRzogdGhlIG5hbWUgb2YgdGhlIHRhZyBvZiB0aGUgY3VycmVudCBjb21taXQuCisq
IEdIX1JFTEVBU0VfTk9URVNfVE9LRU46IGEgcGVyc29uYWwgYWNjZXNzIHRva2VuIHdpdGggJ3Jl
cG8nIHBlcm1pc3Npb25zLiBJdCBzaG91bGQgYmUgZW5jcnlwdGVkIHVzaW5nOgorCisgICAgJHRy
YXZpcyBlbmNyeXB0IEdIX1JFTEVBU0VfTk9URVNfVE9LRU49PHRva2VuPiAtciBweXRlc3QtZGV2
L3B5dGVzdAorCisgIEFuZCB0aGUgY29udGVudHMgcGFzdGVkIGluIHRoZSBgYGRlcGxveS5lbnYu
c2VjdXJlYGAgc2VjdGlvbiBpbiB0aGUgYGB0cmF2aXMueW1sYGAgZmlsZS4KKworVGhlIHNjcmlw
dCBhbHNvIHJlcXVpcmVzIGBgcGFuZG9jYGAgdG8gYmUgcHJldmlvdXNseSBpbnN0YWxsZWQgaW4g
dGhlIHN5c3RlbS4KKworUmVxdWlyZXMgUHl0aG9uMy42Ky4KKyIiIgoraW1wb3J0IG9zCitpbXBv
cnQgcmUKK2ltcG9ydCBzeXMKK2Zyb20gcGF0aGxpYiBpbXBvcnQgUGF0aAorCitpbXBvcnQgZ2l0
aHViMworaW1wb3J0IHB5cGFuZG9jCisKKworZGVmIHB1Ymxpc2hfZ2l0aHViX3JlbGVhc2Uoc2x1
ZywgdG9rZW4sIHRhZ19uYW1lLCBib2R5KToKKyAgICBnaXRodWIgPSBnaXRodWIzLmxvZ2luKHRv
a2VuPXRva2VuKQorICAgIG93bmVyLCByZXBvID0gc2x1Zy5zcGxpdCgiLyIpCisgICAgcmVwbyA9
IGdpdGh1Yi5yZXBvc2l0b3J5KG93bmVyLCByZXBvKQorICAgIHJldHVybiByZXBvLmNyZWF0ZV9y
ZWxlYXNlKHRhZ19uYW1lPXRhZ19uYW1lLCBib2R5PWJvZHkpCisKKworZGVmIHBhcnNlX2NoYW5n
ZWxvZyh0YWdfbmFtZSk6CisgICAgcCA9IFBhdGgoX19maWxlX18pLnBhcmVudC5wYXJlbnQgLyAi
Q0hBTkdFTE9HLnJzdCIKKyAgICBjaGFuZ2Vsb2dfbGluZXMgPSBwLnJlYWRfdGV4dChlbmNvZGlu
Zz0iVVRGLTgiKS5zcGxpdGxpbmVzKCkKKworICAgIHRpdGxlX3JlZ2V4ID0gcmUuY29tcGlsZShy
InB5dGVzdCAoXGRcLlxkK1wuXGQrKSBcKFxkezR9LVxkezJ9LVxkezJ9XCkiKQorICAgIGNvbnN1
bWluZ192ZXJzaW9uID0gRmFsc2UKKyAgICB2ZXJzaW9uX2xpbmVzID0gW10KKyAgICBmb3IgbGlu
ZSBpbiBjaGFuZ2Vsb2dfbGluZXM6CisgICAgICAgIG0gPSB0aXRsZV9yZWdleC5tYXRjaChsaW5l
KQorICAgICAgICBpZiBtOgorICAgICAgICAgICAgIyBmb3VuZCB0aGUgdmVyc2lvbiB3ZSB3YW50
OiBzdGFydCB0byBjb25zdW1lIGxpbmVzIHVudGlsIHdlIGZpbmQgdGhlIG5leHQgdmVyc2lvbiB0
aXRsZQorICAgICAgICAgICAgaWYgbS5ncm91cCgxKSA9PSB0YWdfbmFtZToKKyAgICAgICAgICAg
ICAgICBjb25zdW1pbmdfdmVyc2lvbiA9IFRydWUKKyAgICAgICAgICAgICMgZm91bmQgYSBuZXcg
dmVyc2lvbiB0aXRsZSB3aGlsZSBwYXJzaW5nIHRoZSB2ZXJzaW9uIHdlIHdhbnQ6IGJyZWFrIG91
dAorICAgICAgICAgICAgZWxpZiBjb25zdW1pbmdfdmVyc2lvbjoKKyAgICAgICAgICAgICAgICBi
cmVhaworICAgICAgICBpZiBjb25zdW1pbmdfdmVyc2lvbjoKKyAgICAgICAgICAgIHZlcnNpb25f
bGluZXMuYXBwZW5kKGxpbmUpCisKKyAgICByZXR1cm4gIlxuIi5qb2luKHZlcnNpb25fbGluZXMp
CisKKworZGVmIGNvbnZlcnRfcnN0X3RvX21kKHRleHQpOgorICAgIHJldHVybiBweXBhbmRvYy5j
b252ZXJ0X3RleHQodGV4dCwgIm1kIiwgZm9ybWF0PSJyc3QiKQorCisKK2RlZiBtYWluKGFyZ3Yp
OgorICAgIGlmIGxlbihhcmd2KSA+IDE6CisgICAgICAgIHRhZ19uYW1lID0gYXJndlsxXQorICAg
IGVsc2U6CisgICAgICAgIHRhZ19uYW1lID0gb3MuZW52aXJvbi5nZXQoIlRSQVZJU19UQUciKQor
ICAgICAgICBpZiBub3QgdGFnX25hbWU6CisgICAgICAgICAgICBwcmludCgidGFnX25hbWUgbm90
IGdpdmVuIGFuZCAkVFJBVklTX1RBRyBub3Qgc2V0IiwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAg
ICAgICAgcmV0dXJuIDEKKworICAgIHRva2VuID0gb3MuZW52aXJvbi5nZXQoIkdIX1JFTEVBU0Vf
Tk9URVNfVE9LRU4iKQorICAgIGlmIG5vdCB0b2tlbjoKKyAgICAgICAgcHJpbnQoIkdIX1JFTEVB
U0VfTk9URVNfVE9LRU4gbm90IHNldCIsIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgcmV0dXJu
IDEKKworICAgIHNsdWcgPSBvcy5lbnZpcm9uLmdldCgiVFJBVklTX1JFUE9fU0xVRyIpCisgICAg
aWYgbm90IHNsdWc6CisgICAgICAgIHByaW50KCJUUkFWSVNfUkVQT19TTFVHIG5vdCBzZXQiLCBm
aWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJldHVybiAxCisKKyAgICByc3RfYm9keSA9IHBhcnNl
X2NoYW5nZWxvZyh0YWdfbmFtZSkKKyAgICBtZF9ib2R5ID0gY29udmVydF9yc3RfdG9fbWQocnN0
X2JvZHkpCisgICAgaWYgbm90IHB1Ymxpc2hfZ2l0aHViX3JlbGVhc2Uoc2x1ZywgdG9rZW4sIHRh
Z19uYW1lLCBtZF9ib2R5KToKKyAgICAgICAgcHJpbnQoIkNvdWxkIG5vdCBwdWJsaXNoIHJlbGVh
c2Ugbm90ZXM6IiwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICBwcmludChtZF9ib2R5LCBmaWxl
PXN5cy5zdGRlcnIpCisgICAgICAgIHJldHVybiA1CisKKyAgICBwcmludCgpCisgICAgcHJpbnQo
ZiJSZWxlYXNlIG5vdGVzIGZvciB7dGFnX25hbWV9IHB1Ymxpc2hlZCBzdWNjZXNzZnVsbHk6IikK
KyAgICBwcmludChmImh0dHBzOi8vZ2l0aHViLmNvbS97c2x1Z30vcmVsZWFzZXMvdGFnL3t0YWdf
bmFtZX0iKQorICAgIHByaW50KCkKKyAgICByZXR1cm4gMAorCisKK2lmIF9fbmFtZV9fID09ICJf
X21haW5fXyI6CisgICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zY3JpcHRzL3JlbGVhc2UubWlub3IucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9y
ZWxlYXNlLm1pbm9yLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTQ4OGVkYmM1MmVjYjA5YmQ2ZDUxODI4NDlk
ZTg2OWI1MGI1ZGJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxl
YXNlLm1pbm9yLnJzdApAQCAtMCwwICsxLDI3IEBACitweXRlc3Qte3ZlcnNpb259Cis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhlIHB5dGVzdCB0ZWFtIGlzIHBy
b3VkIHRvIGFubm91bmNlIHRoZSB7dmVyc2lvbn0gcmVsZWFzZSEKKworcHl0ZXN0IGlzIGEgbWF0
dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAyMDAwIHRlc3RzCithZ2Fp
bnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBs
YXRmb3Jtcy4KKworVGhpcyByZWxlYXNlIGNvbnRhaW5zIGEgbnVtYmVyIG9mIGJ1Z3MgZml4ZXMg
YW5kIGltcHJvdmVtZW50cywgc28gdXNlcnMgYXJlIGVuY291cmFnZWQKK3RvIHRha2UgYSBsb29r
IGF0IHRoZSBDSEFOR0VMT0c6CisKKyAgICBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRl
c3QvY2hhbmdlbG9nLmh0bWwKKworRm9yIGNvbXBsZXRlIGRvY3VtZW50YXRpb24sIHBsZWFzZSB2
aXNpdDoKKworICAgIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC8KKworQXMgdXN1
YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOgorCisgICAgcGlwIGluc3RhbGwgLVUg
cHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwg
YW1vbmcgdGhlbToKKwore2NvbnRyaWJ1dG9yc30KKworSGFwcHkgdGVzdGluZywKK1RoZSBQeXRl
c3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxl
YXNlLnBhdGNoLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcmVsZWFzZS5wYXRjaC5yc3QKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjFhZDJkYmQ3NzVhOWViNDc3M2Y4M2FhYWYxMDQ3ZTJkYjkyYTJjZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcmVsZWFzZS5wYXRjaC5yc3QKQEAgLTAs
MCArMSwxNyBAQAorcHl0ZXN0LXt2ZXJzaW9ufQorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisKK3B5dGVzdCB7dmVyc2lvbn0gaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0
byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVw
bGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QK
KworVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL2RvY3MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRy
aWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKwore2NvbnRyaWJ1dG9yc30KKwor
SGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxlYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxl
YXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMyMTc4ZmNmNjc0MWZjYTY3MzBkOWZhODdhYThlY2VhYWJiYjU1
NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3JlbGVhc2UucHkKQEAg
LTAsMCArMSwxMTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisiIiIKK0ludm9rZSBkZXZl
bG9wbWVudCB0YXNrcy4KKyIiIgoraW1wb3J0IGFyZ3BhcnNlCitmcm9tIHBhdGhsaWIgaW1wb3J0
IFBhdGgKK2Zyb20gc3VicHJvY2VzcyBpbXBvcnQgY2FsbAorZnJvbSBzdWJwcm9jZXNzIGltcG9y
dCBjaGVja19jYWxsCitmcm9tIHN1YnByb2Nlc3MgaW1wb3J0IGNoZWNrX291dHB1dAorCitmcm9t
IGNvbG9yYW1hIGltcG9ydCBGb3JlCitmcm9tIGNvbG9yYW1hIGltcG9ydCBpbml0CisKKworZGVm
IGFubm91bmNlKHZlcnNpb24pOgorICAgICIiIkdlbmVyYXRlcyBhIG5ldyByZWxlYXNlIGFubm91
bmNlbWVudCBlbnRyeSBpbiB0aGUgZG9jcy4iIiIKKyAgICAjIEdldCBvdXIgbGlzdCBvZiBhdXRo
b3JzCisgICAgc3Rkb3V0ID0gY2hlY2tfb3V0cHV0KFsiZ2l0IiwgImRlc2NyaWJlIiwgIi0tYWJi
cmV2PTAiLCAiLS10YWdzIl0pCisgICAgc3Rkb3V0ID0gc3Rkb3V0LmRlY29kZSgidXRmLTgiKQor
ICAgIGxhc3RfdmVyc2lvbiA9IHN0ZG91dC5zdHJpcCgpCisKKyAgICBzdGRvdXQgPSBjaGVja19v
dXRwdXQoCisgICAgICAgIFsiZ2l0IiwgImxvZyIsICJ7fS4uSEVBRCIuZm9ybWF0KGxhc3RfdmVy
c2lvbiksICItLWZvcm1hdD0lYU4iXQorICAgICkKKyAgICBzdGRvdXQgPSBzdGRvdXQuZGVjb2Rl
KCJ1dGYtOCIpCisKKyAgICBjb250cmlidXRvcnMgPSBzZXQoc3Rkb3V0LnNwbGl0bGluZXMoKSkK
KworICAgIHRlbXBsYXRlX25hbWUgPSAoCisgICAgICAgICJyZWxlYXNlLm1pbm9yLnJzdCIgaWYg
dmVyc2lvbi5lbmRzd2l0aCgiLjAiKSBlbHNlICJyZWxlYXNlLnBhdGNoLnJzdCIKKyAgICApCisg
ICAgdGVtcGxhdGVfdGV4dCA9ICgKKyAgICAgICAgUGF0aChfX2ZpbGVfXykucGFyZW50LmpvaW5w
YXRoKHRlbXBsYXRlX25hbWUpLnJlYWRfdGV4dChlbmNvZGluZz0iVVRGLTgiKQorICAgICkKKwor
ICAgIGNvbnRyaWJ1dG9yc190ZXh0ID0gKAorICAgICAgICAiXG4iLmpvaW4oIioge30iLmZvcm1h
dChuYW1lKSBmb3IgbmFtZSBpbiBzb3J0ZWQoY29udHJpYnV0b3JzKSkgKyAiXG4iCisgICAgKQor
ICAgIHRleHQgPSB0ZW1wbGF0ZV90ZXh0LmZvcm1hdCh2ZXJzaW9uPXZlcnNpb24sIGNvbnRyaWJ1
dG9ycz1jb250cmlidXRvcnNfdGV4dCkKKworICAgIHRhcmdldCA9IFBhdGgoX19maWxlX18pLnBh
cmVudC5qb2lucGF0aCgKKyAgICAgICAgIi4uL2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLXt9LnJz
dCIuZm9ybWF0KHZlcnNpb24pCisgICAgKQorICAgIHRhcmdldC53cml0ZV90ZXh0KHRleHQsIGVu
Y29kaW5nPSJVVEYtOCIpCisgICAgcHJpbnQoZiJ7Rm9yZS5DWUFOfVtnZW5lcmF0ZS5hbm5vdW5j
ZV0ge0ZvcmUuUkVTRVR9R2VuZXJhdGVkIHt0YXJnZXQubmFtZX0iKQorCisgICAgIyBVcGRhdGUg
aW5kZXggd2l0aCB0aGUgbmV3IHJlbGVhc2UgZW50cnkKKyAgICBpbmRleF9wYXRoID0gUGF0aChf
X2ZpbGVfXykucGFyZW50LmpvaW5wYXRoKCIuLi9kb2MvZW4vYW5ub3VuY2UvaW5kZXgucnN0IikK
KyAgICBsaW5lcyA9IGluZGV4X3BhdGgucmVhZF90ZXh0KGVuY29kaW5nPSJVVEYtOCIpLnNwbGl0
bGluZXMoKQorICAgIGluZGVudCA9ICIgICAiCisgICAgZm9yIGluZGV4LCBsaW5lIGluIGVudW1l
cmF0ZShsaW5lcyk6CisgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgie31yZWxlYXNlLSIuZm9y
bWF0KGluZGVudCkpOgorICAgICAgICAgICAgbmV3X2xpbmUgPSBpbmRlbnQgKyB0YXJnZXQuc3Rl
bQorICAgICAgICAgICAgaWYgbGluZSAhPSBuZXdfbGluZToKKyAgICAgICAgICAgICAgICBsaW5l
cy5pbnNlcnQoaW5kZXgsIG5ld19saW5lKQorICAgICAgICAgICAgICAgIGluZGV4X3BhdGgud3Jp
dGVfdGV4dCgiXG4iLmpvaW4obGluZXMpICsgIlxuIiwgZW5jb2Rpbmc9IlVURi04IikKKyAgICAg
ICAgICAgICAgICBwcmludCgKKyAgICAgICAgICAgICAgICAgICAgZiJ7Rm9yZS5DWUFOfVtnZW5l
cmF0ZS5hbm5vdW5jZV0ge0ZvcmUuUkVTRVR9VXBkYXRlZCB7aW5kZXhfcGF0aC5uYW1lfSIKKyAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50
KAorICAgICAgICAgICAgICAgICAgICBmIntGb3JlLkNZQU59W2dlbmVyYXRlLmFubm91bmNlXSB7
Rm9yZS5SRVNFVH1Ta2lwIHtpbmRleF9wYXRoLm5hbWV9IChhbHJlYWR5IGNvbnRhaW5zIHJlbGVh
c2UpIgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGJyZWFrCisKKyAgICBjaGVja19j
YWxsKFsiZ2l0IiwgImFkZCIsIHN0cih0YXJnZXQpXSkKKworCitkZWYgcmVnZW4oKToKKyAgICAi
IiJDYWxsIHJlZ2VuZG9jIHRvb2wgdG8gdXBkYXRlIGV4YW1wbGVzIGFuZCBweXRlc3Qgb3V0cHV0
IGluIHRoZSBkb2NzLiIiIgorICAgIHByaW50KGYie0ZvcmUuQ1lBTn1bZ2VuZXJhdGUucmVnZW5d
IHtGb3JlLlJFU0VUfVVwZGF0aW5nIGRvY3MiKQorICAgIGNoZWNrX2NhbGwoWyJ0b3giLCAiLWUi
LCAicmVnZW4iXSkKKworCitkZWYgZml4X2Zvcm1hdHRpbmcoKToKKyAgICAiIiJSdW5zIHByZS1j
b21taXQgaW4gYWxsIGZpbGVzIHRvIGVuc3VyZSB0aGV5IGFyZSBmb3JtYXR0ZWQgY29ycmVjdGx5
IiIiCisgICAgcHJpbnQoCisgICAgICAgIGYie0ZvcmUuQ1lBTn1bZ2VuZXJhdGUuZml4IGxpbnRp
bmddIHtGb3JlLlJFU0VUfUZpeGluZyBmb3JtYXR0aW5nIHVzaW5nIHByZS1jb21taXQiCisgICAg
KQorICAgIGNhbGwoWyJwcmUtY29tbWl0IiwgInJ1biIsICItLWFsbC1maWxlcyJdKQorCisKK2Rl
ZiBwcmVfcmVsZWFzZSh2ZXJzaW9uKToKKyAgICAiIiJHZW5lcmF0ZXMgbmV3IGRvY3MsIHJlbGVh
c2UgYW5ub3VuY2VtZW50cyBhbmQgY3JlYXRlcyBhIGxvY2FsIHRhZy4iIiIKKyAgICBhbm5vdW5j
ZSh2ZXJzaW9uKQorICAgIHJlZ2VuKCkKKyAgICBjaGFuZ2Vsb2codmVyc2lvbiwgd3JpdGVfb3V0
PVRydWUpCisgICAgZml4X2Zvcm1hdHRpbmcoKQorCisgICAgbXNnID0gIlByZXBhcmluZyByZWxl
YXNlIHZlcnNpb24ge30iLmZvcm1hdCh2ZXJzaW9uKQorICAgIGNoZWNrX2NhbGwoWyJnaXQiLCAi
Y29tbWl0IiwgIi1hIiwgIi1tIiwgbXNnXSkKKworICAgIHByaW50KCkKKyAgICBwcmludChmIntG
b3JlLkNZQU59W2dlbmVyYXRlLnByZV9yZWxlYXNlXSB7Rm9yZS5HUkVFTn1BbGwgZG9uZSEiKQor
ICAgIHByaW50KCkKKyAgICBwcmludChmIlBsZWFzZSBwdXNoIHlvdXIgYnJhbmNoIGFuZCBvcGVu
IGEgUFIuIikKKworCitkZWYgY2hhbmdlbG9nKHZlcnNpb24sIHdyaXRlX291dD1GYWxzZSk6Cisg
ICAgaWYgd3JpdGVfb3V0OgorICAgICAgICBhZGRvcHRzID0gW10KKyAgICBlbHNlOgorICAgICAg
ICBhZGRvcHRzID0gWyItLWRyYWZ0Il0KKyAgICBjaGVja19jYWxsKFsidG93bmNyaWVyIiwgIi0t
eWVzIiwgIi0tdmVyc2lvbiIsIHZlcnNpb25dICsgYWRkb3B0cykKKworCitkZWYgbWFpbigpOgor
ICAgIGluaXQoYXV0b3Jlc2V0PVRydWUpCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQ
YXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInZlcnNpb24iLCBoZWxwPSJSZWxlYXNl
IHZlcnNpb24iKQorICAgIG9wdGlvbnMgPSBwYXJzZXIucGFyc2VfYXJncygpCisgICAgcHJlX3Jl
bGVhc2Uob3B0aW9ucy52ZXJzaW9uKQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Cisg
ICAgbWFpbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3JlcG9ydC1jb3ZlcmFn
ZS5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcmVwb3J0LWNvdmVyYWdlLnNoCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZiY2YyMGNhOTI5ZmRlNzZhMDVhODZjYjk2NGM1ZjgxNzAyM2UzODIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3JlcG9ydC1jb3ZlcmFnZS5zaApAQCAtMCwwICsxLDE4
IEBACisjIS91c3IvYmluL2VudiBiYXNoCisKK3NldCAtZQorc2V0IC14CisKK2lmIFsgLXogIiRU
T1hFTlYiIF07IHRoZW4KKyAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIGNvdmVyYWdlCitlbHNlCisg
ICMgQWRkIGxhc3QgVE9YRU5WIHRvICRQQVRILgorICBQQVRIPSIkUFdELy50b3gvJHtUT1hFTlYj
IyosfS9iaW46JFBBVEgiCitmaQorCitweXRob24gLW0gY292ZXJhZ2UgY29tYmluZQorcHl0aG9u
IC1tIGNvdmVyYWdlIHhtbAorcHl0aG9uIC1tIGNvdmVyYWdlIHJlcG9ydCAtbQorIyBTZXQgLS1j
b25uZWN0LXRpbWVvdXQgdG8gd29yayBhcm91bmQgaHR0cHM6Ly9naXRodWIuY29tL2N1cmwvY3Vy
bC9pc3N1ZXMvNDQ2MQorY3VybCAtUyAtTCAtLWNvbm5lY3QtdGltZW91dCA1IC0tcmV0cnkgNiAt
cyBodHRwczovL2NvZGVjb3YuaW8vYmFzaCAtbyBjb2RlY292LXVwbG9hZC5zaAorYmFzaCBjb2Rl
Y292LXVwbG9hZC5zaCAtWiAtWCBmaXggLWYgY292ZXJhZ2UueG1sICIkQCIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NjcmlwdHMvcmV0cnkuY21kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZXRy
eS5jbWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWMzODM2NTA4NTc2Yjg2OWVjMGZiODdhY2ZlZmFmMzY2NWE5NTMy
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcmV0cnkuY21kCkBAIC0w
LDAgKzEsMjEgQEAKK0BlY2hvIG9mZgorcmVtIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2Fw
cHZleW9yL2NpL2Jsb2IvbWFzdGVyL3NjcmlwdHMvYXBwdmV5b3ItcmV0cnkuY21kCityZW0gaW5p
dGlhdGUgdGhlIHJldHJ5IG51bWJlcgorc2V0IHJldHJ5TnVtYmVyPTAKK3NldCBtYXhSZXRyaWVz
PTMKKworOlJVTgorJSoKK3NldCBMYXN0RXJyb3JMZXZlbD0lRVJST1JMRVZFTCUKK0lGICVMYXN0
RXJyb3JMZXZlbCUgPT0gMCBHT1RPIDpFT0YKK3NldCAvYSByZXRyeU51bWJlcj0lcmV0cnlOdW1i
ZXIlKzEKK0lGICVyZVRyeU51bWJlciUgPT0gJW1heFJldHJpZXMlIChHT1RPIDpGQUlMRUQpCisK
KzpSRVRSWQorc2V0IC9hIHJldHJ5TnVtYmVyRGlzcD0lcmV0cnlOdW1iZXIlKzEKK0BlY2hvIENv
bW1hbmQgIiUqIiBmYWlsZWQgd2l0aCBleGl0IGNvZGUgJUxhc3RFcnJvckxldmVsJS4gUmV0cnlp
bmcgJXJldHJ5TnVtYmVyRGlzcCUgb2YgJW1heFJldHJpZXMlCitHT1RPIDpSVU4KKworOiBGQUlM
RUQKK0BlY2hvIFNvcnJ5LCB3ZSB0cmllZCBydW5uaW5nIGNvbW1hbmQgZm9yICVtYXhSZXRyaWVz
JSB0aW1lcyBhbmQgYWxsIGF0dGVtcHRzIHdlcmUgdW5zdWNjZXNzZnVsIQorRVhJVCAvQiAlTGFz
dEVycm9yTGV2ZWwlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3NldHVwLWNvdmVy
YWdlLXZhcnMuYmF0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9zZXR1cC1jb3ZlcmFnZS12YXJzLmJh
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44Mjc5MjRiMTgzN2M4MWFkNzhjY2QxMjQyOThiZTVlY2Y5OTFiMjA4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9zZXR1cC1jb3ZlcmFnZS12YXJz
LmJhdApAQCAtMCwwICsxLDcgQEAKK2lmICIlUFlURVNUX0NPVkVSQUdFJSIgPT0gIjEiICgNCisg
IHNldCAiX1BZVEVTVF9UT1hfQ09WRVJBR0VfUlVOPWNvdmVyYWdlIHJ1biAtbSINCisgIHNldCAi
X1BZVEVTVF9UT1hfRVhUUkFfREVQPWNvdmVyYWdlLWVuYWJsZS1zdWJwcm9jZXNzIg0KKyAgZWNo
byBDb3ZlcmFnZSB2YXJzIGNvbmZpZ3VyZWQsIFBZVEVTVF9DT1ZFUkFHRT0lUFlURVNUX0NPVkVS
QUdFJQ0KKykgZWxzZSAoDQorICBlY2hvIFNraXBwaW5nIGNvdmVyYWdlIHZhcnMgc2V0dXAsIFBZ
VEVTVF9DT1ZFUkFHRT0lUFlURVNUX0NPVkVSQUdFJQ0KKykNCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zY3JpcHRzL3VwbG9hZC1jb3ZlcmFnZS5iYXQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3Vw
bG9hZC1jb3ZlcmFnZS5iYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMyMTFkYzU1ODg3MDY5Y2VlZTRiYjc3NzE1
MWE5NzlhNDc5MWU1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvdXBs
b2FkLWNvdmVyYWdlLmJhdApAQCAtMCwwICsxLDE2IEBACitSRU0gc2NyaXB0IGNhbGxlZCBieSBB
enVyZSB0byBjb21iaW5lIGFuZCB1cGxvYWQgY292ZXJhZ2UgaW5mb3JtYXRpb24gdG8gY29kZWNv
dg0KK2lmICIlUFlURVNUX0NPVkVSQUdFJSIgPT0gIjEiICgNCisgICAgZWNobyBQcmVwYXJlIHRv
IHVwbG9hZCBjb3ZlcmFnZSBpbmZvcm1hdGlvbg0KKyAgICBpZiBkZWZpbmVkIENPREVDT1ZfVE9L
RU4gKA0KKyAgICAgICAgZWNobyBDT0RFQ09WX1RPS0VOIGRlZmluZWQNCisgICAgKSBlbHNlICgN
CisgICAgICAgIGVjaG8gQ09ERUNPVl9UT0tFTiBOT1QgZGVmaW5lZA0KKyAgICApDQorICAgIHB5
dGhvbiAtbSBwaXAgaW5zdGFsbCBjb2RlY292DQorICAgIHB5dGhvbiAtbSBjb3ZlcmFnZSBjb21i
aW5lDQorICAgIHB5dGhvbiAtbSBjb3ZlcmFnZSB4bWwNCisgICAgcHl0aG9uIC1tIGNvdmVyYWdl
IHJlcG9ydCAtbQ0KKyAgICBzY3JpcHRzXHJldHJ5IHB5dGhvbiAtbSBjb2RlY292IC0tcmVxdWly
ZWQgLVggZ2NvdiBweWNvdiBzZWFyY2ggLWYgY292ZXJhZ2UueG1sIC0tbmFtZSAlUFlURVNUX0NP
REVDT1ZfTkFNRSUNCispIGVsc2UgKA0KKyAgICBlY2hvIFNraXBwaW5nIGNvdmVyYWdlIHVwbG9h
ZCwgUFlURVNUX0NPVkVSQUdFPSVQWVRFU1RfQ09WRVJBR0UlDQorKQ0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3cz
Yy1pbXBvcnQubG9nCmluZGV4IDYxMTQ2M2VjZGU0NTRhYzQ0YWY3MDg5NjE5YjUzOWNiNzZkY2Vh
OTguLmE3MDI2MjY2MTIxMzUxNTU0NTU3NmU4YTczZWUxOWRlYTgzMWY4MWIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2Ny
aXB0cy93M2MtaW1wb3J0LmxvZwpAQCAtMTQsNSArMTQsMTIgQEAgUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9jYWxsLXRveC5iYXQKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
Y3JpcHRzL2luc3RhbGwtcHlweS5iYXQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2FwcGVuZF9jb2Rl
Y292X3Rva2VuLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9wdWJsaXNoX2doX3JlbGVhc2Vfbm90
ZXMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3JlbGVhc2UubWlub3IucnN0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc2NyaXB0cy9yZWxlYXNlLnBhdGNoLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcmVsZWFz
ZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcmVwb3J0LWNvdmVyYWdlLnNoCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc2NyaXB0cy9yZXRyeS5jbWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3NldHVwLWNvdmVyYWdl
LXZhcnMuYmF0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy91cGxvYWQtY292ZXJhZ2UuYmF0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zZXR1cC5jZmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zZXR1cC5jZmcKaW5k
ZXggODE2NTM5ZTJlYzZmYjhkNzllMDgwNDllNTRiNTk2NTEwMDI4YWFkOS4uMzY4ZGYxZTFhYzA3
N2FkYmIyZDc2OTliNmU5NmM4NjYwM2YzMDU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2V0
dXAuY2ZnCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLmNmZwpAQCAtMSwzICsxLDU4IEBACitbbWV0
YWRhdGFdCisKK25hbWUgPSBweXRlc3QKK2Rlc2NyaXB0aW9uID0gcHl0ZXN0OiBzaW1wbGUgcG93
ZXJmdWwgdGVzdGluZyB3aXRoIFB5dGhvbgorbG9uZ19kZXNjcmlwdGlvbiA9IGZpbGU6IFJFQURN
RS5yc3QKK3VybCA9IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC8KK3Byb2plY3Rf
dXJscyA9CisgICAgU291cmNlPWh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdAor
ICAgIFRyYWNrZXI9aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcwor
CithdXRob3IgPSBIb2xnZXIgS3Jla2VsLCBCcnVubyBPbGl2ZWlyYSwgUm9ubnkgUGZhbm5zY2ht
aWR0LCBGbG9yaXMgQnJ1eW5vb2doZSwgQnJpYW5uYSBMYXVnaGVyLCBGbG9yaWFuIEJydWhpbiBh
bmQgb3RoZXJzCisKK2xpY2Vuc2UgPSBNSVQgbGljZW5zZQorbGljZW5zZV9maWxlID0gTElDRU5T
RQora2V5d29yZHMgPSB0ZXN0LCB1bml0dGVzdAorY2xhc3NpZmllcnMgPQorICAgIERldmVsb3Bt
ZW50IFN0YXR1cyA6OiA2IC0gTWF0dXJlCisgICAgSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxv
cGVycworICAgIExpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IE1JVCBMaWNlbnNlCisgICAgT3Bl
cmF0aW5nIFN5c3RlbSA6OiBQT1NJWAorICAgIE9wZXJhdGluZyBTeXN0ZW0gOjogTWljcm9zb2Z0
IDo6IFdpbmRvd3MKKyAgICBPcGVyYXRpbmcgU3lzdGVtIDo6IE1hY09TIDo6IE1hY09TIFgKKyAg
ICBUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBUZXN0aW5nCisgICAgVG9waWMgOjog
U29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzCisgICAgVG9waWMgOjogVXRpbGl0aWVz
CisgICAgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIKKyAgICBQcm9ncmFtbWlu
ZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43CisgICAgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjog
UHl0aG9uIDo6IDMKKyAgICBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy40Cisg
ICAgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNQorICAgIFByb2dyYW1taW5n
IExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjYKKyAgICBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQ
eXRob24gOjogMy43CisgICAgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuOAor
ICAgIFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjkKK3BsYXRmb3JtcyA9IHVu
aXgsIGxpbnV4LCBvc3gsIGN5Z3dpbiwgd2luMzIKKworW29wdGlvbnNdCit6aXBfc2FmZSA9IG5v
CitwYWNrYWdlcyA9CisgICAgX3B5dGVzdAorICAgIF9weXRlc3QuX2NvZGUKKyAgICBfcHl0ZXN0
Ll9pbworICAgIF9weXRlc3QuYXNzZXJ0aW9uCisgICAgX3B5dGVzdC5jb25maWcKKyAgICBfcHl0
ZXN0Lm1hcmsKKworcHlfbW9kdWxlcyA9IHB5dGVzdAorcHl0aG9uX3JlcXVpcmVzID0gPj0yLjcs
ICE9My4wLiosICE9My4xLiosICE9My4yLiosICE9My4zLioKKworCitbb3B0aW9ucy5lbnRyeV9w
b2ludHNdCitjb25zb2xlX3NjcmlwdHMgPQorCXB5dGVzdD1weXRlc3Q6bWFpbgorCXB5LnRlc3Q9
cHl0ZXN0Om1haW4KKwogW2J1aWxkX3NwaGlueF0KIHNvdXJjZS1kaXIgPSBkb2MvZW4vCiBidWls
ZC1kaXIgPSBkb2MvYnVpbGQKQEAgLTEzLDggKzY4LDYgQEAgdW5pdmVyc2FsID0gMQogaWdub3Jl
ID0KICAgX3B5dGVzdC9fdmVyc2lvbi5weQogCi1bbWV0YWRhdGFdCi1saWNlbnNlX2ZpbGUgPSBM
SUNFTlNFCiAKIFtkZXZwaTp1cGxvYWRdCiBmb3JtYXRzID0gc2Rpc3QudGd6LGJkaXN0X3doZWVs
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLnB5
CmluZGV4IDNkNjBkNmJlY2Y4NDczYzBiZDk1M2IwN2U4ODg5YTk1YjBlYjQzZTAuLjEwNTNiY2U0
YTVhMDRiN2E0ZDFiZDYyZWYzZDk1ZWI4NjhiZjg0MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NldHVwLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLnB5CkBAIC0xLDEyMiArMSw0MyBAQAot
aW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1pbXBvcnQgc2V0dXB0b29scwotaW1wb3J0IHBrZ19yZXNv
dXJjZXMKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNl
dHVwCiAKLWNsYXNzaWZpZXJzID0gWwotICAgICJEZXZlbG9wbWVudCBTdGF0dXMgOjogNiAtIE1h
dHVyZSIsCi0gICAgIkludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMiLAotICAgICJMaWNl
bnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZSIsCi0gICAgIk9wZXJhdGluZyBTeXN0
ZW0gOjogUE9TSVgiLAotICAgICJPcGVyYXRpbmcgU3lzdGVtIDo6IE1pY3Jvc29mdCA6OiBXaW5k
b3dzIiwKLSAgICAiT3BlcmF0aW5nIFN5c3RlbSA6OiBNYWNPUyA6OiBNYWNPUyBYIiwKLSAgICAi
VG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogVGVzdGluZyIsCi0gICAgIlRvcGljIDo6
IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcyIsCi0gICAgIlRvcGljIDo6IFV0aWxp
dGllcyIsCi1dICsgWwotICAgICgiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6ICVz
IiAlIHgpCi0gICAgZm9yIHggaW4gIjIgMi43IDMgMy40IDMuNSAzLjYgMy43Ii5zcGxpdCgpCisj
IFRPRE86IGlmIHB5IGdldHMgdXBncmFkZSB0byA+PTEuNiwKKyMgICAgICAgcmVtb3ZlIF93aWR0
aF9vZl9jdXJyZW50X2xpbmUgaW4gdGVybWluYWwucHkKK0lOU1RBTExfUkVRVUlSRVMgPSBbCisg
ICAgInB5Pj0xLjUuMCIsCisgICAgInNpeD49MS4xMC4wIiwKKyAgICAicGFja2FnaW5nIiwKKyAg
ICAiYXR0cnM+PTE3LjQuMCIsCisgICAgJ21vcmUtaXRlcnRvb2xzPj00LjAuMCw8Ni4wLjA7cHl0
aG9uX3ZlcnNpb248PSIyLjciJywKKyAgICAnbW9yZS1pdGVydG9vbHM+PTQuMC4wO3B5dGhvbl92
ZXJzaW9uPiIyLjciJywKKyAgICAiYXRvbWljd3JpdGVzPj0xLjAiLAorICAgICdmdW5jc2lncz49
MS4wO3B5dGhvbl92ZXJzaW9uPCIzLjAiJywKKyAgICAncGF0aGxpYjI+PTIuMi4wO3B5dGhvbl92
ZXJzaW9uPCIzLjYiJywKKyAgICAnY29sb3JhbWE8PTAuNC4xO3N5c19wbGF0Zm9ybT09IndpbjMy
IiBhbmQgcHl0aG9uX3ZlcnNpb249PSIzLjQiJywKKyAgICAnY29sb3JhbWE7c3lzX3BsYXRmb3Jt
PT0id2luMzIiIGFuZCBweXRob25fdmVyc2lvbiE9IjMuNCInLAorICAgICJwbHVnZ3k+PTAuMTIs
PDEuMCIsCisgICAgJ2ltcG9ydGxpYi1tZXRhZGF0YT49MC4xMjtweXRob25fdmVyc2lvbjwiMy44
IicsCisgICAgIndjd2lkdGgiLAogXQogCi13aXRoIG9wZW4oIlJFQURNRS5yc3QiKSBhcyBmZDoK
LSAgICBsb25nX2Rlc2NyaXB0aW9uID0gZmQucmVhZCgpCi0KLQotZGVmIGdldF9lbnZpcm9ubWVu
dF9tYXJrZXJfc3VwcG9ydF9sZXZlbCgpOgotICAgICIiIgotICAgIFRlc3RzIGhvdyB3ZWxsIHNl
dHVwdG9vbHMgc3VwcG9ydHMgUEVQLTQyNiBlbnZpcm9ubWVudCBtYXJrZXIuCi0KLSAgICBUaGUg
Zmlyc3Qga25vd24gcmVsZWFzZSB0byBzdXBwb3J0IGl0IGlzIDAuNyAoYW5kIHRoZSBlYXJsaWVz
dCBvbiBQeVBJIHNlZW1zIHRvIGJlIDAuNy4yCi0gICAgc28gd2UncmUgdXNpbmcgdGhhdCksIHNl
ZTogaHR0cHM6Ly9zZXR1cHRvb2xzLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9oaXN0b3J5Lmh0
bWwjaWQzNTAKLQotICAgIFRoZSBzdXBwb3J0IGlzIGxhdGVyIGVuaGFuY2VkIHRvIGFsbG93IGRp
cmVjdCBjb25kaXRpb25hbCBpbmNsdXNpb25zIGluc2lkZSBpbnN0YWxsX3JlcXVpcmVzLAotICAg
IHdoaWNoIGlzIG5vdyByZWNvbW1lbmRlZCBieSBzZXR1cHRvb2xzLiBJdCBmaXJzdCBhcHBlYXJl
ZCBpbiAzNi4yLjAsIHdlbnQgYnJva2VuIHdpdGggMzYuMi4xLCBhbmQKLSAgICBhZ2FpbiB3b3Jr
ZWQgc2luY2UgMzYuMi4yLCBzbyB3ZSdyZSB1c2luZyB0aGF0LiBTZWU6Ci0gICAgaHR0cHM6Ly9z
ZXR1cHRvb2xzLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9oaXN0b3J5Lmh0bWwjdjM2LTItMgot
ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXBhL3NldHVwdG9vbHMvaXNzdWVzLzEwOTkKLQotICAg
IFJlZmVyZW5jZXM6Ci0KLSAgICAqIGh0dHBzOi8vd2hlZWwucmVhZHRoZWRvY3MuaW8vZW4vbGF0
ZXN0L2luZGV4Lmh0bWwjZGVmaW5pbmctY29uZGl0aW9uYWwtZGVwZW5kZW5jaWVzCi0gICAgKiBo
dHRwczovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wNDI2LyNlbnZpcm9ubWVudC1tYXJr
ZXJzCi0gICAgKiBodHRwczovL3NldHVwdG9vbHMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3Nl
dHVwdG9vbHMuaHRtbCNkZWNsYXJpbmctcGxhdGZvcm0tc3BlY2lmaWMtZGVwZW5kZW5jaWVzCi0g
ICAgIiIiCi0gICAgdHJ5OgotICAgICAgICB2ZXJzaW9uID0gcGtnX3Jlc291cmNlcy5wYXJzZV92
ZXJzaW9uKHNldHVwdG9vbHMuX192ZXJzaW9uX18pCi0gICAgICAgIGlmIHZlcnNpb24gPj0gcGtn
X3Jlc291cmNlcy5wYXJzZV92ZXJzaW9uKCIzNi4yLjIiKToKLSAgICAgICAgICAgIHJldHVybiAy
Ci0gICAgICAgIGlmIHZlcnNpb24gPj0gcGtnX3Jlc291cmNlcy5wYXJzZV92ZXJzaW9uKCIwLjcu
MiIpOgotICAgICAgICAgICAgcmV0dXJuIDEKLSAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4YzoK
LSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiQ291bGQgbm90IHRlc3Qgc2V0dXB0b29sJ3MgdmVy
c2lvbjogJXNcbiIgJSBleGMpCi0KLSAgICAjIGFzIG9mIHRlc3Rpbmcgb24gMjAxOC0wNS0yNiBm
ZWRvcmEgd2FzIG9uIHZlcnNpb24gMzcqIGFuZCBkZWJpYW4gd2FzIG9uIHZlcnNpb24gMzMrCi0g
ICAgIyB3ZSBzaG91bGQgY29uc2lkZXIgZXJyb3Jpbmcgb24gdGhvc2UKLSAgICByZXR1cm4gMAot
CiAKIGRlZiBtYWluKCk6Ci0gICAgZXh0cmFzX3JlcXVpcmUgPSB7fQotICAgIGluc3RhbGxfcmVx
dWlyZXMgPSBbCi0gICAgICAgICJweT49MS41LjAiLAotICAgICAgICAic2l4Pj0xLjEwLjAiLAot
ICAgICAgICAic2V0dXB0b29scyIsCi0gICAgICAgICJhdHRycz49MTcuNC4wIiwKLSAgICAgICAg
Im1vcmUtaXRlcnRvb2xzPj00LjAuMCIsCi0gICAgICAgICJhdG9taWN3cml0ZXM+PTEuMCIsCi0g
ICAgXQotICAgICMgaWYgX1BZVEVTVF9TRVRVUF9TS0lQX1BMVUdHWV9ERVAgaXMgc2V0LCBza2lw
IGluc3RhbGxpbmcgcGx1Z2d5OwotICAgICMgdXNlZCBieSB0b3guaW5pIHRvIHRlc3Qgd2l0aCBw
bHVnZ3kgbWFzdGVyCi0gICAgaWYgIl9QWVRFU1RfU0VUVVBfU0tJUF9QTFVHR1lfREVQIiBub3Qg
aW4gb3MuZW52aXJvbjoKLSAgICAgICAgaW5zdGFsbF9yZXF1aXJlcy5hcHBlbmQoInBsdWdneT49
MC41LDwwLjciKQotICAgIGVudmlyb25tZW50X21hcmtlcl9zdXBwb3J0X2xldmVsID0gZ2V0X2Vu
dmlyb25tZW50X21hcmtlcl9zdXBwb3J0X2xldmVsKCkKLSAgICBpZiBlbnZpcm9ubWVudF9tYXJr
ZXJfc3VwcG9ydF9sZXZlbCA+PSAyOgotICAgICAgICBpbnN0YWxsX3JlcXVpcmVzLmFwcGVuZCgn
ZnVuY3NpZ3M7cHl0aG9uX3ZlcnNpb248IjMuMCInKQotICAgICAgICBpbnN0YWxsX3JlcXVpcmVz
LmFwcGVuZCgnY29sb3JhbWE7c3lzX3BsYXRmb3JtPT0id2luMzIiJykKLSAgICBlbGlmIGVudmly
b25tZW50X21hcmtlcl9zdXBwb3J0X2xldmVsID09IDE6Ci0gICAgICAgIGV4dHJhc19yZXF1aXJl
Wyc6cHl0aG9uX3ZlcnNpb248IjMuMCInXSA9IFsiZnVuY3NpZ3MiXQotICAgICAgICBleHRyYXNf
cmVxdWlyZVsnOnN5c19wbGF0Zm9ybT09IndpbjMyIiddID0gWyJjb2xvcmFtYSJdCi0gICAgZWxz
ZToKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAgICAgICAgICBpbnN0
YWxsX3JlcXVpcmVzLmFwcGVuZCgiY29sb3JhbWEiKQotICAgICAgICBpZiBzeXMudmVyc2lvbl9p
bmZvIDwgKDMsIDApOgotICAgICAgICAgICAgaW5zdGFsbF9yZXF1aXJlcy5hcHBlbmQoImZ1bmNz
aWdzIikKLQogICAgIHNldHVwKAotICAgICAgICBuYW1lPSJweXRlc3QiLAotICAgICAgICBkZXNj
cmlwdGlvbj0icHl0ZXN0OiBzaW1wbGUgcG93ZXJmdWwgdGVzdGluZyB3aXRoIFB5dGhvbiIsCi0g
ICAgICAgIGxvbmdfZGVzY3JpcHRpb249bG9uZ19kZXNjcmlwdGlvbiwKICAgICAgICAgdXNlX3Nj
bV92ZXJzaW9uPXsid3JpdGVfdG8iOiAic3JjL19weXRlc3QvX3ZlcnNpb24ucHkifSwKLSAgICAg
ICAgdXJsPSJodHRwOi8vcHl0ZXN0Lm9yZyIsCi0gICAgICAgIHByb2plY3RfdXJscz17Ci0gICAg
ICAgICAgICAiU291cmNlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdCIs
Ci0gICAgICAgICAgICAiVHJhY2tlciI6ICJodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzIiwKLSAgICAgICAgfSwKLSAgICAgICAgbGljZW5zZT0iTUlUIGxpY2Vuc2Ui
LAotICAgICAgICBwbGF0Zm9ybXM9WyJ1bml4IiwgImxpbnV4IiwgIm9zeCIsICJjeWd3aW4iLCAi
d2luMzIiXSwKLSAgICAgICAgYXV0aG9yPSgKLSAgICAgICAgICAgICJIb2xnZXIgS3Jla2VsLCBC
cnVubyBPbGl2ZWlyYSwgUm9ubnkgUGZhbm5zY2htaWR0LCAiCi0gICAgICAgICAgICAiRmxvcmlz
IEJydXlub29naGUsIEJyaWFubmEgTGF1Z2hlciwgRmxvcmlhbiBCcnVoaW4gYW5kIG90aGVycyIK
LSAgICAgICAgKSwKLSAgICAgICAgZW50cnlfcG9pbnRzPXsiY29uc29sZV9zY3JpcHRzIjogWyJw
eXRlc3Q9cHl0ZXN0Om1haW4iLCAicHkudGVzdD1weXRlc3Q6bWFpbiJdfSwKLSAgICAgICAgY2xh
c3NpZmllcnM9Y2xhc3NpZmllcnMsCi0gICAgICAgIGtleXdvcmRzPSJ0ZXN0IHVuaXR0ZXN0IiwK
LSAgICAgICAgIyB0aGUgZm9sbG93aW5nIHNob3VsZCBiZSBlbmFibGVkIGZvciByZWxlYXNlCi0g
ICAgICAgIHNldHVwX3JlcXVpcmVzPVsic2V0dXB0b29scy1zY20iXSwKKyAgICAgICAgc2V0dXBf
cmVxdWlyZXM9WyJzZXR1cHRvb2xzLXNjbSIsICJzZXR1cHRvb2xzPj00MC4wIl0sCiAgICAgICAg
IHBhY2thZ2VfZGlyPXsiIjogInNyYyJ9LAotICAgICAgICBweXRob25fcmVxdWlyZXM9Ij49Mi43
LCAhPTMuMC4qLCAhPTMuMS4qLCAhPTMuMi4qLCAhPTMuMy4qIiwKLSAgICAgICAgaW5zdGFsbF9y
ZXF1aXJlcz1pbnN0YWxsX3JlcXVpcmVzLAotICAgICAgICBleHRyYXNfcmVxdWlyZT1leHRyYXNf
cmVxdWlyZSwKLSAgICAgICAgcGFja2FnZXM9WwotICAgICAgICAgICAgIl9weXRlc3QiLAotICAg
ICAgICAgICAgIl9weXRlc3QuYXNzZXJ0aW9uIiwKLSAgICAgICAgICAgICJfcHl0ZXN0Ll9jb2Rl
IiwKLSAgICAgICAgICAgICJfcHl0ZXN0Lm1hcmsiLAotICAgICAgICAgICAgIl9weXRlc3QuY29u
ZmlnIiwKLSAgICAgICAgXSwKLSAgICAgICAgcHlfbW9kdWxlcz1bInB5dGVzdCJdLAotICAgICAg
ICB6aXBfc2FmZT1GYWxzZSwKKyAgICAgICAgIyBmbXQ6IG9mZgorICAgICAgICBleHRyYXNfcmVx
dWlyZT17CisgICAgICAgICAgICAidGVzdGluZyI6IFsKKyAgICAgICAgICAgICAgICAiYXJnY29t
cGxldGUiLAorICAgICAgICAgICAgICAgICJoeXBvdGhlc2lzPj0zLjU2IiwKKyAgICAgICAgICAg
ICAgICAibm9zZSIsCisgICAgICAgICAgICAgICAgInJlcXVlc3RzIiwKKyAgICAgICAgICAgICAg
ICAibW9jaztweXRob25fdmVyc2lvbj09JzIuNyciLAorICAgICAgICAgICAgXSwKKyAgICAgICAg
fSwKKyAgICAgICAgIyBmbXQ6IG9uCisgICAgICAgIGluc3RhbGxfcmVxdWlyZXM9SU5TVEFMTF9S
RVFVSVJFUywKICAgICApCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
X19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fX2luaXRfXy5weQppbmRleCA0
NmM3ODI3ZWQ1ZWM2MmI0NjEzYmYzMWQ4MzMxZjczMWEyNGQzNGE5Li4xN2NjMjBiNjE1YWMwZjAy
M2U0YWNhNTQwYTc1NTc3MzEzMzg4Mjc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fX2luaXRfXy5w
eQpAQCAtMSwzICsxLDQgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiBfX2FsbF9fID0gWyJf
X3ZlcnNpb25fXyJdCiAKIHRyeToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0
L19hcmdjb21wbGV0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19hcmdjb21wbGV0ZS5w
eQppbmRleCA4ZjQ4MGQ3MWQ3OWZhOTMxZjE2NDQyN2E1OGQ5ODRhZDhkNDE1MTI1Li5jNmNmMWQ4
ZmRkZDFhMGYxMTg0YWZlNzlmZGFmMWE4OWM5NWM3YjI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9fYXJnY29tcGxldGUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvX2FyZ2NvbXBsZXRlLnB5CkBAIC0xLDQgKzEsNCBAQAotCisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQogIiIiYWxsb3cgYmFzaC1jb21wbGV0aW9uIGZvciBhcmdwYXJzZSB3aXRoIGFyZ2NvbXBs
ZXRlIGlmIGluc3RhbGxlZAogbmVlZHMgYXJnY29tcGxldGU+PTAuNS42IGZvciBweXRob24gMy4y
LzMuMyAob2xkZXIgdmVyc2lvbnMgZmFpbAogdG8gZmluZCB0aGUgbWFnaWMgc3RyaW5nLCBzbyBf
QVJHQ09NUExFVEUgZW52LiB2YXIgaXMgbmV2ZXIgc2V0LCBhbmQKQEAgLTU0LDkgKzU0LDEyIEBA
IElmIHRoaW5ncyBkbyBub3Qgd29yayByaWdodCBhd2F5OgogICB3aGljaCBzaG91bGQgdGhyb3cg
YSBLZXlFcnJvcjogJ0NPTVBMSU5FJyAod2hpY2ggaXMgcHJvcGVybHkgc2V0IGJ5IHRoZQogICBn
bG9iYWwgYXJnY29tcGxldGUgc2NyaXB0KS4KICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBh
YnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHN5cworZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1w
b3J0IG9zCitpbXBvcnQgc3lzCiBmcm9tIGdsb2IgaW1wb3J0IGdsb2IKIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS9fX2luaXRfXy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L19jb2RlL19faW5pdF9fLnB5CmluZGV4IDgxNWMxM2I0MmMyNWJkMzE0OTg4
ZGJhYTdmZjlmNGUzZDFkMmU1YzIuLjEzOTRiMmIxMGU2OWZjZWMwYzRlMGM3OWY4NjllZmFiZGJk
N2QyMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL19faW5pdF9f
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL19faW5pdF9fLnB5CkBAIC0x
LDEwICsxLDE1IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiIHB5dGhvbiBpbnNwZWN0
aW9uL2NvZGUgZ2VuZXJhdGlvbiBBUEkgIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBmcm9tIC5jb2RlIGltcG9ydCBD
b2RlICAjIG5vcWEKIGZyb20gLmNvZGUgaW1wb3J0IEV4Y2VwdGlvbkluZm8gICMgbm9xYQorZnJv
bSAuY29kZSBpbXBvcnQgZmlsdGVyX3RyYWNlYmFjayAgIyBub3FhCiBmcm9tIC5jb2RlIGltcG9y
dCBGcmFtZSAgIyBub3FhCi1mcm9tIC5jb2RlIGltcG9ydCBUcmFjZWJhY2sgICMgbm9xYQogZnJv
bSAuY29kZSBpbXBvcnQgZ2V0cmF3Y29kZSAgIyBub3FhCi1mcm9tIC5zb3VyY2UgaW1wb3J0IFNv
dXJjZSAgIyBub3FhCitmcm9tIC5jb2RlIGltcG9ydCBUcmFjZWJhY2sgICMgbm9xYQogZnJvbSAu
c291cmNlIGltcG9ydCBjb21waWxlXyBhcyBjb21waWxlICAjIG5vcWEKIGZyb20gLnNvdXJjZSBp
bXBvcnQgZ2V0ZnNsaW5lbm8gICMgbm9xYQorZnJvbSAuc291cmNlIGltcG9ydCBTb3VyY2UgICMg
bm9xYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2NvZGUvX3B5MnRyYWNl
YmFjay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL19weTJ0cmFjZWJhY2sucHkK
aW5kZXggMmRkMTAwYzMzYmRkYWVkOGYwZTIzMTIyMjBjMWI4OWFkMWI5N2M2Ni4uZmFhY2MwMjE2
NmUxNjU4NDJmNTZiMTUyNDRiYWQwYjhmOTNkYzdiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3QvX2NvZGUvX3B5MnRyYWNlYmFjay5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC9fY29kZS9fcHkydHJhY2ViYWNrLnB5CkBAIC0xLDkgKzEsMTUgQEAKKyMgLSotIGNv
ZGluZzogdXRmLTggLSotCiAjIGNvcGllZCBmcm9tIHB5dGhvbi0yLjcuMydzIHRyYWNlYmFjay5w
eQogIyBDSEFOR0VTOgogIyAtIHNvbWVfc3RyIGlzIHJlcGxhY2VkLCB0cnlpbmcgdG8gY3JlYXRl
IHVuaWNvZGUgc3RyaW5ncwogIwotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29k
ZV9saXRlcmFscworCiBpbXBvcnQgdHlwZXMKKwogZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQog
CiAKQEAgLTUxLDE3ICs1NywxNyBAQCBkZWYgZm9ybWF0X2V4Y2VwdGlvbl9vbmx5KGV0eXBlLCB2
YWx1ZSk6CiAgICAgICAgIHBhc3MKICAgICBlbHNlOgogICAgICAgICBmaWxlbmFtZSA9IGZpbGVu
YW1lIG9yICI8c3RyaW5nPiIKLSAgICAgICAgbGluZXMuYXBwZW5kKCcgIEZpbGUgIiVzIiwgbGlu
ZSAlZFxuJyAlIChmaWxlbmFtZSwgbGluZW5vKSkKKyAgICAgICAgbGluZXMuYXBwZW5kKCcgIEZp
bGUgInt9IiwgbGluZSB7fVxuJy5mb3JtYXQoZmlsZW5hbWUsIGxpbmVubykpCiAgICAgICAgIGlm
IGJhZGxpbmUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGJhZGxpbmUs
IGJ5dGVzKTogICMgcHl0aG9uIDIgb25seQogICAgICAgICAgICAgICAgIGJhZGxpbmUgPSBiYWRs
aW5lLmRlY29kZSgidXRmLTgiLCAicmVwbGFjZSIpCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQo
dSIgICAgJXNcbiIgJSBiYWRsaW5lLnN0cmlwKCkpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQo
IiAgICB7fVxuIi5mb3JtYXQoYmFkbGluZS5zdHJpcCgpKSkKICAgICAgICAgICAgIGlmIG9mZnNl
dCBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICBjYXJldHNwYWNlID0gYmFkbGluZS5yc3Ry
aXAoIlxuIilbOm9mZnNldF0ubHN0cmlwKCkKICAgICAgICAgICAgICAgICAjIG5vbi1zcGFjZSB3
aGl0ZXNwYWNlIChsaWtlcyB0YWJzKSBtdXN0IGJlIGtlcHQgZm9yIGFsaWdubWVudAogICAgICAg
ICAgICAgICAgIGNhcmV0c3BhY2UgPSAoKGMuaXNzcGFjZSgpIGFuZCBjIG9yICIgIikgZm9yIGMg
aW4gY2FyZXRzcGFjZSkKICAgICAgICAgICAgICAgICAjIG9ubHkgdGhyZWUgc3BhY2VzIHRvIGFj
Y291bnQgZm9yIG9mZnNldDEgPT0gcG9zIDAKLSAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQo
IiAgICVzXlxuIiAlICIiLmpvaW4oY2FyZXRzcGFjZSkpCisgICAgICAgICAgICAgICAgbGluZXMu
YXBwZW5kKCIgICB7fV5cbiIuZm9ybWF0KCIiLmpvaW4oY2FyZXRzcGFjZSkpKQogICAgICAgICB2
YWx1ZSA9IG1zZwogCiAgICAgbGluZXMuYXBwZW5kKF9mb3JtYXRfZmluYWxfZXhjX2xpbmUoc3R5
cGUsIHZhbHVlKSkKQEAgLTcyLDkgKzc4LDkgQEAgZGVmIF9mb3JtYXRfZmluYWxfZXhjX2xpbmUo
ZXR5cGUsIHZhbHVlKToKICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGEgc2luZ2xlIGxpbmUgLS0g
bm9ybWFsIGNhc2UgZm9yIGZvcm1hdF9leGNlcHRpb25fb25seSIiIgogICAgIHZhbHVlc3RyID0g
X3NvbWVfc3RyKHZhbHVlKQogICAgIGlmIHZhbHVlIGlzIE5vbmUgb3Igbm90IHZhbHVlc3RyOgot
ICAgICAgICBsaW5lID0gIiVzXG4iICUgZXR5cGUKKyAgICAgICAgbGluZSA9ICJ7fVxuIi5mb3Jt
YXQoZXR5cGUpCiAgICAgZWxzZToKLSAgICAgICAgbGluZSA9ICIlczogJXNcbiIgJSAoZXR5cGUs
IHZhbHVlc3RyKQorICAgICAgICBsaW5lID0gInt9OiB7fVxuIi5mb3JtYXQoZXR5cGUsIHZhbHVl
c3RyKQogICAgIHJldHVybiBsaW5lCiAKIApAQCAtODMsNyArODksNyBAQCBkZWYgX3NvbWVfc3Ry
KHZhbHVlKToKICAgICAgICAgcmV0dXJuIHRleHRfdHlwZSh2YWx1ZSkKICAgICBleGNlcHQgRXhj
ZXB0aW9uOgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc3RyKHZhbHVlKQorICAg
ICAgICAgICAgcmV0dXJuIGJ5dGVzKHZhbHVlKS5kZWNvZGUoIlVURi04IiwgInJlcGxhY2UiKQog
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgcGFzcwotICAgIHJldHVybiAi
PHVucHJpbnRhYmxlICVzIG9iamVjdD4iICUgdHlwZSh2YWx1ZSkuX19uYW1lX18KKyAgICByZXR1
cm4gIjx1bnByaW50YWJsZSB7fSBvYmplY3Q+Ii5mb3JtYXQodHlwZSh2YWx1ZSkuX19uYW1lX18p
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS9jb2RlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3Qvc3JjL19weXRlc3QvX2NvZGUvY29kZS5weQppbmRleCBjYjc4OGMxN2YwNGJhZTcy
ZTNiY2E1MjE0NTlhZmMwNjZmYjQyYmUyLi4xNzVkNmZkYTAxZDQwYzcwMGU0MDJhNmUyOTJjZDk0
OWQ4MDBhZWI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS9jb2Rl
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL2NvZGUucHkKQEAgLTEsMTcg
KzEsMjggQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lv
biwgcHJpbnRfZnVuY3Rpb24KKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lv
bgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgaW5zcGVj
dAoraW1wb3J0IHJlCiBpbXBvcnQgc3lzCiBpbXBvcnQgdHJhY2ViYWNrCi1mcm9tIGluc3BlY3Qg
aW1wb3J0IENPX1ZBUkFSR1MsIENPX1ZBUktFWVdPUkRTCitmcm9tIGluc3BlY3QgaW1wb3J0IENP
X1ZBUkFSR1MKK2Zyb20gaW5zcGVjdCBpbXBvcnQgQ09fVkFSS0VZV09SRFMKK2Zyb20gd2Vha3Jl
ZiBpbXBvcnQgcmVmCiAKIGltcG9ydCBhdHRyCi1pbXBvcnQgcmUKLWZyb20gd2Vha3JlZiBpbXBv
cnQgcmVmCi1mcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBfUFkyLCBfUFkzLCBQWTM1LCBzYWZl
X3N0cgotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQoraW1wb3J0IHBsdWdneQogaW1wb3J0IHB5
Citmcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCiAKLWJ1aWx0aW5fcmVwciA9IHJlcHIKK2ltcG9y
dCBfcHl0ZXN0Citmcm9tIF9weXRlc3QuX2lvLnNhZmVyZXByIGltcG9ydCBzYWZlZm9ybWF0Citm
cm9tIF9weXRlc3QuX2lvLnNhZmVyZXByIGltcG9ydCBzYWZlcmVwcgorZnJvbSBfcHl0ZXN0LmNv
bXBhdCBpbXBvcnQgX1BZMgorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgX1BZMworZnJvbSBf
cHl0ZXN0LmNvbXBhdCBpbXBvcnQgUFkzNQorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgc2Fm
ZV9zdHIKIAogaWYgX1BZMzoKICAgICBmcm9tIHRyYWNlYmFjayBpbXBvcnQgZm9ybWF0X2V4Y2Vw
dGlvbl9vbmx5CkBAIC0xMjcsMTIgKzEzOCwxMiBAQCBjbGFzcyBGcmFtZShvYmplY3QpOgogICAg
ICAgICAiIiIKICAgICAgICAgZl9sb2NhbHMgPSBzZWxmLmZfbG9jYWxzLmNvcHkoKQogICAgICAg
ICBmX2xvY2Fscy51cGRhdGUodmFycykKLSAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhjb2RlLCBz
ZWxmLmZfZ2xvYmFscywgZl9sb2NhbHMpCisgICAgICAgIGV4ZWMoY29kZSwgc2VsZi5mX2dsb2Jh
bHMsIGZfbG9jYWxzKQogCiAgICAgZGVmIHJlcHIoc2VsZiwgb2JqZWN0KToKICAgICAgICAgIiIi
IHJldHVybiBhICdzYWZlJyAobm9uLXJlY3Vyc2l2ZSwgb25lLWxpbmUpIHN0cmluZyByZXByIGZv
ciAnb2JqZWN0JwogICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHB5LmlvLnNhZmVyZXByKG9i
amVjdCkKKyAgICAgICAgcmV0dXJuIHNhZmVyZXByKG9iamVjdCkKIAogICAgIGRlZiBpc190cnVl
KHNlbGYsIG9iamVjdCk6CiAgICAgICAgIHJldHVybiBvYmplY3QKQEAgLTIzMCwyNSArMjQxLDIw
IEBAIGNsYXNzIFRyYWNlYmFja0VudHJ5KG9iamVjdCk6CiAKICAgICBkZWYgaXNoaWRkZW4oc2Vs
Zik6CiAgICAgICAgICIiIiByZXR1cm4gVHJ1ZSBpZiB0aGUgY3VycmVudCBmcmFtZSBoYXMgYSB2
YXIgX190cmFjZWJhY2toaWRlX18KLSAgICAgICAgICAgIHJlc29sdmluZyB0byBUcnVlCisgICAg
ICAgICAgICByZXNvbHZpbmcgdG8gVHJ1ZS4KIAogICAgICAgICAgICAgSWYgX190cmFjZWJhY2to
aWRlX18gaXMgYSBjYWxsYWJsZSwgaXQgZ2V0cyBjYWxsZWQgd2l0aCB0aGUKICAgICAgICAgICAg
IEV4Y2VwdGlvbkluZm8gaW5zdGFuY2UgYW5kIGNhbiBkZWNpZGUgd2hldGhlciB0byBoaWRlIHRo
ZSB0cmFjZWJhY2suCiAKICAgICAgICAgICAgIG1vc3RseSBmb3IgaW50ZXJuYWwgdXNlCiAgICAg
ICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0YmggPSBzZWxmLmZyYW1lLmZfbG9j
YWxzWyJfX3RyYWNlYmFja2hpZGVfXyJdCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB0YmggPSBzZWxmLmZyYW1lLmZfZ2xvYmFsc1si
X190cmFjZWJhY2toaWRlX18iXQotICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGlmIGNhbGxhYmxlKHRiaCk6CisgICAg
ICAgIGYgPSBzZWxmLmZyYW1lCisgICAgICAgIHRiaCA9IGYuZl9sb2NhbHMuZ2V0KAorICAgICAg
ICAgICAgIl9fdHJhY2ViYWNraGlkZV9fIiwgZi5mX2dsb2JhbHMuZ2V0KCJfX3RyYWNlYmFja2hp
ZGVfXyIsIEZhbHNlKQorICAgICAgICApCisgICAgICAgIGlmIHRiaCBhbmQgY2FsbGFibGUodGJo
KToKICAgICAgICAgICAgIHJldHVybiB0YmgoTm9uZSBpZiBzZWxmLl9leGNpbmZvIGlzIE5vbmUg
ZWxzZSBzZWxmLl9leGNpbmZvKCkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4g
dGJoCisgICAgICAgIHJldHVybiB0YmgKIAogICAgIGRlZiBfX3N0cl9fKHNlbGYpOgogICAgICAg
ICB0cnk6CkBAIC0yNzQsNiArMjgwLDcgQEAgY2xhc3MgVHJhY2ViYWNrKGxpc3QpOgogICAgICIi
IiBUcmFjZWJhY2sgb2JqZWN0cyBlbmNhcHN1bGF0ZSBhbmQgb2ZmZXIgaGlnaGVyIGxldmVsCiAg
ICAgICAgIGFjY2VzcyB0byBUcmFjZWJhY2sgZW50cmllcy4KICAgICAiIiIKKwogICAgIEVudHJ5
ID0gVHJhY2ViYWNrRW50cnkKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YiwgZXhjaW5mbz1O
b25lKToKQEAgLTM3OCwzNyArMzg1LDg1IEBAIGNvX2VxdWFsID0gY29tcGlsZSgKICkKIAogCitA
YXR0ci5zKHJlcHI9RmFsc2UpCiBjbGFzcyBFeGNlcHRpb25JbmZvKG9iamVjdCk6CiAgICAgIiIi
IHdyYXBzIHN5cy5leGNfaW5mbygpIG9iamVjdHMgYW5kIG9mZmVycwogICAgICAgICBoZWxwIGZv
ciBuYXZpZ2F0aW5nIHRoZSB0cmFjZWJhY2suCiAgICAgIiIiCi0gICAgX3N0cmlwdGV4dCA9ICIi
Ci0gICAgX2Fzc2VydF9zdGFydF9yZXByID0gIkFzc2VydGlvbkVycm9yKHUnYXNzZXJ0ICIgaWYg
X1BZMiBlbHNlICJBc3NlcnRpb25FcnJvcignYXNzZXJ0ICIKIAotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCB0dXA9Tm9uZSwgZXhwcmluZm89Tm9uZSk6Ci0gICAgICAgIGltcG9ydCBfcHl0ZXN0Ll9j
b2RlCisgICAgX2Fzc2VydF9zdGFydF9yZXByID0gKAorICAgICAgICAiQXNzZXJ0aW9uRXJyb3Io
dSdhc3NlcnQgIiBpZiBfUFkyIGVsc2UgIkFzc2VydGlvbkVycm9yKCdhc3NlcnQgIgorICAgICkK
KworICAgIF9leGNpbmZvID0gYXR0ci5pYigpCisgICAgX3N0cmlwdGV4dCA9IGF0dHIuaWIoZGVm
YXVsdD0iIikKKyAgICBfdHJhY2ViYWNrID0gYXR0ci5pYihkZWZhdWx0PU5vbmUpCisKKyAgICBA
Y2xhc3NtZXRob2QKKyAgICBkZWYgZnJvbV9jdXJyZW50KGNscywgZXhwcmluZm89Tm9uZSk6Cisg
ICAgICAgICIiInJldHVybnMgYW4gRXhjZXB0aW9uSW5mbyBtYXRjaGluZyB0aGUgY3VycmVudCB0
cmFjZWJhY2sKKworICAgICAgICAuLiB3YXJuaW5nOjoKKworICAgICAgICAgICAgRXhwZXJpbWVu
dGFsIEFQSQorCisKKyAgICAgICAgOnBhcmFtIGV4cHJpbmZvOiBhIHRleHQgc3RyaW5nIGhlbHBp
bmcgdG8gZGV0ZXJtaW5lIGlmIHdlIHNob3VsZAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0
cmlwIGBgQXNzZXJ0aW9uRXJyb3JgYCBmcm9tIHRoZSBvdXRwdXQsIGRlZmF1bHRzCisgICAgICAg
ICAgICAgICAgICAgICAgICAgdG8gdGhlIGV4Y2VwdGlvbiBtZXNzYWdlL2BgX19zdHJfXygpYGAK
KyAgICAgICAgIiIiCisgICAgICAgIHR1cCA9IHN5cy5leGNfaW5mbygpCisgICAgICAgIGFzc2Vy
dCB0dXBbMF0gaXMgbm90IE5vbmUsICJubyBjdXJyZW50IGV4Y2VwdGlvbiIKKyAgICAgICAgX3N0
cmlwdGV4dCA9ICIiCisgICAgICAgIGlmIGV4cHJpbmZvIGlzIE5vbmUgYW5kIGlzaW5zdGFuY2Uo
dHVwWzFdLCBBc3NlcnRpb25FcnJvcik6CisgICAgICAgICAgICBleHByaW5mbyA9IGdldGF0dHIo
dHVwWzFdLCAibXNnIiwgTm9uZSkKKyAgICAgICAgICAgIGlmIGV4cHJpbmZvIGlzIE5vbmU6Cisg
ICAgICAgICAgICAgICAgZXhwcmluZm8gPSBzYWZlcmVwcih0dXBbMV0pCisgICAgICAgICAgICBp
ZiBleHByaW5mbyBhbmQgZXhwcmluZm8uc3RhcnRzd2l0aChjbHMuX2Fzc2VydF9zdGFydF9yZXBy
KToKKyAgICAgICAgICAgICAgICBfc3RyaXB0ZXh0ID0gIkFzc2VydGlvbkVycm9yOiAiCisKKyAg
ICAgICAgcmV0dXJuIGNscyh0dXAsIF9zdHJpcHRleHQpCisKKyAgICBAY2xhc3NtZXRob2QKKyAg
ICBkZWYgZm9yX2xhdGVyKGNscyk6CisgICAgICAgICIiInJldHVybiBhbiB1bmZpbGxlZCBFeGNl
cHRpb25JbmZvCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gY2xzKE5vbmUpCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgdHlwZShzZWxmKToKKyAgICAgICAgIiIidGhlIGV4Y2VwdGlvbiBj
bGFzcyIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZXhjaW5mb1swXQorCisgICAgQHByb3BlcnR5
CisgICAgZGVmIHZhbHVlKHNlbGYpOgorICAgICAgICAiIiJ0aGUgZXhjZXB0aW9uIHZhbHVlIiIi
CisgICAgICAgIHJldHVybiBzZWxmLl9leGNpbmZvWzFdCisKKyAgICBAcHJvcGVydHkKKyAgICBk
ZWYgdGIoc2VsZik6CisgICAgICAgICIiInRoZSBleGNlcHRpb24gcmF3IHRyYWNlYmFjayIiIgor
ICAgICAgICByZXR1cm4gc2VsZi5fZXhjaW5mb1syXQorCisgICAgQHByb3BlcnR5CisgICAgZGVm
IHR5cGVuYW1lKHNlbGYpOgorICAgICAgICAiIiJ0aGUgdHlwZSBuYW1lIG9mIHRoZSBleGNlcHRp
b24iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYudHlwZS5fX25hbWVfXworCisgICAgQHByb3BlcnR5
CisgICAgZGVmIHRyYWNlYmFjayhzZWxmKToKKyAgICAgICAgIiIidGhlIHRyYWNlYmFjayIiIgor
ICAgICAgICBpZiBzZWxmLl90cmFjZWJhY2sgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3Ry
YWNlYmFjayA9IFRyYWNlYmFjayhzZWxmLnRiLCBleGNpbmZvPXJlZihzZWxmKSkKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3RyYWNlYmFjawogCi0gICAgICAgIGlmIHR1cCBpcyBOb25lOgotICAgICAg
ICAgICAgdHVwID0gc3lzLmV4Y19pbmZvKCkKLSAgICAgICAgICAgIGlmIGV4cHJpbmZvIGlzIE5v
bmUgYW5kIGlzaW5zdGFuY2UodHVwWzFdLCBBc3NlcnRpb25FcnJvcik6Ci0gICAgICAgICAgICAg
ICAgZXhwcmluZm8gPSBnZXRhdHRyKHR1cFsxXSwgIm1zZyIsIE5vbmUpCi0gICAgICAgICAgICAg
ICAgaWYgZXhwcmluZm8gaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgZXhwcmluZm8gPSBw
eS5pby5zYWZlcmVwcih0dXBbMV0pCi0gICAgICAgICAgICAgICAgaWYgZXhwcmluZm8gYW5kIGV4
cHJpbmZvLnN0YXJ0c3dpdGgoc2VsZi5fYXNzZXJ0X3N0YXJ0X3JlcHIpOgotICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9zdHJpcHRleHQgPSAiQXNzZXJ0aW9uRXJyb3I6ICIKLSAgICAgICAgc2Vs
Zi5fZXhjaW5mbyA9IHR1cAotICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIGNsYXNzCi0gICAgICAg
IHNlbGYudHlwZSA9IHR1cFswXQotICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIGluc3RhbmNlCi0g
ICAgICAgIHNlbGYudmFsdWUgPSB0dXBbMV0KLSAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiByYXcg
dHJhY2ViYWNrCi0gICAgICAgIHNlbGYudGIgPSB0dXBbMl0KLSAgICAgICAgIzogdGhlIGV4Y2Vw
dGlvbiB0eXBlIG5hbWUKLSAgICAgICAgc2VsZi50eXBlbmFtZSA9IHNlbGYudHlwZS5fX25hbWVf
XwotICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIHRyYWNlYmFjayAoX3B5dGVzdC5fY29kZS5UcmFj
ZWJhY2sgaW5zdGFuY2UpCi0gICAgICAgIHNlbGYudHJhY2ViYWNrID0gX3B5dGVzdC5fY29kZS5U
cmFjZWJhY2soc2VsZi50YiwgZXhjaW5mbz1yZWYoc2VsZikpCisgICAgQHRyYWNlYmFjay5zZXR0
ZXIKKyAgICBkZWYgdHJhY2ViYWNrKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5fdHJhY2Vi
YWNrID0gdmFsdWUKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5f
ZXhjaW5mbyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuICI8RXhjZXB0aW9uSW5mbyBmb3Ig
cmFpc2VzIGNvbnRleHRtYW5hZ2VyPiIKICAgICAgICAgcmV0dXJuICI8RXhjZXB0aW9uSW5mbyAl
cyB0Ymxlbj0lZD4iICUgKHNlbGYudHlwZW5hbWUsIGxlbihzZWxmLnRyYWNlYmFjaykpCiAKICAg
ICBkZWYgZXhjb25seShzZWxmLCB0cnlzaG9ydD1GYWxzZSk6CkBAIC00MjQsNyArNDc5LDcgQEAg
Y2xhc3MgRXhjZXB0aW9uSW5mbyhvYmplY3QpOgogICAgICAgICB0ZXh0ID0gdGV4dC5yc3RyaXAo
KQogICAgICAgICBpZiB0cnlzaG9ydDoKICAgICAgICAgICAgIGlmIHRleHQuc3RhcnRzd2l0aChz
ZWxmLl9zdHJpcHRleHQpOgotICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0W2xlbihzZWxmLl9z
dHJpcHRleHQpOl0KKyAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dFtsZW4oc2VsZi5fc3RyaXB0
ZXh0KSA6XQogICAgICAgICByZXR1cm4gdGV4dAogCiAgICAgZGVmIGVycmlzaW5zdGFuY2Uoc2Vs
ZiwgZXhjKToKQEAgLTQ0NCwxMyArNDk5LDM2IEBAIGNsYXNzIEV4Y2VwdGlvbkluZm8ob2JqZWN0
KToKICAgICAgICAgYWJzcGF0aD1GYWxzZSwKICAgICAgICAgdGJmaWx0ZXI9VHJ1ZSwKICAgICAg
ICAgZnVuY2FyZ3M9RmFsc2UsCisgICAgICAgIHRydW5jYXRlX2xvY2Fscz1UcnVlLAorICAgICAg
ICBjaGFpbj1UcnVlLAogICAgICk6Ci0gICAgICAgICIiIiByZXR1cm4gc3RyKClhYmxlIHJlcHJl
c2VudGF0aW9uIG9mIHRoaXMgZXhjZXB0aW9uIGluZm8uCi0gICAgICAgICAgICBzaG93bG9jYWxz
OiBzaG93IGxvY2FscyBwZXIgdHJhY2ViYWNrIGVudHJ5Ci0gICAgICAgICAgICBzdHlsZTogbG9u
Z3xzaG9ydHxub3xuYXRpdmUgdHJhY2ViYWNrIHN0eWxlCi0gICAgICAgICAgICB0YmZpbHRlcjog
aGlkZSBlbnRyaWVzICh3aGVyZSBfX3RyYWNlYmFja2hpZGVfXyBpcyB0cnVlKQorICAgICAgICAi
IiIKKyAgICAgICAgUmV0dXJuIHN0cigpYWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGV4Y2Vw
dGlvbiBpbmZvLgorCisgICAgICAgIDpwYXJhbSBib29sIHNob3dsb2NhbHM6CisgICAgICAgICAg
ICBTaG93IGxvY2FscyBwZXIgdHJhY2ViYWNrIGVudHJ5LgorICAgICAgICAgICAgSWdub3JlZCBp
ZiBgYHN0eWxlPT0ibmF0aXZlImBgLgorCisgICAgICAgIDpwYXJhbSBzdHIgc3R5bGU6IGxvbmd8
c2hvcnR8bm98bmF0aXZlIHRyYWNlYmFjayBzdHlsZQorCisgICAgICAgIDpwYXJhbSBib29sIGFi
c3BhdGg6CisgICAgICAgICAgICBJZiBwYXRocyBzaG91bGQgYmUgY2hhbmdlZCB0byBhYnNvbHV0
ZSBvciBsZWZ0IHVuY2hhbmdlZC4KKworICAgICAgICA6cGFyYW0gYm9vbCB0YmZpbHRlcjoKKyAg
ICAgICAgICAgIEhpZGUgZW50cmllcyB0aGF0IGNvbnRhaW4gYSBsb2NhbCB2YXJpYWJsZSBgYF9f
dHJhY2ViYWNraGlkZV9fPT1UcnVlYGAuCisgICAgICAgICAgICBJZ25vcmVkIGlmIGBgc3R5bGU9
PSJuYXRpdmUiYGAuCisKKyAgICAgICAgOnBhcmFtIGJvb2wgZnVuY2FyZ3M6CisgICAgICAgICAg
ICBTaG93IGZpeHR1cmVzICgiZnVuY2FyZ3MiIGZvciBsZWdhY3kgcHVycG9zZXMpIHBlciB0cmFj
ZWJhY2sgZW50cnkuCisKKyAgICAgICAgOnBhcmFtIGJvb2wgdHJ1bmNhdGVfbG9jYWxzOgorICAg
ICAgICAgICAgV2l0aCBgYHNob3dsb2NhbHM9PVRydWVgYCwgbWFrZSBzdXJlIGxvY2FscyBjYW4g
YmUgc2FmZWx5IHJlcHJlc2VudGVkIGFzIHN0cmluZ3MuCisKKyAgICAgICAgOnBhcmFtIGJvb2wg
Y2hhaW46IGlmIGNoYWluZWQgZXhjZXB0aW9ucyBpbiBQeXRob24gMyBzaG91bGQgYmUgc2hvd24u
CiAKLSAgICAgICAgICAgIGluIGNhc2Ugb2Ygc3R5bGU9PW5hdGl2ZSwgdGJmaWx0ZXIgYW5kIHNo
b3dsb2NhbHMgaXMgaWdub3JlZC4KKyAgICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjkKKwor
ICAgICAgICAgICAgQWRkZWQgdGhlIGBgY2hhaW5gYCBwYXJhbWV0ZXIuCiAgICAgICAgICIiIgog
ICAgICAgICBpZiBzdHlsZSA9PSAibmF0aXZlIjoKICAgICAgICAgICAgIHJldHVybiBSZXByRXhj
ZXB0aW9uSW5mbygKQEAgLTQ2OCwxMCArNTQ2LDE0IEBAIGNsYXNzIEV4Y2VwdGlvbkluZm8ob2Jq
ZWN0KToKICAgICAgICAgICAgIGFic3BhdGg9YWJzcGF0aCwKICAgICAgICAgICAgIHRiZmlsdGVy
PXRiZmlsdGVyLAogICAgICAgICAgICAgZnVuY2FyZ3M9ZnVuY2FyZ3MsCisgICAgICAgICAgICB0
cnVuY2F0ZV9sb2NhbHM9dHJ1bmNhdGVfbG9jYWxzLAorICAgICAgICAgICAgY2hhaW49Y2hhaW4s
CiAgICAgICAgICkKICAgICAgICAgcmV0dXJuIGZtdC5yZXByX2V4Y2luZm8oc2VsZikKIAogICAg
IGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9leGNpbmZvIGlzIE5vbmU6Cisg
ICAgICAgICAgICByZXR1cm4gcmVwcihzZWxmKQogICAgICAgICBlbnRyeSA9IHNlbGYudHJhY2Vi
YWNrWy0xXQogICAgICAgICBsb2MgPSBSZXByRmlsZUxvY2F0aW9uKGVudHJ5LnBhdGgsIGVudHJ5
LmxpbmVubyArIDEsIHNlbGYuZXhjb25seSgpKQogICAgICAgICByZXR1cm4gc3RyKGxvYykKQEAg
LTQ4MywyMCArNTY1LDI3IEBAIGNsYXNzIEV4Y2VwdGlvbkluZm8ob2JqZWN0KToKIAogICAgIGRl
ZiBtYXRjaChzZWxmLCByZWdleHApOgogICAgICAgICAiIiIKLSAgICAgICAgTWF0Y2ggdGhlIHJl
Z3VsYXIgZXhwcmVzc2lvbiAncmVnZXhwJyBvbiB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9m
Ci0gICAgICAgIHRoZSBleGNlcHRpb24uIElmIGl0IG1hdGNoZXMgdGhlbiBUcnVlIGlzIHJldHVy
bmVkIChzbyB0aGF0IGl0IGlzCi0gICAgICAgIHBvc3NpYmxlIHRvIHdyaXRlICdhc3NlcnQgZXhj
aW5mby5tYXRjaCgpJykuIElmIGl0IGRvZXNuJ3QgbWF0Y2ggYW4KLSAgICAgICAgQXNzZXJ0aW9u
RXJyb3IgaXMgcmFpc2VkLgorICAgICAgICBDaGVjayB3aGV0aGVyIHRoZSByZWd1bGFyIGV4cHJl
c3Npb24gJ3JlZ2V4cCcgaXMgZm91bmQgaW4gdGhlIHN0cmluZworICAgICAgICByZXByZXNlbnRh
dGlvbiBvZiB0aGUgZXhjZXB0aW9uIHVzaW5nIGBgcmUuc2VhcmNoYGAuIElmIGl0IG1hdGNoZXMK
KyAgICAgICAgdGhlbiBUcnVlIGlzIHJldHVybmVkIChzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRv
IHdyaXRlCisgICAgICAgIGBgYXNzZXJ0IGV4Y2luZm8ubWF0Y2goKWBgKS4gSWYgaXQgZG9lc24n
dCBtYXRjaCBhbiBBc3NlcnRpb25FcnJvciBpcworICAgICAgICByYWlzZWQuCiAgICAgICAgICIi
IgogICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgaWYgbm90IHJlLnNl
YXJjaChyZWdleHAsIHN0cihzZWxmLnZhbHVlKSk6Ci0gICAgICAgICAgICBhc3NlcnQgMCwgIlBh
dHRlcm4gJ3shc30nIG5vdCBmb3VuZCBpbiAneyFzfSciLmZvcm1hdChyZWdleHAsIHNlbGYudmFs
dWUpCisgICAgICAgIHZhbHVlID0gKAorICAgICAgICAgICAgdGV4dF90eXBlKHNlbGYudmFsdWUp
IGlmIGlzaW5zdGFuY2UocmVnZXhwLCB0ZXh0X3R5cGUpIGVsc2Ugc3RyKHNlbGYudmFsdWUpCisg
ICAgICAgICkKKyAgICAgICAgaWYgbm90IHJlLnNlYXJjaChyZWdleHAsIHZhbHVlKToKKyAgICAg
ICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKAorICAgICAgICAgICAgICAgIHUiUGF0dGVybiB7
IXJ9IG5vdCBmb3VuZCBpbiB7IXJ9Ii5mb3JtYXQocmVnZXhwLCB2YWx1ZSkKKyAgICAgICAgICAg
ICkKICAgICAgICAgcmV0dXJuIFRydWUKIAogCiBAYXR0ci5zCiBjbGFzcyBGb3JtYXR0ZWRFeGNp
bmZvKG9iamVjdCk6CiAgICAgIiIiIHByZXNlbnRpbmcgaW5mb3JtYXRpb24gYWJvdXQgZmFpbGlu
ZyBGdW5jdGlvbnMgYW5kIEdlbmVyYXRvcnMuICIiIgorCiAgICAgIyBmb3IgdHJhY2ViYWNrIGVu
dHJpZXMKICAgICBmbG93X21hcmtlciA9ICI+IgogICAgIGZhaWxfbWFya2VyID0gIkUiCkBAIC01
MDYsNiArNTk1LDggQEAgY2xhc3MgRm9ybWF0dGVkRXhjaW5mbyhvYmplY3QpOgogICAgIGFic3Bh
dGggPSBhdHRyLmliKGRlZmF1bHQ9VHJ1ZSkKICAgICB0YmZpbHRlciA9IGF0dHIuaWIoZGVmYXVs
dD1UcnVlKQogICAgIGZ1bmNhcmdzID0gYXR0ci5pYihkZWZhdWx0PUZhbHNlKQorICAgIHRydW5j
YXRlX2xvY2FscyA9IGF0dHIuaWIoZGVmYXVsdD1UcnVlKQorICAgIGNoYWluID0gYXR0ci5pYihk
ZWZhdWx0PVRydWUpCiAgICAgYXN0Y2FjaGUgPSBhdHRyLmliKGRlZmF1bHQ9YXR0ci5GYWN0b3J5
KGRpY3QpLCBpbml0PUZhbHNlLCByZXByPUZhbHNlKQogCiAgICAgZGVmIF9nZXRpbmRlbnQoc2Vs
Ziwgc291cmNlKToKQEAgLTUyOSwxNCArNjIwLDExIEBAIGNsYXNzIEZvcm1hdHRlZEV4Y2luZm8o
b2JqZWN0KToKICAgICAgICAgICAgIHNvdXJjZSA9IHNvdXJjZS5kZWluZGVudCgpCiAgICAgICAg
IHJldHVybiBzb3VyY2UKIAotICAgIGRlZiBfc2FmZXJlcHIoc2VsZiwgb2JqKToKLSAgICAgICAg
cmV0dXJuIHB5LmlvLnNhZmVyZXByKG9iaikKLQogICAgIGRlZiByZXByX2FyZ3Moc2VsZiwgZW50
cnkpOgogICAgICAgICBpZiBzZWxmLmZ1bmNhcmdzOgogICAgICAgICAgICAgYXJncyA9IFtdCiAg
ICAgICAgICAgICBmb3IgYXJnbmFtZSwgYXJndmFsdWUgaW4gZW50cnkuZnJhbWUuZ2V0YXJncyh2
YXI9VHJ1ZSk6Ci0gICAgICAgICAgICAgICAgYXJncy5hcHBlbmQoKGFyZ25hbWUsIHNlbGYuX3Nh
ZmVyZXByKGFyZ3ZhbHVlKSkpCisgICAgICAgICAgICAgICAgYXJncy5hcHBlbmQoKGFyZ25hbWUs
IHNhZmVyZXByKGFyZ3ZhbHVlKSkpCiAgICAgICAgICAgICByZXR1cm4gUmVwckZ1bmNBcmdzKGFy
Z3MpCiAKICAgICBkZWYgZ2V0X3NvdXJjZShzZWxmLCBzb3VyY2UsIGxpbmVfaW5kZXg9LTEsIGV4
Y2luZm89Tm9uZSwgc2hvcnQ9RmFsc2UpOgpAQCAtNTU2LDcgKzY0NCw3IEBAIGNsYXNzIEZvcm1h
dHRlZEV4Y2luZm8ob2JqZWN0KToKICAgICAgICAgICAgIGZvciBsaW5lIGluIHNvdXJjZS5saW5l
c1s6bGluZV9pbmRleF06CiAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKHNwYWNlX3ByZWZp
eCArIGxpbmUpCiAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc2VsZi5mbG93X21hcmtlciArICIg
ICAiICsgc291cmNlLmxpbmVzW2xpbmVfaW5kZXhdKQotICAgICAgICAgICAgZm9yIGxpbmUgaW4g
c291cmNlLmxpbmVzW2xpbmVfaW5kZXggKyAxOl06CisgICAgICAgICAgICBmb3IgbGluZSBpbiBz
b3VyY2UubGluZXNbbGluZV9pbmRleCArIDEgOl06CiAgICAgICAgICAgICAgICAgbGluZXMuYXBw
ZW5kKHNwYWNlX3ByZWZpeCArIGxpbmUpCiAgICAgICAgIGlmIGV4Y2luZm8gaXMgbm90IE5vbmU6
CiAgICAgICAgICAgICBpbmRlbnQgPSA0IGlmIHNob3J0IGVsc2Ugc2VsZi5fZ2V0aW5kZW50KHNv
dXJjZSkKQEAgLTU4OCw3ICs2NzYsMTAgQEAgY2xhc3MgRm9ybWF0dGVkRXhjaW5mbyhvYmplY3Qp
OgogICAgICAgICAgICAgICAgICAgICAjIFRoaXMgZm9ybWF0dGluZyBjb3VsZCBhbGwgYmUgaGFu
ZGxlZCBieSB0aGUKICAgICAgICAgICAgICAgICAgICAgIyBfcmVwcigpIGZ1bmN0aW9uLCB3aGlj
aCBpcyBvbmx5IHJlcHJsaWIuUmVwciBpbgogICAgICAgICAgICAgICAgICAgICAjIGRpc2d1aXNl
LCBzbyBpcyB2ZXJ5IGNvbmZpZ3VyYWJsZS4KLSAgICAgICAgICAgICAgICAgICAgc3RyX3JlcHIg
PSBzZWxmLl9zYWZlcmVwcih2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi50cnVu
Y2F0ZV9sb2NhbHM6CisgICAgICAgICAgICAgICAgICAgICAgICBzdHJfcmVwciA9IHNhZmVyZXBy
KHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAg
ICAgc3RyX3JlcHIgPSBzYWZlZm9ybWF0KHZhbHVlKQogICAgICAgICAgICAgICAgICAgICAjIGlm
IGxlbihzdHJfcmVwcikgPCA3MCBvciBub3QgaXNpbnN0YW5jZSh2YWx1ZSwKICAgICAgICAgICAg
ICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCwgdHVwbGUsIGRpY3Qp
KToKICAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIlLTEwcyA9ICVzIiAlIChuYW1l
LCBzdHJfcmVwcikpCkBAIC02OTEsNyArNzgyLDcgQEAgY2xhc3MgRm9ybWF0dGVkRXhjaW5mbyhv
YmplY3QpOgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgaWYgcmVjdXJzaW9uaW5kZXggaXMg
bm90IE5vbmU6CiAgICAgICAgICAgICAgICAgZXh0cmFsaW5lID0gIiEhISBSZWN1cnNpb24gZGV0
ZWN0ZWQgKHNhbWUgbG9jYWxzICYgcG9zaXRpb24pIgotICAgICAgICAgICAgICAgIHRyYWNlYmFj
ayA9IHRyYWNlYmFja1s6cmVjdXJzaW9uaW5kZXggKyAxXQorICAgICAgICAgICAgICAgIHRyYWNl
YmFjayA9IHRyYWNlYmFja1s6IHJlY3Vyc2lvbmluZGV4ICsgMV0KICAgICAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICAgICAgZXh0cmFsaW5lID0gTm9uZQogCkBAIC03MDcsNyArNzk4LDkgQEAg
Y2xhc3MgRm9ybWF0dGVkRXhjaW5mbyhvYmplY3QpOgogICAgICAgICAgICAgcmVwcl9jaGFpbiA9
IFtdCiAgICAgICAgICAgICBlID0gZXhjaW5mby52YWx1ZQogICAgICAgICAgICAgZGVzY3IgPSBO
b25lCi0gICAgICAgICAgICB3aGlsZSBlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VlbiA9
IHNldCgpCisgICAgICAgICAgICB3aGlsZSBlIGlzIG5vdCBOb25lIGFuZCBpZChlKSBub3QgaW4g
c2VlbjoKKyAgICAgICAgICAgICAgICBzZWVuLmFkZChpZChlKSkKICAgICAgICAgICAgICAgICBp
ZiBleGNpbmZvOgogICAgICAgICAgICAgICAgICAgICByZXBydHJhY2ViYWNrID0gc2VsZi5yZXBy
X3RyYWNlYmFjayhleGNpbmZvKQogICAgICAgICAgICAgICAgICAgICByZXByY3Jhc2ggPSBleGNp
bmZvLl9nZXRyZXByY3Jhc2goKQpAQCAtNzIwLDE3ICs4MTMsMjUgQEAgY2xhc3MgRm9ybWF0dGVk
RXhjaW5mbyhvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICByZXByY3Jhc2ggPSBOb25lCiAK
ICAgICAgICAgICAgICAgICByZXByX2NoYWluICs9IFsocmVwcnRyYWNlYmFjaywgcmVwcmNyYXNo
LCBkZXNjcildCi0gICAgICAgICAgICAgICAgaWYgZS5fX2NhdXNlX18gaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICAgICAgaWYgZS5fX2NhdXNlX18gaXMgbm90IE5vbmUgYW5kIHNlbGYuY2hhaW46
CiAgICAgICAgICAgICAgICAgICAgIGUgPSBlLl9fY2F1c2VfXwotICAgICAgICAgICAgICAgICAg
ICBleGNpbmZvID0gRXhjZXB0aW9uSW5mbygKLSAgICAgICAgICAgICAgICAgICAgICAgICh0eXBl
KGUpLCBlLCBlLl9fdHJhY2ViYWNrX18pCi0gICAgICAgICAgICAgICAgICAgICkgaWYgZS5fX3Ry
YWNlYmFja19fIGVsc2UgTm9uZQorICAgICAgICAgICAgICAgICAgICBleGNpbmZvID0gKAorICAg
ICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uSW5mbygodHlwZShlKSwgZSwgZS5fX3RyYWNl
YmFja19fKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGUuX190cmFjZWJhY2tfXworICAg
ICAgICAgICAgICAgICAgICAgICAgZWxzZSBOb25lCisgICAgICAgICAgICAgICAgICAgICkKICAg
ICAgICAgICAgICAgICAgICAgZGVzY3IgPSAiVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRp
cmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoiCi0gICAgICAgICAgICAgICAg
ZWxpZiAoZS5fX2NvbnRleHRfXyBpcyBub3QgTm9uZSBhbmQgbm90IGUuX19zdXBwcmVzc19jb250
ZXh0X18pOgorICAgICAgICAgICAgICAgIGVsaWYgKAorICAgICAgICAgICAgICAgICAgICBlLl9f
Y29udGV4dF9fIGlzIG5vdCBOb25lCisgICAgICAgICAgICAgICAgICAgIGFuZCBub3QgZS5fX3N1
cHByZXNzX2NvbnRleHRfXworICAgICAgICAgICAgICAgICAgICBhbmQgc2VsZi5jaGFpbgorICAg
ICAgICAgICAgICAgICk6CiAgICAgICAgICAgICAgICAgICAgIGUgPSBlLl9fY29udGV4dF9fCi0g
ICAgICAgICAgICAgICAgICAgIGV4Y2luZm8gPSBFeGNlcHRpb25JbmZvKAotICAgICAgICAgICAg
ICAgICAgICAgICAgKHR5cGUoZSksIGUsIGUuX190cmFjZWJhY2tfXykKLSAgICAgICAgICAgICAg
ICAgICAgKSBpZiBlLl9fdHJhY2ViYWNrX18gZWxzZSBOb25lCisgICAgICAgICAgICAgICAgICAg
IGV4Y2luZm8gPSAoCisgICAgICAgICAgICAgICAgICAgICAgICBFeGNlcHRpb25JbmZvKCh0eXBl
KGUpLCBlLCBlLl9fdHJhY2ViYWNrX18pKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgZS5f
X3RyYWNlYmFja19fCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIE5vbmUKKyAgICAgICAg
ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICBkZXNjciA9ICJEdXJpbmcgaGFuZGxp
bmcgb2YgdGhlIGFib3ZlIGV4Y2VwdGlvbiwgYW5vdGhlciBleGNlcHRpb24gb2NjdXJyZWQ6Igog
ICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIGUgPSBOb25lCkBAIC03
MzksNyArODQwLDYgQEAgY2xhc3MgRm9ybWF0dGVkRXhjaW5mbyhvYmplY3QpOgogCiAKIGNsYXNz
IFRlcm1pbmFsUmVwcihvYmplY3QpOgotCiAgICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAg
IHMgPSBzZWxmLl9fdW5pY29kZV9fKCkKICAgICAgICAgaWYgX1BZMjoKQEAgLTc1OSw3ICs4NTks
NiBAQCBjbGFzcyBUZXJtaW5hbFJlcHIob2JqZWN0KToKIAogCiBjbGFzcyBFeGNlcHRpb25SZXBy
KFRlcm1pbmFsUmVwcik6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYu
c2VjdGlvbnMgPSBbXQogCkBAIC03NzMsNyArODcyLDYgQEAgY2xhc3MgRXhjZXB0aW9uUmVwcihU
ZXJtaW5hbFJlcHIpOgogCiAKIGNsYXNzIEV4Y2VwdGlvbkNoYWluUmVwcihFeGNlcHRpb25SZXBy
KToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjaGFpbik6CiAgICAgICAgIHN1cGVyKEV4Y2Vw
dGlvbkNoYWluUmVwciwgc2VsZikuX19pbml0X18oKQogICAgICAgICBzZWxmLmNoYWluID0gY2hh
aW4KQEAgLTc5Miw3ICs4OTAsNiBAQCBjbGFzcyBFeGNlcHRpb25DaGFpblJlcHIoRXhjZXB0aW9u
UmVwcik6CiAKIAogY2xhc3MgUmVwckV4Y2VwdGlvbkluZm8oRXhjZXB0aW9uUmVwcik6Ci0KICAg
ICBkZWYgX19pbml0X18oc2VsZiwgcmVwcnRyYWNlYmFjaywgcmVwcmNyYXNoKToKICAgICAgICAg
c3VwZXIoUmVwckV4Y2VwdGlvbkluZm8sIHNlbGYpLl9faW5pdF9fKCkKICAgICAgICAgc2VsZi5y
ZXBydHJhY2ViYWNrID0gcmVwcnRyYWNlYmFjawpAQCAtODMxLDcgKzkyOCw2IEBAIGNsYXNzIFJl
cHJUcmFjZWJhY2soVGVybWluYWxSZXByKToKIAogCiBjbGFzcyBSZXByVHJhY2ViYWNrTmF0aXZl
KFJlcHJUcmFjZWJhY2spOgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRibGluZXMpOgogICAg
ICAgICBzZWxmLnN0eWxlID0gIm5hdGl2ZSIKICAgICAgICAgc2VsZi5yZXByZW50cmllcyA9IFtS
ZXByRW50cnlOYXRpdmUodGJsaW5lcyldCkBAIC04NDksOCArOTQ1LDYgQEAgY2xhc3MgUmVwckVu
dHJ5TmF0aXZlKFRlcm1pbmFsUmVwcik6CiAKIAogY2xhc3MgUmVwckVudHJ5KFRlcm1pbmFsUmVw
cik6Ci0gICAgbG9jYWxzc2VwID0gIl8gIgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxpbmVz
LCByZXByZnVuY2FyZ3MsIHJlcHJsb2NhbHMsIGZpbGVsb2NyZXByLCBzdHlsZSk6CiAgICAgICAg
IHNlbGYubGluZXMgPSBsaW5lcwogICAgICAgICBzZWxmLnJlcHJmdW5jYXJncyA9IHJlcHJmdW5j
YXJncwpAQCAtODcyLDcgKzk2Niw2IEBAIGNsYXNzIFJlcHJFbnRyeShUZXJtaW5hbFJlcHIpOgog
ICAgICAgICAgICAgcmVkID0gbGluZS5zdGFydHN3aXRoKCJFICAgIikKICAgICAgICAgICAgIHR3
LmxpbmUobGluZSwgYm9sZD1UcnVlLCByZWQ9cmVkKQogICAgICAgICBpZiBzZWxmLnJlcHJsb2Nh
bHM6Ci0gICAgICAgICAgICAjIHR3LnNlcChzZWxmLmxvY2Fsc3NlcCwgIkxvY2FscyIpCiAgICAg
ICAgICAgICB0dy5saW5lKCIiKQogICAgICAgICAgICAgc2VsZi5yZXBybG9jYWxzLnRvdGVybWlu
YWwodHcpCiAgICAgICAgIGlmIHNlbGYucmVwcmZpbGVsb2M6CkBAIC04ODUsNyArOTc4LDYgQEAg
Y2xhc3MgUmVwckVudHJ5KFRlcm1pbmFsUmVwcik6CiAKIAogY2xhc3MgUmVwckZpbGVMb2NhdGlv
bihUZXJtaW5hbFJlcHIpOgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGxpbmVubywg
bWVzc2FnZSk6CiAgICAgICAgIHNlbGYucGF0aCA9IHN0cihwYXRoKQogICAgICAgICBzZWxmLmxp
bmVubyA9IGxpbmVubwpAQCAtOTAzLDcgKzk5NSw2IEBAIGNsYXNzIFJlcHJGaWxlTG9jYXRpb24o
VGVybWluYWxSZXByKToKIAogCiBjbGFzcyBSZXByTG9jYWxzKFRlcm1pbmFsUmVwcik6Ci0KICAg
ICBkZWYgX19pbml0X18oc2VsZiwgbGluZXMpOgogICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMK
IApAQCAtOTEzLDcgKzEwMDQsNiBAQCBjbGFzcyBSZXByTG9jYWxzKFRlcm1pbmFsUmVwcik6CiAK
IAogY2xhc3MgUmVwckZ1bmNBcmdzKFRlcm1pbmFsUmVwcik6Ci0KICAgICBkZWYgX19pbml0X18o
c2VsZiwgYXJncyk6CiAgICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKIApAQCAtOTY4LDMgKzEwNTgs
MzYgQEAgZWxzZToKICAgICAgICAgICAgIHJldHVybiAibWF4aW11bSByZWN1cnNpb24gZGVwdGgg
ZXhjZWVkZWQiIGluIHN0cihleGNpbmZvLnZhbHVlKQogICAgICAgICBleGNlcHQgVW5pY29kZUVy
cm9yOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKworIyByZWxhdGl2ZSBwYXRocyB0aGF0
IHdlIHVzZSB0byBmaWx0ZXIgdHJhY2ViYWNrIGVudHJpZXMgZnJvbSBhcHBlYXJpbmcgdG8gdGhl
IHVzZXI7CisjIHNlZSBmaWx0ZXJfdHJhY2ViYWNrCisjIG5vdGU6IGlmIHdlIG5lZWQgdG8gYWRk
IG1vcmUgcGF0aHMgdGhhbiB3aGF0IHdlIGhhdmUgbm93IHdlIHNob3VsZCBwcm9iYWJseSB1c2Ug
YSBsaXN0CisjIGZvciBiZXR0ZXIgbWFpbnRlbmFuY2UKKworX1BMVUdHWV9ESVIgPSBweS5wYXRo
LmxvY2FsKHBsdWdneS5fX2ZpbGVfXy5yc3RyaXAoIm9jIikpCisjIHBsdWdneSBpcyBlaXRoZXIg
YSBwYWNrYWdlIG9yIGEgc2luZ2xlIG1vZHVsZSBkZXBlbmRpbmcgb24gdGhlIHZlcnNpb24KK2lm
IF9QTFVHR1lfRElSLmJhc2VuYW1lID09ICJfX2luaXRfXy5weSI6CisgICAgX1BMVUdHWV9ESVIg
PSBfUExVR0dZX0RJUi5kaXJwYXRoKCkKK19QWVRFU1RfRElSID0gcHkucGF0aC5sb2NhbChfcHl0
ZXN0Ll9fZmlsZV9fKS5kaXJwYXRoKCkKK19QWV9ESVIgPSBweS5wYXRoLmxvY2FsKHB5Ll9fZmls
ZV9fKS5kaXJwYXRoKCkKKworCitkZWYgZmlsdGVyX3RyYWNlYmFjayhlbnRyeSk6CisgICAgIiIi
UmV0dXJuIFRydWUgaWYgYSBUcmFjZWJhY2tFbnRyeSBpbnN0YW5jZSBzaG91bGQgYmUgcmVtb3Zl
ZCBmcm9tIHRyYWNlYmFja3M6CisgICAgKiBkeW5hbWljYWxseSBnZW5lcmF0ZWQgY29kZSAobm8g
Y29kZSB0byBzaG93IHVwIGZvciBpdCk7CisgICAgKiBpbnRlcm5hbCB0cmFjZWJhY2sgZnJvbSBw
eXRlc3Qgb3IgaXRzIGludGVybmFsIGxpYnJhcmllcywgcHkgYW5kIHBsdWdneS4KKyAgICAiIiIK
KyAgICAjIGVudHJ5LnBhdGggbWlnaHQgc29tZXRpbWVzIHJldHVybiBhIHN0ciBvYmplY3Qgd2hl
biB0aGUgZW50cnkKKyAgICAjIHBvaW50cyB0byBkeW5hbWljYWxseSBnZW5lcmF0ZWQgY29kZQor
ICAgICMgc2VlIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9weXRlc3QtZGV2L3B5L2lzc3Vlcy83MQor
ICAgIHJhd19maWxlbmFtZSA9IGVudHJ5LmZyYW1lLmNvZGUucmF3LmNvX2ZpbGVuYW1lCisgICAg
aXNfZ2VuZXJhdGVkID0gIjwiIGluIHJhd19maWxlbmFtZSBhbmQgIj4iIGluIHJhd19maWxlbmFt
ZQorICAgIGlmIGlzX2dlbmVyYXRlZDoKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgIyBlbnRy
eS5wYXRoIG1pZ2h0IHBvaW50IHRvIGEgbm9uLWV4aXN0aW5nIGZpbGUsIGluIHdoaWNoIGNhc2Ug
aXQgd2lsbAorICAgICMgYWxzbyByZXR1cm4gYSBzdHIgb2JqZWN0LiBzZWUgIzExMzMKKyAgICBw
ID0gcHkucGF0aC5sb2NhbChlbnRyeS5wYXRoKQorICAgIHJldHVybiAoCisgICAgICAgIG5vdCBw
LnJlbHRvKF9QTFVHR1lfRElSKSBhbmQgbm90IHAucmVsdG8oX1BZVEVTVF9ESVIpIGFuZCBub3Qg
cC5yZWx0byhfUFlfRElSKQorICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L19jb2RlL3NvdXJjZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL3NvdXJj
ZS5weQppbmRleCA2Yjk4MmE0Y2FjNDdhZDY2OTBjNjAzZTMzYWExMDlkMjQ2NTEyZGRkLi5iMzVl
OTdiOWNlYzIzNTYyODM4YTFiMjQ5ZjNmZjc0NWVlMmQ4NjIyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC9fY29kZS9zb3VyY2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3QvX2NvZGUvc291cmNlLnB5CkBAIC0xLDI4ICsxLDMyIEBACi1mcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIGdlbmVyYXRvcnMsIHByaW50X2Z1bmN0
aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IGFzdAotZnJvbSBhc3QgaW1wb3J0
IFB5Q0ZfT05MWV9BU1QgYXMgX0FTVF9GTEFHCi1mcm9tIGJpc2VjdCBpbXBvcnQgYmlzZWN0X3Jp
Z2h0CitpbXBvcnQgaW5zcGVjdAogaW1wb3J0IGxpbmVjYWNoZQogaW1wb3J0IHN5cwotaW1wb3J0
IHNpeAotaW1wb3J0IGluc3BlY3QKK2ltcG9ydCB0ZXh0d3JhcAogaW1wb3J0IHRva2VuaXplCi1p
bXBvcnQgcHkKK2ltcG9ydCB3YXJuaW5ncworZnJvbSBhc3QgaW1wb3J0IFB5Q0ZfT05MWV9BU1Qg
YXMgX0FTVF9GTEFHCitmcm9tIGJpc2VjdCBpbXBvcnQgYmlzZWN0X3JpZ2h0CiAKLWNweV9jb21w
aWxlID0gY29tcGlsZQoraW1wb3J0IHB5CitpbXBvcnQgc2l4CiAKIAogY2xhc3MgU291cmNlKG9i
amVjdCk6CiAgICAgIiIiIGFuIGltbXV0YWJsZSBvYmplY3QgaG9sZGluZyBhIHNvdXJjZSBjb2Rl
IGZyYWdtZW50LAogICAgICAgICBwb3NzaWJseSBkZWluZGVudGluZyBpdC4KICAgICAiIiIKKwog
ICAgIF9jb21waWxlY291bnRlciA9IDAKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqcGFydHMs
ICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5saW5lcyA9IGxpbmVzID0gW10KICAgICAgICAgZGUg
PSBrd2FyZ3MuZ2V0KCJkZWluZGVudCIsIFRydWUpCi0gICAgICAgIHJzdHJpcCA9IGt3YXJncy5n
ZXQoInJzdHJpcCIsIFRydWUpCiAgICAgICAgIGZvciBwYXJ0IGluIHBhcnRzOgogICAgICAgICAg
ICAgaWYgbm90IHBhcnQ6CiAgICAgICAgICAgICAgICAgcGFydGxpbmVzID0gW10KQEAgLTMyLDEx
ICszNiw2IEBAIGNsYXNzIFNvdXJjZShvYmplY3QpOgogICAgICAgICAgICAgICAgIHBhcnRsaW5l
cyA9IFt4LnJzdHJpcCgiXG4iKSBmb3IgeCBpbiBwYXJ0XQogICAgICAgICAgICAgZWxpZiBpc2lu
c3RhbmNlKHBhcnQsIHNpeC5zdHJpbmdfdHlwZXMpOgogICAgICAgICAgICAgICAgIHBhcnRsaW5l
cyA9IHBhcnQuc3BsaXQoIlxuIikKLSAgICAgICAgICAgICAgICBpZiByc3RyaXA6Ci0gICAgICAg
ICAgICAgICAgICAgIHdoaWxlIHBhcnRsaW5lczoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IHBhcnRsaW5lc1stMV0uc3RyaXAoKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
awotICAgICAgICAgICAgICAgICAgICAgICAgcGFydGxpbmVzLnBvcCgpCiAgICAgICAgICAgICBl
bHNlOgogICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IGdldHNvdXJjZShwYXJ0LCBkZWluZGVu
dD1kZSkubGluZXMKICAgICAgICAgICAgIGlmIGRlOgpAQCAtNjAsNyArNTksNyBAQCBjbGFzcyBT
b3VyY2Uob2JqZWN0KToKICAgICAgICAgICAgIGlmIGtleS5zdGVwIG5vdCBpbiAoTm9uZSwgMSk6
CiAgICAgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigiY2Fubm90IHNsaWNlIGEgU291cmNl
IHdpdGggYSBzdGVwIikKICAgICAgICAgICAgIG5ld3NvdXJjZSA9IFNvdXJjZSgpCi0gICAgICAg
ICAgICBuZXdzb3VyY2UubGluZXMgPSBzZWxmLmxpbmVzW2tleS5zdGFydDprZXkuc3RvcF0KKyAg
ICAgICAgICAgIG5ld3NvdXJjZS5saW5lcyA9IHNlbGYubGluZXNba2V5LnN0YXJ0IDoga2V5LnN0
b3BdCiAgICAgICAgICAgICByZXR1cm4gbmV3c291cmNlCiAKICAgICBkZWYgX19sZW5fXyhzZWxm
KToKQEAgLTExNCwzNSArMTEzLDIzIEBAIGNsYXNzIFNvdXJjZShvYmplY3QpOgogICAgICAgICBh
c3QsIHN0YXJ0LCBlbmQgPSBnZXRzdGF0ZW1lbnRyYW5nZV9hc3QobGluZW5vLCBzZWxmKQogICAg
ICAgICByZXR1cm4gc3RhcnQsIGVuZAogCi0gICAgZGVmIGRlaW5kZW50KHNlbGYsIG9mZnNldD1O
b25lKToKLSAgICAgICAgIiIiIHJldHVybiBhIG5ldyBzb3VyY2Ugb2JqZWN0IGRlaW5kZW50ZWQg
Ynkgb2Zmc2V0LgotICAgICAgICAgICAgSWYgb2Zmc2V0IGlzIE5vbmUgdGhlbiBndWVzcyBhbiBp
bmRlbnRhdGlvbiBvZmZzZXQgZnJvbQotICAgICAgICAgICAgdGhlIGZpcnN0IG5vbi1ibGFuayBs
aW5lLiAgU3Vic2VxdWVudCBsaW5lcyB3aGljaCBoYXZlIGEKLSAgICAgICAgICAgIGxvd2VyIGlu
ZGVudGF0aW9uIG9mZnNldCB3aWxsIGJlIGNvcGllZCB2ZXJiYXRpbSBhcwotICAgICAgICAgICAg
dGhleSBhcmUgYXNzdW1lZCB0byBiZSBwYXJ0IG9mIG11bHRpbGluZXMuCi0gICAgICAgICIiIgot
ICAgICAgICAjIFhYWCBtYXliZSB1c2UgdGhlIHRva2VuaXplciB0byBwcm9wZXJseSBoYW5kbGUg
bXVsdGlsaW5lCi0gICAgICAgICMgICAgIHN0cmluZ3MgZXRjLnBwPworICAgIGRlZiBkZWluZGVu
dChzZWxmKToKKyAgICAgICAgIiIicmV0dXJuIGEgbmV3IHNvdXJjZSBvYmplY3QgZGVpbmRlbnRl
ZC4iIiIKICAgICAgICAgbmV3c291cmNlID0gU291cmNlKCkKLSAgICAgICAgbmV3c291cmNlLmxp
bmVzWzpdID0gZGVpbmRlbnQoc2VsZi5saW5lcywgb2Zmc2V0KQorICAgICAgICBuZXdzb3VyY2Uu
bGluZXNbOl0gPSBkZWluZGVudChzZWxmLmxpbmVzKQogICAgICAgICByZXR1cm4gbmV3c291cmNl
CiAKICAgICBkZWYgaXNwYXJzZWFibGUoc2VsZiwgZGVpbmRlbnQ9VHJ1ZSk6CiAgICAgICAgICIi
IiByZXR1cm4gVHJ1ZSBpZiBzb3VyY2UgaXMgcGFyc2VhYmxlLCBoZXVyaXN0aWNhbGx5CiAgICAg
ICAgICAgICBkZWluZGVudGluZyBpdCBieSBkZWZhdWx0LgogICAgICAgICAiIiIKLSAgICAgICAg
ZnJvbSBwYXJzZXIgaW1wb3J0IHN1aXRlIGFzIHN5bnRheF9jaGVja2VyCi0KICAgICAgICAgaWYg
ZGVpbmRlbnQ6CiAgICAgICAgICAgICBzb3VyY2UgPSBzdHIoc2VsZi5kZWluZGVudCgpKQogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgc291cmNlID0gc3RyKHNlbGYpCiAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICMgY29tcGlsZShzb3VyY2UrJ1xuJywgIngiLCAiZXhlYyIpCi0gICAgICAg
ICAgICBzeW50YXhfY2hlY2tlcihzb3VyY2UgKyAiXG4iKQotICAgICAgICBleGNlcHQgS2V5Ym9h
cmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQgRXhjZXB0aW9u
OgorICAgICAgICAgICAgYXN0LnBhcnNlKHNvdXJjZSkKKyAgICAgICAgZXhjZXB0IChTeW50YXhF
cnJvciwgVmFsdWVFcnJvciwgVHlwZUVycm9yKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQog
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKQEAgLTE1MSwxMiArMTM4LDcg
QEAgY2xhc3MgU291cmNlKG9iamVjdCk6CiAgICAgICAgIHJldHVybiAiXG4iLmpvaW4oc2VsZi5s
aW5lcykKIAogICAgIGRlZiBjb21waWxlKAotICAgICAgICBzZWxmLAotICAgICAgICBmaWxlbmFt
ZT1Ob25lLAotICAgICAgICBtb2RlPSJleGVjIiwKLSAgICAgICAgZmxhZz1nZW5lcmF0b3JzLmNv
bXBpbGVyX2ZsYWcsCi0gICAgICAgIGRvbnRfaW5oZXJpdD0wLAotICAgICAgICBfZ2VuZnJhbWU9
Tm9uZSwKKyAgICAgICAgc2VsZiwgZmlsZW5hbWU9Tm9uZSwgbW9kZT0iZXhlYyIsIGZsYWc9MCwg
ZG9udF9pbmhlcml0PTAsIF9nZW5mcmFtZT1Ob25lCiAgICAgKToKICAgICAgICAgIiIiIHJldHVy
biBjb21waWxlZCBjb2RlIG9iamVjdC4gaWYgZmlsZW5hbWUgaXMgTm9uZQogICAgICAgICAgICAg
aW52ZW50IGFuIGFydGlmaWNpYWwgZmlsZW5hbWUgd2hpY2ggZGlzcGxheXMKQEAgLTE3NCwxMSAr
MTU2LDExIEBAIGNsYXNzIFNvdXJjZShvYmplY3QpOgogICAgICAgICAgICAgICAgIGZpbGVuYW1l
ID0gYmFzZSArICIlciAlczolZD4iICUgKGZpbGVuYW1lLCBmbiwgbGluZW5vKQogICAgICAgICBz
b3VyY2UgPSAiXG4iLmpvaW4oc2VsZi5saW5lcykgKyAiXG4iCiAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGNvID0gY3B5X2NvbXBpbGUoc291cmNlLCBmaWxlbmFtZSwgbW9kZSwgZmxhZykKKyAg
ICAgICAgICAgIGNvID0gY29tcGlsZShzb3VyY2UsIGZpbGVuYW1lLCBtb2RlLCBmbGFnKQogICAg
ICAgICBleGNlcHQgU3ludGF4RXJyb3I6CiAgICAgICAgICAgICBleCA9IHN5cy5leGNfaW5mbygp
WzFdCiAgICAgICAgICAgICAjIHJlLXJlcHJlc2VudCBzeW50YXggZXJyb3JzIGZyb20gcGFyc2lu
ZyBweXRob24gc3RyaW5ncwotICAgICAgICAgICAgbXNnbGluZXMgPSBzZWxmLmxpbmVzWzpleC5s
aW5lbm9dCisgICAgICAgICAgICBtc2dsaW5lcyA9IHNlbGYubGluZXNbOiBleC5saW5lbm9dCiAg
ICAgICAgICAgICBpZiBleC5vZmZzZXQ6CiAgICAgICAgICAgICAgICAgbXNnbGluZXMuYXBwZW5k
KCIgIiAqIGV4Lm9mZnNldCArICJeIikKICAgICAgICAgICAgIG1zZ2xpbmVzLmFwcGVuZCgiKGNv
ZGUgd2FzIGNvbXBpbGVkIHByb2JhYmx5IGZyb20gaGVyZTogJXMpIiAlIGZpbGVuYW1lKQpAQCAt
MjAwLDkgKzE4Miw3IEBAIGNsYXNzIFNvdXJjZShvYmplY3QpOgogIwogCiAKLWRlZiBjb21waWxl
XygKLSAgICBzb3VyY2UsIGZpbGVuYW1lPU5vbmUsIG1vZGU9ImV4ZWMiLCBmbGFncz1nZW5lcmF0
b3JzLmNvbXBpbGVyX2ZsYWcsIGRvbnRfaW5oZXJpdD0wCi0pOgorZGVmIGNvbXBpbGVfKHNvdXJj
ZSwgZmlsZW5hbWU9Tm9uZSwgbW9kZT0iZXhlYyIsIGZsYWdzPTAsIGRvbnRfaW5oZXJpdD0wKToK
ICAgICAiIiIgY29tcGlsZSB0aGUgZ2l2ZW4gc291cmNlIHRvIGEgcmF3IGNvZGUgb2JqZWN0LAog
ICAgICAgICBhbmQgbWFpbnRhaW4gYW4gaW50ZXJuYWwgY2FjaGUgd2hpY2ggYWxsb3dzIGxhdGVy
CiAgICAgICAgIHJldHJpZXZhbCBvZiB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBjb2RlIG9iamVj
dApAQCAtMjEwLDcgKzE5MCw3IEBAIGRlZiBjb21waWxlXygKICAgICAiIiIKICAgICBpZiBpc2lu
c3RhbmNlKHNvdXJjZSwgYXN0LkFTVCk6CiAgICAgICAgICMgWFhYIHNob3VsZCBTb3VyY2Ugc3Vw
cG9ydCBoYXZpbmcgQVNUPwotICAgICAgICByZXR1cm4gY3B5X2NvbXBpbGUoc291cmNlLCBmaWxl
bmFtZSwgbW9kZSwgZmxhZ3MsIGRvbnRfaW5oZXJpdCkKKyAgICAgICAgcmV0dXJuIGNvbXBpbGUo
c291cmNlLCBmaWxlbmFtZSwgbW9kZSwgZmxhZ3MsIGRvbnRfaW5oZXJpdCkKICAgICBfZ2VuZnJh
bWUgPSBzeXMuX2dldGZyYW1lKDEpICAjIHRoZSBjYWxsZXIKICAgICBzID0gU291cmNlKHNvdXJj
ZSkKICAgICBjbyA9IHMuY29tcGlsZShmaWxlbmFtZSwgbW9kZSwgZmxhZ3MsIF9nZW5mcmFtZT1f
Z2VuZnJhbWUpCkBAIC0yMTksNyArMTk5LDkgQEAgZGVmIGNvbXBpbGVfKAogCiBkZWYgZ2V0ZnNs
aW5lbm8ob2JqKToKICAgICAiIiIgUmV0dXJuIHNvdXJjZSBsb2NhdGlvbiAocGF0aCwgbGluZW5v
KSBmb3IgdGhlIGdpdmVuIG9iamVjdC4KLSAgICBJZiB0aGUgc291cmNlIGNhbm5vdCBiZSBkZXRl
cm1pbmVkIHJldHVybiAoIiIsIC0xKQorICAgIElmIHRoZSBzb3VyY2UgY2Fubm90IGJlIGRldGVy
bWluZWQgcmV0dXJuICgiIiwgLTEpLgorCisgICAgVGhlIGxpbmUgbnVtYmVyIGlzIDAtYmFzZWQu
CiAgICAgIiIiCiAgICAgZnJvbSAuY29kZSBpbXBvcnQgQ29kZQogCkBAIC0yNTMsOSArMjM1LDcg
QEAgZGVmIGdldGZzbGluZW5vKG9iaik6CiBkZWYgZmluZHNvdXJjZShvYmopOgogICAgIHRyeToK
ICAgICAgICAgc291cmNlbGluZXMsIGxpbmVubyA9IGluc3BlY3QuZmluZHNvdXJjZShvYmopCi0g
ICAgZXhjZXB0IHB5LmJ1aWx0aW4uX3N5c2V4OgotICAgICAgICByYWlzZQotICAgIGV4Y2VwdDog
ICMgbm9xYQorICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgIHJldHVybiBOb25lLCAtMQog
ICAgIHNvdXJjZSA9IFNvdXJjZSgpCiAgICAgc291cmNlLmxpbmVzID0gW2xpbmUucnN0cmlwKCkg
Zm9yIGxpbmUgaW4gc291cmNlbGluZXNdCkBAIC0yNzQsNDcgKzI1NCw4IEBAIGRlZiBnZXRzb3Vy
Y2Uob2JqLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIFNvdXJjZShzdHJzcmMsICoqa3dhcmdzKQog
CiAKLWRlZiBkZWluZGVudChsaW5lcywgb2Zmc2V0PU5vbmUpOgotICAgIGlmIG9mZnNldCBpcyBO
b25lOgotICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKLSAgICAgICAgICAgIGxpbmUgPSBsaW5l
LmV4cGFuZHRhYnMoKQotICAgICAgICAgICAgcyA9IGxpbmUubHN0cmlwKCkKLSAgICAgICAgICAg
IGlmIHM6Ci0gICAgICAgICAgICAgICAgb2Zmc2V0ID0gbGVuKGxpbmUpIC0gbGVuKHMpCi0gICAg
ICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9mZnNldCA9IDAK
LSAgICBpZiBvZmZzZXQgPT0gMDoKLSAgICAgICAgcmV0dXJuIGxpc3QobGluZXMpCi0gICAgbmV3
bGluZXMgPSBbXQotCi0gICAgZGVmIHJlYWRsaW5lX2dlbmVyYXRvcihsaW5lcyk6Ci0gICAgICAg
IGZvciBsaW5lIGluIGxpbmVzOgotICAgICAgICAgICAgeWllbGQgbGluZSArICJcbiIKLQotICAg
IGl0ID0gcmVhZGxpbmVfZ2VuZXJhdG9yKGxpbmVzKQotCi0gICAgdHJ5OgotICAgICAgICBmb3Ig
XywgXywgKHNsaW5lLCBfKSwgKGVsaW5lLCBfKSwgXyBpbiB0b2tlbml6ZS5nZW5lcmF0ZV90b2tl
bnMoCi0gICAgICAgICAgICBsYW1iZGE6IG5leHQoaXQpCi0gICAgICAgICk6Ci0gICAgICAgICAg
ICBpZiBzbGluZSA+IGxlbihsaW5lcyk6Ci0gICAgICAgICAgICAgICAgYnJlYWsgICMgRW5kIG9m
IGlucHV0IHJlYWNoZWQKLSAgICAgICAgICAgIGlmIHNsaW5lID4gbGVuKG5ld2xpbmVzKToKLSAg
ICAgICAgICAgICAgICBsaW5lID0gbGluZXNbc2xpbmUgLSAxXS5leHBhbmR0YWJzKCkKLSAgICAg
ICAgICAgICAgICBpZiBsaW5lLmxzdHJpcCgpIGFuZCBsaW5lWzpvZmZzZXRdLmlzc3BhY2UoKToK
LSAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmVbb2Zmc2V0Ol0gICMgRGVpbmRlbnQKLSAg
ICAgICAgICAgICAgICBuZXdsaW5lcy5hcHBlbmQobGluZSkKLQotICAgICAgICAgICAgZm9yIGkg
aW4gcmFuZ2Uoc2xpbmUsIGVsaW5lKToKLSAgICAgICAgICAgICAgICAjIERvbid0IGRlaW5kZW50
IGNvbnRpbnVpbmcgbGluZXMgb2YKLSAgICAgICAgICAgICAgICAjIG11bHRpbGluZSB0b2tlbnMg
KGkuZS4gbXVsdGlsaW5lIHN0cmluZ3MpCi0gICAgICAgICAgICAgICAgbmV3bGluZXMuYXBwZW5k
KGxpbmVzW2ldKQotICAgIGV4Y2VwdCAoSW5kZW50YXRpb25FcnJvciwgdG9rZW5pemUuVG9rZW5F
cnJvcik6Ci0gICAgICAgIHBhc3MKLSAgICAjIEFkZCBhbnkgbGluZXMgd2UgZGlkbid0IHNlZS4g
RS5nLiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZC4KLSAgICBuZXdsaW5lcy5leHRlbmQobGlu
ZXNbbGVuKG5ld2xpbmVzKTpdKQotICAgIHJldHVybiBuZXdsaW5lcworZGVmIGRlaW5kZW50KGxp
bmVzKToKKyAgICByZXR1cm4gdGV4dHdyYXAuZGVkZW50KCJcbiIuam9pbihsaW5lcykpLnNwbGl0
bGluZXMoKQogCiAKIGRlZiBnZXRfc3RhdGVtZW50X3N0YXJ0ZW5kMihsaW5lbm8sIG5vZGUpOgpA
QCAtMzQ0LDcgKzI4NSwxMSBAQCBkZWYgZ2V0X3N0YXRlbWVudF9zdGFydGVuZDIobGluZW5vLCBu
b2RlKToKIGRlZiBnZXRzdGF0ZW1lbnRyYW5nZV9hc3QobGluZW5vLCBzb3VyY2UsIGFzc2VydGlv
bj1GYWxzZSwgYXN0bm9kZT1Ob25lKToKICAgICBpZiBhc3Rub2RlIGlzIE5vbmU6CiAgICAgICAg
IGNvbnRlbnQgPSBzdHIoc291cmNlKQotICAgICAgICBhc3Rub2RlID0gY29tcGlsZShjb250ZW50
LCAic291cmNlIiwgImV4ZWMiLCAxMDI0KSAgIyAxMDI0IGZvciBBU1QKKyAgICAgICAgIyBTZWUg
IzQyNjA6CisgICAgICAgICMgZG9uJ3QgcHJvZHVjZSBkdXBsaWNhdGUgd2FybmluZ3Mgd2hlbiBj
b21waWxpbmcgc291cmNlIHRvIGZpbmQgYXN0CisgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hf
d2FybmluZ3MoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiaWdub3JlIikK
KyAgICAgICAgICAgIGFzdG5vZGUgPSBjb21waWxlKGNvbnRlbnQsICJzb3VyY2UiLCAiZXhlYyIs
IF9BU1RfRkxBRykKIAogICAgIHN0YXJ0LCBlbmQgPSBnZXRfc3RhdGVtZW50X3N0YXJ0ZW5kMihs
aW5lbm8sIGFzdG5vZGUpCiAgICAgIyB3ZSBuZWVkIHRvIGNvcnJlY3QgdGhlIGVuZDoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby9fX2luaXRfXy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L19pby9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2
YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvX2lvL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1
bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L19pby9zYWZlcmVwci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19p
by9zYWZlcmVwci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjQxMmRjY2FkOWQxOThlMjY3MmZjMTVjNjc1ZTEw
NmE0MGVkZmEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2lv
L3NhZmVyZXByLnB5CkBAIC0wLDAgKzEsODMgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitp
bXBvcnQgcHByaW50CisKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCByZXBybGliCisKKworZGVmIF9j
YWxsX2FuZF9mb3JtYXRfZXhjZXB0aW9uKGNhbGwsIHgsICphcmdzKToKKyAgICB0cnk6CisgICAg
ICAgICMgVHJ5IHRoZSB2YW5pbGxhIHJlcHIgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXN1bHQg
aXMgYSBzdHJpbmcKKyAgICAgICAgcmV0dXJuIGNhbGwoeCwgKmFyZ3MpCisgICAgZXhjZXB0IEV4
Y2VwdGlvbiBhcyBleGM6CisgICAgICAgIGV4Y19uYW1lID0gdHlwZShleGMpLl9fbmFtZV9fCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGV4Y19pbmZvID0gc3RyKGV4YykKKyAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIGV4Y19pbmZvID0gInVua25vd24iCisgICAgICAg
IHJldHVybiAnPFslcygiJXMiKSByYWlzZWQgaW4gcmVwcigpXSAlcyBvYmplY3QgYXQgMHgleD4n
ICUgKAorICAgICAgICAgICAgZXhjX25hbWUsCisgICAgICAgICAgICBleGNfaW5mbywKKyAgICAg
ICAgICAgIHguX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgaWQoeCksCisgICAgICAg
ICkKKworCitjbGFzcyBTYWZlUmVwcihyZXBybGliLlJlcHIpOgorICAgICIiInN1YmNsYXNzIG9m
IHJlcHIuUmVwciB0aGF0IGxpbWl0cyB0aGUgcmVzdWx0aW5nIHNpemUgb2YgcmVwcigpCisgICAg
YW5kIGluY2x1ZGVzIGluZm9ybWF0aW9uIG9uIGV4Y2VwdGlvbnMgcmFpc2VkIGR1cmluZyB0aGUg
Y2FsbC4KKyAgICAiIiIKKworICAgIGRlZiByZXByKHNlbGYsIHgpOgorICAgICAgICByZXR1cm4g
c2VsZi5fY2FsbGhlbHBlcihyZXBybGliLlJlcHIucmVwciwgc2VsZiwgeCkKKworICAgIGRlZiBy
ZXByX3VuaWNvZGUoc2VsZiwgeCwgbGV2ZWwpOgorICAgICAgICAjIFN0cmljdGx5IHNwZWFraW5n
IHdyb25nIG9uIG5hcnJvdyBidWlsZHMKKyAgICAgICAgZGVmIHJlcHIodSk6CisgICAgICAgICAg
ICBpZiAiJyIgbm90IGluIHU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHUiJyVzJyIgJSB1Cisg
ICAgICAgICAgICBlbGlmICciJyBub3QgaW4gdToKKyAgICAgICAgICAgICAgICByZXR1cm4gdSci
JXMiJyAlIHUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHUiJyVz
JyIgJSB1LnJlcGxhY2UoIiciLCByIlwnIikKKworICAgICAgICBzID0gcmVwcih4Wzogc2VsZi5t
YXhzdHJpbmddKQorICAgICAgICBpZiBsZW4ocykgPiBzZWxmLm1heHN0cmluZzoKKyAgICAgICAg
ICAgIGkgPSBtYXgoMCwgKHNlbGYubWF4c3RyaW5nIC0gMykgLy8gMikKKyAgICAgICAgICAgIGog
PSBtYXgoMCwgc2VsZi5tYXhzdHJpbmcgLSAzIC0gaSkKKyAgICAgICAgICAgIHMgPSByZXByKHhb
OmldICsgeFtsZW4oeCkgLSBqIDpdKQorICAgICAgICAgICAgcyA9IHNbOmldICsgIi4uLiIgKyBz
W2xlbihzKSAtIGogOl0KKyAgICAgICAgcmV0dXJuIHMKKworICAgIGRlZiByZXByX2luc3RhbmNl
KHNlbGYsIHgsIGxldmVsKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhbGxoZWxwZXIocmVwciwg
eCkKKworICAgIGRlZiBfY2FsbGhlbHBlcihzZWxmLCBjYWxsLCB4LCAqYXJncyk6CisgICAgICAg
IHMgPSBfY2FsbF9hbmRfZm9ybWF0X2V4Y2VwdGlvbihjYWxsLCB4LCAqYXJncykKKyAgICAgICAg
aWYgbGVuKHMpID4gc2VsZi5tYXhzaXplOgorICAgICAgICAgICAgaSA9IG1heCgwLCAoc2VsZi5t
YXhzaXplIC0gMykgLy8gMikKKyAgICAgICAgICAgIGogPSBtYXgoMCwgc2VsZi5tYXhzaXplIC0g
MyAtIGkpCisgICAgICAgICAgICBzID0gc1s6aV0gKyAiLi4uIiArIHNbbGVuKHMpIC0gaiA6XQor
ICAgICAgICByZXR1cm4gcworCisKK2RlZiBzYWZlZm9ybWF0KG9iaik6CisgICAgIiIicmV0dXJu
IGEgcHJldHR5IHByaW50ZWQgc3RyaW5nIGZvciB0aGUgZ2l2ZW4gb2JqZWN0LgorICAgIEZhaWxp
bmcgX19yZXByX18gZnVuY3Rpb25zIG9mIHVzZXIgaW5zdGFuY2VzIHdpbGwgYmUgcmVwcmVzZW50
ZWQKKyAgICB3aXRoIGEgc2hvcnQgZXhjZXB0aW9uIGluZm8uCisgICAgIiIiCisgICAgcmV0dXJu
IF9jYWxsX2FuZF9mb3JtYXRfZXhjZXB0aW9uKHBwcmludC5wZm9ybWF0LCBvYmopCisKKworZGVm
IHNhZmVyZXByKG9iaiwgbWF4c2l6ZT0yNDApOgorICAgICIiInJldHVybiBhIHNpemUtbGltaXRl
ZCBzYWZlIHJlcHItc3RyaW5nIGZvciB0aGUgZ2l2ZW4gb2JqZWN0LgorICAgIEZhaWxpbmcgX19y
ZXByX18gZnVuY3Rpb25zIG9mIHVzZXIgaW5zdGFuY2VzIHdpbGwgYmUgcmVwcmVzZW50ZWQKKyAg
ICB3aXRoIGEgc2hvcnQgZXhjZXB0aW9uIGluZm8gYW5kICdzYWZlcmVwcicgZ2VuZXJhbGx5IHRh
a2VzCisgICAgY2FyZSB0byBuZXZlciByYWlzZSBleGNlcHRpb25zIGl0c2VsZi4gIFRoaXMgZnVu
Y3Rpb24gaXMgYSB3cmFwcGVyCisgICAgYXJvdW5kIHRoZSBSZXByL3JlcHJsaWIgZnVuY3Rpb25h
bGl0eSBvZiB0aGUgc3RhbmRhcmQgMi42IGxpYi4KKyAgICAiIiIKKyAgICAjIHJldmlldyBleGNl
cHRpb24gaGFuZGxpbmcKKyAgICBzcmVwciA9IFNhZmVSZXByKCkKKyAgICBzcmVwci5tYXhzdHJp
bmcgPSBtYXhzaXplCisgICAgc3JlcHIubWF4c2l6ZSA9IG1heHNpemUKKyAgICBzcmVwci5tYXhv
dGhlciA9IDE2MAorICAgIHJldHVybiBzcmVwci5yZXByKG9iaikKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L19pby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L19pby93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2QxYTE1ZmE5NDM0NTZhMGU4
MjA3YjNiMGEwY2ZjNDA2YmE5YTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3QvX2lvL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgor
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L19pby9zYWZlcmVwci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0
aW9uL19faW5pdF9fLnB5CmluZGV4IDJjOWE4ODkwYzlhZmY4NTllYTc5ZWFhZjBmY2JiYjI0NTYw
YTM4NDcuLjZiNmFiYjg2M2EzZmYxYmIyN2Q0YTQzZDViMTA5ZjVmYjhhN2I3NTQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi9fX2luaXRfXy5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24vX19pbml0X18ucHkKQEAgLTEsMTMgKzEs
MTggQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIKIHN1cHBvcnQgZm9yIHByZXNlbnRp
bmcgZGV0YWlsZWQgaW5mb3JtYXRpb24gaW4gZmFpbGluZyBhc3NlcnRpb25zLgogIiIiCi1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv
bgorCiBpbXBvcnQgc3lzCisKIGltcG9ydCBzaXgKIAotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBp
bXBvcnQgdXRpbAogZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgcmV3cml0ZQogZnJvbSBf
cHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgdHJ1bmNhdGUKK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24g
aW1wb3J0IHV0aWwKIAogCiBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9uL3Jld3JpdGUucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24vcmV3cml0ZS5weQppbmRleCBlY2VlZDYxMWZmYjFk
MGYxODYzOGM5Mzk3OWE1NmEzOTg0ZTMyN2NlLi4xYzYxNjFiMjEyZGEzYmI1MTRlODhhNDI4MTZm
ZjNkNDIwZjZmZmM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRp
b24vcmV3cml0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24vcmV3
cml0ZS5weQpAQCAtMSwyMiArMSwzMyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIlJl
d3JpdGUgYXNzZXJ0aW9uIEFTVCB0byBwcm9kdWNlIG5pY2UgZXJyb3IgbWVzc2FnZXMiIiIKLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0
aW9uCisKIGltcG9ydCBhc3QKIGltcG9ydCBlcnJubwotaW1wb3J0IGl0ZXJ0b29scwogaW1wb3J0
IGltcAoraW1wb3J0IGl0ZXJ0b29scwogaW1wb3J0IG1hcnNoYWwKIGltcG9ydCBvcwogaW1wb3J0
IHJlCi1pbXBvcnQgc2l4CitpbXBvcnQgc3RyaW5nCiBpbXBvcnQgc3RydWN0CiBpbXBvcnQgc3lz
CiBpbXBvcnQgdHlwZXMKIAogaW1wb3J0IGF0b21pY3dyaXRlcwogaW1wb3J0IHB5CitpbXBvcnQg
c2l4CiAKK2Zyb20gX3B5dGVzdC5faW8uc2FmZXJlcHIgaW1wb3J0IHNhZmVyZXByCiBmcm9tIF9w
eXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB1dGlsCi0KK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24udXRp
bCBpbXBvcnQgKCAgIyBub3FhOiBGNDAxCisgICAgZm9ybWF0X2V4cGxhbmF0aW9uIGFzIF9mb3Jt
YXRfZXhwbGFuYXRpb24sCispCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBzcGVjX2Zyb21f
ZmlsZV9sb2NhdGlvbgorZnJvbSBfcHl0ZXN0LnBhdGhsaWIgaW1wb3J0IGZubWF0Y2hfZXgKK2Zy
b20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBQdXJlUGF0aAogCiAjIHB5dGVzdCBjYWNoZXMgcmV3
cml0dGVuIHB5Y3MgaW4gX19weWNhY2hlX18uCiBpZiBoYXNhdHRyKGltcCwgImdldF90YWciKToK
QEAgLTUwLDE4ICs2MSwzNSBAQCBjbGFzcyBBc3NlcnRpb25SZXdyaXRpbmdIb29rKG9iamVjdCk6
CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKICAgICAgICAgc2VsZi5jb25maWcg
PSBjb25maWcKLSAgICAgICAgc2VsZi5mbnBhdHMgPSBjb25maWcuZ2V0aW5pKCJweXRob25fZmls
ZXMiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmZucGF0cyA9IGNvbmZpZy5nZXRp
bmkoInB5dGhvbl9maWxlcyIpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAg
ICAgc2VsZi5mbnBhdHMgPSBbInRlc3RfKi5weSIsICIqX3Rlc3QucHkiXQogICAgICAgICBzZWxm
LnNlc3Npb24gPSBOb25lCiAgICAgICAgIHNlbGYubW9kdWxlcyA9IHt9CiAgICAgICAgIHNlbGYu
X3Jld3JpdHRlbl9uYW1lcyA9IHNldCgpCi0gICAgICAgIHNlbGYuX3JlZ2lzdGVyX3dpdGhfcGtn
X3Jlc291cmNlcygpCiAgICAgICAgIHNlbGYuX211c3RfcmV3cml0ZSA9IHNldCgpCisgICAgICAg
ICMgZmxhZyB0byBndWFyZCBhZ2FpbnN0IHRyeWluZyB0byByZXdyaXRlIGEgcHljIGZpbGUgd2hp
bGUgd2UgYXJlIGFscmVhZHkgd3JpdGluZyBhbm90aGVyIHB5YyBmaWxlLAorICAgICAgICAjIHdo
aWNoIG1pZ2h0IHJlc3VsdCBpbiBpbmZpbml0ZSByZWN1cnNpb24gKCMzNTA2KQorICAgICAgICBz
ZWxmLl93cml0aW5nX3B5YyA9IEZhbHNlCisgICAgICAgIHNlbGYuX2Jhc2VuYW1lc190b19jaGVj
a19yZXdyaXRlID0geyJjb25mdGVzdCJ9CisgICAgICAgIHNlbGYuX21hcmtlZF9mb3JfcmV3cml0
ZV9jYWNoZSA9IHt9CisgICAgICAgIHNlbGYuX3Nlc3Npb25fcGF0aHNfY2hlY2tlZCA9IEZhbHNl
CiAKICAgICBkZWYgc2V0X3Nlc3Npb24oc2VsZiwgc2Vzc2lvbik6CiAgICAgICAgIHNlbGYuc2Vz
c2lvbiA9IHNlc3Npb24KKyAgICAgICAgc2VsZi5fc2Vzc2lvbl9wYXRoc19jaGVja2VkID0gRmFs
c2UKKworICAgIGRlZiBfaW1wX2ZpbmRfbW9kdWxlKHNlbGYsIG5hbWUsIHBhdGg9Tm9uZSk6Cisg
ICAgICAgICIiIkluZGlyZWN0aW9uIHNvIHdlIGNhbiBtb2NrIGNhbGxzIHRvIGZpbmRfbW9kdWxl
IG9yaWdpbmF0ZWQgZnJvbSB0aGUgaG9vayBkdXJpbmcgdGVzdGluZyIiIgorICAgICAgICByZXR1
cm4gaW1wLmZpbmRfbW9kdWxlKG5hbWUsIHBhdGgpCiAKICAgICBkZWYgZmluZF9tb2R1bGUoc2Vs
ZiwgbmFtZSwgcGF0aD1Ob25lKToKKyAgICAgICAgaWYgc2VsZi5fd3JpdGluZ19weWM6CisgICAg
ICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICBzdGF0ZSA9IHNlbGYuY29uZmlnLl9hc3NlcnRz
dGF0ZQorICAgICAgICBpZiBzZWxmLl9lYXJseV9yZXdyaXRlX2JhaWxvdXQobmFtZSwgc3RhdGUp
OgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgc3RhdGUudHJhY2UoImZpbmRfbW9k
dWxlIGNhbGxlZCBmb3I6ICVzIiAlIG5hbWUpCiAgICAgICAgIG5hbWVzID0gbmFtZS5yc3BsaXQo
Ii4iLCAxKQogICAgICAgICBsYXN0bmFtZSA9IG5hbWVzWy0xXQpAQCAtNzQsNyArMTAyLDcgQEAg
Y2xhc3MgQXNzZXJ0aW9uUmV3cml0aW5nSG9vayhvYmplY3QpOgogICAgICAgICAgICAgICAgIHB0
aCA9IHBhdGhbMF0KICAgICAgICAgaWYgcHRoIGlzIE5vbmU6CiAgICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgZmQsIGZuLCBkZXNjID0gaW1wLmZpbmRfbW9kdWxlKGxhc3RuYW1lLCBw
YXRoKQorICAgICAgICAgICAgICAgIGZkLCBmbiwgZGVzYyA9IHNlbGYuX2ltcF9maW5kX21vZHVs
ZShsYXN0bmFtZSwgcGF0aCkKICAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICAg
ICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICAgICAgaWYgZmQgaXMgbm90IE5vbmU6CkBA
IC0xNDMsMTIgKzE3MSw1NCBAQCBjbGFzcyBBc3NlcnRpb25SZXdyaXRpbmdIb29rKG9iamVjdCk6
CiAgICAgICAgICAgICAgICAgIyBQcm9iYWJseSBhIFN5bnRheEVycm9yIGluIHRoZSB0ZXN0Lgog
ICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgICAgICBpZiB3cml0ZToKLSAgICAg
ICAgICAgICAgICBfd3JpdGVfcHljKHN0YXRlLCBjbywgc291cmNlX3N0YXQsIHB5YykKKyAgICAg
ICAgICAgICAgICBzZWxmLl93cml0aW5nX3B5YyA9IFRydWUKKyAgICAgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgICAgIF93cml0ZV9weWMoc3RhdGUsIGNvLCBzb3VyY2Vfc3RhdCwg
cHljKQorICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYu
X3dyaXRpbmdfcHljID0gRmFsc2UKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHN0YXRlLnRy
YWNlKCJmb3VuZCBjYWNoZWQgcmV3cml0dGVuIHB5YyBmb3IgJXIiICUgKGZuLCkpCiAgICAgICAg
IHNlbGYubW9kdWxlc1tuYW1lXSA9IGNvLCBweWMKICAgICAgICAgcmV0dXJuIHNlbGYKIAorICAg
IGRlZiBfZWFybHlfcmV3cml0ZV9iYWlsb3V0KHNlbGYsIG5hbWUsIHN0YXRlKToKKyAgICAgICAg
IiIiCisgICAgICAgIFRoaXMgaXMgYSBmYXN0IHdheSB0byBnZXQgb3V0IG9mIHJld3JpdGluZyBt
b2R1bGVzLiBQcm9maWxpbmcgaGFzCisgICAgICAgIHNob3duIHRoYXQgdGhlIGNhbGwgdG8gaW1w
LmZpbmRfbW9kdWxlIChpbnNpZGUgb2YgdGhlIGZpbmRfbW9kdWxlCisgICAgICAgIGZyb20gdGhp
cyBjbGFzcykgaXMgYSBtYWpvciBzbG93ZG93biwgc28sIHRoaXMgbWV0aG9kIHRyaWVzIHRvCisg
ICAgICAgIGZpbHRlciB3aGF0IHdlJ3JlIHN1cmUgd29uJ3QgYmUgcmV3cml0dGVuIGJlZm9yZSBn
ZXR0aW5nIHRvIGl0LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5zZXNzaW9uIGlzIG5v
dCBOb25lIGFuZCBub3Qgc2VsZi5fc2Vzc2lvbl9wYXRoc19jaGVja2VkOgorICAgICAgICAgICAg
c2VsZi5fc2Vzc2lvbl9wYXRoc19jaGVja2VkID0gVHJ1ZQorICAgICAgICAgICAgZm9yIHBhdGgg
aW4gc2VsZi5zZXNzaW9uLl9pbml0aWFscGF0aHM6CisgICAgICAgICAgICAgICAgIyBNYWtlIHNv
bWV0aGluZyBhcyBjOi9wcm9qZWN0cy9teV9wcm9qZWN0L3BhdGgucHkgLT4KKyAgICAgICAgICAg
ICAgICAjICAgICBbJ2M6JywgJ3Byb2plY3RzJywgJ215X3Byb2plY3QnLCAncGF0aC5weSddCisg
ICAgICAgICAgICAgICAgcGFydHMgPSBzdHIocGF0aCkuc3BsaXQob3MucGF0aC5zZXApCisgICAg
ICAgICAgICAgICAgIyBhZGQgJ3BhdGgnIHRvIGJhc2VuYW1lcyB0byBiZSBjaGVja2VkLgorICAg
ICAgICAgICAgICAgIHNlbGYuX2Jhc2VuYW1lc190b19jaGVja19yZXdyaXRlLmFkZChvcy5wYXRo
LnNwbGl0ZXh0KHBhcnRzWy0xXSlbMF0pCisKKyAgICAgICAgIyBOb3RlOiBjb25mdGVzdCBhbHJl
YWR5IGJ5IGRlZmF1bHQgaW4gX2Jhc2VuYW1lc190b19jaGVja19yZXdyaXRlLgorICAgICAgICBw
YXJ0cyA9IG5hbWUuc3BsaXQoIi4iKQorICAgICAgICBpZiBwYXJ0c1stMV0gaW4gc2VsZi5fYmFz
ZW5hbWVzX3RvX2NoZWNrX3Jld3JpdGU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAg
ICAgICAjIEZvciBtYXRjaGluZyB0aGUgbmFtZSBpdCBtdXN0IGJlIGFzIGlmIGl0IHdhcyBhIGZp
bGVuYW1lLgorICAgICAgICBwYXRoID0gUHVyZVBhdGgob3MucGF0aC5zZXAuam9pbihwYXJ0cykg
KyAiLnB5IikKKworICAgICAgICBmb3IgcGF0IGluIHNlbGYuZm5wYXRzOgorICAgICAgICAgICAg
IyBpZiB0aGUgcGF0dGVybiBjb250YWlucyBzdWJkaXJlY3RvcmllcyAoInRlc3RzLyoqLnB5IiBm
b3IgZXhhbXBsZSkgd2UgY2FuJ3QgYmFpbCBvdXQgYmFzZWQKKyAgICAgICAgICAgICMgb24gdGhl
IG5hbWUgYWxvbmUgYmVjYXVzZSB3ZSBuZWVkIHRvIG1hdGNoIGFnYWluc3QgdGhlIGZ1bGwgcGF0
aAorICAgICAgICAgICAgaWYgb3MucGF0aC5kaXJuYW1lKHBhdCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgICAgICBpZiBmbm1hdGNoX2V4KHBhdCwgcGF0aCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgaWYgc2VsZi5faXNfbWFya2VkX2Zv
cl9yZXdyaXRlKG5hbWUsIHN0YXRlKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ICAgIHN0YXRlLnRyYWNlKCJlYXJseSBza2lwIG9mIHJld3JpdGluZyBtb2R1bGU6ICVzIiAlIChu
YW1lLCkpCisgICAgICAgIHJldHVybiBUcnVlCisKICAgICBkZWYgX3Nob3VsZF9yZXdyaXRlKHNl
bGYsIG5hbWUsIGZuX3B5cGF0aCwgc3RhdGUpOgogICAgICAgICAjIGFsd2F5cyByZXdyaXRlIGNv
bmZ0ZXN0IGZpbGVzCiAgICAgICAgIGZuID0gc3RyKGZuX3B5cGF0aCkKQEAgLTE2OCwxMiArMjM4
LDIwIEBAIGNsYXNzIEFzc2VydGlvblJld3JpdGluZ0hvb2sob2JqZWN0KToKICAgICAgICAgICAg
ICAgICBzdGF0ZS50cmFjZSgibWF0Y2hlZCB0ZXN0IGZpbGUgJXIiICUgKGZuLCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgICAgICBmb3IgbWFya2VkIGluIHNlbGYuX211c3Rf
cmV3cml0ZToKLSAgICAgICAgICAgIGlmIG5hbWUgPT0gbWFya2VkIG9yIG5hbWUuc3RhcnRzd2l0
aChtYXJrZWQgKyAiLiIpOgotICAgICAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJtYXRjaGVkIG1h
cmtlZCBmaWxlICVyIChmcm9tICVyKSIgJSAobmFtZSwgbWFya2VkKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gc2VsZi5faXNfbWFya2VkX2Zvcl9yZXdyaXRl
KG5hbWUsIHN0YXRlKQogCi0gICAgICAgIHJldHVybiBGYWxzZQorICAgIGRlZiBfaXNfbWFya2Vk
X2Zvcl9yZXdyaXRlKHNlbGYsIG5hbWUsIHN0YXRlKToKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX21hcmtlZF9mb3JfcmV3cml0ZV9jYWNoZVtuYW1lXQorICAgICAgICBl
eGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBmb3IgbWFya2VkIGluIHNlbGYuX211c3RfcmV3
cml0ZToKKyAgICAgICAgICAgICAgICBpZiBuYW1lID09IG1hcmtlZCBvciBuYW1lLnN0YXJ0c3dp
dGgobWFya2VkICsgIi4iKToKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUudHJhY2UoIm1hdGNo
ZWQgbWFya2VkIGZpbGUgJXIgKGZyb20gJXIpIiAlIChuYW1lLCBtYXJrZWQpKQorICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9tYXJrZWRfZm9yX3Jld3JpdGVfY2FjaGVbbmFtZV0gPSBUcnVlCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIHNlbGYuX21hcmtl
ZF9mb3JfcmV3cml0ZV9jYWNoZVtuYW1lXSA9IEZhbHNlCisgICAgICAgICAgICByZXR1cm4gRmFs
c2UKIAogICAgIGRlZiBtYXJrX3Jld3JpdGUoc2VsZiwgKm5hbWVzKToKICAgICAgICAgIiIiTWFy
ayBpbXBvcnQgbmFtZXMgYXMgbmVlZGluZyB0byBiZSByZXdyaXR0ZW4uCkBAIC0xOTAsMzAgKzI2
OCw0MCBAQCBjbGFzcyBBc3NlcnRpb25SZXdyaXRpbmdIb29rKG9iamVjdCk6CiAgICAgICAgICAg
ICApOgogICAgICAgICAgICAgICAgIHNlbGYuX3dhcm5fYWxyZWFkeV9pbXBvcnRlZChuYW1lKQog
ICAgICAgICBzZWxmLl9tdXN0X3Jld3JpdGUudXBkYXRlKG5hbWVzKQorICAgICAgICBzZWxmLl9t
YXJrZWRfZm9yX3Jld3JpdGVfY2FjaGUuY2xlYXIoKQogCiAgICAgZGVmIF93YXJuX2FscmVhZHlf
aW1wb3J0ZWQoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHNlbGYuY29uZmlnLndhcm4oCi0gICAgICAg
ICAgICAiUDEiLCAiTW9kdWxlIGFscmVhZHkgaW1wb3J0ZWQgc28gY2Fubm90IGJlIHJld3JpdHRl
bjogJXMiICUgbmFtZQorICAgICAgICBmcm9tIF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBvcnQg
UHl0ZXN0QXNzZXJ0UmV3cml0ZVdhcm5pbmcKKyAgICAgICAgZnJvbSBfcHl0ZXN0Lndhcm5pbmdz
IGltcG9ydCBfaXNzdWVfd2FybmluZ19jYXB0dXJlZAorCisgICAgICAgIF9pc3N1ZV93YXJuaW5n
X2NhcHR1cmVkKAorICAgICAgICAgICAgUHl0ZXN0QXNzZXJ0UmV3cml0ZVdhcm5pbmcoCisgICAg
ICAgICAgICAgICAgIk1vZHVsZSBhbHJlYWR5IGltcG9ydGVkIHNvIGNhbm5vdCBiZSByZXdyaXR0
ZW46ICVzIiAlIG5hbWUKKyAgICAgICAgICAgICksCisgICAgICAgICAgICBzZWxmLmNvbmZpZy5o
b29rLAorICAgICAgICAgICAgc3RhY2tsZXZlbD01LAogICAgICAgICApCiAKICAgICBkZWYgbG9h
ZF9tb2R1bGUoc2VsZiwgbmFtZSk6Ci0gICAgICAgICMgSWYgdGhlcmUgaXMgYW4gZXhpc3Rpbmcg
bW9kdWxlIG9iamVjdCBuYW1lZCAnZnVsbG5hbWUnIGluCi0gICAgICAgICMgc3lzLm1vZHVsZXMs
IHRoZSBsb2FkZXIgbXVzdCB1c2UgdGhhdCBleGlzdGluZyBtb2R1bGUuIChPdGhlcndpc2UsCi0g
ICAgICAgICMgdGhlIHJlbG9hZCgpIGJ1aWx0aW4gd2lsbCBub3Qgd29yayBjb3JyZWN0bHkuKQot
ICAgICAgICBpZiBuYW1lIGluIHN5cy5tb2R1bGVzOgotICAgICAgICAgICAgcmV0dXJuIHN5cy5t
b2R1bGVzW25hbWVdCi0KICAgICAgICAgY28sIHB5YyA9IHNlbGYubW9kdWxlcy5wb3AobmFtZSkK
LSAgICAgICAgIyBJIHdpc2ggSSBjb3VsZCBqdXN0IGNhbGwgaW1wLmxvYWRfY29tcGlsZWQgaGVy
ZSwgYnV0IF9fZmlsZV9fIGhhcyB0bwotICAgICAgICAjIGJlIHNldCBwcm9wZXJseS4gSW4gUHl0
aG9uIDMuMissIHRoaXMgYWxsIHdvdWxkIGJlIGhhbmRsZWQgY29ycmVjdGx5Ci0gICAgICAgICMg
YnkgbG9hZF9jb21waWxlZC4KLSAgICAgICAgbW9kID0gc3lzLm1vZHVsZXNbbmFtZV0gPSBpbXAu
bmV3X21vZHVsZShuYW1lKQorICAgICAgICBpZiBuYW1lIGluIHN5cy5tb2R1bGVzOgorICAgICAg
ICAgICAgIyBJZiB0aGVyZSBpcyBhbiBleGlzdGluZyBtb2R1bGUgb2JqZWN0IG5hbWVkICdmdWxs
bmFtZScgaW4KKyAgICAgICAgICAgICMgc3lzLm1vZHVsZXMsIHRoZSBsb2FkZXIgbXVzdCB1c2Ug
dGhhdCBleGlzdGluZyBtb2R1bGUuIChPdGhlcndpc2UsCisgICAgICAgICAgICAjIHRoZSByZWxv
YWQoKSBidWlsdGluIHdpbGwgbm90IHdvcmsgY29ycmVjdGx5LikKKyAgICAgICAgICAgIG1vZCA9
IHN5cy5tb2R1bGVzW25hbWVdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIEkgd2lzaCBJ
IGNvdWxkIGp1c3QgY2FsbCBpbXAubG9hZF9jb21waWxlZCBoZXJlLCBidXQgX19maWxlX18gaGFz
IHRvCisgICAgICAgICAgICAjIGJlIHNldCBwcm9wZXJseS4gSW4gUHl0aG9uIDMuMissIHRoaXMg
YWxsIHdvdWxkIGJlIGhhbmRsZWQgY29ycmVjdGx5CisgICAgICAgICAgICAjIGJ5IGxvYWRfY29t
cGlsZWQuCisgICAgICAgICAgICBtb2QgPSBzeXMubW9kdWxlc1tuYW1lXSA9IGltcC5uZXdfbW9k
dWxlKG5hbWUpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG1vZC5fX2ZpbGVfXyA9IGNvLmNv
X2ZpbGVuYW1lCiAgICAgICAgICAgICAjIE5vcm1hbGx5LCB0aGlzIGF0dHJpYnV0ZSBpcyAzLjIr
LgogICAgICAgICAgICAgbW9kLl9fY2FjaGVkX18gPSBweWMKICAgICAgICAgICAgIG1vZC5fX2xv
YWRlcl9fID0gc2VsZgotICAgICAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhjbywgbW9kLl9fZGlj
dF9fKQorICAgICAgICAgICAgIyBOb3JtYWxseSwgdGhpcyBhdHRyaWJ1dGUgaXMgMy40KworICAg
ICAgICAgICAgbW9kLl9fc3BlY19fID0gc3BlY19mcm9tX2ZpbGVfbG9jYXRpb24obmFtZSwgY28u
Y29fZmlsZW5hbWUsIGxvYWRlcj1zZWxmKQorICAgICAgICAgICAgZXhlYyhjbywgbW9kLl9fZGlj
dF9fKQogICAgICAgICBleGNlcHQ6ICAjIG5vcWEKICAgICAgICAgICAgIGlmIG5hbWUgaW4gc3lz
Lm1vZHVsZXM6CiAgICAgICAgICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW25hbWVdCkBAIC0yMjIs
NyArMzEwLDcgQEAgY2xhc3MgQXNzZXJ0aW9uUmV3cml0aW5nSG9vayhvYmplY3QpOgogCiAgICAg
ZGVmIGlzX3BhY2thZ2Uoc2VsZiwgbmFtZSk6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIGZk
LCBmbiwgZGVzYyA9IGltcC5maW5kX21vZHVsZShuYW1lKQorICAgICAgICAgICAgZmQsIGZuLCBk
ZXNjID0gc2VsZi5faW1wX2ZpbmRfbW9kdWxlKG5hbWUpCiAgICAgICAgIGV4Y2VwdCBJbXBvcnRF
cnJvcjoKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBpZiBmZCBpcyBub3QgTm9u
ZToKQEAgLTIzMCwyNCArMzE4LDYgQEAgY2xhc3MgQXNzZXJ0aW9uUmV3cml0aW5nSG9vayhvYmpl
Y3QpOgogICAgICAgICB0cCA9IGRlc2NbMl0KICAgICAgICAgcmV0dXJuIHRwID09IGltcC5QS0df
RElSRUNUT1JZCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX3JlZ2lzdGVyX3dpdGhfcGtn
X3Jlc291cmNlcyhjbHMpOgotICAgICAgICAiIiIKLSAgICAgICAgRW5zdXJlIHBhY2thZ2UgcmVz
b3VyY2VzIGNhbiBiZSBsb2FkZWQgZnJvbSB0aGlzIGxvYWRlci4gTWF5IGJlIGNhbGxlZAotICAg
ICAgICBtdWx0aXBsZSB0aW1lcywgYXMgdGhlIG9wZXJhdGlvbiBpcyBpZGVtcG90ZW50LgotICAg
ICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0IHBrZ19yZXNvdXJjZXMK
LQotICAgICAgICAgICAgIyBhY2Nlc3MgYW4gYXR0cmlidXRlIGluIGNhc2UgYSBkZWZlcnJlZCBp
bXBvcnRlciBpcyBwcmVzZW50Ci0gICAgICAgICAgICBwa2dfcmVzb3VyY2VzLl9fbmFtZV9fCi0g
ICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAg
ICMgU2luY2UgcHl0ZXN0IHRlc3RzIGFyZSBhbHdheXMgbG9jYXRlZCBpbiB0aGUgZmlsZSBzeXN0
ZW0sIHRoZQotICAgICAgICAjICBEZWZhdWx0UHJvdmlkZXIgaXMgYXBwcm9wcmlhdGUuCi0gICAg
ICAgIHBrZ19yZXNvdXJjZXMucmVnaXN0ZXJfbG9hZGVyX3R5cGUoY2xzLCBwa2dfcmVzb3VyY2Vz
LkRlZmF1bHRQcm92aWRlcikKLQogICAgIGRlZiBnZXRfZGF0YShzZWxmLCBwYXRobmFtZSk6CiAg
ICAgICAgICIiIk9wdGlvbmFsIFBFUDMwMiBnZXRfZGF0YSBBUEkuCiAgICAgICAgICIiIgpAQCAt
MjY0LDkgKzMzNCwxMSBAQCBkZWYgX3dyaXRlX3B5YyhzdGF0ZSwgY28sIHNvdXJjZV9zdGF0LCBw
eWMpOgogICAgIHRyeToKICAgICAgICAgd2l0aCBhdG9taWN3cml0ZXMuYXRvbWljX3dyaXRlKHB5
YywgbW9kZT0id2IiLCBvdmVyd3JpdGU9VHJ1ZSkgYXMgZnA6CiAgICAgICAgICAgICBmcC53cml0
ZShpbXAuZ2V0X21hZ2ljKCkpCi0gICAgICAgICAgICBtdGltZSA9IGludChzb3VyY2Vfc3RhdC5t
dGltZSkKKyAgICAgICAgICAgICMgYXMgb2Ygbm93LCBieXRlY29kZSBoZWFkZXIgZXhwZWN0cyAz
Mi1iaXQgbnVtYmVycyBmb3Igc2l6ZSBhbmQgbXRpbWUgKCM0OTAzKQorICAgICAgICAgICAgbXRp
bWUgPSBpbnQoc291cmNlX3N0YXQubXRpbWUpICYgMHhGRkZGRkZGRgogICAgICAgICAgICAgc2l6
ZSA9IHNvdXJjZV9zdGF0LnNpemUgJiAweEZGRkZGRkZGCi0gICAgICAgICAgICBmcC53cml0ZShz
dHJ1Y3QucGFjaygiPGxsIiwgbXRpbWUsIHNpemUpKQorICAgICAgICAgICAgIyAiPExMIiBzdGFu
ZHMgZm9yIDIgdW5zaWduZWQgbG9uZ3MsIGxpdHRsZS1lbmRpbmcKKyAgICAgICAgICAgIGZwLndy
aXRlKHN0cnVjdC5wYWNrKCI8TEwiLCBtdGltZSwgc2l6ZSkpCiAgICAgICAgICAgICBmcC53cml0
ZShtYXJzaGFsLmR1bXBzKGNvKSkKICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvciBhcyBlOgog
ICAgICAgICBzdGF0ZS50cmFjZSgiZXJyb3Igd3JpdGluZyBweWMgZmlsZSBhdCAlczogZXJybm89
JXMiICUgKHB5YywgZS5lcnJubykpCkBAIC0zMDksNyArMzgxLDcgQEAgZGVmIF9yZXdyaXRlX3Rl
c3QoY29uZmlnLCBmbik6CiAgICAgICAgIGlmICgKICAgICAgICAgICAgIG5vdCBzb3VyY2Uuc3Rh
cnRzd2l0aChCT01fVVRGOCkKICAgICAgICAgICAgIGFuZCBjb29raWVfcmUubWF0Y2goc291cmNl
WzA6ZW5kMV0pIGlzIE5vbmUKLSAgICAgICAgICAgIGFuZCBjb29raWVfcmUubWF0Y2goc291cmNl
W2VuZDEgKyAxOmVuZDJdKSBpcyBOb25lCisgICAgICAgICAgICBhbmQgY29va2llX3JlLm1hdGNo
KHNvdXJjZVtlbmQxICsgMSA6IGVuZDJdKSBpcyBOb25lCiAgICAgICAgICk6CiAgICAgICAgICAg
ICBpZiBoYXNhdHRyKHN0YXRlLCAiX2luZGVjb2RlIik6CiAgICAgICAgICAgICAgICAgIyBlbmNv
ZGluZ3MgaW1wb3J0ZWQgdXMgYWdhaW4sIHNvIGRvbid0IHJld3JpdGUuCkBAIC0zMjQsNyArMzk2
LDcgQEAgZGVmIF9yZXdyaXRlX3Rlc3QoY29uZmlnLCBmbik6CiAgICAgICAgICAgICBmaW5hbGx5
OgogICAgICAgICAgICAgICAgIGRlbCBzdGF0ZS5faW5kZWNvZGUKICAgICB0cnk6Ci0gICAgICAg
IHRyZWUgPSBhc3QucGFyc2Uoc291cmNlKQorICAgICAgICB0cmVlID0gYXN0LnBhcnNlKHNvdXJj
ZSwgZmlsZW5hbWU9Zm4uc3RycGF0aCkKICAgICBleGNlcHQgU3ludGF4RXJyb3I6CiAgICAgICAg
ICMgTGV0IHRoaXMgcG9wIHVwIGFnYWluIGluIHRoZSByZWFsIGltcG9ydC4KICAgICAgICAgc3Rh
dGUudHJhY2UoImZhaWxlZCB0byBwYXJzZTogJXIiICUgKGZuLCkpCkBAIC0zNjEsNyArNDMzLDcg
QEAgZGVmIF9yZWFkX3B5Yyhzb3VyY2UsIHB5YywgdHJhY2U9bGFtYmRhIHg6IE5vbmUpOgogICAg
ICAgICBpZiAoCiAgICAgICAgICAgICBsZW4oZGF0YSkgIT0gMTIKICAgICAgICAgICAgIG9yIGRh
dGFbOjRdICE9IGltcC5nZXRfbWFnaWMoKQotICAgICAgICAgICAgb3Igc3RydWN0LnVucGFjaygi
PGxsIiwgZGF0YVs0Ol0pICE9IChtdGltZSwgc2l6ZSkKKyAgICAgICAgICAgIG9yIHN0cnVjdC51
bnBhY2soIjxMTCIsIGRhdGFbNDpdKSAhPSAobXRpbWUgJiAweEZGRkZGRkZGLCBzaXplICYgMHhG
RkZGRkZGRikKICAgICAgICAgKToKICAgICAgICAgICAgIHRyYWNlKCJfcmVhZF9weWMoJXMpOiBp
bnZhbGlkIG9yIG91dCBvZiBkYXRlIHB5YyIgJSBzb3VyY2UpCiAgICAgICAgICAgICByZXR1cm4g
Tm9uZQpAQCAtMzkyLDE1ICs0NjQsMTUgQEAgZGVmIF9zYWZlcmVwcihvYmopOgogICAgIEpTT04g
cmVwcnMuCiAKICAgICAiIiIKLSAgICByZXByID0gcHkuaW8uc2FmZXJlcHIob2JqKQotICAgIGlm
IGlzaW5zdGFuY2UocmVwciwgc2l4LnRleHRfdHlwZSk6Ci0gICAgICAgIHQgPSBzaXgudGV4dF90
eXBlCi0gICAgZWxzZToKLSAgICAgICAgdCA9IHNpeC5iaW5hcnlfdHlwZQotICAgIHJldHVybiBy
ZXByLnJlcGxhY2UodCgiXG4iKSwgdCgiXFxuIikpCi0KLQotZnJvbSBfcHl0ZXN0LmFzc2VydGlv
bi51dGlsIGltcG9ydCBmb3JtYXRfZXhwbGFuYXRpb24gYXMgX2Zvcm1hdF9leHBsYW5hdGlvbiAg
IyBub3FhCisgICAgciA9IHNhZmVyZXByKG9iaikKKyAgICAjIG9ubHkgb2NjdXJzIGluIHB5dGhv
bjIueCwgcmVwciBtdXN0IHJldHVybiB0ZXh0IGluIHB5dGhvbjMrCisgICAgaWYgaXNpbnN0YW5j
ZShyLCBieXRlcyk6CisgICAgICAgICMgUmVwcmVzZW50IHVucHJpbnRhYmxlIGJ5dGVzIGFzIGBc
eCMjYAorICAgICAgICByID0gdSIiLmpvaW4oCisgICAgICAgICAgICB1IlxceHs6eH0iLmZvcm1h
dChvcmQoYykpIGlmIGMgbm90IGluIHN0cmluZy5wcmludGFibGUgZWxzZSBjLmRlY29kZSgpCisg
ICAgICAgICAgICBmb3IgYyBpbiByCisgICAgICAgICkKKyAgICByZXR1cm4gci5yZXBsYWNlKHUi
XG4iLCB1IlxcbiIpCiAKIAogZGVmIF9mb3JtYXRfYXNzZXJ0bXNnKG9iaik6CkBAIC00MDgsNDAg
KzQ4MCw0MyBAQCBkZWYgX2Zvcm1hdF9hc3NlcnRtc2cob2JqKToKIAogICAgIEZvciBzdHJpbmdz
IHRoaXMgc2ltcGx5IHJlcGxhY2VzIG5ld2xpbmVzIHdpdGggJ1xuficgc28gdGhhdAogICAgIHV0
aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCkgd2lsbCBwcmVzZXJ2ZSB0aGVtIGluc3RlYWQgb2YgZXNj
YXBpbmcKLSAgICBuZXdsaW5lcy4gIEZvciBvdGhlciBvYmplY3RzIHB5LmlvLnNhZmVyZXByKCkg
aXMgdXNlZCBmaXJzdC4KKyAgICBuZXdsaW5lcy4gIEZvciBvdGhlciBvYmplY3RzIHNhZmVyZXBy
KCkgaXMgdXNlZCBmaXJzdC4KIAogICAgICIiIgogICAgICMgcmVwcmxpYiBhcHBlYXJzIHRvIGhh
dmUgYSBidWcgd2hpY2ggbWVhbnMgdGhhdCBpZiBhIHN0cmluZwogICAgICMgY29udGFpbnMgYSBu
ZXdsaW5lIGl0IGdldHMgZXNjYXBlZCwgaG93ZXZlciBpZiBhbiBvYmplY3QgaGFzIGEKICAgICAj
IC5fX3JlcHJfXygpIHdoaWNoIGNvbnRhaW5zIG5ld2xpbmVzIGl0IGRvZXMgbm90IGdldCBlc2Nh
cGVkLgogICAgICMgSG93ZXZlciBpbiBlaXRoZXIgY2FzZSB3ZSB3YW50IHRvIHByZXNlcnZlIHRo
ZSBuZXdsaW5lLgotICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBzaXgudGV4dF90eXBlKSBvciBpc2lu
c3RhbmNlKG9iaiwgc2l4LmJpbmFyeV90eXBlKToKLSAgICAgICAgcyA9IG9iagotICAgICAgICBp
c19yZXByID0gRmFsc2UKLSAgICBlbHNlOgotICAgICAgICBzID0gcHkuaW8uc2FmZXJlcHIob2Jq
KQotICAgICAgICBpc19yZXByID0gVHJ1ZQotICAgIGlmIGlzaW5zdGFuY2Uocywgc2l4LnRleHRf
dHlwZSk6Ci0gICAgICAgIHQgPSBzaXgudGV4dF90eXBlCi0gICAgZWxzZToKLSAgICAgICAgdCA9
IHNpeC5iaW5hcnlfdHlwZQotICAgIHMgPSBzLnJlcGxhY2UodCgiXG4iKSwgdCgiXG5+IikpLnJl
cGxhY2UodCgiJSIpLCB0KCIlJSIpKQotICAgIGlmIGlzX3JlcHI6Ci0gICAgICAgIHMgPSBzLnJl
cGxhY2UodCgiXFxuIiksIHQoIlxufiIpKQotICAgIHJldHVybiBzCisgICAgcmVwbGFjZXMgPSBb
KHUiXG4iLCB1IlxufiIpLCAodSIlIiwgdSIlJSIpXQorICAgIGlmIG5vdCBpc2luc3RhbmNlKG9i
aiwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAgIG9iaiA9IHNhZmVyZXByKG9iaikKKyAgICAg
ICAgcmVwbGFjZXMuYXBwZW5kKCh1IlxcbiIsIHUiXG5+IikpCisKKyAgICBpZiBpc2luc3RhbmNl
KG9iaiwgYnl0ZXMpOgorICAgICAgICByZXBsYWNlcyA9IFsocjEuZW5jb2RlKCksIHIyLmVuY29k
ZSgpKSBmb3IgcjEsIHIyIGluIHJlcGxhY2VzXQorCisgICAgZm9yIHIxLCByMiBpbiByZXBsYWNl
czoKKyAgICAgICAgb2JqID0gb2JqLnJlcGxhY2UocjEsIHIyKQorCisgICAgcmV0dXJuIG9iagog
CiAKIGRlZiBfc2hvdWxkX3JlcHJfZ2xvYmFsX25hbWUob2JqKToKLSAgICByZXR1cm4gbm90IGhh
c2F0dHIob2JqLCAiX19uYW1lX18iKSBhbmQgbm90IGNhbGxhYmxlKG9iaikKKyAgICBpZiBjYWxs
YWJsZShvYmopOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIHRyeToKKyAgICAgICAgcmV0
dXJuIG5vdCBoYXNhdHRyKG9iaiwgIl9fbmFtZV9fIikKKyAgICBleGNlcHQgRXhjZXB0aW9uOgor
ICAgICAgICByZXR1cm4gVHJ1ZQogCiAKIGRlZiBfZm9ybWF0X2Jvb2xvcChleHBsYW5hdGlvbnMs
IGlzX29yKToKICAgICBleHBsYW5hdGlvbiA9ICIoIiArIChpc19vciBhbmQgIiBvciAiIG9yICIg
YW5kICIpLmpvaW4oZXhwbGFuYXRpb25zKSArICIpIgogICAgIGlmIGlzaW5zdGFuY2UoZXhwbGFu
YXRpb24sIHNpeC50ZXh0X3R5cGUpOgotICAgICAgICB0ID0gc2l4LnRleHRfdHlwZQorICAgICAg
ICByZXR1cm4gZXhwbGFuYXRpb24ucmVwbGFjZSh1IiUiLCB1IiUlIikKICAgICBlbHNlOgotICAg
ICAgICB0ID0gc2l4LmJpbmFyeV90eXBlCi0gICAgcmV0dXJuIGV4cGxhbmF0aW9uLnJlcGxhY2Uo
dCgiJSIpLCB0KCIlJSIpKQorICAgICAgICByZXR1cm4gZXhwbGFuYXRpb24ucmVwbGFjZShiIiUi
LCBiIiUlIikKIAogCiBkZWYgX2NhbGxfcmVwcmNvbXBhcmUob3BzLCByZXN1bHRzLCBleHBscywg
ZWFjaF9vYmopOgpAQCAtNTgwLDcgKzY1NSw3IEBAIGNsYXNzIEFzc2VydGlvblJld3JpdGVyKGFz
dC5Ob2RlVmlzaXRvcik6CiAgICAgICAgICMgSW5zZXJ0IHNvbWUgc3BlY2lhbCBpbXBvcnRzIGF0
IHRoZSB0b3Agb2YgdGhlIG1vZHVsZSBidXQgYWZ0ZXIgYW55CiAgICAgICAgICMgZG9jc3RyaW5n
cyBhbmQgX19mdXR1cmVfXyBpbXBvcnRzLgogICAgICAgICBhbGlhc2VzID0gWwotICAgICAgICAg
ICAgYXN0LmFsaWFzKHB5LmJ1aWx0aW4uYnVpbHRpbnMuX19uYW1lX18sICJAcHlfYnVpbHRpbnMi
KSwKKyAgICAgICAgICAgIGFzdC5hbGlhcyhzaXgubW92ZXMuYnVpbHRpbnMuX19uYW1lX18sICJA
cHlfYnVpbHRpbnMiKSwKICAgICAgICAgICAgIGFzdC5hbGlhcygiX3B5dGVzdC5hc3NlcnRpb24u
cmV3cml0ZSIsICJAcHl0ZXN0X2FyIiksCiAgICAgICAgIF0KICAgICAgICAgZG9jID0gZ2V0YXR0
cihtb2QsICJkb2NzdHJpbmciLCBOb25lKQpAQCAtNjMxLDEwICs3MDYsOSBAQCBjbGFzcyBBc3Nl
cnRpb25SZXdyaXRlcihhc3QuTm9kZVZpc2l0b3IpOgogICAgICAgICAgICAgICAgICAgICBzZXRh
dHRyKG5vZGUsIG5hbWUsIG5ldykKICAgICAgICAgICAgICAgICBlbGlmICgKICAgICAgICAgICAg
ICAgICAgICAgaXNpbnN0YW5jZShmaWVsZCwgYXN0LkFTVCkKLSAgICAgICAgICAgICAgICAgICAg
YW5kCiAgICAgICAgICAgICAgICAgICAgICMgRG9uJ3QgcmVjdXJzZSBpbnRvIGV4cHJlc3Npb25z
IGFzIHRoZXkgY2FuJ3QgY29udGFpbgogICAgICAgICAgICAgICAgICAgICAjIGFzc2VydHMuCi0g
ICAgICAgICAgICAgICAgICAgIG5vdCBpc2luc3RhbmNlKGZpZWxkLCBhc3QuZXhwcikKKyAgICAg
ICAgICAgICAgICAgICAgYW5kIG5vdCBpc2luc3RhbmNlKGZpZWxkLCBhc3QuZXhwcikKICAgICAg
ICAgICAgICAgICApOgogICAgICAgICAgICAgICAgICAgICBub2Rlcy5hcHBlbmQoZmllbGQpCiAK
QEAgLTY1NiwxMyArNzMwLDEzIEBAIGNsYXNzIEFzc2VydGlvblJld3JpdGVyKGFzdC5Ob2RlVmlz
aXRvcik6CiAgICAgICAgIHJldHVybiBhc3QuTmFtZShuYW1lLCBhc3QuTG9hZCgpKQogCiAgICAg
ZGVmIGRpc3BsYXkoc2VsZiwgZXhwcik6Ci0gICAgICAgICIiIkNhbGwgcHkuaW8uc2FmZXJlcHIg
b24gdGhlIGV4cHJlc3Npb24uIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmhlbHBlcigic2FmZXJl
cHIiLCBleHByKQorICAgICAgICAiIiJDYWxsIHNhZmVyZXByIG9uIHRoZSBleHByZXNzaW9uLiIi
IgorICAgICAgICByZXR1cm4gc2VsZi5oZWxwZXIoIl9zYWZlcmVwciIsIGV4cHIpCiAKICAgICBk
ZWYgaGVscGVyKHNlbGYsIG5hbWUsICphcmdzKToKICAgICAgICAgIiIiQ2FsbCBhIGhlbHBlciBp
biB0aGlzIG1vZHVsZS4iIiIKICAgICAgICAgcHlfbmFtZSA9IGFzdC5OYW1lKCJAcHl0ZXN0X2Fy
IiwgYXN0LkxvYWQoKSkKLSAgICAgICAgYXR0ciA9IGFzdC5BdHRyaWJ1dGUocHlfbmFtZSwgIl8i
ICsgbmFtZSwgYXN0LkxvYWQoKSkKKyAgICAgICAgYXR0ciA9IGFzdC5BdHRyaWJ1dGUocHlfbmFt
ZSwgbmFtZSwgYXN0LkxvYWQoKSkKICAgICAgICAgcmV0dXJuIGFzdF9DYWxsKGF0dHIsIGxpc3Qo
YXJncyksIFtdKQogCiAgICAgZGVmIGJ1aWx0aW4oc2VsZiwgbmFtZSk6CkBAIC03MzEsMTMgKzgw
NSwxOSBAQCBjbGFzcyBBc3NlcnRpb25SZXdyaXRlcihhc3QuTm9kZVZpc2l0b3IpOgogICAgICAg
ICB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZS4KIAogICAgICAgICAiIiIKLSAgICAgICAgaWYgaXNp
bnN0YW5jZShhc3NlcnRfLnRlc3QsIGFzdC5UdXBsZSkgYW5kIHNlbGYuY29uZmlnIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgZnNsb2NhdGlvbiA9IChzZWxmLm1vZHVsZV9wYXRoLCBhc3NlcnRf
LmxpbmVubykKLSAgICAgICAgICAgIHNlbGYuY29uZmlnLndhcm4oCi0gICAgICAgICAgICAgICAg
IlIxIiwKLSAgICAgICAgICAgICAgICAiYXNzZXJ0aW9uIGlzIGFsd2F5cyB0cnVlLCBwZXJoYXBz
ICIgInJlbW92ZSBwYXJlbnRoZXNlcz8iLAotICAgICAgICAgICAgICAgIGZzbG9jYXRpb249ZnNs
b2NhdGlvbiwKKyAgICAgICAgaWYgaXNpbnN0YW5jZShhc3NlcnRfLnRlc3QsIGFzdC5UdXBsZSkg
YW5kIGxlbihhc3NlcnRfLnRlc3QuZWx0cykgPj0gMToKKyAgICAgICAgICAgIGZyb20gX3B5dGVz
dC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3RBc3NlcnRSZXdyaXRlV2FybmluZworICAgICAg
ICAgICAgaW1wb3J0IHdhcm5pbmdzCisKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm5fZXhwbGlj
aXQoCisgICAgICAgICAgICAgICAgUHl0ZXN0QXNzZXJ0UmV3cml0ZVdhcm5pbmcoCisgICAgICAg
ICAgICAgICAgICAgICJhc3NlcnRpb24gaXMgYWx3YXlzIHRydWUsIHBlcmhhcHMgcmVtb3ZlIHBh
cmVudGhlc2VzPyIKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIGNhdGVnb3J5
PU5vbmUsCisgICAgICAgICAgICAgICAgZmlsZW5hbWU9c3RyKHNlbGYubW9kdWxlX3BhdGgpLAor
ICAgICAgICAgICAgICAgIGxpbmVubz1hc3NlcnRfLmxpbmVubywKICAgICAgICAgICAgICkKKwog
ICAgICAgICBzZWxmLnN0YXRlbWVudHMgPSBbXQogICAgICAgICBzZWxmLnZhcmlhYmxlcyA9IFtd
CiAgICAgICAgIHNlbGYudmFyaWFibGVfY291bnRlciA9IGl0ZXJ0b29scy5jb3VudCgpCkBAIC03
NDYsMTkgKzgyNiwyNiBAQCBjbGFzcyBBc3NlcnRpb25SZXdyaXRlcihhc3QuTm9kZVZpc2l0b3Ip
OgogICAgICAgICBzZWxmLnB1c2hfZm9ybWF0X2NvbnRleHQoKQogICAgICAgICAjIFJld3JpdGUg
YXNzZXJ0IGludG8gYSBidW5jaCBvZiBzdGF0ZW1lbnRzLgogICAgICAgICB0b3BfY29uZGl0aW9u
LCBleHBsYW5hdGlvbiA9IHNlbGYudmlzaXQoYXNzZXJ0Xy50ZXN0KQorICAgICAgICAjIElmIGlu
IGEgdGVzdCBtb2R1bGUsIGNoZWNrIGlmIGRpcmVjdGx5IGFzc2VydGluZyBOb25lLCBpbiBvcmRl
ciB0byB3YXJuIFtJc3N1ZSAjMzE5MV0KKyAgICAgICAgaWYgc2VsZi5tb2R1bGVfcGF0aCBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuc3RhdGVtZW50cy5hcHBlbmQoCisgICAgICAgICAg
ICAgICAgc2VsZi53YXJuX2Fib3V0X25vbmVfYXN0KAorICAgICAgICAgICAgICAgICAgICB0b3Bf
Y29uZGl0aW9uLCBtb2R1bGVfcGF0aD1zZWxmLm1vZHVsZV9wYXRoLCBsaW5lbm89YXNzZXJ0Xy5s
aW5lbm8KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCiAgICAgICAgICMgQ3JlYXRl
IGZhaWx1cmUgbWVzc2FnZS4KICAgICAgICAgYm9keSA9IHNlbGYub25fZmFpbHVyZQogICAgICAg
ICBuZWdhdGlvbiA9IGFzdC5VbmFyeU9wKGFzdC5Ob3QoKSwgdG9wX2NvbmRpdGlvbikKICAgICAg
ICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChhc3QuSWYobmVnYXRpb24sIGJvZHksIFtdKSkKICAg
ICAgICAgaWYgYXNzZXJ0Xy5tc2c6Ci0gICAgICAgICAgICBhc3NlcnRtc2cgPSBzZWxmLmhlbHBl
cigiZm9ybWF0X2Fzc2VydG1zZyIsIGFzc2VydF8ubXNnKQorICAgICAgICAgICAgYXNzZXJ0bXNn
ID0gc2VsZi5oZWxwZXIoIl9mb3JtYXRfYXNzZXJ0bXNnIiwgYXNzZXJ0Xy5tc2cpCiAgICAgICAg
ICAgICBleHBsYW5hdGlvbiA9ICJcbj5hc3NlcnQgIiArIGV4cGxhbmF0aW9uCiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBhc3NlcnRtc2cgPSBhc3QuU3RyKCIiKQogICAgICAgICAgICAgZXhw
bGFuYXRpb24gPSAiYXNzZXJ0ICIgKyBleHBsYW5hdGlvbgogICAgICAgICB0ZW1wbGF0ZSA9IGFz
dC5CaW5PcChhc3NlcnRtc2csIGFzdC5BZGQoKSwgYXN0LlN0cihleHBsYW5hdGlvbikpCiAgICAg
ICAgIG1zZyA9IHNlbGYucG9wX2Zvcm1hdF9jb250ZXh0KHRlbXBsYXRlKQotICAgICAgICBmbXQg
PSBzZWxmLmhlbHBlcigiZm9ybWF0X2V4cGxhbmF0aW9uIiwgbXNnKQorICAgICAgICBmbXQgPSBz
ZWxmLmhlbHBlcigiX2Zvcm1hdF9leHBsYW5hdGlvbiIsIG1zZykKICAgICAgICAgZXJyX25hbWUg
PSBhc3QuTmFtZSgiQXNzZXJ0aW9uRXJyb3IiLCBhc3QuTG9hZCgpKQogICAgICAgICBleGMgPSBh
c3RfQ2FsbChlcnJfbmFtZSwgW2ZtdF0sIFtdKQogICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv
WzBdID49IDM6CkBAIC03NzYsMTIgKzg2MywzOSBAQCBjbGFzcyBBc3NlcnRpb25SZXdyaXRlcihh
c3QuTm9kZVZpc2l0b3IpOgogICAgICAgICAgICAgc2V0X2xvY2F0aW9uKHN0bXQsIGFzc2VydF8u
bGluZW5vLCBhc3NlcnRfLmNvbF9vZmZzZXQpCiAgICAgICAgIHJldHVybiBzZWxmLnN0YXRlbWVu
dHMKIAorICAgIGRlZiB3YXJuX2Fib3V0X25vbmVfYXN0KHNlbGYsIG5vZGUsIG1vZHVsZV9wYXRo
LCBsaW5lbm8pOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhbiBBU1QgaXNzdWluZyBh
IHdhcm5pbmcgaWYgdGhlIHZhbHVlIG9mIG5vZGUgaXMgYE5vbmVgLgorICAgICAgICBUaGlzIGlz
IHVzZWQgdG8gd2FybiB0aGUgdXNlciB3aGVuIGFzc2VydGluZyBhIGZ1bmN0aW9uIHRoYXQgYXNz
ZXJ0cworICAgICAgICBpbnRlcm5hbGx5IGFscmVhZHkuCisgICAgICAgIFNlZSBpc3N1ZSAjMzE5
MSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAgICAiIiIKKworICAgICAgICAjIFVzaW5nIHBhcnNl
IGJlY2F1c2UgaXQgaXMgZGlmZmVyZW50IGJldHdlZW4gcHkyIGFuZCBweTMuCisgICAgICAgIEFT
VF9OT05FID0gYXN0LnBhcnNlKCJOb25lIikuYm9keVswXS52YWx1ZQorICAgICAgICB2YWxfaXNf
bm9uZSA9IGFzdC5Db21wYXJlKG5vZGUsIFthc3QuSXMoKV0sIFtBU1RfTk9ORV0pCisgICAgICAg
IHNlbmRfd2FybmluZyA9IGFzdC5wYXJzZSgKKyAgICAgICAgICAgICIiIgorZnJvbSBfcHl0ZXN0
Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVzdEFzc2VydFJld3JpdGVXYXJuaW5nCitmcm9tIHdh
cm5pbmdzIGltcG9ydCB3YXJuX2V4cGxpY2l0Cit3YXJuX2V4cGxpY2l0KAorICAgIFB5dGVzdEFz
c2VydFJld3JpdGVXYXJuaW5nKCdhc3NlcnRpbmcgdGhlIHZhbHVlIE5vbmUsIHBsZWFzZSB1c2Ug
ImFzc2VydCBpcyBOb25lIicpLAorICAgIGNhdGVnb3J5PU5vbmUsCisgICAgZmlsZW5hbWU9e2Zp
bGVuYW1lIXJ9LAorICAgIGxpbmVubz17bGluZW5vfSwKKykKKyAgICAgICAgICAgICIiIi5mb3Jt
YXQoCisgICAgICAgICAgICAgICAgZmlsZW5hbWU9bW9kdWxlX3BhdGguc3RycGF0aCwgbGluZW5v
PWxpbmVubworICAgICAgICAgICAgKQorICAgICAgICApLmJvZHkKKyAgICAgICAgcmV0dXJuIGFz
dC5JZih2YWxfaXNfbm9uZSwgc2VuZF93YXJuaW5nLCBbXSkKKwogICAgIGRlZiB2aXNpdF9OYW1l
KHNlbGYsIG5hbWUpOgogICAgICAgICAjIERpc3BsYXkgdGhlIHJlcHIgb2YgdGhlIG5hbWUgaWYg
aXQncyBhIGxvY2FsIHZhcmlhYmxlIG9yCiAgICAgICAgICMgX3Nob3VsZF9yZXByX2dsb2JhbF9u
YW1lKCkgdGhpbmtzIGl0J3MgYWNjZXB0YWJsZS4KICAgICAgICAgbG9jcyA9IGFzdF9DYWxsKHNl
bGYuYnVpbHRpbigibG9jYWxzIiksIFtdLCBbXSkKICAgICAgICAgaW5sb2NzID0gYXN0LkNvbXBh
cmUoYXN0LlN0cihuYW1lLmlkKSwgW2FzdC5JbigpXSwgW2xvY3NdKQotICAgICAgICBkb3JlcHIg
PSBzZWxmLmhlbHBlcigic2hvdWxkX3JlcHJfZ2xvYmFsX25hbWUiLCBuYW1lKQorICAgICAgICBk
b3JlcHIgPSBzZWxmLmhlbHBlcigiX3Nob3VsZF9yZXByX2dsb2JhbF9uYW1lIiwgbmFtZSkKICAg
ICAgICAgdGVzdCA9IGFzdC5Cb29sT3AoYXN0Lk9yKCksIFtpbmxvY3MsIGRvcmVwcl0pCiAgICAg
ICAgIGV4cHIgPSBhc3QuSWZFeHAodGVzdCwgc2VsZi5kaXNwbGF5KG5hbWUpLCBhc3QuU3RyKG5h
bWUuaWQpKQogICAgICAgICByZXR1cm4gbmFtZSwgc2VsZi5leHBsYW5hdGlvbl9wYXJhbShleHBy
KQpAQCAtODE3LDcgKzkzMSw3IEBAIGNsYXNzIEFzc2VydGlvblJld3JpdGVyKGFzdC5Ob2RlVmlz
aXRvcik6CiAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZW1lbnRzID0gYm9keSA9IGlubmVyCiAg
ICAgICAgIHNlbGYuc3RhdGVtZW50cyA9IHNhdmUKICAgICAgICAgc2VsZi5vbl9mYWlsdXJlID0g
ZmFpbF9zYXZlCi0gICAgICAgIGV4cGxfdGVtcGxhdGUgPSBzZWxmLmhlbHBlcigiZm9ybWF0X2Jv
b2xvcCIsIGV4cGxfbGlzdCwgYXN0Lk51bShpc19vcikpCisgICAgICAgIGV4cGxfdGVtcGxhdGUg
PSBzZWxmLmhlbHBlcigiX2Zvcm1hdF9ib29sb3AiLCBleHBsX2xpc3QsIGFzdC5OdW0oaXNfb3Ip
KQogICAgICAgICBleHBsID0gc2VsZi5wb3BfZm9ybWF0X2NvbnRleHQoZXhwbF90ZW1wbGF0ZSkK
ICAgICAgICAgcmV0dXJuIGFzdC5OYW1lKHJlc192YXIsIGFzdC5Mb2FkKCkpLCBzZWxmLmV4cGxh
bmF0aW9uX3BhcmFtKGV4cGwpCiAKQEAgLTg2NSw3ICs5NzksOCBAQCBjbGFzcyBBc3NlcnRpb25S
ZXdyaXRlcihhc3QuTm9kZVZpc2l0b3IpOgogICAgIGRlZiB2aXNpdF9TdGFycmVkKHNlbGYsIHN0
YXJyZWQpOgogICAgICAgICAjIEZyb20gUHl0aG9uIDMuNSwgYSBTdGFycmVkIG5vZGUgY2FuIGFw
cGVhciBpbiBhIGZ1bmN0aW9uIGNhbGwKICAgICAgICAgcmVzLCBleHBsID0gc2VsZi52aXNpdChz
dGFycmVkLnZhbHVlKQotICAgICAgICByZXR1cm4gc3RhcnJlZCwgIioiICsgZXhwbAorICAgICAg
ICBuZXdfc3RhcnJlZCA9IGFzdC5TdGFycmVkKHJlcywgc3RhcnJlZC5jdHgpCisgICAgICAgIHJl
dHVybiBuZXdfc3RhcnJlZCwgIioiICsgZXhwbAogCiAgICAgZGVmIHZpc2l0X0NhbGxfbGVnYWN5
KHNlbGYsIGNhbGwpOgogICAgICAgICAiIiIKQEAgLTk0MSw3ICsxMDU2LDcgQEAgY2xhc3MgQXNz
ZXJ0aW9uUmV3cml0ZXIoYXN0Lk5vZGVWaXNpdG9yKToKICAgICAgICAgICAgIGxlZnRfcmVzLCBs
ZWZ0X2V4cGwgPSBuZXh0X3JlcywgbmV4dF9leHBsCiAgICAgICAgICMgVXNlIHB5dGVzdC5hc3Nl
cnRpb24udXRpbC5fcmVwcmNvbXBhcmUgaWYgdGhhdCdzIGF2YWlsYWJsZS4KICAgICAgICAgZXhw
bF9jYWxsID0gc2VsZi5oZWxwZXIoCi0gICAgICAgICAgICAiY2FsbF9yZXByY29tcGFyZSIsCisg
ICAgICAgICAgICAiX2NhbGxfcmVwcmNvbXBhcmUiLAogICAgICAgICAgICAgYXN0LlR1cGxlKHN5
bXMsIGFzdC5Mb2FkKCkpLAogICAgICAgICAgICAgYXN0LlR1cGxlKGxvYWRfbmFtZXMsIGFzdC5M
b2FkKCkpLAogICAgICAgICAgICAgYXN0LlR1cGxlKGV4cGxzLCBhc3QuTG9hZCgpKSwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5weQppbmRleCA3OWFkZWNh
NmE5YWIxZTM5MDZmMjEyOTE3OGQ0YmM5NzI4MWI0YmNmLi41MjU4OTZlYTlhZGQyMTRkZDRhNDI0
Yzc3YTZhMmJiMDY1ZDcyMDE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9h
c3NlcnRpb24vdHJ1bmNhdGUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0
aW9uL3RydW5jYXRlLnB5CkBAIC0xLDE1ICsxLDE4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0q
LQogIiIiCiBVdGlsaXRpZXMgZm9yIHRydW5jYXRpbmcgYXNzZXJ0aW9uIG91dHB1dC4KIAogQ3Vy
cmVudCBkZWZhdWx0IGJlaGF2aW91ciBpcyB0byB0cnVuY2F0ZSBhc3NlcnRpb24gZXhwbGFuYXRp
b25zIGF0CiB+OCB0ZXJtaW5hbCBsaW5lcywgdW5sZXNzIHJ1bm5pbmcgaW4gIi12diIgbW9kZSBv
ciBydW5uaW5nIG9uIENJLgogIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgb3MKIAogaW1wb3J0IHNpeAog
Ci0KIERFRkFVTFRfTUFYX0xJTkVTID0gOAogREVGQVVMVF9NQVhfQ0hBUlMgPSA4ICogODAKIFVT
QUdFX01TRyA9ICJ1c2UgJy12dicgdG8gc2hvdyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L2Fzc2VydGlvbi91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNz
ZXJ0aW9uL3V0aWwucHkKaW5kZXggYmNiODAwYTRhMDdkYTMzMjZjNTJhOGU4NzYwYTNkNTBlNzdi
MjQ4NC4uYzM4MmYxYzYwOTFmNDcyMDlkNzRjZWFhMzQyNzBhYTcyZTFhOWI3YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9uL3V0aWwucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9uL3V0aWwucHkKQEAgLTEsMTMgKzEsMTggQEAKKyMg
LSotIGNvZGluZzogdXRmLTggLSotCiAiIiJVdGlsaXRpZXMgZm9yIGFzc2VydGlvbiBkZWJ1Z2dp
bmciIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwg
cHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy
aW50X2Z1bmN0aW9uCisKIGltcG9ydCBwcHJpbnQKIAotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWlt
cG9ydCBweQogaW1wb3J0IHNpeAotZnJvbSAuLmNvbXBhdCBpbXBvcnQgU2VxdWVuY2UKIAotdSA9
IHNpeC50ZXh0X3R5cGUKK2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCitmcm9tIC4uY29tcGF0IGltcG9y
dCBTZXF1ZW5jZQorZnJvbSBfcHl0ZXN0IGltcG9ydCBvdXRjb21lcworZnJvbSBfcHl0ZXN0Ll9p
by5zYWZlcmVwciBpbXBvcnQgc2FmZXJlcHIKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IEFU
VFJTX0VRX0ZJRUxECiAKICMgVGhlIF9yZXByY29tcGFyZSBhdHRyaWJ1dGUgb24gdGhlIHV0aWwg
bW9kdWxlIGlzIHVzZWQgYnkgdGhlIG5ldyBhc3NlcnRpb24KICMgaW50ZXJwcmV0YXRpb24gY29k
ZSBhbmQgYXNzZXJ0aW9uIHJld3JpdGVyIHRvIGRldGVjdCB0aGlzIHBsdWdpbiB3YXMKQEAgLTE5
LDkgKzI0LDkgQEAgX3JlcHJjb21wYXJlID0gTm9uZQogIyB0aGUgcmUtZW5jb2RpbmcgaXMgbmVl
ZGVkIGZvciBweXRob24yIHJlcHIKICMgd2l0aCBub24tYXNjaWkgY2hhcmFjdGVycyAoc2VlIGlz
c3VlIDg3NyBhbmQgMTM3OSkKIGRlZiBlY3Uocyk6Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4g
dShzLCAidXRmLTgiLCAicmVwbGFjZSIpCi0gICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICBpZiBp
c2luc3RhbmNlKHMsIGJ5dGVzKToKKyAgICAgICAgcmV0dXJuIHMuZGVjb2RlKCJVVEYtOCIsICJy
ZXBsYWNlIikKKyAgICBlbHNlOgogICAgICAgICByZXR1cm4gcwogCiAKQEAgLTM4LDcgKzQzLDcg
QEAgZGVmIGZvcm1hdF9leHBsYW5hdGlvbihleHBsYW5hdGlvbik6CiAgICAgZXhwbGFuYXRpb24g
PSBlY3UoZXhwbGFuYXRpb24pCiAgICAgbGluZXMgPSBfc3BsaXRfZXhwbGFuYXRpb24oZXhwbGFu
YXRpb24pCiAgICAgcmVzdWx0ID0gX2Zvcm1hdF9saW5lcyhsaW5lcykKLSAgICByZXR1cm4gdSgi
XG4iKS5qb2luKHJlc3VsdCkKKyAgICByZXR1cm4gdSJcbiIuam9pbihyZXN1bHQpCiAKIAogZGVm
IF9zcGxpdF9leHBsYW5hdGlvbihleHBsYW5hdGlvbik6CkBAIC00OCw3ICs1Myw3IEBAIGRlZiBf
c3BsaXRfZXhwbGFuYXRpb24oZXhwbGFuYXRpb24pOgogICAgIEFueSBvdGhlciBuZXdsaW5lcyB3
aWxsIGJlIGVzY2FwZWQgYW5kIGFwcGVhciBpbiB0aGUgbGluZSBhcyB0aGUKICAgICBsaXRlcmFs
ICdcbicgY2hhcmFjdGVycy4KICAgICAiIiIKLSAgICByYXdfbGluZXMgPSAoZXhwbGFuYXRpb24g
b3IgdSgiIikpLnNwbGl0KCJcbiIpCisgICAgcmF3X2xpbmVzID0gKGV4cGxhbmF0aW9uIG9yIHUi
Iikuc3BsaXQoIlxuIikKICAgICBsaW5lcyA9IFtyYXdfbGluZXNbMF1dCiAgICAgZm9yIHZhbHVl
cyBpbiByYXdfbGluZXNbMTpdOgogICAgICAgICBpZiB2YWx1ZXMgYW5kIHZhbHVlc1swXSBpbiBb
InsiLCAifSIsICJ+IiwgIj4iXToKQEAgLTczLDEzICs3OCwxMyBAQCBkZWYgX2Zvcm1hdF9saW5l
cyhsaW5lcyk6CiAgICAgZm9yIGxpbmUgaW4gbGluZXNbMTpdOgogICAgICAgICBpZiBsaW5lLnN0
YXJ0c3dpdGgoInsiKToKICAgICAgICAgICAgIGlmIHN0YWNrY250Wy0xXToKLSAgICAgICAgICAg
ICAgICBzID0gdSgiYW5kICAgIikKKyAgICAgICAgICAgICAgICBzID0gdSJhbmQgICAiCiAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHMgPSB1KCJ3aGVyZSAiKQorICAgICAgICAg
ICAgICAgIHMgPSB1IndoZXJlICIKICAgICAgICAgICAgIHN0YWNrLmFwcGVuZChsZW4ocmVzdWx0
KSkKICAgICAgICAgICAgIHN0YWNrY250Wy0xXSArPSAxCiAgICAgICAgICAgICBzdGFja2NudC5h
cHBlbmQoMCkKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodSgiICsiKSArIHUoIiAgIikgKiAo
bGVuKHN0YWNrKSAtIDEpICsgcyArIGxpbmVbMTpdKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCh1IiArIiArIHUiICAiICogKGxlbihzdGFjaykgLSAxKSArIHMgKyBsaW5lWzE6XSkKICAgICAg
ICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIn0iKToKICAgICAgICAgICAgIHN0YWNrLnBvcCgpCiAg
ICAgICAgICAgICBzdGFja2NudC5wb3AoKQpAQCAtODgsNyArOTMsNyBAQCBkZWYgX2Zvcm1hdF9s
aW5lcyhsaW5lcyk6CiAgICAgICAgICAgICBhc3NlcnQgbGluZVswXSBpbiBbIn4iLCAiPiJdCiAg
ICAgICAgICAgICBzdGFja1stMV0gKz0gMQogICAgICAgICAgICAgaW5kZW50ID0gbGVuKHN0YWNr
KSBpZiBsaW5lLnN0YXJ0c3dpdGgoIn4iKSBlbHNlIGxlbihzdGFjaykgLSAxCi0gICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKHUoIiAgIikgKiBpbmRlbnQgKyBsaW5lWzE6XSkKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQodSIgICIgKiBpbmRlbnQgKyBsaW5lWzE6XSkKICAgICBhc3NlcnQgbGVu
KHN0YWNrKSA9PSAxCiAgICAgcmV0dXJuIHJlc3VsdAogCkBAIC0xMDAsMzIgKzEwNSw0NSBAQCBl
eGNlcHQgTmFtZUVycm9yOgogICAgIGJhc2VzdHJpbmcgPSBzdHIKIAogCi1kZWYgYXNzZXJ0cmVw
cl9jb21wYXJlKGNvbmZpZywgb3AsIGxlZnQsIHJpZ2h0KToKLSAgICAiIiJSZXR1cm4gc3BlY2lh
bGlzZWQgZXhwbGFuYXRpb25zIGZvciBzb21lIG9wZXJhdG9ycy9vcGVyYW5kcyIiIgotICAgIHdp
ZHRoID0gODAgLSAxNSAtIGxlbihvcCkgLSAyICAjIDE1IGNoYXJzIGluZGVudGF0aW9uLCAxIHNw
YWNlIGFyb3VuZCBvcAotICAgIGxlZnRfcmVwciA9IHB5LmlvLnNhZmVyZXByKGxlZnQsIG1heHNp
emU9aW50KHdpZHRoIC8vIDIpKQotICAgIHJpZ2h0X3JlcHIgPSBweS5pby5zYWZlcmVwcihyaWdo
dCwgbWF4c2l6ZT13aWR0aCAtIGxlbihsZWZ0X3JlcHIpKQorZGVmIGlzc2VxdWVuY2UoeCk6Cisg
ICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgU2VxdWVuY2UpIGFuZCBub3QgaXNpbnN0YW5jZSh4LCBi
YXNlc3RyaW5nKQorCisKK2RlZiBpc3RleHQoeCk6CisgICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwg
YmFzZXN0cmluZykKKworCitkZWYgaXNkaWN0KHgpOgorICAgIHJldHVybiBpc2luc3RhbmNlKHgs
IGRpY3QpCisKIAotICAgIHN1bW1hcnkgPSB1KCIlcyAlcyAlcyIpICUgKGVjdShsZWZ0X3JlcHIp
LCBvcCwgZWN1KHJpZ2h0X3JlcHIpKQorZGVmIGlzc2V0KHgpOgorICAgIHJldHVybiBpc2luc3Rh
bmNlKHgsIChzZXQsIGZyb3plbnNldCkpCiAKLSAgICBkZWYgaXNzZXF1ZW5jZSh4KToKLSAgICAg
ICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgU2VxdWVuY2UpIGFuZCBub3QgaXNpbnN0YW5jZSh4LCBi
YXNlc3RyaW5nKQogCi0gICAgZGVmIGlzdGV4dCh4KToKLSAgICAgICAgcmV0dXJuIGlzaW5zdGFu
Y2UoeCwgYmFzZXN0cmluZykKK2RlZiBpc2RhdGFjbHMob2JqKToKKyAgICByZXR1cm4gZ2V0YXR0
cihvYmosICJfX2RhdGFjbGFzc19maWVsZHNfXyIsIE5vbmUpIGlzIG5vdCBOb25lCiAKLSAgICBk
ZWYgaXNkaWN0KHgpOgotICAgICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCBkaWN0KQogCi0gICAg
ZGVmIGlzc2V0KHgpOgotICAgICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCAoc2V0LCBmcm96ZW5z
ZXQpKQorZGVmIGlzYXR0cnMob2JqKToKKyAgICByZXR1cm4gZ2V0YXR0cihvYmosICJfX2F0dHJz
X2F0dHJzX18iLCBOb25lKSBpcyBub3QgTm9uZQogCi0gICAgZGVmIGlzaXRlcmFibGUob2JqKToK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaXRlcihvYmopCi0gICAgICAgICAgICByZXR1cm4g
bm90IGlzdGV4dChvYmopCi0gICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKKworZGVmIGlzaXRlcmFibGUob2JqKToKKyAgICB0cnk6CisgICAgICAgIGl0
ZXIob2JqKQorICAgICAgICByZXR1cm4gbm90IGlzdGV4dChvYmopCisgICAgZXhjZXB0IFR5cGVF
cnJvcjoKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKworZGVmIGFzc2VydHJlcHJfY29tcGFyZShj
b25maWcsIG9wLCBsZWZ0LCByaWdodCk6CisgICAgIiIiUmV0dXJuIHNwZWNpYWxpc2VkIGV4cGxh
bmF0aW9ucyBmb3Igc29tZSBvcGVyYXRvcnMvb3BlcmFuZHMiIiIKKyAgICB3aWR0aCA9IDgwIC0g
MTUgLSBsZW4ob3ApIC0gMiAgIyAxNSBjaGFycyBpbmRlbnRhdGlvbiwgMSBzcGFjZSBhcm91bmQg
b3AKKyAgICBsZWZ0X3JlcHIgPSBzYWZlcmVwcihsZWZ0LCBtYXhzaXplPWludCh3aWR0aCAvLyAy
KSkKKyAgICByaWdodF9yZXByID0gc2FmZXJlcHIocmlnaHQsIG1heHNpemU9d2lkdGggLSBsZW4o
bGVmdF9yZXByKSkKKworICAgIHN1bW1hcnkgPSB1IiVzICVzICVzIiAlIChlY3UobGVmdF9yZXBy
KSwgb3AsIGVjdShyaWdodF9yZXByKSkKIAogICAgIHZlcmJvc2UgPSBjb25maWcuZ2V0b3B0aW9u
KCJ2ZXJib3NlIikKICAgICBleHBsYW5hdGlvbiA9IE5vbmUKQEAgLTE0MCw2ICsxNTgsMTEgQEAg
ZGVmIGFzc2VydHJlcHJfY29tcGFyZShjb25maWcsIG9wLCBsZWZ0LCByaWdodCk6CiAgICAgICAg
ICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gX2NvbXBhcmVfZXFfc2V0KGxlZnQsIHJpZ2h0LCB2
ZXJib3NlKQogICAgICAgICAgICAgICAgIGVsaWYgaXNkaWN0KGxlZnQpIGFuZCBpc2RpY3Qocmln
aHQpOgogICAgICAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9IF9jb21wYXJlX2VxX2RpY3Qo
bGVmdCwgcmlnaHQsIHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZWxpZiB0eXBlKGxlZnQpID09
IHR5cGUocmlnaHQpIGFuZCAoaXNkYXRhY2xzKGxlZnQpIG9yIGlzYXR0cnMobGVmdCkpOgorICAg
ICAgICAgICAgICAgICAgICB0eXBlX2ZuID0gKGlzZGF0YWNscywgaXNhdHRycykKKyAgICAgICAg
ICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBfY29tcGFyZV9lcV9jbHMobGVmdCwgcmlnaHQsIHZl
cmJvc2UsIHR5cGVfZm4pCisgICAgICAgICAgICAgICAgZWxpZiB2ZXJib3NlID4gMDoKKyAgICAg
ICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBfY29tcGFyZV9lcV92ZXJib3NlKGxlZnQsIHJp
Z2h0KQogICAgICAgICAgICAgICAgIGlmIGlzaXRlcmFibGUobGVmdCkgYW5kIGlzaXRlcmFibGUo
cmlnaHQpOgogICAgICAgICAgICAgICAgICAgICBleHBsID0gX2NvbXBhcmVfZXFfaXRlcmFibGUo
bGVmdCwgcmlnaHQsIHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgIGlmIGV4cGxhbmF0aW9u
IGlzIG5vdCBOb25lOgpAQCAtMTQ5LDEzICsxNzIsMTMgQEAgZGVmIGFzc2VydHJlcHJfY29tcGFy
ZShjb25maWcsIG9wLCBsZWZ0LCByaWdodCk6CiAgICAgICAgIGVsaWYgb3AgPT0gIm5vdCBpbiI6
CiAgICAgICAgICAgICBpZiBpc3RleHQobGVmdCkgYW5kIGlzdGV4dChyaWdodCk6CiAgICAgICAg
ICAgICAgICAgZXhwbGFuYXRpb24gPSBfbm90aW5fdGV4dChsZWZ0LCByaWdodCwgdmVyYm9zZSkK
KyAgICBleGNlcHQgb3V0Y29tZXMuRXhpdDoKKyAgICAgICAgcmFpc2UKICAgICBleGNlcHQgRXhj
ZXB0aW9uOgogICAgICAgICBleHBsYW5hdGlvbiA9IFsKLSAgICAgICAgICAgIHUoCi0gICAgICAg
ICAgICAgICAgIihweXRlc3RfYXNzZXJ0aW9uIHBsdWdpbjogcmVwcmVzZW50YXRpb24gb2YgZGV0
YWlscyBmYWlsZWQuICAiCi0gICAgICAgICAgICAgICAgIlByb2JhYmx5IGFuIG9iamVjdCBoYXMg
YSBmYXVsdHkgX19yZXByX18uKSIKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICB1KF9weXRl
c3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpKSwKKyAgICAgICAgICAgIHUiKHB5dGVzdF9hc3NlcnRp
b24gcGx1Z2luOiByZXByZXNlbnRhdGlvbiBvZiBkZXRhaWxzIGZhaWxlZC4gICIKKyAgICAgICAg
ICAgIHUiUHJvYmFibHkgYW4gb2JqZWN0IGhhcyBhIGZhdWx0eSBfX3JlcHJfXy4pIiwKKyAgICAg
ICAgICAgIHNpeC50ZXh0X3R5cGUoX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3Vy
cmVudCgpKSwKICAgICAgICAgXQogCiAgICAgaWYgbm90IGV4cGxhbmF0aW9uOgpAQCAtMTY0LDgg
KzE4Nyw4IEBAIGRlZiBhc3NlcnRyZXByX2NvbXBhcmUoY29uZmlnLCBvcCwgbGVmdCwgcmlnaHQp
OgogICAgIHJldHVybiBbc3VtbWFyeV0gKyBleHBsYW5hdGlvbgogCiAKLWRlZiBfZGlmZl90ZXh0
KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKLSAgICAiIiJSZXR1cm4gdGhlIGV4cGxhbmF0
aW9uIGZvciB0aGUgZGlmZiBiZXR3ZWVuIHRleHQgb3IgYnl0ZXMKK2RlZiBfZGlmZl90ZXh0KGxl
ZnQsIHJpZ2h0LCB2ZXJib3NlPTApOgorICAgICIiIlJldHVybiB0aGUgZXhwbGFuYXRpb24gZm9y
IHRoZSBkaWZmIGJldHdlZW4gdGV4dCBvciBieXRlcy4KIAogICAgIFVubGVzcyAtLXZlcmJvc2Ug
aXMgdXNlZCB0aGlzIHdpbGwgc2tpcCBsZWFkaW5nIGFuZCB0cmFpbGluZwogICAgIGNoYXJhY3Rl
cnMgd2hpY2ggYXJlIGlkZW50aWNhbCB0byBrZWVwIHRoZSBkaWZmIG1pbmltYWwuCkBAIC0xODcs
MTEgKzIxMCwxMSBAQCBkZWYgX2RpZmZfdGV4dChsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxzZSk6
CiAgICAgICAgIHIgPSByLnJlcGxhY2UociJcciIsICJcciIpCiAgICAgICAgIHJldHVybiByCiAK
LSAgICBpZiBpc2luc3RhbmNlKGxlZnQsIHNpeC5iaW5hcnlfdHlwZSk6CisgICAgaWYgaXNpbnN0
YW5jZShsZWZ0LCBieXRlcyk6CiAgICAgICAgIGxlZnQgPSBlc2NhcGVfZm9yX3JlYWRhYmxlX2Rp
ZmYobGVmdCkKLSAgICBpZiBpc2luc3RhbmNlKHJpZ2h0LCBzaXguYmluYXJ5X3R5cGUpOgorICAg
IGlmIGlzaW5zdGFuY2UocmlnaHQsIGJ5dGVzKToKICAgICAgICAgcmlnaHQgPSBlc2NhcGVfZm9y
X3JlYWRhYmxlX2RpZmYocmlnaHQpCi0gICAgaWYgbm90IHZlcmJvc2U6CisgICAgaWYgdmVyYm9z
ZSA8IDE6CiAgICAgICAgIGkgPSAwICAjIGp1c3QgaW4gY2FzZSBsZWZ0IG9yIHJpZ2h0IGhhcyB6
ZXJvIGxlbmd0aAogICAgICAgICBmb3IgaSBpbiByYW5nZShtaW4obGVuKGxlZnQpLCBsZW4ocmln
aHQpKSk6CiAgICAgICAgICAgICBpZiBsZWZ0W2ldICE9IHJpZ2h0W2ldOgpAQCAtMTk5LDggKzIy
Miw3IEBAIGRlZiBfZGlmZl90ZXh0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKICAgICAg
ICAgaWYgaSA+IDQyOgogICAgICAgICAgICAgaSAtPSAxMCAgIyBQcm92aWRlIHNvbWUgY29udGV4
dAogICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBbCi0gICAgICAgICAgICAgICAgdSgiU2tpcHBp
bmcgJXMgaWRlbnRpY2FsIGxlYWRpbmcgIiAiY2hhcmFjdGVycyBpbiBkaWZmLCB1c2UgLXYgdG8g
c2hvdyIpCi0gICAgICAgICAgICAgICAgJSBpCisgICAgICAgICAgICAgICAgdSJTa2lwcGluZyAl
cyBpZGVudGljYWwgbGVhZGluZyBjaGFyYWN0ZXJzIGluIGRpZmYsIHVzZSAtdiB0byBzaG93IiAl
IGkKICAgICAgICAgICAgIF0KICAgICAgICAgICAgIGxlZnQgPSBsZWZ0W2k6XQogICAgICAgICAg
ICAgcmlnaHQgPSByaWdodFtpOl0KQEAgLTIxMSwxMSArMjMzLDggQEAgZGVmIF9kaWZmX3RleHQo
bGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgogICAgICAgICAgICAgaWYgaSA+IDQyOgogICAg
ICAgICAgICAgICAgIGkgLT0gMTAgICMgUHJvdmlkZSBzb21lIGNvbnRleHQKICAgICAgICAgICAg
ICAgICBleHBsYW5hdGlvbiArPSBbCi0gICAgICAgICAgICAgICAgICAgIHUoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAiU2tpcHBpbmcgJXMgaWRlbnRpY2FsIHRyYWlsaW5nICIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJjaGFyYWN0ZXJzIGluIGRpZmYsIHVzZSAtdiB0byBzaG93IgotICAg
ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICUgaQorICAgICAgICAgICAg
ICAgICAgICB1IlNraXBwaW5nIHt9IGlkZW50aWNhbCB0cmFpbGluZyAiCisgICAgICAgICAgICAg
ICAgICAgIHUiY2hhcmFjdGVycyBpbiBkaWZmLCB1c2UgLXYgdG8gc2hvdyIuZm9ybWF0KGkpCiAg
ICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgIGxlZnQgPSBsZWZ0WzotaV0KICAgICAg
ICAgICAgICAgICByaWdodCA9IHJpZ2h0WzotaV0KQEAgLTIzMSwxMDggKzI1MCwxNzIgQEAgZGVm
IF9kaWZmX3RleHQobGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgogICAgIHJldHVybiBleHBs
YW5hdGlvbgogCiAKLWRlZiBfY29tcGFyZV9lcV9pdGVyYWJsZShsZWZ0LCByaWdodCwgdmVyYm9z
ZT1GYWxzZSk6CitkZWYgX2NvbXBhcmVfZXFfdmVyYm9zZShsZWZ0LCByaWdodCk6CisgICAga2Vl
cGVuZHMgPSBUcnVlCisgICAgbGVmdF9saW5lcyA9IHJlcHIobGVmdCkuc3BsaXRsaW5lcyhrZWVw
ZW5kcykKKyAgICByaWdodF9saW5lcyA9IHJlcHIocmlnaHQpLnNwbGl0bGluZXMoa2VlcGVuZHMp
CisKKyAgICBleHBsYW5hdGlvbiA9IFtdCisgICAgZXhwbGFuYXRpb24gKz0gW3UiLSIgKyBsaW5l
IGZvciBsaW5lIGluIGxlZnRfbGluZXNdCisgICAgZXhwbGFuYXRpb24gKz0gW3UiKyIgKyBsaW5l
IGZvciBsaW5lIGluIHJpZ2h0X2xpbmVzXQorCisgICAgcmV0dXJuIGV4cGxhbmF0aW9uCisKKwor
ZGVmIF9jb21wYXJlX2VxX2l0ZXJhYmxlKGxlZnQsIHJpZ2h0LCB2ZXJib3NlPTApOgogICAgIGlm
IG5vdCB2ZXJib3NlOgotICAgICAgICByZXR1cm4gW3UoIlVzZSAtdiB0byBnZXQgdGhlIGZ1bGwg
ZGlmZiIpXQorICAgICAgICByZXR1cm4gW3UiVXNlIC12IHRvIGdldCB0aGUgZnVsbCBkaWZmIl0K
ICAgICAjIGR5bmFtaWMgaW1wb3J0IHRvIHNwZWVkdXAgcHl0ZXN0CiAgICAgaW1wb3J0IGRpZmZs
aWIKIAogICAgIHRyeToKICAgICAgICAgbGVmdF9mb3JtYXR0aW5nID0gcHByaW50LnBmb3JtYXQo
bGVmdCkuc3BsaXRsaW5lcygpCiAgICAgICAgIHJpZ2h0X2Zvcm1hdHRpbmcgPSBwcHJpbnQucGZv
cm1hdChyaWdodCkuc3BsaXRsaW5lcygpCi0gICAgICAgIGV4cGxhbmF0aW9uID0gW3UoIkZ1bGwg
ZGlmZjoiKV0KKyAgICAgICAgZXhwbGFuYXRpb24gPSBbdSJGdWxsIGRpZmY6Il0KICAgICBleGNl
cHQgRXhjZXB0aW9uOgogICAgICAgICAjIGhhY2s6IFByZXR0eVByaW50ZXIucGZvcm1hdCgpIGlu
IHB5dGhvbiAyIGZhaWxzIHdoZW4gZm9ybWF0dGluZyBpdGVtcyB0aGF0IGNhbid0IGJlIHNvcnRl
ZCgpLCBpZSwgY2FsbGluZwogICAgICAgICAjIHNvcnRlZCgpIG9uIGEgbGlzdCB3b3VsZCByYWlz
ZS4gU2VlIGlzc3VlICM3MTguCiAgICAgICAgICMgQXMgYSB3b3JrYXJvdW5kLCB0aGUgZnVsbCBk
aWZmIGlzIGdlbmVyYXRlZCBieSB1c2luZyB0aGUgcmVwcigpIHN0cmluZyBvZiBlYWNoIGl0ZW0g
b2YgZWFjaCBjb250YWluZXIuCiAgICAgICAgIGxlZnRfZm9ybWF0dGluZyA9IHNvcnRlZChyZXBy
KHgpIGZvciB4IGluIGxlZnQpCiAgICAgICAgIHJpZ2h0X2Zvcm1hdHRpbmcgPSBzb3J0ZWQocmVw
cih4KSBmb3IgeCBpbiByaWdodCkKLSAgICAgICAgZXhwbGFuYXRpb24gPSBbdSgiRnVsbCBkaWZm
IChmYWxsYmFjayB0byBjYWxsaW5nIHJlcHIgb24gZWFjaCBpdGVtKToiKV0KKyAgICAgICAgZXhw
bGFuYXRpb24gPSBbdSJGdWxsIGRpZmYgKGZhbGxiYWNrIHRvIGNhbGxpbmcgcmVwciBvbiBlYWNo
IGl0ZW0pOiJdCiAgICAgZXhwbGFuYXRpb24uZXh0ZW5kKAogICAgICAgICBsaW5lLnN0cmlwKCkg
Zm9yIGxpbmUgaW4gZGlmZmxpYi5uZGlmZihsZWZ0X2Zvcm1hdHRpbmcsIHJpZ2h0X2Zvcm1hdHRp
bmcpCiAgICAgKQogICAgIHJldHVybiBleHBsYW5hdGlvbgogCiAKLWRlZiBfY29tcGFyZV9lcV9z
ZXF1ZW5jZShsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxzZSk6CitkZWYgX2NvbXBhcmVfZXFfc2Vx
dWVuY2UobGVmdCwgcmlnaHQsIHZlcmJvc2U9MCk6CiAgICAgZXhwbGFuYXRpb24gPSBbXQotICAg
IGZvciBpIGluIHJhbmdlKG1pbihsZW4obGVmdCksIGxlbihyaWdodCkpKToKKyAgICBsZW5fbGVm
dCA9IGxlbihsZWZ0KQorICAgIGxlbl9yaWdodCA9IGxlbihyaWdodCkKKyAgICBmb3IgaSBpbiBy
YW5nZShtaW4obGVuX2xlZnQsIGxlbl9yaWdodCkpOgogICAgICAgICBpZiBsZWZ0W2ldICE9IHJp
Z2h0W2ldOgotICAgICAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UoIkF0IGluZGV4ICVzIGRpZmY6
ICVyICE9ICVyIikgJSAoaSwgbGVmdFtpXSwgcmlnaHRbaV0pXQorICAgICAgICAgICAgZXhwbGFu
YXRpb24gKz0gW3UiQXQgaW5kZXggJXMgZGlmZjogJXIgIT0gJXIiICUgKGksIGxlZnRbaV0sIHJp
Z2h0W2ldKV0KICAgICAgICAgICAgIGJyZWFrCi0gICAgaWYgbGVuKGxlZnQpID4gbGVuKHJpZ2h0
KToKLSAgICAgICAgZXhwbGFuYXRpb24gKz0gWwotICAgICAgICAgICAgdSgiTGVmdCBjb250YWlu
cyBtb3JlIGl0ZW1zLCBmaXJzdCBleHRyYSBpdGVtOiAlcyIpCi0gICAgICAgICAgICAlIHB5Lmlv
LnNhZmVyZXByKGxlZnRbbGVuKHJpZ2h0KV0pCi0gICAgICAgIF0KLSAgICBlbGlmIGxlbihsZWZ0
KSA8IGxlbihyaWdodCk6Ci0gICAgICAgIGV4cGxhbmF0aW9uICs9IFsKLSAgICAgICAgICAgIHUo
IlJpZ2h0IGNvbnRhaW5zIG1vcmUgaXRlbXMsIGZpcnN0IGV4dHJhIGl0ZW06ICVzIikKLSAgICAg
ICAgICAgICUgcHkuaW8uc2FmZXJlcHIocmlnaHRbbGVuKGxlZnQpXSkKLSAgICAgICAgXQorICAg
IGxlbl9kaWZmID0gbGVuX2xlZnQgLSBsZW5fcmlnaHQKKworICAgIGlmIGxlbl9kaWZmOgorICAg
ICAgICBpZiBsZW5fZGlmZiA+IDA6CisgICAgICAgICAgICBkaXJfd2l0aF9tb3JlID0gIkxlZnQi
CisgICAgICAgICAgICBleHRyYSA9IHNhZmVyZXByKGxlZnRbbGVuX3JpZ2h0XSkKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGxlbl9kaWZmID0gMCAtIGxlbl9kaWZmCisgICAgICAgICAgICBk
aXJfd2l0aF9tb3JlID0gIlJpZ2h0IgorICAgICAgICAgICAgZXh0cmEgPSBzYWZlcmVwcihyaWdo
dFtsZW5fbGVmdF0pCisKKyAgICAgICAgaWYgbGVuX2RpZmYgPT0gMToKKyAgICAgICAgICAgIGV4
cGxhbmF0aW9uICs9IFt1IiVzIGNvbnRhaW5zIG9uZSBtb3JlIGl0ZW06ICVzIiAlIChkaXJfd2l0
aF9tb3JlLCBleHRyYSldCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleHBsYW5hdGlvbiAr
PSBbCisgICAgICAgICAgICAgICAgdSIlcyBjb250YWlucyAlZCBtb3JlIGl0ZW1zLCBmaXJzdCBl
eHRyYSBpdGVtOiAlcyIKKyAgICAgICAgICAgICAgICAlIChkaXJfd2l0aF9tb3JlLCBsZW5fZGlm
ZiwgZXh0cmEpCisgICAgICAgICAgICBdCiAgICAgcmV0dXJuIGV4cGxhbmF0aW9uCiAKIAotZGVm
IF9jb21wYXJlX2VxX3NldChsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxzZSk6CitkZWYgX2NvbXBh
cmVfZXFfc2V0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPTApOgogICAgIGV4cGxhbmF0aW9uID0gW10K
ICAgICBkaWZmX2xlZnQgPSBsZWZ0IC0gcmlnaHQKICAgICBkaWZmX3JpZ2h0ID0gcmlnaHQgLSBs
ZWZ0CiAgICAgaWYgZGlmZl9sZWZ0OgotICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSgiRXh0
cmEgaXRlbXMgaW4gdGhlIGxlZnQgc2V0OiIpKQorICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQo
dSJFeHRyYSBpdGVtcyBpbiB0aGUgbGVmdCBzZXQ6IikKICAgICAgICAgZm9yIGl0ZW0gaW4gZGlm
Zl9sZWZ0OgotICAgICAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5kKHB5LmlvLnNhZmVyZXByKGl0
ZW0pKQorICAgICAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5kKHNhZmVyZXByKGl0ZW0pKQogICAg
IGlmIGRpZmZfcmlnaHQ6Ci0gICAgICAgIGV4cGxhbmF0aW9uLmFwcGVuZCh1KCJFeHRyYSBpdGVt
cyBpbiB0aGUgcmlnaHQgc2V0OiIpKQorICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSJFeHRy
YSBpdGVtcyBpbiB0aGUgcmlnaHQgc2V0OiIpCiAgICAgICAgIGZvciBpdGVtIGluIGRpZmZfcmln
aHQ6Ci0gICAgICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQocHkuaW8uc2FmZXJlcHIoaXRlbSkp
CisgICAgICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQoc2FmZXJlcHIoaXRlbSkpCiAgICAgcmV0
dXJuIGV4cGxhbmF0aW9uCiAKIAotZGVmIF9jb21wYXJlX2VxX2RpY3QobGVmdCwgcmlnaHQsIHZl
cmJvc2U9RmFsc2UpOgorZGVmIF9jb21wYXJlX2VxX2RpY3QobGVmdCwgcmlnaHQsIHZlcmJvc2U9
MCk6CiAgICAgZXhwbGFuYXRpb24gPSBbXQotICAgIGNvbW1vbiA9IHNldChsZWZ0KS5pbnRlcnNl
Y3Rpb24oc2V0KHJpZ2h0KSkKKyAgICBzZXRfbGVmdCA9IHNldChsZWZ0KQorICAgIHNldF9yaWdo
dCA9IHNldChyaWdodCkKKyAgICBjb21tb24gPSBzZXRfbGVmdC5pbnRlcnNlY3Rpb24oc2V0X3Jp
Z2h0KQogICAgIHNhbWUgPSB7azogbGVmdFtrXSBmb3IgayBpbiBjb21tb24gaWYgbGVmdFtrXSA9
PSByaWdodFtrXX0KICAgICBpZiBzYW1lIGFuZCB2ZXJib3NlIDwgMjoKLSAgICAgICAgZXhwbGFu
YXRpb24gKz0gW3UoIk9taXR0aW5nICVzIGlkZW50aWNhbCBpdGVtcywgdXNlIC12diB0byBzaG93
IikgJSBsZW4oc2FtZSldCisgICAgICAgIGV4cGxhbmF0aW9uICs9IFt1Ik9taXR0aW5nICVzIGlk
ZW50aWNhbCBpdGVtcywgdXNlIC12diB0byBzaG93IiAlIGxlbihzYW1lKV0KICAgICBlbGlmIHNh
bWU6Ci0gICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCJDb21tb24gaXRlbXM6IildCisgICAgICAg
IGV4cGxhbmF0aW9uICs9IFt1IkNvbW1vbiBpdGVtczoiXQogICAgICAgICBleHBsYW5hdGlvbiAr
PSBwcHJpbnQucGZvcm1hdChzYW1lKS5zcGxpdGxpbmVzKCkKICAgICBkaWZmID0ge2sgZm9yIGsg
aW4gY29tbW9uIGlmIGxlZnRba10gIT0gcmlnaHRba119CiAgICAgaWYgZGlmZjoKLSAgICAgICAg
ZXhwbGFuYXRpb24gKz0gW3UoIkRpZmZlcmluZyBpdGVtczoiKV0KKyAgICAgICAgZXhwbGFuYXRp
b24gKz0gW3UiRGlmZmVyaW5nIGl0ZW1zOiJdCiAgICAgICAgIGZvciBrIGluIGRpZmY6Ci0gICAg
ICAgICAgICBleHBsYW5hdGlvbiArPSBbCi0gICAgICAgICAgICAgICAgcHkuaW8uc2FmZXJlcHIo
e2s6IGxlZnRba119KSArICIgIT0gIiArIHB5LmlvLnNhZmVyZXByKHtrOiByaWdodFtrXX0pCi0g
ICAgICAgICAgICBdCi0gICAgZXh0cmFfbGVmdCA9IHNldChsZWZ0KSAtIHNldChyaWdodCkKLSAg
ICBpZiBleHRyYV9sZWZ0OgotICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSgiTGVmdCBjb250
YWlucyBtb3JlIGl0ZW1zOiIpKQorICAgICAgICAgICAgZXhwbGFuYXRpb24gKz0gW3NhZmVyZXBy
KHtrOiBsZWZ0W2tdfSkgKyAiICE9ICIgKyBzYWZlcmVwcih7azogcmlnaHRba119KV0KKyAgICBl
eHRyYV9sZWZ0ID0gc2V0X2xlZnQgLSBzZXRfcmlnaHQKKyAgICBsZW5fZXh0cmFfbGVmdCA9IGxl
bihleHRyYV9sZWZ0KQorICAgIGlmIGxlbl9leHRyYV9sZWZ0OgorICAgICAgICBleHBsYW5hdGlv
bi5hcHBlbmQoCisgICAgICAgICAgICB1IkxlZnQgY29udGFpbnMgJWQgbW9yZSBpdGVtJXM6Igor
ICAgICAgICAgICAgJSAobGVuX2V4dHJhX2xlZnQsICIiIGlmIGxlbl9leHRyYV9sZWZ0ID09IDEg
ZWxzZSAicyIpCisgICAgICAgICkKICAgICAgICAgZXhwbGFuYXRpb24uZXh0ZW5kKAogICAgICAg
ICAgICAgcHByaW50LnBmb3JtYXQoe2s6IGxlZnRba10gZm9yIGsgaW4gZXh0cmFfbGVmdH0pLnNw
bGl0bGluZXMoKQogICAgICAgICApCi0gICAgZXh0cmFfcmlnaHQgPSBzZXQocmlnaHQpIC0gc2V0
KGxlZnQpCi0gICAgaWYgZXh0cmFfcmlnaHQ6Ci0gICAgICAgIGV4cGxhbmF0aW9uLmFwcGVuZCh1
KCJSaWdodCBjb250YWlucyBtb3JlIGl0ZW1zOiIpKQorICAgIGV4dHJhX3JpZ2h0ID0gc2V0X3Jp
Z2h0IC0gc2V0X2xlZnQKKyAgICBsZW5fZXh0cmFfcmlnaHQgPSBsZW4oZXh0cmFfcmlnaHQpCisg
ICAgaWYgbGVuX2V4dHJhX3JpZ2h0OgorICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQoCisgICAg
ICAgICAgICB1IlJpZ2h0IGNvbnRhaW5zICVkIG1vcmUgaXRlbSVzOiIKKyAgICAgICAgICAgICUg
KGxlbl9leHRyYV9yaWdodCwgIiIgaWYgbGVuX2V4dHJhX3JpZ2h0ID09IDEgZWxzZSAicyIpCisg
ICAgICAgICkKICAgICAgICAgZXhwbGFuYXRpb24uZXh0ZW5kKAogICAgICAgICAgICAgcHByaW50
LnBmb3JtYXQoe2s6IHJpZ2h0W2tdIGZvciBrIGluIGV4dHJhX3JpZ2h0fSkuc3BsaXRsaW5lcygp
CiAgICAgICAgICkKICAgICByZXR1cm4gZXhwbGFuYXRpb24KIAogCi1kZWYgX25vdGluX3RleHQo
dGVybSwgdGV4dCwgdmVyYm9zZT1GYWxzZSk6CitkZWYgX2NvbXBhcmVfZXFfY2xzKGxlZnQsIHJp
Z2h0LCB2ZXJib3NlLCB0eXBlX2Zucyk6CisgICAgaXNkYXRhY2xzLCBpc2F0dHJzID0gdHlwZV9m
bnMKKyAgICBpZiBpc2RhdGFjbHMobGVmdCk6CisgICAgICAgIGFsbF9maWVsZHMgPSBsZWZ0Ll9f
ZGF0YWNsYXNzX2ZpZWxkc19fCisgICAgICAgIGZpZWxkc190b19jaGVjayA9IFtmaWVsZCBmb3Ig
ZmllbGQsIGluZm8gaW4gYWxsX2ZpZWxkcy5pdGVtcygpIGlmIGluZm8uY29tcGFyZV0KKyAgICBl
bGlmIGlzYXR0cnMobGVmdCk6CisgICAgICAgIGFsbF9maWVsZHMgPSBsZWZ0Ll9fYXR0cnNfYXR0
cnNfXworICAgICAgICBmaWVsZHNfdG9fY2hlY2sgPSBbCisgICAgICAgICAgICBmaWVsZC5uYW1l
IGZvciBmaWVsZCBpbiBhbGxfZmllbGRzIGlmIGdldGF0dHIoZmllbGQsIEFUVFJTX0VRX0ZJRUxE
KQorICAgICAgICBdCisKKyAgICBzYW1lID0gW10KKyAgICBkaWZmID0gW10KKyAgICBmb3IgZmll
bGQgaW4gZmllbGRzX3RvX2NoZWNrOgorICAgICAgICBpZiBnZXRhdHRyKGxlZnQsIGZpZWxkKSA9
PSBnZXRhdHRyKHJpZ2h0LCBmaWVsZCk6CisgICAgICAgICAgICBzYW1lLmFwcGVuZChmaWVsZCkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRpZmYuYXBwZW5kKGZpZWxkKQorCisgICAgZXhw
bGFuYXRpb24gPSBbXQorICAgIGlmIHNhbWUgYW5kIHZlcmJvc2UgPCAyOgorICAgICAgICBleHBs
YW5hdGlvbi5hcHBlbmQodSJPbWl0dGluZyAlcyBpZGVudGljYWwgaXRlbXMsIHVzZSAtdnYgdG8g
c2hvdyIgJSBsZW4oc2FtZSkpCisgICAgZWxpZiBzYW1lOgorICAgICAgICBleHBsYW5hdGlvbiAr
PSBbdSJNYXRjaGluZyBhdHRyaWJ1dGVzOiJdCisgICAgICAgIGV4cGxhbmF0aW9uICs9IHBwcmlu
dC5wZm9ybWF0KHNhbWUpLnNwbGl0bGluZXMoKQorICAgIGlmIGRpZmY6CisgICAgICAgIGV4cGxh
bmF0aW9uICs9IFt1IkRpZmZlcmluZyBhdHRyaWJ1dGVzOiJdCisgICAgICAgIGZvciBmaWVsZCBp
biBkaWZmOgorICAgICAgICAgICAgZXhwbGFuYXRpb24gKz0gWworICAgICAgICAgICAgICAgICh1
IiVzOiAlciAhPSAlciIpICUgKGZpZWxkLCBnZXRhdHRyKGxlZnQsIGZpZWxkKSwgZ2V0YXR0cihy
aWdodCwgZmllbGQpKQorICAgICAgICAgICAgXQorICAgIHJldHVybiBleHBsYW5hdGlvbgorCisK
K2RlZiBfbm90aW5fdGV4dCh0ZXJtLCB0ZXh0LCB2ZXJib3NlPTApOgogICAgIGluZGV4ID0gdGV4
dC5maW5kKHRlcm0pCiAgICAgaGVhZCA9IHRleHRbOmluZGV4XQotICAgIHRhaWwgPSB0ZXh0W2lu
ZGV4ICsgbGVuKHRlcm0pOl0KKyAgICB0YWlsID0gdGV4dFtpbmRleCArIGxlbih0ZXJtKSA6XQog
ICAgIGNvcnJlY3RfdGV4dCA9IGhlYWQgKyB0YWlsCiAgICAgZGlmZiA9IF9kaWZmX3RleHQoY29y
cmVjdF90ZXh0LCB0ZXh0LCB2ZXJib3NlKQotICAgIG5ld2RpZmYgPSBbdSgiJXMgaXMgY29udGFp
bmVkIGhlcmU6IikgJSBweS5pby5zYWZlcmVwcih0ZXJtLCBtYXhzaXplPTQyKV0KKyAgICBuZXdk
aWZmID0gW3UiJXMgaXMgY29udGFpbmVkIGhlcmU6IiAlIHNhZmVyZXByKHRlcm0sIG1heHNpemU9
NDIpXQogICAgIGZvciBsaW5lIGluIGRpZmY6Ci0gICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCh1
KCJTa2lwcGluZyIpKToKKyAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKHUiU2tpcHBpbmciKToK
ICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCh1KCItICIp
KToKKyAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKHUiLSAiKToKICAgICAgICAgICAgIGNvbnRp
bnVlCi0gICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCh1KCIrICIpKToKLSAgICAgICAgICAgIG5l
d2RpZmYuYXBwZW5kKHUoIiAgIikgKyBsaW5lWzI6XSkKKyAgICAgICAgaWYgbGluZS5zdGFydHN3
aXRoKHUiKyAiKToKKyAgICAgICAgICAgIG5ld2RpZmYuYXBwZW5kKHUiICAiICsgbGluZVsyOl0p
CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBuZXdkaWZmLmFwcGVuZChsaW5lKQogICAgIHJl
dHVybiBuZXdkaWZmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jYWNoZXBy
b3ZpZGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY2FjaGVwcm92aWRlci5weQppbmRl
eCBlYjBmY2MwNmY5YmQyODBlMWVlY2E5ZTFjZmU0ZjNiZmFmMzE4MWFhLi5mNWM1NTQ1NDg0OThj
OWFiYzlmMGQ1OGU3NDkyOTM4NzkxODMwZmNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Nh
Y2hlcHJvdmlkZXIucHkKQEAgLTEsNDMgKzEsNzMgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSot
CiAiIiIKIG1lcmdlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgY2FjaGUgcHJvdmlkZXIKIAogdGhl
IG5hbWUgY2FjaGUgd2FzIG5vdCBjaG9zZW4gdG8gZW5zdXJlIHBsdWdneSBhdXRvbWF0aWNhbGx5
CiBpZ25vcmVzIHRoZSBleHRlcm5hbCBweXRlc3QtY2FjaGUKICIiIgotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
ZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAoraW1wb3J0
IGpzb24KK2ltcG9ydCBvcwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKIAor
aW1wb3J0IGF0dHIKIGltcG9ydCBweQogaW1wb3J0IHNpeAogCiBpbXBvcnQgcHl0ZXN0Ci1pbXBv
cnQganNvbgotaW1wb3J0IG9zCi1mcm9tIG9zLnBhdGggaW1wb3J0IHNlcCBhcyBfc2VwLCBhbHRz
ZXAgYXMgX2FsdHNlcAorZnJvbSAuY29tcGF0IGltcG9ydCBfUFkyIGFzIFBZMgorZnJvbSAucGF0
aGxpYiBpbXBvcnQgUGF0aAorZnJvbSAucGF0aGxpYiBpbXBvcnQgcmVzb2x2ZV9mcm9tX3N0cgor
ZnJvbSAucGF0aGxpYiBpbXBvcnQgcm1fcmYKKworUkVBRE1FX0NPTlRFTlQgPSB1IiIiXAorIyBw
eXRlc3QgY2FjaGUgZGlyZWN0b3J5ICMKKworVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgZGF0YSBm
cm9tIHRoZSBweXRlc3QncyBjYWNoZSBwbHVnaW4sCit3aGljaCBwcm92aWRlcyB0aGUgYC0tbGZg
IGFuZCBgLS1mZmAgb3B0aW9ucywgYXMgd2VsbCBhcyB0aGUgYGNhY2hlYCBmaXh0dXJlLgorCisq
KkRvIG5vdCoqIGNvbW1pdCB0aGlzIHRvIHZlcnNpb24gY29udHJvbC4KKworU2VlIFt0aGUgZG9j
c10oaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NhY2hlLmh0bWwpIGZvciBtb3Jl
IGluZm9ybWF0aW9uLgorIiIiCisKK0NBQ0hFRElSX1RBR19DT05URU5UID0gYiIiIlwKK1NpZ25h
dHVyZTogOGE0NzdmNTk3ZDI4ZDE3Mjc4OWYwNjg4NjgwNmJjNTUKKyMgVGhpcyBmaWxlIGlzIGEg
Y2FjaGUgZGlyZWN0b3J5IHRhZyBjcmVhdGVkIGJ5IHB5dGVzdC4KKyMgRm9yIGluZm9ybWF0aW9u
IGFib3V0IGNhY2hlIGRpcmVjdG9yeSB0YWdzLCBzZWU6CisjCWh0dHA6Ly93d3cuYmZvcmQuaW5m
by9jYWNoZWRpci9zcGVjLmh0bWwKKyIiIgogCiAKK0BhdHRyLnMKIGNsYXNzIENhY2hlKG9iamVj
dCk6CisgICAgX2NhY2hlZGlyID0gYXR0ci5pYihyZXByPUZhbHNlKQorICAgIF9jb25maWcgPSBh
dHRyLmliKHJlcHI9RmFsc2UpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKLSAg
ICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLSAgICAgICAgc2VsZi5fY2FjaGVkaXIgPSBDYWNo
ZS5jYWNoZV9kaXJfZnJvbV9jb25maWcoY29uZmlnKQotICAgICAgICBzZWxmLnRyYWNlID0gY29u
ZmlnLnRyYWNlLnJvb3QuZ2V0KCJjYWNoZSIpCi0gICAgICAgIGlmIGNvbmZpZy5nZXRvcHRpb24o
ImNhY2hlY2xlYXIiKToKLSAgICAgICAgICAgIHNlbGYudHJhY2UoImNsZWFyaW5nIGNhY2hlZGly
IikKLSAgICAgICAgICAgIGlmIHNlbGYuX2NhY2hlZGlyLmNoZWNrKCk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fY2FjaGVkaXIucmVtb3ZlKCkKLSAgICAgICAgICAgIHNlbGYuX2NhY2hlZGlyLm1r
ZGlyKCkKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZm9yX2NvbmZpZyhjbHMsIGNvbmZpZyk6
CisgICAgICAgIGNhY2hlZGlyID0gY2xzLmNhY2hlX2Rpcl9mcm9tX2NvbmZpZyhjb25maWcpCisg
ICAgICAgIGlmIGNvbmZpZy5nZXRvcHRpb24oImNhY2hlY2xlYXIiKSBhbmQgY2FjaGVkaXIuZXhp
c3RzKCk6CisgICAgICAgICAgICBybV9yZihjYWNoZWRpcikKKyAgICAgICAgICAgIGNhY2hlZGly
Lm1rZGlyKCkKKyAgICAgICAgcmV0dXJuIGNscyhjYWNoZWRpciwgY29uZmlnKQogCiAgICAgQHN0
YXRpY21ldGhvZAogICAgIGRlZiBjYWNoZV9kaXJfZnJvbV9jb25maWcoY29uZmlnKToKLSAgICAg
ICAgY2FjaGVfZGlyID0gY29uZmlnLmdldGluaSgiY2FjaGVfZGlyIikKLSAgICAgICAgY2FjaGVf
ZGlyID0gb3MucGF0aC5leHBhbmR1c2VyKGNhY2hlX2RpcikKLSAgICAgICAgY2FjaGVfZGlyID0g
b3MucGF0aC5leHBhbmR2YXJzKGNhY2hlX2RpcikKLSAgICAgICAgaWYgb3MucGF0aC5pc2Ficyhj
YWNoZV9kaXIpOgotICAgICAgICAgICAgcmV0dXJuIHB5LnBhdGgubG9jYWwoY2FjaGVfZGlyKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5yb290ZGlyLmpvaW4oY2Fj
aGVfZGlyKQorICAgICAgICByZXR1cm4gcmVzb2x2ZV9mcm9tX3N0cihjb25maWcuZ2V0aW5pKCJj
YWNoZV9kaXIiKSwgY29uZmlnLnJvb3RkaXIpCisKKyAgICBkZWYgd2FybihzZWxmLCBmbXQsICoq
YXJncyk6CisgICAgICAgIGZyb20gX3B5dGVzdC53YXJuaW5ncyBpbXBvcnQgX2lzc3VlX3dhcm5p
bmdfY2FwdHVyZWQKKyAgICAgICAgZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5
dGVzdENhY2hlV2FybmluZworCisgICAgICAgIF9pc3N1ZV93YXJuaW5nX2NhcHR1cmVkKAorICAg
ICAgICAgICAgUHl0ZXN0Q2FjaGVXYXJuaW5nKGZtdC5mb3JtYXQoKiphcmdzKSBpZiBhcmdzIGVs
c2UgZm10KSwKKyAgICAgICAgICAgIHNlbGYuX2NvbmZpZy5ob29rLAorICAgICAgICAgICAgc3Rh
Y2tsZXZlbD0zLAorICAgICAgICApCiAKICAgICBkZWYgbWFrZWRpcihzZWxmLCBuYW1lKToKICAg
ICAgICAgIiIiIHJldHVybiBhIGRpcmVjdG9yeSBwYXRoIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBu
YW1lLiAgSWYgdGhlCkBAIC00OSwxMiArNzksMTUgQEAgY2xhc3MgQ2FjaGUob2JqZWN0KToKICAg
ICAgICAgICAgICBNYWtlIHN1cmUgdGhlIG5hbWUgY29udGFpbnMgeW91ciBwbHVnaW4gb3IgYXBw
bGljYXRpb24KICAgICAgICAgICAgICBpZGVudGlmaWVycyB0byBwcmV2ZW50IGNsYXNoZXMgd2l0
aCBvdGhlciBjYWNoZSB1c2Vycy4KICAgICAgICAgIiIiCi0gICAgICAgIGlmIF9zZXAgaW4gbmFt
ZSBvciBfYWx0c2VwIGlzIG5vdCBOb25lIGFuZCBfYWx0c2VwIGluIG5hbWU6CisgICAgICAgIG5h
bWUgPSBQYXRoKG5hbWUpCisgICAgICAgIGlmIGxlbihuYW1lLnBhcnRzKSA+IDE6CiAgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCJuYW1lIGlzIG5vdCBhbGxvd2VkIHRvIGNvbnRhaW4gcGF0
aCBzZXBhcmF0b3JzIikKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlZGlyLmVuc3VyZV9kaXIo
ImQiLCBuYW1lKQorICAgICAgICByZXMgPSBzZWxmLl9jYWNoZWRpci5qb2lucGF0aCgiZCIsIG5h
bWUpCisgICAgICAgIHJlcy5ta2RpcihleGlzdF9vaz1UcnVlLCBwYXJlbnRzPVRydWUpCisgICAg
ICAgIHJldHVybiBweS5wYXRoLmxvY2FsKHJlcykKIAogICAgIGRlZiBfZ2V0dmFsdWVwYXRoKHNl
bGYsIGtleSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9jYWNoZWRpci5qb2luKCJ2IiwgKmtleS5z
cGxpdCgiLyIpKQorICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVkaXIuam9pbnBhdGgoInYiLCBQ
YXRoKGtleSkpCiAKICAgICBkZWYgZ2V0KHNlbGYsIGtleSwgZGVmYXVsdCk6CiAgICAgICAgICIi
IiByZXR1cm4gY2FjaGVkIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5LiAgSWYgbm8gdmFsdWUKQEAg
LTY4LDEzICsxMDEsMTEgQEAgY2xhc3MgQ2FjaGUob2JqZWN0KToKIAogICAgICAgICAiIiIKICAg
ICAgICAgcGF0aCA9IHNlbGYuX2dldHZhbHVlcGF0aChrZXkpCi0gICAgICAgIGlmIHBhdGguY2hl
Y2soKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB3aXRoIHBhdGgub3Blbigi
ciIpIGFzIGY6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBqc29uLmxvYWQoZikKLSAgICAg
ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgICAgIHNlbGYudHJhY2UoImNh
Y2hlLWludmFsaWQgYXQgJXMiICUgKHBhdGgsKSkKLSAgICAgICAgcmV0dXJuIGRlZmF1bHQKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBwYXRoLm9wZW4oInIiKSBhcyBmOgorICAgICAg
ICAgICAgICAgIHJldHVybiBqc29uLmxvYWQoZikKKyAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9y
LCBJT0Vycm9yLCBPU0Vycm9yKToKKyAgICAgICAgICAgIHJldHVybiBkZWZhdWx0CiAKICAgICBk
ZWYgc2V0KHNlbGYsIGtleSwgdmFsdWUpOgogICAgICAgICAiIiIgc2F2ZSB2YWx1ZSBmb3IgdGhl
IGdpdmVuIGtleS4KQEAgLTg3LDIzICsxMTgsMzYgQEAgY2xhc3MgQ2FjaGUob2JqZWN0KToKICAg
ICAgICAgIiIiCiAgICAgICAgIHBhdGggPSBzZWxmLl9nZXR2YWx1ZXBhdGgoa2V5KQogICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBwYXRoLmRpcnBhdGgoKS5lbnN1cmVfZGlyKCkKLSAgICAgICAg
ZXhjZXB0IChweS5lcnJvci5FRVhJU1QsIHB5LmVycm9yLkVBQ0NFUyk6Ci0gICAgICAgICAgICBz
ZWxmLmNvbmZpZy53YXJuKAotICAgICAgICAgICAgICAgIGNvZGU9Ikk5IiwgbWVzc2FnZT0iY291
bGQgbm90IGNyZWF0ZSBjYWNoZSBwYXRoICVzIiAlIChwYXRoLCkKLSAgICAgICAgICAgICkKKyAg
ICAgICAgICAgIGlmIHBhdGgucGFyZW50LmlzX2RpcigpOgorICAgICAgICAgICAgICAgIGNhY2hl
X2Rpcl9leGlzdHNfYWxyZWFkeSA9IFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgY2FjaGVfZGlyX2V4aXN0c19hbHJlYWR5ID0gc2VsZi5fY2FjaGVkaXIuZXhpc3RzKCkK
KyAgICAgICAgICAgICAgICBwYXRoLnBhcmVudC5ta2RpcihleGlzdF9vaz1UcnVlLCBwYXJlbnRz
PVRydWUpCisgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgT1NFcnJvcik6CisgICAgICAgICAgICBz
ZWxmLndhcm4oImNvdWxkIG5vdCBjcmVhdGUgY2FjaGUgcGF0aCB7cGF0aH0iLCBwYXRoPXBhdGgp
CiAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgbm90IGNhY2hlX2Rpcl9leGlzdHNfYWxy
ZWFkeToKKyAgICAgICAgICAgIHNlbGYuX2Vuc3VyZV9zdXBwb3J0aW5nX2ZpbGVzKCkKICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgZiA9IHBhdGgub3BlbigidyIpCi0gICAgICAgIGV4Y2VwdCBw
eS5lcnJvci5FTk9URElSOgotICAgICAgICAgICAgc2VsZi5jb25maWcud2FybigKLSAgICAgICAg
ICAgICAgICBjb2RlPSJJOSIsIG1lc3NhZ2U9ImNhY2hlIGNvdWxkIG5vdCB3cml0ZSBwYXRoICVz
IiAlIChwYXRoLCkKLSAgICAgICAgICAgICkKKyAgICAgICAgICAgIGYgPSBwYXRoLm9wZW4oIndi
IiBpZiBQWTIgZWxzZSAidyIpCisgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgT1NFcnJvcik6Cisg
ICAgICAgICAgICBzZWxmLndhcm4oImNhY2hlIGNvdWxkIG5vdCB3cml0ZSBwYXRoIHtwYXRofSIs
IHBhdGg9cGF0aCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHdpdGggZjoKLSAgICAgICAg
ICAgICAgICBzZWxmLnRyYWNlKCJjYWNoZS13cml0ZSAlczogJXIiICUgKGtleSwgdmFsdWUpKQog
ICAgICAgICAgICAgICAgIGpzb24uZHVtcCh2YWx1ZSwgZiwgaW5kZW50PTIsIHNvcnRfa2V5cz1U
cnVlKQogCisgICAgZGVmIF9lbnN1cmVfc3VwcG9ydGluZ19maWxlcyhzZWxmKToKKyAgICAgICAg
IiIiQ3JlYXRlIHN1cHBvcnRpbmcgZmlsZXMgaW4gdGhlIGNhY2hlIGRpciB0aGF0IGFyZSBub3Qg
cmVhbGx5IHBhcnQgb2YgdGhlIGNhY2hlLiIiIgorICAgICAgICByZWFkbWVfcGF0aCA9IHNlbGYu
X2NhY2hlZGlyIC8gIlJFQURNRS5tZCIKKyAgICAgICAgcmVhZG1lX3BhdGgud3JpdGVfdGV4dChS
RUFETUVfQ09OVEVOVCkKKworICAgICAgICBnaXRpZ25vcmVfcGF0aCA9IHNlbGYuX2NhY2hlZGly
LmpvaW5wYXRoKCIuZ2l0aWdub3JlIikKKyAgICAgICAgbXNnID0gdSIjIENyZWF0ZWQgYnkgcHl0
ZXN0IGF1dG9tYXRpY2FsbHkuXG4qIgorICAgICAgICBnaXRpZ25vcmVfcGF0aC53cml0ZV90ZXh0
KG1zZywgZW5jb2Rpbmc9IlVURi04IikKKworICAgICAgICBjYWNoZWRpcl90YWdfcGF0aCA9IHNl
bGYuX2NhY2hlZGlyLmpvaW5wYXRoKCJDQUNIRURJUi5UQUciKQorICAgICAgICBjYWNoZWRpcl90
YWdfcGF0aC53cml0ZV9ieXRlcyhDQUNIRURJUl9UQUdfQ09OVEVOVCkKKwogCiBjbGFzcyBMRlBs
dWdpbihvYmplY3QpOgogICAgICIiIiBQbHVnaW4gd2hpY2ggaW1wbGVtZW50cyB0aGUgLS1sZiAo
cnVuIGxhc3QtZmFpbGluZykgb3B0aW9uICIiIgpAQCAtMTE0LDIxICsxNTgsMzcgQEAgY2xhc3Mg
TEZQbHVnaW4ob2JqZWN0KToKICAgICAgICAgc2VsZi5hY3RpdmUgPSBhbnkoY29uZmlnLmdldG9w
dGlvbihrZXkpIGZvciBrZXkgaW4gYWN0aXZlX2tleXMpCiAgICAgICAgIHNlbGYubGFzdGZhaWxl
ZCA9IGNvbmZpZy5jYWNoZS5nZXQoImNhY2hlL2xhc3RmYWlsZWQiLCB7fSkKICAgICAgICAgc2Vs
Zi5fcHJldmlvdXNseV9mYWlsZWRfY291bnQgPSBOb25lCi0gICAgICAgIHNlbGYuX25vX2ZhaWx1
cmVzX2JlaGF2aW9yID0gc2VsZi5jb25maWcuZ2V0b3B0aW9uKCJsYXN0X2ZhaWxlZF9ub19mYWls
dXJlcyIpCisgICAgICAgIHNlbGYuX3JlcG9ydF9zdGF0dXMgPSBOb25lCisgICAgICAgIHNlbGYu
X3NraXBwZWRfZmlsZXMgPSAwICAjIGNvdW50IHNraXBwZWQgZmlsZXMgZHVyaW5nIGNvbGxlY3Rp
b24gZHVlIHRvIC0tbGYKKworICAgIGRlZiBsYXN0X2ZhaWxlZF9wYXRocyhzZWxmKToKKyAgICAg
ICAgIiIiUmV0dXJucyBhIHNldCB3aXRoIGFsbCBQYXRocygpcyBvZiB0aGUgcHJldmlvdXNseSBm
YWlsZWQgbm9kZWlkcyAoY2FjaGVkKS4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHJldHVybiBzZWxmLl9sYXN0X2ZhaWxlZF9wYXRocworICAgICAgICBleGNlcHQgQXR0
cmlidXRlRXJyb3I6CisgICAgICAgICAgICByb290cGF0aCA9IFBhdGgoc2VsZi5jb25maWcucm9v
dGRpcikKKyAgICAgICAgICAgIHJlc3VsdCA9IHtyb290cGF0aCAvIG5vZGVpZC5zcGxpdCgiOjoi
KVswXSBmb3Igbm9kZWlkIGluIHNlbGYubGFzdGZhaWxlZH0KKyAgICAgICAgICAgIHJlc3VsdCA9
IHt4IGZvciB4IGluIHJlc3VsdCBpZiB4LmV4aXN0cygpfQorICAgICAgICAgICAgc2VsZi5fbGFz
dF9mYWlsZWRfcGF0aHMgPSByZXN1bHQKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAg
IGRlZiBweXRlc3RfaWdub3JlX2NvbGxlY3Qoc2VsZiwgcGF0aCk6CisgICAgICAgICIiIgorICAg
ICAgICBJZ25vcmUgdGhpcyBmaWxlIHBhdGggaWYgd2UgYXJlIGluIC0tbGYgbW9kZSBhbmQgaXQg
aXMgbm90IGluIHRoZSBsaXN0IG9mCisgICAgICAgIHByZXZpb3VzbHkgZmFpbGVkIGZpbGVzLgor
ICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5hY3RpdmUgYW5kIHNlbGYuY29uZmlnLmdldG9w
dGlvbigibGYiKSBhbmQgcGF0aC5pc2ZpbGUoKToKKyAgICAgICAgICAgIGxhc3RfZmFpbGVkX3Bh
dGhzID0gc2VsZi5sYXN0X2ZhaWxlZF9wYXRocygpCisgICAgICAgICAgICBpZiBsYXN0X2ZhaWxl
ZF9wYXRoczoKKyAgICAgICAgICAgICAgICBza2lwX2l0ID0gUGF0aChwYXRoKSBub3QgaW4gc2Vs
Zi5sYXN0X2ZhaWxlZF9wYXRocygpCisgICAgICAgICAgICAgICAgaWYgc2tpcF9pdDoKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fc2tpcHBlZF9maWxlcyArPSAxCisgICAgICAgICAgICAgICAg
cmV0dXJuIHNraXBfaXQKIAogICAgIGRlZiBweXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5pc2go
c2VsZik6Ci0gICAgICAgIGlmIHNlbGYuYWN0aXZlOgotICAgICAgICAgICAgaWYgbm90IHNlbGYu
X3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50OgotICAgICAgICAgICAgICAgIG1vZGUgPSAicnVuIHt9
IChubyByZWNvcmRlZCBmYWlsdXJlcykiLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fbm9fZmFpbHVyZXNfYmVoYXZpb3IKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIG5vdW4gPSAiZmFpbHVyZSIgaWYgc2VsZi5fcHJldmlvdXNs
eV9mYWlsZWRfY291bnQgPT0gMSBlbHNlICJmYWlsdXJlcyIKLSAgICAgICAgICAgICAgICBzdWZm
aXggPSAiIGZpcnN0IiBpZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24oImZhaWxlZGZpcnN0IikgZWxz
ZSAiIgotICAgICAgICAgICAgICAgIG1vZGUgPSAicmVydW4gcHJldmlvdXMge2NvdW50fSB7bm91
bn17c3VmZml4fSIuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICBjb3VudD1zZWxmLl9wcmV2
aW91c2x5X2ZhaWxlZF9jb3VudCwgc3VmZml4PXN1ZmZpeCwgbm91bj1ub3VuCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgcmV0dXJuICJydW4tbGFzdC1mYWlsdXJlOiAlcyIgJSBtb2Rl
CisgICAgICAgIGlmIHNlbGYuYWN0aXZlIGFuZCBzZWxmLmNvbmZpZy5nZXRvcHRpb24oInZlcmJv
c2UiKSA+PSAwOgorICAgICAgICAgICAgcmV0dXJuICJydW4tbGFzdC1mYWlsdXJlOiAlcyIgJSBz
ZWxmLl9yZXBvcnRfc3RhdHVzCiAKICAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHNl
bGYsIHJlcG9ydCk6CiAgICAgICAgIGlmIChyZXBvcnQud2hlbiA9PSAiY2FsbCIgYW5kIHJlcG9y
dC5wYXNzZWQpIG9yIHJlcG9ydC5za2lwcGVkOgpAQCAtMTQ2LDI4ICsyMDYsNTEgQEAgY2xhc3Mg
TEZQbHVnaW4ob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYubGFzdGZhaWxlZFtyZXBvcnQubm9k
ZWlkXSA9IFRydWUKIAogICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhzZWxm
LCBzZXNzaW9uLCBjb25maWcsIGl0ZW1zKToKLSAgICAgICAgaWYgc2VsZi5hY3RpdmU6Ci0gICAg
ICAgICAgICBpZiBzZWxmLmxhc3RmYWlsZWQ6Ci0gICAgICAgICAgICAgICAgcHJldmlvdXNseV9m
YWlsZWQgPSBbXQotICAgICAgICAgICAgICAgIHByZXZpb3VzbHlfcGFzc2VkID0gW10KLSAgICAg
ICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKLSAgICAgICAgICAgICAgICAgICAgaWYgaXRl
bS5ub2RlaWQgaW4gc2VsZi5sYXN0ZmFpbGVkOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJl
dmlvdXNseV9mYWlsZWQuYXBwZW5kKGl0ZW0pCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c2x5X3Bhc3NlZC5hcHBlbmQoaXRlbSkKLSAg
ICAgICAgICAgICAgICBzZWxmLl9wcmV2aW91c2x5X2ZhaWxlZF9jb3VudCA9IGxlbihwcmV2aW91
c2x5X2ZhaWxlZCkKLSAgICAgICAgICAgICAgICBpZiBub3QgcHJldmlvdXNseV9mYWlsZWQ6Ci0g
ICAgICAgICAgICAgICAgICAgICMgcnVubmluZyBhIHN1YnNldCBvZiBhbGwgdGVzdHMgd2l0aCBy
ZWNvcmRlZCBmYWlsdXJlcyBvdXRzaWRlCi0gICAgICAgICAgICAgICAgICAgICMgb2YgdGhlIHNl
dCBvZiB0ZXN0cyBjdXJyZW50bHkgZXhlY3V0aW5nCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
bgorICAgICAgICBpZiBub3Qgc2VsZi5hY3RpdmU6CisgICAgICAgICAgICByZXR1cm4KKworICAg
ICAgICBpZiBzZWxmLmxhc3RmYWlsZWQ6CisgICAgICAgICAgICBwcmV2aW91c2x5X2ZhaWxlZCA9
IFtdCisgICAgICAgICAgICBwcmV2aW91c2x5X3Bhc3NlZCA9IFtdCisgICAgICAgICAgICBmb3Ig
aXRlbSBpbiBpdGVtczoKKyAgICAgICAgICAgICAgICBpZiBpdGVtLm5vZGVpZCBpbiBzZWxmLmxh
c3RmYWlsZWQ6CisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzbHlfZmFpbGVkLmFwcGVuZChp
dGVtKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHByZXZpb3Vz
bHlfcGFzc2VkLmFwcGVuZChpdGVtKQorICAgICAgICAgICAgc2VsZi5fcHJldmlvdXNseV9mYWls
ZWRfY291bnQgPSBsZW4ocHJldmlvdXNseV9mYWlsZWQpCisKKyAgICAgICAgICAgIGlmIG5vdCBw
cmV2aW91c2x5X2ZhaWxlZDoKKyAgICAgICAgICAgICAgICAjIFJ1bm5pbmcgYSBzdWJzZXQgb2Yg
YWxsIHRlc3RzIHdpdGggcmVjb3JkZWQgZmFpbHVyZXMKKyAgICAgICAgICAgICAgICAjIG9ubHkg
b3V0c2lkZSBvZiBpdC4KKyAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfc3RhdHVzID0gIiVk
IGtub3duIGZhaWx1cmVzIG5vdCBpbiBzZWxlY3RlZCB0ZXN0cyIgJSAoCisgICAgICAgICAgICAg
ICAgICAgIGxlbihzZWxmLmxhc3RmYWlsZWQpLAorICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0b3B0aW9uKCJsZiIp
OgogICAgICAgICAgICAgICAgICAgICBpdGVtc1s6XSA9IHByZXZpb3VzbHlfZmFpbGVkCiAgICAg
ICAgICAgICAgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zPXByZXZp
b3VzbHlfcGFzc2VkKQotICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZWxz
ZTogICMgLS1mYWlsZWRmaXJzdAogICAgICAgICAgICAgICAgICAgICBpdGVtc1s6XSA9IHByZXZp
b3VzbHlfZmFpbGVkICsgcHJldmlvdXNseV9wYXNzZWQKLSAgICAgICAgICAgIGVsaWYgc2VsZi5f
bm9fZmFpbHVyZXNfYmVoYXZpb3IgPT0gIm5vbmUiOgorCisgICAgICAgICAgICAgICAgbm91biA9
ICJmYWlsdXJlIiBpZiBzZWxmLl9wcmV2aW91c2x5X2ZhaWxlZF9jb3VudCA9PSAxIGVsc2UgImZh
aWx1cmVzIgorICAgICAgICAgICAgICAgIHN1ZmZpeCA9ICIgZmlyc3QiIGlmIHNlbGYuY29uZmln
LmdldG9wdGlvbigiZmFpbGVkZmlyc3QiKSBlbHNlICIiCisgICAgICAgICAgICAgICAgc2VsZi5f
cmVwb3J0X3N0YXR1cyA9ICJyZXJ1biBwcmV2aW91cyB7Y291bnR9IHtub3VufXtzdWZmaXh9Ii5m
b3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGNvdW50PXNlbGYuX3ByZXZpb3VzbHlfZmFpbGVk
X2NvdW50LCBzdWZmaXg9c3VmZml4LCBub3VuPW5vdW4KKyAgICAgICAgICAgICAgICApCisKKyAg
ICAgICAgICAgIGlmIHNlbGYuX3NraXBwZWRfZmlsZXMgPiAwOgorICAgICAgICAgICAgICAgIGZp
bGVzX25vdW4gPSAiZmlsZSIgaWYgc2VsZi5fc2tpcHBlZF9maWxlcyA9PSAxIGVsc2UgImZpbGVz
IgorICAgICAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9zdGF0dXMgKz0gIiAoc2tpcHBlZCB7Zmls
ZXN9IHtmaWxlc19ub3VufSkiLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgZmlsZXM9c2Vs
Zi5fc2tpcHBlZF9maWxlcywgZmlsZXNfbm91bj1maWxlc19ub3VuCisgICAgICAgICAgICAgICAg
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fcmVwb3J0X3N0YXR1cyA9ICJubyBw
cmV2aW91c2x5IGZhaWxlZCB0ZXN0cywgIgorICAgICAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0
b3B0aW9uKCJsYXN0X2ZhaWxlZF9ub19mYWlsdXJlcyIpID09ICJub25lIjoKKyAgICAgICAgICAg
ICAgICBzZWxmLl9yZXBvcnRfc3RhdHVzICs9ICJkZXNlbGVjdGluZyBhbGwgaXRlbXMuIgogICAg
ICAgICAgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zPWl0ZW1zKQog
ICAgICAgICAgICAgICAgIGl0ZW1zWzpdID0gW10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgc2VsZi5fcmVwb3J0X3N0YXR1cyArPSAibm90IGRlc2VsZWN0aW5nIGl0ZW1zLiIK
IAogICAgIGRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChzZWxmLCBzZXNzaW9uKToKICAgICAgICAg
Y29uZmlnID0gc2VsZi5jb25maWcKQEAgLTE5OSw5ICsyODIsNyBAQCBjbGFzcyBORlBsdWdpbihv
YmplY3QpOgogCiAgICAgICAgICAgICBpdGVtc1s6XSA9IHNlbGYuX2dldF9pbmNyZWFzaW5nX29y
ZGVyKAogICAgICAgICAgICAgICAgIHNpeC5pdGVydmFsdWVzKG5ld19pdGVtcykKLSAgICAgICAg
ICAgICkgKyBzZWxmLl9nZXRfaW5jcmVhc2luZ19vcmRlcigKLSAgICAgICAgICAgICAgICBzaXgu
aXRlcnZhbHVlcyhvdGhlcl9pdGVtcykKLSAgICAgICAgICAgICkKKyAgICAgICAgICAgICkgKyBz
ZWxmLl9nZXRfaW5jcmVhc2luZ19vcmRlcihzaXguaXRlcnZhbHVlcyhvdGhlcl9pdGVtcykpCiAg
ICAgICAgIHNlbGYuY2FjaGVkX25vZGVpZHMgPSBbeC5ub2RlaWQgZm9yIHggaW4gaXRlbXMgaWYg
aXNpbnN0YW5jZSh4LCBweXRlc3QuSXRlbSldCiAKICAgICBkZWYgX2dldF9pbmNyZWFzaW5nX29y
ZGVyKHNlbGYsIGl0ZW1zKToKQEAgLTI0NCw5ICszMjUsMTMgQEAgZGVmIHB5dGVzdF9hZGRvcHRp
b24ocGFyc2VyKToKICAgICApCiAgICAgZ3JvdXAuYWRkb3B0aW9uKAogICAgICAgICAiLS1jYWNo
ZS1zaG93IiwKLSAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgYWN0aW9uPSJh
cHBlbmQiLAorICAgICAgICBuYXJncz0iPyIsCiAgICAgICAgIGRlc3Q9ImNhY2hlc2hvdyIsCi0g
ICAgICAgIGhlbHA9InNob3cgY2FjaGUgY29udGVudHMsIGRvbid0IHBlcmZvcm0gY29sbGVjdGlv
biBvciB0ZXN0cyIsCisgICAgICAgIGhlbHA9KAorICAgICAgICAgICAgInNob3cgY2FjaGUgY29u
dGVudHMsIGRvbid0IHBlcmZvcm0gY29sbGVjdGlvbiBvciB0ZXN0cy4gIgorICAgICAgICAgICAg
Ik9wdGlvbmFsIGFyZ3VtZW50OiBnbG9iIChkZWZhdWx0OiAnKicpLiIKKyAgICAgICAgKSwKICAg
ICApCiAgICAgZ3JvdXAuYWRkb3B0aW9uKAogICAgICAgICAiLS1jYWNoZS1jbGVhciIsCkBAIC0y
NTQsNyArMzM5LDEwIEBAIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CiAgICAgICAgIGRl
c3Q9ImNhY2hlY2xlYXIiLAogICAgICAgICBoZWxwPSJyZW1vdmUgYWxsIGNhY2hlIGNvbnRlbnRz
IGF0IHN0YXJ0IG9mIHRlc3QgcnVuLiIsCiAgICAgKQotICAgIHBhcnNlci5hZGRpbmkoImNhY2hl
X2RpciIsIGRlZmF1bHQ9Ii5weXRlc3RfY2FjaGUiLCBoZWxwPSJjYWNoZSBkaXJlY3RvcnkgcGF0
aC4iKQorICAgIGNhY2hlX2Rpcl9kZWZhdWx0ID0gIi5weXRlc3RfY2FjaGUiCisgICAgaWYgIlRP
WF9FTlZfRElSIiBpbiBvcy5lbnZpcm9uOgorICAgICAgICBjYWNoZV9kaXJfZGVmYXVsdCA9IG9z
LnBhdGguam9pbihvcy5lbnZpcm9uWyJUT1hfRU5WX0RJUiJdLCBjYWNoZV9kaXJfZGVmYXVsdCkK
KyAgICBwYXJzZXIuYWRkaW5pKCJjYWNoZV9kaXIiLCBkZWZhdWx0PWNhY2hlX2Rpcl9kZWZhdWx0
LCBoZWxwPSJjYWNoZSBkaXJlY3RvcnkgcGF0aC4iKQogICAgIGdyb3VwLmFkZG9wdGlvbigKICAg
ICAgICAgIi0tbGZuZiIsCiAgICAgICAgICItLWxhc3QtZmFpbGVkLW5vLWZhaWx1cmVzIiwKQEAg
LTI2Miw4ICszNTAsNyBAQCBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgogICAgICAgICBk
ZXN0PSJsYXN0X2ZhaWxlZF9ub19mYWlsdXJlcyIsCiAgICAgICAgIGNob2ljZXM9KCJhbGwiLCAi
bm9uZSIpLAogICAgICAgICBkZWZhdWx0PSJhbGwiLAotICAgICAgICBoZWxwPSJjaGFuZ2UgdGhl
IGJlaGF2aW9yIHdoZW4gbm8gdGVzdCBmYWlsZWQgaW4gdGhlIGxhc3QgcnVuIG9yIG5vICIKLSAg
ICAgICAgImluZm9ybWF0aW9uIGFib3V0IHRoZSBsYXN0IGZhaWx1cmVzIHdhcyBmb3VuZCBpbiB0
aGUgY2FjaGUiLAorICAgICAgICBoZWxwPSJ3aGljaCB0ZXN0cyB0byBydW4gd2l0aCBubyBwcmV2
aW91c2x5IChrbm93bikgZmFpbHVyZXMuIiwKICAgICApCiAKIApAQCAtMjc2LDcgKzM2Myw3IEBA
IGRlZiBweXRlc3RfY21kbGluZV9tYWluKGNvbmZpZyk6CiAKIEBweXRlc3QuaG9va2ltcGwodHJ5
Zmlyc3Q9VHJ1ZSkKIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgY29uZmlnLmNh
Y2hlID0gQ2FjaGUoY29uZmlnKQorICAgIGNvbmZpZy5jYWNoZSA9IENhY2hlLmZvcl9jb25maWco
Y29uZmlnKQogICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKExGUGx1Z2luKGNvbmZp
ZyksICJsZnBsdWdpbiIpCiAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoTkZQbHVn
aW4oY29uZmlnKSwgIm5mcGx1Z2luIikKIApAQCAtMjk4LDQyICszODUsNTQgQEAgZGVmIGNhY2hl
KHJlcXVlc3QpOgogCiAKIGRlZiBweXRlc3RfcmVwb3J0X2hlYWRlcihjb25maWcpOgotICAgIGlm
IGNvbmZpZy5vcHRpb24udmVyYm9zZToKLSAgICAgICAgcmVscGF0aCA9IHB5LnBhdGgubG9jYWwo
KS5iZXN0cmVscGF0aChjb25maWcuY2FjaGUuX2NhY2hlZGlyKQotICAgICAgICByZXR1cm4gImNh
Y2hlZGlyOiAlcyIgJSByZWxwYXRoCisgICAgIiIiRGlzcGxheSBjYWNoZWRpciB3aXRoIC0tY2Fj
aGUtc2hvdyBhbmQgaWYgbm9uLWRlZmF1bHQuIiIiCisgICAgaWYgY29uZmlnLm9wdGlvbi52ZXJi
b3NlID4gMCBvciBjb25maWcuZ2V0aW5pKCJjYWNoZV9kaXIiKSAhPSAiLnB5dGVzdF9jYWNoZSI6
CisgICAgICAgIGNhY2hlZGlyID0gY29uZmlnLmNhY2hlLl9jYWNoZWRpcgorICAgICAgICAjIFRP
RE86IGV2YWx1YXRlIGdlbmVyYXRpbmcgdXB3YXJkIHJlbGF0aXZlIHBhdGhzCisgICAgICAgICMg
c3RhcnRpbmcgd2l0aCAuLiwgLi4vLi4gaWYgc2Vuc2libGUKKworICAgICAgICB0cnk6CisgICAg
ICAgICAgICBkaXNwbGF5cGF0aCA9IGNhY2hlZGlyLnJlbGF0aXZlX3RvKGNvbmZpZy5yb290ZGly
KQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIGRpc3BsYXlwYXRoID0g
Y2FjaGVkaXIKKyAgICAgICAgcmV0dXJuICJjYWNoZWRpcjoge30iLmZvcm1hdChkaXNwbGF5cGF0
aCkKIAogCiBkZWYgY2FjaGVzaG93KGNvbmZpZywgc2Vzc2lvbik6Ci0gICAgZnJvbSBwcHJpbnQg
aW1wb3J0IHBwcmludAorICAgIGZyb20gcHByaW50IGltcG9ydCBwZm9ybWF0CiAKICAgICB0dyA9
IHB5LmlvLlRlcm1pbmFsV3JpdGVyKCkKICAgICB0dy5saW5lKCJjYWNoZWRpcjogIiArIHN0cihj
b25maWcuY2FjaGUuX2NhY2hlZGlyKSkKLSAgICBpZiBub3QgY29uZmlnLmNhY2hlLl9jYWNoZWRp
ci5jaGVjaygpOgorICAgIGlmIG5vdCBjb25maWcuY2FjaGUuX2NhY2hlZGlyLmlzX2RpcigpOgog
ICAgICAgICB0dy5saW5lKCJjYWNoZSBpcyBlbXB0eSIpCiAgICAgICAgIHJldHVybiAwCisKKyAg
ICBnbG9iID0gY29uZmlnLm9wdGlvbi5jYWNoZXNob3dbMF0KKyAgICBpZiBnbG9iIGlzIE5vbmU6
CisgICAgICAgIGdsb2IgPSAiKiIKKwogICAgIGR1bW15ID0gb2JqZWN0KCkKICAgICBiYXNlZGly
ID0gY29uZmlnLmNhY2hlLl9jYWNoZWRpcgotICAgIHZkaXIgPSBiYXNlZGlyLmpvaW4oInYiKQot
ICAgIHR3LnNlcCgiLSIsICJjYWNoZSB2YWx1ZXMiKQotICAgIGZvciB2YWxwYXRoIGluIHNvcnRl
ZCh2ZGlyLnZpc2l0KGxhbWJkYSB4OiB4LmlzZmlsZSgpKSk6Ci0gICAgICAgIGtleSA9IHZhbHBh
dGgucmVsdG8odmRpcikucmVwbGFjZSh2YWxwYXRoLnNlcCwgIi8iKQorICAgIHZkaXIgPSBiYXNl
ZGlyIC8gInYiCisgICAgdHcuc2VwKCItIiwgImNhY2hlIHZhbHVlcyBmb3IgJXIiICUgZ2xvYikK
KyAgICBmb3IgdmFscGF0aCBpbiBzb3J0ZWQoeCBmb3IgeCBpbiB2ZGlyLnJnbG9iKGdsb2IpIGlm
IHguaXNfZmlsZSgpKToKKyAgICAgICAga2V5ID0gdmFscGF0aC5yZWxhdGl2ZV90byh2ZGlyKQog
ICAgICAgICB2YWwgPSBjb25maWcuY2FjaGUuZ2V0KGtleSwgZHVtbXkpCiAgICAgICAgIGlmIHZh
bCBpcyBkdW1teToKLSAgICAgICAgICAgIHR3LmxpbmUoIiVzIGNvbnRhaW5zIHVucmVhZGFibGUg
Y29udGVudCwgIiAid2lsbCBiZSBpZ25vcmVkIiAlIGtleSkKKyAgICAgICAgICAgIHR3LmxpbmUo
IiVzIGNvbnRhaW5zIHVucmVhZGFibGUgY29udGVudCwgd2lsbCBiZSBpZ25vcmVkIiAlIGtleSkK
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHR3LmxpbmUoIiVzIGNvbnRhaW5zOiIgJSBrZXkp
Ci0gICAgICAgICAgICBzdHJlYW0gPSBweS5pby5UZXh0SU8oKQotICAgICAgICAgICAgcHByaW50
KHZhbCwgc3RyZWFtPXN0cmVhbSkKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHN0cmVhbS5nZXR2
YWx1ZSgpLnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHBmb3JtYXQodmFs
KS5zcGxpdGxpbmVzKCk6CiAgICAgICAgICAgICAgICAgdHcubGluZSgiICAiICsgbGluZSkKIAot
ICAgIGRkaXIgPSBiYXNlZGlyLmpvaW4oImQiKQotICAgIGlmIGRkaXIuaXNkaXIoKSBhbmQgZGRp
ci5saXN0ZGlyKCk6Ci0gICAgICAgIHR3LnNlcCgiLSIsICJjYWNoZSBkaXJlY3RvcmllcyIpCi0g
ICAgICAgIGZvciBwIGluIHNvcnRlZChiYXNlZGlyLmpvaW4oImQiKS52aXNpdCgpKToKKyAgICBk
ZGlyID0gYmFzZWRpciAvICJkIgorICAgIGlmIGRkaXIuaXNfZGlyKCk6CisgICAgICAgIGNvbnRl
bnRzID0gc29ydGVkKGRkaXIucmdsb2IoZ2xvYikpCisgICAgICAgIHR3LnNlcCgiLSIsICJjYWNo
ZSBkaXJlY3RvcmllcyBmb3IgJXIiICUgZ2xvYikKKyAgICAgICAgZm9yIHAgaW4gY29udGVudHM6
CiAgICAgICAgICAgICAjIGlmIHAuY2hlY2soZGlyPTEpOgogICAgICAgICAgICAgIyAgICBwcmlu
dCgiJXMvIiAlIHAucmVsdG8oYmFzZWRpcikpCi0gICAgICAgICAgICBpZiBwLmlzZmlsZSgpOgot
ICAgICAgICAgICAgICAgIGtleSA9IHAucmVsdG8oYmFzZWRpcikKLSAgICAgICAgICAgICAgICB0
dy5saW5lKCIlcyBpcyBhIGZpbGUgb2YgbGVuZ3RoICVkIiAlIChrZXksIHAuc2l6ZSgpKSkKKyAg
ICAgICAgICAgIGlmIHAuaXNfZmlsZSgpOgorICAgICAgICAgICAgICAgIGtleSA9IHAucmVsYXRp
dmVfdG8oYmFzZWRpcikKKyAgICAgICAgICAgICAgICB0dy5saW5lKCJ7fSBpcyBhIGZpbGUgb2Yg
bGVuZ3RoIHs6ZH0iLmZvcm1hdChrZXksIHAuc3RhdCgpLnN0X3NpemUpKQogICAgIHJldHVybiAw
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jYXB0dXJlLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3QvY2FwdHVyZS5weQppbmRleCA3YTU3YWRiNzUyYTcyNjcxMjAzMTBk
YWEyODc1MTRhYzkyOTY5NmQ4Li42OGMxNzc3MmYzOWRmYzA4NjM1NWFjMTM3NDMxMmY3MzY1OThh
MGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jYXB0dXJlLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NhcHR1cmUucHkKQEAgLTEsMjIgKzEsMjYgQEAKKyMg
LSotIGNvZGluZzogdXRmLTggLSotCiAiIiIKIHBlci10ZXN0IHN0ZG91dC9zdGRlcnIgY2FwdHVy
aW5nIG1lY2hhbmlzbS4KIAogIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgY29sbGVjdGlvbnMKIGltcG9y
dCBjb250ZXh0bGliCi1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKIGltcG9ydCBpbworaW1wb3J0IG9z
CitpbXBvcnQgc3lzCiBmcm9tIGlvIGltcG9ydCBVbnN1cHBvcnRlZE9wZXJhdGlvbgogZnJvbSB0
ZW1wZmlsZSBpbXBvcnQgVGVtcG9yYXJ5RmlsZQogCiBpbXBvcnQgc2l4CisKIGltcG9ydCBweXRl
c3QKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9QWTMKIGZyb20gX3B5dGVzdC5jb21wYXQg
aW1wb3J0IENhcHR1cmVJTwogCi0KIHBhdGNoc3lzZGljdCA9IHswOiAic3RkaW4iLCAxOiAic3Rk
b3V0IiwgMjogInN0ZGVyciJ9CiAKIApAQCAtNTMsMTggKzU3LDEyIEBAIGRlZiBweXRlc3RfbG9h
ZF9pbml0aWFsX2NvbmZ0ZXN0cyhlYXJseV9jb25maWcsIHBhcnNlciwgYXJncyk6CiAgICAgIyBt
YWtlIHN1cmUgdGhhdCBjYXB0dXJlbWFuYWdlciBpcyBwcm9wZXJseSByZXNldCBhdCBmaW5hbCBz
aHV0ZG93bgogICAgIGVhcmx5X2NvbmZpZy5hZGRfY2xlYW51cChjYXBtYW4uc3RvcF9nbG9iYWxf
Y2FwdHVyaW5nKQogCi0gICAgIyBtYWtlIHN1cmUgbG9nZ2luZyBkb2VzIG5vdCByYWlzZSBleGNl
cHRpb25zIGF0IHRoZSBlbmQKLSAgICBkZWYgc2lsZW5jZV9sb2dnaW5nX2F0X3NodXRkb3duKCk6
Ci0gICAgICAgIGlmICJsb2dnaW5nIiBpbiBzeXMubW9kdWxlczoKLSAgICAgICAgICAgIHN5cy5t
b2R1bGVzWyJsb2dnaW5nIl0ucmFpc2VFeGNlcHRpb25zID0gRmFsc2UKLQotICAgIGVhcmx5X2Nv
bmZpZy5hZGRfY2xlYW51cChzaWxlbmNlX2xvZ2dpbmdfYXRfc2h1dGRvd24pCi0KICAgICAjIGZp
bmFsbHkgdHJpZ2dlciBjb25mdGVzdCBsb2FkaW5nIGJ1dCB3aGlsZSBjYXB0dXJpbmcgKGlzc3Vl
OTMpCiAgICAgY2FwbWFuLnN0YXJ0X2dsb2JhbF9jYXB0dXJpbmcoKQogICAgIG91dGNvbWUgPSB5
aWVsZAotICAgIG91dCwgZXJyID0gY2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoKQorICAg
IGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKICAgICBpZiBvdXRjb21lLmV4Y2luZm8g
aXMgbm90IE5vbmU6CisgICAgICAgIG91dCwgZXJyID0gY2FwbWFuLnJlYWRfZ2xvYmFsX2NhcHR1
cmUoKQogICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKICAgICAgICAgc3lzLnN0ZGVyci53
cml0ZShlcnIpCiAKQEAgLTg1LDYgKzgzLDE0IEBAIGNsYXNzIENhcHR1cmVNYW5hZ2VyKG9iamVj
dCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGhvZCk6CiAgICAgICAgIHNlbGYuX21ldGhv
ZCA9IG1ldGhvZAogICAgICAgICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nID0gTm9uZQorICAgICAg
ICBzZWxmLl9jdXJyZW50X2l0ZW0gPSBOb25lCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6Cisg
ICAgICAgIHJldHVybiAiPENhcHR1cmVNYW5hZ2VyIF9tZXRob2Q9JXIgX2dsb2JhbF9jYXB0dXJp
bmc9JXIgX2N1cnJlbnRfaXRlbT0lcj4iICUgKAorICAgICAgICAgICAgc2VsZi5fbWV0aG9kLAor
ICAgICAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZywKKyAgICAgICAgICAgIHNlbGYuX2N1
cnJlbnRfaXRlbSwKKyAgICAgICAgKQogCiAgICAgZGVmIF9nZXRjYXB0dXJlKHNlbGYsIG1ldGhv
ZCk6CiAgICAgICAgIGlmIG1ldGhvZCA9PSAiZmQiOgpAQCAtOTMsOCArOTksMjIgQEAgY2xhc3Mg
Q2FwdHVyZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBNdWx0aUNhcHR1cmUo
b3V0PVRydWUsIGVycj1UcnVlLCBDYXB0dXJlPVN5c0NhcHR1cmUpCiAgICAgICAgIGVsaWYgbWV0
aG9kID09ICJubyI6CiAgICAgICAgICAgICByZXR1cm4gTXVsdGlDYXB0dXJlKG91dD1GYWxzZSwg
ZXJyPUZhbHNlLCBpbl89RmFsc2UpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJ1bmtub3duIGNhcHR1cmluZyBtZXRob2Q6ICVyIiAlIG1ldGhvZCkKKyAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93biBjYXB0dXJpbmcgbWV0aG9kOiAlciIgJSBtZXRo
b2QpICAjIHByYWdtYTogbm8gY292ZXIKKworICAgIGRlZiBpc19jYXB0dXJpbmcoc2VsZik6Cisg
ICAgICAgIGlmIHNlbGYuaXNfZ2xvYmFsbHlfY2FwdHVyaW5nKCk6CisgICAgICAgICAgICByZXR1
cm4gImdsb2JhbCIKKyAgICAgICAgY2FwdHVyZV9maXh0dXJlID0gZ2V0YXR0cihzZWxmLl9jdXJy
ZW50X2l0ZW0sICJfY2FwdHVyZV9maXh0dXJlIiwgTm9uZSkKKyAgICAgICAgaWYgY2FwdHVyZV9m
aXh0dXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgICAg
ICAiZml4dHVyZSAlcyIgJSBzZWxmLl9jdXJyZW50X2l0ZW0uX2NhcHR1cmVfZml4dHVyZS5yZXF1
ZXN0LmZpeHR1cmVuYW1lCisgICAgICAgICAgICApCisgICAgICAgIHJldHVybiBGYWxzZQorCisg
ICAgIyBHbG9iYWwgY2FwdHVyaW5nIGNvbnRyb2wKKworICAgIGRlZiBpc19nbG9iYWxseV9jYXB0
dXJpbmcoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9tZXRob2QgIT0gIm5vIgogCiAgICAg
ZGVmIHN0YXJ0X2dsb2JhbF9jYXB0dXJpbmcoc2VsZik6CiAgICAgICAgIGFzc2VydCBzZWxmLl9n
bG9iYWxfY2FwdHVyaW5nIGlzIE5vbmUKQEAgLTEwOCwxOCArMTI4LDI5IEBAIGNsYXNzIENhcHR1
cmVNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nID0g
Tm9uZQogCiAgICAgZGVmIHJlc3VtZV9nbG9iYWxfY2FwdHVyZShzZWxmKToKLSAgICAgICAgc2Vs
Zi5fZ2xvYmFsX2NhcHR1cmluZy5yZXN1bWVfY2FwdHVyaW5nKCkKKyAgICAgICAgIyBEdXJpbmcg
dGVhcmRvd24gb2YgdGhlIHB5dGhvbiBwcm9jZXNzLCBhbmQgb24gcmFyZSBvY2Nhc2lvbnMsIGNh
cHR1cmUKKyAgICAgICAgIyBhdHRyaWJ1dGVzIGNhbiBiZSBgTm9uZWAgd2hpbGUgdHJ5aW5nIHRv
IHJlc3VtZSBnbG9iYWwgY2FwdHVyZS4KKyAgICAgICAgaWYgc2VsZi5fZ2xvYmFsX2NhcHR1cmlu
ZyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcucmVzdW1l
X2NhcHR1cmluZygpCiAKLSAgICBkZWYgc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShzZWxmLCBpdGVt
PU5vbmUsIGluXz1GYWxzZSk6Ci0gICAgICAgIGlmIGl0ZW0gaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICBzZWxmLmRlYWN0aXZhdGVfZml4dHVyZShpdGVtKQorICAgIGRlZiBzdXNwZW5kX2dsb2Jh
bF9jYXB0dXJlKHNlbGYsIGluXz1GYWxzZSk6CiAgICAgICAgIGNhcCA9IGdldGF0dHIoc2VsZiwg
Il9nbG9iYWxfY2FwdHVyaW5nIiwgTm9uZSkKICAgICAgICAgaWYgY2FwIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG91dGVyciA9IGNhcC5yZWFkb3V0ZXJy
KCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2FwLnN1c3BlbmRfY2Fw
dHVyaW5nKGluXz1pbl8pCi0gICAgICAgICAgICByZXR1cm4gb3V0ZXJyCisgICAgICAgICAgICBj
YXAuc3VzcGVuZF9jYXB0dXJpbmcoaW5fPWluXykKKworICAgIGRlZiBzdXNwZW5kKHNlbGYsIGlu
Xz1GYWxzZSk6CisgICAgICAgICMgTmVlZCB0byB1bmRvIGxvY2FsIGNhcHN5cy1ldC1hbCBpZiBp
dCBleGlzdHMgYmVmb3JlIGRpc2FibGluZyBnbG9iYWwgY2FwdHVyZS4KKyAgICAgICAgc2VsZi5z
dXNwZW5kX2ZpeHR1cmUoc2VsZi5fY3VycmVudF9pdGVtKQorICAgICAgICBzZWxmLnN1c3BlbmRf
Z2xvYmFsX2NhcHR1cmUoaW5fKQorCisgICAgZGVmIHJlc3VtZShzZWxmKToKKyAgICAgICAgc2Vs
Zi5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUoKQorICAgICAgICBzZWxmLnJlc3VtZV9maXh0dXJlKHNl
bGYuX2N1cnJlbnRfaXRlbSkKKworICAgIGRlZiByZWFkX2dsb2JhbF9jYXB0dXJlKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5yZWFkb3V0ZXJyKCkKKworICAg
ICMgRml4dHVyZSBDb250cm9sIChpdCdzIGp1c3QgZm9yd2FyZGluZywgdGhpbmsgYWJvdXQgcmVt
b3ZpbmcgdGhpcyBsYXRlcikKIAogICAgIGRlZiBhY3RpdmF0ZV9maXh0dXJlKHNlbGYsIGl0ZW0p
OgogICAgICAgICAiIiJJZiB0aGUgY3VycmVudCBpdGVtIGlzIHVzaW5nIGBgY2Fwc3lzYGAgb3Ig
YGBjYXBmZGBgLCBhY3RpdmF0ZSB0aGVtIHNvIHRoZXkgdGFrZSBwcmVjZWRlbmNlIG92ZXIKQEAg
LTEzNSwxMiArMTY2LDUwIEBAIGNsYXNzIENhcHR1cmVNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAg
IGlmIGZpeHR1cmUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBmaXh0dXJlLmNsb3NlKCkKIAor
ICAgIGRlZiBzdXNwZW5kX2ZpeHR1cmUoc2VsZiwgaXRlbSk6CisgICAgICAgIGZpeHR1cmUgPSBn
ZXRhdHRyKGl0ZW0sICJfY2FwdHVyZV9maXh0dXJlIiwgTm9uZSkKKyAgICAgICAgaWYgZml4dHVy
ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZpeHR1cmUuX3N1c3BlbmQoKQorCisgICAgZGVm
IHJlc3VtZV9maXh0dXJlKHNlbGYsIGl0ZW0pOgorICAgICAgICBmaXh0dXJlID0gZ2V0YXR0cihp
dGVtLCAiX2NhcHR1cmVfZml4dHVyZSIsIE5vbmUpCisgICAgICAgIGlmIGZpeHR1cmUgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBmaXh0dXJlLl9yZXN1bWUoKQorCisgICAgIyBIZWxwZXIgY29u
dGV4dCBtYW5hZ2VycworCisgICAgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKKyAgICBkZWYg
Z2xvYmFsX2FuZF9maXh0dXJlX2Rpc2FibGVkKHNlbGYpOgorICAgICAgICAiIiJDb250ZXh0IG1h
bmFnZXIgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSBnbG9iYWwgYW5kIGN1cnJlbnQgZml4dHVyZSBj
YXB0dXJpbmcuIiIiCisgICAgICAgIHNlbGYuc3VzcGVuZCgpCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHlpZWxkCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLnJlc3VtZSgp
CisKKyAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorICAgIGRlZiBpdGVtX2NhcHR1cmUo
c2VsZiwgd2hlbiwgaXRlbSk6CisgICAgICAgIHNlbGYucmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkK
KyAgICAgICAgc2VsZi5hY3RpdmF0ZV9maXh0dXJlKGl0ZW0pCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHlpZWxkCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLmRlYWN0aXZh
dGVfZml4dHVyZShpdGVtKQorICAgICAgICAgICAgc2VsZi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJl
KGluXz1GYWxzZSkKKworICAgICAgICBvdXQsIGVyciA9IHNlbGYucmVhZF9nbG9iYWxfY2FwdHVy
ZSgpCisgICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKHdoZW4sICJzdGRvdXQiLCBvdXQp
CisgICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKHdoZW4sICJzdGRlcnIiLCBlcnIpCisK
KyAgICAjIEhvb2tzCisKICAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCiAg
ICAgZGVmIHB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0KHNlbGYsIGNvbGxlY3Rvcik6CiAgICAg
ICAgIGlmIGlzaW5zdGFuY2UoY29sbGVjdG9yLCBweXRlc3QuRmlsZSk6CiAgICAgICAgICAgICBz
ZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCiAgICAgICAgICAgICBvdXRjb21lID0geWllbGQK
LSAgICAgICAgICAgIG91dCwgZXJyID0gc2VsZi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKKyAg
ICAgICAgICAgIHNlbGYuc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAgICBvdXQs
IGVyciA9IHNlbGYucmVhZF9nbG9iYWxfY2FwdHVyZSgpCiAgICAgICAgICAgICByZXAgPSBvdXRj
b21lLmdldF9yZXN1bHQoKQogICAgICAgICAgICAgaWYgb3V0OgogICAgICAgICAgICAgICAgIHJl
cC5zZWN0aW9ucy5hcHBlbmQoKCJDYXB0dXJlZCBzdGRvdXQiLCBvdXQpKQpAQCAtMTUwLDI5ICsy
MTksMjUgQEAgY2xhc3MgQ2FwdHVyZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIHlpZWxk
CiAKICAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVz
dF9ydW50ZXN0X3NldHVwKHNlbGYsIGl0ZW0pOgotICAgICAgICBzZWxmLnJlc3VtZV9nbG9iYWxf
Y2FwdHVyZSgpCi0gICAgICAgICMgbm8gbmVlZCB0byBhY3RpdmF0ZSBhIGNhcHR1cmUgZml4dHVy
ZSBiZWNhdXNlIHRoZXkgYWN0aXZhdGUgdGhlbXNlbHZlcyBkdXJpbmcgY3JlYXRpb247IHRoaXMK
LSAgICAgICAgIyBvbmx5IG1ha2VzIHNlbnNlIHdoZW4gYSBmaXh0dXJlIHVzZXMgYSBjYXB0dXJl
IGZpeHR1cmUsIG90aGVyd2lzZSB0aGUgY2FwdHVyZSBmaXh0dXJlIHdpbGwKLSAgICAgICAgIyBi
ZSBhY3RpdmF0ZWQgZHVyaW5nIHB5dGVzdF9ydW50ZXN0X2NhbGwKKyAgICBkZWYgcHl0ZXN0X3J1
bnRlc3RfcHJvdG9jb2woc2VsZiwgaXRlbSk6CisgICAgICAgIHNlbGYuX2N1cnJlbnRfaXRlbSA9
IGl0ZW0KICAgICAgICAgeWllbGQKLSAgICAgICAgc2VsZi5zdXNwZW5kX2NhcHR1cmVfaXRlbShp
dGVtLCAic2V0dXAiKQorICAgICAgICBzZWxmLl9jdXJyZW50X2l0ZW0gPSBOb25lCisKKyAgICBA
cHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0
X3NldHVwKHNlbGYsIGl0ZW0pOgorICAgICAgICB3aXRoIHNlbGYuaXRlbV9jYXB0dXJlKCJzZXR1
cCIsIGl0ZW0pOgorICAgICAgICAgICAgeWllbGQKIAogICAgIEBweXRlc3QuaG9va2ltcGwoaG9v
a3dyYXBwZXI9VHJ1ZSkKICAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfY2FsbChzZWxmLCBpdGVtKToK
LSAgICAgICAgc2VsZi5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUoKQotICAgICAgICAjIGl0IGlzIGlt
cG9ydGFudCB0byBhY3RpdmF0ZSB0aGlzIGZpeHR1cmUgZHVyaW5nIHRoZSBjYWxsIHBoYXNlIHNv
IGl0IG92ZXJ3cml0ZXMgdGhlICJnbG9iYWwiCi0gICAgICAgICMgY2FwdHVyZQotICAgICAgICBz
ZWxmLmFjdGl2YXRlX2ZpeHR1cmUoaXRlbSkKLSAgICAgICAgeWllbGQKLSAgICAgICAgc2VsZi5z
dXNwZW5kX2NhcHR1cmVfaXRlbShpdGVtLCAiY2FsbCIpCisgICAgICAgIHdpdGggc2VsZi5pdGVt
X2NhcHR1cmUoImNhbGwiLCBpdGVtKToKKyAgICAgICAgICAgIHlpZWxkCiAKICAgICBAcHl0ZXN0
Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCiAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJk
b3duKHNlbGYsIGl0ZW0pOgotICAgICAgICBzZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0g
ICAgICAgIHNlbGYuYWN0aXZhdGVfZml4dHVyZShpdGVtKQotICAgICAgICB5aWVsZAotICAgICAg
ICBzZWxmLnN1c3BlbmRfY2FwdHVyZV9pdGVtKGl0ZW0sICJ0ZWFyZG93biIpCisgICAgICAgIHdp
dGggc2VsZi5pdGVtX2NhcHR1cmUoInRlYXJkb3duIiwgaXRlbSk6CisgICAgICAgICAgICB5aWVs
ZAogCiAgICAgQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQogICAgIGRlZiBweXRlc3Rf
a2V5Ym9hcmRfaW50ZXJydXB0KHNlbGYsIGV4Y2luZm8pOgpAQCAtMTgyLDExICsyNDcsNiBAQCBj
bGFzcyBDYXB0dXJlTWFuYWdlcihvYmplY3QpOgogICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJv
cihzZWxmLCBleGNpbmZvKToKICAgICAgICAgc2VsZi5zdG9wX2dsb2JhbF9jYXB0dXJpbmcoKQog
Ci0gICAgZGVmIHN1c3BlbmRfY2FwdHVyZV9pdGVtKHNlbGYsIGl0ZW0sIHdoZW4sIGluXz1GYWxz
ZSk6Ci0gICAgICAgIG91dCwgZXJyID0gc2VsZi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGl0ZW0s
IGluXz1pbl8pCi0gICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKHdoZW4sICJzdGRvdXQi
LCBvdXQpCi0gICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKHdoZW4sICJzdGRlcnIiLCBl
cnIpCi0KIAogY2FwdHVyZV9maXh0dXJlcyA9IHsiY2FwZmQiLCAiY2FwZmRiaW5hcnkiLCAiY2Fw
c3lzIiwgImNhcHN5c2JpbmFyeSJ9CiAKQEAgLTIwMywxMCArMjYzLDExIEBAIGRlZiBfZW5zdXJl
X29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1ZXN0LCBuYW1lKToKIAogQHB5dGVzdC5maXh0
dXJlCiBkZWYgY2Fwc3lzKHJlcXVlc3QpOgotICAgICIiIkVuYWJsZSBjYXB0dXJpbmcgb2Ygd3Jp
dGVzIHRvIGBgc3lzLnN0ZG91dGBgIGFuZCBgYHN5cy5zdGRlcnJgYCBhbmQgbWFrZQotICAgIGNh
cHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBgIG1ldGhv
ZCBjYWxscwotICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIG5hbWVkdHVwbGUuICBg
YG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUgYGB0ZXh0YGAKLSAgICBvYmplY3RzLgorICAgICIi
IkVuYWJsZSB0ZXh0IGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gYGBzeXMuc3Rkb3V0YGAgYW5kIGBg
c3lzLnN0ZGVycmBgLgorCisgICAgVGhlIGNhcHR1cmVkIG91dHB1dCBpcyBtYWRlIGF2YWlsYWJs
ZSB2aWEgYGBjYXBzeXMucmVhZG91dGVycigpYGAgbWV0aG9kCisgICAgY2FsbHMsIHdoaWNoIHJl
dHVybiBhIGBgKG91dCwgZXJyKWBgIG5hbWVkdHVwbGUuCisgICAgYGBvdXRgYCBhbmQgYGBlcnJg
YCB3aWxsIGJlIGBgdGV4dGBgIG9iamVjdHMuCiAgICAgIiIiCiAgICAgX2Vuc3VyZV9vbmx5X29u
ZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwgImNhcHN5cyIpCiAgICAgd2l0aCBfaW5zdGFsbF9j
YXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBTeXNDYXB0dXJlKSBhcyBmaXh0dXJlOgpA
QCAtMjE1LDI2ICsyNzYsMjggQEAgZGVmIGNhcHN5cyhyZXF1ZXN0KToKIAogQHB5dGVzdC5maXh0
dXJlCiBkZWYgY2Fwc3lzYmluYXJ5KHJlcXVlc3QpOgotICAgICIiIkVuYWJsZSBjYXB0dXJpbmcg
b2Ygd3JpdGVzIHRvIGBgc3lzLnN0ZG91dGBgIGFuZCBgYHN5cy5zdGRlcnJgYCBhbmQgbWFrZQot
ICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBg
IG1ldGhvZCBjYWxscwotICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAg
YGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgYnl0ZXNgYAotICAgIG9iamVjdHMuCisgICAg
IiIiRW5hYmxlIGJ5dGVzIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gYGBzeXMuc3Rkb3V0YGAgYW5k
IGBgc3lzLnN0ZGVycmBgLgorCisgICAgVGhlIGNhcHR1cmVkIG91dHB1dCBpcyBtYWRlIGF2YWls
YWJsZSB2aWEgYGBjYXBzeXNiaW5hcnkucmVhZG91dGVycigpYGAKKyAgICBtZXRob2QgY2FsbHMs
IHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIG5hbWVkdHVwbGUuCisgICAgYGBvdXRgYCBh
bmQgYGBlcnJgYCB3aWxsIGJlIGBgYnl0ZXNgYCBvYmplY3RzLgogICAgICIiIgogICAgIF9lbnN1
cmVfb25seV9vbmVfY2FwdHVyZV9maXh0dXJlKHJlcXVlc3QsICJjYXBzeXNiaW5hcnkiKQogICAg
ICMgQ3VycmVudGx5LCB0aGUgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgcHl0aG9uMyBzcGVjaWZp
YyBgLmJ1ZmZlcmAKICAgICAjIHByb3BlcnR5IG9mIENhcHR1cmVJTy4KICAgICBpZiBzeXMudmVy
c2lvbl9pbmZvIDwgKDMsKToKLSAgICAgICAgcmFpc2UgcmVxdWVzdC5yYWlzZWVycm9yKCJjYXBz
eXNiaW5hcnkgaXMgb25seSBzdXBwb3J0ZWQgb24gcHl0aG9uIDMiKQorICAgICAgICByYWlzZSBy
ZXF1ZXN0LnJhaXNlZXJyb3IoImNhcHN5c2JpbmFyeSBpcyBvbmx5IHN1cHBvcnRlZCBvbiBQeXRo
b24gMyIpCiAgICAgd2l0aCBfaW5zdGFsbF9jYXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0
LCBTeXNDYXB0dXJlQmluYXJ5KSBhcyBmaXh0dXJlOgogICAgICAgICB5aWVsZCBmaXh0dXJlCiAK
IAogQHB5dGVzdC5maXh0dXJlCiBkZWYgY2FwZmQocmVxdWVzdCk6Ci0gICAgIiIiRW5hYmxlIGNh
cHR1cmluZyBvZiB3cml0ZXMgdG8gZmlsZSBkZXNjcmlwdG9ycyBgYDFgYCBhbmQgYGAyYGAgYW5k
IG1ha2UKLSAgICBjYXB0dXJlZCBvdXRwdXQgYXZhaWxhYmxlIHZpYSBgYGNhcGZkLnJlYWRvdXRl
cnIoKWBgIG1ldGhvZCBjYWxscwotICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIHR1
cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgCi0gICAgb2JqZWN0cy4K
KyAgICAiIiJFbmFibGUgdGV4dCBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIGZpbGUgZGVzY3JpcHRv
cnMgYGAxYGAgYW5kIGBgMmBgLgorCisgICAgVGhlIGNhcHR1cmVkIG91dHB1dCBpcyBtYWRlIGF2
YWlsYWJsZSB2aWEgYGBjYXBmZC5yZWFkb3V0ZXJyKClgYCBtZXRob2QKKyAgICBjYWxscywgd2hp
Y2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgbmFtZWR0dXBsZS4KKyAgICBgYG91dGBgIGFuZCBg
YGVycmBgIHdpbGwgYmUgYGB0ZXh0YGAgb2JqZWN0cy4KICAgICAiIiIKICAgICBfZW5zdXJlX29u
bHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1ZXN0LCAiY2FwZmQiKQogICAgIGlmIG5vdCBoYXNh
dHRyKG9zLCAiZHVwIik6CkBAIC0yNDcsMTAgKzMxMCwxMSBAQCBkZWYgY2FwZmQocmVxdWVzdCk6
CiAKIEBweXRlc3QuZml4dHVyZQogZGVmIGNhcGZkYmluYXJ5KHJlcXVlc3QpOgotICAgICIiIkVu
YWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGUgdG8gZmlsZSBkZXNjcmlwdG9ycyAxIGFuZCAyIGFuZCBt
YWtlCi0gICAgY2FwdHVyZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBmZGJpbmFyeS5yZWFk
b3V0ZXJyYGAgbWV0aG9kIGNhbGxzCi0gICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAg
dHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUKLSAgICBgYGJ5dGVzYGAgb2JqZWN0
cy4KKyAgICAiIiJFbmFibGUgYnl0ZXMgY2FwdHVyaW5nIG9mIHdyaXRlcyB0byBmaWxlIGRlc2Ny
aXB0b3JzIGBgMWBgIGFuZCBgYDJgYC4KKworICAgIFRoZSBjYXB0dXJlZCBvdXRwdXQgaXMgbWFk
ZSBhdmFpbGFibGUgdmlhIGBgY2FwZmQucmVhZG91dGVycigpYGAgbWV0aG9kCisgICAgY2FsbHMs
IHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIG5hbWVkdHVwbGUuCisgICAgYGBvdXRgYCBh
bmQgYGBlcnJgYCB3aWxsIGJlIGBgYnl0ZWBgIG9iamVjdHMuCiAgICAgIiIiCiAgICAgX2Vuc3Vy
ZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwgImNhcGZkYmluYXJ5IikKICAgICBp
ZiBub3QgaGFzYXR0cihvcywgImR1cCIpOgpAQCAtMjcyLDkgKzMzNiw5IEBAIGRlZiBfaW5zdGFs
bF9jYXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBjYXB0dXJlX2NsYXNzKToKICAgICAi
IiIKICAgICByZXF1ZXN0Lm5vZGUuX2NhcHR1cmVfZml4dHVyZSA9IGZpeHR1cmUgPSBDYXB0dXJl
Rml4dHVyZShjYXB0dXJlX2NsYXNzLCByZXF1ZXN0KQogICAgIGNhcG1hbmFnZXIgPSByZXF1ZXN0
LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigiY2FwdHVyZW1hbmFnZXIiKQotICAgICMg
bmVlZCB0byBhY3RpdmUgdGhpcyBmaXh0dXJlIHJpZ2h0IGF3YXkgaW4gY2FzZSBpdCBpcyBiZWlu
ZyB1c2VkIGJ5IGFub3RoZXIgZml4dHVyZSAoc2V0dXAgcGhhc2UpCi0gICAgIyBpZiB0aGlzIGZp
eHR1cmUgaXMgYmVpbmcgdXNlZCBvbmx5IGJ5IGEgdGVzdCBmdW5jdGlvbiAoY2FsbCBwaGFzZSks
IHRoZW4gd2Ugd291bGRuJ3QgbmVlZCB0aGlzCi0gICAgIyBhY3RpdmF0aW9uLCBidXQgaXQgZG9l
c24ndCBodXJ0CisgICAgIyBOZWVkIHRvIGFjdGl2ZSB0aGlzIGZpeHR1cmUgcmlnaHQgYXdheSBp
biBjYXNlIGl0IGlzIGJlaW5nIHVzZWQgYnkgYW5vdGhlciBmaXh0dXJlIChzZXR1cCBwaGFzZSku
CisgICAgIyBJZiB0aGlzIGZpeHR1cmUgaXMgYmVpbmcgdXNlZCBvbmx5IGJ5IGEgdGVzdCBmdW5j
dGlvbiAoY2FsbCBwaGFzZSksIHRoZW4gd2Ugd291bGRuJ3QgbmVlZCB0aGlzCisgICAgIyBhY3Rp
dmF0aW9uLCBidXQgaXQgZG9lc24ndCBodXJ0LgogICAgIGNhcG1hbmFnZXIuYWN0aXZhdGVfZml4
dHVyZShyZXF1ZXN0Lm5vZGUpCiAgICAgeWllbGQgZml4dHVyZQogICAgIGZpeHR1cmUuY2xvc2Uo
KQpAQCAtMjkwLDQwICszNTQsNTUgQEAgY2xhc3MgQ2FwdHVyZUZpeHR1cmUob2JqZWN0KToKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgY2FwdHVyZWNsYXNzLCByZXF1ZXN0KToKICAgICAgICAgc2Vs
Zi5jYXB0dXJlY2xhc3MgPSBjYXB0dXJlY2xhc3MKICAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVx
dWVzdAorICAgICAgICBzZWxmLl9jYXB0dXJlID0gTm9uZQorICAgICAgICBzZWxmLl9jYXB0dXJl
ZF9vdXQgPSBzZWxmLmNhcHR1cmVjbGFzcy5FTVBUWV9CVUZGRVIKKyAgICAgICAgc2VsZi5fY2Fw
dHVyZWRfZXJyID0gc2VsZi5jYXB0dXJlY2xhc3MuRU1QVFlfQlVGRkVSCiAKICAgICBkZWYgX3N0
YXJ0KHNlbGYpOgotICAgICAgICBzZWxmLl9jYXB0dXJlID0gTXVsdGlDYXB0dXJlKAotICAgICAg
ICAgICAgb3V0PVRydWUsIGVycj1UcnVlLCBpbl89RmFsc2UsIENhcHR1cmU9c2VsZi5jYXB0dXJl
Y2xhc3MKLSAgICAgICAgKQotICAgICAgICBzZWxmLl9jYXB0dXJlLnN0YXJ0X2NhcHR1cmluZygp
CisgICAgICAgIGlmIHNlbGYuX2NhcHR1cmUgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2Nh
cHR1cmUgPSBNdWx0aUNhcHR1cmUoCisgICAgICAgICAgICAgICAgb3V0PVRydWUsIGVycj1UcnVl
LCBpbl89RmFsc2UsIENhcHR1cmU9c2VsZi5jYXB0dXJlY2xhc3MKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICAgIHNlbGYuX2NhcHR1cmUuc3RhcnRfY2FwdHVyaW5nKCkKIAogICAgIGRlZiBjbG9z
ZShzZWxmKToKLSAgICAgICAgY2FwID0gc2VsZi5fX2RpY3RfXy5wb3AoIl9jYXB0dXJlIiwgTm9u
ZSkKLSAgICAgICAgaWYgY2FwIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fb3V0ZXJy
ID0gY2FwLnBvcF9vdXRlcnJfdG9fb3JpZygpCi0gICAgICAgICAgICBjYXAuc3RvcF9jYXB0dXJp
bmcoKQorICAgICAgICBpZiBzZWxmLl9jYXB0dXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
b3V0LCBlcnIgPSBzZWxmLl9jYXB0dXJlLnBvcF9vdXRlcnJfdG9fb3JpZygpCisgICAgICAgICAg
ICBzZWxmLl9jYXB0dXJlZF9vdXQgKz0gb3V0CisgICAgICAgICAgICBzZWxmLl9jYXB0dXJlZF9l
cnIgKz0gZXJyCisgICAgICAgICAgICBzZWxmLl9jYXB0dXJlLnN0b3BfY2FwdHVyaW5nKCkKKyAg
ICAgICAgICAgIHNlbGYuX2NhcHR1cmUgPSBOb25lCiAKICAgICBkZWYgcmVhZG91dGVycihzZWxm
KToKICAgICAgICAgIiIiUmVhZCBhbmQgcmV0dXJuIHRoZSBjYXB0dXJlZCBvdXRwdXQgc28gZmFy
LCByZXNldHRpbmcgdGhlIGludGVybmFsIGJ1ZmZlci4KIAotICAgICAgICA6cmV0dXJuOiBjYXB0
dXJlZCBjb250ZW50IGFzIGEgbmFtZWR0dXBsZSB3aXRoICBgYG91dGBgIGFuZCBgYGVycmBgIHN0
cmluZyBhdHRyaWJ1dGVzCisgICAgICAgIDpyZXR1cm46IGNhcHR1cmVkIGNvbnRlbnQgYXMgYSBu
YW1lZHR1cGxlIHdpdGggYGBvdXRgYCBhbmQgYGBlcnJgYCBzdHJpbmcgYXR0cmlidXRlcwogICAg
ICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NhcHR1cmUu
cmVhZG91dGVycigpCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAg
IHJldHVybiBzZWxmLl9vdXRlcnIKKyAgICAgICAgY2FwdHVyZWRfb3V0LCBjYXB0dXJlZF9lcnIg
PSBzZWxmLl9jYXB0dXJlZF9vdXQsIHNlbGYuX2NhcHR1cmVkX2VycgorICAgICAgICBpZiBzZWxm
Ll9jYXB0dXJlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgb3V0LCBlcnIgPSBzZWxmLl9jYXB0
dXJlLnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgY2FwdHVyZWRfb3V0ICs9IG91dAorICAgICAg
ICAgICAgY2FwdHVyZWRfZXJyICs9IGVycgorICAgICAgICBzZWxmLl9jYXB0dXJlZF9vdXQgPSBz
ZWxmLmNhcHR1cmVjbGFzcy5FTVBUWV9CVUZGRVIKKyAgICAgICAgc2VsZi5fY2FwdHVyZWRfZXJy
ID0gc2VsZi5jYXB0dXJlY2xhc3MuRU1QVFlfQlVGRkVSCisgICAgICAgIHJldHVybiBDYXB0dXJl
UmVzdWx0KGNhcHR1cmVkX291dCwgY2FwdHVyZWRfZXJyKQorCisgICAgZGVmIF9zdXNwZW5kKHNl
bGYpOgorICAgICAgICAiIiJTdXNwZW5kcyB0aGlzIGZpeHR1cmUncyBvd24gY2FwdHVyaW5nIHRl
bXBvcmFyaWx5LiIiIgorICAgICAgICBpZiBzZWxmLl9jYXB0dXJlIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgc2VsZi5fY2FwdHVyZS5zdXNwZW5kX2NhcHR1cmluZygpCisKKyAgICBkZWYgX3Jl
c3VtZShzZWxmKToKKyAgICAgICAgIiIiUmVzdW1lcyB0aGlzIGZpeHR1cmUncyBvd24gY2FwdHVy
aW5nIHRlbXBvcmFyaWx5LiIiIgorICAgICAgICBpZiBzZWxmLl9jYXB0dXJlIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgc2VsZi5fY2FwdHVyZS5yZXN1bWVfY2FwdHVyaW5nKCkKIAogICAgIEBj
b250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCiAgICAgZGVmIGRpc2FibGVkKHNlbGYpOgogICAgICAg
ICAiIiJUZW1wb3JhcmlseSBkaXNhYmxlcyBjYXB0dXJlIHdoaWxlIGluc2lkZSB0aGUgJ3dpdGgn
IGJsb2NrLiIiIgotICAgICAgICBzZWxmLl9jYXB0dXJlLnN1c3BlbmRfY2FwdHVyaW5nKCkKICAg
ICAgICAgY2FwbWFuYWdlciA9IHNlbGYucmVxdWVzdC5jb25maWcucGx1Z2lubWFuYWdlci5nZXRw
bHVnaW4oImNhcHR1cmVtYW5hZ2VyIikKLSAgICAgICAgY2FwbWFuYWdlci5zdXNwZW5kX2dsb2Jh
bF9jYXB0dXJlKGl0ZW09Tm9uZSwgaW5fPUZhbHNlKQotICAgICAgICB0cnk6CisgICAgICAgIHdp
dGggY2FwbWFuYWdlci5nbG9iYWxfYW5kX2ZpeHR1cmVfZGlzYWJsZWQoKToKICAgICAgICAgICAg
IHlpZWxkCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBjYXBtYW5hZ2VyLnJlc3VtZV9n
bG9iYWxfY2FwdHVyZSgpCi0gICAgICAgICAgICBzZWxmLl9jYXB0dXJlLnJlc3VtZV9jYXB0dXJp
bmcoKQogCiAKIGRlZiBzYWZlX3RleHRfZHVwZmlsZShmLCBtb2RlLCBkZWZhdWx0X2VuY29kaW5n
PSJVVEY4Iik6CkBAIC0zNTUsNiArNDM0LDEwIEBAIGNsYXNzIEVuY29kZWRGaWxlKG9iamVjdCk6
CiAgICAgZGVmIHdyaXRlKHNlbGYsIG9iaik6CiAgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBz
aXgudGV4dF90eXBlKToKICAgICAgICAgICAgIG9iaiA9IG9iai5lbmNvZGUoc2VsZi5lbmNvZGlu
ZywgInJlcGxhY2UiKQorICAgICAgICBlbGlmIF9QWTM6CisgICAgICAgICAgICByYWlzZSBUeXBl
RXJyb3IoCisgICAgICAgICAgICAgICAgIndyaXRlKCkgYXJndW1lbnQgbXVzdCBiZSBzdHIsIG5v
dCB7fSIuZm9ybWF0KHR5cGUob2JqKS5fX25hbWVfXykKKyAgICAgICAgICAgICkKICAgICAgICAg
c2VsZi5idWZmZXIud3JpdGUob2JqKQogCiAgICAgZGVmIHdyaXRlbGluZXMoc2VsZiwgbGluZWxp
c3QpOgpAQCAtMzY2LDYgKzQ0OSwxMCBAQCBjbGFzcyBFbmNvZGVkRmlsZShvYmplY3QpOgogICAg
ICAgICAiIiJFbnN1cmUgdGhhdCBmaWxlLm5hbWUgaXMgYSBzdHJpbmcuIiIiCiAgICAgICAgIHJl
dHVybiByZXByKHNlbGYuYnVmZmVyKQogCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1vZGUoc2Vs
Zik6CisgICAgICAgIHJldHVybiBzZWxmLmJ1ZmZlci5tb2RlLnJlcGxhY2UoImIiLCAiIikKKwog
ICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKICAgICAgICAgcmV0dXJuIGdldGF0dHIo
b2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwgImJ1ZmZlciIpLCBuYW1lKQogCkBAIC0zNzUs
NiArNDYyLDcgQEAgQ2FwdHVyZVJlc3VsdCA9IGNvbGxlY3Rpb25zLm5hbWVkdHVwbGUoIkNhcHR1
cmVSZXN1bHQiLCBbIm91dCIsICJlcnIiXSkKIAogY2xhc3MgTXVsdGlDYXB0dXJlKG9iamVjdCk6
CiAgICAgb3V0ID0gZXJyID0gaW5fID0gTm9uZQorICAgIF9zdGF0ZSA9IE5vbmUKIAogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBvdXQ9VHJ1ZSwgZXJyPVRydWUsIGluXz1UcnVlLCBDYXB0dXJlPU5v
bmUpOgogICAgICAgICBpZiBpbl86CkBAIC0zODQsNyArNDcyLDE3IEBAIGNsYXNzIE11bHRpQ2Fw
dHVyZShvYmplY3QpOgogICAgICAgICBpZiBlcnI6CiAgICAgICAgICAgICBzZWxmLmVyciA9IENh
cHR1cmUoMikKIAorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8TXVs
dGlDYXB0dXJlIG91dD0lciBlcnI9JXIgaW5fPSVyIF9zdGF0ZT0lciBfaW5fc3VzcGVuZGVkPSVy
PiIgJSAoCisgICAgICAgICAgICBzZWxmLm91dCwKKyAgICAgICAgICAgIHNlbGYuZXJyLAorICAg
ICAgICAgICAgc2VsZi5pbl8sCisgICAgICAgICAgICBzZWxmLl9zdGF0ZSwKKyAgICAgICAgICAg
IGdldGF0dHIoc2VsZiwgIl9pbl9zdXNwZW5kZWQiLCAiPFVOU0VUPiIpLAorICAgICAgICApCisK
ICAgICBkZWYgc3RhcnRfY2FwdHVyaW5nKHNlbGYpOgorICAgICAgICBzZWxmLl9zdGF0ZSA9ICJz
dGFydGVkIgogICAgICAgICBpZiBzZWxmLmluXzoKICAgICAgICAgICAgIHNlbGYuaW5fLnN0YXJ0
KCkKICAgICAgICAgaWYgc2VsZi5vdXQ6CkBAIC00MDIsNiArNTAwLDcgQEAgY2xhc3MgTXVsdGlD
YXB0dXJlKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBvdXQsIGVycgogCiAgICAgZGVmIHN1c3Bl
bmRfY2FwdHVyaW5nKHNlbGYsIGluXz1GYWxzZSk6CisgICAgICAgIHNlbGYuX3N0YXRlID0gInN1
c3BlbmRlZCIKICAgICAgICAgaWYgc2VsZi5vdXQ6CiAgICAgICAgICAgICBzZWxmLm91dC5zdXNw
ZW5kKCkKICAgICAgICAgaWYgc2VsZi5lcnI6CkBAIC00MTEsNiArNTEwLDcgQEAgY2xhc3MgTXVs
dGlDYXB0dXJlKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9pbl9zdXNwZW5kZWQgPSBUcnVl
CiAKICAgICBkZWYgcmVzdW1lX2NhcHR1cmluZyhzZWxmKToKKyAgICAgICAgc2VsZi5fc3RhdGUg
PSAicmVzdW1lZCIKICAgICAgICAgaWYgc2VsZi5vdXQ6CiAgICAgICAgICAgICBzZWxmLm91dC5y
ZXN1bWUoKQogICAgICAgICBpZiBzZWxmLmVycjoKQEAgLTQyMSw5ICs1MjEsOSBAQCBjbGFzcyBN
dWx0aUNhcHR1cmUob2JqZWN0KToKIAogICAgIGRlZiBzdG9wX2NhcHR1cmluZyhzZWxmKToKICAg
ICAgICAgIiIiIHN0b3AgY2FwdHVyaW5nIGFuZCByZXNldCBjYXB0dXJpbmcgc3RyZWFtcyAiIiIK
LSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiX3Jlc2V0Iik6CisgICAgICAgIGlmIHNlbGYuX3N0
YXRlID09ICJzdG9wcGVkIjoKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIndhcyBhbHJl
YWR5IHN0b3BwZWQiKQotICAgICAgICBzZWxmLl9yZXNldCA9IFRydWUKKyAgICAgICAgc2VsZi5f
c3RhdGUgPSAic3RvcHBlZCIKICAgICAgICAgaWYgc2VsZi5vdXQ6CiAgICAgICAgICAgICBzZWxm
Lm91dC5kb25lKCkKICAgICAgICAgaWYgc2VsZi5lcnI6CkBAIC00NDAsNiArNTQwLDcgQEAgY2xh
c3MgTXVsdGlDYXB0dXJlKG9iamVjdCk6CiAKIAogY2xhc3MgTm9DYXB0dXJlKG9iamVjdCk6Cisg
ICAgRU1QVFlfQlVGRkVSID0gTm9uZQogICAgIF9faW5pdF9fID0gc3RhcnQgPSBkb25lID0gc3Vz
cGVuZCA9IHJlc3VtZSA9IGxhbWJkYSAqYXJnczogTm9uZQogCiAKQEAgLTQ0OSw2ICs1NTAsOSBA
QCBjbGFzcyBGRENhcHR1cmVCaW5hcnkob2JqZWN0KToKICAgICBzbmFwKCkgcHJvZHVjZXMgYGJ5
dGVzYAogICAgICIiIgogCisgICAgRU1QVFlfQlVGRkVSID0gYiIiCisgICAgX3N0YXRlID0gTm9u
ZQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRhcmdldGZkLCB0bXBmaWxlPU5vbmUpOgogICAg
ICAgICBzZWxmLnRhcmdldGZkID0gdGFyZ2V0ZmQKICAgICAgICAgdHJ5OgpAQCAtNDc0LDcgKzU3
OCwxMSBAQCBjbGFzcyBGRENhcHR1cmVCaW5hcnkob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYu
dG1wZmlsZV9mZCA9IHRtcGZpbGUuZmlsZW5vKCkKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToK
LSAgICAgICAgcmV0dXJuICI8RkRDYXB0dXJlICVzIG9sZGZkPSVzPiIgJSAoc2VsZi50YXJnZXRm
ZCwgc2VsZi50YXJnZXRmZF9zYXZlKQorICAgICAgICByZXR1cm4gIjxGRENhcHR1cmUgJXMgb2xk
ZmQ9JXMgX3N0YXRlPSVyPiIgJSAoCisgICAgICAgICAgICBzZWxmLnRhcmdldGZkLAorICAgICAg
ICAgICAgZ2V0YXR0cihzZWxmLCAidGFyZ2V0ZmRfc2F2ZSIsIE5vbmUpLAorICAgICAgICAgICAg
c2VsZi5fc3RhdGUsCisgICAgICAgICkKIAogICAgIGRlZiBzdGFydChzZWxmKToKICAgICAgICAg
IiIiIFN0YXJ0IGNhcHR1cmluZyBvbiB0YXJnZXRmZCB1c2luZyBtZW1vcml6ZWQgdG1wZmlsZS4g
IiIiCkBAIC00ODQsNiArNTkyLDcgQEAgY2xhc3MgRkRDYXB0dXJlQmluYXJ5KG9iamVjdCk6CiAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJzYXZlZCBmaWxlZGVzY3JpcHRvciBub3QgdmFs
aWQgYW55bW9yZSIpCiAgICAgICAgIG9zLmR1cDIoc2VsZi50bXBmaWxlX2ZkLCBzZWxmLnRhcmdl
dGZkKQogICAgICAgICBzZWxmLnN5c2NhcHR1cmUuc3RhcnQoKQorICAgICAgICBzZWxmLl9zdGF0
ZSA9ICJzdGFydGVkIgogCiAgICAgZGVmIHNuYXAoc2VsZik6CiAgICAgICAgIHNlbGYudG1wZmls
ZS5zZWVrKDApCkBAIC01MDAsMTQgKzYwOSwxNyBAQCBjbGFzcyBGRENhcHR1cmVCaW5hcnkob2Jq
ZWN0KToKICAgICAgICAgb3MuY2xvc2UodGFyZ2V0ZmRfc2F2ZSkKICAgICAgICAgc2VsZi5zeXNj
YXB0dXJlLmRvbmUoKQogICAgICAgICBfYXR0ZW1wdF90b19jbG9zZV9jYXB0dXJlX2ZpbGUoc2Vs
Zi50bXBmaWxlKQorICAgICAgICBzZWxmLl9zdGF0ZSA9ICJkb25lIgogCiAgICAgZGVmIHN1c3Bl
bmQoc2VsZik6CiAgICAgICAgIHNlbGYuc3lzY2FwdHVyZS5zdXNwZW5kKCkKICAgICAgICAgb3Mu
ZHVwMihzZWxmLnRhcmdldGZkX3NhdmUsIHNlbGYudGFyZ2V0ZmQpCisgICAgICAgIHNlbGYuX3N0
YXRlID0gInN1c3BlbmRlZCIKIAogICAgIGRlZiByZXN1bWUoc2VsZik6CiAgICAgICAgIHNlbGYu
c3lzY2FwdHVyZS5yZXN1bWUoKQogICAgICAgICBvcy5kdXAyKHNlbGYudG1wZmlsZV9mZCwgc2Vs
Zi50YXJnZXRmZCkKKyAgICAgICAgc2VsZi5fc3RhdGUgPSAicmVzdW1lZCIKIAogICAgIGRlZiB3
cml0ZW9yZyhzZWxmLCBkYXRhKToKICAgICAgICAgIiIiIHdyaXRlIHRvIG9yaWdpbmFsIGZpbGUg
ZGVzY3JpcHRvci4gIiIiCkBAIC01MjIsOCArNjM0LDEwIEBAIGNsYXNzIEZEQ2FwdHVyZShGRENh
cHR1cmVCaW5hcnkpOgogICAgIHNuYXAoKSBwcm9kdWNlcyB0ZXh0CiAgICAgIiIiCiAKKyAgICBF
TVBUWV9CVUZGRVIgPSBzdHIoKQorCiAgICAgZGVmIHNuYXAoc2VsZik6Ci0gICAgICAgIHJlcyA9
IEZEQ2FwdHVyZUJpbmFyeS5zbmFwKHNlbGYpCisgICAgICAgIHJlcyA9IHN1cGVyKEZEQ2FwdHVy
ZSwgc2VsZikuc25hcCgpCiAgICAgICAgIGVuYyA9IGdldGF0dHIoc2VsZi50bXBmaWxlLCAiZW5j
b2RpbmciLCBOb25lKQogICAgICAgICBpZiBlbmMgYW5kIGlzaW5zdGFuY2UocmVzLCBieXRlcyk6
CiAgICAgICAgICAgICByZXMgPSBzaXgudGV4dF90eXBlKHJlcywgZW5jLCAicmVwbGFjZSIpCkBA
IC01MzIsNiArNjQ2LDkgQEAgY2xhc3MgRkRDYXB0dXJlKEZEQ2FwdHVyZUJpbmFyeSk6CiAKIGNs
YXNzIFN5c0NhcHR1cmUob2JqZWN0KToKIAorICAgIEVNUFRZX0JVRkZFUiA9IHN0cigpCisgICAg
X3N0YXRlID0gTm9uZQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZkLCB0bXBmaWxlPU5vbmUp
OgogICAgICAgICBuYW1lID0gcGF0Y2hzeXNkaWN0W2ZkXQogICAgICAgICBzZWxmLl9vbGQgPSBn
ZXRhdHRyKHN5cywgbmFtZSkKQEAgLTU0Myw4ICs2NjAsMTcgQEAgY2xhc3MgU3lzQ2FwdHVyZShv
YmplY3QpOgogICAgICAgICAgICAgICAgIHRtcGZpbGUgPSBDYXB0dXJlSU8oKQogICAgICAgICBz
ZWxmLnRtcGZpbGUgPSB0bXBmaWxlCiAKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAg
IHJldHVybiAiPFN5c0NhcHR1cmUgJXMgX29sZD0lciwgdG1wZmlsZT0lciBfc3RhdGU9JXI+IiAl
ICgKKyAgICAgICAgICAgIHNlbGYubmFtZSwKKyAgICAgICAgICAgIHNlbGYuX29sZCwKKyAgICAg
ICAgICAgIHNlbGYudG1wZmlsZSwKKyAgICAgICAgICAgIHNlbGYuX3N0YXRlLAorICAgICAgICAp
CisKICAgICBkZWYgc3RhcnQoc2VsZik6CiAgICAgICAgIHNldGF0dHIoc3lzLCBzZWxmLm5hbWUs
IHNlbGYudG1wZmlsZSkKKyAgICAgICAgc2VsZi5fc3RhdGUgPSAic3RhcnRlZCIKIAogICAgIGRl
ZiBzbmFwKHNlbGYpOgogICAgICAgICByZXMgPSBzZWxmLnRtcGZpbGUuZ2V0dmFsdWUoKQpAQCAt
NTU2LDEyICs2ODIsMTUgQEAgY2xhc3MgU3lzQ2FwdHVyZShvYmplY3QpOgogICAgICAgICBzZXRh
dHRyKHN5cywgc2VsZi5uYW1lLCBzZWxmLl9vbGQpCiAgICAgICAgIGRlbCBzZWxmLl9vbGQKICAg
ICAgICAgX2F0dGVtcHRfdG9fY2xvc2VfY2FwdHVyZV9maWxlKHNlbGYudG1wZmlsZSkKKyAgICAg
ICAgc2VsZi5fc3RhdGUgPSAiZG9uZSIKIAogICAgIGRlZiBzdXNwZW5kKHNlbGYpOgogICAgICAg
ICBzZXRhdHRyKHN5cywgc2VsZi5uYW1lLCBzZWxmLl9vbGQpCisgICAgICAgIHNlbGYuX3N0YXRl
ID0gInN1c3BlbmRlZCIKIAogICAgIGRlZiByZXN1bWUoc2VsZik6CiAgICAgICAgIHNldGF0dHIo
c3lzLCBzZWxmLm5hbWUsIHNlbGYudG1wZmlsZSkKKyAgICAgICAgc2VsZi5fc3RhdGUgPSAicmVz
dW1lZCIKIAogICAgIGRlZiB3cml0ZW9yZyhzZWxmLCBkYXRhKToKICAgICAgICAgc2VsZi5fb2xk
LndyaXRlKGRhdGEpCkBAIC01NjksNiArNjk4LDcgQEAgY2xhc3MgU3lzQ2FwdHVyZShvYmplY3Qp
OgogCiAKIGNsYXNzIFN5c0NhcHR1cmVCaW5hcnkoU3lzQ2FwdHVyZSk6CisgICAgRU1QVFlfQlVG
RkVSID0gYiIiCiAKICAgICBkZWYgc25hcChzZWxmKToKICAgICAgICAgcmVzID0gc2VsZi50bXBm
aWxlLmJ1ZmZlci5nZXR2YWx1ZSgpCkBAIC01OTgsNyArNzI4LDcgQEAgY2xhc3MgRG9udFJlYWRG
cm9tSW5wdXQoc2l4Lkl0ZXJhdG9yKToKICAgICAgICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBm
aWxlbm8oc2VsZik6Ci0gICAgICAgIHJhaXNlIFVuc3VwcG9ydGVkT3BlcmF0aW9uKCJyZWRpcmVj
dGVkIHN0ZGluIGlzIHBzZXVkb2ZpbGUsICIgImhhcyBubyBmaWxlbm8oKSIpCisgICAgICAgIHJh
aXNlIFVuc3VwcG9ydGVkT3BlcmF0aW9uKCJyZWRpcmVjdGVkIHN0ZGluIGlzIHBzZXVkb2ZpbGUs
IGhhcyBubyBmaWxlbm8oKSIpCiAKICAgICBkZWYgaXNhdHR5KHNlbGYpOgogICAgICAgICByZXR1
cm4gRmFsc2UKQEAgLTYyMywxMyArNzUzLDExIEBAIGRlZiBfY29sb3JhbWFfd29ya2Fyb3VuZCgp
OgogICAgIGZpcnN0IGltcG9ydCBvZiBjb2xvcmFtYSB3aGlsZSBJL08gY2FwdHVyZSBpcyBhY3Rp
dmUsIGNvbG9yYW1hIHdpbGwKICAgICBmYWlsIGluIHZhcmlvdXMgd2F5cy4KICAgICAiIiIKLQot
ICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgid2luMzIiKToKLSAgICAgICAgcmV0
dXJuCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgY29sb3JhbWEgICMgbm9xYQotICAgIGV4Y2Vw
dCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcGFzcworICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3
aXRoKCJ3aW4zMiIpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBpbXBvcnQgY29sb3JhbWEg
ICMgbm9xYTogRjQwMQorICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICBw
YXNzCiAKIAogZGVmIF9yZWFkbGluZV93b3JrYXJvdW5kKCk6CkBAIC02NTAsMTMgKzc3OCwxMSBA
QCBkZWYgX3JlYWRsaW5lX3dvcmthcm91bmQoKToKIAogICAgIFNlZSBodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xMjgxCiAgICAgIiIiCi0KLSAgICBpZiBub3Qgc3lz
LnBsYXRmb3JtLnN0YXJ0c3dpdGgoIndpbjMyIik6Ci0gICAgICAgIHJldHVybgotICAgIHRyeToK
LSAgICAgICAgaW1wb3J0IHJlYWRsaW5lICAjIG5vcWEKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6
Ci0gICAgICAgIHBhc3MKKyAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgid2luMzIiKToK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW1wb3J0IHJlYWRsaW5lICAjIG5vcWE6IEY0MDEK
KyAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICAgICAgcGFzcwogCiAKIGRlZiBf
cHkzNl93aW5kb3dzY29uc29sZWlvX3dvcmthcm91bmQoc3RyZWFtKToKQEAgLTcwOCw5ICs4MzQs
OSBAQCBkZWYgX3B5MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJvdW5kKHN0cmVhbSk6CiAgICAg
ICAgICAgICBmLmxpbmVfYnVmZmVyaW5nLAogICAgICAgICApCiAKLSAgICBzeXMuX19zdGRpbl9f
ID0gc3lzLnN0ZGluID0gX3Jlb3Blbl9zdGRpbyhzeXMuc3RkaW4sICJyYiIpCi0gICAgc3lzLl9f
c3Rkb3V0X18gPSBzeXMuc3Rkb3V0ID0gX3Jlb3Blbl9zdGRpbyhzeXMuc3Rkb3V0LCAid2IiKQot
ICAgIHN5cy5fX3N0ZGVycl9fID0gc3lzLnN0ZGVyciA9IF9yZW9wZW5fc3RkaW8oc3lzLnN0ZGVy
ciwgIndiIikKKyAgICBzeXMuc3RkaW4gPSBfcmVvcGVuX3N0ZGlvKHN5cy5zdGRpbiwgInJiIikK
KyAgICBzeXMuc3Rkb3V0ID0gX3Jlb3Blbl9zdGRpbyhzeXMuc3Rkb3V0LCAid2IiKQorICAgIHN5
cy5zdGRlcnIgPSBfcmVvcGVuX3N0ZGlvKHN5cy5zdGRlcnIsICJ3YiIpCiAKIAogZGVmIF9hdHRl
bXB0X3RvX2Nsb3NlX2NhcHR1cmVfZmlsZShmKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L2NvbXBhdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbXBhdC5weQpp
bmRleCA3YWJkM2Q1M2ZmOTEyMmJhNzk2ZTNmN2EwYmFmZGFiNjM2MDkwMzgyLi5kMGFkZDUzMDI2
ODIwNGIwN2M3MGNjMDZhYTkyNzVkZWI0OTk3ZjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9jb21wYXQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29tcGF0
LnB5CkBAIC0xLDIwICsxLDI3IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiCiBweXRo
b24gdmVyc2lvbiBjb21wYXRpYmlsaXR5IGNvZGUKICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNp
b24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IGNvZGVj
cwogaW1wb3J0IGZ1bmN0b29scwogaW1wb3J0IGluc3BlY3QKIGltcG9ydCByZQogaW1wb3J0IHN5
cworZnJvbSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcgogCitpbXBvcnQgYXR0cgog
aW1wb3J0IHB5CitpbXBvcnQgc2l4Citmcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCiAKIGltcG9y
dCBfcHl0ZXN0Citmcm9tIF9weXRlc3QuX2lvLnNhZmVyZXByIGltcG9ydCBzYWZlcmVwcgorZnJv
bSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsCiBmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1w
b3J0IFRFU1RfT1VUQ09NRQotZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQotaW1wb3J0IHNpeAog
CiB0cnk6CiAgICAgaW1wb3J0IGVudW0KQEAgLTIyLDcgKzI5LDYgQEAgZXhjZXB0IEltcG9ydEVy
cm9yOiAgIyBwcmFnbWE6IG5vIGNvdmVyCiAgICAgIyBPbmx5IGF2YWlsYWJsZSBpbiBQeXRob24g
My40KyBvciBhcyBhIGJhY2twb3J0CiAgICAgZW51bSA9IE5vbmUKIAotCiBfUFkzID0gc3lzLnZl
cnNpb25faW5mbyA+ICgzLCAwKQogX1BZMiA9IG5vdCBfUFkzCiAKQEAgLTMyLDIxICszOCwzNCBA
QCBpZiBfUFkzOgogZWxzZToKICAgICBmcm9tIGZ1bmNzaWdzIGltcG9ydCBzaWduYXR1cmUsIFBh
cmFtZXRlciBhcyBQYXJhbWV0ZXIKIAotCi1Ob25lVHlwZSA9IHR5cGUoTm9uZSkKIE5PVFNFVCA9
IG9iamVjdCgpCiAKIFBZMzUgPSBzeXMudmVyc2lvbl9pbmZvWzoyXSA+PSAoMywgNSkKIFBZMzYg
PSBzeXMudmVyc2lvbl9pbmZvWzoyXSA+PSAoMywgNikKIE1PRFVMRV9OT1RfRk9VTkRfRVJST1Ig
PSAiTW9kdWxlTm90Rm91bmRFcnJvciIgaWYgUFkzNiBlbHNlICJJbXBvcnRFcnJvciIKIAorCiBp
ZiBfUFkzOgotICAgIGZyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBNdXRhYmxlTWFwcGluZyBh
cyBNYXBwaW5nTWl4aW4gICMgbm9xYQotICAgIGZyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBN
YXBwaW5nLCBTZXF1ZW5jZSAgIyBub3FhCisgICAgZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0
IE11dGFibGVNYXBwaW5nIGFzIE1hcHBpbmdNaXhpbgorICAgIGZyb20gY29sbGVjdGlvbnMuYWJj
IGltcG9ydCBJdGVyYWJsZSwgTWFwcGluZywgU2VxdWVuY2UsIFNpemVkCiBlbHNlOgogICAgICMg
dGhvc2UgcmFpc2UgRGVwcmVjYXRpb25XYXJuaW5ncyBpbiBQeXRob24gPj0zLjcKICAgICBmcm9t
IGNvbGxlY3Rpb25zIGltcG9ydCBNdXRhYmxlTWFwcGluZyBhcyBNYXBwaW5nTWl4aW4gICMgbm9x
YQotICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE1hcHBpbmcsIFNlcXVlbmNlICAjIG5vcWEK
KyAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBJdGVyYWJsZSwgTWFwcGluZywgU2VxdWVuY2Us
IFNpemVkICAjIG5vcWEKKworCitpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA0KToKKyAgICBm
cm9tIGltcG9ydGxpYi51dGlsIGltcG9ydCBzcGVjX2Zyb21fZmlsZV9sb2NhdGlvbgorZWxzZToK
KworICAgIGRlZiBzcGVjX2Zyb21fZmlsZV9sb2NhdGlvbigqXywgKipfXyk6CisgICAgICAgIHJl
dHVybiBOb25lCisKKworaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgOCk6CisgICAgZnJvbSBp
bXBvcnRsaWIgaW1wb3J0IG1ldGFkYXRhIGFzIGltcG9ydGxpYl9tZXRhZGF0YSAgIyBub3FhCitl
bHNlOgorICAgIGltcG9ydCBpbXBvcnRsaWJfbWV0YWRhdGEgICMgbm9xYQogCiAKIGRlZiBfZm9y
bWF0X2FyZ3MoZnVuYyk6CkBAIC03MiwxNiArOTEsMTMgQEAgZGVmIGlzY29yb3V0aW5lZnVuY3Rp
b24oZnVuYyk6CiAgICAgTm90ZTogY29waWVkIGFuZCBtb2RpZmllZCBmcm9tIFB5dGhvbiAzLjUn
cyBidWlsdGluIGNvdXJvdXRpbmVzLnB5IHRvIGF2b2lkIGltcG9ydCBhc3luY2lvIGRpcmVjdGx5
LAogICAgIHdoaWNoIGluIHR1cm5zIGFsc28gaW5pdGlhbGl6ZXMgdGhlICJsb2dnaW5nIiBtb2R1
bGUgYXMgc2lkZS1lZmZlY3QgKHNlZSBpc3N1ZSAjOCkuCiAgICAgIiIiCi0gICAgcmV0dXJuICgK
LSAgICAgICAgZ2V0YXR0cihmdW5jLCAiX2lzX2Nvcm91dGluZSIsIEZhbHNlKQotICAgICAgICBv
ciAoCi0gICAgICAgICAgICBoYXNhdHRyKGluc3BlY3QsICJpc2Nvcm91dGluZWZ1bmN0aW9uIikK
LSAgICAgICAgICAgIGFuZCBpbnNwZWN0LmlzY29yb3V0aW5lZnVuY3Rpb24oZnVuYykKLSAgICAg
ICAgKQorICAgIHJldHVybiBnZXRhdHRyKGZ1bmMsICJfaXNfY29yb3V0aW5lIiwgRmFsc2UpIG9y
ICgKKyAgICAgICAgaGFzYXR0cihpbnNwZWN0LCAiaXNjb3JvdXRpbmVmdW5jdGlvbiIpIGFuZCBp
bnNwZWN0LmlzY29yb3V0aW5lZnVuY3Rpb24oZnVuYykKICAgICApCiAKIAogZGVmIGdldGxvY2F0
aW9uKGZ1bmN0aW9uLCBjdXJkaXIpOgorICAgIGZ1bmN0aW9uID0gZ2V0X3JlYWxfZnVuYyhmdW5j
dGlvbikKICAgICBmbiA9IHB5LnBhdGgubG9jYWwoaW5zcGVjdC5nZXRmaWxlKGZ1bmN0aW9uKSkK
ICAgICBsaW5lbm8gPSBmdW5jdGlvbi5fX2NvZGVfXy5jb19maXJzdGxpbmVubwogICAgIGlmIGZu
LnJlbHRvKGN1cmRpcik6CkBAIC0xMjYsOSArMTQyLDE3IEBAIGRlZiBnZXRmdW5jYXJnbmFtZXMo
ZnVuY3Rpb24sIGlzX21ldGhvZD1GYWxzZSwgY2xzPU5vbmUpOgogICAgICMgb3JkZXJlZCBtYXBw
aW5nIG9mIHBhcmFtZXRlciBuYW1lcyB0byBQYXJhbWV0ZXIgaW5zdGFuY2VzLiAgVGhpcwogICAg
ICMgY3JlYXRlcyBhIHR1cGxlIG9mIHRoZSBuYW1lcyBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IGRv
bid0IGhhdmUKICAgICAjIGRlZmF1bHRzLgorICAgIHRyeToKKyAgICAgICAgcGFyYW1ldGVycyA9
IHNpZ25hdHVyZShmdW5jdGlvbikucGFyYW1ldGVycworICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwg
VHlwZUVycm9yKSBhcyBlOgorICAgICAgICBmYWlsKAorICAgICAgICAgICAgIkNvdWxkIG5vdCBk
ZXRlcm1pbmUgYXJndW1lbnRzIG9mIHshcn06IHt9Ii5mb3JtYXQoZnVuY3Rpb24sIGUpLAorICAg
ICAgICAgICAgcHl0cmFjZT1GYWxzZSwKKyAgICAgICAgKQorCiAgICAgYXJnX25hbWVzID0gdHVw
bGUoCiAgICAgICAgIHAubmFtZQotICAgICAgICBmb3IgcCBpbiBzaWduYXR1cmUoZnVuY3Rpb24p
LnBhcmFtZXRlcnMudmFsdWVzKCkKKyAgICAgICAgZm9yIHAgaW4gcGFyYW1ldGVycy52YWx1ZXMo
KQogICAgICAgICBpZiAoCiAgICAgICAgICAgICBwLmtpbmQgaXMgUGFyYW1ldGVyLlBPU0lUSU9O
QUxfT1JfS0VZV09SRAogICAgICAgICAgICAgb3IgcC5raW5kIGlzIFBhcmFtZXRlci5LRVlXT1JE
X09OTFkKQEAgLTEzOCwyMCArMTYyLDIzIEBAIGRlZiBnZXRmdW5jYXJnbmFtZXMoZnVuY3Rpb24s
IGlzX21ldGhvZD1GYWxzZSwgY2xzPU5vbmUpOgogICAgICMgSWYgdGhpcyBmdW5jdGlvbiBzaG91
bGQgYmUgdHJlYXRlZCBhcyBhIGJvdW5kIG1ldGhvZCBldmVuIHRob3VnaAogICAgICMgaXQncyBw
YXNzZWQgYXMgYW4gdW5ib3VuZCBtZXRob2Qgb3IgZnVuY3Rpb24sIHJlbW92ZSB0aGUgZmlyc3QK
ICAgICAjIHBhcmFtZXRlciBuYW1lLgotICAgIGlmICgKLSAgICAgICAgaXNfbWV0aG9kCi0gICAg
ICAgIG9yICgKLSAgICAgICAgICAgIGNscwotICAgICAgICAgICAgYW5kIG5vdCBpc2luc3RhbmNl
KGNscy5fX2RpY3RfXy5nZXQoZnVuY3Rpb24uX19uYW1lX18sIE5vbmUpLCBzdGF0aWNtZXRob2Qp
Ci0gICAgICAgICkKKyAgICBpZiBpc19tZXRob2Qgb3IgKAorICAgICAgICBjbHMgYW5kIG5vdCBp
c2luc3RhbmNlKGNscy5fX2RpY3RfXy5nZXQoZnVuY3Rpb24uX19uYW1lX18sIE5vbmUpLCBzdGF0
aWNtZXRob2QpCiAgICAgKToKICAgICAgICAgYXJnX25hbWVzID0gYXJnX25hbWVzWzE6XQogICAg
ICMgUmVtb3ZlIGFueSBuYW1lcyB0aGF0IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBtb2Nrcy4KICAg
ICBpZiBoYXNhdHRyKGZ1bmN0aW9uLCAiX193cmFwcGVkX18iKToKLSAgICAgICAgYXJnX25hbWVz
ID0gYXJnX25hbWVzW251bV9tb2NrX3BhdGNoX2FyZ3MoZnVuY3Rpb24pOl0KKyAgICAgICAgYXJn
X25hbWVzID0gYXJnX25hbWVzW251bV9tb2NrX3BhdGNoX2FyZ3MoZnVuY3Rpb24pIDpdCiAgICAg
cmV0dXJuIGFyZ19uYW1lcwogCiAKK0Bjb250ZXh0bWFuYWdlcgorZGVmIGR1bW15X2NvbnRleHRf
bWFuYWdlcigpOgorICAgICIiIkNvbnRleHQgbWFuYWdlciB0aGF0IGRvZXMgbm90aGluZywgdXNl
ZnVsIGluIHNpdHVhdGlvbnMgd2hlcmUgeW91IG1pZ2h0IG5lZWQgYW4gYWN0dWFsIGNvbnRleHQg
bWFuYWdlciBvciBub3QKKyAgICBkZXBlbmRpbmcgb24gc29tZSBjb25kaXRpb24uIFVzaW5nIHRo
aXMgYWxsb3cgdG8ga2VlcCB0aGUgc2FtZSBjb2RlIiIiCisgICAgeWllbGQKKworCiBkZWYgZ2V0
X2RlZmF1bHRfYXJnX25hbWVzKGZ1bmN0aW9uKToKICAgICAjIE5vdGU6IHRoaXMgY29kZSBpbnRl
bnRpb25hbGx5IG1pcnJvcnMgdGhlIGNvZGUgYXQgdGhlIGJlZ2lubmluZyBvZiBnZXRmdW5jYXJn
bmFtZXMsCiAgICAgIyB0byBnZXQgdGhlIGFyZ3VtZW50cyB3aGljaCB3ZXJlIGV4Y2x1ZGVkIGZy
b20gaXRzIHJlc3VsdCBiZWNhdXNlIHRoZXkgaGFkIGRlZmF1bHQgdmFsdWVzCkBAIC0xNjMsNiAr
MTkwLDE4IEBAIGRlZiBnZXRfZGVmYXVsdF9hcmdfbmFtZXMoZnVuY3Rpb24pOgogICAgICkKIAog
Citfbm9uX3ByaW50YWJsZV9hc2NpaV90cmFuc2xhdGVfdGFibGUgPSB7CisgICAgaTogdSJcXHh7
OjAyeH0iLmZvcm1hdChpKSBmb3IgaSBpbiByYW5nZSgxMjgpIGlmIGkgbm90IGluIHJhbmdlKDMy
LCAxMjcpCit9Citfbm9uX3ByaW50YWJsZV9hc2NpaV90cmFuc2xhdGVfdGFibGUudXBkYXRlKAor
ICAgIHtvcmQoIlx0Iik6IHUiXFx0Iiwgb3JkKCJcciIpOiB1IlxcciIsIG9yZCgiXG4iKTogdSJc
XG4ifQorKQorCisKK2RlZiBfdHJhbnNsYXRlX25vbl9wcmludGFibGUocyk6CisgICAgcmV0dXJu
IHMudHJhbnNsYXRlKF9ub25fcHJpbnRhYmxlX2FzY2lpX3RyYW5zbGF0ZV90YWJsZSkKKworCiBp
ZiBfUFkzOgogICAgIFNUUklOR19UWVBFUyA9IGJ5dGVzLCBzdHIKICAgICBVTklDT0RFX1RZUEVT
ID0gc2l4LnRleHRfdHlwZQpAQCAtMjAyLDkgKzI0MSwxMCBAQCBpZiBfUFkzOgogCiAgICAgICAg
ICIiIgogICAgICAgICBpZiBpc2luc3RhbmNlKHZhbCwgYnl0ZXMpOgotICAgICAgICAgICAgcmV0
dXJuIF9ieXRlc190b19hc2NpaSh2YWwpCisgICAgICAgICAgICByZXQgPSBfYnl0ZXNfdG9fYXNj
aWkodmFsKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoInVu
aWNvZGVfZXNjYXBlIikuZGVjb2RlKCJhc2NpaSIpCisgICAgICAgICAgICByZXQgPSB2YWwuZW5j
b2RlKCJ1bmljb2RlX2VzY2FwZSIpLmRlY29kZSgiYXNjaWkiKQorICAgICAgICByZXR1cm4gX3Ry
YW5zbGF0ZV9ub25fcHJpbnRhYmxlKHJldCkKIAogCiBlbHNlOgpAQCAtMjIyLDExICsyNjIsMjQg
QEAgZWxzZToKICAgICAgICAgIiIiCiAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsLCBieXRlcyk6
CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoImFz
Y2lpIikKKyAgICAgICAgICAgICAgICByZXQgPSB2YWwuZGVjb2RlKCJhc2NpaSIpCiAgICAgICAg
ICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgotICAgICAgICAgICAgICAgIHJldHVybiB2
YWwuZW5jb2RlKCJzdHJpbmctZXNjYXBlIikKKyAgICAgICAgICAgICAgICByZXQgPSB2YWwuZW5j
b2RlKCJzdHJpbmctZXNjYXBlIikuZGVjb2RlKCJhc2NpaSIpCiAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICByZXR1cm4gdmFsLmVuY29kZSgidW5pY29kZS1lc2NhcGUiKQorICAgICAgICAgICAg
cmV0ID0gdmFsLmVuY29kZSgidW5pY29kZS1lc2NhcGUiKS5kZWNvZGUoImFzY2lpIikKKyAgICAg
ICAgcmV0dXJuIF90cmFuc2xhdGVfbm9uX3ByaW50YWJsZShyZXQpCisKKworY2xhc3MgX1B5dGVz
dFdyYXBwZXIob2JqZWN0KToKKyAgICAiIiJEdW1teSB3cmFwcGVyIGFyb3VuZCBhIGZ1bmN0aW9u
IG9iamVjdCBmb3IgaW50ZXJuYWwgdXNlIG9ubHkuCisKKyAgICBVc2VkIHRvIGNvcnJlY3RseSB1
bndyYXAgdGhlIHVuZGVybHlpbmcgZnVuY3Rpb24gb2JqZWN0CisgICAgd2hlbiB3ZSBhcmUgY3Jl
YXRpbmcgZml4dHVyZXMsIGJlY2F1c2Ugd2Ugd3JhcCB0aGUgZnVuY3Rpb24gb2JqZWN0IG91cnNl
bHZlcyB3aXRoIGEgZGVjb3JhdG9yCisgICAgdG8gaXNzdWUgd2FybmluZ3Mgd2hlbiB0aGUgZml4
dHVyZSBmdW5jdGlvbiBpcyBjYWxsZWQgZGlyZWN0bHkuCisgICAgIiIiCisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgb2JqKToKKyAgICAgICAgc2VsZi5vYmogPSBvYmoKIAogCiBkZWYgZ2V0X3Jl
YWxfZnVuYyhvYmopOgpAQCAtMjM1LDE0ICsyODgsMjEgQEAgZGVmIGdldF9yZWFsX2Z1bmMob2Jq
KToKICAgICAiIiIKICAgICBzdGFydF9vYmogPSBvYmoKICAgICBmb3IgaSBpbiByYW5nZSgxMDAp
OgorICAgICAgICAjIF9fcHl0ZXN0X3dyYXBwZWRfXyBpcyBzZXQgYnkgQHB5dGVzdC5maXh0dXJl
IHdoZW4gd3JhcHBpbmcgdGhlIGZpeHR1cmUgZnVuY3Rpb24KKyAgICAgICAgIyB0byB0cmlnZ2Vy
IGEgd2FybmluZyBpZiBpdCBnZXRzIGNhbGxlZCBkaXJlY3RseSBpbnN0ZWFkIG9mIGJ5IHB5dGVz
dDogd2UgZG9uJ3QKKyAgICAgICAgIyB3YW50IHRvIHVud3JhcCBmdXJ0aGVyIHRoYW4gdGhpcyBv
dGhlcndpc2Ugd2UgbG9zZSB1c2VmdWwgd3JhcHBpbmdzIGxpa2UgQG1vY2sucGF0Y2ggKCMzNzc0
KQorICAgICAgICBuZXdfb2JqID0gZ2V0YXR0cihvYmosICJfX3B5dGVzdF93cmFwcGVkX18iLCBO
b25lKQorICAgICAgICBpZiBpc2luc3RhbmNlKG5ld19vYmosIF9QeXRlc3RXcmFwcGVyKToKKyAg
ICAgICAgICAgIG9iaiA9IG5ld19vYmoub2JqCisgICAgICAgICAgICBicmVhawogICAgICAgICBu
ZXdfb2JqID0gZ2V0YXR0cihvYmosICJfX3dyYXBwZWRfXyIsIE5vbmUpCiAgICAgICAgIGlmIG5l
d19vYmogaXMgTm9uZToKICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgIG9iaiA9IG5ld19vYmoK
ICAgICBlbHNlOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgKCJjb3Vs
ZCBub3QgZmluZCByZWFsIGZ1bmN0aW9uIG9mIHtzdGFydH0iICJcbnN0b3BwZWQgYXQge2N1cnJl
bnR9IikuZm9ybWF0KAotICAgICAgICAgICAgICAgIHN0YXJ0PXB5LmlvLnNhZmVyZXByKHN0YXJ0
X29iaiksIGN1cnJlbnQ9cHkuaW8uc2FmZXJlcHIob2JqKQorICAgICAgICAgICAgKCJjb3VsZCBu
b3QgZmluZCByZWFsIGZ1bmN0aW9uIG9mIHtzdGFydH1cbnN0b3BwZWQgYXQge2N1cnJlbnR9Iiku
Zm9ybWF0KAorICAgICAgICAgICAgICAgIHN0YXJ0PXNhZmVyZXByKHN0YXJ0X29iaiksIGN1cnJl
bnQ9c2FmZXJlcHIob2JqKQogICAgICAgICAgICAgKQogICAgICAgICApCiAgICAgaWYgaXNpbnN0
YW5jZShvYmosIGZ1bmN0b29scy5wYXJ0aWFsKToKQEAgLTI1MCw2ICszMTAsMjEgQEAgZGVmIGdl
dF9yZWFsX2Z1bmMob2JqKToKICAgICByZXR1cm4gb2JqCiAKIAorZGVmIGdldF9yZWFsX21ldGhv
ZChvYmosIGhvbGRlcik6CisgICAgIiIiCisgICAgQXR0ZW1wdHMgdG8gb2J0YWluIHRoZSByZWFs
IGZ1bmN0aW9uIG9iamVjdCB0aGF0IG1pZ2h0IGJlIHdyYXBwaW5nIGBgb2JqYGAsIHdoaWxlIGF0
IHRoZSBzYW1lIHRpbWUKKyAgICByZXR1cm5pbmcgYSBib3VuZCBtZXRob2QgdG8gYGBob2xkZXJg
YCBpZiB0aGUgb3JpZ2luYWwgb2JqZWN0IHdhcyBhIGJvdW5kIG1ldGhvZC4KKyAgICAiIiIKKyAg
ICB0cnk6CisgICAgICAgIGlzX21ldGhvZCA9IGhhc2F0dHIob2JqLCAiX19mdW5jX18iKQorICAg
ICAgICBvYmogPSBnZXRfcmVhbF9mdW5jKG9iaikKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAg
ICAgICByZXR1cm4gb2JqCisgICAgaWYgaXNfbWV0aG9kIGFuZCBoYXNhdHRyKG9iaiwgIl9fZ2V0
X18iKSBhbmQgY2FsbGFibGUob2JqLl9fZ2V0X18pOgorICAgICAgICBvYmogPSBvYmouX19nZXRf
Xyhob2xkZXIpCisgICAgcmV0dXJuIG9iagorCisKIGRlZiBnZXRmc2xpbmVubyhvYmopOgogICAg
ICMgeHh4IGxldCBkZWNvcmF0b3JzIGV0YyBzcGVjaWZ5IGEgc2FuZSBvcmRlcmluZwogICAgIG9i
aiA9IGdldF9yZWFsX2Z1bmMob2JqKQpAQCAtMjgxLDYgKzM1NiwxNCBAQCBkZWYgc2FmZV9nZXRh
dHRyKG9iamVjdCwgbmFtZSwgZGVmYXVsdCk6CiAgICAgICAgIHJldHVybiBkZWZhdWx0CiAKIAor
ZGVmIHNhZmVfaXNjbGFzcyhvYmopOgorICAgICIiIklnbm9yZSBhbnkgZXhjZXB0aW9uIHZpYSBp
c2luc3RhbmNlIG9uIFB5dGhvbiAzLiIiIgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIGlzY2xh
c3Mob2JqKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHJldHVybiBGYWxzZQorCisK
IGRlZiBfaXNfdW5pdHRlc3RfdW5leHBlY3RlZF9zdWNjZXNzX2FfZmFpbHVyZSgpOgogICAgICIi
IlJldHVybiBpZiB0aGUgdGVzdCBzdWl0ZSBzaG91bGQgZmFpbCBpZiBhbiBAZXhwZWN0ZWRGYWls
dXJlIHVuaXR0ZXN0IHRlc3QgUEFTU0VTLgogCkBAIC0zMDEsNyArMzg0LDcgQEAgaWYgX1BZMzoK
IGVsc2U6CiAKICAgICBkZWYgc2FmZV9zdHIodik6Ci0gICAgICAgICIiInJldHVybnMgdiBhcyBz
dHJpbmcsIGNvbnZlcnRpbmcgdG8gYXNjaWkgaWYgbmVjZXNzYXJ5IiIiCisgICAgICAgICIiInJl
dHVybnMgdiBhcyBzdHJpbmcsIGNvbnZlcnRpbmcgdG8gdXRmLTggaWYgbmVjZXNzYXJ5IiIiCiAg
ICAgICAgIHRyeToKICAgICAgICAgICAgIHJldHVybiBzdHIodikKICAgICAgICAgZXhjZXB0IFVu
aWNvZGVFcnJvcjoKQEAgLTMxNCw3ICszOTcsNiBAQCBlbHNlOgogQ09MTEVDVF9GQUtFTU9EVUxF
X0FUVFJJQlVURVMgPSAoCiAgICAgIkNvbGxlY3RvciIsCiAgICAgIk1vZHVsZSIsCi0gICAgIkdl
bmVyYXRvciIsCiAgICAgIkZ1bmN0aW9uIiwKICAgICAiSW5zdGFuY2UiLAogICAgICJTZXNzaW9u
IiwKQEAgLTMzMSw4ICs0MTMsOCBAQCBkZWYgX3NldHVwX2NvbGxlY3RfZmFrZW1vZHVsZSgpOgog
CiAgICAgcHl0ZXN0LmNvbGxlY3QgPSBNb2R1bGVUeXBlKCJweXRlc3QuY29sbGVjdCIpCiAgICAg
cHl0ZXN0LmNvbGxlY3QuX19hbGxfXyA9IFtdICAjIHVzZWQgZm9yIHNldG5zCi0gICAgZm9yIGF0
dHIgaW4gQ09MTEVDVF9GQUtFTU9EVUxFX0FUVFJJQlVURVM6Ci0gICAgICAgIHNldGF0dHIocHl0
ZXN0LmNvbGxlY3QsIGF0dHIsIGdldGF0dHIocHl0ZXN0LCBhdHRyKSkKKyAgICBmb3IgYXR0cmli
dXRlIGluIENPTExFQ1RfRkFLRU1PRFVMRV9BVFRSSUJVVEVTOgorICAgICAgICBzZXRhdHRyKHB5
dGVzdC5jb2xsZWN0LCBhdHRyaWJ1dGUsIGdldGF0dHIocHl0ZXN0LCBhdHRyaWJ1dGUpKQogCiAK
IGlmIF9QWTI6CkBAIC0zNDAsNyArNDIyLDYgQEAgaWYgX1BZMjoKICAgICBmcm9tIHB5LmlvIGlt
cG9ydCBUZXh0SU8KIAogICAgIGNsYXNzIENhcHR1cmVJTyhUZXh0SU8pOgotCiAgICAgICAgIEBw
cm9wZXJ0eQogICAgICAgICBkZWYgZW5jb2Rpbmcoc2VsZik6CiAgICAgICAgICAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLCAiX2VuY29kaW5nIiwgIlVURi04IikKQEAgLTM1MCw3ICs0MzEsNiBAQCBl
bHNlOgogICAgIGltcG9ydCBpbwogCiAgICAgY2xhc3MgQ2FwdHVyZUlPKGlvLlRleHRJT1dyYXBw
ZXIpOgotCiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgICAgIHN1cGVyKENh
cHR1cmVJTywgc2VsZikuX19pbml0X18oCiAgICAgICAgICAgICAgICAgaW8uQnl0ZXNJTygpLCBl
bmNvZGluZz0iVVRGLTgiLCBuZXdsaW5lPSIiLCB3cml0ZV90aHJvdWdoPVRydWUKQEAgLTM2OSwz
ICs0NDksMjIgQEAgY2xhc3MgRnVuY2FyZ25hbWVzQ29tcGF0QXR0cihvYmplY3QpOgogICAgIGRl
ZiBmdW5jYXJnbmFtZXMoc2VsZik6CiAgICAgICAgICIiIiBhbGlhcyBhdHRyaWJ1dGUgZm9yIGBg
Zml4dHVyZW5hbWVzYGAgZm9yIHByZS0yLjMgY29tcGF0aWJpbGl0eSIiIgogICAgICAgICByZXR1
cm4gc2VsZi5maXh0dXJlbmFtZXMKKworCitpZiBzaXguUFkyOgorCisgICAgZGVmIGxydV9jYWNo
ZSgqXywgKipfXyk6CisgICAgICAgIGRlZiBkZWMoZm4pOgorICAgICAgICAgICAgcmV0dXJuIGZu
CisKKyAgICAgICAgcmV0dXJuIGRlYworCisKK2Vsc2U6CisgICAgZnJvbSBmdW5jdG9vbHMgaW1w
b3J0IGxydV9jYWNoZSAgIyBub3FhOiBGNDAxCisKKworaWYgZ2V0YXR0cihhdHRyLCAiX192ZXJz
aW9uX2luZm9fXyIsICgpKSA+PSAoMTksIDIpOgorICAgIEFUVFJTX0VRX0ZJRUxEID0gImVxIgor
ZWxzZToKKyAgICBBVFRSU19FUV9GSUVMRCA9ICJjbXAiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9jb25maWcvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVz
dC9jb25maWcvX19pbml0X18ucHkKaW5kZXggMTEzNDhiODBkMGYwOTgzZTdkM2EyMGJhYTUzMGFk
ZDViZjlkZDk4Mi4uMDczN2ZmOWQ1MWM0ZDk4MTQ3ZWQ4ZTY5ZmIwNGYxMWFiMmVhOWI1MiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL19faW5pdF9fLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbmZpZy9fX2luaXRfXy5weQpAQCAtMSw0NyArMSw1
NCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIiBjb21tYW5kIGxpbmUgb3B0aW9ucywg
aW5pLWZpbGUgYW5kIGNvbmZ0ZXN0LnB5IHByb2Nlc3NpbmcuICIiIgotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
ZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0
IGFyZ3BhcnNlCitpbXBvcnQgY29weQoraW1wb3J0IGluc3BlY3QKK2ltcG9ydCBvcwogaW1wb3J0
IHNobGV4Ci1pbXBvcnQgdHJhY2ViYWNrCitpbXBvcnQgc3lzCiBpbXBvcnQgdHlwZXMKIGltcG9y
dCB3YXJuaW5ncwotaW1wb3J0IGNvcHkKLWltcG9ydCBzaXgKLWltcG9ydCBweQogCi0jIERPTid0
IGltcG9ydCBweXRlc3QgaGVyZSBiZWNhdXNlIGl0IGNhdXNlcyBpbXBvcnQgY3ljbGUgdHJvdWJs
ZXMKLWltcG9ydCBzeXMKLWltcG9ydCBvcwotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBT
a2lwcGVkCitpbXBvcnQgYXR0cgoraW1wb3J0IHB5CitpbXBvcnQgc2l4Citmcm9tIHBhY2thZ2lu
Zy52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCitmcm9tIHBsdWdneSBpbXBvcnQgSG9va2ltcGxNYXJr
ZXIKK2Zyb20gcGx1Z2d5IGltcG9ydCBIb29rc3BlY01hcmtlcgorZnJvbSBwbHVnZ3kgaW1wb3J0
IFBsdWdpbk1hbmFnZXIKIAogaW1wb3J0IF9weXRlc3QuX2NvZGUKLWltcG9ydCBfcHl0ZXN0Lmhv
b2tzcGVjICAjIHRoZSBleHRlbnNpb24gcG9pbnQgZGVmaW5pdGlvbnMKIGltcG9ydCBfcHl0ZXN0
LmFzc2VydGlvbgotZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1hbmFnZXIsIEhvb2tpbXBsTWFy
a2VyLCBIb29rc3BlY01hcmtlcgoraW1wb3J0IF9weXRlc3QuaG9va3NwZWMgICMgdGhlIGV4dGVu
c2lvbiBwb2ludCBkZWZpbml0aW9ucworZnJvbSAuZXhjZXB0aW9ucyBpbXBvcnQgUHJpbnRIZWxw
Citmcm9tIC5leGNlcHRpb25zIGltcG9ydCBVc2FnZUVycm9yCitmcm9tIC5maW5kcGF0aHMgaW1w
b3J0IGRldGVybWluZV9zZXR1cAorZnJvbSAuZmluZHBhdGhzIGltcG9ydCBleGlzdHMKK2Zyb20g
X3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAorZnJvbSBfcHl0ZXN0Ll9jb2RlIGltcG9ydCBFeGNl
cHRpb25JbmZvCitmcm9tIF9weXRlc3QuX2NvZGUgaW1wb3J0IGZpbHRlcl90cmFjZWJhY2sKK2Zy
b20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGltcG9ydGxpYl9tZXRhZGF0YQorZnJvbSBfcHl0ZXN0
LmNvbXBhdCBpbXBvcnQgbHJ1X2NhY2hlCiBmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBzYWZl
X3N0cgotZnJvbSAuZXhjZXB0aW9ucyBpbXBvcnQgVXNhZ2VFcnJvciwgUHJpbnRIZWxwCi1mcm9t
IC5maW5kcGF0aHMgaW1wb3J0IGRldGVybWluZV9zZXR1cCwgZXhpc3RzCitmcm9tIF9weXRlc3Qu
b3V0Y29tZXMgaW1wb3J0IGZhaWwKK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgU2tpcHBl
ZAorZnJvbSBfcHl0ZXN0LnBhdGhsaWIgaW1wb3J0IFBhdGgKK2Zyb20gX3B5dGVzdC53YXJuaW5n
X3R5cGVzIGltcG9ydCBQeXRlc3RDb25maWdXYXJuaW5nCiAKIGhvb2tpbXBsID0gSG9va2ltcGxN
YXJrZXIoInB5dGVzdCIpCiBob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJweXRlc3QiKQogCi0j
IHB5dGVzdCBzdGFydHVwCi0jCi0KIAogY2xhc3MgQ29uZnRlc3RJbXBvcnRGYWlsdXJlKEV4Y2Vw
dGlvbik6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCwgZXhjaW5mbyk6CiAgICAgICAg
IEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBwYXRoLCBleGNpbmZvKQogICAgICAgICBzZWxmLnBh
dGggPSBwYXRoCiAgICAgICAgIHNlbGYuZXhjaW5mbyA9IGV4Y2luZm8KIAotICAgIGRlZiBfX3N0
cl9fKHNlbGYpOgotICAgICAgICBldHlwZSwgZXZhbHVlLCBldGIgPSBzZWxmLmV4Y2luZm8KLSAg
ICAgICAgZm9ybWF0dGVkID0gdHJhY2ViYWNrLmZvcm1hdF90YihldGIpCi0gICAgICAgICMgVGhl
IGxldmVsIG9mIHRoZSB0cmFjZWJhY2tzIHdlIHdhbnQgdG8gcHJpbnQgaXMgaGFuZCBjcmFmdGVk
IDooCi0gICAgICAgIHJldHVybiByZXByKGV2YWx1ZSkgKyAiXG4iICsgIiIuam9pbihmb3JtYXR0
ZWRbMjpdKQotCiAKIGRlZiBtYWluKGFyZ3M9Tm9uZSwgcGx1Z2lucz1Ob25lKToKICAgICAiIiIg
cmV0dXJuIGV4aXQgY29kZSwgYWZ0ZXIgcGVyZm9ybWluZyBhbiBpbi1wcm9jZXNzIHRlc3QgcnVu
LgpAQCAtNTEsMTQgKzU4LDI2IEBAIGRlZiBtYWluKGFyZ3M9Tm9uZSwgcGx1Z2lucz1Ob25lKToK
ICAgICA6YXJnIHBsdWdpbnM6IGxpc3Qgb2YgcGx1Z2luIG9iamVjdHMgdG8gYmUgYXV0by1yZWdp
c3RlcmVkIGR1cmluZwogICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24uCiAgICAgIiIi
CisgICAgZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfVVNBR0VFUlJPUgorCiAgICAgdHJ5
OgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBjb25maWcgPSBfcHJlcGFyZWNvbmZpZyhhcmdz
LCBwbHVnaW5zKQogICAgICAgICBleGNlcHQgQ29uZnRlc3RJbXBvcnRGYWlsdXJlIGFzIGU6Cisg
ICAgICAgICAgICBleGNfaW5mbyA9IEV4Y2VwdGlvbkluZm8oZS5leGNpbmZvKQogICAgICAgICAg
ICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihzeXMuc3RkZXJyKQotICAgICAgICAgICAgZm9y
IGxpbmUgaW4gdHJhY2ViYWNrLmZvcm1hdF9leGNlcHRpb24oKmUuZXhjaW5mbyk6CisgICAgICAg
ICAgICB0dy5saW5lKAorICAgICAgICAgICAgICAgICJJbXBvcnRFcnJvciB3aGlsZSBsb2FkaW5n
IGNvbmZ0ZXN0ICd7ZS5wYXRofScuIi5mb3JtYXQoZT1lKSwgcmVkPVRydWUKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIGV4Y19pbmZvLnRyYWNlYmFjayA9IGV4Y19pbmZvLnRyYWNlYmFjay5m
aWx0ZXIoZmlsdGVyX3RyYWNlYmFjaykKKyAgICAgICAgICAgIGV4Y19yZXByID0gKAorICAgICAg
ICAgICAgICAgIGV4Y19pbmZvLmdldHJlcHIoc3R5bGU9InNob3J0IiwgY2hhaW49RmFsc2UpCisg
ICAgICAgICAgICAgICAgaWYgZXhjX2luZm8udHJhY2ViYWNrCisgICAgICAgICAgICAgICAgZWxz
ZSBleGNfaW5mby5leGNvbmx5KCkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGZvcm1hdHRl
ZF90YiA9IHNhZmVfc3RyKGV4Y19yZXByKQorICAgICAgICAgICAgZm9yIGxpbmUgaW4gZm9ybWF0
dGVkX3RiLnNwbGl0bGluZXMoKToKICAgICAgICAgICAgICAgICB0dy5saW5lKGxpbmUucnN0cmlw
KCksIHJlZD1UcnVlKQotICAgICAgICAgICAgdHcubGluZSgiRVJST1I6IGNvdWxkIG5vdCBsb2Fk
ICVzXG4iICUgKGUucGF0aCwpLCByZWQ9VHJ1ZSkKICAgICAgICAgICAgIHJldHVybiA0CiAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICB0cnk6CkBAIC02OSwxMCArODgsMTAgQEAgZGVmIG1haW4o
YXJncz1Ob25lLCBwbHVnaW5zPU5vbmUpOgogICAgICAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3Jp
dGVyKHN5cy5zdGRlcnIpCiAgICAgICAgIGZvciBtc2cgaW4gZS5hcmdzOgogICAgICAgICAgICAg
dHcubGluZSgiRVJST1I6IHt9XG4iLmZvcm1hdChtc2cpLCByZWQ9VHJ1ZSkKLSAgICAgICAgcmV0
dXJuIDQKKyAgICAgICAgcmV0dXJuIEVYSVRfVVNBR0VFUlJPUgogCiAKLWNsYXNzIGNtZGxpbmUo
b2JqZWN0KTogICMgTk9RQSBjb21wYXRpYmlsaXR5IG5hbWVzcGFjZQorY2xhc3MgY21kbGluZShv
YmplY3QpOiAgIyBjb21wYXRpYmlsaXR5IG5hbWVzcGFjZQogICAgIG1haW4gPSBzdGF0aWNtZXRo
b2QobWFpbikKIAogCkBAIC05OCwxMyArMTE3LDE4IEBAIGRlZiBkaXJlY3RvcnlfYXJnKHBhdGgs
IG9wdG5hbWUpOgogICAgIHJldHVybiBwYXRoCiAKIAotZGVmYXVsdF9wbHVnaW5zID0gKAorIyBQ
bHVnaW5zIHRoYXQgY2Fubm90IGJlIGRpc2FibGVkIHZpYSAiLXAgbm86WCIgY3VycmVudGx5Lgor
ZXNzZW50aWFsX3BsdWdpbnMgPSAoCiAgICAgIm1hcmsiLAogICAgICJtYWluIiwKLSAgICAidGVy
bWluYWwiLAogICAgICJydW5uZXIiLAotICAgICJweXRob24iLAogICAgICJmaXh0dXJlcyIsCisg
ICAgImhlbHBjb25maWciLCAgIyBQcm92aWRlcyAtcC4KKykKKworZGVmYXVsdF9wbHVnaW5zID0g
ZXNzZW50aWFsX3BsdWdpbnMgKyAoCisgICAgInB5dGhvbiIsCisgICAgInRlcm1pbmFsIiwKICAg
ICAiZGVidWdnaW5nIiwKICAgICAidW5pdHRlc3QiLAogICAgICJjYXB0dXJlIiwKQEAgLTExMyw3
ICsxMzcsNiBAQCBkZWZhdWx0X3BsdWdpbnMgPSAoCiAgICAgIm1vbmtleXBhdGNoIiwKICAgICAi
cmVjd2FybiIsCiAgICAgInBhc3RlYmluIiwKLSAgICAiaGVscGNvbmZpZyIsCiAgICAgIm5vc2Ui
LAogICAgICJhc3NlcnRpb24iLAogICAgICJqdW5pdHhtbCIsCkBAIC0xMjMsMTkgKzE0NiwzMCBA
QCBkZWZhdWx0X3BsdWdpbnMgPSAoCiAgICAgImZyZWV6ZV9zdXBwb3J0IiwKICAgICAic2V0dXBv
bmx5IiwKICAgICAic2V0dXBwbGFuIiwKKyAgICAic3RlcHdpc2UiLAogICAgICJ3YXJuaW5ncyIs
CiAgICAgImxvZ2dpbmciLAorICAgICJyZXBvcnRzIiwKICkKIAotCiBidWlsdGluX3BsdWdpbnMg
PSBzZXQoZGVmYXVsdF9wbHVnaW5zKQogYnVpbHRpbl9wbHVnaW5zLmFkZCgicHl0ZXN0ZXIiKQog
CiAKLWRlZiBnZXRfY29uZmlnKCk6CitkZWYgZ2V0X2NvbmZpZyhhcmdzPU5vbmUsIHBsdWdpbnM9
Tm9uZSk6CiAgICAgIyBzdWJzZXF1ZW50IGNhbGxzIHRvIG1haW4gd2lsbCBjcmVhdGUgYSBmcmVz
aCBpbnN0YW5jZQogICAgIHBsdWdpbm1hbmFnZXIgPSBQeXRlc3RQbHVnaW5NYW5hZ2VyKCkKLSAg
ICBjb25maWcgPSBDb25maWcocGx1Z2lubWFuYWdlcikKKyAgICBjb25maWcgPSBDb25maWcoCisg
ICAgICAgIHBsdWdpbm1hbmFnZXIsCisgICAgICAgIGludm9jYXRpb25fcGFyYW1zPUNvbmZpZy5J
bnZvY2F0aW9uUGFyYW1zKAorICAgICAgICAgICAgYXJncz1hcmdzLCBwbHVnaW5zPXBsdWdpbnMs
IGRpcj1QYXRoKCkucmVzb2x2ZSgpCisgICAgICAgICksCisgICAgKQorCisgICAgaWYgYXJncyBp
cyBub3QgTm9uZToKKyAgICAgICAgIyBIYW5kbGUgYW55ICItcCBubzpwbHVnaW4iIGFyZ3MuCisg
ICAgICAgIHBsdWdpbm1hbmFnZXIuY29uc2lkZXJfcHJlcGFyc2UoYXJncykKKwogICAgIGZvciBz
cGVjIGluIGRlZmF1bHRfcGx1Z2luczoKICAgICAgICAgcGx1Z2lubWFuYWdlci5pbXBvcnRfcGx1
Z2luKHNwZWMpCiAgICAgcmV0dXJuIGNvbmZpZwpAQCAtMTYwLDEzICsxOTQsMTAgQEAgZGVmIF9w
cmVwYXJlY29uZmlnKGFyZ3M9Tm9uZSwgcGx1Z2lucz1Ob25lKToKICAgICBlbGlmIGlzaW5zdGFu
Y2UoYXJncywgcHkucGF0aC5sb2NhbCk6CiAgICAgICAgIGFyZ3MgPSBbc3RyKGFyZ3MpXQogICAg
IGVsaWYgbm90IGlzaW5zdGFuY2UoYXJncywgKHR1cGxlLCBsaXN0KSk6Ci0gICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKGFyZ3MsIHN0cik6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJu
b3QgYSBzdHJpbmcgb3IgYXJndW1lbnQgbGlzdDogJXIiICUgKGFyZ3MsKSkKLSAgICAgICAgYXJn
cyA9IHNobGV4LnNwbGl0KGFyZ3MsIHBvc2l4PXN5cy5wbGF0Zm9ybSAhPSAid2luMzIiKQotICAg
ICAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKKyAgICAgICAgbXNnID0gImBhcmdz
YCBwYXJhbWV0ZXIgZXhwZWN0ZWQgdG8gYmUgYSBsaXN0IG9yIHR1cGxlIG9mIHN0cmluZ3MsIGdv
dDogeyFyfSAodHlwZToge30pIgorICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnLmZvcm1hdChh
cmdzLCB0eXBlKGFyZ3MpKSkKIAotICAgICAgICB3YXJuaW5nID0gZGVwcmVjYXRlZC5NQUlOX1NU
Ul9BUkdTCi0gICAgY29uZmlnID0gZ2V0X2NvbmZpZygpCisgICAgY29uZmlnID0gZ2V0X2NvbmZp
ZyhhcmdzLCBwbHVnaW5zKQogICAgIHBsdWdpbm1hbmFnZXIgPSBjb25maWcucGx1Z2lubWFuYWdl
cgogICAgIHRyeToKICAgICAgICAgaWYgcGx1Z2luczoKQEAgLTE3Niw3ICsyMDcsOSBAQCBkZWYg
X3ByZXBhcmVjb25maWcoYXJncz1Ob25lLCBwbHVnaW5zPU5vbmUpOgogICAgICAgICAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHBsdWdpbm1hbmFnZXIucmVnaXN0ZXIocGx1Z2lu
KQogICAgICAgICBpZiB3YXJuaW5nOgotICAgICAgICAgICAgY29uZmlnLndhcm4oIkMxIiwgd2Fy
bmluZykKKyAgICAgICAgICAgIGZyb20gX3B5dGVzdC53YXJuaW5ncyBpbXBvcnQgX2lzc3VlX3dh
cm5pbmdfY2FwdHVyZWQKKworICAgICAgICAgICAgX2lzc3VlX3dhcm5pbmdfY2FwdHVyZWQod2Fy
bmluZywgaG9vaz1jb25maWcuaG9vaywgc3RhY2tsZXZlbD00KQogICAgICAgICByZXR1cm4gcGx1
Z2lubWFuYWdlci5ob29rLnB5dGVzdF9jbWRsaW5lX3BhcnNlKAogICAgICAgICAgICAgcGx1Z2lu
bWFuYWdlcj1wbHVnaW5tYW5hZ2VyLCBhcmdzPWFyZ3MKICAgICAgICAgKQpAQCAtMjAwLDcgKzIz
Myw3IEBAIGNsYXNzIFB5dGVzdFBsdWdpbk1hbmFnZXIoUGx1Z2luTWFuYWdlcik6CiAgICAgICAg
IHNlbGYuX2NvbmZ0ZXN0X3BsdWdpbnMgPSBzZXQoKQogCiAgICAgICAgICMgc3RhdGUgcmVsYXRl
ZCB0byBsb2NhbCBjb25mdGVzdCBwbHVnaW5zCi0gICAgICAgIHNlbGYuX3BhdGgyY29uZm1vZHMg
PSB7fQorICAgICAgICBzZWxmLl9kaXJwYXRoMmNvbmZtb2RzID0ge30KICAgICAgICAgc2VsZi5f
Y29uZnRlc3RwYXRoMm1vZCA9IHt9CiAgICAgICAgIHNlbGYuX2NvbmZjdXRkaXIgPSBOb25lCiAg
ICAgICAgIHNlbGYuX25vY29uZnRlc3QgPSBGYWxzZQpAQCAtMjMwLDE0ICsyNjMsNyBAQCBjbGFz
cyBQeXRlc3RQbHVnaW5NYW5hZ2VyKFBsdWdpbk1hbmFnZXIpOgogICAgICAgICBVc2UgOnB5Om1l
dGg6YHBsdWdneS5QbHVnaW5NYW5hZ2VyLmFkZF9ob29rc3BlY3MgPFBsdWdpbk1hbmFnZXIuYWRk
X2hvb2tzcGVjcz5gCiAgICAgICAgIGluc3RlYWQuCiAgICAgICAgICIiIgotICAgICAgICB3YXJu
aW5nID0gZGljdCgKLSAgICAgICAgICAgIGNvZGU9IkkyIiwKLSAgICAgICAgICAgIGZzbG9jYXRp
b249X3B5dGVzdC5fY29kZS5nZXRmc2xpbmVubyhzeXMuX2dldGZyYW1lKDEpKSwKLSAgICAgICAg
ICAgIG5vZGVpZD1Ob25lLAotICAgICAgICAgICAgbWVzc2FnZT0idXNlIHBsdWdpbm1hbmFnZXIu
YWRkX2hvb2tzcGVjcyBpbnN0ZWFkIG9mICIKLSAgICAgICAgICAgICJkZXByZWNhdGVkIGFkZGhv
b2tzKCkgbWV0aG9kLiIsCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5fd2Fybih3YXJuaW5nKQor
ICAgICAgICB3YXJuaW5ncy53YXJuKGRlcHJlY2F0ZWQuUExVR0lOX01BTkFHRVJfQURESE9PS1Ms
IHN0YWNrbGV2ZWw9MikKICAgICAgICAgcmV0dXJuIHNlbGYuYWRkX2hvb2tzcGVjcyhtb2R1bGVf
b3JfY2xhc3MpCiAKICAgICBkZWYgcGFyc2VfaG9va2ltcGxfb3B0cyhzZWxmLCBwbHVnaW4sIG5h
bWUpOgpAQCAtMjQ2LDIwICsyNzIsMjcgQEAgY2xhc3MgUHl0ZXN0UGx1Z2luTWFuYWdlcihQbHVn
aW5NYW5hZ2VyKToKICAgICAgICAgIyAoc2VlIGlzc3VlICMxMDczKQogICAgICAgICBpZiBub3Qg
bmFtZS5zdGFydHN3aXRoKCJweXRlc3RfIik6CiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAg
IyBpZ25vcmUgc29tZSBoaXN0b3JpYyBzcGVjaWFsIG5hbWVzIHdoaWNoIGNhbiBub3QgYmUgaG9v
a3MgYW55d2F5Ci0gICAgICAgIGlmIG5hbWUgPT0gInB5dGVzdF9wbHVnaW5zIiBvciBuYW1lLnN0
YXJ0c3dpdGgoInB5dGVzdF9mdW5jYXJnX18iKToKKyAgICAgICAgIyBpZ25vcmUgbmFtZXMgd2hp
Y2ggY2FuIG5vdCBiZSBob29rcworICAgICAgICBpZiBuYW1lID09ICJweXRlc3RfcGx1Z2lucyI6
CiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICBtZXRob2QgPSBnZXRhdHRyKHBsdWdpbiwg
bmFtZSkKICAgICAgICAgb3B0cyA9IHN1cGVyKFB5dGVzdFBsdWdpbk1hbmFnZXIsIHNlbGYpLnBh
cnNlX2hvb2tpbXBsX29wdHMocGx1Z2luLCBuYW1lKQogCisgICAgICAgICMgY29uc2lkZXIgb25s
eSBhY3R1YWwgZnVuY3Rpb25zIGZvciBob29rcyAoIzM3NzUpCisgICAgICAgIGlmIG5vdCBpbnNw
ZWN0Lmlzcm91dGluZShtZXRob2QpOgorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgIyBj
b2xsZWN0IHVubWFya2VkIGhvb2tzIGFzIGxvbmcgYXMgdGhleSBoYXZlIHRoZSBgcHl0ZXN0Xycg
cHJlZml4CiAgICAgICAgIGlmIG9wdHMgaXMgTm9uZSBhbmQgbmFtZS5zdGFydHN3aXRoKCJweXRl
c3RfIik6CiAgICAgICAgICAgICBvcHRzID0ge30KLQogICAgICAgICBpZiBvcHRzIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgIyBUT0RPOiBEZXByZWNhdGlvbldhcm5pbmcsIHBlb3BsZSBzaG91
bGQgdXNlIGhvb2tpbXBsCisgICAgICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvNDU2MgorICAgICAgICAgICAga25vd25fbWFya3MgPSB7bS5uYW1l
IGZvciBtIGluIGdldGF0dHIobWV0aG9kLCAicHl0ZXN0bWFyayIsIFtdKX0KKwogICAgICAgICAg
ICAgZm9yIG5hbWUgaW4gKCJ0cnlmaXJzdCIsICJ0cnlsYXN0IiwgIm9wdGlvbmFsaG9vayIsICJo
b29rd3JhcHBlciIpOgotICAgICAgICAgICAgICAgIG9wdHMuc2V0ZGVmYXVsdChuYW1lLCBoYXNh
dHRyKG1ldGhvZCwgbmFtZSkpCisgICAgICAgICAgICAgICAgb3B0cy5zZXRkZWZhdWx0KG5hbWUs
IGhhc2F0dHIobWV0aG9kLCBuYW1lKSBvciBuYW1lIGluIGtub3duX21hcmtzKQogICAgICAgICBy
ZXR1cm4gb3B0cwogCiAgICAgZGVmIHBhcnNlX2hvb2tzcGVjX29wdHMoc2VsZiwgbW9kdWxlX29y
X2NsYXNzLCBuYW1lKToKQEAgLTI2OCwxOSArMzAxLDI3IEBAIGNsYXNzIFB5dGVzdFBsdWdpbk1h
bmFnZXIoUGx1Z2luTWFuYWdlcik6CiAgICAgICAgICkKICAgICAgICAgaWYgb3B0cyBpcyBOb25l
OgogICAgICAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihtb2R1bGVfb3JfY2xhc3MsIG5hbWUpCisK
ICAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgicHl0ZXN0XyIpOgorICAgICAgICAgICAg
ICAgICMgdG9kbzogZGVwcmVjYXRlIGhvb2tzcGVjIGhhY2tzCisgICAgICAgICAgICAgICAgIyBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzQ1NjIKKyAgICAgICAg
ICAgICAgICBrbm93bl9tYXJrcyA9IHttLm5hbWUgZm9yIG0gaW4gZ2V0YXR0cihtZXRob2QsICJw
eXRlc3RtYXJrIiwgW10pfQogICAgICAgICAgICAgICAgIG9wdHMgPSB7Ci0gICAgICAgICAgICAg
ICAgICAgICJmaXJzdHJlc3VsdCI6IGhhc2F0dHIobWV0aG9kLCAiZmlyc3RyZXN1bHQiKSwKLSAg
ICAgICAgICAgICAgICAgICAgImhpc3RvcmljIjogaGFzYXR0cihtZXRob2QsICJoaXN0b3JpYyIp
LAorICAgICAgICAgICAgICAgICAgICAiZmlyc3RyZXN1bHQiOiBoYXNhdHRyKG1ldGhvZCwgImZp
cnN0cmVzdWx0IikKKyAgICAgICAgICAgICAgICAgICAgb3IgImZpcnN0cmVzdWx0IiBpbiBrbm93
bl9tYXJrcywKKyAgICAgICAgICAgICAgICAgICAgImhpc3RvcmljIjogaGFzYXR0cihtZXRob2Qs
ICJoaXN0b3JpYyIpCisgICAgICAgICAgICAgICAgICAgIG9yICJoaXN0b3JpYyIgaW4ga25vd25f
bWFya3MsCiAgICAgICAgICAgICAgICAgfQogICAgICAgICByZXR1cm4gb3B0cwogCiAgICAgZGVm
IHJlZ2lzdGVyKHNlbGYsIHBsdWdpbiwgbmFtZT1Ob25lKToKICAgICAgICAgaWYgbmFtZSBpbiBb
InB5dGVzdF9jYXRjaGxvZyIsICJweXRlc3RfY2FwdHVyZWxvZyJdOgotICAgICAgICAgICAgc2Vs
Zi5fd2FybigKLSAgICAgICAgICAgICAgICAie30gcGx1Z2luIGhhcyBiZWVuIG1lcmdlZCBpbnRv
IHRoZSBjb3JlLCAiCi0gICAgICAgICAgICAgICAgInBsZWFzZSByZW1vdmUgaXQgZnJvbSB5b3Vy
IHJlcXVpcmVtZW50cy4iLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgbmFtZS5yZXBsYWNl
KCJfIiwgIi0iKQorICAgICAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICAgICBQ
eXRlc3RDb25maWdXYXJuaW5nKAorICAgICAgICAgICAgICAgICAgICAie30gcGx1Z2luIGhhcyBi
ZWVuIG1lcmdlZCBpbnRvIHRoZSBjb3JlLCAiCisgICAgICAgICAgICAgICAgICAgICJwbGVhc2Ug
cmVtb3ZlIGl0IGZyb20geW91ciByZXF1aXJlbWVudHMuIi5mb3JtYXQoCisgICAgICAgICAgICAg
ICAgICAgICAgICBuYW1lLnJlcGxhY2UoIl8iLCAiLSIpCisgICAgICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICApCiAgICAgICAgICAgICByZXR1cm4KQEAg
LTMxNywxMiArMzU4LDYgQEAgY2xhc3MgUHl0ZXN0UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2Vy
KToKICAgICAgICAgKQogICAgICAgICBzZWxmLl9jb25maWd1cmVkID0gVHJ1ZQogCi0gICAgZGVm
IF93YXJuKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICBrd2FyZ3MgPSBtZXNzYWdlIGlmIGlzaW5z
dGFuY2UobWVzc2FnZSwgZGljdCkgZWxzZSB7Ci0gICAgICAgICAgICAiY29kZSI6ICJJMSIsICJt
ZXNzYWdlIjogbWVzc2FnZSwgImZzbG9jYXRpb24iOiBOb25lLCAibm9kZWlkIjogTm9uZQotICAg
ICAgICB9Ci0gICAgICAgIHNlbGYuaG9vay5weXRlc3RfbG9nd2FybmluZy5jYWxsX2hpc3Rvcmlj
KGt3YXJncz1rd2FyZ3MpCi0KICAgICAjCiAgICAgIyBpbnRlcm5hbCBBUEkgZm9yIGxvY2FsIGNv
bmZ0ZXN0IHBsdWdpbiBoYW5kbGluZwogICAgICMKQEAgLTMzNSwxMCArMzcwLDEzIEBAIGNsYXNz
IFB5dGVzdFBsdWdpbk1hbmFnZXIoUGx1Z2luTWFuYWdlcik6CiAgICAgICAgICAgICBoZXJlLgog
ICAgICAgICAiIiIKICAgICAgICAgY3VycmVudCA9IHB5LnBhdGgubG9jYWwoKQotICAgICAgICBz
ZWxmLl9jb25mY3V0ZGlyID0gY3VycmVudC5qb2luKAotICAgICAgICAgICAgbmFtZXNwYWNlLmNv
bmZjdXRkaXIsIGFicz1UcnVlCi0gICAgICAgICkgaWYgbmFtZXNwYWNlLmNvbmZjdXRkaXIgZWxz
ZSBOb25lCisgICAgICAgIHNlbGYuX2NvbmZjdXRkaXIgPSAoCisgICAgICAgICAgICBjdXJyZW50
LmpvaW4obmFtZXNwYWNlLmNvbmZjdXRkaXIsIGFicz1UcnVlKQorICAgICAgICAgICAgaWYgbmFt
ZXNwYWNlLmNvbmZjdXRkaXIKKyAgICAgICAgICAgIGVsc2UgTm9uZQorICAgICAgICApCiAgICAg
ICAgIHNlbGYuX25vY29uZnRlc3QgPSBuYW1lc3BhY2Uubm9jb25mdGVzdAorICAgICAgICBzZWxm
Ll91c2luZ19weWFyZ3MgPSBuYW1lc3BhY2UucHlhcmdzCiAgICAgICAgIHRlc3RwYXRocyA9IG5h
bWVzcGFjZS5maWxlX29yX2RpcgogICAgICAgICBmb3VuZGFuY2hvciA9IEZhbHNlCiAgICAgICAg
IGZvciBwYXRoIGluIHRlc3RwYXRoczoKQEAgLTM2MiwyOSArNDAwLDM4IEBAIGNsYXNzIFB5dGVz
dFBsdWdpbk1hbmFnZXIoUGx1Z2luTWFuYWdlcik6CiAgICAgICAgICAgICAgICAgaWYgeC5jaGVj
ayhkaXI9MSk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2dldGNvbmZ0ZXN0bW9kdWxlcyh4
KQogCisgICAgQGxydV9jYWNoZShtYXhzaXplPTEyOCkKICAgICBkZWYgX2dldGNvbmZ0ZXN0bW9k
dWxlcyhzZWxmLCBwYXRoKToKICAgICAgICAgaWYgc2VsZi5fbm9jb25mdGVzdDoKICAgICAgICAg
ICAgIHJldHVybiBbXQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcGF0
aDJjb25mbW9kc1twYXRoXQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBp
ZiBwYXRoLmlzZmlsZSgpOgotICAgICAgICAgICAgICAgIGNsaXN0ID0gc2VsZi5fZ2V0Y29uZnRl
c3Rtb2R1bGVzKHBhdGguZGlycGF0aCgpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICAjIFhYWCB0aGVzZSBkYXlzIHdlIG1heSByYXRoZXIgd2FudCB0byB1c2UgY29uZmlnLnJv
b3RkaXIKLSAgICAgICAgICAgICAgICAjIGFuZCBhbGxvdyB1c2VycyB0byBvcHQgaW50byBsb29r
aW5nIGludG8gdGhlIHJvb3RkaXIgcGFyZW50Ci0gICAgICAgICAgICAgICAgIyBkaXJlY3Rvcmll
cyBpbnN0ZWFkIG9mIHJlcXVpcmluZyB0byBzcGVjaWZ5IGNvbmZjdXRkaXIKLSAgICAgICAgICAg
ICAgICBjbGlzdCA9IFtdCi0gICAgICAgICAgICAgICAgZm9yIHBhcmVudCBpbiBwYXRoLnBhcnRz
KCk6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX2NvbmZjdXRkaXIgYW5kIHNlbGYuX2Nv
bmZjdXRkaXIucmVsdG8ocGFyZW50KToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZ0ZXN0cGF0aCA9IHBhcmVudC5qb2luKCJjb25mdGVz
dC5weSIpCi0gICAgICAgICAgICAgICAgICAgIGlmIGNvbmZ0ZXN0cGF0aC5pc2ZpbGUoKToKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1vZCA9IHNlbGYuX2ltcG9ydGNvbmZ0ZXN0KGNvbmZ0ZXN0
cGF0aCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsaXN0LmFwcGVuZChtb2QpCi0KLSAgICAg
ICAgICAgIHNlbGYuX3BhdGgyY29uZm1vZHNbcGF0aF0gPSBjbGlzdAotICAgICAgICAgICAgcmV0
dXJuIGNsaXN0CisKKyAgICAgICAgaWYgcGF0aC5pc2ZpbGUoKToKKyAgICAgICAgICAgIGRpcmVj
dG9yeSA9IHBhdGguZGlycGF0aCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkaXJlY3Rv
cnkgPSBwYXRoCisKKyAgICAgICAgaWYgc2l4LlBZMjogICMgcHkyIGlzIG5vdCB1c2luZyBscnVf
Y2FjaGUuCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Rp
cnBhdGgyY29uZm1vZHNbZGlyZWN0b3J5XQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgor
ICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAjIFhYWCB0aGVzZSBkYXlzIHdlIG1heSBy
YXRoZXIgd2FudCB0byB1c2UgY29uZmlnLnJvb3RkaXIKKyAgICAgICAgIyBhbmQgYWxsb3cgdXNl
cnMgdG8gb3B0IGludG8gbG9va2luZyBpbnRvIHRoZSByb290ZGlyIHBhcmVudAorICAgICAgICAj
IGRpcmVjdG9yaWVzIGluc3RlYWQgb2YgcmVxdWlyaW5nIHRvIHNwZWNpZnkgY29uZmN1dGRpcgor
ICAgICAgICBjbGlzdCA9IFtdCisgICAgICAgIGZvciBwYXJlbnQgaW4gZGlyZWN0b3J5LnJlYWxw
YXRoKCkucGFydHMoKToKKyAgICAgICAgICAgIGlmIHNlbGYuX2NvbmZjdXRkaXIgYW5kIHNlbGYu
X2NvbmZjdXRkaXIucmVsdG8ocGFyZW50KToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICAgICAgY29uZnRlc3RwYXRoID0gcGFyZW50LmpvaW4oImNvbmZ0ZXN0LnB5IikKKyAgICAg
ICAgICAgIGlmIGNvbmZ0ZXN0cGF0aC5pc2ZpbGUoKToKKyAgICAgICAgICAgICAgICAjIFVzZSBy
ZWFscGF0aCB0byBhdm9pZCBsb2FkaW5nIHRoZSBzYW1lIGNvbmZ0ZXN0IHR3aWNlCisgICAgICAg
ICAgICAgICAgIyB3aXRoIGJ1aWxkIHN5c3RlbXMgdGhhdCBjcmVhdGUgYnVpbGQgZGlyZWN0b3Jp
ZXMgY29udGFpbmluZworICAgICAgICAgICAgICAgICMgc3ltbGlua3MgdG8gYWN0dWFsIGZpbGVz
LgorICAgICAgICAgICAgICAgIG1vZCA9IHNlbGYuX2ltcG9ydGNvbmZ0ZXN0KGNvbmZ0ZXN0cGF0
aC5yZWFscGF0aCgpKQorICAgICAgICAgICAgICAgIGNsaXN0LmFwcGVuZChtb2QpCisgICAgICAg
IHNlbGYuX2RpcnBhdGgyY29uZm1vZHNbZGlyZWN0b3J5XSA9IGNsaXN0CisgICAgICAgIHJldHVy
biBjbGlzdAogCiAgICAgZGVmIF9yZ2V0X3dpdGhfY29uZm1vZChzZWxmLCBuYW1lLCBwYXRoKToK
ICAgICAgICAgbW9kdWxlcyA9IHNlbGYuX2dldGNvbmZ0ZXN0bW9kdWxlcyhwYXRoKQpAQCAtNDA0
LDE4ICs0NTEsMjkgQEAgY2xhc3MgUHl0ZXN0UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2VyKToK
ICAgICAgICAgICAgICAgICBfZW5zdXJlX3JlbW92ZWRfc3lzbW9kdWxlKGNvbmZ0ZXN0cGF0aC5w
dXJlYmFzZW5hbWUpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgbW9kID0gY29u
ZnRlc3RwYXRoLnB5aW1wb3J0KCkKLSAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKG1vZCwgInB5
dGVzdF9wbHVnaW5zIikgYW5kIHNlbGYuX2NvbmZpZ3VyZWQ6Ci0gICAgICAgICAgICAgICAgICAg
IGZyb20gX3B5dGVzdC5kZXByZWNhdGVkIGltcG9ydCBQWVRFU1RfUExVR0lOU19GUk9NX05PTl9U
T1BfTEVWRUxfQ09ORlRFU1QKKyAgICAgICAgICAgICAgICBpZiAoCisgICAgICAgICAgICAgICAg
ICAgIGhhc2F0dHIobW9kLCAicHl0ZXN0X3BsdWdpbnMiKQorICAgICAgICAgICAgICAgICAgICBh
bmQgc2VsZi5fY29uZmlndXJlZAorICAgICAgICAgICAgICAgICAgICBhbmQgbm90IHNlbGYuX3Vz
aW5nX3B5YXJncworICAgICAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgICAgIGZyb20g
X3B5dGVzdC5kZXByZWNhdGVkIGltcG9ydCAoCisgICAgICAgICAgICAgICAgICAgICAgICBQWVRF
U1RfUExVR0lOU19GUk9NX05PTl9UT1BfTEVWRUxfQ09ORlRFU1QsCisgICAgICAgICAgICAgICAg
ICAgICkKIAotICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKFBZVEVTVF9QTFVHSU5T
X0ZST01fTk9OX1RPUF9MRVZFTF9DT05GVEVTVCkKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgK
KyAgICAgICAgICAgICAgICAgICAgICAgIFBZVEVTVF9QTFVHSU5TX0ZST01fTk9OX1RPUF9MRVZF
TF9DT05GVEVTVC5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZnRlc3Rw
YXRoLCBzZWxmLl9jb25mY3V0ZGlyCisgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAg
ICAgICAgICAgICAgICAgICAgcHl0cmFjZT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgKQog
ICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICByYWlzZSBDb25m
dGVzdEltcG9ydEZhaWx1cmUoY29uZnRlc3RwYXRoLCBzeXMuZXhjX2luZm8oKSkKIAogICAgICAg
ICAgICAgc2VsZi5fY29uZnRlc3RfcGx1Z2lucy5hZGQobW9kKQogICAgICAgICAgICAgc2VsZi5f
Y29uZnRlc3RwYXRoMm1vZFtjb25mdGVzdHBhdGhdID0gbW9kCiAgICAgICAgICAgICBkaXJwYXRo
ID0gY29uZnRlc3RwYXRoLmRpcnBhdGgoKQotICAgICAgICAgICAgaWYgZGlycGF0aCBpbiBzZWxm
Ll9wYXRoMmNvbmZtb2RzOgotICAgICAgICAgICAgICAgIGZvciBwYXRoLCBtb2RzIGluIHNlbGYu
X3BhdGgyY29uZm1vZHMuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIGRpcnBhdGggaW4gc2VsZi5f
ZGlycGF0aDJjb25mbW9kczoKKyAgICAgICAgICAgICAgICBmb3IgcGF0aCwgbW9kcyBpbiBzZWxm
Ll9kaXJwYXRoMmNvbmZtb2RzLml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgICAgIGlmIHBhdGgg
YW5kIHBhdGgucmVsdG8oZGlycGF0aCkgb3IgcGF0aCA9PSBkaXJwYXRoOgogICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IG1vZCBub3QgaW4gbW9kcwogICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kcy5hcHBlbmQobW9kKQpAQCAtNDI5LDE4ICs0ODcsNDggQEAgY2xhc3MgUHl0ZXN0UGx1
Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2VyKToKICAgICAjCiAKICAgICBkZWYgY29uc2lkZXJfcHJl
cGFyc2Uoc2VsZiwgYXJncyk6Ci0gICAgICAgIGZvciBvcHQxLCBvcHQyIGluIHppcChhcmdzLCBh
cmdzWzE6XSk6Ci0gICAgICAgICAgICBpZiBvcHQxID09ICItcCI6Ci0gICAgICAgICAgICAgICAg
c2VsZi5jb25zaWRlcl9wbHVnaW5hcmcob3B0MikKKyAgICAgICAgaSA9IDAKKyAgICAgICAgbiA9
IGxlbihhcmdzKQorICAgICAgICB3aGlsZSBpIDwgbjoKKyAgICAgICAgICAgIG9wdCA9IGFyZ3Nb
aV0KKyAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvcHQsIHNp
eC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgICAgIGlmIG9wdCA9PSAiLXAiOgorICAgICAg
ICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJnID0gYXJnc1tp
XQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgICAgICBpICs9IDEKKyAgICAgICAgICAg
ICAgICBlbGlmIG9wdC5zdGFydHN3aXRoKCItcCIpOgorICAgICAgICAgICAgICAgICAgICBwYXJn
ID0gb3B0WzI6XQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgICAgICAgICAgc2VsZi5jb25zaWRlcl9wbHVnaW5hcmcocGFyZykKIAog
ICAgIGRlZiBjb25zaWRlcl9wbHVnaW5hcmcoc2VsZiwgYXJnKToKICAgICAgICAgaWYgYXJnLnN0
YXJ0c3dpdGgoIm5vOiIpOgogICAgICAgICAgICAgbmFtZSA9IGFyZ1szOl0KKyAgICAgICAgICAg
IGlmIG5hbWUgaW4gZXNzZW50aWFsX3BsdWdpbnM6CisgICAgICAgICAgICAgICAgcmFpc2UgVXNh
Z2VFcnJvcigicGx1Z2luICVzIGNhbm5vdCBiZSBkaXNhYmxlZCIgJSBuYW1lKQorCisgICAgICAg
ICAgICAjIFBSICM0MzA0IDogcmVtb3ZlIHN0ZXB3aXNlIGlmIGNhY2hlcHJvdmlkZXIgaXMgYmxv
Y2tlZAorICAgICAgICAgICAgaWYgbmFtZSA9PSAiY2FjaGVwcm92aWRlciI6CisgICAgICAgICAg
ICAgICAgc2VsZi5zZXRfYmxvY2tlZCgic3RlcHdpc2UiKQorICAgICAgICAgICAgICAgIHNlbGYu
c2V0X2Jsb2NrZWQoInB5dGVzdF9zdGVwd2lzZSIpCisKICAgICAgICAgICAgIHNlbGYuc2V0X2Js
b2NrZWQobmFtZSkKICAgICAgICAgICAgIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF8i
KToKICAgICAgICAgICAgICAgICBzZWxmLnNldF9ibG9ja2VkKCJweXRlc3RfIiArIG5hbWUpCiAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmltcG9ydF9wbHVnaW4oYXJnKQorICAgICAg
ICAgICAgbmFtZSA9IGFyZworICAgICAgICAgICAgIyBVbmJsb2NrIHRoZSBwbHVnaW4uICBOb25l
IGluZGljYXRlcyB0aGF0IGl0IGhhcyBiZWVuIGJsb2NrZWQuCisgICAgICAgICAgICAjIFRoZXJl
IGlzIG5vIGludGVyZmFjZSB3aXRoIHBsdWdneSBmb3IgdGhpcy4KKyAgICAgICAgICAgIGlmIHNl
bGYuX25hbWUycGx1Z2luLmdldChuYW1lLCAtMSkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBk
ZWwgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0KKyAgICAgICAgICAgIGlmIG5vdCBuYW1lLnN0YXJ0
c3dpdGgoInB5dGVzdF8iKToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9uYW1lMnBsdWdpbi5n
ZXQoInB5dGVzdF8iICsgbmFtZSwgLTEpIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGRl
bCBzZWxmLl9uYW1lMnBsdWdpblsicHl0ZXN0XyIgKyBuYW1lXQorICAgICAgICAgICAgc2VsZi5p
bXBvcnRfcGx1Z2luKGFyZywgY29uc2lkZXJfZW50cnlfcG9pbnRzPVRydWUpCiAKICAgICBkZWYg
Y29uc2lkZXJfY29uZnRlc3Qoc2VsZiwgY29uZnRlc3Rtb2R1bGUpOgogICAgICAgICBzZWxmLnJl
Z2lzdGVyKGNvbmZ0ZXN0bW9kdWxlLCBuYW1lPWNvbmZ0ZXN0bW9kdWxlLl9fZmlsZV9fKQpAQCAt
NDU2LDM1ICs1NDQsNTAgQEAgY2xhc3MgUHl0ZXN0UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2Vy
KToKICAgICAgICAgZm9yIGltcG9ydF9zcGVjIGluIHBsdWdpbnM6CiAgICAgICAgICAgICBzZWxm
LmltcG9ydF9wbHVnaW4oaW1wb3J0X3NwZWMpCiAKLSAgICBkZWYgaW1wb3J0X3BsdWdpbihzZWxm
LCBtb2RuYW1lKToKKyAgICBkZWYgaW1wb3J0X3BsdWdpbihzZWxmLCBtb2RuYW1lLCBjb25zaWRl
cl9lbnRyeV9wb2ludHM9RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgSW1wb3J0cyBhIHBs
dWdpbiB3aXRoIGBgbW9kbmFtZWBgLiBJZiBgYGNvbnNpZGVyX2VudHJ5X3BvaW50c2BgIGlzIFRy
dWUsIGVudHJ5IHBvaW50CisgICAgICAgIG5hbWVzIGFyZSBhbHNvIGNvbnNpZGVyZWQgdG8gZmlu
ZCBhIHBsdWdpbi4KKyAgICAgICAgIiIiCiAgICAgICAgICMgbW9zdCBvZnRlbiBtb2RuYW1lIHJl
ZmVycyB0byBidWlsdGluIG1vZHVsZXMsIGUuZy4gInB5dGVzdGVyIiwKICAgICAgICAgIyAidGVy
bWluYWwiIG9yICJjYXB0dXJlIi4gIFRob3NlIHBsdWdpbnMgYXJlIHJlZ2lzdGVyZWQgdW5kZXIg
dGhlaXIKICAgICAgICAgIyBiYXNlbmFtZSBmb3IgaGlzdG9yaWMgcHVycG9zZXMgYnV0IG11c3Qg
YmUgaW1wb3J0ZWQgd2l0aCB0aGUKICAgICAgICAgIyBfcHl0ZXN0IHByZWZpeC4KLSAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UobW9kbmFtZSwgKHNpeC50ZXh0X3R5cGUsIHN0cikpLCAoCisgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKG1vZG5hbWUsIHNpeC5zdHJpbmdfdHlwZXMpLCAoCiAgICAg
ICAgICAgICAibW9kdWxlIG5hbWUgYXMgdGV4dCByZXF1aXJlZCwgZ290ICVyIiAlIG1vZG5hbWUK
ICAgICAgICAgKQogICAgICAgICBtb2RuYW1lID0gc3RyKG1vZG5hbWUpCiAgICAgICAgIGlmIHNl
bGYuaXNfYmxvY2tlZChtb2RuYW1lKSBvciBzZWxmLmdldF9wbHVnaW4obW9kbmFtZSkgaXMgbm90
IE5vbmU6CiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgbW9kbmFtZSBpbiBidWlsdGlu
X3BsdWdpbnM6Ci0gICAgICAgICAgICBpbXBvcnRzcGVjID0gIl9weXRlc3QuIiArIG1vZG5hbWUK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGltcG9ydHNwZWMgPSBtb2RuYW1lCisKKyAgICAg
ICAgaW1wb3J0c3BlYyA9ICJfcHl0ZXN0LiIgKyBtb2RuYW1lIGlmIG1vZG5hbWUgaW4gYnVpbHRp
bl9wbHVnaW5zIGVsc2UgbW9kbmFtZQogICAgICAgICBzZWxmLnJld3JpdGVfaG9vay5tYXJrX3Jl
d3JpdGUoaW1wb3J0c3BlYykKKworICAgICAgICBpZiBjb25zaWRlcl9lbnRyeV9wb2ludHM6Cisg
ICAgICAgICAgICBsb2FkZWQgPSBzZWxmLmxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50cygicHl0
ZXN0MTEiLCBuYW1lPW1vZG5hbWUpCisgICAgICAgICAgICBpZiBsb2FkZWQ6CisgICAgICAgICAg
ICAgICAgcmV0dXJuCisKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgX19pbXBvcnRfXyhpbXBv
cnRzcGVjKQogICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMgZToKLSAgICAgICAgICAgIG5l
d19leGNfdHlwZSA9IEltcG9ydEVycm9yCiAgICAgICAgICAgICBuZXdfZXhjX21lc3NhZ2UgPSAn
RXJyb3IgaW1wb3J0aW5nIHBsdWdpbiAiJXMiOiAlcycgJSAoCi0gICAgICAgICAgICAgICAgbW9k
bmFtZSwgc2FmZV9zdHIoZS5hcmdzWzBdKQorICAgICAgICAgICAgICAgIG1vZG5hbWUsCisgICAg
ICAgICAgICAgICAgc2FmZV9zdHIoZS5hcmdzWzBdKSwKICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgIG5ld19leGMgPSBuZXdfZXhjX3R5cGUobmV3X2V4Y19tZXNzYWdlKQorICAgICAgICAgICAg
bmV3X2V4YyA9IEltcG9ydEVycm9yKG5ld19leGNfbWVzc2FnZSkKKyAgICAgICAgICAgIHRiID0g
c3lzLmV4Y19pbmZvKClbMl0KIAotICAgICAgICAgICAgc2l4LnJlcmFpc2UobmV3X2V4Y190eXBl
LCBuZXdfZXhjLCBzeXMuZXhjX2luZm8oKVsyXSkKKyAgICAgICAgICAgIHNpeC5yZXJhaXNlKElt
cG9ydEVycm9yLCBuZXdfZXhjLCB0YikKIAogICAgICAgICBleGNlcHQgU2tpcHBlZCBhcyBlOgot
ICAgICAgICAgICAgc2VsZi5fd2Fybigic2tpcHBlZCBwbHVnaW4gJXI6ICVzIiAlICgobW9kbmFt
ZSwgZS5tc2cpKSkKKyAgICAgICAgICAgIGZyb20gX3B5dGVzdC53YXJuaW5ncyBpbXBvcnQgX2lz
c3VlX3dhcm5pbmdfY2FwdHVyZWQKKworICAgICAgICAgICAgX2lzc3VlX3dhcm5pbmdfY2FwdHVy
ZWQoCisgICAgICAgICAgICAgICAgUHl0ZXN0Q29uZmlnV2FybmluZygic2tpcHBlZCBwbHVnaW4g
JXI6ICVzIiAlIChtb2RuYW1lLCBlLm1zZykpLAorICAgICAgICAgICAgICAgIHNlbGYuaG9vaywK
KyAgICAgICAgICAgICAgICBzdGFja2xldmVsPTEsCisgICAgICAgICAgICApCiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBtb2QgPSBzeXMubW9kdWxlc1tpbXBvcnRzcGVjXQogICAgICAgICAg
ICAgc2VsZi5yZWdpc3Rlcihtb2QsIG1vZG5hbWUpCkBAIC00OTgsOCArNjAxLDggQEAgZGVmIF9n
ZXRfcGx1Z2luX3NwZWNzX2FzX2xpc3Qoc3BlY3MpOgogICAgIHdoaWNoIGNhc2UgaXQgaXMgcmV0
dXJuZWQgYXMgYSBsaXN0LiBTcGVjcyBjYW4gYWxzbyBiZSBgTm9uZWAgaW4gd2hpY2ggY2FzZSBh
bgogICAgIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQuCiAgICAgIiIiCi0gICAgaWYgc3BlY3MgaXMg
bm90IE5vbmU6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2Uoc3BlY3MsIHN0cik6CisgICAgaWYgc3Bl
Y3MgaXMgbm90IE5vbmUgYW5kIG5vdCBpc2luc3RhbmNlKHNwZWNzLCB0eXBlcy5Nb2R1bGVUeXBl
KToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzcGVjcywgc2l4LnN0cmluZ190eXBlcyk6CiAgICAg
ICAgICAgICBzcGVjcyA9IHNwZWNzLnNwbGl0KCIsIikgaWYgc3BlY3MgZWxzZSBbXQogICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZShzcGVjcywgKGxpc3QsIHR1cGxlKSk6CiAgICAgICAgICAgICBy
YWlzZSBVc2FnZUVycm9yKApAQCAtNTE4LDcgKzYyMSw2IEBAIGRlZiBfZW5zdXJlX3JlbW92ZWRf
c3lzbW9kdWxlKG1vZG5hbWUpOgogCiAKIGNsYXNzIE5vdHNldChvYmplY3QpOgotCiAgICAgZGVm
IF9fcmVwcl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gIjxOT1RTRVQ+IgogCkBAIC01MjcsMjUg
KzYyOSwxMTYgQEAgbm90c2V0ID0gTm90c2V0KCkKIAogCiBkZWYgX2l0ZXJfcmV3cml0YWJsZV9t
b2R1bGVzKHBhY2thZ2VfZmlsZXMpOgorICAgICIiIgorICAgIEdpdmVuIGFuIGl0ZXJhYmxlIG9m
IGZpbGUgbmFtZXMgaW4gYSBzb3VyY2UgZGlzdHJpYnV0aW9uLCByZXR1cm4gdGhlICJuYW1lcyIg
dGhhdCBzaG91bGQKKyAgICBiZSBtYXJrZWQgZm9yIGFzc2VydGlvbiByZXdyaXRlIChmb3IgZXhh
bXBsZSB0aGUgcGFja2FnZSAicHl0ZXN0X21vY2svX19pbml0X18ucHkiIHNob3VsZAorICAgIGJl
IGFkZGVkIGFzICJweXRlc3RfbW9jayIgaW4gdGhlIGFzc2VydGlvbiByZXdyaXRlIG1lY2hhbmlz
bS4KKworICAgIFRoaXMgZnVuY3Rpb24gaGFzIHRvIGRlYWwgd2l0aCBkaXN0LWluZm8gYmFzZWQg
ZGlzdHJpYnV0aW9ucyBhbmQgZWdnIGJhc2VkIGRpc3RyaWJ1dGlvbnMKKyAgICAod2hpY2ggYXJl
IHN0aWxsIHZlcnkgbXVjaCBpbiB1c2UgZm9yICJlZGl0YWJsZSIgaW5zdGFsbHMpLgorCisgICAg
SGVyZSBhcmUgdGhlIGZpbGUgbmFtZXMgYXMgc2VlbiBpbiBhIGRpc3QtaW5mbyBiYXNlZCBkaXN0
cmlidXRpb246CisKKyAgICAgICAgcHl0ZXN0X21vY2svX19pbml0X18ucHkKKyAgICAgICAgcHl0
ZXN0X21vY2svX3ZlcnNpb24ucHkKKyAgICAgICAgcHl0ZXN0X21vY2svcGx1Z2luLnB5CisgICAg
ICAgIHB5dGVzdF9tb2NrLmVnZy1pbmZvL1BLRy1JTkZPCisKKyAgICBIZXJlIGFyZSB0aGUgZmls
ZSBuYW1lcyBhcyBzZWVuIGluIGFuIGVnZyBiYXNlZCBkaXN0cmlidXRpb246CisKKyAgICAgICAg
c3JjL3B5dGVzdF9tb2NrL19faW5pdF9fLnB5CisgICAgICAgIHNyYy9weXRlc3RfbW9jay9fdmVy
c2lvbi5weQorICAgICAgICBzcmMvcHl0ZXN0X21vY2svcGx1Z2luLnB5CisgICAgICAgIHNyYy9w
eXRlc3RfbW9jay5lZ2ctaW5mby9QS0ctSU5GTworICAgICAgICBMSUNFTlNFCisgICAgICAgIHNl
dHVwLnB5CisKKyAgICBXZSBoYXZlIHRvIHRha2UgaW4gYWNjb3VudCB0aG9zZSB0d28gZGlzdHJp
YnV0aW9uIGZsYXZvcnMgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHdoaWNoCisgICAgbmFtZXMgc2hv
dWxkIGJlIGNvbnNpZGVyZWQgZm9yIGFzc2VydGlvbiByZXdyaXRpbmcuCisKKyAgICBNb3JlIGlu
Zm9ybWF0aW9uOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qt
bW9jay9pc3N1ZXMvMTY3CisgICAgIiIiCisgICAgcGFja2FnZV9maWxlcyA9IGxpc3QocGFja2Fn
ZV9maWxlcykKKyAgICBzZWVuX3NvbWUgPSBGYWxzZQogICAgIGZvciBmbiBpbiBwYWNrYWdlX2Zp
bGVzOgogICAgICAgICBpc19zaW1wbGVfbW9kdWxlID0gIi8iIG5vdCBpbiBmbiBhbmQgZm4uZW5k
c3dpdGgoIi5weSIpCiAgICAgICAgIGlzX3BhY2thZ2UgPSBmbi5jb3VudCgiLyIpID09IDEgYW5k
IGZuLmVuZHN3aXRoKCJfX2luaXRfXy5weSIpCiAgICAgICAgIGlmIGlzX3NpbXBsZV9tb2R1bGU6
CiAgICAgICAgICAgICBtb2R1bGVfbmFtZSwgXyA9IG9zLnBhdGguc3BsaXRleHQoZm4pCi0gICAg
ICAgICAgICB5aWVsZCBtb2R1bGVfbmFtZQorICAgICAgICAgICAgIyB3ZSBpZ25vcmUgInNldHVw
LnB5IiBhdCB0aGUgcm9vdCBvZiB0aGUgZGlzdHJpYnV0aW9uCisgICAgICAgICAgICBpZiBtb2R1
bGVfbmFtZSAhPSAic2V0dXAiOgorICAgICAgICAgICAgICAgIHNlZW5fc29tZSA9IFRydWUKKyAg
ICAgICAgICAgICAgICB5aWVsZCBtb2R1bGVfbmFtZQogICAgICAgICBlbGlmIGlzX3BhY2thZ2U6
CiAgICAgICAgICAgICBwYWNrYWdlX25hbWUgPSBvcy5wYXRoLmRpcm5hbWUoZm4pCisgICAgICAg
ICAgICBzZWVuX3NvbWUgPSBUcnVlCiAgICAgICAgICAgICB5aWVsZCBwYWNrYWdlX25hbWUKIAor
ICAgIGlmIG5vdCBzZWVuX3NvbWU6CisgICAgICAgICMgYXQgdGhpcyBwb2ludCB3ZSBkaWQgbm90
IGZpbmQgYW55IHBhY2thZ2VzIG9yIG1vZHVsZXMgc3VpdGFibGUgZm9yIGFzc2VydGlvbgorICAg
ICAgICAjIHJld3JpdGluZywgc28gd2UgdHJ5IGFnYWluIGJ5IHN0cmlwcGluZyB0aGUgZmlyc3Qg
cGF0aCBjb21wb25lbnQgKHRvIGFjY291bnQgZm9yCisgICAgICAgICMgInNyYyIgYmFzZWQgc291
cmNlIHRyZWVzIGZvciBleGFtcGxlKQorICAgICAgICAjIHRoaXMgYXBwcm9hY2ggbGV0cyB1cyBo
YXZlIHRoZSBjb21tb24gY2FzZSBjb250aW51ZSB0byBiZSBmYXN0LCBhcyBlZ2ctZGlzdHJpYnV0
aW9ucworICAgICAgICAjIGFyZSByYXJlcgorICAgICAgICBuZXdfcGFja2FnZV9maWxlcyA9IFtd
CisgICAgICAgIGZvciBmbiBpbiBwYWNrYWdlX2ZpbGVzOgorICAgICAgICAgICAgcGFydHMgPSBm
bi5zcGxpdCgiLyIpCisgICAgICAgICAgICBuZXdfZm4gPSAiLyIuam9pbihwYXJ0c1sxOl0pCisg
ICAgICAgICAgICBpZiBuZXdfZm46CisgICAgICAgICAgICAgICAgbmV3X3BhY2thZ2VfZmlsZXMu
YXBwZW5kKG5ld19mbikKKyAgICAgICAgaWYgbmV3X3BhY2thZ2VfZmlsZXM6CisgICAgICAgICAg
ICBmb3IgX21vZHVsZSBpbiBfaXRlcl9yZXdyaXRhYmxlX21vZHVsZXMobmV3X3BhY2thZ2VfZmls
ZXMpOgorICAgICAgICAgICAgICAgIHlpZWxkIF9tb2R1bGUKKwogCiBjbGFzcyBDb25maWcob2Jq
ZWN0KToKLSAgICAiIiIgYWNjZXNzIHRvIGNvbmZpZ3VyYXRpb24gdmFsdWVzLCBwbHVnaW5tYW5h
Z2VyIGFuZCBwbHVnaW4gaG9va3MuICAiIiIKKyAgICAiIiIKKyAgICBBY2Nlc3MgdG8gY29uZmln
dXJhdGlvbiB2YWx1ZXMsIHBsdWdpbm1hbmFnZXIgYW5kIHBsdWdpbiBob29rcy4KKworICAgIDpp
dmFyIFB5dGVzdFBsdWdpbk1hbmFnZXIgcGx1Z2lubWFuYWdlcjogdGhlIHBsdWdpbiBtYW5hZ2Vy
IGhhbmRsZXMgcGx1Z2luIHJlZ2lzdHJhdGlvbiBhbmQgaG9vayBpbnZvY2F0aW9uLgorCisgICAg
Oml2YXIgYXJncGFyc2UuTmFtZXNwYWNlIG9wdGlvbjogYWNjZXNzIHRvIGNvbW1hbmQgbGluZSBv
cHRpb24gYXMgYXR0cmlidXRlcy4KKworICAgIDppdmFyIEludm9jYXRpb25QYXJhbXMgaW52b2Nh
dGlvbl9wYXJhbXM6CisKKyAgICAgICAgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMg
cmVnYXJkaW5nIHRoZSBgYHB5dGVzdC5tYWluYGAKKyAgICAgICAgaW52b2NhdGlvbi4KKyAgICAg
ICAgQ29udGFpbnMgdGhlIGZvbGxvd2luaWcgcmVhZC1vbmx5IGF0dHJpYnV0ZXM6CisgICAgICAg
ICogYGBhcmdzYGA6IGxpc3Qgb2YgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBhcyBwYXNzZWQgdG8g
YGBweXRlc3QubWFpbigpYGAuCisgICAgICAgICogYGBwbHVnaW5zYGA6IGxpc3Qgb2YgZXh0cmEg
cGx1Z2lucywgbWlnaHQgYmUgTm9uZQorICAgICAgICAqIGBgZGlyYGA6IGRpcmVjdG9yeSB3aGVy
ZSBgYHB5dGVzdC5tYWluKClgYCB3YXMgaW52b2tlZCBmcm9tLgorICAgICIiIgorCisgICAgQGF0
dHIucyhmcm96ZW49VHJ1ZSkKKyAgICBjbGFzcyBJbnZvY2F0aW9uUGFyYW1zKG9iamVjdCk6Cisg
ICAgICAgICIiIkhvbGRzIHBhcmFtZXRlcnMgcGFzc2VkIGR1cmluZyBgYHB5dGVzdC5tYWluKClg
YAorCisgICAgICAgIC4uIG5vdGU6OgorCisgICAgICAgICAgICBDdXJyZW50bHkgdGhlIGVudmly
b25tZW50IHZhcmlhYmxlIFBZVEVTVF9BRERPUFRTIGlzIGFsc28gaGFuZGxlZCBieQorICAgICAg
ICAgICAgcHl0ZXN0IGltcGxpY2l0bHksIG5vdCBiZWluZyBwYXJ0IG9mIHRoZSBpbnZvY2F0aW9u
LgorCisgICAgICAgICAgICBQbHVnaW5zIGFjY2Vzc2luZyBgYEludm9jYXRpb25QYXJhbXNgYCBt
dXN0IGJlIGF3YXJlIG9mIHRoYXQuCisgICAgICAgICIiIgorCisgICAgICAgIGFyZ3MgPSBhdHRy
LmliKCkKKyAgICAgICAgcGx1Z2lucyA9IGF0dHIuaWIoKQorICAgICAgICBkaXIgPSBhdHRyLmli
KCkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwbHVnaW5tYW5hZ2VyLCBpbnZvY2F0aW9uX3Bh
cmFtcz1Ob25lLCAqYXJncyk6CisgICAgICAgIGZyb20gLmFyZ3BhcnNpbmcgaW1wb3J0IFBhcnNl
ciwgRklMRV9PUl9ESVIKKworICAgICAgICBpZiBpbnZvY2F0aW9uX3BhcmFtcyBpcyBOb25lOgor
ICAgICAgICAgICAgaW52b2NhdGlvbl9wYXJhbXMgPSBzZWxmLkludm9jYXRpb25QYXJhbXMoCisg
ICAgICAgICAgICAgICAgYXJncz0oKSwgcGx1Z2lucz1Ob25lLCBkaXI9UGF0aCgpLnJlc29sdmUo
KQorICAgICAgICAgICAgKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsdWdpbm1hbmFnZXIp
OgogICAgICAgICAjOiBhY2Nlc3MgdG8gY29tbWFuZCBsaW5lIG9wdGlvbiBhcyBhdHRyaWJ1dGVz
LgogICAgICAgICAjOiAoZGVwcmVjYXRlZCksIHVzZSA6cHk6ZnVuYzpgZ2V0b3B0aW9uKCkgPF9w
eXRlc3QuY29uZmlnLkNvbmZpZy5nZXRvcHRpb24+YCBpbnN0ZWFkCiAgICAgICAgIHNlbGYub3B0
aW9uID0gYXJncGFyc2UuTmFtZXNwYWNlKCkKLSAgICAgICAgZnJvbSAuYXJncGFyc2luZyBpbXBv
cnQgUGFyc2VyLCBGSUxFX09SX0RJUgorCisgICAgICAgIHNlbGYuaW52b2NhdGlvbl9wYXJhbXMg
PSBpbnZvY2F0aW9uX3BhcmFtcwogCiAgICAgICAgIF9hID0gRklMRV9PUl9ESVIKICAgICAgICAg
c2VsZi5fcGFyc2VyID0gUGFyc2VyKApAQCAtNTYwLDE4ICs3NTMsMTUgQEAgY2xhc3MgQ29uZmln
KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX292ZXJyaWRlX2luaSA9ICgpCiAgICAgICAgIHNlbGYu
X29wdDJkZXN0ID0ge30KICAgICAgICAgc2VsZi5fY2xlYW51cCA9IFtdCi0gICAgICAgIHNlbGYu
X3dhcm4gPSBzZWxmLnBsdWdpbm1hbmFnZXIuX3dhcm4KICAgICAgICAgc2VsZi5wbHVnaW5tYW5h
Z2VyLnJlZ2lzdGVyKHNlbGYsICJweXRlc3Rjb25maWciKQogICAgICAgICBzZWxmLl9jb25maWd1
cmVkID0gRmFsc2UKLQotICAgICAgICBkZWYgZG9fc2V0bnMoZGljKToKLSAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKLQotICAgICAgICAgICAgc2V0bnMocHl0ZXN0LCBkaWMpCi0KLSAgICAgICAg
c2VsZi5ob29rLnB5dGVzdF9uYW1lc3BhY2UuY2FsbF9oaXN0b3JpYyhkb19zZXRucywge30pCiAg
ICAgICAgIHNlbGYuaG9vay5weXRlc3RfYWRkb3B0aW9uLmNhbGxfaGlzdG9yaWMoa3dhcmdzPWRp
Y3QocGFyc2VyPXNlbGYuX3BhcnNlcikpCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaW52b2Nh
dGlvbl9kaXIoc2VsZik6CisgICAgICAgICIiIkJhY2t3YXJkIGNvbXBhdGliaWxpdHkiIiIKKyAg
ICAgICAgcmV0dXJuIHB5LnBhdGgubG9jYWwoc3RyKHNlbGYuaW52b2NhdGlvbl9wYXJhbXMuZGly
KSkKKwogICAgIGRlZiBhZGRfY2xlYW51cChzZWxmLCBmdW5jKToKICAgICAgICAgIiIiIEFkZCBh
IGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb25maWcgb2JqZWN0IGdldHMgb3V0IG9m
CiAgICAgICAgIHVzZSAodXN1YWxseSBjb25pbmNpZGluZyB3aXRoIHB5dGVzdF91bmNvbmZpZ3Vy
ZSkuIiIiCkBAIC01OTEsMjQgKzc4MSwzNSBAQCBjbGFzcyBDb25maWcob2JqZWN0KToKICAgICAg
ICAgICAgIGZpbiA9IHNlbGYuX2NsZWFudXAucG9wKCkKICAgICAgICAgICAgIGZpbigpCiAKLSAg
ICBkZWYgd2FybihzZWxmLCBjb2RlLCBtZXNzYWdlLCBmc2xvY2F0aW9uPU5vbmUsIG5vZGVpZD1O
b25lKToKLSAgICAgICAgIiIiIGdlbmVyYXRlIGEgd2FybmluZyBmb3IgdGhpcyB0ZXN0IHNlc3Np
b24uICIiIgotICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2xvZ3dhcm5pbmcuY2FsbF9oaXN0b3Jp
YygKLSAgICAgICAgICAgIGt3YXJncz1kaWN0KAotICAgICAgICAgICAgICAgIGNvZGU9Y29kZSwg
bWVzc2FnZT1tZXNzYWdlLCBmc2xvY2F0aW9uPWZzbG9jYXRpb24sIG5vZGVpZD1ub2RlaWQKLSAg
ICAgICAgICAgICkKLSAgICAgICAgKQotCiAgICAgZGVmIGdldF90ZXJtaW5hbF93cml0ZXIoc2Vs
Zik6CiAgICAgICAgIHJldHVybiBzZWxmLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigidGVybWlu
YWxyZXBvcnRlciIpLl90dwogCiAgICAgZGVmIHB5dGVzdF9jbWRsaW5lX3BhcnNlKHNlbGYsIHBs
dWdpbm1hbmFnZXIsIGFyZ3MpOgotICAgICAgICAjIFJFRjEgYXNzZXJ0IHNlbGYgPT0gcGx1Z2lu
bWFuYWdlci5jb25maWcsIChzZWxmLCBwbHVnaW5tYW5hZ2VyLmNvbmZpZykKLSAgICAgICAgc2Vs
Zi5wYXJzZShhcmdzKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnBhcnNlKGFyZ3Mp
CisgICAgICAgIGV4Y2VwdCBVc2FnZUVycm9yOgorCisgICAgICAgICAgICAjIEhhbmRsZSAtLXZl
cnNpb24gYW5kIC0taGVscCBoZXJlIGluIGEgbWluaW1hbCBmYXNoaW9uLgorICAgICAgICAgICAg
IyBUaGlzIGdldHMgZG9uZSB2aWEgaGVscGNvbmZpZyBub3JtYWxseSwgYnV0IGl0cworICAgICAg
ICAgICAgIyBweXRlc3RfY21kbGluZV9tYWluIGlzIG5vdCBjYWxsZWQgaW4gY2FzZSBvZiBlcnJv
cnMuCisgICAgICAgICAgICBpZiBnZXRhdHRyKHNlbGYub3B0aW9uLCAidmVyc2lvbiIsIEZhbHNl
KSBvciAiLS12ZXJzaW9uIiBpbiBhcmdzOgorICAgICAgICAgICAgICAgIGZyb20gX3B5dGVzdC5o
ZWxwY29uZmlnIGltcG9ydCBzaG93dmVyc2lvbgorCisgICAgICAgICAgICAgICAgc2hvd3ZlcnNp
b24oc2VsZikKKyAgICAgICAgICAgIGVsaWYgKAorICAgICAgICAgICAgICAgIGdldGF0dHIoc2Vs
Zi5vcHRpb24sICJoZWxwIiwgRmFsc2UpIG9yICItLWhlbHAiIGluIGFyZ3Mgb3IgIi1oIiBpbiBh
cmdzCisgICAgICAgICAgICApOgorICAgICAgICAgICAgICAgIHNlbGYuX3BhcnNlci5fZ2V0cGFy
c2VyKCkucHJpbnRfaGVscCgpCisgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgKKyAg
ICAgICAgICAgICAgICAgICAgIlxuTk9URTogZGlzcGxheWluZyBvbmx5IG1pbmltYWwgaGVscCBk
dWUgdG8gVXNhZ2VFcnJvci5cblxuIgorICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAg
cmFpc2UKKwogICAgICAgICByZXR1cm4gc2VsZgogCiAgICAgZGVmIG5vdGlmeV9leGNlcHRpb24o
c2VsZiwgZXhjaW5mbywgb3B0aW9uPU5vbmUpOgotICAgICAgICBpZiBvcHRpb24gYW5kIG9wdGlv
bi5mdWxsdHJhY2U6CisgICAgICAgIGlmIG9wdGlvbiBhbmQgZ2V0YXR0cihvcHRpb24sICJmdWxs
dHJhY2UiLCBGYWxzZSk6CiAgICAgICAgICAgICBzdHlsZSA9ICJsb25nIgogICAgICAgICBlbHNl
OgogICAgICAgICAgICAgc3R5bGUgPSAibmF0aXZlIgpAQCAtNjMxLDcgKzgzMiw3IEBAIGNsYXNz
IENvbmZpZyhvYmplY3QpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBmcm9tZGljdGFyZ3Mo
Y2xzLCBvcHRpb25fZGljdCwgYXJncyk6CiAgICAgICAgICIiIiBjb25zdHJ1Y3RvciB1c2VhYmxl
IGZvciBzdWJwcm9jZXNzZXMuICIiIgotICAgICAgICBjb25maWcgPSBnZXRfY29uZmlnKCkKKyAg
ICAgICAgY29uZmlnID0gZ2V0X2NvbmZpZyhhcmdzKQogICAgICAgICBjb25maWcub3B0aW9uLl9f
ZGljdF9fLnVwZGF0ZShvcHRpb25fZGljdCkKICAgICAgICAgY29uZmlnLnBhcnNlKGFyZ3MsIGFk
ZG9wdHM9RmFsc2UpCiAgICAgICAgIGZvciB4IGluIGNvbmZpZy5vcHRpb24ucGx1Z2luczoKQEAg
LTY1NywxMyArODU4LDEyIEBAIGNsYXNzIENvbmZpZyhvYmplY3QpOgogICAgICAgICByID0gZGV0
ZXJtaW5lX3NldHVwKAogICAgICAgICAgICAgbnMuaW5pZmlsZW5hbWUsCiAgICAgICAgICAgICBu
cy5maWxlX29yX2RpciArIHVua25vd25fYXJncywKLSAgICAgICAgICAgIHdhcm5mdW5jPXNlbGYu
d2FybiwKICAgICAgICAgICAgIHJvb3RkaXJfY21kX2FyZz1ucy5yb290ZGlyIG9yIE5vbmUsCisg
ICAgICAgICAgICBjb25maWc9c2VsZiwKICAgICAgICAgKQogICAgICAgICBzZWxmLnJvb3RkaXIs
IHNlbGYuaW5pZmlsZSwgc2VsZi5pbmljZmcgPSByCiAgICAgICAgIHNlbGYuX3BhcnNlci5leHRy
YV9pbmZvWyJyb290ZGlyIl0gPSBzZWxmLnJvb3RkaXIKICAgICAgICAgc2VsZi5fcGFyc2VyLmV4
dHJhX2luZm9bImluaWZpbGUiXSA9IHNlbGYuaW5pZmlsZQotICAgICAgICBzZWxmLmludm9jYXRp
b25fZGlyID0gcHkucGF0aC5sb2NhbCgpCiAgICAgICAgIHNlbGYuX3BhcnNlci5hZGRpbmkoImFk
ZG9wdHMiLCAiZXh0cmEgY29tbWFuZCBsaW5lIG9wdGlvbnMiLCAiYXJncyIpCiAgICAgICAgIHNl
bGYuX3BhcnNlci5hZGRpbmkoIm1pbnZlcnNpb24iLCAibWluaW1hbGx5IHJlcXVpcmVkIHB5dGVz
dCB2ZXJzaW9uIikKICAgICAgICAgc2VsZi5fb3ZlcnJpZGVfaW5pID0gbnMub3ZlcnJpZGVfaW5p
IG9yICgpCkBAIC02NzYsNyArODc2LDcgQEAgY2xhc3MgQ29uZmlnKG9iamVjdCk6CiAgICAgICAg
IGJ5IHRoZSBpbXBvcnRob29rLgogICAgICAgICAiIiIKICAgICAgICAgbnMsIHVua25vd25fYXJn
cyA9IHNlbGYuX3BhcnNlci5wYXJzZV9rbm93bl9hbmRfdW5rbm93bl9hcmdzKGFyZ3MpCi0gICAg
ICAgIG1vZGUgPSBucy5hc3NlcnRtb2RlCisgICAgICAgIG1vZGUgPSBnZXRhdHRyKG5zLCAiYXNz
ZXJ0bW9kZSIsICJwbGFpbiIpCiAgICAgICAgIGlmIG1vZGUgPT0gInJld3JpdGUiOgogICAgICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGhvb2sgPSBfcHl0ZXN0LmFzc2VydGlvbi5pbnN0
YWxsX2ltcG9ydGhvb2soc2VsZikKQEAgLTY5MiwzNiArODkyLDU1IEBAIGNsYXNzIENvbmZpZyhv
YmplY3QpOgogICAgICAgICBtb2R1bGVzIG9yIHBhY2thZ2VzIGluIHRoZSBkaXN0cmlidXRpb24g
cGFja2FnZSBmb3IKICAgICAgICAgYWxsIHB5dGVzdCBwbHVnaW5zLgogICAgICAgICAiIiIKLSAg
ICAgICAgaW1wb3J0IHBrZ19yZXNvdXJjZXMKLQogICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIu
cmV3cml0ZV9ob29rID0gaG9vawogCi0gICAgICAgICMgJ1JFQ09SRCcgYXZhaWxhYmxlIGZvciBw
bHVnaW5zIGluc3RhbGxlZCBub3JtYWxseSAocGlwIGluc3RhbGwpCi0gICAgICAgICMgJ1NPVVJD
RVMudHh0JyBhdmFpbGFibGUgZm9yIHBsdWdpbnMgaW5zdGFsbGVkIGluIGRldiBtb2RlIChwaXAg
aW5zdGFsbCAtZSkKLSAgICAgICAgIyBmb3IgaW5zdGFsbGVkIHBsdWdpbnMgJ1NPVVJDRVMudHh0
JyByZXR1cm5zIGFuIGVtcHR5IGxpc3QsIGFuZCB2aWNlLXZlcnNhCi0gICAgICAgICMgc28gaXQg
c2hvdWxkbid0IGJlIGFuIGlzc3VlCi0gICAgICAgIG1ldGFkYXRhX2ZpbGVzID0gIlJFQ09SRCIs
ICJTT1VSQ0VTLnR4dCIKKyAgICAgICAgaWYgb3MuZW52aXJvbi5nZXQoIlBZVEVTVF9ESVNBQkxF
X1BMVUdJTl9BVVRPTE9BRCIpOgorICAgICAgICAgICAgIyBXZSBkb24ndCBhdXRvbG9hZCBmcm9t
IHNldHVwdG9vbHMgZW50cnkgcG9pbnRzLCBubyBuZWVkIHRvIGNvbnRpbnVlLgorICAgICAgICAg
ICAgcmV0dXJuCiAKICAgICAgICAgcGFja2FnZV9maWxlcyA9ICgKLSAgICAgICAgICAgIGVudHJ5
LnNwbGl0KCIsIilbMF0KLSAgICAgICAgICAgIGZvciBlbnRyeXBvaW50IGluIHBrZ19yZXNvdXJj
ZXMuaXRlcl9lbnRyeV9wb2ludHMoInB5dGVzdDExIikKLSAgICAgICAgICAgIGZvciBtZXRhZGF0
YSBpbiBtZXRhZGF0YV9maWxlcwotICAgICAgICAgICAgZm9yIGVudHJ5IGluIGVudHJ5cG9pbnQu
ZGlzdC5fZ2V0X21ldGFkYXRhKG1ldGFkYXRhKQorICAgICAgICAgICAgc3RyKGZpbGUpCisgICAg
ICAgICAgICBmb3IgZGlzdCBpbiBpbXBvcnRsaWJfbWV0YWRhdGEuZGlzdHJpYnV0aW9ucygpCisg
ICAgICAgICAgICBpZiBhbnkoZXAuZ3JvdXAgPT0gInB5dGVzdDExIiBmb3IgZXAgaW4gZGlzdC5l
bnRyeV9wb2ludHMpCisgICAgICAgICAgICBmb3IgZmlsZSBpbiBkaXN0LmZpbGVzIG9yIFtdCiAg
ICAgICAgICkKIAogICAgICAgICBmb3IgbmFtZSBpbiBfaXRlcl9yZXdyaXRhYmxlX21vZHVsZXMo
cGFja2FnZV9maWxlcyk6CiAgICAgICAgICAgICBob29rLm1hcmtfcmV3cml0ZShuYW1lKQogCisg
ICAgZGVmIF92YWxpZGF0ZV9hcmdzKHNlbGYsIGFyZ3MsIHZpYSk6CisgICAgICAgICIiIlZhbGlk
YXRlIGtub3duIGFyZ3MuIiIiCisgICAgICAgIHNlbGYuX3BhcnNlci5fY29uZmlnX3NvdXJjZV9o
aW50ID0gdmlhCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX3BhcnNlci5wYXJzZV9r
bm93bl9hbmRfdW5rbm93bl9hcmdzKAorICAgICAgICAgICAgICAgIGFyZ3MsIG5hbWVzcGFjZT1j
b3B5LmNvcHkoc2VsZi5vcHRpb24pCisgICAgICAgICAgICApCisgICAgICAgIGZpbmFsbHk6Cisg
ICAgICAgICAgICBkZWwgc2VsZi5fcGFyc2VyLl9jb25maWdfc291cmNlX2hpbnQKKworICAgICAg
ICByZXR1cm4gYXJncworCiAgICAgZGVmIF9wcmVwYXJzZShzZWxmLCBhcmdzLCBhZGRvcHRzPVRy
dWUpOgogICAgICAgICBpZiBhZGRvcHRzOgotICAgICAgICAgICAgYXJnc1s6XSA9IHNobGV4LnNw
bGl0KG9zLmVudmlyb24uZ2V0KCJQWVRFU1RfQURET1BUUyIsICIiKSkgKyBhcmdzCisgICAgICAg
ICAgICBlbnZfYWRkb3B0cyA9IG9zLmVudmlyb24uZ2V0KCJQWVRFU1RfQURET1BUUyIsICIiKQor
ICAgICAgICAgICAgaWYgbGVuKGVudl9hZGRvcHRzKToKKyAgICAgICAgICAgICAgICBhcmdzWzpd
ID0gKAorICAgICAgICAgICAgICAgICAgICBzZWxmLl92YWxpZGF0ZV9hcmdzKHNobGV4LnNwbGl0
KGVudl9hZGRvcHRzKSwgInZpYSBQWVRFU1RfQURET1BUUyIpCisgICAgICAgICAgICAgICAgICAg
ICsgYXJncworICAgICAgICAgICAgICAgICkKICAgICAgICAgc2VsZi5faW5pdGluaShhcmdzKQog
ICAgICAgICBpZiBhZGRvcHRzOgotICAgICAgICAgICAgYXJnc1s6XSA9IHNlbGYuZ2V0aW5pKCJh
ZGRvcHRzIikgKyBhcmdzCisgICAgICAgICAgICBhcmdzWzpdID0gKAorICAgICAgICAgICAgICAg
IHNlbGYuX3ZhbGlkYXRlX2FyZ3Moc2VsZi5nZXRpbmkoImFkZG9wdHMiKSwgInZpYSBhZGRvcHRz
IGNvbmZpZyIpICsgYXJncworICAgICAgICAgICAgKQorCiAgICAgICAgIHNlbGYuX2NoZWNrdmVy
c2lvbigpCiAgICAgICAgIHNlbGYuX2NvbnNpZGVyX2ltcG9ydGhvb2soYXJncykKICAgICAgICAg
c2VsZi5wbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX3ByZXBhcnNlKGFyZ3MpCi0gICAgICAgIHNlbGYu
cGx1Z2lubWFuYWdlci5sb2FkX3NldHVwdG9vbHNfZW50cnlwb2ludHMoInB5dGVzdDExIikKKyAg
ICAgICAgaWYgbm90IG9zLmVudmlyb24uZ2V0KCJQWVRFU1RfRElTQUJMRV9QTFVHSU5fQVVUT0xP
QUQiKToKKyAgICAgICAgICAgICMgRG9uJ3QgYXV0b2xvYWQgZnJvbSBzZXR1cHRvb2xzIGVudHJ5
IHBvaW50LiBPbmx5IGV4cGxpY2l0bHkgc3BlY2lmaWVkCisgICAgICAgICAgICAjIHBsdWdpbnMg
YXJlIGdvaW5nIHRvIGJlIGxvYWRlZC4KKyAgICAgICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5s
b2FkX3NldHVwdG9vbHNfZW50cnlwb2ludHMoInB5dGVzdDExIikKICAgICAgICAgc2VsZi5wbHVn
aW5tYW5hZ2VyLmNvbnNpZGVyX2VudigpCiAgICAgICAgIHNlbGYua25vd25fYXJnc19uYW1lc3Bh
Y2UgPSBucyA9IHNlbGYuX3BhcnNlci5wYXJzZV9rbm93bl9hcmdzKAogICAgICAgICAgICAgYXJn
cywgbmFtZXNwYWNlPWNvcHkuY29weShzZWxmLm9wdGlvbikKQEAgLTczOCw3ICs5NTcsMTUgQEAg
Y2xhc3MgQ29uZmlnKG9iamVjdCk6CiAgICAgICAgICAgICBpZiBucy5oZWxwIG9yIG5zLnZlcnNp
b246CiAgICAgICAgICAgICAgICAgIyB3ZSBkb24ndCB3YW50IHRvIHByZXZlbnQgLS1oZWxwLy0t
dmVyc2lvbiB0byB3b3JrCiAgICAgICAgICAgICAgICAgIyBzbyBqdXN0IGxldCBpcyBwYXNzIGFu
ZCBwcmludCBhIHdhcm5pbmcgYXQgdGhlIGVuZAotICAgICAgICAgICAgICAgIHNlbGYuX3dhcm4o
ImNvdWxkIG5vdCBsb2FkIGluaXRpYWwgY29uZnRlc3RzICglcylcbiIgJSBlLnBhdGgpCisgICAg
ICAgICAgICAgICAgZnJvbSBfcHl0ZXN0Lndhcm5pbmdzIGltcG9ydCBfaXNzdWVfd2FybmluZ19j
YXB0dXJlZAorCisgICAgICAgICAgICAgICAgX2lzc3VlX3dhcm5pbmdfY2FwdHVyZWQoCisgICAg
ICAgICAgICAgICAgICAgIFB5dGVzdENvbmZpZ1dhcm5pbmcoCisgICAgICAgICAgICAgICAgICAg
ICAgICAiY291bGQgbm90IGxvYWQgaW5pdGlhbCBjb25mdGVzdHM6IHt9Ii5mb3JtYXQoZS5wYXRo
KQorICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICBzZWxmLmhvb2ss
CisgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9MiwKKyAgICAgICAgICAgICAgICApCiAg
ICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJhaXNlCiAKQEAgLTc0Nyw5ICs5NzQs
NyBAQCBjbGFzcyBDb25maWcob2JqZWN0KToKIAogICAgICAgICBtaW52ZXIgPSBzZWxmLmluaWNm
Zy5nZXQoIm1pbnZlcnNpb24iLCBOb25lKQogICAgICAgICBpZiBtaW52ZXI6Ci0gICAgICAgICAg
ICB2ZXIgPSBtaW52ZXIuc3BsaXQoIi4iKQotICAgICAgICAgICAgbXl2ZXIgPSBweXRlc3QuX192
ZXJzaW9uX18uc3BsaXQoIi4iKQotICAgICAgICAgICAgaWYgbXl2ZXIgPCB2ZXI6CisgICAgICAg
ICAgICBpZiBWZXJzaW9uKG1pbnZlcikgPiBWZXJzaW9uKHB5dGVzdC5fX3ZlcnNpb25fXyk6CiAg
ICAgICAgICAgICAgICAgcmFpc2UgcHl0ZXN0LlVzYWdlRXJyb3IoCiAgICAgICAgICAgICAgICAg
ICAgICIlczolZDogcmVxdWlyZXMgcHl0ZXN0LSVzLCBhY3R1YWwgcHl0ZXN0LSVzJyIKICAgICAg
ICAgICAgICAgICAgICAgJSAoCkBAIC03NzgsMTEgKzEwMDMsMTAgQEAgY2xhc3MgQ29uZmlnKG9i
amVjdCk6CiAgICAgICAgICAgICAgICAgYXJncywgc2VsZi5vcHRpb24sIG5hbWVzcGFjZT1zZWxm
Lm9wdGlvbgogICAgICAgICAgICAgKQogICAgICAgICAgICAgaWYgbm90IGFyZ3M6Ci0gICAgICAg
ICAgICAgICAgY3dkID0gb3MuZ2V0Y3dkKCkKLSAgICAgICAgICAgICAgICBpZiBjd2QgPT0gc2Vs
Zi5yb290ZGlyOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuaW52b2NhdGlvbl9kaXIgPT0gc2Vs
Zi5yb290ZGlyOgogICAgICAgICAgICAgICAgICAgICBhcmdzID0gc2VsZi5nZXRpbmkoInRlc3Rw
YXRocyIpCiAgICAgICAgICAgICAgICAgaWYgbm90IGFyZ3M6Ci0gICAgICAgICAgICAgICAgICAg
IGFyZ3MgPSBbY3dkXQorICAgICAgICAgICAgICAgICAgICBhcmdzID0gW3N0cihzZWxmLmludm9j
YXRpb25fZGlyKV0KICAgICAgICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKICAgICAgICAgZXhjZXB0
IFByaW50SGVscDoKICAgICAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L2NvbmZpZy9hcmdwYXJzaW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
Y29uZmlnL2FyZ3BhcnNpbmcucHkKaW5kZXggNzgxZDhlOGM0ZWU1YzgxNDI5NmJjMzc5NjRkYjM0
ZTAyYjdlYjI2NS4uMzdmYjc3MmRiOTk3ZWM4ODIxZWNlNjNmOTA0ZjkzODFjZjNjZjAzNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL2FyZ3BhcnNpbmcucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL2FyZ3BhcnNpbmcucHkKQEAgLTEsNiAr
MSwxMSBAQAotaW1wb3J0IHNpeAotaW1wb3J0IHdhcm5pbmdzCisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQogaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgd2FybmluZ3MKKworaW1wb3J0IHB5CitpbXBv
cnQgc2l4CisKK2Zyb20gX3B5dGVzdC5jb25maWcuZXhjZXB0aW9ucyBpbXBvcnQgVXNhZ2VFcnJv
cgogCiBGSUxFX09SX0RJUiA9ICJmaWxlX29yX2RpciIKIApAQCAtMTIsNiArMTcsOCBAQCBjbGFz
cyBQYXJzZXIob2JqZWN0KToKICAgICAgICAgdGhlcmUncyBhbiBlcnJvciBwcm9jZXNzaW5nIHRo
ZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgogICAgICIiIgogCisgICAgcHJvZyA9IE5vbmUKKwog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1c2FnZT1Ob25lLCBwcm9jZXNzb3B0PU5vbmUpOgogICAg
ICAgICBzZWxmLl9hbm9ueW1vdXMgPSBPcHRpb25Hcm91cCgiY3VzdG9tIG9wdGlvbnMiLCBwYXJz
ZXI9c2VsZikKICAgICAgICAgc2VsZi5fZ3JvdXBzID0gW10KQEAgLTcwLDEyICs3NywxMyBAQCBj
bGFzcyBQYXJzZXIob2JqZWN0KToKIAogICAgICAgICBzZWxmLm9wdHBhcnNlciA9IHNlbGYuX2dl
dHBhcnNlcigpCiAgICAgICAgIHRyeV9hcmdjb21wbGV0ZShzZWxmLm9wdHBhcnNlcikKLSAgICAg
ICAgcmV0dXJuIHNlbGYub3B0cGFyc2VyLnBhcnNlX2FyZ3MoW3N0cih4KSBmb3IgeCBpbiBhcmdz
XSwgbmFtZXNwYWNlPW5hbWVzcGFjZSkKKyAgICAgICAgYXJncyA9IFtzdHIoeCkgaWYgaXNpbnN0
YW5jZSh4LCBweS5wYXRoLmxvY2FsKSBlbHNlIHggZm9yIHggaW4gYXJnc10KKyAgICAgICAgcmV0
dXJuIHNlbGYub3B0cGFyc2VyLnBhcnNlX2FyZ3MoYXJncywgbmFtZXNwYWNlPW5hbWVzcGFjZSkK
IAogICAgIGRlZiBfZ2V0cGFyc2VyKHNlbGYpOgogICAgICAgICBmcm9tIF9weXRlc3QuX2FyZ2Nv
bXBsZXRlIGltcG9ydCBmaWxlc2NvbXBsZXRlcgogCi0gICAgICAgIG9wdHBhcnNlciA9IE15T3B0
aW9uUGFyc2VyKHNlbGYsIHNlbGYuZXh0cmFfaW5mbykKKyAgICAgICAgb3B0cGFyc2VyID0gTXlP
cHRpb25QYXJzZXIoc2VsZiwgc2VsZi5leHRyYV9pbmZvLCBwcm9nPXNlbGYucHJvZykKICAgICAg
ICAgZ3JvdXBzID0gc2VsZi5fZ3JvdXBzICsgW3NlbGYuX2Fub255bW91c10KICAgICAgICAgZm9y
IGdyb3VwIGluIGdyb3VwczoKICAgICAgICAgICAgIGlmIGdyb3VwLm9wdGlvbnM6CkBAIC0xMDYs
NyArMTE0LDcgQEAgY2xhc3MgUGFyc2VyKG9iamVjdCk6CiAgICAgICAgIHRoZSByZW1haW5pbmcg
YXJndW1lbnRzIHVua25vd24gYXQgdGhpcyBwb2ludC4KICAgICAgICAgIiIiCiAgICAgICAgIG9w
dHBhcnNlciA9IHNlbGYuX2dldHBhcnNlcigpCi0gICAgICAgIGFyZ3MgPSBbc3RyKHgpIGZvciB4
IGluIGFyZ3NdCisgICAgICAgIGFyZ3MgPSBbc3RyKHgpIGlmIGlzaW5zdGFuY2UoeCwgcHkucGF0
aC5sb2NhbCkgZWxzZSB4IGZvciB4IGluIGFyZ3NdCiAgICAgICAgIHJldHVybiBvcHRwYXJzZXIu
cGFyc2Vfa25vd25fYXJncyhhcmdzLCBuYW1lc3BhY2U9bmFtZXNwYWNlKQogCiAgICAgZGVmIGFk
ZGluaShzZWxmLCBuYW1lLCBoZWxwLCB0eXBlPU5vbmUsIGRlZmF1bHQ9Tm9uZSk6CkBAIC0xNDUs
MTAgKzE1MywxMSBAQCBjbGFzcyBBcmd1bWVudEVycm9yKEV4Y2VwdGlvbik6CiBjbGFzcyBBcmd1
bWVudChvYmplY3QpOgogICAgICIiImNsYXNzIHRoYXQgbWltaWNzIHRoZSBuZWNlc3NhcnkgYmVo
YXZpb3VyIG9mIG9wdHBhcnNlLk9wdGlvbgogCi0gICAgaXRzIGN1cnJlbnRseSBhIGxlYXN0IGVm
Zm9ydCBpbXBsZW1lbnRhdGlvbgorICAgIGl0J3MgY3VycmVudGx5IGEgbGVhc3QgZWZmb3J0IGlt
cGxlbWVudGF0aW9uCiAgICAgYW5kIGlnbm9yaW5nIGNob2ljZXMgYW5kIGludGVnZXIgcHJlZml4
ZXMKICAgICBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvb3B0cGFyc2UuaHRtbCNv
cHRwYXJzZS1zdGFuZGFyZC1vcHRpb24tdHlwZXMKICAgICAiIiIKKwogICAgIF90eXBfbWFwID0g
eyJpbnQiOiBpbnQsICJzdHJpbmciOiBzdHIsICJmbG9hdCI6IGZsb2F0LCAiY29tcGxleCI6IGNv
bXBsZXh9CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgKm5hbWVzLCAqKmF0dHJzKToKQEAgLTE3
MywyMyArMTgyLDIzIEBAIGNsYXNzIEFyZ3VtZW50KG9iamVjdCk6CiAgICAgICAgICAgICBpZiBp
c2luc3RhbmNlKHR5cCwgc2l4LnN0cmluZ190eXBlcyk6CiAgICAgICAgICAgICAgICAgaWYgdHlw
ID09ICJjaG9pY2UiOgogICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAotICAgICAg
ICAgICAgICAgICAgICAgICAgInR5cGUgYXJndW1lbnQgdG8gYWRkb3B0aW9uKCkgaXMgYSBzdHJp
bmcgJXIuIgotICAgICAgICAgICAgICAgICAgICAgICAgIiBGb3IgcGFyc2VhcmcgdGhpcyBpcyBv
cHRpb25hbCBhbmQgd2hlbiBzdXBwbGllZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICIgc2hv
dWxkIGJlIGEgdHlwZS4iCisgICAgICAgICAgICAgICAgICAgICAgICAiYHR5cGVgIGFyZ3VtZW50
IHRvIGFkZG9wdGlvbigpIGlzIHRoZSBzdHJpbmcgJXIuIgorICAgICAgICAgICAgICAgICAgICAg
ICAgIiBGb3IgY2hvaWNlcyB0aGlzIGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgb21pdHRlZCwgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgIiBidXQgd2hlbiBzdXBwbGllZCBzaG91bGQgYmUgYSB0
eXBlIChmb3IgZXhhbXBsZSBgc3RyYCBvciBgaW50YCkuIgogICAgICAgICAgICAgICAgICAgICAg
ICAgIiAob3B0aW9uczogJXMpIiAlICh0eXAsIG5hbWVzKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgIERlcHJlY2F0aW9uV2FybmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2
ZWw9MywKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9NCwKICAgICAgICAgICAg
ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAjIGFyZ3BhcnNlIGV4cGVjdHMgYSB0eXBl
IGhlcmUgdGFrZSBpdCBmcm9tCiAgICAgICAgICAgICAgICAgICAgICMgdGhlIHR5cGUgb2YgdGhl
IGZpcnN0IGVsZW1lbnQKICAgICAgICAgICAgICAgICAgICAgYXR0cnNbInR5cGUiXSA9IHR5cGUo
YXR0cnNbImNob2ljZXMiXVswXSkKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAg
ICAgICAgICB3YXJuaW5ncy53YXJuKAotICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUgYXJn
dW1lbnQgdG8gYWRkb3B0aW9uKCkgaXMgYSBzdHJpbmcgJXIuIgotICAgICAgICAgICAgICAgICAg
ICAgICAgIiBGb3IgcGFyc2VhcmcgdGhpcyBzaG91bGQgYmUgYSB0eXBlLiIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICJgdHlwZWAgYXJndW1lbnQgdG8gYWRkb3B0aW9uKCkgaXMgdGhlIHN0cmlu
ZyAlciwgIgorICAgICAgICAgICAgICAgICAgICAgICAgIiBidXQgd2hlbiBzdXBwbGllZCBzaG91
bGQgYmUgYSB0eXBlIChmb3IgZXhhbXBsZSBgc3RyYCBvciBgaW50YCkuIgogICAgICAgICAgICAg
ICAgICAgICAgICAgIiAob3B0aW9uczogJXMpIiAlICh0eXAsIG5hbWVzKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywKLSAgICAgICAgICAgICAgICAgICAgICAg
IHN0YWNrbGV2ZWw9MywKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9NCwKICAg
ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICBhdHRyc1sidHlwZSJdID0g
QXJndW1lbnQuX3R5cF9tYXBbdHlwXQogICAgICAgICAgICAgICAgICMgdXNlZCBpbiB0ZXN0X3Bh
cnNlb3B0IC0+IHRlc3RfcGFyc2VfZGVmYXVsdGdldHRlcgpAQCAtMjc0LDcgKzI4Myw2IEBAIGNs
YXNzIEFyZ3VtZW50KG9iamVjdCk6CiAKIAogY2xhc3MgT3B0aW9uR3JvdXAob2JqZWN0KToKLQog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBkZXNjcmlwdGlvbj0iIiwgcGFyc2VyPU5vbmUp
OgogICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgIHNlbGYuZGVzY3JpcHRpb24gPSBk
ZXNjcmlwdGlvbgpAQCAtMzEyLDEzICszMjAsMTMgQEAgY2xhc3MgT3B0aW9uR3JvdXAob2JqZWN0
KToKIAogCiBjbGFzcyBNeU9wdGlvblBhcnNlcihhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcik6Ci0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyc2VyLCBleHRyYV9pbmZvPU5vbmUpOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIsIGV4dHJhX2luZm89Tm9uZSwgcHJvZz1Ob25lKToKICAg
ICAgICAgaWYgbm90IGV4dHJhX2luZm86CiAgICAgICAgICAgICBleHRyYV9pbmZvID0ge30KICAg
ICAgICAgc2VsZi5fcGFyc2VyID0gcGFyc2VyCiAgICAgICAgIGFyZ3BhcnNlLkFyZ3VtZW50UGFy
c2VyLl9faW5pdF9fKAogICAgICAgICAgICAgc2VsZiwKKyAgICAgICAgICAgIHByb2c9cHJvZywK
ICAgICAgICAgICAgIHVzYWdlPXBhcnNlci5fdXNhZ2UsCiAgICAgICAgICAgICBhZGRfaGVscD1G
YWxzZSwKICAgICAgICAgICAgIGZvcm1hdHRlcl9jbGFzcz1Ecm9wU2hvcnRlckxvbmdIZWxwRm9y
bWF0dGVyLApAQCAtMzI3LDYgKzMzNSwxNSBAQCBjbGFzcyBNeU9wdGlvblBhcnNlcihhcmdwYXJz
ZS5Bcmd1bWVudFBhcnNlcik6CiAgICAgICAgICMgYW4gdXNhZ2UgZXJyb3IgdG8gcHJvdmlkZSBt
b3JlIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIKICAgICAgICAgc2VsZi5leHRy
YV9pbmZvID0gZXh0cmFfaW5mbwogCisgICAgZGVmIGVycm9yKHNlbGYsIG1lc3NhZ2UpOgorICAg
ICAgICAiIiJUcmFuc2Zvcm0gYXJncGFyc2UgZXJyb3IgbWVzc2FnZSBpbnRvIFVzYWdlRXJyb3Iu
IiIiCisgICAgICAgIG1zZyA9ICIlczogZXJyb3I6ICVzIiAlIChzZWxmLnByb2csIG1lc3NhZ2Up
CisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9wYXJzZXIsICJfY29uZmlnX3NvdXJjZV9oaW50
Iik6CisgICAgICAgICAgICBtc2cgPSAiJXMgKCVzKSIgJSAobXNnLCBzZWxmLl9wYXJzZXIuX2Nv
bmZpZ19zb3VyY2VfaGludCkKKworICAgICAgICByYWlzZSBVc2FnZUVycm9yKHNlbGYuZm9ybWF0
X3VzYWdlKCkgKyBtc2cpCisKICAgICBkZWYgcGFyc2VfYXJncyhzZWxmLCBhcmdzPU5vbmUsIG5h
bWVzcGFjZT1Ob25lKToKICAgICAgICAgIiIiYWxsb3cgc3BsaXR0aW5nIG9mIHBvc2l0aW9uYWwg
YXJndW1lbnRzIiIiCiAgICAgICAgIGFyZ3MsIGFyZ3YgPSBzZWxmLnBhcnNlX2tub3duX2FyZ3Mo
YXJncywgbmFtZXNwYWNlKQpAQCAtMzc4LDkgKzM5NSw4IEBAIGNsYXNzIERyb3BTaG9ydGVyTG9u
Z0hlbHBGb3JtYXR0ZXIoYXJncGFyc2UuSGVscEZvcm1hdHRlcik6CiAgICAgICAgICAgICB4eG9w
dGlvbiA9IG9wdGlvblsyOl0KICAgICAgICAgICAgIGlmIHh4b3B0aW9uLnNwbGl0KClbMF0gbm90
IGluIG9wdGlvbl9tYXA6CiAgICAgICAgICAgICAgICAgc2hvcnRlbmVkID0geHhvcHRpb24ucmVw
bGFjZSgiLSIsICIiKQotICAgICAgICAgICAgICAgIGlmICgKLSAgICAgICAgICAgICAgICAgICAg
c2hvcnRlbmVkIG5vdCBpbiBzaG9ydF9sb25nCi0gICAgICAgICAgICAgICAgICAgIG9yIGxlbihz
aG9ydF9sb25nW3Nob3J0ZW5lZF0pIDwgbGVuKHh4b3B0aW9uKQorICAgICAgICAgICAgICAgIGlm
IHNob3J0ZW5lZCBub3QgaW4gc2hvcnRfbG9uZyBvciBsZW4oc2hvcnRfbG9uZ1tzaG9ydGVuZWRd
KSA8IGxlbigKKyAgICAgICAgICAgICAgICAgICAgeHhvcHRpb24KICAgICAgICAgICAgICAgICAp
OgogICAgICAgICAgICAgICAgICAgICBzaG9ydF9sb25nW3Nob3J0ZW5lZF0gPSB4eG9wdGlvbgog
ICAgICAgICAjIG5vdyBzaG9ydF9sb25nIGhhcyBiZWVuIGZpbGxlZCBvdXQgdG8gdGhlIGxvbmdl
c3Qgd2l0aCBkYXNoZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbmZp
Zy9leGNlcHRpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL2V4Y2VwdGlv
bnMucHkKaW5kZXggNjRiYWU4MzRkMWNlNDAwMGViMGMyMDliNzhlOTMzNTRhNTUwNWZiMC4uYmY1
OGZkZTVkYmY4MzdkOGUyMWViM2I0MjRlY2EzYWFkZDA2Y2MyOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL2V4Y2VwdGlvbnMucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3QvY29uZmlnL2V4Y2VwdGlvbnMucHkKQEAgLTEsMyArMSw0IEBACisjIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQogY2xhc3MgVXNhZ2VFcnJvcihFeGNlcHRpb24pOgogICAgICIiIiBl
cnJvciBpbiBweXRlc3QgdXNhZ2Ugb3IgaW52b2NhdGlvbiIiIgogCkBAIC01LDQgKzYsNSBAQCBj
bGFzcyBVc2FnZUVycm9yKEV4Y2VwdGlvbik6CiBjbGFzcyBQcmludEhlbHAoRXhjZXB0aW9uKToK
ICAgICAiIiJSYWlzZWQgd2hlbiBweXRlc3Qgc2hvdWxkIHByaW50IGl0J3MgaGVscCB0byBza2lw
IHRoZSByZXN0IG9mIHRoZQogICAgIGFyZ3VtZW50IHBhcnNpbmcgYW5kIHZhbGlkYXRpb24uIiIi
CisKICAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcv
ZmluZHBhdGhzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL2ZpbmRwYXRocy5w
eQppbmRleCBmZGU3YmRkYjkzOWJiNWFlYjYzNDRlNDU4ZDY1ZjJhMTc3MDU3NzdkLi5lNjc3OWIy
ODliY2ZhMDU1OTFmMTIxNGY2YzA5YTFhYWUyNjEyZDcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9jb25maWcvZmluZHBhdGhzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L2NvbmZpZy9maW5kcGF0aHMucHkKQEAgLTEsNiArMSwxMCBAQAotaW1wb3J0IHB5Cisj
IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IG9zCisKK2ltcG9ydCBweQorCiBmcm9tIC5l
eGNlcHRpb25zIGltcG9ydCBVc2FnZUVycm9yCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0
IGZhaWwKIAogCiBkZWYgZXhpc3RzKHBhdGgsIGlnbm9yZT1FbnZpcm9ubWVudEVycm9yKToKQEAg
LTEwLDE1ICsxNCwxMiBAQCBkZWYgZXhpc3RzKHBhdGgsIGlnbm9yZT1FbnZpcm9ubWVudEVycm9y
KToKICAgICAgICAgcmV0dXJuIEZhbHNlCiAKIAotZGVmIGdldGNmZyhhcmdzLCB3YXJuZnVuYz1O
b25lKToKK2RlZiBnZXRjZmcoYXJncywgY29uZmlnPU5vbmUpOgogICAgICIiIgogICAgIFNlYXJj
aCB0aGUgbGlzdCBvZiBhcmd1bWVudHMgZm9yIGEgdmFsaWQgaW5pLWZpbGUgZm9yIHB5dGVzdCwK
ICAgICBhbmQgcmV0dXJuIGEgdHVwbGUgb2YgKHJvb3RkaXIsIGluaWZpbGUsIGNmZy1kaWN0KS4K
IAotICAgIG5vdGU6IHdhcm5mdW5jIGlzIGFuIG9wdGlvbmFsIGZ1bmN0aW9uIHVzZWQgdG8gd2Fy
bgotICAgICAgICBhYm91dCBpbmktZmlsZXMgdGhhdCB1c2UgZGVwcmVjYXRlZCBmZWF0dXJlcy4K
LSAgICAgICAgVGhpcyBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBweXRlc3QKLSAg
ICAgICAgYWRvcHRzIHN0YW5kYXJkIGRlcHJlY2F0aW9uIHdhcm5pbmdzICgjMTgwNCkuCisgICAg
bm90ZTogY29uZmlnIGlzIG9wdGlvbmFsIGFuZCB1c2VkIG9ubHkgdG8gaXNzdWUgd2FybmluZ3Mg
ZXhwbGljaXRseSAoIzI4OTEpLgogICAgICIiIgogICAgIGZyb20gX3B5dGVzdC5kZXByZWNhdGVk
IGltcG9ydCBDRkdfUFlURVNUX1NFQ1RJT04KIApAQCAtMzIsMTggKzMzLDI0IEBAIGRlZiBnZXRj
ZmcoYXJncywgd2FybmZ1bmM9Tm9uZSk6CiAgICAgICAgICAgICBmb3IgaW5pYmFzZW5hbWUgaW4g
aW5pYmFzZW5hbWVzOgogICAgICAgICAgICAgICAgIHAgPSBiYXNlLmpvaW4oaW5pYmFzZW5hbWUp
CiAgICAgICAgICAgICAgICAgaWYgZXhpc3RzKHApOgotICAgICAgICAgICAgICAgICAgICBpbmlj
b25maWcgPSBweS5pbmljb25maWcuSW5pQ29uZmlnKHApCi0gICAgICAgICAgICAgICAgICAgIGlm
ICJweXRlc3QiIGluIGluaWNvbmZpZy5zZWN0aW9uczoKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmIGluaWJhc2VuYW1lID09ICJzZXR1cC5jZmciIGFuZCB3YXJuZnVuYzoKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3YXJuZnVuYygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkMxIiwgQ0ZHX1BZVEVTVF9TRUNUSU9OLmZvcm1hdChmaWxlbmFtZT1pbmliYXNlbmFtZSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gYmFzZSwgcCwgaW5pY29uZmlnWyJweXRlc3QiXQorICAgICAgICAgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBpbmljb25maWcgPSBweS5pbmljb25maWcuSW5p
Q29uZmlnKHApCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBweS5pbmljb25maWcuUGFyc2VF
cnJvciBhcyBleGM6CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKHN0
cihleGMpKQorCiAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAg
ICAgIGluaWJhc2VuYW1lID09ICJzZXR1cC5jZmciCiAgICAgICAgICAgICAgICAgICAgICAgICBh
bmQgInRvb2w6cHl0ZXN0IiBpbiBpbmljb25maWcuc2VjdGlvbnMKICAgICAgICAgICAgICAgICAg
ICAgKToKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiYXNlLCBwLCBpbmljb25maWdb
InRvb2w6cHl0ZXN0Il0KKyAgICAgICAgICAgICAgICAgICAgZWxpZiAicHl0ZXN0IiBpbiBpbmlj
b25maWcuc2VjdGlvbnM6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmliYXNlbmFtZSA9
PSAic2V0dXAuY2ZnIiBhbmQgY29uZmlnIGlzIG5vdCBOb25lOgorCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmFpbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ZHX1BZ
VEVTVF9TRUNUSU9OLmZvcm1hdChmaWxlbmFtZT1pbmliYXNlbmFtZSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB5dHJhY2U9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2UsIHAsIGluaWNvbmZp
Z1sicHl0ZXN0Il0KICAgICAgICAgICAgICAgICAgICAgZWxpZiBpbmliYXNlbmFtZSA9PSAicHl0
ZXN0LmluaSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAjIGFsbG93ZWQgdG8gYmUgZW1wdHkK
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiYXNlLCBwLCB7fQpAQCAtNzQsNyArODEs
NiBAQCBkZWYgZ2V0X2NvbW1vbl9hbmNlc3RvcihwYXRocyk6CiAKIAogZGVmIGdldF9kaXJzX2Zy
b21fYXJncyhhcmdzKToKLQogICAgIGRlZiBpc19vcHRpb24oeCk6CiAgICAgICAgIHJldHVybiBz
dHIoeCkuc3RhcnRzd2l0aCgiLSIpCiAKQEAgLTk2LDQ1ICsxMDIsNTIgQEAgZGVmIGdldF9kaXJz
X2Zyb21fYXJncyhhcmdzKToKICAgICByZXR1cm4gW2dldF9kaXJfZnJvbV9wYXRoKHBhdGgpIGZv
ciBwYXRoIGluIHBvc3NpYmxlX3BhdGhzIGlmIHBhdGguZXhpc3RzKCldCiAKIAotZGVmIGRldGVy
bWluZV9zZXR1cChpbmlmaWxlLCBhcmdzLCB3YXJuZnVuYz1Ob25lLCByb290ZGlyX2NtZF9hcmc9
Tm9uZSk6CitkZWYgZGV0ZXJtaW5lX3NldHVwKGluaWZpbGUsIGFyZ3MsIHJvb3RkaXJfY21kX2Fy
Zz1Ob25lLCBjb25maWc9Tm9uZSk6CiAgICAgZGlycyA9IGdldF9kaXJzX2Zyb21fYXJncyhhcmdz
KQogICAgIGlmIGluaWZpbGU6CiAgICAgICAgIGluaWNvbmZpZyA9IHB5LmluaWNvbmZpZy5JbmlD
b25maWcoaW5pZmlsZSkKICAgICAgICAgaXNfY2ZnX2ZpbGUgPSBzdHIoaW5pZmlsZSkuZW5kc3dp
dGgoIi5jZmciKQotICAgICAgICAjIFRPRE86IFtweXRlc3RdIHNlY3Rpb24gaW4gKi5jZmcgZmls
ZXMgaXMgZGVwcmljYXRlZC4gTmVlZCByZWZhY3RvcmluZy4KICAgICAgICAgc2VjdGlvbnMgPSBb
InRvb2w6cHl0ZXN0IiwgInB5dGVzdCJdIGlmIGlzX2NmZ19maWxlIGVsc2UgWyJweXRlc3QiXQog
ICAgICAgICBmb3Igc2VjdGlvbiBpbiBzZWN0aW9uczoKICAgICAgICAgICAgIHRyeToKICAgICAg
ICAgICAgICAgICBpbmljZmcgPSBpbmljb25maWdbc2VjdGlvbl0KLSAgICAgICAgICAgICAgICBp
ZiBpc19jZmdfZmlsZSBhbmQgc2VjdGlvbiA9PSAicHl0ZXN0IiBhbmQgd2FybmZ1bmM6CisgICAg
ICAgICAgICAgICAgaWYgaXNfY2ZnX2ZpbGUgYW5kIHNlY3Rpb24gPT0gInB5dGVzdCIgYW5kIGNv
bmZpZyBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAgZnJvbSBfcHl0ZXN0LmRlcHJl
Y2F0ZWQgaW1wb3J0IENGR19QWVRFU1RfU0VDVElPTgogCi0gICAgICAgICAgICAgICAgICAgIHdh
cm5mdW5jKCJDMSIsIENGR19QWVRFU1RfU0VDVElPTi5mb3JtYXQoZmlsZW5hbWU9c3RyKGluaWZp
bGUpKSkKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgKKyAgICAgICAgICAgICAgICAgICAgICAg
IENGR19QWVRFU1RfU0VDVElPTi5mb3JtYXQoZmlsZW5hbWU9c3RyKGluaWZpbGUpKSwgcHl0cmFj
ZT1GYWxzZQorICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgYnJlYWsKICAg
ICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKICAgICAgICAgICAgICAgICBpbmljZmcgPSBOb25l
Ci0gICAgICAgIHJvb3RkaXIgPSBnZXRfY29tbW9uX2FuY2VzdG9yKGRpcnMpCisgICAgICAgIGlm
IHJvb3RkaXJfY21kX2FyZyBpcyBOb25lOgorICAgICAgICAgICAgcm9vdGRpciA9IGdldF9jb21t
b25fYW5jZXN0b3IoZGlycykKICAgICBlbHNlOgogICAgICAgICBhbmNlc3RvciA9IGdldF9jb21t
b25fYW5jZXN0b3IoZGlycykKLSAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0gZ2V0
Y2ZnKFthbmNlc3Rvcl0sIHdhcm5mdW5jPXdhcm5mdW5jKQotICAgICAgICBpZiByb290ZGlyIGlz
IE5vbmU6Ci0gICAgICAgICAgICBmb3Igcm9vdGRpciBpbiBhbmNlc3Rvci5wYXJ0cyhyZXZlcnNl
PVRydWUpOgotICAgICAgICAgICAgICAgIGlmIHJvb3RkaXIuam9pbigic2V0dXAucHkiKS5leGlz
dHMoKToKKyAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0gZ2V0Y2ZnKFthbmNlc3Rv
cl0sIGNvbmZpZz1jb25maWcpCisgICAgICAgIGlmIHJvb3RkaXIgaXMgTm9uZSBhbmQgcm9vdGRp
cl9jbWRfYXJnIGlzIE5vbmU6CisgICAgICAgICAgICBmb3IgcG9zc2libGVfcm9vdGRpciBpbiBh
bmNlc3Rvci5wYXJ0cyhyZXZlcnNlPVRydWUpOgorICAgICAgICAgICAgICAgIGlmIHBvc3NpYmxl
X3Jvb3RkaXIuam9pbigic2V0dXAucHkiKS5leGlzdHMoKToKKyAgICAgICAgICAgICAgICAgICAg
cm9vdGRpciA9IHBvc3NpYmxlX3Jvb3RkaXIKICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2Zn
ID0gZ2V0Y2ZnKGRpcnMsIHdhcm5mdW5jPXdhcm5mdW5jKQorICAgICAgICAgICAgICAgIGlmIGRp
cnMgIT0gW2FuY2VzdG9yXToKKyAgICAgICAgICAgICAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwg
aW5pY2ZnID0gZ2V0Y2ZnKGRpcnMsIGNvbmZpZz1jb25maWcpCiAgICAgICAgICAgICAgICAgaWYg
cm9vdGRpciBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICByb290ZGlyID0gZ2V0X2NvbW1v
bl9hbmNlc3RvcihbcHkucGF0aC5sb2NhbCgpLCBhbmNlc3Rvcl0pCisgICAgICAgICAgICAgICAg
ICAgIGlmIGNvbmZpZyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGN3ZCA9
IGNvbmZpZy5pbnZvY2F0aW9uX2RpcgorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICAgICAgY3dkID0gcHkucGF0aC5sb2NhbCgpCisgICAgICAgICAgICAgICAg
ICAgIHJvb3RkaXIgPSBnZXRfY29tbW9uX2FuY2VzdG9yKFtjd2QsIGFuY2VzdG9yXSkKICAgICAg
ICAgICAgICAgICAgICAgaXNfZnNfcm9vdCA9IG9zLnBhdGguc3BsaXRkcml2ZShzdHIocm9vdGRp
cikpWzFdID09ICIvIgogICAgICAgICAgICAgICAgICAgICBpZiBpc19mc19yb290OgogICAgICAg
ICAgICAgICAgICAgICAgICAgcm9vdGRpciA9IGFuY2VzdG9yCiAgICAgaWYgcm9vdGRpcl9jbWRf
YXJnOgotICAgICAgICByb290ZGlyX2Fic19wYXRoID0gcHkucGF0aC5sb2NhbChvcy5wYXRoLmV4
cGFuZHZhcnMocm9vdGRpcl9jbWRfYXJnKSkKLSAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIo
c3RyKHJvb3RkaXJfYWJzX3BhdGgpKToKKyAgICAgICAgcm9vdGRpciA9IHB5LnBhdGgubG9jYWwo
b3MucGF0aC5leHBhbmR2YXJzKHJvb3RkaXJfY21kX2FyZykpCisgICAgICAgIGlmIG5vdCByb290
ZGlyLmlzZGlyKCk6CiAgICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKAogICAgICAgICAgICAg
ICAgICJEaXJlY3RvcnkgJ3t9JyBub3QgZm91bmQuIENoZWNrIHlvdXIgJy0tcm9vdGRpcicgb3B0
aW9uLiIuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICByb290ZGlyX2Fic19wYXRoCisgICAg
ICAgICAgICAgICAgICAgIHJvb3RkaXIKICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAp
Ci0gICAgICAgIHJvb3RkaXIgPSByb290ZGlyX2Fic19wYXRoCiAgICAgcmV0dXJuIHJvb3RkaXIs
IGluaWZpbGUsIGluaWNmZyBvciB7fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvZGVidWdnaW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvZGVidWdnaW5nLnB5Cmlu
ZGV4IDJlMjUzYWFhMmFmMzBhZDFiNDE1ZmRlZWQ0ZjcwMjJjNzZkY2YwNTcuLjk5ZDM1YTVhYjc3
ZTE4MGU5OTMzYWY3NWQzOWQ0ZjU0ZjZjZWVkY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L2RlYnVnZ2luZy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9kZWJ1
Z2dpbmcucHkKQEAgLTEsMTYgKzEsMjggQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIg
aW50ZXJhY3RpdmUgZGVidWdnaW5nIHdpdGggUERCLCB0aGUgUHl0aG9uIERlYnVnZ2VyLiAiIiIK
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1
bmN0aW9uCisKK2ltcG9ydCBhcmdwYXJzZQogaW1wb3J0IHBkYgogaW1wb3J0IHN5cwotaW1wb3J0
IG9zCiBmcm9tIGRvY3Rlc3QgaW1wb3J0IFVuZXhwZWN0ZWRFeGNlcHRpb24KIAotdHJ5OgotICAg
IGZyb20gYnVpbHRpbnMgaW1wb3J0IGJyZWFrcG9pbnQgICMgbm9xYQorZnJvbSBfcHl0ZXN0IGlt
cG9ydCBvdXRjb21lcworZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgaG9va2ltcGwKK2Zyb20g
X3B5dGVzdC5jb25maWcuZXhjZXB0aW9ucyBpbXBvcnQgVXNhZ2VFcnJvcgorCiAKLSAgICBTVVBQ
T1JUU19CUkVBS1BPSU5UX0JVSUxUSU4gPSBUcnVlCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAg
U1VQUE9SVFNfQlJFQUtQT0lOVF9CVUlMVElOID0gRmFsc2UKK2RlZiBfdmFsaWRhdGVfdXNlcGRi
X2Nscyh2YWx1ZSk6CisgICAgIiIiVmFsaWRhdGUgc3ludGF4IG9mIC0tcGRiY2xzIG9wdGlvbi4i
IiIKKyAgICB0cnk6CisgICAgICAgIG1vZG5hbWUsIGNsYXNzbmFtZSA9IHZhbHVlLnNwbGl0KCI6
IikKKyAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgcmFpc2UgYXJncGFyc2UuQXJndW1l
bnRUeXBlRXJyb3IoCisgICAgICAgICAgICAieyFyfSBpcyBub3QgaW4gdGhlIGZvcm1hdCAnbW9k
bmFtZTpjbGFzc25hbWUnIi5mb3JtYXQodmFsdWUpCisgICAgICAgICkKKyAgICByZXR1cm4gKG1v
ZG5hbWUsIGNsYXNzbmFtZSkKIAogCiBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgpAQCAt
MjUsODUgKzM3LDI1NyBAQCBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgogICAgICAgICAi
LS1wZGJjbHMiLAogICAgICAgICBkZXN0PSJ1c2VwZGJfY2xzIiwKICAgICAgICAgbWV0YXZhcj0i
bW9kdWxlbmFtZTpjbGFzc25hbWUiLAorICAgICAgICB0eXBlPV92YWxpZGF0ZV91c2VwZGJfY2xz
LAogICAgICAgICBoZWxwPSJzdGFydCBhIGN1c3RvbSBpbnRlcmFjdGl2ZSBQeXRob24gZGVidWdn
ZXIgb24gZXJyb3JzLiAiCiAgICAgICAgICJGb3IgZXhhbXBsZTogLS1wZGJjbHM9SVB5dGhvbi50
ZXJtaW5hbC5kZWJ1Z2dlcjpUZXJtaW5hbFBkYiIsCiAgICAgKQorICAgIGdyb3VwLl9hZGRvcHRp
b24oCisgICAgICAgICItLXRyYWNlIiwKKyAgICAgICAgZGVzdD0idHJhY2UiLAorICAgICAgICBh
Y3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICBoZWxwPSJJbW1lZGlhdGVseSBicmVhayB3aGVu
IHJ1bm5pbmcgZWFjaCB0ZXN0LiIsCisgICAgKQogCiAKIGRlZiBweXRlc3RfY29uZmlndXJlKGNv
bmZpZyk6Ci0gICAgaWYgY29uZmlnLmdldHZhbHVlKCJ1c2VwZGJfY2xzIik6Ci0gICAgICAgIG1v
ZG5hbWUsIGNsYXNzbmFtZSA9IGNvbmZpZy5nZXR2YWx1ZSgidXNlcGRiX2NscyIpLnNwbGl0KCI6
IikKLSAgICAgICAgX19pbXBvcnRfXyhtb2RuYW1lKQotICAgICAgICBwZGJfY2xzID0gZ2V0YXR0
cihzeXMubW9kdWxlc1ttb2RuYW1lXSwgY2xhc3NuYW1lKQotICAgIGVsc2U6Ci0gICAgICAgIHBk
Yl9jbHMgPSBwZGIuUGRiCi0KKyAgICBpZiBjb25maWcuZ2V0dmFsdWUoInRyYWNlIik6CisgICAg
ICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKFBkYlRyYWNlKCksICJwZGJ0cmFjZSIp
CiAgICAgaWYgY29uZmlnLmdldHZhbHVlKCJ1c2VwZGIiKToKICAgICAgICAgY29uZmlnLnBsdWdp
bm1hbmFnZXIucmVnaXN0ZXIoUGRiSW52b2tlKCksICJwZGJpbnZva2UiKQogCi0gICAgIyBVc2Ug
Y3VzdG9tIFBkYiBjbGFzcyBzZXRfdHJhY2UgaW5zdGVhZCBvZiBkZWZhdWx0IFBkYiBvbiBicmVh
a3BvaW50KCkgY2FsbAotICAgIGlmIFNVUFBPUlRTX0JSRUFLUE9JTlRfQlVJTFRJTjoKLSAgICAg
ICAgX2Vudmlyb25fcHl0aG9uYnJlYWtwb2ludCA9IG9zLmVudmlyb24uZ2V0KCJQWVRIT05CUkVB
S1BPSU5UIiwgIiIpCi0gICAgICAgIGlmIF9lbnZpcm9uX3B5dGhvbmJyZWFrcG9pbnQgPT0gIiI6
Ci0gICAgICAgICAgICBzeXMuYnJlYWtwb2ludGhvb2sgPSBweXRlc3RQREIuc2V0X3RyYWNlCi0K
LSAgICBvbGQgPSAocGRiLnNldF90cmFjZSwgcHl0ZXN0UERCLl9wbHVnaW5tYW5hZ2VyKQotCi0g
ICAgZGVmIGZpbigpOgotICAgICAgICBwZGIuc2V0X3RyYWNlLCBweXRlc3RQREIuX3BsdWdpbm1h
bmFnZXIgPSBvbGQKLSAgICAgICAgcHl0ZXN0UERCLl9jb25maWcgPSBOb25lCi0gICAgICAgIHB5
dGVzdFBEQi5fcGRiX2NscyA9IHBkYi5QZGIKLSAgICAgICAgaWYgU1VQUE9SVFNfQlJFQUtQT0lO
VF9CVUlMVElOOgotICAgICAgICAgICAgc3lzLmJyZWFrcG9pbnRob29rID0gc3lzLl9fYnJlYWtw
b2ludGhvb2tfXwotCisgICAgcHl0ZXN0UERCLl9zYXZlZC5hcHBlbmQoCisgICAgICAgIChwZGIu
c2V0X3RyYWNlLCBweXRlc3RQREIuX3BsdWdpbm1hbmFnZXIsIHB5dGVzdFBEQi5fY29uZmlnKQor
ICAgICkKICAgICBwZGIuc2V0X3RyYWNlID0gcHl0ZXN0UERCLnNldF90cmFjZQogICAgIHB5dGVz
dFBEQi5fcGx1Z2lubWFuYWdlciA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyCiAgICAgcHl0ZXN0UERC
Ll9jb25maWcgPSBjb25maWcKLSAgICBweXRlc3RQREIuX3BkYl9jbHMgPSBwZGJfY2xzCisKKyAg
ICAjIE5PVEU6IG5vdCB1c2luZyBweXRlc3RfdW5jb25maWd1cmUsIHNpbmNlIGl0IG1pZ2h0IGdl
dCBjYWxsZWQgYWx0aG91Z2gKKyAgICAjICAgICAgIHB5dGVzdF9jb25maWd1cmUgd2FzIG5vdCAo
aWYgYW5vdGhlciBwbHVnaW4gcmFpc2VzIFVzYWdlRXJyb3IpLgorICAgIGRlZiBmaW4oKToKKyAg
ICAgICAgKAorICAgICAgICAgICAgcGRiLnNldF90cmFjZSwKKyAgICAgICAgICAgIHB5dGVzdFBE
Qi5fcGx1Z2lubWFuYWdlciwKKyAgICAgICAgICAgIHB5dGVzdFBEQi5fY29uZmlnLAorICAgICAg
ICApID0gcHl0ZXN0UERCLl9zYXZlZC5wb3AoKQorCiAgICAgY29uZmlnLl9jbGVhbnVwLmFwcGVu
ZChmaW4pCiAKIAogY2xhc3MgcHl0ZXN0UERCKG9iamVjdCk6CiAgICAgIiIiIFBzZXVkbyBQREIg
dGhhdCBkZWZlcnMgdG8gdGhlIHJlYWwgcGRiLiAiIiIKKwogICAgIF9wbHVnaW5tYW5hZ2VyID0g
Tm9uZQogICAgIF9jb25maWcgPSBOb25lCi0gICAgX3BkYl9jbHMgPSBwZGIuUGRiCisgICAgX3Nh
dmVkID0gW10KKyAgICBfcmVjdXJzaXZlX2RlYnVnID0gMAorICAgIF93cmFwcGVkX3BkYl9jbHMg
PSBOb25lCiAKICAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0X3RyYWNlKGNscyk6Ci0gICAg
ICAgICIiIiBpbnZva2UgUERCIHNldF90cmFjZSBkZWJ1Z2dpbmcsIGRyb3BwaW5nIGFueSBJTyBj
YXB0dXJpbmcuICIiIgorICAgIGRlZiBfaXNfY2FwdHVyaW5nKGNscywgY2FwbWFuKToKKyAgICAg
ICAgaWYgY2FwbWFuOgorICAgICAgICAgICAgcmV0dXJuIGNhcG1hbi5pc19jYXB0dXJpbmcoKQor
ICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfaW1wb3J0
X3BkYl9jbHMoY2xzLCBjYXBtYW4pOgorICAgICAgICBpZiBub3QgY2xzLl9jb25maWc6CisgICAg
ICAgICAgICAjIEhhcHBlbnMgd2hlbiB1c2luZyBweXRlc3Quc2V0X3RyYWNlIG91dHNpZGUgb2Yg
YSB0ZXN0LgorICAgICAgICAgICAgcmV0dXJuIHBkYi5QZGIKKworICAgICAgICB1c2VwZGJfY2xz
ID0gY2xzLl9jb25maWcuZ2V0dmFsdWUoInVzZXBkYl9jbHMiKQorCisgICAgICAgIGlmIGNscy5f
d3JhcHBlZF9wZGJfY2xzIGFuZCBjbHMuX3dyYXBwZWRfcGRiX2Nsc1swXSA9PSB1c2VwZGJfY2xz
OgorICAgICAgICAgICAgcmV0dXJuIGNscy5fd3JhcHBlZF9wZGJfY2xzWzFdCisKKyAgICAgICAg
aWYgdXNlcGRiX2NsczoKKyAgICAgICAgICAgIG1vZG5hbWUsIGNsYXNzbmFtZSA9IHVzZXBkYl9j
bHMKKworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIF9faW1wb3J0X18obW9kbmFt
ZSkKKyAgICAgICAgICAgICAgICBtb2QgPSBzeXMubW9kdWxlc1ttb2RuYW1lXQorCisgICAgICAg
ICAgICAgICAgIyBIYW5kbGUgLS1wZGJjbHM9cGRiOnBkYi5QZGIgKHVzZWZ1bCBlLmcuIHdpdGgg
cGRicHApLgorICAgICAgICAgICAgICAgIHBhcnRzID0gY2xhc3NuYW1lLnNwbGl0KCIuIikKKyAg
ICAgICAgICAgICAgICBwZGJfY2xzID0gZ2V0YXR0cihtb2QsIHBhcnRzWzBdKQorICAgICAgICAg
ICAgICAgIGZvciBwYXJ0IGluIHBhcnRzWzE6XToKKyAgICAgICAgICAgICAgICAgICAgcGRiX2Ns
cyA9IGdldGF0dHIocGRiX2NscywgcGFydCkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g
YXMgZXhjOgorICAgICAgICAgICAgICAgIHZhbHVlID0gIjoiLmpvaW4oKG1vZG5hbWUsIGNsYXNz
bmFtZSkpCisgICAgICAgICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigKKyAgICAgICAgICAgICAg
ICAgICAgIi0tcGRiY2xzOiBjb3VsZCBub3QgaW1wb3J0IHshcn06IHt9Ii5mb3JtYXQodmFsdWUs
IGV4YykKKyAgICAgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwZGJf
Y2xzID0gcGRiLlBkYgorCisgICAgICAgIHdyYXBwZWRfY2xzID0gY2xzLl9nZXRfcGRiX3dyYXBw
ZXJfY2xhc3MocGRiX2NscywgY2FwbWFuKQorICAgICAgICBjbHMuX3dyYXBwZWRfcGRiX2NscyA9
ICh1c2VwZGJfY2xzLCB3cmFwcGVkX2NscykKKyAgICAgICAgcmV0dXJuIHdyYXBwZWRfY2xzCisK
KyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX2dldF9wZGJfd3JhcHBlcl9jbGFzcyhjbHMsIHBk
Yl9jbHMsIGNhcG1hbik6CisgICAgICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZworCisgICAgICAg
IGNsYXNzIFB5dGVzdFBkYldyYXBwZXIocGRiX2Nscywgb2JqZWN0KToKKyAgICAgICAgICAgIF9w
eXRlc3RfY2FwbWFuID0gY2FwbWFuCisgICAgICAgICAgICBfY29udGludWVkID0gRmFsc2UKKwor
ICAgICAgICAgICAgZGVmIGRvX2RlYnVnKHNlbGYsIGFyZyk6CisgICAgICAgICAgICAgICAgY2xz
Ll9yZWN1cnNpdmVfZGVidWcgKz0gMQorICAgICAgICAgICAgICAgIHJldCA9IHN1cGVyKFB5dGVz
dFBkYldyYXBwZXIsIHNlbGYpLmRvX2RlYnVnKGFyZykKKyAgICAgICAgICAgICAgICBjbHMuX3Jl
Y3Vyc2l2ZV9kZWJ1ZyAtPSAxCisgICAgICAgICAgICAgICAgcmV0dXJuIHJldAorCisgICAgICAg
ICAgICBkZWYgZG9fY29udGludWUoc2VsZiwgYXJnKToKKyAgICAgICAgICAgICAgICByZXQgPSBz
dXBlcihQeXRlc3RQZGJXcmFwcGVyLCBzZWxmKS5kb19jb250aW51ZShhcmcpCisgICAgICAgICAg
ICAgICAgaWYgY2xzLl9yZWN1cnNpdmVfZGVidWcgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAg
dHcgPSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNscy5fY29uZmlnKQor
ICAgICAgICAgICAgICAgICAgICB0dy5saW5lKCkKKworICAgICAgICAgICAgICAgICAgICBjYXBt
YW4gPSBzZWxmLl9weXRlc3RfY2FwbWFuCisgICAgICAgICAgICAgICAgICAgIGNhcHR1cmluZyA9
IHB5dGVzdFBEQi5faXNfY2FwdHVyaW5nKGNhcG1hbikKKyAgICAgICAgICAgICAgICAgICAgaWYg
Y2FwdHVyaW5nOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgY2FwdHVyaW5nID09ICJnbG9i
YWwiOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3LnNlcCgiPiIsICJQREIgY29udGlu
dWUgKElPLWNhcHR1cmluZyByZXN1bWVkKSIpCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3LnNlcCgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIj4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUERC
IGNvbnRpbnVlIChJTy1jYXB0dXJpbmcgcmVzdW1lZCBmb3IgJXMpIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAlIGNhcHR1cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICAgICAgICAgICBjYXBtYW4ucmVzdW1lKCkKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHR3LnNlcCgiPiIsICJQREIg
Y29udGludWUiKQorICAgICAgICAgICAgICAgIGNscy5fcGx1Z2lubWFuYWdlci5ob29rLnB5dGVz
dF9sZWF2ZV9wZGIoY29uZmlnPWNscy5fY29uZmlnLCBwZGI9c2VsZikKKyAgICAgICAgICAgICAg
ICBzZWxmLl9jb250aW51ZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgcmV0dXJuIHJldAorCisg
ICAgICAgICAgICBkb19jID0gZG9fY29udCA9IGRvX2NvbnRpbnVlCisKKyAgICAgICAgICAgIGRl
ZiBkb19xdWl0KHNlbGYsIGFyZyk6CisgICAgICAgICAgICAgICAgIiIiUmFpc2UgRXhpdCBvdXRj
b21lIHdoZW4gcXVpdCBjb21tYW5kIGlzIHVzZWQgaW4gcGRiLgorCisgICAgICAgICAgICAgICAg
VGhpcyBpcyBhIGJpdCBvZiBhIGhhY2sgLSBpdCB3b3VsZCBiZSBiZXR0ZXIgaWYgQmRiUXVpdAor
ICAgICAgICAgICAgICAgIGNvdWxkIGJlIGhhbmRsZWQsIGJ1dCB0aGlzIHdvdWxkIHJlcXVpcmUg
dG8gd3JhcCB0aGUKKyAgICAgICAgICAgICAgICB3aG9sZSBweXRlc3QgcnVuLCBhbmQgYWRqdXN0
IHRoZSByZXBvcnQgZXRjLgorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgIHJl
dCA9IHN1cGVyKFB5dGVzdFBkYldyYXBwZXIsIHNlbGYpLmRvX3F1aXQoYXJnKQorCisgICAgICAg
ICAgICAgICAgaWYgY2xzLl9yZWN1cnNpdmVfZGVidWcgPT0gMDoKKyAgICAgICAgICAgICAgICAg
ICAgb3V0Y29tZXMuZXhpdCgiUXVpdHRpbmcgZGVidWdnZXIiKQorCisgICAgICAgICAgICAgICAg
cmV0dXJuIHJldAorCisgICAgICAgICAgICBkb19xID0gZG9fcXVpdAorICAgICAgICAgICAgZG9f
ZXhpdCA9IGRvX3F1aXQKKworICAgICAgICAgICAgZGVmIHNldHVwKHNlbGYsIGYsIHRiKToKKyAg
ICAgICAgICAgICAgICAiIiJTdXNwZW5kIG9uIHNldHVwKCkuCisKKyAgICAgICAgICAgICAgICBO
ZWVkZWQgYWZ0ZXIgZG9fY29udGludWUgcmVzdW1lZCwgYW5kIGVudGVyaW5nIGFub3RoZXIKKyAg
ICAgICAgICAgICAgICBicmVha3BvaW50IGFnYWluLgorICAgICAgICAgICAgICAgICIiIgorICAg
ICAgICAgICAgICAgIHJldCA9IHN1cGVyKFB5dGVzdFBkYldyYXBwZXIsIHNlbGYpLnNldHVwKGYs
IHRiKQorICAgICAgICAgICAgICAgIGlmIG5vdCByZXQgYW5kIHNlbGYuX2NvbnRpbnVlZDoKKyAg
ICAgICAgICAgICAgICAgICAgIyBwZGIuc2V0dXAoKSByZXR1cm5zIFRydWUgaWYgdGhlIGNvbW1h
bmQgd2FudHMgdG8gZXhpdAorICAgICAgICAgICAgICAgICAgICAjIGZyb20gdGhlIGludGVyYWN0
aW9uOiBkbyBub3Qgc3VzcGVuZCBjYXB0dXJpbmcgdGhlbi4KKyAgICAgICAgICAgICAgICAgICAg
aWYgc2VsZi5fcHl0ZXN0X2NhcG1hbjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3B5
dGVzdF9jYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShpbl89VHJ1ZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gcmV0CisKKyAgICAgICAgICAgIGRlZiBnZXRfc3RhY2soc2VsZiwgZiwgdCk6
CisgICAgICAgICAgICAgICAgc3RhY2ssIGkgPSBzdXBlcihQeXRlc3RQZGJXcmFwcGVyLCBzZWxm
KS5nZXRfc3RhY2soZiwgdCkKKyAgICAgICAgICAgICAgICBpZiBmIGlzIE5vbmU6CisgICAgICAg
ICAgICAgICAgICAgICMgRmluZCBsYXN0IG5vbi1oaWRkZW4gZnJhbWUuCisgICAgICAgICAgICAg
ICAgICAgIGkgPSBtYXgoMCwgbGVuKHN0YWNrKSAtIDEpCisgICAgICAgICAgICAgICAgICAgIHdo
aWxlIGkgYW5kIHN0YWNrW2ldWzBdLmZfbG9jYWxzLmdldCgiX190cmFjZWJhY2toaWRlX18iLCBG
YWxzZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBpIC09IDEKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RhY2ssIGkKKworICAgICAgICByZXR1cm4gUHl0ZXN0UGRiV3JhcHBlcgorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIF9pbml0X3BkYihjbHMsIG1ldGhvZCwgKmFyZ3MsICoqa3dh
cmdzKToKKyAgICAgICAgIiIiIEluaXRpYWxpemUgUERCIGRlYnVnZ2luZywgZHJvcHBpbmcgYW55
IElPIGNhcHR1cmluZy4gIiIiCiAgICAgICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZwogCi0gICAg
ICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgpLmZfYmFjawogICAgICAgICBpZiBjbHMuX3BsdWdp
bm1hbmFnZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBjYXBtYW4gPSBjbHMuX3BsdWdpbm1h
bmFnZXIuZ2V0cGx1Z2luKCJjYXB0dXJlbWFuYWdlciIpCi0gICAgICAgICAgICBpZiBjYXBtYW46
Ci0gICAgICAgICAgICAgICAgY2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaW5fPVRydWUp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjYXBtYW4gPSBOb25lCisgICAgICAgIGlmIGNh
cG1hbjoKKyAgICAgICAgICAgIGNhcG1hbi5zdXNwZW5kKGluXz1UcnVlKQorCisgICAgICAgIGlm
IGNscy5fY29uZmlnOgogICAgICAgICAgICAgdHcgPSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVy
bWluYWxfd3JpdGVyKGNscy5fY29uZmlnKQogICAgICAgICAgICAgdHcubGluZSgpCi0gICAgICAg
ICAgICB0dy5zZXAoIj4iLCAiUERCIHNldF90cmFjZSAoSU8tY2FwdHVyaW5nIHR1cm5lZCBvZmYp
IikKLSAgICAgICAgICAgIGNscy5fcGx1Z2lubWFuYWdlci5ob29rLnB5dGVzdF9lbnRlcl9wZGIo
Y29uZmlnPWNscy5fY29uZmlnKQotICAgICAgICBjbHMuX3BkYl9jbHMoKS5zZXRfdHJhY2UoZnJh
bWUpCiAKKyAgICAgICAgICAgIGlmIGNscy5fcmVjdXJzaXZlX2RlYnVnID09IDA6CisgICAgICAg
ICAgICAgICAgIyBIYW5kbGUgaGVhZGVyIHNpbWlsYXIgdG8gcGRiLnNldF90cmFjZSBpbiBweTM3
Ky4KKyAgICAgICAgICAgICAgICBoZWFkZXIgPSBrd2FyZ3MucG9wKCJoZWFkZXIiLCBOb25lKQor
ICAgICAgICAgICAgICAgIGlmIGhlYWRlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAg
ICAgdHcuc2VwKCI+IiwgaGVhZGVyKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgIGNhcHR1cmluZyA9IGNscy5faXNfY2FwdHVyaW5nKGNhcG1hbikKKyAgICAgICAg
ICAgICAgICAgICAgaWYgY2FwdHVyaW5nID09ICJnbG9iYWwiOgorICAgICAgICAgICAgICAgICAg
ICAgICAgdHcuc2VwKCI+IiwgIlBEQiAlcyAoSU8tY2FwdHVyaW5nIHR1cm5lZCBvZmYpIiAlICht
ZXRob2QsKSkKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBjYXB0dXJpbmc6CisgICAgICAgICAg
ICAgICAgICAgICAgICB0dy5zZXAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj4iLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQREIgJXMgKElPLWNhcHR1cmluZyB0dXJuZWQg
b2ZmIGZvciAlcykiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAobWV0aG9kLCBjYXB0
dXJpbmcpLAorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgdHcuc2VwKCI+IiwgIlBEQiAlcyIgJSAobWV0
aG9kLCkpCisKKyAgICAgICAgX3BkYiA9IGNscy5faW1wb3J0X3BkYl9jbHMoY2FwbWFuKSgqKmt3
YXJncykKKworICAgICAgICBpZiBjbHMuX3BsdWdpbm1hbmFnZXI6CisgICAgICAgICAgICBjbHMu
X3BsdWdpbm1hbmFnZXIuaG9vay5weXRlc3RfZW50ZXJfcGRiKGNvbmZpZz1jbHMuX2NvbmZpZywg
cGRiPV9wZGIpCisgICAgICAgIHJldHVybiBfcGRiCiAKLWNsYXNzIFBkYkludm9rZShvYmplY3Qp
OgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBzZXRfdHJhY2UoY2xzLCAqYXJncywgKiprd2Fy
Z3MpOgorICAgICAgICAiIiJJbnZva2UgZGVidWdnaW5nIHZpYSBgYFBkYi5zZXRfdHJhY2VgYCwg
ZHJvcHBpbmcgYW55IElPIGNhcHR1cmluZy4iIiIKKyAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZy
YW1lKCkuZl9iYWNrCisgICAgICAgIF9wZGIgPSBjbHMuX2luaXRfcGRiKCJzZXRfdHJhY2UiLCAq
YXJncywgKiprd2FyZ3MpCisgICAgICAgIF9wZGIuc2V0X3RyYWNlKGZyYW1lKQogCisKK2NsYXNz
IFBkYkludm9rZShvYmplY3QpOgogICAgIGRlZiBweXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0KHNl
bGYsIG5vZGUsIGNhbGwsIHJlcG9ydCk6CiAgICAgICAgIGNhcG1hbiA9IG5vZGUuY29uZmlnLnBs
dWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCJjYXB0dXJlbWFuYWdlciIpCiAgICAgICAgIGlmIGNhcG1h
bjoKLSAgICAgICAgICAgIG91dCwgZXJyID0gY2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUo
aW5fPVRydWUpCisgICAgICAgICAgICBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShpbl89
VHJ1ZSkKKyAgICAgICAgICAgIG91dCwgZXJyID0gY2FwbWFuLnJlYWRfZ2xvYmFsX2NhcHR1cmUo
KQogICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShvdXQpCiAgICAgICAgICAgICBzeXMuc3Rk
b3V0LndyaXRlKGVycikKICAgICAgICAgX2VudGVyX3BkYihub2RlLCBjYWxsLmV4Y2luZm8sIHJl
cG9ydCkKIAogICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCBleGNyZXByLCBleGNp
bmZvKToKLSAgICAgICAgZm9yIGxpbmUgaW4gc3RyKGV4Y3JlcHIpLnNwbGl0KCJcbiIpOgotICAg
ICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiSU5URVJOQUxFUlJPUj4gJXNcbiIgJSBsaW5lKQot
ICAgICAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCiAgICAgICAgIHRiID0gX3Bvc3Rtb3J0ZW1f
dHJhY2ViYWNrKGV4Y2luZm8pCiAgICAgICAgIHBvc3RfbW9ydGVtKHRiKQogCiAKK2NsYXNzIFBk
YlRyYWNlKG9iamVjdCk6CisgICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVm
IHB5dGVzdF9weWZ1bmNfY2FsbChzZWxmLCBweWZ1bmNpdGVtKToKKyAgICAgICAgX3Rlc3RfcHl0
ZXN0X2Z1bmN0aW9uKHB5ZnVuY2l0ZW0pCisgICAgICAgIHlpZWxkCisKKworZGVmIF90ZXN0X3B5
dGVzdF9mdW5jdGlvbihweWZ1bmNpdGVtKToKKyAgICBfcGRiID0gcHl0ZXN0UERCLl9pbml0X3Bk
YigicnVuY2FsbCIpCisgICAgdGVzdGZ1bmN0aW9uID0gcHlmdW5jaXRlbS5vYmoKKyAgICBweWZ1
bmNpdGVtLm9iaiA9IF9wZGIucnVuY2FsbAorICAgIGlmICJmdW5jIiBpbiBweWZ1bmNpdGVtLl9m
aXh0dXJlaW5mby5hcmduYW1lczogICMgcHJhZ21hOiBubyBicmFuY2gKKyAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigiLS10cmFjZSBjYW4ndCBiZSB1c2VkIHdpdGggYSBmaXh0dXJlIG5hbWVkIGZ1
bmMhIikKKyAgICBweWZ1bmNpdGVtLmZ1bmNhcmdzWyJmdW5jIl0gPSB0ZXN0ZnVuY3Rpb24KKyAg
ICBuZXdfbGlzdCA9IGxpc3QocHlmdW5jaXRlbS5fZml4dHVyZWluZm8uYXJnbmFtZXMpCisgICAg
bmV3X2xpc3QuYXBwZW5kKCJmdW5jIikKKyAgICBweWZ1bmNpdGVtLl9maXh0dXJlaW5mby5hcmdu
YW1lcyA9IHR1cGxlKG5ld19saXN0KQorCisKIGRlZiBfZW50ZXJfcGRiKG5vZGUsIGV4Y2luZm8s
IHJlcCk6CiAgICAgIyBYWFggd2UgcmUtdXNlIHRoZSBUZXJtaW5hbFJlcG9ydGVyJ3MgdGVybWlu
YWx3cml0ZXIKICAgICAjIGJlY2F1c2UgdGhpcyBzZWVtcyB0byBhdm9pZCBzb21lIGVuY29kaW5n
IHJlbGF0ZWQgdHJvdWJsZXMKQEAgLTExNCw3ICsyOTgsOSBAQCBkZWYgX2VudGVyX3BkYihub2Rl
LCBleGNpbmZvLCByZXApOgogICAgIHNob3djYXB0dXJlID0gbm9kZS5jb25maWcub3B0aW9uLnNo
b3djYXB0dXJlCiAKICAgICBmb3Igc2VjdGlvbm5hbWUsIGNvbnRlbnQgaW4gKAotICAgICAgICAo
InN0ZG91dCIsIHJlcC5jYXBzdGRvdXQpLCAoInN0ZGVyciIsIHJlcC5jYXBzdGRlcnIpLCAoImxv
ZyIsIHJlcC5jYXBsb2cpCisgICAgICAgICgic3Rkb3V0IiwgcmVwLmNhcHN0ZG91dCksCisgICAg
ICAgICgic3RkZXJyIiwgcmVwLmNhcHN0ZGVyciksCisgICAgICAgICgibG9nIiwgcmVwLmNhcGxv
ZyksCiAgICAgKToKICAgICAgICAgaWYgc2hvd2NhcHR1cmUgaW4gKHNlY3Rpb25uYW1lLCAiYWxs
IikgYW5kIGNvbnRlbnQ6CiAgICAgICAgICAgICB0dy5zZXAoIj4iLCAiY2FwdHVyZWQgIiArIHNl
Y3Rpb25uYW1lKQpAQCAtMTI2LDggKzMxMiw4IEBAIGRlZiBfZW50ZXJfcGRiKG5vZGUsIGV4Y2lu
Zm8sIHJlcCk6CiAgICAgcmVwLnRvdGVybWluYWwodHcpCiAgICAgdHcuc2VwKCI+IiwgImVudGVy
aW5nIFBEQiIpCiAgICAgdGIgPSBfcG9zdG1vcnRlbV90cmFjZWJhY2soZXhjaW5mbykKLSAgICBw
b3N0X21vcnRlbSh0YikKICAgICByZXAuX3BkYnNob3duID0gVHJ1ZQorICAgIHBvc3RfbW9ydGVt
KHRiKQogICAgIHJldHVybiByZXAKIAogCkBAIC0xNDAsMjMgKzMyNiw5IEBAIGRlZiBfcG9zdG1v
cnRlbV90cmFjZWJhY2soZXhjaW5mbyk6CiAgICAgICAgIHJldHVybiBleGNpbmZvLl9leGNpbmZv
WzJdCiAKIAotZGVmIF9maW5kX2xhc3Rfbm9uX2hpZGRlbl9mcmFtZShzdGFjayk6Ci0gICAgaSA9
IG1heCgwLCBsZW4oc3RhY2spIC0gMSkKLSAgICB3aGlsZSBpIGFuZCBzdGFja1tpXVswXS5mX2xv
Y2Fscy5nZXQoIl9fdHJhY2ViYWNraGlkZV9fIiwgRmFsc2UpOgotICAgICAgICBpIC09IDEKLSAg
ICByZXR1cm4gaQotCi0KIGRlZiBwb3N0X21vcnRlbSh0KToKLQotICAgIGNsYXNzIFBkYihweXRl
c3RQREIuX3BkYl9jbHMpOgotCi0gICAgICAgIGRlZiBnZXRfc3RhY2soc2VsZiwgZiwgdCk6Ci0g
ICAgICAgICAgICBzdGFjaywgaSA9IHBkYi5QZGIuZ2V0X3N0YWNrKHNlbGYsIGYsIHQpCi0gICAg
ICAgICAgICBpZiBmIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgaSA9IF9maW5kX2xhc3Rfbm9u
X2hpZGRlbl9mcmFtZShzdGFjaykKLSAgICAgICAgICAgIHJldHVybiBzdGFjaywgaQotCi0gICAg
cCA9IFBkYigpCisgICAgcCA9IHB5dGVzdFBEQi5faW5pdF9wZGIoInBvc3RfbW9ydGVtIikKICAg
ICBwLnJlc2V0KCkKICAgICBwLmludGVyYWN0aW9uKE5vbmUsIHQpCisgICAgaWYgcC5xdWl0dGlu
ZzoKKyAgICAgICAgb3V0Y29tZXMuZXhpdCgiUXVpdHRpbmcgZGVidWdnZXIiKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvZGVwcmVjYXRlZC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkKaW5kZXggN2ViZGNmOTk5NzIyMmMyMGQzYmQwN2Y3MDY5
MmY4OGRlNWVkMTQ0YS4uMTIzOTRhY2EzZjUyMmYzMzcwOTNlYWQ0N2MyM2QwZjk3MDZhM2YyMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvZGVwcmVjYXRlZC5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9kZXByZWNhdGVkLnB5CkBAIC0xLDY1ICsxLDk2IEBACisj
IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiCiBUaGlzIG1vZHVsZSBjb250YWlucyBkZXByZWNh
dGlvbiBtZXNzYWdlcyBhbmQgYml0cyBvZiBjb2RlIHVzZWQgZWxzZXdoZXJlIGluIHRoZSBjb2Rl
YmFzZQogdGhhdCBpcyBwbGFubmVkIHRvIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgcHl0ZXN0IHJl
bGVhc2UuCiAKIEtlZXBpbmcgaXQgaW4gYSBjZW50cmFsIGxvY2F0aW9uIG1ha2VzIGl0IGVhc3kg
dG8gdHJhY2sgd2hhdCBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQKIGJlIHJlbW92ZWQgd2hlbiB0
aGUgdGltZSBjb21lcy4KKworQWxsIGNvbnN0YW50cyBkZWZpbmVkIGluIHRoaXMgbW9kdWxlIHNo
b3VsZCBiZSBlaXRoZXIgUHl0ZXN0V2FybmluZyBpbnN0YW5jZXMgb3IgVW5mb3JtYXR0ZWRXYXJu
aW5nCitpbiBjYXNlIG9mIHdhcm5pbmdzIHdoaWNoIG5lZWQgdG8gZm9ybWF0IHRoZWlyIG1lc3Nh
Z2VzLgogIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNp
b24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBwcmludF9mdW5jdGlvbgogCitmcm9tIF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBvcnQgUHl0
ZXN0RGVwcmVjYXRpb25XYXJuaW5nCitmcm9tIF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBvcnQg
UmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9y
dCBVbmZvcm1hdHRlZFdhcm5pbmcKIAotY2xhc3MgUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoRGVw
cmVjYXRpb25XYXJuaW5nKToKLSAgICAiIiJ3YXJuaW5nIGNsYXNzIGZvciBmZWF0dXJlcyByZW1v
dmVkIGluIHB5dGVzdCA0LjAiIiIKK1lJRUxEX1RFU1RTID0gInlpZWxkIHRlc3RzIHdlcmUgcmVt
b3ZlZCBpbiBweXRlc3QgNC4wIC0ge25hbWV9IHdpbGwgYmUgaWdub3JlZCIKIAogCi1NQUlOX1NU
Ul9BUkdTID0gInBhc3NpbmcgYSBzdHJpbmcgdG8gcHl0ZXN0Lm1haW4oKSBpcyBkZXByZWNhdGVk
LCAiICJwYXNzIGEgbGlzdCBvZiBhcmd1bWVudHMgaW5zdGVhZC4iCitGSVhUVVJFX0ZVTkNUSU9O
X0NBTEwgPSAoCisgICAgJ0ZpeHR1cmUgIntuYW1lfSIgY2FsbGVkIGRpcmVjdGx5LiBGaXh0dXJl
cyBhcmUgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseSxcbicKKyAgICAiYnV0IGFyZSBj
cmVhdGVkIGF1dG9tYXRpY2FsbHkgd2hlbiB0ZXN0IGZ1bmN0aW9ucyByZXF1ZXN0IHRoZW0gYXMg
cGFyYW1ldGVycy5cbiIKKyAgICAiU2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVz
dC9maXh0dXJlLmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgZml4dHVyZXMsIGFuZFxu
IgorICAgICJodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0
bWwjY2FsbGluZy1maXh0dXJlcy1kaXJlY3RseSBhYm91dCBob3cgdG8gdXBkYXRlIHlvdXIgY29k
ZS4iCispCiAKLVlJRUxEX1RFU1RTID0gInlpZWxkIHRlc3RzIGFyZSBkZXByZWNhdGVkLCBhbmQg
c2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gcHl0ZXN0IDQuMCIKK0ZJWFRVUkVfTkFNRURfUkVR
VUVTVCA9IFB5dGVzdERlcHJlY2F0aW9uV2FybmluZygKKyAgICAiJ3JlcXVlc3QnIGlzIGEgcmVz
ZXJ2ZWQgbmFtZSBmb3IgZml4dHVyZXMgYW5kIHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4gZnV0dXJl
IHZlcnNpb25zIgorKQogCi1GVU5DQVJHX1BSRUZJWCA9ICgKLSAgICAne25hbWV9OiBkZWNsYXJp
bmcgZml4dHVyZXMgdXNpbmcgInB5dGVzdF9mdW5jYXJnX18iIHByZWZpeCBpcyBkZXByZWNhdGVk
ICcKLSAgICAiYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdCA0LjAuICAiCi0g
ICAgIlBsZWFzZSByZW1vdmUgdGhlIHByZWZpeCBhbmQgdXNlIHRoZSBAcHl0ZXN0LmZpeHR1cmUg
ZGVjb3JhdG9yIGluc3RlYWQuIgorQ0ZHX1BZVEVTVF9TRUNUSU9OID0gIltweXRlc3RdIHNlY3Rp
b24gaW4ge2ZpbGVuYW1lfSBmaWxlcyBpcyBubyBsb25nZXIgc3VwcG9ydGVkLCBjaGFuZ2UgdG8g
W3Rvb2w6cHl0ZXN0XSBpbnN0ZWFkLiIKKworR0VURlVOQ0FSR1ZBTFVFID0gUmVtb3ZlZEluUHl0
ZXN0NFdhcm5pbmcoCisgICAgImdldGZ1bmNhcmd2YWx1ZSBpcyBkZXByZWNhdGVkLCB1c2UgZ2V0
Zml4dHVyZXZhbHVlIgogKQogCi1DRkdfUFlURVNUX1NFQ1RJT04gPSAiW3B5dGVzdF0gc2VjdGlv
biBpbiB7ZmlsZW5hbWV9IGZpbGVzIGlzIGRlcHJlY2F0ZWQsIHVzZSBbdG9vbDpweXRlc3RdIGlu
c3RlYWQuIgorUkFJU0VTX01FU1NBR0VfUEFSQU1FVEVSID0gUHl0ZXN0RGVwcmVjYXRpb25XYXJu
aW5nKAorICAgICJUaGUgJ21lc3NhZ2UnIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkLlxuIgorICAg
ICIoZGlkIHlvdSBtZWFuIHRvIHVzZSBgbWF0Y2g9J3NvbWUgcmVnZXgnYCB0byBjaGVjayB0aGUg
ZXhjZXB0aW9uIG1lc3NhZ2U/KVxuIgorICAgICJQbGVhc2Ugc2VlOlxuIgorICAgICIgIGh0dHBz
Oi8vZG9jcy5weXRlc3Qub3JnL2VuLzQuNi1tYWludGVuYW5jZS9kZXByZWNhdGlvbnMuaHRtbCNt
ZXNzYWdlLXBhcmFtZXRlci1vZi1weXRlc3QtcmFpc2VzIgorKQogCi1HRVRGVU5DQVJHVkFMVUUg
PSAidXNlIG9mIGdldGZ1bmNhcmd2YWx1ZSBpcyBkZXByZWNhdGVkLCB1c2UgZ2V0Zml4dHVyZXZh
bHVlIgorUkVTVUxUX0xPRyA9IFB5dGVzdERlcHJlY2F0aW9uV2FybmluZygKKyAgICAiLS1yZXN1
bHQtbG9nIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxlZCBmb3IgcmVtb3ZhbCBpbiBweXRlc3Qg
NS4wLlxuIgorICAgICJTZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2RlcHJl
Y2F0aW9ucy5odG1sI3Jlc3VsdC1sb2ctcmVzdWx0LWxvZyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4i
CispCiAKLVJFU1VMVF9MT0cgPSAoCi0gICAgIi0tcmVzdWx0LWxvZyBpcyBkZXByZWNhdGVkIGFu
ZCBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gcHl0ZXN0IDQuMC5cbiIKLSAgICAiU2VlIGh0dHBz
Oi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC91c2FnZS5odG1sI2NyZWF0aW5nLXJlc3VsdGxv
Zy1mb3JtYXQtZmlsZXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgorUkFJU0VTX0VYRUMgPSBQeXRl
c3REZXByZWNhdGlvbldhcm5pbmcoCisgICAgInJhaXNlcyguLi4sICdjb2RlKGFzX2Ffc3RyaW5n
KScpIGlzIGRlcHJlY2F0ZWQsIHVzZSB0aGUgY29udGV4dCBtYW5hZ2VyIGZvcm0gb3IgdXNlIGBl
eGVjKClgIGRpcmVjdGx5XG5cbiIKKyAgICAiU2VlIGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2Vu
L2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNyYWlzZXMtd2FybnMtZXhlYyIKKykKK1dBUk5TX0VY
RUMgPSBQeXRlc3REZXByZWNhdGlvbldhcm5pbmcoCisgICAgIndhcm5zKC4uLiwgJ2NvZGUoYXNf
YV9zdHJpbmcpJykgaXMgZGVwcmVjYXRlZCwgdXNlIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9ybSBv
ciB1c2UgYGV4ZWMoKWAgZGlyZWN0bHkuXG5cbiIKKyAgICAiU2VlIGh0dHBzOi8vZG9jcy5weXRl
c3Qub3JnL2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNyYWlzZXMtd2FybnMtZXhlYyIKICkK
IAotTUFSS19JTkZPX0FUVFJJQlVURSA9IFJlbW92ZWRJblB5dGVzdDRXYXJuaW5nKAotICAgICJN
YXJrSW5mbyBvYmplY3RzIGFyZSBkZXByZWNhdGVkIGFzIHRoZXkgY29udGFpbiBtZXJnZWQgbWFy
a3Mgd2hpY2ggYXJlIGhhcmQgdG8gZGVhbCB3aXRoIGNvcnJlY3RseS5cbiIKLSAgICAiUGxlYXNl
IHVzZSBub2RlLmdldF9jbG9zZXN0X21hcmtlcihuYW1lKSBvciBub2RlLml0ZXJfbWFya2Vycyhu
YW1lKS5cbiIKLSAgICAiRG9jczogaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L21h
cmsuaHRtbCN1cGRhdGluZy1jb2RlIgorUFlURVNUX1BMVUdJTlNfRlJPTV9OT05fVE9QX0xFVkVM
X0NPTkZURVNUID0gKAorICAgICJEZWZpbmluZyAncHl0ZXN0X3BsdWdpbnMnIGluIGEgbm9uLXRv
cC1sZXZlbCBjb25mdGVzdCBpcyBubyBsb25nZXIgc3VwcG9ydGVkICIKKyAgICAiYmVjYXVzZSBp
dCBhZmZlY3RzIHRoZSBlbnRpcmUgZGlyZWN0b3J5IHRyZWUgaW4gYSBub24tZXhwbGljaXQgd2F5
LlxuIgorICAgICIgIHt9XG4iCisgICAgIlBsZWFzZSBtb3ZlIGl0IHRvIGEgdG9wIGxldmVsIGNv
bmZ0ZXN0IGZpbGUgYXQgdGhlIHJvb3RkaXI6XG4iCisgICAgIiAge31cbiIKKyAgICAiRm9yIG1v
cmUgaW5mb3JtYXRpb24sIHZpc2l0OlxuIgorICAgICIgIGh0dHBzOi8vZG9jcy5weXRlc3Qub3Jn
L2VuL2xhdGVzdC9kZXByZWNhdGlvbnMuaHRtbCNweXRlc3QtcGx1Z2lucy1pbi1ub24tdG9wLWxl
dmVsLWNvbmZ0ZXN0LWZpbGVzIgogKQogCi1NQVJLX1BBUkFNRVRFUlNFVF9VTlBBQ0tJTkcgPSBS
ZW1vdmVkSW5QeXRlc3Q0V2FybmluZygKLSAgICAiQXBwbHlpbmcgbWFya3MgZGlyZWN0bHkgdG8g
cGFyYW1ldGVycyBpcyBkZXByZWNhdGVkLCIKLSAgICAiIHBsZWFzZSB1c2UgcHl0ZXN0LnBhcmFt
KC4uLiwgbWFya3M9Li4uKSBpbnN0ZWFkLlxuIgotICAgICJGb3IgbW9yZSBkZXRhaWxzLCBzZWU6
IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIgorUFlU
RVNUX0NPTkZJR19HTE9CQUwgPSBQeXRlc3REZXByZWNhdGlvbldhcm5pbmcoCisgICAgInRoZSBg
cHl0ZXN0LmNvbmZpZ2AgZ2xvYmFsIGlzIGRlcHJlY2F0ZWQuICBQbGVhc2UgdXNlIGByZXF1ZXN0
LmNvbmZpZ2AgIgorICAgICJvciBgcHl0ZXN0X2NvbmZpZ3VyZWAgKGlmIHlvdSdyZSBhIHB5dGVz
dCBwbHVnaW4pIGluc3RlYWQuIgogKQogCi1SRUNPUkRfWE1MX1BST1BFUlRZID0gKAotICAgICdG
aXh0dXJlIHJlbmFtZWQgZnJvbSAicmVjb3JkX3htbF9wcm9wZXJ0eSIgdG8gInJlY29yZF9wcm9w
ZXJ0eSIgYXMgdXNlciAnCi0gICAgInByb3BlcnRpZXMgYXJlIG5vdyBhdmFpbGFibGUgdG8gYWxs
IHJlcG9ydGVycy5cbiIKLSAgICAnInJlY29yZF94bWxfcHJvcGVydHkiIGlzIG5vdyBkZXByZWNh
dGVkLicKK1BZVEVTVF9FTlNVUkVURU1QID0gUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoCisgICAg
InB5dGVzdC90bXBkaXJfZmFjdG9yeS5lbnN1cmV0ZW1wIGlzIGRlcHJlY2F0ZWQsIFxuIgorICAg
ICJwbGVhc2UgdXNlIHRoZSB0bXBfcGF0aCBmaXh0dXJlIG9yIHRtcF9wYXRoX2ZhY3RvcnkubWt0
ZW1wIgogKQogCi1DT0xMRUNUT1JfTUFLRUlURU0gPSBSZW1vdmVkSW5QeXRlc3Q0V2FybmluZygK
LSAgICAicHljb2xsZWN0b3IgbWFrZWl0ZW0gd2FzIHJlbW92ZWQgIiAiYXMgaXQgaXMgYW4gYWNj
aWRlbnRpYWxseSBsZWFrZWQgaW50ZXJuYWwgYXBpIgorUFlURVNUX0xPR1dBUk5JTkcgPSBQeXRl
c3REZXByZWNhdGlvbldhcm5pbmcoCisgICAgInB5dGVzdF9sb2d3YXJuaW5nIGlzIGRlcHJlY2F0
ZWQsIG5vIGxvbmdlciBiZWluZyBjYWxsZWQsIGFuZCB3aWxsIGJlIHJlbW92ZWQgc29vblxuIgor
ICAgICJwbGVhc2UgdXNlIHB5dGVzdF93YXJuaW5nX2NhcHR1cmVkIGluc3RlYWQiCiApCiAKLU1F
VEFGVU5DX0FERF9DQUxMID0gKAotICAgICJNZXRhZnVuYy5hZGRjYWxsIGlzIGRlcHJlY2F0ZWQg
YW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdCA0LjAuXG4iCi0gICAgIlBsZWFz
ZSB1c2UgTWV0YWZ1bmMucGFyYW1ldHJpemUgaW5zdGVhZC4iCitQWVRFU1RfV0FSTlNfVU5LTk9X
Tl9LV0FSR1MgPSBVbmZvcm1hdHRlZFdhcm5pbmcoCisgICAgUHl0ZXN0RGVwcmVjYXRpb25XYXJu
aW5nLAorICAgICJweXRlc3Qud2FybnMoKSBnb3QgdW5leHBlY3RlZCBrZXl3b3JkIGFyZ3VtZW50
czoge2FyZ3Mhcn0uXG4iCisgICAgIlRoaXMgd2lsbCBiZSBhbiBlcnJvciBpbiBmdXR1cmUgdmVy
c2lvbnMuIiwKICkKIAotUFlURVNUX1BMVUdJTlNfRlJPTV9OT05fVE9QX0xFVkVMX0NPTkZURVNU
ID0gUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoCi0gICAgIkRlZmluaW5nIHB5dGVzdF9wbHVnaW5z
IGluIGEgbm9uLXRvcC1sZXZlbCBjb25mdGVzdCBpcyBkZXByZWNhdGVkLCAiCi0gICAgImJlY2F1
c2UgaXQgYWZmZWN0cyB0aGUgZW50aXJlIGRpcmVjdG9yeSB0cmVlIGluIGEgbm9uLWV4cGxpY2l0
IHdheS5cbiIKLSAgICAiUGxlYXNlIG1vdmUgaXQgdG8gdGhlIHRvcCBsZXZlbCBjb25mdGVzdCBm
aWxlIGluc3RlYWQuIgorUFlURVNUX1BBUkFNX1VOS05PV05fS1dBUkdTID0gVW5mb3JtYXR0ZWRX
YXJuaW5nKAorICAgIFB5dGVzdERlcHJlY2F0aW9uV2FybmluZywKKyAgICAicHl0ZXN0LnBhcmFt
KCkgZ290IHVuZXhwZWN0ZWQga2V5d29yZCBhcmd1bWVudHM6IHthcmdzIXJ9LlxuIgorICAgICJU
aGlzIHdpbGwgYmUgYW4gZXJyb3IgaW4gZnV0dXJlIHZlcnNpb25zLiIsCiApCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9kb2N0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3QvZG9jdGVzdC5weQppbmRleCBiMGEzYWQwOGRmYzRmZDkyNTg2YzY5NmQ1N2M3NDViNWEx
ZmVmNTkwLi42NTlkMjRhZWViY2VlOTMzMzYzNWVkN2MwNmYzM2ZjZDI5OWJjYjBjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9kb2N0ZXN0LnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L2RvY3Rlc3QucHkKQEAgLTEsMTQgKzEsMjQgQEAKKyMgLSotIGNvZGluZzog
dXRmLTggLSotCiAiIiIgZGlzY292ZXIgYW5kIHJ1biBkb2N0ZXN0cyBpbiBtb2R1bGVzIGFuZCB0
ZXN0IGZpbGVzLiIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgcHJpbnRfZnVuY3Rpb24KIAotaW1wb3J0IHRyYWNlYmFjawotaW1wb3J0IHN5cworaW1w
b3J0IGluc3BlY3QKIGltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHN5cworaW1wb3J0IHRyYWNlYmFj
aworaW1wb3J0IHdhcm5pbmdzCitmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2Vy
CiAKIGltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBFeGNlcHRp
b25JbmZvLCBSZXByRmlsZUxvY2F0aW9uLCBUZXJtaW5hbFJlcHIKK2Zyb20gX3B5dGVzdC5fY29k
ZS5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvCitmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBv
cnQgUmVwckZpbGVMb2NhdGlvbgorZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFRlcm1p
bmFsUmVwcgorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgc2FmZV9nZXRhdHRyCiBmcm9tIF9w
eXRlc3QuZml4dHVyZXMgaW1wb3J0IEZpeHR1cmVSZXF1ZXN0Ci0KK2Zyb20gX3B5dGVzdC5vdXRj
b21lcyBpbXBvcnQgU2tpcHBlZAorZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5
dGVzdFdhcm5pbmcKIAogRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX05PTkUgPSAibm9uZSIKIERPQ1RF
U1RfUkVQT1JUX0NIT0lDRV9DRElGRiA9ICJjZGlmZiIKQEAgLTEwNSw3ICsxMTUsNiBAQCBkZWYg
X2lzX2RvY3Rlc3QoY29uZmlnLCBwYXRoLCBwYXJlbnQpOgogCiAKIGNsYXNzIFJlcHJGYWlsRG9j
dGVzdChUZXJtaW5hbFJlcHIpOgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcHJsb2NhdGlv
bl9saW5lcyk6CiAgICAgICAgICMgTGlzdCBvZiAocmVwcmxvY2F0aW9uLCBsaW5lcykgdHVwbGVz
CiAgICAgICAgIHNlbGYucmVwcmxvY2F0aW9uX2xpbmVzID0gcmVwcmxvY2F0aW9uX2xpbmVzCkBA
IC0xMTgsNyArMTI3LDYgQEAgY2xhc3MgUmVwckZhaWxEb2N0ZXN0KFRlcm1pbmFsUmVwcik6CiAK
IAogY2xhc3MgTXVsdGlwbGVEb2N0ZXN0RmFpbHVyZXMoRXhjZXB0aW9uKToKLQogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBmYWlsdXJlcyk6CiAgICAgICAgIHN1cGVyKE11bHRpcGxlRG9jdGVzdEZh
aWx1cmVzLCBzZWxmKS5fX2luaXRfXygpCiAgICAgICAgIHNlbGYuZmFpbHVyZXMgPSBmYWlsdXJl
cwpAQCAtMTQ5LDYgKzE1Nyw4IEBAIGRlZiBfaW5pdF9ydW5uZXJfY2xhc3MoKToKICAgICAgICAg
ICAgICAgICByYWlzZSBmYWlsdXJlCiAKICAgICAgICAgZGVmIHJlcG9ydF91bmV4cGVjdGVkX2V4
Y2VwdGlvbihzZWxmLCBvdXQsIHRlc3QsIGV4YW1wbGUsIGV4Y19pbmZvKToKKyAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UoZXhjX2luZm9bMV0sIFNraXBwZWQpOgorICAgICAgICAgICAgICAgIHJh
aXNlIGV4Y19pbmZvWzFdCiAgICAgICAgICAgICBmYWlsdXJlID0gZG9jdGVzdC5VbmV4cGVjdGVk
RXhjZXB0aW9uKHRlc3QsIGV4YW1wbGUsIGV4Y19pbmZvKQogICAgICAgICAgICAgaWYgc2VsZi5j
b250aW51ZV9vbl9mYWlsdXJlOgogICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoZmFpbHVyZSkK
QEAgLTE3Miw3ICsxODIsNiBAQCBkZWYgX2dldF9ydW5uZXIoY2hlY2tlcj1Ob25lLCB2ZXJib3Nl
PU5vbmUsIG9wdGlvbmZsYWdzPTAsIGNvbnRpbnVlX29uX2ZhaWx1cmU9VAogCiAKIGNsYXNzIERv
Y3Rlc3RJdGVtKHB5dGVzdC5JdGVtKToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBw
YXJlbnQsIHJ1bm5lcj1Ob25lLCBkdGVzdD1Ob25lKToKICAgICAgICAgc3VwZXIoRG9jdGVzdEl0
ZW0sIHNlbGYpLl9faW5pdF9fKG5hbWUsIHBhcmVudCkKICAgICAgICAgc2VsZi5ydW5uZXIgPSBy
dW5uZXIKQEAgLTIwNiw3ICsyMTUsOCBAQCBjbGFzcyBEb2N0ZXN0SXRlbShweXRlc3QuSXRlbSk6
CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgY2FwbWFuID0gc2VsZi5jb25maWcucGx1Z2lu
bWFuYWdlci5nZXRwbHVnaW4oImNhcHR1cmVtYW5hZ2VyIikKICAgICAgICAgaWYgY2FwbWFuOgot
ICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShpbl89
VHJ1ZSkKKyAgICAgICAgICAgIGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGluXz1UcnVl
KQorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXBtYW4ucmVhZF9nbG9iYWxfY2FwdHVyZSgpCiAg
ICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKICAgICAgICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoZXJyKQogCkBAIC0yNDMsNyArMjUzLDcgQEAgY2xhc3MgRG9jdGVzdEl0ZW0ocHl0ZXN0
Lkl0ZW0pOgogICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpLCB4KSBpbiBlbnVtZXJhdGUo
bGluZXMpCiAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgIyB0cmlt
IGRvY3N0cmluZyBlcnJvciBsaW5lcyB0byAxMAotICAgICAgICAgICAgICAgICAgICBsaW5lcyA9
IGxpbmVzW21heChleGFtcGxlLmxpbmVubyAtIDksIDApOmV4YW1wbGUubGluZW5vICsgMV0KKyAg
ICAgICAgICAgICAgICAgICAgbGluZXMgPSBsaW5lc1ttYXgoZXhhbXBsZS5saW5lbm8gLSA5LCAw
KSA6IGV4YW1wbGUubGluZW5vICsgMV0KICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgICAgICAgICBsaW5lcyA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgICJFWEFNUExFIExP
Q0FUSU9OIFVOS05PV04sIG5vdCBzaG93aW5nIGFsbCB0ZXN0cyBvZiB0aGF0IGV4YW1wbGUiCkBA
IC0yNTUsOSArMjY1LDcgQEAgY2xhc3MgRG9jdGVzdEl0ZW0ocHl0ZXN0Lkl0ZW0pOgogICAgICAg
ICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZmFpbHVyZSwgZG9jdGVzdC5Eb2NUZXN0RmFpbHVyZSk6
CiAgICAgICAgICAgICAgICAgICAgIGxpbmVzICs9IGNoZWNrZXIub3V0cHV0X2RpZmZlcmVuY2Uo
CiAgICAgICAgICAgICAgICAgICAgICAgICBleGFtcGxlLCBmYWlsdXJlLmdvdCwgcmVwb3J0X2No
b2ljZQotICAgICAgICAgICAgICAgICAgICApLnNwbGl0KAotICAgICAgICAgICAgICAgICAgICAg
ICAgIlxuIgotICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICkuc3Bs
aXQoIlxuIikKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBpbm5l
cl9leGNpbmZvID0gRXhjZXB0aW9uSW5mbyhmYWlsdXJlLmV4Y19pbmZvKQogICAgICAgICAgICAg
ICAgICAgICBsaW5lcyArPSBbIlVORVhQRUNURUQgRVhDRVBUSU9OOiAlcyIgJSByZXByKGlubmVy
X2V4Y2luZm8udmFsdWUpXQpAQCAtMzQ2LDExICszNTQsNjkgQEAgZGVmIF9jaGVja19hbGxfc2tp
cHBlZCh0ZXN0KToKICAgICAgICAgcHl0ZXN0LnNraXAoImFsbCB0ZXN0cyBza2lwcGVkIGJ5ICtT
S0lQIG9wdGlvbiIpCiAKIAotY2xhc3MgRG9jdGVzdE1vZHVsZShweXRlc3QuTW9kdWxlKToKK2Rl
ZiBfaXNfbW9ja2VkKG9iaik6CisgICAgIiIiCisgICAgcmV0dXJucyBpZiBhIG9iamVjdCBpcyBw
b3NzaWJseSBhIG1vY2sgb2JqZWN0IGJ5IGNoZWNraW5nIHRoZSBleGlzdGVuY2Ugb2YgYSBoaWdo
bHkgaW1wcm9iYWJsZSBhdHRyaWJ1dGUKKyAgICAiIiIKKyAgICByZXR1cm4gKAorICAgICAgICBz
YWZlX2dldGF0dHIob2JqLCAicHl0ZXN0X21vY2tfZXhhbXBsZV9hdHRyaWJ1dGVfdGhhdF9zaG91
bGRudF9leGlzdCIsIE5vbmUpCisgICAgICAgIGlzIG5vdCBOb25lCisgICAgKQorCiAKK0Bjb250
ZXh0bWFuYWdlcgorZGVmIF9wYXRjaF91bndyYXBfbW9ja19hd2FyZSgpOgorICAgICIiIgorICAg
IGNvbnRleHRtYW5hZ2VyIHdoaWNoIHJlcGxhY2VzIGBgaW5zcGVjdC51bndyYXBgYCB3aXRoIGEg
dmVyc2lvbgorICAgIHRoYXQncyBhd2FyZSBvZiBtb2NrIG9iamVjdHMgYW5kIGRvZXNuJ3QgcmVj
dXJzZSBvbiB0aGVtCisgICAgIiIiCisgICAgcmVhbF91bndyYXAgPSBnZXRhdHRyKGluc3BlY3Qs
ICJ1bndyYXAiLCBOb25lKQorICAgIGlmIHJlYWxfdW53cmFwIGlzIE5vbmU6CisgICAgICAgIHlp
ZWxkCisgICAgZWxzZToKKworICAgICAgICBkZWYgX21vY2tfYXdhcmVfdW53cmFwKG9iaiwgc3Rv
cD1Ob25lKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBzdG9wIGlzIE5v
bmUgb3Igc3RvcCBpcyBfaXNfbW9ja2VkOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVh
bF91bndyYXAob2JqLCBzdG9wPV9pc19tb2NrZWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
YWxfdW53cmFwKG9iaiwgc3RvcD1sYW1iZGEgb2JqOiBfaXNfbW9ja2VkKG9iaikgb3Igc3RvcChv
YmopKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAg
IHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAgICAgICAgICJHb3QgJXIgd2hlbiB1bndyYXBw
aW5nICVyLiAgVGhpcyBpcyB1c3VhbGx5IGNhdXNlZCAiCisgICAgICAgICAgICAgICAgICAgICJi
eSBhIHZpb2xhdGlvbiBvZiBQeXRob24ncyBvYmplY3QgcHJvdG9jb2w7IHNlZSBlLmcuICIKKyAg
ICAgICAgICAgICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvNTA4MCIgJSAoZSwgb2JqKSwKKyAgICAgICAgICAgICAgICAgICAgUHl0ZXN0V2Fybmlu
ZywKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgICAgICBp
bnNwZWN0LnVud3JhcCA9IF9tb2NrX2F3YXJlX3Vud3JhcAorICAgICAgICB0cnk6CisgICAgICAg
ICAgICB5aWVsZAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgaW5zcGVjdC51bndyYXAg
PSByZWFsX3Vud3JhcAorCisKK2NsYXNzIERvY3Rlc3RNb2R1bGUocHl0ZXN0Lk1vZHVsZSk6CiAg
ICAgZGVmIGNvbGxlY3Qoc2VsZik6CiAgICAgICAgIGltcG9ydCBkb2N0ZXN0CiAKKyAgICAgICAg
Y2xhc3MgTW9ja0F3YXJlRG9jVGVzdEZpbmRlcihkb2N0ZXN0LkRvY1Rlc3RGaW5kZXIpOgorICAg
ICAgICAgICAgIiIiCisgICAgICAgICAgICBhIGhhY2tpc2ggZG9jdGVzdCBmaW5kZXIgdGhhdCBv
dmVycmlkZXMgc3RkbGliIGludGVybmFscyB0byBmaXggYSBzdGRsaWIgYnVnCisKKyAgICAgICAg
ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzQ1NgorICAg
ICAgICAgICAgaHR0cHM6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUyNTUzMgorICAgICAgICAgICAg
IiIiCisKKyAgICAgICAgICAgIGRlZiBfZmluZChzZWxmLCB0ZXN0cywgb2JqLCBuYW1lLCBtb2R1
bGUsIHNvdXJjZV9saW5lcywgZ2xvYnMsIHNlZW4pOgorICAgICAgICAgICAgICAgIGlmIF9pc19t
b2NrZWQob2JqKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAg
d2l0aCBfcGF0Y2hfdW53cmFwX21vY2tfYXdhcmUoKToKKworICAgICAgICAgICAgICAgICAgICBk
b2N0ZXN0LkRvY1Rlc3RGaW5kZXIuX2ZpbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LCB0ZXN0cywgb2JqLCBuYW1lLCBtb2R1bGUsIHNvdXJjZV9saW5lcywgZ2xvYnMsIHNlZW4KKyAg
ICAgICAgICAgICAgICAgICAgKQorCiAgICAgICAgIGlmIHNlbGYuZnNwYXRoLmJhc2VuYW1lID09
ICJjb25mdGVzdC5weSI6CiAgICAgICAgICAgICBtb2R1bGUgPSBzZWxmLmNvbmZpZy5wbHVnaW5t
YW5hZ2VyLl9pbXBvcnRjb25mdGVzdChzZWxmLmZzcGF0aCkKICAgICAgICAgZWxzZToKQEAgLTM2
Miw3ICs0MjgsNyBAQCBjbGFzcyBEb2N0ZXN0TW9kdWxlKHB5dGVzdC5Nb2R1bGUpOgogICAgICAg
ICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICMgdXNl
cyBpbnRlcm5hbCBkb2N0ZXN0IG1vZHVsZSBwYXJzaW5nIG1lY2hhbmlzbQotICAgICAgICBmaW5k
ZXIgPSBkb2N0ZXN0LkRvY1Rlc3RGaW5kZXIoKQorICAgICAgICBmaW5kZXIgPSBNb2NrQXdhcmVE
b2NUZXN0RmluZGVyKCkKICAgICAgICAgb3B0aW9uZmxhZ3MgPSBnZXRfb3B0aW9uZmxhZ3Moc2Vs
ZikKICAgICAgICAgcnVubmVyID0gX2dldF9ydW5uZXIoCiAgICAgICAgICAgICB2ZXJib3NlPTAs
CkBAIC00ODAsOSArNTQ2LDcgQEAgZGVmIF9nZXRfcmVwb3J0X2Nob2ljZShrZXkpOgogICAgICAg
ICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfTkRJRkY6IGRvY3Rlc3QuUkVQT1JUX05ESUZGLAogICAg
ICAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfT05MWV9GSVJTVF9GQUlMVVJFOiBkb2N0ZXN0LlJF
UE9SVF9PTkxZX0ZJUlNUX0ZBSUxVUkUsCiAgICAgICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9O
T05FOiAwLAotICAgIH1bCi0gICAgICAgIGtleQotICAgIF0KKyAgICB9W2tleV0KIAogCiBkZWYg
X2ZpeF9zcG9vZl9weXRob24yKHJ1bm5lciwgZW5jb2RpbmcpOgpAQCAtNTAyLDcgKzU2Niw2IEBA
IGRlZiBfZml4X3Nwb29mX3B5dGhvbjIocnVubmVyLCBlbmNvZGluZyk6CiAgICAgZnJvbSBkb2N0
ZXN0IGltcG9ydCBfU3Bvb2ZPdXQKIAogICAgIGNsYXNzIFVuaWNvZGVTcG9vZihfU3Bvb2ZPdXQp
OgotCiAgICAgICAgIGRlZiBnZXR2YWx1ZShzZWxmKToKICAgICAgICAgICAgIHJlc3VsdCA9IF9T
cG9vZk91dC5nZXR2YWx1ZShzZWxmKQogICAgICAgICAgICAgaWYgZW5jb2RpbmcgYW5kIGlzaW5z
dGFuY2UocmVzdWx0LCBieXRlcyk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVz
dC9maXh0dXJlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2ZpeHR1cmVzLnB5CmluZGV4
IDQ5NWU2YjliMzMyYTlkZWU3MjMyYTA1YzZhNTgyZWNkMTE1ZDcwODYuLjI4MGE0ODYwOGI2ODNh
MmNmOTVmNmZkNjJhOThmZjU4NzM3Mzc4MmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L2ZpeHR1cmVzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2ZpeHR1cmVz
LnB5CkBAIC0xLDM2ICsxLDQzIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAog
aW1wb3J0IGZ1bmN0b29scwogaW1wb3J0IGluc3BlY3QKK2ltcG9ydCBpdGVydG9vbHMKIGltcG9y
dCBzeXMKIGltcG9ydCB3YXJuaW5ncwotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERp
Y3QsIGRlcXVlLCBkZWZhdWx0ZGljdAotZnJvbSBtb3JlX2l0ZXJ0b29scyBpbXBvcnQgZmxhdHRl
bgorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKK2Zyb20gY29sbGVjdGlvbnMg
aW1wb3J0IGRlcXVlCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdAogCiBpbXBv
cnQgYXR0cgogaW1wb3J0IHB5Ci1mcm9tIHB5Ll9jb2RlLmNvZGUgaW1wb3J0IEZvcm1hdHRlZEV4
Y2luZm8KK2ltcG9ydCBzaXgKIAogaW1wb3J0IF9weXRlc3QKIGZyb20gX3B5dGVzdCBpbXBvcnQg
bm9kZXMKK2Zyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBGb3JtYXR0ZWRFeGNpbmZvCiBm
cm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgVGVybWluYWxSZXByCi1mcm9tIF9weXRlc3Qu
Y29tcGF0IGltcG9ydCAoCi0gICAgTk9UU0VULAotICAgIGV4Y19jbGVhciwKLSAgICBfZm9ybWF0
X2FyZ3MsCi0gICAgZ2V0ZnNsaW5lbm8sCi0gICAgZ2V0X3JlYWxfZnVuYywKLSAgICBpc19nZW5l
cmF0b3IsCi0gICAgaXNjbGFzcywKLSAgICBnZXRpbWZ1bmMsCi0gICAgZ2V0bG9jYXRpb24sCi0g
ICAgZ2V0ZnVuY2FyZ25hbWVzLAotICAgIHNhZmVfZ2V0YXR0ciwKLSAgICBGdW5jYXJnbmFtZXND
b21wYXRBdHRyLAotKQotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBURVNUX09V
VENPTUUKLQotRklYVFVSRV9NU0cgPSAnZml4dHVyZXMgY2Fubm90IGhhdmUgInB5dGVzdF9mdW5j
YXJnX18iIHByZWZpeCBhbmQgYmUgZGVjb3JhdGVkIHdpdGggQHB5dGVzdC5maXh0dXJlOlxue30n
Citmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBfZm9ybWF0X2FyZ3MKK2Zyb20gX3B5dGVzdC5j
b21wYXQgaW1wb3J0IF9QeXRlc3RXcmFwcGVyCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBl
eGNfY2xlYXIKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IEZ1bmNhcmduYW1lc0NvbXBhdEF0
dHIKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGdldF9yZWFsX2Z1bmMKK2Zyb20gX3B5dGVz
dC5jb21wYXQgaW1wb3J0IGdldF9yZWFsX21ldGhvZAorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBv
cnQgZ2V0ZnNsaW5lbm8KK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGdldGZ1bmNhcmduYW1l
cworZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgZ2V0aW1mdW5jCitmcm9tIF9weXRlc3QuY29t
cGF0IGltcG9ydCBnZXRsb2NhdGlvbgorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgaXNfZ2Vu
ZXJhdG9yCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBpc2NsYXNzCitmcm9tIF9weXRlc3Qu
Y29tcGF0IGltcG9ydCBOT1RTRVQKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IHNhZmVfZ2V0
YXR0cgorZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IEZJWFRVUkVfRlVOQ1RJT05fQ0FM
TAorZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IEZJWFRVUkVfTkFNRURfUkVRVUVTVAor
ZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsCitmcm9tIF9weXRlc3Qub3V0Y29tZXMg
aW1wb3J0IFRFU1RfT1VUQ09NRQogCiAKIEBhdHRyLnMoZnJvemVuPVRydWUpCkBAIC00NSw2ICs1
Miw3IEBAIGRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb24pOgogCiAgICAgc2NvcGVuYW1l
MmNsYXNzLnVwZGF0ZSgKICAgICAgICAgeworICAgICAgICAgICAgInBhY2thZ2UiOiBfcHl0ZXN0
LnB5dGhvbi5QYWNrYWdlLAogICAgICAgICAgICAgImNsYXNzIjogX3B5dGVzdC5weXRob24uQ2xh
c3MsCiAgICAgICAgICAgICAibW9kdWxlIjogX3B5dGVzdC5weXRob24uTW9kdWxlLAogICAgICAg
ICAgICAgImZ1bmN0aW9uIjogX3B5dGVzdC5ub2Rlcy5JdGVtLApAQCAtNTgsNiArNjYsNyBAQCBz
Y29wZW5hbWUyY2xhc3MgPSB7fQogCiAKIHNjb3BlMnByb3BzID0gZGljdChzZXNzaW9uPSgpKQor
c2NvcGUycHJvcHNbInBhY2thZ2UiXSA9ICgiZnNwYXRoIiwpCiBzY29wZTJwcm9wc1sibW9kdWxl
Il0gPSAoImZzcGF0aCIsICJtb2R1bGUiKQogc2NvcGUycHJvcHNbImNsYXNzIl0gPSBzY29wZTJw
cm9wc1sibW9kdWxlIl0gKyAoImNscyIsKQogc2NvcGUycHJvcHNbImluc3RhbmNlIl0gPSBzY29w
ZTJwcm9wc1siY2xhc3MiXSArICgiaW5zdGFuY2UiLCkKQEAgLTY1LDcgKzc0LDYgQEAgc2NvcGUy
cHJvcHNbImZ1bmN0aW9uIl0gPSBzY29wZTJwcm9wc1siaW5zdGFuY2UiXSArICgiZnVuY3Rpb24i
LCAia2V5d29yZHMiKQogCiAKIGRlZiBzY29wZXByb3BlcnR5KG5hbWU9Tm9uZSwgZG9jPU5vbmUp
OgotCiAgICAgZGVmIGRlY29yYXRlc2NvcGUoZnVuYyk6CiAgICAgICAgIHNjb3BlbmFtZSA9IG5h
bWUgb3IgZnVuYy5fX25hbWVfXwogCkBAIC04MSw2ICs4OSwyMSBAQCBkZWYgc2NvcGVwcm9wZXJ0
eShuYW1lPU5vbmUsIGRvYz1Ob25lKToKICAgICByZXR1cm4gZGVjb3JhdGVzY29wZQogCiAKK2Rl
ZiBnZXRfc2NvcGVfcGFja2FnZShub2RlLCBmaXh0dXJlZGVmKToKKyAgICBpbXBvcnQgcHl0ZXN0
CisKKyAgICBjbHMgPSBweXRlc3QuUGFja2FnZQorICAgIGN1cnJlbnQgPSBub2RlCisgICAgZml4
dHVyZV9wYWNrYWdlX25hbWUgPSAiJXMvJXMiICUgKGZpeHR1cmVkZWYuYmFzZWlkLCAiX19pbml0
X18ucHkiKQorICAgIHdoaWxlIGN1cnJlbnQgYW5kICgKKyAgICAgICAgdHlwZShjdXJyZW50KSBp
cyBub3QgY2xzIG9yIGZpeHR1cmVfcGFja2FnZV9uYW1lICE9IGN1cnJlbnQubm9kZWlkCisgICAg
KToKKyAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50CisgICAgaWYgY3VycmVudCBpcyBO
b25lOgorICAgICAgICByZXR1cm4gbm9kZS5zZXNzaW9uCisgICAgcmV0dXJuIGN1cnJlbnQKKwor
CiBkZWYgZ2V0X3Njb3BlX25vZGUobm9kZSwgc2NvcGUpOgogICAgIGNscyA9IHNjb3BlbmFtZTJj
bGFzcy5nZXQoc2NvcGUpCiAgICAgaWYgY2xzIGlzIE5vbmU6CkBAIC0xNzQsOSArMTk3LDExIEBA
IGRlZiBnZXRfcGFyYW1ldHJpemVkX2ZpeHR1cmVfa2V5cyhpdGVtLCBzY29wZW51bSk6CiAgICAg
ICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmIHNjb3BlbnVtID09IDA6ICAjIHNl
c3Npb24KICAgICAgICAgICAgICAgICBrZXkgPSAoYXJnbmFtZSwgcGFyYW1faW5kZXgpCi0gICAg
ICAgICAgICBlbGlmIHNjb3BlbnVtID09IDE6ICAjIG1vZHVsZQorICAgICAgICAgICAgZWxpZiBz
Y29wZW51bSA9PSAxOiAgIyBwYWNrYWdlCisgICAgICAgICAgICAgICAga2V5ID0gKGFyZ25hbWUs
IHBhcmFtX2luZGV4LCBpdGVtLmZzcGF0aC5kaXJwYXRoKCkpCisgICAgICAgICAgICBlbGlmIHNj
b3BlbnVtID09IDI6ICAjIG1vZHVsZQogICAgICAgICAgICAgICAgIGtleSA9IChhcmduYW1lLCBw
YXJhbV9pbmRleCwgaXRlbS5mc3BhdGgpCi0gICAgICAgICAgICBlbGlmIHNjb3BlbnVtID09IDI6
ICAjIGNsYXNzCisgICAgICAgICAgICBlbGlmIHNjb3BlbnVtID09IDM6ICAjIGNsYXNzCiAgICAg
ICAgICAgICAgICAga2V5ID0gKGFyZ25hbWUsIHBhcmFtX2luZGV4LCBpdGVtLmZzcGF0aCwgaXRl
bS5jbHMpCiAgICAgICAgICAgICB5aWVsZCBrZXkKIApAQCAtMjc1LDEyICszMDAsNDMgQEAgZGVm
IGdldF9kaXJlY3RfcGFyYW1fZml4dHVyZV9mdW5jKHJlcXVlc3QpOgogICAgIHJldHVybiByZXF1
ZXN0LnBhcmFtCiAKIAorQGF0dHIucyhzbG90cz1UcnVlKQogY2xhc3MgRnVuY0ZpeHR1cmVJbmZv
KG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgYXJnbmFtZXMsIG5hbWVzX2Nsb3N1
cmUsIG5hbWUyZml4dHVyZWRlZnMpOgotICAgICAgICBzZWxmLmFyZ25hbWVzID0gYXJnbmFtZXMK
LSAgICAgICAgc2VsZi5uYW1lc19jbG9zdXJlID0gbmFtZXNfY2xvc3VyZQotICAgICAgICBzZWxm
Lm5hbWUyZml4dHVyZWRlZnMgPSBuYW1lMmZpeHR1cmVkZWZzCisgICAgIyBvcmlnaW5hbCBmdW5j
dGlvbiBhcmd1bWVudCBuYW1lcworICAgIGFyZ25hbWVzID0gYXR0ci5pYih0eXBlPXR1cGxlKQor
ICAgICMgYXJnbmFtZXMgdGhhdCBmdW5jdGlvbiBpbW1lZGlhdGVseSByZXF1aXJlcy4gVGhlc2Ug
aW5jbHVkZSBhcmduYW1lcyArCisgICAgIyBmaXh0dXJlIG5hbWVzIHNwZWNpZmllZCB2aWEgdXNl
Zml4dHVyZXMgYW5kIHZpYSBhdXRvdXNlPVRydWUgaW4gZml4dHVyZQorICAgICMgZGVmaW5pdGlv
bnMuCisgICAgaW5pdGlhbG5hbWVzID0gYXR0ci5pYih0eXBlPXR1cGxlKQorICAgIG5hbWVzX2Ns
b3N1cmUgPSBhdHRyLmliKCkgICMgTGlzdFtzdHJdCisgICAgbmFtZTJmaXh0dXJlZGVmcyA9IGF0
dHIuaWIoKSAgIyBMaXN0W3N0ciwgTGlzdFtGaXh0dXJlRGVmXV0KKworICAgIGRlZiBwcnVuZV9k
ZXBlbmRlbmN5X3RyZWUoc2VsZik6CisgICAgICAgICIiIlJlY29tcHV0ZSBuYW1lc19jbG9zdXJl
IGZyb20gaW5pdGlhbG5hbWVzIGFuZCBuYW1lMmZpeHR1cmVkZWZzCisKKyAgICAgICAgQ2FuIG9u
bHkgcmVkdWNlIG5hbWVzX2Nsb3N1cmUsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIG5ldyBjbG9zdXJl
IHdpbGwKKyAgICAgICAgYWx3YXlzIGJlIGEgc3Vic2V0IG9mIHRoZSBvbGQgb25lLiBUaGUgb3Jk
ZXIgaXMgcHJlc2VydmVkLgorCisgICAgICAgIFRoaXMgbWV0aG9kIGlzIG5lZWRlZCBiZWNhdXNl
IGRpcmVjdCBwYXJhbWV0cml6YXRpb24gbWF5IHNoYWRvdyBzb21lCisgICAgICAgIG9mIHRoZSBm
aXh0dXJlcyB0aGF0IHdlcmUgaW5jbHVkZWQgaW4gdGhlIG9yaWdpbmFsbHkgYnVpbHQgZGVwZW5k
ZW5jeQorICAgICAgICB0cmVlLiBJbiB0aGlzIHdheSB0aGUgZGVwZW5kZW5jeSB0cmVlIGNhbiBn
ZXQgcHJ1bmVkLCBhbmQgdGhlIGNsb3N1cmUKKyAgICAgICAgb2YgYXJnbmFtZXMgbWF5IGdldCBy
ZWR1Y2VkLgorICAgICAgICAiIiIKKyAgICAgICAgY2xvc3VyZSA9IHNldCgpCisgICAgICAgIHdv
cmtpbmdfc2V0ID0gc2V0KHNlbGYuaW5pdGlhbG5hbWVzKQorICAgICAgICB3aGlsZSB3b3JraW5n
X3NldDoKKyAgICAgICAgICAgIGFyZ25hbWUgPSB3b3JraW5nX3NldC5wb3AoKQorICAgICAgICAg
ICAgIyBhcmduYW1lIG1heSBiZSBzbXRoIG5vdCBpbmNsdWRlZCBpbiB0aGUgb3JpZ2luYWwgbmFt
ZXNfY2xvc3VyZSwKKyAgICAgICAgICAgICMgaW4gd2hpY2ggY2FzZSB3ZSBpZ25vcmUgaXQuIFRo
aXMgY3VycmVudGx5IGhhcHBlbnMgd2l0aCBwc2V1ZG8KKyAgICAgICAgICAgICMgRml4dHVyZURl
ZnMgd2hpY2ggd3JhcCAnZ2V0X2RpcmVjdF9wYXJhbV9maXh0dXJlX2Z1bmMocmVxdWVzdCknLgor
ICAgICAgICAgICAgIyBTbyB0aGV5IGludHJvZHVjZSB0aGUgbmV3IGRlcGVuZGVuY3kgJ3JlcXVl
c3QnIHdoaWNoIG1pZ2h0IGhhdmUKKyAgICAgICAgICAgICMgYmVlbiBtaXNzaW5nIGluIHRoZSBv
cmlnaW5hbCB0cmVlIChjbG9zdXJlKS4KKyAgICAgICAgICAgIGlmIGFyZ25hbWUgbm90IGluIGNs
b3N1cmUgYW5kIGFyZ25hbWUgaW4gc2VsZi5uYW1lc19jbG9zdXJlOgorICAgICAgICAgICAgICAg
IGNsb3N1cmUuYWRkKGFyZ25hbWUpCisgICAgICAgICAgICAgICAgaWYgYXJnbmFtZSBpbiBzZWxm
Lm5hbWUyZml4dHVyZWRlZnM6CisgICAgICAgICAgICAgICAgICAgIHdvcmtpbmdfc2V0LnVwZGF0
ZShzZWxmLm5hbWUyZml4dHVyZWRlZnNbYXJnbmFtZV1bLTFdLmFyZ25hbWVzKQorCisgICAgICAg
IHNlbGYubmFtZXNfY2xvc3VyZVs6XSA9IHNvcnRlZChjbG9zdXJlLCBrZXk9c2VsZi5uYW1lc19j
bG9zdXJlLmluZGV4KQogCiAKIGNsYXNzIEZpeHR1cmVSZXF1ZXN0KEZ1bmNhcmduYW1lc0NvbXBh
dEF0dHIpOgpAQCAtMzA1LDggKzM2MSwxMCBAQCBjbGFzcyBGaXh0dXJlUmVxdWVzdChGdW5jYXJn
bmFtZXNDb21wYXRBdHRyKToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBmaXh0dXJlbmFtZXMo
c2VsZik6Ci0gICAgICAgICMgYmFja3dhcmQgaW5jb21wYXRpYmxlIG5vdGU6IG5vdyBhIHJlYWRv
bmx5IHByb3BlcnR5Ci0gICAgICAgIHJldHVybiBsaXN0KHNlbGYuX3B5ZnVuY2l0ZW0uX2ZpeHR1
cmVpbmZvLm5hbWVzX2Nsb3N1cmUpCisgICAgICAgICIiIm5hbWVzIG9mIGFsbCBhY3RpdmUgZml4
dHVyZXMgaW4gdGhpcyByZXF1ZXN0IiIiCisgICAgICAgIHJlc3VsdCA9IGxpc3Qoc2VsZi5fcHlm
dW5jaXRlbS5fZml4dHVyZWluZm8ubmFtZXNfY2xvc3VyZSkKKyAgICAgICAgcmVzdWx0LmV4dGVu
ZChzZXQoc2VsZi5fZml4dHVyZV9kZWZzKS5kaWZmZXJlbmNlKHJlc3VsdCkpCisgICAgICAgIHJl
dHVybiByZXN1bHQKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBub2RlKHNlbGYpOgpAQCAtNDEw
LDQwICs0NjgsNiBAQCBjbGFzcyBGaXh0dXJlUmVxdWVzdChGdW5jYXJnbmFtZXNDb21wYXRBdHRy
KToKICAgICAgICAgICAgIGlmIGFyZ25hbWUgbm90IGluIGl0ZW0uZnVuY2FyZ3M6CiAgICAgICAg
ICAgICAgICAgaXRlbS5mdW5jYXJnc1thcmduYW1lXSA9IHNlbGYuZ2V0Zml4dHVyZXZhbHVlKGFy
Z25hbWUpCiAKLSAgICBkZWYgY2FjaGVkX3NldHVwKHNlbGYsIHNldHVwLCB0ZWFyZG93bj1Ob25l
LCBzY29wZT0ibW9kdWxlIiwgZXh0cmFrZXk9Tm9uZSk6Ci0gICAgICAgICIiIiAoZGVwcmVjYXRl
ZCkgUmV0dXJuIGEgdGVzdGluZyByZXNvdXJjZSBtYW5hZ2VkIGJ5IGBgc2V0dXBgYCAmCi0gICAg
ICAgIGBgdGVhcmRvd25gYCBjYWxscy4gIGBgc2NvcGVgYCBhbmQgYGBleHRyYWtleWBgIGRldGVy
bWluZSB3aGVuIHRoZQotICAgICAgICBgYHRlYXJkb3duYGAgZnVuY3Rpb24gd2lsbCBiZSBjYWxs
ZWQgc28gdGhhdCBzdWJzZXF1ZW50IGNhbGxzIHRvCi0gICAgICAgIGBgc2V0dXBgYCB3b3VsZCBy
ZWNyZWF0ZSB0aGUgcmVzb3VyY2UuICBXaXRoIHB5dGVzdC0yLjMgeW91IG9mdGVuCi0gICAgICAg
IGRvIG5vdCBuZWVkIGBgY2FjaGVkX3NldHVwKClgYCBhcyB5b3UgY2FuIGRpcmVjdGx5IGRlY2xh
cmUgYSBzY29wZQotICAgICAgICBvbiBhIGZpeHR1cmUgZnVuY3Rpb24gYW5kIHJlZ2lzdGVyIGEg
ZmluYWxpemVyIHRocm91Z2gKLSAgICAgICAgYGByZXF1ZXN0LmFkZGZpbmFsaXplcigpYGAuCi0K
LSAgICAgICAgOmFyZyB0ZWFyZG93bjogZnVuY3Rpb24gcmVjZWl2aW5nIGEgcHJldmlvdXNseSBz
ZXR1cCByZXNvdXJjZS4KLSAgICAgICAgOmFyZyBzZXR1cDogYSBuby1hcmd1bWVudCBmdW5jdGlv
biBjcmVhdGluZyBhIHJlc291cmNlLgotICAgICAgICA6YXJnIHNjb3BlOiBhIHN0cmluZyB2YWx1
ZSBvdXQgb2YgYGBmdW5jdGlvbmBgLCBgYGNsYXNzYGAsIGBgbW9kdWxlYGAKLSAgICAgICAgICAg
IG9yIGBgc2Vzc2lvbmBgIGluZGljYXRpbmcgdGhlIGNhY2hpbmcgbGlmZWN5Y2xlIG9mIHRoZSBy
ZXNvdXJjZS4KLSAgICAgICAgOmFyZyBleHRyYWtleTogYWRkZWQgdG8gaW50ZXJuYWwgY2FjaGlu
ZyBrZXkgb2YgKGZ1bmNhcmduYW1lLCBzY29wZSkuCi0gICAgICAgICIiIgotICAgICAgICBpZiBu
b3QgaGFzYXR0cihzZWxmLmNvbmZpZywgIl9zZXR1cGNhY2hlIik6Ci0gICAgICAgICAgICBzZWxm
LmNvbmZpZy5fc2V0dXBjYWNoZSA9IHt9ICAjIFhYWCB3ZWFrcmVmPwotICAgICAgICBjYWNoZWtl
eSA9IChzZWxmLmZpeHR1cmVuYW1lLCBzZWxmLl9nZXRzY29wZWl0ZW0oc2NvcGUpLCBleHRyYWtl
eSkKLSAgICAgICAgY2FjaGUgPSBzZWxmLmNvbmZpZy5fc2V0dXBjYWNoZQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICB2YWwgPSBjYWNoZVtjYWNoZWtleV0KLSAgICAgICAgZXhjZXB0IEtleUVy
cm9yOgotICAgICAgICAgICAgc2VsZi5fY2hlY2tfc2NvcGUoc2VsZi5maXh0dXJlbmFtZSwgc2Vs
Zi5zY29wZSwgc2NvcGUpCi0gICAgICAgICAgICB2YWwgPSBzZXR1cCgpCi0gICAgICAgICAgICBj
YWNoZVtjYWNoZWtleV0gPSB2YWwKLSAgICAgICAgICAgIGlmIHRlYXJkb3duIGlzIG5vdCBOb25l
OgotCi0gICAgICAgICAgICAgICAgZGVmIGZpbmFsaXplcigpOgotICAgICAgICAgICAgICAgICAg
ICBkZWwgY2FjaGVbY2FjaGVrZXldCi0gICAgICAgICAgICAgICAgICAgIHRlYXJkb3duKHZhbCkK
LQotICAgICAgICAgICAgICAgIHNlbGYuX2FkZGZpbmFsaXplcihmaW5hbGl6ZXIsIHNjb3BlPXNj
b3BlKQotICAgICAgICByZXR1cm4gdmFsCi0KICAgICBkZWYgZ2V0Zml4dHVyZXZhbHVlKHNlbGYs
IGFyZ25hbWUpOgogICAgICAgICAiIiIgRHluYW1pY2FsbHkgcnVuIGEgbmFtZWQgZml4dHVyZSBm
dW5jdGlvbi4KIApAQCAtNDU4LDcgKzQ4Miw3IEBAIGNsYXNzIEZpeHR1cmVSZXF1ZXN0KEZ1bmNh
cmduYW1lc0NvbXBhdEF0dHIpOgogICAgICAgICAiIiIgRGVwcmVjYXRlZCwgdXNlIGdldGZpeHR1
cmV2YWx1ZS4gIiIiCiAgICAgICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAogCi0g
ICAgICAgIHdhcm5pbmdzLndhcm4oZGVwcmVjYXRlZC5HRVRGVU5DQVJHVkFMVUUsIERlcHJlY2F0
aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQorICAgICAgICB3YXJuaW5ncy53YXJuKGRlcHJlY2F0
ZWQuR0VURlVOQ0FSR1ZBTFVFLCBzdGFja2xldmVsPTIpCiAgICAgICAgIHJldHVybiBzZWxmLmdl
dGZpeHR1cmV2YWx1ZShhcmduYW1lKQogCiAgICAgZGVmIF9nZXRfYWN0aXZlX2ZpeHR1cmVkZWYo
c2VsZiwgYXJnbmFtZSk6CkBAIC01MDgsNyArNTMyLDIwIEBAIGNsYXNzIEZpeHR1cmVSZXF1ZXN0
KEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgogICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9y
LCBWYWx1ZUVycm9yKToKICAgICAgICAgICAgIHBhcmFtID0gTk9UU0VUCiAgICAgICAgICAgICBw
YXJhbV9pbmRleCA9IDAKLSAgICAgICAgICAgIGlmIGZpeHR1cmVkZWYucGFyYW1zIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgaGFzX3BhcmFtcyA9IGZpeHR1cmVkZWYucGFyYW1zIGlzIG5vdCBO
b25lCisgICAgICAgICAgICBmaXh0dXJlc19ub3Rfc3VwcG9ydGVkID0gZ2V0YXR0cihmdW5jaXRl
bSwgIm5vZnVuY2FyZ3MiLCBGYWxzZSkKKyAgICAgICAgICAgIGlmIGhhc19wYXJhbXMgYW5kIGZp
eHR1cmVzX25vdF9zdXBwb3J0ZWQ6CisgICAgICAgICAgICAgICAgbXNnID0gKAorICAgICAgICAg
ICAgICAgICAgICAie25hbWV9IGRvZXMgbm90IHN1cHBvcnQgZml4dHVyZXMsIG1heWJlIHVuaXR0
ZXN0LlRlc3RDYXNlIHN1YmNsYXNzP1xuIgorICAgICAgICAgICAgICAgICAgICAiTm9kZSBpZDog
e25vZGVpZH1cbiIKKyAgICAgICAgICAgICAgICAgICAgIkZ1bmN0aW9uIHR5cGU6IHt0eXBlbmFt
ZX0iCisgICAgICAgICAgICAgICAgKS5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIG5hbWU9
ZnVuY2l0ZW0ubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgbm9kZWlkPWZ1bmNpdGVtLm5vZGVp
ZCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWU9dHlwZShmdW5jaXRlbSkuX19uYW1lX18s
CisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIGZhaWwobXNnLCBweXRyYWNlPUZh
bHNlKQorICAgICAgICAgICAgaWYgaGFzX3BhcmFtczoKICAgICAgICAgICAgICAgICBmcmFtZSA9
IGluc3BlY3Quc3RhY2soKVszXQogICAgICAgICAgICAgICAgIGZyYW1laW5mbyA9IGluc3BlY3Qu
Z2V0ZnJhbWVpbmZvKGZyYW1lWzBdKQogICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoID0gZnJh
bWVpbmZvLmZpbGVuYW1lCkBAIC01MTcsMTkgKzU1NCwyMCBAQCBjbGFzcyBGaXh0dXJlUmVxdWVz
dChGdW5jYXJnbmFtZXNDb21wYXRBdHRyKToKICAgICAgICAgICAgICAgICBpZiBzb3VyY2VfcGF0
aC5yZWx0byhmdW5jaXRlbS5jb25maWcucm9vdGRpcik6CiAgICAgICAgICAgICAgICAgICAgIHNv
dXJjZV9wYXRoID0gc291cmNlX3BhdGgucmVsdG8oZnVuY2l0ZW0uY29uZmlnLnJvb3RkaXIpCiAg
ICAgICAgICAgICAgICAgbXNnID0gKAotICAgICAgICAgICAgICAgICAgICAiVGhlIHJlcXVlc3Rl
ZCBmaXh0dXJlIGhhcyBubyBwYXJhbWV0ZXIgZGVmaW5lZCBmb3IgdGhlICIKLSAgICAgICAgICAg
ICAgICAgICAgImN1cnJlbnQgdGVzdC5cblxuUmVxdWVzdGVkIGZpeHR1cmUgJ3t9JyBkZWZpbmVk
IGluOlxue30iCisgICAgICAgICAgICAgICAgICAgICJUaGUgcmVxdWVzdGVkIGZpeHR1cmUgaGFz
IG5vIHBhcmFtZXRlciBkZWZpbmVkIGZvciB0ZXN0OlxuIgorICAgICAgICAgICAgICAgICAgICAi
ICAgIHt9XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIlJlcXVlc3RlZCBmaXh0dXJlICd7fScg
ZGVmaW5lZCBpbjpcbnt9IgogICAgICAgICAgICAgICAgICAgICAiXG5cblJlcXVlc3RlZCBoZXJl
Olxue306e30iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNpdGVtLm5vZGVp
ZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYuYXJnbmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgIGdldGxvY2F0aW9uKGZpeHR1cmVkZWYuZnVuYywgZnVuY2l0ZW0uY29u
ZmlnLnJvb3RkaXIpLAogICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3BhdGgsCiAgICAg
ICAgICAgICAgICAgICAgICAgICBzb3VyY2VfbGluZW5vLAogICAgICAgICAgICAgICAgICAgICAp
CiAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIGZhaWwobXNnKQorICAgICAgICAg
ICAgICAgIGZhaWwobXNnLCBweXRyYWNlPUZhbHNlKQogICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgIyBpbmRpY2VzIG1pZ2h0IG5vdCBiZSBzZXQgaWYgb2xkLXN0eWxlIG1ldGFmdW5jLmFkZGNh
bGwoKSB3YXMgdXNlZAotICAgICAgICAgICAgcGFyYW1faW5kZXggPSBmdW5jaXRlbS5jYWxsc3Bl
Yy5pbmRpY2VzLmdldChhcmduYW1lLCAwKQorICAgICAgICAgICAgcGFyYW1faW5kZXggPSBmdW5j
aXRlbS5jYWxsc3BlYy5pbmRpY2VzW2FyZ25hbWVdCiAgICAgICAgICAgICAjIGlmIGEgcGFyYW1l
dHJpemUgaW52b2NhdGlvbiBzZXQgYSBzY29wZSBpdCB3aWxsIG92ZXJyaWRlCiAgICAgICAgICAg
ICAjIHRoZSBzdGF0aWMgc2NvcGUgZGVmaW5lZCB3aXRoIHRoZSBmaXh0dXJlIGZ1bmN0aW9uCiAg
ICAgICAgICAgICBwYXJhbXNjb3BlbnVtID0gZnVuY2l0ZW0uY2FsbHNwZWMuX2FyZzJzY29wZW51
bS5nZXQoYXJnbmFtZSkKQEAgLTU0MiwxNyArNTgwLDE5IEBAIGNsYXNzIEZpeHR1cmVSZXF1ZXN0
KEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgogICAgICAgICBzdWJyZXF1ZXN0Ll9jaGVja19zY29w
ZShhcmduYW1lLCBzZWxmLnNjb3BlLCBzY29wZSkKIAogICAgICAgICAjIGNsZWFyIHN5cy5leGNf
aW5mbyBiZWZvcmUgaW52b2tpbmcgdGhlIGZpeHR1cmUgKHB5dGhvbiBidWc/KQotICAgICAgICAj
IGlmIGl0cyBub3QgZXhwbGljaXRseSBjbGVhcmVkIGl0IHdpbGwgbGVhayBpbnRvIHRoZSBjYWxs
CisgICAgICAgICMgaWYgaXQncyBub3QgZXhwbGljaXRseSBjbGVhcmVkIGl0IHdpbGwgbGVhayBp
bnRvIHRoZSBjYWxsCiAgICAgICAgIGV4Y19jbGVhcigpCiAgICAgICAgIHRyeToKICAgICAgICAg
ICAgICMgY2FsbCB0aGUgZml4dHVyZSBmdW5jdGlvbgogICAgICAgICAgICAgZml4dHVyZWRlZi5l
eGVjdXRlKHJlcXVlc3Q9c3VicmVxdWVzdCkKICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
ICMgaWYgZml4dHVyZSBmdW5jdGlvbiBmYWlsZWQgaXQgbWlnaHQgaGF2ZSByZWdpc3RlcmVkIGZp
bmFsaXplcnMKLSAgICAgICAgICAgIHNlbGYuc2Vzc2lvbi5fc2V0dXBzdGF0ZS5hZGRmaW5hbGl6
ZXIoCi0gICAgICAgICAgICAgICAgZnVuY3Rvb2xzLnBhcnRpYWwoZml4dHVyZWRlZi5maW5pc2gs
IHJlcXVlc3Q9c3VicmVxdWVzdCksCi0gICAgICAgICAgICAgICAgc3VicmVxdWVzdC5ub2RlLAot
ICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5fc2NoZWR1bGVfZmluYWxpemVycyhmaXh0
dXJlZGVmLCBzdWJyZXF1ZXN0KQorCisgICAgZGVmIF9zY2hlZHVsZV9maW5hbGl6ZXJzKHNlbGYs
IGZpeHR1cmVkZWYsIHN1YnJlcXVlc3QpOgorICAgICAgICAjIGlmIGZpeHR1cmUgZnVuY3Rpb24g
ZmFpbGVkIGl0IG1pZ2h0IGhhdmUgcmVnaXN0ZXJlZCBmaW5hbGl6ZXJzCisgICAgICAgIHNlbGYu
c2Vzc2lvbi5fc2V0dXBzdGF0ZS5hZGRmaW5hbGl6ZXIoCisgICAgICAgICAgICBmdW5jdG9vbHMu
cGFydGlhbChmaXh0dXJlZGVmLmZpbmlzaCwgcmVxdWVzdD1zdWJyZXF1ZXN0KSwgc3VicmVxdWVz
dC5ub2RlCisgICAgICAgICkKIAogICAgIGRlZiBfY2hlY2tfc2NvcGUoc2VsZiwgYXJnbmFtZSwg
aW52b2tpbmdfc2NvcGUsIHJlcXVlc3RlZF9zY29wZSk6CiAgICAgICAgIGlmIGFyZ25hbWUgPT0g
InJlcXVlc3QiOgpAQCAtNTc1LDE0ICs2MTUsMTcgQEAgY2xhc3MgRml4dHVyZVJlcXVlc3QoRnVu
Y2FyZ25hbWVzQ29tcGF0QXR0cik6CiAgICAgICAgICAgICBmcywgbGluZW5vID0gZ2V0ZnNsaW5l
bm8oZmFjdG9yeSkKICAgICAgICAgICAgIHAgPSBzZWxmLl9weWZ1bmNpdGVtLnNlc3Npb24uZnNw
YXRoLmJlc3RyZWxwYXRoKGZzKQogICAgICAgICAgICAgYXJncyA9IF9mb3JtYXRfYXJncyhmYWN0
b3J5KQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIlczolZDogIGRlZiAlcyVzIiAlIChwLCBs
aW5lbm8sIGZhY3RvcnkuX19uYW1lX18sIGFyZ3MpKQorICAgICAgICAgICAgbGluZXMuYXBwZW5k
KCIlczolZDogIGRlZiAlcyVzIiAlIChwLCBsaW5lbm8gKyAxLCBmYWN0b3J5Ll9fbmFtZV9fLCBh
cmdzKSkKICAgICAgICAgcmV0dXJuIGxpbmVzCiAKICAgICBkZWYgX2dldHNjb3BlaXRlbShzZWxm
LCBzY29wZSk6CiAgICAgICAgIGlmIHNjb3BlID09ICJmdW5jdGlvbiI6CiAgICAgICAgICAgICAj
IHRoaXMgbWlnaHQgYWxzbyBiZSBhIG5vbi1mdW5jdGlvbiBJdGVtIGRlc3BpdGUgaXRzIGF0dHJp
YnV0ZSBuYW1lCiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5jaXRlbQotICAgICAgICBu
b2RlID0gZ2V0X3Njb3BlX25vZGUoc2VsZi5fcHlmdW5jaXRlbSwgc2NvcGUpCisgICAgICAgIGlm
IHNjb3BlID09ICJwYWNrYWdlIjoKKyAgICAgICAgICAgIG5vZGUgPSBnZXRfc2NvcGVfcGFja2Fn
ZShzZWxmLl9weWZ1bmNpdGVtLCBzZWxmLl9maXh0dXJlZGVmKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgbm9kZSA9IGdldF9zY29wZV9ub2RlKHNlbGYuX3B5ZnVuY2l0ZW0sIHNjb3BlKQog
ICAgICAgICBpZiBub2RlIGlzIE5vbmUgYW5kIHNjb3BlID09ICJjbGFzcyI6CiAgICAgICAgICAg
ICAjIGZhbGxiYWNrIHRvIGZ1bmN0aW9uIGl0ZW0gaXRzZWxmCiAgICAgICAgICAgICBub2RlID0g
c2VsZi5fcHlmdW5jaXRlbQpAQCAtNjE5LDE0ICs2NjIsMTggQEAgY2xhc3MgU3ViUmVxdWVzdChG
aXh0dXJlUmVxdWVzdCk6CiAgICAgZGVmIGFkZGZpbmFsaXplcihzZWxmLCBmaW5hbGl6ZXIpOgog
ICAgICAgICBzZWxmLl9maXh0dXJlZGVmLmFkZGZpbmFsaXplcihmaW5hbGl6ZXIpCiAKLQotY2xh
c3MgU2NvcGVNaXNtYXRjaEVycm9yKEV4Y2VwdGlvbik6Ci0gICAgIiIiIEEgZml4dHVyZSBmdW5j
dGlvbiB0cmllcyB0byB1c2UgYSBkaWZmZXJlbnQgZml4dHVyZSBmdW5jdGlvbiB3aGljaAotICAg
IHdoaWNoIGhhcyBhIGxvd2VyIHNjb3BlIChlLmcuIGEgU2Vzc2lvbiBvbmUgY2FsbHMgYSBmdW5j
dGlvbiBvbmUpCi0gICAgIiIiCisgICAgZGVmIF9zY2hlZHVsZV9maW5hbGl6ZXJzKHNlbGYsIGZp
eHR1cmVkZWYsIHN1YnJlcXVlc3QpOgorICAgICAgICAjIGlmIHRoZSBleGVjdXRpbmcgZml4dHVy
ZWRlZiB3YXMgbm90IGV4cGxpY2l0bHkgcmVxdWVzdGVkIGluIHRoZSBhcmd1bWVudCBsaXN0ICh2
aWEKKyAgICAgICAgIyBnZXRmaXh0dXJldmFsdWUgaW5zaWRlIHRoZSBmaXh0dXJlIGNhbGwpIHRo
ZW4gZW5zdXJlIHRoaXMgZml4dHVyZSBkZWYgd2lsbCBiZSBmaW5pc2hlZAorICAgICAgICAjIGZp
cnN0CisgICAgICAgIGlmIGZpeHR1cmVkZWYuYXJnbmFtZSBub3QgaW4gc2VsZi5mdW5jYXJnbmFt
ZXM6CisgICAgICAgICAgICBmaXh0dXJlZGVmLmFkZGZpbmFsaXplcigKKyAgICAgICAgICAgICAg
ICBmdW5jdG9vbHMucGFydGlhbChzZWxmLl9maXh0dXJlZGVmLmZpbmlzaCwgcmVxdWVzdD1zZWxm
KQorICAgICAgICAgICAgKQorICAgICAgICBzdXBlcihTdWJSZXF1ZXN0LCBzZWxmKS5fc2NoZWR1
bGVfZmluYWxpemVycyhmaXh0dXJlZGVmLCBzdWJyZXF1ZXN0KQogCiAKLXNjb3BlcyA9ICJzZXNz
aW9uIG1vZHVsZSBjbGFzcyBmdW5jdGlvbiIuc3BsaXQoKQorc2NvcGVzID0gInNlc3Npb24gcGFj
a2FnZSBtb2R1bGUgY2xhc3MgZnVuY3Rpb24iLnNwbGl0KCkKIHNjb3BlbnVtX2Z1bmN0aW9uID0g
c2NvcGVzLmluZGV4KCJmdW5jdGlvbiIpCiAKIApAQCAtNjQxLDEwICs2ODgsMTEgQEAgZGVmIHNj
b3BlMmluZGV4KHNjb3BlLCBkZXNjciwgd2hlcmU9Tm9uZSk6CiAgICAgdHJ5OgogICAgICAgICBy
ZXR1cm4gc2NvcGVzLmluZGV4KHNjb3BlKQogICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgInt9IHt9aGFzIGFuIHVuc3VwcG9ydGVk
IHNjb3BlIHZhbHVlICd7fSciLmZvcm1hdCgKKyAgICAgICAgZmFpbCgKKyAgICAgICAgICAgICJ7
fSB7fWdvdCBhbiB1bmV4cGVjdGVkIHNjb3BlIHZhbHVlICd7fSciLmZvcm1hdCgKICAgICAgICAg
ICAgICAgICBkZXNjciwgImZyb20ge30gIi5mb3JtYXQod2hlcmUpIGlmIHdoZXJlIGVsc2UgIiIs
IHNjb3BlCi0gICAgICAgICAgICApCisgICAgICAgICAgICApLAorICAgICAgICAgICAgcHl0cmFj
ZT1GYWxzZSwKICAgICAgICAgKQogCiAKQEAgLTY4NCwyMSArNzMyLDI1IEBAIGNsYXNzIEZpeHR1
cmVMb29rdXBFcnJvcihMb29rdXBFcnJvcik6CiAKICAgICAgICAgaWYgbXNnIGlzIE5vbmU6CiAg
ICAgICAgICAgICBmbSA9IHNlbGYucmVxdWVzdC5fZml4dHVyZW1hbmFnZXIKLSAgICAgICAgICAg
IGF2YWlsYWJsZSA9IFtdCisgICAgICAgICAgICBhdmFpbGFibGUgPSBzZXQoKQogICAgICAgICAg
ICAgcGFyZW50aWQgPSBzZWxmLnJlcXVlc3QuX3B5ZnVuY2l0ZW0ucGFyZW50Lm5vZGVpZAogICAg
ICAgICAgICAgZm9yIG5hbWUsIGZpeHR1cmVkZWZzIGluIGZtLl9hcmcyZml4dHVyZWRlZnMuaXRl
bXMoKToKICAgICAgICAgICAgICAgICBmYWNsaXN0ID0gbGlzdChmbS5fbWF0Y2hmYWN0b3JpZXMo
Zml4dHVyZWRlZnMsIHBhcmVudGlkKSkKLSAgICAgICAgICAgICAgICBpZiBmYWNsaXN0IGFuZCBu
YW1lIG5vdCBpbiBhdmFpbGFibGU6Ci0gICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZS5hcHBl
bmQobmFtZSkKLSAgICAgICAgICAgIG1zZyA9ICJmaXh0dXJlICVyIG5vdCBmb3VuZCIgJSAoc2Vs
Zi5hcmduYW1lLCkKLSAgICAgICAgICAgIG1zZyArPSAiXG4gYXZhaWxhYmxlIGZpeHR1cmVzOiAl
cyIgJSAoIiwgIi5qb2luKHNvcnRlZChhdmFpbGFibGUpKSwpCisgICAgICAgICAgICAgICAgaWYg
ZmFjbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlLmFkZChuYW1lKQorICAgICAg
ICAgICAgaWYgc2VsZi5hcmduYW1lIGluIGF2YWlsYWJsZToKKyAgICAgICAgICAgICAgICBtc2cg
PSAiIHJlY3Vyc2l2ZSBkZXBlbmRlbmN5IGludm9sdmluZyBmaXh0dXJlICd7fScgZGV0ZWN0ZWQi
LmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hcmduYW1lCisgICAgICAgICAgICAg
ICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBtc2cgPSAiZml4dHVyZSAn
e30nIG5vdCBmb3VuZCIuZm9ybWF0KHNlbGYuYXJnbmFtZSkKKyAgICAgICAgICAgIG1zZyArPSAi
XG4gYXZhaWxhYmxlIGZpeHR1cmVzOiB7fSIuZm9ybWF0KCIsICIuam9pbihzb3J0ZWQoYXZhaWxh
YmxlKSkpCiAgICAgICAgICAgICBtc2cgKz0gIlxuIHVzZSAncHl0ZXN0IC0tZml4dHVyZXMgW3Rl
c3RwYXRoXScgZm9yIGhlbHAgb24gdGhlbS4iCiAKICAgICAgICAgcmV0dXJuIEZpeHR1cmVMb29r
dXBFcnJvclJlcHIoZnNwYXRoLCBsaW5lbm8sIHRibGluZXMsIG1zZywgc2VsZi5hcmduYW1lKQog
CiAKIGNsYXNzIEZpeHR1cmVMb29rdXBFcnJvclJlcHIoVGVybWluYWxSZXByKToKLQogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgZmlyc3RsaW5lbm8sIHRibGluZXMsIGVycm9yc3Ry
aW5nLCBhcmduYW1lKToKICAgICAgICAgc2VsZi50YmxpbmVzID0gdGJsaW5lcwogICAgICAgICBz
ZWxmLmVycm9yc3RyaW5nID0gZXJyb3JzdHJpbmcKQEAgLTczNywyMyArNzg5LDI2IEBAIGRlZiBj
YWxsX2ZpeHR1cmVfZnVuYyhmaXh0dXJlZnVuYywgcmVxdWVzdCwga3dhcmdzKToKICAgICBpZiB5
aWVsZGN0eDoKICAgICAgICAgaXQgPSBmaXh0dXJlZnVuYygqKmt3YXJncykKICAgICAgICAgcmVz
ID0gbmV4dChpdCkKLQotICAgICAgICBkZWYgdGVhcmRvd24oKToKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICBuZXh0KGl0KQotICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRp
b246Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBmYWlsX2ZpeHR1cmVmdW5jKAotICAgICAgICAgICAgICAgICAgICBmaXh0dXJlZnVuYywg
InlpZWxkX2ZpeHR1cmUgZnVuY3Rpb24gaGFzIG1vcmUgdGhhbiBvbmUgJ3lpZWxkJyIKLSAgICAg
ICAgICAgICAgICApCi0KLSAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIodGVhcmRvd24pCisg
ICAgICAgIGZpbmFsaXplciA9IGZ1bmN0b29scy5wYXJ0aWFsKF90ZWFyZG93bl95aWVsZF9maXh0
dXJlLCBmaXh0dXJlZnVuYywgaXQpCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGZpbmFs
aXplcikKICAgICBlbHNlOgogICAgICAgICByZXMgPSBmaXh0dXJlZnVuYygqKmt3YXJncykKICAg
ICByZXR1cm4gcmVzCiAKIAorZGVmIF90ZWFyZG93bl95aWVsZF9maXh0dXJlKGZpeHR1cmVmdW5j
LCBpdCk6CisgICAgIiIiRXhlY3V0ZXMgdGhlIHRlYXJkb3duIG9mIGEgZml4dHVyZSBmdW5jdGlv
biBieSBhZHZhbmNpbmcgdGhlIGl0ZXJhdG9yIGFmdGVyIHRoZQorICAgIHlpZWxkIGFuZCBlbnN1
cmUgdGhlIGl0ZXJhdGlvbiBlbmRzIChpZiBub3QgaXQgbWVhbnMgdGhlcmUgaXMgbW9yZSB0aGFu
IG9uZSB5aWVsZCBpbiB0aGUgZnVuY3Rpb24pIiIiCisgICAgdHJ5OgorICAgICAgICBuZXh0KGl0
KQorICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICBwYXNzCisgICAgZWxzZToKKyAg
ICAgICAgZmFpbF9maXh0dXJlZnVuYygKKyAgICAgICAgICAgIGZpeHR1cmVmdW5jLCAieWllbGRf
Zml4dHVyZSBmdW5jdGlvbiBoYXMgbW9yZSB0aGFuIG9uZSAneWllbGQnIgorICAgICAgICApCisK
KwogY2xhc3MgRml4dHVyZURlZihvYmplY3QpOgogICAgICIiIiBBIGNvbnRhaW5lciBmb3IgYSBm
YWN0b3J5IGRlZmluaXRpb24uICIiIgogCkBAIC03NzUsNyArODMwLDkgQEAgY2xhc3MgRml4dHVy
ZURlZihvYmplY3QpOgogICAgICAgICBzZWxmLmFyZ25hbWUgPSBhcmduYW1lCiAgICAgICAgIHNl
bGYuc2NvcGUgPSBzY29wZQogICAgICAgICBzZWxmLnNjb3BlbnVtID0gc2NvcGUyaW5kZXgoCi0g
ICAgICAgICAgICBzY29wZSBvciAiZnVuY3Rpb24iLCBkZXNjcj0iZml4dHVyZSB7fSIuZm9ybWF0
KGZ1bmMuX19uYW1lX18pLCB3aGVyZT1iYXNlaWQKKyAgICAgICAgICAgIHNjb3BlIG9yICJmdW5j
dGlvbiIsCisgICAgICAgICAgICBkZXNjcj0iRml4dHVyZSAne30nIi5mb3JtYXQoZnVuYy5fX25h
bWVfXyksCisgICAgICAgICAgICB3aGVyZT1iYXNlaWQsCiAgICAgICAgICkKICAgICAgICAgc2Vs
Zi5wYXJhbXMgPSBwYXJhbXMKICAgICAgICAgc2VsZi5hcmduYW1lcyA9IGdldGZ1bmNhcmduYW1l
cyhmdW5jLCBpc19tZXRob2Q9dW5pdHRlc3QpCkBAIC03OTcsOSArODU0LDkgQEAgY2xhc3MgRml4
dHVyZURlZihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25zLmFwcGVuZChz
eXMuZXhjX2luZm8oKSkKICAgICAgICAgICAgIGlmIGV4Y2VwdGlvbnM6CiAgICAgICAgICAgICAg
ICAgZSA9IGV4Y2VwdGlvbnNbMF0KLSAgICAgICAgICAgICAgICBkZWwgZXhjZXB0aW9ucyAgIyBl
bnN1cmUgd2UgZG9uJ3Qga2VlcCBhbGwgZnJhbWVzIGFsaXZlIGJlY2F1c2Ugb2YgdGhlIHRyYWNl
YmFjawotICAgICAgICAgICAgICAgIHB5LmJ1aWx0aW4uX3JlcmFpc2UoKmUpCi0KKyAgICAgICAg
ICAgICAgICAjIEVuc3VyZSB0byBub3Qga2VlcCBmcmFtZSByZWZlcmVuY2VzIHRocm91Z2ggdHJh
Y2ViYWNrLgorICAgICAgICAgICAgICAgIGRlbCBleGNlcHRpb25zCisgICAgICAgICAgICAgICAg
c2l4LnJlcmFpc2UoKmUpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBob29rID0gc2Vs
Zi5fZml4dHVyZW1hbmFnZXIuc2Vzc2lvbi5nZXRob29rcHJveHkocmVxdWVzdC5ub2RlLmZzcGF0
aCkKICAgICAgICAgICAgIGhvb2sucHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4dHVy
ZWRlZj1zZWxmLCByZXF1ZXN0PXJlcXVlc3QpCkBAIC04MjUsNyArODgyLDcgQEAgY2xhc3MgRml4
dHVyZURlZihvYmplY3QpOgogICAgICAgICAgICAgcmVzdWx0LCBjYWNoZV9rZXksIGVyciA9IGNh
Y2hlZF9yZXN1bHQKICAgICAgICAgICAgIGlmIG15X2NhY2hlX2tleSA9PSBjYWNoZV9rZXk6CiAg
ICAgICAgICAgICAgICAgaWYgZXJyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBw
eS5idWlsdGluLl9yZXJhaXNlKCplcnIpCisgICAgICAgICAgICAgICAgICAgIHNpeC5yZXJhaXNl
KCplcnIpCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdAogICAgICAgICAgICAgIyB3ZSBoYXZlIGEgcHJldmlvdXMgYnV0IGRpZmZlcmVudGx5
IHBhcmFtZXRyaXplZCBmaXh0dXJlIGluc3RhbmNlCkBAIC04MzcsMjEgKzg5NCwxNyBAQCBjbGFz
cyBGaXh0dXJlRGVmKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBob29rLnB5dGVzdF9maXh0dXJl
X3NldHVwKGZpeHR1cmVkZWY9c2VsZiwgcmVxdWVzdD1yZXF1ZXN0KQogCiAgICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gKAotICAgICAgICAgICAgIjxGaXh0dXJlRGVmIG5h
bWU9JXIgc2NvcGU9JXIgYmFzZWlkPSVyID4iCi0gICAgICAgICAgICAlIChzZWxmLmFyZ25hbWUs
IHNlbGYuc2NvcGUsIHNlbGYuYmFzZWlkKQorICAgICAgICByZXR1cm4gIjxGaXh0dXJlRGVmIGFy
Z25hbWU9JXIgc2NvcGU9JXIgYmFzZWlkPSVyPiIgJSAoCisgICAgICAgICAgICBzZWxmLmFyZ25h
bWUsCisgICAgICAgICAgICBzZWxmLnNjb3BlLAorICAgICAgICAgICAgc2VsZi5iYXNlaWQsCiAg
ICAgICAgICkKIAogCi1kZWYgcHl0ZXN0X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRlZiwgcmVxdWVz
dCk6Ci0gICAgIiIiIEV4ZWN1dGlvbiBvZiBmaXh0dXJlIHNldHVwLiAiIiIKLSAgICBrd2FyZ3Mg
PSB7fQotICAgIGZvciBhcmduYW1lIGluIGZpeHR1cmVkZWYuYXJnbmFtZXM6Ci0gICAgICAgIGZp
eGRlZiA9IHJlcXVlc3QuX2dldF9hY3RpdmVfZml4dHVyZWRlZihhcmduYW1lKQotICAgICAgICBy
ZXN1bHQsIGFyZ19jYWNoZV9rZXksIGV4YyA9IGZpeGRlZi5jYWNoZWRfcmVzdWx0Ci0gICAgICAg
IHJlcXVlc3QuX2NoZWNrX3Njb3BlKGFyZ25hbWUsIHJlcXVlc3Quc2NvcGUsIGZpeGRlZi5zY29w
ZSkKLSAgICAgICAga3dhcmdzW2FyZ25hbWVdID0gcmVzdWx0Ci0KK2RlZiByZXNvbHZlX2ZpeHR1
cmVfZnVuY3Rpb24oZml4dHVyZWRlZiwgcmVxdWVzdCk6CisgICAgIiIiR2V0cyB0aGUgYWN0dWFs
IGNhbGxhYmxlIHRoYXQgY2FuIGJlIGNhbGxlZCB0byBvYnRhaW4gdGhlIGZpeHR1cmUgdmFsdWUs
IGRlYWxpbmcgd2l0aCB1bml0dGVzdC1zcGVjaWZpYworICAgIGluc3RhbmNlcyBhbmQgYm91bmQg
bWV0aG9kcy4KKyAgICAiIiIKICAgICBmaXh0dXJlZnVuYyA9IGZpeHR1cmVkZWYuZnVuYwogICAg
IGlmIGZpeHR1cmVkZWYudW5pdHRlc3Q6CiAgICAgICAgIGlmIHJlcXVlc3QuaW5zdGFuY2UgaXMg
bm90IE5vbmU6CkBAIC04NjUsNiArOTE4LDE5IEBAIGRlZiBweXRlc3RfZml4dHVyZV9zZXR1cChm
aXh0dXJlZGVmLCByZXF1ZXN0KToKICAgICAgICAgICAgIGZpeHR1cmVmdW5jID0gZ2V0aW1mdW5j
KGZpeHR1cmVkZWYuZnVuYykKICAgICAgICAgICAgIGlmIGZpeHR1cmVmdW5jICE9IGZpeHR1cmVk
ZWYuZnVuYzoKICAgICAgICAgICAgICAgICBmaXh0dXJlZnVuYyA9IGZpeHR1cmVmdW5jLl9fZ2V0
X18ocmVxdWVzdC5pbnN0YW5jZSkKKyAgICByZXR1cm4gZml4dHVyZWZ1bmMKKworCitkZWYgcHl0
ZXN0X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRlZiwgcmVxdWVzdCk6CisgICAgIiIiIEV4ZWN1dGlv
biBvZiBmaXh0dXJlIHNldHVwLiAiIiIKKyAgICBrd2FyZ3MgPSB7fQorICAgIGZvciBhcmduYW1l
IGluIGZpeHR1cmVkZWYuYXJnbmFtZXM6CisgICAgICAgIGZpeGRlZiA9IHJlcXVlc3QuX2dldF9h
Y3RpdmVfZml4dHVyZWRlZihhcmduYW1lKQorICAgICAgICByZXN1bHQsIGFyZ19jYWNoZV9rZXks
IGV4YyA9IGZpeGRlZi5jYWNoZWRfcmVzdWx0CisgICAgICAgIHJlcXVlc3QuX2NoZWNrX3Njb3Bl
KGFyZ25hbWUsIHJlcXVlc3Quc2NvcGUsIGZpeGRlZi5zY29wZSkKKyAgICAgICAga3dhcmdzW2Fy
Z25hbWVdID0gcmVzdWx0CisKKyAgICBmaXh0dXJlZnVuYyA9IHJlc29sdmVfZml4dHVyZV9mdW5j
dGlvbihmaXh0dXJlZGVmLCByZXF1ZXN0KQogICAgIG15X2NhY2hlX2tleSA9IHJlcXVlc3QucGFy
YW1faW5kZXgKICAgICB0cnk6CiAgICAgICAgIHJlc3VsdCA9IGNhbGxfZml4dHVyZV9mdW5jKGZp
eHR1cmVmdW5jLCByZXF1ZXN0LCBrd2FyZ3MpCkBAIC04ODMsNiArOTQ5LDI1IEBAIGRlZiBfZW5z
dXJlX2ltbXV0YWJsZV9pZHMoaWRzKToKICAgICByZXR1cm4gdHVwbGUoaWRzKQogCiAKK2RlZiB3
cmFwX2Z1bmN0aW9uX3RvX2Vycm9yX291dF9pZl9jYWxsZWRfZGlyZWN0bHkoZnVuY3Rpb24sIGZp
eHR1cmVfbWFya2VyKToKKyAgICAiIiJXcmFwIHRoZSBnaXZlbiBmaXh0dXJlIGZ1bmN0aW9uIHNv
IHdlIGNhbiByYWlzZSBhbiBlcnJvciBhYm91dCBpdCBiZWluZyBjYWxsZWQgZGlyZWN0bHksCisg
ICAgaW5zdGVhZCBvZiB1c2VkIGFzIGFuIGFyZ3VtZW50IGluIGEgdGVzdCBmdW5jdGlvbi4KKyAg
ICAiIiIKKyAgICBtZXNzYWdlID0gRklYVFVSRV9GVU5DVElPTl9DQUxMLmZvcm1hdCgKKyAgICAg
ICAgbmFtZT1maXh0dXJlX21hcmtlci5uYW1lIG9yIGZ1bmN0aW9uLl9fbmFtZV9fCisgICAgKQor
CisgICAgQHNpeC53cmFwcyhmdW5jdGlvbikKKyAgICBkZWYgcmVzdWx0KCphcmdzLCAqKmt3YXJn
cyk6CisgICAgICAgIGZhaWwobWVzc2FnZSwgcHl0cmFjZT1GYWxzZSkKKworICAgICMga2VlcCBy
ZWZlcmVuY2UgdG8gdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGluIG91ciBvd24gY3VzdG9tIGF0dHJp
YnV0ZSBzbyB3ZSBkb24ndCB1bndyYXAKKyAgICAjIGZ1cnRoZXIgdGhhbiB0aGlzIHBvaW50IGFu
ZCBsb3NlIHVzZWZ1bCB3cmFwcGluZ3MgbGlrZSBAbW9jay5wYXRjaCAoIzM3NzQpCisgICAgcmVz
dWx0Ll9fcHl0ZXN0X3dyYXBwZWRfXyA9IF9QeXRlc3RXcmFwcGVyKGZ1bmN0aW9uKQorCisgICAg
cmV0dXJuIHJlc3VsdAorCisKIEBhdHRyLnMoZnJvemVuPVRydWUpCiBjbGFzcyBGaXh0dXJlRnVu
Y3Rpb25NYXJrZXIob2JqZWN0KToKICAgICBzY29wZSA9IGF0dHIuaWIoKQpAQCAtODkzLDEzICs5
NzgsMTggQEAgY2xhc3MgRml4dHVyZUZ1bmN0aW9uTWFya2VyKG9iamVjdCk6CiAKICAgICBkZWYg
X19jYWxsX18oc2VsZiwgZnVuY3Rpb24pOgogICAgICAgICBpZiBpc2NsYXNzKGZ1bmN0aW9uKToK
LSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNsYXNzIGZpeHR1cmVzIG5vdCBzdXBwb3J0
ZWQgKG1heSBiZSBpbiB0aGUgZnV0dXJlKSIpCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJjbGFzcyBmaXh0dXJlcyBub3Qgc3VwcG9ydGVkIChtYXliZSBpbiB0aGUgZnV0dXJlKSIpCiAK
ICAgICAgICAgaWYgZ2V0YXR0cihmdW5jdGlvbiwgIl9weXRlc3RmaXh0dXJlZnVuY3Rpb24iLCBG
YWxzZSk6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAogICAgICAgICAgICAgICAgICJm
aXh0dXJlIGlzIGJlaW5nIGFwcGxpZWQgbW9yZSB0aGFuIG9uY2UgdG8gdGhlIHNhbWUgZnVuY3Rp
b24iCiAgICAgICAgICAgICApCiAKKyAgICAgICAgZnVuY3Rpb24gPSB3cmFwX2Z1bmN0aW9uX3Rv
X2Vycm9yX291dF9pZl9jYWxsZWRfZGlyZWN0bHkoZnVuY3Rpb24sIHNlbGYpCisKKyAgICAgICAg
bmFtZSA9IHNlbGYubmFtZSBvciBmdW5jdGlvbi5fX25hbWVfXworICAgICAgICBpZiBuYW1lID09
ICJyZXF1ZXN0IjoKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oRklYVFVSRV9OQU1FRF9SRVFV
RVNUKQogICAgICAgICBmdW5jdGlvbi5fcHl0ZXN0Zml4dHVyZWZ1bmN0aW9uID0gc2VsZgogICAg
ICAgICByZXR1cm4gZnVuY3Rpb24KIApAQCAtOTA3LDIwICs5OTcsMzIgQEAgY2xhc3MgRml4dHVy
ZUZ1bmN0aW9uTWFya2VyKG9iamVjdCk6CiBkZWYgZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBw
YXJhbXM9Tm9uZSwgYXV0b3VzZT1GYWxzZSwgaWRzPU5vbmUsIG5hbWU9Tm9uZSk6CiAgICAgIiIi
RGVjb3JhdG9yIHRvIG1hcmsgYSBmaXh0dXJlIGZhY3RvcnkgZnVuY3Rpb24uCiAKLSAgICBUaGlz
IGRlY29yYXRvciBjYW4gYmUgdXNlZCAod2l0aCBvciB3aXRob3V0IHBhcmFtZXRlcnMpIHRvIGRl
ZmluZSBhCi0gICAgZml4dHVyZSBmdW5jdGlvbi4gIFRoZSBuYW1lIG9mIHRoZSBmaXh0dXJlIGZ1
bmN0aW9uIGNhbiBsYXRlciBiZQotICAgIHJlZmVyZW5jZWQgdG8gY2F1c2UgaXRzIGludm9jYXRp
b24gYWhlYWQgb2YgcnVubmluZyB0ZXN0czogdGVzdAotICAgIG1vZHVsZXMgb3IgY2xhc3NlcyBj
YW4gdXNlIHRoZSBweXRlc3QubWFyay51c2VmaXh0dXJlcyhmaXh0dXJlbmFtZSkKLSAgICBtYXJr
ZXIuICBUZXN0IGZ1bmN0aW9ucyBjYW4gZGlyZWN0bHkgdXNlIGZpeHR1cmUgbmFtZXMgYXMgaW5w
dXQKKyAgICBUaGlzIGRlY29yYXRvciBjYW4gYmUgdXNlZCwgd2l0aCBvciB3aXRob3V0IHBhcmFt
ZXRlcnMsIHRvIGRlZmluZSBhCisgICAgZml4dHVyZSBmdW5jdGlvbi4KKworICAgIFRoZSBuYW1l
IG9mIHRoZSBmaXh0dXJlIGZ1bmN0aW9uIGNhbiBsYXRlciBiZSByZWZlcmVuY2VkIHRvIGNhdXNl
IGl0cworICAgIGludm9jYXRpb24gYWhlYWQgb2YgcnVubmluZyB0ZXN0czogdGVzdAorICAgIG1v
ZHVsZXMgb3IgY2xhc3NlcyBjYW4gdXNlIHRoZSBgYHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKGZp
eHR1cmVuYW1lKWBgCisgICAgbWFya2VyLgorCisgICAgVGVzdCBmdW5jdGlvbnMgY2FuIGRpcmVj
dGx5IHVzZSBmaXh0dXJlIG5hbWVzIGFzIGlucHV0CiAgICAgYXJndW1lbnRzIGluIHdoaWNoIGNh
c2UgdGhlIGZpeHR1cmUgaW5zdGFuY2UgcmV0dXJuZWQgZnJvbSB0aGUgZml4dHVyZQogICAgIGZ1
bmN0aW9uIHdpbGwgYmUgaW5qZWN0ZWQuCiAKKyAgICBGaXh0dXJlcyBjYW4gcHJvdmlkZSB0aGVp
ciB2YWx1ZXMgdG8gdGVzdCBmdW5jdGlvbnMgdXNpbmcgYGByZXR1cm5gYCBvciBgYHlpZWxkYGAK
KyAgICBzdGF0ZW1lbnRzLiBXaGVuIHVzaW5nIGBgeWllbGRgYCB0aGUgY29kZSBibG9jayBhZnRl
ciB0aGUgYGB5aWVsZGBgIHN0YXRlbWVudCBpcyBleGVjdXRlZAorICAgIGFzIHRlYXJkb3duIGNv
ZGUgcmVnYXJkbGVzcyBvZiB0aGUgdGVzdCBvdXRjb21lLCBhbmQgbXVzdCB5aWVsZCBleGFjdGx5
IG9uY2UuCisKICAgICA6YXJnIHNjb3BlOiB0aGUgc2NvcGUgZm9yIHdoaWNoIHRoaXMgZml4dHVy
ZSBpcyBzaGFyZWQsIG9uZSBvZgotICAgICAgICAgICAgICAgICJmdW5jdGlvbiIgKGRlZmF1bHQp
LCAiY2xhc3MiLCAibW9kdWxlIiBvciAic2Vzc2lvbiIuCisgICAgICAgICAgICAgICAgYGAiZnVu
Y3Rpb24iYGAgKGRlZmF1bHQpLCBgYCJjbGFzcyJgYCwgYGAibW9kdWxlImBgLAorICAgICAgICAg
ICAgICAgIGBgInBhY2thZ2UiYGAgb3IgYGAic2Vzc2lvbiJgYC4KKworICAgICAgICAgICAgICAg
IGBgInBhY2thZ2UiYGAgaXMgY29uc2lkZXJlZCAqKmV4cGVyaW1lbnRhbCoqIGF0IHRoaXMgdGlt
ZS4KIAogICAgIDphcmcgcGFyYW1zOiBhbiBvcHRpb25hbCBsaXN0IG9mIHBhcmFtZXRlcnMgd2hp
Y2ggd2lsbCBjYXVzZSBtdWx0aXBsZQogICAgICAgICAgICAgICAgIGludm9jYXRpb25zIG9mIHRo
ZSBmaXh0dXJlIGZ1bmN0aW9uIGFuZCBhbGwgb2YgdGhlIHRlc3RzCiAgICAgICAgICAgICAgICAg
dXNpbmcgaXQuCisgICAgICAgICAgICAgICAgVGhlIGN1cnJlbnQgcGFyYW1ldGVyIGlzIGF2YWls
YWJsZSBpbiBgYHJlcXVlc3QucGFyYW1gYC4KIAogICAgIDphcmcgYXV0b3VzZTogaWYgVHJ1ZSwg
dGhlIGZpeHR1cmUgZnVuYyBpcyBhY3RpdmF0ZWQgZm9yIGFsbCB0ZXN0cyB0aGF0CiAgICAgICAg
ICAgICAgICAgY2FuIHNlZSBpdC4gIElmIEZhbHNlICh0aGUgZGVmYXVsdCkgdGhlbiBhbiBleHBs
aWNpdApAQCAtOTM3LDEwICsxMDM5LDYgQEAgZGVmIGZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwg
cGFyYW1zPU5vbmUsIGF1dG91c2U9RmFsc2UsIGlkcz1Ob25lLCBuYW1lPU5vbmUpOgogICAgICAg
ICAgICAgICAgIHRvIHJlc29sdmUgdGhpcyBpcyB0byBuYW1lIHRoZSBkZWNvcmF0ZWQgZnVuY3Rp
b24KICAgICAgICAgICAgICAgICBgYGZpeHR1cmVfPGZpeHR1cmVuYW1lPmBgIGFuZCB0aGVuIHVz
ZQogICAgICAgICAgICAgICAgIGBgQHB5dGVzdC5maXh0dXJlKG5hbWU9JzxmaXh0dXJlbmFtZT4n
KWBgLgotCi0gICAgRml4dHVyZXMgY2FuIG9wdGlvbmFsbHkgcHJvdmlkZSB0aGVpciB2YWx1ZXMg
dG8gdGVzdCBmdW5jdGlvbnMgdXNpbmcgYSBgYHlpZWxkYGAgc3RhdGVtZW50LAotICAgIGluc3Rl
YWQgb2YgYGByZXR1cm5gYC4gSW4gdGhpcyBjYXNlLCB0aGUgY29kZSBibG9jayBhZnRlciB0aGUg
YGB5aWVsZGBgIHN0YXRlbWVudCBpcyBleGVjdXRlZAotICAgIGFzIHRlYXJkb3duIGNvZGUgcmVn
YXJkbGVzcyBvZiB0aGUgdGVzdCBvdXRjb21lLiBBIGZpeHR1cmUgZnVuY3Rpb24gbXVzdCB5aWVs
ZCBleGFjdGx5IG9uY2UuCiAgICAgIiIiCiAgICAgaWYgY2FsbGFibGUoc2NvcGUpIGFuZCBwYXJh
bXMgaXMgTm9uZSBhbmQgYXV0b3VzZSBpcyBGYWxzZToKICAgICAgICAgIyBkaXJlY3QgZGVjb3Jh
dGlvbgpAQCAtOTU2LDEzICsxMDU0LDcgQEAgZGVmIHlpZWxkX2ZpeHR1cmUoc2NvcGU9ImZ1bmN0
aW9uIiwgcGFyYW1zPU5vbmUsIGF1dG91c2U9RmFsc2UsIGlkcz1Ob25lLCBuYW1lPU4KICAgICAu
LiBkZXByZWNhdGVkOjogMy4wCiAgICAgICAgIFVzZSA6cHk6ZnVuYzpgcHl0ZXN0LmZpeHR1cmVg
IGRpcmVjdGx5IGluc3RlYWQuCiAgICAgIiIiCi0gICAgaWYgY2FsbGFibGUoc2NvcGUpIGFuZCBw
YXJhbXMgaXMgTm9uZSBhbmQgbm90IGF1dG91c2U6Ci0gICAgICAgICMgZGlyZWN0IGRlY29yYXRp
b24KLSAgICAgICAgcmV0dXJuIEZpeHR1cmVGdW5jdGlvbk1hcmtlcigiZnVuY3Rpb24iLCBwYXJh
bXMsIGF1dG91c2UsIGlkcz1pZHMsIG5hbWU9bmFtZSkoCi0gICAgICAgICAgICBzY29wZQotICAg
ICAgICApCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuIEZpeHR1cmVGdW5jdGlvbk1hcmtlcihz
Y29wZSwgcGFyYW1zLCBhdXRvdXNlLCBpZHM9aWRzLCBuYW1lPW5hbWUpCisgICAgcmV0dXJuIGZp
eHR1cmUoc2NvcGU9c2NvcGUsIHBhcmFtcz1wYXJhbXMsIGF1dG91c2U9YXV0b3VzZSwgaWRzPWlk
cywgbmFtZT1uYW1lKQogCiAKIGRlZmF1bHRmdW5jYXJncHJlZml4bWFya2VyID0gZml4dHVyZSgp
CkBAIC05NzUsMTMgKzEwNjcsMjIgQEAgZGVmIHB5dGVzdGNvbmZpZyhyZXF1ZXN0KToKICAgICBF
eGFtcGxlOjoKIAogICAgICAgICBkZWYgdGVzdF9mb28ocHl0ZXN0Y29uZmlnKToKLSAgICAgICAg
ICAgIGlmIHB5dGVzdGNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2UiKToKKyAgICAgICAgICAgIGlm
IHB5dGVzdGNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2UiKSA+IDA6CiAgICAgICAgICAgICAgICAg
Li4uCiAKICAgICAiIiIKICAgICByZXR1cm4gcmVxdWVzdC5jb25maWcKIAogCitkZWYgcHl0ZXN0
X2FkZG9wdGlvbihwYXJzZXIpOgorICAgIHBhcnNlci5hZGRpbmkoCisgICAgICAgICJ1c2VmaXh0
dXJlcyIsCisgICAgICAgIHR5cGU9ImFyZ3MiLAorICAgICAgICBkZWZhdWx0PVtdLAorICAgICAg
ICBoZWxwPSJsaXN0IG9mIGRlZmF1bHQgZml4dHVyZXMgdG8gYmUgdXNlZCB3aXRoIHRoaXMgcHJv
amVjdCIsCisgICAgKQorCisKIGNsYXNzIEZpeHR1cmVNYW5hZ2VyKG9iamVjdCk6CiAgICAgIiIi
CiAgICAgcHl0ZXN0IGZpeHR1cmVzIGRlZmluaXRpb25zIGFuZCBpbmZvcm1hdGlvbiBpcyBzdG9y
ZWQgYW5kIG1hbmFnZWQKQEAgLTEwMTQsNyArMTExNSw2IEBAIGNsYXNzIEZpeHR1cmVNYW5hZ2Vy
KG9iamVjdCk6CiAgICAgYnkgYSBsb29rdXAgb2YgdGhlaXIgRnVuY0ZpeHR1cmVJbmZvLgogICAg
ICIiIgogCi0gICAgX2FyZ3ByZWZpeCA9ICJweXRlc3RfZnVuY2FyZ19fIgogICAgIEZpeHR1cmVM
b29rdXBFcnJvciA9IEZpeHR1cmVMb29rdXBFcnJvcgogICAgIEZpeHR1cmVMb29rdXBFcnJvclJl
cHIgPSBGaXh0dXJlTG9va3VwRXJyb3JSZXByCiAKQEAgLTEwMjcsMjQgKzExMjcsNDcgQEAgY2xh
c3MgRml4dHVyZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fbm9kZWlkX2FuZF9hdXRv
dXNlbmFtZXMgPSBbKCIiLCBzZWxmLmNvbmZpZy5nZXRpbmkoInVzZWZpeHR1cmVzIikpXQogICAg
ICAgICBzZXNzaW9uLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHNlbGYsICJmdW5jbWFu
YWdlIikKIAorICAgIGRlZiBfZ2V0X2RpcmVjdF9wYXJhbWV0cml6ZV9hcmdzKHNlbGYsIG5vZGUp
OgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHJldHVybnMgYWxsIHRoZSBkaXJlY3QgcGFyYW1l
dHJpemF0aW9uCisgICAgICAgIGFyZ3VtZW50cyBvZiBhIG5vZGUsIHNvIHdlIGRvbid0IG1pc3Rh
a2UgdGhlbSBmb3IgZml4dHVyZXMKKworICAgICAgICBDaGVjayBodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUwMzYKKworICAgICAgICBUaGlzIHRoaW5ncyBhcmUg
ZG9uZSBsYXRlciBhcyB3ZWxsIHdoZW4gZGVhbGluZyB3aXRoIHBhcmFtZXRyaXphdGlvbgorICAg
ICAgICBzbyB0aGlzIGNvdWxkIGJlIGltcHJvdmVkCisgICAgICAgICIiIgorICAgICAgICBmcm9t
IF9weXRlc3QubWFyayBpbXBvcnQgUGFyYW1ldGVyU2V0CisKKyAgICAgICAgcGFyYW1ldHJpemVf
YXJnbmFtZXMgPSBbXQorICAgICAgICBmb3IgbWFya2VyIGluIG5vZGUuaXRlcl9tYXJrZXJzKG5h
bWU9InBhcmFtZXRyaXplIik6CisgICAgICAgICAgICBpZiBub3QgbWFya2VyLmt3YXJncy5nZXQo
ImluZGlyZWN0IiwgRmFsc2UpOgorICAgICAgICAgICAgICAgIHBfYXJnbmFtZXMsIF8gPSBQYXJh
bWV0ZXJTZXQuX3BhcnNlX3BhcmFtZXRyaXplX2FyZ3MoCisgICAgICAgICAgICAgICAgICAgICpt
YXJrZXIuYXJncywgKiptYXJrZXIua3dhcmdzCisgICAgICAgICAgICAgICAgKQorICAgICAgICAg
ICAgICAgIHBhcmFtZXRyaXplX2FyZ25hbWVzLmV4dGVuZChwX2FyZ25hbWVzKQorCisgICAgICAg
IHJldHVybiBwYXJhbWV0cml6ZV9hcmduYW1lcworCiAgICAgZGVmIGdldGZpeHR1cmVpbmZvKHNl
bGYsIG5vZGUsIGZ1bmMsIGNscywgZnVuY2FyZ3M9VHJ1ZSk6CiAgICAgICAgIGlmIGZ1bmNhcmdz
IGFuZCBub3QgZ2V0YXR0cihub2RlLCAibm9mdW5jYXJncyIsIEZhbHNlKToKICAgICAgICAgICAg
IGFyZ25hbWVzID0gZ2V0ZnVuY2FyZ25hbWVzKGZ1bmMsIGNscz1jbHMpCiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICBhcmduYW1lcyA9ICgpCi0gICAgICAgIHVzZWZpeHR1cmVzID0gZmxhdHRl
bigKKworICAgICAgICB1c2VmaXh0dXJlcyA9IGl0ZXJ0b29scy5jaGFpbi5mcm9tX2l0ZXJhYmxl
KAogICAgICAgICAgICAgbWFyay5hcmdzIGZvciBtYXJrIGluIG5vZGUuaXRlcl9tYXJrZXJzKG5h
bWU9InVzZWZpeHR1cmVzIikKICAgICAgICAgKQotICAgICAgICBpbml0aWFsbmFtZXMgPSBhcmdu
YW1lcwotICAgICAgICBpbml0aWFsbmFtZXMgPSB0dXBsZSh1c2VmaXh0dXJlcykgKyBpbml0aWFs
bmFtZXMKKyAgICAgICAgaW5pdGlhbG5hbWVzID0gdHVwbGUodXNlZml4dHVyZXMpICsgYXJnbmFt
ZXMKICAgICAgICAgZm0gPSBub2RlLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyCi0gICAgICAgIG5h
bWVzX2Nsb3N1cmUsIGFyZzJmaXh0dXJlZGVmcyA9IGZtLmdldGZpeHR1cmVjbG9zdXJlKGluaXRp
YWxuYW1lcywgbm9kZSkKLSAgICAgICAgcmV0dXJuIEZ1bmNGaXh0dXJlSW5mbyhhcmduYW1lcywg
bmFtZXNfY2xvc3VyZSwgYXJnMmZpeHR1cmVkZWZzKQorICAgICAgICBpbml0aWFsbmFtZXMsIG5h
bWVzX2Nsb3N1cmUsIGFyZzJmaXh0dXJlZGVmcyA9IGZtLmdldGZpeHR1cmVjbG9zdXJlKAorICAg
ICAgICAgICAgaW5pdGlhbG5hbWVzLCBub2RlLCBpZ25vcmVfYXJncz1zZWxmLl9nZXRfZGlyZWN0
X3BhcmFtZXRyaXplX2FyZ3Mobm9kZSkKKyAgICAgICAgKQorICAgICAgICByZXR1cm4gRnVuY0Zp
eHR1cmVJbmZvKGFyZ25hbWVzLCBpbml0aWFsbmFtZXMsIG5hbWVzX2Nsb3N1cmUsIGFyZzJmaXh0
dXJlZGVmcykKIAogICAgIGRlZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQoc2VsZiwgcGx1Z2lu
KToKICAgICAgICAgbm9kZWlkID0gTm9uZQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwID0g
cHkucGF0aC5sb2NhbChwbHVnaW4uX19maWxlX18pCisgICAgICAgICAgICBwID0gcHkucGF0aC5s
b2NhbChwbHVnaW4uX19maWxlX18pLnJlYWxwYXRoKCkKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0
ZUVycm9yOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBlbHNlOgpAQCAtMTA1NSw2ICsxMTc4
LDcgQEAgY2xhc3MgRml4dHVyZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBub2Rl
aWQgPSBwLmRpcnBhdGgoKS5yZWx0byhzZWxmLmNvbmZpZy5yb290ZGlyKQogICAgICAgICAgICAg
ICAgIGlmIHAuc2VwICE9IG5vZGVzLlNFUDoKICAgICAgICAgICAgICAgICAgICAgbm9kZWlkID0g
bm9kZWlkLnJlcGxhY2UocC5zZXAsIG5vZGVzLlNFUCkKKwogICAgICAgICBzZWxmLnBhcnNlZmFj
dG9yaWVzKHBsdWdpbiwgbm9kZWlkKQogCiAgICAgZGVmIF9nZXRhdXRvdXNlbmFtZXMoc2VsZiwg
bm9kZWlkKToKQEAgLTEwNjQsMTMgKzExODgsMTMgQEAgY2xhc3MgRml4dHVyZU1hbmFnZXIob2Jq
ZWN0KToKICAgICAgICAgICAgIGlmIG5vZGVpZC5zdGFydHN3aXRoKGJhc2VpZCk6CiAgICAgICAg
ICAgICAgICAgaWYgYmFzZWlkOgogICAgICAgICAgICAgICAgICAgICBpID0gbGVuKGJhc2VpZCkK
LSAgICAgICAgICAgICAgICAgICAgbmV4dGNoYXIgPSBub2RlaWRbaTppICsgMV0KKyAgICAgICAg
ICAgICAgICAgICAgbmV4dGNoYXIgPSBub2RlaWRbaSA6IGkgKyAxXQogICAgICAgICAgICAgICAg
ICAgICBpZiBuZXh0Y2hhciBhbmQgbmV4dGNoYXIgbm90IGluICI6LyI6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgIGF1dG91c2VuYW1lcy5leHRlbmQo
YmFzZW5hbWVzKQogICAgICAgICByZXR1cm4gYXV0b3VzZW5hbWVzCiAKLSAgICBkZWYgZ2V0Zml4
dHVyZWNsb3N1cmUoc2VsZiwgZml4dHVyZW5hbWVzLCBwYXJlbnRub2RlKToKKyAgICBkZWYgZ2V0
Zml4dHVyZWNsb3N1cmUoc2VsZiwgZml4dHVyZW5hbWVzLCBwYXJlbnRub2RlLCBpZ25vcmVfYXJn
cz0oKSk6CiAgICAgICAgICMgY29sbGVjdCB0aGUgY2xvc3VyZSBvZiBhbGwgZml4dHVyZXMgLCBz
dGFydGluZyB3aXRoIHRoZSBnaXZlbgogICAgICAgICAjIGZpeHR1cmVuYW1lcyBhcyB0aGUgaW5p
dGlhbCBzZXQuICBBcyB3ZSBoYXZlIHRvIHZpc2l0IGFsbAogICAgICAgICAjIGZhY3RvcnkgZGVm
aW5pdGlvbnMgYW55d2F5LCB3ZSBhbHNvIHJldHVybiBhbiBhcmcyZml4dHVyZWRlZnMKQEAgLTEw
ODcsMTEgKzEyMTEsMTkgQEAgY2xhc3MgRml4dHVyZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAg
ICAgICAgICAgICAgZml4dHVyZW5hbWVzX2Nsb3N1cmUuYXBwZW5kKGFyZykKIAogICAgICAgICBt
ZXJnZShmaXh0dXJlbmFtZXMpCisKKyAgICAgICAgIyBhdCB0aGlzIHBvaW50LCBmaXh0dXJlbmFt
ZXNfY2xvc3VyZSBjb250YWlucyB3aGF0IHdlIGNhbGwgImluaXRpYWxuYW1lcyIsCisgICAgICAg
ICMgd2hpY2ggaXMgYSBzZXQgb2YgZml4dHVyZW5hbWVzIHRoZSBmdW5jdGlvbiBpbW1lZGlhdGVs
eSByZXF1ZXN0cy4gV2UKKyAgICAgICAgIyBuZWVkIHRvIHJldHVybiBpdCBhcyB3ZWxsLCBzbyBz
YXZlIHRoaXMuCisgICAgICAgIGluaXRpYWxuYW1lcyA9IHR1cGxlKGZpeHR1cmVuYW1lc19jbG9z
dXJlKQorCiAgICAgICAgIGFyZzJmaXh0dXJlZGVmcyA9IHt9CiAgICAgICAgIGxhc3RsZW4gPSAt
MQogICAgICAgICB3aGlsZSBsYXN0bGVuICE9IGxlbihmaXh0dXJlbmFtZXNfY2xvc3VyZSk6CiAg
ICAgICAgICAgICBsYXN0bGVuID0gbGVuKGZpeHR1cmVuYW1lc19jbG9zdXJlKQogICAgICAgICAg
ICAgZm9yIGFyZ25hbWUgaW4gZml4dHVyZW5hbWVzX2Nsb3N1cmU6CisgICAgICAgICAgICAgICAg
aWYgYXJnbmFtZSBpbiBpZ25vcmVfYXJnczoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUK
ICAgICAgICAgICAgICAgICBpZiBhcmduYW1lIGluIGFyZzJmaXh0dXJlZGVmczoKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICBmaXh0dXJlZGVmcyA9IHNlbGYu
Z2V0Zml4dHVyZWRlZnMoYXJnbmFtZSwgcGFyZW50aWQpCkBAIC0xMTA4LDcgKzEyNDAsNyBAQCBj
bGFzcyBGaXh0dXJlTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgICAgIHJldHVybiBmaXh0
dXJlZGVmc1stMV0uc2NvcGVudW0KIAogICAgICAgICBmaXh0dXJlbmFtZXNfY2xvc3VyZS5zb3J0
KGtleT1zb3J0X2J5X3Njb3BlKQotICAgICAgICByZXR1cm4gZml4dHVyZW5hbWVzX2Nsb3N1cmUs
IGFyZzJmaXh0dXJlZGVmcworICAgICAgICByZXR1cm4gaW5pdGlhbG5hbWVzLCBmaXh0dXJlbmFt
ZXNfY2xvc3VyZSwgYXJnMmZpeHR1cmVkZWZzCiAKICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rl
c3RzKHNlbGYsIG1ldGFmdW5jKToKICAgICAgICAgZm9yIGFyZ25hbWUgaW4gbWV0YWZ1bmMuZml4
dHVyZW5hbWVzOgpAQCAtMTExNiwxOSArMTI0OCwyMCBAQCBjbGFzcyBGaXh0dXJlTWFuYWdlcihv
YmplY3QpOgogICAgICAgICAgICAgaWYgZmFjbGlzdDoKICAgICAgICAgICAgICAgICBmaXh0dXJl
ZGVmID0gZmFjbGlzdFstMV0KICAgICAgICAgICAgICAgICBpZiBmaXh0dXJlZGVmLnBhcmFtcyBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgcGFyYW1ldHJpemVfZnVuYyA9IGdldGF0
dHIobWV0YWZ1bmMuZnVuY3Rpb24sICJwYXJhbWV0cml6ZSIsIE5vbmUpCi0gICAgICAgICAgICAg
ICAgICAgIGlmIHBhcmFtZXRyaXplX2Z1bmMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBwYXJhbWV0cml6ZV9mdW5jID0gcGFyYW1ldHJpemVfZnVuYy5jb21iaW5lZAotICAg
ICAgICAgICAgICAgICAgICBmdW5jX3BhcmFtcyA9IGdldGF0dHIocGFyYW1ldHJpemVfZnVuYywg
ImFyZ3MiLCBbW05vbmVdXSkKLSAgICAgICAgICAgICAgICAgICAgZnVuY19rd2FyZ3MgPSBnZXRh
dHRyKHBhcmFtZXRyaXplX2Z1bmMsICJrd2FyZ3MiLCB7fSkKLSAgICAgICAgICAgICAgICAgICAg
IyBza2lwIGRpcmVjdGx5IHBhcmFtZXRyaXplZCBhcmd1bWVudHMKLSAgICAgICAgICAgICAgICAg
ICAgaWYgImFyZ25hbWVzIiBpbiBmdW5jX2t3YXJnczoKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFyZ25hbWVzID0gcGFyYW1ldHJpemVfZnVuYy5rd2FyZ3NbImFyZ25hbWVzIl0KKyAgICAgICAg
ICAgICAgICAgICAgbWFya2VycyA9IGxpc3QobWV0YWZ1bmMuZGVmaW5pdGlvbi5pdGVyX21hcmtl
cnMoInBhcmFtZXRyaXplIikpCisgICAgICAgICAgICAgICAgICAgIGZvciBwYXJhbWV0cml6ZV9t
YXJrIGluIG1hcmtlcnM6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAiYXJnbmFtZXMiIGlu
IHBhcmFtZXRyaXplX21hcmsua3dhcmdzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy
Z25hbWVzID0gcGFyYW1ldHJpemVfbWFyay5rd2FyZ3NbImFyZ25hbWVzIl0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnbmFtZXMg
PSBwYXJhbWV0cml6ZV9tYXJrLmFyZ3NbMF0KKworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
bm90IGlzaW5zdGFuY2UoYXJnbmFtZXMsICh0dXBsZSwgbGlzdCkpOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ25hbWVzID0gWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4LnN0cmlwKCkgZm9yIHggaW4gYXJnbmFtZXMuc3BsaXQoIiwiKSBpZiB4LnN0cmlwKCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBh
cmduYW1lIGluIGFyZ25hbWVzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAg
ICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcmduYW1l
cyA9IGZ1bmNfcGFyYW1zWzBdCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNl
KGFyZ25hbWVzLCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyZ25h
bWVzID0gW3guc3RyaXAoKSBmb3IgeCBpbiBhcmduYW1lcy5zcGxpdCgiLCIpIGlmIHguc3RyaXAo
KV0KLSAgICAgICAgICAgICAgICAgICAgaWYgYXJnbmFtZSBub3QgaW4gZnVuY19wYXJhbXMgYW5k
IGFyZ25hbWUgbm90IGluIGFyZ25hbWVzOgogICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWZ1
bmMucGFyYW1ldHJpemUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnbmFtZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLnBhcmFtcywKQEAgLTExNTEsMzUg
KzEyODQsMzAgQEAgY2xhc3MgRml4dHVyZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIG5v
ZGVpZCA9IG5vZGVfb3Jfb2JqLm5vZGVpZAogICAgICAgICBpZiBob2xkZXJvYmogaW4gc2VsZi5f
aG9sZGVyb2Jqc2VlbjoKICAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgIHNlbGYuX2hvbGRl
cm9ianNlZW4uYWRkKGhvbGRlcm9iaikKICAgICAgICAgYXV0b3VzZW5hbWVzID0gW10KICAgICAg
ICAgZm9yIG5hbWUgaW4gZGlyKGhvbGRlcm9iaik6CiAgICAgICAgICAgICAjIFRoZSBhdHRyaWJ1
dGUgY2FuIGJlIGFuIGFyYml0cmFyeSBkZXNjcmlwdG9yLCBzbyB0aGUgYXR0cmlidXRlCiAgICAg
ICAgICAgICAjIGFjY2VzcyBiZWxvdyBjYW4gcmFpc2UuIHNhZmVfZ2V0YXR0KCkgaWdub3JlcyBz
dWNoIGV4Y2VwdGlvbnMuCiAgICAgICAgICAgICBvYmogPSBzYWZlX2dldGF0dHIoaG9sZGVyb2Jq
LCBuYW1lLCBOb25lKQotICAgICAgICAgICAgIyBmaXh0dXJlIGZ1bmN0aW9ucyBoYXZlIGEgcHl0
ZXN0X2Z1bmNhcmdfXyBwcmVmaXggKHByZS0yLjMgc3R5bGUpCi0gICAgICAgICAgICAjIG9yIGFy
ZSAiQHB5dGVzdC5maXh0dXJlIiBtYXJrZWQKICAgICAgICAgICAgIG1hcmtlciA9IGdldGZpeHR1
cmVtYXJrZXIob2JqKQotICAgICAgICAgICAgaWYgbWFya2VyIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgaWYgbm90IG5hbWUuc3RhcnRzd2l0aChzZWxmLl9hcmdwcmVmaXgpOgotICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgIGlmIG5vdCBjYWxsYWJsZShvYmop
OgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgIG1hcmtlciA9
IGRlZmF1bHRmdW5jYXJncHJlZml4bWFya2VyCi0gICAgICAgICAgICAgICAgZnJvbSBfcHl0ZXN0
IGltcG9ydCBkZXByZWNhdGVkCi0KLSAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJuKAot
ICAgICAgICAgICAgICAgICAgICAiQzEiLCBkZXByZWNhdGVkLkZVTkNBUkdfUFJFRklYLmZvcm1h
dChuYW1lPW5hbWUpLCBub2RlaWQ9bm9kZWlkCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAg
ICAgICAgIG5hbWUgPSBuYW1lW2xlbihzZWxmLl9hcmdwcmVmaXgpOl0KLSAgICAgICAgICAgIGVs
aWYgbm90IGlzaW5zdGFuY2UobWFya2VyLCBGaXh0dXJlRnVuY3Rpb25NYXJrZXIpOgorICAgICAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2UobWFya2VyLCBGaXh0dXJlRnVuY3Rpb25NYXJrZXIpOgog
ICAgICAgICAgICAgICAgICMgbWFnaWMgZ2xvYmFscyAgd2l0aCBfX2dldGF0dHJfXyBtaWdodCBo
YXZlIGdvdCB1cyBhIHdyb25nCiAgICAgICAgICAgICAgICAgIyBmaXh0dXJlIGF0dHJpYnV0ZQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGlmIG1hcmtlci5uYW1lOgor
ICAgICAgICAgICAgICAgIG5hbWUgPSBtYXJrZXIubmFtZQorCisgICAgICAgICAgICAjIGR1cmlu
ZyBmaXh0dXJlIGRlZmluaXRpb24gd2Ugd3JhcCB0aGUgb3JpZ2luYWwgZml4dHVyZSBmdW5jdGlv
bgorICAgICAgICAgICAgIyB0byBpc3N1ZSBhIHdhcm5pbmcgaWYgY2FsbGVkIGRpcmVjdGx5LCBz
byBoZXJlIHdlIHVud3JhcCBpdCBpbiBvcmRlciB0byBub3QgZW1pdCB0aGUgd2FybmluZworICAg
ICAgICAgICAgIyB3aGVuIHB5dGVzdCBpdHNlbGYgY2FsbHMgdGhlIGZpeHR1cmUgZnVuY3Rpb24K
KyAgICAgICAgICAgIGlmIHNpeC5QWTIgYW5kIHVuaXR0ZXN0OgorICAgICAgICAgICAgICAgICMg
aGFjayBvbiBQeXRob24gMiBiZWNhdXNlIG9mIHRoZSB1bmJvdW5kIG1ldGhvZHMKKyAgICAgICAg
ICAgICAgICBvYmogPSBnZXRfcmVhbF9mdW5jKG9iaikKICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgaWYgbWFya2VyLm5hbWU6Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSBt
YXJrZXIubmFtZQotICAgICAgICAgICAgICAgIGFzc2VydCBub3QgbmFtZS5zdGFydHN3aXRoKHNl
bGYuX2FyZ3ByZWZpeCksIEZJWFRVUkVfTVNHLmZvcm1hdChuYW1lKQorICAgICAgICAgICAgICAg
IG9iaiA9IGdldF9yZWFsX21ldGhvZChvYmosIGhvbGRlcm9iaikKIAogICAgICAgICAgICAgZml4
dHVyZV9kZWYgPSBGaXh0dXJlRGVmKAogICAgICAgICAgICAgICAgIHNlbGYsCkBAIC0xMjIwLDgg
KzEzNDgsNyBAQCBjbGFzcyBGaXh0dXJlTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgZml4
dHVyZWRlZnMgPSBzZWxmLl9hcmcyZml4dHVyZWRlZnNbYXJnbmFtZV0KICAgICAgICAgZXhjZXB0
IEtleUVycm9yOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHJldHVybiB0dXBsZShzZWxmLl9tYXRjaGZhY3RvcmllcyhmaXh0dXJlZGVmcywgbm9k
ZWlkKSkKKyAgICAgICAgcmV0dXJuIHR1cGxlKHNlbGYuX21hdGNoZmFjdG9yaWVzKGZpeHR1cmVk
ZWZzLCBub2RlaWQpKQogCiAgICAgZGVmIF9tYXRjaGZhY3RvcmllcyhzZWxmLCBmaXh0dXJlZGVm
cywgbm9kZWlkKToKICAgICAgICAgZm9yIGZpeHR1cmVkZWYgaW4gZml4dHVyZWRlZnM6CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9mcmVlemVfc3VwcG9ydC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5CmluZGV4IDAwMmUwNzczMDFmOTNh
NTUxOGEwOGYzNzhlMzVhMmQwZDk5YjBiZDYuLmFlZWVjMmE1NmI0ZDM1ODIwODM3ZGQyOTY0MDBm
NDRmYjk4ZTI0ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2ZyZWV6ZV9z
dXBwb3J0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5
CkBAIC0xLDggKzEsMTEgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIKIFByb3ZpZGVz
IGEgZnVuY3Rpb24gdG8gcmVwb3J0IGFsbCBpbnRlcm5hbCBtb2R1bGVzIGZvciB1c2luZyBmcmVl
emluZyB0b29scwogcHl0ZXN0CiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIAogZGVmIGZyZWV6ZV9pbmNsdWRlcygp
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvaGVscGNvbmZpZy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2hlbHBjb25maWcucHkKaW5kZXggNTUxNGZlYzQwNGRhYWMz
NjVhZjcxNzhjOWU5NDAwNmE3NTYyZGI0Zi4uNTY4MTE2MDE2MDhlMzUyNzY2YTRjYTRiNjViNWNk
YmNmODk4N2E0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvaGVscGNvbmZp
Zy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9oZWxwY29uZmlnLnB5CkBAIC0xLDEz
ICsxLDE4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiIHZlcnNpb24gaW5mbywgaGVs
cCBtZXNzYWdlcywgdHJhY2luZyBjb25maWd1cmF0aW9uLiAgIiIiCi1mcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBk
aXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCi1pbXBvcnQg
cHkKLWltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IFByaW50SGVscAog
aW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBmcm9tIGFyZ3BhcnNlIGltcG9ydCBBY3Rpb24KIAoraW1w
b3J0IHB5CisKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IFByaW50
SGVscAorCiAKIGNsYXNzIEhlbHBBY3Rpb24oQWN0aW9uKToKICAgICAiIiJUaGlzIGlzIGFuIGFy
Z3BhcnNlIEFjdGlvbiB0aGF0IHdpbGwgcmFpc2UgYW4gZXhjZXB0aW9uIGluCkBAIC01Niw3ICs2
MSw3IEBAIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CiAgICAgICAgIGRlc3Q9InBsdWdp
bnMiLAogICAgICAgICBkZWZhdWx0PVtdLAogICAgICAgICBtZXRhdmFyPSJuYW1lIiwKLSAgICAg
ICAgaGVscD0iZWFybHktbG9hZCBnaXZlbiBwbHVnaW4gKG11bHRpLWFsbG93ZWQpLiAiCisgICAg
ICAgIGhlbHA9ImVhcmx5LWxvYWQgZ2l2ZW4gcGx1Z2luIG1vZHVsZSBuYW1lIG9yIGVudHJ5IHBv
aW50IChtdWx0aS1hbGxvd2VkKS4gIgogICAgICAgICAiVG8gYXZvaWQgbG9hZGluZyBvZiBwbHVn
aW5zLCB1c2UgdGhlIGBubzpgIHByZWZpeCwgZS5nLiAiCiAgICAgICAgICJgbm86ZG9jdGVzdGAu
IiwKICAgICApCkBAIC0xMTQsMTYgKzExOSwyMCBAQCBkZWYgcHl0ZXN0X2NtZGxpbmVfcGFyc2Uo
KToKICAgICAgICAgY29uZmlnLmFkZF9jbGVhbnVwKHVuc2V0X3RyYWNpbmcpCiAKIAorZGVmIHNo
b3d2ZXJzaW9uKGNvbmZpZyk6CisgICAgcCA9IHB5LnBhdGgubG9jYWwocHl0ZXN0Ll9fZmlsZV9f
KQorICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICJUaGlzIGlzIHB5dGVzdCB2ZXJzaW9u
ICVzLCBpbXBvcnRlZCBmcm9tICVzXG4iICUgKHB5dGVzdC5fX3ZlcnNpb25fXywgcCkKKyAgICAp
CisgICAgcGx1Z2luaW5mbyA9IGdldHBsdWdpbnZlcnNpb25pbmZvKGNvbmZpZykKKyAgICBpZiBw
bHVnaW5pbmZvOgorICAgICAgICBmb3IgbGluZSBpbiBwbHVnaW5pbmZvOgorICAgICAgICAgICAg
c3lzLnN0ZGVyci53cml0ZShsaW5lICsgIlxuIikKKworCiBkZWYgcHl0ZXN0X2NtZGxpbmVfbWFp
bihjb25maWcpOgogICAgIGlmIGNvbmZpZy5vcHRpb24udmVyc2lvbjoKLSAgICAgICAgcCA9IHB5
LnBhdGgubG9jYWwocHl0ZXN0Ll9fZmlsZV9fKQotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAot
ICAgICAgICAgICAgIlRoaXMgaXMgcHl0ZXN0IHZlcnNpb24gJXMsIGltcG9ydGVkIGZyb20gJXNc
biIgJSAocHl0ZXN0Ll9fdmVyc2lvbl9fLCBwKQotICAgICAgICApCi0gICAgICAgIHBsdWdpbmlu
Zm8gPSBnZXRwbHVnaW52ZXJzaW9uaW5mbyhjb25maWcpCi0gICAgICAgIGlmIHBsdWdpbmluZm86
Ci0gICAgICAgICAgICBmb3IgbGluZSBpbiBwbHVnaW5pbmZvOgotICAgICAgICAgICAgICAgIHN5
cy5zdGRlcnIud3JpdGUobGluZSArICJcbiIpCisgICAgICAgIHNob3d2ZXJzaW9uKGNvbmZpZykK
ICAgICAgICAgcmV0dXJuIDAKICAgICBlbGlmIGNvbmZpZy5vcHRpb24uaGVscDoKICAgICAgICAg
Y29uZmlnLl9kb19jb25maWd1cmUoKQpAQCAtMTMzLDI5ICsxNDIsNTUgQEAgZGVmIHB5dGVzdF9j
bWRsaW5lX21haW4oY29uZmlnKToKIAogCiBkZWYgc2hvd2hlbHAoY29uZmlnKToKKyAgICBpbXBv
cnQgdGV4dHdyYXAKKwogICAgIHJlcG9ydGVyID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3Bs
dWdpbigidGVybWluYWxyZXBvcnRlciIpCiAgICAgdHcgPSByZXBvcnRlci5fdHcKICAgICB0dy53
cml0ZShjb25maWcuX3BhcnNlci5vcHRwYXJzZXIuZm9ybWF0X2hlbHAoKSkKICAgICB0dy5saW5l
KCkKLSAgICB0dy5saW5lKCkKICAgICB0dy5saW5lKAotICAgICAgICAiW3B5dGVzdF0gaW5pLW9w
dGlvbnMgaW4gdGhlIGZpcnN0ICIgInB5dGVzdC5pbml8dG94LmluaXxzZXR1cC5jZmcgZmlsZSBm
b3VuZDoiCisgICAgICAgICJbcHl0ZXN0XSBpbmktb3B0aW9ucyBpbiB0aGUgZmlyc3QgcHl0ZXN0
LmluaXx0b3guaW5pfHNldHVwLmNmZyBmaWxlIGZvdW5kOiIKICAgICApCiAgICAgdHcubGluZSgp
CiAKKyAgICBjb2x1bW5zID0gdHcuZnVsbHdpZHRoICAjIGNvc3RseSBjYWxsCisgICAgaW5kZW50
X2xlbiA9IDI0ICAjIGJhc2VkIG9uIGFyZ3BhcnNlJ3MgbWF4X2hlbHBfcG9zaXRpb249MjQKKyAg
ICBpbmRlbnQgPSAiICIgKiBpbmRlbnRfbGVuCiAgICAgZm9yIG5hbWUgaW4gY29uZmlnLl9wYXJz
ZXIuX2luaW5hbWVzOgogICAgICAgICBoZWxwLCB0eXBlLCBkZWZhdWx0ID0gY29uZmlnLl9wYXJz
ZXIuX2luaWRpY3RbbmFtZV0KICAgICAgICAgaWYgdHlwZSBpcyBOb25lOgogICAgICAgICAgICAg
dHlwZSA9ICJzdHJpbmciCi0gICAgICAgIHNwZWMgPSAiJXMgKCVzKSIgJSAobmFtZSwgdHlwZSkK
LSAgICAgICAgbGluZSA9ICIgICUtMjRzICVzIiAlIChzcGVjLCBoZWxwKQotICAgICAgICB0dy5s
aW5lKGxpbmVbOnR3LmZ1bGx3aWR0aF0pCisgICAgICAgIHNwZWMgPSAiJXMgKCVzKToiICUgKG5h
bWUsIHR5cGUpCisgICAgICAgIHR3LndyaXRlKCIgICVzIiAlIHNwZWMpCisgICAgICAgIHNwZWNf
bGVuID0gbGVuKHNwZWMpCisgICAgICAgIGlmIHNwZWNfbGVuID4gKGluZGVudF9sZW4gLSAzKToK
KyAgICAgICAgICAgICMgRGlzcGxheSBoZWxwIHN0YXJ0aW5nIGF0IGEgbmV3IGxpbmUuCisgICAg
ICAgICAgICB0dy5saW5lKCkKKyAgICAgICAgICAgIGhlbHBsaW5lcyA9IHRleHR3cmFwLndyYXAo
CisgICAgICAgICAgICAgICAgaGVscCwKKyAgICAgICAgICAgICAgICBjb2x1bW5zLAorICAgICAg
ICAgICAgICAgIGluaXRpYWxfaW5kZW50PWluZGVudCwKKyAgICAgICAgICAgICAgICBzdWJzZXF1
ZW50X2luZGVudD1pbmRlbnQsCisgICAgICAgICAgICAgICAgYnJlYWtfb25faHlwaGVucz1GYWxz
ZSwKKyAgICAgICAgICAgICkKKworICAgICAgICAgICAgZm9yIGxpbmUgaW4gaGVscGxpbmVzOgor
ICAgICAgICAgICAgICAgIHR3LmxpbmUobGluZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICMgRGlzcGxheSBoZWxwIHN0YXJ0aW5nIGFmdGVyIHRoZSBzcGVjLCBmb2xsb3dpbmcgbGluZXMg
aW5kZW50ZWQuCisgICAgICAgICAgICB0dy53cml0ZSgiICIgKiAoaW5kZW50X2xlbiAtIHNwZWNf
bGVuIC0gMikpCisgICAgICAgICAgICB3cmFwcGVkID0gdGV4dHdyYXAud3JhcChoZWxwLCBjb2x1
bW5zIC0gaW5kZW50X2xlbiwgYnJlYWtfb25faHlwaGVucz1GYWxzZSkKKworICAgICAgICAgICAg
dHcubGluZSh3cmFwcGVkWzBdKQorICAgICAgICAgICAgZm9yIGxpbmUgaW4gd3JhcHBlZFsxOl06
CisgICAgICAgICAgICAgICAgdHcubGluZShpbmRlbnQgKyBsaW5lKQogCiAgICAgdHcubGluZSgp
CiAgICAgdHcubGluZSgiZW52aXJvbm1lbnQgdmFyaWFibGVzOiIpCiAgICAgdmFycyA9IFsKICAg
ICAgICAgKCJQWVRFU1RfQURET1BUUyIsICJleHRyYSBjb21tYW5kIGxpbmUgb3B0aW9ucyIpLAog
ICAgICAgICAoIlBZVEVTVF9QTFVHSU5TIiwgImNvbW1hLXNlcGFyYXRlZCBwbHVnaW5zIHRvIGxv
YWQgZHVyaW5nIHN0YXJ0dXAiKSwKKyAgICAgICAgKCJQWVRFU1RfRElTQUJMRV9QTFVHSU5fQVVU
T0xPQUQiLCAic2V0IHRvIGRpc2FibGUgcGx1Z2luIGF1dG8tbG9hZGluZyIpLAogICAgICAgICAo
IlBZVEVTVF9ERUJVRyIsICJzZXQgdG8gZW5hYmxlIGRlYnVnIHRyYWNpbmcgb2YgcHl0ZXN0J3Mg
aW50ZXJuYWxzIiksCiAgICAgXQogICAgIGZvciBuYW1lLCBoZWxwIGluIHZhcnM6CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9ob29rc3BlYy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L2hvb2tzcGVjLnB5CmluZGV4IGZlYzQzYTQwMDk5MWIwYTFkMjlkMmZlNmYzMDJk
MDJjMGMzMThlMmUuLjdhYjYxNTRiMTc2NmI5Nzc0ZGNmZTRmMTFmZDkzMmMxNzgxNzMzMzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2hvb2tzcGVjLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L2hvb2tzcGVjLnB5CkBAIC0xLDcgKzEsOSBAQAorIyAtKi0gY29k
aW5nOiB1dGYtOCAtKi0KICIiIiBob29rIHNwZWNpZmljYXRpb25zIGZvciBweXRlc3QgcGx1Z2lu
cywgaW52b2tlZCBmcm9tIG1haW4ucHkgYW5kIGJ1aWx0aW4gcGx1Z2lucy4gICIiIgotCiBmcm9t
IHBsdWdneSBpbXBvcnQgSG9va3NwZWNNYXJrZXIKIAorZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQg
aW1wb3J0IFBZVEVTVF9MT0dXQVJOSU5HCisKIGhvb2tzcGVjID0gSG9va3NwZWNNYXJrZXIoInB5
dGVzdCIpCiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjIsMjAgKzI0LDYgQEAgZGVmIHB5dGVz
dF9hZGRob29rcyhwbHVnaW5tYW5hZ2VyKToKICAgICAiIiIKIAogCi1AaG9va3NwZWMoaGlzdG9y
aWM9VHJ1ZSkKLWRlZiBweXRlc3RfbmFtZXNwYWNlKCk6Ci0gICAgIiIiCi0gICAgKCoqRGVwcmVj
YXRlZCoqKSB0aGlzIGhvb2sgY2F1c2VzIGRpcmVjdCBtb25rZXlwYXRjaGluZyBvbiBweXRlc3Qs
IGl0cyB1c2UgaXMgc3Ryb25nbHkgZGlzY291cmFnZWQKLSAgICByZXR1cm4gZGljdCBvZiBuYW1l
LT5vYmplY3QgdG8gYmUgbWFkZSBnbG9iYWxseSBhdmFpbGFibGUgaW4KLSAgICB0aGUgcHl0ZXN0
IG5hbWVzcGFjZS4KLQotICAgIFRoaXMgaG9vayBpcyBjYWxsZWQgYXQgcGx1Z2luIHJlZ2lzdHJh
dGlvbiB0aW1lLgotCi0gICAgLi4gbm90ZTo6Ci0gICAgICAgIFRoaXMgaG9vayBpcyBpbmNvbXBh
dGlibGUgd2l0aCBgYGhvb2t3cmFwcGVyPVRydWVgYC4KLSAgICAiIiIKLQotCiBAaG9va3NwZWMo
aGlzdG9yaWM9VHJ1ZSkKIGRlZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQocGx1Z2luLCBtYW5h
Z2VyKToKICAgICAiIiIgYSBuZXcgcHl0ZXN0IHBsdWdpbiBnb3QgcmVnaXN0ZXJlZC4KQEAgLTEx
Miw3ICsxMDAsOCBAQCBkZWYgcHl0ZXN0X2NtZGxpbmVfcGFyc2UocGx1Z2lubWFuYWdlciwgYXJn
cyk6CiAgICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3Ry
ZXN1bHRgCiAKICAgICAuLiBub3RlOjoKLSAgICAgICAgVGhpcyBob29rIHdpbGwgbm90IGJlIGNh
bGxlZCBmb3IgYGBjb25mdGVzdC5weWBgIGZpbGVzLCBvbmx5IGZvciBzZXR1cHRvb2xzIHBsdWdp
bnMuCisgICAgICAgIFRoaXMgaG9vayB3aWxsIG9ubHkgYmUgY2FsbGVkIGZvciBwbHVnaW4gY2xh
c3NlcyBwYXNzZWQgdG8gdGhlIGBgcGx1Z2luc2BgIGFyZyB3aGVuIHVzaW5nIGBweXRlc3QubWFp
bmBfIHRvCisgICAgICAgIHBlcmZvcm0gYW4gaW4tcHJvY2VzcyB0ZXN0IHJ1bi4KIAogICAgIDpw
YXJhbSBfcHl0ZXN0LmNvbmZpZy5QeXRlc3RQbHVnaW5NYW5hZ2VyIHBsdWdpbm1hbmFnZXI6IHB5
dGVzdCBwbHVnaW4gbWFuYWdlcgogICAgIDpwYXJhbSBsaXN0W3N0cl0gYXJnczogbGlzdCBvZiBh
cmd1bWVudHMgcGFzc2VkIG9uIHRoZSBjb21tYW5kIGxpbmUKQEAgLTIwMCw3ICsxODksNyBAQCBk
ZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgsIGNvbmZpZyk6CiAKICAgICBTdG9wcyBhdCBm
aXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAKIAotICAgIDpwYXJh
bSBzdHIgcGF0aDogdGhlIHBhdGggdG8gYW5hbHl6ZQorICAgIDpwYXJhbSBwYXRoOiBhIDpweTpj
bGFzczpgcHkucGF0aC5sb2NhbGAgLSB0aGUgcGF0aCB0byBhbmFseXplCiAgICAgOnBhcmFtIF9w
eXRlc3QuY29uZmlnLkNvbmZpZyBjb25maWc6IHB5dGVzdCBjb25maWcgb2JqZWN0CiAgICAgIiIi
CiAKQEAgLTIxMSw3ICsyMDAsNyBAQCBkZWYgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHBhdGgs
IHBhcmVudCk6CiAKICAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVm
OmBmaXJzdHJlc3VsdGAKIAotICAgIDpwYXJhbSBzdHIgcGF0aDogdGhlIHBhdGggdG8gYW5hbHl6
ZQorICAgIDpwYXJhbSBwYXRoOiBhIDpweTpjbGFzczpgcHkucGF0aC5sb2NhbGAgLSB0aGUgcGF0
aCB0byBhbmFseXplCiAgICAgIiIiCiAKIApAQCAtMjE5LDcgKzIwOCw3IEBAIGRlZiBweXRlc3Rf
Y29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6CiAgICAgIiIiIHJldHVybiBjb2xsZWN0aW9uIE5v
ZGUgb3IgTm9uZSBmb3IgdGhlIGdpdmVuIHBhdGguIEFueSBuZXcgbm9kZQogICAgIG5lZWRzIHRv
IGhhdmUgdGhlIHNwZWNpZmllZCBgYHBhcmVudGBgIGFzIGEgcGFyZW50LgogCi0gICAgOnBhcmFt
IHN0ciBwYXRoOiB0aGUgcGF0aCB0byBjb2xsZWN0CisgICAgOnBhcmFtIHBhdGg6IGEgOnB5OmNs
YXNzOmBweS5wYXRoLmxvY2FsYCAtIHRoZSBwYXRoIHRvIGNvbGxlY3QKICAgICAiIiIKIAogCkBA
IC0yMzksNyArMjI4LDcgQEAgZGVmIHB5dGVzdF9jb2xsZWN0cmVwb3J0KHJlcG9ydCk6CiAKIAog
ZGVmIHB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zKToKLSAgICAiIiIgY2FsbGVkIGZvciB0ZXN0IGl0
ZW1zIGRlc2VsZWN0ZWQgYnkga2V5d29yZC4gIiIiCisgICAgIiIiIGNhbGxlZCBmb3IgdGVzdCBp
dGVtcyBkZXNlbGVjdGVkLCBlLmcuIGJ5IGtleXdvcmQuICIiIgogCiAKIEBob29rc3BlYyhmaXJz
dHJlc3VsdD1UcnVlKQpAQCAtMjYxLDcgKzI1MCwxMCBAQCBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9t
YWtlbW9kdWxlKHBhdGgsIHBhcmVudCk6CiAgICAgVGhlIHB5dGVzdF9jb2xsZWN0X2ZpbGUgaG9v
ayBuZWVkcyB0byBiZSB1c2VkIGlmIHlvdSB3YW50IHRvCiAgICAgY3JlYXRlIHRlc3QgbW9kdWxl
cyBmb3IgZmlsZXMgdGhhdCBkbyBub3QgbWF0Y2ggYXMgYSB0ZXN0IG1vZHVsZS4KIAotICAgIFN0
b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIK
KyAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3Vs
dGAKKworICAgIDpwYXJhbSBwYXRoOiBhIDpweTpjbGFzczpgcHkucGF0aC5sb2NhbGAgLSB0aGUg
cGF0aCBvZiBtb2R1bGUgdG8gY29sbGVjdAorICAgICIiIgogCiAKIEBob29rc3BlYyhmaXJzdHJl
c3VsdD1UcnVlKQpAQCAtMzg4LDYgKzM4MCw0MSBAQCBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVw
b3J0KHJlcG9ydCk6CiAgICAgdGhlIHJlc3BlY3RpdmUgcGhhc2Ugb2YgZXhlY3V0aW5nIGEgdGVz
dC4gIiIiCiAKIAorQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCitkZWYgcHl0ZXN0X3JlcG9y
dF90b19zZXJpYWxpemFibGUoY29uZmlnLCByZXBvcnQpOgorICAgICIiIgorICAgIC4uIHdhcm5p
bmc6OgorICAgICAgICBUaGlzIGhvb2sgaXMgZXhwZXJpbWVudGFsIGFuZCBzdWJqZWN0IHRvIGNo
YW5nZSBiZXR3ZWVuIHB5dGVzdCByZWxlYXNlcywgZXZlbgorICAgICAgICBidWcgZml4ZXMuCisK
KyAgICAgICAgVGhlIGludGVudCBpcyBmb3IgdGhpcyB0byBiZSB1c2VkIGJ5IHBsdWdpbnMgbWFp
bnRhaW5lZCBieSB0aGUgY29yZS1kZXZzLCBzdWNoCisgICAgICAgIGFzIGBgcHl0ZXN0LXhkaXN0
YGAsIGBgcHl0ZXN0LXN1YnRlc3RzYGAsIGFuZCBhcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgaW50
ZXJuYWwKKyAgICAgICAgJ3Jlc3VsdGxvZycgcGx1Z2luLgorCisgICAgICAgIEluIHRoZSBmdXR1
cmUgaXQgbWlnaHQgYmVjb21lIHBhcnQgb2YgdGhlIHB1YmxpYyBob29rIEFQSS4KKworICAgIFNl
cmlhbGl6ZXMgdGhlIGdpdmVuIHJlcG9ydCBvYmplY3QgaW50byBhIGRhdGEgc3RydWN0dXJlIHN1
aXRhYmxlIGZvciBzZW5kaW5nCisgICAgb3ZlciB0aGUgd2lyZSwgZS5nLiBjb252ZXJ0ZWQgdG8g
SlNPTi4KKyAgICAiIiIKKworCitAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRl
c3RfcmVwb3J0X2Zyb21fc2VyaWFsaXphYmxlKGNvbmZpZywgZGF0YSk6CisgICAgIiIiCisgICAg
Li4gd2FybmluZzo6CisgICAgICAgIFRoaXMgaG9vayBpcyBleHBlcmltZW50YWwgYW5kIHN1Ympl
Y3QgdG8gY2hhbmdlIGJldHdlZW4gcHl0ZXN0IHJlbGVhc2VzLCBldmVuCisgICAgICAgIGJ1ZyBm
aXhlcy4KKworICAgICAgICBUaGUgaW50ZW50IGlzIGZvciB0aGlzIHRvIGJlIHVzZWQgYnkgcGx1
Z2lucyBtYWludGFpbmVkIGJ5IHRoZSBjb3JlLWRldnMsIHN1Y2gKKyAgICAgICAgYXMgYGBweXRl
c3QteGRpc3RgYCwgYGBweXRlc3Qtc3VidGVzdHNgYCwgYW5kIGFzIGEgcmVwbGFjZW1lbnQgZm9y
IHRoZSBpbnRlcm5hbAorICAgICAgICAncmVzdWx0bG9nJyBwbHVnaW4uCisKKyAgICAgICAgSW4g
dGhlIGZ1dHVyZSBpdCBtaWdodCBiZWNvbWUgcGFydCBvZiB0aGUgcHVibGljIGhvb2sgQVBJLgor
CisgICAgUmVzdG9yZXMgYSByZXBvcnQgb2JqZWN0IHByZXZpb3VzbHkgc2VyaWFsaXplZCB3aXRo
IHB5dGVzdF9yZXBvcnRfdG9fc2VyaWFsaXphYmxlKCkuCisgICAgIiIiCisKKwogIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAjIEZpeHR1cmUgcmVsYXRlZCBob29rcwogIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA
IC00OTMsMjYgKzUyMCwzOSBAQCBkZWYgcHl0ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNoKGNv
bmZpZywgc3RhcnRkaXIsIGl0ZW1zKToKIAogCiBAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkK
LWRlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0KToKK2RlZiBweXRlc3RfcmVwb3J0
X3Rlc3RzdGF0dXMocmVwb3J0LCBjb25maWcpOgogICAgICIiIiByZXR1cm4gcmVzdWx0LWNhdGVn
b3J5LCBzaG9ydGxldHRlciBhbmQgdmVyYm9zZSB3b3JkIGZvciByZXBvcnRpbmcuCiAKKyAgICA6
cGFyYW0gX3B5dGVzdC5jb25maWcuQ29uZmlnIGNvbmZpZzogcHl0ZXN0IGNvbmZpZyBvYmplY3QK
KwogICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVz
dWx0YCAiIiIKIAogCi1kZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRl
ciwgZXhpdHN0YXR1cyk6CitkZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBv
cnRlciwgZXhpdHN0YXR1cywgY29uZmlnKToKICAgICAiIiJBZGQgYSBzZWN0aW9uIHRvIHRlcm1p
bmFsIHN1bW1hcnkgcmVwb3J0aW5nLgogCiAgICAgOnBhcmFtIF9weXRlc3QudGVybWluYWwuVGVy
bWluYWxSZXBvcnRlciB0ZXJtaW5hbHJlcG9ydGVyOiB0aGUgaW50ZXJuYWwgdGVybWluYWwgcmVw
b3J0ZXIgb2JqZWN0CiAgICAgOnBhcmFtIGludCBleGl0c3RhdHVzOiB0aGUgZXhpdCBzdGF0dXMg
dGhhdCB3aWxsIGJlIHJlcG9ydGVkIGJhY2sgdG8gdGhlIE9TCisgICAgOnBhcmFtIF9weXRlc3Qu
Y29uZmlnLkNvbmZpZyBjb25maWc6IHB5dGVzdCBjb25maWcgb2JqZWN0CiAKLSAgICAuLiB2ZXJz
aW9uYWRkZWQ6OiAzLjUKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiA0LjIKICAgICAgICAgVGhlIGBg
Y29uZmlnYGAgcGFyYW1ldGVyLgogICAgICIiIgogCiAKLUBob29rc3BlYyhoaXN0b3JpYz1UcnVl
KQorQGhvb2tzcGVjKGhpc3RvcmljPVRydWUsIHdhcm5fb25faW1wbD1QWVRFU1RfTE9HV0FSTklO
RykKIGRlZiBweXRlc3RfbG9nd2FybmluZyhtZXNzYWdlLCBjb2RlLCBub2RlaWQsIGZzbG9jYXRp
b24pOgotICAgICIiIiBwcm9jZXNzIGEgd2FybmluZyBzcGVjaWZpZWQgYnkgYSBtZXNzYWdlLCBh
IGNvZGUgc3RyaW5nLAorICAgICIiIgorICAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjgKKworICAgICAg
ICBUaGlzIGhvb2sgaXMgd2lsbCBzdG9wIHdvcmtpbmcgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKwor
ICAgICAgICBweXRlc3Qgbm8gbG9uZ2VyIHRyaWdnZXJzIHRoaXMgaG9vaywgYnV0IHRoZQorICAg
ICAgICB0ZXJtaW5hbCB3cml0ZXIgc3RpbGwgaW1wbGVtZW50cyBpdCB0byBkaXNwbGF5IHdhcm5p
bmdzIGlzc3VlZCBieQorICAgICAgICA6bWV0aDpgX3B5dGVzdC5jb25maWcuQ29uZmlnLndhcm5g
IGFuZCA6bWV0aDpgX3B5dGVzdC5ub2Rlcy5Ob2RlLndhcm5gLiBDYWxsaW5nIHRob3NlIGZ1bmN0
aW9ucyB3aWxsIGJlCisgICAgICAgIGFuIGVycm9yIGluIGZ1dHVyZSByZWxlYXNlcy4KKworICAg
IHByb2Nlc3MgYSB3YXJuaW5nIHNwZWNpZmllZCBieSBhIG1lc3NhZ2UsIGEgY29kZSBzdHJpbmcs
CiAgICAgYSBub2RlaWQgYW5kIGZzbG9jYXRpb24gKGJvdGggb2Ygd2hpY2ggbWF5IGJlIE5vbmUK
ICAgICBpZiB0aGUgd2FybmluZyBpcyBub3QgdGllZCB0byBhIHBhcnRpY3VsYXIgbm9kZS9sb2Nh
dGlvbikuCiAKQEAgLTUyMSw2ICs1NjEsMzAgQEAgZGVmIHB5dGVzdF9sb2d3YXJuaW5nKG1lc3Nh
Z2UsIGNvZGUsIG5vZGVpZCwgZnNsb2NhdGlvbik6CiAgICAgIiIiCiAKIAorQGhvb2tzcGVjKGhp
c3RvcmljPVRydWUpCitkZWYgcHl0ZXN0X3dhcm5pbmdfY2FwdHVyZWQod2FybmluZ19tZXNzYWdl
LCB3aGVuLCBpdGVtKToKKyAgICAiIiIKKyAgICBQcm9jZXNzIGEgd2FybmluZyBjYXB0dXJlZCBi
eSB0aGUgaW50ZXJuYWwgcHl0ZXN0IHdhcm5pbmdzIHBsdWdpbi4KKworICAgIDpwYXJhbSB3YXJu
aW5ncy5XYXJuaW5nTWVzc2FnZSB3YXJuaW5nX21lc3NhZ2U6CisgICAgICAgIFRoZSBjYXB0dXJl
ZCB3YXJuaW5nLiBUaGlzIGlzIHRoZSBzYW1lIG9iamVjdCBwcm9kdWNlZCBieSA6cHk6ZnVuYzpg
d2FybmluZ3MuY2F0Y2hfd2FybmluZ3NgLCBhbmQgY29udGFpbnMKKyAgICAgICAgdGhlIHNhbWUg
YXR0cmlidXRlcyBhcyB0aGUgcGFyYW1ldGVycyBvZiA6cHk6ZnVuYzpgd2FybmluZ3Muc2hvd3dh
cm5pbmdgLgorCisgICAgOnBhcmFtIHN0ciB3aGVuOgorICAgICAgICBJbmRpY2F0ZXMgd2hlbiB0
aGUgd2FybmluZyB3YXMgY2FwdHVyZWQuIFBvc3NpYmxlIHZhbHVlczoKKworICAgICAgICAqIGBg
ImNvbmZpZyJgYDogZHVyaW5nIHB5dGVzdCBjb25maWd1cmF0aW9uL2luaXRpYWxpemF0aW9uIHN0
YWdlLgorICAgICAgICAqIGBgImNvbGxlY3QiYGA6IGR1cmluZyB0ZXN0IGNvbGxlY3Rpb24uCisg
ICAgICAgICogYGAicnVudGVzdCJgYDogZHVyaW5nIHRlc3QgZXhlY3V0aW9uLgorCisgICAgOnBh
cmFtIHB5dGVzdC5JdGVtfE5vbmUgaXRlbToKKyAgICAgICAgKipERVBSRUNBVEVEKio6IFRoaXMg
cGFyYW1ldGVyIGlzIGluY29tcGF0aWJsZSB3aXRoIGBgcHl0ZXN0LXhkaXN0YGAsIGFuZCB3aWxs
IGFsd2F5cyByZWNlaXZlIGBgTm9uZWBgCisgICAgICAgIGluIGEgZnV0dXJlIHJlbGVhc2UuCisK
KyAgICAgICAgVGhlIGl0ZW0gYmVpbmcgZXhlY3V0ZWQgaWYgYGB3aGVuYGAgaXMgYGAicnVudGVz
dCJgYCwgb3RoZXJ3aXNlIGBgTm9uZWBgLgorICAgICIiIgorCisKICMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogIyBkb2N0ZXN0IGhvb2tzCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTU1NSw5ICs2MTksMjEg
QEAgZGVmIHB5dGVzdF9leGNlcHRpb25faW50ZXJhY3Qobm9kZSwgY2FsbCwgcmVwb3J0KToKICAg
ICAiIiIKIAogCi1kZWYgcHl0ZXN0X2VudGVyX3BkYihjb25maWcpOgorZGVmIHB5dGVzdF9lbnRl
cl9wZGIoY29uZmlnLCBwZGIpOgogICAgICIiIiBjYWxsZWQgdXBvbiBwZGIuc2V0X3RyYWNlKCks
IGNhbiBiZSB1c2VkIGJ5IHBsdWdpbnMgdG8gdGFrZSBzcGVjaWFsCiAgICAgYWN0aW9uIGp1c3Qg
YmVmb3JlIHRoZSBweXRob24gZGVidWdnZXIgZW50ZXJzIGluIGludGVyYWN0aXZlIG1vZGUuCiAK
ICAgICA6cGFyYW0gX3B5dGVzdC5jb25maWcuQ29uZmlnIGNvbmZpZzogcHl0ZXN0IGNvbmZpZyBv
YmplY3QKKyAgICA6cGFyYW0gcGRiLlBkYiBwZGI6IFBkYiBpbnN0YW5jZQorICAgICIiIgorCisK
K2RlZiBweXRlc3RfbGVhdmVfcGRiKGNvbmZpZywgcGRiKToKKyAgICAiIiIgY2FsbGVkIHdoZW4g
bGVhdmluZyBwZGIgKGUuZy4gd2l0aCBjb250aW51ZSBhZnRlciBwZGIuc2V0X3RyYWNlKCkpLgor
CisgICAgQ2FuIGJlIHVzZWQgYnkgcGx1Z2lucyB0byB0YWtlIHNwZWNpYWwgYWN0aW9uIGp1c3Qg
YWZ0ZXIgdGhlIHB5dGhvbgorICAgIGRlYnVnZ2VyIGxlYXZlcyBpbnRlcmFjdGl2ZSBtb2RlLgor
CisgICAgOnBhcmFtIF9weXRlc3QuY29uZmlnLkNvbmZpZyBjb25maWc6IHB5dGVzdCBjb25maWcg
b2JqZWN0CisgICAgOnBhcmFtIHBkYi5QZGIgcGRiOiBQZGIgaW5zdGFuY2UKICAgICAiIiIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2p1bml0eG1sLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvanVuaXR4bWwucHkKaW5kZXggMjlkYTI3ZGU3Y2NmNjBjZmRlZDljYTc1
NTAwYjk1YzE0NjBlN2JjNS4uODUzZGNiNzc0NDkyZmZjMzY0ZDA0NDBhZjJjY2FiMDVlOGRhNzAz
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvanVuaXR4bWwucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvanVuaXR4bWwucHkKQEAgLTEsMyArMSw0IEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiCiAgICAgcmVwb3J0IHRlc3QgcmVzdWx0cyBpbiBKVW5p
dC1YTUwgZm9ybWF0LAogICAgIGZvciB1c2Ugd2l0aCBKZW5raW5zIGFuZCBidWlsZCBpbnRlZ3Jh
dGlvbiBzZXJ2ZXJzLgpAQCAtOCwxNCArOSwyMSBAQCBCYXNlZCBvbiBpbml0aWFsIGNvZGUgZnJv
bSBSb3NzIExhd2xleS4KIE91dHB1dCBjb25mb3JtcyB0byBodHRwczovL2dpdGh1Yi5jb20vamVu
a2luc2NpL3h1bml0LXBsdWdpbi9ibG9iL21hc3Rlci8KIHNyYy9tYWluL3Jlc291cmNlcy9vcmcv
amVua2luc2NpL3BsdWdpbnMveHVuaXQvdHlwZXMvbW9kZWwveHNkL2p1bml0LTEwLnhzZAogIiIi
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9m
dW5jdGlvbgogCiBpbXBvcnQgZnVuY3Rvb2xzCi1pbXBvcnQgcHkKIGltcG9ydCBvcworaW1wb3J0
IHBsYXRmb3JtCiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCitmcm9tIGRhdGV0
aW1lIGltcG9ydCBkYXRldGltZQorCitpbXBvcnQgcHkKK2ltcG9ydCBzaXgKKwogaW1wb3J0IHB5
dGVzdAogZnJvbSBfcHl0ZXN0IGltcG9ydCBub2RlcwogZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBv
cnQgZmlsZW5hbWVfYXJnCkBAIC0yMywxMCArMzEsNiBAQCBmcm9tIF9weXRlc3QuY29uZmlnIGlt
cG9ydCBmaWxlbmFtZV9hcmcKICMgUHl0aG9uIDIuWCBhbmQgMy5YIGNvbXBhdGliaWxpdHkKIGlm
IHN5cy52ZXJzaW9uX2luZm9bMF0gPCAzOgogICAgIGZyb20gY29kZWNzIGltcG9ydCBvcGVuCi1l
bHNlOgotICAgIHVuaWNociA9IGNocgotICAgIHVuaWNvZGUgPSBzdHIKLSAgICBsb25nID0gaW50
CiAKIAogY2xhc3MgSnVuaXQocHkueG1sLk5hbWVzcGFjZSk6CkBAIC0zOCwxNSArNDIsMTUgQEAg
Y2xhc3MgSnVuaXQocHkueG1sLk5hbWVzcGFjZSk6CiAjIHRoaXMgZHluYW1pY2FsbHkgaW5zdGVh
ZCBvZiBoYXJkY29kaW5nIGl0LiAgVGhlIHNwZWMgcmFuZ2Ugb2YgdmFsaWQKICMgY2hhcnMgaXM6
IENoYXIgOjo9ICN4OSB8ICN4QSB8ICN4RCB8IFsjeDIwLSN4RDdGRl0gfCBbI3hFMDAwLSN4RkZG
RF0KICMgICAgICAgICAgICAgICAgICAgIHwgWyN4MTAwMDAtI3gxMEZGRkZdCi1fbGVnYWxfY2hh
cnMgPSAoMHgwOSwgMHgwQSwgMHgwZCkKK19sZWdhbF9jaGFycyA9ICgweDA5LCAweDBBLCAweDBE
KQogX2xlZ2FsX3JhbmdlcyA9ICgoMHgyMCwgMHg3RSksICgweDgwLCAweEQ3RkYpLCAoMHhFMDAw
LCAweEZGRkQpLCAoMHgxMDAwMCwgMHgxMEZGRkYpKQogX2xlZ2FsX3htbF9yZSA9IFsKLSAgICB1
bmljb2RlKCIlcy0lcyIpICUgKHVuaWNocihsb3cpLCB1bmljaHIoaGlnaCkpCisgICAgdSIlcy0l
cyIgJSAoc2l4LnVuaWNocihsb3cpLCBzaXgudW5pY2hyKGhpZ2gpKQogICAgIGZvciAobG93LCBo
aWdoKSBpbiBfbGVnYWxfcmFuZ2VzCiAgICAgaWYgbG93IDwgc3lzLm1heHVuaWNvZGUKIF0KLV9s
ZWdhbF94bWxfcmUgPSBbdW5pY2hyKHgpIGZvciB4IGluIF9sZWdhbF9jaGFyc10gKyBfbGVnYWxf
eG1sX3JlCi1pbGxlZ2FsX3htbF9yZSA9IHJlLmNvbXBpbGUodW5pY29kZSgiW14lc10iKSAlIHVu
aWNvZGUoIiIpLmpvaW4oX2xlZ2FsX3htbF9yZSkpCitfbGVnYWxfeG1sX3JlID0gW3NpeC51bmlj
aHIoeCkgZm9yIHggaW4gX2xlZ2FsX2NoYXJzXSArIF9sZWdhbF94bWxfcmUKK2lsbGVnYWxfeG1s
X3JlID0gcmUuY29tcGlsZSh1IlteJXNdIiAlIHUiIi5qb2luKF9sZWdhbF94bWxfcmUpKQogZGVs
IF9sZWdhbF9jaGFycwogZGVsIF9sZWdhbF9yYW5nZXMKIGRlbCBfbGVnYWxfeG1sX3JlCkBAIC01
NSwyNCArNTksNDQgQEAgX3B5X2V4dF9yZSA9IHJlLmNvbXBpbGUociJcLnB5JCIpCiAKIAogZGVm
IGJpbl94bWxfZXNjYXBlKGFyZyk6Ci0KICAgICBkZWYgcmVwbChtYXRjaG9iaik6CiAgICAgICAg
IGkgPSBvcmQobWF0Y2hvYmouZ3JvdXAoKSkKICAgICAgICAgaWYgaSA8PSAweEZGOgotICAgICAg
ICAgICAgcmV0dXJuIHVuaWNvZGUoIiN4JTAyWCIpICUgaQorICAgICAgICAgICAgcmV0dXJuIHUi
I3glMDJYIiAlIGkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiB1bmljb2RlKCIj
eCUwNFgiKSAlIGkKKyAgICAgICAgICAgIHJldHVybiB1IiN4JTA0WCIgJSBpCiAKICAgICByZXR1
cm4gcHkueG1sLnJhdyhpbGxlZ2FsX3htbF9yZS5zdWIocmVwbCwgcHkueG1sLmVzY2FwZShhcmcp
KSkKIAogCi1jbGFzcyBfTm9kZVJlcG9ydGVyKG9iamVjdCk6CitkZWYgbWVyZ2VfZmFtaWx5KGxl
ZnQsIHJpZ2h0KToKKyAgICByZXN1bHQgPSB7fQorICAgIGZvciBrbCwgdmwgaW4gbGVmdC5pdGVt
cygpOgorICAgICAgICBmb3Iga3IsIHZyIGluIHJpZ2h0Lml0ZW1zKCk6CisgICAgICAgICAgICBp
ZiBub3QgaXNpbnN0YW5jZSh2bCwgbGlzdCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVy
cm9yKHR5cGUodmwpKQorICAgICAgICAgICAgcmVzdWx0W2tsXSA9IHZsICsgdnIKKyAgICBsZWZ0
LnVwZGF0ZShyZXN1bHQpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZWlkLCB4bWwpOgog
CitmYW1pbGllcyA9IHt9CitmYW1pbGllc1siX2Jhc2UiXSA9IHsidGVzdGNhc2UiOiBbImNsYXNz
bmFtZSIsICJuYW1lIl19CitmYW1pbGllc1siX2Jhc2VfbGVnYWN5Il0gPSB7InRlc3RjYXNlIjog
WyJmaWxlIiwgImxpbmUiLCAidXJsIl19CisKKyMgeFVuaXQgMS54IGluaGVyaXRzIGxlZ2FjeSBh
dHRyaWJ1dGVzCitmYW1pbGllc1sieHVuaXQxIl0gPSBmYW1pbGllc1siX2Jhc2UiXS5jb3B5KCkK
K21lcmdlX2ZhbWlseShmYW1pbGllc1sieHVuaXQxIl0sIGZhbWlsaWVzWyJfYmFzZV9sZWdhY3ki
XSkKKworIyB4VW5pdCAyLnggdXNlcyBzdHJpY3QgYmFzZSBhdHRyaWJ1dGVzCitmYW1pbGllc1si
eHVuaXQyIl0gPSBmYW1pbGllc1siX2Jhc2UiXQorCisKK2NsYXNzIF9Ob2RlUmVwb3J0ZXIob2Jq
ZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZWlkLCB4bWwpOgogICAgICAgICBzZWxm
LmlkID0gbm9kZWlkCiAgICAgICAgIHNlbGYueG1sID0geG1sCiAgICAgICAgIHNlbGYuYWRkX3N0
YXRzID0gc2VsZi54bWwuYWRkX3N0YXRzCisgICAgICAgIHNlbGYuZmFtaWx5ID0gc2VsZi54bWwu
ZmFtaWx5CiAgICAgICAgIHNlbGYuZHVyYXRpb24gPSAwCiAgICAgICAgIHNlbGYucHJvcGVydGll
cyA9IFtdCiAgICAgICAgIHNlbGYubm9kZXMgPSBbXQpAQCAtMTIwLDggKzE0NCwyMCBAQCBjbGFz
cyBfTm9kZVJlcG9ydGVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuYXR0cnMgPSBhdHRycwogICAg
ICAgICBzZWxmLmF0dHJzLnVwZGF0ZShleGlzdGluZ19hdHRycykgICMgcmVzdG9yZSBhbnkgdXNl
ci1kZWZpbmVkIGF0dHJpYnV0ZXMKIAorICAgICAgICAjIFByZXNlcnZlIGxlZ2FjeSB0ZXN0Y2Fz
ZSBiZWhhdmlvcgorICAgICAgICBpZiBzZWxmLmZhbWlseSA9PSAieHVuaXQxIjoKKyAgICAgICAg
ICAgIHJldHVybgorCisgICAgICAgICMgRmlsdGVyIG91dCBhdHRyaWJ1dGVzIG5vdCBwZXJtaXR0
ZWQgYnkgdGhpcyB0ZXN0IGZhbWlseS4KKyAgICAgICAgIyBJbmNsdWRpbmcgY3VzdG9tIGF0dHJp
YnV0ZXMgYmVjYXVzZSB0aGV5IGFyZSBub3QgdmFsaWQgaGVyZS4KKyAgICAgICAgdGVtcF9hdHRy
cyA9IHt9CisgICAgICAgIGZvciBrZXkgaW4gc2VsZi5hdHRycy5rZXlzKCk6CisgICAgICAgICAg
ICBpZiBrZXkgaW4gZmFtaWxpZXNbc2VsZi5mYW1pbHldWyJ0ZXN0Y2FzZSJdOgorICAgICAgICAg
ICAgICAgIHRlbXBfYXR0cnNba2V5XSA9IHNlbGYuYXR0cnNba2V5XQorICAgICAgICBzZWxmLmF0
dHJzID0gdGVtcF9hdHRycworCiAgICAgZGVmIHRvX3htbChzZWxmKToKLSAgICAgICAgdGVzdGNh
c2UgPSBKdW5pdC50ZXN0Y2FzZSh0aW1lPXNlbGYuZHVyYXRpb24sICoqc2VsZi5hdHRycykKKyAg
ICAgICAgdGVzdGNhc2UgPSBKdW5pdC50ZXN0Y2FzZSh0aW1lPSIlLjNmIiAlIHNlbGYuZHVyYXRp
b24sICoqc2VsZi5hdHRycykKICAgICAgICAgdGVzdGNhc2UuYXBwZW5kKHNlbGYubWFrZV9wcm9w
ZXJ0aWVzX25vZGUoKSkKICAgICAgICAgZm9yIG5vZGUgaW4gc2VsZi5ub2RlczoKICAgICAgICAg
ICAgIHRlc3RjYXNlLmFwcGVuZChub2RlKQpAQCAtMTMzLDYgKzE2OSw5IEBAIGNsYXNzIF9Ob2Rl
UmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5hcHBlbmQobm9kZSkKIAogICAgIGRlZiB3
cml0ZV9jYXB0dXJlZF9vdXRwdXQoc2VsZiwgcmVwb3J0KToKKyAgICAgICAgaWYgbm90IHNlbGYu
eG1sLmxvZ19wYXNzaW5nX3Rlc3RzIGFuZCByZXBvcnQucGFzc2VkOgorICAgICAgICAgICAgcmV0
dXJuCisKICAgICAgICAgY29udGVudF9vdXQgPSByZXBvcnQuY2Fwc3Rkb3V0CiAgICAgICAgIGNv
bnRlbnRfbG9nID0gcmVwb3J0LmNhcGxvZwogICAgICAgICBjb250ZW50X2VyciA9IHJlcG9ydC5j
YXBzdGRlcnIKQEAgLTE5Miw3ICsyMzEsNyBAQCBjbGFzcyBfTm9kZVJlcG9ydGVyKG9iamVjdCk6
CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBpZiBoYXNhdHRyKHJlcG9ydC5sb25ncmVwciwg
InJlcHJjcmFzaCIpOgogICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSByZXBvcnQubG9uZ3JlcHIu
cmVwcmNyYXNoLm1lc3NhZ2UKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShyZXBvcnQubG9u
Z3JlcHIsICh1bmljb2RlLCBzdHIpKToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShyZXBv
cnQubG9uZ3JlcHIsIHNpeC5zdHJpbmdfdHlwZXMpOgogICAgICAgICAgICAgICAgIG1lc3NhZ2Ug
PSByZXBvcnQubG9uZ3JlcHIKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgbWVz
c2FnZSA9IHN0cihyZXBvcnQubG9uZ3JlcHIpCkBAIC0yMTEsNyArMjUwLDcgQEAgY2xhc3MgX05v
ZGVSZXBvcnRlcihvYmplY3QpOgogICAgICAgICBzZWxmLl9hZGRfc2ltcGxlKEp1bml0LnNraXBw
ZWQsICJjb2xsZWN0aW9uIHNraXBwZWQiLCByZXBvcnQubG9uZ3JlcHIpCiAKICAgICBkZWYgYXBw
ZW5kX2Vycm9yKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIGlmIGdldGF0dHIocmVwb3J0LCAid2hl
biIsIE5vbmUpID09ICJ0ZWFyZG93biI6CisgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJ0ZWFy
ZG93biI6CiAgICAgICAgICAgICBtc2cgPSAidGVzdCB0ZWFyZG93biBmYWlsdXJlIgogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgbXNnID0gInRlc3Qgc2V0dXAgZmFpbHVyZSIKQEAgLTIxOSwx
NiArMjU4LDI1IEBAIGNsYXNzIF9Ob2RlUmVwb3J0ZXIob2JqZWN0KToKIAogICAgIGRlZiBhcHBl
bmRfc2tpcHBlZChzZWxmLCByZXBvcnQpOgogICAgICAgICBpZiBoYXNhdHRyKHJlcG9ydCwgIndh
c3hmYWlsIik6Ci0gICAgICAgICAgICBzZWxmLl9hZGRfc2ltcGxlKEp1bml0LnNraXBwZWQsICJl
eHBlY3RlZCB0ZXN0IGZhaWx1cmUiLCByZXBvcnQud2FzeGZhaWwpCisgICAgICAgICAgICB4ZmFp
bHJlYXNvbiA9IHJlcG9ydC53YXN4ZmFpbAorICAgICAgICAgICAgaWYgeGZhaWxyZWFzb24uc3Rh
cnRzd2l0aCgicmVhc29uOiAiKToKKyAgICAgICAgICAgICAgICB4ZmFpbHJlYXNvbiA9IHhmYWls
cmVhc29uWzg6XQorICAgICAgICAgICAgc2VsZi5hcHBlbmQoCisgICAgICAgICAgICAgICAgSnVu
aXQuc2tpcHBlZCgKKyAgICAgICAgICAgICAgICAgICAgIiIsIHR5cGU9InB5dGVzdC54ZmFpbCIs
IG1lc3NhZ2U9YmluX3htbF9lc2NhcGUoeGZhaWxyZWFzb24pCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZmlsZW5hbWUsIGxpbmVu
bywgc2tpcHJlYXNvbiA9IHJlcG9ydC5sb25ncmVwcgogICAgICAgICAgICAgaWYgc2tpcHJlYXNv
bi5zdGFydHN3aXRoKCJTa2lwcGVkOiAiKToKLSAgICAgICAgICAgICAgICBza2lwcmVhc29uID0g
YmluX3htbF9lc2NhcGUoc2tpcHJlYXNvbls5Ol0pCisgICAgICAgICAgICAgICAgc2tpcHJlYXNv
biA9IHNraXByZWFzb25bOTpdCisgICAgICAgICAgICBkZXRhaWxzID0gIiVzOiVzOiAlcyIgJSAo
ZmlsZW5hbWUsIGxpbmVubywgc2tpcHJlYXNvbikKKwogICAgICAgICAgICAgc2VsZi5hcHBlbmQo
CiAgICAgICAgICAgICAgICAgSnVuaXQuc2tpcHBlZCgKLSAgICAgICAgICAgICAgICAgICAgIiVz
OiVzOiAlcyIgJSAoZmlsZW5hbWUsIGxpbmVubywgc2tpcHJlYXNvbiksCisgICAgICAgICAgICAg
ICAgICAgIGJpbl94bWxfZXNjYXBlKGRldGFpbHMpLAogICAgICAgICAgICAgICAgICAgICB0eXBl
PSJweXRlc3Quc2tpcCIsCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9c2tpcHJlYXNvbiwK
KyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1iaW5feG1sX2VzY2FwZShza2lwcmVhc29uKSwK
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICApCiAgICAgICAgICAgICBzZWxmLndyaXRl
X2NhcHR1cmVkX291dHB1dChyZXBvcnQpCkBAIC0yMzksNiArMjg3LDIxIEBAIGNsYXNzIF9Ob2Rl
UmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi50b194bWwgPSBsYW1iZGE6IHB5LnhtbC5y
YXcoZGF0YSkKIAogCitkZWYgX3dhcm5faW5jb21wYXRpYmlsaXR5X3dpdGhfeHVuaXQyKHJlcXVl
c3QsIGZpeHR1cmVfbmFtZSk6CisgICAgIiIiRW1pdHMgYSBQeXRlc3RXYXJuaW5nIGFib3V0IHRo
ZSBnaXZlbiBmaXh0dXJlIGJlaW5nIGluY29tcGF0aWJsZSB3aXRoIG5ld2VyIHh1bml0IHJldmlz
aW9ucyIiIgorICAgIGZyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3RXYXJu
aW5nCisKKyAgICB4bWwgPSBnZXRhdHRyKHJlcXVlc3QuY29uZmlnLCAiX3htbCIsIE5vbmUpCisg
ICAgaWYgeG1sIGlzIG5vdCBOb25lIGFuZCB4bWwuZmFtaWx5IG5vdCBpbiAoInh1bml0MSIsICJs
ZWdhY3kiKToKKyAgICAgICAgcmVxdWVzdC5ub2RlLndhcm4oCisgICAgICAgICAgICBQeXRlc3RX
YXJuaW5nKAorICAgICAgICAgICAgICAgICJ7Zml4dHVyZV9uYW1lfSBpcyBpbmNvbXBhdGlibGUg
d2l0aCBqdW5pdF9mYW1pbHkgJ3tmYW1pbHl9JyAodXNlICdsZWdhY3knIG9yICd4dW5pdDEnKSIu
Zm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBmaXh0dXJlX25hbWU9Zml4dHVyZV9uYW1lLCBm
YW1pbHk9eG1sLmZhbWlseQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAg
ICAgKQorCisKIEBweXRlc3QuZml4dHVyZQogZGVmIHJlY29yZF9wcm9wZXJ0eShyZXF1ZXN0KToK
ICAgICAiIiJBZGQgYW4gZXh0cmEgcHJvcGVydGllcyB0aGUgY2FsbGluZyB0ZXN0LgpAQCAtMjUy
LDYgKzMxNSw3IEBAIGRlZiByZWNvcmRfcHJvcGVydHkocmVxdWVzdCk6CiAgICAgICAgIGRlZiB0
ZXN0X2Z1bmN0aW9uKHJlY29yZF9wcm9wZXJ0eSk6CiAgICAgICAgICAgICByZWNvcmRfcHJvcGVy
dHkoImV4YW1wbGVfa2V5IiwgMSkKICAgICAiIiIKKyAgICBfd2Fybl9pbmNvbXBhdGliaWxpdHlf
d2l0aF94dW5pdDIocmVxdWVzdCwgInJlY29yZF9wcm9wZXJ0eSIpCiAKICAgICBkZWYgYXBwZW5k
X3Byb3BlcnR5KG5hbWUsIHZhbHVlKToKICAgICAgICAgcmVxdWVzdC5ub2RlLnVzZXJfcHJvcGVy
dGllcy5hcHBlbmQoKG5hbWUsIHZhbHVlKSkKQEAgLTI1OSwzNiArMzIzLDcxIEBAIGRlZiByZWNv
cmRfcHJvcGVydHkocmVxdWVzdCk6CiAgICAgcmV0dXJuIGFwcGVuZF9wcm9wZXJ0eQogCiAKLUBw
eXRlc3QuZml4dHVyZQotZGVmIHJlY29yZF94bWxfcHJvcGVydHkocmVjb3JkX3Byb3BlcnR5KToK
LSAgICAiIiIoRGVwcmVjYXRlZCkgdXNlIHJlY29yZF9wcm9wZXJ0eS4iIiIKLSAgICBpbXBvcnQg
d2FybmluZ3MKLSAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKLQotICAgIHdhcm5p
bmdzLndhcm4oZGVwcmVjYXRlZC5SRUNPUkRfWE1MX1BST1BFUlRZLCBEZXByZWNhdGlvbldhcm5p
bmcsIHN0YWNrbGV2ZWw9MikKLQotICAgIHJldHVybiByZWNvcmRfcHJvcGVydHkKLQotCiBAcHl0
ZXN0LmZpeHR1cmUKIGRlZiByZWNvcmRfeG1sX2F0dHJpYnV0ZShyZXF1ZXN0KToKICAgICAiIiJB
ZGQgZXh0cmEgeG1sIGF0dHJpYnV0ZXMgdG8gdGhlIHRhZyBmb3IgdGhlIGNhbGxpbmcgdGVzdC4K
ICAgICBUaGUgZml4dHVyZSBpcyBjYWxsYWJsZSB3aXRoIGBgKG5hbWUsIHZhbHVlKWBgLCB3aXRo
IHZhbHVlIGJlaW5nCiAgICAgYXV0b21hdGljYWxseSB4bWwtZW5jb2RlZAogICAgICIiIgorICAg
IGZyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3RFeHBlcmltZW50YWxBcGlX
YXJuaW5nCisKICAgICByZXF1ZXN0Lm5vZGUud2FybigKLSAgICAgICAgY29kZT0iQzMiLCBtZXNz
YWdlPSJyZWNvcmRfeG1sX2F0dHJpYnV0ZSBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSIKKyAg
ICAgICAgUHl0ZXN0RXhwZXJpbWVudGFsQXBpV2FybmluZygicmVjb3JkX3htbF9hdHRyaWJ1dGUg
aXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUiKQogICAgICkKKworICAgIF93YXJuX2luY29tcGF0
aWJpbGl0eV93aXRoX3h1bml0MihyZXF1ZXN0LCAicmVjb3JkX3htbF9hdHRyaWJ1dGUiKQorCisg
ICAgIyBEZWNsYXJlIG5vb3AKKyAgICBkZWYgYWRkX2F0dHJfbm9vcChuYW1lLCB2YWx1ZSk6Cisg
ICAgICAgIHBhc3MKKworICAgIGF0dHJfZnVuYyA9IGFkZF9hdHRyX25vb3AKKwogICAgIHhtbCA9
IGdldGF0dHIocmVxdWVzdC5jb25maWcsICJfeG1sIiwgTm9uZSkKICAgICBpZiB4bWwgaXMgbm90
IE5vbmU6CiAgICAgICAgIG5vZGVfcmVwb3J0ZXIgPSB4bWwubm9kZV9yZXBvcnRlcihyZXF1ZXN0
Lm5vZGUubm9kZWlkKQotICAgICAgICByZXR1cm4gbm9kZV9yZXBvcnRlci5hZGRfYXR0cmlidXRl
Ci0gICAgZWxzZToKKyAgICAgICAgYXR0cl9mdW5jID0gbm9kZV9yZXBvcnRlci5hZGRfYXR0cmli
dXRlCisKKyAgICByZXR1cm4gYXR0cl9mdW5jCisKKworZGVmIF9jaGVja19yZWNvcmRfcGFyYW1f
dHlwZShwYXJhbSwgdik6CisgICAgIiIiVXNlZCBieSByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5
IHRvIGNoZWNrIHRoYXQgdGhlIGdpdmVuIHBhcmFtZXRlciBuYW1lIGlzIG9mIHRoZSBwcm9wZXIK
KyAgICB0eXBlIiIiCisgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgaWYgbm90IGlz
aW5zdGFuY2Uodiwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAgIG1zZyA9ICJ7cGFyYW19IHBh
cmFtZXRlciBuZWVkcyB0byBiZSBhIHN0cmluZywgYnV0IHtnfSBnaXZlbiIKKyAgICAgICAgcmFp
c2UgVHlwZUVycm9yKG1zZy5mb3JtYXQocGFyYW09cGFyYW0sIGc9dHlwZSh2KS5fX25hbWVfXykp
CisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiByZWNvcmRfdGVzdHN1
aXRlX3Byb3BlcnR5KHJlcXVlc3QpOgorICAgICIiIgorICAgIFJlY29yZHMgYSBuZXcgYGA8cHJv
cGVydHk+YGAgdGFnIGFzIGNoaWxkIG9mIHRoZSByb290IGBgPHRlc3RzdWl0ZT5gYC4gVGhpcyBp
cyBzdWl0YWJsZSB0bworICAgIHdyaXRpbmcgZ2xvYmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0
aGUgZW50aXJlIHRlc3Qgc3VpdGUsIGFuZCBpcyBjb21wYXRpYmxlIHdpdGggYGB4dW5pdDJgYCBK
VW5pdCBmYW1pbHkuCisKKyAgICBUaGlzIGlzIGEgYGBzZXNzaW9uYGAtc2NvcGVkIGZpeHR1cmUg
d2hpY2ggaXMgY2FsbGVkIHdpdGggYGAobmFtZSwgdmFsdWUpYGAuIEV4YW1wbGU6CisKKyAgICAu
LiBjb2RlLWJsb2NrOjogcHl0aG9uCiAKLSAgICAgICAgZGVmIGFkZF9hdHRyX25vb3AobmFtZSwg
dmFsdWUpOgotICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYgdGVzdF9mb28ocmVjb3JkX3Rl
c3RzdWl0ZV9wcm9wZXJ0eSk6CisgICAgICAgICAgICByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5
KCJBUkNIIiwgIlBQQyIpCisgICAgICAgICAgICByZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5KCJT
VE9SQUdFX1RZUEUiLCAiQ0VQSCIpCiAKLSAgICAgICAgcmV0dXJuIGFkZF9hdHRyX25vb3AKKyAg
ICBgYG5hbWVgYCBtdXN0IGJlIGEgc3RyaW5nLCBgYHZhbHVlYGAgd2lsbCBiZSBjb252ZXJ0ZWQg
dG8gYSBzdHJpbmcgYW5kIHByb3Blcmx5IHhtbC1lc2NhcGVkLgorICAgICIiIgorCisgICAgX190
cmFjZWJhY2toaWRlX18gPSBUcnVlCisKKyAgICBkZWYgcmVjb3JkX2Z1bmMobmFtZSwgdmFsdWUp
OgorICAgICAgICAiIiJub29wIGZ1bmN0aW9uIGluIGNhc2UgLS1qdW5pdHhtbCB3YXMgbm90IHBh
c3NlZCBpbiB0aGUgY29tbWFuZC1saW5lIiIiCisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0g
VHJ1ZQorICAgICAgICBfY2hlY2tfcmVjb3JkX3BhcmFtX3R5cGUoIm5hbWUiLCBuYW1lKQorCisg
ICAgeG1sID0gZ2V0YXR0cihyZXF1ZXN0LmNvbmZpZywgIl94bWwiLCBOb25lKQorICAgIGlmIHht
bCBpcyBub3QgTm9uZToKKyAgICAgICAgcmVjb3JkX2Z1bmMgPSB4bWwuYWRkX2dsb2JhbF9wcm9w
ZXJ0eSAgIyBub3FhCisgICAgcmV0dXJuIHJlY29yZF9mdW5jCiAKIAogZGVmIHB5dGVzdF9hZGRv
cHRpb24ocGFyc2VyKToKQEAgLTMyMCw2ICs0MTksMjIgQEAgZGVmIHB5dGVzdF9hZGRvcHRpb24o
cGFyc2VyKToKICAgICAgICAgIm9uZSBvZiBub3xzeXN0ZW0tb3V0fHN5c3RlbS1lcnIiLAogICAg
ICAgICBkZWZhdWx0PSJubyIsCiAgICAgKSAgIyBjaG9pY2VzPVsnbm8nLCAnc3Rkb3V0JywgJ3N0
ZGVyciddKQorICAgIHBhcnNlci5hZGRpbmkoCisgICAgICAgICJqdW5pdF9sb2dfcGFzc2luZ190
ZXN0cyIsCisgICAgICAgICJDYXB0dXJlIGxvZyBpbmZvcm1hdGlvbiBmb3IgcGFzc2luZyB0ZXN0
cyB0byBKVW5pdCByZXBvcnQ6ICIsCisgICAgICAgIHR5cGU9ImJvb2wiLAorICAgICAgICBkZWZh
dWx0PVRydWUsCisgICAgKQorICAgIHBhcnNlci5hZGRpbmkoCisgICAgICAgICJqdW5pdF9kdXJh
dGlvbl9yZXBvcnQiLAorICAgICAgICAiRHVyYXRpb24gdGltZSB0byByZXBvcnQ6IG9uZSBvZiB0
b3RhbHxjYWxsIiwKKyAgICAgICAgZGVmYXVsdD0idG90YWwiLAorICAgICkgICMgY2hvaWNlcz1b
J3RvdGFsJywgJ2NhbGwnXSkKKyAgICBwYXJzZXIuYWRkaW5pKAorICAgICAgICAianVuaXRfZmFt
aWx5IiwKKyAgICAgICAgIkVtaXQgWE1MIGZvciBzY2hlbWE6IG9uZSBvZiBsZWdhY3l8eHVuaXQx
fHh1bml0MiIsCisgICAgICAgIGRlZmF1bHQ9Inh1bml0MSIsCisgICAgKQogCiAKIGRlZiBweXRl
c3RfY29uZmlndXJlKGNvbmZpZyk6CkBAIC0zMzEsNiArNDQ2LDkgQEAgZGVmIHB5dGVzdF9jb25m
aWd1cmUoY29uZmlnKToKICAgICAgICAgICAgIGNvbmZpZy5vcHRpb24uanVuaXRwcmVmaXgsCiAg
ICAgICAgICAgICBjb25maWcuZ2V0aW5pKCJqdW5pdF9zdWl0ZV9uYW1lIiksCiAgICAgICAgICAg
ICBjb25maWcuZ2V0aW5pKCJqdW5pdF9sb2dnaW5nIiksCisgICAgICAgICAgICBjb25maWcuZ2V0
aW5pKCJqdW5pdF9kdXJhdGlvbl9yZXBvcnQiKSwKKyAgICAgICAgICAgIGNvbmZpZy5nZXRpbmko
Imp1bml0X2ZhbWlseSIpLAorICAgICAgICAgICAgY29uZmlnLmdldGluaSgianVuaXRfbG9nX3Bh
c3NpbmdfdGVzdHMiKSwKICAgICAgICAgKQogICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5y
ZWdpc3Rlcihjb25maWcuX3htbCkKIApAQCAtMzU4LDIxICs0NzYsMzcgQEAgZGVmIG1hbmdsZV90
ZXN0X2FkZHJlc3MoYWRkcmVzcyk6CiAKIAogY2xhc3MgTG9nWE1MKG9iamVjdCk6Ci0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nZmlsZSwgcHJlZml4LCBzdWl0ZV9uYW1lPSJweXRlc3QiLCBs
b2dnaW5nPSJubyIpOgorICAgIGRlZiBfX2luaXRfXygKKyAgICAgICAgc2VsZiwKKyAgICAgICAg
bG9nZmlsZSwKKyAgICAgICAgcHJlZml4LAorICAgICAgICBzdWl0ZV9uYW1lPSJweXRlc3QiLAor
ICAgICAgICBsb2dnaW5nPSJubyIsCisgICAgICAgIHJlcG9ydF9kdXJhdGlvbj0idG90YWwiLAor
ICAgICAgICBmYW1pbHk9Inh1bml0MSIsCisgICAgICAgIGxvZ19wYXNzaW5nX3Rlc3RzPVRydWUs
CisgICAgKToKICAgICAgICAgbG9nZmlsZSA9IG9zLnBhdGguZXhwYW5kdXNlcihvcy5wYXRoLmV4
cGFuZHZhcnMobG9nZmlsZSkpCiAgICAgICAgIHNlbGYubG9nZmlsZSA9IG9zLnBhdGgubm9ybXBh
dGgob3MucGF0aC5hYnNwYXRoKGxvZ2ZpbGUpKQogICAgICAgICBzZWxmLnByZWZpeCA9IHByZWZp
eAogICAgICAgICBzZWxmLnN1aXRlX25hbWUgPSBzdWl0ZV9uYW1lCiAgICAgICAgIHNlbGYubG9n
Z2luZyA9IGxvZ2dpbmcKKyAgICAgICAgc2VsZi5sb2dfcGFzc2luZ190ZXN0cyA9IGxvZ19wYXNz
aW5nX3Rlc3RzCisgICAgICAgIHNlbGYucmVwb3J0X2R1cmF0aW9uID0gcmVwb3J0X2R1cmF0aW9u
CisgICAgICAgIHNlbGYuZmFtaWx5ID0gZmFtaWx5CiAgICAgICAgIHNlbGYuc3RhdHMgPSBkaWN0
LmZyb21rZXlzKFsiZXJyb3IiLCAicGFzc2VkIiwgImZhaWx1cmUiLCAic2tpcHBlZCJdLCAwKQog
ICAgICAgICBzZWxmLm5vZGVfcmVwb3J0ZXJzID0ge30gICMgbm9kZWlkIC0+IF9Ob2RlUmVwb3J0
ZXIKICAgICAgICAgc2VsZi5ub2RlX3JlcG9ydGVyc19vcmRlcmVkID0gW10KICAgICAgICAgc2Vs
Zi5nbG9iYWxfcHJvcGVydGllcyA9IFtdCisKICAgICAgICAgIyBMaXN0IG9mIHJlcG9ydHMgdGhh
dCBmYWlsZWQgb24gY2FsbCBidXQgdGVhcmRvd24gaXMgcGVuZGluZy4KICAgICAgICAgc2VsZi5v
cGVuX3JlcG9ydHMgPSBbXQogICAgICAgICBzZWxmLmNudF9kb3VibGVfZmFpbF90ZXN0cyA9IDAK
IAorICAgICAgICAjIFJlcGxhY2VzIGNvbnZlbmllbmNlIGZhbWlseSB3aXRoIHJlYWwgZmFtaWx5
CisgICAgICAgIGlmIHNlbGYuZmFtaWx5ID09ICJsZWdhY3kiOgorICAgICAgICAgICAgc2VsZi5m
YW1pbHkgPSAieHVuaXQxIgorCiAgICAgZGVmIGZpbmFsaXplKHNlbGYsIHJlcG9ydCk6CiAgICAg
ICAgIG5vZGVpZCA9IGdldGF0dHIocmVwb3J0LCAibm9kZWlkIiwgcmVwb3J0KQogICAgICAgICAj
IGxvY2FsIGhhY2sgdG8gaGFuZGxlIHhkaXN0IHJlcG9ydCBvcmRlcgpAQCAtNDYzLDYgKzU5Nyw4
IEBAIGNsYXNzIExvZ1hNTChvYmplY3QpOgogICAgICAgICAgICAgaWYgcmVwb3J0LndoZW4gPT0g
ImNhbGwiOgogICAgICAgICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9mYWlsdXJlKHJlcG9ydCkK
ICAgICAgICAgICAgICAgICBzZWxmLm9wZW5fcmVwb3J0cy5hcHBlbmQocmVwb3J0KQorICAgICAg
ICAgICAgICAgIGlmIG5vdCBzZWxmLmxvZ19wYXNzaW5nX3Rlc3RzOgorICAgICAgICAgICAgICAg
ICAgICByZXBvcnRlci53cml0ZV9jYXB0dXJlZF9vdXRwdXQocmVwb3J0KQogICAgICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgICAgICByZXBvcnRlci5hcHBlbmRfZXJyb3IocmVwb3J0KQogICAg
ICAgICBlbGlmIHJlcG9ydC5za2lwcGVkOgpAQCAtNDk4LDggKzYzNCw5IEBAIGNsYXNzIExvZ1hN
TChvYmplY3QpOgogICAgICAgICAiIiJhY2N1bXVsYXRlcyB0b3RhbCBkdXJhdGlvbiBmb3Igbm9k
ZWlkIGZyb20gZ2l2ZW4gcmVwb3J0IGFuZCB1cGRhdGVzCiAgICAgICAgIHRoZSBKdW5pdC50ZXN0
Y2FzZSB3aXRoIHRoZSBuZXcgdG90YWwgaWYgYWxyZWFkeSBjcmVhdGVkLgogICAgICAgICAiIiIK
LSAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLm5vZGVfcmVwb3J0ZXIocmVwb3J0KQotICAgICAgICBy
ZXBvcnRlci5kdXJhdGlvbiArPSBnZXRhdHRyKHJlcG9ydCwgImR1cmF0aW9uIiwgMC4wKQorICAg
ICAgICBpZiBzZWxmLnJlcG9ydF9kdXJhdGlvbiA9PSAidG90YWwiIG9yIHJlcG9ydC53aGVuID09
IHNlbGYucmVwb3J0X2R1cmF0aW9uOgorICAgICAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLm5vZGVf
cmVwb3J0ZXIocmVwb3J0KQorICAgICAgICAgICAgcmVwb3J0ZXIuZHVyYXRpb24gKz0gZ2V0YXR0
cihyZXBvcnQsICJkdXJhdGlvbiIsIDAuMCkKIAogICAgIGRlZiBweXRlc3RfY29sbGVjdHJlcG9y
dChzZWxmLCByZXBvcnQpOgogICAgICAgICBpZiBub3QgcmVwb3J0LnBhc3NlZDoKQEAgLTUzNCwy
NyArNjcxLDI4IEBAIGNsYXNzIExvZ1hNTChvYmplY3QpOgogICAgICAgICApCiAgICAgICAgIGxv
Z2ZpbGUud3JpdGUoJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+JykKIAot
ICAgICAgICBsb2dmaWxlLndyaXRlKAotICAgICAgICAgICAgSnVuaXQudGVzdHN1aXRlKAotICAg
ICAgICAgICAgICAgIHNlbGYuX2dldF9nbG9iYWxfcHJvcGVydGllc19ub2RlKCksCi0gICAgICAg
ICAgICAgICAgW3gudG9feG1sKCkgZm9yIHggaW4gc2VsZi5ub2RlX3JlcG9ydGVyc19vcmRlcmVk
XSwKLSAgICAgICAgICAgICAgICBuYW1lPXNlbGYuc3VpdGVfbmFtZSwKLSAgICAgICAgICAgICAg
ICBlcnJvcnM9c2VsZi5zdGF0c1siZXJyb3IiXSwKLSAgICAgICAgICAgICAgICBmYWlsdXJlcz1z
ZWxmLnN0YXRzWyJmYWlsdXJlIl0sCi0gICAgICAgICAgICAgICAgc2tpcHM9c2VsZi5zdGF0c1si
c2tpcHBlZCJdLAotICAgICAgICAgICAgICAgIHRlc3RzPW51bXRlc3RzLAotICAgICAgICAgICAg
ICAgIHRpbWU9IiUuM2YiICUgc3VpdGVfdGltZV9kZWx0YSwKLSAgICAgICAgICAgICkudW5pY29k
ZSgKLSAgICAgICAgICAgICAgICBpbmRlbnQ9MAotICAgICAgICAgICAgKQorICAgICAgICBzdWl0
ZV9ub2RlID0gSnVuaXQudGVzdHN1aXRlKAorICAgICAgICAgICAgc2VsZi5fZ2V0X2dsb2JhbF9w
cm9wZXJ0aWVzX25vZGUoKSwKKyAgICAgICAgICAgIFt4LnRvX3htbCgpIGZvciB4IGluIHNlbGYu
bm9kZV9yZXBvcnRlcnNfb3JkZXJlZF0sCisgICAgICAgICAgICBuYW1lPXNlbGYuc3VpdGVfbmFt
ZSwKKyAgICAgICAgICAgIGVycm9ycz1zZWxmLnN0YXRzWyJlcnJvciJdLAorICAgICAgICAgICAg
ZmFpbHVyZXM9c2VsZi5zdGF0c1siZmFpbHVyZSJdLAorICAgICAgICAgICAgc2tpcHBlZD1zZWxm
LnN0YXRzWyJza2lwcGVkIl0sCisgICAgICAgICAgICB0ZXN0cz1udW10ZXN0cywKKyAgICAgICAg
ICAgIHRpbWU9IiUuM2YiICUgc3VpdGVfdGltZV9kZWx0YSwKKyAgICAgICAgICAgIHRpbWVzdGFt
cD1kYXRldGltZS5mcm9tdGltZXN0YW1wKHNlbGYuc3VpdGVfc3RhcnRfdGltZSkuaXNvZm9ybWF0
KCksCisgICAgICAgICAgICBob3N0bmFtZT1wbGF0Zm9ybS5ub2RlKCksCiAgICAgICAgICkKKyAg
ICAgICAgbG9nZmlsZS53cml0ZShKdW5pdC50ZXN0c3VpdGVzKFtzdWl0ZV9ub2RlXSkudW5pY29k
ZShpbmRlbnQ9MCkpCiAgICAgICAgIGxvZ2ZpbGUuY2xvc2UoKQogCiAgICAgZGVmIHB5dGVzdF90
ZXJtaW5hbF9zdW1tYXJ5KHNlbGYsIHRlcm1pbmFscmVwb3J0ZXIpOgogICAgICAgICB0ZXJtaW5h
bHJlcG9ydGVyLndyaXRlX3NlcCgiLSIsICJnZW5lcmF0ZWQgeG1sIGZpbGU6ICVzIiAlIChzZWxm
LmxvZ2ZpbGUpKQogCiAgICAgZGVmIGFkZF9nbG9iYWxfcHJvcGVydHkoc2VsZiwgbmFtZSwgdmFs
dWUpOgotICAgICAgICBzZWxmLmdsb2JhbF9wcm9wZXJ0aWVzLmFwcGVuZCgoc3RyKG5hbWUpLCBi
aW5feG1sX2VzY2FwZSh2YWx1ZSkpKQorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUK
KyAgICAgICAgX2NoZWNrX3JlY29yZF9wYXJhbV90eXBlKCJuYW1lIiwgbmFtZSkKKyAgICAgICAg
c2VsZi5nbG9iYWxfcHJvcGVydGllcy5hcHBlbmQoKG5hbWUsIGJpbl94bWxfZXNjYXBlKHZhbHVl
KSkpCiAKICAgICBkZWYgX2dldF9nbG9iYWxfcHJvcGVydGllc19ub2RlKHNlbGYpOgogICAgICAg
ICAiIiJSZXR1cm4gYSBKdW5pdCBub2RlIGNvbnRhaW5pbmcgY3VzdG9tIHByb3BlcnRpZXMsIGlm
IGFueS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2xvZ2dpbmcucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9sb2dnaW5nLnB5CmluZGV4IDAwYmI5YWViNTRhNzA0ZGI4
NTgwZDJlNzAzOTY2YWJjMmVkYzM3YjQuLjI0MDA3MzdlZTRlMTE5ZTZiNzM1MGI3MTVjMjQzMWUw
MDdmMzQxM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2xvZ2dpbmcucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbG9nZ2luZy5weQpAQCAtMSwxOCArMSwyOCBA
QAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIiBBY2Nlc3MgYW5kIGNvbnRyb2wgbG9nIGNh
cHR1cmluZy4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgbG9nZ2luZwotZnJvbSBjb250ZXh0bGliIGlt
cG9ydCBjbG9zaW5nLCBjb250ZXh0bWFuYWdlcgogaW1wb3J0IHJlCi1pbXBvcnQgc2l4Citmcm9t
IGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCiAKLWZyb20gX3B5dGVzdC5jb25maWcg
aW1wb3J0IGNyZWF0ZV90ZXJtaW5hbF93cml0ZXIKLWltcG9ydCBweXRlc3QKIGltcG9ydCBweQor
aW1wb3J0IHNpeAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBk
dW1teV9jb250ZXh0X21hbmFnZXIKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGNyZWF0ZV90
ZXJtaW5hbF93cml0ZXIKK2Zyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBQYXRoCiAKLURFRkFV
TFRfTE9HX0ZPUk1BVCA9ICIlKGZpbGVuYW1lKS0yNXMgJShsaW5lbm8pNGQgJShsZXZlbG5hbWUp
LThzICUobWVzc2FnZSlzIgorREVGQVVMVF9MT0dfRk9STUFUID0gIiUobGV2ZWxuYW1lKS04cyAl
KG5hbWUpczolKGZpbGVuYW1lKXM6JShsaW5lbm8pZCAlKG1lc3NhZ2UpcyIKIERFRkFVTFRfTE9H
X0RBVEVfRk9STUFUID0gIiVIOiVNOiVTIgorX0FOU0lfRVNDQVBFX1NFUSA9IHJlLmNvbXBpbGUo
ciJceDFiXFtbXGQ7XSttIikKKworCitkZWYgX3JlbW92ZV9hbnNpX2VzY2FwZV9zZXF1ZW5jZXMo
dGV4dCk6CisgICAgcmV0dXJuIF9BTlNJX0VTQ0FQRV9TRVEuc3ViKCIiLCB0ZXh0KQogCiAKIGNs
YXNzIENvbG9yZWRMZXZlbEZvcm1hdHRlcihsb2dnaW5nLkZvcm1hdHRlcik6CkBAIC02Nyw2ICs3
NywzNiBAQCBjbGFzcyBDb2xvcmVkTGV2ZWxGb3JtYXR0ZXIobG9nZ2luZy5Gb3JtYXR0ZXIpOgog
ICAgICAgICByZXR1cm4gc3VwZXIoQ29sb3JlZExldmVsRm9ybWF0dGVyLCBzZWxmKS5mb3JtYXQo
cmVjb3JkKQogCiAKK2lmIG5vdCBzaXguUFkyOgorICAgICMgRm9ybWF0dGVyIGNsYXNzZXMgZG9u
J3Qgc3VwcG9ydCBmb3JtYXQgc3R5bGVzIGluIFBZMgorCisgICAgY2xhc3MgUGVyY2VudFN0eWxl
TXVsdGlsaW5lKGxvZ2dpbmcuUGVyY2VudFN0eWxlKToKKyAgICAgICAgIiIiQSBsb2dnaW5nIHN0
eWxlIHdpdGggc3BlY2lhbCBzdXBwb3J0IGZvciBtdWx0aWxpbmUgbWVzc2FnZXMuCisKKyAgICAg
ICAgSWYgdGhlIG1lc3NhZ2Ugb2YgYSByZWNvcmQgY29uc2lzdHMgb2YgbXVsdGlwbGUgbGluZXMs
IHRoaXMgc3R5bGUKKyAgICAgICAgZm9ybWF0cyB0aGUgbWVzc2FnZSBhcyBpZiBlYWNoIGxpbmUg
d2VyZSBsb2dnZWQgc2VwYXJhdGVseS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgQHN0YXRpY21l
dGhvZAorICAgICAgICBkZWYgX3VwZGF0ZV9tZXNzYWdlKHJlY29yZF9kaWN0LCBtZXNzYWdlKToK
KyAgICAgICAgICAgIHRtcCA9IHJlY29yZF9kaWN0LmNvcHkoKQorICAgICAgICAgICAgdG1wWyJt
ZXNzYWdlIl0gPSBtZXNzYWdlCisgICAgICAgICAgICByZXR1cm4gdG1wCisKKyAgICAgICAgZGVm
IGZvcm1hdChzZWxmLCByZWNvcmQpOgorICAgICAgICAgICAgaWYgIlxuIiBpbiByZWNvcmQubWVz
c2FnZToKKyAgICAgICAgICAgICAgICBsaW5lcyA9IHJlY29yZC5tZXNzYWdlLnNwbGl0bGluZXMo
KQorICAgICAgICAgICAgICAgIGZvcm1hdHRlZCA9IHNlbGYuX2ZtdCAlIHNlbGYuX3VwZGF0ZV9t
ZXNzYWdlKHJlY29yZC5fX2RpY3RfXywgbGluZXNbMF0pCisgICAgICAgICAgICAgICAgIyBUT0RP
IG9wdGltaXplIHRoaXMgYnkgaW50cm9kdWNpbmcgYW4gb3B0aW9uIHRoYXQgdGVsbHMgdGhlCisg
ICAgICAgICAgICAgICAgIyBsb2dnaW5nIGZyYW1ld29yayB0aGF0IHRoZSBpbmRlbnRhdGlvbiBk
b2Vzbid0CisgICAgICAgICAgICAgICAgIyBjaGFuZ2UuIFRoaXMgYWxsb3dzIHRvIGNvbXB1dGUg
dGhlIGluZGVudGF0aW9uIG9ubHkgb25jZS4KKyAgICAgICAgICAgICAgICBpbmRlbnRhdGlvbiA9
IF9yZW1vdmVfYW5zaV9lc2NhcGVfc2VxdWVuY2VzKGZvcm1hdHRlZCkuZmluZChsaW5lc1swXSkK
KyAgICAgICAgICAgICAgICBsaW5lc1swXSA9IGZvcm1hdHRlZAorICAgICAgICAgICAgICAgIHJl
dHVybiAoIlxuIiArICIgIiAqIGluZGVudGF0aW9uKS5qb2luKGxpbmVzKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZm10ICUgcmVjb3JkLl9fZGljdF9f
CisKKwogZGVmIGdldF9vcHRpb25faW5pKGNvbmZpZywgKm5hbWVzKToKICAgICBmb3IgbmFtZSBp
biBuYW1lczoKICAgICAgICAgcmV0ID0gY29uZmlnLmdldG9wdGlvbihuYW1lKSAgIyAnZGVmYXVs
dCcgYXJnIHdvbid0IHdvcmsgYXMgZXhwZWN0ZWQKQEAgLTIxMiw3ICsyNTIsOCBAQCBjbGFzcyBM
b2dDYXB0dXJlRml4dHVyZShvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpdGVtKToK
ICAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyBmdW5jYXJnLiIiIgogICAgICAgICBzZWxmLl9pdGVt
ID0gaXRlbQotICAgICAgICBzZWxmLl9pbml0aWFsX2xvZ19sZXZlbHMgPSB7fSAgIyB0eXBlOiBE
aWN0W3N0ciwgaW50XSAjIGRpY3Qgb2YgbG9nIG5hbWUgLT4gbG9nIGxldmVsCisgICAgICAgICMg
ZGljdCBvZiBsb2cgbmFtZSAtPiBsb2cgbGV2ZWwKKyAgICAgICAgc2VsZi5faW5pdGlhbF9sb2df
bGV2ZWxzID0ge30gICMgRGljdFtzdHIsIGludF0KIAogICAgIGRlZiBfZmluYWxpemUoc2VsZik6
CiAgICAgICAgICIiIkZpbmFsaXplcyB0aGUgZml4dHVyZS4KQEAgLTI1MSw4ICsyOTIsOCBAQCBj
bGFzcyBMb2dDYXB0dXJlRml4dHVyZShvYmplY3QpOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVm
IHRleHQoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIGxvZyB0ZXh0LiIiIgotICAgICAg
ICByZXR1cm4gc2VsZi5oYW5kbGVyLnN0cmVhbS5nZXR2YWx1ZSgpCisgICAgICAgICIiIlJldHVy
bnMgdGhlIGZvcm1hdHRlZCBsb2cgdGV4dC4iIiIKKyAgICAgICAgcmV0dXJuIF9yZW1vdmVfYW5z
aV9lc2NhcGVfc2VxdWVuY2VzKHNlbGYuaGFuZGxlci5zdHJlYW0uZ2V0dmFsdWUoKSkKIAogICAg
IEBwcm9wZXJ0eQogICAgIGRlZiByZWNvcmRzKHNlbGYpOgpAQCAtMjYxLDcgKzMwMiw3IEBAIGNs
YXNzIExvZ0NhcHR1cmVGaXh0dXJlKG9iamVjdCk6CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYg
cmVjb3JkX3R1cGxlcyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgYSBzdHJp
cGVkIGRvd24gdmVyc2lvbiBvZiBsb2cgcmVjb3JkcyBpbnRlbmRlZAorICAgICAgICAiIiJSZXR1
cm5zIGEgbGlzdCBvZiBhIHN0cmlwcGVkIGRvd24gdmVyc2lvbiBvZiBsb2cgcmVjb3JkcyBpbnRl
bmRlZAogICAgICAgICBmb3IgdXNlIGluIGFzc2VydGlvbiBjb21wYXJpc29uLgogCiAgICAgICAg
IFRoZSBmb3JtYXQgb2YgdGhlIHR1cGxlIGlzOgpAQCAtMjcwLDYgKzMxMSwyMiBAQCBjbGFzcyBM
b2dDYXB0dXJlRml4dHVyZShvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIFso
ci5uYW1lLCByLmxldmVsbm8sIHIuZ2V0TWVzc2FnZSgpKSBmb3IgciBpbiBzZWxmLnJlY29yZHNd
CiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbWVzc2FnZXMoc2VsZik6CisgICAgICAgICIiIlJl
dHVybnMgYSBsaXN0IG9mIGZvcm1hdC1pbnRlcnBvbGF0ZWQgbG9nIG1lc3NhZ2VzLgorCisgICAg
ICAgIFVubGlrZSAncmVjb3JkcycsIHdoaWNoIGNvbnRhaW5zIHRoZSBmb3JtYXQgc3RyaW5nIGFu
ZCBwYXJhbWV0ZXJzIGZvciBpbnRlcnBvbGF0aW9uLCBsb2cgbWVzc2FnZXMgaW4gdGhpcyBsaXN0
CisgICAgICAgIGFyZSBhbGwgaW50ZXJwb2xhdGVkLgorICAgICAgICBVbmxpa2UgJ3RleHQnLCB3
aGljaCBjb250YWlucyB0aGUgb3V0cHV0IGZyb20gdGhlIGhhbmRsZXIsIGxvZyBtZXNzYWdlcyBp
biB0aGlzIGxpc3QgYXJlIHVuYWRvcm5lZCB3aXRoCisgICAgICAgIGxldmVscywgdGltZXN0YW1w
cywgZXRjLCBtYWtpbmcgZXhhY3QgY29tcGFyaXNvbnMgbW9yZSByZWxpYWJsZS4KKworICAgICAg
ICBOb3RlIHRoYXQgdHJhY2ViYWNrIG9yIHN0YWNrIGluZm8gKGZyb20gOmZ1bmM6YGxvZ2dpbmcu
ZXhjZXB0aW9uYCBvciB0aGUgYGV4Y19pbmZvYCBvciBgc3RhY2tfaW5mb2AgYXJndW1lbnRzCisg
ICAgICAgIHRvIHRoZSBsb2dnaW5nIGZ1bmN0aW9ucykgaXMgbm90IGluY2x1ZGVkLCBhcyB0aGlz
IGlzIGFkZGVkIGJ5IHRoZSBmb3JtYXR0ZXIgaW4gdGhlIGhhbmRsZXIuCisKKyAgICAgICAgLi4g
dmVyc2lvbmFkZGVkOjogMy43CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gW3IuZ2V0TWVz
c2FnZSgpIGZvciByIGluIHNlbGYucmVjb3Jkc10KKwogICAgIGRlZiBjbGVhcihzZWxmKToKICAg
ICAgICAgIiIiUmVzZXQgdGhlIGxpc3Qgb2YgbG9nIHJlY29yZHMgYW5kIHRoZSBjYXB0dXJlZCBs
b2cgdGV4dC4iIiIKICAgICAgICAgc2VsZi5oYW5kbGVyLnJlc2V0KCkKQEAgLTMxMiw3ICszNjks
NyBAQCBjbGFzcyBMb2dDYXB0dXJlRml4dHVyZShvYmplY3QpOgogZGVmIGNhcGxvZyhyZXF1ZXN0
KToKICAgICAiIiJBY2Nlc3MgYW5kIGNvbnRyb2wgbG9nIGNhcHR1cmluZy4KIAotICAgIENhcHR1
cmVkIGxvZ3MgYXJlIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgbWV0aG9kczo6Cisg
ICAgQ2FwdHVyZWQgbG9ncyBhcmUgYXZhaWxhYmxlIHRocm91Z2ggdGhlIGZvbGxvd2luZyBwcm9w
ZXJ0aWVzL21ldGhvZHM6OgogCiAgICAgKiBjYXBsb2cudGV4dCAgICAgICAgICAgIC0+IHN0cmlu
ZyBjb250YWluaW5nIGZvcm1hdHRlZCBsb2cgb3V0cHV0CiAgICAgKiBjYXBsb2cucmVjb3JkcyAg
ICAgICAgIC0+IGxpc3Qgb2YgbG9nZ2luZy5Mb2dSZWNvcmQgaW5zdGFuY2VzCkBAIC0zNDksMTUg
KzQwNiwxMiBAQCBkZWYgZ2V0X2FjdHVhbF9sb2dfbGV2ZWwoY29uZmlnLCAqc2V0dGluZ19uYW1l
cyk6CiAgICAgICAgICkKIAogCisjIHJ1biBhZnRlciB0ZXJtaW5hbHJlcG9ydGVyL2NhcHR1cmVt
YW5hZ2VyIGFyZSBjb25maWd1cmVkCitAcHl0ZXN0Lmhvb2tpbXBsKHRyeWxhc3Q9VHJ1ZSkKIGRl
ZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CiAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVn
aXN0ZXIoTG9nZ2luZ1BsdWdpbihjb25maWcpLCAibG9nZ2luZy1wbHVnaW4iKQogCiAKLUBjb250
ZXh0bWFuYWdlcgotZGVmIF9kdW1teV9jb250ZXh0X21hbmFnZXIoKToKLSAgICB5aWVsZAotCi0K
IGNsYXNzIExvZ2dpbmdQbHVnaW4ob2JqZWN0KToKICAgICAiIiJBdHRhY2hlcyB0byB0aGUgbG9n
Z2luZyBtb2R1bGUgYW5kIGNhcHR1cmVzIGxvZyBtZXNzYWdlcyBmb3IgZWFjaCB0ZXN0LgogICAg
ICIiIgpAQCAtMzcwLDUxICs0MjQsMTMxIEBAIGNsYXNzIExvZ2dpbmdQbHVnaW4ob2JqZWN0KToK
ICAgICAgICAgIiIiCiAgICAgICAgIHNlbGYuX2NvbmZpZyA9IGNvbmZpZwogCi0gICAgICAgICMg
ZW5hYmxlIHZlcmJvc2Ugb3V0cHV0IGF1dG9tYXRpY2FsbHkgaWYgbGl2ZSBsb2dnaW5nIGlzIGVu
YWJsZWQKLSAgICAgICAgaWYgc2VsZi5fbG9nX2NsaV9lbmFibGVkKCkgYW5kIG5vdCBjb25maWcu
Z2V0b3B0aW9uKCJ2ZXJib3NlIik6Ci0gICAgICAgICAgICAjIHNhbml0eSBjaGVjazogdGVybWlu
YWwgcmVwb3J0ZXIgc2hvdWxkIG5vdCBoYXZlIGJlZW4gbG9hZGVkIGF0IHRoaXMgcG9pbnQKLSAg
ICAgICAgICAgIGFzc2VydCBzZWxmLl9jb25maWcucGx1Z2lubWFuYWdlci5nZXRfcGx1Z2luKCJ0
ZXJtaW5hbHJlcG9ydGVyIikgaXMgTm9uZQotICAgICAgICAgICAgY29uZmlnLm9wdGlvbi52ZXJi
b3NlID0gMQotCiAgICAgICAgIHNlbGYucHJpbnRfbG9ncyA9IGdldF9vcHRpb25faW5pKGNvbmZp
ZywgImxvZ19wcmludCIpCi0gICAgICAgIHNlbGYuZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0
ZXIoCisgICAgICAgIHNlbGYuZm9ybWF0dGVyID0gc2VsZi5fY3JlYXRlX2Zvcm1hdHRlcigKICAg
ICAgICAgICAgIGdldF9vcHRpb25faW5pKGNvbmZpZywgImxvZ19mb3JtYXQiKSwKICAgICAgICAg
ICAgIGdldF9vcHRpb25faW5pKGNvbmZpZywgImxvZ19kYXRlX2Zvcm1hdCIpLAogICAgICAgICAp
CiAgICAgICAgIHNlbGYubG9nX2xldmVsID0gZ2V0X2FjdHVhbF9sb2dfbGV2ZWwoY29uZmlnLCAi
bG9nX2xldmVsIikKIAorICAgICAgICBzZWxmLmxvZ19maWxlX2xldmVsID0gZ2V0X2FjdHVhbF9s
b2dfbGV2ZWwoY29uZmlnLCAibG9nX2ZpbGVfbGV2ZWwiKQorICAgICAgICBzZWxmLmxvZ19maWxl
X2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKGNvbmZpZywgImxvZ19maWxlX2Zvcm1hdCIsICJsb2df
Zm9ybWF0IikKKyAgICAgICAgc2VsZi5sb2dfZmlsZV9kYXRlX2Zvcm1hdCA9IGdldF9vcHRpb25f
aW5pKAorICAgICAgICAgICAgY29uZmlnLCAibG9nX2ZpbGVfZGF0ZV9mb3JtYXQiLCAibG9nX2Rh
dGVfZm9ybWF0IgorICAgICAgICApCisgICAgICAgIHNlbGYubG9nX2ZpbGVfZm9ybWF0dGVyID0g
bG9nZ2luZy5Gb3JtYXR0ZXIoCisgICAgICAgICAgICBzZWxmLmxvZ19maWxlX2Zvcm1hdCwgZGF0
ZWZtdD1zZWxmLmxvZ19maWxlX2RhdGVfZm9ybWF0CisgICAgICAgICkKKwogICAgICAgICBsb2df
ZmlsZSA9IGdldF9vcHRpb25faW5pKGNvbmZpZywgImxvZ19maWxlIikKICAgICAgICAgaWYgbG9n
X2ZpbGU6Ci0gICAgICAgICAgICBzZWxmLmxvZ19maWxlX2xldmVsID0gZ2V0X2FjdHVhbF9sb2df
bGV2ZWwoY29uZmlnLCAibG9nX2ZpbGVfbGV2ZWwiKQotCi0gICAgICAgICAgICBsb2dfZmlsZV9m
b3JtYXQgPSBnZXRfb3B0aW9uX2luaShjb25maWcsICJsb2dfZmlsZV9mb3JtYXQiLCAibG9nX2Zv
cm1hdCIpCi0gICAgICAgICAgICBsb2dfZmlsZV9kYXRlX2Zvcm1hdCA9IGdldF9vcHRpb25faW5p
KAotICAgICAgICAgICAgICAgIGNvbmZpZywgImxvZ19maWxlX2RhdGVfZm9ybWF0IiwgImxvZ19k
YXRlX2Zvcm1hdCIKKyAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVfaGFuZGxlciA9IGxvZ2dpbmcu
RmlsZUhhbmRsZXIoCisgICAgICAgICAgICAgICAgbG9nX2ZpbGUsIG1vZGU9InciLCBlbmNvZGlu
Zz0iVVRGLTgiCiAgICAgICAgICAgICApCi0gICAgICAgICAgICAjIEVhY2ggcHl0ZXN0IHJ1bnRl
c3RzIHNlc3Npb24gd2lsbCB3cml0ZSB0byBhIGNsZWFuIGxvZ2ZpbGUKLSAgICAgICAgICAgIHNl
bGYubG9nX2ZpbGVfaGFuZGxlciA9IGxvZ2dpbmcuRmlsZUhhbmRsZXIobG9nX2ZpbGUsIG1vZGU9
InciKQotICAgICAgICAgICAgbG9nX2ZpbGVfZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIo
Ci0gICAgICAgICAgICAgICAgbG9nX2ZpbGVfZm9ybWF0LCBkYXRlZm10PWxvZ19maWxlX2RhdGVf
Zm9ybWF0Ci0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmxvZ19maWxlX2hhbmRsZXIu
c2V0Rm9ybWF0dGVyKGxvZ19maWxlX2Zvcm1hdHRlcikKKyAgICAgICAgICAgIHNlbGYubG9nX2Zp
bGVfaGFuZGxlci5zZXRGb3JtYXR0ZXIoc2VsZi5sb2dfZmlsZV9mb3JtYXR0ZXIpCiAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICBzZWxmLmxvZ19maWxlX2hhbmRsZXIgPSBOb25lCiAKLSAgICAg
ICAgIyBpbml0aWFsaXplZCBkdXJpbmcgcHl0ZXN0X3J1bnRlc3Rsb29wCiAgICAgICAgIHNlbGYu
bG9nX2NsaV9oYW5kbGVyID0gTm9uZQogCisgICAgICAgIHNlbGYubGl2ZV9sb2dzX2NvbnRleHQg
PSBsYW1iZGE6IGR1bW15X2NvbnRleHRfbWFuYWdlcigpCisgICAgICAgICMgTm90ZSB0aGF0IHRo
ZSBsYW1iZGEgZm9yIHRoZSBsaXZlX2xvZ3NfY29udGV4dCBpcyBuZWVkZWQgYmVjYXVzZQorICAg
ICAgICAjIGxpdmVfbG9nc19jb250ZXh0IGNhbiBvdGhlcndpc2Ugbm90IGJlIGVudGVyZWQgbXVs
dGlwbGUgdGltZXMgZHVlCisgICAgICAgICMgdG8gbGltaXRhdGlvbnMgb2YgY29udGV4dGxpYi5j
b250ZXh0bWFuYWdlci4KKworICAgICAgICBpZiBzZWxmLl9sb2dfY2xpX2VuYWJsZWQoKToKKyAg
ICAgICAgICAgIHNlbGYuX3NldHVwX2NsaV9sb2dnaW5nKCkKKworICAgIGRlZiBfY3JlYXRlX2Zv
cm1hdHRlcihzZWxmLCBsb2dfZm9ybWF0LCBsb2dfZGF0ZV9mb3JtYXQpOgorICAgICAgICAjIGNv
bG9yIG9wdGlvbiBkb2Vzbid0IGV4aXN0IGlmIHRlcm1pbmFsIHBsdWdpbiBpcyBkaXNhYmxlZAor
ICAgICAgICBjb2xvciA9IGdldGF0dHIoc2VsZi5fY29uZmlnLm9wdGlvbiwgImNvbG9yIiwgIm5v
IikKKyAgICAgICAgaWYgY29sb3IgIT0gIm5vIiBhbmQgQ29sb3JlZExldmVsRm9ybWF0dGVyLkxF
VkVMTkFNRV9GTVRfUkVHRVguc2VhcmNoKAorICAgICAgICAgICAgbG9nX2Zvcm1hdAorICAgICAg
ICApOgorICAgICAgICAgICAgZm9ybWF0dGVyID0gQ29sb3JlZExldmVsRm9ybWF0dGVyKAorICAg
ICAgICAgICAgICAgIGNyZWF0ZV90ZXJtaW5hbF93cml0ZXIoc2VsZi5fY29uZmlnKSwgbG9nX2Zv
cm1hdCwgbG9nX2RhdGVfZm9ybWF0CisgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBmb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcihsb2dfZm9ybWF0LCBsb2dfZGF0
ZV9mb3JtYXQpCisKKyAgICAgICAgaWYgbm90IHNpeC5QWTI6CisgICAgICAgICAgICBmb3JtYXR0
ZXIuX3N0eWxlID0gUGVyY2VudFN0eWxlTXVsdGlsaW5lKGZvcm1hdHRlci5fc3R5bGUuX2ZtdCkK
KyAgICAgICAgcmV0dXJuIGZvcm1hdHRlcgorCisgICAgZGVmIF9zZXR1cF9jbGlfbG9nZ2luZyhz
ZWxmKToKKyAgICAgICAgY29uZmlnID0gc2VsZi5fY29uZmlnCisgICAgICAgIHRlcm1pbmFsX3Jl
cG9ydGVyID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigidGVybWluYWxyZXBvcnRl
ciIpCisgICAgICAgIGlmIHRlcm1pbmFsX3JlcG9ydGVyIGlzIE5vbmU6CisgICAgICAgICAgICAj
IHRlcm1pbmFsIHJlcG9ydGVyIGlzIGRpc2FibGVkIGUuZy4gYnkgcHl0ZXN0LXhkaXN0LgorICAg
ICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgY2FwdHVyZV9tYW5hZ2VyID0gY29uZmlnLnBsdWdp
bm1hbmFnZXIuZ2V0X3BsdWdpbigiY2FwdHVyZW1hbmFnZXIiKQorICAgICAgICAjIGlmIGNhcHR1
cmVtYW5hZ2VyIHBsdWdpbiBpcyBkaXNhYmxlZCwgbGl2ZSBsb2dnaW5nIHN0aWxsIHdvcmtzLgor
ICAgICAgICBsb2dfY2xpX2hhbmRsZXIgPSBfTGl2ZUxvZ2dpbmdTdHJlYW1IYW5kbGVyKHRlcm1p
bmFsX3JlcG9ydGVyLCBjYXB0dXJlX21hbmFnZXIpCisKKyAgICAgICAgbG9nX2NsaV9mb3JtYXR0
ZXIgPSBzZWxmLl9jcmVhdGVfZm9ybWF0dGVyKAorICAgICAgICAgICAgZ2V0X29wdGlvbl9pbmko
Y29uZmlnLCAibG9nX2NsaV9mb3JtYXQiLCAibG9nX2Zvcm1hdCIpLAorICAgICAgICAgICAgZ2V0
X29wdGlvbl9pbmkoY29uZmlnLCAibG9nX2NsaV9kYXRlX2Zvcm1hdCIsICJsb2dfZGF0ZV9mb3Jt
YXQiKSwKKyAgICAgICAgKQorCisgICAgICAgIGxvZ19jbGlfbGV2ZWwgPSBnZXRfYWN0dWFsX2xv
Z19sZXZlbChjb25maWcsICJsb2dfY2xpX2xldmVsIiwgImxvZ19sZXZlbCIpCisgICAgICAgIHNl
bGYubG9nX2NsaV9oYW5kbGVyID0gbG9nX2NsaV9oYW5kbGVyCisgICAgICAgIHNlbGYubGl2ZV9s
b2dzX2NvbnRleHQgPSBsYW1iZGE6IGNhdGNoaW5nX2xvZ3MoCisgICAgICAgICAgICBsb2dfY2xp
X2hhbmRsZXIsIGZvcm1hdHRlcj1sb2dfY2xpX2Zvcm1hdHRlciwgbGV2ZWw9bG9nX2NsaV9sZXZl
bAorICAgICAgICApCisKKyAgICBkZWYgc2V0X2xvZ19wYXRoKHNlbGYsIGZuYW1lKToKKyAgICAg
ICAgIiIiUHVibGljIG1ldGhvZCwgd2hpY2ggY2FuIHNldCBmaWxlbmFtZSBwYXJhbWV0ZXIgZm9y
CisgICAgICAgIExvZ2dpbmcuRmlsZUhhbmRsZXIoKS4gQWxzbyBjcmVhdGVzIHBhcmVudCBkaXJl
Y3RvcnkgaWYKKyAgICAgICAgaXQgZG9lcyBub3QgZXhpc3QuCisKKyAgICAgICAgLi4gd2Fybmlu
Zzo6CisgICAgICAgICAgICBQbGVhc2UgY29uc2lkZXJlZCBhcyBhbiBleHBlcmltZW50YWwgQVBJ
LgorICAgICAgICAiIiIKKyAgICAgICAgZm5hbWUgPSBQYXRoKGZuYW1lKQorCisgICAgICAgIGlm
IG5vdCBmbmFtZS5pc19hYnNvbHV0ZSgpOgorICAgICAgICAgICAgZm5hbWUgPSBQYXRoKHNlbGYu
X2NvbmZpZy5yb290ZGlyLCBmbmFtZSkKKworICAgICAgICBpZiBub3QgZm5hbWUucGFyZW50LmV4
aXN0cygpOgorICAgICAgICAgICAgZm5hbWUucGFyZW50Lm1rZGlyKGV4aXN0X29rPVRydWUsIHBh
cmVudHM9VHJ1ZSkKKworICAgICAgICBzZWxmLmxvZ19maWxlX2hhbmRsZXIgPSBsb2dnaW5nLkZp
bGVIYW5kbGVyKAorICAgICAgICAgICAgc3RyKGZuYW1lKSwgbW9kZT0idyIsIGVuY29kaW5nPSJV
VEYtOCIKKyAgICAgICAgKQorICAgICAgICBzZWxmLmxvZ19maWxlX2hhbmRsZXIuc2V0Rm9ybWF0
dGVyKHNlbGYubG9nX2ZpbGVfZm9ybWF0dGVyKQorCiAgICAgZGVmIF9sb2dfY2xpX2VuYWJsZWQo
c2VsZik6CiAgICAgICAgICIiIlJldHVybiBUcnVlIGlmIGxvZ19jbGkgc2hvdWxkIGJlIGNvbnNp
ZGVyZWQgZW5hYmxlZCwgZWl0aGVyIGV4cGxpY2l0bHkKICAgICAgICAgb3IgYmVjYXVzZSAtLWxv
Zy1jbGktbGV2ZWwgd2FzIGdpdmVuIGluIHRoZSBjb21tYW5kLWxpbmUuCiAgICAgICAgICIiIgog
ICAgICAgICByZXR1cm4gc2VsZi5fY29uZmlnLmdldG9wdGlvbigKICAgICAgICAgICAgICItLWxv
Zy1jbGktbGV2ZWwiCi0gICAgICAgICkgaXMgbm90IE5vbmUgb3Igc2VsZi5fY29uZmlnLmdldGlu
aSgKLSAgICAgICAgICAgICJsb2dfY2xpIgotICAgICAgICApCisgICAgICAgICkgaXMgbm90IE5v
bmUgb3Igc2VsZi5fY29uZmlnLmdldGluaSgibG9nX2NsaSIpCisKKyAgICBAcHl0ZXN0Lmhvb2tp
bXBsKGhvb2t3cmFwcGVyPVRydWUsIHRyeWZpcnN0PVRydWUpCisgICAgZGVmIHB5dGVzdF9jb2xs
ZWN0aW9uKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYubGl2ZV9sb2dzX2NvbnRleHQoKToKKyAg
ICAgICAgICAgIGlmIHNlbGYubG9nX2NsaV9oYW5kbGVyOgorICAgICAgICAgICAgICAgIHNlbGYu
bG9nX2NsaV9oYW5kbGVyLnNldF93aGVuKCJjb2xsZWN0aW9uIikKKworICAgICAgICAgICAgaWYg
c2VsZi5sb2dfZmlsZV9oYW5kbGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHdpdGgg
Y2F0Y2hpbmdfbG9ncyhzZWxmLmxvZ19maWxlX2hhbmRsZXIsIGxldmVsPXNlbGYubG9nX2ZpbGVf
bGV2ZWwpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICB5aWVsZAogCiAgICAgQGNvbnRleHRtYW5hZ2VyCiAgICAgZGVmIF9ydW50
ZXN0X2ZvcihzZWxmLCBpdGVtLCB3aGVuKToKKyAgICAgICAgd2l0aCBzZWxmLl9ydW50ZXN0X2Zv
cl9tYWluKGl0ZW0sIHdoZW4pOgorICAgICAgICAgICAgaWYgc2VsZi5sb2dfZmlsZV9oYW5kbGVy
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHdpdGggY2F0Y2hpbmdfbG9ncyhzZWxmLmxv
Z19maWxlX2hhbmRsZXIsIGxldmVsPXNlbGYubG9nX2ZpbGVfbGV2ZWwpOgorICAgICAgICAgICAg
ICAgICAgICB5aWVsZAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB5aWVsZAor
CisgICAgQGNvbnRleHRtYW5hZ2VyCisgICAgZGVmIF9ydW50ZXN0X2Zvcl9tYWluKHNlbGYsIGl0
ZW0sIHdoZW4pOgogICAgICAgICAiIiJJbXBsZW1lbnRzIHRoZSBpbnRlcm5hbHMgb2YgcHl0ZXN0
X3J1bnRlc3RfeHh4KCkgaG9vay4iIiIKICAgICAgICAgd2l0aCBjYXRjaGluZ19sb2dzKAogICAg
ICAgICAgICAgTG9nQ2FwdHVyZUhhbmRsZXIoKSwgZm9ybWF0dGVyPXNlbGYuZm9ybWF0dGVyLCBs
ZXZlbD1zZWxmLmxvZ19sZXZlbApAQCAtNDMzLDggKzU2Nyw4IEBAIGNsYXNzIExvZ2dpbmdQbHVn
aW4ob2JqZWN0KToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB5aWVsZCAgIyBy
dW4gdGVzdAogICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBkZWwgaXRlbS5j
YXRjaF9sb2dfaGFuZGxlcgogICAgICAgICAgICAgICAgIGlmIHdoZW4gPT0gInRlYXJkb3duIjoK
KyAgICAgICAgICAgICAgICAgICAgZGVsIGl0ZW0uY2F0Y2hfbG9nX2hhbmRsZXIKICAgICAgICAg
ICAgICAgICAgICAgZGVsIGl0ZW0uY2F0Y2hfbG9nX2hhbmRsZXJzCiAKICAgICAgICAgICAgIGlm
IHNlbGYucHJpbnRfbG9nczoKQEAgLTQ3MCw1OCArNjA0LDU3IEBAIGNsYXNzIExvZ2dpbmdQbHVn
aW4ob2JqZWN0KToKICAgICAgICAgICAgIHlpZWxkCiAKICAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhv
b2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0bG9vcChzZWxmLCBzZXNzaW9u
KToKLSAgICAgICAgIiIiUnVucyBhbGwgY29sbGVjdGVkIHRlc3QgaXRlbXMuIiIiCi0gICAgICAg
IHNlbGYuX3NldHVwX2NsaV9sb2dnaW5nKCkKLSAgICAgICAgd2l0aCBzZWxmLmxpdmVfbG9nc19j
b250ZXh0OgorICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQoc2VsZik6CisgICAgICAg
IHdpdGggc2VsZi5fcnVudGVzdF9mb3IoTm9uZSwgImxvZ3JlcG9ydCIpOgorICAgICAgICAgICAg
eWllbGQKKworICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSwgdHJ5Zmlyc3Q9
VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2VsZik6CisgICAgICAgIHdpdGgg
c2VsZi5saXZlX2xvZ3NfY29udGV4dCgpOgorICAgICAgICAgICAgaWYgc2VsZi5sb2dfY2xpX2hh
bmRsZXI6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dfY2xpX2hhbmRsZXIuc2V0X3doZW4oInNl
c3Npb25maW5pc2giKQogICAgICAgICAgICAgaWYgc2VsZi5sb2dfZmlsZV9oYW5kbGVyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgICAgIHdpdGggY2xvc2luZyhzZWxmLmxvZ19maWxlX2hhbmRs
ZXIpOgorICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgd2l0aCBjYXRj
aGluZ19sb2dzKAogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dfZmlsZV9oYW5kbGVy
LCBsZXZlbD1zZWxmLmxvZ19maWxlX2xldmVsCiAgICAgICAgICAgICAgICAgICAgICk6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB5aWVsZCAgIyBydW4gYWxsIHRoZSB0ZXN0cworICAgICAgICAg
ICAgICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAg
ICAgICAgICAgICAjIENsb3NlIHRoZSBGaWxlSGFuZGxlciBleHBsaWNpdGx5LgorICAgICAgICAg
ICAgICAgICAgICAjIChsb2dnaW5nLnNodXRkb3duIG1pZ2h0IGhhdmUgbG9zdCB0aGUgd2Vha3Jl
Zj8hKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ19maWxlX2hhbmRsZXIuY2xvc2UoKQog
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB5aWVsZCAgIyBydW4gYWxsIHRoZSB0
ZXN0cworICAgICAgICAgICAgICAgIHlpZWxkCiAKLSAgICBkZWYgX3NldHVwX2NsaV9sb2dnaW5n
KHNlbGYpOgotICAgICAgICAiIiJTZXRzIHVwIHRoZSBoYW5kbGVyIGFuZCBsb2dnZXIgZm9yIHRo
ZSBMaXZlIExvZ3MgZmVhdHVyZSwgaWYgZW5hYmxlZC4KKyAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhv
b2t3cmFwcGVyPVRydWUsIHRyeWZpcnN0PVRydWUpCisgICAgZGVmIHB5dGVzdF9zZXNzaW9uc3Rh
cnQoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5saXZlX2xvZ3NfY29udGV4dCgpOgorICAgICAg
ICAgICAgaWYgc2VsZi5sb2dfY2xpX2hhbmRsZXI6CisgICAgICAgICAgICAgICAgc2VsZi5sb2df
Y2xpX2hhbmRsZXIuc2V0X3doZW4oInNlc3Npb25zdGFydCIpCisgICAgICAgICAgICBpZiBzZWxm
LmxvZ19maWxlX2hhbmRsZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgd2l0aCBjYXRj
aGluZ19sb2dzKHNlbGYubG9nX2ZpbGVfaGFuZGxlciwgbGV2ZWw9c2VsZi5sb2dfZmlsZV9sZXZl
bCk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHlpZWxkCiAKLSAgICAgICAgVGhpcyBtdXN0IGJlIGRvbmUgcmlnaHQgYmVmb3Jl
IHN0YXJ0aW5nIHRoZSBsb29wIHNvIHdlIGNhbiBhY2Nlc3MgdGhlIHRlcm1pbmFsIHJlcG9ydGVy
IHBsdWdpbi4KLSAgICAgICAgIiIiCi0gICAgICAgIHRlcm1pbmFsX3JlcG9ydGVyID0gc2VsZi5f
Y29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigidGVybWluYWxyZXBvcnRlciIpCi0gICAg
ICAgIGlmIHNlbGYuX2xvZ19jbGlfZW5hYmxlZCgpIGFuZCB0ZXJtaW5hbF9yZXBvcnRlciBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgIGNhcHR1cmVfbWFuYWdlciA9IHNlbGYuX2NvbmZpZy5wbHVn
aW5tYW5hZ2VyLmdldF9wbHVnaW4oImNhcHR1cmVtYW5hZ2VyIikKLSAgICAgICAgICAgIGxvZ19j
bGlfaGFuZGxlciA9IF9MaXZlTG9nZ2luZ1N0cmVhbUhhbmRsZXIoCi0gICAgICAgICAgICAgICAg
dGVybWluYWxfcmVwb3J0ZXIsIGNhcHR1cmVfbWFuYWdlcgotICAgICAgICAgICAgKQotICAgICAg
ICAgICAgbG9nX2NsaV9mb3JtYXQgPSBnZXRfb3B0aW9uX2luaSgKLSAgICAgICAgICAgICAgICBz
ZWxmLl9jb25maWcsICJsb2dfY2xpX2Zvcm1hdCIsICJsb2dfZm9ybWF0IgotICAgICAgICAgICAg
KQotICAgICAgICAgICAgbG9nX2NsaV9kYXRlX2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKAotICAg
ICAgICAgICAgICAgIHNlbGYuX2NvbmZpZywgImxvZ19jbGlfZGF0ZV9mb3JtYXQiLCAibG9nX2Rh
dGVfZm9ybWF0IgotICAgICAgICAgICAgKQotICAgICAgICAgICAgaWYgKAotICAgICAgICAgICAg
ICAgIHNlbGYuX2NvbmZpZy5vcHRpb24uY29sb3IgIT0gIm5vIgotICAgICAgICAgICAgICAgIGFu
ZCBDb2xvcmVkTGV2ZWxGb3JtYXR0ZXIuTEVWRUxOQU1FX0ZNVF9SRUdFWC5zZWFyY2gobG9nX2Ns
aV9mb3JtYXQpCi0gICAgICAgICAgICApOgotICAgICAgICAgICAgICAgIGxvZ19jbGlfZm9ybWF0
dGVyID0gQ29sb3JlZExldmVsRm9ybWF0dGVyKAotICAgICAgICAgICAgICAgICAgICBjcmVhdGVf
dGVybWluYWxfd3JpdGVyKHNlbGYuX2NvbmZpZyksCi0gICAgICAgICAgICAgICAgICAgIGxvZ19j
bGlfZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICBkYXRlZm10PWxvZ19jbGlfZGF0ZV9mb3Jt
YXQsCi0gICAgICAgICAgICAgICAgKQorICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9
VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rsb29wKHNlbGYsIHNlc3Npb24pOgorICAgICAg
ICAiIiJSdW5zIGFsbCBjb2xsZWN0ZWQgdGVzdCBpdGVtcy4iIiIKKworICAgICAgICBpZiBzZXNz
aW9uLmNvbmZpZy5vcHRpb24uY29sbGVjdG9ubHk6CisgICAgICAgICAgICB5aWVsZAorICAgICAg
ICAgICAgcmV0dXJuCisKKyAgICAgICAgaWYgc2VsZi5fbG9nX2NsaV9lbmFibGVkKCkgYW5kIHNl
bGYuX2NvbmZpZy5nZXRvcHRpb24oInZlcmJvc2UiKSA8IDE6CisgICAgICAgICAgICAjIHNldHRp
bmcgdmVyYm9zZSBmbGFnIGlzIG5lZWRlZCB0byBhdm9pZCBtZXNzeSB0ZXN0IHByb2dyZXNzIG91
dHB1dAorICAgICAgICAgICAgc2VsZi5fY29uZmlnLm9wdGlvbi52ZXJib3NlID0gMQorCisgICAg
ICAgIHdpdGggc2VsZi5saXZlX2xvZ3NfY29udGV4dCgpOgorICAgICAgICAgICAgaWYgc2VsZi5s
b2dfZmlsZV9oYW5kbGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHdpdGggY2F0Y2hp
bmdfbG9ncyhzZWxmLmxvZ19maWxlX2hhbmRsZXIsIGxldmVsPXNlbGYubG9nX2ZpbGVfbGV2ZWwp
OgorICAgICAgICAgICAgICAgICAgICB5aWVsZCAgIyBydW4gYWxsIHRoZSB0ZXN0cwogICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBsb2dfY2xpX2Zvcm1hdHRlciA9IGxvZ2dpbmcu
Rm9ybWF0dGVyKAotICAgICAgICAgICAgICAgICAgICBsb2dfY2xpX2Zvcm1hdCwgZGF0ZWZtdD1s
b2dfY2xpX2RhdGVfZm9ybWF0Ci0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgbG9nX2Ns
aV9sZXZlbCA9IGdldF9hY3R1YWxfbG9nX2xldmVsKAotICAgICAgICAgICAgICAgIHNlbGYuX2Nv
bmZpZywgImxvZ19jbGlfbGV2ZWwiLCAibG9nX2xldmVsIgotICAgICAgICAgICAgKQotICAgICAg
ICAgICAgc2VsZi5sb2dfY2xpX2hhbmRsZXIgPSBsb2dfY2xpX2hhbmRsZXIKLSAgICAgICAgICAg
IHNlbGYubGl2ZV9sb2dzX2NvbnRleHQgPSBjYXRjaGluZ19sb2dzKAotICAgICAgICAgICAgICAg
IGxvZ19jbGlfaGFuZGxlciwgZm9ybWF0dGVyPWxvZ19jbGlfZm9ybWF0dGVyLCBsZXZlbD1sb2df
Y2xpX2xldmVsCi0gICAgICAgICAgICApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxm
LmxpdmVfbG9nc19jb250ZXh0ID0gX2R1bW15X2NvbnRleHRfbWFuYWdlcigpCisgICAgICAgICAg
ICAgICAgeWllbGQgICMgcnVuIGFsbCB0aGUgdGVzdHMKIAogCiBjbGFzcyBfTGl2ZUxvZ2dpbmdT
dHJlYW1IYW5kbGVyKGxvZ2dpbmcuU3RyZWFtSGFuZGxlcik6CkBAIC01NTYsOSArNjg5LDEyIEBA
IGNsYXNzIF9MaXZlTG9nZ2luZ1N0cmVhbUhhbmRsZXIobG9nZ2luZy5TdHJlYW1IYW5kbGVyKToK
ICAgICAgICAgICAgIHNlbGYuX3Rlc3Rfb3V0Y29tZV93cml0dGVuID0gRmFsc2UKIAogICAgIGRl
ZiBlbWl0KHNlbGYsIHJlY29yZCk6Ci0gICAgICAgIGlmIHNlbGYuY2FwdHVyZV9tYW5hZ2VyIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5jYXB0dXJlX21hbmFnZXIuc3VzcGVuZF9nbG9i
YWxfY2FwdHVyZSgpCi0gICAgICAgIHRyeToKKyAgICAgICAgY3R4X21hbmFnZXIgPSAoCisgICAg
ICAgICAgICBzZWxmLmNhcHR1cmVfbWFuYWdlci5nbG9iYWxfYW5kX2ZpeHR1cmVfZGlzYWJsZWQo
KQorICAgICAgICAgICAgaWYgc2VsZi5jYXB0dXJlX21hbmFnZXIKKyAgICAgICAgICAgIGVsc2Ug
ZHVtbXlfY29udGV4dF9tYW5hZ2VyKCkKKyAgICAgICAgKQorICAgICAgICB3aXRoIGN0eF9tYW5h
Z2VyOgogICAgICAgICAgICAgaWYgbm90IHNlbGYuX2ZpcnN0X3JlY29yZF9lbWl0dGVkOgogICAg
ICAgICAgICAgICAgIHNlbGYuc3RyZWFtLndyaXRlKCJcbiIpCiAgICAgICAgICAgICAgICAgc2Vs
Zi5fZmlyc3RfcmVjb3JkX2VtaXR0ZWQgPSBUcnVlCkBAIC01NzAsNiArNzA2LDMgQEAgY2xhc3Mg
X0xpdmVMb2dnaW5nU3RyZWFtSGFuZGxlcihsb2dnaW5nLlN0cmVhbUhhbmRsZXIpOgogICAgICAg
ICAgICAgICAgIHNlbGYuc3RyZWFtLnNlY3Rpb24oImxpdmUgbG9nICIgKyBzZWxmLl93aGVuLCBz
ZXA9Ii0iLCBib2xkPVRydWUpCiAgICAgICAgICAgICAgICAgc2VsZi5fc2VjdGlvbl9uYW1lX3No
b3duID0gVHJ1ZQogICAgICAgICAgICAgbG9nZ2luZy5TdHJlYW1IYW5kbGVyLmVtaXQoc2VsZiwg
cmVjb3JkKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgaWYgc2VsZi5jYXB0dXJlX21h
bmFnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5jYXB0dXJlX21hbmFnZXIu
cmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L21haW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYWluLnB5CmluZGV4IDIzNTYy
MzU4ZDdjM2EwMzQxMjAwMGU0YmRjYTA4MzJiZmI3MGU5NDcuLmE5ZDMxMGNiNjJkOWYyNTM3ODRm
MTkzMmE5MjdhOTk5NmJmZTQ2NjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0
L21haW4ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbWFpbi5weQpAQCAtMSwyMyAr
MSwzMCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIiBjb3JlIGltcGxlbWVudGF0aW9u
IG9mIHRlc3RpbmcgcHJvY2VzczogaW5pdCwgc2Vzc2lvbiwgcnVudGVzdCBsb29wLiAiIiIKLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0
aW9uCiAKIGltcG9ydCBjb250ZXh0bGliCitpbXBvcnQgZm5tYXRjaAogaW1wb3J0IGZ1bmN0b29s
cwogaW1wb3J0IG9zCiBpbXBvcnQgcGtndXRpbAotaW1wb3J0IHNpeAogaW1wb3J0IHN5cworaW1w
b3J0IHdhcm5pbmdzCiAKLWltcG9ydCBfcHl0ZXN0Ci1mcm9tIF9weXRlc3QgaW1wb3J0IG5vZGVz
Ci1pbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IGF0dHIKIGltcG9ydCBweQoraW1wb3J0IHNp
eAogCi1mcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBkaXJlY3RvcnlfYXJnLCBVc2FnZUVycm9y
LCBob29raW1wbAoraW1wb3J0IF9weXRlc3QuX2NvZGUKK2Zyb20gX3B5dGVzdCBpbXBvcnQgbm9k
ZXMKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGRpcmVjdG9yeV9hcmcKK2Zyb20gX3B5dGVz
dC5jb25maWcgaW1wb3J0IGhvb2tpbXBsCitmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBVc2Fn
ZUVycm9yCitmcm9tIF9weXRlc3QuZGVwcmVjYXRlZCBpbXBvcnQgUFlURVNUX0NPTkZJR19HTE9C
QUwKIGZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZXhpdAogZnJvbSBfcHl0ZXN0LnJ1bm5l
ciBpbXBvcnQgY29sbGVjdF9vbmVfbm9kZQogCi0KICMgZXhpdGNvZGVzIGZvciB0aGUgY29tbWFu
ZCBsaW5lCiBFWElUX09LID0gMAogRVhJVF9URVNUU0ZBSUxFRCA9IDEKQEAgLTQxLDExICs0OCw2
IEBAIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CiAgICAgICAgIHR5cGU9ImFyZ3MiLAog
ICAgICAgICBkZWZhdWx0PVtdLAogICAgICkKLSAgICAjIHBhcnNlci5hZGRpbmkoImRpcnBhdHRl
cm5zIiwKLSAgICAjICAgICJwYXR0ZXJucyBzcGVjaWZ5aW5nIHBvc3NpYmxlIGxvY2F0aW9ucyBv
ZiB0ZXN0IGZpbGVzIiwKLSAgICAjICAgIHR5cGU9ImxpbmVsaXN0IiwgZGVmYXVsdD1bIioqL3Rl
c3RfKi50eHQiLAotICAgICMgICAgICAgICAgICAiKiovdGVzdF8qLnB5IiwgIioqLypfdGVzdC5w
eSJdCi0gICAgIyApCiAgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiLCAicnVu
bmluZyBhbmQgc2VsZWN0aW9uIG9wdGlvbnMiKQogICAgIGdyb3VwLl9hZGRvcHRpb24oCiAgICAg
ICAgICIteCIsCkBAIC02NSw5ICs2NywxMCBAQCBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIp
OgogICAgICAgICBoZWxwPSJleGl0IGFmdGVyIGZpcnN0IG51bSBmYWlsdXJlcyBvciBlcnJvcnMu
IiwKICAgICApCiAgICAgZ3JvdXAuX2FkZG9wdGlvbigKKyAgICAgICAgIi0tc3RyaWN0LW1hcmtl
cnMiLAogICAgICAgICAiLS1zdHJpY3QiLAogICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAot
ICAgICAgICBoZWxwPSJtYXJrcyBub3QgcmVnaXN0ZXJlZCBpbiBjb25maWd1cmF0aW9uIGZpbGUg
cmFpc2UgZXJyb3JzLiIsCisgICAgICAgIGhlbHA9Im1hcmtlcnMgbm90IHJlZ2lzdGVyZWQgaW4g
dGhlIGBtYXJrZXJzYCBzZWN0aW9uIG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgcmFpc2UgZXJy
b3JzLiIsCiAgICAgKQogICAgIGdyb3VwLl9hZGRvcHRpb24oCiAgICAgICAgICItYyIsCkBAIC0x
MTEsNiArMTE0LDEyIEBAIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CiAgICAgICAgIG1l
dGF2YXI9InBhdGgiLAogICAgICAgICBoZWxwPSJpZ25vcmUgcGF0aCBkdXJpbmcgY29sbGVjdGlv
biAobXVsdGktYWxsb3dlZCkuIiwKICAgICApCisgICAgZ3JvdXAuYWRkb3B0aW9uKAorICAgICAg
ICAiLS1pZ25vcmUtZ2xvYiIsCisgICAgICAgIGFjdGlvbj0iYXBwZW5kIiwKKyAgICAgICAgbWV0
YXZhcj0icGF0aCIsCisgICAgICAgIGhlbHA9Imlnbm9yZSBwYXRoIHBhdHRlcm4gZHVyaW5nIGNv
bGxlY3Rpb24gKG11bHRpLWFsbG93ZWQpLiIsCisgICAgKQogICAgIGdyb3VwLmFkZG9wdGlvbigK
ICAgICAgICAgIi0tZGVzZWxlY3QiLAogICAgICAgICBhY3Rpb249ImFwcGVuZCIsCkBAIC0xNTYs
MTIgKzE2NSwzMSBAQCBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgogICAgICAgICBkZXN0
PSJiYXNldGVtcCIsCiAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKICAgICAgICAgbWV0YXZhcj0iZGly
IiwKLSAgICAgICAgaGVscD0iYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciB0aGlzIHRlc3Qg
cnVuLiIsCisgICAgICAgIGhlbHA9KAorICAgICAgICAgICAgImJhc2UgdGVtcG9yYXJ5IGRpcmVj
dG9yeSBmb3IgdGhpcyB0ZXN0IHJ1bi4iCisgICAgICAgICAgICAiKHdhcm5pbmc6IHRoaXMgZGly
ZWN0b3J5IGlzIHJlbW92ZWQgaWYgaXQgZXhpc3RzKSIKKyAgICAgICAgKSwKICAgICApCiAKIAor
Y2xhc3MgX0NvbmZpZ0RlcHJlY2F0ZWQob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
Y29uZmlnKToKKyAgICAgICAgc2VsZi5fX2RpY3RfX1siX2NvbmZpZyJdID0gY29uZmlnCisKKyAg
ICBkZWYgX19nZXRhdHRyX18oc2VsZiwgYXR0cik6CisgICAgICAgIHdhcm5pbmdzLndhcm4oUFlU
RVNUX0NPTkZJR19HTE9CQUwsIHN0YWNrbGV2ZWw9MikKKyAgICAgICAgcmV0dXJuIGdldGF0dHIo
c2VsZi5fY29uZmlnLCBhdHRyKQorCisgICAgZGVmIF9fc2V0YXR0cl9fKHNlbGYsIGF0dHIsIHZh
bCk6CisgICAgICAgIHdhcm5pbmdzLndhcm4oUFlURVNUX0NPTkZJR19HTE9CQUwsIHN0YWNrbGV2
ZWw9MikKKyAgICAgICAgcmV0dXJuIHNldGF0dHIoc2VsZi5fY29uZmlnLCBhdHRyLCB2YWwpCisK
KyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAie30oeyFyfSkiLmZvcm1h
dCh0eXBlKHNlbGYpLl9fbmFtZV9fLCBzZWxmLl9jb25maWcpCisKKwogZGVmIHB5dGVzdF9jb25m
aWd1cmUoY29uZmlnKToKLSAgICBfX2ltcG9ydF9fKCJweXRlc3QiKS5jb25maWcgPSBjb25maWcg
ICMgY29tcGF0aWJpbGl0eQorICAgIF9faW1wb3J0X18oInB5dGVzdCIpLmNvbmZpZyA9IF9Db25m
aWdEZXByZWNhdGVkKGNvbmZpZykgICMgY29tcGF0aWJpbGl0eQogCiAKIGRlZiB3cmFwX3Nlc3Np
b24oY29uZmlnLCBkb2l0KToKQEAgLTE3NywyMSArMjA1LDI4IEBAIGRlZiB3cmFwX3Nlc3Npb24o
Y29uZmlnLCBkb2l0KToKICAgICAgICAgICAgIGluaXRzdGF0ZSA9IDIKICAgICAgICAgICAgIHNl
c3Npb24uZXhpdHN0YXR1cyA9IGRvaXQoY29uZmlnLCBzZXNzaW9uKSBvciAwCiAgICAgICAgIGV4
Y2VwdCBVc2FnZUVycm9yOgorICAgICAgICAgICAgc2Vzc2lvbi5leGl0c3RhdHVzID0gRVhJVF9V
U0FHRUVSUk9SCiAgICAgICAgICAgICByYWlzZQogICAgICAgICBleGNlcHQgRmFpbGVkOgogICAg
ICAgICAgICAgc2Vzc2lvbi5leGl0c3RhdHVzID0gRVhJVF9URVNUU0ZBSUxFRAotICAgICAgICBl
eGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5f
Y29kZS5FeGNlcHRpb25JbmZvKCkKLSAgICAgICAgICAgIGlmIGluaXRzdGF0ZSA8IDIgYW5kIGlz
aW5zdGFuY2UoZXhjaW5mby52YWx1ZSwgZXhpdC5FeGNlcHRpb24pOgotICAgICAgICAgICAgICAg
IHN5cy5zdGRlcnIud3JpdGUoInt9OiB7fVxuIi5mb3JtYXQoZXhjaW5mby50eXBlbmFtZSwgZXhj
aW5mby52YWx1ZS5tc2cpKQorICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBleGl0
LkV4Y2VwdGlvbik6CisgICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRp
b25JbmZvLmZyb21fY3VycmVudCgpCisgICAgICAgICAgICBleGl0c3RhdHVzID0gRVhJVF9JTlRF
UlJVUFRFRAorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleGNpbmZvLnZhbHVlLCBleGl0LkV4
Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgaWYgZXhjaW5mby52YWx1ZS5yZXR1cm5jb2RlIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBleGl0c3RhdHVzID0gZXhjaW5mby52YWx1
ZS5yZXR1cm5jb2RlCisgICAgICAgICAgICAgICAgaWYgaW5pdHN0YXRlIDwgMjoKKyAgICAgICAg
ICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICJ7
fToge31cbiIuZm9ybWF0KGV4Y2luZm8udHlwZW5hbWUsIGV4Y2luZm8udmFsdWUubXNnKQorICAg
ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICBjb25maWcuaG9vay5weXRlc3Rfa2V5Ym9h
cmRfaW50ZXJydXB0KGV4Y2luZm89ZXhjaW5mbykKLSAgICAgICAgICAgIHNlc3Npb24uZXhpdHN0
YXR1cyA9IEVYSVRfSU5URVJSVVBURUQKKyAgICAgICAgICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9
IGV4aXRzdGF0dXMKICAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgICAgICBleGNpbmZv
ID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgICAgIGV4Y2luZm8gPSBf
cHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8uZnJvbV9jdXJyZW50KCkKICAgICAgICAgICAgIGNv
bmZpZy5ub3RpZnlfZXhjZXB0aW9uKGV4Y2luZm8sIGNvbmZpZy5vcHRpb24pCiAgICAgICAgICAg
ICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElUX0lOVEVSTkFMRVJST1IKICAgICAgICAgICAgIGlm
IGV4Y2luZm8uZXJyaXNpbnN0YW5jZShTeXN0ZW1FeGl0KToKLSAgICAgICAgICAgICAgICBzeXMu
c3RkZXJyLndyaXRlKCJtYWlubG9vcDogY2F1Z2h0IFNwdXJpb3VzIFN5c3RlbUV4aXQhXG4iKQor
ICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIm1haW5sb29wOiBjYXVnaHQgdW5leHBl
Y3RlZCBTeXN0ZW1FeGl0IVxuIikKIAogICAgIGZpbmFsbHk6CiAgICAgICAgIGV4Y2luZm8gPSBO
b25lICAjIEV4cGxpY2l0bHkgYnJlYWsgcmVmZXJlbmNlIGN5Y2xlLgpAQCAtMjY4LDE4ICszMDMs
MjMgQEAgZGVmIHB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoLCBjb25maWcpOgogICAgIGlmIHB5
LnBhdGgubG9jYWwocGF0aCkgaW4gaWdub3JlX3BhdGhzOgogICAgICAgICByZXR1cm4gVHJ1ZQog
Ci0gICAgYWxsb3dfaW5fdmVudiA9IGNvbmZpZy5nZXRvcHRpb24oImNvbGxlY3RfaW5fdmlydHVh
bGVudiIpCi0gICAgaWYgX2luX3ZlbnYocGF0aCkgYW5kIG5vdCBhbGxvd19pbl92ZW52OgorICAg
IGlnbm9yZV9nbG9icyA9IGNvbmZpZy5fZ2V0Y29uZnRlc3RfcGF0aGxpc3QoCisgICAgICAgICJj
b2xsZWN0X2lnbm9yZV9nbG9iIiwgcGF0aD1wYXRoLmRpcnBhdGgoKQorICAgICkKKyAgICBpZ25v
cmVfZ2xvYnMgPSBpZ25vcmVfZ2xvYnMgb3IgW10KKyAgICBleGNsdWRlZ2xvYm9wdCA9IGNvbmZp
Zy5nZXRvcHRpb24oImlnbm9yZV9nbG9iIikKKyAgICBpZiBleGNsdWRlZ2xvYm9wdDoKKyAgICAg
ICAgaWdub3JlX2dsb2JzLmV4dGVuZChbcHkucGF0aC5sb2NhbCh4KSBmb3IgeCBpbiBleGNsdWRl
Z2xvYm9wdF0pCisKKyAgICBpZiBhbnkoCisgICAgICAgIGZubWF0Y2guZm5tYXRjaChzaXgudGV4
dF90eXBlKHBhdGgpLCBzaXgudGV4dF90eXBlKGdsb2IpKQorICAgICAgICBmb3IgZ2xvYiBpbiBp
Z25vcmVfZ2xvYnMKKyAgICApOgogICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgIyBTa2lwIGR1
cGxpY2F0ZSBwYXRocy4KLSAgICBrZWVwZHVwbGljYXRlcyA9IGNvbmZpZy5nZXRvcHRpb24oImtl
ZXBkdXBsaWNhdGVzIikKLSAgICBkdXBsaWNhdGVfcGF0aHMgPSBjb25maWcucGx1Z2lubWFuYWdl
ci5fZHVwbGljYXRlcGF0aHMKLSAgICBpZiBub3Qga2VlcGR1cGxpY2F0ZXM6Ci0gICAgICAgIGlm
IHBhdGggaW4gZHVwbGljYXRlX3BhdGhzOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIGR1cGxpY2F0ZV9wYXRocy5hZGQocGF0aCkKKyAgICBhbGxv
d19pbl92ZW52ID0gY29uZmlnLmdldG9wdGlvbigiY29sbGVjdF9pbl92aXJ0dWFsZW52IikKKyAg
ICBpZiBub3QgYWxsb3dfaW5fdmVudiBhbmQgX2luX3ZlbnYocGF0aCk6CisgICAgICAgIHJldHVy
biBUcnVlCiAKICAgICByZXR1cm4gRmFsc2UKIApAQCAtMzQzLDcgKzM4Myw2IEBAIGRlZiBfcGF0
Y2hlZF9maW5kX21vZHVsZSgpOgogCiAKIGNsYXNzIEZTSG9va1Byb3h5KG9iamVjdCk6Ci0KICAg
ICBkZWYgX19pbml0X18oc2VsZiwgZnNwYXRoLCBwbSwgcmVtb3ZlX21vZHMpOgogICAgICAgICBz
ZWxmLmZzcGF0aCA9IGZzcGF0aAogICAgICAgICBzZWxmLnBtID0gcG0KQEAgLTM2MSw2ICs0MDAs
NyBAQCBjbGFzcyBOb01hdGNoKEV4Y2VwdGlvbik6CiAKIGNsYXNzIEludGVycnVwdGVkKEtleWJv
YXJkSW50ZXJydXB0KToKICAgICAiIiIgc2lnbmFscyBhbiBpbnRlcnJ1cHRlZCB0ZXN0IHJ1bi4g
IiIiCisKICAgICBfX21vZHVsZV9fID0gImJ1aWx0aW5zIiAgIyBmb3IgcHkzCiAKIApAQCAtMzY4
LDYgKzQwOCwxNiBAQCBjbGFzcyBGYWlsZWQoRXhjZXB0aW9uKToKICAgICAiIiIgc2lnbmFscyBh
IHN0b3AgYXMgZmFpbGVkIHRlc3QgcnVuLiAiIiIKIAogCitAYXR0ci5zCitjbGFzcyBfYmVzdHJl
bHBhdGhfY2FjaGUoZGljdCk6CisgICAgcGF0aCA9IGF0dHIuaWIoKQorCisgICAgZGVmIF9fbWlz
c2luZ19fKHNlbGYsIHBhdGgpOgorICAgICAgICByID0gc2VsZi5wYXRoLmJlc3RyZWxwYXRoKHBh
dGgpCisgICAgICAgIHNlbGZbcGF0aF0gPSByCisgICAgICAgIHJldHVybiByCisKKwogY2xhc3Mg
U2Vzc2lvbihub2Rlcy5GU0NvbGxlY3Rvcik6CiAgICAgSW50ZXJydXB0ZWQgPSBJbnRlcnJ1cHRl
ZAogICAgIEZhaWxlZCA9IEZhaWxlZApAQCAtMzgyLDEwICs0MzIsMjkgQEAgY2xhc3MgU2Vzc2lv
bihub2Rlcy5GU0NvbGxlY3Rvcik6CiAgICAgICAgIHNlbGYuc2hvdWxkZmFpbCA9IEZhbHNlCiAg
ICAgICAgIHNlbGYudHJhY2UgPSBjb25maWcudHJhY2Uucm9vdC5nZXQoImNvbGxlY3Rpb24iKQog
ICAgICAgICBzZWxmLl9ub3JlY3Vyc2VwYXR0ZXJucyA9IGNvbmZpZy5nZXRpbmkoIm5vcmVjdXJz
ZWRpcnMiKQotICAgICAgICBzZWxmLnN0YXJ0ZGlyID0gcHkucGF0aC5sb2NhbCgpCisgICAgICAg
IHNlbGYuc3RhcnRkaXIgPSBjb25maWcuaW52b2NhdGlvbl9kaXIKKyAgICAgICAgc2VsZi5faW5p
dGlhbHBhdGhzID0gZnJvemVuc2V0KCkKKyAgICAgICAgIyBLZWVwIHRyYWNrIG9mIGFueSBjb2xs
ZWN0ZWQgbm9kZXMgaW4gaGVyZSwgc28gd2UgZG9uJ3QgZHVwbGljYXRlIGZpeHR1cmVzCisgICAg
ICAgIHNlbGYuX25vZGVfY2FjaGUgPSB7fQorICAgICAgICBzZWxmLl9iZXN0cmVscGF0aGNhY2hl
ID0gX2Jlc3RyZWxwYXRoX2NhY2hlKGNvbmZpZy5yb290ZGlyKQorICAgICAgICAjIERpcm5hbWVz
IG9mIHBrZ3Mgd2l0aCBkdW5kZXItaW5pdCBmaWxlcy4KKyAgICAgICAgc2VsZi5fcGtnX3Jvb3Rz
ID0ge30KIAogICAgICAgICBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHNlbGYs
IG5hbWU9InNlc3Npb24iKQogCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1
cm4gIjwlcyAlcyBleGl0c3RhdHVzPSVyIHRlc3RzZmFpbGVkPSVkIHRlc3RzY29sbGVjdGVkPSVk
PiIgJSAoCisgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAg
IHNlbGYubmFtZSwKKyAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgImV4aXRzdGF0dXMiLCAiPFVO
U0VUPiIpLAorICAgICAgICAgICAgc2VsZi50ZXN0c2ZhaWxlZCwKKyAgICAgICAgICAgIHNlbGYu
dGVzdHNjb2xsZWN0ZWQsCisgICAgICAgICkKKworICAgIGRlZiBfbm9kZV9sb2NhdGlvbl90b19y
ZWxwYXRoKHNlbGYsIG5vZGVfcGF0aCk6CisgICAgICAgICMgYmVzdHJlbHBhdGggaXMgYSBxdWl0
ZSBzbG93IGZ1bmN0aW9uCisgICAgICAgIHJldHVybiBzZWxmLl9iZXN0cmVscGF0aGNhY2hlW25v
ZGVfcGF0aF0KKwogICAgIEBob29raW1wbCh0cnlmaXJzdD1UcnVlKQogICAgIGRlZiBweXRlc3Rf
Y29sbGVjdHN0YXJ0KHNlbGYpOgogICAgICAgICBpZiBzZWxmLnNob3VsZGZhaWw6CkBAIC00Mzks
MTMgKzUwOCwxNCBAQCBjbGFzcyBTZXNzaW9uKG5vZGVzLkZTQ29sbGVjdG9yKToKICAgICAgICAg
c2VsZi50cmFjZSgicGVyZm9ybV9jb2xsZWN0Iiwgc2VsZiwgYXJncykKICAgICAgICAgc2VsZi50
cmFjZS5yb290LmluZGVudCArPSAxCiAgICAgICAgIHNlbGYuX25vdGZvdW5kID0gW10KLSAgICAg
ICAgc2VsZi5faW5pdGlhbHBhdGhzID0gc2V0KCkKKyAgICAgICAgaW5pdGlhbHBhdGhzID0gW10K
ICAgICAgICAgc2VsZi5faW5pdGlhbHBhcnRzID0gW10KICAgICAgICAgc2VsZi5pdGVtcyA9IGl0
ZW1zID0gW10KICAgICAgICAgZm9yIGFyZyBpbiBhcmdzOgogICAgICAgICAgICAgcGFydHMgPSBz
ZWxmLl9wYXJzZWFyZyhhcmcpCiAgICAgICAgICAgICBzZWxmLl9pbml0aWFscGFydHMuYXBwZW5k
KHBhcnRzKQotICAgICAgICAgICAgc2VsZi5faW5pdGlhbHBhdGhzLmFkZChwYXJ0c1swXSkKKyAg
ICAgICAgICAgIGluaXRpYWxwYXRocy5hcHBlbmQocGFydHNbMF0pCisgICAgICAgIHNlbGYuX2lu
aXRpYWxwYXRocyA9IGZyb3plbnNldChpbml0aWFscGF0aHMpCiAgICAgICAgIHJlcCA9IGNvbGxl
Y3Rfb25lX25vZGUoc2VsZikKICAgICAgICAgc2VsZi5paG9vay5weXRlc3RfY29sbGVjdHJlcG9y
dChyZXBvcnQ9cmVwKQogICAgICAgICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50IC09IDEKQEAgLTQ2
NSw4ICs1MzUsOCBAQCBjbGFzcyBTZXNzaW9uKG5vZGVzLkZTQ29sbGVjdG9yKToKICAgICAgICAg
ICAgIHJldHVybiBpdGVtcwogCiAgICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgIGZvciBw
YXJ0cyBpbiBzZWxmLl9pbml0aWFscGFydHM6Ci0gICAgICAgICAgICBhcmcgPSAiOjoiLmpvaW4o
bWFwKHN0ciwgcGFydHMpKQorICAgICAgICBmb3IgaW5pdGlhbHBhcnQgaW4gc2VsZi5faW5pdGlh
bHBhcnRzOgorICAgICAgICAgICAgYXJnID0gIjo6Ii5qb2luKG1hcChzdHIsIGluaXRpYWxwYXJ0
KSkKICAgICAgICAgICAgIHNlbGYudHJhY2UoInByb2Nlc3NpbmcgYXJndW1lbnQiLCBhcmcpCiAg
ICAgICAgICAgICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50ICs9IDEKICAgICAgICAgICAgIHRyeToK
QEAgLTQ4MCw0MyArNTUwLDEzOCBAQCBjbGFzcyBTZXNzaW9uKG5vZGVzLkZTQ29sbGVjdG9yKToK
ICAgICAgICAgICAgIHNlbGYudHJhY2Uucm9vdC5pbmRlbnQgLT0gMQogCiAgICAgZGVmIF9jb2xs
ZWN0KHNlbGYsIGFyZyk6CisgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IFBhY2th
Z2UKKwogICAgICAgICBuYW1lcyA9IHNlbGYuX3BhcnNlYXJnKGFyZykKLSAgICAgICAgcGF0aCA9
IG5hbWVzLnBvcCgwKQotICAgICAgICBpZiBwYXRoLmNoZWNrKGRpcj0xKToKKyAgICAgICAgYXJn
cGF0aCA9IG5hbWVzLnBvcCgwKQorCisgICAgICAgICMgU3RhcnQgd2l0aCBhIFNlc3Npb24gcm9v
dCwgYW5kIGRlbHZlIHRvIGFyZ3BhdGggaXRlbSAoZGlyIG9yIGZpbGUpCisgICAgICAgICMgYW5k
IHN0YWNrIGFsbCBQYWNrYWdlcyBmb3VuZCBvbiB0aGUgd2F5LgorICAgICAgICAjIE5vIHBvaW50
IGluIGZpbmRpbmcgcGFja2FnZXMgd2hlbiBjb2xsZWN0aW5nIGRvY3Rlc3RzCisgICAgICAgIGlm
IG5vdCBzZWxmLmNvbmZpZy5nZXRvcHRpb24oImRvY3Rlc3Rtb2R1bGVzIiwgRmFsc2UpOgorICAg
ICAgICAgICAgcG0gPSBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2VyCisgICAgICAgICAgICBmb3Ig
cGFyZW50IGluIHJldmVyc2VkKGFyZ3BhdGgucGFydHMoKSk6CisgICAgICAgICAgICAgICAgaWYg
cG0uX2NvbmZjdXRkaXIgYW5kIHBtLl9jb25mY3V0ZGlyLnJlbHRvKHBhcmVudCk6CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICBpZiBwYXJlbnQuaXNkaXIoKToK
KyAgICAgICAgICAgICAgICAgICAgcGtnaW5pdCA9IHBhcmVudC5qb2luKCJfX2luaXRfXy5weSIp
CisgICAgICAgICAgICAgICAgICAgIGlmIHBrZ2luaXQuaXNmaWxlKCk6CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiBwa2dpbml0IG5vdCBpbiBzZWxmLl9ub2RlX2NhY2hlOgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbCA9IHNlbGYuX2NvbGxlY3RmaWxlKHBrZ2luaXQsIGhhbmRs
ZV9kdXBlcz1GYWxzZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb2w6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29sWzBdLCBQYWNrYWdl
KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BrZ19yb290c1tw
YXJlbnRdID0gY29sWzBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYWx3YXlz
IHN0b3JlIGEgbGlzdCBpbiB0aGUgY2FjaGUsIG1hdGNobm9kZXMgZXhwZWN0cyBpdAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9ub2RlX2NhY2hlW2NvbFswXS5mc3BhdGhd
ID0gW2NvbFswXV0KKworICAgICAgICAjIElmIGl0J3MgYSBkaXJlY3RvcnkgYXJndW1lbnQsIHJl
Y3Vyc2UgYW5kIGxvb2sgZm9yIGFueSBTdWJwYWNrYWdlcy4KKyAgICAgICAgIyBMZXQgdGhlIFBh
Y2thZ2UgY29sbGVjdG9yIGRlYWwgd2l0aCBzdWJub2RlcywgZG9uJ3QgY29sbGVjdCBoZXJlLgor
ICAgICAgICBpZiBhcmdwYXRoLmNoZWNrKGRpcj0xKToKICAgICAgICAgICAgIGFzc2VydCBub3Qg
bmFtZXMsICJpbnZhbGlkIGFyZyAlciIgJSAoYXJnLCkKLSAgICAgICAgICAgIGZvciBwYXRoIGlu
IHBhdGgudmlzaXQoCi0gICAgICAgICAgICAgICAgZmlsPWxhbWJkYSB4OiB4LmNoZWNrKGZpbGU9
MSksIHJlYz1zZWxmLl9yZWN1cnNlLCBiZj1UcnVlLCBzb3J0PVRydWUKKworICAgICAgICAgICAg
c2Vlbl9kaXJzID0gc2V0KCkKKyAgICAgICAgICAgIGZvciBwYXRoIGluIGFyZ3BhdGgudmlzaXQo
CisgICAgICAgICAgICAgICAgZmlsPXNlbGYuX3Zpc2l0X2ZpbHRlciwgcmVjPXNlbGYuX3JlY3Vy
c2UsIGJmPVRydWUsIHNvcnQ9VHJ1ZQogICAgICAgICAgICAgKToKKyAgICAgICAgICAgICAgICBk
aXJwYXRoID0gcGF0aC5kaXJwYXRoKCkKKyAgICAgICAgICAgICAgICBpZiBkaXJwYXRoIG5vdCBp
biBzZWVuX2RpcnM6CisgICAgICAgICAgICAgICAgICAgICMgQ29sbGVjdCBwYWNrYWdlcyBmaXJz
dC4KKyAgICAgICAgICAgICAgICAgICAgc2Vlbl9kaXJzLmFkZChkaXJwYXRoKQorICAgICAgICAg
ICAgICAgICAgICBwa2dpbml0ID0gZGlycGF0aC5qb2luKCJfX2luaXRfXy5weSIpCisgICAgICAg
ICAgICAgICAgICAgIGlmIHBrZ2luaXQuZXhpc3RzKCk6CisgICAgICAgICAgICAgICAgICAgICAg
ICBmb3IgeCBpbiBzZWxmLl9jb2xsZWN0ZmlsZShwa2dpbml0KToKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB5aWVsZCB4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZSh4LCBQYWNrYWdlKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
cGtnX3Jvb3RzW2RpcnBhdGhdID0geAorICAgICAgICAgICAgICAgIGlmIGRpcnBhdGggaW4gc2Vs
Zi5fcGtnX3Jvb3RzOgorICAgICAgICAgICAgICAgICAgICAjIERvIG5vdCBjb2xsZWN0IHBhY2th
Z2VzIGhlcmUuCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKICAgICAgICAgICAgICAg
ICBmb3IgeCBpbiBzZWxmLl9jb2xsZWN0ZmlsZShwYXRoKToKLSAgICAgICAgICAgICAgICAgICAg
eWllbGQgeAorICAgICAgICAgICAgICAgICAgICBrZXkgPSAodHlwZSh4KSwgeC5mc3BhdGgpCisg
ICAgICAgICAgICAgICAgICAgIGlmIGtleSBpbiBzZWxmLl9ub2RlX2NhY2hlOgorICAgICAgICAg
ICAgICAgICAgICAgICAgeWllbGQgc2VsZi5fbm9kZV9jYWNoZVtrZXldCisgICAgICAgICAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9ub2RlX2NhY2hlW2tl
eV0gPSB4CisgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB4CiAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBhc3NlcnQgcGF0aC5jaGVjayhmaWxlPTEpCi0gICAgICAgICAgICBmb3IgeCBp
biBzZWxmLm1hdGNobm9kZXMoc2VsZi5fY29sbGVjdGZpbGUocGF0aCksIG5hbWVzKToKLSAgICAg
ICAgICAgICAgICB5aWVsZCB4CisgICAgICAgICAgICBhc3NlcnQgYXJncGF0aC5jaGVjayhmaWxl
PTEpCiAKLSAgICBkZWYgX2NvbGxlY3RmaWxlKHNlbGYsIHBhdGgpOgorICAgICAgICAgICAgaWYg
YXJncGF0aCBpbiBzZWxmLl9ub2RlX2NhY2hlOgorICAgICAgICAgICAgICAgIGNvbCA9IHNlbGYu
X25vZGVfY2FjaGVbYXJncGF0aF0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
Y29sbGVjdF9yb290ID0gc2VsZi5fcGtnX3Jvb3RzLmdldChhcmdwYXRoLmRpcm5hbWUsIHNlbGYp
CisgICAgICAgICAgICAgICAgY29sID0gY29sbGVjdF9yb290Ll9jb2xsZWN0ZmlsZShhcmdwYXRo
LCBoYW5kbGVfZHVwZXM9RmFsc2UpCisgICAgICAgICAgICAgICAgaWYgY29sOgorICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9ub2RlX2NhY2hlW2FyZ3BhdGhdID0gY29sCisgICAgICAgICAgICBt
ID0gc2VsZi5tYXRjaG5vZGVzKGNvbCwgbmFtZXMpCisgICAgICAgICAgICAjIElmIF9faW5pdF9f
LnB5IHdhcyB0aGUgb25seSBmaWxlIHJlcXVlc3RlZCwgdGhlbiB0aGUgbWF0Y2hlZCBub2RlIHdp
bGwgYmUKKyAgICAgICAgICAgICMgdGhlIGNvcnJlc3BvbmRpbmcgUGFja2FnZSwgYW5kIHRoZSBm
aXJzdCB5aWVsZGVkIGl0ZW0gd2lsbCBiZSB0aGUgX19pbml0X18KKyAgICAgICAgICAgICMgTW9k
dWxlIGl0c2VsZiwgc28ganVzdCB1c2UgdGhhdC4gSWYgdGhpcyBzcGVjaWFsIGNhc2UgaXNuJ3Qg
dGFrZW4sIHRoZW4gYWxsCisgICAgICAgICAgICAjIHRoZSBmaWxlcyBpbiB0aGUgcGFja2FnZSB3
aWxsIGJlIHlpZWxkZWQuCisgICAgICAgICAgICBpZiBhcmdwYXRoLmJhc2VuYW1lID09ICJfX2lu
aXRfXy5weSI6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICB5aWVs
ZCBuZXh0KG1bMF0uY29sbGVjdCgpKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0
aW9uOgorICAgICAgICAgICAgICAgICAgICAjIFRoZSBwYWNrYWdlIGNvbGxlY3RzIG5vdGhpbmcg
d2l0aCBvbmx5IGFuIF9faW5pdF9fLnB5CisgICAgICAgICAgICAgICAgICAgICMgZmlsZSBpbiBp
dCwgd2hpY2ggZ2V0cyBpZ25vcmVkIGJ5IHRoZSBkZWZhdWx0CisgICAgICAgICAgICAgICAgICAg
ICMgInB5dGhvbl9maWxlcyIgb3B0aW9uLgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBmb3IgeSBpbiBtOgorICAgICAgICAgICAg
ICAgIHlpZWxkIHkKKworICAgIGRlZiBfY29sbGVjdGZpbGUoc2VsZiwgcGF0aCwgaGFuZGxlX2R1
cGVzPVRydWUpOgorICAgICAgICBhc3NlcnQgcGF0aC5pc2ZpbGUoKSwgIiVyIGlzIG5vdCBhIGZp
bGUgKGlzZGlyPSVyLCBleGlzdHM9JXIsIGlzbGluaz0lcikiICUgKAorICAgICAgICAgICAgcGF0
aCwKKyAgICAgICAgICAgIHBhdGguaXNkaXIoKSwKKyAgICAgICAgICAgIHBhdGguZXhpc3RzKCks
CisgICAgICAgICAgICBwYXRoLmlzbGluaygpLAorICAgICAgICApCiAgICAgICAgIGlob29rID0g
c2VsZi5nZXRob29rcHJveHkocGF0aCkKICAgICAgICAgaWYgbm90IHNlbGYuaXNpbml0cGF0aChw
YXRoKToKICAgICAgICAgICAgIGlmIGlob29rLnB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoPXBh
dGgsIGNvbmZpZz1zZWxmLmNvbmZpZyk6CiAgICAgICAgICAgICAgICAgcmV0dXJuICgpCisKKyAg
ICAgICAgaWYgaGFuZGxlX2R1cGVzOgorICAgICAgICAgICAga2VlcGR1cGxpY2F0ZXMgPSBzZWxm
LmNvbmZpZy5nZXRvcHRpb24oImtlZXBkdXBsaWNhdGVzIikKKyAgICAgICAgICAgIGlmIG5vdCBr
ZWVwZHVwbGljYXRlczoKKyAgICAgICAgICAgICAgICBkdXBsaWNhdGVfcGF0aHMgPSBzZWxmLmNv
bmZpZy5wbHVnaW5tYW5hZ2VyLl9kdXBsaWNhdGVwYXRocworICAgICAgICAgICAgICAgIGlmIHBh
dGggaW4gZHVwbGljYXRlX3BhdGhzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCkKKyAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBkdXBsaWNhdGVfcGF0aHMu
YWRkKHBhdGgpCisKICAgICAgICAgcmV0dXJuIGlob29rLnB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0
aD1wYXRoLCBwYXJlbnQ9c2VsZikKIAotICAgIGRlZiBfcmVjdXJzZShzZWxmLCBwYXRoKToKLSAg
ICAgICAgaWhvb2sgPSBzZWxmLmdldGhvb2twcm94eShwYXRoLmRpcnBhdGgoKSkKLSAgICAgICAg
aWYgaWhvb2sucHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGg9cGF0aCwgY29uZmlnPXNlbGYuY29u
ZmlnKToKLSAgICAgICAgICAgIHJldHVybgorICAgIGRlZiBfcmVjdXJzZShzZWxmLCBkaXJwYXRo
KToKKyAgICAgICAgaWYgZGlycGF0aC5iYXNlbmFtZSA9PSAiX19weWNhY2hlX18iOgorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJveHkoZGly
cGF0aC5kaXJwYXRoKCkpCisgICAgICAgIGlmIGlob29rLnB5dGVzdF9pZ25vcmVfY29sbGVjdChw
YXRoPWRpcnBhdGgsIGNvbmZpZz1zZWxmLmNvbmZpZyk6CisgICAgICAgICAgICByZXR1cm4gRmFs
c2UKICAgICAgICAgZm9yIHBhdCBpbiBzZWxmLl9ub3JlY3Vyc2VwYXR0ZXJuczoKLSAgICAgICAg
ICAgIGlmIHBhdGguY2hlY2soZm5tYXRjaD1wYXQpOgorICAgICAgICAgICAgaWYgZGlycGF0aC5j
aGVjayhmbm1hdGNoPXBhdCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAg
IGlob29rID0gc2VsZi5nZXRob29rcHJveHkocGF0aCkKLSAgICAgICAgaWhvb2sucHl0ZXN0X2Nv
bGxlY3RfZGlyZWN0b3J5KHBhdGg9cGF0aCwgcGFyZW50PXNlbGYpCisgICAgICAgIGlob29rID0g
c2VsZi5nZXRob29rcHJveHkoZGlycGF0aCkKKyAgICAgICAgaWhvb2sucHl0ZXN0X2NvbGxlY3Rf
ZGlyZWN0b3J5KHBhdGg9ZGlycGF0aCwgcGFyZW50PXNlbGYpCiAgICAgICAgIHJldHVybiBUcnVl
CiAKLSAgICBkZWYgX3RyeWNvbnZlcnRweWFyZyhzZWxmLCB4KToKLSAgICAgICAgIiIiQ29udmVy
dCBhIGRvdHRlZCBtb2R1bGUgbmFtZSB0byBwYXRoLgorICAgIGlmIHNpeC5QWTI6CisKKyAgICAg
ICAgQHN0YXRpY21ldGhvZAorICAgICAgICBkZWYgX3Zpc2l0X2ZpbHRlcihmKToKKyAgICAgICAg
ICAgIHJldHVybiBmLmNoZWNrKGZpbGU9MSkgYW5kIG5vdCBmLnN0cnBhdGguZW5kc3dpdGgoIiou
cHljIikKIAotICAgICAgICAiIiIKKyAgICBlbHNlOgorCisgICAgICAgIEBzdGF0aWNtZXRob2QK
KyAgICAgICAgZGVmIF92aXNpdF9maWx0ZXIoZik6CisgICAgICAgICAgICByZXR1cm4gZi5jaGVj
ayhmaWxlPTEpCiAKKyAgICBkZWYgX3RyeWNvbnZlcnRweWFyZyhzZWxmLCB4KToKKyAgICAgICAg
IiIiQ29udmVydCBhIGRvdHRlZCBtb2R1bGUgbmFtZSB0byBwYXRoLiIiIgogICAgICAgICB0cnk6
CiAgICAgICAgICAgICB3aXRoIF9wYXRjaGVkX2ZpbmRfbW9kdWxlKCk6CiAgICAgICAgICAgICAg
ICAgbG9hZGVyID0gcGtndXRpbC5maW5kX2xvYWRlcih4KQpAQCAtNTQ4LDkgKzcxMyw4IEBAIGNs
YXNzIFNlc3Npb24obm9kZXMuRlNDb2xsZWN0b3IpOgogICAgICAgICAgICAgICAgIHJhaXNlIFVz
YWdlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICJmaWxlIG9yIHBhY2thZ2Ugbm90IGZvdW5k
OiAiICsgYXJnICsgIiAobWlzc2luZyBfX2luaXRfXy5weT8pIgogICAgICAgICAgICAgICAgICkK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiZmls
ZSBub3QgZm91bmQ6ICIgKyBhcmcpCi0gICAgICAgIHBhcnRzWzBdID0gcGF0aAorICAgICAgICAg
ICAgcmFpc2UgVXNhZ2VFcnJvcigiZmlsZSBub3QgZm91bmQ6ICIgKyBhcmcpCisgICAgICAgIHBh
cnRzWzBdID0gcGF0aC5yZWFscGF0aCgpCiAgICAgICAgIHJldHVybiBwYXJ0cwogCiAgICAgZGVm
IG1hdGNobm9kZXMoc2VsZiwgbWF0Y2hpbmcsIG5hbWVzKToKQEAgLTU3Nyw3ICs3NDEsMTIgQEAg
Y2xhc3MgU2Vzc2lvbihub2Rlcy5GU0NvbGxlY3Rvcik6CiAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdG5vZGVzLmFwcGVuZChub2RlKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAg
ICAgICBhc3NlcnQgaXNpbnN0YW5jZShub2RlLCBub2Rlcy5Db2xsZWN0b3IpCi0gICAgICAgICAg
ICByZXAgPSBjb2xsZWN0X29uZV9ub2RlKG5vZGUpCisgICAgICAgICAgICBrZXkgPSAodHlwZShu
b2RlKSwgbm9kZS5ub2RlaWQpCisgICAgICAgICAgICBpZiBrZXkgaW4gc2VsZi5fbm9kZV9jYWNo
ZToKKyAgICAgICAgICAgICAgICByZXAgPSBzZWxmLl9ub2RlX2NhY2hlW2tleV0KKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVwID0gY29sbGVjdF9vbmVfbm9kZShub2RlKQor
ICAgICAgICAgICAgICAgIHNlbGYuX25vZGVfY2FjaGVba2V5XSA9IHJlcAogICAgICAgICAgICAg
aWYgcmVwLnBhc3NlZDoKICAgICAgICAgICAgICAgICBoYXNfbWF0Y2hlZCA9IEZhbHNlCiAgICAg
ICAgICAgICAgICAgZm9yIHggaW4gcmVwLnJlc3VsdDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L21hcmsvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9t
YXJrL19faW5pdF9fLnB5CmluZGV4IGUzOTE4Y2E2YTRmYjdmY2NlNTc2ZGMzY2ZlM2VlYmZiNGNk
MmIwNWUuLjZiYzIyZmUyN2RhOTZjMzhhMzQ3ZjNiNDk1MDVjNWU2YjU1ZTg2ZGIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21hcmsvX19pbml0X18ucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3QvbWFyay9fX2luaXRfXy5weQpAQCAtMSwzMiArMSwyMSBAQAorIyAt
Ki0gY29kaW5nOiB1dGYtOCAtKi0KICIiIiBnZW5lcmljIG1lY2hhbmlzbSBmb3IgbWFya2luZyBh
bmQgc2VsZWN0aW5nIHB5dGhvbiBmdW5jdGlvbnMuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNp
b24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKworZnJvbSAubGVnYWN5
IGltcG9ydCBtYXRjaGtleXdvcmQKK2Zyb20gLmxlZ2FjeSBpbXBvcnQgbWF0Y2htYXJrCitmcm9t
IC5zdHJ1Y3R1cmVzIGltcG9ydCBFTVBUWV9QQVJBTUVURVJTRVRfT1BUSU9OCitmcm9tIC5zdHJ1
Y3R1cmVzIGltcG9ydCBnZXRfZW1wdHlfcGFyYW1ldGVyc2V0X21hcmsKK2Zyb20gLnN0cnVjdHVy
ZXMgaW1wb3J0IE1hcmsKK2Zyb20gLnN0cnVjdHVyZXMgaW1wb3J0IE1BUktfR0VOCitmcm9tIC5z
dHJ1Y3R1cmVzIGltcG9ydCBNYXJrRGVjb3JhdG9yCitmcm9tIC5zdHJ1Y3R1cmVzIGltcG9ydCBN
YXJrR2VuZXJhdG9yCitmcm9tIC5zdHJ1Y3R1cmVzIGltcG9ydCBQYXJhbWV0ZXJTZXQKIGZyb20g
X3B5dGVzdC5jb25maWcgaW1wb3J0IFVzYWdlRXJyb3IKLWZyb20gLnN0cnVjdHVyZXMgaW1wb3J0
ICgKLSAgICBQYXJhbWV0ZXJTZXQsCi0gICAgRU1QVFlfUEFSQU1FVEVSU0VUX09QVElPTiwKLSAg
ICBNQVJLX0dFTiwKLSAgICBNYXJrLAotICAgIE1hcmtJbmZvLAotICAgIE1hcmtEZWNvcmF0b3Is
Ci0gICAgTWFya0dlbmVyYXRvciwKLSAgICB0cmFuc2Zlcl9tYXJrZXJzLAotICAgIGdldF9lbXB0
eV9wYXJhbWV0ZXJzZXRfbWFyaywKLSkKLWZyb20gLmxlZ2FjeSBpbXBvcnQgbWF0Y2hrZXl3b3Jk
LCBtYXRjaG1hcmsKLQotX19hbGxfXyA9IFsKLSAgICAiTWFyayIsCi0gICAgIk1hcmtJbmZvIiwK
LSAgICAiTWFya0RlY29yYXRvciIsCi0gICAgIk1hcmtHZW5lcmF0b3IiLAotICAgICJ0cmFuc2Zl
cl9tYXJrZXJzIiwKLSAgICAiZ2V0X2VtcHR5X3BhcmFtZXRlcnNldF9tYXJrIiwKLV0KLQotCi1j
bGFzcyBNYXJrZXJFcnJvcihFeGNlcHRpb24pOgotCi0gICAgIiIiRXJyb3IgaW4gdXNlIG9mIGEg
cHl0ZXN0IG1hcmtlci9hdHRyaWJ1dGUuIiIiCisKK19fYWxsX18gPSBbIk1hcmsiLCAiTWFya0Rl
Y29yYXRvciIsICJNYXJrR2VuZXJhdG9yIiwgImdldF9lbXB0eV9wYXJhbWV0ZXJzZXRfbWFyayJd
CiAKIAogZGVmIHBhcmFtKCp2YWx1ZXMsICoqa3cpOgpAQCAtNjQsNiArNTMsNyBAQCBkZWYgcHl0
ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgogICAgICAgICAib3RoZXInIG1hdGNoZXMgYWxsIHRlc3Qg
ZnVuY3Rpb25zIGFuZCBjbGFzc2VzIHdob3NlIG5hbWUgIgogICAgICAgICAiY29udGFpbnMgJ3Rl
c3RfbWV0aG9kJyBvciAndGVzdF9vdGhlcicsIHdoaWxlIC1rICdub3QgdGVzdF9tZXRob2QnICIK
ICAgICAgICAgIm1hdGNoZXMgdGhvc2UgdGhhdCBkb24ndCBjb250YWluICd0ZXN0X21ldGhvZCcg
aW4gdGhlaXIgbmFtZXMuICIKKyAgICAgICAgIi1rICdub3QgdGVzdF9tZXRob2QgYW5kIG5vdCB0
ZXN0X290aGVyJyB3aWxsIGVsaW1pbmF0ZSB0aGUgbWF0Y2hlcy4gIgogICAgICAgICAiQWRkaXRp
b25hbGx5IGtleXdvcmRzIGFyZSBtYXRjaGVkIHRvIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyAiCiAg
ICAgICAgICJjb250YWluaW5nIGV4dHJhIG5hbWVzIGluIHRoZWlyICdleHRyYV9rZXl3b3JkX21h
dGNoZXMnIHNldCwgIgogICAgICAgICAiYXMgd2VsbCBhcyBmdW5jdGlvbnMgd2hpY2ggaGF2ZSBu
YW1lcyBhc3NpZ25lZCBkaXJlY3RseSB0byB0aGVtLiIsCkBAIC0xMTEsNiArMTAxLDkgQEAgcHl0
ZXN0X2NtZGxpbmVfbWFpbi50cnlmaXJzdCA9IFRydWUKIAogZGVmIGRlc2VsZWN0X2J5X2tleXdv
cmQoaXRlbXMsIGNvbmZpZyk6CiAgICAga2V5d29yZGV4cHIgPSBjb25maWcub3B0aW9uLmtleXdv
cmQubHN0cmlwKCkKKyAgICBpZiBub3Qga2V5d29yZGV4cHI6CisgICAgICAgIHJldHVybgorCiAg
ICAgaWYga2V5d29yZGV4cHIuc3RhcnRzd2l0aCgiLSIpOgogICAgICAgICBrZXl3b3JkZXhwciA9
ICJub3QgIiArIGtleXdvcmRleHByWzE6XQogICAgIHNlbGVjdHVudGlsID0gRmFsc2UKQEAgLTE1
OCwxNCArMTUxLDEzIEBAIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhpdGVtcywg
Y29uZmlnKToKIAogZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICBjb25maWcuX29s
ZF9tYXJrX2NvbmZpZyA9IE1BUktfR0VOLl9jb25maWcKLSAgICBpZiBjb25maWcub3B0aW9uLnN0
cmljdDoKLSAgICAgICAgTUFSS19HRU4uX2NvbmZpZyA9IGNvbmZpZworICAgIE1BUktfR0VOLl9j
b25maWcgPSBjb25maWcKIAogICAgIGVtcHR5X3BhcmFtZXRlcnNldCA9IGNvbmZpZy5nZXRpbmko
RU1QVFlfUEFSQU1FVEVSU0VUX09QVElPTikKIAotICAgIGlmIGVtcHR5X3BhcmFtZXRlcnNldCBu
b3QgaW4gKCJza2lwIiwgInhmYWlsIiwgTm9uZSwgIiIpOgorICAgIGlmIGVtcHR5X3BhcmFtZXRl
cnNldCBub3QgaW4gKCJza2lwIiwgInhmYWlsIiwgImZhaWxfYXRfY29sbGVjdCIsIE5vbmUsICIi
KToKICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigKLSAgICAgICAgICAgICJ7IXN9IG11c3QgYmUg
b25lIG9mIHNraXAgYW5kIHhmYWlsLCIKKyAgICAgICAgICAgICJ7IXN9IG11c3QgYmUgb25lIG9m
IHNraXAsIHhmYWlsIG9yIGZhaWxfYXRfY29sbGVjdCIKICAgICAgICAgICAgICIgYnV0IGl0IGlz
IHshcn0iLmZvcm1hdChFTVBUWV9QQVJBTUVURVJTRVRfT1BUSU9OLCBlbXB0eV9wYXJhbWV0ZXJz
ZXQpCiAgICAgICAgICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbWFy
ay9ldmFsdWF0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21hcmsvZXZhbHVhdGUucHkK
aW5kZXggYTNkMTFlZTBmODFhMjQ4NzljZTFlNzA3MmRjYmNhZThlY2ZhNDI3OS4uNTA2NTQ2ZTI1
M2EzYjlmY2QyODhmZWJmZTgxYWM3M2FkNTRlYzUxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3QvbWFyay9ldmFsdWF0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVz
dC9tYXJrL2V2YWx1YXRlLnB5CkBAIC0xLDEwICsxLDEzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQogaW1wb3J0IG9zCi1pbXBvcnQgc2l4Ci1pbXBvcnQgc3lzCiBpbXBvcnQgcGxhdGZvcm0K
K2ltcG9ydCBzeXMKIGltcG9ydCB0cmFjZWJhY2sKIAotZnJvbSAuLm91dGNvbWVzIGltcG9ydCBm
YWlsLCBURVNUX09VVENPTUUKK2ltcG9ydCBzaXgKKworZnJvbSAuLm91dGNvbWVzIGltcG9ydCBm
YWlsCitmcm9tIC4ub3V0Y29tZXMgaW1wb3J0IFRFU1RfT1VUQ09NRQogCiAKIGRlZiBjYWNoZWRf
ZXZhbChjb25maWcsIGV4cHIsIGQpOgpAQCAtMjEsNyArMjQsNiBAQCBkZWYgY2FjaGVkX2V2YWwo
Y29uZmlnLCBleHByLCBkKToKIAogCiBjbGFzcyBNYXJrRXZhbHVhdG9yKG9iamVjdCk6Ci0KICAg
ICBkZWYgX19pbml0X18oc2VsZiwgaXRlbSwgbmFtZSk6CiAgICAgICAgIHNlbGYuaXRlbSA9IGl0
ZW0KICAgICAgICAgc2VsZi5fbWFya3MgPSBOb25lCkBAIC05MSw3ICs5MywxMCBAQCBjbGFzcyBN
YXJrRXZhbHVhdG9yKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAicmVhc29uIiBub3QgaW4gbWFyay5rd2FyZ3M6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIyBYWFggYmV0dGVyIGJlIGNoZWNrZWQgYXQgY29sbGVjdGlv
biB0aW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gInlvdSBuZWVkIHRvIHNw
ZWNpZnkgcmVhc29uPVNUUklORyAiICJ3aGVuIHVzaW5nIGJvb2xlYW5zIGFzIGNvbmRpdGlvbnMu
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9ICgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInlvdSBuZWVkIHRvIHNwZWNpZnkgcmVhc29uPVNUUklORyAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGVuIHVzaW5nIGJvb2xlYW5zIGFzIGNvbmRp
dGlvbnMuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmYWlsKG1zZykKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGJv
b2woZXhwcikKICAgICAgICAgICAgICAgICAgICAgaWYgcmVzdWx0OgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3Qvc3JjL19weXRlc3QvbWFyay9sZWdhY3kucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC9tYXJrL2xlZ2FjeS5weQppbmRleCBhYjAxNmEwMzU1YjczMzY2MDU1Y2I3MjJhY2MzZWU1
NTdkNDIxNTQ3Li5jNTY0ODJmMTRkMGQ5ZGU3MWYyOWU2N2Q5NDM5YWU2OGFhODkxOTVhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL2xlZ2FjeS5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL2xlZ2FjeS5weQpAQCAtMSwxMCArMSwxMiBAQAorIyAt
Ki0gY29kaW5nOiB1dGYtOCAtKi0KICIiIgogdGhpcyBpcyBhIHBsYWNlIHdoZXJlIHdlIHB1dCBk
YXRhc3RydWN0dXJlcyB1c2VkIGJ5IGxlZ2FjeSBhcGlzCiB3ZSBob3BlIG90IHJlbW92ZQogIiIi
Ci1pbXBvcnQgYXR0cgogaW1wb3J0IGtleXdvcmQKIAoraW1wb3J0IGF0dHIKKwogZnJvbSBfcHl0
ZXN0LmNvbmZpZyBpbXBvcnQgVXNhZ2VFcnJvcgogCiAKQEAgLTQ0LDEzICs0NiwxNCBAQCBjbGFz
cyBLZXl3b3JkTWFwcGluZyhvYmplY3QpOgogICAgICAgICAgICAgICAgIG1hcHBlZF9uYW1lcy5h
ZGQoaXRlbS5uYW1lKQogCiAgICAgICAgICMgQWRkIHRoZSBuYW1lcyBhZGRlZCBhcyBleHRyYSBr
ZXl3b3JkcyB0byBjdXJyZW50IG9yIHBhcmVudCBpdGVtcwotICAgICAgICBmb3IgbmFtZSBpbiBp
dGVtLmxpc3RleHRyYWtleXdvcmRzKCk6Ci0gICAgICAgICAgICBtYXBwZWRfbmFtZXMuYWRkKG5h
bWUpCisgICAgICAgIG1hcHBlZF9uYW1lcy51cGRhdGUoaXRlbS5saXN0ZXh0cmFrZXl3b3Jkcygp
KQogCiAgICAgICAgICMgQWRkIHRoZSBuYW1lcyBhdHRhY2hlZCB0byB0aGUgY3VycmVudCBmdW5j
dGlvbiB0aHJvdWdoIGRpcmVjdCBhc3NpZ25tZW50CiAgICAgICAgIGlmIGhhc2F0dHIoaXRlbSwg
ImZ1bmN0aW9uIik6Ci0gICAgICAgICAgICBmb3IgbmFtZSBpbiBpdGVtLmZ1bmN0aW9uLl9fZGlj
dF9fOgotICAgICAgICAgICAgICAgIG1hcHBlZF9uYW1lcy5hZGQobmFtZSkKKyAgICAgICAgICAg
IG1hcHBlZF9uYW1lcy51cGRhdGUoaXRlbS5mdW5jdGlvbi5fX2RpY3RfXykKKworICAgICAgICAj
IGFkZCB0aGUgbWFya2VycyB0byB0aGUga2V5d29yZHMgYXMgd2Ugbm8gbG9uZ2VyIGhhbmRsZSB0
aGVtIGNvcnJlY3RseQorICAgICAgICBtYXBwZWRfbmFtZXMudXBkYXRlKG1hcmsubmFtZSBmb3Ig
bWFyayBpbiBpdGVtLml0ZXJfbWFya2VycygpKQogCiAgICAgICAgIHJldHVybiBjbHMobWFwcGVk
X25hbWVzKQogCkBAIC02Niw3ICs2OSwxMCBAQCBweXRob25fa2V5d29yZHNfYWxsb3dlZF9saXN0
ID0gWyJvciIsICJhbmQiLCAibm90Il0KIAogZGVmIG1hdGNobWFyayhjb2xpdGVtLCBtYXJrZXhw
cik6CiAgICAgIiIiVHJpZXMgdG8gbWF0Y2ggb24gYW55IG1hcmtlciBuYW1lcywgYXR0YWNoZWQg
dG8gdGhlIGdpdmVuIGNvbGl0ZW0uIiIiCi0gICAgcmV0dXJuIGV2YWwobWFya2V4cHIsIHt9LCBN
YXJrTWFwcGluZy5mcm9tX2l0ZW0oY29saXRlbSkpCisgICAgdHJ5OgorICAgICAgICByZXR1cm4g
ZXZhbChtYXJrZXhwciwge30sIE1hcmtNYXBwaW5nLmZyb21faXRlbShjb2xpdGVtKSkKKyAgICBl
eGNlcHQgU3ludGF4RXJyb3IgYXMgZToKKyAgICAgICAgcmFpc2UgU3ludGF4RXJyb3Ioc3RyKGUp
ICsgIlxuTWFya2VyIGV4cHJlc3Npb24gbXVzdCBiZSB2YWxpZCBQeXRob24hIikKIAogCiBkZWYg
bWF0Y2hrZXl3b3JkKGNvbGl0ZW0sIGtleXdvcmRleHByKToKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L21hcmsvc3RydWN0dXJlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L21hcmsvc3RydWN0dXJlcy5weQppbmRleCAxYTJiZDczZGU1Njg4ZGI4NDU1OTY1OTUyYzRh
ZWRkOGI2YmUyZmQ0Li4wY2NkODE0MWRkOWI5YzQyZjE0MTk2ZDhiYTBiNjBiYjk1Y2MyNzVjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL3N0cnVjdHVyZXMucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbWFyay9zdHJ1Y3R1cmVzLnB5CkBAIC0xLDE0ICsx
LDIwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IGluc3BlY3QKIGltcG9ydCB3
YXJuaW5ncwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZQogZnJvbSBvcGVyYXRv
ciBpbXBvcnQgYXR0cmdldHRlcgogCiBpbXBvcnQgYXR0cgoraW1wb3J0IHNpeAogCi1mcm9tIC4u
ZGVwcmVjYXRlZCBpbXBvcnQgTUFSS19QQVJBTUVURVJTRVRfVU5QQUNLSU5HLCBNQVJLX0lORk9f
QVRUUklCVVRFCi1mcm9tIC4uY29tcGF0IGltcG9ydCBOT1RTRVQsIGdldGZzbGluZW5vLCBNYXBw
aW5nTWl4aW4KLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBtYXAsIHJlZHVjZQotCitmcm9tIC4uY29t
cGF0IGltcG9ydCBhc2NpaV9lc2NhcGVkCitmcm9tIC4uY29tcGF0IGltcG9ydCBBVFRSU19FUV9G
SUVMRAorZnJvbSAuLmNvbXBhdCBpbXBvcnQgZ2V0ZnNsaW5lbm8KK2Zyb20gLi5jb21wYXQgaW1w
b3J0IE1hcHBpbmdNaXhpbgorZnJvbSAuLmNvbXBhdCBpbXBvcnQgTk9UU0VUCitmcm9tIF9weXRl
c3QuZGVwcmVjYXRlZCBpbXBvcnQgUFlURVNUX1BBUkFNX1VOS05PV05fS1dBUkdTCitmcm9tIF9w
eXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGlt
cG9ydCBQeXRlc3RVbmtub3duTWFya1dhcm5pbmcKIAogRU1QVFlfUEFSQU1FVEVSU0VUX09QVElP
TiA9ICJlbXB0eV9wYXJhbWV0ZXJfc2V0X21hcmsiCiAKQEAgLTI0LDkwICszMCwxMjQgQEAgZGVm
IGFsaWFzKG5hbWUsIHdhcm5pbmc9Tm9uZSk6CiAKIAogZGVmIGlzdGVzdGZ1bmMoZnVuYyk6Ci0g
ICAgcmV0dXJuIGhhc2F0dHIoZnVuYywgIl9fY2FsbF9fIikgYW5kIGdldGF0dHIoCi0gICAgICAg
IGZ1bmMsICJfX25hbWVfXyIsICI8bGFtYmRhPiIKLSAgICApICE9ICI8bGFtYmRhPiIKKyAgICBy
ZXR1cm4gKAorICAgICAgICBoYXNhdHRyKGZ1bmMsICJfX2NhbGxfXyIpCisgICAgICAgIGFuZCBn
ZXRhdHRyKGZ1bmMsICJfX25hbWVfXyIsICI8bGFtYmRhPiIpICE9ICI8bGFtYmRhPiIKKyAgICAp
CiAKIAogZGVmIGdldF9lbXB0eV9wYXJhbWV0ZXJzZXRfbWFyayhjb25maWcsIGFyZ25hbWVzLCBm
dW5jKToKKyAgICBmcm9tIC4ubm9kZXMgaW1wb3J0IENvbGxlY3RvcgorCiAgICAgcmVxdWVzdGVk
X21hcmsgPSBjb25maWcuZ2V0aW5pKEVNUFRZX1BBUkFNRVRFUlNFVF9PUFRJT04pCiAgICAgaWYg
cmVxdWVzdGVkX21hcmsgaW4gKCIiLCBOb25lLCAic2tpcCIpOgogICAgICAgICBtYXJrID0gTUFS
S19HRU4uc2tpcAogICAgIGVsaWYgcmVxdWVzdGVkX21hcmsgPT0gInhmYWlsIjoKICAgICAgICAg
bWFyayA9IE1BUktfR0VOLnhmYWlsKHJ1bj1GYWxzZSkKKyAgICBlbGlmIHJlcXVlc3RlZF9tYXJr
ID09ICJmYWlsX2F0X2NvbGxlY3QiOgorICAgICAgICBmX25hbWUgPSBmdW5jLl9fbmFtZV9fCisg
ICAgICAgIF8sIGxpbmVubyA9IGdldGZzbGluZW5vKGZ1bmMpCisgICAgICAgIHJhaXNlIENvbGxl
Y3Rvci5Db2xsZWN0RXJyb3IoCisgICAgICAgICAgICAiRW1wdHkgcGFyYW1ldGVyIHNldCBpbiAn
JXMnIGF0IGxpbmUgJWQiICUgKGZfbmFtZSwgbGluZW5vICsgMSkKKyAgICAgICAgKQogICAgIGVs
c2U6CiAgICAgICAgIHJhaXNlIExvb2t1cEVycm9yKHJlcXVlc3RlZF9tYXJrKQogICAgIGZzLCBs
aW5lbm8gPSBnZXRmc2xpbmVubyhmdW5jKQogICAgIHJlYXNvbiA9ICJnb3QgZW1wdHkgcGFyYW1l
dGVyIHNldCAlciwgZnVuY3Rpb24gJXMgYXQgJXM6JWQiICUgKAotICAgICAgICBhcmduYW1lcywg
ZnVuYy5fX25hbWVfXywgZnMsIGxpbmVubworICAgICAgICBhcmduYW1lcywKKyAgICAgICAgZnVu
Yy5fX25hbWVfXywKKyAgICAgICAgZnMsCisgICAgICAgIGxpbmVubywKICAgICApCiAgICAgcmV0
dXJuIG1hcmsocmVhc29uPXJlYXNvbikKIAogCiBjbGFzcyBQYXJhbWV0ZXJTZXQobmFtZWR0dXBs
ZSgiUGFyYW1ldGVyU2V0IiwgInZhbHVlcywgbWFya3MsIGlkIikpOgotCiAgICAgQGNsYXNzbWV0
aG9kCi0gICAgZGVmIHBhcmFtKGNscywgKnZhbHVlcywgKiprdyk6Ci0gICAgICAgIG1hcmtzID0g
a3cucG9wKCJtYXJrcyIsICgpKQorICAgIGRlZiBwYXJhbShjbHMsICp2YWx1ZXMsICoqa3dhcmdz
KToKKyAgICAgICAgbWFya3MgPSBrd2FyZ3MucG9wKCJtYXJrcyIsICgpKQogICAgICAgICBpZiBp
c2luc3RhbmNlKG1hcmtzLCBNYXJrRGVjb3JhdG9yKToKLSAgICAgICAgICAgIG1hcmtzID0gbWFy
a3MsCisgICAgICAgICAgICBtYXJrcyA9IChtYXJrcywpCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICBhc3NlcnQgaXNpbnN0YW5jZShtYXJrcywgKHR1cGxlLCBsaXN0LCBzZXQpKQogCi0gICAg
ICAgIGRlZiBwYXJhbV9leHRyYWN0X2lkKGlkPU5vbmUpOgotICAgICAgICAgICAgcmV0dXJuIGlk
CisgICAgICAgIGlkXyA9IGt3YXJncy5wb3AoImlkIiwgTm9uZSkKKyAgICAgICAgaWYgaWRfIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaWRfLCBzaXguc3RyaW5n
X3R5cGVzKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAg
ICAgICAgICJFeHBlY3RlZCBpZCB0byBiZSBhIHN0cmluZywgZ290IHt9OiB7IXJ9Ii5mb3JtYXQo
dHlwZShpZF8pLCBpZF8pCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgaWRfID0gYXNj
aWlfZXNjYXBlZChpZF8pCiAKLSAgICAgICAgaWRfID0gcGFyYW1fZXh0cmFjdF9pZCgqKmt3KQor
ICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAg
ICAgICAgIFBZVEVTVF9QQVJBTV9VTktOT1dOX0tXQVJHUy5mb3JtYXQoYXJncz1zb3J0ZWQoa3dh
cmdzKSksIHN0YWNrbGV2ZWw9MworICAgICAgICAgICAgKQogICAgICAgICByZXR1cm4gY2xzKHZh
bHVlcywgbWFya3MsIGlkXykKIAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBleHRyYWN0X2Zy
b20oY2xzLCBwYXJhbWV0ZXJzZXQsIGxlZ2FjeV9mb3JjZV90dXBsZT1GYWxzZSk6CisgICAgZGVm
IGV4dHJhY3RfZnJvbShjbHMsIHBhcmFtZXRlcnNldCwgZm9yY2VfdHVwbGU9RmFsc2UpOgogICAg
ICAgICAiIiIKICAgICAgICAgOnBhcmFtIHBhcmFtZXRlcnNldDoKICAgICAgICAgICAgIGEgbGVn
YWN5IHN0eWxlIHBhcmFtZXRlcnNldCB0aGF0IG1heSBvciBtYXkgbm90IGJlIGEgdHVwbGUsCiAg
ICAgICAgICAgICBhbmQgbWF5IG9yIG1heSBub3QgYmUgd3JhcHBlZCBpbnRvIGEgbWVzcyBvZiBt
YXJrIG9iamVjdHMKIAotICAgICAgICA6cGFyYW0gbGVnYWN5X2ZvcmNlX3R1cGxlOgorICAgICAg
ICA6cGFyYW0gZm9yY2VfdHVwbGU6CiAgICAgICAgICAgICBlbmZvcmNlIHR1cGxlIHdyYXBwaW5n
IHNvIHNpbmdsZSBhcmd1bWVudCB0dXBsZSB2YWx1ZXMKICAgICAgICAgICAgIGRvbid0IGdldCBk
ZWNvbXBvc2VkIGFuZCBicmVhayB0ZXN0cwotCiAgICAgICAgICIiIgogCiAgICAgICAgIGlmIGlz
aW5zdGFuY2UocGFyYW1ldGVyc2V0LCBjbHMpOgogICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRl
cnNldAotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwYXJhbWV0ZXJzZXQsIE1hcmtEZWNvcmF0
b3IpIGFuZCBsZWdhY3lfZm9yY2VfdHVwbGU6CisgICAgICAgIGlmIGZvcmNlX3R1cGxlOgogICAg
ICAgICAgICAgcmV0dXJuIGNscy5wYXJhbShwYXJhbWV0ZXJzZXQpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICByZXR1cm4gY2xzKHBhcmFtZXRlcnNldCwgbWFya3M9W10sIGlkPU5vbmUpCiAK
LSAgICAgICAgbmV3bWFya3MgPSBbXQotICAgICAgICBhcmd2YWwgPSBwYXJhbWV0ZXJzZXQKLSAg
ICAgICAgd2hpbGUgaXNpbnN0YW5jZShhcmd2YWwsIE1hcmtEZWNvcmF0b3IpOgotICAgICAgICAg
ICAgbmV3bWFya3MuYXBwZW5kKAotICAgICAgICAgICAgICAgIE1hcmtEZWNvcmF0b3IoTWFyayhh
cmd2YWwubWFya25hbWUsIGFyZ3ZhbC5hcmdzWzotMV0sIGFyZ3ZhbC5rd2FyZ3MpKQotICAgICAg
ICAgICAgKQotICAgICAgICAgICAgYXJndmFsID0gYXJndmFsLmFyZ3NbLTFdCi0gICAgICAgIGFz
c2VydCBub3QgaXNpbnN0YW5jZShhcmd2YWwsIFBhcmFtZXRlclNldCkKLSAgICAgICAgaWYgbGVn
YWN5X2ZvcmNlX3R1cGxlOgotICAgICAgICAgICAgYXJndmFsID0gYXJndmFsLAotCi0gICAgICAg
IGlmIG5ld21hcmtzOgotICAgICAgICAgICAgd2FybmluZ3Mud2FybihNQVJLX1BBUkFNRVRFUlNF
VF9VTlBBQ0tJTkcpCi0KLSAgICAgICAgcmV0dXJuIGNscyhhcmd2YWwsIG1hcmtzPW5ld21hcmtz
LCBpZD1Ob25lKQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9mb3JfcGFyYW1ldHJpemUo
Y2xzLCBhcmduYW1lcywgYXJndmFsdWVzLCBmdW5jLCBjb25maWcpOgorICAgIEBzdGF0aWNtZXRo
b2QKKyAgICBkZWYgX3BhcnNlX3BhcmFtZXRyaXplX2FyZ3MoYXJnbmFtZXMsIGFyZ3ZhbHVlcywg
KmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXJnbmFtZXMsICh0
dXBsZSwgbGlzdCkpOgogICAgICAgICAgICAgYXJnbmFtZXMgPSBbeC5zdHJpcCgpIGZvciB4IGlu
IGFyZ25hbWVzLnNwbGl0KCIsIikgaWYgeC5zdHJpcCgpXQogICAgICAgICAgICAgZm9yY2VfdHVw
bGUgPSBsZW4oYXJnbmFtZXMpID09IDEKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGZvcmNl
X3R1cGxlID0gRmFsc2UKLSAgICAgICAgcGFyYW1ldGVycyA9IFsKLSAgICAgICAgICAgIFBhcmFt
ZXRlclNldC5leHRyYWN0X2Zyb20oeCwgbGVnYWN5X2ZvcmNlX3R1cGxlPWZvcmNlX3R1cGxlKQot
ICAgICAgICAgICAgZm9yIHggaW4gYXJndmFsdWVzCisgICAgICAgIHJldHVybiBhcmduYW1lcywg
Zm9yY2VfdHVwbGUKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgX3BhcnNlX3BhcmFtZXRy
aXplX3BhcmFtZXRlcnMoYXJndmFsdWVzLCBmb3JjZV90dXBsZSk6CisgICAgICAgIHJldHVybiBb
CisgICAgICAgICAgICBQYXJhbWV0ZXJTZXQuZXh0cmFjdF9mcm9tKHgsIGZvcmNlX3R1cGxlPWZv
cmNlX3R1cGxlKSBmb3IgeCBpbiBhcmd2YWx1ZXMKICAgICAgICAgXQorCisgICAgQGNsYXNzbWV0
aG9kCisgICAgZGVmIF9mb3JfcGFyYW1ldHJpemUoY2xzLCBhcmduYW1lcywgYXJndmFsdWVzLCBm
dW5jLCBjb25maWcsIGZ1bmN0aW9uX2RlZmluaXRpb24pOgorICAgICAgICBhcmduYW1lcywgZm9y
Y2VfdHVwbGUgPSBjbHMuX3BhcnNlX3BhcmFtZXRyaXplX2FyZ3MoYXJnbmFtZXMsIGFyZ3ZhbHVl
cykKKyAgICAgICAgcGFyYW1ldGVycyA9IGNscy5fcGFyc2VfcGFyYW1ldHJpemVfcGFyYW1ldGVy
cyhhcmd2YWx1ZXMsIGZvcmNlX3R1cGxlKQogICAgICAgICBkZWwgYXJndmFsdWVzCiAKLSAgICAg
ICAgaWYgbm90IHBhcmFtZXRlcnM6CisgICAgICAgIGlmIHBhcmFtZXRlcnM6CisgICAgICAgICAg
ICAjIGNoZWNrIGFsbCBwYXJhbWV0ZXIgc2V0cyBoYXZlIHRoZSBjb3JyZWN0IG51bWJlciBvZiB2
YWx1ZXMKKyAgICAgICAgICAgIGZvciBwYXJhbSBpbiBwYXJhbWV0ZXJzOgorICAgICAgICAgICAg
ICAgIGlmIGxlbihwYXJhbS52YWx1ZXMpICE9IGxlbihhcmduYW1lcyk6CisgICAgICAgICAgICAg
ICAgICAgIG1zZyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICd7bm9kZWlkfTogaW4gInBh
cmFtZXRyaXplIiB0aGUgbnVtYmVyIG9mIG5hbWVzICh7bmFtZXNfbGVufSk6XG4nCisgICAgICAg
ICAgICAgICAgICAgICAgICAiICB7bmFtZXN9XG4iCisgICAgICAgICAgICAgICAgICAgICAgICAi
bXVzdCBiZSBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIHZhbHVlcyAoe3ZhbHVlc19sZW59KTpcbiIK
KyAgICAgICAgICAgICAgICAgICAgICAgICIgIHt2YWx1ZXN9IgorICAgICAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICAgICAgIGZhaWwoCisgICAgICAgICAgICAgICAgICAgICAgICBt
c2cuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVpZD1mdW5jdGlvbl9k
ZWZpbml0aW9uLm5vZGVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9cGFy
YW0udmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzPWFyZ25hbWVzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX2xlbj1sZW4oYXJnbmFtZXMpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc19sZW49bGVuKHBhcmFtLnZhbHVlcyksCisg
ICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgcHl0cmFj
ZT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgIyBlbXB0eSBwYXJhbWV0ZXIgc2V0IChsaWtlbHkgY29tcHV0ZWQgYXQgcnVudGltZSk6IGNy
ZWF0ZSBhIHNpbmdsZQorICAgICAgICAgICAgIyBwYXJhbWV0ZXIgc2V0IHdpdGggTk9UU0VUIHZh
bHVlcywgd2l0aCB0aGUgImVtcHR5IHBhcmFtZXRlciBzZXQiIG1hcmsgYXBwbGllZCB0byBpdAog
ICAgICAgICAgICAgbWFyayA9IGdldF9lbXB0eV9wYXJhbWV0ZXJzZXRfbWFyayhjb25maWcsIGFy
Z25hbWVzLCBmdW5jKQogICAgICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoCiAgICAgICAgICAg
ICAgICAgUGFyYW1ldGVyU2V0KHZhbHVlcz0oTk9UU0VULCkgKiBsZW4oYXJnbmFtZXMpLCBtYXJr
cz1bbWFya10sIGlkPU5vbmUpCkBAIC0xMjAsOSArMTYwLDkgQEAgY2xhc3MgTWFyayhvYmplY3Qp
OgogICAgICM6IG5hbWUgb2YgdGhlIG1hcmsKICAgICBuYW1lID0gYXR0ci5pYih0eXBlPXN0cikK
ICAgICAjOiBwb3NpdGlvbmFsIGFyZ3VtZW50cyBvZiB0aGUgbWFyayBkZWNvcmF0b3IKLSAgICBh
cmdzID0gYXR0ci5pYih0eXBlPSJMaXN0W29iamVjdF0iKQorICAgIGFyZ3MgPSBhdHRyLmliKCkg
ICMgTGlzdFtvYmplY3RdCiAgICAgIzoga2V5d29yZCBhcmd1bWVudHMgb2YgdGhlIG1hcmsgZGVj
b3JhdG9yCi0gICAga3dhcmdzID0gYXR0ci5pYih0eXBlPSJEaWN0W3N0ciwgb2JqZWN0XSIpCisg
ICAga3dhcmdzID0gYXR0ci5pYigpICAjIERpY3Rbc3RyLCBvYmplY3RdCiAKICAgICBkZWYgY29t
YmluZWRfd2l0aChzZWxmLCBvdGhlcik6CiAgICAgICAgICIiIgpAQCAtMTMwLDcgKzE3MCw3IEBA
IGNsYXNzIE1hcmsob2JqZWN0KToKICAgICAgICAgOnR5cGUgb3RoZXI6IE1hcmsKICAgICAgICAg
OnJ0eXBlOiBNYXJrCiAKLSAgICAgICAgY29tYmluZXMgYnkgYXBwZW5kaW5nIGFhcmdzIGFuZCBt
ZXJnaW5nIHRoZSBtYXBwaW5ncworICAgICAgICBjb21iaW5lcyBieSBhcHBlbmRpbmcgYXJncyBh
bmQgbWVyZ2luZyB0aGUgbWFwcGluZ3MKICAgICAgICAgIiIiCiAgICAgICAgIGFzc2VydCBzZWxm
Lm5hbWUgPT0gb3RoZXIubmFtZQogICAgICAgICByZXR1cm4gTWFyaygKQEAgLTIwNywxMSArMjQ3
LDcgQEAgY2xhc3MgTWFya0RlY29yYXRvcihvYmplY3QpOgogICAgICAgICAgICAgZnVuYyA9IGFy
Z3NbMF0KICAgICAgICAgICAgIGlzX2NsYXNzID0gaW5zcGVjdC5pc2NsYXNzKGZ1bmMpCiAgICAg
ICAgICAgICBpZiBsZW4oYXJncykgPT0gMSBhbmQgKGlzdGVzdGZ1bmMoZnVuYykgb3IgaXNfY2xh
c3MpOgotICAgICAgICAgICAgICAgIGlmIGlzX2NsYXNzOgotICAgICAgICAgICAgICAgICAgICBz
dG9yZV9tYXJrKGZ1bmMsIHNlbGYubWFyaykKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgICAgICBzdG9yZV9sZWdhY3lfbWFya2luZm8oZnVuYywgc2VsZi5tYXJrKQotICAg
ICAgICAgICAgICAgICAgICBzdG9yZV9tYXJrKGZ1bmMsIHNlbGYubWFyaykKKyAgICAgICAgICAg
ICAgICBzdG9yZV9tYXJrKGZ1bmMsIHNlbGYubWFyaykKICAgICAgICAgICAgICAgICByZXR1cm4g
ZnVuYwogICAgICAgICByZXR1cm4gc2VsZi53aXRoX2FyZ3MoKmFyZ3MsICoqa3dhcmdzKQogCkBA
IC0yMjEsMTAgKzI1NywyNSBAQCBkZWYgZ2V0X3VucGFja2VkX21hcmtzKG9iaik6CiAgICAgb2J0
YWluIHRoZSB1bnBhY2tlZCBtYXJrcyB0aGF0IGFyZSBzdG9yZWQgb24gYW4gb2JqZWN0CiAgICAg
IiIiCiAgICAgbWFya19saXN0ID0gZ2V0YXR0cihvYmosICJweXRlc3RtYXJrIiwgW10pCi0KICAg
ICBpZiBub3QgaXNpbnN0YW5jZShtYXJrX2xpc3QsIGxpc3QpOgogICAgICAgICBtYXJrX2xpc3Qg
PSBbbWFya19saXN0XQotICAgIHJldHVybiBbZ2V0YXR0cihtYXJrLCAibWFyayIsIG1hcmspIGZv
ciBtYXJrIGluIG1hcmtfbGlzdF0gICMgdW5wYWNrIE1hcmtEZWNvcmF0b3IKKyAgICByZXR1cm4g
bm9ybWFsaXplX21hcmtfbGlzdChtYXJrX2xpc3QpCisKKworZGVmIG5vcm1hbGl6ZV9tYXJrX2xp
c3QobWFya19saXN0KToKKyAgICAiIiIKKyAgICBub3JtYWxpemVzIG1hcmtlciBkZWNvcmF0aW5n
IGhlbHBlcnMgdG8gbWFyayBvYmplY3RzCisKKyAgICA6dHlwZSBtYXJrX2xpc3Q6IExpc3RbVW5p
b25bTWFyaywgTWFya2RlY29yYXRvcl1dCisgICAgOnJ0eXBlOiBMaXN0W01hcmtdCisgICAgIiIi
CisgICAgZXh0cmFjdGVkID0gWworICAgICAgICBnZXRhdHRyKG1hcmssICJtYXJrIiwgbWFyaykg
Zm9yIG1hcmsgaW4gbWFya19saXN0CisgICAgXSAgIyB1bnBhY2sgTWFya0RlY29yYXRvcgorICAg
IGZvciBtYXJrIGluIGV4dHJhY3RlZDoKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobWFyaywg
TWFyayk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImdvdCB7IXJ9IGluc3RlYWQgb2Yg
TWFyayIuZm9ybWF0KG1hcmspKQorICAgIHJldHVybiBbeCBmb3IgeCBpbiBleHRyYWN0ZWQgaWYg
aXNpbnN0YW5jZSh4LCBNYXJrKV0KIAogCiBkZWYgc3RvcmVfbWFyayhvYmosIG1hcmspOgpAQCAt
MjM3LDkwICsyODgsNiBAQCBkZWYgc3RvcmVfbWFyayhvYmosIG1hcmspOgogICAgIG9iai5weXRl
c3RtYXJrID0gZ2V0X3VucGFja2VkX21hcmtzKG9iaikgKyBbbWFya10KIAogCi1kZWYgc3RvcmVf
bGVnYWN5X21hcmtpbmZvKGZ1bmMsIG1hcmspOgotICAgICIiImNyZWF0ZSB0aGUgbGVnYWN5IE1h
cmtJbmZvIG9iamVjdHMgYW5kIHB1dCB0aGVtIG9udG8gdGhlIGZ1bmN0aW9uCi0gICAgIiIiCi0g
ICAgaWYgbm90IGlzaW5zdGFuY2UobWFyaywgTWFyayk6Ci0gICAgICAgIHJhaXNlIFR5cGVFcnJv
cigiZ290IHttYXJrIXJ9IGluc3RlYWQgb2YgYSBNYXJrIi5mb3JtYXQobWFyaz1tYXJrKSkKLSAg
ICBob2xkZXIgPSBnZXRhdHRyKGZ1bmMsIG1hcmsubmFtZSwgTm9uZSkKLSAgICBpZiBob2xkZXIg
aXMgTm9uZToKLSAgICAgICAgaG9sZGVyID0gTWFya0luZm8uZm9yX21hcmsobWFyaykKLSAgICAg
ICAgc2V0YXR0cihmdW5jLCBtYXJrLm5hbWUsIGhvbGRlcikKLSAgICBlbHNlOgotICAgICAgICBo
b2xkZXIuYWRkX21hcmsobWFyaykKLQotCi1kZWYgdHJhbnNmZXJfbWFya2VycyhmdW5jb2JqLCBj
bHMsIG1vZCk6Ci0gICAgIiIiCi0gICAgdGhpcyBmdW5jdGlvbiB0cmFuc2ZlcnMgY2xhc3MgbGV2
ZWwgbWFya2VycyBhbmQgbW9kdWxlIGxldmVsIG1hcmtlcnMKLSAgICBpbnRvIGZ1bmN0aW9uIGxl
dmVsIG1hcmtpbmZvIG9iamVjdHMKLQotICAgIHRoaXMgaXMgdGhlIG1haW4gcmVhc29uIHdoeSBt
YXJrcyBhcmUgc28gYnJva2VuCi0gICAgdGhlIHJlc29sdXRpb24gd2lsbCBpbnZvbHZlIHBoYXNp
bmcgb3V0IGZ1bmN0aW9uIGxldmVsIE1hcmtJbmZvIG9iamVjdHMKLQotICAgICIiIgotICAgIGZv
ciBvYmogaW4gKGNscywgbW9kKToKLSAgICAgICAgZm9yIG1hcmsgaW4gZ2V0X3VucGFja2VkX21h
cmtzKG9iaik6Ci0gICAgICAgICAgICBpZiBub3QgX21hcmtlZChmdW5jb2JqLCBtYXJrKToKLSAg
ICAgICAgICAgICAgICBzdG9yZV9sZWdhY3lfbWFya2luZm8oZnVuY29iaiwgbWFyaykKLQotCi1k
ZWYgX21hcmtlZChmdW5jLCBtYXJrKToKLSAgICAiIiIgUmV0dXJucyBUcnVlIGlmIDpmdW5jOiBp
cyBhbHJlYWR5IG1hcmtlZCB3aXRoIDptYXJrOiwgRmFsc2Ugb3RoZXJ3aXNlLgotICAgIFRoaXMg
Y2FuIGhhcHBlbiBpZiBtYXJrZXIgaXMgYXBwbGllZCB0byBjbGFzcyBhbmQgdGhlIHRlc3QgZmls
ZSBpcwotICAgIGludm9rZWQgbW9yZSB0aGFuIG9uY2UuCi0gICAgIiIiCi0gICAgdHJ5OgotICAg
ICAgICBmdW5jX21hcmsgPSBnZXRhdHRyKGZ1bmMsIGdldGF0dHIobWFyaywgImNvbWJpbmVkIiwg
bWFyaykubmFtZSkKLSAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIHJldHVybiBG
YWxzZQotICAgIHJldHVybiBhbnkobWFyayA9PSBpbmZvLmNvbWJpbmVkIGZvciBpbmZvIGluIGZ1
bmNfbWFyaykKLQotCi1AYXR0ci5zCi1jbGFzcyBNYXJrSW5mbyhvYmplY3QpOgotICAgICIiIiBN
YXJraW5nIG9iamVjdCBjcmVhdGVkIGJ5IDpjbGFzczpgTWFya0RlY29yYXRvcmAgaW5zdGFuY2Vz
LiAiIiIKLQotICAgIF9tYXJrcyA9IGF0dHIuaWIoY29udmVydD1saXN0KQotCi0gICAgQF9tYXJr
cy52YWxpZGF0b3IKLSAgICBkZWYgdmFsaWRhdGVfbWFya3Moc2VsZiwgYXR0cmlidXRlLCB2YWx1
ZSk6Ci0gICAgICAgIGZvciBpdGVtIGluIHZhbHVlOgotICAgICAgICAgICAgaWYgbm90IGlzaW5z
dGFuY2UoaXRlbSwgTWFyayk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAg
ICAgICAgICAgICAgICAgICAgIk1hcmtJbmZvIGV4cGVjdHMgTWFyayBpbnN0YW5jZXMsIGdvdCB7
IXJ9ICh7IXJ9KSIuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSwgdHlwZShp
dGVtKQotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgKQotCi0gICAgY29t
YmluZWQgPSBhdHRyLmliKAotICAgICAgICByZXByPUZhbHNlLAotICAgICAgICBkZWZhdWx0PWF0
dHIuRmFjdG9yeSgKLSAgICAgICAgICAgIGxhbWJkYSBzZWxmOiByZWR1Y2UoTWFyay5jb21iaW5l
ZF93aXRoLCBzZWxmLl9tYXJrcyksIHRha2VzX3NlbGY9VHJ1ZQotICAgICAgICApLAotICAgICkK
LQotICAgIG5hbWUgPSBhbGlhcygiY29tYmluZWQubmFtZSIsIHdhcm5pbmc9TUFSS19JTkZPX0FU
VFJJQlVURSkKLSAgICBhcmdzID0gYWxpYXMoImNvbWJpbmVkLmFyZ3MiLCB3YXJuaW5nPU1BUktf
SU5GT19BVFRSSUJVVEUpCi0gICAga3dhcmdzID0gYWxpYXMoImNvbWJpbmVkLmt3YXJncyIsIHdh
cm5pbmc9TUFSS19JTkZPX0FUVFJJQlVURSkKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBm
b3JfbWFyayhjbHMsIG1hcmspOgotICAgICAgICByZXR1cm4gY2xzKFttYXJrXSkKLQotICAgIGRl
ZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8TWFya0luZm8geyFyfT4iLmZvcm1h
dChzZWxmLmNvbWJpbmVkKQotCi0gICAgZGVmIGFkZF9tYXJrKHNlbGYsIG1hcmspOgotICAgICAg
ICAiIiIgYWRkIGEgTWFya0luZm8gd2l0aCB0aGUgZ2l2ZW4gYXJncyBhbmQga3dhcmdzLiAiIiIK
LSAgICAgICAgc2VsZi5fbWFya3MuYXBwZW5kKG1hcmspCi0gICAgICAgIHNlbGYuY29tYmluZWQg
PSBzZWxmLmNvbWJpbmVkLmNvbWJpbmVkX3dpdGgobWFyaykKLQotICAgIGRlZiBfX2l0ZXJfXyhz
ZWxmKToKLSAgICAgICAgIiIiIHlpZWxkIE1hcmtJbmZvIG9iamVjdHMgZWFjaCByZWxhdGluZyB0
byBhIG1hcmtpbmctY2FsbC4gIiIiCi0gICAgICAgIHJldHVybiBtYXAoTWFya0luZm8uZm9yX21h
cmssIHNlbGYuX21hcmtzKQotCi0KIGNsYXNzIE1hcmtHZW5lcmF0b3Iob2JqZWN0KToKICAgICAi
IiIgRmFjdG9yeSBmb3IgOmNsYXNzOmBNYXJrRGVjb3JhdG9yYCBvYmplY3RzIC0gZXhwb3NlZCBh
cwogICAgIGEgYGBweXRlc3QubWFya2BgIHNpbmdsZXRvbiBpbnN0YW5jZS4gIEV4YW1wbGU6OgpA
QCAtMzMyLDM2ICsyOTksNDkgQEAgY2xhc3MgTWFya0dlbmVyYXRvcihvYmplY3QpOgogCiAgICAg
d2lsbCBzZXQgYSAnc2xvd3Rlc3QnIDpjbGFzczpgTWFya0luZm9gIG9iamVjdAogICAgIG9uIHRo
ZSBgYHRlc3RfZnVuY3Rpb25gYCBvYmplY3QuICIiIgorCiAgICAgX2NvbmZpZyA9IE5vbmUKKyAg
ICBfbWFya2VycyA9IHNldCgpCiAKICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CiAg
ICAgICAgIGlmIG5hbWVbMF0gPT0gIl8iOgogICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJy
b3IoIk1hcmtlciBuYW1lIG11c3QgTk9UIHN0YXJ0IHdpdGggdW5kZXJzY29yZSIpCisKICAgICAg
ICAgaWYgc2VsZi5fY29uZmlnIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fY2hlY2so
bmFtZSkKLSAgICAgICAgcmV0dXJuIE1hcmtEZWNvcmF0b3IoTWFyayhuYW1lLCAoKSwge30pKQor
ICAgICAgICAgICAgIyBXZSBzdG9yZSBhIHNldCBvZiBtYXJrZXJzIGFzIGEgcGVyZm9ybWFuY2Ug
b3B0aW1pc2F0aW9uIC0gaWYgYSBtYXJrCisgICAgICAgICAgICAjIG5hbWUgaXMgaW4gdGhlIHNl
dCB3ZSBkZWZpbml0ZWx5IGtub3cgaXQsIGJ1dCBhIG1hcmsgbWF5IGJlIGtub3duIGFuZAorICAg
ICAgICAgICAgIyBub3QgaW4gdGhlIHNldC4gIFdlIHRoZXJlZm9yZSBzdGFydCBieSB1cGRhdGlu
ZyB0aGUgc2V0IQorICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5fbWFya2VyczoKKyAg
ICAgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9jb25maWcuZ2V0aW5pKCJtYXJrZXJzIik6
CisgICAgICAgICAgICAgICAgICAgICMgZXhhbXBsZSBsaW5lczogInNraXBpZihjb25kaXRpb24p
OiBza2lwIHRoZSBnaXZlbiB0ZXN0IGlmLi4uIgorICAgICAgICAgICAgICAgICAgICAjIG9yICJo
eXBvdGhlc2lzOiB0ZXN0cyB3aGljaCB1c2UgSHlwb3RoZXNpcyIsIHNvIHRvIGdldCB0aGUKKyAg
ICAgICAgICAgICAgICAgICAgIyBtYXJrZXIgbmFtZSB3ZSBzcGxpdCBvbiBib3RoIGA6YCBhbmQg
YChgLgorICAgICAgICAgICAgICAgICAgICBtYXJrZXIgPSBsaW5lLnNwbGl0KCI6IilbMF0uc3Bs
aXQoIigiKVswXS5zdHJpcCgpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX21hcmtlcnMuYWRk
KG1hcmtlcikKKworICAgICAgICAgICAgIyBJZiB0aGUgbmFtZSBpcyBub3QgaW4gdGhlIHNldCBv
ZiBrbm93biBtYXJrcyBhZnRlciB1cGRhdGluZywKKyAgICAgICAgICAgICMgdGhlbiBpdCByZWFs
bHkgaXMgdGltZSB0byBpc3N1ZSBhIHdhcm5pbmcgb3IgYW4gZXJyb3IuCisgICAgICAgICAgICBp
ZiBuYW1lIG5vdCBpbiBzZWxmLl9tYXJrZXJzOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX2Nv
bmZpZy5vcHRpb24uc3RyaWN0X21hcmtlcnM6CisgICAgICAgICAgICAgICAgICAgIGZhaWwoCisg
ICAgICAgICAgICAgICAgICAgICAgICAieyFyfSBub3QgZm91bmQgaW4gYG1hcmtlcnNgIGNvbmZp
Z3VyYXRpb24gb3B0aW9uIi5mb3JtYXQobmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICBw
eXRyYWNlPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAgICAgICAgICAg
ICAgICAgICJVbmtub3duIHB5dGVzdC5tYXJrLiVzIC0gaXMgdGhpcyBhIHR5cG8/ICBZb3UgY2Fu
IHJlZ2lzdGVyICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJjdXN0b20gbWFya3MgdG8gYXZv
aWQgdGhpcyB3YXJuaW5nIC0gZm9yIGRldGFpbHMsIHNlZSAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAiaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L21hcmsuaHRtbCIgJSBuYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgUHl0ZXN0VW5rbm93bk1hcmtXYXJuaW5nLAorICAg
ICAgICAgICAgICAgICAgICApCiAKLSAgICBkZWYgX2NoZWNrKHNlbGYsIG5hbWUpOgotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBpZiBuYW1lIGluIHNlbGYuX21hcmtlcnM6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAg
IHBhc3MKLSAgICAgICAgc2VsZi5fbWFya2VycyA9IHZhbHVlcyA9IHNldCgpCi0gICAgICAgIGZv
ciBsaW5lIGluIHNlbGYuX2NvbmZpZy5nZXRpbmkoIm1hcmtlcnMiKToKLSAgICAgICAgICAgIG1h
cmtlciA9IGxpbmUuc3BsaXQoIjoiLCAxKVswXQotICAgICAgICAgICAgbWFya2VyID0gbWFya2Vy
LnJzdHJpcCgpCi0gICAgICAgICAgICB4ID0gbWFya2VyLnNwbGl0KCIoIiwgMSlbMF0KLSAgICAg
ICAgICAgIHZhbHVlcy5hZGQoeCkKLSAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5fbWFya2Vy
czoKLSAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCIlciBub3QgYSByZWdpc3RlcmVk
IG1hcmtlciIgJSAobmFtZSwpKQorICAgICAgICByZXR1cm4gTWFya0RlY29yYXRvcihNYXJrKG5h
bWUsICgpLCB7fSkpCiAKIAogTUFSS19HRU4gPSBNYXJrR2VuZXJhdG9yKCkKIAogCiBjbGFzcyBO
b2RlS2V5d29yZHMoTWFwcGluZ01peGluKToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2Rl
KToKICAgICAgICAgc2VsZi5ub2RlID0gbm9kZQogICAgICAgICBzZWxmLnBhcmVudCA9IG5vZGUu
cGFyZW50CkBAIC0zOTgsMTYgKzM3OCwxOCBAQCBjbGFzcyBOb2RlS2V5d29yZHMoTWFwcGluZ01p
eGluKToKICAgICAgICAgcmV0dXJuICI8Tm9kZUtleXdvcmRzIGZvciBub2RlICVzPiIgJSAoc2Vs
Zi5ub2RlLCkKIAogCi1AYXR0ci5zKGNtcD1GYWxzZSwgaGFzaD1GYWxzZSkKKyMgbXlweSBjYW5u
b3QgZmluZCB0aGlzIG92ZXJsb2FkLCByZW1vdmUgd2hlbiBvbiBhdHRycz49MTkuMgorQGF0dHIu
cyhoYXNoPUZhbHNlLCAqKntBVFRSU19FUV9GSUVMRDogRmFsc2V9KSAgIyB0eXBlOiBpZ25vcmUK
IGNsYXNzIE5vZGVNYXJrZXJzKG9iamVjdCk6CiAgICAgIiIiCi0gICAgaW50ZXJuYWwgc3RydWN1
dHJlIGZvciBzdG9yaW5nIG1hcmtzIGJlbG9uZ29uZyB0byBhIG5vZGUKKyAgICBpbnRlcm5hbCBz
dHJ1Y3R1cmUgZm9yIHN0b3JpbmcgbWFya3MgYmVsb25naW5nIHRvIGEgbm9kZQogCiAgICAgLi53
YXJuaW5nOjoKIAogICAgICAgICB1bnN0YWJsZSBhcGkKIAogICAgICIiIgorCiAgICAgb3duX21h
cmtlcnMgPSBhdHRyLmliKGRlZmF1bHQ9YXR0ci5GYWN0b3J5KGxpc3QpKQogCiAgICAgZGVmIHVw
ZGF0ZShzZWxmLCBhZGRfbWFya2Vycyk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC9tb25rZXlwYXRjaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21vbmtleXBhdGNo
LnB5CmluZGV4IDE2MDgwYjVkNWNiMjQ3MDQ1ZmVmNGZlMzc0ZGE5ODRmMWQ3Y2E1MDQuLmU4Njcx
YjBjNzAyNGZjZWY0OGIzY2Q5Y2U1NThkYzZkNjM5Y2Y2NGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L21vbmtleXBhdGNoLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L21vbmtleXBhdGNoLnB5CkBAIC0xLDE1ICsxLDIyIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQogIiIiIG1vbmtleXBhdGNoaW5nIGFuZCBtb2NraW5nIGZ1bmN0aW9uYWxpdHkuICAiIiIK
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1
bmN0aW9uCiAKIGltcG9ydCBvcwotaW1wb3J0IHN5cwogaW1wb3J0IHJlCitpbXBvcnQgc3lzCitp
bXBvcnQgd2FybmluZ3MKIGZyb20gY29udGV4dGxpYiBpbXBvcnQgY29udGV4dG1hbmFnZXIKIAog
aW1wb3J0IHNpeAorCitpbXBvcnQgcHl0ZXN0CiBmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0
IGZpeHR1cmUKK2Zyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBQYXRoCiAKLVJFX0lNUE9SVF9F
UlJPUl9OQU1FID0gcmUuY29tcGlsZSgiXk5vIG1vZHVsZSBuYW1lZCAoLiopJCIpCitSRV9JTVBP
UlRfRVJST1JfTkFNRSA9IHJlLmNvbXBpbGUociJeTm8gbW9kdWxlIG5hbWVkICguKikkIikKIAog
CiBAZml4dHVyZQpAQCAtMjIsNyArMjksNyBAQCBkZWYgbW9ua2V5cGF0Y2goKToKICAgICAgICAg
bW9ua2V5cGF0Y2guc2V0aXRlbShtYXBwaW5nLCBuYW1lLCB2YWx1ZSkKICAgICAgICAgbW9ua2V5
cGF0Y2guZGVsaXRlbShvYmosIG5hbWUsIHJhaXNpbmc9VHJ1ZSkKICAgICAgICAgbW9ua2V5cGF0
Y2guc2V0ZW52KG5hbWUsIHZhbHVlLCBwcmVwZW5kPUZhbHNlKQotICAgICAgICBtb25rZXlwYXRj
aC5kZWxlbnYobmFtZSwgdmFsdWUsIHJhaXNpbmc9VHJ1ZSkKKyAgICAgICAgbW9ua2V5cGF0Y2gu
ZGVsZW52KG5hbWUsIHJhaXNpbmc9VHJ1ZSkKICAgICAgICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9w
cmVwZW5kKHBhdGgpCiAgICAgICAgIG1vbmtleXBhdGNoLmNoZGlyKHBhdGgpCiAKQEAgLTg2LDcg
KzkzLDYgQEAgZGVmIGRlcml2ZV9pbXBvcnRwYXRoKGltcG9ydF9wYXRoLCByYWlzaW5nKToKIAog
CiBjbGFzcyBOb3RzZXQob2JqZWN0KToKLQogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAg
ICAgcmV0dXJuICI8bm90c2V0PiIKIApAQCAtMTc2LDYgKzE4Miw4IEBAIGNsYXNzIE1vbmtleVBh
dGNoKG9iamVjdCk6CiAgICAgICAgIGF0dHJpYnV0ZSBpcyBtaXNzaW5nLgogICAgICAgICAiIiIK
ICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIGltcG9ydCBpbnNwZWN0
CisKICAgICAgICAgaWYgbmFtZSBpcyBub3RzZXQ6CiAgICAgICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZSh0YXJnZXQsIHNpeC5zdHJpbmdfdHlwZXMpOgogICAgICAgICAgICAgICAgIHJhaXNlIFR5
cGVFcnJvcigKQEAgLTE4OSw3ICsxOTcsMTEgQEAgY2xhc3MgTW9ua2V5UGF0Y2gob2JqZWN0KToK
ICAgICAgICAgICAgIGlmIHJhaXNpbmc6CiAgICAgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRl
RXJyb3IobmFtZSkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3NldGF0dHIuYXBw
ZW5kKCh0YXJnZXQsIG5hbWUsIGdldGF0dHIodGFyZ2V0LCBuYW1lLCBub3RzZXQpKSkKKyAgICAg
ICAgICAgIG9sZHZhbCA9IGdldGF0dHIodGFyZ2V0LCBuYW1lLCBub3RzZXQpCisgICAgICAgICAg
ICAjIEF2b2lkIGNsYXNzIGRlc2NyaXB0b3JzIGxpa2Ugc3RhdGljbWV0aG9kL2NsYXNzbWV0aG9k
LgorICAgICAgICAgICAgaWYgaW5zcGVjdC5pc2NsYXNzKHRhcmdldCk6CisgICAgICAgICAgICAg
ICAgb2xkdmFsID0gdGFyZ2V0Ll9fZGljdF9fLmdldChuYW1lLCBub3RzZXQpCisgICAgICAgICAg
ICBzZWxmLl9zZXRhdHRyLmFwcGVuZCgodGFyZ2V0LCBuYW1lLCBvbGR2YWwpKQogICAgICAgICAg
ICAgZGVsYXR0cih0YXJnZXQsIG5hbWUpCiAKICAgICBkZWYgc2V0aXRlbShzZWxmLCBkaWMsIG5h
bWUsIHZhbHVlKToKQEAgLTIxMCwzMCArMjIyLDY4IEBAIGNsYXNzIE1vbmtleVBhdGNoKG9iamVj
dCk6CiAgICAgICAgICAgICBzZWxmLl9zZXRpdGVtLmFwcGVuZCgoZGljLCBuYW1lLCBkaWMuZ2V0
KG5hbWUsIG5vdHNldCkpKQogICAgICAgICAgICAgZGVsIGRpY1tuYW1lXQogCisgICAgZGVmIF93
YXJuX2lmX2Vudl9uYW1lX2lzX25vdF9zdHIoc2VsZiwgbmFtZSk6CisgICAgICAgICIiIk9uIFB5
dGhvbiAyLCB3YXJuIGlmIHRoZSBnaXZlbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGlzIG5v
dCBhIG5hdGl2ZSBzdHIgKCM0MDU2KSIiIgorICAgICAgICBpZiBzaXguUFkyIGFuZCBub3QgaXNp
bnN0YW5jZShuYW1lLCBzdHIpOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybigKKyAgICAgICAg
ICAgICAgICBweXRlc3QuUHl0ZXN0V2FybmluZygKKyAgICAgICAgICAgICAgICAgICAgIkVudmly
b25tZW50IHZhcmlhYmxlIG5hbWUgeyFyfSBzaG91bGQgYmUgc3RyIi5mb3JtYXQobmFtZSkKKyAg
ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisKICAgICBkZWYgc2V0ZW52KHNlbGYsIG5h
bWUsIHZhbHVlLCBwcmVwZW5kPU5vbmUpOgogICAgICAgICAiIiIgU2V0IGVudmlyb25tZW50IHZh
cmlhYmxlIGBgbmFtZWBgIHRvIGBgdmFsdWVgYC4gIElmIGBgcHJlcGVuZGBgCiAgICAgICAgIGlz
IGEgY2hhcmFjdGVyLCByZWFkIHRoZSBjdXJyZW50IGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVl
CiAgICAgICAgIGFuZCBwcmVwZW5kIHRoZSBgYHZhbHVlYGAgYWRqb2luZWQgd2l0aCB0aGUgYGBw
cmVwZW5kYGAgY2hhcmFjdGVyLiIiIgotICAgICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkKKyAgICAg
ICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CisgICAgICAgICAgICB3YXJuaW5ncy53
YXJuKAorICAgICAgICAgICAgICAgIHB5dGVzdC5QeXRlc3RXYXJuaW5nKAorICAgICAgICAgICAg
ICAgICAgICAiVmFsdWUgb2YgZW52aXJvbm1lbnQgdmFyaWFibGUge25hbWV9IHR5cGUgc2hvdWxk
IGJlIHN0ciwgYnV0IGdvdCAiCisgICAgICAgICAgICAgICAgICAgICJ7dmFsdWUhcn0gKHR5cGU6
IHt0eXBlfSk7IGNvbnZlcnRlZCB0byBzdHIgaW1wbGljaXRseSIuZm9ybWF0KAorICAgICAgICAg
ICAgICAgICAgICAgICAgbmFtZT1uYW1lLCB2YWx1ZT12YWx1ZSwgdHlwZT10eXBlKHZhbHVlKS5f
X25hbWVfXworICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKSwKKyAgICAg
ICAgICAgICAgICBzdGFja2xldmVsPTIsCisgICAgICAgICAgICApCisgICAgICAgICAgICB2YWx1
ZSA9IHN0cih2YWx1ZSkKICAgICAgICAgaWYgcHJlcGVuZCBhbmQgbmFtZSBpbiBvcy5lbnZpcm9u
OgogICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSArIHByZXBlbmQgKyBvcy5lbnZpcm9uW25hbWVd
CisgICAgICAgIHNlbGYuX3dhcm5faWZfZW52X25hbWVfaXNfbm90X3N0cihuYW1lKQogICAgICAg
ICBzZWxmLnNldGl0ZW0ob3MuZW52aXJvbiwgbmFtZSwgdmFsdWUpCiAKICAgICBkZWYgZGVsZW52
KHNlbGYsIG5hbWUsIHJhaXNpbmc9VHJ1ZSk6Ci0gICAgICAgICIiIiBEZWxldGUgYGBuYW1lYGAg
ZnJvbSB0aGUgZW52aXJvbm1lbnQuIFJhaXNlIEtleUVycm9yIGl0IGRvZXMgbm90Ci0gICAgICAg
IGV4aXN0LgorICAgICAgICAiIiIgRGVsZXRlIGBgbmFtZWBgIGZyb20gdGhlIGVudmlyb25tZW50
LiBSYWlzZSBLZXlFcnJvciBpZiBpdCBkb2VzCisgICAgICAgIG5vdCBleGlzdC4KIAogICAgICAg
ICBJZiBgYHJhaXNpbmdgYCBpcyBzZXQgdG8gRmFsc2UsIG5vIGV4Y2VwdGlvbiB3aWxsIGJlIHJh
aXNlZCBpZiB0aGUKICAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbWlzc2luZy4KICAg
ICAgICAgIiIiCisgICAgICAgIHNlbGYuX3dhcm5faWZfZW52X25hbWVfaXNfbm90X3N0cihuYW1l
KQogICAgICAgICBzZWxmLmRlbGl0ZW0ob3MuZW52aXJvbiwgbmFtZSwgcmFpc2luZz1yYWlzaW5n
KQogCiAgICAgZGVmIHN5c3BhdGhfcHJlcGVuZChzZWxmLCBwYXRoKToKICAgICAgICAgIiIiIFBy
ZXBlbmQgYGBwYXRoYGAgdG8gYGBzeXMucGF0aGBgIGxpc3Qgb2YgaW1wb3J0IGxvY2F0aW9ucy4g
IiIiCisgICAgICAgIGZyb20gcGtnX3Jlc291cmNlcyBpbXBvcnQgZml4dXBfbmFtZXNwYWNlX3Bh
Y2thZ2VzCisKICAgICAgICAgaWYgc2VsZi5fc2F2ZXN5c3BhdGggaXMgTm9uZToKICAgICAgICAg
ICAgIHNlbGYuX3NhdmVzeXNwYXRoID0gc3lzLnBhdGhbOl0KICAgICAgICAgc3lzLnBhdGguaW5z
ZXJ0KDAsIHN0cihwYXRoKSkKIAorICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9weXBhL3Nl
dHVwdG9vbHMvYmxvYi9kOGI5MDFiYy9kb2NzL3BrZ19yZXNvdXJjZXMudHh0I0wxNjItTDE3MQor
ICAgICAgICBmaXh1cF9uYW1lc3BhY2VfcGFja2FnZXMoc3RyKHBhdGgpKQorCisgICAgICAgICMg
QSBjYWxsIHRvIHN5c3BhdGhpbnNlcnQoKSB1c3VhbGx5IG1lYW5zIHRoYXQgdGhlIGNhbGxlciB3
YW50cyB0bworICAgICAgICAjIGltcG9ydCBzb21lIGR5bmFtaWNhbGx5IGNyZWF0ZWQgZmlsZXMs
IHRodXMgd2l0aCBweXRob24zIHdlCisgICAgICAgICMgaW52YWxpZGF0ZSBpdHMgaW1wb3J0IGNh
Y2hlcy4KKyAgICAgICAgIyBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IHdoZW4gYW55IG5h
bWVzcGFjZSBwYWNrYWdlIGlzIGluIHVzZWQsCisgICAgICAgICMgc2luY2UgdGhlbiB0aGUgbXRp
bWUgYmFzZWQgRmlsZUZpbmRlciBjYWNoZSAodGhhdCBnZXRzIGNyZWF0ZWQgaW4KKyAgICAgICAg
IyB0aGlzIGNhc2UgYWxyZWFkeSkgZ2V0cyBub3QgaW52YWxpZGF0ZWQgd2hlbiB3cml0aW5nIHRo
ZSBuZXcgZmlsZXMKKyAgICAgICAgIyBxdWlja2x5IGFmdGVyd2FyZHMuCisgICAgICAgIGlmIHN5
cy52ZXJzaW9uX2luZm8gPj0gKDMsIDMpOgorICAgICAgICAgICAgZnJvbSBpbXBvcnRsaWIgaW1w
b3J0IGludmFsaWRhdGVfY2FjaGVzCisKKyAgICAgICAgICAgIGludmFsaWRhdGVfY2FjaGVzKCkK
KwogICAgIGRlZiBjaGRpcihzZWxmLCBwYXRoKToKICAgICAgICAgIiIiIENoYW5nZSB0aGUgY3Vy
cmVudCB3b3JraW5nIGRpcmVjdG9yeSB0byB0aGUgc3BlY2lmaWVkIHBhdGguCiAgICAgICAgIFBh
dGggY2FuIGJlIGEgc3RyaW5nIG9yIGEgcHkucGF0aC5sb2NhbCBvYmplY3QuCkBAIC0yNDIsNiAr
MjkyLDkgQEAgY2xhc3MgTW9ua2V5UGF0Y2gob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX2N3
ZCA9IG9zLmdldGN3ZCgpCiAgICAgICAgIGlmIGhhc2F0dHIocGF0aCwgImNoZGlyIik6CiAgICAg
ICAgICAgICBwYXRoLmNoZGlyKCkKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBhdGgsIFBhdGgp
OgorICAgICAgICAgICAgIyBtb2Rlcm4gcHl0aG9uIHVzZXMgdGhlIGZzcGF0aCBwcm90b2NvbCBo
ZXJlIExFR0FDWQorICAgICAgICAgICAgb3MuY2hkaXIoc3RyKHBhdGgpKQogICAgICAgICBlbHNl
OgogICAgICAgICAgICAgb3MuY2hkaXIocGF0aCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3Qvbm9kZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9ub2Rlcy5weQpp
bmRleCBlZjc0YzUzZWJhNGUxY2NhNjQ1ZWM2ZjZmYjk2ZDczYTliYTI4NTJmLi4yMDZlOWFlMTYz
ZTM4YjdkYmJhMTE2OTNiYWI3OTY4ZDAwZTVkMTljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9ub2Rlcy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9ub2Rlcy5w
eQpAQCAtMSwxNCArMSwxOCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGlt
cG9ydCBvcworaW1wb3J0IHdhcm5pbmdzCiAKLWltcG9ydCBzaXgKIGltcG9ydCBweQotaW1wb3J0
IGF0dHIKK2ltcG9ydCBzaXgKIAotaW1wb3J0IF9weXRlc3QKIGltcG9ydCBfcHl0ZXN0Ll9jb2Rl
Ci0KLWZyb20gX3B5dGVzdC5tYXJrLnN0cnVjdHVyZXMgaW1wb3J0IE5vZGVLZXl3b3JkcywgTWFy
a0luZm8KK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGdldGZzbGluZW5vCitmcm9tIF9weXRl
c3QubWFyay5zdHJ1Y3R1cmVzIGltcG9ydCBOb2RlS2V5d29yZHMKK2Zyb20gX3B5dGVzdC5vdXRj
b21lcyBpbXBvcnQgZmFpbAogCiBTRVAgPSAiLyIKIApAQCAtMjIsNyArMjYsNyBAQCBkZWYgX3Nw
bGl0bm9kZShub2RlaWQpOgogICAgICAgICAnJwogICAgICAgICAndGVzdGluZy9jb2RlJwogICAg
ICAgICAndGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weScKLSAgICAgICAgJ3Rlc3RpbmcvY29k
ZS90ZXN0X2V4Y2luZm8ucHk6OlRlc3RGb3JtYXR0ZWRFeGNpbmZvOjooKScKKyAgICAgICAgJ3Rl
c3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHk6OlRlc3RGb3JtYXR0ZWRFeGNpbmZvJwogCiAgICAg
UmV0dXJuIHZhbHVlcyBhcmUgbGlzdHMgZS5nLgogICAgICAgICBbXQpAQCAtMzQsNyArMzgsNyBA
QCBkZWYgX3NwbGl0bm9kZShub2RlaWQpOgogICAgICAgICAjIElmIHRoZXJlIGlzIG5vIHJvb3Qg
bm9kZSBhdCBhbGwsIHJldHVybiBhbiBlbXB0eSBsaXN0IHNvIHRoZSBjYWxsZXIncyBsb2dpYyBj
YW4gcmVtYWluIHNhbmUKICAgICAgICAgcmV0dXJuIFtdCiAgICAgcGFydHMgPSBub2RlaWQuc3Bs
aXQoU0VQKQotICAgICMgUmVwbGFjZSBzaW5nbGUgbGFzdCBlbGVtZW50ICd0ZXN0X2Zvby5weTo6
QmFyOjooKScgd2l0aCBtdWx0aXBsZSBlbGVtZW50cyAndGVzdF9mb28ucHknLCAnQmFyJywgJygp
JworICAgICMgUmVwbGFjZSBzaW5nbGUgbGFzdCBlbGVtZW50ICd0ZXN0X2Zvby5weTo6QmFyJyB3
aXRoIG11bHRpcGxlIGVsZW1lbnRzICd0ZXN0X2Zvby5weScsICdCYXInCiAgICAgcGFydHNbLTE6
XSA9IHBhcnRzWy0xXS5zcGxpdCgiOjoiKQogICAgIHJldHVybiBwYXJ0cwogCkBAIC00MiwyOSAr
NDYsMTMgQEAgZGVmIF9zcGxpdG5vZGUobm9kZWlkKToKIGRlZiBpc2NoaWxkbm9kZShiYXNlaWQs
IG5vZGVpZCk6CiAgICAgIiIiUmV0dXJuIFRydWUgaWYgdGhlIG5vZGVpZCBpcyBhIGNoaWxkIG5v
ZGUgb2YgdGhlIGJhc2VpZC4KIAotICAgIEUuZy4gJ2Zvby9iYXI6OkJhejo6KCknIGlzIGEgY2hp
bGQgb2YgJ2ZvbycsICdmb28vYmFyJyBhbmQgJ2Zvby9iYXI6OkJheicsIGJ1dCBub3Qgb2YgJ2Zv
by9ibG9ycCcKKyAgICBFLmcuICdmb28vYmFyOjpCYXonIGlzIGEgY2hpbGQgb2YgJ2ZvbycsICdm
b28vYmFyJyBhbmQgJ2Zvby9iYXI6OkJheicsIGJ1dCBub3Qgb2YgJ2Zvby9ibG9ycCcKICAgICAi
IiIKICAgICBiYXNlX3BhcnRzID0gX3NwbGl0bm9kZShiYXNlaWQpCiAgICAgbm9kZV9wYXJ0cyA9
IF9zcGxpdG5vZGUobm9kZWlkKQogICAgIGlmIGxlbihub2RlX3BhcnRzKSA8IGxlbihiYXNlX3Bh
cnRzKToKICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgcmV0dXJuIG5vZGVfcGFydHNbOmxlbihi
YXNlX3BhcnRzKV0gPT0gYmFzZV9wYXJ0cwotCi0KLUBhdHRyLnMKLWNsYXNzIF9Db21wYXRQcm9w
ZXJ0eShvYmplY3QpOgotICAgIG5hbWUgPSBhdHRyLmliKCkKLQotICAgIGRlZiBfX2dldF9fKHNl
bGYsIG9iaiwgb3duZXIpOgotICAgICAgICBpZiBvYmogaXMgTm9uZToKLSAgICAgICAgICAgIHJl
dHVybiBzZWxmCi0KLSAgICAgICAgIyBUT0RPOiByZWVuYWJsZSBpbiB0aGUgZmVhdHVyZXMgYnJh
bmNoCi0gICAgICAgICMgd2FybmluZ3Mud2FybigKLSAgICAgICAgIyAgICAgInVzYWdlIG9mIHtv
d25lciFyfS57bmFtZX0gaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBweXRlc3Que25hbWV9IGlu
c3RlYWQiLmZvcm1hdCgKLSAgICAgICAgIyAgICAgICAgIG5hbWU9c2VsZi5uYW1lLCBvd25lcj10
eXBlKG93bmVyKS5fX25hbWVfXyksCi0gICAgICAgICMgICAgIFBlbmRpbmdEZXByZWNhdGlvbldh
cm5pbmcsIHN0YWNrbGV2ZWw9MikKLSAgICAgICAgcmV0dXJuIGdldGF0dHIoX19pbXBvcnRfXygi
cHl0ZXN0IiksIHNlbGYubmFtZSkKKyAgICByZXR1cm4gbm9kZV9wYXJ0c1s6IGxlbihiYXNlX3Bh
cnRzKV0gPT0gYmFzZV9wYXJ0cwogCiAKIGNsYXNzIE5vZGUob2JqZWN0KToKQEAgLTEwMiw0OSAr
OTAsNTEgQEAgY2xhc3MgTm9kZShvYmplY3QpOgogICAgICAgICBzZWxmLl9uYW1lMnBzZXVkb2Zp
eHR1cmVkZWYgPSB7fQogCiAgICAgICAgIGlmIG5vZGVpZCBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgIGFzc2VydCAiOjooKSIgbm90IGluIG5vZGVpZAogICAgICAgICAgICAgc2VsZi5fbm9kZWlk
ID0gbm9kZWlkCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBhc3NlcnQgcGFyZW50IGlzIG5v
dCBOb25lCi0gICAgICAgICAgICBzZWxmLl9ub2RlaWQgPSBzZWxmLnBhcmVudC5ub2RlaWQgKyAi
OjoiICsgc2VsZi5uYW1lCisgICAgICAgICAgICBzZWxmLl9ub2RlaWQgPSBzZWxmLnBhcmVudC5u
b2RlaWQKKyAgICAgICAgICAgIGlmIHNlbGYubmFtZSAhPSAiKCkiOgorICAgICAgICAgICAgICAg
IHNlbGYuX25vZGVpZCArPSAiOjoiICsgc2VsZi5uYW1lCiAKICAgICBAcHJvcGVydHkKICAgICBk
ZWYgaWhvb2soc2VsZik6CiAgICAgICAgICIiIiBmc3BhdGggc2Vuc2l0aXZlIGhvb2sgcHJveHkg
dXNlZCB0byBjYWxsIHB5dGVzdCBob29rcyIiIgogICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9u
LmdldGhvb2twcm94eShzZWxmLmZzcGF0aCkKIAotICAgIE1vZHVsZSA9IF9Db21wYXRQcm9wZXJ0
eSgiTW9kdWxlIikKLSAgICBDbGFzcyA9IF9Db21wYXRQcm9wZXJ0eSgiQ2xhc3MiKQotICAgIElu
c3RhbmNlID0gX0NvbXBhdFByb3BlcnR5KCJJbnN0YW5jZSIpCi0gICAgRnVuY3Rpb24gPSBfQ29t
cGF0UHJvcGVydHkoIkZ1bmN0aW9uIikKLSAgICBGaWxlID0gX0NvbXBhdFByb3BlcnR5KCJGaWxl
IikKLSAgICBJdGVtID0gX0NvbXBhdFByb3BlcnR5KCJJdGVtIikKLQotICAgIGRlZiBfZ2V0Y3Vz
dG9tY2xhc3Moc2VsZiwgbmFtZSk6Ci0gICAgICAgIG1heWJlX2NvbXBhdHByb3AgPSBnZXRhdHRy
KHR5cGUoc2VsZiksIG5hbWUpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UobWF5YmVfY29tcGF0cHJv
cCwgX0NvbXBhdFByb3BlcnR5KToKLSAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKF9faW1wb3J0
X18oInB5dGVzdCIpLCBuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgY2xzID0gZ2V0
YXR0cihzZWxmLCBuYW1lKQotICAgICAgICAgICAgIyBUT0RPOiByZWVuYWJsZSBpbiB0aGUgZmVh
dHVyZXMgYnJhbmNoCi0gICAgICAgICAgICAjIHdhcm5pbmdzLndhcm4oInVzZSBvZiBub2RlLiVz
IGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICMgICAgInVzZSBweXRlc3RfcHljb2xsZWN0
X21ha2VpdGVtKC4uLikgdG8gY3JlYXRlIGN1c3RvbSAiCi0gICAgICAgICAgICAjICAgICJjb2xs
ZWN0aW9uIG5vZGVzIiAlIG5hbWUsIGNhdGVnb3J5PURlcHJlY2F0aW9uV2FybmluZykKLSAgICAg
ICAgcmV0dXJuIGNscwotCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4g
IjwlcyAlcj4iICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBnZXRhdHRyKHNlbGYsICJuYW1l
IiwgTm9uZSkpCi0KLSAgICBkZWYgd2FybihzZWxmLCBjb2RlLCBtZXNzYWdlKToKLSAgICAgICAg
IiIiIGdlbmVyYXRlIGEgd2FybmluZyB3aXRoIHRoZSBnaXZlbiBjb2RlIGFuZCBtZXNzYWdlIGZv
ciB0aGlzCi0gICAgICAgIGl0ZW0uICIiIgotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2Rl
LCBzdHIpCi0gICAgICAgIGZzbG9jYXRpb24gPSBnZXRhdHRyKHNlbGYsICJsb2NhdGlvbiIsIE5v
bmUpCi0gICAgICAgIGlmIGZzbG9jYXRpb24gaXMgTm9uZToKLSAgICAgICAgICAgIGZzbG9jYXRp
b24gPSBnZXRhdHRyKHNlbGYsICJmc3BhdGgiLCBOb25lKQotICAgICAgICBzZWxmLmlob29rLnB5
dGVzdF9sb2d3YXJuaW5nLmNhbGxfaGlzdG9yaWMoCi0gICAgICAgICAgICBrd2FyZ3M9ZGljdCgK
LSAgICAgICAgICAgICAgICBjb2RlPWNvZGUsIG1lc3NhZ2U9bWVzc2FnZSwgbm9kZWlkPXNlbGYu
bm9kZWlkLCBmc2xvY2F0aW9uPWZzbG9jYXRpb24KKyAgICAgICAgcmV0dXJuICI8JXMgJXM+IiAl
IChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgZ2V0YXR0cihzZWxmLCAibmFtZSIsIE5vbmUpKQor
CisgICAgZGVmIHdhcm4oc2VsZiwgd2FybmluZyk6CisgICAgICAgICIiIklzc3VlIGEgd2Fybmlu
ZyBmb3IgdGhpcyBpdGVtLgorCisgICAgICAgIFdhcm5pbmdzIHdpbGwgYmUgZGlzcGxheWVkIGFm
dGVyIHRoZSB0ZXN0IHNlc3Npb24sIHVubGVzcyBleHBsaWNpdGx5IHN1cHByZXNzZWQKKworICAg
ICAgICA6cGFyYW0gV2FybmluZyB3YXJuaW5nOiB0aGUgd2FybmluZyBpbnN0YW5jZSB0byBpc3N1
ZS4gTXVzdCBiZSBhIHN1YmNsYXNzIG9mIFB5dGVzdFdhcm5pbmcuCisKKyAgICAgICAgOnJhaXNl
IFZhbHVlRXJyb3I6IGlmIGBgd2FybmluZ2BgIGluc3RhbmNlIGlzIG5vdCBhIHN1YmNsYXNzIG9m
IFB5dGVzdFdhcm5pbmcuCisKKyAgICAgICAgRXhhbXBsZSB1c2FnZToKKworICAgICAgICAuLiBj
b2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAgICAgICAgIG5vZGUud2FybihQeXRlc3RXYXJuaW5n
KCJzb21lIG1lc3NhZ2UiKSkKKworICAgICAgICAiIiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0Lndh
cm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVzdFdhcm5pbmcKKworICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZSh3YXJuaW5nLCBQeXRlc3RXYXJuaW5nKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoCisgICAgICAgICAgICAgICAgIndhcm5pbmcgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQeXRl
c3RXYXJuaW5nIG9yIHN1YmNsYXNzLCBnb3QgeyFyfSIuZm9ybWF0KAorICAgICAgICAgICAgICAg
ICAgICB3YXJuaW5nCisgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgKQorICAgICAgICBw
YXRoLCBsaW5lbm8gPSBnZXRfZnNsb2NhdGlvbl9mcm9tX2l0ZW0oc2VsZikKKyAgICAgICAgd2Fy
bmluZ3Mud2Fybl9leHBsaWNpdCgKKyAgICAgICAgICAgIHdhcm5pbmcsCisgICAgICAgICAgICBj
YXRlZ29yeT1Ob25lLAorICAgICAgICAgICAgZmlsZW5hbWU9c3RyKHBhdGgpLAorICAgICAgICAg
ICAgbGluZW5vPWxpbmVubyArIDEgaWYgbGluZW5vIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKICAg
ICAgICAgKQogCiAgICAgIyBtZXRob2RzIGZvciBvcmRlcmluZyBub2RlcwpAQCAtMTczLDEwICsx
NjMsMTMgQEAgY2xhc3MgTm9kZShvYmplY3QpOgogICAgICAgICBjaGFpbi5yZXZlcnNlKCkKICAg
ICAgICAgcmV0dXJuIGNoYWluCiAKLSAgICBkZWYgYWRkX21hcmtlcihzZWxmLCBtYXJrZXIpOgor
ICAgIGRlZiBhZGRfbWFya2VyKHNlbGYsIG1hcmtlciwgYXBwZW5kPVRydWUpOgogICAgICAgICAi
IiJkeW5hbWljYWxseSBhZGQgYSBtYXJrZXIgb2JqZWN0IHRvIHRoZSBub2RlLgogCi0gICAgICAg
IDp0eXBlIG1hcmtlcjogc3RyIG9yIHB5dGVzdC5tYXJrLioKKyAgICAgICAgOnR5cGUgbWFya2Vy
OiBgYHN0cmBgIG9yIGBgcHl0ZXN0Lm1hcmsuKmBgICBvYmplY3QKKyAgICAgICAgOnBhcmFtIG1h
cmtlcjoKKyAgICAgICAgICAgIGBgYXBwZW5kPVRydWVgYCB3aGV0aGVyIHRvIGFwcGVuZCB0aGUg
bWFya2VyLAorICAgICAgICAgICAgaWYgYGBGYWxzZWBgIGluc2VydCBhdCBwb3NpdGlvbiBgYDBg
YC4KICAgICAgICAgIiIiCiAgICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrRGVj
b3JhdG9yLCBNQVJLX0dFTgogCkBAIC0xODUsNyArMTc4LDEwIEBAIGNsYXNzIE5vZGUob2JqZWN0
KToKICAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShtYXJrZXIsIE1hcmtEZWNvcmF0b3IpOgog
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaXMgbm90IGEgc3RyaW5nIG9yIHB5dGVzdC5t
YXJrLiogTWFya2VyIikKICAgICAgICAgc2VsZi5rZXl3b3Jkc1ttYXJrZXIubmFtZV0gPSBtYXJr
ZXIKLSAgICAgICAgc2VsZi5vd25fbWFya2Vycy5hcHBlbmQobWFya2VyLm1hcmspCisgICAgICAg
IGlmIGFwcGVuZDoKKyAgICAgICAgICAgIHNlbGYub3duX21hcmtlcnMuYXBwZW5kKG1hcmtlci5t
YXJrKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5vd25fbWFya2Vycy5pbnNlcnQo
MCwgbWFya2VyLm1hcmspCiAKICAgICBkZWYgaXRlcl9tYXJrZXJzKHNlbGYsIG5hbWU9Tm9uZSk6
CiAgICAgICAgICIiIgpAQCAtMjE2LDIwICsyMTIsNiBAQCBjbGFzcyBOb2RlKG9iamVjdCk6CiAg
ICAgICAgICIiIgogICAgICAgICByZXR1cm4gbmV4dChzZWxmLml0ZXJfbWFya2VycyhuYW1lPW5h
bWUpLCBkZWZhdWx0KQogCi0gICAgZGVmIGdldF9tYXJrZXIoc2VsZiwgbmFtZSk6Ci0gICAgICAg
ICIiIiBnZXQgYSBtYXJrZXIgb2JqZWN0IGZyb20gdGhpcyBub2RlIG9yIE5vbmUgaWYKLSAgICAg
ICAgdGhlIG5vZGUgZG9lc24ndCBoYXZlIGEgbWFya2VyIHdpdGggdGhhdCBuYW1lLgotCi0gICAg
ICAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjYKLSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaGFzIGJl
ZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZgotICAgICAgICAgICAgOm1ldGg6YE5vZGUuZ2V0X2Ns
b3Nlc3RfbWFya2VyIDxfcHl0ZXN0Lm5vZGVzLk5vZGUuZ2V0X2Nsb3Nlc3RfbWFya2VyPmAgYW5k
Ci0gICAgICAgICAgICA6bWV0aDpgTm9kZS5pdGVyX21hcmtlcnMgPF9weXRlc3Qubm9kZXMuTm9k
ZS5pdGVyX21hcmtlcnM+YCwgc2VlIDpyZWY6YHVwZGF0ZSBtYXJrZXIgY29kZWAKLSAgICAgICAg
ICAgIGZvciBtb3JlIGRldGFpbHMuCi0gICAgICAgICIiIgotICAgICAgICBtYXJrZXJzID0gbGlz
dChzZWxmLml0ZXJfbWFya2VycyhuYW1lPW5hbWUpKQotICAgICAgICBpZiBtYXJrZXJzOgotICAg
ICAgICAgICAgcmV0dXJuIE1hcmtJbmZvKG1hcmtlcnMpCi0KICAgICBkZWYgbGlzdGV4dHJha2V5
d29yZHMoc2VsZik6CiAgICAgICAgICIiIiBSZXR1cm4gYSBzZXQgb2YgYWxsIGV4dHJhIGtleXdv
cmRzIGluIHNlbGYgYW5kIGFueSBwYXJlbnRzLiIiIgogICAgICAgICBleHRyYV9rZXl3b3JkcyA9
IHNldCgpCkBAIC0yNjAsMTEgKzI0MiwxNCBAQCBjbGFzcyBOb2RlKG9iamVjdCk6CiAgICAgICAg
IHBhc3MKIAogICAgIGRlZiBfcmVwcl9mYWlsdXJlX3B5KHNlbGYsIGV4Y2luZm8sIHN0eWxlPU5v
bmUpOgorICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2UoZmFpbC5FeGNlcHRpb24pOgor
ICAgICAgICAgICAgaWYgbm90IGV4Y2luZm8udmFsdWUucHl0cmFjZToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc2l4LnRleHRfdHlwZShleGNpbmZvLnZhbHVlKQogICAgICAgICBmbSA9IHNlbGYu
c2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKICAgICAgICAgaWYgZXhjaW5mby5lcnJpc2luc3RhbmNl
KGZtLkZpeHR1cmVMb29rdXBFcnJvcik6CiAgICAgICAgICAgICByZXR1cm4gZXhjaW5mby52YWx1
ZS5mb3JtYXRyZXByKCkKICAgICAgICAgdGJmaWx0ZXIgPSBUcnVlCi0gICAgICAgIGlmIHNlbGYu
Y29uZmlnLm9wdGlvbi5mdWxsdHJhY2U6CisgICAgICAgIGlmIHNlbGYuY29uZmlnLmdldG9wdGlv
bigiZnVsbHRyYWNlIiwgRmFsc2UpOgogICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIHRiID0gX3B5dGVzdC5fY29kZS5UcmFjZWJhY2soW2V4Y2lu
Zm8udHJhY2ViYWNrWy0xXV0pCkBAIC0yNzYsMTEgKzI2MSwxNiBAQCBjbGFzcyBOb2RlKG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKICAgICAgICAgIyBYWFggc2hvdWxk
IGV4Y2luZm8uZ2V0cmVwciByZWNvcmQgYWxsIGRhdGEgYW5kIHRvdGVybWluYWwoKSBwcm9jZXNz
IGl0PwogICAgICAgICBpZiBzdHlsZSBpcyBOb25lOgotICAgICAgICAgICAgaWYgc2VsZi5jb25m
aWcub3B0aW9uLnRic3R5bGUgPT0gInNob3J0IjoKKyAgICAgICAgICAgIGlmIHNlbGYuY29uZmln
LmdldG9wdGlvbigidGJzdHlsZSIsICJhdXRvIikgPT0gInNob3J0IjoKICAgICAgICAgICAgICAg
ICBzdHlsZSA9ICJzaG9ydCIKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc3R5
bGUgPSAibG9uZyIKIAorICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2Ui
LCAwKSA+IDE6CisgICAgICAgICAgICB0cnVuY2F0ZV9sb2NhbHMgPSBGYWxzZQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgdHJ1bmNhdGVfbG9jYWxzID0gVHJ1ZQorCiAgICAgICAgIHRyeToK
ICAgICAgICAgICAgIG9zLmdldGN3ZCgpCiAgICAgICAgICAgICBhYnNwYXRoID0gRmFsc2UKQEAg
LTI5MCwxNCArMjgwLDMzIEBAIGNsYXNzIE5vZGUob2JqZWN0KToKICAgICAgICAgcmV0dXJuIGV4
Y2luZm8uZ2V0cmVwcigKICAgICAgICAgICAgIGZ1bmNhcmdzPVRydWUsCiAgICAgICAgICAgICBh
YnNwYXRoPWFic3BhdGgsCi0gICAgICAgICAgICBzaG93bG9jYWxzPXNlbGYuY29uZmlnLm9wdGlv
bi5zaG93bG9jYWxzLAorICAgICAgICAgICAgc2hvd2xvY2Fscz1zZWxmLmNvbmZpZy5nZXRvcHRp
b24oInNob3dsb2NhbHMiLCBGYWxzZSksCiAgICAgICAgICAgICBzdHlsZT1zdHlsZSwKICAgICAg
ICAgICAgIHRiZmlsdGVyPXRiZmlsdGVyLAorICAgICAgICAgICAgdHJ1bmNhdGVfbG9jYWxzPXRy
dW5jYXRlX2xvY2FscywKICAgICAgICAgKQogCiAgICAgcmVwcl9mYWlsdXJlID0gX3JlcHJfZmFp
bHVyZV9weQogCiAKK2RlZiBnZXRfZnNsb2NhdGlvbl9mcm9tX2l0ZW0oaXRlbSk6CisgICAgIiIi
VHJpZXMgdG8gZXh0cmFjdCB0aGUgYWN0dWFsIGxvY2F0aW9uIGZyb20gYW4gaXRlbSwgZGVwZW5k
aW5nIG9uIGF2YWlsYWJsZSBhdHRyaWJ1dGVzOgorCisgICAgKiAiZnNsb2NhdGlvbiI6IGEgcGFp
ciAocGF0aCwgbGluZW5vKQorICAgICogIm9iaiI6IGEgUHl0aG9uIG9iamVjdCB0aGF0IHRoZSBp
dGVtIHdyYXBzLgorICAgICogImZzcGF0aCI6IGp1c3QgYSBwYXRoCisKKyAgICA6cnR5cGU6IGEg
dHVwbGUgb2YgKHN0cnxMb2NhbFBhdGgsIGludCkgd2l0aCBmaWxlbmFtZSBhbmQgbGluZSBudW1i
ZXIuCisgICAgIiIiCisgICAgcmVzdWx0ID0gZ2V0YXR0cihpdGVtLCAibG9jYXRpb24iLCBOb25l
KQorICAgIGlmIHJlc3VsdCBpcyBub3QgTm9uZToKKyAgICAgICAgcmV0dXJuIHJlc3VsdFs6Ml0K
KyAgICBvYmogPSBnZXRhdHRyKGl0ZW0sICJvYmoiLCBOb25lKQorICAgIGlmIG9iaiBpcyBub3Qg
Tm9uZToKKyAgICAgICAgcmV0dXJuIGdldGZzbGluZW5vKG9iaikKKyAgICByZXR1cm4gZ2V0YXR0
cihpdGVtLCAiZnNwYXRoIiwgInVua25vd24gbG9jYXRpb24iKSwgLTEKKworCiBjbGFzcyBDb2xs
ZWN0b3IoTm9kZSk6CiAgICAgIiIiIENvbGxlY3RvciBpbnN0YW5jZXMgY3JlYXRlIGNoaWxkcmVu
IHRocm91Z2ggY29sbGVjdCgpCiAgICAgICAgIGFuZCB0aHVzIGl0ZXJhdGl2ZWx5IGJ1aWxkIGEg
dHJlZS4KQEAgLTMxNyw3ICszMjYsMTQgQEAgY2xhc3MgQ29sbGVjdG9yKE5vZGUpOgogICAgICAg
ICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2Uoc2VsZi5Db2xsZWN0RXJyb3IpOgogICAgICAgICAg
ICAgZXhjID0gZXhjaW5mby52YWx1ZQogICAgICAgICAgICAgcmV0dXJuIHN0cihleGMuYXJnc1sw
XSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcHJfZmFpbHVyZV9weShleGNpbmZvLCBzdHlsZT0i
c2hvcnQiKQorCisgICAgICAgICMgUmVzcGVjdCBleHBsaWNpdCB0YnN0eWxlIG9wdGlvbiwgYnV0
IGRlZmF1bHQgdG8gInNob3J0IgorICAgICAgICAjIChOb25lLl9yZXByX2ZhaWx1cmVfcHkgZGVm
YXVsdHMgdG8gImxvbmciIHdpdGhvdXQgImZ1bGx0cmFjZSIgb3B0aW9uKS4KKyAgICAgICAgdGJz
dHlsZSA9IHNlbGYuY29uZmlnLmdldG9wdGlvbigidGJzdHlsZSIsICJhdXRvIikKKyAgICAgICAg
aWYgdGJzdHlsZSA9PSAiYXV0byI6CisgICAgICAgICAgICB0YnN0eWxlID0gInNob3J0IgorCisg
ICAgICAgIHJldHVybiBzZWxmLl9yZXByX2ZhaWx1cmVfcHkoZXhjaW5mbywgc3R5bGU9dGJzdHls
ZSkKIAogICAgIGRlZiBfcHJ1bmV0cmFjZWJhY2soc2VsZiwgZXhjaW5mbyk6CiAgICAgICAgIGlm
IGhhc2F0dHIoc2VsZiwgImZzcGF0aCIpOgpAQCAtMzMxLDExICszNDcsMTAgQEAgY2xhc3MgQ29s
bGVjdG9yKE5vZGUpOgogZGVmIF9jaGVja19pbml0aWFscGF0aHNfZm9yX3JlbHBhdGgoc2Vzc2lv
biwgZnNwYXRoKToKICAgICBmb3IgaW5pdGlhbF9wYXRoIGluIHNlc3Npb24uX2luaXRpYWxwYXRo
czoKICAgICAgICAgaWYgZnNwYXRoLmNvbW1vbihpbml0aWFsX3BhdGgpID09IGluaXRpYWxfcGF0
aDoKLSAgICAgICAgICAgIHJldHVybiBmc3BhdGgucmVsdG8oaW5pdGlhbF9wYXRoLmRpcm5hbWUp
CisgICAgICAgICAgICByZXR1cm4gZnNwYXRoLnJlbHRvKGluaXRpYWxfcGF0aCkKIAogCiBjbGFz
cyBGU0NvbGxlY3RvcihDb2xsZWN0b3IpOgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZzcGF0
aCwgcGFyZW50PU5vbmUsIGNvbmZpZz1Ob25lLCBzZXNzaW9uPU5vbmUsIG5vZGVpZD1Ob25lKToK
ICAgICAgICAgZnNwYXRoID0gcHkucGF0aC5sb2NhbChmc3BhdGgpICAjIHh4eCBvbmx5IGZvciB0
ZXN0X3Jlc3VsdGxvZy5weT8KICAgICAgICAgbmFtZSA9IGZzcGF0aC5iYXNlbmFtZQpAQCAtMzUz
LDcgKzM2OCw3IEBAIGNsYXNzIEZTQ29sbGVjdG9yKENvbGxlY3Rvcik6CiAKICAgICAgICAgICAg
IGlmIG5vdCBub2RlaWQ6CiAgICAgICAgICAgICAgICAgbm9kZWlkID0gX2NoZWNrX2luaXRpYWxw
YXRoc19mb3JfcmVscGF0aChzZXNzaW9uLCBmc3BhdGgpCi0gICAgICAgICAgICBpZiBvcy5zZXAg
IT0gU0VQOgorICAgICAgICAgICAgaWYgbm9kZWlkIGFuZCBvcy5zZXAgIT0gU0VQOgogICAgICAg
ICAgICAgICAgIG5vZGVpZCA9IG5vZGVpZC5yZXBsYWNlKG9zLnNlcCwgU0VQKQogCiAgICAgICAg
IHN1cGVyKEZTQ29sbGVjdG9yLCBzZWxmKS5fX2luaXRfXygKQEAgLTM2OSw2ICszODQsNyBAQCBj
bGFzcyBJdGVtKE5vZGUpOgogICAgICIiIiBhIGJhc2ljIHRlc3QgaW52b2NhdGlvbiBpdGVtLiBO
b3RlIHRoYXQgZm9yIGEgc2luZ2xlIGZ1bmN0aW9uCiAgICAgdGhlcmUgbWlnaHQgYmUgbXVsdGlw
bGUgdGVzdCBpbnZvY2F0aW9uIGl0ZW1zLgogICAgICIiIgorCiAgICAgbmV4dGl0ZW0gPSBOb25l
CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgcGFyZW50PU5vbmUsIGNvbmZpZz1Ob25l
LCBzZXNzaW9uPU5vbmUsIG5vZGVpZD1Ob25lKToKQEAgLTQwNywxMyArNDIzLDcgQEAgY2xhc3Mg
SXRlbShOb2RlKToKICAgICAgICAgICAgIHJldHVybiBzZWxmLl9sb2NhdGlvbgogICAgICAgICBl
eGNlcHQgQXR0cmlidXRlRXJyb3I6CiAgICAgICAgICAgICBsb2NhdGlvbiA9IHNlbGYucmVwb3J0
aW5mbygpCi0gICAgICAgICAgICAjIGJlc3RyZWxwYXRoIGlzIGEgcXVpdGUgc2xvdyBmdW5jdGlv
bgotICAgICAgICAgICAgY2FjaGUgPSBzZWxmLmNvbmZpZy5fX2RpY3RfXy5zZXRkZWZhdWx0KCJf
YmVzdHJlbHBhdGhjYWNoZSIsIHt9KQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IGZzcGF0aCA9IGNhY2hlW2xvY2F0aW9uWzBdXQotICAgICAgICAgICAgZXhjZXB0IEtleUVycm9y
OgotICAgICAgICAgICAgICAgIGZzcGF0aCA9IHNlbGYuc2Vzc2lvbi5mc3BhdGguYmVzdHJlbHBh
dGgobG9jYXRpb25bMF0pCi0gICAgICAgICAgICAgICAgY2FjaGVbbG9jYXRpb25bMF1dID0gZnNw
YXRoCisgICAgICAgICAgICBmc3BhdGggPSBzZWxmLnNlc3Npb24uX25vZGVfbG9jYXRpb25fdG9f
cmVscGF0aChsb2NhdGlvblswXSkKICAgICAgICAgICAgIGxvY2F0aW9uID0gKGZzcGF0aCwgbG9j
YXRpb25bMV0sIHN0cihsb2NhdGlvblsyXSkpCiAgICAgICAgICAgICBzZWxmLl9sb2NhdGlvbiA9
IGxvY2F0aW9uCiAgICAgICAgICAgICByZXR1cm4gbG9jYXRpb24KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L25vc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9ub3Nl
LnB5CmluZGV4IGJiMmU0Mjc3ZDFjODM0ZjI4ZGY0MTBmNDM4YTA1NmNhODBlYjdkYjYuLmZiYWI5
MWRhMjQ5OWI3ODNjNzBlYWMyNDE3MDczMjM5YmFiYzk1YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L25vc2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvbm9z
ZS5weQpAQCAtMSw5ICsxLDE3IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiIHJ1biB0
ZXN0IHN1aXRlcyB3cml0dGVuIGZvciBub3NlLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9u
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBzeXMKIAot
ZnJvbSBfcHl0ZXN0IGltcG9ydCB1bml0dGVzdCwgcnVubmVyLCBweXRob24KK2ltcG9ydCBzaXgK
KworaW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0IGltcG9ydCBweXRob24KK2Zyb20gX3B5dGVz
dCBpbXBvcnQgcnVubmVyCitmcm9tIF9weXRlc3QgaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIF9weXRl
c3QuY29uZmlnIGltcG9ydCBob29raW1wbAogCiAKQEAgLTE5LDIwICsyNywxNSBAQCBkZWYgZ2V0
X3NraXBfZXhjZXB0aW9ucygpOgogZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbSwg
Y2FsbCk6CiAgICAgaWYgY2FsbC5leGNpbmZvIGFuZCBjYWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5j
ZShnZXRfc2tpcF9leGNlcHRpb25zKCkpOgogICAgICAgICAjIGxldCdzIHN1YnN0aXR1dGUgdGhl
IGV4Y2luZm8gd2l0aCBhIHB5dGVzdC5za2lwIG9uZQotICAgICAgICBjYWxsMiA9IGNhbGwuX19j
bGFzc19fKGxhbWJkYTogcnVubmVyLnNraXAoc3RyKGNhbGwuZXhjaW5mby52YWx1ZSkpLCBjYWxs
LndoZW4pCisgICAgICAgIGNhbGwyID0gcnVubmVyLkNhbGxJbmZvLmZyb21fY2FsbCgKKyAgICAg
ICAgICAgIGxhbWJkYTogcHl0ZXN0LnNraXAoc2l4LnRleHRfdHlwZShjYWxsLmV4Y2luZm8udmFs
dWUpKSwgY2FsbC53aGVuCisgICAgICAgICkKICAgICAgICAgY2FsbC5leGNpbmZvID0gY2FsbDIu
ZXhjaW5mbwogCiAKIEBob29raW1wbCh0cnlsYXN0PVRydWUpCiBkZWYgcHl0ZXN0X3J1bnRlc3Rf
c2V0dXAoaXRlbSk6CiAgICAgaWYgaXNfcG90ZW50aWFsX25vc2V0ZXN0KGl0ZW0pOgotICAgICAg
ICBpZiBpc2luc3RhbmNlKGl0ZW0ucGFyZW50LCBweXRob24uR2VuZXJhdG9yKToKLSAgICAgICAg
ICAgIGdlbiA9IGl0ZW0ucGFyZW50Ci0gICAgICAgICAgICBpZiBub3QgaGFzYXR0cihnZW4sICJf
bm9zZWdlbnNldHVwIik6Ci0gICAgICAgICAgICAgICAgY2FsbF9vcHRpb25hbChnZW4ub2JqLCAi
c2V0dXAiKQotICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZ2VuLnBhcmVudCwgcHl0aG9u
Lkluc3RhbmNlKToKLSAgICAgICAgICAgICAgICAgICAgY2FsbF9vcHRpb25hbChnZW4ucGFyZW50
Lm9iaiwgInNldHVwIikKLSAgICAgICAgICAgICAgICBnZW4uX25vc2VnZW5zZXR1cCA9IFRydWUK
ICAgICAgICAgaWYgbm90IGNhbGxfb3B0aW9uYWwoaXRlbS5vYmosICJzZXR1cCIpOgogICAgICAg
ICAgICAgIyBjYWxsIG1vZHVsZSBsZXZlbCBzZXR1cCBpZiB0aGVyZSBpcyBubyBvYmplY3QgbGV2
ZWwgb25lCiAgICAgICAgICAgICBjYWxsX29wdGlvbmFsKGl0ZW0ucGFyZW50Lm9iaiwgInNldHVw
IikKQEAgLTQ5LDExICs1Miw2IEBAIGRlZiB0ZWFyZG93bl9ub3NlKGl0ZW0pOgogICAgICAgICAj
ICAgIGRlbCBpdGVtLnBhcmVudC5fbm9zZWdlbnNldHVwCiAKIAotZGVmIHB5dGVzdF9tYWtlX2Nv
bGxlY3RfcmVwb3J0KGNvbGxlY3Rvcik6Ci0gICAgaWYgaXNpbnN0YW5jZShjb2xsZWN0b3IsIHB5
dGhvbi5HZW5lcmF0b3IpOgotICAgICAgICBjYWxsX29wdGlvbmFsKGNvbGxlY3Rvci5vYmosICJz
ZXR1cCIpCi0KLQogZGVmIGlzX3BvdGVudGlhbF9ub3NldGVzdChpdGVtKToKICAgICAjIGV4dHJh
IGNoZWNrIG5lZWRlZCBzaW5jZSB3ZSBkbyBub3QgZG8gbm9zZSBzdHlsZSBzZXR1cC90ZWFyZG93
bgogICAgICMgb24gZGlyZWN0IHVuaXR0ZXN0IHN0eWxlIGNsYXNzZXMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L291dGNvbWVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3Qvb3V0Y29tZXMucHkKaW5kZXggOGEzNjYyZTFiM2U3NDExNzMyNjNkOGQwMjdlOGI4NDJhZWM5
OTM5Zi4uNDYyMGY5NTdjN2RhNjZiYmNkZmY1N2VlOGRhODJlNzAzZjY4NmQ4MyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvb3V0Y29tZXMucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3Qvb3V0Y29tZXMucHkKQEAgLTEsMTEgKzEsMTYgQEAKKyMgLSotIGNvZGluZzog
dXRmLTggLSotCiAiIiIKIGV4Y2VwdGlvbiBjbGFzc2VzIGFuZCBjb25zdGFudHMgaGFuZGxpbmcg
dGVzdCBvdXRjb21lcwogYXMgd2VsbCBhcyBmdW5jdGlvbnMgY3JlYXRpbmcgdGhlbQogIiIiCi1m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1
bmN0aW9uCi1pbXBvcnQgcHkKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBzeXMKIAorZnJvbSBwYWNrYWdpbmcudmVyc2lvbiBp
bXBvcnQgVmVyc2lvbgorCiAKIGNsYXNzIE91dGNvbWVFeGNlcHRpb24oQmFzZUV4Y2VwdGlvbik6
CiAgICAgIiIiIE91dGNvbWVFeGNlcHRpb24gYW5kIGl0cyBzdWJjbGFzcyBpbnN0YW5jZXMgaW5k
aWNhdGUgYW5kCkBAIC0yMSw3ICsyNiw3IEBAIGNsYXNzIE91dGNvbWVFeGNlcHRpb24oQmFzZUV4
Y2VwdGlvbik6CiAgICAgICAgIGlmIHNlbGYubXNnOgogICAgICAgICAgICAgdmFsID0gc2VsZi5t
c2cKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsLCBieXRlcyk6Ci0gICAgICAgICAgICAg
ICAgdmFsID0gcHkuX2J1aWx0aW4uX3RvdGV4dCh2YWwsIGVycm9ycz0icmVwbGFjZSIpCisgICAg
ICAgICAgICAgICAgdmFsID0gdmFsLmRlY29kZSgiVVRGLTgiLCBlcnJvcnM9InJlcGxhY2UiKQog
ICAgICAgICAgICAgcmV0dXJuIHZhbAogICAgICAgICByZXR1cm4gIjwlcyBpbnN0YW5jZT4iICUg
KHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCkKIApAQCAtNDMsNDMgKzQ4LDU5IEBAIGNsYXNzIFNr
aXBwZWQoT3V0Y29tZUV4Y2VwdGlvbik6CiAKIGNsYXNzIEZhaWxlZChPdXRjb21lRXhjZXB0aW9u
KToKICAgICAiIiIgcmFpc2VkIGZyb20gYW4gZXhwbGljaXQgY2FsbCB0byBweXRlc3QuZmFpbCgp
ICIiIgorCiAgICAgX19tb2R1bGVfXyA9ICJidWlsdGlucyIKIAogCi1jbGFzcyBFeGl0KEtleWJv
YXJkSW50ZXJydXB0KToKK2NsYXNzIEV4aXQoRXhjZXB0aW9uKToKICAgICAiIiIgcmFpc2VkIGZv
ciBpbW1lZGlhdGUgcHJvZ3JhbSBleGl0cyAobm8gdHJhY2ViYWNrcy9zdW1tYXJpZXMpIiIiCiAK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnPSJ1bmtub3duIHJlYXNvbiIpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBtc2c9InVua25vd24gcmVhc29uIiwgcmV0dXJuY29kZT1Ob25lKToKICAg
ICAgICAgc2VsZi5tc2cgPSBtc2cKLSAgICAgICAgS2V5Ym9hcmRJbnRlcnJ1cHQuX19pbml0X18o
c2VsZiwgbXNnKQorICAgICAgICBzZWxmLnJldHVybmNvZGUgPSByZXR1cm5jb2RlCisgICAgICAg
IHN1cGVyKEV4aXQsIHNlbGYpLl9faW5pdF9fKG1zZykKIAogCiAjIGV4cG9zZWQgaGVscGVyIG1l
dGhvZHMKIAogCi1kZWYgZXhpdChtc2cpOgotICAgICIiIiBleGl0IHRlc3RpbmcgcHJvY2VzcyBh
cyBpZiBLZXlib2FyZEludGVycnVwdCB3YXMgdHJpZ2dlcmVkLiAiIiIKK2RlZiBleGl0KG1zZywg
cmV0dXJuY29kZT1Ob25lKToKKyAgICAiIiIKKyAgICBFeGl0IHRlc3RpbmcgcHJvY2Vzcy4KKwor
ICAgIDpwYXJhbSBzdHIgbXNnOiBtZXNzYWdlIHRvIGRpc3BsYXkgdXBvbiBleGl0LgorICAgIDpw
YXJhbSBpbnQgcmV0dXJuY29kZTogcmV0dXJuIGNvZGUgdG8gYmUgdXNlZCB3aGVuIGV4aXRpbmcg
cHl0ZXN0LgorICAgICIiIgogICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgIHJhaXNl
IEV4aXQobXNnKQorICAgIHJhaXNlIEV4aXQobXNnLCByZXR1cm5jb2RlKQogCiAKIGV4aXQuRXhj
ZXB0aW9uID0gRXhpdAogCiAKIGRlZiBza2lwKG1zZz0iIiwgKiprd2FyZ3MpOgotICAgICIiIiBz
a2lwIGFuIGV4ZWN1dGluZyB0ZXN0IHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UuICBOb3RlOiBpdCdz
IHVzdWFsbHkKLSAgICBiZXR0ZXIgdG8gdXNlIHRoZSBweXRlc3QubWFyay5za2lwaWYgbWFya2Vy
IHRvIGRlY2xhcmUgYSB0ZXN0IHRvIGJlCi0gICAgc2tpcHBlZCB1bmRlciBjZXJ0YWluIGNvbmRp
dGlvbnMgbGlrZSBtaXNtYXRjaGluZyBwbGF0Zm9ybXMgb3IKLSAgICBkZXBlbmRlbmNpZXMuICBT
ZWUgdGhlIHB5dGVzdF9za2lwcGluZyBwbHVnaW4gZm9yIGRldGFpbHMuCisgICAgIiIiCisgICAg
U2tpcCBhbiBleGVjdXRpbmcgdGVzdCB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlLgorCisgICAgVGhp
cyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9ubHkgZHVyaW5nIHRlc3RpbmcgKHNldHVwLCBj
YWxsIG9yIHRlYXJkb3duKSBvcgorICAgIGR1cmluZyBjb2xsZWN0aW9uIGJ5IHVzaW5nIHRoZSBg
YGFsbG93X21vZHVsZV9sZXZlbGBgIGZsYWcuICBUaGlzIGZ1bmN0aW9uIGNhbgorICAgIGJlIGNh
bGxlZCBpbiBkb2N0ZXN0cyBhcyB3ZWxsLgogCiAgICAgOmt3YXJnIGJvb2wgYWxsb3dfbW9kdWxl
X2xldmVsOiBhbGxvd3MgdGhpcyBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYXQKICAgICAgICAgbW9k
dWxlIGxldmVsLCBza2lwcGluZyB0aGUgcmVzdCBvZiB0aGUgbW9kdWxlLiBEZWZhdWx0IHRvIEZh
bHNlLgorCisgICAgLi4gbm90ZTo6CisgICAgICAgIEl0IGlzIGJldHRlciB0byB1c2UgdGhlIDpy
ZWY6YHB5dGVzdC5tYXJrLnNraXBpZiByZWZgIG1hcmtlciB3aGVuIHBvc3NpYmxlIHRvIGRlY2xh
cmUgYSB0ZXN0IHRvIGJlCisgICAgICAgIHNraXBwZWQgdW5kZXIgY2VydGFpbiBjb25kaXRpb25z
IGxpa2UgbWlzbWF0Y2hpbmcgcGxhdGZvcm1zIG9yCisgICAgICAgIGRlcGVuZGVuY2llcy4KKyAg
ICAgICAgU2ltaWxhcmx5LCB1c2UgdGhlIGBgIyBkb2N0ZXN0OiArU0tJUGBgIGRpcmVjdGl2ZSAo
c2VlIGBkb2N0ZXN0LlNLSVAKKyAgICAgICAgPGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGli
cmFyeS9kb2N0ZXN0Lmh0bWwjZG9jdGVzdC5TS0lQPmBfKQorICAgICAgICB0byBza2lwIGEgZG9j
dGVzdCBzdGF0aWNhbGx5LgogICAgICIiIgogICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQog
ICAgIGFsbG93X21vZHVsZV9sZXZlbCA9IGt3YXJncy5wb3AoImFsbG93X21vZHVsZV9sZXZlbCIs
IEZhbHNlKQogICAgIGlmIGt3YXJnczoKLSAgICAgICAga2V5cyA9IFtrIGZvciBrIGluIGt3YXJn
cy5rZXlzKCldCi0gICAgICAgIHJhaXNlIFR5cGVFcnJvcigidW5leHBlY3RlZCBrZXl3b3JkIGFy
Z3VtZW50czoge30iLmZvcm1hdChrZXlzKSkKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJ1bmV4
cGVjdGVkIGtleXdvcmQgYXJndW1lbnRzOiB7fSIuZm9ybWF0KHNvcnRlZChrd2FyZ3MpKSkKICAg
ICByYWlzZSBTa2lwcGVkKG1zZz1tc2csIGFsbG93X21vZHVsZV9sZXZlbD1hbGxvd19tb2R1bGVf
bGV2ZWwpCiAKIApAQCAtODcsMTAgKzEwOCwxMiBAQCBza2lwLkV4Y2VwdGlvbiA9IFNraXBwZWQK
IAogCiBkZWYgZmFpbChtc2c9IiIsIHB5dHJhY2U9VHJ1ZSk6Ci0gICAgIiIiIGV4cGxpY2l0bHkg
ZmFpbCBhIGN1cnJlbnRseS1leGVjdXRpbmcgdGVzdCB3aXRoIHRoZSBnaXZlbiBNZXNzYWdlLgor
ICAgICIiIgorICAgIEV4cGxpY2l0bHkgZmFpbCBhbiBleGVjdXRpbmcgdGVzdCB3aXRoIHRoZSBn
aXZlbiBtZXNzYWdlLgogCi0gICAgOmFyZyBweXRyYWNlOiBpZiBmYWxzZSB0aGUgbXNnIHJlcHJl
c2VudHMgdGhlIGZ1bGwgZmFpbHVyZSBpbmZvcm1hdGlvbgotICAgICAgICAgICAgICAgICAgYW5k
IG5vIHB5dGhvbiB0cmFjZWJhY2sgd2lsbCBiZSByZXBvcnRlZC4KKyAgICA6cGFyYW0gc3RyIG1z
ZzogdGhlIG1lc3NhZ2UgdG8gc2hvdyB0aGUgdXNlciBhcyByZWFzb24gZm9yIHRoZSBmYWlsdXJl
LgorICAgIDpwYXJhbSBib29sIHB5dHJhY2U6IGlmIGZhbHNlIHRoZSBtc2cgcmVwcmVzZW50cyB0
aGUgZnVsbCBmYWlsdXJlIGluZm9ybWF0aW9uIGFuZCBubworICAgICAgICBweXRob24gdHJhY2Vi
YWNrIHdpbGwgYmUgcmVwb3J0ZWQuCiAgICAgIiIiCiAgICAgX190cmFjZWJhY2toaWRlX18gPSBU
cnVlCiAgICAgcmFpc2UgRmFpbGVkKG1zZz1tc2csIHB5dHJhY2U9cHl0cmFjZSkKQEAgLTEwNCw3
ICsxMjcsMTUgQEAgY2xhc3MgWEZhaWxlZChmYWlsLkV4Y2VwdGlvbik6CiAKIAogZGVmIHhmYWls
KHJlYXNvbj0iIik6Ci0gICAgIiIiIHhmYWlsIGFuIGV4ZWN1dGluZyB0ZXN0IG9yIHNldHVwIGZ1
bmN0aW9ucyB3aXRoIHRoZSBnaXZlbiByZWFzb24uIiIiCisgICAgIiIiCisgICAgSW1wZXJhdGl2
ZWx5IHhmYWlsIGFuIGV4ZWN1dGluZyB0ZXN0IG9yIHNldHVwIGZ1bmN0aW9ucyB3aXRoIHRoZSBn
aXZlbiByZWFzb24uCisKKyAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb25seSBk
dXJpbmcgdGVzdGluZyAoc2V0dXAsIGNhbGwgb3IgdGVhcmRvd24pLgorCisgICAgLi4gbm90ZTo6
CisgICAgICAgIEl0IGlzIGJldHRlciB0byB1c2UgdGhlIDpyZWY6YHB5dGVzdC5tYXJrLnhmYWls
IHJlZmAgbWFya2VyIHdoZW4gcG9zc2libGUgdG8gZGVjbGFyZSBhIHRlc3QgdG8gYmUKKyAgICAg
ICAgeGZhaWxlZCB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgbGlrZSBrbm93biBidWdzIG9yIG1p
c3NpbmcgZmVhdHVyZXMuCisgICAgIiIiCiAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCiAg
ICAgcmFpc2UgWEZhaWxlZChyZWFzb24pCiAKQEAgLTExMiwxNiArMTQzLDIxIEBAIGRlZiB4ZmFp
bChyZWFzb249IiIpOgogeGZhaWwuRXhjZXB0aW9uID0gWEZhaWxlZAogCiAKLWRlZiBpbXBvcnRv
cnNraXAobW9kbmFtZSwgbWludmVyc2lvbj1Ob25lKToKLSAgICAiIiIgcmV0dXJuIGltcG9ydGVk
IG1vZHVsZSBpZiBpdCBoYXMgYXQgbGVhc3QgIm1pbnZlcnNpb24iIGFzIGl0cwotICAgIF9fdmVy
c2lvbl9fIGF0dHJpYnV0ZS4gIElmIG5vIG1pbnZlcnNpb24gaXMgc3BlY2lmaWVkIHRoZSBhIHNr
aXAKLSAgICBpcyBvbmx5IHRyaWdnZXJlZCBpZiB0aGUgbW9kdWxlIGNhbiBub3QgYmUgaW1wb3J0
ZWQuCitkZWYgaW1wb3J0b3Jza2lwKG1vZG5hbWUsIG1pbnZlcnNpb249Tm9uZSwgcmVhc29uPU5v
bmUpOgorICAgICIiIkltcG9ydHMgYW5kIHJldHVybnMgdGhlIHJlcXVlc3RlZCBtb2R1bGUgYGBt
b2RuYW1lYGAsIG9yIHNraXAgdGhlIGN1cnJlbnQgdGVzdAorICAgIGlmIHRoZSBtb2R1bGUgY2Fu
bm90IGJlIGltcG9ydGVkLgorCisgICAgOnBhcmFtIHN0ciBtb2RuYW1lOiB0aGUgbmFtZSBvZiB0
aGUgbW9kdWxlIHRvIGltcG9ydAorICAgIDpwYXJhbSBzdHIgbWludmVyc2lvbjogaWYgZ2l2ZW4s
IHRoZSBpbXBvcnRlZCBtb2R1bGUgYGBfX3ZlcnNpb25fX2BgIGF0dHJpYnV0ZSBtdXN0IGJlCisg
ICAgICAgIGF0IGxlYXN0IHRoaXMgbWluaW1hbCB2ZXJzaW9uLCBvdGhlcndpc2UgdGhlIHRlc3Qg
aXMgc3RpbGwgc2tpcHBlZC4KKyAgICA6cGFyYW0gc3RyIHJlYXNvbjogaWYgZ2l2ZW4sIHRoaXMg
cmVhc29uIGlzIHNob3duIGFzIHRoZSBtZXNzYWdlIHdoZW4gdGhlIG1vZHVsZQorICAgICAgICBj
YW5ub3QgYmUgaW1wb3J0ZWQuCiAgICAgIiIiCiAgICAgaW1wb3J0IHdhcm5pbmdzCiAKICAgICBf
X3RyYWNlYmFja2hpZGVfXyA9IFRydWUKICAgICBjb21waWxlKG1vZG5hbWUsICIiLCAiZXZhbCIp
ICAjIHRvIGNhdGNoIHN5bnRheGVycm9ycwotICAgIHNob3VsZF9za2lwID0gRmFsc2UKKyAgICBp
bXBvcnRfZXhjID0gTm9uZQogCiAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgog
ICAgICAgICAjIG1ha2Ugc3VyZSB0byBpZ25vcmUgSW1wb3J0V2FybmluZ3MgdGhhdCBtaWdodCBo
YXBwZW4gYmVjYXVzZQpAQCAtMTMwLDI1ICsxNjYsMTkgQEAgZGVmIGltcG9ydG9yc2tpcChtb2Ru
YW1lLCBtaW52ZXJzaW9uPU5vbmUpOgogICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImln
bm9yZSIpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIF9faW1wb3J0X18obW9kbmFtZSkKLSAg
ICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMg
ZXhjOgogICAgICAgICAgICAgIyBEbyBub3QgcmFpc2UgY2hhaW5lZCBleGNlcHRpb24gaGVyZSgj
MTQ4NSkKLSAgICAgICAgICAgIHNob3VsZF9za2lwID0gVHJ1ZQotICAgIGlmIHNob3VsZF9za2lw
OgotICAgICAgICByYWlzZSBTa2lwcGVkKCJjb3VsZCBub3QgaW1wb3J0ICVyIiAlIChtb2RuYW1l
LCksIGFsbG93X21vZHVsZV9sZXZlbD1UcnVlKQorICAgICAgICAgICAgaW1wb3J0X2V4YyA9IGV4
YworICAgIGlmIGltcG9ydF9leGM6CisgICAgICAgIGlmIHJlYXNvbiBpcyBOb25lOgorICAgICAg
ICAgICAgcmVhc29uID0gImNvdWxkIG5vdCBpbXBvcnQgJXI6ICVzIiAlIChtb2RuYW1lLCBpbXBv
cnRfZXhjKQorICAgICAgICByYWlzZSBTa2lwcGVkKHJlYXNvbiwgYWxsb3dfbW9kdWxlX2xldmVs
PVRydWUpCiAgICAgbW9kID0gc3lzLm1vZHVsZXNbbW9kbmFtZV0KICAgICBpZiBtaW52ZXJzaW9u
IGlzIE5vbmU6CiAgICAgICAgIHJldHVybiBtb2QKICAgICB2ZXJhdHRyID0gZ2V0YXR0cihtb2Qs
ICJfX3ZlcnNpb25fXyIsIE5vbmUpCiAgICAgaWYgbWludmVyc2lvbiBpcyBub3QgTm9uZToKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgZnJvbSBwa2dfcmVzb3VyY2VzIGltcG9ydCBwYXJzZV92
ZXJzaW9uIGFzIHB2Ci0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIHJh
aXNlIFNraXBwZWQoCi0gICAgICAgICAgICAgICAgIndlIGhhdmUgYSByZXF1aXJlZCB2ZXJzaW9u
IGZvciAlciBidXQgY2FuIG5vdCBpbXBvcnQgIgotICAgICAgICAgICAgICAgICJwa2dfcmVzb3Vy
Y2VzIHRvIHBhcnNlIHZlcnNpb24gc3RyaW5ncy4iICUgKG1vZG5hbWUsKSwKLSAgICAgICAgICAg
ICAgICBhbGxvd19tb2R1bGVfbGV2ZWw9VHJ1ZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgaWYg
dmVyYXR0ciBpcyBOb25lIG9yIHB2KHZlcmF0dHIpIDwgcHYobWludmVyc2lvbik6CisgICAgICAg
IGlmIHZlcmF0dHIgaXMgTm9uZSBvciBWZXJzaW9uKHZlcmF0dHIpIDwgVmVyc2lvbihtaW52ZXJz
aW9uKToKICAgICAgICAgICAgIHJhaXNlIFNraXBwZWQoCiAgICAgICAgICAgICAgICAgIm1vZHVs
ZSAlciBoYXMgX192ZXJzaW9uX18gJXIsIHJlcXVpcmVkIGlzOiAlciIKICAgICAgICAgICAgICAg
ICAlIChtb2RuYW1lLCB2ZXJhdHRyLCBtaW52ZXJzaW9uKSwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L3Bhc3RlYmluLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcGFz
dGViaW4ucHkKaW5kZXggNmFmMjAyZDFmMGE5M2Y5MjM0M2RiNjVjMDM5ZTA5NWJkMjlkOGU4Ni4u
N2EzZTgwMjMxYzI3ZTg1ZWNjMTY5ZGNjNWQ0ZjEwN2RjZjE0OWQzOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3Qvc3JjL19weXRlc3QvcGFzdGViaW4ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3QvcGFzdGViaW4ucHkKQEAgLTEsMTEgKzEsMTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTgg
LSotCiAiIiIgc3VibWl0IGZhaWx1cmUgb3IgdGVzdCBzZXNzaW9uIGluZm9ybWF0aW9uIHRvIGEg
cGFzdGViaW4gc2VydmljZS4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCi1pbXBvcnQgcHl0ZXN0Ci1pbXBvcnQgc2l4
CiBpbXBvcnQgc3lzCiBpbXBvcnQgdGVtcGZpbGUKIAoraW1wb3J0IHNpeAorCitpbXBvcnQgcHl0
ZXN0CisKIAogZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKICAgICBncm91cCA9IHBhcnNl
ci5nZXRncm91cCgidGVybWluYWwgcmVwb3J0aW5nIikKQEAgLTcyLDExICs3Nyw3IEBAIGRlZiBj
cmVhdGVfbmV3X3Bhc3RlKGNvbnRlbnRzKToKICAgICAgICAgZnJvbSB1cmxsaWIucmVxdWVzdCBp
bXBvcnQgdXJsb3BlbgogICAgICAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsZW5jb2Rl
CiAKLSAgICBwYXJhbXMgPSB7Ci0gICAgICAgICJjb2RlIjogY29udGVudHMsCi0gICAgICAgICJs
ZXhlciI6ICJweXRob24zIiBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09IDMgZWxzZSAicHl0aG9u
IiwKLSAgICAgICAgImV4cGlyeSI6ICIxd2VlayIsCi0gICAgfQorICAgIHBhcmFtcyA9IHsiY29k
ZSI6IGNvbnRlbnRzLCAibGV4ZXIiOiAidGV4dCIsICJleHBpcnkiOiAiMXdlZWsifQogICAgIHVy
bCA9ICJodHRwczovL2JwYXN0ZS5uZXQiCiAgICAgcmVzcG9uc2UgPSB1cmxvcGVuKHVybCwgZGF0
YT11cmxlbmNvZGUocGFyYW1zKS5lbmNvZGUoImFzY2lpIikpLnJlYWQoKQogICAgIG0gPSByZS5z
ZWFyY2gocidocmVmPSIvcmF3LyhcdyspIicsIHJlc3BvbnNlLmRlY29kZSgidXRmLTgiKSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3BhdGhsaWIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9wYXRobGliLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyMDcxZjQzMTA0OTdkMzA5OGUy
Y2Q1ZTc0NTA5ZTAxMzM2MWM2ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC9wYXRobGliLnB5CkBAIC0wLDAgKzEsMzgwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKKworaW1wb3J0IGF0
ZXhpdAoraW1wb3J0IGVycm5vCitpbXBvcnQgZm5tYXRjaAoraW1wb3J0IGl0ZXJ0b29scworaW1w
b3J0IG9wZXJhdG9yCitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzeXMKK2ltcG9y
dCB1dWlkCitpbXBvcnQgd2FybmluZ3MKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsCitm
cm9tIGZ1bmN0b29scyBpbXBvcnQgcmVkdWNlCitmcm9tIG9zLnBhdGggaW1wb3J0IGV4cGFuZHVz
ZXIKK2Zyb20gb3MucGF0aCBpbXBvcnQgZXhwYW5kdmFycworZnJvbSBvcy5wYXRoIGltcG9ydCBp
c2FicworZnJvbSBvcy5wYXRoIGltcG9ydCBzZXAKK2Zyb20gcG9zaXhwYXRoIGltcG9ydCBzZXAg
YXMgcG9zaXhfc2VwCisKK2ltcG9ydCBzaXgKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBtYXAKKwor
ZnJvbSAuY29tcGF0IGltcG9ydCBQWTM2Citmcm9tIF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBv
cnQgUHl0ZXN0V2FybmluZworCitpZiBQWTM2OgorICAgIGZyb20gcGF0aGxpYiBpbXBvcnQgUGF0
aCwgUHVyZVBhdGgKK2Vsc2U6CisgICAgZnJvbSBwYXRobGliMiBpbXBvcnQgUGF0aCwgUHVyZVBh
dGgKKworX19hbGxfXyA9IFsiUGF0aCIsICJQdXJlUGF0aCJdCisKKworTE9DS19USU1FT1VUID0g
NjAgKiA2MCAqIDMKKworZ2V0X2xvY2tfcGF0aCA9IG9wZXJhdG9yLm1ldGhvZGNhbGxlcigiam9p
bnBhdGgiLCAiLmxvY2siKQorCisKK2RlZiBlbnN1cmVfcmVzZXRfZGlyKHBhdGgpOgorICAgICIi
IgorICAgIGVuc3VyZXMgdGhlIGdpdmVuIHBhdGggaXMgYW4gZW1wdHkgZGlyZWN0b3J5CisgICAg
IiIiCisgICAgaWYgcGF0aC5leGlzdHMoKToKKyAgICAgICAgcm1fcmYocGF0aCkKKyAgICBwYXRo
Lm1rZGlyKCkKKworCitkZWYgb25fcm1fcmZfZXJyb3IoZnVuYywgcGF0aCwgZXhjLCAqKmt3YXJn
cyk6CisgICAgIiIiSGFuZGxlcyBrbm93biByZWFkLW9ubHkgZXJyb3JzIGR1cmluZyBybXRyZWUu
CisKKyAgICBUaGUgcmV0dXJuZWQgdmFsdWUgaXMgdXNlZCBvbmx5IGJ5IG91ciBvd24gdGVzdHMu
CisgICAgIiIiCisgICAgc3RhcnRfcGF0aCA9IGt3YXJnc1sic3RhcnRfcGF0aCJdCisgICAgZXhj
dHlwZSwgZXhjdmFsdWUgPSBleGNbOjJdCisKKyAgICAjIGFub3RoZXIgcHJvY2VzcyByZW1vdmVk
IHRoZSBmaWxlIGluIHRoZSBtaWRkbGUgb2YgdGhlICJybV9yZiIgKHhkaXN0IGZvciBleGFtcGxl
KQorICAgICMgbW9yZSBjb250ZXh0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzU5NzQjaXNzdWVjb21tZW50LTU0Mzc5OTAxOAorICAgIGlmIGlzaW5zdGFuY2Uo
ZXhjdmFsdWUsIE9TRXJyb3IpIGFuZCBleGN2YWx1ZS5lcnJubyA9PSBlcnJuby5FTk9FTlQ6Cisg
ICAgICAgIHJldHVybiBGYWxzZQorCisgICAgaWYgbm90IGlzaW5zdGFuY2UoZXhjdmFsdWUsIE9T
RXJyb3IpIG9yIGV4Y3ZhbHVlLmVycm5vIG5vdCBpbiAoCisgICAgICAgIGVycm5vLkVBQ0NFUywK
KyAgICAgICAgZXJybm8uRVBFUk0sCisgICAgKToKKyAgICAgICAgd2FybmluZ3Mud2FybigKKyAg
ICAgICAgICAgIFB5dGVzdFdhcm5pbmcoCisgICAgICAgICAgICAgICAgIihybV9yZikgZXJyb3Ig
cmVtb3Zpbmcge31cbnt9OiB7fSIuZm9ybWF0KHBhdGgsIGV4Y3R5cGUsIGV4Y3ZhbHVlKQorICAg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgaWYgZnVu
YyBub3QgaW4gKG9zLnJtZGlyLCBvcy5yZW1vdmUsIG9zLnVubGluayk6CisgICAgICAgIHdhcm5p
bmdzLndhcm4oCisgICAgICAgICAgICBQeXRlc3RXYXJuaW5nKAorICAgICAgICAgICAgICAgICIo
cm1fcmYpIHVua25vd24gZnVuY3Rpb24ge30gd2hlbiByZW1vdmluZyB7fTpcbnt9OiB7fSIuZm9y
bWF0KAorICAgICAgICAgICAgICAgICAgICBwYXRoLCBmdW5jLCBleGN0eXBlLCBleGN2YWx1ZQor
ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICByZXR1
cm4gRmFsc2UKKworICAgICMgQ2htb2QgKyByZXRyeS4KKyAgICBpbXBvcnQgc3RhdAorCisgICAg
ZGVmIGNobW9kX3J3KHApOgorICAgICAgICBtb2RlID0gb3Muc3RhdChwKS5zdF9tb2RlCisgICAg
ICAgIG9zLmNobW9kKHAsIG1vZGUgfCBzdGF0LlNfSVJVU1IgfCBzdGF0LlNfSVdVU1IpCisKKyAg
ICAjIEZvciBmaWxlcywgd2UgbmVlZCB0byByZWN1cnNpdmVseSBnbyB1cHdhcmRzIGluIHRoZSBk
aXJlY3RvcmllcyB0bworICAgICMgZW5zdXJlIHRoZXkgYWxsIGFyZSBhbHNvIHdyaXRhYmxlLgor
ICAgIHAgPSBQYXRoKHBhdGgpCisgICAgaWYgcC5pc19maWxlKCk6CisgICAgICAgIGZvciBwYXJl
bnQgaW4gcC5wYXJlbnRzOgorICAgICAgICAgICAgY2htb2Rfcncoc3RyKHBhcmVudCkpCisgICAg
ICAgICAgICAjIHN0b3Agd2hlbiB3ZSByZWFjaCB0aGUgb3JpZ2luYWwgcGF0aCBwYXNzZWQgdG8g
cm1fcmYKKyAgICAgICAgICAgIGlmIHBhcmVudCA9PSBzdGFydF9wYXRoOgorICAgICAgICAgICAg
ICAgIGJyZWFrCisgICAgY2htb2Rfcncoc3RyKHBhdGgpKQorCisgICAgZnVuYyhwYXRoKQorICAg
IHJldHVybiBUcnVlCisKKworZGVmIHJtX3JmKHBhdGgpOgorICAgICIiIlJlbW92ZSB0aGUgcGF0
aCBjb250ZW50cyByZWN1cnNpdmVseSwgZXZlbiBpZiBzb21lIGVsZW1lbnRzCisgICAgYXJlIHJl
YWQtb25seS4KKyAgICAiIiIKKyAgICBvbmVycm9yID0gcGFydGlhbChvbl9ybV9yZl9lcnJvciwg
c3RhcnRfcGF0aD1wYXRoKQorICAgIHNodXRpbC5ybXRyZWUoc3RyKHBhdGgpLCBvbmVycm9yPW9u
ZXJyb3IpCisKKworZGVmIGZpbmRfcHJlZml4ZWQocm9vdCwgcHJlZml4KToKKyAgICAiIiJmaW5k
cyBhbGwgZWxlbWVudHMgaW4gcm9vdCB0aGF0IGJlZ2luIHdpdGggdGhlIHByZWZpeCwgY2FzZSBp
bnNlbnNpdGl2ZSIiIgorICAgIGxfcHJlZml4ID0gcHJlZml4Lmxvd2VyKCkKKyAgICBmb3IgeCBp
biByb290Lml0ZXJkaXIoKToKKyAgICAgICAgaWYgeC5uYW1lLmxvd2VyKCkuc3RhcnRzd2l0aChs
X3ByZWZpeCk6CisgICAgICAgICAgICB5aWVsZCB4CisKKworZGVmIGV4dHJhY3Rfc3VmZml4ZXMo
aXRlciwgcHJlZml4KToKKyAgICAiIiIKKyAgICA6cGFyYW0gaXRlcjogaXRlcmF0b3Igb3ZlciBw
YXRoIG5hbWVzCisgICAgOnBhcmFtIHByZWZpeDogZXhwZWN0ZWQgcHJlZml4IG9mIHRoZSBwYXRo
IG5hbWVzCisgICAgOnJldHVybnM6IHRoZSBwYXJ0cyBvZiB0aGUgcGF0aHMgZm9sbG93aW5nIHRo
ZSBwcmVmaXgKKyAgICAiIiIKKyAgICBwX2xlbiA9IGxlbihwcmVmaXgpCisgICAgZm9yIHAgaW4g
aXRlcjoKKyAgICAgICAgeWllbGQgcC5uYW1lW3BfbGVuOl0KKworCitkZWYgZmluZF9zdWZmaXhl
cyhyb290LCBwcmVmaXgpOgorICAgICIiImNvbWJpbmVzIGZpbmRfcHJlZml4ZXMgYW5kIGV4dHJh
Y3Rfc3VmZml4ZXMKKyAgICAiIiIKKyAgICByZXR1cm4gZXh0cmFjdF9zdWZmaXhlcyhmaW5kX3By
ZWZpeGVkKHJvb3QsIHByZWZpeCksIHByZWZpeCkKKworCitkZWYgcGFyc2VfbnVtKG1heWJlX251
bSk6CisgICAgIiIicGFyc2VzIG51bWJlciBwYXRoIHN1ZmZpeGVzLCByZXR1cm5zIC0xIG9uIGVy
cm9yIiIiCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gaW50KG1heWJlX251bSkKKyAgICBleGNl
cHQgVmFsdWVFcnJvcjoKKyAgICAgICAgcmV0dXJuIC0xCisKKworaWYgc2l4LlBZMjoKKworICAg
IGRlZiBfbWF4KGl0ZXJhYmxlLCBkZWZhdWx0KToKKyAgICAgICAgIiIibmVlZGVkIGR1ZSB0byBw
eXRob24yLjcgbGFja2luZyB0aGUgZGVmYXVsdCBhcmd1bWVudCBmb3IgbWF4IiIiCisgICAgICAg
IHJldHVybiByZWR1Y2UobWF4LCBpdGVyYWJsZSwgZGVmYXVsdCkKKworCitlbHNlOgorICAgIF9t
YXggPSBtYXgKKworCitkZWYgX2ZvcmNlX3N5bWxpbmsocm9vdCwgdGFyZ2V0LCBsaW5rX3RvKToK
KyAgICAiIiJoZWxwZXIgdG8gY3JlYXRlIHRoZSBjdXJyZW50IHN5bWxpbmsKKworICAgIGl0J3Mg
ZnVsbCBvZiByYWNlIGNvbmRpdGlvbnMgdGhhdCBhcmUgcmVhc29uYWJseSBvayB0byBpZ25vcmUK
KyAgICBmb3IgdGhlIGNvbnRleHQgb2YgYmVzdCBlZmZvcnQgbGlua2luZyB0byB0aGUgbGF0ZXN0
IHRlc3RydW4KKworICAgIHRoZSBwcmVzdW1wdGlvbiBiZWluZyB0aGF0aW4gY2FzZSBvZiBtdWNo
IHBhcmFsbGVsaXNtCisgICAgdGhlIGluYWNjdXJhY3kgaXMgZ29pbmcgdG8gYmUgYWNjZXB0YWJs
ZQorICAgICIiIgorICAgIGN1cnJlbnRfc3ltbGluayA9IHJvb3Quam9pbnBhdGgodGFyZ2V0KQor
ICAgIHRyeToKKyAgICAgICAgY3VycmVudF9zeW1saW5rLnVubGluaygpCisgICAgZXhjZXB0IE9T
RXJyb3I6CisgICAgICAgIHBhc3MKKyAgICB0cnk6CisgICAgICAgIGN1cnJlbnRfc3ltbGluay5z
eW1saW5rX3RvKGxpbmtfdG8pCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcGFzcwor
CisKK2RlZiBtYWtlX251bWJlcmVkX2Rpcihyb290LCBwcmVmaXgpOgorICAgICIiImNyZWF0ZSBh
IGRpcmVjdG9yeSB3aXRoIGFuIGluY3JlYXNlZCBudW1iZXIgYXMgc3VmZml4IGZvciB0aGUgZ2l2
ZW4gcHJlZml4IiIiCisgICAgZm9yIGkgaW4gcmFuZ2UoMTApOgorICAgICAgICAjIHRyeSB1cCB0
byAxMCB0aW1lcyB0byBjcmVhdGUgdGhlIGZvbGRlcgorICAgICAgICBtYXhfZXhpc3RpbmcgPSBf
bWF4KG1hcChwYXJzZV9udW0sIGZpbmRfc3VmZml4ZXMocm9vdCwgcHJlZml4KSksIGRlZmF1bHQ9
LTEpCisgICAgICAgIG5ld19udW1iZXIgPSBtYXhfZXhpc3RpbmcgKyAxCisgICAgICAgIG5ld19w
YXRoID0gcm9vdC5qb2lucGF0aCgie317fSIuZm9ybWF0KHByZWZpeCwgbmV3X251bWJlcikpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIG5ld19wYXRoLm1rZGlyKCkKKyAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IF9mb3JjZV9zeW1saW5rKHJvb3QsIHByZWZpeCArICJjdXJyZW50IiwgbmV3X3BhdGgpCisgICAg
ICAgICAgICByZXR1cm4gbmV3X3BhdGgKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBFbnZpcm9u
bWVudEVycm9yKAorICAgICAgICAgICAgImNvdWxkIG5vdCBjcmVhdGUgbnVtYmVyZWQgZGlyIHdp
dGggcHJlZml4ICIKKyAgICAgICAgICAgICJ7cHJlZml4fSBpbiB7cm9vdH0gYWZ0ZXIgMTAgdHJp
ZXMiLmZvcm1hdChwcmVmaXg9cHJlZml4LCByb290PXJvb3QpCisgICAgICAgICkKKworCitkZWYg
Y3JlYXRlX2NsZWFudXBfbG9jayhwKToKKyAgICAiIiJjcmF0ZXMgYSBsb2NrIHRvIHByZXZlbnQg
cHJlbWF0dXJlIGZvbGRlciBjbGVhbnVwIiIiCisgICAgbG9ja19wYXRoID0gZ2V0X2xvY2tfcGF0
aChwKQorICAgIHRyeToKKyAgICAgICAgZmQgPSBvcy5vcGVuKHN0cihsb2NrX3BhdGgpLCBvcy5P
X1dST05MWSB8IG9zLk9fQ1JFQVQgfCBvcy5PX0VYQ0wsIDBvNjQ0KQorICAgIGV4Y2VwdCBPU0Vy
cm9yIGFzIGU6CisgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUVYSVNUOgorICAgICAgICAg
ICAgc2l4LnJhaXNlX2Zyb20oCisgICAgICAgICAgICAgICAgRW52aXJvbm1lbnRFcnJvcigiY2Fu
bm90IGNyZWF0ZSBsb2NrZmlsZSBpbiB7cGF0aH0iLmZvcm1hdChwYXRoPXApKSwgZQorICAgICAg
ICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UKKyAgICBlbHNlOgorICAg
ICAgICBwaWQgPSBvcy5nZXRwaWQoKQorICAgICAgICBzcGlkID0gc3RyKHBpZCkKKyAgICAgICAg
aWYgbm90IGlzaW5zdGFuY2Uoc3BpZCwgYnl0ZXMpOgorICAgICAgICAgICAgc3BpZCA9IHNwaWQu
ZW5jb2RlKCJhc2NpaSIpCisgICAgICAgIG9zLndyaXRlKGZkLCBzcGlkKQorICAgICAgICBvcy5j
bG9zZShmZCkKKyAgICAgICAgaWYgbm90IGxvY2tfcGF0aC5pc19maWxlKCk6CisgICAgICAgICAg
ICByYWlzZSBFbnZpcm9ubWVudEVycm9yKCJsb2NrIHBhdGggZ290IHJlbmFtZWQgYWZ0ZXIgc3Vj
Y2Vzc2Z1bCBjcmVhdGlvbiIpCisgICAgICAgIHJldHVybiBsb2NrX3BhdGgKKworCitkZWYgcmVn
aXN0ZXJfY2xlYW51cF9sb2NrX3JlbW92YWwobG9ja19wYXRoLCByZWdpc3Rlcj1hdGV4aXQucmVn
aXN0ZXIpOgorICAgICIiInJlZ2lzdGVycyBhIGNsZWFudXAgZnVuY3Rpb24gZm9yIHJlbW92aW5n
IGEgbG9jaywgYnkgZGVmYXVsdCBvbiBhdGV4aXQiIiIKKyAgICBwaWQgPSBvcy5nZXRwaWQoKQor
CisgICAgZGVmIGNsZWFudXBfb25fZXhpdChsb2NrX3BhdGg9bG9ja19wYXRoLCBvcmlnaW5hbF9w
aWQ9cGlkKToKKyAgICAgICAgY3VycmVudF9waWQgPSBvcy5nZXRwaWQoKQorICAgICAgICBpZiBj
dXJyZW50X3BpZCAhPSBvcmlnaW5hbF9waWQ6CisgICAgICAgICAgICAjIGZvcmsKKyAgICAgICAg
ICAgIHJldHVybgorICAgICAgICB0cnk6CisgICAgICAgICAgICBsb2NrX3BhdGgudW5saW5rKCkK
KyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBJT0Vycm9yKToKKyAgICAgICAgICAgIHBhc3MKKwor
ICAgIHJldHVybiByZWdpc3RlcihjbGVhbnVwX29uX2V4aXQpCisKKworZGVmIG1heWJlX2RlbGV0
ZV9hX251bWJlcmVkX2RpcihwYXRoKToKKyAgICAiIiJyZW1vdmVzIGEgbnVtYmVyZWQgZGlyZWN0
b3J5IGlmIGl0cyBsb2NrIGNhbiBiZSBvYnRhaW5lZCBhbmQgaXQgZG9lcyBub3Qgc2VlbSB0byBi
ZSBpbiB1c2UiIiIKKyAgICBsb2NrX3BhdGggPSBOb25lCisgICAgdHJ5OgorICAgICAgICBsb2Nr
X3BhdGggPSBjcmVhdGVfY2xlYW51cF9sb2NrKHBhdGgpCisgICAgICAgIHBhcmVudCA9IHBhdGgu
cGFyZW50CisKKyAgICAgICAgZ2FyYmFnZSA9IHBhcmVudC5qb2lucGF0aCgiZ2FyYmFnZS17fSIu
Zm9ybWF0KHV1aWQudXVpZDQoKSkpCisgICAgICAgIHBhdGgucmVuYW1lKGdhcmJhZ2UpCisgICAg
ICAgIHJtX3JmKGdhcmJhZ2UpCisgICAgZXhjZXB0IChPU0Vycm9yLCBFbnZpcm9ubWVudEVycm9y
KToKKyAgICAgICAgIyAga25vd24gcmFjZXM6CisgICAgICAgICMgICogb3RoZXIgcHJvY2VzcyBk
aWQgYSBjbGVhbnVwIGF0IHRoZSBzYW1lIHRpbWUKKyAgICAgICAgIyAgKiBkZWxldGFibGUgZm9s
ZGVyIHdhcyBmb3VuZAorICAgICAgICAjICAqIHByb2Nlc3MgY3dkIChXaW5kb3dzKQorICAgICAg
ICByZXR1cm4KKyAgICBmaW5hbGx5OgorICAgICAgICAjIGlmIHdlIGNyZWF0ZWQgdGhlIGxvY2ss
IGVuc3VyZSB3ZSByZW1vdmUgaXQgZXZlbiBpZiB3ZSBmYWlsZWQKKyAgICAgICAgIyB0byBwcm9w
ZXJseSByZW1vdmUgdGhlIG51bWJlcmVkIGRpcgorICAgICAgICBpZiBsb2NrX3BhdGggaXMgbm90
IE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgbG9ja19wYXRoLnVubGlu
aygpCisgICAgICAgICAgICBleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKworCitkZWYgZW5zdXJlX2RlbGV0YWJsZShwYXRoLCBjb25zaWRlcl9sb2NrX2Rl
YWRfaWZfY3JlYXRlZF9iZWZvcmUpOgorICAgICIiImNoZWNrcyBpZiBhIGxvY2sgZXhpc3RzIGFu
ZCBicmVha3MgaXQgaWYgaXRzIGNvbnNpZGVyZWQgZGVhZCIiIgorICAgIGlmIHBhdGguaXNfc3lt
bGluaygpOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBsb2NrID0gZ2V0X2xvY2tfcGF0aChw
YXRoKQorICAgIGlmIG5vdCBsb2NrLmV4aXN0cygpOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAg
IHRyeToKKyAgICAgICAgbG9ja190aW1lID0gbG9jay5zdGF0KCkuc3RfbXRpbWUKKyAgICBleGNl
cHQgRXhjZXB0aW9uOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBlbHNlOgorICAgICAgICBp
ZiBsb2NrX3RpbWUgPCBjb25zaWRlcl9sb2NrX2RlYWRfaWZfY3JlYXRlZF9iZWZvcmU6CisgICAg
ICAgICAgICBsb2NrLnVubGluaygpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKworZGVmIHRyeV9jbGVhbnVwKHBhdGgs
IGNvbnNpZGVyX2xvY2tfZGVhZF9pZl9jcmVhdGVkX2JlZm9yZSk6CisgICAgIiIidHJpZXMgdG8g
Y2xlYW51cCBhIGZvbGRlciBpZiB3ZSBjYW4gZW5zdXJlIGl0J3MgZGVsZXRhYmxlIiIiCisgICAg
aWYgZW5zdXJlX2RlbGV0YWJsZShwYXRoLCBjb25zaWRlcl9sb2NrX2RlYWRfaWZfY3JlYXRlZF9i
ZWZvcmUpOgorICAgICAgICBtYXliZV9kZWxldGVfYV9udW1iZXJlZF9kaXIocGF0aCkKKworCitk
ZWYgY2xlYW51cF9jYW5kaWRhdGVzKHJvb3QsIHByZWZpeCwga2VlcCk6CisgICAgIiIibGlzdHMg
Y2FuZGlkYXRlcyBmb3IgbnVtYmVyZWQgZGlyZWN0b3JpZXMgdG8gYmUgcmVtb3ZlZCAtIGZvbGxv
d3MgcHkucGF0aCIiIgorICAgIG1heF9leGlzdGluZyA9IF9tYXgobWFwKHBhcnNlX251bSwgZmlu
ZF9zdWZmaXhlcyhyb290LCBwcmVmaXgpKSwgZGVmYXVsdD0tMSkKKyAgICBtYXhfZGVsZXRlID0g
bWF4X2V4aXN0aW5nIC0ga2VlcAorICAgIHBhdGhzID0gZmluZF9wcmVmaXhlZChyb290LCBwcmVm
aXgpCisgICAgcGF0aHMsIHBhdGhzMiA9IGl0ZXJ0b29scy50ZWUocGF0aHMpCisgICAgbnVtYmVy
cyA9IG1hcChwYXJzZV9udW0sIGV4dHJhY3Rfc3VmZml4ZXMocGF0aHMyLCBwcmVmaXgpKQorICAg
IGZvciBwYXRoLCBudW1iZXIgaW4gemlwKHBhdGhzLCBudW1iZXJzKToKKyAgICAgICAgaWYgbnVt
YmVyIDw9IG1heF9kZWxldGU6CisgICAgICAgICAgICB5aWVsZCBwYXRoCisKKworZGVmIGNsZWFu
dXBfbnVtYmVyZWRfZGlyKHJvb3QsIHByZWZpeCwga2VlcCwgY29uc2lkZXJfbG9ja19kZWFkX2lm
X2NyZWF0ZWRfYmVmb3JlKToKKyAgICAiIiJjbGVhbnVwIGZvciBsb2NrIGRyaXZlbiBudW1iZXJl
ZCBkaXJlY3RvcmllcyIiIgorICAgIGZvciBwYXRoIGluIGNsZWFudXBfY2FuZGlkYXRlcyhyb290
LCBwcmVmaXgsIGtlZXApOgorICAgICAgICB0cnlfY2xlYW51cChwYXRoLCBjb25zaWRlcl9sb2Nr
X2RlYWRfaWZfY3JlYXRlZF9iZWZvcmUpCisgICAgZm9yIHBhdGggaW4gcm9vdC5nbG9iKCJnYXJi
YWdlLSoiKToKKyAgICAgICAgdHJ5X2NsZWFudXAocGF0aCwgY29uc2lkZXJfbG9ja19kZWFkX2lm
X2NyZWF0ZWRfYmVmb3JlKQorCisKK2RlZiBtYWtlX251bWJlcmVkX2Rpcl93aXRoX2NsZWFudXAo
cm9vdCwgcHJlZml4LCBrZWVwLCBsb2NrX3RpbWVvdXQpOgorICAgICIiImNyZWF0ZXMgYSBudW1i
ZXJlZCBkaXIgd2l0aCBhIGNsZWFudXAgbG9jayBhbmQgcmVtb3ZlcyBvbGQgb25lcyIiIgorICAg
IGUgPSBOb25lCisgICAgZm9yIGkgaW4gcmFuZ2UoMTApOgorICAgICAgICB0cnk6CisgICAgICAg
ICAgICBwID0gbWFrZV9udW1iZXJlZF9kaXIocm9vdCwgcHJlZml4KQorICAgICAgICAgICAgbG9j
a19wYXRoID0gY3JlYXRlX2NsZWFudXBfbG9jayhwKQorICAgICAgICAgICAgcmVnaXN0ZXJfY2xl
YW51cF9sb2NrX3JlbW92YWwobG9ja19wYXRoKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz
IGV4YzoKKyAgICAgICAgICAgIGUgPSBleGMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNv
bnNpZGVyX2xvY2tfZGVhZF9pZl9jcmVhdGVkX2JlZm9yZSA9IHAuc3RhdCgpLnN0X210aW1lIC0g
bG9ja190aW1lb3V0CisgICAgICAgICAgICBjbGVhbnVwX251bWJlcmVkX2RpcigKKyAgICAgICAg
ICAgICAgICByb290PXJvb3QsCisgICAgICAgICAgICAgICAgcHJlZml4PXByZWZpeCwKKyAgICAg
ICAgICAgICAgICBrZWVwPWtlZXAsCisgICAgICAgICAgICAgICAgY29uc2lkZXJfbG9ja19kZWFk
X2lmX2NyZWF0ZWRfYmVmb3JlPWNvbnNpZGVyX2xvY2tfZGVhZF9pZl9jcmVhdGVkX2JlZm9yZSwK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVybiBwCisgICAgYXNzZXJ0IGUgaXMgbm90
IE5vbmUKKyAgICByYWlzZSBlCisKKworZGVmIHJlc29sdmVfZnJvbV9zdHIoaW5wdXQsIHJvb3Qp
OgorICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShpbnB1dCwgUGF0aCksICJ3b3VsZCBicmVhayBv
biBweTIiCisgICAgcm9vdCA9IFBhdGgocm9vdCkKKyAgICBpbnB1dCA9IGV4cGFuZHVzZXIoaW5w
dXQpCisgICAgaW5wdXQgPSBleHBhbmR2YXJzKGlucHV0KQorICAgIGlmIGlzYWJzKGlucHV0KToK
KyAgICAgICAgcmV0dXJuIFBhdGgoaW5wdXQpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIHJv
b3Quam9pbnBhdGgoaW5wdXQpCisKKworZGVmIGZubWF0Y2hfZXgocGF0dGVybiwgcGF0aCk6Cisg
ICAgIiIiRk5NYXRjaGVyIHBvcnQgZnJvbSBweS5wYXRoLmNvbW1vbiB3aGljaCB3b3JrcyB3aXRo
IFB1cmVQYXRoKCkgaW5zdGFuY2VzLgorCisgICAgVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlz
IGFsZ29yaXRobSBhbmQgUHVyZVBhdGgubWF0Y2goKSBpcyB0aGF0IHRoZSBsYXR0ZXIgbWF0Y2hl
cyAiKioiIGdsb2IgZXhwcmVzc2lvbnMKKyAgICBmb3IgZWFjaCBwYXJ0IG9mIHRoZSBwYXRoLCB3
aGlsZSB0aGlzIGFsZ29yaXRobSB1c2VzIHRoZSB3aG9sZSBwYXRoIGluc3RlYWQuCisKKyAgICBG
b3IgZXhhbXBsZToKKyAgICAgICAgInRlc3RzL2Zvby9iYXIvZG9jL3Rlc3RfZm9vLnB5IiBtYXRj
aGVzIHBhdHRlcm4gInRlc3RzLyoqL2RvYy90ZXN0Ki5weSIgd2l0aCB0aGlzIGFsZ29yaXRobSwg
YnV0IG5vdCB3aXRoCisgICAgICAgIFB1cmVQYXRoLm1hdGNoKCkuCisKKyAgICBUaGlzIGFsZ29y
aXRobSB3YXMgcG9ydGVkIHRvIGtlZXAgYmFja3dhcmQtY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0
aW5nIHNldHRpbmdzIHdoaWNoIGFzc3VtZSBwYXRocyBtYXRjaCBhY2NvcmRpbmcKKyAgICB0aGlz
IGxvZ2ljLgorCisgICAgUmVmZXJlbmNlczoKKyAgICAqIGh0dHBzOi8vYnVncy5weXRob24ub3Jn
L2lzc3VlMjkyNDkKKyAgICAqIGh0dHBzOi8vYnVncy5weXRob24ub3JnL2lzc3VlMzQ3MzEKKyAg
ICAiIiIKKyAgICBwYXRoID0gUHVyZVBhdGgocGF0aCkKKyAgICBpc3dpbjMyID0gc3lzLnBsYXRm
b3JtLnN0YXJ0c3dpdGgoIndpbiIpCisKKyAgICBpZiBpc3dpbjMyIGFuZCBzZXAgbm90IGluIHBh
dHRlcm4gYW5kIHBvc2l4X3NlcCBpbiBwYXR0ZXJuOgorICAgICAgICAjIFJ1bm5pbmcgb24gV2lu
ZG93cywgdGhlIHBhdHRlcm4gaGFzIG5vIFdpbmRvd3MgcGF0aCBzZXBhcmF0b3JzLAorICAgICAg
ICAjIGFuZCB0aGUgcGF0dGVybiBoYXMgb25lIG9yIG1vcmUgUG9zaXggcGF0aCBzZXBhcmF0b3Jz
LiBSZXBsYWNlCisgICAgICAgICMgdGhlIFBvc2l4IHBhdGggc2VwYXJhdG9ycyB3aXRoIHRoZSBX
aW5kb3dzIHBhdGggc2VwYXJhdG9yLgorICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNl
KHBvc2l4X3NlcCwgc2VwKQorCisgICAgaWYgc2VwIG5vdCBpbiBwYXR0ZXJuOgorICAgICAgICBu
YW1lID0gcGF0aC5uYW1lCisgICAgZWxzZToKKyAgICAgICAgbmFtZSA9IHNpeC50ZXh0X3R5cGUo
cGF0aCkKKyAgICByZXR1cm4gZm5tYXRjaC5mbm1hdGNoKG5hbWUsIHBhdHRlcm4pCisKKworZGVm
IHBhcnRzKHMpOgorICAgIHBhcnRzID0gcy5zcGxpdChzZXApCisgICAgcmV0dXJuIHtzZXAuam9p
bihwYXJ0c1s6IGkgKyAxXSkgb3Igc2VwIGZvciBpIGluIHJhbmdlKGxlbihwYXJ0cykpfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcHl0ZXN0ZXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9weXRlc3Rlci5weQppbmRleCBjOWRlZmUwM2E2NjgxZWY0N2I2MTQzNjU4
Zjc3ZGUzMjIxMmIzYzQ4Li5mMWQ3MzljOTkxN2Q5NDlmNzEyNWM0YzVjYWUwY2E2MWVmMTdmMGRk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9weXRlc3Rlci5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9weXRlc3Rlci5weQpAQCAtMSw1ICsxLDggQEAKKyMgLSot
IGNvZGluZzogdXRmLTggLSotCiAiIiIoZGlzYWJsZWQgYnkgZGVmYXVsdCkgc3VwcG9ydCBmb3Ig
dGVzdGluZyBweXRlc3QgYW5kIHB5dGVzdCBwbHVnaW5zLiIiIgotZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2
aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IGNv
ZGVjcwogaW1wb3J0IGdjCkBAIC03LDI2ICsxMCwyOCBAQCBpbXBvcnQgb3MKIGltcG9ydCBwbGF0
Zm9ybQogaW1wb3J0IHJlCiBpbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHNpeAogaW1wb3J0IHN5
cwogaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFjZWJhY2sKIGZyb20gZm5tYXRjaCBpbXBvcnQgZm5t
YXRjaAotCiBmcm9tIHdlYWtyZWYgaW1wb3J0IFdlYWtLZXlEaWN0aW9uYXJ5CiAKLWZyb20gX3B5
dGVzdC5jYXB0dXJlIGltcG9ydCBNdWx0aUNhcHR1cmUsIFN5c0NhcHR1cmUKLWZyb20gX3B5dGVz
dC5fY29kZSBpbXBvcnQgU291cmNlCiBpbXBvcnQgcHkKK2ltcG9ydCBzaXgKKwogaW1wb3J0IHB5
dGVzdAotZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IFNlc3Npb24sIEVYSVRfT0sKK2Zyb20gX3B5
dGVzdC5fY29kZSBpbXBvcnQgU291cmNlCitmcm9tIF9weXRlc3QuX2lvLnNhZmVyZXByIGltcG9y
dCBzYWZlcmVwcgogZnJvbSBfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlIGltcG9ydCBBc3NlcnRp
b25SZXdyaXRpbmdIb29rCi0KLQotUFlURVNUX0ZVTExQQVRIID0gb3MucGF0aC5hYnNwYXRoKHB5
dGVzdC5fX2ZpbGVfXy5yc3RyaXAoIm9jIikpLnJlcGxhY2UoCi0gICAgIiRweS5jbGFzcyIsICIu
cHkiCi0pCi0KK2Zyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBNdWx0aUNhcHR1cmUKK2Zyb20g
X3B5dGVzdC5jYXB0dXJlIGltcG9ydCBTeXNDYXB0dXJlCitmcm9tIF9weXRlc3QuY29tcGF0IGlt
cG9ydCBzYWZlX3N0cgorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgU2VxdWVuY2UKK2Zyb20g
X3B5dGVzdC5tYWluIGltcG9ydCBFWElUX0lOVEVSUlVQVEVECitmcm9tIF9weXRlc3QubWFpbiBp
bXBvcnQgRVhJVF9PSworZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IFNlc3Npb24KK2Zyb20gX3B5
dGVzdC5tb25rZXlwYXRjaCBpbXBvcnQgTW9ua2V5UGF0Y2gKK2Zyb20gX3B5dGVzdC5wYXRobGli
IGltcG9ydCBQYXRoCiAKIElHTk9SRV9QQU0gPSBbICAjIGZpbGVuYW1lcyBhZGRlZCB3aGVuIG9i
dGFpbmluZyBkZXRhaWxzIGFib3V0IHRoZSBjdXJyZW50IHVzZXIKICAgICB1Ii92YXIvbGliL3Nz
cy9tYy9wYXNzd2QiCkBAIC0zOSw3ICs0NCw3IEBAIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNl
cik6CiAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgIGRlc3Q9Imxzb2YiLAog
ICAgICAgICBkZWZhdWx0PUZhbHNlLAotICAgICAgICBoZWxwPSgicnVuIEZEIGNoZWNrcyBpZiBs
c29mIGlzIGF2YWlsYWJsZSIpLAorICAgICAgICBoZWxwPSJydW4gRkQgY2hlY2tzIGlmIGxzb2Yg
aXMgYXZhaWxhYmxlIiwKICAgICApCiAKICAgICBwYXJzZXIuYWRkb3B0aW9uKApAQCAtNTMsNiAr
NTgsMTAgQEAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKICAgICAgICAgKSwKICAgICAp
CiAKKyAgICBwYXJzZXIuYWRkaW5pKAorICAgICAgICAicHl0ZXN0ZXJfZXhhbXBsZV9kaXIiLCBo
ZWxwPSJkaXJlY3RvcnkgdG8gdGFrZSB0aGUgcHl0ZXN0ZXIgZXhhbXBsZSBmaWxlcyBmcm9tIgor
ICAgICkKKwogCiBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgogICAgIGlmIGNvbmZpZy5n
ZXR2YWx1ZSgibHNvZiIpOgpAQCAtNjAsOSArNjksMjIgQEAgZGVmIHB5dGVzdF9jb25maWd1cmUo
Y29uZmlnKToKICAgICAgICAgaWYgY2hlY2tlci5tYXRjaGluZ19wbGF0Zm9ybSgpOgogICAgICAg
ICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoY2hlY2tlcikKIAorICAgIGNvbmZp
Zy5hZGRpbml2YWx1ZV9saW5lKAorICAgICAgICAibWFya2VycyIsCisgICAgICAgICJweXRlc3Rl
cl9leGFtcGxlX3BhdGgoKnBhdGhfc2VnbWVudHMpOiBqb2luIHRoZSBnaXZlbiBwYXRoICIKKyAg
ICAgICAgInNlZ21lbnRzIHRvIGBweXRlc3Rlcl9leGFtcGxlX2RpcmAgZm9yIHRoaXMgdGVzdC4i
LAorICAgICkKIAotY2xhc3MgTHNvZkZkTGVha0NoZWNrZXIob2JqZWN0KToKIAorZGVmIHJhaXNl
X29uX2t3YXJncyhrd2FyZ3MpOgorICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgIGlm
IGt3YXJnczogICMgcHJhZ21hOiBubyBicmFuY2gKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKAor
ICAgICAgICAgICAgIlVuZXhwZWN0ZWQga2V5d29yZCBhcmd1bWVudHM6IHt9Ii5mb3JtYXQoIiwg
Ii5qb2luKHNvcnRlZChrd2FyZ3MpKSkKKyAgICAgICAgKQorCisKK2NsYXNzIExzb2ZGZExlYWtD
aGVja2VyKG9iamVjdCk6CiAgICAgZGVmIGdldF9vcGVuX2ZpbGVzKHNlbGYpOgogICAgICAgICBv
dXQgPSBzZWxmLl9leGVjX2xzb2YoKQogICAgICAgICBvcGVuX2ZpbGVzID0gc2VsZi5fcGFyc2Vf
bHNvZl9vdXRwdXQob3V0KQpAQCAtNzAsMTAgKzkyLDEzIEBAIGNsYXNzIExzb2ZGZExlYWtDaGVj
a2VyKG9iamVjdCk6CiAKICAgICBkZWYgX2V4ZWNfbHNvZihzZWxmKToKICAgICAgICAgcGlkID0g
b3MuZ2V0cGlkKCkKLSAgICAgICAgcmV0dXJuIHB5LnByb2Nlc3MuY21kZXhlYygibHNvZiAtRmZu
MCAtcCAlZCIgJSBwaWQpCisgICAgICAgICMgcHkzOiB1c2Ugc3VicHJvY2Vzcy5ERVZOVUxMIGRp
cmVjdGx5LgorICAgICAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgIndiIikgYXMgZGV2bnVsbDoK
KyAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCgKKyAgICAgICAgICAg
ICAgICAoImxzb2YiLCAiLUZmbjAiLCAiLXAiLCBzdHIocGlkKSksIHN0ZGVycj1kZXZudWxsCisg
ICAgICAgICAgICApLmRlY29kZSgpCiAKICAgICBkZWYgX3BhcnNlX2xzb2Zfb3V0cHV0KHNlbGYs
IG91dCk6Ci0KICAgICAgICAgZGVmIGlzb3BlbihsaW5lKToKICAgICAgICAgICAgIHJldHVybiBs
aW5lLnN0YXJ0c3dpdGgoImYiKSBhbmQgKAogICAgICAgICAgICAgICAgICJkZWxldGVkIiBub3Qg
aW4gbGluZQpAQCAtOTgsMTEgKzEyMyw4IEBAIGNsYXNzIExzb2ZGZExlYWtDaGVja2VyKG9iamVj
dCk6CiAKICAgICBkZWYgbWF0Y2hpbmdfcGxhdGZvcm0oc2VsZik6CiAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHB5LnByb2Nlc3MuY21kZXhlYygibHNvZiAtdiIpCi0gICAgICAgIGV4Y2VwdCAo
cHkucHJvY2Vzcy5jbWRleGVjLkVycm9yLCBVbmljb2RlRGVjb2RlRXJyb3IpOgotICAgICAgICAg
ICAgIyBjbWRleGVjIG1heSByYWlzZSBVbmljb2RlRGVjb2RlRXJyb3Igb24gV2luZG93cyBzeXN0
ZW1zIHdpdGgKLSAgICAgICAgICAgICMgbG9jYWxlIG90aGVyIHRoYW4gRW5nbGlzaDoKLSAgICAg
ICAgICAgICMgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3B5dGVzdC1kZXYvcHkvaXNzdWVzLzY2Cisg
ICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCgoImxzb2YiLCAiLXYiKSkKKyAgICAg
ICAgZXhjZXB0IChPU0Vycm9yLCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcik6CiAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBU
cnVlCkBAIC0xMjgsNTcgKzE1MCw3IEBAIGNsYXNzIExzb2ZGZExlYWtDaGVja2VyKG9iamVjdCk6
CiAgICAgICAgICAgICBlcnJvci5hcHBlbmQoZXJyb3JbMF0pCiAgICAgICAgICAgICBlcnJvci5h
cHBlbmQoIioqKiBmdW5jdGlvbiAlczolczogJXMgIiAlIGl0ZW0ubG9jYXRpb24pCiAgICAgICAg
ICAgICBlcnJvci5hcHBlbmQoIlNlZSBpc3N1ZSAjMjM2NiIpCi0gICAgICAgICAgICBpdGVtLndh
cm4oIiIsICJcbiIuam9pbihlcnJvcikpCi0KLQotIyBYWFggY29waWVkIGZyb20gZXhlY25ldCdz
IGNvbmZ0ZXN0LnB5IC0gbmVlZHMgdG8gYmUgbWVyZ2VkCi13aW5weW1hcCA9IHsKLSAgICAicHl0
aG9uMi43IjogciJDOlxQeXRob24yN1xweXRob24uZXhlIiwKLSAgICAicHl0aG9uMy40IjogciJD
OlxQeXRob24zNFxweXRob24uZXhlIiwKLSAgICAicHl0aG9uMy41IjogciJDOlxQeXRob24zNVxw
eXRob24uZXhlIiwKLSAgICAicHl0aG9uMy42IjogciJDOlxQeXRob24zNlxweXRob24uZXhlIiwK
LX0KLQotCi1kZWYgZ2V0ZXhlY3V0YWJsZShuYW1lLCBjYWNoZT17fSk6Ci0gICAgdHJ5OgotICAg
ICAgICByZXR1cm4gY2FjaGVbbmFtZV0KLSAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgIGV4
ZWN1dGFibGUgPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQobmFtZSkKLSAgICAgICAgaWYgZXhlY3V0
YWJsZToKLSAgICAgICAgICAgIGltcG9ydCBzdWJwcm9jZXNzCi0KLSAgICAgICAgICAgIHBvcGVu
ID0gc3VicHJvY2Vzcy5Qb3BlbigKLSAgICAgICAgICAgICAgICBbc3RyKGV4ZWN1dGFibGUpLCAi
LS12ZXJzaW9uIl0sCi0gICAgICAgICAgICAgICAgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUsCi0g
ICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKLSAgICAgICAgICAgICkKLSAg
ICAgICAgICAgIG91dCwgZXJyID0gcG9wZW4uY29tbXVuaWNhdGUoKQotICAgICAgICAgICAgaWYg
bmFtZSA9PSAianl0aG9uIjoKLSAgICAgICAgICAgICAgICBpZiBub3QgZXJyIG9yICIyLjUiIG5v
dCBpbiBlcnI6Ci0gICAgICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBOb25lCi0gICAgICAg
ICAgICAgICAgaWYgIjIuNS4yIiBpbiBlcnI6Ci0gICAgICAgICAgICAgICAgICAgIGV4ZWN1dGFi
bGUgPSBOb25lICAjIGh0dHA6Ly9idWdzLmp5dGhvbi5vcmcvaXNzdWUxNzkwCi0gICAgICAgICAg
ICBlbGlmIHBvcGVuLnJldHVybmNvZGUgIT0gMDoKLSAgICAgICAgICAgICAgICAjIGhhbmRsZSBw
eWVudidzIDEyNwotICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBOb25lCi0gICAgICAgIGNh
Y2hlW25hbWVdID0gZXhlY3V0YWJsZQotICAgICAgICByZXR1cm4gZXhlY3V0YWJsZQotCi0KLUBw
eXRlc3QuZml4dHVyZShwYXJhbXM9WyJweXRob24yLjciLCAicHl0aG9uMy40IiwgInB5cHkiLCAi
cHlweTMiXSkKLWRlZiBhbnlweXRob24ocmVxdWVzdCk6Ci0gICAgbmFtZSA9IHJlcXVlc3QucGFy
YW0KLSAgICBleGVjdXRhYmxlID0gZ2V0ZXhlY3V0YWJsZShuYW1lKQotICAgIGlmIGV4ZWN1dGFi
bGUgaXMgTm9uZToKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAgICAg
ICAgICBleGVjdXRhYmxlID0gd2lucHltYXAuZ2V0KG5hbWUsIE5vbmUpCi0gICAgICAgICAgICBp
ZiBleGVjdXRhYmxlOgotICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2Fs
KGV4ZWN1dGFibGUpCi0gICAgICAgICAgICAgICAgaWYgZXhlY3V0YWJsZS5jaGVjaygpOgotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZQotICAgICAgICBweXRlc3Quc2tpcCgi
bm8gc3VpdGFibGUgJXMgZm91bmQiICUgKG5hbWUsKSkKLSAgICByZXR1cm4gZXhlY3V0YWJsZQor
ICAgICAgICAgICAgaXRlbS53YXJuKHB5dGVzdC5QeXRlc3RXYXJuaW5nKCJcbiIuam9pbihlcnJv
cikpKQogCiAKICMgdXNlZCBhdCBsZWFzdCBieSBweXRlc3QteGRpc3QgcGx1Z2luCkBAIC0xOTUs
NyArMTY3LDYgQEAgZGVmIF9weXRlc3QocmVxdWVzdCk6CiAKIAogY2xhc3MgUHl0ZXN0QXJnKG9i
amVjdCk6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6CiAgICAgICAgIHNlbGYu
cmVxdWVzdCA9IHJlcXVlc3QKIApAQCAtMjExLDcgKzE4Miw2IEBAIGRlZiBnZXRfcHVibGljX25h
bWVzKHZhbHVlcyk6CiAKIAogY2xhc3MgUGFyc2VkQ2FsbChvYmplY3QpOgotCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIG5hbWUsIGt3YXJncyk6CiAgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRl
KGt3YXJncykKICAgICAgICAgc2VsZi5fbmFtZSA9IG5hbWUKQEAgLTI3OCw3ICsyNDgsNyBAQCBj
bGFzcyBIb29rUmVjb3JkZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBkZWwgc2VsZi5jYWxs
c1tpXQogICAgICAgICAgICAgICAgIHJldHVybiBjYWxsCiAgICAgICAgIGxpbmVzID0gWyJjb3Vs
ZCBub3QgZmluZCBjYWxsICVyLCBpbjoiICUgKG5hbWUsKV0KLSAgICAgICAgbGluZXMuZXh0ZW5k
KFsiICAlcyIgJSBzdHIoeCkgZm9yIHggaW4gc2VsZi5jYWxsc10pCisgICAgICAgIGxpbmVzLmV4
dGVuZChbIiAgJXMiICUgeCBmb3IgeCBpbiBzZWxmLmNhbGxzXSkKICAgICAgICAgcHl0ZXN0LmZh
aWwoIlxuIi5qb2luKGxpbmVzKSkKIAogICAgIGRlZiBnZXRjYWxsKHNlbGYsIG5hbWUpOgpAQCAt
MzAwLDEzICsyNzAsMTAgQEAgY2xhc3MgSG9va1JlY29yZGVyKG9iamVjdCk6CiAgICAgICAgICIi
InJldHVybiBhIHRlc3RyZXBvcnQgd2hvc2UgZG90dGVkIGltcG9ydCBwYXRoIG1hdGNoZXMiIiIK
ICAgICAgICAgdmFsdWVzID0gW10KICAgICAgICAgZm9yIHJlcCBpbiBzZWxmLmdldHJlcG9ydHMo
bmFtZXM9bmFtZXMpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGlmIG5vdCB3
aGVuIGFuZCByZXAud2hlbiAhPSAiY2FsbCIgYW5kIHJlcC5wYXNzZWQ6Ci0gICAgICAgICAgICAg
ICAgICAgICMgc2V0dXAvdGVhcmRvd24gcGFzc2luZyByZXBvcnRzIC0gbGV0J3MgaWdub3JlIHRo
b3NlCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBleGNlcHQgQXR0
cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgaWYgd2hlbiBh
bmQgZ2V0YXR0cihyZXAsICJ3aGVuIiwgTm9uZSkgIT0gd2hlbjoKKyAgICAgICAgICAgIGlmIG5v
dCB3aGVuIGFuZCByZXAud2hlbiAhPSAiY2FsbCIgYW5kIHJlcC5wYXNzZWQ6CisgICAgICAgICAg
ICAgICAgIyBzZXR1cC90ZWFyZG93biBwYXNzaW5nIHJlcG9ydHMgLSBsZXQncyBpZ25vcmUgdGhv
c2UKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgd2hlbiBhbmQgcmVw
LndoZW4gIT0gd2hlbjoKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgaWYg
bm90IGluYW1lcGFydCBvciBpbmFtZXBhcnQgaW4gcmVwLm5vZGVpZC5zcGxpdCgiOjoiKToKICAg
ICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHJlcCkKQEAgLTMzMywxMSArMzAwLDEyIEBAIGNs
YXNzIEhvb2tSZWNvcmRlcihvYmplY3QpOgogICAgICAgICBmYWlsZWQgPSBbXQogICAgICAgICBm
b3IgcmVwIGluIHNlbGYuZ2V0cmVwb3J0cygicHl0ZXN0X2NvbGxlY3RyZXBvcnQgcHl0ZXN0X3J1
bnRlc3RfbG9ncmVwb3J0Iik6CiAgICAgICAgICAgICBpZiByZXAucGFzc2VkOgotICAgICAgICAg
ICAgICAgIGlmIGdldGF0dHIocmVwLCAid2hlbiIsIE5vbmUpID09ICJjYWxsIjoKKyAgICAgICAg
ICAgICAgICBpZiByZXAud2hlbiA9PSAiY2FsbCI6CiAgICAgICAgICAgICAgICAgICAgIHBhc3Nl
ZC5hcHBlbmQocmVwKQogICAgICAgICAgICAgZWxpZiByZXAuc2tpcHBlZDoKICAgICAgICAgICAg
ICAgICBza2lwcGVkLmFwcGVuZChyZXApCi0gICAgICAgICAgICBlbGlmIHJlcC5mYWlsZWQ6Cisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFzc2VydCByZXAuZmFpbGVkLCAiVW5l
eHBlY3RlZCBvdXRjb21lOiB7IXJ9Ii5mb3JtYXQocmVwKQogICAgICAgICAgICAgICAgIGZhaWxl
ZC5hcHBlbmQocmVwKQogICAgICAgICByZXR1cm4gcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQKIApA
QCAtMzY5LDYgKzMzNywyNCBAQCBkZWYgdGVzdGRpcihyZXF1ZXN0LCB0bXBkaXJfZmFjdG9yeSk6
CiAgICAgcmV0dXJuIFRlc3RkaXIocmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpCiAKIAorQHB5dGVz
dC5maXh0dXJlCitkZWYgX3N5c19zbmFwc2hvdCgpOgorICAgIHNuYXBwYXRocyA9IFN5c1BhdGhz
U25hcHNob3QoKQorICAgIHNuYXBtb2RzID0gU3lzTW9kdWxlc1NuYXBzaG90KCkKKyAgICB5aWVs
ZAorICAgIHNuYXBtb2RzLnJlc3RvcmUoKQorICAgIHNuYXBwYXRocy5yZXN0b3JlKCkKKworCitA
cHl0ZXN0LmZpeHR1cmUKK2RlZiBfY29uZmlnX2Zvcl90ZXN0KCk6CisgICAgZnJvbSBfcHl0ZXN0
LmNvbmZpZyBpbXBvcnQgZ2V0X2NvbmZpZworCisgICAgY29uZmlnID0gZ2V0X2NvbmZpZygpCisg
ICAgeWllbGQgY29uZmlnCisgICAgY29uZmlnLl9lbnN1cmVfdW5jb25maWd1cmUoKSAgIyBjbGVh
bnVwLCBlLmcuIGNhcG1hbiBjbG9zaW5nIHRtcGZpbGVzLgorCisKIHJleF9vdXRjb21lID0gcmUu
Y29tcGlsZShyIihcZCspIChbXHctXSspIikKIAogCkBAIC0zOTYsNiArMzgyLDEyIEBAIGNsYXNz
IFJ1blJlc3VsdChvYmplY3QpOgogICAgICAgICBzZWxmLnN0ZGVyciA9IExpbmVNYXRjaGVyKGVy
cmxpbmVzKQogICAgICAgICBzZWxmLmR1cmF0aW9uID0gZHVyYXRpb24KIAorICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgICI8UnVuUmVzdWx0IHJl
dD0lciBsZW4oc3Rkb3V0LmxpbmVzKT0lZCBsZW4oc3RkZXJyLmxpbmVzKT0lZCBkdXJhdGlvbj0l
LjJmcz4iCisgICAgICAgICAgICAlIChzZWxmLnJldCwgbGVuKHNlbGYuc3Rkb3V0LmxpbmVzKSwg
bGVuKHNlbGYuc3RkZXJyLmxpbmVzKSwgc2VsZi5kdXJhdGlvbikKKyAgICAgICAgKQorCiAgICAg
ZGVmIHBhcnNlb3V0Y29tZXMoc2VsZik6CiAgICAgICAgICIiIlJldHVybiBhIGRpY3Rpb25hcnkg
b2Ygb3V0Y29tZXN0cmluZy0+bnVtIGZyb20gcGFyc2luZyB0aGUgdGVybWluYWwKICAgICAgICAg
b3V0cHV0IHRoYXQgdGhlIHRlc3QgcHJvY2VzcyBwcm9kdWNlZC4KQEAgLTQxMSw3ICs0MDMsOSBA
QCBjbGFzcyBSdW5SZXN1bHQob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGQK
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUHl0ZXN0IHRlcm1pbmFsIHJlcG9ydCBub3QgZm91
bmQiKQogCi0gICAgZGVmIGFzc2VydF9vdXRjb21lcyhzZWxmLCBwYXNzZWQ9MCwgc2tpcHBlZD0w
LCBmYWlsZWQ9MCwgZXJyb3I9MCk6CisgICAgZGVmIGFzc2VydF9vdXRjb21lcygKKyAgICAgICAg
c2VsZiwgcGFzc2VkPTAsIHNraXBwZWQ9MCwgZmFpbGVkPTAsIGVycm9yPTAsIHhwYXNzZWQ9MCwg
eGZhaWxlZD0wCisgICAgKToKICAgICAgICAgIiIiQXNzZXJ0IHRoYXQgdGhlIHNwZWNpZmllZCBv
dXRjb21lcyBhcHBlYXIgd2l0aCB0aGUgcmVzcGVjdGl2ZQogICAgICAgICBudW1iZXJzICgwIG1l
YW5zIGl0IGRpZG4ndCBvY2N1cikgaW4gdGhlIHRleHQgb3V0cHV0IGZyb20gYSB0ZXN0IHJ1bi4K
IApAQCAtNDIyLDE0ICs0MTYsMjEgQEAgY2xhc3MgUnVuUmVzdWx0KG9iamVjdCk6CiAgICAgICAg
ICAgICAic2tpcHBlZCI6IGQuZ2V0KCJza2lwcGVkIiwgMCksCiAgICAgICAgICAgICAiZmFpbGVk
IjogZC5nZXQoImZhaWxlZCIsIDApLAogICAgICAgICAgICAgImVycm9yIjogZC5nZXQoImVycm9y
IiwgMCksCisgICAgICAgICAgICAieHBhc3NlZCI6IGQuZ2V0KCJ4cGFzc2VkIiwgMCksCisgICAg
ICAgICAgICAieGZhaWxlZCI6IGQuZ2V0KCJ4ZmFpbGVkIiwgMCksCiAgICAgICAgIH0KLSAgICAg
ICAgYXNzZXJ0ICgKLSAgICAgICAgICAgIG9idGFpbmVkID09IGRpY3QocGFzc2VkPXBhc3NlZCwg
c2tpcHBlZD1za2lwcGVkLCBmYWlsZWQ9ZmFpbGVkLCBlcnJvcj1lcnJvcikKLSAgICAgICAgKQor
ICAgICAgICBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICJwYXNzZWQiOiBwYXNzZWQsCisgICAg
ICAgICAgICAic2tpcHBlZCI6IHNraXBwZWQsCisgICAgICAgICAgICAiZmFpbGVkIjogZmFpbGVk
LAorICAgICAgICAgICAgImVycm9yIjogZXJyb3IsCisgICAgICAgICAgICAieHBhc3NlZCI6IHhw
YXNzZWQsCisgICAgICAgICAgICAieGZhaWxlZCI6IHhmYWlsZWQsCisgICAgICAgIH0KKyAgICAg
ICAgYXNzZXJ0IG9idGFpbmVkID09IGV4cGVjdGVkCiAKIAogY2xhc3MgQ3dkU25hcHNob3Qob2Jq
ZWN0KToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgc2VsZi5fX3NhdmVkID0g
b3MuZ2V0Y3dkKCkKIApAQCAtNDM4LDcgKzQzOSw2IEBAIGNsYXNzIEN3ZFNuYXBzaG90KG9iamVj
dCk6CiAKIAogY2xhc3MgU3lzTW9kdWxlc1NuYXBzaG90KG9iamVjdCk6Ci0KICAgICBkZWYgX19p
bml0X18oc2VsZiwgcHJlc2VydmU9Tm9uZSk6CiAgICAgICAgIHNlbGYuX19wcmVzZXJ2ZSA9IHBy
ZXNlcnZlCiAgICAgICAgIHNlbGYuX19zYXZlZCA9IGRpY3Qoc3lzLm1vZHVsZXMpCkBAIC00NTMs
NyArNDUzLDYgQEAgY2xhc3MgU3lzTW9kdWxlc1NuYXBzaG90KG9iamVjdCk6CiAKIAogY2xhc3Mg
U3lzUGF0aHNTbmFwc2hvdChvYmplY3QpOgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAg
ICAgICBzZWxmLl9fc2F2ZWQgPSBsaXN0KHN5cy5wYXRoKSwgbGlzdChzeXMubWV0YV9wYXRoKQog
CkBAIC00NzksMTEgKzQ3OCwxNyBAQCBjbGFzcyBUZXN0ZGlyKG9iamVjdCk6CiAKICAgICAiIiIK
IAorICAgIENMT1NFX1NURElOID0gb2JqZWN0CisKKyAgICBjbGFzcyBUaW1lb3V0RXhwaXJlZChF
eGNlcHRpb24pOgorICAgICAgICBwYXNzCisKICAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVz
dCwgdG1wZGlyX2ZhY3RvcnkpOgogICAgICAgICBzZWxmLnJlcXVlc3QgPSByZXF1ZXN0CiAgICAg
ICAgIHNlbGYuX21vZF9jb2xsZWN0aW9ucyA9IFdlYWtLZXlEaWN0aW9uYXJ5KCkKICAgICAgICAg
bmFtZSA9IHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18KICAgICAgICAgc2VsZi50bXBkaXIgPSB0
bXBkaXJfZmFjdG9yeS5ta3RlbXAobmFtZSwgbnVtYmVyZWQ9VHJ1ZSkKKyAgICAgICAgc2VsZi50
ZXN0X3RtcHJvb3QgPSB0bXBkaXJfZmFjdG9yeS5ta3RlbXAoInRtcC0iICsgbmFtZSwgbnVtYmVy
ZWQ9VHJ1ZSkKICAgICAgICAgc2VsZi5wbHVnaW5zID0gW10KICAgICAgICAgc2VsZi5fY3dkX3Nu
YXBzaG90ID0gQ3dkU25hcHNob3QoKQogICAgICAgICBzZWxmLl9zeXNfcGF0aF9zbmFwc2hvdCA9
IFN5c1BhdGhzU25hcHNob3QoKQpAQCAtNDk2LDkgKzUwMSwyMyBAQCBjbGFzcyBUZXN0ZGlyKG9i
amVjdCk6CiAgICAgICAgIGVsaWYgbWV0aG9kID09ICJzdWJwcm9jZXNzIjoKICAgICAgICAgICAg
IHNlbGYuX3J1bnB5dGVzdF9tZXRob2QgPSBzZWxmLnJ1bnB5dGVzdF9zdWJwcm9jZXNzCiAKKyAg
ICAgICAgbXAgPSBzZWxmLm1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQorICAgICAgICBtcC5z
ZXRlbnYoIlBZVEVTVF9ERUJVR19URU1QUk9PVCIsIHN0cihzZWxmLnRlc3RfdG1wcm9vdCkpCisg
ICAgICAgICMgRW5zdXJlIG5vIHVuZXhwZWN0ZWQgY2FjaGluZyB2aWEgdG94LgorICAgICAgICBt
cC5kZWxlbnYoIlRPWF9FTlZfRElSIiwgcmFpc2luZz1GYWxzZSkKKyAgICAgICAgIyBEaXNjYXJk
IG91dGVyIHB5dGVzdCBvcHRpb25zLgorICAgICAgICBtcC5kZWxlbnYoIlBZVEVTVF9BRERPUFRT
IiwgcmFpc2luZz1GYWxzZSkKKworICAgICAgICAjIEVudmlyb25tZW50ICh1cGRhdGVzKSBmb3Ig
aW5uZXIgcnVucy4KKyAgICAgICAgdG1waG9tZSA9IHN0cihzZWxmLnRtcGRpcikKKyAgICAgICAg
c2VsZi5fZW52X3J1bl91cGRhdGUgPSB7IkhPTUUiOiB0bXBob21lLCAiVVNFUlBST0ZJTEUiOiB0
bXBob21lfQorCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gIjxUZXN0
ZGlyICVyPiIgJSAoc2VsZi50bXBkaXIsKQogCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAg
ICAgIHJldHVybiBzdHIoc2VsZi50bXBkaXIpCisKICAgICBkZWYgZmluYWxpemUoc2VsZik6CiAg
ICAgICAgICIiIkNsZWFuIHVwIGdsb2JhbCBzdGF0ZSBhcnRpZmFjdHMuCiAKQEAgLTUxMCw2ICs1
MjksNyBAQCBjbGFzcyBUZXN0ZGlyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3N5c19tb2R1bGVz
X3NuYXBzaG90LnJlc3RvcmUoKQogICAgICAgICBzZWxmLl9zeXNfcGF0aF9zbmFwc2hvdC5yZXN0
b3JlKCkKICAgICAgICAgc2VsZi5fY3dkX3NuYXBzaG90LnJlc3RvcmUoKQorICAgICAgICBzZWxm
Lm1vbmtleXBhdGNoLnVuZG8oKQogCiAgICAgZGVmIF9fdGFrZV9zeXNfbW9kdWxlc19zbmFwc2hv
dChzZWxmKToKICAgICAgICAgIyBzb21lIHpvcGUgbW9kdWxlcyB1c2VkIGJ5IHR3aXN0ZWQtcmVs
YXRlZCB0ZXN0cyBrZWVwIGludGVybmFsIHN0YXRlCkBAIC01MjIsNyArNTQyLDYgQEAgY2xhc3Mg
VGVzdGRpcihvYmplY3QpOgogCiAgICAgZGVmIG1ha2VfaG9va19yZWNvcmRlcihzZWxmLCBwbHVn
aW5tYW5hZ2VyKToKICAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IDpweTpjbGFzczpgSG9va1JlY29y
ZGVyYCBmb3IgYSBQbHVnaW5NYW5hZ2VyLiIiIgotICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIo
cGx1Z2lubWFuYWdlciwgInJlcHJlYyIpCiAgICAgICAgIHBsdWdpbm1hbmFnZXIucmVwcmVjID0g
cmVwcmVjID0gSG9va1JlY29yZGVyKHBsdWdpbm1hbmFnZXIpCiAgICAgICAgIHNlbGYucmVxdWVz
dC5hZGRmaW5hbGl6ZXIocmVwcmVjLmZpbmlzaF9yZWNvcmRpbmcpCiAgICAgICAgIHJldHVybiBy
ZXByZWMKQEAgLTU1OCwxOCArNTc3LDIyIEBAIGNsYXNzIFRlc3RkaXIob2JqZWN0KToKICAgICAg
ICAgcmV0dXJuIHJldAogCiAgICAgZGVmIG1ha2VmaWxlKHNlbGYsIGV4dCwgKmFyZ3MsICoqa3dh
cmdzKToKLSAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlIHRlc3RkaXIuCi0KLSAg
ICAgICAgZXh0OiBUaGUgZXh0ZW5zaW9uIHRoZSBmaWxlIHNob3VsZCB1c2UsIGluY2x1ZGluZyB0
aGUgZG90LCBlLmcuIGAucHlgLgorICAgICAgICByIiIiQ3JlYXRlIG5ldyBmaWxlKHMpIGluIHRo
ZSB0ZXN0ZGlyLgogCi0gICAgICAgIGFyZ3M6IEFsbCBhcmdzIHdpbGwgYmUgdHJlYXRlZCBhcyBz
dHJpbmdzIGFuZCBqb2luZWQgdXNpbmcgbmV3bGluZXMuCisgICAgICAgIDpwYXJhbSBzdHIgZXh0
OiBUaGUgZXh0ZW5zaW9uIHRoZSBmaWxlKHMpIHNob3VsZCB1c2UsIGluY2x1ZGluZyB0aGUgZG90
LCBlLmcuIGAucHlgLgorICAgICAgICA6cGFyYW0gbGlzdFtzdHJdIGFyZ3M6IEFsbCBhcmdzIHdp
bGwgYmUgdHJlYXRlZCBhcyBzdHJpbmdzIGFuZCBqb2luZWQgdXNpbmcgbmV3bGluZXMuCiAgICAg
ICAgICAgIFRoZSByZXN1bHQgd2lsbCBiZSB3cml0dGVuIGFzIGNvbnRlbnRzIHRvIHRoZSBmaWxl
LiAgVGhlIG5hbWUgb2YgdGhlCiAgICAgICAgICAgIGZpbGUgd2lsbCBiZSBiYXNlZCBvbiB0aGUg
dGVzdCBmdW5jdGlvbiByZXF1ZXN0aW5nIHRoaXMgZml4dHVyZS4KLSAgICAgICAgICAgRS5nLiAi
dGVzdGRpci5tYWtlZmlsZSgnLnR4dCcsICdsaW5lMScsICdsaW5lMicpIgotCi0gICAgICAgIGt3
YXJnczogRWFjaCBrZXl3b3JkIGlzIHRoZSBuYW1lIG9mIGEgZmlsZSwgd2hpbGUgdGhlIHZhbHVl
IG9mIGl0IHdpbGwKKyAgICAgICAgOnBhcmFtIGt3YXJnczogRWFjaCBrZXl3b3JkIGlzIHRoZSBu
YW1lIG9mIGEgZmlsZSwgd2hpbGUgdGhlIHZhbHVlIG9mIGl0IHdpbGwKICAgICAgICAgICAgYmUg
d3JpdHRlbiBhcyBjb250ZW50cyBvZiB0aGUgZmlsZS4KLSAgICAgICAgICAgRS5nLiAidGVzdGRp
ci5tYWtlZmlsZSgnLmluaScsIHB5dGVzdD0nW3B5dGVzdF1cbmFkZG9wdHM9LXJzXG4nKSIKKwor
ICAgICAgICBFeGFtcGxlczoKKworICAgICAgICAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAg
ICAgICAgICAgIHRlc3RkaXIubWFrZWZpbGUoIi50eHQiLCAibGluZTEiLCAibGluZTIiKQorCisg
ICAgICAgICAgICB0ZXN0ZGlyLm1ha2VmaWxlKCIuaW5pIiwgcHl0ZXN0PSJbcHl0ZXN0XVxuYWRk
b3B0cz0tcnNcbiIpCiAKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLl9tYWtlZmls
ZShleHQsIGFyZ3MsIGt3YXJncykKQEAgLTYwMCwyNSArNjIzLDExIEBAIGNsYXNzIFRlc3RkaXIo
b2JqZWN0KToKIAogICAgICAgICBUaGlzIGlzIHVuZG9uZSBhdXRvbWF0aWNhbGx5IHdoZW4gdGhp
cyBvYmplY3QgZGllcyBhdCB0aGUgZW5kIG9mIGVhY2gKICAgICAgICAgdGVzdC4KLQogICAgICAg
ICAiIiIKICAgICAgICAgaWYgcGF0aCBpcyBOb25lOgogICAgICAgICAgICAgcGF0aCA9IHNlbGYu
dG1wZGlyCi0gICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCBzdHIocGF0aCkpCi0gICAgICAgICMg
YSBjYWxsIHRvIHN5c3BhdGhpbnNlcnQoKSB1c3VhbGx5IG1lYW5zIHRoYXQgdGhlIGNhbGxlciB3
YW50cyB0bwotICAgICAgICAjIGltcG9ydCBzb21lIGR5bmFtaWNhbGx5IGNyZWF0ZWQgZmlsZXMs
IHRodXMgd2l0aCBweXRob24zIHdlCi0gICAgICAgICMgaW52YWxpZGF0ZSBpdHMgaW1wb3J0IGNh
Y2hlcwotICAgICAgICBzZWxmLl9wb3NzaWJseV9pbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMoKQot
Ci0gICAgZGVmIF9wb3NzaWJseV9pbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMoc2VsZik6Ci0gICAg
ICAgICMgaW52YWxpZGF0ZSBjYWNoZXMgaWYgd2UgY2FuIChweTMzIGFuZCBhYm92ZSkKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0IGltcG9ydGxpYgotICAgICAgICBleGNlcHQgSW1w
b3J0RXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBp
ZiBoYXNhdHRyKGltcG9ydGxpYiwgImludmFsaWRhdGVfY2FjaGVzIik6Ci0gICAgICAgICAgICAg
ICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKKworICAgICAgICBzZWxmLm1vbmtleXBh
dGNoLnN5c3BhdGhfcHJlcGVuZChzdHIocGF0aCkpCiAKICAgICBkZWYgbWtkaXIoc2VsZiwgbmFt
ZSk6CiAgICAgICAgICIiIkNyZWF0ZSBhIG5ldyAoc3ViKWRpcmVjdG9yeS4iIiIKQEAgLTYzNSw2
ICs2NDQsNTAgQEAgY2xhc3MgVGVzdGRpcihvYmplY3QpOgogICAgICAgICBwLmVuc3VyZSgiX19p
bml0X18ucHkiKQogICAgICAgICByZXR1cm4gcAogCisgICAgZGVmIGNvcHlfZXhhbXBsZShzZWxm
LCBuYW1lPU5vbmUpOgorICAgICAgICBpbXBvcnQgd2FybmluZ3MKKyAgICAgICAgZnJvbSBfcHl0
ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFBZVEVTVEVSX0NPUFlfRVhBTVBMRQorCisgICAgICAg
IHdhcm5pbmdzLndhcm4oUFlURVNURVJfQ09QWV9FWEFNUExFLCBzdGFja2xldmVsPTIpCisgICAg
ICAgIGV4YW1wbGVfZGlyID0gc2VsZi5yZXF1ZXN0LmNvbmZpZy5nZXRpbmkoInB5dGVzdGVyX2V4
YW1wbGVfZGlyIikKKyAgICAgICAgaWYgZXhhbXBsZV9kaXIgaXMgTm9uZToKKyAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoInB5dGVzdGVyX2V4YW1wbGVfZGlyIGlzIHVuc2V0LCBjYW4ndCBj
b3B5IGV4YW1wbGVzIikKKyAgICAgICAgZXhhbXBsZV9kaXIgPSBzZWxmLnJlcXVlc3QuY29uZmln
LnJvb3RkaXIuam9pbihleGFtcGxlX2RpcikKKworICAgICAgICBmb3IgZXh0cmFfZWxlbWVudCBp
biBzZWxmLnJlcXVlc3Qubm9kZS5pdGVyX21hcmtlcnMoInB5dGVzdGVyX2V4YW1wbGVfcGF0aCIp
OgorICAgICAgICAgICAgYXNzZXJ0IGV4dHJhX2VsZW1lbnQuYXJncworICAgICAgICAgICAgZXhh
bXBsZV9kaXIgPSBleGFtcGxlX2Rpci5qb2luKCpleHRyYV9lbGVtZW50LmFyZ3MpCisKKyAgICAg
ICAgaWYgbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgZnVuY19uYW1lID0gc2VsZi5yZXF1ZXN0
LmZ1bmN0aW9uLl9fbmFtZV9fCisgICAgICAgICAgICBtYXliZV9kaXIgPSBleGFtcGxlX2RpciAv
IGZ1bmNfbmFtZQorICAgICAgICAgICAgbWF5YmVfZmlsZSA9IGV4YW1wbGVfZGlyIC8gKGZ1bmNf
bmFtZSArICIucHkiKQorCisgICAgICAgICAgICBpZiBtYXliZV9kaXIuaXNkaXIoKToKKyAgICAg
ICAgICAgICAgICBleGFtcGxlX3BhdGggPSBtYXliZV9kaXIKKyAgICAgICAgICAgIGVsaWYgbWF5
YmVfZmlsZS5pc2ZpbGUoKToKKyAgICAgICAgICAgICAgICBleGFtcGxlX3BhdGggPSBtYXliZV9m
aWxlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIExvb2t1cEVycm9y
KAorICAgICAgICAgICAgICAgICAgICAie30gY2FudCBiZSBmb3VuZCBhcyBtb2R1bGUgb3IgcGFj
a2FnZSBpbiB7fSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuY19uYW1lLCBl
eGFtcGxlX2Rpci5iZXN0cmVscGF0aChzZWxmLnJlcXVlc3QuY29uZmlnLnJvb3RkaXIpCisgICAg
ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBleGFtcGxlX3BhdGggPSBleGFtcGxlX2Rpci5qb2luKG5hbWUpCisKKyAgICAgICAg
aWYgZXhhbXBsZV9wYXRoLmlzZGlyKCkgYW5kIG5vdCBleGFtcGxlX3BhdGguam9pbigiX19pbml0
X18ucHkiKS5pc2ZpbGUoKToKKyAgICAgICAgICAgIGV4YW1wbGVfcGF0aC5jb3B5KHNlbGYudG1w
ZGlyKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYudG1wZGlyCisgICAgICAgIGVsaWYgZXhhbXBs
ZV9wYXRoLmlzZmlsZSgpOgorICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi50bXBkaXIuam9pbihl
eGFtcGxlX3BhdGguYmFzZW5hbWUpCisgICAgICAgICAgICBleGFtcGxlX3BhdGguY29weShyZXN1
bHQpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByYWlzZSBMb29rdXBFcnJvcigKKyAgICAgICAgICAgICAgICAnZXhhbXBsZSAie30iIGlzIG5v
dCBmb3VuZCBhcyBhIGZpbGUgb3IgZGlyZWN0b3J5Jy5mb3JtYXQoZXhhbXBsZV9wYXRoKQorICAg
ICAgICAgICAgKQorCiAgICAgU2Vzc2lvbiA9IFNlc3Npb24KIAogICAgIGRlZiBnZXRub2RlKHNl
bGYsIGNvbmZpZywgYXJnKToKQEAgLTc0MiwxNCArNzk1LDIzIEBAIGNsYXNzIFRlc3RkaXIob2Jq
ZWN0KToKIAogICAgICAgICA6cGFyYW0gYXJnczogY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byBw
YXNzIHRvIDpweTpmdW5jOmBweXRlc3QubWFpbmAKIAotICAgICAgICA6cGFyYW0gcGx1Z2luOiAo
a2V5d29yZC1vbmx5KSBleHRyYSBwbHVnaW4gaW5zdGFuY2VzIHRoZQorICAgICAgICA6cGFyYW0g
cGx1Z2luczogKGtleXdvcmQtb25seSkgZXh0cmEgcGx1Z2luIGluc3RhbmNlcyB0aGUKICAgICAg
ICAgICAgYGBweXRlc3QubWFpbigpYGAgaW5zdGFuY2Ugc2hvdWxkIHVzZQogCiAgICAgICAgIDpy
ZXR1cm46IGEgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGluc3RhbmNlCi0KICAgICAgICAgIiIi
CisgICAgICAgIHBsdWdpbnMgPSBrd2FyZ3MucG9wKCJwbHVnaW5zIiwgW10pCisgICAgICAgIG5v
X3JlcmFpc2VfY3RybGMgPSBrd2FyZ3MucG9wKCJub19yZXJhaXNlX2N0cmxjIiwgTm9uZSkKKyAg
ICAgICAgcmFpc2Vfb25fa3dhcmdzKGt3YXJncykKKwogICAgICAgICBmaW5hbGl6ZXJzID0gW10K
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBEbyBub3QgbG9hZCB1c2VyIGNvbmZpZyAoZHVy
aW5nIHJ1bnMgb25seSkuCisgICAgICAgICAgICBtcF9ydW4gPSBNb25rZXlQYXRjaCgpCisgICAg
ICAgICAgICBmb3IgaywgdiBpbiBzZWxmLl9lbnZfcnVuX3VwZGF0ZS5pdGVtcygpOgorICAgICAg
ICAgICAgICAgIG1wX3J1bi5zZXRlbnYoaywgdikKKyAgICAgICAgICAgIGZpbmFsaXplcnMuYXBw
ZW5kKG1wX3J1bi51bmRvKQorCiAgICAgICAgICAgICAjIFdoZW4gcnVubmluZyBweXRlc3QgaW5s
aW5lIGFueSBwbHVnaW5zIGFjdGl2ZSBpbiB0aGUgbWFpbiB0ZXN0CiAgICAgICAgICAgICAjIHBy
b2Nlc3MgYXJlIGFscmVhZHkgaW1wb3J0ZWQuICBTbyB0aGlzIGRpc2FibGVzIHRoZSB3YXJuaW5n
IHdoaWNoCiAgICAgICAgICAgICAjIHdpbGwgdHJpZ2dlciB0byBzYXkgdGhleSBjYW4gbm8gbG9u
Z2VyIGJlIHJld3JpdHRlbiwgd2hpY2ggaXMKQEAgLTc3OCwxMSArODQwLDkgQEAgY2xhc3MgVGVz
dGRpcihvYmplY3QpOgogICAgICAgICAgICAgcmVjID0gW10KIAogICAgICAgICAgICAgY2xhc3Mg
Q29sbGVjdChvYmplY3QpOgotCiAgICAgICAgICAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1cmUo
eCwgY29uZmlnKToKICAgICAgICAgICAgICAgICAgICAgcmVjLmFwcGVuZChzZWxmLm1ha2VfaG9v
a19yZWNvcmRlcihjb25maWcucGx1Z2lubWFuYWdlcikpCiAKLSAgICAgICAgICAgIHBsdWdpbnMg
PSBrd2FyZ3MuZ2V0KCJwbHVnaW5zIikgb3IgW10KICAgICAgICAgICAgIHBsdWdpbnMuYXBwZW5k
KENvbGxlY3QoKSkKICAgICAgICAgICAgIHJldCA9IHB5dGVzdC5tYWluKGxpc3QoYXJncyksIHBs
dWdpbnM9cGx1Z2lucykKICAgICAgICAgICAgIGlmIGxlbihyZWMpID09IDE6CkBAIC03OTYsNyAr
ODU2LDcgQEAgY2xhc3MgVGVzdGRpcihvYmplY3QpOgogCiAgICAgICAgICAgICAjIHR5cGljYWxs
eSB3ZSByZXJhaXNlIGtleWJvYXJkIGludGVycnVwdHMgZnJvbSB0aGUgY2hpbGQgcnVuCiAgICAg
ICAgICAgICAjIGJlY2F1c2UgaXQncyBvdXIgdXNlciByZXF1ZXN0aW5nIGludGVycnVwdGlvbiBv
ZiB0aGUgdGVzdGluZwotICAgICAgICAgICAgaWYgcmV0ID09IDIgYW5kIG5vdCBrd2FyZ3MuZ2V0
KCJub19yZXJhaXNlX2N0cmxjIik6CisgICAgICAgICAgICBpZiByZXQgPT0gRVhJVF9JTlRFUlJV
UFRFRCBhbmQgbm90IG5vX3JlcmFpc2VfY3RybGM6CiAgICAgICAgICAgICAgICAgY2FsbHMgPSBy
ZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9rZXlib2FyZF9pbnRlcnJ1cHQiKQogICAgICAgICAgICAg
ICAgIGlmIGNhbGxzIGFuZCBjYWxsc1stMV0uZXhjaW5mby50eXBlID09IEtleWJvYXJkSW50ZXJy
dXB0OgogICAgICAgICAgICAgICAgICAgICByYWlzZSBLZXlib2FyZEludGVycnVwdCgpCkBAIC04
MDgsOSArODY4LDEwIEBAIGNsYXNzIFRlc3RkaXIob2JqZWN0KToKICAgICBkZWYgcnVucHl0ZXN0
X2lucHJvY2VzcyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICAiIiJSZXR1cm4gcmVz
dWx0IG9mIHJ1bm5pbmcgcHl0ZXN0IGluLXByb2Nlc3MsIHByb3ZpZGluZyBhIHNpbWlsYXIKICAg
ICAgICAgaW50ZXJmYWNlIHRvIHdoYXQgc2VsZi5ydW5weXRlc3QoKSBwcm92aWRlcy4KLQogICAg
ICAgICAiIiIKLSAgICAgICAgaWYga3dhcmdzLmdldCgic3lzcGF0aGluc2VydCIpOgorICAgICAg
ICBzeXNwYXRoaW5zZXJ0ID0ga3dhcmdzLnBvcCgic3lzcGF0aGluc2VydCIsIEZhbHNlKQorCisg
ICAgICAgIGlmIHN5c3BhdGhpbnNlcnQ6CiAgICAgICAgICAgICBzZWxmLnN5c3BhdGhpbnNlcnQo
KQogICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQogICAgICAgICBjYXB0dXJlID0gTXVsdGlDYXB0
dXJlKENhcHR1cmU9U3lzQ2FwdHVyZSkKQEAgLTg0OCwxNCArOTA5LDEyIEBAIGNsYXNzIFRlc3Rk
aXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuX3J1bnB5dGVzdF9tZXRob2QoKmFyZ3Ms
ICoqa3dhcmdzKQogCiAgICAgZGVmIF9lbnN1cmVfYmFzZXRlbXAoc2VsZiwgYXJncyk6Ci0gICAg
ICAgIGFyZ3MgPSBbc3RyKHgpIGZvciB4IGluIGFyZ3NdCisgICAgICAgIGFyZ3MgPSBsaXN0KGFy
Z3MpCiAgICAgICAgIGZvciB4IGluIGFyZ3M6Ci0gICAgICAgICAgICBpZiBzdHIoeCkuc3RhcnRz
d2l0aCgiLS1iYXNldGVtcCIpOgotICAgICAgICAgICAgICAgICMgcHJpbnQoImJhc2VkdGVtcCBl
eGlzdHM6ICVzIiAlKGFyZ3MsKSkKKyAgICAgICAgICAgIGlmIHNhZmVfc3RyKHgpLnN0YXJ0c3dp
dGgoIi0tYmFzZXRlbXAiKToKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tYmFzZXRlbXA9JXMiICUgc2VsZi50bXBkaXIuZGly
cGF0aCgiYmFzZXRlbXAiKSkKLSAgICAgICAgICAgICMgcHJpbnQoImFkZGVkIGJhc2V0ZW1wOiAl
cyIgJShhcmdzLCkpCiAgICAgICAgIHJldHVybiBhcmdzCiAKICAgICBkZWYgcGFyc2Vjb25maWco
c2VsZiwgKmFyZ3MpOgpAQCAtOTEwLDggKzk2OSwxMCBAQCBjbGFzcyBUZXN0ZGlyKG9iamVjdCk6
CiAgICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgogICAgICAgICAgICAgaWYgaXRlbS5uYW1lID09
IGZ1bmNuYW1lOgogICAgICAgICAgICAgICAgIHJldHVybiBpdGVtCi0gICAgICAgIGFzc2VydCAw
LCAoCi0gICAgICAgICAgICAiJXIgaXRlbSBub3QgZm91bmQgaW4gbW9kdWxlOlxuJXNcbml0ZW1z
OiAlcyIgJSAoZnVuY25hbWUsIHNvdXJjZSwgaXRlbXMpCisgICAgICAgIGFzc2VydCAwLCAiJXIg
aXRlbSBub3QgZm91bmQgaW4gbW9kdWxlOlxuJXNcbml0ZW1zOiAlcyIgJSAoCisgICAgICAgICAg
ICBmdW5jbmFtZSwKKyAgICAgICAgICAgIHNvdXJjZSwKKyAgICAgICAgICAgIGl0ZW1zLAogICAg
ICAgICApCiAKICAgICBkZWYgZ2V0aXRlbXMoc2VsZiwgc291cmNlKToKQEAgLTk0MCwxNCArMTAw
MSwxNiBAQCBjbGFzcyBUZXN0ZGlyKG9iamVjdCk6CiAgICAgICAgICAgICBzYW1lIGRpcmVjdG9y
eSB0byBlbnN1cmUgaXQgaXMgYSBwYWNrYWdlCiAKICAgICAgICAgIiIiCi0gICAgICAgIGt3ID0g
e3NlbGYucmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXzogU291cmNlKHNvdXJjZSkuc3RyaXAoKX0K
LSAgICAgICAgcGF0aCA9IHNlbGYubWFrZXB5ZmlsZSgqKmt3KQorICAgICAgICBpZiBpc2luc3Rh
bmNlKHNvdXJjZSwgUGF0aCk6CisgICAgICAgICAgICBwYXRoID0gc2VsZi50bXBkaXIuam9pbihz
dHIoc291cmNlKSkKKyAgICAgICAgICAgIGFzc2VydCBub3Qgd2l0aGluaXQsICJub3Qgc3VwcG9y
dGVkIGZvciBwYXRocyIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGt3ID0ge3NlbGYucmVx
dWVzdC5mdW5jdGlvbi5fX25hbWVfXzogU291cmNlKHNvdXJjZSkuc3RyaXAoKX0KKyAgICAgICAg
ICAgIHBhdGggPSBzZWxmLm1ha2VweWZpbGUoKiprdykKICAgICAgICAgaWYgd2l0aGluaXQ6CiAg
ICAgICAgICAgICBzZWxmLm1ha2VweWZpbGUoX19pbml0X189IiMiKQogICAgICAgICBzZWxmLmNv
bmZpZyA9IGNvbmZpZyA9IHNlbGYucGFyc2Vjb25maWd1cmUocGF0aCwgKmNvbmZpZ2FyZ3MpCi0g
ICAgICAgIG5vZGUgPSBzZWxmLmdldG5vZGUoY29uZmlnLCBwYXRoKQotCi0gICAgICAgIHJldHVy
biBub2RlCisgICAgICAgIHJldHVybiBzZWxmLmdldG5vZGUoY29uZmlnLCBwYXRoKQogCiAgICAg
ZGVmIGNvbGxlY3RfYnlfbmFtZShzZWxmLCBtb2Rjb2wsIG5hbWUpOgogICAgICAgICAiIiJSZXR1
cm4gdGhlIGNvbGxlY3Rpb24gbm9kZSBmb3IgbmFtZSBmcm9tIHRoZSBtb2R1bGUgY29sbGVjdGlv
bi4KQEAgLTk2Niw3ICsxMDI5LDE0IEBAIGNsYXNzIFRlc3RkaXIob2JqZWN0KToKICAgICAgICAg
ICAgIGlmIGNvbGl0ZW0ubmFtZSA9PSBuYW1lOgogICAgICAgICAgICAgICAgIHJldHVybiBjb2xp
dGVtCiAKLSAgICBkZWYgcG9wZW4oc2VsZiwgY21kYXJncywgc3Rkb3V0LCBzdGRlcnIsICoqa3cp
OgorICAgIGRlZiBwb3BlbigKKyAgICAgICAgc2VsZiwKKyAgICAgICAgY21kYXJncywKKyAgICAg
ICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQ
RSwKKyAgICAgICAgc3RkaW49Q0xPU0VfU1RESU4sCisgICAgICAgICoqa3cKKyAgICApOgogICAg
ICAgICAiIiJJbnZva2Ugc3VicHJvY2Vzcy5Qb3Blbi4KIAogICAgICAgICBUaGlzIGNhbGxzIHN1
YnByb2Nlc3MuUG9wZW4gbWFraW5nIHN1cmUgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkK
QEAgLTk3Nyw0MSArMTA0NywxMDIgQEAgY2xhc3MgVGVzdGRpcihvYmplY3QpOgogICAgICAgICAi
IiIKICAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKICAgICAgICAgZW52WyJQWVRIT05Q
QVRIIl0gPSBvcy5wYXRoc2VwLmpvaW4oCi0gICAgICAgICAgICBmaWx0ZXIoTm9uZSwgW3N0cihv
cy5nZXRjd2QoKSksIGVudi5nZXQoIlBZVEhPTlBBVEgiLCAiIildKQorICAgICAgICAgICAgZmls
dGVyKE5vbmUsIFtvcy5nZXRjd2QoKSwgZW52LmdldCgiUFlUSE9OUEFUSCIsICIiKV0pCiAgICAg
ICAgICkKKyAgICAgICAgZW52LnVwZGF0ZShzZWxmLl9lbnZfcnVuX3VwZGF0ZSkKICAgICAgICAg
a3dbImVudiJdID0gZW52CiAKLSAgICAgICAgcG9wZW4gPSBzdWJwcm9jZXNzLlBvcGVuKAotICAg
ICAgICAgICAgY21kYXJncywgc3RkaW49c3VicHJvY2Vzcy5QSVBFLCBzdGRvdXQ9c3Rkb3V0LCBz
dGRlcnI9c3RkZXJyLCAqKmt3Ci0gICAgICAgICkKLSAgICAgICAgcG9wZW4uc3RkaW4uY2xvc2Uo
KQorICAgICAgICBpZiBzdGRpbiBpcyBUZXN0ZGlyLkNMT1NFX1NURElOOgorICAgICAgICAgICAg
a3dbInN0ZGluIl0gPSBzdWJwcm9jZXNzLlBJUEUKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHN0
ZGluLCBieXRlcyk6CisgICAgICAgICAgICBrd1sic3RkaW4iXSA9IHN1YnByb2Nlc3MuUElQRQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAga3dbInN0ZGluIl0gPSBzdGRpbgorCisgICAgICAg
IHBvcGVuID0gc3VicHJvY2Vzcy5Qb3BlbihjbWRhcmdzLCBzdGRvdXQ9c3Rkb3V0LCBzdGRlcnI9
c3RkZXJyLCAqKmt3KQorICAgICAgICBpZiBzdGRpbiBpcyBUZXN0ZGlyLkNMT1NFX1NURElOOgor
ICAgICAgICAgICAgcG9wZW4uc3RkaW4uY2xvc2UoKQorICAgICAgICBlbGlmIGlzaW5zdGFuY2Uo
c3RkaW4sIGJ5dGVzKToKKyAgICAgICAgICAgIHBvcGVuLnN0ZGluLndyaXRlKHN0ZGluKQogCiAg
ICAgICAgIHJldHVybiBwb3BlbgogCi0gICAgZGVmIHJ1bihzZWxmLCAqY21kYXJncyk6CisgICAg
ZGVmIHJ1bihzZWxmLCAqY21kYXJncywgKiprd2FyZ3MpOgogICAgICAgICAiIiJSdW4gYSBjb21t
YW5kIHdpdGggYXJndW1lbnRzLgogCiAgICAgICAgIFJ1biBhIHByb2Nlc3MgdXNpbmcgc3VicHJv
Y2Vzcy5Qb3BlbiBzYXZpbmcgdGhlIHN0ZG91dCBhbmQgc3RkZXJyLgogCisgICAgICAgIDpwYXJh
bSBhcmdzOiB0aGUgc2VxdWVuY2Ugb2YgYXJndW1lbnRzIHRvIHBhc3MgdG8gYHN1YnByb2Nlc3Mu
UG9wZW4oKWAKKyAgICAgICAgOnBhcmFtIHRpbWVvdXQ6IHRoZSBwZXJpb2QgaW4gc2Vjb25kcyBh
ZnRlciB3aGljaCB0byB0aW1lb3V0IGFuZCByYWlzZQorICAgICAgICAgICAgOnB5OmNsYXNzOmBU
ZXN0ZGlyLlRpbWVvdXRFeHBpcmVkYAorICAgICAgICA6cGFyYW0gc3RkaW46IG9wdGlvbmFsIHN0
YW5kYXJkIGlucHV0LiAgQnl0ZXMgYXJlIGJlaW5nIHNlbmQsIGNsb3NpbmcKKyAgICAgICAgICAg
IHRoZSBwaXBlLCBvdGhlcndpc2UgaXQgaXMgcGFzc2VkIHRocm91Z2ggdG8gYGBwb3BlbmBgLgor
ICAgICAgICAgICAgRGVmYXVsdHMgdG8gYGBDTE9TRV9TVERJTmBgLCB3aGljaCB0cmFuc2xhdGVz
IHRvIHVzaW5nIGEgcGlwZQorICAgICAgICAgICAgKGBgc3VicHJvY2Vzcy5QSVBFYGApIHRoYXQg
Z2V0cyBjbG9zZWQuCisKICAgICAgICAgUmV0dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4K
IAogICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bigqY21kYXJncykKKyAgICAg
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisKKyAgICAgICAgdGltZW91dCA9IGt3YXJncy5w
b3AoInRpbWVvdXQiLCBOb25lKQorICAgICAgICBzdGRpbiA9IGt3YXJncy5wb3AoInN0ZGluIiwg
VGVzdGRpci5DTE9TRV9TVERJTikKKyAgICAgICAgcmFpc2Vfb25fa3dhcmdzKGt3YXJncykKIAot
ICAgIGRlZiBfcnVuKHNlbGYsICpjbWRhcmdzKToKLSAgICAgICAgY21kYXJncyA9IFtzdHIoeCkg
Zm9yIHggaW4gY21kYXJnc10KKyAgICAgICAgY21kYXJncyA9IFsKKyAgICAgICAgICAgIHN0cihh
cmcpIGlmIGlzaW5zdGFuY2UoYXJnLCBweS5wYXRoLmxvY2FsKSBlbHNlIGFyZyBmb3IgYXJnIGlu
IGNtZGFyZ3MKKyAgICAgICAgXQogICAgICAgICBwMSA9IHNlbGYudG1wZGlyLmpvaW4oInN0ZG91
dCIpCiAgICAgICAgIHAyID0gc2VsZi50bXBkaXIuam9pbigic3RkZXJyIikKLSAgICAgICAgcHJp
bnQoInJ1bm5pbmc6IiwgIiAiLmpvaW4oY21kYXJncykpCi0gICAgICAgIHByaW50KCIgICAgIGlu
OiIsIHN0cihweS5wYXRoLmxvY2FsKCkpKQorICAgICAgICBwcmludCgicnVubmluZzoiLCAqY21k
YXJncykKKyAgICAgICAgcHJpbnQoIiAgICAgaW46IiwgcHkucGF0aC5sb2NhbCgpKQogICAgICAg
ICBmMSA9IGNvZGVjcy5vcGVuKHN0cihwMSksICJ3IiwgZW5jb2Rpbmc9InV0ZjgiKQogICAgICAg
ICBmMiA9IGNvZGVjcy5vcGVuKHN0cihwMiksICJ3IiwgZW5jb2Rpbmc9InV0ZjgiKQogICAgICAg
ICB0cnk6CiAgICAgICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQogICAgICAgICAgICAgcG9wZW4g
PSBzZWxmLnBvcGVuKAotICAgICAgICAgICAgICAgIGNtZGFyZ3MsIHN0ZG91dD1mMSwgc3RkZXJy
PWYyLCBjbG9zZV9mZHM9KHN5cy5wbGF0Zm9ybSAhPSAid2luMzIiKQorICAgICAgICAgICAgICAg
IGNtZGFyZ3MsCisgICAgICAgICAgICAgICAgc3RkaW49c3RkaW4sCisgICAgICAgICAgICAgICAg
c3Rkb3V0PWYxLAorICAgICAgICAgICAgICAgIHN0ZGVycj1mMiwKKyAgICAgICAgICAgICAgICBj
bG9zZV9mZHM9KHN5cy5wbGF0Zm9ybSAhPSAid2luMzIiKSwKICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgIHJldCA9IHBvcGVuLndhaXQoKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzdGRp
biwgYnl0ZXMpOgorICAgICAgICAgICAgICAgIHBvcGVuLnN0ZGluLmNsb3NlKCkKKworICAgICAg
ICAgICAgZGVmIGhhbmRsZV90aW1lb3V0KCk6CisgICAgICAgICAgICAgICAgX190cmFjZWJhY2to
aWRlX18gPSBUcnVlCisKKyAgICAgICAgICAgICAgICB0aW1lb3V0X21lc3NhZ2UgPSAoCisgICAg
ICAgICAgICAgICAgICAgICJ7c2Vjb25kc30gc2Vjb25kIHRpbWVvdXQgZXhwaXJlZCBydW5uaW5n
OiIKKyAgICAgICAgICAgICAgICAgICAgIiB7Y29tbWFuZH0iLmZvcm1hdChzZWNvbmRzPXRpbWVv
dXQsIGNvbW1hbmQ9Y21kYXJncykKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgICAg
ICBwb3Blbi5raWxsKCkKKyAgICAgICAgICAgICAgICBwb3Blbi53YWl0KCkKKyAgICAgICAgICAg
ICAgICByYWlzZSBzZWxmLlRpbWVvdXRFeHBpcmVkKHRpbWVvdXRfbWVzc2FnZSkKKworICAgICAg
ICAgICAgaWYgdGltZW91dCBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldCA9IHBvcGVuLndh
aXQoKQorICAgICAgICAgICAgZWxpZiBub3Qgc2l4LlBZMjoKKyAgICAgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHBvcGVuLndhaXQodGltZW91dCkKKyAgICAgICAg
ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDoKKyAgICAgICAgICAgICAg
ICAgICAgaGFuZGxlX3RpbWVvdXQoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBlbmQgPSB0aW1lLnRpbWUoKSArIHRpbWVvdXQKKworICAgICAgICAgICAgICAgIHJlc29sdXRp
b24gPSBtaW4oMC4xLCB0aW1lb3V0IC8gMTApCisKKyAgICAgICAgICAgICAgICB3aGlsZSBUcnVl
OgorICAgICAgICAgICAgICAgICAgICByZXQgPSBwb3Blbi5wb2xsKCkKKyAgICAgICAgICAgICAg
ICAgICAgaWYgcmV0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsK
KworICAgICAgICAgICAgICAgICAgICBpZiB0aW1lLnRpbWUoKSA+IGVuZDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhhbmRsZV90aW1lb3V0KCkKKworICAgICAgICAgICAgICAgICAgICB0aW1l
LnNsZWVwKHJlc29sdXRpb24pCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBmMS5jbG9z
ZSgpCiAgICAgICAgICAgICBmMi5jbG9zZSgpCkBAIC0xMDM1LDkgKzExNjYsNyBAQCBjbGFzcyBU
ZXN0ZGlyKG9iamVjdCk6CiAgICAgICAgICAgICBwcmludCgiY291bGRuJ3QgcHJpbnQgdG8gJXMg
YmVjYXVzZSBvZiBlbmNvZGluZyIgJSAoZnAsKSkKIAogICAgIGRlZiBfZ2V0cHl0ZXN0YXJncyhz
ZWxmKToKLSAgICAgICAgIyB3ZSBjYW5ub3QgdXNlIGAoc3lzLmV4ZWN1dGFibGUsIHNjcmlwdClg
IGJlY2F1c2Ugb24gV2luZG93cyB0aGUKLSAgICAgICAgIyBzY3JpcHQgaXMgZS5nLiBgcHl0ZXN0
LmV4ZWAKLSAgICAgICAgcmV0dXJuIChzeXMuZXhlY3V0YWJsZSwgUFlURVNUX0ZVTExQQVRIKSAg
IyBub3FhCisgICAgICAgIHJldHVybiBzeXMuZXhlY3V0YWJsZSwgIi1tcHl0ZXN0IgogCiAgICAg
ZGVmIHJ1bnB5dGhvbihzZWxmLCBzY3JpcHQpOgogICAgICAgICAiIiJSdW4gYSBweXRob24gc2Ny
aXB0IHVzaW5nIHN5cy5leGVjdXRhYmxlIGFzIGludGVycHJldGVyLgpAQCAtMTA1NCwxNSArMTE4
MywyMiBAQCBjbGFzcyBUZXN0ZGlyKG9iamVjdCk6CiAgICAgZGVmIHJ1bnB5dGVzdF9zdWJwcm9j
ZXNzKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgICIiIlJ1biBweXRlc3QgYXMgYSBz
dWJwcm9jZXNzIHdpdGggZ2l2ZW4gYXJndW1lbnRzLgogCi0gICAgICAgIEFueSBwbHVnaW5zIGFk
ZGVkIHRvIHRoZSA6cHk6YXR0cjpgcGx1Z2luc2AgbGlzdCB3aWxsIGFkZGVkIHVzaW5nIHRoZQot
ICAgICAgICBgYC1wYGAgY29tbWFuZCBsaW5lIG9wdGlvbi4gIEFkZGl0aW9uYWxseSBgYC0tYmFz
ZXRlbXBgYCBpcyB1c2VkIHB1dAorICAgICAgICBBbnkgcGx1Z2lucyBhZGRlZCB0byB0aGUgOnB5
OmF0dHI6YHBsdWdpbnNgIGxpc3Qgd2lsbCBiZSBhZGRlZCB1c2luZyB0aGUKKyAgICAgICAgYGAt
cGBgIGNvbW1hbmQgbGluZSBvcHRpb24uICBBZGRpdGlvbmFsbHkgYGAtLWJhc2V0ZW1wYGAgaXMg
dXNlZCB0byBwdXQKICAgICAgICAgYW55IHRlbXBvcmFyeSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMg
aW4gYSBudW1iZXJlZCBkaXJlY3RvcnkgcHJlZml4ZWQKLSAgICAgICAgd2l0aCAicnVucHl0ZXN0
LSIgc28gdGhleSBkbyBub3QgY29uZmxpY3Qgd2l0aCB0aGUgbm9ybWFsIG51bWJlcmVkCi0gICAg
ICAgIHB5dGVzdCBsb2NhdGlvbiBmb3IgdGVtcG9yYXJ5IGZpbGVzIGFuZCBkaXJlY3Rvcmllcy4K
KyAgICAgICAgd2l0aCAicnVucHl0ZXN0LSIgdG8gbm90IGNvbmZsaWN0IHdpdGggdGhlIG5vcm1h
bCBudW1iZXJlZCBweXRlc3QKKyAgICAgICAgbG9jYXRpb24gZm9yIHRlbXBvcmFyeSBmaWxlcyBh
bmQgZGlyZWN0b3JpZXMuCiAKLSAgICAgICAgUmV0dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0
YC4KKyAgICAgICAgOnBhcmFtIGFyZ3M6IHRoZSBzZXF1ZW5jZSBvZiBhcmd1bWVudHMgdG8gcGFz
cyB0byB0aGUgcHl0ZXN0IHN1YnByb2Nlc3MKKyAgICAgICAgOnBhcmFtIHRpbWVvdXQ6IHRoZSBw
ZXJpb2QgaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0byB0aW1lb3V0IGFuZCByYWlzZQorICAgICAg
ICAgICAgOnB5OmNsYXNzOmBUZXN0ZGlyLlRpbWVvdXRFeHBpcmVkYAogCisgICAgICAgIFJldHVy
bnMgYSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAuCiAgICAgICAgICIiIgorICAgICAgICBfX3RyYWNl
YmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgdGltZW91dCA9IGt3YXJncy5wb3AoInRpbWVvdXQi
LCBOb25lKQorICAgICAgICByYWlzZV9vbl9rd2FyZ3Moa3dhcmdzKQorCiAgICAgICAgIHAgPSBw
eS5wYXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKAogICAgICAgICAgICAgcHJlZml4PSJydW5w
eXRlc3QtIiwga2VlcD1Ob25lLCByb290ZGlyPXNlbGYudG1wZGlyCiAgICAgICAgICkKQEAgLTEw
NzEsNyArMTIwNyw3IEBAIGNsYXNzIFRlc3RkaXIob2JqZWN0KToKICAgICAgICAgaWYgcGx1Z2lu
czoKICAgICAgICAgICAgIGFyZ3MgPSAoIi1wIiwgcGx1Z2luc1swXSkgKyBhcmdzCiAgICAgICAg
IGFyZ3MgPSBzZWxmLl9nZXRweXRlc3RhcmdzKCkgKyBhcmdzCi0gICAgICAgIHJldHVybiBzZWxm
LnJ1bigqYXJncykKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuKCphcmdzLCB0aW1lb3V0PXRpbWVv
dXQpCiAKICAgICBkZWYgc3Bhd25fcHl0ZXN0KHNlbGYsIHN0cmluZywgZXhwZWN0X3RpbWVvdXQ9
MTAuMCk6CiAgICAgICAgICIiIlJ1biBweXRlc3QgdXNpbmcgcGV4cGVjdC4KQEAgLTEwOTksNyAr
MTIzNSwxMiBAQCBjbGFzcyBUZXN0ZGlyKG9iamVjdCk6CiAgICAgICAgIGlmIHN5cy5wbGF0Zm9y
bS5zdGFydHN3aXRoKCJmcmVlYnNkIik6CiAgICAgICAgICAgICBweXRlc3QueGZhaWwoInBleHBl
Y3QgZG9lcyBub3Qgd29yayByZWxpYWJseSBvbiBmcmVlYnNkIikKICAgICAgICAgbG9nZmlsZSA9
IHNlbGYudG1wZGlyLmpvaW4oInNwYXduLm91dCIpLm9wZW4oIndiIikKLSAgICAgICAgY2hpbGQg
PSBwZXhwZWN0LnNwYXduKGNtZCwgbG9nZmlsZT1sb2dmaWxlKQorCisgICAgICAgICMgRG8gbm90
IGxvYWQgdXNlciBjb25maWcuCisgICAgICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCisgICAg
ICAgIGVudi51cGRhdGUoc2VsZi5fZW52X3J1bl91cGRhdGUpCisKKyAgICAgICAgY2hpbGQgPSBw
ZXhwZWN0LnNwYXduKGNtZCwgbG9nZmlsZT1sb2dmaWxlLCBlbnY9ZW52KQogICAgICAgICBzZWxm
LnJlcXVlc3QuYWRkZmluYWxpemVyKGxvZ2ZpbGUuY2xvc2UpCiAgICAgICAgIGNoaWxkLnRpbWVv
dXQgPSBleHBlY3RfdGltZW91dAogICAgICAgICByZXR1cm4gY2hpbGQKQEAgLTExMDksMTMgKzEy
NTAsMTAgQEAgZGVmIGdldGRlY29kZWQob3V0KToKICAgICB0cnk6CiAgICAgICAgIHJldHVybiBv
dXQuZGVjb2RlKCJ1dGYtOCIpCiAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKLSAgICAg
ICAgcmV0dXJuICJJTlRFUk5BTCBub3QtdXRmOC1kZWNvZGVhYmxlLCB0cnVuY2F0ZWQgc3RyaW5n
OlxuJXMiICUgKAotICAgICAgICAgICAgcHkuaW8uc2FmZXJlcHIob3V0KSwKLSAgICAgICAgKQor
ICAgICAgICByZXR1cm4gIklOVEVSTkFMIG5vdC11dGY4LWRlY29kZWFibGUsIHRydW5jYXRlZCBz
dHJpbmc6XG4lcyIgJSAoc2FmZXJlcHIob3V0KSwpCiAKIAogY2xhc3MgTGluZUNvbXAob2JqZWN0
KToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgc2VsZi5zdHJpbmdpbyA9IHB5
LmlvLlRleHRJTygpCiAKQEAgLTEyMDIsMTEgKzEzNDAsMTEgQEAgY2xhc3MgTGluZU1hdGNoZXIo
b2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIGZvciBpLCBsaW5lIGluIGVudW1lcmF0ZShz
ZWxmLmxpbmVzKToKICAgICAgICAgICAgIGlmIGZubGluZSA9PSBsaW5lIG9yIGZubWF0Y2gobGlu
ZSwgZm5saW5lKToKLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5saW5lc1tpICsgMTpdCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYubGluZXNbaSArIDEgOl0KICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigibGluZSAlciBub3QgZm91bmQgaW4gb3V0cHV0IiAlIGZubGluZSkKIAogICAg
IGRlZiBfbG9nKHNlbGYsICphcmdzKToKLSAgICAgICAgc2VsZi5fbG9nX291dHB1dC5hcHBlbmQo
IiAiLmpvaW4oKHN0cih4KSBmb3IgeCBpbiBhcmdzKSkpCisgICAgICAgIHNlbGYuX2xvZ19vdXRw
dXQuYXBwZW5kKCIgIi5qb2luKHN0cih4KSBmb3IgeCBpbiBhcmdzKSkKIAogICAgIEBwcm9wZXJ0
eQogICAgIGRlZiBfbG9nX3RleHQoc2VsZik6CkBAIC0xMjIwLDYgKzEzNTgsNyBAQCBjbGFzcyBM
aW5lTWF0Y2hlcihvYmplY3QpOgogICAgICAgICBtYXRjaGVzIGFuZCBub24tbWF0Y2hlcyBhcmUg
YWxzbyBwcmludGVkIG9uIHN0ZG91dC4KIAogICAgICAgICAiIiIKKyAgICAgICAgX190cmFjZWJh
Y2toaWRlX18gPSBUcnVlCiAgICAgICAgIHNlbGYuX21hdGNoX2xpbmVzKGxpbmVzMiwgZm5tYXRj
aCwgImZubWF0Y2giKQogCiAgICAgZGVmIHJlX21hdGNoX2xpbmVzKHNlbGYsIGxpbmVzMik6CkBA
IC0xMjMxLDYgKzEzNzAsNyBAQCBjbGFzcyBMaW5lTWF0Y2hlcihvYmplY3QpOgogICAgICAgICBU
aGUgbWF0Y2hlcyBhbmQgbm9uLW1hdGNoZXMgYXJlIGFsc28gcHJpbnRlZCBvbiBzdGRvdXQuCiAK
ICAgICAgICAgIiIiCisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQogICAgICAgICBz
ZWxmLl9tYXRjaF9saW5lcyhsaW5lczIsIGxhbWJkYSBuYW1lLCBwYXQ6IHJlLm1hdGNoKHBhdCwg
bmFtZSksICJyZS5tYXRjaCIpCiAKICAgICBkZWYgX21hdGNoX2xpbmVzKHNlbGYsIGxpbmVzMiwg
bWF0Y2hfZnVuYywgbWF0Y2hfbmlja25hbWUpOgpAQCAtMTI0NSw2ICsxMzg1LDcgQEAgY2xhc3Mg
TGluZU1hdGNoZXIob2JqZWN0KToKICAgICAgICAgICAgIHdpbGwgYmUgbG9nZ2VkIHRvIHN0ZG91
dCB3aGVuIGEgbWF0Y2ggb2NjdXJzCiAKICAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKGxpbmVzMiwgU2VxdWVuY2UpCiAgICAgICAgIGxpbmVzMiA9IHNlbGYuX2dldGxpbmVz
KGxpbmVzMikKICAgICAgICAgbGluZXMxID0gc2VsZi5saW5lc1s6XQogICAgICAgICBuZXh0bGlu
ZSA9IE5vbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3B5dGhvbi5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3B5dGhvbi5weQppbmRleCA0ODUxNjE5OWZmZjc5NTcw
YzYwNzEzMThmMDZlNzg4MGJmODZiNDY3Li41ZjFlNjg4NWJlMzM3ZDdkOTU5NDJhODRlN2ViOTM3
NTlmYTY4MmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9weXRob24ucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcHl0aG9uLnB5CkBAIC0xLDgxICsxLDU1IEBA
CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiIFB5dGhvbiB0ZXN0IGRpc2NvdmVyeSwgc2V0
dXAgYW5kIHJ1biBvZiB0ZXN0IGZ1bmN0aW9ucy4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lv
bgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCitpbXBvcnQgY29sbGVj
dGlvbnMKIGltcG9ydCBmbm1hdGNoCiBpbXBvcnQgaW5zcGVjdAotaW1wb3J0IHN5cwogaW1wb3J0
IG9zCi1pbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBzeXMKIGltcG9ydCB3YXJuaW5ncworZnJv
bSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKIGZyb20gdGV4dHdyYXAgaW1wb3J0IGRlZGVudAot
ZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNvdW50Ci0KIAogaW1wb3J0IHB5CiBpbXBvcnQgc2l4Ci1m
cm9tIF9weXRlc3QubWFyayBpbXBvcnQgTWFya2VyRXJyb3IKLWZyb20gX3B5dGVzdC5jb25maWcg
aW1wb3J0IGhvb2tpbXBsCiAKIGltcG9ydCBfcHl0ZXN0Ci1pbXBvcnQgcGx1Z2d5Citmcm9tIF9w
eXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKIGZyb20gX3B5dGVzdCBpbXBvcnQgZml4dHVyZXMKIGZy
b20gX3B5dGVzdCBpbXBvcnQgbm9kZXMKLWZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAot
ZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgKAotICAgIGlzY2xhc3MsCi0gICAgaXNmdW5jdGlv
biwKLSAgICBpc19nZW5lcmF0b3IsCi0gICAgYXNjaWlfZXNjYXBlZCwKLSAgICBSRUdFWF9UWVBF
LAotICAgIFNUUklOR19UWVBFUywKLSAgICBOb25lVHlwZSwKLSAgICBOT1RTRVQsCi0gICAgZ2V0
X3JlYWxfZnVuYywKLSAgICBnZXRmc2xpbmVubywKLSAgICBzYWZlX2dldGF0dHIsCi0gICAgc2Fm
ZV9zdHIsCi0gICAgZ2V0bG9jYXRpb24sCi0gICAgZW51bSwKLSAgICBnZXRfZGVmYXVsdF9hcmdf
bmFtZXMsCi0pCitmcm9tIF9weXRlc3QuX2NvZGUgaW1wb3J0IGZpbHRlcl90cmFjZWJhY2sKK2Zy
b20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGFzY2lpX2VzY2FwZWQKK2Zyb20gX3B5dGVzdC5jb21w
YXQgaW1wb3J0IGVudW0KK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGdldF9kZWZhdWx0X2Fy
Z19uYW1lcworZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgZ2V0X3JlYWxfZnVuYworZnJvbSBf
cHl0ZXN0LmNvbXBhdCBpbXBvcnQgZ2V0ZnNsaW5lbm8KK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1w
b3J0IGdldGltZnVuYworZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgZ2V0bG9jYXRpb24KK2Zy
b20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGlzX2dlbmVyYXRvcgorZnJvbSBfcHl0ZXN0LmNvbXBh
dCBpbXBvcnQgaXNjbGFzcworZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgaXNmdW5jdGlvbgor
ZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgTk9UU0VUCitmcm9tIF9weXRlc3QuY29tcGF0IGlt
cG9ydCBSRUdFWF9UWVBFCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBzYWZlX2dldGF0dHIK
K2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IHNhZmVfaXNjbGFzcworZnJvbSBfcHl0ZXN0LmNv
bXBhdCBpbXBvcnQgc2FmZV9zdHIKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IFNUUklOR19U
WVBFUworZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgaG9va2ltcGwKK2Zyb20gX3B5dGVzdC5t
YWluIGltcG9ydCBGU0hvb2tQcm94eQorZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1BUktfR0VO
Citmcm9tIF9weXRlc3QubWFyay5zdHJ1Y3R1cmVzIGltcG9ydCBnZXRfdW5wYWNrZWRfbWFya3MK
K2Zyb20gX3B5dGVzdC5tYXJrLnN0cnVjdHVyZXMgaW1wb3J0IG5vcm1hbGl6ZV9tYXJrX2xpc3QK
IGZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbAotZnJvbSBfcHl0ZXN0Lm1hcmsuc3Ry
dWN0dXJlcyBpbXBvcnQgdHJhbnNmZXJfbWFya2VycywgZ2V0X3VucGFja2VkX21hcmtzCi0KLQot
IyByZWxhdGl2ZSBwYXRocyB0aGF0IHdlIHVzZSB0byBmaWx0ZXIgdHJhY2ViYWNrIGVudHJpZXMg
ZnJvbSBhcHBlYXJpbmcgdG8gdGhlIHVzZXI7Ci0jIHNlZSBmaWx0ZXJfdHJhY2ViYWNrCi0jIG5v
dGU6IGlmIHdlIG5lZWQgdG8gYWRkIG1vcmUgcGF0aHMgdGhhbiB3aGF0IHdlIGhhdmUgbm93IHdl
IHNob3VsZCBwcm9iYWJseSB1c2UgYSBsaXN0Ci0jIGZvciBiZXR0ZXIgbWFpbnRlbmFuY2UKLV9w
bHVnZ3lfZGlyID0gcHkucGF0aC5sb2NhbChwbHVnZ3kuX19maWxlX18ucnN0cmlwKCJvYyIpKQot
IyBwbHVnZ3kgaXMgZWl0aGVyIGEgcGFja2FnZSBvciBhIHNpbmdsZSBtb2R1bGUgZGVwZW5kaW5n
IG9uIHRoZSB2ZXJzaW9uCi1pZiBfcGx1Z2d5X2Rpci5iYXNlbmFtZSA9PSAiX19pbml0X18ucHki
OgotICAgIF9wbHVnZ3lfZGlyID0gX3BsdWdneV9kaXIuZGlycGF0aCgpCi1fcHl0ZXN0X2RpciA9
IHB5LnBhdGgubG9jYWwoX3B5dGVzdC5fX2ZpbGVfXykuZGlycGF0aCgpCi1fcHlfZGlyID0gcHku
cGF0aC5sb2NhbChweS5fX2ZpbGVfXykuZGlycGF0aCgpCi0KLQotZGVmIGZpbHRlcl90cmFjZWJh
Y2soZW50cnkpOgotICAgICIiIlJldHVybiBUcnVlIGlmIGEgVHJhY2ViYWNrRW50cnkgaW5zdGFu
Y2Ugc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSB0cmFjZWJhY2tzOgotICAgICogZHluYW1pY2FsbHkg
Z2VuZXJhdGVkIGNvZGUgKG5vIGNvZGUgdG8gc2hvdyB1cCBmb3IgaXQpOwotICAgICogaW50ZXJu
YWwgdHJhY2ViYWNrIGZyb20gcHl0ZXN0IG9yIGl0cyBpbnRlcm5hbCBsaWJyYXJpZXMsIHB5IGFu
ZCBwbHVnZ3kuCi0gICAgIiIiCi0gICAgIyBlbnRyeS5wYXRoIG1pZ2h0IHNvbWV0aW1lcyByZXR1
cm4gYSBzdHIgb2JqZWN0IHdoZW4gdGhlIGVudHJ5Ci0gICAgIyBwb2ludHMgdG8gZHluYW1pY2Fs
bHkgZ2VuZXJhdGVkIGNvZGUKLSAgICAjIHNlZSBodHRwczovL2JpdGJ1Y2tldC5vcmcvcHl0ZXN0
LWRldi9weS9pc3N1ZXMvNzEKLSAgICByYXdfZmlsZW5hbWUgPSBlbnRyeS5mcmFtZS5jb2RlLnJh
dy5jb19maWxlbmFtZQotICAgIGlzX2dlbmVyYXRlZCA9ICI8IiBpbiByYXdfZmlsZW5hbWUgYW5k
ICI+IiBpbiByYXdfZmlsZW5hbWUKLSAgICBpZiBpc19nZW5lcmF0ZWQ6Ci0gICAgICAgIHJldHVy
biBGYWxzZQotICAgICMgZW50cnkucGF0aCBtaWdodCBwb2ludCB0byBhIG5vbi1leGlzdGluZyBm
aWxlLCBpbiB3aGljaCBjYXNlIGl0IHdpbGwKLSAgICAjIGFsc28gcmV0dXJuIGEgc3RyIG9iamVj
dC4gc2VlICMxMTMzCi0gICAgcCA9IHB5LnBhdGgubG9jYWwoZW50cnkucGF0aCkKLSAgICByZXR1
cm4gbm90IHAucmVsdG8oX3BsdWdneV9kaXIpIGFuZCBub3QgcC5yZWx0byhfcHl0ZXN0X2Rpcikg
YW5kIG5vdCBwLnJlbHRvKAotICAgICAgICBfcHlfZGlyCi0gICAgKQorZnJvbSBfcHl0ZXN0Lm91
dGNvbWVzIGltcG9ydCBza2lwCitmcm9tIF9weXRlc3QucGF0aGxpYiBpbXBvcnQgcGFydHMKK2Zy
b20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3RDb2xsZWN0aW9uV2FybmluZwor
ZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFB5dGVzdFVuaGFuZGxlZENvcm91dGlu
ZVdhcm5pbmcKIAogCiBkZWYgcHlvYmpfcHJvcGVydHkobmFtZSk6Ci0KICAgICBkZWYgZ2V0KHNl
bGYpOgogICAgICAgICBub2RlID0gc2VsZi5nZXRwYXJlbnQoZ2V0YXR0cihfX2ltcG9ydF9fKCJw
eXRlc3QiKSwgbmFtZSkpCiAgICAgICAgIGlmIG5vZGUgaXMgbm90IE5vbmU6CkBAIC0xMDUsMTUg
Kzc5LDEwIEBAIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CiAgICAgICAgIGRlZmF1bHQ9
RmFsc2UsCiAgICAgICAgIGhlbHA9InNob3cgZml4dHVyZXMgcGVyIHRlc3QiLAogICAgICkKLSAg
ICBwYXJzZXIuYWRkaW5pKAotICAgICAgICAidXNlZml4dHVyZXMiLAotICAgICAgICB0eXBlPSJh
cmdzIiwKLSAgICAgICAgZGVmYXVsdD1bXSwKLSAgICAgICAgaGVscD0ibGlzdCBvZiBkZWZhdWx0
IGZpeHR1cmVzIHRvIGJlIHVzZWQgd2l0aCB0aGlzIHByb2plY3QiLAotICAgICkKICAgICBwYXJz
ZXIuYWRkaW5pKAogICAgICAgICAicHl0aG9uX2ZpbGVzIiwKICAgICAgICAgdHlwZT0iYXJncyIs
CisgICAgICAgICMgTk9URTogZGVmYXVsdCBpcyBhbHNvIHVzZWQgaW4gQXNzZXJ0aW9uUmV3cml0
aW5nSG9vay4KICAgICAgICAgZGVmYXVsdD1bInRlc3RfKi5weSIsICIqX3Rlc3QucHkiXSwKICAg
ICAgICAgaGVscD0iZ2xvYi1zdHlsZSBmaWxlIHBhdHRlcm5zIGZvciBQeXRob24gdGVzdCBtb2R1
bGUgZGlzY292ZXJ5IiwKICAgICApCkBAIC0xMjcsNyArOTYsMTQgQEAgZGVmIHB5dGVzdF9hZGRv
cHRpb24ocGFyc2VyKToKICAgICAgICAgInB5dGhvbl9mdW5jdGlvbnMiLAogICAgICAgICB0eXBl
PSJhcmdzIiwKICAgICAgICAgZGVmYXVsdD1bInRlc3QiXSwKLSAgICAgICAgaGVscD0icHJlZml4
ZXMgb3IgZ2xvYiBuYW1lcyBmb3IgUHl0aG9uIHRlc3QgZnVuY3Rpb24gYW5kICIgIm1ldGhvZCBk
aXNjb3ZlcnkiLAorICAgICAgICBoZWxwPSJwcmVmaXhlcyBvciBnbG9iIG5hbWVzIGZvciBQeXRo
b24gdGVzdCBmdW5jdGlvbiBhbmQgbWV0aG9kIGRpc2NvdmVyeSIsCisgICAgKQorICAgIHBhcnNl
ci5hZGRpbmkoCisgICAgICAgICJkaXNhYmxlX3Rlc3RfaWRfZXNjYXBpbmdfYW5kX2ZvcmZlaXRf
YWxsX3JpZ2h0c190b19jb21tdW5pdHlfc3VwcG9ydCIsCisgICAgICAgIHR5cGU9ImJvb2wiLAor
ICAgICAgICBkZWZhdWx0PUZhbHNlLAorICAgICAgICBoZWxwPSJkaXNhYmxlIHN0cmluZyBlc2Nh
cGUgbm9uLWFzY2lpIGNoYXJhY3RlcnMsIG1pZ2h0IGNhdXNlIHVud2FudGVkICIKKyAgICAgICAg
InNpZGUgZWZmZWN0cyh1c2UgYXQgeW91ciBvd24gcmlzaykiLAogICAgICkKIAogICAgIGdyb3Vw
LmFkZG9wdGlvbigKQEAgLTE1MywxMCArMTI5LDEwIEBAIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVz
dHMobWV0YWZ1bmMpOgogICAgICMgdGhvc2UgYWx0ZXJuYXRpdmUgc3BlbGxpbmdzIGFyZSBjb21t
b24gLSByYWlzZSBhIHNwZWNpZmljIGVycm9yIHRvIGFsZXJ0CiAgICAgIyB0aGUgdXNlcgogICAg
IGFsdF9zcGVsbGluZ3MgPSBbInBhcmFtZXRlcml6ZSIsICJwYXJhbWV0cmlzZSIsICJwYXJhbWV0
ZXJpc2UiXQotICAgIGZvciBhdHRyIGluIGFsdF9zcGVsbGluZ3M6Ci0gICAgICAgIGlmIGhhc2F0
dHIobWV0YWZ1bmMuZnVuY3Rpb24sIGF0dHIpOgotICAgICAgICAgICAgbXNnID0gInswfSBoYXMg
J3sxfScsIHNwZWxsaW5nIHNob3VsZCBiZSAncGFyYW1ldHJpemUnIgotICAgICAgICAgICAgcmFp
c2UgTWFya2VyRXJyb3IobXNnLmZvcm1hdChtZXRhZnVuYy5mdW5jdGlvbi5fX25hbWVfXywgYXR0
cikpCisgICAgZm9yIG1hcmtfbmFtZSBpbiBhbHRfc3BlbGxpbmdzOgorICAgICAgICBpZiBtZXRh
ZnVuYy5kZWZpbml0aW9uLmdldF9jbG9zZXN0X21hcmtlcihtYXJrX25hbWUpOgorICAgICAgICAg
ICAgbXNnID0gInswfSBoYXMgJ3sxfScgbWFyaywgc3BlbGxpbmcgc2hvdWxkIGJlICdwYXJhbWV0
cml6ZSciCisgICAgICAgICAgICBmYWlsKG1zZy5mb3JtYXQobWV0YWZ1bmMuZnVuY3Rpb24uX19u
YW1lX18sIG1hcmtfbmFtZSksIHB5dHJhY2U9RmFsc2UpCiAgICAgZm9yIG1hcmtlciBpbiBtZXRh
ZnVuYy5kZWZpbml0aW9uLml0ZXJfbWFya2VycyhuYW1lPSJwYXJhbWV0cml6ZSIpOgogICAgICAg
ICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgqbWFya2VyLmFyZ3MsICoqbWFya2VyLmt3YXJncykKIApA
QCAtMTcwLDI3ICsxNDYsMzIgQEAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICAg
ICAgIm9yIGEgbGlzdCBvZiB0dXBsZXMgb2YgdmFsdWVzIGlmIGFyZ25hbWVzIHNwZWNpZmllcyBt
dWx0aXBsZSBuYW1lcy4gIgogICAgICAgICAiRXhhbXBsZTogQHBhcmFtZXRyaXplKCdhcmcxJywg
WzEsMl0pIHdvdWxkIGxlYWQgdG8gdHdvIGNhbGxzIG9mIHRoZSAiCiAgICAgICAgICJkZWNvcmF0
ZWQgdGVzdCBmdW5jdGlvbiwgb25lIHdpdGggYXJnMT0xIGFuZCBhbm90aGVyIHdpdGggYXJnMT0y
LiIKLSAgICAgICAgInNlZSBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3QvcGFyYW1ldHJpemUuaHRt
bCBmb3IgbW9yZSBpbmZvIGFuZCAiCi0gICAgICAgICJleGFtcGxlcy4iLAorICAgICAgICAic2Vl
IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIGZvciBt
b3JlIGluZm8gIgorICAgICAgICAiYW5kIGV4YW1wbGVzLiIsCiAgICAgKQogICAgIGNvbmZpZy5h
ZGRpbml2YWx1ZV9saW5lKAogICAgICAgICAibWFya2VycyIsCiAgICAgICAgICJ1c2VmaXh0dXJl
cyhmaXh0dXJlbmFtZTEsIGZpeHR1cmVuYW1lMiwgLi4uKTogbWFyayB0ZXN0cyBhcyBuZWVkaW5n
ICIKLSAgICAgICAgImFsbCBvZiB0aGUgc3BlY2lmaWVkIGZpeHR1cmVzLiBzZWUgaHR0cDovL3B5
dGVzdC5vcmcvbGF0ZXN0L2ZpeHR1cmUuaHRtbCN1c2VmaXh0dXJlcyAiLAorICAgICAgICAiYWxs
IG9mIHRoZSBzcGVjaWZpZWQgZml4dHVyZXMuIHNlZSAiCisgICAgICAgICJodHRwczovL2RvY3Mu
cHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZml4dHVyZS5odG1sI3VzZWZpeHR1cmVzICIsCiAgICAgKQog
CiAKIEBob29raW1wbCh0cnlsYXN0PVRydWUpCiBkZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVu
Y2l0ZW0pOgogICAgIHRlc3RmdW5jdGlvbiA9IHB5ZnVuY2l0ZW0ub2JqCi0gICAgaWYgcHlmdW5j
aXRlbS5faXN5aWVsZGVkZnVuY3Rpb24oKToKLSAgICAgICAgdGVzdGZ1bmN0aW9uKCpweWZ1bmNp
dGVtLl9hcmdzKQotICAgIGVsc2U6Ci0gICAgICAgIGZ1bmNhcmdzID0gcHlmdW5jaXRlbS5mdW5j
YXJncwotICAgICAgICB0ZXN0YXJncyA9IHt9Ci0gICAgICAgIGZvciBhcmcgaW4gcHlmdW5jaXRl
bS5fZml4dHVyZWluZm8uYXJnbmFtZXM6Ci0gICAgICAgICAgICB0ZXN0YXJnc1thcmddID0gZnVu
Y2FyZ3NbYXJnXQotICAgICAgICB0ZXN0ZnVuY3Rpb24oKip0ZXN0YXJncykKKyAgICBpc2Nvcm91
dGluZWZ1bmN0aW9uID0gZ2V0YXR0cihpbnNwZWN0LCAiaXNjb3JvdXRpbmVmdW5jdGlvbiIsIE5v
bmUpCisgICAgaWYgaXNjb3JvdXRpbmVmdW5jdGlvbiBpcyBub3QgTm9uZSBhbmQgaXNjb3JvdXRp
bmVmdW5jdGlvbih0ZXN0ZnVuY3Rpb24pOgorICAgICAgICBtc2cgPSAiQ29yb3V0aW5lIGZ1bmN0
aW9ucyBhcmUgbm90IG5hdGl2ZWx5IHN1cHBvcnRlZCBhbmQgaGF2ZSBiZWVuIHNraXBwZWQuXG4i
CisgICAgICAgIG1zZyArPSAiWW91IG5lZWQgdG8gaW5zdGFsbCBhIHN1aXRhYmxlIHBsdWdpbiBm
b3IgeW91ciBhc3luYyBmcmFtZXdvcmssIGZvciBleGFtcGxlOlxuIgorICAgICAgICBtc2cgKz0g
IiAgLSBweXRlc3QtYXN5bmNpb1xuIgorICAgICAgICBtc2cgKz0gIiAgLSBweXRlc3QtdHJpb1xu
IgorICAgICAgICBtc2cgKz0gIiAgLSBweXRlc3QtdG9ybmFzeW5jIgorICAgICAgICB3YXJuaW5n
cy53YXJuKFB5dGVzdFVuaGFuZGxlZENvcm91dGluZVdhcm5pbmcobXNnLmZvcm1hdChweWZ1bmNp
dGVtLm5vZGVpZCkpKQorICAgICAgICBza2lwKG1zZz0iY29yb3V0aW5lIGZ1bmN0aW9uIGFuZCBu
byBhc3luYyBwbHVnaW4gaW5zdGFsbGVkIChzZWUgd2FybmluZ3MpIikKKyAgICBmdW5jYXJncyA9
IHB5ZnVuY2l0ZW0uZnVuY2FyZ3MKKyAgICB0ZXN0YXJncyA9IHthcmc6IGZ1bmNhcmdzW2FyZ10g
Zm9yIGFyZyBpbiBweWZ1bmNpdGVtLl9maXh0dXJlaW5mby5hcmduYW1lc30KKyAgICB0ZXN0ZnVu
Y3Rpb24oKip0ZXN0YXJncykKICAgICByZXR1cm4gVHJ1ZQogCiAKQEAgLTE5OCwxNiArMTc5LDIy
IEBAIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6CiAgICAgZXh0ID0gcGF0
aC5leHQKICAgICBpZiBleHQgPT0gIi5weSI6CiAgICAgICAgIGlmIG5vdCBwYXJlbnQuc2Vzc2lv
bi5pc2luaXRwYXRoKHBhdGgpOgotICAgICAgICAgICAgZm9yIHBhdCBpbiBwYXJlbnQuY29uZmln
LmdldGluaSgicHl0aG9uX2ZpbGVzIik6Ci0gICAgICAgICAgICAgICAgaWYgcGF0aC5mbm1hdGNo
KHBhdCk6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgaWYgbm90IHBhdGhfbWF0Y2hlc19wYXR0ZXJucygKKyAgICAgICAgICAgICAgICBw
YXRoLCBwYXJlbnQuY29uZmlnLmdldGluaSgicHl0aG9uX2ZpbGVzIikgKyBbIl9faW5pdF9fLnB5
Il0KKyAgICAgICAgICAgICk6CiAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIGlob29r
ID0gcGFyZW50LnNlc3Npb24uZ2V0aG9va3Byb3h5KHBhdGgpCiAgICAgICAgIHJldHVybiBpaG9v
ay5weXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1bGUocGF0aD1wYXRoLCBwYXJlbnQ9cGFyZW50KQog
CiAKK2RlZiBwYXRoX21hdGNoZXNfcGF0dGVybnMocGF0aCwgcGF0dGVybnMpOgorICAgICIiIlJl
dHVybnMgVHJ1ZSBpZiB0aGUgZ2l2ZW4gcHkucGF0aC5sb2NhbCBtYXRjaGVzIG9uZSBvZiB0aGUg
cGF0dGVybnMgaW4gdGhlIGxpc3Qgb2YgZ2xvYnMgZ2l2ZW4iIiIKKyAgICByZXR1cm4gYW55KHBh
dGguZm5tYXRjaChwYXR0ZXJuKSBmb3IgcGF0dGVybiBpbiBwYXR0ZXJucykKKworCiBkZWYgcHl0
ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlKHBhdGgsIHBhcmVudCk6CisgICAgaWYgcGF0aC5iYXNl
bmFtZSA9PSAiX19pbml0X18ucHkiOgorICAgICAgICByZXR1cm4gUGFja2FnZShwYXRoLCBwYXJl
bnQpCiAgICAgcmV0dXJuIE1vZHVsZShwYXRoLCBwYXJlbnQpCiAKIApAQCAtMjE4LDkgKzIwNSw4
IEBAIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKGNvbGxlY3RvciwgbmFtZSwgb2JqKToK
ICAgICBpZiByZXMgaXMgbm90IE5vbmU6CiAgICAgICAgIHJldHVybgogICAgICMgbm90aGluZyB3
YXMgY29sbGVjdGVkIGVsc2V3aGVyZSwgbGV0J3MgZG8gaXQgaGVyZQotICAgIGlmIGlzY2xhc3Mo
b2JqKToKKyAgICBpZiBzYWZlX2lzY2xhc3Mob2JqKToKICAgICAgICAgaWYgY29sbGVjdG9yLmlz
dGVzdGNsYXNzKG9iaiwgbmFtZSk6Ci0gICAgICAgICAgICBDbGFzcyA9IGNvbGxlY3Rvci5fZ2V0
Y3VzdG9tY2xhc3MoIkNsYXNzIikKICAgICAgICAgICAgIG91dGNvbWUuZm9yY2VfcmVzdWx0KENs
YXNzKG5hbWUsIHBhcmVudD1jb2xsZWN0b3IpKQogICAgIGVsaWYgY29sbGVjdG9yLmlzdGVzdGZ1
bmN0aW9uKG9iaiwgbmFtZSk6CiAgICAgICAgICMgbW9jayBzZWVtcyB0byBzdG9yZSB1bmJvdW5k
IG1ldGhvZHMgKGlzc3VlNDczKSwgbm9ybWFsaXplIGl0CkBAIC0yMjksMTMgKzIxNSwyMSBAQCBk
ZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbShjb2xsZWN0b3IsIG5hbWUsIG9iaik6CiAgICAg
ICAgICMgb3IgYSBmdW50b29scy53cmFwcGVkLgogICAgICAgICAjIFdlIG11c24ndCBpZiBpdCdz
IGJlZW4gd3JhcHBlZCB3aXRoIG1vY2sucGF0Y2ggKHB5dGhvbiAyIG9ubHkpCiAgICAgICAgIGlm
IG5vdCAoaXNmdW5jdGlvbihvYmopIG9yIGlzZnVuY3Rpb24oZ2V0X3JlYWxfZnVuYyhvYmopKSk6
Ci0gICAgICAgICAgICBjb2xsZWN0b3Iud2FybigKLSAgICAgICAgICAgICAgICBjb2RlPSJDMiIs
Ci0gICAgICAgICAgICAgICAgbWVzc2FnZT0iY2Fubm90IGNvbGxlY3QgJXIgYmVjYXVzZSBpdCBp
cyBub3QgYSBmdW5jdGlvbi4iICUgbmFtZSwKKyAgICAgICAgICAgIGZpbGVuYW1lLCBsaW5lbm8g
PSBnZXRmc2xpbmVubyhvYmopCisgICAgICAgICAgICB3YXJuaW5ncy53YXJuX2V4cGxpY2l0KAor
ICAgICAgICAgICAgICAgIG1lc3NhZ2U9UHl0ZXN0Q29sbGVjdGlvbldhcm5pbmcoCisgICAgICAg
ICAgICAgICAgICAgICJjYW5ub3QgY29sbGVjdCAlciBiZWNhdXNlIGl0IGlzIG5vdCBhIGZ1bmN0
aW9uLiIgJSBuYW1lCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICBjYXRlZ29y
eT1Ob25lLAorICAgICAgICAgICAgICAgIGZpbGVuYW1lPXN0cihmaWxlbmFtZSksCisgICAgICAg
ICAgICAgICAgbGluZW5vPWxpbmVubyArIDEsCiAgICAgICAgICAgICApCiAgICAgICAgIGVsaWYg
Z2V0YXR0cihvYmosICJfX3Rlc3RfXyIsIFRydWUpOgogICAgICAgICAgICAgaWYgaXNfZ2VuZXJh
dG9yKG9iaik6Ci0gICAgICAgICAgICAgICAgcmVzID0gR2VuZXJhdG9yKG5hbWUsIHBhcmVudD1j
b2xsZWN0b3IpCisgICAgICAgICAgICAgICAgcmVzID0gRnVuY3Rpb24obmFtZSwgcGFyZW50PWNv
bGxlY3RvcikKKyAgICAgICAgICAgICAgICByZWFzb24gPSBkZXByZWNhdGVkLllJRUxEX1RFU1RT
LmZvcm1hdChuYW1lPW5hbWUpCisgICAgICAgICAgICAgICAgcmVzLmFkZF9tYXJrZXIoTUFSS19H
RU4ueGZhaWwocnVuPUZhbHNlLCByZWFzb249cmVhc29uKSkKKyAgICAgICAgICAgICAgICByZXMu
d2FybihQeXRlc3RDb2xsZWN0aW9uV2FybmluZyhyZWFzb24pKQogICAgICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgICAgICByZXMgPSBsaXN0KGNvbGxlY3Rvci5fZ2VuZnVuY3Rpb25zKG5hbWUs
IG9iaikpCiAgICAgICAgICAgICBvdXRjb21lLmZvcmNlX3Jlc3VsdChyZXMpCkBAIC0yNTcsMjYg
KzI1MSwyNCBAQCBjbGFzcyBQeW9iak1peGluKFB5b2JqQ29udGV4dCk6CiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsICprLCAqKmt3KToKICAgICAgICAgc3VwZXIoUHlvYmpNaXhpbiwgc2VsZikuX19p
bml0X18oKmssICoqa3cpCiAKLSAgICBkZWYgb2JqKCk6Ci0KLSAgICAgICAgZGVmIGZnZXQoc2Vs
Zik6Ci0gICAgICAgICAgICBvYmogPSBnZXRhdHRyKHNlbGYsICJfb2JqIiwgTm9uZSkKLSAgICAg
ICAgICAgIGlmIG9iaiBpcyBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYuX29iaiA9IG9iaiA9
IHNlbGYuX2dldG9iaigpCi0gICAgICAgICAgICAgICAgIyBYWFggZXZpbCBoYWNrCi0gICAgICAg
ICAgICAgICAgIyB1c2VkIHRvIGF2b2lkIEluc3RhbmNlIGNvbGxlY3RvciBtYXJrZXIgZHVwbGlj
YXRpb24KLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9BTExPV19NQVJLRVJTOgotICAgICAgICAg
ICAgICAgICAgICBzZWxmLm93bl9tYXJrZXJzLmV4dGVuZChnZXRfdW5wYWNrZWRfbWFya3Moc2Vs
Zi5vYmopKQotICAgICAgICAgICAgcmV0dXJuIG9iagotCi0gICAgICAgIGRlZiBmc2V0KHNlbGYs
IHZhbHVlKToKLSAgICAgICAgICAgIHNlbGYuX29iaiA9IHZhbHVlCi0KLSAgICAgICAgcmV0dXJu
IHByb3BlcnR5KGZnZXQsIGZzZXQsIE5vbmUsICJ1bmRlcmx5aW5nIHB5dGhvbiBvYmplY3QiKQot
Ci0gICAgb2JqID0gb2JqKCkKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgb2JqKHNlbGYpOgorICAg
ICAgICAiIiJVbmRlcmx5aW5nIFB5dGhvbiBvYmplY3QuIiIiCisgICAgICAgIG9iaiA9IGdldGF0
dHIoc2VsZiwgIl9vYmoiLCBOb25lKQorICAgICAgICBpZiBvYmogaXMgTm9uZToKKyAgICAgICAg
ICAgIHNlbGYuX29iaiA9IG9iaiA9IHNlbGYuX2dldG9iaigpCisgICAgICAgICAgICAjIFhYWCBl
dmlsIGhhY2sKKyAgICAgICAgICAgICMgdXNlZCB0byBhdm9pZCBJbnN0YW5jZSBjb2xsZWN0b3Ig
bWFya2VyIGR1cGxpY2F0aW9uCisgICAgICAgICAgICBpZiBzZWxmLl9BTExPV19NQVJLRVJTOgor
ICAgICAgICAgICAgICAgIHNlbGYub3duX21hcmtlcnMuZXh0ZW5kKGdldF91bnBhY2tlZF9tYXJr
cyhzZWxmLm9iaikpCisgICAgICAgIHJldHVybiBvYmoKKworICAgIEBvYmouc2V0dGVyCisgICAg
ZGVmIG9iaihzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYuX29iaiA9IHZhbHVlCiAKICAgICBk
ZWYgX2dldG9iaihzZWxmKToKKyAgICAgICAgIiIiR2V0cyB0aGUgdW5kZXJseWluZyBQeXRob24g
b2JqZWN0LiBNYXkgYmUgb3ZlcndyaXR0ZW4gYnkgc3ViY2xhc3Nlcy4iIiIKICAgICAgICAgcmV0
dXJuIGdldGF0dHIoc2VsZi5wYXJlbnQub2JqLCBzZWxmLm5hbWUpCiAKICAgICBkZWYgZ2V0bW9k
cGF0aChzZWxmLCBzdG9wYXRtb2R1bGU9VHJ1ZSwgaW5jbHVkZW1vZHVsZT1GYWxzZSk6CkBAIC0y
OTksOSArMjkxLDYgQEAgY2xhc3MgUHlvYmpNaXhpbihQeW9iakNvbnRleHQpOgogICAgICAgICBz
ID0gIi4iLmpvaW4ocGFydHMpCiAgICAgICAgIHJldHVybiBzLnJlcGxhY2UoIi5bIiwgIlsiKQog
Ci0gICAgZGVmIF9nZXRmc2xpbmVubyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGdldGZzbGluZW5v
KHNlbGYub2JqKQotCiAgICAgZGVmIHJlcG9ydGluZm8oc2VsZik6CiAgICAgICAgICMgWFhYIGNh
Y2hpbmc/CiAgICAgICAgIG9iaiA9IHNlbGYub2JqCkBAIC0zMjAsNyArMzA5LDYgQEAgY2xhc3Mg
UHlvYmpNaXhpbihQeW9iakNvbnRleHQpOgogCiAKIGNsYXNzIFB5Q29sbGVjdG9yKFB5b2JqTWl4
aW4sIG5vZGVzLkNvbGxlY3Rvcik6Ci0KICAgICBkZWYgZnVuY25hbWVmaWx0ZXIoc2VsZiwgbmFt
ZSk6CiAgICAgICAgIHJldHVybiBzZWxmLl9tYXRjaGVzX3ByZWZpeF9vcl9nbG9iX29wdGlvbigi
cHl0aG9uX2Z1bmN0aW9ucyIsIG5hbWUpCiAKQEAgLTM0MSwxMSArMzI5LDYgQEAgY2xhc3MgUHlD
b2xsZWN0b3IoUHlvYmpNaXhpbiwgbm9kZXMuQ29sbGVjdG9yKToKICAgICAgICAgICAgIGlmIGlz
aW5zdGFuY2Uob2JqLCBzdGF0aWNtZXRob2QpOgogICAgICAgICAgICAgICAgICMgc3RhdGljIG1l
dGhvZHMgbmVlZCB0byBiZSB1bndyYXBwZWQKICAgICAgICAgICAgICAgICBvYmogPSBzYWZlX2dl
dGF0dHIob2JqLCAiX19mdW5jX18iLCBGYWxzZSkKLSAgICAgICAgICAgICAgICBpZiBvYmogaXMg
RmFsc2U6Ci0gICAgICAgICAgICAgICAgICAgICMgUHl0aG9uIDIuNiB3cmFwcyBpbiBhIGRpZmZl
cmVudCB3YXkgdGhhdCB3ZSB3b24ndCB0cnkgdG8gaGFuZGxlCi0gICAgICAgICAgICAgICAgICAg
IG1zZyA9ICJjYW5ub3QgY29sbGVjdCBzdGF0aWMgbWV0aG9kICVyIGJlY2F1c2UgaXQgaXMgbm90
IGEgZnVuY3Rpb24iCi0gICAgICAgICAgICAgICAgICAgIHNlbGYud2Fybihjb2RlPSJDMiIsIG1l
c3NhZ2U9bXNnICUgbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAg
ICAgICAgICByZXR1cm4gKAogICAgICAgICAgICAgICAgIHNhZmVfZ2V0YXR0cihvYmosICJfX2Nh
bGxfXyIsIEZhbHNlKQogICAgICAgICAgICAgICAgIGFuZCBmaXh0dXJlcy5nZXRmaXh0dXJlbWFy
a2VyKG9iaikgaXMgTm9uZQpAQCAtMzk4LDEwICszODEsNiBAQCBjbGFzcyBQeUNvbGxlY3RvcihQ
eW9iak1peGluLCBub2Rlcy5Db2xsZWN0b3IpOgogICAgICAgICB2YWx1ZXMuc29ydChrZXk9bGFt
YmRhIGl0ZW06IGl0ZW0ucmVwb3J0aW5mbygpWzoyXSkKICAgICAgICAgcmV0dXJuIHZhbHVlcwog
Ci0gICAgZGVmIG1ha2VpdGVtKHNlbGYsIG5hbWUsIG9iaik6Ci0gICAgICAgIHdhcm5pbmdzLndh
cm4oZGVwcmVjYXRlZC5DT0xMRUNUT1JfTUFLRUlURU0sIHN0YWNrbGV2ZWw9MikKLSAgICAgICAg
c2VsZi5fbWFrZWl0ZW0obmFtZSwgb2JqKQotCiAgICAgZGVmIF9tYWtlaXRlbShzZWxmLCBuYW1l
LCBvYmopOgogICAgICAgICAjIGFzc2VydCBzZWxmLmlob29rLmZzcGF0aCA9PSBzZWxmLmZzcGF0
aCwgc2VsZgogICAgICAgICByZXR1cm4gc2VsZi5paG9vay5weXRlc3RfcHljb2xsZWN0X21ha2Vp
dGVtKGNvbGxlY3Rvcj1zZWxmLCBuYW1lPW5hbWUsIG9iaj1vYmopCkBAIC00MTAsNyArMzg5LDYg
QEAgY2xhc3MgUHlDb2xsZWN0b3IoUHlvYmpNaXhpbiwgbm9kZXMuQ29sbGVjdG9yKToKICAgICAg
ICAgbW9kdWxlID0gc2VsZi5nZXRwYXJlbnQoTW9kdWxlKS5vYmoKICAgICAgICAgY2xzY29sID0g
c2VsZi5nZXRwYXJlbnQoQ2xhc3MpCiAgICAgICAgIGNscyA9IGNsc2NvbCBhbmQgY2xzY29sLm9i
aiBvciBOb25lCi0gICAgICAgIHRyYW5zZmVyX21hcmtlcnMoZnVuY29iaiwgY2xzLCBtb2R1bGUp
CiAgICAgICAgIGZtID0gc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgogCiAgICAgICAgIGRl
ZmluaXRpb24gPSBGdW5jdGlvbkRlZmluaXRpb24obmFtZT1uYW1lLCBwYXJlbnQ9c2VsZiwgY2Fs
bG9iaj1mdW5jb2JqKQpAQCAtNDMxLDEzICs0MDksMTcgQEAgY2xhc3MgUHlDb2xsZWN0b3IoUHlv
YmpNaXhpbiwgbm9kZXMuQ29sbGVjdG9yKToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNl
bGYuaWhvb2sucHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jPW1ldGFmdW5jKQogCi0gICAg
ICAgIEZ1bmN0aW9uID0gc2VsZi5fZ2V0Y3VzdG9tY2xhc3MoIkZ1bmN0aW9uIikKICAgICAgICAg
aWYgbm90IG1ldGFmdW5jLl9jYWxsczoKICAgICAgICAgICAgIHlpZWxkIEZ1bmN0aW9uKG5hbWUs
IHBhcmVudD1zZWxmLCBmaXh0dXJlaW5mbz1maXh0dXJlaW5mbykKICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgICMgYWRkIGZ1bmNhcmdzKCkgYXMgZml4dHVyZWRlZnMgdG8gZml4dHVyZWluZm8u
YXJnMmZpeHR1cmVkZWZzCiAgICAgICAgICAgICBmaXh0dXJlcy5hZGRfZnVuY2FyZ19wc2V1ZG9f
Zml4dHVyZV9kZWYoc2VsZiwgbWV0YWZ1bmMsIGZtKQogCisgICAgICAgICAgICAjIGFkZF9mdW5j
YXJnX3BzZXVkb19maXh0dXJlX2RlZiBtYXkgaGF2ZSBzaGFkb3dlZCBzb21lIGZpeHR1cmVzCisg
ICAgICAgICAgICAjIHdpdGggZGlyZWN0IHBhcmFtZXRyaXphdGlvbiwgc28gbWFrZSBzdXJlIHdl
IHVwZGF0ZSB3aGF0IHRoZQorICAgICAgICAgICAgIyBmdW5jdGlvbiByZWFsbHkgbmVlZHMuCisg
ICAgICAgICAgICBmaXh0dXJlaW5mby5wcnVuZV9kZXBlbmRlbmN5X3RyZWUoKQorCiAgICAgICAg
ICAgICBmb3IgY2FsbHNwZWMgaW4gbWV0YWZ1bmMuX2NhbGxzOgogICAgICAgICAgICAgICAgIHN1
Ym5hbWUgPSAiJXNbJXNdIiAlIChuYW1lLCBjYWxsc3BlYy5pZCkKICAgICAgICAgICAgICAgICB5
aWVsZCBGdW5jdGlvbigKQEAgLTQ1OCw5ICs0NDAsNjYgQEAgY2xhc3MgTW9kdWxlKG5vZGVzLkZp
bGUsIFB5Q29sbGVjdG9yKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ltcG9ydHRlc3Rtb2R1bGUo
KQogCiAgICAgZGVmIGNvbGxlY3Qoc2VsZik6CisgICAgICAgIHNlbGYuX2luamVjdF9zZXR1cF9t
b2R1bGVfZml4dHVyZSgpCisgICAgICAgIHNlbGYuX2luamVjdF9zZXR1cF9mdW5jdGlvbl9maXh0
dXJlKCkKICAgICAgICAgc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlci5wYXJzZWZhY3Rvcmll
cyhzZWxmKQogICAgICAgICByZXR1cm4gc3VwZXIoTW9kdWxlLCBzZWxmKS5jb2xsZWN0KCkKIAor
ICAgIGRlZiBfaW5qZWN0X3NldHVwX21vZHVsZV9maXh0dXJlKHNlbGYpOgorICAgICAgICAiIiJJ
bmplY3RzIGEgaGlkZGVuIGF1dG91c2UsIG1vZHVsZSBzY29wZWQgZml4dHVyZSBpbnRvIHRoZSBj
b2xsZWN0ZWQgbW9kdWxlIG9iamVjdAorICAgICAgICB0aGF0IGludm9rZXMgc2V0VXBNb2R1bGUv
dGVhckRvd25Nb2R1bGUgaWYgZWl0aGVyIG9yIGJvdGggYXJlIGF2YWlsYWJsZS4KKworICAgICAg
ICBVc2luZyBhIGZpeHR1cmUgdG8gaW52b2tlIHRoaXMgbWV0aG9kcyBlbnN1cmVzIHdlIHBsYXkg
bmljZWx5IGFuZCB1bnN1cnByaXNpbmdseSB3aXRoCisgICAgICAgIG90aGVyIGZpeHR1cmVzICgj
NTE3KS4KKyAgICAgICAgIiIiCisgICAgICAgIHNldHVwX21vZHVsZSA9IF9nZXRfbm9uX2ZpeHR1
cmVfZnVuYyhzZWxmLm9iaiwgInNldFVwTW9kdWxlIikKKyAgICAgICAgaWYgc2V0dXBfbW9kdWxl
IGlzIE5vbmU6CisgICAgICAgICAgICBzZXR1cF9tb2R1bGUgPSBfZ2V0X25vbl9maXh0dXJlX2Z1
bmMoc2VsZi5vYmosICJzZXR1cF9tb2R1bGUiKQorCisgICAgICAgIHRlYXJkb3duX21vZHVsZSA9
IF9nZXRfbm9uX2ZpeHR1cmVfZnVuYyhzZWxmLm9iaiwgInRlYXJEb3duTW9kdWxlIikKKyAgICAg
ICAgaWYgdGVhcmRvd25fbW9kdWxlIGlzIE5vbmU6CisgICAgICAgICAgICB0ZWFyZG93bl9tb2R1
bGUgPSBfZ2V0X25vbl9maXh0dXJlX2Z1bmMoc2VsZi5vYmosICJ0ZWFyZG93bl9tb2R1bGUiKQor
CisgICAgICAgIGlmIHNldHVwX21vZHVsZSBpcyBOb25lIGFuZCB0ZWFyZG93bl9tb2R1bGUgaXMg
Tm9uZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIEBmaXh0dXJlcy5maXh0dXJlKGF1
dG91c2U9VHJ1ZSwgc2NvcGU9Im1vZHVsZSIpCisgICAgICAgIGRlZiB4dW5pdF9zZXR1cF9tb2R1
bGVfZml4dHVyZShyZXF1ZXN0KToKKyAgICAgICAgICAgIGlmIHNldHVwX21vZHVsZSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICBfY2FsbF93aXRoX29wdGlvbmFsX2FyZ3VtZW50KHNldHVw
X21vZHVsZSwgcmVxdWVzdC5tb2R1bGUpCisgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAg
aWYgdGVhcmRvd25fbW9kdWxlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIF9jYWxsX3dp
dGhfb3B0aW9uYWxfYXJndW1lbnQodGVhcmRvd25fbW9kdWxlLCByZXF1ZXN0Lm1vZHVsZSkKKwor
ICAgICAgICBzZWxmLm9iai5fX3B5dGVzdF9zZXR1cF9tb2R1bGUgPSB4dW5pdF9zZXR1cF9tb2R1
bGVfZml4dHVyZQorCisgICAgZGVmIF9pbmplY3Rfc2V0dXBfZnVuY3Rpb25fZml4dHVyZShzZWxm
KToKKyAgICAgICAgIiIiSW5qZWN0cyBhIGhpZGRlbiBhdXRvdXNlLCBmdW5jdGlvbiBzY29wZWQg
Zml4dHVyZSBpbnRvIHRoZSBjb2xsZWN0ZWQgbW9kdWxlIG9iamVjdAorICAgICAgICB0aGF0IGlu
dm9rZXMgc2V0dXBfZnVuY3Rpb24vdGVhcmRvd25fZnVuY3Rpb24gaWYgZWl0aGVyIG9yIGJvdGgg
YXJlIGF2YWlsYWJsZS4KKworICAgICAgICBVc2luZyBhIGZpeHR1cmUgdG8gaW52b2tlIHRoaXMg
bWV0aG9kcyBlbnN1cmVzIHdlIHBsYXkgbmljZWx5IGFuZCB1bnN1cnByaXNpbmdseSB3aXRoCisg
ICAgICAgIG90aGVyIGZpeHR1cmVzICgjNTE3KS4KKyAgICAgICAgIiIiCisgICAgICAgIHNldHVw
X2Z1bmN0aW9uID0gX2dldF9ub25fZml4dHVyZV9mdW5jKHNlbGYub2JqLCAic2V0dXBfZnVuY3Rp
b24iKQorICAgICAgICB0ZWFyZG93bl9mdW5jdGlvbiA9IF9nZXRfbm9uX2ZpeHR1cmVfZnVuYyhz
ZWxmLm9iaiwgInRlYXJkb3duX2Z1bmN0aW9uIikKKyAgICAgICAgaWYgc2V0dXBfZnVuY3Rpb24g
aXMgTm9uZSBhbmQgdGVhcmRvd25fZnVuY3Rpb24gaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVy
bgorCisgICAgICAgIEBmaXh0dXJlcy5maXh0dXJlKGF1dG91c2U9VHJ1ZSwgc2NvcGU9ImZ1bmN0
aW9uIikKKyAgICAgICAgZGVmIHh1bml0X3NldHVwX2Z1bmN0aW9uX2ZpeHR1cmUocmVxdWVzdCk6
CisgICAgICAgICAgICBpZiByZXF1ZXN0Lmluc3RhbmNlIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgICAgICMgaW4gdGhpcyBjYXNlIHdlIGFyZSBib3VuZCB0byBhbiBpbnN0YW5jZSwgc28gd2Ug
bmVlZCB0byBsZXQKKyAgICAgICAgICAgICAgICAjIHNldHVwX21ldGhvZCBoYW5kbGUgdGhpcwor
ICAgICAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAg
ICBpZiBzZXR1cF9mdW5jdGlvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBfY2FsbF93
aXRoX29wdGlvbmFsX2FyZ3VtZW50KHNldHVwX2Z1bmN0aW9uLCByZXF1ZXN0LmZ1bmN0aW9uKQor
ICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgIGlmIHRlYXJkb3duX2Z1bmN0aW9uIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgICAgIF9jYWxsX3dpdGhfb3B0aW9uYWxfYXJndW1lbnQodGVh
cmRvd25fZnVuY3Rpb24sIHJlcXVlc3QuZnVuY3Rpb24pCisKKyAgICAgICAgc2VsZi5vYmouX19w
eXRlc3Rfc2V0dXBfZnVuY3Rpb24gPSB4dW5pdF9zZXR1cF9mdW5jdGlvbl9maXh0dXJlCisKICAg
ICBkZWYgX2ltcG9ydHRlc3Rtb2R1bGUoc2VsZik6CiAgICAgICAgICMgd2UgYXNzdW1lIHdlIGFy
ZSBvbmx5IGNhbGxlZCBvbmNlIHBlciBtb2R1bGUKICAgICAgICAgaW1wb3J0bW9kZSA9IHNlbGYu
Y29uZmlnLmdldG9wdGlvbigiLS1pbXBvcnQtbW9kZSIpCkBAIC00NjgsNyArNTA3LDcgQEAgY2xh
c3MgTW9kdWxlKG5vZGVzLkZpbGUsIFB5Q29sbGVjdG9yKToKICAgICAgICAgICAgIG1vZCA9IHNl
bGYuZnNwYXRoLnB5aW1wb3J0KGVuc3VyZXN5c3BhdGg9aW1wb3J0bW9kZSkKICAgICAgICAgZXhj
ZXB0IFN5bnRheEVycm9yOgogICAgICAgICAgICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3IoCi0g
ICAgICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkuZ2V0cmVwcihzdHls
ZT0ic2hvcnQiKQorICAgICAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5m
cm9tX2N1cnJlbnQoKS5nZXRyZXByKHN0eWxlPSJzaG9ydCIpCiAgICAgICAgICAgICApCiAgICAg
ICAgIGV4Y2VwdCBzZWxmLmZzcGF0aC5JbXBvcnRNaXNtYXRjaEVycm9yOgogICAgICAgICAgICAg
ZSA9IHN5cy5leGNfaW5mbygpWzFdCkBAIC00ODQsMTIgKzUyMywxNCBAQCBjbGFzcyBNb2R1bGUo
bm9kZXMuRmlsZSwgUHlDb2xsZWN0b3IpOgogICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAg
ICAgICAgICAgICBmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgRXhjZXB0aW9uSW5mbwog
Ci0gICAgICAgICAgICBleGNfaW5mbyA9IEV4Y2VwdGlvbkluZm8oKQorICAgICAgICAgICAgZXhj
X2luZm8gPSBFeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCiAgICAgICAgICAgICBpZiBzZWxm
LmNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2UiKSA8IDI6CiAgICAgICAgICAgICAgICAgZXhjX2lu
Zm8udHJhY2ViYWNrID0gZXhjX2luZm8udHJhY2ViYWNrLmZpbHRlcihmaWx0ZXJfdHJhY2ViYWNr
KQotICAgICAgICAgICAgZXhjX3JlcHIgPSBleGNfaW5mby5nZXRyZXByKAotICAgICAgICAgICAg
ICAgIHN0eWxlPSJzaG9ydCIKLSAgICAgICAgICAgICkgaWYgZXhjX2luZm8udHJhY2ViYWNrIGVs
c2UgZXhjX2luZm8uZXhjb25seSgpCisgICAgICAgICAgICBleGNfcmVwciA9ICgKKyAgICAgICAg
ICAgICAgICBleGNfaW5mby5nZXRyZXByKHN0eWxlPSJzaG9ydCIpCisgICAgICAgICAgICAgICAg
aWYgZXhjX2luZm8udHJhY2ViYWNrCisgICAgICAgICAgICAgICAgZWxzZSBleGNfaW5mby5leGNv
bmx5KCkKKyAgICAgICAgICAgICkKICAgICAgICAgICAgIGZvcm1hdHRlZF90YiA9IHNhZmVfc3Ry
KGV4Y19yZXByKQogICAgICAgICAgICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3IoCiAgICAgICAg
ICAgICAgICAgIkltcG9ydEVycm9yIHdoaWxlIGltcG9ydGluZyB0ZXN0IG1vZHVsZSAne2ZzcGF0
aH0nLlxuIgpAQCAtNTA5LDE4ICs1NTAsMTIwIEBAIGNsYXNzIE1vZHVsZShub2Rlcy5GaWxlLCBQ
eUNvbGxlY3Rvcik6CiAgICAgICAgIHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIuY29uc2lkZXJf
bW9kdWxlKG1vZCkKICAgICAgICAgcmV0dXJuIG1vZAogCisKK2NsYXNzIFBhY2thZ2UoTW9kdWxl
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZnNwYXRoLCBwYXJlbnQ9Tm9uZSwgY29uZmlnPU5v
bmUsIHNlc3Npb249Tm9uZSwgbm9kZWlkPU5vbmUpOgorICAgICAgICBzZXNzaW9uID0gcGFyZW50
LnNlc3Npb24KKyAgICAgICAgbm9kZXMuRlNDb2xsZWN0b3IuX19pbml0X18oCisgICAgICAgICAg
ICBzZWxmLCBmc3BhdGgsIHBhcmVudD1wYXJlbnQsIGNvbmZpZz1jb25maWcsIHNlc3Npb249c2Vz
c2lvbiwgbm9kZWlkPW5vZGVpZAorICAgICAgICApCisgICAgICAgIHNlbGYubmFtZSA9IGZzcGF0
aC5kaXJuYW1lCisgICAgICAgIHNlbGYudHJhY2UgPSBzZXNzaW9uLnRyYWNlCisgICAgICAgIHNl
bGYuX25vcmVjdXJzZXBhdHRlcm5zID0gc2Vzc2lvbi5fbm9yZWN1cnNlcGF0dGVybnMKKyAgICAg
ICAgc2VsZi5mc3BhdGggPSBmc3BhdGgKKwogICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAg
c2V0dXBfbW9kdWxlID0gX2dldF94dW5pdF9zZXR1cF90ZWFyZG93bihzZWxmLm9iaiwgInNldFVw
TW9kdWxlIikKKyAgICAgICAgIyBub3QgdXNpbmcgZml4dHVyZXMgdG8gY2FsbCBzZXR1cF9tb2R1
bGUgaGVyZSBiZWNhdXNlIGF1dG91c2UgZml4dHVyZXMKKyAgICAgICAgIyBmcm9tIHBhY2thZ2Vz
IGFyZSBub3QgY2FsbGVkIGF1dG9tYXRpY2FsbHkgKCM0MDg1KQorICAgICAgICBzZXR1cF9tb2R1
bGUgPSBfZ2V0X25vbl9maXh0dXJlX2Z1bmMoc2VsZi5vYmosICJzZXRVcE1vZHVsZSIpCiAgICAg
ICAgIGlmIHNldHVwX21vZHVsZSBpcyBOb25lOgotICAgICAgICAgICAgc2V0dXBfbW9kdWxlID0g
X2dldF94dW5pdF9zZXR1cF90ZWFyZG93bihzZWxmLm9iaiwgInNldHVwX21vZHVsZSIpCisgICAg
ICAgICAgICBzZXR1cF9tb2R1bGUgPSBfZ2V0X25vbl9maXh0dXJlX2Z1bmMoc2VsZi5vYmosICJz
ZXR1cF9tb2R1bGUiKQogICAgICAgICBpZiBzZXR1cF9tb2R1bGUgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBzZXR1cF9tb2R1bGUoKQorICAgICAgICAgICAgX2NhbGxfd2l0aF9vcHRpb25hbF9h
cmd1bWVudChzZXR1cF9tb2R1bGUsIHNlbGYub2JqKQogCi0gICAgICAgIHRlYXJkb3duX21vZHVs
ZSA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24oc2VsZi5vYmosICJ0ZWFyRG93bk1vZHVsZSIp
CisgICAgICAgIHRlYXJkb3duX21vZHVsZSA9IF9nZXRfbm9uX2ZpeHR1cmVfZnVuYyhzZWxmLm9i
aiwgInRlYXJEb3duTW9kdWxlIikKICAgICAgICAgaWYgdGVhcmRvd25fbW9kdWxlIGlzIE5vbmU6
Ci0gICAgICAgICAgICB0ZWFyZG93bl9tb2R1bGUgPSBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3du
KHNlbGYub2JqLCAidGVhcmRvd25fbW9kdWxlIikKKyAgICAgICAgICAgIHRlYXJkb3duX21vZHVs
ZSA9IF9nZXRfbm9uX2ZpeHR1cmVfZnVuYyhzZWxmLm9iaiwgInRlYXJkb3duX21vZHVsZSIpCiAg
ICAgICAgIGlmIHRlYXJkb3duX21vZHVsZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYu
YWRkZmluYWxpemVyKHRlYXJkb3duX21vZHVsZSkKKyAgICAgICAgICAgIGZ1bmMgPSBwYXJ0aWFs
KF9jYWxsX3dpdGhfb3B0aW9uYWxfYXJndW1lbnQsIHRlYXJkb3duX21vZHVsZSwgc2VsZi5vYmop
CisgICAgICAgICAgICBzZWxmLmFkZGZpbmFsaXplcihmdW5jKQorCisgICAgZGVmIF9yZWN1cnNl
KHNlbGYsIGRpcnBhdGgpOgorICAgICAgICBpZiBkaXJwYXRoLmJhc2VuYW1lID09ICJfX3B5Y2Fj
aGVfXyI6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWhvb2sgPSBzZWxmLmdl
dGhvb2twcm94eShkaXJwYXRoLmRpcnBhdGgoKSkKKyAgICAgICAgaWYgaWhvb2sucHl0ZXN0X2ln
bm9yZV9jb2xsZWN0KHBhdGg9ZGlycGF0aCwgY29uZmlnPXNlbGYuY29uZmlnKToKKyAgICAgICAg
ICAgIHJldHVybgorICAgICAgICBmb3IgcGF0IGluIHNlbGYuX25vcmVjdXJzZXBhdHRlcm5zOgor
ICAgICAgICAgICAgaWYgZGlycGF0aC5jaGVjayhmbm1hdGNoPXBhdCk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJveHkoZGlycGF0
aCkKKyAgICAgICAgaWhvb2sucHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHBhdGg9ZGlycGF0aCwg
cGFyZW50PXNlbGYpCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgZ2V0aG9va3Byb3h5
KHNlbGYsIGZzcGF0aCk6CisgICAgICAgICMgY2hlY2sgaWYgd2UgaGF2ZSB0aGUgY29tbW9uIGNh
c2Ugb2YgcnVubmluZworICAgICAgICAjIGhvb2tzIHdpdGggYWxsIGNvbmZ0ZXN0LnB5IGZpbGVz
YWxsIGNvbmZ0ZXN0LnB5CisgICAgICAgIHBtID0gc2VsZi5jb25maWcucGx1Z2lubWFuYWdlcgor
ICAgICAgICBteV9jb25mdGVzdG1vZHVsZXMgPSBwbS5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGZzcGF0
aCkKKyAgICAgICAgcmVtb3ZlX21vZHMgPSBwbS5fY29uZnRlc3RfcGx1Z2lucy5kaWZmZXJlbmNl
KG15X2NvbmZ0ZXN0bW9kdWxlcykKKyAgICAgICAgaWYgcmVtb3ZlX21vZHM6CisgICAgICAgICAg
ICAjIG9uZSBvciBtb3JlIGNvbmZ0ZXN0cyBhcmUgbm90IGluIHVzZSBhdCB0aGlzIGZzcGF0aAor
ICAgICAgICAgICAgcHJveHkgPSBGU0hvb2tQcm94eShmc3BhdGgsIHBtLCByZW1vdmVfbW9kcykK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgYWxsIHBsdWdpcyBhcmUgYWN0aXZlIGZvciB0
aGlzIGZzcGF0aAorICAgICAgICAgICAgcHJveHkgPSBzZWxmLmNvbmZpZy5ob29rCisgICAgICAg
IHJldHVybiBwcm94eQorCisgICAgZGVmIF9jb2xsZWN0ZmlsZShzZWxmLCBwYXRoLCBoYW5kbGVf
ZHVwZXM9VHJ1ZSk6CisgICAgICAgIGFzc2VydCBwYXRoLmlzZmlsZSgpLCAiJXIgaXMgbm90IGEg
ZmlsZSAoaXNkaXI9JXIsIGV4aXN0cz0lciwgaXNsaW5rPSVyKSIgJSAoCisgICAgICAgICAgICBw
YXRoLAorICAgICAgICAgICAgcGF0aC5pc2RpcigpLAorICAgICAgICAgICAgcGF0aC5leGlzdHMo
KSwKKyAgICAgICAgICAgIHBhdGguaXNsaW5rKCksCisgICAgICAgICkKKyAgICAgICAgaWhvb2sg
PSBzZWxmLmdldGhvb2twcm94eShwYXRoKQorICAgICAgICBpZiBub3Qgc2VsZi5pc2luaXRwYXRo
KHBhdGgpOgorICAgICAgICAgICAgaWYgaWhvb2sucHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGg9
cGF0aCwgY29uZmlnPXNlbGYuY29uZmlnKToKKyAgICAgICAgICAgICAgICByZXR1cm4gKCkKKwor
ICAgICAgICBpZiBoYW5kbGVfZHVwZXM6CisgICAgICAgICAgICBrZWVwZHVwbGljYXRlcyA9IHNl
bGYuY29uZmlnLmdldG9wdGlvbigia2VlcGR1cGxpY2F0ZXMiKQorICAgICAgICAgICAgaWYgbm90
IGtlZXBkdXBsaWNhdGVzOgorICAgICAgICAgICAgICAgIGR1cGxpY2F0ZV9wYXRocyA9IHNlbGYu
Y29uZmlnLnBsdWdpbm1hbmFnZXIuX2R1cGxpY2F0ZXBhdGhzCisgICAgICAgICAgICAgICAgaWYg
cGF0aCBpbiBkdXBsaWNhdGVfcGF0aHM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKQor
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGR1cGxpY2F0ZV9wYXRo
cy5hZGQocGF0aCkKKworICAgICAgICBpZiBzZWxmLmZzcGF0aCA9PSBwYXRoOiAgIyBfX2luaXRf
Xy5weQorICAgICAgICAgICAgcmV0dXJuIFtzZWxmXQorCisgICAgICAgIHJldHVybiBpaG9vay5w
eXRlc3RfY29sbGVjdF9maWxlKHBhdGg9cGF0aCwgcGFyZW50PXNlbGYpCisKKyAgICBkZWYgaXNp
bml0cGF0aChzZWxmLCBwYXRoKToKKyAgICAgICAgcmV0dXJuIHBhdGggaW4gc2VsZi5zZXNzaW9u
Ll9pbml0aWFscGF0aHMKKworICAgIGRlZiBjb2xsZWN0KHNlbGYpOgorICAgICAgICB0aGlzX3Bh
dGggPSBzZWxmLmZzcGF0aC5kaXJwYXRoKCkKKyAgICAgICAgaW5pdF9tb2R1bGUgPSB0aGlzX3Bh
dGguam9pbigiX19pbml0X18ucHkiKQorICAgICAgICBpZiBpbml0X21vZHVsZS5jaGVjayhmaWxl
PTEpIGFuZCBwYXRoX21hdGNoZXNfcGF0dGVybnMoCisgICAgICAgICAgICBpbml0X21vZHVsZSwg
c2VsZi5jb25maWcuZ2V0aW5pKCJweXRob25fZmlsZXMiKQorICAgICAgICApOgorICAgICAgICAg
ICAgeWllbGQgTW9kdWxlKGluaXRfbW9kdWxlLCBzZWxmKQorICAgICAgICBwa2dfcHJlZml4ZXMg
PSBzZXQoKQorICAgICAgICBmb3IgcGF0aCBpbiB0aGlzX3BhdGgudmlzaXQocmVjPXNlbGYuX3Jl
Y3Vyc2UsIGJmPVRydWUsIHNvcnQ9VHJ1ZSk6CisgICAgICAgICAgICAjIFdlIHdpbGwgdmlzaXQg
b3VyIG93biBfX2luaXRfXy5weSBmaWxlLCBpbiB3aGljaCBjYXNlIHdlIHNraXAgaXQuCisgICAg
ICAgICAgICBpc19maWxlID0gcGF0aC5pc2ZpbGUoKQorICAgICAgICAgICAgaWYgaXNfZmlsZToK
KyAgICAgICAgICAgICAgICBpZiBwYXRoLmJhc2VuYW1lID09ICJfX2luaXRfXy5weSIgYW5kIHBh
dGguZGlycGF0aCgpID09IHRoaXNfcGF0aDoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUK
KworICAgICAgICAgICAgcGFydHNfID0gcGFydHMocGF0aC5zdHJwYXRoKQorICAgICAgICAgICAg
aWYgYW55KAorICAgICAgICAgICAgICAgIHBrZ19wcmVmaXggaW4gcGFydHNfIGFuZCBwa2dfcHJl
Zml4LmpvaW4oIl9faW5pdF9fLnB5IikgIT0gcGF0aAorICAgICAgICAgICAgICAgIGZvciBwa2df
cHJlZml4IGluIHBrZ19wcmVmaXhlcworICAgICAgICAgICAgKToKKyAgICAgICAgICAgICAgICBj
b250aW51ZQorCisgICAgICAgICAgICBpZiBpc19maWxlOgorICAgICAgICAgICAgICAgIGZvciB4
IGluIHNlbGYuX2NvbGxlY3RmaWxlKHBhdGgpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCB4
CisgICAgICAgICAgICBlbGlmIG5vdCBwYXRoLmlzZGlyKCk6CisgICAgICAgICAgICAgICAgIyBC
cm9rZW4gc3ltbGluayBvciBpbnZhbGlkL21pc3NpbmcgZmlsZS4KKyAgICAgICAgICAgICAgICBj
b250aW51ZQorICAgICAgICAgICAgZWxpZiBwYXRoLmpvaW4oIl9faW5pdF9fLnB5IikuY2hlY2so
ZmlsZT0xKToKKyAgICAgICAgICAgICAgICBwa2dfcHJlZml4ZXMuYWRkKHBhdGgpCiAKIAogZGVm
IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24oaG9sZGVyLCBhdHRyX25hbWUsIHBhcmFtX29iaj1O
b25lKToKQEAgLTUzMSw4ICs2NzQsOSBAQCBkZWYgX2dldF94dW5pdF9zZXR1cF90ZWFyZG93biho
b2xkZXIsIGF0dHJfbmFtZSwgcGFyYW1fb2JqPU5vbmUpOgogICAgIHdoZW4gdGhlIGNhbGxhYmxl
IGlzIGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50cywgZGVmYXVsdHMgdG8gdGhlIGBgaG9sZGVyYGAg
b2JqZWN0LgogICAgIFJldHVybiBgYE5vbmVgYCBpZiBhIHN1aXRhYmxlIGNhbGxhYmxlIGlzIG5v
dCBmb3VuZC4KICAgICAiIiIKKyAgICAjIFRPRE86IG9ubHkgbmVlZGVkIGJlY2F1c2Ugb2YgUGFj
a2FnZSEKICAgICBwYXJhbV9vYmogPSBwYXJhbV9vYmogaWYgcGFyYW1fb2JqIGlzIG5vdCBOb25l
IGVsc2UgaG9sZGVyCi0gICAgcmVzdWx0ID0gX2dldF94dW5pdF9mdW5jKGhvbGRlciwgYXR0cl9u
YW1lKQorICAgIHJlc3VsdCA9IF9nZXRfbm9uX2ZpeHR1cmVfZnVuYyhob2xkZXIsIGF0dHJfbmFt
ZSkKICAgICBpZiByZXN1bHQgaXMgbm90IE5vbmU6CiAgICAgICAgIGFyZ19jb3VudCA9IHJlc3Vs
dC5fX2NvZGVfXy5jb19hcmdjb3VudAogICAgICAgICBpZiBpbnNwZWN0LmlzbWV0aG9kKHJlc3Vs
dCk6CkBAIC01NDMsNyArNjg3LDE5IEBAIGRlZiBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3duKGhv
bGRlciwgYXR0cl9uYW1lLCBwYXJhbV9vYmo9Tm9uZSk6CiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0CiAKIAotZGVmIF9nZXRfeHVuaXRfZnVuYyhvYmosIG5hbWUpOgorZGVmIF9jYWxsX3dpdGhf
b3B0aW9uYWxfYXJndW1lbnQoZnVuYywgYXJnKToKKyAgICAiIiJDYWxsIHRoZSBnaXZlbiBmdW5j
dGlvbiB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudCBpZiBmdW5jIGFjY2VwdHMgb25lIGFyZ3VtZW50
LCBvdGhlcndpc2UKKyAgICBjYWxscyBmdW5jIHdpdGhvdXQgYXJndW1lbnRzIiIiCisgICAgYXJn
X2NvdW50ID0gZnVuYy5fX2NvZGVfXy5jb19hcmdjb3VudAorICAgIGlmIGluc3BlY3QuaXNtZXRo
b2QoZnVuYyk6CisgICAgICAgIGFyZ19jb3VudCAtPSAxCisgICAgaWYgYXJnX2NvdW50OgorICAg
ICAgICBmdW5jKGFyZykKKyAgICBlbHNlOgorICAgICAgICBmdW5jKCkKKworCitkZWYgX2dldF9u
b25fZml4dHVyZV9mdW5jKG9iaiwgbmFtZSk6CiAgICAgIiIiUmV0dXJuIHRoZSBhdHRyaWJ1dGUg
ZnJvbSB0aGUgZ2l2ZW4gb2JqZWN0IHRvIGJlIHVzZWQgYXMgYSBzZXR1cC90ZWFyZG93bgogICAg
IHh1bml0LXN0eWxlIGZ1bmN0aW9uLCBidXQgb25seSBpZiBub3QgbWFya2VkIGFzIGEgZml4dHVy
ZSB0bwogICAgIGF2b2lkIGNhbGxpbmcgaXQgdHdpY2UuCkBAIC01NjEsMzkgKzcxNyw4MyBAQCBj
bGFzcyBDbGFzcyhQeUNvbGxlY3Rvcik6CiAgICAgICAgICAgICByZXR1cm4gW10KICAgICAgICAg
aWYgaGFzaW5pdChzZWxmLm9iaik6CiAgICAgICAgICAgICBzZWxmLndhcm4oCi0gICAgICAgICAg
ICAgICAgIkMxIiwKLSAgICAgICAgICAgICAgICAiY2Fubm90IGNvbGxlY3QgdGVzdCBjbGFzcyAl
ciBiZWNhdXNlIGl0IGhhcyBhICIKLSAgICAgICAgICAgICAgICAiX19pbml0X18gY29uc3RydWN0
b3IiICUgc2VsZi5vYmouX19uYW1lX18sCisgICAgICAgICAgICAgICAgUHl0ZXN0Q29sbGVjdGlv
bldhcm5pbmcoCisgICAgICAgICAgICAgICAgICAgICJjYW5ub3QgY29sbGVjdCB0ZXN0IGNsYXNz
ICVyIGJlY2F1c2UgaXQgaGFzIGEgIgorICAgICAgICAgICAgICAgICAgICAiX19pbml0X18gY29u
c3RydWN0b3IgKGZyb206ICVzKSIKKyAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5vYmouX19u
YW1lX18sIHNlbGYucGFyZW50Lm5vZGVpZCkKKyAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
ICApCiAgICAgICAgICAgICByZXR1cm4gW10KICAgICAgICAgZWxpZiBoYXNuZXcoc2VsZi5vYmop
OgogICAgICAgICAgICAgc2VsZi53YXJuKAotICAgICAgICAgICAgICAgICJDMSIsCi0gICAgICAg
ICAgICAgICAgImNhbm5vdCBjb2xsZWN0IHRlc3QgY2xhc3MgJXIgYmVjYXVzZSBpdCBoYXMgYSAi
Ci0gICAgICAgICAgICAgICAgIl9fbmV3X18gY29uc3RydWN0b3IiICUgc2VsZi5vYmouX19uYW1l
X18sCisgICAgICAgICAgICAgICAgUHl0ZXN0Q29sbGVjdGlvbldhcm5pbmcoCisgICAgICAgICAg
ICAgICAgICAgICJjYW5ub3QgY29sbGVjdCB0ZXN0IGNsYXNzICVyIGJlY2F1c2UgaXQgaGFzIGEg
IgorICAgICAgICAgICAgICAgICAgICAiX19uZXdfXyBjb25zdHJ1Y3RvciAoZnJvbTogJXMpIgor
ICAgICAgICAgICAgICAgICAgICAlIChzZWxmLm9iai5fX25hbWVfXywgc2VsZi5wYXJlbnQubm9k
ZWlkKQorICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHJldHVy
biBbXQotICAgICAgICByZXR1cm4gW3NlbGYuX2dldGN1c3RvbWNsYXNzKCJJbnN0YW5jZSIpKG5h
bWU9IigpIiwgcGFyZW50PXNlbGYpXQogCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICBz
ZXR1cF9jbGFzcyA9IF9nZXRfeHVuaXRfZnVuYyhzZWxmLm9iaiwgInNldHVwX2NsYXNzIikKLSAg
ICAgICAgaWYgc2V0dXBfY2xhc3MgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZXR1cF9jbGFz
cyA9IGdldGF0dHIoc2V0dXBfY2xhc3MsICJpbV9mdW5jIiwgc2V0dXBfY2xhc3MpCi0gICAgICAg
ICAgICBzZXR1cF9jbGFzcyA9IGdldGF0dHIoc2V0dXBfY2xhc3MsICJfX2Z1bmNfXyIsIHNldHVw
X2NsYXNzKQotICAgICAgICAgICAgc2V0dXBfY2xhc3Moc2VsZi5vYmopCisgICAgICAgIHNlbGYu
X2luamVjdF9zZXR1cF9jbGFzc19maXh0dXJlKCkKKyAgICAgICAgc2VsZi5faW5qZWN0X3NldHVw
X21ldGhvZF9maXh0dXJlKCkKKworICAgICAgICByZXR1cm4gW0luc3RhbmNlKG5hbWU9IigpIiwg
cGFyZW50PXNlbGYpXQorCisgICAgZGVmIF9pbmplY3Rfc2V0dXBfY2xhc3NfZml4dHVyZShzZWxm
KToKKyAgICAgICAgIiIiSW5qZWN0cyBhIGhpZGRlbiBhdXRvdXNlLCBjbGFzcyBzY29wZWQgZml4
dHVyZSBpbnRvIHRoZSBjb2xsZWN0ZWQgY2xhc3Mgb2JqZWN0CisgICAgICAgIHRoYXQgaW52b2tl
cyBzZXR1cF9jbGFzcy90ZWFyZG93bl9jbGFzcyBpZiBlaXRoZXIgb3IgYm90aCBhcmUgYXZhaWxh
YmxlLgorCisgICAgICAgIFVzaW5nIGEgZml4dHVyZSB0byBpbnZva2UgdGhpcyBtZXRob2RzIGVu
c3VyZXMgd2UgcGxheSBuaWNlbHkgYW5kIHVuc3VycHJpc2luZ2x5IHdpdGgKKyAgICAgICAgb3Ro
ZXIgZml4dHVyZXMgKCM1MTcpLgorICAgICAgICAiIiIKKyAgICAgICAgc2V0dXBfY2xhc3MgPSBf
Z2V0X25vbl9maXh0dXJlX2Z1bmMoc2VsZi5vYmosICJzZXR1cF9jbGFzcyIpCisgICAgICAgIHRl
YXJkb3duX2NsYXNzID0gZ2V0YXR0cihzZWxmLm9iaiwgInRlYXJkb3duX2NsYXNzIiwgTm9uZSkK
KyAgICAgICAgaWYgc2V0dXBfY2xhc3MgaXMgTm9uZSBhbmQgdGVhcmRvd25fY2xhc3MgaXMgTm9u
ZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIEBmaXh0dXJlcy5maXh0dXJlKGF1dG91
c2U9VHJ1ZSwgc2NvcGU9ImNsYXNzIikKKyAgICAgICAgZGVmIHh1bml0X3NldHVwX2NsYXNzX2Zp
eHR1cmUoY2xzKToKKyAgICAgICAgICAgIGlmIHNldHVwX2NsYXNzIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgICAgIGZ1bmMgPSBnZXRpbWZ1bmMoc2V0dXBfY2xhc3MpCisgICAgICAgICAgICAg
ICAgX2NhbGxfd2l0aF9vcHRpb25hbF9hcmd1bWVudChmdW5jLCBzZWxmLm9iaikKKyAgICAgICAg
ICAgIHlpZWxkCisgICAgICAgICAgICBpZiB0ZWFyZG93bl9jbGFzcyBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgICAgICBmdW5jID0gZ2V0aW1mdW5jKHRlYXJkb3duX2NsYXNzKQorICAgICAgICAg
ICAgICAgIF9jYWxsX3dpdGhfb3B0aW9uYWxfYXJndW1lbnQoZnVuYywgc2VsZi5vYmopCisKKyAg
ICAgICAgc2VsZi5vYmouX19weXRlc3Rfc2V0dXBfY2xhc3MgPSB4dW5pdF9zZXR1cF9jbGFzc19m
aXh0dXJlCisKKyAgICBkZWYgX2luamVjdF9zZXR1cF9tZXRob2RfZml4dHVyZShzZWxmKToKKyAg
ICAgICAgIiIiSW5qZWN0cyBhIGhpZGRlbiBhdXRvdXNlLCBmdW5jdGlvbiBzY29wZWQgZml4dHVy
ZSBpbnRvIHRoZSBjb2xsZWN0ZWQgY2xhc3Mgb2JqZWN0CisgICAgICAgIHRoYXQgaW52b2tlcyBz
ZXR1cF9tZXRob2QvdGVhcmRvd25fbWV0aG9kIGlmIGVpdGhlciBvciBib3RoIGFyZSBhdmFpbGFi
bGUuCisKKyAgICAgICAgVXNpbmcgYSBmaXh0dXJlIHRvIGludm9rZSB0aGlzIG1ldGhvZHMgZW5z
dXJlcyB3ZSBwbGF5IG5pY2VseSBhbmQgdW5zdXJwcmlzaW5nbHkgd2l0aAorICAgICAgICBvdGhl
ciBmaXh0dXJlcyAoIzUxNykuCisgICAgICAgICIiIgorICAgICAgICBzZXR1cF9tZXRob2QgPSBf
Z2V0X25vbl9maXh0dXJlX2Z1bmMoc2VsZi5vYmosICJzZXR1cF9tZXRob2QiKQorICAgICAgICB0
ZWFyZG93bl9tZXRob2QgPSBnZXRhdHRyKHNlbGYub2JqLCAidGVhcmRvd25fbWV0aG9kIiwgTm9u
ZSkKKyAgICAgICAgaWYgc2V0dXBfbWV0aG9kIGlzIE5vbmUgYW5kIHRlYXJkb3duX21ldGhvZCBp
cyBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgQGZpeHR1cmVzLmZpeHR1cmUo
YXV0b3VzZT1UcnVlLCBzY29wZT0iZnVuY3Rpb24iKQorICAgICAgICBkZWYgeHVuaXRfc2V0dXBf
bWV0aG9kX2ZpeHR1cmUoc2VsZiwgcmVxdWVzdCk6CisgICAgICAgICAgICBtZXRob2QgPSByZXF1
ZXN0LmZ1bmN0aW9uCisgICAgICAgICAgICBpZiBzZXR1cF9tZXRob2QgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICAgICAgZnVuYyA9IGdldGF0dHIoc2VsZiwgInNldHVwX21ldGhvZCIpCisgICAg
ICAgICAgICAgICAgX2NhbGxfd2l0aF9vcHRpb25hbF9hcmd1bWVudChmdW5jLCBtZXRob2QpCisg
ICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgaWYgdGVhcmRvd25fbWV0aG9kIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgICAgIGZ1bmMgPSBnZXRhdHRyKHNlbGYsICJ0ZWFyZG93bl9tZXRo
b2QiKQorICAgICAgICAgICAgICAgIF9jYWxsX3dpdGhfb3B0aW9uYWxfYXJndW1lbnQoZnVuYywg
bWV0aG9kKQogCi0gICAgICAgIGZpbl9jbGFzcyA9IGdldGF0dHIoc2VsZi5vYmosICJ0ZWFyZG93
bl9jbGFzcyIsIE5vbmUpCi0gICAgICAgIGlmIGZpbl9jbGFzcyBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgIGZpbl9jbGFzcyA9IGdldGF0dHIoZmluX2NsYXNzLCAiaW1fZnVuYyIsIGZpbl9jbGFz
cykKLSAgICAgICAgICAgIGZpbl9jbGFzcyA9IGdldGF0dHIoZmluX2NsYXNzLCAiX19mdW5jX18i
LCBmaW5fY2xhc3MpCi0gICAgICAgICAgICBzZWxmLmFkZGZpbmFsaXplcihsYW1iZGE6IGZpbl9j
bGFzcyhzZWxmLm9iaikpCisgICAgICAgIHNlbGYub2JqLl9fcHl0ZXN0X3NldHVwX21ldGhvZCA9
IHh1bml0X3NldHVwX21ldGhvZF9maXh0dXJlCiAKIAogY2xhc3MgSW5zdGFuY2UoUHlDb2xsZWN0
b3IpOgogICAgIF9BTExPV19NQVJLRVJTID0gRmFsc2UgICMgaGFjaywgZGVzdHJveSBsYXRlcgog
ICAgICMgaW5zdGFuY2VzIHNoYXJlIHRoZSBvYmplY3Qgd2l0aCB0aGVpciBwYXJlbnRzIGluIGEg
d2F5CiAgICAgIyB0aGF0IGR1cGxpY2F0ZXMgbWFya2VycyBpbnN0YW5jZXMgaWYgbm90IHRha2Vu
IG91dAotICAgICMgY2FuIGJlIHJlbW92ZWQgYXQgbm9kZSBzdHJ1Y3V0cmUgcmVvcmdhbml6YXRp
b24gdGltZQorICAgICMgY2FuIGJlIHJlbW92ZWQgYXQgbm9kZSBzdHJ1Y3R1cmUgcmVvcmdhbml6
YXRpb24gdGltZQogCiAgICAgZGVmIF9nZXRvYmooc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxm
LnBhcmVudC5vYmooKQpAQCAtNjEzLDMyICs4MTMsMTIgQEAgY2xhc3MgRnVuY3Rpb25NaXhpbihQ
eW9iak1peGluKToKIAogICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgIiIiIHBlcmZvcm0g
c2V0dXAgZm9yIHRoaXMgdGVzdCBmdW5jdGlvbi4gIiIiCi0gICAgICAgIGlmIGhhc2F0dHIoc2Vs
ZiwgIl9wcmVzZXJ2ZWRwYXJlbnQiKToKLSAgICAgICAgICAgIG9iaiA9IHNlbGYuX3ByZXNlcnZl
ZHBhcmVudAotICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoc2VsZi5wYXJlbnQsIEluc3RhbmNlKToK
LSAgICAgICAgICAgIG9iaiA9IHNlbGYucGFyZW50Lm5ld2luc3RhbmNlKCkKKyAgICAgICAgaWYg
aXNpbnN0YW5jZShzZWxmLnBhcmVudCwgSW5zdGFuY2UpOgorICAgICAgICAgICAgc2VsZi5wYXJl
bnQubmV3aW5zdGFuY2UoKQogICAgICAgICAgICAgc2VsZi5vYmogPSBzZWxmLl9nZXRvYmooKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgb2JqID0gc2VsZi5wYXJlbnQub2JqCi0gICAgICAg
IGlmIGluc3BlY3QuaXNtZXRob2Qoc2VsZi5vYmopOgotICAgICAgICAgICAgc2V0dXBfbmFtZSA9
ICJzZXR1cF9tZXRob2QiCi0gICAgICAgICAgICB0ZWFyZG93bl9uYW1lID0gInRlYXJkb3duX21l
dGhvZCIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNldHVwX25hbWUgPSAic2V0dXBfZnVu
Y3Rpb24iCi0gICAgICAgICAgICB0ZWFyZG93bl9uYW1lID0gInRlYXJkb3duX2Z1bmN0aW9uIgot
ICAgICAgICBzZXR1cF9mdW5jX29yX21ldGhvZCA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24o
Ci0gICAgICAgICAgICBvYmosIHNldHVwX25hbWUsIHBhcmFtX29iaj1zZWxmLm9iagotICAgICAg
ICApCi0gICAgICAgIGlmIHNldHVwX2Z1bmNfb3JfbWV0aG9kIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgc2V0dXBfZnVuY19vcl9tZXRob2QoKQotICAgICAgICB0ZWFyZG93bl9mdW5jX29yX21l
dGhvZCA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24oCi0gICAgICAgICAgICBvYmosIHRlYXJk
b3duX25hbWUsIHBhcmFtX29iaj1zZWxmLm9iagotICAgICAgICApCi0gICAgICAgIGlmIHRlYXJk
b3duX2Z1bmNfb3JfbWV0aG9kIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5hZGRmaW5h
bGl6ZXIodGVhcmRvd25fZnVuY19vcl9tZXRob2QpCiAKICAgICBkZWYgX3BydW5ldHJhY2ViYWNr
KHNlbGYsIGV4Y2luZm8pOgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJfb2JqIikgYW5kIG5v
dCBzZWxmLmNvbmZpZy5vcHRpb24uZnVsbHRyYWNlOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYs
ICJfb2JqIikgYW5kIG5vdCBzZWxmLmNvbmZpZy5nZXRvcHRpb24oImZ1bGx0cmFjZSIsIEZhbHNl
KToKICAgICAgICAgICAgIGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLkNvZGUoZ2V0X3JlYWxfZnVuYyhz
ZWxmLm9iaikpCiAgICAgICAgICAgICBwYXRoLCBmaXJzdGxpbmVubyA9IGNvZGUucGF0aCwgY29k
ZS5maXJzdGxpbmVubwogICAgICAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sK
QEAgLTY1Myw2OCArODMzLDE5IEBAIGNsYXNzIEZ1bmN0aW9uTWl4aW4oUHlvYmpNaXhpbik6CiAg
ICAgICAgICAgICBleGNpbmZvLnRyYWNlYmFjayA9IG50cmFjZWJhY2suZmlsdGVyKCkKICAgICAg
ICAgICAgICMgaXNzdWUzNjQ6IG1hcmsgYWxsIGJ1dCBmaXJzdCBhbmQgbGFzdCBmcmFtZXMgdG8K
ICAgICAgICAgICAgICMgb25seSBzaG93IGEgc2luZ2xlLWxpbmUgbWVzc2FnZSBmb3IgZWFjaCBm
cmFtZQotICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgPT0gImF1dG8i
OgorICAgICAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0b3B0aW9uKCJ0YnN0eWxlIiwgImF1dG8i
KSA9PSAiYXV0byI6CiAgICAgICAgICAgICAgICAgaWYgbGVuKGV4Y2luZm8udHJhY2ViYWNrKSA+
IDI6CiAgICAgICAgICAgICAgICAgICAgIGZvciBlbnRyeSBpbiBleGNpbmZvLnRyYWNlYmFja1sx
Oi0xXToKICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LnNldF9yZXByX3N0eWxlKCJzaG9y
dCIpCiAKLSAgICBkZWYgX3JlcHJfZmFpbHVyZV9weShzZWxmLCBleGNpbmZvLCBzdHlsZT0ibG9u
ZyIpOgotICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2UoZmFpbC5FeGNlcHRpb24pOgot
ICAgICAgICAgICAgaWYgbm90IGV4Y2luZm8udmFsdWUucHl0cmFjZToKLSAgICAgICAgICAgICAg
ICByZXR1cm4gcHkuX2J1aWx0aW4uX3RvdGV4dChleGNpbmZvLnZhbHVlKQotICAgICAgICByZXR1
cm4gc3VwZXIoRnVuY3Rpb25NaXhpbiwgc2VsZikuX3JlcHJfZmFpbHVyZV9weShleGNpbmZvLCBz
dHlsZT1zdHlsZSkKLQogICAgIGRlZiByZXByX2ZhaWx1cmUoc2VsZiwgZXhjaW5mbywgb3V0ZXJy
PU5vbmUpOgogICAgICAgICBhc3NlcnQgb3V0ZXJyIGlzIE5vbmUsICJYWFggb3V0ZXJyIHVzYWdl
IGlzIGRlcHJlY2F0ZWQiCi0gICAgICAgIHN0eWxlID0gc2VsZi5jb25maWcub3B0aW9uLnRic3R5
bGUKKyAgICAgICAgc3R5bGUgPSBzZWxmLmNvbmZpZy5nZXRvcHRpb24oInRic3R5bGUiLCAiYXV0
byIpCiAgICAgICAgIGlmIHN0eWxlID09ICJhdXRvIjoKICAgICAgICAgICAgIHN0eWxlID0gImxv
bmciCiAgICAgICAgIHJldHVybiBzZWxmLl9yZXByX2ZhaWx1cmVfcHkoZXhjaW5mbywgc3R5bGU9
c3R5bGUpCiAKIAotY2xhc3MgR2VuZXJhdG9yKEZ1bmN0aW9uTWl4aW4sIFB5Q29sbGVjdG9yKToK
LQotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAgICAgICAjIHRlc3QgZ2VuZXJhdG9ycyBhcmUg
c2VlbiBhcyBjb2xsZWN0b3JzIGJ1dCB0aGV5IGFsc28KLSAgICAgICAgIyBpbnZva2Ugc2V0dXAv
dGVhcmRvd24gb24gcG9wdWxhciByZXF1ZXN0Ci0gICAgICAgICMgKGluZHVjZWQgYnkgdGhlIGNv
bW1vbiAidGVzdF8qIiBuYW1pbmcgc2hhcmVkIHdpdGggbm9ybWFsIHRlc3RzKQotICAgICAgICBm
cm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKLQotICAgICAgICBzZWxmLnNlc3Npb24uX3Nl
dHVwc3RhdGUucHJlcGFyZShzZWxmKQotICAgICAgICAjIHNlZSBGdW5jdGlvbk1peGluLnNldHVw
IGFuZCB0ZXN0X3NldHVwc3RhdGVfaXNfcHJlc2VydmVkXzEzNAotICAgICAgICBzZWxmLl9wcmVz
ZXJ2ZWRwYXJlbnQgPSBzZWxmLnBhcmVudC5vYmoKLSAgICAgICAgdmFsdWVzID0gW10KLSAgICAg
ICAgc2VlbiA9IHt9Ci0gICAgICAgIGZvciBpLCB4IGluIGVudW1lcmF0ZShzZWxmLm9iaigpKToK
LSAgICAgICAgICAgIG5hbWUsIGNhbGwsIGFyZ3MgPSBzZWxmLmdldGNhbGxhcmdzKHgpCi0gICAg
ICAgICAgICBpZiBub3QgY2FsbGFibGUoY2FsbCk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVHlw
ZUVycm9yKCIlciB5aWVsZGVkIG5vbiBjYWxsYWJsZSB0ZXN0ICVyIiAlIChzZWxmLm9iaiwgY2Fs
bCkpCi0gICAgICAgICAgICBpZiBuYW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgbmFtZSA9
ICJbJWRdIiAlIGkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbmFtZSA9ICJb
JyVzJ10iICUgbmFtZQotICAgICAgICAgICAgaWYgbmFtZSBpbiBzZWVuOgotICAgICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICIlciBnZW5lcmF0ZWQg
dGVzdHMgd2l0aCBub24tdW5pcXVlIG5hbWUgJXIiICUgKHNlbGYsIG5hbWUpCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgc2VlbltuYW1lXSA9IFRydWUKLSAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoc2VsZi5GdW5jdGlvbihuYW1lLCBzZWxmLCBhcmdzPWFyZ3MsIGNhbGxvYmo9Y2Fs
bCkpCi0gICAgICAgIHNlbGYud2FybigiQzEiLCBkZXByZWNhdGVkLllJRUxEX1RFU1RTKQotICAg
ICAgICByZXR1cm4gdmFsdWVzCi0KLSAgICBkZWYgZ2V0Y2FsbGFyZ3Moc2VsZiwgb2JqKToKLSAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAgICAg
IG9iaiA9IChvYmosKQotICAgICAgICAjIGV4cGxpY2l0IG5hbWluZwotICAgICAgICBpZiBpc2lu
c3RhbmNlKG9ialswXSwgc2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAgICAgICBuYW1lID0gb2Jq
WzBdCi0gICAgICAgICAgICBvYmogPSBvYmpbMTpdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBuYW1lID0gTm9uZQotICAgICAgICBjYWxsLCBhcmdzID0gb2JqWzBdLCBvYmpbMTpdCi0gICAg
ICAgIHJldHVybiBuYW1lLCBjYWxsLCBhcmdzCi0KLQogZGVmIGhhc2luaXQob2JqKToKICAgICBp
bml0ID0gZ2V0YXR0cihvYmosICJfX2luaXRfXyIsIE5vbmUpCiAgICAgaWYgaW5pdDoKQEAgLTcy
OCwyMCArODU5LDE4IEBAIGRlZiBoYXNuZXcob2JqKToKIAogCiBjbGFzcyBDYWxsU3BlYzIob2Jq
ZWN0KToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRhZnVuYyk6CiAgICAgICAgIHNlbGYu
bWV0YWZ1bmMgPSBtZXRhZnVuYwogICAgICAgICBzZWxmLmZ1bmNhcmdzID0ge30KICAgICAgICAg
c2VsZi5faWRsaXN0ID0gW10KICAgICAgICAgc2VsZi5wYXJhbXMgPSB7fQogICAgICAgICBzZWxm
Ll9nbG9iYWxpZCA9IE5PVFNFVAotICAgICAgICBzZWxmLl9nbG9iYWxpZF9hcmdzID0gc2V0KCkK
ICAgICAgICAgc2VsZi5fZ2xvYmFscGFyYW0gPSBOT1RTRVQKICAgICAgICAgc2VsZi5fYXJnMnNj
b3BlbnVtID0ge30gICMgdXNlZCBmb3Igc29ydGluZyBwYXJhbWV0cml6ZWQgcmVzb3VyY2VzCiAg
ICAgICAgIHNlbGYubWFya3MgPSBbXQogICAgICAgICBzZWxmLmluZGljZXMgPSB7fQogCi0gICAg
ZGVmIGNvcHkoc2VsZiwgbWV0YWZ1bmMpOgorICAgIGRlZiBjb3B5KHNlbGYpOgogICAgICAgICBj
cyA9IENhbGxTcGVjMihzZWxmLm1ldGFmdW5jKQogICAgICAgICBjcy5mdW5jYXJncy51cGRhdGUo
c2VsZi5mdW5jYXJncykKICAgICAgICAgY3MucGFyYW1zLnVwZGF0ZShzZWxmLnBhcmFtcykKQEAg
LTc1MCw3ICs4NzksNiBAQCBjbGFzcyBDYWxsU3BlYzIob2JqZWN0KToKICAgICAgICAgY3MuX2Fy
ZzJzY29wZW51bS51cGRhdGUoc2VsZi5fYXJnMnNjb3BlbnVtKQogICAgICAgICBjcy5faWRsaXN0
ID0gbGlzdChzZWxmLl9pZGxpc3QpCiAgICAgICAgIGNzLl9nbG9iYWxpZCA9IHNlbGYuX2dsb2Jh
bGlkCi0gICAgICAgIGNzLl9nbG9iYWxpZF9hcmdzID0gc2VsZi5fZ2xvYmFsaWRfYXJncwogICAg
ICAgICBjcy5fZ2xvYmFscGFyYW0gPSBzZWxmLl9nbG9iYWxwYXJhbQogICAgICAgICByZXR1cm4g
Y3MKIApAQCAtNzc4LDcgKzkwNiw3IEBAIGNsYXNzIENhbGxTcGVjMihvYmplY3QpOgogICAgICAg
ICAgICAgc2VsZi5pbmRpY2VzW2FyZ10gPSBwYXJhbV9pbmRleAogICAgICAgICAgICAgc2VsZi5f
YXJnMnNjb3BlbnVtW2FyZ10gPSBzY29wZW51bQogICAgICAgICBzZWxmLl9pZGxpc3QuYXBwZW5k
KGlkKQotICAgICAgICBzZWxmLm1hcmtzLmV4dGVuZChtYXJrcykKKyAgICAgICAgc2VsZi5tYXJr
cy5leHRlbmQobm9ybWFsaXplX21hcmtfbGlzdChtYXJrcykpCiAKICAgICBkZWYgc2V0YWxsKHNl
bGYsIGZ1bmNhcmdzLCBpZCwgcGFyYW0pOgogICAgICAgICBmb3IgeCBpbiBmdW5jYXJnczoKQEAg
LTgwMiwxMiArOTMwLDEzIEBAIGNsYXNzIE1ldGFmdW5jKGZpeHR1cmVzLkZ1bmNhcmduYW1lc0Nv
bXBhdEF0dHIpOgogICAgICIiIgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlZmluaXRpb24s
IGZpeHR1cmVpbmZvLCBjb25maWcsIGNscz1Ob25lLCBtb2R1bGU9Tm9uZSk6Ci0gICAgICAgICM6
IGFjY2VzcyB0byB0aGUgOmNsYXNzOmBfcHl0ZXN0LmNvbmZpZy5Db25maWdgIG9iamVjdCBmb3Ig
dGhlIHRlc3Qgc2Vzc2lvbgogICAgICAgICBhc3NlcnQgKAogICAgICAgICAgICAgaXNpbnN0YW5j
ZShkZWZpbml0aW9uLCBGdW5jdGlvbkRlZmluaXRpb24pCiAgICAgICAgICAgICBvciB0eXBlKGRl
ZmluaXRpb24pLl9fbmFtZV9fID09ICJEZWZpbml0aW9uTW9jayIKICAgICAgICAgKQogICAgICAg
ICBzZWxmLmRlZmluaXRpb24gPSBkZWZpbml0aW9uCisKKyAgICAgICAgIzogYWNjZXNzIHRvIHRo
ZSA6Y2xhc3M6YF9weXRlc3QuY29uZmlnLkNvbmZpZ2Agb2JqZWN0IGZvciB0aGUgdGVzdCBzZXNz
aW9uCiAgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCiAKICAgICAgICAgIzogdGhlIG1vZHVs
ZSBvYmplY3Qgd2hlcmUgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZGVmaW5lZCBpbi4KQEAgLTg2Niwx
MjkgKzk5NSwxMzcgQEAgY2xhc3MgTWV0YWZ1bmMoZml4dHVyZXMuRnVuY2FyZ25hbWVzQ29tcGF0
QXR0cik6CiAgICAgICAgICIiIgogICAgICAgICBmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0
IHNjb3BlMmluZGV4CiAgICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBQYXJhbWV0ZXJT
ZXQKLSAgICAgICAgZnJvbSBweS5pbyBpbXBvcnQgc2FmZXJlcHIKIAogICAgICAgICBhcmduYW1l
cywgcGFyYW1ldGVycyA9IFBhcmFtZXRlclNldC5fZm9yX3BhcmFtZXRyaXplKAotICAgICAgICAg
ICAgYXJnbmFtZXMsIGFyZ3ZhbHVlcywgc2VsZi5mdW5jdGlvbiwgc2VsZi5jb25maWcKKyAgICAg
ICAgICAgIGFyZ25hbWVzLAorICAgICAgICAgICAgYXJndmFsdWVzLAorICAgICAgICAgICAgc2Vs
Zi5mdW5jdGlvbiwKKyAgICAgICAgICAgIHNlbGYuY29uZmlnLAorICAgICAgICAgICAgZnVuY3Rp
b25fZGVmaW5pdGlvbj1zZWxmLmRlZmluaXRpb24sCiAgICAgICAgICkKICAgICAgICAgZGVsIGFy
Z3ZhbHVlcwotICAgICAgICBkZWZhdWx0X2FyZ19uYW1lcyA9IHNldChnZXRfZGVmYXVsdF9hcmdf
bmFtZXMoc2VsZi5mdW5jdGlvbikpCiAKICAgICAgICAgaWYgc2NvcGUgaXMgTm9uZToKICAgICAg
ICAgICAgIHNjb3BlID0gX2ZpbmRfcGFyYW1ldHJpemVkX3Njb3BlKGFyZ25hbWVzLCBzZWxmLl9h
cmcyZml4dHVyZWRlZnMsIGluZGlyZWN0KQogCi0gICAgICAgIHNjb3BlbnVtID0gc2NvcGUyaW5k
ZXgoc2NvcGUsIGRlc2NyPSJjYWxsIHRvIHt9Ii5mb3JtYXQoc2VsZi5wYXJhbWV0cml6ZSkpCi0g
ICAgICAgIHZhbHR5cGVzID0ge30KLSAgICAgICAgZm9yIGFyZyBpbiBhcmduYW1lczoKLSAgICAg
ICAgICAgIGlmIGFyZyBub3QgaW4gc2VsZi5maXh0dXJlbmFtZXM6Ci0gICAgICAgICAgICAgICAg
aWYgYXJnIGluIGRlZmF1bHRfYXJnX25hbWVzOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgIiVyIGFscmVhZHkgdGFrZXMgYW4g
YXJndW1lbnQgJXIgd2l0aCBhIGRlZmF1bHQgdmFsdWUiCi0gICAgICAgICAgICAgICAgICAgICAg
ICAlIChzZWxmLmZ1bmN0aW9uLCBhcmcpCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGluZGlyZWN0
LCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAiZml4dHVy
ZSIgaWYgYXJnIGluIGluZGlyZWN0IGVsc2UgImFyZ3VtZW50IgotICAgICAgICAgICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICJmaXh0dXJlIiBpZiBpbmRp
cmVjdCBlbHNlICJhcmd1bWVudCIKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiJXIgdXNlcyBubyAlcyAlciIgJSAoc2VsZi5mdW5jdGlvbiwgbmFtZSwgYXJnKSkKKyAgICAg
ICAgc2VsZi5fdmFsaWRhdGVfaWZfdXNpbmdfYXJnX25hbWVzKGFyZ25hbWVzLCBpbmRpcmVjdCkK
IAotICAgICAgICBpZiBpbmRpcmVjdCBpcyBUcnVlOgotICAgICAgICAgICAgdmFsdHlwZXMgPSBk
aWN0LmZyb21rZXlzKGFyZ25hbWVzLCAicGFyYW1zIikKLSAgICAgICAgZWxpZiBpbmRpcmVjdCBp
cyBGYWxzZToKLSAgICAgICAgICAgIHZhbHR5cGVzID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywg
ImZ1bmNhcmdzIikKLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKGluZGlyZWN0LCAodHVwbGUsIGxp
c3QpKToKLSAgICAgICAgICAgIHZhbHR5cGVzID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywgImZ1
bmNhcmdzIikKLSAgICAgICAgICAgIGZvciBhcmcgaW4gaW5kaXJlY3Q6Ci0gICAgICAgICAgICAg
ICAgaWYgYXJnIG5vdCBpbiBhcmduYW1lczoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICJpbmRpcmVjdCBnaXZlbiB0byAlcjog
Zml4dHVyZSAlciBkb2Vzbid0IGV4aXN0IgotICAgICAgICAgICAgICAgICAgICAgICAgJSAoc2Vs
Zi5mdW5jdGlvbiwgYXJnKQotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAg
dmFsdHlwZXNbYXJnXSA9ICJwYXJhbXMiCi0gICAgICAgIGlkZm4gPSBOb25lCi0gICAgICAgIGlm
IGNhbGxhYmxlKGlkcyk6Ci0gICAgICAgICAgICBpZGZuID0gaWRzCi0gICAgICAgICAgICBpZHMg
PSBOb25lCi0gICAgICAgIGlmIGlkczoKLSAgICAgICAgICAgIGlmIGxlbihpZHMpICE9IGxlbihw
YXJhbWV0ZXJzKToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAg
ICAgICAgICAgICAiJWQgdGVzdHMgc3BlY2lmaWVkIHdpdGggJWQgaWRzIiAlIChsZW4ocGFyYW1l
dGVycyksIGxlbihpZHMpKQotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGZvciBpZF92
YWx1ZSBpbiBpZHM6Ci0gICAgICAgICAgICAgICAgaWYgaWRfdmFsdWUgaXMgbm90IE5vbmUgYW5k
IG5vdCBpc2luc3RhbmNlKGlkX3ZhbHVlLCBzaXguc3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAg
ICAgICAgICAgbXNnID0gImlkcyBtdXN0IGJlIGxpc3Qgb2Ygc3RyaW5ncywgZm91bmQ6ICVzICh0
eXBlOiAlcykiCi0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAg
ICAgICAgICAgICAgICAgICBtc2cgJSAoc2FmZXJlcHIoaWRfdmFsdWUpLCB0eXBlKGlkX3ZhbHVl
KS5fX25hbWVfXykKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICBpZHMgPSBpZG1ha2Vy
KGFyZ25hbWVzLCBwYXJhbWV0ZXJzLCBpZGZuLCBpZHMsIHNlbGYuY29uZmlnKQorICAgICAgICBh
cmdfdmFsdWVzX3R5cGVzID0gc2VsZi5fcmVzb2x2ZV9hcmdfdmFsdWVfdHlwZXMoYXJnbmFtZXMs
IGluZGlyZWN0KQorCisgICAgICAgIGlkcyA9IHNlbGYuX3Jlc29sdmVfYXJnX2lkcyhhcmduYW1l
cywgaWRzLCBwYXJhbWV0ZXJzLCBpdGVtPXNlbGYuZGVmaW5pdGlvbikKKworICAgICAgICBzY29w
ZW51bSA9IHNjb3BlMmluZGV4KAorICAgICAgICAgICAgc2NvcGUsIGRlc2NyPSJwYXJhbWV0cml6
ZSgpIGNhbGwgaW4ge30iLmZvcm1hdChzZWxmLmZ1bmN0aW9uLl9fbmFtZV9fKQorICAgICAgICAp
CisKKyAgICAgICAgIyBjcmVhdGUgdGhlIG5ldyBjYWxsczogaWYgd2UgYXJlIHBhcmFtZXRyaXpl
KCkgbXVsdGlwbGUgdGltZXMgKGJ5IGFwcGx5aW5nIHRoZSBkZWNvcmF0b3IKKyAgICAgICAgIyBt
b3JlIHRoYW4gb25jZSkgdGhlbiB3ZSBhY2N1bXVsYXRlIHRob3NlIGNhbGxzIGdlbmVyYXRpbmcg
dGhlIGNhcnRlc2lhbiBwcm9kdWN0CisgICAgICAgICMgb2YgYWxsIGNhbGxzCiAgICAgICAgIG5l
d2NhbGxzID0gW10KICAgICAgICAgZm9yIGNhbGxzcGVjIGluIHNlbGYuX2NhbGxzIG9yIFtDYWxs
U3BlYzIoc2VsZildOgotICAgICAgICAgICAgZWxlbWVudHMgPSB6aXAoaWRzLCBwYXJhbWV0ZXJz
LCBjb3VudCgpKQotICAgICAgICAgICAgZm9yIGFfaWQsIHBhcmFtLCBwYXJhbV9pbmRleCBpbiBl
bGVtZW50czoKLSAgICAgICAgICAgICAgICBpZiBsZW4ocGFyYW0udmFsdWVzKSAhPSBsZW4oYXJn
bmFtZXMpOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAg
ICAgICAgICAgICAgICAgJ0luICJwYXJhbWV0cml6ZSIgdGhlIG51bWJlciBvZiB2YWx1ZXMgKHt9
KSBtdXN0IGJlICcKLSAgICAgICAgICAgICAgICAgICAgICAgICJlcXVhbCB0byB0aGUgbnVtYmVy
IG9mIG5hbWVzICh7fSkiLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJh
bS52YWx1ZXMsIGFyZ25hbWVzCi0gICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAg
ICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBuZXdjYWxsc3BlYyA9IGNhbGxzcGVjLmNvcHko
c2VsZikKKyAgICAgICAgICAgIGZvciBwYXJhbV9pbmRleCwgKHBhcmFtX2lkLCBwYXJhbV9zZXQp
IGluIGVudW1lcmF0ZSh6aXAoaWRzLCBwYXJhbWV0ZXJzKSk6CisgICAgICAgICAgICAgICAgbmV3
Y2FsbHNwZWMgPSBjYWxsc3BlYy5jb3B5KCkKICAgICAgICAgICAgICAgICBuZXdjYWxsc3BlYy5z
ZXRtdWx0aTIoCi0gICAgICAgICAgICAgICAgICAgIHZhbHR5cGVzLAorICAgICAgICAgICAgICAg
ICAgICBhcmdfdmFsdWVzX3R5cGVzLAogICAgICAgICAgICAgICAgICAgICBhcmduYW1lcywKLSAg
ICAgICAgICAgICAgICAgICAgcGFyYW0udmFsdWVzLAotICAgICAgICAgICAgICAgICAgICBhX2lk
LAotICAgICAgICAgICAgICAgICAgICBwYXJhbS5tYXJrcywKKyAgICAgICAgICAgICAgICAgICAg
cGFyYW1fc2V0LnZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1faWQsCisgICAgICAg
ICAgICAgICAgICAgIHBhcmFtX3NldC5tYXJrcywKICAgICAgICAgICAgICAgICAgICAgc2NvcGVu
dW0sCiAgICAgICAgICAgICAgICAgICAgIHBhcmFtX2luZGV4LAogICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgICAgICBuZXdjYWxscy5hcHBlbmQobmV3Y2FsbHNwZWMpCiAgICAgICAgIHNl
bGYuX2NhbGxzID0gbmV3Y2FsbHMKIAotICAgIGRlZiBhZGRjYWxsKHNlbGYsIGZ1bmNhcmdzPU5v
bmUsIGlkPU5PVFNFVCwgcGFyYW09Tk9UU0VUKToKLSAgICAgICAgIiIiIEFkZCBhIG5ldyBjYWxs
IHRvIHRoZSB1bmRlcmx5aW5nIHRlc3QgZnVuY3Rpb24gZHVyaW5nIHRoZSBjb2xsZWN0aW9uIHBo
YXNlIG9mIGEgdGVzdCBydW4uCi0KLSAgICAgICAgLi4gZGVwcmVjYXRlZDo6IDMuMworICAgIGRl
ZiBfcmVzb2x2ZV9hcmdfaWRzKHNlbGYsIGFyZ25hbWVzLCBpZHMsIHBhcmFtZXRlcnMsIGl0ZW0p
OgorICAgICAgICAiIiJSZXNvbHZlcyB0aGUgYWN0dWFsIGlkcyBmb3IgdGhlIGdpdmVuIGFyZ25h
bWVzLCBiYXNlZCBvbiB0aGUgYGBpZHNgYCBwYXJhbWV0ZXIgZ2l2ZW4KKyAgICAgICAgdG8gYGBw
YXJhbWV0cml6ZWBgLgogCi0gICAgICAgICAgICBVc2UgOm1ldGg6YHBhcmFtZXRyaXplYCBpbnN0
ZWFkLgotCi0gICAgICAgIE5vdGUgdGhhdCByZXF1ZXN0LmFkZGNhbGwoKSBpcyBjYWxsZWQgZHVy
aW5nIHRoZSB0ZXN0IGNvbGxlY3Rpb24gcGhhc2UgcHJpb3IgYW5kCi0gICAgICAgIGluZGVwZW5k
ZW50bHkgdG8gYWN0dWFsIHRlc3QgZXhlY3V0aW9uLiAgWW91IHNob3VsZCBvbmx5IHVzZSBhZGRj
YWxsKCkKLSAgICAgICAgaWYgeW91IG5lZWQgdG8gc3BlY2lmeSBtdWx0aXBsZSBhcmd1bWVudHMg
b2YgYSB0ZXN0IGZ1bmN0aW9uLgotCi0gICAgICAgIDphcmcgZnVuY2FyZ3M6IGFyZ3VtZW50IGtl
eXdvcmQgZGljdGlvbmFyeSB1c2VkIHdoZW4gaW52b2tpbmcKLSAgICAgICAgICAgIHRoZSB0ZXN0
IGZ1bmN0aW9uLgorICAgICAgICA6cGFyYW0gTGlzdFtzdHJdIGFyZ25hbWVzOiBsaXN0IG9mIGFy
Z3VtZW50IG5hbWVzIHBhc3NlZCB0byBgYHBhcmFtZXRyaXplKClgYC4KKyAgICAgICAgOnBhcmFt
IGlkczogdGhlIGlkcyBwYXJhbWV0ZXIgb2YgdGhlIHBhcmFtZXRyaXplZCBjYWxsIChzZWUgZG9j
cykuCisgICAgICAgIDpwYXJhbSBMaXN0W1BhcmFtZXRlclNldF0gcGFyYW1ldGVyczogdGhlIGxp
c3Qgb2YgcGFyYW1ldGVyIHZhbHVlcywgc2FtZSBzaXplIGFzIGBgYXJnbmFtZXNgYC4KKyAgICAg
ICAgOnBhcmFtIEl0ZW0gaXRlbTogdGhlIGl0ZW0gdGhhdCBnZW5lcmF0ZWQgdGhpcyBwYXJhbWV0
cml6ZWQgY2FsbC4KKyAgICAgICAgOnJ0eXBlOiBMaXN0W3N0cl0KKyAgICAgICAgOnJldHVybjog
dGhlIGxpc3Qgb2YgaWRzIGZvciBlYWNoIGFyZ25hbWUgZ2l2ZW4KKyAgICAgICAgIiIiCisgICAg
ICAgIGZyb20gX3B5dGVzdC5faW8uc2FmZXJlcHIgaW1wb3J0IHNhZmVyZXByCiAKLSAgICAgICAg
OmFyZyBpZDogdXNlZCBmb3IgcmVwb3J0aW5nIGFuZCBpZGVudGlmaWNhdGlvbiBwdXJwb3Nlcy4g
IElmIHlvdQotICAgICAgICAgICAgZG9uJ3Qgc3VwcGx5IGFuIGBpZGAgYW4gYXV0b21hdGljIHVu
aXF1ZSBpZCB3aWxsIGJlIGdlbmVyYXRlZC4KKyAgICAgICAgaWRmbiA9IE5vbmUKKyAgICAgICAg
aWYgY2FsbGFibGUoaWRzKToKKyAgICAgICAgICAgIGlkZm4gPSBpZHMKKyAgICAgICAgICAgIGlk
cyA9IE5vbmUKKyAgICAgICAgaWYgaWRzOgorICAgICAgICAgICAgZnVuY19uYW1lID0gc2VsZi5m
dW5jdGlvbi5fX25hbWVfXworICAgICAgICAgICAgaWYgbGVuKGlkcykgIT0gbGVuKHBhcmFtZXRl
cnMpOgorICAgICAgICAgICAgICAgIG1zZyA9ICJJbiB7fToge30gcGFyYW1ldGVyIHNldHMgc3Bl
Y2lmaWVkLCB3aXRoIGRpZmZlcmVudCBudW1iZXIgb2YgaWRzOiB7fSIKKyAgICAgICAgICAgICAg
ICBmYWlsKG1zZy5mb3JtYXQoZnVuY19uYW1lLCBsZW4ocGFyYW1ldGVycyksIGxlbihpZHMpKSwg
cHl0cmFjZT1GYWxzZSkKKyAgICAgICAgICAgIGZvciBpZF92YWx1ZSBpbiBpZHM6CisgICAgICAg
ICAgICAgICAgaWYgaWRfdmFsdWUgaXMgbm90IE5vbmUgYW5kIG5vdCBpc2luc3RhbmNlKGlkX3Zh
bHVlLCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gIkluIHt9
OiBpZHMgbXVzdCBiZSBsaXN0IG9mIHN0cmluZ3MsIGZvdW5kOiB7fSAodHlwZTogeyFyfSkiCisg
ICAgICAgICAgICAgICAgICAgIGZhaWwoCisgICAgICAgICAgICAgICAgICAgICAgICBtc2cuZm9y
bWF0KGZ1bmNfbmFtZSwgc2FmZXJlcHIoaWRfdmFsdWUpLCB0eXBlKGlkX3ZhbHVlKSksCisgICAg
ICAgICAgICAgICAgICAgICAgICBweXRyYWNlPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAp
CisgICAgICAgIGlkcyA9IGlkbWFrZXIoYXJnbmFtZXMsIHBhcmFtZXRlcnMsIGlkZm4sIGlkcywg
c2VsZi5jb25maWcsIGl0ZW09aXRlbSkKKyAgICAgICAgcmV0dXJuIGlkcworCisgICAgZGVmIF9y
ZXNvbHZlX2FyZ192YWx1ZV90eXBlcyhzZWxmLCBhcmduYW1lcywgaW5kaXJlY3QpOgorICAgICAg
ICAiIiJSZXNvbHZlcyBpZiBlYWNoIHBhcmFtZXRyaXplZCBhcmd1bWVudCBtdXN0IGJlIGNvbnNp
ZGVyZWQgYSBwYXJhbWV0ZXIgdG8gYSBmaXh0dXJlIG9yIGEgImZ1bmNhcmciCisgICAgICAgIHRv
IHRoZSBmdW5jdGlvbiwgYmFzZWQgb24gdGhlIGBgaW5kaXJlY3RgYCBwYXJhbWV0ZXIgb2YgdGhl
IHBhcmFtZXRyaXplZCgpIGNhbGwuCisKKyAgICAgICAgOnBhcmFtIExpc3Rbc3RyXSBhcmduYW1l
czogbGlzdCBvZiBhcmd1bWVudCBuYW1lcyBwYXNzZWQgdG8gYGBwYXJhbWV0cml6ZSgpYGAuCisg
ICAgICAgIDpwYXJhbSBpbmRpcmVjdDogc2FtZSBgYGluZGlyZWN0YGAgcGFyYW1ldGVyIG9mIGBg
cGFyYW1ldHJpemUoKWBgLgorICAgICAgICA6cnR5cGU6IERpY3Rbc3RyLCBzdHJdCisgICAgICAg
ICAgICBBIGRpY3QgbWFwcGluZyBlYWNoIGFyZyBuYW1lIHRvIGVpdGhlcjoKKyAgICAgICAgICAg
ICogInBhcmFtcyIgaWYgdGhlIGFyZ25hbWUgc2hvdWxkIGJlIHRoZSBwYXJhbWV0ZXIgb2YgYSBm
aXh0dXJlIG9mIHRoZSBzYW1lIG5hbWUuCisgICAgICAgICAgICAqICJmdW5jYXJncyIgaWYgdGhl
IGFyZ25hbWUgc2hvdWxkIGJlIGEgcGFyYW1ldGVyIHRvIHRoZSBwYXJhbWV0cml6ZWQgdGVzdCBm
dW5jdGlvbi4KKyAgICAgICAgIiIiCisgICAgICAgIHZhbHR5cGVzID0ge30KKyAgICAgICAgaWYg
aW5kaXJlY3QgaXMgVHJ1ZToKKyAgICAgICAgICAgIHZhbHR5cGVzID0gZGljdC5mcm9ta2V5cyhh
cmduYW1lcywgInBhcmFtcyIpCisgICAgICAgIGVsaWYgaW5kaXJlY3QgaXMgRmFsc2U6CisgICAg
ICAgICAgICB2YWx0eXBlcyA9IGRpY3QuZnJvbWtleXMoYXJnbmFtZXMsICJmdW5jYXJncyIpCisg
ICAgICAgIGVsaWYgaXNpbnN0YW5jZShpbmRpcmVjdCwgKHR1cGxlLCBsaXN0KSk6CisgICAgICAg
ICAgICB2YWx0eXBlcyA9IGRpY3QuZnJvbWtleXMoYXJnbmFtZXMsICJmdW5jYXJncyIpCisgICAg
ICAgICAgICBmb3IgYXJnIGluIGluZGlyZWN0OgorICAgICAgICAgICAgICAgIGlmIGFyZyBub3Qg
aW4gYXJnbmFtZXM6CisgICAgICAgICAgICAgICAgICAgIGZhaWwoCisgICAgICAgICAgICAgICAg
ICAgICAgICAiSW4ge306IGluZGlyZWN0IGZpeHR1cmUgJ3t9JyBkb2Vzbid0IGV4aXN0Ii5mb3Jt
YXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbi5fX25hbWVfXywg
YXJnCisgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAg
cHl0cmFjZT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHZh
bHR5cGVzW2FyZ10gPSAicGFyYW1zIgorICAgICAgICByZXR1cm4gdmFsdHlwZXMKIAotICAgICAg
ICA6YXJnIHBhcmFtOiBhIHBhcmFtZXRlciB3aGljaCB3aWxsIGJlIGV4cG9zZWQgdG8gYSBsYXRl
ciBmaXh0dXJlIGZ1bmN0aW9uCi0gICAgICAgICAgICBpbnZvY2F0aW9uIHRocm91Z2ggdGhlIGBg
cmVxdWVzdC5wYXJhbWBgIGF0dHJpYnV0ZS4KKyAgICBkZWYgX3ZhbGlkYXRlX2lmX3VzaW5nX2Fy
Z19uYW1lcyhzZWxmLCBhcmduYW1lcywgaW5kaXJlY3QpOgogICAgICAgICAiIiIKLSAgICAgICAg
aWYgc2VsZi5jb25maWc6Ci0gICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJuKAotICAgICAgICAg
ICAgICAgICJDMSIsIG1lc3NhZ2U9ZGVwcmVjYXRlZC5NRVRBRlVOQ19BRERfQ0FMTCwgZnNsb2Nh
dGlvbj1Ob25lCi0gICAgICAgICAgICApCi0gICAgICAgIGFzc2VydCBmdW5jYXJncyBpcyBOb25l
IG9yIGlzaW5zdGFuY2UoZnVuY2FyZ3MsIGRpY3QpCi0gICAgICAgIGlmIGZ1bmNhcmdzIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgZm9yIG5hbWUgaW4gZnVuY2FyZ3M6Ci0gICAgICAgICAgICAg
ICAgaWYgbmFtZSBub3QgaW4gc2VsZi5maXh0dXJlbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAg
IGZhaWwoImZ1bmNhcmcgJXIgbm90IHVzZWQgaW4gdGhpcyBmdW5jdGlvbi4iICUgbmFtZSkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGZ1bmNhcmdzID0ge30KLSAgICAgICAgaWYgaWQgaXMg
Tm9uZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImlkPU5vbmUgbm90IGFsbG93ZWQi
KQotICAgICAgICBpZiBpZCBpcyBOT1RTRVQ6Ci0gICAgICAgICAgICBpZCA9IGxlbihzZWxmLl9j
YWxscykKLSAgICAgICAgaWQgPSBzdHIoaWQpCi0gICAgICAgIGlmIGlkIGluIHNlbGYuX2lkczoK
LSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImR1cGxpY2F0ZSBpZCAlciIgJSBpZCkKLSAg
ICAgICAgc2VsZi5faWRzLmFkZChpZCkKKyAgICAgICAgQ2hlY2sgaWYgYWxsIGFyZ25hbWVzIGFy
ZSBiZWluZyB1c2VkLCBieSBkZWZhdWx0IHZhbHVlcywgb3IgZGlyZWN0bHkvaW5kaXJlY3RseS4K
IAotICAgICAgICBjcyA9IENhbGxTcGVjMihzZWxmKQotICAgICAgICBjcy5zZXRhbGwoZnVuY2Fy
Z3MsIGlkLCBwYXJhbSkKLSAgICAgICAgc2VsZi5fY2FsbHMuYXBwZW5kKGNzKQorICAgICAgICA6
cGFyYW0gTGlzdFtzdHJdIGFyZ25hbWVzOiBsaXN0IG9mIGFyZ3VtZW50IG5hbWVzIHBhc3NlZCB0
byBgYHBhcmFtZXRyaXplKClgYC4KKyAgICAgICAgOnBhcmFtIGluZGlyZWN0OiBzYW1lIGBgaW5k
aXJlY3RgYCBwYXJhbWV0ZXIgb2YgYGBwYXJhbWV0cml6ZSgpYGAuCisgICAgICAgIDpyYWlzZSBW
YWx1ZUVycm9yOiBpZiB2YWxpZGF0aW9uIGZhaWxzLgorICAgICAgICAiIiIKKyAgICAgICAgZGVm
YXVsdF9hcmdfbmFtZXMgPSBzZXQoZ2V0X2RlZmF1bHRfYXJnX25hbWVzKHNlbGYuZnVuY3Rpb24p
KQorICAgICAgICBmdW5jX25hbWUgPSBzZWxmLmZ1bmN0aW9uLl9fbmFtZV9fCisgICAgICAgIGZv
ciBhcmcgaW4gYXJnbmFtZXM6CisgICAgICAgICAgICBpZiBhcmcgbm90IGluIHNlbGYuZml4dHVy
ZW5hbWVzOgorICAgICAgICAgICAgICAgIGlmIGFyZyBpbiBkZWZhdWx0X2FyZ19uYW1lczoKKyAg
ICAgICAgICAgICAgICAgICAgZmFpbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICJJbiB7fTog
ZnVuY3Rpb24gYWxyZWFkeSB0YWtlcyBhbiBhcmd1bWVudCAne30nIHdpdGggYSBkZWZhdWx0IHZh
bHVlIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY19uYW1lLCBhcmcK
KyAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICBweXRy
YWNlPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpbmRpcmVjdCwgKHR1cGxlLCBsaXN0
KSk6CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gImZpeHR1cmUiIGlmIGFyZyBpbiBp
bmRpcmVjdCBlbHNlICJhcmd1bWVudCIKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG5hbWUgPSAiZml4dHVyZSIgaWYgaW5kaXJlY3QgZWxzZSAiYXJn
dW1lbnQiCisgICAgICAgICAgICAgICAgICAgIGZhaWwoCisgICAgICAgICAgICAgICAgICAgICAg
ICAiSW4ge306IGZ1bmN0aW9uIHVzZXMgbm8ge30gJ3t9JyIuZm9ybWF0KGZ1bmNfbmFtZSwgbmFt
ZSwgYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHB5dHJhY2U9RmFsc2UsCisgICAgICAg
ICAgICAgICAgICAgICkKIAogCiBkZWYgX2ZpbmRfcGFyYW1ldHJpemVkX3Njb3BlKGFyZ25hbWVz
LCBhcmcyZml4dHVyZWRlZnMsIGluZGlyZWN0KToKQEAgLTEwMDMsMTMgKzExNDAsMTggQEAgZGVm
IF9maW5kX3BhcmFtZXRyaXplZF9zY29wZShhcmduYW1lcywgYXJnMmZpeHR1cmVkZWZzLCBpbmRp
cmVjdCk6CiAgICAgIiIiCiAgICAgZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBzY29wZXMK
IAotICAgIGluZGlyZWN0X2FzX2xpc3QgPSBpc2luc3RhbmNlKGluZGlyZWN0LCAobGlzdCwgdHVw
bGUpKQotICAgIGFsbF9hcmd1bWVudHNfYXJlX2ZpeHR1cmVzID0gaW5kaXJlY3QgaXMgVHJ1ZSBv
ciBpbmRpcmVjdF9hc19saXN0IGFuZCBsZW4oCi0gICAgICAgIGluZGlyZWN0Ci0gICAgKSA9PSBh
cmduYW1lcworICAgIGlmIGlzaW5zdGFuY2UoaW5kaXJlY3QsIChsaXN0LCB0dXBsZSkpOgorICAg
ICAgICBhbGxfYXJndW1lbnRzX2FyZV9maXh0dXJlcyA9IGxlbihpbmRpcmVjdCkgPT0gbGVuKGFy
Z25hbWVzKQorICAgIGVsc2U6CisgICAgICAgIGFsbF9hcmd1bWVudHNfYXJlX2ZpeHR1cmVzID0g
Ym9vbChpbmRpcmVjdCkKKwogICAgIGlmIGFsbF9hcmd1bWVudHNfYXJlX2ZpeHR1cmVzOgogICAg
ICAgICBmaXh0dXJlZGVmcyA9IGFyZzJmaXh0dXJlZGVmcyBvciB7fQotICAgICAgICB1c2VkX3Nj
b3BlcyA9IFtmaXh0dXJlZGVmWzBdLnNjb3BlIGZvciBuYW1lLCBmaXh0dXJlZGVmIGluIGZpeHR1
cmVkZWZzLml0ZW1zKCldCisgICAgICAgIHVzZWRfc2NvcGVzID0gWworICAgICAgICAgICAgZml4
dHVyZWRlZlswXS5zY29wZQorICAgICAgICAgICAgZm9yIG5hbWUsIGZpeHR1cmVkZWYgaW4gZml4
dHVyZWRlZnMuaXRlbXMoKQorICAgICAgICAgICAgaWYgbmFtZSBpbiBhcmduYW1lcworICAgICAg
ICBdCiAgICAgICAgIGlmIHVzZWRfc2NvcGVzOgogICAgICAgICAgICAgIyBUYWtlcyB0aGUgbW9z
dCBuYXJyb3cgc2NvcGUgZnJvbSB1c2VkIGZpeHR1cmVzCiAgICAgICAgICAgICBmb3Igc2NvcGUg
aW4gcmV2ZXJzZWQoc2NvcGVzKToKQEAgLTEwMTksMjQgKzExNjEsMzAgQEAgZGVmIF9maW5kX3Bh
cmFtZXRyaXplZF9zY29wZShhcmduYW1lcywgYXJnMmZpeHR1cmVkZWZzLCBpbmRpcmVjdCk6CiAg
ICAgcmV0dXJuICJmdW5jdGlvbiIKIAogCi1kZWYgX2lkdmFsKHZhbCwgYXJnbmFtZSwgaWR4LCBp
ZGZuLCBjb25maWc9Tm9uZSk6CitkZWYgX2FzY2lpX2VzY2FwZWRfYnlfY29uZmlnKHZhbCwgY29u
ZmlnKToKKyAgICBpZiBjb25maWcgaXMgTm9uZToKKyAgICAgICAgZXNjYXBlX29wdGlvbiA9IEZh
bHNlCisgICAgZWxzZToKKyAgICAgICAgZXNjYXBlX29wdGlvbiA9IGNvbmZpZy5nZXRpbmkoCisg
ICAgICAgICAgICAiZGlzYWJsZV90ZXN0X2lkX2VzY2FwaW5nX2FuZF9mb3JmZWl0X2FsbF9yaWdo
dHNfdG9fY29tbXVuaXR5X3N1cHBvcnQiCisgICAgICAgICkKKyAgICByZXR1cm4gdmFsIGlmIGVz
Y2FwZV9vcHRpb24gZWxzZSBhc2NpaV9lc2NhcGVkKHZhbCkKKworCitkZWYgX2lkdmFsKHZhbCwg
YXJnbmFtZSwgaWR4LCBpZGZuLCBpdGVtLCBjb25maWcpOgogICAgIGlmIGlkZm46Ci0gICAgICAg
IHMgPSBOb25lCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHMgPSBpZGZuKHZhbCkKLSAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIGdlbmVyYXRlZF9pZCA9IGlkZm4odmFs
KQorICAgICAgICAgICAgaWYgZ2VuZXJhdGVkX2lkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
ICAgIHZhbCA9IGdlbmVyYXRlZF9pZAorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAg
ICAgICAgICAgICAjIFNlZSBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzIxNjkKLSAgICAgICAgICAgIGltcG9ydCB3YXJuaW5ncwotCi0gICAgICAgICAg
ICBtc2cgPSAiUmFpc2VkIHdoaWxlIHRyeWluZyB0byBkZXRlcm1pbmUgaWQgb2YgcGFyYW1ldGVy
ICVzIGF0IHBvc2l0aW9uICVkLiIgJSAoCi0gICAgICAgICAgICAgICAgYXJnbmFtZSwgaWR4Ci0g
ICAgICAgICAgICApCi0gICAgICAgICAgICBtc2cgKz0gIlxuVXBkYXRlIHlvdXIgY29kZSBhcyB0
aGlzIHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4gcHl0ZXN0LTQuMC4iCi0gICAgICAgICAgICB3YXJu
aW5ncy53YXJuKG1zZywgRGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICBpZiBzOgotICAgICAg
ICAgICAgcmV0dXJuIGFzY2lpX2VzY2FwZWQocykKLQotICAgIGlmIGNvbmZpZzoKKyAgICAgICAg
ICAgIG1zZyA9ICJ7fTogZXJyb3IgcmFpc2VkIHdoaWxlIHRyeWluZyB0byBkZXRlcm1pbmUgaWQg
b2YgcGFyYW1ldGVyICd7fScgYXQgcG9zaXRpb24ge31cbiIKKyAgICAgICAgICAgIG1zZyA9IG1z
Zy5mb3JtYXQoaXRlbS5ub2RlaWQsIGFyZ25hbWUsIGlkeCkKKyAgICAgICAgICAgICMgd2Ugb25s
eSBhcHBlbmQgdGhlIGV4Y2VwdGlvbiB0eXBlIGFuZCBtZXNzYWdlIGJlY2F1c2Ugb24gUHl0aG9u
IDIgcmVyYWlzZSBkb2VzIG5vdGhpbmcKKyAgICAgICAgICAgIG1zZyArPSAiICB7fToge31cbiIu
Zm9ybWF0KHR5cGUoZSkuX19uYW1lX18sIGUpCisgICAgICAgICAgICBzaXgucmFpc2VfZnJvbShW
YWx1ZUVycm9yKG1zZyksIGUpCisgICAgZWxpZiBjb25maWc6CiAgICAgICAgIGhvb2tfaWQgPSBj
b25maWcuaG9vay5weXRlc3RfbWFrZV9wYXJhbWV0cml6ZV9pZCgKICAgICAgICAgICAgIGNvbmZp
Zz1jb25maWcsIHZhbD12YWwsIGFyZ25hbWU9YXJnbmFtZQogICAgICAgICApCkBAIC0xMDQ0LDgg
KzExOTIsOCBAQCBkZWYgX2lkdmFsKHZhbCwgYXJnbmFtZSwgaWR4LCBpZGZuLCBjb25maWc9Tm9u
ZSk6CiAgICAgICAgICAgICByZXR1cm4gaG9va19pZAogCiAgICAgaWYgaXNpbnN0YW5jZSh2YWws
IFNUUklOR19UWVBFUyk6Ci0gICAgICAgIHJldHVybiBhc2NpaV9lc2NhcGVkKHZhbCkKLSAgICBl
bGlmIGlzaW5zdGFuY2UodmFsLCAoZmxvYXQsIGludCwgYm9vbCwgTm9uZVR5cGUpKToKKyAgICAg
ICAgcmV0dXJuIF9hc2NpaV9lc2NhcGVkX2J5X2NvbmZpZyh2YWwsIGNvbmZpZykKKyAgICBlbGlm
IHZhbCBpcyBOb25lIG9yIGlzaW5zdGFuY2UodmFsLCAoZmxvYXQsIGludCwgYm9vbCkpOgogICAg
ICAgICByZXR1cm4gc3RyKHZhbCkKICAgICBlbGlmIGlzaW5zdGFuY2UodmFsLCBSRUdFWF9UWVBF
KToKICAgICAgICAgcmV0dXJuIGFzY2lpX2VzY2FwZWQodmFsLnBhdHRlcm4pCkBAIC0xMDU2LDIy
ICsxMjA0LDIyIEBAIGRlZiBfaWR2YWwodmFsLCBhcmduYW1lLCBpZHgsIGlkZm4sIGNvbmZpZz1O
b25lKToKICAgICByZXR1cm4gc3RyKGFyZ25hbWUpICsgc3RyKGlkeCkKIAogCi1kZWYgX2lkdmFs
c2V0KGlkeCwgcGFyYW1ldGVyc2V0LCBhcmduYW1lcywgaWRmbiwgaWRzLCBjb25maWc9Tm9uZSk6
CitkZWYgX2lkdmFsc2V0KGlkeCwgcGFyYW1ldGVyc2V0LCBhcmduYW1lcywgaWRmbiwgaWRzLCBp
dGVtLCBjb25maWcpOgogICAgIGlmIHBhcmFtZXRlcnNldC5pZCBpcyBub3QgTm9uZToKICAgICAg
ICAgcmV0dXJuIHBhcmFtZXRlcnNldC5pZAogICAgIGlmIGlkcyBpcyBOb25lIG9yIChpZHggPj0g
bGVuKGlkcykgb3IgaWRzW2lkeF0gaXMgTm9uZSk6CiAgICAgICAgIHRoaXNfaWQgPSBbCi0gICAg
ICAgICAgICBfaWR2YWwodmFsLCBhcmduYW1lLCBpZHgsIGlkZm4sIGNvbmZpZykKKyAgICAgICAg
ICAgIF9pZHZhbCh2YWwsIGFyZ25hbWUsIGlkeCwgaWRmbiwgaXRlbT1pdGVtLCBjb25maWc9Y29u
ZmlnKQogICAgICAgICAgICAgZm9yIHZhbCwgYXJnbmFtZSBpbiB6aXAocGFyYW1ldGVyc2V0LnZh
bHVlcywgYXJnbmFtZXMpCiAgICAgICAgIF0KICAgICAgICAgcmV0dXJuICItIi5qb2luKHRoaXNf
aWQpCiAgICAgZWxzZToKLSAgICAgICAgcmV0dXJuIGFzY2lpX2VzY2FwZWQoaWRzW2lkeF0pCisg
ICAgICAgIHJldHVybiBfYXNjaWlfZXNjYXBlZF9ieV9jb25maWcoaWRzW2lkeF0sIGNvbmZpZykK
IAogCi1kZWYgaWRtYWtlcihhcmduYW1lcywgcGFyYW1ldGVyc2V0cywgaWRmbj1Ob25lLCBpZHM9
Tm9uZSwgY29uZmlnPU5vbmUpOgorZGVmIGlkbWFrZXIoYXJnbmFtZXMsIHBhcmFtZXRlcnNldHMs
IGlkZm49Tm9uZSwgaWRzPU5vbmUsIGNvbmZpZz1Ob25lLCBpdGVtPU5vbmUpOgogICAgIGlkcyA9
IFsKLSAgICAgICAgX2lkdmFsc2V0KHZhbGluZGV4LCBwYXJhbWV0ZXJzZXQsIGFyZ25hbWVzLCBp
ZGZuLCBpZHMsIGNvbmZpZykKKyAgICAgICAgX2lkdmFsc2V0KHZhbGluZGV4LCBwYXJhbWV0ZXJz
ZXQsIGFyZ25hbWVzLCBpZGZuLCBpZHMsIGNvbmZpZz1jb25maWcsIGl0ZW09aXRlbSkKICAgICAg
ICAgZm9yIHZhbGluZGV4LCBwYXJhbWV0ZXJzZXQgaW4gZW51bWVyYXRlKHBhcmFtZXRlcnNldHMp
CiAgICAgXQogICAgIGlmIGxlbihzZXQoaWRzKSkgIT0gbGVuKGlkcyk6CkBAIC0xMTkxLDIxICsx
MzM5LDIyIEBAIGRlZiBfc2hvd2ZpeHR1cmVzX21haW4oY29uZmlnLCBzZXNzaW9uKToKICAgICAg
ICAgICAgICAgICBjdXJyZW50bW9kdWxlID0gbW9kdWxlCiAgICAgICAgIGlmIHZlcmJvc2UgPD0g
MCBhbmQgYXJnbmFtZVswXSA9PSAiXyI6CiAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICB0
dy53cml0ZShhcmduYW1lLCBncmVlbj1UcnVlKQorICAgICAgICBpZiBmaXh0dXJlZGVmLnNjb3Bl
ICE9ICJmdW5jdGlvbiI6CisgICAgICAgICAgICB0dy53cml0ZSgiIFslcyBzY29wZV0iICUgZml4
dHVyZWRlZi5zY29wZSwgY3lhbj1UcnVlKQogICAgICAgICBpZiB2ZXJib3NlID4gMDoKLSAgICAg
ICAgICAgIGZ1bmNhcmdzcGVjID0gIiVzIC0tICVzIiAlIChhcmduYW1lLCBiZXN0cmVsKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgZnVuY2FyZ3NwZWMgPSBhcmduYW1lCi0gICAgICAgIHR3
LmxpbmUoZnVuY2FyZ3NwZWMsIGdyZWVuPVRydWUpCisgICAgICAgICAgICB0dy53cml0ZSgiIC0t
ICVzIiAlIGJlc3RyZWwsIHllbGxvdz1UcnVlKQorICAgICAgICB0dy53cml0ZSgiXG4iKQogICAg
ICAgICBsb2MgPSBnZXRsb2NhdGlvbihmaXh0dXJlZGVmLmZ1bmMsIGN1cmRpcikKICAgICAgICAg
ZG9jID0gZml4dHVyZWRlZi5mdW5jLl9fZG9jX18gb3IgIiIKICAgICAgICAgaWYgZG9jOgogICAg
ICAgICAgICAgd3JpdGVfZG9jc3RyaW5nKHR3LCBkb2MpCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICB0dy5saW5lKCIgICAgJXM6IG5vIGRvY3N0cmluZyBhdmFpbGFibGUiICUgKGxvYywpLCBy
ZWQ9VHJ1ZSkKKyAgICAgICAgdHcubGluZSgpCiAKIAotZGVmIHdyaXRlX2RvY3N0cmluZyh0dywg
ZG9jKToKLSAgICBJTkRFTlQgPSAiICAgICIKK2RlZiB3cml0ZV9kb2NzdHJpbmcodHcsIGRvYywg
aW5kZW50PSIgICAgIik6CiAgICAgZG9jID0gZG9jLnJzdHJpcCgpCiAgICAgaWYgIlxuIiBpbiBk
b2M6CiAgICAgICAgIGZpcnN0bGluZSwgcmVzdCA9IGRvYy5zcGxpdCgiXG4iLCAxKQpAQCAtMTIx
MywxOSArMTM2MiwxOSBAQCBkZWYgd3JpdGVfZG9jc3RyaW5nKHR3LCBkb2MpOgogICAgICAgICBm
aXJzdGxpbmUsIHJlc3QgPSBkb2MsICIiCiAKICAgICBpZiBmaXJzdGxpbmUuc3RyaXAoKToKLSAg
ICAgICAgdHcubGluZShJTkRFTlQgKyBmaXJzdGxpbmUuc3RyaXAoKSkKKyAgICAgICAgdHcubGlu
ZShpbmRlbnQgKyBmaXJzdGxpbmUuc3RyaXAoKSkKIAogICAgIGlmIHJlc3Q6CiAgICAgICAgIGZv
ciBsaW5lIGluIGRlZGVudChyZXN0KS5zcGxpdCgiXG4iKToKLSAgICAgICAgICAgIHR3LndyaXRl
KElOREVOVCArIGxpbmUgKyAiXG4iKQorICAgICAgICAgICAgdHcud3JpdGUoaW5kZW50ICsgbGlu
ZSArICJcbiIpCiAKIAogY2xhc3MgRnVuY3Rpb24oRnVuY3Rpb25NaXhpbiwgbm9kZXMuSXRlbSwg
Zml4dHVyZXMuRnVuY2FyZ25hbWVzQ29tcGF0QXR0cik6CiAgICAgIiIiIGEgRnVuY3Rpb24gSXRl
bSBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCBhbmQgZXhlY3V0aW5nIGEKICAgICBQeXRo
b24gdGVzdCBmdW5jdGlvbi4KICAgICAiIiIKLSAgICBfZ2VuaWQgPSBOb25lCi0gICAgIyBkaXNh
YmxlIHNpbmNlIGZ1bmN0aW9ucyBoYW5kbGUgaXQgdGhlbXNlbGZlcworCisgICAgIyBkaXNhYmxl
IHNpbmNlIGZ1bmN0aW9ucyBoYW5kbGUgaXQgdGhlbXNlbHZlcwogICAgIF9BTExPV19NQVJLRVJT
ID0gRmFsc2UKIAogICAgIGRlZiBfX2luaXRfXygKQEAgLTEyNTcsMTMgKzE0MDYsMjcgQEAgY2xh
c3MgRnVuY3Rpb24oRnVuY3Rpb25NaXhpbiwgbm9kZXMuSXRlbSwgZml4dHVyZXMuRnVuY2FyZ25h
bWVzQ29tcGF0QXR0cik6CiAgICAgICAgICAgICAgICAgIyBmZWVsIGZyZWUgdG8gY3J5LCB0aGlz
IHdhcyBicm9rZW4gZm9yIHllYXJzIGJlZm9yZQogICAgICAgICAgICAgICAgICMgYW5kIGtleXdv
cmRzIGNhbnQgZml4IGl0IHBlciBkZXNpZ24KICAgICAgICAgICAgICAgICBzZWxmLmtleXdvcmRz
W21hcmsubmFtZV0gPSBtYXJrCi0gICAgICAgICAgICBzZWxmLm93bl9tYXJrZXJzLmV4dGVuZChj
YWxsc3BlYy5tYXJrcykKKyAgICAgICAgICAgIHNlbGYub3duX21hcmtlcnMuZXh0ZW5kKG5vcm1h
bGl6ZV9tYXJrX2xpc3QoY2FsbHNwZWMubWFya3MpKQogICAgICAgICBpZiBrZXl3b3JkczoKICAg
ICAgICAgICAgIHNlbGYua2V5d29yZHMudXBkYXRlKGtleXdvcmRzKQogCisgICAgICAgICMgdG9k
bzogdGhpcyBpcyBhIGhlbGwgb2YgYSBoYWNrCisgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NTY5CisKKyAgICAgICAgc2VsZi5rZXl3b3Jkcy51
cGRhdGUoCisgICAgICAgICAgICBkaWN0LmZyb21rZXlzKAorICAgICAgICAgICAgICAgIFsKKyAg
ICAgICAgICAgICAgICAgICAgbWFyay5uYW1lCisgICAgICAgICAgICAgICAgICAgIGZvciBtYXJr
IGluIHNlbGYuaXRlcl9tYXJrZXJzKCkKKyAgICAgICAgICAgICAgICAgICAgaWYgbWFyay5uYW1l
IG5vdCBpbiBzZWxmLmtleXdvcmRzCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAg
ICBUcnVlLAorICAgICAgICAgICAgKQorICAgICAgICApCisKICAgICAgICAgaWYgZml4dHVyZWlu
Zm8gaXMgTm9uZToKICAgICAgICAgICAgIGZpeHR1cmVpbmZvID0gc2VsZi5zZXNzaW9uLl9maXh0
dXJlbWFuYWdlci5nZXRmaXh0dXJlaW5mbygKLSAgICAgICAgICAgICAgICBzZWxmLCBzZWxmLm9i
aiwgc2VsZi5jbHMsIGZ1bmNhcmdzPW5vdCBzZWxmLl9pc3lpZWxkZWRmdW5jdGlvbigpCisgICAg
ICAgICAgICAgICAgc2VsZiwgc2VsZi5vYmosIHNlbGYuY2xzLCBmdW5jYXJncz1UcnVlCiAgICAg
ICAgICAgICApCiAgICAgICAgIHNlbGYuX2ZpeHR1cmVpbmZvID0gZml4dHVyZWluZm8KICAgICAg
ICAgc2VsZi5maXh0dXJlbmFtZXMgPSBmaXh0dXJlaW5mby5uYW1lc19jbG9zdXJlCkBAIC0xMjc3
LDIzICsxNDQwLDEyIEBAIGNsYXNzIEZ1bmN0aW9uKEZ1bmN0aW9uTWl4aW4sIG5vZGVzLkl0ZW0s
IGZpeHR1cmVzLkZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgogCiAgICAgZGVmIF9pbml0cmVxdWVz
dChzZWxmKToKICAgICAgICAgc2VsZi5mdW5jYXJncyA9IHt9Ci0gICAgICAgIGlmIHNlbGYuX2lz
eWllbGRlZGZ1bmN0aW9uKCk6Ci0gICAgICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoCi0gICAg
ICAgICAgICAgICAgc2VsZiwgImNhbGxzcGVjIgotICAgICAgICAgICAgKSwgInlpZWxkZWQgZnVu
Y3Rpb25zIChkZXByZWNhdGVkKSBjYW5ub3QgaGF2ZSBmdW5jYXJncyIKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImNhbGxzcGVjIik6Ci0gICAgICAgICAgICAg
ICAgY2FsbHNwZWMgPSBzZWxmLmNhbGxzcGVjCi0gICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBj
YWxsc3BlYy5mdW5jYXJncwotICAgICAgICAgICAgICAgIHNlbGYuX2dlbmlkID0gY2FsbHNwZWMu
aWQKLSAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKGNhbGxzcGVjLCAicGFyYW0iKToKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5wYXJhbSA9IGNhbGxzcGVjLnBhcmFtCiAgICAgICAgIHNlbGYu
X3JlcXVlc3QgPSBmaXh0dXJlcy5GaXh0dXJlUmVxdWVzdChzZWxmKQogCiAgICAgQHByb3BlcnR5
CiAgICAgZGVmIGZ1bmN0aW9uKHNlbGYpOgogICAgICAgICAidW5kZXJseWluZyBweXRob24gJ2Z1
bmN0aW9uJyBvYmplY3QiCi0gICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYub2JqLCAiaW1fZnVu
YyIsIHNlbGYub2JqKQorICAgICAgICByZXR1cm4gZ2V0aW1mdW5jKHNlbGYub2JqKQogCiAgICAg
ZGVmIF9nZXRvYmooc2VsZik6CiAgICAgICAgIG5hbWUgPSBzZWxmLm5hbWUKQEAgLTEzMDcsOSAr
MTQ1OSw2IEBAIGNsYXNzIEZ1bmN0aW9uKEZ1bmN0aW9uTWl4aW4sIG5vZGVzLkl0ZW0sIGZpeHR1
cmVzLkZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgogICAgICAgICAiKGNvbXBhdG9ubHkpIGZvciBj
b2RlIGV4cGVjdGluZyBweXRlc3QtMi4yIHN0eWxlIHJlcXVlc3Qgb2JqZWN0cyIKICAgICAgICAg
cmV0dXJuIHNlbGYKIAotICAgIGRlZiBfaXN5aWVsZGVkZnVuY3Rpb24oc2VsZik6Ci0gICAgICAg
IHJldHVybiBnZXRhdHRyKHNlbGYsICJfYXJncyIsIE5vbmUpIGlzIG5vdCBOb25lCi0KICAgICBk
ZWYgcnVudGVzdChzZWxmKToKICAgICAgICAgIiIiIGV4ZWN1dGUgdGhlIHVuZGVybHlpbmcgdGVz
dCBmdW5jdGlvbi4gIiIiCiAgICAgICAgIHNlbGYuaWhvb2sucHl0ZXN0X3B5ZnVuY19jYWxsKHB5
ZnVuY2l0ZW09c2VsZikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3B5dGhv
bl9hcGkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9weXRob25fYXBpLnB5CmluZGV4IDky
NTdkMjEwYzI3MDFkN2I1NmRlYTJjY2Y4N2Y2NjU0ZjdmZWVkY2YuLmY2ZTQ3NWMzYTI0OTk2N2I2
OGJjYjk5OTRiYzQ2MTVkMWFjYzk0YjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L3B5dGhvbl9hcGkucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcHl0aG9uX2Fw
aS5weQpAQCAtMSwxNyArMSwyNSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19m
dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CisKIGltcG9ydCBtYXRoCitpbXBvcnQgcHBy
aW50CiBpbXBvcnQgc3lzCitpbXBvcnQgd2FybmluZ3MKK2Zyb20gZGVjaW1hbCBpbXBvcnQgRGVj
aW1hbAorZnJvbSBudW1iZXJzIGltcG9ydCBOdW1iZXIKIAotaW1wb3J0IHB5Ci1mcm9tIHNpeC5t
b3ZlcyBpbXBvcnQgemlwLCBmaWx0ZXJmYWxzZQogZnJvbSBtb3JlX2l0ZXJ0b29scy5tb3JlIGlt
cG9ydCBhbHdheXNfaXRlcmFibGUKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBmaWx0ZXJmYWxzZQor
ZnJvbSBzaXgubW92ZXMgaW1wb3J0IHppcAogCitpbXBvcnQgX3B5dGVzdC5fY29kZQorZnJvbSBf
cHl0ZXN0IGltcG9ydCBkZXByZWNhdGVkCiBmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBpc2Ns
YXNzCi0KLWZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IE1hcHBpbmcsIFNlcXVlbmNlCitmcm9t
IF9weXRlc3QuY29tcGF0IGltcG9ydCBJdGVyYWJsZQorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBv
cnQgTWFwcGluZworZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgU2l6ZWQKIGZyb20gX3B5dGVz
dC5jb21wYXQgaW1wb3J0IFNUUklOR19UWVBFUwotCiBmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1w
b3J0IGZhaWwKLWltcG9ydCBfcHl0ZXN0Ll9jb2RlCiAKIEJBU0VfVFlQRSA9ICh0eXBlLCBTVFJJ
TkdfVFlQRVMpCiAKQEAgLTMwLDYgKzM4LDE1IEBAIGRlZiBfY21wX3JhaXNlc190eXBlX2Vycm9y
KHNlbGYsIG90aGVyKToKICAgICApCiAKIAorZGVmIF9ub25fbnVtZXJpY190eXBlX2Vycm9yKHZh
bHVlLCBhdCk6CisgICAgYXRfc3RyID0gIiBhdCB7fSIuZm9ybWF0KGF0KSBpZiBhdCBlbHNlICIi
CisgICAgcmV0dXJuIFR5cGVFcnJvcigKKyAgICAgICAgImNhbm5vdCBtYWtlIGFwcHJveGltYXRl
IGNvbXBhcmlzb25zIHRvIG5vbi1udW1lcmljIHZhbHVlczogeyFyfSB7fSIuZm9ybWF0KAorICAg
ICAgICAgICAgdmFsdWUsIGF0X3N0cgorICAgICAgICApCisgICAgKQorCisKICMgYnVpbHRpbiBw
eXRlc3QuYXBwcm94IGhlbHBlcgogCiAKQEAgLTM5LDE1ICs1NiwxNyBAQCBjbGFzcyBBcHByb3hC
YXNlKG9iamVjdCk6CiAgICAgb3Igc2VxdWVuY2VzIG9mIG51bWJlcnMuCiAgICAgIiIiCiAKLSAg
ICAjIFRlbGwgbnVtcHkgdG8gdXNlIG91ciBgX19lcV9fYCBvcGVyYXRvciBpbnN0ZWFkIG9mIGl0
cworICAgICMgVGVsbCBudW1weSB0byB1c2Ugb3VyIGBfX2VxX19gIG9wZXJhdG9yIGluc3RlYWQg
b2YgaXRzLgogICAgIF9fYXJyYXlfdWZ1bmNfXyA9IE5vbmUKICAgICBfX2FycmF5X3ByaW9yaXR5
X18gPSAxMDAKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHBlY3RlZCwgcmVsPU5vbmUsIGFi
cz1Ob25lLCBuYW5fb2s9RmFsc2UpOgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUK
ICAgICAgICAgc2VsZi5leHBlY3RlZCA9IGV4cGVjdGVkCiAgICAgICAgIHNlbGYuYWJzID0gYWJz
CiAgICAgICAgIHNlbGYucmVsID0gcmVsCiAgICAgICAgIHNlbGYubmFuX29rID0gbmFuX29rCisg
ICAgICAgIHNlbGYuX2NoZWNrX3R5cGUoKQogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgogICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCkBAIC03NSwyMCArOTQsMzMgQEAgY2xhc3Mg
QXBwcm94QmFzZShvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcgogCisgICAgZGVmIF9jaGVja190eXBlKHNlbGYpOgorICAgICAgICAiIiIKKyAg
ICAgICAgUmFpc2UgYSBUeXBlRXJyb3IgaWYgdGhlIGV4cGVjdGVkIHZhbHVlIGlzIG5vdCBhIHZh
bGlkIHR5cGUuCisgICAgICAgICIiIgorICAgICAgICAjIFRoaXMgaXMgb25seSBhIGNvbmNlcm4g
aWYgdGhlIGV4cGVjdGVkIHZhbHVlIGlzIGEgc2VxdWVuY2UuICBJbiBldmVyeQorICAgICAgICAj
IG90aGVyIGNhc2UsIHRoZSBhcHByb3goKSBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlIGV4cGVj
dGVkIHZhbHVlIGhhcworICAgICAgICAjIGEgbnVtZXJpYyB0eXBlLiAgRm9yIHRoaXMgcmVhc29u
LCB0aGUgZGVmYXVsdCBpcyB0byBkbyBub3RoaW5nLiAgVGhlCisgICAgICAgICMgY2xhc3NlcyB0
aGF0IGRlYWwgd2l0aCBzZXF1ZW5jZXMgc2hvdWxkIHJlaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRv
CisgICAgICAgICMgcmFpc2UgaWYgdGhlcmUgYXJlIGFueSBub24tbnVtZXJpYyBlbGVtZW50cyBp
biB0aGUgc2VxdWVuY2UuCisgICAgICAgIHBhc3MKKworCitkZWYgX3JlY3Vyc2l2ZV9saXN0X21h
cChmLCB4KToKKyAgICBpZiBpc2luc3RhbmNlKHgsIGxpc3QpOgorICAgICAgICByZXR1cm4gbGlz
dChfcmVjdXJzaXZlX2xpc3RfbWFwKGYsIHhpKSBmb3IgeGkgaW4geCkKKyAgICBlbHNlOgorICAg
ICAgICByZXR1cm4gZih4KQorCiAKIGNsYXNzIEFwcHJveE51bXB5KEFwcHJveEJhc2UpOgogICAg
ICIiIgotICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgZm9yIG51bXB5IGFycmF5
cy4KKyAgICBQZXJmb3JtIGFwcHJveGltYXRlIGNvbXBhcmlzb25zIHdoZXJlIHRoZSBleHBlY3Rl
ZCB2YWx1ZSBpcyBudW1weSBhcnJheS4KICAgICAiIiIKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxm
KToKLSAgICAgICAgIyBJdCBtaWdodCBiZSBuaWNlIHRvIHJld3JpdGUgdGhpcyBmdW5jdGlvbiB0
byBhY2NvdW50IGZvciB0aGUKLSAgICAgICAgIyBzaGFwZSBvZiB0aGUgYXJyYXkuLi4KLSAgICAg
ICAgaW1wb3J0IG51bXB5IGFzIG5wCi0KLSAgICAgICAgcmV0dXJuICJhcHByb3goeyFyfSkiLmZv
cm1hdCgKLSAgICAgICAgICAgIGxpc3Qoc2VsZi5fYXBwcm94X3NjYWxhcih4KSBmb3IgeCBpbiBu
cC5hc2FycmF5KHNlbGYuZXhwZWN0ZWQpKQotICAgICAgICApCisgICAgICAgIGxpc3Rfc2NhbGFy
cyA9IF9yZWN1cnNpdmVfbGlzdF9tYXAoc2VsZi5fYXBwcm94X3NjYWxhciwgc2VsZi5leHBlY3Rl
ZC50b2xpc3QoKSkKKyAgICAgICAgcmV0dXJuICJhcHByb3goeyFyfSkiLmZvcm1hdChsaXN0X3Nj
YWxhcnMpCiAKICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09IDI6CiAgICAgICAgIF9fY21w
X18gPSBfY21wX3JhaXNlc190eXBlX2Vycm9yCkBAIC0xMTgsMTYgKzE1MCwxNiBAQCBjbGFzcyBB
cHByb3hOdW1weShBcHByb3hCYXNlKToKIAogICAgICAgICBpZiBucC5pc3NjYWxhcihhY3R1YWwp
OgogICAgICAgICAgICAgZm9yIGkgaW4gbnAubmRpbmRleChzZWxmLmV4cGVjdGVkLnNoYXBlKToK
LSAgICAgICAgICAgICAgICB5aWVsZCBhY3R1YWwsIG5wLmFzc2NhbGFyKHNlbGYuZXhwZWN0ZWRb
aV0pCisgICAgICAgICAgICAgICAgeWllbGQgYWN0dWFsLCBzZWxmLmV4cGVjdGVkW2ldLml0ZW0o
KQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZm9yIGkgaW4gbnAubmRpbmRleChzZWxmLmV4
cGVjdGVkLnNoYXBlKToKLSAgICAgICAgICAgICAgICB5aWVsZCBucC5hc3NjYWxhcihhY3R1YWxb
aV0pLCBucC5hc3NjYWxhcihzZWxmLmV4cGVjdGVkW2ldKQorICAgICAgICAgICAgICAgIHlpZWxk
IGFjdHVhbFtpXS5pdGVtKCksIHNlbGYuZXhwZWN0ZWRbaV0uaXRlbSgpCiAKIAogY2xhc3MgQXBw
cm94TWFwcGluZyhBcHByb3hCYXNlKToKICAgICAiIiIKLSAgICBQZXJmb3JtIGFwcHJveGltYXRl
IGNvbXBhcmlzb25zIGZvciBtYXBwaW5ncyB3aGVyZSB0aGUgdmFsdWVzIGFyZSBudW1iZXJzCi0g
ICAgKHRoZSBrZXlzIGNhbiBiZSBhbnl0aGluZykuCisgICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBj
b21wYXJpc29ucyB3aGVyZSB0aGUgZXhwZWN0ZWQgdmFsdWUgaXMgYSBtYXBwaW5nIHdpdGgKKyAg
ICBudW1lcmljIHZhbHVlcyAodGhlIGtleXMgY2FuIGJlIGFueXRoaW5nKS4KICAgICAiIiIKIAog
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKQEAgLTE0NSwxMCArMTc3LDIwIEBAIGNsYXNzIEFwcHJv
eE1hcHBpbmcoQXBwcm94QmFzZSk6CiAgICAgICAgIGZvciBrIGluIHNlbGYuZXhwZWN0ZWQua2V5
cygpOgogICAgICAgICAgICAgeWllbGQgYWN0dWFsW2tdLCBzZWxmLmV4cGVjdGVkW2tdCiAKKyAg
ICBkZWYgX2NoZWNrX3R5cGUoc2VsZik6CisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1
ZQorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxmLmV4cGVjdGVkLml0ZW1zKCk6CisgICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCB0eXBlKHNlbGYuZXhwZWN0ZWQpKToKKyAgICAg
ICAgICAgICAgICBtc2cgPSAicHl0ZXN0LmFwcHJveCgpIGRvZXMgbm90IHN1cHBvcnQgbmVzdGVk
IGRpY3Rpb25hcmllczoga2V5PXshcn0gdmFsdWU9eyFyfVxuICBmdWxsIG1hcHBpbmc9e30iCisg
ICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZy5mb3JtYXQoa2V5LCB2YWx1ZSwgcHBy
aW50LnBmb3JtYXQoc2VsZi5leHBlY3RlZCkpKQorICAgICAgICAgICAgZWxpZiBub3QgaXNpbnN0
YW5jZSh2YWx1ZSwgTnVtYmVyKToKKyAgICAgICAgICAgICAgICByYWlzZSBfbm9uX251bWVyaWNf
dHlwZV9lcnJvcihzZWxmLmV4cGVjdGVkLCBhdD0ia2V5PXshcn0iLmZvcm1hdChrZXkpKQogCi1j
bGFzcyBBcHByb3hTZXF1ZW5jZShBcHByb3hCYXNlKToKKworY2xhc3MgQXBwcm94U2VxdWVuY2Vs
aWtlKEFwcHJveEJhc2UpOgogICAgICIiIgotICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFy
aXNvbnMgZm9yIHNlcXVlbmNlcyBvZiBudW1iZXJzLgorICAgIFBlcmZvcm0gYXBwcm94aW1hdGUg
Y29tcGFyaXNvbnMgd2hlcmUgdGhlIGV4cGVjdGVkIHZhbHVlIGlzIGEgc2VxdWVuY2Ugb2YKKyAg
ICBudW1iZXJzLgogICAgICIiIgogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgpAQCAtMTY3LDEx
ICsyMDksMjMgQEAgY2xhc3MgQXBwcm94U2VxdWVuY2UoQXBwcm94QmFzZSk6CiAgICAgZGVmIF95
aWVsZF9jb21wYXJpc29ucyhzZWxmLCBhY3R1YWwpOgogICAgICAgICByZXR1cm4gemlwKGFjdHVh
bCwgc2VsZi5leHBlY3RlZCkKIAorICAgIGRlZiBfY2hlY2tfdHlwZShzZWxmKToKKyAgICAgICAg
X190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIGZvciBpbmRleCwgeCBpbiBlbnVtZXJh
dGUoc2VsZi5leHBlY3RlZCk6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHgsIHR5cGUoc2Vs
Zi5leHBlY3RlZCkpOgorICAgICAgICAgICAgICAgIG1zZyA9ICJweXRlc3QuYXBwcm94KCkgZG9l
cyBub3Qgc3VwcG9ydCBuZXN0ZWQgZGF0YSBzdHJ1Y3R1cmVzOiB7IXJ9IGF0IGluZGV4IHt9XG4g
IGZ1bGwgc2VxdWVuY2U6IHt9IgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cu
Zm9ybWF0KHgsIGluZGV4LCBwcHJpbnQucGZvcm1hdChzZWxmLmV4cGVjdGVkKSkpCisgICAgICAg
ICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKHgsIE51bWJlcik6CisgICAgICAgICAgICAgICAgcmFp
c2UgX25vbl9udW1lcmljX3R5cGVfZXJyb3IoCisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhw
ZWN0ZWQsIGF0PSJpbmRleCB7fSIuZm9ybWF0KGluZGV4KQorICAgICAgICAgICAgICAgICkKKwog
CiBjbGFzcyBBcHByb3hTY2FsYXIoQXBwcm94QmFzZSk6CiAgICAgIiIiCi0gICAgUGVyZm9ybSBh
cHByb3hpbWF0ZSBjb21wYXJpc29ucyBmb3Igc2luZ2xlIG51bWJlcnMgb25seS4KKyAgICBQZXJm
b3JtIGFwcHJveGltYXRlIGNvbXBhcmlzb25zIHdoZXJlIHRoZSBleHBlY3RlZCB2YWx1ZSBpcyBh
IHNpbmdsZSBudW1iZXIuCiAgICAgIiIiCisKICAgICBERUZBVUxUX0FCU09MVVRFX1RPTEVSQU5D
RSA9IDFlLTEyCiAgICAgREVGQVVMVF9SRUxBVElWRV9UT0xFUkFOQ0UgPSAxZS02CiAKQEAgLTIw
OCw3ICsyNjIsOSBAQCBjbGFzcyBBcHByb3hTY2FsYXIoQXBwcm94QmFzZSk6CiAgICAgICAgIHRo
ZSBwcmUtc3BlY2lmaWVkIHRvbGVyYW5jZS4KICAgICAgICAgIiIiCiAgICAgICAgIGlmIF9pc19u
dW1weV9hcnJheShhY3R1YWwpOgotICAgICAgICAgICAgcmV0dXJuIEFwcHJveE51bXB5KGFjdHVh
bCwgc2VsZi5hYnMsIHNlbGYucmVsLCBzZWxmLm5hbl9vaykgPT0gc2VsZi5leHBlY3RlZAorICAg
ICAgICAgICAgIyBDYWxsIGBgX19lcV9fKClgYCBtYW51YWxseSB0byBwcmV2ZW50IGluZmluaXRl
LXJlY3Vyc2lvbiB3aXRoCisgICAgICAgICAgICAjIG51bXB5PDEuMTMuICBTZWUgIzM3NDguCisg
ICAgICAgICAgICByZXR1cm4gYWxsKHNlbGYuX19lcV9fKGEpIGZvciBhIGluIGFjdHVhbC5mbGF0
KQogCiAgICAgICAgICMgU2hvcnQtY2lyY3VpdCBleGFjdCBlcXVhbGl0eS4KICAgICAgICAgaWYg
YWN0dWFsID09IHNlbGYuZXhwZWN0ZWQ6CkBAIC0yNjksOSArMzI1LDcgQEAgY2xhc3MgQXBwcm94
U2NhbGFyKEFwcHJveEJhc2UpOgogICAgICAgICAjIHdlIGFyZW4ndCBldmVuIGdvaW5nIHRvIHVz
ZSBpdC4KICAgICAgICAgcmVsYXRpdmVfdG9sZXJhbmNlID0gc2V0X2RlZmF1bHQoCiAgICAgICAg
ICAgICBzZWxmLnJlbCwgc2VsZi5ERUZBVUxUX1JFTEFUSVZFX1RPTEVSQU5DRQotICAgICAgICAp
ICogYWJzKAotICAgICAgICAgICAgc2VsZi5leHBlY3RlZAotICAgICAgICApCisgICAgICAgICkg
KiBhYnMoc2VsZi5leHBlY3RlZCkKIAogICAgICAgICBpZiByZWxhdGl2ZV90b2xlcmFuY2UgPCAw
OgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKQEAgLTI4NSw3ICszMzksOSBAQCBjbGFz
cyBBcHByb3hTY2FsYXIoQXBwcm94QmFzZSk6CiAKIAogY2xhc3MgQXBwcm94RGVjaW1hbChBcHBy
b3hTY2FsYXIpOgotICAgIGZyb20gZGVjaW1hbCBpbXBvcnQgRGVjaW1hbAorICAgICIiIgorICAg
IFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgd2hlcmUgdGhlIGV4cGVjdGVkIHZhbHVl
IGlzIGEgZGVjaW1hbC4KKyAgICAiIiIKIAogICAgIERFRkFVTFRfQUJTT0xVVEVfVE9MRVJBTkNF
ID0gRGVjaW1hbCgiMWUtMTIiKQogICAgIERFRkFVTFRfUkVMQVRJVkVfVE9MRVJBTkNFID0gRGVj
aW1hbCgiMWUtNiIpCkBAIC00NDQsMzIgKzUwMCwzOSBAQCBkZWYgYXBwcm94KGV4cGVjdGVkLCBy
ZWw9Tm9uZSwgYWJzPU5vbmUsIG5hbl9vaz1GYWxzZSk6CiAgICAgICAgX18gaHR0cHM6Ly9kb2Nz
LnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvZGF0YW1vZGVsLmh0bWwjb2JqZWN0Ll9fZ2VfXwogICAg
ICIiIgogCi0gICAgZnJvbSBkZWNpbWFsIGltcG9ydCBEZWNpbWFsCi0KICAgICAjIERlbGVnYXRl
IHRoZSBjb21wYXJpc29uIHRvIGEgY2xhc3MgdGhhdCBrbm93cyBob3cgdG8gZGVhbCB3aXRoIHRo
ZSB0eXBlCiAgICAgIyBvZiB0aGUgZXhwZWN0ZWQgdmFsdWUgKGUuZy4gaW50LCBmbG9hdCwgbGlz
dCwgZGljdCwgbnVtcHkuYXJyYXksIGV0YykuCiAgICAgIwotICAgICMgVGhpcyBhcmNoaXRlY3R1
cmUgaXMgcmVhbGx5IGRyaXZlbiBieSB0aGUgbmVlZCB0byBzdXBwb3J0IG51bXB5IGFycmF5cy4K
LSAgICAjIFRoZSBvbmx5IHdheSB0byBvdmVycmlkZSBgPT1gIGZvciBhcnJheXMgd2l0aG91dCBy
ZXF1aXJpbmcgdGhhdCBhcHByb3ggYmUKLSAgICAjIHRoZSBsZWZ0IG9wZXJhbmQgaXMgdG8gaW5o
ZXJpdCB0aGUgYXBwcm94IG9iamVjdCBmcm9tIGBudW1weS5uZGFycmF5YC4KLSAgICAjIEJ1dCB0
aGF0IGNhbid0IGJlIGEgZ2VuZXJhbCBzb2x1dGlvbiwgYmVjYXVzZSBpdCByZXF1aXJlcyAoMSkg
bnVtcHkgdG8gYmUKLSAgICAjIGluc3RhbGxlZCBhbmQgKDIpIHRoZSBleHBlY3RlZCB2YWx1ZSB0
byBiZSBhIG51bXB5IGFycmF5LiAgU28gdGhlIGdlbmVyYWwKLSAgICAjIHNvbHV0aW9uIGlzIHRv
IGRlbGVnYXRlIGVhY2ggdHlwZSBvZiBleHBlY3RlZCB2YWx1ZSB0byBhIGRpZmZlcmVudCBjbGFz
cy4KKyAgICAjIFRoZSBwcmltYXJ5IHJlc3BvbnNpYmlsaXR5IG9mIHRoZXNlIGNsYXNzZXMgaXMg
dG8gaW1wbGVtZW50IGBgX19lcV9fKClgYAorICAgICMgYW5kIGBgX19yZXByX18oKWBgLiAgVGhl
IGZvcm1lciBpcyB1c2VkIHRvIGFjdHVhbGx5IGNoZWNrIGlmIHNvbWUKKyAgICAjICJhY3R1YWwi
IHZhbHVlIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGdpdmVuIGV4cGVjdGVkIHZhbHVlIHdpdGhpbiB0
aGUKKyAgICAjIGFsbG93ZWQgdG9sZXJhbmNlLiAgVGhlIGxhdHRlciBpcyB1c2VkIHRvIHNob3cg
dGhlIHVzZXIgdGhlIGV4cGVjdGVkCisgICAgIyB2YWx1ZSBhbmQgdG9sZXJhbmNlLCBpbiB0aGUg
Y2FzZSB0aGF0IGEgdGVzdCBmYWlsZWQuCiAgICAgIwotICAgICMgVGhpcyBoYXMgdGhlIGFkdmFu
dGFnZSB0aGF0IGl0IG1hZGUgaXQgZWFzeSB0byBzdXBwb3J0IG1hcHBpbmcgdHlwZXMKLSAgICAj
IChpLmUuIGRpY3QpLiAgVGhlIG9sZCBjb2RlIGFjY2VwdGVkIG1hcHBpbmcgdHlwZXMsIGJ1dCB3
b3VsZCBvbmx5IGNvbXBhcmUKLSAgICAjIHRoZWlyIGtleXMsIHdoaWNoIGlzIHByb2JhYmx5IG5v
dCB3aGF0IG1vc3QgcGVvcGxlIHdvdWxkIGV4cGVjdC4KKyAgICAjIFRoZSBhY3R1YWwgbG9naWMg
Zm9yIG1ha2luZyBhcHByb3hpbWF0ZSBjb21wYXJpc29ucyBjYW4gYmUgZm91bmQgaW4KKyAgICAj
IEFwcHJveFNjYWxhciwgd2hpY2ggaXMgdXNlZCB0byBjb21wYXJlIGluZGl2aWR1YWwgbnVtYmVy
cy4gIEFsbCBvZiB0aGUKKyAgICAjIG90aGVyIEFwcHJveCBjbGFzc2VzIGV2ZW50dWFsbHkgZGVs
ZWdhdGUgdG8gdGhpcyBjbGFzcy4gIFRoZSBBcHByb3hCYXNlCisgICAgIyBjbGFzcyBwcm92aWRl
cyBzb21lIGNvbnZlbmllbnQgbWV0aG9kcyBhbmQgb3ZlcmxvYWRzLCBidXQgaXNuJ3QgcmVhbGx5
CisgICAgIyBlc3NlbnRpYWwuCiAKLSAgICBpZiBfaXNfbnVtcHlfYXJyYXkoZXhwZWN0ZWQpOgot
ICAgICAgICBjbHMgPSBBcHByb3hOdW1weQorICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQor
CisgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgRGVjaW1hbCk6CisgICAgICAgIGNscyA9IEFw
cHJveERlY2ltYWwKKyAgICBlbGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWQsIE51bWJlcik6CisgICAg
ICAgIGNscyA9IEFwcHJveFNjYWxhcgogICAgIGVsaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgTWFw
cGluZyk6CiAgICAgICAgIGNscyA9IEFwcHJveE1hcHBpbmcKLSAgICBlbGlmIGlzaW5zdGFuY2Uo
ZXhwZWN0ZWQsIFNlcXVlbmNlKSBhbmQgbm90IGlzaW5zdGFuY2UoZXhwZWN0ZWQsIFNUUklOR19U
WVBFUyk6Ci0gICAgICAgIGNscyA9IEFwcHJveFNlcXVlbmNlCi0gICAgZWxpZiBpc2luc3RhbmNl
KGV4cGVjdGVkLCBEZWNpbWFsKToKLSAgICAgICAgY2xzID0gQXBwcm94RGVjaW1hbAorICAgIGVs
aWYgX2lzX251bXB5X2FycmF5KGV4cGVjdGVkKToKKyAgICAgICAgY2xzID0gQXBwcm94TnVtcHkK
KyAgICBlbGlmICgKKyAgICAgICAgaXNpbnN0YW5jZShleHBlY3RlZCwgSXRlcmFibGUpCisgICAg
ICAgIGFuZCBpc2luc3RhbmNlKGV4cGVjdGVkLCBTaXplZCkKKyAgICAgICAgYW5kIG5vdCBpc2lu
c3RhbmNlKGV4cGVjdGVkLCBTVFJJTkdfVFlQRVMpCisgICAgKToKKyAgICAgICAgY2xzID0gQXBw
cm94U2VxdWVuY2VsaWtlCiAgICAgZWxzZToKLSAgICAgICAgY2xzID0gQXBwcm94U2NhbGFyCisg
ICAgICAgIHJhaXNlIF9ub25fbnVtZXJpY190eXBlX2Vycm9yKGV4cGVjdGVkLCBhdD1Ob25lKQog
CiAgICAgcmV0dXJuIGNscyhleHBlY3RlZCwgcmVsLCBhYnMsIG5hbl9vaykKIApAQCAtNDc5LDE3
ICs1NDIsMTEgQEAgZGVmIF9pc19udW1weV9hcnJheShvYmopOgogICAgIFJldHVybiB0cnVlIGlm
IHRoZSBnaXZlbiBvYmplY3QgaXMgYSBudW1weSBhcnJheS4gIE1ha2UgYSBzcGVjaWFsIGVmZm9y
dCB0bwogICAgIGF2b2lkIGltcG9ydGluZyBudW1weSB1bmxlc3MgaXQncyByZWFsbHkgbmVjZXNz
YXJ5LgogICAgICIiIgotICAgIGltcG9ydCBpbnNwZWN0Ci0KLSAgICBmb3IgY2xzIGluIGluc3Bl
Y3QuZ2V0bXJvKHR5cGUob2JqKSk6Ci0gICAgICAgIGlmIGNscy5fX21vZHVsZV9fID09ICJudW1w
eSI6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaW1wb3J0IG51bXB5IGFzIG5w
Ci0KLSAgICAgICAgICAgICAgICByZXR1cm4gaXNpbnN0YW5jZShvYmosIG5wLm5kYXJyYXkpCi0g
ICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcworICAg
IGltcG9ydCBzeXMKIAorICAgIG5wID0gc3lzLm1vZHVsZXMuZ2V0KCJudW1weSIpCisgICAgaWYg
bnAgaXMgbm90IE5vbmU6CisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKG9iaiwgbnAubmRhcnJh
eSkKICAgICByZXR1cm4gRmFsc2UKIAogCkBAIC00OTksMjkgKzU1Niw1NCBAQCBkZWYgX2lzX251
bXB5X2FycmF5KG9iaik6CiBkZWYgcmFpc2VzKGV4cGVjdGVkX2V4Y2VwdGlvbiwgKmFyZ3MsICoq
a3dhcmdzKToKICAgICByIiIiCiAgICAgQXNzZXJ0IHRoYXQgYSBjb2RlIGJsb2NrL2Z1bmN0aW9u
IGNhbGwgcmFpc2VzIGBgZXhwZWN0ZWRfZXhjZXB0aW9uYGAKLSAgICBhbmQgcmFpc2UgYSBmYWls
dXJlIGV4Y2VwdGlvbiBvdGhlcndpc2UuCisgICAgb3IgcmFpc2UgYSBmYWlsdXJlIGV4Y2VwdGlv
biBvdGhlcndpc2UuCiAKLSAgICA6YXJnIG1lc3NhZ2U6IGlmIHNwZWNpZmllZCwgcHJvdmlkZXMg
YSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlIGlmIHRoZQotICAgICAgICBleGNlcHRpb24gaXMgbm90
IHJhaXNlZAotICAgIDphcmcgbWF0Y2g6IGlmIHNwZWNpZmllZCwgYXNzZXJ0cyB0aGF0IHRoZSBl
eGNlcHRpb24gbWF0Y2hlcyBhIHRleHQgb3IgcmVnZXgKKyAgICA6a3dwYXJhbSBtYXRjaDogaWYg
c3BlY2lmaWVkLCBhIHN0cmluZyBjb250YWluaW5nIGEgcmVndWxhciBleHByZXNzaW9uLAorICAg
ICAgICBvciBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvYmplY3QsIHRoYXQgaXMgdGVzdGVkIGFnYWlu
c3QgdGhlIHN0cmluZworICAgICAgICByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXhjZXB0aW9uIHVz
aW5nIGBgcmUuc2VhcmNoYGAuIFRvIG1hdGNoIGEgbGl0ZXJhbAorICAgICAgICBzdHJpbmcgdGhh
dCBtYXkgY29udGFpbiBgc3BlY2lhbCBjaGFyYWN0ZXJzYF9fLCB0aGUgcGF0dGVybiBjYW4KKyAg
ICAgICAgZmlyc3QgYmUgZXNjYXBlZCB3aXRoIGBgcmUuZXNjYXBlYGAuCiAKLSAgICBUaGlzIGhl
bHBlciBwcm9kdWNlcyBhIGBgRXhjZXB0aW9uSW5mbygpYGAgb2JqZWN0IChzZWUgYmVsb3cpLgor
ICAgIF9fIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9yZS5odG1sI3JlZ3VsYXIt
ZXhwcmVzc2lvbi1zeW50YXgKIAotICAgIFlvdSBtYXkgdXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBj
b250ZXh0IG1hbmFnZXI6OgorICAgIDprd3BhcmFtIG1lc3NhZ2U6ICoqKGRlcHJlY2F0ZWQgc2lu
Y2UgNC4xKSoqIGlmIHNwZWNpZmllZCwgcHJvdmlkZXMgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdl
CisgICAgICAgIGlmIHRoZSBleGNlcHRpb24gaXMgbm90IHJhaXNlZC4gU2VlIDpyZWY6YHRoZSBk
ZXByZWNhdGlvbiBkb2NzIDxyYWlzZXMgbWVzc2FnZSBkZXByZWNhdGVkPmAgZm9yIGEgd29ya2Fy
b3VuZC4KKworICAgIC4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0Ll9jb2RlCisKKyAgICBVc2Ug
YGBweXRlc3QucmFpc2VzYGAgYXMgYSBjb250ZXh0IG1hbmFnZXIsIHdoaWNoIHdpbGwgY2FwdHVy
ZSB0aGUgZXhjZXB0aW9uIG9mIHRoZSBnaXZlbgorICAgIHR5cGU6OgogCiAgICAgICAgID4+PiB3
aXRoIHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6CiAgICAgICAgIC4uLiAgICAxLzAKIAotICAg
IC4uIHZlcnNpb25jaGFuZ2VkOjogMi4xMAorICAgIElmIHRoZSBjb2RlIGJsb2NrIGRvZXMgbm90
IHJhaXNlIHRoZSBleHBlY3RlZCBleGNlcHRpb24gKGBgWmVyb0RpdmlzaW9uRXJyb3JgYCBpbiB0
aGUgZXhhbXBsZQorICAgIGFib3ZlKSwgb3Igbm8gZXhjZXB0aW9uIGF0IGFsbCwgdGhlIGNoZWNr
IHdpbGwgZmFpbCBpbnN0ZWFkLgorCisgICAgWW91IGNhbiBhbHNvIHVzZSB0aGUga2V5d29yZCBh
cmd1bWVudCBgYG1hdGNoYGAgdG8gYXNzZXJ0IHRoYXQgdGhlCisgICAgZXhjZXB0aW9uIG1hdGNo
ZXMgYSB0ZXh0IG9yIHJlZ2V4OjoKIAotICAgIEluIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9ybSB5
b3UgbWF5IHVzZSB0aGUga2V5d29yZCBhcmd1bWVudAotICAgIGBgbWVzc2FnZWBgIHRvIHNwZWNp
ZnkgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlOjoKKyAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZh
bHVlRXJyb3IsIG1hdGNoPSdtdXN0IGJlIDAgb3IgTm9uZScpOgorICAgICAgICAuLi4gICAgIHJh
aXNlIFZhbHVlRXJyb3IoInZhbHVlIG11c3QgYmUgMCBvciBOb25lIikKKworICAgICAgICA+Pj4g
d2l0aCByYWlzZXMoVmFsdWVFcnJvciwgbWF0Y2g9cidtdXN0IGJlIFxkKyQnKToKKyAgICAgICAg
Li4uICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJlIDQyIikKKworICAgIFRoZSBj
b250ZXh0IG1hbmFnZXIgcHJvZHVjZXMgYW4gOmNsYXNzOmBFeGNlcHRpb25JbmZvYCBvYmplY3Qg
d2hpY2ggY2FuIGJlIHVzZWQgdG8gaW5zcGVjdCB0aGUKKyAgICBkZXRhaWxzIG9mIHRoZSBjYXB0
dXJlZCBleGNlcHRpb246OgorCisgICAgICAgID4+PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9yKSBh
cyBleGNfaW5mbzoKKyAgICAgICAgLi4uICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0
IGJlIDQyIikKKyAgICAgICAgPj4+IGFzc2VydCBleGNfaW5mby50eXBlIGlzIFZhbHVlRXJyb3IK
KyAgICAgICAgPj4+IGFzc2VydCBleGNfaW5mby52YWx1ZS5hcmdzWzBdID09ICJ2YWx1ZSBtdXN0
IGJlIDQyIgogCi0gICAgICAgID4+PiB3aXRoIHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgbWVz
c2FnZT0iRXhwZWN0aW5nIFplcm9EaXZpc2lvbkVycm9yIik6Ci0gICAgICAgIC4uLiAgICBwYXNz
Ci0gICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKLSAgICAgICAgICAu
Li4KLSAgICAgICAgRmFpbGVkOiBFeHBlY3RpbmcgWmVyb0RpdmlzaW9uRXJyb3IKKyAgICAuLiBk
ZXByZWNhdGVkOjogNC4xCisKKyAgICAgICAgSW4gdGhlIGNvbnRleHQgbWFuYWdlciBmb3JtIHlv
dSBtYXkgdXNlIHRoZSBrZXl3b3JkIGFyZ3VtZW50CisgICAgICAgIGBgbWVzc2FnZWBgIHRvIHNw
ZWNpZnkgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQKKyAg
ICAgICAgaW4gY2FzZSB0aGUgYGBweXRlc3QucmFpc2VzYGAgY2hlY2sgZmFpbHMuIFRoaXMgaGFz
IGJlZW4gZGVwcmVjYXRlZCBhcyBpdAorICAgICAgICBpcyBjb25zaWRlcmVkIGVycm9yIHByb25l
IGFzIHVzZXJzIG9mdGVuIG1lYW4gdG8gdXNlIGBgbWF0Y2hgYCBpbnN0ZWFkLgorICAgICAgICBT
ZWUgOnJlZjpgdGhlIGRlcHJlY2F0aW9uIGRvY3MgPHJhaXNlcyBtZXNzYWdlIGRlcHJlY2F0ZWQ+
YCBmb3IgYSB3b3JrYXJvdW5kLgogCiAgICAgLi4gbm90ZTo6CiAKQEAgLTUzNSw3ICs2MTcsNyBA
QCBkZWYgcmFpc2VzKGV4cGVjdGVkX2V4Y2VwdGlvbiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAg
ICAgICAgPj4+IHdpdGggcmFpc2VzKFZhbHVlRXJyb3IpIGFzIGV4Y19pbmZvOgogICAgICAgICAg
ICAuLi4gICAgIGlmIHZhbHVlID4gMTA6CiAgICAgICAgICAgIC4uLiAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoInZhbHVlIG11c3QgYmUgPD0gMTAiKQotICAgICAgICAgICAuLi4gICAgIGFzc2Vy
dCBleGNfaW5mby50eXBlID09IFZhbHVlRXJyb3IgICMgdGhpcyB3aWxsIG5vdCBleGVjdXRlCisg
ICAgICAgICAgIC4uLiAgICAgYXNzZXJ0IGV4Y19pbmZvLnR5cGUgaXMgVmFsdWVFcnJvciAgIyB0
aGlzIHdpbGwgbm90IGV4ZWN1dGUKIAogICAgICAgIEluc3RlYWQsIHRoZSBmb2xsb3dpbmcgYXBw
cm9hY2ggbXVzdCBiZSB0YWtlbiAobm90ZSB0aGUgZGlmZmVyZW5jZSBpbgogICAgICAgIHNjb3Bl
KTo6CkBAIC01NDQsMjIgKzYyNiwxNyBAQCBkZWYgcmFpc2VzKGV4cGVjdGVkX2V4Y2VwdGlvbiwg
KmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgICAgLi4uICAgICBpZiB2YWx1ZSA+IDEwOgogICAg
ICAgICAgICAuLi4gICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJlIDw9IDEw
IikKICAgICAgICAgICAgLi4uCi0gICAgICAgICAgID4+PiBhc3NlcnQgZXhjX2luZm8udHlwZSA9
PSBWYWx1ZUVycm9yCisgICAgICAgICAgID4+PiBhc3NlcnQgZXhjX2luZm8udHlwZSBpcyBWYWx1
ZUVycm9yCiAKKyAgICAqKlVzaW5nIHdpdGgqKiBgYHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAK
IAotICAgIFNpbmNlIHZlcnNpb24gYGAzLjFgYCB5b3UgY2FuIHVzZSB0aGUga2V5d29yZCBhcmd1
bWVudCBgYG1hdGNoYGAgdG8gYXNzZXJ0IHRoYXQgdGhlCi0gICAgZXhjZXB0aW9uIG1hdGNoZXMg
YSB0ZXh0IG9yIHJlZ2V4OjoKKyAgICBXaGVuIHVzaW5nIDpyZWY6YHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplIHJlZmAKKyAgICBpdCBpcyBwb3NzaWJsZSB0byBwYXJhbWV0cml6ZSB0ZXN0cyBzdWNo
IHRoYXQKKyAgICBzb21lIHJ1bnMgcmFpc2UgYW4gZXhjZXB0aW9uIGFuZCBvdGhlcnMgZG8gbm90
LgogCi0gICAgICAgID4+PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9yLCBtYXRjaD0nbXVzdCBiZSAw
IG9yIE5vbmUnKToKLSAgICAgICAgLi4uICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0
IGJlIDAgb3IgTm9uZSIpCisgICAgU2VlIDpyZWY6YHBhcmFtZXRyaXppbmdfY29uZGl0aW9uYWxf
cmFpc2luZ2AgZm9yIGFuIGV4YW1wbGUuCiAKLSAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZhbHVl
RXJyb3IsIG1hdGNoPXInbXVzdCBiZSBcZCskJyk6Ci0gICAgICAgIC4uLiAgICAgcmFpc2UgVmFs
dWVFcnJvcigidmFsdWUgbXVzdCBiZSA0MiIpCi0KLSAgICAqKkxlZ2FjeSBmb3JtcyoqCi0KLSAg
ICBUaGUgZm9ybXMgYmVsb3cgYXJlIGZ1bGx5IHN1cHBvcnRlZCBidXQgYXJlIGRpc2NvdXJhZ2Vk
IGZvciBuZXcgY29kZSBiZWNhdXNlIHRoZQotICAgIGNvbnRleHQgbWFuYWdlciBmb3JtIGlzIHJl
Z2FyZGVkIGFzIG1vcmUgcmVhZGFibGUgYW5kIGxlc3MgZXJyb3ItcHJvbmUuCisgICAgKipMZWdh
Y3kgZm9ybSoqCiAKICAgICBJdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IGEgY2FsbGFibGUgYnkg
cGFzc2luZyBhIHRvLWJlLWNhbGxlZCBsYW1iZGE6OgogCkBAIC01NzUsMTcgKzY1Miw4IEBAIGRl
ZiByYWlzZXMoZXhwZWN0ZWRfZXhjZXB0aW9uLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICA+
Pj4gcmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLCBmLCB4PTApCiAgICAgICAgIDxFeGNlcHRpb25J
bmZvIC4uLj4KIAotICAgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gcGFzcyBhIHN0cmluZyB0byBi
ZSBldmFsdWF0ZWQgYXQgcnVudGltZTo6Ci0KLSAgICAgICAgPj4+IHJhaXNlcyhaZXJvRGl2aXNp
b25FcnJvciwgImYoMCkiKQotICAgICAgICA8RXhjZXB0aW9uSW5mbyAuLi4+Ci0KLSAgICBUaGUg
c3RyaW5nIHdpbGwgYmUgZXZhbHVhdGVkIHVzaW5nIHRoZSBzYW1lIGBgbG9jYWxzKClgYCBhbmQg
YGBnbG9iYWxzKClgYAotICAgIGF0IHRoZSBtb21lbnQgb2YgdGhlIGBgcmFpc2VzYGAgY2FsbC4K
LQotICAgIC4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0Ll9jb2RlCi0KLSAgICBDb25zdWx0IHRo
ZSBBUEkgb2YgYGBleGNpbmZvYGAgb2JqZWN0czogOmNsYXNzOmBFeGNlcHRpb25JbmZvYC4KKyAg
ICBUaGUgZm9ybSBhYm92ZSBpcyBmdWxseSBzdXBwb3J0ZWQgYnV0IGRpc2NvdXJhZ2VkIGZvciBu
ZXcgY29kZSBiZWNhdXNlIHRoZQorICAgIGNvbnRleHQgbWFuYWdlciBmb3JtIGlzIHJlZ2FyZGVk
IGFzIG1vcmUgcmVhZGFibGUgYW5kIGxlc3MgZXJyb3ItcHJvbmUuCiAKICAgICAuLiBub3RlOjoK
ICAgICAgICAgU2ltaWxhciB0byBjYXVnaHQgZXhjZXB0aW9uIG9iamVjdHMgaW4gUHl0aG9uLCBl
eHBsaWNpdGx5IGNsZWFyaW5nCkBAIC02MTYsMzMgKzY4NCwzNSBAQCBkZWYgcmFpc2VzKGV4cGVj
dGVkX2V4Y2VwdGlvbiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICBpZiBub3QgYXJnczoKICAgICAg
ICAgaWYgIm1lc3NhZ2UiIGluIGt3YXJnczoKICAgICAgICAgICAgIG1lc3NhZ2UgPSBrd2FyZ3Mu
cG9wKCJtZXNzYWdlIikKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oZGVwcmVjYXRlZC5SQUlT
RVNfTUVTU0FHRV9QQVJBTUVURVIsIHN0YWNrbGV2ZWw9MikKICAgICAgICAgaWYgIm1hdGNoIiBp
biBrd2FyZ3M6CiAgICAgICAgICAgICBtYXRjaF9leHByID0ga3dhcmdzLnBvcCgibWF0Y2giKQog
ICAgICAgICBpZiBrd2FyZ3M6CiAgICAgICAgICAgICBtc2cgPSAiVW5leHBlY3RlZCBrZXl3b3Jk
IGFyZ3VtZW50cyBwYXNzZWQgdG8gcHl0ZXN0LnJhaXNlczogIgotICAgICAgICAgICAgbXNnICs9
ICIsICIuam9pbihrd2FyZ3Mua2V5cygpKQorICAgICAgICAgICAgbXNnICs9ICIsICIuam9pbihz
b3J0ZWQoa3dhcmdzKSkKICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cpCiAgICAgICAg
IHJldHVybiBSYWlzZXNDb250ZXh0KGV4cGVjdGVkX2V4Y2VwdGlvbiwgbWVzc2FnZSwgbWF0Y2hf
ZXhwcikKICAgICBlbGlmIGlzaW5zdGFuY2UoYXJnc1swXSwgc3RyKToKLSAgICAgICAgY29kZSwg
PSBhcmdzCisgICAgICAgIHdhcm5pbmdzLndhcm4oZGVwcmVjYXRlZC5SQUlTRVNfRVhFQywgc3Rh
Y2tsZXZlbD0yKQorICAgICAgICAoY29kZSwpID0gYXJncwogICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShjb2RlLCBzdHIpCiAgICAgICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgxKQogICAgICAg
ICBsb2MgPSBmcmFtZS5mX2xvY2Fscy5jb3B5KCkKICAgICAgICAgbG9jLnVwZGF0ZShrd2FyZ3Mp
CiAgICAgICAgICMgcHJpbnQgInJhaXNlcyBmcmFtZSBzY29wZTogJXIiICUgZnJhbWUuZl9sb2Nh
bHMKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29kZSA9IF9weXRlc3QuX2NvZGUuU291cmNl
KGNvZGUpLmNvbXBpbGUoKQotICAgICAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhjb2RlLCBmcmFt
ZS5mX2dsb2JhbHMsIGxvYykKLSAgICAgICAgICAgICMgWFhYIGRpZG4nVCBtZWFuIGZfZ2xvYmFs
cyA9PSBmX2xvY2FscyBzb21ldGhpbmcgc3BlY2lhbD8KKyAgICAgICAgICAgIGNvZGUgPSBfcHl0
ZXN0Ll9jb2RlLlNvdXJjZShjb2RlKS5jb21waWxlKF9nZW5mcmFtZT1mcmFtZSkKKyAgICAgICAg
ICAgIGV4ZWMoY29kZSwgZnJhbWUuZl9nbG9iYWxzLCBsb2MpCisgICAgICAgICAgICAjIFhYWCBk
aWRuJ3QgbWVhbiBmX2dsb2JhbHMgPT0gZl9sb2NhbHMgc29tZXRoaW5nIHNwZWNpYWw/CiAgICAg
ICAgICAgICAjICAgICB0aGlzIGlzIGRlc3Ryb3llZCBoZXJlIC4uLgogICAgICAgICBleGNlcHQg
ZXhwZWN0ZWRfZXhjZXB0aW9uOgotICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuRXhj
ZXB0aW9uSW5mbygpCisgICAgICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25J
bmZvLmZyb21fY3VycmVudCgpCiAgICAgZWxzZToKICAgICAgICAgZnVuYyA9IGFyZ3NbMF0KICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgZnVuYygqYXJnc1sxOl0sICoqa3dhcmdzKQogICAgICAg
ICBleGNlcHQgZXhwZWN0ZWRfZXhjZXB0aW9uOgotICAgICAgICAgICAgcmV0dXJuIF9weXRlc3Qu
X2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5F
eGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCiAgICAgZmFpbChtZXNzYWdlKQogCiAKQEAgLTY1
MCw3ICs3MjAsNiBAQCByYWlzZXMuRXhjZXB0aW9uID0gZmFpbC5FeGNlcHRpb24KIAogCiBjbGFz
cyBSYWlzZXNDb250ZXh0KG9iamVjdCk6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhwZWN0
ZWRfZXhjZXB0aW9uLCBtZXNzYWdlLCBtYXRjaF9leHByKToKICAgICAgICAgc2VsZi5leHBlY3Rl
ZF9leGNlcHRpb24gPSBleHBlY3RlZF9leGNlcHRpb24KICAgICAgICAgc2VsZi5tZXNzYWdlID0g
bWVzc2FnZQpAQCAtNjU4LDcgKzcyNyw3IEBAIGNsYXNzIFJhaXNlc0NvbnRleHQob2JqZWN0KToK
ICAgICAgICAgc2VsZi5leGNpbmZvID0gTm9uZQogCiAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToK
LSAgICAgICAgc2VsZi5leGNpbmZvID0gb2JqZWN0Ll9fbmV3X18oX3B5dGVzdC5fY29kZS5FeGNl
cHRpb25JbmZvKQorICAgICAgICBzZWxmLmV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlv
bkluZm8uZm9yX2xhdGVyKCkKICAgICAgICAgcmV0dXJuIHNlbGYuZXhjaW5mbwogCiAgICAgZGVm
IF9fZXhpdF9fKHNlbGYsICp0cCk6CkBAIC02NjksNiArNzM4LDYgQEAgY2xhc3MgUmFpc2VzQ29u
dGV4dChvYmplY3QpOgogICAgICAgICBzdXBwcmVzc19leGNlcHRpb24gPSBpc3N1YmNsYXNzKHNl
bGYuZXhjaW5mby50eXBlLCBzZWxmLmV4cGVjdGVkX2V4Y2VwdGlvbikKICAgICAgICAgaWYgc3lz
LnZlcnNpb25faW5mb1swXSA9PSAyIGFuZCBzdXBwcmVzc19leGNlcHRpb246CiAgICAgICAgICAg
ICBzeXMuZXhjX2NsZWFyKCkKLSAgICAgICAgaWYgc2VsZi5tYXRjaF9leHByIGFuZCBzdXBwcmVz
c19leGNlcHRpb246CisgICAgICAgIGlmIHNlbGYubWF0Y2hfZXhwciBpcyBub3QgTm9uZSBhbmQg
c3VwcHJlc3NfZXhjZXB0aW9uOgogICAgICAgICAgICAgc2VsZi5leGNpbmZvLm1hdGNoKHNlbGYu
bWF0Y2hfZXhwcikKICAgICAgICAgcmV0dXJuIHN1cHByZXNzX2V4Y2VwdGlvbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcmVjd2Fybi5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L3JlY3dhcm4ucHkKaW5kZXggNzgzOWY1NzAwYzg3NWJjNzIzNTQyOGM5NWY4NDdjMGQ5
NjBjZTU0Mi4uN2FiZjJlOTM1NTAyZGUzYzMzM2RjZGIxNDEzMDJmZDZhYWQ1MjRhNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcmVjd2Fybi5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9yZWN3YXJuLnB5CkBAIC0xLDE1ICsxLDE5IEBACisjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQogIiIiIHJlY29yZGluZyB3YXJuaW5ncyBkdXJpbmcgdGVzdCBmdW5jdGlvbiBl
eGVjdXRpb24uICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IGluc3BlY3QKLQotaW1wb3J0IF9weXRlc3Qu
X2NvZGUKLWltcG9ydCBweQoraW1wb3J0IHJlCiBpbXBvcnQgc3lzCiBpbXBvcnQgd2FybmluZ3MK
IAotaW1wb3J0IHJlCitpbXBvcnQgc2l4CiAKK2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCitmcm9tIF9w
eXRlc3QuZGVwcmVjYXRlZCBpbXBvcnQgUFlURVNUX1dBUk5TX1VOS05PV05fS1dBUkdTCitmcm9t
IF9weXRlc3QuZGVwcmVjYXRlZCBpbXBvcnQgV0FSTlNfRVhFQwogZnJvbSBfcHl0ZXN0LmZpeHR1
cmVzIGltcG9ydCB5aWVsZF9maXh0dXJlCiBmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZh
aWwKIApAQCAtNDMsNDUgKzQ3LDEwIEBAIGRlZiBkZXByZWNhdGVkX2NhbGwoZnVuYz1Ob25lLCAq
YXJncywgKiprd2FyZ3MpOgogICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBlbnN1cmUgY2FsbGlu
ZyBgYGZ1bmMoKmFyZ3MsICoqa3dhcmdzKWBgIHByb2R1Y2VzIG9uZSBvZiB0aGUgd2FybmluZ3MK
ICAgICB0eXBlcyBhYm92ZS4KICAgICAiIiIKLSAgICBpZiBub3QgZnVuYzoKLSAgICAgICAgcmV0
dXJuIF9EZXByZWNhdGVkQ2FsbENvbnRleHQoKQotICAgIGVsc2U6Ci0gICAgICAgIF9fdHJhY2Vi
YWNraGlkZV9fID0gVHJ1ZQotICAgICAgICB3aXRoIF9EZXByZWNhdGVkQ2FsbENvbnRleHQoKToK
LSAgICAgICAgICAgIHJldHVybiBmdW5jKCphcmdzLCAqKmt3YXJncykKLQotCi1jbGFzcyBfRGVw
cmVjYXRlZENhbGxDb250ZXh0KG9iamVjdCk6Ci0gICAgIiIiSW1wbGVtZW50cyB0aGUgbG9naWMg
dG8gY2FwdHVyZSBkZXByZWNhdGlvbiB3YXJuaW5ncyBhcyBhIGNvbnRleHQgbWFuYWdlci4iIiIK
LQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAgICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVn
b3JpZXMgPSBbXQotICAgICAgICBzZWxmLl9vbGRfd2FybiA9IHdhcm5pbmdzLndhcm4KLSAgICAg
ICAgc2VsZi5fb2xkX3dhcm5fZXhwbGljaXQgPSB3YXJuaW5ncy53YXJuX2V4cGxpY2l0Ci0gICAg
ICAgIHdhcm5pbmdzLndhcm5fZXhwbGljaXQgPSBzZWxmLl93YXJuX2V4cGxpY2l0Ci0gICAgICAg
IHdhcm5pbmdzLndhcm4gPSBzZWxmLl93YXJuCi0KLSAgICBkZWYgX3dhcm5fZXhwbGljaXQoc2Vs
ZiwgbWVzc2FnZSwgY2F0ZWdvcnksICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIHNlbGYuX2Nh
cHR1cmVkX2NhdGVnb3JpZXMuYXBwZW5kKGNhdGVnb3J5KQotCi0gICAgZGVmIF93YXJuKHNlbGYs
IG1lc3NhZ2UsIGNhdGVnb3J5PU5vbmUsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIGlmIGlz
aW5zdGFuY2UobWVzc2FnZSwgV2FybmluZyk6Ci0gICAgICAgICAgICBzZWxmLl9jYXB0dXJlZF9j
YXRlZ29yaWVzLmFwcGVuZChtZXNzYWdlLl9fY2xhc3NfXykKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVnb3JpZXMuYXBwZW5kKGNhdGVnb3J5KQotCi0gICAg
ZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsLCBleGNfdGIpOgotICAgICAgICB3
YXJuaW5ncy53YXJuX2V4cGxpY2l0ID0gc2VsZi5fb2xkX3dhcm5fZXhwbGljaXQKLSAgICAgICAg
d2FybmluZ3Mud2FybiA9IHNlbGYuX29sZF93YXJuCi0KLSAgICAgICAgaWYgZXhjX3R5cGUgaXMg
Tm9uZToKLSAgICAgICAgICAgIGRlcHJlY2F0aW9uX2NhdGVnb3JpZXMgPSAoRGVwcmVjYXRpb25X
YXJuaW5nLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICAgICAgaWYgbm90IGFu
eSgKLSAgICAgICAgICAgICAgICBpc3N1YmNsYXNzKGMsIGRlcHJlY2F0aW9uX2NhdGVnb3JpZXMp
IGZvciBjIGluIHNlbGYuX2NhcHR1cmVkX2NhdGVnb3JpZXMKLSAgICAgICAgICAgICk6Ci0gICAg
ICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgICAgICAgICAgbXNn
ID0gIkRpZCBub3QgcHJvZHVjZSBEZXByZWNhdGlvbldhcm5pbmcgb3IgUGVuZGluZ0RlcHJlY2F0
aW9uV2FybmluZyIKLSAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcihtc2cpCisg
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgaWYgZnVuYyBpcyBub3QgTm9uZToKKyAg
ICAgICAgYXJncyA9IChmdW5jLCkgKyBhcmdzCisgICAgcmV0dXJuIHdhcm5zKChEZXByZWNhdGlv
bldhcm5pbmcsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcpLCAqYXJncywgKiprd2FyZ3MpCiAK
IAogZGVmIHdhcm5zKGV4cGVjdGVkX3dhcm5pbmcsICphcmdzLCAqKmt3YXJncyk6CkBAIC0xMTYs
MjQgKzg1LDI4IEBAIGRlZiB3YXJucyhleHBlY3RlZF93YXJuaW5nLCAqYXJncywgKiprd2FyZ3Mp
OgogICAgICAgICBGYWlsZWQ6IERJRCBOT1QgV0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlwZSAuLi5V
c2VyV2FybmluZy4uLiB3YXMgZW1pdHRlZC4uLgogCiAgICAgIiIiCi0gICAgbWF0Y2hfZXhwciA9
IE5vbmUKKyAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKICAgICBpZiBub3QgYXJnczoKLSAg
ICAgICAgaWYgIm1hdGNoIiBpbiBrd2FyZ3M6Ci0gICAgICAgICAgICBtYXRjaF9leHByID0ga3dh
cmdzLnBvcCgibWF0Y2giKQorICAgICAgICBtYXRjaF9leHByID0ga3dhcmdzLnBvcCgibWF0Y2gi
LCBOb25lKQorICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAor
ICAgICAgICAgICAgICAgIFBZVEVTVF9XQVJOU19VTktOT1dOX0tXQVJHUy5mb3JtYXQoYXJncz1z
b3J0ZWQoa3dhcmdzKSksIHN0YWNrbGV2ZWw9MgorICAgICAgICAgICAgKQogICAgICAgICByZXR1
cm4gV2FybmluZ3NDaGVja2VyKGV4cGVjdGVkX3dhcm5pbmcsIG1hdGNoX2V4cHI9bWF0Y2hfZXhw
cikKICAgICBlbGlmIGlzaW5zdGFuY2UoYXJnc1swXSwgc3RyKToKLSAgICAgICAgY29kZSwgPSBh
cmdzCisgICAgICAgIHdhcm5pbmdzLndhcm4oV0FSTlNfRVhFQywgc3RhY2tsZXZlbD0yKQorICAg
ICAgICAoY29kZSwpID0gYXJncwogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2RlLCBzdHIp
CiAgICAgICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgxKQogICAgICAgICBsb2MgPSBmcmFtZS5m
X2xvY2Fscy5jb3B5KCkKICAgICAgICAgbG9jLnVwZGF0ZShrd2FyZ3MpCiAKLSAgICAgICAgd2l0
aCBXYXJuaW5nc0NoZWNrZXIoZXhwZWN0ZWRfd2FybmluZywgbWF0Y2hfZXhwcj1tYXRjaF9leHBy
KToKKyAgICAgICAgd2l0aCBXYXJuaW5nc0NoZWNrZXIoZXhwZWN0ZWRfd2FybmluZyk6CiAgICAg
ICAgICAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoY29kZSkuY29tcGlsZSgpCi0gICAg
ICAgICAgICBweS5idWlsdGluLmV4ZWNfKGNvZGUsIGZyYW1lLmZfZ2xvYmFscywgbG9jKQorICAg
ICAgICAgICAgZXhlYyhjb2RlLCBmcmFtZS5mX2dsb2JhbHMsIGxvYykKICAgICBlbHNlOgogICAg
ICAgICBmdW5jID0gYXJnc1swXQotICAgICAgICB3aXRoIFdhcm5pbmdzQ2hlY2tlcihleHBlY3Rl
ZF93YXJuaW5nLCBtYXRjaF9leHByPW1hdGNoX2V4cHIpOgorICAgICAgICB3aXRoIFdhcm5pbmdz
Q2hlY2tlcihleHBlY3RlZF93YXJuaW5nKToKICAgICAgICAgICAgIHJldHVybiBmdW5jKCphcmdz
WzE6XSwgKiprd2FyZ3MpCiAKIApAQCAtMTgzLDIzICsxNTYsNTYgQEAgY2xhc3MgV2FybmluZ3NS
ZWNvcmRlcih3YXJuaW5ncy5jYXRjaF93YXJuaW5ncyk6CiAgICAgICAgICAgICByYWlzZSBSdW50
aW1lRXJyb3IoIkNhbm5vdCBlbnRlciAlciB0d2ljZSIgJSBzZWxmKQogICAgICAgICBzZWxmLl9s
aXN0ID0gc3VwZXIoV2FybmluZ3NSZWNvcmRlciwgc2VsZikuX19lbnRlcl9fKCkKICAgICAgICAg
d2FybmluZ3Muc2ltcGxlZmlsdGVyKCJhbHdheXMiKQorICAgICAgICAjIHB5dGhvbjMga2VlcHMg
dHJhY2sgb2YgYSAiZmlsdGVyIHZlcnNpb24iLCB3aGVuIHRoZSBmaWx0ZXJzIGFyZQorICAgICAg
ICAjIHVwZGF0ZWQgcHJldmlvdXNseSBzZWVuIHdhcm5pbmdzIGNhbiBiZSByZS13YXJuZWQuICBw
eXRob24yIGhhcyBubworICAgICAgICAjIGNvbmNlcHQgb2YgdGhpcyBzbyB3ZSBtdXN0IHJlc2V0
IHRoZSB3YXJuaW5ncyByZWdpc3RyeSBtYW51YWxseS4KKyAgICAgICAgIyB0cml2aWFsIHBhdGNo
aW5nIG9mIGB3YXJuaW5ncy53YXJuYCBzZWVtcyB0byBiZSBlbm91Z2ggc29tZWhvdz8KKyAgICAg
ICAgaWYgc2l4LlBZMjoKKworICAgICAgICAgICAgZGVmIHdhcm4obWVzc2FnZSwgY2F0ZWdvcnk9
Tm9uZSwgc3RhY2tsZXZlbD0xKToKKyAgICAgICAgICAgICAgICAjIGR1cGxpY2F0ZSB0aGUgc3Rk
bGliIGxvZ2ljIGR1ZSB0bworICAgICAgICAgICAgICAgICMgYmFkIGhhbmRpbmcgaW4gdGhlIGMg
dmVyc2lvbiBvZiB3YXJuaW5ncworICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UobWVzc2Fn
ZSwgV2FybmluZyk6CisgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gbWVzc2FnZS5fX2Ns
YXNzX18KKyAgICAgICAgICAgICAgICAjIENoZWNrIGNhdGVnb3J5IGFyZ3VtZW50CisgICAgICAg
ICAgICAgICAgaWYgY2F0ZWdvcnkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgY2F0ZWdv
cnkgPSBVc2VyV2FybmluZworICAgICAgICAgICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKGNhdGVn
b3J5LCBXYXJuaW5nKQorCisgICAgICAgICAgICAgICAgIyBlbXVsYXRlIHJlc2V0dGluZyB0aGUg
d2FybiByZWdpc3RyeQorICAgICAgICAgICAgICAgIGZfZ2xvYmFscyA9IHN5cy5fZ2V0ZnJhbWUo
c3RhY2tsZXZlbCkuZl9nbG9iYWxzCisgICAgICAgICAgICAgICAgaWYgIl9fd2FybmluZ3JlZ2lz
dHJ5X18iIGluIGZfZ2xvYmFsczoKKyAgICAgICAgICAgICAgICAgICAgb3JpZyA9IGZfZ2xvYmFs
c1siX193YXJuaW5ncmVnaXN0cnlfXyJdCisgICAgICAgICAgICAgICAgICAgIGZfZ2xvYmFsc1si
X193YXJuaW5ncmVnaXN0cnlfXyJdID0gTm9uZQorICAgICAgICAgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fc2F2ZWRfd2FybihtZXNzYWdlLCBj
YXRlZ29yeSwgc3RhY2tsZXZlbCArIDEpCisgICAgICAgICAgICAgICAgICAgIGZpbmFsbHk6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmX2dsb2JhbHNbIl9fd2FybmluZ3JlZ2lzdHJ5X18iXSA9
IG9yaWcKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
c2VsZi5fc2F2ZWRfd2FybihtZXNzYWdlLCBjYXRlZ29yeSwgc3RhY2tsZXZlbCArIDEpCisKKyAg
ICAgICAgICAgIHdhcm5pbmdzLndhcm4sIHNlbGYuX3NhdmVkX3dhcm4gPSB3YXJuLCB3YXJuaW5n
cy53YXJuCiAgICAgICAgIHJldHVybiBzZWxmCiAKICAgICBkZWYgX19leGl0X18oc2VsZiwgKmV4
Y19pbmZvKToKICAgICAgICAgaWYgbm90IHNlbGYuX2VudGVyZWQ6CiAgICAgICAgICAgICBfX3Ry
YWNlYmFja2hpZGVfXyA9IFRydWUKICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiQ2Fu
bm90IGV4aXQgJXIgd2l0aG91dCBlbnRlcmluZyBmaXJzdCIgJSBzZWxmKQorICAgICAgICAjIHNl
ZSBhYm92ZSB3aGVyZSBgc2VsZi5fc2F2ZWRfd2FybmAgaXMgYXNzaWduZWQKKyAgICAgICAgaWYg
c2l4LlBZMjoKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4gPSBzZWxmLl9zYXZlZF93YXJuCiAg
ICAgICAgIHN1cGVyKFdhcm5pbmdzUmVjb3JkZXIsIHNlbGYpLl9fZXhpdF9fKCpleGNfaW5mbykK
IAorICAgICAgICAjIEJ1aWx0LWluIGNhdGNoX3dhcm5pbmdzIGRvZXMgbm90IHJlc2V0IGVudGVy
ZWQgc3RhdGUgc28gd2UgZG8gaXQKKyAgICAgICAgIyBtYW51YWxseSBoZXJlIGZvciB0aGlzIGNv
bnRleHQgbWFuYWdlciB0byBiZWNvbWUgcmV1c2FibGUuCisgICAgICAgIHNlbGYuX2VudGVyZWQg
PSBGYWxzZQorCiAKIGNsYXNzIFdhcm5pbmdzQ2hlY2tlcihXYXJuaW5nc1JlY29yZGVyKToKLQog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHBlY3RlZF93YXJuaW5nPU5vbmUsIG1hdGNoX2V4cHI9
Tm9uZSk6CiAgICAgICAgIHN1cGVyKFdhcm5pbmdzQ2hlY2tlciwgc2VsZikuX19pbml0X18oKQog
Ci0gICAgICAgIG1zZyA9ICgKLSAgICAgICAgICAgICJleGNlcHRpb25zIG11c3QgYmUgb2xkLXN0
eWxlIGNsYXNzZXMgb3IgIiAiZGVyaXZlZCBmcm9tIFdhcm5pbmcsIG5vdCAlcyIKLSAgICAgICAg
KQorICAgICAgICBtc2cgPSAiZXhjZXB0aW9ucyBtdXN0IGJlIG9sZC1zdHlsZSBjbGFzc2VzIG9y
IGRlcml2ZWQgZnJvbSBXYXJuaW5nLCBub3QgJXMiCiAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXhw
ZWN0ZWRfd2FybmluZywgdHVwbGUpOgogICAgICAgICAgICAgZm9yIGV4YyBpbiBleHBlY3RlZF93
YXJuaW5nOgogICAgICAgICAgICAgICAgIGlmIG5vdCBpbnNwZWN0LmlzY2xhc3MoZXhjKToKQEAg
LTIxNSw2ICsyMjEsOCBAQCBjbGFzcyBXYXJuaW5nc0NoZWNrZXIoV2FybmluZ3NSZWNvcmRlcik6
CiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICpleGNfaW5mbyk6CiAgICAgICAgIHN1cGVyKFdhcm5p
bmdzQ2hlY2tlciwgc2VsZikuX19leGl0X18oKmV4Y19pbmZvKQogCisgICAgICAgIF9fdHJhY2Vi
YWNraGlkZV9fID0gVHJ1ZQorCiAgICAgICAgICMgb25seSBjaGVjayBpZiB3ZSdyZSBub3QgY3Vy
cmVudGx5IGhhbmRsaW5nIGFuIGV4Y2VwdGlvbgogICAgICAgICBpZiBhbGwoYSBpcyBOb25lIGZv
ciBhIGluIGV4Y19pbmZvKToKICAgICAgICAgICAgIGlmIHNlbGYuZXhwZWN0ZWRfd2FybmluZyBp
cyBub3QgTm9uZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3JlcG9ydHMu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9yZXBvcnRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiYmE2
NzYyYzMzYTc1ZWE3ODkxYjNlM2ZlNmZlN2JhZDUzMjg5ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9yZXBvcnRzLnB5CkBAIC0wLDAgKzEsNDM1IEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAorCitpbXBvcnQg
cHkKK2ltcG9ydCBzaXgKKworZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IEV4Y2VwdGlv
bkluZm8KK2Zyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBSZXByRW50cnkKK2Zyb20gX3B5
dGVzdC5fY29kZS5jb2RlIGltcG9ydCBSZXByRW50cnlOYXRpdmUKK2Zyb20gX3B5dGVzdC5fY29k
ZS5jb2RlIGltcG9ydCBSZXByRXhjZXB0aW9uSW5mbworZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUg
aW1wb3J0IFJlcHJGaWxlTG9jYXRpb24KK2Zyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBS
ZXByRnVuY0FyZ3MKK2Zyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBSZXByTG9jYWxzCitm
cm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgUmVwclRyYWNlYmFjaworZnJvbSBfcHl0ZXN0
Ll9jb2RlLmNvZGUgaW1wb3J0IFRlcm1pbmFsUmVwcgorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGlt
cG9ydCBza2lwCitmcm9tIF9weXRlc3QucGF0aGxpYiBpbXBvcnQgUGF0aAorCisKK2RlZiBnZXRz
bGF2ZWluZm9saW5lKG5vZGUpOgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIG5vZGUuX3NsYXZl
aW5mb2NhY2hlCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICBkID0gbm9kZS5z
bGF2ZWluZm8KKyAgICAgICAgdmVyID0gIiVzLiVzLiVzIiAlIGRbInZlcnNpb25faW5mbyJdWzoz
XQorICAgICAgICBub2RlLl9zbGF2ZWluZm9jYWNoZSA9IHMgPSAiWyVzXSAlcyAtLSBQeXRob24g
JXMgJXMiICUgKAorICAgICAgICAgICAgZFsiaWQiXSwKKyAgICAgICAgICAgIGRbInN5c3BsYXRm
b3JtIl0sCisgICAgICAgICAgICB2ZXIsCisgICAgICAgICAgICBkWyJleGVjdXRhYmxlIl0sCisg
ICAgICAgICkKKyAgICAgICAgcmV0dXJuIHMKKworCitjbGFzcyBCYXNlUmVwb3J0KG9iamVjdCk6
CisgICAgd2hlbiA9IE5vbmUKKyAgICBsb2NhdGlvbiA9IE5vbmUKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCAqKmt3KToKKyAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoa3cpCisKKyAgICBk
ZWYgdG90ZXJtaW5hbChzZWxmLCBvdXQpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJub2Rl
Iik6CisgICAgICAgICAgICBvdXQubGluZShnZXRzbGF2ZWluZm9saW5lKHNlbGYubm9kZSkpCisK
KyAgICAgICAgbG9uZ3JlcHIgPSBzZWxmLmxvbmdyZXByCisgICAgICAgIGlmIGxvbmdyZXByIGlz
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiBoYXNhdHRyKGxvbmdyZXBy
LCAidG90ZXJtaW5hbCIpOgorICAgICAgICAgICAgbG9uZ3JlcHIudG90ZXJtaW5hbChvdXQpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgb3V0LmxpbmUo
bG9uZ3JlcHIpCisgICAgICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAg
ICAgICAgICAgIG91dC5saW5lKCI8dW5wcmludGFibGUgbG9uZ3JlcHI+IikKKworICAgIGRlZiBn
ZXRfc2VjdGlvbnMoc2VsZiwgcHJlZml4KToKKyAgICAgICAgZm9yIG5hbWUsIGNvbnRlbnQgaW4g
c2VsZi5zZWN0aW9uczoKKyAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aChwcmVmaXgpOgor
ICAgICAgICAgICAgICAgIHlpZWxkIHByZWZpeCwgY29udGVudAorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGxvbmdyZXBydGV4dChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJlYWQtb25s
eSBwcm9wZXJ0eSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc3RyaW5nIHJlcHJlc2VudGF0aW9uCisg
ICAgICAgIG9mIGBgbG9uZ3JlcHJgYC4KKworICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjAK
KyAgICAgICAgIiIiCisgICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoc3RyaW5naW89
VHJ1ZSkKKyAgICAgICAgdHcuaGFzbWFya3VwID0gRmFsc2UKKyAgICAgICAgc2VsZi50b3Rlcm1p
bmFsKHR3KQorICAgICAgICBleGMgPSB0dy5zdHJpbmdpby5nZXR2YWx1ZSgpCisgICAgICAgIHJl
dHVybiBleGMuc3RyaXAoKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNhcGxvZyhzZWxmKToK
KyAgICAgICAgIiIiUmV0dXJuIGNhcHR1cmVkIGxvZyBsaW5lcywgaWYgbG9nIGNhcHR1cmluZyBp
cyBlbmFibGVkCisKKyAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy41CisgICAgICAgICIiIgor
ICAgICAgICByZXR1cm4gIlxuIi5qb2luKAorICAgICAgICAgICAgY29udGVudCBmb3IgKHByZWZp
eCwgY29udGVudCkgaW4gc2VsZi5nZXRfc2VjdGlvbnMoIkNhcHR1cmVkIGxvZyIpCisgICAgICAg
ICkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjYXBzdGRvdXQoc2VsZik6CisgICAgICAgICIi
IlJldHVybiBjYXB0dXJlZCB0ZXh0IGZyb20gc3Rkb3V0LCBpZiBjYXB0dXJpbmcgaXMgZW5hYmxl
ZAorCisgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMAorICAgICAgICAiIiIKKyAgICAgICAg
cmV0dXJuICIiLmpvaW4oCisgICAgICAgICAgICBjb250ZW50IGZvciAocHJlZml4LCBjb250ZW50
KSBpbiBzZWxmLmdldF9zZWN0aW9ucygiQ2FwdHVyZWQgc3Rkb3V0IikKKyAgICAgICAgKQorCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIGNhcHN0ZGVycihzZWxmKToKKyAgICAgICAgIiIiUmV0dXJu
IGNhcHR1cmVkIHRleHQgZnJvbSBzdGRlcnIsIGlmIGNhcHR1cmluZyBpcyBlbmFibGVkCisKKyAg
ICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4wCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4g
IiIuam9pbigKKyAgICAgICAgICAgIGNvbnRlbnQgZm9yIChwcmVmaXgsIGNvbnRlbnQpIGluIHNl
bGYuZ2V0X3NlY3Rpb25zKCJDYXB0dXJlZCBzdGRlcnIiKQorICAgICAgICApCisKKyAgICBwYXNz
ZWQgPSBwcm9wZXJ0eShsYW1iZGEgeDogeC5vdXRjb21lID09ICJwYXNzZWQiKQorICAgIGZhaWxl
ZCA9IHByb3BlcnR5KGxhbWJkYSB4OiB4Lm91dGNvbWUgPT0gImZhaWxlZCIpCisgICAgc2tpcHBl
ZCA9IHByb3BlcnR5KGxhbWJkYSB4OiB4Lm91dGNvbWUgPT0gInNraXBwZWQiKQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGZzcGF0aChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubm9kZWlk
LnNwbGl0KCI6OiIpWzBdCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY291bnRfdG93YXJkc19z
dW1tYXJ5KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgKipFeHBlcmltZW50YWwqKgorCisg
ICAgICAgIFJldHVybnMgVHJ1ZSBpZiB0aGlzIHJlcG9ydCBzaG91bGQgYmUgY291bnRlZCB0b3dh
cmRzIHRoZSB0b3RhbHMgc2hvd24gYXQgdGhlIGVuZCBvZiB0aGUKKyAgICAgICAgdGVzdCBzZXNz
aW9uOiAiMSBwYXNzZWQsIDEgZmFpbHVyZSwgZXRjIi4KKworICAgICAgICAuLiBub3RlOjoKKwor
ICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBjb25zaWRlcmVkICoqZXhwZXJpbWVudGFsKios
IHNvIGJld2FyZSB0aGF0IGl0IGlzIHN1YmplY3QgdG8gY2hhbmdlcworICAgICAgICAgICAgZXZl
biBpbiBwYXRjaCByZWxlYXNlcy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBUcnVlCisK
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgaGVhZF9saW5lKHNlbGYpOgorICAgICAgICAiIiIKKyAg
ICAgICAgKipFeHBlcmltZW50YWwqKgorCisgICAgICAgIFJldHVybnMgdGhlIGhlYWQgbGluZSBz
aG93biB3aXRoIGxvbmdyZXByIG91dHB1dCBmb3IgdGhpcyByZXBvcnQsIG1vcmUgY29tbW9ubHkg
ZHVyaW5nCisgICAgICAgIHRyYWNlYmFjayByZXByZXNlbnRhdGlvbiBkdXJpbmcgZmFpbHVyZXM6
OgorCisgICAgICAgICAgICBfX19fX19fXyBUZXN0LmZvbyBfX19fX19fXworCisKKyAgICAgICAg
SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHRoZSBoZWFkX2xpbmUgaXMgIlRlc3QuZm9vIi4KKworICAg
ICAgICAuLiBub3RlOjoKKworICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBjb25zaWRlcmVk
ICoqZXhwZXJpbWVudGFsKiosIHNvIGJld2FyZSB0aGF0IGl0IGlzIHN1YmplY3QgdG8gY2hhbmdl
cworICAgICAgICAgICAgZXZlbiBpbiBwYXRjaCByZWxlYXNlcy4KKyAgICAgICAgIiIiCisgICAg
ICAgIGlmIHNlbGYubG9jYXRpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmc3BhdGgsIGxp
bmVubywgZG9tYWluID0gc2VsZi5sb2NhdGlvbgorICAgICAgICAgICAgcmV0dXJuIGRvbWFpbgor
CisgICAgZGVmIF9nZXRfdmVyYm9zZV93b3JkKHNlbGYsIGNvbmZpZyk6CisgICAgICAgIF9jYXRl
Z29yeSwgX3Nob3J0LCB2ZXJib3NlID0gY29uZmlnLmhvb2sucHl0ZXN0X3JlcG9ydF90ZXN0c3Rh
dHVzKAorICAgICAgICAgICAgcmVwb3J0PXNlbGYsIGNvbmZpZz1jb25maWcKKyAgICAgICAgKQor
ICAgICAgICByZXR1cm4gdmVyYm9zZQorCisgICAgZGVmIF90b19qc29uKHNlbGYpOgorICAgICAg
ICAiIiIKKyAgICAgICAgVGhpcyB3YXMgb3JpZ2luYWxseSB0aGUgc2VyaWFsaXplX3JlcG9ydCgp
IGZ1bmN0aW9uIGZyb20geGRpc3QgKGNhMDMyNjkpLgorCisgICAgICAgIFJldHVybnMgdGhlIGNv
bnRlbnRzIG9mIHRoaXMgcmVwb3J0IGFzIGEgZGljdCBvZiBidWlsdGluIGVudHJpZXMsIHN1aXRh
YmxlIGZvcgorICAgICAgICBzZXJpYWxpemF0aW9uLgorCisgICAgICAgIEV4cGVyaW1lbnRhbCBt
ZXRob2QuCisgICAgICAgICIiIgorCisgICAgICAgIGRlZiBkaXNhc3NlbWJsZWRfcmVwb3J0KHJl
cCk6CisgICAgICAgICAgICByZXBydHJhY2ViYWNrID0gcmVwLmxvbmdyZXByLnJlcHJ0cmFjZWJh
Y2suX19kaWN0X18uY29weSgpCisgICAgICAgICAgICByZXByY3Jhc2ggPSByZXAubG9uZ3JlcHIu
cmVwcmNyYXNoLl9fZGljdF9fLmNvcHkoKQorCisgICAgICAgICAgICBuZXdfZW50cmllcyA9IFtd
CisgICAgICAgICAgICBmb3IgZW50cnkgaW4gcmVwcnRyYWNlYmFja1sicmVwcmVudHJpZXMiXToK
KyAgICAgICAgICAgICAgICBlbnRyeV9kYXRhID0geworICAgICAgICAgICAgICAgICAgICAidHlw
ZSI6IHR5cGUoZW50cnkpLl9fbmFtZV9fLAorICAgICAgICAgICAgICAgICAgICAiZGF0YSI6IGVu
dHJ5Ll9fZGljdF9fLmNvcHkoKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
Zm9yIGtleSwgdmFsdWUgaW4gZW50cnlfZGF0YVsiZGF0YSJdLml0ZW1zKCk6CisgICAgICAgICAg
ICAgICAgICAgIGlmIGhhc2F0dHIodmFsdWUsICJfX2RpY3RfXyIpOgorICAgICAgICAgICAgICAg
ICAgICAgICAgZW50cnlfZGF0YVsiZGF0YSJdW2tleV0gPSB2YWx1ZS5fX2RpY3RfXy5jb3B5KCkK
KyAgICAgICAgICAgICAgICBuZXdfZW50cmllcy5hcHBlbmQoZW50cnlfZGF0YSkKKworICAgICAg
ICAgICAgcmVwcnRyYWNlYmFja1sicmVwcmVudHJpZXMiXSA9IG5ld19lbnRyaWVzCisKKyAgICAg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgInJlcHJjcmFzaCI6IHJlcHJjcmFzaCwK
KyAgICAgICAgICAgICAgICAicmVwcnRyYWNlYmFjayI6IHJlcHJ0cmFjZWJhY2ssCisgICAgICAg
ICAgICAgICAgInNlY3Rpb25zIjogcmVwLmxvbmdyZXByLnNlY3Rpb25zLAorICAgICAgICAgICAg
fQorCisgICAgICAgIGQgPSBzZWxmLl9fZGljdF9fLmNvcHkoKQorICAgICAgICBpZiBoYXNhdHRy
KHNlbGYubG9uZ3JlcHIsICJ0b3Rlcm1pbmFsIik6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNl
bGYubG9uZ3JlcHIsICJyZXBydHJhY2ViYWNrIikgYW5kIGhhc2F0dHIoCisgICAgICAgICAgICAg
ICAgc2VsZi5sb25ncmVwciwgInJlcHJjcmFzaCIKKyAgICAgICAgICAgICk6CisgICAgICAgICAg
ICAgICAgZFsibG9uZ3JlcHIiXSA9IGRpc2Fzc2VtYmxlZF9yZXBvcnQoc2VsZikKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZFsibG9uZ3JlcHIiXSA9IHNpeC50ZXh0X3R5cGUo
c2VsZi5sb25ncmVwcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRbImxvbmdyZXByIl0g
PSBzZWxmLmxvbmdyZXByCisgICAgICAgIGZvciBuYW1lIGluIGQ6CisgICAgICAgICAgICBpZiBp
c2luc3RhbmNlKGRbbmFtZV0sIChweS5wYXRoLmxvY2FsLCBQYXRoKSk6CisgICAgICAgICAgICAg
ICAgZFtuYW1lXSA9IHN0cihkW25hbWVdKQorICAgICAgICAgICAgZWxpZiBuYW1lID09ICJyZXN1
bHQiOgorICAgICAgICAgICAgICAgIGRbbmFtZV0gPSBOb25lICAjIGZvciBub3cKKyAgICAgICAg
cmV0dXJuIGQKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfZnJvbV9qc29uKGNscywgcmVw
b3J0ZGljdCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIHdhcyBvcmlnaW5hbGx5IHRoZSBz
ZXJpYWxpemVfcmVwb3J0KCkgZnVuY3Rpb24gZnJvbSB4ZGlzdCAoY2EwMzI2OSkuCisKKyAgICAg
ICAgRmFjdG9yeSBtZXRob2QgdGhhdCByZXR1cm5zIGVpdGhlciBhIFRlc3RSZXBvcnQgb3IgQ29s
bGVjdFJlcG9ydCwgZGVwZW5kaW5nIG9uIHRoZSBjYWxsaW5nCisgICAgICAgIGNsYXNzLiBJdCdz
IHRoZSBjYWxsZXJzIHJlc3BvbnNpYmlsaXR5IHRvIGtub3cgd2hpY2ggY2xhc3MgdG8gcGFzcyBo
ZXJlLgorCisgICAgICAgIEV4cGVyaW1lbnRhbCBtZXRob2QuCisgICAgICAgICIiIgorICAgICAg
ICBpZiByZXBvcnRkaWN0WyJsb25ncmVwciJdOgorICAgICAgICAgICAgaWYgKAorICAgICAgICAg
ICAgICAgICJyZXByY3Jhc2giIGluIHJlcG9ydGRpY3RbImxvbmdyZXByIl0KKyAgICAgICAgICAg
ICAgICBhbmQgInJlcHJ0cmFjZWJhY2siIGluIHJlcG9ydGRpY3RbImxvbmdyZXByIl0KKyAgICAg
ICAgICAgICk6CisKKyAgICAgICAgICAgICAgICByZXBydHJhY2ViYWNrID0gcmVwb3J0ZGljdFsi
bG9uZ3JlcHIiXVsicmVwcnRyYWNlYmFjayJdCisgICAgICAgICAgICAgICAgcmVwcmNyYXNoID0g
cmVwb3J0ZGljdFsibG9uZ3JlcHIiXVsicmVwcmNyYXNoIl0KKworICAgICAgICAgICAgICAgIHVu
c2VyaWFsaXplZF9lbnRyaWVzID0gW10KKyAgICAgICAgICAgICAgICByZXByZW50cnkgPSBOb25l
CisgICAgICAgICAgICAgICAgZm9yIGVudHJ5X2RhdGEgaW4gcmVwcnRyYWNlYmFja1sicmVwcmVu
dHJpZXMiXToKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGVudHJ5X2RhdGFbImRhdGEiXQor
ICAgICAgICAgICAgICAgICAgICBlbnRyeV90eXBlID0gZW50cnlfZGF0YVsidHlwZSJdCisgICAg
ICAgICAgICAgICAgICAgIGlmIGVudHJ5X3R5cGUgPT0gIlJlcHJFbnRyeSI6CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXByZnVuY2FyZ3MgPSBOb25lCisgICAgICAgICAgICAgICAgICAgICAg
ICByZXByZmlsZWxvYyA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcHJsb2NhbHMg
PSBOb25lCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBkYXRhWyJyZXByZnVuY2FyZ3MiXToK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXByZnVuY2FyZ3MgPSBSZXByRnVuY0FyZ3Mo
KipkYXRhWyJyZXByZnVuY2FyZ3MiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRhdGFb
InJlcHJmaWxlbG9jIl06CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcmZpbGVsb2Mg
PSBSZXByRmlsZUxvY2F0aW9uKCoqZGF0YVsicmVwcmZpbGVsb2MiXSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIGRhdGFbInJlcHJsb2NhbHMiXToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBybG9jYWxzID0gUmVwckxvY2FscyhkYXRhWyJyZXBybG9jYWxzIl1bImxpbmVzIl0p
CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcHJlbnRyeSA9IFJlcHJFbnRyeSgKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsaW5lcz1kYXRhWyJsaW5lcyJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcHJmdW5jYXJncz1yZXByZnVuY2FyZ3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVwcmxvY2Fscz1yZXBybG9jYWxzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbGVsb2NyZXByPXJlcHJmaWxlbG9jLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0eWxlPWRhdGFbInN0eWxlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICApCisg
ICAgICAgICAgICAgICAgICAgIGVsaWYgZW50cnlfdHlwZSA9PSAiUmVwckVudHJ5TmF0aXZlIjoK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJlcHJlbnRyeSA9IFJlcHJFbnRyeU5hdGl2ZShkYXRh
WyJsaW5lcyJdKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICAgICAgX3JlcG9ydF91bnNlcmlhbGl6YXRpb25fZmFpbHVyZShlbnRyeV90eXBlLCBjbHMsIHJl
cG9ydGRpY3QpCisgICAgICAgICAgICAgICAgICAgIHVuc2VyaWFsaXplZF9lbnRyaWVzLmFwcGVu
ZChyZXByZW50cnkpCisgICAgICAgICAgICAgICAgcmVwcnRyYWNlYmFja1sicmVwcmVudHJpZXMi
XSA9IHVuc2VyaWFsaXplZF9lbnRyaWVzCisKKyAgICAgICAgICAgICAgICBleGNlcHRpb25faW5m
byA9IFJlcHJFeGNlcHRpb25JbmZvKAorICAgICAgICAgICAgICAgICAgICByZXBydHJhY2ViYWNr
PVJlcHJUcmFjZWJhY2soKipyZXBydHJhY2ViYWNrKSwKKyAgICAgICAgICAgICAgICAgICAgcmVw
cmNyYXNoPVJlcHJGaWxlTG9jYXRpb24oKipyZXByY3Jhc2gpLAorICAgICAgICAgICAgICAgICkK
KworICAgICAgICAgICAgICAgIGZvciBzZWN0aW9uIGluIHJlcG9ydGRpY3RbImxvbmdyZXByIl1b
InNlY3Rpb25zIl06CisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbl9pbmZvLmFkZHNlY3Rp
b24oKnNlY3Rpb24pCisgICAgICAgICAgICAgICAgcmVwb3J0ZGljdFsibG9uZ3JlcHIiXSA9IGV4
Y2VwdGlvbl9pbmZvCisKKyAgICAgICAgcmV0dXJuIGNscygqKnJlcG9ydGRpY3QpCisKKworZGVm
IF9yZXBvcnRfdW5zZXJpYWxpemF0aW9uX2ZhaWx1cmUodHlwZV9uYW1lLCByZXBvcnRfY2xhc3Ms
IHJlcG9ydGRpY3QpOgorICAgIHVybCA9ICJodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzIgorICAgIHN0cmVhbSA9IHB5LmlvLlRleHRJTygpCisgICAgcHByaW50KCIt
IiAqIDEwMCwgc3RyZWFtPXN0cmVhbSkKKyAgICBwcHJpbnQoIklOVEVSTkFMRVJST1I6IFVua25v
d24gZW50cnkgdHlwZSByZXR1cm5lZDogJXMiICUgdHlwZV9uYW1lLCBzdHJlYW09c3RyZWFtKQor
ICAgIHBwcmludCgicmVwb3J0X25hbWU6ICVzIiAlIHJlcG9ydF9jbGFzcywgc3RyZWFtPXN0cmVh
bSkKKyAgICBwcHJpbnQocmVwb3J0ZGljdCwgc3RyZWFtPXN0cmVhbSkKKyAgICBwcHJpbnQoIlBs
ZWFzZSByZXBvcnQgdGhpcyBidWcgYXQgJXMiICUgdXJsLCBzdHJlYW09c3RyZWFtKQorICAgIHBw
cmludCgiLSIgKiAxMDAsIHN0cmVhbT1zdHJlYW0pCisgICAgcmFpc2UgUnVudGltZUVycm9yKHN0
cmVhbS5nZXR2YWx1ZSgpKQorCisKK2NsYXNzIFRlc3RSZXBvcnQoQmFzZVJlcG9ydCk6CisgICAg
IiIiIEJhc2ljIHRlc3QgcmVwb3J0IG9iamVjdCAoYWxzbyB1c2VkIGZvciBzZXR1cCBhbmQgdGVh
cmRvd24gY2FsbHMgaWYKKyAgICB0aGV5IGZhaWwpLgorICAgICIiIgorCisgICAgX190ZXN0X18g
PSBGYWxzZQorCisgICAgZGVmIF9faW5pdF9fKAorICAgICAgICBzZWxmLAorICAgICAgICBub2Rl
aWQsCisgICAgICAgIGxvY2F0aW9uLAorICAgICAgICBrZXl3b3JkcywKKyAgICAgICAgb3V0Y29t
ZSwKKyAgICAgICAgbG9uZ3JlcHIsCisgICAgICAgIHdoZW4sCisgICAgICAgIHNlY3Rpb25zPSgp
LAorICAgICAgICBkdXJhdGlvbj0wLAorICAgICAgICB1c2VyX3Byb3BlcnRpZXM9Tm9uZSwKKyAg
ICAgICAgKipleHRyYQorICAgICk6CisgICAgICAgICM6IG5vcm1hbGl6ZWQgY29sbGVjdGlvbiBu
b2RlIGlkCisgICAgICAgIHNlbGYubm9kZWlkID0gbm9kZWlkCisKKyAgICAgICAgIzogYSAoZmls
ZXN5c3RlbXBhdGgsIGxpbmVubywgZG9tYWluaW5mbykgdHVwbGUgaW5kaWNhdGluZyB0aGUKKyAg
ICAgICAgIzogYWN0dWFsIGxvY2F0aW9uIG9mIGEgdGVzdCBpdGVtIC0gaXQgbWlnaHQgYmUgZGlm
ZmVyZW50IGZyb20gdGhlCisgICAgICAgICM6IGNvbGxlY3RlZCBvbmUgZS5nLiBpZiBhIG1ldGhv
ZCBpcyBpbmhlcml0ZWQgZnJvbSBhIGRpZmZlcmVudCBtb2R1bGUuCisgICAgICAgIHNlbGYubG9j
YXRpb24gPSBsb2NhdGlvbgorCisgICAgICAgICM6IGEgbmFtZSAtPiB2YWx1ZSBkaWN0aW9uYXJ5
IGNvbnRhaW5pbmcgYWxsIGtleXdvcmRzIGFuZAorICAgICAgICAjOiBtYXJrZXJzIGFzc29jaWF0
ZWQgd2l0aCBhIHRlc3QgaW52b2NhdGlvbi4KKyAgICAgICAgc2VsZi5rZXl3b3JkcyA9IGtleXdv
cmRzCisKKyAgICAgICAgIzogdGVzdCBvdXRjb21lLCBhbHdheXMgb25lIG9mICJwYXNzZWQiLCAi
ZmFpbGVkIiwgInNraXBwZWQiLgorICAgICAgICBzZWxmLm91dGNvbWUgPSBvdXRjb21lCisKKyAg
ICAgICAgIzogTm9uZSBvciBhIGZhaWx1cmUgcmVwcmVzZW50YXRpb24uCisgICAgICAgIHNlbGYu
bG9uZ3JlcHIgPSBsb25ncmVwcgorCisgICAgICAgICM6IG9uZSBvZiAnc2V0dXAnLCAnY2FsbCcs
ICd0ZWFyZG93bicgdG8gaW5kaWNhdGUgcnVudGVzdCBwaGFzZS4KKyAgICAgICAgc2VsZi53aGVu
ID0gd2hlbgorCisgICAgICAgICM6IHVzZXIgcHJvcGVydGllcyBpcyBhIGxpc3Qgb2YgdHVwbGVz
IChuYW1lLCB2YWx1ZSkgdGhhdCBob2xkcyB1c2VyCisgICAgICAgICM6IGRlZmluZWQgcHJvcGVy
dGllcyBvZiB0aGUgdGVzdAorICAgICAgICBzZWxmLnVzZXJfcHJvcGVydGllcyA9IGxpc3QodXNl
cl9wcm9wZXJ0aWVzIG9yIFtdKQorCisgICAgICAgICM6IGxpc3Qgb2YgcGFpcnMgYGAoc3RyLCBz
dHIpYGAgb2YgZXh0cmEgaW5mb3JtYXRpb24gd2hpY2ggbmVlZHMgdG8KKyAgICAgICAgIzogbWFy
c2hhbGxhYmxlLiBVc2VkIGJ5IHB5dGVzdCB0byBhZGQgY2FwdHVyZWQgdGV4dAorICAgICAgICAj
OiBmcm9tIGBgc3Rkb3V0YGAgYW5kIGBgc3RkZXJyYGAsIGJ1dCBtYXkgYmUgdXNlZCBieSBvdGhl
ciBwbHVnaW5zCisgICAgICAgICM6IHRvIGFkZCBhcmJpdHJhcnkgaW5mb3JtYXRpb24gdG8gcmVw
b3J0cy4KKyAgICAgICAgc2VsZi5zZWN0aW9ucyA9IGxpc3Qoc2VjdGlvbnMpCisKKyAgICAgICAg
IzogdGltZSBpdCB0b29rIHRvIHJ1biBqdXN0IHRoZSB0ZXN0CisgICAgICAgIHNlbGYuZHVyYXRp
b24gPSBkdXJhdGlvbgorCisgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGV4dHJhKQorCisg
ICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjwlcyAlciB3aGVuPSVyIG91
dGNvbWU9JXI+IiAlICgKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAg
ICAgICAgICAgc2VsZi5ub2RlaWQsCisgICAgICAgICAgICBzZWxmLndoZW4sCisgICAgICAgICAg
ICBzZWxmLm91dGNvbWUsCisgICAgICAgICkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBm
cm9tX2l0ZW1fYW5kX2NhbGwoY2xzLCBpdGVtLCBjYWxsKToKKyAgICAgICAgIiIiCisgICAgICAg
IEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhbmQgZmlsbCBhIFRlc3RSZXBvcnQgd2l0aCBzdGFu
ZGFyZCBpdGVtIGFuZCBjYWxsIGluZm8uCisgICAgICAgICIiIgorICAgICAgICB3aGVuID0gY2Fs
bC53aGVuCisgICAgICAgIGR1cmF0aW9uID0gY2FsbC5zdG9wIC0gY2FsbC5zdGFydAorICAgICAg
ICBrZXl3b3JkcyA9IHt4OiAxIGZvciB4IGluIGl0ZW0ua2V5d29yZHN9CisgICAgICAgIGV4Y2lu
Zm8gPSBjYWxsLmV4Y2luZm8KKyAgICAgICAgc2VjdGlvbnMgPSBbXQorICAgICAgICBpZiBub3Qg
Y2FsbC5leGNpbmZvOgorICAgICAgICAgICAgb3V0Y29tZSA9ICJwYXNzZWQiCisgICAgICAgICAg
ICBsb25ncmVwciA9IE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKGV4Y2luZm8sIEV4Y2VwdGlvbkluZm8pOgorICAgICAgICAgICAgICAgIG91dGNvbWUg
PSAiZmFpbGVkIgorICAgICAgICAgICAgICAgIGxvbmdyZXByID0gZXhjaW5mbworICAgICAgICAg
ICAgZWxpZiBleGNpbmZvLmVycmlzaW5zdGFuY2Uoc2tpcC5FeGNlcHRpb24pOgorICAgICAgICAg
ICAgICAgIG91dGNvbWUgPSAic2tpcHBlZCIKKyAgICAgICAgICAgICAgICByID0gZXhjaW5mby5f
Z2V0cmVwcmNyYXNoKCkKKyAgICAgICAgICAgICAgICBsb25ncmVwciA9IChzdHIoci5wYXRoKSwg
ci5saW5lbm8sIHIubWVzc2FnZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
b3V0Y29tZSA9ICJmYWlsZWQiCisgICAgICAgICAgICAgICAgaWYgY2FsbC53aGVuID09ICJjYWxs
IjoKKyAgICAgICAgICAgICAgICAgICAgbG9uZ3JlcHIgPSBpdGVtLnJlcHJfZmFpbHVyZShleGNp
bmZvKQorICAgICAgICAgICAgICAgIGVsc2U6ICAjIGV4Y2VwdGlvbiBpbiBzZXR1cCBvciB0ZWFy
ZG93bgorICAgICAgICAgICAgICAgICAgICBsb25ncmVwciA9IGl0ZW0uX3JlcHJfZmFpbHVyZV9w
eSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2luZm8sIHN0eWxlPWl0ZW0uY29uZmlnLmdl
dG9wdGlvbigidGJzdHlsZSIsICJhdXRvIikKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAg
ICBmb3IgcndoZW4sIGtleSwgY29udGVudCBpbiBpdGVtLl9yZXBvcnRfc2VjdGlvbnM6CisgICAg
ICAgICAgICBzZWN0aW9ucy5hcHBlbmQoKCJDYXB0dXJlZCAlcyAlcyIgJSAoa2V5LCByd2hlbiks
IGNvbnRlbnQpKQorICAgICAgICByZXR1cm4gY2xzKAorICAgICAgICAgICAgaXRlbS5ub2RlaWQs
CisgICAgICAgICAgICBpdGVtLmxvY2F0aW9uLAorICAgICAgICAgICAga2V5d29yZHMsCisgICAg
ICAgICAgICBvdXRjb21lLAorICAgICAgICAgICAgbG9uZ3JlcHIsCisgICAgICAgICAgICB3aGVu
LAorICAgICAgICAgICAgc2VjdGlvbnMsCisgICAgICAgICAgICBkdXJhdGlvbiwKKyAgICAgICAg
ICAgIHVzZXJfcHJvcGVydGllcz1pdGVtLnVzZXJfcHJvcGVydGllcywKKyAgICAgICAgKQorCisK
K2NsYXNzIENvbGxlY3RSZXBvcnQoQmFzZVJlcG9ydCk6CisgICAgd2hlbiA9ICJjb2xsZWN0Igor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGVpZCwgb3V0Y29tZSwgbG9uZ3JlcHIsIHJlc3Vs
dCwgc2VjdGlvbnM9KCksICoqZXh0cmEpOgorICAgICAgICBzZWxmLm5vZGVpZCA9IG5vZGVpZAor
ICAgICAgICBzZWxmLm91dGNvbWUgPSBvdXRjb21lCisgICAgICAgIHNlbGYubG9uZ3JlcHIgPSBs
b25ncmVwcgorICAgICAgICBzZWxmLnJlc3VsdCA9IHJlc3VsdCBvciBbXQorICAgICAgICBzZWxm
LnNlY3Rpb25zID0gbGlzdChzZWN0aW9ucykKKyAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUo
ZXh0cmEpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbG9jYXRpb24oc2VsZik6CisgICAgICAg
IHJldHVybiAoc2VsZi5mc3BhdGgsIE5vbmUsIHNlbGYuZnNwYXRoKQorCisgICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjxDb2xsZWN0UmVwb3J0ICVyIGxlbnJlc3VsdD0l
cyBvdXRjb21lPSVyPiIgJSAoCisgICAgICAgICAgICBzZWxmLm5vZGVpZCwKKyAgICAgICAgICAg
IGxlbihzZWxmLnJlc3VsdCksCisgICAgICAgICAgICBzZWxmLm91dGNvbWUsCisgICAgICAgICkK
KworCitjbGFzcyBDb2xsZWN0RXJyb3JSZXByKFRlcm1pbmFsUmVwcik6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIG1zZyk6CisgICAgICAgIHNlbGYubG9uZ3JlcHIgPSBtc2cKKworICAgIGRlZiB0
b3Rlcm1pbmFsKHNlbGYsIG91dCk6CisgICAgICAgIG91dC5saW5lKHNlbGYubG9uZ3JlcHIsIHJl
ZD1UcnVlKQorCisKK2RlZiBweXRlc3RfcmVwb3J0X3RvX3NlcmlhbGl6YWJsZShyZXBvcnQpOgor
ICAgIGlmIGlzaW5zdGFuY2UocmVwb3J0LCAoVGVzdFJlcG9ydCwgQ29sbGVjdFJlcG9ydCkpOgor
ICAgICAgICBkYXRhID0gcmVwb3J0Ll90b19qc29uKCkKKyAgICAgICAgZGF0YVsiX3JlcG9ydF90
eXBlIl0gPSByZXBvcnQuX19jbGFzc19fLl9fbmFtZV9fCisgICAgICAgIHJldHVybiBkYXRhCisK
KworZGVmIHB5dGVzdF9yZXBvcnRfZnJvbV9zZXJpYWxpemFibGUoZGF0YSk6CisgICAgaWYgIl9y
ZXBvcnRfdHlwZSIgaW4gZGF0YToKKyAgICAgICAgaWYgZGF0YVsiX3JlcG9ydF90eXBlIl0gPT0g
IlRlc3RSZXBvcnQiOgorICAgICAgICAgICAgcmV0dXJuIFRlc3RSZXBvcnQuX2Zyb21fanNvbihk
YXRhKQorICAgICAgICBlbGlmIGRhdGFbIl9yZXBvcnRfdHlwZSJdID09ICJDb2xsZWN0UmVwb3J0
IjoKKyAgICAgICAgICAgIHJldHVybiBDb2xsZWN0UmVwb3J0Ll9mcm9tX2pzb24oZGF0YSkKKyAg
ICAgICAgYXNzZXJ0IEZhbHNlLCAiVW5rbm93biByZXBvcnRfdHlwZSB1bnNlcmlhbGl6ZSBkYXRh
OiB7fSIuZm9ybWF0KAorICAgICAgICAgICAgZGF0YVsiX3JlcG9ydF90eXBlIl0KKyAgICAgICAg
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcmVzdWx0bG9nLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3Qvc3JjL19weXRlc3QvcmVzdWx0bG9nLnB5CmluZGV4IDhmMzAwYzk4MzAwMTAyOTE3
M2JlOGIyZGJiOGVjYzBjNjA5YzkwY2UuLmJkMzBiNTA3MWU5ZjBmOGQ4NTg0ZTc5OTI2MjY1ZGNm
Y2E5NDViNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3Jlc3VsdGxvZy5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9yZXN1bHRsb2cucHkKQEAgLTEsMTEgKzEs
MTUgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIgbG9nIG1hY2hpbmUtcGFyc2VhYmxl
IHRlc3Qgc2Vzc2lvbiByZXN1bHQgaW5mb3JtYXRpb24gaW4gYSBwbGFpbgogdGV4dCBmaWxlLgog
IiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu
dF9mdW5jdGlvbgogCi1pbXBvcnQgcHkKIGltcG9ydCBvcwogCitpbXBvcnQgcHkKKwogCiBkZWYg
cHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgogICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJ0
ZXJtaW5hbCByZXBvcnRpbmciLCAicmVzdWx0bG9nIHBsdWdpbiBvcHRpb25zIikKQEAgLTMxLDgg
KzM1LDkgQEAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICAgICAgY29uZmlnLnBs
dWdpbm1hbmFnZXIucmVnaXN0ZXIoY29uZmlnLl9yZXN1bHRsb2cpCiAKICAgICAgICAgZnJvbSBf
cHl0ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IFJFU1VMVF9MT0cKKyAgICAgICAgZnJvbSBfcHl0ZXN0
Lndhcm5pbmdzIGltcG9ydCBfaXNzdWVfd2FybmluZ19jYXB0dXJlZAogCi0gICAgICAgIGNvbmZp
Zy53YXJuKCJDMSIsIFJFU1VMVF9MT0cpCisgICAgICAgIF9pc3N1ZV93YXJuaW5nX2NhcHR1cmVk
KFJFU1VMVF9MT0csIGNvbmZpZy5ob29rLCBzdGFja2xldmVsPTIpCiAKIAogZGVmIHB5dGVzdF91
bmNvbmZpZ3VyZShjb25maWcpOgpAQCAtNDMsMzIgKzQ4LDcgQEAgZGVmIHB5dGVzdF91bmNvbmZp
Z3VyZShjb25maWcpOgogICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci51bnJlZ2lzdGVyKHJl
c3VsdGxvZykKIAogCi1kZWYgZ2VuZXJpY19wYXRoKGl0ZW0pOgotICAgIGNoYWluID0gaXRlbS5s
aXN0Y2hhaW4oKQotICAgIGdwYXRoID0gW2NoYWluWzBdLm5hbWVdCi0gICAgZnNwYXRoID0gY2hh
aW5bMF0uZnNwYXRoCi0gICAgZnNwYXJ0ID0gRmFsc2UKLSAgICBmb3Igbm9kZSBpbiBjaGFpblsx
Ol06Ci0gICAgICAgIG5ld2ZzcGF0aCA9IG5vZGUuZnNwYXRoCi0gICAgICAgIGlmIG5ld2ZzcGF0
aCA9PSBmc3BhdGg6Ci0gICAgICAgICAgICBpZiBmc3BhcnQ6Ci0gICAgICAgICAgICAgICAgZ3Bh
dGguYXBwZW5kKCI6IikKLSAgICAgICAgICAgICAgICBmc3BhcnQgPSBGYWxzZQotICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICBncGF0aC5hcHBlbmQoIi4iKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgZ3BhdGguYXBwZW5kKCIvIikKLSAgICAgICAgICAgIGZzcGFydCA9IFRy
dWUKLSAgICAgICAgbmFtZSA9IG5vZGUubmFtZQotICAgICAgICBpZiBuYW1lWzBdIGluICIoWyI6
Ci0gICAgICAgICAgICBncGF0aC5wb3AoKQotICAgICAgICBncGF0aC5hcHBlbmQobmFtZSkKLSAg
ICAgICAgZnNwYXRoID0gbmV3ZnNwYXRoCi0gICAgcmV0dXJuICIiLmpvaW4oZ3BhdGgpCi0KLQog
Y2xhc3MgUmVzdWx0TG9nKG9iamVjdCk6Ci0KICAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmln
LCBsb2dmaWxlKToKICAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKICAgICAgICAgc2VsZi5s
b2dmaWxlID0gbG9nZmlsZSAgIyBwcmVmZXJhYmx5IGxpbmUgYnVmZmVyZWQKQEAgLTg3LDcgKzY3
LDkgQEAgY2xhc3MgUmVzdWx0TG9nKG9iamVjdCk6CiAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xv
Z3JlcG9ydChzZWxmLCByZXBvcnQpOgogICAgICAgICBpZiByZXBvcnQud2hlbiAhPSAiY2FsbCIg
YW5kIHJlcG9ydC5wYXNzZWQ6CiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcmVzID0gc2Vs
Zi5jb25maWcuaG9vay5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0PXJlcG9ydCkKKyAg
ICAgICAgcmVzID0gc2VsZi5jb25maWcuaG9vay5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMoCisg
ICAgICAgICAgICByZXBvcnQ9cmVwb3J0LCBjb25maWc9c2VsZi5jb25maWcKKyAgICAgICAgKQog
ICAgICAgICBjb2RlID0gcmVzWzFdCiAgICAgICAgIGlmIGNvZGUgPT0gIngiOgogICAgICAgICAg
ICAgbG9uZ3JlcHIgPSBzdHIocmVwb3J0LmxvbmdyZXByKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvcnVubmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcnVubmVy
LnB5CmluZGV4IDE4ZTkyNTUwOWVjYzM1Zjg0NmM2NTY0M2ZjMTViNDUxZDliNGRhZWIuLmQ1MWU4
NTlmMWQxYmQ2MmVhNjk5ZDUxNTEzZGY3OTRlZmRmMzJlZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L3J1bm5lci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9y
dW5uZXIucHkKQEAgLTEsMTQgKzEsMjQgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIg
YmFzaWMgY29sbGVjdCBhbmQgcnVudGVzdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbnMgIiIiCi1m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1
bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5j
dGlvbgogCiBpbXBvcnQgYmRiCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGZyb20gdGltZSBpbXBv
cnQgdGltZQogCi1pbXBvcnQgcHkKLWZyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBUZXJt
aW5hbFJlcHIsIEV4Y2VwdGlvbkluZm8KLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgc2tp
cCwgU2tpcHBlZCwgVEVTVF9PVVRDT01FCitpbXBvcnQgYXR0cgoraW1wb3J0IHNpeAorCitmcm9t
IC5yZXBvcnRzIGltcG9ydCBDb2xsZWN0RXJyb3JSZXByCitmcm9tIC5yZXBvcnRzIGltcG9ydCBD
b2xsZWN0UmVwb3J0Citmcm9tIC5yZXBvcnRzIGltcG9ydCBUZXN0UmVwb3J0Citmcm9tIF9weXRl
c3QuX2NvZGUuY29kZSBpbXBvcnQgRXhjZXB0aW9uSW5mbworZnJvbSBfcHl0ZXN0Lm91dGNvbWVz
IGltcG9ydCBFeGl0Citmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IFNraXBwZWQKK2Zyb20g
X3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgVEVTVF9PVVRDT01FCiAKICMKICMgcHl0ZXN0IHBsdWdp
biBob29rcwpAQCAtMjgsNiArMzgsNyBAQCBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgog
CiBkZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlcik6CiAgICAgZHVy
YXRpb25zID0gdGVybWluYWxyZXBvcnRlci5jb25maWcub3B0aW9uLmR1cmF0aW9ucworICAgIHZl
cmJvc2UgPSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5nZXR2YWx1ZSgidmVyYm9zZSIpCiAgICAg
aWYgZHVyYXRpb25zIGlzIE5vbmU6CiAgICAgICAgIHJldHVybgogICAgIHRyID0gdGVybWluYWxy
ZXBvcnRlcgpAQCAtNDcsOCArNTgsMTEgQEAgZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRl
cm1pbmFscmVwb3J0ZXIpOgogICAgICAgICBkbGlzdCA9IGRsaXN0WzpkdXJhdGlvbnNdCiAKICAg
ICBmb3IgcmVwIGluIGRsaXN0OgotICAgICAgICBub2RlaWQgPSByZXAubm9kZWlkLnJlcGxhY2Uo
Ijo6KCk6OiIsICI6OiIpCi0gICAgICAgIHRyLndyaXRlX2xpbmUoIiUwMi4yZnMgJS04cyAlcyIg
JSAocmVwLmR1cmF0aW9uLCByZXAud2hlbiwgbm9kZWlkKSkKKyAgICAgICAgaWYgdmVyYm9zZSA8
IDIgYW5kIHJlcC5kdXJhdGlvbiA8IDAuMDA1OgorICAgICAgICAgICAgdHIud3JpdGVfbGluZSgi
IikKKyAgICAgICAgICAgIHRyLndyaXRlX2xpbmUoIigwLjAwIGR1cmF0aW9ucyBoaWRkZW4uICBV
c2UgLXZ2IHRvIHNob3cgdGhlc2UgZHVyYXRpb25zLikiKQorICAgICAgICAgICAgYnJlYWsKKyAg
ICAgICAgdHIud3JpdGVfbGluZSgiJTAyLjJmcyAlLThzICVzIiAlIChyZXAuZHVyYXRpb24sIHJl
cC53aGVuLCByZXAubm9kZWlkKSkKIAogCiBkZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9u
KToKQEAgLTczLDkgKzg3LDkgQEAgZGVmIHJ1bnRlc3Rwcm90b2NvbChpdGVtLCBsb2c9VHJ1ZSwg
bmV4dGl0ZW09Tm9uZSk6CiAgICAgcmVwID0gY2FsbF9hbmRfcmVwb3J0KGl0ZW0sICJzZXR1cCIs
IGxvZykKICAgICByZXBvcnRzID0gW3JlcF0KICAgICBpZiByZXAucGFzc2VkOgotICAgICAgICBp
ZiBpdGVtLmNvbmZpZy5vcHRpb24uc2V0dXBzaG93OgorICAgICAgICBpZiBpdGVtLmNvbmZpZy5n
ZXRvcHRpb24oInNldHVwc2hvdyIsIEZhbHNlKToKICAgICAgICAgICAgIHNob3dfdGVzdF9pdGVt
KGl0ZW0pCi0gICAgICAgIGlmIG5vdCBpdGVtLmNvbmZpZy5vcHRpb24uc2V0dXBvbmx5OgorICAg
ICAgICBpZiBub3QgaXRlbS5jb25maWcuZ2V0b3B0aW9uKCJzZXR1cG9ubHkiLCBGYWxzZSk6CiAg
ICAgICAgICAgICByZXBvcnRzLmFwcGVuZChjYWxsX2FuZF9yZXBvcnQoaXRlbSwgImNhbGwiLCBs
b2cpKQogICAgIHJlcG9ydHMuYXBwZW5kKGNhbGxfYW5kX3JlcG9ydChpdGVtLCAidGVhcmRvd24i
LCBsb2csIG5leHRpdGVtPW5leHRpdGVtKSkKICAgICAjIGFmdGVyIGFsbCB0ZWFyZG93biBob29r
cyBoYXZlIGJlZW4gY2FsbGVkCkBAIC0xNjksNyArMTgzLDcgQEAgZGVmIGNhbGxfYW5kX3JlcG9y
dChpdGVtLCB3aGVuLCBsb2c9VHJ1ZSwgKiprd2RzKToKIGRlZiBjaGVja19pbnRlcmFjdGl2ZV9l
eGNlcHRpb24oY2FsbCwgcmVwb3J0KToKICAgICByZXR1cm4gY2FsbC5leGNpbmZvIGFuZCBub3Qg
KAogICAgICAgICBoYXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIikKLSAgICAgICAgb3IgY2FsbC5l
eGNpbmZvLmVycmlzaW5zdGFuY2Uoc2tpcC5FeGNlcHRpb24pCisgICAgICAgIG9yIGNhbGwuZXhj
aW5mby5lcnJpc2luc3RhbmNlKFNraXBwZWQpCiAgICAgICAgIG9yIGNhbGwuZXhjaW5mby5lcnJp
c2luc3RhbmNlKGJkYi5CZGJRdWl0KQogICAgICkKIApAQCAtMTc3LDI0NiArMTkxLDY2IEBAIGRl
ZiBjaGVja19pbnRlcmFjdGl2ZV9leGNlcHRpb24oY2FsbCwgcmVwb3J0KToKIGRlZiBjYWxsX3J1
bnRlc3RfaG9vayhpdGVtLCB3aGVuLCAqKmt3ZHMpOgogICAgIGhvb2tuYW1lID0gInB5dGVzdF9y
dW50ZXN0XyIgKyB3aGVuCiAgICAgaWhvb2sgPSBnZXRhdHRyKGl0ZW0uaWhvb2ssIGhvb2tuYW1l
KQotICAgIHJldHVybiBDYWxsSW5mbygKLSAgICAgICAgbGFtYmRhOiBpaG9vayhpdGVtPWl0ZW0s
ICoqa3dkcyksCi0gICAgICAgIHdoZW49d2hlbiwKLSAgICAgICAgdHJlYXRfa2V5Ym9hcmRfaW50
ZXJydXB0X2FzX2V4Y2VwdGlvbj1pdGVtLmNvbmZpZy5nZXR2YWx1ZSgidXNlcGRiIiksCisgICAg
cmVyYWlzZSA9IChFeGl0LCkKKyAgICBpZiBub3QgaXRlbS5jb25maWcuZ2V0b3B0aW9uKCJ1c2Vw
ZGIiLCBGYWxzZSk6CisgICAgICAgIHJlcmFpc2UgKz0gKEtleWJvYXJkSW50ZXJydXB0LCkKKyAg
ICByZXR1cm4gQ2FsbEluZm8uZnJvbV9jYWxsKAorICAgICAgICBsYW1iZGE6IGlob29rKGl0ZW09
aXRlbSwgKiprd2RzKSwgd2hlbj13aGVuLCByZXJhaXNlPXJlcmFpc2UKICAgICApCiAKIAorQGF0
dHIucyhyZXByPUZhbHNlKQogY2xhc3MgQ2FsbEluZm8ob2JqZWN0KToKICAgICAiIiIgUmVzdWx0
L0V4Y2VwdGlvbiBpbmZvIGEgZnVuY3Rpb24gaW52b2NhdGlvbi4gIiIiCi0gICAgIzogTm9uZSBv
ciBFeGNlcHRpb25JbmZvIG9iamVjdC4KLSAgICBleGNpbmZvID0gTm9uZQogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGZ1bmMsIHdoZW4sIHRyZWF0X2tleWJvYXJkX2ludGVycnVwdF9hc19leGNl
cHRpb249RmFsc2UpOgorICAgIF9yZXN1bHQgPSBhdHRyLmliKCkKKyAgICAjIE9wdGlvbmFsW0V4
Y2VwdGlvbkluZm9dCisgICAgZXhjaW5mbyA9IGF0dHIuaWIoKQorICAgIHN0YXJ0ID0gYXR0ci5p
YigpCisgICAgc3RvcCA9IGF0dHIuaWIoKQorICAgIHdoZW4gPSBhdHRyLmliKCkKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiByZXN1bHQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuZXhjaW5mbyBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCJ7IXJ9IGhhcyBu
byB2YWxpZCByZXN1bHQiLmZvcm1hdChzZWxmKSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3Vs
dAorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fY2FsbChjbHMsIGZ1bmMsIHdoZW4s
IHJlcmFpc2U9Tm9uZSk6CiAgICAgICAgICM6IGNvbnRleHQgb2YgaW52b2NhdGlvbjogb25lIG9m
ICJzZXR1cCIsICJjYWxsIiwKICAgICAgICAgIzogInRlYXJkb3duIiwgIm1lbW9jb2xsZWN0Igot
ICAgICAgICBzZWxmLndoZW4gPSB3aGVuCi0gICAgICAgIHNlbGYuc3RhcnQgPSB0aW1lKCkKKyAg
ICAgICAgc3RhcnQgPSB0aW1lKCkKKyAgICAgICAgZXhjaW5mbyA9IE5vbmUKICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBmdW5jKCkKLSAgICAgICAgZXhjZXB0IEtleWJv
YXJkSW50ZXJydXB0OgotICAgICAgICAgICAgaWYgdHJlYXRfa2V5Ym9hcmRfaW50ZXJydXB0X2Fz
X2V4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBzZWxmLmV4Y2luZm8gPSBFeGNlcHRpb25JbmZv
KCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5zdG9wID0gdGltZSgp
Ci0gICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IGZ1bmMoKQogICAg
ICAgICBleGNlcHQ6ICAjIG5vcWEKLSAgICAgICAgICAgIHNlbGYuZXhjaW5mbyA9IEV4Y2VwdGlv
bkluZm8oKQotICAgICAgICBzZWxmLnN0b3AgPSB0aW1lKCkKKyAgICAgICAgICAgIGV4Y2luZm8g
PSBFeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCisgICAgICAgICAgICBpZiByZXJhaXNlIGlz
IG5vdCBOb25lIGFuZCBleGNpbmZvLmVycmlzaW5zdGFuY2UocmVyYWlzZSk6CisgICAgICAgICAg
ICAgICAgcmFpc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IE5vbmUKKyAgICAgICAgc3RvcCA9IHRp
bWUoKQorICAgICAgICByZXR1cm4gY2xzKHN0YXJ0PXN0YXJ0LCBzdG9wPXN0b3AsIHdoZW49d2hl
biwgcmVzdWx0PXJlc3VsdCwgZXhjaW5mbz1leGNpbmZvKQogCiAgICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgotICAgICAgICBpZiBzZWxmLmV4Y2luZm86Ci0gICAgICAgICAgICBzdGF0dXMgPSAiZXhj
ZXB0aW9uOiAlcyIgJSBzdHIoc2VsZi5leGNpbmZvLnZhbHVlKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgc3RhdHVzID0gInJlc3VsdDogJXIiICUgKHNlbGYucmVzdWx0LCkKLSAgICAgICAg
cmV0dXJuICI8Q2FsbEluZm8gd2hlbj0lciAlcz4iICUgKHNlbGYud2hlbiwgc3RhdHVzKQotCi0K
LWRlZiBnZXRzbGF2ZWluZm9saW5lKG5vZGUpOgotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIG5v
ZGUuX3NsYXZlaW5mb2NhY2hlCi0gICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICBk
ID0gbm9kZS5zbGF2ZWluZm8KLSAgICAgICAgdmVyID0gIiVzLiVzLiVzIiAlIGRbInZlcnNpb25f
aW5mbyJdWzozXQotICAgICAgICBub2RlLl9zbGF2ZWluZm9jYWNoZSA9IHMgPSAiWyVzXSAlcyAt
LSBQeXRob24gJXMgJXMiICUgKAotICAgICAgICAgICAgZFsiaWQiXSwgZFsic3lzcGxhdGZvcm0i
XSwgdmVyLCBkWyJleGVjdXRhYmxlIl0KLSAgICAgICAgKQotICAgICAgICByZXR1cm4gcwotCi0K
LWNsYXNzIEJhc2VSZXBvcnQob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3
KToKLSAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoa3cpCi0KLSAgICBkZWYgdG90ZXJtaW5h
bChzZWxmLCBvdXQpOgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJub2RlIik6Ci0gICAgICAg
ICAgICBvdXQubGluZShnZXRzbGF2ZWluZm9saW5lKHNlbGYubm9kZSkpCi0KLSAgICAgICAgbG9u
Z3JlcHIgPSBzZWxmLmxvbmdyZXByCi0gICAgICAgIGlmIGxvbmdyZXByIGlzIE5vbmU6Ci0gICAg
ICAgICAgICByZXR1cm4KLQotICAgICAgICBpZiBoYXNhdHRyKGxvbmdyZXByLCAidG90ZXJtaW5h
bCIpOgotICAgICAgICAgICAgbG9uZ3JlcHIudG90ZXJtaW5hbChvdXQpCisgICAgICAgIGlmIHNl
bGYuZXhjaW5mbyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHN0YXR1cyA9ICJleGNlcHRpb24i
CisgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuZXhjaW5mby52YWx1ZQogICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG91dC5saW5lKGxvbmdyZXByKQotICAg
ICAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKLSAgICAgICAgICAgICAgICBvdXQu
bGluZSgiPHVucHJpbnRhYmxlIGxvbmdyZXByPiIpCi0KLSAgICBkZWYgZ2V0X3NlY3Rpb25zKHNl
bGYsIHByZWZpeCk6Ci0gICAgICAgIGZvciBuYW1lLCBjb250ZW50IGluIHNlbGYuc2VjdGlvbnM6
Ci0gICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgocHJlZml4KToKLSAgICAgICAgICAgICAg
ICB5aWVsZCBwcmVmaXgsIGNvbnRlbnQKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBsb25ncmVw
cnRleHQoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBSZWFkLW9ubHkgcHJvcGVydHkgdGhh
dCByZXR1cm5zIHRoZSBmdWxsIHN0cmluZyByZXByZXNlbnRhdGlvbgotICAgICAgICBvZiBgYGxv
bmdyZXByYGAuCi0KLSAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4wCi0gICAgICAgICIiIgot
ICAgICAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKHN0cmluZ2lvPVRydWUpCi0gICAgICAg
IHR3Lmhhc21hcmt1cCA9IEZhbHNlCi0gICAgICAgIHNlbGYudG90ZXJtaW5hbCh0dykKLSAgICAg
ICAgZXhjID0gdHcuc3RyaW5naW8uZ2V0dmFsdWUoKQotICAgICAgICByZXR1cm4gZXhjLnN0cmlw
KCkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBjYXBsb2coc2VsZik6Ci0gICAgICAgICIiIlJl
dHVybiBjYXB0dXJlZCBsb2cgbGluZXMsIGlmIGxvZyBjYXB0dXJpbmcgaXMgZW5hYmxlZAotCi0g
ICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNQotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJu
ICJcbiIuam9pbigKLSAgICAgICAgICAgIGNvbnRlbnQgZm9yIChwcmVmaXgsIGNvbnRlbnQpIGlu
IHNlbGYuZ2V0X3NlY3Rpb25zKCJDYXB0dXJlZCBsb2ciKQotICAgICAgICApCi0KLSAgICBAcHJv
cGVydHkKLSAgICBkZWYgY2Fwc3Rkb3V0KHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gY2FwdHVy
ZWQgdGV4dCBmcm9tIHN0ZG91dCwgaWYgY2FwdHVyaW5nIGlzIGVuYWJsZWQKLQotICAgICAgICAu
LiB2ZXJzaW9uYWRkZWQ6OiAzLjAKLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiAiIi5qb2lu
KAotICAgICAgICAgICAgY29udGVudCBmb3IgKHByZWZpeCwgY29udGVudCkgaW4gc2VsZi5nZXRf
c2VjdGlvbnMoIkNhcHR1cmVkIHN0ZG91dCIpCi0gICAgICAgICkKLQotICAgIEBwcm9wZXJ0eQot
ICAgIGRlZiBjYXBzdGRlcnIoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiBjYXB0dXJlZCB0ZXh0
IGZyb20gc3RkZXJyLCBpZiBjYXB0dXJpbmcgaXMgZW5hYmxlZAotCi0gICAgICAgIC4uIHZlcnNp
b25hZGRlZDo6IDMuMAotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuICIiLmpvaW4oCi0gICAg
ICAgICAgICBjb250ZW50IGZvciAocHJlZml4LCBjb250ZW50KSBpbiBzZWxmLmdldF9zZWN0aW9u
cygiQ2FwdHVyZWQgc3RkZXJyIikKKyAgICAgICAgICAgICMgVE9ETzogaW52ZXN0aWdhdGUgdW5p
ZmljYXRpb24KKyAgICAgICAgICAgIHZhbHVlID0gcmVwcihzZWxmLl9yZXN1bHQpCisgICAgICAg
ICAgICBzdGF0dXMgPSAicmVzdWx0IgorICAgICAgICByZXR1cm4gIjxDYWxsSW5mbyB3aGVuPXt3
aGVuIXJ9IHtzdGF0dXN9OiB7dmFsdWV9PiIuZm9ybWF0KAorICAgICAgICAgICAgd2hlbj1zZWxm
LndoZW4sIHZhbHVlPXZhbHVlLCBzdGF0dXM9c3RhdHVzCiAgICAgICAgICkKIAotICAgIHBhc3Nl
ZCA9IHByb3BlcnR5KGxhbWJkYSB4OiB4Lm91dGNvbWUgPT0gInBhc3NlZCIpCi0gICAgZmFpbGVk
ID0gcHJvcGVydHkobGFtYmRhIHg6IHgub3V0Y29tZSA9PSAiZmFpbGVkIikKLSAgICBza2lwcGVk
ID0gcHJvcGVydHkobGFtYmRhIHg6IHgub3V0Y29tZSA9PSAic2tpcHBlZCIpCi0KLSAgICBAcHJv
cGVydHkKLSAgICBkZWYgZnNwYXRoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5ub2RlaWQu
c3BsaXQoIjo6IilbMF0KLQogCiBkZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBj
YWxsKToKLSAgICB3aGVuID0gY2FsbC53aGVuCi0gICAgZHVyYXRpb24gPSBjYWxsLnN0b3AgLSBj
YWxsLnN0YXJ0Ci0gICAga2V5d29yZHMgPSB7eDogMSBmb3IgeCBpbiBpdGVtLmtleXdvcmRzfQot
ICAgIGV4Y2luZm8gPSBjYWxsLmV4Y2luZm8KLSAgICBzZWN0aW9ucyA9IFtdCi0gICAgaWYgbm90
IGNhbGwuZXhjaW5mbzoKLSAgICAgICAgb3V0Y29tZSA9ICJwYXNzZWQiCi0gICAgICAgIGxvbmdy
ZXByID0gTm9uZQotICAgIGVsc2U6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4Y2luZm8s
IEV4Y2VwdGlvbkluZm8pOgotICAgICAgICAgICAgb3V0Y29tZSA9ICJmYWlsZWQiCi0gICAgICAg
ICAgICBsb25ncmVwciA9IGV4Y2luZm8KLSAgICAgICAgZWxpZiBleGNpbmZvLmVycmlzaW5zdGFu
Y2Uoc2tpcC5FeGNlcHRpb24pOgotICAgICAgICAgICAgb3V0Y29tZSA9ICJza2lwcGVkIgotICAg
ICAgICAgICAgciA9IGV4Y2luZm8uX2dldHJlcHJjcmFzaCgpCi0gICAgICAgICAgICBsb25ncmVw
ciA9IChzdHIoci5wYXRoKSwgci5saW5lbm8sIHIubWVzc2FnZSkKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIG91dGNvbWUgPSAiZmFpbGVkIgotICAgICAgICAgICAgaWYgY2FsbC53aGVuID09
ICJjYWxsIjoKLSAgICAgICAgICAgICAgICBsb25ncmVwciA9IGl0ZW0ucmVwcl9mYWlsdXJlKGV4
Y2luZm8pCi0gICAgICAgICAgICBlbHNlOiAgIyBleGNlcHRpb24gaW4gc2V0dXAgb3IgdGVhcmRv
d24KLSAgICAgICAgICAgICAgICBsb25ncmVwciA9IGl0ZW0uX3JlcHJfZmFpbHVyZV9weSgKLSAg
ICAgICAgICAgICAgICAgICAgZXhjaW5mbywgc3R5bGU9aXRlbS5jb25maWcub3B0aW9uLnRic3R5
bGUKLSAgICAgICAgICAgICAgICApCi0gICAgZm9yIHJ3aGVuLCBrZXksIGNvbnRlbnQgaW4gaXRl
bS5fcmVwb3J0X3NlY3Rpb25zOgotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoKCJDYXB0dXJlZCAl
cyAlcyIgJSAoa2V5LCByd2hlbiksIGNvbnRlbnQpKQotICAgIHJldHVybiBUZXN0UmVwb3J0KAot
ICAgICAgICBpdGVtLm5vZGVpZCwKLSAgICAgICAgaXRlbS5sb2NhdGlvbiwKLSAgICAgICAga2V5
d29yZHMsCi0gICAgICAgIG91dGNvbWUsCi0gICAgICAgIGxvbmdyZXByLAotICAgICAgICB3aGVu
LAotICAgICAgICBzZWN0aW9ucywKLSAgICAgICAgZHVyYXRpb24sCi0gICAgICAgIHVzZXJfcHJv
cGVydGllcz1pdGVtLnVzZXJfcHJvcGVydGllcywKLSAgICApCi0KLQotY2xhc3MgVGVzdFJlcG9y
dChCYXNlUmVwb3J0KToKLSAgICAiIiIgQmFzaWMgdGVzdCByZXBvcnQgb2JqZWN0IChhbHNvIHVz
ZWQgZm9yIHNldHVwIGFuZCB0ZWFyZG93biBjYWxscyBpZgotICAgIHRoZXkgZmFpbCkuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oCi0gICAgICAgIHNlbGYsCi0gICAgICAgIG5vZGVpZCwK
LSAgICAgICAgbG9jYXRpb24sCi0gICAgICAgIGtleXdvcmRzLAotICAgICAgICBvdXRjb21lLAot
ICAgICAgICBsb25ncmVwciwKLSAgICAgICAgd2hlbiwKLSAgICAgICAgc2VjdGlvbnM9KCksCi0g
ICAgICAgIGR1cmF0aW9uPTAsCi0gICAgICAgIHVzZXJfcHJvcGVydGllcz0oKSwKLSAgICAgICAg
KipleHRyYQotICAgICk6Ci0gICAgICAgICM6IG5vcm1hbGl6ZWQgY29sbGVjdGlvbiBub2RlIGlk
Ci0gICAgICAgIHNlbGYubm9kZWlkID0gbm9kZWlkCi0KLSAgICAgICAgIzogYSAoZmlsZXN5c3Rl
bXBhdGgsIGxpbmVubywgZG9tYWluaW5mbykgdHVwbGUgaW5kaWNhdGluZyB0aGUKLSAgICAgICAg
IzogYWN0dWFsIGxvY2F0aW9uIG9mIGEgdGVzdCBpdGVtIC0gaXQgbWlnaHQgYmUgZGlmZmVyZW50
IGZyb20gdGhlCi0gICAgICAgICM6IGNvbGxlY3RlZCBvbmUgZS5nLiBpZiBhIG1ldGhvZCBpcyBp
bmhlcml0ZWQgZnJvbSBhIGRpZmZlcmVudCBtb2R1bGUuCi0gICAgICAgIHNlbGYubG9jYXRpb24g
PSBsb2NhdGlvbgotCi0gICAgICAgICM6IGEgbmFtZSAtPiB2YWx1ZSBkaWN0aW9uYXJ5IGNvbnRh
aW5pbmcgYWxsIGtleXdvcmRzIGFuZAotICAgICAgICAjOiBtYXJrZXJzIGFzc29jaWF0ZWQgd2l0
aCBhIHRlc3QgaW52b2NhdGlvbi4KLSAgICAgICAgc2VsZi5rZXl3b3JkcyA9IGtleXdvcmRzCi0K
LSAgICAgICAgIzogdGVzdCBvdXRjb21lLCBhbHdheXMgb25lIG9mICJwYXNzZWQiLCAiZmFpbGVk
IiwgInNraXBwZWQiLgotICAgICAgICBzZWxmLm91dGNvbWUgPSBvdXRjb21lCi0KLSAgICAgICAg
IzogTm9uZSBvciBhIGZhaWx1cmUgcmVwcmVzZW50YXRpb24uCi0gICAgICAgIHNlbGYubG9uZ3Jl
cHIgPSBsb25ncmVwcgotCi0gICAgICAgICM6IG9uZSBvZiAnc2V0dXAnLCAnY2FsbCcsICd0ZWFy
ZG93bicgdG8gaW5kaWNhdGUgcnVudGVzdCBwaGFzZS4KLSAgICAgICAgc2VsZi53aGVuID0gd2hl
bgotCi0gICAgICAgICM6IHVzZXIgcHJvcGVydGllcyBpcyBhIGxpc3Qgb2YgdHVwbGVzIChuYW1l
LCB2YWx1ZSkgdGhhdCBob2xkcyB1c2VyCi0gICAgICAgICM6IGRlZmluZWQgcHJvcGVydGllcyBv
ZiB0aGUgdGVzdAotICAgICAgICBzZWxmLnVzZXJfcHJvcGVydGllcyA9IHVzZXJfcHJvcGVydGll
cwotCi0gICAgICAgICM6IGxpc3Qgb2YgcGFpcnMgYGAoc3RyLCBzdHIpYGAgb2YgZXh0cmEgaW5m
b3JtYXRpb24gd2hpY2ggbmVlZHMgdG8KLSAgICAgICAgIzogbWFyc2hhbGxhYmxlLiBVc2VkIGJ5
IHB5dGVzdCB0byBhZGQgY2FwdHVyZWQgdGV4dAotICAgICAgICAjOiBmcm9tIGBgc3Rkb3V0YGAg
YW5kIGBgc3RkZXJyYGAsIGJ1dCBtYXkgYmUgdXNlZCBieSBvdGhlciBwbHVnaW5zCi0gICAgICAg
ICM6IHRvIGFkZCBhcmJpdHJhcnkgaW5mb3JtYXRpb24gdG8gcmVwb3J0cy4KLSAgICAgICAgc2Vs
Zi5zZWN0aW9ucyA9IGxpc3Qoc2VjdGlvbnMpCi0KLSAgICAgICAgIzogdGltZSBpdCB0b29rIHRv
IHJ1biBqdXN0IHRoZSB0ZXN0Ci0gICAgICAgIHNlbGYuZHVyYXRpb24gPSBkdXJhdGlvbgotCi0g
ICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGV4dHJhKQotCi0gICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgotICAgICAgICByZXR1cm4gIjxUZXN0UmVwb3J0ICVyIHdoZW49JXIgb3V0Y29tZT0lcj4i
ICUgKAotICAgICAgICAgICAgc2VsZi5ub2RlaWQsIHNlbGYud2hlbiwgc2VsZi5vdXRjb21lCi0g
ICAgICAgICkKLQotCi1jbGFzcyBUZWFyZG93bkVycm9yUmVwb3J0KEJhc2VSZXBvcnQpOgotICAg
IG91dGNvbWUgPSAiZmFpbGVkIgotICAgIHdoZW4gPSAidGVhcmRvd24iCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgbG9uZ3JlcHIsICoqZXh0cmEpOgotICAgICAgICBzZWxmLmxvbmdyZXByID0g
bG9uZ3JlcHIKLSAgICAgICAgc2VsZi5zZWN0aW9ucyA9IFtdCi0gICAgICAgIHNlbGYuX19kaWN0
X18udXBkYXRlKGV4dHJhKQorICAgIHJldHVybiBUZXN0UmVwb3J0LmZyb21faXRlbV9hbmRfY2Fs
bChpdGVtLCBjYWxsKQogCiAKIGRlZiBweXRlc3RfbWFrZV9jb2xsZWN0X3JlcG9ydChjb2xsZWN0
b3IpOgotICAgIGNhbGwgPSBDYWxsSW5mbyhsYW1iZGE6IGxpc3QoY29sbGVjdG9yLmNvbGxlY3Qo
KSksICJjb2xsZWN0IikKKyAgICBjYWxsID0gQ2FsbEluZm8uZnJvbV9jYWxsKGxhbWJkYTogbGlz
dChjb2xsZWN0b3IuY29sbGVjdCgpKSwgImNvbGxlY3QiKQogICAgIGxvbmdyZXByID0gTm9uZQog
ICAgIGlmIG5vdCBjYWxsLmV4Y2luZm86CiAgICAgICAgIG91dGNvbWUgPSAicGFzc2VkIgpAQCAt
NDQxLDM1ICsyNzUsNiBAQCBkZWYgcHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9y
KToKICAgICByZXR1cm4gcmVwCiAKIAotY2xhc3MgQ29sbGVjdFJlcG9ydChCYXNlUmVwb3J0KToK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlaWQsIG91dGNvbWUsIGxvbmdyZXByLCByZXN1
bHQsIHNlY3Rpb25zPSgpLCAqKmV4dHJhKToKLSAgICAgICAgc2VsZi5ub2RlaWQgPSBub2RlaWQK
LSAgICAgICAgc2VsZi5vdXRjb21lID0gb3V0Y29tZQotICAgICAgICBzZWxmLmxvbmdyZXByID0g
bG9uZ3JlcHIKLSAgICAgICAgc2VsZi5yZXN1bHQgPSByZXN1bHQgb3IgW10KLSAgICAgICAgc2Vs
Zi5zZWN0aW9ucyA9IGxpc3Qoc2VjdGlvbnMpCi0gICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRl
KGV4dHJhKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGxvY2F0aW9uKHNlbGYpOgotICAgICAg
ICByZXR1cm4gKHNlbGYuZnNwYXRoLCBOb25lLCBzZWxmLmZzcGF0aCkKLQotICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8Q29sbGVjdFJlcG9ydCAlciBsZW5yZXN1bHQ9
JXMgb3V0Y29tZT0lcj4iICUgKAotICAgICAgICAgICAgc2VsZi5ub2RlaWQsIGxlbihzZWxmLnJl
c3VsdCksIHNlbGYub3V0Y29tZQotICAgICAgICApCi0KLQotY2xhc3MgQ29sbGVjdEVycm9yUmVw
cihUZXJtaW5hbFJlcHIpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZyk6Ci0gICAgICAg
IHNlbGYubG9uZ3JlcHIgPSBtc2cKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIG91dCk6Ci0g
ICAgICAgIG91dC5saW5lKHNlbGYubG9uZ3JlcHIsIHJlZD1UcnVlKQotCi0KIGNsYXNzIFNldHVw
U3RhdGUob2JqZWN0KToKICAgICAiIiIgc2hhcmVkIHN0YXRlIGZvciBzZXR0aW5nIHVwL3RlYXJp
bmcgZG93biB0ZXN0IGl0ZW1zIG9yIGNvbGxlY3RvcnMuICIiIgogCkBAIC01MDQsNyArMzA5LDcg
QEAgY2xhc3MgU2V0dXBTdGF0ZShvYmplY3QpOgogICAgICAgICAgICAgICAgIGlmIGV4YyBpcyBO
b25lOgogICAgICAgICAgICAgICAgICAgICBleGMgPSBzeXMuZXhjX2luZm8oKQogICAgICAgICBp
ZiBleGM6Ci0gICAgICAgICAgICBweS5idWlsdGluLl9yZXJhaXNlKCpleGMpCisgICAgICAgICAg
ICBzaXgucmVyYWlzZSgqZXhjKQogCiAgICAgZGVmIF90ZWFyZG93bl93aXRoX2ZpbmFsaXphdGlv
bihzZWxmLCBjb2xpdGVtKToKICAgICAgICAgc2VsZi5fY2FsbGZpbmFsaXplcnMoY29saXRlbSkK
QEAgLTUyOSw3ICszMzQsNyBAQCBjbGFzcyBTZXR1cFN0YXRlKG9iamVjdCk6CiAgICAgZGVmIF90
ZWFyZG93bl90b3dhcmRzKHNlbGYsIG5lZWRlZF9jb2xsZWN0b3JzKToKICAgICAgICAgZXhjID0g
Tm9uZQogICAgICAgICB3aGlsZSBzZWxmLnN0YWNrOgotICAgICAgICAgICAgaWYgc2VsZi5zdGFj
ayA9PSBuZWVkZWRfY29sbGVjdG9yc1s6bGVuKHNlbGYuc3RhY2spXToKKyAgICAgICAgICAgIGlm
IHNlbGYuc3RhY2sgPT0gbmVlZGVkX2NvbGxlY3RvcnNbOiBsZW4oc2VsZi5zdGFjayldOgogICAg
ICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2Vs
Zi5fcG9wX2FuZF90ZWFyZG93bigpCkBAIC01MzksNyArMzQ0LDcgQEAgY2xhc3MgU2V0dXBTdGF0
ZShvYmplY3QpOgogICAgICAgICAgICAgICAgIGlmIGV4YyBpcyBOb25lOgogICAgICAgICAgICAg
ICAgICAgICBleGMgPSBzeXMuZXhjX2luZm8oKQogICAgICAgICBpZiBleGM6Ci0gICAgICAgICAg
ICBweS5idWlsdGluLl9yZXJhaXNlKCpleGMpCisgICAgICAgICAgICBzaXgucmVyYWlzZSgqZXhj
KQogCiAgICAgZGVmIHByZXBhcmUoc2VsZiwgY29saXRlbSk6CiAgICAgICAgICIiIiBzZXR1cCBv
YmplY3RzIGFsb25nIHRoZSBjb2xsZWN0b3IgY2hhaW4gdG8gdGhlIHRlc3QtbWV0aG9kCkBAIC01
NTAsOCArMzU1LDggQEAgY2xhc3MgU2V0dXBTdGF0ZShvYmplY3QpOgogICAgICAgICAjIGNoZWNr
IGlmIHRoZSBsYXN0IGNvbGxlY3Rpb24gbm9kZSBoYXMgcmFpc2VkIGFuIGVycm9yCiAgICAgICAg
IGZvciBjb2wgaW4gc2VsZi5zdGFjazoKICAgICAgICAgICAgIGlmIGhhc2F0dHIoY29sLCAiX3By
ZXBhcmVfZXhjIik6Ci0gICAgICAgICAgICAgICAgcHkuYnVpbHRpbi5fcmVyYWlzZSgqY29sLl9w
cmVwYXJlX2V4YykKLSAgICAgICAgZm9yIGNvbCBpbiBuZWVkZWRfY29sbGVjdG9yc1tsZW4oc2Vs
Zi5zdGFjayk6XToKKyAgICAgICAgICAgICAgICBzaXgucmVyYWlzZSgqY29sLl9wcmVwYXJlX2V4
YykKKyAgICAgICAgZm9yIGNvbCBpbiBuZWVkZWRfY29sbGVjdG9yc1tsZW4oc2VsZi5zdGFjaykg
Ol06CiAgICAgICAgICAgICBzZWxmLnN0YWNrLmFwcGVuZChjb2wpCiAgICAgICAgICAgICB0cnk6
CiAgICAgICAgICAgICAgICAgY29sLnNldHVwKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L3NldHVwb25seS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3NldHVwb25s
eS5weQppbmRleCA4MTI0MGQ5ZDA1NWVmYzZiZjBmNmI1NmYzOGZjNGM4NGY5NTQ1YTNjLi4wODU5
MDExMjQxYTljZmYzZmM3NmM5YzdjYTlkNzhhNDJiMjQxN2VjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC9zZXR1cG9ubHkucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3Qvc2V0dXBvbmx5LnB5CkBAIC0xLDggKzEsMTIgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKyMgLSotIGNvZGluZzog
dXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9m
dW5jdGlvbgogCi1pbXBvcnQgcHl0ZXN0CiBpbXBvcnQgc3lzCiAKK2ltcG9ydCBweXRlc3QKKwog
CiBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgogICAgIGdyb3VwID0gcGFyc2VyLmdldGdy
b3VwKCJkZWJ1Z2NvbmZpZyIpCkBAIC01MSw3ICs1NSw4IEBAIGRlZiBfc2hvd19maXh0dXJlX2Fj
dGlvbihmaXh0dXJlZGVmLCBtc2cpOgogICAgIGNvbmZpZyA9IGZpeHR1cmVkZWYuX2ZpeHR1cmVt
YW5hZ2VyLmNvbmZpZwogICAgIGNhcG1hbiA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdp
bigiY2FwdHVyZW1hbmFnZXIiKQogICAgIGlmIGNhcG1hbjoKLSAgICAgICAgb3V0LCBlcnIgPSBj
YXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgIGNhcG1hbi5zdXNwZW5kX2ds
b2JhbF9jYXB0dXJlKCkKKyAgICAgICAgb3V0LCBlcnIgPSBjYXBtYW4ucmVhZF9nbG9iYWxfY2Fw
dHVyZSgpCiAKICAgICB0dyA9IGNvbmZpZy5nZXRfdGVybWluYWxfd3JpdGVyKCkKICAgICB0dy5s
aW5lKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3NldHVwcGxhbi5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3NldHVwcGxhbi5weQppbmRleCAyM2Y0Zjk3ZTZkOTc3
ZTIxY2RlZDM1N2IxZWIzNDA4MWJmYmFjNTE1Li40N2IwZmU4MmVmNmRiZDNhZmVhZGVjOGJjMzY5
NzYzZTlmNjRhNmNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9zZXR1cHBs
YW4ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2V0dXBwbGFuLnB5CkBAIC0xLDQg
KzEsNyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9u
LCBwcmludF9mdW5jdGlvbgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9u
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBweXRlc3QK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2tpcHBpbmcucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvX3B5dGVzdC9za2lwcGluZy5weQppbmRleCBhMzQ4ZDU0ODRjZGI5MzllNWE2
YTU4OTA2MjRhZTkxYWY2MDk0OTZmLi5iYzhiODhlNzE3OGQ4NjdlMzZmNzU3OWNlNWFmOWM5MDEx
MGU0ODgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9za2lwcGluZy5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9za2lwcGluZy5weQpAQCAtMSw5ICsxLDE0IEBA
CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiIHN1cHBvcnQgZm9yIHNraXAveGZhaWwgZnVu
Y3Rpb25zIGFuZCBtYXJrZXJzLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGZyb20gX3B5dGVzdC5jb25maWcgaW1w
b3J0IGhvb2tpbXBsCiBmcm9tIF9weXRlc3QubWFyay5ldmFsdWF0ZSBpbXBvcnQgTWFya0V2YWx1
YXRvcgotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBza2lwLCB4ZmFpbAorZnJv
bSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1w
b3J0IHNraXAKK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgeGZhaWwKIAogCiBkZWYgcHl0
ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgpAQCAtMTMsNyArMTgsNyBAQCBkZWYgcHl0ZXN0X2FkZG9w
dGlvbihwYXJzZXIpOgogICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAogICAgICAgICBkZXN0
PSJydW54ZmFpbCIsCiAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgIGhlbHA9InJ1biB0
ZXN0cyBldmVuIGlmIHRoZXkgYXJlIG1hcmtlZCB4ZmFpbCIsCisgICAgICAgIGhlbHA9InJlcG9y
dCB0aGUgcmVzdWx0cyBvZiB4ZmFpbCB0ZXN0cyBhcyBpZiB0aGV5IHdlcmUgbm90IG1hcmtlZCIs
CiAgICAgKQogCiAgICAgcGFyc2VyLmFkZGluaSgKQEAgLTUxLDcgKzU2LDcgQEAgZGVmIHB5dGVz
dF9jb25maWd1cmUoY29uZmlnKToKICAgICAgICAgInJlc3VsdHMgaW4gYSBUcnVlIHZhbHVlLiAg
RXZhbHVhdGlvbiBoYXBwZW5zIHdpdGhpbiB0aGUgIgogICAgICAgICAibW9kdWxlIGdsb2JhbCBj
b250ZXh0LiBFeGFtcGxlOiBza2lwaWYoJ3N5cy5wbGF0Zm9ybSA9PSBcIndpbjMyXCInKSAiCiAg
ICAgICAgICJza2lwcyB0aGUgdGVzdCBpZiB3ZSBhcmUgb24gdGhlIHdpbjMyIHBsYXRmb3JtLiBz
ZWUgIgotICAgICAgICAiaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3NraXBwaW5nLmh0bWwiLAor
ICAgICAgICAiaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3NraXBwaW5nLmh0bWwi
LAogICAgICkKICAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgKICAgICAgICAgIm1hcmtlcnMi
LApAQCAtNjEsNyArNjYsNyBAQCBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgogICAgICAg
ICAiYW5kIHJ1bj1GYWxzZSBpZiB5b3UgZG9uJ3QgZXZlbiB3YW50IHRvIGV4ZWN1dGUgdGhlIHRl
c3QgZnVuY3Rpb24uICIKICAgICAgICAgIklmIG9ubHkgc3BlY2lmaWMgZXhjZXB0aW9uKHMpIGFy
ZSBleHBlY3RlZCwgeW91IGNhbiBsaXN0IHRoZW0gaW4gIgogICAgICAgICAicmFpc2VzLCBhbmQg
aWYgdGhlIHRlc3QgZmFpbHMgaW4gb3RoZXIgd2F5cywgaXQgd2lsbCBiZSByZXBvcnRlZCBhcyAi
Ci0gICAgICAgICJhIHRydWUgZmFpbHVyZS4gU2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9z
a2lwcGluZy5odG1sIiwKKyAgICAgICAgImEgdHJ1ZSBmYWlsdXJlLiBTZWUgaHR0cHM6Ly9kb2Nz
LnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3NraXBwaW5nLmh0bWwiLAogICAgICkKIAogCkBAIC0xNTcs
OSArMTYyLDExIEBAIGRlZiBweXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgog
ICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByZXAub3V0Y29tZSA9ICJwYXNzZWQi
CiAgICAgICAgICAgICAgICAgcmVwLndhc3hmYWlsID0gZXhwbGFuYXRpb24KLSAgICBlbGlmIGdl
dGF0dHIoaXRlbSwgIl9za2lwcGVkX2J5X21hcmsiLCBGYWxzZSkgYW5kIHJlcC5za2lwcGVkIGFu
ZCB0eXBlKAotICAgICAgICByZXAubG9uZ3JlcHIKLSAgICApIGlzIHR1cGxlOgorICAgIGVsaWYg
KAorICAgICAgICBnZXRhdHRyKGl0ZW0sICJfc2tpcHBlZF9ieV9tYXJrIiwgRmFsc2UpCisgICAg
ICAgIGFuZCByZXAuc2tpcHBlZAorICAgICAgICBhbmQgdHlwZShyZXAubG9uZ3JlcHIpIGlzIHR1
cGxlCisgICAgKToKICAgICAgICAgIyBza2lwcGVkIGJ5IG1hcmsuc2tpcGlmOyBjaGFuZ2UgdGhl
IGxvY2F0aW9uIG9mIHRoZSBmYWlsdXJlCiAgICAgICAgICMgdG8gcG9pbnQgdG8gdGhlIGl0ZW0g
ZGVmaW5pdGlvbiwgb3RoZXJ3aXNlIGl0IHdpbGwgZGlzcGxheQogICAgICAgICAjIHRoZSBsb2Nh
dGlvbiBvZiB3aGVyZSB0aGUgc2tpcCBleGNlcHRpb24gd2FzIHJhaXNlZCB3aXRoaW4gcHl0ZXN0
CkBAIC0xNzQsMTIwICsxODEsNiBAQCBkZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVt
LCBjYWxsKToKIGRlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0KToKICAgICBpZiBo
YXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIik6CiAgICAgICAgIGlmIHJlcG9ydC5za2lwcGVkOgot
ICAgICAgICAgICAgcmV0dXJuICJ4ZmFpbGVkIiwgIngiLCAieGZhaWwiCisgICAgICAgICAgICBy
ZXR1cm4gInhmYWlsZWQiLCAieCIsICJYRkFJTCIKICAgICAgICAgZWxpZiByZXBvcnQucGFzc2Vk
OgotICAgICAgICAgICAgcmV0dXJuICJ4cGFzc2VkIiwgIlgiLCAoIlhQQVNTIiwgeyJ5ZWxsb3ci
OiBUcnVlfSkKLQotCi0jIGNhbGxlZCBieSB0aGUgdGVybWluYWxyZXBvcnRlciBpbnN0YW5jZS9w
bHVnaW4KLQotCi1kZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlcik6
Ci0gICAgdHIgPSB0ZXJtaW5hbHJlcG9ydGVyCi0gICAgaWYgbm90IHRyLnJlcG9ydGNoYXJzOgot
ICAgICAgICAjIGZvciBuYW1lIGluICJ4ZmFpbGVkIHNraXBwZWQgZmFpbGVkIHhwYXNzZWQiOgot
ICAgICAgICAjICAgIGlmIG5vdCB0ci5zdGF0cy5nZXQobmFtZSwgMCk6Ci0gICAgICAgICMgICAg
ICAgIHRyLndyaXRlX2xpbmUoIkhJTlQ6IHVzZSAnLXInIG9wdGlvbiB0byBzZWUgZXh0cmEgIgot
ICAgICAgICAjICAgICAgICAgICAgICAic3VtbWFyeSBpbmZvIGFib3V0IHRlc3RzIikKLSAgICAg
ICAgIyAgICAgICAgYnJlYWsKLSAgICAgICAgcmV0dXJuCi0KLSAgICBsaW5lcyA9IFtdCi0gICAg
Zm9yIGNoYXIgaW4gdHIucmVwb3J0Y2hhcnM6Ci0gICAgICAgIGFjdGlvbiA9IFJFUE9SVENIQVJf
QUNUSU9OUy5nZXQoY2hhciwgbGFtYmRhIHRyLCBsaW5lczogTm9uZSkKLSAgICAgICAgYWN0aW9u
KHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKQotCi0gICAgaWYgbGluZXM6Ci0gICAgICAgIHRyLl90
dy5zZXAoIj0iLCAic2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8iKQotICAgICAgICBmb3IgbGluZSBp
biBsaW5lczoKLSAgICAgICAgICAgIHRyLl90dy5saW5lKGxpbmUpCi0KLQotZGVmIHNob3dfc2lt
cGxlKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzLCBzdGF0LCBmb3JtYXQpOgotICAgIGZhaWxlZCA9
IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0KHN0YXQpCi0gICAgaWYgZmFpbGVkOgotICAgICAg
ICBmb3IgcmVwIGluIGZhaWxlZDoKLSAgICAgICAgICAgIHBvcyA9IHRlcm1pbmFscmVwb3J0ZXIu
Y29uZmlnLmN3ZF9yZWxhdGl2ZV9ub2RlaWQocmVwLm5vZGVpZCkKLSAgICAgICAgICAgIGxpbmVz
LmFwcGVuZChmb3JtYXQgJSAocG9zLCkpCi0KLQotZGVmIHNob3dfeGZhaWxlZCh0ZXJtaW5hbHJl
cG9ydGVyLCBsaW5lcyk6Ci0gICAgeGZhaWxlZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0
KCJ4ZmFpbGVkIikKLSAgICBpZiB4ZmFpbGVkOgotICAgICAgICBmb3IgcmVwIGluIHhmYWlsZWQ6
Ci0gICAgICAgICAgICBwb3MgPSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5jd2RfcmVsYXRpdmVf
bm9kZWlkKHJlcC5ub2RlaWQpCi0gICAgICAgICAgICByZWFzb24gPSByZXAud2FzeGZhaWwKLSAg
ICAgICAgICAgIGxpbmVzLmFwcGVuZCgiWEZBSUwgJXMiICUgKHBvcywpKQotICAgICAgICAgICAg
aWYgcmVhc29uOgotICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAiICsgc3RyKHJlYXNv
bikpCi0KLQotZGVmIHNob3dfeHBhc3NlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6Ci0gICAg
eHBhc3NlZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0KCJ4cGFzc2VkIikKLSAgICBpZiB4
cGFzc2VkOgotICAgICAgICBmb3IgcmVwIGluIHhwYXNzZWQ6Ci0gICAgICAgICAgICBwb3MgPSB0
ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5jd2RfcmVsYXRpdmVfbm9kZWlkKHJlcC5ub2RlaWQpCi0g
ICAgICAgICAgICByZWFzb24gPSByZXAud2FzeGZhaWwKLSAgICAgICAgICAgIGxpbmVzLmFwcGVu
ZCgiWFBBU1MgJXMgJXMiICUgKHBvcywgcmVhc29uKSkKLQotCi1kZWYgZm9sZGVkX3NraXBzKHNr
aXBwZWQpOgotICAgIGQgPSB7fQotICAgIGZvciBldmVudCBpbiBza2lwcGVkOgotICAgICAgICBr
ZXkgPSBldmVudC5sb25ncmVwcgotICAgICAgICBhc3NlcnQgbGVuKGtleSkgPT0gMywgKGV2ZW50
LCBrZXkpCi0gICAgICAgIGtleXdvcmRzID0gZ2V0YXR0cihldmVudCwgImtleXdvcmRzIiwge30p
Ci0gICAgICAgICMgZm9sZGluZyByZXBvcnRzIHdpdGggZ2xvYmFsIHB5dGVzdG1hcmsgdmFyaWFi
bGUKLSAgICAgICAgIyB0aGlzIGlzIHdvcmthcm91bmQsIGJlY2F1c2UgZm9yIG5vdyB3ZSBjYW5u
b3QgaWRlbnRpZnkgdGhlIHNjb3BlIG9mIGEgc2tpcCBtYXJrZXIKLSAgICAgICAgIyBUT0RPOiBy
ZXZpc2l0IGFmdGVyIG1hcmtzIHNjb3BlIHdvdWxkIGJlIGZpeGVkCi0gICAgICAgIHdoZW4gPSBn
ZXRhdHRyKGV2ZW50LCAid2hlbiIsIE5vbmUpCi0gICAgICAgIGlmIHdoZW4gPT0gInNldHVwIiBh
bmQgInNraXAiIGluIGtleXdvcmRzIGFuZCAicHl0ZXN0bWFyayIgbm90IGluIGtleXdvcmRzOgot
ICAgICAgICAgICAga2V5ID0gKGtleVswXSwgTm9uZSwga2V5WzJdKQotICAgICAgICBkLnNldGRl
ZmF1bHQoa2V5LCBbXSkuYXBwZW5kKGV2ZW50KQotICAgIHZhbHVlcyA9IFtdCi0gICAgZm9yIGtl
eSwgZXZlbnRzIGluIGQuaXRlbXMoKToKLSAgICAgICAgdmFsdWVzLmFwcGVuZCgobGVuKGV2ZW50
cyksKSArIGtleSkKLSAgICByZXR1cm4gdmFsdWVzCi0KLQotZGVmIHNob3dfc2tpcHBlZCh0ZXJt
aW5hbHJlcG9ydGVyLCBsaW5lcyk6Ci0gICAgdHIgPSB0ZXJtaW5hbHJlcG9ydGVyCi0gICAgc2tp
cHBlZCA9IHRyLnN0YXRzLmdldCgic2tpcHBlZCIsIFtdKQotICAgIGlmIHNraXBwZWQ6Ci0gICAg
ICAgICMgaWYgbm90IHRyLmhhc29wdCgnc2tpcHBlZCcpOgotICAgICAgICAjICAgIHRyLndyaXRl
X2xpbmUoCi0gICAgICAgICMgICAgICAgICIlZCBza2lwcGVkIHRlc3RzLCBzcGVjaWZ5IC1ycyBm
b3IgbW9yZSBpbmZvIiAlCi0gICAgICAgICMgICAgICAgIGxlbihza2lwcGVkKSkKLSAgICAgICAg
IyAgICByZXR1cm4KLSAgICAgICAgZnNraXBzID0gZm9sZGVkX3NraXBzKHNraXBwZWQpCi0gICAg
ICAgIGlmIGZza2lwczoKLSAgICAgICAgICAgICMgdHIud3JpdGVfc2VwKCJfIiwgInNraXBwZWQg
dGVzdCBzdW1tYXJ5IikKLSAgICAgICAgICAgIGZvciBudW0sIGZzcGF0aCwgbGluZW5vLCByZWFz
b24gaW4gZnNraXBzOgotICAgICAgICAgICAgICAgIGlmIHJlYXNvbi5zdGFydHN3aXRoKCJTa2lw
cGVkOiAiKToKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gcmVhc29uWzk6XQotICAgICAg
ICAgICAgICAgIGlmIGxpbmVubyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgbGlu
ZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICAgICAgIlNLSVAgWyVkXSAlczolZDogJXMi
ICUgKG51bSwgZnNwYXRoLCBsaW5lbm8gKyAxLCByZWFzb24pCi0gICAgICAgICAgICAgICAgICAg
ICkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBl
bmQoIlNLSVAgWyVkXSAlczogJXMiICUgKG51bSwgZnNwYXRoLCByZWFzb24pKQotCi0KLWRlZiBz
aG93ZXIoc3RhdCwgZm9ybWF0KToKLQotICAgIGRlZiBzaG93Xyh0ZXJtaW5hbHJlcG9ydGVyLCBs
aW5lcyk6Ci0gICAgICAgIHJldHVybiBzaG93X3NpbXBsZSh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5l
cywgc3RhdCwgZm9ybWF0KQotCi0gICAgcmV0dXJuIHNob3dfCi0KLQotUkVQT1JUQ0hBUl9BQ1RJ
T05TID0gewotICAgICJ4Ijogc2hvd194ZmFpbGVkLAotICAgICJYIjogc2hvd194cGFzc2VkLAot
ICAgICJmIjogc2hvd2VyKCJmYWlsZWQiLCAiRkFJTCAlcyIpLAotICAgICJGIjogc2hvd2VyKCJm
YWlsZWQiLCAiRkFJTCAlcyIpLAotICAgICJzIjogc2hvd19za2lwcGVkLAotICAgICJTIjogc2hv
d19za2lwcGVkLAotICAgICJwIjogc2hvd2VyKCJwYXNzZWQiLCAiUEFTU0VEICVzIiksCi0gICAg
IkUiOiBzaG93ZXIoImVycm9yIiwgIkVSUk9SICVzIiksCi19CisgICAgICAgICAgICByZXR1cm4g
InhwYXNzZWQiLCAiWCIsICJYUEFTUyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L3N0ZXB3aXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc3RlcHdpc2UucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODg5MDI1OTU4OTY5ODgzOGVkMjY0ZjAxMzliNTc3NGUyZDIzMGUzOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3N0ZXB3aXNlLnB5CkBAIC0wLDAg
KzEsMTA5IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK2Rl
ZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAo
ImdlbmVyYWwiKQorICAgIGdyb3VwLmFkZG9wdGlvbigKKyAgICAgICAgIi0tc3ciLAorICAgICAg
ICAiLS1zdGVwd2lzZSIsCisgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgIGRl
c3Q9InN0ZXB3aXNlIiwKKyAgICAgICAgaGVscD0iZXhpdCBvbiB0ZXN0IGZhaWx1cmUgYW5kIGNv
bnRpbnVlIGZyb20gbGFzdCBmYWlsaW5nIHRlc3QgbmV4dCB0aW1lIiwKKyAgICApCisgICAgZ3Jv
dXAuYWRkb3B0aW9uKAorICAgICAgICAiLS1zdGVwd2lzZS1za2lwIiwKKyAgICAgICAgYWN0aW9u
PSJzdG9yZV90cnVlIiwKKyAgICAgICAgZGVzdD0ic3RlcHdpc2Vfc2tpcCIsCisgICAgICAgIGhl
bHA9Imlnbm9yZSB0aGUgZmlyc3QgZmFpbGluZyB0ZXN0IGJ1dCBzdG9wIG9uIHRoZSBuZXh0IGZh
aWxpbmcgdGVzdCIsCisgICAgKQorCisKK0BweXRlc3QuaG9va2ltcGwKK2RlZiBweXRlc3RfY29u
ZmlndXJlKGNvbmZpZyk6CisgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoU3RlcHdp
c2VQbHVnaW4oY29uZmlnKSwgInN0ZXB3aXNlcGx1Z2luIikKKworCitjbGFzcyBTdGVwd2lzZVBs
dWdpbjoKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKKyAgICAgICAgc2VsZi5jb25m
aWcgPSBjb25maWcKKyAgICAgICAgc2VsZi5hY3RpdmUgPSBjb25maWcuZ2V0dmFsdWUoInN0ZXB3
aXNlIikKKyAgICAgICAgc2VsZi5zZXNzaW9uID0gTm9uZQorICAgICAgICBzZWxmLnJlcG9ydF9z
dGF0dXMgPSAiIgorCisgICAgICAgIGlmIHNlbGYuYWN0aXZlOgorICAgICAgICAgICAgc2VsZi5s
YXN0ZmFpbGVkID0gY29uZmlnLmNhY2hlLmdldCgiY2FjaGUvc3RlcHdpc2UiLCBOb25lKQorICAg
ICAgICAgICAgc2VsZi5za2lwID0gY29uZmlnLmdldHZhbHVlKCJzdGVwd2lzZV9za2lwIikKKwor
ICAgIGRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlbGYsIHNlc3Npb24pOgorICAgICAgICBzZWxm
LnNlc3Npb24gPSBzZXNzaW9uCisKKyAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRl
bXMoc2VsZiwgc2Vzc2lvbiwgY29uZmlnLCBpdGVtcyk6CisgICAgICAgIGlmIG5vdCBzZWxmLmFj
dGl2ZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBub3Qgc2VsZi5sYXN0ZmFpbGVk
OgorICAgICAgICAgICAgc2VsZi5yZXBvcnRfc3RhdHVzID0gIm5vIHByZXZpb3VzbHkgZmFpbGVk
IHRlc3RzLCBub3Qgc2tpcHBpbmcuIgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgYWxy
ZWFkeV9wYXNzZWQgPSBbXQorICAgICAgICBmb3VuZCA9IEZhbHNlCisKKyAgICAgICAgIyBNYWtl
IGEgbGlzdCBvZiBhbGwgdGVzdHMgdGhhdCBoYXZlIGJlZW4gcnVuIGJlZm9yZSB0aGUgbGFzdCBm
YWlsaW5nIG9uZS4KKyAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICBpZiBp
dGVtLm5vZGVpZCA9PSBzZWxmLmxhc3RmYWlsZWQ6CisgICAgICAgICAgICAgICAgZm91bmQgPSBU
cnVlCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgYWxyZWFkeV9wYXNzZWQuYXBwZW5kKGl0ZW0pCisKKyAgICAgICAgIyBJZiB0aGUgcHJl
dmlvdXNseSBmYWlsZWQgdGVzdCB3YXMgbm90IGZvdW5kIGFtb25nIHRoZSB0ZXN0IGl0ZW1zLAor
ICAgICAgICAjIGRvIG5vdCBza2lwIGFueSB0ZXN0cy4KKyAgICAgICAgaWYgbm90IGZvdW5kOgor
ICAgICAgICAgICAgc2VsZi5yZXBvcnRfc3RhdHVzID0gInByZXZpb3VzbHkgZmFpbGVkIHRlc3Qg
bm90IGZvdW5kLCBub3Qgc2tpcHBpbmcuIgorICAgICAgICAgICAgYWxyZWFkeV9wYXNzZWQgPSBb
XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5yZXBvcnRfc3RhdHVzID0gInNraXBw
aW5nIHt9IGFscmVhZHkgcGFzc2VkIGl0ZW1zLiIuZm9ybWF0KAorICAgICAgICAgICAgICAgIGxl
bihhbHJlYWR5X3Bhc3NlZCkKKyAgICAgICAgICAgICkKKworICAgICAgICBmb3IgaXRlbSBpbiBh
bHJlYWR5X3Bhc3NlZDoKKyAgICAgICAgICAgIGl0ZW1zLnJlbW92ZShpdGVtKQorCisgICAgICAg
IGNvbmZpZy5ob29rLnB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zPWFscmVhZHlfcGFzc2VkKQorCisg
ICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxmLCByZXBvcnQpOgorICAgICAgICBp
ZiBub3Qgc2VsZi5hY3RpdmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiByZXBv
cnQuZmFpbGVkOgorICAgICAgICAgICAgaWYgc2VsZi5za2lwOgorICAgICAgICAgICAgICAgICMg
UmVtb3ZlIHRlc3QgZnJvbSB0aGUgZmFpbGVkIG9uZXMgKGlmIGl0IGV4aXN0cykgYW5kIHVuc2V0
IHRoZSBza2lwIG9wdGlvbgorICAgICAgICAgICAgICAgICMgdG8gbWFrZSBzdXJlIHRoZSBmb2xs
b3dpbmcgdGVzdHMgd2lsbCBub3QgYmUgc2tpcHBlZC4KKyAgICAgICAgICAgICAgICBpZiByZXBv
cnQubm9kZWlkID09IHNlbGYubGFzdGZhaWxlZDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5s
YXN0ZmFpbGVkID0gTm9uZQorCisgICAgICAgICAgICAgICAgc2VsZi5za2lwID0gRmFsc2UKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBNYXJrIHRlc3QgYXMgdGhlIGxhc3Qg
ZmFpbGluZyBhbmQgaW50ZXJydXB0IHRoZSB0ZXN0IHNlc3Npb24uCisgICAgICAgICAgICAgICAg
c2VsZi5sYXN0ZmFpbGVkID0gcmVwb3J0Lm5vZGVpZAorICAgICAgICAgICAgICAgIHNlbGYuc2Vz
c2lvbi5zaG91bGRzdG9wID0gKAorICAgICAgICAgICAgICAgICAgICAiVGVzdCBmYWlsZWQsIGNv
bnRpbnVpbmcgZnJvbSB0aGlzIHRlc3QgbmV4dCBydW4uIgorICAgICAgICAgICAgICAgICkKKwor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBJZiB0aGUgdGVzdCB3YXMgYWN0dWFsbHkgcnVu
IGFuZCBkaWQgcGFzcy4KKyAgICAgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJjYWxsIjoKKyAg
ICAgICAgICAgICAgICAjIFJlbW92ZSB0ZXN0IGZyb20gdGhlIGZhaWxlZCBvbmVzLCBpZiBleGlz
dHMuCisgICAgICAgICAgICAgICAgaWYgcmVwb3J0Lm5vZGVpZCA9PSBzZWxmLmxhc3RmYWlsZWQ6
CisgICAgICAgICAgICAgICAgICAgIHNlbGYubGFzdGZhaWxlZCA9IE5vbmUKKworICAgIGRlZiBw
eXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5pc2goc2VsZik6CisgICAgICAgIGlmIHNlbGYuYWN0
aXZlIGFuZCBzZWxmLmNvbmZpZy5nZXRvcHRpb24oInZlcmJvc2UiKSA+PSAwIGFuZCBzZWxmLnJl
cG9ydF9zdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gInN0ZXB3aXNlOiAlcyIgJSBzZWxmLnJl
cG9ydF9zdGF0dXMKKworICAgIGRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChzZWxmLCBzZXNzaW9u
KToKKyAgICAgICAgaWYgc2VsZi5hY3RpdmU6CisgICAgICAgICAgICBzZWxmLmNvbmZpZy5jYWNo
ZS5zZXQoImNhY2hlL3N0ZXB3aXNlIiwgc2VsZi5sYXN0ZmFpbGVkKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgIyBDbGVhciB0aGUgbGlzdCBvZiBmYWlsaW5nIHRlc3RzIGlmIHRoZSBwbHVn
aW4gaXMgbm90IGFjdGl2ZS4KKyAgICAgICAgICAgIHNlbGYuY29uZmlnLmNhY2hlLnNldCgiY2Fj
aGUvc3RlcHdpc2UiLCBbXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3Rl
cm1pbmFsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdGVybWluYWwucHkKaW5kZXggOWM0
ZWVjNzUzMWE5OTdlODQxY2U5MDQzNTNmNTA0YjY5ZDViYjVlMS4uNDQxODMzOGM2NTYxMmI2ZmQy
OWY3MWQzMWMyZDIyZTA4OTA5NTM4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvdGVybWluYWwucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdGVybWluYWwucHkK
QEAgLTEsMTQgKzEsMjAgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiIgdGVybWluYWwg
cmVwb3J0aW5nIG9mIHRoZSBmdWxsIHRlc3RpbmcgcHJvY2Vzcy4KIAogVGhpcyBpcyBhIGdvb2Qg
c291cmNlIGZvciBsb29raW5nIGF0IHRoZSB2YXJpb3VzIHJlcG9ydGluZyBob29rcy4KICIiIgot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9m
dW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19m
dXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVu
Y3Rpb24KIAotaW1wb3J0IGl0ZXJ0b29scworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgY29sbGVj
dGlvbnMKIGltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKK2Zyb20gZnVu
Y3Rvb2xzIGltcG9ydCBwYXJ0aWFsCiAKK2ltcG9ydCBhdHRyCiBpbXBvcnQgcGx1Z2d5CiBpbXBv
cnQgcHkKIGltcG9ydCBzaXgKQEAgLTE2LDE2ICsyMiwxMyBAQCBmcm9tIG1vcmVfaXRlcnRvb2xz
IGltcG9ydCBjb2xsYXBzZQogCiBpbXBvcnQgcHl0ZXN0CiBmcm9tIF9weXRlc3QgaW1wb3J0IG5v
ZGVzCi1mcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgKAotICAgIEVYSVRfT0ssCi0gICAgRVhJVF9U
RVNUU0ZBSUxFRCwKLSAgICBFWElUX0lOVEVSUlVQVEVELAotICAgIEVYSVRfVVNBR0VFUlJPUiwK
LSAgICBFWElUX05PVEVTVFNDT0xMRUNURUQsCi0pCi0KK2Zyb20gX3B5dGVzdC5tYWluIGltcG9y
dCBFWElUX0lOVEVSUlVQVEVECitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RT
Q09MTEVDVEVECitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9PSworZnJvbSBfcHl0ZXN0
Lm1haW4gaW1wb3J0IEVYSVRfVEVTVFNGQUlMRUQKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBF
WElUX1VTQUdFRVJST1IKIAotaW1wb3J0IGFyZ3BhcnNlCitSRVBPUlRfQ09MTEVDVElOR19SRVNP
TFVUSU9OID0gMC41CiAKIAogY2xhc3MgTW9yZVF1aWV0QWN0aW9uKGFyZ3BhcnNlLkFjdGlvbik6
CkBAIC04MCwxMSArODMsMTEgQEAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKICAgICAg
ICAgZGVzdD0icmVwb3J0Y2hhcnMiLAogICAgICAgICBkZWZhdWx0PSIiLAogICAgICAgICBtZXRh
dmFyPSJjaGFycyIsCi0gICAgICAgIGhlbHA9InNob3cgZXh0cmEgdGVzdCBzdW1tYXJ5IGluZm8g
YXMgc3BlY2lmaWVkIGJ5IGNoYXJzIChmKWFpbGVkLCAiCi0gICAgICAgICIoRSllcnJvciwgKHMp
c2tpcHBlZCwgKHgpZmFpbGVkLCAoWClwYXNzZWQsICIKLSAgICAgICAgIihwKXBhc3NlZCwgKFAp
cGFzc2VkIHdpdGggb3V0cHV0LCAoYSlhbGwgZXhjZXB0IHBQLiAiCisgICAgICAgIGhlbHA9InNo
b3cgZXh0cmEgdGVzdCBzdW1tYXJ5IGluZm8gYXMgc3BlY2lmaWVkIGJ5IGNoYXJzOiAoZilhaWxl
ZCwgIgorICAgICAgICAiKEUpcnJvciwgKHMpa2lwcGVkLCAoeClmYWlsZWQsIChYKXBhc3NlZCwg
IgorICAgICAgICAiKHApYXNzZWQsIChQKWFzc2VkIHdpdGggb3V0cHV0LCAoYSlsbCBleGNlcHQg
cGFzc2VkIChwL1ApLCBvciAoQSlsbC4gIgogICAgICAgICAiV2FybmluZ3MgYXJlIGRpc3BsYXll
ZCBhdCBhbGwgdGltZXMgZXhjZXB0IHdoZW4gIgotICAgICAgICAiLS1kaXNhYmxlLXdhcm5pbmdz
IGlzIHNldCIsCisgICAgICAgICItLWRpc2FibGUtd2FybmluZ3MgaXMgc2V0LiIsCiAgICAgKQog
ICAgIGdyb3VwLl9hZGRvcHRpb24oCiAgICAgICAgICItLWRpc2FibGUtd2FybmluZ3MiLApAQCAt
MTM5LDcgKzE0Miw3IEBAIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CiAKICAgICBwYXJz
ZXIuYWRkaW5pKAogICAgICAgICAiY29uc29sZV9vdXRwdXRfc3R5bGUiLAotICAgICAgICBoZWxw
PSJjb25zb2xlIG91dHB1dDogY2xhc3NpYyBvciB3aXRoIGFkZGl0aW9uYWwgcHJvZ3Jlc3MgaW5m
b3JtYXRpb24gKGNsYXNzaWN8cHJvZ3Jlc3MpLiIsCisgICAgICAgIGhlbHA9J2NvbnNvbGUgb3V0
cHV0OiAiY2xhc3NpYyIsIG9yIHdpdGggYWRkaXRpb25hbCBwcm9ncmVzcyBpbmZvcm1hdGlvbiAo
InByb2dyZXNzIiAocGVyY2VudGFnZSkgfCAiY291bnQiKS4nLAogICAgICAgICBkZWZhdWx0PSJw
cm9ncmVzcyIsCiAgICAgKQogCkBAIC0xNjMsNDQgKzE2Niw1MiBAQCBkZWYgZ2V0cmVwb3J0b3B0
KGNvbmZpZyk6CiAgICAgICAgIHJlcG9ydGNoYXJzICs9ICJ3IgogICAgIGVsaWYgY29uZmlnLm9w
dGlvbi5kaXNhYmxlX3dhcm5pbmdzIGFuZCAidyIgaW4gcmVwb3J0Y2hhcnM6CiAgICAgICAgIHJl
cG9ydGNoYXJzID0gcmVwb3J0Y2hhcnMucmVwbGFjZSgidyIsICIiKQotICAgIGlmIHJlcG9ydGNo
YXJzOgotICAgICAgICBmb3IgY2hhciBpbiByZXBvcnRjaGFyczoKLSAgICAgICAgICAgIGlmIGNo
YXIgbm90IGluIHJlcG9ydG9wdHMgYW5kIGNoYXIgIT0gImEiOgotICAgICAgICAgICAgICAgIHJl
cG9ydG9wdHMgKz0gY2hhcgotICAgICAgICAgICAgZWxpZiBjaGFyID09ICJhIjoKLSAgICAgICAg
ICAgICAgICByZXBvcnRvcHRzID0gImZFc3hYdyIKKyAgICBhbGlhc2VzID0geyJGIiwgIlMifQor
ICAgIGZvciBjaGFyIGluIHJlcG9ydGNoYXJzOgorICAgICAgICAjIGhhbmRsZSBvbGQgYWxpYXNl
cworICAgICAgICBpZiBjaGFyIGluIGFsaWFzZXM6CisgICAgICAgICAgICBjaGFyID0gY2hhci5s
b3dlcigpCisgICAgICAgIGlmIGNoYXIgPT0gImEiOgorICAgICAgICAgICAgcmVwb3J0b3B0cyA9
ICJzeFh3RWYiCisgICAgICAgIGVsaWYgY2hhciA9PSAiQSI6CisgICAgICAgICAgICByZXBvcnRv
cHRzID0gIlBwc3hYd0VmIgorICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxpZiBjaGFyIG5v
dCBpbiByZXBvcnRvcHRzOgorICAgICAgICAgICAgcmVwb3J0b3B0cyArPSBjaGFyCiAgICAgcmV0
dXJuIHJlcG9ydG9wdHMKIAogCitAcHl0ZXN0Lmhvb2tpbXBsKHRyeWxhc3Q9VHJ1ZSkgICMgYWZ0
ZXIgX3B5dGVzdC5ydW5uZXIKIGRlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0KToK
KyAgICBsZXR0ZXIgPSAiRiIKICAgICBpZiByZXBvcnQucGFzc2VkOgogICAgICAgICBsZXR0ZXIg
PSAiLiIKICAgICBlbGlmIHJlcG9ydC5za2lwcGVkOgogICAgICAgICBsZXR0ZXIgPSAicyIKLSAg
ICBlbGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgIGxldHRlciA9ICJGIgotICAgICAgICBpZiBy
ZXBvcnQud2hlbiAhPSAiY2FsbCI6Ci0gICAgICAgICAgICBsZXR0ZXIgPSAiZiIKLSAgICByZXR1
cm4gcmVwb3J0Lm91dGNvbWUsIGxldHRlciwgcmVwb3J0Lm91dGNvbWUudXBwZXIoKQogCisgICAg
b3V0Y29tZSA9IHJlcG9ydC5vdXRjb21lCisgICAgaWYgcmVwb3J0LndoZW4gaW4gKCJjb2xsZWN0
IiwgInNldHVwIiwgInRlYXJkb3duIikgYW5kIG91dGNvbWUgPT0gImZhaWxlZCI6CisgICAgICAg
IG91dGNvbWUgPSAiZXJyb3IiCisgICAgICAgIGxldHRlciA9ICJFIgogCisgICAgcmV0dXJuIG91
dGNvbWUsIGxldHRlciwgb3V0Y29tZS51cHBlcigpCisKKworQGF0dHIucwogY2xhc3MgV2Fybmlu
Z1JlcG9ydChvYmplY3QpOgogICAgICIiIgotICAgIFNpbXBsZSBzdHJ1Y3R1cmUgdG8gaG9sZCB3
YXJuaW5ncyBpbmZvcm1hdGlvbiBjYXB0dXJlZCBieSBgYHB5dGVzdF9sb2d3YXJuaW5nYGAuCisg
ICAgU2ltcGxlIHN0cnVjdHVyZSB0byBob2xkIHdhcm5pbmdzIGluZm9ybWF0aW9uIGNhcHR1cmVk
IGJ5IGBgcHl0ZXN0X3dhcm5pbmdfY2FwdHVyZWRgYC4KKworICAgIDppdmFyIHN0ciBtZXNzYWdl
OiB1c2VyIGZyaWVuZGx5IG1lc3NhZ2UgYWJvdXQgdGhlIHdhcm5pbmcKKyAgICA6aXZhciBzdHJ8
Tm9uZSBub2RlaWQ6IG5vZGUgaWQgdGhhdCBnZW5lcmF0ZWQgdGhlIHdhcm5pbmcgKHNlZSBgYGdl
dF9sb2NhdGlvbmBgKS4KKyAgICA6aXZhciB0dXBsZXxweS5wYXRoLmxvY2FsIGZzbG9jYXRpb246
CisgICAgICAgIGZpbGUgc3lzdGVtIGxvY2F0aW9uIG9mIHRoZSBzb3VyY2Ugb2YgdGhlIHdhcm5p
bmcgKHNlZSBgYGdldF9sb2NhdGlvbmBgKS4KICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBjb2RlLCBtZXNzYWdlLCBub2RlaWQ9Tm9uZSwgZnNsb2NhdGlvbj1Ob25lKToKLSAgICAg
ICAgIiIiCi0gICAgICAgIDpwYXJhbSBjb2RlOiB1bnVzZWQKLSAgICAgICAgOnBhcmFtIHN0ciBt
ZXNzYWdlOiB1c2VyIGZyaWVuZGx5IG1lc3NhZ2UgYWJvdXQgdGhlIHdhcm5pbmcKLSAgICAgICAg
OnBhcmFtIHN0cnxOb25lIG5vZGVpZDogbm9kZSBpZCB0aGF0IGdlbmVyYXRlZCB0aGUgd2Fybmlu
ZyAoc2VlIGBgZ2V0X2xvY2F0aW9uYGApLgotICAgICAgICA6cGFyYW0gdHVwbGV8cHkucGF0aC5s
b2NhbCBmc2xvY2F0aW9uOgotICAgICAgICAgICAgZmlsZSBzeXN0ZW0gbG9jYXRpb24gb2YgdGhl
IHNvdXJjZSBvZiB0aGUgd2FybmluZyAoc2VlIGBgZ2V0X2xvY2F0aW9uYGApLgotICAgICAgICAi
IiIKLSAgICAgICAgc2VsZi5jb2RlID0gY29kZQotICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNz
YWdlCi0gICAgICAgIHNlbGYubm9kZWlkID0gbm9kZWlkCi0gICAgICAgIHNlbGYuZnNsb2NhdGlv
biA9IGZzbG9jYXRpb24KKyAgICBtZXNzYWdlID0gYXR0ci5pYigpCisgICAgbm9kZWlkID0gYXR0
ci5pYihkZWZhdWx0PU5vbmUpCisgICAgZnNsb2NhdGlvbiA9IGF0dHIuaWIoZGVmYXVsdD1Ob25l
KQorICAgIGNvdW50X3Rvd2FyZHNfc3VtbWFyeSA9IFRydWUKIAogICAgIGRlZiBnZXRfbG9jYXRp
b24oc2VsZiwgY29uZmlnKToKICAgICAgICAgIiIiCkBAIC0yMTMsNiArMjI0LDggQEAgY2xhc3Mg
V2FybmluZ1JlcG9ydChvYmplY3QpOgogICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmZz
bG9jYXRpb24sIHR1cGxlKSBhbmQgbGVuKHNlbGYuZnNsb2NhdGlvbikgPj0gMjoKICAgICAgICAg
ICAgICAgICBmaWxlbmFtZSwgbGluZW51bSA9IHNlbGYuZnNsb2NhdGlvbls6Ml0KICAgICAgICAg
ICAgICAgICByZWxwYXRoID0gcHkucGF0aC5sb2NhbChmaWxlbmFtZSkucmVsdG8oY29uZmlnLmlu
dm9jYXRpb25fZGlyKQorICAgICAgICAgICAgICAgIGlmIG5vdCByZWxwYXRoOgorICAgICAgICAg
ICAgICAgICAgICByZWxwYXRoID0gc3RyKGZpbGVuYW1lKQogICAgICAgICAgICAgICAgIHJldHVy
biAiJXM6JXMiICUgKHJlbHBhdGgsIGxpbmVudW0pCiAgICAgICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgICAgIHJldHVybiBzdHIoc2VsZi5mc2xvY2F0aW9uKQpAQCAtMjIwLDIwICsyMzMsMTYg
QEAgY2xhc3MgV2FybmluZ1JlcG9ydChvYmplY3QpOgogCiAKIGNsYXNzIFRlcm1pbmFsUmVwb3J0
ZXIob2JqZWN0KToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcsIGZpbGU9Tm9uZSk6
CiAgICAgICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZwogCiAgICAgICAgIHNlbGYuY29uZmlnID0g
Y29uZmlnCi0gICAgICAgIHNlbGYudmVyYm9zaXR5ID0gc2VsZi5jb25maWcub3B0aW9uLnZlcmJv
c2UKLSAgICAgICAgc2VsZi5zaG93aGVhZGVyID0gc2VsZi52ZXJib3NpdHkgPj0gMAotICAgICAg
ICBzZWxmLnNob3dmc3BhdGggPSBzZWxmLnZlcmJvc2l0eSA+PSAwCi0gICAgICAgIHNlbGYuc2hv
d2xvbmd0ZXN0aW5mbyA9IHNlbGYudmVyYm9zaXR5ID4gMAogICAgICAgICBzZWxmLl9udW1jb2xs
ZWN0ZWQgPSAwCiAgICAgICAgIHNlbGYuX3Nlc3Npb24gPSBOb25lCisgICAgICAgIHNlbGYuX3No
b3dmc3BhdGggPSBOb25lCiAKICAgICAgICAgc2VsZi5zdGF0cyA9IHt9Ci0gICAgICAgIHNlbGYu
c3RhcnRkaXIgPSBweS5wYXRoLmxvY2FsKCkKKyAgICAgICAgc2VsZi5zdGFydGRpciA9IGNvbmZp
Zy5pbnZvY2F0aW9uX2RpcgogICAgICAgICBpZiBmaWxlIGlzIE5vbmU6CiAgICAgICAgICAgICBm
aWxlID0gc3lzLnN0ZG91dAogICAgICAgICBzZWxmLl90dyA9IF9weXRlc3QuY29uZmlnLmNyZWF0
ZV90ZXJtaW5hbF93cml0ZXIoY29uZmlnLCBmaWxlKQpAQCAtMjQ2LDMxICsyNTUsNTkgQEAgY2xh
c3MgVGVybWluYWxSZXBvcnRlcihvYmplY3QpOgogICAgICAgICBzZWxmLmlzYXR0eSA9IGZpbGUu
aXNhdHR5KCkKICAgICAgICAgc2VsZi5fcHJvZ3Jlc3Nfbm9kZWlkc19yZXBvcnRlZCA9IHNldCgp
CiAgICAgICAgIHNlbGYuX3Nob3dfcHJvZ3Jlc3NfaW5mbyA9IHNlbGYuX2RldGVybWluZV9zaG93
X3Byb2dyZXNzX2luZm8oKQorICAgICAgICBzZWxmLl9jb2xsZWN0X3JlcG9ydF9sYXN0X3dyaXRl
ID0gTm9uZQogCiAgICAgZGVmIF9kZXRlcm1pbmVfc2hvd19wcm9ncmVzc19pbmZvKHNlbGYpOgog
ICAgICAgICAiIiJSZXR1cm4gVHJ1ZSBpZiB3ZSBzaG91bGQgZGlzcGxheSBwcm9ncmVzcyBpbmZv
cm1hdGlvbiBiYXNlZCBvbiB0aGUgY3VycmVudCBjb25maWciIiIKICAgICAgICAgIyBkbyBub3Qg
c2hvdyBwcm9ncmVzcyBpZiB3ZSBhcmUgbm90IGNhcHR1cmluZyBvdXRwdXQgKCMzMDM4KQotICAg
ICAgICBpZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24oImNhcHR1cmUiKSA9PSAibm8iOgorICAgICAg
ICBpZiBzZWxmLmNvbmZpZy5nZXRvcHRpb24oImNhcHR1cmUiLCAibm8iKSA9PSAibm8iOgogICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgICMgZG8gbm90IHNob3cgcHJvZ3Jlc3MgaWYg
d2UgYXJlIHNob3dpbmcgZml4dHVyZSBzZXR1cC90ZWFyZG93bgotICAgICAgICBpZiBzZWxmLmNv
bmZpZy5nZXRvcHRpb24oInNldHVwc2hvdyIpOgorICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXRv
cHRpb24oInNldHVwc2hvdyIsIEZhbHNlKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAg
ICAgICByZXR1cm4gc2VsZi5jb25maWcuZ2V0aW5pKCJjb25zb2xlX291dHB1dF9zdHlsZSIpID09
ICJwcm9ncmVzcyIKKyAgICAgICAgY2ZnID0gc2VsZi5jb25maWcuZ2V0aW5pKCJjb25zb2xlX291
dHB1dF9zdHlsZSIpCisgICAgICAgIGlmIGNmZyBpbiAoInByb2dyZXNzIiwgImNvdW50Iik6Cisg
ICAgICAgICAgICByZXR1cm4gY2ZnCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIHZlcmJvc2l0eShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY29uZmln
Lm9wdGlvbi52ZXJib3NlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2hvd2hlYWRlcihzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYudmVyYm9zaXR5ID49IDAKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBzaG93ZnNwYXRoKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9zaG93ZnNwYXRoIGlz
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi52ZXJib3NpdHkgPj0gMAorICAgICAgICBy
ZXR1cm4gc2VsZi5fc2hvd2ZzcGF0aAorCisgICAgQHNob3dmc3BhdGguc2V0dGVyCisgICAgZGVm
IHNob3dmc3BhdGgoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLl9zaG93ZnNwYXRoID0gdmFs
dWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzaG93bG9uZ3Rlc3RpbmZvKHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2VsZi52ZXJib3NpdHkgPiAwCiAKICAgICBkZWYgaGFzb3B0KHNlbGYsIGNo
YXIpOgogICAgICAgICBjaGFyID0geyJ4ZmFpbGVkIjogIngiLCAic2tpcHBlZCI6ICJzIn0uZ2V0
KGNoYXIsIGNoYXIpCiAgICAgICAgIHJldHVybiBjaGFyIGluIHNlbGYucmVwb3J0Y2hhcnMKIAot
ICAgIGRlZiB3cml0ZV9mc3BhdGhfcmVzdWx0KHNlbGYsIG5vZGVpZCwgcmVzKToKKyAgICBkZWYg
d3JpdGVfZnNwYXRoX3Jlc3VsdChzZWxmLCBub2RlaWQsIHJlcywgKiptYXJrdXApOgogICAgICAg
ICBmc3BhdGggPSBzZWxmLmNvbmZpZy5yb290ZGlyLmpvaW4obm9kZWlkLnNwbGl0KCI6OiIpWzBd
KQotICAgICAgICBpZiBmc3BhdGggIT0gc2VsZi5jdXJyZW50ZnNwYXRoOgotICAgICAgICAgICAg
aWYgc2VsZi5jdXJyZW50ZnNwYXRoIGlzIG5vdCBOb25lOgorICAgICAgICAjIE5PVEU6IGV4cGxp
Y2l0bHkgY2hlY2sgZm9yIE5vbmUgdG8gd29yayBhcm91bmQgcHkgYnVnLCBhbmQgZm9yIGxlc3MK
KyAgICAgICAgIyBvdmVyaGVhZCBpbiBnZW5lcmFsIChodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weS9wdWxsLzIwNykuCisgICAgICAgIGlmIHNlbGYuY3VycmVudGZzcGF0aCBpcyBOb25l
IG9yIGZzcGF0aCAhPSBzZWxmLmN1cnJlbnRmc3BhdGg6CisgICAgICAgICAgICBpZiBzZWxmLmN1
cnJlbnRmc3BhdGggaXMgbm90IE5vbmUgYW5kIHNlbGYuX3Nob3dfcHJvZ3Jlc3NfaW5mbzoKICAg
ICAgICAgICAgICAgICBzZWxmLl93cml0ZV9wcm9ncmVzc19pbmZvcm1hdGlvbl9maWxsaW5nX3Nw
YWNlKCkKICAgICAgICAgICAgIHNlbGYuY3VycmVudGZzcGF0aCA9IGZzcGF0aAogICAgICAgICAg
ICAgZnNwYXRoID0gc2VsZi5zdGFydGRpci5iZXN0cmVscGF0aChmc3BhdGgpCiAgICAgICAgICAg
ICBzZWxmLl90dy5saW5lKCkKICAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKGZzcGF0aCArICIg
IikKLSAgICAgICAgc2VsZi5fdHcud3JpdGUocmVzKQorICAgICAgICBzZWxmLl90dy53cml0ZShy
ZXMsICoqbWFya3VwKQogCiAgICAgZGVmIHdyaXRlX2Vuc3VyZV9wcmVmaXgoc2VsZiwgcHJlZml4
LCBleHRyYT0iIiwgKiprd2FyZ3MpOgogICAgICAgICBpZiBzZWxmLmN1cnJlbnRmc3BhdGggIT0g
cHJlZml4OgpAQCAtMzI4LDEyICszNjUsMTkgQEAgY2xhc3MgVGVybWluYWxSZXBvcnRlcihvYmpl
Y3QpOgogICAgICAgICAgICAgc2VsZi53cml0ZV9saW5lKCJJTlRFUk5BTEVSUk9SPiAiICsgbGlu
ZSkKICAgICAgICAgcmV0dXJuIDEKIAotICAgIGRlZiBweXRlc3RfbG9nd2FybmluZyhzZWxmLCBj
b2RlLCBmc2xvY2F0aW9uLCBtZXNzYWdlLCBub2RlaWQpOgorICAgIGRlZiBweXRlc3Rfd2Fybmlu
Z19jYXB0dXJlZChzZWxmLCB3YXJuaW5nX21lc3NhZ2UsIGl0ZW0pOgorICAgICAgICAjIGZyb20g
X3B5dGVzdC5ub2RlcyBpbXBvcnQgZ2V0X2ZzbG9jYXRpb25fZnJvbV9pdGVtCisgICAgICAgIGZy
b20gX3B5dGVzdC53YXJuaW5ncyBpbXBvcnQgd2FybmluZ19yZWNvcmRfdG9fc3RyCisKICAgICAg
ICAgd2FybmluZ3MgPSBzZWxmLnN0YXRzLnNldGRlZmF1bHQoIndhcm5pbmdzIiwgW10pCi0gICAg
ICAgIHdhcm5pbmcgPSBXYXJuaW5nUmVwb3J0KAotICAgICAgICAgICAgY29kZT1jb2RlLCBmc2xv
Y2F0aW9uPWZzbG9jYXRpb24sIG1lc3NhZ2U9bWVzc2FnZSwgbm9kZWlkPW5vZGVpZAorICAgICAg
ICBmc2xvY2F0aW9uID0gd2FybmluZ19tZXNzYWdlLmZpbGVuYW1lLCB3YXJuaW5nX21lc3NhZ2Uu
bGluZW5vCisgICAgICAgIG1lc3NhZ2UgPSB3YXJuaW5nX3JlY29yZF90b19zdHIod2FybmluZ19t
ZXNzYWdlKQorCisgICAgICAgIG5vZGVpZCA9IGl0ZW0ubm9kZWlkIGlmIGl0ZW0gaXMgbm90IE5v
bmUgZWxzZSAiIgorICAgICAgICB3YXJuaW5nX3JlcG9ydCA9IFdhcm5pbmdSZXBvcnQoCisgICAg
ICAgICAgICBmc2xvY2F0aW9uPWZzbG9jYXRpb24sIG1lc3NhZ2U9bWVzc2FnZSwgbm9kZWlkPW5v
ZGVpZAogICAgICAgICApCi0gICAgICAgIHdhcm5pbmdzLmFwcGVuZCh3YXJuaW5nKQorICAgICAg
ICB3YXJuaW5ncy5hcHBlbmQod2FybmluZ19yZXBvcnQpCiAKICAgICBkZWYgcHl0ZXN0X3BsdWdp
bl9yZWdpc3RlcmVkKHNlbGYsIHBsdWdpbik6CiAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlv
bi50cmFjZWNvbmZpZzoKQEAgLTM1NywzNSArNDAxLDM4IEBAIGNsYXNzIFRlcm1pbmFsUmVwb3J0
ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYud3JpdGVfZnNwYXRoX3Jlc3VsdChmc2lkLCAi
IikKIAogICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQoc2VsZiwgcmVwb3J0KToKKyAg
ICAgICAgc2VsZi5fdGVzdHNfcmFuID0gVHJ1ZQogICAgICAgICByZXAgPSByZXBvcnQKLSAgICAg
ICAgcmVzID0gc2VsZi5jb25maWcuaG9vay5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0
PXJlcCkKLSAgICAgICAgY2F0LCBsZXR0ZXIsIHdvcmQgPSByZXMKKyAgICAgICAgcmVzID0gc2Vs
Zi5jb25maWcuaG9vay5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0PXJlcCwgY29uZmln
PXNlbGYuY29uZmlnKQorICAgICAgICBjYXRlZ29yeSwgbGV0dGVyLCB3b3JkID0gcmVzCiAgICAg
ICAgIGlmIGlzaW5zdGFuY2Uod29yZCwgdHVwbGUpOgogICAgICAgICAgICAgd29yZCwgbWFya3Vw
ID0gd29yZAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbWFya3VwID0gTm9uZQotICAgICAg
ICBzZWxmLnN0YXRzLnNldGRlZmF1bHQoY2F0LCBbXSkuYXBwZW5kKHJlcCkKLSAgICAgICAgc2Vs
Zi5fdGVzdHNfcmFuID0gVHJ1ZQorICAgICAgICBzZWxmLnN0YXRzLnNldGRlZmF1bHQoY2F0ZWdv
cnksIFtdKS5hcHBlbmQocmVwKQogICAgICAgICBpZiBub3QgbGV0dGVyIGFuZCBub3Qgd29yZDoK
ICAgICAgICAgICAgICMgcHJvYmFibHkgcGFzc2VkIHNldHVwL3RlYXJkb3duCiAgICAgICAgICAg
ICByZXR1cm4KICAgICAgICAgcnVubmluZ194ZGlzdCA9IGhhc2F0dHIocmVwLCAibm9kZSIpCisg
ICAgICAgIGlmIG1hcmt1cCBpcyBOb25lOgorICAgICAgICAgICAgd2FzX3hmYWlsID0gaGFzYXR0
cihyZXBvcnQsICJ3YXN4ZmFpbCIpCisgICAgICAgICAgICBpZiByZXAucGFzc2VkIGFuZCBub3Qg
d2FzX3hmYWlsOgorICAgICAgICAgICAgICAgIG1hcmt1cCA9IHsiZ3JlZW4iOiBUcnVlfQorICAg
ICAgICAgICAgZWxpZiByZXAucGFzc2VkIGFuZCB3YXNfeGZhaWw6CisgICAgICAgICAgICAgICAg
bWFya3VwID0geyJ5ZWxsb3ciOiBUcnVlfQorICAgICAgICAgICAgZWxpZiByZXAuZmFpbGVkOgor
ICAgICAgICAgICAgICAgIG1hcmt1cCA9IHsicmVkIjogVHJ1ZX0KKyAgICAgICAgICAgIGVsaWYg
cmVwLnNraXBwZWQ6CisgICAgICAgICAgICAgICAgbWFya3VwID0geyJ5ZWxsb3ciOiBUcnVlfQor
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBtYXJrdXAgPSB7fQogICAgICAgICBp
ZiBzZWxmLnZlcmJvc2l0eSA8PSAwOgogICAgICAgICAgICAgaWYgbm90IHJ1bm5pbmdfeGRpc3Qg
YW5kIHNlbGYuc2hvd2ZzcGF0aDoKLSAgICAgICAgICAgICAgICBzZWxmLndyaXRlX2ZzcGF0aF9y
ZXN1bHQocmVwLm5vZGVpZCwgbGV0dGVyKQorICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfZnNw
YXRoX3Jlc3VsdChyZXAubm9kZWlkLCBsZXR0ZXIsICoqbWFya3VwKQogICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICBzZWxmLl90dy53cml0ZShsZXR0ZXIpCisgICAgICAgICAgICAg
ICAgc2VsZi5fdHcud3JpdGUobGV0dGVyLCAqKm1hcmt1cCkKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIHNlbGYuX3Byb2dyZXNzX25vZGVpZHNfcmVwb3J0ZWQuYWRkKHJlcC5ub2RlaWQpCi0g
ICAgICAgICAgICBpZiBtYXJrdXAgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBpZiByZXAucGFz
c2VkOgotICAgICAgICAgICAgICAgICAgICBtYXJrdXAgPSB7ImdyZWVuIjogVHJ1ZX0KLSAgICAg
ICAgICAgICAgICBlbGlmIHJlcC5mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgICAgIG1hcmt1cCA9
IHsicmVkIjogVHJ1ZX0KLSAgICAgICAgICAgICAgICBlbGlmIHJlcC5za2lwcGVkOgotICAgICAg
ICAgICAgICAgICAgICBtYXJrdXAgPSB7InllbGxvdyI6IFRydWV9Ci0gICAgICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAgICAgbWFya3VwID0ge30KICAgICAgICAgICAgIGxpbmUg
PSBzZWxmLl9sb2NhdGlvbmxpbmUocmVwLm5vZGVpZCwgKnJlcC5sb2NhdGlvbikKICAgICAgICAg
ICAgIGlmIG5vdCBydW5uaW5nX3hkaXN0OgogICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfZW5z
dXJlX3ByZWZpeChsaW5lLCB3b3JkLCAqKm1hcmt1cCkKQEAgLTQwNiwzOCArNDUzLDYxIEBAIGNs
YXNzIFRlcm1pbmFsUmVwb3J0ZXIob2JqZWN0KToKIAogICAgIGRlZiBweXRlc3RfcnVudGVzdF9s
b2dmaW5pc2goc2VsZiwgbm9kZWlkKToKICAgICAgICAgaWYgc2VsZi52ZXJib3NpdHkgPD0gMCBh
bmQgc2VsZi5fc2hvd19wcm9ncmVzc19pbmZvOgorICAgICAgICAgICAgaWYgc2VsZi5fc2hvd19w
cm9ncmVzc19pbmZvID09ICJjb3VudCI6CisgICAgICAgICAgICAgICAgbnVtX3Rlc3RzID0gc2Vs
Zi5fc2Vzc2lvbi50ZXN0c2NvbGxlY3RlZAorICAgICAgICAgICAgICAgIHByb2dyZXNzX2xlbmd0
aCA9IGxlbigiIFt7fS97fV0iLmZvcm1hdChzdHIobnVtX3Rlc3RzKSwgc3RyKG51bV90ZXN0cykp
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcm9ncmVzc19sZW5ndGggPSBs
ZW4oIiBbMTAwJV0iKQorCiAgICAgICAgICAgICBzZWxmLl9wcm9ncmVzc19ub2RlaWRzX3JlcG9y
dGVkLmFkZChub2RlaWQpCi0gICAgICAgICAgICBsYXN0X2l0ZW0gPSBsZW4oCi0gICAgICAgICAg
ICAgICAgc2VsZi5fcHJvZ3Jlc3Nfbm9kZWlkc19yZXBvcnRlZAotICAgICAgICAgICAgKSA9PSBz
ZWxmLl9zZXNzaW9uLnRlc3RzY29sbGVjdGVkCi0gICAgICAgICAgICBpZiBsYXN0X2l0ZW06Cisg
ICAgICAgICAgICBpc19sYXN0X2l0ZW0gPSAoCisgICAgICAgICAgICAgICAgbGVuKHNlbGYuX3By
b2dyZXNzX25vZGVpZHNfcmVwb3J0ZWQpID09IHNlbGYuX3Nlc3Npb24udGVzdHNjb2xsZWN0ZWQK
KyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlmIGlzX2xhc3RfaXRlbToKICAgICAgICAgICAg
ICAgICBzZWxmLl93cml0ZV9wcm9ncmVzc19pbmZvcm1hdGlvbl9maWxsaW5nX3NwYWNlKCkKICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcGFzdF9lZGdlID0gc2VsZi5fdHcuY2hh
cnNfb25fY3VycmVudF9saW5lICsgc2VsZi5fUFJPR1JFU1NfTEVOR1RIICsgMSA+PSBzZWxmLl9z
Y3JlZW5fd2lkdGgKKyAgICAgICAgICAgICAgICB3ID0gc2VsZi5fd2lkdGhfb2ZfY3VycmVudF9s
aW5lCisgICAgICAgICAgICAgICAgcGFzdF9lZGdlID0gdyArIHByb2dyZXNzX2xlbmd0aCArIDEg
Pj0gc2VsZi5fc2NyZWVuX3dpZHRoCiAgICAgICAgICAgICAgICAgaWYgcGFzdF9lZGdlOgogICAg
ICAgICAgICAgICAgICAgICBtc2cgPSBzZWxmLl9nZXRfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fbWVz
c2FnZSgpCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKG1zZyArICJcbiIsIGN5
YW49VHJ1ZSkKIAotICAgIF9QUk9HUkVTU19MRU5HVEggPSBsZW4oIiBbMTAwJV0iKQotCiAgICAg
ZGVmIF9nZXRfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fbWVzc2FnZShzZWxmKToKLSAgICAgICAgaWYg
c2VsZi5jb25maWcuZ2V0b3B0aW9uKCJjYXB0dXJlIikgPT0gIm5vIjoKLSAgICAgICAgICAgIHJl
dHVybiAiIgogICAgICAgICBjb2xsZWN0ZWQgPSBzZWxmLl9zZXNzaW9uLnRlc3RzY29sbGVjdGVk
Ci0gICAgICAgIGlmIGNvbGxlY3RlZDoKLSAgICAgICAgICAgIHByb2dyZXNzID0gbGVuKHNlbGYu
X3Byb2dyZXNzX25vZGVpZHNfcmVwb3J0ZWQpICogMTAwIC8vIGNvbGxlY3RlZAotICAgICAgICAg
ICAgcmV0dXJuICIgW3s6M2R9JV0iLmZvcm1hdChwcm9ncmVzcykKLSAgICAgICAgcmV0dXJuICIg
WzEwMCVdIgorICAgICAgICBpZiBzZWxmLl9zaG93X3Byb2dyZXNzX2luZm8gPT0gImNvdW50IjoK
KyAgICAgICAgICAgIGlmIGNvbGxlY3RlZDoKKyAgICAgICAgICAgICAgICBwcm9ncmVzcyA9IHNl
bGYuX3Byb2dyZXNzX25vZGVpZHNfcmVwb3J0ZWQKKyAgICAgICAgICAgICAgICBjb3VudGVyX2Zv
cm1hdCA9ICJ7ezp7fWR9fSIuZm9ybWF0KGxlbihzdHIoY29sbGVjdGVkKSkpCisgICAgICAgICAg
ICAgICAgZm9ybWF0X3N0cmluZyA9ICIgW3t9L3t7fX1dIi5mb3JtYXQoY291bnRlcl9mb3JtYXQp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdF9zdHJpbmcuZm9ybWF0KGxlbihwcm9ncmVz
cyksIGNvbGxlY3RlZCkKKyAgICAgICAgICAgIHJldHVybiAiIFsge30gLyB7fSBdIi5mb3JtYXQo
Y29sbGVjdGVkLCBjb2xsZWN0ZWQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBjb2xs
ZWN0ZWQ6CisgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSBsZW4oc2VsZi5fcHJvZ3Jlc3Nfbm9k
ZWlkc19yZXBvcnRlZCkgKiAxMDAgLy8gY29sbGVjdGVkCisgICAgICAgICAgICAgICAgcmV0dXJu
ICIgW3s6M2R9JV0iLmZvcm1hdChwcm9ncmVzcykKKyAgICAgICAgICAgIHJldHVybiAiIFsxMDAl
XSIKIAogICAgIGRlZiBfd3JpdGVfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fZmlsbGluZ19zcGFjZShz
ZWxmKToKICAgICAgICAgbXNnID0gc2VsZi5fZ2V0X3Byb2dyZXNzX2luZm9ybWF0aW9uX21lc3Nh
Z2UoKQotICAgICAgICBmaWxsID0gIiAiICogKAotICAgICAgICAgICAgc2VsZi5fdHcuZnVsbHdp
ZHRoIC0gc2VsZi5fdHcuY2hhcnNfb25fY3VycmVudF9saW5lIC0gbGVuKG1zZykgLSAxCi0gICAg
ICAgICkKLSAgICAgICAgc2VsZi53cml0ZShmaWxsICsgbXNnLCBjeWFuPVRydWUpCisgICAgICAg
IHcgPSBzZWxmLl93aWR0aF9vZl9jdXJyZW50X2xpbmUKKyAgICAgICAgZmlsbCA9IHNlbGYuX3R3
LmZ1bGx3aWR0aCAtIHcgLSAxCisgICAgICAgIHNlbGYud3JpdGUobXNnLnJqdXN0KGZpbGwpLCBj
eWFuPVRydWUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgX3dpZHRoX29mX2N1cnJlbnRfbGlu
ZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSB3aWR0aCBvZiBjdXJyZW50IGxpbmUsIHVz
aW5nIHRoZSBzdXBlcmlvciBpbXBsZW1lbnRhdGlvbiBvZiBweS0xLjYgd2hlbiBhdmFpbGFibGUi
IiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3R3LndpZHRoX29mX2N1
cnJlbnRfbGluZQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAj
IHB5IDwgMS42LjAKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl90dy5jaGFyc19vbl9jdXJyZW50
X2xpbmUKIAogICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbihzZWxmKToKLSAgICAgICAgaWYgbm90
IHNlbGYuaXNhdHR5IGFuZCBzZWxmLmNvbmZpZy5vcHRpb24udmVyYm9zZSA+PSAxOgorICAgICAg
ICBpZiBzZWxmLmlzYXR0eToKKyAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJi
b3NlID49IDA6CisgICAgICAgICAgICAgICAgc2VsZi53cml0ZSgiY29sbGVjdGluZyAuLi4gIiwg
Ym9sZD1UcnVlKQorICAgICAgICAgICAgICAgIHNlbGYuX2NvbGxlY3RfcmVwb3J0X2xhc3Rfd3Jp
dGUgPSB0aW1lLnRpbWUoKQorICAgICAgICBlbGlmIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3Nl
ID49IDE6CiAgICAgICAgICAgICBzZWxmLndyaXRlKCJjb2xsZWN0aW5nIC4uLiAiLCBib2xkPVRy
dWUpCiAKICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQoc2VsZiwgcmVwb3J0KToKQEAgLTQ0
OCwyMiArNTE4LDMyIEBAIGNsYXNzIFRlcm1pbmFsUmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAg
aXRlbXMgPSBbeCBmb3IgeCBpbiByZXBvcnQucmVzdWx0IGlmIGlzaW5zdGFuY2UoeCwgcHl0ZXN0
Lkl0ZW0pXQogICAgICAgICBzZWxmLl9udW1jb2xsZWN0ZWQgKz0gbGVuKGl0ZW1zKQogICAgICAg
ICBpZiBzZWxmLmlzYXR0eToKLSAgICAgICAgICAgICMgc2VsZi53cml0ZV9mc3BhdGhfcmVzdWx0
KHJlcG9ydC5ub2RlaWQsICdFJykKICAgICAgICAgICAgIHNlbGYucmVwb3J0X2NvbGxlY3QoKQog
CiAgICAgZGVmIHJlcG9ydF9jb2xsZWN0KHNlbGYsIGZpbmFsPUZhbHNlKToKICAgICAgICAgaWYg
c2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2UgPCAwOgogICAgICAgICAgICAgcmV0dXJuCiAKKyAg
ICAgICAgaWYgbm90IGZpbmFsOgorICAgICAgICAgICAgIyBPbmx5IHdyaXRlICJjb2xsZWN0aW5n
IiByZXBvcnQgZXZlcnkgMC41cy4KKyAgICAgICAgICAgIHQgPSB0aW1lLnRpbWUoKQorICAgICAg
ICAgICAgaWYgKAorICAgICAgICAgICAgICAgIHNlbGYuX2NvbGxlY3RfcmVwb3J0X2xhc3Rfd3Jp
dGUgaXMgbm90IE5vbmUKKyAgICAgICAgICAgICAgICBhbmQgc2VsZi5fY29sbGVjdF9yZXBvcnRf
bGFzdF93cml0ZSA+IHQgLSBSRVBPUlRfQ09MTEVDVElOR19SRVNPTFVUSU9OCisgICAgICAgICAg
ICApOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgc2VsZi5fY29sbGVjdF9y
ZXBvcnRfbGFzdF93cml0ZSA9IHQKKwogICAgICAgICBlcnJvcnMgPSBsZW4oc2VsZi5zdGF0cy5n
ZXQoImVycm9yIiwgW10pKQogICAgICAgICBza2lwcGVkID0gbGVuKHNlbGYuc3RhdHMuZ2V0KCJz
a2lwcGVkIiwgW10pKQogICAgICAgICBkZXNlbGVjdGVkID0gbGVuKHNlbGYuc3RhdHMuZ2V0KCJk
ZXNlbGVjdGVkIiwgW10pKQorICAgICAgICBzZWxlY3RlZCA9IHNlbGYuX251bWNvbGxlY3RlZCAt
IGVycm9ycyAtIHNraXBwZWQgLSBkZXNlbGVjdGVkCiAgICAgICAgIGlmIGZpbmFsOgogICAgICAg
ICAgICAgbGluZSA9ICJjb2xsZWN0ZWQgIgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbGlu
ZSA9ICJjb2xsZWN0aW5nICIKLSAgICAgICAgbGluZSArPSBzdHIoc2VsZi5fbnVtY29sbGVjdGVk
KSArICIgaXRlbSIgKyAoCi0gICAgICAgICAgICAiIiBpZiBzZWxmLl9udW1jb2xsZWN0ZWQgPT0g
MSBlbHNlICJzIgorICAgICAgICBsaW5lICs9ICgKKyAgICAgICAgICAgIHN0cihzZWxmLl9udW1j
b2xsZWN0ZWQpICsgIiBpdGVtIiArICgiIiBpZiBzZWxmLl9udW1jb2xsZWN0ZWQgPT0gMSBlbHNl
ICJzIikKICAgICAgICAgKQogICAgICAgICBpZiBlcnJvcnM6CiAgICAgICAgICAgICBsaW5lICs9
ICIgLyAlZCBlcnJvcnMiICUgZXJyb3JzCkBAIC00NzEsNiArNTUxLDggQEAgY2xhc3MgVGVybWlu
YWxSZXBvcnRlcihvYmplY3QpOgogICAgICAgICAgICAgbGluZSArPSAiIC8gJWQgZGVzZWxlY3Rl
ZCIgJSBkZXNlbGVjdGVkCiAgICAgICAgIGlmIHNraXBwZWQ6CiAgICAgICAgICAgICBsaW5lICs9
ICIgLyAlZCBza2lwcGVkIiAlIHNraXBwZWQKKyAgICAgICAgaWYgc2VsZi5fbnVtY29sbGVjdGVk
ID4gc2VsZWN0ZWQgPiAwOgorICAgICAgICAgICAgbGluZSArPSAiIC8gJWQgc2VsZWN0ZWQiICUg
c2VsZWN0ZWQKICAgICAgICAgaWYgc2VsZi5pc2F0dHk6CiAgICAgICAgICAgICBzZWxmLnJld3Jp
dGUobGluZSwgYm9sZD1UcnVlLCBlcmFzZT1UcnVlKQogICAgICAgICAgICAgaWYgZmluYWw6CkBA
IC00NzgsMTAgKzU2MCw2IEBAIGNsYXNzIFRlcm1pbmFsUmVwb3J0ZXIob2JqZWN0KToKICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgIHNlbGYud3JpdGVfbGluZShsaW5lKQogCi0gICAgQHB5dGVz
dC5ob29raW1wbCh0cnlsYXN0PVRydWUpCi0gICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlm
eWl0ZW1zKHNlbGYpOgotICAgICAgICBzZWxmLnJlcG9ydF9jb2xsZWN0KFRydWUpCi0KICAgICBA
cHl0ZXN0Lmhvb2tpbXBsKHRyeWxhc3Q9VHJ1ZSkKICAgICBkZWYgcHl0ZXN0X3Nlc3Npb25zdGFy
dChzZWxmLCBzZXNzaW9uKToKICAgICAgICAgc2VsZi5fc2Vzc2lvbiA9IHNlc3Npb24KQEAgLTQ5
NSw3ICs1NzMsOSBAQCBjbGFzcyBUZXJtaW5hbFJlcG9ydGVyKG9iamVjdCk6CiAgICAgICAgICAg
ICB2ZXJpbmZvID0gIi4iLmpvaW4obWFwKHN0ciwgc3lzLnB5cHlfdmVyc2lvbl9pbmZvWzozXSkp
CiAgICAgICAgICAgICBtc2cgKz0gIltweXB5LSVzLSVzXSIgJSAodmVyaW5mbywgc3lzLnB5cHlf
dmVyc2lvbl9pbmZvWzNdKQogICAgICAgICBtc2cgKz0gIiwgcHl0ZXN0LSVzLCBweS0lcywgcGx1
Z2d5LSVzIiAlICgKLSAgICAgICAgICAgIHB5dGVzdC5fX3ZlcnNpb25fXywgcHkuX192ZXJzaW9u
X18sIHBsdWdneS5fX3ZlcnNpb25fXworICAgICAgICAgICAgcHl0ZXN0Ll9fdmVyc2lvbl9fLAor
ICAgICAgICAgICAgcHkuX192ZXJzaW9uX18sCisgICAgICAgICAgICBwbHVnZ3kuX192ZXJzaW9u
X18sCiAgICAgICAgICkKICAgICAgICAgaWYgKAogICAgICAgICAgICAgc2VsZi52ZXJib3NpdHkg
PiAwCkBAIC01MTUsMzEgKzU5NSwzOSBAQCBjbGFzcyBUZXJtaW5hbFJlcG9ydGVyKG9iamVjdCk6
CiAgICAgICAgICAgICBzZWxmLndyaXRlX2xpbmUobGluZSkKIAogICAgIGRlZiBweXRlc3RfcmVw
b3J0X2hlYWRlcihzZWxmLCBjb25maWcpOgotICAgICAgICBpbmlmaWxlID0gIiIKKyAgICAgICAg
bGluZSA9ICJyb290ZGlyOiAlcyIgJSBjb25maWcucm9vdGRpcgorCiAgICAgICAgIGlmIGNvbmZp
Zy5pbmlmaWxlOgotICAgICAgICAgICAgaW5pZmlsZSA9ICIgIiArIGNvbmZpZy5yb290ZGlyLmJl
c3RyZWxwYXRoKGNvbmZpZy5pbmlmaWxlKQotICAgICAgICBsaW5lcyA9IFsicm9vdGRpcjogJXMs
IGluaWZpbGU6JXMiICUgKGNvbmZpZy5yb290ZGlyLCBpbmlmaWxlKV0KKyAgICAgICAgICAgIGxp
bmUgKz0gIiwgaW5pZmlsZTogIiArIGNvbmZpZy5yb290ZGlyLmJlc3RyZWxwYXRoKGNvbmZpZy5p
bmlmaWxlKQorCisgICAgICAgIHRlc3RwYXRocyA9IGNvbmZpZy5nZXRpbmkoInRlc3RwYXRocyIp
CisgICAgICAgIGlmIHRlc3RwYXRocyBhbmQgY29uZmlnLmFyZ3MgPT0gdGVzdHBhdGhzOgorICAg
ICAgICAgICAgcmVsX3BhdGhzID0gW2NvbmZpZy5yb290ZGlyLmJlc3RyZWxwYXRoKHgpIGZvciB4
IGluIHRlc3RwYXRoc10KKyAgICAgICAgICAgIGxpbmUgKz0gIiwgdGVzdHBhdGhzOiB7fSIuZm9y
bWF0KCIsICIuam9pbihyZWxfcGF0aHMpKQorICAgICAgICByZXN1bHQgPSBbbGluZV0KIAogICAg
ICAgICBwbHVnaW5pbmZvID0gY29uZmlnLnBsdWdpbm1hbmFnZXIubGlzdF9wbHVnaW5fZGlzdGlu
Zm8oKQogICAgICAgICBpZiBwbHVnaW5pbmZvOgotCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQo
InBsdWdpbnM6ICVzIiAlICIsICIuam9pbihfcGx1Z2luX25hbWV2ZXJzaW9ucyhwbHVnaW5pbmZv
KSkpCi0gICAgICAgIHJldHVybiBsaW5lcworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgicGx1
Z2luczogJXMiICUgIiwgIi5qb2luKF9wbHVnaW5fbmFtZXZlcnNpb25zKHBsdWdpbmluZm8pKSkK
KyAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX2Zpbmlz
aChzZWxmLCBzZXNzaW9uKToKLSAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLmNvbGxlY3Rv
bmx5OgorICAgICAgICBzZWxmLnJlcG9ydF9jb2xsZWN0KFRydWUpCisKKyAgICAgICAgaWYgc2Vs
Zi5jb25maWcuZ2V0b3B0aW9uKCJjb2xsZWN0b25seSIpOgogICAgICAgICAgICAgc2VsZi5fcHJp
bnRjb2xsZWN0ZWRpdGVtcyhzZXNzaW9uLml0ZW1zKQotICAgICAgICAgICAgaWYgc2VsZi5zdGF0
cy5nZXQoImZhaWxlZCIpOgotICAgICAgICAgICAgICAgIHNlbGYuX3R3LnNlcCgiISIsICJjb2xs
ZWN0aW9uIGZhaWx1cmVzIikKLSAgICAgICAgICAgICAgICBmb3IgcmVwIGluIHNlbGYuc3RhdHMu
Z2V0KCJmYWlsZWQiKToKLSAgICAgICAgICAgICAgICAgICAgcmVwLnRvdGVybWluYWwoc2VsZi5f
dHcpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDEKLSAgICAgICAgICAgIHJldHVybiAwCisKICAg
ICAgICAgbGluZXMgPSBzZWxmLmNvbmZpZy5ob29rLnB5dGVzdF9yZXBvcnRfY29sbGVjdGlvbmZp
bmlzaCgKICAgICAgICAgICAgIGNvbmZpZz1zZWxmLmNvbmZpZywgc3RhcnRkaXI9c2VsZi5zdGFy
dGRpciwgaXRlbXM9c2Vzc2lvbi5pdGVtcwogICAgICAgICApCiAgICAgICAgIHNlbGYuX3dyaXRl
X3JlcG9ydF9saW5lc19mcm9tX2hvb2tzKGxpbmVzKQogCisgICAgICAgIGlmIHNlbGYuY29uZmln
LmdldG9wdGlvbigiY29sbGVjdG9ubHkiKToKKyAgICAgICAgICAgIGlmIHNlbGYuc3RhdHMuZ2V0
KCJmYWlsZWQiKToKKyAgICAgICAgICAgICAgICBzZWxmLl90dy5zZXAoIiEiLCAiY29sbGVjdGlv
biBmYWlsdXJlcyIpCisgICAgICAgICAgICAgICAgZm9yIHJlcCBpbiBzZWxmLnN0YXRzLmdldCgi
ZmFpbGVkIik6CisgICAgICAgICAgICAgICAgICAgIHJlcC50b3Rlcm1pbmFsKHNlbGYuX3R3KQor
CiAgICAgZGVmIF9wcmludGNvbGxlY3RlZGl0ZW1zKHNlbGYsIGl0ZW1zKToKICAgICAgICAgIyB0
byBwcmludCBvdXQgaXRlbXMgYW5kIHRoZWlyIHBhcmVudCBjb2xsZWN0b3JzCiAgICAgICAgICMg
d2UgdGFrZSBjYXJlIHRvIGxlYXZlIG91dCBJbnN0YW5jZXMgYWthICgpCkBAIC01NTQsMjQgKzY0
MiwyNiBAQCBjbGFzcyBUZXJtaW5hbFJlcG9ydGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX3R3LmxpbmUoIiVzOiAlZCIgJSAobmFtZSwgY291bnQpKQogICAgICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKLSAgICAgICAgICAgICAg
ICAgICAgbm9kZWlkID0gaXRlbS5ub2RlaWQKLSAgICAgICAgICAgICAgICAgICAgbm9kZWlkID0g
bm9kZWlkLnJlcGxhY2UoIjo6KCk6OiIsICI6OiIpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu
X3R3LmxpbmUobm9kZWlkKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5lKGl0ZW0u
bm9kZWlkKQogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHN0YWNrID0gW10KICAgICAgICAg
aW5kZW50ID0gIiIKICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CiAgICAgICAgICAgICBuZWVk
ZWRfY29sbGVjdG9ycyA9IGl0ZW0ubGlzdGNoYWluKClbMTpdICAjIHN0cmlwIHJvb3Qgbm9kZQog
ICAgICAgICAgICAgd2hpbGUgc3RhY2s6Ci0gICAgICAgICAgICAgICAgaWYgc3RhY2sgPT0gbmVl
ZGVkX2NvbGxlY3RvcnNbOmxlbihzdGFjayldOgorICAgICAgICAgICAgICAgIGlmIHN0YWNrID09
IG5lZWRlZF9jb2xsZWN0b3JzWzogbGVuKHN0YWNrKV06CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCiAgICAgICAgICAgICAgICAgc3RhY2sucG9wKCkKLSAgICAgICAgICAgIGZvciBjb2wgaW4g
bmVlZGVkX2NvbGxlY3RvcnNbbGVuKHN0YWNrKTpdOgorICAgICAgICAgICAgZm9yIGNvbCBpbiBu
ZWVkZWRfY29sbGVjdG9yc1tsZW4oc3RhY2spIDpdOgogICAgICAgICAgICAgICAgIHN0YWNrLmFw
cGVuZChjb2wpCi0gICAgICAgICAgICAgICAgIyBpZiBjb2wubmFtZSA9PSAiKCkiOgotICAgICAg
ICAgICAgICAgICMgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBjb2wubmFtZSA9PSAi
KCkiOiAgIyBTa2lwIEluc3RhbmNlcy4KKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAg
ICAgICAgICAgICAgICBpbmRlbnQgPSAobGVuKHN0YWNrKSAtIDEpICogIiAgIgogICAgICAgICAg
ICAgICAgIHNlbGYuX3R3LmxpbmUoIiVzJXMiICUgKGluZGVudCwgY29sKSkKKyAgICAgICAgICAg
ICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udmVyYm9zZSA+PSAxOgorICAgICAgICAgICAgICAg
ICAgICBpZiBoYXNhdHRyKGNvbCwgIl9vYmoiKSBhbmQgY29sLl9vYmouX19kb2NfXzoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGNvbC5fb2JqLl9fZG9jX18uc3RyaXAoKS5z
cGxpdGxpbmVzKCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZSgi
JXMlcyIgJSAoaW5kZW50ICsgIiAgIiwgbGluZS5zdHJpcCgpKSkKIAogICAgIEBweXRlc3QuaG9v
a2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKICAgICBkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2Vs
ZiwgZXhpdHN0YXR1cyk6CkBAIC01ODcsNyArNjc3LDcgQEAgY2xhc3MgVGVybWluYWxSZXBvcnRl
cihvYmplY3QpOgogICAgICAgICApCiAgICAgICAgIGlmIGV4aXRzdGF0dXMgaW4gc3VtbWFyeV9l
eGl0X2NvZGVzOgogICAgICAgICAgICAgc2VsZi5jb25maWcuaG9vay5weXRlc3RfdGVybWluYWxf
c3VtbWFyeSgKLSAgICAgICAgICAgICAgICB0ZXJtaW5hbHJlcG9ydGVyPXNlbGYsIGV4aXRzdGF0
dXM9ZXhpdHN0YXR1cworICAgICAgICAgICAgICAgIHRlcm1pbmFscmVwb3J0ZXI9c2VsZiwgZXhp
dHN0YXR1cz1leGl0c3RhdHVzLCBjb25maWc9c2VsZi5jb25maWcKICAgICAgICAgICAgICkKICAg
ICAgICAgaWYgZXhpdHN0YXR1cyA9PSBFWElUX0lOVEVSUlVQVEVEOgogICAgICAgICAgICAgc2Vs
Zi5fcmVwb3J0X2tleWJvYXJkaW50ZXJydXB0KCkKQEAgLTU5OCw5ICs2ODgsMTIgQEAgY2xhc3Mg
VGVybWluYWxSZXBvcnRlcihvYmplY3QpOgogICAgIGRlZiBweXRlc3RfdGVybWluYWxfc3VtbWFy
eShzZWxmKToKICAgICAgICAgc2VsZi5zdW1tYXJ5X2Vycm9ycygpCiAgICAgICAgIHNlbGYuc3Vt
bWFyeV9mYWlsdXJlcygpCi0gICAgICAgIHlpZWxkCiAgICAgICAgIHNlbGYuc3VtbWFyeV93YXJu
aW5ncygpCiAgICAgICAgIHNlbGYuc3VtbWFyeV9wYXNzZXMoKQorICAgICAgICB5aWVsZAorICAg
ICAgICBzZWxmLnNob3J0X3Rlc3Rfc3VtbWFyeSgpCisgICAgICAgICMgRGlzcGxheSBhbnkgZXh0
cmEgd2FybmluZ3MgZnJvbSB0ZWFyZG93biBoZXJlIChpZiBhbnkpLgorICAgICAgICBzZWxmLnN1
bW1hcnlfd2FybmluZ3MoKQogCiAgICAgZGVmIHB5dGVzdF9rZXlib2FyZF9pbnRlcnJ1cHQoc2Vs
ZiwgZXhjaW5mbyk6CiAgICAgICAgIHNlbGYuX2tleWJvYXJkaW50ZXJydXB0X21lbW8gPSBleGNp
bmZvLmdldHJlcHIoZnVuY2FyZ3M9VHJ1ZSkKQEAgLTYyNCwxMSArNzE3LDEwIEBAIGNsYXNzIFRl
cm1pbmFsUmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICApCiAKICAgICBkZWYgX2xv
Y2F0aW9ubGluZShzZWxmLCBub2RlaWQsIGZzcGF0aCwgbGluZW5vLCBkb21haW4pOgotCiAgICAg
ICAgIGRlZiBta3JlbChub2RlaWQpOgogICAgICAgICAgICAgbGluZSA9IHNlbGYuY29uZmlnLmN3
ZF9yZWxhdGl2ZV9ub2RlaWQobm9kZWlkKQogICAgICAgICAgICAgaWYgZG9tYWluIGFuZCBsaW5l
LmVuZHN3aXRoKGRvbWFpbik6Ci0gICAgICAgICAgICAgICAgbGluZSA9IGxpbmVbOi1sZW4oZG9t
YWluKV0KKyAgICAgICAgICAgICAgICBsaW5lID0gbGluZVs6IC1sZW4oZG9tYWluKV0KICAgICAg
ICAgICAgICAgICB2YWx1ZXMgPSBkb21haW4uc3BsaXQoIlsiKQogICAgICAgICAgICAgICAgIHZh
bHVlc1swXSA9IHZhbHVlc1swXS5yZXBsYWNlKCIuIiwgIjo6IikgICMgZG9uJ3QgcmVwbGFjZSAn
LicgaW4gcGFyYW1zCiAgICAgICAgICAgICAgICAgbGluZSArPSAiWyIuam9pbih2YWx1ZXMpCkBA
IC02MzcsMTkgKzcyOSwyMCBAQCBjbGFzcyBUZXJtaW5hbFJlcG9ydGVyKG9iamVjdCk6CiAgICAg
ICAgICMgY29sbGVjdF9mc3BhdGggY29tZXMgZnJvbSB0ZXN0aWQgd2hpY2ggaGFzIGEgIi8iLW5v
cm1hbGl6ZWQgcGF0aAogCiAgICAgICAgIGlmIGZzcGF0aDoKLSAgICAgICAgICAgIHJlcyA9IG1r
cmVsKG5vZGVpZCkucmVwbGFjZSgiOjooKSIsICIiKSAgIyBwYXJlbnMtbm9ybWFsaXphdGlvbgot
ICAgICAgICAgICAgaWYgbm9kZWlkLnNwbGl0KCI6OiIpWzBdICE9IGZzcGF0aC5yZXBsYWNlKCJc
XCIsIG5vZGVzLlNFUCk6CisgICAgICAgICAgICByZXMgPSBta3JlbChub2RlaWQpCisgICAgICAg
ICAgICBpZiBzZWxmLnZlcmJvc2l0eSA+PSAyIGFuZCBub2RlaWQuc3BsaXQoIjo6IilbMF0gIT0g
ZnNwYXRoLnJlcGxhY2UoCisgICAgICAgICAgICAgICAgIlxcIiwgbm9kZXMuU0VQCisgICAgICAg
ICAgICApOgogICAgICAgICAgICAgICAgIHJlcyArPSAiIDwtICIgKyBzZWxmLnN0YXJ0ZGlyLmJl
c3RyZWxwYXRoKGZzcGF0aCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJlcyA9ICJbbG9j
YXRpb25dIgogICAgICAgICByZXR1cm4gcmVzICsgIiAiCiAKICAgICBkZWYgX2dldGZhaWx1cmVo
ZWFkbGluZShzZWxmLCByZXApOgotICAgICAgICBpZiBoYXNhdHRyKHJlcCwgImxvY2F0aW9uIik6
Ci0gICAgICAgICAgICBmc3BhdGgsIGxpbmVubywgZG9tYWluID0gcmVwLmxvY2F0aW9uCi0gICAg
ICAgICAgICByZXR1cm4gZG9tYWluCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4g
InRlc3Qgc2Vzc2lvbiIgICMgWFhYPworICAgICAgICBoZWFkX2xpbmUgPSByZXAuaGVhZF9saW5l
CisgICAgICAgIGlmIGhlYWRfbGluZToKKyAgICAgICAgICAgIHJldHVybiBoZWFkX2xpbmUKKyAg
ICAgICAgcmV0dXJuICJ0ZXN0IHNlc3Npb24iICAjIFhYWD8KIAogICAgIGRlZiBfZ2V0Y3Jhc2hs
aW5lKHNlbGYsIHJlcCk6CiAgICAgICAgIHRyeToKQEAgLTY3NiwxOSArNzY5LDM3IEBAIGNsYXNz
IFRlcm1pbmFsUmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAgICAgIGlmIG5vdCBhbGxfd2Fybmlu
Z3M6CiAgICAgICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgICAgIGdyb3VwZWQgPSBpdGVy
dG9vbHMuZ3JvdXBieSgKLSAgICAgICAgICAgICAgICBhbGxfd2FybmluZ3MsIGtleT1sYW1iZGEg
d3I6IHdyLmdldF9sb2NhdGlvbihzZWxmLmNvbmZpZykKLSAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIGZpbmFsID0gaGFzYXR0cihzZWxmLCAiX2FscmVhZHlfZGlzcGxheWVkX3dhcm5pbmdzIikK
KyAgICAgICAgICAgIGlmIGZpbmFsOgorICAgICAgICAgICAgICAgIHdhcm5pbmdfcmVwb3J0cyA9
IGFsbF93YXJuaW5nc1tzZWxmLl9hbHJlYWR5X2Rpc3BsYXllZF93YXJuaW5ncyA6XQorICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB3YXJuaW5nX3JlcG9ydHMgPSBhbGxfd2Fybmlu
Z3MKKyAgICAgICAgICAgIHNlbGYuX2FscmVhZHlfZGlzcGxheWVkX3dhcm5pbmdzID0gbGVuKHdh
cm5pbmdfcmVwb3J0cykKKyAgICAgICAgICAgIGlmIG5vdCB3YXJuaW5nX3JlcG9ydHM6CisgICAg
ICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgIndh
cm5pbmdzIHN1bW1hcnkiLCB5ZWxsb3c9VHJ1ZSwgYm9sZD1GYWxzZSkKLSAgICAgICAgICAgIGZv
ciBsb2NhdGlvbiwgd2FybmluZ19yZWNvcmRzIGluIGdyb3VwZWQ6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fdHcubGluZShzdHIobG9jYXRpb24pIGlmIGxvY2F0aW9uIGVsc2UgIjx1bmRldGVybWlu
ZWQgbG9jYXRpb24+IikKLSAgICAgICAgICAgICAgICBmb3IgdyBpbiB3YXJuaW5nX3JlY29yZHM6
Ci0gICAgICAgICAgICAgICAgICAgIGxpbmVzID0gdy5tZXNzYWdlLnNwbGl0bGluZXMoKQorICAg
ICAgICAgICAgcmVwb3J0c19ncm91cGVkX2J5X21lc3NhZ2UgPSBjb2xsZWN0aW9ucy5PcmRlcmVk
RGljdCgpCisgICAgICAgICAgICBmb3Igd3IgaW4gd2FybmluZ19yZXBvcnRzOgorICAgICAgICAg
ICAgICAgIHJlcG9ydHNfZ3JvdXBlZF9ieV9tZXNzYWdlLnNldGRlZmF1bHQod3IubWVzc2FnZSwg
W10pLmFwcGVuZCh3cikKKworICAgICAgICAgICAgdGl0bGUgPSAid2FybmluZ3Mgc3VtbWFyeSAo
ZmluYWwpIiBpZiBmaW5hbCBlbHNlICJ3YXJuaW5ncyBzdW1tYXJ5IgorICAgICAgICAgICAgc2Vs
Zi53cml0ZV9zZXAoIj0iLCB0aXRsZSwgeWVsbG93PVRydWUsIGJvbGQ9RmFsc2UpCisgICAgICAg
ICAgICBmb3IgbWVzc2FnZSwgd2FybmluZ19yZXBvcnRzIGluIHJlcG9ydHNfZ3JvdXBlZF9ieV9t
ZXNzYWdlLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaGFzX2FueV9sb2NhdGlvbiA9IEZhbHNl
CisgICAgICAgICAgICAgICAgZm9yIHcgaW4gd2FybmluZ19yZXBvcnRzOgorICAgICAgICAgICAg
ICAgICAgICBsb2NhdGlvbiA9IHcuZ2V0X2xvY2F0aW9uKHNlbGYuY29uZmlnKQorICAgICAgICAg
ICAgICAgICAgICBpZiBsb2NhdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3
LmxpbmUoc3RyKGxvY2F0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc19hbnlfbG9j
YXRpb24gPSBUcnVlCisgICAgICAgICAgICAgICAgaWYgaGFzX2FueV9sb2NhdGlvbjoKKyAgICAg
ICAgICAgICAgICAgICAgbGluZXMgPSBtZXNzYWdlLnNwbGl0bGluZXMoKQogICAgICAgICAgICAg
ICAgICAgICBpbmRlbnRlZCA9ICJcbiIuam9pbigiICAiICsgeCBmb3IgeCBpbiBsaW5lcykKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZShpbmRlbnRlZCkKKyAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZSA9IGluZGVudGVkLnJzdHJpcCgpCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucnN0cmlwKCkKKyAgICAgICAg
ICAgICAgICBzZWxmLl90dy5saW5lKG1lc3NhZ2UpCiAgICAgICAgICAgICAgICAgc2VsZi5fdHcu
bGluZSgpCi0gICAgICAgICAgICBzZWxmLl90dy5saW5lKCItLSBEb2NzOiBodHRwOi8vZG9jLnB5
dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwiKQorICAgICAgICAgICAgc2VsZi5fdHcu
bGluZSgiLS0gRG9jczogaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdz
Lmh0bWwiKQogCiAgICAgZGVmIHN1bW1hcnlfcGFzc2VzKHNlbGYpOgogICAgICAgICBpZiBzZWxm
LmNvbmZpZy5vcHRpb24udGJzdHlsZSAhPSAibm8iOgpAQCAtNjk4LDEyICs4MDksMTggQEAgY2xh
c3MgVGVybWluYWxSZXBvcnRlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4K
ICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICJQQVNTRVMiKQogICAgICAgICAg
ICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gc2Vs
Zi5fZ2V0ZmFpbHVyZWhlYWRsaW5lKHJlcCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0
ZV9zZXAoIl8iLCBtc2cpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX291dHJlcF9zdW1tYXJ5
KHJlcCkKKyAgICAgICAgICAgICAgICAgICAgaWYgcmVwLnNlY3Rpb25zOgorICAgICAgICAgICAg
ICAgICAgICAgICAgbXNnID0gc2VsZi5fZ2V0ZmFpbHVyZWhlYWRsaW5lKHJlcCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCJfIiwgbXNnLCBncmVlbj1UcnVlLCBib2xk
PVRydWUpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vdXRyZXBfc3VtbWFyeShyZXAp
CiAKICAgICBkZWYgcHJpbnRfdGVhcmRvd25fc2VjdGlvbnMoc2VsZiwgcmVwKToKKyAgICAgICAg
c2hvd2NhcHR1cmUgPSBzZWxmLmNvbmZpZy5vcHRpb24uc2hvd2NhcHR1cmUKKyAgICAgICAgaWYg
c2hvd2NhcHR1cmUgPT0gIm5vIjoKKyAgICAgICAgICAgIHJldHVybgogICAgICAgICBmb3Igc2Vj
bmFtZSwgY29udGVudCBpbiByZXAuc2VjdGlvbnM6CisgICAgICAgICAgICBpZiBzaG93Y2FwdHVy
ZSAhPSAiYWxsIiBhbmQgc2hvd2NhcHR1cmUgbm90IGluIHNlY25hbWU6CisgICAgICAgICAgICAg
ICAgY29udGludWUKICAgICAgICAgICAgIGlmICJ0ZWFyZG93biIgaW4gc2VjbmFtZToKICAgICAg
ICAgICAgICAgICBzZWxmLl90dy5zZXAoIi0iLCBzZWNuYW1lKQogICAgICAgICAgICAgICAgIGlm
IGNvbnRlbnRbLTE6XSA9PSAiXG4iOgpAQCAtNzE2LDE4ICs4MzMsMjIgQEAgY2xhc3MgVGVybWlu
YWxSZXBvcnRlcihvYmplY3QpOgogICAgICAgICAgICAgaWYgbm90IHJlcG9ydHM6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICJGQUlMVVJF
UyIpCi0gICAgICAgICAgICBmb3IgcmVwIGluIHJlcG9ydHM6Ci0gICAgICAgICAgICAgICAgaWYg
c2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgPT0gImxpbmUiOgorICAgICAgICAgICAgaWYgc2Vs
Zi5jb25maWcub3B0aW9uLnRic3R5bGUgPT0gImxpbmUiOgorICAgICAgICAgICAgICAgIGZvciBy
ZXAgaW4gcmVwb3J0czoKICAgICAgICAgICAgICAgICAgICAgbGluZSA9IHNlbGYuX2dldGNyYXNo
bGluZShyZXApCiAgICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfbGluZShsaW5lKQotICAg
ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRl
YXJkb3duX3NlY3Rpb25zID0ge30KKyAgICAgICAgICAgICAgICBmb3IgcmVwb3J0IGluIHNlbGYu
Z2V0cmVwb3J0cygiIik6CisgICAgICAgICAgICAgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJ0
ZWFyZG93biI6CisgICAgICAgICAgICAgICAgICAgICAgICB0ZWFyZG93bl9zZWN0aW9ucy5zZXRk
ZWZhdWx0KHJlcG9ydC5ub2RlaWQsIFtdKS5hcHBlbmQocmVwb3J0KQorCisgICAgICAgICAgICAg
ICAgZm9yIHJlcCBpbiByZXBvcnRzOgogICAgICAgICAgICAgICAgICAgICBtc2cgPSBzZWxmLl9n
ZXRmYWlsdXJlaGVhZGxpbmUocmVwKQotICAgICAgICAgICAgICAgICAgICBtYXJrdXAgPSB7InJl
ZCI6IFRydWUsICJib2xkIjogVHJ1ZX0KLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9z
ZXAoIl8iLCBtc2csICoqbWFya3VwKQorICAgICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3Nl
cCgiXyIsIG1zZywgcmVkPVRydWUsIGJvbGQ9VHJ1ZSkKICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fb3V0cmVwX3N1bW1hcnkocmVwKQotICAgICAgICAgICAgICAgICAgICBmb3IgcmVwb3J0IGlu
IHNlbGYuZ2V0cmVwb3J0cygiIik6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiByZXBvcnQu
bm9kZWlkID09IHJlcC5ub2RlaWQgYW5kIHJlcG9ydC53aGVuID09ICJ0ZWFyZG93biI6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmludF90ZWFyZG93bl9zZWN0aW9ucyhyZXBv
cnQpCisgICAgICAgICAgICAgICAgICAgIGZvciByZXBvcnQgaW4gdGVhcmRvd25fc2VjdGlvbnMu
Z2V0KHJlcC5ub2RlaWQsIFtdKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJpbnRf
dGVhcmRvd25fc2VjdGlvbnMocmVwb3J0KQogCiAgICAgZGVmIHN1bW1hcnlfZXJyb3JzKHNlbGYp
OgogICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSAhPSAibm8iOgpAQCAtNzM3
LDE0ICs4NTgsMTEgQEAgY2xhc3MgVGVybWluYWxSZXBvcnRlcihvYmplY3QpOgogICAgICAgICAg
ICAgc2VsZi53cml0ZV9zZXAoIj0iLCAiRVJST1JTIikKICAgICAgICAgICAgIGZvciByZXAgaW4g
c2VsZi5zdGF0c1siZXJyb3IiXToKICAgICAgICAgICAgICAgICBtc2cgPSBzZWxmLl9nZXRmYWls
dXJlaGVhZGxpbmUocmVwKQotICAgICAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHJlcCwgIndo
ZW4iKToKLSAgICAgICAgICAgICAgICAgICAgIyBjb2xsZWN0CisgICAgICAgICAgICAgICAgaWYg
cmVwLndoZW4gPT0gImNvbGxlY3QiOgogICAgICAgICAgICAgICAgICAgICBtc2cgPSAiRVJST1Ig
Y29sbGVjdGluZyAiICsgbXNnCi0gICAgICAgICAgICAgICAgZWxpZiByZXAud2hlbiA9PSAic2V0
dXAiOgotICAgICAgICAgICAgICAgICAgICBtc2cgPSAiRVJST1IgYXQgc2V0dXAgb2YgIiArIG1z
ZwotICAgICAgICAgICAgICAgIGVsaWYgcmVwLndoZW4gPT0gInRlYXJkb3duIjoKLSAgICAgICAg
ICAgICAgICAgICAgbXNnID0gIkVSUk9SIGF0IHRlYXJkb3duIG9mICIgKyBtc2cKLSAgICAgICAg
ICAgICAgICBzZWxmLndyaXRlX3NlcCgiXyIsIG1zZykKKyAgICAgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgICAgICBtc2cgPSAiRVJST1IgYXQgJXMgb2YgJXMiICUgKHJlcC53aGVu
LCBtc2cpCisgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIl8iLCBtc2csIHJlZD1UcnVl
LCBib2xkPVRydWUpCiAgICAgICAgICAgICAgICAgc2VsZi5fb3V0cmVwX3N1bW1hcnkocmVwKQog
CiAgICAgZGVmIF9vdXRyZXBfc3VtbWFyeShzZWxmLCByZXApOgpAQCAtNzcxLDMxICs4ODksMTc0
IEBAIGNsYXNzIFRlcm1pbmFsUmVwb3J0ZXIob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi52ZXJi
b3NpdHkgPT0gLTE6CiAgICAgICAgICAgICBzZWxmLndyaXRlX2xpbmUobXNnLCAqKm1hcmt1cCkK
IAorICAgIGRlZiBzaG9ydF90ZXN0X3N1bW1hcnkoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxm
LnJlcG9ydGNoYXJzOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZGVmIHNob3dfc2lt
cGxlKHN0YXQsIGxpbmVzKToKKyAgICAgICAgICAgIGZhaWxlZCA9IHNlbGYuc3RhdHMuZ2V0KHN0
YXQsIFtdKQorICAgICAgICAgICAgaWYgbm90IGZhaWxlZDoKKyAgICAgICAgICAgICAgICByZXR1
cm4KKyAgICAgICAgICAgIHRlcm13aWR0aCA9IHNlbGYud3JpdGVyLmZ1bGx3aWR0aAorICAgICAg
ICAgICAgY29uZmlnID0gc2VsZi5jb25maWcKKyAgICAgICAgICAgIGZvciByZXAgaW4gZmFpbGVk
OgorICAgICAgICAgICAgICAgIGxpbmUgPSBfZ2V0X2xpbmVfd2l0aF9yZXByY3Jhc2hfbWVzc2Fn
ZShjb25maWcsIHJlcCwgdGVybXdpZHRoKQorICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZChs
aW5lKQorCisgICAgICAgIGRlZiBzaG93X3hmYWlsZWQobGluZXMpOgorICAgICAgICAgICAgeGZh
aWxlZCA9IHNlbGYuc3RhdHMuZ2V0KCJ4ZmFpbGVkIiwgW10pCisgICAgICAgICAgICBmb3IgcmVw
IGluIHhmYWlsZWQ6CisgICAgICAgICAgICAgICAgdmVyYm9zZV93b3JkID0gcmVwLl9nZXRfdmVy
Ym9zZV93b3JkKHNlbGYuY29uZmlnKQorICAgICAgICAgICAgICAgIHBvcyA9IF9nZXRfcG9zKHNl
bGYuY29uZmlnLCByZXApCisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIlcyAlcyIgJSAo
dmVyYm9zZV93b3JkLCBwb3MpKQorICAgICAgICAgICAgICAgIHJlYXNvbiA9IHJlcC53YXN4ZmFp
bAorICAgICAgICAgICAgICAgIGlmIHJlYXNvbjoKKyAgICAgICAgICAgICAgICAgICAgbGluZXMu
YXBwZW5kKCIgICIgKyBzdHIocmVhc29uKSkKKworICAgICAgICBkZWYgc2hvd194cGFzc2VkKGxp
bmVzKToKKyAgICAgICAgICAgIHhwYXNzZWQgPSBzZWxmLnN0YXRzLmdldCgieHBhc3NlZCIsIFtd
KQorICAgICAgICAgICAgZm9yIHJlcCBpbiB4cGFzc2VkOgorICAgICAgICAgICAgICAgIHZlcmJv
c2Vfd29yZCA9IHJlcC5fZ2V0X3ZlcmJvc2Vfd29yZChzZWxmLmNvbmZpZykKKyAgICAgICAgICAg
ICAgICBwb3MgPSBfZ2V0X3BvcyhzZWxmLmNvbmZpZywgcmVwKQorICAgICAgICAgICAgICAgIHJl
YXNvbiA9IHJlcC53YXN4ZmFpbAorICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiJXMgJXMg
JXMiICUgKHZlcmJvc2Vfd29yZCwgcG9zLCByZWFzb24pKQorCisgICAgICAgIGRlZiBzaG93X3Nr
aXBwZWQobGluZXMpOgorICAgICAgICAgICAgc2tpcHBlZCA9IHNlbGYuc3RhdHMuZ2V0KCJza2lw
cGVkIiwgW10pCisgICAgICAgICAgICBmc2tpcHMgPSBfZm9sZGVkX3NraXBzKHNraXBwZWQpIGlm
IHNraXBwZWQgZWxzZSBbXQorICAgICAgICAgICAgaWYgbm90IGZza2lwczoKKyAgICAgICAgICAg
ICAgICByZXR1cm4KKyAgICAgICAgICAgIHZlcmJvc2Vfd29yZCA9IHNraXBwZWRbMF0uX2dldF92
ZXJib3NlX3dvcmQoc2VsZi5jb25maWcpCisgICAgICAgICAgICBmb3IgbnVtLCBmc3BhdGgsIGxp
bmVubywgcmVhc29uIGluIGZza2lwczoKKyAgICAgICAgICAgICAgICBpZiByZWFzb24uc3RhcnRz
d2l0aCgiU2tpcHBlZDogIik6CisgICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9IHJlYXNvbls5
Ol0KKyAgICAgICAgICAgICAgICBpZiBsaW5lbm8gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAg
ICAgICAgIGxpbmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICIlcyBbJWRdICVz
OiVkOiAlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICUgKHZlcmJvc2Vfd29yZCwgbnVtLCBm
c3BhdGgsIGxpbmVubyArIDEsIHJlYXNvbikKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiJXMgWyVk
XSAlczogJXMiICUgKHZlcmJvc2Vfd29yZCwgbnVtLCBmc3BhdGgsIHJlYXNvbikpCisKKyAgICAg
ICAgUkVQT1JUQ0hBUl9BQ1RJT05TID0geworICAgICAgICAgICAgIngiOiBzaG93X3hmYWlsZWQs
CisgICAgICAgICAgICAiWCI6IHNob3dfeHBhc3NlZCwKKyAgICAgICAgICAgICJmIjogcGFydGlh
bChzaG93X3NpbXBsZSwgImZhaWxlZCIpLAorICAgICAgICAgICAgInMiOiBzaG93X3NraXBwZWQs
CisgICAgICAgICAgICAicCI6IHBhcnRpYWwoc2hvd19zaW1wbGUsICJwYXNzZWQiKSwKKyAgICAg
ICAgICAgICJFIjogcGFydGlhbChzaG93X3NpbXBsZSwgImVycm9yIiksCisgICAgICAgIH0KKwor
ICAgICAgICBsaW5lcyA9IFtdCisgICAgICAgIGZvciBjaGFyIGluIHNlbGYucmVwb3J0Y2hhcnM6
CisgICAgICAgICAgICBhY3Rpb24gPSBSRVBPUlRDSEFSX0FDVElPTlMuZ2V0KGNoYXIpCisgICAg
ICAgICAgICBpZiBhY3Rpb246ICAjIHNraXBwaW5nIGUuZy4gIlAiIChwYXNzZWQgd2l0aCBvdXRw
dXQpIGhlcmUuCisgICAgICAgICAgICAgICAgYWN0aW9uKGxpbmVzKQorCisgICAgICAgIGlmIGxp
bmVzOgorICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAic2hvcnQgdGVzdCBzdW1tYXJ5
IGluZm8iKQorICAgICAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgICAgICAgICAg
c2VsZi53cml0ZV9saW5lKGxpbmUpCisKKworZGVmIF9nZXRfcG9zKGNvbmZpZywgcmVwKToKKyAg
ICBub2RlaWQgPSBjb25maWcuY3dkX3JlbGF0aXZlX25vZGVpZChyZXAubm9kZWlkKQorICAgIHJl
dHVybiBub2RlaWQKKworCitkZWYgX2dldF9saW5lX3dpdGhfcmVwcmNyYXNoX21lc3NhZ2UoY29u
ZmlnLCByZXAsIHRlcm13aWR0aCk6CisgICAgIiIiR2V0IHN1bW1hcnkgbGluZSBmb3IgYSByZXBv
cnQsIHRyeWluZyB0byBhZGQgcmVwcmNyYXNoIG1lc3NhZ2UuIiIiCisgICAgZnJvbSB3Y3dpZHRo
IGltcG9ydCB3Y3N3aWR0aAorCisgICAgdmVyYm9zZV93b3JkID0gcmVwLl9nZXRfdmVyYm9zZV93
b3JkKGNvbmZpZykKKyAgICBwb3MgPSBfZ2V0X3Bvcyhjb25maWcsIHJlcCkKKworICAgIGxpbmUg
PSAiJXMgJXMiICUgKHZlcmJvc2Vfd29yZCwgcG9zKQorICAgIGxlbl9saW5lID0gd2Nzd2lkdGgo
bGluZSkKKyAgICBlbGxpcHNpcywgbGVuX2VsbGlwc2lzID0gIi4uLiIsIDMKKyAgICBpZiBsZW5f
bGluZSA+IHRlcm13aWR0aCAtIGxlbl9lbGxpcHNpczoKKyAgICAgICAgIyBObyBzcGFjZSBmb3Ig
YW4gYWRkaXRpb25hbCBtZXNzYWdlLgorICAgICAgICByZXR1cm4gbGluZQogCi1kZWYgcmVwcl9w
eXRob252ZXJzaW9uKHY9Tm9uZSk6Ci0gICAgaWYgdiBpcyBOb25lOgotICAgICAgICB2ID0gc3lz
LnZlcnNpb25faW5mbwogICAgIHRyeToKLSAgICAgICAgcmV0dXJuICIlcy4lcy4lcy0lcy0lcyIg
JSB2Ci0gICAgZXhjZXB0IChUeXBlRXJyb3IsIFZhbHVlRXJyb3IpOgotICAgICAgICByZXR1cm4g
c3RyKHYpCisgICAgICAgIG1zZyA9IHJlcC5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQorICAg
IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgcGFzcworICAgIGVsc2U6CisgICAgICAg
ICMgT25seSB1c2UgdGhlIGZpcnN0IGxpbmUuCisgICAgICAgIGkgPSBtc2cuZmluZCgiXG4iKQor
ICAgICAgICBpZiBpICE9IC0xOgorICAgICAgICAgICAgbXNnID0gbXNnWzppXQorICAgICAgICBs
ZW5fbXNnID0gd2Nzd2lkdGgobXNnKQorCisgICAgICAgIHNlcCwgbGVuX3NlcCA9ICIgLSAiLCAz
CisgICAgICAgIG1heF9sZW5fbXNnID0gdGVybXdpZHRoIC0gbGVuX2xpbmUgLSBsZW5fc2VwCisg
ICAgICAgIGlmIG1heF9sZW5fbXNnID49IGxlbl9lbGxpcHNpczoKKyAgICAgICAgICAgIGlmIGxl
bl9tc2cgPiBtYXhfbGVuX21zZzoKKyAgICAgICAgICAgICAgICBtYXhfbGVuX21zZyAtPSBsZW5f
ZWxsaXBzaXMKKyAgICAgICAgICAgICAgICBtc2cgPSBtc2dbOm1heF9sZW5fbXNnXQorICAgICAg
ICAgICAgICAgIHdoaWxlIHdjc3dpZHRoKG1zZykgPiBtYXhfbGVuX21zZzoKKyAgICAgICAgICAg
ICAgICAgICAgbXNnID0gbXNnWzotMV0KKyAgICAgICAgICAgICAgICBpZiBzaXguUFkyOgorICAg
ICAgICAgICAgICAgICAgICAjIG9uIHB5dGhvbiAyIHN5c3RlbXMgd2l0aCBuYXJyb3cgdW5pY29k
ZSBjb21waWxhdGlvbiwgdHJ5aW5nIHRvCisgICAgICAgICAgICAgICAgICAgICMgZ2V0IGEgc2lu
Z2xlIGNoYXJhY3RlciBvdXQgb2YgYSBtdWx0aS1ieXRlIHVuaWNvZGUgY2hhcmFjdGVyIHN1Y2gg
YXMKKyAgICAgICAgICAgICAgICAgICAgIyB1J/CfmIQnIHdpbGwgcmVzdWx0IGluIGEgSGlnaCBT
dXJyb2dhdGUgKFUrRDgzRCkgY2hhcmFjdGVyLCB3aGljaCBpcworICAgICAgICAgICAgICAgICAg
ICAjIHJlbmRlcmVkIGFzIHUn77+9JzsgaW4gdGhpcyBjYXNlIHdlIGp1c3Qgc3RyaXAgdGhhdCBj
aGFyYWN0ZXIgb3V0IGFzIGl0CisgICAgICAgICAgICAgICAgICAgICMgc2VydmVzIG5vIHB1cnBv
c2UgYmVpbmcgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgICAgICAgICAgc3Vycm9nYXRlID0gc2l4LnVuaWNocigweEQ4M0QpCisgICAgICAgICAgICAg
ICAgICAgICAgICBtc2cgPSBtc2cucnN0cmlwKHN1cnJvZ2F0ZSkKKyAgICAgICAgICAgICAgICAg
ICAgZXhjZXB0IFZhbHVlRXJyb3I6ICAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICMgSnl0aG9uIGNhbm5vdCByZXByZXNlbnQgdGhpcyBsb25lIHN1cnJvZ2F0ZSBh
dCBhbGwgKCM1MjU2KToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgVmFsdWVFcnJvcjogdW5p
Y2hyKCkgYXJnIGlzIGEgbG9uZSBzdXJyb2dhdGUgaW4gcmFuZ2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgICMgICAgICgweEQ4MDAsIDB4REZGRikgKEp5dGhvbiBVVEYtMTYgZW5jb2RpbmcpCisg
ICAgICAgICAgICAgICAgICAgICAgICAjIGlnbm9yZSB0aGlzIGNhc2UgYXMgaXQgc2hvdWxkbid0
IGFwcGVhciBpbiB0aGUgc3RyaW5nIGFueXdheQorICAgICAgICAgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgICAgIG1zZyArPSBlbGxpcHNpcworICAgICAgICAgICAgbGluZSArPSBz
ZXAgKyBtc2cKKyAgICByZXR1cm4gbGluZQorCisKK2RlZiBfZm9sZGVkX3NraXBzKHNraXBwZWQp
OgorICAgIGQgPSB7fQorICAgIGZvciBldmVudCBpbiBza2lwcGVkOgorICAgICAgICBrZXkgPSBl
dmVudC5sb25ncmVwcgorICAgICAgICBhc3NlcnQgbGVuKGtleSkgPT0gMywgKGV2ZW50LCBrZXkp
CisgICAgICAgIGtleXdvcmRzID0gZ2V0YXR0cihldmVudCwgImtleXdvcmRzIiwge30pCisgICAg
ICAgICMgZm9sZGluZyByZXBvcnRzIHdpdGggZ2xvYmFsIHB5dGVzdG1hcmsgdmFyaWFibGUKKyAg
ICAgICAgIyB0aGlzIGlzIHdvcmthcm91bmQsIGJlY2F1c2UgZm9yIG5vdyB3ZSBjYW5ub3QgaWRl
bnRpZnkgdGhlIHNjb3BlIG9mIGEgc2tpcCBtYXJrZXIKKyAgICAgICAgIyBUT0RPOiByZXZpc2l0
IGFmdGVyIG1hcmtzIHNjb3BlIHdvdWxkIGJlIGZpeGVkCisgICAgICAgIGlmICgKKyAgICAgICAg
ICAgIGV2ZW50LndoZW4gPT0gInNldHVwIgorICAgICAgICAgICAgYW5kICJza2lwIiBpbiBrZXl3
b3JkcworICAgICAgICAgICAgYW5kICJweXRlc3RtYXJrIiBub3QgaW4ga2V5d29yZHMKKyAgICAg
ICAgKToKKyAgICAgICAgICAgIGtleSA9IChrZXlbMF0sIE5vbmUsIGtleVsyXSkKKyAgICAgICAg
ZC5zZXRkZWZhdWx0KGtleSwgW10pLmFwcGVuZChldmVudCkKKyAgICB2YWx1ZXMgPSBbXQorICAg
IGZvciBrZXksIGV2ZW50cyBpbiBkLml0ZW1zKCk6CisgICAgICAgIHZhbHVlcy5hcHBlbmQoKGxl
bihldmVudHMpLCkgKyBrZXkpCisgICAgcmV0dXJuIHZhbHVlcwogCiAKIGRlZiBidWlsZF9zdW1t
YXJ5X3N0YXRzX2xpbmUoc3RhdHMpOgotICAgIGtleXMgPSAoCi0gICAgICAgICJmYWlsZWQgcGFz
c2VkIHNraXBwZWQgZGVzZWxlY3RlZCAiICJ4ZmFpbGVkIHhwYXNzZWQgd2FybmluZ3MgZXJyb3Ii
Ci0gICAgKS5zcGxpdCgpCi0gICAgdW5rbm93bl9rZXlfc2VlbiA9IEZhbHNlCi0gICAgZm9yIGtl
eSBpbiBzdGF0cy5rZXlzKCk6Ci0gICAgICAgIGlmIGtleSBub3QgaW4ga2V5czoKLSAgICAgICAg
ICAgIGlmIGtleTogICMgc2V0dXAvdGVhcmRvd24gcmVwb3J0cyBoYXZlIGFuIGVtcHR5IGtleSwg
aWdub3JlIHRoZW0KLSAgICAgICAgICAgICAgICBrZXlzLmFwcGVuZChrZXkpCi0gICAgICAgICAg
ICAgICAgdW5rbm93bl9rZXlfc2VlbiA9IFRydWUKKyAgICBrbm93bl90eXBlcyA9ICgKKyAgICAg
ICAgImZhaWxlZCBwYXNzZWQgc2tpcHBlZCBkZXNlbGVjdGVkIHhmYWlsZWQgeHBhc3NlZCB3YXJu
aW5ncyBlcnJvciIuc3BsaXQoKQorICAgICkKKyAgICB1bmtub3duX3R5cGVfc2VlbiA9IEZhbHNl
CisgICAgZm9yIGZvdW5kX3R5cGUgaW4gc3RhdHM6CisgICAgICAgIGlmIGZvdW5kX3R5cGUgbm90
IGluIGtub3duX3R5cGVzOgorICAgICAgICAgICAgaWYgZm91bmRfdHlwZTogICMgc2V0dXAvdGVh
cmRvd24gcmVwb3J0cyBoYXZlIGFuIGVtcHR5IGtleSwgaWdub3JlIHRoZW0KKyAgICAgICAgICAg
ICAgICBrbm93bl90eXBlcy5hcHBlbmQoZm91bmRfdHlwZSkKKyAgICAgICAgICAgICAgICB1bmtu
b3duX3R5cGVfc2VlbiA9IFRydWUKICAgICBwYXJ0cyA9IFtdCi0gICAgZm9yIGtleSBpbiBrZXlz
OgotICAgICAgICB2YWwgPSBzdGF0cy5nZXQoa2V5LCBOb25lKQotICAgICAgICBpZiB2YWw6Ci0g
ICAgICAgICAgICBwYXJ0cy5hcHBlbmQoIiVkICVzIiAlIChsZW4odmFsKSwga2V5KSkKKyAgICBm
b3Iga2V5IGluIGtub3duX3R5cGVzOgorICAgICAgICByZXBvcnRzID0gc3RhdHMuZ2V0KGtleSwg
Tm9uZSkKKyAgICAgICAgaWYgcmVwb3J0czoKKyAgICAgICAgICAgIGNvdW50ID0gc3VtKAorICAg
ICAgICAgICAgICAgIDEgZm9yIHJlcCBpbiByZXBvcnRzIGlmIGdldGF0dHIocmVwLCAiY291bnRf
dG93YXJkc19zdW1tYXJ5IiwgVHJ1ZSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHBhcnRz
LmFwcGVuZCgiJWQgJXMiICUgKGNvdW50LCBrZXkpKQogCiAgICAgaWYgcGFydHM6CiAgICAgICAg
IGxpbmUgPSAiLCAiLmpvaW4ocGFydHMpCkBAIC04MDQsMTQgKzEwNjUsMTQgQEAgZGVmIGJ1aWxk
X3N1bW1hcnlfc3RhdHNfbGluZShzdGF0cyk6CiAKICAgICBpZiAiZmFpbGVkIiBpbiBzdGF0cyBv
ciAiZXJyb3IiIGluIHN0YXRzOgogICAgICAgICBjb2xvciA9ICJyZWQiCi0gICAgZWxpZiAid2Fy
bmluZ3MiIGluIHN0YXRzIG9yIHVua25vd25fa2V5X3NlZW46CisgICAgZWxpZiAid2FybmluZ3Mi
IGluIHN0YXRzIG9yIHVua25vd25fdHlwZV9zZWVuOgogICAgICAgICBjb2xvciA9ICJ5ZWxsb3ci
CiAgICAgZWxpZiAicGFzc2VkIiBpbiBzdGF0czoKICAgICAgICAgY29sb3IgPSAiZ3JlZW4iCiAg
ICAgZWxzZToKICAgICAgICAgY29sb3IgPSAieWVsbG93IgogCi0gICAgcmV0dXJuIChsaW5lLCBj
b2xvcikKKyAgICByZXR1cm4gbGluZSwgY29sb3IKIAogCiBkZWYgX3BsdWdpbl9uYW1ldmVyc2lv
bnMocGx1Z2luaW5mbyk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC90bXBk
aXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC90bXBkaXIucHkKaW5kZXggMjYwZDI4NDIy
MzQzMTAyZDRmYjhkNGU1ZDMxNjU0YTdjZmVjOGNiNS4uYThhNzAzNzcxM2M4Yzc4NmJlMGE1MDc1
MDdlNWQ5NTg4ZjY5NDg5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdG1w
ZGlyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3RtcGRpci5weQpAQCAtMSwyMiAr
MSw5NyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIiBzdXBwb3J0IGZvciBwcm92aWRp
bmcgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHRvIHRlc3QgZnVuY3Rpb25zLiAgIiIiCi1mcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9u
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgog
CitpbXBvcnQgb3MKIGltcG9ydCByZQoraW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgd2FybmluZ3MK
IAotaW1wb3J0IHB5dGVzdAoraW1wb3J0IGF0dHIKIGltcG9ydCBweQoraW1wb3J0IHNpeAorCitp
bXBvcnQgcHl0ZXN0Citmcm9tIC5wYXRobGliIGltcG9ydCBlbnN1cmVfcmVzZXRfZGlyCitmcm9t
IC5wYXRobGliIGltcG9ydCBMT0NLX1RJTUVPVVQKK2Zyb20gLnBhdGhsaWIgaW1wb3J0IG1ha2Vf
bnVtYmVyZWRfZGlyCitmcm9tIC5wYXRobGliIGltcG9ydCBtYWtlX251bWJlcmVkX2Rpcl93aXRo
X2NsZWFudXAKK2Zyb20gLnBhdGhsaWIgaW1wb3J0IFBhdGgKIGZyb20gX3B5dGVzdC5tb25rZXlw
YXRjaCBpbXBvcnQgTW9ua2V5UGF0Y2gKIAogCi1jbGFzcyBUZW1wZGlyRmFjdG9yeShvYmplY3Qp
OgorQGF0dHIucworY2xhc3MgVGVtcFBhdGhGYWN0b3J5KG9iamVjdCk6CiAgICAgIiIiRmFjdG9y
eSBmb3IgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHVuZGVyIHRoZSBjb21tb24gYmFzZSB0ZW1wIGRp
cmVjdG9yeS4KIAotICAgIFRoZSBiYXNlIGRpcmVjdG9yeSBjYW4gYmUgY29uZmlndXJlZCB1c2lu
ZyB0aGUgYGAtLWJhc2V0ZW1wYGAgb3B0aW9uLgorICAgIFRoZSBiYXNlIGRpcmVjdG9yeSBjYW4g
YmUgY29uZmlndXJlZCB1c2luZyB0aGUgYGAtLWJhc2V0ZW1wYGAgb3B0aW9uLiIiIgorCisgICAg
X2dpdmVuX2Jhc2V0ZW1wID0gYXR0ci5pYigKKyAgICAgICAgIyB1c2luZyBvcy5wYXRoLmFic3Bh
dGgoKSB0byBnZXQgYWJzb2x1dGUgcGF0aCBpbnN0ZWFkIG9mIHJlc29sdmUoKSBhcyBpdAorICAg
ICAgICAjIGRvZXMgbm90IHdvcmsgdGhlIHNhbWUgaW4gYWxsIHBsYXRmb3JtcyAoc2VlICM0NDI3
KQorICAgICAgICAjIFBhdGguYWJzb2x1dGUoKSBleGlzdHMsIGJ1dCBpdCBpcyBub3QgcHVibGlj
IChzZWUgaHR0cHM6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUyNTAxMikKKyAgICAgICAgY29udmVy
dGVyPWF0dHIuY29udmVydGVycy5vcHRpb25hbCgKKyAgICAgICAgICAgIGxhbWJkYSBwOiBQYXRo
KG9zLnBhdGguYWJzcGF0aChzaXgudGV4dF90eXBlKHApKSkKKyAgICAgICAgKQorICAgICkKKyAg
ICBfdHJhY2UgPSBhdHRyLmliKCkKKyAgICBfYmFzZXRlbXAgPSBhdHRyLmliKGRlZmF1bHQ9Tm9u
ZSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2NvbmZpZyhjbHMsIGNvbmZpZyk6
CisgICAgICAgICIiIgorICAgICAgICA6cGFyYW0gY29uZmlnOiBhIHB5dGVzdCBjb25maWd1cmF0
aW9uCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gY2xzKAorICAgICAgICAgICAgZ2l2ZW5f
YmFzZXRlbXA9Y29uZmlnLm9wdGlvbi5iYXNldGVtcCwgdHJhY2U9Y29uZmlnLnRyYWNlLmdldCgi
dG1wZGlyIikKKyAgICAgICAgKQorCisgICAgZGVmIG1rdGVtcChzZWxmLCBiYXNlbmFtZSwgbnVt
YmVyZWQ9VHJ1ZSk6CisgICAgICAgICIiIm1ha2VzIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBtYW5h
Z2VkIGJ5IHRoZSBmYWN0b3J5IiIiCisgICAgICAgIGlmIG5vdCBudW1iZXJlZDoKKyAgICAgICAg
ICAgIHAgPSBzZWxmLmdldGJhc2V0ZW1wKCkuam9pbnBhdGgoYmFzZW5hbWUpCisgICAgICAgICAg
ICBwLm1rZGlyKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHAgPSBtYWtlX251bWJlcmVk
X2Rpcihyb290PXNlbGYuZ2V0YmFzZXRlbXAoKSwgcHJlZml4PWJhc2VuYW1lKQorICAgICAgICAg
ICAgc2VsZi5fdHJhY2UoIm1rdGVtcCIsIHApCisgICAgICAgIHJldHVybiBwCisKKyAgICBkZWYg
Z2V0YmFzZXRlbXAoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gYmFzZSB0ZW1wb3JhcnkgZGly
ZWN0b3J5LiAiIiIKKyAgICAgICAgaWYgc2VsZi5fYmFzZXRlbXAgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICByZXR1cm4gc2VsZi5fYmFzZXRlbXAKKworICAgICAgICBpZiBzZWxmLl9naXZlbl9i
YXNldGVtcCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJhc2V0ZW1wID0gc2VsZi5fZ2l2ZW5f
YmFzZXRlbXAKKyAgICAgICAgICAgIGVuc3VyZV9yZXNldF9kaXIoYmFzZXRlbXApCisgICAgICAg
ICAgICBiYXNldGVtcCA9IGJhc2V0ZW1wLnJlc29sdmUoKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgZnJvbV9lbnYgPSBvcy5lbnZpcm9uLmdldCgiUFlURVNUX0RFQlVHX1RFTVBST09UIikK
KyAgICAgICAgICAgIHRlbXByb290ID0gUGF0aChmcm9tX2VudiBvciB0ZW1wZmlsZS5nZXR0ZW1w
ZGlyKCkpLnJlc29sdmUoKQorICAgICAgICAgICAgdXNlciA9IGdldF91c2VyKCkgb3IgInVua25v
d24iCisgICAgICAgICAgICAjIHVzZSBhIHN1Yi1kaXJlY3RvcnkgaW4gdGhlIHRlbXByb290IHRv
IHNwZWVkLXVwCisgICAgICAgICAgICAjIG1ha2VfbnVtYmVyZWRfZGlyKCkgY2FsbAorICAgICAg
ICAgICAgcm9vdGRpciA9IHRlbXByb290LmpvaW5wYXRoKCJweXRlc3Qtb2Yte30iLmZvcm1hdCh1
c2VyKSkKKyAgICAgICAgICAgIHJvb3RkaXIubWtkaXIoZXhpc3Rfb2s9VHJ1ZSkKKyAgICAgICAg
ICAgIGJhc2V0ZW1wID0gbWFrZV9udW1iZXJlZF9kaXJfd2l0aF9jbGVhbnVwKAorICAgICAgICAg
ICAgICAgIHByZWZpeD0icHl0ZXN0LSIsIHJvb3Q9cm9vdGRpciwga2VlcD0zLCBsb2NrX3RpbWVv
dXQ9TE9DS19USU1FT1VUCisgICAgICAgICAgICApCisgICAgICAgIGFzc2VydCBiYXNldGVtcCBp
cyBub3QgTm9uZSwgYmFzZXRlbXAKKyAgICAgICAgc2VsZi5fYmFzZXRlbXAgPSB0ID0gYmFzZXRl
bXAKKyAgICAgICAgc2VsZi5fdHJhY2UoIm5ldyBiYXNldGVtcCIsIHQpCisgICAgICAgIHJldHVy
biB0CisKKworQGF0dHIucworY2xhc3MgVGVtcGRpckZhY3Rvcnkob2JqZWN0KToKKyAgICAiIiIK
KyAgICBiYWNrd2FyZCBjb21wdGliaWxpdHkgd3JhcHBlciB0aGF0IGltcGxlbWVudHMKKyAgICA6
Y2xhc3M6YGBweS5wYXRoLmxvY2FsYGAgZm9yIDpjbGFzczpgYFRlbXBQYXRoRmFjdG9yeWBgCiAg
ICAgIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKLSAgICAgICAgc2VsZi5j
b25maWcgPSBjb25maWcKLSAgICAgICAgc2VsZi50cmFjZSA9IGNvbmZpZy50cmFjZS5nZXQoInRt
cGRpciIpCisgICAgX3RtcHBhdGhfZmFjdG9yeSA9IGF0dHIuaWIoKQogCiAgICAgZGVmIGVuc3Vy
ZXRlbXAoc2VsZiwgc3RyaW5nLCBkaXI9MSk6CiAgICAgICAgICIiIiAoZGVwcmVjYXRlZCkgcmV0
dXJuIHRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aCB3aXRoCkBAIC0yNiw2ICsxMDEsOSBAQCBjbGFz
cyBUZW1wZGlyRmFjdG9yeShvYmplY3QpOgogICAgICAgICAgICAgYW5kIGlzIGd1YXJhbnRlZWQg
dG8gYmUgZW1wdHkuCiAgICAgICAgICIiIgogICAgICAgICAjIHB5LmxvZy5fYXBpd2FybigiPjEu
MSIsICJ1c2UgdG1wZGlyIGZ1bmN0aW9uIGFyZ3VtZW50IikKKyAgICAgICAgZnJvbSAuZGVwcmVj
YXRlZCBpbXBvcnQgUFlURVNUX0VOU1VSRVRFTVAKKworICAgICAgICB3YXJuaW5ncy53YXJuKFBZ
VEVTVF9FTlNVUkVURU1QLCBzdGFja2xldmVsPTIpCiAgICAgICAgIHJldHVybiBzZWxmLmdldGJh
c2V0ZW1wKCkuZW5zdXJlKHN0cmluZywgZGlyPWRpcikKIAogICAgIGRlZiBta3RlbXAoc2VsZiwg
YmFzZW5hbWUsIG51bWJlcmVkPVRydWUpOgpAQCAtMzMsNDYgKzExMSwxMSBAQCBjbGFzcyBUZW1w
ZGlyRmFjdG9yeShvYmplY3QpOgogICAgICAgICBJZiBgYG51bWJlcmVkYGAsIGVuc3VyZSB0aGUg
ZGlyZWN0b3J5IGlzIHVuaXF1ZSBieSBhZGRpbmcgYSBudW1iZXIKICAgICAgICAgcHJlZml4IGdy
ZWF0ZXIgdGhhbiBhbnkgZXhpc3Rpbmcgb25lLgogICAgICAgICAiIiIKLSAgICAgICAgYmFzZXRl
bXAgPSBzZWxmLmdldGJhc2V0ZW1wKCkKLSAgICAgICAgaWYgbm90IG51bWJlcmVkOgotICAgICAg
ICAgICAgcCA9IGJhc2V0ZW1wLm1rZGlyKGJhc2VuYW1lKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgcCA9IHB5LnBhdGgubG9jYWwubWFrZV9udW1iZXJlZF9kaXIoCi0gICAgICAgICAgICAg
ICAgcHJlZml4PWJhc2VuYW1lLCBrZWVwPTAsIHJvb3RkaXI9YmFzZXRlbXAsIGxvY2tfdGltZW91
dD1Ob25lCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYudHJhY2UoIm1rdGVtcCIsIHApCi0g
ICAgICAgIHJldHVybiBwCisgICAgICAgIHJldHVybiBweS5wYXRoLmxvY2FsKHNlbGYuX3RtcHBh
dGhfZmFjdG9yeS5ta3RlbXAoYmFzZW5hbWUsIG51bWJlcmVkKS5yZXNvbHZlKCkpCiAKICAgICBk
ZWYgZ2V0YmFzZXRlbXAoc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gYmFzZSB0ZW1wb3Jhcnkg
ZGlyZWN0b3J5LiAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Jh
c2V0ZW1wCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIGJhc2V0
ZW1wID0gc2VsZi5jb25maWcub3B0aW9uLmJhc2V0ZW1wCi0gICAgICAgICAgICBpZiBiYXNldGVt
cDoKLSAgICAgICAgICAgICAgICBiYXNldGVtcCA9IHB5LnBhdGgubG9jYWwoYmFzZXRlbXApCi0g
ICAgICAgICAgICAgICAgaWYgYmFzZXRlbXAuY2hlY2soKToKLSAgICAgICAgICAgICAgICAgICAg
YmFzZXRlbXAucmVtb3ZlKCkKLSAgICAgICAgICAgICAgICBiYXNldGVtcC5ta2RpcigpCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHRlbXByb290ID0gcHkucGF0aC5sb2NhbC5n
ZXRfdGVtcHJvb3QoKQotICAgICAgICAgICAgICAgIHVzZXIgPSBnZXRfdXNlcigpCi0gICAgICAg
ICAgICAgICAgaWYgdXNlcjoKLSAgICAgICAgICAgICAgICAgICAgIyB1c2UgYSBzdWItZGlyZWN0
b3J5IGluIHRoZSB0ZW1wcm9vdCB0byBzcGVlZC11cAotICAgICAgICAgICAgICAgICAgICAjIG1h
a2VfbnVtYmVyZWRfZGlyKCkgY2FsbAotICAgICAgICAgICAgICAgICAgICByb290ZGlyID0gdGVt
cHJvb3Quam9pbigicHl0ZXN0LW9mLSVzIiAlIHVzZXIpCi0gICAgICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICAgICAgcm9vdGRpciA9IHRlbXByb290Ci0gICAgICAgICAgICAgICAg
cm9vdGRpci5lbnN1cmUoZGlyPTEpCi0gICAgICAgICAgICAgICAgYmFzZXRlbXAgPSBweS5wYXRo
LmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKAotICAgICAgICAgICAgICAgICAgICBwcmVmaXg9InB5
dGVzdC0iLCByb290ZGlyPXJvb3RkaXIKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBz
ZWxmLl9iYXNldGVtcCA9IHQgPSBiYXNldGVtcC5yZWFscGF0aCgpCi0gICAgICAgICAgICBzZWxm
LnRyYWNlKCJuZXcgYmFzZXRlbXAiLCB0KQotICAgICAgICAgICAgcmV0dXJuIHQKLQotICAgIGRl
ZiBmaW5pc2goc2VsZik6Ci0gICAgICAgIHNlbGYudHJhY2UoImZpbmlzaCIpCisgICAgICAgICIi
ImJhY2t3YXJkIGNvbXBhdCB3cmFwcGVyIGZvciBgYF90bXBwYXRoX2ZhY3RvcnkuZ2V0YmFzZXRl
bXBgYCIiIgorICAgICAgICByZXR1cm4gcHkucGF0aC5sb2NhbChzZWxmLl90bXBwYXRoX2ZhY3Rv
cnkuZ2V0YmFzZXRlbXAoKS5yZXNvbHZlKCkpCiAKIAogZGVmIGdldF91c2VyKCk6CkBAIC04Nywx
MCArMTMwLDYgQEAgZGVmIGdldF91c2VyKCk6CiAgICAgICAgIHJldHVybiBOb25lCiAKIAotIyBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5Ci1UZW1wZGlySGFuZGxlciA9IFRlbXBkaXJGYWN0b3J5Ci0K
LQogZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICAiIiJDcmVhdGUgYSBUZW1wZGly
RmFjdG9yeSBhbmQgYXR0YWNoIGl0IHRvIHRoZSBjb25maWcgb2JqZWN0LgogCkBAIC05OSwyMSAr
MTM4LDM4IEBAIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CiAgICAgdG8gdGhlIHRtcGRp
cl9mYWN0b3J5IHNlc3Npb24gZml4dHVyZS4KICAgICAiIiIKICAgICBtcCA9IE1vbmtleVBhdGNo
KCkKLSAgICB0ID0gVGVtcGRpckZhY3RvcnkoY29uZmlnKQotICAgIGNvbmZpZy5fY2xlYW51cC5l
eHRlbmQoW21wLnVuZG8sIHQuZmluaXNoXSkKKyAgICB0bXBwYXRoX2hhbmRsZXIgPSBUZW1wUGF0
aEZhY3RvcnkuZnJvbV9jb25maWcoY29uZmlnKQorICAgIHQgPSBUZW1wZGlyRmFjdG9yeSh0bXBw
YXRoX2hhbmRsZXIpCisgICAgY29uZmlnLl9jbGVhbnVwLmFwcGVuZChtcC51bmRvKQorICAgIG1w
LnNldGF0dHIoY29uZmlnLCAiX3RtcF9wYXRoX2ZhY3RvcnkiLCB0bXBwYXRoX2hhbmRsZXIsIHJh
aXNpbmc9RmFsc2UpCiAgICAgbXAuc2V0YXR0cihjb25maWcsICJfdG1wZGlyaGFuZGxlciIsIHQs
IHJhaXNpbmc9RmFsc2UpCiAgICAgbXAuc2V0YXR0cihweXRlc3QsICJlbnN1cmV0ZW1wIiwgdC5l
bnN1cmV0ZW1wLCByYWlzaW5nPUZhbHNlKQogCiAKIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vz
c2lvbiIpCiBkZWYgdG1wZGlyX2ZhY3RvcnkocmVxdWVzdCk6Ci0gICAgIiIiUmV0dXJuIGEgVGVt
cGRpckZhY3RvcnkgaW5zdGFuY2UgZm9yIHRoZSB0ZXN0IHNlc3Npb24uCisgICAgIiIiUmV0dXJu
IGEgOmNsYXNzOmBfcHl0ZXN0LnRtcGRpci5UZW1wZGlyRmFjdG9yeWAgaW5zdGFuY2UgZm9yIHRo
ZSB0ZXN0IHNlc3Npb24uCiAgICAgIiIiCiAgICAgcmV0dXJuIHJlcXVlc3QuY29uZmlnLl90bXBk
aXJoYW5kbGVyCiAKIAorQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiB0bXBf
cGF0aF9mYWN0b3J5KHJlcXVlc3QpOgorICAgICIiIlJldHVybiBhIDpjbGFzczpgX3B5dGVzdC50
bXBkaXIuVGVtcFBhdGhGYWN0b3J5YCBpbnN0YW5jZSBmb3IgdGhlIHRlc3Qgc2Vzc2lvbi4KKyAg
ICAiIiIKKyAgICByZXR1cm4gcmVxdWVzdC5jb25maWcuX3RtcF9wYXRoX2ZhY3RvcnkKKworCitk
ZWYgX21rX3RtcChyZXF1ZXN0LCBmYWN0b3J5KToKKyAgICBuYW1lID0gcmVxdWVzdC5ub2RlLm5h
bWUKKyAgICBuYW1lID0gcmUuc3ViKHIiW1xXXSIsICJfIiwgbmFtZSkKKyAgICBNQVhWQUwgPSAz
MAorICAgIG5hbWUgPSBuYW1lWzpNQVhWQUxdCisgICAgcmV0dXJuIGZhY3RvcnkubWt0ZW1wKG5h
bWUsIG51bWJlcmVkPVRydWUpCisKKwogQHB5dGVzdC5maXh0dXJlCi1kZWYgdG1wZGlyKHJlcXVl
c3QsIHRtcGRpcl9mYWN0b3J5KToKK2RlZiB0bXBkaXIodG1wX3BhdGgpOgogICAgICIiIlJldHVy
biBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aCBvYmplY3QKICAgICB3aGljaCBpcyB1bmlxdWUg
dG8gZWFjaCB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb24sCiAgICAgY3JlYXRlZCBhcyBhIHN1YiBk
aXJlY3Rvcnkgb2YgdGhlIGJhc2UgdGVtcG9yYXJ5CkBAIC0xMjIsMTAgKzE3OCwyMCBAQCBkZWYg
dG1wZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5KToKIAogICAgIC4uIF9gcHkucGF0aC5sb2Nh
bGA6IGh0dHBzOi8vcHkucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3BhdGguaHRtbAogICAgICIi
IgotICAgIG5hbWUgPSByZXF1ZXN0Lm5vZGUubmFtZQotICAgIG5hbWUgPSByZS5zdWIociJbXFdd
IiwgIl8iLCBuYW1lKQotICAgIE1BWFZBTCA9IDMwCi0gICAgaWYgbGVuKG5hbWUpID4gTUFYVkFM
OgotICAgICAgICBuYW1lID0gbmFtZVs6TUFYVkFMXQotICAgIHggPSB0bXBkaXJfZmFjdG9yeS5t
a3RlbXAobmFtZSwgbnVtYmVyZWQ9VHJ1ZSkKLSAgICByZXR1cm4geAorICAgIHJldHVybiBweS5w
YXRoLmxvY2FsKHRtcF9wYXRoKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIHRtcF9wYXRoKHJl
cXVlc3QsIHRtcF9wYXRoX2ZhY3RvcnkpOgorICAgICIiIlJldHVybiBhIHRlbXBvcmFyeSBkaXJl
Y3RvcnkgcGF0aCBvYmplY3QKKyAgICB3aGljaCBpcyB1bmlxdWUgdG8gZWFjaCB0ZXN0IGZ1bmN0
aW9uIGludm9jYXRpb24sCisgICAgY3JlYXRlZCBhcyBhIHN1YiBkaXJlY3Rvcnkgb2YgdGhlIGJh
c2UgdGVtcG9yYXJ5CisgICAgZGlyZWN0b3J5LiAgVGhlIHJldHVybmVkIG9iamVjdCBpcyBhIDpj
bGFzczpgcGF0aGxpYi5QYXRoYAorICAgIG9iamVjdC4KKworICAgIC4uIG5vdGU6OgorCisgICAg
ICAgIGluIHB5dGhvbiA8IDMuNiB0aGlzIGlzIGEgcGF0aGxpYjIuUGF0aAorICAgICIiIgorCisg
ICAgcmV0dXJuIF9ta190bXAocmVxdWVzdCwgdG1wX3BhdGhfZmFjdG9yeSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3VuaXR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3QvdW5pdHRlc3QucHkKaW5kZXggNmFkOWZkYTg4NzA1MjVhNzA4NjhmMjJkYWRhNDQ1YTMz
NzkwZjFhOC4uM2ZmNmY0NWQ4ZGJlNzgzMDBlZjYxMDUzMTIyMjM0NTZmOTYyZWFjZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdW5pdHRlc3QucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvdW5pdHRlc3QucHkKQEAgLTEsMTQgKzEsMjEgQEAKKyMgLSotIGNvZGlu
ZzogdXRmLTggLSotCiAiIiIgZGlzY292ZXJ5IGFuZCBydW5uaW5nIG9mIHN0ZC1saWJyYXJ5ICJ1
bml0dGVzdCIgc3R5bGUgdGVzdHMuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20g
X19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IHN5cwogaW1wb3J0IHRy
YWNlYmFjawogCi0jIGZvciB0cmFuc2ZlcnJpbmcgbWFya2VycwogaW1wb3J0IF9weXRlc3QuX2Nv
ZGUKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGdldGltZnVuYwog
ZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgaG9va2ltcGwKLWZyb20gX3B5dGVzdC5vdXRjb21l
cyBpbXBvcnQgZmFpbCwgc2tpcCwgeGZhaWwKLWZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IHRy
YW5zZmVyX21hcmtlcnMsIENsYXNzLCBNb2R1bGUsIEZ1bmN0aW9uCitmcm9tIF9weXRlc3Qub3V0
Y29tZXMgaW1wb3J0IGZhaWwKK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgc2tpcAorZnJv
bSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCB4ZmFpbAorZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBv
cnQgQ2xhc3MKK2Zyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IEZ1bmN0aW9uCiAKIAogZGVmIHB5
dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oY29sbGVjdG9yLCBuYW1lLCBvYmopOgpAQCAtMjcsMzQg
KzM0LDI2IEBAIGNsYXNzIFVuaXRUZXN0Q2FzZShDbGFzcyk6CiAgICAgIyB0byBkZWNsYXJlIHRo
YXQgb3VyIGNoaWxkcmVuIGRvIG5vdCBzdXBwb3J0IGZ1bmNhcmdzCiAgICAgbm9mdW5jYXJncyA9
IFRydWUKIAotICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgY2xzID0gc2VsZi5vYmoKLSAg
ICAgICAgaWYgZ2V0YXR0cihjbHMsICJfX3VuaXR0ZXN0X3NraXBfXyIsIEZhbHNlKToKLSAgICAg
ICAgICAgIHJldHVybiAgIyBza2lwcGVkCi0gICAgICAgIHNldHVwID0gZ2V0YXR0cihjbHMsICJz
ZXRVcENsYXNzIiwgTm9uZSkKLSAgICAgICAgaWYgc2V0dXAgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICBzZXR1cCgpCi0gICAgICAgIHRlYXJkb3duID0gZ2V0YXR0cihjbHMsICJ0ZWFyRG93bkNs
YXNzIiwgTm9uZSkKLSAgICAgICAgaWYgdGVhcmRvd24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBzZWxmLmFkZGZpbmFsaXplcih0ZWFyZG93bikKLSAgICAgICAgc3VwZXIoVW5pdFRlc3RDYXNl
LCBzZWxmKS5zZXR1cCgpCi0KICAgICBkZWYgY29sbGVjdChzZWxmKToKICAgICAgICAgZnJvbSB1
bml0dGVzdCBpbXBvcnQgVGVzdExvYWRlcgogCiAgICAgICAgIGNscyA9IHNlbGYub2JqCiAgICAg
ICAgIGlmIG5vdCBnZXRhdHRyKGNscywgIl9fdGVzdF9fIiwgVHJ1ZSk6CiAgICAgICAgICAgICBy
ZXR1cm4KKworICAgICAgICBza2lwcGVkID0gZ2V0YXR0cihjbHMsICJfX3VuaXR0ZXN0X3NraXBf
XyIsIEZhbHNlKQorICAgICAgICBpZiBub3Qgc2tpcHBlZDoKKyAgICAgICAgICAgIHNlbGYuX2lu
amVjdF9zZXR1cF90ZWFyZG93bl9maXh0dXJlcyhjbHMpCisgICAgICAgICAgICBzZWxmLl9pbmpl
Y3Rfc2V0dXBfY2xhc3NfZml4dHVyZSgpCisKICAgICAgICAgc2VsZi5zZXNzaW9uLl9maXh0dXJl
bWFuYWdlci5wYXJzZWZhY3RvcmllcyhzZWxmLCB1bml0dGVzdD1UcnVlKQogICAgICAgICBsb2Fk
ZXIgPSBUZXN0TG9hZGVyKCkKLSAgICAgICAgbW9kdWxlID0gc2VsZi5nZXRwYXJlbnQoTW9kdWxl
KS5vYmoKICAgICAgICAgZm91bmRzb21ldGhpbmcgPSBGYWxzZQogICAgICAgICBmb3IgbmFtZSBp
biBsb2FkZXIuZ2V0VGVzdENhc2VOYW1lcyhzZWxmLm9iaik6CiAgICAgICAgICAgICB4ID0gZ2V0
YXR0cihzZWxmLm9iaiwgbmFtZSkKICAgICAgICAgICAgIGlmIG5vdCBnZXRhdHRyKHgsICJfX3Rl
c3RfXyIsIFRydWUpOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBmdW5j
b2JqID0gZ2V0YXR0cih4LCAiaW1fZnVuYyIsIHgpCi0gICAgICAgICAgICB0cmFuc2Zlcl9tYXJr
ZXJzKGZ1bmNvYmosIGNscywgbW9kdWxlKQorICAgICAgICAgICAgZnVuY29iaiA9IGdldGltZnVu
Yyh4KQogICAgICAgICAgICAgeWllbGQgVGVzdENhc2VGdW5jdGlvbihuYW1lLCBwYXJlbnQ9c2Vs
ZiwgY2FsbG9iaj1mdW5jb2JqKQogICAgICAgICAgICAgZm91bmRzb21ldGhpbmcgPSBUcnVlCiAK
QEAgLTY1LDE3ICs2NCw1NyBAQCBjbGFzcyBVbml0VGVzdENhc2UoQ2xhc3MpOgogICAgICAgICAg
ICAgICAgIGlmIHV0IGlzIE5vbmUgb3IgcnVudGVzdCAhPSB1dC5UZXN0Q2FzZS5ydW5UZXN0Ogog
ICAgICAgICAgICAgICAgICAgICB5aWVsZCBUZXN0Q2FzZUZ1bmN0aW9uKCJydW5UZXN0IiwgcGFy
ZW50PXNlbGYpCiAKKyAgICBkZWYgX2luamVjdF9zZXR1cF90ZWFyZG93bl9maXh0dXJlcyhzZWxm
LCBjbHMpOgorICAgICAgICAiIiJJbmplY3RzIGEgaGlkZGVuIGF1dG8tdXNlIGZpeHR1cmUgdG8g
aW52b2tlIHNldFVwQ2xhc3Mvc2V0dXBfbWV0aG9kIGFuZCBjb3JyZXNwb25kaW5nCisgICAgICAg
IHRlYXJkb3duIGZ1bmN0aW9ucyAoIzUxNykiIiIKKyAgICAgICAgY2xhc3NfZml4dHVyZSA9IF9t
YWtlX3h1bml0X2ZpeHR1cmUoCisgICAgICAgICAgICBjbHMsICJzZXRVcENsYXNzIiwgInRlYXJE
b3duQ2xhc3MiLCBzY29wZT0iY2xhc3MiLCBwYXNzX3NlbGY9RmFsc2UKKyAgICAgICAgKQorICAg
ICAgICBpZiBjbGFzc19maXh0dXJlOgorICAgICAgICAgICAgY2xzLl9fcHl0ZXN0X2NsYXNzX3Nl
dHVwID0gY2xhc3NfZml4dHVyZQorCisgICAgICAgIG1ldGhvZF9maXh0dXJlID0gX21ha2VfeHVu
aXRfZml4dHVyZSgKKyAgICAgICAgICAgIGNscywgInNldHVwX21ldGhvZCIsICJ0ZWFyZG93bl9t
ZXRob2QiLCBzY29wZT0iZnVuY3Rpb24iLCBwYXNzX3NlbGY9VHJ1ZQorICAgICAgICApCisgICAg
ICAgIGlmIG1ldGhvZF9maXh0dXJlOgorICAgICAgICAgICAgY2xzLl9fcHl0ZXN0X21ldGhvZF9z
ZXR1cCA9IG1ldGhvZF9maXh0dXJlCisKKworZGVmIF9tYWtlX3h1bml0X2ZpeHR1cmUob2JqLCBz
ZXR1cF9uYW1lLCB0ZWFyZG93bl9uYW1lLCBzY29wZSwgcGFzc19zZWxmKToKKyAgICBzZXR1cCA9
IGdldGF0dHIob2JqLCBzZXR1cF9uYW1lLCBOb25lKQorICAgIHRlYXJkb3duID0gZ2V0YXR0cihv
YmosIHRlYXJkb3duX25hbWUsIE5vbmUpCisgICAgaWYgc2V0dXAgaXMgTm9uZSBhbmQgdGVhcmRv
d24gaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT1zY29wZSwgYXV0b3VzZT1UcnVlKQorICAgIGRlZiBmaXh0dXJlKHNlbGYsIHJlcXVlc3Qp
OgorICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICJfX3VuaXR0ZXN0X3NraXBfXyIsIE5vbmUpOgor
ICAgICAgICAgICAgcmVhc29uID0gc2VsZi5fX3VuaXR0ZXN0X3NraXBfd2h5X18KKyAgICAgICAg
ICAgIHB5dGVzdC5za2lwKHJlYXNvbikKKyAgICAgICAgaWYgc2V0dXAgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICBpZiBwYXNzX3NlbGY6CisgICAgICAgICAgICAgICAgc2V0dXAoc2VsZiwgcmVx
dWVzdC5mdW5jdGlvbikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2V0dXAo
KQorICAgICAgICB5aWVsZAorICAgICAgICBpZiB0ZWFyZG93biBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGlmIHBhc3Nfc2VsZjoKKyAgICAgICAgICAgICAgICB0ZWFyZG93bihzZWxmLCByZXF1
ZXN0LmZ1bmN0aW9uKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0ZWFyZG93
bigpCisKKyAgICByZXR1cm4gZml4dHVyZQorCiAKIGNsYXNzIFRlc3RDYXNlRnVuY3Rpb24oRnVu
Y3Rpb24pOgogICAgIG5vZnVuY2FyZ3MgPSBUcnVlCiAgICAgX2V4Y2luZm8gPSBOb25lCisgICAg
X3Rlc3RjYXNlID0gTm9uZQogCiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLl90
ZXN0Y2FzZSA9IHNlbGYucGFyZW50Lm9iaihzZWxmLm5hbWUpCiAgICAgICAgIHNlbGYuX2ZpeF91
bml0dGVzdF9za2lwX2RlY29yYXRvcigpCiAgICAgICAgIHNlbGYuX29iaiA9IGdldGF0dHIoc2Vs
Zi5fdGVzdGNhc2UsIHNlbGYubmFtZSkKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLl90ZXN0Y2Fz
ZSwgInNldHVwX21ldGhvZCIpOgotICAgICAgICAgICAgc2VsZi5fdGVzdGNhc2Uuc2V0dXBfbWV0
aG9kKHNlbGYuX29iaikKICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiX3JlcXVlc3QiKToKICAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3QuX2ZpbGxmaXh0dXJlcygpCiAKQEAgLTkzLDkgKzEzMiw2
IEBAIGNsYXNzIFRlc3RDYXNlRnVuY3Rpb24oRnVuY3Rpb24pOgogICAgICAgICAgICAgc2V0YXR0
cihzZWxmLl90ZXN0Y2FzZSwgIl9fbmFtZV9fIiwgc2VsZi5uYW1lKQogCiAgICAgZGVmIHRlYXJk
b3duKHNlbGYpOgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX3Rlc3RjYXNlLCAidGVhcmRvd25f
bWV0aG9kIik6Ci0gICAgICAgICAgICBzZWxmLl90ZXN0Y2FzZS50ZWFyZG93bl9tZXRob2Qoc2Vs
Zi5fb2JqKQotICAgICAgICAjIEFsbG93IGdhcmJhZ2UgY29sbGVjdGlvbiBvbiBUZXN0Q2FzZSBp
bnN0YW5jZSBhdHRyaWJ1dGVzLgogICAgICAgICBzZWxmLl90ZXN0Y2FzZSA9IE5vbmUKICAgICAg
ICAgc2VsZi5fb2JqID0gTm9uZQogCkBAIC0xMDcsNiArMTQzLDEwIEBAIGNsYXNzIFRlc3RDYXNl
RnVuY3Rpb24oRnVuY3Rpb24pOgogICAgICAgICByYXdleGNpbmZvID0gZ2V0YXR0cihyYXdleGNp
bmZvLCAiX3Jhd2V4Y2luZm8iLCByYXdleGNpbmZvKQogICAgICAgICB0cnk6CiAgICAgICAgICAg
ICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKHJhd2V4Y2luZm8pCisgICAg
ICAgICAgICAjIGludm9rZSB0aGUgYXR0cmlidXRlcyB0byB0cmlnZ2VyIHN0b3JpbmcgdGhlIHRy
YWNlYmFjaworICAgICAgICAgICAgIyB0cmlhbCBjYXVzZXMgc29tZSBpc3N1ZSB0aGVyZQorICAg
ICAgICAgICAgZXhjaW5mby52YWx1ZQorICAgICAgICAgICAgZXhjaW5mby50cmFjZWJhY2sKICAg
ICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAg
ICB0cnk6CkBAIC0xMjgsNyArMTY4LDcgQEAgY2xhc3MgVGVzdENhc2VGdW5jdGlvbihGdW5jdGlv
bik6CiAgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CiAgICAgICAgICAgICAg
ICAgcmFpc2UKICAgICAgICAgICAgIGV4Y2VwdCBmYWlsLkV4Y2VwdGlvbjoKLSAgICAgICAgICAg
ICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgICAg
ICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgp
CiAgICAgICAgIHNlbGYuX19kaWN0X18uc2V0ZGVmYXVsdCgiX2V4Y2luZm8iLCBbXSkuYXBwZW5k
KGV4Y2luZm8pCiAKICAgICBkZWYgYWRkRXJyb3Ioc2VsZiwgdGVzdGNhc2UsIHJhd2V4Y2luZm8p
OgpAQCAtMTYzLDE1ICsyMDMsMTMgQEAgY2xhc3MgVGVzdENhc2VGdW5jdGlvbihGdW5jdGlvbik6
CiAgICAgICAgICMgaW1wbGVtZW50cyB0aGUgc2tpcHBpbmcgbWFjaGluZXJ5IChzZWUgIzIxMzcp
CiAgICAgICAgICMgYW5hbG9nIHRvIHB5dGhvbnMgTGliL3VuaXR0ZXN0L2Nhc2UucHk6cnVuCiAg
ICAgICAgIHRlc3RNZXRob2QgPSBnZXRhdHRyKHNlbGYuX3Rlc3RjYXNlLCBzZWxmLl90ZXN0Y2Fz
ZS5fdGVzdE1ldGhvZE5hbWUpCi0gICAgICAgIGlmICgKLSAgICAgICAgICAgIGdldGF0dHIoc2Vs
Zi5fdGVzdGNhc2UuX19jbGFzc19fLCAiX191bml0dGVzdF9za2lwX18iLCBGYWxzZSkKLSAgICAg
ICAgICAgIG9yIGdldGF0dHIodGVzdE1ldGhvZCwgIl9fdW5pdHRlc3Rfc2tpcF9fIiwgRmFsc2Up
CisgICAgICAgIGlmIGdldGF0dHIoc2VsZi5fdGVzdGNhc2UuX19jbGFzc19fLCAiX191bml0dGVz
dF9za2lwX18iLCBGYWxzZSkgb3IgZ2V0YXR0cigKKyAgICAgICAgICAgIHRlc3RNZXRob2QsICJf
X3VuaXR0ZXN0X3NraXBfXyIsIEZhbHNlCiAgICAgICAgICk6CiAgICAgICAgICAgICAjIElmIHRo
ZSBjbGFzcyBvciBtZXRob2Qgd2FzIHNraXBwZWQuCi0gICAgICAgICAgICBza2lwX3doeSA9ICgK
LSAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYuX3Rlc3RjYXNlLl9fY2xhc3NfXywgIl9fdW5p
dHRlc3Rfc2tpcF93aHlfXyIsICIiKQotICAgICAgICAgICAgICAgIG9yIGdldGF0dHIodGVzdE1l
dGhvZCwgIl9fdW5pdHRlc3Rfc2tpcF93aHlfXyIsICIiKQotICAgICAgICAgICAgKQorICAgICAg
ICAgICAgc2tpcF93aHkgPSBnZXRhdHRyKAorICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RjYXNl
Ll9fY2xhc3NfXywgIl9fdW5pdHRlc3Rfc2tpcF93aHlfXyIsICIiCisgICAgICAgICAgICApIG9y
IGdldGF0dHIodGVzdE1ldGhvZCwgIl9fdW5pdHRlc3Rfc2tpcF93aHlfXyIsICIiKQogICAgICAg
ICAgICAgdHJ5OiAgIyBQWTMsIHVuaXR0ZXN0MiBvbiBQWTIKICAgICAgICAgICAgICAgICBzZWxm
Ll90ZXN0Y2FzZS5fYWRkU2tpcChzZWxmLCBzZWxmLl90ZXN0Y2FzZSwgc2tpcF93aHkpCiAgICAg
ICAgICAgICBleGNlcHQgVHlwZUVycm9yOiAgIyBQWTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdzNj
LWltcG9ydC5sb2cKaW5kZXggOWIzMmI5NTNhOGMzYjBmNzUyYWY4NWE3MTM0OGM3NzRhMzJiOGZh
MC4uMjNmZGYxNGU1MDljOGFhMDZlMTVlN2E0MGNiYTFjMzI1OTJlZTcwZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3QvdzNjLWltcG9ydC5sb2cKQEAgLTM0LDE2ICszNCwyMCBAQCBMaXN0IG9mIGZp
bGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L25vc2UucHkKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC9vdXRjb21lcy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3Bhc3RlYmluLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcGF0aGxpYi5weQogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L3B5dGVzdGVyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcHl0aG9uLnB5CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcHl0aG9uX2FwaS5weQogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L3JlY3dhcm4ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9yZXBvcnRzLnB5CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcmVzdWx0bG9nLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3QvcnVubmVyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2V0dXBvbmx5LnB5CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2V0dXBwbGFuLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3Qvc2tpcHBpbmcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9zdGVwd2lzZS5weQog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3Rlcm1pbmFsLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3QvdG1wZGlyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdW5pdHRlc3QucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5nX3R5cGVzLnB5CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3Qvd2FybmluZ3MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0
L3dhcm5pbmdfdHlwZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5nX3R5cGVz
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg2MTAxMGExMjc1ZDYyY2ZlMzM1N2E5NjYzZDM1ZTkwMTgxZjU3NzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5nX3R5cGVz
LnB5CkBAIC0wLDAgKzEsMTEyIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IGF0
dHIKKworCitjbGFzcyBQeXRlc3RXYXJuaW5nKFVzZXJXYXJuaW5nKToKKyAgICAiIiIKKyAgICBC
YXNlczogOmNsYXNzOmBVc2VyV2FybmluZ2AuCisKKyAgICBCYXNlIGNsYXNzIGZvciBhbGwgd2Fy
bmluZ3MgZW1pdHRlZCBieSBweXRlc3QuCisgICAgIiIiCisKKworY2xhc3MgUHl0ZXN0QXNzZXJ0
UmV3cml0ZVdhcm5pbmcoUHl0ZXN0V2FybmluZyk6CisgICAgIiIiCisgICAgQmFzZXM6IDpjbGFz
czpgUHl0ZXN0V2FybmluZ2AuCisKKyAgICBXYXJuaW5nIGVtaXR0ZWQgYnkgdGhlIHB5dGVzdCBh
c3NlcnQgcmV3cml0ZSBtb2R1bGUuCisgICAgIiIiCisKKworY2xhc3MgUHl0ZXN0Q2FjaGVXYXJu
aW5nKFB5dGVzdFdhcm5pbmcpOgorICAgICIiIgorICAgIEJhc2VzOiA6Y2xhc3M6YFB5dGVzdFdh
cm5pbmdgLgorCisgICAgV2FybmluZyBlbWl0dGVkIGJ5IHRoZSBjYWNoZSBwbHVnaW4gaW4gdmFy
aW91cyBzaXR1YXRpb25zLgorICAgICIiIgorCisKK2NsYXNzIFB5dGVzdENvbmZpZ1dhcm5pbmco
UHl0ZXN0V2FybmluZyk6CisgICAgIiIiCisgICAgQmFzZXM6IDpjbGFzczpgUHl0ZXN0V2Fybmlu
Z2AuCisKKyAgICBXYXJuaW5nIGVtaXR0ZWQgZm9yIGNvbmZpZ3VyYXRpb24gaXNzdWVzLgorICAg
ICIiIgorCisKK2NsYXNzIFB5dGVzdENvbGxlY3Rpb25XYXJuaW5nKFB5dGVzdFdhcm5pbmcpOgor
ICAgICIiIgorICAgIEJhc2VzOiA6Y2xhc3M6YFB5dGVzdFdhcm5pbmdgLgorCisgICAgV2Fybmlu
ZyBlbWl0dGVkIHdoZW4gcHl0ZXN0IGlzIG5vdCBhYmxlIHRvIGNvbGxlY3QgYSBmaWxlIG9yIHN5
bWJvbCBpbiBhIG1vZHVsZS4KKyAgICAiIiIKKworCitjbGFzcyBQeXRlc3REZXByZWNhdGlvbldh
cm5pbmcoUHl0ZXN0V2FybmluZywgRGVwcmVjYXRpb25XYXJuaW5nKToKKyAgICAiIiIKKyAgICBC
YXNlczogOmNsYXNzOmBweXRlc3QuUHl0ZXN0V2FybmluZ2AsIDpjbGFzczpgRGVwcmVjYXRpb25X
YXJuaW5nYC4KKworICAgIFdhcm5pbmcgY2xhc3MgZm9yIGZlYXR1cmVzIHRoYXQgd2lsbCBiZSBy
ZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uCisgICAgIiIiCisKKworY2xhc3MgUHl0ZXN0RXhw
ZXJpbWVudGFsQXBpV2FybmluZyhQeXRlc3RXYXJuaW5nLCBGdXR1cmVXYXJuaW5nKToKKyAgICAi
IiIKKyAgICBCYXNlczogOmNsYXNzOmBweXRlc3QuUHl0ZXN0V2FybmluZ2AsIDpjbGFzczpgRnV0
dXJlV2FybmluZ2AuCisKKyAgICBXYXJuaW5nIGNhdGVnb3J5IHVzZWQgdG8gZGVub3RlIGV4cGVy
aW1lbnRzIGluIHB5dGVzdC4gVXNlIHNwYXJpbmdseSBhcyB0aGUgQVBJIG1pZ2h0IGNoYW5nZSBv
ciBldmVuIGJlCisgICAgcmVtb3ZlZCBjb21wbGV0ZWx5IGluIGZ1dHVyZSB2ZXJzaW9uCisgICAg
IiIiCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2ltcGxlKGNscywgYXBpbmFtZSk6Cisg
ICAgICAgIHJldHVybiBjbHMoCisgICAgICAgICAgICAie2FwaW5hbWV9IGlzIGFuIGV4cGVyaW1l
bnRhbCBhcGkgdGhhdCBtYXkgY2hhbmdlIG92ZXIgdGltZSIuZm9ybWF0KAorICAgICAgICAgICAg
ICAgIGFwaW5hbWU9YXBpbmFtZQorICAgICAgICAgICAgKQorICAgICAgICApCisKKworY2xhc3Mg
UHl0ZXN0VW5oYW5kbGVkQ29yb3V0aW5lV2FybmluZyhQeXRlc3RXYXJuaW5nKToKKyAgICAiIiIK
KyAgICBCYXNlczogOmNsYXNzOmBQeXRlc3RXYXJuaW5nYC4KKworICAgIFdhcm5pbmcgZW1pdHRl
ZCB3aGVuIHB5dGVzdCBlbmNvdW50ZXJzIGEgdGVzdCBmdW5jdGlvbiB3aGljaCBpcyBhIGNvcm91
dGluZSwKKyAgICBidXQgaXQgd2FzIG5vdCBoYW5kbGVkIGJ5IGFueSBhc3luYy1hd2FyZSBwbHVn
aW4uIENvcm91dGluZSB0ZXN0IGZ1bmN0aW9ucworICAgIGFyZSBub3QgbmF0aXZlbHkgc3VwcG9y
dGVkLgorICAgICIiIgorCisKK2NsYXNzIFB5dGVzdFVua25vd25NYXJrV2FybmluZyhQeXRlc3RX
YXJuaW5nKToKKyAgICAiIiIKKyAgICBCYXNlczogOmNsYXNzOmBQeXRlc3RXYXJuaW5nYC4KKwor
ICAgIFdhcm5pbmcgZW1pdHRlZCBvbiB1c2Ugb2YgdW5rbm93biBtYXJrZXJzLgorICAgIFNlZSBo
dHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvbWFyay5odG1sIGZvciBkZXRhaWxzLgor
ICAgICIiIgorCisKK2NsYXNzIFJlbW92ZWRJblB5dGVzdDRXYXJuaW5nKFB5dGVzdERlcHJlY2F0
aW9uV2FybmluZyk6CisgICAgIiIiCisgICAgQmFzZXM6IDpjbGFzczpgcHl0ZXN0LlB5dGVzdERl
cHJlY2F0aW9uV2FybmluZ2AuCisKKyAgICBXYXJuaW5nIGNsYXNzIGZvciBmZWF0dXJlcyBzY2hl
ZHVsZWQgdG8gYmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4wLgorICAgICIiIgorCisKK0BhdHRyLnMK
K2NsYXNzIFVuZm9ybWF0dGVkV2FybmluZyhvYmplY3QpOgorICAgICIiIlVzZWQgdG8gaG9sZCB3
YXJuaW5ncyB0aGF0IG5lZWQgdG8gZm9ybWF0IHRoZWlyIG1lc3NhZ2UgYXQgcnVudGltZSwgYXMg
b3Bwb3NlZCB0byBhIGRpcmVjdCBtZXNzYWdlLgorCisgICAgVXNpbmcgdGhpcyBjbGFzcyBhdm9p
ZHMgdG8ga2VlcCBhbGwgdGhlIHdhcm5pbmcgdHlwZXMgYW5kIG1lc3NhZ2VzIGluIHRoaXMgbW9k
dWxlLCBhdm9pZGluZyBtaXN1c2UuCisgICAgIiIiCisKKyAgICBjYXRlZ29yeSA9IGF0dHIuaWIo
KQorICAgIHRlbXBsYXRlID0gYXR0ci5pYigpCisKKyAgICBkZWYgZm9ybWF0KHNlbGYsICoqa3dh
cmdzKToKKyAgICAgICAgIiIiUmV0dXJucyBhbiBpbnN0YW5jZSBvZiB0aGUgd2FybmluZyBjYXRl
Z29yeSwgZm9ybWF0dGVkIHdpdGggZ2l2ZW4ga3dhcmdzIiIiCisgICAgICAgIHJldHVybiBzZWxm
LmNhdGVnb3J5KHNlbGYudGVtcGxhdGUuZm9ybWF0KCoqa3dhcmdzKSkKKworCitQWVRFU1RFUl9D
T1BZX0VYQU1QTEUgPSBQeXRlc3RFeHBlcmltZW50YWxBcGlXYXJuaW5nLnNpbXBsZSgidGVzdGRp
ci5jb3B5X2V4YW1wbGUiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvd2Fy
bmluZ3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5ncy5weQppbmRleCBlMDIz
ZDBhYjQ5MWJkZDk2NmMyZWNlNWU3YzQ4MjE2ZmJlM2UwZjEzLi5hM2RlYmFlNDYyZmMxNDllNzQ3
ODhiYzVjZGYzYzAyNzZjOWRmMDdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVz
dC93YXJuaW5ncy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5ncy5weQpA
QCAtMSwxMiArMSwxNyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQs
IGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKK2ltcG9y
dCBzeXMKIGltcG9ydCB3YXJuaW5ncwogZnJvbSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFu
YWdlcgogCiBpbXBvcnQgcHl0ZXN0Ci0KIGZyb20gX3B5dGVzdCBpbXBvcnQgY29tcGF0CiAKK1NI
T1dfUFlURVNUX1dBUk5JTkdTX0FSRyA9ICItV2Fsd2F5czo6cHl0ZXN0LlJlbW92ZWRJblB5dGVz
dDRXYXJuaW5nIgorCiAKIGRlZiBfc2V0b3B0aW9uKHdtb2QsIGFyZyk6CiAgICAgIiIiCkBAIC00
OSw2NCArNTQsMTI3IEBAIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CiAgICAgKQogCiAK
K2RlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgY29uZmlnLmFkZGluaXZhbHVlX2xp
bmUoCisgICAgICAgICJtYXJrZXJzIiwKKyAgICAgICAgImZpbHRlcndhcm5pbmdzKHdhcm5pbmcp
OiBhZGQgYSB3YXJuaW5nIGZpbHRlciB0byB0aGUgZ2l2ZW4gdGVzdC4gIgorICAgICAgICAic2Vl
IGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC93YXJuaW5ncy5odG1sI3B5dGVzdC1t
YXJrLWZpbHRlcndhcm5pbmdzICIsCisgICAgKQorCisKIEBjb250ZXh0bWFuYWdlcgotZGVmIGNh
dGNoX3dhcm5pbmdzX2Zvcl9pdGVtKGl0ZW0pOgorZGVmIGNhdGNoX3dhcm5pbmdzX2Zvcl9pdGVt
KGNvbmZpZywgaWhvb2ssIHdoZW4sIGl0ZW0pOgogICAgICIiIgotICAgIGNhdGNoZXMgdGhlIHdh
cm5pbmdzIGdlbmVyYXRlZCBkdXJpbmcgc2V0dXAvY2FsbC90ZWFyZG93biBleGVjdXRpb24KLSAg
ICBvZiB0aGUgZ2l2ZW4gaXRlbSBhbmQgYWZ0ZXIgaXQgaXMgZG9uZSBwb3N0cyB0aGVtIGFzIHdh
cm5pbmdzIHRvIHRoaXMKLSAgICBpdGVtLgorICAgIENvbnRleHQgbWFuYWdlciB0aGF0IGNhdGNo
ZXMgd2FybmluZ3MgZ2VuZXJhdGVkIGluIHRoZSBjb250YWluZWQgZXhlY3V0aW9uIGJsb2NrLgor
CisgICAgYGBpdGVtYGAgY2FuIGJlIE5vbmUgaWYgd2UgYXJlIG5vdCBpbiB0aGUgY29udGV4dCBv
ZiBhbiBpdGVtIGV4ZWN1dGlvbi4KKworICAgIEVhY2ggd2FybmluZyBjYXB0dXJlZCB0cmlnZ2Vy
cyB0aGUgYGBweXRlc3Rfd2FybmluZ19jYXB0dXJlZGBgIGhvb2suCiAgICAgIiIiCi0gICAgYXJn
cyA9IGl0ZW0uY29uZmlnLmdldG9wdGlvbigicHl0aG9ud2FybmluZ3MiKSBvciBbXQotICAgIGlu
aWZpbHRlcnMgPSBpdGVtLmNvbmZpZy5nZXRpbmkoImZpbHRlcndhcm5pbmdzIikKKyAgICBjbWRs
aW5lX2ZpbHRlcnMgPSBjb25maWcuZ2V0b3B0aW9uKCJweXRob253YXJuaW5ncyIpIG9yIFtdCisg
ICAgaW5pZmlsdGVycyA9IGNvbmZpZy5nZXRpbmkoImZpbHRlcndhcm5pbmdzIikKICAgICB3aXRo
IHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKHJlY29yZD1UcnVlKSBhcyBsb2c6Ci0gICAgICAgIGZv
ciBhcmcgaW4gYXJnczoKLSAgICAgICAgICAgIHdhcm5pbmdzLl9zZXRvcHRpb24oYXJnKQogCisg
ICAgICAgIGlmIG5vdCBzeXMud2Fybm9wdGlvbnM6CisgICAgICAgICAgICAjIGlmIHVzZXIgaXMg
bm90IGV4cGxpY2l0bHkgY29uZmlndXJpbmcgd2FybmluZyBmaWx0ZXJzLCBzaG93IGRlcHJlY2F0
aW9uIHdhcm5pbmdzIGJ5IGRlZmF1bHQgKCMyOTA4KQorICAgICAgICAgICAgd2FybmluZ3MuZmls
dGVyd2FybmluZ3MoImFsd2F5cyIsIGNhdGVnb3J5PURlcHJlY2F0aW9uV2FybmluZykKKyAgICAg
ICAgICAgIHdhcm5pbmdzLmZpbHRlcndhcm5pbmdzKCJhbHdheXMiLCBjYXRlZ29yeT1QZW5kaW5n
RGVwcmVjYXRpb25XYXJuaW5nKQorCisgICAgICAgIHdhcm5pbmdzLmZpbHRlcndhcm5pbmdzKCJl
cnJvciIsIGNhdGVnb3J5PXB5dGVzdC5SZW1vdmVkSW5QeXRlc3Q0V2FybmluZykKKworICAgICAg
ICAjIGZpbHRlcnMgc2hvdWxkIGhhdmUgdGhpcyBwcmVjZWRlbmNlOiBtYXJrLCBjbWRsaW5lIG9w
dGlvbnMsIGluaQorICAgICAgICAjIGZpbHRlcnMgc2hvdWxkIGJlIGFwcGxpZWQgaW4gdGhlIGlu
dmVyc2Ugb3JkZXIgb2YgcHJlY2VkZW5jZQogICAgICAgICBmb3IgYXJnIGluIGluaWZpbHRlcnM6
CiAgICAgICAgICAgICBfc2V0b3B0aW9uKHdhcm5pbmdzLCBhcmcpCiAKLSAgICAgICAgZm9yIG1h
cmsgaW4gaXRlbS5pdGVyX21hcmtlcnMobmFtZT0iZmlsdGVyd2FybmluZ3MiKToKLSAgICAgICAg
ICAgIGZvciBhcmcgaW4gbWFyay5hcmdzOgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLl9zZXRv
cHRpb24oYXJnKQorICAgICAgICBmb3IgYXJnIGluIGNtZGxpbmVfZmlsdGVyczoKKyAgICAgICAg
ICAgIHdhcm5pbmdzLl9zZXRvcHRpb24oYXJnKQorCisgICAgICAgIGlmIGl0ZW0gaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBmb3IgbWFyayBpbiBpdGVtLml0ZXJfbWFya2VycyhuYW1lPSJmaWx0
ZXJ3YXJuaW5ncyIpOgorICAgICAgICAgICAgICAgIGZvciBhcmcgaW4gbWFyay5hcmdzOgorICAg
ICAgICAgICAgICAgICAgICBfc2V0b3B0aW9uKHdhcm5pbmdzLCBhcmcpCiAKICAgICAgICAgeWll
bGQKIAotICAgICAgICBmb3Igd2FybmluZyBpbiBsb2c6Ci0gICAgICAgICAgICB3YXJuX21zZyA9
IHdhcm5pbmcubWVzc2FnZQotICAgICAgICAgICAgdW5pY29kZV93YXJuaW5nID0gRmFsc2UKLQot
ICAgICAgICAgICAgaWYgKAotICAgICAgICAgICAgICAgIGNvbXBhdC5fUFkyCi0gICAgICAgICAg
ICAgICAgYW5kIGFueShpc2luc3RhbmNlKG0sIGNvbXBhdC5VTklDT0RFX1RZUEVTKSBmb3IgbSBp
biB3YXJuX21zZy5hcmdzKQotICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICBuZXdfYXJn
cyA9IFtdCi0gICAgICAgICAgICAgICAgZm9yIG0gaW4gd2Fybl9tc2cuYXJnczoKLSAgICAgICAg
ICAgICAgICAgICAgbmV3X2FyZ3MuYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICAgICAgY29t
cGF0LmFzY2lpX2VzY2FwZWQobSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFu
Y2UobSwgY29tcGF0LlVOSUNPREVfVFlQRVMpCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNl
IG0KLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIHVuaWNvZGVfd2Fybmlu
ZyA9IGxpc3Qod2Fybl9tc2cuYXJncykgIT0gbmV3X2FyZ3MKLSAgICAgICAgICAgICAgICB3YXJu
X21zZy5hcmdzID0gbmV3X2FyZ3MKLQotICAgICAgICAgICAgbXNnID0gd2FybmluZ3MuZm9ybWF0
d2FybmluZygKLSAgICAgICAgICAgICAgICB3YXJuX21zZywKLSAgICAgICAgICAgICAgICB3YXJu
aW5nLmNhdGVnb3J5LAotICAgICAgICAgICAgICAgIHdhcm5pbmcuZmlsZW5hbWUsCi0gICAgICAg
ICAgICAgICAgd2FybmluZy5saW5lbm8sCi0gICAgICAgICAgICAgICAgd2FybmluZy5saW5lLAor
ICAgICAgICBmb3Igd2FybmluZ19tZXNzYWdlIGluIGxvZzoKKyAgICAgICAgICAgIGlob29rLnB5
dGVzdF93YXJuaW5nX2NhcHR1cmVkLmNhbGxfaGlzdG9yaWMoCisgICAgICAgICAgICAgICAga3dh
cmdzPWRpY3Qod2FybmluZ19tZXNzYWdlPXdhcm5pbmdfbWVzc2FnZSwgd2hlbj13aGVuLCBpdGVt
PWl0ZW0pCiAgICAgICAgICAgICApCi0gICAgICAgICAgICBpdGVtLndhcm4oInVudXNlZCIsIG1z
ZykKIAotICAgICAgICAgICAgaWYgdW5pY29kZV93YXJuaW5nOgotICAgICAgICAgICAgICAgIHdh
cm5pbmdzLndhcm4oCi0gICAgICAgICAgICAgICAgICAgICJXYXJuaW5nIGlzIHVzaW5nIHVuaWNv
ZGUgbm9uIGNvbnZlcnRpYmxlIHRvIGFzY2lpLCAiCi0gICAgICAgICAgICAgICAgICAgICJjb252
ZXJ0aW5nIHRvIGEgc2FmZSByZXByZXNlbnRhdGlvbjpcbiAgJXMiICUgbXNnLAotICAgICAgICAg
ICAgICAgICAgICBVbmljb2RlV2FybmluZywKLSAgICAgICAgICAgICAgICApCiAKK2RlZiB3YXJu
aW5nX3JlY29yZF90b19zdHIod2FybmluZ19tZXNzYWdlKToKKyAgICAiIiJDb252ZXJ0IGEgd2Fy
bmluZ3MuV2FybmluZ01lc3NhZ2UgdG8gYSBzdHJpbmcuCiAKLUBweXRlc3QuaG9va2ltcGwoaG9v
a3dyYXBwZXI9VHJ1ZSkKKyAgICBUaGlzIHRha2VzIGxvdCBvZiB1bmljb2RlIHNoZW5hbmluZ2Fu
cyBpbnRvIGFjY291bnQgZm9yIFB5dGhvbiAyLgorICAgIFdoZW4gUHl0aG9uIDIgc3VwcG9ydCBp
cyBkcm9wcGVkIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGdyZWF0bHkgc2ltcGxpZmllZC4KKyAgICAi
IiIKKyAgICB3YXJuX21zZyA9IHdhcm5pbmdfbWVzc2FnZS5tZXNzYWdlCisgICAgdW5pY29kZV93
YXJuaW5nID0gRmFsc2UKKyAgICBpZiBjb21wYXQuX1BZMiBhbmQgYW55KGlzaW5zdGFuY2UobSwg
Y29tcGF0LlVOSUNPREVfVFlQRVMpIGZvciBtIGluIHdhcm5fbXNnLmFyZ3MpOgorICAgICAgICBu
ZXdfYXJncyA9IFtdCisgICAgICAgIGZvciBtIGluIHdhcm5fbXNnLmFyZ3M6CisgICAgICAgICAg
ICBuZXdfYXJncy5hcHBlbmQoCisgICAgICAgICAgICAgICAgY29tcGF0LmFzY2lpX2VzY2FwZWQo
bSkgaWYgaXNpbnN0YW5jZShtLCBjb21wYXQuVU5JQ09ERV9UWVBFUykgZWxzZSBtCisgICAgICAg
ICAgICApCisgICAgICAgIHVuaWNvZGVfd2FybmluZyA9IGxpc3Qod2Fybl9tc2cuYXJncykgIT0g
bmV3X2FyZ3MKKyAgICAgICAgd2Fybl9tc2cuYXJncyA9IG5ld19hcmdzCisKKyAgICBtc2cgPSB3
YXJuaW5ncy5mb3JtYXR3YXJuaW5nKAorICAgICAgICB3YXJuX21zZywKKyAgICAgICAgd2Fybmlu
Z19tZXNzYWdlLmNhdGVnb3J5LAorICAgICAgICB3YXJuaW5nX21lc3NhZ2UuZmlsZW5hbWUsCisg
ICAgICAgIHdhcm5pbmdfbWVzc2FnZS5saW5lbm8sCisgICAgICAgIHdhcm5pbmdfbWVzc2FnZS5s
aW5lLAorICAgICkKKyAgICBpZiB1bmljb2RlX3dhcm5pbmc6CisgICAgICAgIHdhcm5pbmdzLndh
cm4oCisgICAgICAgICAgICAiV2FybmluZyBpcyB1c2luZyB1bmljb2RlIG5vbiBjb252ZXJ0aWJs
ZSB0byBhc2NpaSwgIgorICAgICAgICAgICAgImNvbnZlcnRpbmcgdG8gYSBzYWZlIHJlcHJlc2Vu
dGF0aW9uOlxuICB7IXJ9Ii5mb3JtYXQoY29tcGF0LnNhZmVfc3RyKG1zZykpLAorICAgICAgICAg
ICAgVW5pY29kZVdhcm5pbmcsCisgICAgICAgICkKKyAgICByZXR1cm4gbXNnCisKKworQHB5dGVz
dC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlLCB0cnlmaXJzdD1UcnVlKQogZGVmIHB5dGVzdF9y
dW50ZXN0X3Byb3RvY29sKGl0ZW0pOgotICAgIHdpdGggY2F0Y2hfd2FybmluZ3NfZm9yX2l0ZW0o
aXRlbSk6CisgICAgd2l0aCBjYXRjaF93YXJuaW5nc19mb3JfaXRlbSgKKyAgICAgICAgY29uZmln
PWl0ZW0uY29uZmlnLCBpaG9vaz1pdGVtLmlob29rLCB3aGVuPSJydW50ZXN0IiwgaXRlbT1pdGVt
CisgICAgKToKKyAgICAgICAgeWllbGQKKworCitAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVy
PVRydWUsIHRyeWZpcnN0PVRydWUpCitkZWYgcHl0ZXN0X2NvbGxlY3Rpb24oc2Vzc2lvbik6Cisg
ICAgY29uZmlnID0gc2Vzc2lvbi5jb25maWcKKyAgICB3aXRoIGNhdGNoX3dhcm5pbmdzX2Zvcl9p
dGVtKAorICAgICAgICBjb25maWc9Y29uZmlnLCBpaG9vaz1jb25maWcuaG9vaywgd2hlbj0iY29s
bGVjdCIsIGl0ZW09Tm9uZQorICAgICk6CiAgICAgICAgIHlpZWxkCisKKworQHB5dGVzdC5ob29r
aW1wbChob29rd3JhcHBlcj1UcnVlKQorZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1p
bmFscmVwb3J0ZXIpOgorICAgIGNvbmZpZyA9IHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnCisgICAg
d2l0aCBjYXRjaF93YXJuaW5nc19mb3JfaXRlbSgKKyAgICAgICAgY29uZmlnPWNvbmZpZywgaWhv
b2s9Y29uZmlnLmhvb2ssIHdoZW49ImNvbmZpZyIsIGl0ZW09Tm9uZQorICAgICk6CisgICAgICAg
IHlpZWxkCisKKworZGVmIF9pc3N1ZV93YXJuaW5nX2NhcHR1cmVkKHdhcm5pbmcsIGhvb2ssIHN0
YWNrbGV2ZWwpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQgaW5z
dGVhZCBvZiBjYWxsaW5nIGBgd2FybmluZ3Mud2FybmBgIGRpcmVjdGx5IHdoZW4gd2UgYXJlIGlu
IHRoZSAiY29uZmlndXJlIiBzdGFnZToKKyAgICBhdCB0aGlzIHBvaW50IHRoZSBhY3R1YWwgb3B0
aW9ucyBtaWdodCBub3QgaGF2ZSBiZWVuIHNldCwgc28gd2UgbWFudWFsbHkgdHJpZ2dlciB0aGUg
cHl0ZXN0X3dhcm5pbmdfY2FwdHVyZWQKKyAgICBob29rIHNvIHdlIGNhbiBkaXNwbGF5IHRoaXMg
d2FybmluZ3MgaW4gdGhlIHRlcm1pbmFsLiBUaGlzIGlzIGEgaGFjayB1bnRpbCB3ZSBjYW4gc29y
dCBvdXQgIzI4OTEuCisKKyAgICA6cGFyYW0gd2FybmluZzogdGhlIHdhcm5pbmcgaW5zdGFuY2Uu
CisgICAgOnBhcmFtIGhvb2s6IHRoZSBob29rIGNhbGxlcgorICAgIDpwYXJhbSBzdGFja2xldmVs
OiBzdGFja2xldmVsIGZvcndhcmRlZCB0byB3YXJuaW5ncy53YXJuCisgICAgIiIiCisgICAgd2l0
aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncyhyZWNvcmQ9VHJ1ZSkgYXMgcmVjb3JkczoKKyAgICAg
ICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJhbHdheXMiLCB0eXBlKHdhcm5pbmcpKQorICAgICAg
ICB3YXJuaW5ncy53YXJuKHdhcm5pbmcsIHN0YWNrbGV2ZWw9c3RhY2tsZXZlbCkKKyAgICBob29r
LnB5dGVzdF93YXJuaW5nX2NhcHR1cmVkLmNhbGxfaGlzdG9yaWMoCisgICAgICAgIGt3YXJncz1k
aWN0KHdhcm5pbmdfbWVzc2FnZT1yZWNvcmRzWzBdLCB3aGVuPSJjb25maWciLCBpdGVtPU5vbmUp
CisgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL3B5dGVzdC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9weXRlc3QucHkKaW5kZXggZjI3ZjVhMTk1NWIyOThiNDhmZTI0NGRlYjBhM2U5NTAw
ZWZlOTEyNi4uY2NjNzdiNDc2ZjU5NzBhMWZkYzIwMTIyMjE4OTU1OTc3NTAyOGNhNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL3B5dGVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0
ZXN0LnB5CkBAIC0xLDYyICsxLDk3IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIyBQWVRI
T05fQVJHQ09NUExFVEVfT0sKICIiIgogcHl0ZXN0OiB1bml0IGFuZCBmdW5jdGlvbmFsIHRlc3Rp
bmcgd2l0aCBQeXRob24uCiAiIiIKLQotCiAjIGVsc2Ugd2UgYXJlIGltcG9ydGVkCi0KLWZyb20g
X3B5dGVzdC5jb25maWcgaW1wb3J0IG1haW4sIFVzYWdlRXJyb3IsIGNtZGxpbmUsIGhvb2tzcGVj
LCBob29raW1wbAotZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBmaXh0dXJlLCB5aWVsZF9m
aXh0dXJlCi1mcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCByZWdpc3Rlcl9hc3NlcnRfcmV3
cml0ZQotZnJvbSBfcHl0ZXN0LmZyZWV6ZV9zdXBwb3J0IGltcG9ydCBmcmVlemVfaW5jbHVkZXMK
IGZyb20gX3B5dGVzdCBpbXBvcnQgX192ZXJzaW9uX18KK2Zyb20gX3B5dGVzdC5hc3NlcnRpb24g
aW1wb3J0IHJlZ2lzdGVyX2Fzc2VydF9yZXdyaXRlCitmcm9tIF9weXRlc3QuY29uZmlnIGltcG9y
dCBjbWRsaW5lCitmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBob29raW1wbAorZnJvbSBfcHl0
ZXN0LmNvbmZpZyBpbXBvcnQgaG9va3NwZWMKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IG1h
aW4KK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IFVzYWdlRXJyb3IKIGZyb20gX3B5dGVzdC5k
ZWJ1Z2dpbmcgaW1wb3J0IHB5dGVzdFBEQiBhcyBfX3B5dGVzdFBEQgotZnJvbSBfcHl0ZXN0LnJl
Y3dhcm4gaW1wb3J0IHdhcm5zLCBkZXByZWNhdGVkX2NhbGwKLWZyb20gX3B5dGVzdC5vdXRjb21l
cyBpbXBvcnQgZmFpbCwgc2tpcCwgaW1wb3J0b3Jza2lwLCBleGl0LCB4ZmFpbAotZnJvbSBfcHl0
ZXN0Lm1hcmsgaW1wb3J0IE1BUktfR0VOIGFzIG1hcmssIHBhcmFtCi1mcm9tIF9weXRlc3QubWFp
biBpbXBvcnQgU2Vzc2lvbgotZnJvbSBfcHl0ZXN0Lm5vZGVzIGltcG9ydCBJdGVtLCBDb2xsZWN0
b3IsIEZpbGUKIGZyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgZmlsbGZpeHR1cmVzIGFzIF9m
aWxsZnVuY2FyZ3MKLWZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IE1vZHVsZSwgQ2xhc3MsIElu
c3RhbmNlLCBGdW5jdGlvbiwgR2VuZXJhdG9yCi0KLWZyb20gX3B5dGVzdC5weXRob25fYXBpIGlt
cG9ydCBhcHByb3gsIHJhaXNlcworZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBmaXh0dXJl
Citmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IHlpZWxkX2ZpeHR1cmUKK2Zyb20gX3B5dGVz
dC5mcmVlemVfc3VwcG9ydCBpbXBvcnQgZnJlZXplX2luY2x1ZGVzCitmcm9tIF9weXRlc3QubWFp
biBpbXBvcnQgU2Vzc2lvbgorZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1BUktfR0VOIGFzIG1h
cmsKK2Zyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBwYXJhbQorZnJvbSBfcHl0ZXN0Lm5vZGVzIGlt
cG9ydCBDb2xsZWN0b3IKK2Zyb20gX3B5dGVzdC5ub2RlcyBpbXBvcnQgRmlsZQorZnJvbSBfcHl0
ZXN0Lm5vZGVzIGltcG9ydCBJdGVtCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGV4aXQK
K2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbAorZnJvbSBfcHl0ZXN0Lm91dGNvbWVz
IGltcG9ydCBpbXBvcnRvcnNraXAKK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgc2tpcAor
ZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCB4ZmFpbAorZnJvbSBfcHl0ZXN0LnB5dGhvbiBp
bXBvcnQgQ2xhc3MKK2Zyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IEZ1bmN0aW9uCitmcm9tIF9w
eXRlc3QucHl0aG9uIGltcG9ydCBJbnN0YW5jZQorZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQg
TW9kdWxlCitmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBQYWNrYWdlCitmcm9tIF9weXRlc3Qu
cHl0aG9uX2FwaSBpbXBvcnQgYXBwcm94Citmcm9tIF9weXRlc3QucHl0aG9uX2FwaSBpbXBvcnQg
cmFpc2VzCitmcm9tIF9weXRlc3QucmVjd2FybiBpbXBvcnQgZGVwcmVjYXRlZF9jYWxsCitmcm9t
IF9weXRlc3QucmVjd2FybiBpbXBvcnQgd2FybnMKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVz
IGltcG9ydCBQeXRlc3RBc3NlcnRSZXdyaXRlV2FybmluZworZnJvbSBfcHl0ZXN0Lndhcm5pbmdf
dHlwZXMgaW1wb3J0IFB5dGVzdENhY2hlV2FybmluZworZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlw
ZXMgaW1wb3J0IFB5dGVzdENvbGxlY3Rpb25XYXJuaW5nCitmcm9tIF9weXRlc3Qud2FybmluZ190
eXBlcyBpbXBvcnQgUHl0ZXN0Q29uZmlnV2FybmluZworZnJvbSBfcHl0ZXN0Lndhcm5pbmdfdHlw
ZXMgaW1wb3J0IFB5dGVzdERlcHJlY2F0aW9uV2FybmluZworZnJvbSBfcHl0ZXN0Lndhcm5pbmdf
dHlwZXMgaW1wb3J0IFB5dGVzdEV4cGVyaW1lbnRhbEFwaVdhcm5pbmcKK2Zyb20gX3B5dGVzdC53
YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3RVbmhhbmRsZWRDb3JvdXRpbmVXYXJuaW5nCitmcm9t
IF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBvcnQgUHl0ZXN0VW5rbm93bk1hcmtXYXJuaW5nCitm
cm9tIF9weXRlc3Qud2FybmluZ190eXBlcyBpbXBvcnQgUHl0ZXN0V2FybmluZworZnJvbSBfcHl0
ZXN0Lndhcm5pbmdfdHlwZXMgaW1wb3J0IFJlbW92ZWRJblB5dGVzdDRXYXJuaW5nCiAKIHNldF90
cmFjZSA9IF9fcHl0ZXN0UERCLnNldF90cmFjZQogCiBfX2FsbF9fID0gWwotICAgICJtYWluIiwK
LSAgICAiVXNhZ2VFcnJvciIsCi0gICAgImNtZGxpbmUiLAotICAgICJob29rc3BlYyIsCi0gICAg
Imhvb2tpbXBsIiwKICAgICAiX192ZXJzaW9uX18iLAotICAgICJyZWdpc3Rlcl9hc3NlcnRfcmV3
cml0ZSIsCi0gICAgImZyZWV6ZV9pbmNsdWRlcyIsCi0gICAgInNldF90cmFjZSIsCi0gICAgIndh
cm5zIiwKKyAgICAiX2ZpbGxmdW5jYXJncyIsCisgICAgImFwcHJveCIsCisgICAgIkNsYXNzIiwK
KyAgICAiY21kbGluZSIsCisgICAgIkNvbGxlY3RvciIsCiAgICAgImRlcHJlY2F0ZWRfY2FsbCIs
Ci0gICAgImZpeHR1cmUiLAotICAgICJ5aWVsZF9maXh0dXJlIiwKKyAgICAiZXhpdCIsCiAgICAg
ImZhaWwiLAotICAgICJza2lwIiwKLSAgICAieGZhaWwiLAorICAgICJGaWxlIiwKKyAgICAiZml4
dHVyZSIsCisgICAgImZyZWV6ZV9pbmNsdWRlcyIsCisgICAgIkZ1bmN0aW9uIiwKKyAgICAiaG9v
a2ltcGwiLAorICAgICJob29rc3BlYyIsCiAgICAgImltcG9ydG9yc2tpcCIsCi0gICAgImV4aXQi
LAotICAgICJtYXJrIiwKLSAgICAicGFyYW0iLAotICAgICJhcHByb3giLAotICAgICJfZmlsbGZ1
bmNhcmdzIiwKKyAgICAiSW5zdGFuY2UiLAogICAgICJJdGVtIiwKLSAgICAiRmlsZSIsCi0gICAg
IkNvbGxlY3RvciIsCi0gICAgIlNlc3Npb24iLAorICAgICJtYWluIiwKKyAgICAibWFyayIsCiAg
ICAgIk1vZHVsZSIsCi0gICAgIkNsYXNzIiwKLSAgICAiSW5zdGFuY2UiLAotICAgICJGdW5jdGlv
biIsCi0gICAgIkdlbmVyYXRvciIsCisgICAgIlBhY2thZ2UiLAorICAgICJwYXJhbSIsCisgICAg
IlB5dGVzdEFzc2VydFJld3JpdGVXYXJuaW5nIiwKKyAgICAiUHl0ZXN0Q2FjaGVXYXJuaW5nIiwK
KyAgICAiUHl0ZXN0Q29sbGVjdGlvbldhcm5pbmciLAorICAgICJQeXRlc3RDb25maWdXYXJuaW5n
IiwKKyAgICAiUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nIiwKKyAgICAiUHl0ZXN0RXhwZXJpbWVu
dGFsQXBpV2FybmluZyIsCisgICAgIlB5dGVzdFVuaGFuZGxlZENvcm91dGluZVdhcm5pbmciLAor
ICAgICJQeXRlc3RVbmtub3duTWFya1dhcm5pbmciLAorICAgICJQeXRlc3RXYXJuaW5nIiwKICAg
ICAicmFpc2VzIiwKKyAgICAicmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGUiLAorICAgICJSZW1vdmVk
SW5QeXRlc3Q0V2FybmluZyIsCisgICAgIlNlc3Npb24iLAorICAgICJzZXRfdHJhY2UiLAorICAg
ICJza2lwIiwKKyAgICAiVXNhZ2VFcnJvciIsCisgICAgIndhcm5zIiwKKyAgICAieGZhaWwiLAor
ICAgICJ5aWVsZF9maXh0dXJlIiwKIF0KIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFz
a3MvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhNWIxMjkzZTMz
ZWE3NTgyMjhhNGRkYWI5ZWNhZWM0YzZjZTc1NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvX19pbml0X18ucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0iIiIKLUludm9rZSB0YXNrcyB0byBoZWxwIHdpdGgg
cHl0ZXN0IGRldmVsb3BtZW50IGFuZCByZWxlYXNlIHByb2Nlc3MuCi0iIiIKLQotaW1wb3J0IGlu
dm9rZQotCi1mcm9tIC4gaW1wb3J0IGdlbmVyYXRlCi0KLQotbnMgPSBpbnZva2UuQ29sbGVjdGlv
bihnZW5lcmF0ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL2dlbmVyYXRlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGFza3MvZ2VuZXJhdGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDM5OGFmNzBjOTQyN2E3NmFjMjE4NTFiYzRjZDQ4NWIxNzBlMjIzZTYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvZ2Vu
ZXJhdGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotIiIiCi1JbnZva2UgZGV2
ZWxvcG1lbnQgdGFza3MuCi0iIiIKLWZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aAotZnJvbSBzdWJw
cm9jZXNzIGltcG9ydCBjaGVja19vdXRwdXQsIGNoZWNrX2NhbGwKLQotaW1wb3J0IGludm9rZQot
Ci0KLUBpbnZva2UudGFzayhoZWxwPXsidmVyc2lvbiI6ICJ2ZXJzaW9uIGJlaW5nIHJlbGVhc2Vk
In0pCi1kZWYgYW5ub3VuY2UoY3R4LCB2ZXJzaW9uKToKLSAgICAiIiJHZW5lcmF0ZXMgYSBuZXcg
cmVsZWFzZSBhbm5vdW5jZW1lbnQgZW50cnkgaW4gdGhlIGRvY3MuIiIiCi0gICAgIyBHZXQgb3Vy
IGxpc3Qgb2YgYXV0aG9ycwotICAgIHN0ZG91dCA9IGNoZWNrX291dHB1dChbImdpdCIsICJkZXNj
cmliZSIsICItLWFiYnJldj0wIiwgIi0tdGFncyJdKQotICAgIHN0ZG91dCA9IHN0ZG91dC5kZWNv
ZGUoInV0Zi04IikKLSAgICBsYXN0X3ZlcnNpb24gPSBzdGRvdXQuc3RyaXAoKQotCi0gICAgc3Rk
b3V0ID0gY2hlY2tfb3V0cHV0KAotICAgICAgICBbImdpdCIsICJsb2ciLCAie30uLkhFQUQiLmZv
cm1hdChsYXN0X3ZlcnNpb24pLCAiLS1mb3JtYXQ9JWFOIl0KLSAgICApCi0gICAgc3Rkb3V0ID0g
c3Rkb3V0LmRlY29kZSgidXRmLTgiKQotCi0gICAgY29udHJpYnV0b3JzID0gc2V0KHN0ZG91dC5z
cGxpdGxpbmVzKCkpCi0KLSAgICB0ZW1wbGF0ZV9uYW1lID0gInJlbGVhc2UubWlub3IucnN0IiBp
ZiB2ZXJzaW9uLmVuZHN3aXRoKAotICAgICAgICAiLjAiCi0gICAgKSBlbHNlICJyZWxlYXNlLnBh
dGNoLnJzdCIKLSAgICB0ZW1wbGF0ZV90ZXh0ID0gUGF0aChfX2ZpbGVfXykucGFyZW50LmpvaW5w
YXRoKHRlbXBsYXRlX25hbWUpLnJlYWRfdGV4dCgKLSAgICAgICAgZW5jb2Rpbmc9IlVURi04Igot
ICAgICkKLQotICAgIGNvbnRyaWJ1dG9yc190ZXh0ID0gIlxuIi5qb2luKAotICAgICAgICAiKiB7
fSIuZm9ybWF0KG5hbWUpIGZvciBuYW1lIGluIHNvcnRlZChjb250cmlidXRvcnMpCi0gICAgKSAr
ICJcbiIKLSAgICB0ZXh0ID0gdGVtcGxhdGVfdGV4dC5mb3JtYXQodmVyc2lvbj12ZXJzaW9uLCBj
b250cmlidXRvcnM9Y29udHJpYnV0b3JzX3RleHQpCi0KLSAgICB0YXJnZXQgPSBQYXRoKF9fZmls
ZV9fKS5wYXJlbnQuam9pbnBhdGgoCi0gICAgICAgICIuLi9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS17fS5yc3QiLmZvcm1hdCh2ZXJzaW9uKQotICAgICkKLSAgICB0YXJnZXQud3JpdGVfdGV4dCh0
ZXh0LCBlbmNvZGluZz0iVVRGLTgiKQotICAgIHByaW50KCJbZ2VuZXJhdGUuYW5ub3VuY2VdIEdl
bmVyYXRlZCB7fSIuZm9ybWF0KHRhcmdldC5uYW1lKSkKLQotICAgICMgVXBkYXRlIGluZGV4IHdp
dGggdGhlIG5ldyByZWxlYXNlIGVudHJ5Ci0gICAgaW5kZXhfcGF0aCA9IFBhdGgoX19maWxlX18p
LnBhcmVudC5qb2lucGF0aCgiLi4vZG9jL2VuL2Fubm91bmNlL2luZGV4LnJzdCIpCi0gICAgbGlu
ZXMgPSBpbmRleF9wYXRoLnJlYWRfdGV4dChlbmNvZGluZz0iVVRGLTgiKS5zcGxpdGxpbmVzKCkK
LSAgICBpbmRlbnQgPSAiICAgIgotICAgIGZvciBpbmRleCwgbGluZSBpbiBlbnVtZXJhdGUobGlu
ZXMpOgotICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoInt9cmVsZWFzZS0iLmZvcm1hdChpbmRl
bnQpKToKLSAgICAgICAgICAgIG5ld19saW5lID0gaW5kZW50ICsgdGFyZ2V0LnN0ZW0KLSAgICAg
ICAgICAgIGlmIGxpbmUgIT0gbmV3X2xpbmU6Ci0gICAgICAgICAgICAgICAgbGluZXMuaW5zZXJ0
KGluZGV4LCBuZXdfbGluZSkKLSAgICAgICAgICAgICAgICBpbmRleF9wYXRoLndyaXRlX3RleHQo
IlxuIi5qb2luKGxpbmVzKSArICJcbiIsIGVuY29kaW5nPSJVVEYtOCIpCi0gICAgICAgICAgICAg
ICAgcHJpbnQoIltnZW5lcmF0ZS5hbm5vdW5jZV0gVXBkYXRlZCB7fSIuZm9ybWF0KGluZGV4X3Bh
dGgubmFtZSkpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHByaW50KAotICAg
ICAgICAgICAgICAgICAgICAiW2dlbmVyYXRlLmFubm91bmNlXSBTa2lwIHt9IChhbHJlYWR5IGNv
bnRhaW5zIHJlbGVhc2UpIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9w
YXRoLm5hbWUKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgIGJyZWFrCi0KLSAgICBjaGVja19jYWxsKFsiZ2l0IiwgImFkZCIsIHN0cih0YXJnZXQp
XSkKLQotCi1AaW52b2tlLnRhc2soKQotZGVmIHJlZ2VuKGN0eCk6Ci0gICAgIiIiQ2FsbCByZWdl
bmRvYyB0b29sIHRvIHVwZGF0ZSBleGFtcGxlcyBhbmQgcHl0ZXN0IG91dHB1dCBpbiB0aGUgZG9j
cy4iIiIKLSAgICBwcmludCgiW2dlbmVyYXRlLnJlZ2VuXSBVcGRhdGluZyBkb2NzIikKLSAgICBj
aGVja19jYWxsKFsidG94IiwgIi1lIiwgInJlZ2VuIl0pCi0KLQotQGludm9rZS50YXNrKCkKLWRl
ZiBtYWtlX3RhZyhjdHgsIHZlcnNpb24pOgotICAgICIiIkNyZWF0ZSBhIG5ldywgbG9jYWwgdGFn
IGZvciB0aGUgcmVsZWFzZSwgb25seSBpZiB0aGUgcmVwb3NpdG9yeSBpcyBjbGVhbi4iIiIKLSAg
ICBmcm9tIGdpdCBpbXBvcnQgUmVwbwotCi0gICAgcmVwbyA9IFJlcG8oIi4iKQotICAgIGlmIHJl
cG8uaXNfZGlydHkoKToKLSAgICAgICAgcHJpbnQoIkN1cnJlbnQgcmVwb3NpdG9yeSBpcyBkaXJ0
eS4gUGxlYXNlIGNvbW1pdCBhbnkgY2hhbmdlcyBhbmQgdHJ5IGFnYWluLiIpCi0gICAgICAgIHJh
aXNlIGludm9rZS5FeGl0KGNvZGU9MikKLQotICAgIHRhZ19uYW1lcyA9IFt4Lm5hbWUgZm9yIHgg
aW4gcmVwby50YWdzXQotICAgIGlmIHZlcnNpb24gaW4gdGFnX25hbWVzOgotICAgICAgICBwcmlu
dCgiW2dlbmVyYXRlLm1ha2VfdGFnXSBEZWxldGUgZXhpc3RpbmcgdGFnIHt9Ii5mb3JtYXQodmVy
c2lvbikpCi0gICAgICAgIHJlcG8uZGVsZXRlX3RhZyh2ZXJzaW9uKQotCi0gICAgcHJpbnQoIltn
ZW5lcmF0ZS5tYWtlX3RhZ10gQ3JlYXRlIHRhZyB7fSIuZm9ybWF0KHZlcnNpb24pKQotICAgIHJl
cG8uY3JlYXRlX3RhZyh2ZXJzaW9uKQotCi0KLUBpbnZva2UudGFzayhoZWxwPXsidmVyc2lvbiI6
ICJ2ZXJzaW9uIGJlaW5nIHJlbGVhc2VkIn0pCi1kZWYgcHJlX3JlbGVhc2UoY3R4LCB2ZXJzaW9u
KToKLSAgICAiIiJHZW5lcmF0ZXMgbmV3IGRvY3MsIHJlbGVhc2UgYW5ub3VuY2VtZW50cyBhbmQg
Y3JlYXRlcyBhIGxvY2FsIHRhZy4iIiIKLSAgICBhbm5vdW5jZShjdHgsIHZlcnNpb24pCi0gICAg
cmVnZW4oY3R4KQotICAgIGNoYW5nZWxvZyhjdHgsIHZlcnNpb24sIHdyaXRlX291dD1UcnVlKQot
Ci0gICAgbXNnID0gIlByZXBhcmluZyByZWxlYXNlIHZlcnNpb24ge30iLmZvcm1hdCh2ZXJzaW9u
KQotICAgIGNoZWNrX2NhbGwoWyJnaXQiLCAiY29tbWl0IiwgIi1hIiwgIi1tIiwgbXNnXSkKLQot
ICAgIG1ha2VfdGFnKGN0eCwgdmVyc2lvbikKLQotICAgIHByaW50KCkKLSAgICBwcmludCgiW2dl
bmVyYXRlLnByZV9yZWxlYXNlXSBQbGVhc2UgcHVzaCB5b3VyIGJyYW5jaCBhbmQgb3BlbiBhIFBS
LiIpCi0KLQotQGludm9rZS50YXNrKAotICAgIGhlbHA9ewotICAgICAgICAidmVyc2lvbiI6ICJ2
ZXJzaW9uIGJlaW5nIHJlbGVhc2VkIiwKLSAgICAgICAgIndyaXRlX291dCI6ICJ3cml0ZSBjaGFu
Z2VzIHRvIHRoZSBhY3R1YWwgY2hhbmdlbG9nIiwKLSAgICB9Ci0pCi1kZWYgY2hhbmdlbG9nKGN0
eCwgdmVyc2lvbiwgd3JpdGVfb3V0PUZhbHNlKToKLSAgICBpZiB3cml0ZV9vdXQ6Ci0gICAgICAg
IGFkZG9wdHMgPSBbXQotICAgIGVsc2U6Ci0gICAgICAgIGFkZG9wdHMgPSBbIi0tZHJhZnQiXQot
ICAgIGNoZWNrX2NhbGwoWyJ0b3duY3JpZXIiLCAiLS15ZXMiLCAiLS12ZXJzaW9uIiwgdmVyc2lv
bl0gKyBhZGRvcHRzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVsZWFzZS5taW5v
ci5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLm1pbm9yLnJzdApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYmRkODI4MmNmYWQ5OWY3ZTdiMTkwYjUwNmRkZjY4ZDVlMDQ2Yjli
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90YXNrcy9yZWxlYXNlLm1pbm9yLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAg
QEAKLXB5dGVzdC17dmVyc2lvbn0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotCi1UaGUgcHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIHt2ZXJzaW9u
fSByZWxlYXNlIQotCi1weXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRo
IG1vcmUgdGhhbiBhIDIwMDAgdGVzdHMKLWFnYWluc3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkg
ZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgotCi1UaGlzIHJlbGVhc2UgY29u
dGFpbnMgYSBudW1iZXIgb2YgYnVncyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzLCBzbyB1c2VycyBh
cmUgZW5jb3VyYWdlZAotdG8gdGFrZSBhIGxvb2sgYXQgdGhlIENIQU5HRUxPRzoKLQotICAgIGh0
dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwKLQotRm9yIGNvbXBs
ZXRlIGRvY3VtZW50YXRpb24sIHBsZWFzZSB2aXNpdDoKLQotICAgIGh0dHA6Ly9kb2NzLnB5dGVz
dC5vcmcKLQotQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOgotCi0gICAg
cGlwIGluc3RhbGwgLVUgcHl0ZXN0Ci0KLVRoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRv
IHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKLQote2NvbnRyaWJ1dG9yc30KLQotSGFwcHkgdGVz
dGluZywKLVRoZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGFza3MvcmVsZWFzZS5wYXRjaC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLnBh
dGNoLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTk4MmRjMzUzYzRiNmM0NWU5
NzFjMDFjMjk0Y2U4Mzg3OGU4MDg5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLnBhdGNoLnJzdAorKysgL2Rl
di9udWxsCkBAIC0xLDE3ICswLDAgQEAKLXB5dGVzdC17dmVyc2lvbn0KLT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1weXRlc3Qge3ZlcnNpb259IGhhcyBqdXN0IGJl
ZW4gcmVsZWFzZWQgdG8gUHlQSS4KLQotVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcg
YSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKLQotICBwaXAgaW5zdGFsbCAtLXVw
Z3JhZGUgcHl0ZXN0Ci0KLVRoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cDov
L2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KLQotVGhhbmtzIHRvIGFs
bCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgotCi17Y29udHJp
YnV0b3JzfQotCi1IYXBweSB0ZXN0aW5nLAotVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGFza3MvcmVxdWlyZW1lbnRzLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGI1NGU3NmU4NWM4YjZiNzVmNWRkZjZkYTVmODc5MTBhMzM4OGQ2Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZXF1aXJl
bWVudHMudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0tZSAuCi1naXRweXRob24K
LWludm9rZQotdG93bmNyaWVyCi10b3gKLXdoZWVsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
YXNrcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWUwODUzZDMyZDgwMDY2ZGY5NDZjMDIzNDFh
MWE2OGIxNDVmZDQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvX19pbml0X18ucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90YXNrcy9nZW5lcmF0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UubWlu
b3IucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVsZWFzZS5wYXRjaC5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90YXNrcy9yZXF1aXJlbWVudHMudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2FjY2VwdGFuY2VfdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvYWNjZXB0YW5jZV90ZXN0
LnB5CmluZGV4IGMyZWVkNDE5YzljYjAxOWY4YmZjMzUxNDM0MzNkYzY4NGRhY2RmNDQuLjliMzM5
MzBhMDZjZDA0NjMxNzRmNGVmMmZiMDAyMzA3ZWZlNzgxYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvYWNjZXB0YW5jZV90ZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
YWNjZXB0YW5jZV90ZXN0LnB5CkBAIC0xLDMwICsxLDM4IEBACiAjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBw
cmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp
bnRfZnVuY3Rpb24KKwogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCitpbXBvcnQgdGV4dHdyYXAKIGlt
cG9ydCB0eXBlcwogCitpbXBvcnQgYXR0cgoraW1wb3J0IHB5CiBpbXBvcnQgc2l4CiAKLWltcG9y
dCBfcHl0ZXN0Ll9jb2RlCi1pbXBvcnQgcHkKIGltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5t
YWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNURUQsIEVYSVRfVVNBR0VFUlJPUgorZnJvbSBf
cHl0ZXN0LmNvbXBhdCBpbXBvcnQgaW1wb3J0bGliX21ldGFkYXRhCitmcm9tIF9weXRlc3QubWFp
biBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVECitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQg
RVhJVF9VU0FHRUVSUk9SCitmcm9tIF9weXRlc3Qud2FybmluZ3MgaW1wb3J0IFNIT1dfUFlURVNU
X1dBUk5JTkdTX0FSRwogCiAKLWNsYXNzIFRlc3RHZW5lcmFsVXNhZ2Uob2JqZWN0KToKK2RlZiBw
cmVwZW5kX3B5dGhvbnBhdGgoKmRpcnMpOgorICAgIGN1ciA9IG9zLmdldGVudigiUFlUSE9OUEFU
SCIpCisgICAgaWYgY3VyOgorICAgICAgICBkaXJzICs9IChjdXIsKQorICAgIHJldHVybiBvcy5w
YXRoc2VwLmpvaW4oc3RyKHApIGZvciBwIGluIGRpcnMpCiAKKworY2xhc3MgVGVzdEdlbmVyYWxV
c2FnZShvYmplY3QpOgogICAgIGRlZiB0ZXN0X2NvbmZpZ19lcnJvcihzZWxmLCB0ZXN0ZGlyKToK
LSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotICAgICAgICAgICAgICAgIHJhaXNlIHB5dGVzdC5Vc2FnZUVycm9yKCJoZWxsbyIp
Ci0gICAgICAgICIiIgotICAgICAgICApCisgICAgICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCJj
b25mdGVzdF91c2FnZWVycm9yL2NvbmZ0ZXN0LnB5IikKICAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QodGVzdGRpci50bXBkaXIpCi0gICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9
IDAKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9VU0FHRUVSUk9SCiAgICAgICAg
IHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbIipFUlJPUjogaGVsbG8iXSkKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKnB5dGVzdF91bmNvbmZpZ3VyZV9jYWxsZWQi
XSkKIAogICAgIGRlZiB0ZXN0X3Jvb3RfY29uZnRlc3Rfc3ludGF4X2Vycm9yKHNlbGYsIHRlc3Rk
aXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoY29uZnRlc3Q9InJhaXNlIFN5bnRheEVy
cm9yXG4iKQpAQCAtMTAyLDYgKzExMCw0OCBAQCBjbGFzcyBUZXN0R2VuZXJhbFVzYWdlKG9iamVj
dCk6CiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKICAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQogCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJsb2FkX2Nvdl9lYXJseSIsIFtUcnVlLCBGYWxzZV0pCisgICAgZGVmIHRlc3RfZWFy
bHlfbG9hZF9zZXR1cHRvb2xzX25hbWUoc2VsZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gsIGxvYWRf
Y292X2Vhcmx5KToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKG15dGVzdHBsdWdpbjFfbW9k
dWxlPSIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUobXl0ZXN0cGx1Z2luMl9tb2R1bGU9
IiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShteWNvdl9tb2R1bGU9IiIpCisgICAgICAg
IHRlc3RkaXIuc3lzcGF0aGluc2VydCgpCisKKyAgICAgICAgbG9hZGVkID0gW10KKworICAgICAg
ICBAYXR0ci5zCisgICAgICAgIGNsYXNzIER1bW15RW50cnlQb2ludChvYmplY3QpOgorICAgICAg
ICAgICAgbmFtZSA9IGF0dHIuaWIoKQorICAgICAgICAgICAgbW9kdWxlID0gYXR0ci5pYigpCisg
ICAgICAgICAgICBncm91cCA9ICJweXRlc3QxMSIKKworICAgICAgICAgICAgZGVmIGxvYWQoc2Vs
Zik6CisgICAgICAgICAgICAgICAgX19pbXBvcnRfXyhzZWxmLm1vZHVsZSkKKyAgICAgICAgICAg
ICAgICBsb2FkZWQuYXBwZW5kKHNlbGYubmFtZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3lz
Lm1vZHVsZXNbc2VsZi5tb2R1bGVdCisKKyAgICAgICAgZW50cnlfcG9pbnRzID0gWworICAgICAg
ICAgICAgRHVtbXlFbnRyeVBvaW50KCJteXBsdWdpbjEiLCAibXl0ZXN0cGx1Z2luMV9tb2R1bGUi
KSwKKyAgICAgICAgICAgIER1bW15RW50cnlQb2ludCgibXlwbHVnaW4yIiwgIm15dGVzdHBsdWdp
bjJfbW9kdWxlIiksCisgICAgICAgICAgICBEdW1teUVudHJ5UG9pbnQoIm15Y292IiwgIm15Y292
X21vZHVsZSIpLAorICAgICAgICBdCisKKyAgICAgICAgQGF0dHIucworICAgICAgICBjbGFzcyBE
dW1teURpc3Qob2JqZWN0KToKKyAgICAgICAgICAgIGVudHJ5X3BvaW50cyA9IGF0dHIuaWIoKQor
ICAgICAgICAgICAgZmlsZXMgPSAoKQorCisgICAgICAgIGRlZiBteV9kaXN0cygpOgorICAgICAg
ICAgICAgcmV0dXJuIChEdW1teURpc3QoZW50cnlfcG9pbnRzKSwpCisKKyAgICAgICAgbW9ua2V5
cGF0Y2guc2V0YXR0cihpbXBvcnRsaWJfbWV0YWRhdGEsICJkaXN0cmlidXRpb25zIiwgbXlfZGlz
dHMpCisgICAgICAgIHBhcmFtcyA9ICgiLXAiLCAibXljb3YiKSBpZiBsb2FkX2Nvdl9lYXJseSBl
bHNlICgpCisgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0X2lucHJvY2VzcygqcGFyYW1zKQorICAg
ICAgICBpZiBsb2FkX2Nvdl9lYXJseToKKyAgICAgICAgICAgIGFzc2VydCBsb2FkZWQgPT0gWyJt
eWNvdiIsICJteXBsdWdpbjEiLCAibXlwbHVnaW4yIl0KKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGFzc2VydCBsb2FkZWQgPT0gWyJteXBsdWdpbjEiLCAibXlwbHVnaW4yIiwgIm15Y292Il0K
KwogICAgIGRlZiB0ZXN0X2Fzc2VydGlvbl9tYWdpYyhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgpAQCAtMTM4LDExICsxODgs
MTkgQEAgY2xhc3MgVGVzdEdlbmVyYWxVc2FnZShvYmplY3QpOgogICAgICAgICBwMiA9IHRlc3Rk
aXIubWFrZWZpbGUoIi5weWMiLCAiMTIzIikKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QocDEsIHAyKQogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldAotICAgICAgICByZXN1bHQu
c3RkZXJyLmZubWF0Y2hfbGluZXMoWyIqRVJST1I6IG5vdCBmb3VuZDoqJXMiICUgKHAyLmJhc2Vu
YW1lLCldKQorICAgICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWyIqRVJST1I6IG5v
dCBmb3VuZDoqe30iLmZvcm1hdChwMi5iYXNlbmFtZSldKQogCi0gICAgZGVmIHRlc3RfaXNzdWU0
ODZfYmV0dGVyX3JlcG9ydGluZ19vbl9jb25mdGVzdF9sb2FkX2ZhaWx1cmUoc2VsZiwgdGVzdGRp
cik6CisgICAgQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJkZWZhdWx0IikKKyAgICBkZWYg
dGVzdF9iZXR0ZXJfcmVwb3J0aW5nX29uX2NvbmZ0ZXN0X2xvYWRfZmFpbHVyZShzZWxmLCB0ZXN0
ZGlyLCByZXF1ZXN0KToKKyAgICAgICAgIiIiU2hvdyBhIHVzZXItZnJpZW5kbHkgdHJhY2ViYWNr
IG9uIGNvbmZ0ZXN0IGltcG9ydCBmYWlsdXJlcyAoIzQ4NiwgIzMzMzIpIiIiCiAgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIikKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoImltcG9y
dCBxd2VydHkiKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAgIGltcG9ydCBxd2VydHkK
KyAgICAgICAgICAgIGZvbygpCisgICAgICAgICIiIgorICAgICAgICApCiAgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWhlbHAiKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoCiAgICAgICAgICAgICAiIiIKQEAgLTE1MSwxMCArMjA5LDIzIEBAIGNsYXNz
IFRlc3RHZW5lcmFsVXNhZ2Uob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBkaXJuYW1lID0gcmVxdWVz
dC5ub2RlLm5hbWUgKyAiMCIKKyAgICAgICAgZXhjX25hbWUgPSAoCisgICAgICAgICAgICAiTW9k
dWxlTm90Rm91bmRFcnJvciIgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNikgZWxzZSAiSW1w
b3J0RXJyb3IiCisgICAgICAgICkKICAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVz
KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAqRVJST1IqY291bGQgbm90IGxvYWQqY29u
ZnRlc3QucHkqCi0gICAgICAgICIiIgorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICJJ
bXBvcnRFcnJvciB3aGlsZSBsb2FkaW5nIGNvbmZ0ZXN0ICcqe3NlcH17ZGlybmFtZX17c2VwfWNv
bmZ0ZXN0LnB5Jy4iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgZGlybmFtZT1kaXJuYW1l
LCBzZXA9b3Muc2VwCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAiY29uZnRl
c3QucHk6MzogaW4gPG1vZHVsZT4iLAorICAgICAgICAgICAgICAgICIgICAgZm9vKCkiLAorICAg
ICAgICAgICAgICAgICJjb25mdGVzdC5weToyOiBpbiBmb28iLAorICAgICAgICAgICAgICAgICIg
ICAgaW1wb3J0IHF3ZXJ0eSIsCisgICAgICAgICAgICAgICAgIkUgICB7fTogTm8gbW9kdWxlIG5h
bWVkIHtxfXF3ZXJ0eXtxfSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBleGNfbmFtZSwg
cT0iIiBpZiBzaXguUFkyIGVsc2UgIiciCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAg
IF0KICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfZWFybHlfc2tpcChzZWxmLCB0ZXN0ZGlyKToK
QEAgLTE3MSwxOCArMjQyLDcgQEAgY2xhc3MgVGVzdEdlbmVyYWxVc2FnZShvYmplY3QpOgogICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBza2lwKiJdKQogCiAgICAgZGVm
IHRlc3RfaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2RlcyhzZWxmLCB0ZXN0ZGlyKToKLSAg
ICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIGNsYXNzIE15RmlsZShweXRlc3QuRmlsZSk6Ci0g
ICAgICAgICAgICAgICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBbTXlJdGVtKCJoZWxsbyIsIHBhcmVudD1zZWxmKV0KLSAgICAgICAgICAgIGRlZiBweXRl
c3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE15
RmlsZShwYXRoLCBwYXJlbnQpCi0gICAgICAgICAgICBjbGFzcyBNeUl0ZW0ocHl0ZXN0Lkl0ZW0p
OgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0gICAgICAgICkKKyAgICAgICAg
dGVzdGRpci5jb3B5X2V4YW1wbGUoImlzc3VlODhfaW5pdGlhbF9maWxlX211bHRpbm9kZXMiKQog
ICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9oZWxsbygpOiBwYXNzIikK
ICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgIi0tY29sbGVjdC1vbmx5IikK
ICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKk15RmlsZSp0ZXN0X2lzc3Vl
ODgqIiwgIipNb2R1bGUqdGVzdF9pc3N1ZTg4KiJdKQpAQCAtMTkxLDcgKzI1MSw3IEBAIGNsYXNz
IFRlc3RHZW5lcmFsVXNhZ2Uob2JqZWN0KToKICAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3Qo
CiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGltcG9ydCBzeXMKLSAgICAgICAgICAgIHBy
aW50ICgic2hvdWxkIG5vdCBiZSBzZWVuIikKKyAgICAgICAgICAgIHByaW50KCJzaG91bGQgbm90
IGJlIHNlZW4iKQogICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgic3RkZXI0MlxcbiIpCiAg
ICAgICAgICIiIgogICAgICAgICApCkBAIC0yMDMsNyArMjYzLDcgQEAgY2xhc3MgVGVzdEdlbmVy
YWxVc2FnZShvYmplY3QpOgogICAgIGRlZiB0ZXN0X2NvbmZ0ZXN0X3ByaW50aW5nX3Nob3dzX2lm
X2Vycm9yKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAg
ICAgICAgICAgICIiIgotICAgICAgICAgICAgcHJpbnQgKCJzaG91bGQgYmUgc2VlbiIpCisgICAg
ICAgICAgICBwcmludCgic2hvdWxkIGJlIHNlZW4iKQogICAgICAgICAgICAgYXNzZXJ0IDAKICAg
ICAgICAgIiIiCiAgICAgICAgICkKQEAgLTIxOSwxNiArMjc5LDE2IEBAIGNsYXNzIFRlc3RHZW5l
cmFsVXNhZ2Uob2JqZWN0KToKICAgICAgICAgdGVzdGRpci50bXBkaXIuam9pbigicHkiKS5ta3N5
bWxpbmt0byhweS5fcHlkaXIpCiAgICAgICAgIHAgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJtYWlu
LnB5IikKICAgICAgICAgcC53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNl
KAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAg
ICAgICAgICAgICAgICBpbXBvcnQgc3lzLCBvcworICAgICAgICAgICAgICAgIHN5cy5wYXRoLmlu
c2VydCgwLCAnJykKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHkKKyAgICAgICAgICAgICAgICBw
cmludChweS5fX2ZpbGVfXykKKyAgICAgICAgICAgICAgICBwcmludChweS5fX3BhdGhfXykKKyAg
ICAgICAgICAgICAgICBvcy5jaGRpcihvcy5wYXRoLmRpcm5hbWUob3MuZ2V0Y3dkKCkpKQorICAg
ICAgICAgICAgICAgIHByaW50KHB5LmxvZykKICAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgIGltcG9ydCBzeXMsIG9zCi0gICAgICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgJycpCi0g
ICAgICAgICAgICBpbXBvcnQgcHkKLSAgICAgICAgICAgIHByaW50IChweS5fX2ZpbGVfXykKLSAg
ICAgICAgICAgIHByaW50IChweS5fX3BhdGhfXykKLSAgICAgICAgICAgIG9zLmNoZGlyKG9zLnBh
dGguZGlybmFtZShvcy5nZXRjd2QoKSkpCi0gICAgICAgICAgICBwcmludCAocHkubG9nKQotICAg
ICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGhvbihwKQpAQCAtMjg0LDE2ICszNDQsMTYgQEAgY2xhc3MgVGVzdEdlbmVyYWxV
c2FnZShvYmplY3QpOgogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAg
ICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHsneCc6IDN9LCBpZD0naGVsbG8tMTIzJykKKyAg
ICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgneCcsIFszXSwgaWRzPVsnaGVsbG8t
MTIzJ10pCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAg
ICAgICAgICAgICAgcHJpbnQgKGl0ZW0ua2V5d29yZHMpCisgICAgICAgICAgICAgICAgcHJpbnQo
aXRlbS5rZXl3b3JkcykKICAgICAgICAgICAgICAgICBpZiAnaGVsbG8tMTIzJyBpbiBpdGVtLmtl
eXdvcmRzOgogICAgICAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgiaGVsbG8iKQogICAgICAg
ICAgICAgICAgIGFzc2VydCAwCiAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHAgPSB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiZGVmIHRlc3RfZnVuYyh4KTogcGFzcyIiIikKLSAgICAgICAg
cmVzID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRl
c3QocCwgU0hPV19QWVRFU1RfV0FSTklOR1NfQVJHKQogICAgICAgICBhc3NlcnQgcmVzLnJldCA9
PSAwCiAgICAgICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHNraXBwZWQqIl0pCiAK
QEAgLTMwMSwxMyArMzYxLDE0IEBAIGNsYXNzIFRlc3RHZW5lcmFsVXNhZ2Uob2JqZWN0KToKICAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgogICAgICAgICAg
ICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAgICAgICAgICAgICAg
bWV0YWZ1bmMuYWRkY2FsbCh7J2knOiAxfSwgaWQ9IjEiKQotICAgICAgICAgICAgICAgIG1ldGFm
dW5jLmFkZGNhbGwoeydpJzogMn0sIGlkPSIyIikKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5w
YXJhbWV0cml6ZSgnaScsIFsxLCAyXSwgaWRzPVsiMSIsICIyIl0pCiAgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jKGkpOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgIiIiCiAgICAgICAg
ICkKLSAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QocC5iYXNlbmFtZSArICI6OiIgKyAi
dGVzdF9mdW5jWzFdIikKKyAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QoCisgICAgICAg
ICAgICBwLmJhc2VuYW1lICsgIjo6IiArICJ0ZXN0X2Z1bmNbMV0iLCBTSE9XX1BZVEVTVF9XQVJO
SU5HU19BUkcKKyAgICAgICAgKQogICAgICAgICBhc3NlcnQgcmVzLnJldCA9PSAwCiAgICAgICAg
IHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKIApAQCAtMzU2LDkgKzQx
NywyMCBAQCBjbGFzcyBUZXN0R2VuZXJhbFVzYWdlKG9iamVjdCk6CiAgICAgICAgICAgICBhc3Nl
cnQgcmVzdWx0LnJldCA9PSA0ICAjIHVzYWdlIGVycm9yIG9ubHkgaWYgaXRlbSBub3QgZm91bmQK
IAogICAgIGRlZiB0ZXN0X3JlcG9ydF9hbGxfZmFpbGVkX2NvbGxlY3Rpb25zX2luaXRhcmdzKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfVVNBR0VFUlJP
UgorCisgICAgICAgICAgICBkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goZXhpdHN0YXR1cyk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGV4aXRzdGF0dXMgPT0gRVhJVF9VU0FHRUVSUk9SCisgICAg
ICAgICAgICAgICAgcHJpbnQoInB5dGVzdF9zZXNzaW9uZmluaXNoX2NhbGxlZCIpCisgICAgICAg
ICAgICAiIiIKKyAgICAgICAgKQogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9hPSJk
ZWYiLCB0ZXN0X2I9ImRlZiIpCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCJ0
ZXN0X2EucHk6OmEiLCAidGVzdF9iLnB5OjpiIikKICAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1h
dGNoX2xpbmVzKFsiKkVSUk9SKnRlc3RfYS5weTo6YSoiLCAiKkVSUk9SKnRlc3RfYi5weTo6Yioi
XSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsicHl0ZXN0X3Nlc3Npb25m
aW5pc2hfY2FsbGVkIl0pCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfVVNBR0VF
UlJPUgogCiAgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCJyZWN3YXJuIikKICAgICBkZWYg
dGVzdF9uYW1lc3BhY2VfaW1wb3J0X2RvZXNudF9jb25mdXNlX2ltcG9ydF9ob29rKHNlbGYsIHRl
c3RkaXIpOgpAQCAtNDEzLDcgKzQ4NSw3IEBAIGNsYXNzIFRlc3RHZW5lcmFsVXNhZ2Uob2JqZWN0
KToKICAgICAgICAgICAgIFsiKnNvdXJjZSBjb2RlIG5vdCBhdmFpbGFibGUqIiwgIkUqZml4dHVy
ZSAnaW52YWxpZF9maXh0dXJlJyBub3QgZm91bmQiXQogICAgICAgICApCiAKLSAgICBkZWYgdGVz
dF9wbHVnaW5zX2dpdmVuX2FzX3N0cmluZ3Moc2VsZiwgdG1wZGlyLCBtb25rZXlwYXRjaCk6Cisg
ICAgZGVmIHRlc3RfcGx1Z2luc19naXZlbl9hc19zdHJpbmdzKHNlbGYsIHRtcGRpciwgbW9ua2V5
cGF0Y2gsIF9zeXNfc25hcHNob3QpOgogICAgICAgICAiIiJ0ZXN0IHRoYXQgc3RyIHZhbHVlcyBw
YXNzZWQgdG8gbWFpbigpIGFzIGBwbHVnaW5zYCBhcmcKICAgICAgICAgYXJlIGludGVycHJldGVk
IGFzIG1vZHVsZSBuYW1lcyB0byBiZSBpbXBvcnRlZCBhbmQgcmVnaXN0ZXJlZC4KICAgICAgICAg
Izg1NS4KQEAgLTQ1OCw3ICs1MzAsNiBAQCBjbGFzcyBUZXN0R2VuZXJhbFVzYWdlKG9iamVjdCk6
CiAKIAogY2xhc3MgVGVzdEludm9jYXRpb25WYXJpYW50cyhvYmplY3QpOgotCiAgICAgZGVmIHRl
c3RfZWFybHlpbml0KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKAogICAgICAgICAgICAgIiIiCkBAIC00NzIsNyArNTQzLDcgQEAgY2xhc3MgVGVzdEludm9j
YXRpb25WYXJpYW50cyhvYmplY3QpOgogICAgIEBweXRlc3QubWFyay54ZmFpbCgic3lzLnBsYXRm
b3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSIpCiAgICAgZGVmIHRlc3RfcHlkb2Moc2VsZiwgdGVzdGRp
cik6CiAgICAgICAgIGZvciBuYW1lIGluICgicHkudGVzdCIsICJweXRlc3QiKToKLSAgICAgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0aG9uX2MoImltcG9ydCAlcztoZWxwKCVzKSIgJSAo
bmFtZSwgbmFtZSkpCisgICAgICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbl9jKCJp
bXBvcnQge307aGVscCh7fSkiLmZvcm1hdChuYW1lLCBuYW1lKSkKICAgICAgICAgICAgIGFzc2Vy
dCByZXN1bHQucmV0ID09IDAKICAgICAgICAgICAgIHMgPSByZXN1bHQuc3Rkb3V0LnN0cigpCiAg
ICAgICAgICAgICBhc3NlcnQgIk1hcmtHZW5lcmF0b3IiIGluIHMKQEAgLTU0NCwxMiArNjE1LDEx
IEBAIGNsYXNzIFRlc3RJbnZvY2F0aW9uVmFyaWFudHMob2JqZWN0KToKICAgICBkZWYgdGVzdF9l
cXVpdmFsZW5jZV9weXRlc3RfcHl0ZXN0KHNlbGYpOgogICAgICAgICBhc3NlcnQgcHl0ZXN0Lm1h
aW4gPT0gcHkudGVzdC5jbWRsaW5lLm1haW4KIAotICAgIGRlZiB0ZXN0X2ludm9rZV93aXRoX3N0
cmluZyhzZWxmLCBjYXBzeXMpOgotICAgICAgICByZXRjb2RlID0gcHl0ZXN0Lm1haW4oIi1oIikK
LSAgICAgICAgYXNzZXJ0IG5vdCByZXRjb2RlCi0gICAgICAgIG91dCwgZXJyID0gY2Fwc3lzLnJl
YWRvdXRlcnIoKQotICAgICAgICBhc3NlcnQgIi0taGVscCIgaW4gb3V0Ci0gICAgICAgIHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwgbGFtYmRhOiBweXRlc3QubWFpbigwKSkKKyAgICBkZWYgdGVz
dF9pbnZva2Vfd2l0aF9pbnZhbGlkX3R5cGUoc2VsZiwgY2Fwc3lzKToKKyAgICAgICAgd2l0aCBw
eXRlc3QucmFpc2VzKAorICAgICAgICAgICAgVHlwZUVycm9yLCBtYXRjaD0iZXhwZWN0ZWQgdG8g
YmUgYSBsaXN0IG9yIHR1cGxlIG9mIHN0cmluZ3MsIGdvdDogJy1oJyIKKyAgICAgICAgKToKKyAg
ICAgICAgICAgIHB5dGVzdC5tYWluKCItaCIpCiAKICAgICBkZWYgdGVzdF9pbnZva2Vfd2l0aF9w
YXRoKHNlbGYsIHRtcGRpciwgY2Fwc3lzKToKICAgICAgICAgcmV0Y29kZSA9IHB5dGVzdC5tYWlu
KHRtcGRpcikKQEAgLTU1Nyw5ICs2MjcsNyBAQCBjbGFzcyBUZXN0SW52b2NhdGlvblZhcmlhbnRz
KG9iamVjdCk6CiAgICAgICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQogCiAgICAg
ZGVmIHRlc3RfaW52b2tlX3BsdWdpbl9hcGkoc2VsZiwgdGVzdGRpciwgY2Fwc3lzKToKLQogICAg
ICAgICBjbGFzcyBNeVBsdWdpbihvYmplY3QpOgotCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2Fk
ZG9wdGlvbihzZWxmLCBwYXJzZXIpOgogICAgICAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24o
Ii0tbXlvcHQiKQogCkBAIC01OTEsMTQgKzY1OSw4IEBAIGNsYXNzIFRlc3RJbnZvY2F0aW9uVmFy
aWFudHMob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAogICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCiAKLSAgICAgICAgZGVm
IGpvaW5fcHl0aG9ucGF0aCh3aGF0KToKLSAgICAgICAgICAgIGN1ciA9IG9zLmVudmlyb24uZ2V0
KCJQWVRIT05QQVRIIikKLSAgICAgICAgICAgIGlmIGN1cjoKLSAgICAgICAgICAgICAgICByZXR1
cm4gc3RyKHdoYXQpICsgb3MucGF0aHNlcCArIGN1cgotICAgICAgICAgICAgcmV0dXJuIHdoYXQK
LQogICAgICAgICBlbXB0eV9wYWNrYWdlID0gdGVzdGRpci5ta3B5ZGlyKCJlbXB0eV9wYWNrYWdl
IikKLSAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRIT05QQVRIIiwgam9pbl9weXRob25w
YXRoKGVtcHR5X3BhY2thZ2UpKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEhPTlBB
VEgiLCBzdHIoZW1wdHlfcGFja2FnZSksIHByZXBlbmQ9b3MucGF0aHNlcCkKICAgICAgICAgIyB0
aGUgcGF0aCB3aGljaCBpcyBub3QgYSBwYWNrYWdlIHJhaXNlcyBhIHdhcm5pbmcgb24gcHlweTsK
ICAgICAgICAgIyBubyBpZGVhIHdoeSBvbmx5IHB5cHkgYW5kIG5vdCBub3JtYWwgcHl0aG9uIHdh
cm4gYWJvdXQgaXQgaGVyZQogICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6
CkBAIC02MDcsNyArNjY5LDcgQEAgY2xhc3MgVGVzdEludm9jYXRpb25WYXJpYW50cyhvYmplY3Qp
OgogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCiAgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbIioyIHBhc3NlZCoiXSkKIAotICAgICAgICBtb25rZXlwYXRjaC5zZXRl
bnYoIlBZVEhPTlBBVEgiLCBqb2luX3B5dGhvbnBhdGgodGVzdGRpcikpCisgICAgICAgIG1vbmtl
eXBhdGNoLnNldGVudigiUFlUSE9OUEFUSCIsIHN0cih0ZXN0ZGlyKSwgcHJlcGVuZD1vcy5wYXRo
c2VwKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1weWFyZ3MiLCAidHBr
Zy50ZXN0X21pc3NpbmciLCBzeXNwYXRoaW5zZXJ0PVRydWUpCiAgICAgICAgIGFzc2VydCByZXN1
bHQucmV0ICE9IDAKICAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsiKm5vdCpm
b3VuZCp0ZXN0X21pc3NpbmcqIl0pCkBAIC02MTUsNiArNjc3LDggQEAgY2xhc3MgVGVzdEludm9j
YXRpb25WYXJpYW50cyhvYmplY3QpOgogICAgIGRlZiB0ZXN0X2NtZGxpbmVfcHl0aG9uX25hbWVz
cGFjZV9wYWNrYWdlKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKICAgICAgICAgIiIiCiAg
ICAgICAgIHRlc3QgLS1weWFyZ3Mgb3B0aW9uIHdpdGggbmFtZXNwYWNlIHBhY2thZ2VzICgjMTU2
NykKKworICAgICAgICBSZWY6IGh0dHBzOi8vcGFja2FnaW5nLnB5dGhvbi5vcmcvZ3VpZGVzL3Bh
Y2thZ2luZy1uYW1lc3BhY2UtcGFja2FnZXMvCiAgICAgICAgICIiIgogICAgICAgICBtb25rZXlw
YXRjaC5kZWxlbnYoIlBZVEhPTkRPTlRXUklURUJZVEVDT0RFIiwgcmFpc2luZz1GYWxzZSkKIApA
QCAtNjI5LDcgKzY5Myw3IEBAIGNsYXNzIFRlc3RJbnZvY2F0aW9uVmFyaWFudHMob2JqZWN0KToK
ICAgICAgICAgICAgIGxpYiA9IG5zLm1rZGlyKGRpcm5hbWUpCiAgICAgICAgICAgICBsaWIuZW5z
dXJlKCJfX2luaXRfXy5weSIpCiAgICAgICAgICAgICBsaWIuam9pbigidGVzdF97fS5weSIuZm9y
bWF0KGRpcm5hbWUpKS53cml0ZSgKLSAgICAgICAgICAgICAgICAiZGVmIHRlc3Rfe30oKTogcGFz
c1xuIiAiZGVmIHRlc3Rfb3RoZXIoKTpwYXNzIi5mb3JtYXQoZGlybmFtZSkKKyAgICAgICAgICAg
ICAgICAiZGVmIHRlc3Rfe30oKTogcGFzc1xuZGVmIHRlc3Rfb3RoZXIoKTpwYXNzIi5mb3JtYXQo
ZGlybmFtZSkKICAgICAgICAgICAgICkKIAogICAgICAgICAjIFRoZSBzdHJ1Y3R1cmUgb2YgdGhl
IHRlc3QgZGlyZWN0b3J5IGlzIG5vdzoKQEAgLTY0NywyNyArNzExLDIyIEBAIGNsYXNzIFRlc3RJ
bnZvY2F0aW9uVmFyaWFudHMob2JqZWN0KToKICAgICAgICAgIyAgICAgICAgICAgICDilJzilIDi
lIAgX19pbml0X18ucHkKICAgICAgICAgIyAgICAgICAgICAgICDilJTilIDilIAgdGVzdF93b3Js
ZC5weQogCi0gICAgICAgIGRlZiBqb2luX3B5dGhvbnBhdGgoKmRpcnMpOgotICAgICAgICAgICAg
Y3VyID0gb3MuZW52aXJvbi5nZXQoIlBZVEhPTlBBVEgiKQotICAgICAgICAgICAgaWYgY3VyOgot
ICAgICAgICAgICAgICAgIGRpcnMgKz0gKGN1ciwpCi0gICAgICAgICAgICByZXR1cm4gb3MucGF0
aHNlcC5qb2luKHN0cihwKSBmb3IgcCBpbiBkaXJzKQotCi0gICAgICAgIG1vbmtleXBhdGNoLnNl
dGVudigiUFlUSE9OUEFUSCIsIGpvaW5fcHl0aG9ucGF0aCgqc2VhcmNoX3BhdGgpKQorICAgICAg
ICAjIE5PVEU6IHRoZSBkaWZmZXJlbnQvcmV2ZXJzZWQgb3JkZXJpbmcgaXMgaW50ZW50aW9uYWwg
aGVyZS4KKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRIT05QQVRIIiwgcHJlcGVuZF9w
eXRob25wYXRoKCpzZWFyY2hfcGF0aCkpCiAgICAgICAgIGZvciBwIGluIHNlYXJjaF9wYXRoOgog
ICAgICAgICAgICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9wcmVwZW5kKHApCiAKICAgICAgICAgIyBt
aXhlZCBtb2R1bGUgYW5kIGZpbGVuYW1lczoKLSAgICAgICAgb3MuY2hkaXIoIndvcmxkIikKKyAg
ICAgICAgbW9ua2V5cGF0Y2guY2hkaXIoIndvcmxkIikKICAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi0tcHlhcmdzIiwgIi12IiwgIm5zX3BrZy5oZWxsbyIsICJuc19wa2cvd29y
bGQiKQogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCiAgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAiKnRlc3Rf
aGVsbG8ucHk6OnRlc3RfaGVsbG8qUEFTU0VEKiIsCi0gICAgICAgICAgICAgICAgIip0ZXN0X2hl
bGxvLnB5Ojp0ZXN0X290aGVyKlBBU1NFRCoiLAotICAgICAgICAgICAgICAgICIqdGVzdF93b3Js
ZC5weTo6dGVzdF93b3JsZCpQQVNTRUQqIiwKLSAgICAgICAgICAgICAgICAiKnRlc3Rfd29ybGQu
cHk6OnRlc3Rfb3RoZXIqUEFTU0VEKiIsCi0gICAgICAgICAgICAgICAgIio0IHBhc3NlZCoiLAor
ICAgICAgICAgICAgICAgICJ0ZXN0X2hlbGxvLnB5Ojp0ZXN0X2hlbGxvKlBBU1NFRCoiLAorICAg
ICAgICAgICAgICAgICJ0ZXN0X2hlbGxvLnB5Ojp0ZXN0X290aGVyKlBBU1NFRCoiLAorICAgICAg
ICAgICAgICAgICJuc19wa2cvd29ybGQvdGVzdF93b3JsZC5weTo6dGVzdF93b3JsZCpQQVNTRUQq
IiwKKyAgICAgICAgICAgICAgICAibnNfcGtnL3dvcmxkL3Rlc3Rfd29ybGQucHk6OnRlc3Rfb3Ro
ZXIqUEFTU0VEKiIsCisgICAgICAgICAgICAgICAgIio0IHBhc3NlZCBpbioiLAogICAgICAgICAg
ICAgXQogICAgICAgICApCiAKQEAgLTY4MSw2ICs3NDAsMTYgQEAgY2xhc3MgVGVzdEludm9jYXRp
b25WYXJpYW50cyhvYmplY3QpOgogICAgICAgICAgICAgWyIqdGVzdF93b3JsZC5weTo6dGVzdF9v
dGhlcipQQVNTRUQqIiwgIioxIHBhc3NlZCoiXQogICAgICAgICApCiAKKyAgICBkZWYgdGVzdF9p
bnZva2VfdGVzdF9hbmRfZG9jdGVzdG1vZHVsZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGRlZiB0
ZXN0KCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChzdHIocCkgKyAiOjp0ZXN0IiwgIi0tZG9j
dGVzdC1tb2R1bGVzIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEg
cGFzc2VkKiJdKQorCiAgICAgQHB5dGVzdC5tYXJrLnNraXBpZihub3QgaGFzYXR0cihvcywgInN5
bWxpbmsiKSwgcmVhc29uPSJyZXF1aXJlcyBzeW1saW5rcyIpCiAgICAgZGVmIHRlc3RfY21kbGlu
ZV9weXRob25fcGFja2FnZV9zeW1saW5rKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKICAg
ICAgICAgIiIiCkBAIC02OTksOCArNzY4LDYgQEAgY2xhc3MgVGVzdEludm9jYXRpb25WYXJpYW50
cyhvYmplY3QpOgogICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKHNpeC50ZXh0X3R5cGUoZS5h
cmdzWzBdKSkKICAgICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KCJQWVRIT05ET05UV1JJVEVCWVRF
Q09ERSIsIHJhaXNpbmc9RmFsc2UpCiAKLSAgICAgICAgc2VhcmNoX3BhdGggPSBbImxpYiIsIG9z
LnBhdGguam9pbigibG9jYWwiLCAibGliIildCi0KICAgICAgICAgZGlybmFtZSA9ICJsaWIiCiAg
ICAgICAgIGQgPSB0ZXN0ZGlyLm1rZGlyKGRpcm5hbWUpCiAgICAgICAgIGZvbyA9IGQubWtkaXIo
ImZvbyIpCkBAIC03MDgsMTAgKzc3NSwxMCBAQCBjbGFzcyBUZXN0SW52b2NhdGlvblZhcmlhbnRz
KG9iamVjdCk6CiAgICAgICAgIGxpYiA9IGZvby5ta2RpcigiYmFyIikKICAgICAgICAgbGliLmVu
c3VyZSgiX19pbml0X18ucHkiKQogICAgICAgICBsaWIuam9pbigidGVzdF9iYXIucHkiKS53cml0
ZSgKLSAgICAgICAgICAgICJkZWYgdGVzdF9iYXIoKTogcGFzc1xuIiAiZGVmIHRlc3Rfb3RoZXIo
YV9maXh0dXJlKTpwYXNzIgorICAgICAgICAgICAgImRlZiB0ZXN0X2JhcigpOiBwYXNzXG5kZWYg
dGVzdF9vdGhlcihhX2ZpeHR1cmUpOnBhc3MiCiAgICAgICAgICkKICAgICAgICAgbGliLmpvaW4o
ImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgICAgICAiaW1wb3J0IHB5dGVzdFxuIiAiQHB5
dGVzdC5maXh0dXJlXG4iICJkZWYgYV9maXh0dXJlKCk6cGFzcyIKKyAgICAgICAgICAgICJpbXBv
cnQgcHl0ZXN0XG5AcHl0ZXN0LmZpeHR1cmVcbmRlZiBhX2ZpeHR1cmUoKTpwYXNzIgogICAgICAg
ICApCiAKICAgICAgICAgZF9sb2NhbCA9IHRlc3RkaXIubWtkaXIoImxvY2FsIikKQEAgLTczMywy
NyArODAwLDMzIEBAIGNsYXNzIFRlc3RJbnZvY2F0aW9uVmFyaWFudHMob2JqZWN0KToKICAgICAg
ICAgIyAgICAgICAgICAgICDilJzilIDilIAgY29uZnRlc3QucHkKICAgICAgICAgIyAgICAgICAg
ICAgICDilJTilIDilIAgdGVzdF9iYXIucHkKIAotICAgICAgICBkZWYgam9pbl9weXRob25wYXRo
KCpkaXJzKToKLSAgICAgICAgICAgIGN1ciA9IG9zLmdldGVudigiUFlUSE9OUEFUSCIpCi0gICAg
ICAgICAgICBpZiBjdXI6Ci0gICAgICAgICAgICAgICAgZGlycyArPSAoY3VyLCkKLSAgICAgICAg
ICAgIHJldHVybiBvcy5wYXRoc2VwLmpvaW4oc3RyKHApIGZvciBwIGluIGRpcnMpCi0KLSAgICAg
ICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRIT05QQVRIIiwgam9pbl9weXRob25wYXRoKCpzZWFy
Y2hfcGF0aCkpCisgICAgICAgICMgTk9URTogdGhlIGRpZmZlcmVudC9yZXZlcnNlZCBvcmRlcmlu
ZyBpcyBpbnRlbnRpb25hbCBoZXJlLgorICAgICAgICBzZWFyY2hfcGF0aCA9IFsibGliIiwgb3Mu
cGF0aC5qb2luKCJsb2NhbCIsICJsaWIiKV0KKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQ
WVRIT05QQVRIIiwgcHJlcGVuZF9weXRob25wYXRoKCpzZWFyY2hfcGF0aCkpCiAgICAgICAgIGZv
ciBwIGluIHNlYXJjaF9wYXRoOgogICAgICAgICAgICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9wcmVw
ZW5kKHApCiAKICAgICAgICAgIyBtb2R1bGUgcGlja2VkIHVwIGluIHN5bWxpbmstZWQgZGlyZWN0
b3J5OgorICAgICAgICAjIEl0IHBpY2tzIHVwIGxvY2FsL2xpYi9mb28vYmFyIChzeW1saW5rKSB2
aWEgc3lzLnBhdGguCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXB5YXJn
cyIsICItdiIsICJmb28uYmFyIikKICAgICAgICAgdGVzdGRpci5jaGRpcigpCiAgICAgICAgIGFz
c2VydCByZXN1bHQucmV0ID09IDAKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICIqbGliL2Zvby9iYXIvdGVzdF9iYXIu
cHk6OnRlc3RfYmFyKlBBU1NFRCoiLAotICAgICAgICAgICAgICAgICIqbGliL2Zvby9iYXIvdGVz
dF9iYXIucHk6OnRlc3Rfb3RoZXIqUEFTU0VEKiIsCi0gICAgICAgICAgICAgICAgIioyIHBhc3Nl
ZCoiLAotICAgICAgICAgICAgXQotICAgICAgICApCisgICAgICAgIGlmIGhhc2F0dHIocHkucGF0
aC5sb2NhbCwgIm1rc3ltbGlua3RvIik6CisgICAgICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAibGliL2Zv
by9iYXIvdGVzdF9iYXIucHk6OnRlc3RfYmFyIFBBU1NFRCoiLAorICAgICAgICAgICAgICAgICAg
ICAibGliL2Zvby9iYXIvdGVzdF9iYXIucHk6OnRlc3Rfb3RoZXIgUEFTU0VEKiIsCisgICAgICAg
ICAgICAgICAgICAgICIqMiBwYXNzZWQqIiwKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAg
ICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgICAiKmxpYi9mb28vYmFy
L3Rlc3RfYmFyLnB5Ojp0ZXN0X2JhciBQQVNTRUQqIiwKKyAgICAgICAgICAgICAgICAgICAgIips
aWIvZm9vL2Jhci90ZXN0X2Jhci5weTo6dGVzdF9vdGhlciBQQVNTRUQqIiwKKyAgICAgICAgICAg
ICAgICAgICAgIioyIHBhc3NlZCoiLAorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICkK
IAogICAgIGRlZiB0ZXN0X2NtZGxpbmVfcHl0aG9uX3BhY2thZ2Vfbm90X2V4aXN0cyhzZWxmLCB0
ZXN0ZGlyKToKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tcHlhcmdzIiwg
InRwa2d3aGF0diIpCkBAIC03ODgsMTkgKzg2MSwyMiBAQCBjbGFzcyBUZXN0SW52b2NhdGlvblZh
cmlhbnRzKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcmYi
KQogICAgICAgICBsaW5lcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkuc3BsaXRsaW5lcygpCiAgICAg
ICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCJG
QUlMICIpOgotICAgICAgICAgICAgICAgIHRlc3RpZCA9IGxpbmVbNTpdLnN0cmlwKCkKKyAgICAg
ICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgoIkZBSUwgIiwgIkZBSUxFRCAiKSk6CisgICAgICAg
ICAgICAgICAgX2ZhaWwsIF9zZXAsIHRlc3RpZCA9IGxpbmUucGFydGl0aW9uKCIgIikKICAgICAg
ICAgICAgICAgICBicmVhawogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0
aWQsICItcmYiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoW2xpbmUsICIq
MSBmYWlsZWQqIl0pCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAg
ICAgICAgIFsiRkFJTEVEIHRlc3RfZG9jdGVzdF9pZC50eHQ6OnRlc3RfZG9jdGVzdF9pZC50eHQi
LCAiKjEgZmFpbGVkKiJdCisgICAgICAgICkKIAogICAgIGRlZiB0ZXN0X2NvcmVfYmFja3dhcmRf
Y29tcGF0aWJpbGl0eShzZWxmKToKICAgICAgICAgIiIiVGVzdCBiYWNrd2FyZCBjb21wYXRpYmls
aXR5IGZvciBnZXRfcGx1Z2luX21hbmFnZXIgZnVuY3Rpb24uIFNlZSAjNzg3LiIiIgogICAgICAg
ICBpbXBvcnQgX3B5dGVzdC5jb25maWcKIAotICAgICAgICBhc3NlcnQgdHlwZSgKLSAgICAgICAg
ICAgIF9weXRlc3QuY29uZmlnLmdldF9wbHVnaW5fbWFuYWdlcigpCi0gICAgICAgICkgaXMgX3B5
dGVzdC5jb25maWcuUHl0ZXN0UGx1Z2luTWFuYWdlcgorICAgICAgICBhc3NlcnQgKAorICAgICAg
ICAgICAgdHlwZShfcHl0ZXN0LmNvbmZpZy5nZXRfcGx1Z2luX21hbmFnZXIoKSkKKyAgICAgICAg
ICAgIGlzIF9weXRlc3QuY29uZmlnLlB5dGVzdFBsdWdpbk1hbmFnZXIKKyAgICAgICAgKQogCiAg
ICAgZGVmIHRlc3RfaGFzX3BsdWdpbihzZWxmLCByZXF1ZXN0KToKICAgICAgICAgIiIiVGVzdCBo
YXNwbHVnaW4gZnVuY3Rpb24gb2YgdGhlIHBsdWdpbiBtYW5hZ2VyICgjOTMyKS4iIiIKQEAgLTgy
Niw3ICs5MDIsMTAgQEAgY2xhc3MgVGVzdER1cmF0aW9ucyhvYmplY3QpOgogICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1kdXJhdGlvbnM9MTAiKQogICAgICAgICBhc3NlcnQg
cmVzdWx0LnJldCA9PSAwCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lc19yYW5k
b20oCi0gICAgICAgICAgICBbIipkdXJhdGlvbnMqIiwgIipjYWxsKnRlc3RfMyoiLCAiKmNhbGwq
dGVzdF8yKiIsICIqY2FsbCp0ZXN0XzEqIl0KKyAgICAgICAgICAgIFsiKmR1cmF0aW9ucyoiLCAi
KmNhbGwqdGVzdF8zKiIsICIqY2FsbCp0ZXN0XzIqIl0KKyAgICAgICAgKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbIigwLjAwIGR1cmF0aW9ucyBo
aWRkZW4uICBVc2UgLXZ2IHRvIHNob3cgdGhlc2UgZHVyYXRpb25zLikiXQogICAgICAgICApCiAK
ICAgICBkZWYgdGVzdF9jYWxsc19zaG93XzIoc2VsZiwgdGVzdGRpcik6CkBAIC04NDAsMTkgKzkx
OSwzMSBAQCBjbGFzcyBUZXN0RHVyYXRpb25zKG9iamVjdCk6CiAgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZShzZWxmLnNvdXJjZSkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tZHVyYXRpb25zPTAiKQogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAg
IGZvciB4IGluICIyMyI6CisgICAgICAgICAgICBmb3IgeSBpbiAoImNhbGwiLCk6ICAjICdzZXR1
cCcsICdjYWxsJywgJ3RlYXJkb3duJzoKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiByZXN1
bHQuc3Rkb3V0LmxpbmVzOgorICAgICAgICAgICAgICAgICAgICBpZiAoInRlc3RfJXMiICUgeCkg
aW4gbGluZSBhbmQgeSBpbiBsaW5lOgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25F
cnJvcigibm90IGZvdW5kIHt9IHt9Ii5mb3JtYXQoeCwgeSkpCisKKyAgICBkZWYgdGVzdF9jYWxs
c19zaG93YWxsX3ZlcmJvc2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZShzZWxmLnNvdXJjZSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
ZHVyYXRpb25zPTAiLCAiLXZ2IikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAogICAg
ICAgICBmb3IgeCBpbiAiMTIzIjoKICAgICAgICAgICAgIGZvciB5IGluICgiY2FsbCIsKTogICMg
J3NldHVwJywgJ2NhbGwnLCAndGVhcmRvd24nOgogICAgICAgICAgICAgICAgIGZvciBsaW5lIGlu
IHJlc3VsdC5zdGRvdXQubGluZXM6CiAgICAgICAgICAgICAgICAgICAgIGlmICgidGVzdF8lcyIg
JSB4KSBpbiBsaW5lIGFuZCB5IGluIGxpbmU6CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
awogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEFzc2Vy
dGlvbkVycm9yKCJub3QgZm91bmQgJXMgJXMiICUgKHgsIHkpKQorICAgICAgICAgICAgICAgICAg
ICByYWlzZSBBc3NlcnRpb25FcnJvcigibm90IGZvdW5kIHt9IHt9Ii5mb3JtYXQoeCwgeSkpCiAK
ICAgICBkZWYgdGVzdF93aXRoX2Rlc2VsZWN0ZWQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZShzZWxmLnNvdXJjZSkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoIi0tZHVyYXRpb25zPTIiLCAiLWsgdGVzdF8xIikKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi0tZHVyYXRpb25zPTIiLCAiLWsgdGVzdF8yIikKICAgICAgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWyIqZHVyYXRpb25zKiIsICIqY2FsbCp0ZXN0XzEqIl0pCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIipkdXJhdGlvbnMqIiwgIipjYWxsKnRlc3RfMioiXSkKIAogICAg
IGRlZiB0ZXN0X3dpdGhfZmFpbGluZ19jb2xsZWN0aW9uKHNlbGYsIHRlc3RkaXIpOgogICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoc2VsZi5zb3VyY2UpCkBAIC04NzIsMTMgKzk2MywxNSBAQCBj
bGFzcyBUZXN0RHVyYXRpb25zKG9iamVjdCk6CiAKIGNsYXNzIFRlc3REdXJhdGlvbldpdGhGaXh0
dXJlKG9iamVjdCk6CiAgICAgc291cmNlID0gIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKICAg
ICAgICAgaW1wb3J0IHRpbWUKLSAgICAgICAgZnJhZyA9IDAuMDAxCi0gICAgICAgIGRlZiBzZXR1
cF9mdW5jdGlvbihmdW5jKToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoZnJhZyAqIDMpCi0gICAg
ICAgIGRlZiB0ZXN0XzEoKToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoZnJhZyoyKQotICAgICAg
ICBkZWYgdGVzdF8yKCk6CisgICAgICAgIGZyYWcgPSAwLjAxCisKKyAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgIGRlZiBzZXR1cF9maXh0KCk6CisgICAgICAgICAgICB0aW1lLnNsZWVw
KGZyYWcpCisKKyAgICAgICAgZGVmIHRlc3RfMShzZXR1cF9maXh0KToKICAgICAgICAgICAgIHRp
bWUuc2xlZXAoZnJhZykKICAgICAiIiIKIApAQCAtOTMzLDYgKzEwMjYsMjAgQEAgZGVmIHRlc3Rf
aW1wb3J0X3BsdWdpbl91bmljb2RlX25hbWUodGVzdGRpcik6CiAgICAgYXNzZXJ0IHIucmV0ID09
IDAKIAogCitkZWYgdGVzdF9weXRlc3RfcGx1Z2luc19hc19tb2R1bGUodGVzdGRpcik6CisgICAg
IiIiRG8gbm90IHJhaXNlIGFuIGVycm9yIGlmIHB5dGVzdF9wbHVnaW5zIGF0dHJpYnV0ZSBpcyBh
IG1vZHVsZSAoIzM4OTkpIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAqKnsK
KyAgICAgICAgICAgICJfX2luaXRfXy5weSI6ICIiLAorICAgICAgICAgICAgInB5dGVzdF9wbHVn
aW5zLnB5IjogIiIsCisgICAgICAgICAgICAiY29uZnRlc3QucHkiOiAiZnJvbSAuIGltcG9ydCBw
eXRlc3RfcGx1Z2lucyIsCisgICAgICAgICAgICAidGVzdF9mb28ucHkiOiAiZGVmIHRlc3QoKTog
cGFzcyIsCisgICAgICAgIH0KKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMSBwYXNzZWQgaW4gKiJdKQor
CisKIGRlZiB0ZXN0X2RlZmVycmVkX2hvb2tfY2hlY2tpbmcodGVzdGRpcik6CiAgICAgIiIiCiAg
ICAgQ2hlY2sgaG9va3MgYXMgbGF0ZSBhcyBwb3NzaWJsZSAoIzE4MjEpLgpAQCAtMTA2NCwzICsx
MTcxLDQzIEBAIGRlZiB0ZXN0X2ZyYW1lX2xlYWtfb25fZmFpbGluZ190ZXN0KHRlc3RkaXIpOgog
ICAgICkKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBmYWlsZWQsIDEgcGFzc2VkIGluKiJdKQor
CisKK2RlZiB0ZXN0X2ZpeHR1cmVfbW9ja19pbnRlZ3JhdGlvbih0ZXN0ZGlyKToKKyAgICAiIiJU
ZXN0IHRoYXQgZGVjb3JhdG9ycyBhcHBsaWVkIHRvIGZpeHR1cmUgYXJlIGxlZnQgd29ya2luZyAo
IzM3NzQpIiIiCisgICAgcCA9IHRlc3RkaXIuY29weV9leGFtcGxlKCJhY2NlcHRhbmNlL2ZpeHR1
cmVfbW9ja19pbnRlZ3JhdGlvbi5weSIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
cCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKwor
ZGVmIHRlc3RfdXNhZ2VfZXJyb3JfY29kZSh0ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgiLXVua25vd24tb3B0aW9uLSIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
RVhJVF9VU0FHRUVSUk9SCisKKworQHB5dGVzdC5tYXJrLnNraXBpZigKKyAgICBzeXMudmVyc2lv
bl9pbmZvWzoyXSA8ICgzLCA1KSwgcmVhc29uPSJhc3luYyBkZWYgc3ludGF4IHB5dGhvbiAzLjUr
IG9ubHkiCispCitAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImRlZmF1bHQiKQorZGVmIHRl
c3Rfd2Fybl9vbl9hc3luY19mdW5jdGlvbih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCisgICAgICAgIHRlc3RfYXN5bmM9IiIiCisgICAgICAgIGFzeW5jIGRlZiB0ZXN0XzEoKToK
KyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgYXN5bmMgZGVmIHRlc3RfMigpOgorICAgICAgICAg
ICAgcGFzcworICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAg
ICAidGVzdF9hc3luYy5weTo6dGVzdF8xIiwKKyAgICAgICAgICAgICJ0ZXN0X2FzeW5jLnB5Ojp0
ZXN0XzIiLAorICAgICAgICAgICAgIipDb3JvdXRpbmUgZnVuY3Rpb25zIGFyZSBub3QgbmF0aXZl
bHkgc3VwcG9ydGVkKiIsCisgICAgICAgICAgICAiKjIgc2tpcHBlZCwgMiB3YXJuaW5ncyBpbioi
LAorICAgICAgICBdCisgICAgKQorICAgICMgZW5zdXJlIG91ciB3YXJuaW5nIG1lc3NhZ2UgYXBw
ZWFycyBvbmx5IG9uY2UKKyAgICBhc3NlcnQgKAorICAgICAgICByZXN1bHQuc3Rkb3V0LnN0cigp
LmNvdW50KCJDb3JvdXRpbmUgZnVuY3Rpb25zIGFyZSBub3QgbmF0aXZlbHkgc3VwcG9ydGVkIikg
PT0gMQorICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2Nv
ZGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9jb2RlLnB5CmluZGV4IGJmYWUz
NjkxODgyZWZhYzE2NGE0NWI4MWVkZTRlYjM0MDExMzdiNjAuLjBiNjNmY2Y0ZDQyMWQ4YmMzODNk
ZmUyYzY5ODg0NWRlMWQ2MTY0NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29k
ZS90ZXN0X2NvZGUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3RfY29kZS5w
eQpAQCAtMSwxMiArMSwyMCBAQAotIyBjb2Rpbmc6IHV0Zi04Ci1mcm9tIF9fZnV0dXJlX18gaW1w
b3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rp
bmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp
bnRfZnVuY3Rpb24KKwogaW1wb3J0IHN5cwogCitmcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCitm
cm9tIHRlc3RfZXhjaW5mbyBpbXBvcnQgVFdNb2NrCisKIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi1p
bXBvcnQgcHkKIGltcG9ydCBweXRlc3QKLWZyb20gdGVzdF9leGNpbmZvIGltcG9ydCBUV01vY2sK
LWZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKKwordHJ5OgorICAgIGltcG9ydCBtb2NrCitleGNl
cHQgSW1wb3J0RXJyb3I6CisgICAgaW1wb3J0IHVuaXR0ZXN0Lm1vY2sgYXMgbW9jawogCiAKIGRl
ZiB0ZXN0X25lKCk6CkBAIC0yNiwxNyArMzQsMTQgQEAgZGVmIHRlc3RfY29kZV9naXZlc19iYWNr
X25hbWVfZm9yX25vdF9leGlzdGluZ19maWxlKCk6CiAKIAogZGVmIHRlc3RfY29kZV93aXRoX2Ns
YXNzKCk6Ci0KICAgICBjbGFzcyBBKG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAotICAgIHB5dGVz
dC5yYWlzZXMoVHlwZUVycm9yLCAiX3B5dGVzdC5fY29kZS5Db2RlKEEpIikKLQorICAgIHB5dGVz
dC5yYWlzZXMoVHlwZUVycm9yLCBfcHl0ZXN0Ll9jb2RlLkNvZGUsIEEpCiAKLWlmIFRydWU6CiAK
LSAgICBkZWYgeCgpOgotICAgICAgICBwYXNzCitkZWYgeCgpOgorICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IoKQogCiAKIGRlZiB0ZXN0X2NvZGVfZnVsbHNvdXJjZSgpOgpAQCAtNDksMTIg
KzU0LDExIEBAIGRlZiB0ZXN0X2NvZGVfc291cmNlKCk6CiAgICAgY29kZSA9IF9weXRlc3QuX2Nv
ZGUuQ29kZSh4KQogICAgIHNyYyA9IGNvZGUuc291cmNlKCkKICAgICBleHBlY3RlZCA9ICIiImRl
ZiB4KCk6Ci0gICAgcGFzcyIiIgorICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKSIiIgog
ICAgIGFzc2VydCBzdHIoc3JjKSA9PSBleHBlY3RlZAogCiAKIGRlZiB0ZXN0X2ZyYW1lX2dldHNv
dXJjZWxpbmVub19teXNlbGYoKToKLQogICAgIGRlZiBmdW5jKCk6CiAgICAgICAgIHJldHVybiBz
eXMuX2dldGZyYW1lKDApCiAKQEAgLTY1LDE4ICs2OSwxMyBAQCBkZWYgdGVzdF9mcmFtZV9nZXRz
b3VyY2VsaW5lbm9fbXlzZWxmKCk6CiAKIAogZGVmIHRlc3RfZ2V0c3RhdGVtZW50X2VtcHR5X2Z1
bGxzb3VyY2UoKToKLQogICAgIGRlZiBmdW5jKCk6CiAgICAgICAgIHJldHVybiBzeXMuX2dldGZy
YW1lKDApCiAKICAgICBmID0gZnVuYygpCiAgICAgZiA9IF9weXRlc3QuX2NvZGUuRnJhbWUoZikK
LSAgICBwcm9wID0gZi5jb2RlLl9fY2xhc3NfXy5mdWxsc291cmNlCi0gICAgdHJ5OgotICAgICAg
ICBmLmNvZGUuX19jbGFzc19fLmZ1bGxzb3VyY2UgPSBOb25lCi0gICAgICAgIGFzc2VydCBmLnN0
YXRlbWVudCA9PSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIikKLSAgICBmaW5hbGx5OgotICAgICAg
ICBmLmNvZGUuX19jbGFzc19fLmZ1bGxzb3VyY2UgPSBwcm9wCisgICAgd2l0aCBtb2NrLnBhdGNo
Lm9iamVjdChmLmNvZGUuX19jbGFzc19fLCAiZnVsbHNvdXJjZSIsIE5vbmUpOgorICAgICAgICBh
c3NlcnQgZi5zdGF0ZW1lbnQgPT0gIiIKIAogCiBkZWYgdGVzdF9jb2RlX2Zyb21fZnVuYygpOgpA
QCAtODYsMjAgKzg1LDIwIEBAIGRlZiB0ZXN0X2NvZGVfZnJvbV9mdW5jKCk6CiAKIAogZGVmIHRl
c3RfdW5pY29kZV9oYW5kbGluZygpOgotICAgIHZhbHVlID0gcHkuYnVpbHRpbi5fdG90ZXh0KCJc
eGM0XHg4NVx4YzRceDg3XG4iLCAidXRmLTgiKS5lbmNvZGUoInV0ZjgiKQorICAgIHZhbHVlID0g
dSLEhcSHIi5lbmNvZGUoIlVURi04IikKIAogICAgIGRlZiBmKCk6CiAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbih2YWx1ZSkKIAogICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbiwg
ZikKLSAgICBzdHIoZXhjaW5mbykKLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKLSAg
ICAgICAgdGV4dF90eXBlKGV4Y2luZm8pCisgICAgdGV4dF90eXBlKGV4Y2luZm8pCisgICAgaWYg
c3lzLnZlcnNpb25faW5mbyA8ICgzLCk6CisgICAgICAgIGJ5dGVzKGV4Y2luZm8pCiAKIAogQHB5
dGVzdC5tYXJrLnNraXBpZihzeXMudmVyc2lvbl9pbmZvWzBdID49IDMsIHJlYXNvbj0icHl0aG9u
IDIgb25seSBpc3N1ZSIpCiBkZWYgdGVzdF91bmljb2RlX2hhbmRsaW5nX3N5bnRheF9lcnJvcigp
OgotICAgIHZhbHVlID0gcHkuYnVpbHRpbi5fdG90ZXh0KCJceGM0XHg4NVx4YzRceDg3XG4iLCAi
dXRmLTgiKS5lbmNvZGUoInV0ZjgiKQorICAgIHZhbHVlID0gdSLEhcSHIi5lbmNvZGUoIlVURi04
IikKIAogICAgIGRlZiBmKCk6CiAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKCJpbnZhbGlkIHN5
bnRheCIsIChOb25lLCAxLCAzLCB2YWx1ZSkpCkBAIC0xMTEsMzQgKzExMCwzMiBAQCBkZWYgdGVz
dF91bmljb2RlX2hhbmRsaW5nX3N5bnRheF9lcnJvcigpOgogCiAKIGRlZiB0ZXN0X2NvZGVfZ2V0
YXJncygpOgotCiAgICAgZGVmIGYxKHgpOgotICAgICAgICBwYXNzCisgICAgICAgIHJhaXNlIE5v
dEltcGxlbWVudGVkRXJyb3IoKQogCiAgICAgYzEgPSBfcHl0ZXN0Ll9jb2RlLkNvZGUoZjEpCiAg
ICAgYXNzZXJ0IGMxLmdldGFyZ3ModmFyPVRydWUpID09ICgieCIsKQogCiAgICAgZGVmIGYyKHgs
ICp5KToKLSAgICAgICAgcGFzcworICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkK
IAogICAgIGMyID0gX3B5dGVzdC5fY29kZS5Db2RlKGYyKQogICAgIGFzc2VydCBjMi5nZXRhcmdz
KHZhcj1UcnVlKSA9PSAoIngiLCAieSIpCiAKICAgICBkZWYgZjMoeCwgKip6KToKLSAgICAgICAg
cGFzcworICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKIAogICAgIGMzID0gX3B5
dGVzdC5fY29kZS5Db2RlKGYzKQogICAgIGFzc2VydCBjMy5nZXRhcmdzKHZhcj1UcnVlKSA9PSAo
IngiLCAieiIpCiAKICAgICBkZWYgZjQoeCwgKnksICoqeik6Ci0gICAgICAgIHBhc3MKKyAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCiAKICAgICBjNCA9IF9weXRlc3QuX2NvZGUu
Q29kZShmNCkKICAgICBhc3NlcnQgYzQuZ2V0YXJncyh2YXI9VHJ1ZSkgPT0gKCJ4IiwgInkiLCAi
eiIpCiAKIAogZGVmIHRlc3RfZnJhbWVfZ2V0YXJncygpOgotCiAgICAgZGVmIGYxKHgpOgogICAg
ICAgICByZXR1cm4gc3lzLl9nZXRmcmFtZSgwKQogCkBAIC0xNjUsNyArMTYyLDYgQEAgZGVmIHRl
c3RfZnJhbWVfZ2V0YXJncygpOgogCiAKIGNsYXNzIFRlc3RFeGNlcHRpb25JbmZvKG9iamVjdCk6
Ci0KICAgICBkZWYgdGVzdF9iYWRfZ2V0c291cmNlKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICBpZiBGYWxzZToKQEAgLTE3MywxMiArMTY5LDE1IEBAIGNsYXNzIFRlc3RFeGNlcHRp
b25JbmZvKG9iamVjdCk6CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGFzc2Vy
dCBGYWxzZQogICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6Ci0gICAgICAgICAgICBleGNp
ID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgICAgIGV4Y2kgPSBfcHl0
ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8uZnJvbV9jdXJyZW50KCkKICAgICAgICAgYXNzZXJ0IGV4
Y2kuZ2V0cmVwcigpCiAKKyAgICBkZWYgdGVzdF9mcm9tX2N1cnJlbnRfd2l0aF9taXNzaW5nKHNl
bGYpOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIG1hdGNoPSJu
byBjdXJyZW50IGV4Y2VwdGlvbiIpOgorICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5FeGNlcHRp
b25JbmZvLmZyb21fY3VycmVudCgpCiAKLWNsYXNzIFRlc3RUcmFjZWJhY2tFbnRyeShvYmplY3Qp
OgogCitjbGFzcyBUZXN0VHJhY2ViYWNrRW50cnkob2JqZWN0KToKICAgICBkZWYgdGVzdF9nZXRz
b3VyY2Uoc2VsZik6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlmIEZhbHNlOgpAQCAtMTg2
LDcgKzE4NSw3IEBAIGNsYXNzIFRlc3RUcmFjZWJhY2tFbnRyeShvYmplY3QpOgogICAgICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKICAgICAgICAgZXhjZXB0IEFz
c2VydGlvbkVycm9yOgotICAgICAgICAgICAgZXhjaSA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9u
SW5mbygpCisgICAgICAgICAgICBleGNpID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZy
b21fY3VycmVudCgpCiAgICAgICAgIGVudHJ5ID0gZXhjaS50cmFjZWJhY2tbMF0KICAgICAgICAg
c291cmNlID0gZW50cnkuZ2V0c291cmNlKCkKICAgICAgICAgYXNzZXJ0IGxlbihzb3VyY2UpID09
IDYKQEAgLTE5NCwxNyArMTkzLDE5IEBAIGNsYXNzIFRlc3RUcmFjZWJhY2tFbnRyeShvYmplY3Qp
OgogCiAKIGNsYXNzIFRlc3RSZXByRnVuY0FyZ3Mob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X25v
dF9yYWlzZV9leGNlcHRpb25fd2l0aF9taXhlZF9lbmNvZGluZyhzZWxmKToKICAgICAgICAgZnJv
bSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFJlcHJGdW5jQXJncwogCiAgICAgICAgIHR3ID0g
VFdNb2NrKCkKIAotICAgICAgICBhcmdzID0gWygidW5pY29kZV9zdHJpbmciLCB1IlPDo28gUGF1
bG8iKSwgKCJ1dGY4X3N0cmluZyIsICJTXHhjM1x4YTNvIFBhdWxvIildCisgICAgICAgIGFyZ3Mg
PSBbKCJ1bmljb2RlX3N0cmluZyIsIHUiU8OjbyBQYXVsbyIpLCAoInV0Zjhfc3RyaW5nIiwgYiJT
XHhjM1x4YTNvIFBhdWxvIildCiAKICAgICAgICAgciA9IFJlcHJGdW5jQXJncyhhcmdzKQogICAg
ICAgICByLnRvdGVybWluYWwodHcpCiAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPj0g
MzoKLSAgICAgICAgICAgIGFzc2VydCB0dy5saW5lc1swXSA9PSAidW5pY29kZV9zdHJpbmcgPSBT
w6NvIFBhdWxvLCB1dGY4X3N0cmluZyA9IFPDg8KjbyBQYXVsbyIKKyAgICAgICAgICAgIGFzc2Vy
dCAoCisgICAgICAgICAgICAgICAgdHcubGluZXNbMF0KKyAgICAgICAgICAgICAgICA9PSByInVu
aWNvZGVfc3RyaW5nID0gU8OjbyBQYXVsbywgdXRmOF9zdHJpbmcgPSBiJ1NceGMzXHhhM28gUGF1
bG8nIgorICAgICAgICAgICAgKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgYXNzZXJ0IHR3
LmxpbmVzWzBdID09ICJ1bmljb2RlX3N0cmluZyA9IFPDo28gUGF1bG8sIHV0Zjhfc3RyaW5nID0g
U8OjbyBQYXVsbyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2V4
Y2luZm8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5CmluZGV4
IGY0MDQ0YjZlY2M0NDg5ZTMzZTMyMDliMzY3YzQ1MDU4NjI4ODY3MDEuLmE3Njc5NzMwMWRkZDU0
NzMyNzFiN2VkNTNhNjJhYzY5NjA5MThhYmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvY29kZS90ZXN0X2V4Y2luZm8ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rl
c3RfZXhjaW5mby5weQpAQCAtMSwyMSArMSwyMyBAQAogIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0K
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1
bmN0aW9uCiAKIGltcG9ydCBvcGVyYXRvcgogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCi1pbXBvcnQg
X3B5dGVzdAoraW1wb3J0IHRleHR3cmFwCisKIGltcG9ydCBweQotaW1wb3J0IHB5dGVzdAotZnJv
bSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0ICgKLSAgICBFeGNlcHRpb25JbmZvLAotICAgIEZv
cm1hdHRlZEV4Y2luZm8sCi0gICAgUmVwckV4Y2VwdGlvbkluZm8sCi0gICAgRXhjZXB0aW9uQ2hh
aW5SZXByLAotKQoraW1wb3J0IHNpeAogZnJvbSBzaXgubW92ZXMgaW1wb3J0IHF1ZXVlCiAKLWZy
b20gdGVzdF9zb3VyY2UgaW1wb3J0IGFzdG9ubHkKK2ltcG9ydCBfcHl0ZXN0CitpbXBvcnQgcHl0
ZXN0Citmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgRXhjZXB0aW9uQ2hhaW5SZXByCitm
cm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgRXhjZXB0aW9uSW5mbworZnJvbSBfcHl0ZXN0
Ll9jb2RlLmNvZGUgaW1wb3J0IEZvcm1hdHRlZEV4Y2luZm8KK2Zyb20gX3B5dGVzdC5fY29kZS5j
b2RlIGltcG9ydCBSZXByRXhjZXB0aW9uSW5mbwogCiB0cnk6CiAgICAgaW1wb3J0IGltcG9ydGxp
YgpAQCAtMjksNiArMzEsMTQgQEAgZmFpbHNvbmp5dGhvbiA9IHB5dGVzdC5tYXJrLnhmYWlsKCJz
eXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnamF2YScpIikKIHB5dGVzdF92ZXJzaW9uX2luZm8gPSB0
dXBsZShtYXAoaW50LCBweXRlc3QuX192ZXJzaW9uX18uc3BsaXQoIi4iKVs6M10pKQogCiAKK0Bw
eXRlc3QuZml4dHVyZQorZGVmIGxpbWl0ZWRfcmVjdXJzaW9uX2RlcHRoKCk6CisgICAgYmVmb3Jl
ID0gc3lzLmdldHJlY3Vyc2lvbmxpbWl0KCkKKyAgICBzeXMuc2V0cmVjdXJzaW9ubGltaXQoMTUw
KQorICAgIHlpZWxkCisgICAgc3lzLnNldHJlY3Vyc2lvbmxpbWl0KGJlZm9yZSkKKworCiBjbGFz
cyBUV01vY2sob2JqZWN0KToKICAgICBXUklURSA9IG9iamVjdCgpCiAKQEAgLTYwLDEyICs3MCwx
MSBAQCBkZWYgdGVzdF9leGNpbmZvX3NpbXBsZSgpOgogICAgIHRyeToKICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcgogICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICBpbmZvID0gX3B5dGVz
dC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhj
ZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKQogICAgIGFzc2VydCBpbmZvLnR5cGUgPT0gVmFsdWVF
cnJvcgogCiAKIGRlZiB0ZXN0X2V4Y2luZm9fZ2V0c3RhdGVtZW50KCk6Ci0KICAgICBkZWYgZygp
OgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yCiAKQEAgLTc1LDcgKzg0LDcgQEAgZGVmIHRlc3Rf
ZXhjaW5mb19nZXRzdGF0ZW1lbnQoKToKICAgICB0cnk6CiAgICAgICAgIGYoKQogICAgIGV4Y2Vw
dCBWYWx1ZUVycm9yOgotICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25J
bmZvKCkKKyAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9t
X2N1cnJlbnQoKQogICAgIGxpbmVudW1iZXJzID0gWwogICAgICAgICBfcHl0ZXN0Ll9jb2RlLmdl
dHJhd2NvZGUoZikuY29fZmlyc3RsaW5lbm8gLSAxICsgNCwKICAgICAgICAgX3B5dGVzdC5fY29k
ZS5nZXRyYXdjb2RlKGYpLmNvX2ZpcnN0bGluZW5vIC0gMSArIDEsCkBAIC0xMTIsMTIgKzEyMSwx
MSBAQCBkZWYgaCgpOgogCiAKIGNsYXNzIFRlc3RUcmFjZWJhY2tfZl9nX2gob2JqZWN0KToKLQog
ICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZiwgbWV0aG9kKToKICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgaCgpCiAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgc2VsZi5l
eGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgICAgIHNlbGYu
ZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKQogCiAg
ICAgZGVmIHRlc3RfdHJhY2ViYWNrX2VudHJpZXMoc2VsZik6CiAgICAgICAgIHRiID0gc2VsZi5l
eGNpbmZvLnRyYWNlYmFjawpAQCAtMTM4LDcgKzE0Niw2IEBAIGNsYXNzIFRlc3RUcmFjZWJhY2tf
Zl9nX2gob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHMuc3RhcnRzd2l0aCgiZGVmIGYoKToiKQog
ICAgICAgICBhc3NlcnQgcy5lbmRzd2l0aCgicmFpc2UgVmFsdWVFcnJvciIpCiAKLSAgICBAYXN0
b25seQogICAgIEBmYWlsc29uanl0aG9uCiAgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2VudHJ5X2dl
dHNvdXJjZV9pbl9jb25zdHJ1Y3Qoc2VsZik6CiAgICAgICAgIHNvdXJjZSA9IF9weXRlc3QuX2Nv
ZGUuU291cmNlKApAQCAtMTQ5LDEyICsxNTYsMTIgQEAgY2xhc3MgVGVzdFRyYWNlYmFja19mX2df
aChvYmplY3QpOgogICAgICAgICAgICAgICAgIGV4Y2VwdCBzb21lbm9uYW1lOgogICAgICAgICAg
ICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICB4eXooKQotICAgICAgICAiIiIKKyAgICAgICAg
ICAgICIiIgogICAgICAgICApCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGV4ZWMoc291cmNl
LmNvbXBpbGUoKSkKICAgICAgICAgZXhjZXB0IE5hbWVFcnJvcjoKLSAgICAgICAgICAgIHRiID0g
X3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkudHJhY2ViYWNrCisgICAgICAgICAgICB0YiA9
IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKS50cmFjZWJhY2sKICAg
ICAgICAgICAgIHByaW50KHRiWy0xXS5nZXRzb3VyY2UoKSkKICAgICAgICAgICAgIHMgPSBzdHIo
dGJbLTFdLmdldHNvdXJjZSgpKQogICAgICAgICAgICAgYXNzZXJ0IHMuc3RhcnRzd2l0aCgiZGVm
IHh5eigpOlxuICAgIHRyeToiKQpAQCAtMTcxLDcgKzE3OCw4IEBAIGNsYXNzIFRlc3RUcmFjZWJh
Y2tfZl9nX2gob2JqZWN0KToKIAogICAgIGRlZiB0ZXN0X3RyYWNlYmFja19jdXRfZXhjbHVkZXBh
dGgoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiBm
KCk6IHJhaXNlIFZhbHVlRXJyb3IiKQotICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhW
YWx1ZUVycm9yLCAicC5weWltcG9ydCgpLmYoKSIpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhWYWx1ZUVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICAgICAgcC5weWltcG9ydCgpLmYoKQog
ICAgICAgICBiYXNlZGlyID0gcHkucGF0aC5sb2NhbChweXRlc3QuX19maWxlX18pLmRpcnBhdGgo
KQogICAgICAgICBuZXd0cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5jdXQoZXhjbHVkZXBh
dGg9YmFzZWRpcikKICAgICAgICAgZm9yIHggaW4gbmV3dHJhY2ViYWNrOgpAQCAtMTk0LDcgKzIw
Miw2IEBAIGNsYXNzIFRlc3RUcmFjZWJhY2tfZl9nX2gob2JqZWN0KToKICAgICAgICAgXSwKICAg
ICApCiAgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2ZpbHRlcl9zZWxlY3RpdmUoc2VsZiwgdHJhY2Vi
YWNraGlkZSwgbWF0Y2hpbmcpOgotCiAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICAjCiAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCkBAIC0yMjQsNyArMjMxLDYgQEAgY2xhc3MgVGVz
dFRyYWNlYmFja19mX2dfaChvYmplY3QpOgogICAgICAgICAgICAgYXNzZXJ0IGxlbihudHJhY2Vi
YWNrKSA9PSBsZW4odHJhY2ViYWNrKSAtIDEKIAogICAgIGRlZiB0ZXN0X3RyYWNlYmFja19yZWN1
cnNpb25faW5kZXgoc2VsZik6Ci0KICAgICAgICAgZGVmIGYobik6CiAgICAgICAgICAgICBpZiBu
IDwgMTA6CiAgICAgICAgICAgICAgICAgbiArPSAxCkBAIC0yMzYsMTkgKzI0MiwxNyBAQCBjbGFz
cyBUZXN0VHJhY2ViYWNrX2ZfZ19oKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCByZWNpbmRleCA9
PSAzCiAKICAgICBkZWYgdGVzdF90cmFjZWJhY2tfb25seV9zcGVjaWZpY19yZWN1cnNpb25fZXJy
b3JzKHNlbGYsIG1vbmtleXBhdGNoKToKLQogICAgICAgICBkZWYgZihuKToKICAgICAgICAgICAg
IGlmIG4gPT0gMDoKICAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImhlbGxvIikK
ICAgICAgICAgICAgIGYobiAtIDEpCiAKLSAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMo
UnVudGltZUVycm9yLCBmLCAxMDApCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFJ1
bnRpbWVFcnJvciwgZiwgMjUpCiAgICAgICAgIG1vbmtleXBhdGNoLmRlbGF0dHIoZXhjaW5mby50
cmFjZWJhY2suX19jbGFzc19fLCAicmVjdXJzaW9uaW5kZXgiKQogICAgICAgICByZXByID0gZXhj
aW5mby5nZXRyZXByKCkKICAgICAgICAgYXNzZXJ0ICJSdW50aW1lRXJyb3I6IGhlbGxvIiBpbiBz
dHIocmVwci5yZXByY3Jhc2gpCiAKICAgICBkZWYgdGVzdF90cmFjZWJhY2tfbm9fcmVjdXJzaW9u
X2luZGV4KHNlbGYpOgotCiAgICAgICAgIGRlZiBkb19zdHVmZigpOgogICAgICAgICAgICAgcmFp
c2UgUnVudGltZUVycm9yCiAKQEAgLTI1Niw3ICsyNjAsNyBAQCBjbGFzcyBUZXN0VHJhY2ViYWNr
X2ZfZ19oKG9iamVjdCk6CiAgICAgICAgICAgICBpbXBvcnQgc3lzCiAKICAgICAgICAgICAgIGV4
YywgdmFsLCB0YiA9IHN5cy5leGNfaW5mbygpCi0gICAgICAgICAgICBweS5idWlsdGluLl9yZXJh
aXNlKGV4YywgdmFsLCB0YikKKyAgICAgICAgICAgIHNpeC5yZXJhaXNlKGV4YywgdmFsLCB0YikK
IAogICAgICAgICBkZWYgZihuKToKICAgICAgICAgICAgIHRyeToKQEAgLTI3NCw3ICsyNzgsNyBA
QCBjbGFzcyBUZXN0VHJhY2ViYWNrX2ZfZ19oKG9iamVjdCk6CiAgICAgICAgIGRlY29yYXRvciA9
IHB5dGVzdC5pbXBvcnRvcnNraXAoImRlY29yYXRvciIpLmRlY29yYXRvcgogCiAgICAgICAgIGRl
ZiBsb2coZiwgKmssICoqa3cpOgotICAgICAgICAgICAgcHJpbnQoIiVzICVzIiAlIChrLCBrdykp
CisgICAgICAgICAgICBwcmludCgie30ge30iLmZvcm1hdChrLCBrdykpCiAgICAgICAgICAgICBm
KCprLCAqKmt3KQogCiAgICAgICAgIGxvZyA9IGRlY29yYXRvcihsb2cpCkBAIC0yODgsNyArMjky
LDYgQEAgY2xhc3MgVGVzdFRyYWNlYmFja19mX2dfaChvYmplY3QpOgogICAgICAgICBhc3NlcnQg
ZXhjaW5mby50cmFjZWJhY2sucmVjdXJzaW9uaW5kZXgoKSBpcyBOb25lCiAKICAgICBkZWYgdGVz
dF90cmFjZWJhY2tfZ2V0Y3Jhc2hlbnRyeShzZWxmKToKLQogICAgICAgICBkZWYgaSgpOgogICAg
ICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCiAgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yCkBAIC0zMTIsNyArMzE1LDYgQEAgY2xhc3MgVGVzdFRyYWNlYmFja19mX2dfaChvYmpl
Y3QpOgogICAgICAgICBhc3NlcnQgZW50cnkuZnJhbWUuY29kZS5uYW1lID09ICJoIgogCiAgICAg
ZGVmIHRlc3RfdHJhY2ViYWNrX2dldGNyYXNoZW50cnlfZW1wdHkoc2VsZik6Ci0KICAgICAgICAg
ZGVmIGcoKToKICAgICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQogICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcgpAQCAtMzMzLDcgKzMzNSw4IEBAIGNsYXNzIFRlc3RUcmFjZWJh
Y2tfZl9nX2gob2JqZWN0KToKIGRlZiB0ZXN0X2V4Y2luZm9fZXhjb25seSgpOgogICAgIGV4Y2lu
Zm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGgpCiAgICAgYXNzZXJ0IGV4Y2luZm8uZXhj
b25seSgpLnN0YXJ0c3dpdGgoIlZhbHVlRXJyb3IiKQotICAgIGV4Y2luZm8gPSBweXRlc3QucmFp
c2VzKFZhbHVlRXJyb3IsICJyYWlzZSBWYWx1ZUVycm9yKCdoZWxsb1xcbndvcmxkJykiKQorICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCJoZWxsb1xud29ybGQiKQogICAgIG1zZyA9IGV4Y2luZm8uZXhjb25seSh0
cnlzaG9ydD1UcnVlKQogICAgIGFzc2VydCBtc2cuc3RhcnRzd2l0aCgiVmFsdWVFcnJvciIpCiAg
ICAgYXNzZXJ0IG1zZy5lbmRzd2l0aCgid29ybGQiKQpAQCAtMzUzLDYgKzM1NiwxMiBAQCBkZWYg
dGVzdF9leGNpbmZvX3N0cigpOgogICAgIGFzc2VydCBsZW4ocy5zcGxpdCgiOiIpKSA+PSAzICAj
IG9uIHdpbmRvd3MgaXQncyA0CiAKIAorZGVmIHRlc3RfZXhjaW5mb19mb3JfbGF0ZXIoKToKKyAg
ICBlID0gRXhjZXB0aW9uSW5mby5mb3JfbGF0ZXIoKQorICAgIGFzc2VydCAiZm9yIHJhaXNlcyIg
aW4gcmVwcihlKQorICAgIGFzc2VydCAiZm9yIHJhaXNlcyIgaW4gc3RyKGUpCisKKwogZGVmIHRl
c3RfZXhjaW5mb19lcnJpc2luc3RhbmNlKCk6CiAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMo
VmFsdWVFcnJvciwgaCkKICAgICBhc3NlcnQgZXhjaW5mby5lcnJpc2luc3RhbmNlKFZhbHVlRXJy
b3IpCkBAIC0zNjIsNyArMzcxLDcgQEAgZGVmIHRlc3RfZXhjaW5mb19ub19zb3VyY2Vjb2RlKCk6
CiAgICAgdHJ5OgogICAgICAgICBleGVjKCJyYWlzZSBWYWx1ZUVycm9yKCkiKQogICAgIGV4Y2Vw
dCBWYWx1ZUVycm9yOgotICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25J
bmZvKCkKKyAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9t
X2N1cnJlbnQoKQogICAgIHMgPSBzdHIoZXhjaW5mby50cmFjZWJhY2tbLTFdKQogICAgIGFzc2Vy
dCBzID09ICIgIEZpbGUgJzxzdHJpbmc+JzoxIGluIDxtb2R1bGU+XG4gID8/P1xuIgogCkBAIC0z
ODcsNyArMzk2LDcgQEAgZGVmIHRlc3RfZW50cnlzb3VyY2VfUXVldWVfZXhhbXBsZSgpOgogICAg
IHRyeToKICAgICAgICAgcXVldWUuUXVldWUoKS5nZXQodGltZW91dD0wLjAwMSkKICAgICBleGNl
cHQgcXVldWUuRW1wdHk6Ci0gICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlv
bkluZm8oKQorICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZy
b21fY3VycmVudCgpCiAgICAgZW50cnkgPSBleGNpbmZvLnRyYWNlYmFja1stMV0KICAgICBzb3Vy
Y2UgPSBlbnRyeS5nZXRzb3VyY2UoKQogICAgIGFzc2VydCBzb3VyY2UgaXMgbm90IE5vbmUKQEAg
LTM5OSw3ICs0MDgsNyBAQCBkZWYgdGVzdF9jb2RlcGF0aF9RdWV1ZV9leGFtcGxlKCk6CiAgICAg
dHJ5OgogICAgICAgICBxdWV1ZS5RdWV1ZSgpLmdldCh0aW1lb3V0PTAuMDAxKQogICAgIGV4Y2Vw
dCBxdWV1ZS5FbXB0eToKLSAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9u
SW5mbygpCisgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8uZnJv
bV9jdXJyZW50KCkKICAgICBlbnRyeSA9IGV4Y2luZm8udHJhY2ViYWNrWy0xXQogICAgIHBhdGgg
PSBlbnRyeS5wYXRoCiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocGF0aCwgcHkucGF0aC5sb2NhbCkK
QEAgLTQyOSwxMiArNDM4LDEwIEBAIGRlZiB0ZXN0X21hdGNoX3JhaXNlc19lcnJvcih0ZXN0ZGly
KToKIAogCiBjbGFzcyBUZXN0Rm9ybWF0dGVkRXhjaW5mbyhvYmplY3QpOgotCiAgICAgQHB5dGVz
dC5maXh0dXJlCi0gICAgZGVmIGltcG9ydGFzbW9kKHNlbGYsIHJlcXVlc3QpOgotCisgICAgZGVm
IGltcG9ydGFzbW9kKHNlbGYsIHJlcXVlc3QsIF9zeXNfc25hcHNob3QpOgogICAgICAgICBkZWYg
aW1wb3J0YXNtb2Qoc291cmNlKToKLSAgICAgICAgICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUu
U291cmNlKHNvdXJjZSkKKyAgICAgICAgICAgIHNvdXJjZSA9IHRleHR3cmFwLmRlZGVudChzb3Vy
Y2UpCiAgICAgICAgICAgICB0bXBkaXIgPSByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgidG1wZGly
IikKICAgICAgICAgICAgIG1vZHBhdGggPSB0bXBkaXIuam9pbigibW9kLnB5IikKICAgICAgICAg
ICAgIHRtcGRpci5lbnN1cmUoIl9faW5pdF9fLnB5IikKQEAgLTQ1MiwxNiArNDU5LDE2IEBAIGNs
YXNzIFRlc3RGb3JtYXR0ZWRFeGNpbmZvKG9iamVjdCk6CiAgICAgICAgIGV4Y2VwdCBLZXlib2Fy
ZEludGVycnVwdDoKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGV4Y2VwdDogICMgbm9xYQot
ICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAg
ICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCiAg
ICAgICAgIGFzc2VydCAwLCAiZGlkIG5vdCByYWlzZSIKIAogICAgIGRlZiB0ZXN0X3JlcHJfc291
cmNlKHNlbGYpOgogICAgICAgICBwciA9IEZvcm1hdHRlZEV4Y2luZm8oKQogICAgICAgICBzb3Vy
Y2UgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKLSAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
IiIiXAogICAgICAgICAgICAgZGVmIGYoeCk6CiAgICAgICAgICAgICAgICAgcGFzcwotICAgICAg
ICAiIiIKKyAgICAgICAgICAgICIiIgogICAgICAgICApLnN0cmlwKCkKICAgICAgICAgcHIuZmxv
d19tYXJrZXIgPSAifCIKICAgICAgICAgbGluZXMgPSBwci5nZXRfc291cmNlKHNvdXJjZSwgMCkK
QEAgLTQ5MCw3ICs0OTcsNyBAQCBjbGFzcyBUZXN0Rm9ybWF0dGVkRXhjaW5mbyhvYmplY3QpOgog
ICAgICAgICB0cnk6CiAgICAgICAgICAgICBleGVjKGNvKQogICAgICAgICBleGNlcHQgVmFsdWVF
cnJvcjoKLSAgICAgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8o
KQorICAgICAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mby5mcm9t
X2N1cnJlbnQoKQogICAgICAgICByZXByID0gcHIucmVwcl9leGNpbmZvKGV4Y2luZm8pCiAgICAg
ICAgIGFzc2VydCByZXByLnJlcHJ0cmFjZWJhY2sucmVwcmVudHJpZXNbMV0ubGluZXNbMF0gPT0g
Ij4gICA/Pz8iCiAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKQEAgLTUwOSw3
ICs1MTYsNyBAQCByYWlzZSBWYWx1ZUVycm9yKCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
ZXhlYyhjbykKICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICBleGNpbmZv
ID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgICAgIGV4Y2luZm8gPSBf
cHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8uZnJvbV9jdXJyZW50KCkKICAgICAgICAgcmVwciA9
IHByLnJlcHJfZXhjaW5mbyhleGNpbmZvKQogICAgICAgICBhc3NlcnQgcmVwci5yZXBydHJhY2Vi
YWNrLnJlcHJlbnRyaWVzWzFdLmxpbmVzWzBdID09ICI+ICAgPz8/IgogICAgICAgICBpZiBzeXMu
dmVyc2lvbl9pbmZvWzBdID49IDM6CkBAIC01MTksNyArNTI2LDYgQEAgcmFpc2UgVmFsdWVFcnJv
cigpCiAgICAgICAgIHByID0gRm9ybWF0dGVkRXhjaW5mbygpCiAKICAgICAgICAgY2xhc3MgRmFr
ZUNvZGUob2JqZWN0KToKLQogICAgICAgICAgICAgY2xhc3MgcmF3KG9iamVjdCk6CiAgICAgICAg
ICAgICAgICAgY29fZmlsZW5hbWUgPSAiPyIKIApAQCAtNTM3LDcgKzU0Myw2IEBAIHJhaXNlIFZh
bHVlRXJyb3IoKQogICAgICAgICAgICAgZl9nbG9iYWxzID0ge30KIAogICAgICAgICBjbGFzcyBG
YWtlVHJhY2ViYWNrRW50cnkoX3B5dGVzdC5fY29kZS5UcmFjZWJhY2suRW50cnkpOgotCiAgICAg
ICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgdGIsIGV4Y2luZm89Tm9uZSk6CiAgICAgICAgICAg
ICAgICAgc2VsZi5saW5lbm8gPSA1ICsgMwogCkBAIC01OTEsNiArNTk2LDQ3IEBAIHJhaXNlIFZh
bHVlRXJyb3IoKQogICAgICAgICBhc3NlcnQgcmVwcmxvY2Fscy5saW5lc1syXSA9PSAieSAgICAg
ICAgICA9IDUiCiAgICAgICAgIGFzc2VydCByZXBybG9jYWxzLmxpbmVzWzNdID09ICJ6ICAgICAg
ICAgID0gNyIKIAorICAgIGRlZiB0ZXN0X3JlcHJfbG9jYWxfd2l0aF9lcnJvcihzZWxmKToKKyAg
ICAgICAgY2xhc3MgT2JqV2l0aEVycm9ySW5SZXByOgorICAgICAgICAgICAgZGVmIF9fcmVwcl9f
KHNlbGYpOgorICAgICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAg
ICAgICBwID0gRm9ybWF0dGVkRXhjaW5mbyhzaG93bG9jYWxzPVRydWUsIHRydW5jYXRlX2xvY2Fs
cz1GYWxzZSkKKyAgICAgICAgbG9jID0geyJ4IjogT2JqV2l0aEVycm9ySW5SZXByKCksICJfX2J1
aWx0aW5zX18iOiB7fX0KKyAgICAgICAgcmVwcmxvY2FscyA9IHAucmVwcl9sb2NhbHMobG9jKQor
ICAgICAgICBhc3NlcnQgcmVwcmxvY2Fscy5saW5lcworICAgICAgICBhc3NlcnQgcmVwcmxvY2Fs
cy5saW5lc1swXSA9PSAiX19idWlsdGluc19fID0gPGJ1aWx0aW5zPiIKKyAgICAgICAgYXNzZXJ0
ICdbTm90SW1wbGVtZW50ZWRFcnJvcigiIikgcmFpc2VkIGluIHJlcHIoKV0nIGluIHJlcHJsb2Nh
bHMubGluZXNbMV0KKworICAgIGRlZiB0ZXN0X3JlcHJfbG9jYWxfd2l0aF9leGNlcHRpb25faW5f
Y2xhc3NfcHJvcGVydHkoc2VsZik6CisgICAgICAgIGNsYXNzIEV4Y2VwdGlvbldpdGhCcm9rZW5D
bGFzcyhFeGNlcHRpb24pOgorICAgICAgICAgICAgQHByb3BlcnR5CisgICAgICAgICAgICBkZWYg
X19jbGFzc19fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiYm9vbSEi
KQorCisgICAgICAgIGNsYXNzIE9ialdpdGhFcnJvckluUmVwcjoKKyAgICAgICAgICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb25XaXRoQnJva2Vu
Q2xhc3MoKQorCisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHNob3dsb2NhbHM9VHJ1ZSwg
dHJ1bmNhdGVfbG9jYWxzPUZhbHNlKQorICAgICAgICBsb2MgPSB7IngiOiBPYmpXaXRoRXJyb3JJ
blJlcHIoKSwgIl9fYnVpbHRpbnNfXyI6IHt9fQorICAgICAgICByZXBybG9jYWxzID0gcC5yZXBy
X2xvY2Fscyhsb2MpCisgICAgICAgIGFzc2VydCByZXBybG9jYWxzLmxpbmVzCisgICAgICAgIGFz
c2VydCByZXBybG9jYWxzLmxpbmVzWzBdID09ICJfX2J1aWx0aW5zX18gPSA8YnVpbHRpbnM+Igor
ICAgICAgICBhc3NlcnQgJ1tFeGNlcHRpb25XaXRoQnJva2VuQ2xhc3MoIiIpIHJhaXNlZCBpbiBy
ZXByKCldJyBpbiByZXBybG9jYWxzLmxpbmVzWzFdCisKKyAgICBkZWYgdGVzdF9yZXByX2xvY2Fs
X3RydW5jYXRlZChzZWxmKToKKyAgICAgICAgbG9jID0geyJsIjogW2kgZm9yIGkgaW4gcmFuZ2Uo
MTApXX0KKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oc2hvd2xvY2Fscz1UcnVlKQorICAg
ICAgICB0cnVuY2F0ZWRfcmVwcmxvY2FscyA9IHAucmVwcl9sb2NhbHMobG9jKQorICAgICAgICBh
c3NlcnQgdHJ1bmNhdGVkX3JlcHJsb2NhbHMubGluZXMKKyAgICAgICAgYXNzZXJ0IHRydW5jYXRl
ZF9yZXBybG9jYWxzLmxpbmVzWzBdID09ICJsICAgICAgICAgID0gWzAsIDEsIDIsIDMsIDQsIDUs
IC4uLl0iCisKKyAgICAgICAgcSA9IEZvcm1hdHRlZEV4Y2luZm8oc2hvd2xvY2Fscz1UcnVlLCB0
cnVuY2F0ZV9sb2NhbHM9RmFsc2UpCisgICAgICAgIGZ1bGxfcmVwcmxvY2FscyA9IHEucmVwcl9s
b2NhbHMobG9jKQorICAgICAgICBhc3NlcnQgZnVsbF9yZXBybG9jYWxzLmxpbmVzCisgICAgICAg
IGFzc2VydCBmdWxsX3JlcHJsb2NhbHMubGluZXNbMF0gPT0gImwgICAgICAgICAgPSBbMCwgMSwg
MiwgMywgNCwgNSwgNiwgNywgOCwgOV0iCisKICAgICBkZWYgdGVzdF9yZXByX3RyYWNlYmFja2Vu
dHJ5X2xpbmVzKHNlbGYsIGltcG9ydGFzbW9kKToKICAgICAgICAgbW9kID0gaW1wb3J0YXNtb2Qo
CiAgICAgICAgICAgICAiIiIKQEAgLTg4MiwxMiArOTI4LDExIEBAIHJhaXNlIFZhbHVlRXJyb3Io
KQogICAgICAgICBmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgVGVybWluYWxSZXByCiAK
ICAgICAgICAgY2xhc3MgTXlSZXByKFRlcm1pbmFsUmVwcik6Ci0KICAgICAgICAgICAgIGRlZiB0
b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgICAgICAgICB0dy5saW5lKHB5LmJ1aWx0aW4u
X3RvdGV4dCgi0Y8iLCAidXRmLTgiKSkKKyAgICAgICAgICAgICAgICB0dy5saW5lKHUi0Y8iKQog
Ci0gICAgICAgIHggPSBweS5idWlsdGluLl90b3RleHQoTXlSZXByKCkpCi0gICAgICAgIGFzc2Vy
dCB4ID09IHB5LmJ1aWx0aW4uX3RvdGV4dCgi0Y8iLCAidXRmLTgiKQorICAgICAgICB4ID0gc2l4
LnRleHRfdHlwZShNeVJlcHIoKSkKKyAgICAgICAgYXNzZXJ0IHggPT0gdSLRjyIKIAogICAgIGRl
ZiB0ZXN0X3RvdGVybWluYWxfbG9uZyhzZWxmLCBpbXBvcnRhc21vZCk6CiAgICAgICAgIG1vZCA9
IGltcG9ydGFzbW9kKApAQCAtMTE3NSwyMCArMTIyMCwyOCBAQCByYWlzZSBWYWx1ZUVycm9yKCkK
ICAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzQ3XSA9PSAiOjE1OiBBdHRyaWJ1dGVFcnJvciIKIAog
ICAgIEBweXRlc3QubWFyay5za2lwaWYoInN5cy52ZXJzaW9uX2luZm9bMF0gPCAzIikKLSAgICBk
ZWYgdGVzdF9leGNfcmVwcl93aXRoX3JhaXNlX2Zyb21fbm9uZV9jaGFpbl9zdXBwcmVzc2lvbihz
ZWxmLCBpbXBvcnRhc21vZCk6CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtb2RlIiwg
WyJmcm9tX25vbmUiLCAiZXhwbGljaXRfc3VwcHJlc3MiXSkKKyAgICBkZWYgdGVzdF9leGNfcmVw
cl9jaGFpbl9zdXBwcmVzc2lvbihzZWxmLCBpbXBvcnRhc21vZCwgbW9kZSk6CisgICAgICAgICIi
IkNoZWNrIHRoYXQgZXhjIHJlcHIgZG9lcyBub3Qgc2hvdyBjaGFpbmVkIGV4Y2VwdGlvbnMgaW4g
UHl0aG9uIDMuCisgICAgICAgIC0gV2hlbiB0aGUgZXhjZXB0aW9uIGlzIHJhaXNlZCB3aXRoICJm
cm9tIE5vbmUiCisgICAgICAgIC0gRXhwbGljaXRseSBzdXBwcmVzc2VkIHdpdGggImNoYWluPUZh
bHNlIiB0byBFeGNlcHRpb25JbmZvLmdldHJlcHIoKS4KKyAgICAgICAgIiIiCisgICAgICAgIHJh
aXNlX3N1ZmZpeCA9ICIgZnJvbSBOb25lIiBpZiBtb2RlID09ICJmcm9tX25vbmUiIGVsc2UgIiIK
ICAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAg
IGRlZiBmKCk6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBnKCkK
ICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgICAgICBy
YWlzZSBBdHRyaWJ1dGVFcnJvcigpIGZyb20gTm9uZQorICAgICAgICAgICAgICAgICAgICByYWlz
ZSBBdHRyaWJ1dGVFcnJvcigpe3JhaXNlX3N1ZmZpeH0KICAgICAgICAgICAgIGRlZiBnKCk6CiAg
ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCi0gICAgICAgICIiIgorICAgICAgICAi
IiIuZm9ybWF0KAorICAgICAgICAgICAgICAgIHJhaXNlX3N1ZmZpeD1yYWlzZV9zdWZmaXgKKyAg
ICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhB
dHRyaWJ1dGVFcnJvciwgbW9kLmYpCi0gICAgICAgIHIgPSBleGNpbmZvLmdldHJlcHIoc3R5bGU9
ImxvbmciKQorICAgICAgICByID0gZXhjaW5mby5nZXRyZXByKHN0eWxlPSJsb25nIiwgY2hhaW49
bW9kZSAhPSAiZXhwbGljaXRfc3VwcHJlc3MiKQogICAgICAgICB0dyA9IFRXTW9jaygpCiAgICAg
ICAgIHIudG90ZXJtaW5hbCh0dykKICAgICAgICAgZm9yIGxpbmUgaW4gdHcubGluZXM6CkBAIC0x
MTk4LDcgKzEyNTEsOSBAQCByYWlzZSBWYWx1ZUVycm9yKCkKICAgICAgICAgYXNzZXJ0IHR3Lmxp
bmVzWzJdID09ICIgICAgICAgIHRyeToiCiAgICAgICAgIGFzc2VydCB0dy5saW5lc1szXSA9PSAi
ICAgICAgICAgICAgZygpIgogICAgICAgICBhc3NlcnQgdHcubGluZXNbNF0gPT0gIiAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoiCi0gICAgICAgIGFzc2VydCB0dy5saW5lc1s1XSA9PSAiPiAgICAg
ICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoKSBmcm9tIE5vbmUiCisgICAgICAgIGFzc2VydCB0
dy5saW5lc1s1XSA9PSAiPiAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoKXt9Ii5mb3Jt
YXQoCisgICAgICAgICAgICByYWlzZV9zdWZmaXgKKyAgICAgICAgKQogICAgICAgICBhc3NlcnQg
dHcubGluZXNbNl0gPT0gIkUgICAgICAgICAgIEF0dHJpYnV0ZUVycm9yIgogICAgICAgICBhc3Nl
cnQgdHcubGluZXNbN10gPT0gIiIKICAgICAgICAgbGluZSA9IHR3LmdldF93cml0ZV9tc2coOCkK
QEAgLTEyNjYsNiArMTMyMSw1MCBAQCByYWlzZSBWYWx1ZUVycm9yKCkKICAgICAgICAgICAgIF0K
ICAgICAgICAgKQogCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnZlcnNpb25faW5mb1sw
XSA8IDMiKQorICAgIGRlZiB0ZXN0X2V4Y19jaGFpbl9yZXByX2N5Y2xlKHNlbGYsIGltcG9ydGFz
bW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIGNsYXNzIEVycihFeGNlcHRpb24pOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgICAgIGRlZiBmYWlsKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDAgLyAwCisgICAgICAg
ICAgICBkZWYgcmVyYWlzZSgpOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg
ICAgICAgZmFpbCgpCisgICAgICAgICAgICAgICAgZXhjZXB0IFplcm9EaXZpc2lvbkVycm9yIGFz
IGU6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEVycigpIGZyb20gZQorICAgICAgICAgICAg
ZGVmIHVucmVyYWlzZSgpOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAg
ICAgcmVyYWlzZSgpCisgICAgICAgICAgICAgICAgZXhjZXB0IEVyciBhcyBlOgorICAgICAgICAg
ICAgICAgICAgICByYWlzZSBlLl9fY2F1c2VfXworICAgICAgICAiIiIKKyAgICAgICAgKQorICAg
ICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgbW9kLnVucmVy
YWlzZSkKKyAgICAgICAgciA9IGV4Y2luZm8uZ2V0cmVwcihzdHlsZT0ic2hvcnQiKQorICAgICAg
ICB0dyA9IFRXTW9jaygpCisgICAgICAgIHIudG90ZXJtaW5hbCh0dykKKyAgICAgICAgb3V0ID0g
IlxuIi5qb2luKGxpbmUgZm9yIGxpbmUgaW4gdHcubGluZXMgaWYgaXNpbnN0YW5jZShsaW5lLCBz
dHIpKQorICAgICAgICBleHBlY3RlZF9vdXQgPSB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAg
ICAiIiJcCisgICAgICAgICAgICA6MTM6IGluIHVucmVyYWlzZQorICAgICAgICAgICAgICAgIHJl
cmFpc2UoKQorICAgICAgICAgICAgOjEwOiBpbiByZXJhaXNlCisgICAgICAgICAgICAgICAgcmFp
c2UgRXJyKCkgZnJvbSBlCisgICAgICAgICAgICBFICAgdGVzdF9leGNfY2hhaW5fcmVwcl9jeWNs
ZTAubW9kLkVycgorCisgICAgICAgICAgICBEdXJpbmcgaGFuZGxpbmcgb2YgdGhlIGFib3ZlIGV4
Y2VwdGlvbiwgYW5vdGhlciBleGNlcHRpb24gb2NjdXJyZWQ6CisgICAgICAgICAgICA6MTU6IGlu
IHVucmVyYWlzZQorICAgICAgICAgICAgICAgIHJhaXNlIGUuX19jYXVzZV9fCisgICAgICAgICAg
ICA6ODogaW4gcmVyYWlzZQorICAgICAgICAgICAgICAgIGZhaWwoKQorICAgICAgICAgICAgOjU6
IGluIGZhaWwKKyAgICAgICAgICAgICAgICByZXR1cm4gMCAvIDAKKyAgICAgICAgICAgIEUgICBa
ZXJvRGl2aXNpb25FcnJvcjogZGl2aXNpb24gYnkgemVybyIiIgorICAgICAgICApCisgICAgICAg
IGFzc2VydCBvdXQgPT0gZXhwZWN0ZWRfb3V0CisKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJzdHlsZSIsIFsic2hvcnQiLCAibG9uZyJdKQogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJl
bmNvZGluZyIsIFtOb25lLCAidXRmOCIsICJ1dGYxNiJdKQpAQCAtMTI3Niw3ICsxMzc1LDcgQEAg
ZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tfd2l0aF91bmljb2RlKHN0eWxlLCBlbmNvZGluZyk6CiAg
ICAgdHJ5OgogICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IobXNnKQogICAgIGV4Y2VwdCBSdW50
aW1lRXJyb3I6Ci0gICAgICAgIGVfaW5mbyA9IEV4Y2VwdGlvbkluZm8oKQorICAgICAgICBlX2lu
Zm8gPSBFeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpCiAgICAgZm9ybWF0dGVyID0gRm9ybWF0
dGVkRXhjaW5mbyhzdHlsZT1zdHlsZSkKICAgICByZXByX3RyYWNlYmFjayA9IGZvcm1hdHRlci5y
ZXByX3RyYWNlYmFjayhlX2luZm8pCiAgICAgYXNzZXJ0IHJlcHJfdHJhY2ViYWNrIGlzIG5vdCBO
b25lCkBAIC0xMjk2LDE0ICsxMzk1LDE1IEBAIGRlZiB0ZXN0X2N3ZF9kZWxldGVkKHRlc3RkaXIp
OgogICAgIGFzc2VydCAiSU5URVJOQUxFUlJPUiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkg
KyByZXN1bHQuc3RkZXJyLnN0cigpCiAKIAorQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCJsaW1p
dGVkX3JlY3Vyc2lvbl9kZXB0aCIpCiBkZWYgdGVzdF9leGNlcHRpb25fcmVwcl9leHRyYWN0aW9u
X2Vycm9yX29uX3JlY3Vyc2lvbigpOgogICAgICIiIgogICAgIEVuc3VyZSB3ZSBjYW4gcHJvcGVy
bHkgZGV0ZWN0IGEgcmVjdXJzaW9uIGVycm9yIGV2ZW4KICAgICBpZiBzb21lIGxvY2FscyByYWlz
ZSBlcnJvciBvbiBjb21wYXJpc29uICgjMjQ1OSkuCiAgICAgIiIiCisgICAgZnJvbSBfcHl0ZXN0
LnB5dGVzdGVyIGltcG9ydCBMaW5lTWF0Y2hlcgogCiAgICAgY2xhc3MgbnVtcHlfbGlrZShvYmpl
Y3QpOgotCiAgICAgICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgogICAgICAgICAgICAgaWYg
dHlwZShvdGhlcikgaXMgbnVtcHlfbGlrZToKICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKApAQCAtMTMxNyw0MSArMTQxNywzMCBAQCBkZWYgdGVzdF9leGNlcHRpb25fcmVwcl9leHRy
YWN0aW9uX2Vycm9yX29uX3JlY3Vyc2lvbigpOgogICAgIGRlZiBiKHgpOgogICAgICAgICByZXR1
cm4gYShudW1weV9saWtlKCkpCiAKLSAgICB0cnk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1
bnRpbWVFcnJvcikgYXMgZXhjaW5mbzoKICAgICAgICAgYShudW1weV9saWtlKCkpCi0gICAgZXhj
ZXB0OiAgIyBub3FhCi0gICAgICAgIGZyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBFeGNl
cHRpb25JbmZvCi0gICAgICAgIGZyb20gX3B5dGVzdC5weXRlc3RlciBpbXBvcnQgTGluZU1hdGNo
ZXIKLQotICAgICAgICBleGNfaW5mbyA9IEV4Y2VwdGlvbkluZm8oKQogCi0gICAgICAgIG1hdGNo
ZXIgPSBMaW5lTWF0Y2hlcihzdHIoZXhjX2luZm8uZ2V0cmVwcigpKS5zcGxpdGxpbmVzKCkpCi0g
ICAgICAgIG1hdGNoZXIuZm5tYXRjaF9saW5lcygKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAg
ICAgICAiISEhIFJlY3Vyc2lvbiBlcnJvciBkZXRlY3RlZCwgYnV0IGFuIGVycm9yIG9jY3VycmVk
IGxvY2F0aW5nIHRoZSBvcmlnaW4gb2YgcmVjdXJzaW9uLiIsCi0gICAgICAgICAgICAgICAgIipU
aGUgZm9sbG93aW5nIGV4Y2VwdGlvbiBoYXBwZW5lZCoiLAotICAgICAgICAgICAgICAgICIqVmFs
dWVFcnJvcjogVGhlIHRydXRoIHZhbHVlIG9mIGFuIGFycmF5KiIsCi0gICAgICAgICAgICBdCi0g
ICAgICAgICkKKyAgICBtYXRjaGVyID0gTGluZU1hdGNoZXIoc3RyKGV4Y2luZm8uZ2V0cmVwcigp
KS5zcGxpdGxpbmVzKCkpCisgICAgbWF0Y2hlci5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisg
ICAgICAgICAgICAiISEhIFJlY3Vyc2lvbiBlcnJvciBkZXRlY3RlZCwgYnV0IGFuIGVycm9yIG9j
Y3VycmVkIGxvY2F0aW5nIHRoZSBvcmlnaW4gb2YgcmVjdXJzaW9uLiIsCisgICAgICAgICAgICAi
KlRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uIGhhcHBlbmVkKiIsCisgICAgICAgICAgICAiKlZhbHVl
RXJyb3I6IFRoZSB0cnV0aCB2YWx1ZSBvZiBhbiBhcnJheSoiLAorICAgICAgICBdCisgICAgKQog
CiAKK0BweXRlc3QubWFyay51c2VmaXh0dXJlcygibGltaXRlZF9yZWN1cnNpb25fZGVwdGgiKQog
ZGVmIHRlc3Rfbm9fcmVjdXJzaW9uX2luZGV4X29uX3JlY3Vyc2lvbl9lcnJvcigpOgogICAgICIi
IgogICAgIEVuc3VyZSB0aGF0IHdlIGRvbid0IGJyZWFrIGluIGNhc2Ugd2UgY2FuJ3QgZmluZCB0
aGUgcmVjdXJzaW9uIGluZGV4CiAgICAgZHVyaW5nIGEgcmVjdXJzaW9uIGVycm9yICgjMjQ4Niku
CiAgICAgIiIiCi0gICAgdHJ5OgogCi0gICAgICAgIGNsYXNzIFJlY3Vyc2lvbkRlcHRoRXJyb3Io
b2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHIpOgotICAg
ICAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYsICJfIiArIGF0dHIpCisgICAgY2xhc3Mg
UmVjdXJzaW9uRGVwdGhFcnJvcihvYmplY3QpOgorICAgICAgICBkZWYgX19nZXRhdHRyX18oc2Vs
ZiwgYXR0cik6CisgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLCAiXyIgKyBhdHRyKQog
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgZXhjaW5mbzoKICAgICAg
ICAgUmVjdXJzaW9uRGVwdGhFcnJvcigpLnRyaWdnZXIKLSAgICBleGNlcHQ6ICAjIG5vcWEKLSAg
ICAgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IEV4Y2VwdGlvbkluZm8KLQotICAg
ICAgICBleGNfaW5mbyA9IEV4Y2VwdGlvbkluZm8oKQotICAgICAgICBhc3NlcnQgIm1heGltdW0g
cmVjdXJzaW9uIiBpbiBzdHIoZXhjX2luZm8uZ2V0cmVwcigpKQotICAgIGVsc2U6Ci0gICAgICAg
IGFzc2VydCAwCisgICAgYXNzZXJ0ICJtYXhpbXVtIHJlY3Vyc2lvbiIgaW4gc3RyKGV4Y2luZm8u
Z2V0cmVwcigpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3Rfc291
cmNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3Rfc291cmNlLnB5CmluZGV4IDU2
ZGFkNzU2NzFmYTYyMzJlOGJjM2RmYzY0ZjNhNWExNmVkODI2ZWUuLmQyZTNjMTM0Y2Q1ZTNkZmNi
ZmQzYmYwNTEwYjZhZDU3OTE2NDE4MzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
Y29kZS90ZXN0X3NvdXJjZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9z
b3VyY2UucHkKQEAgLTEsMTggKzEsMjEgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAjIGZs
YWtlODogbm9xYQogIyBkaXNhYmxlIGZsYWtlIGNoZWNrIG9uIHRoaXMgZmlsZSBiZWNhdXNlIHNv
bWUgY29uc3RydWN0cyBhcmUgc3RyYW5nZQogIyBvciByZWR1bmRhbnQgb24gcHVycG9zZSBhbmQg
Y2FuJ3QgYmUgZGlzYWJsZSBvbiBhIGxpbmUtYnktbGluZSBiYXNpcwotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
ZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0
IGFzdAogaW1wb3J0IGluc3BlY3QKIGltcG9ydCBzeXMKIAoraW1wb3J0IHNpeAorCiBpbXBvcnQg
X3B5dGVzdC5fY29kZQotaW1wb3J0IHB5CiBpbXBvcnQgcHl0ZXN0CiBmcm9tIF9weXRlc3QuX2Nv
ZGUgaW1wb3J0IFNvdXJjZQotZnJvbSBfcHl0ZXN0Ll9jb2RlLnNvdXJjZSBpbXBvcnQgYXN0Ci0K
IAotYXN0b25seSA9IHB5dGVzdC5tYXJrLm5vdGhpbmcKIGZhaWxzb25qeXRob24gPSBweXRlc3Qu
bWFyay54ZmFpbCgic3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSIpCiAKIApAQCAtMjYs
MzAgKzI5LDE3IEBAIGRlZiB0ZXN0X3NvdXJjZV9zdHJfZnVuY3Rpb24oKToKICAgICB4ID0gU291
cmNlKAogICAgICAgICAiIiIKICAgICAgICAgMwotICAgICIiIiwKLSAgICAgICAgcnN0cmlwPUZh
bHNlLAotICAgICkKLSAgICBhc3NlcnQgc3RyKHgpID09ICJcbjNcbiAgICAiCi0KLSAgICB4ID0g
U291cmNlKAogICAgICAgICAiIiIKLSAgICAgICAgMwotICAgICIiIiwKLSAgICAgICAgcnN0cmlw
PVRydWUsCiAgICAgKQogICAgIGFzc2VydCBzdHIoeCkgPT0gIlxuMyIKIAogCiBkZWYgdGVzdF91
bmljb2RlKCk6Ci0gICAgdHJ5OgotICAgICAgICB1bmljb2RlCi0gICAgZXhjZXB0IE5hbWVFcnJv
cjoKLSAgICAgICAgcmV0dXJuCi0gICAgeCA9IFNvdXJjZSh1bmljb2RlKCI0IikpCisgICAgeCA9
IFNvdXJjZSh1IjQiKQogICAgIGFzc2VydCBzdHIoeCkgPT0gIjQiCi0gICAgY28gPSBfcHl0ZXN0
Ll9jb2RlLmNvbXBpbGUodW5pY29kZSgndSJceGMzXHhhNSInLCAidXRmOCIpLCBtb2RlPSJldmFs
IikKKyAgICBjbyA9IF9weXRlc3QuX2NvZGUuY29tcGlsZSh1J3Uiw6UiJywgbW9kZT0iZXZhbCIp
CiAgICAgdmFsID0gZXZhbChjbykKLSAgICBhc3NlcnQgaXNpbnN0YW5jZSh2YWwsIHVuaWNvZGUp
CisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsLCBzaXgudGV4dF90eXBlKQogCiAKIGRlZiB0ZXN0
X3NvdXJjZV9mcm9tX2Z1bmN0aW9uKCk6CkBAIC01OCw5ICs0OCw3IEBAIGRlZiB0ZXN0X3NvdXJj
ZV9mcm9tX2Z1bmN0aW9uKCk6CiAKIAogZGVmIHRlc3Rfc291cmNlX2Zyb21fbWV0aG9kKCk6Ci0K
ICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLQogICAgICAgICBkZWYgdGVzdF9tZXRob2Qo
c2VsZik6CiAgICAgICAgICAgICBwYXNzCiAKQEAgLTc1LDcgKzYzLDYgQEAgZGVmIHRlc3Rfc291
cmNlX2Zyb21fbGluZXMoKToKIAogCiBkZWYgdGVzdF9zb3VyY2VfZnJvbV9pbm5lcl9mdW5jdGlv
bigpOgotCiAgICAgZGVmIGYoKToKICAgICAgICAgcGFzcwogCkBAIC0xMzUsNyArMTIyLDcgQEAg
ZGVmIHRlc3Rfc291cmNlX3N0cmlwX211bHRpbGluZSgpOgogZGVmIHRlc3Rfc3ludGF4ZXJyb3Jf
cmVyZXByZXNlbnRhdGlvbigpOgogICAgIGV4ID0gcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwg
X3B5dGVzdC5fY29kZS5jb21waWxlLCAieHl6IHh5eiIpCiAgICAgYXNzZXJ0IGV4LnZhbHVlLmxp
bmVubyA9PSAxCi0gICAgYXNzZXJ0IGV4LnZhbHVlLm9mZnNldCBpbiAoNCwgNykgICMgWFhYIHB5
cHkvanl0aG9uIHZlcnN1cyBjcHl0aG9uPworICAgIGFzc2VydCBleC52YWx1ZS5vZmZzZXQgaW4g
KDQsIDUsIDcpICAjIFhYWCBweXB5L2p5dGhvbiB2ZXJzdXMgY3B5dGhvbj8KICAgICBhc3NlcnQg
ZXgudmFsdWUudGV4dC5zdHJpcCgpLCAieCB4IgogCiAKQEAgLTE5OSw3ICsxODYsNiBAQCBjbGFz
cyBUZXN0U291cmNlUGFyc2luZ0FuZENvbXBpbGluZyhvYmplY3QpOgogICAgICAgICBhc3NlcnQg
c3RyKHNvdXJjZSkgPT0gIng9MyIKIAogICAgIGRlZiB0ZXN0X2NvbXBpbGVfYW5kX2dldHNvdXJj
ZV90aHJvdWdoX3NhbWVfZnVuY3Rpb24oc2VsZik6Ci0KICAgICAgICAgZGVmIGdlbnNvdXJjZShz
b3VyY2UpOgogICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuY29tcGlsZShzb3VyY2Up
CiAKQEAgLTI0MCw3ICsyMjYsNiBAQCBjbGFzcyBUZXN0U291cmNlUGFyc2luZ0FuZENvbXBpbGlu
ZyhvYmplY3QpOgogICAgICAgICBzID0gc291cmNlLmdldHN0YXRlbWVudCgxKQogICAgICAgICBh
c3NlcnQgcyA9PSBzdHIoc291cmNlKQogCi0gICAgQGFzdG9ubHkKICAgICBkZWYgdGVzdF9nZXRz
dGF0ZW1lbnRyYW5nZV93aXRoaW5fY29uc3RydWN0cyhzZWxmKToKICAgICAgICAgc291cmNlID0g
U291cmNlKAogICAgICAgICAgICAgIiIiXApAQCAtMzE4LDggKzMwMyw2IEBAIGNsYXNzIFRlc3RT
b3VyY2VQYXJzaW5nQW5kQ29tcGlsaW5nKG9iamVjdCk6CiAgICAgICAgIHB5dGVzdC5yYWlzZXMo
U3ludGF4RXJyb3IsIGxhbWJkYTogc291cmNlLmdldHN0YXRlbWVudHJhbmdlKDApKQogCiAgICAg
ZGVmIHRlc3RfY29tcGlsZV90b19hc3Qoc2VsZik6Ci0gICAgICAgIGltcG9ydCBhc3QKLQogICAg
ICAgICBzb3VyY2UgPSBTb3VyY2UoInggPSA0IikKICAgICAgICAgbW9kID0gc291cmNlLmNvbXBp
bGUoZmxhZz1hc3QuUHlDRl9PTkxZX0FTVCkKICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobW9k
LCBhc3QuTW9kdWxlKQpAQCAtMzI3LDIzICszMTAsMjEgQEAgY2xhc3MgVGVzdFNvdXJjZVBhcnNp
bmdBbmRDb21waWxpbmcob2JqZWN0KToKIAogICAgIGRlZiB0ZXN0X2NvbXBpbGVfYW5kX2dldHNv
dXJjZShzZWxmKToKICAgICAgICAgY28gPSBzZWxmLnNvdXJjZS5jb21waWxlKCkKLSAgICAgICAg
cHkuYnVpbHRpbi5leGVjXyhjbywgZ2xvYmFscygpKQorICAgICAgICBleGVjKGNvLCBnbG9iYWxz
KCkpCiAgICAgICAgIGYoNykKLSAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoQXNzZXJ0
aW9uRXJyb3IsICJmKDYpIikKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoQXNzZXJ0
aW9uRXJyb3IsIGYsIDYpCiAgICAgICAgIGZyYW1lID0gZXhjaW5mby50cmFjZWJhY2tbLTFdLmZy
YW1lCiAgICAgICAgIHN0bXQgPSBmcmFtZS5jb2RlLmZ1bGxzb3VyY2UuZ2V0c3RhdGVtZW50KGZy
YW1lLmxpbmVubykKLSAgICAgICAgIyBwcmludCAiYmxvY2siLCBzdHIoYmxvY2spCiAgICAgICAg
IGFzc2VydCBzdHIoc3RtdCkuc3RyaXAoKS5zdGFydHN3aXRoKCJhc3NlcnQiKQogCiAgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJuYW1lIiwgWyIiLCBOb25lLCAibXkiXSkKICAgICBkZWYg
dGVzdF9jb21waWxlZnVuY3NfYW5kX3BhdGhfc2FuaXR5KHNlbGYsIG5hbWUpOgotCiAgICAgICAg
IGRlZiBjaGVjayhjb21wLCBuYW1lKToKICAgICAgICAgICAgIGNvID0gY29tcChzZWxmLnNvdXJj
ZSwgbmFtZSkKICAgICAgICAgICAgIGlmIG5vdCBuYW1lOgotICAgICAgICAgICAgICAgIGV4cGVj
dGVkID0gImNvZGVnZW4gJXM6JWQ+IiAlIChteXBhdGgsIG15bGluZW5vICsgMiArIDMpCisgICAg
ICAgICAgICAgICAgZXhwZWN0ZWQgPSAiY29kZWdlbiAlczolZD4iICUgKG15cGF0aCwgbXlsaW5l
bm8gKyAyICsgMikKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZXhwZWN0ZWQg
PSAiY29kZWdlbiAlciAlczolZD4iICUgKG5hbWUsIG15cGF0aCwgbXlsaW5lbm8gKyAyICsgMykK
KyAgICAgICAgICAgICAgICBleHBlY3RlZCA9ICJjb2RlZ2VuICVyICVzOiVkPiIgJSAobmFtZSwg
bXlwYXRoLCBteWxpbmVubyArIDIgKyAyKQogICAgICAgICAgICAgZm4gPSBjby5jb19maWxlbmFt
ZQogICAgICAgICAgICAgYXNzZXJ0IGZuLmVuZHN3aXRoKGV4cGVjdGVkKQogCkBAIC0zNTksOSAr
MzQwLDcgQEAgY2xhc3MgVGVzdFNvdXJjZVBhcnNpbmdBbmRDb21waWxpbmcob2JqZWN0KToKIAog
CiBkZWYgdGVzdF9nZXRzdGFydGluZ2Jsb2NrX3NpbmdsZWxpbmUoKToKLQogICAgIGNsYXNzIEEo
b2JqZWN0KToKLQogICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MpOgogICAgICAgICAg
ICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpCiAgICAgICAgICAgICBzZWxmLnNvdXJjZSA9IF9w
eXRlc3QuX2NvZGUuRnJhbWUoZnJhbWUpLnN0YXRlbWVudApAQCAtMzczLDIxICszNTIsMTYgQEAg
ZGVmIHRlc3RfZ2V0c3RhcnRpbmdibG9ja19zaW5nbGVsaW5lKCk6CiAKIAogZGVmIHRlc3RfZ2V0
bGluZV9maW5hbGx5KCk6Ci0KICAgICBkZWYgYygpOgogICAgICAgICBwYXNzCiAKLSAgICBleGNp
bmZvID0gcHl0ZXN0LnJhaXNlcygKLSAgICAgICAgVHlwZUVycm9yLAotICAgICAgICAiIiIKLSAg
ICAgICAgICAgdGVhcmRvd24gPSBOb25lCi0gICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICBjKDEpCi0gICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgaWYgdGVhcmRvd246
Ci0gICAgICAgICAgICAgICAgICAgIHRlYXJkb3duKCkKLSAgICAiIiIsCi0gICAgKQorICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpIGFzIGV4Y2luZm86CisgICAgICAgIHRlYXJkb3du
ID0gTm9uZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBjKDEpCisgICAgICAgIGZpbmFsbHk6
CisgICAgICAgICAgICBpZiB0ZWFyZG93bjoKKyAgICAgICAgICAgICAgICB0ZWFyZG93bigpCiAg
ICAgc291cmNlID0gZXhjaW5mby50cmFjZWJhY2tbLTFdLnN0YXRlbWVudAogICAgIGFzc2VydCBz
dHIoc291cmNlKS5zdHJpcCgpID09ICJjKDEpIgogCkBAIC00MDAsMjIgKzM3NCwyNCBAQCBkZWYg
dGVzdF9nZXRmdW5jc291cmNlX2R5bmFtaWMoKToKICAgICAgICAgZGVmIGcoKTogcGFzcwogICAg
ICIiIgogICAgIGNvID0gX3B5dGVzdC5fY29kZS5jb21waWxlKHNvdXJjZSkKLSAgICBweS5idWls
dGluLmV4ZWNfKGNvLCBnbG9iYWxzKCkpCisgICAgZXhlYyhjbywgZ2xvYmFscygpKQogICAgIGFz
c2VydCBzdHIoX3B5dGVzdC5fY29kZS5Tb3VyY2UoZikpLnN0cmlwKCkgPT0gImRlZiBmKCk6XG4g
ICAgcmFpc2UgVmFsdWVFcnJvciIKICAgICBhc3NlcnQgc3RyKF9weXRlc3QuX2NvZGUuU291cmNl
KGcpKS5zdHJpcCgpID09ICJkZWYgZygpOiBwYXNzIgogCiAKIGRlZiB0ZXN0X2dldGZ1bmNzb3Vy
Y2Vfd2l0aF9tdWx0aW5lX3N0cmluZygpOgotCiAgICAgZGVmIGYoKToKICAgICAgICAgYyA9ICIi
IndoaWxlIFRydWU6CiAgICAgcGFzcwogIiIiCiAKLSAgICBhc3NlcnQgKAotICAgICAgICBzdHIo
X3B5dGVzdC5fY29kZS5Tb3VyY2UoZikpLnN0cmlwKCkKLSAgICAgICAgPT0gJ2RlZiBmKCk6XG4g
ICAgYyA9ICIiIndoaWxlIFRydWU6XG4gICAgcGFzc1xuIiIiJwotICAgICkKKyAgICBleHBlY3Rl
ZCA9ICcnJ1wKKyAgICBkZWYgZigpOgorICAgICAgICBjID0gIiIid2hpbGUgVHJ1ZToKKyAgICBw
YXNzCisiIiIKKycnJworICAgIGFzc2VydCBzdHIoX3B5dGVzdC5fY29kZS5Tb3VyY2UoZikpID09
IGV4cGVjdGVkLnJzdHJpcCgpCiAKIAogZGVmIHRlc3RfZGVpbmRlbnQoKToKQEAgLTQyMywyNCAr
Mzk5LDE2IEBAIGRlZiB0ZXN0X2RlaW5kZW50KCk6CiAKICAgICBhc3NlcnQgZGVpbmRlbnQoWyJc
dGZvbyIsICJcdGJhciJdKSA9PSBbImZvbyIsICJiYXIiXQogCi0gICAgZGVmIGYoKToKLSAgICAg
ICAgYyA9ICIiIndoaWxlIFRydWU6Ci0gICAgcGFzcwotIiIiCi0KLSAgICBsaW5lcyA9IGRlaW5k
ZW50KGluc3BlY3QuZ2V0c291cmNlKGYpLnNwbGl0bGluZXMoKSkKLSAgICBhc3NlcnQgbGluZXMg
PT0gWyJkZWYgZigpOiIsICcgICAgYyA9ICIiIndoaWxlIFRydWU6JywgIiAgICBwYXNzIiwgJyIi
IiddCi0KLSAgICBzb3VyY2UgPSAiIiIKKyAgICBzb3VyY2UgPSAiIiJcCiAgICAgICAgIGRlZiBm
KCk6CiAgICAgICAgICAgICBkZWYgZygpOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAiIiIK
ICAgICBsaW5lcyA9IGRlaW5kZW50KHNvdXJjZS5zcGxpdGxpbmVzKCkpCi0gICAgYXNzZXJ0IGxp
bmVzID09IFsiIiwgImRlZiBmKCk6IiwgIiAgICBkZWYgZygpOiIsICIgICAgICAgIHBhc3MiLCAi
ICAgICJdCisgICAgYXNzZXJ0IGxpbmVzID09IFsiZGVmIGYoKToiLCAiICAgIGRlZiBnKCk6Iiwg
IiAgICAgICAgcGFzcyJdCiAKIAotZGVmIHRlc3Rfc291cmNlX29mX2NsYXNzX2F0X2VvZl93aXRo
b3V0X25ld2xpbmUodG1wZGlyKToKK2RlZiB0ZXN0X3NvdXJjZV9vZl9jbGFzc19hdF9lb2Zfd2l0
aG91dF9uZXdsaW5lKHRtcGRpciwgX3N5c19zbmFwc2hvdCk6CiAgICAgIyB0aGlzIHRlc3QgZmFp
bHMgYmVjYXVzZSB0aGUgaW1wbGljaXQgaW5zcGVjdC5nZXRzb3VyY2UoQSkgYmVsb3cKICAgICAj
IGRvZXMgbm90IHJldHVybiB0aGUgInggPSAxIiBsYXN0IGxpbmUuCiAgICAgc291cmNlID0gX3B5
dGVzdC5fY29kZS5Tb3VyY2UoCkBAIC01MzMsMTkgKzUwMSwxNyBAQCBkZWYgdGVzdF9nZXRmc2xp
bmVubygpOgogICAgIGNsYXNzIEIob2JqZWN0KToKICAgICAgICAgcGFzcwogCi0gICAgQi5fX25h
bWVfXyA9ICJCMiIKKyAgICBCLl9fbmFtZV9fID0gQi5fX3F1YWxuYW1lX18gPSAiQjIiCiAgICAg
YXNzZXJ0IGdldGZzbGluZW5vKEIpWzFdID09IC0xCiAKIAogZGVmIHRlc3RfY29kZV9vZl9vYmpl
Y3RfaW5zdGFuY2Vfd2l0aF9jYWxsKCk6Ci0KICAgICBjbGFzcyBBKG9iamVjdCk6CiAgICAgICAg
IHBhc3MKIAogICAgIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IF9weXRlc3QuX2Nv
ZGUuU291cmNlKEEoKSkpCiAKICAgICBjbGFzcyBXaXRoQ2FsbChvYmplY3QpOgotCiAgICAgICAg
IGRlZiBfX2NhbGxfXyhzZWxmKToKICAgICAgICAgICAgIHBhc3MKIApAQCAtNTUzLDcgKzUxOSw2
IEBAIGRlZiB0ZXN0X2NvZGVfb2Zfb2JqZWN0X2luc3RhbmNlX3dpdGhfY2FsbCgpOgogICAgIGFz
c2VydCAicGFzcyIgaW4gc3RyKGNvZGUuc291cmNlKCkpCiAKICAgICBjbGFzcyBIZWxsbyhvYmpl
Y3QpOgotCiAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKICAgICAgICAgICAgIHBhc3MKIApA
QCAtNTkyLDcgKzU1Nyw2IEBAIGRlZiB0ZXN0X29uZWxpbmVfYW5kX2NvbW1lbnQoKToKICAgICBh
c3NlcnQgc3RyKHNvdXJjZSkgPT0gInJhaXNlIFZhbHVlRXJyb3IiCiAKIAotQHB5dGVzdC5tYXJr
LnhmYWlsKGhhc2F0dHIoc3lzLCAicHlweV92ZXJzaW9uX2luZm8iKSwgcmVhc29uPSJkb2VzIG5v
dCB3b3JrIG9uIHB5cHkiKQogZGVmIHRlc3RfY29tbWVudHMoKToKICAgICBzb3VyY2UgPSAnJydk
ZWYgdGVzdCgpOgogICAgICJjb21tZW50IDEiCkBAIC02MDgsOSArNTcyLDE1IEBAIGNvbW1lbnQg
NAogJycnCiAgICAgZm9yIGxpbmUgaW4gcmFuZ2UoMiwgNik6CiAgICAgICAgIGFzc2VydCBzdHIo
Z2V0c3RhdGVtZW50KGxpbmUsIHNvdXJjZSkpID09ICIgICAgeCA9IDEiCi0gICAgZm9yIGxpbmUg
aW4gcmFuZ2UoNiwgMTApOgorICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDgpIG9yIGhh
c2F0dHIoc3lzLCAicHlweV92ZXJzaW9uX2luZm8iKToKKyAgICAgICAgdHFzX3N0YXJ0ID0gOAor
ICAgIGVsc2U6CisgICAgICAgIHRxc19zdGFydCA9IDEwCisgICAgICAgIGFzc2VydCBzdHIoZ2V0
c3RhdGVtZW50KDEwLCBzb3VyY2UpKSA9PSAnIiIiJworICAgIGZvciBsaW5lIGluIHJhbmdlKDYs
IHRxc19zdGFydCk6CiAgICAgICAgIGFzc2VydCBzdHIoZ2V0c3RhdGVtZW50KGxpbmUsIHNvdXJj
ZSkpID09ICIgICAgYXNzZXJ0IEZhbHNlIgotICAgIGFzc2VydCBzdHIoZ2V0c3RhdGVtZW50KDEw
LCBzb3VyY2UpKSA9PSAnIiIiJworICAgIGZvciBsaW5lIGluIHJhbmdlKHRxc19zdGFydCwgMTAp
OgorICAgICAgICBhc3NlcnQgc3RyKGdldHN0YXRlbWVudChsaW5lLCBzb3VyY2UpKSA9PSAnIiIi
XG5jb21tZW50IDRcbiIiIicKIAogCiBkZWYgdGVzdF9jb21tZW50X2luX3N0YXRlbWVudCgpOgpA
QCAtNjQ0LDcgKzYxNCw3IEBAIGRlZiB0ZXN0X2lzc3VlNTUoKToKICAgICBhc3NlcnQgc3RyKHMp
ID09ICcgIHJvdW5kX3RyaXAoIiIiXG4iIiIpJwogCiAKLWRlZiBYWFh0ZXN0X211bHRpbGluZSgp
OgorZGVmIHRlc3RfbXVsdGlsaW5lKCk6CiAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KAogICAg
ICAgICAwLAogICAgICAgICAiIiJcCkBAIC02NTgsNyArNjI4LDYgQEAgeCA9IDMKIAogCiBjbGFz
cyBUZXN0VHJ5KG9iamVjdCk6Ci0gICAgcHl0ZXN0bWFyayA9IGFzdG9ubHkKICAgICBzb3VyY2Ug
PSAiIiJcCiB0cnk6CiAgICAgcmFpc2UgVmFsdWVFcnJvcgpAQCAtNzAzLDcgKzY3Miw2IEBAIGZp
bmFsbHk6CiAKIAogY2xhc3MgVGVzdElmKG9iamVjdCk6Ci0gICAgcHl0ZXN0bWFyayA9IGFzdG9u
bHkKICAgICBzb3VyY2UgPSAiIiJcCiBpZiAxOgogICAgIHkgPSAzCkBAIC03NTYsMyArNzI0LDE5
IEBAIHNvbWV0aGluZwogJycnIiIiCiAgICAgcmVzdWx0ID0gZ2V0c3RhdGVtZW50KDEsIHNvdXJj
ZSkKICAgICBhc3NlcnQgc3RyKHJlc3VsdCkgPT0gIicnJ1xuJycnIgorCisKK2RlZiB0ZXN0X2dl
dHN0YXJ0aW5nYmxvY2tfbXVsdGlsaW5lKCk6CisgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAg
ICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MpOgorICAgICAgICAgICAgZnJhbWUgPSBzeXMuX2dl
dGZyYW1lKDEpCisgICAgICAgICAgICBzZWxmLnNvdXJjZSA9IF9weXRlc3QuX2NvZGUuRnJhbWUo
ZnJhbWUpLnN0YXRlbWVudAorCisgICAgIyBmbXQ6IG9mZgorICAgIHggPSBBKCd4JywKKyAgICAg
ICAgICAneScKKyAgICAgICAgICAsCisgICAgICAgICAgJ3onKQorICAgICMgZm10OiBvbgorICAg
IHZhbHVlcyA9IFtpIGZvciBpIGluIHguc291cmNlLmxpbmVzIGlmIGkuc3RyaXAoKV0KKyAgICBh
c3NlcnQgbGVuKHZhbHVlcykgPT0gNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9j
b2RlL3Rlc3Rfc291cmNlX211bHRpbGluZV9ibG9jay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
Y29kZS90ZXN0X3NvdXJjZV9tdWx0aWxpbmVfYmxvY2sucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDkyZjc0MTJlYjhjZjM2OWI2ZTE5NWQ3M2Q2YzEzZThkZGY4NzM0OTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9jb2RlL3Rlc3Rfc291cmNlX211bHRpbGluZV9ibG9jay5weQorKysgL2Rldi9udWxsCkBA
IC0xLDI5ICswLDAgQEAKLSMgZmxha2U4OiBub3FhCi1pbXBvcnQgc3lzCi0KLWltcG9ydCBfcHl0
ZXN0Ll9jb2RlCi0KLQotZGVmIHRlc3RfZ2V0c3RhcnRpbmdibG9ja19tdWx0aWxpbmUoKToKLSAg
ICAiIiIKLSAgICBUaGlzIHRlc3Qgd2FzIG9yaWdpbmFsbHkgZm91bmQgaW4gdGVzdF9zb3VyY2Uu
cHksIGJ1dCBpdCBkZXBlbmRzIG9uIHRoZSB3ZWlyZAotICAgIGZvcm1hdHRpbmcgb2YgdGhlIGBg
eCA9IEFgYCBjb25zdHJ1Y3Qgc2VlbiBoZXJlIGFuZCBvdXIgYXV0b3BlcDggdG9vbCBjYW4gb25s
eSBleGNsdWRlIGVudGlyZQotICAgIGZpbGVzIChpdCBkb2VzIG5vdCBzdXBwb3J0IGV4Y2x1ZGlu
ZyBsaW5lcy9ibG9ja3MgdXNpbmcgdGhlIHRyYWRpdGlvbmFsICNub3FhIGNvbW1lbnQgeWV0LAot
ICAgIHNlZSBoaGF0dG8vYXV0b3BlcDgjMzA3KS4gSXQgd2FzIGNvbnNpZGVyZWQgYmV0dGVyIHRv
IGp1c3QgbW92ZSB0aGlzIHNpbmdsZSB0ZXN0IHRvIGl0cyBvd24KLSAgICBmaWxlIGFuZCBleGNs
dWRlIGl0IGZyb20gYXV0b3BlcDggdGhhbiB0cnkgdG8gY29tcGxpY2F0ZSB0aGluZ3MuCi0gICAg
IiIiCi0KLSAgICBjbGFzcyBBKG9iamVjdCk6Ci0KLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYs
ICphcmdzKToKLSAgICAgICAgICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgxKQotICAgICAgICAg
ICAgc2VsZi5zb3VyY2UgPSBfcHl0ZXN0Ll9jb2RlLkZyYW1lKGZyYW1lKS5zdGF0ZW1lbnQKLQot
ICAgICMgZm10OiBvZmYKLSAgICB4ID0gQSgneCcsCi0gICAgICAgICAgJ3knCi0gICAgICAgICAg
LAotICAgICAgICAgICd6JykKLSAgICAjIGZtdDogb24KLSAgICB2YWx1ZXMgPSBbaSBmb3IgaSBp
biB4LnNvdXJjZS5saW5lcyBpZiBpLnN0cmlwKCldCi0gICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09
IDQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZwppbmRleCBmM2IwZmZkNTgx
ZmNhM2E5YmQyNzA4Y2JiYmY4NDM3NzNkZmMyZjM3Li40ZGZmZmVlMDcxZDg4ZTE1OWVhOWI1ODJl
ODA5NTU2OTc3NDE1ZDQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdzNj
LWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3czYy1pbXBvcnQubG9n
CkBAIC0xNyw0ICsxNywzIEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9j
b2RlL3Rlc3RfY29kZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8u
cHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2UucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2VfbXVsdGlsaW5lX2Jsb2NrLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9j
b25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjdlZTc2M2QyZjM1MDA3OWZhZTMzOTFmZWYwNjg4ZmMz
ODNmYzEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb25mdGVzdC5w
eQpAQCAtMCwwICsxLDU4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHN5cwor
CitpbXBvcnQgcHl0ZXN0CisKK2lmIHN5cy5nZXR0cmFjZSgpOgorCisgICAgQHB5dGVzdC5maXh0
dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBkZWYgcmVzdG9yZV90cmFjaW5nKCk6CisgICAgICAgICIi
IlJlc3RvcmUgdHJhY2luZyBmdW5jdGlvbiAod2hlbiBydW4gd2l0aCBDb3ZlcmFnZS5weSkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUzNzAxMQorICAgICAgICAiIiIK
KyAgICAgICAgb3JpZ190cmFjZSA9IHN5cy5nZXR0cmFjZSgpCisgICAgICAgIHlpZWxkCisgICAg
ICAgIGlmIHN5cy5nZXR0cmFjZSgpICE9IG9yaWdfdHJhY2U6CisgICAgICAgICAgICBzeXMuc2V0
dHJhY2Uob3JpZ190cmFjZSkKKworCitAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUs
IHRyeWZpcnN0PVRydWUpCitkZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoY29uZmln
LCBpdGVtcyk6CisgICAgIiIiUHJlZmVyIGZhc3RlciB0ZXN0cy4KKworICAgIFVzZSBhIGhvb2t3
cmFwcGVyIHRvIGRvIHRoaXMgaW4gdGhlIGJlZ2lubmluZywgc28gZS5nLiAtLWZmIHN0aWxsIHdv
cmtzCisgICAgY29ycmVjdGx5LgorICAgICIiIgorICAgIGZhc3RfaXRlbXMgPSBbXQorICAgIHNs
b3dfaXRlbXMgPSBbXQorICAgIHNsb3dlc3RfaXRlbXMgPSBbXQorICAgIG5ldXRyYWxfaXRlbXMg
PSBbXQorCisgICAgc3Bhd25fbmFtZXMgPSB7InNwYXduX3B5dGVzdCIsICJzcGF3biJ9CisKKyAg
ICBmb3IgaXRlbSBpbiBpdGVtczoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZml4dHVyZXMg
PSBpdGVtLmZpeHR1cmVuYW1lcworICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAg
ICAgICAgICAjIGRvY3Rlc3QgYXQgbGVhc3QKKyAgICAgICAgICAgICMgKGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTA3MCkKKyAgICAgICAgICAgIG5ldXRyYWxf
aXRlbXMuYXBwZW5kKGl0ZW0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiAidGVzdGRp
ciIgaW4gZml4dHVyZXM6CisgICAgICAgICAgICAgICAgaWYgc3Bhd25fbmFtZXMuaW50ZXJzZWN0
aW9uKGl0ZW0uZnVuY3Rpb24uX19jb2RlX18uY29fbmFtZXMpOgorICAgICAgICAgICAgICAgICAg
ICBpdGVtLmFkZF9tYXJrZXIocHl0ZXN0Lm1hcmsudXNlc19wZXhwZWN0KQorICAgICAgICAgICAg
ICAgICAgICBzbG93ZXN0X2l0ZW1zLmFwcGVuZChpdGVtKQorICAgICAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgICAgIHNsb3dfaXRlbXMuYXBwZW5kKGl0ZW0pCisgICAgICAgICAg
ICAgICAgaXRlbS5hZGRfbWFya2VyKHB5dGVzdC5tYXJrLnNsb3cpCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIG1hcmtlciA9IGl0ZW0uZ2V0X2Nsb3Nlc3RfbWFya2VyKCJzbG93
IikKKyAgICAgICAgICAgICAgICBpZiBtYXJrZXI6CisgICAgICAgICAgICAgICAgICAgIHNsb3dl
c3RfaXRlbXMuYXBwZW5kKGl0ZW0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgZmFzdF9pdGVtcy5hcHBlbmQoaXRlbSkKKworICAgIGl0ZW1zWzpdID0gZmFzdF9p
dGVtcyArIG5ldXRyYWxfaXRlbXMgKyBzbG93X2l0ZW1zICsgc2xvd2VzdF9pdGVtcworCisgICAg
eWllbGQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZGVwcmVjYXRlZF90ZXN0LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9kZXByZWNhdGVkX3Rlc3QucHkKaW5kZXggMzlmZjFmMWZj
Mzg1Y2VhZTQ1YjE4YWUyM2VjNmQ2OGVkZjg5Y2FmOC4uNzA0NjAyMTRmYmRhOGNiNDY0ODBlMDQy
NGE1YzkxODE5NmQyZGM3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9kZXByZWNh
dGVkX3Rlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9kZXByZWNhdGVkX3Rlc3QucHkK
QEAgLTEsNTUgKzEsMTggQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBweXRlc3QKLQorIyAtKi0gY29kaW5n
OiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50
X2Z1bmN0aW9uCiAKLWRlZiB0ZXN0X3lpZWxkX3Rlc3RzX2RlcHJlY2F0aW9uKHRlc3RkaXIpOgot
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgIiIiCi0gICAgICAgIGRlZiBmdW5jMShh
cmcsIGFyZzIpOgotICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSBhcmcyCi0gICAgICAgIGRlZiB0
ZXN0X2dlbigpOgotICAgICAgICAgICAgeWllbGQgIm0xIiwgZnVuYzEsIDE1LCAzKjUKLSAgICAg
ICAgICAgIHlpZWxkICJtMiIsIGZ1bmMxLCA0MiwgNio3Ci0gICAgICAgIGRlZiB0ZXN0X2dlbjIo
KToKLSAgICAgICAgICAgIGZvciBrIGluIHJhbmdlKDEwKToKLSAgICAgICAgICAgICAgICB5aWVs
ZCBmdW5jMSwgMSwgMQotICAgICIiIgotICAgICkKLSAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLXJhIikKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgIFsK
LSAgICAgICAgICAgICIqeWllbGQgdGVzdHMgYXJlIGRlcHJlY2F0ZWQsIGFuZCBzY2hlZHVsZWQg
dG8gYmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4wKiIsCi0gICAgICAgICAgICAiKjIgcGFzc2VkKiIs
Ci0gICAgICAgIF0KLSAgICApCi0gICAgYXNzZXJ0IHJlc3VsdC5zdGRvdXQuc3RyKCkuY291bnQo
InlpZWxkIHRlc3RzIGFyZSBkZXByZWNhdGVkIikgPT0gMgoraW1wb3J0IG9zCiAKK2ltcG9ydCBw
eXRlc3QKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3REZXByZWNhdGlv
bldhcm5pbmcKK2Zyb20gX3B5dGVzdC53YXJuaW5ncyBpbXBvcnQgU0hPV19QWVRFU1RfV0FSTklO
R1NfQVJHCiAKLWRlZiB0ZXN0X2Z1bmNhcmdfcHJlZml4X2RlcHJlY2F0aW9uKHRlc3RkaXIpOgot
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgIiIiCi0gICAgICAgIGRlZiBweXRlc3Rf
ZnVuY2FyZ19fdmFsdWUoKToKLSAgICAgICAgICAgIHJldHVybiAxMAotCi0gICAgICAgIGRlZiB0
ZXN0X2Z1bmNhcmdfcHJlZml4KHZhbHVlKToKLSAgICAgICAgICAgIGFzc2VydCB2YWx1ZSA9PSAx
MAotICAgICIiIgotICAgICkKLSAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJhIikK
LSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgIFsKLSAgICAgICAgICAg
ICgKLSAgICAgICAgICAgICAgICAiKnB5dGVzdF9mdW5jYXJnX192YWx1ZTogIgotICAgICAgICAg
ICAgICAgICdkZWNsYXJpbmcgZml4dHVyZXMgdXNpbmcgInB5dGVzdF9mdW5jYXJnX18iIHByZWZp
eCBpcyBkZXByZWNhdGVkICcKLSAgICAgICAgICAgICAgICAiYW5kIHNjaGVkdWxlZCB0byBiZSBy
ZW1vdmVkIGluIHB5dGVzdCA0LjAuICAiCi0gICAgICAgICAgICAgICAgIlBsZWFzZSByZW1vdmUg
dGhlIHByZWZpeCBhbmQgdXNlIHRoZSBAcHl0ZXN0LmZpeHR1cmUgZGVjb3JhdG9yIGluc3RlYWQu
IgotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICIqMSBwYXNzZWQqIiwKLSAgICAgICAgXQot
ICAgICkKK3B5dGVzdG1hcmsgPSBweXRlc3QubWFyay5weXRlc3Rlcl9leGFtcGxlX3BhdGgoImRl
cHJlY2F0ZWQiKQogCiAKLWRlZiB0ZXN0X3B5dGVzdF9zZXR1cF9jZmdfZGVwcmVjYXRlZCh0ZXN0
ZGlyKToKK2RlZiB0ZXN0X3B5dGVzdF9zZXR1cF9jZmdfdW5zdXBwb3J0ZWQodGVzdGRpcik6CiAg
ICAgdGVzdGRpci5tYWtlZmlsZSgKICAgICAgICAgIi5jZmciLAogICAgICAgICBzZXR1cD0iIiIK
QEAgLTU3LDEzICsyMCwxMSBAQCBkZWYgdGVzdF9weXRlc3Rfc2V0dXBfY2ZnX2RlcHJlY2F0ZWQo
dGVzdGRpcik6CiAgICAgICAgIGFkZG9wdHMgPSAtLXZlcmJvc2UKICAgICAiIiIsCiAgICAgKQot
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCi0gICAgICAgIFsiKnB5dGVzdCpzZWN0aW9uIGluIHNldHVwLmNmZyBmaWxlcyBp
cyBkZXByZWNhdGVkKnVzZSp0b29sOnB5dGVzdCppbnN0ZWFkKiJdCi0gICAgKQorICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24pOgorICAgICAgICB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCiAKIAotZGVmIHRlc3RfcHl0ZXN0X2N1c3RvbV9jZmdfZGVwcmVjYXRlZCh0ZXN0
ZGlyKToKK2RlZiB0ZXN0X3B5dGVzdF9jdXN0b21fY2ZnX3Vuc3VwcG9ydGVkKHRlc3RkaXIpOgog
ICAgIHRlc3RkaXIubWFrZWZpbGUoCiAgICAgICAgICIuY2ZnIiwKICAgICAgICAgY3VzdG9tPSIi
IgpAQCAtNzEsMzYgKzMyLDE1IEBAIGRlZiB0ZXN0X3B5dGVzdF9jdXN0b21fY2ZnX2RlcHJlY2F0
ZWQodGVzdGRpcik6CiAgICAgICAgIGFkZG9wdHMgPSAtLXZlcmJvc2UKICAgICAiIiIsCiAgICAg
KQotICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItYyIsICJjdXN0b20uY2ZnIikKLSAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgIFsiKnB5dGVzdCpzZWN0aW9u
IGluIGN1c3RvbS5jZmcgZmlsZXMgaXMgZGVwcmVjYXRlZCp1c2UqdG9vbDpweXRlc3QqaW5zdGVh
ZCoiXQotICAgICkKLQotCi1kZWYgdGVzdF9zdHJfYXJnc19kZXByZWNhdGVkKHRtcGRpciwgdGVz
dGRpcik6Ci0gICAgIiIiRGVwcmVjYXRlIHBhc3Npbmcgc3RyaW5ncyB0byBweXRlc3QubWFpbigp
LiBTY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gcHl0ZXN0LTQuMC4iIiIKLSAgICBmcm9tIF9weXRl
c3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVECi0KLSAgICB3YXJuaW5ncyA9IFtd
Ci0KLSAgICBjbGFzcyBDb2xsZWN0KG9iamVjdCk6Ci0KLSAgICAgICAgZGVmIHB5dGVzdF9sb2d3
YXJuaW5nKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAgICAgd2FybmluZ3MuYXBwZW5kKG1lc3Nh
Z2UpCi0KLSAgICByZXQgPSBweXRlc3QubWFpbigiJXMgLXgiICUgdG1wZGlyLCBwbHVnaW5zPVtD
b2xsZWN0KCldKQotICAgIG1zZyA9ICgKLSAgICAgICAgInBhc3NpbmcgYSBzdHJpbmcgdG8gcHl0
ZXN0Lm1haW4oKSBpcyBkZXByZWNhdGVkLCAiCi0gICAgICAgICJwYXNzIGEgbGlzdCBvZiBhcmd1
bWVudHMgaW5zdGVhZC4iCi0gICAgKQotICAgIGFzc2VydCBtc2cgaW4gd2FybmluZ3MKLSAgICBh
c3NlcnQgcmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhweXRlc3QuZmFpbC5FeGNlcHRpb24pOgorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLWMi
LCAiY3VzdG9tLmNmZyIpCiAKIAogZGVmIHRlc3RfZ2V0ZnVuY2FyZ3ZhbHVlX2lzX2RlcHJlY2F0
ZWQocmVxdWVzdCk6CiAgICAgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbChyZXF1ZXN0LmdldGZ1bmNh
cmd2YWx1ZSwgInRtcGRpciIpCiAKIAorQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJkZWZh
dWx0IikKIGRlZiB0ZXN0X3Jlc3VsdGxvZ19pc19kZXByZWNhdGVkKHRlc3RkaXIpOgogICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWhlbHAiKQogICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbIipERVBSRUNBVEVEIHBhdGggZm9yIG1hY2hpbmUtcmVhZGFibGUgcmVzdWx0
IGxvZyoiXSkKQEAgLTExNCwzMCArNTQsMTIgQEAgZGVmIHRlc3RfcmVzdWx0bG9nX2lzX2RlcHJl
Y2F0ZWQodGVzdGRpcik6CiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tcmVzdWx0
LWxvZz0lcyIgJSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJyZXN1bHQubG9nIikpCiAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICBbCi0gICAgICAgICAgICAiKi0tcmVzdWx0
LWxvZyBpcyBkZXByZWNhdGVkIGFuZCBzY2hlZHVsZWQgZm9yIHJlbW92YWwgaW4gcHl0ZXN0IDQu
MCoiLAotICAgICAgICAgICAgIipTZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvKi91c2FnZS5o
dG1sI2NyZWF0aW5nLXJlc3VsdGxvZy1mb3JtYXQtZmlsZXMgZm9yIG1vcmUgaW5mb3JtYXRpb24q
IiwKKyAgICAgICAgICAgICIqLS1yZXN1bHQtbG9nIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxl
ZCBmb3IgcmVtb3ZhbCBpbiBweXRlc3QgNS4wKiIsCisgICAgICAgICAgICAiKlNlZSBodHRwczov
L2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZGVwcmVjYXRpb25zLmh0bWwjcmVzdWx0LWxvZy1y
ZXN1bHQtbG9nIGZvciBtb3JlIGluZm9ybWF0aW9uKiIsCiAgICAgICAgIF0KICAgICApCiAKIAot
QHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJhbHdheXM6TWV0YWZ1bmMuYWRkY2FsbCBpcyBk
ZXByZWNhdGVkIikKLWRlZiB0ZXN0X21ldGFmdW5jX2FkZGNhbGxfZGVwcmVjYXRlZCh0ZXN0ZGly
KToKLSAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICIiIgotICAgICAgICBkZWYgcHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNh
bGwoeydpJzogMX0pCi0gICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHsnaSc6IDJ9KQotICAg
ICAgICBkZWYgdGVzdF9mdW5jKGkpOgotICAgICAgICAgICAgcGFzcwotICAgICIiIgotICAgICkK
LSAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiKQotICAgIGFzc2VydCByZXMucmV0ID09
IDAKLSAgICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgIFsiKk1ldGFmdW5jLmFk
ZGNhbGwgaXMgZGVwcmVjYXRlZCoiLCAiKjIgcGFzc2VkLCAyIHdhcm5pbmdzKiJdCi0gICAgKQot
Ci0KIGRlZiB0ZXN0X3Rlcm1pbmFsX3JlcG9ydGVyX3dyaXRlcl9hdHRyKHB5dGVzdGNvbmZpZyk6
CiAgICAgIiIiQ2hlY2sgdGhhdCBUZXJtaW5hbFJlcG9ydGVyLl90dyBpcyBhbHNvIGF2YWlsYWJs
ZSBhcyAnd3JpdGVyJyAoIzI5ODQpCiAgICAgVGhpcyBhdHRyaWJ1dGUgaXMgcGxhbm5lZCB0byBi
ZSBkZXByZWNhdGVkIGluIDMuNC4KQEAgLTE1Myw2ICs3NSw3IEBAIGRlZiB0ZXN0X3Rlcm1pbmFs
X3JlcG9ydGVyX3dyaXRlcl9hdHRyKHB5dGVzdGNvbmZpZyk6CiAKIAogQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJwbHVnaW4iLCBbImNhdGNobG9nIiwgImNhcHR1cmVsb2ciXSkKK0BweXRlc3Qu
bWFyay5maWx0ZXJ3YXJuaW5ncygiZGVmYXVsdCIpCiBkZWYgdGVzdF9weXRlc3RfY2F0Y2hsb2df
ZGVwcmVjYXRlZCh0ZXN0ZGlyLCBwbHVnaW4pOgogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAg
ICAgICAgIiIiCkBAIC0xNjksMjQgKzkyLDIxIEBAIGRlZiB0ZXN0X3B5dGVzdF9jYXRjaGxvZ19k
ZXByZWNhdGVkKHRlc3RkaXIsIHBsdWdpbik6CiAgICAgKQogCiAKK2RlZiB0ZXN0X3JhaXNlc19t
ZXNzYWdlX2FyZ3VtZW50X2RlcHJlY2F0ZWQoKToKKyAgICB3aXRoIHB5dGVzdC53YXJucyhweXRl
c3QuUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nKToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2Vz
KFJ1bnRpbWVFcnJvciwgbWVzc2FnZT0iZm9vYmFyIik6CisgICAgICAgICAgICByYWlzZSBSdW50
aW1lRXJyb3IKKworCiBkZWYgdGVzdF9weXRlc3RfcGx1Z2luc19pbl9ub25fdG9wX2xldmVsX2Nv
bmZ0ZXN0X2RlcHJlY2F0ZWQodGVzdGRpcik6CiAgICAgZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQg
aW1wb3J0IFBZVEVTVF9QTFVHSU5TX0ZST01fTk9OX1RPUF9MRVZFTF9DT05GVEVTVAogCi0gICAg
c3ViZGlyZWN0b3J5ID0gdGVzdGRpci50bXBkaXIuam9pbigic3ViZGlyZWN0b3J5IikKLSAgICBz
dWJkaXJlY3RvcnkubWtkaXIoKQotICAgICMgY3JlYXRlIHRoZSBpbm5lciBjb25mdGVzdCB3aXRo
IG1ha2Vjb25mdGVzdCBhbmQgdGhlbiBtb3ZlIGl0IHRvIHRoZSBzdWJkaXJlY3RvcnkKLSAgICB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAorICAgICAgICAqKnsKKyAgICAgICAgICAgICJzdWJkaXJlY3RvcnkvY29uZnRlc3QucHkiOiAi
IiIKICAgICAgICAgcHl0ZXN0X3BsdWdpbnM9WydjYXB0dXJlJ10KICAgICAiIiIKLSAgICApCi0g
ICAgdGVzdGRpci50bXBkaXIuam9pbigiY29uZnRlc3QucHkiKS5tb3ZlKHN1YmRpcmVjdG9yeS5q
b2luKCJjb25mdGVzdC5weSIpKQotICAgICMgbWFrZSB0aGUgdG9wIGxldmVsIGNvbmZ0ZXN0Ci0g
ICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICIiIgotICAgICAgICBpbXBvcnQgd2Fy
bmluZ3MKLSAgICAgICAgd2FybmluZ3MuZmlsdGVyd2FybmluZ3MoJ2Fsd2F5cycsIGNhdGVnb3J5
PURlcHJlY2F0aW9uV2FybmluZykKLSAgICAiIiIKKyAgICAgICAgfQogICAgICkKICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgpAQCAtMTk0LDE1ICsxMTQsNDUgQEAgZGVmIHRl
c3RfcHl0ZXN0X3BsdWdpbnNfaW5fbm9uX3RvcF9sZXZlbF9jb25mdGVzdF9kZXByZWNhdGVkKHRl
c3RkaXIpOgogICAgICAgICAgICAgcGFzcwogICAgICIiIgogICAgICkKLSAgICByZXMgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKLSAgICBhc3NlcnQgcmVzLnJldCA9PSAwCi0gICAg
cmVzLnN0ZGVyci5mbm1hdGNoX2xpbmVzKAotICAgICAgICAiKiIgKyBzdHIoUFlURVNUX1BMVUdJ
TlNfRlJPTV9OT05fVE9QX0xFVkVMX0NPTkZURVNUKS5zcGxpdGxpbmVzKClbMF0KKyAgICByZXMg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdChTSE9XX1BZVEVTVF9XQVJOSU5HU19BUkcpCisgICAgYXNzZXJ0
IHJlcy5yZXQgPT0gMgorICAgIG1zZyA9IHN0cihQWVRFU1RfUExVR0lOU19GUk9NX05PTl9UT1Bf
TEVWRUxfQ09ORlRFU1QpLnNwbGl0bGluZXMoKVswXQorICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9s
aW5lcygKKyAgICAgICAgWyIqe21zZ30qIi5mb3JtYXQobXNnPW1zZyksICIqc3ViZGlyZWN0b3J5
e3NlcH1jb25mdGVzdC5weSoiLmZvcm1hdChzZXA9b3Muc2VwKV0KICAgICApCiAKIAotZGVmIHRl
c3RfcHl0ZXN0X3BsdWdpbnNfaW5fbm9uX3RvcF9sZXZlbF9jb25mdGVzdF9kZXByZWNhdGVkX25v
X3RvcF9sZXZlbF9jb25mdGVzdCgKLSAgICB0ZXN0ZGlyCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInVzZV9weWFyZ3MiLCBbVHJ1ZSwgRmFsc2VdKQorZGVmIHRlc3RfcHl0ZXN0X3BsdWdpbnNf
aW5fbm9uX3RvcF9sZXZlbF9jb25mdGVzdF91bnN1cHBvcnRlZF9weWFyZ3MoCisgICAgdGVzdGRp
ciwgdXNlX3B5YXJncworKToKKyAgICAiIiJXaGVuIHVzaW5nIC0tcHlhcmdzLCBkbyBub3QgZW1p
dCB0aGUgd2FybmluZyBhYm91dCBub24tdG9wLWxldmVsIGNvbmZ0ZXN0IHdhcm5pbmdzICgjNDAz
OSwgIzQwNDQpIiIiCisgICAgZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IFBZVEVTVF9Q
TFVHSU5TX0ZST01fTk9OX1RPUF9MRVZFTF9DT05GVEVTVAorCisgICAgZmlsZXMgPSB7CisgICAg
ICAgICJzcmMvcGtnL19faW5pdF9fLnB5IjogIiIsCisgICAgICAgICJzcmMvcGtnL2NvbmZ0ZXN0
LnB5IjogIiIsCisgICAgICAgICJzcmMvcGtnL3Rlc3Rfcm9vdC5weSI6ICJkZWYgdGVzdCgpOiBw
YXNzIiwKKyAgICAgICAgInNyYy9wa2cvc3ViL19faW5pdF9fLnB5IjogIiIsCisgICAgICAgICJz
cmMvcGtnL3N1Yi9jb25mdGVzdC5weSI6ICJweXRlc3RfcGx1Z2lucz1bJ2NhcHR1cmUnXSIsCisg
ICAgICAgICJzcmMvcGtnL3N1Yi90ZXN0X2Jhci5weSI6ICJkZWYgdGVzdCgpOiBwYXNzIiwKKyAg
ICB9CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCoqZmlsZXMpCisgICAgdGVzdGRpci5zeXNwYXRo
aW5zZXJ0KHRlc3RkaXIudG1wZGlyLmpvaW4oInNyYyIpKQorCisgICAgYXJncyA9ICgiLS1weWFy
Z3MiLCAicGtnIikgaWYgdXNlX3B5YXJncyBlbHNlICgpCisgICAgYXJncyArPSAoU0hPV19QWVRF
U1RfV0FSTklOR1NfQVJHLCkKKyAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgqYXJncykKKyAg
ICBhc3NlcnQgcmVzLnJldCA9PSAoMCBpZiB1c2VfcHlhcmdzIGVsc2UgMikKKyAgICBtc2cgPSBz
dHIoUFlURVNUX1BMVUdJTlNfRlJPTV9OT05fVE9QX0xFVkVMX0NPTkZURVNUKS5zcGxpdGxpbmVz
KClbMF0KKyAgICBpZiB1c2VfcHlhcmdzOgorICAgICAgICBhc3NlcnQgbXNnIG5vdCBpbiByZXMu
c3Rkb3V0LnN0cigpCisgICAgZWxzZToKKyAgICAgICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKnttc2d9KiIuZm9ybWF0KG1zZz1tc2cpXSkKKworCitkZWYgdGVzdF9weXRlc3RfcGx1Z2lu
c19pbl9ub25fdG9wX2xldmVsX2NvbmZ0ZXN0X3Vuc3VwcG9ydGVkX25vX3RvcF9sZXZlbF9jb25m
dGVzdCgKKyAgICB0ZXN0ZGlyLAogKToKICAgICBmcm9tIF9weXRlc3QuZGVwcmVjYXRlZCBpbXBv
cnQgUFlURVNUX1BMVUdJTlNfRlJPTV9OT05fVE9QX0xFVkVMX0NPTkZURVNUCiAKQEAgLTIxMCw4
ICsxNjAsNiBAQCBkZWYgdGVzdF9weXRlc3RfcGx1Z2luc19pbl9ub25fdG9wX2xldmVsX2NvbmZ0
ZXN0X2RlcHJlY2F0ZWRfbm9fdG9wX2xldmVsX2NvbmZ0ZQogICAgIHN1YmRpcmVjdG9yeS5ta2Rp
cigpCiAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCiAgICAgICAgICIiIgotICAgICAgICBpbXBv
cnQgd2FybmluZ3MKLSAgICAgICAgd2FybmluZ3MuZmlsdGVyd2FybmluZ3MoJ2Fsd2F5cycsIGNh
dGVnb3J5PURlcHJlY2F0aW9uV2FybmluZykKICAgICAgICAgcHl0ZXN0X3BsdWdpbnM9WydjYXB0
dXJlJ10KICAgICAiIiIKICAgICApCkBAIC0yMjUsMTQgKzE3MywxNSBAQCBkZWYgdGVzdF9weXRl
c3RfcGx1Z2luc19pbl9ub25fdG9wX2xldmVsX2NvbmZ0ZXN0X2RlcHJlY2F0ZWRfbm9fdG9wX2xl
dmVsX2NvbmZ0ZQogICAgICkKIAogICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nl
c3MoKQotICAgIGFzc2VydCByZXMucmV0ID09IDAKLSAgICByZXMuc3RkZXJyLmZubWF0Y2hfbGlu
ZXMoCi0gICAgICAgICIqIiArIHN0cihQWVRFU1RfUExVR0lOU19GUk9NX05PTl9UT1BfTEVWRUxf
Q09ORlRFU1QpLnNwbGl0bGluZXMoKVswXQorICAgIGFzc2VydCByZXMucmV0ID09IDIKKyAgICBt
c2cgPSBzdHIoUFlURVNUX1BMVUdJTlNfRlJPTV9OT05fVE9QX0xFVkVMX0NPTkZURVNUKS5zcGxp
dGxpbmVzKClbMF0KKyAgICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsiKntt
c2d9KiIuZm9ybWF0KG1zZz1tc2cpLCAiKnN1YmRpcmVjdG9yeXtzZXB9Y29uZnRlc3QucHkqIi5m
b3JtYXQoc2VwPW9zLnNlcCldCiAgICAgKQogCiAKLWRlZiB0ZXN0X3B5dGVzdF9wbHVnaW5zX2lu
X25vbl90b3BfbGV2ZWxfY29uZnRlc3RfZGVwcmVjYXRlZF9ub19mYWxzZV9wb3NpdGl2ZXMoCi0g
ICAgdGVzdGRpcgorZGVmIHRlc3RfcHl0ZXN0X3BsdWdpbnNfaW5fbm9uX3RvcF9sZXZlbF9jb25m
dGVzdF91bnN1cHBvcnRlZF9ub19mYWxzZV9wb3NpdGl2ZXMoCisgICAgdGVzdGRpciwKICk6CiAg
ICAgZnJvbSBfcHl0ZXN0LmRlcHJlY2F0ZWQgaW1wb3J0IFBZVEVTVF9QTFVHSU5TX0ZST01fTk9O
X1RPUF9MRVZFTF9DT05GVEVTVAogCkBAIC0yNjAsNiArMjA5LDIzIEBAIGRlZiB0ZXN0X3B5dGVz
dF9wbHVnaW5zX2luX25vbl90b3BfbGV2ZWxfY29uZnRlc3RfZGVwcmVjYXRlZF9ub19mYWxzZV9w
b3NpdGl2ZXMoCiAgICAgKQogICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3Mo
KQogICAgIGFzc2VydCByZXMucmV0ID09IDAKLSAgICBhc3NlcnQgc3RyKFBZVEVTVF9QTFVHSU5T
X0ZST01fTk9OX1RPUF9MRVZFTF9DT05GVEVTVCkuc3BsaXRsaW5lcygpWwotICAgICAgICAwCi0g
ICAgXSBub3QgaW4gcmVzLnN0ZGVyci5zdHIoKQorICAgIG1zZyA9IHN0cihQWVRFU1RfUExVR0lO
U19GUk9NX05PTl9UT1BfTEVWRUxfQ09ORlRFU1QpLnNwbGl0bGluZXMoKVswXQorICAgIGFzc2Vy
dCBtc2cgbm90IGluIHJlcy5zdGRvdXQuc3RyKCkKKworCitkZWYgdGVzdF9maXh0dXJlX25hbWVk
X3JlcXVlc3QodGVzdGRpcik6CisgICAgdGVzdGRpci5jb3B5X2V4YW1wbGUoKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
CisgICAgICAgIFsKKyAgICAgICAgICAgICIqJ3JlcXVlc3QnIGlzIGEgcmVzZXJ2ZWQgbmFtZSBm
b3IgZml4dHVyZXMgYW5kIHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4gZnV0dXJlIHZlcnNpb25zIgor
ICAgICAgICBdCisgICAgKQorCisKK2RlZiB0ZXN0X3B5dGVzdF93YXJuc191bmtub3duX2t3YXJn
cygpOgorICAgIHdpdGggcHl0ZXN0Lndhcm5zKAorICAgICAgICBQeXRlc3REZXByZWNhdGlvbldh
cm5pbmcsCisgICAgICAgIG1hdGNoPXIicHl0ZXN0Lndhcm5zXChcKSBnb3QgdW5leHBlY3RlZCBr
ZXl3b3JkIGFyZ3VtZW50czogXFsnZm9vJ1xdIiwKKyAgICApOgorICAgICAgICBweXRlc3Qud2Fy
bnMoVXNlcldhcm5pbmcsIGZvbz0iaGVsbG8iKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvUkVBRE1FLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL1JFQURNRS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdkMGZkYTVjNWRlYTA4ZTJlNTRl
YzhjMGUxNWVlNWY5ZmU5NmU1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL1JFQURNRS5yc3QKQEAgLTAsMCArMSw5IEBACitFeGFtcGxlIHRl
c3Qgc2NyaXB0cworPT09PT09PT09PT09PT09PT09PT09CisKKworVGhlIGZpbGVzIGluIHRoaXMg
Zm9sZGVyIGFyZSBub3QgZGlyZWN0IHRlc3RzLCBidXQgcmF0aGVyIGV4YW1wbGUgdGVzdCBzdWl0
ZXMgdGhhdCBkZW1vbnN0cmF0ZSBjZXJ0YWluIGlzc3Vlcy9iZWhhdmlvdXJzLgorCitJbiB0aGUg
ZnV0dXJlIHdlIHdpbGwgbW92ZSBwYXJ0IG9mIHRoZSBjb250ZW50IG9mIHRoZSBhY2NlcHRhbmNl
IHRlc3RzIGhlcmUgaW4gb3JkZXIgdG8gaGF2ZSBkaXJlY3RseSB0ZXN0YWJsZSBjb2RlIGluc3Rl
YWQgb2Ygd3JpdGluZyBvdXQgdGhpbmdzIGFuZCB0aGVuIHJ1bm5pbmcgdGhlbSBpbiBuZXN0ZWQg
cHl0ZXN0IHNlc3Npb25zL3N1YnByb2Nlc3Nlcy4KKworVGhpcyB3aWxsIGFpZCBkZWJ1Z2dpbmcg
YW5kIGNvbXByZWhlbnNpb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9hY2NlcHRhbmNlL2ZpeHR1cmVfbW9ja19pbnRlZ3JhdGlvbi5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2FjY2VwdGFuY2UvZml4dHVyZV9tb2NrX2lu
dGVncmF0aW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4Y2NkZjFiNDg4YTJmMWNmNzY4NTExZmM0ZTVjNDY5
OGM5YjcyZmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy9hY2NlcHRhbmNlL2ZpeHR1cmVfbW9ja19pbnRlZ3JhdGlvbi5weQpAQCAtMCwwICsx
LDIxIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiUmVwcm9kdWNlcyBpc3N1ZSAjMzc3
NCIiIgorCit0cnk6CisgICAgaW1wb3J0IG1vY2sKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBp
bXBvcnQgdW5pdHRlc3QubW9jayBhcyBtb2NrCisKK2ltcG9ydCBweXRlc3QKKworY29uZmlnID0g
eyJteWtleSI6ICJPUklHSU5BTCJ9CisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlv
biIpCitAbW9jay5wYXRjaC5kaWN0KGNvbmZpZywgeyJteWtleSI6ICJNT0NLRUQifSkKK2RlZiBt
eV9maXh0dXJlKCk6CisgICAgcmV0dXJuIGNvbmZpZ1sibXlrZXkiXQorCisKK2RlZiB0ZXN0X2Zv
b2JhcihteV9maXh0dXJlKToKKyAgICBhc3NlcnQgbXlfZml4dHVyZSA9PSAiTU9DS0VEIgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvYWNjZXB0YW5jZS93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2FjY2Vw
dGFuY2UvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI3Yjc1ZTA1ZmVjYTc4NjI4ZThhMjVh
NmE3MDMwNzFiMTQ5ZjJiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL2FjY2VwdGFuY2UvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitE
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qg
b2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvYWNjZXB0YW5j
ZS9maXh0dXJlX21vY2tfaW50ZWdyYXRpb24ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0X3Rlc3RzL3B5dGVzdC5p
bmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3Rf
aW5pdF90ZXN0cy9weXRlc3QuaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjNDc5NTU0MDI1MTFkNTIzYmU1ZWE4
NWNmMDRiOTA2NjJlNmZkMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy9weXRlc3QuaW5pCkBA
IC0wLDAgKzEsMiBAQAorW3B5dGVzdF0KK3B5dGhvbl9maWxlcyA9ICoucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0
X3Rlc3RzL3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvY29sbGVjdC9jb2xsZWN0X2luaXRfdGVzdHMvdGVzdHMvX19pbml0X18ucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjIxMTA1NTcxOGYwYjFlNmFhYWI1ZjA4NjI0ZDMwODFjYjI0N2I0YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvY29s
bGVjdF9pbml0X3Rlc3RzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMyBAQAorIyAtKi0g
Y29kaW5nOiB1dGYtOCAtKi0KK2RlZiB0ZXN0X2luaXQoKToKKyAgICBwYXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5p
dF90ZXN0cy90ZXN0cy90ZXN0X2Zvby5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0X3Rlc3RzL3Rlc3RzL3Rlc3RfZm9vLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhjNTYwZmQxMzlmMTczOWRkOTVjODA2NjMwM2RhMTFmNGYxMGVjMmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2Nv
bGxlY3RfaW5pdF90ZXN0cy90ZXN0cy90ZXN0X2Zvby5weQpAQCAtMCwwICsxLDMgQEAKKyMgLSot
IGNvZGluZzogdXRmLTggLSotCitkZWYgdGVzdF9mb28oKToKKyAgICBwYXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5p
dF90ZXN0cy90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0X3Rlc3RzL3Rlc3RzL3czYy1pbXBvcnQubG9n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE2ZWRmZGQzMzc2NjJlNjYxNTVmMGM1NDU0NTNlYWU1NWQ3NjcxMmMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xs
ZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy90ZXN0cy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0
L2NvbGxlY3RfaW5pdF90ZXN0cy90ZXN0cy9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0X3Rlc3RzL3Rlc3RzL3Rlc3Rf
Zm9vLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9j
b2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0X3Rlc3RzL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM2ZjE2ZjQ0MGQwODczNWYzODk1NDFiYWI0YzhjMzU0MzRlMmZh
ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0
L2NvbGxlY3RfaW5pdF90ZXN0cy9weXRlc3QuaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9u
L2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVj
dC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzNk
OWE3OTFjMDk2N2Y2OGE2ODU5YzRlMzZhYWY1OTRhZDI2ZDU4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmlu
aXRlX3JlY3Vyc2lvbi9jb25mdGVzdC5weQpAQCAtMCwwICsxLDMgQEAKKyMgLSotIGNvZGluZzog
dXRmLTggLSotCitkZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgpOgorICAgIHJldHVybiBG
YWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29s
bGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbmZpbml0ZV9y
ZWN1cnNpb24vdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4MzRiODI4NWE1NmJlZjBl
MTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbmZpbml0ZV9yZWN1cnNpb24v
dGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQg
Zm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy90ZXN0
X2Jhc2ljLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9w
YWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy90ZXN0X2Jhc2ljLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEwYzVmNjA1MjAyNWE0NGJlYmQyZGQwNWUzYmU1Mzk5ODlkYjk2ODkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2Vf
aW5maW5pdGVfcmVjdXJzaW9uL3Rlc3RzL3Rlc3RfYmFzaWMucHkKQEAgLTAsMCArMSwzIEBACisj
IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZGVmIHRlc3QoKToKKyAgICBwYXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5m
aW5pdGVfcmVjdXJzaW9uL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0
cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmMyMjU4NTg1YjM1NzU1YTc3OTM2YmQyOTll
ZmU4NGNiYzQyYWZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL3Rlc3Rz
L19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVj
dC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy90ZXN0X2Jhc2ljLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2Vf
aW5maW5pdGVfcmVjdXJzaW9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi93M2MtaW1w
b3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yYzlkMzYzOWRiMTdlOTlkMDc0MWY1YjJhMTI0ZGIxMWVjYjFh
ZWQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi93M2MtaW1wb3J0LmxvZwpAQCAt
MCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1Ro
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL2NvbmZ0ZXN0LnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2Vf
aW5pdF9naXZlbl9hc19hcmcvcGtnL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luaXRfZ2l2ZW5fYXNfYXJnL3BrZy9fX2lu
aXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJj
MjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvY29sbGVjdC9wYWNrYWdlX2luaXRfZ2l2ZW5fYXNfYXJnL3BrZy9fX2luaXRfXy5weQpAQCAt
MCwwICsxIEBACisjIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0
aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3Bh
Y2thZ2VfaW5pdF9naXZlbl9hc19hcmcvcGtnL3Rlc3RfZm9vLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luaXRfZ2l2ZW5fYXNfYXJnL3Br
Zy90ZXN0X2Zvby5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGM1ZjYwNTIwMjVhNDRiZWJkMmRkMDVlM2JlNTM5
OTg5ZGI5Njg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luaXRfZ2l2ZW5fYXNfYXJnL3BrZy90ZXN0X2Zvby5w
eQpAQCAtMCwwICsxLDMgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitkZWYgdGVzdCgpOgor
ICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2NvbGxlY3QvcGFja2FnZV9pbml0X2dpdmVuX2FzX2FyZy9wa2cvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9n
aXZlbl9hc19hcmcvcGtnL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYmEyYWQ5MTJjZjg3
NDA5YmFiM2Q2YzgzZTg3MTlkNzZiODM5NzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19h
cmcvcGtnL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbml0X2dpdmVuX2Fz
X2FyZy9wa2cvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19hcmcvcGtnL3Rlc3RfZm9vLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb25maWcvY29sbGVj
dF9weXRlc3RfcHJlZml4L2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0X3ByZWZpeC9jb25mdGVzdC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xMzM5N2NjYzRjODhiYWU1ZGJlN2IzNWFmYjNkMzcyNTFiYjdlZmNkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZmlnL2NvbGxl
Y3RfcHl0ZXN0X3ByZWZpeC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDMgQEAKKyMgLSotIGNvZGlu
ZzogdXRmLTggLSotCitjbGFzcyBweXRlc3Rfc29tZXRoaW5nKG9iamVjdCk6CisgICAgcGFzcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZmlnL2Nv
bGxlY3RfcHl0ZXN0X3ByZWZpeC90ZXN0X2Zvby5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL2NvbmZpZy9jb2xsZWN0X3B5dGVzdF9wcmVmaXgvdGVzdF9mb28ucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGM1NjBmZDEzOWYxNzM5ZGQ5NWM4MDY2MzAzZGExMWY0ZjEwZWMyYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZpZy9j
b2xsZWN0X3B5dGVzdF9wcmVmaXgvdGVzdF9mb28ucHkKQEAgLTAsMCArMSwzIEBACisjIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQorZGVmIHRlc3RfZm9vKCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0
X3ByZWZpeC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2NvbmZpZy9jb2xsZWN0X3B5dGVzdF9wcmVmaXgvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTNjMTgxNjc3OTkzOGFjMzRkNzJjNzQ2NWFhZGNmMGRlZDk3YmRhOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZpZy9jb2xsZWN0
X3B5dGVzdF9wcmVmaXgvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
CitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0
X3ByZWZpeC9jb25mdGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2NvbmZpZy9jb2xsZWN0X3B5dGVzdF9wcmVmaXgvdGVzdF9mb28ucHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZ0ZXN0X3VzYWdlZXJyb3IvY29u
ZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb25mdGVzdF91
c2FnZWVycm9yL2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyZjA0MDU3OGZhN2Y2MGJkMmMwZmVi
ZDMxOGY0NmY2YzhmMWRiM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9jb25mdGVzdF91c2FnZWVycm9yL2NvbmZ0ZXN0LnB5CkBAIC0wLDAg
KzEsOSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2RlZiBweXRlc3RfY29uZmlndXJlKGNv
bmZpZyk6CisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgcmFpc2UgcHl0ZXN0LlVzYWdlRXJyb3Io
ImhlbGxvIikKKworCitkZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZyk6CisgICAgcHJpbnQo
InB5dGVzdF91bmNvbmZpZ3VyZV9jYWxsZWQiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvY29uZnRlc3RfdXNhZ2VlcnJvci93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZ0ZXN0X3VzYWdlZXJyb3Iv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc4NmNjYmFiZTAwMDFlMDEzZDY1ZWM3NDg4MmEw
M2U5MjY4ZmRjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2NvbmZ0ZXN0X3VzYWdlZXJyb3IvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwx
NyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
KwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAor
CitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xp
c3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZnRl
c3RfdXNhZ2VlcnJvci9jb25mdGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9j
b21wYXJlX2RhdGFjbGFzc2VzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzODFiNWVkMDcxNGQ3NWVjYmQ0ZDIy
MGNmMzk3MWU4ODkwN2I5N2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nlcy90ZXN0X2NvbXBhcmVfZGF0YWNsYXNzZXMucHkK
QEAgLTAsMCArMSwxNSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gZGF0YWNsYXNz
ZXMgaW1wb3J0IGRhdGFjbGFzcworZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZmllbGQKKworCitk
ZWYgdGVzdF9kYXRhY2xhc3NlcygpOgorICAgIEBkYXRhY2xhc3MKKyAgICBjbGFzcyBTaW1wbGVE
YXRhT2JqZWN0KG9iamVjdCk6CisgICAgICAgIGZpZWxkX2E6IGludCA9IGZpZWxkKCkKKyAgICAg
ICAgZmllbGRfYjogaW50ID0gZmllbGQoKQorCisgICAgbGVmdCA9IFNpbXBsZURhdGFPYmplY3Qo
MSwgImIiKQorICAgIHJpZ2h0ID0gU2ltcGxlRGF0YU9iamVjdCgxLCAiYyIpCisKKyAgICBhc3Nl
cnQgbGVmdCA9PSByaWdodApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzX2ZpZWxkX2NvbXBh
cmlzb25fb2ZmLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNs
YXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzX2ZpZWxkX2NvbXBhcmlzb25fb2ZmLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ0MThkZDZiMGNmZTVlMWQ3YTA2MDUwYzVmMmU5YTcwMmYxYjdkYTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xh
c3Nlcy90ZXN0X2NvbXBhcmVfZGF0YWNsYXNzZXNfZmllbGRfY29tcGFyaXNvbl9vZmYucHkKQEAg
LTAsMCArMSwxNSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gZGF0YWNsYXNzZXMg
aW1wb3J0IGRhdGFjbGFzcworZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZmllbGQKKworCitkZWYg
dGVzdF9kYXRhY2xhc3Nlc193aXRoX2F0dHJpYnV0ZV9jb21wYXJpc29uX29mZigpOgorICAgIEBk
YXRhY2xhc3MKKyAgICBjbGFzcyBTaW1wbGVEYXRhT2JqZWN0KG9iamVjdCk6CisgICAgICAgIGZp
ZWxkX2E6IGludCA9IGZpZWxkKCkKKyAgICAgICAgZmllbGRfYjogaW50ID0gZmllbGQoY29tcGFy
ZT1GYWxzZSkKKworICAgIGxlZnQgPSBTaW1wbGVEYXRhT2JqZWN0KDEsICJiIikKKyAgICByaWdo
dCA9IFNpbXBsZURhdGFPYmplY3QoMSwgImMiKQorCisgICAgYXNzZXJ0IGxlZnQgPT0gcmlnaHQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2RhdGFjbGFz
c2VzL3Rlc3RfY29tcGFyZV9kYXRhY2xhc3Nlc192ZXJib3NlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2Vz
X3ZlcmJvc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTcyY2E1MTE5ZTZkOWI0ZGYyOGY3YjE0MWRhNjdlYjQ0
YTcwNDY5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2RhdGFjbGFzc2VzL3Rlc3RfY29tcGFyZV9kYXRhY2xhc3Nlc192ZXJib3NlLnB5CkBA
IC0wLDAgKzEsMTUgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIGRhdGFjbGFzc2Vz
IGltcG9ydCBkYXRhY2xhc3MKK2Zyb20gZGF0YWNsYXNzZXMgaW1wb3J0IGZpZWxkCisKKworZGVm
IHRlc3RfZGF0YWNsYXNzZXNfdmVyYm9zZSgpOgorICAgIEBkYXRhY2xhc3MKKyAgICBjbGFzcyBT
aW1wbGVEYXRhT2JqZWN0KG9iamVjdCk6CisgICAgICAgIGZpZWxkX2E6IGludCA9IGZpZWxkKCkK
KyAgICAgICAgZmllbGRfYjogaW50ID0gZmllbGQoKQorCisgICAgbGVmdCA9IFNpbXBsZURhdGFP
YmplY3QoMSwgImIiKQorICAgIHJpZ2h0ID0gU2ltcGxlRGF0YU9iamVjdCgxLCAiYyIpCisKKyAg
ICBhc3NlcnQgbGVmdCA9PSByaWdodApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX3R3b19kaWZmZXJlbnRfZGF0
YWNsYXNzZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xh
c3Nlcy90ZXN0X2NvbXBhcmVfdHdvX2RpZmZlcmVudF9kYXRhY2xhc3Nlcy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNzdiNzBkM2MyZGMxNDJhNTZhMDBkNGM4YTBlMTliMmY1Yjk1OTgxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVz
dF9jb21wYXJlX3R3b19kaWZmZXJlbnRfZGF0YWNsYXNzZXMucHkKQEAgLTAsMCArMSwyMCBAQAor
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gZGF0YWNsYXNzZXMgaW1wb3J0IGRhdGFjbGFz
cworZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZmllbGQKKworCitkZWYgdGVzdF9jb21wYXJpbmdf
dHdvX2RpZmZlcmVudF9kYXRhX2NsYXNzZXMoKToKKyAgICBAZGF0YWNsYXNzCisgICAgY2xhc3Mg
U2ltcGxlRGF0YU9iamVjdE9uZShvYmplY3QpOgorICAgICAgICBmaWVsZF9hOiBpbnQgPSBmaWVs
ZCgpCisgICAgICAgIGZpZWxkX2I6IGludCA9IGZpZWxkKCkKKworICAgIEBkYXRhY2xhc3MKKyAg
ICBjbGFzcyBTaW1wbGVEYXRhT2JqZWN0VHdvKG9iamVjdCk6CisgICAgICAgIGZpZWxkX2E6IGlu
dCA9IGZpZWxkKCkKKyAgICAgICAgZmllbGRfYjogaW50ID0gZmllbGQoKQorCisgICAgbGVmdCA9
IFNpbXBsZURhdGFPYmplY3RPbmUoMSwgImIiKQorICAgIHJpZ2h0ID0gU2ltcGxlRGF0YU9iamVj
dFR3bygxLCAiYyIpCisKKyAgICBhc3NlcnQgbGVmdCAhPSByaWdodApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nlcy93M2Mt
aW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjI5NDA5YzIxODFmZDE3ODc3MmRhMjg2NjUxZmIxMzdj
NjRiZjllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvZGF0YWNsYXNzZXMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9j
b21wYXJlX2RhdGFjbGFzc2VzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzX2ZpZWxkX2NvbXBhcmlzb25f
b2ZmLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMv
dGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzX3ZlcmJvc2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nlcy90ZXN0X2NvbXBhcmVfdHdvX2RpZmZlcmVudF9k
YXRhY2xhc3Nlcy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvZGVwcmVjYXRlZC90ZXN0X2ZpeHR1cmVfbmFtZWRfcmVxdWVzdC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2RlcHJlY2F0ZWQvdGVzdF9maXh0dXJlX25hbWVk
X3JlcXVlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZhZGRjMjk5NTQ4ZTAyNDAzYzJiODlkMmYxZjg1YzAw
ZTU3NGEwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2RlcHJlY2F0ZWQvdGVzdF9maXh0dXJlX25hbWVkX3JlcXVlc3QucHkKQEAgLTAsMCAr
MSwxMSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCBweXRlc3QKKworCitAcHl0
ZXN0LmZpeHR1cmUKK2RlZiByZXF1ZXN0KCk6CisgICAgcGFzcworCisKK2RlZiB0ZXN0KCk6Cisg
ICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
ZGVwcmVjYXRlZC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2RlcHJlY2F0ZWQvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQxYTAzYjZmNTgz
YTdiMTZmOGZlZDc3YzY1NTQ3Y2Y1MjJkNDdjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2RlcHJlY2F0ZWQvdzNjLWltcG9ydC5sb2cKQEAg
LTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitU
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZGVwcmVjYXRlZC90ZXN0X2ZpeHR1cmVfbmFtZWRfcmVxdWVzdC5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0v
Y29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJl
cy9jdXN0b21faXRlbS9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTQxZDBmYmE2ODc4ZTA0NmZk
YmRlMzFmNTcyYTUwMGEzNmI5NWNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vY29uZnRlc3QucHkKQEAg
LTAsMCArMSwxMSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCBweXRlc3QKKwor
CitjbGFzcyBDdXN0b21JdGVtKHB5dGVzdC5JdGVtLCBweXRlc3QuRmlsZSk6CisgICAgZGVmIHJ1
bnRlc3Qoc2VsZik6CisgICAgICAgIHBhc3MKKworCitkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShw
YXRoLCBwYXJlbnQpOgorICAgIHJldHVybiBDdXN0b21JdGVtKHBhdGgsIHBhcmVudCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3Rv
bV9pdGVtL2Zvby9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL2Zvby9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgz
NGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0v
Zm9vL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL2Zvby90ZXN0X2Zvby5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL2Zvby90ZXN0
X2Zvby5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xMGM1ZjYwNTIwMjVhNDRiZWJkMmRkMDVlM2JlNTM5OTg5ZGI5
Njg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL3Rlc3RfZm9vLnB5CkBAIC0wLDAgKzEsMyBAQAor
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2RlZiB0ZXN0KCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0
ZW0vZm9vL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2
NGM1ZTQ1OGNkMTg3NDI2M2VlOTIzOWQyMWU1YThiODQ3NjRmZDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRl
bS9mb28vdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL19faW5p
dF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3Vz
dG9tX2l0ZW0vZm9vL3Rlc3RfZm9vLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRlbS93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3MTg3Yzg3NjE1NzY0MTgzNjNhZGZiY2I4ZDdlNDU2
MWIyYmI3ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRlbS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJl
cy9jdXN0b21faXRlbS9jb25mdGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1
bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL19faW5pdF9fLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0
X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL19faW5pdF9f
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9m
aXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFi
bGVfaW5fc3ViZGlyL3N1YjEvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUg
aXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVs
ZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0
ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL2NvbmZ0ZXN0LnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJl
cy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL2Nv
bmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MmU3ZDYwYTY5N2YzZWMyNDhjYmRkNzVhMzNmYzFkZDRl
N2RmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2Ny
aXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9h
dmFpbGFibGVfaW5fc3ViZGlyL3N1YjEvY29uZnRlc3QucHkKQEAgLTAsMCArMSw4IEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK0BweXRlc3QuZml4dHVyZQor
ZGVmIGFyZzEocmVxdWVzdCk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbik6Cisg
ICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJhcmcyIikKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVz
dF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMS90ZXN0X2lu
X3N1YjEucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9m
aWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3Vi
ZGlyL3N1YjEvdGVzdF9pbl9zdWIxLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MjRmNGU5OWVmODAxZDQwMmE5
MmE2MGFkYjA2YWZmZWI0MjdmODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3Rf
ZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjEvdGVzdF9pbl9zdWIxLnB5CkBA
IC0wLDAgKzEsMyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2RlZiB0ZXN0XzEoYXJnMSk6
CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZh
aWxhYmxlX2luX3N1YmRpci9zdWIxL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1
bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL3czYy1pbXBvcnQubG9nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQyYzE4OGJiODhiNjNiMTFlODJjNThkMTkxMjI5NmZiN2I5ZjAwNzIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9m
aWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3Vi
ZGlyL3N1YjEvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0
X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL19faW5pdF9f
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9m
aXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9z
dWIxL2NvbmZ0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4
dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxl
X2luX3N1YmRpci9zdWIxL3Rlc3RfaW5fc3ViMS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0
ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL19faW5pdF9fLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJl
cy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL19f
aW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4
YmMyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2Ny
aXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9h
dmFpbGFibGVfaW5fc3ViZGlyL3N1YjIvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlz
IGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9y
IG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0
X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL2NvbmZ0ZXN0
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9m
aXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9z
dWIyL2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiZTkwYjRkZmU3MDdmMGQ4YjYxMDdiZmIyN2E1
M2U1MzEzNGE2NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nf
b25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjIvY29uZnRlc3QucHkKQEAgLTAsMCArMSw3IEBA
CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK0BweXRlc3QuZml4
dHVyZQorZGVmIGFyZzIocmVxdWVzdCk6CisgICAgcHl0ZXN0LnJhaXNlcyhFeGNlcHRpb24sIHJl
cXVlc3QuZ2V0Zml4dHVyZXZhbHVlLCAiYXJnMSIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRl
c3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjIvdGVzdF9pbl9zdWIyLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0
dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIy
L3Rlc3RfaW5fc3ViMi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTQzMjA0MmJmZDJhYzg2ZjE4ZjE4ZmQyNzA1
ZDQzMjkwM2I4MTk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdz
X29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL3Rlc3RfaW5fc3ViMi5weQpAQCAtMCwwICsx
LDMgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitkZWYgdGVzdF8yKGFyZzIpOgorICAgIHBh
c3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1
cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9p
bl9zdWJkaXIvc3ViMi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19v
bmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
YTVmZDAyMmY0Njk3Y2IxZDVjMGUxOTk0NjBlOWM4OGUwZWM2YWU5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0
dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIy
L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVz
dF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMi9fX2luaXRfXy5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMv
dGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMi9jb25m
dGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2Zp
bGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJk
aXIvc3ViMi90ZXN0X2luX3N1YjIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9kZXRlY3RfcmVjdXJz
aXZlX2RlcGVuZGVuY3lfZXJyb3IucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2Ny
aXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZGV0ZWN0X3JlY3Vyc2l2ZV9kZXBlbmRl
bmN5X2Vycm9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZTU0ZWVhN2U0NjQ1YjBlZTA0YmEwZmJjYzVhY2Nl
YWMwZmMzMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZGV0ZWN0X3JlY3Vyc2l2ZV9kZXBl
bmRlbmN5X2Vycm9yLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSot
CitpbXBvcnQgcHl0ZXN0CisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgZml4MShmaXgyKToKKyAg
ICByZXR1cm4gMQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGZpeDIoZml4MSk6CisgICAgcmV0
dXJuIDEKKworCitkZWYgdGVzdChmaXgxKToKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3Rf
ZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0
ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc3
NTZlNjQ5MWY4ZGJiODE5ODBmMzI5ZmJkZmNmMGM0NjQ1NTY1YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVy
ZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC9jb25mdGVzdC5weQpAQCAt
MCwwICsxLDcgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgcHl0ZXN0CisKKwor
QHB5dGVzdC5maXh0dXJlCitkZWYgc3BhbSgpOgorICAgIHJldHVybiAic3BhbSIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4
dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC9wa2cvX19pbml0X18u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2Zp
eHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL19faW5pdF9f
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9m
aXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRl
c3QvcGtnL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9j
b25mdGVzdF9jb25mdGVzdC9wa2cvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVf
Y29uZnRlc3RfY29uZnRlc3QvcGtnL2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjZDg4NTI0YjZm
MDgxZjc0OTFhYWIwMjE2YTQ3MGExMWNkMjUyZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3Rf
ZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL2NvbmZ0ZXN0LnB5CkBAIC0wLDAg
KzEsNyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCBweXRlc3QKKworCitAcHl0
ZXN0LmZpeHR1cmUKK2RlZiBzcGFtKHNwYW0pOgorICAgIHJldHVybiBzcGFtICogMgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9m
aXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy90ZXN0X3Nw
YW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxs
X2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL3Rlc3Rf
c3BhbS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42NTY5MGM0OWYyMzE1M2ZkZDNjNjMxZTZjOWEwODgyNWZlMjIy
YzhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2Nv
bmZ0ZXN0L3BrZy90ZXN0X3NwYW0ucHkKQEAgLTAsMCArMSwzIEBACisjIC0qLSBjb2Rpbmc6IHV0
Zi04IC0qLQorZGVmIHRlc3Rfc3BhbShzcGFtKToKKyAgICBhc3NlcnQgc3BhbSA9PSAic3BhbXNw
YW0iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0
dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3Qv
cGtnL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
Zml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0
ZXN0L3BrZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2FjODIyMjZlMTY2OTRiMTk5MWJh
ODRmOTU4ZWQ4ZGYwYTc3ODQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0
dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5IEBA
CitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0Rv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBv
ZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9m
aWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL19f
aW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
ZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy9j
b25mdGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVz
L2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC9wa2cv
dGVzdF9zcGFtLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2Ny
aXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3Rf
Y29uZnRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2Ny
aXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3Rf
Y29uZnRlc3QvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJmYjM4OTgxOTVmODNhZmZiYjU2
ODFkZDgwZWI5M2E3NjAwNzc3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4
dHVyZV9jb25mdGVzdF9jb25mdGVzdC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitU
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgor
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBm
aWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxs
X2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvY29uZnRlc3Qu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1
cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvY29u
ZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9m
aWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfbW9kdWxlL2NvbmZ0ZXN0
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg3NzU2ZTY0OTFmOGRiYjgxOTgwZjMyOWZiZGZjZjBjNDY0NTU2NWEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9m
aXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfbW9kdWxl
L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsNyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2lt
cG9ydCBweXRlc3QKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBzcGFtKCk6CisgICAgcmV0dXJu
ICJzcGFtIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
Zml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVs
ZS90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVsZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRf
Zml4dHVyZV9jb25mdGVzdF9tb2R1bGUvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1
bGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWIzNDRjMTIyZjFhYjNjMDBhNjVhMWUyMTllODAzMTI3MDk5NjMy
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1
bGUvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUucHkKQEAgLTAsMCArMSwxMSBA
QAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCBweXRlc3QKKworCitAcHl0ZXN0LmZp
eHR1cmUKK2RlZiBzcGFtKHNwYW0pOgorICAgIHJldHVybiBzcGFtICogMgorCisKK2RlZiB0ZXN0
X3NwYW0oc3BhbSk6CisgICAgYXNzZXJ0IHNwYW0gPT0gInNwYW1zcGFtIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJl
cy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVsZS93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMv
dGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvdzNjLWltcG9ydC5sb2cKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2UwYTc1MmM5ZTQ1ZjIyMGUzOWM4YTZlYzYyYjI5MTcyODQ2OWY1YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2Zp
bGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvdzNjLWltcG9y
dC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2Nv
bmZ0ZXN0X21vZHVsZS9jb25mdGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVz
dF9tb2R1bGUvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4
dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9tb2R1bGVfY2xhc3MucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5k
X2ZpeHR1cmVfbW9kdWxlX2NsYXNzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzMzJjNjYwMTdiMzc1ZDhjZmM5
YzdiYjc0MmUyNDlhM2Q3MDQzYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2Zp
eHR1cmVfbW9kdWxlX2NsYXNzLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgLSotIGNvZGluZzogdXRm
LTggLSotCitpbXBvcnQgcHl0ZXN0CisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgc3BhbSgpOgor
ICAgIHJldHVybiAic3BhbSIKKworCitjbGFzcyBUZXN0U3BhbShvYmplY3QpOgorICAgIEBweXRl
c3QuZml4dHVyZQorICAgIGRlZiBzcGFtKHNlbGYsIHNwYW0pOgorICAgICAgICByZXR1cm4gc3Bh
bSAqIDIKKworICAgIGRlZiB0ZXN0X3NwYW0oc2VsZiwgc3BhbSk6CisgICAgICAgIGFzc2VydCBz
cGFtID09ICJzcGFtc3BhbSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2Jhc2ljLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJl
cy90ZXN0X2Z1bmNhcmdfYmFzaWMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmEzMDJjNDllNmNhM2QxNDI2ZDdj
YzNmOWZiMjc5ZTllZDEyZDViMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2Jh
c2ljLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQg
cHl0ZXN0CisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgc29tZShyZXF1ZXN0KToKKyAgICByZXR1
cm4gcmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXworCisKK0BweXRlc3QuZml4dHVyZQorZGVmIG90
aGVyKHJlcXVlc3QpOgorICAgIHJldHVybiA0MgorCisKK2RlZiB0ZXN0X2Z1bmMoc29tZSwgb3Ro
ZXIpOgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2xvb2t1cF9jbGFzc2xl
dmVsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmls
bF9maXh0dXJlcy90ZXN0X2Z1bmNhcmdfbG9va3VwX2NsYXNzbGV2ZWwucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTAwNGQ1ZDEzNTJjYTAwZjgzOTc4MWNmMjVlNTJjNGY2NjFmM2U1OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4
dHVyZXMvdGVzdF9mdW5jYXJnX2xvb2t1cF9jbGFzc2xldmVsLnB5CkBAIC0wLDAgKzEsMTEgQEAK
KyMgLSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgcHl0ZXN0CisKKworY2xhc3MgVGVzdENs
YXNzKG9iamVjdCk6CisgICAgQHB5dGVzdC5maXh0dXJlCisgICAgZGVmIHNvbWV0aGluZyhzZWxm
LCByZXF1ZXN0KToKKyAgICAgICAgcmV0dXJuIHJlcXVlc3QuaW5zdGFuY2UKKworICAgIGRlZiB0
ZXN0X21ldGhvZChzZWxmLCBzb21ldGhpbmcpOgorICAgICAgICBhc3NlcnQgc29tZXRoaW5nIGlz
IHNlbGYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2Zp
eHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2xvb2t1cF9tb2R1bGVsZXZlbC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVy
ZXMvdGVzdF9mdW5jYXJnX2xvb2t1cF9tb2R1bGVsZXZlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWQyODNl
OWY2NjVkZTk0YjA0N2E2NmUwNDdkODU4ZDBlYzY0MWRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90
ZXN0X2Z1bmNhcmdfbG9va3VwX21vZHVsZWxldmVsLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgLSot
IGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgcHl0ZXN0CisKKworQHB5dGVzdC5maXh0dXJlCitk
ZWYgc29tZXRoaW5nKHJlcXVlc3QpOgorICAgIHJldHVybiByZXF1ZXN0LmZ1bmN0aW9uLl9fbmFt
ZV9fCisKKworY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfbWV0aG9kKHNl
bGYsIHNvbWV0aGluZyk6CisgICAgICAgIGFzc2VydCBzb21ldGhpbmcgPT0gInRlc3RfbWV0aG9k
IgorCisKK2RlZiB0ZXN0X2Z1bmMoc29tZXRoaW5nKToKKyAgICBhc3NlcnQgc29tZXRoaW5nID09
ICJ0ZXN0X2Z1bmMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2Ny
aXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZnVuY2FyZ19sb29rdXBmYWlscy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVy
ZXMvdGVzdF9mdW5jYXJnX2xvb2t1cGZhaWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZjQyNmFmOWM5MzFk
OTNkY2FiZmE4ZmQyYmViYWE0MGU3MDljNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZnVu
Y2FyZ19sb29rdXBmYWlscy5weQpAQCAtMCwwICsxLDExIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIHh5enNvbWV0aGlu
ZyhyZXF1ZXN0KToKKyAgICByZXR1cm4gNDIKKworCitkZWYgdGVzdF9mdW5jKHNvbWUpOgorICAg
IHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2Zp
eHR1cmVzL2ZpbGxfZml4dHVyZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU5MjIzNjE4ZDY1YjI3YjUxYWViMWRkMmIwYzhmNGMzOTFiMDhjNjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJl
cy9maWxsX2ZpeHR1cmVzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjIgQEAKK1RoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVy
ZXMvdGVzdF9kZXRlY3RfcmVjdXJzaXZlX2RlcGVuZGVuY3lfZXJyb3IucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0
ZW5kX2ZpeHR1cmVfbW9kdWxlX2NsYXNzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2Z1bmNhcmdfYmFzaWMucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfZnVuY2FyZ19sb29rdXBfY2xhc3NsZXZlbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2xvb2t1
cF9tb2R1bGVsZXZlbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2Zp
eHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9mdW5jYXJnX2xvb2t1cGZhaWxzLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy90ZXN0X2dl
dGZpeHR1cmV2YWx1ZV9keW5hbWljLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvZml4dHVyZXMvdGVzdF9nZXRmaXh0dXJldmFsdWVfZHluYW1pYy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMTllNTc0MjFkOGZiNmYxZTc0NTg4N2E3N2FlYjgxZjMyNDYxNjFkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvdGVzdF9n
ZXRmaXh0dXJldmFsdWVfZHluYW1pYy5weQpAQCAtMCwwICsxLDIxIEBACisjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGR5bmFt
aWMoKToKKyAgICBwYXNzCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgYShyZXF1ZXN0KToKKyAg
ICByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgiZHluYW1pYyIpCisKKworQHB5dGVzdC5maXh0dXJl
CitkZWYgYihhKToKKyAgICBwYXNzCisKKworZGVmIHRlc3QoYiwgcmVxdWVzdCk6CisgICAgYXNz
ZXJ0IHJlcXVlc3QuZml4dHVyZW5hbWVzID09IFsiYiIsICJyZXF1ZXN0IiwgImEiLCAiZHluYW1p
YyJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0
dXJlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2ZpeHR1cmVzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMzEyYTc4YTc0YTQxYmRkN2E3
MTAyZWUwMzBhYjdlYTc4ZTlkNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJl
cy90ZXN0X2dldGZpeHR1cmV2YWx1ZV9keW5hbWljLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1ZTg4X2luaXRpYWxfZmlsZV9tdWx0aW5vZGVz
L2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWU4
OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjNlN2I0
ZTUyYTliYTJjZTViMTZlYjQ0MGM4ZjZkMmFkOTViYTEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVs
dGlub2Rlcy9jb25mdGVzdC5weQpAQCAtMCwwICsxLDE1IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04
IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK2NsYXNzIE15RmlsZShweXRlc3QuRmlsZSk6CisgICAg
ZGVmIGNvbGxlY3Qoc2VsZik6CisgICAgICAgIHJldHVybiBbTXlJdGVtKCJoZWxsbyIsIHBhcmVu
dD1zZWxmKV0KKworCitkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgorICAg
IHJldHVybiBNeUZpbGUocGF0aCwgcGFyZW50KQorCisKK2NsYXNzIE15SXRlbShweXRlc3QuSXRl
bSk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy90ZXN0X2hlbGxvLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVs
dGlub2Rlcy90ZXN0X2hlbGxvLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1M2Q1NzBhODhjNTViNWY4YzcwNzM0
MWViOGRlOTNmNzQwYTEyODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9pc3N1ZTg4X2luaXRpYWxfZmlsZV9tdWx0aW5vZGVzL3Rlc3RfaGVs
bG8ucHkKQEAgLTAsMCArMSwzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZGVmIHRlc3Rf
aGVsbG8oKToKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9pc3N1ZTg4X2luaXRpYWxfZmlsZV9tdWx0aW5vZGVzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWU4OF9pbml0aWFsX2Zp
bGVfbXVsdGlub2Rlcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTVkMGJkNjJiZTBjM2Qx
YjZmMDgwMjAxMzYzMDFiNTgxZjgwODhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1ZTg4X2luaXRpYWxfZmlsZV9tdWx0aW5vZGVzL2NvbmZ0
ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWU4OF9pbml0
aWFsX2ZpbGVfbXVsdGlub2Rlcy90ZXN0X2hlbGxvLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1ZV81MTkucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1ZV81MTkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjRkODY0YTUzODA5
YTdmZmY2NmI5NzViYWViMGIxODAzOGZkZjhjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2lzc3VlXzUxOS5weQpAQCAtMCwwICsxLDUyIEBA
CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHBwcmludAorCitpbXBvcnQgcHl0ZXN0
CisKKworZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgaWYgImFyZzEi
IGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lczoKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUo
ImFyZzEiLCBbImFyZzF2MSIsICJhcmcxdjIiXSwgc2NvcGU9Im1vZHVsZSIpCisKKyAgICBpZiAi
YXJnMiIgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzOgorICAgICAgICBtZXRhZnVuYy5wYXJhbWV0
cml6ZSgiYXJnMiIsIFsiYXJnMnYxIiwgImFyZzJ2MiJdLCBzY29wZT0iZnVuY3Rpb24iKQorCisK
K0BweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCitkZWYgY2hlY2tlZF9vcmRlcigpOgor
ICAgIG9yZGVyID0gW10KKworICAgIHlpZWxkIG9yZGVyCisgICAgcHByaW50LnBwcmludChvcmRl
cikKKyAgICBhc3NlcnQgb3JkZXIgPT0gWworICAgICAgICAoInRlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2lzc3VlXzUxOS5weSIsICJmaXgxIiwgImFyZzF2MSIpLAorICAgICAgICAoInRlc3Rfb25l
W2FyZzF2MS1hcmcydjFdIiwgImZpeDIiLCAiYXJnMnYxIiksCisgICAgICAgICgidGVzdF90d29b
YXJnMXYxLWFyZzJ2MV0iLCAiZml4MiIsICJhcmcydjEiKSwKKyAgICAgICAgKCJ0ZXN0X29uZVth
cmcxdjEtYXJnMnYyXSIsICJmaXgyIiwgImFyZzJ2MiIpLAorICAgICAgICAoInRlc3RfdHdvW2Fy
ZzF2MS1hcmcydjJdIiwgImZpeDIiLCAiYXJnMnYyIiksCisgICAgICAgICgidGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvaXNzdWVfNTE5LnB5IiwgImZpeDEiLCAiYXJnMXYyIiksCisgICAgICAgICgi
dGVzdF9vbmVbYXJnMXYyLWFyZzJ2MV0iLCAiZml4MiIsICJhcmcydjEiKSwKKyAgICAgICAgKCJ0
ZXN0X3R3b1thcmcxdjItYXJnMnYxXSIsICJmaXgyIiwgImFyZzJ2MSIpLAorICAgICAgICAoInRl
c3Rfb25lW2FyZzF2Mi1hcmcydjJdIiwgImZpeDIiLCAiYXJnMnYyIiksCisgICAgICAgICgidGVz
dF90d29bYXJnMXYyLWFyZzJ2Ml0iLCAiZml4MiIsICJhcmcydjIiKSwKKyAgICBdCisKKworQHB5
dGVzdC55aWVsZF9maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorZGVmIGZpeDEocmVxdWVzdCwgYXJn
MSwgY2hlY2tlZF9vcmRlcik6CisgICAgY2hlY2tlZF9vcmRlci5hcHBlbmQoKHJlcXVlc3Qubm9k
ZS5uYW1lLCAiZml4MSIsIGFyZzEpKQorICAgIHlpZWxkICJmaXgxLSIgKyBhcmcxCisKKworQHB5
dGVzdC55aWVsZF9maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCitkZWYgZml4MihyZXF1ZXN0LCBm
aXgxLCBhcmcyLCBjaGVja2VkX29yZGVyKToKKyAgICBjaGVja2VkX29yZGVyLmFwcGVuZCgocmVx
dWVzdC5ub2RlLm5hbWUsICJmaXgyIiwgYXJnMikpCisgICAgeWllbGQgImZpeDItIiArIGFyZzIg
KyBmaXgxCisKKworZGVmIHRlc3Rfb25lKGZpeDIpOgorICAgIHBhc3MKKworCitkZWYgdGVzdF90
d28oZml4Mik6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvbWFya3MvbWFya3NfY29uc2lkZXJlZF9rZXl3b3Jkcy9jb25mdGVzdC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL21hcmtzL21hcmtzX2NvbnNpZGVy
ZWRfa2V5d29yZHMvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIy
OWFlNzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvbWFya3MvbWFya3NfY29uc2lkZXJlZF9rZXl3b3Jkcy90ZXN0X21hcmtzX2Fz
X2tleXdvcmRzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvbWFya3Mv
bWFya3NfY29uc2lkZXJlZF9rZXl3b3Jkcy90ZXN0X21hcmtzX2FzX2tleXdvcmRzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYxZDk2OWEzNmI4YTRiZWZlYWY5YzQ5ZDA1ODg1ZjRiNzgyZGUyMmUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9tYXJrcy9tYXJr
c19jb25zaWRlcmVkX2tleXdvcmRzL3Rlc3RfbWFya3NfYXNfa2V5d29yZHMucHkKQEAgLTAsMCAr
MSw3IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHB5dGVzdAorCisKK0BweXRl
c3QubWFyay5mb28KK2RlZiB0ZXN0X21hcmsoKToKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9tYXJrcy9tYXJrc19jb25zaWRlcmVkX2tl
eXdvcmRzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvbWFya3MvbWFya3NfY29uc2lkZXJlZF9rZXl3b3Jkcy93M2MtaW1wb3J0LmxvZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNDgxYjIwMDRmYTM4MzZlODE1OGNhN2M4MjYyYmVlMzBkYjBkY2I2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvbWFya3MvbWFya3Nf
Y29uc2lkZXJlZF9rZXl3b3Jkcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxl
czoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9tYXJrcy9tYXJrc19jb25z
aWRlcmVkX2tleXdvcmRzL2NvbmZ0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvbWFya3MvbWFya3NfY29uc2lkZXJlZF9rZXl3b3Jkcy90ZXN0X21hcmtzX2FzX2tl
eXdvcmRzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9wZXJmX2V4YW1wbGVzL2NvbGxlY3Rfc3RhdHMvZ2VuZXJhdGVfZm9sZGVycy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3BlcmZfZXhhbXBsZXMvY29sbGVjdF9zdGF0
cy9nZW5lcmF0ZV9mb2xkZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyY2E4MThlYWQ5YTE5NWM5MDQzODky
OWM3ZjZmMjEyYTYxNTI5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9wZXJmX2V4YW1wbGVzL2NvbGxlY3Rfc3RhdHMvZ2VuZXJhdGVfZm9s
ZGVycy5weQpAQCAtMCwwICsxLDI4IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0
IGFyZ3BhcnNlCitpbXBvcnQgcGF0aGxpYgorCitIRVJFID0gcGF0aGxpYi5QYXRoKF9fZmlsZV9f
KS5wYXJlbnQKK1RFU1RfQ09OVEVOVCA9IChIRVJFIC8gInRlbXBsYXRlX3Rlc3QucHkiKS5yZWFk
X2J5dGVzKCkKKworcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorcGFyc2VyLmFk
ZF9hcmd1bWVudCgibnVtYmVycyIsIG5hcmdzPSIqIiwgdHlwZT1pbnQpCisKKworZGVmIGdlbmVy
YXRlX2ZvbGRlcnMocm9vdCwgZWxlbWVudHMsICptb3JlX251bWJlcnMpOgorICAgIGZpbGxfbGVu
ID0gbGVuKHN0cihlbGVtZW50cykpCisgICAgaWYgbW9yZV9udW1iZXJzOgorICAgICAgICBmb3Ig
aSBpbiByYW5nZShlbGVtZW50cyk6CisgICAgICAgICAgICBuZXdfZm9sZGVyID0gcm9vdC5qb2lu
cGF0aChmImZvb197aTowPntmaWxsX2xlbn19IikKKyAgICAgICAgICAgIG5ld19mb2xkZXIubWtk
aXIoKQorICAgICAgICAgICAgbmV3X2ZvbGRlci5qb2lucGF0aCgiX19pbml0X18ucHkiKS53cml0
ZV9ieXRlcyhURVNUX0NPTlRFTlQpCisgICAgICAgICAgICBnZW5lcmF0ZV9mb2xkZXJzKG5ld19m
b2xkZXIsICptb3JlX251bWJlcnMpCisgICAgZWxzZToKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo
ZWxlbWVudHMpOgorICAgICAgICAgICAgbmV3X3Rlc3QgPSByb290LmpvaW5wYXRoKGYidGVzdF97
aTowPHtmaWxsX2xlbn19LnB5IikKKyAgICAgICAgICAgIG5ld190ZXN0LndyaXRlX2J5dGVzKFRF
U1RfQ09OVEVOVCkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIGFyZ3MgPSBw
YXJzZXIucGFyc2VfYXJncygpCisgICAgZ2VuZXJhdGVfZm9sZGVycyhIRVJFLCAqKGFyZ3MubnVt
YmVycyBvciAoMTAsIDEwMCkpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvcGVyZl9leGFtcGxlcy9jb2xsZWN0X3N0YXRzL3RlbXBsYXRlX3Rlc3QucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9wZXJmX2V4YW1wbGVzL2NvbGxl
Y3Rfc3RhdHMvdGVtcGxhdGVfdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDBjZDVhNzE2NGUzNzg0NDcw
NjU0YmE0ZTJlMzk5ZjczYTRjMjFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvcGVyZl9leGFtcGxlcy9jb2xsZWN0X3N0YXRzL3RlbXBsYXRl
X3Rlc3QucHkKQEAgLTAsMCArMSwzIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZGVmIHRl
c3RfeCgpOgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL3BlcmZfZXhhbXBsZXMvY29sbGVjdF9zdGF0cy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3BlcmZfZXhhbXBsZXMvY29sbGVjdF9z
dGF0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWM1NTE4MzBmMjU3OTQ3NzgzYjA2YmVj
NWJjYmVlMjFhZDExZTRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvcGVyZl9leGFtcGxlcy9jb2xsZWN0X3N0YXRzL3czYy1pbXBvcnQubG9n
CkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
KworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
K1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL3BlcmZfZXhhbXBsZXMvY29sbGVjdF9zdGF0cy9nZW5lcmF0ZV9mb2xkZXJzLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvcGVyZl9leGFtcGxlcy9jb2xsZWN0
X3N0YXRzL3RlbXBsYXRlX3Rlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL3RtcGRpci90bXBkaXJfZml4dHVyZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL3RtcGRpci90bXBkaXJfZml4dHVyZS5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zM2YwMzE1ZDUyZjg0MjE4Yjg4NTEyM2M1OTFmOWQxNjQ3OGUxNDEwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdG1wZGlyL3RtcGRpcl9m
aXh0dXJlLnB5CkBAIC0wLDAgKzEsOCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9y
dCBweXRlc3QKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImEiLCBbciJxd2UvXGFiYyJd
KQorZGVmIHRlc3RfZml4dHVyZSh0bXBkaXIsIGEpOgorICAgIHRtcGRpci5jaGVjayhkaXI9MSkK
KyAgICBhc3NlcnQgdG1wZGlyLmxpc3RkaXIoKSA9PSBbXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdG1wZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdG1wZGlyL3czYy1pbXBvcnQubG9nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM5MTY0MzkwNjAxMmIwM2FmNjBlYjVjN2RmOWVlZTA0YWNjM2U0OGMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy90bXBkaXIvdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvdG1wZGlyL3RtcGRpcl9maXh0dXJlLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy91bml0dGVzdC90ZXN0X3BhcmFtZXRy
aXplZF9maXh0dXJlX2Vycm9yX21lc3NhZ2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy91bml0dGVzdC90ZXN0X3BhcmFtZXRyaXplZF9maXh0dXJlX2Vycm9yX21lc3Nh
Z2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2VmOTUwZWU3ODI2YzZlMGZmN2U5ZDkxNDljMWNjMmZjMTNlNjdi
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L3VuaXR0ZXN0L3Rlc3RfcGFyYW1ldHJpemVkX2ZpeHR1cmVfZXJyb3JfbWVzc2FnZS5weQpAQCAt
MCwwICsxLDE1IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHVuaXR0ZXN0CisK
K2ltcG9ydCBweXRlc3QKKworCitAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLCAyXSkKK2RlZiB0
d28ocmVxdWVzdCk6CisgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworCitAcHl0ZXN0Lm1hcmsu
dXNlZml4dHVyZXMoInR3byIpCitjbGFzcyBUZXN0U29tZXRoaW5nRWxzZSh1bml0dGVzdC5UZXN0
Q2FzZSk6CisgICAgZGVmIHRlc3RfdHdvKHNlbGYpOgorICAgICAgICBwYXNzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy91bml0dGVzdC90ZXN0X3NldHVw
X3NraXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy91bml0dGVzdC90
ZXN0X3NldHVwX3NraXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZiNjE5NWU5NmRkOTc4Mzc5MDk1MmFjODg2
YzQzYzZhNzcwZDkyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3Rfc2V0dXBfc2tpcC5weQpAQCAtMCwwICsxLDE0IEBA
CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorIiIiU2tpcHBpbmcgYW4gZW50aXJlIHN1YmNsYXNz
IHdpdGggdW5pdHRlc3Quc2tpcCgpIHNob3VsZCAqbm90KiBjYWxsIHNldFVwIGZyb20gYSBiYXNl
IGNsYXNzLiIiIgoraW1wb3J0IHVuaXR0ZXN0CisKKworY2xhc3MgQmFzZSh1bml0dGVzdC5UZXN0
Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBhc3NlcnQgMAorCisKK0B1bml0
dGVzdC5za2lwKCJza2lwIGFsbCB0ZXN0cyIpCitjbGFzcyBUZXN0KEJhc2UpOgorICAgIGRlZiB0
ZXN0X2ZvbyhzZWxmKToKKyAgICAgICAgYXNzZXJ0IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3Rfc2V0dXBfc2tpcF9jbGFzcy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3Rfc2V0
dXBfc2tpcF9jbGFzcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzRhMzc3NTcyM2I0ZmRhZDFlZjBiNDAxNTRj
YTZmMmEzNDM2MmNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvdW5pdHRlc3QvdGVzdF9zZXR1cF9za2lwX2NsYXNzLnB5CkBAIC0wLDAgKzEs
MTUgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisiIiJTa2lwcGluZyBhbiBlbnRpcmUgc3Vi
Y2xhc3Mgd2l0aCB1bml0dGVzdC5za2lwKCkgc2hvdWxkICpub3QqIGNhbGwgc2V0VXBDbGFzcyBm
cm9tIGEgYmFzZSBjbGFzcy4iIiIKK2ltcG9ydCB1bml0dGVzdAorCisKK2NsYXNzIEJhc2UodW5p
dHRlc3QuVGVzdENhc2UpOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBzZXRVcENsYXNzKGNs
cyk6CisgICAgICAgIGFzc2VydCAwCisKKworQHVuaXR0ZXN0LnNraXAoInNraXAgYWxsIHRlc3Rz
IikKK2NsYXNzIFRlc3QoQmFzZSk6CisgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgICAgICBh
c3NlcnQgMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
dW5pdHRlc3QvdGVzdF9zZXR1cF9za2lwX21vZHVsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3Rfc2V0dXBfc2tpcF9tb2R1bGUucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWJmNzgyYTYyMTc3YzRiYTVhNGEyZDRjMmM1ZjI2YmU5NzEzMTRmMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rl
c3Rfc2V0dXBfc2tpcF9tb2R1bGUucHkKQEAgLTAsMCArMSwxMyBAQAorIyAtKi0gY29kaW5nOiB1
dGYtOCAtKi0KKyIiInNldFVwTW9kdWxlIGlzIGFsd2F5cyBjYWxsZWQsIGV2ZW4gaWYgYWxsIHRl
c3RzIGluIHRoZSBtb2R1bGUgYXJlIHNraXBwZWQiIiIKK2ltcG9ydCB1bml0dGVzdAorCisKK2Rl
ZiBzZXRVcE1vZHVsZSgpOgorICAgIGFzc2VydCAwCisKKworQHVuaXR0ZXN0LnNraXAoInNraXAg
YWxsIHRlc3RzIikKK2NsYXNzIEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0
KHNlbGYpOgorICAgICAgICBhc3NlcnQgMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy91bml0dGVzdC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYmU4Njg0ZWI4Y2EzN2FmZDk0MjE3ZmRiNmQwMjMzZGZjZmE4YWU1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdGVzdF9wYXJhbWV0cml6ZWRfZml4dHVyZV9lcnJvcl9t
ZXNzYWdlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3Qv
dGVzdF9zZXR1cF9za2lwLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
dW5pdHRlc3QvdGVzdF9zZXR1cF9za2lwX2NsYXNzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdGVzdF9zZXR1cF9za2lwX21vZHVsZS5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy93M2MtaW1wb3J0LmxvZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kM2Y0MDU4MzE5ZmU1MjYzNTc0YmRiMzNmNmE2OWQ5ZjQzYzM4Y2M5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdzNjLWltcG9y
dC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvUkVBRE1FLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2lzc3VlXzUxOS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvd2FybmluZ3MvdGVzdF9ncm91cF93YXJuaW5nc19ieV9tZXNzYWdlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvd2FybmluZ3MvdGVzdF9ncm91cF93YXJu
aW5nc19ieV9tZXNzYWdlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5ZDg5NTk3NDUyYzAzMzU4M2QwMzY3OWEx
ZjgxODA1YjU5Y2YzMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy93YXJuaW5ncy90ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2UucHkK
QEAgLTAsMCArMSwxNyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCB3YXJuaW5n
cworCitpbXBvcnQgcHl0ZXN0CisKKworZGVmIGZ1bmMoKToKKyAgICB3YXJuaW5ncy53YXJuKFVz
ZXJXYXJuaW5nKCJmb28iKSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImkiLCByYW5n
ZSg1KSkKK2RlZiB0ZXN0X2ZvbyhpKToKKyAgICBmdW5jKCkKKworCitkZWYgdGVzdF9iYXIoKToK
KyAgICBmdW5jKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL3dhcm5pbmdzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvd2FybmluZ3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk2ODBjN2I2ZWIw
OWEwM2IwMjlkMjk1NzZmZTc2MjZkNjU4Y2I5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3dhcm5pbmdzL3czYy1pbXBvcnQubG9nCkBAIC0w
LDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L3dhcm5pbmdzL3Rlc3RfZ3JvdXBfd2FybmluZ3NfYnlfbWVzc2FnZS5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlcy90ZXN0X2lzc3VlNTE5LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlcy90ZXN0X2lzc3VlNTE5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkYTFmNGVl
NjY0NzY2MGRhNDc0MmZiMWVkNDNjMWQxN2Y2YWEzODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVzL3Rlc3RfaXNzdWU1MTkucHkKQEAgLTAsMCArMSw0IEBA
CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZGVmIHRlc3RfNTEwKHRlc3RkaXIpOgorICAgIHRl
c3RkaXIuY29weV9leGFtcGxlKCJpc3N1ZV81MTkucHkiKQorICAgIHRlc3RkaXIucnVucHl0ZXN0
KCJpc3N1ZV81MTkucHkiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZXMvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjAxODhmNWQ4YmZjMzkyMTg5NTcxZDhmNWY5OTRjNGRlYzI3NzI3
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZXMvdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlcy90ZXN0X2lzc3VlNTE5LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2ZyZWV6ZS9jcmVhdGVfZXhlY3V0YWJsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXpl
L2NyZWF0ZV9leGVjdXRhYmxlLnB5CmluZGV4IDk4YWEyMDM0YzlkNzkzMzVkNmI2N2Y5ZWVmNGI0
MDRlMzRjZGJmYjQuLmFiODAxMzMxN2IyYzQxOGJjZGRlNjgwMjczMDQ1YTcyYzkzNDhhNTggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL2NyZWF0ZV9leGVjdXRhYmxlLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL2NyZWF0ZV9leGVjdXRhYmxlLnB5CkBA
IC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIgogR2VuZXJhdGVzIGFu
IGV4ZWN1dGFibGUgd2l0aCBweXRlc3QgcnVubmVyIGVtYmVkZGVkIHVzaW5nIFB5SW5zdGFsbGVy
LgogIiIiCkBAIC04LDUgKzksNiBAQCBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIGhp
ZGRlbiA9IFtdCiAgICAgZm9yIHggaW4gcHl0ZXN0LmZyZWV6ZV9pbmNsdWRlcygpOgogICAgICAg
ICBoaWRkZW4uZXh0ZW5kKFsiLS1oaWRkZW4taW1wb3J0IiwgeF0pCisgICAgaGlkZGVuLmV4dGVu
ZChbIi0taGlkZGVuLWltcG9ydCIsICJkaXN0dXRpbHMiXSkKICAgICBhcmdzID0gWyJweWluc3Rh
bGxlciIsICItLW5vY29uZmlybSJdICsgaGlkZGVuICsgWyJydW50ZXN0c19zY3JpcHQucHkiXQog
ICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbCgiICIuam9pbihhcmdzKSwgc2hlbGw9VHJ1ZSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3J1bnRlc3RzX3NjcmlwdC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3J1bnRlc3RzX3NjcmlwdC5weQppbmRleCBkMDNi
Y2E4NDA2ZGUyZTRlMWE1YmE4OTllN2ZiMDhiNGIwNzk5OGRkLi5mNzM4MWY1Njg2MzUyNTc3MWI3
NTc2YzhhZGMzZDAzYWI3NTc0NDU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2Zy
ZWV6ZS9ydW50ZXN0c19zY3JpcHQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUv
cnVudGVzdHNfc2NyaXB0LnB5CkBAIC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KICIiIgogVGhpcyBpcyB0aGUgc2NyaXB0IHRoYXQgaXMgYWN0dWFsbHkgZnJvemVuIGludG8g
YW4gZXhlY3V0YWJsZTogc2ltcGx5IGV4ZWN1dGVzCiBweS50ZXN0IG1haW4oKS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3Rlc3RfdHJpdmlhbC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3Rlc3RfdHJpdmlhbC5weQppbmRleCAwOGE1
NTU1MmFiYmY2MjUyZTg1MDVlYTlkZmZiZGQzMmVjZTViNGM1Li40NDlkYmY5ZDM2MjU2Njc5Y2Y0
NDg1MjllNjliMmY4MzViNDM2ZDgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2Zy
ZWV6ZS90ZXN0cy90ZXN0X3RyaXZpYWwucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVl
emUvdGVzdHMvdGVzdF90cml2aWFsLnB5CkBAIC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5nOiB1
dGYtOCAtKi0KIGRlZiB0ZXN0X3VwcGVyKCk6CiAgICAgYXNzZXJ0ICJmb28iLnVwcGVyKCkgPT0g
IkZPTyIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdG94X3J1bi5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3RveF9ydW4ucHkKaW5kZXggNjc4YTY5Yzg1
OGEyY2Q0MDk0MzA3YWNmOTBlNmU5OTZjOTgwMGVlMy4uMjliNzI3OTIzODQyMWQ3ZmQzNzYxZjdm
ODAwZWU4NzljOGZhY2MwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUv
dG94X3J1bi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90b3hfcnVuLnB5CkBA
IC0xLDMgKzEsNCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICIiIgogQ2FsbGVkIGJ5IHRv
eC5pbmk6IHVzZXMgdGhlIGdlbmVyYXRlZCBleGVjdXRhYmxlIHRvIHJ1biB0aGUgdGVzdHMgaW4g
Li90ZXN0cy8KIGRpcmVjdG9yeS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvaW8v
dGVzdF9zYWZlcmVwci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvaW8vdGVzdF9zYWZlcmVwci5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MDEyMDMwODg4OTE0ZDAwZWY1MTIwM2Y0YjRmNWVmNzA4ZmExZjJkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9pby90ZXN0X3NhZmVyZXByLnB5
CkBAIC0wLDAgKzEsNjYgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9weXRlc3Qu
X2lvLnNhZmVyZXByIGltcG9ydCBzYWZlcmVwcgorCisKK2RlZiB0ZXN0X3NpbXBsZV9yZXByKCk6
CisgICAgYXNzZXJ0IHNhZmVyZXByKDEpID09ICIxIgorICAgIGFzc2VydCBzYWZlcmVwcihOb25l
KSA9PSAiTm9uZSIKKworCitkZWYgdGVzdF9tYXhzaXplKCk6CisgICAgcyA9IHNhZmVyZXByKCJ4
IiAqIDUwLCBtYXhzaXplPTI1KQorICAgIGFzc2VydCBsZW4ocykgPT0gMjUKKyAgICBleHBlY3Rl
ZCA9IHJlcHIoIngiICogMTAgKyAiLi4uIiArICJ4IiAqIDEwKQorICAgIGFzc2VydCBzID09IGV4
cGVjdGVkCisKKworZGVmIHRlc3RfbWF4c2l6ZV9lcnJvcl9vbl9pbnN0YW5jZSgpOgorICAgIGNs
YXNzIEE6CisgICAgICAgIGRlZiBfX3JlcHJfXygpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiLi4uIikKKworICAgIHMgPSBzYWZlcmVwcigoIioiICogNTAsIEEoKSksIG1heHNpemU9
MjUpCisgICAgYXNzZXJ0IGxlbihzKSA9PSAyNQorICAgIGFzc2VydCBzWzBdID09ICIoIiBhbmQg
c1stMV0gPT0gIikiCisKKworZGVmIHRlc3RfZXhjZXB0aW9ucygpOgorICAgIGNsYXNzIEJyb2tl
blJlcHI6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleCk6CisgICAgICAgICAgICBzZWxm
LmV4ID0gZXgKKworICAgICAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICAgICByYWlz
ZSBzZWxmLmV4CisKKyAgICBjbGFzcyBCcm9rZW5SZXByRXhjZXB0aW9uKEV4Y2VwdGlvbik6Cisg
ICAgICAgIF9fc3RyX18gPSBOb25lCisgICAgICAgIF9fcmVwcl9fID0gTm9uZQorCisgICAgYXNz
ZXJ0ICJFeGNlcHRpb24iIGluIHNhZmVyZXByKEJyb2tlblJlcHIoRXhjZXB0aW9uKCJicm9rZW4i
KSkpCisgICAgcyA9IHNhZmVyZXByKEJyb2tlblJlcHJFeGNlcHRpb24oInJlYWxseSBicm9rZW4i
KSkKKyAgICBhc3NlcnQgIlR5cGVFcnJvciIgaW4gcworICAgIGFzc2VydCAiVHlwZUVycm9yIiBp
biBzYWZlcmVwcihCcm9rZW5SZXByKCJzdHJpbmciKSkKKworICAgIHMyID0gc2FmZXJlcHIoQnJv
a2VuUmVwcihCcm9rZW5SZXByRXhjZXB0aW9uKCJvbWcgZXZlbiB3b3JzZSIpKSkKKyAgICBhc3Nl
cnQgIk5hbWVFcnJvciIgbm90IGluIHMyCisgICAgYXNzZXJ0ICJ1bmtub3duIiBpbiBzMgorCisK
K2RlZiB0ZXN0X2JpZ19yZXByKCk6CisgICAgZnJvbSBfcHl0ZXN0Ll9pby5zYWZlcmVwciBpbXBv
cnQgU2FmZVJlcHIKKworICAgIGFzc2VydCBsZW4oc2FmZXJlcHIocmFuZ2UoMTAwMCkpKSA8PSBs
ZW4oIlsiICsgU2FmZVJlcHIoKS5tYXhsaXN0ICogIjEwMDAiICsgIl0iKQorCisKK2RlZiB0ZXN0
X3JlcHJfb25fbmV3c3R5bGUoKToKKyAgICBjbGFzcyBGdW5jdGlvbihvYmplY3QpOgorICAgICAg
ICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICAgICByZXR1cm4gIjwlcz4iICUgKHNlbGYu
bmFtZSkKKworICAgIGFzc2VydCBzYWZlcmVwcihGdW5jdGlvbigpKQorCisKK2RlZiB0ZXN0X3Vu
aWNvZGUoKToKKyAgICB2YWwgPSB1IsKj4oKsIgorICAgIHJlcHJ2YWwgPSB1IifCo+KCrCciCisg
ICAgYXNzZXJ0IHNhZmVyZXByKHZhbCkgPT0gcmVwcnZhbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9pby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvaW8vdzNj
LWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc0ZGQ4NWNmOWQzM2ZiYmE0N2M0N2I1Njg0MmRjNTg2
MjUzYzFmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvaW8vdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9p
by90ZXN0X3NhZmVyZXByLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dp
bmcvdGVzdF9maXh0dXJlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfZml4
dHVyZS5weQppbmRleCA4ZDlhZTZiNTE4ZGE4NDZkNTRjY2QxYmUxODIzYmU3N2ExNGZlMGUyLi5m
Zjc3MmU3ZWM2MmQ2MGE3OWIzZWMwZjI3YWYwMjVjMmJjYmFlODdjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9maXh0dXJlLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvbG9nZ2luZy90ZXN0X2ZpeHR1cmUucHkKQEAgLTQ1LDcgKzQ1LDcgQEAgZGVmIHRl
c3RfY2hhbmdlX2xldmVsX3VuZG8odGVzdGRpcik6CiAgICAgICAgICAgICBhc3NlcnQgMAogICAg
ICIiIgogICAgICkKLSAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkK
KyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCiAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsiKmxvZyBmcm9tIHRlc3QxKiIsICIqMiBmYWlsZWQgaW4gKiJdKQogICAgIGFz
c2VydCAibG9nIGZyb20gdGVzdDIiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCiAKQEAgLTcz
LDYgKzczLDI3IEBAIGRlZiB0ZXN0X2xvZ19hY2Nlc3MoY2FwbG9nKToKICAgICBhc3NlcnQgImJv
byBhcmciIGluIGNhcGxvZy50ZXh0CiAKIAorZGVmIHRlc3RfbWVzc2FnZXMoY2FwbG9nKToKKyAg
ICBjYXBsb2cuc2V0X2xldmVsKGxvZ2dpbmcuSU5GTykKKyAgICBsb2dnZXIuaW5mbygiYm9vICVz
IiwgImFyZyIpCisgICAgbG9nZ2VyLmluZm8oImJhciAlc1xuYmF6ICVzIiwgImFyZzEiLCAiYXJn
MiIpCisgICAgYXNzZXJ0ICJib28gYXJnIiA9PSBjYXBsb2cubWVzc2FnZXNbMF0KKyAgICBhc3Nl
cnQgImJhciBhcmcxXG5iYXogYXJnMiIgPT0gY2FwbG9nLm1lc3NhZ2VzWzFdCisgICAgYXNzZXJ0
IGNhcGxvZy50ZXh0LmNvdW50KCJcbiIpID4gbGVuKGNhcGxvZy5tZXNzYWdlcykKKyAgICBhc3Nl
cnQgbGVuKGNhcGxvZy50ZXh0LnNwbGl0bGluZXMoKSkgPiBsZW4oY2FwbG9nLm1lc3NhZ2VzKQor
CisgICAgdHJ5OgorICAgICAgICByYWlzZSBFeGNlcHRpb24oInRlc3QiKQorICAgIGV4Y2VwdCBF
eGNlcHRpb246CisgICAgICAgIGxvZ2dlci5leGNlcHRpb24oIm9vcHMiKQorCisgICAgYXNzZXJ0
ICJvb3BzIiBpbiBjYXBsb2cudGV4dAorICAgIGFzc2VydCAib29wcyIgaW4gY2FwbG9nLm1lc3Nh
Z2VzWy0xXQorICAgICMgVHJhY2ViYWNrcyBhcmUgc3RvcmVkIGluIHRoZSByZWNvcmQgYW5kIG5v
dCBhZGRlZCB1bnRpbCB0aGUgZm9ybWF0dGVyIG9yIGhhbmRsZXIuCisgICAgYXNzZXJ0ICJFeGNl
cHRpb24iIGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICJFeGNlcHRpb24iIG5vdCBpbiBjYXBs
b2cubWVzc2FnZXNbLTFdCisKKwogZGVmIHRlc3RfcmVjb3JkX3R1cGxlcyhjYXBsb2cpOgogICAg
IGNhcGxvZy5zZXRfbGV2ZWwobG9nZ2luZy5JTkZPKQogICAgIGxvZ2dlci5pbmZvKCJib28gJXMi
LCAiYXJnIikKQEAgLTExNSw1ICsxMzYsNSBAQCBkZWYgdGVzdF9jYXBsb2dfY2FwdHVyZXNfZm9y
X2FsbF9zdGFnZXMoY2FwbG9nLCBsb2dnaW5nX2R1cmluZ19zZXR1cF9hbmRfdGVhcmRvdwogCiAg
ICAgYXNzZXJ0IFt4Lm1lc3NhZ2UgZm9yIHggaW4gY2FwbG9nLmdldF9yZWNvcmRzKCJzZXR1cCIp
XSA9PSBbImFfc2V0dXBfbG9nIl0KIAotICAgICMgVGhpcyByZWFjaGVycyBpbnRvIHByaXZhdGUg
QVBJLCBkb24ndCB1c2UgdGhpcyB0eXBlIG9mIHRoaW5nIGluIHJlYWwgdGVzdHMhCisgICAgIyBU
aGlzIHJlYWNoZXMgaW50byBwcml2YXRlIEFQSSwgZG9uJ3QgdXNlIHRoaXMgdHlwZSBvZiB0aGlu
ZyBpbiByZWFsIHRlc3RzIQogICAgIGFzc2VydCBzZXQoY2FwbG9nLl9pdGVtLmNhdGNoX2xvZ19o
YW5kbGVycy5rZXlzKCkpID09IHsic2V0dXAiLCAiY2FsbCJ9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9mb3JtYXR0ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2xvZ2dpbmcvdGVzdF9mb3JtYXR0ZXIucHkKaW5kZXggY2EyYTQxMDY1Mzc2NzUzYzJlYWRj
MjU2Y2JjYWQzZjE5ODIyZGFkYS4uYzg1MWMzNGQ3ODRkNTA3YzE5YTAzNTU2N2U5MWRjMTgzZmRk
ZWZhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfZm9ybWF0
dGVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0X2Zvcm1hdHRlci5w
eQpAQCAtMSw2ICsxLDEwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IGxvZ2dp
bmcKIAogaW1wb3J0IHB5LmlvCitpbXBvcnQgc2l4CisKK2ltcG9ydCBweXRlc3QKIGZyb20gX3B5
dGVzdC5sb2dnaW5nIGltcG9ydCBDb2xvcmVkTGV2ZWxGb3JtYXR0ZXIKIAogCkBAIC0xOCw3ICsy
Miw2IEBAIGRlZiB0ZXN0X2NvbG9yZWRsb2dmb3JtYXR0ZXIoKToKICAgICApCiAKICAgICBjbGFz
cyBDb2xvckNvbmZpZyhvYmplY3QpOgotCiAgICAgICAgIGNsYXNzIG9wdGlvbihvYmplY3QpOgog
ICAgICAgICAgICAgcGFzcwogCkBAIC0yNiwxMiArMjksMzkgQEAgZGVmIHRlc3RfY29sb3JlZGxv
Z2Zvcm1hdHRlcigpOgogICAgIHR3Lmhhc21hcmt1cCA9IFRydWUKICAgICBmb3JtYXR0ZXIgPSBD
b2xvcmVkTGV2ZWxGb3JtYXR0ZXIodHcsIGxvZ2ZtdCkKICAgICBvdXRwdXQgPSBmb3JtYXR0ZXIu
Zm9ybWF0KHJlY29yZCkKLSAgICBhc3NlcnQgKAotICAgICAgICBvdXRwdXQKLSAgICAgICAgPT0g
KCJkdW1teXBhdGggICAgICAgICAgICAgICAgICAgMTAgIiAiXHgxYlszMm1JTkZPICAgIFx4MWJb
MG0gVGVzdCBNZXNzYWdlIikKKyAgICBhc3NlcnQgb3V0cHV0ID09ICgKKyAgICAgICAgImR1bW15
cGF0aCAgICAgICAgICAgICAgICAgICAxMCBceDFiWzMybUlORk8gICAgXHgxYlswbSBUZXN0IE1l
c3NhZ2UiCiAgICAgKQogCiAgICAgdHcuaGFzbWFya3VwID0gRmFsc2UKICAgICBmb3JtYXR0ZXIg
PSBDb2xvcmVkTGV2ZWxGb3JtYXR0ZXIodHcsIGxvZ2ZtdCkKICAgICBvdXRwdXQgPSBmb3JtYXR0
ZXIuZm9ybWF0KHJlY29yZCkKLSAgICBhc3NlcnQgb3V0cHV0ID09ICgiZHVtbXlwYXRoICAgICAg
ICAgICAgICAgICAgIDEwICIgIklORk8gICAgIFRlc3QgTWVzc2FnZSIpCisgICAgYXNzZXJ0IG91
dHB1dCA9PSAoImR1bW15cGF0aCAgICAgICAgICAgICAgICAgICAxMCBJTkZPICAgICBUZXN0IE1l
c3NhZ2UiKQorCisKK0BweXRlc3QubWFyay5za2lwaWYoCisgICAgc2l4LlBZMiwgcmVhc29uPSJG
b3JtYXR0ZXIgY2xhc3NlcyBkb24ndCBzdXBwb3J0IGZvcm1hdCBzdHlsZXMgaW4gUFkyIgorKQor
ZGVmIHRlc3RfbXVsdGlsaW5lX21lc3NhZ2UoKToKKyAgICBmcm9tIF9weXRlc3QubG9nZ2luZyBp
bXBvcnQgUGVyY2VudFN0eWxlTXVsdGlsaW5lCisKKyAgICBsb2dmbXQgPSAiJShmaWxlbmFtZSkt
MjVzICUobGluZW5vKTRkICUobGV2ZWxuYW1lKS04cyAlKG1lc3NhZ2UpcyIKKworICAgIHJlY29y
ZCA9IGxvZ2dpbmcuTG9nUmVjb3JkKAorICAgICAgICBuYW1lPSJkdW1teSIsCisgICAgICAgIGxl
dmVsPWxvZ2dpbmcuSU5GTywKKyAgICAgICAgcGF0aG5hbWU9ImR1bW15cGF0aCIsCisgICAgICAg
IGxpbmVubz0xMCwKKyAgICAgICAgbXNnPSJUZXN0IE1lc3NhZ2UgbGluZTFcbmxpbmUyIiwKKyAg
ICAgICAgYXJncz0oKSwKKyAgICAgICAgZXhjX2luZm89RmFsc2UsCisgICAgKQorICAgICMgdGhp
cyBpcyBjYWxsZWQgYnkgbG9nZ2luZy5Gb3JtYXR0ZXIuZm9ybWF0CisgICAgcmVjb3JkLm1lc3Nh
Z2UgPSByZWNvcmQuZ2V0TWVzc2FnZSgpCisKKyAgICBzdHlsZSA9IFBlcmNlbnRTdHlsZU11bHRp
bGluZShsb2dmbXQpCisgICAgb3V0cHV0ID0gc3R5bGUuZm9ybWF0KHJlY29yZCkKKyAgICBhc3Nl
cnQgb3V0cHV0ID09ICgKKyAgICAgICAgImR1bW15cGF0aCAgICAgICAgICAgICAgICAgICAxMCBJ
TkZPICAgICBUZXN0IE1lc3NhZ2UgbGluZTFcbiIKKyAgICAgICAgIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsaW5lMiIKKyAgICApCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9yZXBvcnRpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2xvZ2dpbmcvdGVzdF9yZXBvcnRpbmcucHkKaW5kZXggOTFlZDJlNDc1OGNiYmVkMmZjNzFj
NWZhOTg1NjQ3ODk3NmYyYmEzMC4uNmZmNWNjZmI1NWE0YmM4ZGFlMmMxMzVlMDFkNGI1YWM5Y2Q0
YTU4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfcmVwb3J0
aW5nLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0X3JlcG9ydGluZy5w
eQpAQCAtMSw2ICsxLDcgQEAKICMgLSotIGNvZGluZzogdXRmLTggLSotCi1pbXBvcnQgcmUKIGlt
cG9ydCBvcworaW1wb3J0IHJlCitmcm9tIGlvIGltcG9ydCBvcGVuCiAKIGltcG9ydCBzaXgKIApA
QCAtNTMsNiArNTQsNyBAQCBkZWYgdGVzdF9yb290X2xvZ2dlcl9hZmZlY3RlZCh0ZXN0ZGlyKToK
ICAgICAgICAgIiIiCiAgICAgICAgIGltcG9ydCBsb2dnaW5nCiAgICAgICAgIGxvZ2dlciA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKCkKKwogICAgICAgICBkZWYgdGVzdF9mb28oKToKICAgICAgICAgICAg
IGxvZ2dlci5pbmZvKCdpbmZvIHRleHQgJyArICdnb2luZyB0byBsb2dnZXInKQogICAgICAgICAg
ICAgbG9nZ2VyLndhcm5pbmcoJ3dhcm5pbmcgdGV4dCAnICsgJ2dvaW5nIHRvIGxvZ2dlcicpCkBA
IC02NSwxNSArNjcsMTQgQEAgZGVmIHRlc3Rfcm9vdF9sb2dnZXJfYWZmZWN0ZWQodGVzdGRpcik6
CiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbG9nLWxldmVsPUVSUk9SIiwgIi0t
bG9nLWZpbGU9cHl0ZXN0LmxvZyIpCiAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQogCi0gICAg
IyB0aGUgY2FwdHVyZSBsb2cgY2FsbHMgaW4gdGhlIHN0ZG91dCBzZWN0aW9uIG9ubHkgY29udGFp
biB0aGUKLSAgICAjIGxvZ2dlci5lcnJvciBtc2csIGJlY2F1c2UgLS1sb2ctbGV2ZWw9RVJST1IK
KyAgICAjIFRoZSBjYXB0dXJlIGxvZyBjYWxscyBpbiB0aGUgc3Rkb3V0IHNlY3Rpb24gb25seSBj
b250YWluIHRoZQorICAgICMgbG9nZ2VyLmVycm9yIG1zZywgYmVjYXVzZSBvZiAtLWxvZy1sZXZl
bD1FUlJPUi4KICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqZXJyb3IgdGV4dCBn
b2luZyB0byBsb2dnZXIqIl0pCi0gICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4
Y2VwdGlvbik6Ci0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip3YXJuaW5n
IHRleHQgZ29pbmcgdG8gbG9nZ2VyKiJdKQotICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3Qu
ZmFpbC5FeGNlcHRpb24pOgotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
aW5mbyB0ZXh0IGdvaW5nIHRvIGxvZ2dlcioiXSkKKyAgICBzdGRvdXQgPSByZXN1bHQuc3Rkb3V0
LnN0cigpCisgICAgYXNzZXJ0ICJ3YXJuaW5nIHRleHQgZ29pbmcgdG8gbG9nZ2VyIiBub3QgaW4g
c3Rkb3V0CisgICAgYXNzZXJ0ICJpbmZvIHRleHQgZ29pbmcgdG8gbG9nZ2VyIiBub3QgaW4gc3Rk
b3V0CiAKLSAgICAjIHRoZSBsb2cgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgd2FybmluZyBhbmQg
dGhlIGVycm9yIGxvZyBtZXNzYWdlcyBhbmQKKyAgICAjIFRoZSBsb2cgZmlsZSBzaG91bGQgY29u
dGFpbiB0aGUgd2FybmluZyBhbmQgdGhlIGVycm9yIGxvZyBtZXNzYWdlcyBhbmQKICAgICAjIG5v
dCB0aGUgaW5mbyBvbmUsIGJlY2F1c2UgdGhlIGRlZmF1bHQgbGV2ZWwgb2YgdGhlIHJvb3QgbG9n
Z2VyIGlzCiAgICAgIyBXQVJOSU5HLgogICAgIGFzc2VydCBvcy5wYXRoLmlzZmlsZShsb2dfZmls
ZSkKQEAgLTI0Nyw3ICsyNDgsNyBAQCBkZWYgdGVzdF9sb2dfY2xpX2VuYWJsZWRfZGlzYWJsZWQo
dGVzdGRpciwgZW5hYmxlZCk6CiAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgInRlc3Rf
bG9nX2NsaV9lbmFibGVkX2Rpc2FibGVkLnB5Ojp0ZXN0X2xvZ19jbGkgIiwKICAgICAgICAgICAg
ICAgICAiKi0tIGxpdmUgbG9nIGNhbGwgLS0qIiwKLSAgICAgICAgICAgICAgICAidGVzdF9sb2df
Y2xpX2VuYWJsZWRfZGlzYWJsZWQucHkqIENSSVRJQ0FMIGNyaXRpY2FsIG1lc3NhZ2UgbG9nZ2Vk
IGJ5IHRlc3QiLAorICAgICAgICAgICAgICAgICJDUklUSUNBTCAqdGVzdF9sb2dfY2xpX2VuYWJs
ZWRfZGlzYWJsZWQucHkqIGNyaXRpY2FsIG1lc3NhZ2UgbG9nZ2VkIGJ5IHRlc3QiLAogICAgICAg
ICAgICAgICAgICJQQVNTRUQqIiwKICAgICAgICAgICAgIF0KICAgICAgICAgKQpAQCAtMjgxLDcg
KzI4Miw3IEBAIGRlZiB0ZXN0X2xvZ19jbGlfZGVmYXVsdF9sZXZlbCh0ZXN0ZGlyKToKICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAgIFsKICAgICAgICAgICAgICJ0ZXN0
X2xvZ19jbGlfZGVmYXVsdF9sZXZlbC5weTo6dGVzdF9sb2dfY2xpICIsCi0gICAgICAgICAgICAi
dGVzdF9sb2dfY2xpX2RlZmF1bHRfbGV2ZWwucHkqV0FSTklORyBtZXNzYWdlIHdpbGwgYmUgc2hv
d24qIiwKKyAgICAgICAgICAgICJXQVJOSU5HKnRlc3RfbG9nX2NsaV9kZWZhdWx0X2xldmVsLnB5
KiBtZXNzYWdlIHdpbGwgYmUgc2hvd24qIiwKICAgICAgICAgXQogICAgICkKICAgICBhc3NlcnQg
IklORk8gbWVzc2FnZSB3b24ndCBiZSBzaG93biIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkK
QEAgLTUyMCwxNiArNTIxLDIyIEBAIGRlZiB0ZXN0X3NlY3Rpb25zX3NpbmdsZV9uZXdfbGluZV9h
ZnRlcl90ZXN0X291dGNvbWUodGVzdGRpciwgcmVxdWVzdCk6CiAgICAgICAgICAgICAiPSogMSBw
YXNzZWQgaW4gKj0iLAogICAgICAgICBdCiAgICAgKQotICAgIGFzc2VydCByZS5zZWFyY2goCi0g
ICAgICAgIHIiKC4rKWxpdmUgbG9nIHRlYXJkb3duKC4rKVxuKC4rKVdBUk5JTkcoLispXG4oLisp
V0FSTklORyguKykiLAotICAgICAgICByZXN1bHQuc3Rkb3V0LnN0cigpLAotICAgICAgICByZS5N
VUxUSUxJTkUsCi0gICAgKSBpcyBub3QgTm9uZQotICAgIGFzc2VydCByZS5zZWFyY2goCi0gICAg
ICAgIHIiKC4rKWxpdmUgbG9nIGZpbmlzaCguKylcbiguKylXQVJOSU5HKC4rKVxuKC4rKVdBUk5J
TkcoLispIiwKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5zdHIoKSwKLSAgICAgICAgcmUuTVVMVElM
SU5FLAotICAgICkgaXMgbm90IE5vbmUKKyAgICBhc3NlcnQgKAorICAgICAgICByZS5zZWFyY2go
CisgICAgICAgICAgICByIiguKylsaXZlIGxvZyB0ZWFyZG93biguKylcbldBUk5JTkcoLispXG5X
QVJOSU5HKC4rKSIsCisgICAgICAgICAgICByZXN1bHQuc3Rkb3V0LnN0cigpLAorICAgICAgICAg
ICAgcmUuTVVMVElMSU5FLAorICAgICAgICApCisgICAgICAgIGlzIG5vdCBOb25lCisgICAgKQor
ICAgIGFzc2VydCAoCisgICAgICAgIHJlLnNlYXJjaCgKKyAgICAgICAgICAgIHIiKC4rKWxpdmUg
bG9nIGZpbmlzaCguKylcbldBUk5JTkcoLispXG5XQVJOSU5HKC4rKSIsCisgICAgICAgICAgICBy
ZXN1bHQuc3Rkb3V0LnN0cigpLAorICAgICAgICAgICAgcmUuTVVMVElMSU5FLAorICAgICAgICAp
CisgICAgICAgIGlzIG5vdCBOb25lCisgICAgKQogCiAKIGRlZiB0ZXN0X2xvZ19jbGlfbGV2ZWwo
dGVzdGRpcik6CkBAIC01NTgsNyArNTY1LDcgQEAgZGVmIHRlc3RfbG9nX2NsaV9sZXZlbCh0ZXN0
ZGlyKToKICAgICAjIGZubWF0Y2hfbGluZXMgZG9lcyBhbiBhc3NlcnRpb24gaW50ZXJuYWxseQog
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgWwotICAgICAgICAgICAg
InRlc3RfbG9nX2NsaV9sZXZlbC5weSpUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iLAor
ICAgICAgICAgICAgIip0ZXN0X2xvZ19jbGlfbGV2ZWwucHkqVGhpcyBsb2cgbWVzc2FnZSB3aWxs
IGJlIHNob3duIiwKICAgICAgICAgICAgICJQQVNTRUQiLCAgIyAnUEFTU0VEJyBvbiBpdHMgb3du
IGxpbmUgYmVjYXVzZSB0aGUgbG9nIG1lc3NhZ2UgcHJpbnRzIGEgbmV3IGxpbmUKICAgICAgICAg
XQogICAgICkKQEAgLTU3Miw3ICs1NzksNyBAQCBkZWYgdGVzdF9sb2dfY2xpX2xldmVsKHRlc3Rk
aXIpOgogICAgICMgZm5tYXRjaF9saW5lcyBkb2VzIGFuIGFzc2VydGlvbiBpbnRlcm5hbGx5CiAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICBbCi0gICAgICAgICAgICAi
dGVzdF9sb2dfY2xpX2xldmVsLnB5KiBUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iLAor
ICAgICAgICAgICAgIip0ZXN0X2xvZ19jbGlfbGV2ZWwucHkqIFRoaXMgbG9nIG1lc3NhZ2Ugd2ls
bCBiZSBzaG93biIsCiAgICAgICAgICAgICAiUEFTU0VEIiwgICMgJ1BBU1NFRCcgb24gaXRzIG93
biBsaW5lIGJlY2F1c2UgdGhlIGxvZyBtZXNzYWdlIHByaW50cyBhIG5ldyBsaW5lCiAgICAgICAg
IF0KICAgICApCkBAIC02MDgsNyArNjE1LDcgQEAgZGVmIHRlc3RfbG9nX2NsaV9pbmlfbGV2ZWwo
dGVzdGRpcik6CiAgICAgIyBmbm1hdGNoX2xpbmVzIGRvZXMgYW4gYXNzZXJ0aW9uIGludGVybmFs
bHkKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAgIFsKLSAgICAgICAg
ICAgICJ0ZXN0X2xvZ19jbGlfaW5pX2xldmVsLnB5KiBUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUg
c2hvd24iLAorICAgICAgICAgICAgIip0ZXN0X2xvZ19jbGlfaW5pX2xldmVsLnB5KiBUaGlzIGxv
ZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iLAogICAgICAgICAgICAgIlBBU1NFRCIsICAjICdQQVNT
RUQnIG9uIGl0cyBvd24gbGluZSBiZWNhdXNlIHRoZSBsb2cgbWVzc2FnZSBwcmludHMgYSBuZXcg
bGluZQogICAgICAgICBdCiAgICAgKQpAQCAtNjI4LDcgKzYzNSw2IEBAIGRlZiB0ZXN0X2xvZ19j
bGlfYXV0b19lbmFibGUodGVzdGRpciwgcmVxdWVzdCwgY2xpX2FyZ3MpOgogICAgICIiIgogICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgIiIiCi0gICAgICAgIGltcG9ydCBweXRlc3QK
ICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKIAogICAgICAgICBkZWYgdGVzdF9sb2dfMSgpOgpAQCAt
NjQ2LDYgKzY1Miw3IEBAIGRlZiB0ZXN0X2xvZ19jbGlfYXV0b19lbmFibGUodGVzdGRpciwgcmVx
dWVzdCwgY2xpX2FyZ3MpOgogICAgICkKIAogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KGNsaV9hcmdzKQorICAgIHN0ZG91dCA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKICAgICBpZiBjbGlf
YXJncyA9PSAiLS1sb2ctY2xpLWxldmVsPVdBUk5JTkciOgogICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoCiAgICAgICAgICAgICBbCkBAIC02NTYsMTMgKzY2MywxMyBAQCBkZWYg
dGVzdF9sb2dfY2xpX2F1dG9fZW5hYmxlKHRlc3RkaXIsIHJlcXVlc3QsIGNsaV9hcmdzKToKICAg
ICAgICAgICAgICAgICAiPSogMSBwYXNzZWQgaW4gKj0iLAogICAgICAgICAgICAgXQogICAgICAg
ICApCi0gICAgICAgIGFzc2VydCAiSU5GTyIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAg
ICAgICAgYXNzZXJ0ICJJTkZPIiBub3QgaW4gc3Rkb3V0CiAgICAgZWxzZToKICAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICAgICAgWyIqdGVzdF9sb2dfY2xpX2F1
dG9fZW5hYmxlKjEwMCUqIiwgIj0qIDEgcGFzc2VkIGluICo9Il0KICAgICAgICAgKQotICAgICAg
ICBhc3NlcnQgIklORk8iIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCi0gICAgICAgIGFzc2Vy
dCAiV0FSTklORyIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICJJ
TkZPIiBub3QgaW4gc3Rkb3V0CisgICAgICAgIGFzc2VydCAiV0FSTklORyIgbm90IGluIHN0ZG91
dAogCiAKIGRlZiB0ZXN0X2xvZ19maWxlX2NsaSh0ZXN0ZGlyKToKQEAgLTc0MCw3ICs3NDcsNyBA
QCBkZWYgdGVzdF9sb2dfbGV2ZWxfbm90X2NoYW5nZWRfYnlfZGVmYXVsdCh0ZXN0ZGlyKToKICAg
ICAiIiIKICAgICApCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiogMSBwYXNzZWQgaW4gKiIpCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAxIHBhc3NlZCBpbiAqIl0pCiAKIAogZGVmIHRlc3Rf
bG9nX2ZpbGVfaW5pKHRlc3RkaXIpOgpAQCAtODIxLDYgKzgyOCw0MyBAQCBkZWYgdGVzdF9sb2df
ZmlsZV9pbmlfbGV2ZWwodGVzdGRpcik6CiAgICAgICAgIGFzc2VydCAiVGhpcyBsb2cgbWVzc2Fn
ZSB3b24ndCBiZSBzaG93biIgbm90IGluIGNvbnRlbnRzCiAKIAorZGVmIHRlc3RfbG9nX2ZpbGVf
dW5pY29kZSh0ZXN0ZGlyKToKKyAgICBsb2dfZmlsZSA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInB5
dGVzdC5sb2ciKS5zdHJwYXRoCisKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIiIgor
ICAgICAgICBbcHl0ZXN0XQorICAgICAgICBsb2dfZmlsZT17fQorICAgICAgICBsb2dfZmlsZV9s
ZXZlbCA9IElORk8KKyAgICAgICAgIiIiLmZvcm1hdCgKKyAgICAgICAgICAgIGxvZ19maWxlCisg
ICAgICAgICkKKyAgICApCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAg
ICAgICAgIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyAgICAgICAgZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCB1bmljb2RlX2xpdGVyYWxzCisgICAgICAgIGltcG9ydCBsb2dnaW5nCisKKyAgICAgICAg
ZGVmIHRlc3RfbG9nX2ZpbGUoKToKKyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdjYXRj
aGxvZycpLmluZm8oIk5vcm1hbCBtZXNzYWdlIikKKyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9n
Z2VyKCdjYXRjaGxvZycpLmluZm8oIuKUnCIpCisgICAgICAgICAgICBsb2dnaW5nLmdldExvZ2dl
cignY2F0Y2hsb2cnKS5pbmZvKCJBbm90aGVyIG5vcm1hbCBtZXNzYWdlIikKKyAgICAiIiIKKyAg
ICApCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisKKyAgICAjIG1ha2Ugc3Vy
ZSB0aGF0IHRoYXQgd2UgZ2V0IGEgJzAnIGV4aXQgY29kZSBmb3IgdGhlIHRlc3RzdWl0ZQorICAg
IGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICBhc3NlcnQgb3MucGF0aC5pc2ZpbGUobG9nX2Zp
bGUpCisgICAgd2l0aCBvcGVuKGxvZ19maWxlLCBlbmNvZGluZz0idXRmLTgiKSBhcyByZmg6Cisg
ICAgICAgIGNvbnRlbnRzID0gcmZoLnJlYWQoKQorICAgICAgICBhc3NlcnQgIk5vcm1hbCBtZXNz
YWdlIiBpbiBjb250ZW50cworICAgICAgICBhc3NlcnQgdSLilJwiIGluIGNvbnRlbnRzCisgICAg
ICAgIGFzc2VydCAiQW5vdGhlciBub3JtYWwgbWVzc2FnZSIgaW4gY29udGVudHMKKworCiBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImhhc19jYXB0dXJlX21hbmFnZXIiLCBbVHJ1ZSwgRmFsc2Vd
KQogZGVmIHRlc3RfbGl2ZV9sb2dnaW5nX3N1c3BlbmRzX2NhcHR1cmUoaGFzX2NhcHR1cmVfbWFu
YWdlciwgcmVxdWVzdCk6CiAgICAgIiIiVGVzdCB0aGF0IGNhcHR1cmUgbWFuYWdlciBpcyBzdXNw
ZW5kZWQgd2hlbiB3ZSBlbWl0dGluZyBtZXNzYWdlcyBmb3IgbGl2ZSBsb2dnaW5nLgpAQCAtODMy
LDI1ICs4NzYsMjAgQEAgZGVmIHRlc3RfbGl2ZV9sb2dnaW5nX3N1c3BlbmRzX2NhcHR1cmUoaGFz
X2NhcHR1cmVfbWFuYWdlciwgcmVxdWVzdCk6CiAgICAgaXMgaW5zdGFsbGVkLgogICAgICIiIgog
ICAgIGltcG9ydCBsb2dnaW5nCisgICAgaW1wb3J0IGNvbnRleHRsaWIKICAgICBmcm9tIGZ1bmN0
b29scyBpbXBvcnQgcGFydGlhbAotICAgIGZyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBDYXB0
dXJlTWFuYWdlcgogICAgIGZyb20gX3B5dGVzdC5sb2dnaW5nIGltcG9ydCBfTGl2ZUxvZ2dpbmdT
dHJlYW1IYW5kbGVyCiAKICAgICBjbGFzcyBNb2NrQ2FwdHVyZU1hbmFnZXI6CiAgICAgICAgIGNh
bGxzID0gW10KIAotICAgICAgICBkZWYgc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShzZWxmKToKLSAg
ICAgICAgICAgIHNlbGYuY2FsbHMuYXBwZW5kKCJzdXNwZW5kX2dsb2JhbF9jYXB0dXJlIikKLQot
ICAgICAgICBkZWYgcmVzdW1lX2dsb2JhbF9jYXB0dXJlKHNlbGYpOgotICAgICAgICAgICAgc2Vs
Zi5jYWxscy5hcHBlbmQoInJlc3VtZV9nbG9iYWxfY2FwdHVyZSIpCi0KLSAgICAjIHNhbml0eSBj
aGVjawotICAgIGFzc2VydCBDYXB0dXJlTWFuYWdlci5zdXNwZW5kX2NhcHR1cmVfaXRlbQotICAg
IGFzc2VydCBDYXB0dXJlTWFuYWdlci5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUKKyAgICAgICAgQGNv
bnRleHRsaWIuY29udGV4dG1hbmFnZXIKKyAgICAgICAgZGVmIGdsb2JhbF9hbmRfZml4dHVyZV9k
aXNhYmxlZChzZWxmKToKKyAgICAgICAgICAgIHNlbGYuY2FsbHMuYXBwZW5kKCJlbnRlciBkaXNh
YmxlZCIpCisgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgc2VsZi5jYWxscy5hcHBlbmQo
ImV4aXQgZGlzYWJsZWQiKQogCiAgICAgY2xhc3MgRHVtbXlUZXJtaW5hbChzaXguU3RyaW5nSU8p
OgotCiAgICAgICAgIGRlZiBzZWN0aW9uKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAg
ICAgICBwYXNzCiAKQEAgLTg2NSwxMCArOTA0LDI1OSBAQCBkZWYgdGVzdF9saXZlX2xvZ2dpbmdf
c3VzcGVuZHNfY2FwdHVyZShoYXNfY2FwdHVyZV9tYW5hZ2VyLCByZXF1ZXN0KToKIAogICAgIGxv
Z2dlci5jcml0aWNhbCgic29tZSBtZXNzYWdlIikKICAgICBpZiBoYXNfY2FwdHVyZV9tYW5hZ2Vy
OgotICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgTW9ja0NhcHR1cmVNYW5hZ2VyLmNhbGxz
Ci0gICAgICAgICAgICA9PSBbInN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUiLCAicmVzdW1lX2dsb2Jh
bF9jYXB0dXJlIl0KLSAgICAgICAgKQorICAgICAgICBhc3NlcnQgTW9ja0NhcHR1cmVNYW5hZ2Vy
LmNhbGxzID09IFsiZW50ZXIgZGlzYWJsZWQiLCAiZXhpdCBkaXNhYmxlZCJdCiAgICAgZWxzZToK
ICAgICAgICAgYXNzZXJ0IE1vY2tDYXB0dXJlTWFuYWdlci5jYWxscyA9PSBbXQogICAgIGFzc2Vy
dCBvdXRfZmlsZS5nZXR2YWx1ZSgpID09ICJcbnNvbWUgbWVzc2FnZVxuIgorCisKK2RlZiB0ZXN0
X2NvbGxlY3Rpb25fbGl2ZV9sb2dnaW5nKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBsb2dnaW5nCisKKyAgICAgICAgbG9nZ2lu
Zy5nZXRMb2dnZXIoKS5pbmZvKCJOb3JtYWwgbWVzc2FnZSIpCisgICAgIiIiCisgICAgKQorCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbG9nLWNsaS1sZXZlbD1JTkZPIikKKyAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsiKi0tLSBsaXZlIGxvZyBj
b2xsZWN0aW9uIC0tLSoiLCAiKk5vcm1hbCBtZXNzYWdlKiIsICJjb2xsZWN0ZWQgMCBpdGVtcyJd
CisgICAgKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidmVyYm9zZSIsIFsiIiwgIi1x
IiwgIi1xcSJdKQorZGVmIHRlc3RfY29sbGVjdGlvbl9jb2xsZWN0X29ubHlfbGl2ZV9sb2dnaW5n
KHRlc3RkaXIsIHZlcmJvc2UpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIi
CisgICAgICAgIGRlZiB0ZXN0X3NpbXBsZSgpOgorICAgICAgICAgICAgcGFzcworICAgICIiIgor
ICAgICkKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIs
ICItLWxvZy1jbGktbGV2ZWw9SU5GTyIsIHZlcmJvc2UpCisKKyAgICBleHBlY3RlZF9saW5lcyA9
IFtdCisKKyAgICBpZiBub3QgdmVyYm9zZToKKyAgICAgICAgZXhwZWN0ZWRfbGluZXMuZXh0ZW5k
KAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICIqY29sbGVjdGVkIDEgaXRlbSoiLAor
ICAgICAgICAgICAgICAgICIqPE1vZHVsZSB0ZXN0X2NvbGxlY3Rpb25fY29sbGVjdF9vbmx5X2xp
dmVfbG9nZ2luZy5weT4qIiwKKyAgICAgICAgICAgICAgICAiKm5vIHRlc3RzIHJhbioiLAorICAg
ICAgICAgICAgXQorICAgICAgICApCisgICAgZWxpZiB2ZXJib3NlID09ICItcSI6CisgICAgICAg
IGFzc2VydCAiY29sbGVjdGVkIDEgaXRlbSoiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisg
ICAgICAgIGV4cGVjdGVkX2xpbmVzLmV4dGVuZCgKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAg
ICAgICAiKnRlc3RfY29sbGVjdGlvbl9jb2xsZWN0X29ubHlfbGl2ZV9sb2dnaW5nLnB5Ojp0ZXN0
X3NpbXBsZSoiLAorICAgICAgICAgICAgICAgICJubyB0ZXN0cyByYW4gaW4gKiBzZWNvbmRzIiwK
KyAgICAgICAgICAgIF0KKyAgICAgICAgKQorICAgIGVsaWYgdmVyYm9zZSA9PSAiLXFxIjoKKyAg
ICAgICAgYXNzZXJ0ICJjb2xsZWN0ZWQgMSBpdGVtKiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3Ry
KCkKKyAgICAgICAgZXhwZWN0ZWRfbGluZXMuZXh0ZW5kKFsiKnRlc3RfY29sbGVjdGlvbl9jb2xs
ZWN0X29ubHlfbGl2ZV9sb2dnaW5nLnB5OiAxKiJdKQorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKGV4cGVjdGVkX2xpbmVzKQorCisKK2RlZiB0ZXN0X2NvbGxlY3Rpb25fbG9nZ2lu
Z190b19maWxlKHRlc3RkaXIpOgorICAgIGxvZ19maWxlID0gdGVzdGRpci50bXBkaXIuam9pbigi
cHl0ZXN0LmxvZyIpLnN0cnBhdGgKKworICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgIiIi
CisgICAgICAgIFtweXRlc3RdCisgICAgICAgIGxvZ19maWxlPXt9CisgICAgICAgIGxvZ19maWxl
X2xldmVsID0gSU5GTworICAgICAgICAiIiIuZm9ybWF0KAorICAgICAgICAgICAgbG9nX2ZpbGUK
KyAgICAgICAgKQorICAgICkKKworICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIi
CisgICAgICAgIGltcG9ydCBsb2dnaW5nCisKKyAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5p
bmZvKCJOb3JtYWwgbWVzc2FnZSIpCisKKyAgICAgICAgZGVmIHRlc3Rfc2ltcGxlKCk6CisgICAg
ICAgICAgICBsb2dnaW5nLmdldExvZ2dlcigpLmRlYnVnKCJkZWJ1ZyBtZXNzYWdlIGluIHRlc3Rf
c2ltcGxlIikKKyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCkuaW5mbygiaW5mbyBtZXNz
YWdlIGluIHRlc3Rfc2ltcGxlIikKKyAgICAiIiIKKyAgICApCisKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpCisKKyAgICBhc3NlcnQgIi0tLSBsaXZlIGxvZyBjb2xsZWN0aW9uIC0t
LSIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIGFzc2VydCByZXN1bHQucmV0ID09
IDAKKyAgICBhc3NlcnQgb3MucGF0aC5pc2ZpbGUobG9nX2ZpbGUpCisgICAgd2l0aCBvcGVuKGxv
Z19maWxlLCBlbmNvZGluZz0idXRmLTgiKSBhcyByZmg6CisgICAgICAgIGNvbnRlbnRzID0gcmZo
LnJlYWQoKQorICAgICAgICBhc3NlcnQgIk5vcm1hbCBtZXNzYWdlIiBpbiBjb250ZW50cworICAg
ICAgICBhc3NlcnQgImRlYnVnIG1lc3NhZ2UgaW4gdGVzdF9zaW1wbGUiIG5vdCBpbiBjb250ZW50
cworICAgICAgICBhc3NlcnQgImluZm8gbWVzc2FnZSBpbiB0ZXN0X3NpbXBsZSIgaW4gY29udGVu
dHMKKworCitkZWYgdGVzdF9sb2dfaW5faG9va3ModGVzdGRpcik6CisgICAgbG9nX2ZpbGUgPSB0
ZXN0ZGlyLnRtcGRpci5qb2luKCJweXRlc3QubG9nIikuc3RycGF0aAorCisgICAgdGVzdGRpci5t
YWtlaW5pKAorICAgICAgICAiIiIKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgbG9nX2ZpbGU9
e30KKyAgICAgICAgbG9nX2ZpbGVfbGV2ZWwgPSBJTkZPCisgICAgICAgIGxvZ19jbGk9dHJ1ZQor
ICAgICAgICAiIiIuZm9ybWF0KAorICAgICAgICAgICAgbG9nX2ZpbGUKKyAgICAgICAgKQorICAg
ICkKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9y
dCBsb2dnaW5nCisKKyAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0bG9vcChzZXNzaW9uKToKKyAg
ICAgICAgICAgIGxvZ2dpbmcuaW5mbygncnVudGVzdGxvb3AnKQorCisgICAgICAgIGRlZiBweXRl
c3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb24pOgorICAgICAgICAgICAgbG9nZ2luZy5pbmZvKCdzZXNz
aW9uc3RhcnQnKQorCisgICAgICAgIGRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChzZXNzaW9uLCBl
eGl0c3RhdHVzKToKKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygnc2Vzc2lvbmZpbmlzaCcpCisg
ICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqc2Vzc2lvbnN0YXJ0KiIsICIqcnVudGVzdGxvb3Aq
IiwgIipzZXNzaW9uZmluaXNoKiJdKQorICAgIHdpdGggb3Blbihsb2dfZmlsZSkgYXMgcmZoOgor
ICAgICAgICBjb250ZW50cyA9IHJmaC5yZWFkKCkKKyAgICAgICAgYXNzZXJ0ICJzZXNzaW9uc3Rh
cnQiIGluIGNvbnRlbnRzCisgICAgICAgIGFzc2VydCAicnVudGVzdGxvb3AiIGluIGNvbnRlbnRz
CisgICAgICAgIGFzc2VydCAic2Vzc2lvbmZpbmlzaCIgaW4gY29udGVudHMKKworCitkZWYgdGVz
dF9sb2dfaW5fcnVudGVzdF9sb2dyZXBvcnQodGVzdGRpcik6CisgICAgbG9nX2ZpbGUgPSB0ZXN0
ZGlyLnRtcGRpci5qb2luKCJweXRlc3QubG9nIikuc3RycGF0aAorCisgICAgdGVzdGRpci5tYWtl
aW5pKAorICAgICAgICAiIiIKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgbG9nX2ZpbGU9e30K
KyAgICAgICAgbG9nX2ZpbGVfbGV2ZWwgPSBJTkZPCisgICAgICAgIGxvZ19jbGk9dHJ1ZQorICAg
ICAgICAiIiIuZm9ybWF0KAorICAgICAgICAgICAgbG9nX2ZpbGUKKyAgICAgICAgKQorICAgICkK
KyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBs
b2dnaW5nCisgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisg
ICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQocmVwb3J0KToKKyAgICAgICAgICAg
IGxvZ2dlci5pbmZvKCJsb2dyZXBvcnQiKQorICAgICIiIgorICAgICkKKyAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZmlyc3QoKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgVHJ1ZQorICAgICAgICAiIiIKKyAgICApCisgICAgdGVzdGRp
ci5ydW5weXRlc3QoKQorICAgIHdpdGggb3Blbihsb2dfZmlsZSkgYXMgcmZoOgorICAgICAgICBj
b250ZW50cyA9IHJmaC5yZWFkKCkKKyAgICAgICAgYXNzZXJ0IGNvbnRlbnRzLmNvdW50KCJsb2dy
ZXBvcnQiKSA9PSAzCisKKworZGVmIHRlc3RfbG9nX3NldF9wYXRoKHRlc3RkaXIpOgorICAgIHJl
cG9ydF9kaXJfYmFzZSA9IHRlc3RkaXIudG1wZGlyLnN0cnBhdGgKKworICAgIHRlc3RkaXIubWFr
ZWluaSgKKyAgICAgICAgIiIiCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIGxvZ19maWxlX2xl
dmVsID0gREVCVUcKKyAgICAgICAgbG9nX2NsaT10cnVlCisgICAgICAgICIiIgorICAgICkKKyAg
ICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQg
b3MKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuaG9va2lt
cGwoaG9va3dyYXBwZXI9VHJ1ZSwgdHJ5Zmlyc3Q9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBweXRl
c3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAgICAgICAgICAgICAgICBjb25maWcgPSBpdGVtLmNv
bmZpZworICAgICAgICAgICAgICAgIGxvZ2dpbmdfcGx1Z2luID0gY29uZmlnLnBsdWdpbm1hbmFn
ZXIuZ2V0X3BsdWdpbigibG9nZ2luZy1wbHVnaW4iKQorICAgICAgICAgICAgICAgIHJlcG9ydF9m
aWxlID0gb3MucGF0aC5qb2luKHt9LCBpdGVtLl9yZXF1ZXN0Lm5vZGUubmFtZSkKKyAgICAgICAg
ICAgICAgICBsb2dnaW5nX3BsdWdpbi5zZXRfbG9nX3BhdGgocmVwb3J0X2ZpbGUpCisgICAgICAg
ICAgICAgICAgeWllbGQKKyAgICAgICAgIiIiLmZvcm1hdCgKKyAgICAgICAgICAgIHJlcHIocmVw
b3J0X2Rpcl9iYXNlKQorICAgICAgICApCisgICAgKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
KyAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgbG9nZ2luZworICAgICAgICAgICAgbG9n
Z2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoInRlc3RjYXNlLWxvZ2dlciIpCisgICAgICAgICAgICBk
ZWYgdGVzdF9maXJzdCgpOgorICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJtZXNzYWdlIGZy
b20gdGVzdCAxIikKKyAgICAgICAgICAgICAgICBhc3NlcnQgVHJ1ZQorCisgICAgICAgICAgICBk
ZWYgdGVzdF9zZWNvbmQoKToKKyAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoIm1lc3NhZ2Ug
ZnJvbSB0ZXN0IDIiKQorICAgICAgICAgICAgICAgIGFzc2VydCBUcnVlCisgICAgICAgICIiIgor
ICAgICkKKyAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgd2l0aCBvcGVuKG9zLnBhdGguam9p
bihyZXBvcnRfZGlyX2Jhc2UsICJ0ZXN0X2ZpcnN0IiksICJyIikgYXMgcmZoOgorICAgICAgICBj
b250ZW50ID0gcmZoLnJlYWQoKQorICAgICAgICBhc3NlcnQgIm1lc3NhZ2UgZnJvbSB0ZXN0IDEi
IGluIGNvbnRlbnQKKworICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4ocmVwb3J0X2Rpcl9iYXNl
LCAidGVzdF9zZWNvbmQiKSwgInIiKSBhcyByZmg6CisgICAgICAgIGNvbnRlbnQgPSByZmgucmVh
ZCgpCisgICAgICAgIGFzc2VydCAibWVzc2FnZSBmcm9tIHRlc3QgMiIgaW4gY29udGVudAorCisK
K2RlZiB0ZXN0X2NvbG9yZWRfY2FwdHVyZWRfbG9nKHRlc3RkaXIpOgorICAgICIiIgorICAgIFRl
c3QgdGhhdCB0aGUgbGV2ZWwgbmFtZXMgb2YgY2FwdHVyZWQgbG9nIG1lc3NhZ2VzIG9mIGEgZmFp
bGluZyB0ZXN0IGFyZQorICAgIGNvbG9yZWQuCisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKworICAgICAgICBsb2dn
ZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworICAgICAgICBkZWYgdGVzdF9mb28o
KToKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCd0ZXh0IGdvaW5nIHRvIGxvZ2dlciBmcm9tIGNh
bGwnKQorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICIiIgorICAgICkKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1sb2ctbGV2ZWw9SU5GTyIsICItLWNvbG9yPXll
cyIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcygKKyAgICAgICAgWworICAgICAgICAgICAgIiotLSBDYXB0dXJlZCBsb2cgY2FsbCAt
LSoiLAorICAgICAgICAgICAgIlx4MWJbMzJtSU5GTyAgICBceDFiWzBtKnRleHQgZ29pbmcgdG8g
bG9nZ2VyIGZyb20gY2FsbCIsCisgICAgICAgIF0KKyAgICApCisKKworZGVmIHRlc3RfY29sb3Jl
ZF9hbnNpX2VzY19jYXBsb2d0ZXh0KHRlc3RkaXIpOgorICAgICIiIgorICAgIE1ha2Ugc3VyZSB0
aGF0IGNhcGxvZy50ZXh0IGRvZXMgbm90IGNvbnRhaW4gQU5TSSBlc2NhcGUgc2VxdWVuY2VzLgor
ICAgICIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGlt
cG9ydCBsb2dnaW5nCisKKyAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCisKKyAgICAgICAgZGVmIHRlc3RfZm9vKGNhcGxvZyk6CisgICAgICAgICAgICBsb2dnZXIu
aW5mbygndGV4dCBnb2luZyB0byBsb2dnZXIgZnJvbSBjYWxsJykKKyAgICAgICAgICAgIGFzc2Vy
dCAnXHgxYicgbm90IGluIGNhcGxvZy50ZXh0CisgICAgICAgICIiIgorICAgICkKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1sb2ctbGV2ZWw9SU5GTyIsICItLWNvbG9yPXllcyIp
CisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9weXRob24vYXBwcm94LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vYXBwcm94
LnB5CmluZGV4IDllMjVmZWIwYjRkNjMwYWM4ZGI4Njg1MzU2MTg2OWNiMmFhYTE3ZWIuLmNkOGRm
NWQyNzRmOWM2MzRjZTk0YjUzMzFjMjk0OTE2NTBkN2FkNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvcHl0aG9uL2FwcHJveC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5
dGhvbi9hcHByb3gucHkKQEAgLTEsMTkgKzEsMTkgQEAKLSMgZW5jb2Rpbmc6IHV0Zi04CisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IGRvY3Rlc3QKIGltcG9ydCBvcGVyYXRvcgogaW1w
b3J0IHN5cwotaW1wb3J0IHB5dGVzdAotaW1wb3J0IGRvY3Rlc3QKLQotZnJvbSBweXRlc3QgaW1w
b3J0IGFwcHJveAotZnJvbSBvcGVyYXRvciBpbXBvcnQgZXEsIG5lCiBmcm9tIGRlY2ltYWwgaW1w
b3J0IERlY2ltYWwKIGZyb20gZnJhY3Rpb25zIGltcG9ydCBGcmFjdGlvbgorZnJvbSBvcGVyYXRv
ciBpbXBvcnQgZXEKK2Zyb20gb3BlcmF0b3IgaW1wb3J0IG5lCisKK2ltcG9ydCBweXRlc3QKK2Zy
b20gcHl0ZXN0IGltcG9ydCBhcHByb3gKIAogaW5mLCBuYW4gPSBmbG9hdCgiaW5mIiksIGZsb2F0
KCJuYW4iKQogCiAKIGNsYXNzIE15RG9jVGVzdFJ1bm5lcihkb2N0ZXN0LkRvY1Rlc3RSdW5uZXIp
OgotCiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICBkb2N0ZXN0LkRvY1Rlc3RSdW5u
ZXIuX19pbml0X18oc2VsZikKIApAQCAtMjYsMjggKzI2LDI3IEBAIGNsYXNzIE15RG9jVGVzdFJ1
bm5lcihkb2N0ZXN0LkRvY1Rlc3RSdW5uZXIpOgogCiAKIGNsYXNzIFRlc3RBcHByb3gob2JqZWN0
KToKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgcGx1c19taW51cyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHUiXHUwMGIxIiBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMiBlbHNlIHUiKy0i
CiAKLSAgICBkZWYgdGVzdF9yZXByX3N0cmluZyhzZWxmKToKLSAgICAgICAgcGx1c19taW51cyA9
IHUiXHUwMGIxIiBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMiBlbHNlIHUiKy0iCisgICAgZGVm
IHRlc3RfcmVwcl9zdHJpbmcoc2VsZiwgcGx1c19taW51cyk6CiAgICAgICAgIHRvbDEsIHRvbDIs
IGluZnIgPSAiMS4wZS0wNiIsICIyLjBlLTA2IiwgImluZiIKICAgICAgICAgYXNzZXJ0IHJlcHIo
YXBwcm94KDEuMCkpID09ICIxLjAge3BtfSB7dG9sMX0iLmZvcm1hdChwbT1wbHVzX21pbnVzLCB0
b2wxPXRvbDEpCi0gICAgICAgIGFzc2VydCAoCi0gICAgICAgICAgICByZXByKGFwcHJveChbMS4w
LCAyLjBdKSkKLSAgICAgICAgICAgID09ICJhcHByb3goWzEuMCB7cG19IHt0b2wxfSwgMi4wIHtw
bX0ge3RvbDJ9XSkiLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBwbT1wbHVzX21pbnVzLCB0b2wx
PXRvbDEsIHRvbDI9dG9sMgotICAgICAgICAgICAgKQorICAgICAgICBhc3NlcnQgcmVwcigKKyAg
ICAgICAgICAgIGFwcHJveChbMS4wLCAyLjBdKQorICAgICAgICApID09ICJhcHByb3goWzEuMCB7
cG19IHt0b2wxfSwgMi4wIHtwbX0ge3RvbDJ9XSkiLmZvcm1hdCgKKyAgICAgICAgICAgIHBtPXBs
dXNfbWludXMsIHRvbDE9dG9sMSwgdG9sMj10b2wyCiAgICAgICAgICkKLSAgICAgICAgYXNzZXJ0
ICgKLSAgICAgICAgICAgIHJlcHIoYXBwcm94KCgxLjAsIDIuMCkpKQotICAgICAgICAgICAgPT0g
ImFwcHJveCgoMS4wIHtwbX0ge3RvbDF9LCAyLjAge3BtfSB7dG9sMn0pKSIuZm9ybWF0KAotICAg
ICAgICAgICAgICAgIHBtPXBsdXNfbWludXMsIHRvbDE9dG9sMSwgdG9sMj10b2wyCi0gICAgICAg
ICAgICApCisgICAgICAgIGFzc2VydCByZXByKAorICAgICAgICAgICAgYXBwcm94KCgxLjAsIDIu
MCkpCisgICAgICAgICkgPT0gImFwcHJveCgoMS4wIHtwbX0ge3RvbDF9LCAyLjAge3BtfSB7dG9s
Mn0pKSIuZm9ybWF0KAorICAgICAgICAgICAgcG09cGx1c19taW51cywgdG9sMT10b2wxLCB0b2wy
PXRvbDIKICAgICAgICAgKQogICAgICAgICBhc3NlcnQgcmVwcihhcHByb3goaW5mKSkgPT0gImlu
ZiIKICAgICAgICAgYXNzZXJ0IHJlcHIoYXBwcm94KDEuMCwgcmVsPW5hbikpID09ICIxLjAge3Bt
fSA/Pz8iLmZvcm1hdChwbT1wbHVzX21pbnVzKQotICAgICAgICBhc3NlcnQgKAotICAgICAgICAg
ICAgcmVwcihhcHByb3goMS4wLCByZWw9aW5mKSkKLSAgICAgICAgICAgID09ICIxLjAge3BtfSB7
aW5mcn0iLmZvcm1hdChwbT1wbHVzX21pbnVzLCBpbmZyPWluZnIpCisgICAgICAgIGFzc2VydCBy
ZXByKGFwcHJveCgxLjAsIHJlbD1pbmYpKSA9PSAiMS4wIHtwbX0ge2luZnJ9Ii5mb3JtYXQoCisg
ICAgICAgICAgICBwbT1wbHVzX21pbnVzLCBpbmZyPWluZnIKICAgICAgICAgKQogICAgICAgICBh
c3NlcnQgcmVwcihhcHByb3goMS4waiwgcmVsPWluZikpID09ICIxaiIKIApAQCAtNjEsNiArNjAs
MjIgQEAgY2xhc3MgVGVzdEFwcHJveChvYmplY3QpOgogICAgICAgICAgICAgKSwKICAgICAgICAg
KQogCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAidmFsdWUsIHJlcHJf
c3RyaW5nIiwKKyAgICAgICAgWworICAgICAgICAgICAgKDUuMCwgImFwcHJveCg1LjAge3BtfSA1
LjBlLTA2KSIpLAorICAgICAgICAgICAgKFs1LjBdLCAiYXBwcm94KFs1LjAge3BtfSA1LjBlLTA2
XSkiKSwKKyAgICAgICAgICAgIChbWzUuMF1dLCAiYXBwcm94KFtbNS4wIHtwbX0gNS4wZS0wNl1d
KSIpLAorICAgICAgICAgICAgKFtbNS4wLCA2LjBdXSwgImFwcHJveChbWzUuMCB7cG19IDUuMGUt
MDYsIDYuMCB7cG19IDYuMGUtMDZdXSkiKSwKKyAgICAgICAgICAgIChbWzUuMF0sIFs2LjBdXSwg
ImFwcHJveChbWzUuMCB7cG19IDUuMGUtMDZdLCBbNi4wIHtwbX0gNi4wZS0wNl1dKSIpLAorICAg
ICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9yZXByX25kX2FycmF5KHNlbGYsIHBsdXNfbWlu
dXMsIHZhbHVlLCByZXByX3N0cmluZyk6CisgICAgICAgICIiIk1ha2Ugc3VyZSB0aGF0IGFycmF5
cyBvZiBhbGwgZGlmZmVyZW50IGRpbWVuc2lvbnMgYXJlIHJlcHInZCBjb3JyZWN0bHkuIiIiCisg
ICAgICAgIG5wID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgibnVtcHkiKQorICAgICAgICBucF9hcnJh
eSA9IG5wLmFycmF5KHZhbHVlKQorICAgICAgICBhc3NlcnQgcmVwcihhcHByb3gobnBfYXJyYXkp
KSA9PSByZXByX3N0cmluZy5mb3JtYXQocG09cGx1c19taW51cykKKwogICAgIGRlZiB0ZXN0X29w
ZXJhdG9yX292ZXJsb2FkaW5nKHNlbGYpOgogICAgICAgICBhc3NlcnQgMSA9PSBhcHByb3goMSwg
cmVsPTFlLTYsIGFicz0xZS0xMikKICAgICAgICAgYXNzZXJ0IG5vdCAoMSAhPSBhcHByb3goMSwg
cmVsPTFlLTYsIGFicz0xZS0xMikpCkBAIC0zMzIsNiArMzQ3LDY4IEBAIGNsYXNzIFRlc3RBcHBy
b3gob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IGFjdHVhbCA9PSBhcHByb3gobGlzdChleHBlY3Rl
ZCksIHJlbD01ZS03LCBhYnM9MCkKICAgICAgICAgYXNzZXJ0IGFjdHVhbCAhPSBhcHByb3gobGlz
dChleHBlY3RlZCksIHJlbD01ZS04LCBhYnM9MCkKIAorICAgIGRlZiB0ZXN0X251bXB5X3RvbGVy
YW5jZV9hcmdzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2hlY2sgdGhhdCBudW1weSBy
ZWwvYWJzIGFyZ3MgYXJlIGhhbmRsZWQgY29ycmVjdGx5CisgICAgICAgIGZvciBjb21wYXJpc29u
IGFnYWluc3QgYW4gbnAuYXJyYXkKKyAgICAgICAgQ2hlY2sgYm90aCBzaWRlcyBvZiB0aGUgb3Bl
cmF0b3IsIGhvcGVmdWxseSBpdCBkb2Vzbid0IGltcGFjdCB0aGluZ3MuCisgICAgICAgIFRlc3Qg
YWxsIHBlcm11dGF0aW9ucyBvZiB3aGVyZSB0aGUgYXBwcm94IGFuZCBucC5hcnJheSgpIGNhbiBz
aG93IHVwCisgICAgICAgICIiIgorICAgICAgICBucCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIm51
bXB5IikKKyAgICAgICAgZXhwZWN0ZWQgPSAxMDAuMAorICAgICAgICBhY3R1YWwgPSA5OS4wCisg
ICAgICAgIGFic19kaWZmID0gZXhwZWN0ZWQgLSBhY3R1YWwKKyAgICAgICAgcmVsX2RpZmYgPSAo
ZXhwZWN0ZWQgLSBhY3R1YWwpIC8gZXhwZWN0ZWQKKworICAgICAgICB0ZXN0cyA9IFsKKyAgICAg
ICAgICAgIChlcSwgYWJzX2RpZmYsIDApLAorICAgICAgICAgICAgKGVxLCAwLCByZWxfZGlmZiks
CisgICAgICAgICAgICAobmUsIDAsIHJlbF9kaWZmIC8gMi4wKSwgICMgcmVsIGRpZmYgZmFpbAor
ICAgICAgICAgICAgKG5lLCBhYnNfZGlmZiAvIDIuMCwgMCksICAjIGFicyBkaWZmIGZhaWwKKyAg
ICAgICAgXQorCisgICAgICAgIGZvciBvcCwgX2FicywgX3JlbCBpbiB0ZXN0czoKKyAgICAgICAg
ICAgIGFzc2VydCBvcChucC5hcnJheShhY3R1YWwpLCBhcHByb3goZXhwZWN0ZWQsIGFicz1fYWJz
LCByZWw9X3JlbCkpICAjIGEsIGIKKyAgICAgICAgICAgIGFzc2VydCBvcChhcHByb3goZXhwZWN0
ZWQsIGFicz1fYWJzLCByZWw9X3JlbCksIG5wLmFycmF5KGFjdHVhbCkpICAjIGIsIGEKKworICAg
ICAgICAgICAgYXNzZXJ0IG9wKGFjdHVhbCwgYXBwcm94KG5wLmFycmF5KGV4cGVjdGVkKSwgYWJz
PV9hYnMsIHJlbD1fcmVsKSkgICMgYSwgYgorICAgICAgICAgICAgYXNzZXJ0IG9wKGFwcHJveChu
cC5hcnJheShleHBlY3RlZCksIGFicz1fYWJzLCByZWw9X3JlbCksIGFjdHVhbCkgICMgYiwgYQor
CisgICAgICAgICAgICBhc3NlcnQgb3AobnAuYXJyYXkoYWN0dWFsKSwgYXBwcm94KG5wLmFycmF5
KGV4cGVjdGVkKSwgYWJzPV9hYnMsIHJlbD1fcmVsKSkKKyAgICAgICAgICAgIGFzc2VydCBvcChh
cHByb3gobnAuYXJyYXkoZXhwZWN0ZWQpLCBhYnM9X2FicywgcmVsPV9yZWwpLCBucC5hcnJheShh
Y3R1YWwpKQorCisgICAgZGVmIHRlc3RfbnVtcHlfZXhwZWN0aW5nX25hbihzZWxmKToKKyAgICAg
ICAgbnAgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJudW1weSIpCisgICAgICAgIGV4YW1wbGVzID0g
WworICAgICAgICAgICAgKGVxLCBuYW4sIG5hbiksCisgICAgICAgICAgICAoZXEsIC1uYW4sIC1u
YW4pLAorICAgICAgICAgICAgKGVxLCBuYW4sIC1uYW4pLAorICAgICAgICAgICAgKG5lLCAwLjAs
IG5hbiksCisgICAgICAgICAgICAobmUsIGluZiwgbmFuKSwKKyAgICAgICAgXQorICAgICAgICBm
b3Igb3AsIGEsIHggaW4gZXhhbXBsZXM6CisgICAgICAgICAgICAjIE5vdGhpbmcgaXMgZXF1YWwg
dG8gTmFOIGJ5IGRlZmF1bHQuCisgICAgICAgICAgICBhc3NlcnQgbnAuYXJyYXkoYSkgIT0gYXBw
cm94KHgpCisgICAgICAgICAgICBhc3NlcnQgYSAhPSBhcHByb3gobnAuYXJyYXkoeCkpCisKKyAg
ICAgICAgICAgICMgSWYgYGBuYW5fb2s9VHJ1ZWBgLCB0aGVuIE5hTiBpcyBlcXVhbCB0byBOYU4u
CisgICAgICAgICAgICBhc3NlcnQgb3AobnAuYXJyYXkoYSksIGFwcHJveCh4LCBuYW5fb2s9VHJ1
ZSkpCisgICAgICAgICAgICBhc3NlcnQgb3AoYSwgYXBwcm94KG5wLmFycmF5KHgpLCBuYW5fb2s9
VHJ1ZSkpCisKKyAgICBkZWYgdGVzdF9udW1weV9leHBlY3RpbmdfaW5mKHNlbGYpOgorICAgICAg
ICBucCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIm51bXB5IikKKyAgICAgICAgZXhhbXBsZXMgPSBb
CisgICAgICAgICAgICAoZXEsIGluZiwgaW5mKSwKKyAgICAgICAgICAgIChlcSwgLWluZiwgLWlu
ZiksCisgICAgICAgICAgICAobmUsIGluZiwgLWluZiksCisgICAgICAgICAgICAobmUsIDAuMCwg
aW5mKSwKKyAgICAgICAgICAgIChuZSwgbmFuLCBpbmYpLAorICAgICAgICBdCisgICAgICAgIGZv
ciBvcCwgYSwgeCBpbiBleGFtcGxlczoKKyAgICAgICAgICAgIGFzc2VydCBvcChucC5hcnJheShh
KSwgYXBwcm94KHgpKQorICAgICAgICAgICAgYXNzZXJ0IG9wKGEsIGFwcHJveChucC5hcnJheSh4
KSkpCisgICAgICAgICAgICBhc3NlcnQgb3AobnAuYXJyYXkoYSksIGFwcHJveChucC5hcnJheSh4
KSkpCisKICAgICBkZWYgdGVzdF9udW1weV9hcnJheV93cm9uZ19zaGFwZShzZWxmKToKICAgICAg
ICAgbnAgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJudW1weSIpCiAKQEAgLTM2Nyw2ICs0NDQsMjEg
QEAgY2xhc3MgVGVzdEFwcHJveChvYmplY3QpOgogICAgICAgICAgICAgWyIqQXQgaW5kZXggMCBk
aWZmOiAzICE9IDQgKiB7fSIuZm9ybWF0KGV4cGVjdGVkKSwgIj0qIDEgZmFpbGVkIGluICo9Il0K
ICAgICAgICAgKQogCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAieCIs
CisgICAgICAgIFsKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbShOb25lKSwKKyAgICAgICAgICAg
IHB5dGVzdC5wYXJhbSgic3RyaW5nIiksCisgICAgICAgICAgICBweXRlc3QucGFyYW0oWyJzdHJp
bmciXSwgaWQ9Im5lc3RlZC1zdHIiKSwKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbShbWzFdXSwg
aWQ9Im5lc3RlZC1saXN0IiksCisgICAgICAgICAgICBweXRlc3QucGFyYW0oeyJrZXkiOiAic3Ry
aW5nIn0sIGlkPSJkaWN0LXdpdGgtc3RyaW5nIiksCisgICAgICAgICAgICBweXRlc3QucGFyYW0o
eyJrZXkiOiB7ImtleSI6IDF9fSwgaWQ9Im5lc3RlZC1kaWN0IiksCisgICAgICAgIF0sCisgICAg
KQorICAgIGRlZiB0ZXN0X2V4cGVjdGVkX3ZhbHVlX3R5cGVfZXJyb3Ioc2VsZiwgeCk6CisgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgYXBwcm94KHgp
CisKICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCiAgICAgICAgICJvcCIsCiAgICAgICAg
IFsKQEAgLTQwNCwzICs0OTYsMTQgQEAgY2xhc3MgVGVzdEFwcHJveChvYmplY3QpOgogICAgICAg
ICBhc3NlcnQgYWN0dWFsICE9IGFwcHJveChleHBlY3RlZCwgcmVsPTVlLTgsIGFicz0wKQogICAg
ICAgICBhc3NlcnQgYXBwcm94KGV4cGVjdGVkLCByZWw9NWUtNywgYWJzPTApID09IGFjdHVhbAog
ICAgICAgICBhc3NlcnQgYXBwcm94KGV4cGVjdGVkLCByZWw9NWUtOCwgYWJzPTApICE9IGFjdHVh
bAorCisgICAgZGVmIHRlc3RfZ2VuZXJpY19zaXplZF9pdGVyYWJsZV9vYmplY3Qoc2VsZik6Cisg
ICAgICAgIGNsYXNzIE15U2l6ZWRJdGVyYWJsZShvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9f
aXRlcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBpdGVyKFsxLCAyLCAzLCA0XSkK
KworICAgICAgICAgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJu
IDQKKworICAgICAgICBleHBlY3RlZCA9IE15U2l6ZWRJdGVyYWJsZSgpCisgICAgICAgIGFzc2Vy
dCBbMSwgMiwgMywgNF0gPT0gYXBwcm94KGV4cGVjdGVkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9weXRob24vY29sbGVjdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9u
L2NvbGxlY3QucHkKaW5kZXggNzI0NTA0YjFhZjcwMWY1M2ZkN2RjN2QxZmUxYzFhNWQ1NjNhMzhl
Yy4uNTAxYjMwYTQ5YjAwMjMzMzI3MGYxZjBkMDVkZTExNWU4MTNlYWExMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vY29sbGVjdC5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3B5dGhvbi9jb2xsZWN0LnB5CkBAIC0xLDIwICsxLDE1IEBACiAjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCi1mcm9tIHRleHR3cmFwIGltcG9ydCBk
ZWRlbnQKK2ltcG9ydCB0ZXh0d3JhcAogCiBpbXBvcnQgX3B5dGVzdC5fY29kZQogaW1wb3J0IHB5
dGVzdAogZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAogZnJv
bSBfcHl0ZXN0Lm5vZGVzIGltcG9ydCBDb2xsZWN0b3IKIAotaWdub3JlX3BhcmFtZXRyaXplZF9t
YXJrcyA9IHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKAotICAgICJpZ25vcmU6QXBwbHlpbmcg
bWFya3MgZGlyZWN0bHkgdG8gcGFyYW1ldGVycyIKLSkKLQogCiBjbGFzcyBUZXN0TW9kdWxlKG9i
amVjdCk6Ci0KICAgICBkZWYgdGVzdF9mYWlsaW5nX2ltcG9ydChzZWxmLCB0ZXN0ZGlyKToKICAg
ICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woImltcG9ydCBhbGtzZGphbHNrZGph
bGtqYWxzIikKICAgICAgICAgcHl0ZXN0LnJhaXNlcyhDb2xsZWN0b3IuQ29sbGVjdEVycm9yLCBt
b2Rjb2wuY29sbGVjdCkKQEAgLTM5LDggKzM0LDYgQEAgY2xhc3MgVGVzdE1vZHVsZShvYmplY3Qp
OgogICAgICAgICApCiAKICAgICBkZWYgdGVzdF9pbXBvcnRfcHJlcGVuZF9hcHBlbmQoc2VsZiwg
dGVzdGRpciwgbW9ua2V5cGF0Y2gpOgotICAgICAgICBzeXNwYXRoID0gbGlzdChzeXMucGF0aCkK
LSAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihzeXMsICJwYXRoIiwgc3lzcGF0aCkKICAgICAg
ICAgcm9vdDEgPSB0ZXN0ZGlyLm1rZGlyKCJyb290MSIpCiAgICAgICAgIHJvb3QyID0gdGVzdGRp
ci5ta2Rpcigicm9vdDIiKQogICAgICAgICByb290MS5lbnN1cmUoIng0NTYucHkiKQpAQCAtNDgs
MTMgKzQxLDE0IEBAIGNsYXNzIFRlc3RNb2R1bGUob2JqZWN0KToKICAgICAgICAgcCA9IHJvb3Qy
LmpvaW4oInRlc3RfeDQ1Ni5weSIpCiAgICAgICAgIG1vbmtleXBhdGNoLnN5c3BhdGhfcHJlcGVu
ZChzdHIocm9vdDEpKQogICAgICAgICBwLndyaXRlKAotICAgICAgICAgICAgZGVkZW50KAorICAg
ICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAogICAgICAgICAgICAgICAgICIiIlwKLSAgICAgICAg
ICAgIGltcG9ydCB4NDU2Ci0gICAgICAgICAgICBkZWYgdGVzdCgpOgotICAgICAgICAgICAgICAg
IGFzc2VydCB4NDU2Ll9fZmlsZV9fLnN0YXJ0c3dpdGgoJXIpCi0gICAgICAgICIiIgotICAgICAg
ICAgICAgICAgICUgc3RyKHJvb3QyKQorICAgICAgICAgICAgICAgIGltcG9ydCB4NDU2CisgICAg
ICAgICAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHg0NTYu
X19maWxlX18uc3RhcnRzd2l0aCh7IXJ9KQorICAgICAgICAgICAgICAgICIiIi5mb3JtYXQoCisg
ICAgICAgICAgICAgICAgICAgIHN0cihyb290MikKKyAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgICApCiAgICAgICAgICkKICAgICAgICAgd2l0aCByb290Mi5hc19jd2QoKToKQEAgLTE0MSw3
ICsxMzUsNiBAQCBjbGFzcyBUZXN0TW9kdWxlKG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdENsYXNz
KG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9jbGFzc193aXRoX2luaXRfd2FybmluZyhzZWxmLCB0
ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBA
IC0xNTMsNyArMTQ2LDI0IEBAIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgogICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJ3IikKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKAogICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICIqY2Fubm90IGNvbGxl
Y3QgdGVzdCBjbGFzcyAnVGVzdENsYXNzMScgYmVjYXVzZSBpdCBoYXMgYSBfX2luaXRfXyBjb25z
dHJ1Y3RvciIKKyAgICAgICAgICAgICAgICAiKmNhbm5vdCBjb2xsZWN0IHRlc3QgY2xhc3MgJ1Rl
c3RDbGFzczEnIGJlY2F1c2UgaXQgaGFzICIKKyAgICAgICAgICAgICAgICAiYSBfX2luaXRfXyBj
b25zdHJ1Y3RvciAoZnJvbTogdGVzdF9jbGFzc193aXRoX2luaXRfd2FybmluZy5weSkiCisgICAg
ICAgICAgICBdCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2NsYXNzX3dpdGhfbmV3X3dhcm5p
bmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgICIiIgorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzMShvYmplY3QpOgorICAgICAgICAg
ICAgICAgIGRlZiBfX25ld19fKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
cnciKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBb
CisgICAgICAgICAgICAgICAgIipjYW5ub3QgY29sbGVjdCB0ZXN0IGNsYXNzICdUZXN0Q2xhc3Mx
JyBiZWNhdXNlIGl0IGhhcyAiCisgICAgICAgICAgICAgICAgImEgX19uZXdfXyBjb25zdHJ1Y3Rv
ciAoZnJvbTogdGVzdF9jbGFzc193aXRoX25ld193YXJuaW5nLnB5KSIKICAgICAgICAgICAgIF0K
ICAgICAgICAgKQogCkBAIC0yNDUsMjI2ICsyNTUsMTQgQEAgY2xhc3MgVGVzdENsYXNzKG9iamVj
dCk6CiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAog
CiAKLWNsYXNzIFRlc3RHZW5lcmF0b3Iob2JqZWN0KToKLQotICAgIGRlZiB0ZXN0X2dlbmVyYXRp
dmVfZnVuY3Rpb25zKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdl
dG1vZHVsZWNvbCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIGZ1bmMxKGFyZywg
YXJnMik6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSBhcmcyCi0KLSAgICAgICAgICAg
IGRlZiB0ZXN0X2dlbigpOgotICAgICAgICAgICAgICAgIHlpZWxkIGZ1bmMxLCAxNywgMyo1Ci0g
ICAgICAgICAgICAgICAgeWllbGQgZnVuYzEsIDQyLCA2KjcKLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLSAgICAgICAgY29saXRlbXMgPSBtb2Rjb2wuY29sbGVjdCgpCi0gICAgICAgIGFzc2VydCBs
ZW4oY29saXRlbXMpID09IDEKLSAgICAgICAgZ2VuY29sID0gY29saXRlbXNbMF0KLSAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UoZ2VuY29sLCBweXRlc3QuR2VuZXJhdG9yKQotICAgICAgICBnZW5j
b2xpdGVtcyA9IGdlbmNvbC5jb2xsZWN0KCkKLSAgICAgICAgYXNzZXJ0IGxlbihnZW5jb2xpdGVt
cykgPT0gMgotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2xpdGVtc1swXSwgcHl0ZXN0
LkZ1bmN0aW9uKQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2xpdGVtc1sxXSwgcHl0
ZXN0LkZ1bmN0aW9uKQotICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMF0ubmFtZSA9PSAiWzBd
IgotICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMF0ub2JqLl9fbmFtZV9fID09ICJmdW5jMSIK
LQotICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmVfbWV0aG9kcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGRlZiBmdW5jMShhcmcsIGFyZzIpOgotICAgICAgICAgICAgICAgIGFzc2VydCBhcmcg
PT0gYXJnMgotICAgICAgICAgICAgY2xhc3MgVGVzdEdlbk1ldGhvZHMob2JqZWN0KToKLSAgICAg
ICAgICAgICAgICBkZWYgdGVzdF9nZW4oc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxk
IGZ1bmMxLCAxNywgMyo1Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkIGZ1bmMxLCA0MiwgNio3
Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIGdlbmNvbCA9IG1vZGNvbC5jb2xsZWN0
KClbMF0uY29sbGVjdCgpWzBdLmNvbGxlY3QoKVswXQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShnZW5jb2wsIHB5dGVzdC5HZW5lcmF0b3IpCi0gICAgICAgIGdlbmNvbGl0ZW1zID0gZ2VuY29s
LmNvbGxlY3QoKQotICAgICAgICBhc3NlcnQgbGVuKGdlbmNvbGl0ZW1zKSA9PSAyCi0gICAgICAg
IGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbGl0ZW1zWzBdLCBweXRlc3QuRnVuY3Rpb24pCi0gICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbGl0ZW1zWzFdLCBweXRlc3QuRnVuY3Rpb24pCi0g
ICAgICAgIGFzc2VydCBnZW5jb2xpdGVtc1swXS5uYW1lID09ICJbMF0iCi0gICAgICAgIGFzc2Vy
dCBnZW5jb2xpdGVtc1swXS5vYmouX19uYW1lX18gPT0gImZ1bmMxIgotCi0gICAgZGVmIHRlc3Rf
Z2VuZXJhdGl2ZV9mdW5jdGlvbnNfd2l0aF9leHBsaWNpdF9uYW1lcyhzZWxmLCB0ZXN0ZGlyKToK
LSAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woCi0gICAgICAgICAgICAiIiIK
LSAgICAgICAgICAgIGRlZiBmdW5jMShhcmcsIGFyZzIpOgotICAgICAgICAgICAgICAgIGFzc2Vy
dCBhcmcgPT0gYXJnMgotCi0gICAgICAgICAgICBkZWYgdGVzdF9nZW4oKToKLSAgICAgICAgICAg
ICAgICB5aWVsZCAic2V2ZW50ZWVuIiwgZnVuYzEsIDE3LCAzKjUKLSAgICAgICAgICAgICAgICB5
aWVsZCAiZm9ydHl0d28iLCBmdW5jMSwgNDIsIDYqNwotICAgICAgICAiIiIKLSAgICAgICAgKQot
ICAgICAgICBjb2xpdGVtcyA9IG1vZGNvbC5jb2xsZWN0KCkKLSAgICAgICAgYXNzZXJ0IGxlbihj
b2xpdGVtcykgPT0gMQotICAgICAgICBnZW5jb2wgPSBjb2xpdGVtc1swXQotICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShnZW5jb2wsIHB5dGVzdC5HZW5lcmF0b3IpCi0gICAgICAgIGdlbmNvbGl0
ZW1zID0gZ2VuY29sLmNvbGxlY3QoKQotICAgICAgICBhc3NlcnQgbGVuKGdlbmNvbGl0ZW1zKSA9
PSAyCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbGl0ZW1zWzBdLCBweXRlc3QuRnVu
Y3Rpb24pCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbGl0ZW1zWzFdLCBweXRlc3Qu
RnVuY3Rpb24pCi0gICAgICAgIGFzc2VydCBnZW5jb2xpdGVtc1swXS5uYW1lID09ICJbJ3NldmVu
dGVlbiddIgotICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMF0ub2JqLl9fbmFtZV9fID09ICJm
dW5jMSIKLSAgICAgICAgYXNzZXJ0IGdlbmNvbGl0ZW1zWzFdLm5hbWUgPT0gIlsnZm9ydHl0d28n
XSIKLSAgICAgICAgYXNzZXJ0IGdlbmNvbGl0ZW1zWzFdLm9iai5fX25hbWVfXyA9PSAiZnVuYzEi
Ci0KLSAgICBkZWYgdGVzdF9nZW5lcmF0aXZlX2Z1bmN0aW9uc191bmlxdWVfZXhwbGljaXRfbmFt
ZXMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgICMgZ2VuZXJhdGl2ZQotICAgICAgICBtb2Rjb2wg
PSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVm
IGZ1bmMoKTogcGFzcwotICAgICAgICAgICAgZGVmIHRlc3RfZ2VuKCk6Ci0gICAgICAgICAgICAg
ICAgeWllbGQgIm5hbWUiLCBmdW5jCi0gICAgICAgICAgICAgICAgeWllbGQgIm5hbWUiLCBmdW5j
Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIGNvbGl0ZW1zID0gbW9kY29sLmNvbGxl
Y3QoKQotICAgICAgICBhc3NlcnQgbGVuKGNvbGl0ZW1zKSA9PSAxCi0gICAgICAgIGdlbmNvbCA9
IGNvbGl0ZW1zWzBdCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdlbmNvbCwgcHl0ZXN0Lkdl
bmVyYXRvcikKLSAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAiZ2VuY29sLmNvbGxl
Y3QoKSIpCi0KLSAgICBkZWYgdGVzdF9nZW5lcmF0aXZlX21ldGhvZHNfd2l0aF9leHBsaWNpdF9u
YW1lcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVj
b2woCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiBmdW5jMShhcmcsIGFyZzIpOgot
ICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gYXJnMgotICAgICAgICAgICAgY2xhc3MgVGVz
dEdlbk1ldGhvZHMob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9nZW4oc2VsZik6
Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkICJtMSIsIGZ1bmMxLCAxNywgMyo1Ci0gICAgICAg
ICAgICAgICAgICAgIHlpZWxkICJtMiIsIGZ1bmMxLCA0MiwgNio3Ci0gICAgICAgICIiIgotICAg
ICAgICApCi0gICAgICAgIGdlbmNvbCA9IG1vZGNvbC5jb2xsZWN0KClbMF0uY29sbGVjdCgpWzBd
LmNvbGxlY3QoKVswXQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2wsIHB5dGVzdC5H
ZW5lcmF0b3IpCi0gICAgICAgIGdlbmNvbGl0ZW1zID0gZ2VuY29sLmNvbGxlY3QoKQotICAgICAg
ICBhc3NlcnQgbGVuKGdlbmNvbGl0ZW1zKSA9PSAyCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KGdlbmNvbGl0ZW1zWzBdLCBweXRlc3QuRnVuY3Rpb24pCi0gICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKGdlbmNvbGl0ZW1zWzFdLCBweXRlc3QuRnVuY3Rpb24pCi0gICAgICAgIGFzc2VydCBnZW5j
b2xpdGVtc1swXS5uYW1lID09ICJbJ20xJ10iCi0gICAgICAgIGFzc2VydCBnZW5jb2xpdGVtc1sw
XS5vYmouX19uYW1lX18gPT0gImZ1bmMxIgotICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMV0u
bmFtZSA9PSAiWydtMiddIgotICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMV0ub2JqLl9fbmFt
ZV9fID09ICJmdW5jMSIKLQotICAgIGRlZiB0ZXN0X29yZGVyX29mX2V4ZWN1dGlvbl9nZW5lcmF0
b3Jfc2FtZV9jb2RlbGluZShzZWxmLCB0ZXN0ZGlyLCB0bXBkaXIpOgotICAgICAgICBvID0gdGVz
dGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gICAgICAgICAgICBkZWYgdGVzdF9nZW5lcmF0
aXZlX29yZGVyX29mX2V4ZWN1dGlvbigpOgotICAgICAgICAgICAgICAgIGltcG9ydCBweSwgcHl0
ZXN0Ci0gICAgICAgICAgICAgICAgdGVzdF9saXN0ID0gW10KLSAgICAgICAgICAgICAgICBleHBl
Y3RlZF9saXN0ID0gbGlzdChyYW5nZSg2KSkKLQotICAgICAgICAgICAgICAgIGRlZiBsaXN0X2Fw
cGVuZChpdGVtKToKLSAgICAgICAgICAgICAgICAgICAgdGVzdF9saXN0LmFwcGVuZChpdGVtKQot
Ci0gICAgICAgICAgICAgICAgZGVmIGFzc2VydF9vcmRlcl9vZl9leGVjdXRpb24oKToKLSAgICAg
ICAgICAgICAgICAgICAgcHJpbnQoJ2V4cGVjdGVkIG9yZGVyJywgZXhwZWN0ZWRfbGlzdCkKLSAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoJ2J1dCBnb3QgICAgICAgJywgdGVzdF9saXN0KQotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQgdGVzdF9saXN0ID09IGV4cGVjdGVkX2xpc3QKLQotICAg
ICAgICAgICAgICAgIGZvciBpIGluIGV4cGVjdGVkX2xpc3Q6Ci0gICAgICAgICAgICAgICAgICAg
IHlpZWxkIGxpc3RfYXBwZW5kLCBpCi0gICAgICAgICAgICAgICAgeWllbGQgYXNzZXJ0X29yZGVy
X29mX2V4ZWN1dGlvbgotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4obykKLSAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSBy
ZXByZWMuY291bnRvdXRjb21lcygpCi0gICAgICAgIGFzc2VydCBwYXNzZWQgPT0gNwotICAgICAg
ICBhc3NlcnQgbm90IHNraXBwZWQgYW5kIG5vdCBmYWlsZWQKLQotICAgIGRlZiB0ZXN0X29yZGVy
X29mX2V4ZWN1dGlvbl9nZW5lcmF0b3JfZGlmZmVyZW50X2NvZGVsaW5lKHNlbGYsIHRlc3RkaXIp
OgotICAgICAgICBvID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAg
ICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gICAgICAgICAg
ICBkZWYgdGVzdF9nZW5lcmF0aXZlX3Rlc3RzX2RpZmZlcmVudF9jb2RlbGluZSgpOgotICAgICAg
ICAgICAgICAgIGltcG9ydCBweSwgcHl0ZXN0Ci0gICAgICAgICAgICAgICAgdGVzdF9saXN0ID0g
W10KLSAgICAgICAgICAgICAgICBleHBlY3RlZF9saXN0ID0gbGlzdChyYW5nZSgzKSkKLQotICAg
ICAgICAgICAgICAgIGRlZiBsaXN0X2FwcGVuZF8yKCk6Ci0gICAgICAgICAgICAgICAgICAgIHRl
c3RfbGlzdC5hcHBlbmQoMikKLQotICAgICAgICAgICAgICAgIGRlZiBsaXN0X2FwcGVuZF8xKCk6
Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RfbGlzdC5hcHBlbmQoMSkKLQotICAgICAgICAgICAg
ICAgIGRlZiBsaXN0X2FwcGVuZF8wKCk6Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RfbGlzdC5h
cHBlbmQoMCkKLQotICAgICAgICAgICAgICAgIGRlZiBhc3NlcnRfb3JkZXJfb2ZfZXhlY3V0aW9u
KCk6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KCdleHBlY3RlZCBvcmRlcicsIGV4cGVjdGVk
X2xpc3QpCi0gICAgICAgICAgICAgICAgICAgIHByaW50KCdidXQgZ290ICAgICAgICcsIHRlc3Rf
bGlzdCkKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHRlc3RfbGlzdCA9PSBleHBlY3RlZF9s
aXN0Ci0KLSAgICAgICAgICAgICAgICB5aWVsZCBsaXN0X2FwcGVuZF8wCi0gICAgICAgICAgICAg
ICAgeWllbGQgbGlzdF9hcHBlbmRfMQotICAgICAgICAgICAgICAgIHlpZWxkIGxpc3RfYXBwZW5k
XzIKLSAgICAgICAgICAgICAgICB5aWVsZCBhc3NlcnRfb3JkZXJfb2ZfZXhlY3V0aW9uCi0gICAg
ICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihv
KQotICAgICAgICBwYXNzZWQsIHNraXBwZWQsIGZhaWxlZCA9IHJlcHJlYy5jb3VudG91dGNvbWVz
KCkKLSAgICAgICAgYXNzZXJ0IHBhc3NlZCA9PSA0Ci0gICAgICAgIGFzc2VydCBub3Qgc2tpcHBl
ZCBhbmQgbm90IGZhaWxlZAotCi0gICAgZGVmIHRlc3Rfc2V0dXBzdGF0ZV9pc19wcmVzZXJ2ZWRf
MTM0KHNlbGYsIHRlc3RkaXIpOgotICAgICAgICAjIHlpZWxkLWJhc2VkIHRlc3RzIGFyZSBtZXNz
eSB3cnQgdG8gc2V0dXBzdGF0ZSBiZWNhdXNlCi0gICAgICAgICMgZHVyaW5nIGNvbGxlY3Rpb24g
dGhleSBhbHJlYWR5IGludm9rZSBzZXR1cCBmdW5jdGlvbnMKLSAgICAgICAgIyBhbmQgdGhlbiBh
Z2FpbiB3aGVuIHRoZXkgYXJlIHJ1bi4gIEZvciBub3csIHdlIHdhbnQgdG8gbWFrZSBzdXJlCi0g
ICAgICAgICMgdGhhdCB0aGUgb2xkIDEuMy40IGJlaGF2aW91ciBpcyBwcmVzZXJ2ZWQgc3VjaCB0
aGF0IGFsbAotICAgICAgICAjIHlpZWxkZWQgZnVuY3Rpb25zIGFsbCBzaGFyZSB0aGUgc2FtZSAi
c2VsZiIgaW5zdGFuY2UgdGhhdAotICAgICAgICAjIGhhcyBiZWVuIHVzZWQgZHVyaW5nIGNvbGxl
Y3Rpb24uCi0gICAgICAgIG8gPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIK
LSAgICAgICAgICAgIHNldHVwbGlzdCA9IFtdCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mo
b2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYsIGZ1bmMpOgot
ICAgICAgICAgICAgICAgICAgICAjcHJpbnQgInNldHVwX21ldGhvZCIsIHNlbGYsIGZ1bmMKLSAg
ICAgICAgICAgICAgICAgICAgc2V0dXBsaXN0LmFwcGVuZChzZWxmKQotICAgICAgICAgICAgICAg
ICAgICBzZWxmLmluaXQgPSA0MgotCi0gICAgICAgICAgICAgICAgZGVmIHRlYXJkb3duX21ldGhv
ZChzZWxmLCBmdW5jKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5pbml0ID0gTm9uZQotCi0g
ICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzEoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAg
IHBhc3MKLQotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyKHNlbGYpOgotICAgICAgICAg
ICAgICAgICAgICB5aWVsZCBzZWxmLmZ1bmMyCi0gICAgICAgICAgICAgICAgICAgIHlpZWxkIHNl
bGYuZnVuYzIKLQotICAgICAgICAgICAgICAgIGRlZiBmdW5jMihzZWxmKToKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IHNlbGYuaW5pdAotCi0gICAgICAgICAgICBkZWYgdGVzdF9zZXR1cGxp
c3QoKToKLSAgICAgICAgICAgICAgICAjIG9uY2UgZm9yIHRlc3RfZnVuYzIgZHVyaW5nIGNvbGxl
Y3Rpb24KLSAgICAgICAgICAgICAgICAjIG9uY2UgZm9yIHRlc3RfZnVuYzEgZHVyaW5nIHRlc3Qg
cnVuCi0gICAgICAgICAgICAgICAgIyBvbmNlIGZvciB0ZXN0X2Z1bmMyIGR1cmluZyB0ZXN0IHJ1
bgotICAgICAgICAgICAgICAgICNwcmludCBzZXR1cGxpc3QKLSAgICAgICAgICAgICAgICBhc3Nl
cnQgbGVuKHNldHVwbGlzdCkgPT0gMywgbGVuKHNldHVwbGlzdCkKLSAgICAgICAgICAgICAgICBh
c3NlcnQgc2V0dXBsaXN0WzBdID09IHNldHVwbGlzdFsyXSwgc2V0dXBsaXN0Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0IHNldHVwbGlzdFsxXSAhPSBzZXR1cGxpc3RbMl0sIHNldHVwbGlzdAotICAg
ICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
bywgIi12IikKLSAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMuY291bnRv
dXRjb21lcygpCi0gICAgICAgIGFzc2VydCBwYXNzZWQgPT0gNAotICAgICAgICBhc3NlcnQgbm90
IHNraXBwZWQgYW5kIG5vdCBmYWlsZWQKLQotCiBjbGFzcyBUZXN0RnVuY3Rpb24ob2JqZWN0KToK
LQogICAgIGRlZiB0ZXN0X2dldG1vZHVsZWNvbGxlY3RvcihzZWxmLCB0ZXN0ZGlyKToKICAgICAg
ICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKICAgICAg
ICAgbW9kY29sID0gaXRlbS5nZXRwYXJlbnQocHl0ZXN0Lk1vZHVsZSkKICAgICAgICAgYXNzZXJ0
IGlzaW5zdGFuY2UobW9kY29sLCBweXRlc3QuTW9kdWxlKQogICAgICAgICBhc3NlcnQgaGFzYXR0
cihtb2Rjb2wub2JqLCAidGVzdF9mdW5jIikKIAorICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJu
aW5ncygiZGVmYXVsdCIpCiAgICAgZGVmIHRlc3RfZnVuY3Rpb25fYXNfb2JqZWN0X2luc3RhbmNl
X2lnbm9yZWQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAg
ICAgICAgICAgICIiIgpAQCAtNDc1LDI5ICsyNzMsNDMgQEAgY2xhc3MgVGVzdEZ1bmN0aW9uKG9i
amVjdCk6CiAgICAgICAgICAgICB0ZXN0X2EgPSBBKCkKICAgICAgICAgIiIiCiAgICAgICAgICkK
LSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUoKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAg
ICAgICAgICAiY29sbGVjdGVkIDAgaXRlbXMiLAorICAgICAgICAgICAgICAgICIqdGVzdF9mdW5j
dGlvbl9hc19vYmplY3RfaW5zdGFuY2VfaWdub3JlZC5weToyOiAiCisgICAgICAgICAgICAgICAg
IipjYW5ub3QgY29sbGVjdCAndGVzdF9hJyBiZWNhdXNlIGl0IGlzIG5vdCBhIGZ1bmN0aW9uLiIs
CisgICAgICAgICAgICBdCisgICAgICAgICkKIAotICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2VxdWFs
aXR5KHNlbGYsIHRlc3RkaXIsIHRtcGRpcik6CisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBt
YWtlX2Z1bmN0aW9uKHRlc3RkaXIsICoqa3dhcmdzKToKICAgICAgICAgZnJvbSBfcHl0ZXN0LmZp
eHR1cmVzIGltcG9ydCBGaXh0dXJlTWFuYWdlcgogCiAgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIu
cGFyc2Vjb25maWd1cmUoKQogICAgICAgICBzZXNzaW9uID0gdGVzdGRpci5TZXNzaW9uKGNvbmZp
ZykKICAgICAgICAgc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIgPSBGaXh0dXJlTWFuYWdlcihzZXNz
aW9uKQogCisgICAgICAgIHJldHVybiBweXRlc3QuRnVuY3Rpb24oY29uZmlnPWNvbmZpZywgcGFy
ZW50PXNlc3Npb24sICoqa3dhcmdzKQorCisgICAgZGVmIHRlc3RfZnVuY3Rpb25fZXF1YWxpdHko
c2VsZiwgdGVzdGRpciwgdG1wZGlyKToKICAgICAgICAgZGVmIGZ1bmMxKCk6CiAgICAgICAgICAg
ICBwYXNzCiAKICAgICAgICAgZGVmIGZ1bmMyKCk6CiAgICAgICAgICAgICBwYXNzCiAKLSAgICAg
ICAgZjEgPSBweXRlc3QuRnVuY3Rpb24oCi0gICAgICAgICAgICBuYW1lPSJuYW1lIiwgcGFyZW50
PXNlc3Npb24sIGNvbmZpZz1jb25maWcsIGFyZ3M9KDEsKSwgY2FsbG9iaj1mdW5jMQotICAgICAg
ICApCisgICAgICAgIGYxID0gc2VsZi5tYWtlX2Z1bmN0aW9uKHRlc3RkaXIsIG5hbWU9Im5hbWUi
LCBhcmdzPSgxLCksIGNhbGxvYmo9ZnVuYzEpCiAgICAgICAgIGFzc2VydCBmMSA9PSBmMQotICAg
ICAgICBmMiA9IHB5dGVzdC5GdW5jdGlvbihuYW1lPSJuYW1lIiwgY29uZmlnPWNvbmZpZywgY2Fs
bG9iaj1mdW5jMiwgcGFyZW50PXNlc3Npb24pCisgICAgICAgIGYyID0gc2VsZi5tYWtlX2Z1bmN0
aW9uKHRlc3RkaXIsIG5hbWU9Im5hbWUiLCBjYWxsb2JqPWZ1bmMyKQogICAgICAgICBhc3NlcnQg
ZjEgIT0gZjIKIAorICAgIGRlZiB0ZXN0X3JlcHJfcHJvZHVjZXNfYWN0dWFsX3Rlc3RfaWQoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIGYgPSBzZWxmLm1ha2VfZnVuY3Rpb24oCisgICAgICAgICAg
ICB0ZXN0ZGlyLCBuYW1lPXIidGVzdFtceGU1XSIsIGNhbGxvYmo9c2VsZi50ZXN0X3JlcHJfcHJv
ZHVjZXNfYWN0dWFsX3Rlc3RfaWQKKyAgICAgICAgKQorICAgICAgICBhc3NlcnQgcmVwcihmKSA9
PSByIjxGdW5jdGlvbiB0ZXN0W1x4ZTVdPiIKKwogICAgIGRlZiB0ZXN0X2lzc3VlMTk3X3BhcmFt
ZXRyaXplX2VtcHR5c2V0KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCiAgICAgICAgICAgICAiIiIKQEAgLTYzNCw3ICs0NDYsMzcgQEAgY2xhc3MgVGVzdEZ1bmN0
aW9uKG9iamVjdCk6CiAgICAgICAgIHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCiAgICAgICAg
IHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQogCi0gICAgQGlnbm9yZV9wYXJhbWV0cml6ZWRf
bWFya3MKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9vdmVycmlkZXNfaW5kaXJlY3RfZGVwZW5k
ZW5jeV9maXh0dXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IHBhcmFtZXRyaXph
dGlvbiB3aGVuIHBhcmFtZXRlciBvdmVycmlkZXMgYSBmaXh0dXJlIHRoYXQgYSB0ZXN0IGluZGly
ZWN0bHkgZGVwZW5kcyBvbiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgZml4M19p
bnN0YW50aWF0ZWQgPSBGYWxzZQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAg
ICAgICAgIGRlZiBmaXgxKGZpeDIpOgorICAgICAgICAgICAgICAgcmV0dXJuIGZpeDIgKyAnMScK
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZml4MihmaXgz
KToKKyAgICAgICAgICAgICAgIHJldHVybiBmaXgzICsgJzInCisKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZpeDMoKToKKyAgICAgICAgICAgICAgIGdsb2Jh
bCBmaXgzX2luc3RhbnRpYXRlZAorICAgICAgICAgICAgICAgZml4M19pbnN0YW50aWF0ZWQgPSBU
cnVlCisgICAgICAgICAgICAgICByZXR1cm4gJzMnCisKKyAgICAgICAgICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgnZml4MicsIFsnMiddKQorICAgICAgICAgICAgZGVmIHRlc3RfaXQoZml4
MSk6CisgICAgICAgICAgICAgICBhc3NlcnQgZml4MSA9PSAnMjEnCisgICAgICAgICAgICAgICBh
c3NlcnQgbm90IGZpeDNfaW5zdGFudGlhdGVkCisgICAgICAgICIiIgorICAgICAgICApCisgICAg
ICAgIHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlYy5hc3NlcnRvdXRjb21l
KHBhc3NlZD0xKQorCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfd2l0aF9tYXJrKHNlbGYsIHRl
c3RkaXIpOgogICAgICAgICBpdGVtcyA9IHRlc3RkaXIuZ2V0aXRlbXMoCiAgICAgICAgICAgICAi
IiIKQEAgLTY0Miw3ICs0ODQsNyBAQCBjbGFzcyBUZXN0RnVuY3Rpb24ob2JqZWN0KToKICAgICAg
ICAgICAgIEBweXRlc3QubWFyay5mb28KICAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgnYXJnJywgWwogICAgICAgICAgICAgICAgIDEsCi0gICAgICAgICAgICAgICAgcHl0ZXN0
Lm1hcmsuYmFyKHB5dGVzdC5tYXJrLmJheigyKSkKKyAgICAgICAgICAgICAgICBweXRlc3QucGFy
YW0oMiwgbWFya3M9W3B5dGVzdC5tYXJrLmJheiwgcHl0ZXN0Lm1hcmsuYmFyXSkKICAgICAgICAg
ICAgIF0pCiAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihhcmcpOgogICAgICAgICAgICAg
ICAgIHBhc3MKQEAgLTY3MywxMiArNTE1LDEwIEBAIGNsYXNzIFRlc3RGdW5jdGlvbihvYmplY3Qp
OgogICAgICAgICBjb25maWcgPSBpdGVtLmNvbmZpZwogCiAgICAgICAgIGNsYXNzIE15UGx1Z2lu
MShvYmplY3QpOgotCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHNlbGYsIHB5
ZnVuY2l0ZW0pOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKIAogICAgICAgICBj
bGFzcyBNeVBsdWdpbjIob2JqZWN0KToKLQogICAgICAgICAgICAgZGVmIHB5dGVzdF9weWZ1bmNf
Y2FsbChzZWxmLCBweWZ1bmNpdGVtKToKICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCkBA
IC03MjIsNyArNTYyLDYgQEAgY2xhc3MgVGVzdEZ1bmN0aW9uKG9iamVjdCk6CiAgICAgICAgIGFz
c2VydCBjb2xpdGVtc1syXS5uYW1lID09ICJ0ZXN0MlthLWNdIgogICAgICAgICBhc3NlcnQgY29s
aXRlbXNbM10ubmFtZSA9PSAidGVzdDJbYi1jXSIKIAotICAgIEBpZ25vcmVfcGFyYW1ldHJpemVk
X21hcmtzCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfc2tpcGlmKHNlbGYsIHRlc3RkaXIpOgog
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTczMCwxNSAr
NTY5LDE0IEBAIGNsYXNzIFRlc3RGdW5jdGlvbihvYmplY3QpOgogCiAgICAgICAgICAgICBtID0g
cHl0ZXN0Lm1hcmsuc2tpcGlmKCdUcnVlJykKIAotICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCd4JywgWzAsIDEsIG0oMildKQorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCd4JywgWzAsIDEsIHB5dGVzdC5wYXJhbSgyLCBtYXJrcz1tKV0pCiAgICAgICAg
ICAgICBkZWYgdGVzdF9za2lwX2lmKHgpOgogICAgICAgICAgICAgICAgIGFzc2VydCB4IDwgMgog
ICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKiAyIHBhc3NlZCwgMSBz
a2lwcGVkIGluICoiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDIg
cGFzc2VkLCAxIHNraXBwZWQgaW4gKiJdKQogCi0gICAgQGlnbm9yZV9wYXJhbWV0cml6ZWRfbWFy
a3MKICAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9za2lwKHNlbGYsIHRlc3RkaXIpOgogICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTc0NiwxNSArNTg0LDE0
IEBAIGNsYXNzIFRlc3RGdW5jdGlvbihvYmplY3QpOgogCiAgICAgICAgICAgICBtID0gcHl0ZXN0
Lm1hcmsuc2tpcCgnJykKIAotICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4
JywgWzAsIDEsIG0oMildKQorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4
JywgWzAsIDEsIHB5dGVzdC5wYXJhbSgyLCBtYXJrcz1tKV0pCiAgICAgICAgICAgICBkZWYgdGVz
dF9za2lwKHgpOgogICAgICAgICAgICAgICAgIGFzc2VydCB4IDwgMgogICAgICAgICAiIiIKICAg
ICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKiAyIHBhc3NlZCwgMSBza2lwcGVkIGluICoiKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDIgcGFzc2VkLCAxIHNraXBw
ZWQgaW4gKiJdKQogCi0gICAgQGlnbm9yZV9wYXJhbWV0cml6ZWRfbWFya3MKICAgICBkZWYgdGVz
dF9wYXJhbWV0cml6ZV9za2lwaWZfbm9fc2tpcChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC03NjgsOSArNjA1LDggQEAgY2xh
c3MgVGVzdEZ1bmN0aW9uKG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKCIqIDEgZmFpbGVkLCAyIHBhc3NlZCBpbiAqIikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAxIGZhaWxlZCwgMiBwYXNzZWQgaW4gKiJdKQogCi0gICAg
QGlnbm9yZV9wYXJhbWV0cml6ZWRfbWFya3MKICAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV94ZmFp
bChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAg
ICAgIiIiCkBAIC03NzgsMTUgKzYxNCwxNCBAQCBjbGFzcyBUZXN0RnVuY3Rpb24ob2JqZWN0KToK
IAogICAgICAgICAgICAgbSA9IHB5dGVzdC5tYXJrLnhmYWlsKCdUcnVlJykKIAotICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4JywgWzAsIDEsIG0oMildKQorICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4JywgWzAsIDEsIHB5dGVzdC5wYXJhbSgyLCBt
YXJrcz1tKV0pCiAgICAgICAgICAgICBkZWYgdGVzdF94ZmFpbCh4KToKICAgICAgICAgICAgICAg
ICBhc3NlcnQgeCA8IDIKICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
IiogMiBwYXNzZWQsIDEgeGZhaWxlZCBpbiAqIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsiKiAyIHBhc3NlZCwgMSB4ZmFpbGVkIGluICoiXSkKIAotICAgIEBpZ25vcmVf
cGFyYW1ldHJpemVkX21hcmtzCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfcGFzc2VkKHNlbGYs
IHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIK
QEAgLTc5NCwxNSArNjI5LDE0IEBAIGNsYXNzIFRlc3RGdW5jdGlvbihvYmplY3QpOgogCiAgICAg
ICAgICAgICBtID0gcHl0ZXN0Lm1hcmsueGZhaWwoJ1RydWUnKQogCi0gICAgICAgICAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3gnLCBbMCwgMSwgbSgyKV0pCisgICAgICAgICAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3gnLCBbMCwgMSwgcHl0ZXN0LnBhcmFtKDIsIG1hcmtzPW0p
XSkKICAgICAgICAgICAgIGRlZiB0ZXN0X3hmYWlsKHgpOgogICAgICAgICAgICAgICAgIHBhc3MK
ICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiogMiBwYXNzZWQsIDEg
eHBhc3NlZCBpbiAqIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAy
IHBhc3NlZCwgMSB4cGFzc2VkIGluICoiXSkKIAotICAgIEBpZ25vcmVfcGFyYW1ldHJpemVkX21h
cmtzCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfeGZhaWxfcGFzc2VkKHNlbGYsIHRlc3RkaXIp
OgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTgxNiw3
ICs2NTAsNyBAQCBjbGFzcyBUZXN0RnVuY3Rpb24ob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAg
ICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiogMyBwYXNzZWQgaW4gKiIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMyBwYXNzZWQgaW4gKiJdKQogCiAgICAgZGVmIHRl
c3RfZnVuY3Rpb25fb3JpZ2luYWxfbmFtZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgaXRlbXMg
PSB0ZXN0ZGlyLmdldGl0ZW1zKApAQCAtODMxLDcgKzY2NSw2IEBAIGNsYXNzIFRlc3RGdW5jdGlv
bihvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RTb3J0aW5nKG9iamVjdCk6Ci0KICAgICBkZWYgdGVz
dF9jaGVja19lcXVhbGl0eShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgbW9kY29sID0gdGVzdGRp
ci5nZXRtb2R1bGVjb2woCiAgICAgICAgICAgICAiIiIKQEAgLTg4Niw3ICs3MTksNiBAQCBjbGFz
cyBUZXN0U29ydGluZyhvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RDb25mdGVzdEN1c3RvbWl6YXRp
b24ob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X3B5dGVzdF9weWNvbGxlY3RfbW9kdWxlKHNlbGYs
IHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgICAgICIi
IgpAQCAtOTA2LDIzICs3MzgsMjMgQEAgY2xhc3MgVGVzdENvbmZ0ZXN0Q3VzdG9taXphdGlvbihv
YmplY3QpOgogICAgIGRlZiB0ZXN0X2N1c3RvbWl6ZWRfcHltYWtlbW9kdWxlX2lzc3VlMjA1X3N1
YmRpcihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgYiA9IHRlc3RkaXIubWtkaXIoImEiKS5ta2Rp
cigiYiIpCiAgICAgICAgIGIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgICAg
IF9weXRlc3QuX2NvZGUuU291cmNlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAg
ICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICAgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgICAgICAgICAg
ICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1bGUoKToKKyAgICAgICAgICAgICAgICAg
ICAgb3V0Y29tZSA9IHlpZWxkCisgICAgICAgICAgICAgICAgICAgIG1vZCA9IG91dGNvbWUuZ2V0
X3Jlc3VsdCgpCisgICAgICAgICAgICAgICAgICAgIG1vZC5vYmouaGVsbG8gPSAid29ybGQiCiAg
ICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAg
ICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgICAgICAgICBkZWYgcHl0
ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlKCk6Ci0gICAgICAgICAgICAgICAgb3V0Y29tZSA9IHlp
ZWxkCi0gICAgICAgICAgICAgICAgbW9kID0gb3V0Y29tZS5nZXRfcmVzdWx0KCkKLSAgICAgICAg
ICAgICAgICBtb2Qub2JqLmhlbGxvID0gIndvcmxkIgotICAgICAgICAiIiIKICAgICAgICAgICAg
ICkKICAgICAgICAgKQogICAgICAgICBiLmpvaW4oInRlc3RfbW9kdWxlLnB5Iikud3JpdGUoCi0g
ICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRl
ZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVs
bG8oKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGhlbGxvID09ICJ3b3JsZCIKICAgICAg
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0IGhlbGxvID09ICJ3b3JsZCIKLSAgICAgICAgIiIiCiAgICAgICAgICAgICAp
CiAgICAgICAgICkKICAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKQEAgLTkz
MSwzMSArNzYzLDMxIEBAIGNsYXNzIFRlc3RDb25mdGVzdEN1c3RvbWl6YXRpb24ob2JqZWN0KToK
ICAgICBkZWYgdGVzdF9jdXN0b21pemVkX3B5bWFrZWl0ZW0oc2VsZiwgdGVzdGRpcik6CiAgICAg
ICAgIGIgPSB0ZXN0ZGlyLm1rZGlyKCJhIikubWtkaXIoImIiKQogICAgICAgICBiLmpvaW4oImNv
bmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAg
ICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIEBweXRlc3QuaG9va2ltcGwo
aG9va3dyYXBwZXI9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9t
YWtlaXRlbSgpOgorICAgICAgICAgICAgICAgICAgICBvdXRjb21lID0geWllbGQKKyAgICAgICAg
ICAgICAgICAgICAgaWYgb3V0Y29tZS5leGNpbmZvIGlzIE5vbmU6CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQgPSBvdXRjb21lLmdldF9yZXN1bHQoKQorICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBmdW5jIGlu
IHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5fc29tZTEyMyA9
ICJ3b3JsZCIKICAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
LSAgICAgICAgICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICAgICAg
ICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKCk6Ci0gICAgICAgICAgICAgICAgb3V0
Y29tZSA9IHlpZWxkCi0gICAgICAgICAgICAgICAgaWYgb3V0Y29tZS5leGNpbmZvIGlzIE5vbmU6
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCi0gICAg
ICAgICAgICAgICAgICAgIGlmIHJlc3VsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBm
dW5jIGluIHJlc3VsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jLl9zb21lMTIz
ID0gIndvcmxkIgotICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAg
ICBiLmpvaW4oInRlc3RfbW9kdWxlLnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9j
b2RlLlNvdXJjZSgKLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisg
ICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoKQotICAgICAgICAgICAgZGVmIG9iaihyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1
cm4gcmVxdWVzdC5ub2RlLl9zb21lMTIzCi0gICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhvYmop
OgotICAgICAgICAgICAgICAgIGFzc2VydCBvYmogPT0gIndvcmxkIgotICAgICAgICAiIiIKKyAg
ICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgICAgIGRlZiBvYmoo
cmVxdWVzdCk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Lm5vZGUuX3NvbWUx
MjMKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhvYmopOgorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgb2JqID09ICJ3b3JsZCIKKyAgICAgICAgICAgICAgICAiIiIKICAgICAgICAg
ICAgICkKICAgICAgICAgKQogICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQpA
QCAtOTgwLDcgKzgxMiw3IEBAIGNsYXNzIFRlc3RDb25mdGVzdEN1c3RvbWl6YXRpb24ob2JqZWN0
KToKICAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woImRlZiBfaGVsbG8oKTog
cGFzcyIpCiAgICAgICAgIHZhbHVlcyA9IFtdCiAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIo
Ci0gICAgICAgICAgICBweXRlc3QuTW9kdWxlLCAibWFrZWl0ZW0iLCBsYW1iZGEgc2VsZiwgbmFt
ZSwgb2JqOiB2YWx1ZXMuYXBwZW5kKG5hbWUpCisgICAgICAgICAgICBweXRlc3QuTW9kdWxlLCAi
X21ha2VpdGVtIiwgbGFtYmRhIHNlbGYsIG5hbWUsIG9iajogdmFsdWVzLmFwcGVuZChuYW1lKQog
ICAgICAgICApCiAgICAgICAgIHZhbHVlcyA9IG1vZGNvbC5jb2xsZWN0KCkKICAgICAgICAgYXNz
ZXJ0ICJfaGVsbG8iIG5vdCBpbiB2YWx1ZXMKQEAgLTEwMTAsNDIgKzg0Miw0MiBAQCBjbGFzcyBU
ZXN0Q29uZnRlc3RDdXN0b21pemF0aW9uKG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAgdGVz
dGRpci5tYWtlZmlsZSgKICAgICAgICAgICAgICIubmFyZiIsCi0gICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgICIiIlwKICAgICAgICAgICAgIGRlZiB0ZXN0X3NvbWV0aGluZygpOgogICAgICAg
ICAgICAgICAgIGFzc2VydCAxICsgMSA9PSAyIiIiLAogICAgICAgICApCiAgICAgICAgICMgVXNl
IHJ1bnB5dGVzdF9zdWJwcm9jZXNzLCBzaW5jZSB3ZSdyZSBmdXR6aW5nIHdpdGggc3lzLm1ldGFf
cGF0aC4KICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpCi0g
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKjEgcGFzc2VkKiIpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKIAogCiBkZWYgdGVz
dF9zZXR1cF9vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIodGVzdGRpcik6CiAgICAgc3ViMSA9IHRl
c3RkaXIubWtweWRpcigic3ViMSIpCiAgICAgc3ViMiA9IHRlc3RkaXIubWtweWRpcigic3ViMiIp
CiAgICAgc3ViMS5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICBfcHl0ZXN0Ll9j
b2RlLlNvdXJjZSgKKyAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgIiIiXAor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0
X3NldHVwKGl0ZW0pOgorICAgICAgICAgICAgICAgIGFzc2VydCBpdGVtLmZzcGF0aC5wdXJlYmFz
ZW5hbWUgPT0gInRlc3RfaW5fc3ViMSIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9j
YWxsKGl0ZW0pOgorICAgICAgICAgICAgICAgIGFzc2VydCBpdGVtLmZzcGF0aC5wdXJlYmFzZW5h
bWUgPT0gInRlc3RfaW5fc3ViMSIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF90ZWFy
ZG93bihpdGVtKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJhc2Vu
YW1lID09ICJ0ZXN0X2luX3N1YjEiCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHB5
dGVzdAotICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgICAgICAg
ICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0X2luX3N1YjEiCi0gICAg
ICAgIGRlZiBweXRlc3RfcnVudGVzdF9jYWxsKGl0ZW0pOgotICAgICAgICAgICAgYXNzZXJ0IGl0
ZW0uZnNwYXRoLnB1cmViYXNlbmFtZSA9PSAidGVzdF9pbl9zdWIxIgotICAgICAgICBkZWYgcHl0
ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRlbSk6Ci0gICAgICAgICAgICBhc3NlcnQgaXRlbS5mc3Bh
dGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0X2luX3N1YjEiCi0gICAgIiIiCiAgICAgICAgICkKICAg
ICApCiAgICAgc3ViMi5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICBfcHl0ZXN0
Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgIiIi
XAorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHB5dGVzdF9ydW50
ZXN0X3NldHVwKGl0ZW0pOgorICAgICAgICAgICAgICAgIGFzc2VydCBpdGVtLmZzcGF0aC5wdXJl
YmFzZW5hbWUgPT0gInRlc3RfaW5fc3ViMiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcnVudGVz
dF9jYWxsKGl0ZW0pOgorICAgICAgICAgICAgICAgIGFzc2VydCBpdGVtLmZzcGF0aC5wdXJlYmFz
ZW5hbWUgPT0gInRlc3RfaW5fc3ViMiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF90
ZWFyZG93bihpdGVtKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJh
c2VuYW1lID09ICJ0ZXN0X2luX3N1YjIiCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0
IHB5dGVzdAotICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgICAg
ICAgICBhc3NlcnQgaXRlbS5mc3BhdGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0X2luX3N1YjIiCi0g
ICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9jYWxsKGl0ZW0pOgotICAgICAgICAgICAgYXNzZXJ0
IGl0ZW0uZnNwYXRoLnB1cmViYXNlbmFtZSA9PSAidGVzdF9pbl9zdWIyIgotICAgICAgICBkZWYg
cHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRlbSk6Ci0gICAgICAgICAgICBhc3NlcnQgaXRlbS5m
c3BhdGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0X2luX3N1YjIiCi0gICAgIiIiCiAgICAgICAgICkK
ICAgICApCiAgICAgc3ViMS5qb2luKCJ0ZXN0X2luX3N1YjEucHkiKS53cml0ZSgiZGVmIHRlc3Rf
MSgpOiBwYXNzIikKQEAgLTEwNTUsMTYgKzg4NywxNiBAQCBkZWYgdGVzdF9zZXR1cF9vbmx5X2F2
YWlsYWJsZV9pbl9zdWJkaXIodGVzdGRpcik6CiAKIAogZGVmIHRlc3RfbW9kdWxlY29sX3JvdW5k
dHJpcCh0ZXN0ZGlyKToKLSAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgicGFzcyIs
IHdpdGhpbml0PVRydWUpCisgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woInBhc3Mi
LCB3aXRoaW5pdD1GYWxzZSkKICAgICB0cmFpbCA9IG1vZGNvbC5ub2RlaWQKICAgICBuZXdjb2wg
PSBtb2Rjb2wuc2Vzc2lvbi5wZXJmb3JtX2NvbGxlY3QoW3RyYWlsXSwgZ2VuaXRlbXM9MClbMF0K
ICAgICBhc3NlcnQgbW9kY29sLm5hbWUgPT0gbmV3Y29sLm5hbWUKIAogCiBjbGFzcyBUZXN0VHJh
Y2ViYWNrQ3V0dGluZyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3Rfc2tpcF9zaW1wbGUoc2VsZik6
Ci0gICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKHB5dGVzdC5za2lwLkV4Y2VwdGlvbiwg
J3B5dGVzdC5za2lwKCJ4eHgiKScpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3Qu
c2tpcC5FeGNlcHRpb24pIGFzIGV4Y2luZm86CisgICAgICAgICAgICBweXRlc3Quc2tpcCgieHh4
IikKICAgICAgICAgYXNzZXJ0IGV4Y2luZm8udHJhY2ViYWNrWy0xXS5mcmFtZS5jb2RlLm5hbWUg
PT0gInNraXAiCiAgICAgICAgIGFzc2VydCBleGNpbmZvLnRyYWNlYmFja1stMV0uaXNoaWRkZW4o
KQogCkBAIC0xMTQzLDcgKzk3NSw3IEBAIGNsYXNzIFRlc3RUcmFjZWJhY2tDdXR0aW5nKG9iamVj
dCk6CiAKICAgICBkZWYgdGVzdF9maWx0ZXJfdHJhY2ViYWNrX2dlbmVyYXRlZF9jb2RlKHNlbGYp
OgogICAgICAgICAiIiJ0ZXN0IHRoYXQgZmlsdGVyX3RyYWNlYmFjaygpIHdvcmtzIHdpdGggdGhl
IGZhY3QgdGhhdAotICAgICAgICBweS5jb2RlLkNvZGUucGF0aCBhdHRyaWJ1dGUgbWlnaHQgcmV0
dXJuIGFuIHN0ciBvYmplY3QuCisgICAgICAgIF9weXRlc3QuX2NvZGUuY29kZS5Db2RlLnBhdGgg
YXR0cmlidXRlIG1pZ2h0IHJldHVybiBhbiBzdHIgb2JqZWN0LgogICAgICAgICBJbiB0aGlzIGNh
c2UsIG9uZSBvZiB0aGUgZW50cmllcyBvbiB0aGUgdHJhY2ViYWNrIHdhcyBwcm9kdWNlZCBieQog
ICAgICAgICBkeW5hbWljYWxseSBnZW5lcmF0ZWQgY29kZS4KICAgICAgICAgU2VlOiBodHRwczov
L2JpdGJ1Y2tldC5vcmcvcHl0ZXN0LWRldi9weS9pc3N1ZXMvNzEKQEAgLTExNjQsNyArOTk2LDcg
QEAgY2xhc3MgVGVzdFRyYWNlYmFja0N1dHRpbmcob2JqZWN0KToKIAogICAgIGRlZiB0ZXN0X2Zp
bHRlcl90cmFjZWJhY2tfcGF0aF9ub19sb25nZXJfdmFsaWQoc2VsZiwgdGVzdGRpcik6CiAgICAg
ICAgICIiInRlc3QgdGhhdCBmaWx0ZXJfdHJhY2ViYWNrKCkgd29ya3Mgd2l0aCB0aGUgZmFjdCB0
aGF0Ci0gICAgICAgIHB5LmNvZGUuQ29kZS5wYXRoIGF0dHJpYnV0ZSBtaWdodCByZXR1cm4gYW4g
c3RyIG9iamVjdC4KKyAgICAgICAgX3B5dGVzdC5fY29kZS5jb2RlLkNvZGUucGF0aCBhdHRyaWJ1
dGUgbWlnaHQgcmV0dXJuIGFuIHN0ciBvYmplY3QuCiAgICAgICAgIEluIHRoaXMgY2FzZSwgb25l
IG9mIHRoZSBmaWxlcyBpbiB0aGUgdHJhY2ViYWNrIG5vIGxvbmdlciBleGlzdHMuCiAgICAgICAg
IFRoaXMgZml4ZXMgIzExMzMuCiAgICAgICAgICIiIgpAQCAtMTE5MSw3ICsxMDIzLDYgQEAgY2xh
c3MgVGVzdFRyYWNlYmFja0N1dHRpbmcob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0UmVwb3J0SW5m
byhvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfaXRlbXJlcG9ydF9yZXBvcnRpbmZvKHNlbGYsIHRl
c3RkaXIsIGxpbmVjb21wKToKICAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCiAgICAgICAg
ICAgICAiIiIKQEAgLTEyMjksMzkgKzEwNjAsOSBAQCBjbGFzcyBUZXN0UmVwb3J0SW5mbyhvYmpl
Y3QpOgogICAgICAgICBhc3NlcnQgbGluZW5vID09IDEKICAgICAgICAgYXNzZXJ0IG1zZyA9PSAi
VGVzdENsYXNzIgogCi0gICAgZGVmIHRlc3RfZ2VuZXJhdG9yX3JlcG9ydGluZm8oc2VsZiwgdGVz
dGRpcik6Ci0gICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKAotICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICAjIGxpbmVubyAwCi0gICAgICAgICAgICBkZWYgdGVzdF9nZW4o
KToKLSAgICAgICAgICAgICAgICBkZWYgY2hlY2soeCk6Ci0gICAgICAgICAgICAgICAgICAgIGFz
c2VydCB4Ci0gICAgICAgICAgICAgICAgeWllbGQgY2hlY2ssIDMKLSAgICAgICAgIiIiCi0gICAg
ICAgICkKLSAgICAgICAgZ2VuY29sID0gdGVzdGRpci5jb2xsZWN0X2J5X25hbWUobW9kY29sLCAi
dGVzdF9nZW4iKQotICAgICAgICBmc3BhdGgsIGxpbmVubywgbW9kcGF0aCA9IGdlbmNvbC5yZXBv
cnRpbmZvKCkKLSAgICAgICAgYXNzZXJ0IGZzcGF0aCA9PSBtb2Rjb2wuZnNwYXRoCi0gICAgICAg
IGFzc2VydCBsaW5lbm8gPT0gMQotICAgICAgICBhc3NlcnQgbW9kcGF0aCA9PSAidGVzdF9nZW4i
Ci0KLSAgICAgICAgZ2VuaXRlbSA9IGdlbmNvbC5jb2xsZWN0KClbMF0KLSAgICAgICAgZnNwYXRo
LCBsaW5lbm8sIG1vZHBhdGggPSBnZW5pdGVtLnJlcG9ydGluZm8oKQotICAgICAgICBhc3NlcnQg
ZnNwYXRoID09IG1vZGNvbC5mc3BhdGgKLSAgICAgICAgYXNzZXJ0IGxpbmVubyA9PSAyCi0gICAg
ICAgIGFzc2VydCBtb2RwYXRoID09ICJ0ZXN0X2dlblswXSIKLSAgICAgICAgIiIiCi0gICAgICAg
ICAgICBkZWYgdGVzdF9mdW5jKCk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAg
ZGVmIHRlc3RfZ2VuZnVuYygpOgotICAgICAgICAgICAgICAgIGRlZiBjaGVjayh4KToKLSAgICAg
ICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgICAgIHlpZWxkIGNoZWNrLCAzCi0gICAg
ICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVz
dF9tZXRob2Qoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAiIiIKLQor
ICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygKKyAgICAgICAgImlnbm9yZTp1c2FnZSBv
ZiBHZW5lcmF0b3IuRnVuY3Rpb24gaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBweXRlc3QuRnVu
Y3Rpb24gaW5zdGVhZCIKKyAgICApCiAgICAgZGVmIHRlc3RfcmVwb3J0aW5mb193aXRoX25hc3R5
X2dldGF0dHIoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMjA0CiAgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0
bW9kdWxlY29sKApAQCAtMTMzMSw1NiArMTEzMiw2IEBAIGRlZiB0ZXN0X2N1c3RvbWl6ZWRfcHl0
aG9uX2Rpc2NvdmVyeV9mdW5jdGlvbnModGVzdGRpcik6CiAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQogCiAKLWRlZiB0ZXN0X2NvbGxlY3Rvcl9hdHRyaWJ1
dGVzKHRlc3RkaXIpOgotICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAiIiIKLSAg
ICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRl
bShjb2xsZWN0b3IpOgotICAgICAgICAgICAgYXNzZXJ0IGNvbGxlY3Rvci5GdW5jdGlvbiA9PSBw
eXRlc3QuRnVuY3Rpb24KLSAgICAgICAgICAgIGFzc2VydCBjb2xsZWN0b3IuQ2xhc3MgPT0gcHl0
ZXN0LkNsYXNzCi0gICAgICAgICAgICBhc3NlcnQgY29sbGVjdG9yLkluc3RhbmNlID09IHB5dGVz
dC5JbnN0YW5jZQotICAgICAgICAgICAgYXNzZXJ0IGNvbGxlY3Rvci5Nb2R1bGUgPT0gcHl0ZXN0
Lk1vZHVsZQotICAgICIiIgotICAgICkKLSAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAg
ICIiIgotICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKLSAgICAgICAgICAgIHBhc3MKLSAgICAi
IiIKLSAgICApCi0gICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKLQotCi1kZWYgdGVzdF9jdXN0b21p
emVfdGhyb3VnaF9hdHRyaWJ1dGVzKHRlc3RkaXIpOgotICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0
KAotICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICBjbGFzcyBNeUZ1
bmN0aW9uKHB5dGVzdC5GdW5jdGlvbik6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGNsYXNz
IE15SW5zdGFuY2UocHl0ZXN0Lkluc3RhbmNlKToKLSAgICAgICAgICAgIEZ1bmN0aW9uID0gTXlG
dW5jdGlvbgotICAgICAgICBjbGFzcyBNeUNsYXNzKHB5dGVzdC5DbGFzcyk6Ci0gICAgICAgICAg
ICBJbnN0YW5jZSA9IE15SW5zdGFuY2UKLQotICAgICAgICBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9t
YWtlaXRlbShjb2xsZWN0b3IsIG5hbWUsIG9iaik6Ci0gICAgICAgICAgICBpZiBuYW1lLnN0YXJ0
c3dpdGgoIk15VGVzdENsYXNzIik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE15Q2xhc3MobmFt
ZSwgcGFyZW50PWNvbGxlY3RvcikKLSAgICAiIiIKLSAgICApCi0gICAgdGVzdGRpci5tYWtlcHlm
aWxlKAotICAgICAgICAiIiIKLSAgICAgICAgIGNsYXNzIE15VGVzdENsYXNzKG9iamVjdCk6Ci0g
ICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmKToKLSAgICAgICAgICAgICAgICBwYXNzCi0g
ICAgIiIiCi0gICAgKQotICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qt
b25seSIpCi0gICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICBbIipNeUNs
YXNzKiIsICIqTXlJbnN0YW5jZSoiLCAiKk15RnVuY3Rpb24qdGVzdF9oZWxsbyoiXQotICAgICkK
LQotCiBkZWYgdGVzdF91bm9yZGVyYWJsZV90eXBlcyh0ZXN0ZGlyKToKICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCiAgICAgICAgICIiIgpAQCAtMTQ0Niw2ICsxMTk3LDcgQEAgZGVmIHRlc3RfY29s
bGVjdF9mdW5jdG9vbHNfcGFydGlhbCh0ZXN0ZGlyKToKICAgICByZXN1bHQuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9NiwgZmFpbGVkPTIpCiAKIAorQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJk
ZWZhdWx0IikKIGRlZiB0ZXN0X2RvbnRfY29sbGVjdF9ub25fZnVuY3Rpb25fY2FsbGFibGUodGVz
dGRpcik6CiAgICAgIiIiVGVzdCBmb3IgaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8zMzEKIApAQCAtMTQ2OCw3ICsxMjIwLDcgQEAgZGVmIHRlc3RfZG9u
dF9jb2xsZWN0X25vbl9mdW5jdGlvbl9jYWxsYWJsZSh0ZXN0ZGlyKToKICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAgIFsKICAgICAgICAgICAgICIqY29sbGVjdGVkIDEg
aXRlbSoiLAotICAgICAgICAgICAgIipjYW5ub3QgY29sbGVjdCAndGVzdF9hJyBiZWNhdXNlIGl0
IGlzIG5vdCBhIGZ1bmN0aW9uKiIsCisgICAgICAgICAgICAiKnRlc3RfZG9udF9jb2xsZWN0X25v
bl9mdW5jdGlvbl9jYWxsYWJsZS5weToyOiAqY2Fubm90IGNvbGxlY3QgJ3Rlc3RfYScgYmVjYXVz
ZSBpdCBpcyBub3QgYSBmdW5jdGlvbioiLAogICAgICAgICAgICAgIioxIHBhc3NlZCwgMSB3YXJu
aW5ncyBpbiAqIiwKICAgICAgICAgXQogICAgICkKQEAgLTE0OTcsNyArMTI0OSwxMCBAQCBkZWYg
dGVzdF9jbGFzc19pbmplY3Rpb25fZG9lc19ub3RfYnJlYWtfY29sbGVjdGlvbih0ZXN0ZGlyKToK
ICAgICAnJycKICAgICApCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgIGFz
c2VydCAiUnVudGltZUVycm9yOiBkaWN0aW9uYXJ5IGNoYW5nZWQgc2l6ZSBkdXJpbmcgaXRlcmF0
aW9uIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCAoCisgICAgICAgICJS
dW50aW1lRXJyb3I6IGRpY3Rpb25hcnkgY2hhbmdlZCBzaXplIGR1cmluZyBpdGVyYXRpb24iCisg
ICAgICAgIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgKQogICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKIAogCkBAIC0xNTA2LDcgKzEyNjEsNyBA
QCBkZWYgdGVzdF9zeW50YXhfZXJyb3Jfd2l0aF9ub25fYXNjaWlfY2hhcnModGVzdGRpcik6CiAg
ICAgIiIiCiAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICB1IiIiCi0gICAgIyAtKi0g
Y29kaW5nOiBVVEYtOCAtKi0KKyAgICAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogCiAgICAg4piD
CiAgICAgIiIiCkBAIC0xNTIzLDEyICsxMjc4LDEyIEBAIGRlZiB0ZXN0X3NraXBfZHVwbGljYXRl
c19ieV9kZWZhdWx0KHRlc3RkaXIpOgogICAgIGEgPSB0ZXN0ZGlyLm1rZGlyKCJhIikKICAgICBm
aCA9IGEuam9pbigidGVzdF9hLnB5IikKICAgICBmaC53cml0ZSgKLSAgICAgICAgX3B5dGVzdC5f
Y29kZS5Tb3VyY2UoCisgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICIiIlwK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X3JlYWwoKToK
KyAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHB5
dGVzdAotICAgICAgICBkZWYgdGVzdF9yZWFsKCk6Ci0gICAgICAgICAgICBwYXNzCi0gICAgIiIi
CiAgICAgICAgICkKICAgICApCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoYS5zdHJw
YXRoLCBhLnN0cnBhdGgpCkBAIC0xNTQzLDEzICsxMjk4LDEwMSBAQCBkZWYgdGVzdF9rZWVwX2R1
cGxpY2F0ZXModGVzdGRpcik6CiAgICAgYSA9IHRlc3RkaXIubWtkaXIoImEiKQogICAgIGZoID0g
YS5qb2luKCJ0ZXN0X2EucHkiKQogICAgIGZoLndyaXRlKAotICAgICAgICBfcHl0ZXN0Ll9jb2Rl
LlNvdXJjZSgKKyAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgIiIiXAorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRlc3RfcmVhbCgpOgorICAg
ICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICIiIgotICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgIGRlZiB0ZXN0X3JlYWwoKToKLSAgICAgICAgICAgIHBhc3MKLSAgICAiIiIKICAg
ICAgICAgKQogICAgICkKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1rZWVwLWR1
cGxpY2F0ZXMiLCBhLnN0cnBhdGgsIGEuc3RycGF0aCkKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqY29sbGVjdGVkIDIgaXRlbSoiXSkKKworCitkZWYgdGVzdF9wYWNrYWdlX2Nv
bGxlY3Rpb25faW5maW5pdGVfcmVjdXJzaW9uKHRlc3RkaXIpOgorICAgIHRlc3RkaXIuY29weV9l
eGFtcGxlKCJjb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uIikKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsi
KjEgcGFzc2VkKiJdKQorCisKK2RlZiB0ZXN0X3BhY2thZ2VfY29sbGVjdGlvbl9pbml0X2dpdmVu
X2FzX2FyZ3VtZW50KHRlc3RkaXIpOgorICAgICIiIlJlZ3Jlc3Npb24gdGVzdCBmb3IgIzM3NDki
IiIKKyAgICBwID0gdGVzdGRpci5jb3B5X2V4YW1wbGUoImNvbGxlY3QvcGFja2FnZV9pbml0X2dp
dmVuX2FzX2FyZyIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCAvICJwa2ciIC8g
Il9faW5pdF9fLnB5IikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNz
ZWQqIl0pCisKKworZGVmIHRlc3RfcGFja2FnZV93aXRoX21vZHVsZXModGVzdGRpcik6CisgICAg
IiIiCisgICAgLgorICAgIOKUlOKUgOKUgCByb290CisgICAgICAgIOKUnOKUgOKUgCBfX2luaXRf
Xy5weQorICAgICAgICDilJzilIDilIAgc3ViMQorICAgICAgICDilIIgICDilJzilIDilIAgX19p
bml0X18ucHkKKyAgICAgICAg4pSCICAg4pSU4pSA4pSAIHN1YjFfMQorICAgICAgICDilIIgICAg
ICAg4pSc4pSA4pSAIF9faW5pdF9fLnB5CisgICAgICAgIOKUgiAgICAgICDilJTilIDilIAgdGVz
dF9pbl9zdWIxLnB5CisgICAgICAgIOKUlOKUgOKUgCBzdWIyCisgICAgICAgICAgICDilJTilIDi
lIAgdGVzdAorICAgICAgICAgICAgICAgIOKUlOKUgOKUgCB0ZXN0X2luX3N1YjIucHkKKworICAg
ICIiIgorICAgIHJvb3QgPSB0ZXN0ZGlyLm1rcHlkaXIoInJvb3QiKQorICAgIHN1YjEgPSByb290
Lm1rZGlyKCJzdWIxIikKKyAgICBzdWIxLmVuc3VyZSgiX19pbml0X18ucHkiKQorICAgIHN1YjFf
dGVzdCA9IHN1YjEubWtkaXIoInN1YjFfMSIpCisgICAgc3ViMV90ZXN0LmVuc3VyZSgiX19pbml0
X18ucHkiKQorICAgIHN1YjIgPSByb290Lm1rZGlyKCJzdWIyIikKKyAgICBzdWIyX3Rlc3QgPSBz
dWIyLm1rZGlyKCJzdWIyIikKKworICAgIHN1YjFfdGVzdC5qb2luKCJ0ZXN0X2luX3N1YjEucHki
KS53cml0ZSgiZGVmIHRlc3RfMSgpOiBwYXNzIikKKyAgICBzdWIyX3Rlc3Quam9pbigidGVzdF9p
bl9zdWIyLnB5Iikud3JpdGUoImRlZiB0ZXN0XzIoKTogcGFzcyIpCisKKyAgICAjIEV4ZWN1dGUg
ZnJvbSAuCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IiwgIi1zIikKKyAgICBy
ZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0yKQorCisgICAgIyBFeGVjdXRlIGZyb20gLiB3
aXRoIG9uZSBhcmd1bWVudCAicm9vdCIKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LXYiLCAiLXMiLCAicm9vdCIpCisgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9MikK
KworICAgICMgQ2hkaXIgaW50byBwYWNrYWdlJ3Mgcm9vdCBhbmQgZXhlY3V0ZSB3aXRoIG5vIGFy
Z3MKKyAgICByb290LmNoZGlyKCkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYi
LCAiLXMiKQorICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTIpCisKKworZGVmIHRl
c3RfcGFja2FnZV9vcmRlcmluZyh0ZXN0ZGlyKToKKyAgICAiIiIKKyAgICAuCisgICAg4pSU4pSA
4pSAIHJvb3QKKyAgICAgICAg4pSc4pSA4pSAIFRlc3Rfcm9vdC5weQorICAgICAgICDilJzilIDi
lIAgX19pbml0X18ucHkKKyAgICAgICAg4pSc4pSA4pSAIHN1YjEKKyAgICAgICAg4pSCICAg4pSc
4pSA4pSAIFRlc3Rfc3ViMS5weQorICAgICAgICDilIIgICDilJTilIDilIAgX19pbml0X18ucHkK
KyAgICAgICAg4pSU4pSA4pSAIHN1YjIKKyAgICAgICAgICAgIOKUlOKUgOKUgCB0ZXN0CisgICAg
ICAgICAgICAgICAg4pSU4pSA4pSAIHRlc3Rfc3ViMi5weQorCisgICAgIiIiCisgICAgdGVzdGRp
ci5tYWtlaW5pKAorICAgICAgICAiIiIKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgcHl0aG9u
X2ZpbGVzPSoucHkKKyAgICAiIiIKKyAgICApCisgICAgcm9vdCA9IHRlc3RkaXIubWtweWRpcigi
cm9vdCIpCisgICAgc3ViMSA9IHJvb3QubWtkaXIoInN1YjEiKQorICAgIHN1YjEuZW5zdXJlKCJf
X2luaXRfXy5weSIpCisgICAgc3ViMiA9IHJvb3QubWtkaXIoInN1YjIiKQorICAgIHN1YjJfdGVz
dCA9IHN1YjIubWtkaXIoInN1YjIiKQorCisgICAgcm9vdC5qb2luKCJUZXN0X3Jvb3QucHkiKS53
cml0ZSgiZGVmIHRlc3RfMSgpOiBwYXNzIikKKyAgICBzdWIxLmpvaW4oIlRlc3Rfc3ViMS5weSIp
LndyaXRlKCJkZWYgdGVzdF8yKCk6IHBhc3MiKQorICAgIHN1YjJfdGVzdC5qb2luKCJ0ZXN0X3N1
YjIucHkiKS53cml0ZSgiZGVmIHRlc3RfMygpOiBwYXNzIikKKworICAgICMgRXhlY3V0ZSBmcm9t
IC4KKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCAiLXMiKQorICAgIHJlc3Vs
dC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3B5dGhvbi9maXh0dXJlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vZml4dHVy
ZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQyYmI2NjNiNmNkMGE2NzJjNTEz
YTc5ZGI2MzlkN2UwNTY4MjQ5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9maXh0dXJlLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNDAxMSArMCwwIEBACi1mcm9tIHRleHR3cmFwIGltcG9ydCBkZWRlbnQKLQot
aW1wb3J0IF9weXRlc3QuX2NvZGUKLWltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5weXRlc3Rl
ciBpbXBvcnQgZ2V0X3B1YmxpY19uYW1lcwotZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBG
aXh0dXJlTG9va3VwRXJyb3IsIEZpeHR1cmVSZXF1ZXN0Ci1mcm9tIF9weXRlc3QgaW1wb3J0IGZp
eHR1cmVzCi0KLQotZGVmIHRlc3RfZ2V0ZnVuY2FyZ25hbWVzKCk6Ci0KLSAgICBkZWYgZigpOgot
ICAgICAgICBwYXNzCi0KLSAgICBhc3NlcnQgbm90IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhm
KQotCi0gICAgZGVmIGcoYXJnKToKLSAgICAgICAgcGFzcwotCi0gICAgYXNzZXJ0IGZpeHR1cmVz
LmdldGZ1bmNhcmduYW1lcyhnKSA9PSAoImFyZyIsKQotCi0gICAgZGVmIGgoYXJnMSwgYXJnMj0i
aGVsbG8iKToKLSAgICAgICAgcGFzcwotCi0gICAgYXNzZXJ0IGZpeHR1cmVzLmdldGZ1bmNhcmdu
YW1lcyhoKSA9PSAoImFyZzEiLCkKLQotICAgIGRlZiBoKGFyZzEsIGFyZzIsIGFyZzM9ImhlbGxv
Iik6Ci0gICAgICAgIHBhc3MKLQotICAgIGFzc2VydCBmaXh0dXJlcy5nZXRmdW5jYXJnbmFtZXMo
aCkgPT0gKCJhcmcxIiwgImFyZzIiKQotCi0gICAgY2xhc3MgQShvYmplY3QpOgotCi0gICAgICAg
IGRlZiBmKHNlbGYsIGFyZzEsIGFyZzI9ImhlbGxvIik6Ci0gICAgICAgICAgICBwYXNzCi0KLSAg
ICAgICAgQHN0YXRpY21ldGhvZAotICAgICAgICBkZWYgc3RhdGljKGFyZzEsIGFyZzIpOgotICAg
ICAgICAgICAgcGFzcwotCi0gICAgYXNzZXJ0IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhBKCku
ZikgPT0gKCJhcmcxIiwpCi0gICAgYXNzZXJ0IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhBLnN0
YXRpYywgY2xzPUEpID09ICgiYXJnMSIsICJhcmcyIikKLQotCi1jbGFzcyBUZXN0RmlsbEZpeHR1
cmVzKG9iamVjdCk6Ci0KLSAgICBkZWYgdGVzdF9maWxsZnVuY2FyZ3NfZXhwb3NlZChzZWxmKToK
LSAgICAgICAgIyB1c2VkIGJ5IG9lanNraXQsIGtlcHQgZm9yIGNvbXBhdGliaWxpdHkKLSAgICAg
ICAgYXNzZXJ0IHB5dGVzdC5fZmlsbGZ1bmNhcmdzID09IGZpeHR1cmVzLmZpbGxmaXh0dXJlcwot
Ci0gICAgZGVmIHRlc3RfZnVuY2FyZ19sb29rdXBmYWlscyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVm
IHh5enNvbWV0aGluZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gNDIKLQotICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuYyhzb21lKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAg
ICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkg
ICMgIi0tY29sbGVjdC1vbmx5IikKLSAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAotICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBbIipkZWYgdGVz
dF9mdW5jKHNvbWUpKiIsICIqZml4dHVyZSpzb21lKm5vdCBmb3VuZCoiLCAiKnh5enNvbWV0aGlu
ZyoiXQotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9mdW5jYXJnX2Jhc2ljKHNlbGYsIHRlc3Rk
aXIpOgotICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKAotICAgICAgICAgICAgIiIiCi0g
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQot
ICAgICAgICAgICAgZGVmIHNvbWUocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QuZnVuY3Rpb24uX19uYW1lX18KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAg
ICAgICAgICAgZGVmIG90aGVyKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiA0Mgot
ICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzb21lLCBvdGhlcik6Ci0gICAgICAgICAgICAgICAg
cGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBmaXh0dXJlcy5maWxsZml4dHVy
ZXMoaXRlbSkKLSAgICAgICAgZGVsIGl0ZW0uZnVuY2FyZ3NbInJlcXVlc3QiXQotICAgICAgICBh
c3NlcnQgbGVuKGdldF9wdWJsaWNfbmFtZXMoaXRlbS5mdW5jYXJncykpID09IDIKLSAgICAgICAg
YXNzZXJ0IGl0ZW0uZnVuY2FyZ3NbInNvbWUiXSA9PSAidGVzdF9mdW5jIgotICAgICAgICBhc3Nl
cnQgaXRlbS5mdW5jYXJnc1sib3RoZXIiXSA9PSA0MgotCi0gICAgZGVmIHRlc3RfZnVuY2FyZ19s
b29rdXBfbW9kdWxlbGV2ZWwoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVz
dCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18KLQot
ICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgZGVm
IHRlc3RfbWV0aG9kKHNlbGYsIHNvbWV0aGluZyk6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBzb21ldGhpbmcgPT0gInRlc3RfbWV0aG9kIgotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhz
b21ldGhpbmcpOgotICAgICAgICAgICAgICAgIGFzc2VydCBzb21ldGhpbmcgPT0gInRlc3RfZnVu
YyIKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCi0KLSAgICBk
ZWYgdGVzdF9mdW5jYXJnX2xvb2t1cF9jbGFzc2xldmVsKHNlbGYsIHRlc3RkaXIpOgotICAgICAg
ICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLQotICAg
ICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgICAgIGRlZiBzb21ldGhp
bmcoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Lmlu
c3RhbmNlCi0KLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZiwgc29tZXRoaW5n
KToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyBpcyBzZWxmCi0gICAgICAg
ICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCi0g
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKLQotICAg
IGRlZiB0ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpcihzZWxm
LCB0ZXN0ZGlyKToKLSAgICAgICAgc3ViMSA9IHRlc3RkaXIubWtweWRpcigic3ViMSIpCi0gICAg
ICAgIHN1YjIgPSB0ZXN0ZGlyLm1rcHlkaXIoInN1YjIiKQotICAgICAgICBzdWIxLmpvaW4oImNv
bmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKLSAg
ICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGFyZzEocmVxdWVzdCk6Ci0gICAgICAg
ICAgICAgICAgcHl0ZXN0LnJhaXNlcyhFeGNlcHRpb24sICJyZXF1ZXN0LmdldGZpeHR1cmV2YWx1
ZSgnYXJnMicpIikKLSAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAg
ICAgc3ViMi5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICAgICAgX3B5dGVzdC5f
Y29kZS5Tb3VyY2UoCi0gICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBhcmcyKHJl
cXVlc3QpOgotICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoRXhjZXB0aW9uLCAicmVxdWVz
dC5nZXRmaXh0dXJldmFsdWUoJ2FyZzEnKSIpCi0gICAgICAgICIiIgotICAgICAgICAgICAgKQot
ICAgICAgICApCi0KLSAgICAgICAgc3ViMS5qb2luKCJ0ZXN0X2luX3N1YjEucHkiKS53cml0ZSgi
ZGVmIHRlc3RfMShhcmcxKTogcGFzcyIpCi0gICAgICAgIHN1YjIuam9pbigidGVzdF9pbl9zdWIy
LnB5Iikud3JpdGUoImRlZiB0ZXN0XzIoYXJnMik6IHBhc3MiKQotICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQotICAgICAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBh
c3NlZD0yKQotCi0gICAgZGVmIHRlc3RfZXh0ZW5kX2ZpeHR1cmVfbW9kdWxlX2NsYXNzKHNlbGYs
IHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZmlsZSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAg
ICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzcGFtKCk6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuICdzcGFtJwotCi0gICAgICAgICAgICBjbGFzcyBUZXN0U3BhbShvYmplY3QpOgotCi0gICAg
ICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgICAgICBkZWYgc3BhbShz
ZWxmLCBzcGFtKToKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzcGFtICogMgotCi0gICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X3NwYW0oc2VsZiwgc3BhbSk6Ci0gICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgc3BhbSA9PSAnc3BhbXNwYW0nCi0gICAgICAgICIiIgotICAgICAgICApCi0g
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKjEgcGFzc2VkKiJdKQotCi0gICAgZGVmIHRlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3Rf
bW9kdWxlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAg
ICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzcGFtKCk6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuICdzcGFtJwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZmlsZSA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBz
cGFtKHNwYW0pOgotICAgICAgICAgICAgICAgIHJldHVybiBzcGFtICogMgotCi0gICAgICAgICAg
ICBkZWYgdGVzdF9zcGFtKHNwYW0pOgotICAgICAgICAgICAgICAgIGFzc2VydCBzcGFtID09ICdz
cGFtc3BhbScKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBw
YXNzZWQqIl0pCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RmaWxlKQot
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCi0KLSAg
ICBkZWYgdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdChzZWxmLCB0ZXN0ZGly
KToKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAg
ICAgICAgICBkZWYgc3BhbSgpOgotICAgICAgICAgICAgICAgIHJldHVybiAnc3BhbScKLSAgICAg
ICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcGtnID0gdGVzdGRpci5ta3B5ZGlyKCJwa2ciKQot
ICAgICAgICBwa2cuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgICAgIF9weXRl
c3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBz
cGFtKHNwYW0pOgotICAgICAgICAgICAgICAgIHJldHVybiBzcGFtICogMgotICAgICAgICAiIiIK
LSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZmlsZSA9IHBrZy5qb2luKCJ0
ZXN0X3NwYW0ucHkiKQotICAgICAgICB0ZXN0ZmlsZS53cml0ZSgKLSAgICAgICAgICAgIF9weXRl
c3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHRl
c3Rfc3BhbShzcGFtKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgc3BhbSA9PSAic3BhbXNwYW0i
Ci0gICAgICAgICIiIgotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKjEgcGFzc2VkKiJdKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0
ZmlsZSkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJd
KQotCi0gICAgZGVmIHRlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfcGx1Z2luKHNlbGYsIHRl
c3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICB0ZXN0cGx1
Z2luPSIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBmb28oKToKLSAgICAgICAgICAgICAgICByZXR1cm4g
NwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQo
KQotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBweXRlc3RfcGx1Z2lucyA9ICd0ZXN0
cGx1Z2luJwotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBm
b28oZm9vKToKLSAgICAgICAgICAgICAgICByZXR1cm4gZm9vICsgNwotICAgICAgICAiIiIKLSAg
ICAgICAgKQotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAg
ICAgICAgICAgIGRlZiB0ZXN0X2Zvbyhmb28pOgotICAgICAgICAgICAgICAgIGFzc2VydCBmb28g
PT0gMTQKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoIi1zIikKLSAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAotCi0gICAgZGVm
IHRlc3RfZXh0ZW5kX2ZpeHR1cmVfcGx1Z2luX3BsdWdpbihzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgIyBUd28gcGx1Z2lucyBzaG91bGQgZXh0ZW5kIGVhY2ggb3JkZXIgaW4gbG9hZGluZyBvcmRl
cgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICB0ZXN0cGx1Z2luMD0i
IiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCi0gICAgICAgICAgICBkZWYgZm9vKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDcKLSAg
ICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAg
ICAgICAgdGVzdHBsdWdpbjE9IiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGZvbyhmb28pOgotICAgICAg
ICAgICAgICAgIHJldHVybiBmb28gKyA3Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAg
IHRlc3RkaXIuc3lzcGF0aGluc2VydCgpCi0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAg
ICAgICAgICAgICIiIgotICAgICAgICAgICAgcHl0ZXN0X3BsdWdpbnMgPSBbJ3Rlc3RwbHVnaW4w
JywgJ3Rlc3RwbHVnaW4xJ10KLQotICAgICAgICAgICAgZGVmIHRlc3RfZm9vKGZvbyk6Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0IGZvbyA9PSAxNAotICAgICAgICAiIiIKLSAgICAgICAgKQotICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IDAKLQotICAgIGRlZiB0ZXN0X292ZXJyaWRlX3BhcmFtZXRyaXplZF9maXh0dXJlX2Nv
bmZ0ZXN0X21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIiIiVGVzdCBvdmVycmlkZSBv
ZiB0aGUgcGFyYW1ldHJpemVkIGZpeHR1cmUgd2l0aCBub24tcGFyYW1ldHJpemVkIG9uZSBvbiB0
aGUgdGVzdCBtb2R1bGUgbGV2ZWwuIiIiCi0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAot
ICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsIDIsIDNdKQotICAgICAgICAgICAgZGVmIHNwYW0o
cmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLSAgICAgICAg
IiIiCi0gICAgICAgICkKLSAgICAgICAgdGVzdGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgc3BhbSgpOgotICAgICAgICAgICAgICAg
IHJldHVybiAnc3BhbScKLQotICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKLSAgICAg
ICAgICAgICAgICBhc3NlcnQgc3BhbSA9PSAnc3BhbScKLSAgICAgICAgIiIiCi0gICAgICAgICkK
LSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCi0gICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KHRlc3RmaWxlKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWyIqMSBwYXNzZWQqIl0pCi0KLSAgICBkZWYgdGVzdF9vdmVycmlkZV9wYXJhbWV0cml6ZWRf
Zml4dHVyZV9jb25mdGVzdF9jb25mdGVzdChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIiIiVGVz
dCBvdmVycmlkZSBvZiB0aGUgcGFyYW1ldHJpemVkIGZpeHR1cmUgd2l0aCBub24tcGFyYW1ldHJp
emVkIG9uZSBvbiB0aGUgY29uZnRlc3QgbGV2ZWwuIiIiCi0gICAgICAgIHRlc3RkaXIubWFrZWNv
bmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsIDIsIDNdKQotICAgICAgICAgICAg
ZGVmIHNwYW0ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0K
LSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgc3ViZGlyID0gdGVzdGRpci5ta3B5ZGly
KCJzdWJkaXIiKQotICAgICAgICBzdWJkaXIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAg
ICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAg
ICAgICAgICAgIGRlZiBzcGFtKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJwotICAg
ICAgICAiIiIKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZmlsZSA9IHN1
YmRpci5qb2luKCJ0ZXN0X3NwYW0ucHkiKQotICAgICAgICB0ZXN0ZmlsZS53cml0ZSgKLSAgICAg
ICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgc3BhbSA9
PSAic3BhbSIKLSAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KHRlc3RmaWxlKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBw
YXNzZWQqIl0pCi0KLSAgICBkZWYgdGVzdF9vdmVycmlkZV9ub25fcGFyYW1ldHJpemVkX2ZpeHR1
cmVfY29uZnRlc3RfbW9kdWxlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICAiIiJUZXN0IG92ZXJy
aWRlIG9mIHRoZSBub24tcGFyYW1ldHJpemVkIGZpeHR1cmUgd2l0aCBwYXJhbWV0cml6ZWQgb25l
IG9uIHRoZSB0ZXN0IG1vZHVsZSBsZXZlbC4iIiIKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRl
c3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgc3BhbSgpOgotICAgICAgICAg
ICAgICAgIHJldHVybiAnc3BhbScKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgdGVz
dGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwg
MiwgM10pCi0gICAgICAgICAgICBkZWYgc3BhbShyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAgICBwYXJhbXMgPSB7J3NwYW0nOiAxfQot
Ci0gICAgICAgICAgICBkZWYgdGVzdF9zcGFtKHNwYW0pOgotICAgICAgICAgICAgICAgIGFzc2Vy
dCBzcGFtID09IHBhcmFtc1snc3BhbSddCi0gICAgICAgICAgICAgICAgcGFyYW1zWydzcGFtJ10g
Kz0gMQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3Nl
ZCoiXSkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZpbGUpCi0gICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKLQotICAgIGRl
ZiB0ZXN0X292ZXJyaWRlX25vbl9wYXJhbWV0cml6ZWRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVz
dChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIiIiVGVzdCBvdmVycmlkZSBvZiB0aGUgbm9uLXBh
cmFtZXRyaXplZCBmaXh0dXJlIHdpdGggcGFyYW1ldHJpemVkIG9uZSBvbiB0aGUgY29uZnRlc3Qg
bGV2ZWwuIiIiCi0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIi
Ci0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQotICAgICAgICAgICAgZGVmIHNwYW0oKToKLSAgICAgICAgICAgICAgICByZXR1cm4gJ3NwYW0n
Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHN1YmRpciA9IHRlc3RkaXIubWtweWRp
cigic3ViZGlyIikKLSAgICAgICAgc3ViZGlyLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0g
ICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKLSAgICAgICAgICAgICAgICAiIiIKLSAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBh
cmFtcz1bMSwgMiwgM10pCi0gICAgICAgICAgICBkZWYgc3BhbShyZXF1ZXN0KToKLSAgICAgICAg
ICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotICAgICAgICAiIiIKLSAgICAgICAgICAgICkK
LSAgICAgICAgKQotICAgICAgICB0ZXN0ZmlsZSA9IHN1YmRpci5qb2luKCJ0ZXN0X3NwYW0ucHki
KQotICAgICAgICB0ZXN0ZmlsZS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291
cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgcGFyYW1zID0geydzcGFtJzog
MX0KLQotICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKLSAgICAgICAgICAgICAgICBh
c3NlcnQgc3BhbSA9PSBwYXJhbXNbJ3NwYW0nXQotICAgICAgICAgICAgICAgIHBhcmFtc1snc3Bh
bSddICs9IDEKLSAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMyBwYXNzZWQqIl0pCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KHRlc3RmaWxlKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMyBw
YXNzZWQqIl0pCi0KLSAgICBkZWYgdGVzdF9vdmVycmlkZV9hdXRvdXNlX2ZpeHR1cmVfd2l0aF9w
YXJhbWV0cml6ZWRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdCgKLSAgICAgICAgc2VsZiwgdGVz
dGRpcgotICAgICk6Ci0gICAgICAgICIiIlRlc3Qgb3ZlcnJpZGUgb2YgdGhlIGF1dG91c2UgZml4
dHVyZSB3aXRoIHBhcmFtZXRyaXplZCBvbmUgb24gdGhlIGNvbmZ0ZXN0IGxldmVsLgotICAgICAg
ICBUaGlzIHRlc3QgY292ZXJzIHRoZSBpc3N1ZSBleHBsYWluZWQgaW4gaXNzdWUgMTYwMQotICAg
ICAgICAiIiIKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIK
LSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBzcGFtKCk6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuICdzcGFtJwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBzdWJkaXIgPSB0
ZXN0ZGlyLm1rcHlkaXIoInN1YmRpciIpCi0gICAgICAgIHN1YmRpci5qb2luKCJjb25mdGVzdC5w
eSIpLndyaXRlKAotICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3VyY2UoCi0gICAgICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShwYXJhbXM9WzEsIDIsIDNdKQotICAgICAgICAgICAgZGVmIHNwYW0ocmVxdWVz
dCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLSAgICAgICAgIiIiCi0g
ICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgdGVzdGZpbGUgPSBzdWJkaXIuam9pbigi
dGVzdF9zcGFtLnB5IikKLSAgICAgICAgdGVzdGZpbGUud3JpdGUoCi0gICAgICAgICAgICBfcHl0
ZXN0Ll9jb2RlLlNvdXJjZSgKLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIHBhcmFt
cyA9IHsnc3BhbSc6IDF9Ci0KLSAgICAgICAgICAgIGRlZiB0ZXN0X3NwYW0oc3BhbSk6Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0IHNwYW0gPT0gcGFyYW1zWydzcGFtJ10KLSAgICAgICAgICAgICAg
ICBwYXJhbXNbJ3NwYW0nXSArPSAxCi0gICAgICAgICIiIgotICAgICAgICAgICAgKQotICAgICAg
ICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjMgcGFzc2VkKiJdKQotICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKjMgcGFzc2VkKiJdKQotCi0gICAgZGVmIHRlc3RfYXV0b3VzZV9maXh0dXJlX3Bs
dWdpbihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIyBBIGZpeHR1cmUgZnJvbSBhIHBsdWdpbiBo
YXMgbm8gYmFzZWlkIHNldCwgd2hpY2ggc2NyZXdlZCB1cAotICAgICAgICAjIHRoZSBhdXRvdXNl
IGZpeHR1cmUgaGFuZGxpbmcuCi0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAg
ICAgIHRlc3RwbHVnaW49IiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICBkZWYgZm9vKHJl
cXVlc3QpOgotICAgICAgICAgICAgICAgIHJlcXVlc3QuZnVuY3Rpb24uZm9vID0gNwotICAgICAg
ICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQotICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIHB5dGVz
dF9wbHVnaW5zID0gJ3Rlc3RwbHVnaW4nCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhyZXF1
ZXN0KToKLSAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5mdW5jdGlvbi5mb28gPT0gNwot
ICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCi0gICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKLQotICAgIGRlZiB0ZXN0X2Z1bmNh
cmdfbG9va3VwX2Vycm9yKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBhX2ZpeHR1cmUoKTogcGFz
cwotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBiX2ZpeHR1
cmUoKTogcGFzcwotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRl
ZiBjX2ZpeHR1cmUoKTogcGFzcwotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAg
ICAgICAgIGRlZiBkX2ZpeHR1cmUoKTogcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRl
ZiB0ZXN0X2xvb2t1cF9lcnJvcih1bmtub3duKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAg
ICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
LSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgWwotICAg
ICAgICAgICAgICAgICIqRVJST1IgYXQgc2V0dXAgb2YgdGVzdF9sb29rdXBfZXJyb3IqIiwKLSAg
ICAgICAgICAgICAgICAiICBkZWYgdGVzdF9sb29rdXBfZXJyb3IodW5rbm93bik6KiIsCi0gICAg
ICAgICAgICAgICAgIkUgICAgICAgZml4dHVyZSAndW5rbm93bicgbm90IGZvdW5kIiwKLSAgICAg
ICAgICAgICAgICAiPiAgICAgICBhdmFpbGFibGUgZml4dHVyZXM6KmFfZml4dHVyZSwqYl9maXh0
dXJlLCpjX2ZpeHR1cmUsKmRfZml4dHVyZSptb25rZXlwYXRjaCwqIiwgICMgc29ydGVkCi0gICAg
ICAgICAgICAgICAgIj4gICAgICAgdXNlICdweSp0ZXN0IC0tZml4dHVyZXMgKicgZm9yIGhlbHAg
b24gdGhlbS4iLAotICAgICAgICAgICAgICAgICIqMSBlcnJvcioiLAotICAgICAgICAgICAgXQot
ICAgICAgICApCi0gICAgICAgIGFzc2VydCAiSU5URVJOQUwiIG5vdCBpbiByZXN1bHQuc3Rkb3V0
LnN0cigpCi0KLSAgICBkZWYgdGVzdF9maXh0dXJlX2V4Y2luZm9fbGVhayhzZWxmLCB0ZXN0ZGly
KToKLSAgICAgICAgIyBvbiBweXRob24yIHN5cy5leGNpbmZvIHdvdWxkIGxlYWsgaW50byBmaXh0
dXJlIGV4ZWN1dGlvbnMKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICBpbXBvcnQgc3lzCi0gICAgICAgICAgICBpbXBvcnQgdHJhY2ViYWNr
Ci0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQotICAgICAgICAgICAgZGVmIGxlYWsoKToKLSAgICAgICAgICAgICAgICBpZiBzeXMuZXhjX2lu
Zm8oKVswXTogICMgcHl0aG9uMyBidWcgOikKLSAgICAgICAgICAgICAgICAgICAgdHJhY2ViYWNr
LnByaW50X2V4YygpCi0gICAgICAgICAgICAgICAgI2ZhaWxzCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0IHN5cy5leGNfaW5mbygpID09IChOb25lLCBOb25lLCBOb25lKQotCi0gICAgICAgICAgICBk
ZWYgdGVzdF9sZWFrKGxlYWspOgotICAgICAgICAgICAgICAgIGlmIHN5cy5leGNfaW5mbygpWzBd
OiAgIyBweXRob24zIGJ1ZyA6KQotICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRf
ZXhjKCkKLSAgICAgICAgICAgICAgICBhc3NlcnQgc3lzLmV4Y19pbmZvKCkgPT0gKE5vbmUsIE5v
bmUsIE5vbmUpCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKLSAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAotCi0KLWNsYXNz
IFRlc3RSZXF1ZXN0QmFzaWMob2JqZWN0KToKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfYXR0cmli
dXRlcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgKLSAg
ICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6IHBhc3MK
LSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc29tZXRoaW5nKTogcGFzcwotICAgICAgICAiIiIK
LSAgICAgICAgKQotICAgICAgICByZXEgPSBmaXh0dXJlcy5GaXh0dXJlUmVxdWVzdChpdGVtKQot
ICAgICAgICBhc3NlcnQgcmVxLmZ1bmN0aW9uID09IGl0ZW0ub2JqCi0gICAgICAgIGFzc2VydCBy
ZXEua2V5d29yZHMgPT0gaXRlbS5rZXl3b3JkcwotICAgICAgICBhc3NlcnQgaGFzYXR0cihyZXEu
bW9kdWxlLCAidGVzdF9mdW5jIikKLSAgICAgICAgYXNzZXJ0IHJlcS5jbHMgaXMgTm9uZQotICAg
ICAgICBhc3NlcnQgcmVxLmZ1bmN0aW9uLl9fbmFtZV9fID09ICJ0ZXN0X2Z1bmMiCi0gICAgICAg
IGFzc2VydCByZXEuY29uZmlnID09IGl0ZW0uY29uZmlnCi0gICAgICAgIGFzc2VydCByZXByKHJl
cSkuZmluZChyZXEuZnVuY3Rpb24uX19uYW1lX18pICE9IC0xCi0KLSAgICBkZWYgdGVzdF9yZXF1
ZXN0X2F0dHJpYnV0ZXNfbWV0aG9kKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBpdGVtLCA9IHRl
c3RkaXIuZ2V0aXRlbXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKLSAgICAgICAgICAgIGNsYXNzIFRlc3RCKG9iamVjdCk6Ci0KLSAgICAgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgICAgICBkZWYgc29tZXRoaW5nKHNlbGYsIHJlcXVl
c3QpOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMQotICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X2Z1bmMoc2VsZiwgc29tZXRoaW5nKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAg
ICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXEgPSBpdGVtLl9yZXF1ZXN0Ci0gICAgICAg
IGFzc2VydCByZXEuY2xzLl9fbmFtZV9fID09ICJUZXN0QiIKLSAgICAgICAgYXNzZXJ0IHJlcS5p
bnN0YW5jZS5fX2NsYXNzX18gPT0gcmVxLmNscwotCi0gICAgZGVmIHRlc3RfcmVxdWVzdF9jb250
YWluc19mdW5jYXJnX2FyZzJmaXh0dXJlZGVmcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgbW9k
Y29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAg
ZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAg
ICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRo
b2Qoc2VsZiwgc29tZXRoaW5nKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAi
IiIKLSAgICAgICAgKQotICAgICAgICBpdGVtMSwgPSB0ZXN0ZGlyLmdlbml0ZW1zKFttb2Rjb2xd
KQotICAgICAgICBhc3NlcnQgaXRlbTEubmFtZSA9PSAidGVzdF9tZXRob2QiCi0gICAgICAgIGFy
ZzJmaXh0dXJlZGVmcyA9IGZpeHR1cmVzLkZpeHR1cmVSZXF1ZXN0KGl0ZW0xKS5fYXJnMmZpeHR1
cmVkZWZzCi0gICAgICAgIGFzc2VydCBsZW4oYXJnMmZpeHR1cmVkZWZzKSA9PSAxCi0gICAgICAg
IGFzc2VydCBhcmcyZml4dHVyZWRlZnNbInNvbWV0aGluZyJdWzBdLmFyZ25hbWUgPT0gInNvbWV0
aGluZyIKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfZ2FyYmFnZShzZWxmLCB0ZXN0ZGlyKToKLSAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBp
bXBvcnQgc3lzCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBmcm9tIF9w
eXRlc3QuZml4dHVyZXMgaW1wb3J0IFBzZXVkb0ZpeHR1cmVEZWYKLSAgICAgICAgICAgIGltcG9y
dCBnYwotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQotICAgICAg
ICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICAjIHRoaXMgbWV0
aG9kIG9mIHRlc3QgZG9lc24ndCB3b3JrIG9uIHB5cHkKLSAgICAgICAgICAgICAgICBpZiBoYXNh
dHRyKHN5cywgInB5cHlfdmVyc2lvbl9pbmZvIik6Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxk
Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWwgPSBn
Yy5nZXRfZGVidWcoKQotICAgICAgICAgICAgICAgICAgICBnYy5zZXRfZGVidWcoZ2MuREVCVUdf
U0FWRUFMTCkKLSAgICAgICAgICAgICAgICAgICAgZ2MuY29sbGVjdCgpCi0KLSAgICAgICAgICAg
ICAgICAgICAgeWllbGQKLQotICAgICAgICAgICAgICAgICAgICBnYy5jb2xsZWN0KCkKLSAgICAg
ICAgICAgICAgICAgICAgbGVha2VkX3R5cGVzID0gc3VtKDEgZm9yIF8gaW4gZ2MuZ2FyYmFnZQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShfLCBQ
c2V1ZG9GaXh0dXJlRGVmKSkKLQotICAgICAgICAgICAgICAgICAgICBnYy5nYXJiYWdlWzpdID0g
W10KLQotICAgICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgbGVha2VkX3R5cGVzID09IDAKLSAgICAgICAgICAgICAgICAgICAgZmluYWxseToKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGdjLnNldF9kZWJ1ZyhvcmlnaW5hbCkKLQotICAgICAgICAg
ICAgZGVmIHRlc3RfZnVuYygpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0g
ICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9nZXRmaXh0dXJl
dmFsdWVfcmVjdXJzaXZlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVz
dCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDEKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAg
ZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5n
ZXRmaXh0dXJldmFsdWUoInNvbWV0aGluZyIpICsgMQotICAgICAgICAgICAgZGVmIHRlc3RfZnVu
Yyhzb21ldGhpbmcpOgotICAgICAgICAgICAgICAgIGFzc2VydCBzb21ldGhpbmcgPT0gMgotICAg
ICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
KQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKLQotICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgiZ2V0Zml4bWV0aG9kIiwgKCJnZXRmaXh0dXJldmFsdWUiLCAiZ2V0
ZnVuY2FyZ3ZhbHVlIikpCi0gICAgZGVmIHRlc3RfZ2V0Zml4dHVyZXZhbHVlKHNlbGYsIHRlc3Rk
aXIsIGdldGZpeG1ldGhvZCk6Ci0gICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oCi0gICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIHZhbHVl
cyA9IFsyXQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgc29t
ZXRoaW5nKHJlcXVlc3QpOiByZXR1cm4gMQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0g
ICAgICAgICAgICBkZWYgb3RoZXIocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHZh
bHVlcy5wb3AoKQotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzb21ldGhpbmcpOiBwYXNzCi0g
ICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIGltcG9ydCBjb250ZXh0bGliCi0KLSAgICAg
ICAgaWYgZ2V0Zml4bWV0aG9kID09ICJnZXRmdW5jYXJndmFsdWUiOgotICAgICAgICAgICAgd2Fy
bmluZ19leHBlY3RhdGlvbiA9IHB5dGVzdC53YXJucyhEZXByZWNhdGlvbldhcm5pbmcpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAjIHNlZSAjMTgzMCBmb3IgYSBjbGVhbmVyIHdheSB0byBh
Y2NvbXBsaXNoIHRoaXMKLSAgICAgICAgICAgIEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCi0g
ICAgICAgICAgICBkZWYgZXhwZWN0aW5nX25vX3dhcm5pbmcoKToKLSAgICAgICAgICAgICAgICB5
aWVsZAotCi0gICAgICAgICAgICB3YXJuaW5nX2V4cGVjdGF0aW9uID0gZXhwZWN0aW5nX25vX3dh
cm5pbmcoKQotCi0gICAgICAgIHJlcSA9IGl0ZW0uX3JlcXVlc3QKLSAgICAgICAgd2l0aCB3YXJu
aW5nX2V4cGVjdGF0aW9uOgotICAgICAgICAgICAgZml4dHVyZV9mZXRjaGVyID0gZ2V0YXR0cihy
ZXEsIGdldGZpeG1ldGhvZCkKLSAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhGaXh0dXJl
TG9va3VwRXJyb3IpOgotICAgICAgICAgICAgICAgIGZpeHR1cmVfZmV0Y2hlcigibm90ZXhpc3Rz
IikKLSAgICAgICAgICAgIHZhbCA9IGZpeHR1cmVfZmV0Y2hlcigic29tZXRoaW5nIikKLSAgICAg
ICAgICAgIGFzc2VydCB2YWwgPT0gMQotICAgICAgICAgICAgdmFsID0gZml4dHVyZV9mZXRjaGVy
KCJzb21ldGhpbmciKQotICAgICAgICAgICAgYXNzZXJ0IHZhbCA9PSAxCi0gICAgICAgICAgICB2
YWwyID0gZml4dHVyZV9mZXRjaGVyKCJvdGhlciIpCi0gICAgICAgICAgICBhc3NlcnQgdmFsMiA9
PSAyCi0gICAgICAgICAgICB2YWwyID0gZml4dHVyZV9mZXRjaGVyKCJvdGhlciIpICAjIHNlZSBh
Ym91dCBjYWNoaW5nCi0gICAgICAgICAgICBhc3NlcnQgdmFsMiA9PSAyCi0gICAgICAgICAgICBw
eXRlc3QuX2ZpbGxmdW5jYXJncyhpdGVtKQotICAgICAgICAgICAgYXNzZXJ0IGl0ZW0uZnVuY2Fy
Z3NbInNvbWV0aGluZyJdID09IDEKLSAgICAgICAgICAgIGFzc2VydCBsZW4oZ2V0X3B1YmxpY19u
YW1lcyhpdGVtLmZ1bmNhcmdzKSkgPT0gMgotICAgICAgICAgICAgYXNzZXJ0ICJyZXF1ZXN0IiBp
biBpdGVtLmZ1bmNhcmdzCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X2FkZGZpbmFsaXplcihzZWxm
LCB0ZXN0ZGlyKToKLSAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgKLSAgICAgICAgICAg
ICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgdGVhcmRvd25saXN0
ID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIHNvbWV0
aGluZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1i
ZGE6IHRlYXJkb3dubGlzdC5hcHBlbmQoMSkpCi0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNv
bWV0aGluZyk6IHBhc3MKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgaXRlbS5zZXNz
aW9uLl9zZXR1cHN0YXRlLnByZXBhcmUoaXRlbSkKLSAgICAgICAgcHl0ZXN0Ll9maWxsZnVuY2Fy
Z3MoaXRlbSkKLSAgICAgICAgIyBzdWNjZXNzaXZlbHkgY2hlY2sgZmluYWxpemF0aW9uIGNhbGxz
Ci0gICAgICAgIHRlYXJkb3dubGlzdCA9IGl0ZW0uZ2V0cGFyZW50KHB5dGVzdC5Nb2R1bGUpLm9i
ai50ZWFyZG93bmxpc3QKLSAgICAgICAgc3MgPSBpdGVtLnNlc3Npb24uX3NldHVwc3RhdGUKLSAg
ICAgICAgYXNzZXJ0IG5vdCB0ZWFyZG93bmxpc3QKLSAgICAgICAgc3MudGVhcmRvd25fZXhhY3Qo
aXRlbSwgTm9uZSkKLSAgICAgICAgcHJpbnQoc3Muc3RhY2spCi0gICAgICAgIGFzc2VydCB0ZWFy
ZG93bmxpc3QgPT0gWzFdCi0KLSAgICBkZWYgdGVzdF9tYXJrX2FzX2ZpeHR1cmVfd2l0aF9wcmVm
aXhfYW5kX2RlY29yYXRvcl9mYWlscyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5t
YWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
LQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgcHl0ZXN0X2Z1
bmNhcmdfX21hcmtlZF93aXRoX3ByZWZpeF9hbmRfZGVjb3JhdG9yKCk6Ci0gICAgICAgICAgICAg
ICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKLSAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAot
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBbCi0gICAg
ICAgICAgICAgICAgIipBc3NlcnRpb25FcnJvcjogZml4dHVyZXMgY2Fubm90IGhhdmUqQHB5dGVz
dC5maXh0dXJlKiIsCi0gICAgICAgICAgICAgICAgIipweXRlc3RfZnVuY2FyZ19fbWFya2VkX3dp
dGhfcHJlZml4X2FuZF9kZWNvcmF0b3IqIiwKLSAgICAgICAgICAgIF0KLSAgICAgICAgKQotCi0g
ICAgZGVmIHRlc3RfcmVxdWVzdF9hZGRmaW5hbGl6ZXJfZmFpbGluZ19zZXR1cChzZWxmLCB0ZXN0
ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1ZXMgPSBbMV0KLSAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIG15Zml4KHJlcXVlc3QpOgotICAg
ICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHZhbHVlcy5wb3ApCi0gICAgICAgICAg
ICAgICAgYXNzZXJ0IDAKLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZpeChteWZpeCk6Ci0gICAgICAg
ICAgICAgICAgcGFzcwotICAgICAgICAgICAgZGVmIHRlc3RfZmluYWxpemVyX3JhbigpOgotICAg
ICAgICAgICAgICAgIGFzc2VydCBub3QgdmFsdWVzCi0gICAgICAgICIiIgotICAgICAgICApCi0g
ICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXMiKQotICAgICAgICByZXByZWMu
YXNzZXJ0b3V0Y29tZShmYWlsZWQ9MSwgcGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0
X2FkZGZpbmFsaXplcl9mYWlsaW5nX3NldHVwX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1ZXMgPSBbMSwgMl0KLSAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKLSAgICAgICAgICAgIGRlZiBteWZpeChyZXF1ZXN0
KToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcih2YWx1ZXMucG9wKQotICAg
ICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHZhbHVlcy5wb3ApCi0gICAgICAgICAg
ICAgICAgYXNzZXJ0IDAKLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZpeChteWZpeCk6Ci0gICAgICAg
ICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKLSAgICAgICAgbW9kID0gcmVwcmVjLmdldGNhbGxzKCJw
eXRlc3RfcnVudGVzdF9zZXR1cCIpWzBdLml0ZW0ubW9kdWxlCi0gICAgICAgIGFzc2VydCBub3Qg
bW9kLnZhbHVlcwotCi0gICAgZGVmIHRlc3RfcmVxdWVzdF9hZGRmaW5hbGl6ZXJfcGFydGlhbF9z
ZXR1cF9mYWlsdXJlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAg
ICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAg
ICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmlu
YWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZChOb25lKSkKLSAgICAgICAgICAgIGRlZiB0ZXN0
X2Z1bmMoc29tZXRoaW5nLCBtaXNzaW5nYXJnKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAg
ICAgICAgICBkZWYgdGVzdF9zZWNvbmQoKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZh
bHVlcykgPT0gMQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdChwKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0g
ICAgICAgICAgICBbIioxIGVycm9yKiJdICAjIFhYWCB0aGUgd2hvbGUgbW9kdWxlIGNvbGxlY3Rp
b24gZmFpbHMKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfcmVxdWVzdF9zdWJyZXF1ZXN0X2Fk
ZGZpbmFsaXplcl9leGNlcHRpb25zKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICAiIiIKLSAgICAg
ICAgRW5zdXJlIGV4Y2VwdGlvbnMgcmFpc2VkIGR1cmluZyB0ZWFyZG93biBieSBhIGZpbmFsaXpl
ciBhcmUgc3VwcHJlc3NlZAotICAgICAgICB1bnRpbCBhbGwgZmluYWxpemVycyBhcmUgY2FsbGVk
LCByZS1yYWlzaW5nIHRoZSBmaXJzdCBleGNlcHRpb24gKCMyNDQwKQotICAgICAgICAiIiIKLSAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgZGVmIF9l
eGNlcHRzKHdoZXJlKToKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Vycm9yIGlu
ICVzIGZpeHR1cmUnICUgd2hlcmUpCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAg
ICAgICAgIGRlZiBzdWJyZXF1ZXN0KHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiBy
ZXF1ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBzb21l
dGhpbmcoc3VicmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgc3VicmVxdWVzdC5hZGRmaW5hbGl6
ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKDEpKQotICAgICAgICAgICAgICAgIHN1YnJlcXVlc3Qu
YWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgyKSkKLSAgICAgICAgICAgICAgICBz
dWJyZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IF9leGNlcHRzKCdzb21ldGhpbmcnKSkKLSAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGV4Y2VwdHMoc3VicmVx
dWVzdCk6Ci0gICAgICAgICAgICAgICAgc3VicmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiBf
ZXhjZXB0cygnZXhjZXB0cycpKQotICAgICAgICAgICAgICAgIHN1YnJlcXVlc3QuYWRkZmluYWxp
emVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgzKSkKLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZpcnN0
KHNvbWV0aGluZywgZXhjZXB0cyk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAg
ZGVmIHRlc3Rfc2Vjb25kKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMywg
MiwgMV0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAg
ICAgICBbIipFeGNlcHRpb246IEVycm9yIGluIGV4Y2VwdHMgZml4dHVyZSIsICIqIDIgcGFzc2Vk
LCAxIGVycm9yIGluICoiXQotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X2dldG1v
ZHVsZXBhdGgoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9k
dWxlY29sKCJkZWYgdGVzdF9zb21lZnVuYygpOiBwYXNzIikKLSAgICAgICAgaXRlbSwgPSB0ZXN0
ZGlyLmdlbml0ZW1zKFttb2Rjb2xdKQotICAgICAgICByZXEgPSBmaXh0dXJlcy5GaXh0dXJlUmVx
dWVzdChpdGVtKQotICAgICAgICBhc3NlcnQgcmVxLmZzcGF0aCA9PSBtb2Rjb2wuZnNwYXRoCi0K
LSAgICBkZWYgdGVzdF9yZXF1ZXN0X2ZpeHR1cmVuYW1lcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0gICAgICAgICAgICBmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IGdldF9w
dWJsaWNfbmFtZXMKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCi0gICAgICAgICAgICBk
ZWYgYXJnMSgpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZSgpCi0gICAgICAgICAgICBkZWYgZmFyZyhhcmcxKToKLSAgICAgICAgICAgICAgICBwYXNz
Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAg
ZGVmIHNhcmcodG1wZGlyKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBkZWYg
dGVzdF9mdW5jdGlvbihyZXF1ZXN0LCBmYXJnKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgc2V0
KGdldF9wdWJsaWNfbmFtZXMocmVxdWVzdC5maXh0dXJlbmFtZXMpKSA9PSBcCi0gICAgICAgICAg
ICAgICAgICAgICAgIHNldChbInRtcGRpciIsICJzYXJnIiwgImFyZzEiLCAicmVxdWVzdCIsICJm
YXJnIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG1wZGlyX2ZhY3RvcnkiXSkKLSAg
ICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVz
dF9mdW5jYXJnbmFtZXNfY29tcGF0YXR0cihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAg
ICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuZnVuY2FyZ25hbWVzID09IG1ldGFmdW5jLmZpeHR1
cmVuYW1lcwotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgZm4o
cmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3QuX3B5ZnVuY2l0ZW0uZnVu
Y2FyZ25hbWVzID09IFwKLSAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5fcHlmdW5jaXRl
bS5maXh0dXJlbmFtZXMKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5mdW5jYXJnbmFt
ZXMsIHJlcXVlc3QuZml4dHVyZW5hbWVzCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGZu
KToKLSAgICAgICAgICAgICAgICBhc3NlcnQgZm5bMF0gPT0gZm5bMV0KLSAgICAgICAgIiIiCi0g
ICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9zZXR1cGRlY29y
YXRvcl9hbmRfeHVuaXQoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAg
ICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nbW9kdWxl
JywgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIHNldHVwX21vZHVsZSgpOgotICAgICAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIm1vZHVsZSIpCi0gICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKCk6Ci0g
ICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgiZnVuY3Rpb24iKQotCi0gICAgICAgICAgICBk
ZWYgdGVzdF9mdW5jKCk6Ci0gICAgICAgICAgICAgICAgcGFzcwotCi0gICAgICAgICAgICBjbGFz
cyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9ImNsYXNzIiwgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgICAgIGRlZiBzZXR1cF9jbGFz
cyhzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgiY2xhc3MiKQotICAg
ICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICAg
ICAgZGVmIHNldHVwX21ldGhvZChzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgibWV0aG9kIikKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6Ci0g
ICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGRlZiB0ZXN0X2FsbCgpOgotICAg
ICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJtb2R1bGUiLCAiZnVuY3Rpb24iLCAiY2xh
c3MiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb24iLCAibWV0aG9kIiwg
ImZ1bmN0aW9uIl0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVz
dGRpci5pbmxpbmVfcnVuKCItdiIpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0zKQotCi0gICAgZGVmIHRlc3RfZml4dHVyZXNfc3ViX3N1YmRpcl9ub3JtYWxpemVfc2VwKHNl
bGYsIHRlc3RkaXIpOgotICAgICAgICAjIHRoaXMgdGVzdHMgdGhhdCBub3JtYWxpemF0aW9uIG9m
IG5vZGVpZHMgdGFrZXMgcGxhY2UKLSAgICAgICAgYiA9IHRlc3RkaXIubWtkaXIoInRlc3RzIiku
bWtkaXIoInVuaXQiKQotICAgICAgICBiLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAg
ICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKLSAgICAgICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAg
ICAgICAgZGVmIGFyZzEoKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAg
ICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHAgPSBiLmpvaW4oInRlc3RfbW9kdWxlLnB5
IikKLSAgICAgICAgcC53cml0ZSgiZGVmIHRlc3RfZnVuYyhhcmcxKTogcGFzcyIpCi0gICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICItLWZpeHR1cmVzIikKLSAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
Ci0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICpmaXh0dXJlcyBkZWZpbmVkKmNvbmZ0ZXN0
KgotICAgICAgICAgICAgKmFyZzEqCi0gICAgICAgICIiIgotICAgICAgICApCi0KLSAgICBkZWYg
dGVzdF9zaG93X2ZpeHR1cmVzX2NvbG9yX3llcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF90aGlzKCk6IGFzc2VydCAxIikKLSAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sb3I9eWVzIiwgIi0tZml4dHVyZXMiKQotICAg
ICAgICBhc3NlcnQgIlx4MWJbMzJtdG1wZGlyIiBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCi0KLSAg
ICBkZWYgdGVzdF9uZXdzdHlsZV93aXRoX3JlcXVlc3Qoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKLSAgICAgICAgICAgIGRlZiBh
cmcocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZGVmIHRlc3Rf
MShhcmcpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9zZXR1cGNvbnRleHRfbm9fcGFyYW0o
c2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAg
ICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHBhcmFtcz1bMSwyXSkKLSAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBteXNldHVwKHJlcXVlc3QsIGFyZyk6
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHJlcXVlc3QsICJwYXJhbSIpCi0g
ICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyBp
biAoMSwyKQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKLQot
Ci1jbGFzcyBUZXN0UmVxdWVzdE1hcmtpbmcob2JqZWN0KToKLQotICAgIGRlZiB0ZXN0X2FwcGx5
bWFya2VyKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBpdGVtMSwgaXRlbTIgPSB0ZXN0ZGlyLmdl
dGl0ZW1zKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1
ZXN0KToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mo
b2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMShzZWxmLCBzb21ldGhpbmcp
OgotICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVu
YzIoc2VsZiwgc29tZXRoaW5nKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAi
IiIKLSAgICAgICAgKQotICAgICAgICByZXExID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRl
bTEpCi0gICAgICAgIGFzc2VydCAieGZhaWwiIG5vdCBpbiBpdGVtMS5rZXl3b3JkcwotICAgICAg
ICByZXExLmFwcGx5bWFya2VyKHB5dGVzdC5tYXJrLnhmYWlsKQotICAgICAgICBhc3NlcnQgInhm
YWlsIiBpbiBpdGVtMS5rZXl3b3JkcwotICAgICAgICBhc3NlcnQgInNraXBpZiIgbm90IGluIGl0
ZW0xLmtleXdvcmRzCi0gICAgICAgIHJlcTEuYXBwbHltYXJrZXIocHl0ZXN0Lm1hcmsuc2tpcGlm
KQotICAgICAgICBhc3NlcnQgInNraXBpZiIgaW4gaXRlbTEua2V5d29yZHMKLSAgICAgICAgcHl0
ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAicmVxMS5hcHBseW1hcmtlcig0MikiKQotCi0gICAgZGVm
IHRlc3RfYWNjZXNza2V5d29yZHMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKLSAgICAgICAgICAgIGRlZiBrZXl3b3JkcyhyZXF1
ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5rZXl3b3JkcwotICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLlhZWgotICAgICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oa2V5d29y
ZHMpOgotICAgICAgICAgICAgICAgIGFzc2VydCBrZXl3b3Jkc1siWFlaIl0KLSAgICAgICAgICAg
ICAgICBhc3NlcnQgImFiYyIgbm90IGluIGtleXdvcmRzCi0gICAgICAgICIiIgotICAgICAgICAp
Ci0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5h
c3NlcnRvdXRjb21lKHBhc3NlZD0xKQotCi0gICAgZGVmIHRlc3RfYWNjZXNzbWFya2VyX2R5bmFt
aWMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoKQotICAgICAgICAgICAgZGVmIGtleXdvcmRzKHJlcXVlc3QpOgotICAgICAgICAg
ICAgICAgIHJldHVybiByZXF1ZXN0LmtleXdvcmRzCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShzY29wZT0iY2xhc3MiLCBhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICBkZWYgbWFya2lu
ZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmFwcGx5bWFya2VyKHB5dGVzdC5t
YXJrLlhZWigiaGVsbG8iKSkKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgICAgICBkZWYgdGVzdF9mdW4xKGtleXdvcmRzKToKLSAgICAgICAgICAgICAgICBh
c3NlcnQga2V5d29yZHNbIlhZWiJdIGlzIG5vdCBOb25lCi0gICAgICAgICAgICAgICAgYXNzZXJ0
ICJhYmMiIG5vdCBpbiBrZXl3b3JkcwotICAgICAgICAgICAgZGVmIHRlc3RfZnVuMihrZXl3b3Jk
cyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGtleXdvcmRzWyJYWVoiXSBpcyBub3QgTm9uZQot
ICAgICAgICAgICAgICAgIGFzc2VydCAiYWJjIiBub3QgaW4ga2V5d29yZHMKLSAgICAgICAgIiIi
Ci0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCi0KLQotY2xhc3MgVGVzdFJlcXVlc3RD
YWNoZWRTZXR1cChvYmplY3QpOgotCi0gICAgZGVmIHRlc3RfcmVxdWVzdF9jYWNoZWRzZXR1cF9k
ZWZhdWx0bW9kdWxlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW5zb3VyY2UoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIG15c2V0dXAgPSBb
ImhlbGxvIixdLnBvcAotCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5jYWNoZWRfc2V0dXAobXlzZXR1cCwgc2NvcGU9
Im1vZHVsZSIpCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKHNvbWV0aGluZyk6Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAiaGVsbG8iCi0gICAgICAgICAgICBjbGFz
cyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMWEoc2Vs
Ziwgc29tZXRoaW5nKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAi
aGVsbG8iCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRj
b21lKHBhc3NlZD0yKQotCi0gICAgZGVmIHRlc3RfcmVxdWVzdF9jYWNoZWRzZXR1cF9jbGFzcyhz
ZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNl
KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBteXNldHVwID0gWyJoZWxsbyIsICJoZWxs
bzIiLCAiaGVsbG8zIl0ucG9wCi0KLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToK
LSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5jYWNoZWRfc2V0dXAobXlzZXR1cCwgc2Nv
cGU9ImNsYXNzIikKLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKHNvbWV0aGluZyk6Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAiaGVsbG8zIgotICAgICAgICAgICAgZGVm
IHRlc3RfZnVuYzIoc29tZXRoaW5nKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgc29tZXRoaW5n
ID09ICJoZWxsbzIiCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jMWEoc2VsZiwgc29tZXRoaW5nKToKLSAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAiaGVsbG8iCi0gICAgICAgICAgICAgICAgZGVm
IHRlc3RfZnVuYzJiKHNlbGYsIHNvbWV0aGluZyk6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBzb21ldGhpbmcgPT0gImhlbGxvIgotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBy
ZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NCkKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2Fj
aGVkc2V0dXBfZXh0cmFrZXkoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIGl0ZW0xID0gdGVzdGRp
ci5nZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQotICAgICAgICByZXExID0gZml4dHVy
ZXMuRml4dHVyZVJlcXVlc3QoaXRlbTEpCi0gICAgICAgIHZhbHVlcyA9IFsiaGVsbG8iLCAid29y
bGQiXQotCi0gICAgICAgIGRlZiBzZXR1cCgpOgotICAgICAgICAgICAgcmV0dXJuIHZhbHVlcy5w
b3AoKQotCi0gICAgICAgIHJldDEgPSByZXExLmNhY2hlZF9zZXR1cChzZXR1cCwgZXh0cmFrZXk9
MSkKLSAgICAgICAgcmV0MiA9IHJlcTEuY2FjaGVkX3NldHVwKHNldHVwLCBleHRyYWtleT0yKQot
ICAgICAgICBhc3NlcnQgcmV0MiA9PSAiaGVsbG8iCi0gICAgICAgIGFzc2VydCByZXQxID09ICJ3
b3JsZCIKLSAgICAgICAgcmV0MWIgPSByZXExLmNhY2hlZF9zZXR1cChzZXR1cCwgZXh0cmFrZXk9
MSkKLSAgICAgICAgcmV0MmIgPSByZXExLmNhY2hlZF9zZXR1cChzZXR1cCwgZXh0cmFrZXk9MikK
LSAgICAgICAgYXNzZXJ0IHJldDEgPT0gcmV0MWIKLSAgICAgICAgYXNzZXJ0IHJldDIgPT0gcmV0
MmIKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FjaGVkc2V0dXBfY2FjaGVfZGVsZXRpb24oc2Vs
ZiwgdGVzdGRpcik6Ci0gICAgICAgIGl0ZW0xID0gdGVzdGRpci5nZXRpdGVtKCJkZWYgdGVzdF9m
dW5jKCk6IHBhc3MiKQotICAgICAgICByZXExID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRl
bTEpCi0gICAgICAgIHZhbHVlcyA9IFtdCi0KLSAgICAgICAgZGVmIHNldHVwKCk6Ci0gICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKCJzZXR1cCIpCi0KLSAgICAgICAgZGVmIHRlYXJkb3duKHZhbCk6
Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZWFyZG93biIpCi0KLSAgICAgICAgcmVxMS5j
YWNoZWRfc2V0dXAoc2V0dXAsIHRlYXJkb3duLCBzY29wZT0iZnVuY3Rpb24iKQotICAgICAgICBh
c3NlcnQgdmFsdWVzID09IFsic2V0dXAiXQotICAgICAgICAjIGFydGlmaWNpYWwgY2FsbCBvZiBm
aW5hbGl6ZXIKLSAgICAgICAgc2V0dXBzdGF0ZSA9IHJlcTEuX3B5ZnVuY2l0ZW0uc2Vzc2lvbi5f
c2V0dXBzdGF0ZQotICAgICAgICBzZXR1cHN0YXRlLl9jYWxsZmluYWxpemVycyhpdGVtMSkKLSAg
ICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbInNldHVwIiwgInRlYXJkb3duIl0KLSAgICAgICAgcmVx
MS5jYWNoZWRfc2V0dXAoc2V0dXAsIHRlYXJkb3duLCBzY29wZT0iZnVuY3Rpb24iKQotICAgICAg
ICBhc3NlcnQgdmFsdWVzID09IFsic2V0dXAiLCAidGVhcmRvd24iLCAic2V0dXAiXQotICAgICAg
ICBzZXR1cHN0YXRlLl9jYWxsZmluYWxpemVycyhpdGVtMSkKLSAgICAgICAgYXNzZXJ0IHZhbHVl
cyA9PSBbInNldHVwIiwgInRlYXJkb3duIiwgInNldHVwIiwgInRlYXJkb3duIl0KLQotICAgIGRl
ZiB0ZXN0X3JlcXVlc3RfY2FjaGVkX3NldHVwX3R3b19hcmdzKHNlbGYsIHRlc3RkaXIpOgotICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBk
ZWYgYXJnMShyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5jYWNoZWRf
c2V0dXAobGFtYmRhOiA0MikKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAg
ICAgZGVmIGFyZzIocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuY2Fj
aGVkX3NldHVwKGxhbWJkYTogMTcpCi0gICAgICAgICAgICBkZWYgdGVzdF90d29fZGlmZmVyZW50
X3NldHVwcyhhcmcxLCBhcmcyKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSAhPSBhcmcy
Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCItdiIpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3Nl
ZCoiXSkKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FjaGVkX3NldHVwX2dldGZpeHR1cmV2YWx1
ZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQotICAgICAgICAgICAgZGVmIGFyZzEocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAg
YXJnMSA9IHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJhcmcyIikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWVzdC5jYWNoZWRfc2V0dXAobGFtYmRhOiBhcmcxICsgMSkKLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGFyZzIocmVxdWVzdCk6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHJlcXVlc3QuY2FjaGVkX3NldHVwKGxhbWJkYTogMTApCi0gICAgICAg
ICAgICBkZWYgdGVzdF90d29fZnVuY2FyZyhhcmcxKToKLSAgICAgICAgICAgICAgICBhc3NlcnQg
YXJnMSA9PSAxMQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLXYiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyIqMSBwYXNzZWQqIl0pCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X2NhY2hlZF9zZXR1cF9mdW5j
dGlvbmFsKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAg
ICAgICAgICB0ZXN0XzA9IiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAg
ICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBk
ZWYgc29tZXRoaW5nKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHZhbCA9IHJlcXVlc3QuY2Fj
aGVkX3NldHVwKGZzZXR1cCwgZnRlYXJkb3duKQotICAgICAgICAgICAgICAgIHJldHVybiB2YWwK
LSAgICAgICAgICAgIGRlZiBmc2V0dXAobXljYWNoZT1bMV0pOgotICAgICAgICAgICAgICAgIHZh
bHVlcy5hcHBlbmQobXljYWNoZS5wb3AoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVz
Ci0gICAgICAgICAgICBkZWYgZnRlYXJkb3duKHNvbWV0aGluZyk6Ci0gICAgICAgICAgICAgICAg
dmFsdWVzLnJlbW92ZShzb21ldGhpbmdbMF0pCi0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVu
ZCgyKQotICAgICAgICAgICAgZGVmIHRlc3RfbGlzdF9vbmNlKHNvbWV0aGluZyk6Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSBbMV0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2xp
c3RfdHdpY2Uoc29tZXRoaW5nKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgc29tZXRoaW5nID09
IFsxXQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
Ci0gICAgICAgICAgICB0ZXN0XzE9IiIiCi0gICAgICAgICAgICBpbXBvcnQgdGVzdF8wICMgc2hv
dWxkIGhhdmUgcnVuIGFscmVhZHkKLSAgICAgICAgICAgIGRlZiB0ZXN0X2NoZWNrX3Rlc3QwX2hh
c190ZWFyZG93bl9jb3JyZWN0KCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHRlc3RfMC52YWx1
ZXMgPT0gWzJdCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItdiIpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
IiozIHBhc3NlZCoiXSkKLQotICAgIGRlZiB0ZXN0X2lzc3VlMTE3X3Nlc3Npb25zY29wZXRlYXJk
b3duKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAg
ICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgYXBwKHJlcXVlc3QpOgotICAgICAgICAgICAgICAg
IGFwcCA9IHJlcXVlc3QuY2FjaGVkX3NldHVwKAotICAgICAgICAgICAgICAgICAgICBzY29wZT0n
c2Vzc2lvbicsCi0gICAgICAgICAgICAgICAgICAgIHNldHVwPWxhbWJkYTogMCwKLSAgICAgICAg
ICAgICAgICAgICAgdGVhcmRvd249bGFtYmRhIHg6IDMveCkKLSAgICAgICAgICAgICAgICByZXR1
cm4gYXBwCi0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jKGFwcCk6Ci0gICAgICAgICAgICAgICAg
cGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCi0gICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKLSAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjMveCoiLCAiKlplcm9EaXZpc2lvbkVycm9yKiJdKQot
Ci0KLWNsYXNzIFRlc3RGaXh0dXJlVXNhZ2VzKG9iamVjdCk6Ci0KLSAgICBkZWYgdGVzdF9ub2Fy
Z2ZpeHR1cmVkZWMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
LSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgYXJnMSgpOgotICAgICAgICAgICAgICAg
IHJldHVybiAxCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoYXJnMSk6Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0IGFyZzEgPT0gMQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBy
ZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9MSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVzX2Z1bmNhcmdzKHNlbGYsIHRlc3Rk
aXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCi0gICAg
ICAgICAgICBkZWYgYXJnMSgpOgotICAgICAgICAgICAgICAgIHJldHVybiAxCi0KLSAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZSgpCi0gICAgICAgICAgICBkZWYgYXJnMihhcmcxKToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gYXJnMSArIDEKLQotICAgICAgICAgICAgZGVmIHRlc3RfYWRkKGFy
ZzIpOgotICAgICAgICAgICAgICAgIGFzc2VydCBhcmcyID09IDIKLSAgICAgICAgICAgIGRlZiB0
ZXN0X2FsbChhcmcxLCBhcmcyKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9PSAxCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzIgPT0gMgotICAgICAgICAiIiIKLSAgICAgICAgKQot
ICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNz
ZXJ0b3V0Y29tZShwYXNzZWQ9MikKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVzX2Z1bmNhcmdzX3Nj
b3BlX21pc21hdGNoKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
Ci0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iKQotICAgICAgICAgICAgZGVmIGFyZzEo
KToKLSAgICAgICAgICAgICAgICByZXR1cm4gMQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9Im1vZHVsZSIpCi0gICAgICAgICAgICBkZWYgYXJnMihhcmcxKToKLSAgICAgICAg
ICAgICAgICByZXR1cm4gYXJnMSArIDEKLQotICAgICAgICAgICAgZGVmIHRlc3RfYWRkKGFyZzIp
OgotICAgICAgICAgICAgICAgIGFzc2VydCBhcmcyID09IDIKLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgIipT
Y29wZU1pc21hdGNoKmludm9sdmVkIGZhY3RvcmllcyoiLAotICAgICAgICAgICAgICAgICIqIGRl
ZiBhcmcyKiIsCi0gICAgICAgICAgICAgICAgIiogZGVmIGFyZzEqIiwKLSAgICAgICAgICAgICAg
ICAiKjEgZXJyb3IqIiwKLSAgICAgICAgICAgIF0KLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rf
cmVjZWl2ZXNfZnVuY2FyZ3Nfc2NvcGVfbWlzbWF0Y2hfaXNzdWU2NjAoc2VsZiwgdGVzdGRpcik6
Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5j
dGlvbiIpCi0gICAgICAgICAgICBkZWYgYXJnMSgpOgotICAgICAgICAgICAgICAgIHJldHVybiAx
Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKLSAgICAgICAg
ICAgIGRlZiBhcmcyKGFyZzEpOgotICAgICAgICAgICAgICAgIHJldHVybiBhcmcxICsgMQotCi0g
ICAgICAgICAgICBkZWYgdGVzdF9hZGQoYXJnMSwgYXJnMik6Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0IGFyZzIgPT0gMgotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygK
LSAgICAgICAgICAgIFsiKlNjb3BlTWlzbWF0Y2gqaW52b2x2ZWQgZmFjdG9yaWVzKiIsICIqIGRl
ZiBhcmcyKiIsICIqMSBlcnJvcioiXQotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlk
X3Njb3BlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb25zIikKLSAgICAgICAgICAgIGRlZiBiYWRzY29wZSgp
OgotICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICAgICAgZGVmIHRlc3Rfbm90aGluZyhi
YWRzY29wZSk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQot
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9pbnByb2Nlc3MoKQotICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAoCi0gICAgICAgICAgICAg
ICAgIipWYWx1ZUVycm9yOiBmaXh0dXJlIGJhZHNjb3BlIGZyb20gdGVzdF9pbnZhbGlkX3Njb3Bl
LnB5IGhhcyBhbiB1bnN1cHBvcnRlZCIKLSAgICAgICAgICAgICAgICAiIHNjb3BlIHZhbHVlICdm
dW5jdGlvbnMnIgotICAgICAgICAgICAgKQotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9mdW5j
YXJnX3BhcmFtZXRyaXplZF9hbmRfdXNlZF90d2ljZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0Ci0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHBhcmFtcz1bMSwyXSkKLSAgICAgICAgICAgIGRlZiBhcmcxKHJlcXVlc3QpOgotICAgICAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVz
dC5wYXJhbQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQotICAgICAgICAgICAgZGVm
IGFyZzIoYXJnMSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGFyZzEgKyAxCi0KLSAgICAgICAg
ICAgIGRlZiB0ZXN0X2FkZChhcmcxLCBhcmcyKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgYXJn
MiA9PSBhcmcxICsgMQotICAgICAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSBhcmcx
Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjIgcGFzc2VkKiJd
KQotCi0gICAgZGVmIHRlc3RfZmFjdG9yeV91c2VzX3Vua25vd25fZnVuY2FyZ19hc19kZXBlbmRl
bmN5X2Vycm9yKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKCkKLSAgICAgICAgICAgIGRlZiBmYWlsKG1pc3NpbmcpOgotICAgICAg
ICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQotICAgICAg
ICAgICAgZGVmIGNhbGxfZmFpbChmYWlsKToKLSAgICAgICAgICAgICAgICByZXR1cm4KLQotICAg
ICAgICAgICAgZGVmIHRlc3RfbWlzc2luZyhjYWxsX2ZhaWwpOgotICAgICAgICAgICAgICAgIHBh
c3MKLSAgICAgICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICAqcHl0ZXN0LmZpeHR1cmUoKSoKLSAgICAgICAgICAgICpk
ZWYgY2FsbF9mYWlsKGZhaWwpKgotICAgICAgICAgICAgKnB5dGVzdC5maXh0dXJlKCkqCi0gICAg
ICAgICAgICAqZGVmIGZhaWwqCi0gICAgICAgICAgICAqZml4dHVyZSonbWlzc2luZycqbm90IGZv
dW5kKgotICAgICAgICAiIiIKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfZmFjdG9yeV9zZXR1
cF9hc19jbGFzc2VzX2ZhaWxzKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAg
ICAgICAgIGNsYXNzIGFyZzEob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgX19pbml0X18o
c2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYueCA9IDEKLSAgICAgICAg
ICAgIGFyZzEgPSBweXRlc3QuZml4dHVyZSgpKGFyZzEpCi0KLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgdmFsdWVz
ID0gcmVwcmVjLmdldGZhaWxlZGNvbGxlY3Rpb25zKCkKLSAgICAgICAgYXNzZXJ0IGxlbih2YWx1
ZXMpID09IDEKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FuX2JlX292ZXJyaWRkZW4oc2VsZiwg
dGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgot
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkK
LSAgICAgICAgICAgIGRlZiByZXF1ZXN0KHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJlcXVl
c3QuYSA9IDEKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdAotICAgICAgICAgICAgZGVm
IHRlc3RfcmVxdWVzdChyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5h
ID09IDEKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAg
ICBkZWYgdGVzdF91c2VmaXh0dXJlc19tYXJrZXIoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAotCi0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9ImNsYXNzIikKLSAgICAgICAgICAgIGRlZiBteWZpeChyZXF1ZXN0KToKLSAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNscy5oZWxsbyA9ICJ3b3JsZCIKLSAgICAgICAgICAgICAg
ICB2YWx1ZXMuYXBwZW5kKDEpCi0KLSAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3Qp
OgotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X29uZShzZWxmKToKLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgbGVuKHZhbHVlcykgPT0gMQotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxmKToK
LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQotICAgICAgICAgICAgcHl0ZXN0
Lm1hcmsudXNlZml4dHVyZXMoIm15Zml4IikoVGVzdENsYXNzKQotICAgICAgICAiIiIKLSAgICAg
ICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKLQotICAgIGRlZiB0ZXN0X3VzZWZpeHR1cmVzX2lu
aShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlaW5pKAotICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICBbcHl0ZXN0XQotICAgICAgICAgICAgdXNlZml4dHVyZXMgPSBteWZp
eAotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgK
LSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIikKLSAgICAgICAgICAgIGRlZiBteWZpeChy
ZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmNscy5oZWxsbyA9ICJ3b3JsZCIKLQot
ICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgotICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X29uZShzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IHNlbGYuaGVsbG8gPT0gIndvcmxkIgotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxm
KToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgotICAg
ICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
KQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKLQotICAgIGRlZiB0ZXN0
X3VzZWZpeHR1cmVzX3NlZW5faW5fc2hvd21hcmtlcnMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLW1hcmtlcnMiKQotICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICp1c2Vm
aXh0dXJlcyhmaXh0dXJlbmFtZTEqbWFyayB0ZXN0cypmaXh0dXJlcyoKLSAgICAgICAgIiIiCi0g
ICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfaW5zdGFuY2VfaXNzdWUyMDMoc2VsZiwg
dGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgot
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mo
b2JqZWN0KToKLSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgICAg
ICBkZWYgc2V0dXAxKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
c2VsZiA9PSByZXF1ZXN0Lmluc3RhbmNlCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuYXJnMSA9
IDEKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmLCBzZXR1cDEpOgotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5hcmcxID09IDEKLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVj
LmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9maXh0dXJlX3BhcmFtZXRy
aXplZF93aXRoX2l0ZXJhdG9yKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAg
ICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIGRlZiBmKCk6Ci0gICAgICAgICAgICAg
ICAgeWllbGQgMQotICAgICAgICAgICAgICAgIHlpZWxkIDIKLSAgICAgICAgICAgIGRlYyA9IHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9ZigpKQotCi0gICAgICAgICAgICBA
ZGVjCi0gICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVy
biByZXF1ZXN0LnBhcmFtCi0gICAgICAgICAgICBAZGVjCi0gICAgICAgICAgICBkZWYgYXJnMihy
ZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAg
ICAgICBkZWYgdGVzdF8xKGFyZyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcp
Ci0gICAgICAgICAgICBkZWYgdGVzdF8yKGFyZzIpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5h
cHBlbmQoYXJnMioxMCkKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCItdiIpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD00KQotICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0
X2NhbGwiKVswXS5pdGVtLm1vZHVsZS52YWx1ZXMKLSAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBb
MSwgMiwgMTAsIDIwXQotCi0KLWNsYXNzIFRlc3RGaXh0dXJlTWFuYWdlclBhcnNlRmFjdG9yaWVz
KG9iamVjdCk6Ci0KLSAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICBkZWYgdGVzdGRpcihzZWxmLCBy
ZXF1ZXN0KToKLSAgICAgICAgdGVzdGRpciA9IHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJ0ZXN0
ZGlyIikKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0g
ICAgICAgICAgICBkZWYgaGVsbG8ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJj
b25mdGVzdCIKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYg
Zm0ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuX2ZpeHR1cmVtYW5h
Z2VyCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGl0ZW0o
cmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuX3B5ZnVuY2l0ZW0KLSAg
ICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmV0dXJuIHRlc3RkaXIKLQotICAgIGRlZiB0
ZXN0X3BhcnNlZmFjdG9yaWVzX2V2aWxfb2JqZWN0c19pc3N1ZTIxNChzZWxmLCB0ZXN0ZGlyKToK
LSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAg
ICBjbGFzcyBBKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgot
ICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9f
KHNlbGYsIG5hbWUpOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoKQot
ICAgICAgICAgICAgYSA9IEEoKQotICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKLSAgICAg
ICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0xLCBmYWlsZWQ9MCkKLQotICAgIGRlZiB0ZXN0X3BhcnNlZmFjdG9yaWVzX2NvbmZ0ZXN0KHNl
bGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAi
IiIKLSAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGl0ZW0sIGZtKToKLSAgICAgICAgICAgICAg
ICBmb3IgbmFtZSBpbiAoImZtIiwgImhlbGxvIiwgIml0ZW0iKToKLSAgICAgICAgICAgICAgICAg
ICAgZmFjbGlzdCA9IGZtLmdldGZpeHR1cmVkZWZzKG5hbWUsIGl0ZW0ubm9kZWlkKQotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgbGVuKGZhY2xpc3QpID09IDEKLSAgICAgICAgICAgICAgICAg
ICAgZmFjID0gZmFjbGlzdFswXQotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFjLmZ1bmMu
X19uYW1lX18gPT0gbmFtZQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9wYXJzZWZhY3Rvcmllc19jb25mdGVzdF9hbmRfbW9k
dWxlX2FuZF9jbGFzcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGhlbGxvKHJlcXVlc3QpOgotICAg
ICAgICAgICAgICAgIHJldHVybiAibW9kdWxlIgotICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNz
KG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICAg
ICAgZGVmIGhlbGxvKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ImNsYXNzIgotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYsIGl0ZW0sIGZtKToK
LSAgICAgICAgICAgICAgICAgICAgZmFjbGlzdCA9IGZtLmdldGZpeHR1cmVkZWZzKCJoZWxsbyIs
IGl0ZW0ubm9kZWlkKQotICAgICAgICAgICAgICAgICAgICBwcmludCAoZmFjbGlzdCkKLSAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihmYWNsaXN0KSA9PSAzCi0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydCBmYWNsaXN0WzBdLmZ1bmMoaXRlbS5fcmVxdWVzdCkgPT0gImNvbmZ0ZXN0Igot
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFjbGlzdFsxXS5mdW5jKGl0ZW0uX3JlcXVlc3Qp
ID09ICJtb2R1bGUiCi0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWNsaXN0WzJdLmZ1bmMo
aXRlbS5fcmVxdWVzdCkgPT0gImNsYXNzIgotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKLSAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9wYXJzZWZhY3Rvcmllc19yZWxhdGl2
ZV9ub2RlX2lkcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIyBleGFtcGxlIG1vc3RseSB0YWtl
biBmcm9tOgotICAgICAgICAjIGh0dHBzOi8vbWFpbC5weXRob24ub3JnL3BpcGVybWFpbC9weXRl
c3QtZGV2LzIwMTQtU2VwdGVtYmVyLzAwMjYxNy5odG1sCi0gICAgICAgIHJ1bm5lciA9IHRlc3Rk
aXIubWtkaXIoInJ1bm5lciIpCi0gICAgICAgIHBhY2thZ2UgPSB0ZXN0ZGlyLm1rZGlyKCJwYWNr
YWdlIikKLSAgICAgICAgcGFja2FnZS5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAg
ICAgICAgZGVkZW50KAotICAgICAgICAgICAgICAgICIiIlwKLSAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIG9uZSgp
OgotICAgICAgICAgICAgICAgIHJldHVybiAxCi0gICAgICAgICIiIgotICAgICAgICAgICAgKQot
ICAgICAgICApCi0gICAgICAgIHBhY2thZ2Uuam9pbigidGVzdF94LnB5Iikud3JpdGUoCi0gICAg
ICAgICAgICBkZWRlbnQoCi0gICAgICAgICAgICAgICAgIiIiXAotICAgICAgICAgICAgZGVmIHRl
c3RfeChvbmUpOgotICAgICAgICAgICAgICAgIGFzc2VydCBvbmUgPT0gMQotICAgICAgICAiIiIK
LSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICBzdWIgPSBwYWNrYWdlLm1rZGlyKCJz
dWIiKQotICAgICAgICBzdWIuam9pbigiX19pbml0X18ucHkiKS5lbnN1cmUoKQotICAgICAgICBz
dWIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgICAgIGRlZGVudCgKLSAgICAg
ICAgICAgICAgICAiIiJcCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBvbmUoKToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gMgotICAgICAgICAiIiIKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICBz
dWIuam9pbigidGVzdF95LnB5Iikud3JpdGUoCi0gICAgICAgICAgICBkZWRlbnQoCi0gICAgICAg
ICAgICAgICAgIiIiXAotICAgICAgICAgICAgZGVmIHRlc3RfeChvbmUpOgotICAgICAgICAgICAg
ICAgIGFzc2VydCBvbmUgPT0gMgotICAgICAgICAiIiIKLSAgICAgICAgICAgICkKLSAgICAgICAg
KQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMu
YXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKLSAgICAgICAgd2l0aCBydW5uZXIuYXNfY3dkKCk6Ci0g
ICAgICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi4uIikKLSAgICAgICAgICAg
IHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQotCi0KLWNsYXNzIFRlc3RBdXRvdXNlRGlz
Y292ZXJ5KG9iamVjdCk6Ci0KLSAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICBkZWYgdGVzdGRpcihz
ZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAg
ICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICBkZWYgcGVyZnVuY3Rpb24ocmVxdWVzdCwg
dG1wZGlyKToKLSAgICAgICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZSgpCi0gICAgICAgICAgICBkZWYgYXJnMSh0bXBkaXIpOgotICAgICAgICAgICAgICAgIHBh
c3MKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAg
ICBkZWYgcGVyZnVuY3Rpb24yKGFyZzEpOgotICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgZm0ocmVxdWVzdCk6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuX2ZpeHR1cmVtYW5hZ2VyCi0KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGl0ZW0ocmVxdWVzdCk6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHJlcXVlc3QuX3B5ZnVuY2l0ZW0KLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLSAgICAgICAgcmV0dXJuIHRlc3RkaXIKLQotICAgIGRlZiB0ZXN0X3BhcnNlZmFjdG9yaWVz
X2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGZyb20gX3B5dGVzdC5weXRlc3RlciBpbXBvcnQg
Z2V0X3B1YmxpY19uYW1lcwotICAgICAgICAgICAgZGVmIHRlc3RfY2hlY2tfc2V0dXAoaXRlbSwg
Zm0pOgotICAgICAgICAgICAgICAgIGF1dG91c2VuYW1lcyA9IGZtLl9nZXRhdXRvdXNlbmFtZXMo
aXRlbS5ub2RlaWQpCi0gICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihnZXRfcHVibGljX25hbWVz
KGF1dG91c2VuYW1lcykpID09IDIKLSAgICAgICAgICAgICAgICBhc3NlcnQgInBlcmZ1bmN0aW9u
MiIgaW4gYXV0b3VzZW5hbWVzCi0gICAgICAgICAgICAgICAgYXNzZXJ0ICJwZXJmdW5jdGlvbiIg
aW4gYXV0b3VzZW5hbWVzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bigiLXMiKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShw
YXNzZWQ9MSkKLQotICAgIGRlZiB0ZXN0X3R3b19jbGFzc2VzX3NlcGFyYXRlZF9hdXRvdXNlKHNl
bGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAi
IiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIGNsYXNzIFRlc3RBKG9i
amVjdCk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgICAgIGRlZiBzZXR1cDEoc2Vs
Zik6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYudmFsdWVzLmFwcGVuZCgxKQotICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0X3NldHVwMShzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IHNlbGYudmFsdWVzID09IFsxXQotICAgICAgICAgICAgY2xhc3MgVGVzdEIob2JqZWN0KToKLSAg
ICAgICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICAgICAgZGVmIHNldHVwMihzZWxmKToKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi52YWx1ZXMuYXBwZW5kKDEpCi0gICAgICAgICAgICAgICAgZGVm
IHRlc3Rfc2V0dXAyKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi52YWx1
ZXMgPT0gWzFdCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3Rk
aXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQot
Ci0gICAgZGVmIHRlc3Rfc2V0dXBfYXRfY2xhc3NsZXZlbChzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgICAgIGRl
ZiBwZXJtZXRob2Qoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
aW5zdGFuY2UuZnVuY25hbWUgPSByZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fCi0gICAgICAgICAg
ICAgICAgZGVmIHRlc3RfbWV0aG9kMShzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IHNlbGYuZnVuY25hbWUgPT0gInRlc3RfbWV0aG9kMSIKLSAgICAgICAgICAgICAgICBkZWYgdGVz
dF9tZXRob2QyKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5mdW5jbmFt
ZSA9PSAidGVzdF9tZXRob2QyIgotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPTIpCi0KLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSInZW5hYmxlZCcg
ZmVhdHVyZSBub3QgaW1wbGVtZW50ZWQiKQotICAgIGRlZiB0ZXN0X3NldHVwX2VuYWJsZWRfZnVu
Y3Rpb25ub2RlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAg
ZGVmIGVuYWJsZWQocGFyZW50bm9kZSwgbWFya2Vycyk6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
ICJuZWVkc2RiIiBpbiBtYXJrZXJzCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJh
bXM9WzEsMl0pCi0gICAgICAgICAgICBkZWYgZGIocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGVuYWJs
ZWQ9ZW5hYmxlZCwgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIGNyZWF0ZWRiKGRiKToK
LSAgICAgICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKHJlcXVl
c3QpOgotICAgICAgICAgICAgICAgIGFzc2VydCAiZGIiIG5vdCBpbiByZXF1ZXN0LmZpeHR1cmVu
YW1lcwotCi0gICAgICAgICAgICBAcHl0ZXN0Lm1hcmsubmVlZHNkYgotICAgICAgICAgICAgZGVm
IHRlc3RfZnVuYzIocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0ICJkYiIgaW4gcmVx
dWVzdC5maXh0dXJlbmFtZXMKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KHBhc3NlZD0yKQotCi0gICAgZGVmIHRlc3RfY2FsbGFibGVzX25vY29kZShzZWxmLCB0ZXN0ZGly
KToKLSAgICAgICAgIiIiCi0gICAgICAgIGFuIGltcG9ydGVkIG1vY2suY2FsbCB3b3VsZCBicmVh
ayBzZXR1cC9mYWN0b3J5IGRpc2NvdmVyeQotICAgICAgICBkdWUgdG8gaXQgYmVpbmcgY2FsbGFi
bGUgYW5kIF9fY29kZV9fIG5vdCBiZWluZyBhIGNvZGUgb2JqZWN0Ci0gICAgICAgICIiIgotICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgY2xh
c3MgX2NhbGwodHVwbGUpOgotICAgICAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYsICprLCAq
Kmt3KToKLSAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICAgICBkZWYgX19nZXRh
dHRyX18oc2VsZiwgayk6Ci0gICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgICAg
ICAgICBjYWxsID0gX2NhbGwoKQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUoZmFpbGVkPTAsIHBhc3NlZD0wKQotCi0gICAgZGVmIHRlc3RfYXV0b3VzZV9pbl9jb25mdGVz
dHMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIGEgPSB0ZXN0ZGlyLm1rZGlyKCJhIikKLSAgICAg
ICAgYiA9IHRlc3RkaXIubWtkaXIoImExIikKLSAgICAgICAgY29uZnRlc3QgPSB0ZXN0ZGlyLm1h
a2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAot
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRl
ZiBoZWxsbygpOgotICAgICAgICAgICAgICAgIHh4eAotICAgICAgICAiIiIKLSAgICAgICAgKQot
ICAgICAgICBjb25mdGVzdC5tb3ZlKGEuam9pbihjb25mdGVzdC5iYXNlbmFtZSkpCi0gICAgICAg
IGEuam9pbigidGVzdF9zb21ldGhpbmcucHkiKS53cml0ZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNz
IikKLSAgICAgICAgYi5qb2luKCJ0ZXN0X290aGVydGhpbmcucHkiKS53cml0ZSgiZGVmIHRlc3Rf
ZnVuYygpOiBwYXNzIikKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgICoxIHBhc3NlZCoxIGVycm9yKgotICAgICAgICAiIiIKLSAgICAgICAgKQotCi0gICAg
ZGVmIHRlc3RfYXV0b3VzZV9pbl9tb2R1bGVfYW5kX3R3b19jbGFzc2VzKHNlbGYsIHRlc3RkaXIp
OgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIGFwcGVuZDEoKToK
LSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJtb2R1bGUiKQotICAgICAgICAgICAgZGVm
IHRlc3RfeCgpOgotICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJtb2R1bGUiXQot
Ci0gICAgICAgICAgICBjbGFzcyBUZXN0QShvYmplY3QpOgotICAgICAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICAgICAgZGVmIGFwcGVuZDIoc2Vs
Zik6Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIkEiKQotICAgICAgICAgICAg
ICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFs
dWVzID09IFsibW9kdWxlIiwgIm1vZHVsZSIsICJBIl0sIHZhbHVlcwotICAgICAgICAgICAgY2xh
c3MgVGVzdEEyKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgZGVmIHRlc3Rfd29ybGQoc2VsZik6
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJtb2R1bGUiLCAibW9kdWxl
IiwgIkEiLCAibW9kdWxlIl0sIHZhbHVlcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShwYXNzZWQ9MykKLQotCi1jbGFzcyBUZXN0QXV0b3VzZU1hbmFnZW1lbnQob2JqZWN0KToK
LQotICAgIGRlZiB0ZXN0X2F1dG91c2VfY29uZnRlc3RfbWlkX2RpcmVjdG9yeShzZWxmLCB0ZXN0
ZGlyKToKLSAgICAgICAgcGtnZGlyID0gdGVzdGRpci5ta3B5ZGlyKCJ4eXoxMjMiKQotICAgICAg
ICBwa2dkaXIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3Qu
X2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKLSAgICAgICAg
ICAgIGRlZiBhcHAoKToKLSAgICAgICAgICAgICAgICBpbXBvcnQgc3lzCi0gICAgICAgICAgICAg
ICAgc3lzLl9teWFwcCA9ICJoZWxsbyIKLSAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAg
ICAgICkKLSAgICAgICAgdCA9IHBrZ2Rpci5lbnN1cmUoInRlc3RzIiwgInRlc3RfYXBwLnB5IikK
LSAgICAgICAgdC53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAg
ICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHN5cwotICAgICAgICAgICAgZGVm
IHRlc3RfYXBwKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHN5cy5fbXlhcHAgPT0gImhlbGxv
IgotICAgICAgICAiIiIKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTEpCi0KLSAgICBkZWYgdGVzdF9hdXRvdXNlX2hvbm9yZWRfZm9yX3lpZWxkKHNlbGYs
IHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIK
LSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShh
dXRvdXNlPVRydWUpCi0gICAgICAgICAgICBkZWYgdHN0KCk6Ci0gICAgICAgICAgICAgICAgZ2xv
YmFsIHgKLSAgICAgICAgICAgICAgICB4ID0gMwotICAgICAgICAgICAgZGVmIHRlc3RfZ2VuKCk6
Ci0gICAgICAgICAgICAgICAgZGVmIGYoaGVsbG8pOgotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgeCA9PSBhYnMoaGVsbG8pCi0gICAgICAgICAgICAgICAgeWllbGQgZiwgMwotICAgICAgICAg
ICAgICAgIHlpZWxkIGYsIC0zCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD0yKQotCi0gICAgZGVmIHRlc3RfZnVuY2FyZ19hbmRfc2V0dXAoc2VsZiwgdGVzdGRpcik6
Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKLSAgICAgICAgICAgIGRlZiBhcmcoKToKLSAg
ICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDAK
LSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgYXV0b3VzZT1UcnVl
KQotICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhhcmcpOgotICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoMikKLQotICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oYXJnKToKLSAgICAgICAg
ICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMgotICAgICAgICAgICAgICAgIGFzc2VydCB2
YWx1ZXMgPT0gWzEsMl0KLSAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDAKLQotICAgICAg
ICAgICAgZGVmIHRlc3RfaGVsbG8yKGFyZyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2
YWx1ZXMpID09IDIKLSAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLDJdCi0gICAg
ICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAwCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKHBhc3NlZD0yKQotCi0gICAgZGVmIHRlc3RfdXNlc19wYXJhbWV0cml6ZWRfcmVzb3Vy
Y2Uoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAg
ICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgdmFsdWVzID0g
W10KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsMl0pCi0gICAgICAgICAg
ICBkZWYgYXJnKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFt
Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCi0gICAgICAgICAg
ICBkZWYgc29tZXRoaW5nKGFyZyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcp
Ci0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6Ci0gICAgICAgICAgICAgICAgaWYgbGVu
KHZhbHVlcykgPT0gMToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMV0K
LSAgICAgICAgICAgICAgICBlbGlmIGxlbih2YWx1ZXMpID09IDI6Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsIDJdCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAgICAgMC8wCi0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRj
b21lKHBhc3NlZD0yKQotCi0gICAgZGVmIHRlc3Rfc2Vzc2lvbl9wYXJhbWV0cml6ZWRfZnVuY3Rp
b24oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAg
ICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICB2YWx1ZXMg
PSBbXQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iLCBwYXJh
bXM9WzEsMl0pCi0gICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgotICAgICAgICAgICAgICAg
cmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSJmdW5jdGlvbiIsIGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBhcHBlbmQocmVxdWVz
dCwgYXJnKToKLSAgICAgICAgICAgICAgICBpZiByZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fID09
ICJ0ZXN0X3NvbWUiOgotICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKLQot
ICAgICAgICAgICAgZGVmIHRlc3Rfc29tZSgpOgotICAgICAgICAgICAgICAgIHBhc3MKLQotICAg
ICAgICAgICAgZGVmIHRlc3RfcmVzdWx0KGFyZyk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGxl
bih2YWx1ZXMpID09IGFyZwotICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXNbOmFyZ10gPT0g
WzEsMl1bOmFyZ10KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVz
dGRpci5pbmxpbmVfcnVuKCItdiIsICItcyIpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KHBhc3NlZD00KQotCi0gICAgZGVmIHRlc3RfY2xhc3NfZnVuY3Rpb25fcGFyYW1ldHJpemF0aW9u
X2ZpbmFsaXphdGlvbihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgcCA9IHRlc3RkaXIubWFrZWNv
bmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAg
ICAgICAgICBpbXBvcnQgcHByaW50Ci0KLSAgICAgICAgICAgIHZhbHVlcyA9IFtdCi0KLSAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBwYXJhbXM9WzEsMl0pCi0g
ICAgICAgICAgICBkZWYgZmFyZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVx
dWVzdC5wYXJhbQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIiwg
cGFyYW1zPWxpc3QoImFiIikpCi0gICAgICAgICAgICBkZWYgY2FyZyhyZXF1ZXN0KToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIGFw
cGVuZChyZXF1ZXN0LCBmYXJnLCBjYXJnKToKLSAgICAgICAgICAgICAgICBkZWYgZmluKCk6Ci0g
ICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoImZpbl8lcyVzIiAlIChjYXJnLCBmYXJn
KSkKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihmaW4pCi0gICAgICAgICIi
IgotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIi
IgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xh
c3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF8xKHNlbGYpOgotICAgICAgICAg
ICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3MyKG9iamVjdCk6Ci0g
ICAgICAgICAgICAgICAgZGVmIHRlc3RfMihzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgcGFz
cwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBjb25mY3V0ID0gIi0tY29uZmN1dGRp
cj17fSIuZm9ybWF0KHRlc3RkaXIudG1wZGlyKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4oIi12IiwgIi1zIiwgY29uZmN1dCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPTgpCi0gICAgICAgIGNvbmZpZyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3Vu
Y29uZmlndXJlIilbMF0uY29uZmlnCi0gICAgICAgIHZhbHVlcyA9IGNvbmZpZy5wbHVnaW5tYW5h
Z2VyLl9nZXRjb25mdGVzdG1vZHVsZXMocClbMF0udmFsdWVzCi0gICAgICAgIGFzc2VydCB2YWx1
ZXMgPT0gWyJmaW5fYTEiLCAiZmluX2EyIiwgImZpbl9iMSIsICJmaW5fYjIiXSAqIDIKLQotICAg
IGRlZiB0ZXN0X3Njb3BlX29yZGVyaW5nKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
LSAgICAgICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9ImZ1bmN0aW9uIiwgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIGZhcHBlbmQyKCk6
Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgyKQotICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSJjbGFzcyIsIGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBjbGFz
c2FwcGVuZDMoKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDMpCi0gICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIGF1dG91c2U9VHJ1ZSkKLSAgICAgICAg
ICAgIGRlZiBtYXBwZW5kKCk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQotCi0g
ICAgICAgICAgICBjbGFzcyBUZXN0SGFsbG8ob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYg
dGVzdF9tZXRob2Qoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0g
WzEsMywyXQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKLQot
ICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXphdGlvbl9zZXR1cF90ZWFyZG93bl9vcmRlcmluZyhzZWxm
LCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIi
Ci0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAg
ICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAgICAgICAg
ICAgICAgaWYgbWV0YWZ1bmMuY2xzIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBtZXRhZnVuYy5mdW5jdGlvbiBpcyB0ZXN0X2ZpbmlzaAotICAgICAgICAgICAgICAgIGlmIG1l
dGFmdW5jLmNscyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFy
YW1ldHJpemUoIml0ZW0iLCBbMSwyXSwgc2NvcGU9ImNsYXNzIikKLSAgICAgICAgICAgIGNsYXNz
IFRlc3RDbGFzcyhvYmplY3QpOgotICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0iY2xhc3MiLCBhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICAgICAgZGVmIGFkZHRlYXJkb3du
KHNlbGYsIGl0ZW0sIHJlcXVlc3QpOgotICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KCJzZXR1cC0lZCIgJSBpdGVtKQotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFs
aXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoInRlYXJkb3duLSVkIiAlIGl0ZW0pKQotICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X3N0ZXAxKHNlbGYsIGl0ZW0pOgotICAgICAgICAgICAgICAgICAg
ICB2YWx1ZXMuYXBwZW5kKCJzdGVwMS0lZCIgJSBpdGVtKQotICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X3N0ZXAyKHNlbGYsIGl0ZW0pOgotICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KCJzdGVwMi0lZCIgJSBpdGVtKQotCi0gICAgICAgICAgICBkZWYgdGVzdF9maW5pc2goKToKLSAg
ICAgICAgICAgICAgICBwcmludCAodmFsdWVzKQotICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1
ZXMgPT0gWyJzZXR1cC0xIiwgInN0ZXAxLTEiLCAic3RlcDItMSIsICJ0ZWFyZG93bi0xIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNldHVwLTIiLCAic3RlcDEtMiIsICJzdGVwMi0y
IiwgInRlYXJkb3duLTIiLF0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KHBhc3NlZD01KQotCi0gICAgZGVmIHRlc3Rfb3JkZXJpbmdfYXV0b3VzZV9iZWZvcmVfZXhwbGlj
aXQoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAg
ICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICB2YWx1ZXMg
PSBbXQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKLSAgICAgICAg
ICAgIGRlZiBmaXgxKCk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQotICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKCkKLSAgICAgICAgICAgIGRlZiBhcmcxKCk6Ci0gICAgICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZCgyKQotICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oYXJn
MSk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwyXQotICAgICAgICAiIiIK
LSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKLQotICAgIEBweXRlc3QubWFyay5pc3N1
ZTIyNgotICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGFyYW0xIiwgWyIiLCAicGFyYW1z
PVsxXSJdLCBpZHM9WyJwMDAiLCAicDAxIl0pCi0gICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJwYXJhbTIiLCBbIiIsICJwYXJhbXM9WzFdIl0sIGlkcz1bInAxMCIsICJwMTEiXSkKLSAgICBk
ZWYgdGVzdF9vcmRlcmluZ19kZXBlbmRlbmNpZXNfdG9ybmRvd25fZmlyc3Qoc2VsZiwgdGVzdGRp
ciwgcGFyYW0xLCBwYXJhbTIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAg
ICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIHZhbHVlcyA9
IFtdCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoJShwYXJhbTEpcykKLSAgICAgICAgICAg
IGRlZiBhcmcxKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy
KGxhbWJkYTogdmFsdWVzLmFwcGVuZCgiZmluMSIpKQotICAgICAgICAgICAgICAgIHZhbHVlcy5h
cHBlbmQoIm5ldzEiKQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCUocGFyYW0yKXMpCi0g
ICAgICAgICAgICBkZWYgYXJnMihyZXF1ZXN0LCBhcmcxKToKLSAgICAgICAgICAgICAgICByZXF1
ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbjIiKSkKLSAgICAgICAg
ICAgICAgICB2YWx1ZXMuYXBwZW5kKCJuZXcyIikKLQotICAgICAgICAgICAgZGVmIHRlc3RfYXJn
KGFyZzIpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGRlZiB0ZXN0X2NoZWNr
KCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbIm5ldzEiLCAibmV3MiIsICJm
aW4yIiwgImZpbjEiXQotICAgICAgICAiIiIKLSAgICAgICAgICAgICUgbG9jYWxzKCkKLSAgICAg
ICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKLSAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCi0KLQotY2xhc3MgVGVzdEZpeHR1cmVNYXJr
ZXIob2JqZWN0KToKLQotICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplKHNlbGYsIHRlc3RkaXIpOgot
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WyJhIiwg
ImIiLCAiYyJdKQotICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAg
ICByZXR1cm4gcmVxdWVzdC5wYXJhbQotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAg
ICAgIGRlZiB0ZXN0X3BhcmFtKGFyZyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChh
cmcpCi0gICAgICAgICAgICBkZWYgdGVzdF9yZXN1bHQoKToKLSAgICAgICAgICAgICAgICBhc3Nl
cnQgdmFsdWVzID09IGxpc3QoImFiYyIpCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRj
b21lKHBhc3NlZD00KQotCi0gICAgZGVmIHRlc3RfbXVsdGlwbGVfcGFyYW1ldHJpemF0aW9uX2lz
c3VlXzczNihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShwYXJhbXM9WzEsMiwzXSkKLSAgICAgICAgICAgIGRlZiBmb28ocmVxdWVz
dCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdmb29iYXInLCBbNCw1LDZdKQotICAgICAgICAgICAg
ZGVmIHRlc3RfaXNzdWUoZm9vLCBmb29iYXIpOgotICAgICAgICAgICAgICAgIGFzc2VydCBmb28g
aW4gWzEsMiwzXQotICAgICAgICAgICAgICAgIGFzc2VydCBmb29iYXIgaW4gWzQsNSw2XQotICAg
ICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
KQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9OSkKLQotICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgKLSAgICAgICAgInBhcmFtX2FyZ3MiLAotICAgICAgICBbIidmaXh0
LCB2YWwnIiwgIidmaXh0LHZhbCciLCAiWydmaXh0JywgJ3ZhbCddIiwgIignZml4dCcsICd2YWwn
KSJdLAotICAgICkKLSAgICBkZWYgdGVzdF9vdmVycmlkZV9wYXJhbWV0cml6ZWRfZml4dHVyZV9p
c3N1ZV85Nzkoc2VsZiwgdGVzdGRpciwgcGFyYW1fYXJncyk6Ci0gICAgICAgICIiIk1ha2Ugc3Vy
ZSBhIHBhcmFtZXRyaXplZCBhcmd1bWVudCBjYW4gb3ZlcnJpZGUgYSBwYXJhbWV0cml6ZWQgZml4
dHVyZS4KLQotICAgICAgICBUaGlzIHdhcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBpbiB0aGUg
Zml4IGZvciAjNzM2LgotICAgICAgICAiIiIKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAot
ICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsIDJdKQotICAgICAgICAgICAgZGVmIGZpeHQocmVx
dWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCVzLCBbKDMsICd4JyksICg0LCAneCcpXSkKLSAg
ICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhmaXh0LCB2YWwpOgotICAgICAgICAgICAgICAgIHBhc3MK
LSAgICAgICAgIiIiCi0gICAgICAgICAgICAlIHBhcmFtX2FyZ3MKLSAgICAgICAgKQotICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShwYXNzZWQ9MikKLQotICAgIGRlZiB0ZXN0X3Njb3BlX3Nlc3Npb24oc2VsZiwgdGVzdGRp
cik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKLSAgICAgICAgICAgIGRlZiBhcmcoKToK
LSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IDEKLQotICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgotICAgICAgICAgICAgICAgIGFzc2Vy
dCBhcmcgPT0gMQotICAgICAgICAgICAgZGVmIHRlc3RfMihhcmcpOgotICAgICAgICAgICAgICAg
IGFzc2VydCBhcmcgPT0gMQotICAgICAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAx
Ci0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBk
ZWYgdGVzdDMoc2VsZiwgYXJnKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAx
Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAxCi0gICAgICAgICIi
IgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0zKQotCi0gICAgZGVmIHRlc3Rfc2NvcGVf
c2Vzc2lvbl9leGMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
LSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAg
dmFsdWVzID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIp
Ci0gICAgICAgICAgICBkZWYgZml4KCk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgx
KQotICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCdza2lwcGluZycpCi0KLSAgICAgICAgICAg
IGRlZiB0ZXN0XzEoZml4KToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBkZWYg
dGVzdF8yKGZpeCk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZGVmIHRlc3Rf
bGFzdCgpOgotICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCi0gICAgICAgICIi
IgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MiwgcGFzc2VkPTEpCi0KLSAgICBkZWYg
dGVzdF9zY29wZV9zZXNzaW9uX2V4Y190d29fZml4KHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKLSAgICAgICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBtID0gW10KLSAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCi0gICAgICAgICAgICBkZWYg
YSgpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKLSAgICAgICAgICAgICAgICBw
eXRlc3Quc2tpcCgnc2tpcHBpbmcnKQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSJzZXNzaW9uIikKLSAgICAgICAgICAgIGRlZiBiKGEpOgotICAgICAgICAgICAgICAgIG0uYXBw
ZW5kKDEpCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0XzEoYik6Ci0gICAgICAgICAgICAgICAgcGFz
cwotICAgICAgICAgICAgZGVmIHRlc3RfMihiKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAg
ICAgICAgICBkZWYgdGVzdF9sYXN0KCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9
PSBbMV0KLSAgICAgICAgICAgICAgICBhc3NlcnQgbSA9PSBbXQotICAgICAgICAiIiIKLSAgICAg
ICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShza2lwcGVkPTIsIHBhc3NlZD0xKQotCi0gICAgZGVmIHRlc3Rfc2Nv
cGVfZXhjKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAg
ICAgICAgICB0ZXN0X2Zvbz0iIiIKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9mb28oZml4KToK
LSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgIiIiLAotICAgICAgICAgICAg
dGVzdF9iYXI9IiIiCi0gICAgICAgICAgICAgICAgZGVmIHRlc3RfYmFyKGZpeCk6Ci0gICAgICAg
ICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgICIiIiwKLSAgICAgICAgICAgIGNvbmZ0ZXN0
PSIiIgotICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgICAgICByZXFz
ID0gW10KLSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQot
ICAgICAgICAgICAgICAgIGRlZiBmaXgocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgICAgIHJl
cXMuYXBwZW5kKDEpCi0gICAgICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCkKLSAgICAgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgICAgICBkZWYgcmVxX2xpc3QoKToK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXMKLSAgICAgICAgICAgICIiIiwKLSAgICAg
ICAgICAgIHRlc3RfcmVhbD0iIiIKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9sYXN0KHJlcV9s
aXN0KToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcV9saXN0ID09IFsxXQotICAgICAg
ICAgICAgIiIiLAotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MiwgcGFzc2VkPTEpCi0K
LSAgICBkZWYgdGVzdF9zY29wZV9tb2R1bGVfdXNlc19zZXNzaW9uKHNlbGYsIHRlc3RkaXIpOgot
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCi0gICAgICAgICAgICBkZWYgYXJnKCk6Ci0gICAg
ICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQotICAgICAgICAgICAgICAgIHJldHVybiAxCi0K
LSAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgYXJn
ID09IDEKLSAgICAgICAgICAgIGRlZiB0ZXN0XzIoYXJnKToKLSAgICAgICAgICAgICAgICBhc3Nl
cnQgYXJnID09IDEKLSAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQotICAg
ICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgZGVmIHRl
c3QzKHNlbGYsIGFyZyk6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQotICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQotICAgICAgICAiIiIKLSAg
ICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICBy
ZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKLQotICAgIGRlZiB0ZXN0X3Njb3BlX21vZHVs
ZV9hbmRfZmluYWxpemVyKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAg
ICAgICAgZmluYWxpemVkX2xpc3QgPSBbXQotICAgICAgICAgICAgY3JlYXRlZF9saXN0ID0gW10K
LSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKLSAgICAgICAgICAg
IGRlZiBhcmcocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgY3JlYXRlZF9saXN0LmFwcGVuZCgx
KQotICAgICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0LnNjb3BlID09ICJtb2R1bGUiCi0gICAg
ICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiBmaW5hbGl6ZWRfbGlzdC5h
cHBlbmQoMSkpCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBj
cmVhdGVkKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiBsZW4oY3JlYXRlZF9saXN0
KQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgZmluYWxpemVk
KHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiBsZW4oZmluYWxpemVkX2xpc3QpCi0g
ICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAg
ICAgICAgIHRlc3RfbW9kMT0iIiIKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZywgY3Jl
YXRlZCwgZmluYWxpemVkKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGNyZWF0ZWQgPT0g
MQotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmluYWxpemVkID09IDAKLSAgICAgICAgICAg
ICAgICBkZWYgdGVzdF8yKGFyZywgY3JlYXRlZCwgZmluYWxpemVkKToKLSAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IGNyZWF0ZWQgPT0gMQotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmlu
YWxpemVkID09IDAiIiIsCi0gICAgICAgICAgICB0ZXN0X21vZDI9IiIiCi0gICAgICAgICAgICAg
ICAgZGVmIHRlc3RfMyhhcmcsIGNyZWF0ZWQsIGZpbmFsaXplZCk6Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydCBjcmVhdGVkID09IDIKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZpbmFs
aXplZCA9PSAxIiIiLAotICAgICAgICAgICAgdGVzdF9tb2RlMz0iIiIKLSAgICAgICAgICAgICAg
ICBkZWYgdGVzdF80KGFyZywgY3JlYXRlZCwgZmluYWxpemVkKToKLSAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0IGNyZWF0ZWQgPT0gMwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmluYWxp
emVkID09IDIKLSAgICAgICAgICAgICIiIiwKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
NCkKLQotICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKLSAgICAgICAgIm1ldGhvZCIsCi0g
ICAgICAgIFsKLSAgICAgICAgICAgICdyZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgiYXJnIiknLAot
ICAgICAgICAgICAgJ3JlcXVlc3QuY2FjaGVkX3NldHVwKGxhbWJkYTogTm9uZSwgc2NvcGU9ImZ1
bmN0aW9uIiknLAotICAgICAgICBdLAotICAgICAgICBpZHM9WyJnZXRmaXh0dXJldmFsdWUiLCAi
Y2FjaGVkX3NldHVwIl0sCi0gICAgKQotICAgIGRlZiB0ZXN0X3Njb3BlX21pc21hdGNoX3Zhcmlv
dXMoc2VsZiwgdGVzdGRpciwgbWV0aG9kKToKLSAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3Qo
Ci0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAg
IGZpbmFsaXplZCA9IFtdCi0gICAgICAgICAgICBjcmVhdGVkID0gW10KLSAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iKQotICAgICAgICAgICAgZGVmIGFyZyhyZXF1
ZXN0KToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgIHRlc3RfbW9kMT0iIiIKLSAgICAg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHNjb3BlPSJzZXNzaW9uIikKLSAgICAgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgotICAg
ICAgICAgICAgICAgICAgICAlcwotICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKLSAg
ICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAlIG1l
dGhvZAotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAg
ICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCi0gICAgICAgICAgICBbIipTY29wZU1pc21hdGNoKllvdSB0cmllZCpmdW5jdGlv
bipzZXNzaW9uKnJlcXVlc3QqIl0KLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfcmVnaXN0ZXJf
b25seV93aXRoX21hcmsoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0
ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoKQotICAgICAgICAgICAgZGVmIGFyZygpOgotICAgICAgICAg
ICAgICAgIHJldHVybiAxCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKLSAgICAgICAgICAgIHRlc3RfbW9kMT0iIiIKLSAgICAgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKLSAgICAgICAg
ICAgICAgICBkZWYgYXJnKGFyZyk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBhcmcgKyAx
Ci0gICAgICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgotICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgYXJnID09IDIKLSAgICAgICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0gICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD0xKQotCi0gICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfYW5kX3Njb3BlKHNlbGYsIHRlc3Rk
aXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0i
bW9kdWxlIiwgcGFyYW1zPVsiYSIsICJiIiwgImMiXSkKLSAgICAgICAgICAgIGRlZiBhcmcocmVx
dWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLSAgICAgICAgICAg
IHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBkZWYgdGVzdF9wYXJhbShhcmcpOgotICAgICAgICAg
ICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12IikKLSAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTMpCi0gICAgICAgIHZhbHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0
ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxlLnZhbHVlcwotICAgICAgICBhc3NlcnQg
bGVuKHZhbHVlcykgPT0gMwotICAgICAgICBhc3NlcnQgImEiIGluIHZhbHVlcwotICAgICAgICBh
c3NlcnQgImIiIGluIHZhbHVlcwotICAgICAgICBhc3NlcnQgImMiIGluIHZhbHVlcwotCi0gICAg
ZGVmIHRlc3Rfc2NvcGVfbWlzbWF0Y2goc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIikKLSAgICAgICAg
ICAgIGRlZiBhcmcocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIK
LSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIK
LSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0ic2Vzc2lvbiIpCi0gICAgICAgICAgICBkZWYgYXJnKGFyZyk6Ci0gICAgICAgICAgICAg
ICAgcGFzcwotICAgICAgICAgICAgZGVmIHRlc3RfbWlzbWF0Y2goYXJnKToKLSAgICAgICAgICAg
ICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKlNj
b3BlTWlzbWF0Y2gqIiwgIioxIGVycm9yKiJdKQotCi0gICAgZGVmIHRlc3RfcGFyYW1ldHJpemVf
c2VwYXJhdGVkX29yZGVyKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9WzEsIDJdKQotICAg
ICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVz
dC5wYXJhbQotCi0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgZGVmIHRlc3Rf
MShhcmcpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQotICAgICAgICAgICAg
ZGVmIHRlc3RfMihhcmcpOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQotICAg
ICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
Ii12IikKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTQpCi0gICAgICAgIHZh
bHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9k
dWxlLnZhbHVlcwotICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLCAxLCAyLCAyXQotCi0gICAg
ZGVmIHRlc3RfbW9kdWxlX3BhcmFtZXRyaXplZF9vcmRlcmluZyhzZWxmLCB0ZXN0ZGlyKToKLSAg
ICAgICAgdGVzdGRpci5tYWtlaW5pKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBbcHl0
ZXN0XQotICAgICAgICAgICAgY29uc29sZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYwotICAgICAgICAi
IiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAg
ICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9InNlc3Npb24iLCBwYXJhbXM9InMxIHMyIi5zcGxpdCgpKQotICAgICAgICAg
ICAgZGVmIHNhcmcoKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz0ibTEgbTIiLnNwbGl0KCkpCi0gICAgICAg
ICAgICBkZWYgbWFyZygpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0gICAg
ICAgICkKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgdGVzdF9tb2Qx
PSIiIgotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzYXJnKToKLSAgICAgICAgICAgICAgICBw
YXNzCi0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jMShtYXJnKToKLSAgICAgICAgICAgICAgICBw
YXNzCi0gICAgICAgICIiIiwKLSAgICAgICAgICAgIHRlc3RfbW9kMj0iIiIKLSAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMyKHNhcmcpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMzKHNhcmcsIG1hcmcpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAg
ICAgICAgIGRlZiB0ZXN0X2Z1bmMzYihzYXJnLCBtYXJnKToKLSAgICAgICAgICAgICAgICBwYXNz
Ci0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jNChtYXJnKToKLSAgICAgICAgICAgICAgICBwYXNz
Ci0gICAgICAgICIiIiwKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLXYiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAg
ICAgICAiIiIKLSAgICAgICAgICAgIHRlc3RfbW9kMS5weTo6dGVzdF9mdW5jW3MxXSBQQVNTRUQK
LSAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jMltzMV0gUEFTU0VECi0gICAgICAg
ICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzNbczEtbTFdIFBBU1NFRAotICAgICAgICAgICAg
dGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMzYltzMS1tMV0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0
X21vZDIucHk6OnRlc3RfZnVuYzNbczEtbTJdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9tb2Qy
LnB5Ojp0ZXN0X2Z1bmMzYltzMS1tMl0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X21vZDEucHk6
OnRlc3RfZnVuY1tzMl0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVu
YzJbczJdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMzW3MyLW0x
XSBQQVNTRUQKLSAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jM2JbczItbTFdIFBB
U1NFRAotICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmM0W20xXSBQQVNTRUQKLSAg
ICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jM1tzMi1tMl0gUEFTU0VECi0gICAgICAg
ICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzNiW3MyLW0yXSBQQVNTRUQKLSAgICAgICAgICAg
IHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jNFttMl0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X21v
ZDEucHk6OnRlc3RfZnVuYzFbbTFdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9tb2QxLnB5Ojp0
ZXN0X2Z1bmMxW20yXSBQQVNTRUQKLSAgICAgICAgIiIiCi0gICAgICAgICkKLQotICAgIGRlZiB0
ZXN0X2R5bmFtaWNfcGFyYW1ldHJpemVkX29yZGVyaW5nKHNlbGYsIHRlc3RkaXIpOgotICAgICAg
ICB0ZXN0ZGlyLm1ha2VpbmkoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIFtweXRlc3Rd
Ci0gICAgICAgICAgICBjb25zb2xlX291dHB1dF9zdHlsZT1jbGFzc2ljCi0gICAgICAgICIiIgot
ICAgICAgICApCi0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIi
Ci0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIGRlZiBweXRlc3RfY29u
ZmlndXJlKGNvbmZpZyk6Ci0gICAgICAgICAgICAgICAgY2xhc3MgRHluYW1pY0ZpeHR1cmVQbHVn
aW4ob2JqZWN0KToKLSAgICAgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdz
ZXNzaW9uJywgcGFyYW1zPVsnZmxhdm9yMScsICdmbGF2b3IyJ10pCi0gICAgICAgICAgICAgICAg
ICAgIGRlZiBmbGF2b3Ioc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWVzdC5wYXJhbQotICAgICAgICAgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2Vy
LnJlZ2lzdGVyKER5bmFtaWNGaXh0dXJlUGx1Z2luKCksICdmbGF2b3ItZml4dHVyZScpCi0KLSAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicsIHBhcmFtcz1bJ3Z4bGFu
JywgJ3ZsYW4nXSkKLSAgICAgICAgICAgIGRlZiBlbmNhcChyZXF1ZXN0KToKLSAgICAgICAgICAg
ICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
c2NvcGU9J3Nlc3Npb24nLCBhdXRvdXNlPSdUcnVlJykKLSAgICAgICAgICAgIGRlZiByZXByb3Zp
c2lvbihyZXF1ZXN0LCBmbGF2b3IsIGVuY2FwKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAg
ICAgICIiIgotICAgICAgICApCi0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAg
ICAgICIiIgotICAgICAgICAgICAgZGVmIHRlc3QocmVwcm92aXNpb24pOgotICAgICAgICAgICAg
ICAgIHBhc3MKLSAgICAgICAgICAgIGRlZiB0ZXN0MihyZXByb3Zpc2lvbik6Ci0gICAgICAgICAg
ICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLXYiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
Ci0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRf
b3JkZXJpbmcucHk6OnRlc3RbZmxhdm9yMS12eGxhbl0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0
X2R5bmFtaWNfcGFyYW1ldHJpemVkX29yZGVyaW5nLnB5Ojp0ZXN0MltmbGF2b3IxLXZ4bGFuXSBQ
QVNTRUQKLSAgICAgICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6
OnRlc3RbZmxhdm9yMi12eGxhbl0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X2R5bmFtaWNfcGFy
YW1ldHJpemVkX29yZGVyaW5nLnB5Ojp0ZXN0MltmbGF2b3IyLXZ4bGFuXSBQQVNTRUQKLSAgICAg
ICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6OnRlc3RbZmxhdm9y
Mi12bGFuXSBQQVNTRUQKLSAgICAgICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRfb3Jk
ZXJpbmcucHk6OnRlc3QyW2ZsYXZvcjItdmxhbl0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X2R5
bmFtaWNfcGFyYW1ldHJpemVkX29yZGVyaW5nLnB5Ojp0ZXN0W2ZsYXZvcjEtdmxhbl0gUEFTU0VE
Ci0gICAgICAgICAgICB0ZXN0X2R5bmFtaWNfcGFyYW1ldHJpemVkX29yZGVyaW5nLnB5Ojp0ZXN0
MltmbGF2b3IxLXZsYW5dIFBBU1NFRAotICAgICAgICAiIiIKLSAgICAgICAgKQotCi0gICAgZGVm
IHRlc3RfY2xhc3Nfb3JkZXJpbmcoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFr
ZWluaSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgW3B5dGVzdF0KLSAgICAgICAgICAg
IGNvbnNvbGVfb3V0cHV0X3N0eWxlPWNsYXNzaWMKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAg
ICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgdmFsdWVzID0gW10KLQotICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIHBhcmFtcz1bMSwyXSkKLSAgICAgICAg
ICAgIGRlZiBmYXJnKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBh
cmFtCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iY2xhc3MiLCBwYXJhbXM9
bGlzdCgiYWIiKSkKLSAgICAgICAgICAgIGRlZiBjYXJnKHJlcXVlc3QpOgotICAgICAgICAgICAg
ICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0iZnVuY3Rpb24iLCBhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICBkZWYgYXBwZW5kKHJl
cXVlc3QsIGZhcmcsIGNhcmcpOgotICAgICAgICAgICAgICAgIGRlZiBmaW4oKToKLSAgICAgICAg
ICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgiZmluXyVzJXMiICUgKGNhcmcsIGZhcmcpKQotICAg
ICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGZpbikKLSAgICAgICAgIiIiCi0gICAg
ICAgICkKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzczIob2Jq
ZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF8xKHNlbGYpOgotICAgICAgICAgICAgICAg
ICAgICBwYXNzCi0gICAgICAgICAgICAgICAgZGVmIHRlc3RfMihzZWxmKToKLSAgICAgICAgICAg
ICAgICAgICAgcGFzcwotICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Ci0gICAg
ICAgICAgICAgICAgZGVmIHRlc3RfMyhzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwot
ICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLXZzIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5yZV9tYXRjaF9saW5lcygKLSAgICAgICAg
ICAgIHIiIiIKLSAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6
OnRlc3RfMVxbYS0xXF0gUEFTU0VECi0gICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5
OjpUZXN0Q2xhc3MyOjp0ZXN0XzFcW2EtMlxdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9jbGFz
c19vcmRlcmluZy5weTo6VGVzdENsYXNzMjo6dGVzdF8yXFthLTFcXSBQQVNTRUQKLSAgICAgICAg
ICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3RfMlxbYS0yXF0gUEFT
U0VECi0gICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3MyOjp0ZXN0
XzFcW2ItMVxdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVz
dENsYXNzMjo6dGVzdF8xXFtiLTJcXSBQQVNTRUQKLSAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3Jk
ZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3RfMlxbYi0xXF0gUEFTU0VECi0gICAgICAgICAgICB0
ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzJcW2ItMlxdIFBBU1NFRAot
ICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzOjp0ZXN0XzNcW2Et
MVxdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNz
Ojp0ZXN0XzNcW2EtMlxdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5w
eTo6VGVzdENsYXNzOjp0ZXN0XzNcW2ItMVxdIFBBU1NFRAotICAgICAgICAgICAgdGVzdF9jbGFz
c19vcmRlcmluZy5weTo6VGVzdENsYXNzOjp0ZXN0XzNcW2ItMlxdIFBBU1NFRAotICAgICAgICAi
IiIKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfc2VwYXJhdGVkX29yZGVy
X2hpZ2hlcl9zY29wZV9maXJzdChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBwYXJhbXM9WzEsIDJd
KQotICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBwYXJhbSA9
IHJlcXVlc3QucGFyYW0KLSAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1i
ZGE6IHZhbHVlcy5hcHBlbmQoImZpbjolcyIgJSBwYXJhbSkpCi0gICAgICAgICAgICAgICAgdmFs
dWVzLmFwcGVuZCgiY3JlYXRlOiVzIiAlIHBhcmFtKQotICAgICAgICAgICAgICAgIHJldHVybiBy
ZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxl
IiwgcGFyYW1zPVsibW9kMSIsICJtb2QyIl0pCi0gICAgICAgICAgICBkZWYgbW9kYXJnKHJlcXVl
c3QpOgotICAgICAgICAgICAgICAgIHBhcmFtID0gcmVxdWVzdC5wYXJhbQotICAgICAgICAgICAg
ICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgiZmluOiVzIiAl
IHBhcmFtKSkKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJjcmVhdGU6JXMiICUgcGFy
YW0pCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAg
dmFsdWVzID0gW10KLSAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKLSAgICAgICAgICAgICAg
ICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0MSIpCi0gICAgICAgICAgICBkZWYgdGVzdF8yKG1vZGFyZyk6
Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgidGVzdDIiKQotICAgICAgICAgICAgZGVm
IHRlc3RfMyhhcmcsIG1vZGFyZyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgidGVz
dDMiKQotICAgICAgICAgICAgZGVmIHRlc3RfNChtb2RhcmcsIGFyZyk6Ci0gICAgICAgICAgICAg
ICAgdmFsdWVzLmFwcGVuZCgidGVzdDQiKQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12IikKLSAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEyKQotICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5
dGVzdF9ydW50ZXN0X2NhbGwiKVswXS5pdGVtLm1vZHVsZS52YWx1ZXMKLSAgICAgICAgZXhwZWN0
ZWQgPSBbCi0gICAgICAgICAgICAiY3JlYXRlOjEiLAotICAgICAgICAgICAgInRlc3QxIiwKLSAg
ICAgICAgICAgICJmaW46MSIsCi0gICAgICAgICAgICAiY3JlYXRlOjIiLAotICAgICAgICAgICAg
InRlc3QxIiwKLSAgICAgICAgICAgICJmaW46MiIsCi0gICAgICAgICAgICAiY3JlYXRlOm1vZDEi
LAotICAgICAgICAgICAgInRlc3QyIiwKLSAgICAgICAgICAgICJjcmVhdGU6MSIsCi0gICAgICAg
ICAgICAidGVzdDMiLAotICAgICAgICAgICAgImZpbjoxIiwKLSAgICAgICAgICAgICJjcmVhdGU6
MiIsCi0gICAgICAgICAgICAidGVzdDMiLAotICAgICAgICAgICAgImZpbjoyIiwKLSAgICAgICAg
ICAgICJjcmVhdGU6MSIsCi0gICAgICAgICAgICAidGVzdDQiLAotICAgICAgICAgICAgImZpbjox
IiwKLSAgICAgICAgICAgICJjcmVhdGU6MiIsCi0gICAgICAgICAgICAidGVzdDQiLAotICAgICAg
ICAgICAgImZpbjoyIiwKLSAgICAgICAgICAgICJmaW46bW9kMSIsCi0gICAgICAgICAgICAiY3Jl
YXRlOm1vZDIiLAotICAgICAgICAgICAgInRlc3QyIiwKLSAgICAgICAgICAgICJjcmVhdGU6MSIs
Ci0gICAgICAgICAgICAidGVzdDMiLAotICAgICAgICAgICAgImZpbjoxIiwKLSAgICAgICAgICAg
ICJjcmVhdGU6MiIsCi0gICAgICAgICAgICAidGVzdDMiLAotICAgICAgICAgICAgImZpbjoyIiwK
LSAgICAgICAgICAgICJjcmVhdGU6MSIsCi0gICAgICAgICAgICAidGVzdDQiLAotICAgICAgICAg
ICAgImZpbjoxIiwKLSAgICAgICAgICAgICJjcmVhdGU6MiIsCi0gICAgICAgICAgICAidGVzdDQi
LAotICAgICAgICAgICAgImZpbjoyIiwKLSAgICAgICAgICAgICJmaW46bW9kMiIsCi0gICAgICAg
IF0KLSAgICAgICAgaW1wb3J0IHBwcmludAotCi0gICAgICAgIHBwcmludC5wcHJpbnQobGlzdCh6
aXAodmFsdWVzLCBleHBlY3RlZCkpKQotICAgICAgICBhc3NlcnQgdmFsdWVzID09IGV4cGVjdGVk
Ci0KLSAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZWRfZml4dHVyZV90ZWFyZG93bl9vcmRlcihzZWxm
LCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIi
Ci0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
cGFyYW1zPVsxLDJdLCBzY29wZT0iY2xhc3MiKQotICAgICAgICAgICAgZGVmIHBhcmFtMShyZXF1
ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAg
ICB2YWx1ZXMgPSBbXQotCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAg
ICAgICAgICAgICAgICBAY2xhc3NtZXRob2QKLSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9ImNsYXNzIiwgYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgICAgIGRlZiBzZXR1
cDEoc2VsZiwgcmVxdWVzdCwgcGFyYW0xKToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgxKQotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRl
YXJkb3duMSkKLSAgICAgICAgICAgICAgICBAY2xhc3NtZXRob2QKLSAgICAgICAgICAgICAgICBk
ZWYgdGVhcmRvd24xKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzLnBv
cCgpID09IDEKLSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIiwg
YXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgICAgIGRlZiBzZXR1cDIoc2VsZiwgcmVxdWVzdCwg
cGFyYW0xKToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgyKQotICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJkb3duMikKLSAgICAgICAg
ICAgICAgICBAY2xhc3NtZXRob2QKLSAgICAgICAgICAgICAgICBkZWYgdGVhcmRvd24yKHNlbGYp
OgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzLnBvcCgpID09IDIKLSAgICAgICAg
ICAgICAgICBkZWYgdGVzdChzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotCi0gICAg
ICAgICAgICBkZWYgdGVzdF9maW5pc2goKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgbm90IHZh
bHVlcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLXYiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgICozIHBhc3NlZCoKLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLSAgICAgICAgYXNzZXJ0ICJlcnJvciIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKLQot
ICAgIGRlZiB0ZXN0X2ZpeHR1cmVfZmluYWxpemVyKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotICAgICAgICAgICAgaW1wb3J0IHN5cwotCi0gICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKLSAgICAgICAgICAgIGRlZiBicm93c2VyKHJlcXVlc3QpOgotCi0gICAgICAgICAgICAg
ICAgZGVmIGZpbmFsaXplKCk6Ci0gICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUo
J0ZpbmFsaXplZCcpCi0gICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluYWxp
emUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHt9Ci0gICAgICAgICIiIgotICAgICAgICApCi0g
ICAgICAgIGIgPSB0ZXN0ZGlyLm1rZGlyKCJzdWJkaXIiKQotICAgICAgICBiLmpvaW4oInRlc3Rf
b3ZlcnJpZGRlbl9maXh0dXJlX2ZpbmFsaXplci5weSIpLndyaXRlKAotICAgICAgICAgICAgZGVk
ZW50KAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBkZWYgYnJvd3Nlcihicm93c2Vy
KToKLSAgICAgICAgICAgICAgICBicm93c2VyWyd2aXNpdGVkJ10gPSBUcnVlCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGJyb3dzZXIKLQotICAgICAgICAgICAgZGVmIHRlc3RfYnJvd3Nlcihicm93
c2VyKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgYnJvd3NlclsndmlzaXRlZCddIGlzIFRydWUK
LSAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAgICAgICAgZm9yIHRlc3QgaW4gWyJ0ZXN0X2Jyb3dz
ZXIiXToKLSAgICAgICAgICAgIHJlcHJlYy5zdGRvdXQuZm5tYXRjaF9saW5lcygiKkZpbmFsaXpl
ZCoiKQotCi0gICAgZGVmIHRlc3RfY2xhc3Nfc2NvcGVfd2l0aF9ub3JtYWxfdGVzdHMoc2VsZiwg
dGVzdGRpcik6Ci0gICAgICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIGNsYXNz
IEJveChvYmplY3QpOgotICAgICAgICAgICAgICAgIHZhbHVlID0gMAotCi0gICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2NsYXNzJykKLSAgICAgICAgICAgIGRlZiBhKHJlcXVlc3Qp
OgotICAgICAgICAgICAgICAgIEJveC52YWx1ZSArPSAxCi0gICAgICAgICAgICAgICAgcmV0dXJu
IEJveC52YWx1ZQotCi0gICAgICAgICAgICBkZWYgdGVzdF9hKGEpOgotICAgICAgICAgICAgICAg
IGFzc2VydCBhID09IDEKLQotICAgICAgICAgICAgY2xhc3MgVGVzdDEob2JqZWN0KToKLSAgICAg
ICAgICAgICAgICBkZWYgdGVzdF9iKHNlbGYsIGEpOgotICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgYSA9PSAyCi0KLSAgICAgICAgICAgIGNsYXNzIFRlc3QyKG9iamVjdCk6Ci0gICAgICAgICAg
ICAgICAgZGVmIHRlc3RfYyhzZWxmLCBhKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGEg
PT0gMyIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bih0
ZXN0cGF0aCkKLSAgICAgICAgZm9yIHRlc3QgaW4gWyJ0ZXN0X2EiLCAidGVzdF9iIiwgInRlc3Rf
YyJdOgotICAgICAgICAgICAgYXNzZXJ0IHJlcHJlYy5tYXRjaHJlcG9ydCh0ZXN0KS5wYXNzZWQK
LQotICAgIGRlZiB0ZXN0X3JlcXVlc3RfaXNfY2xlYW4oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShwYXJhbXM9WzEsIDJdKQotICAgICAgICAgICAgZGVmIGZpeChyZXF1ZXN0KToKLSAgICAg
ICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQocmVx
dWVzdC5wYXJhbSkpCi0gICAgICAgICAgICBkZWYgdGVzdF9maXgoZml4KToKLSAgICAgICAgICAg
ICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3Rk
aXIuaW5saW5lX3J1bigiLXMiKQotICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5
dGVzdF9ydW50ZXN0X2NhbGwiKVswXS5pdGVtLm1vZHVsZS52YWx1ZXMKLSAgICAgICAgYXNzZXJ0
IHZhbHVlcyA9PSBbMSwgMl0KLQotICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX3NlcGFyYXRlZF9s
aWZlY3ljbGUoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAg
ICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICB2
YWx1ZXMgPSBbXQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBw
YXJhbXM9WzEsIDJdKQotICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKLSAgICAgICAgICAg
ICAgICB4ID0gcmVxdWVzdC5wYXJhbQotICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxp
emVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgiZmluJXMiICUgeCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHJlcXVlc3QucGFyYW0KLSAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKLSAgICAg
ICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKLSAgICAgICAgICAgIGRlZiB0ZXN0XzIoYXJn
KToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKLSAgICAgICAgIiIiCi0gICAg
ICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdnMiKQotICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NCkKLSAgICAgICAgdmFsdWVzID0gcmVwcmVj
LmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9jYWxsIilbMF0uaXRlbS5tb2R1bGUudmFsdWVzCi0g
ICAgICAgIGltcG9ydCBwcHJpbnQKLQotICAgICAgICBwcHJpbnQucHByaW50KHZhbHVlcykKLSAg
ICAgICAgIyBhc3NlcnQgbGVuKHZhbHVlcykgPT0gNgotICAgICAgICBhc3NlcnQgdmFsdWVzWzBd
ID09IHZhbHVlc1sxXSA9PSAxCi0gICAgICAgIGFzc2VydCB2YWx1ZXNbMl0gPT0gImZpbjEiCi0g
ICAgICAgIGFzc2VydCB2YWx1ZXNbM10gPT0gdmFsdWVzWzRdID09IDIKLSAgICAgICAgYXNzZXJ0
IHZhbHVlc1s1XSA9PSAiZmluMiIKLQotICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2Z1bmN0aW9u
X3Njb3BlZF9maW5hbGl6ZXJzX2NhbGxlZChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBwYXJhbXM9
WzEsIDJdKQotICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICB4
ID0gcmVxdWVzdC5wYXJhbQotICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxh
bWJkYTogdmFsdWVzLmFwcGVuZCgiZmluJXMiICUgeCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIGRl
ZiB0ZXN0XzEoYXJnKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKLSAgICAg
ICAgICAgIGRlZiB0ZXN0XzIoYXJnKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFy
ZykKLSAgICAgICAgICAgIGRlZiB0ZXN0XzMoKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgbGVu
KHZhbHVlcykgPT0gOAotICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsICJmaW4x
IiwgMiwgImZpbjIiLCAxLCAiZmluMSIsIDIsICJmaW4yIl0KLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdiIpCi0gICAgICAgIHJl
cHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD01KQotCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlMjQ2
Ci0gICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzY29wZSIsIFsic2Vzc2lvbiIsICJmdW5j
dGlvbiIsICJtb2R1bGUiXSkKLSAgICBkZWYgdGVzdF9maW5hbGl6ZXJfb3JkZXJfb25fcGFyYW1l
dHJpemF0aW9uKHNlbGYsIHNjb3BlLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAg
ICAgICB2YWx1ZXMgPSBbXQotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9JShz
Y29wZSlyLCBwYXJhbXM9WyIxIl0pCi0gICAgICAgICAgICBkZWYgZml4MShyZXF1ZXN0KToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0gICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9JShzY29wZSlyKQotICAgICAgICAgICAgZGVmIGZpeDIocmVxdWVzdCwg
YmFzZSk6Ci0gICAgICAgICAgICAgICAgZGVmIGNsZWFudXBfZml4MigpOgotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgbm90IHZhbHVlcywgImJhc2Ugc2hvdWxkIG5vdCBoYXZlIGJlZW4gZmlu
YWxpemVkIgotICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGNsZWFudXBfZml4
MikKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSUoc2NvcGUpcikKLSAgICAg
ICAgICAgIGRlZiBiYXNlKHJlcXVlc3QsIGZpeDEpOgotICAgICAgICAgICAgICAgIGRlZiBjbGVh
bnVwX2Jhc2UoKToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgiZmluX2Jhc2Ui
KQotICAgICAgICAgICAgICAgICAgICBwcmludCAoImZpbmFsaXppbmcgYmFzZSIpCi0gICAgICAg
ICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoY2xlYW51cF9iYXNlKQotCi0gICAgICAgICAg
ICBkZWYgdGVzdF9iZWdpbigpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGRl
ZiB0ZXN0X2JheihiYXNlLCBmaXgyKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAg
ICBkZWYgdGVzdF9vdGhlcigpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0g
ICAgICAgICAgICAlIHsic2NvcGUiOiBzY29wZX0KLSAgICAgICAgKQotICAgICAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1sdnMiKQotICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9MykKLQotICAgIEBweXRlc3QubWFyay5pc3N1ZTM5NgotICAgIGRlZiB0ZXN0X2Ns
YXNzX3Njb3BlX3BhcmFtZXRyaXphdGlvbl9vcmRlcmluZyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0Ci0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHBhcmFtcz1bIkpvaG4iLCAiRG9lIl0sIHNjb3BlPSJjbGFzcyIpCi0gICAgICAgICAg
ICBkZWYgaHVtYW4ocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6
ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKCJmaW4gJXMiICUgcmVxdWVzdC5wYXJhbSkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAgY2xhc3MgVGVz
dEdyZWV0aW5ncyhvYmplY3QpOgotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYs
IGh1bWFuKToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgidGVzdF9oZWxsbyIp
Ci0KLSAgICAgICAgICAgIGNsYXNzIFRlc3RNZXRyaWNzKG9iamVjdCk6Ci0gICAgICAgICAgICAg
ICAgZGVmIHRlc3RfbmFtZShzZWxmLCBodW1hbik6Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoInRlc3RfbmFtZSIpCi0KLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9wb3B1bGF0
aW9uKHNlbGYsIGh1bWFuKToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgidGVz
dF9wb3B1bGF0aW9uIikKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTYpCi0gICAgICAgIHZhbHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2Fs
bCIpWzBdLml0ZW0ubW9kdWxlLnZhbHVlcwotICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAg
dmFsdWVzCi0gICAgICAgICAgICA9PSBbCi0gICAgICAgICAgICAgICAgInRlc3RfaGVsbG8iLAot
ICAgICAgICAgICAgICAgICJmaW4gSm9obiIsCi0gICAgICAgICAgICAgICAgInRlc3RfaGVsbG8i
LAotICAgICAgICAgICAgICAgICJmaW4gRG9lIiwKLSAgICAgICAgICAgICAgICAidGVzdF9uYW1l
IiwKLSAgICAgICAgICAgICAgICAidGVzdF9wb3B1bGF0aW9uIiwKLSAgICAgICAgICAgICAgICAi
ZmluIEpvaG4iLAotICAgICAgICAgICAgICAgICJ0ZXN0X25hbWUiLAotICAgICAgICAgICAgICAg
ICJ0ZXN0X3BvcHVsYXRpb24iLAotICAgICAgICAgICAgICAgICJmaW4gRG9lIiwKLSAgICAgICAg
ICAgIF0KLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfc2V0dXBfZnVuY3Rp
b24oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAg
ICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz1bMSwgMl0pCi0gICAgICAgICAgICBkZWYg
YXJnKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0KLSAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgYXV0b3VzZT1UcnVlKQot
ICAgICAgICAgICAgZGVmIG15c2V0dXAocmVxdWVzdCwgYXJnKToKLSAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbiVzIiAlIGFyZykp
Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgic2V0dXAlcyIgJSBhcmcpCi0KLSAgICAg
ICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6Ci0gICAgICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCi0gICAgICAgICAgICBkZWYgdGVzdF8yKGFyZyk6
Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCi0gICAgICAgICAgICBkZWYgdGVz
dF8zKCk6Ci0gICAgICAgICAgICAgICAgaW1wb3J0IHBwcmludAotICAgICAgICAgICAgICAgIHBw
cmludC5wcHJpbnQodmFsdWVzKQotICAgICAgICAgICAgICAgIGlmIGFyZyA9PSAxOgotICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsic2V0dXAxIiwgMSwgMSwgXQotICAgICAg
ICAgICAgICAgIGVsaWYgYXJnID09IDI6Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1
ZXMgPT0gWyJzZXR1cDEiLCAxLCAxLCAiZmluMSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic2V0dXAyIiwgMiwgMiwgXQotCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYiKQotICAgICAgICByZXByZWMuYXNz
ZXJ0b3V0Y29tZShwYXNzZWQ9NikKLQotICAgIGRlZiB0ZXN0X2ZpeHR1cmVfbWFya2VkX2Z1bmN0
aW9uX25vdF9jb2xsZWN0ZWRfYXNfdGVzdChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiB0ZXN0X2FwcCgp
OgotICAgICAgICAgICAgICAgIHJldHVybiAxCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X3NvbWV0
aGluZyh0ZXN0X2FwcCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHRlc3RfYXBwID09IDEKLSAg
ICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLSAgICBkZWYgdGVz
dF9wYXJhbXNfYW5kX2lkcyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9W29iamVjdCgpLCBvYmplY3QoKV0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWRzPVsnYWxwaGEnLCAnYmV0YSddKQotICAgICAgICAg
ICAgZGVmIGZpeChyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJh
bQotCi0gICAgICAgICAgICBkZWYgdGVzdF9mb28oZml4KToKLSAgICAgICAgICAgICAgICBhc3Nl
cnQgMQotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLXYiKQotICAgICAgICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdF9mb28q
YWxwaGEqIiwgIip0ZXN0X2ZvbypiZXRhKiJdKQotCi0gICAgZGVmIHRlc3RfcGFyYW1zX2FuZF9p
ZHNfeWllbGRmaXh0dXJlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAg
ICAgICAgQHB5dGVzdC55aWVsZF9maXh0dXJlKHBhcmFtcz1bb2JqZWN0KCksIG9iamVjdCgpXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHM9WydhbHBoYScsICdiZXRhJ10p
Ci0gICAgICAgICAgICBkZWYgZml4KHJlcXVlc3QpOgotICAgICAgICAgICAgICAgICB5aWVsZCBy
ZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhmaXgpOgotICAgICAgICAg
ICAgICAgIGFzc2VydCAxCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlcyA9IHRl
c3RkaXIucnVucHl0ZXN0KCItdiIpCi0gICAgICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
Iip0ZXN0X2ZvbyphbHBoYSoiLCAiKnRlc3RfZm9vKmJldGEqIl0pCi0KLSAgICBAcHl0ZXN0Lm1h
cmsuaXNzdWU5MjAKLSAgICBkZWYgdGVzdF9kZXRlcm1pbmlzdGljX2ZpeHR1cmVfY29sbGVjdGlv
bihzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyYW1zPVsiQSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiQiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQyJdKQotICAgICAg
ICAgICAgZGVmIEEocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFy
YW0KLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcz1bIkRERERERERERCIsICJFRUVFRUVFRUVFRUUi
LCAiRkZGRkZGRkZGRkYiLCAiYmFuYW5zZGEiXSkKLSAgICAgICAgICAgIGRlZiBCKHJlcXVlc3Qs
IEEpOgotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAg
IGRlZiB0ZXN0X2ZvbyhCKToKLSAgICAgICAgICAgICAgICAjIFNvbWV0aGluZyBmdW5reSBpcyBn
b2luZyBvbiBoZXJlLgotICAgICAgICAgICAgICAgICMgRGVzcGl0ZSBzcGVjaWZpZWQgc2VlZHMs
IG9uIHdoYXQgaXMgY29sbGVjdGVkLAotICAgICAgICAgICAgICAgICMgc29tZXRpbWVzIHdlIGdl
dCB1bmV4cGVjdGVkIHBhc3Nlcy4gaGFzaGluZyBCIHNlZW1zCi0gICAgICAgICAgICAgICAgIyB0
byBoZWxwPwotICAgICAgICAgICAgICAgIGFzc2VydCBoYXNoKEIpIG9yIFRydWUKLSAgICAgICAg
ICAgICIiIgotICAgICAgICApCi0gICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9OSEFT
SFNFRUQiLCAiMSIpCi0gICAgICAgIG91dDEgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNz
KCItdiIpCi0gICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9OSEFTSFNFRUQiLCAiMiIp
Ci0gICAgICAgIG91dDIgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCItdiIpCi0gICAg
ICAgIG91dDEgPSBbCi0gICAgICAgICAgICBsaW5lCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBv
dXQxLm91dGxpbmVzCi0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoInRlc3RfZGV0ZXJt
aW5pc3RpY19maXh0dXJlX2NvbGxlY3Rpb24ucHk6OnRlc3RfZm9vIikKLSAgICAgICAgXQotICAg
ICAgICBvdXQyID0gWwotICAgICAgICAgICAgbGluZQotICAgICAgICAgICAgZm9yIGxpbmUgaW4g
b3V0Mi5vdXRsaW5lcwotICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCJ0ZXN0X2RldGVy
bWluaXN0aWNfZml4dHVyZV9jb2xsZWN0aW9uLnB5Ojp0ZXN0X2ZvbyIpCi0gICAgICAgIF0KLSAg
ICAgICAgYXNzZXJ0IGxlbihvdXQxKSA9PSAxMgotICAgICAgICBhc3NlcnQgb3V0MSA9PSBvdXQy
Ci0KLQotY2xhc3MgVGVzdFJlcXVlc3RTY29wZUFjY2VzcyhvYmplY3QpOgotICAgIHB5dGVzdG1h
cmsgPSBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKLSAgICAgICAgKCJzY29wZSIsICJvayIsICJl
cnJvciIpLAotICAgICAgICBbCi0gICAgICAgICAgICBbInNlc3Npb24iLCAiIiwgImZzcGF0aCBj
bGFzcyBmdW5jdGlvbiBtb2R1bGUiXSwKLSAgICAgICAgICAgIFsibW9kdWxlIiwgIm1vZHVsZSBm
c3BhdGgiLCAiY2xzIGZ1bmN0aW9uIl0sCi0gICAgICAgICAgICBbImNsYXNzIiwgIm1vZHVsZSBm
c3BhdGggY2xzIiwgImZ1bmN0aW9uIl0sCi0gICAgICAgICAgICBbImZ1bmN0aW9uIiwgIm1vZHVs
ZSBmc3BhdGggY2xzIGZ1bmN0aW9uIiwgIiJdLAotICAgICAgICBdLAotICAgICkKLQotICAgIGRl
ZiB0ZXN0X3NldHVwKHNlbGYsIHRlc3RkaXIsIHNjb3BlLCBvaywgZXJyb3IpOgotICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0lciwgYXV0b3VzZT1UcnVl
KQotICAgICAgICAgICAgZGVmIG15c2NvcGVkKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIGZv
ciB4IGluICVyOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgaGFzYXR0cihyZXF1ZXN0LCB4
KQotICAgICAgICAgICAgICAgIGZvciB4IGluICVyOgotICAgICAgICAgICAgICAgICAgICBweXRl
c3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBsYW1iZGE6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBnZXRhdHRyKHJlcXVlc3QsIHgpKQotICAgICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0LnNl
c3Npb24KLSAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5jb25maWcKLSAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMoKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAg
ICAgICAgICAgJSAoc2NvcGUsIG9rLnNwbGl0KCksIGVycm9yLnNwbGl0KCkpCi0gICAgICAgICkK
LSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItbCIpCi0gICAgICAgIHJlcHJl
Yy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQotCi0gICAgZGVmIHRlc3RfZnVuY2FyZyhzZWxmLCB0
ZXN0ZGlyLCBzY29wZSwgb2ssIGVycm9yKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAot
ICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9JXIpCi0gICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgot
ICAgICAgICAgICAgICAgIGZvciB4IGluICVyOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
aGFzYXR0cihyZXF1ZXN0LCB4KQotICAgICAgICAgICAgICAgIGZvciB4IGluICVyOgotICAgICAg
ICAgICAgICAgICAgICBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBsYW1iZGE6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHJlcXVlc3QsIHgpKQotICAgICAgICAgICAgICAg
IGFzc2VydCByZXF1ZXN0LnNlc3Npb24KLSAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5j
b25maWcKLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoYXJnKToKLSAgICAgICAgICAgICAgICBw
YXNzCi0gICAgICAgICIiIgotICAgICAgICAgICAgJSAoc2NvcGUsIG9rLnNwbGl0KCksIGVycm9y
LnNwbGl0KCkpCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0KLQotY2xhc3MgVGVz
dEVycm9ycyhvYmplY3QpOgotCi0gICAgZGVmIHRlc3Rfc3ViZmFjdG9yeV9taXNzaW5nX2Z1bmNh
cmcoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAg
ICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKCkKLSAgICAgICAgICAgIGRlZiBnZW4ocXdlMTIzKToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gMQotICAgICAgICAgICAgZGVmIHRlc3Rfc29tZXRoaW5nKGdlbik6Ci0gICAgICAgICAg
ICAgICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKLSAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgWyIqZGVmIGdlbihxd2Ux
MjMpOioiLCAiKmZpeHR1cmUqcXdlMTIzKm5vdCBmb3VuZCoiLCAiKjEgZXJyb3IqIl0KLSAgICAg
ICAgKQotCi0gICAgZGVmIHRlc3RfaXNzdWU0OThfZml4dHVyZV9maW5hbGl6ZXJfZmFpbGluZyhz
ZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKLSAgICAgICAgICAgIGRlZiBmaXgxKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIGRlZiBm
KCk6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEtleUVycm9yCi0gICAgICAgICAgICAgICAg
cmVxdWVzdC5hZGRmaW5hbGl6ZXIoZikKLSAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0KCkK
LQotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIGRlZiB0ZXN0XzEoZml4MSk6
Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChmaXgxKQotICAgICAgICAgICAgZGVmIHRl
c3RfMihmaXgxKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGZpeDEpCi0gICAgICAg
ICAgICBkZWYgdGVzdF8zKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlc1swXSAhPSB2
YWx1ZXNbMV0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgICpFUlJPUip0ZWFyZG93bip0ZXN0XzEqCi0gICAgICAg
ICAgICAqS2V5RXJyb3IqCi0gICAgICAgICAgICAqRVJST1IqdGVhcmRvd24qdGVzdF8yKgotICAg
ICAgICAgICAgKktleUVycm9yKgotICAgICAgICAgICAgKjMgcGFzcyoyIGVycm9yKgotICAgICAg
ICAiIiIKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rfc2V0dXBmdW5jX21pc3NpbmdfZnVuY2Fy
ZyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoYXV0b3VzZT1UcnVlKQotICAgICAgICAgICAgZGVmIGdlbihxd2UxMjMpOgotICAgICAg
ICAgICAgICAgIHJldHVybiAxCi0gICAgICAgICAgICBkZWYgdGVzdF9zb21ldGhpbmcoKToKLSAg
ICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAot
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBbIipkZWYg
Z2VuKHF3ZTEyMyk6KiIsICIqZml4dHVyZSpxd2UxMjMqbm90IGZvdW5kKiIsICIqMSBlcnJvcioi
XQotICAgICAgICApCi0KLQotY2xhc3MgVGVzdFNob3dGaXh0dXJlcyhvYmplY3QpOgotCi0gICAg
ZGVmIHRlc3RfZnVuY2FyZ19jb21wYXQoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIGNvbmZpZyA9
IHRlc3RkaXIucGFyc2Vjb25maWd1cmUoIi0tZnVuY2FyZ3MiKQotICAgICAgICBhc3NlcnQgY29u
ZmlnLm9wdGlvbi5zaG93Zml4dHVyZXMKLQotICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXMoc2Vs
ZiwgdGVzdGRpcik6Ci0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1
cmVzIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKnRtcGRpcioiLCAi
KnRlbXBvcmFyeSBkaXJlY3RvcnkqIl0pCi0KLSAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX3Zl
cmJvc2Uoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItLWZpeHR1cmVzIiwgIi12IikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKnRtcGRpciotLSp0bXBkaXIucHkqIiwgIip0ZW1wb3JhcnkgZGlyZWN0b3J5KiJdKQotCi0g
ICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc190ZXN0bW9kdWxlKHNlbGYsIHRlc3RkaXIpOgotICAg
ICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgJycnCi0gICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAg
IGRlZiBfYXJnMCgpOgotICAgICAgICAgICAgICAgICIiIiBoaWRkZW4gIiIiCi0gICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBhcmcxKCk6Ci0gICAgICAgICAgICAg
ICAgIiIiICBoZWxsbyB3b3JsZCAiIiIKLSAgICAgICAgJycnCi0gICAgICAgICkKLSAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMiLCBwKQotICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICp0
bXBkaXIKLSAgICAgICAgICAgICpmaXh0dXJlcyBkZWZpbmVkIGZyb20qCi0gICAgICAgICAgICAq
YXJnMSoKLSAgICAgICAgICAgICpoZWxsbyB3b3JsZCoKLSAgICAgICAgIiIiCi0gICAgICAgICkK
LSAgICAgICAgYXNzZXJ0ICJhcmcwIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQotCi0gICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ0ZXN0bW9kIiwgW1RydWUsIEZhbHNlXSkKLSAgICBk
ZWYgdGVzdF9zaG93X2ZpeHR1cmVzX2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIsIHRlc3Rtb2QpOgot
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICcnJwotICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAg
ICBkZWYgYXJnMSgpOgotICAgICAgICAgICAgICAgICIiIiAgaGVsbG8gd29ybGQgIiIiCi0gICAg
ICAgICcnJwotICAgICAgICApCi0gICAgICAgIGlmIHRlc3Rtb2Q6Ci0gICAgICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAgICAgZGVm
IHRlc3RfaGVsbG8oKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgIiIi
Ci0gICAgICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZp
eHR1cmVzIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICAqdG1wZGlyKgotICAgICAgICAgICAgKmZpeHR1cmVzIGRlZmlu
ZWQgZnJvbSpjb25mdGVzdCoKLSAgICAgICAgICAgICphcmcxKgotICAgICAgICAgICAgKmhlbGxv
IHdvcmxkKgotICAgICAgICAiIiIKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rfc2hvd19maXh0
dXJlc190cmltbWVkX2RvYyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgcCA9IHRlc3RkaXIubWFr
ZXB5ZmlsZSgKLSAgICAgICAgICAgIGRlZGVudCgKLSAgICAgICAgICAgICAgICAnJycKLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAg
ICAgICAgZGVmIGFyZzEoKToKLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICAgICBs
aW5lMQotICAgICAgICAgICAgICAgIGxpbmUyCi0KLSAgICAgICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGFyZzIoKToKLSAgICAgICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgICAgICBsaW5lMQotICAgICAgICAgICAgICAgIGxpbmUy
Ci0KLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgJycnCi0gICAgICAgICAgICApCi0gICAg
ICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMiLCBw
KQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICBkZWRl
bnQoCi0gICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQg
ZnJvbSB0ZXN0X3Nob3dfZml4dHVyZXNfdHJpbW1lZF9kb2MgKgotICAgICAgICAgICAgYXJnMgot
ICAgICAgICAgICAgICAgIGxpbmUxCi0gICAgICAgICAgICAgICAgbGluZTIKLSAgICAgICAgICAg
IGFyZzEKLSAgICAgICAgICAgICAgICBsaW5lMQotICAgICAgICAgICAgICAgIGxpbmUyCi0KLSAg
ICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3Nob3df
Zml4dHVyZXNfaW5kZW50ZWRfZG9jKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBwID0gdGVzdGRp
ci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgZGVkZW50KAotICAgICAgICAgICAgICAgICcnJwot
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0g
ICAgICAgICAgICBkZWYgZml4dHVyZTEoKToKLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgICAgICBsaW5lMQotICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCBsaW5lCi0gICAgICAg
ICAgICAgICAgIiIiCi0gICAgICAgICcnJwotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIiwgcCkKLSAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgZGVkZW50KAotICAgICAg
ICAgICAgICAgICIiIgotICAgICAgICAgICAgKiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9z
aG93X2ZpeHR1cmVzX2luZGVudGVkX2RvYyAqCi0gICAgICAgICAgICBmaXh0dXJlMQotICAgICAg
ICAgICAgICAgIGxpbmUxCi0gICAgICAgICAgICAgICAgICAgIGluZGVudGVkIGxpbmUKLSAgICAg
ICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3Nob3dfZml4
dHVyZXNfaW5kZW50ZWRfZG9jX2ZpcnN0X2xpbmVfdW5pbmRlbnRlZChzZWxmLCB0ZXN0ZGlyKToK
LSAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgIGRlZGVudCgKLSAg
ICAgICAgICAgICAgICAnJycKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGZpeHR1cmUxKCk6Ci0gICAgICAgICAg
ICAgICAgIiIibGluZTEKLSAgICAgICAgICAgICAgICBsaW5lMgotICAgICAgICAgICAgICAgICAg
ICBpbmRlbnRlZCBsaW5lCi0gICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICcnJwotICAgICAg
ICAgICAgKQotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LWZpeHR1cmVzIiwgcCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAg
ICAgICAgICAgZGVkZW50KAotICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgKiBmaXh0
dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9zaG93X2ZpeHR1cmVzX2luZGVudGVkX2RvY19maXJzdF9s
aW5lX3VuaW5kZW50ZWQgKgotICAgICAgICAgICAgZml4dHVyZTEKLSAgICAgICAgICAgICAgICBs
aW5lMQotICAgICAgICAgICAgICAgIGxpbmUyCi0gICAgICAgICAgICAgICAgICAgIGluZGVudGVk
IGxpbmUKLSAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLQotICAgIGRlZiB0
ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfaW5fY2xhc3Moc2VsZiwgdGVzdGRpcik6Ci0gICAg
ICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICBkZWRlbnQoCi0gICAgICAg
ICAgICAgICAgJycnCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBjbGFz
cyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAg
ICAgICAgICAgICAgICBkZWYgZml4dHVyZTEoc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgICIi
ImxpbmUxCi0gICAgICAgICAgICAgICAgICAgIGxpbmUyCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpbmRlbnRlZCBsaW5lCi0gICAgICAgICAgICAgICAgICAgICIiIgotICAgICAgICAnJycKLSAg
ICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1maXh0dXJlcyIsIHApCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygK
LSAgICAgICAgICAgIGRlZGVudCgKLSAgICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICog
Zml4dHVyZXMgZGVmaW5lZCBmcm9tIHRlc3Rfc2hvd19maXh0dXJlc19pbmRlbnRlZF9pbl9jbGFz
cyAqCi0gICAgICAgICAgICBmaXh0dXJlMQotICAgICAgICAgICAgICAgIGxpbmUxCi0gICAgICAg
ICAgICAgICAgbGluZTIKLSAgICAgICAgICAgICAgICAgICAgaW5kZW50ZWQgbGluZQotICAgICAg
ICAiIiIKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rfc2hvd19maXh0
dXJlc19kaWZmZXJlbnRfZmlsZXMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgICIiIgotICAgICAg
ICAjODMzOiAtLWZpeHR1cmVzIG9ubHkgc2hvd3MgZml4dHVyZXMgZnJvbSBmaXJzdCBmaWxlCi0g
ICAgICAgICIiIgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICB0ZXN0
X2E9JycnCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQotICAgICAgICAgICAgZGVmIGZpeF9hKCk6Ci0gICAgICAgICAgICAgICAgIiIiRml4
dHVyZSBBIiIiCi0gICAgICAgICAgICAgICAgcGFzcwotCi0gICAgICAgICAgICBkZWYgdGVzdF9h
KGZpeF9hKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICcnJwotICAgICAgICApCi0g
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgIHRlc3RfYj0nJycKLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAg
ICAgICAgICBkZWYgZml4X2IoKToKLSAgICAgICAgICAgICAgICAiIiJGaXh0dXJlIEIiIiIKLSAg
ICAgICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0X2IoZml4X2IpOgotICAg
ICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgJycnCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMiKQotICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgICogZml4dHVyZXMg
ZGVmaW5lZCBmcm9tIHRlc3RfYSAqCi0gICAgICAgICAgICBmaXhfYQotICAgICAgICAgICAgICAg
IEZpeHR1cmUgQQotCi0gICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQgZnJvbSB0ZXN0X2Ig
KgotICAgICAgICAgICAgZml4X2IKLSAgICAgICAgICAgICAgICBGaXh0dXJlIEIKLSAgICAgICAg
IiIiCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfd2l0aF9zYW1lX25h
bWUoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAg
ICAgICAgJycnCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKLSAgICAgICAgICAgIGRlZiBhcmcxKCk6Ci0gICAgICAgICAgICAgICAgIiIiSGVs
bG8gV29ybGQgaW4gY29uZnRlc3QucHkiIiIKLSAgICAgICAgICAgICAgICByZXR1cm4gIkhlbGxv
IFdvcmxkIgotICAgICAgICAnJycKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhhcmcxKToKLSAg
ICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9PSAiSGVsbG8gV29ybGQiCi0gICAgICAgICIiIgot
ICAgICAgICApCi0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICcnJwot
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0g
ICAgICAgICAgICBkZWYgYXJnMSgpOgotICAgICAgICAgICAgICAgICIiIkhpIGZyb20gdGVzdCBt
b2R1bGUiIiIKLSAgICAgICAgICAgICAgICByZXR1cm4gIkhpIgotICAgICAgICAgICAgZGVmIHRl
c3RfYmFyKGFyZzEpOgotICAgICAgICAgICAgICAgIGFzc2VydCBhcmcxID09ICJIaSIKLSAgICAg
ICAgJycnCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
Zml4dHVyZXMiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAg
ICAgICAiIiIKLSAgICAgICAgICAgICogZml4dHVyZXMgZGVmaW5lZCBmcm9tIGNvbmZ0ZXN0ICoK
LSAgICAgICAgICAgIGFyZzEKLSAgICAgICAgICAgICAgICBIZWxsbyBXb3JsZCBpbiBjb25mdGVz
dC5weQotCi0gICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQgZnJvbSB0ZXN0X3Nob3dfZml4
dHVyZXNfd2l0aF9zYW1lX25hbWUgKgotICAgICAgICAgICAgYXJnMQotICAgICAgICAgICAgICAg
IEhpIGZyb20gdGVzdCBtb2R1bGUKLSAgICAgICAgIiIiCi0gICAgICAgICkKLQotICAgIGRlZiB0
ZXN0X2ZpeHR1cmVfZGlzYWxsb3dfdHdpY2Uoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhhdCBh
cHBseWluZyBAcHl0ZXN0LmZpeHR1cmUgdHdpY2UgZ2VuZXJhdGVzIGFuIGVycm9yICgjMjMzNCku
IiIiCi0gICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKLQotICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAg
ICAgIGRlZiBmb28oKToKLSAgICAgICAgICAgICAgICBwYXNzCi0KLQotQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJmbGF2b3IiLCBbImZpeHR1cmUiLCAieWllbGRfZml4dHVyZSJdKQotY2xhc3Mg
VGVzdENvbnRleHRNYW5hZ2VyRml4dHVyZUZ1bmNzKG9iamVjdCk6Ci0KLSAgICBkZWYgdGVzdF9z
aW1wbGUoc2VsZiwgdGVzdGRpciwgZmxhdm9yKToKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAg
ICBAcHl0ZXN0LntmbGF2b3J9Ci0gICAgICAgICAgICBkZWYgYXJnMSgpOgotICAgICAgICAgICAg
ICAgIHByaW50ICgic2V0dXAiKQotICAgICAgICAgICAgICAgIHlpZWxkIDEKLSAgICAgICAgICAg
ICAgICBwcmludCAoInRlYXJkb3duIikKLSAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnMSk6Ci0g
ICAgICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0MSAlcyIgJSBhcmcxKQotICAgICAgICAgICAgZGVm
IHRlc3RfMihhcmcxKToKLSAgICAgICAgICAgICAgICBwcmludCAoInRlc3QyICVzIiAlIGFyZzEp
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IDAKLSAgICAgICAgIiIiLmZvcm1hdCgKLSAgICAgICAg
ICAgICAgICBmbGF2b3I9Zmxhdm9yCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAqc2V0dXAqCi0gICAg
ICAgICAgICAqdGVzdDEgMSoKLSAgICAgICAgICAgICp0ZWFyZG93bioKLSAgICAgICAgICAgICpz
ZXR1cCoKLSAgICAgICAgICAgICp0ZXN0MiAxKgotICAgICAgICAgICAgKnRlYXJkb3duKgotICAg
ICAgICAiIiIKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rfc2NvcGVkKHNlbGYsIHRlc3RkaXIs
IGZsYXZvcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgot
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC57Zmxhdm9yfShz
Y29wZT0ibW9kdWxlIikKLSAgICAgICAgICAgIGRlZiBhcmcxKCk6Ci0gICAgICAgICAgICAgICAg
cHJpbnQgKCJzZXR1cCIpCi0gICAgICAgICAgICAgICAgeWllbGQgMQotICAgICAgICAgICAgICAg
IHByaW50ICgidGVhcmRvd24iKQotICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcxKToKLSAgICAg
ICAgICAgICAgICBwcmludCAoInRlc3QxICVzIiAlIGFyZzEpCi0gICAgICAgICAgICBkZWYgdGVz
dF8yKGFyZzEpOgotICAgICAgICAgICAgICAgIHByaW50ICgidGVzdDIgJXMiICUgYXJnMSkKLSAg
ICAgICAgIiIiLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBmbGF2b3I9Zmxhdm9yCi0gICAgICAg
ICAgICApCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1z
IikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgIiIi
Ci0gICAgICAgICAgICAqc2V0dXAqCi0gICAgICAgICAgICAqdGVzdDEgMSoKLSAgICAgICAgICAg
ICp0ZXN0MiAxKgotICAgICAgICAgICAgKnRlYXJkb3duKgotICAgICAgICAiIiIKLSAgICAgICAg
KQotCi0gICAgZGVmIHRlc3Rfc2V0dXBfZXhjZXB0aW9uKHNlbGYsIHRlc3RkaXIsIGZsYXZvcik6
Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC57Zmxhdm9yfShzY29wZT0ibW9k
dWxlIikKLSAgICAgICAgICAgIGRlZiBhcmcxKCk6Ci0gICAgICAgICAgICAgICAgcHl0ZXN0LmZh
aWwoInNldHVwIikKLSAgICAgICAgICAgICAgICB5aWVsZCAxCi0gICAgICAgICAgICBkZWYgdGVz
dF8xKGFyZzEpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiLmZvcm1hdCgKLSAg
ICAgICAgICAgICAgICBmbGF2b3I9Zmxhdm9yCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICAqcHl0ZXN0
LmZhaWwqc2V0dXAqCi0gICAgICAgICAgICAqMSBlcnJvcioKLSAgICAgICAgIiIiCi0gICAgICAg
ICkKLQotICAgIGRlZiB0ZXN0X3RlYXJkb3duX2V4Y2VwdGlvbihzZWxmLCB0ZXN0ZGlyLCBmbGF2
b3IpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3Que2ZsYXZvcn0oc2NvcGU9
Im1vZHVsZSIpCi0gICAgICAgICAgICBkZWYgYXJnMSgpOgotICAgICAgICAgICAgICAgIHlpZWxk
IDEKLSAgICAgICAgICAgICAgICBweXRlc3QuZmFpbCgidGVhcmRvd24iKQotICAgICAgICAgICAg
ZGVmIHRlc3RfMShhcmcxKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIi5mb3Jt
YXQoCi0gICAgICAgICAgICAgICAgZmxhdm9yPWZsYXZvcgotICAgICAgICAgICAgKQotICAgICAg
ICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCi0gICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAg
KnB5dGVzdC5mYWlsKnRlYXJkb3duKgotICAgICAgICAgICAgKjEgcGFzc2VkKjEgZXJyb3IqCi0g
ICAgICAgICIiIgotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF95aWVsZHNfbW9yZV90aGFuX29u
ZShzZWxmLCB0ZXN0ZGlyLCBmbGF2b3IpOgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBw
eXRlc3Que2ZsYXZvcn0oc2NvcGU9Im1vZHVsZSIpCi0gICAgICAgICAgICBkZWYgYXJnMSgpOgot
ICAgICAgICAgICAgICAgIHlpZWxkIDEKLSAgICAgICAgICAgICAgICB5aWVsZCAyCi0gICAgICAg
ICAgICBkZWYgdGVzdF8xKGFyZzEpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIi
LmZvcm1hdCgKLSAgICAgICAgICAgICAgICBmbGF2b3I9Zmxhdm9yCi0gICAgICAgICAgICApCi0g
ICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKLSAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgIiIiCi0gICAgICAg
ICAgICAqZml4dHVyZSBmdW5jdGlvbioKLSAgICAgICAgICAgICp0ZXN0X3lpZWxkcyo6MioKLSAg
ICAgICAgIiIiCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2N1c3RvbV9uYW1lKHNlbGYsIHRl
c3RkaXIsIGZsYXZvcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAg
ICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC57Zmxh
dm9yfShuYW1lPSdtZW93JykKLSAgICAgICAgICAgIGRlZiBhcmcxKCk6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuICdtZXcnCi0gICAgICAgICAgICBkZWYgdGVzdF8xKG1lb3cpOgotICAgICAgICAg
ICAgICAgIHByaW50KG1lb3cpCi0gICAgICAgICIiIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAg
Zmxhdm9yPWZsYXZvcgotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygiKm1ldyoiKQotCi0KLWNsYXNzIFRlc3RQYXJhbWV0ZXJpemVkU3ViUmVxdWVzdChvYmpl
Y3QpOgotCi0gICAgZGVmIHRlc3RfY2FsbF9mcm9tX2ZpeHR1cmUoc2VsZiwgdGVzdGRpcik6Ci0g
ICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0g
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShw
YXJhbXM9WzAsIDEsIDJdKQotICAgICAgICAgICAgZGVmIGZpeF93aXRoX3BhcmFtKHJlcXVlc3Qp
OgotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCi0KLSAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZQotICAgICAgICAgICAgZGVmIGdldF9uYW1lZF9maXh0dXJlKHJlcXVlc3Qp
OgotICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgnZml4X3dp
dGhfcGFyYW0nKQotCi0gICAgICAgICAgICBkZWYgdGVzdF9mb28ocmVxdWVzdCwgZ2V0X25hbWVk
X2ZpeHR1cmUpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgICIiIgotICAgICAg
ICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBFKkZh
aWxlZDogVGhlIHJlcXVlc3RlZCBmaXh0dXJlIGhhcyBubyBwYXJhbWV0ZXIgZGVmaW5lZCBmb3Ig
dGhlIGN1cnJlbnQgdGVzdC4KLSAgICAgICAgICAgIEUqCi0gICAgICAgICAgICBFKlJlcXVlc3Rl
ZCBmaXh0dXJlICdmaXhfd2l0aF9wYXJhbScgZGVmaW5lZCBpbjoKLSAgICAgICAgICAgIEUqe306
NAotICAgICAgICAgICAgRSpSZXF1ZXN0ZWQgaGVyZToKLSAgICAgICAgICAgIEUqe306OQotICAg
ICAgICAgICAgKjEgZXJyb3IqCi0gICAgICAgICAgICAiIiIuZm9ybWF0KAotICAgICAgICAgICAg
ICAgIHRlc3RmaWxlLmJhc2VuYW1lLCB0ZXN0ZmlsZS5iYXNlbmFtZQotICAgICAgICAgICAgKQot
ICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9jYWxsX2Zyb21fdGVzdChzZWxmLCB0ZXN0ZGlyKToK
LSAgICAgICAgdGVzdGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIK
LSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHBhcmFtcz1bMCwgMSwgMl0pCi0gICAgICAgICAgICBkZWYgZml4X3dpdGhfcGFyYW0ocmVxdWVz
dCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotICAgICAgICAgICAg
ZGVmIHRlc3RfZm9vKHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVy
ZXZhbHVlKCdmaXhfd2l0aF9wYXJhbScpCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgKQotICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcygKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgRSpGYWlsZWQ6IFRo
ZSByZXF1ZXN0ZWQgZml4dHVyZSBoYXMgbm8gcGFyYW1ldGVyIGRlZmluZWQgZm9yIHRoZSBjdXJy
ZW50IHRlc3QuCi0gICAgICAgICAgICBFKgotICAgICAgICAgICAgRSpSZXF1ZXN0ZWQgZml4dHVy
ZSAnZml4X3dpdGhfcGFyYW0nIGRlZmluZWQgaW46Ci0gICAgICAgICAgICBFKnt9OjQKLSAgICAg
ICAgICAgIEUqUmVxdWVzdGVkIGhlcmU6Ci0gICAgICAgICAgICBFKnt9OjgKLSAgICAgICAgICAg
ICoxIGZhaWxlZCoKLSAgICAgICAgICAgICIiIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgdGVz
dGZpbGUuYmFzZW5hbWUsIHRlc3RmaWxlLmJhc2VuYW1lCi0gICAgICAgICAgICApCi0gICAgICAg
ICkKLQotICAgIGRlZiB0ZXN0X2V4dGVybmFsX2ZpeHR1cmUoc2VsZiwgdGVzdGRpcik6Ci0gICAg
ICAgIGNvbmZmaWxlID0gdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBh
cmFtcz1bMCwgMSwgMl0pCi0gICAgICAgICAgICBkZWYgZml4X3dpdGhfcGFyYW0ocmVxdWVzdCk6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLSAgICAgICAgICAgICIiIgot
ICAgICAgICApCi0KLSAgICAgICAgdGVzdGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAg
ICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhyZXF1ZXN0KToKLSAgICAgICAg
ICAgICAgICByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgnZml4X3dpdGhfcGFyYW0nKQotICAgICAg
ICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAgICAiIiIK
LSAgICAgICAgICAgIEUqRmFpbGVkOiBUaGUgcmVxdWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFt
ZXRlciBkZWZpbmVkIGZvciB0aGUgY3VycmVudCB0ZXN0LgotICAgICAgICAgICAgRSoKLSAgICAg
ICAgICAgIEUqUmVxdWVzdGVkIGZpeHR1cmUgJ2ZpeF93aXRoX3BhcmFtJyBkZWZpbmVkIGluOgot
ICAgICAgICAgICAgRSp7fTo0Ci0gICAgICAgICAgICBFKlJlcXVlc3RlZCBoZXJlOgotICAgICAg
ICAgICAgRSp7fToyCi0gICAgICAgICAgICAqMSBmYWlsZWQqCi0gICAgICAgICAgICAiIiIuZm9y
bWF0KAotICAgICAgICAgICAgICAgIGNvbmZmaWxlLmJhc2VuYW1lLCB0ZXN0ZmlsZS5iYXNlbmFt
ZQotICAgICAgICAgICAgKQotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9ub25fcmVsYXRpdmVf
cGF0aChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVzdHNfZGlyID0gdGVzdGRpci5ta2Rpcigi
dGVzdHMiKQotICAgICAgICBmaXhkaXIgPSB0ZXN0ZGlyLm1rZGlyKCJmaXh0dXJlcyIpCi0gICAg
ICAgIGZpeGZpbGUgPSBmaXhkaXIuam9pbigiZml4LnB5IikKLSAgICAgICAgZml4ZmlsZS53cml0
ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIi
IgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUocGFyYW1zPVswLCAxLCAyXSkKLSAgICAgICAgICAgIGRlZiBmaXhfd2l0aF9wYXJhbShyZXF1
ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotICAgICAgICAgICAg
IiIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLQotICAgICAgICB0ZXN0ZmlsZSA9IHRlc3Rz
X2Rpci5qb2luKCJ0ZXN0X2Zvb3MucHkiKQotICAgICAgICB0ZXN0ZmlsZS53cml0ZSgKLSAgICAg
ICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAotICAgICAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgZnJvbSBmaXggaW1wb3J0IGZpeF93aXRoX3BhcmFtCi0KLSAgICAgICAgICAgIGRlZiB0
ZXN0X2ZvbyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmdldGZpeHR1cmV2YWx1
ZSgnZml4X3dpdGhfcGFyYW0nKQotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICApCi0gICAg
ICAgICkKLQotICAgICAgICB0ZXN0c19kaXIuY2hkaXIoKQotICAgICAgICB0ZXN0ZGlyLnN5c3Bh
dGhpbnNlcnQoZml4ZGlyKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0g
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAgICAgICAgICIiIgotICAg
ICAgICAgICAgRSpGYWlsZWQ6IFRoZSByZXF1ZXN0ZWQgZml4dHVyZSBoYXMgbm8gcGFyYW1ldGVy
IGRlZmluZWQgZm9yIHRoZSBjdXJyZW50IHRlc3QuCi0gICAgICAgICAgICBFKgotICAgICAgICAg
ICAgRSpSZXF1ZXN0ZWQgZml4dHVyZSAnZml4X3dpdGhfcGFyYW0nIGRlZmluZWQgaW46Ci0gICAg
ICAgICAgICBFKnt9OjUKLSAgICAgICAgICAgIEUqUmVxdWVzdGVkIGhlcmU6Ci0gICAgICAgICAg
ICBFKnt9OjUKLSAgICAgICAgICAgICoxIGZhaWxlZCoKLSAgICAgICAgICAgICIiIi5mb3JtYXQo
Ci0gICAgICAgICAgICAgICAgZml4ZmlsZS5zdHJwYXRoLCB0ZXN0ZmlsZS5iYXNlbmFtZQotICAg
ICAgICAgICAgKQotICAgICAgICApCi0KLQotZGVmIHRlc3RfcHl0ZXN0X2ZpeHR1cmVfc2V0dXBf
YW5kX3Bvc3RfZmluYWxpemVyX2hvb2sodGVzdGRpcik6Ci0gICAgdGVzdGRpci5tYWtlY29uZnRl
c3QoCi0gICAgICAgICIiIgotICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1
bmN0aW9uCi0gICAgICAgIGRlZiBweXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVmLCByZXF1
ZXN0KToKLSAgICAgICAgICAgIHByaW50KCdST09UIHNldHVwIGhvb2sgY2FsbGVkIGZvciB7MH0g
ZnJvbSB7MX0nLmZvcm1hdChmaXh0dXJlZGVmLmFyZ25hbWUsIHJlcXVlc3Qubm9kZS5uYW1lKSkK
LSAgICAgICAgZGVmIHB5dGVzdF9maXh0dXJlX3Bvc3RfZmluYWxpemVyKGZpeHR1cmVkZWYsIHJl
cXVlc3QpOgotICAgICAgICAgICAgcHJpbnQoJ1JPT1QgZmluYWxpemVyIGhvb2sgY2FsbGVkIGZv
ciB7MH0gZnJvbSB7MX0nLmZvcm1hdChmaXh0dXJlZGVmLmFyZ25hbWUsIHJlcXVlc3Qubm9kZS5u
YW1lKSkKLSAgICAiIiIKLSAgICApCi0gICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAq
KnsKLSAgICAgICAgICAgICJ0ZXN0cy9jb25mdGVzdC5weSI6ICIiIgotICAgICAgICAgICAgZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgotICAgICAgICAgICAgZGVmIHB5dGVz
dF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIHBy
aW50KCdURVNUUyBzZXR1cCBob29rIGNhbGxlZCBmb3IgezB9IGZyb20gezF9Jy5mb3JtYXQoZml4
dHVyZWRlZi5hcmduYW1lLCByZXF1ZXN0Lm5vZGUubmFtZSkpCi0gICAgICAgICAgICBkZWYgcHl0
ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4dHVyZWRlZiwgcmVxdWVzdCk6Ci0gICAgICAg
ICAgICAgICAgcHJpbnQoJ1RFU1RTIGZpbmFsaXplciBob29rIGNhbGxlZCBmb3IgezB9IGZyb20g
ezF9Jy5mb3JtYXQoZml4dHVyZWRlZi5hcmduYW1lLCByZXF1ZXN0Lm5vZGUubmFtZSkpCi0gICAg
ICAgICIiIiwKLSAgICAgICAgICAgICJ0ZXN0cy90ZXN0X2hvb2tzLnB5IjogIiIiCi0gICAgICAg
ICAgICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0gICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCi0gICAgICAgICAg
ICBkZWYgbXlfZml4dHVyZSgpOgotICAgICAgICAgICAgICAgIHJldHVybiAnc29tZScKLQotICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuYyhteV9maXh0dXJlKToKLSAgICAgICAgICAgICAgICBwcmlu
dCgnVEVTVCB0ZXN0X2Z1bmMnKQotICAgICAgICAgICAgICAgIGFzc2VydCBteV9maXh0dXJlID09
ICdzb21lJwotICAgICAgICAiIiIsCi0gICAgICAgIH0KLSAgICApCi0gICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi1zIikKLSAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCi0gICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICBbCi0gICAgICAgICAgICAiKlRFU1RT
IHNldHVwIGhvb2sgY2FsbGVkIGZvciBteV9maXh0dXJlIGZyb20gdGVzdF9mdW5jKiIsCi0gICAg
ICAgICAgICAiKlJPT1Qgc2V0dXAgaG9vayBjYWxsZWQgZm9yIG15X2ZpeHR1cmUgZnJvbSB0ZXN0
X2Z1bmMqIiwKLSAgICAgICAgICAgICIqVEVTVCB0ZXN0X2Z1bmMqIiwKLSAgICAgICAgICAgICIq
VEVTVFMgZmluYWxpemVyIGhvb2sgY2FsbGVkIGZvciBteV9maXh0dXJlIGZyb20gdGVzdF9mdW5j
KiIsCi0gICAgICAgICAgICAiKlJPT1QgZmluYWxpemVyIGhvb2sgY2FsbGVkIGZvciBteV9maXh0
dXJlIGZyb20gdGVzdF9mdW5jKiIsCi0gICAgICAgIF0KLSAgICApCi0KLQotY2xhc3MgVGVzdFNj
b3BlT3JkZXJpbmcob2JqZWN0KToKLSAgICAiIiJDbGFzcyBvZiB0ZXN0cyB0aGF0IGVuc3VyZSBm
aXh0dXJlcyBhcmUgb3JkZXJlZCBiYXNlZCBvbiB0aGVpciBzY29wZXMgKCMyNDA1KSIiIgotCi0g
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ1c2VfbWFyayIsIFtUcnVlLCBGYWxzZV0pCi0g
ICAgZGVmIHRlc3RfZnVuY19jbG9zdXJlX21vZHVsZV9hdXRvKHNlbGYsIHRlc3RkaXIsIHVzZV9t
YXJrKToKLSAgICAgICAgIiIiU2VtYW50aWNhbGx5IGlkZW50aWNhbCB0byB0aGUgZXhhbXBsZSBw
b3N0ZWQgaW4gIzI0MDUgd2hlbiBgYHVzZV9tYXJrPVRydWVgYCIiIgotICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
LQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdtb2R1bGUnLCBhdXRvdXNlPXth
dXRvdXNlfSkKLSAgICAgICAgICAgIGRlZiBtMSgpOiBwYXNzCi0KLSAgICAgICAgICAgIGlmIHt1
c2VfbWFya306Ci0gICAgICAgICAgICAgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnVzZWZp
eHR1cmVzKCdtMScpCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rp
b24nLCBhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICBkZWYgZjEoKTogcGFzcwotCi0gICAgICAg
ICAgICBkZWYgdGVzdF9mdW5jKG0xKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIi
Ii5mb3JtYXQoCi0gICAgICAgICAgICAgICAgYXV0b3VzZT1ub3QgdXNlX21hcmssIHVzZV9tYXJr
PXVzZV9tYXJrCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgaXRlbXMsIF8gPSB0
ZXN0ZGlyLmlubGluZV9nZW5pdGVtcygpCi0gICAgICAgIHJlcXVlc3QgPSBGaXh0dXJlUmVxdWVz
dChpdGVtc1swXSkKLSAgICAgICAgYXNzZXJ0IHJlcXVlc3QuZml4dHVyZW5hbWVzID09ICJtMSBm
MSIuc3BsaXQoKQotCi0gICAgZGVmIHRlc3RfZnVuY19jbG9zdXJlX3dpdGhfbmF0aXZlX2ZpeHR1
cmVzKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKLSAgICAgICAgIiIiU2FuaXR5IGNoZWNr
IHRoYXQgdmVyaWZpZXMgdGhlIG9yZGVyIHJldHVybmVkIGJ5IHRoZSBjbG9zdXJlcyBhbmQgdGhl
IGFjdHVhbCBmaXh0dXJlIGV4ZWN1dGlvbiBvcmRlcjoKLSAgICAgICAgVGhlIGV4ZWN1dGlvbiBv
cmRlciBtYXkgZGlmZmVyIGJlY2F1c2Ugb2YgZml4dHVyZSBpbnRlci1kZXBlbmRlbmNpZXMuCi0g
ICAgICAgICIiIgotICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHB5dGVzdCwgIkZJWFRVUkVf
T1JERVIiLCBbXSwgcmFpc2luZz1GYWxzZSkKLSAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAot
ICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAgICAgICAgICAg
IEZJWFRVUkVfT1JERVIgPSBweXRlc3QuRklYVFVSRV9PUkRFUgotCi0gICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQotICAgICAgICAgICAgZGVmIHMxKCk6Ci0gICAg
ICAgICAgICAgICAgRklYVFVSRV9PUkRFUi5hcHBlbmQoJ3MxJykKLQotICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQotICAgICAgICAgICAgZGVmIG0xKCk6Ci0gICAg
ICAgICAgICAgICAgRklYVFVSRV9PUkRFUi5hcHBlbmQoJ20xJykKLQotICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKLSAgICAgICAgICAgIGRlZiBteV90bXBkaXJf
ZmFjdG9yeSgpOgotICAgICAgICAgICAgICAgIEZJWFRVUkVfT1JERVIuYXBwZW5kKCdteV90bXBk
aXJfZmFjdG9yeScpCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICAgICAg
ZGVmIG15X3RtcGRpcihteV90bXBkaXJfZmFjdG9yeSk6Ci0gICAgICAgICAgICAgICAgRklYVFVS
RV9PUkRFUi5hcHBlbmQoJ215X3RtcGRpcicpCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQotICAgICAgICAgICAgZGVmIGYxKG15X3RtcGRpcik6Ci0gICAgICAgICAgICAgICAgRklYVFVS
RV9PUkRFUi5hcHBlbmQoJ2YxJykKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAg
ICAgICAgICBkZWYgZjIoKToKLSAgICAgICAgICAgICAgICBGSVhUVVJFX09SREVSLmFwcGVuZCgn
ZjInKQotCi0gICAgICAgICAgICBkZWYgdGVzdF9mb28oZjEsIG0xLCBmMiwgczEpOiBwYXNzCi0g
ICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIGl0ZW1zLCBfID0gdGVzdGRpci5pbmxpbmVf
Z2VuaXRlbXMoKQotICAgICAgICByZXF1ZXN0ID0gRml4dHVyZVJlcXVlc3QoaXRlbXNbMF0pCi0g
ICAgICAgICMgb3JkZXIgb2YgZml4dHVyZXMgYmFzZWQgb24gdGhlaXIgc2NvcGUgYW5kIHBvc2l0
aW9uIGluIHRoZSBwYXJhbWV0ZXIgbGlzdAotICAgICAgICBhc3NlcnQgcmVxdWVzdC5maXh0dXJl
bmFtZXMgPT0gInMxIG15X3RtcGRpcl9mYWN0b3J5IG0xIGYxIGYyIG15X3RtcGRpciIuc3BsaXQo
KQotICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgICMgYWN0dWFsIGZpeHR1cmUg
ZXhlY3V0aW9uIGRpZmZlcnM6IGRlcGVuZGVudCBmaXh0dXJlcyBtdXN0IGJlIGNyZWF0ZWQgZmly
c3QgKCJteV90bXBkaXIiKQotICAgICAgICBhc3NlcnQgcHl0ZXN0LkZJWFRVUkVfT1JERVIgPT0g
InMxIG15X3RtcGRpcl9mYWN0b3J5IG0xIG15X3RtcGRpciBmMSBmMiIuc3BsaXQoKQotCi0gICAg
ZGVmIHRlc3RfZnVuY19jbG9zdXJlX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0Ci0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nbW9kdWxlJykKLSAgICAg
ICAgICAgIGRlZiBtMSgpOiBwYXNzCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0nZnVuY3Rpb24nKQotICAgICAgICAgICAgZGVmIGYxKCk6IHBhc3MKLQotICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYyhmMSwgbTEpOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIi
Ci0gICAgICAgICkKLSAgICAgICAgaXRlbXMsIF8gPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcygp
Ci0gICAgICAgIHJlcXVlc3QgPSBGaXh0dXJlUmVxdWVzdChpdGVtc1swXSkKLSAgICAgICAgYXNz
ZXJ0IHJlcXVlc3QuZml4dHVyZW5hbWVzID09ICJtMSBmMSIuc3BsaXQoKQotCi0gICAgZGVmIHRl
c3RfZnVuY19jbG9zdXJlX3Njb3Blc19yZW9yZGVyZWQoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAg
ICIiIlRlc3QgZW5zdXJlcyB0aGF0IGZpeHR1cmVzIGFyZSBvcmRlcmVkIGJ5IHNjb3BlIHJlZ2Fy
ZGxlc3Mgb2YgdGhlIG9yZGVyIG9mIHRoZSBwYXJhbWV0ZXJzLCBhbHRob3VnaAotICAgICAgICBm
aXh0dXJlcyBvZiBzYW1lIHNjb3BlIGtlZXAgdGhlIGRlY2xhcmVkIG9yZGVyCi0gICAgICAgICIi
IgotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdz
ZXNzaW9uJykKLSAgICAgICAgICAgIGRlZiBzMSgpOiBwYXNzCi0KLSAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShzY29wZT0nbW9kdWxlJykKLSAgICAgICAgICAgIGRlZiBtMSgpOiBwYXNzCi0K
LSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24nKQotICAgICAgICAg
ICAgZGVmIGYxKCk6IHBhc3MKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdm
dW5jdGlvbicpCi0gICAgICAgICAgICBkZWYgZjIoKTogcGFzcwotCi0gICAgICAgICAgICBjbGFz
cyBUZXN0OgotCi0gICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdjbGFzcycp
Ci0gICAgICAgICAgICAgICAgZGVmIGMxKGNscyk6IHBhc3MKLQotICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMoc2VsZiwgZjIsIGYxLCBjMSwgbTEsIHMxKToKLSAgICAgICAgICAgICAgICAg
ICAgcGFzcwotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBpdGVtcywgXyA9IHRlc3Rk
aXIuaW5saW5lX2dlbml0ZW1zKCkKLSAgICAgICAgcmVxdWVzdCA9IEZpeHR1cmVSZXF1ZXN0KGl0
ZW1zWzBdKQotICAgICAgICBhc3NlcnQgcmVxdWVzdC5maXh0dXJlbmFtZXMgPT0gInMxIG0xIGMx
IGYyIGYxIi5zcGxpdCgpCi0KLSAgICBkZWYgdGVzdF9mdW5jX2Nsb3N1cmVfc2FtZV9zY29wZV9j
bG9zZXJfcm9vdF9maXJzdChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgIiIiQXV0by11c2UgZml4
dHVyZXMgb2Ygc2FtZSBzY29wZSBhcmUgb3JkZXJlZCBieSBjbG9zZXItdG8tcm9vdCBmaXJzdCIi
IgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9
J21vZHVsZScsIGF1dG91c2U9VHJ1ZSkKLSAgICAgICAgICAgIGRlZiBtX2NvbmYoKTogcGFzcwot
ICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAg
ICAgICAgICAqKnsKLSAgICAgICAgICAgICAgICAic3ViL2NvbmZ0ZXN0LnB5IjogIiIiCi0gICAg
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlKHNjb3BlPSdtb2R1bGUnLCBhdXRvdXNlPVRydWUpCi0gICAgICAgICAgICAgICAgZGVmIG1f
c3ViKCk6IHBhc3MKLSAgICAgICAgICAgICIiIiwKLSAgICAgICAgICAgICAgICAic3ViL3Rlc3Rf
ZnVuYy5weSI6ICIiIgotICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLQotICAgICAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nbW9kdWxlJywgYXV0b3VzZT1UcnVlKQotICAg
ICAgICAgICAgICAgIGRlZiBtX3Rlc3QoKTogcGFzcwotCi0gICAgICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKHNjb3BlPSdmdW5jdGlvbicpCi0gICAgICAgICAgICAgICAgZGVmIGYxKCk6IHBh
c3MKLQotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMobV90ZXN0LCBmMSk6Ci0gICAgICAg
ICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiLAotICAgICAgICAgICAgfQotICAgICAgICAp
Ci0gICAgICAgIGl0ZW1zLCBfID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoKQotICAgICAgICBy
ZXF1ZXN0ID0gRml4dHVyZVJlcXVlc3QoaXRlbXNbMF0pCi0gICAgICAgIGFzc2VydCByZXF1ZXN0
LmZpeHR1cmVuYW1lcyA9PSAibV9jb25mIG1fc3ViIG1fdGVzdCBmMSIuc3BsaXQoKQotCi0gICAg
ZGVmIHRlc3RfZnVuY19jbG9zdXJlX2FsbF9zY29wZXNfY29tcGxleChzZWxmLCB0ZXN0ZGlyKToK
LSAgICAgICAgIiIiQ29tcGxleCB0ZXN0IGludm9sdmluZyBhbGwgc2NvcGVzIGFuZCBtaXhpbmcg
YXV0b3VzZSB3aXRoIG5vcm1hbCBmaXh0dXJlcyIiIgotICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotCi0gICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nKQotICAgICAgICAgICAgZGVm
IHMxKCk6IHBhc3MKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0KLSAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nbW9kdWxlJywgYXV0b3VzZT1UcnVlKQot
ICAgICAgICAgICAgZGVmIG0xKCk6IHBhc3MKLQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHNjb3BlPSdtb2R1bGUnKQotICAgICAgICAgICAgZGVmIG0yKHMxKTogcGFzcwotCi0gICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykKLSAgICAgICAgICAgIGRlZiBm
MSgpOiBwYXNzCi0KLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24n
KQotICAgICAgICAgICAgZGVmIGYyKCk6IHBhc3MKLQotICAgICAgICAgICAgY2xhc3MgVGVzdDoK
LQotICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nY2xhc3MnLCBhdXRvdXNl
PVRydWUpCi0gICAgICAgICAgICAgICAgZGVmIGMxKHNlbGYpOgotICAgICAgICAgICAgICAgICAg
ICBwYXNzCi0KLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYsIGYyLCBmMSwgbTIp
OgotICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAg
ICAgIGl0ZW1zLCBfID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoKQotICAgICAgICByZXF1ZXN0
ID0gRml4dHVyZVJlcXVlc3QoaXRlbXNbMF0pCi0gICAgICAgIGFzc2VydCByZXF1ZXN0LmZpeHR1
cmVuYW1lcyA9PSAiczEgbTEgbTIgYzEgZjIgZjEiLnNwbGl0KCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ZpeHR1cmVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9w
eXRob24vZml4dHVyZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg2OTQzMWM2Mzk5ZTMwZDgwN2UzZjAzN2Ix
NDcyZDRhY2M0OGNiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0
aG9uL2ZpeHR1cmVzLnB5CkBAIC0wLDAgKzEsMzk5NSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZXh0d3JhcAorCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9w
eXRlc3QgaW1wb3J0IGZpeHR1cmVzCitmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IEZpeHR1
cmVMb29rdXBFcnJvcgorZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBGaXh0dXJlUmVxdWVz
dAorZnJvbSBfcHl0ZXN0LnBhdGhsaWIgaW1wb3J0IFBhdGgKK2Zyb20gX3B5dGVzdC5weXRlc3Rl
ciBpbXBvcnQgZ2V0X3B1YmxpY19uYW1lcworZnJvbSBfcHl0ZXN0Lndhcm5pbmdzIGltcG9ydCBT
SE9XX1BZVEVTVF9XQVJOSU5HU19BUkcKKworCitkZWYgdGVzdF9nZXRmdW5jYXJnbmFtZXMoKToK
KyAgICBkZWYgZigpOgorICAgICAgICBwYXNzCisKKyAgICBhc3NlcnQgbm90IGZpeHR1cmVzLmdl
dGZ1bmNhcmduYW1lcyhmKQorCisgICAgZGVmIGcoYXJnKToKKyAgICAgICAgcGFzcworCisgICAg
YXNzZXJ0IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhnKSA9PSAoImFyZyIsKQorCisgICAgZGVm
IGgoYXJnMSwgYXJnMj0iaGVsbG8iKToKKyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IGZpeHR1
cmVzLmdldGZ1bmNhcmduYW1lcyhoKSA9PSAoImFyZzEiLCkKKworICAgIGRlZiBoKGFyZzEsIGFy
ZzIsIGFyZzM9ImhlbGxvIik6CisgICAgICAgIHBhc3MKKworICAgIGFzc2VydCBmaXh0dXJlcy5n
ZXRmdW5jYXJnbmFtZXMoaCkgPT0gKCJhcmcxIiwgImFyZzIiKQorCisgICAgY2xhc3MgQShvYmpl
Y3QpOgorICAgICAgICBkZWYgZihzZWxmLCBhcmcxLCBhcmcyPSJoZWxsbyIpOgorICAgICAgICAg
ICAgcGFzcworCisgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgZGVmIHN0YXRpYyhhcmcx
LCBhcmcyKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIGFzc2VydCBmaXh0dXJlcy5nZXRmdW5j
YXJnbmFtZXMoQSgpLmYpID09ICgiYXJnMSIsKQorICAgIGFzc2VydCBmaXh0dXJlcy5nZXRmdW5j
YXJnbmFtZXMoQS5zdGF0aWMsIGNscz1BKSA9PSAoImFyZzEiLCAiYXJnMiIpCisKKworQHB5dGVz
dC5tYXJrLnB5dGVzdGVyX2V4YW1wbGVfcGF0aCgiZml4dHVyZXMvZmlsbF9maXh0dXJlcyIpCitj
bGFzcyBUZXN0RmlsbEZpeHR1cmVzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfZmlsbGZ1bmNhcmdz
X2V4cG9zZWQoc2VsZik6CisgICAgICAgICMgdXNlZCBieSBvZWpza2l0LCBrZXB0IGZvciBjb21w
YXRpYmlsaXR5CisgICAgICAgIGFzc2VydCBweXRlc3QuX2ZpbGxmdW5jYXJncyA9PSBmaXh0dXJl
cy5maWxsZml4dHVyZXMKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmdfbG9va3VwZmFpbHMoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCkKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKSAgIyAiLS1jb2xsZWN0LW9ubHkiKQorICAgICAgICBhc3Nl
cnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygK
KyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKmRlZiB0ZXN0X2Z1bmMoc29tZSkqCisgICAg
ICAgICAgICAqZml4dHVyZSpzb21lKm5vdCBmb3VuZCoKKyAgICAgICAgICAgICp4eXpzb21ldGhp
bmcqCisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfZGV0ZWN0X3Jl
Y3Vyc2l2ZV9kZXBlbmRlbmN5X2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGly
LmNvcHlfZXhhbXBsZSgpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWyIqcmVjdXJz
aXZlIGRlcGVuZGVuY3kgaW52b2x2aW5nIGZpeHR1cmUgJ2ZpeDEnIGRldGVjdGVkKiJdCisgICAg
ICAgICkKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmdfYmFzaWMoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCkKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRl
bShQYXRoKCJ0ZXN0X2Z1bmNhcmdfYmFzaWMucHkiKSkKKyAgICAgICAgZml4dHVyZXMuZmlsbGZp
eHR1cmVzKGl0ZW0pCisgICAgICAgIGRlbCBpdGVtLmZ1bmNhcmdzWyJyZXF1ZXN0Il0KKyAgICAg
ICAgYXNzZXJ0IGxlbihnZXRfcHVibGljX25hbWVzKGl0ZW0uZnVuY2FyZ3MpKSA9PSAyCisgICAg
ICAgIGFzc2VydCBpdGVtLmZ1bmNhcmdzWyJzb21lIl0gPT0gInRlc3RfZnVuYyIKKyAgICAgICAg
YXNzZXJ0IGl0ZW0uZnVuY2FyZ3NbIm90aGVyIl0gPT0gNDIKKworICAgIGRlZiB0ZXN0X2Z1bmNh
cmdfbG9va3VwX21vZHVsZWxldmVsKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLmNv
cHlfZXhhbXBsZSgpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3RfZnVuY2Fy
Z19sb29rdXBfY2xhc3NsZXZlbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIu
Y29weV9leGFtcGxlKCkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorCisgICAg
ZGVmIHRlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29t
ZXMocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVyZV9tb2R1bGVfY2xhc3Mo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci5jb3B5X2V4YW1wbGUo
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QodGVzdGZpbGUpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIioxIHBhc3NlZCoiXSkKKworICAgIGRlZiB0ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0
ZXN0X21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIuY29weV9leGFt
cGxlKCkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KG5leHQocC52aXNpdCgidGVzdF8qLnB5IikpKQorICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKyAgICBkZWYgdGVz
dF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgcCA9IHRlc3RkaXIuY29weV9leGFtcGxlKCkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNz
ZWQqIl0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KG5leHQocC52aXNpdCgi
dGVzdF8qLnB5IikpKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBw
YXNzZWQqIl0pCisKKyAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9wbHVnaW4o
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAg
IHRlc3RwbHVnaW49IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAg
IHJldHVybiA3CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHRlc3RkaXIuc3lzcGF0
aGluc2VydCgpCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAgICAgIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIHB5dGVzdF9wbHVnaW5z
ID0gJ3Rlc3RwbHVnaW4nCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAg
ICAgZGVmIGZvbyhmb28pOgorICAgICAgICAgICAgICAgIHJldHVybiBmb28gKyA3CisgICAgICAg
ICIiIgorICAgICAgICApCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKGZvbyk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGZvbyA9PSAxNAorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisK
KyAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVyZV9wbHVnaW5fcGx1Z2luKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICAjIFR3byBwbHVnaW5zIHNob3VsZCBleHRlbmQgZWFjaCBvcmRlciBpbiBsb2Fk
aW5nIG9yZGVyCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgIHRlc3Rw
bHVnaW4wPSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmb28oKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gNworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICAgICB0ZXN0cGx1Z2luMT0iIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZm9vKGZvbyk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZvbyArIDcKKyAgICAgICAgIiIiCisgICAgICAgICkK
KyAgICAgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KCkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBweXRlc3RfcGx1Z2lucyA9IFsndGVz
dHBsdWdpbjAnLCAndGVzdHBsdWdpbjEnXQorCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oZm9v
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgZm9vID09IDE0CisgICAgICAgICIiIgorICAgICAg
ICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gMAorCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfcGFyYW1ldHJpemVkX2Zp
eHR1cmVfY29uZnRlc3RfbW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IG92
ZXJyaWRlIG9mIHRoZSBwYXJhbWV0cml6ZWQgZml4dHVyZSB3aXRoIG5vbi1wYXJhbWV0cml6ZWQg
b25lIG9uIHRoZSB0ZXN0IG1vZHVsZSBsZXZlbC4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwgMiwgM10pCisgICAgICAgICAgICBk
ZWYgc3BhbShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQor
ICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZmlsZSA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzcGFtKCk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuICdzcGFtJworCisgICAgICAgICAgICBkZWYgdGVzdF9zcGFtKHNwYW0p
OgorICAgICAgICAgICAgICAgIGFzc2VydCBzcGFtID09ICdzcGFtJworICAgICAgICAiIiIKKyAg
ICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZpbGUpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKworICAgIGRlZiB0ZXN0X292ZXJyaWRlX3BhcmFt
ZXRyaXplZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICAiIiJUZXN0IG92ZXJyaWRlIG9mIHRoZSBwYXJhbWV0cml6ZWQgZml4dHVyZSB3aXRoIG5vbi1w
YXJhbWV0cml6ZWQgb25lIG9uIHRoZSBjb25mdGVzdCBsZXZlbC4iIiIKKyAgICAgICAgdGVzdGRp
ci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwgMiwgM10pCisgICAg
ICAgICAgICBkZWYgc3BhbShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVz
dC5wYXJhbQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBzdWJkaXIgPSB0ZXN0ZGly
Lm1rcHlkaXIoInN1YmRpciIpCisgICAgICAgIHN1YmRpci5qb2luKCJjb25mdGVzdC5weSIpLndy
aXRlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwK
KyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgc3BhbSgpOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gJ3NwYW0nCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICApCisgICAg
ICAgICkKKyAgICAgICAgdGVzdGZpbGUgPSBzdWJkaXIuam9pbigidGVzdF9zcGFtLnB5IikKKyAg
ICAgICAgdGVzdGZpbGUud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAg
ICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3NwYW0oc3BhbSk6Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCBzcGFtID09ICJzcGFtIgorICAgICAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFz
c2VkKiJdKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorCisgICAg
ZGVmIHRlc3Rfb3ZlcnJpZGVfbm9uX3BhcmFtZXRyaXplZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVs
ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCBvdmVycmlkZSBvZiB0aGUgbm9uLXBh
cmFtZXRyaXplZCBmaXh0dXJlIHdpdGggcGFyYW1ldHJpemVkIG9uZSBvbiB0aGUgdGVzdCBtb2R1
bGUgbGV2ZWwuIiIiCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAgICAg
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgZGVmIHNwYW0oKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ3Nw
YW0nCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci5t
YWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsIDIsIDNdKQorICAgICAgICAg
ICAgZGVmIHNwYW0ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFy
YW0KKworICAgICAgICAgICAgcGFyYW1zID0geydzcGFtJzogMX0KKworICAgICAgICAgICAgZGVm
IHRlc3Rfc3BhbShzcGFtKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc3BhbSA9PSBwYXJhbXNb
J3NwYW0nXQorICAgICAgICAgICAgICAgIHBhcmFtc1snc3BhbSddICs9IDEKKyAgICAgICAgIiIi
CisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMyBwYXNzZWQqIl0pCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RmaWxlKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWyIqMyBwYXNzZWQqIl0pCisKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9u
b25fcGFyYW1ldHJpemVkX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3Qoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgICIiIlRlc3Qgb3ZlcnJpZGUgb2YgdGhlIG5vbi1wYXJhbWV0cml6ZWQgZml4dHVy
ZSB3aXRoIHBhcmFtZXRyaXplZCBvbmUgb24gdGhlIGNvbmZ0ZXN0IGxldmVsLiIiIgorICAgICAg
ICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRl
ZiBzcGFtKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJworICAgICAgICAiIiIKKyAg
ICAgICAgKQorICAgICAgICBzdWJkaXIgPSB0ZXN0ZGlyLm1rcHlkaXIoInN1YmRpciIpCisgICAg
ICAgIHN1YmRpci5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAorICAgICAgICAgICAgdGV4dHdy
YXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLCAyLCAz
XSkKKyAgICAgICAgICAgICAgICBkZWYgc3BhbShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
ICkKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZmlsZSA9IHN1YmRpci5qb2luKCJ0ZXN0X3NwYW0u
cHkiKQorICAgICAgICB0ZXN0ZmlsZS53cml0ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVu
dCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgcGFyYW1zID0geydzcGFt
JzogMX0KKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3NwYW0oc3BhbSk6CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydCBzcGFtID09IHBhcmFtc1snc3BhbSddCisgICAgICAgICAgICAgICAg
ICAgIHBhcmFtc1snc3BhbSddICs9IDEKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
ICkKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZpbGUpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKKworICAgIGRlZiB0ZXN0X292ZXJyaWRl
X2F1dG91c2VfZml4dHVyZV93aXRoX3BhcmFtZXRyaXplZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0
ZXN0KAorICAgICAgICBzZWxmLCB0ZXN0ZGlyCisgICAgKToKKyAgICAgICAgIiIiVGVzdCBvdmVy
cmlkZSBvZiB0aGUgYXV0b3VzZSBmaXh0dXJlIHdpdGggcGFyYW1ldHJpemVkIG9uZSBvbiB0aGUg
Y29uZnRlc3QgbGV2ZWwuCisgICAgICAgIFRoaXMgdGVzdCBjb3ZlcnMgdGhlIGlzc3VlIGV4cGxh
aW5lZCBpbiBpc3N1ZSAxNjAxCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHNw
YW0oKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ3NwYW0nCisgICAgICAgICIiIgorICAgICAg
ICApCisgICAgICAgIHN1YmRpciA9IHRlc3RkaXIubWtweWRpcigic3ViZGlyIikKKyAgICAgICAg
c3ViZGlyLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5k
ZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKworICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsIDIsIDNdKQor
ICAgICAgICAgICAgICAgIGRlZiBzcGFtKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWVzdC5wYXJhbQorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKQor
ICAgICAgICApCisgICAgICAgIHRlc3RmaWxlID0gc3ViZGlyLmpvaW4oInRlc3Rfc3BhbS5weSIp
CisgICAgICAgIHRlc3RmaWxlLndyaXRlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAor
ICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBwYXJhbXMgPSB7J3NwYW0nOiAx
fQorCisgICAgICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IHNwYW0gPT0gcGFyYW1zWydzcGFtJ10KKyAgICAgICAgICAgICAgICAgICAg
cGFyYW1zWydzcGFtJ10gKz0gMQorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKQor
ICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjMgcGFzc2VkKiJdKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsiKjMgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3RfYXV0b3VzZV9maXh0
dXJlX3BsdWdpbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIyBBIGZpeHR1cmUgZnJvbSBhIHBs
dWdpbiBoYXMgbm8gYmFzZWlkIHNldCwgd2hpY2ggc2NyZXdlZCB1cAorICAgICAgICAjIHRoZSBh
dXRvdXNlIGZpeHR1cmUgaGFuZGxpbmcuCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgICAgIHRlc3RwbHVnaW49IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYg
Zm9vKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuZnVuY3Rpb24uZm9vID0gNwor
ICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
IHB5dGVzdF9wbHVnaW5zID0gJ3Rlc3RwbHVnaW4nCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Zv
byhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5mdW5jdGlvbi5mb28g
PT0gNworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIGRlZiB0ZXN0
X2Z1bmNhcmdfbG9va3VwX2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhX2ZpeHR1cmUo
KTogcGFzcworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBi
X2ZpeHR1cmUoKTogcGFzcworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAg
ICAgIGRlZiBjX2ZpeHR1cmUoKTogcGFzcworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICAgICAgICAgIGRlZiBkX2ZpeHR1cmUoKTogcGFzcworICAgICAgICAiIiIKKyAgICAgICAg
KQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2xvb2t1cF9lcnJvcih1bmtub3duKToKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAg
WworICAgICAgICAgICAgICAgICIqRVJST1IgYXQgc2V0dXAgb2YgdGVzdF9sb29rdXBfZXJyb3Iq
IiwKKyAgICAgICAgICAgICAgICAiICBkZWYgdGVzdF9sb29rdXBfZXJyb3IodW5rbm93bik6KiIs
CisgICAgICAgICAgICAgICAgIkUgICAgICAgZml4dHVyZSAndW5rbm93bicgbm90IGZvdW5kIiwK
KyAgICAgICAgICAgICAgICAiPiAgICAgICBhdmFpbGFibGUgZml4dHVyZXM6KmFfZml4dHVyZSwq
Yl9maXh0dXJlLCpjX2ZpeHR1cmUsKmRfZml4dHVyZSptb25rZXlwYXRjaCwqIiwgICMgc29ydGVk
CisgICAgICAgICAgICAgICAgIj4gICAgICAgdXNlICdweSp0ZXN0IC0tZml4dHVyZXMgKicgZm9y
IGhlbHAgb24gdGhlbS4iLAorICAgICAgICAgICAgICAgICIqMSBlcnJvcioiLAorICAgICAgICAg
ICAgXQorICAgICAgICApCisgICAgICAgIGFzc2VydCAiSU5URVJOQUwiIG5vdCBpbiByZXN1bHQu
c3Rkb3V0LnN0cigpCisKKyAgICBkZWYgdGVzdF9maXh0dXJlX2V4Y2luZm9fbGVhayhzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgIyBvbiBweXRob24yIHN5cy5leGNpbmZvIHdvdWxkIGxlYWsgaW50
byBmaXh0dXJlIGV4ZWN1dGlvbnMKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAg
ICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICBpbXBvcnQgdHJh
Y2ViYWNrCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICAgICAgZGVmIGxlYWsoKToKKyAgICAgICAgICAgICAgICBpZiBzeXMu
ZXhjX2luZm8oKVswXTogICMgcHl0aG9uMyBidWcgOikKKyAgICAgICAgICAgICAgICAgICAgdHJh
Y2ViYWNrLnByaW50X2V4YygpCisgICAgICAgICAgICAgICAgI2ZhaWxzCisgICAgICAgICAgICAg
ICAgYXNzZXJ0IHN5cy5leGNfaW5mbygpID09IChOb25lLCBOb25lLCBOb25lKQorCisgICAgICAg
ICAgICBkZWYgdGVzdF9sZWFrKGxlYWspOgorICAgICAgICAgICAgICAgIGlmIHN5cy5leGNfaW5m
bygpWzBdOiAgIyBweXRob24zIGJ1ZyA6KQorICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2su
cHJpbnRfZXhjKCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgc3lzLmV4Y19pbmZvKCkgPT0gKE5v
bmUsIE5vbmUsIE5vbmUpCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisK
K2NsYXNzIFRlc3RSZXF1ZXN0QmFzaWMob2JqZWN0KToKKyAgICBkZWYgdGVzdF9yZXF1ZXN0X2F0
dHJpYnV0ZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0o
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOiBw
YXNzCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNvbWV0aGluZyk6IHBhc3MKKyAgICAgICAg
IiIiCisgICAgICAgICkKKyAgICAgICAgcmVxID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRl
bSkKKyAgICAgICAgYXNzZXJ0IHJlcS5mdW5jdGlvbiA9PSBpdGVtLm9iagorICAgICAgICBhc3Nl
cnQgcmVxLmtleXdvcmRzID09IGl0ZW0ua2V5d29yZHMKKyAgICAgICAgYXNzZXJ0IGhhc2F0dHIo
cmVxLm1vZHVsZSwgInRlc3RfZnVuYyIpCisgICAgICAgIGFzc2VydCByZXEuY2xzIGlzIE5vbmUK
KyAgICAgICAgYXNzZXJ0IHJlcS5mdW5jdGlvbi5fX25hbWVfXyA9PSAidGVzdF9mdW5jIgorICAg
ICAgICBhc3NlcnQgcmVxLmNvbmZpZyA9PSBpdGVtLmNvbmZpZworICAgICAgICBhc3NlcnQgcmVw
cihyZXEpLmZpbmQocmVxLmZ1bmN0aW9uLl9fbmFtZV9fKSAhPSAtMQorCisgICAgZGVmIHRlc3Rf
cmVxdWVzdF9hdHRyaWJ1dGVzX21ldGhvZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgKGl0ZW0s
KSA9IHRlc3RkaXIuZ2V0aXRlbXMoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIGNsYXNzIFRlc3RCKG9iamVjdCk6CisKKyAgICAgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgc29tZXRoaW5nKHNlbGYs
IHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMoc2VsZiwgc29tZXRoaW5nKToKKyAgICAgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXEgPSBpdGVtLl9yZXF1ZXN0Cisg
ICAgICAgIGFzc2VydCByZXEuY2xzLl9fbmFtZV9fID09ICJUZXN0QiIKKyAgICAgICAgYXNzZXJ0
IHJlcS5pbnN0YW5jZS5fX2NsYXNzX18gPT0gcmVxLmNscworCisgICAgZGVmIHRlc3RfcmVxdWVz
dF9jb250YWluc19mdW5jYXJnX2FyZzJmaXh0dXJlZGVmcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF9tZXRob2Qoc2VsZiwgc29tZXRoaW5nKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICAoaXRlbTEsKSA9IHRlc3RkaXIuZ2VuaXRlbXMo
W21vZGNvbF0pCisgICAgICAgIGFzc2VydCBpdGVtMS5uYW1lID09ICJ0ZXN0X21ldGhvZCIKKyAg
ICAgICAgYXJnMmZpeHR1cmVkZWZzID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRlbTEpLl9h
cmcyZml4dHVyZWRlZnMKKyAgICAgICAgYXNzZXJ0IGxlbihhcmcyZml4dHVyZWRlZnMpID09IDEK
KyAgICAgICAgYXNzZXJ0IGFyZzJmaXh0dXJlZGVmc1sic29tZXRoaW5nIl1bMF0uYXJnbmFtZSA9
PSAic29tZXRoaW5nIgorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZigKKyAgICAgICAgaGFzYXR0
cihzeXMsICJweXB5X3ZlcnNpb25faW5mbyIpLAorICAgICAgICByZWFzb249InRoaXMgbWV0aG9k
IG9mIHRlc3QgZG9lc24ndCB3b3JrIG9uIHB5cHkiLAorICAgICkKKyAgICBkZWYgdGVzdF9yZXF1
ZXN0X2dhcmJhZ2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlt
cG9ydCB4ZGlzdCAgIyBub3FhCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHB5dGVzdC54ZmFpbCgidGhpcyB0
ZXN0IGlzIGZsYWt5IHdoZW4gZXhlY3V0ZWQgd2l0aCB4ZGlzdCIpCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZnJvbSBfcHl0ZXN0LmZpeHR1cmVz
IGltcG9ydCBQc2V1ZG9GaXh0dXJlRGVmCisgICAgICAgICAgICBpbXBvcnQgZ2MKKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBzb21l
dGhpbmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgb3JpZ2luYWwgPSBnYy5nZXRfZGVidWco
KQorICAgICAgICAgICAgICAgIGdjLnNldF9kZWJ1ZyhnYy5ERUJVR19TQVZFQUxMKQorICAgICAg
ICAgICAgICAgIGdjLmNvbGxlY3QoKQorCisgICAgICAgICAgICAgICAgeWllbGQKKworICAgICAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZ2MuY29sbGVjdCgpCisgICAgICAg
ICAgICAgICAgICAgIGxlYWtlZCA9IFt4IGZvciBfIGluIGdjLmdhcmJhZ2UgaWYgaXNpbnN0YW5j
ZShfLCBQc2V1ZG9GaXh0dXJlRGVmKV0KKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGxlYWtl
ZCA9PSBbXQorICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgIGdj
LnNldF9kZWJ1ZyhvcmlnaW5hbCkKKworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbIiogMSBwYXNzZWQgaW4gKiJdKQorCisgICAgZGVmIHRlc3RfZ2V0Zml4
dHVyZXZhbHVlX3JlY3Vyc2l2ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
Y29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKwor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc29tZXRoaW5nKHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgICIiIgorICAgICAgICAp
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAg
ICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVl
c3QuZ2V0Zml4dHVyZXZhbHVlKCJzb21ldGhpbmciKSArIDEKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2Z1bmMoc29tZXRoaW5nKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc29tZXRoaW5nID09IDIK
KyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYg
dGVzdF9nZXRmaXh0dXJldmFsdWVfdGVhcmRvd24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIi
IgorICAgICAgICBJc3N1ZSAjMTg5NQorCisgICAgICAgIGB0ZXN0X2lubmVyYCByZXF1ZXN0cyBg
aW5uZXJgIGZpeHR1cmUsIHdoaWNoIGluIHR1cm4gcmVxdWVzdHMgYHJlc291cmNlYAorICAgICAg
ICB1c2luZyBgZ2V0Zml4dHVyZXZhbHVlYC4gYHRlc3RfZnVuY2AgdGhlbiByZXF1ZXN0cyBgcmVz
b3VyY2VgLgorCisgICAgICAgIGByZXNvdXJjZWAgaXMgdGVhcmRvd24gYmVmb3JlIGBpbm5lcmAg
YmVjYXVzZSB0aGUgZml4dHVyZSBtZWNoYW5pc20gd29uJ3QgY29uc2lkZXIKKyAgICAgICAgYGlu
bmVyYCBkZXBlbmRlbnQgb24gYHJlc291cmNlYCB3aGVuIGl0IGlzIHVzZWQgdmlhIGBnZXRmaXh0
dXJldmFsdWVgOiBgdGVzdF9mdW5jYAorICAgICAgICB3aWxsIHRoZW4gY2F1c2UgdGhlIGByZXNv
dXJjZWAncyBmaW5hbGl6ZXIgdG8gYmUgY2FsbGVkIGZpcnN0IGJlY2F1c2Ugb2YgdGhpcy4KKyAg
ICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
c2NvcGU9J3Nlc3Npb24nKQorICAgICAgICAgICAgZGVmIHJlc291cmNlKCk6CisgICAgICAgICAg
ICAgICAgciA9IFsndmFsdWUnXQorICAgICAgICAgICAgICAgIHlpZWxkIHIKKyAgICAgICAgICAg
ICAgICByLnBvcCgpCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lv
bicpCisgICAgICAgICAgICBkZWYgaW5uZXIocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVz
b3VyY2UgPSByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgncmVzb3VyY2UnKQorICAgICAgICAgICAg
ICAgIGFzc2VydCByZXNvdXJjZSA9PSBbJ3ZhbHVlJ10KKyAgICAgICAgICAgICAgICB5aWVsZAor
ICAgICAgICAgICAgICAgIGFzc2VydCByZXNvdXJjZSA9PSBbJ3ZhbHVlJ10KKworICAgICAgICAg
ICAgZGVmIHRlc3RfaW5uZXIoaW5uZXIpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAg
ICAgICAgZGVmIHRlc3RfZnVuYyhyZXNvdXJjZSk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMiBwYXNzZWQgaW4gKiJd
KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJnZXRmaXhtZXRob2QiLCAoImdldGZp
eHR1cmV2YWx1ZSIsICJnZXRmdW5jYXJndmFsdWUiKSkKKyAgICBkZWYgdGVzdF9nZXRmaXh0dXJl
dmFsdWUoc2VsZiwgdGVzdGRpciwgZ2V0Zml4bWV0aG9kKToKKyAgICAgICAgaXRlbSA9IHRlc3Rk
aXIuZ2V0aXRlbSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgdmFsdWVzID0gWzJdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAg
ICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6IHJldHVybiAxCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBvdGhlcihyZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWVzLnBvcCgpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNv
bWV0aGluZyk6IHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgaW1wb3J0IGNv
bnRleHRsaWIKKworICAgICAgICBpZiBnZXRmaXhtZXRob2QgPT0gImdldGZ1bmNhcmd2YWx1ZSI6
CisgICAgICAgICAgICB3YXJuaW5nX2V4cGVjdGF0aW9uID0gcHl0ZXN0Lndhcm5zKERlcHJlY2F0
aW9uV2FybmluZykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgc2VlICMxODMwIGZvciBh
IGNsZWFuZXIgd2F5IHRvIGFjY29tcGxpc2ggdGhpcworICAgICAgICAgICAgQGNvbnRleHRsaWIu
Y29udGV4dG1hbmFnZXIKKyAgICAgICAgICAgIGRlZiBleHBlY3Rpbmdfbm9fd2FybmluZygpOgor
ICAgICAgICAgICAgICAgIHlpZWxkCisKKyAgICAgICAgICAgIHdhcm5pbmdfZXhwZWN0YXRpb24g
PSBleHBlY3Rpbmdfbm9fd2FybmluZygpCisKKyAgICAgICAgcmVxID0gaXRlbS5fcmVxdWVzdAor
ICAgICAgICB3aXRoIHdhcm5pbmdfZXhwZWN0YXRpb246CisgICAgICAgICAgICBmaXh0dXJlX2Zl
dGNoZXIgPSBnZXRhdHRyKHJlcSwgZ2V0Zml4bWV0aG9kKQorICAgICAgICAgICAgd2l0aCBweXRl
c3QucmFpc2VzKEZpeHR1cmVMb29rdXBFcnJvcik6CisgICAgICAgICAgICAgICAgZml4dHVyZV9m
ZXRjaGVyKCJub3RleGlzdHMiKQorICAgICAgICAgICAgdmFsID0gZml4dHVyZV9mZXRjaGVyKCJz
b21ldGhpbmciKQorICAgICAgICAgICAgYXNzZXJ0IHZhbCA9PSAxCisgICAgICAgICAgICB2YWwg
PSBmaXh0dXJlX2ZldGNoZXIoInNvbWV0aGluZyIpCisgICAgICAgICAgICBhc3NlcnQgdmFsID09
IDEKKyAgICAgICAgICAgIHZhbDIgPSBmaXh0dXJlX2ZldGNoZXIoIm90aGVyIikKKyAgICAgICAg
ICAgIGFzc2VydCB2YWwyID09IDIKKyAgICAgICAgICAgIHZhbDIgPSBmaXh0dXJlX2ZldGNoZXIo
Im90aGVyIikgICMgc2VlIGFib3V0IGNhY2hpbmcKKyAgICAgICAgICAgIGFzc2VydCB2YWwyID09
IDIKKyAgICAgICAgICAgIHB5dGVzdC5fZmlsbGZ1bmNhcmdzKGl0ZW0pCisgICAgICAgICAgICBh
c3NlcnQgaXRlbS5mdW5jYXJnc1sic29tZXRoaW5nIl0gPT0gMQorICAgICAgICAgICAgYXNzZXJ0
IGxlbihnZXRfcHVibGljX25hbWVzKGl0ZW0uZnVuY2FyZ3MpKSA9PSAyCisgICAgICAgICAgICBh
c3NlcnQgInJlcXVlc3QiIGluIGl0ZW0uZnVuY2FyZ3MKKworICAgIGRlZiB0ZXN0X3JlcXVlc3Rf
YWRkZmluYWxpemVyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRp
dGVtKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICB0ZWFyZG93bmxpc3QgPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgICAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3Qu
YWRkZmluYWxpemVyKGxhbWJkYTogdGVhcmRvd25saXN0LmFwcGVuZCgxKSkKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMoc29tZXRoaW5nKTogcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICBpdGVtLnNlc3Npb24uX3NldHVwc3RhdGUucHJlcGFyZShpdGVtKQorICAgICAgICBw
eXRlc3QuX2ZpbGxmdW5jYXJncyhpdGVtKQorICAgICAgICAjIHN1Y2Nlc3NpdmVseSBjaGVjayBm
aW5hbGl6YXRpb24gY2FsbHMKKyAgICAgICAgdGVhcmRvd25saXN0ID0gaXRlbS5nZXRwYXJlbnQo
cHl0ZXN0Lk1vZHVsZSkub2JqLnRlYXJkb3dubGlzdAorICAgICAgICBzcyA9IGl0ZW0uc2Vzc2lv
bi5fc2V0dXBzdGF0ZQorICAgICAgICBhc3NlcnQgbm90IHRlYXJkb3dubGlzdAorICAgICAgICBz
cy50ZWFyZG93bl9leGFjdChpdGVtLCBOb25lKQorICAgICAgICBwcmludChzcy5zdGFjaykKKyAg
ICAgICAgYXNzZXJ0IHRlYXJkb3dubGlzdCA9PSBbMV0KKworICAgIGRlZiB0ZXN0X3JlcXVlc3Rf
YWRkZmluYWxpemVyX2ZhaWxpbmdfc2V0dXAoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgdmFsdWVzID0gWzFdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICAgICAgICAgIGRlZiBteWZpeChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0
LmFkZGZpbmFsaXplcih2YWx1ZXMucG9wKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAg
ICAgICAgICBkZWYgdGVzdF9maXgobXlmaXgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2ZpbmFsaXplcl9yYW4oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
bm90IHZhbHVlcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUoZmFpbGVk
PTEsIHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9hZGRmaW5hbGl6ZXJfZmFpbGlu
Z19zZXR1cF9tb2R1bGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgdmFsdWVzID0gWzEsIDJdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1v
ZHVsZSIpCisgICAgICAgICAgICBkZWYgbXlmaXgocmVxdWVzdCk6CisgICAgICAgICAgICAgICAg
cmVxdWVzdC5hZGRmaW5hbGl6ZXIodmFsdWVzLnBvcCkKKyAgICAgICAgICAgICAgICByZXF1ZXN0
LmFkZGZpbmFsaXplcih2YWx1ZXMucG9wKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAg
ICAgICAgICBkZWYgdGVzdF9maXgobXlmaXgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCIt
cyIpCisgICAgICAgIG1vZCA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3Rfc2V0dXAi
KVswXS5pdGVtLm1vZHVsZQorICAgICAgICBhc3NlcnQgbm90IG1vZC52YWx1ZXMKKworICAgIGRl
ZiB0ZXN0X3JlcXVlc3RfYWRkZmluYWxpemVyX3BhcnRpYWxfc2V0dXBfZmFpbHVyZShzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1
ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVl
cy5hcHBlbmQoTm9uZSkpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNvbWV0aGluZywgbWlz
c2luZ2FyZyk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3Rfc2Vj
b25kKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAg
IiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWyIqMSBlcnJv
cioiXSAgIyBYWFggdGhlIHdob2xlIG1vZHVsZSBjb2xsZWN0aW9uIGZhaWxzCisgICAgICAgICkK
KworICAgIGRlZiB0ZXN0X3JlcXVlc3Rfc3VicmVxdWVzdF9hZGRmaW5hbGl6ZXJfZXhjZXB0aW9u
cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiCisgICAgICAgIEVuc3VyZSBleGNlcHRpb25z
IHJhaXNlZCBkdXJpbmcgdGVhcmRvd24gYnkgYSBmaW5hbGl6ZXIgYXJlIHN1cHByZXNzZWQKKyAg
ICAgICAgdW50aWwgYWxsIGZpbmFsaXplcnMgYXJlIGNhbGxlZCwgcmUtcmFpc2luZyB0aGUgZmly
c3QgZXhjZXB0aW9uICgjMjQ0MCkKKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiBfZXhjZXB0cyh3aGVyZSk6CisgICAg
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFcnJvciBpbiAlcyBmaXh0dXJlJyAlIHdoZXJl
KQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc3VicmVxdWVz
dChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdAorICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc29tZXRoaW5nKHN1YnJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHN1YnJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFw
cGVuZCgxKSkKKyAgICAgICAgICAgICAgICBzdWJyZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6
IHZhbHVlcy5hcHBlbmQoMikpCisgICAgICAgICAgICAgICAgc3VicmVxdWVzdC5hZGRmaW5hbGl6
ZXIobGFtYmRhOiBfZXhjZXB0cygnc29tZXRoaW5nJykpCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKKyAgICAgICAgICAgIGRlZiBleGNlcHRzKHN1YnJlcXVlc3QpOgorICAgICAgICAgICAg
ICAgIHN1YnJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogX2V4Y2VwdHMoJ2V4Y2VwdHMnKSkK
KyAgICAgICAgICAgICAgICBzdWJyZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5h
cHBlbmQoMykpCisgICAgICAgICAgICBkZWYgdGVzdF9maXJzdChzb21ldGhpbmcsIGV4Y2VwdHMp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NlY29uZCgpOgor
ICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzMsIDIsIDFdCisgICAgICAgICIiIgor
ICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWyIqRXhjZXB0aW9uOiBF
cnJvciBpbiBleGNlcHRzIGZpeHR1cmUiLCAiKiAyIHBhc3NlZCwgMSBlcnJvciBpbiAqIl0KKyAg
ICAgICAgKQorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9nZXRtb2R1bGVwYXRoKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiZGVmIHRlc3Rfc29t
ZWZ1bmMoKTogcGFzcyIpCisgICAgICAgIChpdGVtLCkgPSB0ZXN0ZGlyLmdlbml0ZW1zKFttb2Rj
b2xdKQorICAgICAgICByZXEgPSBmaXh0dXJlcy5GaXh0dXJlUmVxdWVzdChpdGVtKQorICAgICAg
ICBhc3NlcnQgcmVxLmZzcGF0aCA9PSBtb2Rjb2wuZnNwYXRoCisKKyAgICBkZWYgdGVzdF9yZXF1
ZXN0X2ZpeHR1cmVuYW1lcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IGdldF9wdWJsaWNfbmFtZXMKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgYXJnMSgpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAg
ICBkZWYgZmFyZyhhcmcxKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHNhcmcodG1wZGlyKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihyZXF1
ZXN0LCBmYXJnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc2V0KGdldF9wdWJsaWNfbmFtZXMo
cmVxdWVzdC5maXh0dXJlbmFtZXMpKSA9PSBcCisgICAgICAgICAgICAgICAgICAgICAgIHNldChb
InRtcGRpciIsICJzYXJnIiwgImFyZzEiLCAicmVxdWVzdCIsICJmYXJnIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidG1wX3BhdGgiLCAidG1wX3BhdGhfZmFjdG9yeSJdKQorICAgICAg
ICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQor
ICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X3Jl
cXVlc3RfZml4dHVyZW5hbWVzX2R5bmFtaWNfZml4dHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgIiIiUmVncmVzc2lvbiB0ZXN0IGZvciAjMzA1NyIiIgorICAgICAgICB0ZXN0ZGlyLmNvcHlf
ZXhhbXBsZSgiZml4dHVyZXMvdGVzdF9nZXRmaXh0dXJldmFsdWVfZHluYW1pYy5weSIpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3RfZnVuY2FyZ25hbWVz
X2NvbXBhdGF0dHIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
KyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
ZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IG1ldGFmdW5jLmZ1bmNhcmduYW1lcyA9PSBtZXRhZnVuYy5maXh0dXJlbmFtZXMKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZuKHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0Ll9weWZ1bmNpdGVtLmZ1bmNhcmduYW1lcyA9PSBc
CisgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuX3B5ZnVuY2l0ZW0uZml4dHVyZW5hbWVz
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuZnVuY2FyZ25hbWVzLCByZXF1ZXN0LmZp
eHR1cmVuYW1lcworCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhmbik6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IGZuWzBdID09IGZuWzFdCisgICAgICAgICIiIgorICAgICAgICApCisgICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rfc2V0dXBkZWNvcmF0b3JfYW5kX3h1bml0
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtd
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J21vZHVsZScsIGF1dG91c2U9VHJ1
ZSkKKyAgICAgICAgICAgIGRlZiBzZXR1cF9tb2R1bGUoKToKKyAgICAgICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKCJtb2R1bGUiKQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9
VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbigpOgorICAgICAgICAgICAgICAg
IHZhbHVlcy5hcHBlbmQoImZ1bmN0aW9uIikKKworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygp
OgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9i
amVjdCk6CisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIsIGF1
dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6CisgICAg
ICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoImNsYXNzIikKKyAgICAgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgICAgIGRlZiBzZXR1cF9t
ZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIm1ldGhvZCIp
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9hbGwoKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgdmFsdWVzID09IFsibW9kdWxlIiwgImZ1bmN0aW9uIiwgImNsYXNzIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uIiwgIm1ldGhvZCIsICJmdW5jdGlvbiJdCisg
ICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bigiLXYiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKKworICAgIGRl
ZiB0ZXN0X2ZpeHR1cmVzX3N1Yl9zdWJkaXJfbm9ybWFsaXplX3NlcChzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgIyB0aGlzIHRlc3RzIHRoYXQgbm9ybWFsaXphdGlvbiBvZiBub2RlaWRzIHRha2Vz
IHBsYWNlCisgICAgICAgIGIgPSB0ZXN0ZGlyLm1rZGlyKCJ0ZXN0cyIpLm1rZGlyKCJ1bml0IikK
KyAgICAgICAgYi5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAorICAgICAgICAgICAgdGV4dHdy
YXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAg
ZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHAgPSBiLmpvaW4oInRlc3RfbW9k
dWxlLnB5IikKKyAgICAgICAgcC53cml0ZSgiZGVmIHRlc3RfZnVuYyhhcmcxKTogcGFzcyIpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICItLWZpeHR1cmVzIikKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICpmaXh0dXJlcyBkZWZpbmVkKmNv
bmZ0ZXN0KgorICAgICAgICAgICAgKmFyZzEqCisgICAgICAgICIiIgorICAgICAgICApCisKKyAg
ICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX2NvbG9yX3llcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF90aGlzKCk6IGFzc2VydCAxIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sb3I9eWVzIiwgIi0tZml4dHVyZXMi
KQorICAgICAgICBhc3NlcnQgIlx4MWJbMzJtdG1wZGlyIiBpbiByZXN1bHQuc3Rkb3V0LnN0cigp
CisKKyAgICBkZWYgdGVzdF9uZXdzdHlsZV93aXRoX3JlcXVlc3Qoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAg
IGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVm
IHRlc3RfMShhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAg
ICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVj
LmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9zZXR1cGNvbnRleHRfbm9f
cGFyYW0oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKHBhcmFtcz1bMSwyXSkKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBteXNldHVwKHJlcXVlc3Qs
IGFyZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHJlcXVlc3QsICJwYXJh
bSIpCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IGFyZyBpbiAoMSwyKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
MikKKworCitjbGFzcyBUZXN0UmVxdWVzdE1hcmtpbmcob2JqZWN0KToKKyAgICBkZWYgdGVzdF9h
cHBseW1hcmtlcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbTEsIGl0ZW0yID0gdGVzdGRp
ci5nZXRpdGVtcygKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmco
cmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgY2xhc3MgVGVzdENs
YXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzEoc2VsZiwgc29tZXRo
aW5nKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGRlZiB0ZXN0
X2Z1bmMyKHNlbGYsIHNvbWV0aGluZyk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVxMSA9IGZpeHR1cmVzLkZpeHR1cmVSZXF1ZXN0
KGl0ZW0xKQorICAgICAgICBhc3NlcnQgInhmYWlsIiBub3QgaW4gaXRlbTEua2V5d29yZHMKKyAg
ICAgICAgcmVxMS5hcHBseW1hcmtlcihweXRlc3QubWFyay54ZmFpbCkKKyAgICAgICAgYXNzZXJ0
ICJ4ZmFpbCIgaW4gaXRlbTEua2V5d29yZHMKKyAgICAgICAgYXNzZXJ0ICJza2lwaWYiIG5vdCBp
biBpdGVtMS5rZXl3b3JkcworICAgICAgICByZXExLmFwcGx5bWFya2VyKHB5dGVzdC5tYXJrLnNr
aXBpZikKKyAgICAgICAgYXNzZXJ0ICJza2lwaWYiIGluIGl0ZW0xLmtleXdvcmRzCisgICAgICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIHJlcTEuYXBwbHlt
YXJrZXIoNDIpCisKKyAgICBkZWYgdGVzdF9hY2Nlc3NrZXl3b3JkcyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAg
ICAgZGVmIGtleXdvcmRzKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0
LmtleXdvcmRzCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuWFlaCisgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jdGlvbihrZXl3b3Jkcyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGtleXdvcmRz
WyJYWVoiXQorICAgICAgICAgICAgICAgIGFzc2VydCAiYWJjIiBub3QgaW4ga2V5d29yZHMKKyAg
ICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVz
dF9hY2Nlc3NtYXJrZXJfZHluYW1pYyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYga2V5d29yZHMo
cmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Qua2V5d29yZHMKKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIsIGF1dG91c2U9VHJ1ZSkKKyAg
ICAgICAgICAgIGRlZiBtYXJraW5nKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3Qu
YXBwbHltYXJrZXIocHl0ZXN0Lm1hcmsuWFlaKCJoZWxsbyIpKQorICAgICAgICAiIiIKKyAgICAg
ICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bjEoa2V5d29yZHMp
OgorICAgICAgICAgICAgICAgIGFzc2VydCBrZXl3b3Jkc1siWFlaIl0gaXMgbm90IE5vbmUKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgImFiYyIgbm90IGluIGtleXdvcmRzCisgICAgICAgICAgICBk
ZWYgdGVzdF9mdW4yKGtleXdvcmRzKToKKyAgICAgICAgICAgICAgICBhc3NlcnQga2V5d29yZHNb
IlhZWiJdIGlzIG5vdCBOb25lCisgICAgICAgICAgICAgICAgYXNzZXJ0ICJhYmMiIG5vdCBpbiBr
ZXl3b3JkcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKwor
CitjbGFzcyBUZXN0Rml4dHVyZVVzYWdlcyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X25vYXJnZml4
dHVyZWRlYyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAg
ICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcxKCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIDEKKworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhhcmcxKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgYXJnMSA9PSAxCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD0xKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZXNfZnVuY2FyZ3Moc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAg
ICAgIGRlZiBhcmcxKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiBhcmcyKGFyZzEpOgorICAgICAgICAg
ICAgICAgIHJldHVybiBhcmcxICsgMQorCisgICAgICAgICAgICBkZWYgdGVzdF9hZGQoYXJnMik6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzIgPT0gMgorICAgICAgICAgICAgZGVmIHRlc3Rf
YWxsKGFyZzEsIGFyZzIpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcxID09IDEKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgYXJnMiA9PSAyCisgICAgICAgICIiIgorICAgICAgICApCisgICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZXNfZnVuY2FyZ3Nfc2NvcGVf
bWlzbWF0Y2goc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCisgICAgICAgICAgICBkZWYgYXJnMSgpOgor
ICAgICAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0ibW9kdWxlIikKKyAgICAgICAgICAgIGRlZiBhcmcyKGFyZzEpOgorICAgICAgICAgICAg
ICAgIHJldHVybiBhcmcxICsgMQorCisgICAgICAgICAgICBkZWYgdGVzdF9hZGQoYXJnMik6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzIgPT0gMgorICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiKlNjb3Bl
TWlzbWF0Y2gqaW52b2x2ZWQgZmFjdG9yaWVzKiIsCisgICAgICAgICAgICAgICAgInRlc3RfcmVj
ZWl2ZXNfZnVuY2FyZ3Nfc2NvcGVfbWlzbWF0Y2gucHk6NjogIGRlZiBhcmcyKGFyZzEpIiwKKyAg
ICAgICAgICAgICAgICAidGVzdF9yZWNlaXZlc19mdW5jYXJnc19zY29wZV9taXNtYXRjaC5weToy
OiAgZGVmIGFyZzEoKSIsCisgICAgICAgICAgICAgICAgIioxIGVycm9yKiIsCisgICAgICAgICAg
ICBdCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVzX2Z1bmNhcmdzX3Njb3BlX21p
c21hdGNoX2lzc3VlNjYwKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iKQorICAgICAgICAgICAgZGVmIGFy
ZzEoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgICAgICAgICBkZWYgYXJnMihhcmcxKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gYXJnMSArIDEKKworICAgICAgICAgICAgZGVmIHRlc3RfYWRkKGFy
ZzEsIGFyZzIpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcyID09IDIKKyAgICAgICAgIiIi
CisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbIipTY29wZU1pc21h
dGNoKmludm9sdmVkIGZhY3RvcmllcyoiLCAiKiBkZWYgYXJnMioiLCAiKjEgZXJyb3IqIl0KKyAg
ICAgICAgKQorCisgICAgZGVmIHRlc3RfaW52YWxpZF9zY29wZShzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9u
cyIpCisgICAgICAgICAgICBkZWYgYmFkc2NvcGUoKToKKyAgICAgICAgICAgICAgICBwYXNzCisK
KyAgICAgICAgICAgIGRlZiB0ZXN0X25vdGhpbmcoYmFkc2NvcGUpOgorICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3RfaW5wcm9jZXNzKCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAorICAgICAgICAgICAgIipGaXh0dXJlICdiYWRzY29wZScgZnJvbSB0ZXN0X2ludmFsaWRfc2Nv
cGUucHkgZ290IGFuIHVuZXhwZWN0ZWQgc2NvcGUgdmFsdWUgJ2Z1bmN0aW9ucyciCisgICAgICAg
ICkKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmdfcGFyYW1ldHJpemVkX2FuZF91c2VkX3R3aWNlKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLDJdKQorICAgICAgICAgICAgZGVm
IGFyZzEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQorICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZSgpCisgICAgICAgICAgICBkZWYgYXJnMihhcmcxKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gYXJnMSArIDEKKworICAgICAgICAgICAgZGVmIHRlc3RfYWRkKGFyZzEsIGFyZzIpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCBhcmcyID09IGFyZzEgKyAxCisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGxlbih2YWx1ZXMpID09IGFyZzEKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMiBwYXNzZWQqIl0pCisKKyAgICBkZWYgdGVzdF9mYWN0b3J5X3VzZXNfdW5r
bm93bl9mdW5jYXJnX2FzX2RlcGVuZGVuY3lfZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVm
IGZhaWwobWlzc2luZyk6CisgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgY2FsbF9mYWlsKGZhaWwpOgorICAgICAg
ICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICBkZWYgdGVzdF9taXNzaW5nKGNhbGxfZmFp
bCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgIiIiCisgICAgICAgICkKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICpweXRlc3QuZml4
dHVyZSgpKgorICAgICAgICAgICAgKmRlZiBjYWxsX2ZhaWwoZmFpbCkqCisgICAgICAgICAgICAq
cHl0ZXN0LmZpeHR1cmUoKSoKKyAgICAgICAgICAgICpkZWYgZmFpbCoKKyAgICAgICAgICAgICpm
aXh0dXJlKidtaXNzaW5nJypub3QgZm91bmQqCisgICAgICAgICIiIgorICAgICAgICApCisKKyAg
ICBkZWYgdGVzdF9mYWN0b3J5X3NldHVwX2FzX2NsYXNzZXNfZmFpbHMoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgYXJnMShvYmplY3QpOgorICAgICAg
ICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi54ID0gMQorICAgICAgICAgICAgYXJnMSA9IHB5dGVzdC5maXh0dXJlKCkoYXJnMSkK
KworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oKQorICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0ZmFpbGVkY29sbGVjdGlvbnMoKQor
ICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorCisgICAgQHB5dGVzdC5tYXJrLmZpbHRl
cndhcm5pbmdzKCJpZ25vcmU6OnB5dGVzdC5QeXRlc3REZXByZWNhdGlvbldhcm5pbmciKQorICAg
IGRlZiB0ZXN0X3JlcXVlc3RfY2FuX2JlX292ZXJyaWRkZW4oc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRl
ZiByZXF1ZXN0KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYSA9IDEKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdAorICAgICAgICAgICAgZGVmIHRlc3RfcmVxdWVzdChy
ZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5hID09IDEKKyAgICAgICAg
IiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAg
ICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF91c2Vm
aXh0dXJlc19tYXJrZXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAg
ICAgICB2YWx1ZXMgPSBbXQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNs
YXNzIikKKyAgICAgICAgICAgIGRlZiBteWZpeChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmNscy5oZWxsbyA9ICJ3b3JsZCIKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KDEpCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAg
ICAgIGRlZiB0ZXN0X29uZShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYu
aGVsbG8gPT0gIndvcmxkIgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykg
PT0gMQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxmKToKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgorICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICAgICAgcHl0ZXN0Lm1hcmsudXNlZml4dHVy
ZXMoIm15Zml4IikoVGVzdENsYXNzKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBy
ZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3VzZWZpeHR1cmVzX2luaShzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICBbcHl0ZXN0XQorICAgICAgICAgICAgdXNlZml4dHVyZXMgPSBteWZpeAorICAgICAgICAiIiIK
KyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9ImNsYXNzIikKKyAgICAgICAgICAgIGRlZiBteWZpeChyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0LmNscy5oZWxsbyA9ICJ3b3JsZCIKKworICAgICAgICAiIiIKKyAg
ICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X29uZShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0g
IndvcmxkIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxmKToKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IHNlbGYuaGVsbG8gPT0gIndvcmxkIgorICAgICAgICAiIiIKKyAgICAg
ICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3VzZWZpeHR1cmVzX3Nl
ZW5faW5fc2hvd21hcmtlcnMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLW1hcmtlcnMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICp1c2VmaXh0dXJlcyhmaXh0dXJl
bmFtZTEqbWFyayB0ZXN0cypmaXh0dXJlcyoKKyAgICAgICAgIiIiCisgICAgICAgICkKKworICAg
IGRlZiB0ZXN0X3JlcXVlc3RfaW5zdGFuY2VfaXNzdWUyMDMoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgc2V0dXAxKHNl
bGYsIHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZiA9PSByZXF1ZXN0
Lmluc3RhbmNlCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXJnMSA9IDEKKyAgICAgICAgICAg
ICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmLCBzZXR1cDEpOgorICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgc2VsZi5hcmcxID09IDEKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9maXh0dXJlX3BhcmFtZXRyaXplZF93aXRoX2l0ZXJh
dG9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgdmFsdWVz
ID0gW10KKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgeWllbGQgMQorICAg
ICAgICAgICAgICAgIHlpZWxkIDIKKyAgICAgICAgICAgIGRlYyA9IHB5dGVzdC5maXh0dXJlKHNj
b3BlPSJtb2R1bGUiLCBwYXJhbXM9ZigpKQorCisgICAgICAgICAgICBAZGVjCisgICAgICAgICAg
ICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFt
CisgICAgICAgICAgICBAZGVjCisgICAgICAgICAgICBkZWYgYXJnMihyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBkZWYgdGVzdF8x
KGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICAgICBk
ZWYgdGVzdF8yKGFyZzIpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnMioxMCkK
KyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKCItdiIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD00KQorICAgICAg
ICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X2NhbGwiKVswXS5pdGVt
Lm1vZHVsZS52YWx1ZXMKKyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwgMiwgMTAsIDIwXQor
CisgICAgZGVmIHRlc3Rfc2V0dXBfZnVuY3Rpb25zX2FzX2ZpeHR1cmVzKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICAiIiJFbnN1cmUgc2V0dXBfKiBtZXRob2RzIG9iZXkgZml4dHVyZSBzY29wZSBy
dWxlcyAoIzUxNywgIzMwOTQpLiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAg
ICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgREJf
SU5JVElBTElaRUQgPSBOb25lCisKKyAgICAgICAgICAgIEBweXRlc3QueWllbGRfZml4dHVyZShz
Y29wZT0ic2Vzc2lvbiIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBkYigpOgorICAg
ICAgICAgICAgICAgIGdsb2JhbCBEQl9JTklUSUFMSVpFRAorICAgICAgICAgICAgICAgIERCX0lO
SVRJQUxJWkVEID0gVHJ1ZQorICAgICAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICAgICAg
REJfSU5JVElBTElaRUQgPSBGYWxzZQorCisgICAgICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKCk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IERCX0lOSVRJQUxJWkVECisKKyAgICAgICAgICAgIGRl
ZiB0ZWFyZG93bl9tb2R1bGUoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgREJfSU5JVElBTEla
RUQKKworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisKKyAgICAgICAgICAg
ICAgICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYsIG1ldGhvZCk6CisgICAgICAgICAgICAgICAgICAg
IGFzc2VydCBEQl9JTklUSUFMSVpFRAorCisgICAgICAgICAgICAgICAgZGVmIHRlYXJkb3duX21l
dGhvZChzZWxmLCBtZXRob2QpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgREJfSU5JVElB
TElaRUQKKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3ByaW50ZXJfMShzZWxmKToKKyAgICAg
ICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfcHJpbnRlcl8y
KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICAp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAyIHBhc3NlZCBpbiAqIl0pCisKKworY2xhc3MgVGVzdEZp
eHR1cmVNYW5hZ2VyUGFyc2VGYWN0b3JpZXMob2JqZWN0KToKKyAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICBkZWYgdGVzdGRpcihzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgdGVzdGRpciA9IHJlcXVl
c3QuZ2V0Zml4dHVyZXZhbHVlKCJ0ZXN0ZGlyIikKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRl
c3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgaGVsbG8ocmVxdWVzdCk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuICJjb25mdGVzdCIKKworICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgICAgICBkZWYgZm0ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QuX2ZpeHR1cmVtYW5hZ2VyCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICAgICAgZGVmIGl0ZW0ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlcXVlc3QuX3B5ZnVuY2l0ZW0KKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmV0
dXJuIHRlc3RkaXIKKworICAgIGRlZiB0ZXN0X3BhcnNlZmFjdG9yaWVzX2V2aWxfb2JqZWN0c19p
c3N1ZTIxNChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAg
ICAgICAgICAgIiIiCisgICAgICAgICAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgICAgICAg
ICAgZGVmIF9fY2FsbF9fKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgICAgICAg
ICByYWlzZSBSdW50aW1lRXJyb3IoKQorICAgICAgICAgICAgYSA9IEEoKQorICAgICAgICAgICAg
ZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAg
ICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJl
cHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xLCBmYWlsZWQ9MCkKKworICAgIGRlZiB0ZXN0X3Bh
cnNlZmFjdG9yaWVzX2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGl0
ZW0sIGZtKToKKyAgICAgICAgICAgICAgICBmb3IgbmFtZSBpbiAoImZtIiwgImhlbGxvIiwgIml0
ZW0iKToKKyAgICAgICAgICAgICAgICAgICAgZmFjbGlzdCA9IGZtLmdldGZpeHR1cmVkZWZzKG5h
bWUsIGl0ZW0ubm9kZWlkKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKGZhY2xpc3Qp
ID09IDEKKyAgICAgICAgICAgICAgICAgICAgZmFjID0gZmFjbGlzdFswXQorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgZmFjLmZ1bmMuX19uYW1lX18gPT0gbmFtZQorICAgICAgICAiIiIKKyAg
ICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9wYXJzZWZh
Y3Rvcmllc19jb25mdGVzdF9hbmRfbW9kdWxlX2FuZF9jbGFzcyhzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBpbXBvcnQgc2l4CisKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGhlbGxvKHJlcXVlc3QpOgorICAgICAgICAgICAg
ICAgIHJldHVybiAibW9kdWxlIgorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6
CisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIGhl
bGxvKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gImNsYXNzIgor
ICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYsIGl0ZW0sIGZtKToKKyAgICAgICAg
ICAgICAgICAgICAgZmFjbGlzdCA9IGZtLmdldGZpeHR1cmVkZWZzKCJoZWxsbyIsIGl0ZW0ubm9k
ZWlkKQorICAgICAgICAgICAgICAgICAgICBwcmludChmYWNsaXN0KQorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgbGVuKGZhY2xpc3QpID09IDMKKworICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgZmFjbGlzdFswXS5mdW5jKGl0ZW0uX3JlcXVlc3QpID09ICJjb25mdGVzdCIKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IGZhY2xpc3RbMV0uZnVuYyhpdGVtLl9yZXF1ZXN0KSA9PSAibW9k
dWxlIgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFjbGlzdFsyXS5mdW5jKGl0ZW0uX3Jl
cXVlc3QpID09ICJjbGFzcyIKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3RfcGFyc2VmYWN0b3JpZXNfcmVsYXRpdmVfbm9kZV9p
ZHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICMgZXhhbXBsZSBtb3N0bHkgdGFrZW4gZnJvbToK
KyAgICAgICAgIyBodHRwczovL21haWwucHl0aG9uLm9yZy9waXBlcm1haWwvcHl0ZXN0LWRldi8y
MDE0LVNlcHRlbWJlci8wMDI2MTcuaHRtbAorICAgICAgICBydW5uZXIgPSB0ZXN0ZGlyLm1rZGly
KCJydW5uZXIiKQorICAgICAgICBwYWNrYWdlID0gdGVzdGRpci5ta2RpcigicGFja2FnZSIpCisg
ICAgICAgIHBhY2thZ2Uuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKKyAgICAgICAgICAgIHRl
eHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBvbmUo
KToKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICApCisgICAgICAgICkKKyAgICAgICAgcGFja2FnZS5qb2luKCJ0ZXN0X3gucHkiKS53cml0ZSgK
KyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAg
ICAgICAgICAgICAgZGVmIHRlc3RfeChvbmUpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
b25lID09IDEKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQor
ICAgICAgICBzdWIgPSBwYWNrYWdlLm1rZGlyKCJzdWIiKQorICAgICAgICBzdWIuam9pbigiX19p
bml0X18ucHkiKS5lbnN1cmUoKQorICAgICAgICBzdWIuam9pbigiY29uZnRlc3QucHkiKS53cml0
ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisg
ICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgICAgIGRlZiBvbmUoKToKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIDIKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAg
ICAgICBzdWIuam9pbigidGVzdF95LnB5Iikud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5k
ZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3go
b25lKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG9uZSA9PSAyCisgICAgICAgICAgICAg
ICAgIiIiCisgICAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisg
ICAgICAgIHdpdGggcnVubmVyLmFzX2N3ZCgpOgorICAgICAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCIuLiIpCisgICAgICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNz
ZWQ9MikKKworICAgIGRlZiB0ZXN0X3BhY2thZ2VfeHVuaXRfZml4dHVyZShzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgX19pbml0X189IiIi
XAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAg
ICAgcGFja2FnZSA9IHRlc3RkaXIubWtkaXIoInBhY2thZ2UiKQorICAgICAgICBwYWNrYWdlLmpv
aW4oIl9faW5pdF9fLnB5Iikud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisg
ICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGZyb20gLi4gaW1wb3J0IHZhbHVl
cworICAgICAgICAgICAgICAgIGRlZiBzZXR1cF9tb2R1bGUoKToKKyAgICAgICAgICAgICAgICAg
ICAgdmFsdWVzLmFwcGVuZCgicGFja2FnZSIpCisgICAgICAgICAgICAgICAgZGVmIHRlYXJkb3du
X21vZHVsZSgpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbOl0gPSBbXQorICAgICAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHBhY2thZ2Uuam9p
bigidGVzdF94LnB5Iikud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAg
ICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGZyb20gLi4gaW1wb3J0IHZhbHVlcwor
ICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3goKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IHZhbHVlcyA9PSBbInBhY2thZ2UiXQorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
KQorICAgICAgICApCisgICAgICAgIHBhY2thZ2UgPSB0ZXN0ZGlyLm1rZGlyKCJwYWNrYWdlMiIp
CisgICAgICAgIHBhY2thZ2Uuam9pbigiX19pbml0X18ucHkiKS53cml0ZSgKKyAgICAgICAgICAg
IHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAg
ZnJvbSAuLiBpbXBvcnQgdmFsdWVzCisgICAgICAgICAgICAgICAgZGVmIHNldHVwX21vZHVsZSgp
OgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJwYWNrYWdlMiIpCisgICAgICAg
ICAgICAgICAgZGVmIHRlYXJkb3duX21vZHVsZSgpOgorICAgICAgICAgICAgICAgICAgICB2YWx1
ZXNbOl0gPSBbXQorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAgICAp
CisgICAgICAgIHBhY2thZ2Uuam9pbigidGVzdF94LnB5Iikud3JpdGUoCisgICAgICAgICAgICB0
ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGZy
b20gLi4gaW1wb3J0IHZhbHVlcworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3goKToKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbInBhY2thZ2UyIl0KKyAgICAgICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikK
KworICAgIGRlZiB0ZXN0X3BhY2thZ2VfZml4dHVyZV9jb21wbGV4KHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICBfX2luaXRfXz0iIiJcCisg
ICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0
ZXN0ZGlyLnN5c3BhdGhpbnNlcnQodGVzdGRpci50bXBkaXIuZGlybmFtZSkKKyAgICAgICAgcGFj
a2FnZSA9IHRlc3RkaXIubWtkaXIoInBhY2thZ2UiKQorICAgICAgICBwYWNrYWdlLmpvaW4oIl9f
aW5pdF9fLnB5Iikud3JpdGUoIiIpCisgICAgICAgIHBhY2thZ2Uuam9pbigiY29uZnRlc3QucHki
KS53cml0ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAi
IiJcCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIGZyb20g
Li4gaW1wb3J0IHZhbHVlcworICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0i
cGFja2FnZSIpCisgICAgICAgICAgICAgICAgZGVmIG9uZSgpOgorICAgICAgICAgICAgICAgICAg
ICB2YWx1ZXMuYXBwZW5kKCJwYWNrYWdlIikKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgdmFs
dWVzCisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wb3AoKQorICAgICAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0icGFja2FnZSIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAg
ICAgICBkZWYgdHdvKCk6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInBhY2th
Z2UtYXV0byIpCisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHZhbHVlcworICAgICAgICAgICAg
ICAgICAgICB2YWx1ZXMucG9wKCkKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkK
KyAgICAgICAgKQorICAgICAgICBwYWNrYWdlLmpvaW4oInRlc3RfeC5weSIpLndyaXRlKAorICAg
ICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAg
ICAgICAgICBmcm9tIC4uIGltcG9ydCB2YWx1ZXMKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9w
YWNrYWdlX2F1dG91c2UoKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBb
InBhY2thZ2UtYXV0byJdCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfcGFja2FnZShvbmUpOgor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsicGFja2FnZS1hdXRvIiwgInBh
Y2thZ2UiXQorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAgICApCisg
ICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3Nl
cnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3RfY29sbGVjdF9jdXN0b21faXRlbXMo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCJmaXh0dXJlcy9j
dXN0b21faXRlbSIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCJmb28iKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqcGFzc2VkKiJdKQorCisKK2Ns
YXNzIFRlc3RBdXRvdXNlRGlzY292ZXJ5KG9iamVjdCk6CisgICAgQHB5dGVzdC5maXh0dXJlCisg
ICAgZGVmIHRlc3RkaXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0
ZXN0KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHBlcmZ1
bmN0aW9uKHJlcXVlc3QsIHRtcGRpcik6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGFyZzEodG1wZGlyKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1U
cnVlKQorICAgICAgICAgICAgZGVmIHBlcmZ1bmN0aW9uMihhcmcxKToKKyAgICAgICAgICAgICAg
ICBwYXNzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZt
KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Ll9maXh0dXJlbWFuYWdl
cgorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBpdGVtKHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Ll9weWZ1bmNpdGVtCisgICAg
ICAgICIiIgorICAgICAgICApCisgICAgICAgIHJldHVybiB0ZXN0ZGlyCisKKyAgICBkZWYgdGVz
dF9wYXJzZWZhY3Rvcmllc19jb25mdGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBmcm9tIF9weXRlc3Qu
cHl0ZXN0ZXIgaW1wb3J0IGdldF9wdWJsaWNfbmFtZXMKKyAgICAgICAgICAgIGRlZiB0ZXN0X2No
ZWNrX3NldHVwKGl0ZW0sIGZtKToKKyAgICAgICAgICAgICAgICBhdXRvdXNlbmFtZXMgPSBmbS5f
Z2V0YXV0b3VzZW5hbWVzKGl0ZW0ubm9kZWlkKQorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4o
Z2V0X3B1YmxpY19uYW1lcyhhdXRvdXNlbmFtZXMpKSA9PSAyCisgICAgICAgICAgICAgICAgYXNz
ZXJ0ICJwZXJmdW5jdGlvbjIiIGluIGF1dG91c2VuYW1lcworICAgICAgICAgICAgICAgIGFzc2Vy
dCAicGVyZnVuY3Rpb24iIGluIGF1dG91c2VuYW1lcworICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVj
LmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF90d29fY2xhc3Nlc19zZXBh
cmF0ZWRfYXV0b3VzZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBjbGFzcyBUZXN0QShvYmplY3QpOgorICAgICAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAg
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAg
ICBkZWYgc2V0dXAxKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnZhbHVlcy5hcHBl
bmQoMSkKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9zZXR1cDEoc2VsZik6CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydCBzZWxmLnZhbHVlcyA9PSBbMV0KKyAgICAgICAgICAgIGNsYXNzIFRl
c3RCKG9iamVjdCk6CisgICAgICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgICAgIGRlZiBzZXR1
cDIoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYudmFsdWVzLmFwcGVuZCgxKQorICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X3NldHVwMihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0IHNlbGYudmFsdWVzID09IFsxXQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3NldHVwX2F0X2NsYXNzbGV2ZWwoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9i
amVjdCk6CisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAg
ICAgICAgICAgICAgICBkZWYgcGVybWV0aG9kKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0Lmluc3RhbmNlLmZ1bmNuYW1lID0gcmVxdWVzdC5mdW5jdGlvbi5fX25h
bWVfXworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZDEoc2VsZik6CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydCBzZWxmLmZ1bmNuYW1lID09ICJ0ZXN0X21ldGhvZDEiCisgICAgICAg
ICAgICAgICAgZGVmIHRlc3RfbWV0aG9kMihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0IHNlbGYuZnVuY25hbWUgPT0gInRlc3RfbWV0aG9kMiIKKyAgICAgICAgIiIiCisgICAgICAg
ICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIHJl
cHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJl
YXNvbj0iJ2VuYWJsZWQnIGZlYXR1cmUgbm90IGltcGxlbWVudGVkIikKKyAgICBkZWYgdGVzdF9z
ZXR1cF9lbmFibGVkX2Z1bmN0aW9ubm9kZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisKKyAgICAgICAgICAgIGRlZiBlbmFibGVkKHBhcmVudG5vZGUsIG1hcmtlcnMpOgorICAgICAg
ICAgICAgICAgIHJldHVybiAibmVlZHNkYiIgaW4gbWFya2VycworCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUocGFyYW1zPVsxLDJdKQorICAgICAgICAgICAgZGVmIGRiKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShlbmFibGVkPWVuYWJsZWQsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRl
ZiBjcmVhdGVkYihkYik6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jMShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgImRiIiBub3QgaW4g
cmVxdWVzdC5maXh0dXJlbmFtZXMKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLm5lZWRzZGIK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIGFz
c2VydCAiZGIiIGluIHJlcXVlc3QuZml4dHVyZW5hbWVzCisgICAgICAgICIiIgorICAgICAgICAp
CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXMiKQorICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X2NhbGxhYmxlc19ub2Nv
ZGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIgorICAgICAgICBhbiBpbXBvcnRlZCBtb2Nr
LmNhbGwgd291bGQgYnJlYWsgc2V0dXAvZmFjdG9yeSBkaXNjb3ZlcnkKKyAgICAgICAgZHVlIHRv
IGl0IGJlaW5nIGNhbGxhYmxlIGFuZCBfX2NvZGVfXyBub3QgYmVpbmcgYSBjb2RlIG9iamVjdAor
ICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIi
CisgICAgICAgICAgIGNsYXNzIF9jYWxsKHR1cGxlKToKKyAgICAgICAgICAgICAgIGRlZiBfX2Nh
bGxfXyhzZWxmLCAqaywgKiprdyk6CisgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAg
ICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGspOgorICAgICAgICAgICAgICAgICAgIHJldHVy
biBzZWxmCisKKyAgICAgICAgICAgY2FsbCA9IF9jYWxsKCkKKyAgICAgICAgIiIiCisgICAgICAg
ICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIHJl
cHJlYy5hc3NlcnRvdXRjb21lKGZhaWxlZD0wLCBwYXNzZWQ9MCkKKworICAgIGRlZiB0ZXN0X2F1
dG91c2VfaW5fY29uZnRlc3RzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBhID0gdGVzdGRpci5t
a2RpcigiYSIpCisgICAgICAgIGIgPSB0ZXN0ZGlyLm1rZGlyKCJhMSIpCisgICAgICAgIGNvbmZ0
ZXN0ID0gdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUp
CisgICAgICAgICAgICBkZWYgaGVsbG8oKToKKyAgICAgICAgICAgICAgICB4eHgKKyAgICAgICAg
IiIiCisgICAgICAgICkKKyAgICAgICAgY29uZnRlc3QubW92ZShhLmpvaW4oY29uZnRlc3QuYmFz
ZW5hbWUpKQorICAgICAgICBhLmpvaW4oInRlc3Rfc29tZXRoaW5nLnB5Iikud3JpdGUoImRlZiB0
ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAgIGIuam9pbigidGVzdF9vdGhlcnRoaW5nLnB5Iiku
d3JpdGUoImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAg
ICAgICAgIiIiCisgICAgICAgICAgICAqMSBwYXNzZWQqMSBlcnJvcioKKyAgICAgICAgIiIiCisg
ICAgICAgICkKKworICAgIGRlZiB0ZXN0X2F1dG91c2VfaW5fbW9kdWxlX2FuZF90d29fY2xhc3Nl
cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAg
ICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBb
XQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAg
IGRlZiBhcHBlbmQxKCk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgibW9kdWxlIikK
KyAgICAgICAgICAgIGRlZiB0ZXN0X3goKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVz
ID09IFsibW9kdWxlIl0KKworICAgICAgICAgICAgY2xhc3MgVGVzdEEob2JqZWN0KToKKyAgICAg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgICAg
IGRlZiBhcHBlbmQyKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJB
IikKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmKToKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbIm1vZHVsZSIsICJtb2R1bGUiLCAiQSJdLCB2YWx1ZXMK
KyAgICAgICAgICAgIGNsYXNzIFRlc3RBMihvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X3dvcmxkKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsi
bW9kdWxlIiwgIm1vZHVsZSIsICJBIiwgIm1vZHVsZSJdLCB2YWx1ZXMKKyAgICAgICAgIiIiCisg
ICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTMpCisKKworY2xhc3MgVGVzdEF1dG91c2VNYW5h
Z2VtZW50KG9iamVjdCk6CisgICAgZGVmIHRlc3RfYXV0b3VzZV9jb25mdGVzdF9taWRfZGlyZWN0
b3J5KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwa2dkaXIgPSB0ZXN0ZGlyLm1rcHlkaXIoInh5
ejEyMyIpCisgICAgICAgIHBrZ2Rpci5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAorICAgICAg
ICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91
c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkZWYgYXBwKCk6CisgICAgICAgICAgICAgICAgICAg
IGltcG9ydCBzeXMKKyAgICAgICAgICAgICAgICAgICAgc3lzLl9teWFwcCA9ICJoZWxsbyIKKyAg
ICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICB0ID0g
cGtnZGlyLmVuc3VyZSgidGVzdHMiLCAidGVzdF9hcHAucHkiKQorICAgICAgICB0LndyaXRlKAor
ICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAg
ICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfYXBwKCk6Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCBzeXMuX215YXBwID09ICJoZWxsbyIKKyAgICAgICAg
ICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFz
c2VkPTEpCisKKyAgICBkZWYgdGVzdF9mdW5jYXJnX2FuZF9zZXR1cChzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAgICAgZGVmIGFyZygpOgorICAg
ICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMAor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBhdXRvdXNlPVRydWUp
CisgICAgICAgICAgICBkZWYgc29tZXRoaW5nKGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZCgyKQorCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhhcmcpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAyCisgICAgICAgICAgICAgICAgYXNzZXJ0IHZh
bHVlcyA9PSBbMSwyXQorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMAorCisgICAgICAg
ICAgICBkZWYgdGVzdF9oZWxsbzIoYXJnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZh
bHVlcykgPT0gMgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsMl0KKyAgICAg
ICAgICAgICAgICBhc3NlcnQgYXJnID09IDAKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF91c2VzX3BhcmFtZXRyaXplZF9yZXNvdXJj
ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAg
ICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBb
XQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwyXSkKKyAgICAgICAgICAg
IGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0K
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAg
IGRlZiBzb21ldGhpbmcoYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZykK
KworICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgICAgICBpZiBsZW4o
dmFsdWVzKSA9PSAxOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxXQor
ICAgICAgICAgICAgICAgIGVsaWYgbGVuKHZhbHVlcykgPT0gMjoKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwgMl0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICAwLzAKKworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9zZXNzaW9uX3BhcmFtZXRyaXplZF9mdW5jdGlv
bihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAg
ICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIHZhbHVlcyA9
IFtdCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIsIHBhcmFt
cz1bMSwyXSkKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9
ImZ1bmN0aW9uIiwgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIGFwcGVuZChyZXF1ZXN0
LCBhcmcpOgorICAgICAgICAgICAgICAgIGlmIHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18gPT0g
InRlc3Rfc29tZSI6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorCisg
ICAgICAgICAgICBkZWYgdGVzdF9zb21lKCk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAg
ICAgICAgICBkZWYgdGVzdF9yZXN1bHQoYXJnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbGVu
KHZhbHVlcykgPT0gYXJnCisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlc1s6YXJnXSA9PSBb
MSwyXVs6YXJnXQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oIi12IiwgIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTQpCisKKyAgICBkZWYgdGVzdF9jbGFzc19mdW5jdGlvbl9wYXJhbWV0cml6YXRpb25f
ZmluYWxpemF0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlY29u
ZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIGltcG9ydCBwcHJpbnQKKworICAgICAgICAgICAgdmFsdWVzID0gW10KKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIHBhcmFtcz1bMSwyXSkKKyAg
ICAgICAgICAgIGRlZiBmYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1
ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iY2xhc3MiLCBw
YXJhbXM9bGlzdCgiYWIiKSkKKyAgICAgICAgICAgIGRlZiBjYXJnKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShzY29wZT0iZnVuY3Rpb24iLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgYXBw
ZW5kKHJlcXVlc3QsIGZhcmcsIGNhcmcpOgorICAgICAgICAgICAgICAgIGRlZiBmaW4oKToKKyAg
ICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgiZmluXyVzJXMiICUgKGNhcmcsIGZhcmcp
KQorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGZpbikKKyAgICAgICAgIiIi
CisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFz
cyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzEoc2VsZik6CisgICAgICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzczIob2JqZWN0KToKKyAg
ICAgICAgICAgICAgICBkZWYgdGVzdF8yKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIGNvbmZjdXQgPSAiLS1jb25mY3V0ZGly
PXt9Ii5mb3JtYXQodGVzdGRpci50bXBkaXIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigiLXYiLCAiLXMiLCBjb25mY3V0KQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9OCkKKyAgICAgICAgY29uZmlnID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfdW5j
b25maWd1cmUiKVswXS5jb25maWcKKyAgICAgICAgdmFsdWVzID0gY29uZmlnLnBsdWdpbm1hbmFn
ZXIuX2dldGNvbmZ0ZXN0bW9kdWxlcyhwKVswXS52YWx1ZXMKKyAgICAgICAgYXNzZXJ0IHZhbHVl
cyA9PSBbImZpbl9hMSIsICJmaW5fYTIiLCAiZmluX2IxIiwgImZpbl9iMiJdICogMgorCisgICAg
ZGVmIHRlc3Rfc2NvcGVfb3JkZXJpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0iZnVuY3Rpb24iLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgZmFwcGVuZDIoKToK
KyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDIpCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9ImNsYXNzIiwgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIGNsYXNz
YXBwZW5kMygpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMykKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgYXV0b3VzZT1UcnVlKQorICAgICAgICAg
ICAgZGVmIG1hcHBlbmQoKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisKKyAg
ICAgICAgICAgIGNsYXNzIFRlc3RIYWxsbyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBb
MSwzLDJdCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisg
ICAgZGVmIHRlc3RfcGFyYW1ldHJpemF0aW9uX3NldHVwX3RlYXJkb3duX29yZGVyaW5nKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAg
ICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAg
ICAgICBpZiBtZXRhZnVuYy5jbHMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IG1ldGFmdW5jLmZ1bmN0aW9uIGlzIHRlc3RfZmluaXNoCisgICAgICAgICAgICAgICAgaWYgbWV0
YWZ1bmMuY2xzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJh
bWV0cml6ZSgiaXRlbSIsIFsxLDJdLCBzY29wZT0iY2xhc3MiKQorICAgICAgICAgICAgY2xhc3Mg
VGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSJjbGFzcyIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgICAgICBkZWYgYWRkdGVhcmRvd24o
c2VsZiwgaXRlbSwgcmVxdWVzdCk6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQo
InNldHVwLSVkIiAlIGl0ZW0pCisgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxp
emVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgidGVhcmRvd24tJWQiICUgaXRlbSkpCisgICAgICAg
ICAgICAgICAgZGVmIHRlc3Rfc3RlcDEoc2VsZiwgaXRlbSk6CisgICAgICAgICAgICAgICAgICAg
IHZhbHVlcy5hcHBlbmQoInN0ZXAxLSVkIiAlIGl0ZW0pCisgICAgICAgICAgICAgICAgZGVmIHRl
c3Rfc3RlcDIoc2VsZiwgaXRlbSk6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQo
InN0ZXAyLSVkIiAlIGl0ZW0pCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZpbmlzaCgpOgorICAg
ICAgICAgICAgICAgIHByaW50KHZhbHVlcykKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVz
ID09IFsic2V0dXAtMSIsICJzdGVwMS0xIiwgInN0ZXAyLTEiLCAidGVhcmRvd24tMSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzZXR1cC0yIiwgInN0ZXAxLTIiLCAic3RlcDItMiIs
ICJ0ZWFyZG93bi0yIixdCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bigiLXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShw
YXNzZWQ9NSkKKworICAgIGRlZiB0ZXN0X29yZGVyaW5nX2F1dG91c2VfYmVmb3JlX2V4cGxpY2l0
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgdmFsdWVzID0g
W10KKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgICAg
ICBkZWYgZml4MSgpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAg
ICAgICAgIHZhbHVlcy5hcHBlbmQoMikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGFyZzEp
OgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsMl0KKyAgICAgICAgIiIiCisg
ICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoInBhcmFtMSIsIFsiIiwgInBhcmFtcz1bMV0iXSwgaWRzPVsicDAwIiwgInAwMSJdKQor
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGFyYW0yIiwgWyIiLCAicGFyYW1zPVsxXSJd
LCBpZHM9WyJwMTAiLCAicDExIl0pCisgICAgZGVmIHRlc3Rfb3JkZXJpbmdfZGVwZW5kZW5jaWVz
X3Rvcm5kb3duX2ZpcnN0KHNlbGYsIHRlc3RkaXIsIHBhcmFtMSwgcGFyYW0yKToKKyAgICAgICAg
IiIiIzIyNiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoJShwYXJhbTEpcykKKyAgICAgICAgICAgIGRlZiBhcmcx
KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTog
dmFsdWVzLmFwcGVuZCgiZmluMSIpKQorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIm5l
dzEiKQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCUocGFyYW0yKXMpCisgICAgICAgICAg
ICBkZWYgYXJnMihyZXF1ZXN0LCBhcmcxKToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZp
bmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbjIiKSkKKyAgICAgICAgICAgICAgICB2
YWx1ZXMuYXBwZW5kKCJuZXcyIikKKworICAgICAgICAgICAgZGVmIHRlc3RfYXJnKGFyZzIpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2NoZWNrKCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbIm5ldzEiLCAibmV3MiIsICJmaW4yIiwgImZp
bjEiXQorICAgICAgICAiIiIKKyAgICAgICAgICAgICUgbG9jYWxzKCkKKyAgICAgICAgKQorICAg
ICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUocGFzc2VkPTIpCisKKworY2xhc3MgVGVzdEZpeHR1cmVNYXJrZXIob2JqZWN0
KToKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsiYSIsICJiIiwgImMiXSkK
KyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QucGFyYW0KKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBkZWYgdGVz
dF9wYXJhbShhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAgICAg
ICAgICAgZGVmIHRlc3RfcmVzdWx0KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9
PSBsaXN0KCJhYmMiKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
NCkKKworICAgIGRlZiB0ZXN0X211bHRpcGxlX3BhcmFtZXRyaXphdGlvbl9pc3N1ZV83MzYoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUocGFyYW1zPVsxLDIsM10pCisgICAgICAgICAgICBkZWYgZm9vKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgnZm9vYmFyJywgWzQsNSw2XSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2lz
c3VlKGZvbywgZm9vYmFyKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgZm9vIGluIFsxLDIsM10K
KyAgICAgICAgICAgICAgICBhc3NlcnQgZm9vYmFyIGluIFs0LDUsNl0KKyAgICAgICAgIiIiCisg
ICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTkpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoCisgICAgICAgICJwYXJhbV9hcmdzIiwKKyAgICAgICAgWyInZml4dCwgdmFsJyIsICIn
Zml4dCx2YWwnIiwgIlsnZml4dCcsICd2YWwnXSIsICIoJ2ZpeHQnLCAndmFsJykiXSwKKyAgICAp
CisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfcGFyYW1ldHJpemVkX2ZpeHR1cmVfaXNzdWVfOTc5KHNl
bGYsIHRlc3RkaXIsIHBhcmFtX2FyZ3MpOgorICAgICAgICAiIiJNYWtlIHN1cmUgYSBwYXJhbWV0
cml6ZWQgYXJndW1lbnQgY2FuIG92ZXJyaWRlIGEgcGFyYW1ldHJpemVkIGZpeHR1cmUuCisKKyAg
ICAgICAgVGhpcyB3YXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgaW4gdGhlIGZpeCBmb3IgIzcz
Ni4KKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUocGFyYW1zPVsxLCAyXSkKKyAgICAgICAgICAgIGRlZiBmaXh0KHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSglcywgWygzLCAneCcpLCAoNCwgJ3gnKV0pCisgICAgICAgICAgICBk
ZWYgdGVzdF9mb28oZml4dCwgdmFsKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIi
IgorICAgICAgICAgICAgJSBwYXJhbV9hcmdzCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTIpCisKKyAgICBkZWYgdGVzdF9zY29wZV9zZXNzaW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgICAgICAgICBkZWYgYXJnKCk6CisgICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZCgxKQorICAgICAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAg
ICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDEK
KyAgICAgICAgICAgIGRlZiB0ZXN0XzIoYXJnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJn
ID09IDEKKyAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICAg
ICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3QzKHNl
bGYsIGFyZyk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQorICAgICAgICAg
ICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICAiIiIKKyAgICAgICAg
KQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMu
YXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKKworICAgIGRlZiB0ZXN0X3Njb3BlX3Nlc3Npb25fZXhj
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtd
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorICAgICAgICAg
ICAgZGVmIGZpeCgpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAg
ICAgICAgICBweXRlc3Quc2tpcCgnc2tpcHBpbmcnKQorCisgICAgICAgICAgICBkZWYgdGVzdF8x
KGZpeCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfMihmaXgp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2xhc3QoKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxXQorICAgICAgICAiIiIKKyAgICAgICAg
KQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMu
YXNzZXJ0b3V0Y29tZShza2lwcGVkPTIsIHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rfc2NvcGVf
c2Vzc2lvbl9leGNfdHdvX2ZpeChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgbSA9IFtdCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorICAgICAgICAgICAgZGVmIGEoKToKKyAgICAg
ICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAo
J3NraXBwaW5nJykKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIp
CisgICAgICAgICAgICBkZWYgYihhKToKKyAgICAgICAgICAgICAgICBtLmFwcGVuZCgxKQorCisg
ICAgICAgICAgICBkZWYgdGVzdF8xKGIpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
ICAgIGRlZiB0ZXN0XzIoYik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVm
IHRlc3RfbGFzdCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCisgICAg
ICAgICAgICAgICAgYXNzZXJ0IG0gPT0gW10KKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUoc2tpcHBlZD0yLCBwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X3Njb3BlX2V4YyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVz
dF9mb289IiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZm9vKGZpeCk6CisgICAgICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgIHRlc3RfYmFyPSIi
IgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2JhcihmaXgpOgorICAgICAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICBjb25mdGVzdD0iIiIKKyAgICAg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAgICAgcmVxcyA9IFtdCisgICAg
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKKyAgICAgICAgICAg
ICAgICBkZWYgZml4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICAgICByZXFzLmFwcGVuZCgx
KQorICAgICAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgpCisgICAgICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIHJlcV9saXN0KCk6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiByZXFzCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICB0ZXN0
X3JlYWw9IiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfbGFzdChyZXFfbGlzdCk6CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydCByZXFfbGlzdCA9PSBbMV0KKyAgICAgICAgICAgICIiIiwK
KyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShza2lwcGVkPTIsIHBhc3NlZD0xKQorCisgICAgZGVmIHRl
c3Rfc2NvcGVfbW9kdWxlX3VzZXNfc2Vzc2lvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAgICAgZGVmIGFyZygpOgorICAgICAgICAgICAgICAg
IHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorCisgICAgICAgICAg
ICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAxCisgICAg
ICAgICAgICBkZWYgdGVzdF8yKGFyZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAx
CisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAgICAgIGNs
YXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0MyhzZWxmLCBh
cmcpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDEKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTMpCisKKyAgICBkZWYgdGVzdF9zY29wZV9tb2R1bGVfYW5kX2ZpbmFs
aXplcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAg
ICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGZpbmFs
aXplZF9saXN0ID0gW10KKyAgICAgICAgICAgIGNyZWF0ZWRfbGlzdCA9IFtdCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgICAgICAgICBkZWYgYXJnKHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIGNyZWF0ZWRfbGlzdC5hcHBlbmQoMSkKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgcmVxdWVzdC5zY29wZSA9PSAibW9kdWxlIgorICAgICAgICAgICAgICAg
IHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogZmluYWxpemVkX2xpc3QuYXBwZW5kKDEpKQor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgY3JlYXRlZChyZXF1
ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gbGVuKGNyZWF0ZWRfbGlzdCkKKyAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZpbmFsaXplZChyZXF1ZXN0KToK
KyAgICAgICAgICAgICAgICByZXR1cm4gbGVuKGZpbmFsaXplZF9saXN0KQorICAgICAgICAiIiIK
KyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXN0
X21vZDE9IiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcsIGNyZWF0ZWQsIGZpbmFs
aXplZCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBjcmVhdGVkID09IDEKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IGZpbmFsaXplZCA9PSAwCisgICAgICAgICAgICAgICAgZGVmIHRl
c3RfMihhcmcsIGNyZWF0ZWQsIGZpbmFsaXplZCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBjcmVhdGVkID09IDEKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZpbmFsaXplZCA9PSAw
IiIiLAorICAgICAgICAgICAgdGVzdF9tb2QyPSIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0
XzMoYXJnLCBjcmVhdGVkLCBmaW5hbGl6ZWQpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
Y3JlYXRlZCA9PSAyCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmaW5hbGl6ZWQgPT0gMSIi
IiwKKyAgICAgICAgICAgIHRlc3RfbW9kZTM9IiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3Rf
NChhcmcsIGNyZWF0ZWQsIGZpbmFsaXplZCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBj
cmVhdGVkID09IDMKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZpbmFsaXplZCA9PSAyCisg
ICAgICAgICAgICAiIiIsCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTQpCisKKyAgICBk
ZWYgdGVzdF9zY29wZV9taXNtYXRjaF92YXJpb3VzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgZmluYWxpemVkID0gW10KKyAgICAgICAgICAgIGNyZWF0ZWQg
PSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIpCisgICAg
ICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
IiIiCisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAg
dGVzdF9tb2QxPSIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorICAgICAgICAgICAgICAgIGRl
ZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVyZXZh
bHVlKCJhcmciKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKKyAgICAgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoU0hPV19QWVRFU1RfV0FSTklOR1NfQVJHKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygKKyAgICAgICAgICAgIFsiKlNjb3BlTWlzbWF0Y2gqWW91IHRyaWVkKmZ1bmN0aW9uKnNlc3Np
b24qcmVxdWVzdCoiXQorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9yZWdpc3Rlcl9vbmx5X3dp
dGhfbWFyayhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisg
ICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgYXJnKCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIDEKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICAgICAgdGVzdF9tb2QxPSIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgICAg
IGRlZiBhcmcoYXJnKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFyZyArIDEKKyAgICAg
ICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBh
cmcgPT0gMgorICAgICAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVz
dGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEp
CisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9hbmRfc2NvcGUoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUi
LCBwYXJhbXM9WyJhIiwgImIiLCAiYyJdKQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToK
KyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAgICAgICAgICAgdmFsdWVz
ID0gW10KKyAgICAgICAgICAgIGRlZiB0ZXN0X3BhcmFtKGFyZyk6CisgICAgICAgICAgICAgICAg
dmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9MykKKyAgICAgICAgdmFsdWVzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVu
dGVzdF9jYWxsIilbMF0uaXRlbS5tb2R1bGUudmFsdWVzCisgICAgICAgIGFzc2VydCBsZW4odmFs
dWVzKSA9PSAzCisgICAgICAgIGFzc2VydCAiYSIgaW4gdmFsdWVzCisgICAgICAgIGFzc2VydCAi
YiIgaW4gdmFsdWVzCisgICAgICAgIGFzc2VydCAiYyIgaW4gdmFsdWVzCisKKyAgICBkZWYgdGVz
dF9zY29wZV9taXNtYXRjaChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iKQorICAgICAgICAgICAgZGVm
IGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAg
ICApCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJz
ZXNzaW9uIikKKyAgICAgICAgICAgIGRlZiBhcmcoYXJnKToKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICAgICBkZWYgdGVzdF9taXNtYXRjaChhcmcpOgorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqU2NvcGVNaXNt
YXRjaCoiLCAiKjEgZXJyb3IqIl0pCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9zZXBhcmF0
ZWRfb3JkZXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz1bMSwgMl0pCisgICAgICAgICAg
ICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFt
CisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6
CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVz
dF8yKGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICIi
IgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYiKQor
ICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NCkKKyAgICAgICAgdmFsdWVzID0g
cmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9jYWxsIilbMF0uaXRlbS5tb2R1bGUudmFs
dWVzCisgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsIDEsIDIsIDJdCisKKyAgICBkZWYgdGVz
dF9tb2R1bGVfcGFyYW1ldHJpemVkX29yZGVyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisg
ICAgICAgICAgICBjb25zb2xlX291dHB1dF9zdHlsZT1jbGFzc2ljCisgICAgICAgICIiIgorICAg
ICAgICApCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAgICAgIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0ic2Vzc2lvbiIsIHBhcmFtcz0iczEgczIiLnNwbGl0KCkpCisgICAgICAgICAgICBkZWYg
c2FyZygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0ibW9kdWxlIiwgcGFyYW1zPSJtMSBtMiIuc3BsaXQoKSkKKyAgICAgICAgICAgIGRl
ZiBtYXJnKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXN0X21vZDE9IiIiCisg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKG1hcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgIiIiLAorICAgICAgICAgICAgdGVzdF9tb2QyPSIiIgorICAgICAgICAgICAgZGVmIHRl
c3RfZnVuYzIoc2FyZyk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRl
c3RfZnVuYzMoc2FyZywgbWFyZyk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYzNiKHNhcmcsIG1hcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2Z1bmM0KG1hcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiLAorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
diIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgdGVzdF9tb2QxLnB5Ojp0ZXN0X2Z1bmNbczFdIFBBU1NFRAorICAgICAg
ICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMyW3MxXSBQQVNTRUQKKyAgICAgICAgICAgIHRl
c3RfbW9kMi5weTo6dGVzdF9mdW5jM1tzMS1tMV0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X21v
ZDIucHk6OnRlc3RfZnVuYzNiW3MxLW0xXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMi5w
eTo6dGVzdF9mdW5jM1tzMS1tMl0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRl
c3RfZnVuYzNiW3MxLW0yXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMS5weTo6dGVzdF9m
dW5jW3MyXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jMltzMl0g
UEFTU0VECisgICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzNbczItbTFdIFBBU1NF
RAorICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMzYltzMi1tMV0gUEFTU0VECisg
ICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzRbbTFdIFBBU1NFRAorICAgICAgICAg
ICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmMzW3MyLW0yXSBQQVNTRUQKKyAgICAgICAgICAgIHRl
c3RfbW9kMi5weTo6dGVzdF9mdW5jM2JbczItbTJdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9t
b2QyLnB5Ojp0ZXN0X2Z1bmM0W20yXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMS5weTo6
dGVzdF9mdW5jMVttMV0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X21vZDEucHk6OnRlc3RfZnVu
YzFbbTJdIFBBU1NFRAorICAgICAgICAiIiIKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfZHlu
YW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZWluaSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAg
ICAgICAgIGNvbnNvbGVfb3V0cHV0X3N0eWxlPWNsYXNzaWMKKyAgICAgICAgIiIiCisgICAgICAg
ICkKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1cmUo
Y29uZmlnKToKKyAgICAgICAgICAgICAgICBjbGFzcyBEeW5hbWljRml4dHVyZVBsdWdpbihvYmpl
Y3QpOgorICAgICAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24n
LCBwYXJhbXM9WydmbGF2b3IxJywgJ2ZsYXZvcjInXSkKKyAgICAgICAgICAgICAgICAgICAgZGVm
IGZsYXZvcihzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBy
ZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0
ZXIoRHluYW1pY0ZpeHR1cmVQbHVnaW4oKSwgJ2ZsYXZvci1maXh0dXJlJykKKworICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJywgcGFyYW1zPVsndnhsYW4nLCAndmxh
biddKQorICAgICAgICAgICAgZGVmIGVuY2FwKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJl
dHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0n
c2Vzc2lvbicsIGF1dG91c2U9J1RydWUnKQorICAgICAgICAgICAgZGVmIHJlcHJvdmlzaW9uKHJl
cXVlc3QsIGZsYXZvciwgZW5jYXApOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIi
CisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIi
CisgICAgICAgICAgICBkZWYgdGVzdChyZXByb3Zpc2lvbik6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgZGVmIHRlc3QyKHJlcHJvdmlzaW9uKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItdiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgdGVzdF9keW5hbWljX3BhcmFtZXRyaXplZF9vcmRlcmlu
Zy5weTo6dGVzdFtmbGF2b3IxLXZ4bGFuXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfZHluYW1p
Y19wYXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6OnRlc3QyW2ZsYXZvcjEtdnhsYW5dIFBBU1NFRAor
ICAgICAgICAgICAgdGVzdF9keW5hbWljX3BhcmFtZXRyaXplZF9vcmRlcmluZy5weTo6dGVzdFtm
bGF2b3IyLXZ4bGFuXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0cml6
ZWRfb3JkZXJpbmcucHk6OnRlc3QyW2ZsYXZvcjItdnhsYW5dIFBBU1NFRAorICAgICAgICAgICAg
dGVzdF9keW5hbWljX3BhcmFtZXRyaXplZF9vcmRlcmluZy5weTo6dGVzdFtmbGF2b3IyLXZsYW5d
IFBBU1NFRAorICAgICAgICAgICAgdGVzdF9keW5hbWljX3BhcmFtZXRyaXplZF9vcmRlcmluZy5w
eTo6dGVzdDJbZmxhdm9yMi12bGFuXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfZHluYW1pY19w
YXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6OnRlc3RbZmxhdm9yMS12bGFuXSBQQVNTRUQKKyAgICAg
ICAgICAgIHRlc3RfZHluYW1pY19wYXJhbWV0cml6ZWRfb3JkZXJpbmcucHk6OnRlc3QyW2ZsYXZv
cjEtdmxhbl0gUEFTU0VECisgICAgICAgICIiIgorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9j
bGFzc19vcmRlcmluZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKAor
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgY29uc29s
ZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorCisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgcGFyYW1zPVsxLDJdKQorICAgICAgICAgICAgZGVm
IGZhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKwor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIsIHBhcmFtcz1saXN0KCJh
YiIpKQorICAgICAgICAgICAgZGVmIGNhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJm
dW5jdGlvbiIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBhcHBlbmQocmVxdWVzdCwg
ZmFyZywgY2FyZyk6CisgICAgICAgICAgICAgICAgZGVmIGZpbigpOgorICAgICAgICAgICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKCJmaW5fJXMlcyIgJSAoY2FyZywgZmFyZykpCisgICAgICAgICAg
ICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQorICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzMihvYmplY3QpOgor
ICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8yKHNlbGYpOgorICAgICAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAg
ICAgICBkZWYgdGVzdF8zKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdnMi
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LnJlX21hdGNoX2xpbmVzKAorICAgICAgICAgICAgciIi
IgorICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzMjo6dGVzdF8x
XFthLTFcXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RD
bGFzczI6OnRlc3RfMVxbYS0yXF0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVy
aW5nLnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzJcW2EtMVxdIFBBU1NFRAorICAgICAgICAgICAgdGVz
dF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzMjo6dGVzdF8yXFthLTJcXSBQQVNTRUQKKyAg
ICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3RfMVxbYi0x
XF0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3My
Ojp0ZXN0XzFcW2ItMlxdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5w
eTo6VGVzdENsYXNzMjo6dGVzdF8yXFtiLTFcXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfY2xh
c3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3RfMlxbYi0yXF0gUEFTU0VECisgICAgICAg
ICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3M6OnRlc3RfM1xbYS0xXF0gUEFT
U0VECisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3M6OnRlc3Rf
M1xbYS0yXF0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0
Q2xhc3M6OnRlc3RfM1xbYi0xXF0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVy
aW5nLnB5OjpUZXN0Q2xhc3M6OnRlc3RfM1xbYi0yXF0gUEFTU0VECisgICAgICAgICIiIgorICAg
ICAgICApCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9zZXBhcmF0ZWRfb3JkZXJfaGlnaGVy
X3Njb3BlX2ZpcnN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIHBhcmFtcz1bMSwgMl0pCisgICAg
ICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHBhcmFtID0gcmVxdWVz
dC5wYXJhbQorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFs
dWVzLmFwcGVuZCgiZmluOiVzIiAlIHBhcmFtKSkKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBw
ZW5kKCJjcmVhdGU6JXMiICUgcGFyYW0pCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Qu
cGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJh
bXM9WyJtb2QxIiwgIm1vZDIiXSkKKyAgICAgICAgICAgIGRlZiBtb2RhcmcocmVxdWVzdCk6Cisg
ICAgICAgICAgICAgICAgcGFyYW0gPSByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICAgICAgcmVx
dWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKCJmaW46JXMiICUgcGFyYW0p
KQorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoImNyZWF0ZTolcyIgJSBwYXJhbSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICB2YWx1ZXMg
PSBbXQorICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoInRlc3QxIikKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIobW9kYXJnKToKKyAgICAg
ICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0MiIpCisgICAgICAgICAgICBkZWYgdGVzdF8z
KGFyZywgbW9kYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0MyIpCisg
ICAgICAgICAgICBkZWYgdGVzdF80KG1vZGFyZywgYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKCJ0ZXN0NCIpCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9MTIpCisgICAgICAgIHZhbHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1
bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxlLnZhbHVlcworICAgICAgICBleHBlY3RlZCA9IFsK
KyAgICAgICAgICAgICJjcmVhdGU6MSIsCisgICAgICAgICAgICAidGVzdDEiLAorICAgICAgICAg
ICAgImZpbjoxIiwKKyAgICAgICAgICAgICJjcmVhdGU6MiIsCisgICAgICAgICAgICAidGVzdDEi
LAorICAgICAgICAgICAgImZpbjoyIiwKKyAgICAgICAgICAgICJjcmVhdGU6bW9kMSIsCisgICAg
ICAgICAgICAidGVzdDIiLAorICAgICAgICAgICAgImNyZWF0ZToxIiwKKyAgICAgICAgICAgICJ0
ZXN0MyIsCisgICAgICAgICAgICAiZmluOjEiLAorICAgICAgICAgICAgImNyZWF0ZToyIiwKKyAg
ICAgICAgICAgICJ0ZXN0MyIsCisgICAgICAgICAgICAiZmluOjIiLAorICAgICAgICAgICAgImNy
ZWF0ZToxIiwKKyAgICAgICAgICAgICJ0ZXN0NCIsCisgICAgICAgICAgICAiZmluOjEiLAorICAg
ICAgICAgICAgImNyZWF0ZToyIiwKKyAgICAgICAgICAgICJ0ZXN0NCIsCisgICAgICAgICAgICAi
ZmluOjIiLAorICAgICAgICAgICAgImZpbjptb2QxIiwKKyAgICAgICAgICAgICJjcmVhdGU6bW9k
MiIsCisgICAgICAgICAgICAidGVzdDIiLAorICAgICAgICAgICAgImNyZWF0ZToxIiwKKyAgICAg
ICAgICAgICJ0ZXN0MyIsCisgICAgICAgICAgICAiZmluOjEiLAorICAgICAgICAgICAgImNyZWF0
ZToyIiwKKyAgICAgICAgICAgICJ0ZXN0MyIsCisgICAgICAgICAgICAiZmluOjIiLAorICAgICAg
ICAgICAgImNyZWF0ZToxIiwKKyAgICAgICAgICAgICJ0ZXN0NCIsCisgICAgICAgICAgICAiZmlu
OjEiLAorICAgICAgICAgICAgImNyZWF0ZToyIiwKKyAgICAgICAgICAgICJ0ZXN0NCIsCisgICAg
ICAgICAgICAiZmluOjIiLAorICAgICAgICAgICAgImZpbjptb2QyIiwKKyAgICAgICAgXQorICAg
ICAgICBpbXBvcnQgcHByaW50CisKKyAgICAgICAgcHByaW50LnBwcmludChsaXN0KHppcCh2YWx1
ZXMsIGV4cGVjdGVkKSkpCisgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gZXhwZWN0ZWQKKworICAg
IGRlZiB0ZXN0X3BhcmFtZXRyaXplZF9maXh0dXJlX3RlYXJkb3duX29yZGVyKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9
WzEsMl0sIHNjb3BlPSJjbGFzcyIpCisgICAgICAgICAgICBkZWYgcGFyYW0xKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIHZhbHVl
cyA9IFtdCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAg
ICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0iY2xhc3MiLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICAgICAgZGVmIHNldHVwMShzZWxm
LCByZXF1ZXN0LCBwYXJhbTEpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEp
CisgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhcmRvd24x
KQorICAgICAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAgICAgIGRlZiB0ZWFy
ZG93bjEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMucG9wKCkgPT0g
MQorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iY2xhc3MiLCBhdXRvdXNl
PVRydWUpCisgICAgICAgICAgICAgICAgZGVmIHNldHVwMihzZWxmLCByZXF1ZXN0LCBwYXJhbTEp
OgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDIpCisgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhcmRvd24yKQorICAgICAgICAgICAgICAg
IEBjbGFzc21ldGhvZAorICAgICAgICAgICAgICAgIGRlZiB0ZWFyZG93bjIoc2VsZik6CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMucG9wKCkgPT0gMgorICAgICAgICAgICAgICAg
IGRlZiB0ZXN0KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2ZpbmlzaCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBub3QgdmFsdWVzCisg
ICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItdiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgKjMgcGFzc2VkKgorICAgICAgICAiIiIKKyAgICAgICAgKQorICAg
ICAgICBhc3NlcnQgImVycm9yIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAgZGVm
IHRlc3RfZml4dHVyZV9maW5hbGl6ZXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgICAgICBpbXBvcnQgc3lzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQor
ICAgICAgICAgICAgZGVmIGJyb3dzZXIocmVxdWVzdCk6CisKKyAgICAgICAgICAgICAgICBkZWYg
ZmluYWxpemUoKToKKyAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgnRmluYWxp
emVkJykKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihmaW5hbGl6ZSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4ge30KKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAg
YiA9IHRlc3RkaXIubWtkaXIoInN1YmRpciIpCisgICAgICAgIGIuam9pbigidGVzdF9vdmVycmlk
ZGVuX2ZpeHR1cmVfZmluYWxpemVyLnB5Iikud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5k
ZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYg
YnJvd3Nlcihicm93c2VyKToKKyAgICAgICAgICAgICAgICAgICAgYnJvd3NlclsndmlzaXRlZCdd
ID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnJvd3NlcgorCisgICAgICAgICAg
ICAgICAgZGVmIHRlc3RfYnJvd3Nlcihicm93c2VyKToKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0IGJyb3dzZXJbJ3Zpc2l0ZWQnXSBpcyBUcnVlCisgICAgICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii1zIikKKyAgICAgICAgZm9yIHRlc3QgaW4gWyJ0ZXN0X2Jyb3dzZXIiXToKKyAgICAgICAgICAg
IHJlcHJlYy5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipGaW5hbGl6ZWQqIl0pCisKKyAgICBkZWYg
dGVzdF9jbGFzc19zY29wZV93aXRoX25vcm1hbF90ZXN0cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgY2xhc3MgQm94KG9iamVjdCk6Cisg
ICAgICAgICAgICAgICAgdmFsdWUgPSAwCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0nY2xhc3MnKQorICAgICAgICAgICAgZGVmIGEocmVxdWVzdCk6CisgICAgICAgICAgICAg
ICAgQm94LnZhbHVlICs9IDEKKyAgICAgICAgICAgICAgICByZXR1cm4gQm94LnZhbHVlCisKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2EoYSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGEgPT0gMQor
CisgICAgICAgICAgICBjbGFzcyBUZXN0MShvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X2Ioc2VsZiwgYSk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBhID09IDIKKworICAg
ICAgICAgICAgY2xhc3MgVGVzdDIob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9j
KHNlbGYsIGEpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYSA9PSAzIiIiCisgICAgICAg
ICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3RwYXRoKQorICAgICAg
ICBmb3IgdGVzdCBpbiBbInRlc3RfYSIsICJ0ZXN0X2IiLCAidGVzdF9jIl06CisgICAgICAgICAg
ICBhc3NlcnQgcmVwcmVjLm1hdGNocmVwb3J0KHRlc3QpLnBhc3NlZAorCisgICAgZGVmIHRlc3Rf
cmVxdWVzdF9pc19jbGVhbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMSwg
Ml0pCisgICAgICAgICAgICBkZWYgZml4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVl
c3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZChyZXF1ZXN0LnBhcmFtKSkKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2ZpeChmaXgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCIt
cyIpCisgICAgICAgIHZhbHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2Fs
bCIpWzBdLml0ZW0ubW9kdWxlLnZhbHVlcworICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLCAy
XQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfc2VwYXJhdGVkX2xpZmVjeWNsZShzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz1bMSwgMl0pCisg
ICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHggPSByZXF1ZXN0
LnBhcmFtCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1
ZXMuYXBwZW5kKCJmaW4lcyIgJSB4KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5w
YXJhbQorICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoYXJnKQorICAgICAgICAgICAgZGVmIHRlc3RfMihhcmcpOgorICAgICAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBy
ZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12cyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKHBhc3NlZD00KQorICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVz
dF9ydW50ZXN0X2NhbGwiKVswXS5pdGVtLm1vZHVsZS52YWx1ZXMKKyAgICAgICAgaW1wb3J0IHBw
cmludAorCisgICAgICAgIHBwcmludC5wcHJpbnQodmFsdWVzKQorICAgICAgICAjIGFzc2VydCBs
ZW4odmFsdWVzKSA9PSA2CisgICAgICAgIGFzc2VydCB2YWx1ZXNbMF0gPT0gdmFsdWVzWzFdID09
IDEKKyAgICAgICAgYXNzZXJ0IHZhbHVlc1syXSA9PSAiZmluMSIKKyAgICAgICAgYXNzZXJ0IHZh
bHVlc1szXSA9PSB2YWx1ZXNbNF0gPT0gMgorICAgICAgICBhc3NlcnQgdmFsdWVzWzVdID09ICJm
aW4yIgorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfZnVuY3Rpb25fc2NvcGVkX2ZpbmFsaXpl
cnNfY2FsbGVkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisg
ICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIHBhcmFtcz1bMSwgMl0pCisgICAgICAg
ICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHggPSByZXF1ZXN0LnBhcmFt
CisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBw
ZW5kKCJmaW4lcyIgJSB4KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQor
CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgor
ICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAgICAgICAgICAgZGVmIHRlc3Rf
MihhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAgICAgICAgICAg
ZGVmIHRlc3RfMygpOgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSA4Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwgImZpbjEiLCAyLCAiZmluMiIsIDEs
ICJmaW4xIiwgMiwgImZpbjIiXQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi12IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPTUpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInNjb3BlIiwgWyJz
ZXNzaW9uIiwgImZ1bmN0aW9uIiwgIm1vZHVsZSJdKQorICAgIGRlZiB0ZXN0X2ZpbmFsaXplcl9v
cmRlcl9vbl9wYXJhbWV0cml6YXRpb24oc2VsZiwgc2NvcGUsIHRlc3RkaXIpOgorICAgICAgICAi
IiIjMjQ2IiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSUoc2NvcGUpciwgcGFyYW1zPVsiMSJdKQor
ICAgICAgICAgICAgZGVmIGZpeDEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSUoc2NvcGUp
cikKKyAgICAgICAgICAgIGRlZiBmaXgyKHJlcXVlc3QsIGJhc2UpOgorICAgICAgICAgICAgICAg
IGRlZiBjbGVhbnVwX2ZpeDIoKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCB2YWx1
ZXMsICJiYXNlIHNob3VsZCBub3QgaGF2ZSBiZWVuIGZpbmFsaXplZCIKKyAgICAgICAgICAgICAg
ICByZXF1ZXN0LmFkZGZpbmFsaXplcihjbGVhbnVwX2ZpeDIpCisKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShzY29wZT0lKHNjb3BlKXIpCisgICAgICAgICAgICBkZWYgYmFzZShyZXF1ZXN0
LCBmaXgxKToKKyAgICAgICAgICAgICAgICBkZWYgY2xlYW51cF9iYXNlKCk6CisgICAgICAgICAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQoImZpbl9iYXNlIikKKyAgICAgICAgICAgICAgICAgICAg
cHJpbnQoImZpbmFsaXppbmcgYmFzZSIpCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5h
bGl6ZXIoY2xlYW51cF9iYXNlKQorCisgICAgICAgICAgICBkZWYgdGVzdF9iZWdpbigpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2JheihiYXNlLCBmaXgyKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9vdGhlcigpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICAgICAlIHsic2NvcGUiOiBz
Y29wZX0KKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1s
dnMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKKworICAgIGRlZiB0
ZXN0X2NsYXNzX3Njb3BlX3BhcmFtZXRyaXphdGlvbl9vcmRlcmluZyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgIiIiIzM5NiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9
IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsiSm9obiIsICJEb2UiXSwg
c2NvcGU9ImNsYXNzIikKKyAgICAgICAgICAgIGRlZiBodW1hbihyZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbiAl
cyIgJSByZXF1ZXN0LnBhcmFtKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJh
bQorCisgICAgICAgICAgICBjbGFzcyBUZXN0R3JlZXRpbmdzKG9iamVjdCk6CisgICAgICAgICAg
ICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZiwgaHVtYW4pOgorICAgICAgICAgICAgICAgICAgICB2
YWx1ZXMuYXBwZW5kKCJ0ZXN0X2hlbGxvIikKKworICAgICAgICAgICAgY2xhc3MgVGVzdE1ldHJp
Y3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9uYW1lKHNlbGYsIGh1bWFuKToK
KyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgidGVzdF9uYW1lIikKKworICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X3BvcHVsYXRpb24oc2VsZiwgaHVtYW4pOgorICAgICAgICAgICAg
ICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZXN0X3BvcHVsYXRpb24iKQorICAgICAgICAiIiIKKyAg
ICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICBy
ZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NikKKyAgICAgICAgdmFsdWVzID0gcmVwcmVjLmdl
dGNhbGxzKCJweXRlc3RfcnVudGVzdF9jYWxsIilbMF0uaXRlbS5tb2R1bGUudmFsdWVzCisgICAg
ICAgIGFzc2VydCB2YWx1ZXMgPT0gWworICAgICAgICAgICAgInRlc3RfaGVsbG8iLAorICAgICAg
ICAgICAgImZpbiBKb2huIiwKKyAgICAgICAgICAgICJ0ZXN0X2hlbGxvIiwKKyAgICAgICAgICAg
ICJmaW4gRG9lIiwKKyAgICAgICAgICAgICJ0ZXN0X25hbWUiLAorICAgICAgICAgICAgInRlc3Rf
cG9wdWxhdGlvbiIsCisgICAgICAgICAgICAiZmluIEpvaG4iLAorICAgICAgICAgICAgInRlc3Rf
bmFtZSIsCisgICAgICAgICAgICAidGVzdF9wb3B1bGF0aW9uIiwKKyAgICAgICAgICAgICJmaW4g
RG9lIiwKKyAgICAgICAgXQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfc2V0dXBfZnVuY3Rp
b24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz1bMSwgMl0pCisgICAgICAgICAgICBkZWYg
YXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgYXV0b3VzZT1UcnVlKQor
ICAgICAgICAgICAgZGVmIG15c2V0dXAocmVxdWVzdCwgYXJnKToKKyAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbiVzIiAlIGFyZykp
CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgic2V0dXAlcyIgJSBhcmcpCisKKyAgICAg
ICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZyk6
CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVz
dF8zKCk6CisgICAgICAgICAgICAgICAgaW1wb3J0IHBwcmludAorICAgICAgICAgICAgICAgIHBw
cmludC5wcHJpbnQodmFsdWVzKQorICAgICAgICAgICAgICAgIGlmIGFyZyA9PSAxOgorICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsic2V0dXAxIiwgMSwgMSwgXQorICAgICAg
ICAgICAgICAgIGVsaWYgYXJnID09IDI6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1
ZXMgPT0gWyJzZXR1cDEiLCAxLCAxLCAiZmluMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic2V0dXAyIiwgMiwgMiwgXQorCisgICAgICAgICIiIgorICAgICAgICApCisgICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXYiKQorICAgICAgICByZXByZWMuYXNz
ZXJ0b3V0Y29tZShwYXNzZWQ9NikKKworICAgIGRlZiB0ZXN0X2ZpeHR1cmVfbWFya2VkX2Z1bmN0
aW9uX25vdF9jb2xsZWN0ZWRfYXNfdGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiB0ZXN0X2FwcCgp
OgorICAgICAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NvbWV0
aGluZyh0ZXN0X2FwcCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHRlc3RfYXBwID09IDEKKyAg
ICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVz
dF9wYXJhbXNfYW5kX2lkcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9W29iamVjdCgpLCBvYmplY3QoKV0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWRzPVsnYWxwaGEnLCAnYmV0YSddKQorICAgICAgICAg
ICAgZGVmIGZpeChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJh
bQorCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oZml4KToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgMQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLXYiKQorICAgICAgICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdF9mb28q
YWxwaGEqIiwgIip0ZXN0X2ZvbypiZXRhKiJdKQorCisgICAgZGVmIHRlc3RfcGFyYW1zX2FuZF9p
ZHNfeWllbGRmaXh0dXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAg
ICAgICAgQHB5dGVzdC55aWVsZF9maXh0dXJlKHBhcmFtcz1bb2JqZWN0KCksIG9iamVjdCgpXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHM9WydhbHBoYScsICdiZXRhJ10p
CisgICAgICAgICAgICBkZWYgZml4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICB5aWVsZCBy
ZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhmaXgpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCAxCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcyA9IHRl
c3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
Iip0ZXN0X2ZvbyphbHBoYSoiLCAiKnRlc3RfZm9vKmJldGEqIl0pCisKKyAgICBkZWYgdGVzdF9k
ZXRlcm1pbmlzdGljX2ZpeHR1cmVfY29sbGVjdGlvbihzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRj
aCk6CisgICAgICAgICIiIiM5MjAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAg
ICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXJhbXM9WyJBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDIl0pCisgICAgICAgICAgICBk
ZWYgQShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyYW1zPVsiREREREREREREIiwgIkVFRUVFRUVFRUVFRSIsICJGRkZG
RkZGRkZGRiIsICJiYW5hbnNkYSJdKQorICAgICAgICAgICAgZGVmIEIocmVxdWVzdCwgQSk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgZGVmIHRl
c3RfZm9vKEIpOgorICAgICAgICAgICAgICAgICMgU29tZXRoaW5nIGZ1bmt5IGlzIGdvaW5nIG9u
IGhlcmUuCisgICAgICAgICAgICAgICAgIyBEZXNwaXRlIHNwZWNpZmllZCBzZWVkcywgb24gd2hh
dCBpcyBjb2xsZWN0ZWQsCisgICAgICAgICAgICAgICAgIyBzb21ldGltZXMgd2UgZ2V0IHVuZXhw
ZWN0ZWQgcGFzc2VzLiBoYXNoaW5nIEIgc2VlbXMKKyAgICAgICAgICAgICAgICAjIHRvIGhlbHA/
CisgICAgICAgICAgICAgICAgYXNzZXJ0IGhhc2goQikgb3IgVHJ1ZQorICAgICAgICAgICAgIiIi
CisgICAgICAgICkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRIT05IQVNIU0VFRCIs
ICIxIikKKyAgICAgICAgb3V0MSA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi12IikK
KyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRIT05IQVNIU0VFRCIsICIyIikKKyAgICAg
ICAgb3V0MiA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi12IikKKyAgICAgICAgb3V0
MSA9IFsKKyAgICAgICAgICAgIGxpbmUKKyAgICAgICAgICAgIGZvciBsaW5lIGluIG91dDEub3V0
bGluZXMKKyAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgidGVzdF9kZXRlcm1pbmlzdGlj
X2ZpeHR1cmVfY29sbGVjdGlvbi5weTo6dGVzdF9mb28iKQorICAgICAgICBdCisgICAgICAgIG91
dDIgPSBbCisgICAgICAgICAgICBsaW5lCisgICAgICAgICAgICBmb3IgbGluZSBpbiBvdXQyLm91
dGxpbmVzCisgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoInRlc3RfZGV0ZXJtaW5pc3Rp
Y19maXh0dXJlX2NvbGxlY3Rpb24ucHk6OnRlc3RfZm9vIikKKyAgICAgICAgXQorICAgICAgICBh
c3NlcnQgbGVuKG91dDEpID09IDEyCisgICAgICAgIGFzc2VydCBvdXQxID09IG91dDIKKworCitj
bGFzcyBUZXN0UmVxdWVzdFNjb3BlQWNjZXNzKG9iamVjdCk6CisgICAgcHl0ZXN0bWFyayA9IHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAoInNjb3BlIiwgIm9rIiwgImVycm9yIiks
CisgICAgICAgIFsKKyAgICAgICAgICAgIFsic2Vzc2lvbiIsICIiLCAiZnNwYXRoIGNsYXNzIGZ1
bmN0aW9uIG1vZHVsZSJdLAorICAgICAgICAgICAgWyJtb2R1bGUiLCAibW9kdWxlIGZzcGF0aCIs
ICJjbHMgZnVuY3Rpb24iXSwKKyAgICAgICAgICAgIFsiY2xhc3MiLCAibW9kdWxlIGZzcGF0aCBj
bHMiLCAiZnVuY3Rpb24iXSwKKyAgICAgICAgICAgIFsiZnVuY3Rpb24iLCAibW9kdWxlIGZzcGF0
aCBjbHMgZnVuY3Rpb24iLCAiIl0sCisgICAgICAgIF0sCisgICAgKQorCisgICAgZGVmIHRlc3Rf
c2V0dXAoc2VsZiwgdGVzdGRpciwgc2NvcGUsIG9rLCBlcnJvcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSVyLCBhdXRvdXNlPVRydWUpCisgICAg
ICAgICAgICBkZWYgbXlzY29wZWQocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgZm9yIHggaW4g
JXI6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBoYXNhdHRyKHJlcXVlc3QsIHgpCisgICAg
ICAgICAgICAgICAgZm9yIHggaW4gJXI6CisgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlz
ZXMoQXR0cmlidXRlRXJyb3IsIGxhbWJkYToKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0
dHIocmVxdWVzdCwgeCkpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3Quc2Vzc2lvbgor
ICAgICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0LmNvbmZpZworICAgICAgICAgICAgZGVmIHRl
c3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICAg
ICAlIChzY29wZSwgb2suc3BsaXQoKSwgZXJyb3Iuc3BsaXQoKSkKKyAgICAgICAgKQorICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1sIikKKyAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9mdW5jYXJnKHNlbGYsIHRlc3RkaXIs
IHNjb3BlLCBvaywgZXJyb3IpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShzY29wZT0lcikKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAg
ICAgICAgICAgZm9yIHggaW4gJXI6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBoYXNhdHRy
KHJlcXVlc3QsIHgpCisgICAgICAgICAgICAgICAgZm9yIHggaW4gJXI6CisgICAgICAgICAgICAg
ICAgICAgIHB5dGVzdC5yYWlzZXMoQXR0cmlidXRlRXJyb3IsIGxhbWJkYToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGdldGF0dHIocmVxdWVzdCwgeCkpCisgICAgICAgICAgICAgICAgYXNzZXJ0
IHJlcXVlc3Quc2Vzc2lvbgorICAgICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0LmNvbmZpZwor
ICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgIiIiCisgICAgICAgICAgICAlIChzY29wZSwgb2suc3BsaXQoKSwgZXJyb3Iuc3BsaXQo
KSkKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAg
ICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworCitjbGFzcyBUZXN0RXJyb3Jz
KG9iamVjdCk6CisgICAgZGVmIHRlc3Rfc3ViZmFjdG9yeV9taXNzaW5nX2Z1bmNhcmcoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkK
KyAgICAgICAgICAgIGRlZiBnZW4ocXdlMTIzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gMQor
ICAgICAgICAgICAgZGVmIHRlc3Rfc29tZXRoaW5nKGdlbik6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWyIqZGVmIGdlbihxd2UxMjMpOioiLCAi
KmZpeHR1cmUqcXdlMTIzKm5vdCBmb3VuZCoiLCAiKjEgZXJyb3IqIl0KKyAgICAgICAgKQorCisg
ICAgZGVmIHRlc3RfaXNzdWU0OThfZml4dHVyZV9maW5hbGl6ZXJfZmFpbGluZyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAg
ICAgICAgIGRlZiBmaXgxKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIGRlZiBmKCk6CisgICAg
ICAgICAgICAgICAgICAgIHJhaXNlIEtleUVycm9yCisgICAgICAgICAgICAgICAgcmVxdWVzdC5h
ZGRmaW5hbGl6ZXIoZikKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0KCkKKworICAgICAg
ICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoZml4MSk6CisgICAgICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZChmaXgxKQorICAgICAgICAgICAgZGVmIHRlc3RfMihmaXgx
KToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGZpeDEpCisgICAgICAgICAgICBkZWYg
dGVzdF8zKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlc1swXSAhPSB2YWx1ZXNbMV0K
KyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICAi
IiIKKyAgICAgICAgICAgICpFUlJPUip0ZWFyZG93bip0ZXN0XzEqCisgICAgICAgICAgICAqS2V5
RXJyb3IqCisgICAgICAgICAgICAqRVJST1IqdGVhcmRvd24qdGVzdF8yKgorICAgICAgICAgICAg
KktleUVycm9yKgorICAgICAgICAgICAgKjMgcGFzcyoyIGVycm9yKgorICAgICAgICAiIiIKKyAg
ICAgICAgKQorCisgICAgZGVmIHRlc3Rfc2V0dXBmdW5jX21pc3NpbmdfZnVuY2FyZyhzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0
b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIGdlbihxd2UxMjMpOgorICAgICAgICAgICAgICAg
IHJldHVybiAxCisgICAgICAgICAgICBkZWYgdGVzdF9zb21ldGhpbmcoKToKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbIipkZWYgZ2VuKHF3ZTEy
Myk6KiIsICIqZml4dHVyZSpxd2UxMjMqbm90IGZvdW5kKiIsICIqMSBlcnJvcioiXQorICAgICAg
ICApCisKKworY2xhc3MgVGVzdFNob3dGaXh0dXJlcyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2Z1
bmNhcmdfY29tcGF0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBh
cnNlY29uZmlndXJlKCItLWZ1bmNhcmdzIikKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5vcHRpb24u
c2hvd2ZpeHR1cmVzCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAg
ICAgICAgICAidG1wZGlyX2ZhY3RvcnkgW1tdc2Vzc2lvbiBzY29wZVtdXSIsCisgICAgICAgICAg
ICAgICAgIipmb3IgdGhlIHRlc3Qgc2Vzc2lvbioiLAorICAgICAgICAgICAgICAgICJ0bXBkaXIi
LAorICAgICAgICAgICAgICAgICIqdGVtcG9yYXJ5IGRpcmVjdG9yeSoiLAorICAgICAgICAgICAg
XQorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX3ZlcmJvc2Uoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVz
IiwgIi12IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAg
ICAgWworICAgICAgICAgICAgICAgICJ0bXBkaXJfZmFjdG9yeSBbW11zZXNzaW9uIHNjb3BlW11d
IC0tICp0bXBkaXIucHkqIiwKKyAgICAgICAgICAgICAgICAiKmZvciB0aGUgdGVzdCBzZXNzaW9u
KiIsCisgICAgICAgICAgICAgICAgInRtcGRpciAtLSAqdG1wZGlyLnB5KiIsCisgICAgICAgICAg
ICAgICAgIip0ZW1wb3JhcnkgZGlyZWN0b3J5KiIsCisgICAgICAgICAgICBdCisgICAgICAgICkK
KworICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfdGVzdG1vZHVsZShzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICcnJworICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAg
ICAgICBkZWYgX2FyZzAoKToKKyAgICAgICAgICAgICAgICAiIiIgaGlkZGVuICIiIgorICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAg
ICAgICAgICIiIiAgaGVsbG8gd29ybGQgIiIiCisgICAgICAgICcnJworICAgICAgICApCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIiwgcCkKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICAqdG1wZGlyCisgICAgICAgICAgICAqZml4dHVyZXMgZGVmaW5lZCBmcm9tKgorICAgICAgICAg
ICAgKmFyZzEqCisgICAgICAgICAgICAqaGVsbG8gd29ybGQqCisgICAgICAgICIiIgorICAgICAg
ICApCisgICAgICAgIGFzc2VydCAiYXJnMCIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKwor
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidGVzdG1vZCIsIFtUcnVlLCBGYWxzZV0pCisg
ICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc19jb25mdGVzdChzZWxmLCB0ZXN0ZGlyLCB0ZXN0bW9k
KToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAnJycKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICAiIiIgIGhlbGxvIHdvcmxkICIiIgor
ICAgICAgICAnJycKKyAgICAgICAgKQorICAgICAgICBpZiB0ZXN0bW9kOgorICAgICAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAg
IGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LS1maXh0dXJlcyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgKnRtcGRpcioKKyAgICAgICAgICAgICpmaXh0dXJlcyBk
ZWZpbmVkIGZyb20qY29uZnRlc3QqCisgICAgICAgICAgICAqYXJnMSoKKyAgICAgICAgICAgICpo
ZWxsbyB3b3JsZCoKKyAgICAgICAgIiIiCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3Nob3df
Zml4dHVyZXNfdHJpbW1lZF9kb2Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAg
ICAgJycnXAorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAg
ICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICAgICAgbGluZTEKKyAgICAgICAgICAgICAgICAg
ICAgbGluZTIKKworICAgICAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgYXJnMigpOgorICAgICAgICAgICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgICAgICAgICAgbGluZTEKKyAgICAgICAgICAgICAgICAgICAg
bGluZTIKKworICAgICAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICAnJycKKyAg
ICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1maXh0dXJlcyIsIHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygK
KyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAg
ICAgICAgICAgICAgKiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9zaG93X2ZpeHR1cmVzX3Ry
aW1tZWRfZG9jICoKKyAgICAgICAgICAgICAgICBhcmcyCisgICAgICAgICAgICAgICAgICAgIGxp
bmUxCisgICAgICAgICAgICAgICAgICAgIGxpbmUyCisgICAgICAgICAgICAgICAgYXJnMQorICAg
ICAgICAgICAgICAgICAgICBsaW5lMQorICAgICAgICAgICAgICAgICAgICBsaW5lMgorICAgICAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9z
aG93X2ZpeHR1cmVzX2luZGVudGVkX2RvYyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAg
ICAgICAgICAnJydcCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgICAgIGRlZiBmaXh0dXJlMSgpOgorICAg
ICAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICAgICAgbGluZTEKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGluZGVudGVkIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgIiIiCisg
ICAgICAgICAgICAgICAgJycnCisgICAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMiLCBwKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAg
ICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgICogZml4dHVyZXMgZGVmaW5lZCBmcm9t
IHRlc3Rfc2hvd19maXh0dXJlc19pbmRlbnRlZF9kb2MgKgorICAgICAgICAgICAgICAgIGZpeHR1
cmUxCisgICAgICAgICAgICAgICAgICAgIGxpbmUxCisgICAgICAgICAgICAgICAgICAgICAgICBp
bmRlbnRlZCBsaW5lCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICApCisgICAgICAg
ICkKKworICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfZG9jX2ZpcnN0X2xpbmVf
dW5pbmRlbnRlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAnJydcCisg
ICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgICAgIGRlZiBmaXh0dXJlMSgpOgorICAgICAgICAgICAgICAgICAg
ICAiIiJsaW5lMQorICAgICAgICAgICAgICAgICAgICBsaW5lMgorICAgICAgICAgICAgICAgICAg
ICAgICAgaW5kZW50ZWQgbGluZQorICAgICAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
ICAgICAnJycKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIsIHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcygKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAg
ICAiIiJcCisgICAgICAgICAgICAgICAgKiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9zaG93
X2ZpeHR1cmVzX2luZGVudGVkX2RvY19maXJzdF9saW5lX3VuaW5kZW50ZWQgKgorICAgICAgICAg
ICAgICAgIGZpeHR1cmUxCisgICAgICAgICAgICAgICAgICAgIGxpbmUxCisgICAgICAgICAgICAg
ICAgICAgIGxpbmUyCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCBsaW5lCisgICAg
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICApCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0
X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfaW5fY2xhc3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisg
ICAgICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAgICAgIGRlZiBmaXh0dXJlMShzZWxmKToK
KyAgICAgICAgICAgICAgICAgICAgICAgICIiImxpbmUxCisgICAgICAgICAgICAgICAgICAgICAg
ICBsaW5lMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudGVkIGxpbmUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAg
KQorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1
cmVzIiwgcCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAg
ICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAg
ICAqIGZpeHR1cmVzIGRlZmluZWQgZnJvbSB0ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfaW5f
Y2xhc3MgKgorICAgICAgICAgICAgICAgIGZpeHR1cmUxCisgICAgICAgICAgICAgICAgICAgIGxp
bmUxCisgICAgICAgICAgICAgICAgICAgIGxpbmUyCisgICAgICAgICAgICAgICAgICAgICAgICBp
bmRlbnRlZCBsaW5lCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICApCisgICAgICAg
ICkKKworICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfZGlmZmVyZW50X2ZpbGVzKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICAiIiIKKyAgICAgICAgIzgzMzogLS1maXh0dXJlcyBvbmx5IHNob3dz
IGZpeHR1cmVzIGZyb20gZmlyc3QgZmlsZQorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKAorICAgICAgICAgICAgdGVzdF9hPScnJworICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmaXhf
YSgpOgorICAgICAgICAgICAgICAgICIiIkZpeHR1cmUgQSIiIgorICAgICAgICAgICAgICAgIHBh
c3MKKworICAgICAgICAgICAgZGVmIHRlc3RfYShmaXhfYSk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAnJycKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisg
ICAgICAgICAgICB0ZXN0X2I9JycnCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZpeF9iKCk6CisgICAgICAg
ICAgICAgICAgIiIiRml4dHVyZSBCIiIiCisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAg
ICAgICBkZWYgdGVzdF9iKGZpeF9iKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICcn
JworICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1
cmVzIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAg
IiIiCisgICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQgZnJvbSB0ZXN0X2EgKgorICAgICAg
ICAgICAgZml4X2EKKyAgICAgICAgICAgICAgICBGaXh0dXJlIEEKKworICAgICAgICAgICAgKiBm
aXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9iICoKKyAgICAgICAgICAgIGZpeF9iCisgICAgICAg
ICAgICAgICAgRml4dHVyZSBCCisgICAgICAgICIiIgorICAgICAgICApCisKKyAgICBkZWYgdGVz
dF9zaG93X2ZpeHR1cmVzX3dpdGhfc2FtZV9uYW1lKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICcnJworICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJn
MSgpOgorICAgICAgICAgICAgICAgICIiIkhlbGxvIFdvcmxkIGluIGNvbmZ0ZXN0LnB5IiIiCisg
ICAgICAgICAgICAgICAgcmV0dXJuICJIZWxsbyBXb3JsZCIKKyAgICAgICAgJycnCisgICAgICAg
ICkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAg
ICAgICBkZWYgdGVzdF9mb28oYXJnMSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEgPT0g
IkhlbGxvIFdvcmxkIgorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCisgICAgICAgICAgICAnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAg
ICAgICAgICAgICAiIiJIaSBmcm9tIHRlc3QgbW9kdWxlIiIiCisgICAgICAgICAgICAgICAgcmV0
dXJuICJIaSIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2JhcihhcmcxKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgYXJnMSA9PSAiSGkiCisgICAgICAgICcnJworICAgICAgICApCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAqIGZpeHR1
cmVzIGRlZmluZWQgZnJvbSBjb25mdGVzdCAqCisgICAgICAgICAgICBhcmcxCisgICAgICAgICAg
ICAgICAgSGVsbG8gV29ybGQgaW4gY29uZnRlc3QucHkKKworICAgICAgICAgICAgKiBmaXh0dXJl
cyBkZWZpbmVkIGZyb20gdGVzdF9zaG93X2ZpeHR1cmVzX3dpdGhfc2FtZV9uYW1lICoKKyAgICAg
ICAgICAgIGFyZzEKKyAgICAgICAgICAgICAgICBIaSBmcm9tIHRlc3QgbW9kdWxlCisgICAgICAg
ICIiIgorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9maXh0dXJlX2Rpc2FsbG93X3R3aWNlKHNl
bGYpOgorICAgICAgICAiIiJUZXN0IHRoYXQgYXBwbHlpbmcgQHB5dGVzdC5maXh0dXJlIHR3aWNl
IGdlbmVyYXRlcyBhbiBlcnJvciAoIzIzMzQpLiIiIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoVmFsdWVFcnJvcik6CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZm9vKCk6CisgICAgICAgICAgICAg
ICAgcGFzcworCisKK2NsYXNzIFRlc3RDb250ZXh0TWFuYWdlckZpeHR1cmVGdW5jcyhvYmplY3Qp
OgorICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WyJmaXh0dXJlIiwgInlpZWxkX2ZpeHR1cmUi
XSkKKyAgICBkZWYgZmxhdm9yKHNlbGYsIHJlcXVlc3QsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToK
KyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRFU1RfRklYVFVSRV9GTEFWT1IiLCByZXF1
ZXN0LnBhcmFtKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXN0
X2NvbnRleHQ9IiIiCisgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIGltcG9ydCB3YXJuaW5ncworICAgICAgICAgICAgVkFSID0gIlBZ
VEVTVF9GSVhUVVJFX0ZMQVZPUiIKKyAgICAgICAgICAgIGlmIFZBUiBub3QgaW4gb3MuZW52aXJv
bjoKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJQWVRFU1RfRklYVFVSRV9GTEFWT1Ig
d2FzIG5vdCBzZXQsIGFzc3VtaW5nIGZpeHR1cmUiKQorICAgICAgICAgICAgICAgIGZpeHR1cmUg
PSBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmaXh0
dXJlID0gZ2V0YXR0cihweXRlc3QsIG9zLmVudmlyb25bVkFSXSkKKyAgICAgICAgIiIiCisgICAg
ICAgICkKKworICAgIGRlZiB0ZXN0X3NpbXBsZShzZWxmLCB0ZXN0ZGlyLCBmbGF2b3IpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGZy
b20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyAgICAgICAgICAgIGZyb20gdGVz
dF9jb250ZXh0IGltcG9ydCBmaXh0dXJlCisgICAgICAgICAgICBAZml4dHVyZQorICAgICAgICAg
ICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICBwcmludCgic2V0dXAiKQorICAgICAgICAg
ICAgICAgIHlpZWxkIDEKKyAgICAgICAgICAgICAgICBwcmludCgidGVhcmRvd24iKQorICAgICAg
ICAgICAgZGVmIHRlc3RfMShhcmcxKToKKyAgICAgICAgICAgICAgICBwcmludCgidGVzdDEiLCBh
cmcxKQorICAgICAgICAgICAgZGVmIHRlc3RfMihhcmcxKToKKyAgICAgICAgICAgICAgICBwcmlu
dCgidGVzdDIiLCBhcmcxKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIgor
ICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgICIiIgorICAgICAg
ICAgICAgKnNldHVwKgorICAgICAgICAgICAgKnRlc3QxIDEqCisgICAgICAgICAgICAqdGVhcmRv
d24qCisgICAgICAgICAgICAqc2V0dXAqCisgICAgICAgICAgICAqdGVzdDIgMSoKKyAgICAgICAg
ICAgICp0ZWFyZG93bioKKyAgICAgICAgIiIiCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3Nj
b3BlZChzZWxmLCB0ZXN0ZGlyLCBmbGF2b3IpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp
bnRfZnVuY3Rpb24KKyAgICAgICAgICAgIGZyb20gdGVzdF9jb250ZXh0IGltcG9ydCBmaXh0dXJl
CisgICAgICAgICAgICBAZml4dHVyZShzY29wZT0ibW9kdWxlIikKKyAgICAgICAgICAgIGRlZiBh
cmcxKCk6CisgICAgICAgICAgICAgICAgcHJpbnQoInNldHVwIikKKyAgICAgICAgICAgICAgICB5
aWVsZCAxCisgICAgICAgICAgICAgICAgcHJpbnQoInRlYXJkb3duIikKKyAgICAgICAgICAgIGRl
ZiB0ZXN0XzEoYXJnMSk6CisgICAgICAgICAgICAgICAgcHJpbnQoInRlc3QxIiwgYXJnMSkKKyAg
ICAgICAgICAgIGRlZiB0ZXN0XzIoYXJnMSk6CisgICAgICAgICAgICAgICAgcHJpbnQoInRlc3Qy
IiwgYXJnMSkKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi1zIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAor
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAqc2V0dXAqCisgICAgICAgICAgICAqdGVzdDEg
MSoKKyAgICAgICAgICAgICp0ZXN0MiAxKgorICAgICAgICAgICAgKnRlYXJkb3duKgorICAgICAg
ICAiIiIKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rfc2V0dXBfZXhjZXB0aW9uKHNlbGYsIHRl
c3RkaXIsIGZsYXZvcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgZnJvbSB0ZXN0X2NvbnRleHQgaW1wb3J0IGZpeHR1cmUKKyAgICAg
ICAgICAgIEBmaXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAgICAgZGVmIGFyZzEoKToK
KyAgICAgICAgICAgICAgICBweXRlc3QuZmFpbCgic2V0dXAiKQorICAgICAgICAgICAgICAgIHlp
ZWxkIDEKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnMSk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgICpweXRlc3QuZmFpbCpzZXR1cCoKKyAgICAgICAgICAgICox
IGVycm9yKgorICAgICAgICAiIiIKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfdGVhcmRvd25f
ZXhjZXB0aW9uKHNlbGYsIHRlc3RkaXIsIGZsYXZvcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZnJvbSB0ZXN0X2NvbnRleHQgaW1w
b3J0IGZpeHR1cmUKKyAgICAgICAgICAgIEBmaXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAg
ICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICB5aWVsZCAxCisgICAgICAgICAgICAg
ICAgcHl0ZXN0LmZhaWwoInRlYXJkb3duIikKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnMSk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICpweXRlc3QuZmFpbCp0
ZWFyZG93bioKKyAgICAgICAgICAgICoxIHBhc3NlZCoxIGVycm9yKgorICAgICAgICAiIiIKKyAg
ICAgICAgKQorCisgICAgZGVmIHRlc3RfeWllbGRzX21vcmVfdGhhbl9vbmUoc2VsZiwgdGVzdGRp
ciwgZmxhdm9yKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIi
CisgICAgICAgICAgICBmcm9tIHRlc3RfY29udGV4dCBpbXBvcnQgZml4dHVyZQorICAgICAgICAg
ICAgQGZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgICAgICAgICBkZWYgYXJnMSgpOgorICAg
ICAgICAgICAgICAgIHlpZWxkIDEKKyAgICAgICAgICAgICAgICB5aWVsZCAyCisgICAgICAgICAg
ICBkZWYgdGVzdF8xKGFyZzEpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisg
ICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgIiIiCisgICAgICAg
ICAgICAqZml4dHVyZSBmdW5jdGlvbioKKyAgICAgICAgICAgICp0ZXN0X3lpZWxkcyo6MioKKyAg
ICAgICAgIiIiCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2N1c3RvbV9uYW1lKHNlbGYsIHRl
c3RkaXIsIGZsYXZvcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgZnJvbSB0ZXN0X2NvbnRleHQgaW1wb3J0IGZpeHR1cmUKKyAgICAg
ICAgICAgIEBmaXh0dXJlKG5hbWU9J21lb3cnKQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gJ21ldycKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEobWVvdyk6
CisgICAgICAgICAgICAgICAgcHJpbnQobWVvdykKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsiKm1ldyoiXSkKKworCitjbGFzcyBUZXN0UGFyYW1ldGVyaXpl
ZFN1YlJlcXVlc3Qob2JqZWN0KToKKyAgICBkZWYgdGVzdF9jYWxsX2Zyb21fZml4dHVyZShzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVz
dF9jYWxsX2Zyb21fZml4dHVyZT0iIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bMCwgMSwgMl0pCisgICAgICAgICAgICBk
ZWYgZml4X3dpdGhfcGFyYW0ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVl
c3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYg
Z2V0X25hbWVkX2ZpeHR1cmUocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVl
c3QuZ2V0Zml4dHVyZXZhbHVlKCdmaXhfd2l0aF9wYXJhbScpCisKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2ZvbyhyZXF1ZXN0LCBnZXRfbmFtZWRfZml4dHVyZSk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAg
ICAgICBbCisgICAgICAgICAgICAgICAgIlRoZSByZXF1ZXN0ZWQgZml4dHVyZSBoYXMgbm8gcGFy
YW1ldGVyIGRlZmluZWQgZm9yIHRlc3Q6IiwKKyAgICAgICAgICAgICAgICAiICAgIHRlc3RfY2Fs
bF9mcm9tX2ZpeHR1cmUucHk6OnRlc3RfZm9vIiwKKyAgICAgICAgICAgICAgICAiUmVxdWVzdGVk
IGZpeHR1cmUgJ2ZpeF93aXRoX3BhcmFtJyBkZWZpbmVkIGluOiIsCisgICAgICAgICAgICAgICAg
InRlc3RfY2FsbF9mcm9tX2ZpeHR1cmUucHk6NCIsCisgICAgICAgICAgICAgICAgIlJlcXVlc3Rl
ZCBoZXJlOiIsCisgICAgICAgICAgICAgICAgInRlc3RfY2FsbF9mcm9tX2ZpeHR1cmUucHk6OSIs
CisgICAgICAgICAgICAgICAgIioxIGVycm9yIGluKiIsCisgICAgICAgICAgICBdCisgICAgICAg
ICkKKworICAgIGRlZiB0ZXN0X2NhbGxfZnJvbV90ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXN0X2NhbGxfZnJvbV90ZXN0PSIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUocGFyYW1zPVswLCAxLCAyXSkKKyAgICAgICAgICAgIGRlZiBmaXhfd2l0aF9wYXJhbShyZXF1
ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAg
ICBkZWYgdGVzdF9mb28ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRmaXh0
dXJldmFsdWUoJ2ZpeF93aXRoX3BhcmFtJykKKyAgICAgICAgICAgICIiIgorICAgICAgICApCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICJUaGUgcmVx
dWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFtZXRlciBkZWZpbmVkIGZvciB0ZXN0OiIsCisgICAg
ICAgICAgICAgICAgIiAgICB0ZXN0X2NhbGxfZnJvbV90ZXN0LnB5Ojp0ZXN0X2ZvbyIsCisgICAg
ICAgICAgICAgICAgIlJlcXVlc3RlZCBmaXh0dXJlICdmaXhfd2l0aF9wYXJhbScgZGVmaW5lZCBp
bjoiLAorICAgICAgICAgICAgICAgICJ0ZXN0X2NhbGxfZnJvbV90ZXN0LnB5OjQiLAorICAgICAg
ICAgICAgICAgICJSZXF1ZXN0ZWQgaGVyZToiLAorICAgICAgICAgICAgICAgICJ0ZXN0X2NhbGxf
ZnJvbV90ZXN0LnB5OjgiLAorICAgICAgICAgICAgICAgICIqMSBmYWlsZWQqIiwKKyAgICAgICAg
ICAgIF0KKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfZXh0ZXJuYWxfZml4dHVyZShzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHBhcmFtcz1bMCwgMSwgMl0pCisgICAgICAgICAgICBkZWYgZml4X3dpdGhfcGFyYW0ocmVxdWVz
dCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgICIi
IgorICAgICAgICApCisKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAg
dGVzdF9leHRlcm5hbF9maXh0dXJlPSIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHJlcXVl
c3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCdmaXhfd2l0aF9w
YXJhbScpCisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAg
ICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiVGhlIHJlcXVlc3RlZCBmaXh0dXJlIGhhcyBu
byBwYXJhbWV0ZXIgZGVmaW5lZCBmb3IgdGVzdDoiLAorICAgICAgICAgICAgICAgICIgICAgdGVz
dF9leHRlcm5hbF9maXh0dXJlLnB5Ojp0ZXN0X2ZvbyIsCisgICAgICAgICAgICAgICAgIiIsCisg
ICAgICAgICAgICAgICAgIlJlcXVlc3RlZCBmaXh0dXJlICdmaXhfd2l0aF9wYXJhbScgZGVmaW5l
ZCBpbjoiLAorICAgICAgICAgICAgICAgICJjb25mdGVzdC5weTo0IiwKKyAgICAgICAgICAgICAg
ICAiUmVxdWVzdGVkIGhlcmU6IiwKKyAgICAgICAgICAgICAgICAidGVzdF9leHRlcm5hbF9maXh0
dXJlLnB5OjIiLAorICAgICAgICAgICAgICAgICIqMSBmYWlsZWQqIiwKKyAgICAgICAgICAgIF0K
KyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rfbm9uX3JlbGF0aXZlX3BhdGgoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RzX2RpciA9IHRlc3RkaXIubWtkaXIoInRlc3RzIikKKyAgICAgICAg
Zml4ZGlyID0gdGVzdGRpci5ta2RpcigiZml4dHVyZXMiKQorICAgICAgICBmaXhmaWxlID0gZml4
ZGlyLmpvaW4oImZpeC5weSIpCisgICAgICAgIGZpeGZpbGUud3JpdGUoCisgICAgICAgICAgICB0
ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKworICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzAs
IDEsIDJdKQorICAgICAgICAgICAgICAgIGRlZiBmaXhfd2l0aF9wYXJhbShyZXF1ZXN0KToKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgICAgICAi
IiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorCisgICAgICAgIHRlc3RmaWxlID0gdGVzdHNf
ZGlyLmpvaW4oInRlc3RfZm9vcy5weSIpCisgICAgICAgIHRlc3RmaWxlLndyaXRlKAorICAgICAg
ICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAg
ICAgICBmcm9tIGZpeCBpbXBvcnQgZml4X3dpdGhfcGFyYW0KKworICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X2ZvbyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRmaXh0
dXJldmFsdWUoJ2ZpeF93aXRoX3BhcmFtJykKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgICkKKyAgICAgICAgKQorCisgICAgICAgIHRlc3RzX2Rpci5jaGRpcigpCisgICAgICAgIHRl
c3RkaXIuc3lzcGF0aGluc2VydChmaXhkaXIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAg
ICAgWworICAgICAgICAgICAgICAgICJUaGUgcmVxdWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFt
ZXRlciBkZWZpbmVkIGZvciB0ZXN0OiIsCisgICAgICAgICAgICAgICAgIiAgICB0ZXN0X2Zvb3Mu
cHk6OnRlc3RfZm9vIiwKKyAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAiUmVx
dWVzdGVkIGZpeHR1cmUgJ2ZpeF93aXRoX3BhcmFtJyBkZWZpbmVkIGluOiIsCisgICAgICAgICAg
ICAgICAgIipmaXgucHk6NCIsCisgICAgICAgICAgICAgICAgIlJlcXVlc3RlZCBoZXJlOiIsCisg
ICAgICAgICAgICAgICAgInRlc3RfZm9vcy5weTo0IiwKKyAgICAgICAgICAgICAgICAiKjEgZmFp
bGVkKiIsCisgICAgICAgICAgICBdCisgICAgICAgICkKKworCitkZWYgdGVzdF9weXRlc3RfZml4
dHVyZV9zZXR1cF9hbmRfcG9zdF9maW5hbGl6ZXJfaG9vayh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGly
Lm1ha2Vjb25mdGVzdCgKKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24KKyAgICAgICAgZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1
cmVkZWYsIHJlcXVlc3QpOgorICAgICAgICAgICAgcHJpbnQoJ1JPT1Qgc2V0dXAgaG9vayBjYWxs
ZWQgZm9yIHswfSBmcm9tIHsxfScuZm9ybWF0KGZpeHR1cmVkZWYuYXJnbmFtZSwgcmVxdWVzdC5u
b2RlLm5hbWUpKQorICAgICAgICBkZWYgcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4
dHVyZWRlZiwgcmVxdWVzdCk6CisgICAgICAgICAgICBwcmludCgnUk9PVCBmaW5hbGl6ZXIgaG9v
ayBjYWxsZWQgZm9yIHswfSBmcm9tIHsxfScuZm9ybWF0KGZpeHR1cmVkZWYuYXJnbmFtZSwgcmVx
dWVzdC5ub2RlLm5hbWUpKQorICAgICIiIgorICAgICkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICoqeworICAgICAgICAgICAgInRlc3RzL2NvbmZ0ZXN0LnB5IjogIiIiCisgICAg
ICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisgICAgICAgICAg
ICBkZWYgcHl0ZXN0X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRlZiwgcmVxdWVzdCk6CisgICAgICAg
ICAgICAgICAgcHJpbnQoJ1RFU1RTIHNldHVwIGhvb2sgY2FsbGVkIGZvciB7MH0gZnJvbSB7MX0n
LmZvcm1hdChmaXh0dXJlZGVmLmFyZ25hbWUsIHJlcXVlc3Qubm9kZS5uYW1lKSkKKyAgICAgICAg
ICAgIGRlZiBweXRlc3RfZml4dHVyZV9wb3N0X2ZpbmFsaXplcihmaXh0dXJlZGVmLCByZXF1ZXN0
KToKKyAgICAgICAgICAgICAgICBwcmludCgnVEVTVFMgZmluYWxpemVyIGhvb2sgY2FsbGVkIGZv
ciB7MH0gZnJvbSB7MX0nLmZvcm1hdChmaXh0dXJlZGVmLmFyZ25hbWUsIHJlcXVlc3Qubm9kZS5u
YW1lKSkKKyAgICAgICAgIiIiLAorICAgICAgICAgICAgInRlc3RzL3Rlc3RfaG9va3MucHkiOiAi
IiIKKyAgICAgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkK
KyAgICAgICAgICAgIGRlZiBteV9maXh0dXJlKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdz
b21lJworCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKG15X2ZpeHR1cmUpOgorICAgICAgICAg
ICAgICAgIHByaW50KCdURVNUIHRlc3RfZnVuYycpCisgICAgICAgICAgICAgICAgYXNzZXJ0IG15
X2ZpeHR1cmUgPT0gJ3NvbWUnCisgICAgICAgICIiIiwKKyAgICAgICAgfQorICAgICkKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09
IDAKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAgICAg
ICAgICIqVEVTVFMgc2V0dXAgaG9vayBjYWxsZWQgZm9yIG15X2ZpeHR1cmUgZnJvbSB0ZXN0X2Z1
bmMqIiwKKyAgICAgICAgICAgICIqUk9PVCBzZXR1cCBob29rIGNhbGxlZCBmb3IgbXlfZml4dHVy
ZSBmcm9tIHRlc3RfZnVuYyoiLAorICAgICAgICAgICAgIipURVNUIHRlc3RfZnVuYyoiLAorICAg
ICAgICAgICAgIipURVNUUyBmaW5hbGl6ZXIgaG9vayBjYWxsZWQgZm9yIG15X2ZpeHR1cmUgZnJv
bSB0ZXN0X2Z1bmMqIiwKKyAgICAgICAgICAgICIqUk9PVCBmaW5hbGl6ZXIgaG9vayBjYWxsZWQg
Zm9yIG15X2ZpeHR1cmUgZnJvbSB0ZXN0X2Z1bmMqIiwKKyAgICAgICAgXQorICAgICkKKworCitj
bGFzcyBUZXN0U2NvcGVPcmRlcmluZyhvYmplY3QpOgorICAgICIiIkNsYXNzIG9mIHRlc3RzIHRo
YXQgZW5zdXJlIGZpeHR1cmVzIGFyZSBvcmRlcmVkIGJhc2VkIG9uIHRoZWlyIHNjb3BlcyAoIzI0
MDUpIiIiCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInZhcmlhbnQiLCBbIm1hcmsi
LCAiYXV0b3VzZSJdKQorICAgIGRlZiB0ZXN0X2Z1bmNfY2xvc3VyZV9tb2R1bGVfYXV0byhzZWxm
LCB0ZXN0ZGlyLCB2YXJpYW50LCBtb25rZXlwYXRjaCk6CisgICAgICAgICIiIlNlbWFudGljYWxs
eSBpZGVudGljYWwgdG8gdGhlIGV4YW1wbGUgcG9zdGVkIGluICMyNDA1IHdoZW4gYGB1c2VfbWFy
az1UcnVlYGAiIiIKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJGSVhUVVJFX0FDVElWQVRJ
T05fVkFSSUFOVCIsIHZhcmlhbnQpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisgICAgICAgICAgICBpbXBv
cnQgb3MKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIFZBUiA9ICdGSVhU
VVJFX0FDVElWQVRJT05fVkFSSUFOVCcKKyAgICAgICAgICAgIFZBTElEX1ZBUlMgPSAoJ2F1dG91
c2UnLCAnbWFyaycpCisKKyAgICAgICAgICAgIFZBUklBTlQgPSBvcy5lbnZpcm9uLmdldChWQVIp
CisgICAgICAgICAgICBpZiBWQVJJQU5UIGlzIE5vbmUgb3IgVkFSSUFOVCBub3QgaW4gVkFMSURf
VkFSUzoKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ7IXJ9IGlzIG5vdCAgaW4ge30s
IGFzc3VtaW5nIGF1dG91c2UiLmZvcm1hdChWQVJJQU5ULCBWQUxJRF9WQVJTKSApCisgICAgICAg
ICAgICAgICAgdmFyaWFudCA9ICdtYXJrJworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
c2NvcGU9J21vZHVsZScsIGF1dG91c2U9VkFSSUFOVCA9PSAnYXV0b3VzZScpCisgICAgICAgICAg
ICBkZWYgbTEoKTogcGFzcworCisgICAgICAgICAgICBpZiBWQVJJQU5UPT0nbWFyayc6CisgICAg
ICAgICAgICAgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdtMScpCisK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24nLCBhdXRvdXNlPVRy
dWUpCisgICAgICAgICAgICBkZWYgZjEoKTogcGFzcworCisgICAgICAgICAgICBkZWYgdGVzdF9m
dW5jKG0xKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisg
ICAgICAgIGl0ZW1zLCBfID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoKQorICAgICAgICByZXF1
ZXN0ID0gRml4dHVyZVJlcXVlc3QoaXRlbXNbMF0pCisgICAgICAgIGFzc2VydCByZXF1ZXN0LmZp
eHR1cmVuYW1lcyA9PSAibTEgZjEiLnNwbGl0KCkKKworICAgIGRlZiB0ZXN0X2Z1bmNfY2xvc3Vy
ZV93aXRoX25hdGl2ZV9maXh0dXJlcyhzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAg
ICAgICIiIlNhbml0eSBjaGVjayB0aGF0IHZlcmlmaWVzIHRoZSBvcmRlciByZXR1cm5lZCBieSB0
aGUgY2xvc3VyZXMgYW5kIHRoZSBhY3R1YWwgZml4dHVyZSBleGVjdXRpb24gb3JkZXI6CisgICAg
ICAgIFRoZSBleGVjdXRpb24gb3JkZXIgbWF5IGRpZmZlciBiZWNhdXNlIG9mIGZpeHR1cmUgaW50
ZXItZGVwZW5kZW5jaWVzLgorICAgICAgICAiIiIKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0
cihweXRlc3QsICJGSVhUVVJFX09SREVSIiwgW10sIHJhaXNpbmc9RmFsc2UpCisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgICAgICAgICBGSVhUVVJFX09SREVSID0gcHl0ZXN0LkZJWFRVUkVfT1JERVIK
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKKyAgICAgICAg
ICAgIGRlZiBzMSgpOgorICAgICAgICAgICAgICAgIEZJWFRVUkVfT1JERVIuYXBwZW5kKCdzMScp
CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0icGFja2FnZSIpCisgICAgICAg
ICAgICBkZWYgcDEoKToKKyAgICAgICAgICAgICAgICBGSVhUVVJFX09SREVSLmFwcGVuZCgncDEn
KQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgICAg
ICAgICBkZWYgbTEoKToKKyAgICAgICAgICAgICAgICBGSVhUVVJFX09SREVSLmFwcGVuZCgnbTEn
KQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nKQorICAgICAg
ICAgICAgZGVmIG15X3RtcGRpcl9mYWN0b3J5KCk6CisgICAgICAgICAgICAgICAgRklYVFVSRV9P
UkRFUi5hcHBlbmQoJ215X3RtcGRpcl9mYWN0b3J5JykKKworICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgICAgICBkZWYgbXlfdG1wZGlyKG15X3RtcGRpcl9mYWN0b3J5KToKKyAg
ICAgICAgICAgICAgICBGSVhUVVJFX09SREVSLmFwcGVuZCgnbXlfdG1wZGlyJykKKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZjEobXlfdG1wZGlyKToKKyAg
ICAgICAgICAgICAgICBGSVhUVVJFX09SREVSLmFwcGVuZCgnZjEnKQorCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmMigpOgorICAgICAgICAgICAgICAgIEZJ
WFRVUkVfT1JERVIuYXBwZW5kKCdmMicpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhmMSwg
cDEsIG0xLCBmMiwgczEpOiBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIGl0
ZW1zLCBfID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoKQorICAgICAgICByZXF1ZXN0ID0gRml4
dHVyZVJlcXVlc3QoaXRlbXNbMF0pCisgICAgICAgICMgb3JkZXIgb2YgZml4dHVyZXMgYmFzZWQg
b24gdGhlaXIgc2NvcGUgYW5kIHBvc2l0aW9uIGluIHRoZSBwYXJhbWV0ZXIgbGlzdAorICAgICAg
ICBhc3NlcnQgKAorICAgICAgICAgICAgcmVxdWVzdC5maXh0dXJlbmFtZXMgPT0gInMxIG15X3Rt
cGRpcl9mYWN0b3J5IHAxIG0xIGYxIGYyIG15X3RtcGRpciIuc3BsaXQoKQorICAgICAgICApCisg
ICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgIyBhY3R1YWwgZml4dHVyZSBleGVj
dXRpb24gZGlmZmVyczogZGVwZW5kZW50IGZpeHR1cmVzIG11c3QgYmUgY3JlYXRlZCBmaXJzdCAo
Im15X3RtcGRpciIpCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICBweXRlc3QuRklYVFVS
RV9PUkRFUiA9PSAiczEgbXlfdG1wZGlyX2ZhY3RvcnkgcDEgbTEgbXlfdG1wZGlyIGYxIGYyIi5z
cGxpdCgpCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2Z1bmNfY2xvc3VyZV9tb2R1bGUoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9J21vZHVsZScpCisgICAgICAgICAgICBkZWYgbTEoKTogcGFzcworCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykKKyAgICAgICAgICAgIGRlZiBm
MSgpOiBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoZjEsIG0xKToKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIGl0ZW1zLCBfID0g
dGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoKQorICAgICAgICByZXF1ZXN0ID0gRml4dHVyZVJlcXVl
c3QoaXRlbXNbMF0pCisgICAgICAgIGFzc2VydCByZXF1ZXN0LmZpeHR1cmVuYW1lcyA9PSAibTEg
ZjEiLnNwbGl0KCkKKworICAgIGRlZiB0ZXN0X2Z1bmNfY2xvc3VyZV9zY29wZXNfcmVvcmRlcmVk
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IGVuc3VyZXMgdGhhdCBmaXh0dXJlcyBh
cmUgb3JkZXJlZCBieSBzY29wZSByZWdhcmRsZXNzIG9mIHRoZSBvcmRlciBvZiB0aGUgcGFyYW1l
dGVycywgYWx0aG91Z2gKKyAgICAgICAgZml4dHVyZXMgb2Ygc2FtZSBzY29wZSBrZWVwIHRoZSBk
ZWNsYXJlZCBvcmRlcgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAor
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicpCisgICAgICAgICAgICBkZWYgczEoKTog
cGFzcworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J21vZHVsZScpCisgICAg
ICAgICAgICBkZWYgbTEoKTogcGFzcworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9J2Z1bmN0aW9uJykKKyAgICAgICAgICAgIGRlZiBmMSgpOiBwYXNzCisKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24nKQorICAgICAgICAgICAgZGVmIGYyKCk6
IHBhc3MKKworICAgICAgICAgICAgY2xhc3MgVGVzdDoKKworICAgICAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShzY29wZT0nY2xhc3MnKQorICAgICAgICAgICAgICAgIGRlZiBjMShjbHMpOiBw
YXNzCisKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYsIGYyLCBmMSwgYzEsIG0x
LCBzMSk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkK
KyAgICAgICAgaXRlbXMsIF8gPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcygpCisgICAgICAgIHJl
cXVlc3QgPSBGaXh0dXJlUmVxdWVzdChpdGVtc1swXSkKKyAgICAgICAgYXNzZXJ0IHJlcXVlc3Qu
Zml4dHVyZW5hbWVzID09ICJzMSBtMSBjMSBmMiBmMSIuc3BsaXQoKQorCisgICAgZGVmIHRlc3Rf
ZnVuY19jbG9zdXJlX3NhbWVfc2NvcGVfY2xvc2VyX3Jvb3RfZmlyc3Qoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgICIiIkF1dG8tdXNlIGZpeHR1cmVzIG9mIHNhbWUgc2NvcGUgYXJlIG9yZGVyZWQg
YnkgY2xvc2VyLXRvLXJvb3QgZmlyc3QiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3Qo
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdtb2R1bGUnLCBhdXRvdXNlPVRydWUpCisgICAgICAg
ICAgICBkZWYgbV9jb25mKCk6IHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgKip7CisgICAgICAgICAgICAgICAgInN1
Yi9jb25mdGVzdC5weSI6ICIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ncGFja2FnZScsIGF1dG91c2U9VHJ1
ZSkKKyAgICAgICAgICAgICAgICBkZWYgcF9zdWIoKTogcGFzcworCisgICAgICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSdtb2R1bGUnLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAg
ICAgICAgZGVmIG1fc3ViKCk6IHBhc3MKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAgICAgICAg
ICAic3ViL19faW5pdF9fLnB5IjogIiIsCisgICAgICAgICAgICAgICAgInN1Yi90ZXN0X2Z1bmMu
cHkiOiAiIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J21vZHVsZScsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAg
ICAgICAgICBkZWYgbV90ZXN0KCk6IHBhc3MKKworICAgICAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShzY29wZT0nZnVuY3Rpb24nKQorICAgICAgICAgICAgICAgIGRlZiBmMSgpOiBwYXNzCisK
KyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKG1fdGVzdCwgZjEpOgorICAgICAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICIiIiwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKQorICAg
ICAgICBpdGVtcywgXyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKCkKKyAgICAgICAgcmVxdWVz
dCA9IEZpeHR1cmVSZXF1ZXN0KGl0ZW1zWzBdKQorICAgICAgICBhc3NlcnQgcmVxdWVzdC5maXh0
dXJlbmFtZXMgPT0gInBfc3ViIG1fY29uZiBtX3N1YiBtX3Rlc3QgZjEiLnNwbGl0KCkKKworICAg
IGRlZiB0ZXN0X2Z1bmNfY2xvc3VyZV9hbGxfc2NvcGVzX2NvbXBsZXgoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgICIiIkNvbXBsZXggdGVzdCBpbnZvbHZpbmcgYWxsIHNjb3BlcyBhbmQgbWl4aW5n
IGF1dG91c2Ugd2l0aCBub3JtYWwgZml4dHVyZXMiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKKyAgICAgICAgICAgIGRl
ZiBzMSgpOiBwYXNzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ncGFja2Fn
ZScsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBwMSgpOiBwYXNzCisgICAgICAgICIi
IgorICAgICAgICApCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKnsiX19pbml0X18ucHki
OiAiIn0pCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9J21vZHVsZScsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBtMSgpOiBwYXNzCisK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nbW9kdWxlJykKKyAgICAgICAgICAg
IGRlZiBtMihzMSk6IHBhc3MKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdm
dW5jdGlvbicpCisgICAgICAgICAgICBkZWYgZjEoKTogcGFzcworCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykKKyAgICAgICAgICAgIGRlZiBmMigpOiBwYXNz
CisKKyAgICAgICAgICAgIGNsYXNzIFRlc3Q6CisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoc2NvcGU9J2NsYXNzJywgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgICAgIGRlZiBj
MShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICAgICAgZGVm
IHRlc3RfZnVuYyhzZWxmLCBmMiwgZjEsIG0yKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBpdGVtcywgXyA9IHRlc3RkaXIuaW5saW5l
X2dlbml0ZW1zKCkKKyAgICAgICAgcmVxdWVzdCA9IEZpeHR1cmVSZXF1ZXN0KGl0ZW1zWzBdKQor
ICAgICAgICBhc3NlcnQgcmVxdWVzdC5maXh0dXJlbmFtZXMgPT0gInMxIHAxIG0xIG0yIGMxIGYy
IGYxIi5zcGxpdCgpCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9wYWNrYWdlcyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgIiIiQ29tcGxleCB0ZXN0IGludm9sdmluZyBtdWx0aXBsZSBwYWNrYWdl
IGZpeHR1cmVzLiBNYWtlIHN1cmUgdGVhcmRvd25zCisgICAgICAgIGFyZSBleGVjdXRlZCBpbiBv
cmRlci4KKyAgICAgICAgLgorICAgICAgICDilJTilIDilIAgcm9vdAorICAgICAgICAgICAg4pSc
4pSA4pSAIF9faW5pdF9fLnB5CisgICAgICAgICAgICDilJzilIDilIAgc3ViMQorICAgICAgICAg
ICAg4pSCICAg4pSc4pSA4pSAIF9faW5pdF9fLnB5CisgICAgICAgICAgICDilIIgICDilJzilIDi
lIAgY29uZnRlc3QucHkKKyAgICAgICAgICAgIOKUgiAgIOKUlOKUgOKUgCB0ZXN0XzEucHkKKyAg
ICAgICAgICAgIOKUlOKUgOKUgCBzdWIyCisgICAgICAgICAgICAgICAg4pSc4pSA4pSAIF9faW5p
dF9fLnB5CisgICAgICAgICAgICAgICAg4pSc4pSA4pSAIGNvbmZ0ZXN0LnB5CisgICAgICAgICAg
ICAgICAg4pSU4pSA4pSAIHRlc3RfMi5weQorICAgICAgICAiIiIKKyAgICAgICAgcm9vdCA9IHRl
c3RkaXIubWtkaXIoInJvb3QiKQorICAgICAgICByb290LmpvaW4oIl9faW5pdF9fLnB5Iikud3Jp
dGUoInZhbHVlcyA9IFtdIikKKyAgICAgICAgc3ViMSA9IHJvb3QubWtkaXIoInN1YjEiKQorICAg
ICAgICBzdWIxLmVuc3VyZSgiX19pbml0X18ucHkiKQorICAgICAgICBzdWIxLmpvaW4oImNvbmZ0
ZXN0LnB5Iikud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAg
ICAgICAgIiIiXAorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZnJvbSAu
LiBpbXBvcnQgdmFsdWVzCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InBhY2th
Z2UiKQorICAgICAgICAgICAgZGVmIGZpeCgpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBl
bmQoInByZS1zdWIxIikKKyAgICAgICAgICAgICAgICB5aWVsZCB2YWx1ZXMKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgdmFsdWVzLnBvcCgpID09ICJwcmUtc3ViMSIKKyAgICAgICAgIiIiCisgICAg
ICAgICAgICApCisgICAgICAgICkKKyAgICAgICAgc3ViMS5qb2luKCJ0ZXN0XzEucHkiKS53cml0
ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisg
ICAgICAgICAgICBmcm9tIC4uIGltcG9ydCB2YWx1ZXMKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEo
Zml4KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsicHJlLXN1YjEiXQorICAg
ICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICBzdWIyID0gcm9vdC5t
a2Rpcigic3ViMiIpCisgICAgICAgIHN1YjIuZW5zdXJlKCJfX2luaXRfXy5weSIpCisgICAgICAg
IHN1YjIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRl
ZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBmcm9tIC4uIGltcG9ydCB2YWx1ZXMKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShzY29wZT0icGFja2FnZSIpCisgICAgICAgICAgICBkZWYgZml4KCk6CisgICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZCgicHJlLXN1YjIiKQorICAgICAgICAgICAgICAgIHlpZWxkIHZh
bHVlcworICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMucG9wKCkgPT0gInByZS1zdWIyIgor
ICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICBzdWIyLmpvaW4o
InRlc3RfMi5weSIpLndyaXRlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAg
ICAgICAgICAgICIiIlwKKyAgICAgICAgICAgIGZyb20gLi4gaW1wb3J0IHZhbHVlcworICAgICAg
ICAgICAgZGVmIHRlc3RfMihmaXgpOgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0g
WyJwcmUtc3ViMiJdCisgICAgICAgICIiIgorICAgICAgICAgICAgKQorICAgICAgICApCisgICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKHBhc3NlZD0yKQorCisKK2RlZiB0ZXN0X2NhbGxfZml4dHVyZV9mdW5jdGlvbl9lcnJv
cigpOgorICAgICIiIkNoZWNrIGlmIGFuIGVycm9yIGlzIHJhaXNlZCBpZiBhIGZpeHR1cmUgZnVu
Y3Rpb24gaXMgY2FsbGVkIGRpcmVjdGx5ICgjNDU0NSkiIiIKKworICAgIEBweXRlc3QuZml4dHVy
ZQorICAgIGRlZiBmaXgoKToKKyAgICAgICAgcmV0dXJuIDEKKworICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24pOgorICAgICAgICBhc3NlcnQgZml4KCkgPT0gMQor
CisKK2RlZiB0ZXN0X2ZpeHR1cmVfcGFyYW1fc2hhZG93aW5nKHRlc3RkaXIpOgorICAgICIiIlBh
cmFtZXRyaXplZCBhcmd1bWVudHMgd291bGQgYmUgc2hhZG93ZWQgaWYgYSBmaXh0dXJlIHdpdGgg
dGhlIHNhbWUgbmFtZSBhbHNvIGV4aXN0cyAoIzUwMzYpIiIiCisgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIEBweXRl
c3QuZml4dHVyZShwYXJhbXM9WydhJywgJ2InXSkKKyAgICAgICAgZGVmIGFyZ3Jvb3QocmVxdWVz
dCk6CisgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICBkZWYgYXJnKGFyZ3Jvb3QpOgorICAgICAgICAgICAgcmV0dXJuIGFy
Z3Jvb3QKKworICAgICAgICAjIFRoaXMgc2hvdWxkIG9ubHkgYmUgcGFyYW1ldHJpemVkIGRpcmVj
dGx5CisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiYXJnIiwgWzFdKQorICAgICAg
ICBkZWYgdGVzdF9kaXJlY3QoYXJnKToKKyAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQorCisg
ICAgICAgICMgVGhpcyBzaG91bGQgYmUgcGFyYW1ldHJpemVkIGJhc2VkIG9uIHRoZSBmaXh0dXJl
cworICAgICAgICBkZWYgdGVzdF9ub3JtYWxfZml4dHVyZShhcmcpOgorICAgICAgICAgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoYXJnLCBzdHIpCisKKyAgICAgICAgIyBJbmRpcmVjdCBzaG91bGQgc3Rp
bGwgd29yazoKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGFyZzIocmVx
dWVzdCk6CisgICAgICAgICAgICByZXR1cm4gMipyZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJhcmcyIiwgWzFdLCBpbmRpcmVjdD1UcnVlKQorICAgICAg
ICBkZWYgdGVzdF9pbmRpcmVjdChhcmcyKToKKyAgICAgICAgICAgIGFzc2VydCBhcmcyID09IDIK
KyAgICAiIiIKKyAgICApCisgICAgIyBPbmx5IG9uZSB0ZXN0IHNob3VsZCBoYXZlIHJ1bgorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgcmVzdWx0LmFzc2VydF9vdXRj
b21lcyhwYXNzZWQ9NCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqOjp0ZXN0
X2RpcmVjdFtbXTFbXV0qIl0pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjo6
dGVzdF9ub3JtYWxfZml4dHVyZVtbXWFbXV0qIl0pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKjo6dGVzdF9ub3JtYWxfZml4dHVyZVtbXWJbXV0qIl0pCisgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjo6dGVzdF9pbmRpcmVjdFtbXTFbXV0qIl0pCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9pbnRlZ3JhdGlvbi5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvcHl0aG9uL2ludGVncmF0aW9uLnB5CmluZGV4IGYzNDhmZGMyOWZkMmViODE5
ODQ3MDE4YTllNGQzMTRkNTE3OGEyMjQuLmQyZmVhMmRjNWNhMDZiNWM1ZjFhYmM0MjZjMjgzZWEy
YWQzOGE1NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ludGVncmF0
aW9uLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ludGVncmF0aW9uLnB5CkBA
IC0xLDEwICsxLDEwIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IHB5dGVzdAog
ZnJvbSBfcHl0ZXN0IGltcG9ydCBweXRob24KIGZyb20gX3B5dGVzdCBpbXBvcnQgcnVubmVyCiAK
IAogY2xhc3MgVGVzdE9FSlNLSVRTcGVjaWFscyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfZnVu
Y2FyZ19ub25fcHljb2xsZWN0b2JqKHNlbGYsIHRlc3RkaXIpOiAgIyByb3VnaCBqc3Rlc3RzIHVz
YWdlCiAgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAogICAgICAgICAgICAgIiIiCkBAIC03
MCw3ICs3MCw2IEBAIGNsYXNzIFRlc3RPRUpTS0lUU3BlY2lhbHMob2JqZWN0KToKIAogCiBkZWYg
dGVzdF93cmFwcGVkX2dldGZzbGluZW5vKCk6Ci0KICAgICBkZWYgZnVuYygpOgogICAgICAgICBw
YXNzCiAKQEAgLTg5LDEyICs4OCwxMCBAQCBkZWYgdGVzdF93cmFwcGVkX2dldGZzbGluZW5vKCk6
CiAKIAogY2xhc3MgVGVzdE1vY2tEZWNvcmF0aW9uKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF93
cmFwcGVkX2dldGZ1bmNhcmduYW1lcyhzZWxmKToKICAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbXBh
dCBpbXBvcnQgZ2V0ZnVuY2FyZ25hbWVzCiAKICAgICAgICAgZGVmIHdyYXAoZik6Ci0KICAgICAg
ICAgICAgIGRlZiBmdW5jKCk6CiAgICAgICAgICAgICAgICAgcGFzcwogCkBAIC0xMTUsNyArMTEy
LDYgQEAgY2xhc3MgVGVzdE1vY2tEZWNvcmF0aW9uKG9iamVjdCk6CiAgICAgICAgIGZyb20gX3B5
dGVzdC5jb21wYXQgaW1wb3J0IGdldGZ1bmNhcmduYW1lcwogCiAgICAgICAgIGRlZiB3cmFwKGYp
OgotCiAgICAgICAgICAgICBkZWYgZnVuYygpOgogICAgICAgICAgICAgICAgIHBhc3MKIApAQCAt
MjY5LDcgKzI2NSw2IEBAIGNsYXNzIFRlc3RNb2NrRGVjb3JhdGlvbihvYmplY3QpOgogCiAKIGNs
YXNzIFRlc3RSZVJ1blRlc3RzKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9yZXJ1bihzZWxmLCB0
ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCiAgICAgICAgICAgICAiIiIK
QEAgLTI4OSw3ICsyODQsNyBAQCBjbGFzcyBUZXN0UmVSdW5UZXN0cyhvYmplY3QpOgogICAgICAg
ICAgICAgICAgIGdsb2JhbCBjb3VudCwgcmVxCiAgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVl
c3QgIT0gcmVxCiAgICAgICAgICAgICAgICAgcmVxID0gcmVxdWVzdAotICAgICAgICAgICAgICAg
IHByaW50ICgiZml4IGNvdW50ICVzIiAlIGNvdW50KQorICAgICAgICAgICAgICAgIHByaW50KCJm
aXggY291bnQgJXMiICUgY291bnQpCiAgICAgICAgICAgICAgICAgY291bnQgKz0gMQogICAgICAg
ICAgICAgZGVmIHRlc3RfZml4KGZpeCk6CiAgICAgICAgICAgICAgICAgcGFzcwpAQCAtMzE2LDcg
KzMxMSw2IEBAIGRlZiB0ZXN0X3B5dGVzdGNvbmZpZ19pc19zZXNzaW9uX3Njb3BlZCgpOgogCiAK
IGNsYXNzIFRlc3ROb3NlbGlrZVRlc3RBdHRyaWJ1dGUob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0
X21vZHVsZV93aXRoX2dsb2JhbF90ZXN0KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTQwMCw4ICszOTQsOCBAQCBjbGFzcyBU
ZXN0Tm9zZWxpa2VUZXN0QXR0cmlidXRlKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBub3QgY2Fs
bC5pdGVtcwogCiAKLUBweXRlc3QubWFyay5pc3N1ZTM1MQogY2xhc3MgVGVzdFBhcmFtZXRlcml6
ZShvYmplY3QpOgorICAgICIiIiMzNTEiIiIKIAogICAgIGRlZiB0ZXN0X2lkZm5fbWFya2VyKHNl
bGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9tZXRhZnVuYy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvcHl0aG9uL21ldGFmdW5jLnB5CmluZGV4IGUxODFkMzEzMWY1NzcwZmFhMzQwNjVlM2ZkZmE0
NTllZTlmZDFlY2UuLmQ5MDc4Nzg5NGFlMzRiM2RhNWQ3ZDZhYTY1OTkxYjJhOTk3NzFmYWIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL21ldGFmdW5jLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL21ldGFmdW5jLnB5CkBAIC0xLDIwICsxLDIyIEBACiAj
IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IHJlCiBpbXBvcnQgc3lzCi1pbXBvcnQgYXR0
cgotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWltcG9ydCBweQotaW1wb3J0IHB5dGVzdAotZnJvbSBf
cHl0ZXN0IGltcG9ydCBweXRob24sIGZpeHR1cmVzCitpbXBvcnQgdGV4dHdyYXAKIAoraW1wb3J0
IGF0dHIKIGltcG9ydCBoeXBvdGhlc2lzCitpbXBvcnQgc2l4CiBmcm9tIGh5cG90aGVzaXMgaW1w
b3J0IHN0cmF0ZWdpZXMKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0IGltcG9ydCBmaXh0
dXJlcworZnJvbSBfcHl0ZXN0IGltcG9ydCBweXRob24KK2Zyb20gX3B5dGVzdC53YXJuaW5ncyBp
bXBvcnQgU0hPV19QWVRFU1RfV0FSTklOR1NfQVJHCisKIFBZMyA9IHN5cy52ZXJzaW9uX2luZm8g
Pj0gKDMsIDApCiAKIAogY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6Ci0KICAgICBkZWYgTWV0
YWZ1bmMoc2VsZiwgZnVuYywgY29uZmlnPU5vbmUpOgogICAgICAgICAjIHRoZSB1bml0IHRlc3Rz
IG9mIHRoaXMgY2xhc3MgY2hlY2sgaWYgdGhpbmdzIHdvcmsgY29ycmVjdGx5CiAgICAgICAgICMg
b24gdGhlIGZ1bmNhcmcgbGV2ZWwsIHNvIHdlIGRvbid0IG5lZWQgYSBmdWxsIGJsb3duCkBAIC0z
NSw3ICszNyw2IEBAIGNsYXNzIFRlc3RNZXRhZnVuYyhvYmplY3QpOgogICAgICAgICByZXR1cm4g
cHl0aG9uLk1ldGFmdW5jKGRlZmluaXRpb24sIGZpeHR1cmVpbmZvLCBjb25maWcpCiAKICAgICBk
ZWYgdGVzdF9ub19mdW5jYXJncyhzZWxmLCB0ZXN0ZGlyKToKLQogICAgICAgICBkZWYgZnVuY3Rp
b24oKToKICAgICAgICAgICAgIHBhc3MKIApAQCAtNDQsNyArNDUsNiBAQCBjbGFzcyBUZXN0TWV0
YWZ1bmMob2JqZWN0KToKICAgICAgICAgcmVwcihtZXRhZnVuYy5fY2FsbHMpCiAKICAgICBkZWYg
dGVzdF9mdW5jdGlvbl9iYXNpYyhzZWxmKToKLQogICAgICAgICBkZWYgZnVuYyhhcmcxLCBhcmcy
PSJxd2UiKToKICAgICAgICAgICAgIHBhc3MKIApAQCAtNTQsNzIgKzU0LDcgQEAgY2xhc3MgVGVz
dE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBtZXRhZnVuYy5mdW5jdGlvbiBpcyBm
dW5jCiAgICAgICAgIGFzc2VydCBtZXRhZnVuYy5jbHMgaXMgTm9uZQogCi0gICAgZGVmIHRlc3Rf
YWRkY2FsbF9ub19hcmdzKHNlbGYpOgotCi0gICAgICAgIGRlZiBmdW5jKGFyZzEpOgotICAgICAg
ICAgICAgcGFzcwotCi0gICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQotICAg
ICAgICBtZXRhZnVuYy5hZGRjYWxsKCkKLSAgICAgICAgYXNzZXJ0IGxlbihtZXRhZnVuYy5fY2Fs
bHMpID09IDEKLSAgICAgICAgY2FsbCA9IG1ldGFmdW5jLl9jYWxsc1swXQotICAgICAgICBhc3Nl
cnQgY2FsbC5pZCA9PSAiMCIKLSAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGNhbGwsICJwYXJh
bSIpCi0KLSAgICBkZWYgdGVzdF9hZGRjYWxsX2lkKHNlbGYpOgotCi0gICAgICAgIGRlZiBmdW5j
KGFyZzEpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRh
ZnVuYyhmdW5jKQotICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsICJtZXRhZnVuYy5h
ZGRjYWxsKGlkPU5vbmUpIikKLQotICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKGlkPTEpCi0gICAg
ICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgIm1ldGFmdW5jLmFkZGNhbGwoaWQ9MSkiKQot
ICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsICJtZXRhZnVuYy5hZGRjYWxsKGlkPScx
JykiKQotICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKGlkPTIpCi0gICAgICAgIGFzc2VydCBsZW4o
bWV0YWZ1bmMuX2NhbGxzKSA9PSAyCi0gICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0u
aWQgPT0gIjEiCi0gICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMV0uaWQgPT0gIjIiCi0K
LSAgICBkZWYgdGVzdF9hZGRjYWxsX3BhcmFtKHNlbGYpOgotCi0gICAgICAgIGRlZiBmdW5jKGFy
ZzEpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVu
YyhmdW5jKQotCi0gICAgICAgIGNsYXNzIG9iaihvYmplY3QpOgotICAgICAgICAgICAgcGFzcwot
Ci0gICAgICAgIG1ldGFmdW5jLmFkZGNhbGwocGFyYW09b2JqKQotICAgICAgICBtZXRhZnVuYy5h
ZGRjYWxsKHBhcmFtPW9iaikKLSAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChwYXJhbT0xKQotICAg
ICAgICBhc3NlcnQgbGVuKG1ldGFmdW5jLl9jYWxscykgPT0gMwotICAgICAgICBhc3NlcnQgbWV0
YWZ1bmMuX2NhbGxzWzBdLmdldHBhcmFtKCJhcmcxIikgPT0gb2JqCi0gICAgICAgIGFzc2VydCBt
ZXRhZnVuYy5fY2FsbHNbMV0uZ2V0cGFyYW0oImFyZzEiKSA9PSBvYmoKLSAgICAgICAgYXNzZXJ0
IG1ldGFmdW5jLl9jYWxsc1syXS5nZXRwYXJhbSgiYXJnMSIpID09IDEKLQotICAgIGRlZiB0ZXN0
X2FkZGNhbGxfZnVuY2FyZ3Moc2VsZik6Ci0KLSAgICAgICAgZGVmIGZ1bmMoeCk6Ci0gICAgICAg
ICAgICBwYXNzCi0KLSAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCi0KLSAg
ICAgICAgY2xhc3Mgb2JqKG9iamVjdCk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgbWV0
YWZ1bmMuYWRkY2FsbChmdW5jYXJncz17IngiOiAyfSkKLSAgICAgICAgbWV0YWZ1bmMuYWRkY2Fs
bChmdW5jYXJncz17IngiOiAzfSkKLSAgICAgICAgcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5F
eGNlcHRpb24sICJtZXRhZnVuYy5hZGRjYWxsKHsneHl6JzogMH0pIikKLSAgICAgICAgYXNzZXJ0
IGxlbihtZXRhZnVuYy5fY2FsbHMpID09IDIKLSAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxs
c1swXS5mdW5jYXJncyA9PSB7IngiOiAyfQotICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxz
WzFdLmZ1bmNhcmdzID09IHsieCI6IDN9Ci0gICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihtZXRh
ZnVuYy5fY2FsbHNbMV0sICJwYXJhbSIpCi0KICAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9lcnJv
cihzZWxmKToKLQogICAgICAgICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBhc3MKIApA
QCAtMTMyLDE4ICs2Nyw2MyBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAg
cHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBsYW1iZGE6IG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ5
IiwgWzUsIDZdKSkKIAogICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2JhZF9zY29wZShzZWxmLCB0
ZXN0ZGlyKToKLQogICAgICAgICBkZWYgZnVuYyh4KToKICAgICAgICAgICAgIHBhc3MKIAogICAg
ICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVuYykKLSAgICAgICAgdHJ5OgorICAgICAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoCisgICAgICAgICAgICBweXRlc3QuZmFpbC5FeGNlcHRpb24s
CisgICAgICAgICAgICBtYXRjaD1yInBhcmFtZXRyaXplXChcKSBjYWxsIGluIGZ1bmMgZ290IGFu
IHVuZXhwZWN0ZWQgc2NvcGUgdmFsdWUgJ2RvZ2d5JyIsCisgICAgICAgICk6CiAgICAgICAgICAg
ICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgieCIsIFsxXSwgc2NvcGU9ImRvZ2d5IikKLSAgICAgICAg
ZXhjZXB0IFZhbHVlRXJyb3IgYXMgdmU6Ci0gICAgICAgICAgICBhc3NlcnQgImhhcyBhbiB1bnN1
cHBvcnRlZCBzY29wZSB2YWx1ZSAnZG9nZ3knIiBpbiBzdHIodmUpCiAKLSAgICBkZWYgdGVzdF9w
YXJhbWV0cml6ZV9hbmRfaWQoc2VsZik6CisgICAgZGVmIHRlc3RfZmluZF9wYXJhbWV0cml6ZWRf
c2NvcGUoc2VsZik6CisgICAgICAgICIiInVuaXR0ZXN0IGZvciBfZmluZF9wYXJhbWV0cml6ZWRf
c2NvcGUgKCMzOTQxKSIiIgorICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBfZmlu
ZF9wYXJhbWV0cml6ZWRfc2NvcGUKKworICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIER1
bW15Rml4dHVyZURlZihvYmplY3QpOgorICAgICAgICAgICAgc2NvcGUgPSBhdHRyLmliKCkKKwor
ICAgICAgICBmaXh0dXJlc19kZWZzID0gZGljdCgKKyAgICAgICAgICAgIHNlc3Npb25fZml4PVtE
dW1teUZpeHR1cmVEZWYoInNlc3Npb24iKV0sCisgICAgICAgICAgICBwYWNrYWdlX2ZpeD1bRHVt
bXlGaXh0dXJlRGVmKCJwYWNrYWdlIildLAorICAgICAgICAgICAgbW9kdWxlX2ZpeD1bRHVtbXlG
aXh0dXJlRGVmKCJtb2R1bGUiKV0sCisgICAgICAgICAgICBjbGFzc19maXg9W0R1bW15Rml4dHVy
ZURlZigiY2xhc3MiKV0sCisgICAgICAgICAgICBmdW5jX2ZpeD1bRHVtbXlGaXh0dXJlRGVmKCJm
dW5jdGlvbiIpXSwKKyAgICAgICAgKQorCisgICAgICAgICMgdXNlIGFyZ3VtZW50cyB0byBkZXRl
cm1pbmUgbmFycm93IHNjb3BlOyB0aGUgY2F1c2Ugb2YgdGhlIGJ1ZyBpcyB0aGF0IGl0IHdvdWxk
IGxvb2sgb24gYWxsCisgICAgICAgICMgZml4dHVyZSBkZWZzIGdpdmVuIHRvIHRoZSBtZXRob2QK
KyAgICAgICAgZGVmIGZpbmRfc2NvcGUoYXJnbmFtZXMsIGluZGlyZWN0KToKKyAgICAgICAgICAg
IHJldHVybiBfZmluZF9wYXJhbWV0cml6ZWRfc2NvcGUoYXJnbmFtZXMsIGZpeHR1cmVzX2RlZnMs
IGluZGlyZWN0PWluZGlyZWN0KQorCisgICAgICAgIGFzc2VydCBmaW5kX3Njb3BlKFsiZnVuY19m
aXgiXSwgaW5kaXJlY3Q9VHJ1ZSkgPT0gImZ1bmN0aW9uIgorICAgICAgICBhc3NlcnQgZmluZF9z
Y29wZShbImNsYXNzX2ZpeCJdLCBpbmRpcmVjdD1UcnVlKSA9PSAiY2xhc3MiCisgICAgICAgIGFz
c2VydCBmaW5kX3Njb3BlKFsibW9kdWxlX2ZpeCJdLCBpbmRpcmVjdD1UcnVlKSA9PSAibW9kdWxl
IgorICAgICAgICBhc3NlcnQgZmluZF9zY29wZShbInBhY2thZ2VfZml4Il0sIGluZGlyZWN0PVRy
dWUpID09ICJwYWNrYWdlIgorICAgICAgICBhc3NlcnQgZmluZF9zY29wZShbInNlc3Npb25fZml4
Il0sIGluZGlyZWN0PVRydWUpID09ICJzZXNzaW9uIgorCisgICAgICAgIGFzc2VydCBmaW5kX3Nj
b3BlKFsiY2xhc3NfZml4IiwgImZ1bmNfZml4Il0sIGluZGlyZWN0PVRydWUpID09ICJmdW5jdGlv
biIKKyAgICAgICAgYXNzZXJ0IGZpbmRfc2NvcGUoWyJmdW5jX2ZpeCIsICJzZXNzaW9uX2ZpeCJd
LCBpbmRpcmVjdD1UcnVlKSA9PSAiZnVuY3Rpb24iCisgICAgICAgIGFzc2VydCBmaW5kX3Njb3Bl
KFsic2Vzc2lvbl9maXgiLCAiY2xhc3NfZml4Il0sIGluZGlyZWN0PVRydWUpID09ICJjbGFzcyIK
KyAgICAgICAgYXNzZXJ0IGZpbmRfc2NvcGUoWyJwYWNrYWdlX2ZpeCIsICJzZXNzaW9uX2ZpeCJd
LCBpbmRpcmVjdD1UcnVlKSA9PSAicGFja2FnZSIKKyAgICAgICAgYXNzZXJ0IGZpbmRfc2NvcGUo
WyJtb2R1bGVfZml4IiwgInNlc3Npb25fZml4Il0sIGluZGlyZWN0PVRydWUpID09ICJtb2R1bGUi
CisKKyAgICAgICAgIyB3aGVuIGluZGlyZWN0IGlzIEZhbHNlIG9yIGlzIG5vdCBmb3IgYWxsIHNj
b3BlcywgYWx3YXlzIHVzZSBmdW5jdGlvbgorICAgICAgICBhc3NlcnQgZmluZF9zY29wZShbInNl
c3Npb25fZml4IiwgIm1vZHVsZV9maXgiXSwgaW5kaXJlY3Q9RmFsc2UpID09ICJmdW5jdGlvbiIK
KyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgIGZpbmRfc2NvcGUoWyJzZXNzaW9uX2ZpeCIs
ICJtb2R1bGVfZml4Il0sIGluZGlyZWN0PVsibW9kdWxlX2ZpeCJdKQorICAgICAgICAgICAgPT0g
ImZ1bmN0aW9uIgorICAgICAgICApCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICBmaW5k
X3Njb3BlKAorICAgICAgICAgICAgICAgIFsic2Vzc2lvbl9maXgiLCAibW9kdWxlX2ZpeCJdLCBp
bmRpcmVjdD1bInNlc3Npb25fZml4IiwgIm1vZHVsZV9maXgiXQorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgPT0gIm1vZHVsZSIKKyAgICAgICAgKQogCisgICAgZGVmIHRlc3RfcGFyYW1ldHJp
emVfYW5kX2lkKHNlbGYpOgogICAgICAgICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBh
c3MKIApAQCAtMTY2LDMxICsxNDYsMjYgQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAg
ICAgICAgIGFzc2VydCBpZHMgPT0gW3UiYmFzaWMiLCB1ImFkdmFuY2VkIl0KIAogICAgIGRlZiB0
ZXN0X3BhcmFtZXRyaXplX3dpdGhfd3JvbmdfbnVtYmVyX29mX2lkcyhzZWxmLCB0ZXN0ZGlyKToK
LQogICAgICAgICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBhc3MKIAogICAgICAgICBt
ZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVuYykKIAotICAgICAgICBweXRlc3QucmFpc2VzKAot
ICAgICAgICAgICAgVmFsdWVFcnJvciwgbGFtYmRhOiBtZXRhZnVuYy5wYXJhbWV0cml6ZSgieCIs
IFsxLCAyXSwgaWRzPVsiYmFzaWMiXSkKLSAgICAgICAgKQorICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKToKKyAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFt
ZXRyaXplKCJ4IiwgWzEsIDJdLCBpZHM9WyJiYXNpYyJdKQogCi0gICAgICAgIHB5dGVzdC5yYWlz
ZXMoCi0gICAgICAgICAgICBWYWx1ZUVycm9yLAotICAgICAgICAgICAgbGFtYmRhOiBtZXRhZnVu
Yy5wYXJhbWV0cml6ZSgKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4
Y2VwdGlvbik6CisgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgKICAgICAgICAgICAg
ICAgICAoIngiLCAieSIpLCBbKCJhYmMiLCAiZGVmIiksICgiZ2hpIiwgImprbCIpXSwgaWRzPVsi
b25lIl0KLSAgICAgICAgICAgICksCi0gICAgICAgICkKKyAgICAgICAgICAgICkKIAotICAgIEBw
eXRlc3QubWFyay5pc3N1ZTUxMAogICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2VtcHR5X2xpc3Qo
c2VsZik6CisgICAgICAgICIiIiM1MTAiIiIKIAogICAgICAgICBkZWYgZnVuYyh5KToKICAgICAg
ICAgICAgIHBhc3MKIAogICAgICAgICBjbGFzcyBNb2NrQ29uZmlnKG9iamVjdCk6Ci0KICAgICAg
ICAgICAgIGRlZiBnZXRpbmkoc2VsZiwgbmFtZSk6CiAgICAgICAgICAgICAgICAgcmV0dXJuICIi
CiAKQEAgLTIwNiw3ICsxODEsNiBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAg
ICAgYXNzZXJ0ICJza2lwIiA9PSBtZXRhZnVuYy5fY2FsbHNbMF0ubWFya3NbMF0ubmFtZQogCiAg
ICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfd2l0aF91c2Vyb2JqZWN0cyhzZWxmKToKLQogICAgICAg
ICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBhc3MKIApAQCAtMjI5LDEyICsyMDMsOSBA
QCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICBkZWYgdGVzdF9pZHZhbF9oeXBvdGhl
c2lzKHNlbGYsIHZhbHVlKToKICAgICAgICAgZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgX2lk
dmFsCiAKLSAgICAgICAgZXNjYXBlZCA9IF9pZHZhbCh2YWx1ZSwgImEiLCA2LCBOb25lKQotICAg
ICAgICBhc3NlcnQgaXNpbnN0YW5jZShlc2NhcGVkLCBzdHIpCi0gICAgICAgIGlmIFBZMzoKLSAg
ICAgICAgICAgIGVzY2FwZWQuZW5jb2RlKCJhc2NpaSIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBlc2NhcGVkLmRlY29kZSgiYXNjaWkiKQorICAgICAgICBlc2NhcGVkID0gX2lkdmFsKHZh
bHVlLCAiYSIsIDYsIE5vbmUsIGl0ZW09Tm9uZSwgY29uZmlnPU5vbmUpCisgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGVzY2FwZWQsIHNpeC50ZXh0X3R5cGUpCisgICAgICAgIGVzY2FwZWQuZW5j
b2RlKCJhc2NpaSIpCiAKICAgICBkZWYgdGVzdF91bmljb2RlX2lkdmFsKHNlbGYpOgogICAgICAg
ICAiIiJUaGlzIHRlc3RzIHRoYXQgVW5pY29kZSBzdHJpbmdzIG91dHNpZGUgdGhlIEFTQ0lJIGNo
YXJhY3RlciBzZXQgZ2V0CkBAIC0yNTYsNyArMjI3LDM3IEBAIGNsYXNzIFRlc3RNZXRhZnVuYyhv
YmplY3QpOgogICAgICAgICAgICAgKSwKICAgICAgICAgXQogICAgICAgICBmb3IgdmFsLCBleHBl
Y3RlZCBpbiB2YWx1ZXM6Ci0gICAgICAgICAgICBhc3NlcnQgX2lkdmFsKHZhbCwgImEiLCA2LCBO
b25lKSA9PSBleHBlY3RlZAorICAgICAgICAgICAgYXNzZXJ0IF9pZHZhbCh2YWwsICJhIiwgNiwg
Tm9uZSwgaXRlbT1Ob25lLCBjb25maWc9Tm9uZSkgPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0ZXN0
X3VuaWNvZGVfaWR2YWxfd2l0aF9jb25maWcoc2VsZik6CisgICAgICAgICIiInVuaXR0ZXN0IGZv
ciBleHBlY3RlZCBiZWhhdmlvciB0byBvYnRhaW4gaWRzIHdpdGgKKyAgICAgICAgZGlzYWJsZV90
ZXN0X2lkX2VzY2FwaW5nX2FuZF9mb3JmZWl0X2FsbF9yaWdodHNfdG9fY29tbXVuaXR5X3N1cHBv
cnQKKyAgICAgICAgb3B0aW9uLiAoIzUyOTQpCisgICAgICAgICIiIgorICAgICAgICBmcm9tIF9w
eXRlc3QucHl0aG9uIGltcG9ydCBfaWR2YWwKKworICAgICAgICBjbGFzcyBNb2NrQ29uZmlnKG9i
amVjdCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKKyAgICAgICAg
ICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZworCisgICAgICAgICAgICBAcHJvcGVydHkKKyAg
ICAgICAgICAgIGRlZiBob29rKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmCisK
KyAgICAgICAgICAgIGRlZiBweXRlc3RfbWFrZV9wYXJhbWV0cml6ZV9pZChzZWxmLCAqKmt3KToK
KyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiBnZXRpbmkoc2VsZiwgbmFt
ZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29uZmlnW25hbWVdCisKKyAgICAgICAg
b3B0aW9uID0gImRpc2FibGVfdGVzdF9pZF9lc2NhcGluZ19hbmRfZm9yZmVpdF9hbGxfcmlnaHRz
X3RvX2NvbW11bml0eV9zdXBwb3J0IgorCisgICAgICAgIHZhbHVlcyA9IFsKKyAgICAgICAgICAg
ICh1ImHDp8OjbyIsIE1vY2tDb25maWcoe29wdGlvbjogVHJ1ZX0pLCB1ImHDp8OjbyIpLAorICAg
ICAgICAgICAgKHUiYcOnw6NvIiwgTW9ja0NvbmZpZyh7b3B0aW9uOiBGYWxzZX0pLCAiYVxceGU3
XFx4ZTNvIiksCisgICAgICAgIF0KKyAgICAgICAgZm9yIHZhbCwgY29uZmlnLCBleHBlY3RlZCBp
biB2YWx1ZXM6CisgICAgICAgICAgICBhc3NlcnQgX2lkdmFsKHZhbCwgImEiLCA2LCBOb25lLCBp
dGVtPU5vbmUsIGNvbmZpZz1jb25maWcpID09IGV4cGVjdGVkCiAKICAgICBkZWYgdGVzdF9ieXRl
c19pZHZhbChzZWxmKToKICAgICAgICAgIiIidW5pdHRlc3QgZm9yIHRoZSBleHBlY3RlZCBiZWhh
dmlvciB0byBvYnRhaW4gaWRzIGZvciBwYXJhbWV0cml6ZWQKQEAgLTI3NCw3ICsyNzUsNyBAQCBj
bGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgICAgICh1Is6xz4HOrCIuZW5jb2Rl
KCJ1dGYtOCIpLCAiXFx4Y2VcXHhiMVxceGNmXFx4ODFcXHhjZVxceGFjIiksCiAgICAgICAgIF0K
ICAgICAgICAgZm9yIHZhbCwgZXhwZWN0ZWQgaW4gdmFsdWVzOgotICAgICAgICAgICAgYXNzZXJ0
IF9pZHZhbCh2YWwsICJhIiwgNiwgTm9uZSkgPT0gZXhwZWN0ZWQKKyAgICAgICAgICAgIGFzc2Vy
dCBfaWR2YWwodmFsLCAiYSIsIDYsIGlkZm49Tm9uZSwgaXRlbT1Ob25lLCBjb25maWc9Tm9uZSkg
PT0gZXhwZWN0ZWQKIAogICAgIGRlZiB0ZXN0X2NsYXNzX29yX2Z1bmN0aW9uX2lkdmFsKHNlbGYp
OgogICAgICAgICAiIiJ1bml0dGVzdCBmb3IgdGhlIGV4cGVjdGVkIGJlaGF2aW9yIHRvIG9idGFp
biBpZHMgZm9yIHBhcmFtZXRyaXplZApAQCAtMjkwLDEwICsyOTEsMTAgQEAgY2xhc3MgVGVzdE1l
dGFmdW5jKG9iamVjdCk6CiAKICAgICAgICAgdmFsdWVzID0gWyhUZXN0Q2xhc3MsICJUZXN0Q2xh
c3MiKSwgKHRlc3RfZnVuY3Rpb24sICJ0ZXN0X2Z1bmN0aW9uIildCiAgICAgICAgIGZvciB2YWws
IGV4cGVjdGVkIGluIHZhbHVlczoKLSAgICAgICAgICAgIGFzc2VydCBfaWR2YWwodmFsLCAiYSIs
IDYsIE5vbmUpID09IGV4cGVjdGVkCisgICAgICAgICAgICBhc3NlcnQgX2lkdmFsKHZhbCwgImEi
LCA2LCBOb25lLCBpdGVtPU5vbmUsIGNvbmZpZz1Ob25lKSA9PSBleHBlY3RlZAogCi0gICAgQHB5
dGVzdC5tYXJrLmlzc3VlMjUwCiAgICAgZGVmIHRlc3RfaWRtYWtlcl9hdXRvbmFtZShzZWxmKToK
KyAgICAgICAgIiIiIzI1MCIiIgogICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBp
ZG1ha2VyCiAKICAgICAgICAgcmVzdWx0ID0gaWRtYWtlcigKQEAgLTMwNiw5ICszMDcsNyBAQCBj
bGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgKQogICAgICAgICBhc3NlcnQgcmVz
dWx0ID09IFsiYTAtMS4wIiwgImExLWIxIl0KICAgICAgICAgIyB1bmljb2RlIG1peGluZywgaXNz
dWUyNTAKLSAgICAgICAgcmVzdWx0ID0gaWRtYWtlcigKLSAgICAgICAgICAgIChweS5idWlsdGlu
Ll90b3RleHQoImEiKSwgImIiKSwgW3B5dGVzdC5wYXJhbSh7fSwgYiJceGMzXHhiNCIpXQotICAg
ICAgICApCisgICAgICAgIHJlc3VsdCA9IGlkbWFrZXIoKHUiYSIsICJiIiksIFtweXRlc3QucGFy
YW0oe30sIGIiXHhjM1x4YjQiKV0pCiAgICAgICAgIGFzc2VydCByZXN1bHQgPT0gWyJhMC1cXHhj
M1xceGI0Il0KIAogICAgIGRlZiB0ZXN0X2lkbWFrZXJfd2l0aF9ieXRlc19yZWdleChzZWxmKToK
QEAgLTMyMCw3ICszMTksNiBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICBkZWYg
dGVzdF9pZG1ha2VyX25hdGl2ZV9zdHJpbmdzKHNlbGYpOgogICAgICAgICBmcm9tIF9weXRlc3Qu
cHl0aG9uIGltcG9ydCBpZG1ha2VyCiAKLSAgICAgICAgdG90ZXh0ID0gcHkuYnVpbHRpbi5fdG90
ZXh0CiAgICAgICAgIHJlc3VsdCA9IGlkbWFrZXIoCiAgICAgICAgICAgICAoImEiLCAiYiIpLAog
ICAgICAgICAgICAgWwpAQCAtMzM1LDI2ICszMzMsNTEgQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9i
amVjdCk6CiAgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKHs3fSwgc2V0KCJzZXZlbiIpKSwK
ICAgICAgICAgICAgICAgICBweXRlc3QucGFyYW0odHVwbGUoImVpZ2h0IiksICg4LCAtOCwgOCkp
LAogICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbShiIlx4YzNceGI0IiwgYiJuYW1lIiksCi0g
ICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKGIiXHhjM1x4YjQiLCB0b3RleHQoIm90aGVyIikp
LAorICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbShiIlx4YzNceGI0IiwgdSJvdGhlciIpLAog
ICAgICAgICAgICAgXSwKICAgICAgICAgKQotICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAg
cmVzdWx0Ci0gICAgICAgICAgICA9PSBbCi0gICAgICAgICAgICAgICAgIjEuMC0tMS4xIiwKLSAg
ICAgICAgICAgICAgICAiMi0tMjAyIiwKLSAgICAgICAgICAgICAgICAidGhyZWUtdGhyZWUgaHVu
ZHJlZCIsCi0gICAgICAgICAgICAgICAgIlRydWUtRmFsc2UiLAotICAgICAgICAgICAgICAgICJO
b25lLU5vbmUiLAotICAgICAgICAgICAgICAgICJmb28tYmFyIiwKLSAgICAgICAgICAgICAgICAi
c3RyLWludCIsCi0gICAgICAgICAgICAgICAgImE3LWI3IiwKLSAgICAgICAgICAgICAgICAiYTgt
YjgiLAotICAgICAgICAgICAgICAgICJhOS1iOSIsCi0gICAgICAgICAgICAgICAgIlxceGMzXFx4
YjQtbmFtZSIsCi0gICAgICAgICAgICAgICAgIlxceGMzXFx4YjQtb3RoZXIiLAotICAgICAgICAg
ICAgXQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsKKyAgICAgICAgICAgICIxLjAtLTEuMSIs
CisgICAgICAgICAgICAiMi0tMjAyIiwKKyAgICAgICAgICAgICJ0aHJlZS10aHJlZSBodW5kcmVk
IiwKKyAgICAgICAgICAgICJUcnVlLUZhbHNlIiwKKyAgICAgICAgICAgICJOb25lLU5vbmUiLAor
ICAgICAgICAgICAgImZvby1iYXIiLAorICAgICAgICAgICAgInN0ci1pbnQiLAorICAgICAgICAg
ICAgImE3LWI3IiwKKyAgICAgICAgICAgICJhOC1iOCIsCisgICAgICAgICAgICAiYTktYjkiLAor
ICAgICAgICAgICAgIlxceGMzXFx4YjQtbmFtZSIsCisgICAgICAgICAgICAiXFx4YzNcXHhiNC1v
dGhlciIsCisgICAgICAgIF0KKworICAgIGRlZiB0ZXN0X2lkbWFrZXJfbm9uX3ByaW50YWJsZV9j
aGFyYWN0ZXJzKHNlbGYpOgorICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1h
a2VyCisKKyAgICAgICAgcmVzdWx0ID0gaWRtYWtlcigKKyAgICAgICAgICAgICgicyIsICJuIiks
CisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKCJceDAwIiwgMSks
CisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKCJceDA1IiwgMiksCisgICAgICAgICAgICAg
ICAgcHl0ZXN0LnBhcmFtKGIiXHgwMCIsIDMpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJh
bShiIlx4MDUiLCA0KSwKKyAgICAgICAgICAgICAgICBweXRlc3QucGFyYW0oIlx0IiwgNSksCisg
ICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKGIiXHQiLCA2KSwKKyAgICAgICAgICAgIF0sCisg
ICAgICAgICkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbIlxceDAwLTEiLCAiXFx4MDUtMiIs
ICJcXHgwMC0zIiwgIlxceDA1LTQiLCAiXFx0LTUiLCAiXFx0LTYiXQorCisgICAgZGVmIHRlc3Rf
aWRtYWtlcl9tYW51YWxfaWRzX211c3RfYmVfcHJpbnRhYmxlKHNlbGYpOgorICAgICAgICBmcm9t
IF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2VyCisKKyAgICAgICAgcmVzdWx0ID0gaWRtYWtl
cigKKyAgICAgICAgICAgICgicyIsKSwKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICBw
eXRlc3QucGFyYW0oIngwMCIsIGlkPSJoZWxsbyBceDAwIiksCisgICAgICAgICAgICAgICAgcHl0
ZXN0LnBhcmFtKCJ4MDUiLCBpZD0iaGVsbG8gXHgwNSIpLAorICAgICAgICAgICAgXSwKICAgICAg
ICAgKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsiaGVsbG8gXFx4MDAiLCAiaGVsbG8gXFx4
MDUiXQogCiAgICAgZGVmIHRlc3RfaWRtYWtlcl9lbnVtKHNlbGYpOgogICAgICAgICBmcm9tIF9w
eXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2VyCkBAIC0zNjQsOCArMzg3LDggQEAgY2xhc3MgVGVz
dE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IGlkbWFrZXIoKCJhIiwgImIiKSwg
W3B5dGVzdC5wYXJhbShlLm9uZSwgZS50d28pXSkKICAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBb
IkZvby5vbmUtRm9vLnR3byJdCiAKLSAgICBAcHl0ZXN0Lm1hcmsuaXNzdWUzNTEKICAgICBkZWYg
dGVzdF9pZG1ha2VyX2lkZm4oc2VsZik6CisgICAgICAgICIiIiMzNTEiIiIKICAgICAgICAgZnJv
bSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgaWRtYWtlcgogCiAgICAgICAgIGRlZiBpZHModmFsKToK
QEAgLTM4Myw4ICs0MDYsOCBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAg
KQogICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsiMTAuMC1JbmRleEVycm9yKCkiLCAiMjAtS2V5
RXJyb3IoKSIsICJ0aHJlZS1iMiJdCiAKLSAgICBAcHl0ZXN0Lm1hcmsuaXNzdWUzNTEKICAgICBk
ZWYgdGVzdF9pZG1ha2VyX2lkZm5fdW5pcXVlX25hbWVzKHNlbGYpOgorICAgICAgICAiIiIjMzUx
IiIiCiAgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IGlkbWFrZXIKIAogICAgICAg
ICBkZWYgaWRzKHZhbCk6CkBAIC00MDEsNDYgKzQyNCw3MSBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMo
b2JqZWN0KToKICAgICAgICAgKQogICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsiYS1hMCIsICJh
LWExIiwgImEtYTIiXQogCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlMzUxCi0gICAgZGVmIHRlc3Rf
aWRtYWtlcl9pZGZuX2V4Y2VwdGlvbihzZWxmKToKKyAgICBkZWYgdGVzdF9pZG1ha2VyX3dpdGhf
aWRmbl9hbmRfY29uZmlnKHNlbGYpOgorICAgICAgICAiIiJ1bml0dGVzdCBmb3IgZXhwZWN0ZWQg
YmVoYXZpb3IgdG8gY3JlYXRlIGlkcyB3aXRoIGlkZm4gYW5kCisgICAgICAgIGRpc2FibGVfdGVz
dF9pZF9lc2NhcGluZ19hbmRfZm9yZmVpdF9hbGxfcmlnaHRzX3RvX2NvbW11bml0eV9zdXBwb3J0
CisgICAgICAgIG9wdGlvbi4gKCM1Mjk0KQorICAgICAgICAiIiIKICAgICAgICAgZnJvbSBfcHl0
ZXN0LnB5dGhvbiBpbXBvcnQgaWRtYWtlcgotICAgICAgICBmcm9tIF9weXRlc3QucmVjd2FybiBp
bXBvcnQgV2FybmluZ3NSZWNvcmRlcgogCi0gICAgICAgIGNsYXNzIEJhZElkc0V4Y2VwdGlvbihF
eGNlcHRpb24pOgotICAgICAgICAgICAgcGFzcworICAgICAgICBjbGFzcyBNb2NrQ29uZmlnKG9i
amVjdCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKKyAgICAgICAg
ICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwogCi0gICAgICAgIGRlZiBpZHModmFsKToKLSAg
ICAgICAgICAgIHJhaXNlIEJhZElkc0V4Y2VwdGlvbigiaWRzIHJhaXNlZCIpCi0KLSAgICAgICAg
cmVjID0gV2FybmluZ3NSZWNvcmRlcigpCi0gICAgICAgIHdpdGggcmVjOgotICAgICAgICAgICAg
aWRtYWtlcigKLSAgICAgICAgICAgICAgICAoImEiLCAiYiIpLAotICAgICAgICAgICAgICAgIFsK
LSAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDEwLjAsIEluZGV4RXJyb3IoKSksCi0g
ICAgICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgyMCwgS2V5RXJyb3IoKSksCi0gICAgICAg
ICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgidGhyZWUiLCBbMSwgMiwgM10pLAotICAgICAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICAgICAgaWRmbj1pZHMsCisgICAgICAgICAgICBAcHJvcGVy
dHkKKyAgICAgICAgICAgIGRlZiBob29rKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBz
ZWxmCisKKyAgICAgICAgICAgIGRlZiBweXRlc3RfbWFrZV9wYXJhbWV0cml6ZV9pZChzZWxmLCAq
Kmt3KToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiBnZXRpbmkoc2Vs
ZiwgbmFtZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29uZmlnW25hbWVdCisKKyAg
ICAgICAgb3B0aW9uID0gImRpc2FibGVfdGVzdF9pZF9lc2NhcGluZ19hbmRfZm9yZmVpdF9hbGxf
cmlnaHRzX3RvX2NvbW11bml0eV9zdXBwb3J0IgorCisgICAgICAgIHZhbHVlcyA9IFsKKyAgICAg
ICAgICAgIChNb2NrQ29uZmlnKHtvcHRpb246IFRydWV9KSwgdSJhw6fDo28iKSwKKyAgICAgICAg
ICAgIChNb2NrQ29uZmlnKHtvcHRpb246IEZhbHNlfSksICJhXFx4ZTdcXHhlM28iKSwKKyAgICAg
ICAgXQorICAgICAgICBmb3IgY29uZmlnLCBleHBlY3RlZCBpbiB2YWx1ZXM6CisgICAgICAgICAg
ICByZXN1bHQgPSBpZG1ha2VyKAorICAgICAgICAgICAgICAgICgiYSIsKSwgW3B5dGVzdC5wYXJh
bSgic3RyaW5nIildLCBpZGZuPWxhbWJkYSBfOiB1ImHDp8OjbyIsIGNvbmZpZz1jb25maWcKICAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIGFzc2VydCByZXN1bHQgPT0gW2V4cGVjdGVkXQogCi0g
ICAgICAgIGFzc2VydCAoCi0gICAgICAgICAgICBbc3RyKGkubWVzc2FnZSkgZm9yIGkgaW4gcmVj
Lmxpc3RdCi0gICAgICAgICAgICA9PSBbCi0gICAgICAgICAgICAgICAgIlJhaXNlZCB3aGlsZSB0
cnlpbmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBhcmFtZXRlciBhIGF0IHBvc2l0aW9uIDAuIgotICAg
ICAgICAgICAgICAgICJcblVwZGF0ZSB5b3VyIGNvZGUgYXMgdGhpcyB3aWxsIHJhaXNlIGFuIGVy
cm9yIGluIHB5dGVzdC00LjAuIiwKLSAgICAgICAgICAgICAgICAiUmFpc2VkIHdoaWxlIHRyeWlu
ZyB0byBkZXRlcm1pbmUgaWQgb2YgcGFyYW1ldGVyIGIgYXQgcG9zaXRpb24gMC4iCi0gICAgICAg
ICAgICAgICAgIlxuVXBkYXRlIHlvdXIgY29kZSBhcyB0aGlzIHdpbGwgcmFpc2UgYW4gZXJyb3Ig
aW4gcHl0ZXN0LTQuMC4iLAotICAgICAgICAgICAgICAgICJSYWlzZWQgd2hpbGUgdHJ5aW5nIHRv
IGRldGVybWluZSBpZCBvZiBwYXJhbWV0ZXIgYSBhdCBwb3NpdGlvbiAxLiIKLSAgICAgICAgICAg
ICAgICAiXG5VcGRhdGUgeW91ciBjb2RlIGFzIHRoaXMgd2lsbCByYWlzZSBhbiBlcnJvciBpbiBw
eXRlc3QtNC4wLiIsCi0gICAgICAgICAgICAgICAgIlJhaXNlZCB3aGlsZSB0cnlpbmcgdG8gZGV0
ZXJtaW5lIGlkIG9mIHBhcmFtZXRlciBiIGF0IHBvc2l0aW9uIDEuIgotICAgICAgICAgICAgICAg
ICJcblVwZGF0ZSB5b3VyIGNvZGUgYXMgdGhpcyB3aWxsIHJhaXNlIGFuIGVycm9yIGluIHB5dGVz
dC00LjAuIiwKLSAgICAgICAgICAgICAgICAiUmFpc2VkIHdoaWxlIHRyeWluZyB0byBkZXRlcm1p
bmUgaWQgb2YgcGFyYW1ldGVyIGEgYXQgcG9zaXRpb24gMi4iCi0gICAgICAgICAgICAgICAgIlxu
VXBkYXRlIHlvdXIgY29kZSBhcyB0aGlzIHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4gcHl0ZXN0LTQu
MC4iLAotICAgICAgICAgICAgICAgICJSYWlzZWQgd2hpbGUgdHJ5aW5nIHRvIGRldGVybWluZSBp
ZCBvZiBwYXJhbWV0ZXIgYiBhdCBwb3NpdGlvbiAyLiIKLSAgICAgICAgICAgICAgICAiXG5VcGRh
dGUgeW91ciBjb2RlIGFzIHRoaXMgd2lsbCByYWlzZSBhbiBlcnJvciBpbiBweXRlc3QtNC4wLiIs
Ci0gICAgICAgICAgICBdCi0gICAgICAgICkKKyAgICBkZWYgdGVzdF9pZG1ha2VyX3dpdGhfaWRz
X2FuZF9jb25maWcoc2VsZik6CisgICAgICAgICIiInVuaXR0ZXN0IGZvciBleHBlY3RlZCBiZWhh
dmlvciB0byBjcmVhdGUgaWRzIHdpdGggaWRzIGFuZAorICAgICAgICBkaXNhYmxlX3Rlc3RfaWRf
ZXNjYXBpbmdfYW5kX2ZvcmZlaXRfYWxsX3JpZ2h0c190b19jb21tdW5pdHlfc3VwcG9ydAorICAg
ICAgICBvcHRpb24uICgjNTI5NCkKKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5w
eXRob24gaW1wb3J0IGlkbWFrZXIKKworICAgICAgICBjbGFzcyBNb2NrQ29uZmlnKG9iamVjdCk6
CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKKyAgICAgICAgICAgICAg
ICBzZWxmLmNvbmZpZyA9IGNvbmZpZworCisgICAgICAgICAgICBAcHJvcGVydHkKKyAgICAgICAg
ICAgIGRlZiBob29rKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICAg
ICAgICAgIGRlZiBweXRlc3RfbWFrZV9wYXJhbWV0cml6ZV9pZChzZWxmLCAqKmt3KToKKyAgICAg
ICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiBnZXRpbmkoc2VsZiwgbmFtZSk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29uZmlnW25hbWVdCisKKyAgICAgICAgb3B0aW9u
ID0gImRpc2FibGVfdGVzdF9pZF9lc2NhcGluZ19hbmRfZm9yZmVpdF9hbGxfcmlnaHRzX3RvX2Nv
bW11bml0eV9zdXBwb3J0IgorCisgICAgICAgIHZhbHVlcyA9IFsKKyAgICAgICAgICAgIChNb2Nr
Q29uZmlnKHtvcHRpb246IFRydWV9KSwgdSJhw6fDo28iKSwKKyAgICAgICAgICAgIChNb2NrQ29u
ZmlnKHtvcHRpb246IEZhbHNlfSksICJhXFx4ZTdcXHhlM28iKSwKKyAgICAgICAgXQorICAgICAg
ICBmb3IgY29uZmlnLCBleHBlY3RlZCBpbiB2YWx1ZXM6CisgICAgICAgICAgICByZXN1bHQgPSBp
ZG1ha2VyKAorICAgICAgICAgICAgICAgICgiYSIsKSwgW3B5dGVzdC5wYXJhbSgic3RyaW5nIild
LCBpZHM9W3UiYcOnw6NvIl0sIGNvbmZpZz1jb25maWcKKyAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIGFzc2VydCByZXN1bHQgPT0gW2V4cGVjdGVkXQogCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJp
emVfaWRzX2V4Y2VwdGlvbihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgIiIiCkBAIC00NTksMTYg
KzUwNywyOSBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgICAgICAgICAg
ICAgcGFzcwogICAgICAgICAgICAgIiIiCiAgICAgICAgICkKLSAgICAgICAgd2l0aCBweXRlc3Qu
d2FybnMoRGVwcmVjYXRpb25XYXJuaW5nKToKLSAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCkKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICAg
ICAgWwotICAgICAgICAgICAgICAgICI8TW9kdWxlICd0ZXN0X3BhcmFtZXRyaXplX2lkc19leGNl
cHRpb24ucHknPiIsCi0gICAgICAgICAgICAgICAgIiAgPEZ1bmN0aW9uICd0ZXN0X2Zvb1thXSc+
IiwKLSAgICAgICAgICAgICAgICAiICA8RnVuY3Rpb24gJ3Rlc3RfZm9vW2JdJz4iLAorICAgICAg
ICAgICAgICAgICIqdGVzdF9mb286IGVycm9yIHJhaXNlZCB3aGlsZSB0cnlpbmcgdG8gZGV0ZXJt
aW5lIGlkIG9mIHBhcmFtZXRlciAnYXJnJyBhdCBwb3NpdGlvbiAwIiwKKyAgICAgICAgICAgICAg
ICAiKkV4Y2VwdGlvbjogYmFkIGlkcyIsCiAgICAgICAgICAgICBdCiAgICAgICAgICkKIAorICAg
IGRlZiB0ZXN0X3BhcmFtZXRyaXplX2lkc19yZXR1cm5zX25vbl9zdHJpbmcoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIlwKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgZGVmIGlkcyhkKToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImFyZyIsICh7MTogMn0sIHszLCA0fSksIGlkcz1pZHMpCisgICAgICAgICAgICBkZWYgdGVzdChh
cmcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcKKyAgICAgICAgICAgICIiIgorICAgICAg
ICApCisgICAgICAgIGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVzdCgpLnJldCA9PSAwCisKICAgICBk
ZWYgdGVzdF9pZG1ha2VyX3dpdGhfaWRzKHNlbGYpOgogICAgICAgICBmcm9tIF9weXRlc3QucHl0
aG9uIGltcG9ydCBpZG1ha2VyCiAKQEAgLTQ5NSwyMiArNTU2LDggQEAgY2xhc3MgVGVzdE1ldGFm
dW5jKG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbImEwIiwg
ImExIiwgImIwIiwgImMiLCAiYjEiXQogCi0gICAgZGVmIHRlc3RfYWRkY2FsbF9hbmRfcGFyYW1l
dHJpemUoc2VsZik6Ci0KLSAgICAgICAgZGVmIGZ1bmMoeCwgeSk6Ci0gICAgICAgICAgICBwYXNz
Ci0KLSAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCi0gICAgICAgIG1ldGFm
dW5jLmFkZGNhbGwoeyJ4IjogMX0pCi0gICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ5Iiwg
WzIsIDNdKQotICAgICAgICBhc3NlcnQgbGVuKG1ldGFmdW5jLl9jYWxscykgPT0gMgotICAgICAg
ICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmZ1bmNhcmdzID09IHsieCI6IDEsICJ5IjogMn0K
LSAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sxXS5mdW5jYXJncyA9PSB7IngiOiAxLCAi
eSI6IDN9Ci0gICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0uaWQgPT0gIjAtMiIKLSAg
ICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sxXS5pZCA9PSAiMC0zIgotCi0gICAgQHB5dGVz
dC5tYXJrLmlzc3VlNzE0CiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfaW5kaXJlY3Qoc2VsZik6
CisgICAgICAgICIiIiM3MTQiIiIKIAogICAgICAgICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAg
ICAgIHBhc3MKQEAgLTUyNCw4ICs1NzEsOCBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToK
ICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5wYXJhbXMgPT0gZGljdCh4PTEsIHk9
MikKICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sxXS5wYXJhbXMgPT0gZGljdCh4PTEs
IHk9MykKIAotICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAogICAgIGRlZiB0ZXN0X3BhcmFtZXRy
aXplX2luZGlyZWN0X2xpc3Qoc2VsZik6CisgICAgICAgICIiIiM3MTQiIiIKIAogICAgICAgICBk
ZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBhc3MKQEAgLTUzNSw4ICs1ODIsOCBAQCBjbGFz
cyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sw
XS5mdW5jYXJncyA9PSBkaWN0KHk9ImIiKQogICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxz
WzBdLnBhcmFtcyA9PSBkaWN0KHg9ImEiKQogCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlNzE0CiAg
ICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfaW5kaXJlY3RfbGlzdF9hbGwoc2VsZik6CisgICAgICAg
ICIiIiM3MTQiIiIKIAogICAgICAgICBkZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBhc3MK
QEAgLTU0Niw4ICs1OTMsOCBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAgICAgICAg
YXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSB7fQogICAgICAgICBhc3NlcnQg
bWV0YWZ1bmMuX2NhbGxzWzBdLnBhcmFtcyA9PSBkaWN0KHg9ImEiLCB5PSJiIikKIAotICAgIEBw
eXRlc3QubWFyay5pc3N1ZTcxNAogICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2luZGlyZWN0X2xp
c3RfZW1wdHkoc2VsZik6CisgICAgICAgICIiIiM3MTQiIiIKIAogICAgICAgICBkZWYgZnVuYyh4
LCB5KToKICAgICAgICAgICAgIHBhc3MKQEAgLTU1Nyw5ICs2MDQsOSBAQCBjbGFzcyBUZXN0TWV0
YWZ1bmMob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJn
cyA9PSBkaWN0KHg9ImEiLCB5PSJiIikKICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sw
XS5wYXJhbXMgPT0ge30KIAotICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAogICAgIGRlZiB0ZXN0
X3BhcmFtZXRyaXplX2luZGlyZWN0X2xpc3RfZnVuY3Rpb25hbChzZWxmLCB0ZXN0ZGlyKToKICAg
ICAgICAgIiIiCisgICAgICAgICM3MTQKICAgICAgICAgVGVzdCBwYXJhbWV0cml6YXRpb24gd2l0
aCAnaW5kaXJlY3QnIHBhcmFtZXRlciBhcHBsaWVkIG9uCiAgICAgICAgIHBhcnRpY3VsYXIgYXJn
dW1lbnRzLiBBcyB5IGlzIGlzIGRpcmVjdCwgaXRzIHZhbHVlIHNob3VsZAogICAgICAgICBiZSB1
c2VkIGRpcmVjdGx5IHJhdGhlciB0aGFuIGJlaW5nIHBhc3NlZCB0byB0aGUgZml4dHVyZQpAQCAt
NTg2LDIyICs2MzMsMjMgQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbIip0ZXN0X3NpbXBsZSphLWIqIiwgIioxIHBhc3NlZCoiXSkKIAotICAgIEBw
eXRlc3QubWFyay5pc3N1ZTcxNAogICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2luZGlyZWN0X2xp
c3RfZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIiM3MTQiIiIKIAogICAgICAgICBk
ZWYgZnVuYyh4LCB5KToKICAgICAgICAgICAgIHBhc3MKIAogICAgICAgICBtZXRhZnVuYyA9IHNl
bGYuTWV0YWZ1bmMoZnVuYykKLSAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3Ip
OgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKToKICAg
ICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ4LCB5IiwgWygiYSIsICJiIildLCBpbmRp
cmVjdD1bIngiLCAieiJdKQogCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlNzE0CiAgICAgZGVmIHRl
c3RfcGFyYW1ldHJpemVfdXNlc19ub19maXh0dXJlX2Vycm9yX2luZGlyZWN0X2ZhbHNlKHNlbGYs
IHRlc3RkaXIpOgogICAgICAgICAiIiJUaGUgJ3VzZXMgbm8gZml4dHVyZScgZXJyb3IgdGVsbHMg
dGhlIHVzZXIgYXQgY29sbGVjdGlvbiB0aW1lCiAgICAgICAgIHRoYXQgdGhlIHBhcmFtZXRyaXpl
IGRhdGEgdGhleSd2ZSBzZXQgdXAgZG9lc24ndCBjb3JyZXNwb25kIHRvIHRoZQogICAgICAgICBm
aXh0dXJlcyBpbiB0aGVpciB0ZXN0IGZ1bmN0aW9uLCByYXRoZXIgdGhhbiBzaWxlbnRseSBpZ25v
cmluZyB0aGlzCiAgICAgICAgIGFuZCBsZXR0aW5nIHRoZSB0ZXN0IHBvdGVudGlhbGx5IHBhc3Mu
CisKKyAgICAgICAgIzcxNAogICAgICAgICAiIiIKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAogICAgICAgICAgICAgIiIiCkBAIC02MTUsOCArNjYzLDggQEAgY2xhc3MgVGVzdE1ldGFmdW5j
KG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qt
b25seSIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip1c2VzIG5vIGFy
Z3VtZW50ICd5JyoiXSkKIAotICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAogICAgIGRlZiB0ZXN0
X3BhcmFtZXRyaXplX3VzZXNfbm9fZml4dHVyZV9lcnJvcl9pbmRpcmVjdF90cnVlKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICAiIiIjNzE0IiIiCiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
ICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgaW1wb3J0IHB5dGVzdApAQCAtNjM1LDggKzY4
Myw4IEBAIGNsYXNzIFRlc3RNZXRhZnVuYyhvYmplY3QpOgogICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIqdXNlcyBubyBmaXh0dXJlICd5JyoiXSkKIAotICAgIEBweXRlc3QubWFy
ay5pc3N1ZTcxNAogICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2luZGlyZWN0X3VzZXNfbm9fZml4
dHVyZV9lcnJvcl9pbmRpcmVjdF9zdHJpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIiM3
MTQiIiIKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CkBAIC02NTIsOCArNzAwLDggQEAgY2xhc3MgVGVzdE1ldGFm
dW5jKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxl
Y3Qtb25seSIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip1c2VzIG5v
IGZpeHR1cmUgJ3knKiJdKQogCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlNzE0CiAgICAgZGVmIHRl
c3RfcGFyYW1ldHJpemVfaW5kaXJlY3RfdXNlc19ub19maXh0dXJlX2Vycm9yX2luZGlyZWN0X2xp
c3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIiM3MTQiIiIKICAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CkBA
IC02NjksOCArNzE3LDggQEAgY2xhc3MgVGVzdE1ldGFmdW5jKG9iamVjdCk6CiAgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIpCiAgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip1c2VzIG5vIGZpeHR1cmUgJ3knKiJdKQogCi0gICAg
QHB5dGVzdC5tYXJrLmlzc3VlNzE0CiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfYXJndW1lbnRf
bm90X2luX2luZGlyZWN0X2xpc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIiM3MTQiIiIK
ICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CkBAIC03MDMsMjEgKzc1MSw2IEBAIGNsYXNzIFRlc3RNZXRhZnVuYyhv
YmplY3QpOgogICAgICAgICAgICAgWyIqYWxyZWFkeSB0YWtlcyBhbiBhcmd1bWVudCAneScgd2l0
aCBhIGRlZmF1bHQgdmFsdWUiXQogICAgICAgICApCiAKLSAgICBkZWYgdGVzdF9hZGRjYWxsc19h
bmRfcGFyYW1ldHJpemVfaW5kaXJlY3Qoc2VsZik6Ci0KLSAgICAgICAgZGVmIGZ1bmMoeCwgeSk6
Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1
bmMpCi0gICAgICAgIG1ldGFmdW5jLmFkZGNhbGwocGFyYW09IjEyMyIpCi0gICAgICAgIG1ldGFm
dW5jLnBhcmFtZXRyaXplKCJ4IiwgWzFdLCBpbmRpcmVjdD1UcnVlKQotICAgICAgICBtZXRhZnVu
Yy5wYXJhbWV0cml6ZSgieSIsIFsyLCAzXSwgaW5kaXJlY3Q9VHJ1ZSkKLSAgICAgICAgYXNzZXJ0
IGxlbihtZXRhZnVuYy5fY2FsbHMpID09IDIKLSAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxs
c1swXS5mdW5jYXJncyA9PSB7fQotICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmZ1
bmNhcmdzID09IHt9Ci0gICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0ucGFyYW1zID09
IGRpY3QoeD0xLCB5PTIpCi0gICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMV0ucGFyYW1z
ID09IGRpY3QoeD0xLCB5PTMpCi0KICAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9mdW5jdGlvbmFs
KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAg
ICAiIiIKQEAgLTgzNyw3ICs4NzAsNiBAQCBjbGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKICAg
ICAgICAgKQogCiAgICAgZGVmIHRlc3RfZm9ybWF0X2FyZ3Moc2VsZik6Ci0KICAgICAgICAgZGVm
IGZ1bmN0aW9uMSgpOgogICAgICAgICAgICAgcGFzcwogCkBAIC04NjAsMTggKzg5MiwxNiBAQCBj
bGFzcyBUZXN0TWV0YWZ1bmMob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0TWV0YWZ1bmNGdW5jdGlv
bmFsKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9hdHRyaWJ1dGVzKHNlbGYsIHRlc3RkaXIpOgog
ICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAg
ICAgICAjIGFzc3VtZXMgdGhhdCBnZW5lcmF0ZS9wcm92aWRlIHJ1bnMgaW4gdGhlIHNhbWUgcHJv
Y2VzcwotICAgICAgICAgICAgaW1wb3J0IHN5cywgcHl0ZXN0CisgICAgICAgICAgICBpbXBvcnQg
c3lzLCBweXRlc3QsIHNpeAogICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyht
ZXRhZnVuYyk6Ci0gICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChwYXJhbT1tZXRhZnVu
YykKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgnbWV0YWZ1bmMnLCBbbWV0
YWZ1bmNdKQogCiAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKICAgICAgICAgICAgIGRlZiBt
ZXRhZnVuYyhyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5fcHlmdW5j
aXRlbS5fZ2VuaWQgPT0gIjAiCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0K
IAogICAgICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24obWV0YWZ1bmMsIHB5dGVzdGNvbmZpZyk6
CkBAIC04ODQsNjUgKzkxNCwzNCBAQCBjbGFzcyBUZXN0TWV0YWZ1bmNGdW5jdGlvbmFsKG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYsIG1ldGFmdW5jLCBweXRl
c3Rjb25maWcpOgogICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuY29uZmlnID09
IHB5dGVzdGNvbmZpZwogICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMubW9kdWxl
Ll9fbmFtZV9fID09IF9fbmFtZV9fCi0gICAgICAgICAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9u
X2luZm8gPiAoMywgMCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bmJvdW5kID0gVGVzdENs
YXNzLnRlc3RfbWV0aG9kCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB1bmJvdW5kID0gVGVzdENsYXNzLnRlc3RfbWV0aG9kLmltX2Z1bmMKLSAgICAg
ICAgICAgICAgICAgICAgIyBYWFggYWN0dWFsbHkgaGF2ZSBhbiB1bmJvdW5kIHRlc3QgZnVuY3Rp
b24gaGVyZT8KKyAgICAgICAgICAgICAgICAgICAgdW5ib3VuZCA9IHNpeC5nZXRfdW5ib3VuZF9m
dW5jdGlvbihUZXN0Q2xhc3MudGVzdF9tZXRob2QpCiAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBtZXRhZnVuYy5mdW5jdGlvbiA9PSB1bmJvdW5kCiAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBtZXRhZnVuYy5jbHMgPT0gVGVzdENsYXNzCiAgICAgICAgICIiIgogICAgICAgICApCi0gICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICItdiIpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KHAsICItdiIsIFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAg
ICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9MikKIAotICAgIGRlZiB0ZXN0X2Fk
ZGNhbGxfd2l0aF90d29fZnVuY2FyZ3NfZ2VuZXJhdG9ycyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAg
ICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRl
ZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgotICAgICAgICAgICAgICAgIGFzc2Vy
dCAiYXJnMSIgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzCi0gICAgICAgICAgICAgICAgbWV0YWZ1
bmMuYWRkY2FsbChmdW5jYXJncz1kaWN0KGFyZzE9MSwgYXJnMj0yKSkKLSAgICAgICAgIiIiCi0g
ICAgICAgICkKLSAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIi
IgotICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAg
ICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChmdW5jYXJncz1kaWN0KGFyZzE9MSwgYXJnMj0x
KSkKLQotICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Ci0gICAgICAgICAgICAg
ICAgZGVmIHRlc3RfbXlmdW5jKHNlbGYsIGFyZzEsIGFyZzIpOgotICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgYXJnMSA9PSBhcmcyCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIsIHApCi0gICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcygKLSAgICAgICAgICAgIFsiKnRlc3RfbXlmdW5jKjAqUEFTUyoiLCAiKnRl
c3RfbXlmdW5jKjEqRkFJTCoiLCAiKjEgZmFpbGVkLCAxIHBhc3NlZCoiXQotICAgICAgICApCi0K
ICAgICBkZWYgdGVzdF90d29fZnVuY3Rpb25zKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBwID0g
dGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBkZWYgcHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAgICAgICAgICAgICBtZXRhZnVuYy5h
ZGRjYWxsKHBhcmFtPTEwKQotICAgICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwocGFyYW09
MjApCi0KLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQotICAgICAgICAgICAgZGVmIGFyZzEocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgn
YXJnMScsIFsxMCwgMjBdLCBpZHM9WycwJywgJzEnXSkKIAogICAgICAgICAgICAgZGVmIHRlc3Rf
ZnVuYzEoYXJnMSk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEgPT0gMTAKKwogICAgICAg
ICAgICAgZGVmIHRlc3RfZnVuYzIoYXJnMSk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEg
aW4gKDEwLCAyMCkKICAgICAgICAgIiIiCiAgICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi12IiwgcCkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi12IiwgcCwgU0hPV19QWVRFU1RfV0FSTklOR1NfQVJHKQogICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIip0ZXN0
X2Z1bmMxKjAqUEFTUyoiLAogICAgICAgICAgICAgICAgICIqdGVzdF9mdW5jMSoxKkZBSUwqIiwK
ICAgICAgICAgICAgICAgICAiKnRlc3RfZnVuYzIqUEFTUyoiLAorICAgICAgICAgICAgICAgICIq
dGVzdF9mdW5jMipQQVNTKiIsCiAgICAgICAgICAgICAgICAgIioxIGZhaWxlZCwgMyBwYXNzZWQq
IiwKICAgICAgICAgICAgIF0KICAgICAgICAgKQpAQCAtOTYxLDYxICs5NjAsMjUgQEAgY2xhc3Mg
VGVzdE1ldGFmdW5jRnVuY3Rpb25hbChvYmplY3QpOgogICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdChwKQogICAgICAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0xKQog
Ci0gICAgZGVmIHRlc3RfZ2VuZXJhdGVfcGx1Z2luX2FuZF9tb2R1bGUoc2VsZiwgdGVzdGRpcik6
Ci0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCi0gICAgICAg
ICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAgICAgICAgICAg
ICBhc3NlcnQgImFyZzEiIGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lcwotICAgICAgICAgICAgICAg
IG1ldGFmdW5jLmFkZGNhbGwoaWQ9IndvcmxkIiwgcGFyYW09KDIsMTAwKSkKLSAgICAgICAgIiIi
Ci0gICAgICAgICkKLSAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAg
ICIiIgotICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0g
ICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChwYXJhbT0oMSwxKSwgaWQ9ImhlbGxvIikK
LQotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
Ci0gICAgICAgICAgICBkZWYgYXJnMShyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4g
cmVxdWVzdC5wYXJhbVswXQotICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAgICAgICAg
ICBkZWYgYXJnMihyZXF1ZXN0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJh
bVsxXQotCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAg
ICAgICBkZWYgdGVzdF9teWZ1bmMoc2VsZiwgYXJnMSwgYXJnMik6Ci0gICAgICAgICAgICAgICAg
ICAgIGFzc2VydCBhcmcxID09IGFyZzIKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IiwgcCkKLSAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICIqdGVzdF9t
eWZ1bmMqaGVsbG8qUEFTUyoiLAotICAgICAgICAgICAgICAgICIqdGVzdF9teWZ1bmMqd29ybGQq
RkFJTCoiLAotICAgICAgICAgICAgICAgICIqMSBmYWlsZWQsIDEgcGFzc2VkKiIsCi0gICAgICAg
ICAgICBdCi0gICAgICAgICkKLQogICAgIGRlZiB0ZXN0X2dlbmVyYXRlX3Rlc3RzX2luX2NsYXNz
KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAg
ICAgICAgIiIiCiAgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKICAgICAgICAg
ICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKHNlbGYsIG1ldGFmdW5jKToKLSAgICAg
ICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChmdW5jYXJncz17J2hlbGxvJzogJ3dvcmxk
J30sIGlkPSJoZWxsbyIpCisgICAgICAgICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXpl
KCdoZWxsbycsIFsnd29ybGQnXSwgaWRzPVsnaGVsbG93J10pCiAKICAgICAgICAgICAgICAgICBk
ZWYgdGVzdF9teWZ1bmMoc2VsZiwgaGVsbG8pOgogICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
aGVsbG8gPT0gIndvcmxkIgogICAgICAgICAiIiIKICAgICAgICAgKQotICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCBwKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLXYiLCBwLCBTSE9XX1BZVEVTVF9XQVJOSU5HU19BUkcpCiAgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip0ZXN0X215ZnVuYypoZWxsbypQQVNTKiIsICIqMSBw
YXNzZWQqIl0pCiAKICAgICBkZWYgdGVzdF90d29fZnVuY3Rpb25zX25vdF9zYW1lX2luc3RhbmNl
KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAg
ICAgICAgIiIiCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5j
KToKLSAgICAgICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHsnYXJnMSc6IDEwfSkKLSAgICAg
ICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHsnYXJnMSc6IDIwfSkKKyAgICAgICAgICAgICAg
ICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgnYXJnMScsIFsxMCwgMjBdLCBpZHM9WyIwIiwgIjEiXSkK
IAogICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CiAgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYyhzZWxmLCBhcmcxKToKQEAgLTEwMjMsNyArOTg2LDcgQEAgY2xhc3MgVGVz
dE1ldGFmdW5jRnVuY3Rpb25hbChvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLngg
PSAxCiAgICAgICAgICIiIgogICAgICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItdiIsIHApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIs
IHAsIFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKAogICAgICAgICAgICAgWyIqdGVzdF9mdW5jKjAqUEFTUyoiLCAiKnRlc3RfZnVu
YyoxKlBBU1MqIiwgIioyIHBhc3MqIl0KICAgICAgICAgKQpAQCAtMTAzMiw3ICs5OTUsNyBAQCBj
bGFzcyBUZXN0TWV0YWZ1bmNGdW5jdGlvbmFsKG9iamVjdCk6CiAgICAgICAgIHAgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGRlZiBweXRlc3RfZ2Vu
ZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgotICAgICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwo
eydhcmcxJzogMX0pCisgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoJ2FyZzEn
LCBbMV0pCiAKICAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgogICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmLCBhcmcxKToKQEAgLTEwNDEsNyArMTAwNCw3IEBA
IGNsYXNzIFRlc3RNZXRhZnVuY0Z1bmN0aW9uYWwob2JqZWN0KToKICAgICAgICAgICAgICAgICAg
ICAgc2VsZi52YWwgPSAxCiAgICAgICAgICAgICAiIiIKICAgICAgICAgKQotICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdChwLCBTSE9XX1BZVEVTVF9XQVJOSU5HU19BUkcpCiAgICAgICAgIHJlc3VsdC5hc3NlcnRf
b3V0Y29tZXMocGFzc2VkPTEpCiAKICAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9mdW5jdGlvbmFs
MihzZWxmLCB0ZXN0ZGlyKToKQEAgLTEyMTYsNyArMTE3OSw5IEBAIGNsYXNzIFRlc3RNZXRhZnVu
Y0Z1bmN0aW9uYWwob2JqZWN0KToKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKLSAgICAg
ICAgICAgIFsiKmlkcyBtdXN0IGJlIGxpc3Qgb2Ygc3RyaW5ncywgZm91bmQ6IDIgKHR5cGU6IGlu
dCkqIl0KKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiKkluIHRlc3RfaWRzX251bWJl
cnM6IGlkcyBtdXN0IGJlIGxpc3Qgb2Ygc3RyaW5ncywgZm91bmQ6IDIgKHR5cGU6IConaW50Jz4p
KiIKKyAgICAgICAgICAgIF0KICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVf
d2l0aF9pZGVudGljYWxfaWRzX2dldF91bmlxdWVfbmFtZXMoc2VsZiwgdGVzdGRpcik6CkBAIC0x
MzAxLDE5ICsxMjY2LDE5IEBAIGNsYXNzIFRlc3RNZXRhZnVuY0Z1bmN0aW9uYWwob2JqZWN0KToK
ICAgICAgICAgc3ViMSA9IHRlc3RkaXIubWtweWRpcigic3ViMSIpCiAgICAgICAgIHN1YjIgPSB0
ZXN0ZGlyLm1rcHlkaXIoInN1YjIiKQogICAgICAgICBzdWIxLmpvaW4oImNvbmZ0ZXN0LnB5Iiku
d3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRl
eHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgZGVm
IHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydCBtZXRhZnVuYy5mdW5jdGlvbi5fX25hbWVfXyA9PSAidGVzdF8xIgogICAgICAgICAgICAg
ICAgICIiIgotICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLmZ1bmN0aW9uLl9fbmFtZV9fID09ICJ0
ZXN0XzEiCi0gICAgICAgICIiIgogICAgICAgICAgICAgKQogICAgICAgICApCiAgICAgICAgIHN1
YjIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUu
U291cmNlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgICAgICIi
IlwKKyAgICAgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLmZ1bmN0aW9uLl9fbmFtZV9fID09
ICJ0ZXN0XzIiCiAgICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBkZWYgcHl0ZXN0X2dl
bmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMu
ZnVuY3Rpb24uX19uYW1lX18gPT0gInRlc3RfMiIKLSAgICAgICAgIiIiCiAgICAgICAgICAgICAp
CiAgICAgICAgICkKICAgICAgICAgc3ViMS5qb2luKCJ0ZXN0X2luX3N1YjEucHkiKS53cml0ZSgi
ZGVmIHRlc3RfMSgpOiBwYXNzIikKQEAgLTEzMzksOSArMTMwNCw5IEBAIGNsYXNzIFRlc3RNZXRh
ZnVuY0Z1bmN0aW9uYWwob2JqZWN0KToKICAgICAgICAgcmVwcmVjID0gdGVzdGRpci5ydW5weXRl
c3QoKQogICAgICAgICByZXByZWMuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD00KQogCi0gICAgQHB5
dGVzdC5tYXJrLmlzc3VlNDYzCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJhdHRyIiwg
WyJwYXJhbWV0cmlzZSIsICJwYXJhbWV0ZXJpemUiLCAicGFyYW1ldGVyaXNlIl0pCiAgICAgZGVm
IHRlc3RfcGFyYW1ldHJpemVfbWlzc3BlbGxpbmcoc2VsZiwgdGVzdGRpciwgYXR0cik6CisgICAg
ICAgICIiIiM0NjMiIiIKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAg
IiIiCiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CkBAIC0xMzUzLDEzICsxMzE4LDEzIEBAIGNs
YXNzIFRlc3RNZXRhZnVuY0Z1bmN0aW9uYWwob2JqZWN0KToKICAgICAgICAgICAgICAgICBhdHRy
CiAgICAgICAgICAgICApCiAgICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKCItLWNvbGxlY3Rvbmx5IikKLSAgICAgICAgZmFpbHVyZXMgPSByZXByZWMuZ2V0ZmFp
bHVyZXMoKQotICAgICAgICBhc3NlcnQgbGVuKGZhaWx1cmVzKSA9PSAxCi0gICAgICAgIGV4cGVj
dGVkZXJyb3IgPSAiTWFya2VyRXJyb3I6IHRlc3RfZm9vIGhhcyAne30nLCBzcGVsbGluZyBzaG91
bGQgYmUgJ3BhcmFtZXRyaXplJyIuZm9ybWF0KAotICAgICAgICAgICAgYXR0cgorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0b25seSIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAi
dGVzdF9mb28gaGFzICd7fScgbWFyaywgc3BlbGxpbmcgc2hvdWxkIGJlICdwYXJhbWV0cml6ZSci
LmZvcm1hdChhdHRyKSwKKyAgICAgICAgICAgICAgICAiKjEgZXJyb3IgaW4qIiwKKyAgICAgICAg
ICAgIF0KICAgICAgICAgKQotICAgICAgICBhc3NlcnQgZXhwZWN0ZWRlcnJvciBpbiBmYWlsdXJl
c1swXS5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQogCiAKIGNsYXNzIFRlc3RNZXRhZnVuY0Z1
bmN0aW9uYWxBdXRvKG9iamVjdCk6CkBAIC0xNDU2LDYgKzE0MjEsMzkgQEAgY2xhc3MgVGVzdE1l
dGFmdW5jRnVuY3Rpb25hbEF1dG8ob2JqZWN0KToKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDMgcGFz
c2VkICoiXSkKIAorICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX3NvbWVfYXJndW1lbnRzX2F1dG9f
c2NvcGUoc2VsZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICAiIiJJbnRlZ3JhdGlv
biB0ZXN0IGZvciAoIzM5NDEpIiIiCisgICAgICAgIGNsYXNzX2ZpeF9zZXR1cCA9IFtdCisgICAg
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lzLCAiY2xhc3NfZml4X3NldHVwIiwgY2xhc3NfZml4
X3NldHVwLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBmdW5jX2ZpeF9zZXR1cCA9IFtdCisgICAg
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lzLCAiZnVuY19maXhfc2V0dXAiLCBmdW5jX2ZpeF9z
ZXR1cCwgcmFpc2luZz1GYWxzZSkKKworICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAg
ICAgICAgICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGltcG9y
dCBzeXMKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdjbGFzcycsIGF1dG91
c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBjbGFzc19maXgocmVxdWVzdCk6CisgICAgICAgICAg
ICAgICAgc3lzLmNsYXNzX2ZpeF9zZXR1cC5hcHBlbmQocmVxdWVzdC5wYXJhbSkKKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBmdW5j
X2ZpeCgpOgorICAgICAgICAgICAgICAgIHN5cy5mdW5jX2ZpeF9zZXR1cC5hcHBlbmQoVHJ1ZSkK
KworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjbGFzc19maXgnLCBbMTAs
IDIwXSwgaW5kaXJlY3Q9VHJ1ZSkKKyAgICAgICAgICAgIGNsYXNzIFRlc3Q6CisgICAgICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICAgICAgZGVmIHRlc3RfYmFyKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdF9pbnByb2Nlc3MoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyIqIDQgcGFzc2VkIGluICoiXSkKKyAgICAgICAgYXNzZXJ0IGZ1bmNfZml4X3NldHVwID09IFtU
cnVlXSAqIDQKKyAgICAgICAgYXNzZXJ0IGNsYXNzX2ZpeF9zZXR1cCA9PSBbMTAsIDIwXQorCiAg
ICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfaXNzdWU2MzQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgpAQCAtMTQ5MSw5ICsxNDg5LDgg
QEAgY2xhc3MgVGVzdE1ldGFmdW5jRnVuY3Rpb25hbEF1dG8ob2JqZWN0KToKICAgICAgICAgYXNz
ZXJ0IG91dHB1dC5jb3VudCgicHJlcGFyaW5nIGZvby0zIikgPT0gMQogCiAKLUBweXRlc3QubWFy
ay5maWx0ZXJ3YXJuaW5ncygiaWdub3JlOkFwcGx5aW5nIG1hcmtzIGRpcmVjdGx5IHRvIHBhcmFt
ZXRlcnMiKQotQHB5dGVzdC5tYXJrLmlzc3VlMzA4CiBjbGFzcyBUZXN0TWFya2Vyc1dpdGhQYXJh
bWV0cml6YXRpb24ob2JqZWN0KToKKyAgICAiIiIjMzA4IiIiCiAKICAgICBkZWYgdGVzdF9zaW1w
bGVfbWFyayhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcyA9ICIiIgpAQCAtMTUwMiw3ICsxNDk5
LDcgQEAgY2xhc3MgVGVzdE1hcmtlcnNXaXRoUGFyYW1ldHJpemF0aW9uKG9iamVjdCk6CiAgICAg
ICAgICAgICBAcHl0ZXN0Lm1hcmsuZm9vCiAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsKICAgICAgICAgICAgICAgICAoMSwgMiksCi0gICAg
ICAgICAgICAgICAgcHl0ZXN0Lm1hcmsuYmFyKCgxLCAzKSksCisgICAgICAgICAgICAgICAgcHl0
ZXN0LnBhcmFtKDEsIDMsIG1hcmtzPXB5dGVzdC5tYXJrLmJhciksCiAgICAgICAgICAgICAgICAg
KDIsIDMpLAogICAgICAgICAgICAgXSkKICAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChu
LCBleHBlY3RlZCk6CkBAIC0xNTIyLDE0ICsxNTE5LDE0IEBAIGNsYXNzIFRlc3RNYXJrZXJzV2l0
aFBhcmFtZXRyaXphdGlvbihvYmplY3QpOgogCiAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsKICAgICAgICAgICAgICAgICAoMSwgMiksCi0g
ICAgICAgICAgICAgICAgcHl0ZXN0Lm1hcmsuZm9vKCgyLCAzKSksCisgICAgICAgICAgICAgICAg
cHl0ZXN0LnBhcmFtKDIsIDMsIG1hcmtzPXB5dGVzdC5tYXJrLmZvbyksCiAgICAgICAgICAgICAg
ICAgKDMsIDQpLAogICAgICAgICAgICAgXSkKICAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVu
dChuLCBleHBlY3RlZCk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVk
CiAgICAgICAgICIiIgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKLSAgICAgICAgcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCItbSIsICJmb28iKQorICAgICAgICByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oIi1tIiwgImZvbyIsIFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICAg
ICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsID0gcmVjLmxpc3RvdXRjb21lcygpCiAgICAgICAgIGFz
c2VydCBsZW4ocGFzc2VkKSA9PSAxCiAgICAgICAgIGFzc2VydCBsZW4oc2tpcHBlZCkgPT0gMApA
QCAtMTU2MiwxNCArMTU1OSwxNCBAQCBjbGFzcyBUZXN0TWFya2Vyc1dpdGhQYXJhbWV0cml6YXRp
b24ob2JqZWN0KToKIAogICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgibiIs
ICJleHBlY3RlZCIpLCBbCiAgICAgICAgICAgICAgICAgKDEsIDIpLAotICAgICAgICAgICAgICAg
IHB5dGVzdC5tYXJrLnhmYWlsKCgxLCAzKSksCisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFt
KDEsIDMsIG1hcmtzPXB5dGVzdC5tYXJrLnhmYWlsKSwKICAgICAgICAgICAgICAgICAoMiwgMyks
CiAgICAgICAgICAgICBdKQogICAgICAgICAgICAgZGVmIHRlc3RfaW5jcmVtZW50KG4sIGV4cGVj
dGVkKToKICAgICAgICAgICAgICAgICBhc3NlcnQgbiArIDEgPT0gZXhwZWN0ZWQKICAgICAgICAg
IiIiCiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzKQotICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oU0hP
V19QWVRFU1RfV0FSTklOR1NfQVJHKQogICAgICAgICAjIHhmYWlsIGlzIHNraXA/PwogICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9Miwgc2tpcHBlZD0xKQogCkBAIC0xNTc5LDE0
ICsxNTc2LDE0IEBAIGNsYXNzIFRlc3RNYXJrZXJzV2l0aFBhcmFtZXRyaXphdGlvbihvYmplY3Qp
OgogCiAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm4iLCBbCiAgICAgICAg
ICAgICAgICAgMiwKLSAgICAgICAgICAgICAgICBweXRlc3QubWFyay54ZmFpbCgzKSwKKyAgICAg
ICAgICAgICAgICBweXRlc3QucGFyYW0oMywgbWFya3M9cHl0ZXN0Lm1hcmsueGZhaWwpLAogICAg
ICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICBdKQogICAgICAgICAgICAgZGVmIHRlc3RfaXNF
dmVuKG4pOgogICAgICAgICAgICAgICAgIGFzc2VydCBuICUgMiA9PSAwCiAgICAgICAgICIiIgog
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKFNIT1dfUFlU
RVNUX1dBUk5JTkdTX0FSRykKICAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIs
IHNraXBwZWQ9MSkKIAogICAgIGRlZiB0ZXN0X3hmYWlsX3dpdGhfYXJnKHNlbGYsIHRlc3RkaXIp
OgpAQCAtMTU5NSwxNCArMTU5MiwxNCBAQCBjbGFzcyBUZXN0TWFya2Vyc1dpdGhQYXJhbWV0cml6
YXRpb24ob2JqZWN0KToKIAogICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgi
biIsICJleHBlY3RlZCIpLCBbCiAgICAgICAgICAgICAgICAgKDEsIDIpLAotICAgICAgICAgICAg
ICAgIHB5dGVzdC5tYXJrLnhmYWlsKCJUcnVlIikoKDEsIDMpKSwKKyAgICAgICAgICAgICAgICBw
eXRlc3QucGFyYW0oMSwgMywgbWFya3M9cHl0ZXN0Lm1hcmsueGZhaWwoIlRydWUiKSksCiAgICAg
ICAgICAgICAgICAgKDIsIDMpLAogICAgICAgICAgICAgXSkKICAgICAgICAgICAgIGRlZiB0ZXN0
X2luY3JlbWVudChuLCBleHBlY3RlZCk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09
IGV4cGVjdGVkCiAgICAgICAgICIiIgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKLSAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjID0gdGVz
dGRpci5pbmxpbmVfcnVuKFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICAgICAgcmVwcmVj
LmFzc2VydG91dGNvbWUocGFzc2VkPTIsIHNraXBwZWQ9MSkKIAogICAgIGRlZiB0ZXN0X3hmYWls
X3dpdGhfa3dhcmcoc2VsZiwgdGVzdGRpcik6CkBAIC0xNjExLDE0ICsxNjA4LDE0IEBAIGNsYXNz
IFRlc3RNYXJrZXJzV2l0aFBhcmFtZXRyaXphdGlvbihvYmplY3QpOgogCiAgICAgICAgICAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsKICAgICAgICAgICAg
ICAgICAoMSwgMiksCi0gICAgICAgICAgICAgICAgcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSJz
b21lIGJ1ZyIpKCgxLCAzKSksCisgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDEsIDMsIG1h
cmtzPXB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0ic29tZSBidWciKSksCiAgICAgICAgICAgICAg
ICAgKDIsIDMpLAogICAgICAgICAgICAgXSkKICAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVu
dChuLCBleHBlY3RlZCk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVk
CiAgICAgICAgICIiIgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKLSAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTIsIHNraXBwZWQ9MSkKIAogICAgIGRlZiB0ZXN0X3hmYWlsX3dpdGhfYXJn
X2FuZF9rd2FyZyhzZWxmLCB0ZXN0ZGlyKToKQEAgLTE2MjcsMTQgKzE2MjQsMTQgQEAgY2xhc3Mg
VGVzdE1hcmtlcnNXaXRoUGFyYW1ldHJpemF0aW9uKG9iamVjdCk6CiAKICAgICAgICAgICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgoIm4iLCAiZXhwZWN0ZWQiKSwgWwogICAgICAgICAgICAg
ICAgICgxLCAyKSwKLSAgICAgICAgICAgICAgICBweXRlc3QubWFyay54ZmFpbCgiVHJ1ZSIsIHJl
YXNvbj0ic29tZSBidWciKSgoMSwgMykpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgx
LCAzLCBtYXJrcz1weXRlc3QubWFyay54ZmFpbCgiVHJ1ZSIsIHJlYXNvbj0ic29tZSBidWciKSks
CiAgICAgICAgICAgICAgICAgKDIsIDMpLAogICAgICAgICAgICAgXSkKICAgICAgICAgICAgIGRl
ZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IG4g
KyAxID09IGV4cGVjdGVkCiAgICAgICAgICIiIgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
cykKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIsIHNraXBwZWQ9MSkKIAogICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgic3RyaWN0IiwgW1RydWUsIEZhbHNlXSkKQEAgLTE2NDIsOSArMTYz
OSwxMSBAQCBjbGFzcyBUZXN0TWFya2Vyc1dpdGhQYXJhbWV0cml6YXRpb24ob2JqZWN0KToKICAg
ICAgICAgcyA9ICIiIgogICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogCisgICAgICAgICAgICBt
ID0gcHl0ZXN0Lm1hcmsueGZhaWwoInN5cy52ZXJzaW9uX2luZm8gPiAoMCwgMCwgMCkiLCByZWFz
b249InNvbWUgYnVnIiwgc3RyaWN0PXtzdHJpY3R9KQorCiAgICAgICAgICAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsKICAgICAgICAgICAgICAgICAoMSwg
MiksCi0gICAgICAgICAgICAgICAgcHl0ZXN0Lm1hcmsueGZhaWwoInN5cy52ZXJzaW9uX2luZm8g
PiAoMCwgMCwgMCkiLCByZWFzb249InNvbWUgYnVnIiwgc3RyaWN0PXtzdHJpY3R9KSgoMiwgMykp
LAorICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgyLCAzLCBtYXJrcz1tKSwKICAgICAgICAg
ICAgICAgICAoMywgNCksCiAgICAgICAgICAgICBdKQogICAgICAgICAgICAgZGVmIHRlc3RfaW5j
cmVtZW50KG4sIGV4cGVjdGVkKToKQEAgLTE2NTMsNyArMTY1Miw3IEBAIGNsYXNzIFRlc3RNYXJr
ZXJzV2l0aFBhcmFtZXRyaXphdGlvbihvYmplY3QpOgogICAgICAgICAgICAgc3RyaWN0PXN0cmlj
dAogICAgICAgICApCiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzKQotICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oU0hPV19QWVRFU1RfV0FSTklOR1NfQVJHKQogICAgICAgICBwYXNzZWQsIGZhaWxlZCA9
ICgyLCAxKSBpZiBzdHJpY3QgZWxzZSAoMywgMCkKICAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPXBhc3NlZCwgZmFpbGVkPWZhaWxlZCkKIApAQCAtMTY2OCw3ICsxNjY3LDcgQEAg
Y2xhc3MgVGVzdE1hcmtlcnNXaXRoUGFyYW1ldHJpemF0aW9uKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgZmFpbGluZ1Rlc3REYXRhID0gWygxLCAzKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKDIsIDIpXQogCi0gICAgICAgICAgICAgICAgdGVzdERhdGEgPSBwYXNzaW5n
VGVzdERhdGEgKyBbcHl0ZXN0Lm1hcmsueGZhaWwoZCkKKyAgICAgICAgICAgICAgICB0ZXN0RGF0
YSA9IHBhc3NpbmdUZXN0RGF0YSArIFtweXRlc3QucGFyYW0oKmQsIG1hcmtzPXB5dGVzdC5tYXJr
LnhmYWlsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBkIGluIGZhaWxp
bmdUZXN0RGF0YV0KICAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgoIm4iLCAi
ZXhwZWN0ZWQiKSwgdGVzdERhdGEpCiAKQEAgLTE2NzcsMTEgKzE2NzYsMTEgQEAgY2xhc3MgVGVz
dE1hcmtlcnNXaXRoUGFyYW1ldHJpemF0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0IG4gKyAxID09IGV4cGVjdGVkCiAgICAgICAgICIiIgogICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUocykKLSAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAg
ICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIsIHNraXBwZWQ9MikKIAotICAgIEBw
eXRlc3QubWFyay5pc3N1ZTI5MAogICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX0lEX2dlbmVyYXRp
b25fc3RyaW5nX2ludF93b3JrcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiIzI5MCIiIgog
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKQEAgLTE3NjYsMyArMTc2NSwxNiBAQCBjbGFzcyBUZXN0TWFya2Vyc1dp
dGhQYXJhbWV0cml6YXRpb24ob2JqZWN0KToKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKAogICAgICAgICAgICAgWyIqdGVzdF9mdW5jX2EqMCpQQVNTKiIsICIqdGVzdF9mdW5j
X2EqMipQQVNTKiIsICIqdGVzdF9mdW5jX2IqMTAqUEFTUyoiXQogICAgICAgICApCisKKyAgICBk
ZWYgdGVzdF9wYXJhbWV0cml6ZV9wb3NpdGlvbmFsX2FyZ3Moc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImEiLCBb
MV0sIEZhbHNlKQorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKGEpOgorICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQorICAgICAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0xKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vcmFpc2VzLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9weXRob24vcmFpc2VzLnB5CmluZGV4IDY0MTk5YzNiNmY1ZmQyMDliMDY4OGFk
NTNhMDQ3ZDhiNzhjYzdjMWUuLmZhMjVkOWY3M2VlN2ZmOTEyOWI5ZTQ0Nzc4YWU3OTI2M2U5ZjY2
N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3JhaXNlcy5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9yYWlzZXMucHkKQEAgLTEsMzAgKzEsNDMgQEAK
LWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgRmFpbGVkCi1pbXBvcnQgcHl0ZXN0CisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IHN5cwogCitpbXBvcnQgc2l4CiAKLWNsYXNzIFRl
c3RSYWlzZXMob2JqZWN0KToKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1w
b3J0IGR1bW15X2NvbnRleHRfbWFuYWdlcgorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBG
YWlsZWQKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3REZXByZWNhdGlv
bldhcm5pbmcKIAorCitjbGFzcyBUZXN0UmFpc2VzKG9iamVjdCk6CiAgICAgZGVmIHRlc3RfcmFp
c2VzKHNlbGYpOgogICAgICAgICBzb3VyY2UgPSAiaW50KCdxd2UnKSIKLSAgICAgICAgZXhjaW5m
byA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgc291cmNlKQorICAgICAgICB3aXRoIHB5dGVz
dC53YXJucyhQeXRlc3REZXByZWNhdGlvbldhcm5pbmcpOgorICAgICAgICAgICAgZXhjaW5mbyA9
IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgc291cmNlKQogICAgICAgICBjb2RlID0gZXhjaW5m
by50cmFjZWJhY2tbLTFdLmZyYW1lLmNvZGUKICAgICAgICAgcyA9IHN0cihjb2RlLmZ1bGxzb3Vy
Y2UpCiAgICAgICAgIGFzc2VydCBzID09IHNvdXJjZQogCiAgICAgZGVmIHRlc3RfcmFpc2VzX2V4
ZWMoc2VsZik6Ci0gICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgImEseCA9IFtdIikK
KyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoUHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nKSBhcyB3
YXJuaW5mbzoKKyAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgImEseCA9IFtd
IikKKyAgICAgICAgYXNzZXJ0IHdhcm5pbmZvWzBdLmZpbGVuYW1lID09IF9fZmlsZV9fCisKKyAg
ICBkZWYgdGVzdF9yYWlzZXNfZXhlY19jb3JyZWN0X2ZpbGVuYW1lKHNlbGYpOgorICAgICAgICB3
aXRoIHB5dGVzdC53YXJucyhQeXRlc3REZXByZWNhdGlvbldhcm5pbmcpOgorICAgICAgICAgICAg
ZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgJ2ludCgicyIpJykKKyAgICAgICAg
ICAgIGFzc2VydCBfX2ZpbGVfXyBpbiBleGNpbmZvLnRyYWNlYmFja1stMV0ucGF0aAogCiAgICAg
ZGVmIHRlc3RfcmFpc2VzX3N5bnRheF9lcnJvcihzZWxmKToKLSAgICAgICAgcHl0ZXN0LnJhaXNl
cyhTeW50YXhFcnJvciwgInF3ZSBxd2UgcXdlIikKKyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMo
UHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nKSBhcyB3YXJuaW5mbzoKKyAgICAgICAgICAgIHB5dGVz
dC5yYWlzZXMoU3ludGF4RXJyb3IsICJxd2UgcXdlIHF3ZSIpCisgICAgICAgIGFzc2VydCB3YXJu
aW5mb1swXS5maWxlbmFtZSA9PSBfX2ZpbGVfXwogCiAgICAgZGVmIHRlc3RfcmFpc2VzX2Z1bmN0
aW9uKHNlbGYpOgogICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGludCwgImhlbGxv
IikKIAogICAgIGRlZiB0ZXN0X3JhaXNlc19jYWxsYWJsZV9ub19leGNlcHRpb24oc2VsZik6Ci0K
ICAgICAgICAgY2xhc3MgQShvYmplY3QpOgotCiAgICAgICAgICAgICBkZWYgX19jYWxsX18oc2Vs
Zik6CiAgICAgICAgICAgICAgICAgcGFzcwogCkBAIC0zMywxOCArNDYsMzkgQEAgY2xhc3MgVGVz
dFJhaXNlcyhvYmplY3QpOgogICAgICAgICBleGNlcHQgcHl0ZXN0LnJhaXNlcy5FeGNlcHRpb246
CiAgICAgICAgICAgICBwYXNzCiAKKyAgICBkZWYgdGVzdF9yYWlzZXNfZmFsc2V5X3R5cGVfZXJy
b3Ioc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAg
ICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yLCBtYXRjaD0wKToKKyAgICAg
ICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigib2hhaSIpCisKKyAgICBkZWYgdGVzdF9y
YWlzZXNfcmVwcl9pbmZsaWdodChzZWxmKToKKyAgICAgICAgIiIiRW5zdXJlIHJlcHIoKSBvbiBh
biBleGNlcHRpb24gaW5mbyBpbnNpZGUgYSBweXRlc3QucmFpc2VzIHdpdGggYmxvY2sgd29ya3Mg
KCM0Mzg2KSIiIgorCisgICAgICAgIGNsYXNzIEUoRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHBh
c3MKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoRSkgYXMgZXhjaW5mbzoKKyAgICAgICAg
ICAgICMgdGhpcyB0ZXN0IHByaW50cyB0aGUgaW5mbGlnaHQgdW5pbml0aWFsaXplZCBvYmplY3QK
KyAgICAgICAgICAgICMgdXNpbmcgcmVwciBhbmQgc3RyIGFzIHdlbGwgYXMgcHByaW50IHRvIGRl
bW9uc3RyYXRlCisgICAgICAgICAgICAjIGl0IHdvcmtzCisgICAgICAgICAgICBwcmludChzdHIo
ZXhjaW5mbykpCisgICAgICAgICAgICBwcmludChyZXByKGV4Y2luZm8pKQorICAgICAgICAgICAg
aW1wb3J0IHBwcmludAorCisgICAgICAgICAgICBwcHJpbnQucHByaW50KGV4Y2luZm8pCisgICAg
ICAgICAgICByYWlzZSBFKCkKKwogICAgIGRlZiB0ZXN0X3JhaXNlc19hc19jb250ZXh0bWFuYWdl
cihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50
Ci0gICAgICAgICAgICBpbXBvcnQgcHksIHB5dGVzdAorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAogICAgICAgICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKIAogICAgICAgICAgICAgZGVmIHRl
c3Rfc2ltcGxlKCk6CiAgICAgICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFplcm9EaXZp
c2lvbkVycm9yKSBhcyBleGNpbmZvOgogICAgICAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShleGNpbmZvLCBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8pCiAgICAgICAgICAgICAg
ICAgICAgIDEvMAotICAgICAgICAgICAgICAgIHByaW50IChleGNpbmZvKQorICAgICAgICAgICAg
ICAgIHByaW50KGV4Y2luZm8pCiAgICAgICAgICAgICAgICAgYXNzZXJ0IGV4Y2luZm8udHlwZSA9
PSBaZXJvRGl2aXNpb25FcnJvcgogICAgICAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGV4
Y2luZm8udmFsdWUsIFplcm9EaXZpc2lvbkVycm9yKQogCkBAIC02Miw2ICs5Niw1NCBAQCBjbGFz
cyBUZXN0UmFpc2VzKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCkKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjMgcGFzc2VkKiJdKQog
CisgICAgZGVmIHRlc3RfZG9lc19ub3RfcmFpc2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZnJvbSBjb250
ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgICAgICAgICBAY29udGV4dG1hbmFnZXIKKyAgICAgICAgICAgIGRlZiBkb2VzX25vdF9y
YWlzZSgpOgorICAgICAgICAgICAgICAgIHlpZWxkCisKKyAgICAgICAgICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgnZXhhbXBsZV9pbnB1dCxleHBlY3RhdGlvbicsIFsKKyAgICAgICAgICAg
ICAgICAoMywgZG9lc19ub3RfcmFpc2UoKSksCisgICAgICAgICAgICAgICAgKDIsIGRvZXNfbm90
X3JhaXNlKCkpLAorICAgICAgICAgICAgICAgICgxLCBkb2VzX25vdF9yYWlzZSgpKSwKKyAgICAg
ICAgICAgICAgICAoMCwgcHl0ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcikpLAorICAgICAg
ICAgICAgXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2RpdmlzaW9uKGV4YW1wbGVfaW5wdXQsIGV4
cGVjdGF0aW9uKToKKyAgICAgICAgICAgICAgICAnJydUZXN0IGhvdyBtdWNoIEkga25vdyBkaXZp
c2lvbi4nJycKKyAgICAgICAgICAgICAgICB3aXRoIGV4cGVjdGF0aW9uOgorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgKDYgLyBleGFtcGxlX2lucHV0KSBpcyBub3QgTm9uZQorICAgICAgICAi
IiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIio0IHBhc3NlZCoiXSkKKworICAgIGRl
ZiB0ZXN0X2RvZXNfbm90X3JhaXNlX2RvZXNfcmFpc2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZnJvbSBj
b250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorCisgICAgICAgICAgICBAY29udGV4dG1hbmFnZXIKKyAgICAgICAgICAgIGRlZiBkb2VzX25v
dF9yYWlzZSgpOgorICAgICAgICAgICAgICAgIHlpZWxkCisKKyAgICAgICAgICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgnZXhhbXBsZV9pbnB1dCxleHBlY3RhdGlvbicsIFsKKyAgICAgICAg
ICAgICAgICAoMCwgZG9lc19ub3RfcmFpc2UoKSksCisgICAgICAgICAgICAgICAgKDEsIHB5dGVz
dC5yYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpKSwKKyAgICAgICAgICAgIF0pCisgICAgICAgICAg
ICBkZWYgdGVzdF9kaXZpc2lvbihleGFtcGxlX2lucHV0LCBleHBlY3RhdGlvbik6CisgICAgICAg
ICAgICAgICAgJycnVGVzdCBob3cgbXVjaCBJIGtub3cgZGl2aXNpb24uJycnCisgICAgICAgICAg
ICAgICAgd2l0aCBleHBlY3RhdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ICg2IC8g
ZXhhbXBsZV9pbnB1dCkgaXMgbm90IE5vbmUKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIqMiBmYWlsZWQqIl0pCisKICAgICBkZWYgdGVzdF9ub2NsYXNzKHNlbGYp
OgogICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKToKICAgICAgICAgICAgIHB5
dGVzdC5yYWlzZXMoIndyb25nIiwgbGFtYmRhOiBOb25lKQpAQCAtOTQsOCArMTc2LDkgQEAgY2xh
c3MgVGVzdFJhaXNlcyhvYmplY3QpOgogICAgIGRlZiB0ZXN0X2N1c3RvbV9yYWlzZV9tZXNzYWdl
KHNlbGYpOgogICAgICAgICBtZXNzYWdlID0gIlRFU1RfTUVTU0FHRSIKICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1lc3NhZ2U9bWVzc2Fn
ZSk6Ci0gICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgd2l0aCBweXRlc3Qud2FybnMo
UHl0ZXN0RGVwcmVjYXRpb25XYXJuaW5nKToKKyAgICAgICAgICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoVmFsdWVFcnJvciwgbWVzc2FnZT1tZXNzYWdlKToKKyAgICAgICAgICAgICAgICAgICAg
cGFzcwogICAgICAgICBleGNlcHQgcHl0ZXN0LnJhaXNlcy5FeGNlcHRpb24gYXMgZToKICAgICAg
ICAgICAgIGFzc2VydCBlLm1zZyA9PSBtZXNzYWdlCiAgICAgICAgIGVsc2U6CkBAIC0xMDksNyAr
MTkyLDYgQEAgY2xhc3MgVGVzdFJhaXNlcyhvYmplY3QpOgogICAgICAgICBpbXBvcnQgZ2MKIAog
ICAgICAgICBjbGFzcyBUKG9iamVjdCk6Ci0KICAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxm
KToKICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCiAKQEAgLTEzOSw3ICsyMjEsNyBA
QCBjbGFzcyBUZXN0UmFpc2VzKG9iamVjdCk6CiAgICAgICAgICAgICBpbnQoImFzZGYiKQogCiAg
ICAgICAgIG1zZyA9ICJ3aXRoIGJhc2UgMTYiCi0gICAgICAgIGV4cHIgPSByIlBhdHRlcm4gJ3t9
JyBub3QgZm91bmQgaW4gJ2ludmFsaWQgbGl0ZXJhbCBmb3IgaW50XChcKSB3aXRoIGJhc2UgMTA6
ICdhc2RmJyciLmZvcm1hdCgKKyAgICAgICAgZXhwciA9IHIiUGF0dGVybiAne30nIG5vdCBmb3Vu
ZCBpbiBcImludmFsaWQgbGl0ZXJhbCBmb3IgaW50XChcKSB3aXRoIGJhc2UgMTA6ICdhc2RmJ1wi
Ii5mb3JtYXQoCiAgICAgICAgICAgICBtc2cKICAgICAgICAgKQogICAgICAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIG1hdGNoPWV4cHIpOgpAQCAtMTYwLDcgKzI0Miw2IEBA
IGNsYXNzIFRlc3RSYWlzZXMob2JqZWN0KToKICAgICAgICAgZnJvbSBzaXggaW1wb3J0IGFkZF9t
ZXRhY2xhc3MKIAogICAgICAgICBjbGFzcyBNZXRhKHR5cGUob2JqZWN0KSk6Ci0KICAgICAgICAg
ICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBpdGVtKToKICAgICAgICAgICAgICAgICByZXR1cm4g
MSAvIDAKIApAQCAtMTcyLDYgKzI1Myw3MyBAQCBjbGFzcyBUZXN0UmFpc2VzKG9iamVjdCk6CiAg
ICAgICAgICAgICBwYXNzCiAKICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKAotICAgICAgICAg
ICAgRmFpbGVkLCBtYXRjaD0iRElEIE5PVCBSQUlTRSA8Y2xhc3MgJ3JhaXNlcy5DbGFzc0xvb2tz
SXRlcmFibGVFeGNlcHRpb24nPiIKKyAgICAgICAgICAgIEZhaWxlZCwKKyAgICAgICAgICAgIG1h
dGNoPXIiRElEIE5PVCBSQUlTRSA8Y2xhc3MgJ3JhaXNlcyhcLi4qKSpDbGFzc0xvb2tzSXRlcmFi
bGVFeGNlcHRpb24nPiIsCiAgICAgICAgICk6CiAgICAgICAgICAgICBweXRlc3QucmFpc2VzKENs
YXNzTG9va3NJdGVyYWJsZUV4Y2VwdGlvbiwgbGFtYmRhOiBOb25lKQorCisgICAgZGVmIHRlc3Rf
cmFpc2VzX3dpdGhfcmFpc2luZ19kdW5kZXJfY2xhc3Moc2VsZik6CisgICAgICAgICIiIlRlc3Qg
Y3VycmVudCBiZWhhdmlvciB3aXRoIHJlZ2FyZCB0byBleGNlcHRpb25zIHZpYSBfX2NsYXNzX18g
KCM0Mjg0KS4iIiIKKworICAgICAgICBjbGFzcyBDcmFwcHlDbGFzcyhFeGNlcHRpb24pOgorICAg
ICAgICAgICAgQHByb3BlcnR5CisgICAgICAgICAgICBkZWYgX19jbGFzc19fKHNlbGYpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgInZpYSBfX2NsYXNzX18iCisKKyAgICAgICAgaWYg
c2l4LlBZMjoKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNl
cHRpb24pIGFzIGV4Y2luZm86CisgICAgICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKENy
YXBweUNsYXNzKCkpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBhc3Nl
cnQgIkRJRCBOT1QgUkFJU0UiIGluIGV4Y2luZm8udmFsdWUuYXJnc1swXQorCisgICAgICAgICAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoQ3JhcHB5Q2xhc3MpIGFzIGV4Y2luZm86CisgICAgICAgICAg
ICAgICAgcmFpc2UgQ3JhcHB5Q2xhc3MoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICAgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhDcmFwcHlDbGFzcygpKToKKyAgICAgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgYXNzZXJ0ICJ2aWEgX19jbGFzc19fIiBpbiBleGNpbmZvLnZh
bHVlLmFyZ3NbMF0KKworCitjbGFzcyBUZXN0VW5pY29kZUhhbmRsaW5nOgorICAgICIiIlRlc3Qg
dmFyaW91cyBjb21iaW5hdGlvbnMgb2YgYnl0ZXMgYW5kIHVuaWNvZGUgd2l0aCBweXRlc3QucmFp
c2VzICgjNTQ3OCkKKworICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9w
dWxsLzU0NzkjZGlzY3Vzc2lvbl9yMjk4ODUyNDMzCisgICAgIiIiCisKKyAgICBzdWNjZXNzID0g
ZHVtbXlfY29udGV4dF9tYW5hZ2VyCisgICAgcHkyX29ubHkgPSBweXRlc3QubWFyay5za2lwaWYo
CisgICAgICAgIG5vdCBzaXguUFkyLCByZWFzb249ImJ5dGVzIGluIHJhaXNlcyBvbmx5IHN1cHBv
cnRlZCBpbiBQeXRob24gMiIKKyAgICApCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
CisgICAgICAgICJtZXNzYWdlLCBtYXRjaCwgZXhwZWN0YXRpb24iLAorICAgICAgICBbCisgICAg
ICAgICAgICAodSJcdTI2MDMiLCB1Ilx1MjYwMyIsIHN1Y2Nlc3MoKSksCisgICAgICAgICAgICAo
dSJcdTI2MDMiLCB1Ilx1MjYwM2ZvbyIsIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IpKSwK
KyAgICAgICAgICAgIHB5dGVzdC5wYXJhbShiImhlbGxvIiwgYiJoZWxsbyIsIHN1Y2Nlc3MoKSwg
bWFya3M9cHkyX29ubHkpLAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKAorICAgICAgICAgICAg
ICAgIGIiaGVsbG8iLCBiIndvcmxkIiwgcHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvciksIG1h
cmtzPXB5Ml9vbmx5CisgICAgICAgICAgICApLAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKHUi
aGVsbG8iLCBiImhlbGxvIiwgc3VjY2VzcygpLCBtYXJrcz1weTJfb25seSksCisgICAgICAgICAg
ICBweXRlc3QucGFyYW0oCisgICAgICAgICAgICAgICAgdSJoZWxsbyIsIGIid29ybGQiLCBweXRl
c3QucmFpc2VzKEFzc2VydGlvbkVycm9yKSwgbWFya3M9cHkyX29ubHkKKyAgICAgICAgICAgICks
CisgICAgICAgICAgICBweXRlc3QucGFyYW0oCisgICAgICAgICAgICAgICAgdSLwn5iKIi5lbmNv
ZGUoIlVURi04IiksCisgICAgICAgICAgICAgICAgYiJ3b3JsZCIsCisgICAgICAgICAgICAgICAg
cHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvciksCisgICAgICAgICAgICAgICAgbWFya3M9cHky
X29ubHksCisgICAgICAgICAgICApLAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKAorICAgICAg
ICAgICAgICAgIHUid29ybGQiLAorICAgICAgICAgICAgICAgIHUi8J+YiiIuZW5jb2RlKCJVVEYt
OCIpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IpLAorICAg
ICAgICAgICAgICAgIG1hcmtzPXB5Ml9vbmx5LAorICAgICAgICAgICAgKSwKKyAgICAgICAgXSwK
KyAgICApCisgICAgZGVmIHRlc3RfaGFuZGxpbmcoc2VsZiwgbWVzc2FnZSwgbWF0Y2gsIGV4cGVj
dGF0aW9uKToKKyAgICAgICAgd2l0aCBleHBlY3RhdGlvbjoKKyAgICAgICAgICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIG1hdGNoPW1hdGNoKToKKyAgICAgICAgICAgICAgICBy
YWlzZSBSdW50aW1lRXJyb3IobWVzc2FnZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvcHl0aG9uL3NldHVwX29ubHkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9zZXR1
cF9vbmx5LnB5CmluZGV4IDRhZTI0YjE1YTZkYTkyZDQzNTE4Y2ZiYzc2Y2U0YTQ3MzdjODU2MjIu
LmJhNGNlYjAwZmNlNWJjOTc0OWRmMDU0NDZiMzRhZjQwYjc5ZmJlNTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3NldHVwX29ubHkucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9weXRob24vc2V0dXBfb25seS5weQpAQCAtMSwzICsxLDQgQEAKKyMgLSotIGNvZGlu
ZzogdXRmLTggLSotCiBpbXBvcnQgcHl0ZXN0CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9weXRob24vc2V0dXBfcGxhbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9u
L3NldHVwX3BsYW4ucHkKaW5kZXggMDMyMTkzOWE4YWFjNGJkOTE5ZGE3MjY0YzQzNWQ0MDY0ZDcx
ZDQ1YS4uYWQ2NGU0MmMyOWM3ZTdhM2RjZjQxMmEzOWY0MjBjZmE0NWYxM2ZhMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vc2V0dXBfcGxhbi5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3B5dGhvbi9zZXR1cF9wbGFuLnB5CkBAIC0xLDMgKzEsNCBAQAorIyAtKi0g
Y29kaW5nOiB1dGYtOCAtKi0KIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfYW5kX3Rlc3QodGVzdGRp
cik6CiAgICAgIiIiIFZlcmlmaWVzIHRoYXQgZml4dHVyZXMgYXJlIG5vdCBleGVjdXRlZC4gIiIi
CiAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvcHl0aG9uL3Rlc3RfZGVwcmVjYXRpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9w
eXRob24vdGVzdF9kZXByZWNhdGlvbnMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGIwYzExZjBiMDNiNDU4OTFlMGQ4MTZjOTFhNDZjZjRlYWQxOTBiMWQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRo
b24vdGVzdF9kZXByZWNhdGlvbnMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1p
bXBvcnQgcHl0ZXN0Ci0KLWZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IFB5Q29sbGVjdG9yCi0K
LQotY2xhc3MgUHlDb2xsZWN0b3JNb2NrKFB5Q29sbGVjdG9yKToKLSAgICAiIiJldmlsIGhhY2si
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5jYWxsZWQgPSBGYWxz
ZQotCi0gICAgZGVmIF9tYWtlaXRlbShzZWxmLCAqayk6Ci0gICAgICAgICIiImhhY2sgdG8gZGlz
YWJsZSB0aGUgYWN0dWFsIGJlaGF2aW91ciIiIgotICAgICAgICBzZWxmLmNhbGxlZCA9IFRydWUK
LQotCi1kZWYgdGVzdF9weWNvbGxlY3Rvcl9tYWtlaXRlbV9pc19kZXByZWNhdGVkKCk6Ci0KLSAg
ICBjb2xsZWN0b3IgPSBQeUNvbGxlY3Rvck1vY2soKQotICAgIHdpdGggcHl0ZXN0LmRlcHJlY2F0
ZWRfY2FsbCgpOgotICAgICAgICBjb2xsZWN0b3IubWFrZWl0ZW0oImZvbyIsICJiYXIiKQotICAg
IGFzc2VydCBjb2xsZWN0b3IuY2FsbGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3B5dGhvbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3czYy1p
bXBvcnQubG9nCmluZGV4IGJjMzc5YTU5NjRjOGNjMjk3YWQxMTg4MGQwYWJlNzMwMTY2YzM1OTEu
LjhjZmQ2ZTY1YTcxMjFhNjQ0ODZlZWMwNjBjODRmZGMyNjllZGU1MTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvcHl0aG9uL3czYy1pbXBvcnQubG9nCkBAIC0xNiwxMSArMTYsMTAgQEAgTm9uZQog
TGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9hcHByb3gucHkKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9jb2xsZWN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9weXRob24vZml4dHVyZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ZpeHR1cmVz
LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vaW50ZWdyYXRpb24ucHkKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3B5dGhvbi9tZXRhZnVuYy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0
aG9uL3JhaXNlcy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3NldHVwX29ubHkucHkK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9zZXR1cF9wbGFuLnB5CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9weXRob24vc2hvd19maXh0dXJlc19wZXJfdGVzdC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvcHl0aG9uL3Rlc3RfZGVwcmVjYXRpb25zLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3RfYXJnY29tcGxldGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
YXJnY29tcGxldGUucHkKaW5kZXggYjA0MmRlNWNlNWJlYTQ1NTUxMmE2NDU4ODgwNmRlNDc3NjVl
YjM4Zi4uZGE3NzU4ZThlOWU3NTA4NjU2ZTc2YjUzNmRkMDdhMzhjMTcyZTUwMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2FyZ2NvbXBsZXRlLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF9hcmdjb21wbGV0ZS5weQpAQCAtMSw2ICsxLDExIEBACi1mcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9u
CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMK
KwogaW1wb3J0IHB5dGVzdAogCiAjIHRlc3QgZm9yIF9hcmdjb21wbGV0ZSBidXQgbm90IHNwZWNp
ZmljIGZvciBhbnkgYXBwbGljYXRpb24KQEAgLTExLDcgKzE2LDcgQEAgZGVmIGVxdWFsX3dpdGhf
YmFzaChwcmVmaXgsIGZmYywgZmMsIG91dD1Ob25lKToKICAgICByZXNfYmFzaCA9IHNldChmYyhw
cmVmaXgpKQogICAgIHJldHZhbCA9IHNldChyZXMpID09IHJlc19iYXNoCiAgICAgaWYgb3V0Ogot
ICAgICAgICBvdXQud3JpdGUoImVxdWFsX3dpdGhfYmFzaCAlcyAlc1xuIiAlIChyZXR2YWwsIHJl
cykpCisgICAgICAgIG91dC53cml0ZSgiZXF1YWxfd2l0aF9iYXNoKHt9KSB7fSB7fVxuIi5mb3Jt
YXQocHJlZml4LCByZXR2YWwsIHJlcykpCiAgICAgICAgIGlmIG5vdCByZXR2YWw6CiAgICAgICAg
ICAgICBvdXQud3JpdGUoIiBweXRob24gLSBiYXNoOiAlc1xuIiAlIChzZXQocmVzKSAtIHJlc19i
YXNoKSkKICAgICAgICAgICAgIG91dC53cml0ZSgiIGJhc2ggLSBweXRob246ICVzXG4iICUgKHJl
c19iYXNoIC0gc2V0KHJlcykpKQpAQCAtODYsMTUgKzkxLDIwIEBAIGNsYXNzIEZpbGVzQ29tcGxl
dGVyKG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdEFyZ0NvbXBsZXRlKG9iamVjdCk6Ci0KICAgICBA
cHl0ZXN0Lm1hcmsuc2tpcGlmKCJzeXMucGxhdGZvcm0gaW4gKCd3aW4zMicsICdkYXJ3aW4nKSIp
Ci0gICAgZGVmIHRlc3RfY29tcGFyZV93aXRoX2NvbXBnZW4oc2VsZik6CisgICAgZGVmIHRlc3Rf
Y29tcGFyZV93aXRoX2NvbXBnZW4oc2VsZiwgdG1wZGlyKToKICAgICAgICAgZnJvbSBfcHl0ZXN0
Ll9hcmdjb21wbGV0ZSBpbXBvcnQgRmFzdEZpbGVzQ29tcGxldGVyCiAKICAgICAgICAgZmZjID0g
RmFzdEZpbGVzQ29tcGxldGVyKCkKICAgICAgICAgZmMgPSBGaWxlc0NvbXBsZXRlcigpCi0gICAg
ICAgIGZvciB4IGluIFsiLyIsICIvZCIsICIvZGF0YSIsICJxcXEiLCAiIl06Ci0gICAgICAgICAg
ICBhc3NlcnQgZXF1YWxfd2l0aF9iYXNoKHgsIGZmYywgZmMsIG91dD1zeXMuc3Rkb3V0KQorCisg
ICAgICAgIHdpdGggdG1wZGlyLmFzX2N3ZCgpOgorICAgICAgICAgICAgYXNzZXJ0IGVxdWFsX3dp
dGhfYmFzaCgiIiwgZmZjLCBmYywgb3V0PXN5cy5zdGRvdXQpCisKKyAgICAgICAgICAgIHRtcGRp
ci5lbnN1cmUoImRhdGEiKQorCisgICAgICAgICAgICBmb3IgeCBpbiBbImQiLCAiZGF0YSIsICJk
b2Vzbm90ZXhpc3QiLCAiIl06CisgICAgICAgICAgICAgICAgYXNzZXJ0IGVxdWFsX3dpdGhfYmFz
aCh4LCBmZmMsIGZjLCBvdXQ9c3lzLnN0ZG91dCkKIAogICAgIEBweXRlc3QubWFyay5za2lwaWYo
InN5cy5wbGF0Zm9ybSBpbiAoJ3dpbjMyJywgJ2RhcndpbicpIikKICAgICBkZWYgdGVzdF9yZW1v
dmVfZGlyX3ByZWZpeChzZWxmKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVz
dF9hc3NlcnRpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfYXNzZXJ0aW9uLnB5Cmlu
ZGV4IDM5M2NmODE3YzdlOWIzYjEzOWZiMjdjMDVhZTQ3ZDlhODQ5NGFkNDEuLjIyNTM2MmU2NGVm
MDkzYThhNzMwYTBjMjQ4NjA2ZDc4YWE4ZDlkODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9hc3NlcnRpb24ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Fz
c2VydGlvbi5weQpAQCAtMSwyMCArMSwyNSBAQAogIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0
aW9uCisKIGltcG9ydCBzeXMKIGltcG9ydCB0ZXh0d3JhcAogCitpbXBvcnQgYXR0cgoraW1wb3J0
IHNpeAorCiBpbXBvcnQgX3B5dGVzdC5hc3NlcnRpb24gYXMgcGx1Z2luCi1pbXBvcnQgcHkKIGlt
cG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHV0aWwKK2Zyb20gX3B5
dGVzdCBpbXBvcnQgb3V0Y29tZXMKIGZyb20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHRydW5j
YXRlCitmcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB1dGlsCitmcm9tIF9weXRlc3QuY29t
cGF0IGltcG9ydCBBVFRSU19FUV9GSUVMRAogCiBQWTMgPSBzeXMudmVyc2lvbl9pbmZvID49ICgz
LCAwKQogCiAKLUBweXRlc3QuZml4dHVyZQogZGVmIG1vY2tfY29uZmlnKCk6Ci0KICAgICBjbGFz
cyBDb25maWcob2JqZWN0KToKICAgICAgICAgdmVyYm9zZSA9IEZhbHNlCiAKQEAgLTI3LDcgKzMy
LDYgQEAgZGVmIG1vY2tfY29uZmlnKCk6CiAKIAogY2xhc3MgVGVzdEltcG9ydEhvb2tJbnN0YWxs
YXRpb24ob2JqZWN0KToKLQogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaW5pdGlhbF9j
b25mdGVzdCIsIFtUcnVlLCBGYWxzZV0pCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJt
b2RlIiwgWyJwbGFpbiIsICJyZXdyaXRlIl0pCiAgICAgZGVmIHRlc3RfY29uZnRlc3RfYXNzZXJ0
aW9uX3Jld3JpdGUoc2VsZiwgdGVzdGRpciwgaW5pdGlhbF9jb25mdGVzdCwgbW9kZSk6CkBAIC0x
MzQsMTIgKzEzOCwxMiBAQCBjbGFzcyBUZXN0SW1wb3J0SG9va0luc3RhbGxhdGlvbihvYmplY3Qp
OgogICAgIGRlZiB0ZXN0X3B5dGVzdF9wbHVnaW5zX3Jld3JpdGVfbW9kdWxlX25hbWVzX2NvcnJl
Y3RseShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgIiIiVGVzdCB0aGF0IHdlIG1hdGNoIGZpbGVz
IGNvcnJlY3RseSB3aGVuIHRoZXkgYXJlIG1hcmtlZCBmb3IgcmV3cml0aW5nICgjMjkzOSkuIiIi
CiAgICAgICAgIGNvbnRlbnRzID0gewotICAgICAgICAgICAgImNvbmZ0ZXN0LnB5IjogIiIiCisg
ICAgICAgICAgICAiY29uZnRlc3QucHkiOiAiIiJcCiAgICAgICAgICAgICAgICAgcHl0ZXN0X3Bs
dWdpbnMgPSAiaGFtIgogICAgICAgICAgICAgIiIiLAogICAgICAgICAgICAgImhhbS5weSI6ICIi
LAogICAgICAgICAgICAgImhhbXN0ZXIucHkiOiAiIiwKLSAgICAgICAgICAgICJ0ZXN0X2Zvby5w
eSI6ICIiIgorICAgICAgICAgICAgInRlc3RfZm9vLnB5IjogIiIiXAogICAgICAgICAgICAgICAg
IGRlZiB0ZXN0X2ZvbyhweXRlc3Rjb25maWcpOgogICAgICAgICAgICAgICAgICAgICBhc3NlcnQg
cHl0ZXN0Y29uZmlnLnBsdWdpbm1hbmFnZXIucmV3cml0ZV9ob29rLmZpbmRfbW9kdWxlKCdoYW0n
KSBpcyBub3QgTm9uZQogICAgICAgICAgICAgICAgICAgICBhc3NlcnQgcHl0ZXN0Y29uZmlnLnBs
dWdpbm1hbmFnZXIucmV3cml0ZV9ob29rLmZpbmRfbW9kdWxlKCdoYW1zdGVyJykgaXMgTm9uZQpA
QCAtMTUwLDEzICsxNTQsMTMgQEAgY2xhc3MgVGVzdEltcG9ydEhvb2tJbnN0YWxsYXRpb24ob2Jq
ZWN0KToKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAogCiAgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJtb2RlIiwgWyJwbGFpbiIsICJyZXdyaXRlIl0pCi0gICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJwbHVnaW5fc3RhdGUiLCBbImRldmVsb3BtZW50IiwgImluc3RhbGxl
ZCJdKQotICAgIGRlZiB0ZXN0X2luc3RhbGxlZF9wbHVnaW5fcmV3cml0ZShzZWxmLCB0ZXN0ZGly
LCBtb2RlLCBwbHVnaW5fc3RhdGUpOgorICAgIGRlZiB0ZXN0X2luc3RhbGxlZF9wbHVnaW5fcmV3
cml0ZShzZWxmLCB0ZXN0ZGlyLCBtb2RlLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBh
dGNoLmRlbGVudigiUFlURVNUX0RJU0FCTEVfUExVR0lOX0FVVE9MT0FEIiwgcmFpc2luZz1GYWxz
ZSkKICAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGhvb2sgaXMgaW5zdGFsbGVkIGVhcmx5IGVub3Vn
aCBzbyB0aGF0IHBsdWdpbnMKICAgICAgICAgIyBpbnN0YWxsZWQgdmlhIHNldHVwdG9vbHMgYXJl
IHJld3JpdHRlbi4KICAgICAgICAgdGVzdGRpci50bXBkaXIuam9pbigiaGFtcGtnIikuZW5zdXJl
KGRpcj0xKQogICAgICAgICBjb250ZW50cyA9IHsKLSAgICAgICAgICAgICJoYW1wa2cvX19pbml0
X18ucHkiOiAiIiIKKyAgICAgICAgICAgICJoYW1wa2cvX19pbml0X18ucHkiOiAiIiJcCiAgICAg
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogCiAgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCkBAIC0xNjUsNyArMTY5LDcgQEAgY2xhc3MgVGVzdEltcG9ydEhvb2tJbnN0YWxsYXRpb24o
b2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMucG9wKDApID09
IHZhbHVlCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGVjawogICAgICAgICAgICAgIiIi
LAotICAgICAgICAgICAgInNwYW1wbHVnaW4ucHkiOiAiIiIKKyAgICAgICAgICAgICJzcGFtcGx1
Z2luLnB5IjogIiIiXAogICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogICAgICAgICAgICAgZnJv
bSBoYW1wa2cgaW1wb3J0IGNoZWNrX2ZpcnN0MgogCkBAIC0xNzUsNDYgKzE3OSwzMiBAQCBjbGFz
cyBUZXN0SW1wb3J0SG9va0luc3RhbGxhdGlvbihvYmplY3QpOgogICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgdmFsdWVzLnBvcCgwKSA9PSB2YWx1ZQogICAgICAgICAgICAgICAgIHJldHVybiBj
aGVjawogICAgICAgICAgICAgIiIiLAotICAgICAgICAgICAgIm1haW53cmFwcGVyLnB5IjogIiIi
Ci0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0LCBwa2dfcmVzb3VyY2VzCi0KLSAgICAgICAgICAg
IHBsdWdpbl9zdGF0ZSA9ICJ7cGx1Z2luX3N0YXRlfSIKLQotICAgICAgICAgICAgY2xhc3MgRHVt
bXlEaXN0SW5mbyhvYmplY3QpOgotICAgICAgICAgICAgICAgIHByb2plY3RfbmFtZSA9ICdzcGFt
JwotICAgICAgICAgICAgICAgIHZlcnNpb24gPSAnMS4wJwotCi0gICAgICAgICAgICAgICAgZGVm
IF9nZXRfbWV0YWRhdGEoc2VsZiwgbmFtZSk6Ci0gICAgICAgICAgICAgICAgICAgICMgJ1JFQ09S
RCcgbWV0YS1kYXRhIG9ubHkgYXZhaWxhYmxlIGluIGluc3RhbGxlZCBwbHVnaW5zCi0gICAgICAg
ICAgICAgICAgICAgIGlmIG5hbWUgPT0gJ1JFQ09SRCcgYW5kIHBsdWdpbl9zdGF0ZSA9PSAiaW5z
dGFsbGVkIjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbJ3NwYW1wbHVnaW4ucHks
c2hhMjU2PWFiYywxMjMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFtcGtn
L19faW5pdF9fLnB5LHNoYTI1Nj1hYmMsMTIzJ10KLSAgICAgICAgICAgICAgICAgICAgIyAnU09V
UkNFUy50eHQnIG1ldGEtZGF0YSBvbmx5IGF2YWlsYWJsZSBmb3IgcGx1Z2lucyBpbiBkZXZlbG9w
bWVudCBtb2RlCi0gICAgICAgICAgICAgICAgICAgIGVsaWYgbmFtZSA9PSAnU09VUkNFUy50eHQn
IGFuZCBwbHVnaW5fc3RhdGUgPT0gImRldmVsb3BtZW50IjoKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBbJ3NwYW1wbHVnaW4ucHknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnaGFtcGtnL19faW5pdF9fLnB5J10KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtd
CisgICAgICAgICAgICAibWFpbndyYXBwZXIucHkiOiAiIiJcCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgICAgICBmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBpbXBvcnRsaWJf
bWV0YWRhdGEKIAogICAgICAgICAgICAgY2xhc3MgRHVtbXlFbnRyeVBvaW50KG9iamVjdCk6CiAg
ICAgICAgICAgICAgICAgbmFtZSA9ICdzcGFtJwogICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1l
ID0gJ3NwYW0ucHknCi0gICAgICAgICAgICAgICAgYXR0cnMgPSAoKQotICAgICAgICAgICAgICAg
IGV4dHJhcyA9IE5vbmUKLSAgICAgICAgICAgICAgICBkaXN0ID0gRHVtbXlEaXN0SW5mbygpCisg
ICAgICAgICAgICAgICAgZ3JvdXAgPSAncHl0ZXN0MTEnCiAKLSAgICAgICAgICAgICAgICBkZWYg
bG9hZChzZWxmLCByZXF1aXJlPVRydWUsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAg
ICAgZGVmIGxvYWQoc2VsZik6CiAgICAgICAgICAgICAgICAgICAgIGltcG9ydCBzcGFtcGx1Z2lu
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzcGFtcGx1Z2luCiAKLSAgICAgICAgICAgIGRl
ZiBpdGVyX2VudHJ5X3BvaW50cyhuYW1lKToKLSAgICAgICAgICAgICAgICB5aWVsZCBEdW1teUVu
dHJ5UG9pbnQoKQorICAgICAgICAgICAgY2xhc3MgRHVtbXlEaXN0SW5mbyhvYmplY3QpOgorICAg
ICAgICAgICAgICAgIHZlcnNpb24gPSAnMS4wJworICAgICAgICAgICAgICAgIGZpbGVzID0gKCdz
cGFtcGx1Z2luLnB5JywgJ2hhbXBrZy9fX2luaXRfXy5weScpCisgICAgICAgICAgICAgICAgZW50
cnlfcG9pbnRzID0gKER1bW15RW50cnlQb2ludCgpLCkKKyAgICAgICAgICAgICAgICBtZXRhZGF0
YSA9IHsnbmFtZSc6ICdmb28nfQorCisgICAgICAgICAgICBkZWYgZGlzdHJpYnV0aW9ucygpOgor
ICAgICAgICAgICAgICAgIHJldHVybiAoRHVtbXlEaXN0SW5mbygpLCkKIAotICAgICAgICAgICAg
cGtnX3Jlc291cmNlcy5pdGVyX2VudHJ5X3BvaW50cyA9IGl0ZXJfZW50cnlfcG9pbnRzCisgICAg
ICAgICAgICBpbXBvcnRsaWJfbWV0YWRhdGEuZGlzdHJpYnV0aW9ucyA9IGRpc3RyaWJ1dGlvbnMK
ICAgICAgICAgICAgIHB5dGVzdC5tYWluKCkKLSAgICAgICAgICAgICIiIi5mb3JtYXQoCi0gICAg
ICAgICAgICAgICAgcGx1Z2luX3N0YXRlPXBsdWdpbl9zdGF0ZQotICAgICAgICAgICAgKSwKLSAg
ICAgICAgICAgICJ0ZXN0X2Zvby5weSI6ICIiIgorICAgICAgICAgICAgIiIiLAorICAgICAgICAg
ICAgInRlc3RfZm9vLnB5IjogIiIiXAogICAgICAgICAgICAgZGVmIHRlc3QoY2hlY2tfZmlyc3Qp
OgogICAgICAgICAgICAgICAgIGNoZWNrX2ZpcnN0KFsxMCwgMzBdLCAzMCkKIApAQCAtMjg4LDcg
KzI3OCw2IEBAIGNsYXNzIFRlc3RJbXBvcnRIb29rSW5zdGFsbGF0aW9uKG9iamVjdCk6CiAKIAog
Y2xhc3MgVGVzdEJpblJlcHJJbnRlZ3JhdGlvbihvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfcHl0
ZXN0X2Fzc2VydHJlcHJfY29tcGFyZV9jYWxsZWQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRl
c3RkaXIubWFrZWNvbmZ0ZXN0KAogICAgICAgICAgICAgIiIiCkBAIC0zMjEsNyArMzEwLDYgQEAg
ZGVmIGNhbGxlcXVhbChsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxzZSk6CiAKIAogY2xhc3MgVGVz
dEFzc2VydF9yZXByY29tcGFyZShvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfZGlmZmVyZW50X3R5
cGVzKHNlbGYpOgogICAgICAgICBhc3NlcnQgY2FsbGVxdWFsKFswLCAxXSwgImZvbyIpIGlzIE5v
bmUKIApAQCAtNDQ0LDYgKzQzMiw1MCBAQCBjbGFzcyBUZXN0QXNzZXJ0X3JlcHJjb21wYXJlKG9i
amVjdCk6CiAgICAgICAgIGFzc2VydCAiT21pdHRpbmciIG5vdCBpbiBsaW5lc1sxXQogICAgICAg
ICBhc3NlcnQgbGluZXNbMl0gPT0gInsnYic6IDF9IgogCisgICAgZGVmIHRlc3RfZGljdF9kaWZm
ZXJlbnRfaXRlbXMoc2VsZik6CisgICAgICAgIGxpbmVzID0gY2FsbGVxdWFsKHsiYSI6IDB9LCB7
ImIiOiAxLCAiYyI6IDJ9LCB2ZXJib3NlPTIpCisgICAgICAgIGFzc2VydCBsaW5lcyA9PSBbCisg
ICAgICAgICAgICAieydhJzogMH0gPT0geydiJzogMSwgJ2MnOiAyfSIsCisgICAgICAgICAgICAi
TGVmdCBjb250YWlucyAxIG1vcmUgaXRlbToiLAorICAgICAgICAgICAgInsnYSc6IDB9IiwKKyAg
ICAgICAgICAgICJSaWdodCBjb250YWlucyAyIG1vcmUgaXRlbXM6IiwKKyAgICAgICAgICAgICJ7
J2InOiAxLCAnYyc6IDJ9IiwKKyAgICAgICAgICAgICJGdWxsIGRpZmY6IiwKKyAgICAgICAgICAg
ICItIHsnYSc6IDB9IiwKKyAgICAgICAgICAgICIrIHsnYic6IDEsICdjJzogMn0iLAorICAgICAg
ICBdCisgICAgICAgIGxpbmVzID0gY2FsbGVxdWFsKHsiYiI6IDEsICJjIjogMn0sIHsiYSI6IDB9
LCB2ZXJib3NlPTIpCisgICAgICAgIGFzc2VydCBsaW5lcyA9PSBbCisgICAgICAgICAgICAieydi
JzogMSwgJ2MnOiAyfSA9PSB7J2EnOiAwfSIsCisgICAgICAgICAgICAiTGVmdCBjb250YWlucyAy
IG1vcmUgaXRlbXM6IiwKKyAgICAgICAgICAgICJ7J2InOiAxLCAnYyc6IDJ9IiwKKyAgICAgICAg
ICAgICJSaWdodCBjb250YWlucyAxIG1vcmUgaXRlbToiLAorICAgICAgICAgICAgInsnYSc6IDB9
IiwKKyAgICAgICAgICAgICJGdWxsIGRpZmY6IiwKKyAgICAgICAgICAgICItIHsnYic6IDEsICdj
JzogMn0iLAorICAgICAgICAgICAgIisgeydhJzogMH0iLAorICAgICAgICBdCisKKyAgICBkZWYg
dGVzdF9zZXF1ZW5jZV9kaWZmZXJlbnRfaXRlbXMoc2VsZik6CisgICAgICAgIGxpbmVzID0gY2Fs
bGVxdWFsKCgxLCAyKSwgKDMsIDQsIDUpLCB2ZXJib3NlPTIpCisgICAgICAgIGFzc2VydCBsaW5l
cyA9PSBbCisgICAgICAgICAgICAiKDEsIDIpID09ICgzLCA0LCA1KSIsCisgICAgICAgICAgICAi
QXQgaW5kZXggMCBkaWZmOiAxICE9IDMiLAorICAgICAgICAgICAgIlJpZ2h0IGNvbnRhaW5zIG9u
ZSBtb3JlIGl0ZW06IDUiLAorICAgICAgICAgICAgIkZ1bGwgZGlmZjoiLAorICAgICAgICAgICAg
Ii0gKDEsIDIpIiwKKyAgICAgICAgICAgICIrICgzLCA0LCA1KSIsCisgICAgICAgIF0KKyAgICAg
ICAgbGluZXMgPSBjYWxsZXF1YWwoKDEsIDIsIDMpLCAoNCwpLCB2ZXJib3NlPTIpCisgICAgICAg
IGFzc2VydCBsaW5lcyA9PSBbCisgICAgICAgICAgICAiKDEsIDIsIDMpID09ICg0LCkiLAorICAg
ICAgICAgICAgIkF0IGluZGV4IDAgZGlmZjogMSAhPSA0IiwKKyAgICAgICAgICAgICJMZWZ0IGNv
bnRhaW5zIDIgbW9yZSBpdGVtcywgZmlyc3QgZXh0cmEgaXRlbTogMiIsCisgICAgICAgICAgICAi
RnVsbCBkaWZmOiIsCisgICAgICAgICAgICAiLSAoMSwgMiwgMykiLAorICAgICAgICAgICAgIisg
KDQsKSIsCisgICAgICAgIF0KKwogICAgIGRlZiB0ZXN0X3NldChzZWxmKToKICAgICAgICAgZXhw
bCA9IGNhbGxlcXVhbCh7MCwgMX0sIHswLCAyfSkKICAgICAgICAgYXNzZXJ0IGxlbihleHBsKSA+
IDEKQEAgLTQ1MywxMyArNDg1LDE1IEBAIGNsYXNzIFRlc3RBc3NlcnRfcmVwcmNvbXBhcmUob2Jq
ZWN0KToKICAgICAgICAgYXNzZXJ0IGxlbihleHBsKSA+IDEKIAogICAgIGRlZiB0ZXN0X1NlcXVl
bmNlKHNlbGYpOgotICAgICAgICBjb2wgPSBweS5idWlsdGluLl90cnlpbXBvcnQoImNvbGxlY3Rp
b25zLmFiYyIsICJjb2xsZWN0aW9ucyIsICJzeXMiKQotICAgICAgICBpZiBub3QgaGFzYXR0cihj
b2wsICJNdXRhYmxlU2VxdWVuY2UiKToKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAo
MywgMyk6CisgICAgICAgICAgICBpbXBvcnQgY29sbGVjdGlvbnMuYWJjIGFzIGNvbGxlY3Rpb25z
X2FiYworICAgICAgICBlbHNlOgorICAgICAgICAgICAgaW1wb3J0IGNvbGxlY3Rpb25zIGFzIGNv
bGxlY3Rpb25zX2FiYworICAgICAgICBpZiBub3QgaGFzYXR0cihjb2xsZWN0aW9uc19hYmMsICJN
dXRhYmxlU2VxdWVuY2UiKToKICAgICAgICAgICAgIHB5dGVzdC5za2lwKCJjYW5ub3QgaW1wb3J0
IE11dGFibGVTZXF1ZW5jZSIpCi0gICAgICAgIE11dGFibGVTZXF1ZW5jZSA9IGNvbC5NdXRhYmxl
U2VxdWVuY2UKKyAgICAgICAgTXV0YWJsZVNlcXVlbmNlID0gY29sbGVjdGlvbnNfYWJjLk11dGFi
bGVTZXF1ZW5jZQogCiAgICAgICAgIGNsYXNzIFRlc3RTZXF1ZW5jZShNdXRhYmxlU2VxdWVuY2Up
OiAgIyB3b3JrcyB3aXRoIGEgU2VxdWVuY2Ugc3ViY2xhc3MKLQogICAgICAgICAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGl0ZXJhYmxlKToKICAgICAgICAgICAgICAgICBzZWxmLmVsZW1lbnRzID0g
bGlzdChpdGVyYWJsZSkKIApAQCAtNDg3LDEwICs1MjEsMzIgQEAgY2xhc3MgVGVzdEFzc2VydF9y
ZXByY29tcGFyZShvYmplY3QpOgogICAgICAgICBleHBsID0gY2FsbGVxdWFsKFsoMSwgMildLCBb
XSkKICAgICAgICAgYXNzZXJ0IGxlbihleHBsKSA+IDEKIAotICAgIGRlZiB0ZXN0X2xpc3RfYmFk
X3JlcHIoc2VsZik6CisgICAgZGVmIHRlc3RfcmVwcl92ZXJib3NlKHNlbGYpOgorICAgICAgICBj
bGFzcyBOdW1zOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG51bXMpOgorICAgICAg
ICAgICAgICAgIHNlbGYubnVtcyA9IG51bXMKIAotICAgICAgICBjbGFzcyBBKG9iamVjdCk6Cisg
ICAgICAgICAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0
cihzZWxmLm51bXMpCisKKyAgICAgICAgbGlzdF94ID0gbGlzdChyYW5nZSg1MDAwKSkKKyAgICAg
ICAgbGlzdF95ID0gbGlzdChyYW5nZSg1MDAwKSkKKyAgICAgICAgbGlzdF95W2xlbihsaXN0X3kp
IC8vIDJdID0gMworICAgICAgICBudW1zX3ggPSBOdW1zKGxpc3RfeCkKKyAgICAgICAgbnVtc195
ID0gTnVtcyhsaXN0X3kpCisKKyAgICAgICAgYXNzZXJ0IGNhbGxlcXVhbChudW1zX3gsIG51bXNf
eSkgaXMgTm9uZQorCisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwobnVtc194LCBudW1zX3ksIHZl
cmJvc2U9MSkKKyAgICAgICAgYXNzZXJ0ICItIiArIHJlcHIobnVtc194KSBpbiBleHBsCisgICAg
ICAgIGFzc2VydCAiKyIgKyByZXByKG51bXNfeSkgaW4gZXhwbAorCisgICAgICAgIGV4cGwgPSBj
YWxsZXF1YWwobnVtc194LCBudW1zX3ksIHZlcmJvc2U9MikKKyAgICAgICAgYXNzZXJ0ICItIiAr
IHJlcHIobnVtc194KSBpbiBleHBsCisgICAgICAgIGFzc2VydCAiKyIgKyByZXByKG51bXNfeSkg
aW4gZXhwbAogCisgICAgZGVmIHRlc3RfbGlzdF9iYWRfcmVwcihzZWxmKToKKyAgICAgICAgY2xh
c3MgQShvYmplY3QpOgogICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIpCiAKQEAgLTUwNiw3ICs1NjIsNiBAQCBjbGFzcyBU
ZXN0QXNzZXJ0X3JlcHJjb21wYXJlKG9iamVjdCk6CiAgICAgICAgICIiIgogCiAgICAgICAgIGNs
YXNzIEEoc3RyKToKLQogICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICAg
ICAgICAgIHJldHVybiAiIgogCkBAIC01MTgsMTIgKzU3MywxMiBAQCBjbGFzcyBUZXN0QXNzZXJ0
X3JlcHJjb21wYXJlKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCAicmFpc2VkIGluIHJlcHIoKSIg
bm90IGluIGV4cGwKIAogICAgIGRlZiB0ZXN0X3VuaWNvZGUoc2VsZik6Ci0gICAgICAgIGxlZnQg
PSBweS5idWlsdGluLl90b3RleHQoIsKj4oKsIiwgInV0Zi04IikKLSAgICAgICAgcmlnaHQgPSBw
eS5idWlsdGluLl90b3RleHQoIsKjIiwgInV0Zi04IikKKyAgICAgICAgbGVmdCA9IHUiwqPigqwi
CisgICAgICAgIHJpZ2h0ID0gdSLCoyIKICAgICAgICAgZXhwbCA9IGNhbGxlcXVhbChsZWZ0LCBy
aWdodCkKLSAgICAgICAgYXNzZXJ0IGV4cGxbMF0gPT0gcHkuYnVpbHRpbi5fdG90ZXh0KCInwqPi
gqwnID09ICfCoyciLCAidXRmLTgiKQotICAgICAgICBhc3NlcnQgZXhwbFsxXSA9PSBweS5idWls
dGluLl90b3RleHQoIi0gwqPigqwiLCAidXRmLTgiKQotICAgICAgICBhc3NlcnQgZXhwbFsyXSA9
PSBweS5idWlsdGluLl90b3RleHQoIisgwqMiLCAidXRmLTgiKQorICAgICAgICBhc3NlcnQgZXhw
bFswXSA9PSB1IifCo+KCrCcgPT0gJ8KjJyIKKyAgICAgICAgYXNzZXJ0IGV4cGxbMV0gPT0gdSIt
IMKj4oKsIgorICAgICAgICBhc3NlcnQgZXhwbFsyXSA9PSB1IisgwqMiCiAKICAgICBkZWYgdGVz
dF9ub25hc2NpaV90ZXh0KHNlbGYpOgogICAgICAgICAiIiIKQEAgLTUzMiwzMiArNTg3LDEzOSBA
QCBjbGFzcyBUZXN0QXNzZXJ0X3JlcHJjb21wYXJlKG9iamVjdCk6CiAgICAgICAgICIiIgogCiAg
ICAgICAgIGNsYXNzIEEoc3RyKToKLQogICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgog
ICAgICAgICAgICAgICAgIHJldHVybiAiXHhmZiIKIAogICAgICAgICBleHBsID0gY2FsbGVxdWFs
KEEoKSwgIjEiKQotICAgICAgICBhc3NlcnQgZXhwbAorICAgICAgICBpZiBQWTM6CisgICAgICAg
ICAgICBhc3NlcnQgZXhwbCA9PSBbIsO/ID09ICcxJyIsICIrIDEiXQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgYXNzZXJ0IGV4cGwgPT0gW3UiXHVmZmZkID09ICcxJyIsIHUiKyAxIl0KIAog
ICAgIGRlZiB0ZXN0X2Zvcm1hdF9ub25hc2NpaV9leHBsYW5hdGlvbihzZWxmKToKICAgICAgICAg
YXNzZXJ0IHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCLOuyIpCiAKICAgICBkZWYgdGVzdF9tb2pp
YmFrZShzZWxmKToKICAgICAgICAgIyBpc3N1ZSA0MjkKLSAgICAgICAgbGVmdCA9ICJlIgotICAg
ICAgICByaWdodCA9ICJceGMzXHhhOSIKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobGVmdCwg
Ynl0ZXMpOgotICAgICAgICAgICAgbGVmdCA9IGJ5dGVzKGxlZnQsICJ1dGYtOCIpCi0gICAgICAg
ICAgICByaWdodCA9IGJ5dGVzKHJpZ2h0LCAidXRmLTgiKQorICAgICAgICBsZWZ0ID0gYiJlIgor
ICAgICAgICByaWdodCA9IGIiXHhjM1x4YTkiCiAgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwobGVm
dCwgcmlnaHQpCiAgICAgICAgIGZvciBsaW5lIGluIGV4cGw6Ci0gICAgICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShsaW5lLCBweS5idWlsdGluLnRleHQpCi0gICAgICAgIG1zZyA9IHB5LmJ1aWx0
aW4uX3RvdGV4dCgiXG4iKS5qb2luKGV4cGwpCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShsaW5lLCBzaXgudGV4dF90eXBlKQorICAgICAgICBtc2cgPSB1IlxuIi5qb2luKGV4cGwpCiAg
ICAgICAgIGFzc2VydCBtc2cKIAogCi1jbGFzcyBUZXN0Rm9ybWF0RXhwbGFuYXRpb24ob2JqZWN0
KToKK2NsYXNzIFRlc3RBc3NlcnRfcmVwcmNvbXBhcmVfZGF0YWNsYXNzKG9iamVjdCk6CisgICAg
QHB5dGVzdC5tYXJrLnNraXBpZihzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDcpLCByZWFzb249IkRh
dGFjbGFzc2VzIGluIFB5dGhvbjMuNysiKQorICAgIGRlZiB0ZXN0X2RhdGFjbGFzc2VzKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5jb3B5X2V4YW1wbGUoImRhdGFjbGFzc2Vz
L3Rlc3RfY29tcGFyZV9kYXRhY2xhc3Nlcy5weSIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KHApCisgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMoZmFpbGVkPTEsIHBh
c3NlZD0wKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAg
ICBbCisgICAgICAgICAgICAgICAgIipPbWl0dGluZyAxIGlkZW50aWNhbCBpdGVtcywgdXNlIC12
diB0byBzaG93KiIsCisgICAgICAgICAgICAgICAgIipEaWZmZXJpbmcgYXR0cmlidXRlczoqIiwK
KyAgICAgICAgICAgICAgICAiKmZpZWxkX2I6ICdiJyAhPSAnYycqIiwKKyAgICAgICAgICAgIF0K
KyAgICAgICAgKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihzeXMudmVyc2lvbl9pbmZvIDwg
KDMsIDcpLCByZWFzb249IkRhdGFjbGFzc2VzIGluIFB5dGhvbjMuNysiKQorICAgIGRlZiB0ZXN0
X2RhdGFjbGFzc2VzX3ZlcmJvc2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGly
LmNvcHlfZXhhbXBsZSgiZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX2RhdGFjbGFzc2VzX3ZlcmJv
c2UucHkiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLXZ2IikKKyAg
ICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhmYWlsZWQ9MSwgcGFzc2VkPTApCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAg
ICAgICAiKk1hdGNoaW5nIGF0dHJpYnV0ZXM6KiIsCisgICAgICAgICAgICAgICAgIipbJ2ZpZWxk
X2EnXSoiLAorICAgICAgICAgICAgICAgICIqRGlmZmVyaW5nIGF0dHJpYnV0ZXM6KiIsCisgICAg
ICAgICAgICAgICAgIipmaWVsZF9iOiAnYicgIT0gJ2MnKiIsCisgICAgICAgICAgICBdCisgICAg
ICAgICkKKworICAgIEBweXRlc3QubWFyay5za2lwaWYoc3lzLnZlcnNpb25faW5mbyA8ICgzLCA3
KSwgcmVhc29uPSJEYXRhY2xhc3NlcyBpbiBQeXRob24zLjcrIikKKyAgICBkZWYgdGVzdF9kYXRh
Y2xhc3Nlc193aXRoX2F0dHJpYnV0ZV9jb21wYXJpc29uX29mZihzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgcCA9IHRlc3RkaXIuY29weV9leGFtcGxlKAorICAgICAgICAgICAgImRhdGFjbGFzc2Vz
L3Rlc3RfY29tcGFyZV9kYXRhY2xhc3Nlc19maWVsZF9jb21wYXJpc29uX29mZi5weSIKKyAgICAg
ICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLXZ2IikKKyAgICAg
ICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhmYWlsZWQ9MCwgcGFzc2VkPTEpCisKKyAgICBAcHl0
ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9uX2luZm8gPCAoMywgNyksIHJlYXNvbj0iRGF0YWNs
YXNzZXMgaW4gUHl0aG9uMy43KyIpCisgICAgZGVmIHRlc3RfY29tcGFyaW5nX3R3b19kaWZmZXJl
bnRfZGF0YV9jbGFzc2VzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5jb3B5
X2V4YW1wbGUoCisgICAgICAgICAgICAiZGF0YWNsYXNzZXMvdGVzdF9jb21wYXJlX3R3b19kaWZm
ZXJlbnRfZGF0YWNsYXNzZXMucHkiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QocCwgIi12diIpCisgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMoZmFp
bGVkPTAsIHBhc3NlZD0xKQorCisKK2NsYXNzIFRlc3RBc3NlcnRfcmVwcmNvbXBhcmVfYXR0cnNj
bGFzcyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2F0dHJzKHNlbGYpOgorICAgICAgICBAYXR0ci5z
CisgICAgICAgIGNsYXNzIFNpbXBsZURhdGFPYmplY3Qob2JqZWN0KToKKyAgICAgICAgICAgIGZp
ZWxkX2EgPSBhdHRyLmliKCkKKyAgICAgICAgICAgIGZpZWxkX2IgPSBhdHRyLmliKCkKKworICAg
ICAgICBsZWZ0ID0gU2ltcGxlRGF0YU9iamVjdCgxLCAiYiIpCisgICAgICAgIHJpZ2h0ID0gU2lt
cGxlRGF0YU9iamVjdCgxLCAiYyIpCisKKyAgICAgICAgbGluZXMgPSBjYWxsZXF1YWwobGVmdCwg
cmlnaHQpCisgICAgICAgIGFzc2VydCBsaW5lc1sxXS5zdGFydHN3aXRoKCJPbWl0dGluZyAxIGlk
ZW50aWNhbCBpdGVtIikKKyAgICAgICAgYXNzZXJ0ICJNYXRjaGluZyBhdHRyaWJ1dGVzIiBub3Qg
aW4gbGluZXMKKyAgICAgICAgZm9yIGxpbmUgaW4gbGluZXNbMTpdOgorICAgICAgICAgICAgYXNz
ZXJ0ICJmaWVsZF9hIiBub3QgaW4gbGluZQorCisgICAgZGVmIHRlc3RfYXR0cnNfdmVyYm9zZShz
ZWxmKToKKyAgICAgICAgQGF0dHIucworICAgICAgICBjbGFzcyBTaW1wbGVEYXRhT2JqZWN0KG9i
amVjdCk6CisgICAgICAgICAgICBmaWVsZF9hID0gYXR0ci5pYigpCisgICAgICAgICAgICBmaWVs
ZF9iID0gYXR0ci5pYigpCisKKyAgICAgICAgbGVmdCA9IFNpbXBsZURhdGFPYmplY3QoMSwgImIi
KQorICAgICAgICByaWdodCA9IFNpbXBsZURhdGFPYmplY3QoMSwgImMiKQorCisgICAgICAgIGxp
bmVzID0gY2FsbGVxdWFsKGxlZnQsIHJpZ2h0LCB2ZXJib3NlPTIpCisgICAgICAgIGFzc2VydCBs
aW5lc1sxXS5zdGFydHN3aXRoKCJNYXRjaGluZyBhdHRyaWJ1dGVzOiIpCisgICAgICAgIGFzc2Vy
dCAiT21pdHRpbmciIG5vdCBpbiBsaW5lc1sxXQorICAgICAgICBhc3NlcnQgbGluZXNbMl0gPT0g
IlsnZmllbGRfYSddIgorCisgICAgZGVmIHRlc3RfYXR0cnNfd2l0aF9hdHRyaWJ1dGVfY29tcGFy
aXNvbl9vZmYoc2VsZik6CisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgU2ltcGxlRGF0
YU9iamVjdChvYmplY3QpOgorICAgICAgICAgICAgZmllbGRfYSA9IGF0dHIuaWIoKQorICAgICAg
ICAgICAgZmllbGRfYiA9IGF0dHIuaWIoKip7QVRUUlNfRVFfRklFTEQ6IEZhbHNlfSkKKworICAg
ICAgICBsZWZ0ID0gU2ltcGxlRGF0YU9iamVjdCgxLCAiYiIpCisgICAgICAgIHJpZ2h0ID0gU2lt
cGxlRGF0YU9iamVjdCgxLCAiYiIpCisKKyAgICAgICAgbGluZXMgPSBjYWxsZXF1YWwobGVmdCwg
cmlnaHQsIHZlcmJvc2U9MikKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzFdLnN0YXJ0c3dpdGgoIk1h
dGNoaW5nIGF0dHJpYnV0ZXM6IikKKyAgICAgICAgYXNzZXJ0ICJPbWl0dGluZyIgbm90IGluIGxp
bmVzWzFdCisgICAgICAgIGFzc2VydCBsaW5lc1syXSA9PSAiWydmaWVsZF9hJ10iCisgICAgICAg
IGZvciBsaW5lIGluIGxpbmVzWzI6XToKKyAgICAgICAgICAgIGFzc2VydCAiZmllbGRfYiIgbm90
IGluIGxpbmUKKworICAgIGRlZiB0ZXN0X2NvbXBhcmluZ190d29fZGlmZmVyZW50X2F0dHJzX2Ns
YXNzZXMoc2VsZik6CisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgU2ltcGxlRGF0YU9i
amVjdE9uZShvYmplY3QpOgorICAgICAgICAgICAgZmllbGRfYSA9IGF0dHIuaWIoKQorICAgICAg
ICAgICAgZmllbGRfYiA9IGF0dHIuaWIoKQorCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xh
c3MgU2ltcGxlRGF0YU9iamVjdFR3byhvYmplY3QpOgorICAgICAgICAgICAgZmllbGRfYSA9IGF0
dHIuaWIoKQorICAgICAgICAgICAgZmllbGRfYiA9IGF0dHIuaWIoKQorCisgICAgICAgIGxlZnQg
PSBTaW1wbGVEYXRhT2JqZWN0T25lKDEsICJiIikKKyAgICAgICAgcmlnaHQgPSBTaW1wbGVEYXRh
T2JqZWN0VHdvKDEsICJjIikKKworICAgICAgICBsaW5lcyA9IGNhbGxlcXVhbChsZWZ0LCByaWdo
dCkKKyAgICAgICAgYXNzZXJ0IGxpbmVzIGlzIE5vbmUKIAorCitjbGFzcyBUZXN0Rm9ybWF0RXhw
bGFuYXRpb24ob2JqZWN0KToKICAgICBkZWYgdGVzdF9zcGVjaWFsX2NoYXJzX2Z1bGwoc2VsZiwg
dGVzdGRpcik6CiAgICAgICAgICMgSXNzdWUgNDUzLCBmb3IgdGhlIGJ1ZyB0aGlzIHdvdWxkIHJh
aXNlIEluZGV4RXJyb3IKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKApAQCAtNzc4LDI3ICs5
NDAsMjIgQEAgZGVmIHRlc3RfcmV3cml0dGVuKHRlc3RkaXIpOgogICAgIGFzc2VydCB0ZXN0ZGly
LnJ1bnB5dGVzdCgpLnJldCA9PSAwCiAKIAotZGVmIHRlc3RfcmVwcmNvbXBhcmVfbm90aW4obW9j
a19jb25maWcpOgotICAgIGRldGFpbCA9IHBsdWdpbi5weXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJl
KAotICAgICAgICBtb2NrX2NvbmZpZywgIm5vdCBpbiIsICJmb28iLCAiYWFhZm9vYmJiIgotICAg
IClbCi0gICAgICAgIDE6Ci0gICAgXQorZGVmIHRlc3RfcmVwcmNvbXBhcmVfbm90aW4oKToKKyAg
ICBjb25maWcgPSBtb2NrX2NvbmZpZygpCisgICAgZGV0YWlsID0gcGx1Z2luLnB5dGVzdF9hc3Nl
cnRyZXByX2NvbXBhcmUoY29uZmlnLCAibm90IGluIiwgImZvbyIsICJhYWFmb29iYmIiKVsxOl0K
ICAgICBhc3NlcnQgZGV0YWlsID09IFsiJ2ZvbycgaXMgY29udGFpbmVkIGhlcmU6IiwgIiAgYWFh
Zm9vYmJiIiwgIj8gICAgKysrIl0KIAogCi1kZWYgdGVzdF9yZXByY29tcGFyZV93aGl0ZXNwYWNl
cyhtb2NrX2NvbmZpZyk6Ci0gICAgZGV0YWlsID0gcGx1Z2luLnB5dGVzdF9hc3NlcnRyZXByX2Nv
bXBhcmUobW9ja19jb25maWcsICI9PSIsICJcclxuIiwgIlxuIikKLSAgICBhc3NlcnQgKAotICAg
ICAgICBkZXRhaWwKLSAgICAgICAgPT0gWwotICAgICAgICAgICAgciInXHJcbicgPT0gJ1xuJyIs
Ci0gICAgICAgICAgICByIlN0cmluZ3MgY29udGFpbiBvbmx5IHdoaXRlc3BhY2UsIGVzY2FwaW5n
IHRoZW0gdXNpbmcgcmVwcigpIiwKLSAgICAgICAgICAgIHIiLSAnXHJcbiciLAotICAgICAgICAg
ICAgciI/ICAtLSIsCi0gICAgICAgICAgICByIisgJ1xuJyIsCi0gICAgICAgIF0KLSAgICApCitk
ZWYgdGVzdF9yZXByY29tcGFyZV93aGl0ZXNwYWNlcygpOgorICAgIGNvbmZpZyA9IG1vY2tfY29u
ZmlnKCkKKyAgICBkZXRhaWwgPSBwbHVnaW4ucHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZShjb25m
aWcsICI9PSIsICJcclxuIiwgIlxuIikKKyAgICBhc3NlcnQgZGV0YWlsID09IFsKKyAgICAgICAg
ciInXHJcbicgPT0gJ1xuJyIsCisgICAgICAgIHIiU3RyaW5ncyBjb250YWluIG9ubHkgd2hpdGVz
cGFjZSwgZXNjYXBpbmcgdGhlbSB1c2luZyByZXByKCkiLAorICAgICAgICByIi0gJ1xyXG4nIiwK
KyAgICAgICAgciI/ICAtLSIsCisgICAgICAgIHIiKyAnXG4nIiwKKyAgICBdCiAKIAogZGVmIHRl
c3RfcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZV9pbnRlZ3JhdGlvbih0ZXN0ZGlyKToKQEAgLTEw
MzYsNyArMTE5Myw2IEBAIGRlZiB0ZXN0X0Fzc2VydGlvbkVycm9yX21lc3NhZ2UodGVzdGRpcik6
CiBkZWYgdGVzdF9zZXRfd2l0aF91bnNvcnRhYmxlX2VsZW1lbnRzKCk6CiAgICAgIyBpc3N1ZSAj
NzE4CiAgICAgY2xhc3MgVW5zb3J0YWJsZUtleShvYmplY3QpOgotCiAgICAgICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBuYW1lKToKICAgICAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKIApAQCAtMTA5
MSwxNyArMTI0NywyNyBAQCBkZWYgdGVzdF9kaWZmX25ld2xpbmVfYXRfZW5kKG1vbmtleXBhdGNo
LCB0ZXN0ZGlyKToKICAgICApCiAKIAorQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJkZWZh
dWx0IikKIGRlZiB0ZXN0X2Fzc2VydF90dXBsZV93YXJuaW5nKHRlc3RkaXIpOgorICAgIG1zZyA9
ICJhc3NlcnRpb24gaXMgYWx3YXlzIHRydWUiCiAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAg
ICAgICAiIiIKICAgICAgICAgZGVmIHRlc3RfdHVwbGUoKToKICAgICAgICAgICAgIGFzc2VydChG
YWxzZSwgJ3lvdSBzaGFsbCBub3QgcGFzcycpCiAgICAgIiIiCiAgICAgKQotICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItcnciKQotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygKLSAgICAgICAgWyIqdGVzdF9hc3NlcnRfdHVwbGVfd2FybmluZy5weToyIiwgIiphc3NlcnRp
b24gaXMgYWx3YXlzIHRydWUqIl0KKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKnRlc3RfYXNzZXJ0X3R1cGxlX3dhcm5p
bmcucHk6Mjoqe30qIi5mb3JtYXQobXNnKV0pCisKKyAgICAjIHR1cGxlcyB3aXRoIHNpemUgIT0g
MiBzaG91bGQgbm90IHRyaWdnZXIgdGhlIHdhcm5pbmcKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICIiIgorICAgICAgICBkZWYgdGVzdF90dXBsZSgpOgorICAgICAgICAgICAgYXNz
ZXJ0ICgpCisgICAgIiIiCiAgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICBhc3NlcnQgbXNnIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCiAKIAogZGVmIHRlc3Rf
YXNzZXJ0X2luZGlyZWN0X3R1cGxlX25vX3dhcm5pbmcodGVzdGRpcik6CkBAIC0xMTY5LDQgKzEz
MzUsMTcgQEAgZGVmIHRlc3RfaXNzdWVfMTk0NCh0ZXN0ZGlyKToKICAgICApCiAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQogICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
IioxIGVycm9yKiJdKQotICAgIGFzc2VydCAiQXR0cmlidXRlRXJyb3I6ICdNb2R1bGUnIG9iamVj
dCBoYXMgbm8gYXR0cmlidXRlICdfb2JqJyIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAg
ICBhc3NlcnQgKAorICAgICAgICAiQXR0cmlidXRlRXJyb3I6ICdNb2R1bGUnIG9iamVjdCBoYXMg
bm8gYXR0cmlidXRlICdfb2JqJyIKKyAgICAgICAgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkK
KyAgICApCisKKworZGVmIHRlc3RfZXhpdF9mcm9tX2Fzc2VydHJlcHJfY29tcGFyZShtb25rZXlw
YXRjaCk6CisgICAgZGVmIHJhaXNlX2V4aXQob2JqKToKKyAgICAgICAgb3V0Y29tZXMuZXhpdCgi
UXVpdHRpbmcgZGVidWdnZXIiKQorCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih1dGlsLCAiaXN0
ZXh0IiwgcmFpc2VfZXhpdCkKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhvdXRjb21lcy5FeGl0
LCBtYXRjaD0iUXVpdHRpbmcgZGVidWdnZXIiKToKKyAgICAgICAgY2FsbGVxdWFsKDEsIDEpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfYXNzZXJ0cmV3cml0ZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRyZXdyaXRlLnB5CmluZGV4IDE0NGY2MjViYzZj
M2NkZWE3YTU1YTgyY2Y5NjdjN2NhYjkxNmMyZTkuLjg3ZGFkYTIxM2Q2NTJiMDFmOTQwZGY3ZGVh
MTc1ZmFlODAxNzg1MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3Nl
cnRyZXdyaXRlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRyZXdyaXRl
LnB5CkBAIC0xLDQgKzEsNyBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGlt
cG9ydCBnbG9iCiBpbXBvcnQgb3MKQEAgLTcsMTYgKzEwLDE2IEBAIGltcG9ydCBzdGF0CiBpbXBv
cnQgc3lzCiBpbXBvcnQgdGV4dHdyYXAKIGltcG9ydCB6aXBmaWxlCisKIGltcG9ydCBweQotaW1w
b3J0IHB5dGVzdAoraW1wb3J0IHNpeAogCiBpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IHB5
dGVzdAogZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgdXRpbAotZnJvbSBfcHl0ZXN0LmFz
c2VydGlvbi5yZXdyaXRlIGltcG9ydCAoCi0gICAgcmV3cml0ZV9hc3NlcnRzLAotICAgIFBZVEVT
VF9UQUcsCi0gICAgQXNzZXJ0aW9uUmV3cml0aW5nSG9vaywKLSkKK2Zyb20gX3B5dGVzdC5hc3Nl
cnRpb24ucmV3cml0ZSBpbXBvcnQgQXNzZXJ0aW9uUmV3cml0aW5nSG9vaworZnJvbSBfcHl0ZXN0
LmFzc2VydGlvbi5yZXdyaXRlIGltcG9ydCBQWVRFU1RfVEFHCitmcm9tIF9weXRlc3QuYXNzZXJ0
aW9uLnJld3JpdGUgaW1wb3J0IHJld3JpdGVfYXNzZXJ0cwogZnJvbSBfcHl0ZXN0Lm1haW4gaW1w
b3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAogCiBhc3QgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJh
c3QiKQpAQCAtNDksMTQgKzUyLDE0IEBAIGRlZiBnZXRtc2coZiwgZXh0cmFfbnM9Tm9uZSwgbXVz
dF9wYXNzPUZhbHNlKToKICAgICBucyA9IHt9CiAgICAgaWYgZXh0cmFfbnMgaXMgbm90IE5vbmU6
CiAgICAgICAgIG5zLnVwZGF0ZShleHRyYV9ucykKLSAgICBweS5idWlsdGluLmV4ZWNfKGNvZGUs
IG5zKQorICAgIGV4ZWMoY29kZSwgbnMpCiAgICAgZnVuYyA9IG5zW2YuX19uYW1lX19dCiAgICAg
dHJ5OgogICAgICAgICBmdW5jKCkKICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CiAgICAgICAg
IGlmIG11c3RfcGFzczoKICAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJzaG91bGRuJ3QgaGF2ZSBy
YWlzZWQiKQotICAgICAgICBzID0gc3RyKHN5cy5leGNfaW5mbygpWzFdKQorICAgICAgICBzID0g
c2l4LnRleHRfdHlwZShzeXMuZXhjX2luZm8oKVsxXSkKICAgICAgICAgaWYgbm90IHMuc3RhcnRz
d2l0aCgiYXNzZXJ0Iik6CiAgICAgICAgICAgICByZXR1cm4gIkFzc2VydGlvbkVycm9yOiAiICsg
cwogICAgICAgICByZXR1cm4gcwpAQCAtNjUsNDEgKzY4LDE3IEBAIGRlZiBnZXRtc2coZiwgZXh0
cmFfbnM9Tm9uZSwgbXVzdF9wYXNzPUZhbHNlKToKICAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJm
dW5jdGlvbiBkaWRuJ3QgcmFpc2UgYXQgYWxsIikKIAogCi1kZWYgYWRqdXN0X2JvZHlfZm9yX25l
d19kb2NzdHJpbmdfaW5fbW9kdWxlX25vZGUobSk6Ci0gICAgIiIiTW9kdWxlIGRvY3N0cmluZ3Mg
aW4gMy44IGFyZSBwYXJ0IG9mIE1vZHVsZSBub2RlLgotICAgIFRoaXMgd2FzIGJyaWVmbHkgaW4g
My43IGFzIHdlbGwgYnV0IGdvdCByZXZlcnRlZCBpbiBiZXRhIDUuCi0KLSAgICBJdCdzIG5vdCBp
biB0aGUgYm9keSBzbyB3ZSByZW1vdmUgaXQgc28gdGhlIGZvbGxvd2luZyBib2R5IGl0ZW1zIGhh
dmUKLSAgICB0aGUgc2FtZSBpbmRleGVzIG9uIGFsbCBQeXRob24gdmVyc2lvbnM6Ci0KLSAgICBU
T0RPOgotCi0gICAgV2UgaGF2ZSBhIGNvbXBsaWNhdGVkIHN5cy52ZXJzaW9uX2luZm8gaWYgaW4g
aGVyZSB0byBlYXNlIHRlc3Rpbmcgb24KLSAgICB2YXJpb3VzIFB5dGhvbiAzLjcgdmVyc2lvbnMs
IGJ1dCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSAzLjcgY2hlY2sgYWZ0ZXIKLSAgICAzLjcgaXMgcmVs
ZWFzZWQgYXMgc3RhYmxlIHRvIG1ha2UgdGhpcyBjaGVjayBtb3JlIHN0cmFpZ2h0Zm9yd2FyZC4K
LSAgICAiIiIKLSAgICBpZiAoCi0gICAgICAgIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgOCkKLSAg
ICAgICAgYW5kIG5vdCAoKDMsIDcpIDw9IHN5cy52ZXJzaW9uX2luZm8gPD0gKDMsIDcsIDAsICJi
ZXRhIiwgNCkpCi0gICAgKToKLSAgICAgICAgYXNzZXJ0IGxlbihtLmJvZHkpID4gMQotICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMF0sIGFzdC5FeHByKQotICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShtLmJvZHlbMF0udmFsdWUsIGFzdC5TdHIpCi0gICAgICAgIGRlbCBtLmJvZHlb
MF0KLQotCiBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3QpOgotCiAgICAgZGVmIHRl
c3RfcGxhY2VfaW5pdGlhbF9pbXBvcnRzKHNlbGYpOgogICAgICAgICBzID0gIiIiJ0RvYyBzdHJp
bmcnXG5vdGhlciA9IHN0dWZmIiIiCiAgICAgICAgIG0gPSByZXdyaXRlKHMpCi0gICAgICAgIGFk
anVzdF9ib2R5X2Zvcl9uZXdfZG9jc3RyaW5nX2luX21vZHVsZV9ub2RlKG0pCi0gICAgICAgIGZv
ciBpbXAgaW4gbS5ib2R5WzA6Ml06CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVsw
XSwgYXN0LkV4cHIpCisgICAgICAgIGZvciBpbXAgaW4gbS5ib2R5WzE6M106CiAgICAgICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShpbXAsIGFzdC5JbXBvcnQpCiAgICAgICAgICAgICBhc3NlcnQg
aW1wLmxpbmVubyA9PSAyCiAgICAgICAgICAgICBhc3NlcnQgaW1wLmNvbF9vZmZzZXQgPT0gMAot
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMl0sIGFzdC5Bc3NpZ24pCi0gICAgICAg
IHMgPSAiIiJmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50XG5vdGhlcl9zdHVm
ZiIiIgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbM10sIGFzdC5Bc3NpZ24pCisg
ICAgICAgIHMgPSAiIiJmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uXG5vdGhlcl9zdHVm
ZiIiIgogICAgICAgICBtID0gcmV3cml0ZShzKQogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSht
LmJvZHlbMF0sIGFzdC5JbXBvcnRGcm9tKQogICAgICAgICBmb3IgaW1wIGluIG0uYm9keVsxOjNd
OgpAQCAtMTA3LDI2ICs4NiwyNiBAQCBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3Qp
OgogICAgICAgICAgICAgYXNzZXJ0IGltcC5saW5lbm8gPT0gMgogICAgICAgICAgICAgYXNzZXJ0
IGltcC5jb2xfb2Zmc2V0ID09IDAKICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobS5ib2R5WzNd
LCBhc3QuRXhwcikKLSAgICAgICAgcyA9ICIiIidkb2Mgc3RyaW5nJ1xuZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCB3aXRoX3N0YXRlbWVudCIiIgorICAgICAgICBzID0gIiIiJ2RvYyBzdHJpbmcnXG5m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uIiIiCiAgICAgICAgIG0gPSByZXdyaXRlKHMp
Ci0gICAgICAgIGFkanVzdF9ib2R5X2Zvcl9uZXdfZG9jc3RyaW5nX2luX21vZHVsZV9ub2RlKG0p
Ci0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVswXSwgYXN0LkltcG9ydEZyb20pCi0g
ICAgICAgIGZvciBpbXAgaW4gbS5ib2R5WzE6M106CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KG0uYm9keVswXSwgYXN0LkV4cHIpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVsx
XSwgYXN0LkltcG9ydEZyb20pCisgICAgICAgIGZvciBpbXAgaW4gbS5ib2R5WzI6NF06CiAgICAg
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpbXAsIGFzdC5JbXBvcnQpCiAgICAgICAgICAgICBh
c3NlcnQgaW1wLmxpbmVubyA9PSAyCiAgICAgICAgICAgICBhc3NlcnQgaW1wLmNvbF9vZmZzZXQg
PT0gMAotICAgICAgICBzID0gIiIiJ2RvYyBzdHJpbmcnXG5mcm9tIF9fZnV0dXJlX18gaW1wb3J0
IHdpdGhfc3RhdGVtZW50XG5vdGhlciIiIgorICAgICAgICBzID0gIiIiJ2RvYyBzdHJpbmcnXG5m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uXG5vdGhlciIiIgogICAgICAgICBtID0gcmV3
cml0ZShzKQotICAgICAgICBhZGp1c3RfYm9keV9mb3JfbmV3X2RvY3N0cmluZ19pbl9tb2R1bGVf
bm9kZShtKQotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMF0sIGFzdC5JbXBvcnRG
cm9tKQotICAgICAgICBmb3IgaW1wIGluIG0uYm9keVsxOjNdOgorICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShtLmJvZHlbMF0sIGFzdC5FeHByKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSht
LmJvZHlbMV0sIGFzdC5JbXBvcnRGcm9tKQorICAgICAgICBmb3IgaW1wIGluIG0uYm9keVsyOjRd
OgogICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaW1wLCBhc3QuSW1wb3J0KQogICAgICAg
ICAgICAgYXNzZXJ0IGltcC5saW5lbm8gPT0gMwogICAgICAgICAgICAgYXNzZXJ0IGltcC5jb2xf
b2Zmc2V0ID09IDAKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobS5ib2R5WzNdLCBhc3QuRXhw
cikKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobS5ib2R5WzRdLCBhc3QuRXhwcikKICAgICAg
ICAgcyA9ICIiImZyb20gLiBpbXBvcnQgcmVsYXRpdmVcbm90aGVyX3N0dWZmIiIiCiAgICAgICAg
IG0gPSByZXdyaXRlKHMpCi0gICAgICAgIGZvciBpbXAgaW4gbS5ib2R5WzA6Ml06CisgICAgICAg
IGZvciBpbXAgaW4gbS5ib2R5WzoyXToKICAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGlt
cCwgYXN0LkltcG9ydCkKICAgICAgICAgICAgIGFzc2VydCBpbXAubGluZW5vID09IDEKICAgICAg
ICAgICAgIGFzc2VydCBpbXAuY29sX29mZnNldCA9PSAwCkBAIC0xMzUsOSArMTE0LDggQEAgY2xh
c3MgVGVzdEFzc2VydGlvblJld3JpdGUob2JqZWN0KToKICAgICBkZWYgdGVzdF9kb250X3Jld3Jp
dGUoc2VsZik6CiAgICAgICAgIHMgPSAiIiInUFlURVNUX0RPTlRfUkVXUklURSdcbmFzc2VydCAx
NCIiIgogICAgICAgICBtID0gcmV3cml0ZShzKQotICAgICAgICBhZGp1c3RfYm9keV9mb3JfbmV3
X2RvY3N0cmluZ19pbl9tb2R1bGVfbm9kZShtKQotICAgICAgICBhc3NlcnQgbGVuKG0uYm9keSkg
PT0gMQotICAgICAgICBhc3NlcnQgbS5ib2R5WzBdLm1zZyBpcyBOb25lCisgICAgICAgIGFzc2Vy
dCBsZW4obS5ib2R5KSA9PSAyCisgICAgICAgIGFzc2VydCBtLmJvZHlbMV0ubXNnIGlzIE5vbmUK
IAogICAgIGRlZiB0ZXN0X2RvbnRfcmV3cml0ZV9wbHVnaW4oc2VsZiwgdGVzdGRpcik6CiAgICAg
ICAgIGNvbnRlbnRzID0gewpAQCAtMTQ5LDggKzEyNyw3IEBAIGNsYXNzIFRlc3RBc3NlcnRpb25S
ZXdyaXRlKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnBy
b2Nlc3MoKQogICAgICAgICBhc3NlcnQgIndhcm5pbmdzIiBub3QgaW4gIiIuam9pbihyZXN1bHQu
b3V0bGluZXMpCiAKLSAgICBkZWYgdGVzdF9uYW1lKHNlbGYpOgotCisgICAgZGVmIHRlc3RfbmFt
ZShzZWxmLCByZXF1ZXN0KToKICAgICAgICAgZGVmIGYoKToKICAgICAgICAgICAgIGFzc2VydCBG
YWxzZQogCkBAIC0xNzAsMTggKzE0Nyw2OCBAQCBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShv
YmplY3QpOgogICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAgYXNzZXJ0IHN5cyA9PSA0Mgog
Ci0gICAgICAgIGFzc2VydCBnZXRtc2coZiwgeyJzeXMiOiBzeXN9KSA9PSAiYXNzZXJ0IHN5cyA9
PSA0MiIKKyAgICAgICAgdmVyYm9zZSA9IHJlcXVlc3QuY29uZmlnLmdldG9wdGlvbigidmVyYm9z
ZSIpCisgICAgICAgIG1zZyA9IGdldG1zZyhmLCB7InN5cyI6IHN5c30pCisgICAgICAgIGlmIHZl
cmJvc2UgPiAwOgorICAgICAgICAgICAgYXNzZXJ0IG1zZyA9PSAoCisgICAgICAgICAgICAgICAg
ImFzc2VydCA8bW9kdWxlICdzeXMnIChidWlsdC1pbik+ID09IDQyXG4iCisgICAgICAgICAgICAg
ICAgIiAgLTxtb2R1bGUgJ3N5cycgKGJ1aWx0LWluKT5cbiIKKyAgICAgICAgICAgICAgICAiICAr
NDIiCisgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgbXNn
ID09ICJhc3NlcnQgc3lzID09IDQyIgogCiAgICAgICAgIGRlZiBmKCk6Ci0gICAgICAgICAgICBh
c3NlcnQgY2xzID09IDQyICAjIG5vcWEKKyAgICAgICAgICAgIGFzc2VydCBjbHMgPT0gNDIgICMg
bm9xYTogRjgyMQogCiAgICAgICAgIGNsYXNzIFgob2JqZWN0KToKICAgICAgICAgICAgIHBhc3MK
IAotICAgICAgICBhc3NlcnQgZ2V0bXNnKGYsIHsiY2xzIjogWH0pID09ICJhc3NlcnQgY2xzID09
IDQyIgorICAgICAgICBtc2cgPSBnZXRtc2coZiwgeyJjbHMiOiBYfSkuc3BsaXRsaW5lcygpCisg
ICAgICAgIGlmIHZlcmJvc2UgPiAwOgorICAgICAgICAgICAgaWYgc2l4LlBZMjoKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgbXNnID09IFsKKyAgICAgICAgICAgICAgICAgICAgImFzc2VydCA8Y2xh
c3MgJ3Rlc3RfYXNzZXJ0cmV3cml0ZS5YJz4gPT0gNDIiLAorICAgICAgICAgICAgICAgICAgICAi
ICAtPGNsYXNzICd0ZXN0X2Fzc2VydHJld3JpdGUuWCc+IiwKKyAgICAgICAgICAgICAgICAgICAg
IiAgKzQyIiwKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIGFzc2VydCBtc2cgPT0gWworICAgICAgICAgICAgICAgICAgICAiYXNzZXJ0IDxjbGFz
cyAndGVzdF8uLi5lLjxsb2NhbHM+LlgnPiA9PSA0MiIsCisgICAgICAgICAgICAgICAgICAgICIg
IC08Y2xhc3MgJ3Rlc3RfYXNzZXJ0cmV3cml0ZS5UZXN0QXNzZXJ0aW9uUmV3cml0ZS50ZXN0X25h
bWUuPGxvY2Fscz4uWCc+IiwKKyAgICAgICAgICAgICAgICAgICAgIiAgKzQyIiwKKyAgICAgICAg
ICAgICAgICBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgbXNnID09IFsiYXNz
ZXJ0IGNscyA9PSA0MiJdCisKKyAgICBkZWYgdGVzdF9kb250X3Jld3JpdGVfaWZfaGFzYXR0cl9m
YWlscyhzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgY2xhc3MgWShvYmplY3QpOgorICAgICAgICAg
ICAgIiIiIEEgY2xhc3Mgd2hvcyBnZXRhdHRyIGZhaWxzLCBidXQgbm90IHdpdGggYEF0dHJpYnV0
ZUVycm9yYCAiIiIKKworICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHJpYnV0
ZV9uYW1lKToKKyAgICAgICAgICAgICAgICByYWlzZSBLZXlFcnJvcigpCisKKyAgICAgICAgICAg
IGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gIlkiCisKKyAgICAg
ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLmZvbyA9IDMK
IAotICAgIGRlZiB0ZXN0X2Fzc2VydF9hbHJlYWR5X2hhc19tZXNzYWdlKHNlbGYpOgorICAgICAg
ICBkZWYgZigpOgorICAgICAgICAgICAgYXNzZXJ0IGNscygpLmZvbyA9PSAyICAjIG5vcWEKKwor
ICAgICAgICAjIFhYWDogbG9va3MgbGlrZSB0aGUgIndoZXJlIiBzaG91bGQgYWxzbyBiZSB0aGVy
ZSBpbiB2ZXJib3NlIG1vZGU/IQorICAgICAgICBtZXNzYWdlID0gZ2V0bXNnKGYsIHsiY2xzIjog
WX0pLnNwbGl0bGluZXMoKQorICAgICAgICBpZiByZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oInZl
cmJvc2UiKSA+IDA6CisgICAgICAgICAgICBhc3NlcnQgbWVzc2FnZSA9PSBbImFzc2VydCAzID09
IDIiLCAiICAtMyIsICIgICsyIl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBt
ZXNzYWdlID09IFsKKyAgICAgICAgICAgICAgICAiYXNzZXJ0IDMgPT0gMiIsCisgICAgICAgICAg
ICAgICAgIiArICB3aGVyZSAzID0gWS5mb28iLAorICAgICAgICAgICAgICAgICIgKyAgICB3aGVy
ZSBZID0gY2xzKCkiLAorICAgICAgICAgICAgXQogCisgICAgZGVmIHRlc3RfYXNzZXJ0X2FscmVh
ZHlfaGFzX21lc3NhZ2Uoc2VsZik6CiAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICBhc3Nl
cnQgRmFsc2UsICJzb21ldGhpbmcgYmFkISIKIApAQCAtMjUwLDggKzI3NywxNiBAQCBjbGFzcyBU
ZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3QpOgogICAgICAgICAgICAgWyIqQXNzZXJ0aW9uRXJy
b3I6IFRvIGJlIGVzY2FwZWQ6ICUiLCAiKmFzc2VydCAxID09IDIiXQogICAgICAgICApCiAKLSAg
ICBkZWYgdGVzdF9ib29sb3Aoc2VsZik6CisgICAgQHB5dGVzdC5tYXJrLnNraXBpZigKKyAgICAg
ICAgc3lzLnZlcnNpb25faW5mbyA8ICgzLCksIHJlYXNvbj0iYnl0ZXMgaXMgYSBzdHJpbmcgdHlw
ZSBpbiBweXRob24gMiIKKyAgICApCisgICAgZGVmIHRlc3RfYXNzZXJ0aW9uX21lc3NhZ2VzX2J5
dGVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0
X2J5dGVzX2Fzc2VydGlvbigpOlxuICAgIGFzc2VydCBGYWxzZSwgYidvaGFpISdcbiIpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgPT0gMQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqQXNzZXJ0aW9u
RXJyb3I6IGInb2hhaSEnIiwgIiphc3NlcnQgRmFsc2UiXSkKIAorICAgIGRlZiB0ZXN0X2Jvb2xv
cChzZWxmKToKICAgICAgICAgZGVmIGYoKToKICAgICAgICAgICAgIGYgPSBnID0gRmFsc2UKICAg
ICAgICAgICAgIGFzc2VydCBmIGFuZCBnCkBAIC0zMzEsNyArMzY2LDYgQEAgY2xhc3MgVGVzdEFz
c2VydGlvblJld3JpdGUob2JqZWN0KToKICAgICAgICAgZ2V0bXNnKGYsIG11c3RfcGFzcz1UcnVl
KQogCiAgICAgZGVmIHRlc3Rfc2hvcnRfY2lyY3VpdF9ldmFsdWF0aW9uKHNlbGYpOgotCiAgICAg
ICAgIGRlZiBmKCk6CiAgICAgICAgICAgICBhc3NlcnQgVHJ1ZSBvciBleHBsb2RlICAjIG5vcWEK
IApAQCAtMzQ0LDcgKzM3OCw2IEBAIGNsYXNzIFRlc3RBc3NlcnRpb25SZXdyaXRlKG9iamVjdCk6
CiAgICAgICAgIGdldG1zZyhmLCBtdXN0X3Bhc3M9VHJ1ZSkKIAogICAgIGRlZiB0ZXN0X3VuYXJ5
X29wKHNlbGYpOgotCiAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICB4ID0gVHJ1ZQogICAg
ICAgICAgICAgYXNzZXJ0IG5vdCB4CkBAIC0zNzAsNyArNDAzLDYgQEAgY2xhc3MgVGVzdEFzc2Vy
dGlvblJld3JpdGUob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0
ICgrMCArIDApIgogCiAgICAgZGVmIHRlc3RfYmluYXJ5X29wKHNlbGYpOgotCiAgICAgICAgIGRl
ZiBmKCk6CiAgICAgICAgICAgICB4ID0gMQogICAgICAgICAgICAgeSA9IC0xCkBAIC0zODQsNyAr
NDE2LDYgQEAgY2xhc3MgVGVzdEFzc2VydGlvblJld3JpdGUob2JqZWN0KToKICAgICAgICAgYXNz
ZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0IG5vdCAoNSAlIDQpIgogCiAgICAgZGVmIHRlc3RfYm9v
bG9wX3BlcmNlbnQoc2VsZik6Ci0KICAgICAgICAgZGVmIGYoKToKICAgICAgICAgICAgIGFzc2Vy
dCAzICUgMiBhbmQgRmFsc2UKIApAQCAtNDEwLDggKzQ0MSwyMCBAQCBjbGFzcyBUZXN0QXNzZXJ0
aW9uUmV3cml0ZShvYmplY3QpOgogICAgICAgICApCiAgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0
KCkuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0xKQogCi0gICAgZGVmIHRlc3RfY2FsbChzZWxmKToK
KyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJzeXMudmVyc2lvbl9pbmZvIDwgKDMsNSkiKQorICAg
IGRlZiB0ZXN0X3N0YXJyZWRfd2l0aF9zaWRlX2VmZmVjdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgIiIiU2VlICM0NDEyIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgICIiIlwKKyAgICAgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICAgICAgZiA9IGxh
bWJkYSB4OiB4CisgICAgICAgICAgICAgICAgeCA9IGl0ZXIoWzEsIDIsIDNdKQorICAgICAgICAg
ICAgICAgIGFzc2VydCAyICogbmV4dCh4KSA9PSBmKCpbbmV4dCh4KV0pCisgICAgICAgICAgICAi
IiIKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgpLmFzc2VydF9vdXRjb21l
cyhwYXNzZWQ9MSkKIAorICAgIGRlZiB0ZXN0X2NhbGwoc2VsZik6CiAgICAgICAgIGRlZiBnKGE9
NDIsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIApAQCAtNDgz
LDcgKzUyNiw2IEBAIGNsYXNzIFRlc3RBc3NlcnRpb25SZXdyaXRlKG9iamVjdCk6CiAgICAgICAg
ICkKIAogICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZShzZWxmKToKLQogICAgICAgICBjbGFzcyBYKG9i
amVjdCk6CiAgICAgICAgICAgICBnID0gMwogCkBAIC01MDksNyArNTUxLDYgQEAgY2xhc3MgVGVz
dEFzc2VydGlvblJld3JpdGUob2JqZWN0KToKICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfY29t
cGFyaXNvbnMoc2VsZik6Ci0KICAgICAgICAgZGVmIGYoKToKICAgICAgICAgICAgIGEsIGIgPSBy
YW5nZSgyKQogICAgICAgICAgICAgYXNzZXJ0IGIgPCBhCkBAIC01NDEsMTkgKzU4MiwxOCBAQCBj
bGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3QpOgogCiAgICAgICAgIGdldG1zZyhmLCBt
dXN0X3Bhc3M9VHJ1ZSkKIAotICAgIGRlZiB0ZXN0X2xlbihzZWxmKToKLQorICAgIGRlZiB0ZXN0
X2xlbihzZWxmLCByZXF1ZXN0KToKICAgICAgICAgZGVmIGYoKToKICAgICAgICAgICAgIHZhbHVl
cyA9IGxpc3QocmFuZ2UoMTApKQogICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEx
CiAKLSAgICAgICAgYXNzZXJ0IGdldG1zZyhmKS5zdGFydHN3aXRoKAotICAgICAgICAgICAgIiIi
YXNzZXJ0IDEwID09IDExCi0gKyAgd2hlcmUgMTAgPSBsZW4oWyIiIgotICAgICAgICApCisgICAg
ICAgIG1zZyA9IGdldG1zZyhmKQorICAgICAgICBpZiByZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24o
InZlcmJvc2UiKSA+IDA6CisgICAgICAgICAgICBhc3NlcnQgbXNnID09ICJhc3NlcnQgMTAgPT0g
MTFcbiAgLTEwXG4gICsxMSIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBtc2cg
PT0gImFzc2VydCAxMCA9PSAxMVxuICsgIHdoZXJlIDEwID0gbGVuKFswLCAxLCAyLCAzLCA0LCA1
LCAuLi5dKSIKIAogICAgIGRlZiB0ZXN0X2N1c3RvbV9yZXByY29tcGFyZShzZWxmLCBtb25rZXlw
YXRjaCk6Ci0KICAgICAgICAgZGVmIG15X3JlcHJjb21wYXJlKG9wLCBsZWZ0LCByaWdodCk6CiAg
ICAgICAgICAgICByZXR1cm4gIjQyIgogCkBAIC01NjUsNyArNjA1LDcgQEAgY2xhc3MgVGVzdEFz
c2VydGlvblJld3JpdGUob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNz
ZXJ0IDQyIgogCiAgICAgICAgIGRlZiBteV9yZXByY29tcGFyZShvcCwgbGVmdCwgcmlnaHQpOgot
ICAgICAgICAgICAgcmV0dXJuICIlcyAlcyAlcyIgJSAobGVmdCwgb3AsIHJpZ2h0KQorICAgICAg
ICAgICAgcmV0dXJuICJ7fSB7fSB7fSIuZm9ybWF0KGxlZnQsIG9wLCByaWdodCkKIAogICAgICAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKHV0aWwsICJfcmVwcmNvbXBhcmUiLCBteV9yZXByY29tcGFy
ZSkKIApAQCAtNTc1LDExICs2MTUsOCBAQCBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmpl
Y3QpOgogICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpID09ICJhc3NlcnQgNSA8PSA0IgogCiAgICAg
ZGVmIHRlc3RfYXNzZXJ0X3JhaXNpbmdfbm9uemVyb19pbl9jb21wYXJpc29uKHNlbGYpOgotCiAg
ICAgICAgIGRlZiBmKCk6Ci0KICAgICAgICAgICAgIGNsYXNzIEEob2JqZWN0KToKLQogICAgICAg
ICAgICAgICAgIGRlZiBfX25vbnplcm9fXyhzZWxmKToKICAgICAgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcig0MikKIApAQCAtNTk3LDE2ICs2MzQsMTMgQEAgY2xhc3MgVGVzdEFzc2Vy
dGlvblJld3JpdGUob2JqZWN0KToKICAgICAgICAgYXNzZXJ0ICI8TVk0MiBvYmplY3Q+IDwgMCIg
aW4gZ2V0bXNnKGYpCiAKICAgICBkZWYgdGVzdF9mb3JtYXRjaGFyKHNlbGYpOgotCiAgICAgICAg
IGRlZiBmKCk6CiAgICAgICAgICAgICBhc3NlcnQgIiV0ZXN0IiA9PSAidGVzdCIKIAogICAgICAg
ICBhc3NlcnQgZ2V0bXNnKGYpLnN0YXJ0c3dpdGgoImFzc2VydCAnJXRlc3QnID09ICd0ZXN0JyIp
CiAKLSAgICBkZWYgdGVzdF9jdXN0b21fcmVwcihzZWxmKToKLQorICAgIGRlZiB0ZXN0X2N1c3Rv
bV9yZXByKHNlbGYsIHJlcXVlc3QpOgogICAgICAgICBkZWYgZigpOgotCiAgICAgICAgICAgICBj
bGFzcyBGb28ob2JqZWN0KToKICAgICAgICAgICAgICAgICBhID0gMQogCkBAIC02MTYsMTEgKzY1
MCwyOSBAQCBjbGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZShvYmplY3QpOgogICAgICAgICAgICAg
ZiA9IEZvbygpCiAgICAgICAgICAgICBhc3NlcnQgMCA9PSBmLmEKIAotICAgICAgICBhc3NlcnQg
ciJ3aGVyZSAxID0gXG57IFxufiBcbn0uYSIgaW4gdXRpbC5fZm9ybWF0X2xpbmVzKFtnZXRtc2co
ZildKVswXQorICAgICAgICBsaW5lcyA9IHV0aWwuX2Zvcm1hdF9saW5lcyhbZ2V0bXNnKGYpXSkK
KyAgICAgICAgaWYgcmVxdWVzdC5jb25maWcuZ2V0b3B0aW9uKCJ2ZXJib3NlIikgPiAwOgorICAg
ICAgICAgICAgYXNzZXJ0IGxpbmVzID09IFsiYXNzZXJ0IDAgPT0gMVxuICAtMFxuICArMSJdCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgbGluZXMgPT0gWyJhc3NlcnQgMCA9PSAx
XG4gKyAgd2hlcmUgMSA9IFxcbnsgXFxufiBcXG59LmEiXQogCisgICAgZGVmIHRlc3RfY3VzdG9t
X3JlcHJfbm9uX2FzY2lpKHNlbGYpOgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgY2xh
c3MgQShvYmplY3QpOgorICAgICAgICAgICAgICAgIG5hbWUgPSB1IsOkIgogCi1jbGFzcyBUZXN0
UmV3cml0ZU9uSW1wb3J0KG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5uYW1lLmVuY29kZSgiVVRGLTgi
KSAgIyBvbmx5IGxlZ2FsIGluIHB5dGhvbjIKIAorICAgICAgICAgICAgYSA9IEEoKQorICAgICAg
ICAgICAgYXNzZXJ0IG5vdCBhLm5hbWUKKworICAgICAgICBtc2cgPSBnZXRtc2coZikKKyAgICAg
ICAgYXNzZXJ0ICJVbmljb2RlRGVjb2RlRXJyb3IiIG5vdCBpbiBtc2cKKyAgICAgICAgYXNzZXJ0
ICJVbmljb2RlRW5jb2RlRXJyb3IiIG5vdCBpbiBtc2cKKworCitjbGFzcyBUZXN0UmV3cml0ZU9u
SW1wb3J0KG9iamVjdCk6CiAgICAgZGVmIHRlc3RfcHljYWNoZV9pc19hX2ZpbGUoc2VsZiwgdGVz
dGRpcik6CiAgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oIl9fcHljYWNoZV9fIikud3JpdGUo
IkhlbGxvIikKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKApAQCAtNjY2LDE0ICs3MTgsMTAg
QEAgY2xhc3MgVGVzdFJld3JpdGVPbkltcG9ydChvYmplY3QpOgogICAgIGRlZiB0ZXN0X3JlYWRv
bmx5KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBzdWIgPSB0ZXN0ZGlyLm1rZGlyKCJ0ZXN0aW5n
IikKICAgICAgICAgc3ViLmpvaW4oInRlc3RfcmVhZG9ubHkucHkiKS53cml0ZSgKLSAgICAgICAg
ICAgIHB5LmJ1aWx0aW4uX3RvdGV4dCgKLSAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
IGIiIiIKIGRlZiB0ZXN0X3Jld3JpdHRlbigpOgogICAgIGFzc2VydCAiQHB5X2J1aWx0aW5zIiBp
biBnbG9iYWxzKCkKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgKS5lbmNvZGUoCi0gICAg
ICAgICAgICAgICAgInV0Zi04IgotICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICIiIiwKICAg
ICAgICAgICAgICJ3YiIsCiAgICAgICAgICkKICAgICAgICAgb2xkX21vZGUgPSBzdWIuc3RhdCgp
Lm1vZGUKQEAgLTc3NCwxNiArODIyLDE2IEBAIGRlZiB0ZXN0X3Jld3JpdHRlbigpOgogICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoImltcG9ydCBhX3BhY2thZ2Vfd2l0aG91dF9pbml0X3B5Lm1v
ZHVsZSIpCiAgICAgICAgIGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVzdCgpLnJldCA9PSBFWElUX05P
VEVTVFNDT0xMRUNURUQKIAotICAgIGRlZiB0ZXN0X3Jld3JpdGVfd2FybmluZyhzZWxmLCBweXRl
c3Rjb25maWcsIG1vbmtleXBhdGNoKToKLSAgICAgICAgaG9vayA9IEFzc2VydGlvblJld3JpdGlu
Z0hvb2socHl0ZXN0Y29uZmlnKQotICAgICAgICB3YXJuaW5ncyA9IFtdCi0KLSAgICAgICAgZGVm
IG15d2Fybihjb2RlLCBtc2cpOgotICAgICAgICAgICAgd2FybmluZ3MuYXBwZW5kKChjb2RlLCBt
c2cpKQotCi0gICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoaG9vay5jb25maWcsICJ3YXJuIiwg
bXl3YXJuKQotICAgICAgICBob29rLm1hcmtfcmV3cml0ZSgiX3B5dGVzdCIpCi0gICAgICAgIGFz
c2VydCAiX3B5dGVzdCIgaW4gd2FybmluZ3NbMF1bMV0KKyAgICBkZWYgdGVzdF9yZXdyaXRlX3dh
cm5pbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAg
ICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBweXRl
c3QucmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGUoIl9weXRlc3QiKQorICAgICAgICAiIiIKKyAgICAg
ICAgKQorICAgICAgICAjIG5lZWRzIHRvIGJlIGEgc3VicHJvY2VzcyBiZWNhdXNlIHB5dGVzdGVy
IGV4cGxpY2l0bHkgZGlzYWJsZXMgdGhpcyB3YXJuaW5nCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWyIqTW9kdWxlIGFscmVhZHkgaW1wb3J0ZWQqOiBfcHl0ZXN0Il0pCiAKICAgICBkZWYg
dGVzdF9yZXdyaXRlX21vZHVsZV9pbXBvcnRlZF9mcm9tX2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIp
OgogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKQEAgLTgwOCw3ICs4NTYsOSBAQCBkZWYg
dGVzdF9yZXdyaXR0ZW4oKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfcmVtZW1i
ZXJfcmV3cml0dGVuX21vZHVsZXM9IiIpCiAgICAgICAgIHdhcm5pbmdzID0gW10KICAgICAgICAg
aG9vayA9IEFzc2VydGlvblJld3JpdGluZ0hvb2socHl0ZXN0Y29uZmlnKQotICAgICAgICBtb25r
ZXlwYXRjaC5zZXRhdHRyKGhvb2suY29uZmlnLCAid2FybiIsIGxhbWJkYSBjb2RlLCBtc2c6IHdh
cm5pbmdzLmFwcGVuZChtc2cpKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAg
ICAgICAgaG9vaywgIl93YXJuX2FscmVhZHlfaW1wb3J0ZWQiLCBsYW1iZGEgY29kZSwgbXNnOiB3
YXJuaW5ncy5hcHBlbmQobXNnKQorICAgICAgICApCiAgICAgICAgIGhvb2suZmluZF9tb2R1bGUo
InRlc3RfcmVtZW1iZXJfcmV3cml0dGVuX21vZHVsZXMiKQogICAgICAgICBob29rLmxvYWRfbW9k
dWxlKCJ0ZXN0X3JlbWVtYmVyX3Jld3JpdHRlbl9tb2R1bGVzIikKICAgICAgICAgaG9vay5tYXJr
X3Jld3JpdGUoInRlc3RfcmVtZW1iZXJfcmV3cml0dGVuX21vZHVsZXMiKQpAQCAtODcwLDcgKzky
MCw2IEBAIGRlZiB0ZXN0X3Jld3JpdHRlbigpOgogCiAKIGNsYXNzIFRlc3RBc3NlcnRpb25SZXdy
aXRlSG9va0RldGFpbHMob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2xvYWRlcl9pc19wYWNrYWdl
X2ZhbHNlX2Zvcl9tb2R1bGUoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKICAgICAgICAgICAgIHRlc3RfZnVuPSIiIgpAQCAtOTY1LDcgKzEwMTQsNyBAQCBjbGFz
cyBUZXN0QXNzZXJ0aW9uUmV3cml0ZUhvb2tEZXRhaWxzKG9iamVjdCk6CiAgICAgICAgICAgICBl
ID0gSU9FcnJvcigpCiAgICAgICAgICAgICBlLmVycm5vID0gMTAKICAgICAgICAgICAgIHJhaXNl
IGUKLSAgICAgICAgICAgIHlpZWxkICAjIG5vcWEKKyAgICAgICAgICAgIHlpZWxkCiAKICAgICAg
ICAgbW9ua2V5cGF0Y2guc2V0YXR0cihhdG9taWN3cml0ZXMsICJhdG9taWNfd3JpdGUiLCBhdG9t
aWNfd3JpdGVfZmFpbGVkKQogICAgICAgICBhc3NlcnQgbm90IF93cml0ZV9weWMoc3RhdGUsIFsx
XSwgc291cmNlX3BhdGguc3RhdCgpLCBweWNwYXRoKQpAQCAtMTA1MCwyNCArMTA5OSw2NiBAQCBj
bGFzcyBUZXN0QXNzZXJ0aW9uUmV3cml0ZUhvb2tEZXRhaWxzKG9iamVjdCk6CiAgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbIiogMSBwYXNzZWQqIl0pCiAKKyAgICBkZWYgdGVzdF9yZWxvYWRfcmVsb2Fk
cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiUmVsb2FkaW5nIGEgbW9kdWxlIGFmdGVyIGNo
YW5nZSBwaWNrcyB1cCB0aGUgY2hhbmdlLiIiIgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2lu
KCJmaWxlLnB5Iikud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAg
ICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYgcmVsb2FkZWQoKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgICAgICAgICAgZGVmIHJld3JpdGVfc2VsZigpOgorICAgICAg
ICAgICAgICAgIHdpdGggb3BlbihfX2ZpbGVfXywgJ3cnKSBhcyBzZWxmOgorICAgICAgICAgICAg
ICAgICAgICBzZWxmLndyaXRlKCdkZWYgcmVsb2FkZWQoKTogcmV0dXJuIFRydWUnKQorICAgICAg
ICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5q
b2luKCJweXRlc3QuaW5pIikud3JpdGUoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisg
ICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgcHl0
aG9uX2ZpbGVzID0gKi5weQorICAgICAgICAiIiIKKyAgICAgICAgICAgICkKKyAgICAgICAgKQor
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgIHRlc3RfZnVuPSIiIgor
ICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg
IGZyb20gaW1wIGltcG9ydCByZWxvYWQKKyAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoK
KyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2xvYWRlcigpOgor
ICAgICAgICAgICAgICAgIGltcG9ydCBmaWxlCisgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBm
aWxlLnJlbG9hZGVkKCkKKyAgICAgICAgICAgICAgICBmaWxlLnJld3JpdGVfc2VsZigpCisgICAg
ICAgICAgICAgICAgcmVsb2FkKGZpbGUpCisgICAgICAgICAgICAgICAgYXNzZXJ0IGZpbGUucmVs
b2FkZWQoKQorICAgICAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi1zIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKiAxIHBhc3NlZCoiXSkKKwogICAgIGRlZiB0ZXN0X2dldF9kYXRhX3N1cHBvcnQoc2VsZiwg
dGVzdGRpcik6CiAgICAgICAgICIiIkltcGxlbWVudCBvcHRpb25hbCBQRVAzMDIgYXBpICgjODA4
KS4KICAgICAgICAgIiIiCiAgICAgICAgIHBhdGggPSB0ZXN0ZGlyLm1rcHlkaXIoImZvbyIpCiAg
ICAgICAgIHBhdGguam9pbigidGVzdF9mb28ucHkiKS53cml0ZSgKLSAgICAgICAgICAgIF9weXRl
c3QuX2NvZGUuU291cmNlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAg
ICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBjbGFzcyBUZXN0KG9iamVjdCk6CisgICAgICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgICAg
IGltcG9ydCBwa2d1dGlsCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gcGtndXRpbC5n
ZXRfZGF0YSgnZm9vLnRlc3RfZm9vJywgJ2RhdGEudHh0JykKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydCBkYXRhID09IGInSGV5JwogICAgICAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgY2xhc3MgVGVzdChvYmplY3QpOgotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhzZWxm
KToKLSAgICAgICAgICAgICAgICAgICAgaW1wb3J0IHBrZ3V0aWwKLSAgICAgICAgICAgICAgICAg
ICAgZGF0YSA9IHBrZ3V0aWwuZ2V0X2RhdGEoJ2Zvby50ZXN0X2ZvbycsICdkYXRhLnR4dCcpCi0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydCBkYXRhID09IGInSGV5JwotICAgICAgICAiIiIKICAg
ICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICBwYXRoLmpvaW4oImRhdGEudHh0Iikud3Jp
dGUoIkhleSIpCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMSBwYXNzZWQqIikKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQogCiAKIGRlZiB0ZXN0X2lzc3Vl
NzMxKHRlc3RkaXIpOgpAQCAtMTA5MCw3ICsxMTgxLDYgQEAgZGVmIHRlc3RfaXNzdWU3MzEodGVz
dGRpcik6CiAKIAogY2xhc3MgVGVzdElzc3VlOTI1KG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9z
aW1wbGVfY2FzZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAog
ICAgICAgICAgICAgIiIiCkBAIC0xMDk5LDcgKzExODksNyBAQCBjbGFzcyBUZXN0SXNzdWU5MjUo
b2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIipFKmFz
c2VydCAoRmFsc2UgPT0gRmFsc2UpID09IEZhbHNlIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsiKkUqYXNzZXJ0IChGYWxzZSA9PSBGYWxzZSkgPT0gRmFsc2UiXSkKIAog
ICAgIGRlZiB0ZXN0X2xvbmdfY2FzZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKApAQCAtMTEwOSw3ICsxMTk5LDcgQEAgY2xhc3MgVGVzdElzc3VlOTI1KG9iamVj
dCk6CiAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqRSphc3NlcnQg
KEZhbHNlID09IFRydWUpID09IFRydWUiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWyIqRSphc3NlcnQgKEZhbHNlID09IFRydWUpID09IFRydWUiXSkKIAogICAgIGRlZiB0
ZXN0X21hbnlfYnJhY2tldHMoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKQEAgLTExMTksMjYgKzEyMDksMTg5IEBAIGNsYXNzIFRlc3RJc3N1ZTkyNShvYmplY3Qp
OgogICAgICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIipFKmFzc2Vy
dCBUcnVlID09ICgoRmFsc2UgPT0gVHJ1ZSkgPT0gVHJ1ZSkiKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWyIqRSphc3NlcnQgVHJ1ZSA9PSAoKEZhbHNlID09IFRydWUpID09
IFRydWUpIl0pCiAKIAotY2xhc3MgVGVzdElzc3VlMjEyMSgpOgorY2xhc3MgVGVzdElzc3VlMjEy
MToKKyAgICBkZWYgdGVzdF9yZXdyaXRlX3B5dGhvbl9maWxlc19jb250YWluX3N1YmRpcnMoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICoq
eworICAgICAgICAgICAgICAgICJ0ZXN0cy9maWxlLnB5IjogIiIiCisgICAgICAgICAgICAgICAg
ZGVmIHRlc3Rfc2ltcGxlX2ZhaWx1cmUoKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IDEg
KyAxID09IDMKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgKQor
ICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAg
ICBbcHl0ZXN0XQorICAgICAgICAgICAgICAgIHB5dGhvbl9maWxlcyA9IHRlc3RzLyoqLnB5Cisg
ICAgICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipFKmFzc2VydCAo
MSArIDEpID09IDMiXSkKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKAorICAgIHN5cy5tYXhzaXpl
IDw9ICgyICoqIDMxIC0gMSksIHJlYXNvbj0iQ2F1c2VzIE92ZXJmbG93RXJyb3Igb24gMzJiaXQg
c3lzdGVtcyIKKykKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgib2Zmc2V0IiwgWy0xLCArMV0p
CitkZWYgdGVzdF9zb3VyY2VfbXRpbWVfbG9uZ19sb25nKHRlc3RkaXIsIG9mZnNldCk6CisgICAg
IiIiU3VwcG9ydCBtb2RpZmljYXRpb24gZGF0ZXMgYWZ0ZXIgMjAzOCBpbiByZXdyaXR0ZW4gZmls
ZXMgKCM0OTAzKS4KKworICAgIHB5dGVzdCB3b3VsZCBjcmFzaCB3aXRoOgogCi0gICAgZGVmIHRl
c3Rfc2ltcGxlKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJ0
ZXN0cy9maWxlLnB5IikuZW5zdXJlKCkud3JpdGUoCisgICAgICAgICAgICBmcC53cml0ZShzdHJ1
Y3QucGFjaygiPGxsIiwgbXRpbWUsIHNpemUpKQorICAgICAgICBFICAgc3RydWN0LmVycm9yOiBh
cmd1bWVudCBvdXQgb2YgcmFuZ2UKKyAgICAiIiIKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRlc3QoKTogcGFzcworICAgICIiIgorICAgICkK
KyAgICAjIHVzZSB1bnNpZ25lZCBsb25nIHRpbWVzdGFtcCB3aGljaCBvdmVyZmxvd3Mgc2lnbmVk
IGxvbmcsCisgICAgIyB3aGljaCB3YXMgdGhlIGNhdXNlIG9mIHRoZSBidWcKKyAgICAjICsxIG9m
ZnNldCBhbHNvIHRlc3RzIG1hc2tpbmcgb2YgMHhGRkZGRkZGRgorICAgIHRpbWVzdGFtcCA9IDIg
KiogMzIgKyBvZmZzZXQKKyAgICBvcy51dGltZShzdHIocCksICh0aW1lc3RhbXAsIHRpbWVzdGFt
cCkpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IDAKKworCitkZWYgdGVzdF9yZXdyaXRlX2luZmluaXRlX3JlY3Vyc2lvbih0ZXN0ZGly
LCBweXRlc3Rjb25maWcsIG1vbmtleXBhdGNoKToKKyAgICAiIiJGaXggaW5maW5pdGUgcmVjdXJz
aW9uIHdoZW4gd3JpdGluZyBweWMgZmlsZXM6IGlmIGFuIGltcG9ydCBoYXBwZW5zIHRvIGJlIHRy
aWdnZXJlZCB3aGVuIHdyaXRpbmcgdGhlIHB5YworICAgIGZpbGUsIHRoaXMgd291bGQgY2F1c2Ug
YW5vdGhlciBjYWxsIHRvIHRoZSBob29rLCB3aGljaCB3b3VsZCB0cmlnZ2VyIGFub3RoZXIgcHlj
IHdyaXRpbmcsIHdoaWNoIGNvdWxkCisgICAgdHJpZ2dlciBhbm90aGVyIGltcG9ydCwgYW5kIHNv
IG9uLiAoIzM1MDYpIiIiCisgICAgZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgcmV3cml0
ZQorCisgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KCkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
dGVzdF9mb289ImRlZiB0ZXN0X2ZvbygpOiBwYXNzIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
dGVzdF9iYXI9ImRlZiB0ZXN0X2JhcigpOiBwYXNzIikKKworICAgIG9yaWdpbmFsX3dyaXRlX3B5
YyA9IHJld3JpdGUuX3dyaXRlX3B5YworCisgICAgd3JpdGVfcHljX2NhbGxlZCA9IFtdCisKKyAg
ICBkZWYgc3B5X3dyaXRlX3B5YygqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAjIG1ha2UgYSBu
b3RlIHRoYXQgd2UgaGF2ZSBjYWxsZWQgX3dyaXRlX3B5YworICAgICAgICB3cml0ZV9weWNfY2Fs
bGVkLmFwcGVuZChUcnVlKQorICAgICAgICAjIHRyeSB0byBpbXBvcnQgYSBtb2R1bGUgYXQgdGhp
cyBwb2ludDogd2Ugc2hvdWxkIG5vdCB0cnkgdG8gcmV3cml0ZSB0aGlzIG1vZHVsZQorICAgICAg
ICBhc3NlcnQgaG9vay5maW5kX21vZHVsZSgidGVzdF9iYXIiKSBpcyBOb25lCisgICAgICAgIHJl
dHVybiBvcmlnaW5hbF93cml0ZV9weWMoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgbW9ua2V5cGF0
Y2guc2V0YXR0cihyZXdyaXRlLCAiX3dyaXRlX3B5YyIsIHNweV93cml0ZV9weWMpCisgICAgbW9u
a2V5cGF0Y2guc2V0YXR0cihzeXMsICJkb250X3dyaXRlX2J5dGVjb2RlIiwgRmFsc2UpCisKKyAg
ICBob29rID0gQXNzZXJ0aW9uUmV3cml0aW5nSG9vayhweXRlc3Rjb25maWcpCisgICAgYXNzZXJ0
IGhvb2suZmluZF9tb2R1bGUoInRlc3RfZm9vIikgaXMgbm90IE5vbmUKKyAgICBhc3NlcnQgbGVu
KHdyaXRlX3B5Y19jYWxsZWQpID09IDEKKworCitjbGFzcyBUZXN0RWFybHlSZXdyaXRlQmFpbG91
dChvYmplY3QpOgorICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBob29rKHNlbGYsIHB5dGVz
dGNvbmZpZywgbW9ua2V5cGF0Y2gsIHRlc3RkaXIpOgorICAgICAgICAiIiJSZXR1cm5zIGEgcGF0
Y2hlZCBBc3NlcnRpb25SZXdyaXRpbmdIb29rIGluc3RhbmNlIHNvIHdlIGNhbiBjb25maWd1cmUg
aXRzIGluaXRpYWwgcGF0aHMgYW5kIHRyYWNrCisgICAgICAgIGlmIGltcC5maW5kX21vZHVsZSBo
YXMgYmVlbiBjYWxsZWQuCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgaW1wCisKKyAgICAg
ICAgc2VsZi5maW5kX21vZHVsZV9jYWxscyA9IFtdCisgICAgICAgIHNlbGYuaW5pdGlhbF9wYXRo
cyA9IHNldCgpCisKKyAgICAgICAgY2xhc3MgU3R1YlNlc3Npb24ob2JqZWN0KToKKyAgICAgICAg
ICAgIF9pbml0aWFscGF0aHMgPSBzZWxmLmluaXRpYWxfcGF0aHMKKworICAgICAgICAgICAgZGVm
IGlzaW5pdHBhdGgoc2VsZiwgcCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHAgaW4gc2VsZi5f
aW5pdGlhbHBhdGhzCisKKyAgICAgICAgZGVmIHNweV9pbXBfZmluZF9tb2R1bGUobmFtZSwgcGF0
aCk6CisgICAgICAgICAgICBzZWxmLmZpbmRfbW9kdWxlX2NhbGxzLmFwcGVuZChuYW1lKQorICAg
ICAgICAgICAgcmV0dXJuIGltcC5maW5kX21vZHVsZShuYW1lLCBwYXRoKQorCisgICAgICAgIGhv
b2sgPSBBc3NlcnRpb25SZXdyaXRpbmdIb29rKHB5dGVzdGNvbmZpZykKKyAgICAgICAgIyB1c2Ug
ZGVmYXVsdCBwYXR0ZXJucywgb3RoZXJ3aXNlIHdlIGluaGVyaXQgcHl0ZXN0J3MgdGVzdGluZyBj
b25maWcKKyAgICAgICAgaG9vay5mbnBhdHNbOl0gPSBbInRlc3RfKi5weSIsICIqX3Rlc3QucHki
XQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGhvb2ssICJfaW1wX2ZpbmRfbW9kdWxlIiwg
c3B5X2ltcF9maW5kX21vZHVsZSkKKyAgICAgICAgaG9vay5zZXRfc2Vzc2lvbihTdHViU2Vzc2lv
bigpKQorICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQorICAgICAgICByZXR1cm4gaG9v
aworCisgICAgZGVmIHRlc3RfYmFzaWMoc2VsZiwgdGVzdGRpciwgaG9vayk6CisgICAgICAgICIi
IgorICAgICAgICBFbnN1cmUgd2UgYXZvaWQgY2FsbGluZyBpbXAuZmluZF9tb2R1bGUgd2hlbiB3
ZSBrbm93IGZvciBzdXJlIGEgY2VydGFpbiBtb2R1bGUgd2lsbCBub3QgYmUgcmV3cml0dGVuCisg
ICAgICAgIHRvIG9wdGltaXplIGFzc2VydGlvbiByZXdyaXRpbmcgKCMzOTE4KS4KKyAgICAgICAg
IiIiCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAogICAgICAgICAgICAgIiIiCi1kZWYg
dGVzdF9zaW1wbGVfZmFpbHVyZSgpOgotICAgIGFzc2VydCAxICsgMSA9PSAzCi0iIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgZGVmIGZpeCgpOiByZXR1cm4gMQorICAgICAgICAiIiIKICAgICAgICAgKQotICAgICAg
ICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJweXRlc3QuaW5pIikud3JpdGUoCi0gICAgICAgICAgICB0
ZXh0d3JhcC5kZWRlbnQoCi0gICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBbcHl0ZXN0
XQotICAgICAgICAgICAgcHl0aG9uX2ZpbGVzID0gdGVzdHMvKioucHkKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKHRlc3RfZm9vPSJkZWYgdGVzdF9mb28oKTogcGFzcyIpCisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZShiYXI9ImRlZiBiYXIoKTogcGFzcyIpCisgICAgICAgIGZvb2Jhcl9w
YXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKGZvb2Jhcj0iZGVmIGZvb2JhcigpOiBwYXNzIikKKyAg
ICAgICAgc2VsZi5pbml0aWFsX3BhdGhzLmFkZChmb29iYXJfcGF0aCkKKworICAgICAgICAjIGNv
bmZ0ZXN0IGZpbGVzIHNob3VsZCBhbHdheXMgYmUgcmV3cml0dGVuCisgICAgICAgIGFzc2VydCBo
b29rLmZpbmRfbW9kdWxlKCJjb25mdGVzdCIpIGlzIG5vdCBOb25lCisgICAgICAgIGFzc2VydCBz
ZWxmLmZpbmRfbW9kdWxlX2NhbGxzID09IFsiY29uZnRlc3QiXQorCisgICAgICAgICMgZmlsZXMg
bWF0Y2hpbmcgInB5dGhvbl9maWxlcyIgbWFzayBzaG91bGQgYWx3YXlzIGJlIHJld3JpdHRlbgor
ICAgICAgICBhc3NlcnQgaG9vay5maW5kX21vZHVsZSgidGVzdF9mb28iKSBpcyBub3QgTm9uZQor
ICAgICAgICBhc3NlcnQgc2VsZi5maW5kX21vZHVsZV9jYWxscyA9PSBbImNvbmZ0ZXN0IiwgInRl
c3RfZm9vIl0KKworICAgICAgICAjIGZpbGUgZG9lcyBub3QgbWF0Y2ggInB5dGhvbl9maWxlcyI6
IGVhcmx5IGJhaWxvdXQKKyAgICAgICAgYXNzZXJ0IGhvb2suZmluZF9tb2R1bGUoImJhciIpIGlz
IE5vbmUKKyAgICAgICAgYXNzZXJ0IHNlbGYuZmluZF9tb2R1bGVfY2FsbHMgPT0gWyJjb25mdGVz
dCIsICJ0ZXN0X2ZvbyJdCisKKyAgICAgICAgIyBmaWxlIGlzIGFuIGluaXRpYWwgcGF0aCAocGFz
c2VkIG9uIHRoZSBjb21tYW5kLWxpbmUpOiBzaG91bGQgYmUgcmV3cml0dGVuCisgICAgICAgIGFz
c2VydCBob29rLmZpbmRfbW9kdWxlKCJmb29iYXIiKSBpcyBub3QgTm9uZQorICAgICAgICBhc3Nl
cnQgc2VsZi5maW5kX21vZHVsZV9jYWxscyA9PSBbImNvbmZ0ZXN0IiwgInRlc3RfZm9vIiwgImZv
b2JhciJdCisKKyAgICBkZWYgdGVzdF9wYXR0ZXJuX2NvbnRhaW5zX3N1YmRpcmVjdG9yaWVzKHNl
bGYsIHRlc3RkaXIsIGhvb2spOgorICAgICAgICAiIiJJZiBvbmUgb2YgdGhlIHB5dGhvbl9maWxl
cyBwYXR0ZXJucyBjb250YWluIHN1YmRpcmVjdG9yaWVzICgidGVzdHMvKioucHkiKSB3ZSBjYW4n
dCBiYWlsb3V0IGVhcmx5CisgICAgICAgIGJlY2F1c2Ugd2UgbmVlZCB0byBtYXRjaCB3aXRoIHRo
ZSBmdWxsIHBhdGgsIHdoaWNoIGNhbiBvbmx5IGJlIGZvdW5kIGJ5IGNhbGxpbmcgaW1wLmZpbmRf
bW9kdWxlLgogICAgICAgICAiIiIKLSAgICAgICAgICAgICkKKyAgICAgICAgcCA9IHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICoqeworICAgICAgICAgICAgICAgICJ0ZXN0cy9maWxl
LnB5IjogIiIiCisgICAgICAgICAgICAgICAgICAgICAgICBkZWYgdGVzdF9zaW1wbGVfZmFpbHVy
ZSgpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCAxICsgMSA9PSAzCisgICAg
ICAgICAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIH0KICAgICAgICAgKQorICAgICAg
ICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQocC5kaXJwYXRoKCkpCisgICAgICAgIGhvb2suZm5wYXRz
WzpdID0gWyJ0ZXN0cy8qKi5weSJdCisgICAgICAgIGFzc2VydCBob29rLmZpbmRfbW9kdWxlKCJm
aWxlIikgaXMgbm90IE5vbmUKKyAgICAgICAgYXNzZXJ0IHNlbGYuZmluZF9tb2R1bGVfY2FsbHMg
PT0gWyJmaWxlIl0KIAorICAgIEBweXRlc3QubWFyay5za2lwaWYoCisgICAgICAgIHN5cy5wbGF0
Zm9ybS5zdGFydHN3aXRoKCJ3aW4zMiIpLCByZWFzb249ImNhbm5vdCByZW1vdmUgY3dkIG9uIFdp
bmRvd3MiCisgICAgKQorICAgIGRlZiB0ZXN0X2N3ZF9jaGFuZ2VkKHNlbGYsIHRlc3RkaXIsIG1v
bmtleXBhdGNoKToKKyAgICAgICAgIyBTZXR1cCBjb25kaXRpb25zIGZvciBweSdzIGZzcGF0aCB0
cnlpbmcgdG8gaW1wb3J0IHBhdGhsaWIgb24gcHkzNAorICAgICAgICAjIGFsd2F5cyAocHJldmlv
dXNseSB0cmlnZ2VyZWQgdmlhIHhkaXN0IG9ubHkpLgorICAgICAgICAjIFJlZjogaHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHkvcHVsbC8yMDcKKyAgICAgICAgbW9ua2V5cGF0Y2guc3lz
cGF0aF9wcmVwZW5kKCIiKQorICAgICAgICBtb25rZXlwYXRjaC5kZWxpdGVtKHN5cy5tb2R1bGVz
LCAicGF0aGxpYiIsIHJhaXNpbmc9RmFsc2UpCisKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAorICAgICAgICAgICAgKip7CisgICAgICAgICAgICAgICAgInRlc3Rfc2V0dXBfbm9uZXhpc3Rp
bmdfY3dkLnB5IjogIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IG9zCisgICAgICAgICAgICAg
ICAgaW1wb3J0IHNodXRpbAorICAgICAgICAgICAgICAgIGltcG9ydCB0ZW1wZmlsZQorCisgICAg
ICAgICAgICAgICAgZCA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgICAgICAgICAgICAgIG9zLmNo
ZGlyKGQpCisgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkKQorICAgICAgICAgICAgIiIi
LAorICAgICAgICAgICAgICAgICJ0ZXN0X3Rlc3QucHkiOiAiIiIKKyAgICAgICAgICAgICAgICBk
ZWYgdGVzdCgpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAiIiIsCisg
ICAgICAgICAgICB9CisgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIipFKmFzc2VydCAoMSAr
IDEpID09IDMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIDEgcGFz
c2VkIGluICoiXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jYWNoZXBy
b3ZpZGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NhY2hlcHJvdmlkZXIucHkKaW5k
ZXggMzNkMWRkODQ0OGMxNWJjNDFhMmYxZWJkNmZhMDM3ZWQ4ZDViM2VjYy4uNmRlMGIzMTI5Mjky
MTJjNWI4Y2MwOTJkNmRkMjU2OGFkZWMwMzk5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X2NhY2hlcHJvdmlkZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0
X2NhY2hlcHJvdmlkZXIucHkKQEAgLTEsMTYgKzEsMjIgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKyMgLSotIGNvZGlu
ZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu
dF9mdW5jdGlvbgorCitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKIGltcG9ydCBzeXMKK2ltcG9y
dCB0ZXh0d3JhcAorCiBpbXBvcnQgcHkKLWltcG9ydCBfcHl0ZXN0CisKIGltcG9ydCBweXRlc3QK
LWltcG9ydCBvcwotaW1wb3J0IHNodXRpbAorZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRf
Tk9URVNUU0NPTExFQ1RFRAogCi1weXRlc3RfcGx1Z2lucyA9ICJweXRlc3RlciIsCitweXRlc3Rf
cGx1Z2lucyA9ICgicHl0ZXN0ZXIiLCkKIAogCiBjbGFzcyBUZXN0TmV3QVBJKG9iamVjdCk6Ci0K
ICAgICBkZWYgdGVzdF9jb25maWdfY2FjaGVfbWFrZWRpcihzZWxmLCB0ZXN0ZGlyKToKICAgICAg
ICAgdGVzdGRpci5tYWtlaW5pKCJbcHl0ZXN0XSIpCiAgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIu
cGFyc2Vjb25maWd1cmUoKQpAQCAtMjYsMTAgKzMyLDExIEBAIGNsYXNzIFRlc3ROZXdBUEkob2Jq
ZWN0KToKICAgICAgICAgY2FjaGUgPSBjb25maWcuY2FjaGUKICAgICAgICAgcHl0ZXN0LnJhaXNl
cyhUeXBlRXJyb3IsIGxhbWJkYTogY2FjaGUuc2V0KCJrZXkvbmFtZSIsIGNhY2hlKSkKICAgICAg
ICAgY29uZmlnLmNhY2hlLnNldCgia2V5L25hbWUiLCAwKQotICAgICAgICBjb25maWcuY2FjaGUu
X2dldHZhbHVlcGF0aCgia2V5L25hbWUiKS53cml0ZSgiMTIzaW52YWxpZCIpCisgICAgICAgIGNv
bmZpZy5jYWNoZS5fZ2V0dmFsdWVwYXRoKCJrZXkvbmFtZSIpLndyaXRlX2J5dGVzKGIiMTIzaW52
YWxpZCIpCiAgICAgICAgIHZhbCA9IGNvbmZpZy5jYWNoZS5nZXQoImtleS9uYW1lIiwgLTIpCiAg
ICAgICAgIGFzc2VydCB2YWwgPT0gLTIKIAorICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5n
cygiZGVmYXVsdCIpCiAgICAgZGVmIHRlc3RfY2FjaGVfd3JpdGVmYWlsX2NhY2hmaWxlX3NpbGVu
dChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlaW5pKCJbcHl0ZXN0XSIpCiAg
ICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oIi5weXRlc3RfY2FjaGUiKS53cml0ZSgiZ29uZSB3
cm9uZyIpCkBAIC0zOCw2ICs0NSw5IEBAIGNsYXNzIFRlc3ROZXdBUEkob2JqZWN0KToKICAgICAg
ICAgY2FjaGUuc2V0KCJ0ZXN0L2Jyb2tlbiIsIFtdKQogCiAgICAgQHB5dGVzdC5tYXJrLnNraXBp
ZihzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgid2luIiksIHJlYXNvbj0ibm8gY2htb2Qgb24gd2lu
ZG93cyIpCisgICAgQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKAorICAgICAgICAiaWdub3Jl
OmNvdWxkIG5vdCBjcmVhdGUgY2FjaGUgcGF0aDpweXRlc3QuUHl0ZXN0V2FybmluZyIKKyAgICAp
CiAgICAgZGVmIHRlc3RfY2FjaGVfd3JpdGVmYWlsX3Blcm1pc3Npb25zKHNlbGYsIHRlc3RkaXIp
OgogICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIltweXRlc3RdIikKICAgICAgICAgdGVzdGRpci50
bXBkaXIuZW5zdXJlX2RpcigiLnB5dGVzdF9jYWNoZSIpLmNobW9kKDApCkBAIC00Niw2ICs1Niw3
IEBAIGNsYXNzIFRlc3ROZXdBUEkob2JqZWN0KToKICAgICAgICAgY2FjaGUuc2V0KCJ0ZXN0L2Jy
b2tlbiIsIFtdKQogCiAgICAgQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0uc3RhcnRz
d2l0aCgid2luIiksIHJlYXNvbj0ibm8gY2htb2Qgb24gd2luZG93cyIpCisgICAgQHB5dGVzdC5t
YXJrLmZpbHRlcndhcm5pbmdzKCJkZWZhdWx0IikKICAgICBkZWYgdGVzdF9jYWNoZV9mYWlsdXJl
X3dhcm5zKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLnRtcGRpci5lbnN1cmVfZGly
KCIucHl0ZXN0X2NhY2hlIikuY2htb2QoMCkKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKApA
QCAtNTcsNyArNjgsOCBAQCBjbGFzcyBUZXN0TmV3QVBJKG9iamVjdCk6CiAgICAgICAgICkKICAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1ydyIpCiAgICAgICAgIGFzc2VydCBy
ZXN1bHQucmV0ID09IDEKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmNv
dWxkIG5vdCBjcmVhdGUgY2FjaGUgcGF0aCoiLCAiKjIgd2FybmluZ3MqIl0pCisgICAgICAgICMg
d2FybmluZ3MgZnJvbSBub2RlaWRzLCBsYXN0ZmFpbGVkLCBhbmQgc3RlcHdpc2UKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmNvdWxkIG5vdCBjcmVhdGUgY2FjaGUgcGF0
aCoiLCAiKjMgd2FybmluZ3MqIl0pCiAKICAgICBkZWYgdGVzdF9jb25maWdfY2FjaGUoc2VsZiwg
dGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KApAQCAtMTM4LDE1ICsxNTAs
NDMgQEAgY2xhc3MgVGVzdE5ld0FQSShvYmplY3QpOgogICAgICAgICBhc3NlcnQgdGVzdGRpci50
bXBkaXIuam9pbigiY3VzdG9tX2NhY2hlX2RpciIpLmlzZGlyKCkKIAogCi1kZWYgdGVzdF9jYWNo
ZV9yZXBvcnRoZWFkZXIodGVzdGRpcik6CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVudiIs
ICgoKSwgKCJUT1hfRU5WX0RJUiIsICIvdG94X2Vudl9kaXIiKSkpCitkZWYgdGVzdF9jYWNoZV9y
ZXBvcnRoZWFkZXIoZW52LCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiImRlZiB0ZXN0X2ZvbygpOiBwYXNzIiIiKQorICAgIGlmIGVudjoKKyAgICAgICAg
bW9ua2V5cGF0Y2guc2V0ZW52KCplbnYpCisgICAgICAgIGV4cGVjdGVkID0gb3MucGF0aC5qb2lu
KGVudlsxXSwgIi5weXRlc3RfY2FjaGUiKQorICAgIGVsc2U6CisgICAgICAgIG1vbmtleXBhdGNo
LmRlbGVudigiVE9YX0VOVl9ESVIiLCByYWlzaW5nPUZhbHNlKQorICAgICAgICBleHBlY3RlZCA9
ICIucHl0ZXN0X2NhY2hlIgorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiY2FjaGVkaXI6ICVzIiAlIGV4cGVjdGVk
XSkKKworCitkZWYgdGVzdF9jYWNoZV9yZXBvcnRoZWFkZXJfZXh0ZXJuYWxfYWJzcGF0aCh0ZXN0
ZGlyLCB0bXBkaXJfZmFjdG9yeSk6CisgICAgZXh0ZXJuYWxfY2FjaGUgPSB0bXBkaXJfZmFjdG9y
eS5ta3RlbXAoCisgICAgICAgICJ0ZXN0X2NhY2hlX3JlcG9ydGhlYWRlcl9leHRlcm5hbF9hYnNw
YXRoX2FicyIKKyAgICApCisKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgog
ICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgogICAgICAgICAgICAgcGFzcwogICAgICIiIgogICAg
ICkKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIiIgorICAgIFtweXRlc3RdCisgICAg
Y2FjaGVfZGlyID0ge2Fic2NhY2hlfQorICAgICIiIi5mb3JtYXQoCisgICAgICAgICAgICBhYnNj
YWNoZT1leHRlcm5hbF9jYWNoZQorICAgICAgICApCisgICAgKQorCiAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi12IikKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJj
YWNoZWRpcjogLnB5dGVzdF9jYWNoZSJdKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygKKyAgICAgICAgWyJjYWNoZWRpcjoge2Fic2NhY2hlfSIuZm9ybWF0KGFic2NhY2hlPWV4dGVy
bmFsX2NhY2hlKV0KKyAgICApCiAKIAogZGVmIHRlc3RfY2FjaGVfc2hvdyh0ZXN0ZGlyKToKQEAg
LTE1Nyw2ICsxOTcsNyBAQCBkZWYgdGVzdF9jYWNoZV9zaG93KHRlc3RkaXIpOgogICAgICAgICAi
IiIKICAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKICAgICAgICAgICAgIGNv
bmZpZy5jYWNoZS5zZXQoIm15L25hbWUiLCBbMSwyLDNdKQorICAgICAgICAgICAgY29uZmlnLmNh
Y2hlLnNldCgibXkvaGVsbG8iLCAid29ybGQiKQogICAgICAgICAgICAgY29uZmlnLmNhY2hlLnNl
dCgib3RoZXIvc29tZSIsIHsxOjJ9KQogICAgICAgICAgICAgZHAgPSBjb25maWcuY2FjaGUubWFr
ZWRpcigibXlkYiIpCiAgICAgICAgICAgICBkcC5lbnN1cmUoImhlbGxvIikKQEAgLTE2NSwyNiAr
MjA2LDQ0IEBAIGRlZiB0ZXN0X2NhY2hlX3Nob3codGVzdGRpcik6CiAgICAgKQogICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSA1ICAjIG5v
IHRlc3RzIGV4ZWN1dGVkCisKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jYWNo
ZS1zaG93IikKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXNfcmFuZG9tKAorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgWwogICAgICAgICAgICAgIipjYWNo
ZWRpcjoqIiwKLSAgICAgICAgICAgICItKmNhY2hlIHZhbHVlcyotIiwKLSAgICAgICAgICAgICIq
bXkvbmFtZSBjb250YWluczoiLAorICAgICAgICAgICAgIiotIGNhY2hlIHZhbHVlcyBmb3IgJ1sq
XScgLSoiLAorICAgICAgICAgICAgImNhY2hlL25vZGVpZHMgY29udGFpbnM6IiwKKyAgICAgICAg
ICAgICJteS9uYW1lIGNvbnRhaW5zOiIsCiAgICAgICAgICAgICAiICBbMSwgMiwgM10iLAotICAg
ICAgICAgICAgIipvdGhlci9zb21lIGNvbnRhaW5zKiIsCi0gICAgICAgICAgICAiICB7KjEqOiAy
fSIsCi0gICAgICAgICAgICAiLSpjYWNoZSBkaXJlY3RvcmllcyotIiwKKyAgICAgICAgICAgICJv
dGhlci9zb21lIGNvbnRhaW5zOiIsCisgICAgICAgICAgICAiICB7KicxJzogMn0iLAorICAgICAg
ICAgICAgIiotIGNhY2hlIGRpcmVjdG9yaWVzIGZvciAnWypdJyAtKiIsCiAgICAgICAgICAgICAi
Km15ZGIvaGVsbG8qbGVuZ3RoIDAqIiwKICAgICAgICAgICAgICIqbXlkYi93b3JsZCpsZW5ndGgg
MCoiLAogICAgICAgICBdCiAgICAgKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKIAorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNhY2hlLXNob3ciLCAiKi9oZWxsbyIpCisg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAi
KmNhY2hlZGlyOioiLAorICAgICAgICAgICAgIiotIGNhY2hlIHZhbHVlcyBmb3IgJ1sqXS9oZWxs
bycgLSoiLAorICAgICAgICAgICAgIm15L2hlbGxvIGNvbnRhaW5zOiIsCisgICAgICAgICAgICAi
ICAqJ3dvcmxkJyIsCisgICAgICAgICAgICAiKi0gY2FjaGUgZGlyZWN0b3JpZXMgZm9yICdbKl0v
aGVsbG8nIC0qIiwKKyAgICAgICAgICAgICJkL215ZGIvaGVsbG8qbGVuZ3RoIDAqIiwKKyAgICAg
ICAgXQorICAgICkKKyAgICBzdGRvdXQgPSByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgYXNzZXJ0
ICJvdGhlci9zb21lIiBub3QgaW4gc3Rkb3V0CisgICAgYXNzZXJ0ICJkL215ZGIvd29ybGQiIG5v
dCBpbiBzdGRvdXQKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCiAKLWNsYXNzIFRlc3RMYXN0
RmFpbGVkKG9iamVjdCk6CiAKK2NsYXNzIFRlc3RMYXN0RmFpbGVkKG9iamVjdCk6CiAgICAgZGVm
IHRlc3RfbGFzdGZhaWxlZF91c2VjYXNlKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKLSAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRIT05ET05UV1JJVEVCWVRFQ09ERSIsIDEpCisg
ICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9ORE9OVFdSSVRFQllURUNPREUiLCAiMSIp
CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKICAgICAg
ICAgICAgIGRlZiB0ZXN0XzEoKToKQEAgLTE5OCwyMyArMjU3LDI5IEBAIGNsYXNzIFRlc3RMYXN0
RmFpbGVkKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjIgZmFpbGVkKiJdKQogICAgICAg
ICBwLndyaXRlKAotICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3VyY2UoCi0gICAgICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICBkZWYgdGVzdF8xKCk6Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0IDEKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJc
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgMQogCi0gICAgICAgICAgICBkZWYgdGVzdF8yKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
IDEKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydCAxCiAKLSAgICAgICAgICAgIGRlZiB0ZXN0XzMoKToKLSAgICAgICAgICAgICAgICBhc3Nl
cnQgMAotICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8zKCk6CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICAp
CiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiKQog
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMiBwYXNzZWQqMSBkZXNlbCoi
XSkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiKQotICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBmYWlsZWQqMiBwYXNzZWQqIl0pCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAg
ICAgICAgICAiY29sbGVjdGVkIDMgaXRlbXMiLAorICAgICAgICAgICAgICAgICJydW4tbGFzdC1m
YWlsdXJlOiBubyBwcmV2aW91c2x5IGZhaWxlZCB0ZXN0cywgbm90IGRlc2VsZWN0aW5nIGl0ZW1z
LiIsCisgICAgICAgICAgICAgICAgIioxIGZhaWxlZCoyIHBhc3NlZCoiLAorICAgICAgICAgICAg
XQorICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwg
Ii0tY2FjaGUtY2xlYXIiKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
MSBmYWlsZWQqMiBwYXNzZWQqIl0pCiAKQEAgLTIyNiwxOSArMjkxLDE5IEBAIGNsYXNzIFRlc3RM
YXN0RmFpbGVkKG9iamVjdCk6CiAKICAgICBkZWYgdGVzdF9mYWlsZWRmaXJzdF9vcmRlcihzZWxm
LCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci50bXBkaXIuam9pbigidGVzdF9hLnB5Iikud3Jp
dGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3
cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgZGVmIHRl
c3RfYWx3YXlzX3Bhc3NlcygpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgMQogICAgICAg
ICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHRlc3RfYWx3YXlzX3Bhc3NlcygpOgotICAg
ICAgICAgICAgICAgIGFzc2VydCAxCi0gICAgICAgICIiIgogICAgICAgICAgICAgKQogICAgICAg
ICApCiAgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oInRlc3RfYi5weSIpLndyaXRlKAotICAg
ICAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3VyY2UoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRl
bnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Fsd2F5
c19mYWlscygpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgMAogICAgICAgICAgICAgICAg
ICIiIgotICAgICAgICAgICAgZGVmIHRlc3RfYWx3YXlzX2ZhaWxzKCk6Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0IDAKLSAgICAgICAgIiIiCiAgICAgICAgICAgICApCiAgICAgICAgICkKICAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQpAQCAtMjUxLDE0ICszMTYsMTQgQEAgY2xh
c3MgVGVzdExhc3RGYWlsZWQob2JqZWN0KToKICAgICBkZWYgdGVzdF9sYXN0ZmFpbGVkX2ZhaWxl
ZGZpcnN0X29yZGVyKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CiAgICAgICAgICAgICAqKnsKLSAgICAgICAgICAgICAgICAidGVzdF9hLnB5IjogIiIiCisgICAg
ICAgICAgICAgICAgInRlc3RfYS5weSI6ICIiIlwKICAgICAgICAgICAgICAgICBkZWYgdGVzdF9h
bHdheXNfcGFzc2VzKCk6CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCAxCi0gICAgICAgICAg
ICAiIiIsCi0gICAgICAgICAgICAgICAgInRlc3RfYi5weSI6ICIiIgorICAgICAgICAgICAgICAg
ICIiIiwKKyAgICAgICAgICAgICAgICAidGVzdF9iLnB5IjogIiIiXAogICAgICAgICAgICAgICAg
IGRlZiB0ZXN0X2Fsd2F5c19mYWlscygpOgogICAgICAgICAgICAgICAgICAgICBhc3NlcnQgMAot
ICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgICAgICIiIiwKICAgICAgICAgICAgIH0KICAg
ICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCkBAIC0yNzAsMTgg
KzMzNSwxOCBAQCBjbGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgogICAgICAgICBhc3NlcnQg
InRlc3RfYS5weSIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKIAogICAgIGRlZiB0ZXN0X2xh
c3RmYWlsZWRfZGlmZmVyZW5jZV9pbnZvY2F0aW9ucyhzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRj
aCk6Ci0gICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9ORE9OVFdSSVRFQllURUNPREUi
LCAxKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEhPTkRPTlRXUklURUJZVEVDT0RF
IiwgIjEiKQogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICB0ZXN0X2E9
IiIiCisgICAgICAgICAgICB0ZXN0X2E9IiIiXAogICAgICAgICAgICAgZGVmIHRlc3RfYTEoKToK
ICAgICAgICAgICAgICAgICBhc3NlcnQgMAogICAgICAgICAgICAgZGVmIHRlc3RfYTIoKToKICAg
ICAgICAgICAgICAgICBhc3NlcnQgMQotICAgICAgICAiIiIsCi0gICAgICAgICAgICB0ZXN0X2I9
IiIiCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICB0ZXN0X2I9IiIiXAogICAgICAgICAg
ICAgZGVmIHRlc3RfYjEoKToKICAgICAgICAgICAgICAgICBhc3NlcnQgMAotICAgICAgICAiIiIs
CisgICAgICAgICAgICAiIiIsCiAgICAgICAgICkKICAgICAgICAgcCA9IHRlc3RkaXIudG1wZGly
LmpvaW4oInRlc3RfYS5weSIpCiAgICAgICAgIHAyID0gdGVzdGRpci50bXBkaXIuam9pbigidGVz
dF9iLnB5IikKQEAgLTI5MSwxMSArMzU2LDExIEBAIGNsYXNzIFRlc3RMYXN0RmFpbGVkKG9iamVj
dCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwgcDIpCiAgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIGZhaWxlZCoiXSkKICAgICAgICAg
cDIud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAg
IHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfYjEoKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IDEKICAgICAgICAgICAg
ICAgICAiIiIKLSAgICAgICAgICAgIGRlZiB0ZXN0X2IxKCk6Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0IDEKLSAgICAgICAgIiIiCiAgICAgICAgICAgICApCiAgICAgICAgICkKICAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiLCBwMikKQEAgLTMwNCwyMCArMzY5LDIwIEBA
IGNsYXNzIFRlc3RMYXN0RmFpbGVkKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbIioxIGZhaWxlZCoxIGRlc2VsKiJdKQogCiAgICAgZGVmIHRlc3RfbGFzdGZh
aWxlZF91c2VjYXNlX3NwbGljZShzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6Ci0gICAgICAg
IG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9ORE9OVFdSSVRFQllURUNPREUiLCAxKQorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEhPTkRPTlRXUklURUJZVEVDT0RFIiwgIjEiKQogICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICIi
IlwKICAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKICAgICAgICAgICAgICAgICBhc3NlcnQgMAot
ICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHAyID0gdGVz
dGRpci50bXBkaXIuam9pbigidGVzdF9zb21ldGhpbmcucHkiKQogICAgICAgICBwMi53cml0ZSgK
LSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAorICAgICAgICAgICAgdGV4dHdyYXAu
ZGVkZW50KAorICAgICAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8y
KCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAwCiAgICAgICAgICAgICAgICAgIiIiCi0g
ICAgICAgICAgICBkZWYgdGVzdF8yKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IDAKLSAgICAg
ICAgIiIiCiAgICAgICAgICAgICApCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQpAQCAtMzU2LDcgKzQyMSw3IEBAIGNsYXNzIFRlc3RMYXN0RmFpbGVkKG9i
amVjdCk6CiAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMSBmYWls
ZWQgaW4qIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgZmFpbGVk
IGluKiJdKQogCiAgICAgZGVmIHRlc3RfdGVybWluYWxfcmVwb3J0X2xhc3RmYWlsZWQoc2VsZiwg
dGVzdGRpcik6CiAgICAgICAgIHRlc3RfYSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAgLTM4MSw5
ICs0NDYsOSBAQCBjbGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgogICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1sZiIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcygKICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAiY29sbGVjdGVkIDQgaXRl
bXMgLyAyIGRlc2VsZWN0ZWQiLAotICAgICAgICAgICAgICAgICJydW4tbGFzdC1mYWlsdXJlOiBy
ZXJ1biBwcmV2aW91cyAyIGZhaWx1cmVzIiwKLSAgICAgICAgICAgICAgICAiKjIgZmFpbGVkLCAy
IGRlc2VsZWN0ZWQgaW4qIiwKKyAgICAgICAgICAgICAgICAiY29sbGVjdGVkIDIgaXRlbXMiLAor
ICAgICAgICAgICAgICAgICJydW4tbGFzdC1mYWlsdXJlOiByZXJ1biBwcmV2aW91cyAyIGZhaWx1
cmVzIChza2lwcGVkIDEgZmlsZSkiLAorICAgICAgICAgICAgICAgICIqMiBmYWlsZWQgaW4qIiwK
ICAgICAgICAgICAgIF0KICAgICAgICAgKQogCkBAIC0zOTEsNyArNDU2LDcgQEAgY2xhc3MgVGVz
dExhc3RGYWlsZWQob2JqZWN0KToKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAogICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICJjb2xsZWN0ZWQgMiBpdGVtcyIsCi0g
ICAgICAgICAgICAgICAgInJ1bi1sYXN0LWZhaWx1cmU6IHJ1biBhbGwgKG5vIHJlY29yZGVkIGZh
aWx1cmVzKSIsCisgICAgICAgICAgICAgICAgInJ1bi1sYXN0LWZhaWx1cmU6IDIga25vd24gZmFp
bHVyZXMgbm90IGluIHNlbGVjdGVkIHRlc3RzIiwKICAgICAgICAgICAgICAgICAiKjIgcGFzc2Vk
IGluKiIsCiAgICAgICAgICAgICBdCiAgICAgICAgICkKQEAgLTQ0OSw4ICs1MTQsOCBAQCBjbGFz
cyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgogICAgICAgICApCiAKICAgICAgICAgZGVmIHJsZihm
YWlsX2ltcG9ydCwgZmFpbF9ydW4pOgotICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJG
QUlMSU1QT1JUIiwgZmFpbF9pbXBvcnQpCi0gICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYo
IkZBSUxURVNUIiwgZmFpbF9ydW4pCisgICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIkZB
SUxJTVBPUlQiLCBzdHIoZmFpbF9pbXBvcnQpKQorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0
ZW52KCJGQUlMVEVTVCIsIHN0cihmYWlsX3J1bikpCiAKICAgICAgICAgICAgIHRlc3RkaXIucnVu
cHl0ZXN0KCItcSIpCiAgICAgICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJl
KCkKQEAgLTQ5NCw4ICs1NTksOCBAQCBjbGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgogICAg
ICAgICApCiAKICAgICAgICAgZGVmIHJsZihmYWlsX2ltcG9ydCwgZmFpbF9ydW4sIGFyZ3M9KCkp
OgotICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJGQUlMSU1QT1JUIiwgZmFpbF9pbXBv
cnQpCi0gICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIkZBSUxURVNUIiwgZmFpbF9ydW4p
CisgICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIkZBSUxJTVBPUlQiLCBzdHIoZmFpbF9p
bXBvcnQpKQorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJGQUlMVEVTVCIsIHN0cihm
YWlsX3J1bikpCiAKICAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcSIs
ICItLWxmIiwgKmFyZ3MpCiAgICAgICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmln
dXJlKCkKQEAgLTU0Myw3ICs2MDgsNyBAQCBjbGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgog
ICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKjEgeGZhaWxlZCoiKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSB4ZmFpbGVkKiJdKQogICAg
ICAgICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHRlc3RkaXIpID09IFtdCiAK
ICAgICBkZWYgdGVzdF94ZmFpbF9zdHJpY3RfY29uc2lkZXJlZF9mYWlsdXJlKHNlbGYsIHRlc3Rk
aXIpOgpAQCAtNTU2LDExICs2MjEsMTAgQEAgY2xhc3MgVGVzdExhc3RGYWlsZWQob2JqZWN0KToK
ICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIioxIGZhaWxlZCoiKQot
ICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgc2VsZi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVk
KHRlc3RkaXIpCi0gICAgICAgICAgICA9PSBbInRlc3RfeGZhaWxfc3RyaWN0X2NvbnNpZGVyZWRf
ZmFpbHVyZS5weTo6dGVzdCJdCi0gICAgICAgICkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsiKjEgZmFpbGVkKiJdKQorICAgICAgICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVk
X2xhc3RfZmFpbGVkKHRlc3RkaXIpID09IFsKKyAgICAgICAgICAgICJ0ZXN0X3hmYWlsX3N0cmlj
dF9jb25zaWRlcmVkX2ZhaWx1cmUucHk6OnRlc3QiCisgICAgICAgIF0KIAogICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgibWFyayIsIFsibWFyay54ZmFpbCIsICJtYXJrLnNraXAiXSkKICAg
ICBkZWYgdGVzdF9mYWlsZWRfY2hhbmdlZF90b194ZmFpbF9vcl9za2lwKHNlbGYsIHRlc3RkaXIs
IG1hcmspOgpAQCAtNTcyLDEwICs2MzYsOSBAQCBjbGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3Qp
OgogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCi0gICAgICAgIGFzc2VydCAoCi0gICAgICAgICAgICBzZWxmLmdldF9jYWNoZWRfbGFz
dF9mYWlsZWQodGVzdGRpcikKLSAgICAgICAgICAgID09IFsidGVzdF9mYWlsZWRfY2hhbmdlZF90
b194ZmFpbF9vcl9za2lwLnB5Ojp0ZXN0Il0KLSAgICAgICAgKQorICAgICAgICBhc3NlcnQgc2Vs
Zi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHRlc3RkaXIpID09IFsKKyAgICAgICAgICAgICJ0ZXN0
X2ZhaWxlZF9jaGFuZ2VkX3RvX3hmYWlsX29yX3NraXAucHk6OnRlc3QiCisgICAgICAgIF0KICAg
ICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQogCiAgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKQEAgLTU5Myw2ICs2NTYsMjMgQEAgY2xhc3MgVGVzdExhc3RGYWlsZWQob2JqZWN0KToKICAg
ICAgICAgYXNzZXJ0IHNlbGYuZ2V0X2NhY2hlZF9sYXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbXQog
ICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCiAKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoInF1aWV0IiwgW1RydWUsIEZhbHNlXSkKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoIm9wdCIsIFsiLS1mZiIsICItLWxmIl0pCisgICAgZGVmIHRlc3RfbGZfYW5kX2ZmX3ByaW50
c19ub19uZWVkbGVzc19tZXNzYWdlKHNlbGYsIHF1aWV0LCBvcHQsIHRlc3RkaXIpOgorICAgICAg
ICAjIElzc3VlIDM4NTMKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdCgpOiBh
c3NlcnQgMCIpCisgICAgICAgIGFyZ3MgPSBbb3B0XQorICAgICAgICBpZiBxdWlldDoKKyAgICAg
ICAgICAgIGFyZ3MuYXBwZW5kKCItcSIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCphcmdzKQorICAgICAgICBhc3NlcnQgInJ1biBhbGwiIG5vdCBpbiByZXN1bHQuc3Rkb3V0
LnN0cigpCisKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKmFyZ3MpCisgICAg
ICAgIGlmIHF1aWV0OgorICAgICAgICAgICAgYXNzZXJ0ICJydW4gYWxsIiBub3QgaW4gcmVzdWx0
LnN0ZG91dC5zdHIoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0ICJyZXJ1biBw
cmV2aW91cyIgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCiAgICAgZGVmIGdldF9jYWNoZWRfbGFz
dF9mYWlsZWQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vj
b25maWd1cmUoKQogICAgICAgICByZXR1cm4gc29ydGVkKGNvbmZpZy5jYWNoZS5nZXQoImNhY2hl
L2xhc3RmYWlsZWQiLCB7fSkpCkBAIC02MTksMTAgKzY5OSwxMCBAQCBjbGFzcyBUZXN0TGFzdEZh
aWxlZChvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCi0gICAgICAgIGFzc2VydCAoCi0gICAgICAgICAgICBzZWxmLmdldF9jYWNoZWRf
bGFzdF9mYWlsZWQodGVzdGRpcikKLSAgICAgICAgICAgID09IFsidGVzdF9iYXIucHk6OnRlc3Rf
YmFyXzIiLCAidGVzdF9mb28ucHk6OnRlc3RfZm9vXzQiXQotICAgICAgICApCisgICAgICAgIGFz
c2VydCBzZWxmLmdldF9jYWNoZWRfbGFzdF9mYWlsZWQodGVzdGRpcikgPT0gWworICAgICAgICAg
ICAgInRlc3RfYmFyLnB5Ojp0ZXN0X2Jhcl8yIiwKKyAgICAgICAgICAgICJ0ZXN0X2Zvby5weTo6
dGVzdF9mb29fNCIsCisgICAgICAgIF0KIAogICAgICAgICAjIDIuIGZpeCB0ZXN0X2Jhcl8yLCBy
dW4gb25seSB0ZXN0X2Jhci5weQogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBAIC02MzQs
MTIgKzcxNCwxMiBAQCBjbGFzcyBUZXN0TGFzdEZhaWxlZChvYmplY3QpOgogICAgICAgICAiIiIK
ICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0X2JhcikK
LSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMiBwYXNzZWQqIikKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjIgcGFzc2VkKiJdKQogICAgICAgICAj
IGVuc3VyZSBjYWNoZSBkb2VzIG5vdCBmb3JnZXQgdGhhdCB0ZXN0X2Zvb180IGZhaWxlZCBvbmNl
IGJlZm9yZQogICAgICAgICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHRlc3Rk
aXIpID09IFsidGVzdF9mb28ucHk6OnRlc3RfZm9vXzQiXQogCiAgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItLWxhc3QtZmFpbGVkIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKCIqMSBmYWlsZWQsIDMgZGVzZWxlY3RlZCoiKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBmYWlsZWQsIDEgZGVzZWxlY3RlZCoiXSkKICAgICAg
ICAgYXNzZXJ0IHNlbGYuZ2V0X2NhY2hlZF9sYXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbInRlc3Rf
Zm9vLnB5Ojp0ZXN0X2Zvb180Il0KIAogICAgICAgICAjIDMuIGZpeCB0ZXN0X2Zvb180LCBydW4g
b25seSB0ZXN0X2Zvby5weQpAQCAtNjUyLDExICs3MzIsMTEgQEAgY2xhc3MgVGVzdExhc3RGYWls
ZWQob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QodGVzdF9mb28sICItLWxhc3QtZmFpbGVkIikKLSAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMSBwYXNzZWQsIDEgZGVzZWxlY3RlZCoiKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQsIDEgZGVzZWxlY3RlZCoi
XSkKICAgICAgICAgYXNzZXJ0IHNlbGYuZ2V0X2NhY2hlZF9sYXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9
PSBbXQogCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxhc3QtZmFpbGVk
IikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqNCBwYXNzZWQqIikKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjQgcGFzc2VkKiJdKQogICAgICAg
ICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHRlc3RkaXIpID09IFtdCiAKICAg
ICBkZWYgdGVzdF9sYXN0ZmFpbGVkX25vX2ZhaWx1cmVzX2JlaGF2aW9yX2FsbF9wYXNzZWQoc2Vs
ZiwgdGVzdGRpcik6CkBAIC02NzUsNyArNzU1LDE0IEBAIGNsYXNzIFRlc3RMYXN0RmFpbGVkKG9i
amVjdCk6CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwgIi0tbGZu
ZiIsICJhbGwiKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMiBwYXNz
ZWQqIl0pCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwgIi0tbGZu
ZiIsICJub25lIikKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjIgZGVz
ZWwqIl0pCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAg
IFsKKyAgICAgICAgICAgICAgICAiY29sbGVjdGVkIDIgaXRlbXMgLyAyIGRlc2VsZWN0ZWQiLAor
ICAgICAgICAgICAgICAgICJydW4tbGFzdC1mYWlsdXJlOiBubyBwcmV2aW91c2x5IGZhaWxlZCB0
ZXN0cywgZGVzZWxlY3RpbmcgYWxsIGl0ZW1zLiIsCisgICAgICAgICAgICAgICAgIiogMiBkZXNl
bGVjdGVkIGluICoiLAorICAgICAgICAgICAgXQorICAgICAgICApCisgICAgICAgIGFzc2VydCBy
ZXN1bHQucmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAogCiAgICAgZGVmIHRlc3RfbGFzdGZh
aWxlZF9ub19mYWlsdXJlc19iZWhhdmlvcl9lbXB0eV9jYWNoZShzZWxmLCB0ZXN0ZGlyKToKICAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKApAQCAtNjkzLDkgKzc4MCwxMDIgQEAgY2xhc3MgVGVz
dExhc3RGYWlsZWQob2JqZWN0KToKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tbGYiLCAiLS1jYWNoZS1jbGVhciIsICItLWxmbmYiLCAibm9uZSIpCiAgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioyIGRlc2VsKiJdKQogCisgICAgZGVmIHRlc3RfbGFz
dGZhaWxlZF9za2lwX2NvbGxlY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIgorICAg
ICAgICBUZXN0IC0tbGYgYmVoYXZpb3IgcmVnYXJkaW5nIHNraXBwaW5nIGNvbGxlY3Rpb24gb2Yg
ZmlsZXMgdGhhdCBhcmUgbm90IG1hcmtlZCBhcworICAgICAgICBmYWlsZWQgaW4gdGhlIGNhY2hl
ICgjNTE3MikuCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAg
ICAgICAgICAqKnsKKyAgICAgICAgICAgICAgICAicGtnMS90ZXN0XzEucHkiOiAiIiIKKyAgICAg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ2knLCByYW5nZSgzKSkKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8xKGkp
OiBwYXNzCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAgICAgInBrZzIvdGVzdF8yLnB5
IjogIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICAgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdpJywgcmFuZ2UoNSkpCisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfMShpKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGkgbm90IGluICgxLCAz
KQorICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgfQorICAgICAgICApCisgICAgICAgICMg
Zmlyc3QgcnVuOiBjb2xsZWN0cyA4IGl0ZW1zICh0ZXN0XzE6IDMsIHRlc3RfMjogNSkKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyJjb2xsZWN0ZWQgOCBpdGVtcyIsICIqMiBmYWlsZWQqNiBwYXNzZWQqIl0p
CisgICAgICAgICMgc2Vjb25kIHJ1bjogY29sbGVjdHMgb25seSA1IGl0ZW1zIGZyb20gdGVzdF8y
LCBiZWNhdXNlIGFsbCB0ZXN0cyBmcm9tIHRlc3RfMSBoYXZlIHBhc3NlZAorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1sZiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAiY29sbGVjdGVkIDUg
aXRlbXMgLyAzIGRlc2VsZWN0ZWQgLyAyIHNlbGVjdGVkIiwKKyAgICAgICAgICAgICAgICAicnVu
LWxhc3QtZmFpbHVyZTogcmVydW4gcHJldmlvdXMgMiBmYWlsdXJlcyAoc2tpcHBlZCAxIGZpbGUp
IiwKKyAgICAgICAgICAgICAgICAiKjIgZmFpbGVkKjMgZGVzZWxlY3RlZCoiLAorICAgICAgICAg
ICAgXQorICAgICAgICApCisKKyAgICAgICAgIyBhZGQgYW5vdGhlciBmaWxlIGFuZCBjaGVjayBp
ZiBtZXNzYWdlIGlzIGNvcnJlY3Qgd2hlbiBza2lwcGluZyBtb3JlIHRoYW4gMSBmaWxlCisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICoqeworICAgICAgICAgICAgICAg
ICJwa2cxL3Rlc3RfMy5weSI6ICIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzMoKTogcGFz
cworICAgICAgICAgICAgIiIiCisgICAgICAgICAgICB9CisgICAgICAgICkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgImNvbGxlY3RlZCA1
IGl0ZW1zIC8gMyBkZXNlbGVjdGVkIC8gMiBzZWxlY3RlZCIsCisgICAgICAgICAgICAgICAgInJ1
bi1sYXN0LWZhaWx1cmU6IHJlcnVuIHByZXZpb3VzIDIgZmFpbHVyZXMgKHNraXBwZWQgMiBmaWxl
cykiLAorICAgICAgICAgICAgICAgICIqMiBmYWlsZWQqMyBkZXNlbGVjdGVkKiIsCisgICAgICAg
ICAgICBdCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2xhc3RmYWlsZWRfd2l0aF9rbm93bl9m
YWlsdXJlc19ub3RfYmVpbmdfc2VsZWN0ZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICoqeworICAgICAgICAgICAgICAgICJwa2cxL3Rl
c3RfMS5weSI6ICIiImRlZiB0ZXN0XzEoKTogYXNzZXJ0IDAiIiIsCisgICAgICAgICAgICAgICAg
InBrZzEvdGVzdF8yLnB5IjogIiIiZGVmIHRlc3RfMigpOiBwYXNzIiIiLAorICAgICAgICAgICAg
fQorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiY29sbGVjdGVkIDIgaXRlbXMiLCAiKiAx
IGZhaWxlZCwgMSBwYXNzZWQgaW4gKiJdKQorCisgICAgICAgIHB5LnBhdGgubG9jYWwoInBrZzEv
dGVzdF8xLnB5IikucmVtb3ZlKCkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tbGYiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAg
ICBbCisgICAgICAgICAgICAgICAgImNvbGxlY3RlZCAxIGl0ZW0iLAorICAgICAgICAgICAgICAg
ICJydW4tbGFzdC1mYWlsdXJlOiAxIGtub3duIGZhaWx1cmVzIG5vdCBpbiBzZWxlY3RlZCB0ZXN0
cyIsCisgICAgICAgICAgICAgICAgIiogMSBwYXNzZWQgaW4gKiIsCisgICAgICAgICAgICBdCisg
ICAgICAgICkKKworICAgICAgICAjIFJlY3JlYXRlIGZpbGUgd2l0aCBrbm93biBmYWlsdXJlLgor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKip7InBrZzEvdGVzdF8xLnB5IjogIiIiZGVmIHRl
c3RfMSgpOiBhc3NlcnQgMCIiIn0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItLWxmIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAg
ICAgWworICAgICAgICAgICAgICAgICJjb2xsZWN0ZWQgMSBpdGVtIiwKKyAgICAgICAgICAgICAg
ICAicnVuLWxhc3QtZmFpbHVyZTogcmVydW4gcHJldmlvdXMgMSBmYWlsdXJlIChza2lwcGVkIDEg
ZmlsZSkiLAorICAgICAgICAgICAgICAgICIqIDEgZmFpbGVkIGluICoiLAorICAgICAgICAgICAg
XQorICAgICAgICApCisKKyAgICAgICAgIyBSZW1vdmUvcmVuYW1lIHRlc3QuCisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgqKnsicGtnMS90ZXN0XzEucHkiOiAiIiJkZWYgdGVzdF9yZW5hbWVk
KCk6IGFzc2VydCAwIiIifSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
bGYiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBb
CisgICAgICAgICAgICAgICAgImNvbGxlY3RlZCAxIGl0ZW0iLAorICAgICAgICAgICAgICAgICJy
dW4tbGFzdC1mYWlsdXJlOiAxIGtub3duIGZhaWx1cmVzIG5vdCBpbiBzZWxlY3RlZCB0ZXN0cyAo
c2tpcHBlZCAxIGZpbGUpIiwKKyAgICAgICAgICAgICAgICAiKiAxIGZhaWxlZCBpbiAqIiwKKyAg
ICAgICAgICAgIF0KKyAgICAgICAgKQogCi1jbGFzcyBUZXN0TmV3Rmlyc3Qob2JqZWN0KToKIAor
Y2xhc3MgVGVzdE5ld0ZpcnN0KG9iamVjdCk6CiAgICAgZGVmIHRlc3RfbmV3Zmlyc3RfdXNlY2Fz
ZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAg
ICAgKip7CkBAIC04MTgsMyArOTk4LDc3IEBAIGNsYXNzIFRlc3ROZXdGaXJzdChvYmplY3QpOgog
ICAgICAgICAgICAgICAgICIqdGVzdF8xL3Rlc3RfMS5weTo6dGVzdF8xWzIqIiwKICAgICAgICAg
ICAgIF0KICAgICAgICAgKQorCisKK2NsYXNzIFRlc3RSZWFkbWUob2JqZWN0KToKKyAgICBkZWYg
Y2hlY2tfcmVhZG1lKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBh
cnNlY29uZmlndXJlKCkKKyAgICAgICAgcmVhZG1lID0gY29uZmlnLmNhY2hlLl9jYWNoZWRpci5q
b2lucGF0aCgiUkVBRE1FLm1kIikKKyAgICAgICAgcmV0dXJuIHJlYWRtZS5pc19maWxlKCkKKwor
ICAgIGRlZiB0ZXN0X3JlYWRtZV9wYXNzZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfYWx3
YXlzX3Bhc3NlcygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAgICAgICIiIgorICAg
ICAgICApCisgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHNlbGYu
Y2hlY2tfcmVhZG1lKHRlc3RkaXIpIGlzIFRydWUKKworICAgIGRlZiB0ZXN0X3JlYWRtZV9mYWls
ZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfYWx3YXlzX2ZhaWxzKCk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5y
dW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgc2VsZi5jaGVja19yZWFkbWUodGVzdGRpcikgaXMg
VHJ1ZQorCisKK2RlZiB0ZXN0X2dpdGlnbm9yZSh0ZXN0ZGlyKToKKyAgICAiIiJFbnN1cmUgd2Ug
YXV0b21hdGljYWxseSBjcmVhdGUgLmdpdGlnbm9yZSBmaWxlIGluIHRoZSBweXRlc3RfY2FjaGUg
ZGlyZWN0b3J5ICgjMzI4NikuIiIiCisgICAgZnJvbSBfcHl0ZXN0LmNhY2hlcHJvdmlkZXIgaW1w
b3J0IENhY2hlCisKKyAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAgICBjYWNo
ZSA9IENhY2hlLmZvcl9jb25maWcoY29uZmlnKQorICAgIGNhY2hlLnNldCgiZm9vIiwgImJhciIp
CisgICAgbXNnID0gIiMgQ3JlYXRlZCBieSBweXRlc3QgYXV0b21hdGljYWxseS5cbioiCisgICAg
Z2l0aWdub3JlX3BhdGggPSBjYWNoZS5fY2FjaGVkaXIuam9pbnBhdGgoIi5naXRpZ25vcmUiKQor
ICAgIGFzc2VydCBnaXRpZ25vcmVfcGF0aC5yZWFkX3RleHQoZW5jb2Rpbmc9IlVURi04IikgPT0g
bXNnCisKKyAgICAjIERvZXMgbm90IG92ZXJ3cml0ZSBleGlzdGluZy9jdXN0b20gb25lLgorICAg
IGdpdGlnbm9yZV9wYXRoLndyaXRlX3RleHQodSJjdXN0b20iKQorICAgIGNhY2hlLnNldCgic29t
ZXRoaW5nIiwgImVsc2UiKQorICAgIGFzc2VydCBnaXRpZ25vcmVfcGF0aC5yZWFkX3RleHQoZW5j
b2Rpbmc9IlVURi04IikgPT0gImN1c3RvbSIKKworCitkZWYgdGVzdF9kb2VzX25vdF9jcmVhdGVf
Ym9pbGVycGxhdGVfaW5fZXhpc3RpbmdfZGlycyh0ZXN0ZGlyKToKKyAgICBmcm9tIF9weXRlc3Qu
Y2FjaGVwcm92aWRlciBpbXBvcnQgQ2FjaGUKKworICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAg
ICAgIiIiCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIGNhY2hlX2RpciA9IC4KKyAgICAgICAg
IiIiCisgICAgKQorICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAgIGNhY2hl
ID0gQ2FjaGUuZm9yX2NvbmZpZyhjb25maWcpCisgICAgY2FjaGUuc2V0KCJmb28iLCAiYmFyIikK
KworICAgIGFzc2VydCBvcy5wYXRoLmlzZGlyKCJ2IikgICMgY2FjaGUgY29udGVudHMKKyAgICBh
c3NlcnQgbm90IG9zLnBhdGguZXhpc3RzKCIuZ2l0aWdub3JlIikKKyAgICBhc3NlcnQgbm90IG9z
LnBhdGguZXhpc3RzKCJSRUFETUUubWQiKQorCisKK2RlZiB0ZXN0X2NhY2hlZGlyX3RhZyh0ZXN0
ZGlyKToKKyAgICAiIiJFbnN1cmUgd2UgYXV0b21hdGljYWxseSBjcmVhdGUgQ0FDSEVESVIuVEFH
IGZpbGUgaW4gdGhlIHB5dGVzdF9jYWNoZSBkaXJlY3RvcnkgKCM0Mjc4KS4iIiIKKyAgICBmcm9t
IF9weXRlc3QuY2FjaGVwcm92aWRlciBpbXBvcnQgQ2FjaGUKKyAgICBmcm9tIF9weXRlc3QuY2Fj
aGVwcm92aWRlciBpbXBvcnQgQ0FDSEVESVJfVEFHX0NPTlRFTlQKKworICAgIGNvbmZpZyA9IHRl
c3RkaXIucGFyc2Vjb25maWcoKQorICAgIGNhY2hlID0gQ2FjaGUuZm9yX2NvbmZpZyhjb25maWcp
CisgICAgY2FjaGUuc2V0KCJmb28iLCAiYmFyIikKKyAgICBjYWNoZWRpcl90YWdfcGF0aCA9IGNh
Y2hlLl9jYWNoZWRpci5qb2lucGF0aCgiQ0FDSEVESVIuVEFHIikKKyAgICBhc3NlcnQgY2FjaGVk
aXJfdGFnX3BhdGgucmVhZF9ieXRlcygpID09IENBQ0hFRElSX1RBR19DT05URU5UCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY2FwdHVyZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9jYXB0dXJlLnB5CmluZGV4IGUxNGIzYWY3ODUxNzIxMWFkMTkwMDRmYzYxODkx
ZTg0MGRiODNlOTYuLjAxMTIzYmY1YjQwMzcwNmJlNGFmYjI1MDEyNDZiZTk1ZjFmZTk1N2UgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jYXB0dXJlLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvdGVzdF9jYXB0dXJlLnB5CkBAIC0xLDQyICsxLDMzIEBACi1mcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9u
CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAotIyBub3RlOiBweS5pbyBjYXB0dXJlIHRlc3RzIHdo
ZXJlIGNvcGllZCBmcm9tCi0jIHB5bGliIDEuNC4yMC5kZXYyIChyZXYgMTNkOWFmOTU1NDdlKQot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAotaW1wb3J0IHBpY2tsZQoraW1w
b3J0IGNvbnRleHRsaWIKK2ltcG9ydCBpbwogaW1wb3J0IG9zCitpbXBvcnQgcGlja2xlCitpbXBv
cnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cworaW1wb3J0IHRleHR3cmFwCiBmcm9tIGlvIGltcG9y
dCBVbnN1cHBvcnRlZE9wZXJhdGlvbgogCi1pbXBvcnQgX3B5dGVzdC5fY29kZQogaW1wb3J0IHB5
Citmcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCisKIGltcG9ydCBweXRlc3QKLWltcG9ydCBjb250
ZXh0bGliCi1mcm9tIHNpeCBpbXBvcnQgYmluYXJ5X3R5cGUsIHRleHRfdHlwZQogZnJvbSBfcHl0
ZXN0IGltcG9ydCBjYXB0dXJlCiBmcm9tIF9weXRlc3QuY2FwdHVyZSBpbXBvcnQgQ2FwdHVyZU1h
bmFnZXIKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9QWTMKIGZyb20gX3B5dGVzdC5tYWlu
IGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNURUQKIAotCi1uZWVkc29zZHVwID0gcHl0ZXN0Lm1h
cmsueGZhaWwoIm5vdCBoYXNhdHRyKG9zLCAnZHVwJykiKQotCi0KLWRlZiB0b2J5dGVzKG9iaik6
Ci0gICAgaWYgaXNpbnN0YW5jZShvYmosIHRleHRfdHlwZSk6Ci0gICAgICAgIG9iaiA9IG9iai5l
bmNvZGUoIlVURi04IikKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShvYmosIGJpbmFyeV90eXBlKQot
ICAgIHJldHVybiBvYmoKLQotCi1kZWYgdG90ZXh0KG9iaik6Ci0gICAgaWYgaXNpbnN0YW5jZShv
YmosIGJpbmFyeV90eXBlKToKLSAgICAgICAgb2JqID0gdGV4dF90eXBlKG9iaiwgIlVURi04IikK
LSAgICBhc3NlcnQgaXNpbnN0YW5jZShvYmosIHRleHRfdHlwZSkKLSAgICByZXR1cm4gb2JqCisj
IG5vdGU6IHB5LmlvIGNhcHR1cmUgdGVzdHMgd2hlcmUgY29waWVkIGZyb20KKyMgcHlsaWIgMS40
LjIwLmRldjIgKHJldiAxM2Q5YWY5NTU0N2UpCiAKIAotZGVmIG9zd3JpdGVieXRlcyhmZCwgb2Jq
KToKLSAgICBvcy53cml0ZShmZCwgdG9ieXRlcyhvYmopKQorbmVlZHNvc2R1cCA9IHB5dGVzdC5t
YXJrLnNraXBpZigKKyAgICBub3QgaGFzYXR0cihvcywgImR1cCIpLCByZWFzb249InRlc3QgbmVl
ZHMgb3MuZHVwLCBub3QgYXZhaWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0iCispCiAKIAogZGVmIFN0
ZENhcHR1cmVGRChvdXQ9VHJ1ZSwgZXJyPVRydWUsIGluXz1UcnVlKToKQEAgLTQ4LDcgKzM5LDYg
QEAgZGVmIFN0ZENhcHR1cmUob3V0PVRydWUsIGVycj1UcnVlLCBpbl89VHJ1ZSk6CiAKIAogY2xh
c3MgVGVzdENhcHR1cmVNYW5hZ2VyKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9nZXRtZXRob2Rf
ZGVmYXVsdF9ub19mZChzZWxmLCBtb25rZXlwYXRjaCk6CiAgICAgICAgIGZyb20gX3B5dGVzdC5j
YXB0dXJlIGltcG9ydCBweXRlc3RfYWRkb3B0aW9uCiAgICAgICAgIGZyb20gX3B5dGVzdC5jb25m
aWcuYXJncGFyc2luZyBpbXBvcnQgUGFyc2VyCkBAIC02Miw5ICs1Miw4IEBAIGNsYXNzIFRlc3RD
YXB0dXJlTWFuYWdlcihvYmplY3QpOgogICAgICAgICBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcikK
ICAgICAgICAgYXNzZXJ0IHBhcnNlci5fZ3JvdXBzWzBdLm9wdGlvbnNbMF0uZGVmYXVsdCA9PSAi
c3lzIgogCi0gICAgQG5lZWRzb3NkdXAKICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCi0g
ICAgICAgICJtZXRob2QiLCBbIm5vIiwgInN5cyIsIHB5dGVzdC5tYXJrLnNraXBpZignbm90IGhh
c2F0dHIob3MsICJkdXAiKScsICJmZCIpXQorICAgICAgICAibWV0aG9kIiwgWyJubyIsICJzeXMi
LCBweXRlc3QucGFyYW0oImZkIiwgbWFya3M9bmVlZHNvc2R1cCldCiAgICAgKQogICAgIGRlZiB0
ZXN0X2NhcHR1cmluZ19iYXNpY19hcGkoc2VsZiwgbWV0aG9kKToKICAgICAgICAgY2Fwb3V0ZXIg
PSBTdGRDYXB0dXJlRkQoKQpAQCAtNzIsMTkgKzYxLDIzIEBAIGNsYXNzIFRlc3RDYXB0dXJlTWFu
YWdlcihvYmplY3QpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBjYXBtYW4gPSBDYXB0dXJl
TWFuYWdlcihtZXRob2QpCiAgICAgICAgICAgICBjYXBtYW4uc3RhcnRfZ2xvYmFsX2NhcHR1cmlu
ZygpCi0gICAgICAgICAgICBvdXRlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgp
CisgICAgICAgICAgICBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAg
ICBvdXRlcnIgPSBjYXBtYW4ucmVhZF9nbG9iYWxfY2FwdHVyZSgpCiAgICAgICAgICAgICBhc3Nl
cnQgb3V0ZXJyID09ICgiIiwgIiIpCi0gICAgICAgICAgICBvdXRlcnIgPSBjYXBtYW4uc3VzcGVu
ZF9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAgICBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2Fw
dHVyZSgpCisgICAgICAgICAgICBvdXRlcnIgPSBjYXBtYW4ucmVhZF9nbG9iYWxfY2FwdHVyZSgp
CiAgICAgICAgICAgICBhc3NlcnQgb3V0ZXJyID09ICgiIiwgIiIpCiAgICAgICAgICAgICBwcmlu
dCgiaGVsbG8iKQotICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxf
Y2FwdHVyZSgpCisgICAgICAgICAgICBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisg
ICAgICAgICAgICBvdXQsIGVyciA9IGNhcG1hbi5yZWFkX2dsb2JhbF9jYXB0dXJlKCkKICAgICAg
ICAgICAgIGlmIG1ldGhvZCA9PSAibm8iOgogICAgICAgICAgICAgICAgIGFzc2VydCBvbGQgPT0g
KHN5cy5zdGRvdXQsIHN5cy5zdGRlcnIsIHN5cy5zdGRpbikKICAgICAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBvdXQKICAgICAgICAgICAgIGNhcG1hbi5yZXN1bWVf
Z2xvYmFsX2NhcHR1cmUoKQogICAgICAgICAgICAgcHJpbnQoImhlbGxvIikKLSAgICAgICAgICAg
IG91dCwgZXJyID0gY2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoKQorICAgICAgICAgICAg
Y2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBj
YXBtYW4ucmVhZF9nbG9iYWxfY2FwdHVyZSgpCiAgICAgICAgICAgICBpZiBtZXRob2QgIT0gIm5v
IjoKICAgICAgICAgICAgICAgICBhc3NlcnQgb3V0ID09ICJoZWxsb1xuIgogICAgICAgICAgICAg
Y2FwbWFuLnN0b3BfZ2xvYmFsX2NhcHR1cmluZygpCkBAIC05Nyw3ICs5MCw3IEBAIGNsYXNzIFRl
c3RDYXB0dXJlTWFuYWdlcihvYmplY3QpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBjYXBt
YW4gPSBDYXB0dXJlTWFuYWdlcigiZmQiKQogICAgICAgICAgICAgY2FwbWFuLnN0YXJ0X2dsb2Jh
bF9jYXB0dXJpbmcoKQotICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvciwg
ImNhcG1hbi5zdGFydF9nbG9iYWxfY2FwdHVyaW5nKCkiKQorICAgICAgICAgICAgcHl0ZXN0LnJh
aXNlcyhBc3NlcnRpb25FcnJvciwgY2FwbWFuLnN0YXJ0X2dsb2JhbF9jYXB0dXJpbmcpCiAgICAg
ICAgICAgICBjYXBtYW4uc3RvcF9nbG9iYWxfY2FwdHVyaW5nKCkKICAgICAgICAgZmluYWxseToK
ICAgICAgICAgICAgIGNhcG91dGVyLnN0b3BfY2FwdHVyaW5nKCkKQEAgLTExMywxMiArMTA2LDEy
IEBAIGRlZiB0ZXN0X2NhcHR1cmluZ191bmljb2RlKHRlc3RkaXIsIG1ldGhvZCk6CiAgICAgICAg
IG9iaiA9ICJ1J1x1MDBmNnknIgogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgIiIi
Ci0gICAgICAgICMgY29kaW5nPXV0ZjgKKyAgICAgICAgIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0K
ICAgICAgICAgIyB0YWtlbiBmcm9tIGlzc3VlIDIyNyBmcm9tIG5vc2V0ZXN0cwogICAgICAgICBk
ZWYgdGVzdF91bmljb2RlKCk6CiAgICAgICAgICAgICBpbXBvcnQgc3lzCi0gICAgICAgICAgICBw
cmludCAoc3lzLnN0ZG91dCkKLSAgICAgICAgICAgIHByaW50ICglcykKKyAgICAgICAgICAgIHBy
aW50KHN5cy5zdGRvdXQpCisgICAgICAgICAgICBwcmludCglcykKICAgICAiIiIKICAgICAgICAg
JSBvYmoKICAgICApCkBAIC0xMzEsNyArMTI0LDcgQEAgZGVmIHRlc3RfY2FwdHVyaW5nX2J5dGVz
X2luX3V0ZjhfZW5jb2RpbmcodGVzdGRpciwgbWV0aG9kKToKICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoCiAgICAgICAgICIiIgogICAgICAgICBkZWYgdGVzdF91bmljb2RlKCk6Ci0gICAgICAgICAg
ICBwcmludCAoJ2JcXHUwMGY2eScpCisgICAgICAgICAgICBwcmludCgnYlxcdTAwZjZ5JykKICAg
ICAiIiIKICAgICApCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY2FwdHVyZT0l
cyIgJSBtZXRob2QpCkBAIC0xNDEsMjggKzEzNCwzNyBAQCBkZWYgdGVzdF9jYXB0dXJpbmdfYnl0
ZXNfaW5fdXRmOF9lbmNvZGluZyh0ZXN0ZGlyLCBtZXRob2QpOgogZGVmIHRlc3RfY29sbGVjdF9j
YXB0dXJpbmcodGVzdGRpcik6CiAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAg
IiIiCi0gICAgICAgIHByaW50ICgiY29sbGVjdCAlcyBmYWlsdXJlIiAlIDEzKQorICAgICAgICBp
bXBvcnQgc3lzCisKKyAgICAgICAgcHJpbnQoImNvbGxlY3QgJXMgZmFpbHVyZSIgJSAxMykKKyAg
ICAgICAgc3lzLnN0ZGVyci53cml0ZSgiY29sbGVjdCAlc19zdGRlcnIgZmFpbHVyZSIgJSAxMykK
ICAgICAgICAgaW1wb3J0IHh5ejQyMTIzCiAgICAgIiIiCiAgICAgKQogICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KHApCi0gICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKkNh
cHR1cmVkIHN0ZG91dCoiLCAiKmNvbGxlY3QgMTMgZmFpbHVyZSoiXSkKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAgICAgICAgICIqQ2FwdHVyZWQgc3Rk
b3V0KiIsCisgICAgICAgICAgICAiY29sbGVjdCAxMyBmYWlsdXJlIiwKKyAgICAgICAgICAgICIq
Q2FwdHVyZWQgc3RkZXJyKiIsCisgICAgICAgICAgICAiY29sbGVjdCAxM19zdGRlcnIgZmFpbHVy
ZSIsCisgICAgICAgIF0KKyAgICApCiAKIAogY2xhc3MgVGVzdFBlclRlc3RDYXB0dXJpbmcob2Jq
ZWN0KToKLQogICAgIGRlZiB0ZXN0X2NhcHR1cmVfYW5kX2ZpeHR1cmVzKHNlbGYsIHRlc3RkaXIp
OgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAg
ICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKG1vZCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJz
ZXR1cCBtb2R1bGUiKQorICAgICAgICAgICAgICAgIHByaW50KCJzZXR1cCBtb2R1bGUiKQogICAg
ICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmN0aW9uKToKLSAgICAgICAgICAgICAgICBw
cmludCAoInNldHVwICIgKyBmdW5jdGlvbi5fX25hbWVfXykKKyAgICAgICAgICAgICAgICBwcmlu
dCgic2V0dXAgIiArIGZ1bmN0aW9uLl9fbmFtZV9fKQogICAgICAgICAgICAgZGVmIHRlc3RfZnVu
YzEoKToKLSAgICAgICAgICAgICAgICBwcmludCAoImluIGZ1bmMxIikKKyAgICAgICAgICAgICAg
ICBwcmludCgiaW4gZnVuYzEiKQogICAgICAgICAgICAgICAgIGFzc2VydCAwCiAgICAgICAgICAg
ICBkZWYgdGVzdF9mdW5jMigpOgotICAgICAgICAgICAgICAgIHByaW50ICgiaW4gZnVuYzIiKQor
ICAgICAgICAgICAgICAgIHByaW50KCJpbiBmdW5jMiIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0
IDAKICAgICAgICAgIiIiCiAgICAgICAgICkKQEAgLTE4MywxNCArMTg1LDE0IEBAIGNsYXNzIFRl
c3RQZXJUZXN0Q2FwdHVyaW5nKG9iamVjdCk6CiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAg
IGltcG9ydCBzeXMKICAgICAgICAgICAgIGRlZiBzZXR1cF9tb2R1bGUoZnVuYyk6Ci0gICAgICAg
ICAgICAgICAgcHJpbnQgKCJtb2R1bGUtc2V0dXAiKQorICAgICAgICAgICAgICAgIHByaW50KCJt
b2R1bGUtc2V0dXAiKQogICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmMpOgotICAg
ICAgICAgICAgICAgIHByaW50ICgiZnVuY3Rpb24tc2V0dXAiKQorICAgICAgICAgICAgICAgIHBy
aW50KCJmdW5jdGlvbi1zZXR1cCIpCiAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6Ci0gICAg
ICAgICAgICAgICAgcHJpbnQgKCJpbiBmdW5jdGlvbiIpCisgICAgICAgICAgICAgICAgcHJpbnQo
ImluIGZ1bmN0aW9uIikKICAgICAgICAgICAgICAgICBhc3NlcnQgMAogICAgICAgICAgICAgZGVm
IHRlYXJkb3duX2Z1bmN0aW9uKGZ1bmMpOgotICAgICAgICAgICAgICAgIHByaW50ICgiaW4gdGVh
cmRvd24iKQorICAgICAgICAgICAgICAgIHByaW50KCJpbiB0ZWFyZG93biIpCiAgICAgICAgICIi
IgogICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCkBAIC0y
MDksOSArMjExLDkgQEAgY2xhc3MgVGVzdFBlclRlc3RDYXB0dXJpbmcob2JqZWN0KToKICAgICAg
ICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYzEoKToKLSAgICAgICAgICAgICAgICBwcmludCAoImluIGZ1bmMxIikKKyAg
ICAgICAgICAgICAgICBwcmludCgiaW4gZnVuYzEiKQogICAgICAgICAgICAgZGVmIHRlc3RfZnVu
YzIoKToKLSAgICAgICAgICAgICAgICBwcmludCAoImluIGZ1bmMyIikKKyAgICAgICAgICAgICAg
ICBwcmludCgiaW4gZnVuYzIiKQogICAgICAgICAgICAgICAgIGFzc2VydCAwCiAgICAgICAgICIi
IgogICAgICAgICApCkBAIC0yMjQsMTIgKzIyNiwxMiBAQCBjbGFzcyBUZXN0UGVyVGVzdENhcHR1
cmluZyhvYmplY3QpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAg
ICAgIiIiCiAgICAgICAgICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgotICAgICAg
ICAgICAgICAgIHByaW50ICgic2V0dXAgZnVuYzEiKQorICAgICAgICAgICAgICAgIHByaW50KCJz
ZXR1cCBmdW5jMSIpCiAgICAgICAgICAgICBkZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVuY3Rpb24p
OgotICAgICAgICAgICAgICAgIHByaW50ICgidGVhcmRvd24gZnVuYzEiKQorICAgICAgICAgICAg
ICAgIHByaW50KCJ0ZWFyZG93biBmdW5jMSIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKICAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJpbiBm
dW5jMSIpCisgICAgICAgICAgICAgICAgcHJpbnQoImluIGZ1bmMxIikKICAgICAgICAgICAgICAg
ICBwYXNzCiAgICAgICAgICIiIgogICAgICAgICApCkBAIC0yNDksNyArMjUxLDcgQEAgY2xhc3Mg
VGVzdFBlclRlc3RDYXB0dXJpbmcob2JqZWN0KToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgZGVmIHRlYXJkb3duX21vZHVsZSht
b2QpOgotICAgICAgICAgICAgICAgIHByaW50ICgidGVhcmRvd24gbW9kdWxlIikKKyAgICAgICAg
ICAgICAgICBwcmludCgidGVhcmRvd24gbW9kdWxlIikKICAgICAgICAgICAgICAgICBhc3NlcnQg
MAogICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgogICAgICAgICAgICAgICAgIHBhc3MKQEAg
LTI2NywxNiArMjY5LDE2IEBAIGNsYXNzIFRlc3RQZXJUZXN0Q2FwdHVyaW5nKG9iamVjdCk6CiAK
ICAgICBkZWYgdGVzdF9jYXB0dXJpbmdfb3V0ZXJyKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBw
MSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIi
XAogICAgICAgICAgICAgaW1wb3J0IHN5cwogICAgICAgICAgICAgZGVmIHRlc3RfY2FwdHVyaW5n
KCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKDQyKQorICAgICAgICAgICAgICAgIHByaW50KDQy
KQogICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoc3RyKDIzKSkKICAgICAgICAgICAg
IGRlZiB0ZXN0X2NhcHR1cmluZ19lcnJvcigpOgotICAgICAgICAgICAgICAgIHByaW50ICgxKQor
ICAgICAgICAgICAgICAgIHByaW50KDEpCiAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0
ZShzdHIoMikpCiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgotICAgICAgICAiIiIK
KyAgICAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KHAxKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCkBAIC0yOTQs
MzYgKzI5NiwzNSBAQCBjbGFzcyBUZXN0UGVyVGVzdENhcHR1cmluZyhvYmplY3QpOgogCiAKIGNs
YXNzIFRlc3RMb2dnaW5nSW50ZXJhY3Rpb24ob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2xvZ2dp
bmdfc3RyZWFtX293bmVyc2hpcChzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcCA9IHRlc3RkaXIu
bWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAgICAg
ICAgZGVmIHRlc3RfbG9nZ2luZygpOgogICAgICAgICAgICAgICAgIGltcG9ydCBsb2dnaW5nCiAg
ICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogICAgICAgICAgICAgICAgIHN0cmVhbSA9IGNh
cHR1cmUuQ2FwdHVyZUlPKCkKICAgICAgICAgICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKHN0
cmVhbT1zdHJlYW0pCiAgICAgICAgICAgICAgICAgc3RyZWFtLmNsb3NlKCkgIyB0byBmcmVlIG1l
bW9yeS9yZWxlYXNlIHJlc291cmNlcwotICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIgogICAg
ICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MocCkK
ICAgICAgICAgYXNzZXJ0IHJlc3VsdC5zdGRlcnIuc3RyKCkuZmluZCgiYXRleGl0IikgPT0gLTEK
IAogICAgIGRlZiB0ZXN0X2xvZ2dpbmdfYW5kX2ltbWVkaWF0ZV9zZXR1cHRlYXJkb3duKHNlbGYs
IHRlc3RkaXIpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAg
IiIiCisgICAgICAgICAgICAiIiJcCiAgICAgICAgICAgICBpbXBvcnQgbG9nZ2luZwogICAgICAg
ICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmN0aW9uKToKLSAgICAgICAgICAgICAgICBsb2dn
aW5nLndhcm4oImhlbGxvMSIpCisgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCJoZWxs
bzEiKQogCiAgICAgICAgICAgICBkZWYgdGVzdF9sb2dnaW5nKCk6Ci0gICAgICAgICAgICAgICAg
bG9nZ2luZy53YXJuKCJoZWxsbzIiKQorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygi
aGVsbG8yIikKICAgICAgICAgICAgICAgICBhc3NlcnQgMAogCiAgICAgICAgICAgICBkZWYgdGVh
cmRvd25fZnVuY3Rpb24oZnVuY3Rpb24pOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcud2Fybigi
aGVsbG8zIikKKyAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoImhlbGxvMyIpCiAgICAg
ICAgICAgICAgICAgYXNzZXJ0IDAKLSAgICAgICAgIiIiCisgICAgICAgICAgICAiIiIKICAgICAg
ICAgKQogICAgICAgICBmb3Igb3B0YXJncyBpbiAoKCItLWNhcHR1cmU9c3lzIiwpLCAoIi0tY2Fw
dHVyZT1mZCIsKSk6CiAgICAgICAgICAgICBwcmludChvcHRhcmdzKQpAQCAtMzM3LDE5ICszMzgs
MTkgQEAgY2xhc3MgVGVzdExvZ2dpbmdJbnRlcmFjdGlvbihvYmplY3QpOgogCiAgICAgZGVmIHRl
c3RfbG9nZ2luZ19hbmRfY3Jvc3NzY29wZV9maXh0dXJlcyhzZWxmLCB0ZXN0ZGlyKToKICAgICAg
ICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
IiIiXAogICAgICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKICAgICAgICAgICAgIGRlZiBzZXR1cF9t
b2R1bGUoZnVuY3Rpb24pOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8xIikK
KyAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoImhlbGxvMSIpCiAKICAgICAgICAgICAg
IGRlZiB0ZXN0X2xvZ2dpbmcoKToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm4oImhlbGxv
MiIpCisgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCJoZWxsbzIiKQogICAgICAgICAg
ICAgICAgIGFzc2VydCAwCiAKICAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9tb2R1bGUoZnVuY3Rp
b24pOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8zIikKKyAgICAgICAgICAg
ICAgICBsb2dnaW5nLndhcm5pbmcoImhlbGxvMyIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IDAK
LSAgICAgICAgIiIiCisgICAgICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICBmb3Igb3B0
YXJncyBpbiAoKCItLWNhcHR1cmU9c3lzIiwpLCAoIi0tY2FwdHVyZT1mZCIsKSk6CiAgICAgICAg
ICAgICBwcmludChvcHRhcmdzKQpAQCAtMzYzLDExICszNjQsMTEgQEAgY2xhc3MgVGVzdExvZ2dp
bmdJbnRlcmFjdGlvbihvYmplY3QpOgogCiAgICAgZGVmIHRlc3RfY29uZnRlc3Rsb2dnaW5nX2lz
X3Nob3duKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgICAgIGltcG9ydCBs
b2dnaW5nCiAgICAgICAgICAgICAgICAgbG9nZ2luZy5iYXNpY0NvbmZpZygpCi0gICAgICAgICAg
ICAgICAgbG9nZ2luZy53YXJuKCJoZWxsbzQzNSIpCi0gICAgICAgICIiIgorICAgICAgICAgICAg
ICAgIGxvZ2dpbmcud2FybmluZygiaGVsbG80MzUiKQorICAgICAgICAgICAgIiIiCiAgICAgICAg
ICkKICAgICAgICAgIyBtYWtlIHN1cmUgdGhhdCBsb2dnaW5nIGlzIHN0aWxsIGNhcHR1cmVkIGlu
IHRlc3RzCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi1z
IiwgIi1wIiwgIm5vOmNhcHR1cmVsb2ciKQpAQCAtMzc3LDE5ICszNzgsMTkgQEAgY2xhc3MgVGVz
dExvZ2dpbmdJbnRlcmFjdGlvbihvYmplY3QpOgogCiAgICAgZGVmIHRlc3RfY29uZnRlc3Rsb2dn
aW5nX2FuZF90ZXN0X2xvZ2dpbmcoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFr
ZWNvbmZ0ZXN0KAotICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAiIiJcCiAgICAgICAgICAg
ICAgICAgaW1wb3J0IGxvZ2dpbmcKICAgICAgICAgICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmln
KCkKLSAgICAgICAgIiIiCisgICAgICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICAjIG1h
a2Ugc3VyZSB0aGF0IGxvZ2dpbmcgaXMgc3RpbGwgY2FwdHVyZWQgaW4gdGVzdHMKICAgICAgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIi
XAogICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKICAgICAgICAgICAgICAgICBpbXBvcnQg
bG9nZ2luZwotICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG80MzMiKQorICAgICAg
ICAgICAgICAgIGxvZ2dpbmcud2FybmluZygiaGVsbG80MzMiKQogICAgICAgICAgICAgICAgIGFz
c2VydCAwCi0gICAgICAgICIiIgorICAgICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcyhwLCAiLXAiLCAibm86Y2FwdHVy
ZWxvZyIpCiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKQEAgLTM5NywzMCArMzk4LDYz
IEBAIGNsYXNzIFRlc3RMb2dnaW5nSW50ZXJhY3Rpb24ob2JqZWN0KToKICAgICAgICAgYXNzZXJ0
ICJzb21ldGhpbmciIG5vdCBpbiByZXN1bHQuc3RkZXJyLnN0cigpCiAgICAgICAgIGFzc2VydCAi
b3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIiBub3QgaW4gcmVzdWx0LnN0ZGVyci5zdHIoKQogCisg
ICAgZGVmIHRlc3RfbG9nZ2luZ19hZnRlcl9jYXBfc3RvcHBlZChzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICAgICAiIiJcCisgICAgICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgIGltcG9ydCBsb2dnaW5nCiAKLWNs
YXNzIFRlc3RDYXB0dXJlRml4dHVyZShvYmplY3QpOgorICAgICAgICAgICAgICAgIGxvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCisgICAgICAgICAgICAgICAgZGVmIGxvZ19vbl90ZWFyZG93bigpOgorICAgICAgICAgICAg
ICAgICAgICB5aWVsZAorICAgICAgICAgICAgICAgICAgICBsb2cud2FybmluZygnTG9nZ2luZyBv
biB0ZWFyZG93bicpCisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICAjIG1ha2Ug
c3VyZSB0aGF0IGxvZ2dpbmcgaXMgc3RpbGwgY2FwdHVyZWQgaW4gdGVzdHMKKyAgICAgICAgcCA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2hlbGxvKGxvZ19vbl90ZWFyZG93bik6CisgICAgICAgICAgICAgICAgaW1wb3J0IGxvZ2dp
bmcKKyAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm5pbmcoImhlbGxvNDMzIikKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgMQorICAgICAgICAgICAgICAgIHJhaXNlIEtleWJvYXJkSW50ZXJydXB0
KCkKKyAgICAgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0X3N1YnByb2Nlc3MocCwgIi0tbG9nLWNsaS1sZXZlbCIsICJpbmZvIikKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoCisgICAgICAgICAgICBbIipXQVJOSU5HKmhlbGxvNDMzKiIsICIqV0FSTklORypMb2dn
aW5nIG9uIHRlYXJkb3duKiJdCisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAg
ICAgICJBdHRyaWJ1dGVFcnJvcjogJ05vbmVUeXBlJyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAn
cmVzdW1lX2NhcHR1cmluZyciCisgICAgICAgICAgICBub3QgaW4gcmVzdWx0LnN0ZGVyci5zdHIo
KQorICAgICAgICApCiAKKworY2xhc3MgVGVzdENhcHR1cmVGaXh0dXJlKG9iamVjdCk6CiAgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJvcHQiLCBbW10sIFsiLXMiXV0pCiAgICAgZGVmIHRl
c3Rfc3RkX2Z1bmN0aW9uYWwoc2VsZiwgdGVzdGRpciwgb3B0KToKICAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuc291cmNlKAotICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAi
IiJcCiAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXBzeXMpOgotICAgICAgICAgICAgICAg
IHByaW50ICg0MikKKyAgICAgICAgICAgICAgICBwcmludCg0MikKICAgICAgICAgICAgICAgICBv
dXQsIGVyciA9IGNhcHN5cy5yZWFkb3V0ZXJyKCkKICAgICAgICAgICAgICAgICBhc3NlcnQgb3V0
LnN0YXJ0c3dpdGgoIjQyIikKLSAgICAgICAgIiIiLAorICAgICAgICAgICAgIiIiLAogICAgICAg
ICAgICAgKm9wdAogICAgICAgICApCiAgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0xKQogCiAgICAgZGVmIHRlc3RfY2Fwc3lzY2FwZmQoc2VsZiwgdGVzdGRpcik6CiAgICAgICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICIi
IlwKICAgICAgICAgICAgIGRlZiB0ZXN0X29uZShjYXBzeXMsIGNhcGZkKToKICAgICAgICAgICAg
ICAgICBwYXNzCiAgICAgICAgICAgICBkZWYgdGVzdF90d28oY2FwZmQsIGNhcHN5cyk6CiAgICAg
ICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIgogICAgICAgICAp
CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCiAgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcygKQEAgLTQzOCwxMiArNDcyLDEyIEBAIGNsYXNzIFRlc3RDYXB0
dXJlRml4dHVyZShvYmplY3QpOgogICAgICAgICBpbiB0aGUgc2FtZSB0ZXN0IGlzIGFuIGVycm9y
LgogICAgICAgICAiIiIKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAg
IiIiCisgICAgICAgICAgICAiIiJcCiAgICAgICAgICAgICBkZWYgdGVzdF9vbmUoY2Fwc3lzLCBy
ZXF1ZXN0KToKICAgICAgICAgICAgICAgICByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgiY2FwZmQi
KQogICAgICAgICAgICAgZGVmIHRlc3RfdHdvKGNhcGZkLCByZXF1ZXN0KToKICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgiY2Fwc3lzIikKLSAgICAgICAgIiIiCisgICAg
ICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKQEAgLTQ1OCwxMCArNDky
LDEwIEBAIGNsYXNzIFRlc3RDYXB0dXJlRml4dHVyZShvYmplY3QpOgogCiAgICAgZGVmIHRlc3Rf
Y2Fwc3lzY2FwZmRiaW5hcnkoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1h
a2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIlwKICAgICAgICAgICAg
IGRlZiB0ZXN0X29uZShjYXBzeXMsIGNhcGZkYmluYXJ5KToKICAgICAgICAgICAgICAgICBwYXNz
Ci0gICAgICAgICIiIgorICAgICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QocCkKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKApAQCAtNDcxLDEyICs1MDUsMTMgQEAgY2xhc3MgVGVzdENhcHR1cmVGaXh0dXJlKG9iamVj
dCk6CiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtZXRob2QiLCBbInN5cyIsICJmZCJd
KQogICAgIGRlZiB0ZXN0X2NhcHR1cmVfaXNfcmVwcmVzZW50ZWRfb25fZmFpbHVyZV9pc3N1ZTEy
OChzZWxmLCB0ZXN0ZGlyLCBtZXRob2QpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXAlcyk6Ci0g
ICAgICAgICAgICAgICAgcHJpbnQgKCJ4eHg0Mnh4eCIpCisgICAgICAgICAgICAiIiJcCisgICAg
ICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXB7fSk6CisgICAgICAgICAgICAgICAgcHJpbnQoInh4
eDQyeHh4IikKICAgICAgICAgICAgICAgICBhc3NlcnQgMAotICAgICAgICAiIiIKLSAgICAgICAg
ICAgICUgbWV0aG9kCisgICAgICAgICAgICAiIiIuZm9ybWF0KAorICAgICAgICAgICAgICAgIG1l
dGhvZAorICAgICAgICAgICAgKQogICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KHApCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbInh4eDQy
eHh4Il0pCkBAIC00ODQsMjEgKzUxOSwyMSBAQCBjbGFzcyBUZXN0Q2FwdHVyZUZpeHR1cmUob2Jq
ZWN0KToKICAgICBAbmVlZHNvc2R1cAogICAgIGRlZiB0ZXN0X3N0ZGZkX2Z1bmN0aW9uYWwoc2Vs
ZiwgdGVzdGRpcik6CiAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgK
LSAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgZGVmIHRlc3Rf
aGVsbG8oY2FwZmQpOgogICAgICAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICAgICAg
IG9zLndyaXRlKDEsICI0MiIuZW5jb2RlKCdhc2NpaScpKQogICAgICAgICAgICAgICAgIG91dCwg
ZXJyID0gY2FwZmQucmVhZG91dGVycigpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IG91dC5zdGFy
dHN3aXRoKCI0MiIpCiAgICAgICAgICAgICAgICAgY2FwZmQuY2xvc2UoKQotICAgICAgICAiIiIK
KyAgICAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KHBhc3NlZD0xKQogCiAgICAgQG5lZWRzb3NkdXAKICAgICBkZWYgdGVzdF9jYXBmZGJpbmFyeShz
ZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNl
KAotICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAiIiJcCiAgICAgICAgICAgICBkZWYgdGVz
dF9oZWxsbyhjYXBmZGJpbmFyeSk6CiAgICAgICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAg
ICAgICAgICAgIyBzb21lIGxpa2VseSB1bi1kZWNvZGFibGUgYnl0ZXMKQEAgLTUwNiw3ICs1NDEs
NyBAQCBjbGFzcyBUZXN0Q2FwdHVyZUZpeHR1cmUob2JqZWN0KToKICAgICAgICAgICAgICAgICBv
dXQsIGVyciA9IGNhcGZkYmluYXJ5LnJlYWRvdXRlcnIoKQogICAgICAgICAgICAgICAgIGFzc2Vy
dCBvdXQgPT0gYidcXHhmZVxceDk4XFx4MjAnCiAgICAgICAgICAgICAgICAgYXNzZXJ0IGVyciA9
PSBiJycKLSAgICAgICAgIiIiCisgICAgICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICBy
ZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKIApAQCAtNTE1LDcgKzU1MCw3IEBAIGNsYXNz
IFRlc3RDYXB0dXJlRml4dHVyZShvYmplY3QpOgogICAgICkKICAgICBkZWYgdGVzdF9jYXBzeXNi
aW5hcnkoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bnNvdXJjZSgKLSAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAg
ZGVmIHRlc3RfaGVsbG8oY2Fwc3lzYmluYXJ5KToKICAgICAgICAgICAgICAgICBpbXBvcnQgc3lz
CiAgICAgICAgICAgICAgICAgIyBzb21lIGxpa2VseSB1bi1kZWNvZGFibGUgYnl0ZXMKQEAgLTUy
Myw3ICs1NTgsNyBAQCBjbGFzcyBUZXN0Q2FwdHVyZUZpeHR1cmUob2JqZWN0KToKICAgICAgICAg
ICAgICAgICBvdXQsIGVyciA9IGNhcHN5c2JpbmFyeS5yZWFkb3V0ZXJyKCkKICAgICAgICAgICAg
ICAgICBhc3NlcnQgb3V0ID09IGInXFx4ZmVcXHg5OFxceDIwJwogICAgICAgICAgICAgICAgIGFz
c2VydCBlcnIgPT0gYicnCi0gICAgICAgICIiIgorICAgICAgICAgICAgIiIiCiAgICAgICAgICkK
ICAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCiAKQEAgLTUzMiwyNiArNTY3
LDI2IEBAIGNsYXNzIFRlc3RDYXB0dXJlRml4dHVyZShvYmplY3QpOgogICAgICkKICAgICBkZWYg
dGVzdF9jYXBzeXNiaW5hcnlfZm9yYmlkZGVuX2luX3B5dGhvbjIoc2VsZiwgdGVzdGRpcik6CiAg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
IiIiXAogICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oY2Fwc3lzYmluYXJ5KToKICAgICAgICAg
ICAgICAgICBwYXNzCi0gICAgICAgICIiIgorICAgICAgICAgICAgIiIiCiAgICAgICAgICkKICAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQogICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoCiAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIip0ZXN0X2hl
bGxvKiIsCi0gICAgICAgICAgICAgICAgIipjYXBzeXNiaW5hcnkgaXMgb25seSBzdXBwb3J0ZWQg
b24gcHl0aG9uIDMqIiwKKyAgICAgICAgICAgICAgICAiKmNhcHN5c2JpbmFyeSBpcyBvbmx5IHN1
cHBvcnRlZCBvbiBQeXRob24gMyoiLAogICAgICAgICAgICAgICAgICIqMSBlcnJvciBpbioiLAog
ICAgICAgICAgICAgXQogICAgICAgICApCiAKICAgICBkZWYgdGVzdF9wYXJ0aWFsX3NldHVwX2Zh
aWx1cmUoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0g
ICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICIiIlwKICAgICAgICAgICAgIGRlZiB0ZXN0X2hl
bGxvKGNhcHN5cywgbWlzc2luZ2FyZyk6CiAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAi
IiIKKyAgICAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KHApCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip0ZXN0
X3BhcnRpYWxfc2V0dXBfZmFpbHVyZSoiLCAiKjEgZXJyb3IqIl0pCkBAIC01NTksMjEgKzU5NCwy
MSBAQCBjbGFzcyBUZXN0Q2FwdHVyZUZpeHR1cmUob2JqZWN0KToKICAgICBAbmVlZHNvc2R1cAog
ICAgIGRlZiB0ZXN0X2tleWJvYXJkaW50ZXJydXB0X2Rpc2FibGVzX2NhcHR1cmluZyhzZWxmLCB0
ZXN0ZGlyKToKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oY2FwZmQpOgog
ICAgICAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICAgICAgIG9zLndyaXRlKDEsIHN0
cig0MikuZW5jb2RlKCdhc2NpaScpKQogICAgICAgICAgICAgICAgIHJhaXNlIEtleWJvYXJkSW50
ZXJydXB0KCkKLSAgICAgICAgIiIiCisgICAgICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKHApCiAgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipLZXlib2FyZEludGVycnVwdCoiXSkKICAgICAgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gMgogCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlMTQKICAgICBk
ZWYgdGVzdF9jYXB0dXJlX2FuZF9sb2dnaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIj
MTQiIiIKICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgor
ICAgICAgICAgICAgIiIiXAogICAgICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKICAgICAgICAgICAg
IGRlZiB0ZXN0X2xvZyhjYXBzeXMpOgogICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJ3gn
KQpAQCAtNTg2LDcgKzYyMSw3IEBAIGNsYXNzIFRlc3RDYXB0dXJlRml4dHVyZShvYmplY3QpOgog
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgibm9fY2FwdHVyZSIsIFtUcnVlLCBGYWxzZV0p
CiAgICAgZGVmIHRlc3RfZGlzYWJsZWRfY2FwdHVyZV9maXh0dXJlKHNlbGYsIHRlc3RkaXIsIGZp
eHR1cmUsIG5vX2NhcHR1cmUpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAg
ICAgICAiIiIKKyAgICAgICAgICAgICIiIlwKICAgICAgICAgICAgIGRlZiB0ZXN0X2Rpc2FibGVk
KHtmaXh0dXJlfSk6CiAgICAgICAgICAgICAgICAgcHJpbnQoJ2NhcHR1cmVkIGJlZm9yZScpCiAg
ICAgICAgICAgICAgICAgd2l0aCB7Zml4dHVyZX0uZGlzYWJsZWQoKToKQEAgLTYyMCw3ICs2NTUs
NyBAQCBjbGFzcyBUZXN0Q2FwdHVyZUZpeHR1cmUob2JqZWN0KToKICAgICAgICAgRW5zdXJlIHRo
YXQgY2Fwc3lzIGFuZCBjYXBmZCBjYW4gYmUgdXNlZCBieSBvdGhlciBmaXh0dXJlcyBkdXJpbmcg
c2V0dXAgYW5kIHRlYXJkb3duLgogICAgICAgICAiIiIKICAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKAotICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAiIiJcCiAgICAgICAgICAgICBmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAgICAgICAgICAgICBpbXBvcnQgc3lz
CiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CkBAIC02NDgsMTkgKzY4Myw0NyBAQCBjbGFzcyBU
ZXN0Q2FwdHVyZUZpeHR1cmUob2JqZWN0KToKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKLSAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMSBwYXNzZWQqIikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQogICAgICAgICBhc3NlcnQgInN0ZG91
dCBjb250ZW50cyBiZWdpbiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKICAgICAgICAgYXNz
ZXJ0ICJzdGRlcnIgY29udGVudHMgYmVnaW4iIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCiAK
KyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNhcCIsIFsiY2Fwc3lzIiwgImNhcGZkIl0p
CisgICAgZGVmIHRlc3RfZml4dHVyZV91c2VfYnlfb3RoZXJfZml4dHVyZXNfdGVhcmRvd24oc2Vs
ZiwgdGVzdGRpciwgY2FwKToKKyAgICAgICAgIiIiRW5zdXJlIHdlIGNhbiBhY2Nlc3Mgc2V0dXAg
YW5kIHRlYXJkb3duIGJ1ZmZlcnMgZnJvbSB0ZWFyZG93biB3aGVuIHVzaW5nIGNhcHN5cy9jYXBm
ZCAoIyMzMDMzKSIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAi
IiJcCisgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBpbXBvcnQgb3MKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAg
ICAgICAgICAgIGRlZiBmaXgoe2NhcH0pOgorICAgICAgICAgICAgICAgIHByaW50KCJzZXR1cCBv
dXQiKQorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoInNldHVwIGVyclxcbiIpCisg
ICAgICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgICAgICBvdXQsIGVyciA9IHtjYXB9LnJl
YWRvdXRlcnIoKQorICAgICAgICAgICAgICAgIGFzc2VydCBvdXQgPT0gJ3NldHVwIG91dFxcbmNh
bGwgb3V0XFxuJworICAgICAgICAgICAgICAgIGFzc2VydCBlcnIgPT0gJ3NldHVwIGVyclxcbmNh
bGwgZXJyXFxuJworCisgICAgICAgICAgICBkZWYgdGVzdF9hKGZpeCk6CisgICAgICAgICAgICAg
ICAgcHJpbnQoImNhbGwgb3V0IikKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJj
YWxsIGVyclxcbiIpCisgICAgICAgICIiIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgY2FwPWNh
cAorICAgICAgICAgICAgKQorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCiAKIGRl
ZiB0ZXN0X3NldHVwX2ZhaWx1cmVfZG9lc19ub3Rfa2lsbF9jYXB0dXJpbmcodGVzdGRpcik6CiAg
ICAgc3ViMSA9IHRlc3RkaXIubWtweWRpcigic3ViMSIpCiAgICAgc3ViMS5qb2luKCJjb25mdGVz
dC5weSIpLndyaXRlKAotICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgdGV4
dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgZGVmIHB5dGVzdF9y
dW50ZXN0X3NldHVwKGl0ZW0pOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIp
CiAgICAgICAgICAgICAiIiIKLSAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0p
OgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikKLSAgICAiIiIKICAgICAgICAgKQog
ICAgICkKICAgICBzdWIxLmpvaW4oInRlc3RfbW9kLnB5Iikud3JpdGUoImRlZiB0ZXN0X2Z1bmMx
KCk6IHBhc3MiKQpAQCAtNjg2LDcgKzc0OSw3IEBAIGRlZiB0ZXN0X2NhcHR1cmVfY29uZnRlc3Rf
cnVudGVzdF9zZXR1cCh0ZXN0ZGlyKToKICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAg
ICAgIiIiCiAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cCgpOgotICAgICAgICAgICAg
cHJpbnQgKCJoZWxsbzE5IikKKyAgICAgICAgICAgIHByaW50KCJoZWxsbzE5IikKICAgICAiIiIK
ICAgICApCiAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQpA
QCAtNzIxLDcgKzc4NCw3IEBAIGRlZiB0ZXN0X2NhcHR1cmVfZWFybHlfb3B0aW9uX3BhcnNpbmco
dGVzdGRpcik6CiAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCiAgICAgICAgICIiIgogICAgICAg
ICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoKToKLSAgICAgICAgICAgIHByaW50ICgiaGVsbG8x
OSIpCisgICAgICAgICAgICBwcmludCgiaGVsbG8xOSIpCiAgICAgIiIiCiAgICAgKQogICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKQEAgLTc1NiwyMiArODE5
LDIxIEBAIGRlZiB0ZXN0X2Vycm9yX2R1cmluZ19yZWFkb3V0ZXJyKHRlc3RkaXIpOgogICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgcHl0ZXN0X3h5ej0iIiIKICAgICAgICAgZnJvbSBf
cHl0ZXN0LmNhcHR1cmUgaW1wb3J0IEZEQ2FwdHVyZQorCiAgICAgICAgIGRlZiBiYWRfc25hcChz
ZWxmKToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignYm9vbScpCisKICAgICAgICAgYXNz
ZXJ0IEZEQ2FwdHVyZS5zbmFwCiAgICAgICAgIEZEQ2FwdHVyZS5zbmFwID0gYmFkX3NuYXAKICAg
ICAiIiIKICAgICApCi0gICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygK
LSAgICAgICAgIi1wIiwgInB5dGVzdF94eXoiLCAiLS12ZXJzaW9uIiwgc3lzcGF0aGluc2VydD1U
cnVlCi0gICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi1w
IiwgInB5dGVzdF94eXoiLCAiLS12ZXJzaW9uIikKICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hf
bGluZXMoCiAgICAgICAgIFsiKmluIGJhZF9zbmFwIiwgIiAgICByYWlzZSBFeGNlcHRpb24oJ2Jv
b20nKSIsICJFeGNlcHRpb246IGJvb20iXQogICAgICkKIAogCiBjbGFzcyBUZXN0Q2FwdHVyZUlP
KG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF90ZXh0KHNlbGYpOgogICAgICAgICBmID0gY2FwdHVy
ZS5DYXB0dXJlSU8oKQogICAgICAgICBmLndyaXRlKCJoZWxsbyIpCkBAIC03ODMsMTAgKzg0NSwx
MCBAQCBjbGFzcyBUZXN0Q2FwdHVyZUlPKG9iamVjdCk6CiAgICAgICAgIGYgPSBjYXB0dXJlLkNh
cHR1cmVJTygpCiAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgogICAgICAg
ICAgICAgZi53cml0ZSgiXHUwMGY2IikKLSAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoVHlwZUVy
cm9yLCAiZi53cml0ZShieXRlcygnaGVsbG8nLCAnVVRGLTgnKSkiKQorICAgICAgICAgICAgcHl0
ZXN0LnJhaXNlcyhUeXBlRXJyb3IsIGYud3JpdGUsIGIiaGVsbG8iKQogICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgZi53cml0ZSh0ZXh0X3R5cGUoIlx1MDBmNiIsICJVVEYtOCIpKQotICAgICAg
ICAgICAgZi53cml0ZSgiaGVsbG8iKSAgIyBieXRlcworICAgICAgICAgICAgZi53cml0ZSh1Ilx1
MDBmNiIpCisgICAgICAgICAgICBmLndyaXRlKGIiaGVsbG8iKQogICAgICAgICAgICAgcyA9IGYu
Z2V0dmFsdWUoKQogICAgICAgICAgICAgZi5jbG9zZSgpCiAgICAgICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShzLCB0ZXh0X3R5cGUpCkBAIC04MDEsMTQgKzg2Myw2IEBAIGNsYXNzIFRlc3RDYXB0
dXJlSU8ob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IGYuZ2V0dmFsdWUoKSA9PSAiZm9vXHJcbiIK
IAogCi1kZWYgdGVzdF9ieXRlc19pbygpOgotICAgIGYgPSBweS5pby5CeXRlc0lPKCkKLSAgICBm
LndyaXRlKHRvYnl0ZXMoImhlbGxvIikpCi0gICAgcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IsICJm
LndyaXRlKHRvdGV4dCgnaGVsbG8nKSkiKQotICAgIHMgPSBmLmdldHZhbHVlKCkKLSAgICBhc3Nl
cnQgcyA9PSB0b2J5dGVzKCJoZWxsbyIpCi0KLQogZGVmIHRlc3RfZG9udHJlYWRmcm9taW5wdXQo
KToKICAgICBmcm9tIF9weXRlc3QuY2FwdHVyZSBpbXBvcnQgRG9udFJlYWRGcm9tSW5wdXQKIApA
QCAtODgzLDE4ICs5MzcsMTggQEAgZGVmIHRlc3RfZHVwZmlsZSh0bXBmaWxlKToKIAogCiBkZWYg
dGVzdF9kdXBmaWxlX29uX2J5dGVzaW8oKToKLSAgICBpbyA9IHB5LmlvLkJ5dGVzSU8oKQotICAg
IGYgPSBjYXB0dXJlLnNhZmVfdGV4dF9kdXBmaWxlKGlvLCAid2IiKQorICAgIGJpbyA9IGlvLkJ5
dGVzSU8oKQorICAgIGYgPSBjYXB0dXJlLnNhZmVfdGV4dF9kdXBmaWxlKGJpbywgIndiIikKICAg
ICBmLndyaXRlKCJoZWxsbyIpCi0gICAgYXNzZXJ0IGlvLmdldHZhbHVlKCkgPT0gYiJoZWxsbyIK
KyAgICBhc3NlcnQgYmlvLmdldHZhbHVlKCkgPT0gYiJoZWxsbyIKICAgICBhc3NlcnQgIkJ5dGVz
SU8gb2JqZWN0IiBpbiBmLm5hbWUKIAogCiBkZWYgdGVzdF9kdXBmaWxlX29uX3RleHRpbygpOgot
ICAgIGlvID0gcHkuaW8uVGV4dElPKCkKLSAgICBmID0gY2FwdHVyZS5zYWZlX3RleHRfZHVwZmls
ZShpbywgIndiIikKKyAgICB0aW8gPSBweS5pby5UZXh0SU8oKQorICAgIGYgPSBjYXB0dXJlLnNh
ZmVfdGV4dF9kdXBmaWxlKHRpbywgIndiIikKICAgICBmLndyaXRlKCJoZWxsbyIpCi0gICAgYXNz
ZXJ0IGlvLmdldHZhbHVlKCkgPT0gImhlbGxvIgorICAgIGFzc2VydCB0aW8uZ2V0dmFsdWUoKSA9
PSAiaGVsbG8iCiAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGYsICJuYW1lIikKIAogCkBAIC05MDIs
MTIgKzk1NiwxMiBAQCBkZWYgdGVzdF9kdXBmaWxlX29uX3RleHRpbygpOgogZGVmIGxzb2ZfY2hl
Y2soKToKICAgICBwaWQgPSBvcy5nZXRwaWQoKQogICAgIHRyeToKLSAgICAgICAgb3V0ID0gcHku
cHJvY2Vzcy5jbWRleGVjKCJsc29mIC1wICVkIiAlIHBpZCkKLSAgICBleGNlcHQgKHB5LnByb2Nl
c3MuY21kZXhlYy5FcnJvciwgVW5pY29kZURlY29kZUVycm9yKToKKyAgICAgICAgb3V0ID0gc3Vi
cHJvY2Vzcy5jaGVja19vdXRwdXQoKCJsc29mIiwgIi1wIiwgc3RyKHBpZCkpKS5kZWNvZGUoKQor
ICAgIGV4Y2VwdCAoT1NFcnJvciwgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IsIFVuaWNv
ZGVEZWNvZGVFcnJvcik6CiAgICAgICAgICMgYWJvdXQgVW5pY29kZURlY29kZUVycm9yLCBzZWUg
bm90ZSBvbiBweXRlc3RlcgogICAgICAgICBweXRlc3Quc2tpcCgiY291bGQgbm90IHJ1biAnbHNv
ZiciKQogICAgIHlpZWxkCi0gICAgb3V0MiA9IHB5LnByb2Nlc3MuY21kZXhlYygibHNvZiAtcCAl
ZCIgJSBwaWQpCisgICAgb3V0MiA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KCgibHNvZiIsICIt
cCIsIHN0cihwaWQpKSkuZGVjb2RlKCkKICAgICBsZW4xID0gbGVuKFt4IGZvciB4IGluIG91dC5z
cGxpdCgiXG4iKSBpZiAiUkVHIiBpbiB4XSkKICAgICBsZW4yID0gbGVuKFt4IGZvciB4IGluIG91
dDIuc3BsaXQoIlxuIikgaWYgIlJFRyIgaW4geF0pCiAgICAgYXNzZXJ0IGxlbjIgPCBsZW4xICsg
Mywgb3V0MgpAQCAtOTE5LDcgKzk3Myw3IEBAIGNsYXNzIFRlc3RGRENhcHR1cmUob2JqZWN0KToK
ICAgICBkZWYgdGVzdF9zaW1wbGUoc2VsZiwgdG1wZmlsZSk6CiAgICAgICAgIGZkID0gdG1wZmls
ZS5maWxlbm8oKQogICAgICAgICBjYXAgPSBjYXB0dXJlLkZEQ2FwdHVyZShmZCkKLSAgICAgICAg
ZGF0YSA9IHRvYnl0ZXMoImhlbGxvIikKKyAgICAgICAgZGF0YSA9IGIiaGVsbG8iCiAgICAgICAg
IG9zLndyaXRlKGZkLCBkYXRhKQogICAgICAgICBzID0gY2FwLnNuYXAoKQogICAgICAgICBjYXAu
ZG9uZSgpCkBAIC05NTksMTAgKzEwMTMsMTAgQEAgY2xhc3MgVGVzdEZEQ2FwdHVyZShvYmplY3Qp
OgogICAgICAgICBjYXAuc3RhcnQoKQogICAgICAgICB4ID0gb3MucmVhZCgwLCAxMDApLnN0cmlw
KCkKICAgICAgICAgY2FwLmRvbmUoKQotICAgICAgICBhc3NlcnQgeCA9PSB0b2J5dGVzKCIiKQor
ICAgICAgICBhc3NlcnQgeCA9PSBiIiIKIAogICAgIGRlZiB0ZXN0X3dyaXRlb3JnKHNlbGYsIHRt
cGZpbGUpOgotICAgICAgICBkYXRhMSwgZGF0YTIgPSB0b2J5dGVzKCJmb28iKSwgdG9ieXRlcygi
YmFyIikKKyAgICAgICAgZGF0YTEsIGRhdGEyID0gYiJmb28iLCBiImJhciIKICAgICAgICAgY2Fw
ID0gY2FwdHVyZS5GRENhcHR1cmUodG1wZmlsZS5maWxlbm8oKSkKICAgICAgICAgY2FwLnN0YXJ0
KCkKICAgICAgICAgdG1wZmlsZS53cml0ZShkYXRhMSkKQEAgLTk3MCw3ICsxMDI0LDcgQEAgY2xh
c3MgVGVzdEZEQ2FwdHVyZShvYmplY3QpOgogICAgICAgICBjYXAud3JpdGVvcmcoZGF0YTIpCiAg
ICAgICAgIHNjYXAgPSBjYXAuc25hcCgpCiAgICAgICAgIGNhcC5kb25lKCkKLSAgICAgICAgYXNz
ZXJ0IHNjYXAgPT0gdG90ZXh0KGRhdGExKQorICAgICAgICBhc3NlcnQgc2NhcCA9PSBkYXRhMS5k
ZWNvZGUoImFzY2lpIikKICAgICAgICAgd2l0aCBvcGVuKHRtcGZpbGUubmFtZSwgInJiIikgYXMg
c3RtcF9maWxlOgogICAgICAgICAgICAgc3RtcCA9IHN0bXBfZmlsZS5yZWFkKCkKICAgICAgICAg
ICAgIGFzc2VydCBzdG1wID09IGRhdGEyCkBAIC05NzksMTcgKzEwMzMsMTcgQEAgY2xhc3MgVGVz
dEZEQ2FwdHVyZShvYmplY3QpOgogICAgICAgICB3aXRoIHNhdmVkX2ZkKDEpOgogICAgICAgICAg
ICAgY2FwID0gY2FwdHVyZS5GRENhcHR1cmUoMSkKICAgICAgICAgICAgIGNhcC5zdGFydCgpCi0g
ICAgICAgICAgICBkYXRhID0gdG9ieXRlcygiaGVsbG8iKQorICAgICAgICAgICAgZGF0YSA9IGIi
aGVsbG8iCiAgICAgICAgICAgICBvcy53cml0ZSgxLCBkYXRhKQogICAgICAgICAgICAgc3lzLnN0
ZG91dC53cml0ZSgid2hhdGV2ZXIiKQogICAgICAgICAgICAgcyA9IGNhcC5zbmFwKCkKICAgICAg
ICAgICAgIGFzc2VydCBzID09ICJoZWxsb3doYXRldmVyIgogICAgICAgICAgICAgY2FwLnN1c3Bl
bmQoKQotICAgICAgICAgICAgb3Mud3JpdGUoMSwgdG9ieXRlcygid29ybGQiKSkKKyAgICAgICAg
ICAgIG9zLndyaXRlKDEsIGIid29ybGQiKQogICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgi
cWx3a2VqIikKICAgICAgICAgICAgIGFzc2VydCBub3QgY2FwLnNuYXAoKQogICAgICAgICAgICAg
Y2FwLnJlc3VtZSgpCi0gICAgICAgICAgICBvcy53cml0ZSgxLCB0b2J5dGVzKCJidXQgbm93Iikp
CisgICAgICAgICAgICBvcy53cml0ZSgxLCBiImJ1dCBub3ciKQogICAgICAgICAgICAgc3lzLnN0
ZG91dC53cml0ZSgiIHllc1xuIikKICAgICAgICAgICAgIHMgPSBjYXAuc25hcCgpCiAgICAgICAg
ICAgICBhc3NlcnQgcyA9PSAiYnV0IG5vdyB5ZXNcbiIKQEAgLTk5Nyw2ICsxMDUxLDkgQEAgY2xh
c3MgVGVzdEZEQ2FwdHVyZShvYmplY3QpOgogICAgICAgICAgICAgY2FwLmRvbmUoKQogICAgICAg
ICAgICAgcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgY2FwLnN1c3BlbmQpCiAKKyAgICBk
ZWYgdGVzdF9jYXBmZF9zeXNfc3Rkb3V0X21vZGUoc2VsZiwgY2FwZmQpOgorICAgICAgICBhc3Nl
cnQgImIiIG5vdCBpbiBzeXMuc3Rkb3V0Lm1vZGUKKwogCiBAY29udGV4dGxpYi5jb250ZXh0bWFu
YWdlcgogZGVmIHNhdmVkX2ZkKGZkKToKQEAgLTEwNTcsOSArMTExNCw5IEBAIGNsYXNzIFRlc3RT
dGRDYXB0dXJlKG9iamVjdCk6CiAKICAgICBkZWYgdGVzdF9jYXB0dXJpbmdfcmVhZG91dGVycl91
bmljb2RlKHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuZ2V0Y2FwdHVyZSgpIGFzIGNhcDoKLSAg
ICAgICAgICAgIHByaW50KCJoeFx4YzRceDg1XHhjNFx4ODciKQorICAgICAgICAgICAgcHJpbnQo
Imh4xIXEhyIpCiAgICAgICAgICAgICBvdXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKLSAgICAg
ICAgYXNzZXJ0IG91dCA9PSBweS5idWlsdGluLl90b3RleHQoImh4XHhjNFx4ODVceGM0XHg4N1xu
IiwgInV0ZjgiKQorICAgICAgICBhc3NlcnQgb3V0ID09IHUiaHjEhcSHXG4iCiAKICAgICBAcHl0
ZXN0Lm1hcmsuc2tpcGlmKAogICAgICAgICAic3lzLnZlcnNpb25faW5mbyA+PSAoMywpIiwgcmVh
c29uPSJ0ZXh0IG91dHB1dCBkaWZmZXJlbnQgZm9yIGJ5dGVzIG9uIHB5dGhvbjMiCkBAIC0xMDY5
LDcgKzExMjYsNyBAQCBjbGFzcyBUZXN0U3RkQ2FwdHVyZShvYmplY3QpOgogICAgICAgICAgICAg
IyB0cmlnZ2VyZWQgYW4gaW50ZXJuYWwgZXJyb3IgaW4gcHl0ZXN0CiAgICAgICAgICAgICBwcmlu
dCgiXHhhNiIpCiAgICAgICAgICAgICBvdXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKLSAgICAg
ICAgYXNzZXJ0IG91dCA9PSBweS5idWlsdGluLl90b3RleHQoIlx1ZmZmZFxuIiwgInVuaWNvZGUt
ZXNjYXBlIikKKyAgICAgICAgYXNzZXJ0IG91dCA9PSB1Ilx1ZmZmZFxuIgogCiAgICAgZGVmIHRl
c3RfcmVzZXRfdHdpY2VfZXJyb3Ioc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5nZXRjYXB0dXJl
KCkgYXMgY2FwOgpAQCAtMTEzMyw3ICsxMTkwLDcgQEAgY2xhc3MgVGVzdFN0ZENhcHR1cmUob2Jq
ZWN0KToKICAgICAgICAgcHJpbnQoIlhYWCB3aGljaCBpbmRpY2F0ZXMgYW4gZXJyb3IgaW4gdGhl
IHVuZGVybHlpbmcgY2FwdHVyaW5nIikKICAgICAgICAgcHJpbnQoIlhYWCBtZWNoYW5pc21zIikK
ICAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUoKToKLSAgICAgICAgICAgIHB5dGVzdC5yYWlz
ZXMoSU9FcnJvciwgInN5cy5zdGRpbi5yZWFkKCkiKQorICAgICAgICAgICAgcHl0ZXN0LnJhaXNl
cyhJT0Vycm9yLCBzeXMuc3RkaW4ucmVhZCkKIAogCiBjbGFzcyBUZXN0U3RkQ2FwdHVyZUZEKFRl
c3RTdGRDYXB0dXJlKToKQEAgLTExNjAsMTQgKzEyMTcsMTQgQEAgY2xhc3MgVGVzdFN0ZENhcHR1
cmVGRChUZXN0U3RkQ2FwdHVyZSk6CiAKICAgICBkZWYgdGVzdF9pbnRlcm1pbmdsaW5nKHNlbGYp
OgogICAgICAgICB3aXRoIHNlbGYuZ2V0Y2FwdHVyZSgpIGFzIGNhcDoKLSAgICAgICAgICAgIG9z
d3JpdGVieXRlcygxLCAiMSIpCisgICAgICAgICAgICBvcy53cml0ZSgxLCBiIjEiKQogICAgICAg
ICAgICAgc3lzLnN0ZG91dC53cml0ZShzdHIoMikpCiAgICAgICAgICAgICBzeXMuc3Rkb3V0LmZs
dXNoKCkKLSAgICAgICAgICAgIG9zd3JpdGVieXRlcygxLCAiMyIpCi0gICAgICAgICAgICBvc3dy
aXRlYnl0ZXMoMiwgImEiKQorICAgICAgICAgICAgb3Mud3JpdGUoMSwgYiIzIikKKyAgICAgICAg
ICAgIG9zLndyaXRlKDIsIGIiYSIpCiAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJiIikK
ICAgICAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQotICAgICAgICAgICAgb3N3cml0ZWJ5dGVz
KDIsICJjIikKKyAgICAgICAgICAgIG9zLndyaXRlKDIsIGIiYyIpCiAgICAgICAgICAgICBvdXQs
IGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKICAgICAgICAgYXNzZXJ0IG91dCA9PSAiMTIzIgogICAg
ICAgICBhc3NlcnQgZXJyID09ICJhYmMiCkBAIC0xMTg3LDIwICsxMjQ0LDI2IEBAIGNsYXNzIFRl
c3RTdGRDYXB0dXJlRkRpbnZhbGlkRkQob2JqZWN0KToKICAgICAgICAgICAgICIiIgogICAgICAg
ICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGNhcHR1cmUK
KwogICAgICAgICAgICAgZGVmIFN0ZENhcHR1cmVGRChvdXQ9VHJ1ZSwgZXJyPVRydWUsIGluXz1U
cnVlKToKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FwdHVyZS5NdWx0aUNhcHR1cmUob3V0LCBl
cnIsIGluXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
YXB0dXJlPWNhcHR1cmUuRkRDYXB0dXJlKQorICAgICAgICAgICAgICAgIHJldHVybiBjYXB0dXJl
Lk11bHRpQ2FwdHVyZShvdXQsIGVyciwgaW5fLCBDYXB0dXJlPWNhcHR1cmUuRkRDYXB0dXJlKQor
CiAgICAgICAgICAgICBkZWYgdGVzdF9zdGRvdXQoKToKICAgICAgICAgICAgICAgICBvcy5jbG9z
ZSgxKQogICAgICAgICAgICAgICAgIGNhcCA9IFN0ZENhcHR1cmVGRChvdXQ9VHJ1ZSwgZXJyPUZh
bHNlLCBpbl89RmFsc2UpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcHIoY2FwLm91dCkgPT0g
IjxGRENhcHR1cmUgMSBvbGRmZD1Ob25lIF9zdGF0ZT1Ob25lPiIKICAgICAgICAgICAgICAgICBj
YXAuc3RvcF9jYXB0dXJpbmcoKQorCiAgICAgICAgICAgICBkZWYgdGVzdF9zdGRlcnIoKToKICAg
ICAgICAgICAgICAgICBvcy5jbG9zZSgyKQogICAgICAgICAgICAgICAgIGNhcCA9IFN0ZENhcHR1
cmVGRChvdXQ9RmFsc2UsIGVycj1UcnVlLCBpbl89RmFsc2UpCisgICAgICAgICAgICAgICAgYXNz
ZXJ0IHJlcHIoY2FwLmVycikgPT0gIjxGRENhcHR1cmUgMiBvbGRmZD1Ob25lIF9zdGF0ZT1Ob25l
PiIKICAgICAgICAgICAgICAgICBjYXAuc3RvcF9jYXB0dXJpbmcoKQorCiAgICAgICAgICAgICBk
ZWYgdGVzdF9zdGRpbigpOgogICAgICAgICAgICAgICAgIG9zLmNsb3NlKDApCiAgICAgICAgICAg
ICAgICAgY2FwID0gU3RkQ2FwdHVyZUZEKG91dD1GYWxzZSwgZXJyPUZhbHNlLCBpbl89VHJ1ZSkK
KyAgICAgICAgICAgICAgICBhc3NlcnQgcmVwcihjYXAuaW5fKSA9PSAiPEZEQ2FwdHVyZSAwIG9s
ZGZkPU5vbmUgX3N0YXRlPU5vbmU+IgogICAgICAgICAgICAgICAgIGNhcC5zdG9wX2NhcHR1cmlu
ZygpCiAgICAgICAgICIiIgogICAgICAgICApCkBAIC0xMjg0LDE2ICsxMzQ3LDE2IEBAIGRlZiB0
ZXN0X2NhcHR1cmluZ19hbmRfbG9nZ2luZ19mdW5kYW1lbnRhbHModGVzdGRpciwgbWV0aG9kKToK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXB0dXJlPWNhcHR1cmUuJXMp
CiAgICAgICAgIGNhcC5zdGFydF9jYXB0dXJpbmcoKQogCi0gICAgICAgIGxvZ2dpbmcud2Fybigi
aGVsbG8xIikKKyAgICAgICAgbG9nZ2luZy53YXJuaW5nKCJoZWxsbzEiKQogICAgICAgICBvdXRl
cnIgPSBjYXAucmVhZG91dGVycigpCi0gICAgICAgIHByaW50ICgic3VzcGVuZCwgY2FwdHVyZWQg
JSVzIiAlJShvdXRlcnIsKSkKLSAgICAgICAgbG9nZ2luZy53YXJuKCJoZWxsbzIiKQorICAgICAg
ICBwcmludCgic3VzcGVuZCwgY2FwdHVyZWQgJSVzIiAlJShvdXRlcnIsKSkKKyAgICAgICAgbG9n
Z2luZy53YXJuaW5nKCJoZWxsbzIiKQogCiAgICAgICAgIGNhcC5wb3Bfb3V0ZXJyX3RvX29yaWco
KQotICAgICAgICBsb2dnaW5nLndhcm4oImhlbGxvMyIpCisgICAgICAgIGxvZ2dpbmcud2Fybmlu
ZygiaGVsbG8zIikKIAogICAgICAgICBvdXRlcnIgPSBjYXAucmVhZG91dGVycigpCi0gICAgICAg
IHByaW50ICgic3VzcGVuZDIsIGNhcHR1cmVkICUlcyIgJSUgKG91dGVyciwpKQorICAgICAgICBw
cmludCgic3VzcGVuZDIsIGNhcHR1cmVkICUlcyIgJSUgKG91dGVyciwpKQogICAgICIiIgogICAg
ICAgICAlIChtZXRob2QsKQogICAgICkKQEAgLTEzMzcsNyArMTQwMCw2IEBAIGRlZiB0ZXN0X3B5
MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJvdW5kX25vbl9zdGFuZGFyZF9zdHJlYW1zKCk6CiAg
ICAgZnJvbSBfcHl0ZXN0LmNhcHR1cmUgaW1wb3J0IF9weTM2X3dpbmRvd3Njb25zb2xlaW9fd29y
a2Fyb3VuZAogCiAgICAgY2xhc3MgRHVtbXlTdHJlYW0ob2JqZWN0KToKLQogICAgICAgICBkZWYg
d3JpdGUoc2VsZiwgcyk6CiAgICAgICAgICAgICBwYXNzCiAKQEAgLTEzNjAsMjggKzE0MjIsMzYg
QEAgZGVmIHRlc3RfZG9udHJlYWRmcm9taW5wdXRfaGFzX2VuY29kaW5nKHRlc3RkaXIpOgogCiAK
IGRlZiB0ZXN0X2NyYXNoX29uX2Nsb3NpbmdfdG1wZmlsZV9weTI3KHRlc3RkaXIpOgotICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAi
IiIKICAgICAgICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgotICAgICAg
ICBpbXBvcnQgdGltZQogICAgICAgICBpbXBvcnQgdGhyZWFkaW5nCiAgICAgICAgIGltcG9ydCBz
eXMKIAorICAgICAgICBwcmludGluZyA9IHRocmVhZGluZy5FdmVudCgpCisKICAgICAgICAgZGVm
IHNwYW0oKToKICAgICAgICAgICAgIGYgPSBzeXMuc3RkZXJyCisgICAgICAgICAgICBwcmludCgn
U1BBTUJFRk9SRScsIGVuZD0nJywgZmlsZT1mKQorICAgICAgICAgICAgcHJpbnRpbmcuc2V0KCkK
KwogICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICBwcmludCgnLicsIGVu
ZD0nJywgZmlsZT1mKQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAg
Zi5mbHVzaCgpCisgICAgICAgICAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBWYWx1ZUVycm9yKToK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWsKIAotICAgICAgICBkZWYgdGVzdF9zaWxseSgpOgor
ICAgICAgICBkZWYgdGVzdF9zcGFtX2luX3RocmVhZCgpOgogICAgICAgICAgICAgdCA9IHRocmVh
ZGluZy5UaHJlYWQodGFyZ2V0PXNwYW0pCiAgICAgICAgICAgICB0LmRhZW1vbiA9IFRydWUKICAg
ICAgICAgICAgIHQuc3RhcnQoKQotICAgICAgICAgICAgdGltZS5zbGVlcCgwLjUpCiAKKyAgICAg
ICAgICAgIHByaW50aW5nLndhaXQoKQogICAgICIiIgogICAgICkKLSAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dF9zdWJwcm9jZXNzKHN0cihwKSkKICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgYXNz
ZXJ0IHJlc3VsdC5zdGRlcnIuc3RyKCkgPT0gIiIKICAgICBhc3NlcnQgIklPRXJyb3IiIG5vdCBp
biByZXN1bHQuc3Rkb3V0LnN0cigpCiAKIApAQCAtMTM5MiwzICsxNDYyLDExOCBAQCBkZWYgdGVz
dF9waWNrbGluZ19hbmRfdW5waWNrbGluZ19lbmNvZGVkX2ZpbGUoKToKICAgICBlZiA9IGNhcHR1
cmUuRW5jb2RlZEZpbGUoTm9uZSwgTm9uZSkKICAgICBlZl9hc19zdHIgPSBwaWNrbGUuZHVtcHMo
ZWYpCiAgICAgcGlja2xlLmxvYWRzKGVmX2FzX3N0cikKKworCitkZWYgdGVzdF9nbG9iYWxfY2Fw
dHVyZV93aXRoX2xpdmVfbG9nZ2luZyh0ZXN0ZGlyKToKKyAgICAjIElzc3VlIDM4MTkKKyAgICAj
IGNhcHR1cmUgc2hvdWxkIHdvcmsgd2l0aCBsaXZlIGNsaSBsb2dnaW5nCisKKyAgICAjIFRlYXJk
b3duIHJlcG9ydCBzZWVtcyB0byBoYXZlIHRoZSBjYXB0dXJlIGZvciB0aGUgd2hvbGUgcHJvY2Vz
cyAoc2V0dXAsIGNhcHR1cmUsIHRlYXJkb3duKQorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAor
ICAgICAgICAiIiIKKyAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChyZXBvcnQp
OgorICAgICAgICAgICAgaWYgInRlc3RfZ2xvYmFsIiBpbiByZXBvcnQubm9kZWlkOgorICAgICAg
ICAgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJ0ZWFyZG93biI6CisgICAgICAgICAgICAgICAg
ICAgIHdpdGggb3BlbigiY2FwbG9nIiwgInciKSBhcyBmOgorICAgICAgICAgICAgICAgICAgICAg
ICAgZi53cml0ZShyZXBvcnQuY2FwbG9nKQorICAgICAgICAgICAgICAgICAgICB3aXRoIG9wZW4o
ImNhcHN0ZG91dCIsICJ3IikgYXMgZjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGYud3JpdGUo
cmVwb3J0LmNhcHN0ZG91dCkKKyAgICAgICAgIiIiCisgICAgKQorCisgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgaW1w
b3J0IHN5cworICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgbG9nZ2VyID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoX19uYW1lX18pCisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAg
IGRlZiBmaXgxKCk6CisgICAgICAgICAgICBwcmludCgiZml4IHNldHVwIikKKyAgICAgICAgICAg
IGxvZ2dpbmcuaW5mbygiZml4IHNldHVwIikKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAg
ICBsb2dnaW5nLmluZm8oImZpeCB0ZWFyZG93biIpCisgICAgICAgICAgICBwcmludCgiZml4IHRl
YXJkb3duIikKKworICAgICAgICBkZWYgdGVzdF9nbG9iYWwoZml4MSk6CisgICAgICAgICAgICBw
cmludCgiYmVnaW4gdGVzdCIpCisgICAgICAgICAgICBsb2dnaW5nLmluZm8oInNvbWV0aGluZyBp
biB0ZXN0IikKKyAgICAgICAgICAgIHByaW50KCJlbmQgdGVzdCIpCisgICAgICAgICIiIgorICAg
ICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCItLWxvZy1jbGkt
bGV2ZWw9SU5GTyIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgd2l0aCBvcGVu
KCJjYXBsb2ciLCAiciIpIGFzIGY6CisgICAgICAgIGNhcGxvZyA9IGYucmVhZCgpCisKKyAgICBh
c3NlcnQgImZpeCBzZXR1cCIgaW4gY2FwbG9nCisgICAgYXNzZXJ0ICJzb21ldGhpbmcgaW4gdGVz
dCIgaW4gY2FwbG9nCisgICAgYXNzZXJ0ICJmaXggdGVhcmRvd24iIGluIGNhcGxvZworCisgICAg
d2l0aCBvcGVuKCJjYXBzdGRvdXQiLCAiciIpIGFzIGY6CisgICAgICAgIGNhcHN0ZG91dCA9IGYu
cmVhZCgpCisKKyAgICBhc3NlcnQgImZpeCBzZXR1cCIgaW4gY2Fwc3Rkb3V0CisgICAgYXNzZXJ0
ICJiZWdpbiB0ZXN0IiBpbiBjYXBzdGRvdXQKKyAgICBhc3NlcnQgImVuZCB0ZXN0IiBpbiBjYXBz
dGRvdXQKKyAgICBhc3NlcnQgImZpeCB0ZWFyZG93biIgaW4gY2Fwc3Rkb3V0CisKKworQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJjYXB0dXJlX2ZpeHR1cmUiLCBbImNhcHN5cyIsICJjYXBmZCJd
KQorZGVmIHRlc3RfY2FwdHVyZV93aXRoX2xpdmVfbG9nZ2luZyh0ZXN0ZGlyLCBjYXB0dXJlX2Zp
eHR1cmUpOgorICAgICMgSXNzdWUgMzgxOQorICAgICMgY2FwdHVyZSBzaG91bGQgd29yayB3aXRo
IGxpdmUgY2xpIGxvZ2dpbmcKKworICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIi
CisgICAgICAgIGltcG9ydCBsb2dnaW5nCisgICAgICAgIGltcG9ydCBzeXMKKworICAgICAgICBs
b2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworICAgICAgICBkZWYgdGVzdF9j
YXB0dXJlKHswfSk6CisgICAgICAgICAgICBwcmludCgiaGVsbG8iKQorICAgICAgICAgICAgc3lz
LnN0ZGVyci53cml0ZSgid29ybGRcXG4iKQorICAgICAgICAgICAgY2FwdHVyZWQgPSB7MH0ucmVh
ZG91dGVycigpCisgICAgICAgICAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICJoZWxsb1xcbiIK
KyAgICAgICAgICAgIGFzc2VydCBjYXB0dXJlZC5lcnIgPT0gIndvcmxkXFxuIgorCisgICAgICAg
ICAgICBsb2dnaW5nLmluZm8oInNvbWV0aGluZyIpCisgICAgICAgICAgICBwcmludCgibmV4dCIp
CisgICAgICAgICAgICBsb2dnaW5nLmluZm8oInNvbWV0aGluZyIpCisKKyAgICAgICAgICAgIGNh
cHR1cmVkID0gezB9LnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgYXNzZXJ0IGNhcHR1cmVkLm91
dCA9PSAibmV4dFxcbiIKKyAgICAgICAgIiIiLmZvcm1hdCgKKyAgICAgICAgICAgIGNhcHR1cmVf
Zml4dHVyZQorICAgICAgICApCisgICAgKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3Rfc3VicHJvY2VzcygiLS1sb2ctY2xpLWxldmVsPUlORk8iKQorICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IDAKKworCitkZWYgdGVzdF90eXBlZXJyb3JfZW5jb2RlZGZpbGVfd3JpdGUodGVzdGRp
cik6CisgICAgIiIiSXQgc2hvdWxkIGJlaGF2ZSB0aGUgc2FtZSB3aXRoIGFuZCB3aXRob3V0IG91
dHB1dCBjYXB0dXJpbmcgKCM0ODYxKS4iIiIKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAor
ICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRlc3RfZmFpbHMoKToKKyAgICAgICAgICAgIGltcG9y
dCBzeXMKKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoYiJmb28iKQorICAgICIiIgorICAg
ICkKKyAgICByZXN1bHRfd2l0aG91dF9jYXB0dXJlID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIiwg
c3RyKHApKQorCisgICAgcmVzdWx0X3dpdGhfY2FwdHVyZSA9IHRlc3RkaXIucnVucHl0ZXN0KHN0
cihwKSkKKworICAgIGFzc2VydCByZXN1bHRfd2l0aF9jYXB0dXJlLnJldCA9PSByZXN1bHRfd2l0
aG91dF9jYXB0dXJlLnJldAorCisgICAgaWYgX1BZMzoKKyAgICAgICAgcmVzdWx0X3dpdGhfY2Fw
dHVyZS5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsiRSAgICAgICAgICAgVHlw
ZUVycm9yOiB3cml0ZSgpIGFyZ3VtZW50IG11c3QgYmUgc3RyLCBub3QgYnl0ZXMiXQorICAgICAg
ICApCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IHJlc3VsdF93aXRoX2NhcHR1cmUucmV0ID09
IDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb2xsZWN0aW9uLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbGxlY3Rpb24ucHkKaW5kZXggNjU3ZDY0Yzc0ZTI0
YWFlYjExYTg2ZGZmZTVhYjI3YTQ3ZDk2YWRmOS4uMGZiYmJlYzU0ZGZjZjk4YzkwYjU0M2IxMzU1
MDQ5NzQzNDNkYjE3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbGxl
Y3Rpb24ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbGxlY3Rpb24ucHkKQEAg
LTEsMzQgKzEsMjkgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBk
aXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQg
b3MKIGltcG9ydCBwcHJpbnQKIGltcG9ydCBzeXMKLWltcG9ydCBweXRlc3QKK2ltcG9ydCB0ZXh0
d3JhcAogCi1pbXBvcnQgX3B5dGVzdC5fY29kZQotZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IFNl
c3Npb24sIEVYSVRfTk9URVNUU0NPTExFQ1RFRCwgX2luX3ZlbnYKK2ltcG9ydCBweQogCitpbXBv
cnQgcHl0ZXN0Citmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgX2luX3ZlbnYKK2Zyb20gX3B5dGVz
dC5tYWluIGltcG9ydCBFWElUX0lOVEVSUlVQVEVECitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQg
RVhJVF9OT1RFU1RTQ09MTEVDVEVECitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgU2Vzc2lvbgog
Ci1jbGFzcyBUZXN0Q29sbGVjdG9yKG9iamVjdCk6CiAKK2NsYXNzIFRlc3RDb2xsZWN0b3Iob2Jq
ZWN0KToKICAgICBkZWYgdGVzdF9jb2xsZWN0X3ZlcnN1c19pdGVtKHNlbGYpOgogICAgICAgICBm
cm9tIHB5dGVzdCBpbXBvcnQgQ29sbGVjdG9yLCBJdGVtCiAKICAgICAgICAgYXNzZXJ0IG5vdCBp
c3N1YmNsYXNzKENvbGxlY3RvciwgSXRlbSkKICAgICAgICAgYXNzZXJ0IG5vdCBpc3N1YmNsYXNz
KEl0ZW0sIENvbGxlY3RvcikKIAotICAgIGRlZiB0ZXN0X2NvbXBhdF9hdHRyaWJ1dGVzKHNlbGYs
IHRlc3RkaXIsIHJlY3dhcm4pOgotICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNv
bCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOiBwYXNzCi0g
ICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6IGFzc2VydCAwCi0gICAgICAgICIiIgotICAgICAg
ICApCi0gICAgICAgIHJlY3dhcm4uY2xlYXIoKQotICAgICAgICBhc3NlcnQgbW9kY29sLk1vZHVs
ZSA9PSBweXRlc3QuTW9kdWxlCi0gICAgICAgIGFzc2VydCBtb2Rjb2wuQ2xhc3MgPT0gcHl0ZXN0
LkNsYXNzCi0gICAgICAgIGFzc2VydCBtb2Rjb2wuSXRlbSA9PSBweXRlc3QuSXRlbQotICAgICAg
ICBhc3NlcnQgbW9kY29sLkZpbGUgPT0gcHl0ZXN0LkZpbGUKLSAgICAgICAgYXNzZXJ0IG1vZGNv
bC5GdW5jdGlvbiA9PSBweXRlc3QuRnVuY3Rpb24KLQogICAgIGRlZiB0ZXN0X2NoZWNrX2VxdWFs
aXR5KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNv
bCgKICAgICAgICAgICAgICIiIgpAQCAtMTE1LDcgKzExMCw2IEBAIGNsYXNzIFRlc3RDb2xsZWN0
b3Iob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0Q29sbGVjdEZTKG9iamVjdCk6Ci0KICAgICBkZWYg
dGVzdF9pZ25vcmVkX2NlcnRhaW5fZGlyZWN0b3JpZXMoc2VsZiwgdGVzdGRpcik6CiAgICAgICAg
IHRtcGRpciA9IHRlc3RkaXIudG1wZGlyCiAgICAgICAgIHRtcGRpci5lbnN1cmUoImJ1aWxkIiwg
InRlc3Rfbm90Zm91bmQucHkiKQpAQCAtMjUzLDEyICsyNDcsMTAgQEAgY2xhc3MgVGVzdENvbGxl
Y3RGUyhvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RDb2xsZWN0UGx1Z2luSG9va1JlbGF5KG9iamVj
dCk6Ci0KICAgICBkZWYgdGVzdF9weXRlc3RfY29sbGVjdF9maWxlKHNlbGYsIHRlc3RkaXIpOgog
ICAgICAgICB3YXNjYWxsZWQgPSBbXQogCiAgICAgICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgot
CiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShzZWxmLCBwYXRoLCBwYXJlbnQp
OgogICAgICAgICAgICAgICAgIGlmIG5vdCBwYXRoLmJhc2VuYW1lLnN0YXJ0c3dpdGgoIi4iKToK
ICAgICAgICAgICAgICAgICAgICAgIyBJZ25vcmUgaGlkZGVuIGZpbGVzLCBlLmcuIC50ZXN0bW9u
ZGF0YS4KQEAgLTI3Myw3ICsyNjUsNiBAQCBjbGFzcyBUZXN0Q29sbGVjdFBsdWdpbkhvb2tSZWxh
eShvYmplY3QpOgogICAgICAgICB3YXNjYWxsZWQgPSBbXQogCiAgICAgICAgIGNsYXNzIFBsdWdp
bihvYmplY3QpOgotCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHNl
bGYsIHBhdGgsIHBhcmVudCk6CiAgICAgICAgICAgICAgICAgd2FzY2FsbGVkLmFwcGVuZChwYXRo
LmJhc2VuYW1lKQogCkBAIC0yODUsNyArMjc2LDYgQEAgY2xhc3MgVGVzdENvbGxlY3RQbHVnaW5I
b29rUmVsYXkob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0UHJ1bmV0cmFjZWJhY2sob2JqZWN0KToK
LQogICAgIGRlZiB0ZXN0X2N1c3RvbV9yZXByX2ZhaWx1cmUoc2VsZiwgdGVzdGRpcik6CiAgICAg
ICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTMzNSw3ICsz
MjUsNiBAQCBjbGFzcyBUZXN0UHJ1bmV0cmFjZWJhY2sob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0
Q3VzdG9tQ29uZnRlc3RzKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9pZ25vcmVfY29sbGVjdF9w
YXRoKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAg
ICAgICAgICIiIgpAQCAtMzYzLDEwICszNTIsMTAgQEAgY2xhc3MgVGVzdEN1c3RvbUNvbmZ0ZXN0
cyhvYmplY3QpOgogICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9oZWxs
bygpOiBwYXNzIikKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKICAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoIioxIHBhc3NlZCoiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyIqMSBwYXNzZWQqIl0pCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAg
ICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECi0gICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKmNvbGxlY3RlZCAwIGl0ZW1zKiIpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipjb2xsZWN0ZWQgMCBpdGVtcyoiXSkK
IAogICAgIGRlZiB0ZXN0X2NvbGxlY3RpZ25vcmVfZXhjbHVkZV9vbl9vcHRpb24oc2VsZiwgdGVz
dGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KApAQCAtMzg4LDYgKzM3NywyNiBA
QCBjbGFzcyBUZXN0Q3VzdG9tQ29uZnRlc3RzKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCByZXN1
bHQucmV0ID09IDAKICAgICAgICAgYXNzZXJ0ICJwYXNzZWQiIGluIHJlc3VsdC5zdGRvdXQuc3Ry
KCkKIAorICAgIGRlZiB0ZXN0X2NvbGxlY3RpZ25vcmVnbG9iX2V4Y2x1ZGVfb25fb3B0aW9uKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgY29sbGVjdF9pZ25vcmVfZ2xvYiA9IFsnKncqbFtkdF0qJ10KKyAg
ICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICAgICAg
cGFyc2VyLmFkZG9wdGlvbigiLS1YWCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFs
c2UpCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgICAgICAg
ICAgICAgIGlmIGNvbmZpZy5nZXR2YWx1ZSgiWFgiKToKKyAgICAgICAgICAgICAgICAgICAgY29s
bGVjdF9pZ25vcmVfZ2xvYls6XSA9IFtdCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X3dvcmxkPSJkZWYgdGVzdF9oZWxsbygpOiBwYXNzIikK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3Rfd2VsdD0iZGVmIHRlc3RfaGFsbG8oKTog
cGFzcyIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIipjb2xsZWN0ZWQgMCBpdGVtcyoiXSkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tWFgiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioyIHBhc3NlZCoi
XSkKKwogICAgIGRlZiB0ZXN0X3B5dGVzdF9mc19jb2xsZWN0X2hvb2tzX2FyZV9zZWVuKHNlbGYs
IHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgICAgICIi
IgpAQCAtNDM3LDcgKzQ0Niw2IEBAIGNsYXNzIFRlc3RDdXN0b21Db25mdGVzdHMob2JqZWN0KToK
IAogCiBjbGFzcyBUZXN0U2Vzc2lvbihvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfcGFyc2Vhcmco
c2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0
X2Z1bmMoKTogcGFzcyIpCiAgICAgICAgIHN1YmRpciA9IHRlc3RkaXIubWtkaXIoInN1YiIpCkBA
IC00ODYsNyArNDk0LDcgQEAgY2xhc3MgVGVzdFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgcCA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKICAgICAgICAgaWQg
PSAiOjoiLmpvaW4oW3AuYmFzZW5hbWUsICJ0ZXN0X2Z1bmMiXSkKICAgICAgICAgaXRlbXMsIGhv
b2tyZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhpZCkKLSAgICAgICAgaXRlbSwgPSBpdGVt
cworICAgICAgICAoaXRlbSwpID0gaXRlbXMKICAgICAgICAgYXNzZXJ0IGl0ZW0ubmFtZSA9PSAi
dGVzdF9mdW5jIgogICAgICAgICBuZXdpZCA9IGl0ZW0ubm9kZWlkCiAgICAgICAgIGFzc2VydCBu
ZXdpZCA9PSBpZApAQCAtNTEzLDEzICs1MjEsOCBAQCBjbGFzcyBUZXN0U2Vzc2lvbihvYmplY3Qp
OgogICAgICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICIiIgogICAgICAgICApCi0gICAg
ICAgIG5vcm1pZCA9IHAuYmFzZW5hbWUgKyAiOjpUZXN0Q2xhc3M6OigpOjp0ZXN0X21ldGhvZCIK
LSAgICAgICAgZm9yIGlkIGluIFsKLSAgICAgICAgICAgIHAuYmFzZW5hbWUsCi0gICAgICAgICAg
ICBwLmJhc2VuYW1lICsgIjo6VGVzdENsYXNzIiwKLSAgICAgICAgICAgIHAuYmFzZW5hbWUgKyAi
OjpUZXN0Q2xhc3M6OigpIiwKLSAgICAgICAgICAgIG5vcm1pZCwKLSAgICAgICAgXToKKyAgICAg
ICAgbm9ybWlkID0gcC5iYXNlbmFtZSArICI6OlRlc3RDbGFzczo6dGVzdF9tZXRob2QiCisgICAg
ICAgIGZvciBpZCBpbiBbcC5iYXNlbmFtZSwgcC5iYXNlbmFtZSArICI6OlRlc3RDbGFzcyIsIG5v
cm1pZF06CiAgICAgICAgICAgICBpdGVtcywgaG9va3JlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0
ZW1zKGlkKQogICAgICAgICAgICAgYXNzZXJ0IGxlbihpdGVtcykgPT0gMQogICAgICAgICAgICAg
YXNzZXJ0IGl0ZW1zWzBdLm5hbWUgPT0gInRlc3RfbWV0aG9kIgpAQCAtNjEwLDkgKzYxMyw5IEBA
IGNsYXNzIFRlc3RTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
ZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKICAgICAgICAgaXRlbXMsIGhvb2tyZWMgPSB0ZXN0ZGly
LmlubGluZV9nZW5pdGVtcygpCiAgICAgICAgIGFzc2VydCBsZW4oaXRlbXMpID09IDEKLSAgICAg
ICAgaXRlbSwgPSBpdGVtcworICAgICAgICAoaXRlbSwpID0gaXRlbXMKICAgICAgICAgaXRlbXMy
LCBob29rcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoaXRlbS5ub2RlaWQpCi0gICAgICAg
IGl0ZW0yLCA9IGl0ZW1zMgorICAgICAgICAoaXRlbTIsKSA9IGl0ZW1zMgogICAgICAgICBhc3Nl
cnQgaXRlbTIubmFtZSA9PSBpdGVtLm5hbWUKICAgICAgICAgYXNzZXJ0IGl0ZW0yLmZzcGF0aCA9
PSBpdGVtLmZzcGF0aAogCkBAIC02MjcsMTQgKzYzMCwxMyBAQCBjbGFzcyBUZXN0U2Vzc2lvbihv
YmplY3QpOgogICAgICAgICBhcmcgPSBwLmJhc2VuYW1lICsgIjo6VGVzdENsYXNzOjp0ZXN0X21l
dGhvZCIKICAgICAgICAgaXRlbXMsIGhvb2tyZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhh
cmcpCiAgICAgICAgIGFzc2VydCBsZW4oaXRlbXMpID09IDEKLSAgICAgICAgaXRlbSwgPSBpdGVt
cwotICAgICAgICBhc3NlcnQgaXRlbS5ub2RlaWQuZW5kc3dpdGgoIlRlc3RDbGFzczo6KCk6OnRl
c3RfbWV0aG9kIikKKyAgICAgICAgKGl0ZW0sKSA9IGl0ZW1zCisgICAgICAgIGFzc2VydCBpdGVt
Lm5vZGVpZC5lbmRzd2l0aCgiVGVzdENsYXNzOjp0ZXN0X21ldGhvZCIpCiAgICAgICAgICMgZW5z
dXJlIHdlIGFyZSByZXBvcnRpbmcgdGhlIGNvbGxlY3Rpb24gb2YgdGhlIHNpbmdsZSB0ZXN0IGl0
ZW0gKCMyNDY0KQogICAgICAgICBhc3NlcnQgW3gubmFtZSBmb3IgeCBpbiBzZWxmLmdldF9yZXBv
cnRlZF9pdGVtcyhob29rcmVjKV0gPT0gWyJ0ZXN0X21ldGhvZCJdCiAKIAogY2xhc3MgVGVzdF9n
ZXRpbml0aWFsbm9kZXMob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2dsb2JhbF9maWxlKHNlbGYs
IHRlc3RkaXIsIHRtcGRpcik6CiAgICAgICAgIHggPSB0bXBkaXIuZW5zdXJlKCJ4LnB5IikKICAg
ICAgICAgd2l0aCB0bXBkaXIuYXNfY3dkKCk6CkBAIC02NDcsNiArNjQ5LDEwIEBAIGNsYXNzIFRl
c3RfZ2V0aW5pdGlhbG5vZGVzKG9iamVjdCk6CiAgICAgICAgICAgICBhc3NlcnQgY29sLmNvbmZp
ZyBpcyBjb25maWcKIAogICAgIGRlZiB0ZXN0X3BrZ2ZpbGUoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgICIiIlZlcmlmeSBuZXN0aW5nIHdoZW4gYSBtb2R1bGUgaXMgd2l0aGluIGEgcGFja2FnZS4K
KyAgICAgICAgVGhlIHBhcmVudCBjaGFpbiBzaG91bGQgbWF0Y2g6IE1vZHVsZTx4LnB5PiAtPiBQ
YWNrYWdlPHN1YmRpcj4gLT4gU2Vzc2lvbi4KKyAgICAgICAgICAgIFNlc3Npb24ncyBwYXJlbnQg
c2hvdWxkIGFsd2F5cyBiZSBOb25lLgorICAgICAgICAiIiIKICAgICAgICAgdG1wZGlyID0gdGVz
dGRpci50bXBkaXIKICAgICAgICAgc3ViZGlyID0gdG1wZGlyLmpvaW4oInN1YmRpciIpCiAgICAg
ICAgIHggPSBzdWJkaXIuZW5zdXJlKCJ4LnB5IikKQEAgLTY1NCwxNSArNjYwLDE3IEBAIGNsYXNz
IFRlc3RfZ2V0aW5pdGlhbG5vZGVzKG9iamVjdCk6CiAgICAgICAgIHdpdGggc3ViZGlyLmFzX2N3
ZCgpOgogICAgICAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3VyZSh4KQogICAg
ICAgICBjb2wgPSB0ZXN0ZGlyLmdldG5vZGUoY29uZmlnLCB4KQotICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShjb2wsIHB5dGVzdC5Nb2R1bGUpCiAgICAgICAgIGFzc2VydCBjb2wubmFtZSA9PSAi
eC5weSIKLSAgICAgICAgYXNzZXJ0IGNvbC5wYXJlbnQucGFyZW50IGlzIE5vbmUKKyAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UoY29sLCBweXRlc3QuTW9kdWxlKQorICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShjb2wucGFyZW50LCBweXRlc3QuUGFja2FnZSkKKyAgICAgICAgYXNzZXJ0IGlzaW5z
dGFuY2UoY29sLnBhcmVudC5wYXJlbnQsIHB5dGVzdC5TZXNzaW9uKQorICAgICAgICAjIHNlc3Np
b24gaXMgYmF0bWFuIChoYXMgbm8gcGFyZW50cykKKyAgICAgICAgYXNzZXJ0IGNvbC5wYXJlbnQu
cGFyZW50LnBhcmVudCBpcyBOb25lCiAgICAgICAgIGZvciBjb2wgaW4gY29sLmxpc3RjaGFpbigp
OgogICAgICAgICAgICAgYXNzZXJ0IGNvbC5jb25maWcgaXMgY29uZmlnCiAKIAogY2xhc3MgVGVz
dF9nZW5pdGVtcyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfY2hlY2tfY29sbGVjdF9oYXNoZXMo
c2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAg
ICAgICAiIiIKQEAgLTc3Niw3ICs3ODQsNiBAQCBkZWYgdGVzdF9tYXRjaG5vZGVzX3R3b19jb2xs
ZWN0aW9uc19zYW1lX2ZpbGUodGVzdGRpcik6CiAKIAogY2xhc3MgVGVzdE5vZGVrZXl3b3Jkcyhv
YmplY3QpOgotCiAgICAgZGVmIHRlc3Rfbm9fdW5kZXIoc2VsZiwgdGVzdGRpcik6CiAgICAgICAg
IG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKAogICAgICAgICAgICAgIiIiCkBAIC05MTUs
MTUgKzkyMiwxNSBAQCBkZWYgdGVzdF9jb250aW51ZV9vbl9jb2xsZWN0aW9uX2Vycm9yc19tYXhm
YWlsKHRlc3RkaXIpOgogCiBkZWYgdGVzdF9maXh0dXJlX3Njb3BlX3NpYmxpbmdfY29uZnRlc3Rz
KHRlc3RkaXIpOgogICAgICIiIlJlZ3Jlc3Npb24gdGVzdCBjYXNlIGZvciBodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI4MzYiIiIKLSAgICBmb29fcGF0aCA9IHRl
c3RkaXIubWtweWRpcigiZm9vIikKKyAgICBmb29fcGF0aCA9IHRlc3RkaXIubWtkaXIoImZvbyIp
CiAgICAgZm9vX3BhdGguam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgX3B5dGVz
dC5fY29kZS5Tb3VyY2UoCisgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICIi
IlwKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICAgICAgZGVmIGZpeCgpOgorICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAg
ICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKLSAgICAgICAgZGVmIGZpeCgpOgotICAgICAgICAgICAgcmV0dXJuIDEKLSAgICAiIiIKICAg
ICAgICAgKQogICAgICkKICAgICBmb29fcGF0aC5qb2luKCJ0ZXN0X2Zvby5weSIpLndyaXRlKCJk
ZWYgdGVzdF9mb28oZml4KTogYXNzZXJ0IGZpeCA9PSAxIikKQEAgLTk0MiwzICs5NDksMzE5IEBA
IGRlZiB0ZXN0X2ZpeHR1cmVfc2NvcGVfc2libGluZ19jb25mdGVzdHModGVzdGRpcik6CiAgICAg
ICAgICAgICAiKjEgcGFzc2VkLCAxIGVycm9yKiIsCiAgICAgICAgIF0KICAgICApCisKKworZGVm
IHRlc3RfY29sbGVjdF9pbml0X3Rlc3RzKHRlc3RkaXIpOgorICAgICIiIkNoZWNrIHRoYXQgd2Ug
Y29sbGVjdCBmaWxlcyBmcm9tIF9faW5pdF9fLnB5IGZpbGVzIHdoZW4gdGhleSBwYXRjaCB0aGUg
J3B5dGhvbl9maWxlcycgKCMzNzczKSIiIgorICAgIHAgPSB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgi
Y29sbGVjdC9jb2xsZWN0X2luaXRfdGVzdHMiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KHAsICItLWNvbGxlY3Qtb25seSIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAorICAgICAgICBbCisgICAgICAgICAgICAiY29sbGVjdGVkIDIgaXRlbXMiLAorICAgICAgICAg
ICAgIjxQYWNrYWdlICoiLAorICAgICAgICAgICAgIiAgPE1vZHVsZSBfX2luaXRfXy5weT4iLAor
ICAgICAgICAgICAgIiAgICA8RnVuY3Rpb24gdGVzdF9pbml0PiIsCisgICAgICAgICAgICAiICA8
TW9kdWxlIHRlc3RfZm9vLnB5PiIsCisgICAgICAgICAgICAiICAgIDxGdW5jdGlvbiB0ZXN0X2Zv
bz4iLAorICAgICAgICBdCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIu
L3Rlc3RzIiwgIi0tY29sbGVjdC1vbmx5IikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoCisgICAgICAgIFsKKyAgICAgICAgICAgICJjb2xsZWN0ZWQgMiBpdGVtcyIsCisgICAgICAg
ICAgICAiPFBhY2thZ2UgKiIsCisgICAgICAgICAgICAiICA8TW9kdWxlIF9faW5pdF9fLnB5PiIs
CisgICAgICAgICAgICAiICAgIDxGdW5jdGlvbiB0ZXN0X2luaXQ+IiwKKyAgICAgICAgICAgICIg
IDxNb2R1bGUgdGVzdF9mb28ucHk+IiwKKyAgICAgICAgICAgICIgICAgPEZ1bmN0aW9uIHRlc3Rf
Zm9vPiIsCisgICAgICAgIF0KKyAgICApCisgICAgIyBJZ25vcmVzIGR1cGxpY2F0ZXMgd2l0aCAi
LiIgYW5kIHBrZ2luaXQgKCM0MzEwKS4KKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
Li90ZXN0cyIsICIuIiwgIi0tY29sbGVjdC1vbmx5IikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAgICAgICAgICJjb2xsZWN0ZWQgMiBpdGVtcyIsCisg
ICAgICAgICAgICAiPFBhY2thZ2UgKi90ZXN0cz4iLAorICAgICAgICAgICAgIiAgPE1vZHVsZSBf
X2luaXRfXy5weT4iLAorICAgICAgICAgICAgIiAgICA8RnVuY3Rpb24gdGVzdF9pbml0PiIsCisg
ICAgICAgICAgICAiICA8TW9kdWxlIHRlc3RfZm9vLnB5PiIsCisgICAgICAgICAgICAiICAgIDxG
dW5jdGlvbiB0ZXN0X2Zvbz4iLAorICAgICAgICBdCisgICAgKQorICAgICMgU2FtZSBhcyBiZWZv
cmUsIGJ1dCBkaWZmZXJlbnQgb3JkZXIuCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii4iLCAidGVzdHMiLCAiLS1jb2xsZWN0LW9ubHkiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcygKKyAgICAgICAgWworICAgICAgICAgICAgImNvbGxlY3RlZCAyIGl0ZW1zIiwKKyAg
ICAgICAgICAgICI8UGFja2FnZSAqL3Rlc3RzPiIsCisgICAgICAgICAgICAiICA8TW9kdWxlIF9f
aW5pdF9fLnB5PiIsCisgICAgICAgICAgICAiICAgIDxGdW5jdGlvbiB0ZXN0X2luaXQ+IiwKKyAg
ICAgICAgICAgICIgIDxNb2R1bGUgdGVzdF9mb28ucHk+IiwKKyAgICAgICAgICAgICIgICAgPEZ1
bmN0aW9uIHRlc3RfZm9vPiIsCisgICAgICAgIF0KKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi4vdGVzdHMvdGVzdF9mb28ucHkiLCAiLS1jb2xsZWN0LW9ubHkiKQorICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWyI8UGFja2FnZSAqL3Rlc3Rz
PiIsICIgIDxNb2R1bGUgdGVzdF9mb28ucHk+IiwgIiAgICA8RnVuY3Rpb24gdGVzdF9mb28+Il0K
KyAgICApCisgICAgYXNzZXJ0ICJ0ZXN0X2luaXQiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigp
CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi4vdGVzdHMvX19pbml0X18ucHkiLCAi
LS1jb2xsZWN0LW9ubHkiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAg
ICAgWyI8UGFja2FnZSAqL3Rlc3RzPiIsICIgIDxNb2R1bGUgX19pbml0X18ucHk+IiwgIiAgICA8
RnVuY3Rpb24gdGVzdF9pbml0PiJdCisgICAgKQorICAgIGFzc2VydCAidGVzdF9mb28iIG5vdCBp
biByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3RfY29sbGVjdF9pbnZhbGlkX3NpZ25h
dHVyZV9tZXNzYWdlKHRlc3RkaXIpOgorICAgICIiIkNoZWNrIHRoYXQgd2UgaXNzdWUgYSBwcm9w
ZXIgbWVzc2FnZSB3aGVuIHdlIGNhbid0IGRldGVybWluZSB0aGUgc2lnbmF0dXJlIG9mIGEgdGVz
dAorICAgIGZ1bmN0aW9uICgjNDAyNikuCisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxl
KAorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIGNsYXNzIFRl
c3RDYXNlOgorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZml4
KCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAg
ICAgICBbIkNvdWxkIG5vdCBkZXRlcm1pbmUgYXJndW1lbnRzIG9mICouZml4ICo6IGludmFsaWQg
bWV0aG9kIHNpZ25hdHVyZSJdCisgICAgKQorCisKK2RlZiB0ZXN0X2NvbGxlY3RfaGFuZGxlc19y
YWlzaW5nX29uX2R1bmRlcl9jbGFzcyh0ZXN0ZGlyKToKKyAgICAiIiJIYW5kbGUgcHJveHkgY2xh
c3NlcyBsaWtlIERqYW5nbydzIExhenlTZXR0aW5ncyB0aGF0IG1pZ2h0IHJhaXNlIG9uCisgICAg
YGBpc2luc3RhbmNlYGAgKCM0MjY2KS4KKyAgICAiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
CisgICAgICAgICIiIgorICAgICAgICBjbGFzcyBJbXByb3Blcmx5Q29uZmlndXJlZChFeGNlcHRp
b24pOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGNsYXNzIFJhaXNlc09uR2V0QXR0cihv
YmplY3QpOgorICAgICAgICAgICAgZGVmIHJhaXNlcyhzZWxmKToKKyAgICAgICAgICAgICAgICBy
YWlzZSBJbXByb3Blcmx5Q29uZmlndXJlZAorCisgICAgICAgICAgICBfX2NsYXNzX18gPSBwcm9w
ZXJ0eShyYWlzZXMpCisKKyAgICAgICAgcmFpc2VzID0gUmFpc2VzT25HZXRBdHRyKCkKKworCisg
ICAgICAgIGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIKKyAgICApCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbIioxIHBhc3NlZCBpbioiXSkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisK
KworZGVmIHRlc3RfY29sbGVjdF93aXRoX2NoZGlyX2R1cmluZ19pbXBvcnQodGVzdGRpcik6Cisg
ICAgc3ViZGlyID0gdGVzdGRpci50bXBkaXIubWtkaXIoInN1YiIpCisgICAgdGVzdGRpci50bXBk
aXIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKKyAgICAgICAgdGV4dHdyYXAuZGVkZW50KAor
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgIG9zLmNo
ZGlyKCVyKQorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAlIChzdHIoc3ViZGlyKSwpCisg
ICAgICAgICkKKyAgICApCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAg
ICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgaW1wb3J0IG9zCisgICAgICAgICAgICBh
c3NlcnQgb3MuZ2V0Y3dkKCkgPT0gJXIKKyAgICAgICAgIiIiCisgICAgICAgICUgKHN0cihzdWJk
aXIpLCkKKyAgICApCisgICAgd2l0aCB0ZXN0ZGlyLnRtcGRpci5hc19jd2QoKToKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIioxIHBhc3NlZCBpbioiXSkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAg
ICAjIEhhbmRsZXMgcmVsYXRpdmUgdGVzdHBhdGhzLgorICAgIHRlc3RkaXIubWFrZWluaSgKKyAg
ICAgICAgIiIiCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIHRlc3RwYXRocyA9IC4KKyAgICAi
IiIKKyAgICApCisgICAgd2l0aCB0ZXN0ZGlyLnRtcGRpci5hc19jd2QoKToKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1vbmx5IikKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWyJjb2xsZWN0ZWQgMSBpdGVtIl0pCisKKworZGVmIHRlc3RfY29s
bGVjdF9weWFyZ3Nfd2l0aF90ZXN0cGF0aHModGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgIHRl
c3Rtb2QgPSB0ZXN0ZGlyLm1rZGlyKCJ0ZXN0bW9kIikKKyAgICAjIE5PVEU6IF9faW5pdF9fLnB5
IGlzIG5vdCBjb2xsZWN0ZWQgc2luY2UgaXQgZG9lcyBub3QgbWF0Y2ggcHl0aG9uX2ZpbGVzLgor
ICAgIHRlc3Rtb2QuZW5zdXJlKCJfX2luaXRfXy5weSIpLndyaXRlKCJkZWYgdGVzdF9mdW5jKCk6
IHBhc3MiKQorICAgIHRlc3Rtb2QuZW5zdXJlKCJ0ZXN0X2ZpbGUucHkiKS53cml0ZSgiZGVmIHRl
c3RfZnVuYygpOiBwYXNzIikKKworICAgIHJvb3QgPSB0ZXN0ZGlyLm1rZGlyKCJyb290IikKKyAg
ICByb290LmVuc3VyZSgicHl0ZXN0LmluaSIpLndyaXRlKAorICAgICAgICB0ZXh0d3JhcC5kZWRl
bnQoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgYWRkb3B0cyA9
IC0tcHlhcmdzCisgICAgICAgIHRlc3RwYXRocyA9IHRlc3Rtb2QKKyAgICAiIiIKKyAgICAgICAg
KQorICAgICkKKyAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEhPTlBBVEgiLCBzdHIodGVzdGRp
ci50bXBkaXIpLCBwcmVwZW5kPW9zLnBhdGhzZXApCisgICAgd2l0aCByb290LmFzX2N3ZCgpOgor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKKyAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQgaW4qIl0pCisKKworQHB5dGVzdC5t
YXJrLnNraXBpZigKKyAgICBub3QgaGFzYXR0cihweS5wYXRoLmxvY2FsLCAibWtzeW1saW5rdG8i
KSwKKyAgICByZWFzb249InN5bWxpbmsgbm90IGF2YWlsYWJsZSBvbiB0aGlzIHBsYXRmb3JtIiwK
KykKK2RlZiB0ZXN0X2NvbGxlY3Rfc3ltbGlua19maWxlX2FyZyh0ZXN0ZGlyKToKKyAgICAiIiJU
ZXN0IHRoYXQgY29sbGVjdGluZyBhIGRpcmVjdCBzeW1saW5rLCB3aGVyZSB0aGUgdGFyZ2V0IGRv
ZXMgbm90IG1hdGNoIHB5dGhvbl9maWxlcyB3b3JrcyAoIzQzMjUpLiIiIgorICAgIHJlYWwgPSB0
ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgIHJlYWw9IiIiCisgICAgICAgIGRlZiB0ZXN0X25v
ZGVpZChyZXF1ZXN0KToKKyAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0Lm5vZGUubm9kZWlkID09
ICJyZWFsLnB5Ojp0ZXN0X25vZGVpZCIKKyAgICAgICAgIiIiCisgICAgKQorICAgIHN5bWxpbmsg
PSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJzeW1saW5rLnB5IikKKyAgICBzeW1saW5rLm1rc3ltbGlu
a3RvKHJlYWwpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12Iiwgc3ltbGluaykK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJyZWFsLnB5Ojp0ZXN0X25vZGVpZCBQ
QVNTRUQqIiwgIioxIHBhc3NlZCBpbioiXSkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisK
KworQHB5dGVzdC5tYXJrLnNraXBpZigKKyAgICBub3QgaGFzYXR0cihweS5wYXRoLmxvY2FsLCAi
bWtzeW1saW5rdG8iKSwKKyAgICByZWFzb249InN5bWxpbmsgbm90IGF2YWlsYWJsZSBvbiB0aGlz
IHBsYXRmb3JtIiwKKykKK2RlZiB0ZXN0X2NvbGxlY3Rfc3ltbGlua19vdXRfb2ZfdHJlZSh0ZXN0
ZGlyKToKKyAgICAiIiJUZXN0IGNvbGxlY3Rpb24gb2Ygc3ltbGluayB2aWEgb3V0LW9mLXRyZWUg
cm9vdGRpci4iIiIKKyAgICBzdWIgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJzdWIiKQorICAgIHJl
YWwgPSBzdWIuam9pbigidGVzdF9yZWFsLnB5IikKKyAgICByZWFsLndyaXRlKAorICAgICAgICB0
ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRlc3Rfbm9kZWlk
KHJlcXVlc3QpOgorICAgICAgICAgICAgIyBTaG91bGQgbm90IGNvbnRhaW4gc3ViLyBwcmVmaXgu
CisgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5ub2RlLm5vZGVpZCA9PSAidGVzdF9yZWFsLnB5
Ojp0ZXN0X25vZGVpZCIKKyAgICAgICAgIiIiCisgICAgICAgICksCisgICAgICAgIGVuc3VyZT1U
cnVlLAorICAgICkKKworICAgIG91dF9vZl90cmVlID0gdGVzdGRpci50bXBkaXIuam9pbigib3V0
X29mX3RyZWUiKS5lbnN1cmUoZGlyPVRydWUpCisgICAgc3ltbGlua190b19zdWIgPSBvdXRfb2Zf
dHJlZS5qb2luKCJzeW1saW5rX3RvX3N1YiIpCisgICAgc3ltbGlua190b19zdWIubWtzeW1saW5r
dG8oc3ViKQorICAgIHN1Yi5jaGRpcigpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii12cyIsICItLXJvb3RkaXI9JXMiICUgc3ViLCBzeW1saW5rX3RvX3N1YikKKyAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAgICAgICAgICMgU2hvdWxkIG5v
dCBjb250YWluICJzdWIvIiEKKyAgICAgICAgICAgICJ0ZXN0X3JlYWwucHk6OnRlc3Rfbm9kZWlk
IFBBU1NFRCIKKyAgICAgICAgXQorICAgICkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisK
KworZGVmIHRlc3RfY29sbGVjdGlnbm9yZV92aWFfY29uZnRlc3QodGVzdGRpciwgbW9ua2V5cGF0
Y2gpOgorICAgICIiImNvbGxlY3RfaWdub3JlIGluIHBhcmVudCBjb25mdGVzdCBza2lwcyBpbXBv
cnRpbmcgY2hpbGQgKGlzc3VlICM0NTkyKS4iIiIKKyAgICB0ZXN0cyA9IHRlc3RkaXIubWtweWRp
cigidGVzdHMiKQorICAgIHRlc3RzLmVuc3VyZSgiY29uZnRlc3QucHkiKS53cml0ZSgiY29sbGVj
dF9pZ25vcmUgPSBbJ2lnbm9yZV9tZSddIikKKworICAgIGlnbm9yZV9tZSA9IHRlc3RzLm1rZGly
KCJpZ25vcmVfbWUiKQorICAgIGlnbm9yZV9tZS5lbnN1cmUoIl9faW5pdF9fLnB5IikKKyAgICBp
Z25vcmVfbWUuZW5zdXJlKCJjb25mdGVzdC5weSIpLndyaXRlKCJhc3NlcnQgMCwgJ3Nob3VsZF9u
b3RfYmVfY2FsbGVkJyIpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisKKworZGVmIHRlc3Rf
Y29sbGVjdF9wa2dfaW5pdF9hbmRfZmlsZV9pbl9hcmdzKHRlc3RkaXIpOgorICAgIHN1YmRpciA9
IHRlc3RkaXIubWtkaXIoInN1YiIpCisgICAgaW5pdCA9IHN1YmRpci5lbnN1cmUoIl9faW5pdF9f
LnB5IikKKyAgICBpbml0LndyaXRlKCJkZWYgdGVzdF9pbml0KCk6IHBhc3MiKQorICAgIHAgPSBz
dWJkaXIuZW5zdXJlKCJ0ZXN0X2ZpbGUucHkiKQorICAgIHAud3JpdGUoImRlZiB0ZXN0X2ZpbGUo
KTogcGFzcyIpCisKKyAgICAjIE5PVEU6IHdpdGhvdXQgIi1vIHB5dGhvbl9maWxlcz0qLnB5IiB0
aGlzIGNvbGxlY3RzIHRlc3RfZmlsZS5weSB0d2ljZS4KKyAgICAjIFRoaXMgY2hhbmdlZC9icm9r
ZSB3aXRoICJBZGQgcGFja2FnZSBzY29wZWQgZml4dHVyZXMgIzIyODMiICgyYjE0MTA4OTUpCisg
ICAgIyBpbml0aWFsbHkgKGNhdXNpbmcgYSBSZWN1cnNpb25FcnJvcikuCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi12Iiwgc3RyKGluaXQpLCBzdHIocCkpCisgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAic3ViL3Rlc3RfZmls
ZS5weTo6dGVzdF9maWxlIFBBU1NFRCoiLAorICAgICAgICAgICAgInN1Yi90ZXN0X2ZpbGUucHk6
OnRlc3RfZmlsZSBQQVNTRUQqIiwKKyAgICAgICAgICAgICIqMiBwYXNzZWQgaW4qIiwKKyAgICAg
ICAgXQorICAgICkKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIsICItbyIs
ICJweXRob25fZmlsZXM9Ki5weSIsIHN0cihpbml0KSwgc3RyKHApKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWworICAgICAgICAgICAgInN1Yi9fX2luaXRfXy5w
eTo6dGVzdF9pbml0IFBBU1NFRCoiLAorICAgICAgICAgICAgInN1Yi90ZXN0X2ZpbGUucHk6OnRl
c3RfZmlsZSBQQVNTRUQqIiwKKyAgICAgICAgICAgICIqMiBwYXNzZWQgaW4qIiwKKyAgICAgICAg
XQorICAgICkKKworCitkZWYgdGVzdF9jb2xsZWN0X3BrZ19pbml0X29ubHkodGVzdGRpcik6Cisg
ICAgc3ViZGlyID0gdGVzdGRpci5ta2Rpcigic3ViIikKKyAgICBpbml0ID0gc3ViZGlyLmVuc3Vy
ZSgiX19pbml0X18ucHkiKQorICAgIGluaXQud3JpdGUoImRlZiB0ZXN0X2luaXQoKTogcGFzcyIp
CisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChzdHIoaW5pdCkpCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKm5vIHRlc3RzIHJhbiBpbioiXSkKKworICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIsICItbyIsICJweXRob25fZmlsZXM9Ki5weSIsIHN0
cihpbml0KSkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJzdWIvX19pbml0X18u
cHk6OnRlc3RfaW5pdCBQQVNTRUQqIiwgIioxIHBhc3NlZCBpbioiXSkKKworCitAcHl0ZXN0Lm1h
cmsuc2tpcGlmKAorICAgIG5vdCBoYXNhdHRyKHB5LnBhdGgubG9jYWwsICJta3N5bWxpbmt0byIp
LAorICAgIHJlYXNvbj0ic3ltbGluayBub3QgYXZhaWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0iLAor
KQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ1c2VfcGtnIiwgKFRydWUsIEZhbHNlKSkKK2Rl
ZiB0ZXN0X2NvbGxlY3Rfc3ViX3dpdGhfc3ltbGlua3ModXNlX3BrZywgdGVzdGRpcik6CisgICAg
c3ViID0gdGVzdGRpci5ta2Rpcigic3ViIikKKyAgICBpZiB1c2VfcGtnOgorICAgICAgICBzdWIu
ZW5zdXJlKCJfX2luaXRfXy5weSIpCisgICAgc3ViLmVuc3VyZSgidGVzdF9maWxlLnB5Iikud3Jp
dGUoImRlZiB0ZXN0X2ZpbGUoKTogcGFzcyIpCisKKyAgICAjIENyZWF0ZSBhIGJyb2tlbiBzeW1s
aW5rLgorICAgIHN1Yi5qb2luKCJ0ZXN0X2Jyb2tlbi5weSIpLm1rc3ltbGlua3RvKCJ0ZXN0X2Rv
ZXNub3RleGlzdC5weSIpCisKKyAgICAjIFN5bWxpbmsgdGhhdCBnZXRzIGNvbGxlY3RlZC4KKyAg
ICBzdWIuam9pbigidGVzdF9zeW1saW5rLnB5IikubWtzeW1saW5rdG8oInRlc3RfZmlsZS5weSIp
CisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCBzdHIoc3ViKSkKKyAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAgICAgICAgICJzdWIv
dGVzdF9maWxlLnB5Ojp0ZXN0X2ZpbGUgUEFTU0VEKiIsCisgICAgICAgICAgICAic3ViL3Rlc3Rf
c3ltbGluay5weTo6dGVzdF9maWxlIFBBU1NFRCoiLAorICAgICAgICAgICAgIioyIHBhc3NlZCBp
bioiLAorICAgICAgICBdCisgICAgKQorCisKK2RlZiB0ZXN0X2NvbGxlY3Rvcl9yZXNwZWN0c190
YnN0eWxlKHRlc3RkaXIpOgorICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCJhc3NlcnQgMCIp
CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocDEsICItLXRiPW5hdGl2ZSIpCisgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9JTlRFUlJVUFRFRAorICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcygKKyAgICAgICAgWworICAgICAgICAgICAgIipfIEVSUk9SIGNvbGxlY3Rp
bmcgdGVzdF9jb2xsZWN0b3JfcmVzcGVjdHNfdGJzdHlsZS5weSBfKiIsCisgICAgICAgICAgICAi
VHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOiIsCisgICAgICAgICAgICAnICBGaWxl
ICIqL3Rlc3RfY29sbGVjdG9yX3Jlc3BlY3RzX3Ric3R5bGUucHkiLCBsaW5lIDEsIGluIDxtb2R1
bGU+JywKKyAgICAgICAgICAgICIgICAgYXNzZXJ0IDAiLAorICAgICAgICAgICAgIkFzc2VydGlv
bkVycm9yOiBhc3NlcnQgMCIsCisgICAgICAgICAgICAiKiEgSW50ZXJydXB0ZWQ6IDEgZXJyb3Jz
IGR1cmluZyBjb2xsZWN0aW9uICEqIiwKKyAgICAgICAgICAgICIqPSAxIGVycm9yIGluICoiLAor
ICAgICAgICBdCisgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Nv
bXBhdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb21wYXQucHkKaW5kZXggNTUwYThm
MWIzNTQ0ZDJhOTMzMDhlZjBmM2QyMGJhODNmYzNiNTM3ZS4uYjQyOThkMTUzMWQ2MGM1NGRiODk2
Y2ZjY2M5NTFhZDYxNDA3NWY2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0
X2NvbXBhdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY29tcGF0LnB5CkBAIC0x
LDI3ICsxLDM1IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2
aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IHN5
cworZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCisKK2ltcG9ydCBzaXgKIAogaW1wb3J0IHB5
dGVzdAotZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgaXNfZ2VuZXJhdG9yLCBnZXRfcmVhbF9m
dW5jLCBzYWZlX2dldGF0dHIKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9QeXRlc3RXcmFw
cGVyCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBnZXRfcmVhbF9mdW5jCitmcm9tIF9weXRl
c3QuY29tcGF0IGltcG9ydCBpc19nZW5lcmF0b3IKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0
IHNhZmVfZ2V0YXR0cgorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgc2FmZV9pc2NsYXNzCiBm
cm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IE91dGNvbWVFeGNlcHRpb24KIAogCiBkZWYgdGVz
dF9pc19nZW5lcmF0b3IoKToKLQogICAgIGRlZiB6YXAoKToKLSAgICAgICAgeWllbGQKKyAgICAg
ICAgeWllbGQgICMgcHJhZ21hOiBubyBjb3ZlcgogCiAgICAgZGVmIGZvbygpOgotICAgICAgICBw
YXNzCisgICAgICAgIHBhc3MgICMgcHJhZ21hOiBubyBjb3ZlcgogCiAgICAgYXNzZXJ0IGlzX2dl
bmVyYXRvcih6YXApCiAgICAgYXNzZXJ0IG5vdCBpc19nZW5lcmF0b3IoZm9vKQogCiAKIGRlZiB0
ZXN0X3JlYWxfZnVuY19sb29wX2xpbWl0KCk6Ci0KICAgICBjbGFzcyBFdmlsKG9iamVjdCk6Ci0K
ICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICAgICAgc2VsZi5sZWZ0ID0gMTAw
MAogCkBAIC0zMCwxNSArMzgsNDcgQEAgZGVmIHRlc3RfcmVhbF9mdW5jX2xvb3BfbGltaXQoKToK
IAogICAgICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgYXR0cik6CiAgICAgICAgICAgICBpZiBu
b3Qgc2VsZi5sZWZ0OgotICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiaXRzIG92
ZXIiKQorICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiaXQncyBvdmVyIikgICMg
cHJhZ21hOiBubyBjb3ZlcgogICAgICAgICAgICAgc2VsZi5sZWZ0IC09IDEKICAgICAgICAgICAg
IHJldHVybiBzZWxmCiAKICAgICBldmlsID0gRXZpbCgpCiAKLSAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoVmFsdWVFcnJvcik6Ci0gICAgICAgIHJlcyA9IGdldF9yZWFsX2Z1bmMoZXZpbCkKLSAgICAg
ICAgcHJpbnQocmVzKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcygKKyAgICAgICAgVmFsdWVFcnJv
ciwKKyAgICAgICAgbWF0Y2g9KAorICAgICAgICAgICAgImNvdWxkIG5vdCBmaW5kIHJlYWwgZnVu
Y3Rpb24gb2YgPEV2aWwgbGVmdD04MDA+XG4iCisgICAgICAgICAgICAic3RvcHBlZCBhdCA8RXZp
bCBsZWZ0PTgwMD4iCisgICAgICAgICksCisgICAgKToKKyAgICAgICAgZ2V0X3JlYWxfZnVuYyhl
dmlsKQorCisKK2RlZiB0ZXN0X2dldF9yZWFsX2Z1bmMoKToKKyAgICAiIiJDaGVjayB0aGF0IGdl
dF9yZWFsX2Z1bmMgY29ycmVjdGx5IHVud3JhcHMgZGVjb3JhdG9ycyB1bnRpbCByZWFjaGluZyB0
aGUgcmVhbCBmdW5jdGlvbiIiIgorCisgICAgZGVmIGRlY29yYXRvcihmKToKKyAgICAgICAgQHdy
YXBzKGYpCisgICAgICAgIGRlZiBpbm5lcigpOgorICAgICAgICAgICAgcGFzcyAgIyBwcmFnbWE6
IG5vIGNvdmVyCisKKyAgICAgICAgaWYgc2l4LlBZMjoKKyAgICAgICAgICAgIGlubmVyLl9fd3Jh
cHBlZF9fID0gZgorICAgICAgICByZXR1cm4gaW5uZXIKKworICAgIGRlZiBmdW5jKCk6CisgICAg
ICAgIHBhc3MgICMgcHJhZ21hOiBubyBjb3ZlcgorCisgICAgd3JhcHBlZF9mdW5jID0gZGVjb3Jh
dG9yKGRlY29yYXRvcihmdW5jKSkKKyAgICBhc3NlcnQgZ2V0X3JlYWxfZnVuYyh3cmFwcGVkX2Z1
bmMpIGlzIGZ1bmMKKworICAgIHdyYXBwZWRfZnVuYzIgPSBkZWNvcmF0b3IoZGVjb3JhdG9yKHdy
YXBwZWRfZnVuYykpCisgICAgYXNzZXJ0IGdldF9yZWFsX2Z1bmMod3JhcHBlZF9mdW5jMikgaXMg
ZnVuYworCisgICAgIyBzcGVjaWFsIGNhc2UgZm9yIF9fcHl0ZXN0X3dyYXBwZWRfXyBhdHRyaWJ1
dGU6IHVzZWQgdG8gb2J0YWluIHRoZSBmdW5jdGlvbiB1cCB1bnRpbCB0aGUgcG9pbnQKKyAgICAj
IGEgZnVuY3Rpb24gd2FzIHdyYXBwZWQgYnkgcHl0ZXN0IGl0c2VsZgorICAgIHdyYXBwZWRfZnVu
YzIuX19weXRlc3Rfd3JhcHBlZF9fID0gX1B5dGVzdFdyYXBwZXIod3JhcHBlZF9mdW5jKQorICAg
IGFzc2VydCBnZXRfcmVhbF9mdW5jKHdyYXBwZWRfZnVuYzIpIGlzIHdyYXBwZWRfZnVuYwogCiAK
IEBweXRlc3QubWFyay5za2lwaWYoCkBAIC04Niw3ICsxMjYsNiBAQCBkZWYgdGVzdF9pc19nZW5l
cmF0b3JfYXN5bmNfc3ludGF4KHRlc3RkaXIpOgogCiAKIGNsYXNzIEVycm9yc0hlbHBlcihvYmpl
Y3QpOgotCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHJhaXNlX2V4Y2VwdGlvbihzZWxmKToKICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJleGNlcHRpb24gc2hvdWxkIGJlIGNhdGNoZWQiKQpAQCAt
MTA4LDMgKzE0NywxNCBAQCBkZWYgdGVzdF9zYWZlX2dldGF0dHIoKToKICAgICBoZWxwZXIgPSBF
cnJvcnNIZWxwZXIoKQogICAgIGFzc2VydCBzYWZlX2dldGF0dHIoaGVscGVyLCAicmFpc2VfZXhj
ZXB0aW9uIiwgImRlZmF1bHQiKSA9PSAiZGVmYXVsdCIKICAgICBhc3NlcnQgc2FmZV9nZXRhdHRy
KGhlbHBlciwgInJhaXNlX2ZhaWwiLCAiZGVmYXVsdCIpID09ICJkZWZhdWx0IgorCisKK2RlZiB0
ZXN0X3NhZmVfaXNjbGFzcygpOgorICAgIGFzc2VydCBzYWZlX2lzY2xhc3ModHlwZSkgaXMgVHJ1
ZQorCisgICAgY2xhc3MgQ3JhcHB5Q2xhc3MoRXhjZXB0aW9uKToKKyAgICAgICAgQHByb3BlcnR5
CisgICAgICAgIGRlZiBfX2NsYXNzX18oc2VsZik6CisgICAgICAgICAgICBhc3NlcnQgRmFsc2Us
ICJTaG91bGQgYmUgaWdub3JlZCIKKworICAgIGFzc2VydCBzYWZlX2lzY2xhc3MoQ3JhcHB5Q2xh
c3MoKSkgaXMgRmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb25m
aWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY29uZmlnLnB5CmluZGV4IDVmYjA0ODM2
NGY3Y2FiZmY5YzU2YTMwY2U2NzQ0YjQ3ZTA5NTYzNzguLmQxM2YxMTliMDIwYTI1YWI2YTc3ZmU1
Y2E0MjZiYmZkOTRkNDJkZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9j
b25maWcucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbmZpZy5weQpAQCAtMSwx
NiArMSwyOCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCBwcmludF9mdW5jdGlvbgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlz
aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBzeXMK
IGltcG9ydCB0ZXh0d3JhcAotaW1wb3J0IHB5dGVzdAogCiBpbXBvcnQgX3B5dGVzdC5fY29kZQot
ZnJvbSBfcHl0ZXN0LmNvbmZpZy5maW5kcGF0aHMgaW1wb3J0IGdldGNmZywgZ2V0X2NvbW1vbl9h
bmNlc3RvciwgZGV0ZXJtaW5lX3NldHVwCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuY29t
cGF0IGltcG9ydCBpbXBvcnRsaWJfbWV0YWRhdGEKIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0
IF9pdGVyX3Jld3JpdGFibGVfbW9kdWxlcworZnJvbSBfcHl0ZXN0LmNvbmZpZy5leGNlcHRpb25z
IGltcG9ydCBVc2FnZUVycm9yCitmcm9tIF9weXRlc3QuY29uZmlnLmZpbmRwYXRocyBpbXBvcnQg
ZGV0ZXJtaW5lX3NldHVwCitmcm9tIF9weXRlc3QuY29uZmlnLmZpbmRwYXRocyBpbXBvcnQgZ2V0
X2NvbW1vbl9hbmNlc3RvcgorZnJvbSBfcHl0ZXN0LmNvbmZpZy5maW5kcGF0aHMgaW1wb3J0IGdl
dGNmZworZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfSU5URVJSVVBURUQKIGZyb20gX3B5
dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNURUQKK2Zyb20gX3B5dGVzdC5tYWlu
IGltcG9ydCBFWElUX09LCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9URVNUU0ZBSUxF
RAorZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfVVNBR0VFUlJPUgorZnJvbSBfcHl0ZXN0
LnBhdGhsaWIgaW1wb3J0IFBhdGgKIAogCiBjbGFzcyBUZXN0UGFyc2VJbmkob2JqZWN0KToKLQog
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKICAgICAgICAgInNlY3Rpb24sIGZpbGVuYW1l
IiwgWygicHl0ZXN0IiwgInB5dGVzdC5pbmkiKSwgKCJ0b29sOnB5dGVzdCIsICJzZXR1cC5jZmci
KV0KICAgICApCkBAIC0xOCwxMSArMzAsMTEgQEAgY2xhc3MgVGVzdFBhcnNlSW5pKG9iamVjdCk6
CiAgICAgICAgIHN1YiA9IHRtcGRpci5ta2Rpcigic3ViIikKICAgICAgICAgc3ViLmNoZGlyKCkK
ICAgICAgICAgdG1wZGlyLmpvaW4oZmlsZW5hbWUpLndyaXRlKAotICAgICAgICAgICAgX3B5dGVz
dC5fY29kZS5Tb3VyY2UoCi0gICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBbe3NlY3Rp
b259XQotICAgICAgICAgICAgbmFtZSA9IHZhbHVlCi0gICAgICAgICIiIi5mb3JtYXQoCisgICAg
ICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAorICAgICAgICAg
ICAgICAgIFt7c2VjdGlvbn1dCisgICAgICAgICAgICAgICAgbmFtZSA9IHZhbHVlCisgICAgICAg
ICAgICAgICAgIiIiLmZvcm1hdCgKICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbj1zZWN0aW9u
CiAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgKQpAQCAtMzYsMTQgKzQ4LDMwIEBAIGNs
YXNzIFRlc3RQYXJzZUluaShvYmplY3QpOgogICAgICAgICAiIiJjb3JyZWN0bHkgaGFuZGxlIHpl
cm8gbGVuZ3RoIGFyZ3VtZW50cyAoYSBsYSBweXRlc3QgJycpIiIiCiAgICAgICAgIGdldGNmZyhb
IiJdKQogCisgICAgZGVmIHRlc3Rfc2V0dXBjZmdfdXNlc190b29scHl0ZXN0X3dpdGhfcHl0ZXN0
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRl
c3QoKTogcGFzcyIpCisgICAgICAgIHRlc3RkaXIubWFrZWZpbGUoCisgICAgICAgICAgICAiLmNm
ZyIsCisgICAgICAgICAgICBzZXR1cD0iIiIKKyAgICAgICAgICAgICAgICBbdG9vbDpweXRlc3Rd
CisgICAgICAgICAgICAgICAgdGVzdHBhdGhzPSVzCisgICAgICAgICAgICAgICAgW3B5dGVzdF0K
KyAgICAgICAgICAgICAgICB0ZXN0cGF0aHM9aWdub3JlZAorICAgICAgICAiIiIKKyAgICAgICAg
ICAgICUgcDEuYmFzZW5hbWUsCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqLCBpbmlm
aWxlOiBzZXR1cC5jZmcsICoiLCAiKiAxIHBhc3NlZCBpbiAqIl0pCisgICAgICAgIGFzc2VydCBy
ZXN1bHQucmV0ID09IDAKKwogICAgIGRlZiB0ZXN0X2FwcGVuZF9wYXJzZV9hcmdzKHNlbGYsIHRl
c3RkaXIsIHRtcGRpciwgbW9ua2V5cGF0Y2gpOgogICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYo
IlBZVEVTVF9BRERPUFRTIiwgJy0tY29sb3Igbm8gLXJzIC0tdGI9InNob3J0IicpCiAgICAgICAg
IHRtcGRpci5qb2luKCJweXRlc3QuaW5pIikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9j
b2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAg
ICAiIiJcCisgICAgICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgICAgICBhZGRvcHRz
ID0gLS12ZXJib3NlCiAgICAgICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBbcHl0ZXN0XQot
ICAgICAgICAgICAgYWRkb3B0cyA9IC0tdmVyYm9zZQotICAgICAgICAiIiIKICAgICAgICAgICAg
ICkKICAgICAgICAgKQogICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKHRtcGRp
cikKQEAgLTEwMyw2ICsxMzEsMTIgQEAgY2xhc3MgVGVzdFBhcnNlSW5pKG9iamVjdCk6CiAgICAg
ICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWd1cmUoc3ViKQogICAgICAgICBhc3NlcnQg
Y29uZmlnLmdldGluaSgibWludmVyc2lvbiIpID09ICIyLjAiCiAKKyAgICBkZWYgdGVzdF9pbmlf
cGFyc2VfZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4o
InB5dGVzdC5pbmkiKS53cml0ZSgiYWRkb3B0cyA9IC14IikKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAg
IHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbIkVSUk9SOiAqcHl0ZXN0LmluaToxOiBubyBz
ZWN0aW9uIGhlYWRlciBkZWZpbmVkIl0pCisKICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29u
PSJwcm9iYWJseSBub3QgbmVlZGVkIikKICAgICBkZWYgdGVzdF9jb25mY3V0ZGlyKHNlbGYsIHRl
c3RkaXIpOgogICAgICAgICBzdWIgPSB0ZXN0ZGlyLm1rZGlyKCJzdWIiKQpAQCAtMTE4LDcgKzE1
Miw2IEBAIGNsYXNzIFRlc3RQYXJzZUluaShvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RDb25maWdD
bWRsaW5lUGFyc2luZyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfcGFyc2luZ19hZ2Fpbl9mYWls
cyhzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygp
CiAgICAgICAgIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIGxhbWJkYTogY29uZmlnLnBh
cnNlKFtdKSkKQEAgLTEzNywxMyArMTcwLDEzIEBAIGNsYXNzIFRlc3RDb25maWdDbWRsaW5lUGFy
c2luZyhvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICB0ZXN0ZGlyLm1h
a2VmaWxlKAotICAgICAgICAgICAgIi5jZmciLAorICAgICAgICAgICAgIi5pbmkiLAogICAgICAg
ICAgICAgY3VzdG9tPSIiIgogICAgICAgICAgICAgW3B5dGVzdF0KICAgICAgICAgICAgIGN1c3Rv
bSA9IDEKICAgICAgICAgIiIiLAogICAgICAgICApCi0gICAgICAgIGNvbmZpZyA9IHRlc3RkaXIu
cGFyc2Vjb25maWcoIi1jIiwgImN1c3RvbS5jZmciKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGly
LnBhcnNlY29uZmlnKCItYyIsICJjdXN0b20uaW5pIikKICAgICAgICAgYXNzZXJ0IGNvbmZpZy5n
ZXRpbmkoImN1c3RvbSIpID09ICIxIgogCiAgICAgICAgIHRlc3RkaXIubWFrZWZpbGUoCkBAIC0x
NTcsOCArMTkwLDggQEAgY2xhc3MgVGVzdENvbmZpZ0NtZGxpbmVQYXJzaW5nKG9iamVjdCk6CiAg
ICAgICAgIGFzc2VydCBjb25maWcuZ2V0aW5pKCJjdXN0b20iKSA9PSAiMSIKIAogICAgIGRlZiB0
ZXN0X2Fic29sdXRlX3dpbjMyX3BhdGgoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlbXBfY2Zn
X2ZpbGUgPSB0ZXN0ZGlyLm1ha2VmaWxlKAotICAgICAgICAgICAgIi5jZmciLAorICAgICAgICB0
ZW1wX2luaV9maWxlID0gdGVzdGRpci5tYWtlZmlsZSgKKyAgICAgICAgICAgICIuaW5pIiwKICAg
ICAgICAgICAgIGN1c3RvbT0iIiIKICAgICAgICAgICAgIFtweXRlc3RdCiAgICAgICAgICAgICBh
ZGRvcHRzID0gLS12ZXJzaW9uCkBAIC0xNjYsMTMgKzE5OSwxMiBAQCBjbGFzcyBUZXN0Q29uZmln
Q21kbGluZVBhcnNpbmcob2JqZWN0KToKICAgICAgICAgKQogICAgICAgICBmcm9tIG9zLnBhdGgg
aW1wb3J0IG5vcm1wYXRoCiAKLSAgICAgICAgdGVtcF9jZmdfZmlsZSA9IG5vcm1wYXRoKHN0cih0
ZW1wX2NmZ19maWxlKSkKLSAgICAgICAgcmV0ID0gcHl0ZXN0Lm1haW4oIi1jICIgKyB0ZW1wX2Nm
Z19maWxlKQorICAgICAgICB0ZW1wX2luaV9maWxlID0gbm9ybXBhdGgoc3RyKHRlbXBfaW5pX2Zp
bGUpKQorICAgICAgICByZXQgPSBweXRlc3QubWFpbihbIi1jIiwgdGVtcF9pbmlfZmlsZV0pCiAg
ICAgICAgIGFzc2VydCByZXQgPT0gX3B5dGVzdC5tYWluLkVYSVRfT0sKIAogCiBjbGFzcyBUZXN0
Q29uZmlnQVBJKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9jb25maWdfdHJhY2Uoc2VsZiwgdGVz
dGRpcik6CiAgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQogICAgICAgICB2
YWx1ZXMgPSBbXQpAQCAtMTkxLDcgKzIyMyw3IEBAIGNsYXNzIFRlc3RDb25maWdBUEkob2JqZWN0
KToKICAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygiLS1oZWxsbz10aGlzIikK
ICAgICAgICAgZm9yIHggaW4gKCJoZWxsbyIsICItLWhlbGxvIiwgIi1YIik6CiAgICAgICAgICAg
ICBhc3NlcnQgY29uZmlnLmdldG9wdGlvbih4KSA9PSAidGhpcyIKLSAgICAgICAgcHl0ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yLCAiY29uZmlnLmdldG9wdGlvbigncXdlcXdlJykiKQorICAgICAgICBw
eXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGNvbmZpZy5nZXRvcHRpb24sICJxd2Vxd2UiKQogCiAg
ICAgQHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnZlcnNpb25faW5mb1swXSA8IDMiKQogICAgIGRl
ZiB0ZXN0X2NvbmZpZ19nZXRvcHRpb25fdW5pY29kZShzZWxmLCB0ZXN0ZGlyKToKQEAgLTIwOCw3
ICsyNDAsNyBAQCBjbGFzcyBUZXN0Q29uZmlnQVBJKG9iamVjdCk6CiAKICAgICBkZWYgdGVzdF9j
b25maWdfZ2V0dmFsdWVvcnNraXAoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIGNvbmZpZyA9IHRl
c3RkaXIucGFyc2Vjb25maWcoKQotICAgICAgICBweXRlc3QucmFpc2VzKHB5dGVzdC5za2lwLkV4
Y2VwdGlvbiwgImNvbmZpZy5nZXR2YWx1ZW9yc2tpcCgnaGVsbG8nKSIpCisgICAgICAgIHB5dGVz
dC5yYWlzZXMocHl0ZXN0LnNraXAuRXhjZXB0aW9uLCBjb25maWcuZ2V0dmFsdWVvcnNraXAsICJo
ZWxsbyIpCiAgICAgICAgIHZlcmJvc2UgPSBjb25maWcuZ2V0dmFsdWVvcnNraXAoInZlcmJvc2Ui
KQogICAgICAgICBhc3NlcnQgdmVyYm9zZSA9PSBjb25maWcub3B0aW9uLnZlcmJvc2UKIApAQCAt
NDAwLDIwICs0MzIsMjUgQEAgY2xhc3MgVGVzdENvbmZpZ0FQSShvYmplY3QpOgogICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgKICAgICAgICAgIm5hbWVzLCBleHBlY3RlZCIsCiAgICAgICAg
IFsKKyAgICAgICAgICAgICMgZGlzdC1pbmZvIGJhc2VkIGRpc3RyaWJ1dGlvbnMgcm9vdCBhcmUg
ZmlsZXMgYXMgd2lsbCBiZSBwdXQgaW4gUFlUSE9OUEFUSAogICAgICAgICAgICAgKFsiYmFyLnB5
Il0sIFsiYmFyIl0pLAotICAgICAgICAgICAgKFsiZm9vIiwgImJhci5weSJdLCBbXSksCi0gICAg
ICAgICAgICAoWyJmb28iLCAiYmFyLnB5YyJdLCBbXSksCi0gICAgICAgICAgICAoWyJmb28iLCAi
X19pbml0X18ucHkiXSwgWyJmb28iXSksCi0gICAgICAgICAgICAoWyJmb28iLCAiYmFyIiwgIl9f
aW5pdF9fLnB5Il0sIFtdKSwKKyAgICAgICAgICAgIChbImZvby9iYXIucHkiXSwgWyJiYXIiXSks
CisgICAgICAgICAgICAoWyJmb28vYmFyLnB5YyJdLCBbXSksCisgICAgICAgICAgICAoWyJmb28v
X19pbml0X18ucHkiXSwgWyJmb28iXSksCisgICAgICAgICAgICAoWyJiYXIvX19pbml0X18ucHki
LCAieHoucHkiXSwgWyJiYXIiLCAieHoiXSksCisgICAgICAgICAgICAoWyJzZXR1cC5weSJdLCBb
XSksCisgICAgICAgICAgICAjIGVnZyBiYXNlZCBkaXN0cmlidXRpb25zIHJvb3QgY29udGFpbiB0
aGUgZmlsZXMgZnJvbSB0aGUgZGlzdCByb290CisgICAgICAgICAgICAoWyJzcmMvYmFyL19faW5p
dF9fLnB5Il0sIFsiYmFyIl0pLAorICAgICAgICAgICAgKFsic3JjL2Jhci9fX2luaXRfXy5weSIs
ICJzZXR1cC5weSJdLCBbImJhciJdKSwKKyAgICAgICAgICAgIChbInNvdXJjZS9weXRob24vYmFy
L19faW5pdF9fLnB5IiwgInNldHVwLnB5Il0sIFsiYmFyIl0pLAogICAgICAgICBdLAogICAgICkK
ICAgICBkZWYgdGVzdF9pdGVyX3Jld3JpdGFibGVfbW9kdWxlcyhzZWxmLCBuYW1lcywgZXhwZWN0
ZWQpOgotICAgICAgICBhc3NlcnQgbGlzdChfaXRlcl9yZXdyaXRhYmxlX21vZHVsZXMoWyIvIi5q
b2luKG5hbWVzKV0pKSA9PSBleHBlY3RlZAorICAgICAgICBhc3NlcnQgbGlzdChfaXRlcl9yZXdy
aXRhYmxlX21vZHVsZXMobmFtZXMpKSA9PSBleHBlY3RlZAogCiAKIGNsYXNzIFRlc3RDb25maWdG
cm9tZGljdGFyZ3Mob2JqZWN0KToKLQotICAgIGRlZiB0ZXN0X2Jhc2ljX2JlaGF2aW9yKHNlbGYp
OgorICAgIGRlZiB0ZXN0X2Jhc2ljX2JlaGF2aW9yKHNlbGYsIF9zeXNfc25hcHNob3QpOgogICAg
ICAgICBmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBDb25maWcKIAogICAgICAgICBvcHRpb25f
ZGljdCA9IHsidmVyYm9zZSI6IDQ0NCwgImZvbyI6ICJiYXIiLCAiY2FwdHVyZSI6ICJubyJ9CkBA
IC00MjcsNyArNDY0LDcgQEAgY2xhc3MgVGVzdENvbmZpZ0Zyb21kaWN0YXJncyhvYmplY3QpOgog
ICAgICAgICBhc3NlcnQgY29uZmlnLm9wdGlvbi5jYXB0dXJlID09ICJubyIKICAgICAgICAgYXNz
ZXJ0IGNvbmZpZy5hcmdzID09IGFyZ3MKIAotICAgIGRlZiB0ZXN0X29yaWdhcmdzKHNlbGYpOgor
ICAgIGRlZiB0ZXN0X29yaWdhcmdzKHNlbGYsIF9zeXNfc25hcHNob3QpOgogICAgICAgICAiIiJT
aG93IHRoYXQgZnJvbWRpY3RhcmdzIGNhbiBoYW5kbGUgYXJncyBpbiB0aGVpciAib3JpZyIgZm9y
bWF0IiIiCiAgICAgICAgIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IENvbmZpZwogCkBAIC00
NDIsMTEgKzQ3OSwxMSBAQCBjbGFzcyBUZXN0Q29uZmlnRnJvbWRpY3RhcmdzKG9iamVjdCk6CiAK
ICAgICBkZWYgdGVzdF9pbmlmaWxlbmFtZShzZWxmLCB0bXBkaXIpOgogICAgICAgICB0bXBkaXIu
am9pbigiZm9vL2Jhci5pbmkiKS5lbnN1cmUoKS53cml0ZSgKLSAgICAgICAgICAgIF9weXRlc3Qu
X2NvZGUuU291cmNlKAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAg
ICAgICIiIlwKKyAgICAgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgICAgIG5hbWUg
PSB2YWx1ZQogICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgW3B5dGVzdF0KLSAgICAg
ICAgICAgIG5hbWUgPSB2YWx1ZQotICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAg
KQogCkBAIC00NTcsMTIgKzQ5NCwxMiBAQCBjbGFzcyBUZXN0Q29uZmlnRnJvbWRpY3RhcmdzKG9i
amVjdCk6CiAKICAgICAgICAgY3dkID0gdG1wZGlyLmpvaW4oImEvYiIpCiAgICAgICAgIGN3ZC5q
b2luKCJweXRlc3QuaW5pIikuZW5zdXJlKCkud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9j
b2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAg
ICAiIiJcCisgICAgICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgICAgICBuYW1lID0g
d3JvbmctdmFsdWUKKyAgICAgICAgICAgICAgICBzaG91bGRfbm90X2JlX3NldCA9IHRydWUKICAg
ICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIFtweXRlc3RdCi0gICAgICAgICAgICBuYW1l
ID0gd3JvbmctdmFsdWUKLSAgICAgICAgICAgIHNob3VsZF9ub3RfYmVfc2V0ID0gdHJ1ZQotICAg
ICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICB3aXRoIGN3ZC5lbnN1
cmUoZGlyPVRydWUpLmFzX2N3ZCgpOgpAQCAtNDc5LDcgKzUxNiw2IEBAIGNsYXNzIFRlc3RDb25m
aWdGcm9tZGljdGFyZ3Mob2JqZWN0KToKIAogCiBkZWYgdGVzdF9vcHRpb25zX29uX3NtYWxsX2Zp
bGVfZG9fbm90X2Jsb3dfdXAodGVzdGRpcik6Ci0KICAgICBkZWYgcnVuZmlsZXRlc3Qob3B0cyk6
CiAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigqb3B0cykKICAgICAgICAgcGFz
c2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCkBAIC01MDksMzIg
KzU0NSwyNiBAQCBkZWYgdGVzdF9vcHRpb25zX29uX3NtYWxsX2ZpbGVfZG9fbm90X2Jsb3dfdXAo
dGVzdGRpcik6CiAKIAogZGVmIHRlc3RfcHJlcGFyc2Vfb3JkZXJpbmdfd2l0aF9zZXR1cHRvb2xz
KHRlc3RkaXIsIG1vbmtleXBhdGNoKToKLSAgICBwa2dfcmVzb3VyY2VzID0gcHl0ZXN0LmltcG9y
dG9yc2tpcCgicGtnX3Jlc291cmNlcyIpCi0KLSAgICBkZWYgbXlfaXRlcihuYW1lKToKLSAgICAg
ICAgYXNzZXJ0IG5hbWUgPT0gInB5dGVzdDExIgotCi0gICAgICAgIGNsYXNzIERpc3Qob2JqZWN0
KToKLSAgICAgICAgICAgIHByb2plY3RfbmFtZSA9ICJzcGFtIgotICAgICAgICAgICAgdmVyc2lv
biA9ICIxLjAiCisgICAgbW9ua2V5cGF0Y2guZGVsZW52KCJQWVRFU1RfRElTQUJMRV9QTFVHSU5f
QVVUT0xPQUQiLCByYWlzaW5nPUZhbHNlKQogCi0gICAgICAgICAgICBkZWYgX2dldF9tZXRhZGF0
YShzZWxmLCBuYW1lKToKLSAgICAgICAgICAgICAgICByZXR1cm4gWyJmb28udHh0LHNoYTI1Nj1h
YmMsMTIzIl0KKyAgICBjbGFzcyBFbnRyeVBvaW50KG9iamVjdCk6CisgICAgICAgIG5hbWUgPSAi
bXl0ZXN0cGx1Z2luIgorICAgICAgICBncm91cCA9ICJweXRlc3QxMSIKIAotICAgICAgICBjbGFz
cyBFbnRyeVBvaW50KG9iamVjdCk6Ci0gICAgICAgICAgICBuYW1lID0gIm15dGVzdHBsdWdpbiIK
LSAgICAgICAgICAgIGRpc3QgPSBEaXN0KCkKKyAgICAgICAgZGVmIGxvYWQoc2VsZik6CisgICAg
ICAgICAgICBjbGFzcyBQc2V1ZG9QbHVnaW4ob2JqZWN0KToKKyAgICAgICAgICAgICAgICB4ID0g
NDIKIAotICAgICAgICAgICAgZGVmIGxvYWQoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gUHNl
dWRvUGx1Z2luKCkKIAotICAgICAgICAgICAgICAgIGNsYXNzIFBzZXVkb1BsdWdpbihvYmplY3Qp
OgotICAgICAgICAgICAgICAgICAgICB4ID0gNDIKKyAgICBjbGFzcyBEaXN0KG9iamVjdCk6Cisg
ICAgICAgIGZpbGVzID0gKCkKKyAgICAgICAgZW50cnlfcG9pbnRzID0gKEVudHJ5UG9pbnQoKSwp
CiAKLSAgICAgICAgICAgICAgICByZXR1cm4gUHNldWRvUGx1Z2luKCkKKyAgICBkZWYgbXlfZGlz
dHMoKToKKyAgICAgICAgcmV0dXJuIChEaXN0LCkKIAotICAgICAgICByZXR1cm4gaXRlcihbRW50
cnlQb2ludCgpXSkKLQotICAgIG1vbmtleXBhdGNoLnNldGF0dHIocGtnX3Jlc291cmNlcywgIml0
ZXJfZW50cnlfcG9pbnRzIiwgbXlfaXRlcikKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGltcG9y
dGxpYl9tZXRhZGF0YSwgImRpc3RyaWJ1dGlvbnMiLCBteV9kaXN0cykKICAgICB0ZXN0ZGlyLm1h
a2Vjb25mdGVzdCgKICAgICAgICAgIiIiCiAgICAgICAgIHB5dGVzdF9wbHVnaW5zID0gIm15dGVz
dHBsdWdpbiIsCkBAIC01NDcsNTggKzU3Nyw3MyBAQCBkZWYgdGVzdF9wcmVwYXJzZV9vcmRlcmlu
Z193aXRoX3NldHVwdG9vbHModGVzdGRpciwgbW9ua2V5cGF0Y2gpOgogCiAKIGRlZiB0ZXN0X3Nl
dHVwdG9vbHNfaW1wb3J0ZXJyb3JfaXNzdWUxNDc5KHRlc3RkaXIsIG1vbmtleXBhdGNoKToKLSAg
ICBwa2dfcmVzb3VyY2VzID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgicGtnX3Jlc291cmNlcyIpCi0K
LSAgICBkZWYgbXlfaXRlcihuYW1lKToKLSAgICAgICAgYXNzZXJ0IG5hbWUgPT0gInB5dGVzdDEx
IgorICAgIG1vbmtleXBhdGNoLmRlbGVudigiUFlURVNUX0RJU0FCTEVfUExVR0lOX0FVVE9MT0FE
IiwgcmFpc2luZz1GYWxzZSkKIAotICAgICAgICBjbGFzcyBEaXN0KG9iamVjdCk6Ci0gICAgICAg
ICAgICBwcm9qZWN0X25hbWUgPSAic3BhbSIKLSAgICAgICAgICAgIHZlcnNpb24gPSAiMS4wIgor
ICAgIGNsYXNzIER1bW15RW50cnlQb2ludChvYmplY3QpOgorICAgICAgICBuYW1lID0gIm15dGVz
dHBsdWdpbiIKKyAgICAgICAgZ3JvdXAgPSAicHl0ZXN0MTEiCiAKLSAgICAgICAgICAgIGRlZiBf
Z2V0X21ldGFkYXRhKHNlbGYsIG5hbWUpOgotICAgICAgICAgICAgICAgIHJldHVybiBbImZvby50
eHQsc2hhMjU2PWFiYywxMjMiXQorICAgICAgICBkZWYgbG9hZChzZWxmKToKKyAgICAgICAgICAg
IHJhaXNlIEltcG9ydEVycm9yKCJEb24ndCBoaWRlIG1lISIpCiAKLSAgICAgICAgY2xhc3MgRW50
cnlQb2ludChvYmplY3QpOgotICAgICAgICAgICAgbmFtZSA9ICJteXRlc3RwbHVnaW4iCi0gICAg
ICAgICAgICBkaXN0ID0gRGlzdCgpCisgICAgY2xhc3MgRGlzdHJpYnV0aW9uKG9iamVjdCk6Cisg
ICAgICAgIHZlcnNpb24gPSAiMS4wIgorICAgICAgICBmaWxlcyA9ICgiZm9vLnR4dCIsKQorICAg
ICAgICBlbnRyeV9wb2ludHMgPSAoRHVtbXlFbnRyeVBvaW50KCksKQogCi0gICAgICAgICAgICBk
ZWYgbG9hZChzZWxmKToKLSAgICAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigiRG9uJ3Qg
aGlkZSBtZSEiKQorICAgIGRlZiBkaXN0cmlidXRpb25zKCk6CisgICAgICAgIHJldHVybiAoRGlz
dHJpYnV0aW9uKCksKQogCi0gICAgICAgIHJldHVybiBpdGVyKFtFbnRyeVBvaW50KCldKQotCi0g
ICAgbW9ua2V5cGF0Y2guc2V0YXR0cihwa2dfcmVzb3VyY2VzLCAiaXRlcl9lbnRyeV9wb2ludHMi
LCBteV9pdGVyKQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIoaW1wb3J0bGliX21ldGFkYXRhLCAi
ZGlzdHJpYnV0aW9ucyIsIGRpc3RyaWJ1dGlvbnMpCiAgICAgd2l0aCBweXRlc3QucmFpc2VzKElt
cG9ydEVycm9yKToKICAgICAgICAgdGVzdGRpci5wYXJzZWNvbmZpZygpCiAKIAorZGVmIHRlc3Rf
aW1wb3J0bGliX21ldGFkYXRhX2Jyb2tlbl9kaXN0cmlidXRpb24odGVzdGRpciwgbW9ua2V5cGF0
Y2gpOgorICAgICIiIkludGVncmF0aW9uIHRlc3QgZm9yIGJyb2tlbiBkaXN0cmlidXRpb25zIHdp
dGggJ2ZpbGVzJyBtZXRhZGF0YSBiZWluZyBOb25lICgjNTM4OSkiIiIKKyAgICBtb25rZXlwYXRj
aC5kZWxlbnYoIlBZVEVTVF9ESVNBQkxFX1BMVUdJTl9BVVRPTE9BRCIsIHJhaXNpbmc9RmFsc2Up
CisKKyAgICBjbGFzcyBEdW1teUVudHJ5UG9pbnQ6CisgICAgICAgIG5hbWUgPSAibXl0ZXN0cGx1
Z2luIgorICAgICAgICBncm91cCA9ICJweXRlc3QxMSIKKworICAgICAgICBkZWYgbG9hZChzZWxm
KToKKyAgICAgICAgICAgIHJldHVybiBvYmplY3QoKQorCisgICAgY2xhc3MgRGlzdHJpYnV0aW9u
OgorICAgICAgICB2ZXJzaW9uID0gIjEuMCIKKyAgICAgICAgZmlsZXMgPSBOb25lCisgICAgICAg
IGVudHJ5X3BvaW50cyA9IChEdW1teUVudHJ5UG9pbnQoKSwpCisKKyAgICBkZWYgZGlzdHJpYnV0
aW9ucygpOgorICAgICAgICByZXR1cm4gKERpc3RyaWJ1dGlvbigpLCkKKworICAgIG1vbmtleXBh
dGNoLnNldGF0dHIoaW1wb3J0bGliX21ldGFkYXRhLCAiZGlzdHJpYnV0aW9ucyIsIGRpc3RyaWJ1
dGlvbnMpCisgICAgdGVzdGRpci5wYXJzZWNvbmZpZygpCisKKwogQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJibG9ja19pdCIsIFtUcnVlLCBGYWxzZV0pCiBkZWYgdGVzdF9wbHVnaW5fcHJlcGFy
c2VfcHJldmVudHNfc2V0dXB0b29sc19sb2FkaW5nKHRlc3RkaXIsIG1vbmtleXBhdGNoLCBibG9j
a19pdCk6Ci0gICAgcGtnX3Jlc291cmNlcyA9IHB5dGVzdC5pbXBvcnRvcnNraXAoInBrZ19yZXNv
dXJjZXMiKQorICAgIG1vbmtleXBhdGNoLmRlbGVudigiUFlURVNUX0RJU0FCTEVfUExVR0lOX0FV
VE9MT0FEIiwgcmFpc2luZz1GYWxzZSkKIAogICAgIHBsdWdpbl9tb2R1bGVfcGxhY2Vob2xkZXIg
PSBvYmplY3QoKQogCi0gICAgZGVmIG15X2l0ZXIobmFtZSk6Ci0gICAgICAgIGFzc2VydCBuYW1l
ID09ICJweXRlc3QxMSIKLQotICAgICAgICBjbGFzcyBEaXN0KG9iamVjdCk6Ci0gICAgICAgICAg
ICBwcm9qZWN0X25hbWUgPSAic3BhbSIKLSAgICAgICAgICAgIHZlcnNpb24gPSAiMS4wIgorICAg
IGNsYXNzIER1bW15RW50cnlQb2ludChvYmplY3QpOgorICAgICAgICBuYW1lID0gIm15dGVzdHBs
dWdpbiIKKyAgICAgICAgZ3JvdXAgPSAicHl0ZXN0MTEiCiAKLSAgICAgICAgICAgIGRlZiBfZ2V0
X21ldGFkYXRhKHNlbGYsIG5hbWUpOgotICAgICAgICAgICAgICAgIHJldHVybiBbImZvby50eHQs
c2hhMjU2PWFiYywxMjMiXQorICAgICAgICBkZWYgbG9hZChzZWxmKToKKyAgICAgICAgICAgIHJl
dHVybiBwbHVnaW5fbW9kdWxlX3BsYWNlaG9sZGVyCiAKLSAgICAgICAgY2xhc3MgRW50cnlQb2lu
dChvYmplY3QpOgotICAgICAgICAgICAgbmFtZSA9ICJteXRlc3RwbHVnaW4iCi0gICAgICAgICAg
ICBkaXN0ID0gRGlzdCgpCisgICAgY2xhc3MgRGlzdHJpYnV0aW9uKG9iamVjdCk6CisgICAgICAg
IHZlcnNpb24gPSAiMS4wIgorICAgICAgICBmaWxlcyA9ICgiZm9vLnR4dCIsKQorICAgICAgICBl
bnRyeV9wb2ludHMgPSAoRHVtbXlFbnRyeVBvaW50KCksKQogCi0gICAgICAgICAgICBkZWYgbG9h
ZChzZWxmKToKLSAgICAgICAgICAgICAgICByZXR1cm4gcGx1Z2luX21vZHVsZV9wbGFjZWhvbGRl
cgorICAgIGRlZiBkaXN0cmlidXRpb25zKCk6CisgICAgICAgIHJldHVybiAoRGlzdHJpYnV0aW9u
KCksKQogCi0gICAgICAgIHJldHVybiBpdGVyKFtFbnRyeVBvaW50KCldKQotCi0gICAgbW9ua2V5
cGF0Y2guc2V0YXR0cihwa2dfcmVzb3VyY2VzLCAiaXRlcl9lbnRyeV9wb2ludHMiLCBteV9pdGVy
KQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIoaW1wb3J0bGliX21ldGFkYXRhLCAiZGlzdHJpYnV0
aW9ucyIsIGRpc3RyaWJ1dGlvbnMpCiAgICAgYXJncyA9ICgiLXAiLCAibm86bXl0ZXN0cGx1Z2lu
IikgaWYgYmxvY2tfaXQgZWxzZSAoKQogICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWco
KmFyZ3MpCiAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIuaW1wb3J0X3BsdWdpbigibXl0ZXN0cGx1
Z2luIikKQEAgLTYwNiw5ICs2NTEsMzkgQEAgZGVmIHRlc3RfcGx1Z2luX3ByZXBhcnNlX3ByZXZl
bnRzX3NldHVwdG9vbHNfbG9hZGluZyh0ZXN0ZGlyLCBtb25rZXlwYXRjaCwgYmxvY2sKICAgICAg
ICAgYXNzZXJ0ICJteXRlc3RwbHVnaW4iIG5vdCBpbiBzeXMubW9kdWxlcwogICAgICAgICBhc3Nl
cnQgY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigibXl0ZXN0cGx1Z2luIikgaXMgTm9u
ZQogICAgIGVsc2U6Ci0gICAgICAgIGFzc2VydCBjb25maWcucGx1Z2lubWFuYWdlci5nZXRfcGx1
Z2luKAotICAgICAgICAgICAgIm15dGVzdHBsdWdpbiIKLSAgICAgICAgKSBpcyBwbHVnaW5fbW9k
dWxlX3BsYWNlaG9sZGVyCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICBjb25maWcucGx1
Z2lubWFuYWdlci5nZXRfcGx1Z2luKCJteXRlc3RwbHVnaW4iKSBpcyBwbHVnaW5fbW9kdWxlX3Bs
YWNlaG9sZGVyCisgICAgICAgICkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisgICAg
InBhcnNlX2FyZ3Msc2hvdWxkX2xvYWQiLCBbKCgiLXAiLCAibXl0ZXN0cGx1Z2luIiksIFRydWUp
LCAoKCksIEZhbHNlKV0KKykKK2RlZiB0ZXN0X2Rpc2FibGVfcGx1Z2luX2F1dG9sb2FkKHRlc3Rk
aXIsIG1vbmtleXBhdGNoLCBwYXJzZV9hcmdzLCBzaG91bGRfbG9hZCk6CisgICAgY2xhc3MgRHVt
bXlFbnRyeVBvaW50KG9iamVjdCk6CisgICAgICAgIHByb2plY3RfbmFtZSA9IG5hbWUgPSAibXl0
ZXN0cGx1Z2luIgorICAgICAgICBncm91cCA9ICJweXRlc3QxMSIKKyAgICAgICAgdmVyc2lvbiA9
ICIxLjAiCisKKyAgICAgICAgZGVmIGxvYWQoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gc3lz
Lm1vZHVsZXNbc2VsZi5uYW1lXQorCisgICAgY2xhc3MgRGlzdHJpYnV0aW9uKG9iamVjdCk6Cisg
ICAgICAgIGVudHJ5X3BvaW50cyA9IChEdW1teUVudHJ5UG9pbnQoKSwpCisgICAgICAgIGZpbGVz
ID0gKCkKKworICAgIGNsYXNzIFBzZXVkb1BsdWdpbihvYmplY3QpOgorICAgICAgICB4ID0gNDIK
KworICAgIGRlZiBkaXN0cmlidXRpb25zKCk6CisgICAgICAgIHJldHVybiAoRGlzdHJpYnV0aW9u
KCksKQorCisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRFU1RfRElTQUJMRV9QTFVHSU5fQVVU
T0xPQUQiLCAiMSIpCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihpbXBvcnRsaWJfbWV0YWRhdGEs
ICJkaXN0cmlidXRpb25zIiwgZGlzdHJpYnV0aW9ucykKKyAgICBtb25rZXlwYXRjaC5zZXRpdGVt
KHN5cy5tb2R1bGVzLCAibXl0ZXN0cGx1Z2luIiwgUHNldWRvUGx1Z2luKCkpCisgICAgY29uZmln
ID0gdGVzdGRpci5wYXJzZWNvbmZpZygqcGFyc2VfYXJncykKKyAgICBoYXNfbG9hZGVkID0gY29u
ZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigibXl0ZXN0cGx1Z2luIikgaXMgbm90IE5vbmUK
KyAgICBhc3NlcnQgaGFzX2xvYWRlZCA9PSBzaG91bGRfbG9hZAogCiAKIGRlZiB0ZXN0X2NtZGxp
bmVfcHJvY2Vzc2FyZ3Nfc2ltcGxlKHRlc3RkaXIpOgpAQCAtNjUwLDkgKzcyNSw5IEBAIGRlZiB0
ZXN0X2ludmFsaWRfb3B0aW9uc19zaG93X2V4dHJhX2luZm9ybWF0aW9uKHRlc3RkaXIpOgogICAg
ICAgICBbIi12IiwgImRpcjIiLCAiZGlyMSJdLAogICAgIF0sCiApCi1kZWYgdGVzdF9jb25zaWRl
cl9hcmdzX2FmdGVyX29wdGlvbnNfZm9yX3Jvb3RkaXJfYW5kX2luaWZpbGUodGVzdGRpciwgYXJn
cyk6CitkZWYgdGVzdF9jb25zaWRlcl9hcmdzX2FmdGVyX29wdGlvbnNfZm9yX3Jvb3RkaXIodGVz
dGRpciwgYXJncyk6CiAgICAgIiIiCi0gICAgQ29uc2lkZXIgYWxsIGFyZ3VtZW50cyBpbiB0aGUg
Y29tbWFuZC1saW5lIGZvciByb290ZGlyIGFuZCBpbmlmaWxlCisgICAgQ29uc2lkZXIgYWxsIGFy
Z3VtZW50cyBpbiB0aGUgY29tbWFuZC1saW5lIGZvciByb290ZGlyCiAgICAgZGlzY292ZXJ5LCBl
dmVuIGlmIHRoZXkgaGFwcGVuIHRvIG9jY3VyIGFmdGVyIGFuIG9wdGlvbi4gIzk0OQogICAgICIi
IgogICAgICMgcmVwbGFjZSAiZGlyMSIgYW5kICJkaXIyIiBmcm9tICJhcmdzIiBpbnRvIHRoZWly
IHJlYWwgZGlyZWN0b3J5CkBAIC02NjYsNyArNzQxLDcgQEAgZGVmIHRlc3RfY29uc2lkZXJfYXJn
c19hZnRlcl9vcHRpb25zX2Zvcl9yb290ZGlyX2FuZF9pbmlmaWxlKHRlc3RkaXIsIGFyZ3MpOgog
ICAgICAgICAgICAgYXJnc1tpXSA9IGQyCiAgICAgd2l0aCByb290LmFzX2N3ZCgpOgogICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgqYXJncykKLSAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIqcm9vdGRpcjogKm15cm9vdCwgaW5pZmlsZToiXSkKKyAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqcm9vdGRpcjogKm15cm9vdCJdKQogCiAKIEBweXRlc3Qu
bWFyay5za2lwaWYoInN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIikKQEAgLTY5MCwxMCArNzY1LDEw
IEBAIGRlZiB0ZXN0X2NvbmZpZ19pbl9zdWJkaXJlY3RvcnlfY29sb25fY29tbWFuZF9saW5lX2lz
c3VlMjE0OCh0ZXN0ZGlyKToKICAgICAgICAgKip7CiAgICAgICAgICAgICAiY29uZnRlc3QiOiBj
b25mdGVzdF9zb3VyY2UsCiAgICAgICAgICAgICAic3ViZGlyL2NvbmZ0ZXN0IjogY29uZnRlc3Rf
c291cmNlLAotICAgICAgICAgICAgInN1YmRpci90ZXN0X2ZvbyI6ICIiIgorICAgICAgICAgICAg
InN1YmRpci90ZXN0X2ZvbyI6ICIiIlwKICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhweXRlc3Rj
b25maWcpOgogICAgICAgICAgICAgICAgIGFzc2VydCBweXRlc3Rjb25maWcuZ2V0aW5pKCdmb28n
KSA9PSAnc3ViZGlyJwotICAgICAgICAiIiIsCisgICAgICAgICAgICAiIiIsCiAgICAgICAgIH0K
ICAgICApCiAKQEAgLTcwMywyOSArNzc4LDM5IEBAIGRlZiB0ZXN0X2NvbmZpZ19pbl9zdWJkaXJl
Y3RvcnlfY29sb25fY29tbWFuZF9saW5lX2lzc3VlMjE0OCh0ZXN0ZGlyKToKIAogZGVmIHRlc3Rf
bm90aWZ5X2V4Y2VwdGlvbih0ZXN0ZGlyLCBjYXBmZCk6CiAgICAgY29uZmlnID0gdGVzdGRpci5w
YXJzZWNvbmZpZygpCi0gICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgInJh
aXNlIFZhbHVlRXJyb3IoMSkiKQotICAgIGNvbmZpZy5ub3RpZnlfZXhjZXB0aW9uKGV4Y2luZm8p
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpIGFzIGV4Y2luZm86CisgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoMSkKKyAgICBjb25maWcubm90aWZ5X2V4Y2VwdGlvbihleGNpbmZv
LCBjb25maWcub3B0aW9uKQogICAgIG91dCwgZXJyID0gY2FwZmQucmVhZG91dGVycigpCiAgICAg
YXNzZXJ0ICJWYWx1ZUVycm9yIiBpbiBlcnIKIAogICAgIGNsYXNzIEEob2JqZWN0KToKLQogICAg
ICAgICBkZWYgcHl0ZXN0X2ludGVybmFsZXJyb3Ioc2VsZiwgZXhjcmVwcik6CiAgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQogCiAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoQSgpKQot
ICAgIGNvbmZpZy5ub3RpZnlfZXhjZXB0aW9uKGV4Y2luZm8pCisgICAgY29uZmlnLm5vdGlmeV9l
eGNlcHRpb24oZXhjaW5mbywgY29uZmlnLm9wdGlvbikKICAgICBvdXQsIGVyciA9IGNhcGZkLnJl
YWRvdXRlcnIoKQogICAgIGFzc2VydCBub3QgZXJyCiAKKyAgICBjb25maWcgPSB0ZXN0ZGlyLnBh
cnNlY29uZmlnKCItcCIsICJubzp0ZXJtaW5hbCIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFZh
bHVlRXJyb3IpIGFzIGV4Y2luZm86CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoMSkKKyAgICBj
b25maWcubm90aWZ5X2V4Y2VwdGlvbihleGNpbmZvLCBjb25maWcub3B0aW9uKQorICAgIG91dCwg
ZXJyID0gY2FwZmQucmVhZG91dGVycigpCisgICAgYXNzZXJ0ICJWYWx1ZUVycm9yIiBpbiBlcnIK
KwogCi1kZWYgdGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RfbGFzdF9vcmRlcmluZyh0ZXN0ZGly
KToKLSAgICBmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBnZXRfY29uZmlnCitkZWYgdGVzdF9u
b190ZXJtaW5hbF9kaXNjb3ZlcnlfZXJyb3IodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCJyYWlzZSBUeXBlRXJyb3IoJ29vcHMhJykiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItcCIsICJubzp0ZXJtaW5hbCIsICItLWNvbGxlY3Qtb25seSIpCisgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gRVhJVF9JTlRFUlJVUFRFRAogCi0gICAgcG0gPSBnZXRfY29uZmlnKCku
cGx1Z2lubWFuYWdlcgogCi0gICAgY2xhc3MgTXkob2JqZWN0KToKK2RlZiB0ZXN0X2xvYWRfaW5p
dGlhbF9jb25mdGVzdF9sYXN0X29yZGVyaW5nKHRlc3RkaXIsIF9jb25maWdfZm9yX3Rlc3QpOgor
ICAgIHBtID0gX2NvbmZpZ19mb3JfdGVzdC5wbHVnaW5tYW5hZ2VyCiAKKyAgICBjbGFzcyBNeShv
YmplY3QpOgogICAgICAgICBkZWYgcHl0ZXN0X2xvYWRfaW5pdGlhbF9jb25mdGVzdHMoc2VsZik6
CiAgICAgICAgICAgICBwYXNzCiAKQEAgLTc1Myw1OCArODM4LDI1IEBAIGRlZiB0ZXN0X2dldF9w
bHVnaW5fc3BlY3NfYXNfbGlzdCgpOgogICAgIGFzc2VydCBfZ2V0X3BsdWdpbl9zcGVjc19hc19s
aXN0KCgiZm9vIiwgImJhciIpKSA9PSBbImZvbyIsICJiYXIiXQogCiAKLWNsYXNzIFRlc3RXYXJu
aW5nKG9iamVjdCk6CitkZWYgdGVzdF9jb2xsZWN0X3B5dGVzdF9wcmVmaXhfYnVnX2ludGVncmF0
aW9uKHRlc3RkaXIpOgorICAgICIiIkludGVncmF0aW9uIHRlc3QgZm9yIGlzc3VlICMzNzc1IiIi
CisgICAgcCA9IHRlc3RkaXIuY29weV9leGFtcGxlKCJjb25maWcvY29sbGVjdF9weXRlc3RfcHJl
Zml4IikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIiogMSBwYXNzZWQgKiJdKQogCi0gICAgZGVmIHRlc3Rfd2Fybl9j
b25maWcoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAg
ICAgICAgICAgIiIiCi0gICAgICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICAgICAgZGVmIHB5
dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICAgICAgICAgICAgICBjb25maWcud2FybigiQzEi
LCAiaGVsbG8iKQotICAgICAgICAgICAgZGVmIHB5dGVzdF9sb2d3YXJuaW5nKGNvZGUsIG1lc3Nh
Z2UpOgotICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2UgPT0gImhlbGxvIiBhbmQgY29kZSA9PSAi
QzEiOgotICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCi0gICAgICAgICIiIgot
ICAgICAgICApCi0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgot
ICAgICAgICAgICAgZGVmIHRlc3RfcHJvcGVyKHB5dGVzdGNvbmZpZyk6Ci0gICAgICAgICAgICAg
ICAgaW1wb3J0IGNvbmZ0ZXN0Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGNvbmZ0ZXN0LnZhbHVl
cyA9PSBbMV0KLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCkKLSAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCi0K
LSAgICBkZWYgdGVzdF93YXJuX29uX3Rlc3RfaXRlbV9mcm9tX3JlcXVlc3Qoc2VsZiwgdGVzdGRp
ciwgcmVxdWVzdCk6Ci0gICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIi
IgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogCi0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKLSAgICAgICAgICAgIGRlZiBmaXgocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgcmVxdWVz
dC5ub2RlLndhcm4oIlQxIiwgImhlbGxvIikKK2RlZiB0ZXN0X2NvbGxlY3RfcHl0ZXN0X3ByZWZp
eF9idWcocHl0ZXN0Y29uZmlnKToKKyAgICAiIiJFbnN1cmUgd2UgY29sbGVjdCBvbmx5IGFjdHVh
bCBmdW5jdGlvbnMgZnJvbSBjb25mdGVzdCBmaWxlcyAoIzM3NzUpIiIiCiAKLSAgICAgICAgICAg
IGRlZiB0ZXN0X2hlbGxvKGZpeCk6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAiIiIK
LSAgICAgICAgKQotICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1kaXNhYmxl
LXB5dGVzdC13YXJuaW5ncyIpCi0gICAgICAgIGFzc2VydCByZXN1bHQucGFyc2VvdXRjb21lcygp
WyJ3YXJuaW5ncyJdID4gMAotICAgICAgICBhc3NlcnQgImhlbGxvIiBub3QgaW4gcmVzdWx0LnN0
ZG91dC5zdHIoKQorICAgIGNsYXNzIER1bW15KG9iamVjdCk6CisgICAgICAgIGNsYXNzIHB5dGVz
dF9zb21ldGhpbmcob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKIAotICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgPT09Kndhcm5pbmdzIHN1bW1hcnkqPT09
Ci0gICAgICAgICAgICAqdGVzdF93YXJuX29uX3Rlc3RfaXRlbV9mcm9tX3JlcXVlc3QucHk6OnRl
c3RfaGVsbG8qCi0gICAgICAgICAgICAqaGVsbG8qCi0gICAgICAgICIiIgotICAgICAgICApCisg
ICAgcG0gPSBweXRlc3Rjb25maWcucGx1Z2lubWFuYWdlcgorICAgIGFzc2VydCBwbS5wYXJzZV9o
b29raW1wbF9vcHRzKER1bW15KCksICJweXRlc3Rfc29tZXRoaW5nIikgaXMgTm9uZQogCiAKIGNs
YXNzIFRlc3RSb290ZGlyKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9zaW1wbGVfbm9pbmkoc2Vs
ZiwgdG1wZGlyKToKICAgICAgICAgYXNzZXJ0IGdldF9jb21tb25fYW5jZXN0b3IoW3RtcGRpcl0p
ID09IHRtcGRpcgogICAgICAgICBhID0gdG1wZGlyLm1rZGlyKCJhIikKQEAgLTgxOSw3ICs4NzEs
NyBAQCBjbGFzcyBUZXN0Um9vdGRpcihvYmplY3QpOgogICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgibmFtZSIsICJzZXR1cC5jZmcgdG94LmluaSBweXRlc3QuaW5pIi5zcGxpdCgpKQogICAg
IGRlZiB0ZXN0X3dpdGhfaW5pKHNlbGYsIHRtcGRpciwgbmFtZSk6CiAgICAgICAgIGluaWZpbGUg
PSB0bXBkaXIuam9pbihuYW1lKQotICAgICAgICBpbmlmaWxlLndyaXRlKCJbcHl0ZXN0XVxuIikK
KyAgICAgICAgaW5pZmlsZS53cml0ZSgiW3B5dGVzdF1cbiIgaWYgbmFtZSAhPSAic2V0dXAuY2Zn
IiBlbHNlICJbdG9vbDpweXRlc3RdXG4iKQogCiAgICAgICAgIGEgPSB0bXBkaXIubWtkaXIoImEi
KQogICAgICAgICBiID0gYS5ta2RpcigiYiIpCkBAIC04MzIsNyArODg0LDcgQEAgY2xhc3MgVGVz
dFJvb3RkaXIob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IGluaWZpbGUgPT0gaW5pZmlsZQogCiAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJuYW1lIiwgInNldHVwLmNmZyB0b3guaW5pIi5z
cGxpdCgpKQotICAgIGRlZiB0ZXN0X3B5dGVzdGluaV9vdmVyaWRlc19lbXB0eV9vdGhlcihzZWxm
LCB0bXBkaXIsIG5hbWUpOgorICAgIGRlZiB0ZXN0X3B5dGVzdGluaV9vdmVycmlkZXNfZW1wdHlf
b3RoZXIoc2VsZiwgdG1wZGlyLCBuYW1lKToKICAgICAgICAgaW5pZmlsZSA9IHRtcGRpci5lbnN1
cmUoInB5dGVzdC5pbmkiKQogICAgICAgICBhID0gdG1wZGlyLm1rZGlyKCJhIikKICAgICAgICAg
YS5lbnN1cmUobmFtZSkKQEAgLTg2MywxNCArOTE1LDE2IEBAIGNsYXNzIFRlc3RSb290ZGlyKG9i
amVjdCk6CiAKIAogY2xhc3MgVGVzdE92ZXJyaWRlSW5pQXJncyhvYmplY3QpOgotCiAgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJuYW1lIiwgInNldHVwLmNmZyB0b3guaW5pIHB5dGVzdC5p
bmkiLnNwbGl0KCkpCiAgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfaW5pX25hbWVzKHNlbGYsIHRlc3Rk
aXIsIG5hbWUpOgorICAgICAgICBzZWN0aW9uID0gIltweXRlc3RdIiBpZiBuYW1lICE9ICJzZXR1
cC5jZmciIGVsc2UgIlt0b29sOnB5dGVzdF0iCiAgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4o
bmFtZSkud3JpdGUoCiAgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCiAgICAgICAgICAgICAg
ICAgIiIiCi0gICAgICAgICAgICBbcHl0ZXN0XQotICAgICAgICAgICAgY3VzdG9tID0gMS4wIiIi
CisgICAgICAgICAgICB7c2VjdGlvbn0KKyAgICAgICAgICAgIGN1c3RvbSA9IDEuMCIiIi5mb3Jt
YXQoCisgICAgICAgICAgICAgICAgICAgIHNlY3Rpb249c2VjdGlvbgorICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVz
dCgKQEAgLTEwMjYsMjAgKzEwODAsNDQgQEAgY2xhc3MgVGVzdE92ZXJyaWRlSW5pQXJncyhvYmpl
Y3QpOgogICAgICAgICAgICAgYXNzZXJ0IHJvb3RkaXIgPT0gdG1wZGlyCiAgICAgICAgICAgICBh
c3NlcnQgaW5pZmlsZSBpcyBOb25lCiAKLSAgICBkZWYgdGVzdF9hZGRvcHRzX2JlZm9yZV9pbml0
aW5pKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICBkZWYgdGVzdF9hZGRvcHRzX2JlZm9yZV9pbml0
aW5pKHNlbGYsIG1vbmtleXBhdGNoLCBfY29uZmlnX2Zvcl90ZXN0LCBfc3lzX3NuYXBzaG90KToK
ICAgICAgICAgY2FjaGVfZGlyID0gIi5jdXN0b21fY2FjaGUiCiAgICAgICAgIG1vbmtleXBhdGNo
LnNldGVudigiUFlURVNUX0FERE9QVFMiLCAiLW8gY2FjaGVfZGlyPSVzIiAlIGNhY2hlX2RpcikK
LSAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgZ2V0X2NvbmZpZwotCi0gICAgICAg
IGNvbmZpZyA9IGdldF9jb25maWcoKQorICAgICAgICBjb25maWcgPSBfY29uZmlnX2Zvcl90ZXN0
CiAgICAgICAgIGNvbmZpZy5fcHJlcGFyc2UoW10sIGFkZG9wdHM9VHJ1ZSkKICAgICAgICAgYXNz
ZXJ0IGNvbmZpZy5fb3ZlcnJpZGVfaW5pID09IFsiY2FjaGVfZGlyPSVzIiAlIGNhY2hlX2Rpcl0K
IAotICAgIGRlZiB0ZXN0X292ZXJyaWRlX2luaV9kb2VzX25vdF9jb250YWluX3BhdGhzKHNlbGYp
OgotICAgICAgICAiIiJDaGVjayB0aGF0IC1vIG5vIGxvbmdlciBzd2FsbG93cyBhbGwgb3B0aW9u
cyBhZnRlciBpdCAoIzMxMDMpIiIiCi0gICAgICAgIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0
IGdldF9jb25maWcKKyAgICBkZWYgdGVzdF9hZGRvcHRzX2Zyb21fZW52X25vdF9jb25jYXRlbmF0
ZWQoc2VsZiwgbW9ua2V5cGF0Y2gsIF9jb25maWdfZm9yX3Rlc3QpOgorICAgICAgICAiIiJQWVRF
U1RfQURET1BUUyBzaG91bGQgbm90IHRha2UgdmFsdWVzIGZyb20gbm9ybWFsIGFyZ3MgKCM0MjY1
KS4iIiIKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRFU1RfQURET1BUUyIsICItbyIp
CisgICAgICAgIGNvbmZpZyA9IF9jb25maWdfZm9yX3Rlc3QKKyAgICAgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKFVzYWdlRXJyb3IpIGFzIGV4Y2luZm86CisgICAgICAgICAgICBjb25maWcuX3ByZXBh
cnNlKFsiY2FjaGVfZGlyPWlnbm9yZWQiXSwgYWRkb3B0cz1UcnVlKQorICAgICAgICBhc3NlcnQg
KAorICAgICAgICAgICAgImVycm9yOiBhcmd1bWVudCAtby8tLW92ZXJyaWRlLWluaTogZXhwZWN0
ZWQgb25lIGFyZ3VtZW50ICh2aWEgUFlURVNUX0FERE9QVFMpIgorICAgICAgICAgICAgaW4gZXhj
aW5mby52YWx1ZS5hcmdzWzBdCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2FkZG9wdHNfZnJv
bV9pbmlfbm90X2NvbmNhdGVuYXRlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiYWRkb3B0
cyBmcm9tIGluaSBzaG91bGQgbm90IHRha2UgdmFsdWVzIGZyb20gbm9ybWFsIGFyZ3MgKCM0MjY1
KS4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAgICAgIiIiCisgICAgICAg
ICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgYWRkb3B0cz0tbworICAgICAgICAiIiIKKyAgICAg
ICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiY2FjaGVfZGlyPWlnbm9y
ZWQiKQorICAgICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBb
CisgICAgICAgICAgICAgICAgIiVzOiBlcnJvcjogYXJndW1lbnQgLW8vLS1vdmVycmlkZS1pbmk6
IGV4cGVjdGVkIG9uZSBhcmd1bWVudCAodmlhIGFkZG9wdHMgY29uZmlnKSIKKyAgICAgICAgICAg
ICAgICAlICh0ZXN0ZGlyLnJlcXVlc3QuY29uZmlnLl9wYXJzZXIub3B0cGFyc2VyLnByb2csKQor
ICAgICAgICAgICAgXQorICAgICAgICApCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IF9w
eXRlc3QubWFpbi5FWElUX1VTQUdFRVJST1IKIAotICAgICAgICBjb25maWcgPSBnZXRfY29uZmln
KCkKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9pbmlfZG9lc19ub3RfY29udGFpbl9wYXRocyhzZWxm
LCBfY29uZmlnX2Zvcl90ZXN0LCBfc3lzX3NuYXBzaG90KToKKyAgICAgICAgIiIiQ2hlY2sgdGhh
dCAtbyBubyBsb25nZXIgc3dhbGxvd3MgYWxsIG9wdGlvbnMgYWZ0ZXIgaXQgKCMzMTAzKSIiIgor
ICAgICAgICBjb25maWcgPSBfY29uZmlnX2Zvcl90ZXN0CiAgICAgICAgIGNvbmZpZy5fcHJlcGFy
c2UoWyItbyIsICJjYWNoZV9kaXI9L2NhY2hlIiwgIi9zb21lL3Rlc3QvcGF0aCJdKQogICAgICAg
ICBhc3NlcnQgY29uZmlnLl9vdmVycmlkZV9pbmkgPT0gWyJjYWNoZV9kaXI9L2NhY2hlIl0KIApA
QCAtMTA2NiwzICsxMTQ0LDE0OCBAQCBjbGFzcyBUZXN0T3ZlcnJpZGVJbmlBcmdzKG9iamVjdCk6
CiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItbyIsICJmb289MSIsICItbyIs
ICJiYXI9MCIsICJ0ZXN0X2Zvby5weSIpCiAgICAgICAgIGFzc2VydCAiRVJST1I6IiBub3QgaW4g
cmVzdWx0LnN0ZGVyci5zdHIoKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WyJjb2xsZWN0ZWQgMSBpdGVtIiwgIio9IDEgcGFzc2VkIGluICo9Il0pCisKKworZGVmIHRlc3Rf
aGVscF92aWFfYWRkb3B0cyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAg
ICIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBhZGRvcHRzID0gLS11bmtub3duLW9wdGlv
bi1zaG91bGQtYWxsb3ctZm9yLWhlbHAgLS1oZWxwCisgICAgIiIiCisgICAgKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAidXNh
Z2U6ICoiLAorICAgICAgICAgICAgInBvc2l0aW9uYWwgYXJndW1lbnRzOiIsCisgICAgICAgICAg
ICAjIERpc3BsYXlzIGZ1bGwvZGVmYXVsdCBoZWxwLgorICAgICAgICAgICAgInRvIHNlZSBhdmFp
bGFibGUgbWFya2VycyB0eXBlOiBweXRlc3QgLS1tYXJrZXJzIiwKKyAgICAgICAgXQorICAgICkK
KworCitkZWYgdGVzdF9oZWxwX2FuZF92ZXJzaW9uX2FmdGVyX2FyZ3VtZW50X2Vycm9yKHRlc3Rk
aXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAiIiIKKyAgICAgICAgZGVm
IHZhbGlkYXRlKGFyZyk6CisgICAgICAgICAgICByYWlzZSBhcmdwYXJzZS5Bcmd1bWVudFR5cGVF
cnJvcigiYXJnZXJyb3IiKQorCisgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6
CisgICAgICAgICAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgnY292JykKKyAgICAgICAgICAg
IGdyb3VwLmFkZG9wdGlvbigKKyAgICAgICAgICAgICAgICAiLS1pbnZhbGlkLW9wdGlvbi1zaG91
bGQtYWxsb3ctZm9yLWhlbHAiLAorICAgICAgICAgICAgICAgIHR5cGU9dmFsaWRhdGUsCisgICAg
ICAgICAgICApCisgICAgICAgICIiIgorICAgICkKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAg
ICAgICIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBhZGRvcHRzID0gLS1pbnZhbGlkLW9w
dGlvbi1zaG91bGQtYWxsb3ctZm9yLWhlbHAKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi0taGVscCIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKAorICAgICAgICBbCisgICAgICAgICAgICAidXNhZ2U6ICoiLAorICAgICAgICAgICAgInBv
c2l0aW9uYWwgYXJndW1lbnRzOiIsCisgICAgICAgICAgICAiTk9URTogZGlzcGxheWluZyBvbmx5
IG1pbmltYWwgaGVscCBkdWUgdG8gVXNhZ2VFcnJvci4iLAorICAgICAgICBdCisgICAgKQorICAg
IHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWworICAgICAgICAgICAgIkVS
Uk9SOiB1c2FnZTogKiIsCisgICAgICAgICAgICAiJXM6IGVycm9yOiBhcmd1bWVudCAtLWludmFs
aWQtb3B0aW9uLXNob3VsZC1hbGxvdy1mb3ItaGVscDogZXhwZWN0ZWQgb25lIGFyZ3VtZW50Igor
ICAgICAgICAgICAgJSAodGVzdGRpci5yZXF1ZXN0LmNvbmZpZy5fcGFyc2VyLm9wdHBhcnNlci5w
cm9nLCksCisgICAgICAgIF0KKyAgICApCisgICAgIyBEb2VzIG5vdCBkaXNwbGF5IGZ1bGwvZGVm
YXVsdCBoZWxwLgorICAgIGFzc2VydCAidG8gc2VlIGF2YWlsYWJsZSBtYXJrZXJzIHR5cGU6IHB5
dGVzdCAtLW1hcmtlcnMiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LmxpbmVzCisgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgPT0gRVhJVF9VU0FHRUVSUk9SCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLS12ZXJzaW9uIikKKyAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoCisgICAg
ICAgIFsiKnB5dGVzdCp7fSppbXBvcnRlZCBmcm9tKiIuZm9ybWF0KHB5dGVzdC5fX3ZlcnNpb25f
XyldCisgICAgKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfVVNBR0VFUlJPUgorCisK
K2RlZiB0ZXN0X2NvbmZpZ19kb2VzX25vdF9sb2FkX2Jsb2NrZWRfcGx1Z2luX2Zyb21fYXJncyh0
ZXN0ZGlyKToKKyAgICAiIiJUaGlzIHRlc3RzIHRoYXQgcHl0ZXN0J3MgY29uZmlnIHNldHVwIGhh
bmRsZXMgIi1wIG5vOlgiLiIiIgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0
KGNhcGZkKTogcGFzcyIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qoc3RyKHApLCAi
LXBubzpjYXB0dXJlIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJFICAgICAg
IGZpeHR1cmUgJ2NhcGZkJyBub3QgZm91bmQiXSkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBF
WElUX1RFU1RTRkFJTEVECisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChzdHIocCks
ICItcG5vOmNhcHR1cmUiLCAiLXMiKQorICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhb
Iio6IGVycm9yOiB1bnJlY29nbml6ZWQgYXJndW1lbnRzOiAtcyJdKQorICAgIGFzc2VydCByZXN1
bHQucmV0ID09IEVYSVRfVVNBR0VFUlJPUgorCisKK2RlZiB0ZXN0X2ludm9jYXRpb25fYXJncyh0
ZXN0ZGlyKToKKyAgICAiIiJFbnN1cmUgdGhhdCBDb25maWcuaW52b2NhdGlvbl8qIGFyZ3VtZW50
cyBhcmUgY29ycmVjdGx5IGRlZmluZWQiIiIKKworICAgIGNsYXNzIER1bW15UGx1Z2luKG9iamVj
dCk6CisgICAgICAgIHBhc3MKKworICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0
KCk6IHBhc3MiKQorICAgIHBsdWdpbiA9IER1bW15UGx1Z2luKCkKKyAgICByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4ocCwgIi12IiwgcGx1Z2lucz1bcGx1Z2luXSkKKyAgICBjYWxscyA9IHJlYy5n
ZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2wiKQorICAgIGFzc2VydCBsZW4oY2FsbHMp
ID09IDEKKyAgICBjYWxsID0gY2FsbHNbMF0KKyAgICBjb25maWcgPSBjYWxsLml0ZW0uY29uZmln
CisKKyAgICBhc3NlcnQgY29uZmlnLmludm9jYXRpb25fcGFyYW1zLmFyZ3MgPT0gW3AsICItdiJd
CisgICAgYXNzZXJ0IGNvbmZpZy5pbnZvY2F0aW9uX3BhcmFtcy5kaXIgPT0gUGF0aChzdHIodGVz
dGRpci50bXBkaXIpKQorCisgICAgcGx1Z2lucyA9IGNvbmZpZy5pbnZvY2F0aW9uX3BhcmFtcy5w
bHVnaW5zCisgICAgYXNzZXJ0IGxlbihwbHVnaW5zKSA9PSAyCisgICAgYXNzZXJ0IHBsdWdpbnNb
MF0gaXMgcGx1Z2luCisgICAgYXNzZXJ0IHR5cGUocGx1Z2luc1sxXSkuX19uYW1lX18gPT0gIkNv
bGxlY3QiICAjIGluc3RhbGxlZCBieSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorCisKK0BweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgKKyAgICAicGx1Z2luIiwKKyAgICBbCisgICAgICAgIHgKKyAgICAg
ICAgZm9yIHggaW4gX3B5dGVzdC5jb25maWcuZGVmYXVsdF9wbHVnaW5zCisgICAgICAgIGlmIHgg
bm90IGluIF9weXRlc3QuY29uZmlnLmVzc2VudGlhbF9wbHVnaW5zCisgICAgXSwKKykKK2RlZiB0
ZXN0X2NvbmZpZ19ibG9ja2VkX2RlZmF1bHRfcGx1Z2lucyh0ZXN0ZGlyLCBwbHVnaW4pOgorICAg
IGlmIHBsdWdpbiA9PSAiZGVidWdnaW5nIjoKKyAgICAgICAgIyBGaXhlZCBpbiB4ZGlzdCBtYXN0
ZXIgKGFmdGVyIDEuMjcuMCkuCisgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0LXhkaXN0L3B1bGwvNDIyCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGltcG9y
dCB4ZGlzdCAgIyBub3FhOiBGNDAxCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKCJkb2Vz
IG5vdCB3b3JrIHdpdGggeGRpc3QgY3VycmVudGx5IikKKworICAgIHAgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoImRlZiB0ZXN0KCk6IHBhc3MiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KHN0cihwKSwgIi1wbm86JXMiICUgcGx1Z2luKQorCisgICAgaWYgcGx1Z2luID09ICJweXRob24i
OgorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX1VTQUdFRVJST1IKKyAgICAgICAg
cmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAgICAg
ICAgICJFUlJPUjogbm90IGZvdW5kOiAqL3Rlc3RfY29uZmlnX2Jsb2NrZWRfZGVmYXVsdF9wbHVn
aW5zLnB5IiwKKyAgICAgICAgICAgICAgICAiKG5vIG5hbWUgJyovdGVzdF9jb25maWdfYmxvY2tl
ZF9kZWZhdWx0X3BsdWdpbnMucHknIGluIGFueSBvZiBbXSkiLAorICAgICAgICAgICAgXQorICAg
ICAgICApCisgICAgICAgIHJldHVybgorCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9P
SworICAgIGlmIHBsdWdpbiAhPSAidGVybWluYWwiOgorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIqIDEgcGFzc2VkIGluICoiXSkKKworICAgIHAgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoImRlZiB0ZXN0KCk6IGFzc2VydCAwIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdChzdHIocCksICItcG5vOiVzIiAlIHBsdWdpbikKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSBFWElUX1RFU1RTRkFJTEVECisgICAgaWYgcGx1Z2luICE9ICJ0ZXJtaW5hbCI6CisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMSBmYWlsZWQgaW4gKiJdKQorICAgIGVs
c2U6CisgICAgICAgIGFzc2VydCByZXN1bHQuc3Rkb3V0LmxpbmVzID09IFsiIl0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9jb25mdGVzdC5weQppbmRleCA2MWI2NDA5NzZmMTE5NWUyYTUxMWM2ZTJlNjY4
MGVkYmQ2ODJjMzUxLi5mOGUzZGZhOTJlNGFiMjQ4Y2Y5NmZkN2M3YjZkZWQ0YzAxMmEyZmM5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY29uZnRlc3QucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbmZ0ZXN0LnB5CkBAIC0xLDI0ICsxLDE3IEBACi1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCi1mcm9tIHRleHR3cmFwIGltcG9ydCBkZWRlbnQKKyMgLSotIGNvZGluZzogdXRmLTggLSot
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgor
CitpbXBvcnQgdGV4dHdyYXAKIAotaW1wb3J0IF9weXRlc3QuX2NvZGUKIGltcG9ydCBweQorCiBp
bXBvcnQgcHl0ZXN0CiBmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBQeXRlc3RQbHVnaW5NYW5h
Z2VyCi1mcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVELCBFWElU
X1VTQUdFRVJST1IKLQotCi1AcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz1b
Imdsb2JhbCIsICJpbnBhY2thZ2UiXSkKLWRlZiBiYXNlZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0
b3J5KToKLSAgICBmcm9tIF9weXRlc3QudG1wZGlyIGltcG9ydCB0bXBkaXIKLQotICAgIHRtcGRp
ciA9IHRtcGRpcihyZXF1ZXN0LCB0bXBkaXJfZmFjdG9yeSkKLSAgICB0bXBkaXIuZW5zdXJlKCJh
ZGlyL2NvbmZ0ZXN0LnB5Iikud3JpdGUoImE9MSA7IERpcmVjdG9yeSA9IDMiKQotICAgIHRtcGRp
ci5lbnN1cmUoImFkaXIvYi9jb25mdGVzdC5weSIpLndyaXRlKCJiPTIgOyBhID0gMS41IikKLSAg
ICBpZiByZXF1ZXN0LnBhcmFtID09ICJpbnBhY2thZ2UiOgotICAgICAgICB0bXBkaXIuZW5zdXJl
KCJhZGlyL19faW5pdF9fLnB5IikKLSAgICAgICAgdG1wZGlyLmVuc3VyZSgiYWRpci9iL19faW5p
dF9fLnB5IikKLSAgICByZXR1cm4gdG1wZGlyCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJ
VF9OT1RFU1RTQ09MTEVDVEVECitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9PSworZnJv
bSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfVVNBR0VFUlJPUgogCiAKIGRlZiBDb25mdGVzdFdp
dGhTZXRpbml0aWFsKHBhdGgpOgpAQCAtMjgsMTggKzIxLDI4IEBAIGRlZiBDb25mdGVzdFdpdGhT
ZXRpbml0aWFsKHBhdGgpOgogCiAKIGRlZiBjb25mdGVzdF9zZXRpbml0aWFsKGNvbmZ0ZXN0LCBh
cmdzLCBjb25mY3V0ZGlyPU5vbmUpOgotCiAgICAgY2xhc3MgTmFtZXNwYWNlKG9iamVjdCk6Ci0K
ICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICAgICAgc2VsZi5maWxlX29yX2Rp
ciA9IGFyZ3MKICAgICAgICAgICAgIHNlbGYuY29uZmN1dGRpciA9IHN0cihjb25mY3V0ZGlyKQog
ICAgICAgICAgICAgc2VsZi5ub2NvbmZ0ZXN0ID0gRmFsc2UKKyAgICAgICAgICAgIHNlbGYucHlh
cmdzID0gRmFsc2UKIAogICAgIGNvbmZ0ZXN0Ll9zZXRfaW5pdGlhbF9jb25mdGVzdHMoTmFtZXNw
YWNlKCkpCiAKIAorQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCJfc3lzX3NuYXBzaG90IikKIGNs
YXNzIFRlc3RDb25mdGVzdFZhbHVlQWNjZXNzR2xvYmFsKG9iamVjdCk6CisgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9WyJnbG9iYWwiLCAiaW5wYWNrYWdlIl0pCisg
ICAgZGVmIGJhc2VkaXIoc2VsZiwgcmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpOgorICAgICAgICB0
bXBkaXIgPSB0bXBkaXJfZmFjdG9yeS5ta3RlbXAoImJhc2VkaXIiLCBudW1iZXJlZD1UcnVlKQor
ICAgICAgICB0bXBkaXIuZW5zdXJlKCJhZGlyL2NvbmZ0ZXN0LnB5Iikud3JpdGUoImE9MSA7IERp
cmVjdG9yeSA9IDMiKQorICAgICAgICB0bXBkaXIuZW5zdXJlKCJhZGlyL2IvY29uZnRlc3QucHki
KS53cml0ZSgiYj0yIDsgYSA9IDEuNSIpCisgICAgICAgIGlmIHJlcXVlc3QucGFyYW0gPT0gImlu
cGFja2FnZSI6CisgICAgICAgICAgICB0bXBkaXIuZW5zdXJlKCJhZGlyL19faW5pdF9fLnB5IikK
KyAgICAgICAgICAgIHRtcGRpci5lbnN1cmUoImFkaXIvYi9fX2luaXRfXy5weSIpCisKKyAgICAg
ICAgeWllbGQgdG1wZGlyCiAKICAgICBkZWYgdGVzdF9iYXNpY19pbml0KHNlbGYsIGJhc2VkaXIp
OgogICAgICAgICBjb25mdGVzdCA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQpAQCAtNDgsMTQgKzUx
LDE0IEBAIGNsYXNzIFRlc3RDb25mdGVzdFZhbHVlQWNjZXNzR2xvYmFsKG9iamVjdCk6CiAKICAg
ICBkZWYgdGVzdF9pbW1lZGlhdGVfaW5pdGlhbGlhdGlvbl9hbmRfaW5jcmVtZW50YWxfYXJlX3Ro
ZV9zYW1lKHNlbGYsIGJhc2VkaXIpOgogICAgICAgICBjb25mdGVzdCA9IFB5dGVzdFBsdWdpbk1h
bmFnZXIoKQotICAgICAgICBsZW4oY29uZnRlc3QuX3BhdGgyY29uZm1vZHMpCisgICAgICAgIGFz
c2VydCBub3QgbGVuKGNvbmZ0ZXN0Ll9kaXJwYXRoMmNvbmZtb2RzKQogICAgICAgICBjb25mdGVz
dC5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGJhc2VkaXIpCi0gICAgICAgIHNuYXAxID0gbGVuKGNvbmZ0
ZXN0Ll9wYXRoMmNvbmZtb2RzKQotICAgICAgICAjIGFzc2VydCBsZW4oY29uZnRlc3QuX3BhdGgy
Y29uZm1vZHMpID09IHNuYXAxICsgMQorICAgICAgICBzbmFwMSA9IGxlbihjb25mdGVzdC5fZGly
cGF0aDJjb25mbW9kcykKKyAgICAgICAgYXNzZXJ0IHNuYXAxID09IDEKICAgICAgICAgY29uZnRl
c3QuX2dldGNvbmZ0ZXN0bW9kdWxlcyhiYXNlZGlyLmpvaW4oImFkaXIiKSkKLSAgICAgICAgYXNz
ZXJ0IGxlbihjb25mdGVzdC5fcGF0aDJjb25mbW9kcykgPT0gc25hcDEgKyAxCisgICAgICAgIGFz
c2VydCBsZW4oY29uZnRlc3QuX2RpcnBhdGgyY29uZm1vZHMpID09IHNuYXAxICsgMQogICAgICAg
ICBjb25mdGVzdC5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGJhc2VkaXIuam9pbigiYiIpKQotICAgICAg
ICBhc3NlcnQgbGVuKGNvbmZ0ZXN0Ll9wYXRoMmNvbmZtb2RzKSA9PSBzbmFwMSArIDIKKyAgICAg
ICAgYXNzZXJ0IGxlbihjb25mdGVzdC5fZGlycGF0aDJjb25mbW9kcykgPT0gc25hcDEgKyAyCiAK
ICAgICBkZWYgdGVzdF92YWx1ZV9hY2Nlc3Nfbm90X2V4aXN0aW5nKHNlbGYsIGJhc2VkaXIpOgog
ICAgICAgICBjb25mdGVzdCA9IENvbmZ0ZXN0V2l0aFNldGluaXRpYWwoYmFzZWRpcikKQEAgLTc5
LDcgKzgyLDcgQEAgY2xhc3MgVGVzdENvbmZ0ZXN0VmFsdWVBY2Nlc3NHbG9iYWwob2JqZWN0KToK
ICAgICAgICAgYXNzZXJ0IHBhdGgucHVyZWJhc2VuYW1lLnN0YXJ0c3dpdGgoImNvbmZ0ZXN0IikK
IAogCi1kZWYgdGVzdF9jb25mdGVzdF9pbl9ub25wa2dfd2l0aF9pbml0KHRtcGRpcik6CitkZWYg
dGVzdF9jb25mdGVzdF9pbl9ub25wa2dfd2l0aF9pbml0KHRtcGRpciwgX3N5c19zbmFwc2hvdCk6
CiAgICAgdG1wZGlyLmVuc3VyZSgiYWRpci0xLjAvY29uZnRlc3QucHkiKS53cml0ZSgiYT0xIDsg
RGlyZWN0b3J5ID0gMyIpCiAgICAgdG1wZGlyLmVuc3VyZSgiYWRpci0xLjAvYi9jb25mdGVzdC5w
eSIpLndyaXRlKCJiPTIgOyBhID0gMS41IikKICAgICB0bXBkaXIuZW5zdXJlKCJhZGlyLTEuMC9i
L19faW5pdF9fLnB5IikKQEAgLTE3OSwxMSArMTgyLDExIEBAIGRlZiB0ZXN0X2NvbmZ0ZXN0X2Nv
bmZjdXRkaXIodGVzdGRpcik6CiAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoImFzc2VydCAwIikK
ICAgICB4ID0gdGVzdGRpci5ta2RpcigieCIpCiAgICAgeC5qb2luKCJjb25mdGVzdC5weSIpLndy
aXRlKAotICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgdGV4dHdyYXAuZGVk
ZW50KAorICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24o
cGFyc2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXh5eiIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIpCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgZGVmIHB5dGVzdF9hZGRv
cHRpb24ocGFyc2VyKToKLSAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0teHl6IiwgYWN0
aW9uPSJzdG9yZV90cnVlIikKLSAgICAiIiIKICAgICAgICAgKQogICAgICkKICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLWgiLCAiLS1jb25mY3V0ZGlyPSVzIiAlIHgsIHgpCkBAIC0x
OTEsNiArMTk0LDk0IEBAIGRlZiB0ZXN0X2NvbmZ0ZXN0X2NvbmZjdXRkaXIodGVzdGRpcik6CiAg
ICAgYXNzZXJ0ICJ3YXJuaW5nOiBjb3VsZCBub3QgbG9hZCBpbml0aWFsIiBub3QgaW4gcmVzdWx0
LnN0ZG91dC5zdHIoKQogCiAKK0BweXRlc3QubWFyay5za2lwaWYoCisgICAgbm90IGhhc2F0dHIo
cHkucGF0aC5sb2NhbCwgIm1rc3ltbGlua3RvIiksCisgICAgcmVhc29uPSJzeW1saW5rIG5vdCBh
dmFpbGFibGUgb24gdGhpcyBwbGF0Zm9ybSIsCispCitkZWYgdGVzdF9jb25mdGVzdF9zeW1saW5r
KHRlc3RkaXIpOgorICAgICIiIkVuc3VyZSB0aGF0IGNvbmZ0ZXN0LnB5IGlzIHVzZWQgZm9yIHJl
c29sdmVkIHN5bWxpbmtzLiIiIgorICAgIHJlYWwgPSB0ZXN0ZGlyLnRtcGRpci5ta2RpcigicmVh
bCIpCisgICAgcmVhbHRlc3RzID0gcmVhbC5ta2RpcigiYXBwIikubWtkaXIoInRlc3RzIikKKyAg
ICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJzeW1saW5rdGVzdHMiKS5ta3N5bWxpbmt0byhyZWFsdGVz
dHMpCisgICAgdGVzdGRpci50bXBkaXIuam9pbigic3ltbGluayIpLm1rc3ltbGlua3RvKHJlYWwp
CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAqKnsKKyAgICAgICAgICAgICJyZWFs
L2FwcC90ZXN0cy90ZXN0X2Zvby5weSI6ICJkZWYgdGVzdDEoZml4dHVyZSk6IHBhc3MiLAorICAg
ICAgICAgICAgInJlYWwvY29uZnRlc3QucHkiOiB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAg
ICAgICAgIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICAg
ICAgcHJpbnQoImNvbmZ0ZXN0X2xvYWRlZCIpCisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgZml4dHVyZSgpOgorICAgICAgICAgICAgICAgICAg
ICBwcmludCgiZml4dHVyZV91c2VkIikKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
ICksCisgICAgICAgIH0KKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12
cyIsICJzeW1saW5rdGVzdHMiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAg
ICAgICAgWworICAgICAgICAgICAgIipjb25mdGVzdF9sb2FkZWQqIiwKKyAgICAgICAgICAgICJy
ZWFsL2FwcC90ZXN0cy90ZXN0X2Zvby5weTo6dGVzdDEgZml4dHVyZV91c2VkIiwKKyAgICAgICAg
ICAgICJQQVNTRUQiLAorICAgICAgICBdCisgICAgKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09
IEVYSVRfT0sKKworICAgICMgU2hvdWxkIG5vdCBjYXVzZSAiVmFsdWVFcnJvcjogUGx1Z2luIGFs
cmVhZHkgcmVnaXN0ZXJlZCIgKCM0MTc0KS4KKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLXZzIiwgInN5bWxpbmsiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfT0sKKwor
ICAgIHJlYWx0ZXN0cy5lbnN1cmUoIl9faW5pdF9fLnB5IikKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgiLXZzIiwgInN5bWxpbmt0ZXN0cy90ZXN0X2Zvby5weTo6dGVzdDEiKQorICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWworICAgICAgICAgICAgIipj
b25mdGVzdF9sb2FkZWQqIiwKKyAgICAgICAgICAgICJyZWFsL2FwcC90ZXN0cy90ZXN0X2Zvby5w
eTo6dGVzdDEgZml4dHVyZV91c2VkIiwKKyAgICAgICAgICAgICJQQVNTRUQiLAorICAgICAgICBd
CisgICAgKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfT0sKKworCitAcHl0ZXN0Lm1h
cmsuc2tpcGlmKAorICAgIG5vdCBoYXNhdHRyKHB5LnBhdGgubG9jYWwsICJta3N5bWxpbmt0byIp
LAorICAgIHJlYXNvbj0ic3ltbGluayBub3QgYXZhaWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0iLAor
KQorZGVmIHRlc3RfY29uZnRlc3Rfc3ltbGlua19maWxlcyh0ZXN0ZGlyKToKKyAgICAiIiJDaGVj
ayBjb25mdGVzdC5weSBsb2FkaW5nIHdoZW4gcnVubmluZyBpbiBkaXJlY3Rvcnkgd2l0aCBzeW1s
aW5rcy4iIiIKKyAgICByZWFsID0gdGVzdGRpci50bXBkaXIubWtkaXIoInJlYWwiKQorICAgIHNv
dXJjZSA9IHsKKyAgICAgICAgImFwcC90ZXN0X2Zvby5weSI6ICJkZWYgdGVzdDEoZml4dHVyZSk6
IHBhc3MiLAorICAgICAgICAiYXBwL19faW5pdF9fLnB5IjogIiIsCisgICAgICAgICJhcHAvY29u
ZnRlc3QucHkiOiB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgcHJpbnQoImNvbmZ0ZXN0X2xvYWRlZCIpCisK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZpeHR1cmUoKToK
KyAgICAgICAgICAgICAgICBwcmludCgiZml4dHVyZV91c2VkIikKKyAgICAgICAgICAgICIiIgor
ICAgICAgICApLAorICAgIH0KKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKip7InJlYWwvJXMiICUg
azogdiBmb3IgaywgdiBpbiBzb3VyY2UuaXRlbXMoKX0pCisKKyAgICAjIENyZWF0ZSBhIGJ1aWxk
IGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHN5bWxpbmtzIHRvIGFjdHVhbCBmaWxlcworICAgICMg
YnV0IGRvZXNuJ3Qgc3ltbGluayBhY3R1YWwgZGlyZWN0b3JpZXMuCisgICAgYnVpbGQgPSB0ZXN0
ZGlyLnRtcGRpci5ta2RpcigiYnVpbGQiKQorICAgIGJ1aWxkLm1rZGlyKCJhcHAiKQorICAgIGZv
ciBmIGluIHNvdXJjZToKKyAgICAgICAgYnVpbGQuam9pbihmKS5ta3N5bWxpbmt0byhyZWFsLmpv
aW4oZikpCisgICAgYnVpbGQuY2hkaXIoKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItdnMiLCAiYXBwL3Rlc3RfZm9vLnB5IikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWyIqY29uZnRlc3RfbG9hZGVkKiIsICJQQVNTRUQiXSkKKyAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSBFWElUX09LCisKKwogZGVmIHRlc3Rfbm9fY29uZnRlc3QodGVzdGRpcik6CiAgICAgdGVz
dGRpci5tYWtlY29uZnRlc3QoImFzc2VydCAwIikKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLS1ub2NvbmZ0ZXN0IikKQEAgLTIwMywxMSArMjk0LDExIEBAIGRlZiB0ZXN0X25vX2Nv
bmZ0ZXN0KHRlc3RkaXIpOgogZGVmIHRlc3RfY29uZnRlc3RfZXhpc3RpbmdfcmVzdWx0bG9nKHRl
c3RkaXIpOgogICAgIHggPSB0ZXN0ZGlyLm1rZGlyKCJ0ZXN0cyIpCiAgICAgeC5qb2luKCJjb25m
dGVzdC5weSIpLndyaXRlKAotICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAg
dGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgZGVmIHB5dGVz
dF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCIt
LXh5eiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgZGVm
IHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24o
Ii0teHl6IiwgYWN0aW9uPSJzdG9yZV90cnVlIikKLSAgICAiIiIKICAgICAgICAgKQogICAgICkK
ICAgICB0ZXN0ZGlyLm1ha2VmaWxlKGV4dD0iLmxvZyIsIHJlc3VsdD0iIikgICMgV3JpdGVzIHJl
c3VsdC5sb2cKQEAgLTIxOCwxMSArMzA5LDExIEBAIGRlZiB0ZXN0X2NvbmZ0ZXN0X2V4aXN0aW5n
X3Jlc3VsdGxvZyh0ZXN0ZGlyKToKIGRlZiB0ZXN0X2NvbmZ0ZXN0X2V4aXN0aW5nX2p1bml0eG1s
KHRlc3RkaXIpOgogICAgIHggPSB0ZXN0ZGlyLm1rZGlyKCJ0ZXN0cyIpCiAgICAgeC5qb2luKCJj
b25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAg
ICAgdGV4dHdyYXAuZGVkZW50KAorICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgZGVmIHB5
dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkb3B0aW9u
KCItLXh5eiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCiAgICAgICAgICAgICAiIiIKLSAgICAgICAg
ZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICAgICAgICAgIHBhcnNlci5hZGRvcHRp
b24oIi0teHl6IiwgYWN0aW9uPSJzdG9yZV90cnVlIikKLSAgICAiIiIKICAgICAgICAgKQogICAg
ICkKICAgICB0ZXN0ZGlyLm1ha2VmaWxlKGV4dD0iLnhtbCIsIGp1bml0PSIiKSAgIyBXcml0ZXMg
anVuaXQueG1sCkBAIC0yNTIsMzggKzM0MywzOCBAQCBkZWYgdGVzdF9maXh0dXJlX2RlcGVuZGVu
Y3kodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgogICAgIHN1YiA9IHRlc3RkaXIubWtkaXIoInN1YiIp
CiAgICAgc3ViLmpvaW4oIl9faW5pdF9fLnB5Iikud3JpdGUoIiIpCiAgICAgc3ViLmpvaW4oImNv
bmZ0ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgIGRlZGVudCgKLSAgICAgICAgICAgICIiIgotICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAg
ICIiIlwKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKIAotICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKLSAgICAgICAgZGVmIG5vdF9uZWVkZWQoKToKLSAgICAgICAgICAgIGFzc2VydCBGYWxzZSwg
IlNob3VsZCBub3QgYmUgY2FsbGVkISIKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgZGVmIG5vdF9uZWVkZWQoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2Us
ICJTaG91bGQgbm90IGJlIGNhbGxlZCEiCiAKLSAgICAgICAgQHB5dGVzdC5maXh0dXJlCi0gICAg
ICAgIGRlZiBmb28oKToKLSAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgIlNob3VsZCBub3QgYmUg
Y2FsbGVkISIKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZv
bygpOgorICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgIlNob3VsZCBub3QgYmUgY2FsbGVk
ISIKIAotICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgZGVmIGJhcihmb28pOgotICAg
ICAgICAgICAgcmV0dXJuICdiYXInCi0gICAgIiIiCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKKyAgICAgICAgICAgIGRlZiBiYXIoZm9vKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2Jh
cicKKyAgICAgICAgICAgICIiIgogICAgICAgICApCiAgICAgKQogICAgIHN1YnN1YiA9IHN1Yi5t
a2Rpcigic3Vic3ViIikKICAgICBzdWJzdWIuam9pbigiX19pbml0X18ucHkiKS53cml0ZSgiIikK
ICAgICBzdWJzdWIuam9pbigidGVzdF9iYXIucHkiKS53cml0ZSgKLSAgICAgICAgZGVkZW50KAot
ICAgICAgICAgICAgIiIiCi0gICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgdGV4dHdyYXAu
ZGVkZW50KAorICAgICAgICAgICAgIiIiXAorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogCi0g
ICAgICAgIEBweXRlc3QuZml4dHVyZQotICAgICAgICBkZWYgYmFyKCk6Ci0gICAgICAgICAgICBy
ZXR1cm4gJ3N1YiBiYXInCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAg
IGRlZiBiYXIoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ3N1YiBiYXInCiAKLSAgICAgICAg
ZGVmIHRlc3RfZXZlbnRfZml4dHVyZShiYXIpOgotICAgICAgICAgICAgYXNzZXJ0IGJhciA9PSAn
c3ViIGJhcicKLSAgICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2V2ZW50X2ZpeHR1cmUoYmFy
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYmFyID09ICdzdWIgYmFyJworICAgICAgICAgICAg
IiIiCiAgICAgICAgICkKICAgICApCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoInN1
YiIpCkBAIC0yOTMsMTEgKzM4NCwxMSBAQCBkZWYgdGVzdF9maXh0dXJlX2RlcGVuZGVuY3kodGVz
dGRpciwgbW9ua2V5cGF0Y2gpOgogZGVmIHRlc3RfY29uZnRlc3RfZm91bmRfd2l0aF9kb3VibGVf
ZGFzaCh0ZXN0ZGlyKToKICAgICBzdWIgPSB0ZXN0ZGlyLm1rZGlyKCJzdWIiKQogICAgIHN1Yi5q
b2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICBkZWRlbnQoCisgICAgICAgIHRleHR3
cmFwLmRlZGVudCgKKyAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRk
b3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS1oZWxs
by13b3JsZCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCiAgICAgICAgICAgICAiIiIKLSAgICAgICAg
ZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICAgICAgICAgIHBhcnNlci5hZGRvcHRp
b24oIi0taGVsbG8td29ybGQiLCBhY3Rpb249InN0b3JlX3RydWUiKQotICAgICIiIgogICAgICAg
ICApCiAgICAgKQogICAgIHAgPSBzdWIuam9pbigidGVzdF9oZWxsby5weSIpCkBAIC0zMTEsNyAr
NDAyLDYgQEAgZGVmIHRlc3RfY29uZnRlc3RfZm91bmRfd2l0aF9kb3VibGVfZGFzaCh0ZXN0ZGly
KToKIAogCiBjbGFzcyBUZXN0Q29uZnRlc3RWaXNpYmlsaXR5KG9iamVjdCk6Ci0KICAgICBkZWYg
X3NldHVwX3RyZWUoc2VsZiwgdGVzdGRpcik6ICAjIGZvciBpc3N1ZTYxNgogICAgICAgICAjIGV4
YW1wbGUgbW9zdGx5IHRha2VuIGZyb206CiAgICAgICAgICMgaHR0cHM6Ly9tYWlsLnB5dGhvbi5v
cmcvcGlwZXJtYWlsL3B5dGVzdC1kZXYvMjAxNC1TZXB0ZW1iZXIvMDAyNjE3Lmh0bWwKQEAgLTMx
OSw1NiArNDA5LDU0IEBAIGNsYXNzIFRlc3RDb25mdGVzdFZpc2liaWxpdHkob2JqZWN0KToKICAg
ICAgICAgcGFja2FnZSA9IHRlc3RkaXIubWtkaXIoInBhY2thZ2UiKQogCiAgICAgICAgIHBhY2th
Z2Uuam9pbigiY29uZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgICAgIGRlZGVudCgKKyAgICAg
ICAgICAgIHRleHR3cmFwLmRlZGVudCgKICAgICAgICAgICAgICAgICAiIiJcCi0gICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgICAg
IGRlZiBmeHRyKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJmcm9tLXBhY2thZ2UiCi0gICAg
ICAgICIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgZnh0cigpOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gImZyb20tcGFja2FnZSIKKyAgICAgICAgICAgICAgICAiIiIKICAgICAg
ICAgICAgICkKICAgICAgICAgKQogICAgICAgICBwYWNrYWdlLmpvaW4oInRlc3RfcGtncm9vdC5w
eSIpLndyaXRlKAotICAgICAgICAgICAgZGVkZW50KAorICAgICAgICAgICAgdGV4dHdyYXAuZGVk
ZW50KAogICAgICAgICAgICAgICAgICIiIlwKLSAgICAgICAgICAgIGRlZiB0ZXN0X3BrZ3Jvb3Qo
Znh0cik6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGZ4dHIgPT0gImZyb20tcGFja2FnZSIKLSAg
ICAgICAgIiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfcGtncm9vdChmeHRyKToKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IGZ4dHIgPT0gImZyb20tcGFja2FnZSIKKyAgICAgICAgICAg
ICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogCiAgICAgICAgIHN3YyA9IHBhY2th
Z2UubWtkaXIoInN3YyIpCiAgICAgICAgIHN3Yy5qb2luKCJfX2luaXRfXy5weSIpLmVuc3VyZSgp
CiAgICAgICAgIHN3Yy5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKAotICAgICAgICAgICAgZGVk
ZW50KAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAogICAgICAgICAgICAgICAgICIiIlwK
LSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQot
ICAgICAgICAgICAgZGVmIGZ4dHIoKToKLSAgICAgICAgICAgICAgICByZXR1cm4gImZyb20tc3dj
IgotICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICAgICAgZGVmIGZ4dHIoKToKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICJmcm9tLXN3YyIKKyAgICAgICAgICAgICAgICAiIiIKICAg
ICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICBzd2Muam9pbigidGVzdF93aXRoX2NvbmZ0
ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgICAgICBkZWRlbnQoCisgICAgICAgICAgICB0ZXh0d3Jh
cC5kZWRlbnQoCiAgICAgICAgICAgICAgICAgIiIiXAotICAgICAgICAgICAgZGVmIHRlc3Rfd2l0
aF9jb25mdGVzdChmeHRyKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgZnh0ciA9PSAiZnJvbS1z
d2MiCi0KLSAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3Rfd2l0aF9jb25mdGVz
dChmeHRyKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZ4dHIgPT0gImZyb20tc3djIgor
ICAgICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgKQogICAgICAgICApCiAKICAgICAgICAg
c25jID0gcGFja2FnZS5ta2Rpcigic25jIikKICAgICAgICAgc25jLmpvaW4oIl9faW5pdF9fLnB5
IikuZW5zdXJlKCkKICAgICAgICAgc25jLmpvaW4oInRlc3Rfbm9fY29uZnRlc3QucHkiKS53cml0
ZSgKLSAgICAgICAgICAgIGRlZGVudCgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKICAg
ICAgICAgICAgICAgICAiIiJcCi0gICAgICAgICAgICBkZWYgdGVzdF9ub19jb25mdGVzdChmeHRy
KToKLSAgICAgICAgICAgICAgICBhc3NlcnQgZnh0ciA9PSAiZnJvbS1wYWNrYWdlIiAgICMgTm8g
bG9jYWwgY29uZnRlc3QucHksIHNvIHNob3VsZAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIyB1c2UgdmFsdWUgZnJvbSBwYXJlbnQgZGlyJ3MKLQotICAg
ICAgICAiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9ub19jb25mdGVzdChmeHRyKToKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZ4dHIgPT0gImZyb20tcGFja2FnZSIgICAjIE5vIGxv
Y2FsIGNvbmZ0ZXN0LnB5LCBzbyBzaG91bGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAjIHVzZSB2YWx1ZSBmcm9tIHBhcmVudCBkaXIncworICAg
ICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgKQogICAgICAgICApCiAgICAgICAgIHByaW50
KCJjcmVhdGVkIGRpcmVjdG9yeSBzdHJ1Y3R1cmU6IikKQEAgLTQwNCwxMCArNDkyLDEwIEBAIGNs
YXNzIFRlc3RDb25mdGVzdFZpc2liaWxpdHkob2JqZWN0KToKICAgICAgICAgICAgICgic25jIiwg
Ii4iLCAxKSwKICAgICAgICAgXSwKICAgICApCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlNjE2CiAg
ICAgZGVmIHRlc3RfcGFyc2VmYWN0b3JpZXNfcmVsYXRpdmVfbm9kZV9pZHMoCiAgICAgICAgIHNl
bGYsIHRlc3RkaXIsIGNoZGlyLCB0ZXN0YXJnLCBleHBlY3RfbnRlc3RzX3Bhc3NlZAogICAgICk6
CisgICAgICAgICIiIiM2MTYiIiIKICAgICAgICAgZGlycyA9IHNlbGYuX3NldHVwX3RyZWUodGVz
dGRpcikKICAgICAgICAgcHJpbnQoInB5dGVzdCBydW4gaW4gY3dkOiAlcyIgJSAoZGlyc1tjaGRp
cl0ucmVsdG8odGVzdGRpci50bXBkaXIpKSkKICAgICAgICAgcHJpbnQoInB5dGVzdGFyZyAgICAg
ICAgOiAlcyIgJSAodGVzdGFyZykpCkBAIC00MjgsMzEgKzUxNiwzMSBAQCBkZWYgdGVzdF9zZWFy
Y2hfY29uZnRlc3RfdXBfdG9faW5pZmlsZSh0ZXN0ZGlyLCBjb25mY3V0ZGlyLCBwYXNzZWQsIGVy
cm9yKToKICAgICBzcmMgPSByb290LmpvaW4oInNyYyIpLmVuc3VyZShkaXI9MSkKICAgICBzcmMu
am9pbigicHl0ZXN0LmluaSIpLndyaXRlKCJbcHl0ZXN0XSIpCiAgICAgc3JjLmpvaW4oImNvbmZ0
ZXN0LnB5Iikud3JpdGUoCi0gICAgICAgIF9weXRlc3QuX2NvZGUuU291cmNlKAorICAgICAgICB0
ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmaXgxKCk6
IHBhc3MKICAgICAgICAgICAgICIiIgotICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgIEBw
eXRlc3QuZml4dHVyZQotICAgICAgICBkZWYgZml4MSgpOiBwYXNzCi0gICAgIiIiCiAgICAgICAg
ICkKICAgICApCiAgICAgc3JjLmpvaW4oInRlc3RfZm9vLnB5Iikud3JpdGUoCi0gICAgICAgIF9w
eXRlc3QuX2NvZGUuU291cmNlKAorICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAg
ICAiIiJcCisgICAgICAgICAgICBkZWYgdGVzdF8xKGZpeDEpOgorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIob3V0X29mX3JlYWNoKToKKyAgICAgICAgICAgICAg
ICBwYXNzCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgZGVmIHRlc3RfMShmaXgxKToKLSAgICAg
ICAgICAgIHBhc3MKLSAgICAgICAgZGVmIHRlc3RfMihvdXRfb2ZfcmVhY2gpOgotICAgICAgICAg
ICAgcGFzcwotICAgICIiIgogICAgICAgICApCiAgICAgKQogICAgIHJvb3Quam9pbigiY29uZnRl
c3QucHkiKS53cml0ZSgKLSAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3VyY2UoCisgICAgICAgIHRl
eHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIG91dF9vZl9y
ZWFjaCgpOiBwYXNzCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHB5dGVzdAotICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKLSAgICAgICAgZGVmIG91dF9vZl9yZWFjaCgpOiBwYXNzCi0g
ICAgIiIiCiAgICAgICAgICkKICAgICApCiAKQEAgLTQ3MCwxOSArNTU4LDE5IEBAIGRlZiB0ZXN0
X3NlYXJjaF9jb25mdGVzdF91cF90b19pbmlmaWxlKHRlc3RkaXIsIGNvbmZjdXRkaXIsIHBhc3Nl
ZCwgZXJyb3IpOgogCiBkZWYgdGVzdF9pc3N1ZTEwNzNfY29uZnRlc3Rfc3BlY2lhbF9vYmplY3Rz
KHRlc3RkaXIpOgogICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAotICAgICAgICAiIiIKKyAgICAg
ICAgIiIiXAogICAgICAgICBjbGFzcyBEb250VG91Y2hNZShvYmplY3QpOgogICAgICAgICAgICAg
ZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIHgpOgogICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignY2FudCB0b3VjaCBtZScpCiAKICAgICAgICAgeCA9IERvbnRUb3VjaE1lKCkKLSAgICAiIiIK
KyAgICAgICAgIiIiCiAgICAgKQogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgIiIi
CisgICAgICAgICIiIlwKICAgICAgICAgZGVmIHRlc3Rfc29tZSgpOgogICAgICAgICAgICAgcGFz
cwotICAgICIiIgorICAgICAgICAiIiIKICAgICApCiAgICAgcmVzID0gdGVzdGRpci5ydW5weXRl
c3QoKQogICAgIGFzc2VydCByZXMucmV0ID09IDAKQEAgLTQ5MCwxNSArNTc4LDE1IEBAIGRlZiB0
ZXN0X2lzc3VlMTA3M19jb25mdGVzdF9zcGVjaWFsX29iamVjdHModGVzdGRpcik6CiAKIGRlZiB0
ZXN0X2NvbmZ0ZXN0X2V4Y2VwdGlvbl9oYW5kbGluZyh0ZXN0ZGlyKToKICAgICB0ZXN0ZGlyLm1h
a2Vjb25mdGVzdCgKLSAgICAgICAgIiIiCisgICAgICAgICIiIlwKICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigpCi0gICAgIiIiCisgICAgICAgICIiIgogICAgICkKICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCi0gICAgICAgICIiIgorICAgICAgICAiIiJcCiAgICAgICAgIGRlZiB0ZXN0X3NvbWUo
KToKICAgICAgICAgICAgIHBhc3MKLSAgICAiIiIKKyAgICAgICAgIiIiCiAgICAgKQogICAgIHJl
cyA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAgICBhc3NlcnQgcmVzLnJldCA9PSA0CkBAIC01MTMs
NyArNjAxLDcgQEAgZGVmIHRlc3RfaG9va19wcm94eSh0ZXN0ZGlyKToKICAgICAgICAgKip7CiAg
ICAgICAgICAgICAicm9vdC9kZW1vLTAvdGVzdF9mb28xLnB5IjogImRlZiB0ZXN0MSgpOiBwYXNz
IiwKICAgICAgICAgICAgICJyb290L2RlbW8tYS90ZXN0X2ZvbzIucHkiOiAiZGVmIHRlc3QxKCk6
IHBhc3MiLAotICAgICAgICAgICAgInJvb3QvZGVtby1hL2NvbmZ0ZXN0LnB5IjogIiIiCisgICAg
ICAgICAgICAicm9vdC9kZW1vLWEvY29uZnRlc3QucHkiOiAiIiJcCiAgICAgICAgICAgICBkZWYg
cHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgsIGNvbmZpZyk6CiAgICAgICAgICAgICAgICAgcmV0
dXJuIFRydWUKICAgICAgICAgICAgICIiIiwKQEAgLTUzMSwxMSArNjE5LDExIEBAIGRlZiB0ZXN0
X3JlcXVpcmVkX29wdGlvbl9oZWxwKHRlc3RkaXIpOgogICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0
KCJhc3NlcnQgMCIpCiAgICAgeCA9IHRlc3RkaXIubWtkaXIoIngiKQogICAgIHguam9pbigiY29u
ZnRlc3QucHkiKS53cml0ZSgKLSAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3VyY2UoCisgICAgICAg
IHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICIiIlwKKyAgICAgICAgICAgIGRlZiBweXRl
c3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigi
LS14eXoiLCBhY3Rpb249InN0b3JlX3RydWUiLCByZXF1aXJlZD1UcnVlKQogICAgICAgICAgICAg
IiIiCi0gICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgICAgICAgICBw
YXJzZXIuYWRkb3B0aW9uKCItLXh5eiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIHJlcXVpcmVkPVRy
dWUpCi0gICAgIiIiCiAgICAgICAgICkKICAgICApCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi1oIiwgeCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9kb2N0
ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2RvY3Rlc3QucHkKaW5kZXggN2YzYWZm
M2IwZTEwNzIyMDYxODQ2MjljNTE5ZGRlMTcwMzRiZDE1ZC4uNzIzZjFmZTk2NDIzZDBjYWI5NGU3
NWJjNjc1YTdkNGY0ZDc5ZTIzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0
X2RvY3Rlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2RvY3Rlc3QucHkKQEAg
LTEsMTQgKzEsMjIgQEAKLSMgZW5jb2Rpbmc6IHV0Zi04Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20g
X19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRf
ZnVuY3Rpb24KKworaW1wb3J0IGluc3BlY3QKIGltcG9ydCBzeXMKLWltcG9ydCBfcHl0ZXN0Ll9j
b2RlCi1mcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBNT0RVTEVfTk9UX0ZPVU5EX0VSUk9SCi1m
cm9tIF9weXRlc3QuZG9jdGVzdCBpbXBvcnQgRG9jdGVzdEl0ZW0sIERvY3Rlc3RNb2R1bGUsIERv
Y3Rlc3RUZXh0ZmlsZQoraW1wb3J0IHRleHR3cmFwCisKIGltcG9ydCBweXRlc3QKK2Zyb20gX3B5
dGVzdC5jb21wYXQgaW1wb3J0IE1PRFVMRV9OT1RfRk9VTkRfRVJST1IKK2Zyb20gX3B5dGVzdC5k
b2N0ZXN0IGltcG9ydCBfaXNfbW9ja2VkCitmcm9tIF9weXRlc3QuZG9jdGVzdCBpbXBvcnQgX3Bh
dGNoX3Vud3JhcF9tb2NrX2F3YXJlCitmcm9tIF9weXRlc3QuZG9jdGVzdCBpbXBvcnQgRG9jdGVz
dEl0ZW0KK2Zyb20gX3B5dGVzdC5kb2N0ZXN0IGltcG9ydCBEb2N0ZXN0TW9kdWxlCitmcm9tIF9w
eXRlc3QuZG9jdGVzdCBpbXBvcnQgRG9jdGVzdFRleHRmaWxlCiAKIAogY2xhc3MgVGVzdERvY3Rl
c3RzKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9jb2xsZWN0X3Rlc3R0ZXh0ZmlsZShzZWxmLCB0
ZXN0ZGlyKToKICAgICAgICAgdyA9IHRlc3RkaXIubWFrZXR4dGZpbGUod2hhdGV2ZXI9IiIpCiAg
ICAgICAgIGNoZWNrZmlsZSA9IHRlc3RkaXIubWFrZXR4dGZpbGUoCkBAIC0xODMsNiArMTkxLDE4
IEBAIGNsYXNzIFRlc3REb2N0ZXN0cyhvYmplY3QpOgogICAgICAgICAgICAgXQogICAgICAgICAp
CiAKKyAgICBkZWYgdGVzdF9kb2N0ZXN0X3NraXAoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXR4dGZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgID4+PiAxCisg
ICAgICAgICAgICAxCisgICAgICAgICAgICA+Pj4gaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
Pj4+IHB5dGVzdC5za2lwKCIiKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1kb2N0ZXN0LW1vZHVsZXMiKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBza2lwcGVkKiJdKQorCiAgICAgZGVmIHRlc3Rf
ZG9jc3RyaW5nX3BhcnRpYWxfY29udGV4dF9hcm91bmRfZXJyb3Ioc2VsZiwgdGVzdGRpcik6CiAg
ICAgICAgICIiIlRlc3QgdGhhdCB3ZSBzaG93IHNvbWUgY29udGV4dCBiZWZvcmUgdGhlIGFjdHVh
bCBsaW5lIG9mIGEgZmFpbGluZwogICAgICAgICBkb2N0ZXN0LgpAQCAtMjU5LDE2ICsyNzksMTYg
QEAgY2xhc3MgVGVzdERvY3Rlc3RzKG9iamVjdCk6CiAKICAgICBkZWYgdGVzdF9kb2N0ZXN0X2xp
bmVkYXRhX21pc3Npbmcoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIudG1wZGlyLmpv
aW4oImhlbGxvLnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgK
KyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAg
ICAgICAgICAgICAgY2xhc3MgRnVuKG9iamVjdCk6CisgICAgICAgICAgICAgICAgICAgIEBwcm9w
ZXJ0eQorICAgICAgICAgICAgICAgICAgICBkZWYgdGVzdChzZWxmKToKKyAgICAgICAgICAgICAg
ICAgICAgICAgICcnJworICAgICAgICAgICAgICAgICAgICAgICAgPj4+IGEgPSAxCisgICAgICAg
ICAgICAgICAgICAgICAgICA+Pj4gMS8wCisgICAgICAgICAgICAgICAgICAgICAgICAnJycKICAg
ICAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGNsYXNzIEZ1bihvYmplY3QpOgotICAgICAg
ICAgICAgICAgIEBwcm9wZXJ0eQotICAgICAgICAgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgotICAg
ICAgICAgICAgICAgICAgICAnJycKLSAgICAgICAgICAgICAgICAgICAgPj4+IGEgPSAxCi0gICAg
ICAgICAgICAgICAgICAgID4+PiAxLzAKLSAgICAgICAgICAgICAgICAgICAgJycnCi0gICAgICAg
ICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLS1kb2N0ZXN0LW1vZHVsZXMiKQpAQCAtMzAxLDEwICszMjEsMTAgQEAg
Y2xhc3MgVGVzdERvY3Rlc3RzKG9iamVjdCk6CiAKICAgICBkZWYgdGVzdF9kb2N0ZXN0X3VuZXhf
aW1wb3J0ZXJyb3Jfd2l0aF9tb2R1bGUoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIu
dG1wZGlyLmpvaW4oImhlbGxvLnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2Rl
LlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAi
IiJcCisgICAgICAgICAgICAgICAgaW1wb3J0IGFzZGFsc2RramFzbGtkamFzZAogICAgICAgICAg
ICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IGFzZGFsc2RramFzbGtkamFzZAotICAgICAg
ICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAgICAgICB0ZXN0ZGlyLm1ha2V0eHRm
aWxlKApAQCAtMzQwLDI3ICszNjAsMjcgQEAgY2xhc3MgVGVzdERvY3Rlc3RzKG9iamVjdCk6CiAg
ICAgZGVmIHRlc3RfZG9jdGVzdG1vZHVsZV9leHRlcm5hbF9hbmRfaXNzdWUxMTYoc2VsZiwgdGVz
dGRpcik6CiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1rcHlkaXIoImhlbGxvIikKICAgICAgICAgcC5q
b2luKCJfX2luaXRfXy5weSIpLndyaXRlKAotICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5Tb3Vy
Y2UoCisgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisgICAgICAgICAgICAgICAgIiIiXAor
ICAgICAgICAgICAgICAgIGRlZiBzb21lZnVuYygpOgorICAgICAgICAgICAgICAgICAgICAnJycK
KyAgICAgICAgICAgICAgICAgICAgICAgID4+PiBpID0gMAorICAgICAgICAgICAgICAgICAgICAg
ICAgPj4+IGkgKyAxCisgICAgICAgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAg
ICAgICcnJwogICAgICAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZGVmIHNvbWVmdW5jKCk6
Ci0gICAgICAgICAgICAgICAgJycnCi0gICAgICAgICAgICAgICAgICAgID4+PiBpID0gMAotICAg
ICAgICAgICAgICAgICAgICA+Pj4gaSArIDEKLSAgICAgICAgICAgICAgICAgICAgMgotICAgICAg
ICAgICAgICAgICcnJwotICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQogICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLS1kb2N0ZXN0LW1vZHVsZXMiKQog
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAgICAgICBbCi0gICAg
ICAgICAgICAgICAgIjAwNCAqPj4+IGkgPSAwIiwKLSAgICAgICAgICAgICAgICAiMDA1ICo+Pj4g
aSArIDEiLAorICAgICAgICAgICAgICAgICIwMDMgKj4+PiBpID0gMCIsCisgICAgICAgICAgICAg
ICAgIjAwNCAqPj4+IGkgKyAxIiwKICAgICAgICAgICAgICAgICAiKkV4cGVjdGVkOiIsCiAgICAg
ICAgICAgICAgICAgIiogICAgMiIsCiAgICAgICAgICAgICAgICAgIipHb3Q6IiwKICAgICAgICAg
ICAgICAgICAiKiAgICAxIiwKLSAgICAgICAgICAgICAgICAiKjo1OiBEb2NUZXN0RmFpbHVyZSIs
CisgICAgICAgICAgICAgICAgIio6NDogRG9jVGVzdEZhaWx1cmUiLAogICAgICAgICAgICAgXQog
ICAgICAgICApCiAKQEAgLTU2NCw3ICs1ODQsNyBAQCBjbGFzcyBUZXN0RG9jdGVzdHMob2JqZWN0
KToKICAgICAgICAgIiIiCiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAg
IHUnJycKLSAgICAgICAgICAgICMgZW5jb2Rpbmc6IHV0Zi04CisgICAgICAgICAgICAjIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQogICAgICAgICAgICAgZGVmIGZvbygpOgogICAgICAgICAgICAgICAg
ICIiIgogICAgICAgICAgICAgICAgID4+PiBuYW1lID0gJ9GBJyAjIG5vdCBsZXR0ZXIgJ2MnIGJ1
dCBpbnN0ZWFkIEN5cmlsbGljICdzJy4KQEAgLTY0MSw3ICs2NjEsNyBAQCBjbGFzcyBUZXN0RG9j
dGVzdHMob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoCiAgICAgICAgICAgICB0ZXN0X3VuaWNvZGVfZG9jdGVzdF9tb2R1bGU9IiIiCi0gICAgICAg
ICAgICAjIC0qLSBlbmNvZGluZzogdXRmLTggLSotCisgICAgICAgICAgICAjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQogICAgICAgICAgICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xp
dGVyYWxzCiAKICAgICAgICAgICAgIGRlZiBmaXhfYmFkX3VuaWNvZGUodGV4dCk6CkBAIC03MjMs
NyArNzQzLDYgQEAgY2xhc3MgVGVzdERvY3Rlc3RzKG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdExp
dGVyYWxzKG9iamVjdCk6Ci0KICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNvbmZpZ19t
b2RlIiwgWyJpbmkiLCAiY29tbWVudCJdKQogICAgIGRlZiB0ZXN0X2FsbG93X3VuaWNvZGUoc2Vs
ZiwgdGVzdGRpciwgY29uZmlnX21vZGUpOgogICAgICAgICAiIiJUZXN0IHRoYXQgZG9jdGVzdHMg
d2hpY2ggb3V0cHV0IHVuaWNvZGUgd29yayBpbiBhbGwgcHl0aG9uIHZlcnNpb25zCkBAIC04NDEs
NyArODYwLDYgQEAgY2xhc3MgVGVzdERvY3Rlc3RTa2lwcyhvYmplY3QpOgogCiAgICAgQHB5dGVz
dC5maXh0dXJlKHBhcmFtcz1bInRleHQiLCAibW9kdWxlIl0pCiAgICAgZGVmIG1ha2Vkb2N0ZXN0
KHNlbGYsIHRlc3RkaXIsIHJlcXVlc3QpOgotCiAgICAgICAgIGRlZiBtYWtlaXQoZG9jdGVzdCk6
CiAgICAgICAgICAgICBtb2RlID0gcmVxdWVzdC5wYXJhbQogICAgICAgICAgICAgaWYgbW9kZSA9
PSAidGV4dCI6CkBAIC05NTMsNyArOTcxLDcgQEAgY2xhc3MgVGVzdERvY3Rlc3RBdXRvVXNlRml4
dHVyZXMob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi0tZG9jdGVzdC1tb2R1bGVzIikKLSAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKCIqMiBwYXNzZWQqIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsiKjIgcGFzc2VkKiJdKQogCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJzY29wZSIsIFNDT1BFUykKICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVuYWJs
ZV9kb2N0ZXN0IiwgW1RydWUsIEZhbHNlXSkKQEAgLTExMjIsNyArMTE0MCw2IEBAIGNsYXNzIFRl
c3REb2N0ZXN0TmFtZXNwYWNlRml4dHVyZShvYmplY3QpOgogCiAKIGNsYXNzIFRlc3REb2N0ZXN0
UmVwb3J0aW5nT3B0aW9uKG9iamVjdCk6Ci0KICAgICBkZWYgX3J1bl9kb2N0ZXN0X3JlcG9ydChz
ZWxmLCB0ZXN0ZGlyLCBmb3JtYXQpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAg
ICAgICAgICAiIiIKQEAgLTEyMDQsMyArMTIyMSw0NCBAQCBjbGFzcyBUZXN0RG9jdGVzdFJlcG9y
dGluZ09wdGlvbihvYmplY3QpOgogICAgICAgICAgICAgICAgICIqZXJyb3I6IGFyZ3VtZW50IC0t
ZG9jdGVzdC1yZXBvcnQ6IGludmFsaWQgY2hvaWNlOiAnb2J2aW91c2x5X2ludmFsaWRfZm9ybWF0
JyAoY2hvb3NlIGZyb20qIgogICAgICAgICAgICAgXQogICAgICAgICApCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJtb2NrX21vZHVsZSIsIFsibW9jayIsICJ1bml0dGVzdC5tb2NrIl0p
CitkZWYgdGVzdF9kb2N0ZXN0X21vY2tfb2JqZWN0c19kb250X3JlY3Vyc2VfbWlzc2JlaGF2ZWQo
bW9ja19tb2R1bGUsIHRlc3RkaXIpOgorICAgIHB5dGVzdC5pbXBvcnRvcnNraXAobW9ja19tb2R1
bGUpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgZnJvbSB7
bW9ja19tb2R1bGV9IGltcG9ydCBjYWxsCisgICAgICAgIGNsYXNzIEV4YW1wbGUob2JqZWN0KToK
KyAgICAgICAgICAgICcnJworICAgICAgICAgICAgPj4+IDEgKyAxCisgICAgICAgICAgICAyCisg
ICAgICAgICAgICAnJycKKyAgICAgICAgIiIiLmZvcm1hdCgKKyAgICAgICAgICAgIG1vY2tfbW9k
dWxlPW1vY2tfbW9kdWxlCisgICAgICAgICkKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoIi0tZG9jdGVzdC1tb2R1bGVzIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWyIqIDEgcGFzc2VkICoiXSkKKworCitjbGFzcyBCcm9rZW46CisgICAgZGVmIF9fZ2V0
YXR0cl9fKHNlbGYsIF8pOgorICAgICAgICByYWlzZSBLZXlFcnJvcigiVGhpcyBzaG91bGQgYmUg
YW4gQXR0cmlidXRlRXJyb3IiKQorCisKK0BweXRlc3QubWFyay5za2lwaWYobm90IGhhc2F0dHIo
aW5zcGVjdCwgInVud3JhcCIpLCByZWFzb249Im5vdGhpbmcgdG8gcGF0Y2giKQorQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCAgIyBwcmFnbWE6IG5vIGJyYW5jaCAobGFtYmRhcyBhcmUgbm90IGNh
bGxlZCkKKyAgICAic3RvcCIsIFtOb25lLCBfaXNfbW9ja2VkLCBsYW1iZGEgZjogTm9uZSwgbGFt
YmRhIGY6IEZhbHNlLCBsYW1iZGEgZjogVHJ1ZV0KKykKK2RlZiB0ZXN0X3dhcm5pbmdfb25fdW53
cmFwX29mX2Jyb2tlbl9vYmplY3Qoc3RvcCk6CisgICAgYmFkX2luc3RhbmNlID0gQnJva2VuKCkK
KyAgICBhc3NlcnQgaW5zcGVjdC51bndyYXAuX19tb2R1bGVfXyA9PSAiaW5zcGVjdCIKKyAgICB3
aXRoIF9wYXRjaF91bndyYXBfbW9ja19hd2FyZSgpOgorICAgICAgICBhc3NlcnQgaW5zcGVjdC51
bndyYXAuX19tb2R1bGVfXyAhPSAiaW5zcGVjdCIKKyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMo
CisgICAgICAgICAgICBweXRlc3QuUHl0ZXN0V2FybmluZywgbWF0Y2g9Il5Hb3QgS2V5RXJyb3Iu
KiB3aGVuIHVud3JhcHBpbmciCisgICAgICAgICk6CisgICAgICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoS2V5RXJyb3IpOgorICAgICAgICAgICAgICAgIGluc3BlY3QudW53cmFwKGJhZF9pbnN0
YW5jZSwgc3RvcD1zdG9wKQorICAgIGFzc2VydCBpbnNwZWN0LnVud3JhcC5fX21vZHVsZV9fID09
ICJpbnNwZWN0IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2VudHJ5X3Bv
aW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9lbnRyeV9wb2ludHMucHkKaW5kZXgg
OGY3MzQ3NzhmYWE4YzhiNDgzMTk3YWY0ODk0MTFmNmEyODc1OTE1YS4uOTVlYmM0MTViMTViM2Qw
NTM4N2NhMmZhYWYwZjA4OWQ5MWZjNTkxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X2VudHJ5X3BvaW50cy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfZW50
cnlfcG9pbnRzLnB5CkBAIC0xLDE0ICsxLDEyIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgcGtnX3Jlc291
cmNlcworIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKLWltcG9ydCBweXRlc3QKLQotCi1AcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoImVudHJ5cG9pbnQiLCBbInB5LnRlc3QiLCAicHl0ZXN0Il0pCi1k
ZWYgdGVzdF9lbnRyeV9wb2ludF9leGlzdChlbnRyeXBvaW50KToKLSAgICBhc3NlcnQgZW50cnlw
b2ludCBpbiBwa2dfcmVzb3VyY2VzLmdldF9lbnRyeV9tYXAoInB5dGVzdCIpWyJjb25zb2xlX3Nj
cmlwdHMiXQorZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgaW1wb3J0bGliX21ldGFkYXRhCiAK
IAogZGVmIHRlc3RfcHl0ZXN0X2VudHJ5X3BvaW50c19hcmVfaWRlbnRpY2FsKCk6Ci0gICAgZW50
cnlNYXAgPSBwa2dfcmVzb3VyY2VzLmdldF9lbnRyeV9tYXAoInB5dGVzdCIpWyJjb25zb2xlX3Nj
cmlwdHMiXQotICAgIGFzc2VydCBlbnRyeU1hcFsicHl0ZXN0Il0ubW9kdWxlX25hbWUgPT0gZW50
cnlNYXBbInB5LnRlc3QiXS5tb2R1bGVfbmFtZQorICAgIGRpc3QgPSBpbXBvcnRsaWJfbWV0YWRh
dGEuZGlzdHJpYnV0aW9uKCJweXRlc3QiKQorICAgIGVudHJ5X21hcCA9IHtlcC5uYW1lOiBlcCBm
b3IgZXAgaW4gZGlzdC5lbnRyeV9wb2ludHN9CisgICAgYXNzZXJ0IGVudHJ5X21hcFsicHl0ZXN0
Il0udmFsdWUgPT0gZW50cnlfbWFwWyJweS50ZXN0Il0udmFsdWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvdGVzdF9oZWxwY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X2hlbHBjb25maWcucHkKaW5kZXggYjU0MjQyMzViMTY4N2UzZGVhZTE0MGUyNmYwMmZiOGY2
ZmM4YzFmYS4uNzU4ODhmZTE0Y2I3NmYyMjI1ZjI1N2Q2ODczZmVmYjUyZDA3MTE1MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2hlbHBjb25maWcucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy90ZXN0X2hlbHBjb25maWcucHkKQEAgLTEsMTMgKzEsMTkgQEAKLWZyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rp
b24KLWZyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNURUQKKyMgLSot
IGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QubWFpbiBpbXBv
cnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVECiAKIAogZGVmIHRlc3RfdmVyc2lvbih0ZXN0ZGlyLCBw
eXRlc3Rjb25maWcpOgogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXZlcnNpb24i
KQogICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKICAgICAjIHAgPSBweS5wYXRoLmxvY2FsKHB5
Ll9fZmlsZV9fKS5kaXJwYXRoKCkKLSAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWyIq
cHl0ZXN0KiVzKmltcG9ydGVkIGZyb20qIiAlIChweXRlc3QuX192ZXJzaW9uX18sKV0pCisgICAg
cmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbIipweXRlc3Qqe30qaW1wb3J0
ZWQgZnJvbSoiLmZvcm1hdChweXRlc3QuX192ZXJzaW9uX18pXQorICAgICkKICAgICBpZiBweXRl
c3Rjb25maWcucGx1Z2lubWFuYWdlci5saXN0X3BsdWdpbl9kaXN0aW5mbygpOgogICAgICAgICBy
ZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWyIqc2V0dXB0b29scyByZWdpc3RlcmVkIHBsdWdp
bnM6IiwgIiphdCoiXSkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2p1
bml0eG1sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2p1bml0eG1sLnB5CmluZGV4IGQw
YmU1ZjI2NzU5NjM4MDJiNTUzOTZjZGJmNjVkZTZmYTQ5MzJiYjcuLmJhNTI5Y2YzMzFkNmYxNGE3
YjVkZmQwZmRmNDFjZDU1MWQwMTRhMzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
dGVzdF9qdW5pdHhtbC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfanVuaXR4bWwu
cHkKQEAgLTEsMTEgKzEsMTkgQEAKICMgLSotIGNvZGluZzogdXRmLTggLSotCi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCitp
bXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHN5cworZnJvbSBkYXRldGltZSBpbXBv
cnQgZGF0ZXRpbWUKIGZyb20geG1sLmRvbSBpbXBvcnQgbWluaWRvbQorCiBpbXBvcnQgcHkKLWlt
cG9ydCBzeXMKLWltcG9ydCBvcwotZnJvbSBfcHl0ZXN0Lmp1bml0eG1sIGltcG9ydCBMb2dYTUwK
KwogaW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0Lmp1bml0eG1sIGltcG9ydCBMb2dYTUwKK2Zy
b20gX3B5dGVzdC5yZXBvcnRzIGltcG9ydCBCYXNlUmVwb3J0CiAKIAogZGVmIHJ1bmFuZHBhcnNl
KHRlc3RkaXIsICphcmdzKToKQEAgLTI5LDcgKzM3LDYgQEAgZGVmIGFzc2VydF9hdHRyKG5vZGUs
ICoqa3dhcmdzKToKIAogCiBjbGFzcyBEb21Ob2RlKG9iamVjdCk6Ci0KICAgICBkZWYgX19pbml0
X18oc2VsZiwgZG9tKToKICAgICAgICAgc2VsZi5fX25vZGUgPSBkb20KIApAQCAtNDIsNiArNDks
MTYgQEAgY2xhc3MgRG9tTm9kZShvYmplY3QpOgogICAgIGRlZiBfYnlfdGFnKHNlbGYsIHRhZyk6
CiAgICAgICAgIHJldHVybiBzZWxmLl9fbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWcpCiAK
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgY2hpbGRyZW4oc2VsZik6CisgICAgICAgIHJldHVybiBb
dHlwZShzZWxmKSh4KSBmb3IgeCBpbiBzZWxmLl9fbm9kZS5jaGlsZE5vZGVzXQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGdldF91bmlxdWVfY2hpbGQoc2VsZik6CisgICAgICAgIGNoaWxkcmVu
ID0gc2VsZi5jaGlsZHJlbgorICAgICAgICBhc3NlcnQgbGVuKGNoaWxkcmVuKSA9PSAxCisgICAg
ICAgIHJldHVybiBjaGlsZHJlblswXQorCiAgICAgZGVmIGZpbmRfbnRoX2J5X3RhZyhzZWxmLCB0
YWcsIG4pOgogICAgICAgICBpdGVtcyA9IHNlbGYuX2J5X3RhZyh0YWcpCiAgICAgICAgIHRyeToK
QEAgLTc2LDEyICs5MywxMSBAQCBjbGFzcyBEb21Ob2RlKG9iamVjdCk6CiAgICAgICAgIHJldHVy
biBzZWxmLl9fbm9kZS50YWdOYW1lCiAKICAgICBAcHJvcGVydHkKLSAgICBkZWYgbmV4dF9zaWVi
bGluZyhzZWxmKToKKyAgICBkZWYgbmV4dF9zaWJsaW5nKHNlbGYpOgogICAgICAgICByZXR1cm4g
dHlwZShzZWxmKShzZWxmLl9fbm9kZS5uZXh0U2libGluZykKIAogCiBjbGFzcyBUZXN0UHl0aG9u
KG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9zdW1taW5nX3NpbXBsZShzZWxmLCB0ZXN0ZGlyKToK
ICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC0xMDMsNyAr
MTE5LDcgQEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAgICAgICByZXN1bHQsIGRvbSA9
IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0CiAgICAgICAg
IG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCi0gICAgICAgIG5vZGUu
YXNzZXJ0X2F0dHIobmFtZT0icHl0ZXN0IiwgZXJyb3JzPTAsIGZhaWx1cmVzPTEsIHNraXBzPTIs
IHRlc3RzPTUpCisgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIobmFtZT0icHl0ZXN0IiwgZXJyb3Jz
PTAsIGZhaWx1cmVzPTEsIHNraXBwZWQ9MiwgdGVzdHM9NSkKIAogICAgIGRlZiB0ZXN0X3N1bW1p
bmdfc2ltcGxlX3dpdGhfZXJyb3JzKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCkBAIC0xMjksNyArMTQ1LDMxIEBAIGNsYXNzIFRlc3RQeXRob24ob2JqZWN0KToK
ICAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQogICAgICAgICBhc3Nl
cnQgcmVzdWx0LnJldAogICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0
c3VpdGUiKQotICAgICAgICBub2RlLmFzc2VydF9hdHRyKG5hbWU9InB5dGVzdCIsIGVycm9ycz0x
LCBmYWlsdXJlcz0yLCBza2lwcz0xLCB0ZXN0cz01KQorICAgICAgICBub2RlLmFzc2VydF9hdHRy
KG5hbWU9InB5dGVzdCIsIGVycm9ycz0xLCBmYWlsdXJlcz0yLCBza2lwcGVkPTEsIHRlc3RzPTUp
CisKKyAgICBkZWYgdGVzdF9ob3N0bmFtZV9pbl94bWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRl
c3RfcGFzcygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkK
KyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBub2Rl
ID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBub2RlLmFzc2Vy
dF9hdHRyKGhvc3RuYW1lPXBsYXRmb3JtLm5vZGUoKSkKKworICAgIGRlZiB0ZXN0X3RpbWVzdGFt
cF9pbl94bWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgc3RhcnRfdGltZSA9IGRh
dGV0aW1lLm5vdygpCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikK
KyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAg
ICAgdGltZXN0YW1wID0gZGF0ZXRpbWUuc3RycHRpbWUobm9kZVsidGltZXN0YW1wIl0sICIlWS0l
bS0lZFQlSDolTTolUy4lZiIpCisgICAgICAgIGFzc2VydCBzdGFydF90aW1lIDw9IHRpbWVzdGFt
cCA8IGRhdGV0aW1lLm5vdygpCiAKICAgICBkZWYgdGVzdF90aW1pbmdfZnVuY3Rpb24oc2VsZiwg
dGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAgLTE0OSw2ICsxODksMzcg
QEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAgICAgICB2YWwgPSB0bm9kZVsidGltZSJd
CiAgICAgICAgIGFzc2VydCByb3VuZChmbG9hdCh2YWwpLCAyKSA+PSAwLjAzCiAKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImR1cmF0aW9uX3JlcG9ydCIsIFsiY2FsbCIsICJ0b3RhbCJd
KQorICAgIGRlZiB0ZXN0X2p1bml0X2R1cmF0aW9uX3JlcG9ydChzZWxmLCB0ZXN0ZGlyLCBtb25r
ZXlwYXRjaCwgZHVyYXRpb25fcmVwb3J0KToKKworICAgICAgICAjIG1vY2sgTG9nWE1MLm5vZGVf
cmVwb3J0ZXIgc28gaXQgYWx3YXlzIHNldHMgYSBrbm93biBkdXJhdGlvbiB0byBlYWNoIHRlc3Qg
cmVwb3J0IG9iamVjdAorICAgICAgICBvcmlnaW5hbF9ub2RlX3JlcG9ydGVyID0gTG9nWE1MLm5v
ZGVfcmVwb3J0ZXIKKworICAgICAgICBkZWYgbm9kZV9yZXBvcnRlcl93cmFwcGVyKHMsIHJlcG9y
dCk6CisgICAgICAgICAgICByZXBvcnQuZHVyYXRpb24gPSAxLjAKKyAgICAgICAgICAgIHJlcG9y
dGVyID0gb3JpZ2luYWxfbm9kZV9yZXBvcnRlcihzLCByZXBvcnQpCisgICAgICAgICAgICByZXR1
cm4gcmVwb3J0ZXIKKworICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKExvZ1hNTCwgIm5vZGVf
cmVwb3J0ZXIiLCBub2RlX3JlcG9ydGVyX3dyYXBwZXIpCisKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3Vs
dCwgZG9tID0gcnVuYW5kcGFyc2UoCisgICAgICAgICAgICB0ZXN0ZGlyLCAiLW8iLCAianVuaXRf
ZHVyYXRpb25fcmVwb3J0PXt9Ii5mb3JtYXQoZHVyYXRpb25fcmVwb3J0KQorICAgICAgICApCisg
ICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAg
IHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICB2YWwg
PSBmbG9hdCh0bm9kZVsidGltZSJdKQorICAgICAgICBpZiBkdXJhdGlvbl9yZXBvcnQgPT0gInRv
dGFsIjoKKyAgICAgICAgICAgIGFzc2VydCB2YWwgPT0gMy4wCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBhc3NlcnQgZHVyYXRpb25fcmVwb3J0ID09ICJjYWxsIgorICAgICAgICAgICAgYXNz
ZXJ0IHZhbCA9PSAxLjAKKwogICAgIGRlZiB0ZXN0X3NldHVwX2Vycm9yKHNlbGYsIHRlc3RkaXIp
OgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKQEAgLTE2Niwx
MiArMjM3LDcgQEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAgICAgICBub2RlID0gZG9t
LmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQogICAgICAgICBub2RlLmFzc2VydF9hdHRy
KGVycm9ycz0xLCB0ZXN0cz0xKQogICAgICAgICB0bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90
YWcoInRlc3RjYXNlIikKLSAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIoCi0gICAgICAgICAgICBm
aWxlPSJ0ZXN0X3NldHVwX2Vycm9yLnB5IiwKLSAgICAgICAgICAgIGxpbmU9IjUiLAotICAgICAg
ICAgICAgY2xhc3NuYW1lPSJ0ZXN0X3NldHVwX2Vycm9yIiwKLSAgICAgICAgICAgIG5hbWU9InRl
c3RfZnVuY3Rpb24iLAotICAgICAgICApCisgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKGNsYXNz
bmFtZT0idGVzdF9zZXR1cF9lcnJvciIsIG5hbWU9InRlc3RfZnVuY3Rpb24iKQogICAgICAgICBm
bm9kZSA9IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJlcnJvciIpCiAgICAgICAgIGZub2RlLmFz
c2VydF9hdHRyKG1lc3NhZ2U9InRlc3Qgc2V0dXAgZmFpbHVyZSIpCiAgICAgICAgIGFzc2VydCAi
VmFsdWVFcnJvciIgaW4gZm5vZGUudG94bWwoKQpAQCAtMTkzLDEyICsyNTksNyBAQCBjbGFzcyBU
ZXN0UHl0aG9uKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0CiAgICAgICAgIG5v
ZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCiAgICAgICAgIHRub2RlID0g
bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQotICAgICAgICB0bm9kZS5hc3NlcnRf
YXR0cigKLSAgICAgICAgICAgIGZpbGU9InRlc3RfdGVhcmRvd25fZXJyb3IucHkiLAotICAgICAg
ICAgICAgbGluZT0iNiIsCi0gICAgICAgICAgICBjbGFzc25hbWU9InRlc3RfdGVhcmRvd25fZXJy
b3IiLAotICAgICAgICAgICAgbmFtZT0idGVzdF9mdW5jdGlvbiIsCi0gICAgICAgICkKKyAgICAg
ICAgdG5vZGUuYXNzZXJ0X2F0dHIoY2xhc3NuYW1lPSJ0ZXN0X3RlYXJkb3duX2Vycm9yIiwgbmFt
ZT0idGVzdF9mdW5jdGlvbiIpCiAgICAgICAgIGZub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90
YWcoImVycm9yIikKICAgICAgICAgZm5vZGUuYXNzZXJ0X2F0dHIobWVzc2FnZT0idGVzdCB0ZWFy
ZG93biBmYWlsdXJlIikKICAgICAgICAgYXNzZXJ0ICJWYWx1ZUVycm9yIiBpbiBmbm9kZS50b3ht
bCgpCkBAIC0yMzksMTQgKzMwMCw5IEBAIGNsYXNzIFRlc3RQeXRob24ob2JqZWN0KToKICAgICAg
ICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQogICAgICAgICBhc3NlcnQgcmVz
dWx0LnJldCA9PSAwCiAgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3Rz
dWl0ZSIpCi0gICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoc2tpcHM9MSkKKyAgICAgICAgbm9kZS5h
c3NlcnRfYXR0cihza2lwcGVkPTEpCiAgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5
X3RhZygidGVzdGNhc2UiKQotICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKLSAgICAgICAgICAg
IGZpbGU9InRlc3Rfc2tpcF9jb250YWluc19uYW1lX3JlYXNvbi5weSIsCi0gICAgICAgICAgICBs
aW5lPSIxIiwKLSAgICAgICAgICAgIGNsYXNzbmFtZT0idGVzdF9za2lwX2NvbnRhaW5zX25hbWVf
cmVhc29uIiwKLSAgICAgICAgICAgIG5hbWU9InRlc3Rfc2tpcCIsCi0gICAgICAgICkKKyAgICAg
ICAgdG5vZGUuYXNzZXJ0X2F0dHIoY2xhc3NuYW1lPSJ0ZXN0X3NraXBfY29udGFpbnNfbmFtZV9y
ZWFzb24iLCBuYW1lPSJ0ZXN0X3NraXAiKQogICAgICAgICBzbm9kZSA9IHRub2RlLmZpbmRfZmly
c3RfYnlfdGFnKCJza2lwcGVkIikKICAgICAgICAgc25vZGUuYXNzZXJ0X2F0dHIodHlwZT0icHl0
ZXN0LnNraXAiLCBtZXNzYWdlPSJoZWxsbzIzIikKIApAQCAtMjYyLDEzICszMTgsMTAgQEAgY2xh
c3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNl
KHRlc3RkaXIpCiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKICAgICAgICAgbm9kZSA9
IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKLSAgICAgICAgbm9kZS5hc3NlcnRf
YXR0cihza2lwcz0xKQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKHNraXBwZWQ9MSkKICAgICAg
ICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCiAgICAgICAgIHRu
b2RlLmFzc2VydF9hdHRyKAotICAgICAgICAgICAgZmlsZT0idGVzdF9tYXJrX3NraXBfY29udGFp
bnNfbmFtZV9yZWFzb24ucHkiLAotICAgICAgICAgICAgbGluZT0iMSIsCi0gICAgICAgICAgICBj
bGFzc25hbWU9InRlc3RfbWFya19za2lwX2NvbnRhaW5zX25hbWVfcmVhc29uIiwKLSAgICAgICAg
ICAgIG5hbWU9InRlc3Rfc2tpcCIsCisgICAgICAgICAgICBjbGFzc25hbWU9InRlc3RfbWFya19z
a2lwX2NvbnRhaW5zX25hbWVfcmVhc29uIiwgbmFtZT0idGVzdF9za2lwIgogICAgICAgICApCiAg
ICAgICAgIHNub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoInNraXBwZWQiKQogICAgICAg
ICBzbm9kZS5hc3NlcnRfYXR0cih0eXBlPSJweXRlc3Quc2tpcCIsIG1lc3NhZ2U9ImhlbGxvMjQi
KQpAQCAtMjg2LDEzICszMzksMTAgQEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAgICAg
ICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCiAgICAgICAgIGFzc2VydCByZXN1
bHQucmV0ID09IDAKICAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1
aXRlIikKLSAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcz0xKQorICAgICAgICBub2RlLmFz
c2VydF9hdHRyKHNraXBwZWQ9MSkKICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlf
dGFnKCJ0ZXN0Y2FzZSIpCiAgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAotICAgICAgICAgICAg
ZmlsZT0idGVzdF9tYXJrX3NraXBpZl9jb250YWluc19uYW1lX3JlYXNvbi5weSIsCi0gICAgICAg
ICAgICBsaW5lPSIyIiwKLSAgICAgICAgICAgIGNsYXNzbmFtZT0idGVzdF9tYXJrX3NraXBpZl9j
b250YWluc19uYW1lX3JlYXNvbiIsCi0gICAgICAgICAgICBuYW1lPSJ0ZXN0X3NraXAiLAorICAg
ICAgICAgICAgY2xhc3NuYW1lPSJ0ZXN0X21hcmtfc2tpcGlmX2NvbnRhaW5zX25hbWVfcmVhc29u
IiwgbmFtZT0idGVzdF9za2lwIgogICAgICAgICApCiAgICAgICAgIHNub2RlID0gdG5vZGUuZmlu
ZF9maXJzdF9ieV90YWcoInNraXBwZWQiKQogICAgICAgICBzbm9kZS5hc3NlcnRfYXR0cih0eXBl
PSJweXRlc3Quc2tpcCIsIG1lc3NhZ2U9ImhlbGxvMjUiKQpAQCAtMzI1LDEwICszNzUsNyBAQCBj
bGFzcyBUZXN0UHl0aG9uKG9iamVjdCk6CiAgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoZmFpbHVy
ZXM9MSkKICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIp
CiAgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAotICAgICAgICAgICAgZmlsZT0idGVzdF9jbGFz
c25hbWVfaW5zdGFuY2UucHkiLAotICAgICAgICAgICAgbGluZT0iMSIsCi0gICAgICAgICAgICBj
bGFzc25hbWU9InRlc3RfY2xhc3NuYW1lX2luc3RhbmNlLlRlc3RDbGFzcyIsCi0gICAgICAgICAg
ICBuYW1lPSJ0ZXN0X21ldGhvZCIsCisgICAgICAgICAgICBjbGFzc25hbWU9InRlc3RfY2xhc3Nu
YW1lX2luc3RhbmNlLlRlc3RDbGFzcyIsIG5hbWU9InRlc3RfbWV0aG9kIgogICAgICAgICApCiAK
ICAgICBkZWYgdGVzdF9jbGFzc25hbWVfbmVzdGVkX2RpcihzZWxmLCB0ZXN0ZGlyKToKQEAgLTMz
OSwxMiArMzg2LDcgQEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAgICAgICBub2RlID0g
ZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQogICAgICAgICBub2RlLmFzc2VydF9h
dHRyKGZhaWx1cmVzPTEpCiAgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygi
dGVzdGNhc2UiKQotICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKLSAgICAgICAgICAgIGZpbGU9
b3MucGF0aC5qb2luKCJzdWIiLCAidGVzdF9oZWxsby5weSIpLAotICAgICAgICAgICAgbGluZT0i
MCIsCi0gICAgICAgICAgICBjbGFzc25hbWU9InN1Yi50ZXN0X2hlbGxvIiwKLSAgICAgICAgICAg
IG5hbWU9InRlc3RfZnVuYyIsCi0gICAgICAgICkKKyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIo
Y2xhc3NuYW1lPSJzdWIudGVzdF9oZWxsbyIsIG5hbWU9InRlc3RfZnVuYyIpCiAKICAgICBkZWYg
dGVzdF9pbnRlcm5hbF9lcnJvcihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtl
Y29uZnRlc3QoImRlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbCgpOiAwIC8gMCIpCkBAIC0zNjcs
NyArNDA5LDcgQEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAgICAgICAgICAgaW1wb3J0
IHN5cwogCiAgICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6Ci0gICAgICAgICAgICAgICAgcHJp
bnQgKCJoZWxsby1zdGRvdXQiKQorICAgICAgICAgICAgICAgIHByaW50KCJoZWxsby1zdGRvdXQi
KQogICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImhlbGxvLXN0ZGVyclxcbiIpCiAg
ICAgICAgICAgICAgICAgbG9nZ2luZy5pbmZvKCdpbmZvIG1zZycpCiAgICAgICAgICAgICAgICAg
bG9nZ2luZy53YXJuaW5nKCd3YXJuaW5nIG1zZycpCkBAIC0zODAsMjAgKzQyMiwxNSBAQCBjbGFz
cyBUZXN0UHl0aG9uKG9iamVjdCk6CiAgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90
YWcoInRlc3RzdWl0ZSIpCiAgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoZmFpbHVyZXM9MSwgdGVz
dHM9MSkKICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIp
Ci0gICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAotICAgICAgICAgICAgZmlsZT0idGVzdF9mYWls
dXJlX2Z1bmN0aW9uLnB5IiwKLSAgICAgICAgICAgIGxpbmU9IjMiLAotICAgICAgICAgICAgY2xh
c3NuYW1lPSJ0ZXN0X2ZhaWx1cmVfZnVuY3Rpb24iLAotICAgICAgICAgICAgbmFtZT0idGVzdF9m
YWlsIiwKLSAgICAgICAgKQorICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cihjbGFzc25hbWU9InRl
c3RfZmFpbHVyZV9mdW5jdGlvbiIsIG5hbWU9InRlc3RfZmFpbCIpCiAgICAgICAgIGZub2RlID0g
dG5vZGUuZmluZF9maXJzdF9ieV90YWcoImZhaWx1cmUiKQogICAgICAgICBmbm9kZS5hc3NlcnRf
YXR0cihtZXNzYWdlPSJWYWx1ZUVycm9yOiA0MiIpCiAgICAgICAgIGFzc2VydCAiVmFsdWVFcnJv
ciIgaW4gZm5vZGUudG94bWwoKQotICAgICAgICBzeXN0ZW1vdXQgPSBmbm9kZS5uZXh0X3NpZWJs
aW5nCisgICAgICAgIHN5c3RlbW91dCA9IGZub2RlLm5leHRfc2libGluZwogICAgICAgICBhc3Nl
cnQgc3lzdGVtb3V0LnRhZyA9PSAic3lzdGVtLW91dCIKICAgICAgICAgYXNzZXJ0ICJoZWxsby1z
dGRvdXQiIGluIHN5c3RlbW91dC50b3htbCgpCiAgICAgICAgIGFzc2VydCAiaW5mbyBtc2ciIG5v
dCBpbiBzeXN0ZW1vdXQudG94bWwoKQotICAgICAgICBzeXN0ZW1lcnIgPSBzeXN0ZW1vdXQubmV4
dF9zaWVibGluZworICAgICAgICBzeXN0ZW1lcnIgPSBzeXN0ZW1vdXQubmV4dF9zaWJsaW5nCiAg
ICAgICAgIGFzc2VydCBzeXN0ZW1lcnIudGFnID09ICJzeXN0ZW0tZXJyIgogICAgICAgICBhc3Nl
cnQgImhlbGxvLXN0ZGVyciIgaW4gc3lzdGVtZXJyLnRveG1sKCkKICAgICAgICAgYXNzZXJ0ICJp
bmZvIG1zZyIgbm90IGluIHN5c3RlbWVyci50b3htbCgpCkBAIC00NDIsMTAgKzQ3OSw3IEBAIGNs
YXNzIFRlc3RQeXRob24ob2JqZWN0KToKIAogICAgICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRf
bnRoX2J5X3RhZygidGVzdGNhc2UiLCBpbmRleCkKICAgICAgICAgICAgIHRub2RlLmFzc2VydF9h
dHRyKAotICAgICAgICAgICAgICAgIGZpbGU9InRlc3RfZmFpbHVyZV9lc2NhcGUucHkiLAotICAg
ICAgICAgICAgICAgIGxpbmU9IjEiLAotICAgICAgICAgICAgICAgIGNsYXNzbmFtZT0idGVzdF9m
YWlsdXJlX2VzY2FwZSIsCi0gICAgICAgICAgICAgICAgbmFtZT0idGVzdF9mdW5jWyVzXSIgJSBj
aGFyLAorICAgICAgICAgICAgICAgIGNsYXNzbmFtZT0idGVzdF9mYWlsdXJlX2VzY2FwZSIsIG5h
bWU9InRlc3RfZnVuY1slc10iICUgY2hhcgogICAgICAgICAgICAgKQogICAgICAgICAgICAgc3lz
b3V0ID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoInN5c3RlbS1vdXQiKQogICAgICAgICAgICAg
dGV4dCA9IHN5c291dC50ZXh0CkBAIC00NjYsMTggKzUwMCwxMCBAQCBjbGFzcyBUZXN0UHl0aG9u
KG9iamVjdCk6CiAgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0
ZSIpCiAgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoZmFpbHVyZXM9MSwgdGVzdHM9MikKICAgICAg
ICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCi0gICAgICAgIHRu
b2RlLmFzc2VydF9hdHRyKAotICAgICAgICAgICAgZmlsZT0idGVzdF9qdW5pdF9wcmVmaXhpbmcu
cHkiLAotICAgICAgICAgICAgbGluZT0iMCIsCi0gICAgICAgICAgICBjbGFzc25hbWU9Inh5ei50
ZXN0X2p1bml0X3ByZWZpeGluZyIsCi0gICAgICAgICAgICBuYW1lPSJ0ZXN0X2Z1bmMiLAotICAg
ICAgICApCisgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKGNsYXNzbmFtZT0ieHl6LnRlc3RfanVu
aXRfcHJlZml4aW5nIiwgbmFtZT0idGVzdF9mdW5jIikKICAgICAgICAgdG5vZGUgPSBub2RlLmZp
bmRfbnRoX2J5X3RhZygidGVzdGNhc2UiLCAxKQogICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigK
LSAgICAgICAgICAgIGZpbGU9InRlc3RfanVuaXRfcHJlZml4aW5nLnB5IiwKLSAgICAgICAgICAg
IGxpbmU9IjMiLAotICAgICAgICAgICAgY2xhc3NuYW1lPSJ4eXoudGVzdF9qdW5pdF9wcmVmaXhp
bmcuIiAiVGVzdEhlbGxvIiwKLSAgICAgICAgICAgIG5hbWU9InRlc3RfaGVsbG8iLAorICAgICAg
ICAgICAgY2xhc3NuYW1lPSJ4eXoudGVzdF9qdW5pdF9wcmVmaXhpbmcuVGVzdEhlbGxvIiwgbmFt
ZT0idGVzdF9oZWxsbyIKICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfeGZhaWx1cmVfZnVuY3Rp
b24oc2VsZiwgdGVzdGRpcik6CkBAIC00OTEsMTggKzUxNywzMSBAQCBjbGFzcyBUZXN0UHl0aG9u
KG9iamVjdCk6CiAgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKICAg
ICAgICAgYXNzZXJ0IG5vdCByZXN1bHQucmV0CiAgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJz
dF9ieV90YWcoInRlc3RzdWl0ZSIpCi0gICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoc2tpcHM9MSwg
dGVzdHM9MSkKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcGVkPTEsIHRlc3RzPTEpCiAg
ICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQotICAgICAg
ICB0bm9kZS5hc3NlcnRfYXR0cigKLSAgICAgICAgICAgIGZpbGU9InRlc3RfeGZhaWx1cmVfZnVu
Y3Rpb24ucHkiLAotICAgICAgICAgICAgbGluZT0iMSIsCi0gICAgICAgICAgICBjbGFzc25hbWU9
InRlc3RfeGZhaWx1cmVfZnVuY3Rpb24iLAotICAgICAgICAgICAgbmFtZT0idGVzdF94ZmFpbCIs
Ci0gICAgICAgICkKKyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIoY2xhc3NuYW1lPSJ0ZXN0X3hm
YWlsdXJlX2Z1bmN0aW9uIiwgbmFtZT0idGVzdF94ZmFpbCIpCiAgICAgICAgIGZub2RlID0gdG5v
ZGUuZmluZF9maXJzdF9ieV90YWcoInNraXBwZWQiKQotICAgICAgICBmbm9kZS5hc3NlcnRfYXR0
cihtZXNzYWdlPSJleHBlY3RlZCB0ZXN0IGZhaWx1cmUiKQorICAgICAgICBmbm9kZS5hc3NlcnRf
YXR0cih0eXBlPSJweXRlc3QueGZhaWwiLCBtZXNzYWdlPSI0MiIpCiAgICAgICAgICMgYXNzZXJ0
ICJWYWx1ZUVycm9yIiBpbiBmbm9kZS50b3htbCgpCiAKKyAgICBkZWYgdGVzdF94ZmFpbHVyZV9t
YXJrZXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAg
ICAgICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVz
dC5tYXJrLnhmYWlsKHJlYXNvbj0iNDIiKQorICAgICAgICAgICAgZGVmIHRlc3RfeGZhaWwoKToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAg
ICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQg
bm90IHJlc3VsdC5yZXQKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVz
dHN1aXRlIikKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcGVkPTEsIHRlc3RzPTEpCisg
ICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAg
ICB0bm9kZS5hc3NlcnRfYXR0cihjbGFzc25hbWU9InRlc3RfeGZhaWx1cmVfbWFya2VyIiwgbmFt
ZT0idGVzdF94ZmFpbCIpCisgICAgICAgIGZub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWco
InNraXBwZWQiKQorICAgICAgICBmbm9kZS5hc3NlcnRfYXR0cih0eXBlPSJweXRlc3QueGZhaWwi
LCBtZXNzYWdlPSI0MiIpCisKICAgICBkZWYgdGVzdF94ZmFpbF9jYXB0dXJlc19vdXRwdXRfb25j
ZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAg
ICAgIiIiCkBAIC01MzQsMTQgKzU3Myw5IEBAIGNsYXNzIFRlc3RQeXRob24ob2JqZWN0KToKICAg
ICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQogICAgICAgICAjIGFzc2Vy
dCByZXN1bHQucmV0CiAgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3Rz
dWl0ZSIpCi0gICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoc2tpcHM9MCwgdGVzdHM9MSkKKyAgICAg
ICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcGVkPTAsIHRlc3RzPTEpCiAgICAgICAgIHRub2RlID0g
bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQotICAgICAgICB0bm9kZS5hc3NlcnRf
YXR0cigKLSAgICAgICAgICAgIGZpbGU9InRlc3RfeGZhaWx1cmVfeHBhc3MucHkiLAotICAgICAg
ICAgICAgbGluZT0iMSIsCi0gICAgICAgICAgICBjbGFzc25hbWU9InRlc3RfeGZhaWx1cmVfeHBh
c3MiLAotICAgICAgICAgICAgbmFtZT0idGVzdF94cGFzcyIsCi0gICAgICAgICkKKyAgICAgICAg
dG5vZGUuYXNzZXJ0X2F0dHIoY2xhc3NuYW1lPSJ0ZXN0X3hmYWlsdXJlX3hwYXNzIiwgbmFtZT0i
dGVzdF94cGFzcyIpCiAKICAgICBkZWYgdGVzdF94ZmFpbHVyZV94cGFzc19zdHJpY3Qoc2VsZiwg
dGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAgLTU1NSwxNCArNTg5LDkg
QEAgY2xhc3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFu
ZHBhcnNlKHRlc3RkaXIpCiAgICAgICAgICMgYXNzZXJ0IHJlc3VsdC5yZXQKICAgICAgICAgbm9k
ZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKLSAgICAgICAgbm9kZS5hc3Nl
cnRfYXR0cihza2lwcz0wLCB0ZXN0cz0xKQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKHNraXBw
ZWQ9MCwgdGVzdHM9MSkKICAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0
ZXN0Y2FzZSIpCi0gICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAotICAgICAgICAgICAgZmlsZT0i
dGVzdF94ZmFpbHVyZV94cGFzc19zdHJpY3QucHkiLAotICAgICAgICAgICAgbGluZT0iMSIsCi0g
ICAgICAgICAgICBjbGFzc25hbWU9InRlc3RfeGZhaWx1cmVfeHBhc3Nfc3RyaWN0IiwKLSAgICAg
ICAgICAgIG5hbWU9InRlc3RfeHBhc3MiLAotICAgICAgICApCisgICAgICAgIHRub2RlLmFzc2Vy
dF9hdHRyKGNsYXNzbmFtZT0idGVzdF94ZmFpbHVyZV94cGFzc19zdHJpY3QiLCBuYW1lPSJ0ZXN0
X3hwYXNzIikKICAgICAgICAgZm5vZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygiZmFpbHVy
ZSIpCiAgICAgICAgIGZub2RlLmFzc2VydF9hdHRyKG1lc3NhZ2U9IltYUEFTUyhzdHJpY3QpXSBU
aGlzIG5lZWRzIHRvIGZhaWwhIikKIApAQCAtNTczLDggKzYwMiw2IEBAIGNsYXNzIFRlc3RQeXRo
b24ob2JqZWN0KToKICAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1
aXRlIikKICAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihlcnJvcnM9MSwgdGVzdHM9MSkKICAgICAg
ICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCi0gICAgICAgIHRu
b2RlLmFzc2VydF9hdHRyKGZpbGU9InRlc3RfY29sbGVjdF9lcnJvci5weSIsIG5hbWU9InRlc3Rf
Y29sbGVjdF9lcnJvciIpCi0gICAgICAgIGFzc2VydCB0bm9kZVsibGluZSJdIGlzIE5vbmUKICAg
ICAgICAgZm5vZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygiZXJyb3IiKQogICAgICAgICBm
bm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSJjb2xsZWN0aW9uIGZhaWx1cmUiKQogICAgICAgICBh
c3NlcnQgIlN5bnRheEVycm9yIiBpbiBmbm9kZS50b3htbCgpCkBAIC01ODUsNyArNjEyLDcgQEAg
Y2xhc3MgVGVzdFB5dGhvbihvYmplY3QpOgogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICAj
IGNvZGluZzogbGF0aW4xCiAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgotICAgICAgICAg
ICAgICAgIHByaW50ICglcikKKyAgICAgICAgICAgICAgICBwcmludCglcikKICAgICAgICAgICAg
ICAgICBhc3NlcnQgMAogICAgICAgICAiIiIKICAgICAgICAgICAgICUgdmFsdWUKQEAgLTcxMyw3
ICs3NDAsNiBAQCBkZWYgdGVzdF9kb250X2NvbmZpZ3VyZV9vbl9zbGF2ZXModG1wZGlyKToKICAg
ICBnb3R0ZW4gPSBbXQogCiAgICAgY2xhc3MgRmFrZUNvbmZpZyhvYmplY3QpOgotCiAgICAgICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgICAgIHNlbGYucGx1Z2lubWFuYWdlciA9IHNl
bGYKICAgICAgICAgICAgIHNlbGYub3B0aW9uID0gc2VsZgpAQCAtNzM3LDcgKzc2Myw2IEBAIGRl
ZiB0ZXN0X2RvbnRfY29uZmlndXJlX29uX3NsYXZlcyh0bXBkaXIpOgogCiAKIGNsYXNzIFRlc3RO
b25QeXRob24ob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X3N1bW1pbmdfc2ltcGxlKHNlbGYsIHRl
c3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgICAgICIiIgpA
QCAtNzU5LDcgKzc4NCw3IEBAIGNsYXNzIFRlc3ROb25QeXRob24ob2JqZWN0KToKICAgICAgICAg
cmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQogICAgICAgICBhc3NlcnQgcmVzdWx0
LnJldAogICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQot
ICAgICAgICBub2RlLmFzc2VydF9hdHRyKGVycm9ycz0wLCBmYWlsdXJlcz0xLCBza2lwcz0wLCB0
ZXN0cz0xKQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKGVycm9ycz0wLCBmYWlsdXJlcz0xLCBz
a2lwcGVkPTAsIHRlc3RzPTEpCiAgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3Rh
ZygidGVzdGNhc2UiKQogICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cihuYW1lPSJteWZpbGUueHl6
IikKICAgICAgICAgZm5vZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygiZmFpbHVyZSIpCkBA
IC04NDcsMTQgKzg3MiwxMSBAQCBkZWYgdGVzdF9pbnZhbGlkX3htbF9lc2NhcGUoKToKIAogZGVm
IHRlc3RfbG9neG1sX3BhdGhfZXhwYW5zaW9uKHRtcGRpciwgbW9ua2V5cGF0Y2gpOgogICAgIGhv
bWVfdGlsZGUgPSBweS5wYXRoLmxvY2FsKG9zLnBhdGguZXhwYW5kdXNlcigifiIpKS5qb2luKCJ0
ZXN0LnhtbCIpCi0KICAgICB4bWxfdGlsZGUgPSBMb2dYTUwoIn4lc3Rlc3QueG1sIiAlIHRtcGRp
ci5zZXAsIE5vbmUpCiAgICAgYXNzZXJ0IHhtbF90aWxkZS5sb2dmaWxlID09IGhvbWVfdGlsZGUK
IAotICAgICMgdGhpcyBpcyBoZXJlIGZvciB3aGVuICRIT01FIGlzIG5vdCBzZXQgY29ycmVjdAot
ICAgIG1vbmtleXBhdGNoLnNldGVudigiSE9NRSIsIHRtcGRpcikKKyAgICBtb25rZXlwYXRjaC5z
ZXRlbnYoIkhPTUUiLCBzdHIodG1wZGlyKSkKICAgICBob21lX3ZhciA9IG9zLnBhdGgubm9ybXBh
dGgob3MucGF0aC5leHBhbmR2YXJzKCIkSE9NRS90ZXN0LnhtbCIpKQotCiAgICAgeG1sX3ZhciA9
IExvZ1hNTCgiJEhPTUUlc3Rlc3QueG1sIiAlIHRtcGRpci5zZXAsIE5vbmUpCiAgICAgYXNzZXJ0
IHhtbF92YXIubG9nZmlsZSA9PSBob21lX3ZhcgogCkBAIC05NDMsOCArOTY1LDcgQEAgZGVmIHRl
c3RfZG91YmxlX2NvbG9uX3NwbGl0X21ldGhvZF9pc3N1ZTQ2OSh0ZXN0ZGlyKToKIGRlZiB0ZXN0
X3VuaWNvZGVfaXNzdWUzNjgodGVzdGRpcik6CiAgICAgcGF0aCA9IHRlc3RkaXIudG1wZGlyLmpv
aW4oInRlc3QueG1sIikKICAgICBsb2cgPSBMb2dYTUwoc3RyKHBhdGgpLCBOb25lKQotICAgIHVz
dHIgPSBweS5idWlsdGluLl90b3RleHQoItCS0J3QmCEiLCAidXRmLTgiKQotICAgIGZyb20gX3B5
dGVzdC5ydW5uZXIgaW1wb3J0IEJhc2VSZXBvcnQKKyAgICB1c3RyID0gdSLQktCd0JghIgogCiAg
ICAgY2xhc3MgUmVwb3J0KEJhc2VSZXBvcnQpOgogICAgICAgICBsb25ncmVwciA9IHVzdHIKQEAg
LTEwMDgsNyArMTAyOSwyOCBAQCBkZWYgdGVzdF9yZWNvcmRfcHJvcGVydHlfc2FtZV9uYW1lKHRl
c3RkaXIpOgogICAgIHBub2Rlc1sxXS5hc3NlcnRfYXR0cihuYW1lPSJmb28iLCB2YWx1ZT0iYmF6
IikKIAogCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImZpeHR1cmVfbmFtZSIsIFsicmVjb3Jk
X3Byb3BlcnR5IiwgInJlY29yZF94bWxfYXR0cmlidXRlIl0pCitkZWYgdGVzdF9yZWNvcmRfZml4
dHVyZXNfd2l0aG91dF9qdW5pdHhtbCh0ZXN0ZGlyLCBmaXh0dXJlX25hbWUpOgorICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGRlZiB0ZXN0X3JlY29yZCh7Zml4
dHVyZV9uYW1lfSk6CisgICAgICAgICAgICB7Zml4dHVyZV9uYW1lfSgiZm9vIiwgImJhciIpCisg
ICAgIiIiLmZvcm1hdCgKKyAgICAgICAgICAgIGZpeHR1cmVfbmFtZT1maXh0dXJlX25hbWUKKyAg
ICAgICAgKQorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK0BweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiZGVm
YXVsdCIpCiBkZWYgdGVzdF9yZWNvcmRfYXR0cmlidXRlKHRlc3RkaXIpOgorICAgIHRlc3RkaXIu
bWFrZWluaSgKKyAgICAgICAgIiIiCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIGp1bml0X2Zh
bWlseSA9IHh1bml0MQorICAgICIiIgorICAgICkKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAg
ICAgICAgICIiIgogICAgICAgICBpbXBvcnQgcHl0ZXN0CkBAIC0xMDI2LDE2ICsxMDY4LDU3IEBA
IGRlZiB0ZXN0X3JlY29yZF9hdHRyaWJ1dGUodGVzdGRpcik6CiAgICAgdG5vZGUuYXNzZXJ0X2F0
dHIoYmFyPSIxIikKICAgICB0bm9kZS5hc3NlcnRfYXR0cihmb289IjwxIikKICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgIFsidGVzdF9yZWNvcmRfYXR0cmlidXRlLnB5
Ojp0ZXN0X3JlY29yZCIsICIqcmVjb3JkX3htbF9hdHRyaWJ1dGUqZXhwZXJpbWVudGFsKiJdCisg
ICAgICAgIFsiKnRlc3RfcmVjb3JkX2F0dHJpYnV0ZS5weTo2OipyZWNvcmRfeG1sX2F0dHJpYnV0
ZSBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSJdCiAgICAgKQogCiAKLWRlZiB0ZXN0X3JhbmRv
bV9yZXBvcnRfbG9nX3hkaXN0KHRlc3RkaXIpOgorQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdz
KCJkZWZhdWx0IikKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZml4dHVyZV9uYW1lIiwgWyJy
ZWNvcmRfeG1sX2F0dHJpYnV0ZSIsICJyZWNvcmRfcHJvcGVydHkiXSkKK2RlZiB0ZXN0X3JlY29y
ZF9maXh0dXJlc194dW5pdDIodGVzdGRpciwgZml4dHVyZV9uYW1lKToKKyAgICAiIiJFbnN1cmUg
cmVjb3JkX3htbF9hdHRyaWJ1dGUgYW5kIHJlY29yZF9wcm9wZXJ0eSBkcm9wIHZhbHVlcyB3aGVu
IG91dHNpZGUgb2YgbGVnYWN5IGZhbWlseQorICAgICIiIgorICAgIHRlc3RkaXIubWFrZWluaSgK
KyAgICAgICAgIiIiCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIGp1bml0X2ZhbWlseSA9IHh1
bml0MgorICAgICIiIgorICAgICkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIi
IgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgIGRlZiBvdGhlcih7Zml4dHVyZV9uYW1lfSk6CisgICAgICAgICAgICB7Zml4dHVyZV9uYW1l
fSgiYmFyIiwgMSkKKyAgICAgICAgZGVmIHRlc3RfcmVjb3JkKHtmaXh0dXJlX25hbWV9LCBvdGhl
cik6CisgICAgICAgICAgICB7Zml4dHVyZV9uYW1lfSgiZm9vIiwgIjwxIik7CisgICAgIiIiLmZv
cm1hdCgKKyAgICAgICAgICAgIGZpeHR1cmVfbmFtZT1maXh0dXJlX25hbWUKKyAgICAgICAgKQor
ICAgICkKKworICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpciwgIi1ydyIpCisg
ICAgZXhwZWN0ZWRfbGluZXMgPSBbXQorICAgIGlmIGZpeHR1cmVfbmFtZSA9PSAicmVjb3JkX3ht
bF9hdHRyaWJ1dGUiOgorICAgICAgICBleHBlY3RlZF9saW5lcy5hcHBlbmQoCisgICAgICAgICAg
ICAiKnRlc3RfcmVjb3JkX2ZpeHR1cmVzX3h1bml0Mi5weTo2OipyZWNvcmRfeG1sX2F0dHJpYnV0
ZSBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSIKKyAgICAgICAgKQorICAgIGV4cGVjdGVkX2xp
bmVzID0gWworICAgICAgICAiKnRlc3RfcmVjb3JkX2ZpeHR1cmVzX3h1bml0Mi5weTo2Oip7Zml4
dHVyZV9uYW1lfSBpcyBpbmNvbXBhdGlibGUgIgorICAgICAgICAid2l0aCBqdW5pdF9mYW1pbHkg
J3h1bml0MicgKHVzZSAnbGVnYWN5JyBvciAneHVuaXQxJykiLmZvcm1hdCgKKyAgICAgICAgICAg
IGZpeHR1cmVfbmFtZT1maXh0dXJlX25hbWUKKyAgICAgICAgKQorICAgIF0KKyAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoZXhwZWN0ZWRfbGluZXMpCisKKworZGVmIHRlc3RfcmFuZG9t
X3JlcG9ydF9sb2dfeGRpc3QodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgogICAgICIiInhkaXN0IGNh
bGxzIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCBhcyB0aGV5IGFyZSBleGVjdXRlZCBieSB0aGUg
c2xhdmVzLAogICAgIHdpdGggbm9kZXMgZnJvbSBzZXZlcmFsIG5vZGVzIG92ZXJsYXBwaW5nLCBz
byBqdW5pdHhtbCBtdXN0IGNvcGUgd2l0aCB0aGF0CiAgICAgdG8gcHJvZHVjZSBjb3JyZWN0IHJl
cG9ydHMuICMxMDY0CiAgICAgIiIiCiAgICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgieGRpc3QiKQor
ICAgIG1vbmtleXBhdGNoLmRlbGVudigiUFlURVNUX0RJU0FCTEVfUExVR0lOX0FVVE9MT0FEIiwg
cmFpc2luZz1GYWxzZSkKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgogICAg
ICAgICBpbXBvcnQgcHl0ZXN0LCB0aW1lCkBAIC0xMDU0LDYgKzExMzcsMjAgQEAgZGVmIHRlc3Rf
cmFuZG9tX3JlcG9ydF9sb2dfeGRpc3QodGVzdGRpcik6CiAgICAgYXNzZXJ0IGZhaWxlZCA9PSBb
InRlc3RfeFsyMl0iXQogCiAKK2RlZiB0ZXN0X3Jvb3RfdGVzdHN1aXRlc190YWcodGVzdGRpcik6
CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRlc3Rf
eCgpOgorICAgICAgICAgICAgcGFzcworICAgICIiIgorICAgICkKKyAgICBfLCBkb20gPSBydW5h
bmRwYXJzZSh0ZXN0ZGlyKQorICAgIHJvb3QgPSBkb20uZ2V0X3VuaXF1ZV9jaGlsZAorICAgIGFz
c2VydCByb290LnRhZyA9PSAidGVzdHN1aXRlcyIKKyAgICBzdWl0ZV9ub2RlID0gcm9vdC5nZXRf
dW5pcXVlX2NoaWxkCisgICAgYXNzZXJ0IHN1aXRlX25vZGUudGFnID09ICJ0ZXN0c3VpdGUiCisK
KwogZGVmIHRlc3RfcnVuc190d2ljZSh0ZXN0ZGlyKToKICAgICBmID0gdGVzdGRpci5tYWtlcHlm
aWxlKAogICAgICAgICAiIiIKQEAgLTExMjEsMzAgKzEyMTgsMjQgQEAgZGVmIHRlc3RfZmFuY3lf
aXRlbXNfcmVncmVzc2lvbih0ZXN0ZGlyKToKIAogICAgIGFzc2VydCAiSU5URVJOQUxFUlJPUiIg
bm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKIAotICAgIGl0ZW1zID0gc29ydGVkKAotICAgICAg
ICAiJShjbGFzc25hbWUpcyAlKG5hbWUpcyAlKGZpbGUpcyIgJSB4IGZvciB4IGluIGRvbS5maW5k
X2J5X3RhZygidGVzdGNhc2UiKQotICAgICkKKyAgICBpdGVtcyA9IHNvcnRlZCgiJShjbGFzc25h
bWUpcyAlKG5hbWUpcyIgJSB4IGZvciB4IGluIGRvbS5maW5kX2J5X3RhZygidGVzdGNhc2UiKSkK
ICAgICBpbXBvcnQgcHByaW50CiAKICAgICBwcHJpbnQucHByaW50KGl0ZW1zKQotICAgIGFzc2Vy
dCAoCi0gICAgICAgIGl0ZW1zCi0gICAgICAgID09IFsKLSAgICAgICAgICAgIHUiY29uZnRlc3Qg
YSBjb25mdGVzdC5weSIsCi0gICAgICAgICAgICB1ImNvbmZ0ZXN0IGEgY29uZnRlc3QucHkiLAot
ICAgICAgICAgICAgdSJjb25mdGVzdCBiIGNvbmZ0ZXN0LnB5IiwKLSAgICAgICAgICAgIHUidGVz
dF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uIGEgdGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uLnB5
IiwKLSAgICAgICAgICAgIHUidGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uIGEgdGVzdF9mYW5j
eV9pdGVtc19yZWdyZXNzaW9uLnB5IiwKLSAgICAgICAgICAgIHUidGVzdF9mYW5jeV9pdGVtc19y
ZWdyZXNzaW9uIGIgdGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uLnB5IiwKLSAgICAgICAgICAg
IHUidGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uIHRlc3RfcGFzcyIgdSIgdGVzdF9mYW5jeV9p
dGVtc19yZWdyZXNzaW9uLnB5IiwKLSAgICAgICAgXQotICAgICkKKyAgICBhc3NlcnQgaXRlbXMg
PT0gWworICAgICAgICB1ImNvbmZ0ZXN0IGEiLAorICAgICAgICB1ImNvbmZ0ZXN0IGEiLAorICAg
ICAgICB1ImNvbmZ0ZXN0IGIiLAorICAgICAgICB1InRlc3RfZmFuY3lfaXRlbXNfcmVncmVzc2lv
biBhIiwKKyAgICAgICAgdSJ0ZXN0X2ZhbmN5X2l0ZW1zX3JlZ3Jlc3Npb24gYSIsCisgICAgICAg
IHUidGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uIGIiLAorICAgICAgICB1InRlc3RfZmFuY3lf
aXRlbXNfcmVncmVzc2lvbiB0ZXN0X3Bhc3MiLAorICAgIF0KIAogCiBkZWYgdGVzdF9nbG9iYWxf
cHJvcGVydGllcyh0ZXN0ZGlyKToKICAgICBwYXRoID0gdGVzdGRpci50bXBkaXIuam9pbigidGVz
dF9nbG9iYWxfcHJvcGVydGllcy54bWwiKQogICAgIGxvZyA9IExvZ1hNTChzdHIocGF0aCksIE5v
bmUpCi0gICAgZnJvbSBfcHl0ZXN0LnJ1bm5lciBpbXBvcnQgQmFzZVJlcG9ydAogCiAgICAgY2xh
c3MgUmVwb3J0KEJhc2VSZXBvcnQpOgogICAgICAgICBzZWN0aW9ucyA9IFtdCkBAIC0xMTgwLDcg
KzEyNzEsNiBAQCBkZWYgdGVzdF91cmxfcHJvcGVydHkodGVzdGRpcik6CiAgICAgdGVzdF91cmwg
PSAiaHR0cDovL3d3dy5naXRodWIuY29tL3B5dGVzdC1kZXYiCiAgICAgcGF0aCA9IHRlc3RkaXIu
dG1wZGlyLmpvaW4oInRlc3RfdXJsX3Byb3BlcnR5LnhtbCIpCiAgICAgbG9nID0gTG9nWE1MKHN0
cihwYXRoKSwgTm9uZSkKLSAgICBmcm9tIF9weXRlc3QucnVubmVyIGltcG9ydCBCYXNlUmVwb3J0
CiAKICAgICBjbGFzcyBSZXBvcnQoQmFzZVJlcG9ydCk6CiAgICAgICAgIGxvbmdyZXByID0gIkZv
b0JhckJheiIKQEAgLTEyMDMsNiArMTI5Myw1MyBAQCBkZWYgdGVzdF91cmxfcHJvcGVydHkodGVz
dGRpcik6CiAgICAgKSwgIlRoZSBVUkwgZGlkIG5vdCBnZXQgd3JpdHRlbiB0byB0aGUgeG1sIgog
CiAKK2RlZiB0ZXN0X3JlY29yZF90ZXN0c3VpdGVfcHJvcGVydHkodGVzdGRpcik6CisgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRlc3RfZnVuYzEocmVj
b3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eSk6CisgICAgICAgICAgICByZWNvcmRfdGVzdHN1aXRlX3By
b3BlcnR5KCJzdGF0cyIsICJhbGwgZ29vZCIpCisKKyAgICAgICAgZGVmIHRlc3RfZnVuYzIocmVj
b3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eSk6CisgICAgICAgICAgICByZWNvcmRfdGVzdHN1aXRlX3By
b3BlcnR5KCJzdGF0cyIsIDEwKQorICAgICIiIgorICAgICkKKyAgICByZXN1bHQsIGRvbSA9IHJ1
bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgIG5vZGUg
PSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgcHJvcGVydGllc19ub2Rl
ID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygicHJvcGVydGllcyIpCisgICAgcDFfbm9kZSA9IHBy
b3BlcnRpZXNfbm9kZS5maW5kX250aF9ieV90YWcoInByb3BlcnR5IiwgMCkKKyAgICBwMl9ub2Rl
ID0gcHJvcGVydGllc19ub2RlLmZpbmRfbnRoX2J5X3RhZygicHJvcGVydHkiLCAxKQorICAgIHAx
X25vZGUuYXNzZXJ0X2F0dHIobmFtZT0ic3RhdHMiLCB2YWx1ZT0iYWxsIGdvb2QiKQorICAgIHAy
X25vZGUuYXNzZXJ0X2F0dHIobmFtZT0ic3RhdHMiLCB2YWx1ZT0iMTAiKQorCisKK2RlZiB0ZXN0
X3JlY29yZF90ZXN0c3VpdGVfcHJvcGVydHlfanVuaXRfZGlzYWJsZWQodGVzdGRpcik6CisgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHRlc3RfZnVuYzEo
cmVjb3JkX3Rlc3RzdWl0ZV9wcm9wZXJ0eSk6CisgICAgICAgICAgICByZWNvcmRfdGVzdHN1aXRl
X3Byb3BlcnR5KCJzdGF0cyIsICJhbGwgZ29vZCIpCisgICAgIiIiCisgICAgKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKwor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJqdW5pdCIsIFtUcnVlLCBGYWxzZV0pCitkZWYgdGVz
dF9yZWNvcmRfdGVzdHN1aXRlX3Byb3BlcnR5X3R5cGVfY2hlY2tpbmcodGVzdGRpciwganVuaXQp
OgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGRlZiB0ZXN0
X2Z1bmMxKHJlY29yZF90ZXN0c3VpdGVfcHJvcGVydHkpOgorICAgICAgICAgICAgcmVjb3JkX3Rl
c3RzdWl0ZV9wcm9wZXJ0eSgxLCAyKQorICAgICIiIgorICAgICkKKyAgICBhcmdzID0gKCItLWp1
bml0eG1sPXRlc3RzLnhtbCIsKSBpZiBqdW5pdCBlbHNlICgpCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKmFyZ3MpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgWyIqVHlwZUVycm9yOiBuYW1lIHBhcmFt
ZXRlciBuZWVkcyB0byBiZSBhIHN0cmluZywgYnV0IGludCBnaXZlbiJdCisgICAgKQorCisKIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3VpdGVfbmFtZSIsIFsibXlfc3VpdGUiLCAiIl0pCiBk
ZWYgdGVzdF9zZXRfc3VpdGVfbmFtZSh0ZXN0ZGlyLCBzdWl0ZV9uYW1lKToKICAgICBpZiBzdWl0
ZV9uYW1lOgpAQCAtMTIyOSwzICsxMzY2LDgyIEBAIGRlZiB0ZXN0X3NldF9zdWl0ZV9uYW1lKHRl
c3RkaXIsIHN1aXRlX25hbWUpOgogICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKICAgICBub2Rl
ID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQogICAgIG5vZGUuYXNzZXJ0X2F0
dHIobmFtZT1leHBlY3RlZCkKKworCitkZWYgdGVzdF9lc2NhcGVkX3NraXByZWFzb25faXNzdWUz
NTMzKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5tYXJrLnNraXAocmVhc29uPScxIDw+
IDInKQorICAgICAgICBkZWYgdGVzdF9za2lwKCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIi
CisgICAgKQorICAgIF8sIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgbm9kZSA9IGRv
bS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgIHNub2RlID0gbm9kZS5maW5kX2Zp
cnN0X2J5X3RhZygic2tpcHBlZCIpCisgICAgYXNzZXJ0ICIxIDw+IDIiIGluIHNub2RlLnRleHQK
KyAgICBzbm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSIxIDw+IDIiKQorCisKK2RlZiB0ZXN0X2xv
Z2dpbmdfcGFzc2luZ190ZXN0c19kaXNhYmxlZF9kb2VzX25vdF9sb2dfdGVzdF9vdXRwdXQodGVz
dGRpcik6CisgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAiIiIKKyAgICAgICAgW3B5dGVz
dF0KKyAgICAgICAganVuaXRfbG9nX3Bhc3NpbmdfdGVzdHM9RmFsc2UKKyAgICAgICAganVuaXRf
bG9nZ2luZz1zeXN0ZW0tb3V0CisgICAgIiIiCisgICAgKQorICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgaW1wb3J0IGxv
Z2dpbmcKKyAgICAgICAgaW1wb3J0IHN5cworCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAg
ICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJ1RoaXMgaXMgc3Rkb3V0JykKKyAgICAgICAgICAg
IHN5cy5zdGRlcnIud3JpdGUoJ1RoaXMgaXMgc3RkZXJyJykKKyAgICAgICAgICAgIGxvZ2dpbmcu
d2FybmluZygnaGVsbG8nKQorICAgICIiIgorICAgICkKKyAgICByZXN1bHQsIGRvbSA9IHJ1bmFu
ZHBhcnNlKHRlc3RkaXIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgIG5vZGUgPSBk
b20uZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICBhc3NlcnQgbGVuKG5vZGUuZmlu
ZF9ieV90YWcoInN5c3RlbS1lcnIiKSkgPT0gMAorICAgIGFzc2VydCBsZW4obm9kZS5maW5kX2J5
X3RhZygic3lzdGVtLW91dCIpKSA9PSAwCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJq
dW5pdF9sb2dnaW5nIiwgWyJubyIsICJzeXN0ZW0tb3V0IiwgInN5c3RlbS1lcnIiXSkKK2RlZiB0
ZXN0X2xvZ2dpbmdfcGFzc2luZ190ZXN0c19kaXNhYmxlZF9sb2dzX291dHB1dF9mb3JfZmFpbGlu
Z190ZXN0X2lzc3VlNTQzMCgKKyAgICB0ZXN0ZGlyLCBqdW5pdF9sb2dnaW5nCispOgorICAgIHRl
c3RkaXIubWFrZWluaSgKKyAgICAgICAgIiIiCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIGp1
bml0X2xvZ19wYXNzaW5nX3Rlc3RzPUZhbHNlCisgICAgIiIiCisgICAgKQorICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
aW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgaW1wb3J0IHN5cworCisgICAgICAgIGRlZiB0ZXN0X2Z1
bmMoKToKKyAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnaGVsbG8nKQorICAgICAgICAgICAg
YXNzZXJ0IDAKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0
ZXN0ZGlyLCAiLW8iLCAianVuaXRfbG9nZ2luZz0lcyIgJSBqdW5pdF9sb2dnaW5nKQorICAgIGFz
c2VydCByZXN1bHQucmV0ID09IDEKKyAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0
ZXN0Y2FzZSIpCisgICAgaWYganVuaXRfbG9nZ2luZyA9PSAic3lzdGVtLW91dCI6CisgICAgICAg
IGFzc2VydCBsZW4obm9kZS5maW5kX2J5X3RhZygic3lzdGVtLWVyciIpKSA9PSAwCisgICAgICAg
IGFzc2VydCBsZW4obm9kZS5maW5kX2J5X3RhZygic3lzdGVtLW91dCIpKSA9PSAxCisgICAgZWxp
ZiBqdW5pdF9sb2dnaW5nID09ICJzeXN0ZW0tZXJyIjoKKyAgICAgICAgYXNzZXJ0IGxlbihub2Rl
LmZpbmRfYnlfdGFnKCJzeXN0ZW0tZXJyIikpID09IDEKKyAgICAgICAgYXNzZXJ0IGxlbihub2Rl
LmZpbmRfYnlfdGFnKCJzeXN0ZW0tb3V0IikpID09IDAKKyAgICBlbHNlOgorICAgICAgICBhc3Nl
cnQganVuaXRfbG9nZ2luZyA9PSAibm8iCisgICAgICAgIGFzc2VydCBsZW4obm9kZS5maW5kX2J5
X3RhZygic3lzdGVtLWVyciIpKSA9PSAwCisgICAgICAgIGFzc2VydCBsZW4obm9kZS5maW5kX2J5
X3RhZygic3lzdGVtLW91dCIpKSA9PSAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfbWFyay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tYXJrLnB5CmluZGV4IGUy
ZTczNjlkYzc5ODRkNzMxZTUwMzU0NWFjOWI0YzYxNWM0NzQ2MDEuLjcyN2JkOTQyMGMyNjVjNThj
OGVmMzljOTFkYWY2NGFhNDExMTc4OWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
dGVzdF9tYXJrLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tYXJrLnB5CkBAIC0x
LDI5ICsxLDMzIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2
aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IG9z
CiBpbXBvcnQgc3lzCi1pbXBvcnQgbW9jaworCitpbXBvcnQgc2l4CisKIGltcG9ydCBweXRlc3QK
LWZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCAoCi0gICAgTWFya0dlbmVyYXRvciBhcyBNYXJrLAot
ICAgIFBhcmFtZXRlclNldCwKLSAgICB0cmFuc2Zlcl9tYXJrZXJzLAotICAgIEVNUFRZX1BBUkFN
RVRFUlNFVF9PUFRJT04sCi0pCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9JTlRFUlJV
UFRFRAorZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IEVNUFRZX1BBUkFNRVRFUlNFVF9PUFRJT04K
K2Zyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrR2VuZXJhdG9yIGFzIE1hcmsKK2Zyb20gX3B5
dGVzdC5ub2RlcyBpbXBvcnQgQ29sbGVjdG9yCiBmcm9tIF9weXRlc3Qubm9kZXMgaW1wb3J0IE5v
ZGUKK2Zyb20gX3B5dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3REZXByZWNhdGlvbldh
cm5pbmcKK2Zyb20gX3B5dGVzdC53YXJuaW5ncyBpbXBvcnQgU0hPV19QWVRFU1RfV0FSTklOR1Nf
QVJHCisKK3RyeToKKyAgICBpbXBvcnQgbW9jaworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGlt
cG9ydCB1bml0dGVzdC5tb2NrIGFzIG1vY2sKIAogaWdub3JlX21hcmtpbmZvID0gcHl0ZXN0Lm1h
cmsuZmlsdGVyd2FybmluZ3MoCi0gICAgImlnbm9yZTpNYXJrSW5mbyBvYmplY3RzOl9weXRlc3Qu
ZGVwcmVjYXRlZC5SZW1vdmVkSW5QeXRlc3Q0V2FybmluZyIKKyAgICAiaWdub3JlOk1hcmtJbmZv
IG9iamVjdHM6cHl0ZXN0LlJlbW92ZWRJblB5dGVzdDRXYXJuaW5nIgogKQogCiAKIGNsYXNzIFRl
c3RNYXJrKG9iamVjdCk6Ci0KLSAgICBkZWYgdGVzdF9tYXJraW5mb19yZXByKHNlbGYpOgotICAg
ICAgICBmcm9tIF9weXRlc3QubWFyayBpbXBvcnQgTWFya0luZm8sIE1hcmsKLQotICAgICAgICBt
ID0gTWFya0luZm8uZm9yX21hcmsoTWFyaygiaGVsbG8iLCAoMSwgMiksIHt9KSkKLSAgICAgICAg
cmVwcihtKQotCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJhdHRyIiwgWyJtYXJrIiwg
InBhcmFtIl0pCiAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtb2R1bGVuYW1lIiwgWyJw
eS50ZXN0IiwgInB5dGVzdCJdKQogICAgIGRlZiB0ZXN0X3B5dGVzdF9leGlzdHNfaW5fbmFtZXNw
YWNlX2FsbChzZWxmLCBhdHRyLCBtb2R1bGVuYW1lKToKQEAgLTM1LDEwNyArMzksMjIgQEAgY2xh
c3MgVGVzdE1hcmsob2JqZWN0KToKICAgICAgICAgcHl0ZXN0LnJhaXNlcygoQXR0cmlidXRlRXJy
b3IsIFR5cGVFcnJvciksIG1hcmspCiAKICAgICBkZWYgdGVzdF9tYXJrX3dpdGhfcGFyYW0oc2Vs
Zik6Ci0KICAgICAgICAgZGVmIHNvbWVfZnVuY3Rpb24oYWJjKToKICAgICAgICAgICAgIHBhc3MK
IAogICAgICAgICBjbGFzcyBTb21lQ2xhc3Mob2JqZWN0KToKICAgICAgICAgICAgIHBhc3MKIAot
ICAgICAgICBhc3NlcnQgcHl0ZXN0Lm1hcmsuZnVuKHNvbWVfZnVuY3Rpb24pIGlzIHNvbWVfZnVu
Y3Rpb24KLSAgICAgICAgYXNzZXJ0IHB5dGVzdC5tYXJrLmZ1bi53aXRoX2FyZ3Moc29tZV9mdW5j
dGlvbikgaXMgbm90IHNvbWVfZnVuY3Rpb24KKyAgICAgICAgYXNzZXJ0IHB5dGVzdC5tYXJrLmZv
byhzb21lX2Z1bmN0aW9uKSBpcyBzb21lX2Z1bmN0aW9uCisgICAgICAgIGFzc2VydCBweXRlc3Qu
bWFyay5mb28ud2l0aF9hcmdzKHNvbWVfZnVuY3Rpb24pIGlzIG5vdCBzb21lX2Z1bmN0aW9uCiAK
LSAgICAgICAgYXNzZXJ0IHB5dGVzdC5tYXJrLmZ1bihTb21lQ2xhc3MpIGlzIFNvbWVDbGFzcwot
ICAgICAgICBhc3NlcnQgcHl0ZXN0Lm1hcmsuZnVuLndpdGhfYXJncyhTb21lQ2xhc3MpIGlzIG5v
dCBTb21lQ2xhc3MKKyAgICAgICAgYXNzZXJ0IHB5dGVzdC5tYXJrLmZvbyhTb21lQ2xhc3MpIGlz
IFNvbWVDbGFzcworICAgICAgICBhc3NlcnQgcHl0ZXN0Lm1hcmsuZm9vLndpdGhfYXJncyhTb21l
Q2xhc3MpIGlzIG5vdCBTb21lQ2xhc3MKIAogICAgIGRlZiB0ZXN0X3B5dGVzdF9tYXJrX25hbWVf
c3RhcnRzX3dpdGhfdW5kZXJzY29yZShzZWxmKToKICAgICAgICAgbWFyayA9IE1hcmsoKQotICAg
ICAgICBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBtYXJrLCAiX3NvbWVf
bmFtZSIpCi0KLSAgICBkZWYgdGVzdF9weXRlc3RfbWFya19iYXJlKHNlbGYpOgotICAgICAgICBt
YXJrID0gTWFyaygpCi0KLSAgICAgICAgZGVmIGYoKToKLSAgICAgICAgICAgIHBhc3MKLQotICAg
ICAgICBtYXJrLmhlbGxvKGYpCi0gICAgICAgIGFzc2VydCBmLmhlbGxvCi0KLSAgICBAaWdub3Jl
X21hcmtpbmZvCi0gICAgZGVmIHRlc3RfcHl0ZXN0X21hcmtfa2V5d29yZHMoc2VsZik6Ci0gICAg
ICAgIG1hcmsgPSBNYXJrKCkKLQotICAgICAgICBkZWYgZigpOgotICAgICAgICAgICAgcGFzcwot
Ci0gICAgICAgIG1hcmsud29ybGQoeD0zLCB5PTQpKGYpCi0gICAgICAgIGFzc2VydCBmLndvcmxk
Ci0gICAgICAgIGFzc2VydCBmLndvcmxkLmt3YXJnc1sieCJdID09IDMKLSAgICAgICAgYXNzZXJ0
IGYud29ybGQua3dhcmdzWyJ5Il0gPT0gNAotCi0gICAgQGlnbm9yZV9tYXJraW5mbwotICAgIGRl
ZiB0ZXN0X2FwcGx5X211bHRpcGxlX2FuZF9tZXJnZShzZWxmKToKLSAgICAgICAgbWFyayA9IE1h
cmsoKQotCi0gICAgICAgIGRlZiBmKCk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgbWFy
ay53b3JsZAotICAgICAgICBtYXJrLndvcmxkKHg9MykoZikKLSAgICAgICAgYXNzZXJ0IGYud29y
bGQua3dhcmdzWyJ4Il0gPT0gMwotICAgICAgICBtYXJrLndvcmxkKHk9NCkoZikKLSAgICAgICAg
YXNzZXJ0IGYud29ybGQua3dhcmdzWyJ4Il0gPT0gMwotICAgICAgICBhc3NlcnQgZi53b3JsZC5r
d2FyZ3NbInkiXSA9PSA0Ci0gICAgICAgIG1hcmsud29ybGQoeT0xKShmKQotICAgICAgICBhc3Nl
cnQgZi53b3JsZC5rd2FyZ3NbInkiXSA9PSAxCi0gICAgICAgIGFzc2VydCBsZW4oZi53b3JsZC5h
cmdzKSA9PSAwCi0KLSAgICBAaWdub3JlX21hcmtpbmZvCi0gICAgZGVmIHRlc3RfcHl0ZXN0X21h
cmtfcG9zaXRpb25hbChzZWxmKToKLSAgICAgICAgbWFyayA9IE1hcmsoKQotCi0gICAgICAgIGRl
ZiBmKCk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgbWFyay53b3JsZCgiaGVsbG8iKShm
KQotICAgICAgICBhc3NlcnQgZi53b3JsZC5hcmdzWzBdID09ICJoZWxsbyIKLSAgICAgICAgbWFy
ay53b3JsZCgid29ybGQiKShmKQotCi0gICAgQGlnbm9yZV9tYXJraW5mbwotICAgIGRlZiB0ZXN0
X3B5dGVzdF9tYXJrX3Bvc2l0aW9uYWxfZnVuY19hbmRfa2V5d29yZChzZWxmKToKLSAgICAgICAg
bWFyayA9IE1hcmsoKQotCi0gICAgICAgIGRlZiBmKCk6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24KLQotICAgICAgICBtID0gbWFyay53b3JsZChmLCBvbWVnYT0iaGVsbG8iKQotCi0gICAg
ICAgIGRlZiBnKCk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgYXNzZXJ0IG0oZykgPT0g
ZwotICAgICAgICBhc3NlcnQgZy53b3JsZC5hcmdzWzBdIGlzIGYKLSAgICAgICAgYXNzZXJ0IGcu
d29ybGQua3dhcmdzWyJvbWVnYSJdID09ICJoZWxsbyIKLQotICAgIEBpZ25vcmVfbWFya2luZm8K
LSAgICBkZWYgdGVzdF9weXRlc3RfbWFya19yZXVzZShzZWxmKToKLSAgICAgICAgbWFyayA9IE1h
cmsoKQotCi0gICAgICAgIGRlZiBmKCk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgdyA9
IG1hcmsuc29tZQotICAgICAgICB3KCJoZWxsbyIsIHJlYXNvbj0iMTIzIikoZikKLSAgICAgICAg
YXNzZXJ0IGYuc29tZS5hcmdzWzBdID09ICJoZWxsbyIKLSAgICAgICAgYXNzZXJ0IGYuc29tZS5r
d2FyZ3NbInJlYXNvbiJdID09ICIxMjMiCi0KLSAgICAgICAgZGVmIGcoKToKLSAgICAgICAgICAg
IHBhc3MKLQotICAgICAgICB3KCJ3b3JsZCIsIHJlYXNvbjI9IjQ1NiIpKGcpCi0gICAgICAgIGFz
c2VydCBnLnNvbWUuYXJnc1swXSA9PSAid29ybGQiCi0gICAgICAgIGFzc2VydCAicmVhc29uIiBu
b3QgaW4gZy5zb21lLmt3YXJncwotICAgICAgICBhc3NlcnQgZy5zb21lLmt3YXJnc1sicmVhc29u
MiJdID09ICI0NTYiCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6
CisgICAgICAgICAgICBtYXJrLl9zb21lX25hbWUKIAogCiBkZWYgdGVzdF9tYXJrZWRfY2xhc3Nf
cnVuX3R3aWNlKHRlc3RkaXIsIHJlcXVlc3QpOgpAQCAtMTY5LDcgKzg4LDcgQEAgZGVmIHRlc3Rf
aW5pX21hcmtlcnModGVzdGRpcik6CiAgICAgICAgICIiIgogICAgICAgICBkZWYgdGVzdF9tYXJr
ZXJzKHB5dGVzdGNvbmZpZyk6CiAgICAgICAgICAgICBtYXJrZXJzID0gcHl0ZXN0Y29uZmlnLmdl
dGluaSgibWFya2VycyIpCi0gICAgICAgICAgICBwcmludCAobWFya2VycykKKyAgICAgICAgICAg
IHByaW50KG1hcmtlcnMpCiAgICAgICAgICAgICBhc3NlcnQgbGVuKG1hcmtlcnMpID49IDIKICAg
ICAgICAgICAgIGFzc2VydCBtYXJrZXJzWzBdLnN0YXJ0c3dpdGgoImExOiIpCiAgICAgICAgICAg
ICBhc3NlcnQgbWFya2Vyc1sxXS5zdGFydHN3aXRoKCJhMjoiKQpAQCAtMjEyLDcgKzEzMSw3IEBA
IGRlZiB0ZXN0X2luaV9tYXJrZXJzX3doaXRlc3BhY2UodGVzdGRpcik6CiAgICAgICAgICAgICBh
c3NlcnQgVHJ1ZQogICAgICIiIgogICAgICkKLSAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
Ii0tc3RyaWN0IiwgIi1tIiwgImExIikKKyAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi0t
c3RyaWN0LW1hcmtlcnMiLCAiLW0iLCAiYTEiKQogICAgIHJlYy5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0xKQogCiAKQEAgLTIzMiw3ICsxNTEsNyBAQCBkZWYgdGVzdF9tYXJrZXJfd2l0aG91dF9kZXNj
cmlwdGlvbih0ZXN0ZGlyKToKICAgICApCiAgICAgZnRkaXIgPSB0ZXN0ZGlyLm1rZGlyKCJmdDFf
ZHVtbXkiKQogICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oImNvbmZ0ZXN0LnB5IikubW92ZShmdGRp
ci5qb2luKCJjb25mdGVzdC5weSIpKQotICAgIHJlYyA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnBy
b2Nlc3MoIi0tc3RyaWN0IikKKyAgICByZWMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1zdHJpY3Qt
bWFya2VycyIpCiAgICAgcmVjLmFzc2VydF9vdXRjb21lcygpCiAKIApAQCAtMjc2LDcgKzE5NSw4
IEBAIGRlZiB0ZXN0X21hcmtfb25fcHNldWRvX2Z1bmN0aW9uKHRlc3RkaXIpOgogICAgIHJlcHJl
Yy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQogCiAKLWRlZiB0ZXN0X3N0cmljdF9wcm9oaWJpdHNf
dW5yZWdpc3RlcmVkX21hcmtlcnModGVzdGRpcik6CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
Im9wdGlvbl9uYW1lIiwgWyItLXN0cmljdC1tYXJrZXJzIiwgIi0tc3RyaWN0Il0pCitkZWYgdGVz
dF9zdHJpY3RfcHJvaGliaXRzX3VucmVnaXN0ZXJlZF9tYXJrZXJzKHRlc3RkaXIsIG9wdGlvbl9u
YW1lKToKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgogICAgICAgICBpbXBv
cnQgcHl0ZXN0CkBAIC0yODUsOSArMjA1LDExIEBAIGRlZiB0ZXN0X3N0cmljdF9wcm9oaWJpdHNf
dW5yZWdpc3RlcmVkX21hcmtlcnModGVzdGRpcik6CiAgICAgICAgICAgICBwYXNzCiAgICAgIiIi
CiAgICAgKQotICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXN0cmljdCIpCisgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qob3B0aW9uX25hbWUpCiAgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgIT0gMAotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip1bnJlZ2lzdGVy
ZWRtYXJrKm5vdCpyZWdpc3RlcmVkKiJdKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygKKyAgICAgICAgWyIndW5yZWdpc3RlcmVkbWFyaycgbm90IGZvdW5kIGluIGBtYXJrZXJzYCBj
b25maWd1cmF0aW9uIG9wdGlvbiJdCisgICAgKQogCiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgKQEAgLTM3Niw2ICsyOTgsMTMgQEAgZGVmIHRlc3Rfa2V5d29yZF9vcHRpb25fY3VzdG9tKHNw
ZWMsIHRlc3RkaXIpOgogICAgIGFzc2VydCBsaXN0KHBhc3NlZCkgPT0gbGlzdChwYXNzZWRfcmVz
dWx0KQogCiAKK2RlZiB0ZXN0X2tleXdvcmRfb3B0aW9uX2NvbnNpZGVyc19tYXJrKHRlc3RkaXIp
OgorICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCJtYXJrcy9tYXJrc19jb25zaWRlcmVkX2tleXdv
cmRzIikKKyAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1rIiwgImZvbyIpCisgICAgcGFz
c2VkID0gcmVjLmxpc3RvdXRjb21lcygpWzBdCisgICAgYXNzZXJ0IGxlbihwYXNzZWQpID09IDEK
KworCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCiAgICAgInNwZWMiLAogICAgIFsKQEAgLTQ1
Niw4ICszODUsMTAgQEAgZGVmIHRlc3RfcGFyYW1ldHJpemVkX2NvbGxlY3Rfd2l0aF93cm9uZ19h
cmdzKHRlc3RkaXIpOgogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHB5X2ZpbGUpCiAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICBbCi0gICAgICAgICAgICAn
RSAgIFZhbHVlRXJyb3I6IEluICJwYXJhbWV0cml6ZSIgdGhlIG51bWJlciBvZiB2YWx1ZXMgKCgx
LCAyLCAzKSkgJwotICAgICAgICAgICAgIm11c3QgYmUgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBu
YW1lcyAoWydmb28nLCAnYmFyJ10pIgorICAgICAgICAgICAgJ3Rlc3RfcGFyYW1ldHJpemVkX2Nv
bGxlY3Rfd2l0aF93cm9uZ19hcmdzLnB5Ojp0ZXN0X2Z1bmM6IGluICJwYXJhbWV0cml6ZSIgdGhl
IG51bWJlciBvZiBuYW1lcyAoMik6JywKKyAgICAgICAgICAgICIgIFsnZm9vJywgJ2JhciddIiwK
KyAgICAgICAgICAgICJtdXN0IGJlIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YgdmFsdWVzICgzKToi
LAorICAgICAgICAgICAgIiAgKDEsIDIsIDMpIiwKICAgICAgICAgXQogICAgICkKIApAQCAtNDgy
LDExOCArNDEzLDI5IEBAIGRlZiB0ZXN0X3BhcmFtZXRyaXplZF93aXRoX2t3YXJncyh0ZXN0ZGly
KToKICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCiAKIAotY2xhc3MgVGVzdEZ1bmN0aW9uYWwo
b2JqZWN0KToKLQotICAgIGRlZiB0ZXN0X21hcmtfcGVyX2Z1bmN0aW9uKHNlbGYsIHRlc3RkaXIp
OgotICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuaGVsbG8KLSAg
ICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IGhhc2F0
dHIodGVzdF9oZWxsbywgJ2hlbGxvJykKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKLSAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQotCi0gICAgZGVmIHRlc3RfbWFya19wZXJfbW9kdWxl
KHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKAotICAgICAg
ICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBweXRlc3Rt
YXJrID0gcHl0ZXN0Lm1hcmsuaGVsbG8KLSAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKLSAg
ICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIGtleXdv
cmRzID0gaXRlbS5rZXl3b3JkcwotICAgICAgICBhc3NlcnQgImhlbGxvIiBpbiBrZXl3b3Jkcwot
Ci0gICAgZGVmIHRlc3RfbWFya2xpc3RfcGVyX2NsYXNzKHNlbGYsIHRlc3RkaXIpOgotICAgICAg
ICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAg
ICAgICAgICAgICBweXRlc3RtYXJrID0gW3B5dGVzdC5tYXJrLmhlbGxvLCBweXRlc3QubWFyay53
b3JsZF0KLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYpOgotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgVGVzdENsYXNzLnRlc3RfZnVuYy5oZWxsbwotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgVGVzdENsYXNzLnRlc3RfZnVuYy53b3JsZAotICAgICAgICAiIiIKLSAgICAg
ICAgKQotICAgICAgICBrZXl3b3JkcyA9IGl0ZW0ua2V5d29yZHMKLSAgICAgICAgYXNzZXJ0ICJo
ZWxsbyIgaW4ga2V5d29yZHMKK2RlZiB0ZXN0X3BhcmFtZXRyaXplX2l0ZXJhdG9yKHRlc3RkaXIp
OgorICAgICIiInBhcmFtZXRyaXplIHNob3VsZCB3b3JrIHdpdGggZ2VuZXJhdG9ycyAoIzUzNTQp
LiIiIgorICAgIHB5X2ZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIlwKKyAg
ICAgICAgaW1wb3J0IHB5dGVzdAogCi0gICAgZGVmIHRlc3RfbWFya2xpc3RfcGVyX21vZHVsZShz
ZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgKLSAgICAgICAg
ICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgcHl0ZXN0bWFy
ayA9IFtweXRlc3QubWFyay5oZWxsbywgcHl0ZXN0Lm1hcmsud29ybGRdCi0gICAgICAgICAgICBj
bGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNl
bGYpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgVGVzdENsYXNzLnRlc3RfZnVuYy5oZWxs
bwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgVGVzdENsYXNzLnRlc3RfZnVuYy53b3JsZAot
ICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBrZXl3b3JkcyA9IGl0ZW0ua2V5d29yZHMK
LSAgICAgICAgYXNzZXJ0ICJoZWxsbyIgaW4ga2V5d29yZHMKLSAgICAgICAgYXNzZXJ0ICJ3b3Js
ZCIgaW4ga2V5d29yZHMKKyAgICAgICAgZGVmIGdlbigpOgorICAgICAgICAgICAgeWllbGQgMQor
ICAgICAgICAgICAgeWllbGQgMgorICAgICAgICAgICAgeWllbGQgMwogCi0gICAgZGVmIHRlc3Rf
bWFya19wZXJfY2xhc3NfZGVjb3JhdG9yKHNlbGYsIHRlc3RkaXIpOgotICAgICAgICBpdGVtID0g
dGVzdGRpci5nZXRpdGVtKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0Ci0gICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuaGVsbG8KLSAgICAgICAgICAgIGNsYXNzIFRl
c3RDbGFzcyhvYmplY3QpOgotICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZik6Ci0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydCBUZXN0Q2xhc3MudGVzdF9mdW5jLmhlbGxvCisgICAg
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnYScsIGdlbigpKQorICAgICAgICBkZWYgdGVz
dChhKToKKyAgICAgICAgICAgIGFzc2VydCBhID49IDEKICAgICAgICAgIiIiCi0gICAgICAgICkK
LSAgICAgICAga2V5d29yZHMgPSBpdGVtLmtleXdvcmRzCi0gICAgICAgIGFzc2VydCAiaGVsbG8i
IGluIGtleXdvcmRzCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHB5X2Zp
bGUpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICMgc2hvdWxkIG5vdCBza2lwIGFu
eSB0ZXN0cworICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkK
IAotICAgIGRlZiB0ZXN0X21hcmtfcGVyX2NsYXNzX2RlY29yYXRvcl9wbHVzX2V4aXN0aW5nX2Rl
YyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgKLSAgICAg
ICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgQHB5dGVz
dC5tYXJrLmhlbGxvCi0gICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKLSAgICAg
ICAgICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsud29ybGQKLSAgICAgICAgICAgICAg
ICBkZWYgdGVzdF9mdW5jKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgVGVzdENs
YXNzLnRlc3RfZnVuYy5oZWxsbwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgVGVzdENsYXNz
LnRlc3RfZnVuYy53b3JsZAotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBrZXl3b3Jk
cyA9IGl0ZW0ua2V5d29yZHMKLSAgICAgICAgYXNzZXJ0ICJoZWxsbyIgaW4ga2V5d29yZHMKLSAg
ICAgICAgYXNzZXJ0ICJ3b3JsZCIgaW4ga2V5d29yZHMKLQotICAgIEBpZ25vcmVfbWFya2luZm8K
LSAgICBkZWYgdGVzdF9tZXJnaW5nX21hcmtlcnMoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKLSAgICAgICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5oZWxsbygicG9z
MSIsIHg9MSwgeT0yKQotICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Ci0gICAg
ICAgICAgICAgICAgIyBjbGFzc2xldmVsIG92ZXJyaWRlcyBtb2R1bGUgbGV2ZWwKLSAgICAgICAg
ICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsuaGVsbG8oeD0zKQotICAgICAgICAgICAg
ICAgIEBweXRlc3QubWFyay5oZWxsbygicG9zMCIsIHo9NCkKLSAgICAgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICIiIgot
ICAgICAgICApCi0gICAgICAgIGl0ZW1zLCByZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhw
KQotICAgICAgICBpdGVtLCA9IGl0ZW1zCi0gICAgICAgIGtleXdvcmRzID0gaXRlbS5rZXl3b3Jk
cwotICAgICAgICBtYXJrZXIgPSBrZXl3b3Jkc1siaGVsbG8iXQotICAgICAgICBhc3NlcnQgbWFy
a2VyLmFyZ3MgPT0gKCJwb3MwIiwgInBvczEiKQotICAgICAgICBhc3NlcnQgbWFya2VyLmt3YXJn
cyA9PSB7IngiOiAxLCAieSI6IDIsICJ6IjogNH0KLQotICAgICAgICAjIHRlc3QgdGhlIG5ldyBf
X2l0ZXJfXyBpbnRlcmZhY2UKLSAgICAgICAgdmFsdWVzID0gbGlzdChtYXJrZXIpCi0gICAgICAg
IGFzc2VydCBsZW4odmFsdWVzKSA9PSAzCi0gICAgICAgIGFzc2VydCB2YWx1ZXNbMF0uYXJncyA9
PSAoInBvczAiLCkKLSAgICAgICAgYXNzZXJ0IHZhbHVlc1sxXS5hcmdzID09ICgpCi0gICAgICAg
IGFzc2VydCB2YWx1ZXNbMl0uYXJncyA9PSAoInBvczEiLCkKIAorY2xhc3MgVGVzdEZ1bmN0aW9u
YWwob2JqZWN0KToKICAgICBkZWYgdGVzdF9tZXJnaW5nX21hcmtlcnNfZGVlcChzZWxmLCB0ZXN0
ZGlyKToKICAgICAgICAgIyBpc3N1ZSAxOTkgLSBwcm9wYWdhdGUgbWFya2VycyBpbnRvIG5lc3Rl
ZCBjbGFzc2VzCiAgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBAIC02MzMsOCArNDc1
LDggQEAgY2xhc3MgVGVzdEZ1bmN0aW9uYWwob2JqZWN0KToKICAgICAgICAgaXRlbXMsIHJlYyA9
IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHApCiAgICAgICAgIHNlbGYuYXNzZXJ0X21hcmtlcnMo
aXRlbXMsIHRlc3RfZm9vPSgiYSIsICJiIiksIHRlc3RfYmFyPSgiYSIsKSkKIAotICAgIEBweXRl
c3QubWFyay5pc3N1ZTU2OAogICAgIGRlZiB0ZXN0X21hcmtfc2hvdWxkX25vdF9wYXNzX3RvX3Np
ZWJsaW5nX2NsYXNzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIjNTY4IiIiCiAgICAgICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKQEAgLTY1NiwxMSArNDk4LDYgQEAgY2xhc3MgVGVzdEZ1bmN0aW9uYWwob2Jq
ZWN0KToKICAgICAgICAgaXRlbXMsIHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHApCiAg
ICAgICAgIGJhc2VfaXRlbSwgc3ViX2l0ZW0sIHN1Yl9pdGVtX290aGVyID0gaXRlbXMKICAgICAg
ICAgcHJpbnQoaXRlbXMsIFt4Lm5vZGVpZCBmb3IgeCBpbiBpdGVtc10pCi0gICAgICAgICMgbGVn
YWN5IGFwaSBzbWVhcnMKLSAgICAgICAgYXNzZXJ0IGhhc2F0dHIoYmFzZV9pdGVtLm9iaiwgImIi
KQotICAgICAgICBhc3NlcnQgaGFzYXR0cihzdWJfaXRlbV9vdGhlci5vYmosICJiIikKLSAgICAg
ICAgYXNzZXJ0IGhhc2F0dHIoc3ViX2l0ZW0ub2JqLCAiYiIpCi0KICAgICAgICAgIyBuZXcgYXBp
IHNlcmVnYXRlcwogICAgICAgICBhc3NlcnQgbm90IGxpc3QoYmFzZV9pdGVtLml0ZXJfbWFya2Vy
cyhuYW1lPSJiIikpCiAgICAgICAgIGFzc2VydCBub3QgbGlzdChzdWJfaXRlbV9vdGhlci5pdGVy
X21hcmtlcnMobmFtZT0iYiIpKQpAQCAtNzQ2LDI2ICs1ODMsNiBAQCBjbGFzcyBUZXN0RnVuY3Rp
b25hbChvYmplY3QpOgogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCiAgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbImtleXdvcmQ6ICpoZWxsbyoiXSkKIAot
ICAgIEBpZ25vcmVfbWFya2luZm8KLSAgICBkZWYgdGVzdF9tZXJnaW5nX21hcmtlcnNfdHdvX2Z1
bmN0aW9ucyhzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgK
LSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAg
QHB5dGVzdC5tYXJrLmhlbGxvKCJwb3MxIiwgej00KQotICAgICAgICAgICAgQHB5dGVzdC5tYXJr
LmhlbGxvKCJwb3MwIiwgej0zKQotICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgotICAgICAg
ICAgICAgICAgIHBhc3MKLSAgICAgICAgIiIiCi0gICAgICAgICkKLSAgICAgICAgaXRlbXMsIHJl
YyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHApCi0gICAgICAgIGl0ZW0sID0gaXRlbXMKLSAg
ICAgICAga2V5d29yZHMgPSBpdGVtLmtleXdvcmRzCi0gICAgICAgIG1hcmtlciA9IGtleXdvcmRz
WyJoZWxsbyJdCi0gICAgICAgIHZhbHVlcyA9IGxpc3QobWFya2VyKQotICAgICAgICBhc3NlcnQg
bGVuKHZhbHVlcykgPT0gMgotICAgICAgICBhc3NlcnQgdmFsdWVzWzBdLmFyZ3MgPT0gKCJwb3Mw
IiwpCi0gICAgICAgIGFzc2VydCB2YWx1ZXNbMV0uYXJncyA9PSAoInBvczEiLCkKLQogICAgIGRl
ZiB0ZXN0X25vX21hcmtlcl9tYXRjaF9vbl91bm1hcmtlZF9uYW1lcyhzZWxmLCB0ZXN0ZGlyKToK
ICAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgpAQCAtNzg1
LDYgKzYwMiwxOCBAQCBjbGFzcyBUZXN0RnVuY3Rpb25hbChvYmplY3QpOgogICAgICAgICBkZXNl
bGVjdGVkX3Rlc3RzID0gZGxpc3RbMF0uaXRlbXMKICAgICAgICAgYXNzZXJ0IGxlbihkZXNlbGVj
dGVkX3Rlc3RzKSA9PSAyCiAKKyAgICBkZWYgdGVzdF9pbnZhbGlkX21fb3B0aW9uKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2EoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIi
IgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItbSBib2d1
cy8iKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBb
IklOVEVSTkFMRVJST1I+IE1hcmtlciBleHByZXNzaW9uIG11c3QgYmUgdmFsaWQgUHl0aG9uISJd
CisgICAgICAgICkKKwogICAgIGRlZiB0ZXN0X2tleXdvcmRzX2F0X25vZGVfbGV2ZWwoc2VsZiwg
dGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgpA
QCAtODI3LDEzICs2NTYsMTMgQEAgY2xhc3MgVGVzdEZ1bmN0aW9uYWwob2JqZWN0KToKICAgICAg
ICAgICAgICAgICBhc3NlcnQgIm1hcmsyIiBpbiByZXF1ZXN0LmtleXdvcmRzCiAgICAgICAgICAg
ICAgICAgYXNzZXJ0ICJtYXJrMyIgaW4gcmVxdWVzdC5rZXl3b3JkcwogICAgICAgICAgICAgICAg
IGFzc2VydCAxMCBub3QgaW4gcmVxdWVzdC5rZXl3b3JkcwotICAgICAgICAgICAgICAgIG1hcmtl
ciA9IHJlcXVlc3Qubm9kZS5nZXRfbWFya2VyKCJtYXJrMSIpCisgICAgICAgICAgICAgICAgbWFy
a2VyID0gcmVxdWVzdC5ub2RlLmdldF9jbG9zZXN0X21hcmtlcigibWFyazEiKQogICAgICAgICAg
ICAgICAgIGFzc2VydCBtYXJrZXIubmFtZSA9PSAibWFyazEiCiAgICAgICAgICAgICAgICAgYXNz
ZXJ0IG1hcmtlci5hcmdzID09ICgpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IG1hcmtlci5rd2Fy
Z3MgPT0ge30KICAgICAgICAgIiIiCiAgICAgICAgICkKLSAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCItbSIsICJtYXJrMSIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigiLW0iLCAibWFyazEiLCBTSE9XX1BZVEVTVF9XQVJOSU5HU19BUkcpCiAgICAgICAg
IHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQogCiAgICAgZGVmIGFzc2VydF9tYXJrZXJz
KHNlbGYsIGl0ZW1zLCAqKmV4cGVjdGVkKToKQEAgLTg0MywxOSArNjcyLDE1IEBAIGNsYXNzIFRl
c3RGdW5jdGlvbmFsKG9iamVjdCk6CiAgICAgICAgIC4uIG5vdGU6OiB0aGlzIGNvdWxkIGJlIG1v
dmVkIHRvIGBgdGVzdGRpcmBgIGlmIHByb3ZlbiB0byBiZSB1c2VmdWwKICAgICAgICAgdG8gb3Ro
ZXIgbW9kdWxlcy4KICAgICAgICAgIiIiCi0gICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9y
dCBNYXJrSW5mbwogCiAgICAgICAgIGl0ZW1zID0ge3gubmFtZTogeCBmb3IgeCBpbiBpdGVtc30K
ICAgICAgICAgZm9yIG5hbWUsIGV4cGVjdGVkX21hcmtlcnMgaW4gZXhwZWN0ZWQuaXRlbXMoKToK
LSAgICAgICAgICAgIG1hcmtlcnMgPSBpdGVtc1tuYW1lXS5rZXl3b3Jkcy5fbWFya2VycwotICAg
ICAgICAgICAgbWFya2VyX25hbWVzID0gewotICAgICAgICAgICAgICAgIG5hbWUgZm9yIChuYW1l
LCB2KSBpbiBtYXJrZXJzLml0ZW1zKCkgaWYgaXNpbnN0YW5jZSh2LCBNYXJrSW5mbykKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGFzc2VydCBtYXJrZXJfbmFtZXMgPT0gc2V0KGV4cGVjdGVk
X21hcmtlcnMpCisgICAgICAgICAgICBtYXJrZXJzID0ge20ubmFtZSBmb3IgbSBpbiBpdGVtc1tu
YW1lXS5pdGVyX21hcmtlcnMoKX0KKyAgICAgICAgICAgIGFzc2VydCBtYXJrZXJzID09IHNldChl
eHBlY3RlZF9tYXJrZXJzKQogCi0gICAgQHB5dGVzdC5tYXJrLmlzc3VlMTU0MAogICAgIEBweXRl
c3QubWFyay5maWx0ZXJ3YXJuaW5ncygiaWdub3JlIikKICAgICBkZWYgdGVzdF9tYXJrX2Zyb21f
cGFyYW1ldGVycyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiIzE1NDAiIiIKICAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CkBAIC04NzUsMTIgKzcwMCwxMSBAQCBjbGFzcyBUZXN0RnVuY3Rpb25hbChvYmplY3Qp
OgogICAgICAgICAgICAgICAgIGFzc2VydCBUcnVlCiAgICAgICAgICIiIgogICAgICAgICApCi0g
ICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bihTSE9XX1BZVEVTVF9XQVJOSU5HU19BUkcpCiAgICAgICAgIHJlcHJl
Yy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MSkKIAogCiBjbGFzcyBUZXN0S2V5d29yZFNlbGVjdGlv
bihvYmplY3QpOgotCiAgICAgZGVmIHRlc3Rfc2VsZWN0X3NpbXBsZShzZWxmLCB0ZXN0ZGlyKToK
ICAgICAgICAgZmlsZV90ZXN0ID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIi
CkBAIC0xMDExLDUwICs4MzUsNyBAQCBjbGFzcyBUZXN0S2V5d29yZFNlbGVjdGlvbihvYmplY3Qp
OgogICAgICAgICBhc3NlcnRfdGVzdF9pc19ub3Rfc2VsZWN0ZWQoIigpIikKIAogCi1AcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoCi0gICAgImFyZ3ZhbCwgZXhwZWN0ZWQiLAotICAgIFsKLSAgICAg
ICAgKAotICAgICAgICAgICAgcHl0ZXN0Lm1hcmsuc2tpcCgpKCgxLCAyKSksCi0gICAgICAgICAg
ICBQYXJhbWV0ZXJTZXQodmFsdWVzPSgxLCAyKSwgbWFya3M9W3B5dGVzdC5tYXJrLnNraXBdLCBp
ZD1Ob25lKSwKLSAgICAgICAgKSwKLSAgICAgICAgKAotICAgICAgICAgICAgcHl0ZXN0Lm1hcmsu
eGZhaWwocHl0ZXN0Lm1hcmsuc2tpcCgpKCgxLCAyKSkpLAotICAgICAgICAgICAgUGFyYW1ldGVy
U2V0KAotICAgICAgICAgICAgICAgIHZhbHVlcz0oMSwgMiksIG1hcmtzPVtweXRlc3QubWFyay54
ZmFpbCwgcHl0ZXN0Lm1hcmsuc2tpcF0sIGlkPU5vbmUKLSAgICAgICAgICAgICksCi0gICAgICAg
ICksCi0gICAgXSwKLSkKLUBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiaWdub3JlIikKLWRl
ZiB0ZXN0X3BhcmFtZXRlcnNldF9leHRyYWN0ZnJvbShhcmd2YWwsIGV4cGVjdGVkKToKLSAgICBl
eHRyYWN0ZWQgPSBQYXJhbWV0ZXJTZXQuZXh0cmFjdF9mcm9tKGFyZ3ZhbCkKLSAgICBhc3NlcnQg
ZXh0cmFjdGVkID09IGV4cGVjdGVkCi0KLQotZGVmIHRlc3RfbGVnYWN5X3RyYW5zZmVyKCk6Ci0K
LSAgICBjbGFzcyBGYWtlTW9kdWxlKG9iamVjdCk6Ci0gICAgICAgIHB5dGVzdG1hcmsgPSBbXQot
Ci0gICAgY2xhc3MgRmFrZUNsYXNzKG9iamVjdCk6Ci0gICAgICAgIHB5dGVzdG1hcmsgPSBweXRl
c3QubWFyay5ub2Z1bgotCi0gICAgQHB5dGVzdC5tYXJrLmZ1bgotICAgIGRlZiBmYWtlX21ldGhv
ZChzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAgdHJhbnNmZXJfbWFya2VycyhmYWtlX21ldGhv
ZCwgRmFrZUNsYXNzLCBGYWtlTW9kdWxlKQotCi0gICAgIyBsZWdhY3kgbWFya3MgdHJhbnNmZXIg
c21lYXJlZAotICAgIGFzc2VydCBmYWtlX21ldGhvZC5ub2Z1bgotICAgIGFzc2VydCBmYWtlX21l
dGhvZC5mdW4KLSAgICAjIHByaXN0aW5lIG1hcmtzIGRvbnQgdHJhbnNmZXIKLSAgICBhc3NlcnQg
ZmFrZV9tZXRob2QucHl0ZXN0bWFyayA9PSBbcHl0ZXN0Lm1hcmsuZnVuLm1hcmtdCi0KLQogY2xh
c3MgVGVzdE1hcmtEZWNvcmF0b3Iob2JqZWN0KToKLQogICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgKICAgICAgICAgImxocywgcmhzLCBleHBlY3RlZCIsCiAgICAgICAgIFsKQEAgLTEwNzEs
NyArODUyLDE0IEBAIGNsYXNzIFRlc3RNYXJrRGVjb3JhdG9yKG9iamVjdCk6CiBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoIm1hcmsiLCBbTm9uZSwgIiIsICJza2lwIiwgInhmYWlsIl0pCiBkZWYg
dGVzdF9wYXJhbWV0ZXJzZXRfZm9yX3BhcmFtZXRyaXplX21hcmtzKHRlc3RkaXIsIG1hcmspOgog
ICAgIGlmIG1hcmsgaXMgbm90IE5vbmU6Ci0gICAgICAgIHRlc3RkaXIubWFrZWluaSgiW3B5dGVz
dF1cbnt9PXt9Ii5mb3JtYXQoRU1QVFlfUEFSQU1FVEVSU0VUX09QVElPTiwgbWFyaykpCisgICAg
ICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgICAgICIiIgorICAgICAgICBbcHl0ZXN0XQor
ICAgICAgICB7fT17fQorICAgICAgICAiIiIuZm9ybWF0KAorICAgICAgICAgICAgICAgIEVNUFRZ
X1BBUkFNRVRFUlNFVF9PUFRJT04sIG1hcmsKKyAgICAgICAgICAgICkKKyAgICAgICAgKQogCiAg
ICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygpCiAgICAgZnJvbSBfcHl0ZXN0Lm1hcmsg
aW1wb3J0IHB5dGVzdF9jb25maWd1cmUsIGdldF9lbXB0eV9wYXJhbWV0ZXJzZXRfbWFyawpAQCAt
MTA4Nyw2ICs4NzUsNDggQEAgZGVmIHRlc3RfcGFyYW1ldGVyc2V0X2Zvcl9wYXJhbWV0cml6ZV9t
YXJrcyh0ZXN0ZGlyLCBtYXJrKToKICAgICAgICAgYXNzZXJ0IHJlc3VsdF9tYXJrLmt3YXJncy5n
ZXQoInJ1biIpIGlzIEZhbHNlCiAKIAorZGVmIHRlc3RfcGFyYW1ldGVyc2V0X2Zvcl9mYWlsX2F0
X2NvbGxlY3QodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAiIiIKKyAg
ICBbcHl0ZXN0XQorICAgIHt9PWZhaWxfYXRfY29sbGVjdAorICAgICIiIi5mb3JtYXQoCisgICAg
ICAgICAgICBFTVBUWV9QQVJBTUVURVJTRVRfT1BUSU9OCisgICAgICAgICkKKyAgICApCisKKyAg
ICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAgICBmcm9tIF9weXRlc3QubWFyayBp
bXBvcnQgcHl0ZXN0X2NvbmZpZ3VyZSwgZ2V0X2VtcHR5X3BhcmFtZXRlcnNldF9tYXJrCisKKyAg
ICBweXRlc3RfY29uZmlndXJlKGNvbmZpZykKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcygKKyAg
ICAgICAgQ29sbGVjdG9yLkNvbGxlY3RFcnJvciwKKyAgICAgICAgbWF0Y2g9ciJFbXB0eSBwYXJh
bWV0ZXIgc2V0IGluICdweXRlc3RfY29uZmlndXJlJyBhdCBsaW5lIFxkXGQrIiwKKyAgICApOgor
ICAgICAgICBnZXRfZW1wdHlfcGFyYW1ldGVyc2V0X21hcmsoY29uZmlnLCBbImEiXSwgcHl0ZXN0
X2NvbmZpZ3VyZSkKKworICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIK
KyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgiZW1wdHkiLCBbXSkKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHN0cihwMSkp
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAg
ICAiY29sbGVjdGVkIDAgaXRlbXMgLyAxIGVycm9ycyIsCisgICAgICAgICAgICAiKiBFUlJPUiBj
b2xsZWN0aW5nIHRlc3RfcGFyYW1ldGVyc2V0X2Zvcl9mYWlsX2F0X2NvbGxlY3QucHkgKiIsCisg
ICAgICAgICAgICAiRW1wdHkgcGFyYW1ldGVyIHNldCBpbiAndGVzdCcgYXQgbGluZSAzIiwKKyAg
ICAgICAgICAgICIqPSAxIGVycm9yIGluICoiLAorICAgICAgICBdCisgICAgKQorICAgIGFzc2Vy
dCByZXN1bHQucmV0ID09IEVYSVRfSU5URVJSVVBURUQKKworCiBkZWYgdGVzdF9wYXJhbWV0ZXJz
ZXRfZm9yX3BhcmFtZXRyaXplX2JhZF9tYXJrbmFtZSh0ZXN0ZGlyKToKICAgICB3aXRoIHB5dGVz
dC5yYWlzZXMocHl0ZXN0LlVzYWdlRXJyb3IpOgogICAgICAgICB0ZXN0X3BhcmFtZXRlcnNldF9m
b3JfcGFyYW1ldHJpemVfbWFya3ModGVzdGRpciwgImJhZCIpCkBAIC0xMTE5LDE2ICs5NDksODQg
QEAgZGVmIHRlc3RfbWFya19leHByZXNzaW9uc19ub19zbWVhcih0ZXN0ZGlyKToKICAgICBkZXNl
bGVjdGVkX3Rlc3RzID0gZGxpc3RbMF0uaXRlbXMKICAgICBhc3NlcnQgbGVuKGRlc2VsZWN0ZWRf
dGVzdHMpID09IDEKIAorICAgICMgdG9kbzogZml4ZWQKICAgICAjIGtleXdvcmRzIHNtZWFyIC0g
ZXhwZWN0ZWQgYmVoYXZpb3VyCi0gICAgcmVwcmVjX2tleXdvcmRzID0gdGVzdGRpci5pbmxpbmVf
cnVuKCItayIsICJGT08iKQotICAgIHBhc3NlZF9rLCBza2lwcGVkX2ssIGZhaWxlZF9rID0gcmVw
cmVjX2tleXdvcmRzLmNvdW50b3V0Y29tZXMoKQotICAgIGFzc2VydCBwYXNzZWRfayA9PSAyCi0g
ICAgYXNzZXJ0IHNraXBwZWRfayA9PSBmYWlsZWRfayA9PSAwCisgICAgIyByZXByZWNfa2V5d29y
ZHMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1rIiwgIkZPTyIpCisgICAgIyBwYXNzZWRfaywgc2tp
cHBlZF9rLCBmYWlsZWRfayA9IHJlcHJlY19rZXl3b3Jkcy5jb3VudG91dGNvbWVzKCkKKyAgICAj
IGFzc2VydCBwYXNzZWRfayA9PSAyCisgICAgIyBhc3NlcnQgc2tpcHBlZF9rID09IGZhaWxlZF9r
ID09IDAKIAogCi1kZWYgdGVzdF9hZGRtYXJrZXJfZ2V0bWFya2VyKCk6CitkZWYgdGVzdF9hZGRt
YXJrZXJfb3JkZXIoKToKICAgICBub2RlID0gTm9kZSgiVGVzdCIsIGNvbmZpZz1tb2NrLk1vY2so
KSwgc2Vzc2lvbj1tb2NrLk1vY2soKSwgbm9kZWlkPSJUZXN0IikKLSAgICBub2RlLmFkZF9tYXJr
ZXIocHl0ZXN0Lm1hcmsuYSgxKSkKLSAgICBub2RlLmFkZF9tYXJrZXIoImIiKQotICAgIG5vZGUu
Z2V0X21hcmtlcigiYSIpLmNvbWJpbmVkCi0gICAgbm9kZS5nZXRfbWFya2VyKCJiIikuY29tYmlu
ZWQKKyAgICBub2RlLmFkZF9tYXJrZXIoImZvbyIpCisgICAgbm9kZS5hZGRfbWFya2VyKCJiYXIi
KQorICAgIG5vZGUuYWRkX21hcmtlcigiYmF6IiwgYXBwZW5kPUZhbHNlKQorICAgIGV4dHJhY3Rl
ZCA9IFt4Lm5hbWUgZm9yIHggaW4gbm9kZS5pdGVyX21hcmtlcnMoKV0KKyAgICBhc3NlcnQgZXh0
cmFjdGVkID09IFsiYmF6IiwgImZvbyIsICJiYXIiXQorCisKK0BweXRlc3QubWFyay5maWx0ZXJ3
YXJuaW5ncygiaWdub3JlIikKK2RlZiB0ZXN0X21hcmtlcnNfZnJvbV9wYXJhbWV0cml6ZSh0ZXN0
ZGlyKToKKyAgICAiIiIjMzYwNSIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
IiIiCisgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIGZpcnN0X2N1c3RvbV9tYXJrID0gcHl0ZXN0Lm1h
cmsuY3VzdG9tX21hcmtlcgorICAgICAgICBjdXN0b21fbWFyayA9IHB5dGVzdC5tYXJrLmN1c3Rv
bV9tYXJrCisgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgIGRl
ZiB0cmlnZ2VyKHJlcXVlc3QpOgorICAgICAgICAgICAgY3VzdG9tX21hcmsgPSBsaXN0KHJlcXVl
c3Qubm9kZS5pdGVyX21hcmtlcnMoJ2N1c3RvbV9tYXJrJykpCisgICAgICAgICAgICBwcmludCgi
Q3VzdG9tIG1hcmsgJXMiICUgY3VzdG9tX21hcmspCisKKyAgICAgICAgQGN1c3RvbV9tYXJrKCJj
dXN0b20gbWFyayBub24gcGFyYW1ldHJpemVkIikKKyAgICAgICAgZGVmIHRlc3RfY3VzdG9tX21h
cmtfbm9uX3BhcmFtZXRyaXplZCgpOgorICAgICAgICAgICAgcHJpbnQoIkhleSBmcm9tIHRlc3Qi
KQorCisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgICAgICJvYmpf
dHlwZSIsCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgZmlyc3RfY3VzdG9tX21hcmso
ImZpcnN0IGN1c3RvbSBtYXJrIikoInRlbXBsYXRlIiksCisgICAgICAgICAgICAgICAgcHl0ZXN0
LnBhcmFtKCAjIFRoaW5rIHRoaXMgc2hvdWxkIGJlIHJlY29tbWVuZGVkIHdheT8KKyAgICAgICAg
ICAgICAgICAgICAgImRpc2siLAorICAgICAgICAgICAgICAgICAgICBtYXJrcz1jdXN0b21fbWFy
aygnY3VzdG9tIG1hcmsxJykKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIGN1
c3RvbV9tYXJrKCJjdXN0b20gbWFyazIiKSgidm0iKSwgICMgVHJpZWQgYWxzbyB0aGlzCisgICAg
ICAgICAgICBdCisgICAgICAgICkKKyAgICAgICAgZGVmIHRlc3RfY3VzdG9tX21hcmtfcGFyYW1l
dHJpemVkKG9ial90eXBlKToKKyAgICAgICAgICAgIHByaW50KCJvYmpfdHlwZSBpczoiLCBvYmpf
dHlwZSkKKyAgICAiIiIKKyAgICApCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChT
SE9XX1BZVEVTVF9XQVJOSU5HU19BUkcpCisgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNz
ZWQ9NCkKKworCitkZWYgdGVzdF9weXRlc3RfcGFyYW1faWRfcmVxdWlyZXNfc3RyaW5nKCk6Cisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcikgYXMgZXhjaW5mbzoKKyAgICAgICAgcHl0
ZXN0LnBhcmFtKGlkPVRydWUpCisgICAgKG1zZywpID0gZXhjaW5mby52YWx1ZS5hcmdzCisgICAg
aWYgc2l4LlBZMjoKKyAgICAgICAgYXNzZXJ0IG1zZyA9PSAiRXhwZWN0ZWQgaWQgdG8gYmUgYSBz
dHJpbmcsIGdvdCA8dHlwZSAnYm9vbCc+OiBUcnVlIgorICAgIGVsc2U6CisgICAgICAgIGFzc2Vy
dCBtc2cgPT0gIkV4cGVjdGVkIGlkIHRvIGJlIGEgc3RyaW5nLCBnb3QgPGNsYXNzICdib29sJz46
IFRydWUiCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzIiwgKE5vbmUsICJoZWxsbyB3
b3JsZCIpKQorZGVmIHRlc3RfcHl0ZXN0X3BhcmFtX2lkX2FsbG93c19ub25lX29yX3N0cmluZyhz
KToKKyAgICBhc3NlcnQgcHl0ZXN0LnBhcmFtKGlkPXMpCisKKworZGVmIHRlc3RfcHl0ZXN0X3Bh
cmFtX3dhcm5pbmdfb25fdW5rbm93bl9rd2FyZ3MoKToKKyAgICB3aXRoIHB5dGVzdC53YXJucyhQ
eXRlc3REZXByZWNhdGlvbldhcm5pbmcpIGFzIHdhcm5pbmZvOgorICAgICAgICAjIHR5cG8sIHNo
b3VsZCBiZSBtYXJrcz0KKyAgICAgICAgcHl0ZXN0LnBhcmFtKDEsIDIsIG1hcms9cHl0ZXN0Lm1h
cmsueGZhaWwoKSkKKyAgICBhc3NlcnQgd2FybmluZm9bMF0uZmlsZW5hbWUgPT0gX19maWxlX18K
KyAgICAobXNnLCkgPSB3YXJuaW5mb1swXS5tZXNzYWdlLmFyZ3MKKyAgICBhc3NlcnQgbXNnID09
ICgKKyAgICAgICAgInB5dGVzdC5wYXJhbSgpIGdvdCB1bmV4cGVjdGVkIGtleXdvcmQgYXJndW1l
bnRzOiBbJ21hcmsnXS5cbiIKKyAgICAgICAgIlRoaXMgd2lsbCBiZSBhbiBlcnJvciBpbiBmdXR1
cmUgdmVyc2lvbnMuIgorICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVz
dF9tb2RpbXBvcnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbW9kaW1wb3J0LnB5Cmlu
ZGV4IGY3YjkyYTBiNmY2NzE1MzE2OWJjMGFiMWVmOWU1OWU4M2QyODY0NzMuLjVkZDA1N2M1NWUy
ZmQ2MDRkZjQwNGM3ZGZhZWMwNDI1Y2IzMDljZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9tb2RpbXBvcnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X21v
ZGltcG9ydC5weQpAQCAtMSw4ICsxLDEzIEBACi1pbXBvcnQgcHkKKyMgLSotIGNvZGluZzogdXRm
LTggLSotCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwotaW1wb3J0IHB5dGVzdAorCitp
bXBvcnQgcHkKKwogaW1wb3J0IF9weXRlc3QKK2ltcG9ydCBweXRlc3QKKworcHl0ZXN0bWFyayA9
IHB5dGVzdC5tYXJrLnNsb3cKIAogTU9EU0VUID0gWwogICAgIHgKQEAgLTE3LDEzICsyMiwyMCBA
QCBkZWYgdGVzdF9maWxlaW1wb3J0KG1vZGZpbGUpOgogICAgICMgd2l0aG91dCBuZWVkaW5nIHRo
ZSBweXRlc3QgbmFtZXNwYWNlIGJlaW5nIHNldAogICAgICMgdGhpcyBpcyBjcml0aWNhbCBmb3Ig
dGhlIGluaXRpYWxpemF0aW9uIG9mIHhkaXN0CiAKLSAgICByZXMgPSBzdWJwcm9jZXNzLmNhbGwo
CisgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4oCiAgICAgICAgIFsKICAgICAgICAgICAgIHN5cy5l
eGVjdXRhYmxlLAogICAgICAgICAgICAgIi1jIiwKICAgICAgICAgICAgICJpbXBvcnQgc3lzLCBw
eTsgcHkucGF0aC5sb2NhbChzeXMuYXJndlsxXSkucHlpbXBvcnQoKSIsCiAgICAgICAgICAgICBt
b2RmaWxlLnN0cnBhdGgsCi0gICAgICAgIF0KKyAgICAgICAgXSwKKyAgICAgICAgc3Rkb3V0PXN1
YnByb2Nlc3MuUElQRSwKKyAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKKyAgICApCisg
ICAgKG91dCwgZXJyKSA9IHAuY29tbXVuaWNhdGUoKQorICAgIGFzc2VydCBwLnJldHVybmNvZGUg
PT0gMCwgImltcG9ydGluZyAlcyBmYWlsZWQgKGV4aXRjb2RlICVkKTogb3V0PSVyLCBlcnI9JXIi
ICUgKAorICAgICAgICBtb2RmaWxlLAorICAgICAgICBwLnJldHVybmNvZGUsCisgICAgICAgIG91
dCwKKyAgICAgICAgZXJyLAogICAgICkKLSAgICBpZiByZXM6Ci0gICAgICAgIHB5dGVzdC5mYWls
KCJjb21tYW5kIHJlc3VsdCAlcyIgJSByZXMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfbW9ua2V5cGF0Y2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbW9ua2V5
cGF0Y2gucHkKaW5kZXggYzI5OGNlMGQ5MjkwMjg4Yzg0YjRlMzBmNDJlMDQ1NDA1N2Y0NTI0Ni4u
OTYxYzU3ZTA2YTMxMzhmNzI0MWUyZDYwYTQzNjRkNGYxMGQwZGRiZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy90ZXN0X21vbmtleXBhdGNoLnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9tb25rZXlwYXRjaC5weQpAQCAtMSw4ICsxLDE1IEBACi1mcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IG9zCitpbXBvcnQgcmUKIGltcG9ydCBzeXMKIGlt
cG9ydCB0ZXh0d3JhcAogCitpbXBvcnQgc2l4CisKIGltcG9ydCBweXRlc3QKIGZyb20gX3B5dGVz
dC5tb25rZXlwYXRjaCBpbXBvcnQgTW9ua2V5UGF0Y2gKIApAQCAtMTcsMTIgKzI0LDExIEBAIGRl
ZiBtcCgpOgogCiAKIGRlZiB0ZXN0X3NldGF0dHIoKToKLQogICAgIGNsYXNzIEEob2JqZWN0KToK
ICAgICAgICAgeCA9IDEKIAogICAgIG1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQotICAgIHB5
dGVzdC5yYWlzZXMoQXR0cmlidXRlRXJyb3IsICJtb25rZXlwYXRjaC5zZXRhdHRyKEEsICdub3Rl
eGlzdHMnLCAyKSIpCisgICAgcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgbW9ua2V5cGF0
Y2guc2V0YXR0ciwgQSwgIm5vdGV4aXN0cyIsIDIpCiAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihB
LCAieSIsIDIsIHJhaXNpbmc9RmFsc2UpCiAgICAgYXNzZXJ0IEEueSA9PSAyCiAgICAgbW9ua2V5
cGF0Y2gudW5kbygpCkBAIC00Miw3ICs0OCw2IEBAIGRlZiB0ZXN0X3NldGF0dHIoKToKIAogCiBj
bGFzcyBUZXN0U2V0YXR0cldpdGhJbXBvcnRQYXRoKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9z
dHJpbmdfZXhwcmVzc2lvbihzZWxmLCBtb25rZXlwYXRjaCk6CiAgICAgICAgIG1vbmtleXBhdGNo
LnNldGF0dHIoIm9zLnBhdGguYWJzcGF0aCIsIGxhbWJkYSB4OiAiaGVsbG8yIikKICAgICAgICAg
YXNzZXJ0IG9zLnBhdGguYWJzcGF0aCgiMTIzIikgPT0gImhlbGxvMiIKQEAgLTg0LDcgKzg5LDYg
QEAgY2xhc3MgVGVzdFNldGF0dHJXaXRoSW1wb3J0UGF0aChvYmplY3QpOgogCiAKIGRlZiB0ZXN0
X2RlbGF0dHIoKToKLQogICAgIGNsYXNzIEEob2JqZWN0KToKICAgICAgICAgeCA9IDEKIApAQCAt
OTYsNyArMTAwLDcgQEAgZGVmIHRlc3RfZGVsYXR0cigpOgogCiAgICAgbW9ua2V5cGF0Y2ggPSBN
b25rZXlQYXRjaCgpCiAgICAgbW9ua2V5cGF0Y2guZGVsYXR0cihBLCAieCIpCi0gICAgcHl0ZXN0
LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgIm1vbmtleXBhdGNoLmRlbGF0dHIoQSwgJ3knKSIpCisg
ICAgcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgbW9ua2V5cGF0Y2guZGVsYXR0ciwgQSwg
InkiKQogICAgIG1vbmtleXBhdGNoLmRlbGF0dHIoQSwgInkiLCByYWlzaW5nPUZhbHNlKQogICAg
IG1vbmtleXBhdGNoLnNldGF0dHIoQSwgIngiLCA1LCByYWlzaW5nPUZhbHNlKQogICAgIGFzc2Vy
dCBBLnggPT0gNQpAQCAtMTUzLDcgKzE1Nyw3IEBAIGRlZiB0ZXN0X2RlbGl0ZW0oKToKICAgICBt
b25rZXlwYXRjaC5kZWxpdGVtKGQsICJ4IikKICAgICBhc3NlcnQgIngiIG5vdCBpbiBkCiAgICAg
bW9ua2V5cGF0Y2guZGVsaXRlbShkLCAieSIsIHJhaXNpbmc9RmFsc2UpCi0gICAgcHl0ZXN0LnJh
aXNlcyhLZXlFcnJvciwgIm1vbmtleXBhdGNoLmRlbGl0ZW0oZCwgJ3knKSIpCisgICAgcHl0ZXN0
LnJhaXNlcyhLZXlFcnJvciwgbW9ua2V5cGF0Y2guZGVsaXRlbSwgZCwgInkiKQogICAgIGFzc2Vy
dCBub3QgZAogICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oZCwgInkiLCAxNzAwKQogICAgIGFzc2Vy
dCBkWyJ5Il0gPT0gMTcwMApAQCAtMTY2LDcgKzE3MCw4IEBAIGRlZiB0ZXN0X2RlbGl0ZW0oKToK
IAogZGVmIHRlc3Rfc2V0ZW52KCk6CiAgICAgbW9ua2V5cGF0Y2ggPSBNb25rZXlQYXRjaCgpCi0g
ICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJYWVoxMjMiLCAyKQorICAgIHdpdGggcHl0ZXN0Lndhcm5z
KHB5dGVzdC5QeXRlc3RXYXJuaW5nKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJYWVox
MjMiLCAyKQogICAgIGltcG9ydCBvcwogCiAgICAgYXNzZXJ0IG9zLmVudmlyb25bIlhZWjEyMyJd
ID09ICIyIgpAQCAtMTc4LDcgKzE4Myw3IEBAIGRlZiB0ZXN0X2RlbGVudigpOgogICAgIG5hbWUg
PSAieHl6MTIzNCIKICAgICBhc3NlcnQgbmFtZSBub3QgaW4gb3MuZW52aXJvbgogICAgIG1vbmtl
eXBhdGNoID0gTW9ua2V5UGF0Y2goKQotICAgIHB5dGVzdC5yYWlzZXMoS2V5RXJyb3IsICJtb25r
ZXlwYXRjaC5kZWxlbnYoJXIsIHJhaXNpbmc9VHJ1ZSkiICUgbmFtZSkKKyAgICBweXRlc3QucmFp
c2VzKEtleUVycm9yLCBtb25rZXlwYXRjaC5kZWxlbnYsIG5hbWUsIHJhaXNpbmc9VHJ1ZSkKICAg
ICBtb25rZXlwYXRjaC5kZWxlbnYobmFtZSwgcmFpc2luZz1GYWxzZSkKICAgICBtb25rZXlwYXRj
aC51bmRvKCkKICAgICBvcy5lbnZpcm9uW25hbWVdID0gIjEiCkBAIC0xOTUsMTMgKzIwMCw1MCBA
QCBkZWYgdGVzdF9kZWxlbnYoKToKICAgICAgICAgICAgIGRlbCBvcy5lbnZpcm9uW25hbWVdCiAK
IAorY2xhc3MgVGVzdEVudmlyb25XYXJuaW5ncyhvYmplY3QpOgorICAgICIiIgorICAgIG9zLmVu
dmlyb24ga2V5cyBhbmQgdmFsdWVzIHNob3VsZCBiZSBuYXRpdmUgc3RyaW5ncywgb3RoZXJ3aXNl
IGl0IHdpbGwgY2F1c2UgcHJvYmxlbXMgd2l0aCBvdGhlciBtb2R1bGVzIChub3RhYmx5CisgICAg
c3VicHJvY2VzcykuIE9uIFB5dGhvbiAyIG9zLmVudmlyb24gYWNjZXB0cyBhbnl0aGluZyB3aXRo
b3V0IGNvbXBsYWluaW5nLCB3aGlsZSBQeXRob24gMyBkb2VzIHRoZSByaWdodCB0aGluZworICAg
IGFuZCByYWlzZXMgYW4gZXJyb3IuCisgICAgIiIiCisKKyAgICBWQVJfTkFNRSA9IHUiUFlURVNU
X0lOVEVSTkFMX01ZX1ZBUiIKKworICAgIEBweXRlc3QubWFyay5za2lwaWYobm90IHNpeC5QWTIs
IHJlYXNvbj0iUHl0aG9uIDIgb25seSB0ZXN0IikKKyAgICBkZWYgdGVzdF9zZXRlbnZfdW5pY29k
ZV9rZXkoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICB3aXRoIHB5dGVzdC53YXJucygKKyAg
ICAgICAgICAgIHB5dGVzdC5QeXRlc3RXYXJuaW5nLAorICAgICAgICAgICAgbWF0Y2g9IkVudmly
b25tZW50IHZhcmlhYmxlIG5hbWUgeyFyfSBzaG91bGQgYmUgc3RyIi5mb3JtYXQoc2VsZi5WQVJf
TkFNRSksCisgICAgICAgICk6CisgICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoc2VsZi5W
QVJfTkFNRSwgIjIiKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihub3Qgc2l4LlBZMiwgcmVh
c29uPSJQeXRob24gMiBvbmx5IHRlc3QiKQorICAgIGRlZiB0ZXN0X2RlbGVudl91bmljb2RlX2tl
eShzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKAorICAgICAg
ICAgICAgcHl0ZXN0LlB5dGVzdFdhcm5pbmcsCisgICAgICAgICAgICBtYXRjaD0iRW52aXJvbm1l
bnQgdmFyaWFibGUgbmFtZSB7IXJ9IHNob3VsZCBiZSBzdHIiLmZvcm1hdChzZWxmLlZBUl9OQU1F
KSwKKyAgICAgICAgKToKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLmRlbGVudihzZWxmLlZBUl9O
QU1FLCByYWlzaW5nPUZhbHNlKQorCisgICAgZGVmIHRlc3Rfc2V0ZW52X25vbl9zdHJfd2Fybmlu
ZyhzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIHZhbHVlID0gMgorICAgICAgICBtc2cgPSAo
CisgICAgICAgICAgICAiVmFsdWUgb2YgZW52aXJvbm1lbnQgdmFyaWFibGUgUFlURVNUX0lOVEVS
TkFMX01ZX1ZBUiB0eXBlIHNob3VsZCBiZSBzdHIsICIKKyAgICAgICAgICAgICJidXQgZ290IDIg
KHR5cGU6IGludCk7IGNvbnZlcnRlZCB0byBzdHIgaW1wbGljaXRseSIKKyAgICAgICAgKQorICAg
ICAgICB3aXRoIHB5dGVzdC53YXJucyhweXRlc3QuUHl0ZXN0V2FybmluZywgbWF0Y2g9cmUuZXNj
YXBlKG1zZykpOgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KHN0cihzZWxmLlZBUl9O
QU1FKSwgdmFsdWUpCisKKwogZGVmIHRlc3Rfc2V0ZW52X3ByZXBlbmQoKToKICAgICBpbXBvcnQg
b3MKIAogICAgIG1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQotICAgIG1vbmtleXBhdGNoLnNl
dGVudigiWFlaMTIzIiwgMiwgcHJlcGVuZD0iLSIpCisgICAgd2l0aCBweXRlc3Qud2FybnMocHl0
ZXN0LlB5dGVzdFdhcm5pbmcpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlhZWjEyMyIs
IDIsIHByZXBlbmQ9Ii0iKQogICAgIGFzc2VydCBvcy5lbnZpcm9uWyJYWVoxMjMiXSA9PSAiMiIK
LSAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlhZWjEyMyIsIDMsIHByZXBlbmQ9Ii0iKQorICAgIHdp
dGggcHl0ZXN0Lndhcm5zKHB5dGVzdC5QeXRlc3RXYXJuaW5nKToKKyAgICAgICAgbW9ua2V5cGF0
Y2guc2V0ZW52KCJYWVoxMjMiLCAzLCBwcmVwZW5kPSItIikKICAgICBhc3NlcnQgb3MuZW52aXJv
blsiWFlaMTIzIl0gPT0gIjMtMiIKICAgICBtb25rZXlwYXRjaC51bmRvKCkKICAgICBhc3NlcnQg
IlhZWjEyMyIgbm90IGluIG9zLmVudmlyb24KQEAgLTIzMSwxMSArMjczLDE1IEBAIGRlZiB0ZXN0
X3N5c3BhdGhfcHJlcGVuZChtcCk6CiAKIAogZGVmIHRlc3Rfc3lzcGF0aF9wcmVwZW5kX2RvdWJs
ZV91bmRvKG1wKToKLSAgICBtcC5zeXNwYXRoX3ByZXBlbmQoImhlbGxvIHdvcmxkIikKLSAgICBt
cC51bmRvKCkKLSAgICBzeXMucGF0aC5hcHBlbmQoIm1vcmUgaGVsbG8gd29ybGQiKQotICAgIG1w
LnVuZG8oKQotICAgIGFzc2VydCBzeXMucGF0aFstMV0gPT0gIm1vcmUgaGVsbG8gd29ybGQiCisg
ICAgb2xkX3N5c3BhdGggPSBzeXMucGF0aFs6XQorICAgIHRyeToKKyAgICAgICAgbXAuc3lzcGF0
aF9wcmVwZW5kKCJoZWxsbyB3b3JsZCIpCisgICAgICAgIG1wLnVuZG8oKQorICAgICAgICBzeXMu
cGF0aC5hcHBlbmQoIm1vcmUgaGVsbG8gd29ybGQiKQorICAgICAgICBtcC51bmRvKCkKKyAgICAg
ICAgYXNzZXJ0IHN5cy5wYXRoWy0xXSA9PSAibW9yZSBoZWxsbyB3b3JsZCIKKyAgICBmaW5hbGx5
OgorICAgICAgICBzeXMucGF0aFs6XSA9IG9sZF9zeXNwYXRoCiAKIAogZGVmIHRlc3RfY2hkaXJf
d2l0aF9wYXRoX2xvY2FsKG1wLCB0bXBkaXIpOgpAQCAtMzExLDcgKzM1Nyw2IEBAIGRlZiB0ZXN0
X2ltcG9ydGVycm9yKHRlc3RkaXIpOgogCiAKIGNsYXNzIFNhbXBsZU5ldyhvYmplY3QpOgotCiAg
ICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBoZWxsbygpOgogICAgICAgICByZXR1cm4gVHJ1ZQpA
QCAtMzQ3LDYgKzM5MiwzMyBAQCBkZWYgdGVzdF9pc3N1ZTE1Nl91bmRvX3N0YXRpY21ldGhvZChT
YW1wbGUpOgogICAgIGFzc2VydCBTYW1wbGUuaGVsbG8oKQogCiAKK2RlZiB0ZXN0X3VuZG9fY2xh
c3NfZGVzY3JpcHRvcnNfZGVsYXR0cigpOgorICAgIGNsYXNzIFNhbXBsZVBhcmVudChvYmplY3Qp
OgorICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgZGVmIGhlbGxvKF9jbHMpOgorICAgICAg
ICAgICAgcGFzcworCisgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgZGVmIHdvcmxkKCk6
CisgICAgICAgICAgICBwYXNzCisKKyAgICBjbGFzcyBTYW1wbGVDaGlsZChTYW1wbGVQYXJlbnQp
OgorICAgICAgICBwYXNzCisKKyAgICBtb25rZXlwYXRjaCA9IE1vbmtleVBhdGNoKCkKKworICAg
IG9yaWdpbmFsX2hlbGxvID0gU2FtcGxlQ2hpbGQuaGVsbG8KKyAgICBvcmlnaW5hbF93b3JsZCA9
IFNhbXBsZUNoaWxkLndvcmxkCisgICAgbW9ua2V5cGF0Y2guZGVsYXR0cihTYW1wbGVQYXJlbnQs
ICJoZWxsbyIpCisgICAgbW9ua2V5cGF0Y2guZGVsYXR0cihTYW1wbGVQYXJlbnQsICJ3b3JsZCIp
CisgICAgYXNzZXJ0IGdldGF0dHIoU2FtcGxlUGFyZW50LCAiaGVsbG8iLCBOb25lKSBpcyBOb25l
CisgICAgYXNzZXJ0IGdldGF0dHIoU2FtcGxlUGFyZW50LCAid29ybGQiLCBOb25lKSBpcyBOb25l
CisKKyAgICBtb25rZXlwYXRjaC51bmRvKCkKKyAgICBhc3NlcnQgb3JpZ2luYWxfaGVsbG8gPT0g
U2FtcGxlQ2hpbGQuaGVsbG8KKyAgICBhc3NlcnQgb3JpZ2luYWxfd29ybGQgPT0gU2FtcGxlQ2hp
bGQud29ybGQKKworCiBkZWYgdGVzdF9pc3N1ZTEzMzhfbmFtZV9yZXNvbHZpbmcoKToKICAgICBw
eXRlc3QuaW1wb3J0b3Jza2lwKCJyZXF1ZXN0cyIpCiAgICAgbW9ua2V5cGF0Y2ggPSBNb25rZXlQ
YXRjaCgpCkBAIC0zNjYsMyArNDM4LDM1IEBAIGRlZiB0ZXN0X2NvbnRleHQoKToKICAgICAgICAg
bS5zZXRhdHRyKGZ1bmN0b29scywgInBhcnRpYWwiLCAzKQogICAgICAgICBhc3NlcnQgbm90IGlu
c3BlY3QuaXNjbGFzcyhmdW5jdG9vbHMucGFydGlhbCkKICAgICBhc3NlcnQgaW5zcGVjdC5pc2Ns
YXNzKGZ1bmN0b29scy5wYXJ0aWFsKQorCisKK2RlZiB0ZXN0X3N5c3BhdGhfcHJlcGVuZF93aXRo
X25hbWVzcGFjZV9wYWNrYWdlcyh0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgZm9yIGRpcm5h
bWUgaW4gImhlbGxvIiwgIndvcmxkIjoKKyAgICAgICAgZCA9IHRlc3RkaXIubWtkaXIoZGlybmFt
ZSkKKyAgICAgICAgbnMgPSBkLm1rZGlyKCJuc19wa2ciKQorICAgICAgICBucy5qb2luKCJfX2lu
aXRfXy5weSIpLndyaXRlKAorICAgICAgICAgICAgIl9faW1wb3J0X18oJ3BrZ19yZXNvdXJjZXMn
KS5kZWNsYXJlX25hbWVzcGFjZShfX25hbWVfXykiCisgICAgICAgICkKKyAgICAgICAgbGliID0g
bnMubWtkaXIoZGlybmFtZSkKKyAgICAgICAgbGliLmpvaW4oIl9faW5pdF9fLnB5Iikud3JpdGUo
ImRlZiBjaGVjaygpOiByZXR1cm4gJXIiICUgZGlybmFtZSkKKworICAgIG1vbmtleXBhdGNoLnN5
c3BhdGhfcHJlcGVuZCgiaGVsbG8iKQorICAgIGltcG9ydCBuc19wa2cuaGVsbG8KKworICAgIGFz
c2VydCBuc19wa2cuaGVsbG8uY2hlY2soKSA9PSAiaGVsbG8iCisKKyAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICBpbXBvcnQgbnNfcGtnLndvcmxkCisKKyAgICAj
IFByZXBlbmRpbmcgc2hvdWxkIGNhbGwgZml4dXBfbmFtZXNwYWNlX3BhY2thZ2VzLgorICAgIG1v
bmtleXBhdGNoLnN5c3BhdGhfcHJlcGVuZCgid29ybGQiKQorICAgIGltcG9ydCBuc19wa2cud29y
bGQKKworICAgIGFzc2VydCBuc19wa2cud29ybGQuY2hlY2soKSA9PSAid29ybGQiCisKKyAgICAj
IFNob3VsZCBpbnZhbGlkYXRlIGNhY2hlcyB2aWEgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVz
LgorICAgIHRtcGRpciA9IHRlc3RkaXIudG1wZGlyCisgICAgbW9kdWxlc190bXBkaXIgPSB0bXBk
aXIubWtkaXIoIm1vZHVsZXNfdG1wZGlyIikKKyAgICBtb25rZXlwYXRjaC5zeXNwYXRoX3ByZXBl
bmQoc3RyKG1vZHVsZXNfdG1wZGlyKSkKKyAgICBtb2R1bGVzX3RtcGRpci5qb2luKCJtYWluX2Fw
cC5weSIpLndyaXRlKCJhcHAgPSBUcnVlIikKKyAgICBmcm9tIG1haW5fYXBwIGltcG9ydCBhcHAg
ICMgbm9xYTogRjQwMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X25vZGVz
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X25vZGVzLnB5CmluZGV4IGVlZTNhYzhlOWU0
YzBjYmU0YTk1M2QzY2NiYmQ4NWZjY2Q0YmE3MmMuLmU4NmJkNWY3OTNlOTk4NTZmNTFlNjg5NzM5
ZWUwM2E3YmY4ZTFmMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ub2Rl
cy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfbm9kZXMucHkKQEAgLTEsNSArMSw3
IEBACi1pbXBvcnQgcHl0ZXN0CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQoraW1wb3J0IHB5CiAK
K2ltcG9ydCBweXRlc3QKIGZyb20gX3B5dGVzdCBpbXBvcnQgbm9kZXMKIAogCkBAIC05LDEzICsx
MSw0NCBAQCBmcm9tIF9weXRlc3QgaW1wb3J0IG5vZGVzCiAgICAgICAgICgiIiwgIiIsIFRydWUp
LAogICAgICAgICAoIiIsICJmb28iLCBUcnVlKSwKICAgICAgICAgKCIiLCAiZm9vL2JhciIsIFRy
dWUpLAotICAgICAgICAoIiIsICJmb28vYmFyOjpUZXN0QmF6OjooKSIsIFRydWUpLAorICAgICAg
ICAoIiIsICJmb28vYmFyOjpUZXN0QmF6IiwgVHJ1ZSksCiAgICAgICAgICgiZm9vIiwgImZvb2Qi
LCBGYWxzZSksCi0gICAgICAgICgiZm9vL2Jhcjo6VGVzdEJhejo6KCkiLCAiZm9vL2JhciIsIEZh
bHNlKSwKLSAgICAgICAgKCJmb28vYmFyOjpUZXN0QmF6OjooKSIsICJmb28vYmFyOjpUZXN0Qm9w
OjooKSIsIEZhbHNlKSwKLSAgICAgICAgKCJmb28vYmFyIiwgImZvby9iYXI6OlRlc3RCb3A6Oigp
IiwgVHJ1ZSksCisgICAgICAgICgiZm9vL2Jhcjo6VGVzdEJheiIsICJmb28vYmFyIiwgRmFsc2Up
LAorICAgICAgICAoImZvby9iYXI6OlRlc3RCYXoiLCAiZm9vL2Jhcjo6VGVzdEJvcCIsIEZhbHNl
KSwKKyAgICAgICAgKCJmb28vYmFyIiwgImZvby9iYXI6OlRlc3RCb3AiLCBUcnVlKSwKICAgICAp
LAogKQogZGVmIHRlc3RfaXNjaGlsZG5vZGUoYmFzZWlkLCBub2RlaWQsIGV4cGVjdGVkKToKICAg
ICByZXN1bHQgPSBub2Rlcy5pc2NoaWxkbm9kZShiYXNlaWQsIG5vZGVpZCkKICAgICBhc3NlcnQg
cmVzdWx0IGlzIGV4cGVjdGVkCisKKworZGVmIHRlc3Rfc3RkX3dhcm5fbm90X3B5dGVzdHdhcm5p
bmcodGVzdGRpcik6CisgICAgaXRlbXMgPSB0ZXN0ZGlyLmdldGl0ZW1zKAorICAgICAgICAiIiIK
KyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIKKyAgICApCisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1hdGNoPSIuKmluc3RhbmNlIG9mIFB5
dGVzdFdhcm5pbmcuKiIpOgorICAgICAgICBpdGVtc1swXS53YXJuKFVzZXJXYXJuaW5nKCJzb21l
IHdhcm5pbmciKSkKKworCitkZWYgdGVzdF9fY2hlY2tfaW5pdGlhbHBhdGhzX2Zvcl9yZWxwYXRo
KCk6CisgICAgIiIiRW5zdXJlIHRoYXQgaXQgaGFuZGxlcyBkaXJzLCBhbmQgZG9lcyBub3QgYWx3
YXlzIHVzZSBkaXJuYW1lLiIiIgorICAgIGN3ZCA9IHB5LnBhdGgubG9jYWwoKQorCisgICAgY2xh
c3MgRmFrZVNlc3Npb246CisgICAgICAgIF9pbml0aWFscGF0aHMgPSBbY3dkXQorCisgICAgYXNz
ZXJ0IG5vZGVzLl9jaGVja19pbml0aWFscGF0aHNfZm9yX3JlbHBhdGgoRmFrZVNlc3Npb24sIGN3
ZCkgPT0gIiIKKworICAgIHN1YiA9IGN3ZC5qb2luKCJmaWxlIikKKworICAgIGNsYXNzIEZha2VT
ZXNzaW9uOgorICAgICAgICBfaW5pdGlhbHBhdGhzID0gW2N3ZF0KKworICAgIGFzc2VydCBub2Rl
cy5fY2hlY2tfaW5pdGlhbHBhdGhzX2Zvcl9yZWxwYXRoKEZha2VTZXNzaW9uLCBzdWIpID09ICJm
aWxlIgorCisgICAgb3V0c2lkZSA9IHB5LnBhdGgubG9jYWwoIi9vdXRzaWRlIikKKyAgICBhc3Nl
cnQgbm9kZXMuX2NoZWNrX2luaXRpYWxwYXRoc19mb3JfcmVscGF0aChGYWtlU2Vzc2lvbiwgb3V0
c2lkZSkgaXMgTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X25vc2Uu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfbm9zZS5weQppbmRleCBhYmU3MzIzNzU0ZWQ0
MzQ3MGVmMWUzNGQ0MzRjNjdlYTRiMDFmODgzLi42ZWI1ZjA4NWU4NDNiZDRmZWQ1MmFiNjIxNmZm
ZjUzNzU1N2VlMGNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfbm9zZS5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfbm9zZS5weQpAQCAtMSw0ICsxLDggQEAK
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgcHl0ZXN0CiAKIApAQCAt
MzMsNyArMzcsNiBAQCBkZWYgdGVzdF9zZXR1cF9mdW5jX3dpdGhfc2V0dXBfZGVjb3JhdG9yKCk6
CiAgICAgdmFsdWVzID0gW10KIAogICAgIGNsYXNzIEEob2JqZWN0KToKLQogICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQogICAgICAgICBkZWYgZihzZWxmKToKICAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoMSkKQEAgLTY4LDExICs3MSwxMSBAQCBkZWYgdGVzdF9ub3NlX3Nl
dHVwX2Z1bmModGVzdGRpcik6CiAKICAgICAgICAgQHdpdGhfc2V0dXAobXlfc2V0dXAsIG15X3Rl
YXJkb3duKQogICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgotICAgICAgICAgICAgcHJpbnQgKHZh
bHVlcykKKyAgICAgICAgICAgIHByaW50KHZhbHVlcykKICAgICAgICAgICAgIGFzc2VydCB2YWx1
ZXMgPT0gWzFdCiAKICAgICAgICAgZGVmIHRlc3Rfd29ybGQoKToKLSAgICAgICAgICAgIHByaW50
ICh2YWx1ZXMpCisgICAgICAgICAgICBwcmludCh2YWx1ZXMpCiAgICAgICAgICAgICBhc3NlcnQg
dmFsdWVzID09IFsxLDJdCiAKICAgICAiIiIKQEAgLTkyLDExICs5NSwxMSBAQCBkZWYgdGVzdF9u
b3NlX3NldHVwX2Z1bmNfZmFpbHVyZSh0ZXN0ZGlyKToKIAogICAgICAgICBAd2l0aF9zZXR1cCht
eV9zZXR1cCwgbXlfdGVhcmRvd24pCiAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6Ci0gICAgICAg
ICAgICBwcmludCAodmFsdWVzKQorICAgICAgICAgICAgcHJpbnQodmFsdWVzKQogICAgICAgICAg
ICAgYXNzZXJ0IHZhbHVlcyA9PSBbMV0KIAogICAgICAgICBkZWYgdGVzdF93b3JsZCgpOgotICAg
ICAgICAgICAgcHJpbnQgKHZhbHVlcykKKyAgICAgICAgICAgIHByaW50KHZhbHVlcykKICAgICAg
ICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsMl0KIAogICAgICIiIgpAQCAtMTQ0LDExICsxNDcs
MTEgQEAgZGVmIHRlc3Rfbm9zZV9zZXR1cF9wYXJ0aWFsKHRlc3RkaXIpOgogICAgICAgICBteV90
ZWFyZG93bl9wYXJ0aWFsID0gcGFydGlhbChteV90ZWFyZG93biwgMikKIAogICAgICAgICBkZWYg
dGVzdF9oZWxsbygpOgotICAgICAgICAgICAgcHJpbnQgKHZhbHVlcykKKyAgICAgICAgICAgIHBy
aW50KHZhbHVlcykKICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCiAKICAgICAgICAg
ZGVmIHRlc3Rfd29ybGQoKToKLSAgICAgICAgICAgIHByaW50ICh2YWx1ZXMpCisgICAgICAgICAg
ICBwcmludCh2YWx1ZXMpCiAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLDJdCiAKICAg
ICAgICAgdGVzdF9oZWxsby5zZXR1cCA9IG15X3NldHVwX3BhcnRpYWwKQEAgLTE1OSw3MyArMTYy
LDYgQEAgZGVmIHRlc3Rfbm9zZV9zZXR1cF9wYXJ0aWFsKHRlc3RkaXIpOgogICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIioyIHBhc3NlZCoiXSkKIAogCi1kZWYgdGVzdF9ub3NlX3Rl
c3RfZ2VuZXJhdG9yX2ZpeHR1cmVzKHRlc3RkaXIpOgotICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoCi0gICAgICAgICIiIgotICAgICAgICAjIHRha2VuIGZyb20gbm9zZS0wLjExLjEgdW5pdF90
ZXN0cy90ZXN0X2dlbmVyYXRvcl9maXh0dXJlcy5weQotICAgICAgICBmcm9tIG5vc2UudG9vbHMg
aW1wb3J0IGVxXwotICAgICAgICBjYWxsZWQgPSBbXQotCi0gICAgICAgIGRlZiBvdXRlcl9zZXR1
cCgpOgotICAgICAgICAgICAgY2FsbGVkLmFwcGVuZCgnb3V0ZXJfc2V0dXAnKQotCi0gICAgICAg
IGRlZiBvdXRlcl90ZWFyZG93bigpOgotICAgICAgICAgICAgY2FsbGVkLmFwcGVuZCgnb3V0ZXJf
dGVhcmRvd24nKQotCi0gICAgICAgIGRlZiBpbm5lcl9zZXR1cCgpOgotICAgICAgICAgICAgY2Fs
bGVkLmFwcGVuZCgnaW5uZXJfc2V0dXAnKQotCi0gICAgICAgIGRlZiBpbm5lcl90ZWFyZG93bigp
OgotICAgICAgICAgICAgY2FsbGVkLmFwcGVuZCgnaW5uZXJfdGVhcmRvd24nKQotCi0gICAgICAg
IGRlZiB0ZXN0X2dlbigpOgotICAgICAgICAgICAgY2FsbGVkWzpdID0gW10KLSAgICAgICAgICAg
IGZvciBpIGluIHJhbmdlKDAsIDUpOgotICAgICAgICAgICAgICAgIHlpZWxkIGNoZWNrLCBpCi0K
LSAgICAgICAgZGVmIGNoZWNrKGkpOgotICAgICAgICAgICAgZXhwZWN0ID0gWydvdXRlcl9zZXR1
cCddCi0gICAgICAgICAgICBmb3IgeCBpbiByYW5nZSgwLCBpKToKLSAgICAgICAgICAgICAgICBl
eHBlY3QuYXBwZW5kKCdpbm5lcl9zZXR1cCcpCi0gICAgICAgICAgICAgICAgZXhwZWN0LmFwcGVu
ZCgnaW5uZXJfdGVhcmRvd24nKQotICAgICAgICAgICAgZXhwZWN0LmFwcGVuZCgnaW5uZXJfc2V0
dXAnKQotICAgICAgICAgICAgZXFfKGNhbGxlZCwgZXhwZWN0KQotCi0KLSAgICAgICAgdGVzdF9n
ZW4uc2V0dXAgPSBvdXRlcl9zZXR1cAotICAgICAgICB0ZXN0X2dlbi50ZWFyZG93biA9IG91dGVy
X3RlYXJkb3duCi0gICAgICAgIGNoZWNrLnNldHVwID0gaW5uZXJfc2V0dXAKLSAgICAgICAgY2hl
Y2sudGVhcmRvd24gPSBpbm5lcl90ZWFyZG93bgotCi0gICAgICAgIGNsYXNzIFRlc3RDbGFzcyhv
YmplY3QpOgotICAgICAgICAgICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICAgICAgICAgIHBy
aW50ICgic2V0dXAgY2FsbGVkIGluICVzIiAlIHNlbGYpCi0gICAgICAgICAgICAgICAgc2VsZi5j
YWxsZWQgPSBbJ3NldHVwJ10KLQotICAgICAgICAgICAgZGVmIHRlYXJkb3duKHNlbGYpOgotICAg
ICAgICAgICAgICAgIHByaW50ICgidGVhcmRvd24gY2FsbGVkIGluICVzIiAlIHNlbGYpCi0gICAg
ICAgICAgICAgICAgZXFfKHNlbGYuY2FsbGVkLCBbJ3NldHVwJ10pCi0gICAgICAgICAgICAgICAg
c2VsZi5jYWxsZWQuYXBwZW5kKCd0ZWFyZG93bicpCi0KLSAgICAgICAgICAgIGRlZiB0ZXN0KHNl
bGYpOgotICAgICAgICAgICAgICAgIHByaW50ICgidGVzdCBjYWxsZWQgaW4gJXMiICUgc2VsZikK
LSAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCA1KToKLSAgICAgICAgICAgICAgICAg
ICAgeWllbGQgc2VsZi5jaGVjaywgaQotCi0gICAgICAgICAgICBkZWYgY2hlY2soc2VsZiwgaSk6
Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJjaGVjayBjYWxsZWQgaW4gJXMiICUgc2VsZikKLSAg
ICAgICAgICAgICAgICBleHBlY3QgPSBbJ3NldHVwJ10KLSAgICAgICAgICAgICAgICAjZm9yIHgg
aW4gcmFuZ2UoMCwgaSk6Ci0gICAgICAgICAgICAgICAgIyAgICBleHBlY3QuYXBwZW5kKCdzZXR1
cCcpCi0gICAgICAgICAgICAgICAgIyAgICBleHBlY3QuYXBwZW5kKCd0ZWFyZG93bicpCi0gICAg
ICAgICAgICAgICAgI2V4cGVjdC5hcHBlbmQoJ3NldHVwJykKLSAgICAgICAgICAgICAgICBlcV8o
c2VsZi5jYWxsZWQsIGV4cGVjdCkKLSAgICAiIiIKLSAgICApCi0gICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QocCwgIi1wIiwgIm5vc2UiKQotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIioxMCBwYXNzZWQqIl0pCi0KLQogZGVmIHRlc3RfbW9kdWxlX2xldmVsX3NldHVwKHRl
c3RkaXIpOgogICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgIiIiCkBAIC00MzEsMyAr
MzY3LDE3IEBAIGRlZiB0ZXN0X25vdHRlc3RfY2xhc3NfZGVjb3JhdG9yKHRlc3RkaXIpOgogICAg
IGFzc2VydCBub3QgcmVwcmVjLmdldGZhaWxlZGNvbGxlY3Rpb25zKCkKICAgICBjYWxscyA9IHJl
cHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQiKQogICAgIGFzc2VydCBu
b3QgY2FsbHMKKworCitkZWYgdGVzdF9za2lwX3Rlc3Rfd2l0aF91bmljb2RlKHRlc3RkaXIpOgor
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgICMgLSotIGNvZGlu
ZzogdXRmLTggLSotCisgICAgICAgIGltcG9ydCB1bml0dGVzdAorICAgICAgICBjbGFzcyBUZXN0
Q2xhc3MoKToKKyAgICAgICAgICAgIGRlZiB0ZXN0X2lvKHNlbGYpOgorICAgICAgICAgICAgICAg
IHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KHUn8J+YiicpCisgICAgIiIiCisgICAgKQorICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWyIqIDEgc2tpcHBlZCAqIl0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfcGFyc2VvcHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGFyc2VvcHQucHkKaW5k
ZXggNzkwNzZjYWZkODEwYjdmNjVmZmZkMjFmZjU5N2QzODhlYTgwNDY5NC4uYzU3MGVkNjBiMmYx
N2M4ZjZhNDNjZTZiMjcyNzRjMGYyYmEyMjkzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X3BhcnNlb3B0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wYXJz
ZW9wdC5weQpAQCAtMSwxMCArMSwxOCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9u
CisKIGltcG9ydCBhcmdwYXJzZQotaW1wb3J0IHN5cworaW1wb3J0IGRpc3R1dGlscy5zcGF3bgog
aW1wb3J0IG9zCitpbXBvcnQgc3lzCisKIGltcG9ydCBweQorCiBpbXBvcnQgcHl0ZXN0CiBmcm9t
IF9weXRlc3QuY29uZmlnIGltcG9ydCBhcmdwYXJzaW5nIGFzIHBhcnNlb3B0Citmcm9tIF9weXRl
c3QuY29uZmlnLmV4Y2VwdGlvbnMgaW1wb3J0IFVzYWdlRXJyb3IKIAogCiBAcHl0ZXN0LmZpeHR1
cmUKQEAgLTEzLDEyICsyMSwxNSBAQCBkZWYgcGFyc2VyKCk6CiAKIAogY2xhc3MgVGVzdFBhcnNl
cihvYmplY3QpOgotCi0gICAgZGVmIHRlc3Rfbm9faGVscF9ieV9kZWZhdWx0KHNlbGYsIGNhcHN5
cyk6CisgICAgZGVmIHRlc3Rfbm9faGVscF9ieV9kZWZhdWx0KHNlbGYpOgogICAgICAgICBwYXJz
ZXIgPSBwYXJzZW9wdC5QYXJzZXIodXNhZ2U9Inh5eiIpCi0gICAgICAgIHB5dGVzdC5yYWlzZXMo
U3lzdGVtRXhpdCwgbGFtYmRhOiBwYXJzZXIucGFyc2UoWyItaCJdKSkKLSAgICAgICAgb3V0LCBl
cnIgPSBjYXBzeXMucmVhZG91dGVycigpCi0gICAgICAgIGFzc2VydCBlcnIuZmluZCgiZXJyb3I6
IHVucmVjb2duaXplZCBhcmd1bWVudHMiKSAhPSAtMQorICAgICAgICBweXRlc3QucmFpc2VzKFVz
YWdlRXJyb3IsIGxhbWJkYTogcGFyc2VyLnBhcnNlKFsiLWgiXSkpCisKKyAgICBkZWYgdGVzdF9j
dXN0b21fcHJvZyhzZWxmLCBwYXJzZXIpOgorICAgICAgICAiIiJDdXN0b20gcHJvZyBjYW4gYmUg
c2V0IGZvciBgYXJncGFyc2UuQXJndW1lbnRQYXJzZXJgLiIiIgorICAgICAgICBhc3NlcnQgcGFy
c2VyLl9nZXRwYXJzZXIoKS5wcm9nID09IG9zLnBhdGguYmFzZW5hbWUoc3lzLmFyZ3ZbMF0pCisg
ICAgICAgIHBhcnNlci5wcm9nID0gImN1c3RvbS1wcm9nIgorICAgICAgICBhc3NlcnQgcGFyc2Vy
Ll9nZXRwYXJzZXIoKS5wcm9nID09ICJjdXN0b20tcHJvZyIKIAogICAgIGRlZiB0ZXN0X2FyZ3Vt
ZW50KHNlbGYpOgogICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocGFyc2VvcHQuQXJndW1lbnRF
cnJvcik6CkBAIC0zNCw5ICs0NSw4IEBAIGNsYXNzIFRlc3RQYXJzZXIob2JqZWN0KToKICAgICAg
ICAgYXNzZXJ0IGFyZ3VtZW50LmRlc3QgPT0gInRlc3QiCiAgICAgICAgIGFyZ3VtZW50ID0gcGFy
c2VvcHQuQXJndW1lbnQoIi10IiwgIi0tdGVzdCIsIGRlc3Q9ImFiYyIpCiAgICAgICAgIGFzc2Vy
dCBhcmd1bWVudC5kZXN0ID09ICJhYmMiCi0gICAgICAgIGFzc2VydCAoCi0gICAgICAgICAgICBz
dHIoYXJndW1lbnQpCi0gICAgICAgICAgICA9PSAoIkFyZ3VtZW50KF9zaG9ydF9vcHRzOiBbJy10
J10sIF9sb25nX29wdHM6IFsnLS10ZXN0J10sIGRlc3Q6ICdhYmMnKSIpCisgICAgICAgIGFzc2Vy
dCBzdHIoYXJndW1lbnQpID09ICgKKyAgICAgICAgICAgICJBcmd1bWVudChfc2hvcnRfb3B0czog
WyctdCddLCBfbG9uZ19vcHRzOiBbJy0tdGVzdCddLCBkZXN0OiAnYWJjJykiCiAgICAgICAgICkK
IAogICAgIGRlZiB0ZXN0X2FyZ3VtZW50X3R5cGUoc2VsZik6CkBAIC05NywxMiArMTA3LDggQEAg
Y2xhc3MgVGVzdFBhcnNlcihvYmplY3QpOgogCiAgICAgZGVmIHRlc3RfZ3JvdXBfc2hvcnRvcHRf
bG93ZXJjYXNlKHNlbGYsIHBhcnNlcik6CiAgICAgICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3Vw
KCJoZWxsbyIpCi0gICAgICAgIHB5dGVzdC5yYWlzZXMoCi0gICAgICAgICAgICBWYWx1ZUVycm9y
LAotICAgICAgICAgICAgIiIiCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9y
KToKICAgICAgICAgICAgIGdyb3VwLmFkZG9wdGlvbigiLXgiLCBhY3Rpb249InN0b3JlX3RydWUi
KQotICAgICAgICAiIiIsCi0gICAgICAgICkKICAgICAgICAgYXNzZXJ0IGxlbihncm91cC5vcHRp
b25zKSA9PSAwCiAgICAgICAgIGdyb3VwLl9hZGRvcHRpb24oIi14IiwgYWN0aW9uPSJzdG9yZV90
cnVlIikKICAgICAgICAgYXNzZXJ0IGxlbihncm91cC5vcHRpb25zKSA9PSAxCkBAIC0xODAsNyAr
MTg2LDYgQEAgY2xhc3MgVGVzdFBhcnNlcihvYmplY3QpOgogICAgICAgICBhc3NlcnQgYXJncy5T
IGlzIEZhbHNlCiAKICAgICBkZWYgdGVzdF9wYXJzZV9kZWZhdWx0Z2V0dGVyKHNlbGYpOgotCiAg
ICAgICAgIGRlZiBkZWZhdWx0Z2V0KG9wdGlvbik6CiAgICAgICAgICAgICBpZiBub3QgaGFzYXR0
cihvcHRpb24sICJ0eXBlIik6CiAgICAgICAgICAgICAgICAgcmV0dXJuCkBAIC0yMDQsMTUgKzIw
OSwxMSBAQCBjbGFzcyBUZXN0UGFyc2VyKG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAgcGFy
c2VyLmFkZF9hcmd1bWVudCgKICAgICAgICAgICAgICItdCIsICItLXR3b3dvcmQiLCAiLS1kdW8i
LCAiLS10d28td29yZCIsICItLXR3byIsIGhlbHA9ImZvbyIKLSAgICAgICAgKS5tYXBfbG9uZ19v
cHRpb24gPSB7Ci0gICAgICAgICAgICAidHdvIjogInR3by13b3JkIgotICAgICAgICB9CisgICAg
ICAgICkubWFwX2xvbmdfb3B0aW9uID0geyJ0d28iOiAidHdvLXdvcmQifQogICAgICAgICAjIHRo
cm93cyBlcnJvciBvbiAtLWRldXggb25seSEKICAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgK
ICAgICAgICAgICAgICItZCIsICItLWRldXhtb3RzIiwgIi0tZGV1eC1tb3RzIiwgYWN0aW9uPSJz
dG9yZV90cnVlIiwgaGVscD0iZm9vIgotICAgICAgICApLm1hcF9sb25nX29wdGlvbiA9IHsKLSAg
ICAgICAgICAgICJkZXV4IjogImRldXgtbW90cyIKLSAgICAgICAgfQorICAgICAgICApLm1hcF9s
b25nX29wdGlvbiA9IHsiZGV1eCI6ICJkZXV4LW1vdHMifQogICAgICAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KCItcyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9InNpbmdsZSBzaG9ydCIpCiAg
ICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tYWJjIiwgIi1hIiwgYWN0aW9uPSJzdG9yZV90
cnVlIiwgaGVscD0iYmFyIikKICAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1rbG0iLCAi
LWsiLCAiLS1rbC1tIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iYmFyIikKQEAgLTIyNCw5
ICsyMjUsNyBAQCBjbGFzcyBUZXN0UGFyc2VyKG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgKICAgICAgICAgICAgICIteCIsICItLWV4aXQtb24tZmlyc3Qi
LCAiLS1leGl0Zmlyc3QiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJzcGFtIgotICAgICAg
ICApLm1hcF9sb25nX29wdGlvbiA9IHsKLSAgICAgICAgICAgICJleGl0Zmlyc3QiOiAiZXhpdC1v
bi1maXJzdCIKLSAgICAgICAgfQorICAgICAgICApLm1hcF9sb25nX29wdGlvbiA9IHsiZXhpdGZp
cnN0IjogImV4aXQtb24tZmlyc3QifQogICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJmaWxl
c19hbmRfZGlycyIsIG5hcmdzPSIqIikKICAgICAgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdz
KFsiLWsiLCAiLS1kdW8iLCAiaGFsbG8iLCAiLS1leGl0Zmlyc3QiXSkKICAgICAgICAgYXNzZXJ0
IGFyZ3MudHdvd29yZCA9PSAiaGFsbG8iCkBAIC0yOTgsMTggKzI5NywxNSBAQCBjbGFzcyBUZXN0
UGFyc2VyKG9iamVjdCk6CiAKIAogZGVmIHRlc3RfYXJnY29tcGxldGUodGVzdGRpciwgbW9ua2V5
cGF0Y2gpOgotICAgIGlmIG5vdCBweS5wYXRoLmxvY2FsLnN5c2ZpbmQoImJhc2giKToKKyAgICBp
ZiBub3QgZGlzdHV0aWxzLnNwYXduLmZpbmRfZXhlY3V0YWJsZSgiYmFzaCIpOgogICAgICAgICBw
eXRlc3Quc2tpcCgiYmFzaCBub3QgYXZhaWxhYmxlIikKICAgICBzY3JpcHQgPSBzdHIodGVzdGRp
ci50bXBkaXIuam9pbigidGVzdF9hcmdjb21wbGV0ZSIpKQotICAgIHB5dGVzdF9iaW4gPSBzeXMu
YXJndlswXQotICAgIGlmICJweXRlc3QiIG5vdCBpbiBvcy5wYXRoLmJhc2VuYW1lKHB5dGVzdF9i
aW4pOgotICAgICAgICBweXRlc3Quc2tpcCgibmVlZCB0byBiZSBydW4gd2l0aCBweXRlc3QgZXhl
Y3V0YWJsZSwgbm90ICVzIiAlIChweXRlc3RfYmluLCkpCiAKICAgICB3aXRoIG9wZW4oc3RyKHNj
cmlwdCksICJ3IikgYXMgZnA6CiAgICAgICAgICMgcmVkaXJlY3Qgb3V0cHV0IGZyb20gYXJnY29t
cGxldGUgdG8gc3RkaW4gYW5kIHN0ZGVyciBpcyBub3QgdHJpdmlhbAogICAgICAgICAjIGh0dHA6
Ly9zdGFja292ZXJmbG93LmNvbS9xLzEyNTg5NDE5LzEzMDc5MDUKICAgICAgICAgIyBzbyB3ZSB1
c2UgYmFzaAotICAgICAgICBmcC53cml0ZSgnQ09NUF9XT1JEQlJFQUtTPSIkQ09NUF9XT1JEQlJF
QUtTIiAlcyA4PiYxIDk+JjInICUgcHl0ZXN0X2JpbikKKyAgICAgICAgZnAud3JpdGUoJ0NPTVBf
V09SREJSRUFLUz0iJENPTVBfV09SREJSRUFLUyIgcHl0aG9uIC1tIHB5dGVzdCA4PiYxIDk+JjIn
KQogICAgICMgYWx0ZXJuYXRpdmUgd291bGQgYmUgZXh0ZW5lZGVkIFRlc3RkaXIue3J1bigpLF9y
dW4oKSxwb3BlbigpfSB0byBiZSBhYmxlCiAgICAgIyB0byBoYW5kbGUgYSBrZXl3b3JkIGFyZ3Vt
ZW50IGVudiB0aGF0IHJlcGxhY2VzIG9zLmVudmlyb24gaW4gcG9wZW4gb3IKICAgICAjIGV4dGVu
ZHMgdGhlIGNvcHksIGFkdmFudGFnZTogY291bGQgbm90IGZvcmdldCB0byByZXN0b3JlCkBAIC0z
MjUsNyArMzIxLDExIEBAIGRlZiB0ZXN0X2FyZ2NvbXBsZXRlKHRlc3RkaXIsIG1vbmtleXBhdGNo
KToKICAgICAgICAgIyBhcmdjb21wbGV0ZSBub3QgZm91bmQKICAgICAgICAgcHl0ZXN0LnNraXAo
ImFyZ2NvbXBsZXRlIG5vdCBhdmFpbGFibGUiKQogICAgIGVsaWYgbm90IHJlc3VsdC5zdGRvdXQu
c3RyKCk6Ci0gICAgICAgIHB5dGVzdC5za2lwKCJiYXNoIHByb3ZpZGVkIG5vIG91dHB1dCwgYXJn
Y29tcGxldGUgbm90IGF2YWlsYWJsZT8iKQorICAgICAgICBweXRlc3Quc2tpcCgKKyAgICAgICAg
ICAgICJiYXNoIHByb3ZpZGVkIG5vIG91dHB1dCBvbiBzdGRvdXQsIGFyZ2NvbXBsZXRlIG5vdCBh
dmFpbGFibGU/IChzdGRlcnI9eyFyfSkiLmZvcm1hdCgKKyAgICAgICAgICAgICAgICByZXN1bHQu
c3RkZXJyLnN0cigpCisgICAgICAgICAgICApCisgICAgICAgICkKICAgICBlbHNlOgogICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyItLWZ1bmNhcmdzIiwgIi0tZnVsbHRyYWNl
Il0pCiAgICAgb3MubWtkaXIoInRlc3RfYXJnY29tcGxldGUuZCIpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGFzdGViaW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfcGFzdGViaW4ucHkKaW5kZXggYWQ3YzRkMGMxYzA2MTI0MWNhYmFhN2U5YzFjMzYwNTI4NjI5
ZWVkNy4uMDJlZmRiNTU0MDc4NmNhOTk5NWMzY2Q4ODQ5YjZlNTFiYjYyNjk5ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Bhc3RlYmluLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdGVzdF9wYXN0ZWJpbi5weQpAQCAtMSwxMSArMSwxNCBAQAotIyBlbmNvZGluZzog
dXRmLTgKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwg
cHJpbnRfZnVuY3Rpb24KKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgc3lzCisKIGlt
cG9ydCBweXRlc3QKIAogCiBjbGFzcyBUZXN0UGFzdGVDYXB0dXJlKG9iamVjdCk6Ci0KICAgICBA
cHl0ZXN0LmZpeHR1cmUKICAgICBkZWYgcGFzdGViaW5saXN0KHNlbGYsIG1vbmtleXBhdGNoLCBy
ZXF1ZXN0KToKICAgICAgICAgcGFzdGViaW5saXN0ID0gW10KQEAgLTY1LDEzICs2OCwxMyBAQCBj
bGFzcyBUZXN0UGFzdGVDYXB0dXJlKG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICB0ZXN0X3VuaWNvZGU9IiIiCi0gICAgICAgICAg
ICAjIGVuY29kaW5nOiB1dGYtOAorICAgICAgICAgICAgIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0K
ICAgICAgICAgICAgIGRlZiB0ZXN0KCk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0ICfimLonID09
IDEKICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi0tcGFzdGViaW49YWxsIikKLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9
PSAzOgorICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6CiAgICAgICAgICAgICBl
eHBlY3RlZF9tc2cgPSAiKmFzc2VydCAn4pi6JyA9PSAxKiIKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIGV4cGVjdGVkX21zZyA9ICIqYXNzZXJ0ICdcXHhlMlxceDk4XFx4YmEnID09IDEqIgpA
QCAtODUsNyArODgsNiBAQCBjbGFzcyBUZXN0UGFzdGVDYXB0dXJlKG9iamVjdCk6CiAKIAogY2xh
c3MgVGVzdFBhc3RlKG9iamVjdCk6Ci0KICAgICBAcHl0ZXN0LmZpeHR1cmUKICAgICBkZWYgcGFz
dGViaW4oc2VsZiwgcmVxdWVzdCk6CiAgICAgICAgIHJldHVybiByZXF1ZXN0LmNvbmZpZy5wbHVn
aW5tYW5hZ2VyLmdldHBsdWdpbigicGFzdGViaW4iKQpAQCAtMTAyLDcgKzEwNCw2IEBAIGNsYXNz
IFRlc3RQYXN0ZShvYmplY3QpOgogICAgICAgICAgICAgY2FsbHMuYXBwZW5kKCh1cmwsIGRhdGEp
KQogCiAgICAgICAgICAgICBjbGFzcyBEdW1teUZpbGUob2JqZWN0KToKLQogICAgICAgICAgICAg
ICAgIGRlZiByZWFkKHNlbGYpOgogICAgICAgICAgICAgICAgICAgICAjIHBhcnQgb2YgaHRtbCBv
ZiBhIG5vcm1hbCByZXNwb25zZQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gYidWaWV3IDxh
IGhyZWY9Ii9yYXcvM2MwYzY3NTBiZCI+cmF3PC9hPi4nCkBAIC0xMjUsNyArMTI2LDcgQEAgY2xh
c3MgVGVzdFBhc3RlKG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBsZW4obW9ja2VkX3VybG9wZW4p
ID09IDEKICAgICAgICAgdXJsLCBkYXRhID0gbW9ja2VkX3VybG9wZW5bMF0KICAgICAgICAgYXNz
ZXJ0IHR5cGUoZGF0YSkgaXMgYnl0ZXMKLSAgICAgICAgbGV4ZXIgPSAicHl0aG9uMyIgaWYgc3lz
LnZlcnNpb25faW5mb1swXSA9PSAzIGVsc2UgInB5dGhvbiIKKyAgICAgICAgbGV4ZXIgPSAidGV4
dCIKICAgICAgICAgYXNzZXJ0IHVybCA9PSAiaHR0cHM6Ly9icGFzdGUubmV0IgogICAgICAgICBh
c3NlcnQgImxleGVyPSVzIiAlIGxleGVyIGluIGRhdGEuZGVjb2RlKCkKICAgICAgICAgYXNzZXJ0
ICJjb2RlPWZ1bGwtcGFzdGUtY29udGVudHMiIGluIGRhdGEuZGVjb2RlKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wYXRobGliLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X3BhdGhsaWIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQxZDI4OWY3NzczNDA4ZmU3Zjc3ZWJjN2Yy
Nzk2OTBhMDFjOGU1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVz
dF9wYXRobGliLnB5CkBAIC0wLDAgKzEsODcgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitp
bXBvcnQgc3lzCisKK2ltcG9ydCBweQorCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QucGF0
aGxpYiBpbXBvcnQgZm5tYXRjaF9leAorZnJvbSBfcHl0ZXN0LnBhdGhsaWIgaW1wb3J0IGdldF9s
b2NrX3BhdGgKK2Zyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBtYXliZV9kZWxldGVfYV9udW1i
ZXJlZF9kaXIKK2Zyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBQYXRoCisKKworY2xhc3MgVGVz
dFBvcnQ6CisgICAgIiIiVGVzdCB0aGF0IG91ciBwb3J0IG9mIHB5LmNvbW1vbi5GTk1hdGNoZXIg
KGZubWF0Y2hfZXgpIHByb2R1Y2VzIHRoZSBzYW1lIHJlc3VsdHMgYXMgdGhlCisgICAgb3JpZ2lu
YWwgcHkucGF0aC5sb2NhbC5mbm1hdGNoIG1ldGhvZC4KKyAgICAiIiIKKworICAgIEBweXRlc3Qu
Zml4dHVyZShwYXJhbXM9WyJwYXRobGliIiwgInB5LnBhdGgiXSkKKyAgICBkZWYgbWF0Y2goc2Vs
ZiwgcmVxdWVzdCk6CisgICAgICAgIGlmIHJlcXVlc3QucGFyYW0gPT0gInB5LnBhdGgiOgorCisg
ICAgICAgICAgICBkZWYgbWF0Y2hfKHBhdHRlcm4sIHBhdGgpOgorICAgICAgICAgICAgICAgIHJl
dHVybiBweS5wYXRoLmxvY2FsKHBhdGgpLmZubWF0Y2gocGF0dGVybikKKworICAgICAgICBlbHNl
OgorICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3QucGFyYW0gPT0gInBhdGhsaWIiCisKKyAgICAg
ICAgICAgIGRlZiBtYXRjaF8ocGF0dGVybiwgcGF0aCk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IGZubWF0Y2hfZXgocGF0dGVybiwgcGF0aCkKKworICAgICAgICByZXR1cm4gbWF0Y2hfCisKKyAg
ICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKKyAgICAgICAgZHJ2MSA9ICJjOiIKKyAgICAg
ICAgZHJ2MiA9ICJkOiIKKyAgICBlbHNlOgorICAgICAgICBkcnYxID0gIi9jIgorICAgICAgICBk
cnYyID0gIi9kIgorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAicGF0
dGVybiwgcGF0aCIsCisgICAgICAgIFsKKyAgICAgICAgICAgICgiKi5weSIsICJmb28ucHkiKSwK
KyAgICAgICAgICAgICgiKi5weSIsICJiYXIvZm9vLnB5IiksCisgICAgICAgICAgICAoInRlc3Rf
Ki5weSIsICJmb28vdGVzdF9mb28ucHkiKSwKKyAgICAgICAgICAgICgidGVzdHMvKi5weSIsICJ0
ZXN0cy9mb28ucHkiKSwKKyAgICAgICAgICAgIChkcnYxICsgIi8qLnB5IiwgZHJ2MSArICIvZm9v
LnB5IiksCisgICAgICAgICAgICAoZHJ2MSArICIvZm9vLyoucHkiLCBkcnYxICsgIi9mb28vZm9v
LnB5IiksCisgICAgICAgICAgICAoInRlc3RzLyoqL3Rlc3QqLnB5IiwgInRlc3RzL2Zvby90ZXN0
X2Zvby5weSIpLAorICAgICAgICAgICAgKCJ0ZXN0cy8qKi9kb2MvdGVzdCoucHkiLCAidGVzdHMv
Zm9vL2Jhci9kb2MvdGVzdF9mb28ucHkiKSwKKyAgICAgICAgICAgICgidGVzdHMvKiovZG9jLyoq
L3Rlc3QqLnB5IiwgInRlc3RzL2Zvby9kb2MvYmFyL3Rlc3RfZm9vLnB5IiksCisgICAgICAgIF0s
CisgICAgKQorICAgIGRlZiB0ZXN0X21hdGNoaW5nKHNlbGYsIG1hdGNoLCBwYXR0ZXJuLCBwYXRo
KToKKyAgICAgICAgYXNzZXJ0IG1hdGNoKHBhdHRlcm4sIHBhdGgpCisKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoCisgICAgICAgICJwYXR0ZXJuLCBwYXRoIiwKKyAgICAgICAgWworICAg
ICAgICAgICAgKCIqLnB5IiwgImZvby5weWMiKSwKKyAgICAgICAgICAgICgiKi5weSIsICJmb28v
Zm9vLnB5YyIpLAorICAgICAgICAgICAgKCJ0ZXN0cy8qLnB5IiwgImZvby9mb28ucHkiKSwKKyAg
ICAgICAgICAgIChkcnYxICsgIi8qLnB5IiwgZHJ2MiArICIvZm9vLnB5IiksCisgICAgICAgICAg
ICAoZHJ2MSArICIvZm9vLyoucHkiLCBkcnYyICsgIi9mb28vZm9vLnB5IiksCisgICAgICAgICAg
ICAoInRlc3RzLyoqL3Rlc3QqLnB5IiwgInRlc3RzL2Zvby5weSIpLAorICAgICAgICAgICAgKCJ0
ZXN0cy8qKi90ZXN0Ki5weSIsICJmb28vdGVzdF9mb28ucHkiKSwKKyAgICAgICAgICAgICgidGVz
dHMvKiovZG9jL3Rlc3QqLnB5IiwgInRlc3RzL2Zvby9iYXIvZG9jL2Zvby5weSIpLAorICAgICAg
ICAgICAgKCJ0ZXN0cy8qKi9kb2MvdGVzdCoucHkiLCAidGVzdHMvZm9vL2Jhci90ZXN0X2Zvby5w
eSIpLAorICAgICAgICBdLAorICAgICkKKyAgICBkZWYgdGVzdF9ub3RfbWF0Y2hpbmcoc2VsZiwg
bWF0Y2gsIHBhdHRlcm4sIHBhdGgpOgorICAgICAgICBhc3NlcnQgbm90IG1hdGNoKHBhdHRlcm4s
IHBhdGgpCisKKworZGVmIHRlc3RfYWNjZXNzX2RlbmllZF9kdXJpbmdfY2xlYW51cCh0bXBfcGF0
aCwgbW9ua2V5cGF0Y2gpOgorICAgICIiIkVuc3VyZSB0aGF0IGRlbGV0aW5nIGEgbnVtYmVyZWQg
ZGlyIGRvZXMgbm90IGZhaWwgYmVjYXVzZSBvZiBPU0Vycm9ycyAoIzQyNjIpLiIiIgorICAgIHBh
dGggPSB0bXBfcGF0aCAvICJ0ZW1wLTEiCisgICAgcGF0aC5ta2RpcigpCisKKyAgICBkZWYgcmVu
YW1lZF9mYWlsZWQoKmFyZ3MpOgorICAgICAgICByYWlzZSBPU0Vycm9yKCJhY2Nlc3MgZGVuaWVk
IikKKworICAgIG1vbmtleXBhdGNoLnNldGF0dHIoUGF0aCwgInJlbmFtZSIsIHJlbmFtZWRfZmFp
bGVkKQorCisgICAgbG9ja19wYXRoID0gZ2V0X2xvY2tfcGF0aChwYXRoKQorICAgIG1heWJlX2Rl
bGV0ZV9hX251bWJlcmVkX2RpcihwYXRoKQorICAgIGFzc2VydCBub3QgbG9ja19wYXRoLmlzX2Zp
bGUoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BkYi5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvdGVzdF9wZGIucHkKaW5kZXggNjE1ZDUyZTgzNDU0NWQ5ZDIwOWFjYmRl
NzQzZWVhZDdlZWE5MTQ5Yy4uZDMxZDYwNDY5Y2QxMjFiZWZhZTIxZmI5NTExMTFkNmRhY2FlMjlm
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BkYi5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGRiLnB5CkBAIC0xLDExICsxLDIzIEBACi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1p
bXBvcnQgc3lzCi1pbXBvcnQgcGxhdGZvcm0KKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBv
cnQgb3MKK2ltcG9ydCBzeXMKKworaW1wb3J0IHNpeAogCiBpbXBvcnQgX3B5dGVzdC5fY29kZQot
ZnJvbSBfcHl0ZXN0LmRlYnVnZ2luZyBpbXBvcnQgU1VQUE9SVFNfQlJFQUtQT0lOVF9CVUlMVElO
CiBpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QuZGVidWdnaW5nIGltcG9ydCBfdmFsaWRhdGVf
dXNlcGRiX2NscworCit0cnk6CisgICAgYnJlYWtwb2ludAorZXhjZXB0IE5hbWVFcnJvcjoKKyAg
ICBTVVBQT1JUU19CUkVBS1BPSU5UX0JVSUxUSU4gPSBGYWxzZQorZWxzZToKKyAgICBTVVBQT1JU
U19CUkVBS1BPSU5UX0JVSUxUSU4gPSBUcnVlCiAKIAogX0VOVklST05fUFlUSE9OQlJFQUtQT0lO
VCA9IG9zLmVudmlyb24uZ2V0KCJQWVRIT05CUkVBS1BPSU5UIiwgIiIpCkBAIC0yNSw2ICszNyw3
IEBAIGRlZiBjdXN0b21fcGRiX2NhbGxzKCk6CiAKICAgICAjIGluc3RhbGwgZHVtbXkgZGVidWdn
ZXIgY2xhc3MgYW5kIHRyYWNrIHdoaWNoIG1ldGhvZHMgd2VyZSBjYWxsZWQgb24gaXQKICAgICBj
bGFzcyBfQ3VzdG9tUGRiKG9iamVjdCk6CisgICAgICAgIHF1aXR0aW5nID0gRmFsc2UKIAogICAg
ICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgICAgIGNh
bGxlZC5hcHBlbmQoImluaXQiKQpAQCAtNDUsNyArNTgsNiBAQCBkZWYgY3VzdG9tX2RlYnVnZ2Vy
X2hvb2soKToKIAogICAgICMgaW5zdGFsbCBkdW1teSBkZWJ1Z2dlciBjbGFzcyBhbmQgdHJhY2sg
d2hpY2ggbWV0aG9kcyB3ZXJlIGNhbGxlZCBvbiBpdAogICAgIGNsYXNzIF9DdXN0b21EZWJ1Z2dl
cihvYmplY3QpOgotCiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3Mp
OgogICAgICAgICAgICAgY2FsbGVkLmFwcGVuZCgiaW5pdCIpCiAKQEAgLTY1LDcgKzc3LDYgQEAg
ZGVmIGN1c3RvbV9kZWJ1Z2dlcl9ob29rKCk6CiAKIAogY2xhc3MgVGVzdFBEQihvYmplY3QpOgot
CiAgICAgQHB5dGVzdC5maXh0dXJlCiAgICAgZGVmIHBkYmxpc3Qoc2VsZiwgcmVxdWVzdCk6CiAg
ICAgICAgIG1vbmtleXBhdGNoID0gcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoIm1vbmtleXBhdGNo
IikKQEAgLTEzOSwzMCArMTUwLDEzIEBAIGNsYXNzIFRlc3RQREIob2JqZWN0KToKICAgICAgICAg
YXNzZXJ0IHJlcC5mYWlsZWQKICAgICAgICAgYXNzZXJ0IGxlbihwZGJsaXN0KSA9PSAxCiAKLSAg
ICBkZWYgdGVzdF9wZGJfaW50ZXJhY3Rpb24oc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHAxID0g
dGVzdGRpci5tYWtlcHlmaWxlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBkZWYgdGVz
dF8xKCk6Ci0gICAgICAgICAgICAgICAgaSA9IDAKLSAgICAgICAgICAgICAgICBhc3NlcnQgaSA9
PSAxCi0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3
bl9weXRlc3QoIi0tcGRiICVzIiAlIHAxKQotICAgICAgICBjaGlsZC5leHBlY3QoIi4qZGVmIHRl
c3RfMSIpCi0gICAgICAgIGNoaWxkLmV4cGVjdCgiLippID0gMCIpCi0gICAgICAgIGNoaWxkLmV4
cGVjdCgiKFBkYikiKQotICAgICAgICBjaGlsZC5zZW5kZW9mKCkKLSAgICAgICAgcmVzdCA9IGNo
aWxkLnJlYWQoKS5kZWNvZGUoInV0ZjgiKQotICAgICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiBy
ZXN0Ci0gICAgICAgIGFzc2VydCAiZGVmIHRlc3RfMSIgbm90IGluIHJlc3QKLSAgICAgICAgc2Vs
Zi5mbHVzaChjaGlsZCkKLQogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgZmx1c2goY2hpbGQp
OgotICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiRGFyd2luIjoKLSAgICAgICAgICAg
IHJldHVybgogICAgICAgICBpZiBjaGlsZC5pc2FsaXZlKCk6CisgICAgICAgICAgICAjIFJlYWQg
aWYgdGhlIHRlc3QgaGFzIG5vdCAoZS5nLiB0ZXN0X3BkYl91bml0dGVzdF9za2lwKS4KKyAgICAg
ICAgICAgIGNoaWxkLnJlYWQoKQogICAgICAgICAgICAgY2hpbGQud2FpdCgpCisgICAgICAgIGFz
c2VydCBub3QgY2hpbGQuaXNhbGl2ZSgpCiAKICAgICBkZWYgdGVzdF9wZGJfdW5pdHRlc3RfcG9z
dG1vcnRlbShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUo
CkBAIC0xNzcsNyArMTcxLDcgQEAgY2xhc3MgVGVzdFBEQihvYmplY3QpOgogICAgICAgICAiIiIK
ICAgICAgICAgKQogICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCItLXBkYiAl
cyIgJSBwMSkKLSAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAgICAgIGNoaWxkLmV4
cGVjdCgiUGRiIikKICAgICAgICAgY2hpbGQuc2VuZGxpbmUoInAgc2VsZi5maWxlbmFtZSIpCiAg
ICAgICAgIGNoaWxkLnNlbmRlb2YoKQogICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29k
ZSgidXRmOCIpCkBAIC0yMDEsNDAgKzE5NSwzMiBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAg
ICAgICAgIGNoaWxkLnNlbmRlb2YoKQogICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQogCi0gICAg
ZGVmIHRlc3RfcGRiX3ByaW50X2NhcHR1cmVkX3N0ZG91dChzZWxmLCB0ZXN0ZGlyKToKKyAgICBk
ZWYgdGVzdF9wZGJfcHJpbnRfY2FwdHVyZWRfc3Rkb3V0X2FuZF9zdGRlcnIoc2VsZiwgdGVzdGRp
cik6CiAgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAg
ICAgICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAgICAgaW1wb3J0IHN5cworICAg
ICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImdldFxceDIwcmVrdCIpCiAgICAgICAgICAg
ICAgICAgcHJpbnQoImdldFxceDIwcmVrdCIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNl
CisKKyAgICAgICAgICAgIGRlZiB0ZXN0X25vdF9jYWxsZWRfZHVlX3RvX3F1aXQoKToKKyAgICAg
ICAgICAgICAgICBwYXNzCiAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIGNoaWxkID0g
dGVzdGRpci5zcGF3bl9weXRlc3QoIi0tcGRiICVzIiAlIHAxKQogICAgICAgICBjaGlsZC5leHBl
Y3QoImNhcHR1cmVkIHN0ZG91dCIpCiAgICAgICAgIGNoaWxkLmV4cGVjdCgiZ2V0IHJla3QiKQot
ICAgICAgICBjaGlsZC5leHBlY3QoIihQZGIpIikKLSAgICAgICAgY2hpbGQuc2VuZGVvZigpCi0g
ICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikKLSAgICAgICAgYXNzZXJ0
ICIxIGZhaWxlZCIgaW4gcmVzdAotICAgICAgICBhc3NlcnQgImdldCByZWt0IiBub3QgaW4gcmVz
dAotICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQotCi0gICAgZGVmIHRlc3RfcGRiX3ByaW50X2Nh
cHR1cmVkX3N0ZGVycihzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKLSAgICAg
ICAgICAgICAgICBpbXBvcnQgc3lzCi0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgi
Z2V0XFx4MjByZWt0IikKLSAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKLSAgICAgICAgIiIi
Ci0gICAgICAgICkKLSAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdCgiLS1wZGIg
JXMiICUgcDEpCiAgICAgICAgIGNoaWxkLmV4cGVjdCgiY2FwdHVyZWQgc3RkZXJyIikKICAgICAg
ICAgY2hpbGQuZXhwZWN0KCJnZXQgcmVrdCIpCi0gICAgICAgIGNoaWxkLmV4cGVjdCgiKFBkYiki
KQorICAgICAgICBjaGlsZC5leHBlY3QoInRyYWNlYmFjayIpCisgICAgICAgIGNoaWxkLmV4cGVj
dCgiZGVmIHRlc3RfMSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKICAgICAgICAgY2hp
bGQuc2VuZGVvZigpCiAgICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikK
LSAgICAgICAgYXNzZXJ0ICIxIGZhaWxlZCIgaW4gcmVzdAorICAgICAgICBhc3NlcnQgIkV4aXQ6
IFF1aXR0aW5nIGRlYnVnZ2VyIiBpbiByZXN0CisgICAgICAgIGFzc2VydCAiPSAxIGZhaWxlZCBp
biIgaW4gcmVzdAorICAgICAgICBhc3NlcnQgImRlZiB0ZXN0XzEiIG5vdCBpbiByZXN0CiAgICAg
ICAgIGFzc2VydCAiZ2V0IHJla3QiIG5vdCBpbiByZXN0CiAgICAgICAgIHNlbGYuZmx1c2goY2hp
bGQpCiAKQEAgLTI0Niw3ICsyMzIsNyBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAg
ICIiIgogICAgICAgICApCiAgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0t
cGRiICVzIiAlIHAxKQotICAgICAgICBjaGlsZC5leHBlY3QoIihQZGIpIikKKyAgICAgICAgY2hp
bGQuZXhwZWN0KCJQZGIiKQogICAgICAgICBvdXRwdXQgPSBjaGlsZC5iZWZvcmUuZGVjb2RlKCJ1
dGY4IikKICAgICAgICAgY2hpbGQuc2VuZGVvZigpCiAgICAgICAgIGFzc2VydCAiY2FwdHVyZWQg
c3Rkb3V0IiBub3QgaW4gb3V0cHV0CkBAIC0yNjMsMTEgKzI0OSwxMyBAQCBjbGFzcyBUZXN0UERC
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCiAgICAgICAgICIiIgogICAg
ICAgICApCi0gICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tc2hvdy1jYXB0
dXJlPSVzIC0tcGRiICVzIiAlIChzaG93Y2FwdHVyZSwgcDEpKQorICAgICAgICBjaGlsZCA9IHRl
c3RkaXIuc3Bhd25fcHl0ZXN0KAorICAgICAgICAgICAgIi0tc2hvdy1jYXB0dXJlPXt9IC0tcGRi
IHt9Ii5mb3JtYXQoc2hvd2NhcHR1cmUsIHAxKQorICAgICAgICApCiAgICAgICAgIGlmIHNob3dj
YXB0dXJlIGluICgiYWxsIiwgImxvZyIpOgogICAgICAgICAgICAgY2hpbGQuZXhwZWN0KCJjYXB0
dXJlZCBsb2ciKQogICAgICAgICAgICAgY2hpbGQuZXhwZWN0KCJnZXQgcmVrdCIpCi0gICAgICAg
IGNoaWxkLmV4cGVjdCgiKFBkYikiKQorICAgICAgICBjaGlsZC5leHBlY3QoIlBkYiIpCiAgICAg
ICAgIGNoaWxkLnNlbmRlb2YoKQogICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgi
dXRmOCIpCiAgICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKQEAgLTI4MiwxMyArMjcw
LDExIEBAIGNsYXNzIFRlc3RQREIob2JqZWN0KToKICAgICAgICAgICAgICAgICBhc3NlcnQgRmFs
c2UKICAgICAgICAgIiIiCiAgICAgICAgICkKLSAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXdu
X3B5dGVzdCgKLSAgICAgICAgICAgICItLXNob3ctY2FwdHVyZT1hbGwgLS1wZGIgIiAiLXAgbm86
bG9nZ2luZyAlcyIgJSBwMQotICAgICAgICApCisgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3
bl9weXRlc3QoIi0tc2hvdy1jYXB0dXJlPWFsbCAtLXBkYiAtcCBubzpsb2dnaW5nICVzIiAlIHAx
KQogICAgICAgICBjaGlsZC5leHBlY3QoImdldCByZWt0IikKICAgICAgICAgb3V0cHV0ID0gY2hp
bGQuYmVmb3JlLmRlY29kZSgidXRmOCIpCiAgICAgICAgIGFzc2VydCAiY2FwdHVyZWQgbG9nIiBu
b3QgaW4gb3V0cHV0Ci0gICAgICAgIGNoaWxkLmV4cGVjdCgiKFBkYikiKQorICAgICAgICBjaGls
ZC5leHBlY3QoIlBkYiIpCiAgICAgICAgIGNoaWxkLnNlbmRlb2YoKQogICAgICAgICByZXN0ID0g
Y2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIpCiAgICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGlu
IHJlc3QKQEAgLTMwNyw3ICsyOTMsNyBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAg
IGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tcGRiICVzIiAlIHAxKQogICAgICAgICBj
aGlsZC5leHBlY3QoIi4qZGVmIHRlc3RfMSIpCiAgICAgICAgIGNoaWxkLmV4cGVjdCgiLipweXRl
c3QucmFpc2VzLipnbG9iYWxmdW5jIikKLSAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisg
ICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKICAgICAgICAgY2hpbGQuc2VuZGxpbmUoImdsb2Jh
bGZ1bmMiKQogICAgICAgICBjaGlsZC5leHBlY3QoIi4qZnVuY3Rpb24iKQogICAgICAgICBjaGls
ZC5zZW5kZW9mKCkKQEAgLTMyMyw4ICszMDksOCBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAg
ICAgICAgICkKICAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdCgiLS1wZGIgJXMi
ICUgcDEpCiAgICAgICAgICMgY2hpbGQuZXhwZWN0KCIuKmltcG9ydCBweXRlc3QuKiIpCi0gICAg
ICAgIGNoaWxkLmV4cGVjdCgiKFBkYikiKQotICAgICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAg
ICAgY2hpbGQuZXhwZWN0KCJQZGIiKQorICAgICAgICBjaGlsZC5zZW5kbGluZSgiYyIpCiAgICAg
ICAgIGNoaWxkLmV4cGVjdCgiMSBlcnJvciIpCiAgICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCiAK
QEAgLTMzNyw4ICszMjMsMjAgQEAgY2xhc3MgVGVzdFBEQihvYmplY3QpOgogICAgICAgICApCiAg
ICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQog
ICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCItLXBkYiAlcyIgJSBwMSkKLSAg
ICAgICAgIyBjaGlsZC5leHBlY3QoIi4qaW1wb3J0IHB5dGVzdC4qIikKLSAgICAgICAgY2hpbGQu
ZXhwZWN0KCIoUGRiKSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKworICAgICAgICAj
IElOVEVSTkFMRVJST1IgaXMgb25seSBkaXNwbGF5ZWQgb25jZSB2aWEgdGVybWluYWwgcmVwb3J0
ZXIuCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICBsZW4oCisgICAgICAgICAgICAgICAg
WworICAgICAgICAgICAgICAgICAgICB4CisgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIGNo
aWxkLmJlZm9yZS5kZWNvZGUoKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgICAgICAgICAgICAgaWYg
eC5zdGFydHN3aXRoKCJJTlRFUk5BTEVSUk9SPiBUcmFjZWJhY2siKQorICAgICAgICAgICAgICAg
IF0KKyAgICAgICAgICAgICkKKyAgICAgICAgICAgID09IDEKKyAgICAgICAgKQorCiAgICAgICAg
IGNoaWxkLnNlbmRlb2YoKQogICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQogCkBAIC0zNDgsMTYg
KzM0Niw0MSBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CiAgICAgICAgICAgICBkZWYgdGVzdF8xKCk6CiAgICAgICAgICAgICAgICAgaSA9IDAKLSAg
ICAgICAgICAgICAgICBwcmludCAoImhlbGxvMTciKQorICAgICAgICAgICAgICAgIHByaW50KCJo
ZWxsbzE3IikKICAgICAgICAgICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkKKyAgICAgICAgICAg
ICAgICBpID09IDEKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIKKyAgICAg
ICAgKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkpCisgICAg
ICAgIGNoaWxkLmV4cGVjdChyInRlc3RfMVwoXCkiKQorICAgICAgICBjaGlsZC5leHBlY3QoImkg
PT0gMSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxp
bmUoImMiKQorICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmLTgiKQorICAg
ICAgICBhc3NlcnQgIkFzc2VydGlvbkVycm9yIiBpbiByZXN0CisgICAgICAgIGFzc2VydCAiMSBm
YWlsZWQiIGluIHJlc3QKKyAgICAgICAgYXNzZXJ0ICJkZWYgdGVzdF8xIiBpbiByZXN0CisgICAg
ICAgIGFzc2VydCAiaGVsbG8xNyIgaW4gcmVzdCAgIyBvdXQgaXMgY2FwdHVyZWQKKyAgICAgICAg
c2VsZi5mbHVzaChjaGlsZCkKKworICAgIGRlZiB0ZXN0X3BkYl9zZXRfdHJhY2Vfa3dhcmdzKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRlc3Rf
MSgpOgorICAgICAgICAgICAgICAgIGkgPSAwCisgICAgICAgICAgICAgICAgcHJpbnQoImhlbGxv
MTciKQorICAgICAgICAgICAgICAgIHB5dGVzdC5zZXRfdHJhY2UoaGVhZGVyPSI9PSBteV9oZWFk
ZXIgPT0iKQogICAgICAgICAgICAgICAgIHggPSAzCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAK
ICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5
dGVzdChzdHIocDEpKQotICAgICAgICBjaGlsZC5leHBlY3QoInRlc3RfMSIpCi0gICAgICAgIGNo
aWxkLmV4cGVjdCgieCA9IDMiKQotICAgICAgICBjaGlsZC5leHBlY3QoIihQZGIpIikKLSAgICAg
ICAgY2hpbGQuc2VuZGVvZigpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiPT0gbXlfaGVhZGVyID09
IikKKyAgICAgICAgYXNzZXJ0ICJQREIgc2V0X3RyYWNlIiBub3QgaW4gY2hpbGQuYmVmb3JlLmRl
Y29kZSgpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxp
bmUoImMiKQogICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmLTgiKQogICAg
ICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiByZXN0CiAgICAgICAgIGFzc2VydCAiZGVmIHRlc3Rf
MSIgaW4gcmVzdApAQCAtMzc0LDExICszOTcsMTIgQEAgY2xhc3MgVGVzdFBEQihvYmplY3QpOgog
ICAgICAgICApCiAgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3Qoc3RyKHAxKSkK
ICAgICAgICAgY2hpbGQuZXhwZWN0KCJ0ZXN0XzEiKQotICAgICAgICBjaGlsZC5leHBlY3QoIihQ
ZGIpIikKLSAgICAgICAgY2hpbGQuc2VuZGVvZigpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRi
IikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoInEiKQogICAgICAgICByZXN0ID0gY2hpbGQucmVh
ZCgpLmRlY29kZSgidXRmOCIpCi0gICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKKyAg
ICAgICAgYXNzZXJ0ICJubyB0ZXN0cyByYW4iIGluIHJlc3QKICAgICAgICAgYXNzZXJ0ICJyZWFk
aW5nIGZyb20gc3RkaW4gd2hpbGUgb3V0cHV0IiBub3QgaW4gcmVzdAorICAgICAgICBhc3NlcnQg
IkJkYlF1aXQiIG5vdCBpbiByZXN0CiAgICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCiAKICAgICBk
ZWYgdGVzdF9wZGJfYW5kX2NhcHN5cyhzZWxmLCB0ZXN0ZGlyKToKQEAgLTM4Niw3ICs0MTAsNyBA
QCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKICAgICAgICAgICAgIGRlZiB0ZXN0XzEoY2Fwc3lzKToKLSAgICAgICAgICAg
ICAgICBwcmludCAoImhlbGxvMSIpCisgICAgICAgICAgICAgICAgcHJpbnQoImhlbGxvMSIpCiAg
ICAgICAgICAgICAgICAgcHl0ZXN0LnNldF90cmFjZSgpCiAgICAgICAgICIiIgogICAgICAgICAp
CkBAIC0zOTgsNiArNDIyLDI0IEBAIGNsYXNzIFRlc3RQREIob2JqZWN0KToKICAgICAgICAgY2hp
bGQucmVhZCgpCiAgICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCiAKKyAgICBkZWYgdGVzdF9wZGJf
d2l0aF9jYXBsb2dfb25fcGRiX2ludm9jYXRpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAx
ID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYg
dGVzdF8xKGNhcHN5cywgY2FwbG9nKToKKyAgICAgICAgICAgICAgICBpbXBvcnQgbG9nZ2luZwor
ICAgICAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKS53YXJuaW5nKCJzb21l
X3dhcm5pbmciKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIgorICAgICAg
ICApCisgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tcGRiICVzIiAlIHN0
cihwMSkpCisgICAgICAgIGNoaWxkLnNlbmQoImNhcGxvZy5yZWNvcmRfdHVwbGVzXG4iKQorICAg
ICAgICBjaGlsZC5leHBlY3RfZXhhY3QoCisgICAgICAgICAgICAiWygndGVzdF9wZGJfd2l0aF9j
YXBsb2dfb25fcGRiX2ludm9jYXRpb24nLCAzMCwgJ3NvbWVfd2FybmluZycpXSIKKyAgICAgICAg
KQorICAgICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgY2hpbGQucmVhZCgpCisgICAgICAg
IHNlbGYuZmx1c2goY2hpbGQpCisKICAgICBkZWYgdGVzdF9zZXRfdHJhY2VfY2FwdHVyaW5nX2Fm
dGVyd2FyZHMoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxl
KAogICAgICAgICAgICAgIiIiCkBAIC00MDUsNyArNDQ3LDcgQEAgY2xhc3MgVGVzdFBEQihvYmpl
Y3QpOgogICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgogICAgICAgICAgICAgICAgIHBkYi5zZXRf
dHJhY2UoKQogICAgICAgICAgICAgZGVmIHRlc3RfMigpOgotICAgICAgICAgICAgICAgIHByaW50
ICgiaGVsbG8iKQorICAgICAgICAgICAgICAgIHByaW50KCJoZWxsbyIpCiAgICAgICAgICAgICAg
ICAgYXNzZXJ0IDAKICAgICAgICAgIiIiCiAgICAgICAgICkKQEAgLTQxOSw3ICs0NjEsNyBAQCBj
bGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgIGNoaWxkLnJlYWQoKQogICAgICAgICBzZWxm
LmZsdXNoKGNoaWxkKQogCi0gICAgZGVmIHRlc3RfcGRiX2ludGVyYWN0aW9uX2RvY3Rlc3Qoc2Vs
ZiwgdGVzdGRpcik6CisgICAgZGVmIHRlc3RfcGRiX2ludGVyYWN0aW9uX2RvY3Rlc3Qoc2VsZiwg
dGVzdGRpciwgbW9ua2V5cGF0Y2gpOgogICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgK
ICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgaW1wb3J0IHB5dGVzdApAQCAtNDMxLDEwICs0
NzMsMTQgQEAgY2xhc3MgVGVzdFBEQihvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQog
ICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCItLWRvY3Rlc3QtbW9kdWxlcyAt
LXBkYiAlcyIgJSBwMSkKLSAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCi0gICAgICAgIGNo
aWxkLnNlbmRsaW5lKCJpIikKLSAgICAgICAgY2hpbGQuZXhwZWN0KCIwIikKLSAgICAgICAgY2hp
bGQuZXhwZWN0KCIoUGRiKSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKworICAgICAg
ICBhc3NlcnQgIlVORVhQRUNURUQgRVhDRVBUSU9OOiBBc3NlcnRpb25FcnJvcigpIiBpbiBjaGls
ZC5iZWZvcmUuZGVjb2RlKCJ1dGY4IikKKworICAgICAgICBjaGlsZC5zZW5kbGluZSgiJ2k9JWku
JyAlIGkiKQorICAgICAgICBjaGlsZC5leHBlY3QoIlBkYiIpCisgICAgICAgIGFzc2VydCAiXHJc
bidpPTAuJ1xyXG4iIGluIGNoaWxkLmJlZm9yZS5kZWNvZGUoInV0ZjgiKQorCiAgICAgICAgIGNo
aWxkLnNlbmRlb2YoKQogICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIp
CiAgICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKQEAgLTQ0NiwyOCArNDkyLDIyMCBA
QCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CiAgICAg
ICAgICAgICBkZWYgdGVzdF8xKCk6CiAgICAgICAgICAgICAgICAgaSA9IDAKLSAgICAgICAgICAg
ICAgICBwcmludCAoImhlbGxvMTciKQorICAgICAgICAgICAgICAgIHByaW50KCJoZWxsbzE3IikK
ICAgICAgICAgICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkKICAgICAgICAgICAgICAgICB4ID0g
MwotICAgICAgICAgICAgICAgIHByaW50ICgiaGVsbG8xOCIpCisgICAgICAgICAgICAgICAgcHJp
bnQoImhlbGxvMTgiKQogICAgICAgICAgICAgICAgIHB5dGVzdC5zZXRfdHJhY2UoKQogICAgICAg
ICAgICAgICAgIHggPSA0CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKICAgICAgICAgIiIiCiAg
ICAgICAgICkKICAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdChzdHIocDEpKQor
ICAgICAgICBjaGlsZC5leHBlY3QociJQREIgc2V0X3RyYWNlIFwoSU8tY2FwdHVyaW5nIHR1cm5l
ZCBvZmZcKSIpCiAgICAgICAgIGNoaWxkLmV4cGVjdCgidGVzdF8xIikKICAgICAgICAgY2hpbGQu
ZXhwZWN0KCJ4ID0gMyIpCi0gICAgICAgIGNoaWxkLmV4cGVjdCgiKFBkYikiKQorICAgICAgICBj
aGlsZC5leHBlY3QoIlBkYiIpCiAgICAgICAgIGNoaWxkLnNlbmRsaW5lKCJjIikKKyAgICAgICAg
Y2hpbGQuZXhwZWN0KHIiUERCIGNvbnRpbnVlIFwoSU8tY2FwdHVyaW5nIHJlc3VtZWRcKSIpCisg
ICAgICAgIGNoaWxkLmV4cGVjdChyIlBEQiBzZXRfdHJhY2UgXChJTy1jYXB0dXJpbmcgdHVybmVk
IG9mZlwpIikKICAgICAgICAgY2hpbGQuZXhwZWN0KCJ4ID0gNCIpCi0gICAgICAgIGNoaWxkLnNl
bmRlb2YoKQorICAgICAgICBjaGlsZC5leHBlY3QoIlBkYiIpCisgICAgICAgIGNoaWxkLnNlbmRs
aW5lKCJjIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJfIHRlc3RfMSBfIikKKyAgICAgICAgY2hp
bGQuZXhwZWN0KCJkZWYgdGVzdF8xIikKICAgICAgICAgcmVzdCA9IGNoaWxkLnJlYWQoKS5kZWNv
ZGUoInV0ZjgiKQorICAgICAgICBhc3NlcnQgIkNhcHR1cmVkIHN0ZG91dCBjYWxsIiBpbiByZXN0
CisgICAgICAgIGFzc2VydCAiaGVsbG8xNyIgaW4gcmVzdCAgIyBvdXQgaXMgY2FwdHVyZWQKKyAg
ICAgICAgYXNzZXJ0ICJoZWxsbzE4IiBpbiByZXN0ICAjIG91dCBpcyBjYXB0dXJlZAogICAgICAg
ICBhc3NlcnQgIjEgZmFpbGVkIiBpbiByZXN0Ci0gICAgICAgIGFzc2VydCAiZGVmIHRlc3RfMSIg
aW4gcmVzdAorICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRlc3RfcGRiX3dp
dGhfaW5qZWN0ZWRfZG9fZGVidWcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlNpbXVsYXRl
cyBwZGJwcCwgd2hpY2ggaW5qZWN0cyBQZGIgaW50byBkb19kZWJ1ZywgYW5kIHVzZXMKKyAgICAg
ICAgc2VsZi5fX2NsYXNzX18gaW4gZG9fY29udGludWUuCisgICAgICAgICIiIgorICAgICAgICBw
MSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgIG15dGVzdD0iIiIKKyAgICAgICAg
ICAgIGltcG9ydCBwZGIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAg
Y291bnRfY29udGludWUgPSAwCisKKyAgICAgICAgICAgIGNsYXNzIEN1c3RvbVBkYihwZGIuUGRi
LCBvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiBkb19kZWJ1ZyhzZWxmLCBhcmcpOgorICAg
ICAgICAgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICAgICAgICAgIGltcG9ydCB0
eXBlcworCisgICAgICAgICAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgKToK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRvX2RlYnVnX2Z1bmMgPSBwZGIuUGRiLmRvX2RlYnVn
LmltX2Z1bmMKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRvX2RlYnVnX2Z1bmMgPSBwZGIuUGRiLmRvX2RlYnVnCisKKyAgICAgICAgICAgICAgICAg
ICAgbmV3Z2xvYmFscyA9IGRvX2RlYnVnX2Z1bmMuX19nbG9iYWxzX18uY29weSgpCisgICAgICAg
ICAgICAgICAgICAgIG5ld2dsb2JhbHNbJ1BkYiddID0gc2VsZi5fX2NsYXNzX18KKyAgICAgICAg
ICAgICAgICAgICAgb3JpZ19kb19kZWJ1ZyA9IHR5cGVzLkZ1bmN0aW9uVHlwZSgKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRvX2RlYnVnX2Z1bmMuX19jb2RlX18sIG5ld2dsb2JhbHMsCisgICAg
ICAgICAgICAgICAgICAgICAgICBkb19kZWJ1Z19mdW5jLl9fbmFtZV9fLCBkb19kZWJ1Z19mdW5j
Ll9fZGVmYXVsdHNfXywKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gb3JpZ19kb19kZWJ1ZyhzZWxmLCBhcmcpCisgICAgICAgICAgICAgICAgZG9fZGVi
dWcuX19kb2NfXyA9IHBkYi5QZGIuZG9fZGVidWcuX19kb2NfXworCisgICAgICAgICAgICAgICAg
ZGVmIGRvX2NvbnRpbnVlKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAg
ICAgIGdsb2JhbCBjb3VudF9jb250aW51ZQorICAgICAgICAgICAgICAgICAgICBjb3VudF9jb250
aW51ZSArPSAxCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdXBlcihDdXN0b21QZGIsIHNl
bGYpLmRvX2NvbnRpbnVlKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICAgICAgZGVmIGZvbygp
OgorICAgICAgICAgICAgICAgIHByaW50KCJwcmludF9mcm9tX2ZvbyIpCisKKyAgICAgICAgICAg
IGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgICAgICBpID0gMAorICAgICAgICAgICAgICAgIHBy
aW50KCJoZWxsbzE3IikKKyAgICAgICAgICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkKKyAgICAg
ICAgICAgICAgICB4ID0gMworICAgICAgICAgICAgICAgIHByaW50KCJoZWxsbzE4IikKKworICAg
ICAgICAgICAgICAgIGFzc2VydCBjb3VudF9jb250aW51ZSA9PSAyLCAidW5leHBlY3RlZF9mYWls
dXJlOiAlZCAhPSAyIiAlIGNvdW50X2NvbnRpbnVlCisgICAgICAgICAgICAgICAgcHl0ZXN0LmZh
aWwoImV4cGVjdGVkX2ZhaWx1cmUiKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBj
aGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCItLXBkYmNscz1teXRlc3Q6Q3VzdG9tUGRiICVz
IiAlIHN0cihwMSkpCisgICAgICAgIGNoaWxkLmV4cGVjdChyIlBEQiBzZXRfdHJhY2UgXChJTy1j
YXB0dXJpbmcgdHVybmVkIG9mZlwpIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KHIiXG5cKFBkYiIp
CisgICAgICAgIGNoaWxkLnNlbmRsaW5lKCJkZWJ1ZyBmb28oKSIpCisgICAgICAgIGNoaWxkLmV4
cGVjdCgiRU5URVJJTkcgUkVDVVJTSVZFIERFQlVHR0VSIikKKyAgICAgICAgY2hpbGQuZXhwZWN0
KHIiXG5cKFwoUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoImMiKQorICAgICAgICBjaGls
ZC5leHBlY3QoIkxFQVZJTkcgUkVDVVJTSVZFIERFQlVHR0VSIikKKyAgICAgICAgYXNzZXJ0IGIi
UERCIGNvbnRpbnVlIiBub3QgaW4gY2hpbGQuYmVmb3JlCisgICAgICAgICMgTm8gZXh0cmEgbmV3
bGluZS4KKyAgICAgICAgYXNzZXJ0IGNoaWxkLmJlZm9yZS5lbmRzd2l0aChiImNcclxucHJpbnRf
ZnJvbV9mb29cclxuIikKKworICAgICAgICAjIHNldF9kZWJ1ZyBzaG91bGQgbm90IHJhaXNlIG91
dGNvbWVzLkV4aXQsIGlmIHVzZWQgcmVjcnVyc2l2ZWx5LgorICAgICAgICBjaGlsZC5zZW5kbGlu
ZSgiZGVidWcgNDIiKQorICAgICAgICBjaGlsZC5zZW5kbGluZSgicSIpCisgICAgICAgIGNoaWxk
LmV4cGVjdCgiTEVBVklORyBSRUNVUlNJVkUgREVCVUdHRVIiKQorICAgICAgICBhc3NlcnQgYiJF
TlRFUklORyBSRUNVUlNJVkUgREVCVUdHRVIiIGluIGNoaWxkLmJlZm9yZQorICAgICAgICBhc3Nl
cnQgYiJRdWl0dGluZyBkZWJ1Z2dlciIgbm90IGluIGNoaWxkLmJlZm9yZQorCisgICAgICAgIGNo
aWxkLnNlbmRsaW5lKCJjIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KHIiUERCIGNvbnRpbnVlIFwo
SU8tY2FwdHVyaW5nIHJlc3VtZWRcKSIpCisgICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVj
b2RlKCJ1dGY4IikKICAgICAgICAgYXNzZXJ0ICJoZWxsbzE3IiBpbiByZXN0ICAjIG91dCBpcyBj
YXB0dXJlZAogICAgICAgICBhc3NlcnQgImhlbGxvMTgiIGluIHJlc3QgICMgb3V0IGlzIGNhcHR1
cmVkCisgICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKKyAgICAgICAgYXNzZXJ0ICJG
YWlsZWQ6IGV4cGVjdGVkX2ZhaWx1cmUiIGluIHJlc3QKKyAgICAgICAgYXNzZXJ0ICJBc3NlcnRp
b25FcnJvcjogdW5leHBlY3RlZF9mYWlsdXJlIiBub3QgaW4gcmVzdAorICAgICAgICBzZWxmLmZs
dXNoKGNoaWxkKQorCisgICAgZGVmIHRlc3RfcGRiX3dpdGhvdXRfY2FwdHVyZShzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAg
ICAgICAgICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkKKyAgICAgICAgIiIiCisgICAgICAgICkK
KyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdCgiLXMgJXMiICUgcDEpCisgICAg
ICAgIGNoaWxkLmV4cGVjdChyIj4+PiBQREIgc2V0X3RyYWNlID4+PiIpCisgICAgICAgIGNoaWxk
LmV4cGVjdCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoImMiKQorICAgICAgICBjaGls
ZC5leHBlY3QociI+Pj4gUERCIGNvbnRpbnVlID4+PiIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgi
MSBwYXNzZWQiKQogICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQogCisgICAgQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJjYXB0dXJlX2FyZyIsICgiIiwgIi1zIiwgIi1wIG5vOmNhcHR1cmUiKSkK
KyAgICBkZWYgdGVzdF9wZGJfY29udGludWVfd2l0aF9yZWN1cnNpdmVfZGVidWcoc2VsZiwgY2Fw
dHVyZV9hcmcsIHRlc3RkaXIpOgorICAgICAgICAiIiJGdWxsIGNvdmVyYWdlIGZvciBkb19kZWJ1
ZyB3aXRob3V0IGNhcHR1cmluZy4KKworICAgICAgICBUaGlzIGlzIHZlcnkgc2ltaWxhciB0byB0
ZXN0X3BkYl9pbnRlcmFjdGlvbl9jb250aW51ZV9yZWN1cnNpdmUgaW4gZ2VuZXJhbCwKKyAgICAg
ICAgYnV0IG1vY2tzIG91dCBgYHBkYi5zZXRfdHJhY2VgYCBmb3IgcHJvdmlkaW5nIG1vcmUgY292
ZXJhZ2UuCisgICAgICAgICIiIgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlucHV0ID0g
cmF3X2lucHV0CisgICAgICAgICAgICBleGNlcHQgTmFtZUVycm9yOgorICAgICAgICAgICAgICAg
IHBhc3MKKworICAgICAgICAgICAgZGVmIHNldF90cmFjZSgpOgorICAgICAgICAgICAgICAgIF9f
aW1wb3J0X18oJ3BkYicpLnNldF90cmFjZSgpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEobW9u
a2V5cGF0Y2gpOgorICAgICAgICAgICAgICAgIGltcG9ydCBfcHl0ZXN0LmRlYnVnZ2luZworCisg
ICAgICAgICAgICAgICAgY2xhc3MgcHl0ZXN0UERCVGVzdChfcHl0ZXN0LmRlYnVnZ2luZy5weXRl
c3RQREIpOgorICAgICAgICAgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgICAg
ICAgICAgZGVmIHNldF90cmFjZShjbHMsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAg
ICAgICAgICAgICAjIEluaXQgUHl0ZXN0UGRiV3JhcHBlciB0byBoYW5kbGUgY2FwdHVyaW5nLgor
ICAgICAgICAgICAgICAgICAgICAgICAgX3BkYiA9IGNscy5faW5pdF9wZGIoInNldF90cmFjZSIs
ICphcmdzLCAqKmt3YXJncykKKworICAgICAgICAgICAgICAgICAgICAgICAgIyBNb2NrIG91dCBw
ZGIuUGRiLmRvX2NvbnRpbnVlLgorICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0IHBkYgor
ICAgICAgICAgICAgICAgICAgICAgICAgcGRiLlBkYi5kb19jb250aW51ZSA9IGxhbWJkYSBzZWxm
LCBhcmc6IE5vbmUKKworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIj09PSIgKyAiIFNF
VF9UUkFDRSA9PT0iKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGlucHV0KCkgPT0g
ImRlYnVnIHNldF90cmFjZSgpIgorCisgICAgICAgICAgICAgICAgICAgICAgICAjIFNpbXVsYXRl
IFB5dGVzdFBkYldyYXBwZXIuZG9fZGVidWcKKyAgICAgICAgICAgICAgICAgICAgICAgIGNscy5f
cmVjdXJzaXZlX2RlYnVnICs9IDEKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJFTlRF
UklORyBSRUNVUlNJVkUgREVCVUdHRVIiKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQo
Ij09PSIgKyAiIFNFVF9UUkFDRV8yID09PSIpCisKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydCBpbnB1dCgpID09ICJjIgorICAgICAgICAgICAgICAgICAgICAgICAgX3BkYi5kb19jb250
aW51ZSgiIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCI9PT0iICsgIiBTRVRfVFJB
Q0VfMyA9PT0iKQorCisgICAgICAgICAgICAgICAgICAgICAgICAjIFNpbXVsYXRlIFB5dGVzdFBk
YldyYXBwZXIuZG9fZGVidWcKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJMRUFWSU5H
IFJFQ1VSU0lWRSBERUJVR0dFUiIpCisgICAgICAgICAgICAgICAgICAgICAgICBjbHMuX3JlY3Vy
c2l2ZV9kZWJ1ZyAtPSAxCisKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCI9PT0iICsg
IiBTRVRfVFJBQ0VfNCA9PT0iKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGlucHV0
KCkgPT0gImMiCisgICAgICAgICAgICAgICAgICAgICAgICBfcGRiLmRvX2NvbnRpbnVlKCIiKQor
CisgICAgICAgICAgICAgICAgICAgIGRlZiBkb19jb250aW51ZShzZWxmLCBhcmcpOgorICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoIj09PSBkb19jb250aW51ZSIpCisKKyAgICAgICAgICAg
ICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKF9weXRlc3QuZGVidWdnaW5nLCAicHl0ZXN0UERCIiwg
cHl0ZXN0UERCVGVzdCkKKworICAgICAgICAgICAgICAgIGltcG9ydCBwZGIKKyAgICAgICAgICAg
ICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHBkYiwgInNldF90cmFjZSIsIHB5dGVzdFBEQlRlc3Qu
c2V0X3RyYWNlKQorCisgICAgICAgICAgICAgICAgc2V0X3RyYWNlKCkKKyAgICAgICAgIiIiCisg
ICAgICAgICkKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdCgiLS10Yj1zaG9y
dCAlcyAlcyIgJSAocDEsIGNhcHR1cmVfYXJnKSkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCI9PT0g
U0VUX1RSQUNFID09PSIpCisgICAgICAgIGJlZm9yZSA9IGNoaWxkLmJlZm9yZS5kZWNvZGUoInV0
ZjgiKQorICAgICAgICBpZiBub3QgY2FwdHVyZV9hcmc6CisgICAgICAgICAgICBhc3NlcnQgIj4+
PiBQREIgc2V0X3RyYWNlIChJTy1jYXB0dXJpbmcgdHVybmVkIG9mZikgPj4+IiBpbiBiZWZvcmUK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCAiPj4+IFBEQiBzZXRfdHJhY2UgPj4+
IiBpbiBiZWZvcmUKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoImRlYnVnIHNldF90cmFjZSgpIikK
KyAgICAgICAgY2hpbGQuZXhwZWN0KCI9PT0gU0VUX1RSQUNFXzIgPT09IikKKyAgICAgICAgYmVm
b3JlID0gY2hpbGQuYmVmb3JlLmRlY29kZSgidXRmOCIpCisgICAgICAgIGFzc2VydCAiXHJcbkVO
VEVSSU5HIFJFQ1VSU0lWRSBERUJVR0dFUlxyXG4iIGluIGJlZm9yZQorICAgICAgICBjaGlsZC5z
ZW5kbGluZSgiYyIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiPT09IFNFVF9UUkFDRV8zID09PSIp
CisKKyAgICAgICAgIyBObyBjb250aW51ZSBtZXNzYWdlIHdpdGggcmVjdXJzaXZlIGRlYnVnZ2lu
Zy4KKyAgICAgICAgYmVmb3JlID0gY2hpbGQuYmVmb3JlLmRlY29kZSgidXRmOCIpCisgICAgICAg
IGFzc2VydCAiPj4+IFBEQiBjb250aW51ZSAiIG5vdCBpbiBiZWZvcmUKKworICAgICAgICBjaGls
ZC5zZW5kbGluZSgiYyIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiPT09IFNFVF9UUkFDRV80ID09
PSIpCisgICAgICAgIGJlZm9yZSA9IGNoaWxkLmJlZm9yZS5kZWNvZGUoInV0ZjgiKQorICAgICAg
ICBhc3NlcnQgIlxyXG5MRUFWSU5HIFJFQ1VSU0lWRSBERUJVR0dFUlxyXG4iIGluIGJlZm9yZQor
ICAgICAgICBjaGlsZC5zZW5kbGluZSgiYyIpCisgICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCku
ZGVjb2RlKCJ1dGY4IikKKyAgICAgICAgaWYgbm90IGNhcHR1cmVfYXJnOgorICAgICAgICAgICAg
YXNzZXJ0ICI+IFBEQiBjb250aW51ZSAoSU8tY2FwdHVyaW5nIHJlc3VtZWQpID4iIGluIHJlc3QK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCAiPiBQREIgY29udGludWUgPiIgaW4g
cmVzdAorICAgICAgICBhc3NlcnQgIjEgcGFzc2VkIGluIiBpbiByZXN0CisKICAgICBkZWYgdGVz
dF9wZGJfdXNlZF9vdXRzaWRlX3Rlc3Qoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAxID0gdGVz
dGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC00NzYsOCArNzE0LDkgQEAgY2xh
c3MgVGVzdFBEQihvYmplY3QpOgogICAgICAgICAgICAgeCA9IDUKICAgICAgICAgIiIiCiAgICAg
ICAgICkKLSAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduKCIlcyAlcyIgJSAoc3lzLmV4ZWN1
dGFibGUsIHAxKSkKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduKCJ7fSB7fSIuZm9ybWF0
KHN5cy5leGVjdXRhYmxlLCBwMSkpCiAgICAgICAgIGNoaWxkLmV4cGVjdCgieCA9IDUiKQorICAg
ICAgICBjaGlsZC5leHBlY3QoIlBkYiIpCiAgICAgICAgIGNoaWxkLnNlbmRlb2YoKQogICAgICAg
ICBzZWxmLmZsdXNoKGNoaWxkKQogCkBAIC00OTQsMzcgKzczMyw2OSBAQCBjbGFzcyBUZXN0UERC
KG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVz
dChzdHIocDEpKQogICAgICAgICBjaGlsZC5leHBlY3QoInggPSA1IikKKyAgICAgICAgY2hpbGQu
ZXhwZWN0KCJQZGIiKQogICAgICAgICBjaGlsZC5zZW5kZW9mKCkKICAgICAgICAgc2VsZi5mbHVz
aChjaGlsZCkKIAogICAgIGRlZiB0ZXN0X3BkYl9jb2xsZWN0aW9uX2ZhaWx1cmVfaXNfc2hvd24o
c2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCJ4eHgiKQog
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCItLXBkYiIsIHAx
KQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqTmFtZUVycm9yKnh4eCoi
LCAiKjEgZXJyb3IqIl0pCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAg
ICAgICAgICAgIFsiRSAgIE5hbWVFcnJvcjogKnh4eCoiLCAiKiEgKkV4aXQ6IFF1aXR0aW5nIGRl
YnVnZ2VyICEqIl0gICMgZHVlIHRvIEVPRgorICAgICAgICApCiAKLSAgICBkZWYgdGVzdF9lbnRl
cl9wZGJfaG9va19pc19jYWxsZWQoc2VsZiwgdGVzdGRpcik6CisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJwb3N0X21vcnRlbSIsIChGYWxzZSwgVHJ1ZSkpCisgICAgZGVmIHRlc3RfZW50
ZXJfbGVhdmVfcGRiX2hvb2tzX2FyZV9jYWxsZWQoc2VsZiwgcG9zdF9tb3J0ZW0sIHRlc3RkaXIp
OgogICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgICAgICIiIgotICAgICAg
ICAgICAgZGVmIHB5dGVzdF9lbnRlcl9wZGIoY29uZmlnKToKLSAgICAgICAgICAgICAgICBhc3Nl
cnQgY29uZmlnLnRlc3RpbmdfdmVyaWZpY2F0aW9uID09ICdjb25maWd1cmVkJwotICAgICAgICAg
ICAgICAgIHByaW50ICdlbnRlcl9wZGJfaG9vaycKKyAgICAgICAgICAgIG15cGRiID0gTm9uZQog
CiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgogICAgICAgICAgICAg
ICAgIGNvbmZpZy50ZXN0aW5nX3ZlcmlmaWNhdGlvbiA9ICdjb25maWd1cmVkJworCisgICAgICAg
ICAgICBkZWYgcHl0ZXN0X2VudGVyX3BkYihjb25maWcsIHBkYik6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IGNvbmZpZy50ZXN0aW5nX3ZlcmlmaWNhdGlvbiA9PSAnY29uZmlndXJlZCcKKyAgICAg
ICAgICAgICAgICBwcmludCgnZW50ZXJfcGRiX2hvb2snKQorCisgICAgICAgICAgICAgICAgZ2xv
YmFsIG15cGRiCisgICAgICAgICAgICAgICAgbXlwZGIgPSBwZGIKKyAgICAgICAgICAgICAgICBt
eXBkYi5zZXRfYXR0cmlidXRlID0gImJhciIKKworICAgICAgICAgICAgZGVmIHB5dGVzdF9sZWF2
ZV9wZGIoY29uZmlnLCBwZGIpOgorICAgICAgICAgICAgICAgIGFzc2VydCBjb25maWcudGVzdGlu
Z192ZXJpZmljYXRpb24gPT0gJ2NvbmZpZ3VyZWQnCisgICAgICAgICAgICAgICAgcHJpbnQoJ2xl
YXZlX3BkYl9ob29rJykKKworICAgICAgICAgICAgICAgIGdsb2JhbCBteXBkYgorICAgICAgICAg
ICAgICAgIGFzc2VydCBteXBkYiBpcyBwZGIKKyAgICAgICAgICAgICAgICBhc3NlcnQgbXlwZGIu
c2V0X2F0dHJpYnV0ZSA9PSAiYmFyIgogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICBw
MSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAogCi0gICAgICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X3NldF90cmFjZSgpOgogICAgICAgICAgICAgICAgIHB5dGVzdC5zZXRfdHJhY2UoKQor
ICAgICAgICAgICAgICAgIGFzc2VydCAwCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Bvc3RfbW9y
dGVtKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKICAgICAgICAgIiIiCiAgICAgICAgICkK
LSAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdChzdHIocDEpKQorICAgICAgICBp
ZiBwb3N0X21vcnRlbToKKyAgICAgICAgICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3Qo
c3RyKHAxKSArICIgLS1wZGIgLXMgLWsgdGVzdF9wb3N0X21vcnRlbSIpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkgKyAiIC1r
IHRlc3Rfc2V0X3RyYWNlIikKICAgICAgICAgY2hpbGQuZXhwZWN0KCJlbnRlcl9wZGJfaG9vayIp
Ci0gICAgICAgIGNoaWxkLnNlbmQoImNcbiIpCi0gICAgICAgIGNoaWxkLnNlbmRlb2YoKQorICAg
ICAgICBjaGlsZC5zZW5kbGluZSgiYyIpCisgICAgICAgIGlmIHBvc3RfbW9ydGVtOgorICAgICAg
ICAgICAgY2hpbGQuZXhwZWN0KHIiUERCIGNvbnRpbnVlIikKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGNoaWxkLmV4cGVjdChyIlBEQiBjb250aW51ZSBcKElPLWNhcHR1cmluZyByZXN1bWVk
XCkiKQorICAgICAgICAgICAgY2hpbGQuZXhwZWN0KCJDYXB0dXJlZCBzdGRvdXQgY2FsbCIpCisg
ICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikKKyAgICAgICAgYXNzZXJ0
ICJsZWF2ZV9wZGJfaG9vayIgaW4gcmVzdAorICAgICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiBy
ZXN0CiAgICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCiAKICAgICBkZWYgdGVzdF9wZGJfY3VzdG9t
X2NscyhzZWxmLCB0ZXN0ZGlyLCBjdXN0b21fcGRiX2NhbGxzKToKQEAgLTUzMywxOCArODA0LDQw
IEBAIGNsYXNzIFRlc3RQREIob2JqZWN0KToKICAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKk5hbWVFcnJvcip4eHgqIiwgIioxIGVycm9yKiJdKQogICAgICAgICBhc3NlcnQg
Y3VzdG9tX3BkYl9jYWxscyA9PSBbImluaXQiLCAicmVzZXQiLCAiaW50ZXJhY3Rpb24iXQogCisg
ICAgZGVmIHRlc3RfcGRiX2N1c3RvbV9jbHNfaW52YWxpZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3RfaW5wcm9jZXNzKCItLXBkYmNscz1pbnZhbGlk
IikKKyAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWwor
ICAgICAgICAgICAgICAgICIqOiBlcnJvcjogYXJndW1lbnQgLS1wZGJjbHM6ICdpbnZhbGlkJyBp
cyBub3QgaW4gdGhlIGZvcm1hdCAnbW9kbmFtZTpjbGFzc25hbWUnIgorICAgICAgICAgICAgXQor
ICAgICAgICApCisKKyAgICBkZWYgdGVzdF9wZGJfdmFsaWRhdGVfdXNlcGRiX2NscyhzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgYXNzZXJ0IF92YWxpZGF0ZV91c2VwZGJfY2xzKCJvcy5wYXRoOmRp
cm5hbWUuX19uYW1lX18iKSA9PSAoCisgICAgICAgICAgICAib3MucGF0aCIsCisgICAgICAgICAg
ICAiZGlybmFtZS5fX25hbWVfXyIsCisgICAgICAgICkKKworICAgICAgICBhc3NlcnQgX3ZhbGlk
YXRlX3VzZXBkYl9jbHMoInBkYjpEb2VzTm90RXhpc3QiKSA9PSAoInBkYiIsICJEb2VzTm90RXhp
c3QiKQorCiAgICAgZGVmIHRlc3RfcGRiX2N1c3RvbV9jbHNfd2l0aG91dF9wZGIoc2VsZiwgdGVz
dGRpciwgY3VzdG9tX3BkYl9jYWxscyk6CiAgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxl
KCIiInh4eCAiIiIpCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X2lucHJvY2Vz
cygiLS1wZGJjbHM9X3B5dGVzdDpfQ3VzdG9tUGRiIiwgcDEpCiAgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIipOYW1lRXJyb3IqeHh4KiIsICIqMSBlcnJvcioiXSkKICAgICAg
ICAgYXNzZXJ0IGN1c3RvbV9wZGJfY2FsbHMgPT0gW10KIAotICAgIGRlZiB0ZXN0X3BkYl9jdXN0
b21fY2xzX3dpdGhfc2V0dHJhY2Uoc2VsZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgIGRl
ZiB0ZXN0X3BkYl9jdXN0b21fY2xzX3dpdGhfc2V0X3RyYWNlKHNlbGYsIHRlc3RkaXIsIG1vbmtl
eXBhdGNoKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgY3VzdG9t
X3BkYj0iIiIKICAgICAgICAgICAgIGNsYXNzIEN1c3RvbVBkYihvYmplY3QpOgorICAgICAgICAg
ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAg
ICAgICAgICBza2lwID0ga3dhcmdzLnBvcCgic2tpcCIpCisgICAgICAgICAgICAgICAgICAgIGFz
c2VydCBza2lwID09IFsiZm9vLioiXQorICAgICAgICAgICAgICAgICAgICBwcmludCgiX19pbml0
X18iKQorICAgICAgICAgICAgICAgICAgICBzdXBlcihDdXN0b21QZGIsIHNlbGYpLl9faW5pdF9f
KCphcmdzLCAqKmt3YXJncykKKwogICAgICAgICAgICAgICAgIGRlZiBzZXRfdHJhY2UoKmFyZ3Ms
ICoqa3dhcmdzKToKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ2N1c3RvbSBzZXRfdHJhY2U+
JworICAgICAgICAgICAgICAgICAgICBwcmludCgnY3VzdG9tIHNldF90cmFjZT4nKQogICAgICAg
ICAgIiIiCiAgICAgICAgICkKICAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBAIC01
NTIsMTggKzg0NSwxOCBAQCBjbGFzcyBUZXN0UERCKG9iamVjdCk6CiAgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CiAKICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgotICAgICAgICAgICAgICAg
IHB5dGVzdC5zZXRfdHJhY2UoKQorICAgICAgICAgICAgICAgIHB5dGVzdC5zZXRfdHJhY2Uoc2tp
cD1bJ2Zvby4qJ10pCiAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIG1vbmtleXBhdGNo
LnNldGVudigiUFlUSE9OUEFUSCIsIHN0cih0ZXN0ZGlyLnRtcGRpcikpCiAgICAgICAgIGNoaWxk
ID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tcGRiY2xzPWN1c3RvbV9wZGI6Q3VzdG9tUGRiICVz
IiAlIHN0cihwMSkpCiAKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJfX2luaXRfXyIpCiAgICAgICAg
IGNoaWxkLmV4cGVjdCgiY3VzdG9tIHNldF90cmFjZT4iKQogICAgICAgICBzZWxmLmZsdXNoKGNo
aWxkKQogCiAKIGNsYXNzIFRlc3REZWJ1Z2dpbmdCcmVha3BvaW50cyhvYmplY3QpOgotCiAgICAg
ZGVmIHRlc3Rfc3VwcG9ydHNfYnJlYWtwb2ludF9tb2R1bGVfZ2xvYmFsKHNlbGYpOgogICAgICAg
ICAiIiIKICAgICAgICAgVGVzdCB0aGF0IHN1cHBvcnRzIGJyZWFrcG9pbnQgZ2xvYmFsIG1hcmtz
IG9uIFB5dGhvbiAzLjcrIGFuZCBub3Qgb24KQEAgLTY3NCwxMCArOTY3LDEwIEBAIGNsYXNzIFRl
c3REZWJ1Z2dpbmdCcmVha3BvaW50cyhvYmplY3QpOgogICAgICAgICApCiAgICAgICAgIGNoaWxk
ID0gdGVzdGRpci5zcGF3bl9weXRlc3Qoc3RyKHAxKSkKICAgICAgICAgY2hpbGQuZXhwZWN0KCJ0
ZXN0XzEiKQotICAgICAgICBjaGlsZC5leHBlY3QoIihQZGIpIikKLSAgICAgICAgY2hpbGQuc2Vu
ZGVvZigpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxp
bmUoInF1aXQiKQogICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIpCi0g
ICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKKyAgICAgICAgYXNzZXJ0ICJRdWl0dGlu
ZyBkZWJ1Z2dlciIgaW4gcmVzdAogICAgICAgICBhc3NlcnQgInJlYWRpbmcgZnJvbSBzdGRpbiB3
aGlsZSBvdXRwdXQiIG5vdCBpbiByZXN0CiAgICAgICAgIFRlc3RQREIuZmx1c2goY2hpbGQpCiAK
QEAgLTY5MCwxMyArOTgzLDI1NSBAQCBjbGFzcyBUZXN0RGVidWdnaW5nQnJlYWtwb2ludHMob2Jq
ZWN0KToKICAgICAgICAgICAgIGltcG9ydCBwZGIKICAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToK
ICAgICAgICAgICAgICAgICBwZGIuc2V0X3RyYWNlKCkKKyAgICAgICAgICAgICAgICBhc3NlcnQg
MAogICAgICAgICAiIiIKICAgICAgICAgKQogICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25f
cHl0ZXN0KHN0cihwMSkpCiAgICAgICAgIGNoaWxkLmV4cGVjdCgidGVzdF8xIikKLSAgICAgICAg
Y2hpbGQuZXhwZWN0KCIoUGRiKSIpCi0gICAgICAgIGNoaWxkLnNlbmRlb2YoKQorICAgICAgICBj
aGlsZC5leHBlY3QoIlBkYiIpCisgICAgICAgIGNoaWxkLnNlbmRsaW5lKCJjIikKICAgICAgICAg
cmVzdCA9IGNoaWxkLnJlYWQoKS5kZWNvZGUoInV0ZjgiKQogICAgICAgICBhc3NlcnQgIjEgZmFp
bGVkIiBpbiByZXN0CiAgICAgICAgIGFzc2VydCAicmVhZGluZyBmcm9tIHN0ZGluIHdoaWxlIG91
dHB1dCIgbm90IGluIHJlc3QKICAgICAgICAgVGVzdFBEQi5mbHVzaChjaGlsZCkKKworCitjbGFz
cyBUZXN0VHJhY2VPcHRpb246CisgICAgZGVmIHRlc3RfdHJhY2Vfc2V0c19icmVha3BvaW50KHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBUcnVlCisKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoKToKKyAgICAgICAgICAgICAgICBwYXNz
CisKKyAgICAgICAgICAgIGRlZiB0ZXN0XzMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0
ZXN0KCItLXRyYWNlICIgKyBzdHIocDEpKQorICAgICAgICBjaGlsZC5leHBlY3QoInRlc3RfMSIp
CisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoImMi
KQorICAgICAgICBjaGlsZC5leHBlY3QoInRlc3RfMiIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgi
UGRiIikKKyAgICAgICAgY2hpbGQuc2VuZGxpbmUoImMiKQorICAgICAgICBjaGlsZC5leHBlY3Qo
InRlc3RfMyIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKyAgICAgICAgY2hpbGQuc2Vu
ZGxpbmUoInEiKQorICAgICAgICBjaGlsZC5leHBlY3RfZXhhY3QoIkV4aXQ6IFF1aXR0aW5nIGRl
YnVnZ2VyIikKKyAgICAgICAgcmVzdCA9IGNoaWxkLnJlYWQoKS5kZWNvZGUoInV0ZjgiKQorICAg
ICAgICBhc3NlcnQgIjIgcGFzc2VkIGluIiBpbiByZXN0CisgICAgICAgIGFzc2VydCAicmVhZGlu
ZyBmcm9tIHN0ZGluIHdoaWxlIG91dHB1dCIgbm90IGluIHJlc3QKKyAgICAgICAgIyBPbmx5IHBy
aW50ZWQgb25jZSAtIG5vdCBvbiBzdGRlcnIuCisgICAgICAgIGFzc2VydCAiRXhpdDogUXVpdHRp
bmcgZGVidWdnZXIiIG5vdCBpbiBjaGlsZC5iZWZvcmUuZGVjb2RlKCJ1dGY4IikKKyAgICAgICAg
VGVzdFBEQi5mbHVzaChjaGlsZCkKKworCitkZWYgdGVzdF90cmFjZV9hZnRlcl9ydW5weXRlc3Qo
dGVzdGRpcik6CisgICAgIiIiVGVzdCB0aGF0IGRlYnVnZ2luZydzIHB5dGVzdF9jb25maWd1cmUg
aXMgcmUtZW50cmFudC4iIiIKKyAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
IiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5kZWJ1Z2dpbmcgaW1wb3J0IHB5dGVzdFBEQgorCisg
ICAgICAgIGRlZiB0ZXN0X291dGVyKHRlc3RkaXIpOgorICAgICAgICAgICAgYXNzZXJ0IGxlbihw
eXRlc3RQREIuX3NhdmVkKSA9PSAxCisKKyAgICAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgK
KyAgICAgICAgICAgICAgICBcIiIiCisgICAgICAgICAgICAgICAgZnJvbSBfcHl0ZXN0LmRlYnVn
Z2luZyBpbXBvcnQgcHl0ZXN0UERCCisKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9pbm5lcigp
OgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHB5dGVzdFBEQi5fc2F2ZWQpID09IDIK
KyAgICAgICAgICAgICAgICAgICAgcHJpbnQoKQorICAgICAgICAgICAgICAgICAgICBwcmludCgi
dGVzdF9pbm5lcl8iICsgImVuZCIpCisgICAgICAgICAgICAgICAgXCIiIgorICAgICAgICAgICAg
KQorCisgICAgICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiLCAiLWsiLCAi
dGVzdF9pbm5lciIpCisgICAgICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICAg
ICAgICAgIGFzc2VydCBsZW4ocHl0ZXN0UERCLl9zYXZlZCkgPT0gMQorICAgICIiIgorICAgICkK
KyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCItcyIsICItcCIsICJw
eXRlc3RlciIsIHN0cihwMSkpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsidGVz
dF9pbm5lcl9lbmQiXSkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworZGVmIHRlc3Rf
cXVpdF93aXRoX3N3YWxsb3dlZF9TeXN0ZW1FeGl0KHRlc3RkaXIpOgorICAgICIiIlRlc3QgdGhh
dCBkZWJ1Z2dpbmcncyBweXRlc3RfY29uZmlndXJlIGlzIHJlLWVudHJhbnQuIiIiCisgICAgcDEg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBkZWYgY2FsbF9wZGJf
c2V0X3RyYWNlKCk6CisgICAgICAgICAgICBfX2ltcG9ydF9fKCdwZGInKS5zZXRfdHJhY2UoKQor
CisKKyAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgIGNhbGxfcGRiX3NldF90cmFjZSgpCisgICAgICAgICAgICBleGNlcHQgU3lzdGVtRXhpdDoK
KyAgICAgICAgICAgICAgICBwYXNzCisKKworICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAgICAg
ICAgICBwYXNzCisgICAgIiIiCisgICAgKQorICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRl
c3Qoc3RyKHAxKSkKKyAgICBjaGlsZC5leHBlY3QoIlBkYiIpCisgICAgY2hpbGQuc2VuZGxpbmUo
InEiKQorICAgIGNoaWxkLmV4cGVjdF9leGFjdCgiRXhpdDogUXVpdHRpbmcgZGVidWdnZXIiKQor
ICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikKKyAgICBhc3NlcnQgIm5vIHRl
c3RzIHJhbiIgaW4gcmVzdAorICAgIFRlc3RQREIuZmx1c2goY2hpbGQpCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJmaXh0dXJlIiwgKCJjYXBmZCIsICJjYXBzeXMiKSkKK2RlZiB0ZXN0
X3BkYl9zdXNwZW5kc19maXh0dXJlX2NhcHR1cmluZyh0ZXN0ZGlyLCBmaXh0dXJlKToKKyAgICAi
IiJVc2luZyAiLXMiIHdpdGggcHl0ZXN0IHNob3VsZCBzdXNwZW5kL3Jlc3VtZSBmaXh0dXJlIGNh
cHR1cmluZy4iIiIKKyAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisg
ICAgICAgIGRlZiB0ZXN0X2lubmVyKHtmaXh0dXJlfSk6CisgICAgICAgICAgICBpbXBvcnQgc3lz
CisKKyAgICAgICAgICAgIHByaW50KCJvdXRfaW5uZXJfYmVmb3JlIikKKyAgICAgICAgICAgIHN5
cy5zdGRlcnIud3JpdGUoImVycl9pbm5lcl9iZWZvcmVcXG4iKQorCisgICAgICAgICAgICBfX2lt
cG9ydF9fKCJwZGIiKS5zZXRfdHJhY2UoKQorCisgICAgICAgICAgICBwcmludCgib3V0X2lubmVy
X2FmdGVyIikKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImVycl9pbm5lcl9hZnRlclxc
biIpCisKKyAgICAgICAgICAgIG91dCwgZXJyID0ge2ZpeHR1cmV9LnJlYWRvdXRlcnIoKQorICAg
ICAgICAgICAgYXNzZXJ0IG91dCA9PSJvdXRfaW5uZXJfYmVmb3JlXFxub3V0X2lubmVyX2FmdGVy
XFxuIgorICAgICAgICAgICAgYXNzZXJ0IGVyciA9PSJlcnJfaW5uZXJfYmVmb3JlXFxuZXJyX2lu
bmVyX2FmdGVyXFxuIgorICAgICAgICAiIiIuZm9ybWF0KAorICAgICAgICAgICAgZml4dHVyZT1m
aXh0dXJlCisgICAgICAgICkKKyAgICApCisKKyAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0
ZXN0KHN0cihwMSkgKyAiIC1zIikKKworICAgIGNoaWxkLmV4cGVjdCgiUGRiIikKKyAgICBiZWZv
cmUgPSBjaGlsZC5iZWZvcmUuZGVjb2RlKCJ1dGY4IikKKyAgICBhc3NlcnQgKAorICAgICAgICAi
PiBQREIgc2V0X3RyYWNlIChJTy1jYXB0dXJpbmcgdHVybmVkIG9mZiBmb3IgZml4dHVyZSAlcykg
PiIgJSAoZml4dHVyZSkKKyAgICAgICAgaW4gYmVmb3JlCisgICAgKQorCisgICAgIyBUZXN0IHRo
YXQgY2FwdHVyaW5nIGlzIHJlYWxseSBzdXNwZW5kZWQuCisgICAgY2hpbGQuc2VuZGxpbmUoInAg
NDAgKyAyIikKKyAgICBjaGlsZC5leHBlY3QoIlBkYiIpCisgICAgYXNzZXJ0ICJcclxuNDJcclxu
IiBpbiBjaGlsZC5iZWZvcmUuZGVjb2RlKCJ1dGY4IikKKworICAgIGNoaWxkLnNlbmRsaW5lKCJj
IikKKyAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRmOCIpCisgICAgYXNzZXJ0ICJv
dXRfaW5uZXIiIG5vdCBpbiByZXN0CisgICAgYXNzZXJ0ICJlcnJfaW5uZXIiIG5vdCBpbiByZXN0
CisKKyAgICBUZXN0UERCLmZsdXNoKGNoaWxkKQorICAgIGFzc2VydCBjaGlsZC5leGl0c3RhdHVz
ID09IDAKKyAgICBhc3NlcnQgIj0gMSBwYXNzZWQgaW4gIiBpbiByZXN0CisgICAgYXNzZXJ0ICI+
IFBEQiBjb250aW51ZSAoSU8tY2FwdHVyaW5nIHJlc3VtZWQgZm9yIGZpeHR1cmUgJXMpID4iICUg
KGZpeHR1cmUpIGluIHJlc3QKKworCitkZWYgdGVzdF9wZGJjbHNfdmlhX2xvY2FsX21vZHVsZSh0
ZXN0ZGlyKToKKyAgICAiIiJJdCBzaG91bGQgYmUgaW1wb3J0ZWQgaW4gcHl0ZXN0X2NvbmZpZ3Vy
ZSBvciBsYXRlciBvbmx5LiIiIgorICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAg
ICAiIiIKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHByaW50KCJiZWZvcmVfc2V0
X3RyYWNlIikKKyAgICAgICAgICAgIF9faW1wb3J0X18oInBkYiIpLnNldF90cmFjZSgpCisgICAg
ICAgICIiIiwKKyAgICAgICAgbXlwZGI9IiIiCisgICAgICAgIGNsYXNzIFdyYXBwZWQ6CisgICAg
ICAgICAgICBjbGFzcyBNeVBkYjoKKyAgICAgICAgICAgICAgICBkZWYgc2V0X3RyYWNlKHNlbGYs
ICphcmdzKToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoInNldF90cmFjZV9jYWxsZWQiLCBh
cmdzKQorCisgICAgICAgICAgICAgICAgZGVmIHJ1bmNhbGwoc2VsZiwgKmFyZ3MsICoqa3dkcyk6
CisgICAgICAgICAgICAgICAgICAgIHByaW50KCJydW5jYWxsX2NhbGxlZCIsIGFyZ3MsIGt3ZHMp
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAiZnVuYyIgaW4ga3dkcworICAgICAgICAiIiIs
CisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KAorICAgICAgICBzdHIocDEp
LCAiLS1wZGJjbHM9cmVhbGx5LmludmFsaWQ6VmFsdWUiLCBzeXNwYXRoaW5zZXJ0PVRydWUKKyAg
ICApCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAg
ICAgICAiKj0gRkFJTFVSRVMgPSoiLAorICAgICAgICAgICAgIkUgKiAtLXBkYmNsczogY291bGQg
bm90IGltcG9ydCAncmVhbGx5LmludmFsaWQ6VmFsdWUnOiBObyBtb2R1bGUgbmFtZWQgKnJlYWxs
eSoiLAorICAgICAgICBdCisgICAgKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKworICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KAorICAgICAgICBzdHIocDEpLCAiLS1wZGJjbHM9
bXlwZGI6V3JhcHBlZC5NeVBkYiIsIHN5c3BhdGhpbnNlcnQ9VHJ1ZQorICAgICkKKyAgICBhc3Nl
cnQgcmVzdWx0LnJldCA9PSAwCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKnNl
dF90cmFjZV9jYWxsZWQqIiwgIiogMSBwYXNzZWQgaW4gKiJdKQorCisgICAgIyBFbnN1cmUgdGhh
dCBpdCBhbHNvIHdvcmtzIHdpdGggLS10cmFjZS4KKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgKKyAgICAgICAgc3RyKHAxKSwgIi0tcGRiY2xzPW15cGRiOldyYXBwZWQuTXlQZGIiLCAi
LS10cmFjZSIsIHN5c3BhdGhpbnNlcnQ9VHJ1ZQorICAgICkKKyAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSAwCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKnJ1bmNhbGxfY2FsbGVk
KiIsICIqIDEgcGFzc2VkIGluICoiXSkKKworCitkZWYgdGVzdF9yYWlzZXNfYmRicXVpdF93aXRo
X2VvZmVycm9yKHRlc3RkaXIpOgorICAgICIiIkl0IGlzIG5vdCBndWFyYW50ZWVkIHRoYXQgRG9u
dFJlYWRGcm9tSW5wdXQncyByZWFkIGlzIGNhbGxlZC4iIiIKKyAgICBpZiBzaXguUFkyOgorICAg
ICAgICBidWlsdGluX21vZHVsZSA9ICJfX2J1aWx0aW5fXyIKKyAgICAgICAgaW5wdXRfZnVuYyA9
ICJyYXdfaW5wdXQiCisgICAgZWxzZToKKyAgICAgICAgYnVpbHRpbl9tb2R1bGUgPSAiYnVpbHRp
bnMiCisgICAgICAgIGlucHV0X2Z1bmMgPSAiaW5wdXQiCisgICAgcDEgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBkZWYgaW5wdXRfd2l0aG91dF9yZWFkKCphcmdz
LCAqKmt3YXJncyk6CisgICAgICAgICAgICByYWlzZSBFT0ZFcnJvcigpCisKKyAgICAgICAgZGVm
IHRlc3QobW9ua2V5cGF0Y2gpOgorICAgICAgICAgICAgaW1wb3J0IHtidWlsdGluX21vZHVsZX0K
KyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoe2J1aWx0aW5fbW9kdWxlfSwge2lucHV0
X2Z1bmMhcn0sIGlucHV0X3dpdGhvdXRfcmVhZCkKKyAgICAgICAgICAgIF9faW1wb3J0X18oJ3Bk
YicpLnNldF90cmFjZSgpCisgICAgICAgICIiIi5mb3JtYXQoCisgICAgICAgICAgICBidWlsdGlu
X21vZHVsZT1idWlsdGluX21vZHVsZSwgaW5wdXRfZnVuYz1pbnB1dF9mdW5jCisgICAgICAgICkK
KyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qoc3RyKHAxKSkKKyAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJFICpCZGJRdWl0IiwgIio9IDEgZmFpbGVkIGluKiJd
KQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKworCitkZWYgdGVzdF9wZGJfd3JhcHBlcl9j
bGFzc19pc19yZXVzZWQodGVzdGRpcik6CisgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCisg
ICAgICAgICIiIgorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgX19pbXBvcnRfXygi
cGRiIikuc2V0X3RyYWNlKCkKKyAgICAgICAgICAgIF9faW1wb3J0X18oInBkYiIpLnNldF90cmFj
ZSgpCisKKyAgICAgICAgICAgIGltcG9ydCBteXBkYgorICAgICAgICAgICAgaW5zdGFuY2VzID0g
bXlwZGIuaW5zdGFuY2VzCisgICAgICAgICAgICBhc3NlcnQgbGVuKGluc3RhbmNlcykgPT0gMgor
ICAgICAgICAgICAgYXNzZXJ0IGluc3RhbmNlc1swXS5fX2NsYXNzX18gaXMgaW5zdGFuY2VzWzFd
Ll9fY2xhc3NfXworICAgICAgICAiIiIsCisgICAgICAgIG15cGRiPSIiIgorICAgICAgICBpbnN0
YW5jZXMgPSBbXQorCisgICAgICAgIGNsYXNzIE15UGRiOgorICAgICAgICAgICAgZGVmIF9faW5p
dF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgaW5zdGFuY2VzLmFw
cGVuZChzZWxmKQorCisgICAgICAgICAgICBkZWYgc2V0X3RyYWNlKHNlbGYsICphcmdzKToKKyAg
ICAgICAgICAgICAgICBwcmludCgic2V0X3RyYWNlX2NhbGxlZCIsIGFyZ3MpCisgICAgICAgICIi
IiwKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qoc3RyKHAxKSwgIi0tcGRi
Y2xzPW15cGRiOk15UGRiIiwgc3lzcGF0aGluc2VydD1UcnVlKQorICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IDAKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsiKnNl
dF90cmFjZV9jYWxsZWQqIiwgIipzZXRfdHJhY2VfY2FsbGVkKiIsICIqIDEgcGFzc2VkIGluICoi
XQorICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wbHVnaW5tYW5h
Z2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkKaW5kZXgg
MjJjZWE0MjA3YzY0NjA3NjczYzkyZWM5Yzg5NTk0NTY1ZjMxYzE5Ny4uMjM2NTUxNjQzNDMzNTk1
M2Q1NzU5ZTg0ZTJlZjhjNTQ5ZjBhZjRjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X3BsdWdpbm1hbmFnZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Bs
dWdpbm1hbmFnZXIucHkKQEAgLTEsMTMgKzEsMTcgQEAKLSMgZW5jb2Rpbmc6IFVURi04Ci1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCi1pbXBvcnQgcHl0ZXN0CisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNp
b24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IG9zCi1p
bXBvcnQgcmUKIGltcG9ydCBzeXMKIGltcG9ydCB0eXBlcwogCi1mcm9tIF9weXRlc3QuY29uZmln
IGltcG9ydCBnZXRfY29uZmlnLCBQeXRlc3RQbHVnaW5NYW5hZ2VyCi1mcm9tIF9weXRlc3QubWFp
biBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVELCBTZXNzaW9uCitpbXBvcnQgcHl0ZXN0Citm
cm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBQeXRlc3RQbHVnaW5NYW5hZ2VyCitmcm9tIF9weXRl
c3QuY29uZmlnLmV4Y2VwdGlvbnMgaW1wb3J0IFVzYWdlRXJyb3IKK2Zyb20gX3B5dGVzdC5tYWlu
IGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNURUQKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBT
ZXNzaW9uCiAKIAogQHB5dGVzdC5maXh0dXJlCkBAIC0xNiw4ICsyMCw3IEBAIGRlZiBweXRlc3Rw
bSgpOgogCiAKIGNsYXNzIFRlc3RQeXRlc3RQbHVnaW5JbnRlcmFjdGlvbnMob2JqZWN0KToKLQot
ICAgIGRlZiB0ZXN0X2FkZGhvb2tzX2NvbmZ0ZXN0cGx1Z2luKHNlbGYsIHRlc3RkaXIpOgorICAg
IGRlZiB0ZXN0X2FkZGhvb2tzX2NvbmZ0ZXN0cGx1Z2luKHNlbGYsIHRlc3RkaXIsIF9jb25maWdf
Zm9yX3Rlc3QpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICBuZXdo
b29rcz0iIiIKICAgICAgICAgICAgIGRlZiBweXRlc3RfbXlob29rKHh5eik6CkBAIC0yNiwxNSAr
MjksMTQgQEAgY2xhc3MgVGVzdFB5dGVzdFBsdWdpbkludGVyYWN0aW9ucyhvYmplY3QpOgogICAg
ICAgICApCiAgICAgICAgIGNvbmYgPSB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgICAg
ICIiIgotICAgICAgICAgICAgaW1wb3J0IHN5cyA7IHN5cy5wYXRoLmluc2VydCgwLCAnLicpCiAg
ICAgICAgICAgICBpbXBvcnQgbmV3aG9va3MKICAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkaG9v
a3MocGx1Z2lubWFuYWdlcik6Ci0gICAgICAgICAgICAgICAgcGx1Z2lubWFuYWdlci5hZGRob29r
cyhuZXdob29rcykKKyAgICAgICAgICAgICAgICBwbHVnaW5tYW5hZ2VyLmFkZF9ob29rc3BlY3Mo
bmV3aG9va3MpCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X215aG9vayh4eXopOgogICAgICAgICAg
ICAgICAgIHJldHVybiB4eXogKyAxCiAgICAgICAgICIiIgogICAgICAgICApCi0gICAgICAgIGNv
bmZpZyA9IGdldF9jb25maWcoKQorICAgICAgICBjb25maWcgPSBfY29uZmlnX2Zvcl90ZXN0CiAg
ICAgICAgIHBtID0gY29uZmlnLnBsdWdpbm1hbmFnZXIKICAgICAgICAgcG0uaG9vay5weXRlc3Rf
YWRkaG9va3MuY2FsbF9oaXN0b3JpYygKICAgICAgICAgICAgIGt3YXJncz1kaWN0KHBsdWdpbm1h
bmFnZXI9Y29uZmlnLnBsdWdpbm1hbmFnZXIpCkBAIC00OSw0MyArNTEsMTMgQEAgY2xhc3MgVGVz
dFB5dGVzdFBsdWdpbkludGVyYWN0aW9ucyhvYmplY3QpOgogICAgICAgICAgICAgIiIiCiAgICAg
ICAgICAgICBpbXBvcnQgc3lzCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZGhvb2tzKHBsdWdp
bm1hbmFnZXIpOgotICAgICAgICAgICAgICAgIHBsdWdpbm1hbmFnZXIuYWRkaG9va3Moc3lzKQor
ICAgICAgICAgICAgICAgIHBsdWdpbm1hbmFnZXIuYWRkX2hvb2tzcGVjcyhzeXMpCiAgICAgICAg
ICIiIgogICAgICAgICApCiAgICAgICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAgICAg
ICAgYXNzZXJ0IHJlcy5yZXQgIT0gMAogICAgICAgICByZXMuc3RkZXJyLmZubWF0Y2hfbGluZXMo
WyIqZGlkIG5vdCBmaW5kKnN5cyoiXSkKIAotICAgIGRlZiB0ZXN0X25hbWVzcGFjZV9lYXJseV9m
cm9tX2ltcG9ydChzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgZnJvbSBweXRlc3QgaW1wb3J0IEl0ZW0K
LSAgICAgICAgICAgIGZyb20gcHl0ZXN0IGltcG9ydCBJdGVtIGFzIEl0ZW0yCi0gICAgICAgICAg
ICBhc3NlcnQgSXRlbSBpcyBJdGVtMgotICAgICAgICAiIiIKLSAgICAgICAgKQotICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbihwKQotICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCi0KLSAgICBkZWYgdGVzdF9kb19leHRfbmFtZXNwYWNlKHNlbGYsIHRlc3RkaXIpOgotICAg
ICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAg
ZGVmIHB5dGVzdF9uYW1lc3BhY2UoKToKLSAgICAgICAgICAgICAgICByZXR1cm4geydoZWxsbyc6
ICd3b3JsZCd9Ci0gICAgICAgICIiIgotICAgICAgICApCi0gICAgICAgIHAgPSB0ZXN0ZGlyLm1h
a2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGZyb20gcHl0ZXN0IGltcG9y
dCBoZWxsbwotICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICAgICAgZGVmIHRlc3Rf
aGVsbG8oKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgaGVsbG8gPT0gIndvcmxkIgotICAgICAg
ICAgICAgICAgIGFzc2VydCAnaGVsbG8nIGluIHB5dGVzdC5fX2FsbF9fCi0gICAgICAgICIiIgot
ICAgICAgICApCi0gICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihwKQotICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKLQogICAgIGRlZiB0ZXN0X2RvX29wdGlv
bl9wb3N0aW5pdGlhbGl6ZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgY29uZmlnID0gdGVzdGRp
ci5wYXJzZWNvbmZpZ3VyZSgpCiAgICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihjb25maWcub3B0
aW9uLCAidGVzdDEyMyIpCkBAIC0xMDQsNyArNzYsNiBAQCBjbGFzcyBUZXN0UHl0ZXN0UGx1Z2lu
SW50ZXJhY3Rpb25zKG9iamVjdCk6CiAgICAgICAgIHZhbHVlcyA9IFtdCiAKICAgICAgICAgY2xh
c3MgQShvYmplY3QpOgotCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShzZWxmLCBj
b25maWcpOgogICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoc2VsZikKIApAQCAtMTIwLDE3
ICs5MSwxNSBAQCBjbGFzcyBUZXN0UHl0ZXN0UGx1Z2luSW50ZXJhY3Rpb25zKG9iamVjdCk6CiAg
ICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKEEoKSkKICAgICAgICAgYXNzZXJ0
IGxlbih2YWx1ZXMpID09IDIKIAotICAgIGRlZiB0ZXN0X2hvb2tfdHJhY2luZyhzZWxmKToKLSAg
ICAgICAgcHl0ZXN0cG0gPSBnZXRfY29uZmlnKCkucGx1Z2lubWFuYWdlciAgIyBmdWxseSBpbml0
aWFsaXplZCB3aXRoIHBsdWdpbnMKKyAgICBkZWYgdGVzdF9ob29rX3RyYWNpbmcoc2VsZiwgX2Nv
bmZpZ19mb3JfdGVzdCk6CisgICAgICAgIHB5dGVzdHBtID0gX2NvbmZpZ19mb3JfdGVzdC5wbHVn
aW5tYW5hZ2VyICAjIGZ1bGx5IGluaXRpYWxpemVkIHdpdGggcGx1Z2lucwogICAgICAgICBzYXZl
aW5kZW50ID0gW10KIAogICAgICAgICBjbGFzcyBhcGkxKG9iamVjdCk6Ci0KICAgICAgICAgICAg
IGRlZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQoc2VsZik6CiAgICAgICAgICAgICAgICAgc2F2
ZWluZGVudC5hcHBlbmQocHl0ZXN0cG0udHJhY2Uucm9vdC5pbmRlbnQpCiAKICAgICAgICAgY2xh
c3MgYXBpMihvYmplY3QpOgotCiAgICAgICAgICAgICBkZWYgcHl0ZXN0X3BsdWdpbl9yZWdpc3Rl
cmVkKHNlbGYpOgogICAgICAgICAgICAgICAgIHNhdmVpbmRlbnQuYXBwZW5kKHB5dGVzdHBtLnRy
YWNlLnJvb3QuaW5kZW50KQogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQpAQCAt
MTcxLDM2ICsxNDAsNiBAQCBjbGFzcyBUZXN0UHl0ZXN0UGx1Z2luSW50ZXJhY3Rpb25zKG9iamVj
dCk6CiAgICAgICAgIGlob29rX2IgPSBzZXNzaW9uLmdldGhvb2twcm94eSh0ZXN0ZGlyLnRtcGRp
ci5qb2luKCJ0ZXN0cyIpKQogICAgICAgICBhc3NlcnQgaWhvb2tfYSBpcyBub3QgaWhvb2tfYgog
Ci0gICAgZGVmIHRlc3Rfd2Fybl9vbl9kZXByZWNhdGVkX2FkZGhvb2tzKHNlbGYsIHB5dGVzdHBt
KToKLSAgICAgICAgd2FybmluZ3MgPSBbXQotCi0gICAgICAgIGNsYXNzIGdldF93YXJuaW5ncyhv
YmplY3QpOgotCi0gICAgICAgICAgICBkZWYgcHl0ZXN0X2xvZ3dhcm5pbmcoc2VsZiwgY29kZSwg
ZnNsb2NhdGlvbiwgbWVzc2FnZSwgbm9kZWlkKToKLSAgICAgICAgICAgICAgICB3YXJuaW5ncy5h
cHBlbmQobWVzc2FnZSkKLQotICAgICAgICBjbGFzcyBQbHVnaW4ob2JqZWN0KToKLQotICAgICAg
ICAgICAgZGVmIHB5dGVzdF90ZXN0aG9vaygpOgotICAgICAgICAgICAgICAgIHBhc3MKLQotICAg
ICAgICBweXRlc3RwbS5yZWdpc3RlcihnZXRfd2FybmluZ3MoKSkKLSAgICAgICAgYmVmb3JlID0g
bGlzdCh3YXJuaW5ncykKLSAgICAgICAgcHl0ZXN0cG0uYWRkaG9va3MoUGx1Z2luKCkpCi0gICAg
ICAgIGFzc2VydCBsZW4od2FybmluZ3MpID09IGxlbihiZWZvcmUpICsgMQotICAgICAgICBhc3Nl
cnQgImRlcHJlY2F0ZWQiIGluIHdhcm5pbmdzWy0xXQotCi0KLWRlZiB0ZXN0X25hbWVzcGFjZV9o
YXNfZGVmYXVsdF9hbmRfZW52X3BsdWdpbnModGVzdGRpcik6Ci0gICAgcCA9IHRlc3RkaXIubWFr
ZXB5ZmlsZSgKLSAgICAgICAgIiIiCi0gICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgcHl0
ZXN0Lm1hcmsKLSAgICAiIiIKLSAgICApCi0gICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRob24o
cCkKLSAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCi0KIAogZGVmIHRlc3RfZGVmYXVsdF9tYXJr
ZXJzKHRlc3RkaXIpOgogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLW1hcmtlcnMi
KQpAQCAtMjE2LDcgKzE1NSw3IEBAIGRlZiB0ZXN0X2ltcG9ydHBsdWdpbl9lcnJvcl9tZXNzYWdl
KHRlc3RkaXIsIHB5dGVzdHBtKToKICAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQodGVzdGRpci50
bXBkaXIpCiAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICBxd2U9IiIiCi0gICAgICAg
ICMgZW5jb2Rpbmc6IFVURi04CisgICAgICAgICMgLSotIGNvZGluZzogdXRmLTggLSotCiAgICAg
ICAgIGRlZiB0ZXN0X3RyYWNlYmFjaygpOgogICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3Io
dSdOb3QgcG9zc2libGUgdG8gaW1wb3J0OiDimLonKQogICAgICAgICB0ZXN0X3RyYWNlYmFjaygp
CkBAIC0yMjUsMTQgKzE2NCwxMyBAQCBkZWYgdGVzdF9pbXBvcnRwbHVnaW5fZXJyb3JfbWVzc2Fn
ZSh0ZXN0ZGlyLCBweXRlc3RwbSk6CiAgICAgd2l0aCBweXRlc3QucmFpc2VzKEltcG9ydEVycm9y
KSBhcyBleGNpbmZvOgogICAgICAgICBweXRlc3RwbS5pbXBvcnRfcGx1Z2luKCJxd2UiKQogCi0g
ICAgZXhwZWN0ZWRfbWVzc2FnZSA9ICcuKkVycm9yIGltcG9ydGluZyBwbHVnaW4gInF3ZSI6IE5v
dCBwb3NzaWJsZSB0byBpbXBvcnQ6IC4nCi0gICAgZXhwZWN0ZWRfdHJhY2ViYWNrID0gIi4qaW4g
dGVzdF90cmFjZWJhY2siCi0gICAgYXNzZXJ0IHJlLm1hdGNoKGV4cGVjdGVkX21lc3NhZ2UsIHN0
cihleGNpbmZvLnZhbHVlKSkKLSAgICBhc3NlcnQgcmUubWF0Y2goZXhwZWN0ZWRfdHJhY2ViYWNr
LCBzdHIoZXhjaW5mby50cmFjZWJhY2tbLTFdKSkKKyAgICBhc3NlcnQgc3RyKGV4Y2luZm8udmFs
dWUpLmVuZHN3aXRoKAorICAgICAgICAnRXJyb3IgaW1wb3J0aW5nIHBsdWdpbiAicXdlIjogTm90
IHBvc3NpYmxlIHRvIGltcG9ydDog4pi6JworICAgICkKKyAgICBhc3NlcnQgImluIHRlc3RfdHJh
Y2ViYWNrIiBpbiBzdHIoZXhjaW5mby50cmFjZWJhY2tbLTFdKQogCiAKIGNsYXNzIFRlc3RQeXRl
c3RQbHVnaW5NYW5hZ2VyKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9yZWdpc3Rlcl9pbXBvcnRl
ZF9tb2R1bGVzKHNlbGYpOgogICAgICAgICBwbSA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQogICAg
ICAgICBtb2QgPSB0eXBlcy5Nb2R1bGVUeXBlKCJ4LnkucHl0ZXN0X2hlbGxvIikKQEAgLTI0MCw3
ICsxNzgsNyBAQCBjbGFzcyBUZXN0UHl0ZXN0UGx1Z2luTWFuYWdlcihvYmplY3QpOgogICAgICAg
ICBhc3NlcnQgcG0uaXNfcmVnaXN0ZXJlZChtb2QpCiAgICAgICAgIHZhbHVlcyA9IHBtLmdldF9w
bHVnaW5zKCkKICAgICAgICAgYXNzZXJ0IG1vZCBpbiB2YWx1ZXMKLSAgICAgICAgcHl0ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yLCAicG0ucmVnaXN0ZXIobW9kKSIpCisgICAgICAgIHB5dGVzdC5yYWlz
ZXMoVmFsdWVFcnJvciwgcG0ucmVnaXN0ZXIsIG1vZCkKICAgICAgICAgcHl0ZXN0LnJhaXNlcyhW
YWx1ZUVycm9yLCBsYW1iZGE6IHBtLnJlZ2lzdGVyKG1vZCkpCiAgICAgICAgICMgYXNzZXJ0IG5v
dCBwbS5pc19yZWdpc3RlcmVkKG1vZDIpCiAgICAgICAgIGFzc2VydCBwbS5nZXRfcGx1Z2lucygp
ID09IHZhbHVlcwpAQCAtMjYzLDE0ICsyMDEsMTMgQEAgY2xhc3MgVGVzdFB5dGVzdFBsdWdpbk1h
bmFnZXIob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHB5dGVzdHBtLmdldF9wbHVnaW4oInB5dGVz
dF9wMSIpLl9fbmFtZV9fID09ICJweXRlc3RfcDEiCiAgICAgICAgIGFzc2VydCBweXRlc3RwbS5n
ZXRfcGx1Z2luKCJweXRlc3RfcDIiKS5fX25hbWVfXyA9PSAicHl0ZXN0X3AyIgogCi0gICAgZGVm
IHRlc3RfY29uc2lkZXJfbW9kdWxlX2ltcG9ydF9tb2R1bGUoc2VsZiwgdGVzdGRpcik6Ci0gICAg
ICAgIHB5dGVzdHBtID0gZ2V0X2NvbmZpZygpLnBsdWdpbm1hbmFnZXIKKyAgICBkZWYgdGVzdF9j
b25zaWRlcl9tb2R1bGVfaW1wb3J0X21vZHVsZShzZWxmLCB0ZXN0ZGlyLCBfY29uZmlnX2Zvcl90
ZXN0KToKKyAgICAgICAgcHl0ZXN0cG0gPSBfY29uZmlnX2Zvcl90ZXN0LnBsdWdpbm1hbmFnZXIK
ICAgICAgICAgbW9kID0gdHlwZXMuTW9kdWxlVHlwZSgieCIpCiAgICAgICAgIG1vZC5weXRlc3Rf
cGx1Z2lucyA9ICJweXRlc3RfYSIKICAgICAgICAgYXBsdWdpbiA9IHRlc3RkaXIubWFrZXB5Zmls
ZShweXRlc3RfYT0iIyIpCiAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIubWFrZV9ob29rX3JlY29y
ZGVyKHB5dGVzdHBtKQotICAgICAgICAjIHN5c3BhdGgucHJlcGVuZChhcGx1Z2luLmRpcnBhdGgo
KSkKLSAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHN0cihhcGx1Z2luLmRpcnBhdGgoKSkpCisg
ICAgICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydChhcGx1Z2luLmRpcnBhdGgoKSkKICAgICAgICAg
cHl0ZXN0cG0uY29uc2lkZXJfbW9kdWxlKG1vZCkKICAgICAgICAgY2FsbCA9IHJlcHJlYy5nZXRj
YWxsKHB5dGVzdHBtLmhvb2sucHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkLm5hbWUpCiAgICAgICAg
IGFzc2VydCBjYWxsLnBsdWdpbi5fX25hbWVfXyA9PSAicHl0ZXN0X2EiCkBAIC0yODUsMTEgKzIy
MiwxMiBAQCBjbGFzcyBUZXN0UHl0ZXN0UGx1Z2luTWFuYWdlcihvYmplY3QpOgogICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IpOgogICAgICAgICAgICAgcHl0ZXN0cG0uY29u
c2lkZXJfZW52KCkKIAorICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiYWx3YXlzIikK
ICAgICBkZWYgdGVzdF9wbHVnaW5fc2tpcChzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CiAg
ICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICBza2lwcGluZzE9IiIi
CiAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBweXRlc3Quc2tpcCgiaGVs
bG8iKQorICAgICAgICAgICAgcHl0ZXN0LnNraXAoImhlbGxvIiwgYWxsb3dfbW9kdWxlX2xldmVs
PVRydWUpCiAgICAgICAgICIiIgogICAgICAgICApCiAgICAgICAgIHAuY29weShwLmRpcnBhdGgo
InNraXBwaW5nMi5weSIpKQpAQCAtMzI5LDggKzI2Nyw4IEBAIGNsYXNzIFRlc3RQeXRlc3RQbHVn
aW5NYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
IioxIHBhc3NlZCoiXSkKIAogICAgIGRlZiB0ZXN0X2ltcG9ydF9wbHVnaW5faW1wb3J0bmFtZShz
ZWxmLCB0ZXN0ZGlyLCBweXRlc3RwbSk6Ci0gICAgICAgIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJy
b3IsICdweXRlc3RwbS5pbXBvcnRfcGx1Z2luKCJxd2Vxd2V4LnkiKScpCi0gICAgICAgIHB5dGVz
dC5yYWlzZXMoSW1wb3J0RXJyb3IsICdweXRlc3RwbS5pbXBvcnRfcGx1Z2luKCJweXRlc3RfcXdl
cXd4LnkiKScpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IsIHB5dGVzdHBtLmlt
cG9ydF9wbHVnaW4sICJxd2Vxd2V4LnkiKQorICAgICAgICBweXRlc3QucmFpc2VzKEltcG9ydEVy
cm9yLCBweXRlc3RwbS5pbXBvcnRfcGx1Z2luLCAicHl0ZXN0X3F3ZXF3eC55IikKIAogICAgICAg
ICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQogICAgICAgICBwbHVnaW5uYW1lID0gInB5dGVzdF9o
ZWxsbyIKQEAgLTM0Niw4ICsyODQsOCBAQCBjbGFzcyBUZXN0UHl0ZXN0UGx1Z2luTWFuYWdlcihv
YmplY3QpOgogICAgICAgICBhc3NlcnQgcGx1Z2luMiBpcyBwbHVnaW4xCiAKICAgICBkZWYgdGVz
dF9pbXBvcnRfcGx1Z2luX2RvdHRlZF9uYW1lKHNlbGYsIHRlc3RkaXIsIHB5dGVzdHBtKToKLSAg
ICAgICAgcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvciwgJ3B5dGVzdHBtLmltcG9ydF9wbHVnaW4o
InF3ZXF3ZXgueSIpJykKLSAgICAgICAgcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvciwgJ3B5dGVz
dHBtLmltcG9ydF9wbHVnaW4oInB5dGVzdF9xd2Vxd2V4LnkiKScpCisgICAgICAgIHB5dGVzdC5y
YWlzZXMoSW1wb3J0RXJyb3IsIHB5dGVzdHBtLmltcG9ydF9wbHVnaW4sICJxd2Vxd2V4LnkiKQor
ICAgICAgICBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yLCBweXRlc3RwbS5pbXBvcnRfcGx1Z2lu
LCAicHl0ZXN0X3F3ZXF3ZXgueSIpCiAKICAgICAgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KCkK
ICAgICAgICAgdGVzdGRpci5ta3B5ZGlyKCJwa2ciKS5qb2luKCJwbHVnLnB5Iikud3JpdGUoIng9
MyIpCkBAIC0zNjMsMTIgKzMwMSwyMyBAQCBjbGFzcyBUZXN0UHl0ZXN0UGx1Z2luTWFuYWdlcihv
YmplY3QpOgogCiAKIGNsYXNzIFRlc3RQeXRlc3RQbHVnaW5NYW5hZ2VyQm9vdHN0cmFwbWluZyhv
YmplY3QpOgotCiAgICAgZGVmIHRlc3RfcHJlcGFyc2VfYXJncyhzZWxmLCBweXRlc3RwbSk6CiAg
ICAgICAgIHB5dGVzdC5yYWlzZXMoCiAgICAgICAgICAgICBJbXBvcnRFcnJvciwgbGFtYmRhOiBw
eXRlc3RwbS5jb25zaWRlcl9wcmVwYXJzZShbInh5eiIsICItcCIsICJoZWxsbzEyMyJdKQogICAg
ICAgICApCiAKKyAgICAgICAgIyBIYW5kbGVzIC1wIHdpdGhvdXQgc3BhY2UgKCMzNTMyKS4KKyAg
ICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yKSBhcyBleGNpbmZvOgorICAgICAg
ICAgICAgcHl0ZXN0cG0uY29uc2lkZXJfcHJlcGFyc2UoWyItcGhlbGxvMTIzIl0pCisgICAgICAg
IGFzc2VydCAnImhlbGxvMTIzIicgaW4gZXhjaW5mby52YWx1ZS5hcmdzWzBdCisgICAgICAgIHB5
dGVzdHBtLmNvbnNpZGVyX3ByZXBhcnNlKFsiLXBubzpoZWxsbzEyMyJdKQorCisgICAgICAgICMg
SGFuZGxlcyAtcCB3aXRob3V0IGZvbGxvd2luZyBhcmcgKHdoZW4gdXNlZCB3aXRob3V0IGFyZ3Bh
cnNlKS4KKyAgICAgICAgcHl0ZXN0cG0uY29uc2lkZXJfcHJlcGFyc2UoWyItcCJdKQorCisgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhVc2FnZUVycm9yLCBtYXRjaD0iXnBsdWdpbiBtYWluIGNh
bm5vdCBiZSBkaXNhYmxlZCQiKToKKyAgICAgICAgICAgIHB5dGVzdHBtLmNvbnNpZGVyX3ByZXBh
cnNlKFsiLXAiLCAibm86bWFpbiJdKQorCiAgICAgZGVmIHRlc3RfcGx1Z2luX3ByZXZlbnRfcmVn
aXN0ZXIoc2VsZiwgcHl0ZXN0cG0pOgogICAgICAgICBweXRlc3RwbS5jb25zaWRlcl9wcmVwYXJz
ZShbInh5eiIsICItcCIsICJubzphYmMiXSkKICAgICAgICAgbDEgPSBweXRlc3RwbS5nZXRfcGx1
Z2lucygpCkBAIC0zODQsMyArMzMzLDI4IEBAIGNsYXNzIFRlc3RQeXRlc3RQbHVnaW5NYW5hZ2Vy
Qm9vdHN0cmFwbWluZyhvYmplY3QpOgogICAgICAgICBweXRlc3RwbS5jb25zaWRlcl9wcmVwYXJz
ZShbInh5eiIsICItcCIsICJubzphYmMiXSkKICAgICAgICAgbDIgPSBweXRlc3RwbS5nZXRfcGx1
Z2lucygpCiAgICAgICAgIGFzc2VydCA0MiBub3QgaW4gbDIKKworICAgIGRlZiB0ZXN0X3BsdWdp
bl9wcmV2ZW50X3JlZ2lzdGVyX3N0ZXB3aXNlX29uX2NhY2hlcHJvdmlkZXJfdW5yZWdpc3RlcigK
KyAgICAgICAgc2VsZiwgcHl0ZXN0cG0KKyAgICApOgorICAgICAgICAiIiIgRnJvbSBQUiAjNDMw
NCA6IFRoZSBvbmx5IHdheSB0byB1bnJlZ2lzdGVyIGEgbW9kdWxlIGlzIGRvY3VtZW50ZWQgYXQK
KyAgICAgICAgdGhlIGVuZCBvZiBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvcGx1
Z2lucy5odG1sLgorCisgICAgICAgIFdoZW4gdW5yZWdpc3RlciBjYWNoZXByb3ZpZGVyLCB0aGVu
IHVucmVnaXN0ZXIgc3RlcHdpc2UgdG9vCisgICAgICAgICIiIgorICAgICAgICBweXRlc3RwbS5y
ZWdpc3Rlcig0MiwgbmFtZT0iY2FjaGVwcm92aWRlciIpCisgICAgICAgIHB5dGVzdHBtLnJlZ2lz
dGVyKDQzLCBuYW1lPSJzdGVwd2lzZSIpCisgICAgICAgIGwxID0gcHl0ZXN0cG0uZ2V0X3BsdWdp
bnMoKQorICAgICAgICBhc3NlcnQgNDIgaW4gbDEKKyAgICAgICAgYXNzZXJ0IDQzIGluIGwxCisg
ICAgICAgIHB5dGVzdHBtLmNvbnNpZGVyX3ByZXBhcnNlKFsieHl6IiwgIi1wIiwgIm5vOmNhY2hl
cHJvdmlkZXIiXSkKKyAgICAgICAgbDIgPSBweXRlc3RwbS5nZXRfcGx1Z2lucygpCisgICAgICAg
IGFzc2VydCA0MiBub3QgaW4gbDIKKyAgICAgICAgYXNzZXJ0IDQzIG5vdCBpbiBsMgorCisgICAg
ZGVmIHRlc3RfYmxvY2tlZF9wbHVnaW5fY2FuX2JlX3VzZWQoc2VsZiwgcHl0ZXN0cG0pOgorICAg
ICAgICBweXRlc3RwbS5jb25zaWRlcl9wcmVwYXJzZShbInh5eiIsICItcCIsICJubzphYmMiLCAi
LXAiLCAiYWJjIl0pCisKKyAgICAgICAgYXNzZXJ0IHB5dGVzdHBtLmhhc19wbHVnaW4oImFiYyIp
CisgICAgICAgIGFzc2VydCBub3QgcHl0ZXN0cG0uaXNfYmxvY2tlZCgiYWJjIikKKyAgICAgICAg
YXNzZXJ0IG5vdCBweXRlc3RwbS5pc19ibG9ja2VkKCJweXRlc3RfYWJjIikKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9weXRlc3Rlci5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF9weXRlc3Rlci5weQppbmRleCBiNzRjMGI3ZjcwYzI1MzY4ZTU5NTU2MjNkNjkyODcw
NTI2ZDAwMjFlLi5mN2NjMDkzNmNjZWE3ZTE5ZDNmMTMyMTc5NDk4NzhlZTAyNTUxNzhjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcHl0ZXN0ZXIucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy90ZXN0X3B5dGVzdGVyLnB5CkBAIC0xLDE0ICsxLDI2IEBACiAjIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQs
IGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IG9zCi1pbXBvcnQgcHkucGF0aAotaW1w
b3J0IHB5dGVzdAoraW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCisK
K2ltcG9ydCBweS5wYXRoCisKIGltcG9ydCBfcHl0ZXN0LnB5dGVzdGVyIGFzIHB5dGVzdGVyCi1m
cm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IEhvb2tSZWNvcmRlcgotZnJvbSBfcHl0ZXN0LnB5
dGVzdGVyIGltcG9ydCBDd2RTbmFwc2hvdCwgU3lzTW9kdWxlc1NuYXBzaG90LCBTeXNQYXRoc1Nu
YXBzaG90CitpbXBvcnQgcHl0ZXN0CiBmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBQeXRlc3RQ
bHVnaW5NYW5hZ2VyCi1mcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9PSywgRVhJVF9URVNU
U0ZBSUxFRAorZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAor
ZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfT0sKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9y
dCBFWElUX1RFU1RTRkFJTEVECitmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IEN3ZFNuYXBz
aG90Citmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IEhvb2tSZWNvcmRlcgorZnJvbSBfcHl0
ZXN0LnB5dGVzdGVyIGltcG9ydCBMaW5lTWF0Y2hlcgorZnJvbSBfcHl0ZXN0LnB5dGVzdGVyIGlt
cG9ydCBTeXNNb2R1bGVzU25hcHNob3QKK2Zyb20gX3B5dGVzdC5weXRlc3RlciBpbXBvcnQgU3lz
UGF0aHNTbmFwc2hvdAogCiAKIGRlZiB0ZXN0X21ha2VfaG9va19yZWNvcmRlcih0ZXN0ZGlyKToK
QEAgLTYxLDcgKzczLDcgQEAgZGVmIHRlc3RfbWFrZV9ob29rX3JlY29yZGVyKHRlc3RkaXIpOgog
ICAgIHJlY29yZGVyLnVucmVnaXN0ZXIoKQogICAgIHJlY29yZGVyLmNsZWFyKCkKICAgICByZWNv
cmRlci5ob29rLnB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChyZXBvcnQ9cmVwKQotICAgIHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwgInJlY29yZGVyLmdldGZhaWx1cmVzKCkiKQorICAgIHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwgcmVjb3JkZXIuZ2V0ZmFpbHVyZXMpCiAKIAogZGVmIHRlc3Rf
cGFyc2Vjb25maWcodGVzdGRpcik6CkBAIC04MywxMCArOTUsNzAgQEAgZGVmIHRlc3RfdGVzdGRp
cl9ydW5zX3dpdGhfcGx1Z2luKHRlc3RkaXIpOgogICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMo
cGFzc2VkPTEpCiAKIAotZGVmIG1ha2VfaG9sZGVyKCk6CitkZWYgdGVzdF9ydW5yZXN1bHRfYXNz
ZXJ0aW9uX29uX3hmYWlsKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAg
ICAgIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKIAotICAgIGNsYXNzIGFwaWNsYXNzKG9iamVj
dCk6CisgICAgICAgIHB5dGVzdF9wbHVnaW5zID0gInB5dGVzdGVyIgorCisgICAgICAgIEBweXRl
c3QubWFyay54ZmFpbAorICAgICAgICBkZWYgdGVzdF9wb3RhdG8oKToKKyAgICAgICAgICAgIGFz
c2VydCBGYWxzZQorICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCisgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyh4ZmFpbGVkPTEpCisgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X3J1bnJlc3VsdF9hc3NlcnRpb25fb25feHBhc3Nl
ZCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgcHl0ZXN0X3BsdWdpbnMgPSAicHl0ZXN0ZXIiCisK
KyAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgIGRlZiB0ZXN0X3BvdGF0bygpOgor
ICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMoeHBhc3NlZD0xKQor
ICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworCitkZWYgdGVzdF9ydW5yZXN1bHRfcmVwcigp
OgorICAgIGZyb20gX3B5dGVzdC5weXRlc3RlciBpbXBvcnQgUnVuUmVzdWx0CisKKyAgICBhc3Nl
cnQgKAorICAgICAgICByZXByKAorICAgICAgICAgICAgUnVuUmVzdWx0KHJldD0icmV0Iiwgb3V0
bGluZXM9WyIiXSwgZXJybGluZXM9WyJzb21lIiwgImVycm9ycyJdLCBkdXJhdGlvbj0xKQorICAg
ICAgICApCisgICAgICAgID09ICI8UnVuUmVzdWx0IHJldD0ncmV0JyBsZW4oc3Rkb3V0LmxpbmVz
KT0xIGxlbihzdGRlcnIubGluZXMpPTIgZHVyYXRpb249MS4wMHM+IgorICAgICkKIAorCitkZWYg
dGVzdF94cGFzc2VkX3dpdGhfc3RyaWN0X2lzX2NvbnNpZGVyZWRfYV9mYWlsdXJlKHRlc3RkaXIp
OgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBw
eXRlc3QKKworICAgICAgICBweXRlc3RfcGx1Z2lucyA9ICJweXRlc3RlciIKKworICAgICAgICBA
cHl0ZXN0Lm1hcmsueGZhaWwoc3RyaWN0PVRydWUpCisgICAgICAgIGRlZiB0ZXN0X3BvdGF0bygp
OgorICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMoZmFpbGVkPTEp
CisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorCisKK2RlZiBtYWtlX2hvbGRlcigpOgorICAg
IGNsYXNzIGFwaWNsYXNzKG9iamVjdCk6CiAgICAgICAgIGRlZiBweXRlc3RfeHl6KHNlbGYsIGFy
Zyk6CiAgICAgICAgICAgICAieCIKIApAQCAtMTA5LDEzICsxODEsMTMgQEAgZGVmIG1ha2VfaG9s
ZGVyKCk6CiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImhvbGRlciIsIG1ha2VfaG9sZGVyKCkp
CiBkZWYgdGVzdF9ob29rcmVjb3JkZXJfYmFzaWMoaG9sZGVyKToKICAgICBwbSA9IFB5dGVzdFBs
dWdpbk1hbmFnZXIoKQotICAgIHBtLmFkZGhvb2tzKGhvbGRlcikKKyAgICBwbS5hZGRfaG9va3Nw
ZWNzKGhvbGRlcikKICAgICByZWMgPSBIb29rUmVjb3JkZXIocG0pCiAgICAgcG0uaG9vay5weXRl
c3RfeHl6KGFyZz0xMjMpCiAgICAgY2FsbCA9IHJlYy5wb3BjYWxsKCJweXRlc3RfeHl6IikKICAg
ICBhc3NlcnQgY2FsbC5hcmcgPT0gMTIzCiAgICAgYXNzZXJ0IGNhbGwuX25hbWUgPT0gInB5dGVz
dF94eXoiCi0gICAgcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24sICJyZWMucG9w
Y2FsbCgnYWJjJykiKQorICAgIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uLCBy
ZWMucG9wY2FsbCwgImFiYyIpCiAgICAgcG0uaG9vay5weXRlc3RfeHl6X25vYXJnKCkKICAgICBj
YWxsID0gcmVjLnBvcGNhbGwoInB5dGVzdF94eXpfbm9hcmciKQogICAgIGFzc2VydCBjYWxsLl9u
YW1lID09ICJweXRlc3RfeHl6X25vYXJnIgpAQCAtMTI3LDcgKzE5OSw3IEBAIGRlZiB0ZXN0X21h
a2VweWZpbGVfdW5pY29kZSh0ZXN0ZGlyKToKICAgICAgICAgdW5pY2hyKDY1KQogICAgIGV4Y2Vw
dCBOYW1lRXJyb3I6CiAgICAgICAgIHVuaWNociA9IGNocgotICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSh1bmljaHIoMHhmZmZkKSkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodW5pY2hyKDB4RkZGRCkp
CiAKIAogZGVmIHRlc3RfbWFrZXB5ZmlsZV91dGY4KHRlc3RkaXIpOgpAQCAtMTQzLDcgKzIxNSw2
IEBAIGRlZiB0ZXN0X21ha2VweWZpbGVfdXRmOCh0ZXN0ZGlyKToKIAogCiBjbGFzcyBUZXN0SW5s
aW5lUnVuTW9kdWxlc0NsZWFudXAob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2lubGluZV9ydW5f
dGVzdF9tb2R1bGVfbm90X2NsZWFuZWRfdXAoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHRlc3Rf
bW9kID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9mb28oKTogYXNzZXJ0IFRydWUiKQog
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLmlubGluZV9ydW4oc3RyKHRlc3RfbW9kKSkKQEAgLTE1
NCw3ICsyMjUsNiBAQCBjbGFzcyBUZXN0SW5saW5lUnVuTW9kdWxlc0NsZWFudXAob2JqZWN0KToK
ICAgICAgICAgYXNzZXJ0IHJlc3VsdDIucmV0ID09IEVYSVRfVEVTVFNGQUlMRUQKIAogICAgIGRl
ZiBzcHlfZmFjdG9yeShzZWxmKToKLQogICAgICAgICBjbGFzcyBTeXNNb2R1bGVzU25hcHNob3RT
cHkob2JqZWN0KToKICAgICAgICAgICAgIGluc3RhbmNlcyA9IFtdCiAKQEAgLTE3NSw4ICsyNDUs
OCBAQCBjbGFzcyBUZXN0SW5saW5lUnVuTW9kdWxlc0NsZWFudXAob2JqZWN0KToKICAgICApOgog
ICAgICAgICBzcHlfZmFjdG9yeSA9IHNlbGYuc3B5X2ZhY3RvcnkoKQogICAgICAgICBtb25rZXlw
YXRjaC5zZXRhdHRyKHB5dGVzdGVyLCAiU3lzTW9kdWxlc1NuYXBzaG90Iiwgc3B5X2ZhY3Rvcnkp
Ci0gICAgICAgIG9yaWdpbmFsID0gZGljdChzeXMubW9kdWxlcykKICAgICAgICAgdGVzdGRpci5z
eXNwYXRoaW5zZXJ0KCkKKyAgICAgICAgb3JpZ2luYWwgPSBkaWN0KHN5cy5tb2R1bGVzKQogICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoaW1wb3J0MT0iIyB5b3Ugc29uIG9mIGEgc2lsbHkgcGVy
c29uIikKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKGltcG9ydDI9IiMgbXkgaG92ZXJjcmFm
dCBpcyBmdWxsIG9mIGVlbHMiKQogICAgICAgICB0ZXN0X21vZCA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgKQEAgLTIxOSw2NCArMjg5LDExIEBAIGNsYXNzIFRlc3RJbmxpbmVSdW5Nb2R1bGVzQ2xlYW51
cChvYmplY3QpOgogICAgICAgICBhc3NlcnQgaW1wb3J0ZWQuZGF0YSA9PSA0MgogCiAKLWRlZiB0
ZXN0X2lubGluZV9ydW5fY2xlYW5fc3lzX3BhdGhzKHRlc3RkaXIpOgotCi0gICAgZGVmIHRlc3Rf
c3lzX3BhdGhfY2hhbmdlX2NsZWFudXAoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIHRlc3RfcGF0
aDEgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJib2luazEiKS5zdHJwYXRoCi0gICAgICAgIHRlc3Rf
cGF0aDIgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJib2luazIiKS5zdHJwYXRoCi0gICAgICAgIHRl
c3RfcGF0aDMgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJib2luazMiKS5zdHJwYXRoCi0gICAgICAg
IHN5cy5wYXRoLmFwcGVuZCh0ZXN0X3BhdGgxKQotICAgICAgICBzeXMubWV0YV9wYXRoLmFwcGVu
ZCh0ZXN0X3BhdGgxKQotICAgICAgICBvcmlnaW5hbF9wYXRoID0gbGlzdChzeXMucGF0aCkKLSAg
ICAgICAgb3JpZ2luYWxfbWV0YV9wYXRoID0gbGlzdChzeXMubWV0YV9wYXRoKQotICAgICAgICB0
ZXN0X21vZCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKLSAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgaW1wb3J0IHN5cwotICAgICAgICAgICAgc3lzLnBhdGguYXBwZW5kKHs6dGVzdF9wYXRoMn0p
Ci0gICAgICAgICAgICBzeXMubWV0YV9wYXRoLmFwcGVuZCh7OnRlc3RfcGF0aDJ9KQotICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vKCk6Ci0gICAgICAgICAgICAgICAgc3lzLnBhdGguYXBwZW5kKHs6
dGVzdF9wYXRoM30pCi0gICAgICAgICAgICAgICAgc3lzLm1ldGFfcGF0aC5hcHBlbmQoezp0ZXN0
X3BhdGgzfSkiIiIuZm9ybWF0KAotICAgICAgICAgICAgICAgIGxvY2FscygpCi0gICAgICAgICAg
ICApCi0gICAgICAgICkKLSAgICAgICAgdGVzdGRpci5pbmxpbmVfcnVuKHN0cih0ZXN0X21vZCkp
Ci0gICAgICAgIGFzc2VydCBzeXMucGF0aCA9PSBvcmlnaW5hbF9wYXRoCi0gICAgICAgIGFzc2Vy
dCBzeXMubWV0YV9wYXRoID09IG9yaWdpbmFsX21ldGFfcGF0aAotCi0gICAgZGVmIHNweV9mYWN0
b3J5KHNlbGYpOgotCi0gICAgICAgIGNsYXNzIFN5c1BhdGhzU25hcHNob3RTcHkob2JqZWN0KToK
LSAgICAgICAgICAgIGluc3RhbmNlcyA9IFtdCi0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhz
ZWxmKToKLSAgICAgICAgICAgICAgICBTeXNQYXRoc1NuYXBzaG90U3B5Lmluc3RhbmNlcy5hcHBl
bmQoc2VsZikKLSAgICAgICAgICAgICAgICBzZWxmLl9zcHlfcmVzdG9yZV9jb3VudCA9IDAKLSAg
ICAgICAgICAgICAgICBzZWxmLl9fc25hcHNob3QgPSBTeXNQYXRoc1NuYXBzaG90KCkKLQotICAg
ICAgICAgICAgZGVmIHJlc3RvcmUoc2VsZik6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc3B5X3Jl
c3RvcmVfY291bnQgKz0gMQotICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9fc25hcHNob3Qu
cmVzdG9yZSgpCi0KLSAgICAgICAgcmV0dXJuIFN5c1BhdGhzU25hcHNob3RTcHkKLQotICAgIGRl
ZiB0ZXN0X2lubGluZV9ydW5fdGFraW5nX2FuZF9yZXN0b3JpbmdfYV9zeXNfcGF0aHNfc25hcHNo
b3QoCi0gICAgICAgIHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoCi0gICAgKToKLSAgICAgICAg
c3B5X2ZhY3RvcnkgPSBzZWxmLnNweV9mYWN0b3J5KCkKLSAgICAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cihweXRlc3RlciwgIlN5c1BhdGhzU25hcHNob3QiLCBzcHlfZmFjdG9yeSkKLSAgICAgICAg
dGVzdF9tb2QgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2ZvbygpOiBwYXNzIikKLSAg
ICAgICAgdGVzdGRpci5pbmxpbmVfcnVuKHN0cih0ZXN0X21vZCkpCi0gICAgICAgIGFzc2VydCBs
ZW4oc3B5X2ZhY3RvcnkuaW5zdGFuY2VzKSA9PSAxCi0gICAgICAgIHNweSA9IHNweV9mYWN0b3J5
Lmluc3RhbmNlc1swXQotICAgICAgICBhc3NlcnQgc3B5Ll9zcHlfcmVzdG9yZV9jb3VudCA9PSAx
Ci0KLQogZGVmIHRlc3RfYXNzZXJ0X291dGNvbWVzX2FmdGVyX3B5dGVzdF9lcnJvcih0ZXN0ZGly
KToKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2ZvbygpOiBhc3NlcnQgVHJ1ZSIp
CiAKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS11bmV4cGVjdGVkLWFyZ3VtZW50
IikKLSAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbWVzc2FnZT0iUHl0ZXN0IHRl
cm1pbmFsIHJlcG9ydCBub3QgZm91bmQiKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVF
cnJvciwgbWF0Y2g9IlB5dGVzdCB0ZXJtaW5hbCByZXBvcnQgbm90IGZvdW5kIik6CiAgICAgICAg
IHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTApCiAKIApAQCAtMzcwLDkgKzM4Nyw3IEBA
IGNsYXNzIFRlc3RTeXNQYXRoc1NuYXBzaG90KG9iamVjdCk6CiAgICAgICAgIG9yaWdpbmFsID0g
bGlzdChzeXNfcGF0aCkKICAgICAgICAgb3JpZ2luYWxfb3RoZXIgPSBsaXN0KGdldGF0dHIoc3lz
LCBvdGhlcl9wYXRoX3R5cGUpKQogICAgICAgICBzbmFwc2hvdCA9IFN5c1BhdGhzU25hcHNob3Qo
KQotICAgICAgICB0cmFuc2Zvcm1hdGlvbiA9IHsKLSAgICAgICAgICAgICJzb3VyY2UiOiAoMCwg
MSwgMiwgMywgNCwgNSksICJ0YXJnZXQiOiAoNiwgMiwgOSwgNywgNSwgOCkKLSAgICAgICAgfSAg
IyBub3FhOiBFMjAxCisgICAgICAgIHRyYW5zZm9ybWF0aW9uID0geyJzb3VyY2UiOiAoMCwgMSwg
MiwgMywgNCwgNSksICJ0YXJnZXQiOiAoNiwgMiwgOSwgNywgNSwgOCl9CiAgICAgICAgIGFzc2Vy
dCBzeXNfcGF0aCA9PSBbc2VsZi5wYXRoKHgpIGZvciB4IGluIHRyYW5zZm9ybWF0aW9uWyJzb3Vy
Y2UiXV0KICAgICAgICAgc3lzX3BhdGhbMV0gPSBzZWxmLnBhdGgoNikKICAgICAgICAgc3lzX3Bh
dGhbM10gPSBzZWxmLnBhdGgoNykKQEAgLTM5OSwzICs0MTQsMTc0IEBAIGNsYXNzIFRlc3RTeXNQ
YXRoc1NuYXBzaG90KG9iamVjdCk6CiAgICAgICAgIGFzc2VydCBnZXRhdHRyKHN5cywgcGF0aF90
eXBlKSA9PSBvcmlnaW5hbF9kYXRhCiAgICAgICAgIGFzc2VydCBnZXRhdHRyKHN5cywgb3RoZXJf
cGF0aF90eXBlKSBpcyBvcmlnaW5hbF9vdGhlcgogICAgICAgICBhc3NlcnQgZ2V0YXR0cihzeXMs
IG90aGVyX3BhdGhfdHlwZSkgPT0gb3JpZ2luYWxfb3RoZXJfZGF0YQorCisKK2RlZiB0ZXN0X3Rl
c3RkaXJfc3VicHJvY2Vzcyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZmlsZSA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgiZGVmIHRlc3Rfb25lKCk6IHBhc3MiKQorICAgIGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVz
dF9zdWJwcm9jZXNzKHRlc3RmaWxlKS5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X3VuaWNvZGVfYXJn
cyh0ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLWsiLCB1IvCfkqki
KQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorCisKK2Rl
ZiB0ZXN0X3Rlc3RkaXJfcnVuX25vX3RpbWVvdXQodGVzdGRpcik6CisgICAgdGVzdGZpbGUgPSB0
ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X25vX3RpbWVvdXQoKTogcGFzcyIpCisgICAgYXNz
ZXJ0IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3ModGVzdGZpbGUpLnJldCA9PSBFWElUX09L
CisKKworZGVmIHRlc3RfdGVzdGRpcl9ydW5fd2l0aF90aW1lb3V0KHRlc3RkaXIpOgorICAgIHRl
c3RmaWxlID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9ub190aW1lb3V0KCk6IHBhc3Mi
KQorCisgICAgdGltZW91dCA9IDEyMAorCisgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQorICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3ModGVzdGZpbGUsIHRpbWVvdXQ9dGlt
ZW91dCkKKyAgICBlbmQgPSB0aW1lLnRpbWUoKQorICAgIGR1cmF0aW9uID0gZW5kIC0gc3RhcnQK
KworICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfT0sKKyAgICBhc3NlcnQgZHVyYXRpb24g
PCB0aW1lb3V0CisKKworZGVmIHRlc3RfdGVzdGRpcl9ydW5fdGltZW91dF9leHBpcmVzKHRlc3Rk
aXIpOgorICAgIHRlc3RmaWxlID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAg
ICAgICAgaW1wb3J0IHRpbWUKKworICAgICAgICBkZWYgdGVzdF90aW1lb3V0KCk6CisgICAgICAg
ICAgICB0aW1lLnNsZWVwKDEwKSIiIgorICAgICkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXModGVz
dGRpci5UaW1lb3V0RXhwaXJlZCk6CisgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nl
c3ModGVzdGZpbGUsIHRpbWVvdXQ9MSkKKworCitkZWYgdGVzdF9saW5lbWF0Y2hlcl93aXRoX25v
bmxpc3QoKToKKyAgICAiIiJUZXN0IExpbmVNYXRjaGVyIHdpdGggcmVnYXJkIHRvIHBhc3Npbmcg
aW4gYSBzZXQgKGFjY2lkZW50YWxseSkuIiIiCisgICAgbG0gPSBMaW5lTWF0Y2hlcihbXSkKKwor
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvcik6CisgICAgICAgIGxtLmZubWF0
Y2hfbGluZXMoc2V0KCkpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yKToK
KyAgICAgICAgbG0uZm5tYXRjaF9saW5lcyh7fSkKKyAgICBsbS5mbm1hdGNoX2xpbmVzKFtdKQor
ICAgIGxtLmZubWF0Y2hfbGluZXMoKCkpCisKKyAgICBhc3NlcnQgbG0uX2dldGxpbmVzKHt9KSA9
PSB7fQorICAgIGFzc2VydCBsbS5fZ2V0bGluZXMoc2V0KCkpID09IHNldCgpCisKKworZGVmIHRl
c3RfcHl0ZXN0ZXJfYWRkb3B0cyhyZXF1ZXN0LCBtb25rZXlwYXRjaCk6CisgICAgbW9ua2V5cGF0
Y2guc2V0ZW52KCJQWVRFU1RfQURET1BUUyIsICItLW9yaWctdW51c2VkIikKKworICAgIHRlc3Rk
aXIgPSByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgidGVzdGRpciIpCisKKyAgICB0cnk6CisgICAg
ICAgIGFzc2VydCAiUFlURVNUX0FERE9QVFMiIG5vdCBpbiBvcy5lbnZpcm9uCisgICAgZmluYWxs
eToKKyAgICAgICAgdGVzdGRpci5maW5hbGl6ZSgpCisKKyAgICBhc3NlcnQgb3MuZW52aXJvblsi
UFlURVNUX0FERE9QVFMiXSA9PSAiLS1vcmlnLXVudXNlZCIKKworCitkZWYgdGVzdF9ydW5fc3Rk
aW4odGVzdGRpcik6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKHRlc3RkaXIuVGltZW91dEV4cGly
ZWQpOgorICAgICAgICB0ZXN0ZGlyLnJ1bigKKyAgICAgICAgICAgIHN5cy5leGVjdXRhYmxlLAor
ICAgICAgICAgICAgIi1jIiwKKyAgICAgICAgICAgICJpbXBvcnQgc3lzLCB0aW1lOyB0aW1lLnNs
ZWVwKDEpOyBwcmludChzeXMuc3RkaW4ucmVhZCgpKSIsCisgICAgICAgICAgICBzdGRpbj1zdWJw
cm9jZXNzLlBJUEUsCisgICAgICAgICAgICB0aW1lb3V0PTAuMSwKKyAgICAgICAgKQorCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKHRlc3RkaXIuVGltZW91dEV4cGlyZWQpOgorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bigKKyAgICAgICAgICAgIHN5cy5leGVjdXRhYmxlLAorICAgICAgICAg
ICAgIi1jIiwKKyAgICAgICAgICAgICJpbXBvcnQgc3lzLCB0aW1lOyB0aW1lLnNsZWVwKDEpOyBw
cmludChzeXMuc3RkaW4ucmVhZCgpKSIsCisgICAgICAgICAgICBzdGRpbj1iImlucHV0XG4ybmRs
aW5lIiwKKyAgICAgICAgICAgIHRpbWVvdXQ9MC4xLAorICAgICAgICApCisKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bigKKyAgICAgICAgc3lzLmV4ZWN1dGFibGUsCisgICAgICAgICItYyIsCisg
ICAgICAgICJpbXBvcnQgc3lzOyBwcmludChzeXMuc3RkaW4ucmVhZCgpKSIsCisgICAgICAgIHN0
ZGluPWIiaW5wdXRcbjJuZGxpbmUiLAorICAgICkKKyAgICBhc3NlcnQgcmVzdWx0LnN0ZG91dC5s
aW5lcyA9PSBbImlucHV0IiwgIjJuZGxpbmUiXQorICAgIGFzc2VydCByZXN1bHQuc3RkZXJyLnN0
cigpID09ICIiCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X3BvcGVu
X3N0ZGluX3BpcGUodGVzdGRpcik6CisgICAgcHJvYyA9IHRlc3RkaXIucG9wZW4oCisgICAgICAg
IFtzeXMuZXhlY3V0YWJsZSwgIi1jIiwgImltcG9ydCBzeXM7IHByaW50KHN5cy5zdGRpbi5yZWFk
KCkpIl0sCisgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgIHN0ZGVycj1z
dWJwcm9jZXNzLlBJUEUsCisgICAgICAgIHN0ZGluPXN1YnByb2Nlc3MuUElQRSwKKyAgICApCisg
ICAgc3RkaW4gPSBiImlucHV0XG4ybmRsaW5lIgorICAgIHN0ZG91dCwgc3RkZXJyID0gcHJvYy5j
b21tdW5pY2F0ZShpbnB1dD1zdGRpbikKKyAgICBhc3NlcnQgc3Rkb3V0LmRlY29kZSgidXRmOCIp
LnNwbGl0bGluZXMoKSA9PSBbImlucHV0IiwgIjJuZGxpbmUiXQorICAgIGFzc2VydCBzdGRlcnIg
PT0gYiIiCisgICAgYXNzZXJ0IHByb2MucmV0dXJuY29kZSA9PSAwCisKKworZGVmIHRlc3RfcG9w
ZW5fc3RkaW5fYnl0ZXModGVzdGRpcik6CisgICAgcHJvYyA9IHRlc3RkaXIucG9wZW4oCisgICAg
ICAgIFtzeXMuZXhlY3V0YWJsZSwgIi1jIiwgImltcG9ydCBzeXM7IHByaW50KHN5cy5zdGRpbi5y
ZWFkKCkpIl0sCisgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgIHN0ZGVy
cj1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgIHN0ZGluPWIiaW5wdXRcbjJuZGxpbmUiLAorICAg
ICkKKyAgICBzdGRvdXQsIHN0ZGVyciA9IHByb2MuY29tbXVuaWNhdGUoKQorICAgIGFzc2VydCBz
dGRvdXQuZGVjb2RlKCJ1dGY4Iikuc3BsaXRsaW5lcygpID09IFsiaW5wdXQiLCAiMm5kbGluZSJd
CisgICAgYXNzZXJ0IHN0ZGVyciA9PSBiIiIKKyAgICBhc3NlcnQgcHJvYy5yZXR1cm5jb2RlID09
IDAKKworCitkZWYgdGVzdF9wb3Blbl9kZWZhdWx0X3N0ZGluX3N0ZGVycl9hbmRfc3RkaW5fTm9u
ZSh0ZXN0ZGlyKToKKyAgICAjIHN0ZG91dCwgc3RkZXJyIGRlZmF1bHQgdG8gcGlwZXMsCisgICAg
IyBzdGRpbiBjYW4gYmUgTm9uZSB0byBub3QgY2xvc2UgdGhlIHBpcGUsIGF2b2lkaW5nCisgICAg
IyAiVmFsdWVFcnJvcjogZmx1c2ggb2YgY2xvc2VkIGZpbGUiIHdpdGggYGNvbW11bmljYXRlKClg
LgorICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAgaW1w
b3J0IHN5cworICAgICAgICBwcmludChzeXMuc3RkaW4ucmVhZCgpKSAgIyBlbXB0eQorICAgICAg
ICBwcmludCgnc3Rkb3V0JykKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnc3RkZXJyJykKKyAg
ICAgICAgIiIiCisgICAgKQorICAgIHByb2MgPSB0ZXN0ZGlyLnBvcGVuKFtzeXMuZXhlY3V0YWJs
ZSwgc3RyKHAxKV0sIHN0ZGluPU5vbmUpCisgICAgc3Rkb3V0LCBzdGRlcnIgPSBwcm9jLmNvbW11
bmljYXRlKGIiaWdub3JlZCIpCisgICAgYXNzZXJ0IHN0ZG91dC5zcGxpdGxpbmVzKCkgPT0gW2Ii
IiwgYiJzdGRvdXQiXQorICAgIGFzc2VydCBzdGRlcnIuc3BsaXRsaW5lcygpID09IFtiInN0ZGVy
ciJdCisgICAgYXNzZXJ0IHByb2MucmV0dXJuY29kZSA9PSAwCisKKworZGVmIHRlc3Rfc3Bhd25f
dXNlc190bXBob21lKHRlc3RkaXIpOgorICAgIGltcG9ydCBvcworCisgICAgdG1waG9tZSA9IHN0
cih0ZXN0ZGlyLnRtcGRpcikKKworICAgICMgRG9lcyB1c2UgSE9NRSBvbmx5IGR1cmluZyBydW4u
CisgICAgYXNzZXJ0IG9zLmVudmlyb24uZ2V0KCJIT01FIikgIT0gdG1waG9tZQorCisgICAgdGVz
dGRpci5fZW52X3J1bl91cGRhdGVbIkNVU1RPTUVOViJdID0gIjQyIgorCisgICAgcDEgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgb3MKKworICAgICAg
ICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgYXNzZXJ0IG9zLmVudmlyb25bIkhPTUUiXSA9PSB7
dG1waG9tZSFyfQorICAgICAgICAgICAgYXNzZXJ0IG9zLmVudmlyb25bIkNVU1RPTUVOViJdID09
ICI0MiIKKyAgICAgICAgIiIiLmZvcm1hdCgKKyAgICAgICAgICAgIHRtcGhvbWU9dG1waG9tZQor
ICAgICAgICApCisgICAgKQorICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3Qoc3RyKHAx
KSkKKyAgICBvdXQgPSBjaGlsZC5yZWFkKCkKKyAgICBhc3NlcnQgY2hpbGQud2FpdCgpID09IDAs
IG91dC5kZWNvZGUoInV0ZjgiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0
X3JlY3dhcm4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVjd2Fybi5weQppbmRleCBh
OGUyZmI4MDM3ODBjNThlZTE5ODhlYzIxZGE0NjFmOGEwODA5NWM4Li5kNjUyMjE5ZGYzZWZjMDEw
NmYyYWI4OTcwZWRjOWQ4ZDMyNDJlYzk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfcmVjd2Fybi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVjd2Fybi5w
eQpAQCAtMSwxMyArMSwyNCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHdhcm5pbmdzCisjIC0qLSBjb2Rp
bmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp
bnRfZnVuY3Rpb24KKwogaW1wb3J0IHJlCitpbXBvcnQgd2FybmluZ3MKIAogaW1wb3J0IHB5dGVz
dAogZnJvbSBfcHl0ZXN0LnJlY3dhcm4gaW1wb3J0IFdhcm5pbmdzUmVjb3JkZXIKK2Zyb20gX3B5
dGVzdC53YXJuaW5nX3R5cGVzIGltcG9ydCBQeXRlc3REZXByZWNhdGlvbldhcm5pbmcKKworCitk
ZWYgdGVzdF9yZWN3YXJuX3N0YWNrbGV2ZWwocmVjd2Fybik6CisgICAgd2FybmluZ3Mud2Fybigi
aGVsbG8iKQorICAgIHdhcm4gPSByZWN3YXJuLnBvcCgpCisgICAgYXNzZXJ0IHdhcm4uZmlsZW5h
bWUgPT0gX19maWxlX18KIAogCiBkZWYgdGVzdF9yZWN3YXJuX2Z1bmN0aW9uYWwodGVzdGRpcik6
Ci0gICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKAorICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgKICAgICAgICAgIiIiCiAgICAgICAgIGltcG9ydCB3YXJuaW5ncwogICAgICAgICBk
ZWYgdGVzdF9tZXRob2QocmVjd2Fybik6CkBAIC0xNiwxMiArMjcsMTEgQEAgZGVmIHRlc3RfcmVj
d2Fybl9mdW5jdGlvbmFsKHRlc3RkaXIpOgogICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
d2Fybi5tZXNzYWdlLCBVc2VyV2FybmluZykKICAgICAiIiIKICAgICApCi0gICAgcmVzID0gcmVw
cmVjLmNvdW50b3V0Y29tZXMoKQotICAgIGFzc2VydCB0dXBsZShyZXMpID09ICgxLCAwLCAwKSwg
cmVzCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICByZXByZWMuYXNzZXJ0
b3V0Y29tZShwYXNzZWQ9MSkKIAogCiBjbGFzcyBUZXN0V2FybmluZ3NSZWNvcmRlckNoZWNrZXIo
b2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X3JlY29yZGluZyhzZWxmKToKICAgICAgICAgcmVjID0g
V2FybmluZ3NSZWNvcmRlcigpCiAgICAgICAgIHdpdGggcmVjOgpAQCAtMzYsNyArNDYsMTMgQEAg
Y2xhc3MgVGVzdFdhcm5pbmdzUmVjb3JkZXJDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICAgICBy
ZWMuY2xlYXIoKQogICAgICAgICAgICAgYXNzZXJ0IGxlbihyZWMubGlzdCkgPT0gMAogICAgICAg
ICAgICAgYXNzZXJ0IHZhbHVlcyBpcyByZWMubGlzdAotICAgICAgICAgICAgcHl0ZXN0LnJhaXNl
cyhBc3NlcnRpb25FcnJvciwgInJlYy5wb3AoKSIpCisgICAgICAgICAgICBweXRlc3QucmFpc2Vz
KEFzc2VydGlvbkVycm9yLCByZWMucG9wKQorCisgICAgZGVmIHRlc3Rfd2Fybl9zdGFja2xldmVs
KHNlbGYpOgorICAgICAgICAiIiIjNDI0MyIiIgorICAgICAgICByZWMgPSBXYXJuaW5nc1JlY29y
ZGVyKCkKKyAgICAgICAgd2l0aCByZWM6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ0ZXN0
IiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogCiAgICAgZGVmIHRlc3RfdHlwZWNoZWNraW5nKHNl
bGYpOgogICAgICAgICBmcm9tIF9weXRlc3QucmVjd2FybiBpbXBvcnQgV2FybmluZ3NDaGVja2Vy
CkBAIC03Nyw5ICs5Myw4IEBAIGNsYXNzIFRlc3REZXByZWNhdGVkQ2FsbChvYmplY3QpOgogICAg
ICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfZGVwcmVjYXRlZF9jYWxsX3JhaXNlcyhzZWxmKToK
LSAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yKSBhcyBleGNpbmZvOgor
ICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uLCBtYXRjaD0i
Tm8gd2FybmluZ3Mgb2YgdHlwZSIpOgogICAgICAgICAgICAgcHl0ZXN0LmRlcHJlY2F0ZWRfY2Fs
bChzZWxmLmRlcCwgMywgNSkKLSAgICAgICAgYXNzZXJ0ICJEaWQgbm90IHByb2R1Y2UiIGluIHN0
cihleGNpbmZvKQogCiAgICAgZGVmIHRlc3RfZGVwcmVjYXRlZF9jYWxsKHNlbGYpOgogICAgICAg
ICBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKHNlbGYuZGVwLCAwLCA1KQpAQCAtMTAxLDcgKzExNiw3
IEBAIGNsYXNzIFRlc3REZXByZWNhdGVkQ2FsbChvYmplY3QpOgogICAgICAgICBhc3NlcnQgd2Fy
bl9leHBsaWNpdCBpcyB3YXJuaW5ncy53YXJuX2V4cGxpY2l0CiAKICAgICBkZWYgdGVzdF9kZXBy
ZWNhdGVkX2V4cGxpY2l0X2NhbGxfcmFpc2VzKHNlbGYpOgotICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoQXNzZXJ0aW9uRXJyb3IpOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0
LmZhaWwuRXhjZXB0aW9uKToKICAgICAgICAgICAgIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoc2Vs
Zi5kZXBfZXhwbGljaXQsIDMpCiAKICAgICBkZWYgdGVzdF9kZXByZWNhdGVkX2V4cGxpY2l0X2Nh
bGwoc2VsZik6CkBAIC0xMTcsOCArMTMyLDggQEAgY2xhc3MgVGVzdERlcHJlY2F0ZWRDYWxsKG9i
amVjdCk6CiAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICBwYXNzCiAKLSAgICAgICAgbXNn
ID0gIkRpZCBub3QgcHJvZHVjZSBEZXByZWNhdGlvbldhcm5pbmcgb3IgUGVuZGluZ0RlcHJlY2F0
aW9uV2FybmluZyIKLSAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yLCBt
YXRjaD1tc2cpOgorICAgICAgICBtc2cgPSAiTm8gd2FybmluZ3Mgb2YgdHlwZSAoLipEZXByZWNh
dGlvbldhcm5pbmcuKiwgLipQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLiopIgorICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uLCBtYXRjaD1tc2cpOgogICAg
ICAgICAgICAgaWYgbW9kZSA9PSAiY2FsbCI6CiAgICAgICAgICAgICAgICAgcHl0ZXN0LmRlcHJl
Y2F0ZWRfY2FsbChmKQogICAgICAgICAgICAgZWxzZToKQEAgLTE4MCwyMyArMTk1LDM4IEBAIGNs
YXNzIFRlc3REZXByZWNhdGVkQ2FsbChvYmplY3QpOgogICAgICAgICAgICAgZGVmIGYoKToKICAg
ICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKHdhcm5pbmcoImhpIikpCiAKLSAgICAgICAgICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvcik6CisgICAgICAgICAgICB3aXRoIHB5
dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKToKICAgICAgICAgICAgICAgICBweXRl
c3QuZGVwcmVjYXRlZF9jYWxsKGYpCi0gICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXNz
ZXJ0aW9uRXJyb3IpOgorICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWls
LkV4Y2VwdGlvbik6CiAgICAgICAgICAgICAgICAgd2l0aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxs
KCk6CiAgICAgICAgICAgICAgICAgICAgIGYoKQogCisgICAgZGVmIHRlc3RfZGVwcmVjYXRlZF9j
YWxsX3N1cHBvcnRzX21hdGNoKHNlbGYpOgorICAgICAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVk
X2NhbGwobWF0Y2g9ciJtdXN0IGJlIFxkKyQiKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4o
InZhbHVlIG11c3QgYmUgNDIiLCBEZXByZWNhdGlvbldhcm5pbmcpCisKKyAgICAgICAgd2l0aCBw
eXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlvbik6CisgICAgICAgICAgICB3aXRoIHB5
dGVzdC5kZXByZWNhdGVkX2NhbGwobWF0Y2g9ciJtdXN0IGJlIFxkKyQiKToKKyAgICAgICAgICAg
ICAgICB3YXJuaW5ncy53YXJuKCJ0aGlzIGlzIG5vdCBoZXJlIiwgRGVwcmVjYXRpb25XYXJuaW5n
KQogCi1jbGFzcyBUZXN0V2FybnMob2JqZWN0KToKIAorY2xhc3MgVGVzdFdhcm5zKG9iamVjdCk6
CiAgICAgZGVmIHRlc3Rfc3RyaW5ncyhzZWxmKToKICAgICAgICAgIyBkaWZmZXJlbnQgbWVzc2Fn
ZXMsIGIvYyBQeXRob24gc3VwcHJlc3NlcyBtdWx0aXBsZSBpZGVudGljYWwgd2FybmluZ3MKICAg
ICAgICAgc291cmNlMSA9ICJ3YXJuaW5ncy53YXJuKCd3MScsIFJ1bnRpbWVXYXJuaW5nKSIKICAg
ICAgICAgc291cmNlMiA9ICJ3YXJuaW5ncy53YXJuKCd3MicsIFJ1bnRpbWVXYXJuaW5nKSIKICAg
ICAgICAgc291cmNlMyA9ICJ3YXJuaW5ncy53YXJuKCd3MycsIFJ1bnRpbWVXYXJuaW5nKSIKLSAg
ICAgICAgcHl0ZXN0Lndhcm5zKFJ1bnRpbWVXYXJuaW5nLCBzb3VyY2UxKQotICAgICAgICBweXRl
c3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlvbiwgbGFtYmRhOiBweXRlc3Qud2FybnMoVXNl
cldhcm5pbmcsIHNvdXJjZTIpKQotICAgICAgICBweXRlc3Qud2FybnMoUnVudGltZVdhcm5pbmcs
IHNvdXJjZTMpCisgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKFB5dGVzdERlcHJlY2F0aW9uV2Fy
bmluZykgYXMgd2FybmluZm86ICAjIHlvIGRhd2cKKyAgICAgICAgICAgIHB5dGVzdC53YXJucyhS
dW50aW1lV2FybmluZywgc291cmNlMSkKKyAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoCisgICAg
ICAgICAgICAgICAgcHl0ZXN0LmZhaWwuRXhjZXB0aW9uLCBsYW1iZGE6IHB5dGVzdC53YXJucyhV
c2VyV2FybmluZywgc291cmNlMikKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHB5dGVzdC53
YXJucyhSdW50aW1lV2FybmluZywgc291cmNlMykKKyAgICAgICAgYXNzZXJ0IGxlbih3YXJuaW5m
bykgPT0gMworICAgICAgICBmb3IgdyBpbiB3YXJuaW5mbzoKKyAgICAgICAgICAgIGFzc2VydCB3
LmZpbGVuYW1lID09IF9fZmlsZV9fCisgICAgICAgICAgICAobXNnLCkgPSB3Lm1lc3NhZ2UuYXJn
cworICAgICAgICAgICAgYXNzZXJ0IG1zZy5zdGFydHN3aXRoKCJ3YXJucyguLi4sICdjb2RlKGFz
X2Ffc3RyaW5nKScpIGlzIGRlcHJlY2F0ZWQiKQogCiAgICAgZGVmIHRlc3RfZnVuY3Rpb24oc2Vs
Zik6CiAgICAgICAgIHB5dGVzdC53YXJucygKQEAgLTM0NSwzICszNzUsMTMgQEAgY2xhc3MgVGVz
dFdhcm5zKG9iamVjdCk6CiAgICAgICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhVc2VyV2Fybmlu
ZywgbWF0Y2g9ciJhYWEiKToKICAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJiYmJiYmJi
YmJiIiwgVXNlcldhcm5pbmcpCiAgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigiY2NjY2Nj
Y2NjYyIsIFVzZXJXYXJuaW5nKQorCisgICAgQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCJp
Z25vcmUiKQorICAgIGRlZiB0ZXN0X2Nhbl9jYXB0dXJlX3ByZXZpb3VzbHlfd2FybmVkKHNlbGYp
OgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybihVc2VyV2Fybmlu
Zygib2hhaSIpKQorICAgICAgICAgICAgcmV0dXJuIDEwCisKKyAgICAgICAgYXNzZXJ0IGYoKSA9
PSAxMAorICAgICAgICBhc3NlcnQgcHl0ZXN0Lndhcm5zKFVzZXJXYXJuaW5nLCBmKSA9PSAxMAor
ICAgICAgICBhc3NlcnQgcHl0ZXN0Lndhcm5zKFVzZXJXYXJuaW5nLCBmKSA9PSAxMApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3JlcG9ydHMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3RfcmVwb3J0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzY4NTFlNDliZDE0MGU3OTQ4MmVl
NmIyNDkzNTY5YWY5NmRhYTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X3JlcG9ydHMucHkKQEAgLTAsMCArMSwzMTQgQEAKKyMgLSotIGNvZGluZzogdXRmLTgg
LSotCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QucGF0aGxpYiBpbXBvcnQgUGF0aAorZnJv
bSBfcHl0ZXN0LnJlcG9ydHMgaW1wb3J0IENvbGxlY3RSZXBvcnQKK2Zyb20gX3B5dGVzdC5yZXBv
cnRzIGltcG9ydCBUZXN0UmVwb3J0CisKKworY2xhc3MgVGVzdFJlcG9ydFNlcmlhbGl6YXRpb24o
b2JqZWN0KToKKyAgICBkZWYgdGVzdF94ZGlzdF9sb25ncmVwcl90b19zdHJfaXNzdWVfMjQxKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIKKyAgICAgICAgUmVnYXJkaW5nIGlzc3VlIHB5dGVz
dC14ZGlzdCMyNDEKKworICAgICAgICBUaGlzIHRlc3QgY2FtZSBvcmlnaW5hbGx5IGZyb20gdGVz
dF9yZW1vdGUucHkgaW4geGRpc3QgKGNhMDMyNjkpLgorICAgICAgICAiIiIKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9h
KCk6IGFzc2VydCBGYWxzZQorICAgICAgICAgICAgZGVmIHRlc3RfYigpOiBwYXNzCisgICAgICAg
ICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisg
ICAgICAgIHJlcG9ydHMgPSByZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X3J1bnRlc3RfbG9ncmVw
b3J0IikKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBvcnRzKSA9PSA2CisgICAgICAgIHRlc3RfYV9j
YWxsID0gcmVwb3J0c1sxXQorICAgICAgICBhc3NlcnQgdGVzdF9hX2NhbGwud2hlbiA9PSAiY2Fs
bCIKKyAgICAgICAgYXNzZXJ0IHRlc3RfYV9jYWxsLm91dGNvbWUgPT0gImZhaWxlZCIKKyAgICAg
ICAgYXNzZXJ0IHRlc3RfYV9jYWxsLl90b19qc29uKClbImxvbmdyZXByIl1bInJlcHJ0cmFjZWJh
Y2siXVsic3R5bGUiXSA9PSAibG9uZyIKKyAgICAgICAgdGVzdF9iX2NhbGwgPSByZXBvcnRzWzRd
CisgICAgICAgIGFzc2VydCB0ZXN0X2JfY2FsbC53aGVuID09ICJjYWxsIgorICAgICAgICBhc3Nl
cnQgdGVzdF9iX2NhbGwub3V0Y29tZSA9PSAicGFzc2VkIgorICAgICAgICBhc3NlcnQgdGVzdF9i
X2NhbGwuX3RvX2pzb24oKVsibG9uZ3JlcHIiXSBpcyBOb25lCisKKyAgICBkZWYgdGVzdF94ZGlz
dF9yZXBvcnRfbG9uZ3JlcHJfcmVwcmNyYXNoXzEzMChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
IiIiUmVnYXJkaW5nIGlzc3VlIHB5dGVzdC14ZGlzdCMxMzAKKworICAgICAgICBUaGlzIHRlc3Qg
Y2FtZSBvcmlnaW5hbGx5IGZyb20gdGVzdF9yZW1vdGUucHkgaW4geGRpc3QgKGNhMDMyNjkpLgor
ICAgICAgICAiIiIKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKAor
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2ZhaWwoKToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgJ0V4cGVjdGVkIE1lc3NhZ2UnCisg
ICAgICAgICAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVwb3J0cyA9IHJlcHJlYy5n
ZXRyZXBvcnRzKCJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQiKQorICAgICAgICBhc3NlcnQgbGVu
KHJlcG9ydHMpID09IDMKKyAgICAgICAgcmVwID0gcmVwb3J0c1sxXQorICAgICAgICBhZGRlZF9z
ZWN0aW9uID0gKCJGYWlsdXJlIE1ldGFkYXRhIiwgc3RyKCJtZXRhZGF0YSBtZXRhZGF0YSIpLCAi
KiIpCisgICAgICAgIHJlcC5sb25ncmVwci5zZWN0aW9ucy5hcHBlbmQoYWRkZWRfc2VjdGlvbikK
KyAgICAgICAgZCA9IHJlcC5fdG9fanNvbigpCisgICAgICAgIGEgPSBUZXN0UmVwb3J0Ll9mcm9t
X2pzb24oZCkKKyAgICAgICAgIyBDaGVjayBhc3NlbWJsZWQgPT0gcmVwCisgICAgICAgIGFzc2Vy
dCBhLl9fZGljdF9fLmtleXMoKSA9PSByZXAuX19kaWN0X18ua2V5cygpCisgICAgICAgIGZvciBr
ZXkgaW4gcmVwLl9fZGljdF9fLmtleXMoKToKKyAgICAgICAgICAgIGlmIGtleSAhPSAibG9uZ3Jl
cHIiOgorICAgICAgICAgICAgICAgIGFzc2VydCBnZXRhdHRyKGEsIGtleSkgPT0gZ2V0YXR0cihy
ZXAsIGtleSkKKyAgICAgICAgYXNzZXJ0IHJlcC5sb25ncmVwci5yZXByY3Jhc2gubGluZW5vID09
IGEubG9uZ3JlcHIucmVwcmNyYXNoLmxpbmVubworICAgICAgICBhc3NlcnQgcmVwLmxvbmdyZXBy
LnJlcHJjcmFzaC5tZXNzYWdlID09IGEubG9uZ3JlcHIucmVwcmNyYXNoLm1lc3NhZ2UKKyAgICAg
ICAgYXNzZXJ0IHJlcC5sb25ncmVwci5yZXByY3Jhc2gucGF0aCA9PSBhLmxvbmdyZXByLnJlcHJj
cmFzaC5wYXRoCisgICAgICAgIGFzc2VydCByZXAubG9uZ3JlcHIucmVwcnRyYWNlYmFjay5lbnRy
eXNlcCA9PSBhLmxvbmdyZXByLnJlcHJ0cmFjZWJhY2suZW50cnlzZXAKKyAgICAgICAgYXNzZXJ0
ICgKKyAgICAgICAgICAgIHJlcC5sb25ncmVwci5yZXBydHJhY2ViYWNrLmV4dHJhbGluZSA9PSBh
LmxvbmdyZXByLnJlcHJ0cmFjZWJhY2suZXh0cmFsaW5lCisgICAgICAgICkKKyAgICAgICAgYXNz
ZXJ0IHJlcC5sb25ncmVwci5yZXBydHJhY2ViYWNrLnN0eWxlID09IGEubG9uZ3JlcHIucmVwcnRy
YWNlYmFjay5zdHlsZQorICAgICAgICBhc3NlcnQgcmVwLmxvbmdyZXByLnNlY3Rpb25zID09IGEu
bG9uZ3JlcHIuc2VjdGlvbnMKKyAgICAgICAgIyBNaXNzaW5nIHNlY3Rpb24gYXR0cmlidXRlIFBS
MTcxCisgICAgICAgIGFzc2VydCBhZGRlZF9zZWN0aW9uIGluIGEubG9uZ3JlcHIuc2VjdGlvbnMK
KworICAgIGRlZiB0ZXN0X3JlcHJlbnRyaWVzX3NlcmlhbGl6YXRpb25fMTcwKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICAiIiJSZWdhcmRpbmcgaXNzdWUgcHl0ZXN0LXhkaXN0IzE3MAorCisgICAg
ICAgIFRoaXMgdGVzdCBjYW1lIG9yaWdpbmFsbHkgZnJvbSB0ZXN0X3JlbW90ZS5weSBpbiB4ZGlz
dCAoY2EwMzI2OSkuCisgICAgICAgICIiIgorICAgICAgICBmcm9tIF9weXRlc3QuX2NvZGUuY29k
ZSBpbXBvcnQgUmVwckVudHJ5CisKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
c291cmNlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm
IHRlc3RfcmVwcl9lbnRyeSgpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ID0g
MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgeAorICAgICAgICAgICAg
ICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgIi0tc2hvd2xvY2FscyIsCisgICAgICAgICkK
KyAgICAgICAgcmVwb3J0cyA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfcnVudGVzdF9sb2dy
ZXBvcnQiKQorICAgICAgICBhc3NlcnQgbGVuKHJlcG9ydHMpID09IDMKKyAgICAgICAgcmVwID0g
cmVwb3J0c1sxXQorICAgICAgICBkID0gcmVwLl90b19qc29uKCkKKyAgICAgICAgYSA9IFRlc3RS
ZXBvcnQuX2Zyb21fanNvbihkKQorCisgICAgICAgIHJlcF9lbnRyaWVzID0gcmVwLmxvbmdyZXBy
LnJlcHJ0cmFjZWJhY2sucmVwcmVudHJpZXMKKyAgICAgICAgYV9lbnRyaWVzID0gYS5sb25ncmVw
ci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzCisgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihh
X2VudHJpZXMpKToKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHJlcF9lbnRyaWVzW2ld
LCBSZXByRW50cnkpCisgICAgICAgICAgICBhc3NlcnQgcmVwX2VudHJpZXNbaV0ubGluZXMgPT0g
YV9lbnRyaWVzW2ldLmxpbmVzCisgICAgICAgICAgICBhc3NlcnQgcmVwX2VudHJpZXNbaV0ucmVw
cmZpbGVsb2MubGluZW5vID09IGFfZW50cmllc1tpXS5yZXByZmlsZWxvYy5saW5lbm8KKyAgICAg
ICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICAgICAgcmVwX2VudHJpZXNbaV0ucmVwcmZpbGVs
b2MubWVzc2FnZSA9PSBhX2VudHJpZXNbaV0ucmVwcmZpbGVsb2MubWVzc2FnZQorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgYXNzZXJ0IHJlcF9lbnRyaWVzW2ldLnJlcHJmaWxlbG9jLnBhdGgg
PT0gYV9lbnRyaWVzW2ldLnJlcHJmaWxlbG9jLnBhdGgKKyAgICAgICAgICAgIGFzc2VydCByZXBf
ZW50cmllc1tpXS5yZXByZnVuY2FyZ3MuYXJncyA9PSBhX2VudHJpZXNbaV0ucmVwcmZ1bmNhcmdz
LmFyZ3MKKyAgICAgICAgICAgIGFzc2VydCByZXBfZW50cmllc1tpXS5yZXBybG9jYWxzLmxpbmVz
ID09IGFfZW50cmllc1tpXS5yZXBybG9jYWxzLmxpbmVzCisgICAgICAgICAgICBhc3NlcnQgcmVw
X2VudHJpZXNbaV0uc3R5bGUgPT0gYV9lbnRyaWVzW2ldLnN0eWxlCisKKyAgICBkZWYgdGVzdF9y
ZXByZW50cmllc19zZXJpYWxpemF0aW9uXzE5NihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIi
UmVnYXJkaW5nIGlzc3VlIHB5dGVzdC14ZGlzdCMxOTYKKworICAgICAgICBUaGlzIHRlc3QgY2Ft
ZSBvcmlnaW5hbGx5IGZyb20gdGVzdF9yZW1vdGUucHkgaW4geGRpc3QgKGNhMDMyNjkpLgorICAg
ICAgICAiIiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFJlcHJFbnRy
eU5hdGl2ZQorCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgKKyAg
ICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3JlcHJf
ZW50cnlfbmF0aXZlKCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggPSAwCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCB4CisgICAgICAgICAgICAgICAg
ICAgICAgICAiIiIsCisgICAgICAgICAgICAiLS10Yj1uYXRpdmUiLAorICAgICAgICApCisgICAg
ICAgIHJlcG9ydHMgPSByZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0
IikKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBvcnRzKSA9PSAzCisgICAgICAgIHJlcCA9IHJlcG9y
dHNbMV0KKyAgICAgICAgZCA9IHJlcC5fdG9fanNvbigpCisgICAgICAgIGEgPSBUZXN0UmVwb3J0
Ll9mcm9tX2pzb24oZCkKKworICAgICAgICByZXBfZW50cmllcyA9IHJlcC5sb25ncmVwci5yZXBy
dHJhY2ViYWNrLnJlcHJlbnRyaWVzCisgICAgICAgIGFfZW50cmllcyA9IGEubG9uZ3JlcHIucmVw
cnRyYWNlYmFjay5yZXByZW50cmllcworICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oYV9lbnRy
aWVzKSk6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXBfZW50cmllc1tpXSwgUmVw
ckVudHJ5TmF0aXZlKQorICAgICAgICAgICAgYXNzZXJ0IHJlcF9lbnRyaWVzW2ldLmxpbmVzID09
IGFfZW50cmllc1tpXS5saW5lcworCisgICAgZGVmIHRlc3RfaXRlbXJlcG9ydF9vdXRjb21lcyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgdGVzdCBjYW1lIG9yaWdp
bmFsbHkgZnJvbSB0ZXN0X3JlbW90ZS5weSBpbiB4ZGlzdCAoY2EwMzI2OSkuCisgICAgICAgICIi
IgorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweQorICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygp
OiBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6IDAvMAorICAgICAgICAgICAgQHB5
LnRlc3QubWFyay5za2lwaWYoIlRydWUiKQorICAgICAgICAgICAgZGVmIHRlc3Rfc2tpcCgpOiBw
YXNzCisgICAgICAgICAgICBkZWYgdGVzdF9za2lwX2ltcGVyYXRpdmUoKToKKyAgICAgICAgICAg
ICAgICBweS50ZXN0LnNraXAoImhlbGxvIikKKyAgICAgICAgICAgIEBweS50ZXN0Lm1hcmsueGZh
aWwoIlRydWUiKQorICAgICAgICAgICAgZGVmIHRlc3RfeGZhaWwoKTogMC8wCisgICAgICAgICAg
ICBkZWYgdGVzdF94ZmFpbF9pbXBlcmF0aXZlKCk6CisgICAgICAgICAgICAgICAgcHkudGVzdC54
ZmFpbCgiaGVsbG8iKQorICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXBvcnRzID0g
cmVwcmVjLmdldHJlcG9ydHMoInB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCIpCisgICAgICAgIGFz
c2VydCBsZW4ocmVwb3J0cykgPT0gMTcgICMgd2l0aCBzZXR1cC90ZWFyZG93biAicGFzc2VkIiBy
ZXBvcnRzCisgICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoKKyAgICAgICAgICAgIGQgPSByZXAu
X3RvX2pzb24oKQorICAgICAgICAgICAgbmV3cmVwID0gVGVzdFJlcG9ydC5fZnJvbV9qc29uKGQp
CisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLnBhc3NlZCA9PSByZXAucGFzc2VkCisgICAgICAg
ICAgICBhc3NlcnQgbmV3cmVwLmZhaWxlZCA9PSByZXAuZmFpbGVkCisgICAgICAgICAgICBhc3Nl
cnQgbmV3cmVwLnNraXBwZWQgPT0gcmVwLnNraXBwZWQKKyAgICAgICAgICAgIGlmIG5ld3JlcC5z
a2lwcGVkIGFuZCBub3QgaGFzYXR0cihuZXdyZXAsICJ3YXN4ZmFpbCIpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCBsZW4obmV3cmVwLmxvbmdyZXByKSA9PSAzCisgICAgICAgICAgICBhc3NlcnQg
bmV3cmVwLm91dGNvbWUgPT0gcmVwLm91dGNvbWUKKyAgICAgICAgICAgIGFzc2VydCBuZXdyZXAu
d2hlbiA9PSByZXAud2hlbgorICAgICAgICAgICAgYXNzZXJ0IG5ld3JlcC5rZXl3b3JkcyA9PSBy
ZXAua2V5d29yZHMKKyAgICAgICAgICAgIGlmIHJlcC5mYWlsZWQ6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IG5ld3JlcC5sb25ncmVwcnRleHQgPT0gcmVwLmxvbmdyZXBydGV4dAorCisgICAgZGVm
IHRlc3RfY29sbGVjdHJlcG9ydF9wYXNzZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRo
aXMgdGVzdCBjYW1lIG9yaWdpbmFsbHkgZnJvbSB0ZXN0X3JlbW90ZS5weSBpbiB4ZGlzdCAoY2Ew
MzI2OSkuIiIiCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiZGVm
IHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgcmVwb3J0cyA9IHJlcHJlYy5nZXRyZXBvcnRz
KCJweXRlc3RfY29sbGVjdHJlcG9ydCIpCisgICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoKKyAg
ICAgICAgICAgIGQgPSByZXAuX3RvX2pzb24oKQorICAgICAgICAgICAgbmV3cmVwID0gQ29sbGVj
dFJlcG9ydC5fZnJvbV9qc29uKGQpCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLnBhc3NlZCA9
PSByZXAucGFzc2VkCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLmZhaWxlZCA9PSByZXAuZmFp
bGVkCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLnNraXBwZWQgPT0gcmVwLnNraXBwZWQKKwor
ICAgIGRlZiB0ZXN0X2NvbGxlY3RyZXBvcnRfZmFpbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
IiIiVGhpcyB0ZXN0IGNhbWUgb3JpZ2luYWxseSBmcm9tIHRlc3RfcmVtb3RlLnB5IGluIHhkaXN0
IChjYTAzMjY5KS4iIiIKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNl
KCJxd2UgYWJjIikKKyAgICAgICAgcmVwb3J0cyA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3Rf
Y29sbGVjdHJlcG9ydCIpCisgICAgICAgIGFzc2VydCByZXBvcnRzCisgICAgICAgIGZvciByZXAg
aW4gcmVwb3J0czoKKyAgICAgICAgICAgIGQgPSByZXAuX3RvX2pzb24oKQorICAgICAgICAgICAg
bmV3cmVwID0gQ29sbGVjdFJlcG9ydC5fZnJvbV9qc29uKGQpCisgICAgICAgICAgICBhc3NlcnQg
bmV3cmVwLnBhc3NlZCA9PSByZXAucGFzc2VkCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLmZh
aWxlZCA9PSByZXAuZmFpbGVkCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLnNraXBwZWQgPT0g
cmVwLnNraXBwZWQKKyAgICAgICAgICAgIGlmIHJlcC5mYWlsZWQ6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IG5ld3JlcC5sb25ncmVwciA9PSBzdHIocmVwLmxvbmdyZXByKQorCisgICAgZGVmIHRl
c3RfZXh0ZW5kZWRfcmVwb3J0X2Rlc2VyaWFsaXphdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgIiIiVGhpcyB0ZXN0IGNhbWUgb3JpZ2luYWxseSBmcm9tIHRlc3RfcmVtb3RlLnB5IGluIHhk
aXN0IChjYTAzMjY5KS4iIiIKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291
cmNlKCJxd2UgYWJjIikKKyAgICAgICAgcmVwb3J0cyA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRl
c3RfY29sbGVjdHJlcG9ydCIpCisgICAgICAgIGFzc2VydCByZXBvcnRzCisgICAgICAgIGZvciBy
ZXAgaW4gcmVwb3J0czoKKyAgICAgICAgICAgIHJlcC5leHRyYSA9IFRydWUKKyAgICAgICAgICAg
IGQgPSByZXAuX3RvX2pzb24oKQorICAgICAgICAgICAgbmV3cmVwID0gQ29sbGVjdFJlcG9ydC5f
ZnJvbV9qc29uKGQpCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLmV4dHJhCisgICAgICAgICAg
ICBhc3NlcnQgbmV3cmVwLnBhc3NlZCA9PSByZXAucGFzc2VkCisgICAgICAgICAgICBhc3NlcnQg
bmV3cmVwLmZhaWxlZCA9PSByZXAuZmFpbGVkCisgICAgICAgICAgICBhc3NlcnQgbmV3cmVwLnNr
aXBwZWQgPT0gcmVwLnNraXBwZWQKKyAgICAgICAgICAgIGlmIHJlcC5mYWlsZWQ6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IG5ld3JlcC5sb25ncmVwciA9PSBzdHIocmVwLmxvbmdyZXByKQorCisg
ICAgZGVmIHRlc3RfcGF0aHNfc3VwcG9ydChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiUmVw
b3J0IGF0dHJpYnV0ZXMgd2hpY2ggYXJlIHB5LnBhdGggb3IgcGF0aGxpYiBvYmplY3RzIHNob3Vs
ZCBiZWNvbWUgc3RyaW5ncy4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAg
ICAgICAgIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9hKCk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IEZhbHNlCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3Rk
aXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcG9ydHMgPSByZXByZWMuZ2V0cmVwb3J0cygicHl0
ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IikKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBvcnRzKSA9PSAz
CisgICAgICAgIHRlc3RfYV9jYWxsID0gcmVwb3J0c1sxXQorICAgICAgICB0ZXN0X2FfY2FsbC5w
YXRoMSA9IHRlc3RkaXIudG1wZGlyCisgICAgICAgIHRlc3RfYV9jYWxsLnBhdGgyID0gUGF0aCh0
ZXN0ZGlyLnRtcGRpcikKKyAgICAgICAgZGF0YSA9IHRlc3RfYV9jYWxsLl90b19qc29uKCkKKyAg
ICAgICAgYXNzZXJ0IGRhdGFbInBhdGgxIl0gPT0gc3RyKHRlc3RkaXIudG1wZGlyKQorICAgICAg
ICBhc3NlcnQgZGF0YVsicGF0aDIiXSA9PSBzdHIodGVzdGRpci50bXBkaXIpCisKKyAgICBkZWYg
dGVzdF91bnNlcmlhbGl6YXRpb25fZmFpbHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIi
Q2hlY2sgaGFuZGxpbmcgb2YgZmFpbHVyZSBkdXJpbmcgdW5zZXJpYWxpemF0aW9uIG9mIHJlcG9y
dCB0eXBlcy4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIi
CisgICAgICAgICAgICBkZWYgdGVzdF9hKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNl
CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigpCisgICAgICAgIHJlcG9ydHMgPSByZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X3J1bnRl
c3RfbG9ncmVwb3J0IikKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBvcnRzKSA9PSAzCisgICAgICAg
IHRlc3RfYV9jYWxsID0gcmVwb3J0c1sxXQorICAgICAgICBkYXRhID0gdGVzdF9hX2NhbGwuX3Rv
X2pzb24oKQorICAgICAgICBlbnRyeSA9IGRhdGFbImxvbmdyZXByIl1bInJlcHJ0cmFjZWJhY2si
XVsicmVwcmVudHJpZXMiXVswXQorICAgICAgICBhc3NlcnQgZW50cnlbInR5cGUiXSA9PSAiUmVw
ckVudHJ5IgorCisgICAgICAgIGVudHJ5WyJ0eXBlIl0gPSAiVW5rbm93biIKKyAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKAorICAgICAgICAgICAgUnVudGltZUVycm9yLCBtYXRjaD0iSU5URVJO
QUxFUlJPUjogVW5rbm93biBlbnRyeSB0eXBlIHJldHVybmVkOiBVbmtub3duIgorICAgICAgICAp
OgorICAgICAgICAgICAgVGVzdFJlcG9ydC5fZnJvbV9qc29uKGRhdGEpCisKKworY2xhc3MgVGVz
dEhvb2tzOgorICAgICIiIlRlc3QgdGhhdCB0aGUgaG9va3MgYXJlIHdvcmtpbmcgY29ycmVjdGx5
IGZvciBwbHVnaW5zIiIiCisKKyAgICBkZWYgdGVzdF90ZXN0X3JlcG9ydChzZWxmLCB0ZXN0ZGly
LCBweXRlc3Rjb25maWcpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAg
ICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2EoKTogYXNzZXJ0IEZhbHNlCisgICAgICAgICAg
ICBkZWYgdGVzdF9iKCk6IHBhc3MKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwb3J0cyA9IHJlcHJlYy5nZXRy
ZXBvcnRzKCJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQiKQorICAgICAgICBhc3NlcnQgbGVuKHJl
cG9ydHMpID09IDYKKyAgICAgICAgZm9yIHJlcCBpbiByZXBvcnRzOgorICAgICAgICAgICAgZGF0
YSA9IHB5dGVzdGNvbmZpZy5ob29rLnB5dGVzdF9yZXBvcnRfdG9fc2VyaWFsaXphYmxlKAorICAg
ICAgICAgICAgICAgIGNvbmZpZz1weXRlc3Rjb25maWcsIHJlcG9ydD1yZXAKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIGFzc2VydCBkYXRhWyJfcmVwb3J0X3R5cGUiXSA9PSAiVGVzdFJlcG9y
dCIKKyAgICAgICAgICAgIG5ld19yZXAgPSBweXRlc3Rjb25maWcuaG9vay5weXRlc3RfcmVwb3J0
X2Zyb21fc2VyaWFsaXphYmxlKAorICAgICAgICAgICAgICAgIGNvbmZpZz1weXRlc3Rjb25maWcs
IGRhdGE9ZGF0YQorICAgICAgICAgICAgKQorICAgICAgICAgICAgYXNzZXJ0IG5ld19yZXAubm9k
ZWlkID09IHJlcC5ub2RlaWQKKyAgICAgICAgICAgIGFzc2VydCBuZXdfcmVwLndoZW4gPT0gcmVw
LndoZW4KKyAgICAgICAgICAgIGFzc2VydCBuZXdfcmVwLm91dGNvbWUgPT0gcmVwLm91dGNvbWUK
KworICAgIGRlZiB0ZXN0X2NvbGxlY3RfcmVwb3J0KHNlbGYsIHRlc3RkaXIsIHB5dGVzdGNvbmZp
Zyk6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAg
ICAgICAgZGVmIHRlc3RfYSgpOiBhc3NlcnQgRmFsc2UKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Io
KTogcGFzcworICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQorICAgICAgICByZXBvcnRzID0gcmVwcmVjLmdldHJlcG9ydHMoInB5dGVz
dF9jb2xsZWN0cmVwb3J0IikKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBvcnRzKSA9PSAyCisgICAg
ICAgIGZvciByZXAgaW4gcmVwb3J0czoKKyAgICAgICAgICAgIGRhdGEgPSBweXRlc3Rjb25maWcu
aG9vay5weXRlc3RfcmVwb3J0X3RvX3NlcmlhbGl6YWJsZSgKKyAgICAgICAgICAgICAgICBjb25m
aWc9cHl0ZXN0Y29uZmlnLCByZXBvcnQ9cmVwCisgICAgICAgICAgICApCisgICAgICAgICAgICBh
c3NlcnQgZGF0YVsiX3JlcG9ydF90eXBlIl0gPT0gIkNvbGxlY3RSZXBvcnQiCisgICAgICAgICAg
ICBuZXdfcmVwID0gcHl0ZXN0Y29uZmlnLmhvb2sucHl0ZXN0X3JlcG9ydF9mcm9tX3NlcmlhbGl6
YWJsZSgKKyAgICAgICAgICAgICAgICBjb25maWc9cHl0ZXN0Y29uZmlnLCBkYXRhPWRhdGEKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIGFzc2VydCBuZXdfcmVwLm5vZGVpZCA9PSByZXAubm9k
ZWlkCisgICAgICAgICAgICBhc3NlcnQgbmV3X3JlcC53aGVuID09ICJjb2xsZWN0IgorICAgICAg
ICAgICAgYXNzZXJ0IG5ld19yZXAub3V0Y29tZSA9PSByZXAub3V0Y29tZQorCisgICAgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAiaG9va19uYW1lIiwgWyJweXRlc3RfcnVudGVz
dF9sb2dyZXBvcnQiLCAicHl0ZXN0X2NvbGxlY3RyZXBvcnQiXQorICAgICkKKyAgICBkZWYgdGVz
dF9pbnZhbGlkX3JlcG9ydF90eXBlcyhzZWxmLCB0ZXN0ZGlyLCBweXRlc3Rjb25maWcsIGhvb2tf
bmFtZSk6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAg
ICAgICAgICAgZGVmIHRlc3RfYSgpOiBwYXNzCisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQor
ICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXBvcnRzID0g
cmVwcmVjLmdldHJlcG9ydHMoaG9va19uYW1lKQorICAgICAgICBhc3NlcnQgcmVwb3J0cworICAg
ICAgICByZXAgPSByZXBvcnRzWzBdCisgICAgICAgIGRhdGEgPSBweXRlc3Rjb25maWcuaG9vay5w
eXRlc3RfcmVwb3J0X3RvX3NlcmlhbGl6YWJsZSgKKyAgICAgICAgICAgIGNvbmZpZz1weXRlc3Rj
b25maWcsIHJlcG9ydD1yZXAKKyAgICAgICAgKQorICAgICAgICBkYXRhWyJfcmVwb3J0X3R5cGUi
XSA9ICJVbmtub3duIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3Ip
OgorICAgICAgICAgICAgXyA9IHB5dGVzdGNvbmZpZy5ob29rLnB5dGVzdF9yZXBvcnRfZnJvbV9z
ZXJpYWxpemFibGUoCisgICAgICAgICAgICAgICAgY29uZmlnPXB5dGVzdGNvbmZpZywgZGF0YT1k
YXRhCisgICAgICAgICAgICApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
cmVzdWx0bG9nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Jlc3VsdGxvZy5weQppbmRl
eCAxNzMzODRmZmIzMGJmNjMyZTI5MDkxNGQ4MDY0OGExYmM3NTg3NGYxLi4xZWY0OWQ1ZTJkOThm
ZDc2YjRjMWVmMDMwYjBmOTIwZDVjZTFhNzdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfcmVzdWx0bG9nLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9yZXN1
bHRsb2cucHkKQEAgLTEsNDEgKzEsMTkgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKyMgLSotIGNvZGluZzogdXRmLTgg
LSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv
bgorCiBpbXBvcnQgb3MKIAotaW1wb3J0IF9weXRlc3QuX2NvZGUKIGltcG9ydCBweQotaW1wb3J0
IHB5dGVzdAotZnJvbSBfcHl0ZXN0Lm5vZGVzIGltcG9ydCBOb2RlLCBJdGVtLCBGU0NvbGxlY3Rv
cgotZnJvbSBfcHl0ZXN0LnJlc3VsdGxvZyBpbXBvcnQgKAotICAgIGdlbmVyaWNfcGF0aCwKLSAg
ICBSZXN1bHRMb2csCi0gICAgcHl0ZXN0X2NvbmZpZ3VyZSwKLSAgICBweXRlc3RfdW5jb25maWd1
cmUsCi0pCi0KLQotZGVmIHRlc3RfZ2VuZXJpY19wYXRoKHRlc3RkaXIpOgotICAgIGZyb20gX3B5
dGVzdC5tYWluIGltcG9ydCBTZXNzaW9uCiAKLSAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29u
ZmlnKCkKLSAgICBzZXNzaW9uID0gU2Vzc2lvbihjb25maWcpCi0gICAgcDEgPSBOb2RlKCJhIiwg
Y29uZmlnPWNvbmZpZywgc2Vzc2lvbj1zZXNzaW9uLCBub2RlaWQ9ImEiKQotICAgICMgYXNzZXJ0
IHAxLmZzcGF0aCBpcyBOb25lCi0gICAgcDIgPSBOb2RlKCJCIiwgcGFyZW50PXAxKQotICAgIHAz
ID0gTm9kZSgiKCkiLCBwYXJlbnQ9cDIpCi0gICAgaXRlbSA9IEl0ZW0oImMiLCBwYXJlbnQ9cDMp
Ci0KLSAgICByZXMgPSBnZW5lcmljX3BhdGgoaXRlbSkKLSAgICBhc3NlcnQgcmVzID09ICJhLkIo
KS5jIgotCi0gICAgcDAgPSBGU0NvbGxlY3RvcigicHJvai90ZXN0IiwgY29uZmlnPWNvbmZpZywg
c2Vzc2lvbj1zZXNzaW9uKQotICAgIHAxID0gRlNDb2xsZWN0b3IoInByb2ovdGVzdC9hIiwgcGFy
ZW50PXAwKQotICAgIHAyID0gTm9kZSgiQiIsIHBhcmVudD1wMSkKLSAgICBwMyA9IE5vZGUoIigp
IiwgcGFyZW50PXAyKQotICAgIHA0ID0gTm9kZSgiYyIsIHBhcmVudD1wMykKLSAgICBpdGVtID0g
SXRlbSgiWzFdIiwgcGFyZW50PXA0KQoraW1wb3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweXRl
c3QKK2Zyb20gX3B5dGVzdC5yZXN1bHRsb2cgaW1wb3J0IHB5dGVzdF9jb25maWd1cmUKK2Zyb20g
X3B5dGVzdC5yZXN1bHRsb2cgaW1wb3J0IHB5dGVzdF91bmNvbmZpZ3VyZQorZnJvbSBfcHl0ZXN0
LnJlc3VsdGxvZyBpbXBvcnQgUmVzdWx0TG9nCiAKLSAgICByZXMgPSBnZW5lcmljX3BhdGgoaXRl
bSkKLSAgICBhc3NlcnQgcmVzID09ICJ0ZXN0L2E6QigpLmNbMV0iCitweXRlc3RtYXJrID0gcHl0
ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImlnbm9yZTotLXJlc3VsdC1sb2cgaXMgZGVwcmVjYXRl
ZCIpCiAKIAogZGVmIHRlc3Rfd3JpdGVfbG9nX2VudHJ5KCk6CkBAIC0xNDQsNyArMTIyLDcgQEAg
Y2xhc3MgVGVzdFdpdGhGdW5jdGlvbkludGVncmF0aW9uKG9iamVjdCk6CiAgICAgICAgIHRyeToK
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6
Ci0gICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAg
ICAgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8uZnJvbV9jdXJy
ZW50KCkKICAgICAgICAgcmVzbG9nID0gUmVzdWx0TG9nKE5vbmUsIHB5LmlvLlRleHRJTygpKQog
ICAgICAgICByZXNsb2cucHl0ZXN0X2ludGVybmFsZXJyb3IoZXhjaW5mby5nZXRyZXByKHN0eWxl
PXN0eWxlKSkKICAgICAgICAgZW50cnkgPSByZXNsb2cubG9nZmlsZS5nZXR2YWx1ZSgpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcnVubmVyLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X3J1bm5lci5weQppbmRleCBmNTQzMGE5MGRhNTMzZGU5Mzk4ODM0ODFlYzYy
YzkzNDRlYzRjOGQ3Li42OTA2ZWZiOTEwYzg4YjMxNTgxZDAwZWNlNjA2ZGIyZGQ4ZjY0NzYxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcnVubmVyLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXIucHkKQEAgLTEsMTggKzEsMjQgQEAKICMgLSotIGNv
ZGluZzogdXRmLTggLSotCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBwcmludF9mdW5jdGlvbgogCi1pbXBvcnQgX3B5dGVzdC5fY29kZQogaW1wb3J0IGlu
c3BlY3QKIGltcG9ydCBvcwotaW1wb3J0IHB5Ci1pbXBvcnQgcHl0ZXN0CiBpbXBvcnQgc3lzCiBp
bXBvcnQgdHlwZXMKLWZyb20gX3B5dGVzdCBpbXBvcnQgcnVubmVyLCBtYWluLCBvdXRjb21lcwog
CitpbXBvcnQgcHkKKworaW1wb3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweXRlc3QKK2Zyb20g
X3B5dGVzdCBpbXBvcnQgbWFpbgorZnJvbSBfcHl0ZXN0IGltcG9ydCBvdXRjb21lcworZnJvbSBf
cHl0ZXN0IGltcG9ydCByZXBvcnRzCitmcm9tIF9weXRlc3QgaW1wb3J0IHJ1bm5lcgogCi1jbGFz
cyBUZXN0U2V0dXBTdGF0ZShvYmplY3QpOgogCitjbGFzcyBUZXN0U2V0dXBTdGF0ZShvYmplY3Qp
OgogICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBzcyA9IHJ1bm5l
ci5TZXR1cFN0YXRlKCkKICAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiZGVmIHRlc3Rf
ZnVuYygpOiBwYXNzIikKQEAgLTEwMSw3ICsxMDcsNiBAQCBjbGFzcyBUZXN0U2V0dXBTdGF0ZShv
YmplY3QpOgogCiAKIGNsYXNzIEJhc2VGdW5jdGlvbmFsVGVzdHMob2JqZWN0KToKLQogICAgIGRl
ZiB0ZXN0X3Bhc3NmdW5jdGlvbihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcmVwb3J0cyA9IHRl
c3RkaXIucnVuaXRlbSgKICAgICAgICAgICAgICIiIgpAQCAtMjUzLDEwICsyNTgsMTAgQEAgY2xh
c3MgQmFzZUZ1bmN0aW9uYWxUZXN0cyhvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgKQog
ICAgICAgICByZXBzID0gcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9sb2dzdGFydCBweXRl
c3RfcnVudGVzdF9sb2dmaW5pc2giKQotICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgW3gu
X25hbWUgZm9yIHggaW4gcmVwc10KLSAgICAgICAgICAgID09IFsicHl0ZXN0X3J1bnRlc3RfbG9n
c3RhcnQiLCAicHl0ZXN0X3J1bnRlc3RfbG9nZmluaXNoIl0KLSAgICAgICAgKQorICAgICAgICBh
c3NlcnQgW3guX25hbWUgZm9yIHggaW4gcmVwc10gPT0gWworICAgICAgICAgICAgInB5dGVzdF9y
dW50ZXN0X2xvZ3N0YXJ0IiwKKyAgICAgICAgICAgICJweXRlc3RfcnVudGVzdF9sb2dmaW5pc2gi
LAorICAgICAgICBdCiAgICAgICAgIGZvciByZXAgaW4gcmVwczoKICAgICAgICAgICAgIGFzc2Vy
dCByZXAubm9kZWlkID09ICJ0ZXN0X2xvZ3N0YXJ0X2xvZ2ZpbmlzaF9ob29rcy5weTo6dGVzdF9m
dW5jIgogICAgICAgICAgICAgYXNzZXJ0IHJlcC5sb2NhdGlvbiA9PSAoInRlc3RfbG9nc3RhcnRf
bG9nZmluaXNoX2hvb2tzLnB5IiwgMSwgInRlc3RfZnVuYyIpCkBAIC0zOTUsOSArNDAwLDcgQEAg
Y2xhc3MgQmFzZUZ1bmN0aW9uYWxUZXN0cyhvYmplY3QpOgogCiAKIGNsYXNzIFRlc3RFeGVjdXRp
b25Ob25Gb3JrZWQoQmFzZUZ1bmN0aW9uYWxUZXN0cyk6Ci0KICAgICBkZWYgZ2V0cnVubmVyKHNl
bGYpOgotCiAgICAgICAgIGRlZiBmKGl0ZW0pOgogICAgICAgICAgICAgcmV0dXJuIHJ1bm5lci5y
dW50ZXN0cHJvdG9jb2woaXRlbSwgbG9nPUZhbHNlKQogCkBAIC00MzksNyArNDQyLDYgQEAgY2xh
c3MgVGVzdEV4ZWN1dGlvbkZvcmtlZChCYXNlRnVuY3Rpb25hbFRlc3RzKToKIAogCiBjbGFzcyBU
ZXN0U2Vzc2lvblJlcG9ydHMob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2NvbGxlY3RfcmVzdWx0
KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgKICAg
ICAgICAgICAgICIiIgpAQCAtNDYzLDEyICs0NjUsNyBAQCBjbGFzcyBUZXN0U2Vzc2lvblJlcG9y
dHMob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHJlc1sxXS5uYW1lID09ICJUZXN0Q2xhc3MiCiAK
IAotcmVwb3J0dHlwZXMgPSBbCi0gICAgcnVubmVyLkJhc2VSZXBvcnQsCi0gICAgcnVubmVyLlRl
c3RSZXBvcnQsCi0gICAgcnVubmVyLlRlYXJkb3duRXJyb3JSZXBvcnQsCi0gICAgcnVubmVyLkNv
bGxlY3RSZXBvcnQsCi1dCityZXBvcnR0eXBlcyA9IFtyZXBvcnRzLkJhc2VSZXBvcnQsIHJlcG9y
dHMuVGVzdFJlcG9ydCwgcmVwb3J0cy5Db2xsZWN0UmVwb3J0XQogCiAKIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgKQEAgLTQ4NSwxMyArNDgyLDE2IEBAIGRlZiB0ZXN0X3JlcG9ydF9leHRyYV9w
YXJhbWV0ZXJzKHJlcG9ydHR5cGUpOgogCiAKIGRlZiB0ZXN0X2NhbGxpbmZvKCk6Ci0gICAgY2kg
PSBydW5uZXIuQ2FsbEluZm8obGFtYmRhOiAwLCAiMTIzIikKKyAgICBjaSA9IHJ1bm5lci5DYWxs
SW5mby5mcm9tX2NhbGwobGFtYmRhOiAwLCAiMTIzIikKICAgICBhc3NlcnQgY2kud2hlbiA9PSAi
MTIzIgogICAgIGFzc2VydCBjaS5yZXN1bHQgPT0gMAogICAgIGFzc2VydCAicmVzdWx0IiBpbiBy
ZXByKGNpKQotICAgIGNpID0gcnVubmVyLkNhbGxJbmZvKGxhbWJkYTogMCAvIDAsICIxMjMiKQor
ICAgIGFzc2VydCByZXByKGNpKSA9PSAiPENhbGxJbmZvIHdoZW49JzEyMycgcmVzdWx0OiAwPiIK
KworICAgIGNpID0gcnVubmVyLkNhbGxJbmZvLmZyb21fY2FsbChsYW1iZGE6IDAgLyAwLCAiMTIz
IikKICAgICBhc3NlcnQgY2kud2hlbiA9PSAiMTIzIgogICAgIGFzc2VydCBub3QgaGFzYXR0cihj
aSwgInJlc3VsdCIpCisgICAgYXNzZXJ0IHJlcHIoY2kpID09ICI8Q2FsbEluZm8gd2hlbj0nMTIz
JyBleGNlcHRpb246IGRpdmlzaW9uIGJ5IHplcm8+IgogICAgIGFzc2VydCBjaS5leGNpbmZvCiAg
ICAgYXNzZXJ0ICJleGMiIGluIHJlcHIoY2kpCiAKQEAgLTU0NiwyMCArNTQ2LDE2IEBAIGRlZiB0
ZXN0X291dGNvbWVleGNlcHRpb25fcGFzc2VzX2V4Y2VwdF9FeGNlcHRpb24oKToKIAogCiBkZWYg
dGVzdF9weXRlc3RfZXhpdCgpOgotICAgIHRyeToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0
ZXN0LmV4aXQuRXhjZXB0aW9uKSBhcyBleGNpbmZvOgogICAgICAgICBweXRlc3QuZXhpdCgiaGVs
bG8iKQotICAgIGV4Y2VwdCBweXRlc3QuZXhpdC5FeGNlcHRpb246Ci0gICAgICAgIGV4Y2luZm8g
PSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQotICAgICAgICBhc3NlcnQgZXhjaW5mby5l
cnJpc2luc3RhbmNlKEtleWJvYXJkSW50ZXJydXB0KQorICAgIGFzc2VydCBleGNpbmZvLmVycmlz
aW5zdGFuY2UocHl0ZXN0LmV4aXQuRXhjZXB0aW9uKQogCiAKIGRlZiB0ZXN0X3B5dGVzdF9mYWls
KCk6Ci0gICAgdHJ5OgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRp
b24pIGFzIGV4Y2luZm86CiAgICAgICAgIHB5dGVzdC5mYWlsKCJoZWxsbyIpCi0gICAgZXhjZXB0
IHB5dGVzdC5mYWlsLkV4Y2VwdGlvbjoKLSAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUu
RXhjZXB0aW9uSW5mbygpCi0gICAgICAgIHMgPSBleGNpbmZvLmV4Y29ubHkodHJ5c2hvcnQ9VHJ1
ZSkKLSAgICAgICAgYXNzZXJ0IHMuc3RhcnRzd2l0aCgiRmFpbGVkIikKKyAgICBzID0gZXhjaW5m
by5leGNvbmx5KHRyeXNob3J0PVRydWUpCisgICAgYXNzZXJ0IHMuc3RhcnRzd2l0aCgiRmFpbGVk
IikKIAogCiBkZWYgdGVzdF9weXRlc3RfZXhpdF9tc2codGVzdGRpcik6CkBAIC01NzUsNyArNTcx
LDQzIEBAIGRlZiB0ZXN0X3B5dGVzdF9leGl0X21zZyh0ZXN0ZGlyKToKICAgICByZXN1bHQuc3Rk
ZXJyLmZubWF0Y2hfbGluZXMoWyJFeGl0OiBvaCBub2VzIl0pCiAKIAotZGVmIHRlc3RfcHl0ZXN0
X2ZhaWxfbm90cmFjZSh0ZXN0ZGlyKToKK2RlZiB0ZXN0X3B5dGVzdF9leGl0X3JldHVybmNvZGUo
dGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgIHB5dGVz
dC5leGl0KCJzb21lIGV4aXQgbXNnIiwgOTkpCisgICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
ISAqRXhpdDogc29tZSBleGl0IG1zZyAhKiJdKQorICAgICMgQXNzZXJ0IG5vIG91dHB1dCBvbiBz
dGRlcnIsIGV4Y2VwdCBmb3IgdW5yZWxpYWJsZSBSZXNvdXJjZVdhcm5pbmdzLgorICAgICMgKGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTA4OCkKKyAgICBhc3Nl
cnQgWworICAgICAgICB4CisgICAgICAgIGZvciB4IGluIHJlc3VsdC5zdGRlcnIubGluZXMKKyAg
ICAgICAgaWYgbm90IHguc3RhcnRzd2l0aCgiRXhjZXB0aW9uIGlnbm9yZWQgaW46IikKKyAgICAg
ICAgYW5kIG5vdCB4LnN0YXJ0c3dpdGgoIlJlc291cmNlV2FybmluZyIpCisgICAgXSA9PSBbIiJd
CisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gOTkKKworICAgICMgSXQgcHJpbnRzIHRvIHN0ZGVy
ciBhbHNvIGluIGNhc2Ugb2YgZXhpdCBkdXJpbmcgcHl0ZXN0X3Nlc3Npb25zdGFydC4KKyAgICB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QK
KworICAgICAgICBkZWYgcHl0ZXN0X3Nlc3Npb25zdGFydCgpOgorICAgICAgICAgICAgcHl0ZXN0
LmV4aXQoImR1cmluZ19zZXNzaW9uc3RhcnQiLCA5OCkKKyAgICAgICAgIiIiCisgICAgKQorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWyIqISAqRXhpdDogZHVyaW5nX3Nlc3Npb25zdGFydCAhKiJdKQorICAgIGFzc2VydCBy
ZXN1bHQuc3RkZXJyLmxpbmVzID09IFsiRXhpdDogZHVyaW5nX3Nlc3Npb25zdGFydCIsICIiXQor
ICAgIGFzc2VydCByZXN1bHQucmV0ID09IDk4CisKKworZGVmIHRlc3RfcHl0ZXN0X2ZhaWxfbm90
cmFjZV9ydW50ZXN0KHRlc3RkaXIpOgorICAgICIiIlRlc3QgcHl0ZXN0LmZhaWwoLi4uLCBweXRy
YWNlPUZhbHNlKSBkb2VzIG5vdCBzaG93IHRyYWNlYmFja3MgZHVyaW5nIHRlc3QgcnVuLiIiIgog
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgIiIiCiAgICAgICAgIGltcG9ydCBweXRl
c3QKQEAgLTU5MCw2ICs2MjIsMjEgQEAgZGVmIHRlc3RfcHl0ZXN0X2ZhaWxfbm90cmFjZSh0ZXN0
ZGlyKToKICAgICBhc3NlcnQgImRlZiB0ZWFyZG93bl9mdW5jdGlvbiIgbm90IGluIHJlc3VsdC5z
dGRvdXQuc3RyKCkKIAogCitkZWYgdGVzdF9weXRlc3RfZmFpbF9ub3RyYWNlX2NvbGxlY3Rpb24o
dGVzdGRpcik6CisgICAgIiIiVGVzdCBweXRlc3QuZmFpbCguLi4sIHB5dHJhY2U9RmFsc2UpIGRv
ZXMgbm90IHNob3cgdHJhY2ViYWNrcyBkdXJpbmcgY29sbGVjdGlvbi4iIiIKKyAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
IGRlZiBzb21lX2ludGVybmFsX2Z1bmN0aW9uKCk6CisgICAgICAgICAgICBweXRlc3QuZmFpbCgi
aGVsbG8iLCBweXRyYWNlPUZhbHNlKQorICAgICAgICBzb21lX2ludGVybmFsX2Z1bmN0aW9uKCkK
KyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbImhlbGxvIl0pCisgICAgYXNzZXJ0ICJkZWYgc29t
ZV9pbnRlcm5hbF9mdW5jdGlvbigpIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisKIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3RyX3ByZWZpeCIsIFsidSIsICIiXSkKIGRlZiB0ZXN0
X3B5dGVzdF9mYWlsX25vdHJhY2Vfbm9uX2FzY2lpKHRlc3RkaXIsIHN0cl9wcmVmaXgpOgogICAg
ICIiIkZpeCBweXRlc3QuZmFpbCB3aXRoIHB5dHJhY2U9RmFsc2Ugd2l0aCBub24tYXNjaWkgY2hh
cmFjdGVycyAoIzExNzgpLgpAQCAtNTk4LDcgKzY0NSw3IEBAIGRlZiB0ZXN0X3B5dGVzdF9mYWls
X25vdHJhY2Vfbm9uX2FzY2lpKHRlc3RkaXIsIHN0cl9wcmVmaXgpOgogICAgICIiIgogICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgdSIiIgotICAgICAgICAjIGNvZGluZzogdXRmLTgK
KyAgICAgICAgIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KICAgICAgICAgaW1wb3J0IHB5dGVzdAog
CiAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CkBAIC02MTYsNyArNjYzLDcgQEAgZGVmIHRlc3Rf
cHl0ZXN0X2ZhaWxfbm90cmFjZV9ub25fYXNjaWkodGVzdGRpciwgc3RyX3ByZWZpeCk6CiAKIGRl
ZiB0ZXN0X3B5dGVzdF9ub190ZXN0c19jb2xsZWN0ZWRfZXhpdF9zdGF0dXModGVzdGRpcik6CiAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcygiKmNvbGxlY3RlZCAwIGl0ZW1zKiIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKmNvbGxlY3RlZCAwIGl0ZW1zKiJdKQogICAgIGFzc2VydCByZXN1bHQucmV0ID09
IG1haW4uRVhJVF9OT1RFU1RTQ09MTEVDVEVECiAKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBA
IC02MjYsMTMgKzY3MywxMyBAQCBkZWYgdGVzdF9weXRlc3Rfbm9fdGVzdHNfY29sbGVjdGVkX2V4
aXRfc3RhdHVzKHRlc3RkaXIpOgogICAgICIiIgogICAgICkKICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCi0gICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqY29sbGVjdGVk
IDEgaXRlbSoiKQotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKjEgcGFzc2VkKiIp
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmNvbGxlY3RlZCAxIGl0ZW0qIl0p
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQogICAgIGFz
c2VydCByZXN1bHQucmV0ID09IG1haW4uRVhJVF9PSwogCiAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoIi1rIG5vbm1hdGNoIikKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
Iipjb2xsZWN0ZWQgMSBpdGVtKiIpCi0gICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIq
MSBkZXNlbGVjdGVkKiIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmNvbGxl
Y3RlZCAxIGl0ZW0qIl0pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgZGVz
ZWxlY3RlZCoiXSkKICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBtYWluLkVYSVRfTk9URVNUU0NP
TExFQ1RFRAogCiAKQEAgLTY0MCw3ICs2ODcsNyBAQCBkZWYgdGVzdF9leGNlcHRpb25fcHJpbnRp
bmdfc2tpcCgpOgogICAgIHRyeToKICAgICAgICAgcHl0ZXN0LnNraXAoImhlbGxvIikKICAgICBl
eGNlcHQgcHl0ZXN0LnNraXAuRXhjZXB0aW9uOgotICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5f
Y29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhj
ZXB0aW9uSW5mby5mcm9tX2N1cnJlbnQoKQogICAgICAgICBzID0gZXhjaW5mby5leGNvbmx5KHRy
eXNob3J0PVRydWUpCiAgICAgICAgIGFzc2VydCBzLnN0YXJ0c3dpdGgoIlNraXBwZWQiKQogCkBA
IC02NjEsMjEgKzcwOCwxNyBAQCBkZWYgdGVzdF9pbXBvcnRvcnNraXAobW9ua2V5cGF0Y2gpOgog
ICAgICAgICAjIGNoZWNrIHRoYXQgaW1wb3J0b3Jza2lwIHJlcG9ydHMgdGhlIGFjdHVhbCBjYWxs
CiAgICAgICAgICMgaW4gdGhpcyB0ZXN0IHRoZSB0ZXN0X3J1bm5lci5weSBmaWxlCiAgICAgICAg
IGFzc2VydCBwYXRoLnB1cmViYXNlbmFtZSA9PSAidGVzdF9ydW5uZXIiCi0gICAgICAgIHB5dGVz
dC5yYWlzZXMoU3ludGF4RXJyb3IsICJweXRlc3QuaW1wb3J0b3Jza2lwKCd4IHkgeicpIikKLSAg
ICAgICAgcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwgInB5dGVzdC5pbXBvcnRvcnNraXAoJ3g9
eScpIikKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwgcHl0ZXN0LmltcG9ydG9y
c2tpcCwgInggeSB6IikKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwgcHl0ZXN0
LmltcG9ydG9yc2tpcCwgIng9eSIpCiAgICAgICAgIG1vZCA9IHR5cGVzLk1vZHVsZVR5cGUoImhl
bGxvMTIzIikKICAgICAgICAgbW9kLl9fdmVyc2lvbl9fID0gIjEuMyIKICAgICAgICAgbW9ua2V5
cGF0Y2guc2V0aXRlbShzeXMubW9kdWxlcywgImhlbGxvMTIzIiwgbW9kKQotICAgICAgICBweXRl
c3QucmFpc2VzKAotICAgICAgICAgICAgcHl0ZXN0LnNraXAuRXhjZXB0aW9uLAotICAgICAgICAg
ICAgIiIiCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3Quc2tpcC5FeGNlcHRpb24p
OgogICAgICAgICAgICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgiaGVsbG8xMjMiLCBtaW52ZXJzaW9u
PSIxLjMuMSIpCi0gICAgICAgICIiIiwKLSAgICAgICAgKQogICAgICAgICBtb2QyID0gcHl0ZXN0
LmltcG9ydG9yc2tpcCgiaGVsbG8xMjMiLCBtaW52ZXJzaW9uPSIxLjMiKQogICAgICAgICBhc3Nl
cnQgbW9kMiA9PSBtb2QKICAgICBleGNlcHQgcHl0ZXN0LnNraXAuRXhjZXB0aW9uOgotICAgICAg
ICBwcmludChfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKSkKKyAgICAgICAgcHJpbnQoX3B5
dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpKQogICAgICAgICBweXRlc3Qu
ZmFpbCgic3B1cmlvdXMgc2tpcCIpCiAKIApAQCAtNjkxLDEzICs3MzQsMTAgQEAgZGVmIHRlc3Rf
aW1wb3J0b3Jza2lwX2Rldl9tb2R1bGUobW9ua2V5cGF0Y2gpOgogICAgICAgICBtb25rZXlwYXRj
aC5zZXRpdGVtKHN5cy5tb2R1bGVzLCAibW9ja21vZHVsZSIsIG1vZCkKICAgICAgICAgbW9kMiA9
IHB5dGVzdC5pbXBvcnRvcnNraXAoIm1vY2ttb2R1bGUiLCBtaW52ZXJzaW9uPSIwLjEyLjAiKQog
ICAgICAgICBhc3NlcnQgbW9kMiA9PSBtb2QKLSAgICAgICAgcHl0ZXN0LnJhaXNlcygKLSAgICAg
ICAgICAgIHB5dGVzdC5za2lwLkV4Y2VwdGlvbiwKLSAgICAgICAgICAgICIiIgotICAgICAgICAg
ICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgnbW9ja21vZHVsZTEnLCBtaW52ZXJzaW9uPScwLjE0LjAn
KSIiIiwKLSAgICAgICAgKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LnNraXAu
RXhjZXB0aW9uKToKKyAgICAgICAgICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoIm1vY2ttb2R1bGUx
IiwgbWludmVyc2lvbj0iMC4xNC4wIikKICAgICBleGNlcHQgcHl0ZXN0LnNraXAuRXhjZXB0aW9u
OgotICAgICAgICBwcmludChfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKSkKKyAgICAgICAg
cHJpbnQoX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvLmZyb21fY3VycmVudCgpKQogICAgICAg
ICBweXRlc3QuZmFpbCgic3B1cmlvdXMgc2tpcCIpCiAKIApAQCAtNzE2LDYgKzc1NiwyMiBAQCBk
ZWYgdGVzdF9pbXBvcnRvcnNraXBfbW9kdWxlX2xldmVsKHRlc3RkaXIpOgogICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIipjb2xsZWN0ZWQgMCBpdGVtcyAvIDEgc2tpcHBlZCoiXSkK
IAogCitkZWYgdGVzdF9pbXBvcnRvcnNraXBfY3VzdG9tX3JlYXNvbih0ZXN0ZGlyKToKKyAgICAi
IiJtYWtlIHN1cmUgY3VzdG9tIHJlYXNvbnMgYXJlIHVzZWQiIiIKKyAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGZvb2Jh
cmJheiA9IHB5dGVzdC5pbXBvcnRvcnNraXAoImZvb2JhcmJhejIiLCByZWFzb249Imp1c3QgYmVj
YXVzZSIpCisKKyAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICBwYXNzCisgICAg
IiIiCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcmEiKQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipqdXN0IGJlY2F1c2UqIl0pCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmNvbGxlY3RlZCAwIGl0ZW1zIC8gMSBza2lwcGVkKiJd
KQorCisKIGRlZiB0ZXN0X3B5dGVzdF9jbWRsaW5lX21haW4odGVzdGRpcik6CiAgICAgcCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgIiIiCkBAIC04NjksMTQgKzkyNSwxMSBAQCBkZWYg
dGVzdF9jdXJyZW50X3Rlc3RfZW52X3Zhcih0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CiAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3RfaW5wcm9jZXNzKCkKICAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSAwCiAgICAgdGVzdF9pZCA9ICJ0ZXN0X2N1cnJlbnRfdGVzdF9lbnZfdmFyLnB5Ojp0ZXN0
IgotICAgIGFzc2VydCAoCi0gICAgICAgIHB5dGVzdF9jdXJyZW50X3Rlc3RfdmFycwotICAgICAg
ICA9PSBbCi0gICAgICAgICAgICAoInNldHVwIiwgdGVzdF9pZCArICIgKHNldHVwKSIpLAotICAg
ICAgICAgICAgKCJjYWxsIiwgdGVzdF9pZCArICIgKGNhbGwpIiksCi0gICAgICAgICAgICAoInRl
YXJkb3duIiwgdGVzdF9pZCArICIgKHRlYXJkb3duKSIpLAotICAgICAgICBdCi0gICAgKQorICAg
IGFzc2VydCBweXRlc3RfY3VycmVudF90ZXN0X3ZhcnMgPT0gWworICAgICAgICAoInNldHVwIiwg
dGVzdF9pZCArICIgKHNldHVwKSIpLAorICAgICAgICAoImNhbGwiLCB0ZXN0X2lkICsgIiAoY2Fs
bCkiKSwKKyAgICAgICAgKCJ0ZWFyZG93biIsIHRlc3RfaWQgKyAiICh0ZWFyZG93bikiKSwKKyAg
ICBdCiAgICAgYXNzZXJ0ICJQWVRFU1RfQ1VSUkVOVF9URVNUIiBub3QgaW4gb3MuZW52aXJvbgog
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXJfeHVuaXQucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcnVubmVyX3h1bml0LnB5CmluZGV4IDgzMTZhYWZi
ZjU2MWM0OGM1NGUwYTk1Nzk0MDZiNGQ1OTE2YzRhNWYuLjViZTcyOTdmNmM1YWMxNzI4NjZjOGJl
ZmI1YzNkZWEzMTk4MjVlNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9y
dW5uZXJfeHVuaXQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3J1bm5lcl94dW5p
dC5weQpAQCAtMSw4ICsxLDEyIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiCiAgdGVz
dCBjb3JyZWN0IHNldHVwL3RlYXJkb3ducyBhdAogIG1vZHVsZSwgY2xhc3MsIGFuZCBpbnN0YW5j
ZSBsZXZlbAogIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgcHl0ZXN0CiAKIApAQCAtMTY2LDYyICsxNzAs
NiBAQCBkZWYgdGVzdF9tZXRob2Rfc2V0dXBfZmFpbHVyZV9ub190ZWFyZG93bih0ZXN0ZGlyKToK
ICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShmYWlsZWQ9MSwgcGFzc2VkPTEpCiAKIAotZGVmIHRl
c3RfbWV0aG9kX2dlbmVyYXRvcl9zZXR1cCh0ZXN0ZGlyKToKLSAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW5zb3VyY2UoCi0gICAgICAgICIiIgotICAgICAgICBjbGFzcyBUZXN0U2V0dXBU
ZWFyZG93bk9uSW5zdGFuY2Uob2JqZWN0KToKLSAgICAgICAgICAgIGRlZiBzZXR1cF9jbGFzcyhj
bHMpOgotICAgICAgICAgICAgICAgIGNscy5jbGFzc3NldHVwID0gVHJ1ZQotCi0gICAgICAgICAg
ICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYsIG1ldGhvZCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5t
ZXRoc2V0dXAgPSBtZXRob2QKLQotICAgICAgICAgICAgZGVmIHRlc3RfZ2VuZXJhdGUoc2VsZik6
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuY2xhc3NzZXR1cAotICAgICAgICAgICAgICAg
IGFzc2VydCBzZWxmLm1ldGhzZXR1cCA9PSBzZWxmLnRlc3RfZ2VuZXJhdGUKLSAgICAgICAgICAg
ICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlZCwgNQotICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYu
Z2VuZXJhdGVkLCAyCi0KLSAgICAgICAgICAgIGRlZiBnZW5lcmF0ZWQoc2VsZiwgdmFsdWUpOgot
ICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLmNsYXNzc2V0dXAKLSAgICAgICAgICAgICAgICBh
c3NlcnQgc2VsZi5tZXRoc2V0dXAgPT0gc2VsZi50ZXN0X2dlbmVyYXRlCi0gICAgICAgICAgICAg
ICAgYXNzZXJ0IHZhbHVlID09IDUKLSAgICAiIiIKLSAgICApCi0gICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTEsIGZhaWxlZD0xKQotCi0KLWRlZiB0ZXN0X2Z1bmNfZ2VuZXJhdG9yX3Nl
dHVwKHRlc3RkaXIpOgotICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgKLSAg
ICAgICAgIiIiCi0gICAgICAgIGltcG9ydCBzeXMKLQotICAgICAgICBkZWYgc2V0dXBfbW9kdWxl
KG1vZCk6Ci0gICAgICAgICAgICBwcmludCAoInNldHVwX21vZHVsZSIpCi0gICAgICAgICAgICBt
b2QueCA9IFtdCi0KLSAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bik6Ci0gICAgICAgICAg
ICBwcmludCAoInNldHVwX2Z1bmN0aW9uIikKLSAgICAgICAgICAgIHguYXBwZW5kKDEpCi0KLSAg
ICAgICAgZGVmIHRlYXJkb3duX2Z1bmN0aW9uKGZ1bik6Ci0gICAgICAgICAgICBwcmludCAoInRl
YXJkb3duX2Z1bmN0aW9uIikKLSAgICAgICAgICAgIHgucG9wKCkKLQotICAgICAgICBkZWYgdGVz
dF9vbmUoKToKLSAgICAgICAgICAgIGFzc2VydCB4ID09IFsxXQotICAgICAgICAgICAgZGVmIGNo
ZWNrKCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJjaGVjayIpCi0gICAgICAgICAgICAgICAg
c3lzLnN0ZGVyci53cml0ZSgiZVxcbiIpCi0gICAgICAgICAgICAgICAgYXNzZXJ0IHggPT0gWzFd
Ci0gICAgICAgICAgICB5aWVsZCBjaGVjawotICAgICAgICAgICAgYXNzZXJ0IHggPT0gWzFdCi0g
ICAgIiIiCi0gICAgKQotICAgIHJlcCA9IHJlcHJlYy5tYXRjaHJlcG9ydCgidGVzdF9vbmUiLCBu
YW1lcz0icHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IikKLSAgICBhc3NlcnQgcmVwLnBhc3NlZAot
Ci0KIGRlZiB0ZXN0X21ldGhvZF9zZXR1cF91c2VzX2ZyZXNoX2luc3RhbmNlcyh0ZXN0ZGlyKToK
ICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoCiAgICAgICAgICIiIgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Nlc3Npb24ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3Rfc2Vzc2lvbi5weQppbmRleCA0YTU5NDAwOWJhYjUxMmY1MmQ3ODVlOTgz
NGE5OWFhNDc5ZTU5ODRiLi45YWNhZDVkZWFmZDVkODM5MjRlYTU1ZDhkN2E5ZDVjZDY3YjdlMjNl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2Vzc2lvbi5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2Vzc2lvbi5weQpAQCAtMSwxMiArMSwxMyBAQAotZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5j
dGlvbgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBweXRlc3QKLQogZnJvbSBfcHl0
ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAogCiAKIGNsYXNzIFNlc3Npb25U
ZXN0cyhvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfYmFzaWNfdGVzdGl0ZW1fZXZlbnRzKHNlbGYs
IHRlc3RkaXIpOgogICAgICAgICB0ZmlsZSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAg
ICAgICIiIgpAQCAtNjgsMjEgKzY5LDcgQEAgY2xhc3MgU2Vzc2lvblRlc3RzKG9iamVjdCk6CiAg
ICAgICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVwcmVjLmxpc3RvdXRjb21lcygpCiAg
ICAgICAgIGFzc2VydCBsZW4oZmFpbGVkKSA9PSAxCiAgICAgICAgIG91dCA9IGZhaWxlZFswXS5s
b25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQotICAgICAgICBpZiBub3Qgb3V0LmZpbmQoIkRJRCBO
T1QgUkFJU0UiKSAhPSAtMToKLSAgICAgICAgICAgIHByaW50KG91dCkKLSAgICAgICAgICAgIHB5
dGVzdC5mYWlsKCJpbmNvcnJlY3QgcmFpc2VzKCkgb3V0cHV0IikKLQotICAgIGRlZiB0ZXN0X2dl
bmVyYXRvcl95aWVsZHNfTm9uZShzZWxmLCB0ZXN0ZGlyKToKLSAgICAgICAgcmVwcmVjID0gdGVz
dGRpci5pbmxpbmVfcnVuc291cmNlKAotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBkZWYg
dGVzdF8xKCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgTm9uZQotICAgICAgICAiIiIKLSAgICAg
ICAgKQotICAgICAgICBmYWlsdXJlcyA9IHJlcHJlYy5nZXRmYWlsZWRjb2xsZWN0aW9ucygpCi0g
ICAgICAgIG91dCA9IGZhaWx1cmVzWzBdLmxvbmdyZXByLnJlcHJjcmFzaC5tZXNzYWdlCi0gICAg
ICAgIGkgPSBvdXQuZmluZCgiVHlwZUVycm9yIikKLSAgICAgICAgYXNzZXJ0IGkgIT0gLTEKKyAg
ICAgICAgYXNzZXJ0ICJESUQgTk9UIFJBSVNFIiBpbiBvdXQKIAogICAgIGRlZiB0ZXN0X3N5bnRh
eF9lcnJvcl9tb2R1bGUoc2VsZiwgdGVzdGRpcik6CiAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bnNvdXJjZSgidGhpcyBpcyByZWFsbHkgbm90IHB5dGhvbiIpCkBAIC0xMjgsNyAr
MTE1LDggQEAgY2xhc3MgU2Vzc2lvblRlc3RzKG9iamVjdCk6CiAgICAgICAgICAgICBjbGFzcyBU
ZXN0QnJva2VuQ2xhc3Mob2JqZWN0KToKICAgICAgICAgICAgICAgICBkZWYgdGVzdF9leHBsaWNp
dF9iYWRfcmVwcihzZWxmKToKICAgICAgICAgICAgICAgICAgICAgdCA9IEJyb2tlblJlcHIxKCkK
LSAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhFeGNlcHRpb24sICdyZXByKHQpJykK
KyAgICAgICAgICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgbWF0Y2g9
IkknbSBhIGJyb2tlbiByZXByIik6CisgICAgICAgICAgICAgICAgICAgICAgICByZXByKHQpCiAK
ICAgICAgICAgICAgICAgICBkZWYgdGVzdF9pbXBsaWNpdF9iYWRfcmVwcjEoc2VsZik6CiAgICAg
ICAgICAgICAgICAgICAgIHQgPSBCcm9rZW5SZXByMSgpCkBAIC0xMzgsMTQgKzEyNiwzOCBAQCBj
bGFzcyBTZXNzaW9uVGVzdHMob2JqZWN0KToKICAgICAgICAgKQogICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4ocCkKICAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSBy
ZXByZWMubGlzdG91dGNvbWVzKCkKLSAgICAgICAgYXNzZXJ0IGxlbihmYWlsZWQpID09IDEKKyAg
ICAgICAgYXNzZXJ0IChsZW4ocGFzc2VkKSwgbGVuKHNraXBwZWQpLCBsZW4oZmFpbGVkKSkgPT0g
KDEsIDAsIDEpCiAgICAgICAgIG91dCA9IGZhaWxlZFswXS5sb25ncmVwci5yZXByY3Jhc2gubWVz
c2FnZQogICAgICAgICBhc3NlcnQgKAogICAgICAgICAgICAgb3V0LmZpbmQoCiAgICAgICAgICAg
ICAgICAgIiIiW0V4Y2VwdGlvbigiSGEgSGEgZm9vbGVkIHlvdSwgSSdtIGEgYnJva2VuIHJlcHIo
KS4iKSByYWlzZWQgaW4gcmVwcigpXSIiIgogICAgICAgICAgICAgKQogICAgICAgICAgICAgIT0g
LTEKLSAgICAgICAgKSAgIyAnCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2Jyb2tlbl9yZXBy
X3dpdGhfc2hvd2xvY2Fsc192ZXJib3NlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVz
dGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBjbGFzcyBPYmpX
aXRoRXJyb3JJblJlcHI6CisgICAgICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAg
ICAgICAgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICAgICAgICAg
IGRlZiB0ZXN0X3JlcHJfZXJyb3IoKToKKyAgICAgICAgICAgICAgICB4ID0gT2JqV2l0aEVycm9y
SW5SZXByKCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgeCA9PSAidmFsdWUiCisgICAgICAgICIi
IgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLS1zaG93
bG9jYWxzIiwgIi12diIsIHApCisgICAgICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVw
cmVjLmxpc3RvdXRjb21lcygpCisgICAgICAgIGFzc2VydCAobGVuKHBhc3NlZCksIGxlbihza2lw
cGVkKSwgbGVuKGZhaWxlZCkpID09ICgwLCAwLCAxKQorICAgICAgICBlbnRyaWVzID0gZmFpbGVk
WzBdLmxvbmdyZXByLnJlcHJ0cmFjZWJhY2sucmVwcmVudHJpZXMKKyAgICAgICAgYXNzZXJ0IGxl
bihlbnRyaWVzKSA9PSAxCisgICAgICAgIHJlcHJfbG9jYWxzID0gZW50cmllc1swXS5yZXBybG9j
YWxzCisgICAgICAgIGFzc2VydCByZXByX2xvY2Fscy5saW5lcworICAgICAgICBhc3NlcnQgbGVu
KHJlcHJfbG9jYWxzLmxpbmVzKSA9PSAxCisgICAgICAgIGFzc2VydCByZXByX2xvY2Fscy5saW5l
c1swXS5zdGFydHN3aXRoKAorICAgICAgICAgICAgJ3ggICAgICAgICAgPSA8W05vdEltcGxlbWVu
dGVkRXJyb3IoIiIpIHJhaXNlZCBpbiByZXByKCldIE9ialdpdGhFcnJvckluUmVwcicKKyAgICAg
ICAgKQogCiAgICAgZGVmIHRlc3Rfc2tpcF9maWxlX2J5X2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIp
OgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCkBAIC0xNjAsNyArMTcyLDcgQEAgY2xhc3Mg
U2Vzc2lvblRlc3RzKG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3RkaXIudG1wZGlyKQotICAgICAgICBl
eGNlcHQgcHl0ZXN0LnNraXAuRXhjZXB0aW9uOgorICAgICAgICBleGNlcHQgcHl0ZXN0LnNraXAu
RXhjZXB0aW9uOiAgIyBwcmFnbWE6IG5vIGNvdmVyCiAgICAgICAgICAgICBweXRlc3QuZmFpbCgi
d3Jvbmcgc2tpcHBlZCBjYXVnaHQiKQogICAgICAgICByZXBvcnRzID0gcmVwcmVjLmdldHJlcG9y
dHMoInB5dGVzdF9jb2xsZWN0cmVwb3J0IikKICAgICAgICAgYXNzZXJ0IGxlbihyZXBvcnRzKSA9
PSAxCkBAIC0xNjgsNyArMTgwLDYgQEAgY2xhc3MgU2Vzc2lvblRlc3RzKG9iamVjdCk6CiAKIAog
Y2xhc3MgVGVzdE5ld1Nlc3Npb24oU2Vzc2lvblRlc3RzKToKLQogICAgIGRlZiB0ZXN0X29yZGVy
X29mX2V4ZWN1dGlvbihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuc291cmNlKAogICAgICAgICAgICAgIiIiCkBAIC0xOTQsNyArMjA1LDYgQEAgY2xh
c3MgVGVzdE5ld1Nlc3Npb24oU2Vzc2lvblRlc3RzKToKICAgICAgICAgcGFzc2VkLCBza2lwcGVk
LCBmYWlsZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCiAgICAgICAgIGFzc2VydCBmYWlsZWQg
PT0gc2tpcHBlZCA9PSAwCiAgICAgICAgIGFzc2VydCBwYXNzZWQgPT0gNwotICAgICAgICAjIGFs
c28gdGVzdCBsaXN0bmFtZXMoKSBoZXJlIC4uLgogCiAgICAgZGVmIHRlc3RfY29sbGVjdF9vbmx5
X3dpdGhfdmFyaW91c19zaXR1YXRpb25zKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICBwID0gdGVz
dGRpci5tYWtlcHlmaWxlKApAQCAtMjIwLDcgKzIzMCw3IEBAIGNsYXNzIFRlc3ROZXdTZXNzaW9u
KFNlc3Npb25UZXN0cyk6CiAgICAgICAgIHN0YXJ0ZWQgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVz
dF9jb2xsZWN0c3RhcnQiKQogICAgICAgICBmaW5pc2hlZCA9IHJlcHJlYy5nZXRyZXBvcnRzKCJw
eXRlc3RfY29sbGVjdHJlcG9ydCIpCiAgICAgICAgIGFzc2VydCBsZW4oc3RhcnRlZCkgPT0gbGVu
KGZpbmlzaGVkKQotICAgICAgICBhc3NlcnQgbGVuKHN0YXJ0ZWQpID09IDcgICMgWFhYIGV4dHJh
IFRvcENvbGxlY3RvcgorICAgICAgICBhc3NlcnQgbGVuKHN0YXJ0ZWQpID09IDgKICAgICAgICAg
Y29sZmFpbCA9IFt4IGZvciB4IGluIGZpbmlzaGVkIGlmIHguZmFpbGVkXQogICAgICAgICBhc3Nl
cnQgbGVuKGNvbGZhaWwpID09IDEKIApAQCAtMjQyLDEyICsyNTIsOCBAQCBjbGFzcyBUZXN0TmV3
U2Vzc2lvbihTZXNzaW9uVGVzdHMpOgogCiAKIGRlZiB0ZXN0X3BsdWdpbl9zcGVjaWZ5KHRlc3Rk
aXIpOgotICAgIHB5dGVzdC5yYWlzZXMoCi0gICAgICAgIEltcG9ydEVycm9yLAotICAgICAgICAi
IiIKLSAgICAgICAgICAgIHRlc3RkaXIucGFyc2Vjb25maWcoIi1wIiwgIm5xd2VvdGV4aXN0ZW50
IikKLSAgICAiIiIsCi0gICAgKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvcik6
CisgICAgICAgIHRlc3RkaXIucGFyc2Vjb25maWcoIi1wIiwgIm5xd2VvdGV4aXN0ZW50IikKICAg
ICAjIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IsCiAgICAgIyAgICAiY29uZmlnLmRvX2NvbmZp
Z3VyZShjb25maWcpIgogICAgICMgKQpAQCAtMjcxLDIwICsyNzcsNDUgQEAgZGVmIHRlc3RfZXhj
bHVkZSh0ZXN0ZGlyKToKICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNz
ZWQqIl0pCiAKIAorZGVmIHRlc3RfZXhjbHVkZV9nbG9iKHRlc3RkaXIpOgorICAgIGhlbGxvZGly
ID0gdGVzdGRpci5ta2RpcigiaGVsbG8iKQorICAgIGhlbGxvZGlyLmpvaW4oInRlc3RfaGVsbG8u
cHkiKS53cml0ZSgieCB5IHN5bnRheGVycm9yIikKKyAgICBoZWxsbzJkaXIgPSB0ZXN0ZGlyLm1r
ZGlyKCJoZWxsbzIiKQorICAgIGhlbGxvMmRpci5qb2luKCJ0ZXN0X2hlbGxvMi5weSIpLndyaXRl
KCJ4IHkgc3ludGF4ZXJyb3IiKQorICAgIGhlbGxvM2RpciA9IHRlc3RkaXIubWtkaXIoImhhbGxv
MyIpCisgICAgaGVsbG8zZGlyLmpvaW4oInRlc3RfaGVsbG8zLnB5Iikud3JpdGUoInggeSBzeW50
YXhlcnJvciIpCisgICAgc3ViZGlyID0gdGVzdGRpci5ta2Rpcigic3ViIikKKyAgICBzdWJkaXIu
am9pbigidGVzdF9oZWxsbzQucHkiKS53cml0ZSgieCB5IHN5bnRheGVycm9yIikKKyAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUodGVzdF9vaz0iZGVmIHRlc3RfcGFzcygpOiBwYXNzIikKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1pZ25vcmUtZ2xvYj0qaFtlYV1sbG8qIikKKyAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsi
KjEgcGFzc2VkKiJdKQorCisKIGRlZiB0ZXN0X2Rlc2VsZWN0KHRlc3RkaXIpOgogICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKICAgICAgICAgdGVzdF9hPSIiIgogICAgICAgICBpbXBvcnQgcHl0ZXN0
CisKICAgICAgICAgZGVmIHRlc3RfYTEoKTogcGFzcworCiAgICAgICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgnYicsIHJhbmdlKDMpKQogICAgICAgICBkZWYgdGVzdF9hMihiKTogcGFzcwor
CisgICAgICAgIGNsYXNzIFRlc3RDbGFzczoKKyAgICAgICAgICAgIGRlZiB0ZXN0X2MxKHNlbGYp
OiBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2MyKHNlbGYpOiBwYXNzCiAgICAgIiIiCiAg
ICAgKQogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KAotICAgICAgICAiLXYiLCAiLS1k
ZXNlbGVjdD10ZXN0X2EucHk6OnRlc3RfYTJbMV0iLCAiLS1kZXNlbGVjdD10ZXN0X2EucHk6OnRl
c3RfYTJbMl0iCisgICAgICAgICItdiIsCisgICAgICAgICItLWRlc2VsZWN0PXRlc3RfYS5weTo6
dGVzdF9hMlsxXSIsCisgICAgICAgICItLWRlc2VsZWN0PXRlc3RfYS5weTo6dGVzdF9hMlsyXSIs
CisgICAgICAgICItLWRlc2VsZWN0PXRlc3RfYS5weTo6VGVzdENsYXNzOjp0ZXN0X2MxIiwKICAg
ICApCiAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAotICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbIioyIHBhc3NlZCwgMiBkZXNlbGVjdGVkKiJdKQorICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCwgMyBkZXNlbGVjdGVkKiJdKQogICAgIGZvciBsaW5l
IGluIHJlc3VsdC5zdGRvdXQubGluZXM6CiAgICAgICAgIGFzc2VydCBub3QgbGluZS5zdGFydHN3
aXRoKCgidGVzdF9hLnB5Ojp0ZXN0X2EyWzFdIiwgInRlc3RfYS5weTo6dGVzdF9hMlsyXSIpKQog
CkBAIC0zMjQsNyArMzU1LDExIEBAIGRlZiB0ZXN0X3Jvb3RkaXJfb3B0aW9uX2FyZyh0ZXN0ZGly
LCBtb25rZXlwYXRjaCwgcGF0aCk6CiAKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LS1yb290ZGlyPXt9Ii5mb3JtYXQocGF0aCkpCiAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKAotICAgICAgICBbIipyb290ZGlyOiB7fS9yb290LCBpbmlmaWxlOioiLmZvcm1hdCh0ZXN0
ZGlyLnRtcGRpciksICIqMSBwYXNzZWQqIl0KKyAgICAgICAgWworICAgICAgICAgICAgIipyb290
ZGlyOiB7fS9yb290Ii5mb3JtYXQodGVzdGRpci50bXBkaXIpLAorICAgICAgICAgICAgInJvb3Qv
dGVzdF9yb290ZGlyX29wdGlvbl9hcmcucHkgKiIsCisgICAgICAgICAgICAiKjEgcGFzc2VkKiIs
CisgICAgICAgIF0KICAgICApCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X3NraXBwaW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3NraXBwaW5nLnB5Cmlu
ZGV4IDVkOTcwZTJmZWEwYWY1ZTM2NjdlODNmOTdhNjBhNTI1NTczNDQxMGUuLjc4MzQ5NzExMjVh
MTNhYmRjZDQ1ZTRlN2RmYzZlZjgzY2YxZGJlNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9za2lwcGluZy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2tp
cHBpbmcucHkKQEAgLTEsMTMgKzEsMTcgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBweXRlc3QKKyMgLSot
IGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBwcmludF9mdW5jdGlvbgorCiBpbXBvcnQgc3lzCiAKLWZyb20gX3B5dGVzdC5za2lwcGluZyBp
bXBvcnQgTWFya0V2YWx1YXRvciwgZm9sZGVkX3NraXBzLCBweXRlc3RfcnVudGVzdF9zZXR1cAor
aW1wb3J0IHB5dGVzdAogZnJvbSBfcHl0ZXN0LnJ1bm5lciBpbXBvcnQgcnVudGVzdHByb3RvY29s
Citmcm9tIF9weXRlc3Quc2tpcHBpbmcgaW1wb3J0IE1hcmtFdmFsdWF0b3IKK2Zyb20gX3B5dGVz
dC5za2lwcGluZyBpbXBvcnQgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAKIAogCiBjbGFzcyBUZXN0RXZh
bHVhdG9yKG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9ub19tYXJrZXIoc2VsZiwgdGVzdGRpcik6
CiAgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIp
CiAgICAgICAgIGV2YWxza2lwaWYgPSBNYXJrRXZhbHVhdG9yKGl0ZW0sICJza2lwaWYiKQpAQCAt
MTI2LDEwICsxMzAsMTMgQEAgY2xhc3MgVGVzdEV2YWx1YXRvcihvYmplY3QpOgogICAgICAgICAp
CiAgICAgICAgIGV2ID0gTWFya0V2YWx1YXRvcihpdGVtLCAic2tpcGlmIikKICAgICAgICAgZXhj
ID0gcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24sIGV2LmlzdHJ1ZSkKLSAgICAg
ICAgYXNzZXJ0ICIiIkZhaWxlZDogeW91IG5lZWQgdG8gc3BlY2lmeSByZWFzb249U1RSSU5HIHdo
ZW4gdXNpbmcgYm9vbGVhbnMgYXMgY29uZGl0aW9ucy4iIiIgaW4gZXhjLnZhbHVlLm1zZworICAg
ICAgICBhc3NlcnQgKAorICAgICAgICAgICAgIiIiRmFpbGVkOiB5b3UgbmVlZCB0byBzcGVjaWZ5
IHJlYXNvbj1TVFJJTkcgd2hlbiB1c2luZyBib29sZWFucyBhcyBjb25kaXRpb25zLiIiIgorICAg
ICAgICAgICAgaW4gZXhjLnZhbHVlLm1zZworICAgICAgICApCiAKICAgICBkZWYgdGVzdF9za2lw
aWZfY2xhc3Moc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIGl0ZW0sID0gdGVzdGRpci5nZXRpdGVt
cygKKyAgICAgICAgKGl0ZW0sKSA9IHRlc3RkaXIuZ2V0aXRlbXMoCiAgICAgICAgICAgICAiIiIK
ICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKICAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhv
YmplY3QpOgpAQCAtMTQ2LDcgKzE1Myw2IEBAIGNsYXNzIFRlc3RFdmFsdWF0b3Iob2JqZWN0KToK
IAogCiBjbGFzcyBUZXN0WEZhaWwob2JqZWN0KToKLQogICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgic3RyaWN0IiwgW1RydWUsIEZhbHNlXSkKICAgICBkZWYgdGVzdF94ZmFpbF9zaW1wbGUo
c2VsZiwgdGVzdGRpciwgc3RyaWN0KToKICAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgK
QEAgLTMyNSw3ICszMzEsNyBAQCBjbGFzcyBUZXN0WEZhaWwob2JqZWN0KToKICAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgIi1yeCIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbIipYRkFJTCp0ZXN0X3RoaXMqIiwgIipyZWFzb246KmhlbGxvKiJdKQog
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLS1ydW54ZmFpbCIpCi0gICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKjEgcGFzcyoiKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzKiJdKQogCiAgICAgZGVmIHRlc3RfeGZh
aWxfaW1wZXJhdGl2ZV9pbl9zZXR1cF9mdW5jdGlvbihzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAgLTQ3MSw3ICs0NzcsNyBAQCBjbGFzcyBUZXN0WEZh
aWwob2JqZWN0KToKICAgICAgICAgICAgICUgc3RyaWN0CiAgICAgICAgICkKICAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgIi1yeFgiKQotICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoIioxIHBhc3NlZCoiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAK
IAogICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3RyaWN0IiwgW1RydWUsIEZhbHNlXSkK
QEAgLTQ4Nyw3ICs0OTMsNyBAQCBjbGFzcyBUZXN0WEZhaWwob2JqZWN0KToKICAgICAgICAgICAg
ICUgc3RyaWN0CiAgICAgICAgICkKICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
cCwgIi1yeFgiKQotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIioxIHBhc3Nl
ZCoiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0p
CiAgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKIAogICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgic3RyaWN0X3ZhbCIsIFsidHJ1ZSIsICJmYWxzZSJdKQpAQCAtNTA5LDEyICs1MTUs
MTEgQEAgY2xhc3MgVGVzdFhGYWlsKG9iamVjdCk6CiAgICAgICAgICkKICAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QocCwgIi1yeFgiKQogICAgICAgICBzdHJpY3QgPSBzdHJpY3Rf
dmFsID09ICJ0cnVlIgotICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIioxIGZh
aWxlZCoiIGlmIHN0cmljdCBlbHNlICIqMSB4cGFzc2VkKiIpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIioxIGZhaWxlZCoiIGlmIHN0cmljdCBlbHNlICIqMSB4cGFzc2Vk
KiJdKQogICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAoMSBpZiBzdHJpY3QgZWxzZSAwKQog
CiAKIGNsYXNzIFRlc3RYRmFpbHdpdGhTZXR1cFRlYXJkb3duKG9iamVjdCk6Ci0KICAgICBkZWYg
dGVzdF9mYWlsaW5nX3NldHVwX2lzc3VlOShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC01NDcsNyArNTUyLDYgQEAgY2xhc3Mg
VGVzdFhGYWlsd2l0aFNldHVwVGVhcmRvd24ob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0U2tpcChv
YmplY3QpOgotCiAgICAgZGVmIHRlc3Rfc2tpcF9jbGFzcyhzZWxmLCB0ZXN0ZGlyKToKICAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC02NDUsNyArNjQ5LDYg
QEAgY2xhc3MgVGVzdFNraXAob2JqZWN0KToKIAogCiBjbGFzcyBUZXN0U2tpcGlmKG9iamVjdCk6
Ci0KICAgICBkZWYgdGVzdF9za2lwaWZfY29uZGl0aW9uYWwoc2VsZiwgdGVzdGRpcik6CiAgICAg
ICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oCiAgICAgICAgICAgICAiIiIKQEAgLTc0NiwzOSAr
NzQ5LDYgQEAgZGVmIHRlc3Rfc2tpcGlmX2NsYXNzKHRlc3RkaXIpOgogICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIioyIHNraXBwZWQqIl0pCiAKIAotZGVmIHRlc3Rfc2tpcF9yZWFz
b25zX2ZvbGRpbmcoKToKLSAgICBwYXRoID0gInh5eiIKLSAgICBsaW5lbm8gPSAzCi0gICAgbWVz
c2FnZSA9ICJqdXN0c28iCi0gICAgbG9uZ3JlcHIgPSAocGF0aCwgbGluZW5vLCBtZXNzYWdlKQot
Ci0gICAgY2xhc3MgWChvYmplY3QpOgotICAgICAgICBwYXNzCi0KLSAgICBldjEgPSBYKCkKLSAg
ICBldjEud2hlbiA9ICJleGVjdXRlIgotICAgIGV2MS5za2lwcGVkID0gVHJ1ZQotICAgIGV2MS5s
b25ncmVwciA9IGxvbmdyZXByCi0KLSAgICBldjIgPSBYKCkKLSAgICBldjIud2hlbiA9ICJleGVj
dXRlIgotICAgIGV2Mi5sb25ncmVwciA9IGxvbmdyZXByCi0gICAgZXYyLnNraXBwZWQgPSBUcnVl
Ci0KLSAgICAjIGV2MyBtaWdodCBiZSBhIGNvbGxlY3Rpb24gcmVwb3J0Ci0gICAgZXYzID0gWCgp
Ci0gICAgZXYzLmxvbmdyZXByID0gbG9uZ3JlcHIKLSAgICBldjMuc2tpcHBlZCA9IFRydWUKLQot
ICAgIHZhbHVlcyA9IGZvbGRlZF9za2lwcyhbZXYxLCBldjIsIGV2M10pCi0gICAgYXNzZXJ0IGxl
bih2YWx1ZXMpID09IDEKLSAgICBudW0sIGZzcGF0aCwgbGluZW5vLCByZWFzb24gPSB2YWx1ZXNb
MF0KLSAgICBhc3NlcnQgbnVtID09IDMKLSAgICBhc3NlcnQgZnNwYXRoID09IHBhdGgKLSAgICBh
c3NlcnQgbGluZW5vID09IGxpbmVubwotICAgIGFzc2VydCByZWFzb24gPT0gbWVzc2FnZQotCi0K
IGRlZiB0ZXN0X3NraXBwZWRfcmVhc29uc19mdW5jdGlvbmFsKHRlc3RkaXIpOgogICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgKICAgICAgICAgdGVzdF9vbmU9IiIiCkBAIC04NzIsMTEgKzg0MiwyMiBA
QCBkZWYgdGVzdF9yZXBvcnRjaGFyc19hbGwodGVzdGRpcik6CiAgICAgICAgICAgICBwYXNzCiAg
ICAgICAgIGRlZiB0ZXN0XzQoKToKICAgICAgICAgICAgIHB5dGVzdC5za2lwKCJmb3VyIikKKyAg
ICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBmYWlsKCk6CisgICAgICAgICAgICBh
c3NlcnQgMAorICAgICAgICBkZWYgdGVzdF81KGZhaWwpOgorICAgICAgICAgICAgcGFzcwogICAg
ICIiIgogICAgICkKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJhIikKICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgIFsiRkFJTCp0ZXN0XzEqIiwgIlNL
SVAqZm91cioiLCAiWEZBSUwqdGVzdF8yKiIsICJYUEFTUyp0ZXN0XzMqIl0KKyAgICAgICAgWwor
ICAgICAgICAgICAgIlNLSVAqZm91cioiLAorICAgICAgICAgICAgIlhGQUlMKnRlc3RfMioiLAor
ICAgICAgICAgICAgIlhQQVNTKnRlc3RfMyoiLAorICAgICAgICAgICAgIkVSUk9SKnRlc3RfNSoi
LAorICAgICAgICAgICAgIkZBSUwqdGVzdF8xKiIsCisgICAgICAgIF0KICAgICApCiAKIApAQCAt
ODk1LDcgKzg3Niw2IEBAIGRlZiB0ZXN0X3JlcG9ydGNoYXJzX2FsbF9lcnJvcih0ZXN0ZGlyKToK
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJFUlJPUip0ZXN0X2ZvbyoiXSkKIAog
Ci1AcHl0ZXN0Lm1hcmsueGZhaWwoImhhc2F0dHIoc3lzLCAncHlweV92ZXJzaW9uX2luZm8nKSIp
CiBkZWYgdGVzdF9lcnJvcnNfaW5feGZhaWxfc2tpcF9leHByZXNzaW9ucyh0ZXN0ZGlyKToKICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgpAQCAtOTE2LDYgKzg5NiwxMCBAQCBk
ZWYgdGVzdF9lcnJvcnNfaW5feGZhaWxfc2tpcF9leHByZXNzaW9ucyh0ZXN0ZGlyKToKICAgICBp
ZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgiamF2YSIpOgogICAgICAgICAjIFhYWCByZXBvcnQg
dGhpcyB0byBqYXZhCiAgICAgICAgIG1hcmtsaW5lID0gIioiICsgbWFya2xpbmVbODpdCisgICAg
ZWxpZiBoYXNhdHRyKHN5cywgInB5cHlfdmVyc2lvbl9pbmZvIikgYW5kIHN5cy5weXB5X3ZlcnNp
b25faW5mbyA8ICg2LCk6CisgICAgICAgIG1hcmtsaW5lID0gbWFya2xpbmVbNTpdCisgICAgZWxp
ZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA4KSBvciBoYXNhdHRyKHN5cywgInB5cHlfdmVyc2lv
bl9pbmZvIik6CisgICAgICAgIG1hcmtsaW5lID0gbWFya2xpbmVbNDpdCiAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAogICAgICAgICBbCiAgICAgICAgICAgICAiKkVSUk9SKnRlc3Rf
bmFtZWVycm9yKiIsCkBAIC0xMDIzLDcgKzEwMDcsNiBAQCBkZWYgdGVzdF9pbXBlcmF0aXZlc2tp
cF9vbl94ZmFpbF90ZXN0KHRlc3RkaXIpOgogCiAKIGNsYXNzIFRlc3RCb29sZWFuQ29uZGl0aW9u
KG9iamVjdCk6Ci0KICAgICBkZWYgdGVzdF9za2lwaWYoc2VsZiwgdGVzdGRpcik6CiAgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgpAQCAtMTExMyw3ICsxMDk2LDkg
QEAgZGVmIHRlc3RfbW9kdWxlX2xldmVsX3NraXBfZXJyb3IodGVzdGRpcik6CiAgICAgIiIiCiAg
ICAgKQogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoIipVc2luZyBweXRlc3Quc2tpcCBvdXRzaWRlIG9mIGEgdGVzdCBpcyBu
b3QgYWxsb3dlZCoiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAg
WyIqVXNpbmcgcHl0ZXN0LnNraXAgb3V0c2lkZSBvZiBhIHRlc3QgaXMgbm90IGFsbG93ZWQqIl0K
KyAgICApCiAKIAogZGVmIHRlc3RfbW9kdWxlX2xldmVsX3NraXBfd2l0aF9hbGxvd19tb2R1bGVf
bGV2ZWwodGVzdGRpcik6CkBAIC0xMTMwLDcgKzExMTUsNyBAQCBkZWYgdGVzdF9tb2R1bGVfbGV2
ZWxfc2tpcF93aXRoX2FsbG93X21vZHVsZV9sZXZlbCh0ZXN0ZGlyKToKICAgICAiIiIKICAgICAp
CiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1yeHMiKQotICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcygiKlNLSVAqc2tpcF9tb2R1bGVfbGV2ZWwiKQorICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIipTS0lQKnNraXBfbW9kdWxlX2xldmVsIl0pCiAKIAogZGVm
IHRlc3RfaW52YWxpZF9za2lwX2tleXdvcmRfcGFyYW1ldGVyKHRlc3RkaXIpOgpAQCAtMTE0Nyw3
ICsxMTMyLDcgQEAgZGVmIHRlc3RfaW52YWxpZF9za2lwX2tleXdvcmRfcGFyYW1ldGVyKHRlc3Rk
aXIpOgogICAgICIiIgogICAgICkKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0g
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqVHlwZUVycm9yOipbJ3Vua25vd24nXSoi
KQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIipUeXBlRXJyb3I6KlsndW5rbm93
biddKiJdKQogCiAKIGRlZiB0ZXN0X21hcmtfeGZhaWxfaXRlbSh0ZXN0ZGlyKToKQEAgLTExODks
NiArMTE3NCwxNCBAQCBkZWYgdGVzdF9zdW1tYXJ5X2xpc3RfYWZ0ZXJfZXJyb3JzKHRlc3RkaXIp
OgogICAgICAgICBbCiAgICAgICAgICAgICAiPSogRkFJTFVSRVMgKj0iLAogICAgICAgICAgICAg
Iio9IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvID0qIiwKLSAgICAgICAgICAgICJGQUlMIHRlc3Rf
c3VtbWFyeV9saXN0X2FmdGVyX2Vycm9ycy5weTo6dGVzdF9mYWlsIiwKKyAgICAgICAgICAgICJG
QUlMRUQgdGVzdF9zdW1tYXJ5X2xpc3RfYWZ0ZXJfZXJyb3JzLnB5Ojp0ZXN0X2ZhaWwgLSBhc3Nl
cnQgMCIsCiAgICAgICAgIF0KICAgICApCisKKworZGVmIHRlc3RfaW1wb3J0b3Jza2lwKCk6Cisg
ICAgd2l0aCBweXRlc3QucmFpc2VzKAorICAgICAgICBweXRlc3Quc2tpcC5FeGNlcHRpb24sCisg
ICAgICAgIG1hdGNoPSJeY291bGQgbm90IGltcG9ydCAnZG9lc25vdGV4aXN0JzogTm8gbW9kdWxl
IG5hbWVkIC4qIiwKKyAgICApOgorICAgICAgICBweXRlc3QuaW1wb3J0b3Jza2lwKCJkb2Vzbm90
ZXhpc3QiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3N0ZXB3aXNlLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3N0ZXB3aXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZDEx
OTE3YWRlOGM0YmY4MTEzYjYxNjA2OGRiZTEwNjdhYjQ5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc3RlcHdpc2UucHkKQEAgLTAsMCArMSwyMjQgQEAKKyMg
LSotIGNvZGluZzogdXRmLTggLSotCitpbXBvcnQgc3lzCisKK2ltcG9ydCBweXRlc3QKKworCitA
cHl0ZXN0LmZpeHR1cmUKK2RlZiBzdGVwd2lzZV90ZXN0ZGlyKHRlc3RkaXIpOgorICAgICMgUmF0
aGVyIHRoYW4gaGF2aW5nIHRvIG1vZGlmeSBvdXIgdGVzdGZpbGUgYmV0d2VlbiB0ZXN0cywgd2Ug
aW50cm9kdWNlCisgICAgIyBhIGZsYWcgZm9yIHdldGhlciBvciBub3QgdGhlIHNlY29uZCB0ZXN0
IHNob3VsZCBmYWlsLgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAiIiIKK2Rl
ZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAo
J2dlbmVyYWwnKQorICAgIGdyb3VwLmFkZG9wdGlvbignLS1mYWlsJywgYWN0aW9uPSdzdG9yZV90
cnVlJywgZGVzdD0nZmFpbCcpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLWZhaWwtbGFzdCcsIGFj
dGlvbj0nc3RvcmVfdHJ1ZScsIGRlc3Q9J2ZhaWxfbGFzdCcpCisiIiIKKyAgICApCisKKyAgICAj
IENyZWF0ZSBhIHNpbXBsZSB0ZXN0IHN1aXRlLgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgdGVzdF9hPSIiIgorZGVmIHRlc3Rfc3VjY2Vzc19iZWZvcmVfZmFpbCgpOgorICAgIGFz
c2VydCAxCisKK2RlZiB0ZXN0X2ZhaWxfb25fZmxhZyhyZXF1ZXN0KToKKyAgICBhc3NlcnQgbm90
IHJlcXVlc3QuY29uZmlnLmdldHZhbHVlKCdmYWlsJykKKworZGVmIHRlc3Rfc3VjY2Vzc19hZnRl
cl9mYWlsKCk6CisgICAgYXNzZXJ0IDEKKworZGVmIHRlc3RfZmFpbF9sYXN0X29uX2ZsYWcocmVx
dWVzdCk6CisgICAgYXNzZXJ0IG5vdCByZXF1ZXN0LmNvbmZpZy5nZXR2YWx1ZSgnZmFpbF9sYXN0
JykKKworZGVmIHRlc3Rfc3VjY2Vzc19hZnRlcl9sYXN0X2ZhaWwoKToKKyAgICBhc3NlcnQgMQor
IiIiCisgICAgKQorCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICB0ZXN0X2I9IiIi
CitkZWYgdGVzdF9zdWNjZXNzKCk6CisgICAgYXNzZXJ0IDEKKyIiIgorICAgICkKKworICAgICMg
Y3VzdG9taXplIGNhY2hlIGRpcmVjdG9yeSBzbyB3ZSBkb24ndCB1c2UgdGhlIHRveCdzIGNhY2hl
IGRpcmVjdG9yeSwgd2hpY2ggbWFrZXMgdGVzdHMgaW4gdGhpcyBtb2R1bGUgZmxha3kKKyAgICB0
ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBj
YWNoZV9kaXIgPSAuY2FjaGUKKyAgICAiIiIKKyAgICApCisKKyAgICByZXR1cm4gdGVzdGRpcgor
CisKK0BweXRlc3QuZml4dHVyZQorZGVmIGVycm9yX3Rlc3RkaXIodGVzdGRpcik6CisgICAgdGVz
dGRpci5tYWtlcHlmaWxlKAorICAgICAgICB0ZXN0X2E9IiIiCitkZWYgdGVzdF9lcnJvcihub25l
eGlzdGluZ19maXh0dXJlKToKKyAgICBhc3NlcnQgMQorCitkZWYgdGVzdF9zdWNjZXNzX2FmdGVy
X2ZhaWwoKToKKyAgICBhc3NlcnQgMQorIiIiCisgICAgKQorCisgICAgcmV0dXJuIHRlc3RkaXIK
KworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBicm9rZW5fdGVzdGRpcih0ZXN0ZGlyKToKKyAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgIHdvcmtpbmdfdGVzdGZpbGU9ImRlZiB0ZXN0X3By
b3BlcigpOiBhc3NlcnQgMSIsIGJyb2tlbl90ZXN0ZmlsZT0iZm9vYmFyIgorICAgICkKKyAgICBy
ZXR1cm4gdGVzdGRpcgorCisKK2RlZiB0ZXN0X3J1bl93aXRob3V0X3N0ZXB3aXNlKHN0ZXB3aXNl
X3Rlc3RkaXIpOgorICAgIHJlc3VsdCA9IHN0ZXB3aXNlX3Rlc3RkaXIucnVucHl0ZXN0KCItdiIs
ICItLXN0cmljdC1tYXJrZXJzIiwgIi0tZmFpbCIpCisKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqdGVzdF9zdWNjZXNzX2JlZm9yZV9mYWlsIFBBU1NFRCoiXSkKKyAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdF9mYWlsX29uX2ZsYWcgRkFJTEVEKiJdKQor
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip0ZXN0X3N1Y2Nlc3NfYWZ0ZXJfZmFp
bCBQQVNTRUQqIl0pCisKKworZGVmIHRlc3RfZmFpbF9hbmRfY29udGludWVfd2l0aF9zdGVwd2lz
ZShzdGVwd2lzZV90ZXN0ZGlyKToKKyAgICAjIFJ1biB0aGUgdGVzdHMgd2l0aCBhIGZhaWxpbmcg
c2Vjb25kIHRlc3QuCisgICAgcmVzdWx0ID0gc3RlcHdpc2VfdGVzdGRpci5ydW5weXRlc3QoCisg
ICAgICAgICItdiIsICItLXN0cmljdC1tYXJrZXJzIiwgIi0tc3RlcHdpc2UiLCAiLS1mYWlsIgor
ICAgICkKKyAgICBhc3NlcnQgbm90IHJlc3VsdC5zdGRlcnIuc3RyKCkKKworICAgIHN0ZG91dCA9
IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAjIE1ha2Ugc3VyZSB3ZSBzdG9wIGFmdGVyIGZpcnN0
IGZhaWxpbmcgdGVzdC4KKyAgICBhc3NlcnQgInRlc3Rfc3VjY2Vzc19iZWZvcmVfZmFpbCBQQVNT
RUQiIGluIHN0ZG91dAorICAgIGFzc2VydCAidGVzdF9mYWlsX29uX2ZsYWcgRkFJTEVEIiBpbiBz
dGRvdXQKKyAgICBhc3NlcnQgInRlc3Rfc3VjY2Vzc19hZnRlcl9mYWlsIiBub3QgaW4gc3Rkb3V0
CisKKyAgICAjICJGaXgiIHRoZSB0ZXN0IHRoYXQgZmFpbGVkIGluIHRoZSBsYXN0IHJ1biBhbmQg
cnVuIGl0IGFnYWluLgorICAgIHJlc3VsdCA9IHN0ZXB3aXNlX3Rlc3RkaXIucnVucHl0ZXN0KCIt
diIsICItLXN0cmljdC1tYXJrZXJzIiwgIi0tc3RlcHdpc2UiKQorICAgIGFzc2VydCBub3QgcmVz
dWx0LnN0ZGVyci5zdHIoKQorCisgICAgc3Rkb3V0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAg
ICMgTWFrZSBzdXJlIHRoZSBsYXRlc3QgZmFpbGluZyB0ZXN0IHJ1bnMgYW5kIHRoZW4gY29udGlu
dWVzLgorICAgIGFzc2VydCAidGVzdF9zdWNjZXNzX2JlZm9yZV9mYWlsIiBub3QgaW4gc3Rkb3V0
CisgICAgYXNzZXJ0ICJ0ZXN0X2ZhaWxfb25fZmxhZyBQQVNTRUQiIGluIHN0ZG91dAorICAgIGFz
c2VydCAidGVzdF9zdWNjZXNzX2FmdGVyX2ZhaWwgUEFTU0VEIiBpbiBzdGRvdXQKKworCitkZWYg
dGVzdF9ydW5fd2l0aF9za2lwX29wdGlvbihzdGVwd2lzZV90ZXN0ZGlyKToKKyAgICByZXN1bHQg
PSBzdGVwd2lzZV90ZXN0ZGlyLnJ1bnB5dGVzdCgKKyAgICAgICAgIi12IiwKKyAgICAgICAgIi0t
c3RyaWN0LW1hcmtlcnMiLAorICAgICAgICAiLS1zdGVwd2lzZSIsCisgICAgICAgICItLXN0ZXB3
aXNlLXNraXAiLAorICAgICAgICAiLS1mYWlsIiwKKyAgICAgICAgIi0tZmFpbC1sYXN0IiwKKyAg
ICApCisgICAgYXNzZXJ0IG5vdCByZXN1bHQuc3RkZXJyLnN0cigpCisKKyAgICBzdGRvdXQgPSBy
ZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgIyBNYWtlIHN1cmUgZmlyc3QgZmFpbCBpcyBpZ25vcmUg
YW5kIHNlY29uZCBmYWlsIHN0b3BzIHRoZSB0ZXN0IHJ1bi4KKyAgICBhc3NlcnQgInRlc3RfZmFp
bF9vbl9mbGFnIEZBSUxFRCIgaW4gc3Rkb3V0CisgICAgYXNzZXJ0ICJ0ZXN0X3N1Y2Nlc3NfYWZ0
ZXJfZmFpbCBQQVNTRUQiIGluIHN0ZG91dAorICAgIGFzc2VydCAidGVzdF9mYWlsX2xhc3Rfb25f
ZmxhZyBGQUlMRUQiIGluIHN0ZG91dAorICAgIGFzc2VydCAidGVzdF9zdWNjZXNzX2FmdGVyX2xh
c3RfZmFpbCIgbm90IGluIHN0ZG91dAorCisKK2RlZiB0ZXN0X2ZhaWxfb25fZXJyb3JzKGVycm9y
X3Rlc3RkaXIpOgorICAgIHJlc3VsdCA9IGVycm9yX3Rlc3RkaXIucnVucHl0ZXN0KCItdiIsICIt
LXN0cmljdC1tYXJrZXJzIiwgIi0tc3RlcHdpc2UiKQorCisgICAgYXNzZXJ0IG5vdCByZXN1bHQu
c3RkZXJyLnN0cigpCisgICAgc3Rkb3V0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAgYXNz
ZXJ0ICJ0ZXN0X2Vycm9yIEVSUk9SIiBpbiBzdGRvdXQKKyAgICBhc3NlcnQgInRlc3Rfc3VjY2Vz
c19hZnRlcl9mYWlsIiBub3QgaW4gc3Rkb3V0CisKKworZGVmIHRlc3RfY2hhbmdlX3Rlc3RmaWxl
KHN0ZXB3aXNlX3Rlc3RkaXIpOgorICAgIHJlc3VsdCA9IHN0ZXB3aXNlX3Rlc3RkaXIucnVucHl0
ZXN0KAorICAgICAgICAiLXYiLCAiLS1zdHJpY3QtbWFya2VycyIsICItLXN0ZXB3aXNlIiwgIi0t
ZmFpbCIsICJ0ZXN0X2EucHkiCisgICAgKQorICAgIGFzc2VydCBub3QgcmVzdWx0LnN0ZGVyci5z
dHIoKQorCisgICAgc3Rkb3V0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCAidGVz
dF9mYWlsX29uX2ZsYWcgRkFJTEVEIiBpbiBzdGRvdXQKKworICAgICMgTWFrZSBzdXJlIHRoZSBz
ZWNvbmQgdGVzdCBydW4gc3RhcnRzIGZyb20gdGhlIGJlZ2lubmluZywgc2luY2UgdGhlCisgICAg
IyB0ZXN0IHRvIGNvbnRpbnVlIGZyb20gZG9lcyBub3QgZXhpc3QgaW4gdGVzdGZpbGVfYi4KKyAg
ICByZXN1bHQgPSBzdGVwd2lzZV90ZXN0ZGlyLnJ1bnB5dGVzdCgKKyAgICAgICAgIi12IiwgIi0t
c3RyaWN0LW1hcmtlcnMiLCAiLS1zdGVwd2lzZSIsICJ0ZXN0X2IucHkiCisgICAgKQorICAgIGFz
c2VydCBub3QgcmVzdWx0LnN0ZGVyci5zdHIoKQorCisgICAgc3Rkb3V0ID0gcmVzdWx0LnN0ZG91
dC5zdHIoKQorICAgIGFzc2VydCAidGVzdF9zdWNjZXNzIFBBU1NFRCIgaW4gc3Rkb3V0CisKKwor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJicm9rZW5fZmlyc3QiLCBbVHJ1ZSwgRmFsc2VdKQor
ZGVmIHRlc3Rfc3RvcF9vbl9jb2xsZWN0aW9uX2Vycm9ycyhicm9rZW5fdGVzdGRpciwgYnJva2Vu
X2ZpcnN0KToKKyAgICAiIiJTdG9wIGR1cmluZyBjb2xsZWN0aW9uIGVycm9ycy4gQnJva2VuIHRl
c3QgZmlyc3Qgb3IgYnJva2VuIHRlc3QgbGFzdAorICAgIGFjdHVhbGx5IHN1cmZhY2VkIGEgYnVn
ICgjNTQ0NCksIHNvIHdlIHRlc3QgYm90aCBzaXR1YXRpb25zLiIiIgorICAgIGZpbGVzID0gWyJ3
b3JraW5nX3Rlc3RmaWxlLnB5IiwgImJyb2tlbl90ZXN0ZmlsZS5weSJdCisgICAgaWYgYnJva2Vu
X2ZpcnN0OgorICAgICAgICBmaWxlcy5yZXZlcnNlKCkKKyAgICByZXN1bHQgPSBicm9rZW5fdGVz
dGRpci5ydW5weXRlc3QoIi12IiwgIi0tc3RyaWN0LW1hcmtlcnMiLCAiLS1zdGVwd2lzZSIsICpm
aWxlcykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiplcnJvcnMgZHVyaW5nIGNv
bGxlY3Rpb24qIikKKworCitkZWYgdGVzdF94ZmFpbF9oYW5kbGluZyh0ZXN0ZGlyKToKKyAgICAi
IiJFbnN1cmUgbm9ybWFsIHhmYWlsIGlzIGlnbm9yZWQsIGFuZCBzdHJpY3QgeGZhaWwgaW50ZXJy
dXB0cyB0aGUgc2Vzc2lvbiBpbiBzdyBtb2RlCisKKyAgICAoIzU1NDcpCisgICAgIiIiCisgICAg
Y29udGVudHMgPSAiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgdGVzdF9h
KCk6IHBhc3MKKworICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3RyaWN0PXtzdHJpY3R9KQor
ICAgICAgICBkZWYgdGVzdF9iKCk6IGFzc2VydCB7YXNzZXJ0X3ZhbHVlfQorCisgICAgICAgIGRl
ZiB0ZXN0X2MoKTogcGFzcworICAgICAgICBkZWYgdGVzdF9kKCk6IHBhc3MKKyAgICAiIiIKKyAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoY29udGVudHMuZm9ybWF0KGFzc2VydF92YWx1ZT0iMCIsIHN0
cmljdD0iRmFsc2UiKSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1zdyIsICIt
diIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAg
ICAgICAiKjo6dGVzdF9hIFBBU1NFRCAqIiwKKyAgICAgICAgICAgICIqOjp0ZXN0X2IgWEZBSUwg
KiIsCisgICAgICAgICAgICAiKjo6dGVzdF9jIFBBU1NFRCAqIiwKKyAgICAgICAgICAgICIqOjp0
ZXN0X2QgUEFTU0VEICoiLAorICAgICAgICAgICAgIiogMyBwYXNzZWQsIDEgeGZhaWxlZCBpbiAq
IiwKKyAgICAgICAgXQorICAgICkKKworICAgIHRlc3RkaXIubWFrZXB5ZmlsZShjb250ZW50cy5m
b3JtYXQoYXNzZXJ0X3ZhbHVlPSIxIiwgc3RyaWN0PSJUcnVlIikpCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi0tc3ciLCAiLXYiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygKKyAgICAgICAgWworICAgICAgICAgICAgIio6OnRlc3RfYSBQQVNTRUQgKiIsCisgICAg
ICAgICAgICAiKjo6dGVzdF9iIEZBSUxFRCAqIiwKKyAgICAgICAgICAgICIqIEludGVycnVwdGVk
KiIsCisgICAgICAgICAgICAiKiAxIGZhaWxlZCwgMSBwYXNzZWQgaW4gKiIsCisgICAgICAgIF0K
KyAgICApCisKKyAgICAjIGJlY2F1c2Ugd2UgYXJlIHdyaXRpbmcgdG8gdGhlIHNhbWUgZmlsZSwg
bXRpbWUgbWlnaHQgbm90IGJlIGFmZmVjdGVkIGVub3VnaCB0bworICAgICMgaW52YWxpZGF0ZSB0
aGUgY2FjaGUsIG1ha2luZyB0aGlzIG5leHQgcnVuIGZsYWt5CisgICAgaWYgbm90IHN5cy5kb250
X3dyaXRlX2J5dGVjb2RlOgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJfX3B5Y2FjaGVf
XyIpLnJlbW92ZSgpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKGNvbnRlbnRzLmZvcm1hdChhc3Nl
cnRfdmFsdWU9IjAiLCBzdHJpY3Q9IlRydWUiKSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLS1zdyIsICItdiIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAg
ICAgICBbCisgICAgICAgICAgICAiKjo6dGVzdF9iIFhGQUlMICoiLAorICAgICAgICAgICAgIio6
OnRlc3RfYyBQQVNTRUQgKiIsCisgICAgICAgICAgICAiKjo6dGVzdF9kIFBBU1NFRCAqIiwKKyAg
ICAgICAgICAgICIqIDIgcGFzc2VkLCAxIGRlc2VsZWN0ZWQsIDEgeGZhaWxlZCBpbiAqIiwKKyAg
ICAgICAgXQorICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF90ZXJt
aW5hbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF90ZXJtaW5hbC5weQppbmRleCA4ZjA4
YWQzNGZhMWY0NmRjNGI3OGQ5N2Y0MjJlZGNiODYxZGIyYWVkLi43NTJjODk0Y2E5MzhlNTY2YTJj
MWZmYmRjY2Q1NDFhZTI1NTVkZGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfdGVybWluYWwucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Rlcm1pbmFsLnB5
CkBAIC0xLDMzICsxLDQxIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogIiIiCiB0ZXJtaW5h
bCByZXBvcnRpbmcgb2YgdGhlIGZ1bGwgdGVzdGluZyBwcm9jZXNzLgogIiIiCi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBkaXZpc2lvbgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCiBp
bXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBvcwogaW1wb3J0IHN5cworaW1wb3J0IHRleHR3cmFw
CiAKIGltcG9ydCBwbHVnZ3kKLWltcG9ydCBfcHl0ZXN0Ll9jb2RlCiBpbXBvcnQgcHkKKwogaW1w
b3J0IHB5dGVzdAogZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RF
RAotZnJvbSBfcHl0ZXN0LnRlcm1pbmFsIGltcG9ydCBUZXJtaW5hbFJlcG9ydGVyLCByZXByX3B5
dGhvbnZlcnNpb24sIGdldHJlcG9ydG9wdAotZnJvbSBfcHl0ZXN0LnRlcm1pbmFsIGltcG9ydCBi
dWlsZF9zdW1tYXJ5X3N0YXRzX2xpbmUsIF9wbHVnaW5fbmFtZXZlcnNpb25zCi0KK2Zyb20gX3B5
dGVzdC5yZXBvcnRzIGltcG9ydCBCYXNlUmVwb3J0Citmcm9tIF9weXRlc3QudGVybWluYWwgaW1w
b3J0IF9mb2xkZWRfc2tpcHMKK2Zyb20gX3B5dGVzdC50ZXJtaW5hbCBpbXBvcnQgX2dldF9saW5l
X3dpdGhfcmVwcmNyYXNoX21lc3NhZ2UKK2Zyb20gX3B5dGVzdC50ZXJtaW5hbCBpbXBvcnQgX3Bs
dWdpbl9uYW1ldmVyc2lvbnMKK2Zyb20gX3B5dGVzdC50ZXJtaW5hbCBpbXBvcnQgYnVpbGRfc3Vt
bWFyeV9zdGF0c19saW5lCitmcm9tIF9weXRlc3QudGVybWluYWwgaW1wb3J0IGdldHJlcG9ydG9w
dAorZnJvbSBfcHl0ZXN0LnRlcm1pbmFsIGltcG9ydCBUZXJtaW5hbFJlcG9ydGVyCiAKIERpc3RJ
bmZvID0gY29sbGVjdGlvbnMubmFtZWR0dXBsZSgiRGlzdEluZm8iLCBbInByb2plY3RfbmFtZSIs
ICJ2ZXJzaW9uIl0pCiAKIAogY2xhc3MgT3B0aW9uKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgdmVyYm9zZT1GYWxzZSwgZnVsbHRyYWNlPUZhbHNlKToKLSAgICAgICAgc2VsZi52
ZXJib3NlID0gdmVyYm9zZQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2ZXJib3NpdHk9MCwgZnVs
bHRyYWNlPUZhbHNlKToKKyAgICAgICAgc2VsZi52ZXJib3NpdHkgPSB2ZXJib3NpdHkKICAgICAg
ICAgc2VsZi5mdWxsdHJhY2UgPSBmdWxsdHJhY2UKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBh
cmdzKHNlbGYpOgogICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICBpZiBzZWxmLnZlcmJvc2U6
Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCItdiIpCisgICAgICAgIHZhbHVlcy5hcHBlbmQo
Ii0tdmVyYm9zaXR5PSVkIiAlIHNlbGYudmVyYm9zaXR5KQogICAgICAgICBpZiBzZWxmLmZ1bGx0
cmFjZToKICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIi0tZnVsbHRyYWNlIikKICAgICAgICAg
cmV0dXJuIHZhbHVlcwpAQCAtMzUsOSArNDMsOSBAQCBjbGFzcyBPcHRpb24ob2JqZWN0KToKIAog
QHB5dGVzdC5maXh0dXJlKAogICAgIHBhcmFtcz1bCi0gICAgICAgIE9wdGlvbih2ZXJib3NlPUZh
bHNlKSwKLSAgICAgICAgT3B0aW9uKHZlcmJvc2U9VHJ1ZSksCi0gICAgICAgIE9wdGlvbih2ZXJi
b3NlPS0xKSwKKyAgICAgICAgT3B0aW9uKHZlcmJvc2l0eT0wKSwKKyAgICAgICAgT3B0aW9uKHZl
cmJvc2l0eT0xKSwKKyAgICAgICAgT3B0aW9uKHZlcmJvc2l0eT0tMSksCiAgICAgICAgIE9wdGlv
bihmdWxsdHJhY2U9VHJ1ZSksCiAgICAgXSwKICAgICBpZHM9WyJkZWZhdWx0IiwgInZlcmJvc2Ui
LCAicXVpZXQiLCAiZnVsbHRyYWNlIl0sCkBAIC02OCw3ICs3Niw2IEBAIGRlZiB0ZXN0X3BsdWdp
bl9uYW1ldmVyc2lvbihpbnB1dCwgZXhwZWN0ZWQpOgogCiAKIGNsYXNzIFRlc3RUZXJtaW5hbChv
YmplY3QpOgotCiAgICAgZGVmIHRlc3RfcGFzc19za2lwX2ZhaWwoc2VsZiwgdGVzdGRpciwgb3B0
aW9uKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC04
Miw3ICs4OSw3IEBAIGNsYXNzIFRlc3RUZXJtaW5hbChvYmplY3QpOgogICAgICAgICAiIiIKICAg
ICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgqb3B0aW9uLmFyZ3Mp
Ci0gICAgICAgIGlmIG9wdGlvbi52ZXJib3NlOgorICAgICAgICBpZiBvcHRpb24udmVyYm9zaXR5
ID4gMDoKICAgICAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAg
ICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICIqdGVzdF9wYXNzX3NraXBfZmFpbC5weTo6
dGVzdF9vayBQQVNTKiIsCkBAIC05MCw4ICs5NywxMCBAQCBjbGFzcyBUZXN0VGVybWluYWwob2Jq
ZWN0KToKICAgICAgICAgICAgICAgICAgICAgIip0ZXN0X3Bhc3Nfc2tpcF9mYWlsLnB5Ojp0ZXN0
X2Z1bmMgRkFJTCoiLAogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICkKLSAgICAgICAg
ZWxzZToKKyAgICAgICAgZWxpZiBvcHRpb24udmVyYm9zaXR5ID09IDA6CiAgICAgICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdF9wYXNzX3NraXBfZmFpbC5weSAuc0Yq
Il0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWyIuc0YqIl0pCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAg
ICAgICAgIFsiICAgIGRlZiB0ZXN0X2Z1bmMoKToiLCAiPiAgICAgICBhc3NlcnQgMCIsICJFICAg
ICAgIGFzc2VydCAwIl0KICAgICAgICAgKQpAQCAtOTksNyArMTA4LDggQEAgY2xhc3MgVGVzdFRl
cm1pbmFsKG9iamVjdCk6CiAgICAgZGVmIHRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCB0ZXN0ZGly
LCBsaW5lY29tcCk6CiAgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCJkZWYg
dGVzdF9vbmUoKTogcGFzcyIpCiAgICAgICAgIHJlcCA9IFRlcm1pbmFsUmVwb3J0ZXIobW9kY29s
LmNvbmZpZywgZmlsZT1saW5lY29tcC5zdHJpbmdpbykKLSAgICAgICAgZXhjaW5mbyA9IHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwgInJhaXNlIFZhbHVlRXJyb3IoJ2hlbGxvJykiKQorICAgICAg
ICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcikgYXMgZXhjaW5mbzoKKyAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvIikKICAgICAgICAgcmVwLnB5dGVzdF9pbnRlcm5hbGVy
cm9yKGV4Y2luZm8uZ2V0cmVwcigpKQogICAgICAgICBsaW5lY29tcC5hc3NlcnRfY29udGFpbnNf
bGluZXMoWyJJTlRFUk5BTEVSUk9SPiAqVmFsdWVFcnJvcipoZWxsbyoiXSkKIApAQCAtMTM2LDYg
KzE0NiwzMSBAQCBjbGFzcyBUZXN0VGVybWluYWwob2JqZWN0KToKICAgICAgICAgY2hpbGQuc2Vu
ZGVvZigpCiAgICAgICAgIGNoaWxkLmtpbGwoMTUpCiAKKyAgICBkZWYgdGVzdF9yZXBvcnRfY29s
bGVjdF9hZnRlcl9oYWxmX2Ffc2Vjb25kKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0
IGZvciAiY29sbGVjdGluZyIgYmVpbmcgdXBkYXRlZCBhZnRlciAwLjVzIiIiCisKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgKip7CisgICAgICAgICAgICAgICAgInRl
c3QxLnB5IjogIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IF9weXRlc3QudGVybWluYWwKKwor
ICAgICAgICAgICAgICAgIF9weXRlc3QudGVybWluYWwuUkVQT1JUX0NPTExFQ1RJTkdfUkVTT0xV
VElPTiA9IDAKKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAgICAgInRl
c3QyLnB5IjogImRlZiB0ZXN0XzIoKTogcGFzcyIsCisgICAgICAgICAgICB9CisgICAgICAgICkK
KworICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCItdiB0ZXN0MS5weSB0ZXN0
Mi5weSIpCisgICAgICAgIGNoaWxkLmV4cGVjdChyImNvbGxlY3RpbmcgXC5cLlwuIikKKyAgICAg
ICAgY2hpbGQuZXhwZWN0KHIiY29sbGVjdGluZyAxIGl0ZW0iKQorICAgICAgICBjaGlsZC5leHBl
Y3QociJjb2xsZWN0aW5nIDIgaXRlbXMiKQorICAgICAgICBjaGlsZC5leHBlY3QociJjb2xsZWN0
ZWQgMiBpdGVtcyIpCisgICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikK
KyAgICAgICAgYXNzZXJ0ICIyIHBhc3NlZCBpbiIgaW4gcmVzdAorCiAgICAgZGVmIHRlc3RfaXRl
bXJlcG9ydF9zdWJjbGFzc2VzX3Nob3dfc3ViY2xhc3NlZF9maWxlKHNlbGYsIHRlc3RkaXIpOgog
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICB0ZXN0X3AxPSIiIgpAQCAt
MTU1LDcgKzE5MCw3IEBAIGNsYXNzIFRlc3RUZXJtaW5hbChvYmplY3QpOgogICAgICAgICApCiAg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAyKQogICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWyIqdGVzdF9wMi5weSAuKiIsICIqMSBwYXNzZWQqIl0pCi0gICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIsIHAyKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXZ2IiwgcDIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcygKICAgICAgICAgICAgIFsiKnRlc3RfcDIucHk6OlRlc3RNb3JlOjp0ZXN0X3Ax
KiA8LSAqdGVzdF9wMS5weSpQQVNTRUQqIl0KICAgICAgICAgKQpAQCAtMTYzLDE1ICsxOTgsMTUg
QEAgY2xhc3MgVGVzdFRlcm1pbmFsKG9iamVjdCk6CiAgICAgZGVmIHRlc3RfaXRlbXJlcG9ydF9k
aXJlY3RjbGFzc2VzX25vdF9zaG93bl9hc19zdWJjbGFzc2VzKHNlbGYsIHRlc3RkaXIpOgogICAg
ICAgICBhID0gdGVzdGRpci5ta3B5ZGlyKCJhMTIzIikKICAgICAgICAgYS5qb2luKCJ0ZXN0X2hl
bGxvMTIzLnB5Iikud3JpdGUoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAg
ICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAg
ICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAg
ICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgotICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKLSAgICAgICAgICAgICAgICAgICAg
cGFzcwotICAgICAgICAiIiIKICAgICAgICAgICAgICkKICAgICAgICAgKQotICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLXZ2IikKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAogICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqYTEyMy90ZXN0X2hlbGxvMTIzLnB5KlBBU1Mq
Il0pCiAgICAgICAgIGFzc2VydCAiIDwtICIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKQEAg
LTI0OCw3ICsyODMsNiBAQCBjbGFzcyBUZXN0VGVybWluYWwob2JqZWN0KToKIAogCiBjbGFzcyBU
ZXN0Q29sbGVjdG9ubHkob2JqZWN0KToKLQogICAgIGRlZiB0ZXN0X2NvbGxlY3Rvbmx5X2Jhc2lj
KHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAg
ICAiIiIKQEAgLTI1OCw3ICsyOTIsNyBAQCBjbGFzcyBUZXN0Q29sbGVjdG9ubHkob2JqZWN0KToK
ICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0
LW9ubHkiKQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCi0gICAgICAgICAg
ICBbIjxNb2R1bGUgJ3Rlc3RfY29sbGVjdG9ubHlfYmFzaWMucHknPiIsICIgIDxGdW5jdGlvbiAn
dGVzdF9mdW5jJz4iXQorICAgICAgICAgICAgWyI8TW9kdWxlIHRlc3RfY29sbGVjdG9ubHlfYmFz
aWMucHk+IiwgIiAgPEZ1bmN0aW9uIHRlc3RfZnVuYz4iXQogICAgICAgICApCiAKICAgICBkZWYg
dGVzdF9jb2xsZWN0b25seV9za2lwcGVkX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKQEAgLTI3MSw2
ICszMDUsMTggQEAgY2xhc3MgVGVzdENvbGxlY3Rvbmx5KG9iamVjdCk6CiAgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIsICItcnMiKQogICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqRVJST1IgY29sbGVjdGluZyoiXSkKIAorICAg
IGRlZiB0ZXN0X2NvbGxlY3Rvbmx5X2Rpc3BsYXlfdGVzdF9kZXNjcmlwdGlvbihzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICBkZWYgdGVzdF93aXRoX2Rlc2NyaXB0aW9uKCk6CisgICAgICAgICAgICAgICAgXCIi
IiBUaGlzIHRlc3QgaGFzIGEgZGVzY3JpcHRpb24uCisgICAgICAgICAgICAgICAgXCIiIgorICAg
ICAgICAgICAgICAgIGFzc2VydCBUcnVlCisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIsICItLXZlcmJvc2Ui
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIgICAgVGhpcyB0ZXN0IGhh
cyBhIGRlc2NyaXB0aW9uLiJdKQorCiAgICAgZGVmIHRlc3RfY29sbGVjdG9ubHlfZmFpbGVkX21v
ZHVsZShzZWxmLCB0ZXN0ZGlyKToKICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiInJhaXNl
IFZhbHVlRXJyb3IoMCkiIiIpCiAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LWNvbGxlY3Qtb25seSIpCkBAIC0zMDIsMTEgKzM0OCwxMCBAQCBjbGFzcyBUZXN0Q29sbGVjdG9u
bHkob2JqZWN0KToKICAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAogICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCiAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAg
Iio8TW9kdWxlICcqLnB5Jz4iLAotICAgICAgICAgICAgICAgICIqIDxGdW5jdGlvbiAndGVzdF9m
dW5jMScqPiIsCi0gICAgICAgICAgICAgICAgIiogPENsYXNzICdUZXN0Q2xhc3MnPiIsCi0gICAg
ICAgICAgICAgICAgIyAiKiAgPEluc3RhbmNlICcoKSc+IiwKLSAgICAgICAgICAgICAgICAiKiAg
IDxGdW5jdGlvbiAndGVzdF9tZXRob2QnKj4iLAorICAgICAgICAgICAgICAgICIqPE1vZHVsZSAq
LnB5PiIsCisgICAgICAgICAgICAgICAgIiogPEZ1bmN0aW9uIHRlc3RfZnVuYzE+IiwKKyAgICAg
ICAgICAgICAgICAiKiA8Q2xhc3MgVGVzdENsYXNzPiIsCisgICAgICAgICAgICAgICAgIiogICA8
RnVuY3Rpb24gdGVzdF9tZXRob2Q+IiwKICAgICAgICAgICAgIF0KICAgICAgICAgKQogCkBAIC0z
MTUsMTMgKzM2MCwxMyBAQCBjbGFzcyBUZXN0Q29sbGVjdG9ubHkob2JqZWN0KToKICAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1vbmx5IiwgcCkKICAgICAgICAg
YXNzZXJ0IHJlc3VsdC5yZXQgPT0gMgogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoCi0gICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgKKyAgICAgICAgICAgIHRleHR3
cmFwLmRlZGVudCgKKyAgICAgICAgICAgICAgICAiIiJcCisgICAgICAgICAgICAgICAgKkVSUk9S
KgorICAgICAgICAgICAgICAgICpJbXBvcnRFcnJvcioKKyAgICAgICAgICAgICAgICAqTm8gbW9k
dWxlIG5hbWVkICpFcnJsayoKKyAgICAgICAgICAgICAgICAqMSBlcnJvcioKICAgICAgICAgICAg
ICAgICAiIiIKLSAgICAgICAgICAgICpFUlJPUioKLSAgICAgICAgICAgICpJbXBvcnRFcnJvcioK
LSAgICAgICAgICAgICpObyBtb2R1bGUgbmFtZWQgKkVycmxrKgotICAgICAgICAgICAgKjEgZXJy
b3IqCi0gICAgICAgICIiIgogICAgICAgICAgICAgKS5zdHJpcCgpCiAgICAgICAgICkKIApAQCAt
MzQ1LDIzICszOTAsMTIgQEAgY2xhc3MgVGVzdENvbGxlY3Rvbmx5KG9iamVjdCk6CiAgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIip0ZXN0X2Z1bi5weTogMSoiXSkKIAogCi1k
ZWYgdGVzdF9yZXByX3B5dGhvbl92ZXJzaW9uKG1vbmtleXBhdGNoKToKLSAgICB0cnk6Ci0gICAg
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lzLCAidmVyc2lvbl9pbmZvIiwgKDIsIDUsIDEsICJm
aW5hbCIsIDApKQotICAgICAgICBhc3NlcnQgcmVwcl9weXRob252ZXJzaW9uKCkgPT0gIjIuNS4x
LWZpbmFsLTAiCi0gICAgICAgIHN5cy52ZXJzaW9uX2luZm8gPSB4ID0gKDIsIDMpCi0gICAgICAg
IGFzc2VydCByZXByX3B5dGhvbnZlcnNpb24oKSA9PSBzdHIoeCkKLSAgICBmaW5hbGx5OgotICAg
ICAgICBtb25rZXlwYXRjaC51bmRvKCkgICMgZG8gdGhpcyBlYXJseSBhcyBweXRlc3QgY2FuIGdl
dCBjb25mdXNlZAotCi0KIGNsYXNzIFRlc3RGaXh0dXJlUmVwb3J0aW5nKG9iamVjdCk6Ci0KICAg
ICBkZWYgdGVzdF9zZXR1cF9maXh0dXJlX2Vycm9yKHNlbGYsIHRlc3RkaXIpOgogICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGRlZiBzZXR1
cF9mdW5jdGlvbihmdW5jdGlvbik6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJzZXR1cCBmdW5j
IikKKyAgICAgICAgICAgICAgICBwcmludCgic2V0dXAgZnVuYyIpCiAgICAgICAgICAgICAgICAg
YXNzZXJ0IDAKICAgICAgICAgICAgIGRlZiB0ZXN0X25hZGEoKToKICAgICAgICAgICAgICAgICBw
YXNzCkBAIC0zODUsNyArNDE5LDcgQEAgY2xhc3MgVGVzdEZpeHR1cmVSZXBvcnRpbmcob2JqZWN0
KToKICAgICAgICAgICAgIGRlZiB0ZXN0X25hZGEoKToKICAgICAgICAgICAgICAgICBwYXNzCiAg
ICAgICAgICAgICBkZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVuY3Rpb24pOgotICAgICAgICAgICAg
ICAgIHByaW50ICgidGVhcmRvd24gZnVuYyIpCisgICAgICAgICAgICAgICAgcHJpbnQoInRlYXJk
b3duIGZ1bmMiKQogICAgICAgICAgICAgICAgIGFzc2VydCAwCiAgICAgICAgICIiIgogICAgICAg
ICApCkBAIC00MDgsNyArNDQyLDcgQEAgY2xhc3MgVGVzdEZpeHR1cmVSZXBvcnRpbmcob2JqZWN0
KToKICAgICAgICAgICAgICAgICBhc3NlcnQgMCwgImZhaWxpbmdmdW5jIgogCiAgICAgICAgICAg
ICBkZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVuY3Rpb24pOgotICAgICAgICAgICAgICAgIHByaW50
ICgidGVhcmRvd24gZnVuYyIpCisgICAgICAgICAgICAgICAgcHJpbnQoInRlYXJkb3duIGZ1bmMi
KQogICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZQogICAgICAgICAiIiIKICAgICAgICAgKQpA
QCAtNDMyLDEzICs0NjYsMTMgQEAgY2xhc3MgVGVzdEZpeHR1cmVSZXBvcnRpbmcob2JqZWN0KToK
ICAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCiAgICAgICAgICAg
ICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgotICAgICAgICAgICAgICAgIHByaW50ICgi
c2V0dXAgZnVuYyIpCisgICAgICAgICAgICAgICAgcHJpbnQoInNldHVwIGZ1bmMiKQogCiAgICAg
ICAgICAgICBkZWYgdGVzdF9mYWlsKCk6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IDAsICJmYWls
aW5nZnVuYyIKIAogICAgICAgICAgICAgZGVmIHRlYXJkb3duX2Z1bmN0aW9uKGZ1bmN0aW9uKToK
LSAgICAgICAgICAgICAgICBwcmludCAoInRlYXJkb3duIGZ1bmMiKQorICAgICAgICAgICAgICAg
IHByaW50KCJ0ZWFyZG93biBmdW5jIikKICAgICAgICAgIiIiCiAgICAgICAgICkKICAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQpAQCAtNDU3LDcgKzQ5MSw2IEBAIGNsYXNzIFRl
c3RGaXh0dXJlUmVwb3J0aW5nKG9iamVjdCk6CiAKIAogY2xhc3MgVGVzdFRlcm1pbmFsRnVuY3Rp
b25hbChvYmplY3QpOgotCiAgICAgZGVmIHRlc3RfZGVzZWxlY3RlZChzZWxmLCB0ZXN0ZGlyKToK
ICAgICAgICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICAgICAiIiIK
QEAgLTQ3MSwxMyArNTA0LDQ0IEBAIGNsYXNzIFRlc3RUZXJtaW5hbEZ1bmN0aW9uYWwob2JqZWN0
KToKICAgICAgICAgKQogICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLWsiLCAi
dGVzdF90d286IiwgdGVzdHBhdGgpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygKLSAgICAgICAgICAgIFsiY29sbGVjdGVkIDMgaXRlbXMgLyAxIGRlc2VsZWN0ZWQiLCAiKnRl
c3RfZGVzZWxlY3RlZC5weSAuLioiXQorICAgICAgICAgICAgWyJjb2xsZWN0ZWQgMyBpdGVtcyAv
IDEgZGVzZWxlY3RlZCAvIDIgc2VsZWN0ZWQiLCAiKnRlc3RfZGVzZWxlY3RlZC5weSAuLioiXQor
ICAgICAgICApCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIGRlZiB0ZXN0
X2Rlc2VsZWN0ZWRfd2l0aF9ob29rd3JhcHBlcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dHBhdGggPSB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKKyAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFw
cGVyPVRydWUpCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMo
Y29uZmlnLCBpdGVtcyk6CisgICAgICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgICAgICBk
ZXNlbGVjdGVkID0gaXRlbXMucG9wKCkKKyAgICAgICAgICAgICAgICBjb25maWcuaG9vay5weXRl
c3RfZGVzZWxlY3RlZChpdGVtcz1bZGVzZWxlY3RlZF0pCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgKQorICAgICAgICB0ZXN0cGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAg
ICIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X29uZSgpOgorICAgICAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfdHdvKCk6CisgICAgICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF90aHJlZSgpOgorICAgICAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RwYXRoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgImNvbGxlY3RlZCAzIGl0
ZW1zIC8gMSBkZXNlbGVjdGVkIC8gMiBzZWxlY3RlZCIsCisgICAgICAgICAgICAgICAgIio9IDIg
cGFzc2VkLCAxIGRlc2VsZWN0ZWQgaW4qIiwKKyAgICAgICAgICAgIF0KICAgICAgICAgKQogICAg
ICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCiAKICAgICBkZWYgdGVzdF9zaG93X2Rlc2VsZWN0
ZWRfaXRlbXNfdXNpbmdfbWFya2V4cHJfYmVmb3JlX3Rlc3RfZXhlY3V0aW9uKHNlbGYsIHRlc3Rk
aXIpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIHRlc3Rfc2hvd19kZXNlbGVjdGVkPSIiIgogICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAogCiAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuZm9vCkBAIC00OTUsOCArNTU5LDggQEAgY2xh
c3MgVGVzdFRlcm1pbmFsRnVuY3Rpb25hbChvYmplY3QpOgogICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLW0iLCAibm90IGZvbyIpCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcygKICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAiY29sbGVjdGVkIDMg
aXRlbXMgLyAxIGRlc2VsZWN0ZWQiLAotICAgICAgICAgICAgICAgICIqdGVzdF9zaG93X2Rlcyou
cHkgLi4qIiwKKyAgICAgICAgICAgICAgICAiY29sbGVjdGVkIDMgaXRlbXMgLyAxIGRlc2VsZWN0
ZWQgLyAyIHNlbGVjdGVkIiwKKyAgICAgICAgICAgICAgICAiKnRlc3Rfc2hvd19kZXNlbGVjdGVk
LnB5IC4uKiIsCiAgICAgICAgICAgICAgICAgIio9IDIgcGFzc2VkLCAxIGRlc2VsZWN0ZWQgaW4g
KiA9KiIsCiAgICAgICAgICAgICBdCiAgICAgICAgICkKQEAgLTUzNyw3ICs2MDEsNyBAQCBjbGFz
cyBUZXN0VGVybWluYWxGdW5jdGlvbmFsKG9iamVjdCk6CiAgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbInRlc3RfcGFzc2VzLnB5IC4uKiIsICIqIDIgcGFzcyoiXSkKICAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAogCi0gICAgZGVmIHRlc3RfaGVhZGVyX3RyYWlsZXJf
aW5mbyhzZWxmLCB0ZXN0ZGlyKToKKyAgICBkZWYgdGVzdF9oZWFkZXJfdHJhaWxlcl9pbmZvKHNl
bGYsIHRlc3RkaXIsIHJlcXVlc3QpOgogICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAg
ICAgICAgICAiIiIKICAgICAgICAgICAgIGRlZiB0ZXN0X3Bhc3NlcygpOgpAQCAtNTYxLDkgKzYy
NSwzOCBAQCBjbGFzcyBUZXN0VGVybWluYWxGdW5jdGlvbmFsKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgIj0qIDEgcGFzc2VkKmluICouWzAtOV1bMC05XSBzZWNvbmRzICo9IiwKICAgICAgICAg
ICAgIF0KICAgICAgICAgKQotICAgICAgICBpZiBweXRlc3QuY29uZmlnLnBsdWdpbm1hbmFnZXIu
bGlzdF9wbHVnaW5fZGlzdGluZm8oKToKKyAgICAgICAgaWYgcmVxdWVzdC5jb25maWcucGx1Z2lu
bWFuYWdlci5saXN0X3BsdWdpbl9kaXN0aW5mbygpOgogICAgICAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsicGx1Z2luczogKiJdKQogCisgICAgZGVmIHRlc3RfaGVhZGVyKHNl
bGYsIHRlc3RkaXIsIHJlcXVlc3QpOgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJ0ZXN0
cyIpLmVuc3VyZV9kaXIoKQorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJndWkiKS5lbnN1
cmVfZGlyKCkKKworICAgICAgICAjIG5vIGluaSBmaWxlCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsicm9v
dGRpcjogKnRlc3RfaGVhZGVyMCJdKQorCisgICAgICAgICMgd2l0aCBpbmlmaWxlCisgICAgICAg
IHRlc3RkaXIubWFrZWluaSgiIiJbcHl0ZXN0XSIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJyb290
ZGlyOiAqdGVzdF9oZWFkZXIwLCBpbmlmaWxlOiB0b3guaW5pIl0pCisKKyAgICAgICAgIyB3aXRo
IHRlc3RwYXRocyBvcHRpb24sIGFuZCBub3QgcGFzc2luZyBhbnl0aGluZyBpbiB0aGUgY29tbWFu
ZC1saW5lCisgICAgICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgICAgICIiIgorICAgICAg
ICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIHRlc3RwYXRocyA9IHRlc3RzIGd1aQorICAgICAg
ICAiIiIKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsicm9vdGRp
cjogKnRlc3RfaGVhZGVyMCwgaW5pZmlsZTogdG94LmluaSwgdGVzdHBhdGhzOiB0ZXN0cywgZ3Vp
Il0KKyAgICAgICAgKQorCisgICAgICAgICMgd2l0aCB0ZXN0cGF0aHMgb3B0aW9uLCBwYXNzaW5n
IGRpcmVjdG9yeSBpbiBjb21tYW5kLWxpbmU6IGRvIG5vdCBzaG93IHRlc3RwYXRocyB0aGVuCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCJ0ZXN0cyIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbInJvb3RkaXI6ICp0ZXN0X2hlYWRlcjAsIGluaWZpbGU6
IHRveC5pbmkiXSkKKwogICAgIGRlZiB0ZXN0X3Nob3dsb2NhbHMoc2VsZiwgdGVzdGRpcik6CiAg
ICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAgICAgIiIiCkBAIC01ODIs
OCArNjc1LDkgQEAgY2xhc3MgVGVzdFRlcm1pbmFsRnVuY3Rpb25hbChvYmplY3QpOgogICAgICAg
ICAgICAgXQogICAgICAgICApCiAKLSAgICBkZWYgdGVzdF92ZXJib3NlX3JlcG9ydGluZyhzZWxm
LCB0ZXN0ZGlyLCBweXRlc3Rjb25maWcpOgotICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgdmVyYm9zZV90ZXN0ZmlsZShzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgcmV0dXJuIHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAg
ICIiIgogICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAogICAgICAgICAgICAgZGVmIHRlc3RfZmFp
bCgpOgpAQCAtNTk5LDIyICs2OTMsMzEgQEAgY2xhc3MgVGVzdFRlcm1pbmFsRnVuY3Rpb25hbChv
YmplY3QpOgogICAgICAgICAgICAgICAgIHlpZWxkIGNoZWNrLCAwCiAgICAgICAgICIiIgogICAg
ICAgICApCi0gICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAxLCAiLXYiKQorCisg
ICAgZGVmIHRlc3RfdmVyYm9zZV9yZXBvcnRpbmcoc2VsZiwgdmVyYm9zZV90ZXN0ZmlsZSwgdGVz
dGRpciwgcHl0ZXN0Y29uZmlnKToKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
CisgICAgICAgICAgICB2ZXJib3NlX3Rlc3RmaWxlLCAiLXYiLCAiLVdhbHdheXM6OnB5dGVzdC5Q
eXRlc3RXYXJuaW5nIgorICAgICAgICApCiAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygKICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAiKnRlc3RfdmVyYm9zZV9yZXBv
cnRpbmcucHk6OnRlc3RfZmFpbCAqRkFJTCoiLAogICAgICAgICAgICAgICAgICIqdGVzdF92ZXJi
b3NlX3JlcG9ydGluZy5weTo6dGVzdF9wYXNzICpQQVNTKiIsCiAgICAgICAgICAgICAgICAgIip0
ZXN0X3ZlcmJvc2VfcmVwb3J0aW5nLnB5OjpUZXN0Q2xhc3M6OnRlc3Rfc2tpcCAqU0tJUCoiLAot
ICAgICAgICAgICAgICAgICIqdGVzdF92ZXJib3NlX3JlcG9ydGluZy5weTo6dGVzdF9nZW4qMCog
KkZBSUwqIiwKKyAgICAgICAgICAgICAgICAiKnRlc3RfdmVyYm9zZV9yZXBvcnRpbmcucHk6OnRl
c3RfZ2VuICpYRkFJTCoiLAogICAgICAgICAgICAgXQogICAgICAgICApCiAgICAgICAgIGFzc2Vy
dCByZXN1bHQucmV0ID09IDEKIAorICAgIGRlZiB0ZXN0X3ZlcmJvc2VfcmVwb3J0aW5nX3hkaXN0
KHNlbGYsIHZlcmJvc2VfdGVzdGZpbGUsIHRlc3RkaXIsIHB5dGVzdGNvbmZpZyk6CiAgICAgICAg
IGlmIG5vdCBweXRlc3Rjb25maWcucGx1Z2lubWFuYWdlci5nZXRfcGx1Z2luKCJ4ZGlzdCIpOgog
ICAgICAgICAgICAgcHl0ZXN0LnNraXAoInhkaXN0IHBsdWdpbiBub3QgaW5zdGFsbGVkIikKIAot
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwMSwgIi12IiwgIi1uIDEiKQotICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqRkFJTCp0ZXN0X3ZlcmJvc2VfcmVw
b3J0aW5nLnB5Ojp0ZXN0X2ZhaWwqIl0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KAorICAgICAgICAgICAgdmVyYm9zZV90ZXN0ZmlsZSwgIi12IiwgIi1uIDEiLCAiLVdhbHdh
eXM6OnB5dGVzdC5QeXRlc3RXYXJuaW5nIgorICAgICAgICApCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsiKkZBSUwqdGVzdF92ZXJib3NlX3JlcG9y
dGluZ194ZGlzdC5weTo6dGVzdF9mYWlsKiJdCisgICAgICAgICkKICAgICAgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgPT0gMQogCiAgICAgZGVmIHRlc3RfcXVpZXRfcmVwb3J0aW5nKHNlbGYsIHRlc3Rk
aXIpOgpAQCAtNjM1LDcgKzczOCwxMCBAQCBjbGFzcyBUZXN0VGVybWluYWxGdW5jdGlvbmFsKG9i
amVjdCk6CiAgICAgICAgIGFzc2VydCAiPT09IiBub3QgaW4gcwogICAgICAgICBhc3NlcnQgInBh
c3NlZCIgbm90IGluIHMKIAotICAgIGRlZiB0ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNoX2hv
b2soc2VsZiwgdGVzdGRpcik6CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAg
ICAicGFyYW1zIiwgWygpLCAoIi0tY29sbGVjdC1vbmx5IiwpXSwgaWRzPVsibm8tcGFyYW1zIiwg
ImNvbGxlY3Qtb25seSJdCisgICAgKQorICAgIGRlZiB0ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmlu
aXNoX2hvb2soc2VsZiwgdGVzdGRpciwgcGFyYW1zKToKICAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGRlZiBweXRlc3RfcmVwb3J0X2Nv
bGxlY3Rpb25maW5pc2goY29uZmlnLCBzdGFydGRpciwgaXRlbXMpOgpAQCAtNjUwLDE2ICs3NTYs
NTEgQEAgY2xhc3MgVGVzdFRlcm1pbmFsRnVuY3Rpb25hbChvYmplY3QpOgogICAgICAgICAgICAg
ICAgIHBhc3MKICAgICAgICAgIiIiCiAgICAgICAgICkKLSAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgqcGFyYW1z
KQogICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJjb2xsZWN0ZWQgMyBpdGVt
cyIsICJoZWxsbyBmcm9tIGhvb2s6IDMgaXRlbXMiXSkKIAorICAgIGRlZiB0ZXN0X3N1bW1hcnlf
Zl9hbGlhcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCB0aGF0ICdmJyBhbmQgJ0Yn
IHJlcG9ydCBjaGFycyBhcmUgYWxpYXNlcyBhbmQgZG9uJ3Qgc2hvdyB1cCB0d2ljZSBpbiB0aGUg
c3VtbWFyeSAoIzYzMzQpIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
RmFsc2UKKyAgICAgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItcmZGIikKKyAgICAgICAgZXhwZWN0ZWQgPSAiRkFJTEVEIHRlc3Rfc3Vt
bWFyeV9mX2FsaWFzLnB5Ojp0ZXN0IC0gYXNzZXJ0IEZhbHNlIgorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoW2V4cGVjdGVkXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5zdGRv
dXQubGluZXMuY291bnQoZXhwZWN0ZWQpID09IDEKKworICAgIGRlZiB0ZXN0X3N1bW1hcnlfc19h
bGlhcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCB0aGF0ICdzJyBhbmQgJ1MnIHJl
cG9ydCBjaGFycyBhcmUgYWxpYXNlcyBhbmQgZG9uJ3Qgc2hvdyB1cCB0d2ljZSBpbiB0aGUgc3Vt
bWFyeSIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKIAotZGVmIHRlc3RfZmFpbF9leHRyYV9yZXBvcnRpbmco
dGVzdGRpcik6Ci0gICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF90aGlzKCk6IGFzc2Vy
dCAwIikKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5za2lwCisgICAgICAgICAgICBkZWYgdGVz
dCgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICIiIgorICAgICAgICApCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcnNTIikKKyAgICAgICAgZXhwZWN0
ZWQgPSAiU0tJUFBFRCBbMV0gdGVzdF9zdW1tYXJ5X3NfYWxpYXMucHk6MzogdW5jb25kaXRpb25h
bCBza2lwIgorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoW2V4cGVjdGVkXSkK
KyAgICAgICAgYXNzZXJ0IHJlc3VsdC5zdGRvdXQubGluZXMuY291bnQoZXhwZWN0ZWQpID09IDEK
KworCitkZWYgdGVzdF9mYWlsX2V4dHJhX3JlcG9ydGluZyh0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6
CisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJDT0xVTU5TIiwgIjgwIikKKyAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoImRlZiB0ZXN0X3RoaXMoKTogYXNzZXJ0IDAsICd0aGlzX2ZhaWxlZCcgKiAxMDAi
KQogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKICAgICBhc3NlcnQgInNob3J0IHRl
c3Qgc3VtbWFyeSIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLXJmIikKLSAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
dGVzdCBzdW1tYXJ5KiIsICJGQUlMKnRlc3RfZmFpbF9leHRyYV9yZXBvcnRpbmcqIl0pCisgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAiKnRl
c3Qgc3VtbWFyeSoiLAorICAgICAgICAgICAgIkZBSUxFRCB0ZXN0X2ZhaWxfZXh0cmFfcmVwb3J0
aW5nLnB5Ojp0ZXN0X3RoaXMgLSBBc3NlcnRpb25FcnJvcjogdGhpc19mYWlsZWR0Li4uIiwKKyAg
ICAgICAgXQorICAgICkKIAogCiBkZWYgdGVzdF9mYWlsX3JlcG9ydGluZ19vbl9wYXNzKHRlc3Rk
aXIpOgpAQCAtNjg1LDE0ICs4MjYsMzAgQEAgZGVmIHRlc3RfcGFzc19yZXBvcnRpbmdfb25fZmFp
bCh0ZXN0ZGlyKToKIGRlZiB0ZXN0X3Bhc3Nfb3V0cHV0X3JlcG9ydGluZyh0ZXN0ZGlyKToKICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgotICAgICAgICBkZWYgdGVzdF9wYXNz
X291dHB1dCgpOgorICAgICAgICBkZWYgdGVzdF9wYXNzX2hhc19vdXRwdXQoKToKICAgICAgICAg
ICAgIHByaW50KCJGb3VyIHNjb3JlIGFuZCBzZXZlbiB5ZWFycyBhZ28uLi4iKQorICAgICAgICBk
ZWYgdGVzdF9wYXNzX25vX291dHB1dCgpOgorICAgICAgICAgICAgcGFzcwogICAgICIiIgogICAg
ICkKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCi0gICAgYXNzZXJ0ICJGb3VyIHNj
b3JlIGFuZCBzZXZlbiB5ZWFycyBhZ28uLi4iIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCi0g
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1yUCIpCi0gICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsiRm91ciBzY29yZSBhbmQgc2V2ZW4geWVhcnMgYWdvLi4uIl0pCisgICAg
cyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3NlcnQgInRlc3RfcGFzc19oYXNfb3V0cHV0
IiBub3QgaW4gcworICAgIGFzc2VydCAiRm91ciBzY29yZSBhbmQgc2V2ZW4geWVhcnMgYWdvLi4u
IiBub3QgaW4gcworICAgIGFzc2VydCAidGVzdF9wYXNzX25vX291dHB1dCIgbm90IGluIHMKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJQcCIpCisgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAgICAgICAiKj0gUEFTU0VTID0qIiwKKyAg
ICAgICAgICAgICIqXyB0ZXN0X3Bhc3NfaGFzX291dHB1dCBfKiIsCisgICAgICAgICAgICAiKi0g
Q2FwdHVyZWQgc3Rkb3V0IGNhbGwgLSoiLAorICAgICAgICAgICAgIkZvdXIgc2NvcmUgYW5kIHNl
dmVuIHllYXJzIGFnby4uLiIsCisgICAgICAgICAgICAiKj0gc2hvcnQgdGVzdCBzdW1tYXJ5IGlu
Zm8gPSoiLAorICAgICAgICAgICAgIlBBU1NFRCB0ZXN0X3Bhc3Nfb3V0cHV0X3JlcG9ydGluZy5w
eTo6dGVzdF9wYXNzX2hhc19vdXRwdXQiLAorICAgICAgICAgICAgIlBBU1NFRCB0ZXN0X3Bhc3Nf
b3V0cHV0X3JlcG9ydGluZy5weTo6dGVzdF9wYXNzX25vX291dHB1dCIsCisgICAgICAgICAgICAi
Kj0gMiBwYXNzZWQgaW4gKiIsCisgICAgICAgIF0KKyAgICApCiAKIAogZGVmIHRlc3RfY29sb3Jf
eWVzKHRlc3RkaXIpOgpAQCAtNzM1LDkgKzg5Miw3IEBAIGRlZiB0ZXN0X2NvbG9yX3llc19jb2xs
ZWN0aW9uX29uX25vbl9hdHR5KHRlc3RkaXIsIHZlcmJvc2UpOgogCiAKIGRlZiB0ZXN0X2dldHJl
cG9ydG9wdCgpOgotCiAgICAgY2xhc3MgQ29uZmlnKG9iamVjdCk6Ci0KICAgICAgICAgY2xhc3Mg
T3B0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICByZXBvcnRjaGFycyA9ICIiCiAgICAgICAgICAg
ICBkaXNhYmxlX3dhcm5pbmdzID0gVHJ1ZQpAQCAtNzUyLDE0ICs5MDcsMjMgQEAgZGVmIHRlc3Rf
Z2V0cmVwb3J0b3B0KCk6CiAgICAgY29uZmlnLm9wdGlvbi5yZXBvcnRjaGFycyA9ICJzZnh3Igog
ICAgIGFzc2VydCBnZXRyZXBvcnRvcHQoY29uZmlnKSA9PSAic2Z4IgogCi0gICAgY29uZmlnLm9w
dGlvbi5yZXBvcnRjaGFycyA9ICJzZngiCisgICAgIyBOb3cgd2l0aCAtLWRpc2FibGUtd2Fybmlu
Z3MuCiAgICAgY29uZmlnLm9wdGlvbi5kaXNhYmxlX3dhcm5pbmdzID0gRmFsc2UKKyAgICBjb25m
aWcub3B0aW9uLnJlcG9ydGNoYXJzID0gImEiCisgICAgYXNzZXJ0IGdldHJlcG9ydG9wdChjb25m
aWcpID09ICJzeFh3RWYiICAjIE5PVEU6ICJ3IiBpbmNsdWRlZCEKKworICAgIGNvbmZpZy5vcHRp
b24ucmVwb3J0Y2hhcnMgPSAic2Z4IgogICAgIGFzc2VydCBnZXRyZXBvcnRvcHQoY29uZmlnKSA9
PSAic2Z4dyIKIAogICAgIGNvbmZpZy5vcHRpb24ucmVwb3J0Y2hhcnMgPSAic2Z4dyIKLSAgICBj
b25maWcub3B0aW9uLmRpc2FibGVfd2FybmluZ3MgPSBGYWxzZQogICAgIGFzc2VydCBnZXRyZXBv
cnRvcHQoY29uZmlnKSA9PSAic2Z4dyIKIAorICAgIGNvbmZpZy5vcHRpb24ucmVwb3J0Y2hhcnMg
PSAiYSIKKyAgICBhc3NlcnQgZ2V0cmVwb3J0b3B0KGNvbmZpZykgPT0gInN4WHdFZiIgICMgTk9U
RTogInciIGluY2x1ZGVkIQorCisgICAgY29uZmlnLm9wdGlvbi5yZXBvcnRjaGFycyA9ICJBIgor
ICAgIGFzc2VydCBnZXRyZXBvcnRvcHQoY29uZmlnKSA9PSAiUHBzeFh3RWYiCisKIAogZGVmIHRl
c3RfdGVybWluYWxyZXBvcnRlcl9yZXBvcnRvcHRfYWRkb3B0cyh0ZXN0ZGlyKToKICAgICB0ZXN0
ZGlyLm1ha2VpbmkoIltweXRlc3RdXG5hZGRvcHRzPS1ycyIpCkBAIC04NDUsNyArMTAwOSw3IEBA
IGNsYXNzIFRlc3RHZW5lcmljUmVwb3J0aW5nKG9iamVjdCk6CiAgICAgICAgICAgICBkZWYgZygp
OgogICAgICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IKICAgICAgICAgICAgIGRlZiB0ZXN0
X2Z1bmMoKToKLSAgICAgICAgICAgICAgICBwcmludCAoNio3KQorICAgICAgICAgICAgICAgIHBy
aW50KDYqNykKICAgICAgICAgICAgICAgICBnKCkgICMgLS1jYWxsaW5nLS0KICAgICAgICAgIiIi
CiAgICAgICAgICkKQEAgLTg1NCw5ICsxMDE4LDkgQEAgY2xhc3MgVGVzdEdlbmVyaWNSZXBvcnRp
bmcob2JqZWN0KToKICAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXRi
PSVzIiAlIHRib3B0KQogICAgICAgICAgICAgcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKICAgICAg
ICAgICAgIGlmIHRib3B0ID09ICJsb25nIjoKLSAgICAgICAgICAgICAgICBhc3NlcnQgInByaW50
ICg2KjcpIiBpbiBzCisgICAgICAgICAgICAgICAgYXNzZXJ0ICJwcmludCg2KjcpIiBpbiBzCiAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGFzc2VydCAicHJpbnQgKDYqNykiIG5v
dCBpbiBzCisgICAgICAgICAgICAgICAgYXNzZXJ0ICJwcmludCg2KjcpIiBub3QgaW4gcwogICAg
ICAgICAgICAgaWYgdGJvcHQgIT0gIm5vIjoKICAgICAgICAgICAgICAgICBhc3NlcnQgIi0tY2Fs
bGluZy0tIiBpbiBzCiAgICAgICAgICAgICAgICAgYXNzZXJ0ICJJbmRleEVycm9yIiBpbiBzCkBA
IC04NzIsNyArMTAzNiw3IEBAIGNsYXNzIFRlc3RHZW5lcmljUmVwb3J0aW5nKG9iamVjdCk6CiAg
ICAgICAgICAgICBkZWYgZygpOgogICAgICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IKICAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKCk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKDYqNykK
KyAgICAgICAgICAgICAgICBwcmludCg2KjcpCiAgICAgICAgICAgICAgICAgZygpICAjIC0tY2Fs
bGluZy0tCiAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMigpOgogICAgICAgICAgICAgICAgIGFz
c2VydCAwLCAiaGVsbG8iCkBAIC05NTUsNiArMTExOSw0NiBAQCBkZWYgcHl0ZXN0X3JlcG9ydF9o
ZWFkZXIoY29uZmlnLCBzdGFydGRpcik6CiAgICAgICAgIGFzc2VydCAiIVRoaXMgaXMgc3RkZXJy
ISIgbm90IGluIHN0ZG91dAogICAgICAgICBhc3NlcnQgIiFUaGlzIGlzIGEgd2FybmluZyBsb2cg
bXNnISIgbm90IGluIHN0ZG91dAogCisgICAgZGVmIHRlc3Rfc2hvd19jYXB0dXJlX3dpdGhfdGVh
cmRvd25fbG9ncyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiRW5zdXJlIHRoYXQgdGhlIGNh
cHR1cmluZyBvZiB0ZWFyZG93biBsb2dzIGhvbm9yIC0tc2hvdy1jYXB0dXJlIHNldHRpbmciIiIK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICBpbXBvcnQgbG9nZ2luZworICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9u
IiwgYXV0b3VzZT0iVHJ1ZSIpCisgICAgICAgICAgICBkZWYgaG9va19lYWNoX3Rlc3QocmVxdWVz
dCk6CisgICAgICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0Lndy
aXRlKCIhc3Rkb3V0ISIpCisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiIXN0ZGVy
ciEiKQorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygiIWxvZyEiKQorCisgICAgICAg
ICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAg
ICAgICIiIgorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tc2hvdy1jYXB0dXJlPXN0ZG91dCIsICItLXRiPXNob3J0Iikuc3Rkb3V0LnN0cigpCisgICAg
ICAgIGFzc2VydCAiIXN0ZG91dCEiIGluIHJlc3VsdAorICAgICAgICBhc3NlcnQgIiFzdGRlcnIh
IiBub3QgaW4gcmVzdWx0CisgICAgICAgIGFzc2VydCAiIWxvZyEiIG5vdCBpbiByZXN1bHQKKwor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1zaG93LWNhcHR1cmU9c3RkZXJy
IiwgIi0tdGI9c2hvcnQiKS5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICIhc3Rkb3V0ISIg
bm90IGluIHJlc3VsdAorICAgICAgICBhc3NlcnQgIiFzdGRlcnIhIiBpbiByZXN1bHQKKyAgICAg
ICAgYXNzZXJ0ICIhbG9nISIgbm90IGluIHJlc3VsdAorCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLXNob3ctY2FwdHVyZT1sb2ciLCAiLS10Yj1zaG9ydCIpLnN0ZG91dC5z
dHIoKQorICAgICAgICBhc3NlcnQgIiFzdGRvdXQhIiBub3QgaW4gcmVzdWx0CisgICAgICAgIGFz
c2VydCAiIXN0ZGVyciEiIG5vdCBpbiByZXN1bHQKKyAgICAgICAgYXNzZXJ0ICIhbG9nISIgaW4g
cmVzdWx0CisKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tc2hvdy1jYXB0
dXJlPW5vIiwgIi0tdGI9c2hvcnQiKS5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICIhc3Rk
b3V0ISIgbm90IGluIHJlc3VsdAorICAgICAgICBhc3NlcnQgIiFzdGRlcnIhIiBub3QgaW4gcmVz
dWx0CisgICAgICAgIGFzc2VydCAiIWxvZyEiIG5vdCBpbiByZXN1bHQKKwogCiBAcHl0ZXN0Lm1h
cmsueGZhaWwoIm5vdCBoYXNhdHRyKG9zLCAnZHVwJykiKQogZGVmIHRlc3RfZmRvcGVuX2tlcHRf
YWxpdmVfaXNzdWUxMjQodGVzdGRpcik6CkBAIC0xMDEzLDIyICsxMjE3LDY2IEBAIGRlZiB0ZXN0
X3Rlcm1pbmFsX3N1bW1hcnkodGVzdGRpcik6CiAgICAgKQogCiAKK0BweXRlc3QubWFyay5maWx0
ZXJ3YXJuaW5ncygiZGVmYXVsdCIpCiBkZWYgdGVzdF90ZXJtaW5hbF9zdW1tYXJ5X3dhcm5pbmdz
X2FyZV9kaXNwbGF5ZWQodGVzdGRpcik6CiAgICAgIiIiVGVzdCB0aGF0IHdhcm5pbmdzIGVtaXR0
ZWQgZHVyaW5nIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5IGFyZSBkaXNwbGF5ZWQuCiAgICAgKCMx
MzA1KS4KICAgICAiIiIKICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgKICAgICAgICAgIiIiCisg
ICAgICAgIGltcG9ydCB3YXJuaW5ncwogICAgICAgICBkZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1h
cnkodGVybWluYWxyZXBvcnRlcik6Ci0gICAgICAgICAgICBjb25maWcgPSB0ZXJtaW5hbHJlcG9y
dGVyLmNvbmZpZwotICAgICAgICAgICAgY29uZmlnLndhcm4oJ0MxJywgJ2ludGVybmFsIHdhcm5p
bmcnKQorICAgICAgICAgICAgd2FybmluZ3Mud2FybihVc2VyV2FybmluZygnaW50ZXJuYWwgd2Fy
bmluZycpKQogICAgICIiIgogICAgICkKLSAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LXJ3IikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBkZWYg
dGVzdF9mYWlsdXJlKCk6CisgICAgICAgICAgICBpbXBvcnQgd2FybmluZ3MKKyAgICAgICAgICAg
IHdhcm5pbmdzLndhcm4oIndhcm5pbmdfZnJvbV8iICsgInRlc3QiKQorICAgICAgICAgICAgYXNz
ZXJ0IDAKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1y
YSIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICBbCisgICAgICAg
ICAgICAiKj0gd2FybmluZ3Mgc3VtbWFyeSA9KiIsCisgICAgICAgICAgICAiKndhcm5pbmdfZnJv
bV90ZXN0KiIsCisgICAgICAgICAgICAiKj0gc2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8gPSoiLAor
ICAgICAgICAgICAgIio9IHdhcm5pbmdzIHN1bW1hcnkgKGZpbmFsKSA9KiIsCisgICAgICAgICAg
ICAiKmNvbmZ0ZXN0LnB5OjM6KmludGVybmFsIHdhcm5pbmciLAorICAgICAgICAgICAgIio9PSAx
IGZhaWxlZCwgMiB3YXJuaW5ncyBpbiAqIiwKKyAgICAgICAgXQorICAgICkKKyAgICBhc3NlcnQg
Ik5vbmUiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgc3Rkb3V0ID0gcmVzdWx0LnN0
ZG91dC5zdHIoKQorICAgIGFzc2VydCBzdGRvdXQuY291bnQoIndhcm5pbmdfZnJvbV90ZXN0Iikg
PT0gMQorICAgIGFzc2VydCBzdGRvdXQuY291bnQoIj09PSB3YXJuaW5ncyBzdW1tYXJ5ICIpID09
IDIKKworCitAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImRlZmF1bHQiKQorZGVmIHRlc3Rf
dGVybWluYWxfc3VtbWFyeV93YXJuaW5nc19oZWFkZXJfb25jZSh0ZXN0ZGlyKToKKyAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBkZWYgdGVzdF9mYWlsdXJlKCk6
CisgICAgICAgICAgICBpbXBvcnQgd2FybmluZ3MKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4o
Indhcm5pbmdfZnJvbV8iICsgInRlc3QiKQorICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAiIiIK
KyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1yYSIpCiAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAotICAgICAgICBbIjx1bmRldGVybWluZWQgbG9jYXRpb24+
IiwgIippbnRlcm5hbCB3YXJuaW5nIiwgIio9PSAxIHdhcm5pbmdzIGluICoiXQorICAgICAgICBb
CisgICAgICAgICAgICAiKj0gd2FybmluZ3Mgc3VtbWFyeSA9KiIsCisgICAgICAgICAgICAiKndh
cm5pbmdfZnJvbV90ZXN0KiIsCisgICAgICAgICAgICAiKj0gc2hvcnQgdGVzdCBzdW1tYXJ5IGlu
Zm8gPSoiLAorICAgICAgICAgICAgIio9PSAxIGZhaWxlZCwgMSB3YXJuaW5ncyBpbiAqIiwKKyAg
ICAgICAgXQogICAgICkKICAgICBhc3NlcnQgIk5vbmUiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0
cigpCisgICAgc3Rkb3V0ID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCBzdGRvdXQu
Y291bnQoIndhcm5pbmdfZnJvbV90ZXN0IikgPT0gMQorICAgIGFzc2VydCBzdGRvdXQuY291bnQo
Ij09PSB3YXJuaW5ncyBzdW1tYXJ5ICIpID09IDEKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoCkBAIC0xMDg1LDI0ICsxMzMzLDc0IEBAIGRlZiB0ZXN0X3Rlcm1pbmFsX3N1bW1hcnlfd2Fy
bmluZ3NfYXJlX2Rpc3BsYXllZCh0ZXN0ZGlyKToKICkKIGRlZiB0ZXN0X3N1bW1hcnlfc3RhdHMo
ZXhwX2xpbmUsIGV4cF9jb2xvciwgc3RhdHNfYXJnKToKICAgICBwcmludCgiQmFzZWQgb24gc3Rh
dHM6ICVzIiAlIHN0YXRzX2FyZykKLSAgICBwcmludCgnRXhwZWN0IHN1bW1hcnk6ICIlcyI7IHdp
dGggY29sb3IgIiVzIicgJSAoZXhwX2xpbmUsIGV4cF9jb2xvcikpCisgICAgcHJpbnQoJ0V4cGVj
dCBzdW1tYXJ5OiAie30iOyB3aXRoIGNvbG9yICJ7fSInLmZvcm1hdChleHBfbGluZSwgZXhwX2Nv
bG9yKSkKICAgICAobGluZSwgY29sb3IpID0gYnVpbGRfc3VtbWFyeV9zdGF0c19saW5lKHN0YXRz
X2FyZykKLSAgICBwcmludCgnQWN0dWFsbHkgZ290OiAgICIlcyI7IHdpdGggY29sb3IgIiVzIicg
JSAobGluZSwgY29sb3IpKQorICAgIHByaW50KCdBY3R1YWxseSBnb3Q6ICAgInt9Ijsgd2l0aCBj
b2xvciAie30iJy5mb3JtYXQobGluZSwgY29sb3IpKQogICAgIGFzc2VydCBsaW5lID09IGV4cF9s
aW5lCiAgICAgYXNzZXJ0IGNvbG9yID09IGV4cF9jb2xvcgogCiAKLWRlZiB0ZXN0X25vX3RyYWls
aW5nX3doaXRlc3BhY2VfYWZ0ZXJfaW5pZmlsZV93b3JkKHRlc3RkaXIpOgotICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCIiKQotICAgIGFzc2VydCAiaW5pZmlsZTpcbiIgaW4gcmVzdWx0
LnN0ZG91dC5zdHIoKQorZGVmIHRlc3Rfc2tpcF9jb3VudGluZ190b3dhcmRzX3N1bW1hcnkoKToK
KyAgICBjbGFzcyBEdW1teVJlcG9ydChCYXNlUmVwb3J0KToKKyAgICAgICAgY291bnRfdG93YXJk
c19zdW1tYXJ5ID0gVHJ1ZQorCisgICAgcjEgPSBEdW1teVJlcG9ydCgpCisgICAgcjIgPSBEdW1t
eVJlcG9ydCgpCisgICAgcmVzID0gYnVpbGRfc3VtbWFyeV9zdGF0c19saW5lKHsiZmFpbGVkIjog
KHIxLCByMil9KQorICAgIGFzc2VydCByZXMgPT0gKCIyIGZhaWxlZCIsICJyZWQiKQogCi0gICAg
dGVzdGRpci5tYWtlaW5pKCJbcHl0ZXN0XSIpCi0gICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIiIpCi0gICAgYXNzZXJ0ICJpbmlmaWxlOiB0b3guaW5pXG4iIGluIHJlc3VsdC5zdGRvdXQu
c3RyKCkKKyAgICByMS5jb3VudF90b3dhcmRzX3N1bW1hcnkgPSBGYWxzZQorICAgIHJlcyA9IGJ1
aWxkX3N1bW1hcnlfc3RhdHNfbGluZSh7ImZhaWxlZCI6IChyMSwgcjIpfSkKKyAgICBhc3NlcnQg
cmVzID09ICgiMSBmYWlsZWQiLCAicmVkIikKKworCitjbGFzcyBUZXN0Q2xhc3NpY091dHB1dFN0
eWxlKG9iamVjdCk6CisgICAgIiIiRW5zdXJlIGNsYXNzaWMgb3V0cHV0IHN0eWxlIHdvcmtzIGFz
IGV4cGVjdGVkICgjMzg4MykiIiIKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiB0ZXN0
X2ZpbGVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAg
ICAgICAgICAqKnsKKyAgICAgICAgICAgICAgICAidGVzdF9vbmUucHkiOiAiZGVmIHRlc3Rfb25l
KCk6IHBhc3MiLAorICAgICAgICAgICAgICAgICJ0ZXN0X3R3by5weSI6ICJkZWYgdGVzdF90d28o
KTogYXNzZXJ0IDAiLAorICAgICAgICAgICAgICAgICJzdWIvdGVzdF90aHJlZS5weSI6ICIiIgor
ICAgICAgICAgICAgICAgICAgICBkZWYgdGVzdF90aHJlZV8xKCk6IHBhc3MKKyAgICAgICAgICAg
ICAgICAgICAgZGVmIHRlc3RfdGhyZWVfMigpOiBhc3NlcnQgMAorICAgICAgICAgICAgICAgICAg
ICBkZWYgdGVzdF90aHJlZV8zKCk6IHBhc3MKKyAgICAgICAgICAgICAgICAiIiIsCisgICAgICAg
ICAgICB9CisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X25vcm1hbF92ZXJib3NpdHkoc2VsZiwg
dGVzdGRpciwgdGVzdF9maWxlcyk6CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItbyIsICJjb25zb2xlX291dHB1dF9zdHlsZT1jbGFzc2ljIikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICJ0ZXN0
X29uZS5weSAuIiwKKyAgICAgICAgICAgICAgICAidGVzdF90d28ucHkgRiIsCisgICAgICAgICAg
ICAgICAgInN1Ynt9dGVzdF90aHJlZS5weSAuRi4iLmZvcm1hdChvcy5zZXApLAorICAgICAgICAg
ICAgICAgICIqMiBmYWlsZWQsIDMgcGFzc2VkIGluKiIsCisgICAgICAgICAgICBdCisgICAgICAg
ICkKKworICAgIGRlZiB0ZXN0X3ZlcmJvc2Uoc2VsZiwgdGVzdGRpciwgdGVzdF9maWxlcyk6Cisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItbyIsICJjb25zb2xlX291dHB1dF9z
dHlsZT1jbGFzc2ljIiwgIi12IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICJ0ZXN0X29uZS5weTo6dGVzdF9vbmUg
UEFTU0VEIiwKKyAgICAgICAgICAgICAgICAidGVzdF90d28ucHk6OnRlc3RfdHdvIEZBSUxFRCIs
CisgICAgICAgICAgICAgICAgInN1Ynt9dGVzdF90aHJlZS5weTo6dGVzdF90aHJlZV8xIFBBU1NF
RCIuZm9ybWF0KG9zLnNlcCksCisgICAgICAgICAgICAgICAgInN1Ynt9dGVzdF90aHJlZS5weTo6
dGVzdF90aHJlZV8yIEZBSUxFRCIuZm9ybWF0KG9zLnNlcCksCisgICAgICAgICAgICAgICAgInN1
Ynt9dGVzdF90aHJlZS5weTo6dGVzdF90aHJlZV8zIFBBU1NFRCIuZm9ybWF0KG9zLnNlcCksCisg
ICAgICAgICAgICAgICAgIioyIGZhaWxlZCwgMyBwYXNzZWQgaW4qIiwKKyAgICAgICAgICAgIF0K
KyAgICAgICAgKQogCisgICAgZGVmIHRlc3RfcXVpZXQoc2VsZiwgdGVzdGRpciwgdGVzdF9maWxl
cyk6CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItbyIsICJjb25zb2xlX291
dHB1dF9zdHlsZT1jbGFzc2ljIiwgIi1xIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiLkYuRi4iLCAiKjIgZmFpbGVkLCAzIHBhc3NlZCBpbioiXSkKIAotY2xhc3MgVGVz
dFByb2dyZXNzKG9iamVjdCk6CiAKK2NsYXNzIFRlc3RQcm9ncmVzc091dHB1dFN0eWxlKG9iamVj
dCk6CiAgICAgQHB5dGVzdC5maXh0dXJlCiAgICAgZGVmIG1hbnlfdGVzdHNfZmlsZXMoc2VsZiwg
dGVzdGRpcik6CiAgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAgLTExNTEsNiArMTQ0OSwy
MiBAQCBjbGFzcyBUZXN0UHJvZ3Jlc3Mob2JqZWN0KToKICAgICAgICAgICAgIF0KICAgICAgICAg
KQogCisgICAgZGVmIHRlc3RfY291bnQoc2VsZiwgbWFueV90ZXN0c19maWxlcywgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
W3B5dGVzdF0KKyAgICAgICAgICAgIGNvbnNvbGVfb3V0cHV0X3N0eWxlID0gY291bnQKKyAgICAg
ICAgIiIiCisgICAgICAgICkKKyAgICAgICAgb3V0cHV0ID0gdGVzdGRpci5ydW5weXRlc3QoKQor
ICAgICAgICBvdXRwdXQuc3Rkb3V0LnJlX21hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAg
ICAgICAgICAgICAgIHIidGVzdF9iYXIucHkgXC57MTB9IFxzKyBcWzEwLzIwXF0iLAorICAgICAg
ICAgICAgICAgIHIidGVzdF9mb28ucHkgXC57NX0gXHMrIFxbMTUvMjBcXSIsCisgICAgICAgICAg
ICAgICAgciJ0ZXN0X2Zvb2Jhci5weSBcLns1fSBccysgXFsyMC8yMFxdIiwKKyAgICAgICAgICAg
IF0KKyAgICAgICAgKQorCiAgICAgZGVmIHRlc3RfdmVyYm9zZShzZWxmLCBtYW55X3Rlc3RzX2Zp
bGVzLCB0ZXN0ZGlyKToKICAgICAgICAgb3V0cHV0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikK
ICAgICAgICAgb3V0cHV0LnN0ZG91dC5yZV9tYXRjaF9saW5lcygKQEAgLTExNjEsMTMgKzE0NzUs
NDMgQEAgY2xhc3MgVGVzdFByb2dyZXNzKG9iamVjdCk6CiAgICAgICAgICAgICBdCiAgICAgICAg
ICkKIAotICAgIGRlZiB0ZXN0X3hkaXN0X25vcm1hbChzZWxmLCBtYW55X3Rlc3RzX2ZpbGVzLCB0
ZXN0ZGlyKToKKyAgICBkZWYgdGVzdF92ZXJib3NlX2NvdW50KHNlbGYsIG1hbnlfdGVzdHNfZmls
ZXMsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICAgICAiIiIK
KyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBjb25zb2xlX291dHB1dF9zdHlsZSA9
IGNvdW50CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIG91dHB1dCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCItdiIpCisgICAgICAgIG91dHB1dC5zdGRvdXQucmVfbWF0Y2hfbGluZXMoCisg
ICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgciJ0ZXN0X2Jhci5weTo6dGVzdF9iYXJcWzBc
XSBQQVNTRUQgXHMrIFxbIDEvMjBcXSIsCisgICAgICAgICAgICAgICAgciJ0ZXN0X2Zvby5weTo6
dGVzdF9mb29cWzRcXSBQQVNTRUQgXHMrIFxbMTUvMjBcXSIsCisgICAgICAgICAgICAgICAgciJ0
ZXN0X2Zvb2Jhci5weTo6dGVzdF9mb29iYXJcWzRcXSBQQVNTRUQgXHMrIFxbMjAvMjBcXSIsCisg
ICAgICAgICAgICBdCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3hkaXN0X25vcm1hbChzZWxm
LCBtYW55X3Rlc3RzX2ZpbGVzLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CiAgICAgICAgIHB5dGVz
dC5pbXBvcnRvcnNraXAoInhkaXN0IikKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KCJQWVRF
U1RfRElTQUJMRV9QTFVHSU5fQVVUT0xPQUQiLCByYWlzaW5nPUZhbHNlKQogICAgICAgICBvdXRw
dXQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLW4yIikKICAgICAgICAgb3V0cHV0LnN0ZG91dC5yZV9t
YXRjaF9saW5lcyhbciJcLnsyMH0gXHMrIFxbMTAwJVxdIl0pCiAKLSAgICBkZWYgdGVzdF94ZGlz
dF92ZXJib3NlKHNlbGYsIG1hbnlfdGVzdHNfZmlsZXMsIHRlc3RkaXIpOgorICAgIGRlZiB0ZXN0
X3hkaXN0X25vcm1hbF9jb3VudChzZWxmLCBtYW55X3Rlc3RzX2ZpbGVzLCB0ZXN0ZGlyLCBtb25r
ZXlwYXRjaCk6CiAgICAgICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoInhkaXN0IikKKyAgICAgICAg
bW9ua2V5cGF0Y2guZGVsZW52KCJQWVRFU1RfRElTQUJMRV9QTFVHSU5fQVVUT0xPQUQiLCByYWlz
aW5nPUZhbHNlKQorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBjb25zb2xlX291dHB1dF9zdHlsZSA9IGNv
dW50CisgICAgICAgICIiIgorICAgICAgICApCisgICAgICAgIG91dHB1dCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCItbjIiKQorICAgICAgICBvdXRwdXQuc3Rkb3V0LnJlX21hdGNoX2xpbmVzKFtyIlwu
ezIwfSBccysgXFsyMC8yMFxdIl0pCisKKyAgICBkZWYgdGVzdF94ZGlzdF92ZXJib3NlKHNlbGYs
IG1hbnlfdGVzdHNfZmlsZXMsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgcHl0ZXN0
LmltcG9ydG9yc2tpcCgieGRpc3QiKQorICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYoIlBZVEVT
VF9ESVNBQkxFX1BMVUdJTl9BVVRPTE9BRCIsIHJhaXNpbmc9RmFsc2UpCiAgICAgICAgIG91dHB1
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItbjIiLCAiLXYiKQogICAgICAgICBvdXRwdXQuc3Rkb3V0
LnJlX21hdGNoX2xpbmVzX3JhbmRvbSgKICAgICAgICAgICAgIFsKQEAgLTEyMzYsMTIgKzE1ODAs
MTYgQEAgY2xhc3MgVGVzdFByb2dyZXNzV2l0aFRlYXJkb3duKG9iamVjdCk6CiAgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgZGVmIHRlc3Rf
Zm9vKGZhaWxfdGVhcmRvd24pOgotICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICAg
ICAgICAgICAgIGFzc2VydCAwCiAgICAgICAgICIiIgogICAgICAgICApCi0gICAgICAgIG91dHB1
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgb3V0cHV0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi1yZkUiKQogICAgICAgICBvdXRwdXQuc3Rkb3V0LnJlX21hdGNoX2xpbmVzKAotICAgICAg
ICAgICAgW3IidGVzdF90ZWFyZG93bl93aXRoX3Rlc3RfYWxzb19mYWlsaW5nLnB5IEZFXHMrXFsx
MDAlXF0iXQorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIHIidGVzdF90ZWFyZG93bl93
aXRoX3Rlc3RfYWxzb19mYWlsaW5nLnB5IEZFXHMrXFsxMDAlXF0iLAorICAgICAgICAgICAgICAg
ICJGQUlMRUQgdGVzdF90ZWFyZG93bl93aXRoX3Rlc3RfYWxzb19mYWlsaW5nLnB5Ojp0ZXN0X2Zv
byAtIGFzc2VydCAwIiwKKyAgICAgICAgICAgICAgICAiRVJST1IgdGVzdF90ZWFyZG93bl93aXRo
X3Rlc3RfYWxzb19mYWlsaW5nLnB5Ojp0ZXN0X2ZvbyAtIGFzc2VydCBGYWxzZSIsCisgICAgICAg
ICAgICBdCiAgICAgICAgICkKIAogICAgIGRlZiB0ZXN0X3RlYXJkb3duX21hbnkoc2VsZiwgdGVz
dGRpciwgbWFueV9maWxlcyk6CkBAIC0xMjYxLDcgKzE2MDksMTExIEBAIGNsYXNzIFRlc3RQcm9n
cmVzc1dpdGhUZWFyZG93bihvYmplY3QpOgogICAgICAgICAgICAgXQogICAgICAgICApCiAKLSAg
ICBkZWYgdGVzdF94ZGlzdF9ub3JtYWwoc2VsZiwgbWFueV9maWxlcywgdGVzdGRpcik6CisgICAg
ZGVmIHRlc3RfeGRpc3Rfbm9ybWFsKHNlbGYsIG1hbnlfZmlsZXMsIHRlc3RkaXIsIG1vbmtleXBh
dGNoKToKICAgICAgICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgieGRpc3QiKQorICAgICAgICBtb25r
ZXlwYXRjaC5kZWxlbnYoIlBZVEVTVF9ESVNBQkxFX1BMVUdJTl9BVVRPTE9BRCIsIHJhaXNpbmc9
RmFsc2UpCiAgICAgICAgIG91dHB1dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItbjIiKQogICAgICAg
ICBvdXRwdXQuc3Rkb3V0LnJlX21hdGNoX2xpbmVzKFtyIltcLkVdezQwfSBccysgXFsxMDAlXF0i
XSkKKworCitkZWYgdGVzdF9za2lwX3JlYXNvbnNfZm9sZGluZygpOgorICAgIHBhdGggPSAieHl6
IgorICAgIGxpbmVubyA9IDMKKyAgICBtZXNzYWdlID0gImp1c3RzbyIKKyAgICBsb25ncmVwciA9
IChwYXRoLCBsaW5lbm8sIG1lc3NhZ2UpCisKKyAgICBjbGFzcyBYKG9iamVjdCk6CisgICAgICAg
IHBhc3MKKworICAgIGV2MSA9IFgoKQorICAgIGV2MS53aGVuID0gImV4ZWN1dGUiCisgICAgZXYx
LnNraXBwZWQgPSBUcnVlCisgICAgZXYxLmxvbmdyZXByID0gbG9uZ3JlcHIKKworICAgIGV2MiA9
IFgoKQorICAgIGV2Mi53aGVuID0gImV4ZWN1dGUiCisgICAgZXYyLmxvbmdyZXByID0gbG9uZ3Jl
cHIKKyAgICBldjIuc2tpcHBlZCA9IFRydWUKKworICAgICMgZXYzIG1pZ2h0IGJlIGEgY29sbGVj
dGlvbiByZXBvcnQKKyAgICBldjMgPSBYKCkKKyAgICBldjMud2hlbiA9ICJjb2xsZWN0IgorICAg
IGV2My5sb25ncmVwciA9IGxvbmdyZXByCisgICAgZXYzLnNraXBwZWQgPSBUcnVlCisKKyAgICB2
YWx1ZXMgPSBfZm9sZGVkX3NraXBzKFtldjEsIGV2MiwgZXYzXSkKKyAgICBhc3NlcnQgbGVuKHZh
bHVlcykgPT0gMQorICAgIG51bSwgZnNwYXRoLCBsaW5lbm8sIHJlYXNvbiA9IHZhbHVlc1swXQor
ICAgIGFzc2VydCBudW0gPT0gMworICAgIGFzc2VydCBmc3BhdGggPT0gcGF0aAorICAgIGFzc2Vy
dCBsaW5lbm8gPT0gbGluZW5vCisgICAgYXNzZXJ0IHJlYXNvbiA9PSBtZXNzYWdlCisKKworZGVm
IHRlc3RfbGluZV93aXRoX3JlcHJjcmFzaChtb25rZXlwYXRjaCk6CisgICAgaW1wb3J0IF9weXRl
c3QudGVybWluYWwKKyAgICBmcm9tIHdjd2lkdGggaW1wb3J0IHdjc3dpZHRoCisKKyAgICBtb2Nr
ZWRfdmVyYm9zZV93b3JkID0gIkZBSUxFRCIKKworICAgIG1vY2tlZF9wb3MgPSAic29tZTo6bm9k
ZWlkIgorCisgICAgZGVmIG1vY2tfZ2V0X3BvcygqYXJncyk6CisgICAgICAgIHJldHVybiBtb2Nr
ZWRfcG9zCisKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKF9weXRlc3QudGVybWluYWwsICJfZ2V0
X3BvcyIsIG1vY2tfZ2V0X3BvcykKKworICAgIGNsYXNzIGNvbmZpZyhvYmplY3QpOgorICAgICAg
ICBwYXNzCisKKyAgICBjbGFzcyByZXAob2JqZWN0KToKKyAgICAgICAgZGVmIF9nZXRfdmVyYm9z
ZV93b3JkKHNlbGYsICphcmdzKToKKyAgICAgICAgICAgIHJldHVybiBtb2NrZWRfdmVyYm9zZV93
b3JkCisKKyAgICAgICAgY2xhc3MgbG9uZ3JlcHI6CisgICAgICAgICAgICBjbGFzcyByZXByY3Jh
c2g6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgZGVmIGNoZWNrKG1zZywgd2lkdGgsIGV4
cGVjdGVkKToKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIGlmIG1z
ZzoKKyAgICAgICAgICAgIHJlcC5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZSA9IG1zZworICAg
ICAgICBhY3R1YWwgPSBfZ2V0X2xpbmVfd2l0aF9yZXByY3Jhc2hfbWVzc2FnZShjb25maWcsIHJl
cCgpLCB3aWR0aCkKKworICAgICAgICBhc3NlcnQgYWN0dWFsID09IGV4cGVjdGVkCisgICAgICAg
IGlmIGFjdHVhbCAhPSAiJXMgJXMiICUgKG1vY2tlZF92ZXJib3NlX3dvcmQsIG1vY2tlZF9wb3Mp
OgorICAgICAgICAgICAgYXNzZXJ0IGxlbihhY3R1YWwpIDw9IHdpZHRoCisgICAgICAgICAgICBh
c3NlcnQgd2Nzd2lkdGgoYWN0dWFsKSA8PSB3aWR0aAorCisgICAgIyBBdHRyaWJ1dGVFcnJvciB3
aXRoIG1lc3NhZ2UKKyAgICBjaGVjayhOb25lLCA4MCwgIkZBSUxFRCBzb21lOjpub2RlaWQiKQor
CisgICAgY2hlY2soIm1zZyIsIDgwLCAiRkFJTEVEIHNvbWU6Om5vZGVpZCAtIG1zZyIpCisgICAg
Y2hlY2soIm1zZyIsIDMsICJGQUlMRUQgc29tZTo6bm9kZWlkIikKKworICAgIGNoZWNrKCJtc2ci
LCAyNCwgIkZBSUxFRCBzb21lOjpub2RlaWQiKQorICAgIGNoZWNrKCJtc2ciLCAyNSwgIkZBSUxF
RCBzb21lOjpub2RlaWQgLSBtc2ciKQorCisgICAgY2hlY2soInNvbWUgbG9uZ2VyIG1zZyIsIDI0
LCAiRkFJTEVEIHNvbWU6Om5vZGVpZCIpCisgICAgY2hlY2soInNvbWUgbG9uZ2VyIG1zZyIsIDI1
LCAiRkFJTEVEIHNvbWU6Om5vZGVpZCAtIC4uLiIpCisgICAgY2hlY2soInNvbWUgbG9uZ2VyIG1z
ZyIsIDI2LCAiRkFJTEVEIHNvbWU6Om5vZGVpZCAtIHMuLi4iKQorCisgICAgY2hlY2soInNvbWVc
bm1lc3NhZ2UiLCAyNSwgIkZBSUxFRCBzb21lOjpub2RlaWQgLSAuLi4iKQorICAgIGNoZWNrKCJz
b21lXG5tZXNzYWdlIiwgMjYsICJGQUlMRUQgc29tZTo6bm9kZWlkIC0gc29tZSIpCisgICAgY2hl
Y2soInNvbWVcbm1lc3NhZ2UiLCA4MCwgIkZBSUxFRCBzb21lOjpub2RlaWQgLSBzb21lIikKKwor
ICAgICMgVGVzdCB1bmljb2RlIHNhZmV0eS4KKyAgICBjaGVjayh1IvCfmITwn5iE8J+YhPCfmITw
n5iEXG4ybmQgbGluZSIsIDI1LCB1IkZBSUxFRCBzb21lOjpub2RlaWQgLSAuLi4iKQorICAgIGNo
ZWNrKHUi8J+YhPCfmITwn5iE8J+YhPCfmIRcbjJuZCBsaW5lIiwgMjYsIHUiRkFJTEVEIHNvbWU6
Om5vZGVpZCAtIC4uLiIpCisgICAgY2hlY2sodSLwn5iE8J+YhPCfmITwn5iE8J+YhFxuMm5kIGxp
bmUiLCAyNywgdSJGQUlMRUQgc29tZTo6bm9kZWlkIC0g8J+YhC4uLiIpCisgICAgY2hlY2sodSLw
n5iE8J+YhPCfmITwn5iE8J+YhFxuMm5kIGxpbmUiLCAyOCwgdSJGQUlMRUQgc29tZTo6bm9kZWlk
IC0g8J+YhC4uLiIpCisgICAgY2hlY2sodSLwn5iE8J+YhPCfmITwn5iE8J+YhFxuMm5kIGxpbmUi
LCAyOSwgdSJGQUlMRUQgc29tZTo6bm9kZWlkIC0g8J+YhPCfmIQuLi4iKQorCisgICAgIyBOT1RF
OiBjb25zdHJ1Y3RlZCwgbm90IHN1cmUgaWYgdGhpcyBpcyBzdXBwb3J0ZWQuCisgICAgIyBJdCB3
b3VsZCBmYWlsIGlmIG5vdCB1c2luZyB1IiIgaW4gUHl0aG9uIDIgZm9yIG1vY2tlZF9wb3MuCisg
ICAgbW9ja2VkX3BvcyA9IHUibm9kZWlkOjrwn5iEOjp3aXRodW5pY29kZSIKKyAgICBjaGVjayh1
IvCfmITwn5iE8J+YhPCfmITwn5iEXG4ybmQgbGluZSIsIDI5LCB1IkZBSUxFRCBub2RlaWQ6OvCf
mIQ6OndpdGh1bmljb2RlIikKKyAgICBjaGVjayh1IvCfmITwn5iE8J+YhPCfmITwn5iEXG4ybmQg
bGluZSIsIDQwLCB1IkZBSUxFRCBub2RlaWQ6OvCfmIQ6OndpdGh1bmljb2RlIC0g8J+YhPCfmIQu
Li4iKQorICAgIGNoZWNrKHUi8J+YhPCfmITwn5iE8J+YhPCfmIRcbjJuZCBsaW5lIiwgNDEsIHUi
RkFJTEVEIG5vZGVpZDo68J+YhDo6d2l0aHVuaWNvZGUgLSDwn5iE8J+YhC4uLiIpCisgICAgY2hl
Y2sodSLwn5iE8J+YhPCfmITwn5iE8J+YhFxuMm5kIGxpbmUiLCA0MiwgdSJGQUlMRUQgbm9kZWlk
Ojrwn5iEOjp3aXRodW5pY29kZSAtIPCfmITwn5iE8J+YhC4uLiIpCisgICAgY2hlY2sodSLwn5iE
8J+YhPCfmITwn5iE8J+YhFxuMm5kIGxpbmUiLCA4MCwgdSJGQUlMRUQgbm9kZWlkOjrwn5iEOjp3
aXRodW5pY29kZSAtIPCfmITwn5iE8J+YhPCfmITwn5iEIikKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF90bXBkaXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfdG1w
ZGlyLnB5CmluZGV4IDMzNjI0OTA5NDk1Nzg1NDIzMjY1YjhjNDQ2NDhlZWI3MmE4YzlmNGQuLjc2
MjIzNDJiMWQ3NDM3NmI3ZjNmOTY2M2JiNWI5ZjYyMjlhMzU3ZDIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvdGVzdF90bXBkaXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X3RtcGRpci5weQpAQCAtMSwzNyArMSwyNiBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBh
YnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorIyAtKi0gY29kaW5nOiB1
dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1
bmN0aW9uCisKK2ltcG9ydCBlcnJubworaW1wb3J0IG9zCitpbXBvcnQgc3RhdAogaW1wb3J0IHN5
cwotaW1wb3J0IHB5Ci1pbXBvcnQgcHl0ZXN0CiAKLWZyb20gX3B5dGVzdC50bXBkaXIgaW1wb3J0
IHRtcGRpcgoraW1wb3J0IGF0dHIKK2ltcG9ydCBzaXgKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBf
cHl0ZXN0IGltcG9ydCBwYXRobGliCitmcm9tIF9weXRlc3QucGF0aGxpYiBpbXBvcnQgUGF0aAor
ZnJvbSBfcHl0ZXN0Lndhcm5pbmdzIGltcG9ydCBTSE9XX1BZVEVTVF9XQVJOSU5HU19BUkcKIAot
ZGVmIHRlc3RfZnVuY2FyZyh0ZXN0ZGlyKToKLSAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCi0gICAg
ICAgICIiIgotICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6
Ci0gICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChpZD0nYScpCi0gICAgICAgICAgICAg
ICAgbWV0YWZ1bmMuYWRkY2FsbChpZD0nYicpCi0gICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHRt
cGRpcik6IHBhc3MKLSAgICAiIiIKLSAgICApCi0gICAgZnJvbSBfcHl0ZXN0LnRtcGRpciBpbXBv
cnQgVGVtcGRpckZhY3RvcnkKIAotICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCi0g
ICAgY2FsbHMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X3NldHVwIikKLSAgICBp
dGVtID0gY2FsbHNbMF0uaXRlbQotICAgIGNvbmZpZyA9IGl0ZW0uY29uZmlnCi0gICAgdG1wZGly
aGFuZGxlciA9IFRlbXBkaXJGYWN0b3J5KGNvbmZpZykKLSAgICBpdGVtLl9pbml0cmVxdWVzdCgp
Ci0gICAgcCA9IHRtcGRpcihpdGVtLl9yZXF1ZXN0LCB0bXBkaXJoYW5kbGVyKQotICAgIGFzc2Vy
dCBwLmNoZWNrKCkKLSAgICBibiA9IHAuYmFzZW5hbWUuc3RyaXAoIjAxMjM0NTY3ODkiKQotICAg
IGFzc2VydCBibi5lbmRzd2l0aCgidGVzdF9mdW5jX2FfIikKLSAgICBpdGVtLm5hbWUgPSAicXdl
L1xcYWJjIgotICAgIHAgPSB0bXBkaXIoaXRlbS5fcmVxdWVzdCwgdG1wZGlyaGFuZGxlcikKLSAg
ICBhc3NlcnQgcC5jaGVjaygpCi0gICAgYm4gPSBwLmJhc2VuYW1lLnN0cmlwKCIwMTIzNDU2Nzg5
IikKLSAgICBhc3NlcnQgYm4gPT0gInF3ZV9fYWJjIgorZGVmIHRlc3RfdG1wZGlyX2ZpeHR1cmUo
dGVzdGRpcik6CisgICAgcCA9IHRlc3RkaXIuY29weV9leGFtcGxlKCJ0bXBkaXIvdG1wZGlyX2Zp
eHR1cmUucHkiKQorICAgIHJlc3VsdHMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgIHJlc3Vs
dHMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCiAKIAogZGVmIHRlc3RfZW5z
dXJldGVtcChyZWN3YXJuKToKQEAgLTQxLDE0ICszMCwzMCBAQCBkZWYgdGVzdF9lbnN1cmV0ZW1w
KHJlY3dhcm4pOgogICAgIGFzc2VydCBkMS5jaGVjayhkaXI9MSkKIAogCitAYXR0ci5zCitjbGFz
cyBGYWtlQ29uZmlnKG9iamVjdCk6CisgICAgYmFzZXRlbXAgPSBhdHRyLmliKCkKKyAgICB0cmFj
ZSA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHRyYWNl
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGdldChzZWxmLCBrZXkpOgor
ICAgICAgICByZXR1cm4gbGFtYmRhICprOiBOb25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg
b3B0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisKIGNsYXNzIFRlc3RUZW1wZGly
SGFuZGxlcihvYmplY3QpOgorICAgIGRlZiB0ZXN0X21rdGVtcChzZWxmLCB0bXBfcGF0aCk6CiAK
LSAgICBkZWYgdGVzdF9ta3RlbXAoc2VsZiwgdGVzdGRpcik6Ci0gICAgICAgIGZyb20gX3B5dGVz
dC50bXBkaXIgaW1wb3J0IFRlbXBkaXJGYWN0b3J5CisgICAgICAgIGZyb20gX3B5dGVzdC50bXBk
aXIgaW1wb3J0IFRlbXBkaXJGYWN0b3J5LCBUZW1wUGF0aEZhY3RvcnkKIAotICAgICAgICBjb25m
aWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKLSAgICAgICAgY29uZmlnLm9wdGlvbi5iYXNldGVt
cCA9IHRlc3RkaXIubWtkaXIoImhlbGxvIikKLSAgICAgICAgdCA9IFRlbXBkaXJGYWN0b3J5KGNv
bmZpZykKKyAgICAgICAgY29uZmlnID0gRmFrZUNvbmZpZyh0bXBfcGF0aCkKKyAgICAgICAgdCA9
IFRlbXBkaXJGYWN0b3J5KFRlbXBQYXRoRmFjdG9yeS5mcm9tX2NvbmZpZyhjb25maWcpKQogICAg
ICAgICB0bXAgPSB0Lm1rdGVtcCgid29ybGQiKQogICAgICAgICBhc3NlcnQgdG1wLnJlbHRvKHQu
Z2V0YmFzZXRlbXAoKSkgPT0gIndvcmxkMCIKICAgICAgICAgdG1wID0gdC5ta3RlbXAoInRoaXMi
KQpAQCAtNTcsOSArNjIsMTcgQEAgY2xhc3MgVGVzdFRlbXBkaXJIYW5kbGVyKG9iamVjdCk6CiAg
ICAgICAgIGFzc2VydCB0bXAyLnJlbHRvKHQuZ2V0YmFzZXRlbXAoKSkuc3RhcnRzd2l0aCgidGhp
cyIpCiAgICAgICAgIGFzc2VydCB0bXAyICE9IHRtcAogCisgICAgZGVmIHRlc3RfdG1wcGF0aF9y
ZWxhdGl2ZV9iYXNldGVtcF9hYnNvbHV0ZShzZWxmLCB0bXBfcGF0aCwgbW9ua2V5cGF0Y2gpOgor
ICAgICAgICAiIiIjNDQyNSIiIgorICAgICAgICBmcm9tIF9weXRlc3QudG1wZGlyIGltcG9ydCBU
ZW1wUGF0aEZhY3RvcnkKKworICAgICAgICBtb25rZXlwYXRjaC5jaGRpcih0bXBfcGF0aCkKKyAg
ICAgICAgY29uZmlnID0gRmFrZUNvbmZpZygiaGVsbG8iKQorICAgICAgICB0ID0gVGVtcFBhdGhG
YWN0b3J5LmZyb21fY29uZmlnKGNvbmZpZykKKyAgICAgICAgYXNzZXJ0IHQuZ2V0YmFzZXRlbXAo
KS5yZXNvbHZlKCkgPT0gKHRtcF9wYXRoIC8gImhlbGxvIikucmVzb2x2ZSgpCiAKLWNsYXNzIFRl
c3RDb25maWdUbXBkaXIob2JqZWN0KToKIAorY2xhc3MgVGVzdENvbmZpZ1RtcGRpcihvYmplY3Qp
OgogICAgIGRlZiB0ZXN0X2dldGJhc2V0ZW1wX2N1c3RvbV9yZW1vdmVzX29sZChzZWxmLCB0ZXN0
ZGlyKToKICAgICAgICAgbXl0ZW1wID0gdGVzdGRpci50bXBkaXIuam9pbigieHl6IikKICAgICAg
ICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKQEAgLTg2LDE1ICs5OSwxMSBAQCBkZWYgdGVzdF9i
YXNldGVtcCh0ZXN0ZGlyKToKICAgICAgICAgICAgIHB5dGVzdC5lbnN1cmV0ZW1wKCJoZWxsbyIp
CiAgICAgIiIiCiAgICAgKQotICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICItLWJh
c2V0ZW1wPSVzIiAlIG15dGVtcCkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAi
LS1iYXNldGVtcD0lcyIgJSBteXRlbXAsIFNIT1dfUFlURVNUX1dBUk5JTkdTX0FSRykKICAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCiAgICAgYXNzZXJ0IG15dGVtcC5qb2luKCJoZWxsbyIpLmNo
ZWNrKCkKIAogCi1AcHl0ZXN0Lm1hcmsuc2tpcGlmKAotICAgIG5vdCBoYXNhdHRyKHB5LnBhdGgu
bG9jYWwsICJta3N5bWxpbmt0byIpLAotICAgIHJlYXNvbj0ic3ltbGluayBub3QgYXZhaWxhYmxl
IG9uIHRoaXMgcGxhdGZvcm0iLAotKQogZGVmIHRlc3RfdG1wZGlyX2Fsd2F5c19pc19yZWFscGF0
aCh0ZXN0ZGlyKToKICAgICAjIHRoZSByZWFzb24gd2h5IHRtcGRpciBzaG91bGQgYmUgYSByZWFs
cGF0aCBpcyB0aGF0CiAgICAgIyB3aGVuIHlvdSBjZCB0byBpdCBhbmQgZG8gIm9zLmdldGN3ZCgp
IiB5b3Ugd2lsbCBhbnl3YXkKQEAgLTEwNCw3ICsxMTMsNyBAQCBkZWYgdGVzdF90bXBkaXJfYWx3
YXlzX2lzX3JlYWxwYXRoKHRlc3RkaXIpOgogICAgICMgb3MuZW52aXJvblsiUFdEIl0KICAgICBy
ZWFsdGVtcCA9IHRlc3RkaXIudG1wZGlyLm1rZGlyKCJteXJlYWx0ZW1wIikKICAgICBsaW5rdGVt
cCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInN5bWxpbmt0ZW1wIikKLSAgICBsaW5rdGVtcC5ta3N5
bWxpbmt0byhyZWFsdGVtcCkKKyAgICBhdHRlbXB0X3N5bWxpbmtfdG8obGlua3RlbXAsIHN0cihy
ZWFsdGVtcCkpCiAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKICAgICAgICAgIiIiCiAgICAg
ICAgIGRlZiB0ZXN0XzEodG1wZGlyKToKQEAgLTExNiw2ICsxMjUsMjIgQEAgZGVmIHRlc3RfdG1w
ZGlyX2Fsd2F5c19pc19yZWFscGF0aCh0ZXN0ZGlyKToKICAgICBhc3NlcnQgbm90IHJlc3VsdC5y
ZXQKIAogCitkZWYgdGVzdF90bXBfcGF0aF9hbHdheXNfaXNfcmVhbHBhdGgodGVzdGRpciwgbW9u
a2V5cGF0Y2gpOgorICAgICMgZm9yIHJlYXNvbmluZyBzZWU6IHRlc3RfdG1wZGlyX2Fsd2F5c19p
c19yZWFscGF0aCB0ZXN0LWNhc2UKKyAgICByZWFsdGVtcCA9IHRlc3RkaXIudG1wZGlyLm1rZGly
KCJteXJlYWx0ZW1wIikKKyAgICBsaW5rdGVtcCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oInN5bWxp
bmt0ZW1wIikKKyAgICBhdHRlbXB0X3N5bWxpbmtfdG8obGlua3RlbXAsIHN0cihyZWFsdGVtcCkp
CisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRFU1RfREVCVUdfVEVNUFJPT1QiLCBzdHIobGlu
a3RlbXApKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGRl
ZiB0ZXN0XzEodG1wX3BhdGgpOgorICAgICAgICAgICAgYXNzZXJ0IHRtcF9wYXRoLnJlc29sdmUo
KSA9PSB0bXBfcGF0aAorICAgICIiIgorICAgICkKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisKIGRlZiB0ZXN0
X3RtcGRpcl90b29fbG9uZ19vbl9wYXJhbWV0cml6YXRpb24odGVzdGRpcik6CiAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKAogICAgICAgICAiIiIKQEAgLTEzNyw3ICsxNjIsNyBAQCBkZWYgdGVzdF90
bXBkaXJfZmFjdG9yeSh0ZXN0ZGlyKToKICAgICAgICAgZGVmIHNlc3Npb25fZGlyKHRtcGRpcl9m
YWN0b3J5KToKICAgICAgICAgICAgIHJldHVybiB0bXBkaXJfZmFjdG9yeS5ta3RlbXAoJ2RhdGEn
LCBudW1iZXJlZD1GYWxzZSkKICAgICAgICAgZGVmIHRlc3Rfc29tZShzZXNzaW9uX2Rpcik6Ci0g
ICAgICAgICAgICBzZXNzaW9uX2Rpci5pc2RpcigpCisgICAgICAgICAgICBhc3NlcnQgc2Vzc2lv
bl9kaXIuaXNkaXIoKQogICAgICIiIgogICAgICkKICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oKQpAQCAtMjEwLDMgKzIzNSwyMTkgQEAgZGVmIHRlc3RfZ2V0X3VzZXIobW9ua2V5cGF0
Y2gpOgogICAgIG1vbmtleXBhdGNoLmRlbGVudigiVVNFUiIsIHJhaXNpbmc9RmFsc2UpCiAgICAg
bW9ua2V5cGF0Y2guZGVsZW52KCJVU0VSTkFNRSIsIHJhaXNpbmc9RmFsc2UpCiAgICAgYXNzZXJ0
IGdldF91c2VyKCkgaXMgTm9uZQorCisKK2NsYXNzIFRlc3ROdW1iZXJlZERpcihvYmplY3QpOgor
ICAgIFBSRUZJWCA9ICJmdW4tIgorCisgICAgZGVmIHRlc3RfbWFrZShzZWxmLCB0bXBfcGF0aCk6
CisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBtYWtlX251bWJlcmVkX2Rpcgor
CisgICAgICAgIGZvciBpIGluIHJhbmdlKDEwKToKKyAgICAgICAgICAgIGQgPSBtYWtlX251bWJl
cmVkX2Rpcihyb290PXRtcF9wYXRoLCBwcmVmaXg9c2VsZi5QUkVGSVgpCisgICAgICAgICAgICBh
c3NlcnQgZC5uYW1lLnN0YXJ0c3dpdGgoc2VsZi5QUkVGSVgpCisgICAgICAgICAgICBhc3NlcnQg
ZC5uYW1lLmVuZHN3aXRoKHN0cihpKSkKKworICAgICAgICBzeW1saW5rID0gdG1wX3BhdGguam9p
bnBhdGgoc2VsZi5QUkVGSVggKyAiY3VycmVudCIpCisgICAgICAgIGlmIHN5bWxpbmsuZXhpc3Rz
KCk6CisgICAgICAgICAgICAjIHVuaXgKKyAgICAgICAgICAgIGFzc2VydCBzeW1saW5rLmlzX3N5
bWxpbmsoKQorICAgICAgICAgICAgYXNzZXJ0IHN5bWxpbmsucmVzb2x2ZSgpID09IGQucmVzb2x2
ZSgpCisKKyAgICBkZWYgdGVzdF9jbGVhbnVwX2xvY2tfY3JlYXRlKHNlbGYsIHRtcF9wYXRoKToK
KyAgICAgICAgZCA9IHRtcF9wYXRoLmpvaW5wYXRoKCJ0ZXN0IikKKyAgICAgICAgZC5ta2Rpcigp
CisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBjcmVhdGVfY2xlYW51cF9sb2Nr
CisKKyAgICAgICAgbG9ja2ZpbGUgPSBjcmVhdGVfY2xlYW51cF9sb2NrKGQpCisgICAgICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhFbnZpcm9ubWVudEVycm9yLCBtYXRjaD0iY2Fubm90IGNyZWF0ZSBs
b2NrZmlsZSBpbiAuKiIpOgorICAgICAgICAgICAgY3JlYXRlX2NsZWFudXBfbG9jayhkKQorCisg
ICAgICAgIGxvY2tmaWxlLnVubGluaygpCisKKyAgICBkZWYgdGVzdF9sb2NrX3JlZ2lzdGVyX2Ns
ZWFudXBfcmVtb3ZhbChzZWxmLCB0bXBfcGF0aCk6CisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRo
bGliIGltcG9ydCBjcmVhdGVfY2xlYW51cF9sb2NrLCByZWdpc3Rlcl9jbGVhbnVwX2xvY2tfcmVt
b3ZhbAorCisgICAgICAgIGxvY2sgPSBjcmVhdGVfY2xlYW51cF9sb2NrKHRtcF9wYXRoKQorCisg
ICAgICAgIHJlZ2lzdHJ5ID0gW10KKyAgICAgICAgcmVnaXN0ZXJfY2xlYW51cF9sb2NrX3JlbW92
YWwobG9jaywgcmVnaXN0ZXI9cmVnaXN0cnkuYXBwZW5kKQorCisgICAgICAgIChjbGVhbnVwX2Z1
bmMsKSA9IHJlZ2lzdHJ5CisKKyAgICAgICAgYXNzZXJ0IGxvY2suaXNfZmlsZSgpCisKKyAgICAg
ICAgY2xlYW51cF9mdW5jKG9yaWdpbmFsX3BpZD0iaW50ZW50aW9uYWxseV9kaWZmZXJlbnQiKQor
CisgICAgICAgIGFzc2VydCBsb2NrLmlzX2ZpbGUoKQorCisgICAgICAgIGNsZWFudXBfZnVuYygp
CisKKyAgICAgICAgYXNzZXJ0IG5vdCBsb2NrLmV4aXN0cygpCisKKyAgICAgICAgY2xlYW51cF9m
dW5jKCkKKworICAgICAgICBhc3NlcnQgbm90IGxvY2suZXhpc3RzKCkKKworICAgIGRlZiBfZG9f
Y2xlYW51cChzZWxmLCB0bXBfcGF0aCk6CisgICAgICAgIHNlbGYudGVzdF9tYWtlKHRtcF9wYXRo
KQorICAgICAgICBmcm9tIF9weXRlc3QucGF0aGxpYiBpbXBvcnQgY2xlYW51cF9udW1iZXJlZF9k
aXIKKworICAgICAgICBjbGVhbnVwX251bWJlcmVkX2RpcigKKyAgICAgICAgICAgIHJvb3Q9dG1w
X3BhdGgsCisgICAgICAgICAgICBwcmVmaXg9c2VsZi5QUkVGSVgsCisgICAgICAgICAgICBrZWVw
PTIsCisgICAgICAgICAgICBjb25zaWRlcl9sb2NrX2RlYWRfaWZfY3JlYXRlZF9iZWZvcmU9MCwK
KyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfY2xlYW51cF9rZWVwKHNlbGYsIHRtcF9wYXRoKToK
KyAgICAgICAgc2VsZi5fZG9fY2xlYW51cCh0bXBfcGF0aCkKKyAgICAgICAgYSwgYiA9ICh4IGZv
ciB4IGluIHRtcF9wYXRoLml0ZXJkaXIoKSBpZiBub3QgeC5pc19zeW1saW5rKCkpCisgICAgICAg
IHByaW50KGEsIGIpCisKKyAgICBkZWYgdGVzdF9jbGVhbnVwX2xvY2tlZChzZWxmLCB0bXBfcGF0
aCk6CisKKyAgICAgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBwYXRobGliCisKKyAgICAgICAgcCA9
IHBhdGhsaWIubWFrZV9udW1iZXJlZF9kaXIocm9vdD10bXBfcGF0aCwgcHJlZml4PXNlbGYuUFJF
RklYKQorCisgICAgICAgIHBhdGhsaWIuY3JlYXRlX2NsZWFudXBfbG9jayhwKQorCisgICAgICAg
IGFzc2VydCBub3QgcGF0aGxpYi5lbnN1cmVfZGVsZXRhYmxlKAorICAgICAgICAgICAgcCwgY29u
c2lkZXJfbG9ja19kZWFkX2lmX2NyZWF0ZWRfYmVmb3JlPXAuc3RhdCgpLnN0X210aW1lIC0gMQor
ICAgICAgICApCisgICAgICAgIGFzc2VydCBwYXRobGliLmVuc3VyZV9kZWxldGFibGUoCisgICAg
ICAgICAgICBwLCBjb25zaWRlcl9sb2NrX2RlYWRfaWZfY3JlYXRlZF9iZWZvcmU9cC5zdGF0KCku
c3RfbXRpbWUgKyAxCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2NsZWFudXBfaWdub3Jlc19z
eW1saW5rKHNlbGYsIHRtcF9wYXRoKToKKyAgICAgICAgdGhlX3N5bWxpbmsgPSB0bXBfcGF0aCAv
IChzZWxmLlBSRUZJWCArICJjdXJyZW50IikKKyAgICAgICAgYXR0ZW1wdF9zeW1saW5rX3RvKHRo
ZV9zeW1saW5rLCB0bXBfcGF0aCAvIChzZWxmLlBSRUZJWCArICI1IikpCisgICAgICAgIHNlbGYu
X2RvX2NsZWFudXAodG1wX3BhdGgpCisKKyAgICBkZWYgdGVzdF9yZW1vdmFsX2FjY2VwdHNfbG9j
ayhzZWxmLCB0bXBfcGF0aCk6CisgICAgICAgIGZvbGRlciA9IHBhdGhsaWIubWFrZV9udW1iZXJl
ZF9kaXIocm9vdD10bXBfcGF0aCwgcHJlZml4PXNlbGYuUFJFRklYKQorICAgICAgICBwYXRobGli
LmNyZWF0ZV9jbGVhbnVwX2xvY2soZm9sZGVyKQorICAgICAgICBwYXRobGliLm1heWJlX2RlbGV0
ZV9hX251bWJlcmVkX2Rpcihmb2xkZXIpCisgICAgICAgIGFzc2VydCBmb2xkZXIuaXNfZGlyKCkK
KworCitjbGFzcyBUZXN0Um1SZjoKKyAgICBkZWYgdGVzdF9ybV9yZihzZWxmLCB0bXBfcGF0aCk6
CisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBybV9yZgorCisgICAgICAgIGFk
aXIgPSB0bXBfcGF0aCAvICJhZGlyIgorICAgICAgICBhZGlyLm1rZGlyKCkKKyAgICAgICAgcm1f
cmYoYWRpcikKKworICAgICAgICBhc3NlcnQgbm90IGFkaXIuZXhpc3RzKCkKKworICAgICAgICBh
ZGlyLm1rZGlyKCkKKyAgICAgICAgYWZpbGUgPSBhZGlyIC8gImFmaWxlIgorICAgICAgICBhZmls
ZS53cml0ZV9ieXRlcyhiImFhIikKKworICAgICAgICBybV9yZihhZGlyKQorICAgICAgICBhc3Nl
cnQgbm90IGFkaXIuZXhpc3RzKCkKKworICAgIGRlZiB0ZXN0X3JtX3JmX3dpdGhfcmVhZF9vbmx5
X2ZpbGUoc2VsZiwgdG1wX3BhdGgpOgorICAgICAgICAiIiJFbnN1cmUgcm1fcmYgY2FuIHJlbW92
ZSBkaXJlY3RvcmllcyB3aXRoIHJlYWQtb25seSBmaWxlcyBpbiB0aGVtICgjNTUyNCkiIiIKKyAg
ICAgICAgZnJvbSBfcHl0ZXN0LnBhdGhsaWIgaW1wb3J0IHJtX3JmCisKKyAgICAgICAgZm4gPSB0
bXBfcGF0aCAvICJkaXIvZm9vLnR4dCIKKyAgICAgICAgZm4ucGFyZW50Lm1rZGlyKCkKKworICAg
ICAgICBmbi50b3VjaCgpCisKKyAgICAgICAgc2VsZi5jaG1vZF9yKGZuKQorCisgICAgICAgIHJt
X3JmKGZuLnBhcmVudCkKKworICAgICAgICBhc3NlcnQgbm90IGZuLnBhcmVudC5pc19kaXIoKQor
CisgICAgZGVmIGNobW9kX3Ioc2VsZiwgcGF0aCk6CisgICAgICAgIG1vZGUgPSBvcy5zdGF0KHN0
cihwYXRoKSkuc3RfbW9kZQorICAgICAgICBvcy5jaG1vZChzdHIocGF0aCksIG1vZGUgJiB+c3Rh
dC5TX0lXUklURSkKKworICAgIGRlZiB0ZXN0X3JtX3JmX3dpdGhfcmVhZF9vbmx5X2RpcmVjdG9y
eShzZWxmLCB0bXBfcGF0aCk6CisgICAgICAgICIiIkVuc3VyZSBybV9yZiBjYW4gcmVtb3ZlIHJl
YWQtb25seSBkaXJlY3RvcmllcyAoIzU1MjQpIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRo
bGliIGltcG9ydCBybV9yZgorCisgICAgICAgIGFkaXIgPSB0bXBfcGF0aCAvICJkaXIiCisgICAg
ICAgIGFkaXIubWtkaXIoKQorCisgICAgICAgIChhZGlyIC8gImZvby50eHQiKS50b3VjaCgpCisg
ICAgICAgIHNlbGYuY2htb2RfcihhZGlyKQorCisgICAgICAgIHJtX3JmKGFkaXIpCisKKyAgICAg
ICAgYXNzZXJ0IG5vdCBhZGlyLmlzX2RpcigpCisKKyAgICBkZWYgdGVzdF9vbl9ybV9yZl9lcnJv
cihzZWxmLCB0bXBfcGF0aCk6CisgICAgICAgIGZyb20gX3B5dGVzdC5wYXRobGliIGltcG9ydCBv
bl9ybV9yZl9lcnJvcgorCisgICAgICAgIGFkaXIgPSB0bXBfcGF0aCAvICJkaXIiCisgICAgICAg
IGFkaXIubWtkaXIoKQorCisgICAgICAgIGZuID0gYWRpciAvICJmb28udHh0IgorICAgICAgICBm
bi50b3VjaCgpCisgICAgICAgIHNlbGYuY2htb2RfcihmbikKKworICAgICAgICAjIHVua25vd24g
ZXhjZXB0aW9uCisgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKHB5dGVzdC5QeXRlc3RXYXJuaW5n
KToKKyAgICAgICAgICAgIGV4Y19pbmZvID0gKE5vbmUsIFJ1bnRpbWVFcnJvcigpLCBOb25lKQor
ICAgICAgICAgICAgb25fcm1fcmZfZXJyb3Iob3MudW5saW5rLCBzdHIoZm4pLCBleGNfaW5mbywg
c3RhcnRfcGF0aD10bXBfcGF0aCkKKyAgICAgICAgICAgIGFzc2VydCBmbi5pc19maWxlKCkKKwor
ICAgICAgICAjIHdlIGlnbm9yZSBGaWxlTm90Rm91bmRFcnJvcgorICAgICAgICBmaWxlX25vdF9m
b3VuZCA9IE9TRXJyb3IoKQorICAgICAgICBmaWxlX25vdF9mb3VuZC5lcnJubyA9IGVycm5vLkVO
T0VOVAorICAgICAgICBleGNfaW5mbyA9IChOb25lLCBmaWxlX25vdF9mb3VuZCwgTm9uZSkKKyAg
ICAgICAgYXNzZXJ0IG5vdCBvbl9ybV9yZl9lcnJvcihOb25lLCBzdHIoZm4pLCBleGNfaW5mbywg
c3RhcnRfcGF0aD10bXBfcGF0aCkKKworICAgICAgICBwZXJtaXNzaW9uX2Vycm9yID0gT1NFcnJv
cigpCisgICAgICAgIHBlcm1pc3Npb25fZXJyb3IuZXJybm8gPSBlcnJuby5FQUNDRVMKKyAgICAg
ICAgIyB1bmtub3duIGZ1bmN0aW9uCisgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKHB5dGVzdC5Q
eXRlc3RXYXJuaW5nKToKKyAgICAgICAgICAgIGV4Y19pbmZvID0gKE5vbmUsIHBlcm1pc3Npb25f
ZXJyb3IsIE5vbmUpCisgICAgICAgICAgICBvbl9ybV9yZl9lcnJvcihOb25lLCBzdHIoZm4pLCBl
eGNfaW5mbywgc3RhcnRfcGF0aD10bXBfcGF0aCkKKyAgICAgICAgICAgIGFzc2VydCBmbi5pc19m
aWxlKCkKKworICAgICAgICBleGNfaW5mbyA9IChOb25lLCBwZXJtaXNzaW9uX2Vycm9yLCBOb25l
KQorICAgICAgICBvbl9ybV9yZl9lcnJvcihvcy51bmxpbmssIHN0cihmbiksIGV4Y19pbmZvLCBz
dGFydF9wYXRoPXRtcF9wYXRoKQorICAgICAgICBhc3NlcnQgbm90IGZuLmlzX2ZpbGUoKQorCisK
K2RlZiBhdHRlbXB0X3N5bWxpbmtfdG8ocGF0aCwgdG9fcGF0aCk6CisgICAgIiIiVHJ5IHRvIG1h
a2UgYSBzeW1saW5rIGZyb20gInBhdGgiIHRvICJ0b19wYXRoIiwgc2tpcHBpbmcgaW4gY2FzZSB0
aGlzIHBsYXRmb3JtCisgICAgZG9lcyBub3Qgc3VwcG9ydCBpdCBvciB3ZSBkb24ndCBoYXZlIHN1
ZmZpY2llbnQgcHJpdmlsZWdlcyAoY29tbW9uIG9uIFdpbmRvd3MpLiIiIgorICAgIGlmIHN5cy5w
bGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4iKSBhbmQgc2l4LlBZMjoKKyAgICAgICAgcHl0ZXN0LnNr
aXAoInBhdGhsaWIgZm9yIHNvbWUgcmVhc29uIGNhbm5vdCBtYWtlIHN5bWxpbmtzIG9uIFB5dGhv
biAyIikKKyAgICB0cnk6CisgICAgICAgIFBhdGgocGF0aCkuc3ltbGlua190byhQYXRoKHRvX3Bh
dGgpKQorICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICBweXRlc3Quc2tpcCgiY291bGQgbm90
IGNyZWF0ZSBzeW1ib2xpYyBsaW5rIikKKworCitkZWYgdGVzdF90bXBkaXJfZXF1YWxzX3RtcF9w
YXRoKHRtcGRpciwgdG1wX3BhdGgpOgorICAgIGFzc2VydCBQYXRoKHRtcGRpcikgPT0gdG1wX3Bh
dGgKKworCitkZWYgdGVzdF9iYXNldGVtcF93aXRoX3JlYWRfb25seV9maWxlcyh0ZXN0ZGlyKToK
KyAgICAiIiJJbnRlZ3JhdGlvbiB0ZXN0IGZvciAjNTUyNCIiIgorICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBvcworICAgICAgICBpbXBvcnQgc3Rh
dAorCisgICAgICAgIGRlZiB0ZXN0KHRtcF9wYXRoKToKKyAgICAgICAgICAgIGZuID0gdG1wX3Bh
dGggLyAnZm9vLnR4dCcKKyAgICAgICAgICAgIGZuLndyaXRlX3RleHQodSdoZWxsbycpCisgICAg
ICAgICAgICBtb2RlID0gb3Muc3RhdChzdHIoZm4pKS5zdF9tb2RlCisgICAgICAgICAgICBvcy5j
aG1vZChzdHIoZm4pLCBtb2RlICYgfnN0YXQuU19JUkVBRCkKKyAgICAiIiIKKyAgICApCisgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tYmFzZXRlbXA9dG1wIikKKyAgICBhc3NlcnQg
cmVzdWx0LnJldCA9PSAwCisgICAgIyBydW5uaW5nIGEgc2Vjb25kIHRpbWUgYW5kIGVuc3VyZSB3
ZSBkb24ndCBjcmFzaAorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWJhc2V0ZW1w
PXRtcCIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X3VuaXR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Vu
aXR0ZXN0LnB5CmluZGV4IDY1ZmZkYjk3NTM4YmVlNTEzZWIxNTQ0NDE0ZGVjZGMzMDJiYmYwMmEu
LjZiNzIxZDFjMGNlNTAzOThjYTlmYjcyZDUwNTE1N2I1ODhmYzQwNWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF91bml0dGVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfdW5pdHRlc3QucHkKQEAgLTEsOCArMSwxMyBAQAotZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotZnJvbSBfcHl0
ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAotaW1wb3J0IHB5dGVzdAorIyAt
Ki0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w
b3J0Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGRpdmlzaW9uCitmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBnYwogCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9w
eXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVDVEVECisKIAogZGVmIHRlc3Rfc2lt
cGxlX3VuaXR0ZXN0KHRlc3RkaXIpOgogICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxl
KApAQCAtMTM5LDYgKzE0NCwyOSBAQCBkZWYgdGVzdF9uZXdfaW5zdGFuY2VzKHRlc3RkaXIpOgog
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQogCiAKK2RlZiB0ZXN0X2Z1bmN0aW9u
X2l0ZW1fb2JqX2lzX2luc3RhbmNlKHRlc3RkaXIpOgorICAgICIiIml0ZW0ub2JqIHNob3VsZCBi
ZSBhIGJvdW5kIG1ldGhvZCBvbiB1bml0dGVzdC5UZXN0Q2FzZSBmdW5jdGlvbiBpdGVtcyAoIzUz
OTApLiIiIgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KAorICAgICAgICAiIiIKKyAgICAgICAg
ZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbSwgY2FsbCk6CisgICAgICAgICAgICBp
ZiBjYWxsLndoZW4gPT0gJ2NhbGwnOgorICAgICAgICAgICAgICAgIGNsYXNzXyA9IGl0ZW0ucGFy
ZW50Lm9iagorICAgICAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGl0ZW0ub2JqLl9fc2Vs
Zl9fLCBjbGFzc18pCisgICAgIiIiCisgICAgKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAg
ICAgICAgIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVzdAorCisgICAgICAgIGNsYXNzIFRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3RfaW5wcm9jZXNzKCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
IDEgcGFzc2VkIGluKiJdKQorCisKIGRlZiB0ZXN0X3RlYXJkb3duKHRlc3RkaXIpOgogICAgIHRl
c3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKAogICAgICAgICAiIiIKQEAgLTI0MCw3ICsyNjgs
NyBAQCBkZWYgdGVzdF9zZXR1cF9mYWlsdXJlX2lzX3Nob3duKHRlc3RkaXIpOgogICAgICAgICAg
ICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICAgICAgICAgIGFzc2VydCAwLCAiZG93bjEiCiAg
ICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6Ci0gICAgICAgICAgICAgICAgcHJpbnQg
KCJuZXZlcjQyIikKKyAgICAgICAgICAgICAgICBwcmludCgibmV2ZXI0MiIpCiAgICAgICAgICAg
ICAgICAgeHl6CiAgICAgIiIiCiAgICAgKQpAQCAtMzYwLDcgKzM4OCw3IEBAIGRlZiB0ZXN0X3Rl
c3RjYXNlX2N1c3RvbV9leGNlcHRpb25faW5mbyh0ZXN0ZGlyLCB0eXBlKToKIAogCiBkZWYgdGVz
dF90ZXN0Y2FzZV90b3RhbGx5X2luY29tcGF0aWJsZV9leGNlcHRpb25faW5mbyh0ZXN0ZGlyKToK
LSAgICBpdGVtLCA9IHRlc3RkaXIuZ2V0aXRlbXMoCisgICAgKGl0ZW0sKSA9IHRlc3RkaXIuZ2V0
aXRlbXMoCiAgICAgICAgICIiIgogICAgICAgICBmcm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0Q2Fz
ZQogICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKFRlc3RDYXNlKToKQEAgLTM4OSw3ICs0MTcsNiBA
QCBkZWYgdGVzdF9tb2R1bGVfbGV2ZWxfcHl0ZXN0bWFyayh0ZXN0ZGlyKToKIAogCiBjbGFzcyBU
ZXN0VHJpYWxVbml0dGVzdChvYmplY3QpOgotCiAgICAgZGVmIHNldHVwX2NsYXNzKGNscyk6CiAg
ICAgICAgIGNscy51dCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoInR3aXN0ZWQudHJpYWwudW5pdHRl
c3QiKQogICAgICAgICAjIG9uIHdpbmRvd3MgdHJpYWwgdXNlcyBhIHNvY2tldCBmb3IgYSByZWFj
dG9yIGFuZCBhcHBhcmVudGx5IGRvZXNuJ3QgY2xvc2UgaXQgcHJvcGVybHkKQEAgLTYwNywxNCAr
NjM0LDE0IEBAIGRlZiB0ZXN0X2RqYW5nb2xpa2VfdGVzdGNhc2UodGVzdGRpcik6CiAgICAgICAg
IGNsYXNzIERqYW5nb0xpa2VUZXN0Q2FzZShUZXN0Q2FzZSk6CiAKICAgICAgICAgICAgIGRlZiBz
ZXRVcChzZWxmKToKLSAgICAgICAgICAgICAgICBwcmludCAoInNldFVwKCkiKQorICAgICAgICAg
ICAgICAgIHByaW50KCJzZXRVcCgpIikKIAogICAgICAgICAgICAgZGVmIHRlc3RfcHJlc2V0dXBf
aGFzX2JlZW5fcnVuKHNlbGYpOgotICAgICAgICAgICAgICAgIHByaW50ICgidGVzdF90aGluZygp
IikKKyAgICAgICAgICAgICAgICBwcmludCgidGVzdF90aGluZygpIikKICAgICAgICAgICAgICAg
ICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihzZWxmLCAnd2FzX3ByZXNldHVwJykpCiAKICAgICAg
ICAgICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgICAgICAgICBwcmludCAoInRlYXJE
b3duKCkiKQorICAgICAgICAgICAgICAgIHByaW50KCJ0ZWFyRG93bigpIikKIAogICAgICAgICAg
ICAgZGVmIF9fY2FsbF9fKHNlbGYsIHJlc3VsdD1Ob25lKToKICAgICAgICAgICAgICAgICB0cnk6
CkBAIC02MzYsMTEgKzY2MywxMSBAQCBkZWYgdGVzdF9kamFuZ29saWtlX3Rlc3RjYXNlKHRlc3Rk
aXIpOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAgICAgZGVmIF9wcmVf
c2V0dXAoc2VsZik6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJfcHJlX3NldHVwKCkiKQorICAg
ICAgICAgICAgICAgIHByaW50KCJfcHJlX3NldHVwKCkiKQogICAgICAgICAgICAgICAgIHNlbGYu
d2FzX3ByZXNldHVwID0gVHJ1ZQogCiAgICAgICAgICAgICBkZWYgX3Bvc3RfdGVhcmRvd24oc2Vs
Zik6Ci0gICAgICAgICAgICAgICAgcHJpbnQgKCJfcG9zdF90ZWFyZG93bigpIikKKyAgICAgICAg
ICAgICAgICBwcmludCgiX3Bvc3RfdGVhcmRvd24oKSIpCiAgICAgIiIiCiAgICAgKQogICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCkBAIC03OTEsNyArODE4LDcgQEAgZGVmIHRl
c3RfdW5pdHRlc3Rfc2V0dXBfaW50ZXJhY3Rpb24odGVzdGRpciwgZml4X3R5cGUsIHN0bXQpOgog
ICAgICAgICApCiAgICAgKQogICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKLSAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiozIHBhc3NlZCoiKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKIAogCiBkZWYgdGVzdF9ub25fdW5pdHRl
c3Rfbm9fc2V0dXBjbGFzc19zdXBwb3J0KHRlc3RkaXIpOgpAQCAtOTI3LDExICs5NTQsMTEgQEAg
ZGVmIHRlc3RfY2xhc3NfbWV0aG9kX2NvbnRhaW5pbmdfdGVzdF9pc3N1ZTE1NTgodGVzdGRpcik6
CiAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCiAKIAotQHB5dGVzdC5tYXJrLmlz
c3VlKDM0OTgpCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCiAgICAgImJhc2UiLCBbInNpeC5t
b3Zlcy5idWlsdGlucy5vYmplY3QiLCAidW5pdHRlc3QuVGVzdENhc2UiLCAidW5pdHRlc3QyLlRl
c3RDYXNlIl0KICkKIGRlZiB0ZXN0X3VzZWZpeHR1cmVzX21hcmtlcl9vbl91bml0dGVzdChiYXNl
LCB0ZXN0ZGlyKToKKyAgICAiIiIjMzQ5OCIiIgogICAgIG1vZHVsZSA9IGJhc2UucnNwbGl0KCIu
IiwgMSlbMF0KICAgICBweXRlc3QuaW1wb3J0b3Jza2lwKG1vZHVsZSkKICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoCkBAIC05OTAsMyArMTAxNyw1MSBAQCBkZWYgdGVzdF91c2VmaXh0dXJlc19tYXJr
ZXJfb25fdW5pdHRlc3QoYmFzZSwgdGVzdGRpcik6CiAKICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLXMiKQogICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTIpCisKKwor
ZGVmIHRlc3RfdGVzdGNhc2VfaGFuZGxlc19pbml0X2V4Y2VwdGlvbnModGVzdGRpcik6CisgICAg
IiIiCisgICAgUmVncmVzc2lvbiB0ZXN0IHRvIG1ha2Ugc3VyZSBleGNlcHRpb25zIGluIHRoZSBf
X2luaXRfXyBtZXRob2QgYXJlIGJ1YmJsZWQgdXAgY29ycmVjdGx5LgorICAgIFNlZSBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3ODgKKyAgICAiIiIKKyAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBmcm9tIHVuaXR0ZXN0IGlt
cG9ydCBUZXN0Q2FzZQorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGNsYXNzIE15VGVz
dENhc2UoVGVzdENhc2UpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAq
Kmt3YXJncyk6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJzaG91bGQgcmFpc2Ug
dGhpcyBleGNlcHRpb24iKQorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZik6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICIiIgorICAgICkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgYXNzZXJ0ICJzaG91bGQgcmFpc2UgdGhpcyBleGNlcHRpb24iIGluIHJl
c3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3NlcnQgIkVSUk9SIGF0IHRlYXJkb3duIG9mIE15VGVz
dENhc2UudGVzdF9oZWxsbyIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworCitkZWYgdGVz
dF9lcnJvcl9tZXNzYWdlX3dpdGhfcGFyYW1ldHJpemVkX2ZpeHR1cmVzKHRlc3RkaXIpOgorICAg
IHRlc3RkaXIuY29weV9leGFtcGxlKCJ1bml0dGVzdC90ZXN0X3BhcmFtZXRyaXplZF9maXh0dXJl
X2Vycm9yX21lc3NhZ2UucHkiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgIFsKKyAgICAgICAgICAgICIq
dGVzdF90d28gZG9lcyBub3Qgc3VwcG9ydCBmaXh0dXJlcyoiLAorICAgICAgICAgICAgIipUZXN0
U29tZXRoaW5nRWxzZTo6dGVzdF90d28iLAorICAgICAgICAgICAgIipGdW5jdGlvbiB0eXBlOiBU
ZXN0Q2FzZUZ1bmN0aW9uIiwKKyAgICAgICAgXQorICAgICkKKworCitAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoCisgICAgInRlc3RfbmFtZSwgZXhwZWN0ZWRfb3V0Y29tZSIsCisgICAgWworICAg
ICAgICAoInRlc3Rfc2V0dXBfc2tpcC5weSIsICIxIHNraXBwZWQiKSwKKyAgICAgICAgKCJ0ZXN0
X3NldHVwX3NraXBfY2xhc3MucHkiLCAiMSBza2lwcGVkIiksCisgICAgICAgICgidGVzdF9zZXR1
cF9za2lwX21vZHVsZS5weSIsICIxIGVycm9yIiksCisgICAgXSwKKykKK2RlZiB0ZXN0X3NldHVw
X2luaGVyaXRhbmNlX3NraXBwaW5nKHRlc3RkaXIsIHRlc3RfbmFtZSwgZXhwZWN0ZWRfb3V0Y29t
ZSk6CisgICAgIiIiSXNzdWUgIzQ3MDAiIiIKKyAgICB0ZXN0ZGlyLmNvcHlfZXhhbXBsZSgidW5p
dHRlc3Qve30iLmZvcm1hdCh0ZXN0X25hbWUpKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqIHt9IGluICoiLmZvcm1h
dChleHBlY3RlZF9vdXRjb21lKV0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3Rfd2FybmluZ3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfd2FybmluZ3MucHkKaW5k
ZXggYzViZWEwNTJhNDdlMzBlZGVmNDUxODAyMjZhNmEwOWNlMGJmMmQ1NC4uNjVmNTdlMDI0ZjNk
NjE3N2FkOTYxZTEyOWNjZmYzMzMwNTg5NWNkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X3dhcm5pbmdzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF93YXJu
aW5ncy5weQpAQCAtMSwxMCArMSwxMiBAQAotIyAtKi0gY29kaW5nOiB1dGY4IC0qLQorIyAtKi0g
Y29kaW5nOiB1dGYtOCAtKi0KIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFs
cwogCiBpbXBvcnQgc3lzCitpbXBvcnQgd2FybmluZ3MKIAotaW1wb3J0IHB5dGVzdAoraW1wb3J0
IHNpeAogCitpbXBvcnQgcHl0ZXN0CiAKIFdBUk5JTkdTX1NVTU1BUllfSEVBREVSID0gIndhcm5p
bmdzIHN1bW1hcnkiCiAKQEAgLTM3LDE3ICszOSwxNiBAQCBkZWYgcHlmaWxlX3dpdGhfd2Fybmlu
Z3ModGVzdGRpciwgcmVxdWVzdCk6CiAgICAgKQogCiAKLUBweXRlc3QubWFyay5maWx0ZXJ3YXJu
aW5ncygiYWx3YXlzIikKK0BweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygiZGVmYXVsdCIpCiBk
ZWYgdGVzdF9ub3JtYWxfZmxvdyh0ZXN0ZGlyLCBweWZpbGVfd2l0aF93YXJuaW5ncyk6CiAgICAg
IiIiCi0gICAgQ2hlY2sgdGhhdCB0aGUgd2FybmluZ3Mgc2VjdGlvbiBpcyBkaXNwbGF5ZWQsIGNv
bnRhaW5pbmcgdGVzdCBub2RlIGlkcyBmb2xsb3dlZCBieQotICAgIGFsbCB3YXJuaW5ncyBnZW5l
cmF0ZWQgYnkgdGhhdCB0ZXN0IG5vZGUuCisgICAgQ2hlY2sgdGhhdCB0aGUgd2FybmluZ3Mgc2Vj
dGlvbiBpcyBkaXNwbGF5ZWQuCiAgICAgIiIiCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQogICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgWwogICAgICAg
ICAgICAgIio9PSAlcyA9PSoiICUgV0FSTklOR1NfU1VNTUFSWV9IRUFERVIsCi0gICAgICAgICAg
ICAiKnRlc3Rfbm9ybWFsX2Zsb3cucHk6OnRlc3RfZnVuYyIsCisgICAgICAgICAgICAidGVzdF9u
b3JtYWxfZmxvdy5weTo6dGVzdF9mdW5jIiwKICAgICAgICAgICAgICIqbm9ybWFsX2Zsb3dfbW9k
dWxlLnB5OjM6IFVzZXJXYXJuaW5nOiB1c2VyIHdhcm5pbmciLAogICAgICAgICAgICAgJyogIHdh
cm5pbmdzLndhcm4oVXNlcldhcm5pbmcoInVzZXIgd2FybmluZyIpKScsCiAgICAgICAgICAgICAi
Km5vcm1hbF9mbG93X21vZHVsZS5weTo0OiBSdW50aW1lV2FybmluZzogcnVudGltZSB3YXJuaW5n
IiwKQEAgLTU1LDcgKzU2LDYgQEAgZGVmIHRlc3Rfbm9ybWFsX2Zsb3codGVzdGRpciwgcHlmaWxl
X3dpdGhfd2FybmluZ3MpOgogICAgICAgICAgICAgIiogMSBwYXNzZWQsIDIgd2FybmluZ3MqIiwK
ICAgICAgICAgXQogICAgICkKLSAgICBhc3NlcnQgcmVzdWx0LnN0ZG91dC5zdHIoKS5jb3VudCgi
dGVzdF9ub3JtYWxfZmxvdy5weTo6dGVzdF9mdW5jIikgPT0gMQogCiAKIEBweXRlc3QubWFyay5m
aWx0ZXJ3YXJuaW5ncygiYWx3YXlzIikKQEAgLTk1LDEwICs5NSwxMiBAQCBkZWYgdGVzdF9hc19l
cnJvcnModGVzdGRpciwgcHlmaWxlX3dpdGhfd2FybmluZ3MsIG1ldGhvZCk6CiAgICAgICAgIHRl
c3RkaXIubWFrZWluaSgKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgW3B5dGVzdF0KLSAg
ICAgICAgICAgIGZpbHRlcndhcm5pbmdzPSBlcnJvcgorICAgICAgICAgICAgZmlsdGVyd2Fybmlu
Z3M9ZXJyb3IKICAgICAgICAgICAgICIiIgogICAgICAgICApCi0gICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKmFyZ3MpCisgICAgIyBVc2UgYSBzdWJwcm9jZXNzLCBzaW5jZSBjaGFuZ2lu
ZyBsb2dnaW5nIGxldmVsIGFmZmVjdHMgb3RoZXIgdGhyZWFkcworICAgICMgKHhkaXN0KS4KKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCphcmdzKQogICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygKICAgICAgICAgWwogICAgICAgICAgICAgIkUgICAgICAg
VXNlcldhcm5pbmc6IHVzZXIgd2FybmluZyIsCkBAIC0xMzEsNyArMTMzLDcgQEAgZGVmIHRlc3Rf
aWdub3JlKHRlc3RkaXIsIHB5ZmlsZV93aXRoX3dhcm5pbmdzLCBtZXRob2QpOgogZGVmIHRlc3Rf
dW5pY29kZSh0ZXN0ZGlyLCBweWZpbGVfd2l0aF93YXJuaW5ncyk6CiAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKAogICAgICAgICAiIiIKLSAgICAgICAgIyAtKi0gY29kaW5nOiB1dGY4IC0qLQorICAg
ICAgICAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogICAgICAgICBpbXBvcnQgd2FybmluZ3MKICAg
ICAgICAgaW1wb3J0IHB5dGVzdAogCkBAIC0xNjAsMTQgKzE2MiwxMyBAQCBkZWYgdGVzdF91bmlj
b2RlKHRlc3RkaXIsIHB5ZmlsZV93aXRoX3dhcm5pbmdzKToKICAgICByZWFzb249Indhcm5pbmdz
IG1lc3NhZ2UgaXMgYnJva2VuIGFzIGl0IGlzIG5vdCBzdHIgaW5zdGFuY2UiLAogKQogZGVmIHRl
c3RfcHkyX3VuaWNvZGUodGVzdGRpciwgcHlmaWxlX3dpdGhfd2FybmluZ3MpOgotICAgIGlmICgK
LSAgICAgICAgZ2V0YXR0cihzeXMsICJweXB5X3ZlcnNpb25faW5mbyIsICgpKVs6Ml0gPT0gKDUs
IDkpCi0gICAgICAgIGFuZCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgid2luIikKKyAgICBpZiBn
ZXRhdHRyKHN5cywgInB5cHlfdmVyc2lvbl9pbmZvIiwgKCkpWzoyXSA9PSAoNSwgOSkgYW5kIHN5
cy5wbGF0Zm9ybS5zdGFydHN3aXRoKAorICAgICAgICAid2luIgogICAgICk6CiAgICAgICAgIHB5
dGVzdC54ZmFpbCgiZmFpbHMgd2l0aCB1bmljb2RlIGVycm9yIG9uIFB5UHkyIDUuOSBhbmQgV2lu
ZG93cyAoIzI5MDUpIikKICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCiAgICAgICAgICIiIgotICAg
ICAgICAjIC0qLSBjb2Rpbmc6IHV0ZjggLSotCisgICAgICAgICMgLSotIGNvZGluZzogdXRmLTgg
LSotCiAgICAgICAgIGltcG9ydCB3YXJuaW5ncwogICAgICAgICBpbXBvcnQgcHl0ZXN0CiAKQEAg
LTI4OCwzICsyODksNDI3IEBAIGRlZiB0ZXN0X25vbl9zdHJpbmdfd2FybmluZ19hcmd1bWVudCh0
ZXN0ZGlyKToKICAgICApCiAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1XIiwgImFs
d2F5cyIpCiAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKj0gMSBwYXNzZWQsIDEg
d2FybmluZ3MgaW4gKiJdKQorCisKK2RlZiB0ZXN0X2ZpbHRlcndhcm5pbmdzX21hcmtfcmVnaXN0
cmF0aW9uKHRlc3RkaXIpOgorICAgICIiIkVuc3VyZSBmaWx0ZXJ3YXJuaW5ncyBtYXJrIGlzIHJl
Z2lzdGVyZWQiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICIiIgorICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCdl
cnJvcicpCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAi
IiIKKyAgICApCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tc3RyaWN0LW1hcmtl
cnMiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworCitAcHl0ZXN0Lm1hcmsuZmlsdGVy
d2FybmluZ3MoImFsd2F5cyIpCitkZWYgdGVzdF93YXJuaW5nX2NhcHR1cmVkX2hvb2sodGVzdGRp
cik6CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoCisgICAgICAgICIiIgorICAgICAgICBmcm9t
IF9weXRlc3Qud2FybmluZ3MgaW1wb3J0IF9pc3N1ZV93YXJuaW5nX2NhcHR1cmVkCisgICAgICAg
IGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgICAgICAgICBfaXNzdWVfd2Fybmlu
Z19jYXB0dXJlZChVc2VyV2FybmluZygiY29uZmlnIHdhcm5pbmciKSwgY29uZmlnLmhvb2ssIHN0
YWNrbGV2ZWw9MikKKyAgICAiIiIKKyAgICApCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAg
ICAgICAiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdCwgd2FybmluZ3MKKworICAgICAgICB3YXJu
aW5ncy53YXJuKFVzZXJXYXJuaW5nKCJjb2xsZWN0IHdhcm5pbmciKSkKKworICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGZpeCgpOgorICAgICAgICAgICAgd2FybmluZ3Mud2Fy
bihVc2VyV2FybmluZygic2V0dXAgd2FybmluZyIpKQorICAgICAgICAgICAgeWllbGQgMQorICAg
ICAgICAgICAgd2FybmluZ3Mud2FybihVc2VyV2FybmluZygidGVhcmRvd24gd2FybmluZyIpKQor
CisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoZml4KToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4o
VXNlcldhcm5pbmcoImNhbGwgd2FybmluZyIpKQorICAgICAgICAgICAgYXNzZXJ0IGZpeCA9PSAx
CisgICAgICAgICIiIgorICAgICkKKworICAgIGNvbGxlY3RlZCA9IFtdCisKKyAgICBjbGFzcyBX
YXJuaW5nQ29sbGVjdG9yOgorICAgICAgICBkZWYgcHl0ZXN0X3dhcm5pbmdfY2FwdHVyZWQoc2Vs
Ziwgd2FybmluZ19tZXNzYWdlLCB3aGVuLCBpdGVtKToKKyAgICAgICAgICAgIGltZ2VfbmFtZSA9
IGl0ZW0ubmFtZSBpZiBpdGVtIGlzIG5vdCBOb25lIGVsc2UgIiIKKyAgICAgICAgICAgIGNvbGxl
Y3RlZC5hcHBlbmQoKHN0cih3YXJuaW5nX21lc3NhZ2UubWVzc2FnZSksIHdoZW4sIGltZ2VfbmFt
ZSkpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwbHVnaW5zPVtXYXJuaW5nQ29s
bGVjdG9yKCldKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoi
XSkKKworICAgIGV4cGVjdGVkID0gWworICAgICAgICAoImNvbmZpZyB3YXJuaW5nIiwgImNvbmZp
ZyIsICIiKSwKKyAgICAgICAgKCJjb2xsZWN0IHdhcm5pbmciLCAiY29sbGVjdCIsICIiKSwKKyAg
ICAgICAgKCJzZXR1cCB3YXJuaW5nIiwgInJ1bnRlc3QiLCAidGVzdF9mdW5jIiksCisgICAgICAg
ICgiY2FsbCB3YXJuaW5nIiwgInJ1bnRlc3QiLCAidGVzdF9mdW5jIiksCisgICAgICAgICgidGVh
cmRvd24gd2FybmluZyIsICJydW50ZXN0IiwgInRlc3RfZnVuYyIpLAorICAgIF0KKyAgICBhc3Nl
cnQgY29sbGVjdGVkID09IGV4cGVjdGVkCisKKworQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdz
KCJhbHdheXMiKQorZGVmIHRlc3RfY29sbGVjdGlvbl93YXJuaW5ncyh0ZXN0ZGlyKToKKyAgICAi
IiIKKyAgICBDaGVjayB0aGF0IHdlIGFsc28gY2FwdHVyZSB3YXJuaW5ncyBpc3N1ZWQgZHVyaW5n
IHRlc3QgY29sbGVjdGlvbiAoIzMyNTEpLgorICAgICIiIgorICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCB3YXJuaW5ncworCisgICAgICAgIHdhcm5p
bmdzLndhcm4oVXNlcldhcm5pbmcoImNvbGxlY3Rpb24gd2FybmluZyIpKQorCisgICAgICAgIGRl
ZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgcGFzcworICAgICIiIgorICAgICkKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KAorICAgICAgICBbCisgICAgICAgICAgICAiKj09ICVzID09KiIgJSBXQVJOSU5HU19TVU1NQVJZ
X0hFQURFUiwKKyAgICAgICAgICAgICIgICpjb2xsZWN0aW9uX3dhcm5pbmdzLnB5OjM6IFVzZXJX
YXJuaW5nOiBjb2xsZWN0aW9uIHdhcm5pbmciLAorICAgICAgICAgICAgJyAgICB3YXJuaW5ncy53
YXJuKFVzZXJXYXJuaW5nKCJjb2xsZWN0aW9uIHdhcm5pbmciKSknLAorICAgICAgICAgICAgIiog
MSBwYXNzZWQsIDEgd2FybmluZ3MqIiwKKyAgICAgICAgXQorICAgICkKKworCitAcHl0ZXN0Lm1h
cmsuZmlsdGVyd2FybmluZ3MoImFsd2F5cyIpCitkZWYgdGVzdF9tYXJrX3JlZ2V4X2VzY2FwZSh0
ZXN0ZGlyKToKKyAgICAiIiJAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3Mgc2hvdWxkIG5vdCB0
cnkgdG8gZXNjYXBlIHJlZ2V4IGNoYXJhY3RlcnMgKCMzOTM2KSIiIgorICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgKKyAgICAgICAgciIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0LCB3YXJuaW5ncwor
CisgICAgICAgIEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncyhyImlnbm9yZTpzb21lIFwod2Fy
bmluZ1wpIikKKyAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICB3YXJuaW5ncy53
YXJuKFVzZXJXYXJuaW5nKCJzb21lICh3YXJuaW5nKSIpKQorICAgICIiIgorICAgICkKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IFdBUk5JTkdTX1NVTU1BUllf
SEVBREVSIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworQHB5dGVzdC5tYXJrLmZpbHRl
cndhcm5pbmdzKCJkZWZhdWx0IikKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaWdub3JlX3B5
dGVzdF93YXJuaW5ncyIsIFsibm8iLCAiaW5pIiwgImNtZGxpbmUiXSkKK2RlZiB0ZXN0X2hpZGVf
cHl0ZXN0X2ludGVybmFsX3dhcm5pbmdzKHRlc3RkaXIsIGlnbm9yZV9weXRlc3Rfd2FybmluZ3Mp
OgorICAgICIiIk1ha2Ugc3VyZSB3ZSBjYW4gaWdub3JlIGludGVybmFsIHB5dGVzdCB3YXJuaW5n
cyB1c2luZyBhIHdhcm5pbmdzIGZpbHRlci4iIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisg
ICAgICAgICIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGltcG9ydCB3YXJuaW5n
cworCisgICAgICAgIHdhcm5pbmdzLndhcm4ocHl0ZXN0LlB5dGVzdFdhcm5pbmcoInNvbWUgaW50
ZXJuYWwgd2FybmluZyIpKQorCisgICAgICAgIGRlZiB0ZXN0X2JhcigpOgorICAgICAgICAgICAg
cGFzcworICAgICIiIgorICAgICkKKyAgICBpZiBpZ25vcmVfcHl0ZXN0X3dhcm5pbmdzID09ICJp
bmkiOgorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgIFtweXRlc3RdCisgICAgICAgICAgICBmaWx0ZXJ3YXJuaW5ncyA9IGlnbm9yZTo6cHl0ZXN0
LlB5dGVzdFdhcm5pbmcKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICBhcmdzID0gKAorICAg
ICAgICBbIi1XIiwgImlnbm9yZTo6cHl0ZXN0LlB5dGVzdFdhcm5pbmciXQorICAgICAgICBpZiBp
Z25vcmVfcHl0ZXN0X3dhcm5pbmdzID09ICJjbWRsaW5lIgorICAgICAgICBlbHNlIFtdCisgICAg
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCphcmdzKQorICAgIGlmIGlnbm9yZV9w
eXRlc3Rfd2FybmluZ3MgIT0gIm5vIjoKKyAgICAgICAgYXNzZXJ0IFdBUk5JTkdTX1NVTU1BUllf
SEVBREVSIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgZWxzZToKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAg
ICIqPT0gJXMgPT0qIiAlIFdBUk5JTkdTX1NVTU1BUllfSEVBREVSLAorICAgICAgICAgICAgICAg
ICIqdGVzdF9oaWRlX3B5dGVzdF9pbnRlcm5hbF93YXJuaW5ncy5weTo0OiBQeXRlc3RXYXJuaW5n
OiBzb21lIGludGVybmFsIHdhcm5pbmciLAorICAgICAgICAgICAgICAgICIqIDEgcGFzc2VkLCAx
IHdhcm5pbmdzICoiLAorICAgICAgICAgICAgXQorICAgICAgICApCisKKworQHB5dGVzdC5tYXJr
LnBhcmFtZXRyaXplKCJpZ25vcmVfb25fY21kbGluZSIsIFtUcnVlLCBGYWxzZV0pCitkZWYgdGVz
dF9vcHRpb25fcHJlY2VkZW5jZV9jbWRsaW5lX292ZXJfaW5pKHRlc3RkaXIsIGlnbm9yZV9vbl9j
bWRsaW5lKToKKyAgICAiIiJmaWx0ZXJzIGRlZmluZWQgaW4gdGhlIGNvbW1hbmQtbGluZSBzaG91
bGQgdGFrZSBwcmVjZWRlbmNlIG92ZXIgZmlsdGVycyBpbiBpbmkgZmlsZXMgKCMzOTQ2KS4iIiIK
KyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIiIgorICAgICAgICBbcHl0ZXN0XQorICAg
ICAgICBmaWx0ZXJ3YXJuaW5ncyA9IGVycm9yCisgICAgIiIiCisgICAgKQorICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgKKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCB3YXJuaW5ncworICAgICAg
ICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybihVc2VyV2FybmluZygnaGVs
bG8nKSkKKyAgICAiIiIKKyAgICApCisgICAgYXJncyA9IFsiLVciLCAiaWdub3JlIl0gaWYgaWdu
b3JlX29uX2NtZGxpbmUgZWxzZSBbXQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCph
cmdzKQorICAgIGlmIGlnbm9yZV9vbl9jbWRsaW5lOgorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIqIDEgcGFzc2VkIGluKiJdKQorICAgIGVsc2U6CisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMSBmYWlsZWQgaW4qIl0pCisKKworZGVmIHRlc3Rf
b3B0aW9uX3ByZWNlZGVuY2VfbWFyayh0ZXN0ZGlyKToKKyAgICAiIiJGaWx0ZXJzIGRlZmluZWQg
YnkgbWFya3Mgc2hvdWxkIGFsd2F5cyB0YWtlIHByZWNlZGVuY2UgKCMzOTQ2KS4iIiIKKyAgICB0
ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBm
aWx0ZXJ3YXJuaW5ncyA9IGlnbm9yZQorICAgICIiIgorICAgICkKKyAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoCisgICAgICAgICIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0LCB3YXJuaW5ncworICAg
ICAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoJ2Vycm9yJykKKyAgICAgICAgZGVmIHRl
c3QoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oVXNlcldhcm5pbmcoJ2hlbGxvJykpCisg
ICAgIiIiCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItVyIsICJpZ25v
cmUiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMSBmYWlsZWQgaW4qIl0p
CisKKworY2xhc3MgVGVzdERlcHJlY2F0aW9uV2FybmluZ3NCeURlZmF1bHQ6CisgICAgIiIiCisg
ICAgTm90ZTogYWxsIHB5dGVzdCBydW5zIGFyZSBleGVjdXRlZCBpbiBhIHN1YnByb2Nlc3Mgc28g
d2UgZG9uJ3QgaW5oZXJpdCB3YXJuaW5nIGZpbHRlcnMKKyAgICBmcm9tIHB5dGVzdCdzIG93biB0
ZXN0IHN1aXRlCisgICAgIiIiCisKKyAgICBkZWYgY3JlYXRlX2ZpbGUoc2VsZiwgdGVzdGRpciwg
bWFyaz0iIik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdCwgd2FybmluZ3MKKworICAgICAgICAgICAgd2Fybmlu
Z3Mud2FybihEZXByZWNhdGlvbldhcm5pbmcoImNvbGxlY3Rpb24iKSkKKworICAgICAgICAgICAg
e21hcmt9CisgICAgICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgICAgICB3YXJu
aW5ncy53YXJuKFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcoInRlc3QgcnVuIikpCisgICAgICAg
ICIiIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgbWFyaz1tYXJrCisgICAgICAgICAgICApCisg
ICAgICAgICkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY3VzdG9taXplX2ZpbHRl
cnMiLCBbVHJ1ZSwgRmFsc2VdKQorICAgIGRlZiB0ZXN0X3Nob3duX2J5X2RlZmF1bHQoc2VsZiwg
dGVzdGRpciwgY3VzdG9taXplX2ZpbHRlcnMpOgorICAgICAgICAiIiJTaG93IGRlcHJlY2F0aW9u
IHdhcm5pbmdzIGJ5IGRlZmF1bHQsIGV2ZW4gaWYgdXNlciBoYXMgY3VzdG9taXplZCB0aGUgd2Fy
bmluZ3MgZmlsdGVycyAoIzQwMTMpLiIiIgorICAgICAgICBzZWxmLmNyZWF0ZV9maWxlKHRlc3Rk
aXIpCisgICAgICAgIGlmIGN1c3RvbWl6ZV9maWx0ZXJzOgorICAgICAgICAgICAgdGVzdGRpci5t
YWtlaW5pKAorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgIFtweXRlc3RdCisg
ICAgICAgICAgICAgICAgZmlsdGVyd2FybmluZ3MgPQorICAgICAgICAgICAgICAgICAgICBvbmNl
OjpVc2VyV2FybmluZworICAgICAgICAgICAgIiIiCisgICAgICAgICAgICApCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgIio9PSAl
cyA9PSoiICUgV0FSTklOR1NfU1VNTUFSWV9IRUFERVIsCisgICAgICAgICAgICAgICAgIip0ZXN0
X3Nob3duX2J5X2RlZmF1bHQucHk6MzogRGVwcmVjYXRpb25XYXJuaW5nOiBjb2xsZWN0aW9uIiwK
KyAgICAgICAgICAgICAgICAiKnRlc3Rfc2hvd25fYnlfZGVmYXVsdC5weTo3OiBQZW5kaW5nRGVw
cmVjYXRpb25XYXJuaW5nOiB0ZXN0IHJ1biIsCisgICAgICAgICAgICAgICAgIiogMSBwYXNzZWQs
IDIgd2FybmluZ3MqIiwKKyAgICAgICAgICAgIF0KKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rf
aGlkZGVuX2J5X2luaShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgc2VsZi5jcmVhdGVfZmlsZSh0
ZXN0ZGlyKQorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICAgICAiIiIKKyAgICAg
ICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBmaWx0ZXJ3YXJuaW5ncyA9CisgICAgICAgICAg
ICAgICAgaWdub3JlOjpEZXByZWNhdGlvbldhcm5pbmcKKyAgICAgICAgICAgICAgICBpZ25vcmU6
OlBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcKKyAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpCisgICAgICAgIGFzc2Vy
dCBXQVJOSU5HU19TVU1NQVJZX0hFQURFUiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisg
ICAgZGVmIHRlc3RfaGlkZGVuX2J5X21hcmsoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlNo
b3VsZCBoaWRlIHRoZSBkZXByZWNhdGlvbiB3YXJuaW5nIGZyb20gdGhlIGZ1bmN0aW9uLCBidXQg
dGhlIHdhcm5pbmcgZHVyaW5nIGNvbGxlY3Rpb24gc2hvdWxkCisgICAgICAgIGJlIGRpc3BsYXll
ZCBub3JtYWxseS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuY3JlYXRlX2ZpbGUoCisgICAg
ICAgICAgICB0ZXN0ZGlyLAorICAgICAgICAgICAgbWFyaz0nQHB5dGVzdC5tYXJrLmZpbHRlcndh
cm5pbmdzKCJpZ25vcmU6OlBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmciKScsCisgICAgICAgICkK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAg
ICAgICAiKj09ICVzID09KiIgJSBXQVJOSU5HU19TVU1NQVJZX0hFQURFUiwKKyAgICAgICAgICAg
ICAgICAiKnRlc3RfaGlkZGVuX2J5X21hcmsucHk6MzogRGVwcmVjYXRpb25XYXJuaW5nOiBjb2xs
ZWN0aW9uIiwKKyAgICAgICAgICAgICAgICAiKiAxIHBhc3NlZCwgMSB3YXJuaW5ncyoiLAorICAg
ICAgICAgICAgXQorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9oaWRkZW5fYnlfY21kbGluZShz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgc2VsZi5jcmVhdGVfZmlsZSh0ZXN0ZGlyKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKAorICAgICAgICAgICAgIi1X
IiwKKyAgICAgICAgICAgICJpZ25vcmU6OkRlcHJlY2F0aW9uV2FybmluZyIsCisgICAgICAgICAg
ICAiLVciLAorICAgICAgICAgICAgImlnbm9yZTo6UGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyIs
CisgICAgICAgICkKKyAgICAgICAgYXNzZXJ0IFdBUk5JTkdTX1NVTU1BUllfSEVBREVSIG5vdCBp
biByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICBkZWYgdGVzdF9oaWRkZW5fYnlfc3lzdGVtKHNl
bGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgc2VsZi5jcmVhdGVfZmlsZSh0ZXN0
ZGlyKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoc3RyKCJQWVRIT05XQVJOSU5HUyIpLCBz
dHIoIm9uY2U6OlVzZXJXYXJuaW5nIikpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0X3N1YnByb2Nlc3MoKQorICAgICAgICBhc3NlcnQgV0FSTklOR1NfU1VNTUFSWV9IRUFERVIg
bm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKG5vdCBz
aXguUFkyLCByZWFzb249IlB5dGhvbiAyIG9ubHkgaXNzdWUiKQorZGVmIHRlc3RfaW5maW5pdGVf
bG9vcF93YXJuaW5nX2FnYWluc3RfdW5pY29kZV91c2FnZV9weTIodGVzdGRpcik6CisgICAgIiIi
CisgICAgV2UgbmVlZCB0byBiZSBjYXJlZnVsIHdoZW4gcmFpc2luZyB0aGUgd2FybmluZyBhYm91
dCB1bmljb2RlIHVzYWdlIHdpdGggIndhcm5pbmdzLndhcm4iCisgICAgYmVjYXVzZSBpdCBtaWdo
dCBiZSBvdmVyd3JpdHRlbiBieSB1c2VycyBhbmQgdGhpcyBpdHNlbGYgY2F1c2VzIGFub3RoZXIg
d2FybmluZyAoIzM2OTEpLgorICAgICIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAg
ICAgIiIiCisgICAgICAgICMgLSotIGNvZGluZzogdXRmLTggLSotCisgICAgICAgIGZyb20gX19m
dXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworICAgICAgICBpbXBvcnQgd2FybmluZ3MK
KyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIGRlZiBfY3VzdG9tX3Nob3d3YXJuaW5n
KG1lc3NhZ2UsICphLCAqKmIpOgorICAgICAgICAgICAgcmV0dXJuICJXQVJOSU5HOiB7fSIuZm9y
bWF0KG1lc3NhZ2UpCisKKyAgICAgICAgd2FybmluZ3MuZm9ybWF0d2FybmluZyA9IF9jdXN0b21f
c2hvd3dhcm5pbmcKKworICAgICAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImRlZmF1
bHQiKQorICAgICAgICBkZWYgdGVzdF9jdXN0b21fd2FybmluZ19mb3JtYXR0ZXIoKToKKyAgICAg
ICAgICAgIHdhcm5pbmdzLndhcm4oIsKlIikKKyAgICAiIiIKKyAgICApCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsiKjEgcGFzc2VkLCAqIHdhcm5pbmdzIGluKiJdKQorCisKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgiY2hhbmdlX2RlZmF1bHQiLCBbTm9uZSwgImluaSIsICJjbWRsaW5lIl0pCitk
ZWYgdGVzdF9yZW1vdmVkX2luX3B5dGVzdDRfd2FybmluZ19hc19lcnJvcih0ZXN0ZGlyLCBjaGFu
Z2VfZGVmYXVsdCk6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAiIiIKKyAgICAg
ICAgaW1wb3J0IHdhcm5pbmdzLCBweXRlc3QKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAg
ICAgIHdhcm5pbmdzLndhcm4ocHl0ZXN0LlJlbW92ZWRJblB5dGVzdDRXYXJuaW5nKCJzb21lIHdh
cm5pbmciKSkKKyAgICAiIiIKKyAgICApCisgICAgaWYgY2hhbmdlX2RlZmF1bHQgPT0gImluaSI6
CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAg
W3B5dGVzdF0KKyAgICAgICAgICAgIGZpbHRlcndhcm5pbmdzID0KKyAgICAgICAgICAgICAgICBp
Z25vcmU6OnB5dGVzdC5SZW1vdmVkSW5QeXRlc3Q0V2FybmluZworICAgICAgICAiIiIKKyAgICAg
ICAgKQorCisgICAgYXJncyA9ICgKKyAgICAgICAgKCItV2lnbm9yZTo6cHl0ZXN0LlJlbW92ZWRJ
blB5dGVzdDRXYXJuaW5nIiwpCisgICAgICAgIGlmIGNoYW5nZV9kZWZhdWx0ID09ICJjbWRsaW5l
IgorICAgICAgICBlbHNlICgpCisgICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCphcmdzKQorICAgIGlmIGNoYW5nZV9kZWZhdWx0IGlzIE5vbmU6CisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbIiogMSBmYWlsZWQgaW4gKiJdKQorICAgIGVsc2U6CisgICAg
ICAgIGFzc2VydCBjaGFuZ2VfZGVmYXVsdCBpbiAoImluaSIsICJjbWRsaW5lIikKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKiAxIHBhc3NlZCBpbiAqIl0pCisKKworY2xh
c3MgVGVzdEFzc2VydGlvbldhcm5pbmdzOgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgYXNz
ZXJ0X3Jlc3VsdF93YXJucyhyZXN1bHQsIG1zZyk6CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbIipQeXRlc3RBc3NlcnRSZXdyaXRlV2FybmluZzogJXMqIiAlIG1zZ10pCisK
KyAgICBkZWYgdGVzdF90dXBsZV93YXJuaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Zv
bygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAoMSwyKQorICAgICAgICAgICAgIiIiCisgICAg
ICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBzZWxm
LmFzc2VydF9yZXN1bHRfd2FybnMoCisgICAgICAgICAgICByZXN1bHQsICJhc3NlcnRpb24gaXMg
YWx3YXlzIHRydWUsIHBlcmhhcHMgcmVtb3ZlIHBhcmVudGhlc2VzPyIKKyAgICAgICAgKQorCisg
ICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBjcmVhdGVfZmlsZSh0ZXN0ZGlyLCByZXR1cm5fbm9u
ZSk6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgICIiIgorICAgICAg
ICAgICAgZGVmIGZvbyhyZXR1cm5fbm9uZSk6CisgICAgICAgICAgICAgICAgaWYgcmV0dXJuX25v
bmU6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAgIGFzc2VydCBmb28oe3JldHVybl9ub25lfSkKKyAg
ICAgICAgICAgICIiIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgcmV0dXJuX25vbmU9cmV0dXJu
X25vbmUKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rfbm9uZV9mdW5j
dGlvbl93YXJucyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgc2VsZi5jcmVhdGVfZmlsZSh0ZXN0
ZGlyLCBUcnVlKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAg
IHNlbGYuYXNzZXJ0X3Jlc3VsdF93YXJucygKKyAgICAgICAgICAgIHJlc3VsdCwgJ2Fzc2VydGlu
ZyB0aGUgdmFsdWUgTm9uZSwgcGxlYXNlIHVzZSAiYXNzZXJ0IGlzIE5vbmUiJworICAgICAgICAp
CisKKyAgICBkZWYgdGVzdF9hc3NlcnRfaXNfbm9uZV9ub193YXJuKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg
IGRlZiBmb28oKToKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgICAgICBk
ZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgZm9vKCkgaXMgTm9uZQorICAg
ICAgICAgICAgIiIiCisgICAgICAgICkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQgaW4q
Il0pCisKKyAgICBkZWYgdGVzdF9mYWxzZV9mdW5jdGlvbl9ub193YXJuKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBzZWxmLmNyZWF0ZV9maWxlKHRlc3RkaXIsIEZhbHNlKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbIioxIGZhaWxlZCBpbioiXSkKKworCitkZWYgdGVzdF93YXJuaW5nc19jaGVja2VyX3R3
aWNlKCk6CisgICAgIiIiSXNzdWUgIzQ2MTciIiIKKyAgICBleHBlY3RhdGlvbiA9IHB5dGVzdC53
YXJucyhVc2VyV2FybmluZykKKyAgICB3aXRoIGV4cGVjdGF0aW9uOgorICAgICAgICB3YXJuaW5n
cy53YXJuKCJNZXNzYWdlIEEiLCBVc2VyV2FybmluZykKKyAgICB3aXRoIGV4cGVjdGF0aW9uOgor
ICAgICAgICB3YXJuaW5ncy53YXJuKCJNZXNzYWdlIEIiLCBVc2VyV2FybmluZykKKworCitAcHl0
ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoImFsd2F5cyIpCitkZWYgdGVzdF9ncm91cF93YXJuaW5n
c19ieV9tZXNzYWdlKHRlc3RkaXIpOgorICAgIHRlc3RkaXIuY29weV9leGFtcGxlKCJ3YXJuaW5n
cy90ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2UucHkiKQorICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAg
IFsKKyAgICAgICAgICAgICJ0ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2UucHk6OnRlc3Rf
Zm9vWzBdIiwKKyAgICAgICAgICAgICJ0ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2UucHk6
OnRlc3RfZm9vWzFdIiwKKyAgICAgICAgICAgICJ0ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3Nh
Z2UucHk6OnRlc3RfZm9vWzJdIiwKKyAgICAgICAgICAgICJ0ZXN0X2dyb3VwX3dhcm5pbmdzX2J5
X21lc3NhZ2UucHk6OnRlc3RfZm9vWzNdIiwKKyAgICAgICAgICAgICJ0ZXN0X2dyb3VwX3dhcm5p
bmdzX2J5X21lc3NhZ2UucHk6OnRlc3RfZm9vWzRdIiwKKyAgICAgICAgICAgICJ0ZXN0X2dyb3Vw
X3dhcm5pbmdzX2J5X21lc3NhZ2UucHk6OnRlc3RfYmFyIiwKKyAgICAgICAgXQorICAgICkKKyAg
ICB3YXJuaW5nX2NvZGUgPSAnd2FybmluZ3Mud2FybihVc2VyV2FybmluZygiZm9vIikpJworICAg
IGFzc2VydCB3YXJuaW5nX2NvZGUgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCBy
ZXN1bHQuc3Rkb3V0LnN0cigpLmNvdW50KHdhcm5pbmdfY29kZSkgPT0gMQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
dzNjLWltcG9ydC5sb2cKaW5kZXggYmU3NzdhOTJjMzdjOTYzNzQ2ZjdiNDg0ZGNlZWZkYmI5MTZi
OWE3Yy4uZTgwYjZhZjQ2NjY3OWYzMzcwN2VkOGFhYWJlMzM1ZDg2NGRkYmU0NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3czYy1pbXBvcnQubG9nCkBAIC0xNSw2ICsxNSw3IEBAIE5vbmUKIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2FjY2VwdGFuY2VfdGVz
dC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29uZnRlc3QucHkKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2RlcHJlY2F0ZWRfdGVzdC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hcmdjb21w
bGV0ZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRpb24ucHkKQEAgLTM2LDE1
ICszNywxOCBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ub3Nl
LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BhcnNlb3B0LnB5CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X3Bhc3RlYmluLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BhdGhs
aWIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGRiLnB5CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcHl0
ZXN0ZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVjd2Fybi5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF9yZXBvcnRzLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Jl
c3VsdGxvZy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXIucHkKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3Rlc3RfcnVubmVyX3h1bml0LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X3Nlc3Npb24ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2tpcHBpbmcucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc3RlcHdpc2UucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfdGVybWluYWwucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfdG1wZGlyLnB5CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3VuaXR0ZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdG94LmluaQppbmRleCBjYjM4NDZkNTQyMmFkOWNi
ZjY2NTQ3YTQ2MjU2ZDA1ZWY0NDk0NTg1Li5mNzVhMDYxMDQ4MjE4Zjg1NzBkMmExMDYwNDkyNWYx
MjBhMTZkNzcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90b3guaW5pCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3RveC5pbmkKQEAgLTEsNSArMSw2IEBACiBbdG94XQotbWludmVyc2lvbiA9IDIuMAoraXNv
bGF0ZWRfYnVpbGQgPSBUcnVlCittaW52ZXJzaW9uID0gMy41LjMKIGRpc3RzaGFyZSA9IHtob21l
ZGlyfS8udG94L2Rpc3RzaGFyZQogIyBtYWtlIHN1cmUgdG8gdXBkYXRlIGVudmlyb25tZW50IGxp
c3QgaW4gdHJhdmlzLnltbCBhbmQgYXBwdmV5b3IueW1sCiBlbnZsaXN0ID0KQEAgLTksMTkzICsx
MCwxNjIgQEAgZW52bGlzdCA9CiAgICAgcHkzNQogICAgIHB5MzYKICAgICBweTM3CisgICAgcHkz
OAorICAgIHB5MzkKICAgICBweXB5Ci0gICAge3B5MjcscHkzNn0te3BleHBlY3QseGRpc3QsdHJp
YWwsbnVtcHkscGx1Z2d5bWFzdGVyfQotICAgIHB5Mjctbm9ieXRlCisgICAgcHlweTMKKyAgICB7
cHkyNyxweTM3fS17cGV4cGVjdCx4ZGlzdCx0d2lzdGVkLG51bXB5LHBsdWdneW1hc3Rlcn0KKyAg
ICBweTI3LW5vYnl0ZS14ZGlzdAogICAgIGRvY3Rlc3RpbmcKLSAgICBweTM2LWZyZWV6ZQorICAg
IHB5MzctZnJlZXplCiAgICAgZG9jcwogCiBbdGVzdGVudl0KLWNvbW1hbmRzID0gcHl0ZXN0IC0t
bHNvZiAtcmEge3Bvc2FyZ3M6dGVzdGluZ30KLXBhc3NlbnYgPSBVU0VSIFVTRVJOQU1FCi1kZXBz
ID0KLSAgICBoeXBvdGhlc2lzPj0zLjU2Ci0gICAgbm9zZQotICAgIG1vY2sKLSAgICByZXF1ZXN0
cwotCi1bdGVzdGVudjpweTI3LXN1YnByb2Nlc3NdCi1jaGFuZ2VkaXIgPSAuCi1kZXBzID0KLSAg
ICBweXRlc3QteGRpc3Q+PTEuMTMKLSAgICBtb2NrCi0gICAgbm9zZQogY29tbWFuZHMgPQotICAg
IHB5dGVzdCAtbjMgLXJhIC0tcnVucHl0ZXN0PXN1YnByb2Nlc3Mge3Bvc2FyZ3M6dGVzdGluZ30K
KyAgICB7ZW52Ol9QWVRFU1RfVE9YX0NPVkVSQUdFX1JVTjp9IHB5dGVzdCB7cG9zYXJnczp7ZW52
Ol9QWVRFU1RfVE9YX0RFRkFVTFRfUE9TQVJHUzp9fQorICAgIGNvdmVyYWdlOiBjb3ZlcmFnZSBj
b21iaW5lCisgICAgY292ZXJhZ2U6IGNvdmVyYWdlIHJlcG9ydAorcGFzc2VudiA9IFVTRVIgVVNF
Uk5BTUUgQ09WRVJBR0VfKiBUUkFWSVMgUFlURVNUX0FERE9QVFMKK3NldGVudiA9CisgICAgX1BZ
VEVTVF9UT1hfREVGQVVMVF9QT1NBUkdTPXtlbnY6X1BZVEVTVF9UT1hfUE9TQVJHU19MU09GOn0g
e2VudjpfUFlURVNUX1RPWF9QT1NBUkdTX1BFWFBFQ1Q6fSB7ZW52Ol9QWVRFU1RfVE9YX1BPU0FS
R1NfVFdJU1RFRDp9IHtlbnY6X1BZVEVTVF9UT1hfUE9TQVJHU19YRElTVDp9CiAKKyAgICAjIENv
bmZpZ3VyYXRpb24gdG8gcnVuIHdpdGggY292ZXJhZ2Ugc2ltaWxhciB0byBUcmF2aXMvQXBwdmV5
b3IsIGUuZy4KKyAgICAjICJ0b3ggLWUgcHkzNy1jb3ZlcmFnZSIuCisgICAgY292ZXJhZ2U6IF9Q
WVRFU1RfVE9YX0NPVkVSQUdFX1JVTj1jb3ZlcmFnZSBydW4gLW0KKyAgICBjb3ZlcmFnZTogX1BZ
VEVTVF9UT1hfRVhUUkFfREVQPWNvdmVyYWdlLWVuYWJsZS1zdWJwcm9jZXNzCisgICAgY292ZXJh
Z2U6IENPVkVSQUdFX0ZJTEU9e3RveGluaWRpcn0vLmNvdmVyYWdlCisgICAgY292ZXJhZ2U6IENP
VkVSQUdFX1BST0NFU1NfU1RBUlQ9e3RveGluaWRpcn0vLmNvdmVyYWdlcmMKIAotW3Rlc3RlbnY6
bGludGluZ10KLXNraXBzZGlzdCA9IFRydWUKLXVzZWRldmVsb3AgPSBUcnVlCi1iYXNlcHl0aG9u
ID0gcHl0aG9uMy42Ci1kZXBzID0gcHJlLWNvbW1pdAotY29tbWFuZHMgPSBwcmUtY29tbWl0IHJ1
biAtLWFsbC1maWxlcyAtLXNob3ctZGlmZi1vbi1mYWlsdXJlCisgICAgbm9ieXRlOiBQWVRIT05E
T05UV1JJVEVCWVRFQ09ERT0xCiAKLVt0ZXN0ZW52OnB5MjcteGRpc3RdCi1kZXBzID0KLSAgICBw
eXRlc3QteGRpc3Q+PTEuMTMKLSAgICBtb2NrCi0gICAgbm9zZQotICAgIGh5cG90aGVzaXM+PTMu
NTYKLWNoYW5nZWRpcj10ZXN0aW5nCi1jb21tYW5kcyA9Ci0gICAgcHl0ZXN0IC1uOCAtcmEge3Bv
c2FyZ3M6Ln0KKyAgICBsc29mOiBfUFlURVNUX1RPWF9QT1NBUkdTX0xTT0Y9LS1sc29mCiAKLVt0
ZXN0ZW52OnB5MzYteGRpc3RdCi1kZXBzID0ge1t0ZXN0ZW52OnB5MjcteGRpc3RdZGVwc30KLWNv
bW1hbmRzID0ge1t0ZXN0ZW52OnB5MjcteGRpc3RdY29tbWFuZHN9CisgICAgcGV4cGVjdDogX1BZ
VEVTVF9UT1hfUExBVEZPUk09bGludXh8ZGFyd2luCisgICAgcGV4cGVjdDogX1BZVEVTVF9UT1hf
UE9TQVJHU19QRVhQRUNUPS1tIHVzZXNfcGV4cGVjdAogCi1bdGVzdGVudjpweTI3LXBleHBlY3Rd
Ci1jaGFuZ2VkaXIgPSB0ZXN0aW5nCi1wbGF0Zm9ybSA9IGxpbnV4fGRhcndpbgotZGVwcyA9IHBl
eHBlY3QKLWNvbW1hbmRzID0KLSAgICBweXRlc3QgLXJhIHRlc3RfcGRiLnB5IHRlc3RfdGVybWlu
YWwucHkgdGVzdF91bml0dGVzdC5weQorICAgIHR3aXN0ZWQ6IF9QWVRFU1RfVE9YX1BPU0FSR1Nf
VFdJU1RFRD10ZXN0aW5nL3Rlc3RfdW5pdHRlc3QucHkKIAotW3Rlc3RlbnY6cHkzNi1wZXhwZWN0
XQotY2hhbmdlZGlyID0ge1t0ZXN0ZW52OnB5MjctcGV4cGVjdF1jaGFuZ2VkaXJ9Ci1wbGF0Zm9y
bSA9IHtbdGVzdGVudjpweTI3LXBleHBlY3RdcGxhdGZvcm19Ci1kZXBzID0ge1t0ZXN0ZW52OnB5
MjctcGV4cGVjdF1kZXBzfQotY29tbWFuZHMgPSB7W3Rlc3RlbnY6cHkyNy1wZXhwZWN0XWNvbW1h
bmRzfQorICAgIHhkaXN0OiBfUFlURVNUX1RPWF9QT1NBUkdTX1hESVNUPS1uIGF1dG8KK2V4dHJh
cyA9IHRlc3RpbmcKK2RlcHMgPQorICAgIG51bXB5OiBudW1weQorICAgIHBleHBlY3Q6IHBleHBl
Y3QKKyAgICBwbHVnZ3ltYXN0ZXI6IGdpdCtodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
bHVnZ3kuZ2l0QG1hc3RlcgorICAgIHR3aXN0ZWQ6IHR3aXN0ZWQKKyAgICB0d2lzdGVkOiB1bml0
dGVzdDIKKyAgICB4ZGlzdDogcHl0ZXN0LXhkaXN0Pj0xLjEzCisgICAge2VudjpfUFlURVNUX1RP
WF9FWFRSQV9ERVA6fQorcGxhdGZvcm0gPSB7ZW52Ol9QWVRFU1RfVE9YX1BMQVRGT1JNOi4qfQog
Ci1bdGVzdGVudjpweTI3LW5vYnl0ZV0KK1t0ZXN0ZW52OnB5Mjctc3VicHJvY2Vzc10KIGRlcHMg
PQogICAgIHB5dGVzdC14ZGlzdD49MS4xMwotICAgIGh5cG90aGVzaXM+PTMuNTYKLSAgICBtb2Nr
Ci1kaXN0cmlidXRlID0gdHJ1ZQotY2hhbmdlZGlyPXRlc3RpbmcKLXNldGVudiA9Ci0gICAgUFlU
SE9ORE9OVFdSSVRFQllURUNPREU9MQotY29tbWFuZHMgPQotICAgIHB5dGVzdCAtbjMgLXJhIHtw
b3NhcmdzOi59Ci0KLVt0ZXN0ZW52OnB5MjctdHJpYWxdCi1kZXBzID0gdHdpc3RlZAorICAgIHB5
Mjc6IG1vY2sKKyAgICBub3NlCiBjb21tYW5kcyA9Ci0gICAgcHl0ZXN0IC1yYSB7cG9zYXJnczp0
ZXN0aW5nL3Rlc3RfdW5pdHRlc3QucHl9CisgICAgcHl0ZXN0IC1uIGF1dG8gLS1ydW5weXRlc3Q9
c3VicHJvY2VzcyB7cG9zYXJnc30KIAotW3Rlc3RlbnY6cHkzNi10cmlhbF0KLWRlcHMgPSB7W3Rl
c3RlbnY6cHkyNy10cmlhbF1kZXBzfQotY29tbWFuZHMgPSB7W3Rlc3RlbnY6cHkyNy10cmlhbF1j
b21tYW5kc30KIAotW3Rlc3RlbnY6cHkyNy1udW1weV0KLWRlcHMgPSBudW1weQotY29tbWFuZHM9
Ci0gIHB5dGVzdCAtcmEge3Bvc2FyZ3M6dGVzdGluZy9weXRob24vYXBwcm94LnB5fQotCi1bdGVz
dGVudjpweTM2LW51bXB5XQotZGVwcyA9IHtbdGVzdGVudjpweTI3LW51bXB5XWRlcHN9Ci1jb21t
YW5kcyA9IHtbdGVzdGVudjpweTI3LW51bXB5XWNvbW1hbmRzfQotCi1bdGVzdGVudjpweTI3LXBs
dWdneW1hc3Rlcl0KLXNldGVudj0KLSAgICBfUFlURVNUX1NFVFVQX1NLSVBfUExVR0dZX0RFUD0x
Ci1kZXBzID0KLSAgICB7W3Rlc3RlbnZdZGVwc30KLSAgICBnaXQraHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcGx1Z2d5LmdpdEBtYXN0ZXIKLQotW3Rlc3RlbnY6cHkzNi1wbHVnZ3ltYXN0
ZXJdCi1zZXRlbnYgPSB7W3Rlc3RlbnY6cHkyNy1wbHVnZ3ltYXN0ZXJdc2V0ZW52fQotZGVwcyA9
IHtbdGVzdGVudjpweTI3LXBsdWdneW1hc3Rlcl1kZXBzfQorW3Rlc3RlbnY6bGludGluZ10KK3Nr
aXBfaW5zdGFsbCA9IFRydWUKK2Jhc2VweXRob24gPSBweXRob24zCitkZXBzID0gcHJlLWNvbW1p
dD49MS4xMS4wCitjb21tYW5kcyA9IHByZS1jb21taXQgcnVuIC0tYWxsLWZpbGVzIC0tc2hvdy1k
aWZmLW9uLWZhaWx1cmUKIAogW3Rlc3RlbnY6ZG9jc10KLXNraXBzZGlzdCA9IFRydWUKK2Jhc2Vw
eXRob24gPSBweXRob24zCiB1c2VkZXZlbG9wID0gVHJ1ZQogY2hhbmdlZGlyID0gZG9jL2VuCi1k
ZXBzID0KLSAgICBhdHRycwotICAgIG1vcmUtaXRlcnRvb2xzCi0gICAgUHlZQU1MCi0gICAgc3Bo
aW54Ci0gICAgc3BoaW54Y29udHJpYi10cmlvCitkZXBzID0gLXJ7dG94aW5pZGlyfS9kb2MvZW4v
cmVxdWlyZW1lbnRzLnR4dAogCiBjb21tYW5kcyA9CiAgICAgc3BoaW54LWJ1aWxkIC1XIC1iIGh0
bWwgLiBfYnVpbGQKIAogW3Rlc3RlbnY6ZG9jdGVzdGluZ10KLWJhc2VweXRob24gPSBweXRob24K
LXVzZWRldmVsb3AgPSBUcnVlCitiYXNlcHl0aG9uID0gcHl0aG9uMwogc2tpcHNkaXN0ID0gVHJ1
ZQotIyBlbnN1cmUgdGhlIGdpdmVuIHB5YXJncyBjYW4ndCBtZWFuIGFueXRoaW5nIGVsc2UKLWNo
YW5nZWRpciA9IGRvYy8KIGRlcHMgPQorICAgIHtbdGVzdGVudl1kZXBzfQogICAgIFB5WUFNTAog
Y29tbWFuZHMgPQotICAgIHB5dGVzdCAtcmEgZW4KLSAgICBweXRlc3QgLS1kb2N0ZXN0LW1vZHVs
ZXMgLS1weWFyZ3MgX3B5dGVzdAorICAgIHtlbnY6X1BZVEVTVF9UT1hfQ09WRVJBR0VfUlVOOn0g
cHl0ZXN0IGRvYy9lbgorICAgIHtlbnY6X1BZVEVTVF9UT1hfQ09WRVJBR0VfUlVOOn0gcHl0ZXN0
IC0tZG9jdGVzdC1tb2R1bGVzIC0tcHlhcmdzIF9weXRlc3QKIAogW3Rlc3RlbnY6cmVnZW5dCiBj
aGFuZ2VkaXIgPSBkb2MvZW4KIHNraXBzZGlzdCA9IFRydWUKLWJhc2VweXRob24gPSBweXRob24z
LjUKK2Jhc2VweXRob24gPSBweXRob24zCiBkZXBzID0KICAgICBzcGhpbngKICAgICBQeVlBTUwK
ICAgICByZWdlbmRvYz49MC42LjEKKyAgICBkYXRhY2xhc3Nlcwogd2hpdGVsaXN0X2V4dGVybmFs
cyA9CiAgICAgcm0KICAgICBtYWtlCiBjb21tYW5kcyA9CisgICAgIyBkb24ndCBzaG93IGh5cG90
aGVzaXMgcGx1Z2luIGluZm8gaW4gZG9jcywgc2VlICM0NjAyCisgICAgcGlwIHVuaW5zdGFsbCBo
eXBvdGhlc2lzIC15CiAgICAgcm0gLXJmIC90bXAvZG9jLWV4ZWMqCisgICAgcm0gLXJmIHtlbnZk
aXJ9Ly5weXRlc3RfY2FjaGUKICAgICBtYWtlIHJlZ2VuCiAKLVt0ZXN0ZW52OmZpeC1saW50XQot
c2tpcHNkaXN0ID0gVHJ1ZQotdXNlZGV2ZWxvcCA9IFRydWUKLWRlcHMgPQotICAgIGF1dG9wZXA4
Ci1jb21tYW5kcyA9Ci0gICAgYXV0b3BlcDggLS1pbi1wbGFjZSAtciAtLW1heC1saW5lLWxlbmd0
aD0xMjAgLS1leGNsdWRlPXRlc3Rfc291cmNlX211bHRpbGluZV9ibG9jay5weSBfcHl0ZXN0IHRl
c3Rpbmcgc2V0dXAucHkgcHl0ZXN0LnB5Ci0KIFt0ZXN0ZW52Omp5dGhvbl0KIGNoYW5nZWRpciA9
IHRlc3RpbmcKIGNvbW1hbmRzID0KLSAgICB7ZW52cHl0aG9ufSB7ZW52YmluZGlyfS9weS50ZXN0
LWp5dGhvbiAtcmEge3Bvc2FyZ3N9CisgICAge2VudnB5dGhvbn0ge2VudmJpbmRpcn0vcHkudGVz
dC1qeXRob24ge3Bvc2FyZ3N9CiAKLVt0ZXN0ZW52OnB5MzYtZnJlZXplXQorW3Rlc3RlbnY6cHkz
Ny1mcmVlemVdCiBjaGFuZ2VkaXIgPSB0ZXN0aW5nL2ZyZWV6ZQotZGVwcyA9IHB5aW5zdGFsbGVy
CisjIERpc2FibGUgUEVQIDUxNyB3aXRoIHBpcCwgd2hpY2ggZG9lcyBub3Qgd29yayB3aXRoIFB5
SW5zdGFsbGVyIGN1cnJlbnRseS4KK2RlcHMgPQorICAgIHB5aW5zdGFsbGVyCisgICAgc2V0dXB0
b29scyA8IDQ1LjAuMAogY29tbWFuZHMgPQogICAgIHtlbnZweXRob259IGNyZWF0ZV9leGVjdXRh
YmxlLnB5CiAgICAge2VudnB5dGhvbn0gdG94X3J1bi5weQogCi0KLVt0ZXN0ZW52OmNvdmVyYWxs
c10KLXBhc3NlbnYgPSBUUkFWSVMgVFJBVklTX0pPQl9JRCBUUkFWSVNfQlJBTkNIIENPVkVSQUxM
U19SRVBPX1RPS0VOCitbdGVzdGVudjpyZWxlYXNlXQorZGVjcmlwdGlvbiA9IGRvIGEgcmVsZWFz
ZSwgcmVxdWlyZWQgcG9zYXJnIG9mIHRoZSB2ZXJzaW9uIG51bWJlcgorYmFzZXB5dGhvbiA9IHB5
dGhvbjMKIHVzZWRldmVsb3AgPSBUcnVlCi1jaGFuZ2VkaXIgPSAuCitwYXNzZW52ID0gKgogZGVw
cyA9Ci0gICAge1t0ZXN0ZW52XWRlcHN9Ci0gICAgY292ZXJhbGxzCi1jb21tYW5kcyA9Ci0gICAg
Y292ZXJhZ2UgcnVuIC0tc291cmNlPV9weXRlc3QgLW0gcHl0ZXN0IHRlc3RpbmcKLSAgICBjb3Zl
cmFnZSByZXBvcnQgLW0KLSAgICBjb3ZlcmFsbHMKKyAgICBjb2xvcmFtYQorICAgIGdpdHB5dGhv
bgorICAgIHByZS1jb21taXQ+PTEuMTEuMAorICAgIHRvd25jcmllcgorICAgIHdoZWVsCitjb21t
YW5kcyA9IHB5dGhvbiBzY3JpcHRzL3JlbGVhc2UucHkge3Bvc2FyZ3N9CisKK1t0ZXN0ZW52OnB1
Ymxpc2hfZ2hfcmVsZWFzZV9ub3Rlc10KK2Rlc2NyaXB0aW9uID0gY3JlYXRlIEdpdEh1YiByZWxl
YXNlIGFmdGVyIGRlcGxveW1lbnQKK2Jhc2VweXRob24gPSBweXRob24zCit1c2VkZXZlbG9wID0g
VHJ1ZQorcGFzc2VudiA9IEdIX1JFTEVBU0VfTk9URVNfVE9LRU4gVFJBVklTX1RBRyBUUkFWSVNf
UkVQT19TTFVHCitkZXBzID0KKyAgICBnaXRodWIzLnB5CisgICAgcHlwYW5kb2MKK2NvbW1hbmRz
ID0gcHl0aG9uIHNjcmlwdHMvcHVibGlzaF9naF9yZWxlYXNlX25vdGVzLnB5CisKIAogW3B5dGVz
dF0KIG1pbnZlcnNpb24gPSAyLjAKLXBsdWdpbnMgPSBweXRlc3RlcgotYWRkb3B0cyA9IC1yYSAt
cCBweXRlc3RlciAtLWlnbm9yZT10ZXN0aW5nL2N4X2ZyZWV6ZQotcnN5bmNkaXJzID0gdG94Lmlu
aSBweXRlc3QucHkgX3B5dGVzdCB0ZXN0aW5nCithZGRvcHRzID0gLXJhIC1wIHB5dGVzdGVyIC0t
c3RyaWN0LW1hcmtlcnMKK3JzeW5jZGlycyA9IHRveC5pbmkgZG9jIHNyYyB0ZXN0aW5nCiBweXRo
b25fZmlsZXMgPSB0ZXN0XyoucHkgKl90ZXN0LnB5IHRlc3RpbmcvKi8qLnB5CiBweXRob25fY2xh
c3NlcyA9IFRlc3QgQWNjZXB0YW5jZQogcHl0aG9uX2Z1bmN0aW9ucyA9IHRlc3QKLW5vcmVjdXJz
ZWRpcnMgPSAudG94IGphIC5oZyBjeF9mcmVlemVfc291cmNlCisjIE5PVEU6ICJkb2MiIGlzIG5v
dCBpbmNsdWRlZCBoZXJlLCBidXQgZ2V0cyB0ZXN0ZWQgZXhwbGljaXRseSB2aWEgImRvY3Rlc3Rp
bmciLgordGVzdHBhdGhzID0gdGVzdGluZworbm9yZWN1cnNlZGlycyA9IHRlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzCiB4ZmFpbF9zdHJpY3Q9dHJ1ZQogZmlsdGVyd2FybmluZ3MgPQogICAgIGVycm9y
CisgICAgaWdub3JlOnlpZWxkIHRlc3RzIGFyZSBkZXByZWNhdGVkLCBhbmQgc2NoZWR1bGVkIHRv
IGJlIHJlbW92ZWQgaW4gcHl0ZXN0IDQuMDpweXRlc3QuUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcK
KyAgICBpZ25vcmU6TWV0YWZ1bmMuYWRkY2FsbCBpcyBkZXByZWNhdGVkIGFuZCBzY2hlZHVsZWQg
dG8gYmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4wOnB5dGVzdC5SZW1vdmVkSW5QeXRlc3Q0V2Fybmlu
ZworICAgIGlnbm9yZTo6cHl0ZXN0LlJlbW92ZWRJblB5dGVzdDRXYXJuaW5nCisgICAgaWdub3Jl
Ok1vZHVsZSBhbHJlYWR5IGltcG9ydGVkIHNvIGNhbm5vdCBiZSByZXdyaXR0ZW46cHl0ZXN0LlB5
dGVzdFdhcm5pbmcKICAgICAjIHByb2R1Y2VkIGJ5IHBhdGgubG9jYWwKICAgICBpZ25vcmU6YmFk
IGVzY2FwZS4qOkRlcHJlY2F0aW9uV2FybmluZzpyZQogICAgICMgcHJvZHVjZWQgYnkgcGF0aC5y
ZWFkbGluZXMKQEAgLTIwNCw5ICsxNzQsMzAgQEAgZmlsdGVyd2FybmluZ3MgPQogICAgIGlnbm9y
ZTouKnR5cGUgYXJndW1lbnQgdG8gYWRkb3B0aW9uLio6RGVwcmVjYXRpb25XYXJuaW5nCiAgICAg
IyBwcm9kdWNlZCBieSBweXRob24gPj0zLjUgb24gZXhlY25ldCAocHl0ZXN0LXhkaXN0KQogICAg
IGlnbm9yZTouKmluc3BlY3QuZ2V0YXJnc3BlYy4qZGVwcmVjYXRlZCwgdXNlIGluc3BlY3Quc2ln
bmF0dXJlLio6RGVwcmVjYXRpb25XYXJuaW5nCi0gICAgIyBpZ25vcmUgd2FybmluZyBhYm91dCBw
YWNrYWdlIHJlc29sdXRpb24gdXNpbmcgX19zcGVjX18gb3IgX19wYWNrYWdlX18KLSAgICAjIHNo
b3VsZCBiZSBhIHRlbXBvcmFyeSBzb2x1dGlvbiwgc2VlICMzMDYxIGZvciBkaXNjdXNzaW9uCi0g
ICAgaWdub3JlOi4qY2FuJ3QgcmVzb2x2ZSBwYWNrYWdlIGZyb20gX19zcGVjX18gb3IgX19wYWNr
YWdlX18uKjpJbXBvcnRXYXJuaW5nCisgICAgIyBweXRlc3QncyBvd24gZnV0dXJld2FybmluZ3MK
KyAgICBpZ25vcmU6OnB5dGVzdC5QeXRlc3RFeHBlcmltZW50YWxBcGlXYXJuaW5nCisgICAgIyBE
byBub3QgY2F1c2UgU3ludGF4RXJyb3IgZm9yIGludmFsaWQgZXNjYXBlIHNlcXVlbmNlcyBpbiBw
eTM3LgorICAgIGRlZmF1bHQ6aW52YWxpZCBlc2NhcGUgc2VxdWVuY2U6RGVwcmVjYXRpb25XYXJu
aW5nCisgICAgIyBpZ25vcmUgdXNlIG9mIHVucmVnaXN0ZXJlZCBtYXJrcywgYmVjYXVzZSB3ZSB1
c2UgbWFueSB0byB0ZXN0IHRoZSBpbXBsZW1lbnRhdGlvbgorICAgIGlnbm9yZTo6X3B5dGVzdC53
YXJuaW5nX3R5cGVzLlB5dGVzdFVua25vd25NYXJrV2FybmluZworcHl0ZXN0ZXJfZXhhbXBsZV9k
aXIgPSB0ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cworbWFya2VycyA9CisgICAgIyBkdW1teSBtYXJr
ZXJzIGZvciB0ZXN0aW5nCisgICAgZm9vCisgICAgYmFyCisgICAgYmF6CisgICAgIyBjb25mdGVz
dC5weSByZW9yZGVycyB0ZXN0cyBtb3Zpbmcgc2xvdyBvbmVzIHRvIHRoZSBlbmQgb2YgdGhlIGxp
c3QKKyAgICBzbG93CisgICAgIyBleHBlcmltZW50YWwgbWFyayBmb3IgYWxsIHRlc3RzIHVzaW5n
IHBleHBlY3QKKyAgICB1c2VzX3BleHBlY3QKIAogW2ZsYWtlOF0KIG1heC1saW5lLWxlbmd0aCA9
IDEyMAoraWdub3JlID0gRTIwMyxXNTAzCisKK1tpc29ydF0KKzsgVGhpcyBjb25maWcgbWltaWNz
IHdoYXQgcmVvcmRlci1weXRob24taW1wb3J0cyBkb2VzLgorZm9yY2Vfc2luZ2xlX2xpbmUgPSAx
Citrbm93bl9sb2NhbGZvbGRlciA9IHB5dGVzdCxfcHl0ZXN0Citrbm93bl90aGlyZF9wYXJ0eSA9
IHRlc3Rfc291cmNlLHRlc3RfZXhjaW5mbworZm9yY2VfYWxwaGFiZXRpY2FsX3NvcnRfd2l0aGlu
X3NlY3Rpb25zID0gMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC93M2MtaW1wb3J0LmxvZwppbmRleCBmYjBkMTZiOWI2ZDdkOTMyNTU3ODQ5YmIx
NWNiM2ZjZmVmNzRhOThlLi4xODM4OGRjYjVjNzg0NmY2NGFhYmNmNDE0MTRhNDc1OWIxOTJlMTg3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC93M2MtaW1wb3J0LmxvZwpAQCAtMTYsMTEgKzE2LDE0IEBAIE5vbmUKIExpc3Qgb2YgZmlsZXM6
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvQVVUSE9SUwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NIQU5HRUxPRy5yc3QKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9DSVRBVElPTgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NPTlRSSUJVVElORy5yc3QKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9IT1dUT1JFTEVBU0UucnN0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvTElDRU5TRQogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9hcHB2ZXlvci55bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9USURF
TElGVC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9henVyZS1waXBlbGluZXMueW1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
Y29kZWNvdi55bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9weXByb2plY3QudG9tbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Nl
dHVwLmNmZwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29j
a2V0My9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5
d2Vic29ja2V0L3N0cmVhbS5weQppbmRleCBmYzM5OWYyYTg1YjlmZTZjNTJlYzU2OTBmNTgwZDA2
YjIyMmU0NzQ4Li44MmQxZWE2MTljMDc0ZjExODNiYzA4YWU1NWE4Y2UwYmI3NzA0MTA2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl3ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKQEAgLTg3NSw3ICs4
NzUsNyBAQCBjbGFzcyBTdHJlYW0ob2JqZWN0KToKICAgICAgICAgICAgIHdhaXRfcmVzcG9uc2U6
IFRydWUgd2hlbiBjYWxsZXIgd2FudCB0byB3YWl0IHRoZSByZXNwb25zZS4KICAgICAgICAgUmFp
c2VzOgogICAgICAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIHJlYXNvbiBpcyBz
cGVjaWZpZWQgd2l0aCBjb2RlIE5vbmUKLSAgICAgICAgICAgIG9yIHJlYXNvbiBpcyBub3QgYW4g
aW5zdGFuY2Ugb2YgYm90aCBzdHIgYW5kIHVuaWNvZGUuCisgICAgICAgICAgICAgICAgb3IgcmVh
c29uIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBib3RoIHN0ciBhbmQgdW5pY29kZS4KICAgICAgICAg
IiIiCiAKICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL0lOU1RBTExFUiBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4
L3NpeC0xLjEzLjAuZGlzdC1pbmZvL0lOU1RBTExFUgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTFiNTg5ZTM4YTMyMDQxZTQ5MzMyZTVlODFjMmQzNjNkYzQxOGQ2OC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4w
LmRpc3QtaW5mby9JTlNUQUxMRVIKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1waXAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL0xJQ0VOU0UgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Np
eC9zaXgtMS4xMy4wLmRpc3QtaW5mby9MSUNFTlNFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0YjA1YTU0NTI2MWMwZjliMzFhYmUzZWRlYzcxMDU4NzU4N2E2NTlhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAu
ZGlzdC1pbmZvL0xJQ0VOU0UKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1Db3B5cmln
aHQgKGMpIDIwMTAtMjAxOSBCZW5qYW1pbiBQZXRlcnNvbgotCi1QZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5
IG9mCi10aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo
ZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbgotdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp
b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0bwotdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Ig
c2VsbCBjb3BpZXMgb2YKLXRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo
b20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywKLXN1YmplY3QgdG8gdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zOgotCi1UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp
cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKLWNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0KLVRIRSBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S
Ci1JTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUwotRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SCi1DT1BZUklH
SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksIFdIRVRIRVIKLUlOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCi1DT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX
QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vTUVUQURBVEEgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9z
aXgtMS4xMy4wLmRpc3QtaW5mby9NRVRBREFUQQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjBjOGY1MWUxZjM2NjEzOGQzODE2YWJlMGRkYjNlZmVlNDE3NWMzYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRp
c3QtaW5mby9NRVRBREFUQQorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLU1ldGFkYXRh
LVZlcnNpb246IDIuMQotTmFtZTogc2l4Ci1WZXJzaW9uOiAxLjEzLjAKLVN1bW1hcnk6IFB5dGhv
biAyIGFuZCAzIGNvbXBhdGliaWxpdHkgdXRpbGl0aWVzCi1Ib21lLXBhZ2U6IGh0dHBzOi8vZ2l0
aHViLmNvbS9iZW5qYW1pbnAvc2l4Ci1BdXRob3I6IEJlbmphbWluIFBldGVyc29uCi1BdXRob3It
ZW1haWw6IGJlbmphbWluQHB5dGhvbi5vcmcKLUxpY2Vuc2U6IE1JVAotUGxhdGZvcm06IFVOS05P
V04KLUNsYXNzaWZpZXI6IERldmVsb3BtZW50IFN0YXR1cyA6OiA1IC0gUHJvZHVjdGlvbi9TdGFi
bGUKLUNsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyCi1DbGFz
c2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMwotQ2xhc3NpZmllcjog
SW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycwotQ2xhc3NpZmllcjogTGljZW5zZSA6OiBP
U0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UKLUNsYXNzaWZpZXI6IFRvcGljIDo6IFNvZnR3YXJl
IERldmVsb3BtZW50IDo6IExpYnJhcmllcwotQ2xhc3NpZmllcjogVG9waWMgOjogVXRpbGl0aWVz
Ci1SZXF1aXJlcy1QeXRob246ID49Mi42LCAhPTMuMC4qLCAhPTMuMS4qCi0KLS4uIGltYWdlOjog
aHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvc2l4LnN2ZwotICAgOnRhcmdldDogaHR0cHM6
Ly9weXBpLm9yZy9wcm9qZWN0L3NpeC8KLSAgIDphbHQ6IHNpeCBvbiBQeVBJCi0KLS4uIGltYWdl
OjogaHR0cHM6Ly90cmF2aXMtY2kub3JnL2JlbmphbWlucC9zaXguc3ZnP2JyYW5jaD1tYXN0ZXIK
LSAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9iZW5qYW1pbnAvc2l4Ci0gICA6YWx0
OiBzaXggb24gVHJhdmlzQ0kKLQotLi4gaW1hZ2U6OiBodHRwczovL3JlYWR0aGVkb2NzLm9yZy9w
cm9qZWN0cy9zaXgvYmFkZ2UvP3ZlcnNpb249bGF0ZXN0Ci0gICA6dGFyZ2V0OiBodHRwczovL3Np
eC5yZWFkdGhlZG9jcy5pby8KLSAgIDphbHQ6IHNpeCdzIGRvY3VtZW50YXRpb24gb24gUmVhZCB0
aGUgRG9jcwotCi0uLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5z
ZS1NSVQtZ3JlZW4uc3ZnCi0gICA6dGFyZ2V0OiBodHRwczovL2dpdGh1Yi5jb20vYmVuamFtaW5w
L3NpeC9ibG9iL21hc3Rlci9MSUNFTlNFCi0gICA6YWx0OiBNSVQgTGljZW5zZSBiYWRnZQotCi1T
aXggaXMgYSBQeXRob24gMiBhbmQgMyBjb21wYXRpYmlsaXR5IGxpYnJhcnkuICBJdCBwcm92aWRl
cyB1dGlsaXR5IGZ1bmN0aW9ucwotZm9yIHNtb290aGluZyBvdmVyIHRoZSBkaWZmZXJlbmNlcyBi
ZXR3ZWVuIHRoZSBQeXRob24gdmVyc2lvbnMgd2l0aCB0aGUgZ29hbCBvZgotd3JpdGluZyBQeXRo
b24gY29kZSB0aGF0IGlzIGNvbXBhdGlibGUgb24gYm90aCBQeXRob24gdmVyc2lvbnMuICBTZWUg
dGhlCi1kb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHdoYXQgaXMgcHJvdmlk
ZWQuCi0KLVNpeCBzdXBwb3J0cyBldmVyeSBQeXRob24gdmVyc2lvbiBzaW5jZSAyLjYuICBJdCBp
cyBjb250YWluZWQgaW4gb25seSBvbmUgUHl0aG9uCi1maWxlLCBzbyBpdCBjYW4gYmUgZWFzaWx5
IGNvcGllZCBpbnRvIHlvdXIgcHJvamVjdC4gKFRoZSBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UKLW5v
dGljZSBtdXN0IGJlIHJldGFpbmVkLikKLQotT25saW5lIGRvY3VtZW50YXRpb24gaXMgYXQgaHR0
cHM6Ly9zaXgucmVhZHRoZWRvY3MuaW8vLgotCi1CdWdzIGNhbiBiZSByZXBvcnRlZCB0byBodHRw
czovL2dpdGh1Yi5jb20vYmVuamFtaW5wL3NpeC4gIFRoZSBjb2RlIGNhbiBhbHNvCi1iZSBmb3Vu
ZCB0aGVyZS4KLQotRm9yIHF1ZXN0aW9ucyBhYm91dCBzaXggb3IgcG9ydGluZyBpbiBnZW5lcmFs
LCBlbWFpbCB0aGUgcHl0aG9uLXBvcnRpbmcgbWFpbGluZwotbGlzdDogaHR0cHM6Ly9tYWlsLnB5
dGhvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9weXRob24tcG9ydGluZwotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL1JFQ09SRCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEz
LjAuZGlzdC1pbmZvL1JFQ09SRApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU3NjY1
Yzk5NjQyNTVkMTcwMmYwMTZjOGJkMTFkYWVkZTUxNjZlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9S
RUNPUkQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLXNpeC0xLjEzLjAuZGlzdC1pbmZv
L0lOU1RBTExFUixzaGEyNTY9enV1dWU0a25veUotVXdQUFhnOGZlelM3VkNyWEpRckFQN3plTnV3
dkZRZyw0DQotc2l4LTEuMTMuMC5kaXN0LWluZm8vTElDRU5TRSxzaGEyNTY9dDFLYmpBY1hHbmlv
dzJ3eWc1QlZLT1NCS1VYWmQ5RWw2NUp1ak12eVJiWSwxMDY2DQotc2l4LTEuMTMuMC5kaXN0LWlu
Zm8vTUVUQURBVEEsc2hhMjU2PWh4UzRyU1BSZk84ZXdiY0xTMzBhbm9GaTZMRmdVUTNta194a25a
OFJWNHcsMTk0MA0KLXNpeC0xLjEzLjAuZGlzdC1pbmZvL1JFQ09SRCwsDQotc2l4LTEuMTMuMC5k
aXN0LWluZm8vV0hFRUwsc2hhMjU2PThUOGZ4ZWZyX3ItQTc5cWJPSjlkX0FhRWdrcENHbUVQSGMt
Z3BDcTVCUmcsMTEwDQotc2l4LTEuMTMuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dCxzaGEyNTY9
X2lWSF9pWUV0RVhuRDhuWUdRWXBZRlV2a1VXOXNFTzFHWWJrZUtTQWFpcyw0DQotc2l4LnB5LHNo
YTI1Nj1vOVdITzh1dFdHYXlOaE5xRG1OcVBkUXNRYWlyNVJhUldqTF84SVlmMXF3LDMzMDUxDQot
c2l4LnB5YywsDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vV0hF
RUwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9XSEVFTApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTAwMTIzNTUzMzNlMDY2NGZhYzMxMjM4YWEwNDIxNmZmNTM2MjIxNy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9z
aXgtMS4xMy4wLmRpc3QtaW5mby9XSEVFTAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAot
V2hlZWwtVmVyc2lvbjogMS4wCi1HZW5lcmF0b3I6IGJkaXN0X3doZWVsICgwLjMyLjEpCi1Sb290
LUlzLVB1cmVsaWI6IHRydWUKLVRhZzogcHkyLW5vbmUtYW55Ci1UYWc6IHB5My1ub25lLWFueQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZmZlMmZjZTQ5ODk1NWI2MjgwMTQ2MThiMjhjNmJjZjE1MjQ2
NmE0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0CisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotc2l4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5m
by93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNWUxZDIyY2I4NjMwY2NkMjBj
MjAzZDYzODlhNWFlNjI1MDBhZjlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEu
MTMuMC5kaXN0LWluZm8vSU5TVEFMTEVSCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8v
TElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL01FVEFEQVRBCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9z
aXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vUkVDT1JECi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0
LWluZm8vV0hFRUwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vUEtHLUlORk8gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9z
aXguZWdnLWluZm8vUEtHLUlORk8KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkNWZm
NGJiOGU0ZmEwYTFjYWY2ZDNkZjUyOGFiYzIwYjNkZjVhZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL1BLRy1JTkZP
CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotTWV0YWRhdGEtVmVyc2lvbjogMS4xCi1O
YW1lOiBzaXgKLVZlcnNpb246IDEuMTEuMAotU3VtbWFyeTogUHl0aG9uIDIgYW5kIDMgY29tcGF0
aWJpbGl0eSB1dGlsaXRpZXMKLUhvbWUtcGFnZTogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBp
L3NpeC8KLUF1dGhvcjogQmVuamFtaW4gUGV0ZXJzb24KLUF1dGhvci1lbWFpbDogYmVuamFtaW5A
cHl0aG9uLm9yZwotTGljZW5zZTogTUlUCi1EZXNjcmlwdGlvbjogLi4gaW1hZ2U6OiBodHRwOi8v
aW1nLnNoaWVsZHMuaW8vcHlwaS92L3NpeC5zdmcKLSAgICAgICAgICAgOnRhcmdldDogaHR0cHM6
Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zaXgKLSAgICAgICAgCi0gICAgICAgIC4uIGltYWdlOjog
aHR0cHM6Ly90cmF2aXMtY2kub3JnL2JlbmphbWlucC9zaXguc3ZnP2JyYW5jaD1tYXN0ZXIKLSAg
ICAgICAgICAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9iZW5qYW1pbnAvc2l4Ci0g
ICAgICAgIAotICAgICAgICAuLiBpbWFnZTo6IGh0dHA6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9s
aWNlbnNlLU1JVC1ncmVlbi5zdmcKLSAgICAgICAgICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIu
Y29tL2JlbmphbWlucC9zaXgvYmxvYi9tYXN0ZXIvTElDRU5TRQotICAgICAgICAKLSAgICAgICAg
U2l4IGlzIGEgUHl0aG9uIDIgYW5kIDMgY29tcGF0aWJpbGl0eSBsaWJyYXJ5LiAgSXQgcHJvdmlk
ZXMgdXRpbGl0eSBmdW5jdGlvbnMKLSAgICAgICAgZm9yIHNtb290aGluZyBvdmVyIHRoZSBkaWZm
ZXJlbmNlcyBiZXR3ZWVuIHRoZSBQeXRob24gdmVyc2lvbnMgd2l0aCB0aGUgZ29hbCBvZgotICAg
ICAgICB3cml0aW5nIFB5dGhvbiBjb2RlIHRoYXQgaXMgY29tcGF0aWJsZSBvbiBib3RoIFB5dGhv
biB2ZXJzaW9ucy4gIFNlZSB0aGUKLSAgICAgICAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZv
cm1hdGlvbiBvbiB3aGF0IGlzIHByb3ZpZGVkLgotICAgICAgICAKLSAgICAgICAgU2l4IHN1cHBv
cnRzIGV2ZXJ5IFB5dGhvbiB2ZXJzaW9uIHNpbmNlIDIuNi4gIEl0IGlzIGNvbnRhaW5lZCBpbiBv
bmx5IG9uZSBQeXRob24KLSAgICAgICAgZmlsZSwgc28gaXQgY2FuIGJlIGVhc2lseSBjb3BpZWQg
aW50byB5b3VyIHByb2plY3QuIChUaGUgY29weXJpZ2h0IGFuZCBsaWNlbnNlCi0gICAgICAgIG5v
dGljZSBtdXN0IGJlIHJldGFpbmVkLikKLSAgICAgICAgCi0gICAgICAgIE9ubGluZSBkb2N1bWVu
dGF0aW9uIGlzIGF0IGh0dHA6Ly9zaXgucnRmZC5vcmcuCi0gICAgICAgIAotICAgICAgICBCdWdz
IGNhbiBiZSByZXBvcnRlZCB0byBodHRwczovL2dpdGh1Yi5jb20vYmVuamFtaW5wL3NpeC4gIFRo
ZSBjb2RlIGNhbiBhbHNvCi0gICAgICAgIGJlIGZvdW5kIHRoZXJlLgotICAgICAgICAKLSAgICAg
ICAgRm9yIHF1ZXN0aW9ucyBhYm91dCBzaXggb3IgcG9ydGluZyBpbiBnZW5lcmFsLCBlbWFpbCB0
aGUgcHl0aG9uLXBvcnRpbmcgbWFpbGluZwotICAgICAgICBsaXN0OiBodHRwczovL21haWwucHl0
aG9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3B5dGhvbi1wb3J0aW5nCi0gICAgICAgIAotUGxhdGZv
cm06IFVOS05PV04KLUNsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6
OiAyCi1DbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMwotQ2xh
c3NpZmllcjogSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycwotQ2xhc3NpZmllcjogTGlj
ZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UKLUNsYXNzaWZpZXI6IFRvcGljIDo6
IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcwotQ2xhc3NpZmllcjogVG9waWMgOjog
VXRpbGl0aWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vU09VUkNFUy50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3NpeC9zaXguZWdnLWluZm8vU09VUkNFUy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDlhN2YzZGVjNmRmMzM0ZDg0MjNkOTAzYjA0MzlhMTA2ZDdkMjJhMTUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVn
Zy1pbmZvL1NPVVJDRVMudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotQ0hBTkdF
UwotTElDRU5TRQotTUFOSUZFU1QuaW4KLVJFQURNRS5yc3QKLXNldHVwLmNmZwotc2V0dXAucHkK
LXNpeC5weQotdGVzdF9zaXgucHkKLWRvY3VtZW50YXRpb24vTWFrZWZpbGUKLWRvY3VtZW50YXRp
b24vY29uZi5weQotZG9jdW1lbnRhdGlvbi9pbmRleC5yc3QKLXNpeC5lZ2ctaW5mby9QS0ctSU5G
Twotc2l4LmVnZy1pbmZvL1NPVVJDRVMudHh0Ci1zaXguZWdnLWluZm8vZGVwZW5kZW5jeV9saW5r
cy50eHQKLXNpeC5lZ2ctaW5mby90b3BfbGV2ZWwudHh0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3Mu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRl
ZDA4YmRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvc2l4L3NpeC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL3RvcF9sZXZl
bC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vdG9wX2xldmVsLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZmZlMmZjZTQ5ODk1NWI2MjgwMTQ2MThiMjhjNmJjZjE1MjQ2NmE0
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Np
eC9zaXguZWdnLWluZm8vdG9wX2xldmVsLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LXNpeApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9zaXgvc2l4LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxMTMxOTUzMWYxZTFmNzQ4NzJjNDgxMjEyOTM5ZDMyZGY3MjE0MWQ4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5l
Z2ctaW5mby93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ct
aW5mby9TT1VSQ0VTLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtz
LnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby90b3BfbGV2ZWwudHh0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3ppcHAvQ0hBTkdFUy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvQ0hBTkdFUy5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTQ2NGE2MzI0YjdiZWE4MTNkYjg4NDZiZDZjNjlmZTljZGVjNDMzZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvemlwcC9DSEFOR0VTLnJzdApAQCAtMCwwICsxLDEwMCBAQAordjEuMi4wCis9PT09
PT0KKworIzQ0OiBgYHppcHAuUGF0aC5vcGVuKClgYCBub3cgc3VwcG9ydHMgYSBjb21wYXRpYmxl
IHNpZ25hdHVyZQorYXMgYGBwYXRobGliLlBhdGgub3BlbigpYGAsIGFjY2VwdGluZyB0ZXh0IChk
ZWZhdWx0KSBvciBiaW5hcnkKK21vZGVzIGFuZCBzb2xpY2l0aW5nIGtleXdvcmQgcGFyYW1ldGVy
cyBwYXNzZWQgdGhyb3VnaCB0bworYGBpby5UZXh0SU9XcmFwcGVyYGAgKGVuY29kaW5nLCBuZXds
aW5lLCBldGMpLiBUaGUgc3RyZWFtIGlzCitvcGVuZWQgaW4gdGV4dC1tb2RlIGJ5IGRlZmF1bHQg
bm93LiBgYG9wZW5gYCBubworbG9uZ2VyIGFjY2VwdHMgYGBwd2RgYCBhcyBhIHBvc2l0aW9uYWwg
YXJndW1lbnQgYW5kIGRvZXMgbm90CithY2NlcHQgdGhlIGBgZm9yY2VfemlwNjRgYCBwYXJhbWV0
ZXIgYXQgYWxsLiBUaGlzIGNoYW5nZSBpcworYSBiYWNrd2FyZC1pbmNvbXBhdGlibGUgY2hhbmdl
IGZvciB0aGF0IHNpbmdsZSBmdW5jdGlvbi4KKwordjEuMS4xCis9PT09PT0KKworIzQzOiBSZXN0
b3JlZCBwZXJmb3JtYW5jZSBvZiBpbXBsaWNpdCBkaXIgY29tcHV0YXRpb24uCisKK3YxLjEuMAor
PT09PT09CisKKyMzMjogRm9yIHJlYWQtb25seSB6aXAgZmlsZXMsIGNvbXBsZXhpdHkgb2YgYGAu
ZXhpc3RzYGAgYW5kCitgYGpvaW5wYXRoYGAgaXMgbm93IGNvbnN0YW50IHRpbWUgaW5zdGVhZCBv
ZiBgYE8obilgYCwgcHJldmVudGluZworcXVhZHJhdGljIHRpbWUgaW4gY29tbW9uIHVzZS1jYXNl
cyBhbmQgcmVuZGVyaW5nIGxhcmdlCit6aXAgZmlsZXMgdW51c2FibGUgZm9yIFBhdGguIEJpZyB0
aGFua3MgdG8gQmVuankgV2VpbmJlcmdlcgorZm9yIHRoZSBidWcgcmVwb3J0IGFuZCBjb250cmli
dXRlZCBmaXggKCMzMykuCisKK3YxLjAuMAorPT09PT09CisKK1JlLXJlbGVhc2Ugb2YgMC42IHRv
IGNvcnJlc3BvbmQgd2l0aCByZWxlYXNlIGFzIGZvdW5kIGluCitQeXRob24gMy44LgorCit2MC42
LjAKKz09PT09PQorCisjMTI6IFdoZW4gYWRkaW5nIGltcGxpY2l0IGRpcnMsIGVuc3VyZSB0aGF0
IGFuY2VzdHJhbCBkaXJlY3RvcmllcworYXJlIGFkZGVkIGFuZCB0aGF0IGR1cGxpY2F0ZXMgYXJl
IGV4Y2x1ZGVkLgorCitUaGUgbGlicmFyeSBub3cgcmVsaWVzIG9uCitgbW9yZV9pdGVydG9vbHMg
PGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9tb3JlX2l0ZXJ0b29scz5gXy4KKwordjAuNS4yCis9
PT09PT0KKworIzc6IFBhcmVudCBvZiBhIGRpcmVjdG9yeSBub3cgYWN0dWFsbHkgcmV0dXJucyB0
aGUgcGFyZW50LgorCit2MC41LjEKKz09PT09PQorCitEZWNsYXJlZCBwYWNrYWdlIGFzIGJhY2tw
b3J0LgorCit2MC41LjAKKz09PT09PQorCitBZGQgYGAuam9pbnBhdGgoKWBgIG1ldGhvZCBhbmQg
YGAucGFyZW50YGAgcHJvcGVydHkuCisKK05vdyBhIGJhY2twb3J0IHJlbGVhc2Ugb2YgdGhlIGBg
emlwZmlsZS5QYXRoYGAgY2xhc3MuCisKK3YwLjQuMAorPT09PT09CisKKyM0OiBBZGQgc3VwcG9y
dCBmb3IgemlwIGZpbGVzIHdpdGggaW1wbGllZCBkaXJlY3Rvcmllcy4KKwordjAuMy4zCis9PT09
PT0KKworIzM6IEZpeCBpc3N1ZSB3aGVyZSBgYC5uYW1lYGAgb24gYSBkaXJlY3Rvcnkgd2FzIGVt
cHR5LgorCit2MC4zLjIKKz09PT09PQorCisjMjogRml4IFR5cGVFcnJvciBvbiBQeXRob24gMi43
IHdoZW4gY2xhc3NpYyBkaXZpc2lvbiBpcyB1c2VkLgorCit2MC4zLjEKKz09PT09PQorCisjMTog
Rml4IFR5cGVFcnJvciBvbiBQeXRob24gMy41IHdoZW4gam9pbmluZyB0byBhIHBhdGgtbGlrZSBv
YmplY3QuCisKK3YwLjMuMAorPT09PT09CisKK0FkZCBzdXBwb3J0IGZvciBjb25zdHJ1Y3Rpbmcg
YSBgYHppcHAuUGF0aGBgIGZyb20gYW55IHBhdGgtbGlrZQorb2JqZWN0LgorCitgYHppcHAuUGF0
aGBgIGlzIG5vdyBhIG5ldy1zdHlsZSBjbGFzcyBvbiBQeXRob24gMi43LgorCit2MC4yLjEKKz09
PT09PQorCitGaXggaXNzdWUgd2l0aCBgYF9fc3RyX19gYC4KKwordjAuMi4wCis9PT09PT0KKwor
RHJvcCByZWxpYW5jZSBvbiBmdXR1cmUtZnN0cmluZ3MuCisKK3YwLjEuMAorPT09PT09CisKK0lu
aXRpYWwgcmVsZWFzZSB3aXRoIGJhc2ljIGZ1bmN0aW9uYWxpdHkuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3ppcHAvTElDRU5TRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlNzk1YTYxZjMw
MmZmNWQ0MjVlYWMyMjgxZmYxM2MxNWIyMWVkMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3pp
cHAvTElDRU5TRQpAQCAtMCwwICsxLDcgQEAKK0NvcHlyaWdodCBKYXNvbiBSLiBDb29tYnMKKwor
UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz
b24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt
ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3Vi
bGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p
dCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi
amVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQg
bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFs
bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUg
U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP
UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvUEtHLUlORk8gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvUEtHLUlORk8KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzNlZjFjZjAxYzRiMjMyNjQ4YTcwYTBmMmZhOTczM2E0MjMyYjQ5OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvemlwcC9QS0ctSU5GTwpAQCAtMCwwICsxLDM5IEBACitNZXRhZGF0
YS1WZXJzaW9uOiAyLjEKK05hbWU6IHppcHAKK1ZlcnNpb246IDEuMi4wCitTdW1tYXJ5OiBCYWNr
cG9ydCBvZiBwYXRobGliLWNvbXBhdGlibGUgb2JqZWN0IHdyYXBwZXIgZm9yIHppcCBmaWxlcwor
SG9tZS1wYWdlOiBodHRwczovL2dpdGh1Yi5jb20vamFyYWNvL3ppcHAKK0F1dGhvcjogSmFzb24g
Ui4gQ29vbWJzCitBdXRob3ItZW1haWw6IGphcmFjb0BqYXJhY28uY29tCitMaWNlbnNlOiBVTktO
T1dOCitEZXNjcmlwdGlvbjogLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkv
di96aXBwLnN2ZworICAgICAgICAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkub3JnL3Byb2plY3Qv
emlwcAorICAgICAgICAKKyAgICAgICAgLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlv
L3B5cGkvcHl2ZXJzaW9ucy96aXBwLnN2ZworICAgICAgICAKKyAgICAgICAgLi4gaW1hZ2U6OiBo
dHRwczovL2ltZy5zaGllbGRzLmlvL3RyYXZpcy9qYXJhY28vemlwcC9tYXN0ZXIuc3ZnCisgICAg
ICAgICAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9qYXJhY28vemlwcAorICAgICAg
ICAKKyAgICAgICAgLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2NvZGUl
MjBzdHlsZS1ibGFjay0wMDAwMDAuc3ZnCisgICAgICAgICAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0
aHViLmNvbS9hbWJ2L2JsYWNrCisgICAgICAgICAgIDphbHQ6IENvZGUgc3R5bGU6IEJsYWNrCisg
ICAgICAgIAorICAgICAgICAuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYXBwdmV5
b3IvY2kvamFyYWNvL3ppcHAvbWFzdGVyLnN2ZworICAgICAgICAgICA6dGFyZ2V0OiBodHRwczov
L2NpLmFwcHZleW9yLmNvbS9wcm9qZWN0L2phcmFjby96aXBwL2JyYW5jaC9tYXN0ZXIKKyAgICAg
ICAgCisgICAgICAgIC4uIC4uIGltYWdlOjogaHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcvcHJvamVj
dHMvemlwcC9iYWRnZS8/dmVyc2lvbj1sYXRlc3QKKyAgICAgICAgLi4gICAgOnRhcmdldDogaHR0
cHM6Ly96aXBwLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8/YmFkZ2U9bGF0ZXN0CisgICAgICAg
IAorICAgICAgICAKKyAgICAgICAgQSBwYXRobGliLWNvbXBhdGlibGUgWmlwZmlsZSBvYmplY3Qg
d3JhcHBlci4gQSBiYWNrcG9ydCBvZiB0aGUKKyAgICAgICAgYFBhdGggb2JqZWN0IDxodHRwczov
L2RvY3MucHl0aG9uLm9yZy8zLjgvbGlicmFyeS96aXBmaWxlLmh0bWwjcGF0aC1vYmplY3RzPmBf
LgorICAgICAgICAKK1BsYXRmb3JtOiBVTktOT1dOCitDbGFzc2lmaWVyOiBEZXZlbG9wbWVudCBT
dGF0dXMgOjogNSAtIFByb2R1Y3Rpb24vU3RhYmxlCitDbGFzc2lmaWVyOiBJbnRlbmRlZCBBdWRp
ZW5jZSA6OiBEZXZlbG9wZXJzCitDbGFzc2lmaWVyOiBMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6
OiBNSVQgTGljZW5zZQorQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9u
IDo6IDIuNworQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMK
K1JlcXVpcmVzLVB5dGhvbjogPj0yLjcKK1Byb3ZpZGVzLUV4dHJhOiB0ZXN0aW5nCitQcm92aWRl
cy1FeHRyYTogZG9jcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL1JFQURNRS5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3pp
cHAvUkVBRE1FLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTEyOGEzMmJhMzExM2YxMTg4MzBhMWZiOTc1ODc5
YjdkZDEwMzhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL1JFQURNRS5yc3QKQEAgLTAs
MCArMSwyMSBAQAorLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi96aXBw
LnN2ZworICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3ppcHAKKworLi4gaW1h
Z2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy96aXBwLnN2ZworCisu
LiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHJhdmlzL2phcmFjby96aXBwL21hc3Rl
ci5zdmcKKyAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9qYXJhY28vemlwcAorCisu
LiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWJsYWNr
LTAwMDAwMC5zdmcKKyAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbWJ2L2JsYWNrCisg
ICA6YWx0OiBDb2RlIHN0eWxlOiBCbGFjaworCisuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVs
ZHMuaW8vYXBwdmV5b3IvY2kvamFyYWNvL3ppcHAvbWFzdGVyLnN2ZworICAgOnRhcmdldDogaHR0
cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9qYXJhY28vemlwcC9icmFuY2gvbWFzdGVyCisK
Ky4uIC4uIGltYWdlOjogaHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcvcHJvamVjdHMvemlwcC9iYWRn
ZS8/dmVyc2lvbj1sYXRlc3QKKy4uICAgIDp0YXJnZXQ6IGh0dHBzOi8vemlwcC5yZWFkdGhlZG9j
cy5pby9lbi9sYXRlc3QvP2JhZGdlPWxhdGVzdAorCisKK0EgcGF0aGxpYi1jb21wYXRpYmxlIFpp
cGZpbGUgb2JqZWN0IHdyYXBwZXIuIEEgYmFja3BvcnQgb2YgdGhlCitgUGF0aCBvYmplY3QgPGh0
dHBzOi8vZG9jcy5weXRob24ub3JnLzMuOC9saWJyYXJ5L3ppcGZpbGUuaHRtbCNwYXRoLW9iamVj
dHM+YF8uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvYXBwdmV5b3IueW1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2Fw
cHZleW9yLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzVhYTI3ZDY4NDI0NGVkNTljMWRlZGZkODRkNzU4YWVk
YWI0Y2QyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2FwcHZleW9yLnltbApAQCAtMCww
ICsxLDI0IEBACitlbnZpcm9ubWVudDoKKworICBBUFBWRVlPUjogdHJ1ZQorCisgIG1hdHJpeDoK
KyAgICAtIFBZVEhPTjogIkM6XFxQeXRob24zNi14NjQiCisgICAgLSBQWVRIT046ICJDOlxcUHl0
aG9uMjcteDY0IgorCitpbnN0YWxsOgorICAjIHN5bWxpbmsgcHl0aG9uIGZyb20gYSBkaXJlY3Rv
cnkgd2l0aCBhIHNwYWNlCisgIC0gIm1rbGluayAvZCBcIkM6XFxQcm9ncmFtIEZpbGVzXFxQeXRo
b25cIiAlUFlUSE9OJSIKKyAgLSAiU0VUIFBZVEhPTj1cIkM6XFxQcm9ncmFtIEZpbGVzXFxQeXRo
b25cIiIKKyAgLSAiU0VUIFBBVEg9JVBZVEhPTiU7JVBZVEhPTiVcXFNjcmlwdHM7JVBBVEglIgor
CitidWlsZDogb2ZmCisKK2NhY2hlOgorICAtICclTE9DQUxBUFBEQVRBJVxwaXBcQ2FjaGUnCisK
K3Rlc3Rfc2NyaXB0OgorICAtICJweXRob24gLW0gcGlwIGluc3RhbGwgLVUgdG94IHRveC12ZW52
IHZpcnR1YWxlbnYiCisgIC0gInRveCIKKwordmVyc2lvbjogJ3tidWlsZH0nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3ppcHAvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvY29uZnRlc3QucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS96aXBwL2RvY3MvY29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9kb2NzL2NvbmYucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDFiNTM1NTdmYjJlMzcyNjgzODk5YzUxYTZhNTg5MmI4MGJjNTkzNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvemlwcC9kb2NzL2NvbmYucHkKQEAgLTAsMCArMSwyNiBAQAorIyEvdXNyL2Jp
bi9lbnYgcHl0aG9uMworIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKworZXh0ZW5zaW9ucyA9IFsn
c3BoaW54LmV4dC5hdXRvZG9jJywgJ2phcmFjby5wYWNrYWdpbmcuc3BoaW54JywgJ3JzdC5saW5r
ZXInXQorCittYXN0ZXJfZG9jID0gImluZGV4IgorCitsaW5rX2ZpbGVzID0geworICAgICcuLi9D
SEFOR0VTLnJzdCc6IGRpY3QoCisgICAgICAgIHVzaW5nPWRpY3QoR0g9J2h0dHBzOi8vZ2l0aHVi
LmNvbScpLAorICAgICAgICByZXBsYWNlPVsKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAg
ICAgICAgcGF0dGVybj1yJyhJc3N1ZSAjfFxCIykoP1A8aXNzdWU+XGQrKScsCisgICAgICAgICAg
ICAgICAgdXJsPSd7cGFja2FnZV91cmx9L2lzc3Vlcy97aXNzdWV9JywKKyAgICAgICAgICAgICks
CisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgIHBhdHRlcm49cideKD9tKSgoP1A8
c2NtX3ZlcnNpb24+dj9cZCsoXC5cZCspezEsMn0pKVxuWy09XStcbicsCisgICAgICAgICAgICAg
ICAgd2l0aF9zY209J3t0ZXh0fVxue3Jldlt0aW1lc3RhbXBdOiVkICViICVZfVxuJywKKyAgICAg
ICAgICAgICksCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgIHBhdHRlcm49cidQ
RVBbLSBdKD9QPHBlcF9udW1iZXI+XGQrKScsCisgICAgICAgICAgICAgICAgdXJsPSdodHRwczov
L3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC17cGVwX251bWJlcjowPjR9LycsCisgICAgICAg
ICAgICApLAorICAgICAgICBdLAorICAgICkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9kb2Nz
L2hpc3RvcnkucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2RvY3MvaGlzdG9yeS5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUy
MTc1MDNiYTFhNjg4MjZhZjhlMWU5ZGI0YmQxNmNlN2EyMTg1NwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvemlwcC9kb2NzL2hpc3RvcnkucnN0CkBAIC0wLDAgKzEsOCBAQAorOnRvY2RlcHRoOiAy
CisKKy4uIF9jaGFuZ2VzOgorCitIaXN0b3J5CisqKioqKioqCisKKy4uIGluY2x1ZGU6OiAuLi9D
SEFOR0VTIChsaW5rcykucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvZG9jcy9pbmRleC5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3ppcHAvZG9jcy9pbmRleC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY0OWJmOWRjNzA2ZDYyYzll
ODUyNGYzNDZkYjFiZGQ2M2QwMjZiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9kb2Nz
L2luZGV4LnJzdApAQCAtMCwwICsxLDIyIEBACitXZWxjb21lIHRvIHppcHAgZG9jdW1lbnRhdGlv
biEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gdG9jdHJl
ZTo6CisgICA6bWF4ZGVwdGg6IDEKKworICAgaGlzdG9yeQorCisKKy4uIGF1dG9tb2R1bGU6OiB6
aXBwCisgICAgOm1lbWJlcnM6CisgICAgOnVuZG9jLW1lbWJlcnM6CisgICAgOnNob3ctaW5oZXJp
dGFuY2U6CisKKworSW5kaWNlcyBhbmQgdGFibGVzCis9PT09PT09PT09PT09PT09PT0KKworKiA6
cmVmOmBnZW5pbmRleGAKKyogOnJlZjpgbW9kaW5kZXhgCisqIDpyZWY6YHNlYXJjaGAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS96aXBwL2RvY3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvZG9jcy93
M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2I2OWMyYjhlMDFlMDZiYWFhYTMwODJhYjFhMWE3
Nzk5YmRmNzE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2RvY3MvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2RvY3MvY29uZi5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvemlwcC9kb2NzL2hpc3RvcnkucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2RvY3MvaW5kZXgucnN0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3ppcHAvcHlwcm9qZWN0LnRvbWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvcHlwcm9qZWN0LnRv
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2FmYzhjMzNiNzhiYWE3NjY2ZDMwZjM4ZWU1MjJjODRhMjFiZmI3Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9weXByb2plY3QudG9tbApAQCAtMCwwICsxLDYg
QEAKK1tidWlsZC1zeXN0ZW1dCityZXF1aXJlcyA9IFsic2V0dXB0b29scz49MzQuNCIsICJ3aGVl
bCIsICJzZXR1cHRvb2xzX3NjbT49MS4xNSJdCitidWlsZC1iYWNrZW5kID0gInNldHVwdG9vbHMu
YnVpbGRfbWV0YSIKKworW3Rvb2wuYmxhY2tdCitza2lwLXN0cmluZy1ub3JtYWxpemF0aW9uID0g
dHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3NldHVwLmNmZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9zZXR1cC5j
ZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWY0YWJkMjQ4YTQzNWE5Zjk5MGY3ODQwMTE3MmRiOWY2ZjM2NTBlMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9zZXR1cC5jZmcKQEAgLTAsMCArMSw0NSBAQAor
W2JkaXN0X3doZWVsXQordW5pdmVyc2FsID0gMQorCitbbWV0YWRhdGFdCitsaWNlbnNlX2ZpbGUg
PSBMSUNFTlNFCituYW1lID0gemlwcAorYXV0aG9yID0gSmFzb24gUi4gQ29vbWJzCithdXRob3Jf
ZW1haWwgPSBqYXJhY29AamFyYWNvLmNvbQorZGVzY3JpcHRpb24gPSBCYWNrcG9ydCBvZiBwYXRo
bGliLWNvbXBhdGlibGUgb2JqZWN0IHdyYXBwZXIgZm9yIHppcCBmaWxlcworbG9uZ19kZXNjcmlw
dGlvbiA9IGZpbGU6UkVBRE1FLnJzdAordXJsID0gaHR0cHM6Ly9naXRodWIuY29tL2phcmFjby96
aXBwCitjbGFzc2lmaWVycyA9IAorCURldmVsb3BtZW50IFN0YXR1cyA6OiA1IC0gUHJvZHVjdGlv
bi9TdGFibGUKKwlJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzCisJTGljZW5zZSA6OiBP
U0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UKKwlQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRo
b24gOjogMi43CisJUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMKKworW29wdGlv
bnNdCitweV9tb2R1bGVzID0gemlwcAorcGFja2FnZXMgPSBmaW5kOgoraW5jbHVkZV9wYWNrYWdl
X2RhdGEgPSB0cnVlCitweXRob25fcmVxdWlyZXMgPSA+PTIuNworaW5zdGFsbF9yZXF1aXJlcyA9
IAorCWNvbnRleHRsaWIyOyBweXRob25fdmVyc2lvbiA8ICIzLjQiCitzZXR1cF9yZXF1aXJlcyA9
IHNldHVwdG9vbHNfc2NtID49IDEuMTUuMAorCitbb3B0aW9ucy5leHRyYXNfcmVxdWlyZV0KK3Rl
c3RpbmcgPSAKKwkKKwlwYXRobGliMgorCXVuaXR0ZXN0MgorCWphcmFjby5pdGVydG9vbHMKKwlm
dW5jLXRpbWVvdXQKK2RvY3MgPSAKKwlzcGhpbngKKwlqYXJhY28ucGFja2FnaW5nID49IDMuMgor
CXJzdC5saW5rZXIgPj0gMS45CisKK1tvcHRpb25zLmVudHJ5X3BvaW50c10KKworW2VnZ19pbmZv
XQordGFnX2J1aWxkID0gCit0YWdfZGF0ZSA9IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3Nl
dHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS96aXBwL3NldHVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyN2U5NTVmY2Q2YzJhZjYz
YWQxYWQ0Y2I0MmU0MWUyOWU2MjA3NGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvc2V0
dXAucHkKQEAgLTAsMCArMSw2IEBACisjIS91c3IvYmluL2VudiBweXRob24KKworaW1wb3J0IHNl
dHVwdG9vbHMKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBzZXR1cHRvb2xzLnNl
dHVwKHVzZV9zY21fdmVyc2lvbj1UcnVlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3NrZWxldG9u
Lm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS96aXBwL3NrZWxldG9uLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyYjk3ZjA5YjQxODg5NDY3
OTk1MWZiOTg2N2I1YjBkYzY2MThmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvc2tl
bGV0b24ubWQKQEAgLTAsMCArMSwxMzcgQEAKKyMgT3ZlcnZpZXcKKworVGhpcyBwcm9qZWN0IGlz
IG1lcmdlZCB3aXRoIFtza2VsZXRvbl0oaHR0cHM6Ly9naXRodWIuY29tL2phcmFjby9za2VsZXRv
bikuIFdoYXQgaXMgc2tlbGV0b24/IEl0J3MgdGhlIHNjYWZmb2xkaW5nIG9mIGEgUHl0aG9uIHBy
b2plY3QgamFyYWNvIFtpbnRyb2R1Y2VkIGluIGhpcyBibG9nXShodHRwczovL2Jsb2cuamFyYWNv
LmNvbS9hLXByb2plY3Qtc2tlbGV0b24tZm9yLXB5dGhvbi1wcm9qZWN0cy8pLiBJdCBzZWVrcyB0
byBwcm92aWRlIGEgbWVhbnMgdG8gcmUtdXNlIHRlY2huaXF1ZXMgYW5kIGluaGVyaXQgYWR2YW5j
ZXMgd2hlbiBtYW5hZ2luZyBwcm9qZWN0cyBmb3IgZGlzdHJpYnV0aW9uLgorCisjIyBBbiBTQ00g
TWFuYWdlZCBBcHByb2FjaAorCitXaGlsZSBtYWludGFpbmluZyBkb3plbnMgb2YgcHJvamVjdHMg
aW4gUHlQSSwgamFyYWNvIGRlcml2ZXMgYmVzdCBwcmFjdGljZXMgZm9yIHByb2plY3QgZGlzdHJp
YnV0aW9uIGFuZCBwdWJsaXNoZXMgdGhlbSBpbiB0aGUgW3NrZWxldG9uIHJlcG9dKGh0dHBzOi8v
Z2l0aHViLmNvbS9qYXJhY28vc2tlbGV0b24pLCBhIGdpdCByZXBvIGNhcHR1cmluZyB0aGUgZXZv
bHV0aW9uIGFuZCBjdWxtaW5hdGlvbiBvZiB0aGVzZSBiZXN0IHByYWN0aWNlcy4KKworSXQncyBp
bnRlbmRlZCB0byBiZSB1c2VkIGJ5IGEgbmV3IG9yIGV4aXN0aW5nIHByb2plY3QgdG8gYWRvcHQg
dGhlc2UgcHJhY3RpY2VzIGFuZCBob25lZCBhbmQgcHJvdmVuIHRlY2huaXF1ZXMuIEFkb3B0ZXJz
IGFyZSBlbmNvdXJhZ2VkIHRvIHVzZSB0aGUgcHJvamVjdCBkaXJlY3RseSBhbmQgbWFpbnRhaW4g
YSBzbWFsbCBkZXZpYXRpb24gZnJvbSB0aGUgdGVjaG5pcXVlLCBtYWtlIHRoZWlyIG93biBmb3Jr
IGZvciBtb3JlIHN1YnN0YW50aWFsIGNoYW5nZXMgdW5pcXVlIHRvIHRoZWlyIGVudmlyb25tZW50
IG9yIHByZWZlcmVuY2VzLCBvciBzaW1wbHkgYWRvcHQgdGhlIHNrZWxldG9uIG9uY2UgYW5kIGFi
YW5kb24gaXQgdGhlcmVhZnRlci4KKworVGhlIHByaW1hcnkgYWR2YW50YWdlIHRvIHVzaW5nIGFu
IFNDTSBmb3IgbWFpbnRhaW5pbmcgdGhlc2UgdGVjaG5pcXVlcyBpcyB0aGF0IHRob3NlIHRvb2xz
IGhlbHAgZmFjaWxpdGF0ZSB0aGUgbWVyZ2UgYmV0d2VlbiB0aGUgdGVtcGxhdGUgYW5kIGl0cyBh
ZG9wdGluZyBwcm9qZWN0cy4KKworQW5vdGhlciBhZHZhbnRhZ2UgdG8gdXNpbmcgYW4gU0NNLW1h
bmFnZWQgYXBwcm9hY2ggaXMgdGhhdCB0b29scyBsaWtlIEdpdEh1YiByZWNvZ25pemUgdGhhdCBh
IGNoYW5nZSBpbiB0aGUgc2tlbGV0b24gaXMgdGhlIF9zYW1lIGNoYW5nZV8gYWNyb3NzIGFsbCBw
cm9qZWN0cyB0aGF0IG1lcmdlIHdpdGggdGhhdCBza2VsZXRvbi4gV2l0aG91dCB0aGUgYW5jZXN0
cnksIHdpdGggYSB0cmFkaXRpb25hbCBjb3B5L3Bhc3RlIGFwcHJvYWNoLCBhIFtjb21taXQgbGlr
ZSB0aGlzXShodHRwczovL2dpdGh1Yi5jb20vamFyYWNvL3NrZWxldG9uL2NvbW1pdC8xMmVlZDEz
MjZlMWJjMjZjZTI1NmU3YjNmOGNkOGQzYTViZWFiMmQ1KSB3b3VsZCBwcm9kdWNlIG5vdGlmaWNh
dGlvbnMgaW4gdGhlIHVwc3RyZWFtIHByb2plY3QgaXNzdWUgZm9yIGVhY2ggYW5kIGV2ZXJ5IGFw
cGxpY2F0aW9uLCBidXQgYmVjYXVzZSBpdCdzIGNlbnRyYWxpemVkLCBHaXRIdWIgcHJvdmlkZXMg
anVzdCB0aGUgb25lIG5vdGlmaWNhdGlvbiB3aGVuIHRoZSBjaGFuZ2UgaXMgYWRkZWQgdG8gdGhl
IHNrZWxldG9uLgorCisjIFVzYWdlCisKKyMjIG5ldyBwcm9qZWN0cworCitUbyB1c2Ugc2tlbGV0
b24gZm9yIGEgbmV3IHByb2plY3QsIHNpbXBseSBwdWxsIHRoZSBza2VsZXRvbiBpbnRvIGEgbmV3
IHByb2plY3Q6CisKK2BgYAorJCBnaXQgaW5pdCBteS1uZXctcHJvamVjdAorJCBjZCBteS1uZXct
cHJvamVjdAorJCBnaXQgcHVsbCBnaDovL2phcmFjby9za2VsZXRvbgorYGBgCisKK05vdyBjdXN0
b21pemUgdGhlIHByb2plY3QgdG8gc3VpdCB5b3VyIGluZGl2aWR1YWwgcHJvamVjdCBuZWVkcy4K
KworIyMgZXhpc3RpbmcgcHJvamVjdHMKKworSWYgeW91IGhhdmUgYW4gZXhpc3RpbmcgcHJvamVj
dCwgeW91IGNhbiBzdGlsbCBpbmNvcnBvcmF0ZSB0aGUgc2tlbGV0b24gYnkgbWVyZ2luZyBpdCBp
bnRvIHRoZSBjb2RlYmFzZS4KKworYGBgCiskIGdpdCBtZXJnZSBza2VsZXRvbiAtLWFsbG93LXVu
cmVsYXRlZC1oaXN0b3JpZXMKK2BgYAorCitUaGUgYC0tYWxsb3ctdW5yZWxhdGVkLWhpc3Rvcmll
c2AgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGhpc3RvcnkgZnJvbSB0aGUgc2tlbGV0b24gd2Fz
IHByZXZpb3VzbHkgdW5yZWxhdGVkIHRvIHRoZSBleGlzdGluZyBjb2RlYmFzZS4gUmVzb2x2ZSBh
bnkgbWVyZ2UgY29uZmxpY3RzIGFuZCBjb21taXQgdG8gdGhlIG1hc3RlciwgYW5kIG5vdyB0aGUg
cHJvamVjdCBpcyBiYXNlZCBvbiB0aGUgc2hhcmVkIHNrZWxldG9uLgorCisjIyBVcGRhdGluZwor
CitXaGVuZXZlciBhIGNoYW5nZSBpcyBuZWVkZWQgb3IgZGVzaXJlZCBmb3IgdGhlIGdlbmVyYWwg
dGVjaG5pcXVlIGZvciBwYWNrYWdpbmcsIGl0IGNhbiBiZSBtYWRlIGluIHRoZSBza2VsZXRvbiBw
cm9qZWN0IGFuZCB0aGVuIG1lcmdlZCBpbnRvIGVhY2ggb2YgdGhlIGRlcml2ZWQgcHJvamVjdHMg
YXMgbmVlZGVkLCByZWNvbW1lbmRlZCBiZWZvcmUgZWFjaCByZWxlYXNlLiBBcyBhIHJlc3VsdCwg
ZmVhdHVyZXMgYW5kIGJlc3QgcHJhY3RpY2VzIGZvciBwYWNrYWdpbmcgYXJlIGNlbnRyYWxseSBt
YWludGFpbmVkIGFuZCByZWFkaWx5IHRyaWNrbGUgaW50byBhIHdob2xlIHN1aXRlIG9mIHBhY2th
Z2VzLiBUaGlzIHRlY2huaXF1ZSBsb3dlcnMgdGhlIGFtb3VudCBvZiB0ZWRpb3VzIHdvcmsgbmVj
ZXNzYXJ5IHRvIGNyZWF0ZSBvciBtYWludGFpbiBhIHByb2plY3QsIGFuZCBjb3VwbGVkIHdpdGgg
b3RoZXIgdGVjaG5pcXVlcyBsaWtlIGNvbnRpbnVvdXMgaW50ZWdyYXRpb24gYW5kIGRlcGxveW1l
bnQsIGxvd2VycyB0aGUgY29zdCBvZiBjcmVhdGluZyBhbmQgbWFpbnRhaW5pbmcgcmVmaW5lZCBQ
eXRob24gcHJvamVjdHMgdG8ganVzdCBhIGZldywgZmFtaWxpYXIgZ2l0IG9wZXJhdGlvbnMuCisK
K1RoZXJlYWZ0ZXIsIHRoZSB0YXJnZXQgcHJvamVjdCBjYW4gbWFrZSB3aGF0ZXZlciBjdXN0b21p
emF0aW9ucyBpdCBkZWVtcyByZWxldmFudCB0byB0aGUgc2NhZmZvbGRpbmcuIFRoZSBwcm9qZWN0
IG1heSBldmVuIGF0IHNvbWUgcG9pbnQgZGVjaWRlIHRoYXQgdGhlIGRpdmVyZ2VuY2UgaXMgdG9v
IGdyZWF0IHRvIG1lcml0IHJlbmV3ZWQgbWVyZ2luZyB3aXRoIHRoZSBvcmlnaW5hbCBza2VsZXRv
bi4gVGhpcyBhcHByb2FjaCBhcHBsaWVzIG1heGltYWwgZ3VpZGFuY2Ugd2hpbGUgY3JlYXRpbmcg
bWluaW1hbCBjb25zdHJhaW50cy4KKworIyBGZWF0dXJlcworCitUaGUgZmVhdHVyZXMvdGVjaG5p
cXVlcyBlbXBsb3llZCBieSB0aGUgc2tlbGV0b24gaW5jbHVkZToKKworLSBQRVAgNTE3LzUxOCBi
YXNlZCBidWlsZCByZWx5aW5nIG9uIHNldHVwdG9vbHMgYXMgdGhlIGJ1aWxkIHRvb2wKKy0gc2V0
dXB0b29scyBkZWNsYXJhdGl2ZSBjb25maWd1cmF0aW9uIHVzaW5nIHNldHVwLmNmZworLSB0b3gg
Zm9yIHJ1bm5pbmcgdGVzdHMKKy0gQSBSRUFETUUucnN0IGFzIHJlU3RydWN0dXJlZFRleHQgd2l0
aCBzb21lIHBvcHVsYXIgYmFkZ2VzLCBidXQgd2l0aCByZWFkdGhlZG9jcyBhbmQgYXBwdmV5b3Ig
YmFkZ2VzIGNvbW1lbnRlZCBvdXQKKy0gQSBDSEFOR0VTLnJzdCBmaWxlIGludGVuZGVkIGZvciBw
dWJsaXNoaW5nIHJlbGVhc2Ugbm90ZXMgYWJvdXQgdGhlIHByb2plY3QKKy0gVXNlIG9mIFtibGFj
a10oaHR0cHM6Ly9ibGFjay5yZWFkdGhlZG9jcy5pby9lbi9zdGFibGUvKSBmb3IgY29kZSBmb3Jt
YXR0aW5nIChkaXNhYmxlZCBvbiB1bnN1cHBvcnRlZCBQeXRob24gMy41IGFuZCBlYXJsaWVyKQor
CisjIyBQYWNrYWdpbmcgQ29udmVudGlvbnMKKworQSBweXByb2plY3QudG9tbCBpcyBpbmNsdWRl
ZCB0byBlbmFibGUgUEVQIDUxNyBhbmQgUEVQIDUxOCBjb21wYXRpYmlsaXR5IGFuZCBkZWNsYXJl
cyB0aGUgcmVxdWlyZW1lbnRzIG5lY2Vzc2FyeSB0byBidWlsZCB0aGUgcHJvamVjdCBvbiBzZXR1
cHRvb2xzIChhIG1pbmltdW0gdmVyc2lvbiBjb21wYXRpYmxlIHdpdGggc2V0dXAuY2ZnIGRlY2xh
cmF0aXZlIGNvbmZpZykuCisKK1RoZSBzZXR1cC5jZmcgZmlsZSBpbXBsZW1lbnRzIHRoZSBmb2xs
b3dpbmcgZmVhdHVyZXM6CisKKy0gQXNzdW1lcyB1bml2ZXJzYWwgd2hlZWwgZm9yIHJlbGVhc2UK
Ky0gQWR2ZXJ0aXNlcyB0aGUgcHJvamVjdCdzIExJQ0VOU0UgZmlsZSAoTUlUIGJ5IGRlZmF1bHQp
CistIFJlYWRzIHRoZSBSRUFETUUucnN0IGZpbGUgaW50byB0aGUgbG9uZyBkZXNjcmlwdGlvbgor
LSBTb21lIGNvbW1vbiBUcm92ZSBjbGFzc2lmaWVycworLSBJbmNsdWRlcyBhbGwgcGFja2FnZXMg
ZGlzY292ZXJlZCBpbiB0aGUgcmVwbworLSBEYXRhIGZpbGVzIGluIHRoZSBwYWNrYWdlIGFyZSBh
bHNvIGluY2x1ZGVkIChub3QganVzdCBQeXRob24gZmlsZXMpCistIERlY2xhcmVzIHRoZSByZXF1
aXJlZCBQeXRob24gdmVyc2lvbnMKKy0gRGVjbGFyZXMgaW5zdGFsbCByZXF1aXJlbWVudHMgKGVt
cHR5IGJ5IGRlZmF1bHQpCistIERlY2xhcmVzIHNldHVwIHJlcXVpcmVtZW50cyBmb3IgbGVnYWN5
IGVudmlyb25tZW50cworLSBTdXBwbGllcyB0d28gJ2V4dHJhcyc6CisgIC0gdGVzdGluZzogcmVx
dWlyZW1lbnRzIGZvciBydW5uaW5nIHRlc3RzCisgIC0gZG9jczogcmVxdWlyZW1lbnRzIGZvciBi
dWlsZGluZyBkb2NzCisgIC0gdGhlc2UgZXh0cmFzIHNwbGl0IHRoZSBkZWNsYXJhdGlvbiBpbnRv
ICJ1cHN0cmVhbSIgKHJlcXVpcmVtZW50cyBhcyBkZWNsYXJlZCBieSB0aGUgc2tlbGV0b24pIGFu
ZCAibG9jYWwiICh0aG9zZSBzcGVjaWZpYyB0byB0aGUgbG9jYWwgcHJvamVjdCk7IHRoZXNlIG1h
cmtlcnMgaGVscCBhdm9pZCBtZXJnZSBjb25mbGljdHMKKy0gUGxhY2Vob2xkZXIgZm9yIGRlZmlu
aW5nIGVudHJ5IHBvaW50cworCitBZGRpdGlvbmFsbHksIHRoZSBzZXR1cC5weSBmaWxlIGRlY2xh
cmVzIGB1c2Vfc2NtX3ZlcnNpb25gIHdoaWNoIHJlbGllcyBvbiBbc2V0dXB0b29sc19zY21dKGh0
dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9zZXR1cHRvb2xzX3NjbSkgdG8gZG8gdHdvIHRoaW5nczoK
KworLSBkZXJpdmUgdGhlIHByb2plY3QgdmVyc2lvbiBmcm9tIFNDTSB0YWdzCistIGVuc3VyZSB0
aGF0IGFsbCBmaWxlcyBjb21taXR0ZWQgdG8gdGhlIHJlcG8gYXJlIGF1dG9tYXRpY2FsbHkgaW5j
bHVkZWQgaW4gcmVsZWFzZXMKKworIyMgUnVubmluZyBUZXN0cworCitUaGUgc2tlbGV0b24gYXNz
dW1lcyB0aGUgZGV2ZWxvcGVyIGhhcyBbdG94XShodHRwczovL3B5cGkub3JnL3Byb2plY3QvdG94
KSBpbnN0YWxsZWQuIFRoZSBkZXZlbG9wZXIgaXMgZXhwZWN0ZWQgdG8gcnVuIGB0b3hgIHRvIHJ1
biB0ZXN0cyBvbiB0aGUgY3VycmVudCBQeXRob24gdmVyc2lvbiB1c2luZyBbcHl0ZXN0XShodHRw
czovL3B5cGkub3JnL3Byb2plY3QvcHl0ZXN0KS4KKworT3RoZXIgZW52aXJvbm1lbnRzIChpbnZv
a2VkIHdpdGggYHRveCAtZSB7bmFtZX1gKSBzdXBwbGllZCBpbmNsdWRlOgorCisgIC0gYSBgYnVp
bGQtZG9jc2AgZW52aXJvbm1lbnQgdG8gYnVpbGQgdGhlIGRvY3VtZW50YXRpb24KKyAgLSBhIGBy
ZWxlYXNlYCBlbnZpcm9ubWVudCB0byBwdWJsaXNoIHRoZSBwYWNrYWdlIHRvIFB5UEkKKworQSBw
eXRlc3QuaW5pIGlzIGluY2x1ZGVkIHRvIGRlZmluZSBjb21tb24gb3B0aW9ucyBhcm91bmQgcnVu
bmluZyB0ZXN0cy4gSW4gcGFydGljdWxhcjoKKworLSByZWx5IG9uIGRlZmF1bHQgdGVzdCBkaXNj
b3ZlcnkgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5CistIGF2b2lkIHJlY3Vyc2luZyBpbnRvIGNv
bW1vbiBkaXJlY3RvcmllcyBub3QgY29udGFpbmluZyB0ZXN0cworLSBydW4gZG9jdGVzdHMgb24g
bW9kdWxlcyBhbmQgaW52b2tlIGZsYWtlOCB0ZXN0cworLSBpbiBkb2N0ZXN0cywgYWxsb3cgdW5p
Y29kZSBsaXRlcmFscyBhbmQgcmVndWxhciBsaXRlcmFscyB0byBtYXRjaCwgYWxsb3dpbmcgZm9y
IGRvY3Rlc3RzIHRvIHJ1biBvbiBQeXRob24gMiBhbmQgMy4gQWxzbyBlbmFibGUgRUxMSVBTRVMs
IGEgZGVmYXVsdCB0aGF0IHdvdWxkIGJlIHVuZG9uZSBieSBzdXBwbHlpbmcgdGhlIHByaW9yIG9w
dGlvbi4KKy0gZmlsdGVycyBvdXQga25vd24gd2FybmluZ3MgY2F1c2VkIGJ5IGxpYnJhcmllcy9m
dW5jdGlvbmFsaXR5IGluY2x1ZGVkIGJ5IHRoZSBza2VsZXRvbgorCitSZWxpZXMgYSAuZmxha2U4
IGZpbGUgdG8gY29ycmVjdCBzb21lIGRlZmF1bHQgYmVoYXZpb3JzOgorCistIGRpc2FibGUgbXV0
dWFsbHkgaW5jb21wYXRpYmxlIHJ1bGVzIFc1MDMgYW5kIFc1MDQKKy0gc3VwcG9ydCBmb3IgYmxh
Y2sgZm9ybWF0CisKKyMjIENvbnRpbnVvdXMgSW50ZWdyYXRpb24KKworVGhlIHByb2plY3QgaXMg
cHJlLWNvbmZpZ3VyZWQgdG8gcnVuIHRlc3RzIGluIFtUcmF2aXMtQ0ldKGh0dHBzOi8vdHJhdmlz
LWNpLm9yZykgKC50cmF2aXMueW1sKS4gQW55IG5ldyBwcm9qZWN0IG11c3QgYmUgZW5hYmxlZCBl
aXRoZXIgdGhyb3VnaCB0aGVpciB3ZWIgc2l0ZSBvciB3aXRoIHRoZSBgdHJhdmlzIGVuYWJsZWAg
Y29tbWFuZC4KKworRmVhdHVyZXMgaW5jbHVkZToKKy0gdGVzdCBhZ2FpbnN0IFB5dGhvbiAyIGFu
ZCAzCistIHJ1biBvbiBVYnVudHUgWGVuaWFsCistIGNvcnJlY3QgZm9yIGJyb2tlbiBJUHY2CisK
K0Fsc28gcHJvdmlkZWQgaXMgYSBtaW5pbWFsIHRlbXBsYXRlIGZvciBydW5uaW5nIHVuZGVyIEFw
cHZleW9yIChXaW5kb3dzKS4KKworIyMjIENvbnRpbnVvdXMgRGVwbG95bWVudHMKKworSW4gYWRk
aXRpb24gdG8gcnVubmluZyB0ZXN0cywgYW4gYWRkaXRpb25hbCBkZXBsb3kgc3RhZ2UgaXMgY29u
ZmlndXJlZCB0byBhdXRvbWF0aWNhbGx5IHJlbGVhc2UgdGFnZ2VkIGNvbW1pdHMgdG8gUHlQSSB1
c2luZyBbQVBJIHRva2Vuc10oaHR0cHM6Ly9weXBpLm9yZy9oZWxwLyNhcGl0b2tlbikuIFRoZSBy
ZWxlYXNlIHByb2Nlc3MgZXhwZWN0cyBhbiBhdXRob3JpemVkIHRva2VuIHRvIGJlIGNvbmZpZ3Vy
ZWQgd2l0aCBUcmF2aXMgYXMgdGhlIFRXSU5FX1BBU1NXT1JEIGVudmlyb25tZW50IHZhcmlhYmxl
LiBBZnRlciB0aGUgVHJhdmlzIHByb2plY3QgaXMgY3JlYXRlZCwgY29uZmlndXJlIHRoZSB0b2tl
biB0aHJvdWdoIHRoZSB3ZWIgVUkgb3Igd2l0aCBhIGNvbW1hbmQgbGlrZSB0aGUgZm9sbG93aW5n
IChiYXNoIHN5bnRheCk6CisKK2BgYAorVFdJTkVfUEFTU1dPUkQ9e3Rva2VufSB0cmF2aXMgZW52
IGNvcHkgVFdJTkVfUEFTU1dPUkQKK2BgYAorCisjIyBCdWlsZGluZyBEb2N1bWVudGF0aW9uCisK
K0RvY3VtZW50YXRpb24gaXMgYXV0b21hdGljYWxseSBidWlsdCBieSBbUmVhZCB0aGUgRG9jc10o
aHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcpIHdoZW4gdGhlIHByb2plY3QgaXMgcmVnaXN0ZXJlZCB3
aXRoIGl0LCBieSB3YXkgb2YgdGhlIC5yZWFkdGhlZG9jcy55bWwgZmlsZS4gVG8gdGVzdCB0aGUg
ZG9jcyBidWlsZCBtYW51YWxseSwgYSB0b3ggZW52IG1heSBiZSBpbnZva2VkIGFzIGB0b3ggLWUg
YnVpbGQtZG9jc2AuIEJvdGggdGVjaG5pcXVlcyByZWx5IG9uIHRoZSBkZXBlbmRlbmNpZXMgZGVj
bGFyZWQgaW4gYHNldHVwLmNmZy9vcHRpb25zLmV4dHJhc19yZXF1aXJlLmRvY3NgLgorCitJbiBh
ZGRpdGlvbiB0byBidWlsZGluZyB0aGUgc3BoaW54IGRvY3Mgc2NhZmZvbGRlZCBpbiBgZG9jcy9g
LCB0aGUgZG9jcyBidWlsZCBhIGBoaXN0b3J5Lmh0bWxgIGZpbGUgdGhhdCBmaXJzdCBpbmplY3Rz
IHJlbGVhc2UgZGF0ZXMgYW5kIGh5cGVybGlua3MgaW50byB0aGUgQ0hBTkdFUy5yc3QgYmVmb3Jl
IGluY29ycG9yYXRpbmcgaXQgYXMgaGlzdG9yeSBpbiB0aGUgZG9jcy4KKworIyMgQ3V0dGluZyBy
ZWxlYXNlcworCitCeSBkZWZhdWx0LCB0YWdnZWQgY29tbWl0cyBhcmUgcmVsZWFzZWQgdGhyb3Vn
aCB0aGUgY29udGludW91cyBpbnRlZ3JhdGlvbiBkZXBsb3kgc3RhZ2UuCisKK1JlbGVhc2VzIG1h
eSBhbHNvIGJlIGN1dCBtYW51YWxseSBieSBpbnZva2luZyB0aGUgdG94IGVudmlyb25tZW50IGBy
ZWxlYXNlYCB3aXRoIHRoZSBQeVBJIHRva2VuIHNldCBhcyB0aGUgVFdJTkVfUEFTU1dPUkQ6CisK
K2BgYAorVFdJTkVfUEFTU1dPUkQ9e3Rva2VufSB0b3ggLWUgcmVsZWFzZQorYGBgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3ppcHAvdGVzdF96aXBwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3Rlc3RfemlwcC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MTBkMTBiZDY4ZmMyN2Y4OTdkZmYyZDQxMTU4MmRlOTc5OTYyNDUxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS96aXBwL3Rlc3RfemlwcC5weQpAQCAtMCwwICsxLDI0NSBAQAorIyBj
b2Rpbmc6IHV0Zi04CisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgZGl2aXNpb24sIHVuaWNvZGVf
bGl0ZXJhbHMKKworaW1wb3J0IGlvCitpbXBvcnQgemlwZmlsZQoraW1wb3J0IGNvbnRleHRsaWIK
K2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0IHNodXRpbAoraW1wb3J0IHN0cmluZworCit0cnk6Cisg
ICAgaW1wb3J0IHBhdGhsaWIKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBpbXBvcnQgcGF0aGxp
YjIgYXMgcGF0aGxpYgorCitpZiBub3QgaGFzYXR0cihjb250ZXh0bGliLCAnRXhpdFN0YWNrJyk6
CisgICAgaW1wb3J0IGNvbnRleHRsaWIyCisgICAgY29udGV4dGxpYi5FeGl0U3RhY2sgPSBjb250
ZXh0bGliMi5FeGl0U3RhY2sKKwordHJ5OgorICAgIGltcG9ydCB1bml0dGVzdAorCisgICAgdW5p
dHRlc3QuVGVzdENhc2Uuc3ViVGVzdAorZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgIGltcG9y
dCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKKworaW1wb3J0IGphcmFjby5pdGVydG9vbHMKK2ltcG9y
dCBmdW5jX3RpbWVvdXQKKworaW1wb3J0IHppcHAKKworX19tZXRhY2xhc3NfXyA9IHR5cGUKK2Nv
bnN1bWUgPSB0dXBsZQorCisKK2RlZiBhZGRfZGlycyh6Zik6CisgICAgIiIiCisgICAgR2l2ZW4g
YSB3cml0YWJsZSB6aXAgZmlsZSB6ZiwgaW5qZWN0IGRpcmVjdG9yeSBlbnRyaWVzIGZvcgorICAg
IGFueSBkaXJlY3RvcmllcyBpbXBsaWVkIGJ5IHRoZSBwcmVzZW5jZSBvZiBjaGlsZHJlbi4KKyAg
ICAiIiIKKyAgICBmb3IgbmFtZSBpbiB6aXBwLkNvbXBsZXRlRGlycy5faW1wbGllZF9kaXJzKHpm
Lm5hbWVsaXN0KCkpOgorICAgICAgICB6Zi53cml0ZXN0cihuYW1lLCBiIiIpCisgICAgcmV0dXJu
IHpmCisKKworZGVmIGJ1aWxkX2FscGhhcmVwX2ZpeHR1cmUoKToKKyAgICAiIiIKKyAgICBDcmVh
dGUgYSB6aXAgZmlsZSB3aXRoIHRoaXMgc3RydWN0dXJlOgorCisgICAgLgorICAgIOKUnOKUgOKU
gCBhLnR4dAorICAgIOKUnOKUgOKUgCBiCisgICAg4pSCICAg4pSc4pSA4pSAIGMudHh0CisgICAg
4pSCICAg4pSc4pSA4pSAIGQKKyAgICDilIIgICDilIIgICDilJTilIDilIAgZS50eHQKKyAgICDi
lIIgICDilJTilIDilIAgZi50eHQKKyAgICDilJTilIDilIAgZworICAgICAgICDilJTilIDilIAg
aAorICAgICAgICAgICAg4pSU4pSA4pSAIGkudHh0CisKKyAgICBUaGlzIGZpeHR1cmUgaGFzIHRo
ZSBmb2xsb3dpbmcga2V5IGNoYXJhY3RlcmlzdGljczoKKworICAgIC0gYSBmaWxlIGF0IHRoZSBy
b290IChhKQorICAgIC0gYSBmaWxlIHR3byBsZXZlbHMgZGVlcCAoYi9kL2UpCisgICAgLSBtdWx0
aXBsZSBmaWxlcyBpbiBhIGRpcmVjdG9yeSAoYi9jLCBiL2YpCisgICAgLSBhIGRpcmVjdG9yeSBj
b250YWluaW5nIG9ubHkgYSBkaXJlY3RvcnkgKGcvaCkKKworICAgICJhbHBoYSIgYmVjYXVzZSBp
dCB1c2VzIGFscGhhYmV0CisgICAgInJlcCIgYmVjYXVzZSBpdCdzIGEgcmVwcmVzZW50YXRpdmUg
ZXhhbXBsZQorICAgICIiIgorICAgIGRhdGEgPSBpby5CeXRlc0lPKCkKKyAgICB6ZiA9IHppcGZp
bGUuWmlwRmlsZShkYXRhLCAidyIpCisgICAgemYud3JpdGVzdHIoImEudHh0IiwgYiJjb250ZW50
IG9mIGEiKQorICAgIHpmLndyaXRlc3RyKCJiL2MudHh0IiwgYiJjb250ZW50IG9mIGMiKQorICAg
IHpmLndyaXRlc3RyKCJiL2QvZS50eHQiLCBiImNvbnRlbnQgb2YgZSIpCisgICAgemYud3JpdGVz
dHIoImIvZi50eHQiLCBiImNvbnRlbnQgb2YgZiIpCisgICAgemYud3JpdGVzdHIoImcvaC9pLnR4
dCIsIGIiY29udGVudCBvZiBpIikKKyAgICB6Zi5maWxlbmFtZSA9ICJhbHBoYXJlcC56aXAiCisg
ICAgcmV0dXJuIHpmCisKKworQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKK2RlZiB0ZW1wX2Rp
cigpOgorICAgIHRtcGRpciA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgIHRyeToKKyAgICAgICAg
eWllbGQgcGF0aGxpYi5QYXRoKHRtcGRpcikKKyAgICBmaW5hbGx5OgorICAgICAgICBzaHV0aWwu
cm10cmVlKHRtcGRpcikKKworCitjbGFzcyBUZXN0UGF0aCh1bml0dGVzdC5UZXN0Q2FzZSk6Cisg
ICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmZpeHR1cmVzID0gY29udGV4dGxpYi5F
eGl0U3RhY2soKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2VsZi5maXh0dXJlcy5jbG9zZSkK
KworICAgIGRlZiB6aXBmaWxlX2FscGhhcmVwKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuc3Vi
VGVzdCgpOgorICAgICAgICAgICAgeWllbGQgYnVpbGRfYWxwaGFyZXBfZml4dHVyZSgpCisgICAg
ICAgIHdpdGggc2VsZi5zdWJUZXN0KCk6CisgICAgICAgICAgICB5aWVsZCBhZGRfZGlycyhidWls
ZF9hbHBoYXJlcF9maXh0dXJlKCkpCisKKyAgICBkZWYgemlwZmlsZV9vbmRpc2soc2VsZik6Cisg
ICAgICAgIHRtcGRpciA9IHBhdGhsaWIuUGF0aChzZWxmLmZpeHR1cmVzLmVudGVyX2NvbnRleHQo
dGVtcF9kaXIoKSkpCisgICAgICAgIGZvciBhbHBoYXJlcCBpbiBzZWxmLnppcGZpbGVfYWxwaGFy
ZXAoKToKKyAgICAgICAgICAgIGJ1ZmZlciA9IGFscGhhcmVwLmZwCisgICAgICAgICAgICBhbHBo
YXJlcC5jbG9zZSgpCisgICAgICAgICAgICBwYXRoID0gdG1wZGlyIC8gYWxwaGFyZXAuZmlsZW5h
bWUKKyAgICAgICAgICAgIHdpdGggcGF0aC5vcGVuKCJ3YiIpIGFzIHN0cm06CisgICAgICAgICAg
ICAgICAgc3RybS53cml0ZShidWZmZXIuZ2V0dmFsdWUoKSkKKyAgICAgICAgICAgIHlpZWxkIHBh
dGgKKworICAgIGRlZiB0ZXN0X2l0ZXJkaXJfYW5kX3R5cGVzKHNlbGYpOgorICAgICAgICBmb3Ig
YWxwaGFyZXAgaW4gc2VsZi56aXBmaWxlX2FscGhhcmVwKCk6CisgICAgICAgICAgICByb290ID0g
emlwcC5QYXRoKGFscGhhcmVwKQorICAgICAgICAgICAgYXNzZXJ0IHJvb3QuaXNfZGlyKCkKKyAg
ICAgICAgICAgIGEsIGIsIGcgPSByb290Lml0ZXJkaXIoKQorICAgICAgICAgICAgYXNzZXJ0IGEu
aXNfZmlsZSgpCisgICAgICAgICAgICBhc3NlcnQgYi5pc19kaXIoKQorICAgICAgICAgICAgYXNz
ZXJ0IGcuaXNfZGlyKCkKKyAgICAgICAgICAgIGMsIGYsIGQgPSBiLml0ZXJkaXIoKQorICAgICAg
ICAgICAgYXNzZXJ0IGMuaXNfZmlsZSgpIGFuZCBmLmlzX2ZpbGUoKQorICAgICAgICAgICAgZSwg
PSBkLml0ZXJkaXIoKQorICAgICAgICAgICAgYXNzZXJ0IGUuaXNfZmlsZSgpCisgICAgICAgICAg
ICBoLCA9IGcuaXRlcmRpcigpCisgICAgICAgICAgICBpLCA9IGguaXRlcmRpcigpCisgICAgICAg
ICAgICBhc3NlcnQgaS5pc19maWxlKCkKKworICAgIGRlZiB0ZXN0X29wZW4oc2VsZik6CisgICAg
ICAgIGZvciBhbHBoYXJlcCBpbiBzZWxmLnppcGZpbGVfYWxwaGFyZXAoKToKKyAgICAgICAgICAg
IHJvb3QgPSB6aXBwLlBhdGgoYWxwaGFyZXApCisgICAgICAgICAgICBhLCBiLCBnID0gcm9vdC5p
dGVyZGlyKCkKKyAgICAgICAgICAgIHdpdGggYS5vcGVuKCkgYXMgc3RybToKKyAgICAgICAgICAg
ICAgICBkYXRhID0gc3RybS5yZWFkKCkKKyAgICAgICAgICAgIGFzc2VydCBkYXRhID09ICJjb250
ZW50IG9mIGEiCisKKyAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgorICAgICAgICBmb3IgYWxwaGFy
ZXAgaW4gc2VsZi56aXBmaWxlX2FscGhhcmVwKCk6CisgICAgICAgICAgICByb290ID0gemlwcC5Q
YXRoKGFscGhhcmVwKQorICAgICAgICAgICAgYSwgYiwgZyA9IHJvb3QuaXRlcmRpcigpCisgICAg
ICAgICAgICBhc3NlcnQgYS5yZWFkX3RleHQoKSA9PSAiY29udGVudCBvZiBhIgorICAgICAgICAg
ICAgYXNzZXJ0IGEucmVhZF9ieXRlcygpID09IGIiY29udGVudCBvZiBhIgorCisgICAgZGVmIHRl
c3Rfam9pbnBhdGgoc2VsZik6CisgICAgICAgIGZvciBhbHBoYXJlcCBpbiBzZWxmLnppcGZpbGVf
YWxwaGFyZXAoKToKKyAgICAgICAgICAgIHJvb3QgPSB6aXBwLlBhdGgoYWxwaGFyZXApCisgICAg
ICAgICAgICBhID0gcm9vdC5qb2lucGF0aCgiYSIpCisgICAgICAgICAgICBhc3NlcnQgYS5pc19m
aWxlKCkKKyAgICAgICAgICAgIGUgPSByb290LmpvaW5wYXRoKCJiIikuam9pbnBhdGgoImQiKS5q
b2lucGF0aCgiZS50eHQiKQorICAgICAgICAgICAgYXNzZXJ0IGUucmVhZF90ZXh0KCkgPT0gImNv
bnRlbnQgb2YgZSIKKworICAgIGRlZiB0ZXN0X3RyYXZlcnNlX3RydWVkaXYoc2VsZik6CisgICAg
ICAgIGZvciBhbHBoYXJlcCBpbiBzZWxmLnppcGZpbGVfYWxwaGFyZXAoKToKKyAgICAgICAgICAg
IHJvb3QgPSB6aXBwLlBhdGgoYWxwaGFyZXApCisgICAgICAgICAgICBhID0gcm9vdCAvICJhIgor
ICAgICAgICAgICAgYXNzZXJ0IGEuaXNfZmlsZSgpCisgICAgICAgICAgICBlID0gcm9vdCAvICJi
IiAvICJkIiAvICJlLnR4dCIKKyAgICAgICAgICAgIGFzc2VydCBlLnJlYWRfdGV4dCgpID09ICJj
b250ZW50IG9mIGUiCisKKyAgICBkZWYgdGVzdF90cmF2ZXJzZV9zaW1wbGVkaXYoc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICBEaXNhYmxlIHRoZSBfX2Z1dHVyZV9fLmRpdmlzaW9uIHdoZW4g
dGVzdGluZyB0cmF2ZXJzYWwuCisgICAgICAgICIiIgorICAgICAgICBmb3IgYWxwaGFyZXAgaW4g
c2VsZi56aXBmaWxlX2FscGhhcmVwKCk6CisgICAgICAgICAgICBjb2RlID0gY29tcGlsZSgKKyAg
ICAgICAgICAgICAgICBzb3VyY2U9InppcHAuUGF0aChhbHBoYXJlcCkgLyAnYSciLAorICAgICAg
ICAgICAgICAgIGZpbGVuYW1lPSIodGVzdCkiLAorICAgICAgICAgICAgICAgIG1vZGU9ImV2YWwi
LAorICAgICAgICAgICAgICAgIGRvbnRfaW5oZXJpdD1UcnVlLAorICAgICAgICAgICAgKQorICAg
ICAgICAgICAgZXZhbChjb2RlKQorCisgICAgZGVmIHRlc3RfcGF0aGxpa2VfY29uc3RydWN0aW9u
KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgemlwcC5QYXRoIHNob3VsZCBiZSBjb25zdHJ1
Y3RhYmxlIGZyb20gYSBwYXRoLWxpa2Ugb2JqZWN0CisgICAgICAgICIiIgorICAgICAgICBmb3Ig
emlwZmlsZV9vbmRpc2sgaW4gc2VsZi56aXBmaWxlX29uZGlzaygpOgorICAgICAgICAgICAgcGF0
aGxpa2UgPSBwYXRobGliLlBhdGgoc3RyKHppcGZpbGVfb25kaXNrKSkKKyAgICAgICAgICAgIHpp
cHAuUGF0aChwYXRobGlrZSkKKworICAgIGRlZiB0ZXN0X3RyYXZlcnNlX3BhdGhsaWtlKHNlbGYp
OgorICAgICAgICBmb3IgYWxwaGFyZXAgaW4gc2VsZi56aXBmaWxlX2FscGhhcmVwKCk6CisgICAg
ICAgICAgICByb290ID0gemlwcC5QYXRoKGFscGhhcmVwKQorICAgICAgICAgICAgcm9vdCAvIHBh
dGhsaWIuUGF0aCgiYSIpCisKKyAgICBkZWYgdGVzdF9wYXJlbnQoc2VsZik6CisgICAgICAgIGZv
ciBhbHBoYXJlcCBpbiBzZWxmLnppcGZpbGVfYWxwaGFyZXAoKToKKyAgICAgICAgICAgIHJvb3Qg
PSB6aXBwLlBhdGgoYWxwaGFyZXApCisgICAgICAgICAgICBhc3NlcnQgKHJvb3QgLyAnYScpLnBh
cmVudC5hdCA9PSAnJworICAgICAgICAgICAgYXNzZXJ0IChyb290IC8gJ2EnIC8gJ2InKS5wYXJl
bnQuYXQgPT0gJ2EvJworCisgICAgZGVmIHRlc3RfZGlyX3BhcmVudChzZWxmKToKKyAgICAgICAg
Zm9yIGFscGhhcmVwIGluIHNlbGYuemlwZmlsZV9hbHBoYXJlcCgpOgorICAgICAgICAgICAgcm9v
dCA9IHppcHAuUGF0aChhbHBoYXJlcCkKKyAgICAgICAgICAgIGFzc2VydCAocm9vdCAvICdiJyku
cGFyZW50LmF0ID09ICcnCisgICAgICAgICAgICBhc3NlcnQgKHJvb3QgLyAnYi8nKS5wYXJlbnQu
YXQgPT0gJycKKworICAgIGRlZiB0ZXN0X21pc3NpbmdfZGlyX3BhcmVudChzZWxmKToKKyAgICAg
ICAgZm9yIGFscGhhcmVwIGluIHNlbGYuemlwZmlsZV9hbHBoYXJlcCgpOgorICAgICAgICAgICAg
cm9vdCA9IHppcHAuUGF0aChhbHBoYXJlcCkKKyAgICAgICAgICAgIGFzc2VydCAocm9vdCAvICdt
aXNzaW5nIGRpci8nKS5wYXJlbnQuYXQgPT0gJycKKworICAgIGRlZiB0ZXN0X211dGFiaWxpdHko
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBJZiB0aGUgdW5kZXJseWluZyB6aXBmaWxlIGlz
IGNoYW5nZWQsIHRoZSBQYXRoIG9iamVjdCBzaG91bGQKKyAgICAgICAgcmVmbGVjdCB0aGF0IGNo
YW5nZS4KKyAgICAgICAgIiIiCisgICAgICAgIGZvciBhbHBoYXJlcCBpbiBzZWxmLnppcGZpbGVf
YWxwaGFyZXAoKToKKyAgICAgICAgICAgIHJvb3QgPSB6aXBwLlBhdGgoYWxwaGFyZXApCisgICAg
ICAgICAgICBhLCBiLCBnID0gcm9vdC5pdGVyZGlyKCkKKyAgICAgICAgICAgIGFscGhhcmVwLndy
aXRlc3RyKCdmb28udHh0JywgYidmb28nKQorICAgICAgICAgICAgYWxwaGFyZXAud3JpdGVzdHIo
J2Jhci9iYXoudHh0JywgYidiYXonKQorICAgICAgICAgICAgYXNzZXJ0IGFueSgKKyAgICAgICAg
ICAgICAgICBjaGlsZC5uYW1lID09ICdmb28udHh0JworICAgICAgICAgICAgICAgIGZvciBjaGls
ZCBpbiByb290Lml0ZXJkaXIoKSkKKyAgICAgICAgICAgIGFzc2VydCAocm9vdCAvICdmb28udHh0
JykucmVhZF90ZXh0KCkgPT0gJ2ZvbycKKyAgICAgICAgICAgIGJheiwgPSAocm9vdCAvICdiYXIn
KS5pdGVyZGlyKCkKKyAgICAgICAgICAgIGFzc2VydCBiYXoucmVhZF90ZXh0KCkgPT0gJ2JheicK
KworICAgIEhVR0VfWklQRklMRV9OVU1fRU5UUklFUyA9IDIgKiogMTMKKworICAgIGRlZiBodWdl
X3ppcGZpbGUoc2VsZik6CisgICAgICAgICIiIkNyZWF0ZSBhIHJlYWQtb25seSB6aXBmaWxlIHdp
dGggYSBodWdlIG51bWJlciBvZiBlbnRyaWVzIGVudHJpZXMuIiIiCisgICAgICAgIHN0cm0gPSBp
by5CeXRlc0lPKCkKKyAgICAgICAgemYgPSB6aXBmaWxlLlppcEZpbGUoc3RybSwgInciKQorICAg
ICAgICBmb3IgZW50cnkgaW4gbWFwKHN0ciwgcmFuZ2Uoc2VsZi5IVUdFX1pJUEZJTEVfTlVNX0VO
VFJJRVMpKToKKyAgICAgICAgICAgIHpmLndyaXRlc3RyKGVudHJ5LCBlbnRyeSkKKyAgICAgICAg
emYubW9kZSA9ICdyJworICAgICAgICByZXR1cm4gemYKKworICAgIGRlZiB0ZXN0X2pvaW5wYXRo
X2NvbnN0YW50X3RpbWUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBFbnN1cmUgam9pbnBh
dGggb24gaXRlbXMgaW4gemlwZmlsZSBpcyBsaW5lYXIgdGltZS4KKyAgICAgICAgIiIiCisgICAg
ICAgIHJvb3QgPSB6aXBwLlBhdGgoc2VsZi5odWdlX3ppcGZpbGUoKSkKKyAgICAgICAgZW50cmll
cyA9IGphcmFjby5pdGVydG9vbHMuQ291bnRlcihyb290Lml0ZXJkaXIoKSkKKyAgICAgICAgZm9y
IGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICBlbnRyeS5qb2lucGF0aCgnc3VmZml4JykK
KyAgICAgICAgIyBDaGVjayB0aGUgZmlsZSBpdGVyYXRlZCBhbGwgaXRlbXMKKyAgICAgICAgYXNz
ZXJ0IGVudHJpZXMuY291bnQgPT0gc2VsZi5IVUdFX1pJUEZJTEVfTlVNX0VOVFJJRVMKKworICAg
IEBmdW5jX3RpbWVvdXQuZnVuY19zZXRfdGltZW91dCgzKQorICAgIGRlZiB0ZXN0X2ltcGxpZWRf
ZGlyc19wZXJmb3JtYW5jZShzZWxmKToKKyAgICAgICAgZGF0YSA9IFsnLycuam9pbihzdHJpbmcu
YXNjaWlfbG93ZXJjYXNlICsgc3RyKG4pKSBmb3IgbiBpbiByYW5nZSgxMDAwMCldCisgICAgICAg
IHppcHAuQ29tcGxldGVEaXJzLl9pbXBsaWVkX2RpcnMoZGF0YSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
emlwcC90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3RveC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I1NDJjMTM2YzM4
ZWFmMzMwZmQyZTliMzIzMWQxMDEwZmJlMWFhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlw
cC90b3guaW5pCkBAIC0wLDAgKzEsMzYgQEAKK1t0b3hdCitlbnZsaXN0ID0gcHl0aG9uCittaW52
ZXJzaW9uID0gMy4yCisjIGh0dHBzOi8vZ2l0aHViLmNvbS9qYXJhY28vc2tlbGV0b24vaXNzdWVz
LzYKK3RveF9waXBfZXh0ZW5zaW9uc19leHRfdmVudl91cGRhdGUgPSB0cnVlCisKK1t0ZXN0ZW52
XQorZGVwcyA9CisJc2V0dXB0b29scz49MzEuMC4xCitjb21tYW5kcyA9CisJcHl0aG9uIC1tIHVu
aXR0ZXN0IGRpc2NvdmVyCit1c2VkZXZlbG9wID0gVHJ1ZQorZXh0cmFzID0gdGVzdGluZworCitb
dGVzdGVudjpidWlsZC1kb2NzXQorZXh0cmFzID0KKyAgICBkb2NzCisgICAgdGVzdGluZworY2hh
bmdlZGlyID0gZG9jcworY29tbWFuZHMgPQorICAgIHB5dGhvbiAtbSBzcGhpbnggLiB7dG94aW5p
ZGlyfS9idWlsZC9odG1sCisKK1t0ZXN0ZW52OnJlbGVhc2VdCitza2lwX2luc3RhbGwgPSBUcnVl
CitkZXBzID0KKwlwZXA1MTc+PTAuNQorCXR3aW5lPj0xLjEzCisJcGF0aC5weQorcGFzc2VudiA9
CisJVFdJTkVfUEFTU1dPUkQKK3NldGVudiA9CisJVFdJTkVfVVNFUk5BTUUgPSB7ZW52OlRXSU5F
X1VTRVJOQU1FOl9fdG9rZW5fX30KK2NvbW1hbmRzID0KKwlweXRob24gLWMgImltcG9ydCBwYXRo
OyBwYXRoLlBhdGgoJ2Rpc3QnKS5ybXRyZWVfcCgpIgorCXB5dGhvbiAtbSBwZXA1MTcuYnVpbGQg
LgorCXB5dGhvbiAtbSB0d2luZSB1cGxvYWQgZGlzdC8qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlh
NGY4ZDFjODZjNTQwZDFjZTVhNTdkYmI5ZTRjNjExMDhiYzIzZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvemlwcC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI5IEBACitUaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0Rv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3ppcHAvQ0hBTkdFUy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvTElDRU5TRQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9QS0ctSU5G
TworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvemlwcC9SRUFETUUucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2FwcHZleW9yLnltbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
emlwcC9jb25mdGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9weXByb2plY3QudG9tbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9z
ZXR1cC5jZmcKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3ppcHAvc2V0dXAucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvc2tlbGV0b24ubWQKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3ppcHAvdGVzdF96aXBwLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3RveC5pbmkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlw
cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vUEtHLUlORk8gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3ppcHAvemlwcC5lZ2ctaW5mby9QS0ctSU5GTwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2VmMWNmMDFjNGIyMzI2
NDhhNzBhMGYyZmE5NzMzYTQyMzJiNDk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3pp
cHAuZWdnLWluZm8vUEtHLUlORk8KQEAgLTAsMCArMSwzOSBAQAorTWV0YWRhdGEtVmVyc2lvbjog
Mi4xCitOYW1lOiB6aXBwCitWZXJzaW9uOiAxLjIuMAorU3VtbWFyeTogQmFja3BvcnQgb2YgcGF0
aGxpYi1jb21wYXRpYmxlIG9iamVjdCB3cmFwcGVyIGZvciB6aXAgZmlsZXMKK0hvbWUtcGFnZTog
aHR0cHM6Ly9naXRodWIuY29tL2phcmFjby96aXBwCitBdXRob3I6IEphc29uIFIuIENvb21icwor
QXV0aG9yLWVtYWlsOiBqYXJhY29AamFyYWNvLmNvbQorTGljZW5zZTogVU5LTk9XTgorRGVzY3Jp
cHRpb246IC4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvemlwcC5zdmcK
KyAgICAgICAgICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3ppcHAKKyAgICAg
ICAgCisgICAgICAgIC4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3B5dmVy
c2lvbnMvemlwcC5zdmcKKyAgICAgICAgCisgICAgICAgIC4uIGltYWdlOjogaHR0cHM6Ly9pbWcu
c2hpZWxkcy5pby90cmF2aXMvamFyYWNvL3ppcHAvbWFzdGVyLnN2ZworICAgICAgICAgICA6dGFy
Z2V0OiBodHRwczovL3RyYXZpcy1jaS5vcmcvamFyYWNvL3ppcHAKKyAgICAgICAgCisgICAgICAg
IC4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxh
Y2stMDAwMDAwLnN2ZworICAgICAgICAgICA6dGFyZ2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW1i
di9ibGFjaworICAgICAgICAgICA6YWx0OiBDb2RlIHN0eWxlOiBCbGFjaworICAgICAgICAKKyAg
ICAgICAgLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2FwcHZleW9yL2NpL2phcmFj
by96aXBwL21hc3Rlci5zdmcKKyAgICAgICAgICAgOnRhcmdldDogaHR0cHM6Ly9jaS5hcHB2ZXlv
ci5jb20vcHJvamVjdC9qYXJhY28vemlwcC9icmFuY2gvbWFzdGVyCisgICAgICAgIAorICAgICAg
ICAuLiAuLiBpbWFnZTo6IGh0dHBzOi8vcmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL3ppcHAvYmFk
Z2UvP3ZlcnNpb249bGF0ZXN0CisgICAgICAgIC4uICAgIDp0YXJnZXQ6IGh0dHBzOi8vemlwcC5y
ZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvP2JhZGdlPWxhdGVzdAorICAgICAgICAKKyAgICAgICAg
CisgICAgICAgIEEgcGF0aGxpYi1jb21wYXRpYmxlIFppcGZpbGUgb2JqZWN0IHdyYXBwZXIuIEEg
YmFja3BvcnQgb2YgdGhlCisgICAgICAgIGBQYXRoIG9iamVjdCA8aHR0cHM6Ly9kb2NzLnB5dGhv
bi5vcmcvMy44L2xpYnJhcnkvemlwZmlsZS5odG1sI3BhdGgtb2JqZWN0cz5gXy4KKyAgICAgICAg
CitQbGF0Zm9ybTogVU5LTk9XTgorQ2xhc3NpZmllcjogRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDUg
LSBQcm9kdWN0aW9uL1N0YWJsZQorQ2xhc3NpZmllcjogSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2
ZWxvcGVycworQ2xhc3NpZmllcjogTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vu
c2UKK0NsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyLjcKK0Ns
YXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzCitSZXF1aXJlcy1Q
eXRob246ID49Mi43CitQcm92aWRlcy1FeHRyYTogdGVzdGluZworUHJvdmlkZXMtRXh0cmE6IGRv
Y3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL1NPVVJDRVMudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS96aXBwL3ppcHAuZWdnLWluZm8vU09VUkNFUy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ1YjM0MmNlZmM0
MDA1ODEzNGFjNzE1ZGM4ZmE4MDZlNDBiNmU5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlw
cC96aXBwLmVnZy1pbmZvL1NPVVJDRVMudHh0CkBAIC0wLDAgKzEsMjQgQEAKKy5mbGFrZTgKKy5w
cmUtY29tbWl0LWNvbmZpZy55YW1sCisucmVhZHRoZWRvY3MueW1sCisudHJhdmlzLnltbAorQ0hB
TkdFUy5yc3QKK0xJQ0VOU0UKK1JFQURNRS5yc3QKK2FwcHZleW9yLnltbAorY29uZnRlc3QucHkK
K3B5cHJvamVjdC50b21sCitzZXR1cC5jZmcKK3NldHVwLnB5Citza2VsZXRvbi5tZAordGVzdF96
aXBwLnB5Cit0b3guaW5pCit6aXBwLnB5Citkb2NzL2NvbmYucHkKK2RvY3MvaGlzdG9yeS5yc3QK
K2RvY3MvaW5kZXgucnN0Cit6aXBwLmVnZy1pbmZvL1BLRy1JTkZPCit6aXBwLmVnZy1pbmZvL1NP
VVJDRVMudHh0Cit6aXBwLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0Cit6aXBwLmVnZy1p
bmZvL3JlcXVpcmVzLnR4dAoremlwcC5lZ2ctaW5mby90b3BfbGV2ZWwudHh0ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vZGVw
ZW5kZW5jeV9saW5rcy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xp
bmtzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRlZDA4
YmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vZGVwZW5kZW5j
eV9saW5rcy50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5l
Z2ctaW5mby9yZXF1aXJlcy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5lZ2ctaW5mby9yZXF1aXJlcy50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTBiYWI0NmFjNDkzMGQzNWYzOWU4MjE3MmFhZGYwZTlhNWJkZDhhMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL3JlcXVpcmVzLnR4dApA
QCAtMCwwICsxLDE0IEBACisKK1s6cHl0aG9uX3ZlcnNpb24gPCAiMy40Il0KK2NvbnRleHRsaWIy
CisKK1tkb2NzXQorc3BoaW54CitqYXJhY28ucGFja2FnaW5nPj0zLjIKK3JzdC5saW5rZXI+PTEu
OQorCitbdGVzdGluZ10KK3BhdGhsaWIyCit1bml0dGVzdDIKK2phcmFjby5pdGVydG9vbHMKK2Z1
bmMtdGltZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vdG9wX2xldmVs
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTgyZjY3NmY4MmEzMzgxZmE5MDlkMWU2NTc4YzdhMjIwNDRmYWZjYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKQEAgLTAsMCArMSBAQAor
emlwcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3ppcHAvemlwcC5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWFm
NDM3MDllNDAyMjQ0ZGJhNzhkYjAyZjgyYjM0ZjExYTg3NmNmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMSBAQAor
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
K0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2Yg
ZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vUEtHLUlORk8KKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlw
cC5lZ2ctaW5mby9TT1VSQ0VTLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL2RlcGVuZGVu
Y3lfbGlua3MudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vcmVxdWlyZXMudHh0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS96aXBwL3ppcHAuZWdnLWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBw
L3ppcHAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTIyMDU4MzRhYmFlZTJi
NGMxZDNiYjQ1MDc2MDlkZTBhZDFjMmY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3pp
cHAucHkKQEAgLTAsMCArMSwyODYgQEAKKyMgY29kaW5nOiB1dGYtOAorCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGRpdmlzaW9uCisKK2ltcG9ydCBpbworaW1wb3J0IHN5cworaW1wb3J0IHBvc2l4
cGF0aAoraW1wb3J0IHppcGZpbGUKK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCBpdGVydG9vbHMK
K2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CisKK3RyeToKKyAgICBmcm9tIGNv
bnRleHRsaWIgaW1wb3J0IHN1cHByZXNzCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBj
b250ZXh0bGliMiBpbXBvcnQgc3VwcHJlc3MKKworX19tZXRhY2xhc3NfXyA9IHR5cGUKKworCitk
ZWYgX3BhcmVudHMocGF0aCk6CisgICAgIiIiCisgICAgR2l2ZW4gYSBwYXRoIHdpdGggZWxlbWVu
dHMgc2VwYXJhdGVkIGJ5CisgICAgcG9zaXhwYXRoLnNlcCwgZ2VuZXJhdGUgYWxsIHBhcmVudHMg
b2YgdGhhdCBwYXRoLgorCisgICAgPj4+IGxpc3QoX3BhcmVudHMoJ2IvZCcpKQorICAgIFsnYidd
CisgICAgPj4+IGxpc3QoX3BhcmVudHMoJy9iL2QvJykpCisgICAgWycvYiddCisgICAgPj4+IGxp
c3QoX3BhcmVudHMoJ2IvZC9mLycpKQorICAgIFsnYi9kJywgJ2InXQorICAgID4+PiBsaXN0KF9w
YXJlbnRzKCdiJykpCisgICAgW10KKyAgICA+Pj4gbGlzdChfcGFyZW50cygnJykpCisgICAgW10K
KyAgICAiIiIKKyAgICByZXR1cm4gaXRlcnRvb2xzLmlzbGljZShfYW5jZXN0cnkocGF0aCksIDEs
IE5vbmUpCisKKworZGVmIF9hbmNlc3RyeShwYXRoKToKKyAgICAiIiIKKyAgICBHaXZlbiBhIHBh
dGggd2l0aCBlbGVtZW50cyBzZXBhcmF0ZWQgYnkKKyAgICBwb3NpeHBhdGguc2VwLCBnZW5lcmF0
ZSBhbGwgZWxlbWVudHMgb2YgdGhhdCBwYXRoCisKKyAgICA+Pj4gbGlzdChfYW5jZXN0cnkoJ2Iv
ZCcpKQorICAgIFsnYi9kJywgJ2InXQorICAgID4+PiBsaXN0KF9hbmNlc3RyeSgnL2IvZC8nKSkK
KyAgICBbJy9iL2QnLCAnL2InXQorICAgID4+PiBsaXN0KF9hbmNlc3RyeSgnYi9kL2YvJykpCisg
ICAgWydiL2QvZicsICdiL2QnLCAnYiddCisgICAgPj4+IGxpc3QoX2FuY2VzdHJ5KCdiJykpCisg
ICAgWydiJ10KKyAgICA+Pj4gbGlzdChfYW5jZXN0cnkoJycpKQorICAgIFtdCisgICAgIiIiCisg
ICAgcGF0aCA9IHBhdGgucnN0cmlwKHBvc2l4cGF0aC5zZXApCisgICAgd2hpbGUgcGF0aCBhbmQg
cGF0aCAhPSBwb3NpeHBhdGguc2VwOgorICAgICAgICB5aWVsZCBwYXRoCisgICAgICAgIHBhdGgs
IHRhaWwgPSBwb3NpeHBhdGguc3BsaXQocGF0aCkKKworCitjbGFzcyBDb21wbGV0ZURpcnMoemlw
ZmlsZS5aaXBGaWxlKToKKyAgICAiIiIKKyAgICBBIFppcEZpbGUgc3ViY2xhc3MgdGhhdCBlbnN1
cmVzIHRoYXQgaW1wbGllZCBkaXJlY3RvcmllcworICAgIGFyZSBhbHdheXMgaW5jbHVkZWQgaW4g
dGhlIG5hbWVsaXN0LgorICAgICIiIgorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfaW1w
bGllZF9kaXJzKG5hbWVzKToKKyAgICAgICAgcGFyZW50cyA9IGl0ZXJ0b29scy5jaGFpbi5mcm9t
X2l0ZXJhYmxlKG1hcChfcGFyZW50cywgbmFtZXMpKQorICAgICAgICAjIENhc3QgbmFtZXMgdG8g
YSBzZXQgZm9yIE8oMSkgbG9va3VwcworICAgICAgICBleGlzdGluZyA9IHNldChuYW1lcykKKyAg
ICAgICAgIyBEZWR1cGxpY2F0ZSBlbnRyaWVzIGluIG9yaWdpbmFsIG9yZGVyCisgICAgICAgIGlt
cGxpZWRfZGlycyA9IE9yZGVyZWREaWN0LmZyb21rZXlzKAorICAgICAgICAgICAgcCArIHBvc2l4
cGF0aC5zZXAgZm9yIHAgaW4gcGFyZW50cworICAgICAgICAgICAgaWYgcCArIHBvc2l4cGF0aC5z
ZXAgbm90IGluIGV4aXN0aW5nCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIGltcGxpZWRfZGly
cworCisgICAgZGVmIG5hbWVsaXN0KHNlbGYpOgorICAgICAgICBuYW1lcyA9IHN1cGVyKENvbXBs
ZXRlRGlycywgc2VsZikubmFtZWxpc3QoKQorICAgICAgICByZXR1cm4gbmFtZXMgKyBsaXN0KHNl
bGYuX2ltcGxpZWRfZGlycyhuYW1lcykpCisKKyAgICBkZWYgX25hbWVfc2V0KHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2V0KHNlbGYubmFtZWxpc3QoKSkKKworICAgIGRlZiByZXNvbHZlX2Rpcihz
ZWxmLCBuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIHRoZSBuYW1lIHJlcHJlc2VudHMg
YSBkaXJlY3RvcnksIHJldHVybiB0aGF0IG5hbWUKKyAgICAgICAgYXMgYSBkaXJlY3RvcnkgKHdp
dGggdGhlIHRyYWlsaW5nIHNsYXNoKS4KKyAgICAgICAgIiIiCisgICAgICAgIG5hbWVzID0gc2Vs
Zi5fbmFtZV9zZXQoKQorICAgICAgICBkaXJuYW1lID0gbmFtZSArICcvJworICAgICAgICBkaXJf
bWF0Y2ggPSBuYW1lIG5vdCBpbiBuYW1lcyBhbmQgZGlybmFtZSBpbiBuYW1lcworICAgICAgICBy
ZXR1cm4gZGlybmFtZSBpZiBkaXJfbWF0Y2ggZWxzZSBuYW1lCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgbWFrZShjbHMsIHNvdXJjZSk6CisgICAgICAgICIiIgorICAgICAgICBHaXZlbiBh
IHNvdXJjZSAoZmlsZW5hbWUgb3IgemlwZmlsZSksIHJldHVybiBhbgorICAgICAgICBhcHByb3By
aWF0ZSBDb21wbGV0ZURpcnMgc3ViY2xhc3MuCisgICAgICAgICIiIgorICAgICAgICBpZiBpc2lu
c3RhbmNlKHNvdXJjZSwgQ29tcGxldGVEaXJzKToKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UK
KworICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzb3VyY2UsIHppcGZpbGUuWmlwRmlsZSk6Cisg
ICAgICAgICAgICByZXR1cm4gY2xzKF9wYXRobGliX2NvbXBhdChzb3VyY2UpKQorCisgICAgICAg
ICMgT25seSBhbGxvdyBmb3IgRmFzdFBhdGggd2hlbiBzdXBwbGllZCB6aXBmaWxlIGlzIHJlYWQt
b25seQorICAgICAgICBpZiAncicgbm90IGluIHNvdXJjZS5tb2RlOgorICAgICAgICAgICAgY2xz
ID0gQ29tcGxldGVEaXJzCisKKyAgICAgICAgcmVzID0gY2xzLl9fbmV3X18oY2xzKQorICAgICAg
ICB2YXJzKHJlcykudXBkYXRlKHZhcnMoc291cmNlKSkKKyAgICAgICAgcmV0dXJuIHJlcworCisK
K2NsYXNzIEZhc3RMb29rdXAoQ29tcGxldGVEaXJzKToKKyAgICAiIiIKKyAgICBaaXBGaWxlIHN1
YmNsYXNzIHRvIGVuc3VyZSBpbXBsaWNpdAorICAgIGRpcnMgZXhpc3QgYW5kIGFyZSByZXNvbHZl
ZCByYXBpZGx5LgorICAgICIiIgorICAgIGRlZiBuYW1lbGlzdChzZWxmKToKKyAgICAgICAgd2l0
aCBzdXBwcmVzcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fX25h
bWVzCisgICAgICAgIHNlbGYuX19uYW1lcyA9IHN1cGVyKEZhc3RMb29rdXAsIHNlbGYpLm5hbWVs
aXN0KCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX19uYW1lcworCisgICAgZGVmIF9uYW1lX3NldChz
ZWxmKToKKyAgICAgICAgd2l0aCBzdXBwcmVzcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fX2xvb2t1cAorICAgICAgICBzZWxmLl9fbG9va3VwID0gc3VwZXIoRmFz
dExvb2t1cCwgc2VsZikuX25hbWVfc2V0KCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX19sb29rdXAK
KworCitkZWYgX3BhdGhsaWJfY29tcGF0KHBhdGgpOgorICAgICIiIgorICAgIEZvciBwYXRoLWxp
a2Ugb2JqZWN0cywgY29udmVydCB0byBhIGZpbGVuYW1lIGZvciBjb21wYXRpYmlsaXR5CisgICAg
b24gUHl0aG9uIDMuNi4xIGFuZCBlYXJsaWVyLgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAg
cmV0dXJuIHBhdGguX19mc3BhdGhfXygpCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAg
ICAgICByZXR1cm4gc3RyKHBhdGgpCisKKworY2xhc3MgUGF0aDoKKyAgICAiIiIKKyAgICBBIHBh
dGhsaWItY29tcGF0aWJsZSBpbnRlcmZhY2UgZm9yIHppcCBmaWxlcy4KKworICAgIENvbnNpZGVy
IGEgemlwIGZpbGUgd2l0aCB0aGlzIHN0cnVjdHVyZTo6CisKKyAgICAgICAgLgorICAgICAgICDi
lJzilIDilIAgYS50eHQKKyAgICAgICAg4pSU4pSA4pSAIGIKKyAgICAgICAgICAgIOKUnOKUgOKU
gCBjLnR4dAorICAgICAgICAgICAg4pSU4pSA4pSAIGQKKyAgICAgICAgICAgICAgICDilJTilIDi
lIAgZS50eHQKKworICAgID4+PiBkYXRhID0gaW8uQnl0ZXNJTygpCisgICAgPj4+IHpmID0gemlw
ZmlsZS5aaXBGaWxlKGRhdGEsICd3JykKKyAgICA+Pj4gemYud3JpdGVzdHIoJ2EudHh0JywgJ2Nv
bnRlbnQgb2YgYScpCisgICAgPj4+IHpmLndyaXRlc3RyKCdiL2MudHh0JywgJ2NvbnRlbnQgb2Yg
YycpCisgICAgPj4+IHpmLndyaXRlc3RyKCdiL2QvZS50eHQnLCAnY29udGVudCBvZiBlJykKKyAg
ICA+Pj4gemYuZmlsZW5hbWUgPSAnYWJjZGUuemlwJworCisgICAgUGF0aCBhY2NlcHRzIHRoZSB6
aXBmaWxlIG9iamVjdCBpdHNlbGYgb3IgYSBmaWxlbmFtZQorCisgICAgPj4+IHJvb3QgPSBQYXRo
KHpmKQorCisgICAgRnJvbSB0aGVyZSwgc2V2ZXJhbCBwYXRoIG9wZXJhdGlvbnMgYXJlIGF2YWls
YWJsZS4KKworICAgIERpcmVjdG9yeSBpdGVyYXRpb24gKGluY2x1ZGluZyB0aGUgemlwIGZpbGUg
aXRzZWxmKToKKworICAgID4+PiBhLCBiID0gcm9vdC5pdGVyZGlyKCkKKyAgICA+Pj4gYQorICAg
IFBhdGgoJ2FiY2RlLnppcCcsICdhLnR4dCcpCisgICAgPj4+IGIKKyAgICBQYXRoKCdhYmNkZS56
aXAnLCAnYi8nKQorCisgICAgbmFtZSBwcm9wZXJ0eToKKworICAgID4+PiBiLm5hbWUKKyAgICAn
YicKKworICAgIGpvaW4gd2l0aCBkaXZpZGUgb3BlcmF0b3I6CisKKyAgICA+Pj4gYyA9IGIgLyAn
Yy50eHQnCisgICAgPj4+IGMKKyAgICBQYXRoKCdhYmNkZS56aXAnLCAnYi9jLnR4dCcpCisgICAg
Pj4+IGMubmFtZQorICAgICdjLnR4dCcKKworICAgIFJlYWQgdGV4dDoKKworICAgID4+PiBjLnJl
YWRfdGV4dCgpCisgICAgJ2NvbnRlbnQgb2YgYycKKworICAgIGV4aXN0ZW5jZToKKworICAgID4+
PiBjLmV4aXN0cygpCisgICAgVHJ1ZQorICAgID4+PiAoYiAvICdtaXNzaW5nLnR4dCcpLmV4aXN0
cygpCisgICAgRmFsc2UKKworICAgIENvZXJjaW9uIHRvIHN0cmluZzoKKworICAgID4+PiBzdHIo
YykKKyAgICAnYWJjZGUuemlwL2IvYy50eHQnCisgICAgIiIiCisKKyAgICBfX3JlcHIgPSAie3Nl
bGYuX19jbGFzc19fLl9fbmFtZV9ffSh7c2VsZi5yb290LmZpbGVuYW1lIXJ9LCB7c2VsZi5hdCFy
fSkiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdCwgYXQ9IiIpOgorICAgICAgICBzZWxm
LnJvb3QgPSBGYXN0TG9va3VwLm1ha2Uocm9vdCkKKyAgICAgICAgc2VsZi5hdCA9IGF0CisKKyAg
ICBkZWYgb3BlbihzZWxmLCBtb2RlPSdyJywgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIi
CisgICAgICAgIE9wZW4gdGhpcyBlbnRyeSBhcyB0ZXh0IG9yIGJpbmFyeSBmb2xsb3dpbmcgdGhl
IHNlbWFudGljcworICAgICAgICBvZiBgYHBhdGhsaWIuUGF0aC5vcGVuKClgYCBieSBwYXNzaW5n
IGFyZ3VtZW50cyB0aHJvdWdoCisgICAgICAgIHRvIGlvLlRleHRJT1dyYXBwZXIoKS4KKyAgICAg
ICAgIiIiCisgICAgICAgIHB3ZCA9IGt3YXJncy5wb3AoJ3B3ZCcsIE5vbmUpCisgICAgICAgIHpp
cF9tb2RlID0gbW9kZVswXQorICAgICAgICBzdHJlYW0gPSBzZWxmLnJvb3Qub3BlbihzZWxmLmF0
LCB6aXBfbW9kZSwgcHdkPXB3ZCkKKyAgICAgICAgaWYgJ2InIGluIG1vZGU6CisgICAgICAgICAg
ICBpZiBhcmdzIG9yIGt3YXJnczoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJl
bmNvZGluZyBhcmdzIGludmFsaWQgZm9yIGJpbmFyeSBvcGVyYXRpb24iKQorICAgICAgICAgICAg
cmV0dXJuIHN0cmVhbQorICAgICAgICByZXR1cm4gaW8uVGV4dElPV3JhcHBlcihzdHJlYW0sICph
cmdzLCAqKmt3YXJncykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgorICAg
ICAgICByZXR1cm4gcG9zaXhwYXRoLmJhc2VuYW1lKHNlbGYuYXQucnN0cmlwKCIvIikpCisKKyAg
ICBkZWYgcmVhZF90ZXh0KHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHdpdGggc2Vs
Zi5vcGVuKCdyJywgKmFyZ3MsICoqa3dhcmdzKSBhcyBzdHJtOgorICAgICAgICAgICAgcmV0dXJu
IHN0cm0ucmVhZCgpCisKKyAgICBkZWYgcmVhZF9ieXRlcyhzZWxmKToKKyAgICAgICAgd2l0aCBz
ZWxmLm9wZW4oJ3JiJykgYXMgc3RybToKKyAgICAgICAgICAgIHJldHVybiBzdHJtLnJlYWQoKQor
CisgICAgZGVmIF9pc19jaGlsZChzZWxmLCBwYXRoKToKKyAgICAgICAgcmV0dXJuIHBvc2l4cGF0
aC5kaXJuYW1lKHBhdGguYXQucnN0cmlwKCIvIikpID09IHNlbGYuYXQucnN0cmlwKCIvIikKKwor
ICAgIGRlZiBfbmV4dChzZWxmLCBhdCk6CisgICAgICAgIHJldHVybiBQYXRoKHNlbGYucm9vdCwg
YXQpCisKKyAgICBkZWYgaXNfZGlyKHNlbGYpOgorICAgICAgICByZXR1cm4gbm90IHNlbGYuYXQg
b3Igc2VsZi5hdC5lbmRzd2l0aCgiLyIpCisKKyAgICBkZWYgaXNfZmlsZShzZWxmKToKKyAgICAg
ICAgcmV0dXJuIG5vdCBzZWxmLmlzX2RpcigpCisKKyAgICBkZWYgZXhpc3RzKHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2VsZi5hdCBpbiBzZWxmLnJvb3QuX25hbWVfc2V0KCkKKworICAgIGRlZiBp
dGVyZGlyKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5pc19kaXIoKToKKyAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoIkNhbid0IGxpc3RkaXIgYSBmaWxlIikKKyAgICAgICAgc3VicyA9
IG1hcChzZWxmLl9uZXh0LCBzZWxmLnJvb3QubmFtZWxpc3QoKSkKKyAgICAgICAgcmV0dXJuIGZp
bHRlcihzZWxmLl9pc19jaGlsZCwgc3VicykKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAg
ICAgICByZXR1cm4gcG9zaXhwYXRoLmpvaW4oc2VsZi5yb290LmZpbGVuYW1lLCBzZWxmLmF0KQor
CisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fX3JlcHIuZm9y
bWF0KHNlbGY9c2VsZikKKworICAgIGRlZiBqb2lucGF0aChzZWxmLCBhZGQpOgorICAgICAgICBu
ZXh0ID0gcG9zaXhwYXRoLmpvaW4oc2VsZi5hdCwgX3BhdGhsaWJfY29tcGF0KGFkZCkpCisgICAg
ICAgIHJldHVybiBzZWxmLl9uZXh0KHNlbGYucm9vdC5yZXNvbHZlX2RpcihuZXh0KSkKKworICAg
IF9fdHJ1ZWRpdl9fID0gam9pbnBhdGgKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXJlbnQo
c2VsZik6CisgICAgICAgIHBhcmVudF9hdCA9IHBvc2l4cGF0aC5kaXJuYW1lKHNlbGYuYXQucnN0
cmlwKCcvJykpCisgICAgICAgIGlmIHBhcmVudF9hdDoKKyAgICAgICAgICAgIHBhcmVudF9hdCAr
PSAnLycKKyAgICAgICAgcmV0dXJuIHNlbGYuX25leHQocGFyZW50X2F0KQorCisgICAgaWYgc3lz
LnZlcnNpb25faW5mbyA8ICgzLCk6CisgICAgICAgIF9fZGl2X18gPSBfX3RydWVkaXZfXwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90b3guaW5pCmluZGV4IDFhOTRlYzM0MDIxNjQxNzU4NGJjNTRiZjM1MjdkOTA5MjA5OTM3
ODkuLmM3MmQ3MjgyMzlhMTY0MGYwYmFiZTkxNmZhOGM0NGY5OWI1MDAyM2MgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdG94Lmlu
aQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RveC5pbmkKQEAgLTUsNyArNSw4IEBAIHNraXBfbWlzc2luZ19pbnRlcnByZXRlcnMgPSBGYWxz
ZQogCiBbdGVzdGVudl0KIGRlcHMgPQotICBweXRlc3QKKyAgIyBTYW1lIGFzIHRvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdCwgYWxzbyB0aGUgbGFzdCB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgUHl0aG9u
IDIKKyAgcHl0ZXN0PT00LjYuMTEKICAgcHl0ZXN0LWNvdgogICAjIG1vY2sgbm8gbG9uZ2VyIHN1
cHBvcnRzIFB5dGhvbiAyIHNpbmNlIHY0CiAgIG1vY2s9PTMuKgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3RveC5pbmkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
dG94LmluaQppbmRleCA4ZTNlMjZlMTM1YjRkMzc2YTQ5MmFlYTVhZGJkMjQyNzk3YjAzZmUwLi4y
ZmVlYzhkMWE0YWI1ZGVjYzQ4YWE4OTIxOWE4N2M2ZjNjNGNhMmM2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdG94Lmlu
aQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvdG94LmluaQpAQCAtNSw3ICs1LDggQEAgc2tpcF9taXNzaW5nX2ludGVycHJldGVycyA9
IEZhbHNlCiAKIFt0ZXN0ZW52XQogZGVwcyA9Ci0gIHB5dGVzdAorICAjIFNhbWUgYXMgdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0LCBhbHNvIHRoZSBsYXN0IHZlcnNpb24gdGhhdCBzdXBwb3J0cyBQ
eXRob24gMgorICBweXRlc3Q9PTQuNi4xMQogICBweXRlc3QtY292CiAgIGh5cG90aGVzaXMKICAg
bW9jawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L19faW5pdF9fLnB5CmluZGV4IGQ4NjBiOWVhMjUzM2YwMzJjYTIyN2FlNjNkOGYyMDIyYjZkODk3
YzcuLjBlMWE5ZGU5YTY1ZWZiMDNlNDAwYWY4NGE5NjAxMmMwNTlkMTUyOWIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyL3dlYmRyaXZlci9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkK
QEAgLTYsNiArNiw3IEBAIGZyb20gLmNsaWVudCBpbXBvcnQgKAogICAgIEZpbmQsCiAgICAgRnJh
bWUsCiAgICAgU2Vzc2lvbiwKKyAgICBTaGFkb3dSb290LAogICAgIFRpbWVvdXRzLAogICAgIFdp
bmRvdykKIGZyb20gLmVycm9yIGltcG9ydCAoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xp
ZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weQppbmRleCBmNGUzYzc2Mzc5NWU5MDVhODVm
M2M0MTk1MWY4NmU1NThiN2MxMDczLi4xOWZlMzM2YTZlMWViNGQ3NjZmZGZiYTkwY2NmNzI3MWQ4
ZTQzOWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRy
aXZlci9jbGllbnQucHkKQEAgLTExNiwxNCArMTE2LDQ5IEBAIGNsYXNzIEFjdGlvblNlcXVlbmNl
KG9iamVjdCk6CiAgICAgZGVmIF9rZXlfYWN0aW9uKHNlbGYsIHN1YnR5cGUsIHZhbHVlKToKICAg
ICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoeyJ0eXBlIjogc3VidHlwZSwgInZhbHVlIjogdmFs
dWV9KQogCi0gICAgZGVmIF9wb2ludGVyX2FjdGlvbihzZWxmLCBzdWJ0eXBlLCBidXR0b24pOgot
ICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZCh7InR5cGUiOiBzdWJ0eXBlLCAiYnV0dG9uIjog
YnV0dG9ufSkKKyAgICBkZWYgX3BvaW50ZXJfYWN0aW9uKHNlbGYsIHN1YnR5cGUsIGJ1dHRvbj1O
b25lLCB4PU5vbmUsIHk9Tm9uZSwgZHVyYXRpb249Tm9uZSwgb3JpZ2luPU5vbmUsIHdpZHRoPU5v
bmUsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9Tm9uZSwgcHJlc3N1cmU9Tm9uZSwg
dGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbHRfeT1Ob25lLCB0d2lzdD1Ob25lLCBhbHRpdHVkZV9hbmdsZT1Ob25lLCBhemlt
dXRoX2FuZ2xlPU5vbmUpOgorICAgICAgICBhY3Rpb24gPSB7CisgICAgICAgICAgICAidHlwZSI6
IHN1YnR5cGUKKyAgICAgICAgfQorICAgICAgICBpZiBidXR0b24gaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICBhY3Rpb25bImJ1dHRvbiJdID0gYnV0dG9uCisgICAgICAgIGlmIHggaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBhY3Rpb25bIngiXSA9IHgKKyAgICAgICAgaWYgeSBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgIGFjdGlvblsieSJdID0geQorICAgICAgICBpZiBkdXJhdGlvbiBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiZHVyYXRpb24iXSA9IGR1cmF0aW9uCisgICAg
ICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsib3JpZ2luIl0g
PSBvcmlnaW4KKyAgICAgICAgaWYgd2lkdGggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rp
b25bIndpZHRoIl0gPSB3aWR0aAorICAgICAgICBpZiBoZWlnaHQgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICBhY3Rpb25bImhlaWdodCJdID0gaGVpZ2h0CisgICAgICAgIGlmIHByZXNzdXJlIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgYWN0aW9uWyJwcmVzc3VyZSJdID0gcHJlc3N1cmUKKyAg
ICAgICAgaWYgdGFuZ2VudGlhbF9wcmVzc3VyZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFj
dGlvblsidGFuZ2VudGlhbFByZXNzdXJlIl0gPSB0YW5nZW50aWFsX3ByZXNzdXJlCisgICAgICAg
IGlmIHRpbHRfeCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsidGlsdFgiXSA9IHRp
bHRfeAorICAgICAgICBpZiB0aWx0X3kgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25b
InRpbHRZIl0gPSB0aWx0X3kKKyAgICAgICAgaWYgdHdpc3QgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICBhY3Rpb25bInR3aXN0Il0gPSB0d2lzdAorICAgICAgICBpZiBhbHRpdHVkZV9hbmdsZSBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIGFjdGlvblsiYWx0aXR1ZGVBbmdsZSJdID0gYWx0aXR1
ZGVfYW5nbGUKKyAgICAgICAgaWYgYXppbXV0aF9hbmdsZSBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgIGFjdGlvblsiYXppbXV0aEFuZ2xlIl0gPSBhemltdXRoX2FuZ2xlCisgICAgICAgIHNlbGYu
X2FjdGlvbnMuYXBwZW5kKGFjdGlvbikKIAogICAgIGRlZiBwYXVzZShzZWxmLCBkdXJhdGlvbik6
CiAgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKHsidHlwZSI6ICJwYXVzZSIsICJkdXJhdGlv
biI6IGR1cmF0aW9ufSkKICAgICAgICAgcmV0dXJuIHNlbGYKIAotICAgIGRlZiBwb2ludGVyX21v
dmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9uZSwgb3JpZ2luPU5vbmUpOgorICAgIGRlZiBwb2lu
dGVyX21vdmUoc2VsZiwgeCwgeSwgZHVyYXRpb249Tm9uZSwgb3JpZ2luPU5vbmUsIHdpZHRoPU5v
bmUsIGhlaWdodD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU9Tm9uZSwgdGFu
Z2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9uZSwgdGlsdF95PU5vbmUsCisgICAgICAg
ICAgICAgICAgICAgICB0d2lzdD1Ob25lLCBhbHRpdHVkZV9hbmdsZT1Ob25lLCBhemltdXRoX2Fu
Z2xlPU5vbmUpOgogICAgICAgICAiIiJRdWV1ZSBhIHBvaW50ZXJNb3ZlIGFjdGlvbi4KIAogICAg
ICAgICA6cGFyYW0geDogRGVzdGluYXRpb24geC1heGlzIGNvb3JkaW5hdGUgb2YgcG9pbnRlciBp
biBDU1MgcGl4ZWxzLgpAQCAtMTMzLDE2ICsxNjgsMTAgQEAgY2xhc3MgQWN0aW9uU2VxdWVuY2Uo
b2JqZWN0KToKICAgICAgICAgOnBhcmFtIG9yaWdpbjogT3JpZ2luIG9mIGNvb3JkaW5hdGVzLCBl
aXRoZXIgInZpZXdwb3J0IiwgInBvaW50ZXIiIG9yCiAgICAgICAgICAgICAgICAgICAgICAgIGFu
IEVsZW1lbnQuIElmIE5vbmUsIHJlbW90ZSBlbmQgZGVmYXVsdHMgdG8gInZpZXdwb3J0Ii4KICAg
ICAgICAgIiIiCi0gICAgICAgIGFjdGlvbiA9IHsKLSAgICAgICAgICAgICJ0eXBlIjogInBvaW50
ZXJNb3ZlIiwKLSAgICAgICAgICAgICJ4IjogeCwKLSAgICAgICAgICAgICJ5IjogeQotICAgICAg
ICB9Ci0gICAgICAgIGlmIGR1cmF0aW9uIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYWN0aW9u
WyJkdXJhdGlvbiJdID0gZHVyYXRpb24KLSAgICAgICAgaWYgb3JpZ2luIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgYWN0aW9uWyJvcmlnaW4iXSA9IG9yaWdpbgotICAgICAgICBzZWxmLl9hY3Rp
b25zLmFwcGVuZChhY3Rpb24pCisgICAgICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJwb2ludGVy
TW92ZSIsIHg9eCwgeT15LCBkdXJhdGlvbj1kdXJhdGlvbiwgb3JpZ2luPW9yaWdpbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9d2lkdGgsIGhlaWdodD1oZWlnaHQsIHByZXNz
dXJlPXByZXNzdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YW5nZW50aWFsX3By
ZXNzdXJlPXRhbmdlbnRpYWxfcHJlc3N1cmUsIHRpbHRfeD10aWx0X3gsIHRpbHRfeT10aWx0X3ks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3aXN0PXR3aXN0LCBhbHRpdHVkZV9hbmds
ZT1hbHRpdHVkZV9hbmdsZSwgYXppbXV0aF9hbmdsZT1hemltdXRoX2FuZ2xlKQogICAgICAgICBy
ZXR1cm4gc2VsZgogCiAgICAgZGVmIHBvaW50ZXJfdXAoc2VsZiwgYnV0dG9uPTApOgpAQCAtMTUx
LDE2ICsxODAsMjEgQEAgY2xhc3MgQWN0aW9uU2VxdWVuY2Uob2JqZWN0KToKICAgICAgICAgOnBh
cmFtIGJ1dHRvbjogUG9pbnRlciBidXR0b24gdG8gcGVyZm9ybSBhY3Rpb24gd2l0aC4KICAgICAg
ICAgICAgICAgICAgICAgICAgRGVmYXVsdDogMCwgd2hpY2ggcmVwcmVzZW50cyBtYWluIGRldmlj
ZSBidXR0b24uCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlvbigicG9p
bnRlclVwIiwgYnV0dG9uKQorICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlvbigicG9pbnRlclVw
IiwgYnV0dG9uPWJ1dHRvbikKICAgICAgICAgcmV0dXJuIHNlbGYKIAotICAgIGRlZiBwb2ludGVy
X2Rvd24oc2VsZiwgYnV0dG9uPTApOgorICAgIGRlZiBwb2ludGVyX2Rvd24oc2VsZiwgYnV0dG9u
PTAsIHdpZHRoPU5vbmUsIGhlaWdodD1Ob25lLCBwcmVzc3VyZT1Ob25lLAorICAgICAgICAgICAg
ICAgICAgICAgdGFuZ2VudGlhbF9wcmVzc3VyZT1Ob25lLCB0aWx0X3g9Tm9uZSwgdGlsdF95PU5v
bmUsCisgICAgICAgICAgICAgICAgICAgICB0d2lzdD1Ob25lLCBhbHRpdHVkZV9hbmdsZT1Ob25l
LCBhemltdXRoX2FuZ2xlPU5vbmUpOgogICAgICAgICAiIiJRdWV1ZSBhIHBvaW50ZXJEb3duIGFj
dGlvbiBmb3IgYGJ1dHRvbmAuCiAKICAgICAgICAgOnBhcmFtIGJ1dHRvbjogUG9pbnRlciBidXR0
b24gdG8gcGVyZm9ybSBhY3Rpb24gd2l0aC4KICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVs
dDogMCwgd2hpY2ggcmVwcmVzZW50cyBtYWluIGRldmljZSBidXR0b24uCiAgICAgICAgICIiIgot
ICAgICAgICBzZWxmLl9wb2ludGVyX2FjdGlvbigicG9pbnRlckRvd24iLCBidXR0b24pCisgICAg
ICAgIHNlbGYuX3BvaW50ZXJfYWN0aW9uKCJwb2ludGVyRG93biIsIGJ1dHRvbj1idXR0b24sIHdp
ZHRoPXdpZHRoLCBoZWlnaHQ9aGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmVzc3VyZT1wcmVzc3VyZSwgdGFuZ2VudGlhbF9wcmVzc3VyZT10YW5nZW50aWFsX3ByZXNzdXJl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWx0X3g9dGlsdF94LCB0aWx0X3k9dGls
dF95LCB0d2lzdD10d2lzdCwgYWx0aXR1ZGVfYW5nbGU9YWx0aXR1ZGVfYW5nbGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF6aW11dGhfYW5nbGU9YXppbXV0aF9hbmdsZSkKICAgICAg
ICAgcmV0dXJuIHNlbGYKIAogICAgIGRlZiBjbGljayhzZWxmLCBlbGVtZW50PU5vbmUsIGJ1dHRv
bj0wKToKQEAgLTMzOCw2ICszNzIsNDIgQEAgY2xhc3MgRnJhbWUob2JqZWN0KToKICAgICAgICAg
cmV0dXJuIGNscyh1dWlkLCBzZXNzaW9uKQogCiAKK2NsYXNzIFNoYWRvd1Jvb3Qob2JqZWN0KToK
KyAgICBpZGVudGlmaWVyID0gInNoYWRvdy0wNzViLTRkYTEtYjZiYS1lNTc5YzJkMzIzMGEiCisK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbiwgaWQpOgorICAgICAgICAiIiIKKyAgICAg
ICAgQ29uc3RydWN0IGEgbmV3IHNoYWRvdyByb290IHJlcHJlc2VudGF0aW9uLgorCisgICAgICAg
IDpwYXJhbSBpZDogU2hhZG93IHJvb3QgVVVJRCB3aGljaCBtdXN0IGJlIHVuaXF1ZSBhY3Jvc3MK
KyAgICAgICAgICAgIGFsbCBicm93c2luZyBjb250ZXh0cy4KKyAgICAgICAgOnBhcmFtIHNlc3Np
b246IEN1cnJlbnQgYGB3ZWJkcml2ZXIuU2Vzc2lvbmBgLgorICAgICAgICAiIiIKKyAgICAgICAg
c2VsZi5pZCA9IGlkCisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKworICAgIEBjbGFz
c21ldGhvZAorICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uLCBzZXNzaW9uKToKKyAgICAgICAg
dXVpZCA9IGpzb25bU2hhZG93Um9vdC5pZGVudGlmaWVyXQorICAgICAgICByZXR1cm4gY2xzKHV1
aWQsIHNlc3Npb24pCisKKyAgICBkZWYgc2VuZF9zaGFkb3dfY29tbWFuZChzZWxmLCBtZXRob2Qs
IHVyaSwgYm9keT1Ob25lKToKKyAgICAgICAgdXJsID0gInNoYWRvdy97fS97fSIuZm9ybWF0KHNl
bGYuaWQsIHVyaSkKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29t
bWFuZChtZXRob2QsIHVybCwgYm9keSkKKworICAgIEBjb21tYW5kCisgICAgZGVmIGZpbmRfZWxl
bWVudChzZWxmLCBzdHJhdGVneSwgc2VsZWN0b3IpOgorICAgICAgICBib2R5ID0geyJ1c2luZyI6
IHN0cmF0ZWd5LAorICAgICAgICAgICAgICAgICJ2YWx1ZSI6IHNlbGVjdG9yfQorICAgICAgICBy
ZXR1cm4gc2VsZi5zZW5kX3NoYWRvd19jb21tYW5kKCJQT1NUIiwgImVsZW1lbnQiLCBib2R5KQor
CisgICAgQGNvbW1hbmQKKyAgICBkZWYgZmluZF9lbGVtZW50cyhzZWxmLCBzdHJhdGVneSwgc2Vs
ZWN0b3IpOgorICAgICAgICBib2R5ID0geyJ1c2luZyI6IHN0cmF0ZWd5LAorICAgICAgICAgICAg
ICAgICJ2YWx1ZSI6IHNlbGVjdG9yfQorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3NoYWRvd19j
b21tYW5kKCJQT1NUIiwgImVsZW1lbnRzIiwgYm9keSkKKworCiBjbGFzcyBGaW5kKG9iamVjdCk6
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlc3Npb24pOgogICAgICAgICBzZWxmLnNlc3Npb24g
PSBzZXNzaW9uCkBAIC00NzAsNyArNTQwLDcgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogCiAg
ICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuc2VuZF9jb21tYW5kKCJERUxFVEUiLCAic2Vz
c2lvbi8lcyIgJSBzZWxmLnNlc3Npb25faWQpCi0gICAgICAgIGV4Y2VwdCBlcnJvci5JbnZhbGlk
U2Vzc2lvbklkRXhjZXB0aW9uOgorICAgICAgICBleGNlcHQgKE9TRXJyb3IsIGVycm9yLkludmFs
aWRTZXNzaW9uSWRFeGNlcHRpb24pOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBmaW5hbGx5
OgogICAgICAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gTm9uZQpAQCAtNzcwLDYgKzg0MCwxMSBA
QCBjbGFzcyBFbGVtZW50KG9iamVjdCk6CiAgICAgZGVmIHNjcmVlbnNob3Qoc2VsZik6CiAgICAg
ICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJHRVQiLCAic2NyZWVuc2hvdCIp
CiAKKyAgICBAcHJvcGVydHkKKyAgICBAY29tbWFuZAorICAgIGRlZiBzaGFkb3dfcm9vdChzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJzaGFk
b3ciKQorCiAgICAgQGNvbW1hbmQKICAgICBkZWYgYXR0cmlidXRlKHNlbGYsIG5hbWUpOgogICAg
ICAgICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgImF0dHJpYnV0ZS8l
cyIgJSBuYW1lKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJp
dmVyL2Vycm9yLnB5CmluZGV4IDgzNzk2NTZkNzNkZDcyMjcxNzU1OTA1NGU3MTA0ZmNmZTYwN2Ni
MGMuLjY0MjYxMjk4NWE4NDE0ODk1N2RiOTg5M2FhZjQ4NmMxM2UxNjA2NDIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyL3dlYmRyaXZlci9lcnJvci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvZXJyb3IucHkKQEAgLTM0
LDYgKzM0LDExIEBAIGNsYXNzIFdlYkRyaXZlckV4Y2VwdGlvbihFeGNlcHRpb24pOgogICAgICAg
ICByZXR1cm4gbWVzc2FnZQogCiAKK2NsYXNzIERldGFjaGVkU2hhZG93Um9vdEV4Y2VwdGlvbihX
ZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNDA0CisgICAgc3RhdHVzX2Nv
ZGUgPSAiZGV0YWNoZWQgc2hhZG93IHJvb3QiCisKKwogY2xhc3MgRWxlbWVudENsaWNrSW50ZXJj
ZXB0ZWRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKICAgICBodHRwX3N0YXR1cyA9IDQw
MAogICAgIHN0YXR1c19jb2RlID0gImVsZW1lbnQgY2xpY2sgaW50ZXJjZXB0ZWQiCkBAIC0xMTQs
NiArMTE5LDExIEBAIGNsYXNzIE5vU3VjaEZyYW1lRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlv
bik6CiAgICAgc3RhdHVzX2NvZGUgPSAibm8gc3VjaCBmcmFtZSIKIAogCitjbGFzcyBOb1N1Y2hT
aGFkb3dSb290RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMg
PSA0MDQKKyAgICBzdGF0dXNfY29kZSA9ICJubyBzdWNoIHNoYWRvdyByb290IgorCisKIGNsYXNz
IE5vU3VjaFdpbmRvd0V4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogICAgIGh0dHBfc3Rh
dHVzID0gNDA0CiAgICAgc3RhdHVzX2NvZGUgPSAibm8gc3VjaCB3aW5kb3ciCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRy
aXZlci93ZWJkcml2ZXIvcHJvdG9jb2wucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvcHJvdG9jb2wucHkKaW5k
ZXggYzgxMWY2ZjI2ZGI3OTA4Y2FlNTI4ZDA0ZDI1ZDY4ODI3ODRlNzRhMS4uZDNmYWE4NTA4YjBl
MWM5ZmFjNDUwYjAwYmM0ZGFiYmRjMWE5N2I1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3By
b3RvY29sLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9wcm90b2NvbC5weQpAQCAtMjIsNiArMjIsOCBA
QCBjbGFzcyBFbmNvZGVyKGpzb24uSlNPTkVuY29kZXIpOgogICAgICAgICAgICAgcmV0dXJuIHt3
ZWJkcml2ZXIuRnJhbWUuaWRlbnRpZmllcjogb2JqLmlkfQogICAgICAgICBlbGlmIGlzaW5zdGFu
Y2Uob2JqLCB3ZWJkcml2ZXIuV2luZG93KToKICAgICAgICAgICAgIHJldHVybiB7d2ViZHJpdmVy
LkZyYW1lLmlkZW50aWZpZXI6IG9iai5pZH0KKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwg
d2ViZHJpdmVyLlNoYWRvd1Jvb3QpOgorICAgICAgICAgICAgcmV0dXJuIHt3ZWJkcml2ZXIuU2hh
ZG93Um9vdC5pZGVudGlmaWVyOiBvYmouaWR9CiAgICAgICAgIHJldHVybiBzdXBlcihFbmNvZGVy
LCBzZWxmKS5kZWZhdWx0KG9iaikKIAogCkBAIC00MCw2ICs0Miw4IEBAIGNsYXNzIERlY29kZXIo
anNvbi5KU09ORGVjb2Rlcik6CiAgICAgICAgICAgICByZXR1cm4gd2ViZHJpdmVyLkZyYW1lLmZy
b21fanNvbihwYXlsb2FkLCBzZWxmLnNlc3Npb24pCiAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShw
YXlsb2FkLCBkaWN0KSBhbmQgd2ViZHJpdmVyLldpbmRvdy5pZGVudGlmaWVyIGluIHBheWxvYWQ6
CiAgICAgICAgICAgICByZXR1cm4gd2ViZHJpdmVyLldpbmRvdy5mcm9tX2pzb24ocGF5bG9hZCwg
c2VsZi5zZXNzaW9uKQorICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGF5bG9hZCwgZGljdCkgYW5k
IHdlYmRyaXZlci5TaGFkb3dSb290LmlkZW50aWZpZXIgaW4gcGF5bG9hZDoKKyAgICAgICAgICAg
IHJldHVybiB3ZWJkcml2ZXIuU2hhZG93Um9vdC5mcm9tX2pzb24ocGF5bG9hZCwgc2VsZi5zZXNz
aW9uKQogICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGF5bG9hZCwgZGljdCk6CiAgICAgICAgICAg
ICByZXR1cm4ge2s6IHNlbGYub2JqZWN0X2hvb2sodikgZm9yIGssIHYgaW4gaXRlcml0ZW1zKHBh
eWxvYWQpfQogICAgICAgICByZXR1cm4gcGF5bG9hZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L3RyYW5zcG9ydC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkKaW5kZXggZTgzNmIxOWEx
NThkNWQ5OWQzZjg3ZDMxNGVjOTViYTc3ZGYxMzBhZC4uMzMxNDJkMzBmY2UwMGM4NWJhZmZmM2Zh
NjJlYWRiN2NjMDc3MmZlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9ydC5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dl
YmRyaXZlci93ZWJkcml2ZXIvdHJhbnNwb3J0LnB5CkBAIC0xNDUsNyArMTQ1LDEyIEBAIGNsYXNz
IEhUVFBXaXJlUHJvdG9jb2wob2JqZWN0KToKICAgICBkZWYgY2xvc2Uoc2VsZik6CiAgICAgICAg
ICIiIkNsb3NlcyB0aGUgY3VycmVudCBIVFRQIGNvbm5lY3Rpb24sIGlmIHRoZXJlIGlzIG9uZS4i
IiIKICAgICAgICAgaWYgc2VsZi5fY29ubjoKLSAgICAgICAgICAgIHNlbGYuX2Nvbm4uY2xvc2Uo
KQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2Nvbm4uY2xvc2UoKQor
ICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgIyBUaGUgcmVtb3Rl
IGNsb3NlZCB0aGUgY29ubmVjdGlvbgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2Vs
Zi5fY29ubiA9IE5vbmUKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBjb25uZWN0aW9uKHNlbGYp
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvYnJvd3Nlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L2Jyb3dzZXIucHkKaW5kZXggNzI2ZDU1OThmNTI0NTM5YmNl
YjEzMWQyMzBiN2EwMmJlZDM2MzYxYy4uODAwMDgwZTkxZTZkNDIzNjU4YWNiMmQ2OWRjYTE1N2M1
NjIzYzY4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHQvYnJvd3Nlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9icm93c2VyLnB5CkBAIC01NjEsNyArNTYx
LDcgQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXIpOgogICAgICAgICByZXR1cm4gc2VsZi5maW5kX25p
Z2h0bHlfYmluYXJ5KGRlc3QpCiAKICAgICBkZWYgaW5zdGFsbF9tb2pvanMoc2VsZiwgZGVzdCwg
Y2hhbm5lbCwgYnJvd3Nlcl9iaW5hcnkpOgotICAgICAgICBpZiBjaGFubmVsID09ICJuaWdodGx5
IjoKKyAgICAgICAgaWYgY2hhbm5lbCA9PSAibmlnaHRseSIgb3IgY2hhbm5lbCA9PSAiY2FuYXJ5
IjoKICAgICAgICAgICAgIHVybCA9IHNlbGYuX2xhdGVzdF9jaHJvbWl1bV9zbmFwc2hvdF91cmwo
KSArICJtb2pvanMuemlwIgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgY2hyb21lX3ZlcnNp
b24gPSBzZWxmLnZlcnNpb24oYmluYXJ5PWJyb3dzZXJfYmluYXJ5KQpAQCAtNjQ2LDEwICs2NDYs
MTAgQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXIpOgogICAgICAgICAgICAgIyBObyBDYW5hcnkgb24g
TGludXguCiAgICAgICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKG5hbWUpCiAgICAgICAg
IGlmIHVuYW1lWzBdID09ICJEYXJ3aW4iOgotICAgICAgICAgICAgaWYgY2hhbm5lbCA9PSAiY2Fu
YXJ5IjoKLSAgICAgICAgICAgICAgICByZXR1cm4gIi9BcHBsaWNhdGlvbnMvR29vZ2xlIENocm9t
ZSBDYW5hcnkuYXBwL0NvbnRlbnRzL01hY09TL0dvb2dsZSBDaHJvbWUgQ2FuYXJ5IgotICAgICAg
ICAgICAgIyBBbGwgb3RoZXIgY2hhbm5lbHMgc2hhcmUgdGhlIHNhbWUgcGF0aCBvbiBtYWNPUy4K
LSAgICAgICAgICAgIHJldHVybiAiL0FwcGxpY2F0aW9ucy9Hb29nbGUgQ2hyb21lLmFwcC9Db250
ZW50cy9NYWNPUy9Hb29nbGUgQ2hyb21lIgorICAgICAgICAgICAgc3VmZml4ID0gIiIKKyAgICAg
ICAgICAgIGlmIGNoYW5uZWwgaW4gKCJiZXRhIiwgImRldiIsICJjYW5hcnkiKToKKyAgICAgICAg
ICAgICAgICBzdWZmaXggPSAiICIgKyBjaGFubmVsLmNhcGl0YWxpemUoKQorICAgICAgICAgICAg
cmV0dXJuICIvQXBwbGljYXRpb25zL0dvb2dsZSBDaHJvbWUlcy5hcHAvQ29udGVudHMvTWFjT1Mv
R29vZ2xlIENocm9tZSVzIiAlIChzdWZmaXgsIHN1ZmZpeCkKICAgICAgICAgaWYgdW5hbWVbMF0g
PT0gIldpbmRvd3MiOgogICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguZXhwYW5kdmFycyhyIiRT
WVNURU1EUklWRVxQcm9ncmFtIEZpbGVzICh4ODYpXEdvb2dsZVxDaHJvbWVcQXBwbGljYXRpb25c
Y2hyb21lLmV4ZSIpCiAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMocGF0aCk6CkBA
IC03ODUsOCArNzg1LDggQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXIpOgogCiAgICAgICAgIHRyeToK
ICAgICAgICAgICAgIHZlcnNpb25fc3RyaW5nID0gY2FsbChiaW5hcnksICItLXZlcnNpb24iKS5z
dHJpcCgpCi0gICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKLSAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVzIiAlIGJpbmFy
eSkKKyAgICAgICAgZXhjZXB0IChzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciwgT1NFcnJv
cikgYXMgZToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxs
ICVzOiAlcyIgJSAoYmluYXJ5LCBlKSkKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAg
IG0gPSByZS5tYXRjaChyIig/Okdvb2dsZSBDaHJvbWV8Q2hyb21pdW0pICguKikiLCB2ZXJzaW9u
X3N0cmluZykKICAgICAgICAgaWYgbm90IG06CkBAIC04MDAsOCArODAwLDggQEAgY2xhc3MgQ2hy
b21lKEJyb3dzZXIpOgogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHZlcnNpb25fc3RyaW5n
ID0gY2FsbCh3ZWJkcml2ZXJfYmluYXJ5LCAiLS12ZXJzaW9uIikuc3RyaXAoKQotICAgICAgICBl
eGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6Ci0gICAgICAgICAgICBzZWxmLmxv
Z2dlci53YXJuaW5nKCJGYWlsZWQgdG8gY2FsbCAlcyIgJSB3ZWJkcml2ZXJfYmluYXJ5KQorICAg
ICAgICBleGNlcHQgKHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yLCBPU0Vycm9yKSBhcyBl
OgorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRmFpbGVkIHRvIGNhbGwgJXM6ICVz
IiAlICh3ZWJkcml2ZXJfYmluYXJ5LCBlKSkKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAg
ICAgIG0gPSByZS5tYXRjaChyIkNocm9tZURyaXZlciAoWzAtOV1bMC05Ll0qKSIsIHZlcnNpb25f
c3RyaW5nKQogICAgICAgICBpZiBub3QgbToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3JlcXVpcmVtZW50cy50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXF1
aXJlbWVudHMudHh0CmluZGV4IDkwZDBjYjZjZGM4Nzk1YzliMzllNzY0NGZkMzMwMjgzNjUzYjQ4
ZTQuLmEzODc1NDRmMzQ3NWNjODhmOTNjYTEzYmExMzQyMmNmMWYyMDgxOTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Jl
cXVpcmVtZW50cy50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHQvcmVxdWlyZW1lbnRzLnR4dApAQCAtMSwyICsxLDIgQEAKLXJlcXVl
c3RzPT0yLjI0LjAKK3JlcXVlc3RzPT0yLjI1LjEKIG1vemluZm89PTEuMi4xICAjIGh0dHBzOi8v
YnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjEyMjYKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1
bi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0L3J1bi5weQppbmRleCA1NjFiOGU4NWFhNzNmMTU2ODU0ZmUyYmEyOTIxNjRhMjg1ZTkyOGVj
Li4zZDM4MGVhYjVjYmRiMDBmZmM2MTJkZWRjNTk1MzEwZjdkMGU2MGExIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9ydW4u
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvcnVuLnB5CkBAIC0yNDgsNyArMjQ4LDcgQEAgQ29uc2lkZXIgaW5zdGFsbGluZyBjZXJ0
dXRpbCB2aWEgeW91ciBPUyBwYWNrYWdlIG1hbmFnZXIgb3IgZGlyZWN0bHkuIiIiKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw9a3dh
cmdzWyJicm93c2VyX2NoYW5uZWwiXSkKICAgICAgICAgICAgIGt3YXJnc1sicHJlZnNfcm9vdCJd
ID0gcHJlZnNfcm9vdAogCi0gICAgICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXSBpcyBOb25lOgor
ICAgICAgICBpZiBrd2FyZ3NbImhlYWRsZXNzIl0gaXMgTm9uZSBhbmQgbm90IGt3YXJnc1siZGVi
dWdfdGVzdCJdOgogICAgICAgICAgICAga3dhcmdzWyJoZWFkbGVzcyJdID0gVHJ1ZQogICAgICAg
ICAgICAgbG9nZ2VyLmluZm8oIlJ1bm5pbmcgaW4gaGVhZGxlc3MgbW9kZSwgcGFzcyAtLW5vLWhl
YWRsZXNzIHRvIGRpc2FibGUiKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMucHkK
aW5kZXggNGQxMDg3OGQ5ZDVmNTczMTBmZTBkNzMwMGQzMTJmY2FlNjdmMTkzYy4uZmVlMTljZDFj
NDk3NjlmOTcyZTg4NTZhM2IyOWZlYmE3NzEzYjBhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdGZpbGVzLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3Rlc3RmaWxlcy5weQpAQCAtMiw2ICsyLDcgQEAgaW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgbG9n
Z2luZwogaW1wb3J0IG9zCiBpbXBvcnQgcmUKK2ltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc3lz
CiAKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CkBAIC03Niw4ICs3NywxOSBA
QCBkZWYgYnJhbmNoX3BvaW50KCk6CiAgICAgICAgICAgICAgICAgICAgICBpZiBpdGVtIGFuZCBp
dGVtICE9ICJeJXMiICUgaGVhZF0KIAogICAgICAgICAjIGdldCBhbGwgY29tbWl0cyBvbiBIRUFE
IGJ1dCBub3QgcmVhY2hhYmxlIGZyb20gYW55dGhpbmcgaW4gbm90X2hlYWRzCi0gICAgICAgIGNv
bW1pdHMgPSBnaXQoInJldi1saXN0IiwgIi0tdG9wby1vcmRlciIsICItLXBhcmVudHMiLCAiSEVB
RCIsICpub3RfaGVhZHMpCisgICAgICAgIGNtZCA9IFsiZ2l0IiwgInJldi1saXN0IiwgIi0tdG9w
by1vcmRlciIsICItLXBhcmVudHMiLCAiLS1zdGRpbiIsICJIRUFEIl0KKyAgICAgICAgcHJvYyA9
IHN1YnByb2Nlc3MuUG9wZW4oY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGRpbj1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN3
ZD13cHRfcm9vdCkKKyAgICAgICAgY29tbWl0c19ieXRlcywgXyA9IHByb2MuY29tbXVuaWNhdGUo
YiJcbiIuam9pbihpdGVtLmVuY29kZSgiYXNjaWkiKSBmb3IgaXRlbSBpbiBub3RfaGVhZHMpKQor
ICAgICAgICBpZiBwcm9jLnJldHVybmNvZGUgIT0gMDoKKyAgICAgICAgICAgIHJhaXNlIHN1YnBy
b2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKHByb2MucmV0dXJuY29kZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdHNfYnl0ZXMpCisKICAgICAgICAg
Y29tbWl0X3BhcmVudHMgPSBPcmRlcmVkRGljdCgpICAjIHR5cGU6IERpY3RbVGV4dCwgTGlzdFtU
ZXh0XV0KKyAgICAgICAgY29tbWl0cyA9IGNvbW1pdHNfYnl0ZXMuZGVjb2RlKCJhc2NpaSIpCiAg
ICAgICAgIGlmIGNvbW1pdHM6CiAgICAgICAgICAgICBmb3IgbGluZSBpbiBjb21taXRzLnNwbGl0
KCJcbiIpOgogICAgICAgICAgICAgICAgIGxpbmVfY29tbWl0cyA9IGxpbmUuc3BsaXQoIiAiKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvdGVzdHMvdGVzdF9icm93c2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9icm93c2VyLnB5CmluZGV4
IDNkNWYyZDNhZTZmYWFiNzRlOWFmN2U3MjFlZTRlMjcyMDhmNTJhYjEuLjBlY2M2ZDk3YzgwMzA1
YTRiZjcwNTRiODJiNjE1ZTNkNGQ4M2U5OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfYnJvd3Nlci5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC90ZXN0cy90ZXN0X2Jyb3dzZXIucHkKQEAgLTEsOSArMSwxNCBAQAoraW1wb3J0IGxvZ2dp
bmcKK2ltcG9ydCBpbnNwZWN0CiBpbXBvcnQgbW9jaworaW1wb3J0IG9zCitpbXBvcnQgcHl0ZXN0
CiBpbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBzeXMKLWltcG9ydCBw
eXRlc3QKLWltcG9ydCBpbnNwZWN0CisKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p
Cityb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCAiLi4iLCAiLi4iLCAi
Li4iKSkKK3N5cy5wYXRoLmluc2VydCgwLCByb290KQogCiBmcm9tIHRvb2xzLndwdCBpbXBvcnQg
YnJvd3NlcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X2luc3RhbGwucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X2luc3Rh
bGwucHkKaW5kZXggZDFhYmJlZDE0MmViNWFmNjA2ZTYwNjA1Nzc4NjA5MmRkMWYwMWE3ZC4uNDE5
MTc1ZmMwMTljZGU5MWYyMjhjZDUzYTQ3MDc1NmVjMzMzYTIwNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVz
dF9pbnN0YWxsLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfaW5zdGFsbC5weQpAQCAtNCw2ICs0LDEwIEBAIGlt
cG9ydCBzeXMKIAogaW1wb3J0IHB5dGVzdAogCitoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmls
ZV9fKQorcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgIi4uIiwgIi4u
IiwgIi4uIikpCitzeXMucGF0aC5pbnNlcnQoMCwgcm9vdCkKKwogZnJvbSB0b29scy53cHQgaW1w
b3J0IGJyb3dzZXIsIHV0aWxzLCB3cHQKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X21hcmtkb3du
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvdGVzdHMvdGVzdF9tYXJrZG93bi5weQppbmRleCBkZWM5YWQ5YzQ4OTA2NzY2NjI0ZWM1OTRj
OTk0ZDUyZTcwYzk2ZmEwLi41ODJmNzJkZTY5ZTMxMjUyZGE5MWQyNWQ3NDU3ZjdhYjU2ZmFhZWM0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdC90ZXN0cy90ZXN0X21hcmtkb3duLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfbWFya2Rvd24u
cHkKQEAgLTEsMyArMSwxMCBAQAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2hlcmUgPSBvcy5w
YXRoLmRpcm5hbWUoX19maWxlX18pCityb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9p
bihoZXJlLCAiLi4iLCAiLi4iLCAiLi4iKSkKK3N5cy5wYXRoLmluc2VydCgwLCByb290KQorCiBm
cm9tIHRvb2xzLndwdCBpbXBvcnQgbWFya2Rvd24KIAogZGVmIHRlc3RfZm9ybWF0X2NvbW1lbnRf
dGl0bGUoKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfcmV2bGlzdC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfcmV2bGlz
dC5weQppbmRleCAzMDIwOGY0Y2Y2OGQ3OTU5NjZlNzg1OGRhYTA3MzBiNjhmYTNlOTBiLi5iOTlk
ZjY4YjQ4ZWUzZmZiYTM5ZmRjYjA3NDlmMjlhYzdmZTFjYjI1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0
X3Jldmxpc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9yZXZsaXN0LnB5CkBAIC0xLDQgKzEsMTEgQEAKIGlt
cG9ydCBtb2NrCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworaGVyZSA9IG9zLnBhdGguZGlybmFt
ZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIu
LiIsICIuLiIsICIuLiIpKQorc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3QpCisKIGZyb20gdG9vbHMu
d3B0IGltcG9ydCByZXZsaXN0CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9ydW4ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90
ZXN0X3J1bi5weQppbmRleCBkNTMzOTc3ZTBjNzQzNjAxMGVjOWQ4MWM4MjZkZDZmODQ1M2E5Nzg1
Li5kYWY3MGJiOTQ3MGQ1NTVjNjBmZjkzNDFhM2Q5MzlmOTYzODQzYjFhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0
cy90ZXN0X3J1bi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3J1bi5weQpAQCAtMSwxMCArMSwxNSBAQAogaW1w
b3J0IG1vY2sKK2ltcG9ydCBvcwogaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgc2h1dGlsCiBpbXBv
cnQgc3lzCiAKIGltcG9ydCBweXRlc3QKIAoraGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVf
XykKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIuLiIs
ICIuLiIpKQorc3lzLnBhdGguaW5zZXJ0KDAsIHJvb3QpCisKIGZyb20gdG9vbHMud3B0IGltcG9y
dCBydW4KIGZyb20gdG9vbHMgaW1wb3J0IGxvY2FscGF0aHMgICMgbm9xYTogRjQwMQogZnJvbSB3
cHRydW5uZXIuYnJvd3NlcnMgaW1wb3J0IHByb2R1Y3RfbGlzdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVz
dF90ZXN0ZmlsZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3Rlc3RmaWxlcy5weQppbmRleCBjNGQ0MGZmOWZkMGYw
MGE0ZmE0MzVkZGZmMzUzMjM0MTc4NTQyZWI4Li5mOTNmZThkOGJhMWVkODcxOGY4MzAzMDIxZWU2
OWEwN2MxOTE2MTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3Rlc3RmaWxlcy5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90
ZXN0X3Rlc3RmaWxlcy5weQpAQCAtMSw1ICsxLDEwIEBACiBpbXBvcnQgb3MucGF0aAogZnJvbSBt
b2NrIGltcG9ydCBwYXRjaAoraW1wb3J0IHN5cworCitoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9f
ZmlsZV9fKQorcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgIi4uIiwg
Ii4uIiwgIi4uIikpCitzeXMucGF0aC5pbnNlcnQoMCwgcm9vdCkKIAogZnJvbSB0b29scy5tYW5p
ZmVzdC5tYW5pZmVzdCBpbXBvcnQgTWFuaWZlc3QKIGZyb20gdG9vbHMud3B0IGltcG9ydCB0ZXN0
ZmlsZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3Rfd3B0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF93cHQucHkKaW5kZXgg
NzQyNDZmYWZkZDc3NzgzNTZlNzBhY2NkM2NhOThhOWFkYjIzNzM3My4uZWUzMzhhMzNmODMwNTNm
OWZlM2U4M2JkNDlmNDhiM2U3ZThhNTA2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF93cHQucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
dGVzdHMvdGVzdF93cHQucHkKQEAgLTE1LDEwICsxNSwxMSBAQCBleGNlcHQgSW1wb3J0RXJyb3I6
CiAKIGltcG9ydCBweXRlc3QKIAotZnJvbSB0b29scy53cHQgaW1wb3J0IHV0aWxzLCB3cHQKLQor
aGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgo
b3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIuLiIsICIuLiIpKQorc3lzLnBhdGguaW5zZXJ0KDAs
IHJvb3QpCiAKLWhlcmUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9f
KSkKK2Zyb20gdG9vbHMud3B0IGltcG9ydCB1dGlscywgd3B0CiAKIAogZGVmIGlzX3BvcnRfODAw
MF9pbl91c2UoKToKQEAgLTE4Myw4ICsxODQsNiBAQCBkZWYgdGVzdF9ydW5femVyb190ZXN0cygp
OgogCiBAcHl0ZXN0Lm1hcmsuc2xvdwogQHB5dGVzdC5tYXJrLnJlbW90ZV9uZXR3b3JrCi1AcHl0
ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDgpIGFuZCBzeXMucGxhdGZv
cm0gPT0gJ2RhcndpbicsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibXVsdGlwcm9jZXNz
aW5nIHRlc3QgaGFuZ3MgaW4gUHl0aG9uIDMuOCBvbiBtYWNPUyAoIzI0ODgwKSIpCiBkZWYgdGVz
dF9ydW5fZmFpbGluZ190ZXN0KCk6CiAgICAgIiIiRmFpbGluZyB0ZXN0cyBzaG91bGQgYmUgcmVw
b3J0ZWQgd2l0aCBhIG5vbi16ZXJvIGV4aXQgc3RhdHVzIHVubGVzcyB0aGUKICAgICBgLS1uby1m
YWlsLW9uLXVuZXhwZWN0ZWRgIG9wdGlvbiBoYXMgYmVlbiBzcGVjaWZpZWQuIiIiCkBAIC0yMDcs
OCArMjA2LDYgQEAgZGVmIHRlc3RfcnVuX2ZhaWxpbmdfdGVzdCgpOgogCiBAcHl0ZXN0Lm1hcmsu
c2xvdwogQHB5dGVzdC5tYXJrLnJlbW90ZV9uZXR3b3JrCi1AcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5
cy52ZXJzaW9uX2luZm8gPj0gKDMsIDgpIGFuZCBzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicsCi0g
ICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibXVsdGlwcm9jZXNzaW5nIHRlc3QgaGFuZ3MgaW4g
UHl0aG9uIDMuOCBvbiBtYWNPUyAoIzI0ODgwKSIpCiBkZWYgdGVzdF9ydW5fdmVyaWZ5X3Vuc3Rh
YmxlKHRlbXBfdGVzdCk6CiAgICAgIiIiVW5zdGFibGUgdGVzdHMgc2hvdWxkIGJlIHJlcG9ydGVk
IHdpdGggYSBub24temVybyBleGl0IHN0YXR1cy4gU3RhYmxlCiAgICAgdGVzdHMgc2hvdWxkIGJl
IHJlcG9ydGVkIHdpdGggYSB6ZXJvIGV4aXQgc3RhdHVzLiIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdG94LmluaSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rv
eC5pbmkKaW5kZXggNTA3MTcxMzU1Mzk0ODQzMjIwNDMzNzJiMTlkYTA4MGE3NjViZDg2ZS4uMDNm
NGFiNWFiYTBlYTA3MjQ2MDliOWZkYzgwOTE3Y2Y2OGVlZWQyNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdG94LmluaQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90b3guaW5pCkBAIC01LDcgKzUsOCBAQCBza2lwX21pc3NpbmdfaW50ZXJwcmV0ZXJzID0gRmFs
c2UKIAogW3Rlc3RlbnZdCiBkZXBzID0KLSAgcHl0ZXN0CisgICMgU2FtZSBhcyB0b29scy90aGly
ZF9wYXJ0eS9weXRlc3QsIGFsc28gdGhlIGxhc3QgdmVyc2lvbiB0aGF0IHN1cHBvcnRzIFB5dGhv
biAyCisgIHB5dGVzdD09NC42LjExCiAgIHB5dGVzdC1jb3YKICAgaHlwb3RoZXNpcwogICAjIG1v
Y2sgbm8gbG9uZ2VyIHN1cHBvcnRzIFB5dGhvbiAyIHNpbmNlIHY0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93cHQucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93
cHQucHkKaW5kZXggZWZhOTg1YzdjYzE3NDBlYjBmZDZlNWE4MGY5ZTg5ZTI0Y2Y3NWQzNy4uOWJj
NmNlNmNlOWU4OWYzZjBmNDIzZDAxMDgxMTI1YTRhNmY2YWRlYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvd3B0LnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3dwdC5weQpAQCAtNTAsNyArNTAsMTAgQEAgZGVmIHBhcnNlX2FyZ3MoYXJndiwgY29tbWFuZHM9
bG9hZF9jb21tYW5kcygpKToKICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9InNraXBfdmVu
dl9zZXR1cCIsCiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJXaGV0aGVyIHRvIHVzZSB0
aGUgdmlydHVhbGVudiBhcy1pcy4gTXVzdCBzZXQgLS12ZW52IGFzIHdlbGwiKQogICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoIi0tZGVidWciLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJSdW4g
dGhlIGRlYnVnZ2VyIGluIGNhc2Ugb2YgYW4gZXhjZXB0aW9uIikKLSAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KCItLXB5MyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IlJ1biB3aXRoIHB5dGhv
bjMiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcHkzIiwgYWN0aW9uPSJzdG9yZV90cnVl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlJ1biB3aXRoIFB5dGhvbiAzIChyZXF1
aXJlcyBhIGBweXRob24zYCBiaW5hcnkgb24gdGhlIFBBVEgpIikKKyAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KCItLXB5MiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJSdW4gd2l0aCBQeXRob24gMiAocmVxdWlyZXMgYSBgcHl0aG9uMmAgYmluYXJ5
IG9uIHRoZSBQQVRIKSIpCiAgICAgc3VicGFyc2VycyA9IHBhcnNlci5hZGRfc3VicGFyc2Vycyhk
ZXN0PSJjb21tYW5kIikKICAgICBmb3IgY29tbWFuZCwgcHJvcHMgaW4gaXRlcml0ZW1zKGNvbW1h
bmRzKToKICAgICAgICAgc3VicGFyc2Vycy5hZGRfcGFyc2VyKGNvbW1hbmQsIGhlbHA9cHJvcHNb
ImhlbHAiXSwgYWRkX2hlbHA9RmFsc2UpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzLnR4dAppbmRleCA0ODkzZDdiZDYyODk0OWJkY2JlNmY4YmE1NGRh
YmExZmQ0NmJkZjNlLi4xZGQ0MTc0NjViYjg4M2ExZjQ4MDI5NzhhODVjN2EwNzMyYjkwNjE2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQK
QEAgLTEsMTAgKzEsMTAgQEAKIGh0bWw1bGliPT0xLjEKIG1vemluZm89PTEuMi4xICAjIGh0dHBz
Oi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjEyMjYKLW1vemxvZz09
Ni4xCittb3psb2c9PTcuMS4wCiBtb3pkZWJ1Zz09MC4yCiAjIFBpbGxvdyA3IHJlcXVpcmVzIFB5
dGhvbiAzCiBwaWxsb3c9PTYuMi4yOyBweXRob25fdmVyc2lvbiA8PSAnMi43JyAgIyBweXVwOiA8
Ny4wCi1waWxsb3c9PTguMC4xOyBweXRob25fdmVyc2lvbiA+PSAnMy4wJwotdXJsbGliM1tzZWN1
cmVdPT0xLjI1LjExCi1yZXF1ZXN0cz09Mi4yNC4wCitwaWxsb3c9PTguMS4wOyBweXRob25fdmVy
c2lvbiA+PSAnMy4wJwordXJsbGliM1tzZWN1cmVdPT0xLjI2LjIKK3JlcXVlc3RzPT0yLjI1LjEK
IHNpeD09MS4xNS4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfYW5kcm9pZF93ZWJ2aWV3
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19hbmRyb2lkX3dlYnZpZXcudHh0CmluZGV4IGU3ZTcxNjFi
MTQyNjRhMjljYzVkOWNmNGEyNzVhYmViN2ZjYmFjZTYuLjg3NDk4MGIzMzhhN2U4NmM4MjI3ZDc2
ZmYwNTBiNDdhZjUyNjYxZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19hbmRyb2lkX3dl
YnZpZXcudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19hbmRyb2lkX3dlYnZpZXcudHh0CkBAIC0x
ICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4yLjEKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQK
aW5kZXggZTdlNzE2MWIxNDI2NGEyOWNjNWQ5Y2Y0YTI3NWFiZWI3ZmNiYWNlNi4uODc0OTgwYjMz
OGE3ZTg2YzgyMjdkNzZmZjA1MGI0N2FmNTI2NjFlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX2Nocm9tZS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKQEAgLTEgKzEg
QEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjIuMQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVf
YW5kcm9pZC50eHQKaW5kZXggZTdlNzE2MWIxNDI2NGEyOWNjNWQ5Y2Y0YTI3NWFiZWI3ZmNiYWNl
Ni4uODc0OTgwYjMzOGE3ZTg2YzgyMjdkNzZmZjA1MGI0N2FmNTI2NjFlMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
Y2hyb21lX2FuZHJvaWQudHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJv
Y2Vzcz09MS4yLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfaW9zLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19jaHJvbWVfaW9zLnR4dAppbmRleCBlN2U3MTYxYjE0MjY0YTI5Y2M1
ZDljZjRhMjc1YWJlYjdmY2JhY2U2Li44NzQ5ODBiMzM4YTdlODZjODIyN2Q3NmZmMDUwYjQ3YWY1
MjY2MWUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2lvcy50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9pb3MudHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0x
LjIuMAorbW96cHJvY2Vzcz09MS4yLjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdl
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dAppbmRleCAwYTYxMjA4ZDc3YzEyNzlhYzJi
MWIzMDE3MDI4NjdmMmQ1ZDBmYzY3Li4wZWY2NGMyMzJiY2JhMzZmYzg2M2VjNTkxNjhhZjU2Y2Y3
OTgyNGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZS50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX2VkZ2UudHh0CkBAIC0xLDIgKzEsMiBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21v
enByb2Nlc3M9PTEuMi4xCiBzZWxlbml1bT09My4xNDEuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWly
ZW1lbnRzX2VkZ2VfY2hyb21pdW0udHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2VfY2hyb21pdW0u
dHh0CmluZGV4IDNmMWVlMWY2YjIwYWM1YTMwZDE2MGQ5YzMyMTM1OGQ5M2M2ODFjZWYuLjg3NDk4
MGIzMzhhN2U4NmM4MjI3ZDc2ZmYwNTBiNDdhZjUyNjYxZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19lZGdlX2Nocm9taXVtLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZV9jaHJv
bWl1bS50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nlc3M9PTEuMi4wDQorbW96cHJvY2Vzcz09MS4y
LjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lcGlwaGFueS50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfZXBpcGhhbnkudHh0CmluZGV4IGU3ZTcxNjFiMTQyNjRhMjljYzVkOWNmNGEyNzVhYmVi
N2ZjYmFjZTYuLjg3NDk4MGIzMzhhN2U4NmM4MjI3ZDc2ZmYwNTBiNDdhZjUyNjYxZTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19lcGlwaGFueS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X2VwaXBoYW55LnR4dApAQCAtMSArMSBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21venByb2Nlc3M9
PTEuMi4xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfZmlyZWZveC50eHQKaW5kZXggOGI0NTcwM2E1NTk2ZWQwZDFmNGFlNTc3YWYzMWI4
YWZkMmYwYmM4Zi4uNDMyNDVmOTkyZDRhNDA2ZWYxNThjMDgwOWZjNGU3NDJhNzM4YzdjNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19maXJlZm94LnR4dApAQCAtMSwxMCArMSwxMCBAQAogbWFyaW9uZXR0ZV9kcml2ZXI9PTMuMS4w
CiBtb3pjcmFzaD09Mi4wLjAKLW1vemluc3RhbGw9PTIuMC4wCittb3ppbnN0YWxsPT0yLjAuMQog
bW96bGVhaz09MC4yCiBtb3puZXR3b3JrPT0xLjEuMAotbW96cHJvY2Vzcz09MS4yLjAKK21venBy
b2Nlc3M9PTEuMi4xCiBtb3pwcm9maWxlPT0yLjUuMAotbW96cnVubmVyPT04LjAuMAorbW96cnVu
bmVyPT04LjEuMAogbW96dmVyc2lvbj09Mi4zLjAKLXBzdXRpbD09NS43LjIKK3BzdXRpbD09NS44
LjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
aWUudHh0CmluZGV4IDBhNjEyMDhkNzdjMTI3OWFjMmIxYjMwMTcwMjg2N2YyZDVkMGZjNjcuLjBl
ZjY0YzIzMmJjYmEzNmZjODYzZWM1OTE2OGFmNTZjZjc5ODI0ZGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Jl
cXVpcmVtZW50c19pZS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2llLnR4dApAQCAtMSwyICsx
LDIgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjIuMQogc2VsZW5pdW09PTMu
MTQxLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19vcGVyYS50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfb3BlcmEudHh0CmluZGV4IDBhNjEyMDhkNzdjMTI3OWFjMmIxYjMwMTcwMjg2N2YyZDVk
MGZjNjcuLjBlZjY0YzIzMmJjYmEzNmZjODYzZWM1OTE2OGFmNTZjZjc5ODI0ZGMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19vcGVyYS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJh
LnR4dApAQCAtMSwyICsxLDIgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjIu
MQogc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmku
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKaW5kZXggZTdlNzE2MWIxNDI2NGEyOWNj
NWQ5Y2Y0YTI3NWFiZWI3ZmNiYWNlNi4uODc0OTgwYjMzOGE3ZTg2YzgyMjdkNzZmZjA1MGI0N2Fm
NTI2NjFlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nlc3M9PTEuMi4wCitt
b3pwcm9jZXNzPT0xLjIuMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19zYXVjZS50eHQKaW5kZXggMzRjNjZlZTIzOGI2N2Y5YmUzMGNmMjMz
MGRmOGQ5NDNmMzc0ZTI0Ny4uZWFlN2VmM2YwMDQ4NTIwNzE1NjVlNzY5ZWRkODc4MDkxOTQ4Mjli
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfc2F1Y2UudHh0CkBAIC0xLDMgKzEsMyBAQAotbW96cHJvY2Vzcz09MS4yLjAKK21venBy
b2Nlc3M9PTEuMi4xCiBzZWxlbml1bT09My4xNDEuMAotcmVxdWVzdHM9PTIuMjQuMAorcmVxdWVz
dHM9PTIuMjUuMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NlcnZvLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Jl
cXVpcmVtZW50c19zZXJ2by50eHQKaW5kZXggZTdlNzE2MWIxNDI2NGEyOWNjNWQ5Y2Y0YTI3NWFi
ZWI3ZmNiYWNlNi4uODc0OTgwYjMzOGE3ZTg2YzgyMjdkNzZmZjA1MGI0N2FmNTI2NjFlMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NlcnZvLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
c2Vydm8udHh0CkBAIC0xICsxIEBACi1tb3pwcm9jZXNzPT0xLjIuMAorbW96cHJvY2Vzcz09MS4y
LjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX3dlYmtpdC50eHQKaW5kZXggZTdlNzE2MWIxNDI2NGEyOWNjNWQ5Y2Y0YTI3NWFiZWI3ZmNi
YWNlNi4uODc0OTgwYjMzOGE3ZTg2YzgyMjdkNzZmZjA1MGI0N2FmNTI2NjFlMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtp
dC50eHQKQEAgLTEgKzEgQEAKLW1venByb2Nlc3M9PTEuMi4wCittb3pwcm9jZXNzPT0xLjIuMQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRt
bC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC5odG1sLmlu
aQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODFhZWYwNDljZDEyMmY3MzMyYzY2ZjVh
MDg3OTQ3ZTUxMmE1OWQwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC5odG1sLmlu
aQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotW3JlZnRlc3RfYW5kX2ZhaWwuaHRtbF0K
LSAgdHlwZTogcmVmdGVzdAotICBleHBlY3RlZDogRkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC5odG1sLmluaSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0
YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDQ3MmIzM2Y3NzY0YmRlNmUyYWVhN2JjMmNjZDhiZjM3MzliYWJhZDIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC5odG1sLmluaQorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotW3JlZnRlc3RfY3ljbGVfZmFpbC5odG1sXQotICB0eXBlOiByZWZ0
ZXN0Ci0gIGV4cGVjdGVkOiBGQUlMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRl
c3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwuaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sLmluaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjNkYzMzNjJmYWM0MWJiZThkZWQ0NDU4OWU4OThlZjU4OWNiMWE4OS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRl
c3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwuaW5pCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi1bcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWxdCi0gIHR5cGU6IHJlZnRlc3QKLSAgZXhwZWN0
ZWQ6IEZBSUwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21p
c21hdGNoX2ZhaWwuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9t
aXNtYXRjaF9mYWlsLmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDU1
MzM3ZTJkNjVjYjhmMjFkMmNlYWM2MmUzNWNlN2JiOTlhOTc2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X21pc21hdGNoX2ZhaWwuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LVtyZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbF0KLSAgdHlwZTogcmVmdGVzdAotICBleHBlY3Rl
ZDogRkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVm
X3RpbWVvdXQuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZf
dGltZW91dC5odG1sLmluaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODkzNjI0MWFk
MjljZDE2MmY5NjEwNzZjMmJhOGViOTYwZjc2OThjMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9y
ZWZfdGltZW91dC5odG1sLmluaQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotW3JlZnRl
c3RfcmVmX3RpbWVvdXQuaHRtbF0KLSAgdHlwZTogcmVmdGVzdAotICBleHBlY3RlZDogVElNRU9V
VApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5o
dG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbC5p
bmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkMWI5YmFkZTk1ZDdiMTAxYzhkYmY1
MTU0N2ZmYmFlYzIyNjBjMjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5odG1sLmlu
aQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotW3JlZnRlc3RfdGltZW91dC5odG1sXQot
ICB0eXBlOiByZWZ0ZXN0Ci0gIGV4cGVjdGVkOiBUSU1FT1VUCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L21ldGFkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRl
c3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlZTRmYmI3
NjM5NmViMjY0MWIzYTQwZmYxYWZhNDdmYWFlM2Q4ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbC5pbmkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFk
YXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwuaW5pCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sLmluaQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRh
L3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1sLmluaQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9ncmVlbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L2dyZWVuLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBl
MTQ1ZDYwYjU1YjM1MDI2MzlkMTVmMTBkNGQ2M2E2YjBmNzliN2QuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dy
ZWVuLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLTxsaW5rIHJl
bD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xv
cjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLXJlZi1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLXJlZi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMx
YWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1yZWYtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59
Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9ncmVlbi1yZWYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUxNDVk
NjBiNTViMzUwMjYzOWQxNWYxMGQ0ZDYzYTZiMGY3OWI3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4t
cmVmLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLTxsaW5rIHJlbD1tYXRjaCBo
cmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0K
LTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
Z3JlZW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgxNjdiYjU4ZDU3MWU3
NWY1NDkwODE2NmM1NDJhY2E4NDczMWFlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4uaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29s
b3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI2NzdlMDA2
MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQwZjAxNjc4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVkLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5k
LWNvbG9yOnJlZH0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0cHMtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLWV4cGVjdGVkLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4MTY3YmI1OGQ1NzFlNzVmNTQ5MDgxNjZj
NTQyYWNhODQ3MzFhZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0cHMtZXhwZWN0ZWQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91
bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1YTQ1ZjEwZjM1ZWI0NzJlYzEzY2M1ZGQyNDdmZjhkZjVjMjY1Mzg1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5
ICswLDAgQEAKLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+Ci06cm9v
dCB7YmFja2dyb3VuZC1jb2xvcjpyZWR9Ci08L3N0eWxlPgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
bG9jYXRpb24ucHJvdG9jb2wgPT09ICJodHRwczoiKSB7Ci0gICBkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gImdyZWVuIjsKLX0KLTwvc2NyaXB0PgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwNGZiOWFhMTUxNzZlNjE5MWRlZDVlY2NmNDQyZmNmZDZjZGNmNTY2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw1ICswLDAgQEAKLTx0aXRsZT5SZWZ0ZXN0IGNoYWluIHRoYXQgc2hvdWxkIGZhaWw8L3Rp
dGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFj
a2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5NjAxOTUzNTYyMzhmMDM1NDMyMDdlOWU2YTM1
OTkzNjFkYWViOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPlJlZnRlc3QgY2hhaW4gdGhhdCBzaG91bGQg
ZmFpbDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVm
Lmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNjc3ZTAwNjM0YmNkMTZjMzJiYThkMDI5Y2Nh
YjA0MGYwMTY3ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYtZXhwZWN0
ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2Jh
Y2tncm91bmQtY29sb3I6cmVkfQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8w
LXJlZi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1y
ZWYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDRmYjlhYTE1MTc2ZTYxOTFk
ZWQ1ZWNjZjQ0MmZjZmQ2Y2RjZjU2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8w
LXJlZi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCBj
aGFpbiB0aGF0IHNob3VsZCBmYWlsPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZC5o
dG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9jeWNsZS1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxMThiZmQ4ODQ0N2I0ODIxMmFmMjllNTQ4NjFiYjZkNTA5YTVlMWIxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1
ICswLDAgQEAKLTx0aXRsZT5PUiBtYXRjaCB0aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5r
IHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290
IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNs
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE4NGEzYjY3NDFlZTQxZmU2MTg3YTliZGM3NjZk
NzQ5MjA2YzgzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBhbGwgbWF0Y2g8
L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZV8wLXJlZi5odG1sPgot
PHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9jeWNsZV8wLXJlZi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1OWJlMGI2NDFkZWY2YmQ3M2EwY2NhNzJmMTdkMzMwNDY0MWI0OGVhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGFsbCBtYXRj
aDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlLmh0bWw+Ci08c3R5
bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfY3ljbGVfMC1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X2N5Y2xlXzAtcmVmLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExOGJmZDg4
NDQ3YjQ4MjEyYWYyOWU1NDg2MWJiNmQ1MDlhNWUxYjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
Y3ljbGVfMC1yZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPk9S
IG1hdGNoIHRoYXQgc2hvdWxkIHBhc3M8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVm
dGVzdF9jeWNsZV8xLXJlZi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6
Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8xLXJlZi1leHBlY3Rl
ZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTg0YTNiNjc0MWVlNDFmZTYx
ODdhOWJkYzc2NmQ3NDkyMDZjODNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVm
LWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5SZWZ0
ZXN0IHdpdGggY3ljbGUsIGFsbCBtYXRjaDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1y
ZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xv
cjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5YmUwYjY0MWRlZjZiZDczYTBjY2E3MmYxN2QzMzA0NjQx
YjQ4ZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPlJlZnRlc3Qgd2l0aCBjeWNsZSwgYWxsIG1hdGNo
PC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfY3ljbGUuaHRtbD4KLTxzdHls
ZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF9jeWNsZV9mYWlsLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF9jeWNsZV9mYWlsLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGM4ZTU0OGM0NjIyNTU2MzhhMzJjNDc0YTE3Nzc1OWZmNmQ3Y2NlYWYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Ci08
bGluayByZWw9bWlzbWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbD4KLTxzdHlsZT4K
LTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVz
dF9jeWNsZV9mYWlsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNs
ZV9mYWlsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3NWU3NmM0Y2M5YmI3
NjVmOGZjOGRmYzM0NDU1YWQyZWI5YmM0MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVf
ZmFpbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3
aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5
Y2xlX2ZhaWxfMC1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdy
ZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVm
LWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3NWU3NmM0Y2M5
YmI3NjVmOGZjOGRmYzM0NDU1YWQyZWI5YmM0MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3lj
bGVfZmFpbF8wLXJlZi1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBA
Ci08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Ci08bGluayByZWw9bWF0
Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHti
YWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9m
YWlsXzAtcmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9m
YWlsXzAtcmVmLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4ZTU0OGM0NjIy
NTU2MzhhMzJjNDc0YTE3Nzc1OWZmNmQ3Y2NlYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3lj
bGVfZmFpbF8wLXJlZi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+
UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Ci08bGluayByZWw9bWlzbWF0Y2ggaHJl
Zj1yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNv
bG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaC1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2gtZXhwZWN0ZWQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgxNjdiYjU4ZDU3MWU3NWY1NDkwODE2NmM1
NDJhY2E4NDczMWFlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaC1leHBlY3RlZC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3Vu
ZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2guaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDMzM2NjNmMxZWNkZjIwMDBlNGIxMTg1NjU2NjE3NjFiODc2YTcyOTku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUg
KzAsMCBAQAotPHRpdGxlPnJlbD1tYXRjaCB0aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5r
IHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1j
b2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBl
Y3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjY3N2UwMDYzNGJjZDE2
YzMyYmE4ZDAyOWNjYWIwNDBmMDE2NzgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2Zh
aWwtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgot
OnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9t
YXRjaF9mYWlsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9m
YWlsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MjcyZWY3NGRhODczMzdh
MDIyM2ZjYjAwZjA1M2NlYmE1ZmI1MmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFp
bC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+cmVsPW1hdGNoIHRo
YXQgc2hvdWxkIGZhaWw8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Ci08
c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWlzbWF0Y2gtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X21pc21hdGNoLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDJiNjc3ZTAwNjM0YmNkMTZjMzJiYThkMDI5Y2NhYjA0MGYwMTY3ODAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQotPC9zdHls
ZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfbWlzbWF0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWY1ZmEwNzUwZDgzYjY3NTljMzBlYTQzNGZjNTA5MjU1MjQ2Y2Y4My4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF9taXNtYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0
bGU+cmVsPW1pc21hdGNoIHRoYXQgc2hvdWxkIHBhc3M8L3RpdGxlPgotPGxpbmsgcmVsPW1pc21h
dGNoIGhyZWY9cmVkLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVl
bn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBlY3Rl
ZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODE2N2JiNThkNTcxZTc1ZjU0
OTA4MTY2YzU0MmFjYTg0NzMxYWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2Zh
aWwtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgot
OnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X21pc21hdGNoX2ZhaWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21p
c21hdGNoX2ZhaWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQxNjBjNGZj
MjAwY2E5NzYzMWIxODUwNTg0N2Q1MWZkNzYyYWJhOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9t
aXNtYXRjaF9mYWlsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5y
ZWw9bWlzbWF0Y2ggdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Ci08bGluayByZWw9bWlzbWF0Y2gg
aHJlZj1ncmVlbi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59
Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQwZjAxNjc4
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwzICswLDAgQEAKLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0K
LTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfb3JfMC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3Rfb3JfMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
YTUxZGUyMTY0NDEwM2E5M2Y1OWQ0YzU2NTQyOGNjMmQxNjA2ZTU0Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X29yXzAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPHRpdGxlPk9S
IG1hdGNoIHRoYXQgc2hvdWxkIHBhc3M8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVk
Lmh0bWw+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgotPHN0eWxlPgotOnJvb3Qg
e2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90
aW1lb3V0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9y
ZWZfdGltZW91dC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
NGNiYjcxZTBjM2M0Mjg2YzAwZDRjMDFlY2U2YWIxYTFiZWM2MWI4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X3JlZl90aW1lb3V0LWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICsw
LDAgQEAKLTxodG1sIGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgotPHRpdGxlPnJlbD1tYXRjaCB0aGF0
IHNob3VsZCB0aW1lIG91dCBpbiB0aGUgcmVmPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVm
PXJlZnRlc3RfcmVmX3RpbWVvdXQtcmVmLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3Vu
ZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWFmNjhmNWNiNWZhMDRjZDM2NWE3MTkxZWVjZWFmYTM1Y2MzY2U0YS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF9yZWZfdGltZW91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08
aHRtbD4KLTx0aXRsZT5yZWw9bWF0Y2ggdGhhdCBzaG91bGQgdGltZSBvdXQgaW4gdGhlIHJlZjwv
dGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X3JlZl90aW1lb3V0LXJlZi5odG1s
PgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3Rl
ZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODE2N2JiNThkNTcxZTc1ZjU0
OTA4MTY2YzU0MmFjYTg0NzMxYWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQtZXhw
ZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qg
e2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVv
dXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjEwZTY3NmJmMDA1MmU3YmNiZTJlOTIxNGE2
OTBiM2NlNjY1ZGE4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1lb3V0Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxodG1sIGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgotPHRp
dGxlPnJlbD1tYXRjaCB0aGF0IHNob3VsZCB0aW1lb3V0PC90aXRsZT4KLTxsaW5rIHJlbD1tYXRj
aCBocmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVl
bn0KLTwvc3R5bGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVz
dF93YWl0XzAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X3dhaXRfMC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjY3
N2UwMDYzNGJjZDE2YzMyYmE4ZDAyOWNjYWIwNDBmMDE2NzgwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X3dhaXRfMC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi08
c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpyZWR9Ci08L3N0eWxlPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X3dhaXRfMC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2Fp
dF8wLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmOTI3MTVjNjFlN2Q5MjJh
OTQ5NWU5NzM3Yzk5NmU3YzA2YzM3ZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08aHRtbCBjbGFzcz0icmVmdGVzdC13
YWl0Ij4KLTx0aXRsZT5yZWw9bWF0Y2ggdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Ci08bGluayBy
ZWw9bWF0Y2ggaHJlZj1yZWQuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9y
OnJlZH0KLTwvc3R5bGU+Ci08c2NyaXB0Pgotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJncmVlbiI7Ci0g
IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc05hbWUgPSAiIjsKLX0sIDIwMDApOwotPC9z
Y3JpcHQ+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllZDEwMDgxNDFlY2ViZjVkMzdhYjA0MjI4MWQy
NTRlYjA2Y2ZjNGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsNTMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVu
LWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLWV4cGVj
dGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4uaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLWV4cGVj
dGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdC5odHRwcy5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwtZXhwZWN0ZWQuaHRtbAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi1leHBlY3RlZC5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLWV4cGVjdGVkLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1yZWYtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8xLXJlZi1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWwtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfbWlzbWF0Y2gtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X21pc21hdGNoLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9t
aXNtYXRjaF9mYWlsLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF9taXNtYXRjaF9mYWlsLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVz
dF9vcl8wLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9v
cl8wLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC1l
eHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVv
dXQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQtZXhwZWN0
ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC1leHBlY3RlZC5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3RveC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCmluZGV4IDc5OGY2NGEzZTQyMmU0ZGEwYjRlNGI2ZmUx
NWQ2ODZiMjBhZjU3MmUuLmIzOWI1ZWI3ZTk1YmYzMjdkY2EzOWI2YTMyMjk1MzgxZGEyZDZjOTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3RveC5pbmkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdG94LmluaQpAQCAtNyw3ICs3LDggQEAg
c2tpcF9taXNzaW5nX2ludGVycHJldGVycyA9IEZhbHNlCiAKIFt0ZXN0ZW52XQogZGVwcyA9Ci0g
ICAgIHB5dGVzdD49Mi45CisgICAgICMgU2FtZSBhcyB0b29scy90aGlyZF9wYXJ0eS9weXRlc3Qs
IGFsc28gdGhlIGxhc3QgdmVyc2lvbiB0aGF0IHN1cHBvcnRzIFB5dGhvbiAyCisgICAgIHB5dGVz
dD09NC42LjExCiAgICAgIHB5dGVzdC1jb3YKICAgICAgcHl0ZXN0LXhkaXN0CiAgICAgICMgbW9j
ayBubyBsb25nZXIgc3VwcG9ydHMgUHl0aG9uIDIgc2luY2UgdjQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYmxheWVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKaW5kZXggNjExMDQ1MGI3MjgyYzZjZmE0YWZhY2ExZWMy
YjJlZjU4MGY3YTcxNC4uZjY4MzEyZjIzMWJiYTRmMDhhYmE3ZGVmYmMyNzJhODZlOThhZjI0NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKQEAgLTI4LDE0ICsy
OCwxNCBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdz
LCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwg
cnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9n
Z2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJl
dHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCiAgICAgICAgICAgICAiZGV2aWNlX3Nl
cmlhbCI6IGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9i
aW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2
ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CiAKIAotZGVmIGV4ZWN1dG9y
X2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZv
X2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29u
ZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAq
Kmt3YXJncyk6CiAgICAgIyBVc2UgdXBkYXRlKCkgdG8gbW9kaWZ5IHRoZSBnbG9iYWwgbGlzdCBp
biBwbGFjZS4KICAgICBfd3B0c2VydmVfcG9ydHMudXBkYXRlKHNldCgKQEAgLTQzLDcgKzQzLDcg
QEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21h
bmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dz
J10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWyd3c3MnXQogICAgICkpCiAKLSAgICBleGVjdXRv
cl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZp
ZywKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwg
dGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgIGRlbCBleGVj
dXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdWyJnb29nOmNocm9tZU9wdGlvbnMiXVsicHJlZnMi
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYnZpZXcucHkKaW5kZXggZDA3NzM4NzM1
MDhmZTdmMzI3YWZlNzUxZDMyZWFkZGJlY2VhOWEzZi4uM2NkZTI0OGI0NDY1Y2QxMGE4NmE4MTNk
ZTg1NTE4MDhjNDJkYmYxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJv
aWRfd2Vidmlldy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJ2aWV3
LnB5CkBAIC0yOCwxNCArMjgsMTQgQEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJl
cXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3
YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJy
b3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoq
a3dhcmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAg
ICAgICAgImRldmljZV9zZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwiXSwKICAgICAgICAg
ICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCiAgICAg
ICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQog
CiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9t
YW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3Rf
dHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAg
ICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgICMgVXNlIHVwZGF0ZSgpIHRvIG1vZGlmeSB0
aGUgZ2xvYmFsIGxpc3QgaW4gcGxhY2UuCiAgICAgX3dwdHNlcnZlX3BvcnRzLnVwZGF0ZShzZXQo
CkBAIC00Myw3ICs0Myw3IEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJf
Y29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICBzZXJ2ZXJfY29u
ZmlnWydwb3J0cyddWyd3cyddICsgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnd3NzJ10KICAgICAp
KQogCi0gICAgZXhlY3V0b3Jfa3dhcmdzID0gY2hyb21lX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gY2hyb21lX2V4ZWN1dG9y
X2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2Rh
dGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJn
cykKICAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsiZ29vZzpjaHJvbWVP
cHRpb25zIl1bInByZWZzIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJv
bWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5CmluZGV4IGZkMjUxYTQzMWMz
MDZmM2JiM2IxMmI4NDhmNTQ4ZDhlZmYwN2E0NjYuLmQzZTI3YTljNWY2NWY3YWE3NTQyNjNjYjU3
ODQ2Mjg1ZDI4NTc1NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZS5weQpAQCAtMjgsMTMgKzI4LDEz
IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3
ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5f
aW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIs
IHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJu
IHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmlu
YXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVy
X2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQogCiAKLWRlZiBleGVjdXRvcl9r
d2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19k
YXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgc2VydmVyX2NvbmZp
ZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKipr
d2FyZ3MpOgogICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3Rf
dHlwZSwgc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2Nocm9tZV9hbmRyb2lkLnB5CmluZGV4IDQ4NWI5NmYzMWU3ZGVhZmRkZGY4MmZkMzc1YWVhN2Q3
NDk3ZTlmYTcuLmQ3ZTNlMjEwMTIxNjlmZGYxMmU0N2QzYmM4NzU1MmY0NmM3NzljZjkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2FuZHJvaWQucHkKQEAgLTI5LDE0ICsyOSwxNCBAQCBk
ZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJp
dmVyX2JpbmFyeSIpCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9f
ZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0
X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7InBh
Y2thZ2VfbmFtZSI6IGt3YXJnc1sicGFja2FnZV9uYW1lIl0sCiAgICAgICAgICAgICAiZGV2aWNl
X3NlcmlhbCI6IGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdLAogICAgICAgICAgICAgIndlYmRyaXZl
cl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJk
cml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CiAKIAotZGVmIGV4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9p
bmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJf
Y29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAg
ICAqKmt3YXJncyk6CiAgICAgIyBVc2UgdXBkYXRlKCkgdG8gbW9kaWZ5IHRoZSBnbG9iYWwgbGlz
dCBpbiBwbGFjZS4KICAgICBfd3B0c2VydmVfcG9ydHMudXBkYXRlKHNldCgKQEAgLTQ0LDcgKzQ0
LDcgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hl
X21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11b
J3dzJ10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWyd3c3MnXQogICAgICkpCiAKLSAgICBleGVj
dXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2Nv
bmZpZywKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKGxvZ2dl
ciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgICMgUmVt
b3ZlIHVuc3VwcG9ydGVkIG9wdGlvbnMgb24gbW9iaWxlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2Nocm9tZV9pb3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21l
X2lvcy5weQppbmRleCA2ZGIwMTg4ZTU1ZWJmZjhkM2E0MGY5YTE1ZGM3MTQ0MTllZGFjYmViLi5l
Y2RiYzNhMTc2MjM5MDdkYzliZDk5NTA1ZDFlNWVlMGJjNzQ3YzdiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lvcy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvY2hyb21lX2lvcy5weQpAQCAtMjIsMTIgKzIyLDEyIEBAIGRlZiBjaGVja19hcmdzKCoqa3dh
cmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCi1k
ZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dh
cmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0
YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3
YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjog
a3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRl
c3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2Rl
ZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hl
X21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToK
ICAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX3Nwa2lfY2VydHMucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvY2hyb21lX3Nwa2lfY2VydHMucHkKaW5kZXggYzZlNTgzNTgxODgyZGJhYmU4MTc2MDBi
MWYxMDQ3ZTQ4YTBkMWRjYi4uNWVlNTE3OTQyYmUwYmFmMDg1NTM4OTdlYzc3OThlNjk2MmU3MjZh
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9zcGtpX2NlcnRzLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfc3BraV9jZXJ0cy5weQpAQCAtMiw3
ICsyLDcgQEAKICMgRE8gTk9UIEVESVQgTUFOVUFMTFkuCiAKICMgdG9vbHMvY2VydHMvd2ViLXBs
YXRmb3JtLnRlc3QucGVtCi1XUFRfRklOR0VSUFJJTlQgPSAnSGFHamNtZldqY1VSREVua1VFV1oy
OFlBa1lvNXRNMTJoeEFNUTJaMzc1MD0nCitXUFRfRklOR0VSUFJJTlQgPSAnT1hiNE84cGNESThO
d3gzS3pxTnVUYkoxWm5mNTJWakVWV2lZWUNqSGNJTT0nCiAKICMgc2lnbmVkLWV4Y2hhbmdlL3Jl
c291cmNlcy8xMjcuMC4wLjEuc3hnLnBlbQogU1hHX1dQVF9GSU5HRVJQUklOVCA9ICcwUnQ0bVQ2
U0pYb2pFTUhUbktubEovaEJLTUJjSTRrdGVCbGhSMWVUVGRrPScKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9lZGdlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkK
aW5kZXggYmRiMzdiM2Y4NGMyY2RjNDAxMGE3YTI4OWE1MzU2NDgyMmEzYTM0Yy4uYjkwODY4NGJi
YjNlN2VhZTk5ODIxNzNlZDI2YTlhOWUzOWI2YjQzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2VkZ2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkKQEAg
LTM0LDcgKzM0LDcgQEAgZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJn
KGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0
X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dh
cmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToK
ICAgICByZXR1cm4geyJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5
Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJf
YXJncyIpLAogICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6IGdldF90aW1lb3V0X211
bHRpcGxpZXIodGVzdF90eXBlLApAQCAtNDIsNyArNDIsNyBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3Mo
dGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKX0K
IAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVf
bWFuYWdlciwgcnVuX2luZm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAg
ICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4
ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwg
Kiprd2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZWNocm9taXVt
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2VjaHJvbWl1bS5weQppbmRleCAwYmNiMThj
ZGMwY2NhNjQzNzY5MDZlOTE1NmIwN2M0YTljYzdkY2RiLi4xZDQ1OTgzYTExZWYwZDNmZGNmYWJk
NmU4MWZlMjk3NGFiMmQ2OGViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRn
ZWNocm9taXVtLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlY2hyb21pdW0ucHkK
QEAgLTEsMTE2ICsxLDExNiBAQAotZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JC
cm93c2VyLCByZXF1aXJlX2FyZw0KLWZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRp
cGxpZXIgICAjIG5vcWE6IEY0MDENCi1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRn
ZUNocm9taXVtRHJpdmVyU2VydmVyDQotZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jf
a3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzDQotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRv
cndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6
IEY0MDENCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJp
dmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxDQotZnJvbSAuLmV4ZWN1dG9ycy5leGVj
dXRvcmVkZ2VjaHJvbWl1bSBpbXBvcnQgRWRnZUNocm9taXVtRHJpdmVyV2RzcGVjRXhlY3V0b3Ig
ICMgbm9xYTogRjQwMQ0KLQ0KLQ0KLV9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZWRnZWNo
cm9taXVtIiwNCi0gICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLA0K
LSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiRWRnZUNocm9taXVtQnJvd3NlciIsDQotICAg
ICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3Ro
YXJuZXNzRXhlY3V0b3IiLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0
IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsDQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJFZGdlQ2hyb21pdW1Ecml2ZXJXZHNwZWNFeGVjdXRvciJ9LA0KLSAg
ICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwNCi0gICAg
ICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwNCi0gICAg
ICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLA0KLSAgICAgICAgICAgICAg
ICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwNCi0gICAgICAgICAgICAgICAgICJ0aW1l
b3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciIsfQ0KLQ0KLQ0KLWRlZiBj
aGVja19hcmdzKCoqa3dhcmdzKToNCi0gICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVy
X2JpbmFyeSIpDQotDQotDQotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9f
ZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6DQotICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1si
YmluYXJ5Il0sDQotICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRy
aXZlcl9iaW5hcnkiXSwNCi0gICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0
KCJ3ZWJkcml2ZXJfYXJncyIpfQ0KLQ0KLQ0KLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLA0KLSAgICAgICAg
ICAgICAgICAgICAgKiprd2FyZ3MpOg0KLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsDQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsDQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQ0KLSAg
ICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUNCi0gICAgZXhlY3V0
b3Jfa3dhcmdzWyJzdXBwb3J0c19lYWdlcl9wYWdlbG9hZCJdID0gRmFsc2UNCi0NCi0gICAgY2Fw
YWJpbGl0aWVzID0gew0KLSAgICAgICAgIm1zOmVkZ2VPcHRpb25zIjogew0KLSAgICAgICAgICAg
ICJwcmVmcyI6IHsNCi0gICAgICAgICAgICAgICAgInByb2ZpbGUiOiB7DQotICAgICAgICAgICAg
ICAgICAgICAiZGVmYXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogew0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICJwb3B1cHMiOiAxDQotICAgICAgICAgICAgICAgICAgICB9DQotICAgICAg
ICAgICAgICAgIH0NCi0gICAgICAgICAgICB9LA0KLSAgICAgICAgICAgICJ1c2VBdXRvbWF0aW9u
RXh0ZW5zaW9uIjogRmFsc2UsDQotICAgICAgICAgICAgImV4Y2x1ZGVTd2l0Y2hlcyI6IFsiZW5h
YmxlLWF1dG9tYXRpb24iXSwNCi0gICAgICAgICAgICAidzNjIjogVHJ1ZQ0KLSAgICAgICAgfQ0K
LSAgICB9DQotDQotICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOg0KLSAgICAgICAg
Y2FwYWJpbGl0aWVzWyJwYWdlTG9hZFN0cmF0ZWd5Il0gPSAibm9uZSINCi0NCi0gICAgZm9yIChr
d2FyZywgY2FwYWJpbGl0eSkgaW4gWygiYmluYXJ5IiwgImJpbmFyeSIpLCAoImJpbmFyeV9hcmdz
IiwgImFyZ3MiKV06DQotICAgICAgICBpZiBrd2FyZ3Nba3dhcmddIGlzIG5vdCBOb25lOg0KLSAg
ICAgICAgICAgIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVtjYXBhYmlsaXR5XSA9IGt3
YXJnc1trd2FyZ10NCi0NCi0gICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdOg0KLSAgICAgICAgaWYg
ImFyZ3MiIG5vdCBpbiBjYXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl06DQotICAgICAgICAg
ICAgY2FwYWJpbGl0aWVzWyJtczplZGdlT3B0aW9ucyJdWyJhcmdzIl0gPSBbXQ0KLSAgICAgICAg
aWYgIi0taGVhZGxlc3MiIG5vdCBpbiBjYXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl1bImFy
Z3MiXToNCi0gICAgICAgICAgICBjYXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl1bImFyZ3Mi
XS5hcHBlbmQoIi0taGVhZGxlc3MiKQ0KLQ0KLSAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxp
dGllcyJdID0gY2FwYWJpbGl0aWVzDQotDQotICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MNCi0N
Ci0NCi1kZWYgZW52X2V4dHJhcygqKmt3YXJncyk6DQotICAgIHJldHVybiBbXQ0KLQ0KLQ0KLWRl
ZiBlbnZfb3B0aW9ucygpOg0KLSAgICByZXR1cm4ge30NCi0NCi0NCi1jbGFzcyBFZGdlQ2hyb21p
dW1Ccm93c2VyKEJyb3dzZXIpOg0KLSAgICAiIiJNaWNyb3NvZnRFZGdlIGlzIGJhY2tlZCBieSBN
U0VkZ2VEcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gNCi0gICAgYGB3cHRydW5uZXIu
d2ViZHJpdmVyLkVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcmBgLg0KLSAgICAiIiINCi0NCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJtc2Vk
Z2Vkcml2ZXIiLA0KLSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6DQotICAg
ICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIE1pY3Jvc29mdEVkZ2UuICBU
aGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMNCi0gICAgICAgIHRoZSBicm93c2VyIGJpbmFyeSB0
byB1c2UgZm9yIHRlc3RpbmcuIiIiDQotICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxv
Z2dlcikNCi0gICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5DQotICAgICAgICBzZWxmLnNlcnZl
ciA9IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwNCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LA0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJn
cykNCi0NCi0gICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToNCi0gICAgICAgIHNlbGYuc2Vy
dmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQ0KLQ0KLSAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxz
ZSk6DQotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQ0KLQ0KLSAgICBkZWYg
cGlkKHNlbGYpOg0KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZA0KLQ0KLSAgICBkZWYg
aXNfYWxpdmUoc2VsZik6DQotICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRl
cyB0aGUgZHJpdmVyIGlzIGFsaXZlLA0KLSAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhp
bmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbg0KLSAgICAgICAgIyBpcyBhY3RpdmUu
DQotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQ0KLQ0KLSAgICBkZWYgY2xl
YW51cChzZWxmKToNCi0gICAgICAgIHNlbGYuc3RvcCgpDQotDQotICAgIGRlZiBleGVjdXRvcl9i
cm93c2VyKHNlbGYpOg0KLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2
ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQ0KK2Zyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4
ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0
X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9y
dCBFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIKK2Zyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1
dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9ycy5leGVj
dXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5v
cWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJE
cml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMuZXhl
Y3V0b3JlZGdlY2hyb21pdW0gaW1wb3J0IEVkZ2VDaHJvbWl1bURyaXZlcldkc3BlY0V4ZWN1dG9y
ICAjIG5vcWE6IEY0MDEKKworCitfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImVkZ2VjaHJv
bWl1bSIsCisgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAg
ICAgICAgICAgICAgICAiYnJvd3NlciI6ICJFZGdlQ2hyb21pdW1Ccm93c2VyIiwKKyAgICAgICAg
ICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVz
c0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldl
YkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
d2RzcGVjIjogIkVkZ2VDaHJvbWl1bURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCisgICAgICAgICAg
ICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisgICAgICAgICAgICAg
ICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAgICAgICAgICAgICAg
ICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJlbnZfb3B0
aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxp
ZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciIsfQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dh
cmdzKToKKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKKworCitk
ZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZp
ZywgKiprd2FyZ3MpOgorICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCisg
ICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJd
LAorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2Fy
Z3MiKX0KKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJf
Y29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAg
ICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3Mo
dGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dh
cmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJzdXBw
b3J0c19lYWdlcl9wYWdlbG9hZCJdID0gRmFsc2UKKworICAgIGNhcGFiaWxpdGllcyA9IHsKKyAg
ICAgICAgIm1zOmVkZ2VPcHRpb25zIjogeworICAgICAgICAgICAgInByZWZzIjogeworICAgICAg
ICAgICAgICAgICJwcm9maWxlIjogeworICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdF9jb250
ZW50X3NldHRpbmdfdmFsdWVzIjogeworICAgICAgICAgICAgICAgICAgICAgICAgInBvcHVwcyI6
IDEKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAidXNlQXV0b21hdGlvbkV4dGVuc2lvbiI6IEZhbHNlLAorICAgICAg
ICAgICAgImV4Y2x1ZGVTd2l0Y2hlcyI6IFsiZW5hYmxlLWF1dG9tYXRpb24iXSwKKyAgICAgICAg
ICAgICJ3M2MiOiBUcnVlCisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiB0ZXN0X3R5cGUgPT0g
InRlc3RoYXJuZXNzIjoKKyAgICAgICAgY2FwYWJpbGl0aWVzWyJwYWdlTG9hZFN0cmF0ZWd5Il0g
PSAibm9uZSIKKworICAgIGZvciAoa3dhcmcsIGNhcGFiaWxpdHkpIGluIFsoImJpbmFyeSIsICJi
aW5hcnkiKSwgKCJiaW5hcnlfYXJncyIsICJhcmdzIildOgorICAgICAgICBpZiBrd2FyZ3Nba3dh
cmddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY2FwYWJpbGl0aWVzWyJtczplZGdlT3B0aW9u
cyJdW2NhcGFiaWxpdHldID0ga3dhcmdzW2t3YXJnXQorCisgICAgaWYga3dhcmdzWyJoZWFkbGVz
cyJdOgorICAgICAgICBpZiAiYXJncyIgbm90IGluIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlv
bnMiXToKKyAgICAgICAgICAgIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVsiYXJncyJd
ID0gW10KKyAgICAgICAgaWYgIi0taGVhZGxlc3MiIG5vdCBpbiBjYXBhYmlsaXRpZXNbIm1zOmVk
Z2VPcHRpb25zIl1bImFyZ3MiXToKKyAgICAgICAgICAgIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9w
dGlvbnMiXVsiYXJncyJdLmFwcGVuZCgiLS1oZWFkbGVzcyIpCisKKyAgICBleGVjdXRvcl9rd2Fy
Z3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzCisKKyAgICByZXR1cm4gZXhlY3V0b3Jf
a3dhcmdzCisKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisK
K2RlZiBlbnZfb3B0aW9ucygpOgorICAgIHJldHVybiB7fQorCisKK2NsYXNzIEVkZ2VDaHJvbWl1
bUJyb3dzZXIoQnJvd3Nlcik6CisgICAgIiIiTWljcm9zb2Z0RWRnZSBpcyBiYWNrZWQgYnkgTVNF
ZGdlRHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCisgICAgYGB3cHRydW5uZXIud2Vi
ZHJpdmVyLkVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcmBgLgorICAgICIiIgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJtc2VkZ2Vkcml2
ZXIiLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgIiIi
Q3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBNaWNyb3NvZnRFZGdlLiAgVGhlIGBiaW5h
cnlgIGFyZ3VtZW50IGdpdmVzCisgICAgICAgIHRoZSBicm93c2VyIGJpbmFyeSB0byB1c2UgZm9y
IHRlc3RpbmcuIiIiCisgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQorICAg
ICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQorICAgICAgICBzZWxmLnNlcnZlciA9IEVkZ2VDaHJv
bWl1bURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisKKyAgICBkZWYg
c3RhcnQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1G
YWxzZSkKKworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgc2VsZi5z
ZXJ2ZXIuc3RvcChmb3JjZT1mb3JjZSkKKworICAgIGRlZiBwaWQoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLnNlcnZlci5waWQKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAg
IyBUT0RPKGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKKyAg
ICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIg
c2Vzc2lvbgorICAgICAgICAjIGlzIGFjdGl2ZS4KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVy
LmlzX2FsaXZlKCkKKworICAgIGRlZiBjbGVhbnVwKHNlbGYpOgorICAgICAgICBzZWxmLnN0b3Ao
KQorCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAgICAgIHJldHVybiBFeGVj
dXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lcGlwaGFueS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9lcGlwaGFueS5weQppbmRleCBmNmM0YzYwMmEzOGMwNDM2MzdjZjlkYmM4YmJiNTM1MGVj
OTQ1MjdlLi5hMzM4NDQzNmExZDY0M2M2NTc2ZWJiNzMxZGI1YzQ1OGY4YWQyNjg3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZXBpcGhhbnkucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2VwaXBoYW55LnB5CkBAIC0yNSw3ICsyNSw3IEBAIGRlZiBjaGVja19hcmdzKCoq
a3dhcmdzKToKICAgICBwYXNzCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2Vy
LCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgICMgV29y
a2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYnNvdXAvaXNzdWVz
LzE3MgogICAgIHdlYmRyaXZlcl9yZXF1aXJlZF9hcmdzID0gWyItLWhvc3Q9MTI3LjAuMC4xIl0K
ICAgICB3ZWJkcml2ZXJfYXJncyA9IG1heWJlX2FkZF9hcmdzKHdlYmRyaXZlcl9yZXF1aXJlZF9h
cmdzLCBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpKQpAQCAtNDksNyArNDksNyBAQCBkZWYg
Y2FwYWJpbGl0aWVzKHNlcnZlcl9jb25maWcsICoqa3dhcmdzKToKICAgICAgICAgICAgICJjZXJ0
aWZpY2F0ZXMiOiBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdChzZXJ2ZXJfY29uZmlnLmRvbWFpbnNf
c2V0LCBrd2FyZ3NbImhvc3RfY2VydF9wYXRoIl0pfX0KIAogCi1kZWYgZXhlY3V0b3Jfa3dhcmdz
KHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwK
K2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNh
Y2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdz
KToKICAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUs
IHNlcnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9m
aXJlZm94LnB5CmluZGV4IDc1Y2ViYjlmN2YxMDNkYWEwZTM1ZDk2ZmRkYzY3ZDdhMWQ0OWZkMjcu
LjgzYTg4M2I5OGI1ZTFhOGU2MzlhYjI1MTY4ZWJlZDVkZmJlZmMxMDggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9maXJlZm94LnB5CkBAIC01MywxMSArNTMsMTEgQEAgZGVmIGdldF90aW1lb3V0X211bHRpcGxp
ZXIodGVzdF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CiAgICAgaWYga3dhcmdzWyJ0
aW1lb3V0X211bHRpcGxpZXIiXSBpcyBub3QgTm9uZToKICAgICAgICAgcmV0dXJuIGt3YXJnc1si
dGltZW91dF9tdWx0aXBsaWVyIl0KICAgICBpZiB0ZXN0X3R5cGUgPT0gInJlZnRlc3QiOgotICAg
ICAgICBpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2Fu
Iik6CisgICAgICAgIGlmIHJ1bl9pbmZvX2RhdGFbImRlYnVnIl0gb3IgcnVuX2luZm9fZGF0YS5n
ZXQoImFzYW4iKSBvciBydW5faW5mb19kYXRhLmdldCgidHNhbiIpOgogICAgICAgICAgICAgcmV0
dXJuIDQKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiAyCi0gICAgZWxpZiBydW5f
aW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIik6CisgICAgZWxp
ZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9yIHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIikgb3Ig
cnVuX2luZm9fZGF0YS5nZXQoInRzYW4iKToKICAgICAgICAgaWYgcnVuX2luZm9fZGF0YS5nZXQo
ImNjb3YiKToKICAgICAgICAgICAgIHJldHVybiA0CiAgICAgICAgIGVsc2U6CkBAIC03Niw3ICs3
Niw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3Ms
ICJiaW5hcnkiKQogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2Rh
dGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90
eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJiaW5h
cnkiOiBrd2FyZ3NbImJpbmFyeSJdLAogICAgICAgICAgICAgInByZWZzX3Jvb3QiOiBrd2FyZ3Nb
InByZWZzX3Jvb3QiXSwKICAgICAgICAgICAgICJleHRyYV9wcmVmcyI6IGt3YXJnc1siZXh0cmFf
cHJlZnMiXSwKQEAgLTEwMSwxMSArMTAxLDExIEBAIGRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5
cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgICAgICAgICAgImNvbmZp
ZyI6IGNvbmZpZywKICAgICAgICAgICAgICJicm93c2VyX2NoYW5uZWwiOiBrd2FyZ3NbImJyb3dz
ZXJfY2hhbm5lbCJdLAogICAgICAgICAgICAgImhlYWRsZXNzIjoga3dhcmdzWyJoZWFkbGVzcyJd
LAotICAgICAgICAgICAgInByZWxvYWRfYnJvd3NlciI6IGt3YXJnc1sicHJlbG9hZF9icm93c2Vy
Il0sCisgICAgICAgICAgICAicHJlbG9hZF9icm93c2VyIjoga3dhcmdzWyJwcmVsb2FkX2Jyb3dz
ZXIiXSBhbmQgbm90IGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdIGFuZCBub3Qga3dhcmdzWyJu
dW1fdGVzdF9ncm91cHMiXSA9PSAxLAogICAgICAgICAgICAgInNwZWNpYWxwb3dlcnNfcGF0aCI6
IGt3YXJnc1sic3BlY2lhbHBvd2Vyc19wYXRoIl19CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0
ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitk
ZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNo
ZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6
CiAgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBz
ZXJ2ZXJfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCkBAIC0xMzgsNiArMTM4LDE5IEBAIGRlZiBl
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBy
dW5faW5mb19kYXRhLAogICAgICAgICBmb3IgcHJlZiwgdmFsdWUgaW4ga3dhcmdzWyJleHRyYV9w
cmVmcyJdOgogICAgICAgICAgICAgb3B0aW9uc1sicHJlZnMiXS51cGRhdGUoe3ByZWY6IFByZWZl
cmVuY2VzLmNhc3QodmFsdWUpfSkKICAgICAgICAgY2FwYWJpbGl0aWVzWyJtb3o6ZmlyZWZveE9w
dGlvbnMiXSA9IG9wdGlvbnMKKworICAgICAgICAjIFRoaXMgZ2V0cyByZXVzZWQgZm9yIGZpcmVm
b3hfYW5kcm9pZCwgYnV0IHRoZSBlbnZpcm9ubWVudCBzZXR1cAorICAgICAgICAjIGlzbid0IHJl
cXVpcmVkIGluIHRoYXQgY2FzZQorICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeSJdOgorICAgICAg
ICAgICAgZW52aXJvbiA9IGdldF9lbnZpcm9uKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGt3YXJnc1siZGVidWdfaW5mbyJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGt3YXJnc1sic3R5bG9fdGhyZWFkcyJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGt3YXJnc1siaGVhZGxlc3MiXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrd2FyZ3NbImVuYWJsZV93ZWJyZW5kZXIiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBrd2FyZ3NbImNoYW9zX21vZGVfZmxhZ3MiXSkKKworICAgICAgICAg
ICAgZXhlY3V0b3Jfa3dhcmdzWyJlbnZpcm9uIl0gPSBlbnZpcm9uCiAgICAgaWYga3dhcmdzWyJj
ZXJ0dXRpbF9iaW5hcnkiXSBpcyBOb25lOgogICAgICAgICBjYXBhYmlsaXRpZXNbImFjY2VwdElu
c2VjdXJlQ2VydHMiXSA9IFRydWUKICAgICBpZiBjYXBhYmlsaXRpZXM6CkBAIC0xNDUsNiArMTU4
LDcgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hl
X21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJkZWJ1ZyJdID0g
cnVuX2luZm9fZGF0YVsiZGVidWciXQogICAgIGV4ZWN1dG9yX2t3YXJnc1siY2NvdiJdID0gcnVu
X2luZm9fZGF0YS5nZXQoImNjb3YiLCBGYWxzZSkKICAgICBleGVjdXRvcl9rd2FyZ3NbImJyb3dz
ZXJfdmVyc2lvbiJdID0gcnVuX2luZm9fZGF0YS5nZXQoImJyb3dzZXJfdmVyc2lvbiIpCisgICAg
ZXhlY3V0b3Jfa3dhcmdzWyJkZWJ1Z190ZXN0Il0gPSBrd2FyZ3NbImRlYnVnX3Rlc3QiXQogICAg
IHJldHVybiBleGVjdXRvcl9rd2FyZ3MKIAogCkBAIC0xNzksNyArMTkzLDEwIEBAIGRlZiBydW5f
aW5mb19leHRyYXMoKiprd2FyZ3MpOgogICAgICAgICAgICJ2ZXJpZnkiOiBrd2FyZ3NbInZlcmlm
eSJdLAogICAgICAgICAgICJoZWFkbGVzcyI6IGt3YXJncy5nZXQoImhlYWRsZXNzIiwgRmFsc2Up
IG9yICJNT1pfSEVBRExFU1MiIGluIG9zLmVudmlyb24sCiAgICAgICAgICAgInN3LWUxMHMiOiBU
cnVlLAotICAgICAgICAgICJmaXNzaW9uIjoga3dhcmdzLmdldCgiZW5hYmxlX2Zpc3Npb24iKSBv
ciBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLmF1dG9zdGFydCIpfQorICAgICAgICAgICJmaXNzaW9u
Ijoga3dhcmdzLmdldCgiZW5hYmxlX2Zpc3Npb24iKSBvciBnZXRfYm9vbF9wcmVmKCJmaXNzaW9u
LmF1dG9zdGFydCIpLAorICAgICAgICAgICJzZXNzaW9uSGlzdG9yeUluUGFyZW50IjogKGt3YXJn
cy5nZXQoImVuYWJsZV9maXNzaW9uIikgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnZXRfYm9vbF9wcmVmKCJmaXNzaW9uLmF1dG9zdGFydCIpIG9yCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2Jvb2xfcHJlZigiZmlzc2lvbi5zZXNzaW9u
SGlzdG9yeUluUGFyZW50IikpfQogCiAgICAgIyBUaGUgdmFsdWUgb2YgYHN3LWUxMHNgIGRlZmF1
bHRzIHRvIHdoZXRoZXIgdGhlICJwYXJlbnRfaW50ZXJjZXB0IgogICAgICMgaW1wbGVtZW50YXRp
b24gaXMgZW5hYmxlZCBmb3IgdGhlIGN1cnJlbnQgYnVpbGQuIFRoaXMgdmFsdWUsIGhvd2V2ZXIs
CkBAIC0yMTMsNiArMjMwLDI2IEBAIGRlZiB1cGRhdGVfcHJvcGVydGllcygpOgogICAgICAgICAg
ICAgeyJvcyI6IFsidmVyc2lvbiJdLCAicHJvY2Vzc29yIjogWyJiaXRzIl19KQogCiAKK2RlZiBn
ZXRfZW52aXJvbihsb2dnZXIsIGJpbmFyeSwgZGVidWdfaW5mbywgc3R5bG9fdGhyZWFkcywgaGVh
ZGxlc3MsIGVuYWJsZV93ZWJyZW5kZXIsCisgICAgICAgICAgICAgICAgY2hhb3NfbW9kZV9mbGFn
cz1Ob25lKToKKyAgICBlbnYgPSB0ZXN0X2Vudmlyb25tZW50KHhyZVBhdGg9b3MucGF0aC5hYnNw
YXRoKG9zLnBhdGguZGlybmFtZShiaW5hcnkpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlYnVnZ2VyPWRlYnVnX2luZm8gaXMgbm90IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1c2VMU2FuPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2c9bG9nZ2Vy
KQorCisgICAgZW52WyJTVFlMT19USFJFQURTIl0gPSBzdHIoc3R5bG9fdGhyZWFkcykKKyAgICBp
ZiBjaGFvc19tb2RlX2ZsYWdzIGlzIG5vdCBOb25lOgorICAgICAgICBlbnZbIk1PWl9DSEFPU01P
REUiXSA9IHN0cihjaGFvc19tb2RlX2ZsYWdzKQorICAgIGlmIGhlYWRsZXNzOgorICAgICAgICBl
bnZbIk1PWl9IRUFETEVTUyJdID0gIjEiCisgICAgaWYgZW5hYmxlX3dlYnJlbmRlcjoKKyAgICAg
ICAgZW52WyJNT1pfV0VCUkVOREVSIl0gPSAiMSIKKyAgICAgICAgZW52WyJNT1pfQUNDRUxFUkFU
RUQiXSA9ICIxIgorICAgIGVsc2U6CisgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjAi
CisgICAgcmV0dXJuIGVudgorCisKIGNsYXNzIEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIob2JqZWN0
KToKICAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQogCkBAIC0yNjgsMjAgKzMwNSw4IEBAIGNs
YXNzIEZpcmVmb3hJbnN0YW5jZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgbWFyaW9uZXR0ZV9w
b3J0ID0gZ2V0X2ZyZWVfcG9ydCgpCiAgICAgICAgIHByb2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsi
bWFyaW9uZXR0ZS5wb3J0IjogbWFyaW9uZXR0ZV9wb3J0fSkKIAotICAgICAgICBlbnYgPSB0ZXN0
X2Vudmlyb25tZW50KHhyZVBhdGg9b3MucGF0aC5kaXJuYW1lKHNlbGYuYmluYXJ5KSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z2dlcj1zZWxmLmRlYnVnX2luZm8gaXMgbm90
IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlTFNhbj1UcnVlLCBsb2c9
c2VsZi5sb2dnZXIpCi0KLSAgICAgICAgZW52WyJTVFlMT19USFJFQURTIl0gPSBzdHIoc2VsZi5z
dHlsb190aHJlYWRzKQotICAgICAgICBpZiBzZWxmLmNoYW9zX21vZGVfZmxhZ3MgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICBlbnZbIk1PWl9DSEFPU01PREUiXSA9IHN0cihzZWxmLmNoYW9zX21v
ZGVfZmxhZ3MpCi0gICAgICAgIGlmIHNlbGYuaGVhZGxlc3M6Ci0gICAgICAgICAgICBlbnZbIk1P
Wl9IRUFETEVTUyJdID0gIjEiCi0gICAgICAgIGlmIHNlbGYuZW5hYmxlX3dlYnJlbmRlcjoKLSAg
ICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjEiCi0gICAgICAgICAgICBlbnZbIk1P
Wl9BQ0NFTEVSQVRFRCJdID0gIjEiCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBlbnZbIk1P
Wl9XRUJSRU5ERVIiXSA9ICIwIgorICAgICAgICBlbnYgPSBnZXRfZW52aXJvbihzZWxmLmxvZ2dl
ciwgc2VsZi5iaW5hcnksIHNlbGYuZGVidWdfaW5mbywgc2VsZi5zdHlsb190aHJlYWRzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmhlYWRsZXNzLCBzZWxmLmVuYWJsZV93ZWJyZW5k
ZXIsIHNlbGYuY2hhb3NfbW9kZV9mbGFncykKIAogICAgICAgICBhcmdzID0gc2VsZi5iaW5hcnlf
YXJnc1s6XSBpZiBzZWxmLmJpbmFyeV9hcmdzIGVsc2UgW10KICAgICAgICAgYXJncyArPSBbY21k
X2FyZygibWFyaW9uZXR0ZSIpLCAiYWJvdXQ6YmxhbmsiXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9m
aXJlZm94X2FuZHJvaWQucHkKaW5kZXggYmVhMGQ5ZjRlZTMzYWIwNTFiMDBjYmE1YjhhNGFmYzAx
N2MzNzUwMS4uNWU5ZGU1NjQ5NjNmNjNlMDEzYTNmYjYzZmRlZGUxYTk3YTFmNzM4NiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveF9hbmRyb2lkLnB5CkBAIC0zOCw4ICszOCw5IEBAIGRl
ZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICBwYXNzCiAKIAotZGVmIGJyb3dzZXJfa3dhcmdz
KHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6Ci0gICAgcmV0dXJu
IHsicGFja2FnZV9uYW1lIjoga3dhcmdzWyJwYWNrYWdlX25hbWUiXSwKK2RlZiBicm93c2VyX2t3
YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6
CisgICAgcmV0dXJuIHsiYWRiX2JpbmFyeSI6IGt3YXJnc1siYWRiX2JpbmFyeSJdLAorICAgICAg
ICAgICAgInBhY2thZ2VfbmFtZSI6IGt3YXJnc1sicGFja2FnZV9uYW1lIl0sCiAgICAgICAgICAg
ICAiZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdLAogICAgICAgICAgICAg
InByZWZzX3Jvb3QiOiBrd2FyZ3NbInByZWZzX3Jvb3QiXSwKICAgICAgICAgICAgICJleHRyYV9w
cmVmcyI6IGt3YXJnc1siZXh0cmFfcHJlZnMiXSwKQEAgLTg3LDEwICs4OCwxMCBAQCBkZWYgZW52
X29wdGlvbnMoKToKIAogCiBjbGFzcyBQcm9maWxlQ3JlYXRvcihGaXJlZm94UHJvZmlsZUNyZWF0
b3IpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByZWZzX3Jvb3QsIGNvbmZpZywg
dGVzdF90eXBlLCBleHRyYV9wcmVmcywgZTEwcywKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9n
Z2VyLCBwcmVmc19yb290LCBjb25maWcsIHRlc3RfdHlwZSwgZXh0cmFfcHJlZnMsCiAgICAgICAg
ICAgICAgICAgIGVuYWJsZV9maXNzaW9uLCBicm93c2VyX2NoYW5uZWwsIGNlcnR1dGlsX2JpbmFy
eSwgY2FfY2VydGlmaWNhdGVfcGF0aCk6CiAgICAgICAgIHN1cGVyKFByb2ZpbGVDcmVhdG9yLCBz
ZWxmKS5fX2luaXRfXyhsb2dnZXIsIHByZWZzX3Jvb3QsIGNvbmZpZywgdGVzdF90eXBlLCBleHRy
YV9wcmVmcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUx
MHMsIGVuYWJsZV9maXNzaW9uLCBicm93c2VyX2NoYW5uZWwsIE5vbmUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlLCBlbmFibGVfZmlzc2lvbiwgYnJv
d3Nlcl9jaGFubmVsLCBOb25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2VydHV0aWxfYmluYXJ5LCBjYV9jZXJ0aWZpY2F0ZV9wYXRoKQogCiAgICAgZGVm
IF9zZXRfcmVxdWlyZWRfcHJlZnMoc2VsZiwgcHJvZmlsZSk6CkBAIC0xMDAsMTEgKzEwMSw5IEBA
IGNsYXNzIFByb2ZpbGVDcmVhdG9yKEZpcmVmb3hQcm9maWxlQ3JlYXRvcik6CiAgICAgICAgICAg
ICAicGxhY2VzLmhpc3RvcnkuZW5hYmxlZCI6IEZhbHNlLAogICAgICAgICAgICAgImRvbS5zZW5k
X2FmdGVyX3BhaW50X3RvX2NvbnRlbnQiOiBUcnVlLAogICAgICAgICAgICAgIm5ldHdvcmsucHJl
bG9hZCI6IFRydWUsCisgICAgICAgICAgICAiYnJvd3Nlci50YWJzLnJlbW90ZS5hdXRvc3RhcnQi
OiBUcnVlLAogICAgICAgICB9KQogCi0gICAgICAgIGlmIHNlbGYuZTEwczoKLSAgICAgICAgICAg
IHByb2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsiYnJvd3Nlci50YWJzLnJlbW90ZS5hdXRvc3RhcnQi
OiBUcnVlfSkKLQogICAgICAgICBpZiBzZWxmLnRlc3RfdHlwZSA9PSAicmVmdGVzdCI6CiAgICAg
ICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJTZXR0aW5nIGFuZHJvaWQgcmVmdGVzdCBwcmVmZXJl
bmNlcyIpCiAgICAgICAgICAgICBwcm9maWxlLnNldF9wcmVmZXJlbmNlcyh7CkBAIC0xMzAsNyAr
MTI5LDggQEAgY2xhc3MgRmlyZWZveEFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAg
ICAgICAgICBjYV9jZXJ0aWZpY2F0ZV9wYXRoPU5vbmUsIGUxMHM9RmFsc2UsIGVuYWJsZV93ZWJy
ZW5kZXI9RmFsc2UsIHN0YWNrZml4X2Rpcj1Ob25lLAogICAgICAgICAgICAgICAgICBiaW5hcnlf
YXJncz1Ob25lLCB0aW1lb3V0X211bHRpcGxpZXI9Tm9uZSwgbGVha19jaGVjaz1GYWxzZSwgYXNh
bj1GYWxzZSwKICAgICAgICAgICAgICAgICAgc3R5bG9fdGhyZWFkcz0xLCBjaGFvc19tb2RlX2Zs
YWdzPU5vbmUsIGNvbmZpZz1Ob25lLCBicm93c2VyX2NoYW5uZWw9Im5pZ2h0bHkiLAotICAgICAg
ICAgICAgICAgICBpbnN0YWxsX2ZvbnRzPUZhbHNlLCB0ZXN0c19yb290PU5vbmUsIHNwZWNpYWxw
b3dlcnNfcGF0aD1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgIGluc3RhbGxfZm9u
dHM9RmFsc2UsIHRlc3RzX3Jvb3Q9Tm9uZSwgc3BlY2lhbHBvd2Vyc19wYXRoPU5vbmUsIGFkYl9i
aW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogCiAgICAgICAgIHN1cGVy
KEZpcmVmb3hBbmRyb2lkQnJvd3Nlciwgc2VsZikuX19pbml0X18obG9nZ2VyKQogICAgICAgICBz
ZWxmLnByZWZzX3Jvb3QgPSBwcmVmc19yb290CkBAIC0xNDIsNyArMTQyLDcgQEAgY2xhc3MgRmly
ZWZveEFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLnN0YWNrd2Fsa19iaW5h
cnkgPSBzdGFja3dhbGtfYmluYXJ5CiAgICAgICAgIHNlbGYuY2VydHV0aWxfYmluYXJ5ID0gY2Vy
dHV0aWxfYmluYXJ5CiAgICAgICAgIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aCA9IGNhX2NlcnRp
ZmljYXRlX3BhdGgKLSAgICAgICAgc2VsZi5lMTBzID0gZTEwcworICAgICAgICBzZWxmLmUxMHMg
PSBUcnVlCiAgICAgICAgIHNlbGYuZW5hYmxlX3dlYnJlbmRlciA9IGVuYWJsZV93ZWJyZW5kZXIK
ICAgICAgICAgc2VsZi5zdGFja2ZpeF9kaXIgPSBzdGFja2ZpeF9kaXIKICAgICAgICAgc2VsZi5i
aW5hcnlfYXJncyA9IGJpbmFyeV9hcmdzCkBAIC0xNTYsMTMgKzE1NiwxMyBAQCBjbGFzcyBGaXJl
Zm94QW5kcm9pZEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYuaW5zdGFsbF9mb250cyA9
IGluc3RhbGxfZm9udHMKICAgICAgICAgc2VsZi50ZXN0c19yb290ID0gdGVzdHNfcm9vdAogICAg
ICAgICBzZWxmLnNwZWNpYWxwb3dlcnNfcGF0aCA9IHNwZWNpYWxwb3dlcnNfcGF0aAorICAgICAg
ICBzZWxmLmFkYl9iaW5hcnkgPSBhZGJfYmluYXJ5CiAKICAgICAgICAgc2VsZi5wcm9maWxlX2Ny
ZWF0b3IgPSBQcm9maWxlQ3JlYXRvcihsb2dnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJlZnNfcm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4dHJhX3ByZWZzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGUxMHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jaGFubmVsLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnR1dGlsX2JpbmFyeSwKQEAgLTIyNSw3ICsyMjUs
OSBAQCBjbGFzcyBGaXJlZm94QW5kcm9pZEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPXNlbGYuc3ltYm9sc19w
YXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbD1z
ZWxmLmRldmljZV9zZXJpYWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIyBUT0RPIC0gY2hvb3NlIGFwcHJvcHJpYXRlIGxvZyBkaXIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dkaXI9b3MuZ2V0Y3dkKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZGlyPW9zLmdldGN3ZCgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkYl9wYXRoPXNlbGYu
YWRiX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eHBsaWNpdF9jbGVhbnVwPVRydWUpCiAKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0
aW5nICVzIiAlIHNlbGYucGFja2FnZV9uYW1lKQogICAgICAgICAjIGNvbm5lY3QgdG8gYSBydW5u
aW5nIGVtdWxhdG9yCkBAIC0yNTcsNyArMjU5LDcgQEAgY2xhc3MgRmlyZWZveEFuZHJvaWRCcm93
c2VyKEJyb3dzZXIpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJG
YWlsZWQgdG8gcmVtb3ZlIGZvcndhcmRlZCBvciByZXZlcnNlZCBwb3J0czogJXMiICUgZSkKICAg
ICAgICAgICAgICMgV2UgYXNzdW1lIHRoYXQgc3RvcHBpbmcgdGhlIHJ1bm5lciBwcm9tcHRzIHRo
ZQogICAgICAgICAgICAgIyBicm93c2VyIHRvIHNodXQgZG93bi4KLSAgICAgICAgICAgIHNlbGYu
cnVubmVyLnN0b3AoKQorICAgICAgICAgICAgc2VsZi5ydW5uZXIuY2xlYW51cCgpCiAgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJzdG9wcGVkIikKIAogICAgIGRlZiBwaWQoc2VsZik6CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvaWUucHkKaW5kZXggNzhjMjJiOTA5YWNmNDEwMDM4ZmYwNjc2OTM2NjY2MmFiMGM1ODlhMC4u
M2E4NmMxYjZjY2I1YWFiZmUyMTAxNThmNmJlNjEzZjY5MDU0MzM3NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5w
eQpAQCAtMTgsMTEgKzE4LDExIEBAIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiaWUiLAog
ZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRy
aXZlcl9iaW5hcnkiKQogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19k
YXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3Rf
dHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsid2Vi
ZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAogICAgICAgICAgICAg
IndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KIAotZGVmIGV4
ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1
bl9pbmZvX2RhdGEsCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2
ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAg
ICAgICAqKmt3YXJncyk6CiAgICAgb3B0aW9ucyA9IHt9CiAgICAgb3B0aW9uc1sicmVxdWlyZVdp
bmRvd0ZvY3VzIl0gPSBUcnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3Bl
cmEucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkKaW5kZXggODA1ZmVkZWU2MzZj
ZDIyMTU1ZWQxNDNjZjExNDhmM2MyZjVkOThlNy4uYTM0ZjQxOTU1MzgzYzA4ZTk4YzRkMzhkNzgw
NDIzMWMxN2U5Mjk3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9vcGVyYS5weQpAQCAtMjQsMTMgKzI0LDEzIEBA
IGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJk
cml2ZXJfYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5m
b19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRl
c3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsi
YmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5
Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2Fy
Z3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQogCiAKLWRlZiBleGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRh
LAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywg
Y2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2Fy
Z3MpOgogICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0
aWVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYWZhcmkucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5CmluZGV4IGNiMmIxNzVkNGRmYmMzMTY2ZTRhZDVh
NmFmZTE3NGZmZGJjNmZmOGEuLjMxMmQ0ZGI5YzYzODJmN2FmZjVjZDc1NzcyZjBlZGY3M2U1Mzg1
NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYWZhcmkucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQpAQCAtMjYsMTIgKzI2LDEyIEBAIGRlZiBjaGVj
a19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmlu
YXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBj
b25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwg
cnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsid2ViZHJpdmVy
X2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAogICAgICAgICAgICAgIndlYmRy
aXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KIAogCi1kZWYgZXhlY3V0
b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2lu
Zm9fZGF0YSwKK2RlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHNlcnZlcl9j
b25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAg
ICoqa3dhcmdzKToKICAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0
ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvc2F1Y2UucHkKaW5kZXggYzU3YWM5NDJlZDRlNzYyNGEwYTdkMTE1ZGYzYTIxMGFlYzVk
OWVlMS4uMzQ5N2M1YzI3NzI4OGU1MWY2Njc3MDAwZTU3MDU3ZWJjZDk5YTIxMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9zYXVjZS5weQpAQCAtOTUsMTMgKzk1LDEzIEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdz
KToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJzYXVjZV9rZXkiKQogCiAKLWRlZiBicm93c2Vy
X2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVm
IGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICBzYXVjZV9jb25maWcgPSBnZXRfc2F1Y2VfY29uZmlnKCoqa3dhcmdz
KQogCiAgICAgcmV0dXJuIHsic2F1Y2VfY29uZmlnIjogc2F1Y2VfY29uZmlnfQogCiAKLWRlZiBl
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBy
dW5faW5mb19kYXRhLAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgc2Vy
dmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAg
ICAgICAgKiprd2FyZ3MpOgogICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dh
cmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9zZXJ2by5weQppbmRleCBiOTQ3NjU0MGFjN2M1MzE2MmU3MDY2OWM0YjdiYTQ4
ODNmZDc1Zjc1Li5hNjVlZDVlYWQ0ZTU1YzQ1Y2ZkN2FhNzkyMWYwNzE3MjE2Y2U2YTQ1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL3NlcnZvLnB5CkBAIC0zMyw3ICszMyw3IEBAIGRlZiBjaGVja19hcmdzKCoqa3dh
cmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJiaW5hcnkiKQogCiAKLWRlZiBicm93c2Vy
X2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVm
IGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICByZXR1cm4gewogICAgICAgICAiYmluYXJ5Ijoga3dhcmdzWyJiaW5h
cnkiXSwKICAgICAgICAgImRlYnVnX2luZm8iOiBrd2FyZ3NbImRlYnVnX2luZm8iXSwKQEAgLTQz
LDcgKzQzLDcgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwg
Y29uZmlnLCAqKmt3YXJncyk6CiAgICAgfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90
eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorZGVmIGV4
ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFu
YWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAg
IHJ2ID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwg
Kiprd2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIucHkKaW5kZXggNDM3OTRlNDE3
MDZkNmNjYzFmNjg2NjU1YzhlZGVjYTk1ZTNjNGM2Mi4uZWQ4NWNiZjNiOWJkMDRlYTE5MjY0MWI0
ODBhY2U0NGRjNmQ0MzNiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZv
ZHJpdmVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQpAQCAt
MzYsNyArMzYsNyBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAgICAgcmVxdWlyZV9hcmco
a3dhcmdzLCAiYmluYXJ5IikKIAogCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5f
aW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKK2RlZiBicm93c2VyX2t3YXJncyhsb2dnZXIs
IHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJu
IHsKICAgICAgICAgImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCiAgICAgICAgICJiaW5hcnlf
YXJncyI6IGt3YXJnc1siYmluYXJ5X2FyZ3MiXSwKQEAgLTQ3LDcgKzQ3LDcgQEAgZGVmIGJyb3dz
ZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAg
ICAgfQogCiAKLWRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBj
YWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CitkZWYgZXhlY3V0b3Jfa3dh
cmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLCAqKmt3YXJncyk6CiAgICAgcnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNo
ZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKICAgICByZXR1cm4gcnYKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvd2Via2l0LnB5CmluZGV4IGRhOTNjZjE2NDM5OTVkOTViOGQ2ZGUxZjcwYzc3MzFiNTU1
OTc2OGIuLjU5MGU0NzJhY2E5NjFiODY1YmYwZGJjODM2Yzk0MmY2MmI1MDZhZTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL3dlYmtpdC5weQpAQCAtMjksNyArMjksNyBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJn
cyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2Via2l0X3BvcnQiKQogCiAKLWRlZiBicm93
c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgor
ZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25m
aWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAog
ICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnki
XSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9h
cmdzIil9CkBAIC01NCw3ICs1NCw3IEBAIGRlZiBjYXBhYmlsaXRpZXNfZm9yX3BvcnQoc2VydmVy
X2NvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7fQogCiAKLWRlZiBleGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRh
LAorZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywg
Y2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2Fy
Z3MpOgogICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlw
ZSwgc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXRndGtfbWluaWJyb3dzZXIucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvd2Via2l0Z3RrX21pbmlicm93c2VyLnB5CmluZGV4IGQ4Yjk3NDRiZDc0
M2UzOWNlMTlmMDA4ZTdmNDBjYmM4MGU4MDEwN2MuLjViN2EzNjBmYjYwODM1MmUyNjk3MTU3MGFm
MDZjNWJiODQ2NjI1NWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXRn
dGtfbWluaWJyb3dzZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdGd0a19t
aW5pYnJvd3Nlci5weQpAQCAtMjUsNyArMjUsNyBAQCBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6
CiAgICAgcGFzcwogCiAKLWRlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2Rh
dGEsIGNvbmZpZywgKiprd2FyZ3MpOgorZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90
eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICAjIFdvcmthcm91bmQg
Zm9yIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJzb3VwL2lzc3Vlcy8xNzIKICAg
ICB3ZWJkcml2ZXJfcmVxdWlyZWRfYXJncyA9IFsiLS1ob3N0PTEyNy4wLjAuMSJdCiAgICAgd2Vi
ZHJpdmVyX2FyZ3MgPSBtYXliZV9hZGRfYXJncyh3ZWJkcml2ZXJfcmVxdWlyZWRfYXJncywga3dh
cmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKSkKQEAgLTUzLDcgKzUzLDcgQEAgZGVmIGNhcGFiaWxp
dGllcyhzZXJ2ZXJfY29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgICAgICAiY2VydGlmaWNhdGVz
IjogY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qoc2VydmVyX2NvbmZpZy5kb21haW5zX3NldCwga3dh
cmdzWyJob3N0X2NlcnRfcGF0aCJdKX19CiAKIAotZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCitkZWYgZXhl
Y3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5h
Z2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAg
ZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJf
Y29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hl
X21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Vudmlyb25tZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5CmluZGV4IDI1
MjdkMjZkMzkxZDk5NjgzNzc5MzkyYzAzNWNlZmZhMzBmZTViYzIuLmI2OGZjZTA1NTdhODNhYWMy
YzlmNDM1OTI1MmU4MGQwNjgxMmViZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9lbnZpcm9u
bWVudC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1lbnQucHkKQEAgLTEsNiArMSw2IEBA
CiBpbXBvcnQganNvbgogaW1wb3J0IG9zCi1pbXBvcnQgbXVsdGlwcm9jZXNzaW5nCisKIGltcG9y
dCBzaWduYWwKIGltcG9ydCBzb2NrZXQKIGltcG9ydCBzeXMKQEAgLTksNiArOSw3IEBAIGZyb20g
c2l4IGltcG9ydCBpdGVyaXRlbXMKIAogZnJvbSBtb3psb2cgaW1wb3J0IGdldF9kZWZhdWx0X2xv
Z2dlciwgaGFuZGxlcnMsIHByb3h5CiAKK2Zyb20gLiBpbXBvcnQgbXBjb250ZXh0CiBmcm9tIC53
cHRsb2dnaW5nIGltcG9ydCBMb2dMZXZlbFJld3JpdGVyCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5h
bWUoX19maWxlX18pCkBAIC01NCw3ICs1NSw3IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmpl
Y3QpOgogICAgICIiIkNvbnRleHQgbWFuYWdlciB0aGF0IG93bnMgdGhlIHRlc3QgZW52aXJvbm1l
bnQgaS5lLiB0aGUgaHR0cCBhbmQKICAgICB3ZWJzb2NrZXRzIHNlcnZlcnMiIiIKICAgICBkZWYg
X19pbml0X18oc2VsZiwgdGVzdF9wYXRocywgdGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIs
Ci0gICAgICAgICAgICAgICAgIHBhdXNlX2FmdGVyX3Rlc3QsIGRlYnVnX2luZm8sIG9wdGlvbnMs
IHNzbF9jb25maWcsIGVudl9leHRyYXMsCisgICAgICAgICAgICAgICAgIHBhdXNlX2FmdGVyX3Rl
c3QsIGRlYnVnX3Rlc3QsIGRlYnVnX2luZm8sIG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRy
YXMsCiAgICAgICAgICAgICAgICAgIGVuYWJsZV9xdWljPUZhbHNlLCBtb2pvanNfcGF0aD1Ob25l
KToKICAgICAgICAgc2VsZi50ZXN0X3BhdGhzID0gdGVzdF9wYXRocwogICAgICAgICBzZWxmLnNl
cnZlciA9IE5vbmUKQEAgLTYyLDEyICs2MywxNCBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2Jq
ZWN0KToKICAgICAgICAgc2VsZi5jb25maWcgPSBOb25lCiAgICAgICAgIHNlbGYudGVzdGhhcm5l
c3NfdGltZW91dF9tdWx0aXBsZXIgPSB0ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlcgogICAg
ICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QgPSBwYXVzZV9hZnRlcl90ZXN0CisgICAgICAgIHNl
bGYuZGVidWdfdGVzdCA9IGRlYnVnX3Rlc3QKICAgICAgICAgc2VsZi50ZXN0X3NlcnZlcl9wb3J0
ID0gb3B0aW9ucy5wb3AoInRlc3Rfc2VydmVyX3BvcnQiLCBUcnVlKQogICAgICAgICBzZWxmLmRl
YnVnX2luZm8gPSBkZWJ1Z19pbmZvCiAgICAgICAgIHNlbGYub3B0aW9ucyA9IG9wdGlvbnMgaWYg
b3B0aW9ucyBpcyBub3QgTm9uZSBlbHNlIHt9CiAKLSAgICAgICAgc2VsZi5jYWNoZV9tYW5hZ2Vy
ID0gbXVsdGlwcm9jZXNzaW5nLk1hbmFnZXIoKQotICAgICAgICBzZWxmLnN0YXNoID0gc2VydmUu
c3Rhc2guU3Rhc2hTZXJ2ZXIoKQorICAgICAgICBtcF9jb250ZXh0ID0gbXBjb250ZXh0LmdldF9j
b250ZXh0KCkKKyAgICAgICAgc2VsZi5jYWNoZV9tYW5hZ2VyID0gbXBfY29udGV4dC5NYW5hZ2Vy
KCkKKyAgICAgICAgc2VsZi5zdGFzaCA9IHNlcnZlLnN0YXNoLlN0YXNoU2VydmVyKG1wX2NvbnRl
eHQ9bXBfY29udGV4dCkKICAgICAgICAgc2VsZi5lbnZfZXh0cmFzID0gZW52X2V4dHJhcwogICAg
ICAgICBzZWxmLmVudl9leHRyYXNfY21zID0gTm9uZQogICAgICAgICBzZWxmLnNzbF9jb25maWcg
PSBzc2xfY29uZmlnCkBAIC05NSw3ICs5OCw4IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmpl
Y3QpOgogICAgICAgICAgICAgc2VsZi5lbnZfZXh0cmFzX2Ntcy5hcHBlbmQoY20pCiAKICAgICAg
ICAgc2VsZi5zZXJ2ZXJzID0gc2VydmUuc3RhcnQoc2VsZi5jb25maWcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3JvdXRlcygpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLmdldF9yb3V0ZXMoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXBfY29udGV4dD1tcGNvbnRleHQuZ2V0X2NvbnRleHQoKSkKIAog
ICAgICAgICBpZiBzZWxmLm9wdGlvbnMuZ2V0KCJzdXBwb3J0c19kZWJ1Z2dlciIpIGFuZCBzZWxm
LmRlYnVnX2luZm8gYW5kIHNlbGYuZGVidWdfaW5mby5pbnRlcmFjdGl2ZToKICAgICAgICAgICAg
IHNlbGYuaWdub3JlX2ludGVycnVwdHMoKQpAQCAtMTY4LDcgKzE3Miw4IEBAIGNsYXNzIFRlc3RF
bnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICBsb2dfZmlsdGVyID0gTG9nTGV2ZWxSZXdyaXRl
cihsb2dfZmlsdGVyLCBbImVycm9yIl0sICJ3YXJuaW5nIikKICAgICAgICAgc2VydmVyX2xvZ2dl
ci5jb21wb25lbnRfZmlsdGVyID0gbG9nX2ZpbHRlcgogCi0gICAgICAgIHNlcnZlcl9sb2dnZXIg
PSBwcm94eS5RdWV1ZWRQcm94eUxvZ2dlcihzZXJ2ZXJfbG9nZ2VyKQorICAgICAgICBzZXJ2ZXJf
bG9nZ2VyID0gcHJveHkuUXVldWVkUHJveHlMb2dnZXIoc2VydmVyX2xvZ2dlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1wY29udGV4dC5nZXRfY29u
dGV4dCgpKQogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgICMgU2V0IGFzIHRoZSBkZWZhdWx0
IGxvZ2dlciBmb3Igd3B0c2VydmUKQEAgLTE5MSw3ICsxOTYsOCBAQCBjbGFzcyBUZXN0RW52aXJv
bm1lbnQob2JqZWN0KToKICAgICAgICAgICAgICAgICAoc2VsZi5vcHRpb25zLmdldCgidGVzdGhh
cm5lc3NyZXBvcnQiLCAidGVzdGhhcm5lc3NyZXBvcnQuanMiKSwKICAgICAgICAgICAgICAgICAg
eyJvdXRwdXQiOiBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QsCiAgICAgICAgICAgICAgICAgICAidGlt
ZW91dF9tdWx0aXBsaWVyIjogc2VsZi50ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciwKLSAg
ICAgICAgICAgICAgICAgICJleHBsaWNpdF90aW1lb3V0IjogInRydWUiIGlmIHNlbGYuZGVidWdf
aW5mbyBpcyBub3QgTm9uZSBlbHNlICJmYWxzZSJ9LAorICAgICAgICAgICAgICAgICAgImV4cGxp
Y2l0X3RpbWVvdXQiOiAidHJ1ZSIgaWYgc2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBOb25lIGVsc2Ug
ImZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICJkZWJ1ZyI6ICJ0cnVlIiBpZiBzZWxmLmRlYnVn
X3Rlc3QgZWxzZSAiZmFsc2UifSwKICAgICAgICAgICAgICAgICAgInRleHQvamF2YXNjcmlwdDtj
aGFyc2V0PXV0ZjgiLAogICAgICAgICAgICAgICAgICAiL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyIpXToKICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGgu
am9pbihoZXJlLCBwYXRoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0
aW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weQppbmRleCBiMTFkMzBi
Yjk0YWE3YzI3NDdmY2M0ZGNmYjYxMjkyZjc2NzhlMjczLi45NjNlZDMzN2ZkZTQ0ZWNkZDQ3Yjk0
YjdhYTQxNzkwM2UzMzg0OWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Fj
dGlvbnMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9hY3Rpb25zLnB5CkBAIC0xMyw2
ICsxMywxOCBAQCBjbGFzcyBDbGlja0FjdGlvbihvYmplY3QpOgogICAgICAgICBzZWxmLnByb3Rv
Y29sLmNsaWNrLmVsZW1lbnQoZWxlbWVudCkKIAogCitjbGFzcyBEZWxldGVBbGxDb29raWVzQWN0
aW9uKG9iamVjdCk6CisgICAgbmFtZSA9ICJkZWxldGVfYWxsX2Nvb2tpZXMiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCk6CisgICAgICAgIHNlbGYubG9nZ2VyID0g
bG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAorCisgICAgZGVmIF9fY2Fs
bF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiRGVsZXRpbmcg
YWxsIGNvb2tpZXMiKQorICAgICAgICBzZWxmLnByb3RvY29sLmNvb2tpZXMuZGVsZXRlX2FsbF9j
b29raWVzKCkKKworCiBjbGFzcyBTZW5kS2V5c0FjdGlvbihvYmplY3QpOgogICAgIG5hbWUgPSAi
c2VuZF9rZXlzIgogCkBAIC0xNzEsNiArMTgzLDcgQEAgY2xhc3MgU2V0VXNlclZlcmlmaWVkQWN0
aW9uKG9iamVjdCk6CiAKIAogYWN0aW9ucyA9IFtDbGlja0FjdGlvbiwKKyAgICAgICAgICAgRGVs
ZXRlQWxsQ29va2llc0FjdGlvbiwKICAgICAgICAgICAgU2VuZEtleXNBY3Rpb24sCiAgICAgICAg
ICAgIEFjdGlvblNlcXVlbmNlQWN0aW9uLAogICAgICAgICAgICBHZW5lcmF0ZVRlc3RSZXBvcnRB
Y3Rpb24sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKaW5kZXggNTU1MTg2ODU0OTRlMjQ2NDM1NDI1MGFl
NmU3MmJhYmRlZjQ2ZGNmNy4uMWI3NTQyMTk0MWQyZjU3MGY5MDk4NzEzZDZjYTdiNWYzMmNmMjk1
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9iYXNlLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQpAQCAtMTIsMTMgKzEyLDEzIEBAIGZyb20gc2l4IGlt
cG9ydCB0ZXh0X3R5cGUKIGZyb20gc2l4Lm1vdmVzLmh0dHBfY2xpZW50IGltcG9ydCBIVFRQQ29u
bmVjdGlvbgogZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1cmxz
cGxpdCwgdXJsdW5zcGxpdAogCi1mcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogZnJvbSAu
YWN0aW9ucyBpbXBvcnQgYWN0aW9ucwogZnJvbSAucHJvdG9jb2wgaW1wb3J0IFByb3RvY29sLCBC
YXNlUHJvdG9jb2xQYXJ0CiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiAKIAor
CiBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFu
YWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAg
IHRpbWVvdXRfbXVsdGlwbGllciA9IGt3YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0KQEAgLTQy
LDcgKzQyLDcgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcs
IGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgIyB3YW50IHRvIHZpZXcgdGhlIHJl
c3VsdHMsIGhvd2V2ZXIsIHRoZSBleGVjdXRvciBoYXMgdG8gc2tpcCB0aGF0IGNsZWFudXAuCiAg
ICAgaWYga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gb3Iga3dhcmdzWyJwYXVzZV9vbl91bmV4
cGVjdGVkIl06CiAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xlYW51cF9hZnRlcl90ZXN0Il0g
PSBGYWxzZQotCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJkZWJ1Z190ZXN0Il0gPSBrd2FyZ3NbImRl
YnVnX3Rlc3QiXQogICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKIAogCkBAIC0xODAsMTEgKzE4
MCwxMSBAQCBjbGFzcyBUaW1lZFJ1bm5lcihvYmplY3QpOgogICAgICAgICBzZWxmLnJlc3VsdF9m
bGFnID0gdGhyZWFkaW5nLkV2ZW50KCkKIAogICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIGlm
IHNlbGYuc2V0X3RpbWVvdXQoKSBpcyBTdG9wOgotICAgICAgICAgICAgcmV0dXJuIFN0b3AKLQot
ICAgICAgICBpZiBzZWxmLmJlZm9yZV9ydW4oKSBpcyBTdG9wOgotICAgICAgICAgICAgcmV0dXJu
IFN0b3AKKyAgICAgICAgZm9yIHNldHVwX2ZuIGluIFtzZWxmLnNldF90aW1lb3V0LCBzZWxmLmJl
Zm9yZV9ydW5dOgorICAgICAgICAgICAgZXJyID0gc2V0dXBfZm4oKQorICAgICAgICAgICAgaWYg
ZXJyOgorICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gKEZhbHNlLCBlcnIpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0CiAKICAgICAgICAgZXhlY3V0b3IgPSB0aHJlYWRp
bmcuVGhyZWFkKHRhcmdldD1zZWxmLnJ1bl9mdW5jKQogICAgICAgICBleGVjdXRvci5zdGFydCgp
CkBAIC0yOTYsOSArMjk2LDYgQEAgY2xhc3MgVGVzdEV4ZWN1dG9yKG9iamVjdCk6CiAgICAgICAg
ICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKGV4Y2VwdGlvbl9zdHJpbmcpCiAgICAgICAgICAgICBy
ZXN1bHQgPSBzZWxmLnJlc3VsdF9mcm9tX2V4Y2VwdGlvbih0ZXN0LCBlLCBleGNlcHRpb25fc3Ry
aW5nKQogCi0gICAgICAgIGlmIHJlc3VsdCBpcyBTdG9wOgotICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdAotCiAgICAgICAgICMgbG9nIHJlc3VsdCBvZiBwYXJlbnQgdGVzdAogICAgICAgICBpZiBy
ZXN1bHRbMF0uc3RhdHVzID09ICJFUlJPUiI6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZyhyZXN1bHRbMF0ubWVzc2FnZSkKQEAgLTU5OCw3ICs1OTUsNyBAQCBjbGFzcyBXZHNwZWNFeGVj
dXRvcihUZXN0RXhlY3V0b3IpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJv
d3Nlciwgc2VydmVyX2NvbmZpZywgd2ViZHJpdmVyX2JpbmFyeSwKICAgICAgICAgICAgICAgICAg
d2ViZHJpdmVyX2FyZ3MsIHRpbWVvdXRfbXVsdGlwbGllcj0xLCBjYXBhYmlsaXRpZXM9Tm9uZSwK
LSAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgICAg
ICAgICAgIGRlYnVnX2luZm89Tm9uZSwgZW52aXJvbj1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAg
IHNlbGYuZG9fZGVsYXllZF9pbXBvcnRzKCkKICAgICAgICAgVGVzdEV4ZWN1dG9yLl9faW5pdF9f
KHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlwbGllcj10aW1lb3V0X211bHRpcGxpZXIsCkBAIC02
MDcsNiArNjA0LDcgQEAgY2xhc3MgV2RzcGVjRXhlY3V0b3IoVGVzdEV4ZWN1dG9yKToKICAgICAg
ICAgc2VsZi53ZWJkcml2ZXJfYXJncyA9IHdlYmRyaXZlcl9hcmdzCiAgICAgICAgIHNlbGYudGlt
ZW91dF9tdWx0aXBsaWVyID0gdGltZW91dF9tdWx0aXBsaWVyCiAgICAgICAgIHNlbGYuY2FwYWJp
bGl0aWVzID0gY2FwYWJpbGl0aWVzCisgICAgICAgIHNlbGYuZW52aXJvbiA9IGVudmlyb24gaWYg
ZW52aXJvbiBpcyBub3QgTm9uZSBlbHNlIHt9CiAgICAgICAgIHNlbGYucHJvdG9jb2wgPSBzZWxm
LnByb3RvY29sX2NscyhzZWxmLCBicm93c2VyKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgpA
QCAtNjMyLDcgKzYzMCw4IEBAIGNsYXNzIFdkc3BlY0V4ZWN1dG9yKFRlc3RFeGVjdXRvcik6CiAg
ICAgICAgIHJldHVybiBweXRlc3RydW5uZXIucnVuKHBhdGgsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2Vzc2lvbl9jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRpbWVvdXQ9dGltZW91dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91
dD10aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9uPXNlbGYu
ZW52aXJvbikKIAogICAgIGRlZiBkb19kZWxheWVkX2ltcG9ydHMoc2VsZik6CiAgICAgICAgIGds
b2JhbCBweXRlc3RydW5uZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhl
Y3V0b3JlZGdlY2hyb21pdW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRn
ZWNocm9taXVtLnB5CmluZGV4IGEwMjYzYWY2ODAzNDExMWZhZTU2YjZlMWFjYjA1MGZhOTU4NTlk
YWUuLmViYmEwNmE5ZTFhYmExNjM3M2I4NzY4NmY1YzEyYTg5YzA5ZTI1YTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlY2hyb21pdW0ucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2VjaHJvbWl1bS5weQpAQCAtMSwxMCArMSwx
MCBAQAotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEVkZ2VDaHJvbWl1bURyaXZlclNl
cnZlcg0KLWZyb20gLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yLCBXZHNwZWNQcm90b2NvbA0K
LQ0KLQ0KLWNsYXNzIEVkZ2VDaHJvbWl1bURyaXZlclByb3RvY29sKFdkc3BlY1Byb3RvY29sKToN
Ci0gICAgc2VydmVyX2NscyA9IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcg0KLQ0KLQ0KLWNsYXNz
IEVkZ2VDaHJvbWl1bURyaXZlcldkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToNCi0gICAg
cHJvdG9jb2xfY2xzID0gRWRnZUNocm9taXVtRHJpdmVyUHJvdG9jb2wNCitmcm9tIC4ud2ViZHJp
dmVyX3NlcnZlciBpbXBvcnQgRWRnZUNocm9taXVtRHJpdmVyU2VydmVyCitmcm9tIC5iYXNlIGlt
cG9ydCBXZHNwZWNFeGVjdXRvciwgV2RzcGVjUHJvdG9jb2wKKworCitjbGFzcyBFZGdlQ2hyb21p
dW1Ecml2ZXJQcm90b2NvbChXZHNwZWNQcm90b2NvbCk6CisgICAgc2VydmVyX2NscyA9IEVkZ2VD
aHJvbWl1bURyaXZlclNlcnZlcgorCisKK2NsYXNzIEVkZ2VDaHJvbWl1bURyaXZlcldkc3BlY0V4
ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToKKyAgICBwcm90b2NvbF9jbHMgPSBFZGdlQ2hyb21pdW1E
cml2ZXJQcm90b2NvbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cm1hcmlvbmV0dGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0
ZS5weQppbmRleCBkYTg5NDFiNjllMzNiMDk4NmY5OTlmMjg2YzRhNjRlNTg0MzQ5ZWNjLi5kNjFl
MWYyNjJjZDBiYzdjZGU1NzkyYzVmZDZhNTgyZThlMDc0YjlhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQpAQCAtMzMsMTQgKzMzLDE1IEBAIGZyb20g
LnByb3RvY29sIGltcG9ydCAoQWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgIFN0b3JhZ2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAg
IFNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3Rv
Y29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29va2llc1Byb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgIFRlc3REcml2ZXJQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAg
IENvdmVyYWdlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZVRl
c3RSZXBvcnRQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxBdXRo
ZW50aWNhdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBTZXRQZXJtaXNz
aW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgICAgICBQcmludFByb3RvY29sUGFy
dCkKLWZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9wCisgICAgICAgICAgICAgICAgICAgICAg
IFByaW50UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBEZWJ1Z1Byb3RvY29s
UGFydCkKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBHZWNrb0RyaXZlclNlcnZlcgog
CiAKQEAgLTQzNiw2ICs0MzcsMTUgQEAgY2xhc3MgTWFyaW9uZXR0ZUNsaWNrUHJvdG9jb2xQYXJ0
KENsaWNrUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcmV0dXJuIGVsZW1lbnQuY2xpY2soKQogCiAK
K2NsYXNzIE1hcmlvbmV0dGVDb29raWVzUHJvdG9jb2xQYXJ0KENvb2tpZXNQcm90b2NvbFBhcnQp
OgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5w
YXJlbnQubWFyaW9uZXR0ZQorCisgICAgZGVmIGRlbGV0ZV9hbGxfY29va2llcyhzZWxmKToKKyAg
ICAgICAgc2VsZi5sb2dnZXIuaW5mbygiRGVsZXRpbmcgYWxsIGNvb2tpZXMiKQorICAgICAgICBy
ZXR1cm4gc2VsZi5tYXJpb25ldHRlLmRlbGV0ZV9hbGxfY29va2llcygpCisKKwogY2xhc3MgTWFy
aW9uZXR0ZVNlbmRLZXlzUHJvdG9jb2xQYXJ0KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToKICAgICBk
ZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1h
cmlvbmV0dGUKQEAgLTYxNiw2ICs2MjYsMzAgQEAgcmVuZGVyKCclcycpLnRoZW4ocmVzdWx0ID0+
IGNhbGxiYWNrKHJlc3VsdCkpIiIiICUgcGRmX2Jhc2U2NCwgbmV3X3NhbmRib3g9RmFsc2UKICAg
ICAgICAgZmluYWxseToKICAgICAgICAgICAgIF9zd2l0Y2hfdG9fd2luZG93KHNlbGYubWFyaW9u
ZXR0ZSwgaGFuZGxlKQogCisKK2NsYXNzIE1hcmlvbmV0dGVEZWJ1Z1Byb3RvY29sUGFydChEZWJ1
Z1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1hcmlv
bmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCisKKyAgICBkZWYgbG9hZF9kZXZ0b29scyhz
ZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1h
cmlvbmV0dGUuQ09OVEVYVF9DSFJPTUUpOgorICAgICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5l
eGVjdXRlX3NjcmlwdCgiIiIKK2NvbnN0IHsgcmVxdWlyZSB9ID0gQ2hyb21lVXRpbHMuaW1wb3J0
KCJyZXNvdXJjZTovL2RldnRvb2xzL3NoYXJlZC9Mb2FkZXIuanNtIik7Citjb25zdCB7IFRhcmdl
dEZhY3RvcnkgfSA9IHJlcXVpcmUoImRldnRvb2xzL2NsaWVudC9mcmFtZXdvcmsvdGFyZ2V0Iik7
Citjb25zdCB7IGdEZXZUb29scyB9ID0gcmVxdWlyZSgiZGV2dG9vbHMvY2xpZW50L2ZyYW1ld29y
ay9kZXZ0b29scyIpOworCitjb25zdCBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVu
Z3RoIC0gMV07CisKK2FzeW5jIGZ1bmN0aW9uIGxvYWREZXZUb29scygpIHsKKyAgICBjb25zdCB0
YXJnZXQgPSBhd2FpdCBUYXJnZXRGYWN0b3J5LmZvclRhYih3aW5kb3cuZ0Jyb3dzZXIuc2VsZWN0
ZWRUYWIpOworICAgIGF3YWl0IGdEZXZUb29scy5zaG93VG9vbGJveCh0YXJnZXQsICJ3ZWJjb25z
b2xlIiwgIndpbmRvdyIpOworfQorCitsb2FkRGV2VG9vbHMoKS5jYXRjaCgoKSA9PiBkdW1wKCJE
ZXZ0b29scyBmYWlsZWQgdG8gbG9hZCIpKQorICAgICAgICAgICAgICAudGhlbihjYWxsYmFjayk7
CisiIiIsIGFzeW5jaHJvbm91cz1UcnVlKQorCisKIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQ
cm90b2NvbCk6CiAgICAgaW1wbGVtZW50cyA9IFtNYXJpb25ldHRlQmFzZVByb3RvY29sUGFydCwK
ICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKQEAg
LTYyMyw2ICs2NTcsNyBAQCBjbGFzcyBNYXJpb25ldHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAg
ICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVN0b3JhZ2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAg
ICAgICAgICBNYXJpb25ldHRlU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICBNYXJpb25ldHRlQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBNYXJpb25l
dHRlQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVTZW5k
S2V5c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVBY3Rpb25TZXF1
ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVUZXN0RHJpdmVy
UHJvdG9jb2xQYXJ0LApAQCAtNjMxLDcgKzY2Niw4IEBAIGNsYXNzIE1hcmlvbmV0dGVQcm90b2Nv
bChQcm90b2NvbCk6CiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlR2VuZXJhdGVUZXN0UmVw
b3J0UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVZpcnR1YWxBdXRo
ZW50aWNhdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVNldFBl
cm1pc3Npb25Qcm90b2NvbFBhcnQsCi0gICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUHJpbnRQ
cm90b2NvbFBhcnRdCisgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlUHJpbnRQcm90b2NvbFBh
cnQsCisgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlRGVidWdQcm90b2NvbFBhcnRdCiAKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIsIGNhcGFiaWxpdGllcz1Ob25l
LCB0aW1lb3V0X211bHRpcGxpZXI9MSwgZTEwcz1UcnVlLCBjY292PUZhbHNlKToKICAgICAgICAg
ZG9fZGVsYXllZF9pbXBvcnRzKCkKQEAgLTcxNiw4ICs3NTIsOSBAQCBjbGFzcyBFeGVjdXRlQXN5
bmNTY3JpcHRSdW4oVGltZWRSdW5uZXIpOgogICAgICAgICAgICAgICAgICMgdGltZW91dCBpcyBz
ZXQgdG9vIGhpZ2guIFRoaXMgd29ya3MgYXQgbGVhc3QuCiAgICAgICAgICAgICAgICAgc2VsZi5w
cm90b2NvbC5iYXNlLnNldF90aW1lb3V0KDIqKjI4IC0gMSkKICAgICAgICAgZXhjZXB0IElPRXJy
b3I6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBtYXJpb25ldHRlIGNvbm5l
Y3Rpb24gYmVmb3JlIHN0YXJ0aW5nIHRlc3QiKQotICAgICAgICAgICAgcmV0dXJuIFN0b3AKKyAg
ICAgICAgICAgIG1zZyA9ICJMb3N0IG1hcmlvbmV0dGUgY29ubmVjdGlvbiBiZWZvcmUgc3RhcnRp
bmcgdGVzdCIKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAg
IHJldHVybiAoIklOVEVSTkFMLUVSUk9SIiwgbXNnKQogCiAgICAgZGVmIGJlZm9yZV9ydW4oc2Vs
Zik6CiAgICAgICAgIGluZGV4ID0gc2VsZi51cmwucmZpbmQoIi9zdG9yYWdlLyIpCkBAIC03NTks
NyArNzk2LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5l
c3NFeGVjdXRvcik6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2VyLCBz
ZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9MSwKICAgICAgICAgICAgICAgICAgY2xv
c2VfYWZ0ZXJfZG9uZT1UcnVlLCBkZWJ1Z19pbmZvPU5vbmUsIGNhcGFiaWxpdGllcz1Ob25lLAot
ICAgICAgICAgICAgICAgICBkZWJ1Zz1GYWxzZSwgY2Nvdj1GYWxzZSwgKiprd2FyZ3MpOgorICAg
ICAgICAgICAgICAgICBkZWJ1Zz1GYWxzZSwgY2Nvdj1GYWxzZSwgZGVidWdfdGVzdD1GYWxzZSwg
Kiprd2FyZ3MpOgogICAgICAgICAiIiJNYXJpb25ldHRlLWJhc2VkIGV4ZWN1dG9yIGZvciB0ZXN0
aGFybmVzcy5qcyB0ZXN0cyIiIgogICAgICAgICBUZXN0aGFybmVzc0V4ZWN1dG9yLl9faW5pdF9f
KHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9tdWx0aXBsaWVy
LApAQCAtNzc1LDYgKzgxMiw3IEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9y
KFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAgICAgICBzZWxmLmNsb3NlX2FmdGVyX2RvbmUgPSBj
bG9zZV9hZnRlcl9kb25lCiAgICAgICAgIHNlbGYud2luZG93X2lkID0gc3RyKHV1aWQudXVpZDQo
KSkKICAgICAgICAgc2VsZi5kZWJ1ZyA9IGRlYnVnCisgICAgICAgIHNlbGYuZGVidWdfdGVzdCA9
IGRlYnVnX3Rlc3QKIAogICAgICAgICBzZWxmLmluc3RhbGxfZXh0ZW5zaW9ucyA9IGJyb3dzZXIu
ZXh0ZW5zaW9ucwogCkBAIC04NDMsNiArODgxLDkgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJu
ZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgIHNlbGYucHJvdG9jb2wu
YmFzZS5zZXRfd2luZG93KHRlc3Rfd2luZG93KQogICAgICAgICBwcm90b2NvbC50ZXN0aGFybmVz
cy50ZXN0X3dpbmRvd19sb2FkZWQoKQogCisgICAgICAgIGlmIHNlbGYuZGVidWdfdGVzdDoKKyAg
ICAgICAgICAgIHNlbGYucHJvdG9jb2wuZGVidWcubG9hZF9kZXZ0b29scygpCisKICAgICAgICAg
aGFuZGxlciA9IENhbGxiYWNrSGFuZGxlcihzZWxmLmxvZ2dlciwgcHJvdG9jb2wsIHRlc3Rfd2lu
ZG93KQogICAgICAgICBwcm90b2NvbC5tYXJpb25ldHRlLm5hdmlnYXRlKHVybCkKICAgICAgICAg
d2hpbGUgVHJ1ZToKQEAgLTg2OSw3ICs5MTAsNyBAQCBjbGFzcyBNYXJpb25ldHRlUmVmVGVzdEV4
ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9u
ZSwgcmVmdGVzdF9pbnRlcm5hbD1GYWxzZSwKICAgICAgICAgICAgICAgICAgcmVmdGVzdF9zY3Jl
ZW5zaG90PSJ1bmV4cGVjdGVkIiwgY2Nvdj1GYWxzZSwKICAgICAgICAgICAgICAgICAgZ3JvdXBf
bWV0YWRhdGE9Tm9uZSwgY2FwYWJpbGl0aWVzPU5vbmUsIGRlYnVnPUZhbHNlLAotICAgICAgICAg
ICAgICAgICBicm93c2VyX3ZlcnNpb249Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAg
ICBicm93c2VyX3ZlcnNpb249Tm9uZSwgZGVidWdfdGVzdD1GYWxzZSwgKiprd2FyZ3MpOgogICAg
ICAgICAiIiJNYXJpb25ldHRlLWJhc2VkIGV4ZWN1dG9yIGZvciByZWZ0ZXN0cyIiIgogICAgICAg
ICBSZWZUZXN0RXhlY3V0b3IuX19pbml0X18oc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxvZ2dlciwKQEAgLTg5Miw2ICs5MzMsNyBAQCBjbGFzcyBNYXJpb25ldHRlUmVm
VGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAgICAgIHNlbGYub3JpZ2luYWxfcHJl
Zl92YWx1ZXMgPSB7fQogICAgICAgICBzZWxmLmdyb3VwX21ldGFkYXRhID0gZ3JvdXBfbWV0YWRh
dGEKICAgICAgICAgc2VsZi5kZWJ1ZyA9IGRlYnVnCisgICAgICAgIHNlbGYuZGVidWdfdGVzdCA9
IGRlYnVnX3Rlc3QKIAogICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZWZ0
ZXN0LmpzIikpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLnNjcmlwdCA9IGYucmVhZCgpCkBAIC05
NTQsNyArOTk2LDEyIEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4
ZWN1dG9yKToKICAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9IHNlbGYucHJvdG9jb2wuYXNz
ZXJ0cy5nZXQoKQogICAgICAgICAgICAgaWYgImV4dHJhIiBub3QgaW4gcmVzdWx0OgogICAgICAg
ICAgICAgICAgIHJlc3VsdFsiZXh0cmEiXSA9IHt9Ci0gICAgICAgICAgICByZXN1bHRbImV4dHJh
Il1bImFzc2VydGlvbl9jb3VudCJdID0gYXNzZXJ0aW9uX2NvdW50CisgICAgICAgICAgICBpZiBh
c3NlcnRpb25fY291bnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmVzdWx0WyJleHRy
YSJdWyJhc3NlcnRpb25fY291bnQiXSA9IGFzc2VydGlvbl9jb3VudAorCisgICAgICAgIGlmIHNl
bGYuZGVidWdfdGVzdCBhbmQgcmVzdWx0WyJzdGF0dXMiXSBpbiBbIlBBU1MiLCAiRkFJTCIsICJF
UlJPUiJdIGFuZCAiZXh0cmEiIGluIHJlc3VsdDoKKyAgICAgICAgICAgIHNlbGYucGFyZW50LmJh
c2Uuc2V0X3dpbmRvdyhzZWxmLnBhcmVudC5iYXNlLndpbmRvd19oYW5kbGVzKClbMF0pCisgICAg
ICAgICAgICBzZWxmLnByb3RvY29sLmRlYnVnLmxvYWRfcmVmdGVzdF9hbmFseXplcih0ZXN0LCBy
ZXN1bHQpCiAKICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0
KQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkKaW5kZXggZmYy
NjM1MWY4NGVkOGQyZTAwZDgyZDc2NTcwMjA4YTU5NDcwODZjYy4uNjA3MDAwN2IyMWE3YWYwZGQ0
YjgzY2FlMjgzZjg1M2VlY2RlNTc2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9leGVjdXRvcnNlbGVuaXVtLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0
b3JzZWxlbml1bS5weQpAQCAtMTksMTAgKzE5LDEwIEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAo
QmFzZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2wsCiAgICAg
ICAgICAgICAgICAgICAgICAgIFNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgICAgICBDbGlja1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29va2ll
c1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBh
cnQsCiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAog
ICAgICAgICAgICAgICAgICAgICAgICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KQotZnJvbSAuLnRl
c3RydW5uZXIgaW1wb3J0IFN0b3AKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykK
IApAQCAtMTgzLDYgKzE4MywxNSBAQCBjbGFzcyBTZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0KENs
aWNrUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcmV0dXJuIGVsZW1lbnQuY2xpY2soKQogCiAKK2Ns
YXNzIFNlbGVuaXVtQ29va2llc1Byb3RvY29sUGFydChDb29raWVzUHJvdG9jb2xQYXJ0KToKKyAg
ICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQu
d2ViZHJpdmVyCisKKyAgICBkZWYgZGVsZXRlX2FsbF9jb29raWVzKHNlbGYpOgorICAgICAgICBz
ZWxmLmxvZ2dlci5pbmZvKCJEZWxldGluZyBhbGwgY29va2llcyIpCisgICAgICAgIHJldHVybiBz
ZWxmLndlYmRyaXZlci5kZWxldGVfYWxsX2Nvb2tpZXMoKQorCisKIGNsYXNzIFNlbGVuaXVtU2Vu
ZEtleXNQcm90b2NvbFBhcnQoU2VuZEtleXNQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChz
ZWxmKToKICAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKQEAg
LTIxOSw2ICsyMjgsNyBAQCBjbGFzcyBTZWxlbml1bVByb3RvY29sKFByb3RvY29sKToKICAgICAg
ICAgICAgICAgICAgIFNlbGVuaXVtVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQsCiAgICAgICAgICAg
ICAgICAgICBTZWxlbml1bVNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAg
U2VsZW5pdW1DbGlja1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFNlbGVuaXVtQ29v
a2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtU2VuZEtleXNQcm90
b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBTZWxlbml1bVRlc3REcml2ZXJQcm90b2NvbFBh
cnQsCiAgICAgICAgICAgICAgICAgICBTZWxlbml1bUFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0
XQpAQCAtMjY3LDggKzI3Nyw5IEBAIGNsYXNzIFNlbGVuaXVtUnVuKFRpbWVkUnVubmVyKToKICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHRp
bWVvdXQgKyBzZWxmLmV4dHJhX3RpbWVvdXQpCiAgICAgICAgIGV4Y2VwdCBleGNlcHRpb25zLkVy
cm9ySW5SZXNwb25zZUV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJM
b3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIikKLSAgICAgICAgICAgIHJldHVybiBTdG9wCisgICAg
ICAgICAgICBtc2cgPSAiTG9zdCBXZWJEcml2ZXIgY29ubmVjdGlvbiIKKyAgICAgICAgICAgIHNl
bGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgIHJldHVybiAoIklOVEVSTkFMLUVSUk9S
IiwgbXNnKQogCiAgICAgZGVmIHJ1bl9mdW5jKHNlbGYpOgogICAgICAgICB0cnk6CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkKaW5kZXggMmNkMWRiZjNh
ZDA2ZjQxYjk1NTVkYWQ2NGQ2ZDBjMGE4NjUzNzI2MC4uMDM5YmNkMTRlMmJlNTc2ODAwODllNzg1
ZTYwYzc0Y2RkZWUyODViNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVj
dXRvcnNlcnZvZHJpdmVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3Jz
ZXJ2b2RyaXZlci5weQpAQCAtMTAsNyArMTAsNiBAQCBmcm9tIC5iYXNlIGltcG9ydCAoUHJvdG9j
b2wsCiAgICAgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NFeGVjdXRvciwKICAgICAgICAgICAg
ICAgICAgICBUaW1lZFJ1bm5lciwKICAgICAgICAgICAgICAgICAgICBzdHJpcF9zZXJ2ZXIpCi1m
cm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1w
b3J0IHdhaXRfZm9yX3NlcnZpY2UKIAogd2ViZHJpdmVyID0gTm9uZQpAQCAtMTg0LDggKzE4Myw5
IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4
ZWN1dG9yKToKICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLnNlc3Npb24udGltZW91dHMu
c2NyaXB0ID0gdGltZW91dAogICAgICAgICAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQK
ICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAgICAgICAgIHNlbGYubG9nZ2Vy
LmVycm9yKCJMb3N0IHdlYmRyaXZlciBjb25uZWN0aW9uIikKLSAgICAgICAgICAgICAgICByZXR1
cm4gU3RvcAorICAgICAgICAgICAgICAgIG1zZyA9ICJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9u
IgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1zZykKKyAgICAgICAgICAgICAg
ICByZXR1cm4gKCJJTlRFUk5BTC1FUlJPUiIsIG1zZykKIAogICAgICAgICBzdWNjZXNzLCBkYXRh
ID0gU2Vydm9XZWJEcml2ZXJSdW4oc2VsZi5sb2dnZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLmRvX3Rlc3RoYXJuZXNzLApAQCAtMjc2LDggKzI3Niw5
IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6
CiAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uLnRpbWVvdXRzLnNjcmlwdCA9
IHRpbWVvdXQKICAgICAgICAgICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CiAgICAgICAg
ICAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigi
TG9zdCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFN0b3AK
KyAgICAgICAgICAgICAgICBtc2cgPSAiTG9zdCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIKKyAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcihtc2cpCisgICAgICAgICAgICAgICAgcmV0dXJu
ICgiSU5URVJOQUwtRVJST1IiLCBtc2cpCiAKICAgICAgICAgcmV0dXJuIFNlcnZvV2ViRHJpdmVy
UnVuKHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
c2NyZWVuc2hvdCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3
ZWJkcml2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5
CmluZGV4IGJhZDVmZDA3MjIzN2JjZTJiODI2ZGRlNzdiNDEzYmNhYmJjY2E5OTAuLjBhOTY4YmYz
ZjhjMjgzM2YyZDYyMTc4NGI0ZjU0YTRjNjg3NWJkZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJkcml2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9leGVjdXRvcndlYmRyaXZlci5weQpAQCAtMjAsMTMgKzIwLDE0IEBAIGZyb20gLnByb3Rv
Y29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgUHJv
dG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VuZEtl
eXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvblNlcXVlbmNlUHJv
dG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0
LAogICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQs
CiAgICAgICAgICAgICAgICAgICAgICAgIFNldFBlcm1pc3Npb25Qcm90b2NvbFBhcnQsCi0gICAg
ICAgICAgICAgICAgICAgICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0KQotZnJv
bSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKKyAgICAgICAgICAgICAgICAgICAgICAgVmlydHVh
bEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIERlYnVn
UHJvdG9jb2xQYXJ0KQogCiBpbXBvcnQgd2ViZHJpdmVyIGFzIGNsaWVudAogZnJvbSB3ZWJkcml2
ZXIgaW1wb3J0IGVycm9yCkBAIC0xOTAsNiArMTkxLDE1IEBAIGNsYXNzIFdlYkRyaXZlckNsaWNr
UHJvdG9jb2xQYXJ0KENsaWNrUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcmV0dXJuIGVsZW1lbnQu
Y2xpY2soKQogCiAKK2NsYXNzIFdlYkRyaXZlckNvb2tpZXNQcm90b2NvbFBhcnQoQ29va2llc1By
b3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLndlYmRyaXZl
ciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorCisgICAgZGVmIGRlbGV0ZV9hbGxfY29va2llcyhz
ZWxmKToKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiRGVsZXRpbmcgYWxsIGNvb2tpZXMiKQor
ICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkRFTEVU
RSIsICJjb29raWUiKQorCisKIGNsYXNzIFdlYkRyaXZlclNlbmRLZXlzUHJvdG9jb2xQYXJ0KFNl
bmRLZXlzUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYu
d2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCkBAIC0yODMsMTcgKzI5MywyNCBAQCBj
bGFzcyBXZWJEcml2ZXJWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydChWaXJ0dWFsQXV0
aGVudGljYXRvclByb3RvY29sUGFydAogICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2Vu
ZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAid2ViYXV0aG4vYXV0aGVudGljYXRvci8lcy91diIg
JSBhdXRoZW50aWNhdG9yX2lkLCB1dikKIAogCitjbGFzcyBXZWJEcml2ZXJEZWJ1Z1Byb3RvY29s
UGFydChEZWJ1Z1Byb3RvY29sUGFydCk6CisgICAgZGVmIGxvYWRfZGV2dG9vbHMoc2VsZik6Cisg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisKIGNsYXNzIFdlYkRyaXZlclBy
b3RvY29sKFByb3RvY29sKToKICAgICBpbXBsZW1lbnRzID0gW1dlYkRyaXZlckJhc2VQcm90b2Nv
bFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJUZXN0aGFybmVzc1Byb3RvY29sUGFy
dCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgV2ViRHJpdmVyQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAg
ICAgICBXZWJEcml2ZXJDb29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2Vi
RHJpdmVyU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJB
Y3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclRl
c3REcml2ZXJQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJHZW5lcmF0
ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZXRQ
ZXJtaXNzaW9uUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVmlydHVh
bEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnRdCisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJW
aXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRy
aXZlckRlYnVnUHJvdG9jb2xQYXJ0XQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9y
LCBicm93c2VyLCBjYXBhYmlsaXRpZXMsICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoV2ViRHJp
dmVyUHJvdG9jb2wsIHNlbGYpLl9faW5pdF9fKGV4ZWN1dG9yLCBicm93c2VyKQpAQCAtMzQ0LDgg
KzM2MSw5IEBAIGNsYXNzIFdlYkRyaXZlclJ1bihUaW1lZFJ1bm5lcik6CiAgICAgICAgIHRyeToK
ICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfdGltZW91dChzZWxmLnRpbWVvdXQg
KyBzZWxmLmV4dHJhX3RpbWVvdXQpCiAgICAgICAgIGV4Y2VwdCBjbGllbnQuVW5rbm93bkVycm9y
RXhjZXB0aW9uOgotICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkxvc3QgV2ViRHJpdmVy
IGNvbm5lY3Rpb24iKQotICAgICAgICAgICAgcmV0dXJuIFN0b3AKKyAgICAgICAgICAgIG1zZyA9
ICJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJy
b3IobXNnKQorICAgICAgICAgICAgcmV0dXJuICgiSU5URVJOQUwtRVJST1IiLCBtc2cpCiAKICAg
ICBkZWYgcnVuX2Z1bmMoc2VsZik6CiAgICAgICAgIHRyeToKQEAgLTQ5Nyw3ICs1MTUsNyBAQCBj
bGFzcyBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKIAogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRpbWVvdXRf
bXVsdGlwbGllcj0xLAogICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2NhY2hlPU5vbmUsIGNs
b3NlX2FmdGVyX2RvbmU9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lLCBj
YXBhYmlsaXRpZXM9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZv
PU5vbmUsIGNhcGFiaWxpdGllcz1Ob25lLCBkZWJ1Z190ZXN0PUZhbHNlLCAqKmt3YXJncyk6CiAg
ICAgICAgICIiIldlYkRyaXZlci1iYXNlZCBleGVjdXRvciBmb3IgcmVmdGVzdHMiIiIKICAgICAg
ICAgUmVmVGVzdEV4ZWN1dG9yLl9faW5pdF9fKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2dnZXIsCkBAIC01MTIsNiArNTMwLDcgQEAgY2xhc3MgV2ViRHJpdmVyUmVm
VGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAgICAgIHNlbGYuaW1wbGVtZW50YXRp
b24gPSBSZWZUZXN0SW1wbGVtZW50YXRpb24oc2VsZikKICAgICAgICAgc2VsZi5jbG9zZV9hZnRl
cl9kb25lID0gY2xvc2VfYWZ0ZXJfZG9uZQogICAgICAgICBzZWxmLmhhc193aW5kb3cgPSBGYWxz
ZQorICAgICAgICBzZWxmLmRlYnVnX3Rlc3QgPSBkZWJ1Z190ZXN0CiAKICAgICAgICAgd2l0aCBv
cGVuKG9zLnBhdGguam9pbihoZXJlLCAidGVzdC13YWl0LmpzIikpIGFzIGY6CiAgICAgICAgICAg
ICBzZWxmLndhaXRfc2NyaXB0ID0gZi5yZWFkKCkgJSB7ImNsYXNzbmFtZSI6ICJyZWZ0ZXN0LXdh
aXQifQpAQCAtNTM2LDYgKzU1NSw5IEBAIGNsYXNzIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcihS
ZWZUZXN0RXhlY3V0b3IpOgogCiAgICAgICAgIHJlc3VsdCA9IHNlbGYuaW1wbGVtZW50YXRpb24u
cnVuX3Rlc3QodGVzdCkKIAorICAgICAgICBpZiBzZWxmLmRlYnVnX3Rlc3QgYW5kIHJlc3VsdFsi
c3RhdHVzIl0gaW4gWyJQQVNTIiwgIkZBSUwiLCAiRVJST1IiXSBhbmQgImV4dHJhIiBpbiByZXN1
bHQ6CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLmRlYnVnLmxvYWRfcmVmdGVzdF9hbmFseXpl
cih0ZXN0LCByZXN1bHQpCisKICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVz
dCwgcmVzdWx0KQogCiAgICAgZGVmIHNjcmVlbnNob3Qoc2VsZiwgdGVzdCwgdmlld3BvcnRfc2l6
ZSwgZHBpLCBwYWdlX3Jhbmdlcyk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L3Byb3RvY29sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9wcm90b2NvbC5weQppbmRleCBi
ZDc2OGIxMDczYzc0OGZkYjg2MDc0NWYxYmY5NDQyZjViNDE1YzNiLi4wNWUyNTFjNzg0MTA2MDBh
N2U4MWRhNjVjZTg1NzJkYjY5OGIwYzE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL3Byb3RvY29sLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkK
QEAgLTI4MSw2ICsyODEsMTggQEAgY2xhc3MgQ2xpY2tQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0
KToKICAgICAgICAgcGFzcwogCiAKK2NsYXNzIENvb2tpZXNQcm90b2NvbFBhcnQoUHJvdG9jb2xQ
YXJ0KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0IGZvciBtYW5hZ2luZyBjb29raWVzIiIiCisgICAg
X19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIG5hbWUgPSAiY29va2llcyIKKworICAgIEBh
YnN0cmFjdG1ldGhvZAorICAgIGRlZiBkZWxldGVfYWxsX2Nvb2tpZXMoc2VsZik6CisgICAgICAg
ICIiIkRlbGV0ZSBhbGwgY29va2llcy4iIiIKKyAgICAgICAgcGFzcworCisKIGNsYXNzIFNlbmRL
ZXlzUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgIiIiUHJvdG9jb2wgcGFydCBmb3Ig
cGVyZm9ybWluZyB0cnVzdGVkIGNsaWNrcyIiIgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRh
CkBAIC01MDMsMyArNTE1LDMyIEBAIGNsYXNzIFByaW50UHJvdG9jb2xQYXJ0KFByb3RvY29sUGFy
dCk6CiAgICAgZGVmIHJlbmRlcl9hc19wZGYoc2VsZiwgd2lkdGgsIGhlaWdodCk6CiAgICAgICAg
ICIiIk91dHB1dCBkb2N1bWVudCBhcyBQREYiIiIKICAgICAgICAgcGFzcworCisKK2NsYXNzIERl
YnVnUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIiUHJvdG9jb2wgcGFydCBmb3Ig
ZGVidWdnaW5nIHRlc3QgZmFpbHVyZXMuIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEK
KworICAgIG5hbWUgPSAiZGVidWciCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgbG9h
ZF9kZXZ0b29scyhzZWxmKToKKyAgICAgICAgIiIiTG9hZCBkZXZ0b29scyBpbiB0aGUgY3VycmVu
dCB3aW5kb3ciIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIGxvYWRfcmVmdGVzdF9hbmFseXpl
cihzZWxmLCB0ZXN0LCByZXN1bHQpOgorICAgICAgICBpbXBvcnQgaW8KKyAgICAgICAgaW1wb3J0
IG1vemxvZworICAgICAgICBmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHF1b3Rl
LCB1cmxqb2luCisKKyAgICAgICAgZGVidWdfdGVzdF9sb2dnZXIgPSBtb3psb2cuc3RydWN0dXJl
ZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJkZWJ1Z190ZXN0IikKKyAgICAgICAgb3V0cHV0ID0gaW8u
U3RyaW5nSU8oKQorICAgICAgICBkZWJ1Z190ZXN0X2xvZ2dlci5zdWl0ZV9zdGFydChbXSkKKyAg
ICAgICAgZGVidWdfdGVzdF9sb2dnZXIuYWRkX2hhbmRsZXIobW96bG9nLmhhbmRsZXJzLlN0cmVh
bUhhbmRsZXIob3V0cHV0LCBmb3JtYXR0ZXI9bW96bG9nLmZvcm1hdHRlcnMuVGJwbEZvcm1hdHRl
cigpKSkKKyAgICAgICAgZGVidWdfdGVzdF9sb2dnZXIudGVzdF9zdGFydCh0ZXN0LmlkKQorICAg
ICAgICAjIEFsd2F5cyB1c2UgUEFTUyBhcyB0aGUgZXhwZWN0ZWQgdmFsdWUgc28gd2UgZ2V0IG91
dHB1dCBldmVuIGZvciBleHBlY3RlZCBmYWlsdXJlcworICAgICAgICBkZWJ1Z190ZXN0X2xvZ2dl
ci50ZXN0X2VuZCh0ZXN0LmlkLCByZXN1bHRbInN0YXR1cyJdLCAiUEFTUyIsIGV4dHJhPXJlc3Vs
dC5nZXQoImV4dHJhIikpCisKKyAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5sb2FkKHVybGpvaW4o
c2VsZi5wYXJlbnQuZXhlY3V0b3Iuc2VydmVyX3VybCgiaHR0cHMiKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIvY29tbW9uL3RoaXJkX3BhcnR5L3JlZnRlc3QtYW5hbHl6ZXIueGh0
bWwjbG9nPSVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGUob3V0cHV0
LmdldHZhbHVlKCkpKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0
cnVubmVyL3J1bm5lci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1
bm5lci5weQppbmRleCAzZDMyOTE3NjU5YjM5MDBmOWU0NjQ2NzBkMmNkYzM5YjhmZjE4MGEwLi4x
MTNlZmY5OWZlZThkNGExMjZkOWM3NDFiMzZjYmZiOGU4YTFlZWJkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy9weXRlc3RydW5uZXIvcnVubmVyLnB5CkBAIC0yNCw3ICsyNCw3IEBAIGRl
ZiBkb19kZWxheWVkX2ltcG9ydHMoKToKICAgICBpbXBvcnQgcHl0ZXN0CiAKIAotZGVmIHJ1bihw
YXRoLCBzZXJ2ZXJfY29uZmlnLCBzZXNzaW9uX2NvbmZpZywgdGltZW91dD0wKToKK2RlZiBydW4o
cGF0aCwgc2VydmVyX2NvbmZpZywgc2Vzc2lvbl9jb25maWcsIHRpbWVvdXQ9MCwgZW52aXJvbj1O
b25lKToKICAgICAiIiIKICAgICBSdW4gUHl0aG9uIHRlc3QgYXQgYGBwYXRoYGAgaW4gcHl0ZXN0
LiAgVGhlIHByb3ZpZGVkIGBgc2Vzc2lvbmBgCiAgICAgaXMgZXhwb3NlZCBhcyBhIGZpeHR1cmUg
YXZhaWxhYmxlIGluIHRoZSBzY29wZSBvZiB0aGUgdGVzdCBmdW5jdGlvbnMuCkBAIC00MSwyOCAr
NDEsMzUgQEAgZGVmIHJ1bihwYXRoLCBzZXJ2ZXJfY29uZmlnLCBzZXNzaW9uX2NvbmZpZywgdGlt
ZW91dD0wKToKICAgICBpZiBweXRlc3QgaXMgTm9uZToKICAgICAgICAgZG9fZGVsYXllZF9pbXBv
cnRzKCkKIAotICAgIG9zLmVudmlyb25bIldEX0hPU1QiXSA9IHNlc3Npb25fY29uZmlnWyJob3N0
Il0KLSAgICBvcy5lbnZpcm9uWyJXRF9QT1JUIl0gPSBzdHIoc2Vzc2lvbl9jb25maWdbInBvcnQi
XSkKLSAgICBvcy5lbnZpcm9uWyJXRF9DQVBBQklMSVRJRVMiXSA9IGpzb24uZHVtcHMoc2Vzc2lv
bl9jb25maWdbImNhcGFiaWxpdGllcyJdKQotICAgIG9zLmVudmlyb25bIldEX1NFUlZFUl9DT05G
SUciXSA9IGpzb24uZHVtcHMoc2VydmVyX2NvbmZpZy5hc19kaWN0X2Zvcl93ZF9lbnZfdmFyaWFi
bGUoKSkKLQotICAgIGhhcm5lc3MgPSBIYXJuZXNzUmVzdWx0UmVjb3JkZXIoKQotICAgIHN1YnRl
c3RzID0gU3VidGVzdFJlc3VsdFJlY29yZGVyKCkKLQotICAgIHdpdGggVGVtcG9yYXJ5RGlyZWN0
b3J5KCkgYXMgY2FjaGU6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHB5dGVzdC5tYWluKFsi
LS1zdHJpY3QiLCAgIyB0dXJuIHdhcm5pbmdzIGludG8gZXJyb3JzCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIi12diIsICAjIHNob3cgZWFjaCBpbmRpdmlkdWFsIHN1YnRlc3QgYW5kIGZ1bGwg
ZmFpbHVyZSBsb2dzCi0gICAgICAgICAgICAgICAgICAgICAgICAgIi0tY2FwdHVyZSIsICJubyIs
ICAjIGVuYWJsZSBzdGRvdXQvc3RkZXJyIGZyb20gdGVzdHMKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAiLS1iYXNldGVtcCIsIGNhY2hlLCAgIyB0ZW1wb3JhcnkgZGlyZWN0b3J5Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgIi0tc2hvd2xvY2FscyIsICAjIGRpc3BsYXkgY29udGVudHMgb2Yg
dmFyaWFibGVzIGluIGxvY2FsIHNjb3BlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIi1wIiwg
Im5vOm1vemxvZyIsICAjIHVzZSB0aGUgV1BUIHJlc3VsdCByZWNvcmRlcgotICAgICAgICAgICAg
ICAgICAgICAgICAgICItcCIsICJubzpjYWNoZXByb3ZpZGVyIiwgICMgZGlzYWJsZSBzdGF0ZSBw
cmVzZXJ2YXRpb24gYWNyb3NzIGludm9jYXRpb25zCi0gICAgICAgICAgICAgICAgICAgICAgICAg
Ii1vPWNvbnNvbGVfb3V0cHV0X3N0eWxlPWNsYXNzaWMiLCAgIyBkaXNhYmxlIHRlc3QgcHJvZ3Jl
c3MgYmFyCi0gICAgICAgICAgICAgICAgICAgICAgICAgcGF0aF0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICBwbHVnaW5zPVtoYXJuZXNzLCBzdWJ0ZXN0c10pCi0gICAgICAgIGV4Y2VwdCBFeGNl
cHRpb24gYXMgZToKLSAgICAgICAgICAgIGhhcm5lc3Mub3V0Y29tZSA9ICgiSU5URVJOQUwtRVJS
T1IiLCBzdHIoZSkpCisgICAgb2xkX2Vudmlyb24gPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgIHRy
eToKKyAgICAgICAgb3MuZW52aXJvblsiV0RfSE9TVCJdID0gc2Vzc2lvbl9jb25maWdbImhvc3Qi
XQorICAgICAgICBvcy5lbnZpcm9uWyJXRF9QT1JUIl0gPSBzdHIoc2Vzc2lvbl9jb25maWdbInBv
cnQiXSkKKyAgICAgICAgb3MuZW52aXJvblsiV0RfQ0FQQUJJTElUSUVTIl0gPSBqc29uLmR1bXBz
KHNlc3Npb25fY29uZmlnWyJjYXBhYmlsaXRpZXMiXSkKKyAgICAgICAgb3MuZW52aXJvblsiV0Rf
U0VSVkVSX0NPTkZJRyJdID0ganNvbi5kdW1wcyhzZXJ2ZXJfY29uZmlnLmFzX2RpY3RfZm9yX3dk
X2Vudl92YXJpYWJsZSgpKQorICAgICAgICBpZiBlbnZpcm9uOgorICAgICAgICAgICAgb3MuZW52
aXJvbi51cGRhdGUoZW52aXJvbikKKworICAgICAgICBoYXJuZXNzID0gSGFybmVzc1Jlc3VsdFJl
Y29yZGVyKCkKKyAgICAgICAgc3VidGVzdHMgPSBTdWJ0ZXN0UmVzdWx0UmVjb3JkZXIoKQorCisg
ICAgICAgIHdpdGggVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgY2FjaGU6CisgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgcHl0ZXN0Lm1haW4oWyItLXN0cmljdCIsICAjIHR1cm4gd2Fy
bmluZ3MgaW50byBlcnJvcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi12diIsICAj
IHNob3cgZWFjaCBpbmRpdmlkdWFsIHN1YnRlc3QgYW5kIGZ1bGwgZmFpbHVyZSBsb2dzCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICItLWNhcHR1cmUiLCAibm8iLCAgIyBlbmFibGUgc3Rk
b3V0L3N0ZGVyciBmcm9tIHRlc3RzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWJh
c2V0ZW1wIiwgY2FjaGUsICAjIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi0tc2hvd2xvY2FscyIsICAjIGRpc3BsYXkgY29udGVudHMgb2YgdmFyaWFi
bGVzIGluIGxvY2FsIHNjb3BlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItcCIsICJu
bzptb3psb2ciLCAgIyB1c2UgdGhlIFdQVCByZXN1bHQgcmVjb3JkZXIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIi1wIiwgIm5vOmNhY2hlcHJvdmlkZXIiLCAgIyBkaXNhYmxlIHN0YXRl
IHByZXNlcnZhdGlvbiBhY3Jvc3MgaW52b2NhdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi1vPWNvbnNvbGVfb3V0cHV0X3N0eWxlPWNsYXNzaWMiLCAgIyBkaXNhYmxlIHRlc3Qg
cHJvZ3Jlc3MgYmFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbnM9W2hhcm5lc3MsIHN1YnRlc3RzXSkKKyAgICAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICBoYXJuZXNzLm91
dGNvbWUgPSAoIklOVEVSTkFMLUVSUk9SIiwgc3RyKGUpKQorCisgICAgZmluYWxseToKKyAgICAg
ICAgb3MuZW52aXJvbiA9IG9sZF9lbnZpcm9uCiAKICAgICByZXR1cm4gKGhhcm5lc3Mub3V0Y29t
ZSwgc3VidGVzdHMucmVzdWx0cykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZm9udC5weQppbmRleCA5MTAzNThmNTE1OTZmOWUzOTJmODFlZjE1NmNk
ZDBiMTAxOTgzYjdiLi45N2Q3NGRhNGU0MDM0MTkzZjg3MjI1NDgzY2ZkYTc5N2Y4MWFlMGJkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5w
eQpAQCAtODAsMTAgKzgwLDEwIEBAIGNsYXNzIEZvbnRJbnN0YWxsZXIob2JqZWN0KToKICAgICAg
ICAgZm9udHMgPSBjaGVja19vdXRwdXQoWycvdXNyL3NiaW4vc3lzdGVtX3Byb2ZpbGVyJywgJy14
bWwnLCAnU1BGb250c0RhdGFUeXBlJ10pCiAgICAgICAgIHRyeToKICAgICAgICAgICAgICMgaWYg
cHkzCi0gICAgICAgICAgICByZWFkUGxpc3RGcm9tQnl0ZXMgPSBwbGlzdGxpYi5yZWFkUGxpc3RG
cm9tQnl0ZXMKKyAgICAgICAgICAgIGxvYWRfcGxpc3QgPSBwbGlzdGxpYi5sb2FkcwogICAgICAg
ICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICByZWFkUGxpc3RGcm9tQnl0ZXMg
PSBwbGlzdGxpYi5yZWFkUGxpc3RGcm9tU3RyaW5nCi0gICAgICAgIGZvbnRzID0gcmVhZFBsaXN0
RnJvbUJ5dGVzKGZvbnRzKQorICAgICAgICAgICAgbG9hZF9wbGlzdCA9IHBsaXN0bGliLnJlYWRQ
bGlzdEZyb21TdHJpbmcKKyAgICAgICAgZm9udHMgPSBsb2FkX3BsaXN0KGZvbnRzKQogICAgICAg
ICBhc3NlcnQgbGVuKGZvbnRzKSA9PSAxCiAgICAgICAgIGZvciBmb250IGluIGZvbnRzWzBdWydf
aXRlbXMnXToKICAgICAgICAgICAgIGlmIGZvbnRbJ3BhdGgnXSA9PSBpbnN0YWxsZWRfZm9udF9w
YXRoOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvY2hyb21pdW0ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZm9ybWF0dGVycy9jaHJvbWl1bS5weQppbmRleCBjZWYwMWM0ZmZjNWRkMmRm
NjdkZGZiNmVkNzQ2ZDNlYTRjNWM0ZDc2Li4yZmYyYmQxZTA4M2EzNDM5ZDEyODljOWY1NDBhOGJi
MmIxZTIwZGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9jaHJvbWl1bS5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9jaHJvbWl1bS5weQpAQCAtMzEsNDggKzMx
LDU1IEBAIGNsYXNzIENocm9taXVtRm9ybWF0dGVyKGJhc2UuQmFzZUZvcm1hdHRlcik6CiAgICAg
ICAgICMgdGhlIHRyaWUgYW5kIHRoZSBsZWFmIGNvbnRhaW5zIHRoZSBkaWN0IG9mIHBlci10ZXN0
IGRhdGEuCiAgICAgICAgIHNlbGYudGVzdHMgPSB7fQogCi0gICAgICAgICMgTWVzc2FnZSBkaWN0
aW9uYXJ5LCBrZXllZCBieSB0ZXN0IG5hbWUuIFZhbHVlIGlzIGEgbGlzdCBvZiBzdHJpbmdzOgot
ICAgICAgICAjIHNlZSBfYXBwZW5kX3Rlc3RfbWVzc2FnZSBmb3IgdGhlIGZvcm1hdC4KKyAgICAg
ICAgIyBUd28gZGljdGlvbmFyaWVzIGtleWVkIGJ5IHRlc3QgbmFtZS4gVmFsdWVzIGFyZSBsaXN0
cyBvZiBzdHJpbmdzOgorICAgICAgICAjIGFjdHVhbCBtZXRhZGF0YSBjb250ZW50IGFuZCBvdGhl
ciBtZXNzYWdlcywgcmVzcGVjdGl2ZWx5LgorICAgICAgICAjIFNlZSBfYXBwZW5kX3Rlc3RfbWVz
c2FnZSBmb3IgZXhhbXBsZXMuCisgICAgICAgIHNlbGYuYWN0dWFsX21ldGFkYXRhID0gZGVmYXVs
dGRpY3QobGlzdCkKICAgICAgICAgc2VsZi5tZXNzYWdlcyA9IGRlZmF1bHRkaWN0KGxpc3QpCiAK
ICAgICAgICAgIyBMaXN0IG9mIHRlc3RzIHRoYXQgaGF2ZSBmYWlsaW5nIHN1YnRlc3RzLgogICAg
ICAgICBzZWxmLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlscyA9IHNldCgpCiAKICAgICAgICAgIyBC
cm93c2VyIGxvZyBmb3IgdGhlIGN1cnJlbnQgdGVzdCB1bmRlciBleGVjdXRpb24uCi0gICAgICAg
IHNlbGYudGVzdF9sb2cgPSBbXQorICAgICAgICAjIFRoZXNlIGxvZ3MgYXJlIGZyb20gQ2hyb21l
RHJpdmVyJ3Mgc3Rkb3V0L2Vyciwgc28gd2UgY2Fubm90IHNheSBmb3IKKyAgICAgICAgIyBzdXJl
IHdoaWNoIHRlc3QgYSBtZXNzYWdlIGlzIGZyb20sIGJ1dCBpbnN0ZWFkIHdlIGNvcnJlbGF0ZSB0
aGVtIGJhc2VkCisgICAgICAgICMgb24gdGltaW5nLgorICAgICAgICBzZWxmLmJyb3dzZXJfbG9n
ID0gW10KIAogICAgIGRlZiBfYXBwZW5kX3Rlc3RfbWVzc2FnZShzZWxmLCB0ZXN0LCBzdWJ0ZXN0
LCB3cHRfYWN0dWFsX3N0YXR1cywgbWVzc2FnZSk6Ci0gICAgICAgICIiIgorICAgICAgICByIiIi
CiAgICAgICAgIEFwcGVuZHMgdGhlIG1lc3NhZ2UgZGF0YSBmb3IgYSB0ZXN0IG9yIHN1YnRlc3Qu
CisKICAgICAgICAgOnBhcmFtIHN0ciB0ZXN0OiB0aGUgbmFtZSBvZiB0aGUgdGVzdAogICAgICAg
ICA6cGFyYW0gc3RyIHN1YnRlc3Q6IHRoZSBuYW1lIG9mIHRoZSBzdWJ0ZXN0IHdpdGggdGhlIG1l
c3NhZ2UuIFdpbGwgYmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lIGlmIHRoaXMg
aXMgY2FsbGVkIGZvciBhIHRlc3QuCiAgICAgICAgIDpwYXJhbSBzdHIgd3B0X2FjdHVhbF9zdGF0
dXM6IHRoZSB0ZXN0IHN0YXR1cyBhcyByZXBvcnRlZCBieSBXUFQKICAgICAgICAgOnBhcmFtIHN0
ciBtZXNzYWdlOiB0aGUgc3RyaW5nIHRvIGFwcGVuZCB0byB0aGUgbWVzc2FnZSBmb3IgdGhpcyB0
ZXN0CiAKLSAgICAgICAgRXhhbXBsZToKLSAgICAgICAgICBbdGVzdF9vcl9zdWJ0ZXN0X25hbWVd
Ci0gICAgICAgICAgICBleHBlY3RlZDogRkFJTAotICAgICAgICAgICAgbWVzc2FnZTogc29tZSB0
ZXN0IG1lc3NhZ2UgZWcgYXNzZXJ0IGZhaWx1cmUKKyAgICAgICAgRXhhbXBsZSBhY3R1YWxfbWV0
YWRhdGEgb2YgYSB0ZXN0IHdpdGggYSBzdWJ0ZXN0OgorICAgICAgICAgICAgIlt0ZXN0X25hbWVd
XG4gIGV4cGVjdGVkOiBPS1xuIgorICAgICAgICAgICAgIiAgW3N1YnRlc3RfbmFtZV1cbiAgICBl
eHBlY3RlZDogRkFJTFxuIgorCisgICAgICAgIE5PVEU6IHRocm91Z2hvdXQgdGhpcyBmdW5jdGlv
biB3ZSBvdXRwdXQgYSBrZXkgY2FsbGVkICJleHBlY3RlZCIgYnV0CisgICAgICAgIGZpbGwgaXQg
aW4gd2l0aCB0aGUgYWN0dWFsIHN0YXR1cy4gVGhpcyBpcyBieSBkZXNpZ24uIFRoZSBnb2FsIG9m
IHRoaXMKKyAgICAgICAgb3V0cHV0IGlzIHRvIGxvb2sgZXhhY3RseSBsaWtlIFdQVCdzIGV4cGVj
dGF0aW9uIG1ldGFkYXRhIHNvIHRoYXQgaXQKKyAgICAgICAgY2FuIGJlIGVhc2lseSBkaWZmLWVk
LgorCisgICAgICAgIE1lc3NhZ2VzIGFyZSBhcHBlbmRlZCB2ZXJiYXRpbSB0byBzZWxmLm1lc3Nh
Z2VzW3Rlc3RdLgogICAgICAgICAiIiIKLSAgICAgICAgIyBOT1RFOiB0aHJvdWdob3V0IHRoaXMg
ZnVuY3Rpb24gd2Ugb3V0cHV0IGEga2V5IGNhbGxlZCAiZXhwZWN0ZWQiIGJ1dAotICAgICAgICAj
IGZpbGwgaXQgaW4gd2l0aCB0aGUgYWN0dWFsIHN0YXR1cy4gVGhpcyBpcyBieSBkZXNpZ24uIFRo
ZSBnb2FsIG9mIHRoaXMKLSAgICAgICAgIyBvdXRwdXQgaXMgdG8gbG9vayBleGFjdGx5IGxpa2Ug
V1BUJ3MgZXhwZWN0YXRpb24gbWV0YWRhdGEgc28gdGhhdCBpdAotICAgICAgICAjIGNhbiBiZSBl
YXNpbHkgZGlmZi1lZC4KICAgICAgICAgaWYgc3VidGVzdDoKICAgICAgICAgICAgIHJlc3VsdCA9
ICIgIFslc11cbiAgICBleHBlY3RlZDogJXNcbiIgJSAoc3VidGVzdCwgd3B0X2FjdHVhbF9zdGF0
dXMpCisgICAgICAgICAgICBzZWxmLmFjdHVhbF9tZXRhZGF0YVt0ZXN0XS5hcHBlbmQocmVzdWx0
KQogICAgICAgICAgICAgaWYgbWVzc2FnZToKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gIiAg
ICBtZXNzYWdlOiAlc1xuIiAlIG1lc3NhZ2UKLSAgICAgICAgICAgIHNlbGYubWVzc2FnZXNbdGVz
dF0uYXBwZW5kKHJlc3VsdCkKKyAgICAgICAgICAgICAgICBzZWxmLm1lc3NhZ2VzW3Rlc3RdLmFw
cGVuZCgiJXM6ICVzXG4iICUgKHN1YnRlc3QsIG1lc3NhZ2UpKQogICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgIyBObyBzdWJ0ZXN0LCBzbyB0aGlzIGlzIHRoZSB0b3AtbGV2ZWwgdGVzdC4gVGhl
IHJlc3VsdCBtdXN0IGJlCi0gICAgICAgICAgICAjIHByZXBlbmRlZCB0byB0aGUgbGlzdCBvZiBt
ZXNzYWdlcywgc28gdGhhdCB0aGUgbWVzc2FnZSBmb3IgdGhlCi0gICAgICAgICAgICAjIHRlc3Qg
Y29tZXMgYmVmb3JlIGFueSBzdWJ0ZXN0IG1lc3NhZ2VzLgorICAgICAgICAgICAgIyBwcmVwZW5k
ZWQgdG8gdGhlIGxpc3QsIHNvIHRoYXQgaXQgY29tZXMgYmVmb3JlIGFueSBzdWJ0ZXN0LgogICAg
ICAgICAgICAgdGVzdF9uYW1lX2xhc3RfcGFydCA9IHRlc3Quc3BsaXQoIi8iKVstMV0KICAgICAg
ICAgICAgIHJlc3VsdCA9ICJbJXNdXG4gIGV4cGVjdGVkOiAlc1xuIiAlICh0ZXN0X25hbWVfbGFz
dF9wYXJ0LCB3cHRfYWN0dWFsX3N0YXR1cykKKyAgICAgICAgICAgIHNlbGYuYWN0dWFsX21ldGFk
YXRhW3Rlc3RdLmluc2VydCgwLCByZXN1bHQpCiAgICAgICAgICAgICBpZiBtZXNzYWdlOgotICAg
ICAgICAgICAgICAgIHJlc3VsdCArPSAiICBtZXNzYWdlOiAlc1xuIiAlIG1lc3NhZ2UKLSAgICAg
ICAgICAgIHNlbGYubWVzc2FnZXNbdGVzdF0uaW5zZXJ0KDAsIHJlc3VsdCkKKyAgICAgICAgICAg
ICAgICBzZWxmLm1lc3NhZ2VzW3Rlc3RdLmluc2VydCgwLCAiSGFybmVzczogJXNcbiIgJSBtZXNz
YWdlKQogCiAgICAgZGVmIF9hcHBlbmRfYXJ0aWZhY3Qoc2VsZiwgY3VyX2RpY3QsIGFydGlmYWN0
X25hbWUsIGFydGlmYWN0X3ZhbHVlKToKICAgICAgICAgIiIiCkBAIC04NiwxMyArOTMsMTYgQEAg
Y2xhc3MgQ2hyb21pdW1Gb3JtYXR0ZXIoYmFzZS5CYXNlRm9ybWF0dGVyKToKICAgICAgICAgICAg
IGN1cl9kaWN0WyJhcnRpZmFjdHMiXSA9IGRlZmF1bHRkaWN0KGxpc3QpCiAgICAgICAgIGN1cl9k
aWN0WyJhcnRpZmFjdHMiXVthcnRpZmFjdF9uYW1lXS5hcHBlbmQoYXJ0aWZhY3RfdmFsdWUpCiAK
LSAgICBkZWYgX3N0b3JlX3Rlc3RfcmVzdWx0KHNlbGYsIG5hbWUsIGFjdHVhbCwgZXhwZWN0ZWQs
IG1lc3NhZ2VzLCB3cHRfYWN0dWFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidGVz
dF9mYWlsdXJlLCByZWZ0ZXN0X3NjcmVlbnNob3RzKToKKyAgICBkZWYgX3N0b3JlX3Rlc3RfcmVz
dWx0KHNlbGYsIG5hbWUsIGFjdHVhbCwgZXhwZWN0ZWQsIGFjdHVhbF9tZXRhZGF0YSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLCB3cHRfYWN0dWFsLCBzdWJ0ZXN0X2ZhaWx1
cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X3NjcmVlbnNob3RzPU5vbmUp
OgogICAgICAgICAiIiIKICAgICAgICAgU3RvcmVzIHRoZSByZXN1bHQgb2YgYSBzaW5nbGUgdGVz
dCBpbiB8c2VsZi50ZXN0c3wKKwogICAgICAgICA6cGFyYW0gc3RyIG5hbWU6IG5hbWUgb2YgdGhl
IHRlc3QuCiAgICAgICAgIDpwYXJhbSBzdHIgYWN0dWFsOiBhY3R1YWwgc3RhdHVzIG9mIHRoZSB0
ZXN0LgogICAgICAgICA6cGFyYW0gc3RyIGV4cGVjdGVkOiBleHBlY3RlZCBzdGF0dXNlcyBvZiB0
aGUgdGVzdC4KKyAgICAgICAgOnBhcmFtIGxpc3QgYWN0dWFsX21ldGFkYXRhOiBhIGxpc3Qgb2Yg
bWV0YWRhdGEgaXRlbXMuCiAgICAgICAgIDpwYXJhbSBsaXN0IG1lc3NhZ2VzOiBhIGxpc3Qgb2Yg
dGVzdCBtZXNzYWdlcy4KICAgICAgICAgOnBhcmFtIHN0ciB3cHRfYWN0dWFsOiBhY3R1YWwgc3Rh
dHVzIHJlcG9ydGVkIGJ5IHdwdCwgbWF5IGRpZmZlciBmcm9tIHxhY3R1YWx8LgogICAgICAgICA6
cGFyYW0gYm9vbCBzdWJ0ZXN0X2ZhaWx1cmU6IHdoZXRoZXIgdGhpcyB0ZXN0IGZhaWxlZCBiZWNh
dXNlIG9mIHN1YnRlc3RzLgpAQCAtMTEyLDEwICsxMjIsMTIgQEAgY2xhc3MgQ2hyb21pdW1Gb3Jt
YXR0ZXIoYmFzZS5CYXNlRm9ybWF0dGVyKToKICAgICAgICAgaWYgd3B0X2FjdHVhbCAhPSBhY3R1
YWw6CiAgICAgICAgICAgICBzZWxmLl9hcHBlbmRfYXJ0aWZhY3QoY3VyX2RpY3QsICJ3cHRfYWN0
dWFsX3N0YXR1cyIsIHdwdF9hY3R1YWwpCiAgICAgICAgIGlmIHdwdF9hY3R1YWwgPT0gJ0NSQVNI
JzoKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYudGVzdF9sb2c6CisgICAgICAgICAgICBm
b3IgbGluZSBpbiBzZWxmLmJyb3dzZXJfbG9nOgogICAgICAgICAgICAgICAgIHNlbGYuX2FwcGVu
ZF9hcnRpZmFjdChjdXJfZGljdCwgIndwdF9jcmFzaF9sb2ciLCBsaW5lKQorICAgICAgICBmb3Ig
bWV0YWRhdGEgaW4gYWN0dWFsX21ldGFkYXRhOgorICAgICAgICAgICAgc2VsZi5fYXBwZW5kX2Fy
dGlmYWN0KGN1cl9kaWN0LCAid3B0X2FjdHVhbF9tZXRhZGF0YSIsIG1ldGFkYXRhKQogICAgICAg
ICBmb3IgbWVzc2FnZSBpbiBtZXNzYWdlczoKLSAgICAgICAgICAgIHNlbGYuX2FwcGVuZF9hcnRp
ZmFjdChjdXJfZGljdCwgImxvZyIsIG1lc3NhZ2UpCisgICAgICAgICAgICBzZWxmLl9hcHBlbmRf
YXJ0aWZhY3QoY3VyX2RpY3QsICJ3cHRfbG9nIiwgbWVzc2FnZSkKIAogICAgICAgICAjIFN0b3Jl
IHNjcmVlbnNob3RzIChpZiBhbnkpLgogICAgICAgICBmb3IgaXRlbSBpbiByZWZ0ZXN0X3NjcmVl
bnNob3RzIG9yIFtdOgpAQCAtMTcyLDcgKzE4NCw3IEBAIGNsYXNzIENocm9taXVtRm9ybWF0dGVy
KGJhc2UuQmFzZUZvcm1hdHRlcik6CiAgICAgICAgIHRvIHRoZSBhY3R1YWwgc3RhdHVzIGlmIGl0
J3Mgbm90LgogCiAgICAgICAgIElmIHRoZSB0ZXN0IGhhcyBtdWx0aXBsZSBzdGF0dXNlcywgaXQg
d2lsbCBoYXZlIG90aGVyIHN0YXR1c2VzIGxpc3RlZCBhcwotICAgICAgICAia25vd25faW50ZXJt
aXR0ZW50IiBpbiB8ZGF0YXwuIElmIHRoZXNlIGV4aXN0LCB0aGV5IHdpbGwgYmUgYXBwZW5kZWQg
dG8KKyAgICAgICAgImtub3duX2ludGVybWl0dGVudCIgaW4gfGRhdGF8LiBJZiB0aGVzZSBleGlz
dCwgdGhleSB3aWxsIGJlIGFkZGVkIHRvCiAgICAgICAgIHRoZSByZXR1cm5lZCBzdGF0dXMgd2l0
aCBzcGFjZWQgaW4gYmV0d2Vlbi4KIAogICAgICAgICA6cGFyYW0gc3RyIGFjdHVhbF9zdGF0dXM6
IHRoZSBhY3R1YWwgc3RhdHVzIG9mIHRoZSB0ZXN0CkBAIC0xODEsOCArMTkzLDkgQEAgY2xhc3Mg
Q2hyb21pdW1Gb3JtYXR0ZXIoYmFzZS5CYXNlRm9ybWF0dGVyKToKICAgICAgICAgIiIiCiAgICAg
ICAgIGV4cGVjdGVkX3N0YXR1c2VzID0gc2VsZi5fbWFwX3N0YXR1c19uYW1lKGRhdGFbImV4cGVj
dGVkIl0pIGlmICJleHBlY3RlZCIgaW4gZGF0YSBlbHNlIGFjdHVhbF9zdGF0dXMKICAgICAgICAg
aWYgZGF0YS5nZXQoImtub3duX2ludGVybWl0dGVudCIpOgotICAgICAgICAgICAgZXhwZWN0ZWRf
c3RhdHVzZXMgKz0gIiAiICsgIiAiLmpvaW4oCi0gICAgICAgICAgICAgICAgW3NlbGYuX21hcF9z
dGF0dXNfbmFtZShvdGhlcl9zdGF0dXMpIGZvciBvdGhlcl9zdGF0dXMgaW4gZGF0YVsia25vd25f
aW50ZXJtaXR0ZW50Il1dKQorICAgICAgICAgICAgYWxsX3N0YXRzdWVzID0ge3NlbGYuX21hcF9z
dGF0dXNfbmFtZShvdGhlcl9zdGF0dXMpIGZvciBvdGhlcl9zdGF0dXMgaW4gZGF0YVsia25vd25f
aW50ZXJtaXR0ZW50Il19CisgICAgICAgICAgICBhbGxfc3RhdHN1ZXMuYWRkKGV4cGVjdGVkX3N0
YXR1c2VzKQorICAgICAgICAgICAgZXhwZWN0ZWRfc3RhdHVzZXMgPSAiICIuam9pbihzb3J0ZWQo
YWxsX3N0YXRzdWVzKSkKICAgICAgICAgcmV0dXJuIGV4cGVjdGVkX3N0YXR1c2VzCiAKICAgICBk
ZWYgc3VpdGVfc3RhcnQoc2VsZiwgZGF0YSk6CkBAIC0yMjksMTkgKzI0MiwyMSBAQCBjbGFzcyBD
aHJvbWl1bUZvcm1hdHRlcihiYXNlLkJhc2VGb3JtYXR0ZXIpOgogICAgICAgICBzZWxmLl9zdG9y
ZV90ZXN0X3Jlc3VsdCh0ZXN0X25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFjdHVhbF9zdGF0dXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVk
X3N0YXR1c2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFjdHVhbF9t
ZXRhZGF0YVt0ZXN0X25hbWVdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
Lm1lc3NhZ2VzW3Rlc3RfbmFtZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdw
dF9hY3R1YWxfc3RhdHVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0
X2ZhaWx1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuZ2V0KCJleHRy
YSIsIHt9KS5nZXQoInJlZnRlc3Rfc2NyZWVuc2hvdHMiKSkKIAotICAgICAgICAjIFJlbW92ZSB0
aGUgdGVzdCBmcm9tIG1lc3NhZ2VzIGRpY3QgdG8gYXZvaWQgYWNjdW11bGF0aW5nIHRvbyBtYW55
LgorICAgICAgICAjIFJlbW92ZSB0aGUgdGVzdCBmcm9tIGRpY3RzIHRvIGF2b2lkIGFjY3VtdWxh
dGluZyB0b28gbWFueS4KKyAgICAgICAgc2VsZi5hY3R1YWxfbWV0YWRhdGEucG9wKHRlc3RfbmFt
ZSkKICAgICAgICAgc2VsZi5tZXNzYWdlcy5wb3AodGVzdF9uYW1lKQogCiAgICAgICAgICMgVXBk
YXRlIHRoZSBjb3VudCBvZiBob3cgbWFueSB0ZXN0cyByYW4gd2l0aCBlYWNoIHN0YXR1cy4KICAg
ICAgICAgc2VsZi5udW1fZmFpbHVyZXNfYnlfc3RhdHVzW2FjdHVhbF9zdGF0dXNdICs9IDEKIAog
ICAgICAgICAjIE5ldyB0ZXN0LCBuZXcgYnJvd3NlciBsb2dzLgotICAgICAgICBzZWxmLnRlc3Rf
bG9nID0gW10KKyAgICAgICAgc2VsZi5icm93c2VyX2xvZyA9IFtdCiAKICAgICBkZWYgc3VpdGVf
ZW5kKHNlbGYsIGRhdGEpOgogICAgICAgICAjIENyZWF0ZSB0aGUgZmluYWwgcmVzdWx0IGRpY3Rp
b25hcnkKQEAgLTI1OCw0ICsyNzMsNCBAQCBjbGFzcyBDaHJvbWl1bUZvcm1hdHRlcihiYXNlLkJh
c2VGb3JtYXR0ZXIpOgogCiAgICAgZGVmIHByb2Nlc3Nfb3V0cHV0KHNlbGYsIGRhdGEpOgogICAg
ICAgICBpZiAnY29tbWFuZCcgaW4gZGF0YSBhbmQgJ2Nocm9tZWRyaXZlcicgaW4gZGF0YVsnY29t
bWFuZCddOgotICAgICAgICAgICAgc2VsZi50ZXN0X2xvZy5hcHBlbmQoZGF0YVsnZGF0YSddKQor
ICAgICAgICAgICAgc2VsZi5icm93c2VyX2xvZy5hcHBlbmQoZGF0YVsnZGF0YSddKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMvdGVzdF9jaHJvbWl1bS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3Rlc3RfY2hyb21pdW0ucHkKaW5kZXggOGY4ZTcz
MmQ0NzM2MzM3Y2NmZWNiYjEzZjFmYjhiNTkwYzlkZjUyYS4uNTVhMTJiMWQ3NzQ4YWVkOTdiMzhh
NTY4NDhmMDUyZDc3NDEyZGNjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMv
dGVzdHMvdGVzdF9jaHJvbWl1bS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy90ZXN0
cy90ZXN0X2Nocm9taXVtLnB5CkBAIC0xNTcsMTcgKzE1NywyNCBAQCBkZWYgdGVzdF9zdWJ0ZXN0
X21lc3NhZ2VzKGNhcGZkKToKICAgICBvdXRwdXRfanNvbiA9IGpzb24ubG9hZChvdXRwdXQpCiAK
ICAgICB0MV9hcnRpZmFjdHMgPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDEiXVsiYXJ0aWZhY3Rz
Il0KLSAgICBhc3NlcnQgdDFfYXJ0aWZhY3RzWyJsb2ciXSA9PSBbCisgICAgYXNzZXJ0IHQxX2Fy
dGlmYWN0c1sid3B0X2FjdHVhbF9tZXRhZGF0YSJdID09IFsKICAgICAgICAgIlt0MV1cbiAgZXhw
ZWN0ZWQ6IFBBU1NcbiIsCi0gICAgICAgICIgIFt0MV9hXVxuICAgIGV4cGVjdGVkOiBGQUlMXG4g
ICAgbWVzc2FnZTogdDFfYV9tZXNzYWdlXG4iLAotICAgICAgICAiICBbdDFfYl1cbiAgICBleHBl
Y3RlZDogUEFTU1xuICAgIG1lc3NhZ2U6IHQxX2JfbWVzc2FnZVxuIiwKKyAgICAgICAgIiAgW3Qx
X2FdXG4gICAgZXhwZWN0ZWQ6IEZBSUxcbiIsCisgICAgICAgICIgIFt0MV9iXVxuICAgIGV4cGVj
dGVkOiBQQVNTXG4iLAorICAgIF0KKyAgICBhc3NlcnQgdDFfYXJ0aWZhY3RzWyJ3cHRfbG9nIl0g
PT0gWworICAgICAgICAidDFfYTogdDFfYV9tZXNzYWdlXG4iLAorICAgICAgICAidDFfYjogdDFf
Yl9tZXNzYWdlXG4iLAogICAgIF0KICAgICBhc3NlcnQgdDFfYXJ0aWZhY3RzWyJ3cHRfc3VidGVz
dF9mYWlsdXJlIl0gPT0gWyJ0cnVlIl0KICAgICB0Ml9hcnRpZmFjdHMgPSBvdXRwdXRfanNvblsi
dGVzdHMiXVsidDIiXVsiYXJ0aWZhY3RzIl0KLSAgICBhc3NlcnQgdDJfYXJ0aWZhY3RzWyJsb2ci
XSA9PSBbCi0gICAgICAgICJbdDJdXG4gIGV4cGVjdGVkOiBUSU1FT1VUXG4gIG1lc3NhZ2U6IHQy
X21lc3NhZ2VcbiIsCisgICAgYXNzZXJ0IHQyX2FydGlmYWN0c1sid3B0X2FjdHVhbF9tZXRhZGF0
YSJdID09IFsKKyAgICAgICAgIlt0Ml1cbiAgZXhwZWN0ZWQ6IFRJTUVPVVRcbiIsCiAgICAgICAg
ICIgIFt0Ml9hXVxuICAgIGV4cGVjdGVkOiBQQVNTXG4iLAogICAgIF0KKyAgICBhc3NlcnQgdDJf
YXJ0aWZhY3RzWyJ3cHRfbG9nIl0gPT0gWworICAgICAgICAiSGFybmVzczogdDJfbWVzc2FnZVxu
IgorICAgIF0KICAgICBhc3NlcnQgIndwdF9zdWJ0ZXN0X2ZhaWx1cmUiIG5vdCBpbiB0Ml9hcnRp
ZmFjdHMua2V5cygpCiAKIApAQCAtMjEwLDExICsyMTcsMTcgQEAgZGVmIHRlc3Rfc3VidGVzdF9m
YWlsdXJlKGNhcGZkKToKIAogICAgIHRlc3Rfb2JqID0gb3V0cHV0X2pzb25bInRlc3RzIl1bInQx
Il0KICAgICB0MV9hcnRpZmFjdHMgPSB0ZXN0X29ialsiYXJ0aWZhY3RzIl0KLSAgICBhc3NlcnQg
dDFfYXJ0aWZhY3RzWyJsb2ciXSA9PSBbCi0gICAgICAgICJbdDFdXG4gIGV4cGVjdGVkOiBQQVNT
XG4gIG1lc3NhZ2U6IHRvcF9tZXNzYWdlXG4iLAotICAgICAgICAiICBbdDFfYV1cbiAgICBleHBl
Y3RlZDogRkFJTFxuICAgIG1lc3NhZ2U6IHQxX2FfbWVzc2FnZVxuIiwKLSAgICAgICAgIiAgW3Qx
X2JdXG4gICAgZXhwZWN0ZWQ6IFBBU1NcbiAgICBtZXNzYWdlOiB0MV9iX21lc3NhZ2VcbiIsCi0g
ICAgICAgICIgIFt0MV9jXVxuICAgIGV4cGVjdGVkOiBUSU1FT1VUXG4gICAgbWVzc2FnZTogdDFf
Y19tZXNzYWdlXG4iLAorICAgIGFzc2VydCB0MV9hcnRpZmFjdHNbIndwdF9hY3R1YWxfbWV0YWRh
dGEiXSA9PSBbCisgICAgICAgICJbdDFdXG4gIGV4cGVjdGVkOiBQQVNTXG4iLAorICAgICAgICAi
ICBbdDFfYV1cbiAgICBleHBlY3RlZDogRkFJTFxuIiwKKyAgICAgICAgIiAgW3QxX2JdXG4gICAg
ZXhwZWN0ZWQ6IFBBU1NcbiIsCisgICAgICAgICIgIFt0MV9jXVxuICAgIGV4cGVjdGVkOiBUSU1F
T1VUXG4iLAorICAgIF0KKyAgICBhc3NlcnQgdDFfYXJ0aWZhY3RzWyJ3cHRfbG9nIl0gPT0gWwor
ICAgICAgICAiSGFybmVzczogdG9wX21lc3NhZ2VcbiIsCisgICAgICAgICJ0MV9hOiB0MV9hX21l
c3NhZ2VcbiIsCisgICAgICAgICJ0MV9iOiB0MV9iX21lc3NhZ2VcbiIsCisgICAgICAgICJ0MV9j
OiB0MV9jX21lc3NhZ2VcbiIsCiAgICAgXQogICAgIGFzc2VydCB0MV9hcnRpZmFjdHNbIndwdF9z
dWJ0ZXN0X2ZhaWx1cmUiXSA9PSBbInRydWUiXQogICAgICMgVGhlIHN0YXR1cyBvZiB0aGUgdGVz
dCBpbiB0aGUgb3V0cHV0IGlzIGEgZmFpbHVyZSBiZWNhdXNlIHN1YnRlc3RzIGZhaWxlZCwKQEAg
LTI2NiwxMyArMjc5LDE2IEBAIGRlZiB0ZXN0X2V4cGVjdGVkX3N1YnRlc3RfZmFpbHVyZShjYXBm
ZCk6CiAgICAgb3V0cHV0X2pzb24gPSBqc29uLmxvYWQob3V0cHV0KQogCiAgICAgdGVzdF9vYmog
PSBvdXRwdXRfanNvblsidGVzdHMiXVsidDEiXQotICAgIHQxX2xvZyA9IHRlc3Rfb2JqWyJhcnRp
ZmFjdHMiXVsibG9nIl0KLSAgICBwcmludCgiTHB6IHQxbG9nPSVzIiAlIHQxX2xvZykKLSAgICBh
c3NlcnQgdDFfbG9nID09IFsKKyAgICBhc3NlcnQgdGVzdF9vYmpbImFydGlmYWN0cyJdWyJ3cHRf
YWN0dWFsX21ldGFkYXRhIl0gPT0gWwogICAgICAgICAiW3QxXVxuICBleHBlY3RlZDogT0tcbiIs
Ci0gICAgICAgICIgIFt0MV9hXVxuICAgIGV4cGVjdGVkOiBGQUlMXG4gICAgbWVzc2FnZTogdDFf
YV9tZXNzYWdlXG4iLAotICAgICAgICAiICBbdDFfYl1cbiAgICBleHBlY3RlZDogUEFTU1xuICAg
IG1lc3NhZ2U6IHQxX2JfbWVzc2FnZVxuIiwKLSAgICAgICAgIiAgW3QxX2NdXG4gICAgZXhwZWN0
ZWQ6IFRJTUVPVVRcbiAgICBtZXNzYWdlOiB0MV9jX21lc3NhZ2VcbiIsCisgICAgICAgICIgIFt0
MV9hXVxuICAgIGV4cGVjdGVkOiBGQUlMXG4iLAorICAgICAgICAiICBbdDFfYl1cbiAgICBleHBl
Y3RlZDogUEFTU1xuIiwKKyAgICAgICAgIiAgW3QxX2NdXG4gICAgZXhwZWN0ZWQ6IFRJTUVPVVRc
biIsCisgICAgXQorICAgIGFzc2VydCB0ZXN0X29ialsiYXJ0aWZhY3RzIl1bIndwdF9sb2ciXSA9
PSBbCisgICAgICAgICJ0MV9hOiB0MV9hX21lc3NhZ2VcbiIsCisgICAgICAgICJ0MV9iOiB0MV9i
X21lc3NhZ2VcbiIsCisgICAgICAgICJ0MV9jOiB0MV9jX21lc3NhZ2VcbiIsCiAgICAgXQogICAg
ICMgVGhlIHN0YXR1cyBvZiB0aGUgdGVzdCBpbiB0aGUgb3V0cHV0IGlzIGEgcGFzcyBiZWNhdXNl
IHRoZSBzdWJ0ZXN0CiAgICAgIyBmYWlsdXJlcyB3ZXJlIGFsbCBleHBlY3RlZC4KQEAgLTMxNiw5
ICszMzIsMTIgQEAgZGVmIHRlc3RfdW5leHBlY3RlZF9zdWJ0ZXN0X3Bhc3MoY2FwZmQpOgogCiAg
ICAgdGVzdF9vYmogPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDEiXQogICAgIHQxX2FydGlmYWN0
cyA9IHRlc3Rfb2JqWyJhcnRpZmFjdHMiXQotICAgIGFzc2VydCB0MV9hcnRpZmFjdHNbImxvZyJd
ID09IFsKKyAgICBhc3NlcnQgdDFfYXJ0aWZhY3RzWyJ3cHRfYWN0dWFsX21ldGFkYXRhIl0gPT0g
WwogICAgICAgICAiW3QxXVxuICBleHBlY3RlZDogUEFTU1xuIiwKLSAgICAgICAgIiAgW3QxX2Fd
XG4gICAgZXhwZWN0ZWQ6IFBBU1NcbiAgICBtZXNzYWdlOiB0MV9hX21lc3NhZ2VcbiIsCisgICAg
ICAgICIgIFt0MV9hXVxuICAgIGV4cGVjdGVkOiBQQVNTXG4iLAorICAgIF0KKyAgICBhc3NlcnQg
dDFfYXJ0aWZhY3RzWyJ3cHRfbG9nIl0gPT0gWworICAgICAgICAidDFfYTogdDFfYV9tZXNzYWdl
XG4iLAogICAgIF0KICAgICBhc3NlcnQgdDFfYXJ0aWZhY3RzWyJ3cHRfc3VidGVzdF9mYWlsdXJl
Il0gPT0gWyJ0cnVlIl0KICAgICAjIFNpbmNlIHRoZSBzdWJ0ZXN0IHN0YXR1cyBpcyB1bmV4cGVj
dGVkLCB3ZSBmYWlsIHRoZSB0ZXN0LiBCdXQgd2UgcmVwb3J0CkBAIC00MjYsOCArNDQ1LDggQEAg
ZGVmIHRlc3RfZmxha3lfdGVzdF9leHBlY3RlZChjYXBmZCk6CiAgICAgdGVzdF9vYmogPSBvdXRw
dXRfanNvblsidGVzdHMiXVsidDEiXQogICAgICMgVGhlIHRlc3QncyBzdGF0dXNlcyBhcmUgYWxs
IG1hcHBlZCwgY2hhbmdpbmcgRVJST1ItPkZBSUwgYW5kIE9LLT5QQVNTCiAgICAgYXNzZXJ0IHRl
c3Rfb2JqWyJhY3R1YWwiXSA9PSAiRkFJTCIKLSAgICAjIEFsbCB0aGUgcG9zc2libGUgc3RhdHVz
ZXMgYXJlIGNvbmNhdGVuYXRlZCB0b2dldGhlciBpbnRvIGV4cGVjdGVkLgotICAgIGFzc2VydCB0
ZXN0X29ialsiZXhwZWN0ZWQiXSA9PSAiUEFTUyBGQUlMIFRJTUVPVVQiCisgICAgIyBBbGwgdGhl
IHBvc3NpYmxlIHN0YXR1c2VzIGFyZSBtZXJnZWQgYW5kIHNvcnRlZCB0b2dldGhlciBpbnRvIGV4
cGVjdGVkLgorICAgIGFzc2VydCB0ZXN0X29ialsiZXhwZWN0ZWQiXSA9PSAiRkFJTCBQQVNTIFRJ
TUVPVVQiCiAgICAgIyAuLi50aGlzIGlzIG5vdCBhIHJlZ3Jlc3Npb24gb3IgdW5leHBlY3RlZCBi
ZWNhdXNlIHRoZSBhY3R1YWwgc3RhdHVzIGlzIG9uZQogICAgICMgb2YgdGhlIGV4cGVjdGVkIG9u
ZXMKICAgICBhc3NlcnQgImlzX3JlZ3Jlc3Npb24iIG5vdCBpbiB0ZXN0X29iagpAQCAtNDYyLDcg
KzQ4MSw3IEBAIGRlZiB0ZXN0X2ZsYWt5X3Rlc3RfdW5leHBlY3RlZChjYXBmZCk6CiAgICAgdGVz
dF9vYmogPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDEiXQogICAgICMgVGhlIHRlc3QncyBzdGF0
dXNlcyBhcmUgYWxsIG1hcHBlZCwgY2hhbmdpbmcgRVJST1ItPkZBSUwgYW5kIE9LLT5QQVNTCiAg
ICAgYXNzZXJ0IHRlc3Rfb2JqWyJhY3R1YWwiXSA9PSAiRkFJTCIKLSAgICAjIEFsbCB0aGUgcG9z
c2libGUgc3RhdHVzZXMgYXJlIGNvbmNhdGVuYXRlZCB0b2dldGhlciBpbnRvIGV4cGVjdGVkLgor
ICAgICMgQWxsIHRoZSBwb3NzaWJsZSBzdGF0dXNlcyBhcmUgbWVyZ2VkIGFuZCBzb3J0ZWQgdG9n
ZXRoZXIgaW50byBleHBlY3RlZC4KICAgICBhc3NlcnQgdGVzdF9vYmpbImV4cGVjdGVkIl0gPT0g
IlBBU1MgVElNRU9VVCIKICAgICAjIC4uLnRoaXMgaXMgYSByZWdyZXNzaW9uIGFuZCB1bmV4cGVj
dGVkIGJlY2F1c2UgdGhlIGFjdHVhbCBzdGF0dXMgaXMgbm90CiAgICAgIyBvbmUgb2YgdGhlIGV4
cGVjdGVkIG9uZXMKQEAgLTUzNiw2ICs1NTUsMzkgQEAgZGVmIHRlc3Rfa25vd25faW50ZXJtaXR0
ZW50X2VtcHR5KGNhcGZkKToKICAgICBhc3NlcnQgdGVzdF9vYmpbImV4cGVjdGVkIl0gPT0gIlBB
U1MiCiAKIAorZGVmIHRlc3Rfa25vd25faW50ZXJtaXR0ZW50X2R1cGxpY2F0ZShjYXBmZCk6Cisg
ICAgIyBXZSBkb24ndCB3YW50IHRvIGhhdmUgZHVwbGljYXRlIHN0YXR1c2VzIGluIHRoZSBmaW5h
bCAiZXhwZWN0ZWQiIGZpZWxkLgorCisgICAgIyBTZXQgdXAgdGhlIGhhbmRsZXIuCisgICAgb3V0
cHV0ID0gU3RyaW5nSU8oKQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExv
Z2dlcigidGVzdF9hIikKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIoaGFuZGxlcnMuU3RyZWFtSGFu
ZGxlcihvdXRwdXQsIENocm9taXVtRm9ybWF0dGVyKCkpKQorCisgICAgIyBUaGVyZSBhcmUgdHdv
IGR1cGxpY2F0aW9ucyBpbiB0aGlzIGlucHV0OgorICAgICMgMS4ga25vd25faW50ZXJtaXR0ZW50
IGFscmVhZHkgY29udGFpbnMgZXhwZWN0ZWQ7CisgICAgIyAyLiBib3RoIHN0YXR1c2VzIGluIGtu
b3duX2ludGVybWl0dGVudCBtYXAgdG8gRkFJTCBpbiBDaHJvbWl1bS4KKyAgICAjIEluIHRoZSBl
bmQsIHdlIHNob3VsZCBvbmx5IGdldCBvbmUgRkFJTCBpbiBDaHJvbWl1bSAiZXhwZWN0ZWQiLgor
ICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInQxIl0sIHJ1bl9pbmZvPXt9LCB0aW1lPTEyMykKKyAg
ICBsb2dnZXIudGVzdF9zdGFydCgidDEiKQorICAgIGxvZ2dlci50ZXN0X2VuZCgidDEiLCBzdGF0
dXM9IkVSUk9SIiwgZXhwZWN0ZWQ9IkVSUk9SIiwga25vd25faW50ZXJtaXR0ZW50PVsiRkFJTCIs
ICJFUlJPUiJdKQorICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBDaGVjayBub3RoaW5n
IGdvdCBvdXRwdXQgdG8gc3Rkb3V0L3N0ZGVyci4KKyAgICAjIChOb3RlIHRoYXQgbW96bG9nIG91
dHB1dHMgZXhjZXB0aW9ucyBkdXJpbmcgaGFuZGxpbmcgdG8gc3RkZXJyISkKKyAgICBjYXB0dXJl
ZCA9IGNhcGZkLnJlYWRvdXRlcnIoKQorICAgIGFzc2VydCBjYXB0dXJlZC5vdXQgPT0gIiIKKyAg
ICBhc3NlcnQgY2FwdHVyZWQuZXJyID09ICIiCisKKyAgICAjIENoZWNrIHRoZSBhY3R1YWwgb3V0
cHV0IG9mIHRoZSBmb3JtYXR0ZXIuCisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfanNv
biA9IGpzb24ubG9hZChvdXRwdXQpCisKKyAgICB0ZXN0X29iaiA9IG91dHB1dF9qc29uWyJ0ZXN0
cyJdWyJ0MSJdCisgICAgYXNzZXJ0IHRlc3Rfb2JqWyJhY3R1YWwiXSA9PSAiRkFJTCIKKyAgICAj
IE5vIGR1cGxpY2F0ZSAiRkFJTCIgaW4gImV4cGVjdGVkIi4KKyAgICBhc3NlcnQgdGVzdF9vYmpb
ImV4cGVjdGVkIl0gPT0gIkZBSUwiCisKKwogZGVmIHRlc3RfcmVmdGVzdF9zY3JlZW5zaG90cyhj
YXBmZCk6CiAgICAgIyByZWZ0ZXN0X3NjcmVlbnNob3RzLCBpZiBwcmVzZW50LCBzaG91bGQgYmUg
cGx1bWJlZCBpbnRvIGFydGlmYWN0cy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlm
ZXN0dXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0dXBkYXRlLnB5CmluZGV4IDEyOTQ1
N2IzZmQxMjcwZGM2NjAyOWQzZWE4NzNkMzUzNzE0YWE2MDcuLmM3NDYzMmIwNDg2Y2ViODkxYjg1
NWMxNTczZTA5MDQ1OWQ3MThhNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVw
ZGF0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUucHkKQEAgLTcxOCwxNSAr
NzE4LDE4IEBAIGNsYXNzIEV4cGVjdGVkVXBkYXRlKFByb3BlcnR5VXBkYXRlKToKICAgICAgICAg
ICAgICMgYWRkIHRoZW0gaW4gdG8gZXhwZWN0ZWQuCiAgICAgICAgICAgICBpZiBjb3VudCA+IDAg
b3Igbm90IHNlbGYucmVtb3ZlX2ludGVybWl0dGVudDoKICAgICAgICAgICAgICAgICBleHBlY3Rl
ZC5hcHBlbmQoc3RhdHVzKQorCisgICAgICAgICMgSWYgdGhlIG5ldyBpbnRlcm1pdHRlbnQgaXMg
YSBzdWJzZXQgb2YgdGhlIGV4aXN0aW5nIG9uZSwganVzdCB1c2UgdGhlIGV4aXN0aW5nIG9uZQor
ICAgICAgICAjIFRoaXMgcHJldmVudHMgZnJlcXVlbnQgZmxpcC1mbG9wcGluZyBvZiByZXN1bHRz
IGJldHdlZW4gZS5nLiBbT0ssIFRJTUVPVVRdIGFuZAorICAgICAgICAjIFtUSU1FT1VULCBPS10K
KyAgICAgICAgaWYgY3VycmVudCBhbmQgc2V0KGV4cGVjdGVkKS5pc3N1YnNldChzZXQoY3VycmVu
dCkpOgorICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQKKwogICAgICAgICBpZiBzZWxmLnVwZGF0
ZV9pbnRlcm1pdHRlbnQ6CiAgICAgICAgICAgICBpZiBsZW4oZXhwZWN0ZWQpID09IDE6CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCiAgICAgICAgICAgICByZXR1cm4gZXhwZWN0
ZWQKIAotICAgICAgICAjIElmIG5vdGhpbmcgaGFzIGNoYW5nZWQgYW5kIG5vdCBzZWxmLnVwZGF0
ZV9pbnRlcm1pdHRlbnQsIHByZXNlcnZlIGV4aXN0aW5nCi0gICAgICAgICMgaW50ZXJtaXR0ZW50
LgotICAgICAgICBpZiBzZXQoZXhwZWN0ZWQpLmlzc3Vic2V0KHNldChjdXJyZW50KSk6Ci0gICAg
ICAgICAgICByZXR1cm4gY3VycmVudAogICAgICAgICAjIElmIHdlIGFyZSBub3QgdXBkYXRpbmcg
aW50ZXJtaXR0ZW50cywgcmV0dXJuIHRoZSBzdGF0dXMgd2l0aCB0aGUgaGlnaGVzdCBvY2N1cmVu
Y2UuCiAgICAgICAgIHJldHVybiBleHBlY3RlZFswXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvbXBjb250ZXh0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21wY29udGV4dC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YWFkZTEwNTRjZjQxNjg5OTgxYTUwYjdlYzVkOTQ0YmUxNjgxNDI0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL21wY29udGV4dC5weQpAQCAtMCwwICsxLDIxIEBACitpbXBvcnQgbXVs
dGlwcm9jZXNzaW5nCisKK2ltcG9ydCBzaXgKKworX2NvbnRleHQgPSBOb25lCisKKworY2xhc3Mg
TXBDb250ZXh0KG9iamVjdCk6CisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAg
ICAgICByZXR1cm4gZ2V0YXR0cihtdWx0aXByb2Nlc3NpbmcsIG5hbWUpCisKKworZGVmIGdldF9j
b250ZXh0KCk6CisgICAgZ2xvYmFsIF9jb250ZXh0CisKKyAgICBpZiBfY29udGV4dCBpcyBOb25l
OgorICAgICAgICBpZiBzaXguUFkyOgorICAgICAgICAgICAgX2NvbnRleHQgPSBNcENvbnRleHQo
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgX2NvbnRleHQgPSBtdWx0aXByb2Nlc3Npbmcu
Z2V0X2NvbnRleHQoInNwYXduIikKKyAgICByZXR1cm4gX2NvbnRleHQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0ZHJpdmVyLWV4dHJhLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXIt
ZXh0cmEuanMKaW5kZXggOWMwYzY5YWYzYTNmMjc4ZTgwNTNiMGE5OTA3Y2QxZGQ3Y2FlOWRiYy4u
ZTE1NjUyZGNkZmI0Y2Y0NTE4ZjRmM2NiZDQ5NDAwNzU0ZDJiOGRlMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2
ZXItZXh0cmEuanMKQEAgLTM0LDcgKzM0LDcgQEAKICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5
cGUgPT09ICJ0ZXN0ZHJpdmVyLWNvbXBsZXRlIikgewogICAgICAgICAgICAgY29uc3QgY21kX2lk
ID0gZGF0YS5jbWRfaWQ7CiAgICAgICAgICAgICBjb25zdCBbb25fc3VjY2Vzcywgb25fZmFpbHVy
ZV0gPSBwZW5kaW5nLmdldChjbWRfaWQpOwotICAgICAgICAgICAgcGVuZGluZy5jbGVhcihjbWRf
aWQpOworICAgICAgICAgICAgcGVuZGluZy5kZWxldGUoY21kX2lkKTsKICAgICAgICAgICAgIGNv
bnN0IHJlc29sdmVyID0gZGF0YS5zdGF0dXMgPT09ICJzdWNjZXNzIiA/IG9uX3N1Y2Nlc3MgOiBv
bl9mYWlsdXJlOwogICAgICAgICAgICAgcmVzb2x2ZXIoZGF0YSk7CiAgICAgICAgICAgICBpZiAo
aXNfdGVzdF9jb250ZXh0KSB7CkBAIC0xNjksNiArMTY5LDEwIEBACiAgICAgICAgIHJldHVybiBj
cmVhdGVfYWN0aW9uKCJjbGljayIsIHtzZWxlY3RvciwgY29udGV4dH0pOwogICAgIH07CiAKKyAg
ICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuZGVsZXRlX2FsbF9jb29raWVzID0gZnVuY3Rp
b24oY29udGV4dD1udWxsKSB7CisgICAgICAgIHJldHVybiBjcmVhdGVfYWN0aW9uKCJkZWxldGVf
YWxsX2Nvb2tpZXMiLCB7Y29udGV4dH0pOworICAgIH07CisKICAgICB3aW5kb3cudGVzdF9kcml2
ZXJfaW50ZXJuYWwuc2VuZF9rZXlzID0gZnVuY3Rpb24oZWxlbWVudCwga2V5cykgewogICAgICAg
ICBjb25zdCBzZWxlY3RvciA9IGdldF9zZWxlY3RvcihlbGVtZW50KTsKICAgICAgICAgY29uc3Qg
Y29udGV4dCA9IGdldF9jb250ZXh0KGVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVw
b3J0LXNlcnZvLmpzCmluZGV4IGExMGI2OWRmNTUwNGZhYjg3NTE0N2FmMjZkOTI1ZWJjY2U1MWVj
MDAuLjRhMjdkYzI3ZWY2ZjI2YjRmMzU5ZDVhMDEzYmNlNGEyMWFmNTE3MzggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2by5qcworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMKQEAgLTEsNCArMSw0IEBACi12YXIgcHJvcHMg
PSB7b3V0cHV0OiUob3V0cHV0KWR9OwordmFyIHByb3BzID0ge291dHB1dDolKG91dHB1dClkLCBk
ZWJ1ZzogJShkZWJ1ZylzfTsKIHZhciBzdGFydF9sb2MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdhJyk7CiBzdGFydF9sb2MuaHJlZiA9IGxvY2F0aW9uLmhyZWY7CiBzZXR1cChwcm9wcyk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIuanMKaW5kZXggYzg4
ODQxMzYwNDcwZjhkZDNhZWMyMjI0NDkyOWRkYTQ5ZmFkYWYzMi4uNzgxOTUzOGRiYjhmNGE4MDdk
NWRiMjY0OWMyNTQwODU0OTk2Yzg2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJu
ZXNzcmVwb3J0LXNlcnZvZHJpdmVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3Jl
cG9ydC1zZXJ2b2RyaXZlci5qcwpAQCAtMSw0ICsxLDQgQEAKLXNldHVwKHtvdXRwdXQ6JShvdXRw
dXQpZH0pOworc2V0dXAoe291dHB1dDolKG91dHB1dClkLCBkZWJ1ZzogJShkZWJ1ZylzfSk7CiAK
IGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgewogICAgIGFkZF9jb21wbGV0aW9u
X2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywgc3RhdHVzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBv
cnQuanMKaW5kZXggOWNkNjgwZTE0YWVkM2I2ZjdiOGVlMjNhYTVkMmE1NjI0Y2JlMWZkMi4uZDM4
NTY5MjQ0NWM1MDg2ZDBhZDQ4MTU5MjZiN2IyYzJhOTNkZDQ5MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVz
c3JlcG9ydC5qcwpAQCAtNzMsNiArNzMsNyBAQCB3aW5kb3cuX193cHRydW5uZXJfcHJvY2Vzc19u
ZXh0X2V2ZW50ID0gZnVuY3Rpb24oKSB7CiAgIHZhciBwcm9wcyA9IHtvdXRwdXQ6ICUob3V0cHV0
KWQsCiAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI6ICUodGltZW91dF9tdWx0aXBs
aWVyKXMsCiAgICAgICAgICAgICAgICBleHBsaWNpdF90aW1lb3V0OiAlKGV4cGxpY2l0X3RpbWVv
dXQpcywKKyAgICAgICAgICAgICAgIGRlYnVnOiAlKGRlYnVnKXMsCiAgICAgICAgICAgICAgICBt
ZXNzYWdlX2V2ZW50czogWyJjb21wbGV0aW9uIl19OwogCiAgIGFkZF9jb21wbGV0aW9uX2NhbGxi
YWNrKGZ1bmN0aW9uKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3Rsb2FkZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weQppbmRleCA0
YTNmYTQyNzM2NTRhOGE4NmQ1MjI0ZWY2YjBhOWRhZWQ3M2IwMWQ3Li5lNTc2MTliNDVmZWZkYTUz
MzA1YjQzZmYzMDAxY2RkNGIwNzhiNDdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxv
YWRlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weQpAQCAtNSwxMiArNSwxMiBA
QCBmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybHNwbGl0CiBmcm9tIGFiYyBp
bXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKIGZyb20gc2l4Lm1vdmVzLnF1ZXVlIGltcG9y
dCBFbXB0eQogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QsIGRlcXVlCi1mcm9t
IG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUXVldWUKIGZyb20gc2l4IGltcG9ydCBlbnN1cmVfYmlu
YXJ5LCBpdGVyaXRlbXMKIGZyb20gc2l4Lm1vdmVzIGltcG9ydCByYW5nZQogCiBmcm9tIC4gaW1w
b3J0IG1hbmlmZXN0aW5jbHVkZQogZnJvbSAuIGltcG9ydCBtYW5pZmVzdGV4cGVjdGVkCitmcm9t
IC4gaW1wb3J0IG1wY29udGV4dAogZnJvbSAuIGltcG9ydCB3cHR0ZXN0CiBmcm9tIG1vemxvZyBp
bXBvcnQgc3RydWN0dXJlZAogCkBAIC0zOTAsNyArMzkwLDggQEAgY2xhc3MgR3JvdXBlZFNvdXJj
ZShUZXN0U291cmNlKToKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBtYWtlX3F1ZXVlKGNs
cywgdGVzdHMsICoqa3dhcmdzKToKLSAgICAgICAgdGVzdF9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAg
ICAgbXAgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQorICAgICAgICB0ZXN0X3F1ZXVlID0gbXAu
UXVldWUoKQogICAgICAgICBncm91cHMgPSBbXQogCiAgICAgICAgIHN0YXRlID0ge30KQEAgLTQy
Myw3ICs0MjQsOCBAQCBjbGFzcyBHcm91cGVkU291cmNlKFRlc3RTb3VyY2UpOgogY2xhc3MgU2lu
Z2xlVGVzdFNvdXJjZShUZXN0U291cmNlKToKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgbWFr
ZV9xdWV1ZShjbHMsIHRlc3RzLCAqKmt3YXJncyk6Ci0gICAgICAgIHRlc3RfcXVldWUgPSBRdWV1
ZSgpCisgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgdGVzdF9x
dWV1ZSA9IG1wLlF1ZXVlKCkKICAgICAgICAgcHJvY2Vzc2VzID0ga3dhcmdzWyJwcm9jZXNzZXMi
XQogICAgICAgICBxdWV1ZXMgPSBbZGVxdWUoW10pIGZvciBfIGluIHJhbmdlKHByb2Nlc3Nlcyld
CiAgICAgICAgIG1ldGFkYXRhcyA9IFtjbHMuZ3JvdXBfbWV0YWRhdGEoTm9uZSkgZm9yIF8gaW4g
cmFuZ2UocHJvY2Vzc2VzKV0KQEAgLTQ2Nyw3ICs0NjksOCBAQCBjbGFzcyBHcm91cEZpbGVUZXN0
U291cmNlKFRlc3RTb3VyY2UpOgogCiAgICAgICAgIGlkc190b190ZXN0cyA9IHt0ZXN0LmlkOiB0
ZXN0IGZvciB0ZXN0IGluIHRlc3RzfQogCi0gICAgICAgIHRlc3RfcXVldWUgPSBRdWV1ZSgpCisg
ICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkKKyAgICAgICAgdGVzdF9xdWV1ZSA9
IG1wLlF1ZXVlKCkKIAogICAgICAgICBmb3IgZ3JvdXBfbmFtZSwgdGVzdF9pZHMgaW4gaXRlcml0
ZW1zKHRlc3RzX2J5X2dyb3VwKToKICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhID0geyJzY29w
ZSI6IGdyb3VwX25hbWV9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHJ1bm5lci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CmluZGV4IDk2MWM0MGZjNWI4MDk5MTM2ZjM0MWQx
MjYzY2Q4NTUxODBiZmY5YmQuLjhkZDkzNDE4ZGQ4ZjM3ZmMyMjAzMDZmN2E0ZTZkODVlN2ZiOWI1
NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0cnVubmVyLnB5CkBAIC0xLDE0ICsxLDE0IEBACiBmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHVuaWNvZGVfbGl0ZXJhbHMKIAotaW1wb3J0IG11bHRpcHJvY2Vzc2luZwogaW1wb3J0IHRo
cmVhZGluZwogaW1wb3J0IHRyYWNlYmFjawogZnJvbSBzaXgubW92ZXMucXVldWUgaW1wb3J0IEVt
cHR5CiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCi1mcm9tIG11bHRpcHJvY2Vz
c2luZyBpbXBvcnQgUHJvY2VzcywgY3VycmVudF9wcm9jZXNzLCBRdWV1ZQogCiBmcm9tIG1vemxv
ZyBpbXBvcnQgc3RydWN0dXJlZGxvZywgY2FwdHVyZQogCitmcm9tIC4gaW1wb3J0IG1wY29udGV4
dAorCiAjIFNwZWNpYWwgdmFsdWUgdXNlZCBhcyBhIHNlbnRpbmFsIGluIHZhcmlvdXMgY29tbWFu
ZHMKIFN0b3AgPSBvYmplY3QoKQogCkBAIC02OCw3ICs2OCw3IEBAIGNsYXNzIFRlc3RSdW5uZXIo
b2JqZWN0KToKICAgICAgICAgc2VsZi5yZXN1bHRfcXVldWUgPSByZXN1bHRfcXVldWUKIAogICAg
ICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IKLSAgICAgICAgc2VsZi5uYW1lID0gY3VycmVu
dF9wcm9jZXNzKCkubmFtZQorICAgICAgICBzZWxmLm5hbWUgPSBtcGNvbnRleHQuZ2V0X2NvbnRl
eHQoKS5jdXJyZW50X3Byb2Nlc3MoKS5uYW1lCiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2Vy
CiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgpAQCAtMzExLDkgKzMxMSwxMSBAQCBjbGFzcyBU
ZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5leGVjdXRv
cl9jbHMgPSBleGVjdXRvcl9jbHMKICAgICAgICAgc2VsZi5leGVjdXRvcl9rd2FyZ3MgPSBleGVj
dXRvcl9rd2FyZ3MKIAorICAgICAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisKICAg
ICAgICAgIyBGbGFncyB1c2VkIHRvIHNodXQgZG93biB0aGlzIHRocmVhZCBpZiB3ZSBnZXQgYSBz
aWdpbnQKICAgICAgICAgc2VsZi5wYXJlbnRfc3RvcF9mbGFnID0gc3RvcF9mbGFnCi0gICAgICAg
IHNlbGYuY2hpbGRfc3RvcF9mbGFnID0gbXVsdGlwcm9jZXNzaW5nLkV2ZW50KCkKKyAgICAgICAg
c2VsZi5jaGlsZF9zdG9wX2ZsYWcgPSBtcC5FdmVudCgpCiAKICAgICAgICAgc2VsZi5yZXJ1biA9
IHJlcnVuCiAgICAgICAgIHNlbGYucnVuX2NvdW50ID0gMApAQCAtMzI2LDggKzMyOCw4IEBAIGNs
YXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBhc3NlcnQg
cmVjb3JkaW5nIGlzIG5vdCBOb25lCiAgICAgICAgIHNlbGYucmVjb3JkaW5nID0gcmVjb3JkaW5n
CiAKLSAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gUXVldWUoKQotICAgICAgICBzZWxmLnJl
bW90ZV9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gbXAuUXVl
dWUoKQorICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IG1wLlF1ZXVlKCkKIAogICAgICAgICBz
ZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBOb25lCiAKQEAgLTUxOSw5ICs1MjEsMTEgQEAgY2xhc3Mg
VGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgZXhl
Y3V0b3JfYnJvd3Nlcl9rd2FyZ3MsCiAgICAgICAgICAgICAgICAgc2VsZi5jYXB0dXJlX3N0ZGlv
LAogICAgICAgICAgICAgICAgIHNlbGYuY2hpbGRfc3RvcF9mbGFnKQotICAgICAgICBzZWxmLnRl
c3RfcnVubmVyX3Byb2MgPSBQcm9jZXNzKHRhcmdldD1zdGFydF9ydW5uZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz1hcmdzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9IlRlc3RSdW5uZXItJWkiICUgc2VsZi5tYW5h
Z2VyX251bWJlcikKKworICAgICAgICBtcCA9IG1wY29udGV4dC5nZXRfY29udGV4dCgpCisgICAg
ICAgIHNlbGYudGVzdF9ydW5uZXJfcHJvYyA9IG1wLlByb2Nlc3ModGFyZ2V0PXN0YXJ0X3J1bm5l
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3Ms
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iVGVzdFJ1
bm5lci0laSIgJSBzZWxmLm1hbmFnZXJfbnVtYmVyKQogICAgICAgICBzZWxmLnRlc3RfcnVubmVy
X3Byb2Muc3RhcnQoKQogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVGVzdCBydW5uZXIgc3Rh
cnRlZCIpCiAgICAgICAgICMgTm93IHdlIHdhaXQgZm9yIGVpdGhlciBhbiBpbml0X3N1Y2NlZWRl
ZCBldmVudCBvciBhbiBpbml0X2ZhaWxlZCBldmVudApAQCAtNjY0LDggKzY2OCw4IEBAIGNsYXNz
IFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIlVuZXhwZWN0ZWQgY291bnQgaW4gdGhpcyB0aHJlYWQgJWkiICUgc2VsZi51
bmV4cGVjdGVkX2NvdW50KQogCiAgICAgICAgIGlmICJhc3NlcnRpb25fY291bnQiIGluIGZpbGVf
cmVzdWx0LmV4dHJhOgotICAgICAgICAgICAgYXNzZXJ0aW9uX2NvdW50ID0gZmlsZV9yZXN1bHQu
ZXh0cmEucG9wKCJhc3NlcnRpb25fY291bnQiKQotICAgICAgICAgICAgaWYgYXNzZXJ0aW9uX2Nv
dW50ID4gMDoKKyAgICAgICAgICAgIGFzc2VydGlvbl9jb3VudCA9IGZpbGVfcmVzdWx0LmV4dHJh
WyJhc3NlcnRpb25fY291bnQiXQorICAgICAgICAgICAgaWYgYXNzZXJ0aW9uX2NvdW50IGlzIG5v
dCBOb25lIGFuZCBhc3NlcnRpb25fY291bnQgPiAwOgogICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmFzc2VydGlvbl9jb3VudCh0ZXN0LmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQoYXNzZXJ0aW9uX2NvdW50KSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5taW5fYXNzZXJ0aW9uX2NvdW50LApAQCAt
NzY2LDYgKzc3MCw3IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQp
OgogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1Zygid2FpdGluZyBmb3IgcnVubmVyIHByb2Nlc3Mg
dG8gZW5kIikKICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLmpvaW4oMTApCiAgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJBZnRlciBqb2luIikKKyAgICAgICAgbXAgPSBtcGNvbnRleHQu
Z2V0X2NvbnRleHQoKQogICAgICAgICBpZiBzZWxmLnRlc3RfcnVubmVyX3Byb2MuaXNfYWxpdmUo
KToKICAgICAgICAgICAgICMgVGhpcyBtaWdodCBsZWFrIGEgZmlsZSBoYW5kbGUgZnJvbSB0aGUg
cXVldWUKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZvcmNpYmx5IHRlcm1pbmF0
aW5nIHJ1bm5lciBwcm9jZXNzIikKQEAgLTc3Nyw5ICs3ODIsOSBAQCBjbGFzcyBUZXN0UnVubmVy
TWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgICMgKHN1YnNlcXVlbnQgYXR0
ZW1wdHMgdG8gcmV0cmlldmUgaXRlbXMgbWF5IGJsb2NrIGluZGVmaW5pdGVseSkuCiAgICAgICAg
ICAgICAjIERpc2NhcmQgdGhlIHBvdGVudGlhbGx5LWNvcnJ1cHRlZCBxdWV1ZSBhbmQgY3JlYXRl
IGEgbmV3IG9uZS4KICAgICAgICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZS5jbG9zZSgpCi0gICAg
ICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBRdWV1ZSgpCisgICAgICAgICAgICBzZWxmLmNv
bW1hbmRfcXVldWUgPSBtcC5RdWV1ZSgpCiAgICAgICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZS5j
bG9zZSgpCi0gICAgICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAg
ICAgIHNlbGYucmVtb3RlX3F1ZXVlID0gbXAuUXVldWUoKQogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlJ1bm5lciBwcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUg
JWkiICUgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLmV4aXRjb2RlKQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF93ZWJraXRndGsucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHMvYnJvd3NlcnMvdGVzdF93ZWJraXRndGsucHkKaW5kZXggNjE1MGQ1MGFjZjkzZWFjN2Q2
OTYxZDgyNTMxYzQ2OWQ3ZTk5NjdiNy4uOThjMjk4OGRlZWEwNjhkYmQ0N2FkZDE3ZmFhODQ2YTdj
ZDA0ZTExNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfd2Vi
a2l0Z3RrLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0
ay5weQpAQCAtNDEsMTIgKzQxLDEzIEBAIGRlZiB0ZXN0X3dlYmtpdGd0a19jZXJ0aWZpY2F0ZV9k
b21haW5fbGlzdChwcm9kdWN0KToKICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IE5v
bmUKICAgICBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSA9IEZhbHNlCiAgICAga3dhcmdzWyJw
YXVzZV9vbl91bmV4cGVjdGVkIl0gPSBGYWxzZQorICAgIGt3YXJnc1siZGVidWdfdGVzdCJdID0g
RmFsc2UKICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIs
CiAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZV9ob3N0cz17ImFsdCI6ICJleGFtcGxl
Lm9yZyJ9LAogICAgICAgICAgICAgICAgICAgICAgICBzdWJkb21haW5zPXsiYSIsICJiIn0sCiAg
ICAgICAgICAgICAgICAgICAgICAgIG5vdF9zdWJkb21haW5zPXsieCIsICJ5In0pIGFzIGVudl9j
b25maWc6CiAKLSAgICAgICAgZXhlY3V0b3JfYXJncyA9IGdldF9leGVjdXRvcl9rd2FyZ3MoTm9u
ZSwgZW52X2NvbmZpZywgTm9uZSwgTm9uZSwgKiprd2FyZ3MpCisgICAgICAgIGV4ZWN1dG9yX2Fy
Z3MgPSBnZXRfZXhlY3V0b3Jfa3dhcmdzKE5vbmUsIE5vbmUsIGVudl9jb25maWcsIE5vbmUsIE5v
bmUsICoqa3dhcmdzKQogICAgICAgICBhc3NlcnQoJ2NhcGFiaWxpdGllcycgaW4gZXhlY3V0b3Jf
YXJncykKICAgICAgICAgYXNzZXJ0KCd3ZWJraXRndGs6YnJvd3Nlck9wdGlvbnMnIGluIGV4ZWN1
dG9yX2FyZ3NbJ2NhcGFiaWxpdGllcyddKQogICAgICAgICBhc3NlcnQoJ2NlcnRpZmljYXRlcycg
aW4gZXhlY3V0b3JfYXJnc1snY2FwYWJpbGl0aWVzJ11bJ3dlYmtpdGd0azpicm93c2VyT3B0aW9u
cyddKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weQppbmRleCA1ZDJiY2YwNzVkMGY1NzJl
ODk3MmViYTVmZGI0YTViZDM2YjVkYjc1Li43NTc5NGQ0ODEzMTNjNDY4NGQxMDk0YzcwNzhhZjll
ZGQyMjU4Y2JkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weQpAQCAtNDIsNiArNDIs
NyBAQCBkZWYgdGVzdF9zZXJ2ZXJfc3RhcnRfY29uZmlnKHByb2R1Y3QpOgogICAgICAgICB3aXRo
IGVudmlyb25tZW50LlRlc3RFbnZpcm9ubWVudCh0ZXN0X3BhdGhzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5v
bmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudl9vcHRpb25z
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InR5cGUiOiAibm9u
ZSJ9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5CmluZGV4IGExYmE4ZGUyODc4MDY0NzU0NGIy
MmNiMTEyNzU2OGQ1N2Q0ZGNhYzQuLjc3MDQzODM5ODIxNTU1Njc4NWZhMzMwMTQ4ZGY4ODAzOTM2
MjZlMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3VwZGF0ZS5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkKQEAgLTQ0Miw3ICs0NDIsNyBAQCBk
ZWYgdGVzdF91cGRhdGVfcmVvcmRlcl9leHBlY3RlZCgpOgogCiAgICAgYXNzZXJ0IG5vdCBuZXdf
bWFuaWZlc3QuaXNfZW1wdHkKICAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3Rf
aWQpLmNoaWxkcmVuWzBdLmdldCgKLSAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5m
bykgPT0gWyJGQUlMIiwgIlBBU1MiXQorICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9p
bmZvKSA9PSBbIlBBU1MiLCAiRkFJTCJdCiAKIAogZGVmIHRlc3RfdXBkYXRlX2FuZF9wcmVzZXJ2
ZV91bmNoYW5nZWRfZXhwZWN0ZWRfaW50ZXJtaXR0ZW50KCk6CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdXBkYXRlL3N0YXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zdGF0ZS5weQppbmRl
eCBiZGIyM2ZlZDk5ZTE5ZmE1NWFiZWVjNzIwMmEzYTFiNDcxYmVkYzAzLi42YjZmZjFhN2UwOGJj
MGM4NWEzMzljN2IwNzVlOTczZmU4N2JhY2E4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBk
YXRlL3N0YXRlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKQEAgLTk3LDcg
Kzk3LDcgQEAgY2xhc3MgU2F2ZWRTdGF0ZShCYXNlU3RhdGUpOgogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoY2xzLmZpbGVuYW1lKToKICAgICAgICAgICAg
ICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgd2l0aCBvcGVuKGNscy5maWxlbmFtZSkgYXMg
ZjoKKyAgICAgICAgICAgIHdpdGggb3BlbihjbHMuZmlsZW5hbWUsICJyYiIpIGFzIGY6CiAgICAg
ICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBydiA9IHBpY2tsZS5sb2FkKGYp
CiAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiTG9hZGluZyBkYXRhICVyIiAlIChy
di5fZGF0YSwpKQpAQCAtMTExLDcgKzExMSw3IEBAIGNsYXNzIFNhdmVkU3RhdGUoQmFzZVN0YXRl
KToKIAogICAgIGRlZiBzYXZlKHNlbGYpOgogICAgICAgICAiIiJXcml0ZSB0aGUgc3RhdGUgdG8g
ZGlzayIiIgotICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInciKSBhcyBmOgorICAg
ICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgIndiIikgYXMgZjoKICAgICAgICAgICAgIHBp
Y2tsZS5kdW1wKHNlbGYsIGYpCiAKICAgICBkZWYgY2xlYXIoc2VsZik6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cK
aW5kZXggZTFlMTdmNGNiMjY1ZmJmNzY4OTFhZDI0Y2NhZTM4MjZhNzU4YzVhOC4uYjUzNjdjMzlk
ZWRjOGRhODcyNmIxOWQzNGQ4ZGI4YjZjYzZlMGZmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZwpAQCAtMjUs
NiArMjUsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUu
cHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWV0YWRh
dGEucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvbXBjb250ZXh0LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3ByaW50X3Jl
ZnRlc3RfcnVubmVyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvY2Vzcy5weQogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9wcm9kdWN0cy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5CmluZGV4IDE1ZDIzMjI0OTRkYmU1YzI4
MWNiNzdkYjdhMWMwZGQ3NTRlN2RiMmEuLjJiNmQ0YjM1N2M5Mjk5NTk2MzQ4NWJhZDBhOWJjYWM2
ZDUxZjRiMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRjb21tYW5kbGluZS5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKQEAgLTE3MCw2ICsxNzAsOCBAQCBzY2hl
bWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSJIYWx0IHRoZSB0ZXN0IHJ1bm5lciBhZnRlciBlYWNoIHRlc3QgKHRoaXMgaGFwcGVucyBi
eSBkZWZhdWx0IGlmIG9ubHkgYSBzaW5nbGUgdGVzdCBpcyBydW4pIikKICAgICBkZWJ1Z2dpbmdf
Z3JvdXAuYWRkX2FyZ3VtZW50KCctLW5vLXBhdXNlLWFmdGVyLXRlc3QnLCBkZXN0PSJwYXVzZV9h
ZnRlcl90ZXN0IiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJEb24ndCBoYWx0IHRoZSB0ZXN0IHJ1bm5lciBpcnJlc3BlY3RpdmUg
b2YgdGhlIG51bWJlciBvZiB0ZXN0cyBydW4iKQorICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJn
dW1lbnQoJy0tZGVidWctdGVzdCcsIGRlc3Q9ImRlYnVnX3Rlc3QiLCBhY3Rpb249InN0b3JlX3Ry
dWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUnVuIHRlc3RzIHdp
dGggYWRkaXRpb25hbCBkZWJ1Z2dpbmcgZmVhdHVyZXMgZW5hYmxlZCIpCiAKICAgICBkZWJ1Z2dp
bmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCctLXBhdXNlLW9uLXVuZXhwZWN0ZWQnLCBhY3Rpb249InN0
b3JlX3RydWUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iSGFsdCB0
aGUgdGVzdCBydW5uZXIgd2hlbiBhbiB1bmV4cGVjdGVkIHJlc3VsdCBpcyBlbmNvdW50ZXJlZCIp
CkBAIC0xOTYsNiArMTk4LDggQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogICAgIGNvbmZp
Z19ncm91cC5hZGRfYXJndW1lbnQoJy0td2ViZHJpdmVyLWFyZycsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PVtdLCBhY3Rpb249ImFwcGVuZCIsIGRlc3Q9IndlYmRyaXZl
cl9hcmdzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkV4dHJhIGFyZ3Vt
ZW50IGZvciB0aGUgV2ViRHJpdmVyIGJpbmFyeSIpCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1
bWVudCgiLS1hZGItYmluYXJ5IiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGFkYiBiaW5hcnkgdG8gdXNlIikKICAgICBjb25maWdf
Z3JvdXAuYWRkX2FyZ3VtZW50KCItLXBhY2thZ2UtbmFtZSIsIGFjdGlvbj0ic3RvcmUiLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQW5kcm9pZCBwYWNrYWdlIG5hbWUgdG8g
cnVuIHRlc3RzIGFnYWluc3QiKQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tZGV2
aWNlLXNlcmlhbCIsIGFjdGlvbj0ic3RvcmUiLApAQCAtNTkwLDcgKzU5NCw3IEBAIGRlZiBjaGVj
a19hcmdzKGt3YXJncyk6CiAgICAgICAgIGt3YXJnc1sicmVmdGVzdF9pbnRlcm5hbCJdID0gVHJ1
ZQogCiAgICAgaWYga3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXSBpcyBOb25lOgotICAgICAg
ICBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdID0gInVuZXhwZWN0ZWQiCisgICAgICAgIGt3
YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0gPSAidW5leHBlY3RlZCIgaWYgbm90IGt3YXJnc1si
ZGVidWdfdGVzdCJdIGVsc2UgImFsd2F5cyIKIAogICAgIGlmIGt3YXJnc1siZW5hYmxlX3dlYnJl
bmRlciJdIGlzIE5vbmU6CiAgICAgICAgIGt3YXJnc1siZW5hYmxlX3dlYnJlbmRlciJdID0gRmFs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
d3B0cnVubmVyLnB5CmluZGV4IGUxZDllZjhiMWE5MWRkMmQ0NDQ1OGM4YzlkMDI3NTM3OTkxZjRj
YzkuLjcxODI1MTBhMjlkMzBmMDdhM2NmMWVkYzU5ZDMwMjgwNDIwNmZiMTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5w
eQpAQCAtMyw2ICszLDcgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbiwg
dW5pY29kZV9saXRlcmFscwogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHN5cworCiBm
cm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zLCBpdGVydmFsdWVzCiAKIGltcG9ydCB3cHRzZXJ2ZQpA
QCAtMTAsNiArMTEsNyBAQCBmcm9tIHdwdHNlcnZlIGltcG9ydCBzc2x1dGlscwogCiBmcm9tIC4g
aW1wb3J0IGVudmlyb25tZW50IGFzIGVudgogZnJvbSAuIGltcG9ydCBpbnN0cnVtZW50cworZnJv
bSAuIGltcG9ydCBtcGNvbnRleHQKIGZyb20gLiBpbXBvcnQgcHJvZHVjdHMKIGZyb20gLiBpbXBv
cnQgdGVzdGxvYWRlcgogZnJvbSAuIGltcG9ydCB3cHRjb21tYW5kbGluZQpAQCAtMTM5LDYgKzE0
MSw4IEBAIGRlZiBnZXRfcGF1c2VfYWZ0ZXJfdGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpOgog
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXToK
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBrd2FyZ3NbImRlYnVnX3Rlc3Qi
XToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIHRlc3RzID0gdGVzdF9sb2FkZXIu
dGVzdHMKICAgICAgICAgaXNfc2luZ2xlX3Rlc3RoYXJuZXNzID0gKHN1bShsZW4oaXRlbSkgZm9y
IGl0ZW0gaW4gaXRlcnZhbHVlcyh0ZXN0cykpID09IDEgYW5kCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsZW4odGVzdHMuZ2V0KCJ0ZXN0aGFybmVzcyIsIFtdKSkgPT0gMSkKQEAg
LTE1MSwxMSArMTU1LDE0IEBAIGRlZiBnZXRfcGF1c2VfYWZ0ZXJfdGVzdCh0ZXN0X2xvYWRlciwg
Kiprd2FyZ3MpOgogZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoq
a3dhcmdzKToKICAgICAiIiJTZXQgdXAgdGhlIHRlc3QgZW52aXJvbm1lbnQsIGxvYWQgdGhlIGxp
c3Qgb2YgdGVzdHMgdG8gYmUgZXhlY3V0ZWQsIGFuZAogICAgIGludm9rZSB0aGUgcmVtYWluZGVy
IG9mIHRoZSBjb2RlIHRvIGV4ZWN1dGUgdGVzdHMiIiIKKyAgICBtcCA9IG1wY29udGV4dC5nZXRf
Y29udGV4dCgpCiAgICAgaWYga3dhcmdzWyJpbnN0cnVtZW50X3RvX2ZpbGUiXSBpcyBOb25lOgog
ICAgICAgICByZWNvcmRlciA9IGluc3RydW1lbnRzLk51bGxJbnN0cnVtZW50KCkKICAgICBlbHNl
OgogICAgICAgICByZWNvcmRlciA9IGluc3RydW1lbnRzLkluc3RydW1lbnQoa3dhcmdzWyJpbnN0
cnVtZW50X3RvX2ZpbGUiXSkKLSAgICB3aXRoIHJlY29yZGVyIGFzIHJlY29yZGluZywgY2FwdHVy
ZS5DYXB0dXJlSU8obG9nZ2VyLCBub3Qga3dhcmdzWyJub19jYXB0dXJlX3N0ZGlvIl0pOgorICAg
IHdpdGggcmVjb3JkZXIgYXMgcmVjb3JkaW5nLCBjYXB0dXJlLkNhcHR1cmVJTyhsb2dnZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBrd2Fy
Z3NbIm5vX2NhcHR1cmVfc3RkaW8iXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXBfY29udGV4dD1tcCk6CiAgICAgICAgIHJlY29yZGluZy5zZXQo
WyJzdGFydHVwIl0pCiAgICAgICAgIGVudi5kb19kZWxheWVkX2ltcG9ydHMobG9nZ2VyLCB0ZXN0
X3BhdGhzKQogCkBAIC0yMTksNiArMjI2LDcgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3Rf
cGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAgICAgd2l0aCBlbnYuVGVzdEVudmlyb25t
ZW50KHRlc3RfcGF0aHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aGFy
bmVzc190aW1lb3V0X211bHRpcGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAga3dhcmdzWyJkZWJ1Z190ZXN0Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBrd2FyZ3NbImRlYnVnX2luZm8iXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByb2R1Y3QuZW52X29wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzc2xfY29uZmlnLApAQCAtMjc1LDEzICsyODMsMTYgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcs
IHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAgICAgICAgICAgICAgICAgZWxz
ZToKICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfY2xzID0gcHJvZHVjdC5icm93c2Vy
X2NscwogCi0gICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfa3dhcmdzID0gcHJvZHVjdC5nZXRf
YnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAgICBicm93c2VyX2t3
YXJncyA9IHByb2R1Y3QuZ2V0X2Jyb3dzZXJfa3dhcmdzKGxvZ2dlciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5
cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXRlc3RfZW52aXJvbm1lbnQuY29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG51bV90ZXN0X2dyb3Vwcz1sZW4odGVzdF9ncm91cHMpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKQogCiAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscyA9IHByb2R1Y3QuZXhl
Y3V0b3JfY2xhc3Nlcy5nZXQodGVzdF90eXBlKQotICAgICAgICAgICAgICAgICAgICBleGVjdXRv
cl9rd2FyZ3MgPSBwcm9kdWN0LmdldF9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLAorICAgICAg
ICAgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MgPSBwcm9kdWN0LmdldF9leGVjdXRvcl9rd2Fy
Z3MobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVu
dC5jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNhY2hlX21hbmFnZXIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5faW5mbywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHR0ZXN0LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdHRlc3QucHkKaW5kZXggZTIxMDQxYjY0MzBhMjY2MWU0MzdmM2U0YTlhNzNk
ZWY2M2VlNmYxYi4uZWQ5MTg0ZWY1ZWNjNjliNDJiMmM0MDUwZWEwN2NjZjQ3MWEzMTJiMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRl
c3QucHkKQEAgLTQ2NCw5ICs0NjQsOSBAQCBjbGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKIAogICAg
IGRlZiBfX2luaXRfXyhzZWxmLCB1cmxfYmFzZSwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21l
dGFkYXRhLCB0ZXN0X21ldGFkYXRhLCByZWZlcmVuY2VzLAogICAgICAgICAgICAgICAgICB0aW1l
b3V0PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3BvcnRfc2l6ZT1Ob25lLCBkcGk9Tm9uZSwgZnV6enk9
Tm9uZSwKLSAgICAgICAgICAgICAgICAgcHJvdG9jb2w9Imh0dHAiLCBxdWljPUZhbHNlKToKKyAg
ICAgICAgICAgICAgICAgcHJvdG9jb2w9Imh0dHAiLCBzdWJkb21haW49RmFsc2UsIHF1aWM9RmFs
c2UpOgogICAgICAgICBUZXN0Ll9faW5pdF9fKHNlbGYsIHVybF9iYXNlLCB0ZXN0c19yb290LCB1
cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCi0gICAgICAgICAg
ICAgICAgICAgICAgcGF0aCwgcHJvdG9jb2wsIHF1aWMpCisgICAgICAgICAgICAgICAgICAgICAg
cGF0aCwgcHJvdG9jb2wsIHN1YmRvbWFpbiwgcXVpYykKIAogICAgICAgICBmb3IgXywgcmVmX3R5
cGUgaW4gcmVmZXJlbmNlczoKICAgICAgICAgICAgIGlmIHJlZl90eXBlIG5vdCBpbiAoIj09Iiwg
IiE9Iik6CkBAIC01MDQsNiArNTA0LDcgQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAg
ICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAog
ICAgICAgICAgICAgICAgICAgIHBhdGg9bWFuaWZlc3RfdGVzdC5wYXRoLAorICAgICAgICAgICAg
ICAgICAgIHN1YmRvbWFpbj1tYW5pZmVzdF90ZXN0LnN1YmRvbWFpbiwKICAgICAgICAgICAgICAg
ICAgICBxdWljPXF1aWMsCiAgICAgICAgICAgICAgICAgICAgKipjbHMuY2xzX2t3YXJncyhtYW5p
ZmVzdF90ZXN0KSkKIApAQCAtNjIyLDEwICs2MjMsMTAgQEAgY2xhc3MgUHJpbnRSZWZ0ZXN0VGVz
dChSZWZ0ZXN0VGVzdCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIHRlc3Rz
X3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwgcmVmZXJlbmNlcywK
ICAgICAgICAgICAgICAgICAgdGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHZpZXdwb3J0X3NpemU9
Tm9uZSwgZHBpPU5vbmUsIGZ1enp5PU5vbmUsCi0gICAgICAgICAgICAgICAgIHBhZ2VfcmFuZ2Vz
PU5vbmUsIHByb3RvY29sPSJodHRwIiwgcXVpYz1GYWxzZSk6CisgICAgICAgICAgICAgICAgIHBh
Z2VfcmFuZ2VzPU5vbmUsIHByb3RvY29sPSJodHRwIiwgc3ViZG9tYWluPUZhbHNlLCBxdWljPUZh
bHNlKToKICAgICAgICAgc3VwZXIoUHJpbnRSZWZ0ZXN0VGVzdCwgc2VsZikuX19pbml0X18odXJs
X2Jhc2UsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNl
cywgdGltZW91dCwgcGF0aCwgdmlld3BvcnRfc2l6ZSwgZHBpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdXp6eSwgcHJvdG9jb2wsIHF1aWM9cXVpYykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnV6enksIHBy
b3RvY29sLCBzdWJkb21haW49c3ViZG9tYWluLCBxdWljPXF1aWMpCiAgICAgICAgIHNlbGYuX3Bh
Z2VfcmFuZ2VzID0gcGFnZV9yYW5nZXMKIAogICAgIEBjbGFzc21ldGhvZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvc2V0dXAucHkKaW5kZXggNzU5Y2I0OGQxZjY1ZjUyZjY1MDBlZDJiODcx
YzdlZjQzMDUxOGFiNi4uZmRkODU2NjQzNWExYzgyNjk0ODdiMDFhYWIyNGMxMjM1MzQxNDRiNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS9zZXR1cC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3NldHVwLnB5CkBAIC0xLDcgKzEsNyBAQAog
ZnJvbSBzZXR1cHRvb2xzIGltcG9ydCBzZXR1cAogCiBQQUNLQUdFX1ZFUlNJT04gPSAnMy4wJwot
ZGVwcyA9IFsic2l4Pj0xLjgiLCAiaDI9PTMuMC4xIl0KK2RlcHMgPSBbInNpeD49MS4xMy4wIiwg
ImgyPj0zLjAuMSJdCiAKIHNldHVwKG5hbWU9J3dwdHNlcnZlJywKICAgICAgIHZlcnNpb249UEFD
S0FHRV9WRVJTSU9OLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvX19p
bml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9fX2luaXRfXy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvX19pbml0X18ucHkKQEAgLTAsMCAr
MSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBk
aXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL19faW5pdF9fLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90
ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2
ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvX19pbml0X18ucHkKQEAgLTAsMCAr
MSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBk
aXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL2ltcG9ydF9oYW5kbGVyLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL2ltcG9ydF9oYW5kbGVyLnB5Cmlu
ZGV4IDNiNDJiMjliZTk1MTc0MDA3ZTFlZDE4ZmMxMGVjY2RlZGQ4MGI1ODEuLmU2MzM5NWUyNzM3
NzZkNzk4ZDYzNDg4ZjE2YWVkMzczNzE3NmRhNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rp
b25hbC9kb2Nyb290L3N1YmRpci9pbXBvcnRfaGFuZGxlci5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0
aW9uYWwvZG9jcm9vdC9zdWJkaXIvaW1wb3J0X2hhbmRsZXIucHkKQEAgLTEsNCArMSw0IEBACi1p
bXBvcnQgZXhhbXBsZV9tb2R1bGUKK2Zyb20gc3ViZGlyIGltcG9ydCBleGFtcGxlX21vZHVsZQog
CiAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC9kb2Nyb290L3N1YmRpci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC9kb2Nyb290L3N1YmRpci93M2MtaW1wb3J0LmxvZwppbmRleCA2YmMyODMzMmE0NTdlYmQwZjM0
Mjc2MjE2OWY3MTk4YzhkNjZhZTg3Li41ZDI1ZWZlMzdhZjkzZDhmOTJlYmRlMjhjOWUzMjdmYWRl
MjE1MDZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvdzNj
LWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL3czYy1p
bXBvcnQubG9nCkBAIC0xNCw2ICsxNCw3IEBAIFByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgogTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9fX2luaXRfXy5weQogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC9kb2Nyb290L3N1YmRpci9leGFtcGxlX21vZHVsZS5weQogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rp
b25hbC9kb2Nyb290L3N1YmRpci9maWxlLnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290
L3N1YmRpci9pbXBvcnRfaGFuZGxlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFs
L2RvY3Jvb3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC93M2Mt
aW1wb3J0LmxvZwppbmRleCA1ZDMxNmY0MzE1OGUyYjVhMTFiNDRiZWMzNDgxODQ0MjE4MzM2ZTNk
Li4yMmZmNTVkMmU0MWM2YWYwMjk3ZTQ2NGQxYzhkOWVjMWJkNTY4ODgyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1
bmN0aW9uYWwvZG9jcm9vdC93M2MtaW1wb3J0LmxvZwpAQCAtMTQsNiArMTQsNyBAQCBQcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9fX2luaXRfXy5w
eQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Jhci5hbnkud29ya2VyLmpzCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0
cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZG9jdW1lbnQudHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2Rv
Y3Jvb3QvZm9vLmFueS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9z
dGFzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3N0YXNoLnB5CmluZGV4IDBiOTYwYzFl
OWY4NjA5ZGNiZDgyZGJiMzMzNDM0ZmUwZDI3MDAxODUuLjFjNGM5YWQ5MzNhMzc3NDY2MjNhMDE5
NWY1NTNhZDhjZmU3MDY4OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3N0
YXNoLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3N0YXNoLnB5CkBAIC0xLDQgKzEs
MyBAQAotaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgdXVpZAogCkBAIC0xMCw4
ICs5LDYgQEAgZnJvbSB3cHRzZXJ2ZS5zdGFzaCBpbXBvcnQgU3Rhc2hTZXJ2ZXIKIGZyb20gLmJh
c2UgaW1wb3J0IFRlc3RVc2luZ1NlcnZlcgogCiAKLUBweXRlc3QubWFyay5za2lwaWYoc3lzLnZl
cnNpb25faW5mbyA+PSAoMywgOCkgYW5kIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJywKLSAgICAg
ICAgICAgICAgICAgICAgcmVhc29uPSJtdWx0aXByb2Nlc3NpbmcgdGVzdCBoYW5ncyBpbiBQeXRo
b24gMy44IG9uIG1hY09TICgjMjQ4ODApIikKIGNsYXNzIFRlc3RSZXNwb25zZVNldENvb2tpZShU
ZXN0VXNpbmdTZXJ2ZXIpOgogICAgIGRlZiBydW4oc2VsZiwgcmVzdWx0PU5vbmUpOgogICAgICAg
ICB3aXRoIFN0YXNoU2VydmVyKE5vbmUsIGF1dGhrZXk9c3RyKHV1aWQudXVpZDQoKSkpOgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy90ZXN0X3N0YXNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X3N0YXNoLnB5Cmlu
ZGV4IDMxYWYxNTU4YjBjYzVjMDQ2ODQzZTBlOTY1NjlkYjQyYzQ2N2NmMjIuLjhjYTM5NDRjZGIw
YzIzYWM0OTdmM2Q1MTRmNTg2OWI0YzAyZmNlNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdGVzdF9z
dGFzaC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3Rfc3Rhc2gucHkKQEAgLTEsNiArMSw3IEBACiBpbXBv
cnQgbXVsdGlwcm9jZXNzaW5nCi1pbXBvcnQgc3lzCiBpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQg
c3lzCisKIGZyb20gbXVsdGlwcm9jZXNzaW5nLm1hbmFnZXJzIGltcG9ydCBCYXNlTWFuYWdlcgog
CiBpbXBvcnQgcHl0ZXN0CkBAIC0yMCw2ICsyMSw3IEBAIGRlZiBhZGRfY2xlYW51cCgpOgogICAg
IGZvciBmbiBpbiBmbnM6CiAgICAgICAgIGZuKCkKIAorCiBkZWYgcnVuKHByb2Nlc3NfcXVldWUs
IHJlcXVlc3RfbG9jaywgcmVzcG9uc2VfbG9jayk6CiAgICAgIiIiQ3JlYXRlIHR3byBTdGFzaCBp
bnN0YW5jZXMgaW4gcGFyYWxsZWwgdGhyZWFkcy4gVXNlIHRoZSBwcm92aWRlZCBsb2NrcwogICAg
IHRvIGVuc3VyZSB0aGUgZmlyc3QgdGhyZWFkIGlzIGFjdGl2ZWx5IGVzdGFibGlzaGluZyBhbiBp
bnRlcnByb2Nlc3MKQEAgLTU4LDYgKzYwLDEyIEBAIGRlZiBydW4ocHJvY2Vzc19xdWV1ZSwgcmVx
dWVzdF9sb2NrLCByZXNwb25zZV9sb2NrKToKICAgICBwcm9jZXNzX3F1ZXVlLnB1dCh0aHJlYWRf
cXVldWUuZ2V0KCkpCiAKIAorY2xhc3MgU2xvd0xvY2soQmFzZU1hbmFnZXIpOgorICAgICMgVGhp
cyBjYW4gb25seSBiZSB1c2VkIGluIHRlc3RfZGVsYXllZF9sb2NrIHNpbmNlIHRoYXQgdGVzdCBt
b2RpZmllcyB0aGUKKyAgICAjIGNsYXNzIGJvZHksIGJ1dCBpdCBoYXMgdG8gYmUgYSBnbG9iYWwg
Zm9yIG11bHRpcHJvY2Vzc2luZworICAgIHBhc3MKKworCiBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnBsYXRmb3JtID09ICJ3aW4zMiIgb3IKICAgICAgICAgICAgICAgICAgICBQWTMgYW5kIG11bHRp
cHJvY2Vzc2luZy5nZXRfc3RhcnRfbWV0aG9kKCkgPT0gInNwYXduIiwKICAgICAgICAgICAgICAg
ICAgICByZWFzb249Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lz
c3Vlcy8xNjkzOCIpCkBAIC02NSw5ICs3Myw2IEBAIGRlZiB0ZXN0X2RlbGF5ZWRfbG9jayhhZGRf
Y2xlYW51cCk6CiAgICAgIiIiRW5zdXJlIHRoYXQgZGVsYXlzIGluIHByb3hpZWQgTG9jayByZXRy
aWV2YWwgZG8gbm90IGludGVyZmVyZSB3aXRoCiAgICAgaW5pdGlhbGl6YXRpb24gaW4gcGFyYWxs
ZWwgdGhyZWFkcy4iIiIKIAotICAgIGNsYXNzIFNsb3dMb2NrKEJhc2VNYW5hZ2VyKToKLSAgICAg
ICAgcGFzcwotCiAgICAgcmVxdWVzdF9sb2NrID0gbXVsdGlwcm9jZXNzaW5nLkxvY2soKQogICAg
IHJlc3BvbnNlX2xvY2sgPSBtdWx0aXByb2Nlc3NpbmcuTG9jaygpCiAKQEAgLTk4LDYgKzEwMywx
MiBAQCBkZWYgdGVzdF9kZWxheWVkX2xvY2soYWRkX2NsZWFudXApOgogICAgICAgICAiYm90aCBp
bnN0YW5jZXMgaGFkIHZhbGlkIGxvY2tzIikKIAogCitjbGFzcyBTbG93RGljdChCYXNlTWFuYWdl
cik6CisgICAgIyBUaGlzIGNhbiBvbmx5IGJlIHVzZWQgaW4gdGVzdF9kZWxheWVkX2RpY3Qgc2lu
Y2UgdGhhdCB0ZXN0IG1vZGlmaWVzIHRoZQorICAgICMgY2xhc3MgYm9keSwgYnV0IGl0IGhhcyB0
byBiZSBhIGdsb2JhbCBmb3IgbXVsdGlwcm9jZXNzaW5nCisgICAgcGFzcworCisKIEBweXRlc3Qu
bWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiBvcgogICAgICAgICAgICAgICAgICAg
IFBZMyBhbmQgbXVsdGlwcm9jZXNzaW5nLmdldF9zdGFydF9tZXRob2QoKSA9PSAic3Bhd24iLAog
ICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvaXNzdWVzLzE2OTM4IikKQEAgLTEwNSw5ICsxMTYsNiBAQCBkZWYgdGVzdF9k
ZWxheWVkX2RpY3QoYWRkX2NsZWFudXApOgogICAgICIiIkVuc3VyZSB0aGF0IGRlbGF5cyBpbiBw
cm94aWVkIGBkaWN0YCByZXRyaWV2YWwgZG8gbm90IGludGVyZmVyZSB3aXRoCiAgICAgaW5pdGlh
bGl6YXRpb24gaW4gcGFyYWxsZWwgdGhyZWFkcy4iIiIKIAotICAgIGNsYXNzIFNsb3dEaWN0KEJh
c2VNYW5hZ2VyKToKLSAgICAgICAgcGFzcwotCiAgICAgcmVxdWVzdF9sb2NrID0gbXVsdGlwcm9j
ZXNzaW5nLkxvY2soKQogICAgIHJlc3BvbnNlX2xvY2sgPSBtdWx0aXByb2Nlc3NpbmcuTG9jaygp
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvaGFuZGxlcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRs
ZXJzLnB5CmluZGV4IGQxZTk2MTRjMDMxMjc5Zjk5MGNmZjFjMTc4NzA4ODQ0OWU1OWNjNDMuLjBm
YzExYzE5MGQxMTExNThlZjNiZjE2OWNmZDZkY2UwMmIyYzZmNGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0
c2VydmUvaGFuZGxlcnMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9oYW5kbGVycy5weQpAQCAtMSw2ICsx
LDUgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKLWltcG9ydCBzeXMKIGltcG9ydCB0cmFjZWJh
Y2sKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CiAKQEAgLTk5LDcgKzk4LDkg
QEAgY2xhc3MgRGlyZWN0b3J5SGFuZGxlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgIHsi
bGluayI6IGxpbmssICJuYW1lIjogIi4uIn0pCiAgICAgICAgIGl0ZW1zID0gW10KICAgICAgICAg
cHJldl9pdGVtID0gTm9uZQotICAgICAgICBmb3IgaXRlbSBpbiBzb3J0ZWQob3MubGlzdGRpcihw
YXRoKSk6CisgICAgICAgICMgVGhpcyBlbnN1cmVzIHRoYXQgLmhlYWRlcnMgYWx3YXlzIHNvcnRz
IGFmdGVyIHRoZSBmaWxlIGl0IHByb3ZpZGVzIHRoZSBoZWFkZXJzIGZvci4gRS5nLiwKKyAgICAg
ICAgIyBpZiB3ZSBoYXZlIHgsIHgteSwgYW5kIHguaGVhZGVycywgdGhlIG9yZGVyIHdpbGwgYmUg
eCwgeC5oZWFkZXJzLCBhbmQgdGhlbiB4LXkuCisgICAgICAgIGZvciBpdGVtIGluIHNvcnRlZChv
cy5saXN0ZGlyKHBhdGgpLCBrZXk9bGFtYmRhIHg6ICh4WzotbGVuKCIuaGVhZGVycyIpXSwgeCkg
aWYgeC5lbmRzd2l0aCgiLmhlYWRlcnMiKSBlbHNlICh4LCB4KSk6CiAgICAgICAgICAgICBpZiBw
cmV2X2l0ZW0gYW5kIHByZXZfaXRlbSArICIuaGVhZGVycyIgPT0gaXRlbToKICAgICAgICAgICAg
ICAgICBpdGVtc1stMV1bMV0gPSBpdGVtCiAgICAgICAgICAgICAgICAgcHJldl9pdGVtID0gTm9u
ZQpAQCAtMjg3LDkgKzI4OCw5IEBAIGNsYXNzIFB5dGhvblNjcmlwdEhhbmRsZXIob2JqZWN0KToK
ICAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgIHJldHVybiAiPCVzIGJhc2VfcGF0aDol
cyB1cmxfYmFzZTolcz4iICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLmJhc2VfcGF0
aCwgc2VsZi51cmxfYmFzZSkKIAotICAgIGRlZiBfc2V0X3BhdGhfYW5kX2xvYWRfZmlsZShzZWxm
LCByZXF1ZXN0LCByZXNwb25zZSwgZnVuYyk6CisgICAgZGVmIF9sb2FkX2ZpbGUoc2VsZiwgcmVx
dWVzdCwgcmVzcG9uc2UsIGZ1bmMpOgogICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBtb2RpZmll
cyB0aGUgYHN5cy5wYXRoYCBhbmQgbG9hZHMgdGhlIHJlcXVlc3RlZCBweXRob24gZmlsZSBhcyBh
biBlbnZpcm9uIHZhcmlhYmxlLgorICAgICAgICBUaGlzIGxvYWRzIHRoZSByZXF1ZXN0ZWQgcHl0
aG9uIGZpbGUgYXMgYW4gZW52aXJvbiB2YXJpYWJsZS4KIAogICAgICAgICBPbmNlIHRoZSBlbnZp
cm9uIGlzIGxvYWRlZCwgdGhlIHBhc3NlZCBgZnVuY2AgaXMgcnVuIHdpdGggdGhpcyBsb2FkZWQg
ZW52aXJvbi4KIApAQCAtMzAwLDExICszMDEsOCBAQCBjbGFzcyBQeXRob25TY3JpcHRIYW5kbGVy
KG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAgICBwYXRoID0gZmlsZXN5c3RlbV9wYXRoKHNl
bGYuYmFzZV9wYXRoLCByZXF1ZXN0LCBzZWxmLnVybF9iYXNlKQogCi0gICAgICAgIHN5c19wYXRo
ID0gc3lzLnBhdGhbOl0KLSAgICAgICAgc3lzX21vZHVsZXMgPSBzeXMubW9kdWxlcy5jb3B5KCkK
ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZW52aXJvbiA9IHsiX19maWxlX18iOiBwYXRofQot
ICAgICAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguZGlybmFtZShwYXRoKSkKICAg
ICAgICAgICAgIHdpdGggb3BlbihwYXRoLCAncmInKSBhcyBmOgogICAgICAgICAgICAgICAgIGV4
ZWMoY29tcGlsZShmLnJlYWQoKSwgcGF0aCwgJ2V4ZWMnKSwgZW52aXJvbiwgZW52aXJvbikKIApA
QCAtMzEzLDkgKzMxMSw2IEBAIGNsYXNzIFB5dGhvblNjcmlwdEhhbmRsZXIob2JqZWN0KToKIAog
ICAgICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAgICAgICAgIHJhaXNlIEhUVFBFeGNlcHRpb24o
NDA0KQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc3lzLnBhdGggPSBzeXNfcGF0aAot
ICAgICAgICAgICAgc3lzLm1vZHVsZXMgPSBzeXNfbW9kdWxlcwogCiAgICAgZGVmIF9fY2FsbF9f
KHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICAgICAgZGVmIGZ1bmMocmVxdWVzdCwgcmVz
cG9uc2UsIGVudmlyb24sIHBhdGgpOgpAQCAtMzI2LDcgKzMyMSw3IEBAIGNsYXNzIFB5dGhvblNj
cmlwdEhhbmRsZXIob2JqZWN0KToKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAg
cmFpc2UgSFRUUEV4Y2VwdGlvbig1MDAsICJObyBtYWluIGZ1bmN0aW9uIGluIHNjcmlwdCAlcyIg
JSBwYXRoKQogCi0gICAgICAgIHNlbGYuX3NldF9wYXRoX2FuZF9sb2FkX2ZpbGUocmVxdWVzdCwg
cmVzcG9uc2UsIGZ1bmMpCisgICAgICAgIHNlbGYuX2xvYWRfZmlsZShyZXF1ZXN0LCByZXNwb25z
ZSwgZnVuYykKIAogICAgIGRlZiBmcmFtZV9oYW5kbGVyKHNlbGYsIHJlcXVlc3QpOgogICAgICAg
ICAiIiIKQEAgLTM1Myw3ICszNDgsNyBAQCBjbGFzcyBQeXRob25TY3JpcHRIYW5kbGVyKG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgSFRUUEV4Y2VwdGlvbig1MDAsICJObyBtYWluIGZ1
bmN0aW9uIG9yIGhhbmRsZXJzIGluIHNjcmlwdCAlcyIgJSBwYXRoKQogCiAgICAgICAgICAgICBy
ZXR1cm4gaGFuZGxlcgotICAgICAgICByZXR1cm4gc2VsZi5fc2V0X3BhdGhfYW5kX2xvYWRfZmls
ZShyZXF1ZXN0LCBOb25lLCBmdW5jKQorICAgICAgICByZXR1cm4gc2VsZi5fbG9hZF9maWxlKHJl
cXVlc3QsIE5vbmUsIGZ1bmMpCiAKIAogcHl0aG9uX3NjcmlwdF9oYW5kbGVyID0gUHl0aG9uU2Ny
aXB0SGFuZGxlcigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jlc3BvbnNlLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRz
ZXJ2ZS9yZXNwb25zZS5weQppbmRleCAxNTE5ZWQ3OGYzOTc2NDY1NTljNDJmYTYzMjJhOGMxNDVh
MTRkMDk0Li42ZTVlZTExNWE1NWMzMjliNWQ0NTdlNDRlNzdiOWU5OTBhOGVhZGFmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3Jlc3BvbnNlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmVzcG9uc2UucHkK
QEAgLTQxLDExICs0MSw2IEBAIGNsYXNzIFJlc3BvbnNlKG9iamVjdCk6CiAgICAgICAgQm9vbGVh
biwgZGVmYXVsdCBGYWxzZSwgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBib2R5IGNvbnRlbnQgc2hv
dWxkIGJlCiAgICAgICAgc2VudCB3aGVuIHRoZSByZXF1ZXN0IG1ldGhvZCBpcyBIRUFELgogCi0g
ICAgLi4gYXR0cmlidXRlOjogZXhwbGljaXRfZmx1c2gKLQotICAgICAgIEJvb2xlYW4gaW5kaWNh
dGluZyB3aGV0aGVyIG91dHB1dCBzaG91bGQgYmUgZmx1c2hlZCBhdXRvbWF0aWNhbGx5IG9yIG9u
bHkKLSAgICAgICB3aGVuIHJlcXVlc3RlZC4KLQogICAgIC4uIGF0dHJpYnV0ZTo6IHdyaXRlcgog
CiAgICAgICAgVGhlIFJlc3BvbnNlV3JpdGVyIGZvciB0aGlzIHJlc3BvbnNlCkBAIC03Myw3ICs2
OCw2IEBAIGNsYXNzIFJlc3BvbnNlKG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5hZGRfcmVxdWly
ZWRfaGVhZGVycyA9IFRydWUKICAgICAgICAgc2VsZi5zZW5kX2JvZHlfZm9yX2hlYWRfcmVxdWVz
dCA9IEZhbHNlCi0gICAgICAgIHNlbGYuZXhwbGljaXRfZmx1c2ggPSBGYWxzZQogICAgICAgICBz
ZWxmLmNsb3NlX2Nvbm5lY3Rpb24gPSBGYWxzZQogCiAgICAgICAgIHNlbGYubG9nZ2VyID0gZ2V0
X2xvZ2dlcigpCkBAIC02NjUsMTEgKzY1OSw3IEBAIGNsYXNzIFJlc3BvbnNlV3JpdGVyKG9iamVj
dCk6CiAgICAgIiIiT2JqZWN0IHByb3ZpZGluZyBhbiBBUEkgdG8gd3JpdGUgb3V0IGEgSFRUUCBy
ZXNwb25zZS4KIAogICAgIDpwYXJhbSBoYW5kbGVyOiBUaGUgUmVxdWVzdEhhbmRsZXIgYmVpbmcg
dXNlZC4KLSAgICA6cGFyYW0gcmVzcG9uc2U6IFRoZSBSZXNwb25zZSBhc3NvY2lhdGVkIHdpdGgg
dGhpcyB3cml0ZXIuCi0KLSAgICBBZnRlciBlYWNoIHBhcnQgb2YgdGhlIHJlc3BvbnNlIGlzIHdy
aXR0ZW4sIHRoZSBvdXRwdXQgaXMKLSAgICBmbHVzaGVkIHVubGVzcyByZXNwb25zZS5leHBsaWNp
dF9mbHVzaCBpcyBGYWxzZSwgaW4gd2hpY2ggY2FzZQotICAgIHRoZSB1c2VyIG11c3QgY2FsbCAu
Zmx1c2goKSBleHBsaWNpdGx5LiIiIgorICAgIDpwYXJhbSByZXNwb25zZTogVGhlIFJlc3BvbnNl
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHdyaXRlci4iIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwg
aGFuZGxlciwgcmVzcG9uc2UpOgogICAgICAgICBzZWxmLl93ZmlsZSA9IGhhbmRsZXIud2ZpbGUK
ICAgICAgICAgc2VsZi5fcmVzcG9uc2UgPSByZXNwb25zZQpAQCAtNzA3LDUyICs2OTcsNjUgQEAg
Y2xhc3MgUmVzcG9uc2VXcml0ZXIob2JqZWN0KToKIAogICAgICAgICA6cGFyYW0gbmFtZTogTmFt
ZSBvZiB0aGUgaGVhZGVyIGZpZWxkCiAgICAgICAgIDpwYXJhbSB2YWx1ZTogVmFsdWUgb2YgdGhl
IGhlYWRlciBmaWVsZAorICAgICAgICA6cmV0dXJuOiBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0
aGVyIHRoZSB3cml0ZSBzdWNjZWVkcwogICAgICAgICAiIiIKICAgICAgICAgaWYgbm90IHNlbGYu
X3N0YXR1c193cml0dGVuOgogICAgICAgICAgICAgc2VsZi53cml0ZV9zdGF0dXMoc2VsZi5kZWZh
dWx0X3N0YXR1cykKICAgICAgICAgc2VsZi5faGVhZGVyc19zZWVuLmFkZChzZWxmLmVuY29kZShu
YW1lLmxvd2VyKCkpKQotICAgICAgICBzZWxmLndyaXRlKG5hbWUpCi0gICAgICAgIHNlbGYud3Jp
dGUoYiI6ICIpCisgICAgICAgIGlmIG5vdCBzZWxmLndyaXRlKG5hbWUpOgorICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5vdCBzZWxmLndyaXRlKGIiOiAiKToKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQogICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBpbnQpOgotICAg
ICAgICAgICAgc2VsZi53cml0ZSh0ZXh0X3R5cGUodmFsdWUpKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgc2VsZi53cml0ZSh2YWx1ZSkKLSAgICAgICAgc2VsZi53cml0ZShiIlxyXG4iKQot
ICAgICAgICBpZiBub3Qgc2VsZi5fcmVzcG9uc2UuZXhwbGljaXRfZmx1c2g6Ci0gICAgICAgICAg
ICBzZWxmLmZsdXNoKCkKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLndyaXRlKHRleHRfdHlwZSh2
YWx1ZSkpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBlbGlmIG5vdCBz
ZWxmLndyaXRlKHZhbHVlKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1
cm4gc2VsZi53cml0ZShiIlxyXG4iKQogCiAgICAgZGVmIHdyaXRlX2RlZmF1bHRfaGVhZGVycyhz
ZWxmKToKICAgICAgICAgZm9yIG5hbWUsIGYgaW4gWygiU2VydmVyIiwgc2VsZi5faGFuZGxlci52
ZXJzaW9uX3N0cmluZyksCiAgICAgICAgICAgICAgICAgICAgICAgICAoIkRhdGUiLCBzZWxmLl9o
YW5kbGVyLmRhdGVfdGltZV9zdHJpbmcpXToKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9zZWVu
X2hlYWRlcihuYW1lKToKLSAgICAgICAgICAgICAgICBzZWxmLndyaXRlX2hlYWRlcihuYW1lLCBm
KCkpCisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYud3JpdGVfaGVhZGVyKG5hbWUsIGYoKSk6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgICAgIGlmIChpc2luc3Rh
bmNlKHNlbGYuX3Jlc3BvbnNlLmNvbnRlbnQsIChiaW5hcnlfdHlwZSwgdGV4dF90eXBlKSkgYW5k
CiAgICAgICAgICAgICBub3Qgc2VsZi5fc2Vlbl9oZWFkZXIoImNvbnRlbnQtbGVuZ3RoIikpOgog
ICAgICAgICAgICAgI1dvdWxkIGJlIG5pY2UgdG8gYXZvaWQgZG91YmxlLWVuY29kaW5nIGhlcmUK
LSAgICAgICAgICAgIHNlbGYud3JpdGVfaGVhZGVyKCJDb250ZW50LUxlbmd0aCIsIGxlbihzZWxm
LmVuY29kZShzZWxmLl9yZXNwb25zZS5jb250ZW50KSkpCisgICAgICAgICAgICBpZiBub3Qgc2Vs
Zi53cml0ZV9oZWFkZXIoIkNvbnRlbnQtTGVuZ3RoIiwgbGVuKHNlbGYuZW5jb2RlKHNlbGYuX3Jl
c3BvbnNlLmNvbnRlbnQpKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAg
ICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiBlbmRfaGVhZGVycyhzZWxmKToKICAgICAgICAgIiIi
RmluaXNoIHdyaXRpbmcgaGVhZGVycyBhbmQgd3JpdGUgdGhlIHNlcGFyYXRvci4KIAogICAgICAg
ICBVbmxlc3MgYWRkX3JlcXVpcmVkX2hlYWRlcnMgb24gdGhlIHJlc3BvbnNlIGlzIEZhbHNlLAog
ICAgICAgICB0aGlzIHdpbGwgYWxzbyBhZGQgSFRUUC1tYW5kYXRlZCBoZWFkZXJzIHRoYXQgaGF2
ZSBub3QgeWV0IGJlZW4gc3VwcGxpZWQKLSAgICAgICAgdG8gdGhlIHJlc3BvbnNlIGhlYWRlcnMi
IiIKKyAgICAgICAgdG8gdGhlIHJlc3BvbnNlIGhlYWRlcnMuCisgICAgICAgIDpyZXR1cm46IEEg
Ym9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHdyaXRlIHN1Y2NlZWRzCisgICAgICAgICIi
IgogCiAgICAgICAgIGlmIHNlbGYuX3Jlc3BvbnNlLmFkZF9yZXF1aXJlZF9oZWFkZXJzOgotICAg
ICAgICAgICAgc2VsZi53cml0ZV9kZWZhdWx0X2hlYWRlcnMoKQorICAgICAgICAgICAgaWYgbm90
IHNlbGYud3JpdGVfZGVmYXVsdF9oZWFkZXJzKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCiAKLSAgICAgICAgc2VsZi53cml0ZSgiXHJcbiIpCisgICAgICAgIGlmIG5vdCBzZWxmLndy
aXRlKCJcclxuIik6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgbm90IHNl
bGYuX3NlZW5faGVhZGVyKCJjb250ZW50LWxlbmd0aCIpOgogICAgICAgICAgICAgc2VsZi5fcmVz
cG9uc2UuY2xvc2VfY29ubmVjdGlvbiA9IFRydWUKLSAgICAgICAgaWYgbm90IHNlbGYuX3Jlc3Bv
bnNlLmV4cGxpY2l0X2ZsdXNoOgotICAgICAgICAgICAgc2VsZi5mbHVzaCgpCiAgICAgICAgIHNl
bGYuX2hlYWRlcnNfY29tcGxldGUgPSBUcnVlCiAKKyAgICAgICAgcmV0dXJuIFRydWUKKwogICAg
IGRlZiB3cml0ZV9jb250ZW50KHNlbGYsIGRhdGEpOgogICAgICAgICAiIiJXcml0ZSB0aGUgYm9k
eSBvZiB0aGUgcmVzcG9uc2UuCiAKLSAgICAgICAgSFRUUC1tYW5kYXRlZCBoZWFkZXJzIHdpbGwg
YmUgYXV0b21hdGljYWxseSBhZGRlZCB3aXRoIHN0YXR1cyBkZWZhdWx0IHRvIDIwMCBpZiB0aGV5
IGhhdmUgbm90IGJlZW4gZXhwbGljaXRseSBzZXQuIiIiCisgICAgICAgIEhUVFAtbWFuZGF0ZWQg
aGVhZGVycyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgd2l0aCBzdGF0dXMgZGVmYXVsdCB0
byAyMDAgaWYgdGhleSBoYXZlCisgICAgICAgIG5vdCBiZWVuIGV4cGxpY2l0bHkgc2V0LgorICAg
ICAgICA6cmV0dXJuOiBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB3cml0ZSBzdWNj
ZWVkcworICAgICAgICAiIiIKICAgICAgICAgaWYgbm90IHNlbGYuX3N0YXR1c193cml0dGVuOgog
ICAgICAgICAgICAgc2VsZi53cml0ZV9zdGF0dXMoc2VsZi5kZWZhdWx0X3N0YXR1cykKICAgICAg
ICAgaWYgbm90IHNlbGYuX2hlYWRlcnNfY29tcGxldGU6CkBAIC03NzIsNyArNzc1LDkgQEAgY2xh
c3MgUmVzcG9uc2VXcml0ZXIob2JqZWN0KToKIAogICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToK
ICAgICAgICAgIiIiV3JpdGUgZGlyZWN0bHkgdG8gdGhlIHJlc3BvbnNlLCBjb252ZXJ0aW5nIHVu
aWNvZGUgdG8gYnl0ZXMKLSAgICAgICAgYWNjb3JkaW5nIHRvIHJlc3BvbnNlLmVuY29kaW5nLiBE
b2VzIG5vdCBmbHVzaC4iIiIKKyAgICAgICAgYWNjb3JkaW5nIHRvIHJlc3BvbnNlLmVuY29kaW5n
LgorICAgICAgICA6cmV0dXJuOiBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB3cml0
ZSBzdWNjZWVkcworICAgICAgICAiIiIKICAgICAgICAgc2VsZi5jb250ZW50X3dyaXR0ZW4gPSBU
cnVlCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuX3dmaWxlLndyaXRlKHNlbGYuZW5j
b2RlKGRhdGEpKQpAQCAtNzgyLDggKzc4Nyw3IEBAIGNsYXNzIFJlc3BvbnNlV3JpdGVyKG9iamVj
dCk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgIGRlZiB3cml0ZV9jb250ZW50X2Zp
bGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIldyaXRlIGEgZmlsZS1saWtlIG9iamVjdCBkaXJl
Y3RseSB0byB0aGUgcmVzcG9uc2UgaW4gY2h1bmtzLgotICAgICAgICBEb2VzIG5vdCBmbHVzaC4i
IiIKKyAgICAgICAgIiIiV3JpdGUgYSBmaWxlLWxpa2Ugb2JqZWN0IGRpcmVjdGx5IHRvIHRoZSBy
ZXNwb25zZSBpbiBjaHVua3MuIiIiCiAgICAgICAgIHNlbGYuY29udGVudF93cml0dGVuID0gVHJ1
ZQogICAgICAgICBzdWNjZXNzID0gVHJ1ZQogICAgICAgICB3aGlsZSBUcnVlOgpAQCAtODA3LDEz
ICs4MTEsMyBAQCBjbGFzcyBSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAgICAgICAgcmV0
dXJuIGRhdGEuZW5jb2RlKHNlbGYuX3Jlc3BvbnNlLmVuY29kaW5nKQogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiZGF0YSAlciBzaG91bGQgYmUgdGV4dCBvciBi
aW5hcnksIGJ1dCBpcyAlcyIgJSAoZGF0YSwgdHlwZShkYXRhKSkpCi0KLSAgICBkZWYgZmx1c2go
c2VsZik6Ci0gICAgICAgICIiIkZsdXNoIHRoZSBvdXRwdXQuIFJldHVybnMgRmFsc2UgaWYgdGhl
IGZsdXNoIGZhaWxlZCBkdWUgdG8KLSAgICAgICAgdGhlIHNvY2tldCBiZWluZyBjbG9zZWQgYnkg
dGhlIHJlbW90ZSBlbmQuIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3dmaWxl
LmZsdXNoKCkKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQu
ZXJyb3I6Ci0gICAgICAgICAgICAjIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgc29ja2V0IGdvdCBj
bG9zZWQgYnkgdGhlIHJlbW90ZSBlbmQKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS93cHRzZXJ2ZS9yb3V0ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weQppbmRleCA1
Yjg2MGI1OTQyNTQ4YmM1YWFiODFjZTYzZGJiZGFkZGE3OTJkZTkwLi5kMTcwNGE3YmJkNTRjMzVi
MzIwNjliOTg1ZTNhMjlhMTA1MDM3OGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weQpAQCAtMSw1ICsxLDYgQEAKIGltcG9ydCBpdGVy
dG9vbHMKIGltcG9ydCByZQoraW1wb3J0IHN5cwogCiBmcm9tIC5sb2dnZXIgaW1wb3J0IGdldF9s
b2dnZXIKIGZyb20gc2l4IGltcG9ydCBiaW5hcnlfdHlwZSwgdGV4dF90eXBlCkBAIC05OCw2ICs5
OSwxNiBAQCBjbGFzcyBSb3V0ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5kb2Nfcm9vdCA9IGRv
Y19yb290CiAgICAgICAgIHNlbGYucm91dGVzID0gW10KICAgICAgICAgc2VsZi5sb2dnZXIgPSBn
ZXRfbG9nZ2VyKCkKKworICAgICAgICAjIEFkZCB0aGUgZG9jX3Jvb3QgdG8gdGhlIFB5dGhvbiBw
YXRoLCBzbyB0aGF0IGFueSBQeXRob24gaGFuZGxlciBjYW4KKyAgICAgICAgIyBjb3JyZWN0bHkg
bG9jYXRlIGhlbHBlciBzY3JpcHRzIChzZWUgUkZDX1RPX0JFX0xJTktFRCkuCisgICAgICAgICMK
KyAgICAgICAgIyBUT0RPOiBJbiBhIHBlcmZlY3Qgd29ybGQsIFJvdXRlciB3b3VsZCBub3QgbmVl
ZCB0byBrbm93IGFib3V0IHRoaXMKKyAgICAgICAgIyBhbmQgdGhlIGhhbmRsZXIgaXRzZWxmIHdv
dWxkIHRha2UgY2FyZSBvZiBpdC4gQ3VycmVudGx5LCBob3dldmVyLCB3ZQorICAgICAgICAjIHRy
ZWF0IGhhbmRsZXJzIGxpa2UgZnVuY3Rpb25zIGFuZCBzbyB0aGVyZSdzIG5vIGVhc3kgd2F5IHRv
IGRvIHRoYXQuCisgICAgICAgIGlmIHNlbGYuZG9jX3Jvb3Qgbm90IGluIHN5cy5wYXRoOgorICAg
ICAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHNlbGYuZG9jX3Jvb3QpCisKICAgICAgICAgZm9y
IHJvdXRlIGluIHJldmVyc2VkKHJvdXRlcyk6CiAgICAgICAgICAgICBzZWxmLnJlZ2lzdGVyKCpy
b3V0ZSkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Nl
cnZlci5weQppbmRleCBkNmM2MTk2NWQ5NmRlOTBlZDc0N2YxYWZhZWE3MDMyMTlmOWU1MDc0Li4y
YjVlZDRhMjdkNTEyNWJhMzQ3NGIyMDM2ZmEwMDY5MjRhNWRlYzFmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dw
dHNlcnZlL3NlcnZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQpAQCAtMTcsMTcgKzE3
LDI0IEBAIGZyb20gc2l4Lm1vdmVzLnF1ZXVlIGltcG9ydCBRdWV1ZQogZnJvbSBoMi5jb25maWcg
aW1wb3J0IEgyQ29uZmlndXJhdGlvbgogZnJvbSBoMi5jb25uZWN0aW9uIGltcG9ydCBIMkNvbm5l
Y3Rpb24KIGZyb20gaDIuZXZlbnRzIGltcG9ydCBSZXF1ZXN0UmVjZWl2ZWQsIENvbm5lY3Rpb25U
ZXJtaW5hdGVkLCBEYXRhUmVjZWl2ZWQsIFN0cmVhbVJlc2V0LCBTdHJlYW1FbmRlZAorZnJvbSBo
Mi5leGNlcHRpb25zIGltcG9ydCBTdHJlYW1DbG9zZWRFcnJvciwgUHJvdG9jb2xFcnJvcgorZnJv
bSBoMi5zZXR0aW5ncyBpbXBvcnQgU2V0dGluZ0NvZGVzCitmcm9tIGgyLnV0aWxpdGllcyBpbXBv
cnQgZXh0cmFjdF9tZXRob2RfaGVhZGVyCiAKIGZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBp
bXBvcnQgdXJsc3BsaXQsIHVybHVuc3BsaXQKIAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGRpc3BhdGNoCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UgaW1wb3J0IEhhbmRzaGFr
ZUV4Y2VwdGlvbgorCiBmcm9tIC4gaW1wb3J0IHJvdXRlcyBhcyBkZWZhdWx0X3JvdXRlcwogZnJv
bSAuY29uZmlnIGltcG9ydCBDb25maWdCdWlsZGVyCiBmcm9tIC5sb2dnZXIgaW1wb3J0IGdldF9s
b2dnZXIKIGZyb20gLnJlcXVlc3QgaW1wb3J0IFNlcnZlciwgUmVxdWVzdCwgSDJSZXF1ZXN0CiBm
cm9tIC5yZXNwb25zZSBpbXBvcnQgUmVzcG9uc2UsIEgyUmVzcG9uc2UKIGZyb20gLnJvdXRlciBp
bXBvcnQgUm91dGVyCi1mcm9tIC51dGlscyBpbXBvcnQgSFRUUEV4Y2VwdGlvbiwgaXNvbW9ycGhp
Y19kZWNvZGUKK2Zyb20gLnV0aWxzIGltcG9ydCBIVFRQRXhjZXB0aW9uLCBpc29tb3JwaGljX2Rl
Y29kZSwgaXNvbW9ycGhpY19lbmNvZGUKIGZyb20gLmNvbnN0YW50cyBpbXBvcnQgaDJfaGVhZGVy
cworZnJvbSAud3NfaDJfaGFuZHNoYWtlIGltcG9ydCBXc0gySGFuZHNoYWtlcgogCiAjIFdlIG5l
ZWQgdG8gc3RyZXNzIHRlc3QgdGhhdCBicm93c2VycyBjYW4gc2VuZC9yZWNlaXZlIG1hbnkgaGVh
ZGVycyAodGhlcmUgaXMKICMgbm8gc3BlY2lmaWVkIGxpbWl0KSwgYnV0IHRoZSBQeXRob24gc3Rk
bGliIGhhcyBhbiBhcmJpdHJhcnkgbGltaXQgb2YgMTAwCkBAIC0xMzEsNyArMTM4LDcgQEAgY2xh
c3MgV2ViVGVzdFNlcnZlcihUaHJlYWRpbmdNaXhJbiwgQmFzZUhUVFBTZXJ2ZXIuSFRUUFNlcnZl
cik6CiAgICAgZGFlbW9uX3RocmVhZHMgPSBUcnVlCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwg
c2VydmVyX2FkZHJlc3MsIHJlcXVlc3RfaGFuZGxlcl9jbHMsCi0gICAgICAgICAgICAgICAgIHJv
dXRlciwgcmV3cml0ZXIsIGJpbmRfYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgcm91dGVyLCBy
ZXdyaXRlciwgYmluZF9hZGRyZXNzLCB3c19kb2Nfcm9vdD1Ob25lLAogICAgICAgICAgICAgICAg
ICBjb25maWc9Tm9uZSwgdXNlX3NzbD1GYWxzZSwga2V5X2ZpbGU9Tm9uZSwgY2VydGlmaWNhdGU9
Tm9uZSwKICAgICAgICAgICAgICAgICAgZW5jcnlwdF9hZnRlcl9jb25uZWN0PUZhbHNlLCBsYXRl
bmN5PU5vbmUsIGh0dHAyPUZhbHNlLCAqKmt3YXJncyk6CiAgICAgICAgICIiIlNlcnZlciBmb3Ig
SFRUUChzKSBSZXF1ZXN0cwpAQCAtMTU2LDYgKzE2Myw4IEBAIGNsYXNzIFdlYlRlc3RTZXJ2ZXIo
VGhyZWFkaW5nTWl4SW4sIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIpOgogCiAgICAgICAgIDpw
YXJhbSBjZXJ0aWZpY2F0ZTogUGF0aCB0byBjZXJ0aWZpY2F0ZSB0byB1c2UgaWYgU1NMIGlzIGVu
YWJsZWQuCiAKKyAgICAgICAgOnBhcmFtIHdzX2RvY19yb290OiBEb2N1bWVudCByb290IGZvciB3
ZWJzb2NrZXRzCisKICAgICAgICAgOnBhcmFtIGVuY3J5cHRfYWZ0ZXJfY29ubmVjdDogRm9yIGVh
Y2ggY29ubmVjdGlvbiwgZG9uJ3Qgc3RhcnQgZW5jcnlwdGlvbgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnRpbCBhIENPTk5FQ1QgbWVzc2FnZSBoYXMgYmVlbiByZWNl
aXZlZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBlbmFibGVz
IHRoZSBzZXJ2ZXIgdG8gYWN0IGFzIGEKQEAgLTE5NSw2ICsyMDQsNyBAQCBjbGFzcyBXZWJUZXN0
U2VydmVyKFRocmVhZGluZ01peEluLCBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyKToKIAogCiAK
KyAgICAgICAgc2VsZi53c19kb2Nfcm9vdCA9IHdzX2RvY19yb290CiAgICAgICAgIHNlbGYua2V5
X2ZpbGUgPSBrZXlfZmlsZQogICAgICAgICBzZWxmLmNlcnRpZmljYXRlID0gY2VydGlmaWNhdGUK
ICAgICAgICAgc2VsZi5lbmNyeXB0X2FmdGVyX2Nvbm5lY3QgPSB1c2Vfc3NsIGFuZCBlbmNyeXB0
X2FmdGVyX2Nvbm5lY3QKQEAgLTM1Myw2ICszNjMsMTQgQEAgY2xhc3MgSHR0cDJXZWJUZXN0UmVx
dWVzdEhhbmRsZXIoQmFzZVdlYlRlc3RSZXF1ZXN0SGFuZGxlcik6CiAgICAgICAgIHNlbGYubG9n
Z2VyLmRlYnVnKCcoJXMpIEluaXRpYXRpbmcgaDIgQ29ubmVjdGlvbicgJSBzZWxmLnVpZCkKIAog
ICAgICAgICB3aXRoIHNlbGYuY29ubiBhcyBjb25uZWN0aW9uOgorICAgICAgICAgICAgIyBCb290
c3RyYXBwaW5nIFdlYlNvY2tldHMgd2l0aCBIVFRQLzIgc3BlY2lmaWNhdGlvbiByZXF1aXJlcwor
ICAgICAgICAgICAgIyBFTkFCTEVfQ09OTkVDVF9QUk9UT0NPTCB0byBiZSBzZXQgaW4gb3JkZXIg
dG8gZW5hYmxlIFdlYlNvY2tldAorICAgICAgICAgICAgIyBvdmVyIEhUVFAvMgorICAgICAgICAg
ICAgbmV3X3NldHRpbmdzID0gZGljdChjb25uZWN0aW9uLmxvY2FsX3NldHRpbmdzKQorICAgICAg
ICAgICAgbmV3X3NldHRpbmdzW1NldHRpbmdDb2Rlcy5FTkFCTEVfQ09OTkVDVF9QUk9UT0NPTF0g
PSAxCisgICAgICAgICAgICBjb25uZWN0aW9uLmxvY2FsX3NldHRpbmdzLnVwZGF0ZShuZXdfc2V0
dGluZ3MpCisgICAgICAgICAgICBjb25uZWN0aW9uLmxvY2FsX3NldHRpbmdzLmFja25vd2xlZGdl
KCkKKwogICAgICAgICAgICAgY29ubmVjdGlvbi5pbml0aWF0ZV9jb25uZWN0aW9uKCkKICAgICAg
ICAgICAgIGRhdGEgPSBjb25uZWN0aW9uLmRhdGFfdG9fc2VuZCgpCiAgICAgICAgICAgICB3aW5k
b3dfc2l6ZSA9IGNvbm5lY3Rpb24ucmVtb3RlX3NldHRpbmdzLmluaXRpYWxfd2luZG93X3NpemUK
QEAgLTQwNiw2ICs0MjQsMjQgQEAgY2xhc3MgSHR0cDJXZWJUZXN0UmVxdWVzdEhhbmRsZXIoQmFz
ZVdlYlRlc3RSZXF1ZXN0SGFuZGxlcik6CiAgICAgICAgICAgICBmb3Igc3RyZWFtX2lkLCAodGhy
ZWFkLCBxdWV1ZSkgaW4gc3RyZWFtX3F1ZXVlcy5pdGVtcygpOgogICAgICAgICAgICAgICAgIHRo
cmVhZC5qb2luKCkKIAorICAgIGRlZiBfaXNfZXh0ZW5kZWRfY29ubmVjdF9mcmFtZShzZWxmLCBm
cmFtZSk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGZyYW1lLCBSZXF1ZXN0UmVjZWl2ZWQp
OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgbWV0aG9kID0gZXh0cmFjdF9t
ZXRob2RfaGVhZGVyKGZyYW1lLmhlYWRlcnMpCisgICAgICAgIGlmIG1ldGhvZCAhPSBiIkNPTk5F
Q1QiOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgcHJvdG9jb2wgPSAiIgor
ICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBmcmFtZS5oZWFkZXJzOgorICAgICAgICAgICAgaWYg
a2V5IGluIChiJzpwcm90b2NvbCcsIHUnOnByb3RvY29sJyk6CisgICAgICAgICAgICAgICAgcHJv
dG9jb2wgPSBpc29tb3JwaGljX2VuY29kZSh2YWx1ZSkKKyAgICAgICAgICAgICAgICBicmVhawor
ICAgICAgICBpZiBwcm90b2NvbCAhPSBiIndlYnNvY2tldCI6CisgICAgICAgICAgICByYWlzZSBQ
cm90b2NvbEVycm9yKCJJbnZhbGlkIHByb3RvY29sICVzIHdpdGggQ09OTkVDVCBNRVRIT0QiICUg
KHByb3RvY29sLCkpCisKKyAgICAgICAgcmV0dXJuIFRydWUKKwogICAgIGRlZiBzdGFydF9zdHJl
YW1fdGhyZWFkKHNlbGYsIGZyYW1lLCBxdWV1ZSk6CiAgICAgICAgICIiIgogICAgICAgICBUaGlz
IHN0YXJ0cyBhIG5ldyB0aHJlYWQgdG8gaGFuZGxlIGZyYW1lcyBmb3IgYSBzcGVjaWZpYyBzdHJl
YW0uCkBAIC00MTMsMTMgKzQ0OSw5MSBAQCBjbGFzcyBIdHRwMldlYlRlc3RSZXF1ZXN0SGFuZGxl
cihCYXNlV2ViVGVzdFJlcXVlc3RIYW5kbGVyKToKICAgICAgICAgOnBhcmFtIHF1ZXVlOiBBIHF1
ZXVlIG9iamVjdCB0aGF0IHRoZSB0aHJlYWQgd2lsbCB1c2UgdG8gY2hlY2sgZm9yIG5ldyBmcmFt
ZXMKICAgICAgICAgOnJldHVybjogVGhlIHRocmVhZCBvYmplY3QgdGhhdCBoYXMgYWxyZWFkeSBi
ZWVuIHN0YXJ0ZWQKICAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX2lzX2V4dGVuZGVkX2Nv
bm5lY3RfZnJhbWUoZnJhbWUpOgorICAgICAgICAgICAgdGFyZ2V0ID0gSHR0cDJXZWJUZXN0UmVx
dWVzdEhhbmRsZXIuX3N0cmVhbV93c190aHJlYWQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IHRhcmdldCA9IEh0dHAyV2ViVGVzdFJlcXVlc3RIYW5kbGVyLl9zdHJlYW1fdGhyZWFkCiAgICAg
ICAgIHQgPSB0aHJlYWRpbmcuVGhyZWFkKAotICAgICAgICAgICAgdGFyZ2V0PUh0dHAyV2ViVGVz
dFJlcXVlc3RIYW5kbGVyLl9zdHJlYW1fdGhyZWFkLAorICAgICAgICAgICAgdGFyZ2V0PXRhcmdl
dCwKICAgICAgICAgICAgIGFyZ3M9KHNlbGYsIGZyYW1lLnN0cmVhbV9pZCwgcXVldWUpCiAgICAg
ICAgICkKICAgICAgICAgdC5zdGFydCgpCiAgICAgICAgIHJldHVybiB0CiAKKyAgICBkZWYgX3N0
cmVhbV93c190aHJlYWQoc2VsZiwgc3RyZWFtX2lkLCBxdWV1ZSk6CisgICAgICAgIGZyYW1lID0g
cXVldWUuZ2V0KFRydWUsIE5vbmUpCisKKyAgICAgICAgcmZpbGUsIHdmaWxlID0gb3MucGlwZSgp
CisgICAgICAgIHJmaWxlLCB3ZmlsZSA9IG9zLmZkb3BlbihyZmlsZSwgJ3JiJyksIG9zLmZkb3Bl
bih3ZmlsZSwgJ3diJywgMCkgICMgbmVlZHMgdG8gYmUgdW5idWZmZXIgZm9yIHdlYnNvY2tldHMK
KyAgICAgICAgc3RyZWFtX2hhbmRsZXIgPSBIMkhhbmRsZXJDb3B5KHNlbGYsIGZyYW1lLCByZmls
ZSkKKworICAgICAgICBoMnJlcXVlc3QgPSBIMlJlcXVlc3Qoc3RyZWFtX2hhbmRsZXIpCisgICAg
ICAgIGgycmVzcG9uc2UgPSBIMlJlc3BvbnNlKHN0cmVhbV9oYW5kbGVyLCBoMnJlcXVlc3QpCisK
KyAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoc2VsZi5zZXJ2ZXIud3Nf
ZG9jX3Jvb3QsIE5vbmUsIEZhbHNlKQorICAgICAgICBpZiBub3QgZGlzcGF0Y2hlci5nZXRfaGFu
ZGxlcl9zdWl0ZShzdHJlYW1faGFuZGxlci5wYXRoKToKKyAgICAgICAgICAgIGgycmVzcG9uc2Uu
c2V0X2Vycm9yKDQwNCkKKyAgICAgICAgICAgIGgycmVzcG9uc2Uud3JpdGUoKQorICAgICAgICAg
ICAgcmV0dXJuCisKKyAgICAgICAgcmVxdWVzdF93cmFwcGVyID0gX1dlYlNvY2tldFJlcXVlc3Qo
c3RyZWFtX2hhbmRsZXIsIGgycmVzcG9uc2UpCisKKyAgICAgICAgaGFuZHNoYWtlciA9IFdzSDJI
YW5kc2hha2VyKHJlcXVlc3Rfd3JhcHBlciwgZGlzcGF0Y2hlcikKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAgICBleGNlcHQgSGFuZHNo
YWtlRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCdIYW5kc2hh
a2UgZmFpbGVkIGZvciBlcnJvcjogJXMnLCBlKQorICAgICAgICAgICAgaDJyZXNwb25zZS5zZXRf
ZXJyb3IoZS5zdGF0dXMpCisgICAgICAgICAgICBoMnJlc3BvbnNlLndyaXRlKCkKKyAgICAgICAg
ICAgIHJldHVybgorCisgICAgICAgICMgaDIgSGFuZHNoYWtlciBwcmVwYXJlcyB0aGUgaGVhZGVy
cyBidXQgZG9lcyBub3Qgc2VuZCB0aGVtIGRvd24gdGhlCisgICAgICAgICMgd2lyZS4gRmx1c2gg
dGhlIGhlYWRlcnMgaGVyZS4KKyAgICAgICAgaDJyZXNwb25zZS53cml0ZV9zdGF0dXNfaGVhZGVy
cygpCisKKyAgICAgICAgcmVxdWVzdF93cmFwcGVyLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcgor
CisgICAgICAgICMgd2UgbmVlZCB0d28gdGhyZWFkczoKKyAgICAgICAgIyAtIG9uZSB0byBoYW5k
bGUgdGhlIGZyYW1lIHF1ZXVlCisgICAgICAgICMgLSBvbmUgdG8gaGFuZGxlIHRoZSByZXF1ZXN0
IChkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEgaXMgYmxvY2tpbmcpCisgICAgICAgICMgdGhlIGFs
dGVybmF0aXZlIGlzIHRvIGhhdmUgb25seSBvbmUgKGJsb2NraW5nKSB0aHJlYWQuIFRoYXQgdGhy
ZWFkCisgICAgICAgICMgd2lsbCBjYWxsIHRyYW5zZmVyX2RhdGEuIFRoYXQgd291bGQgcmVxdWly
ZSBhIHNwZWNpYWwgY2FzZSBpbgorICAgICAgICAjIGhhbmRsZV9vbmVfcmVxdWVzdCwgdG8gYnlw
YXNzIHRoZSBxdWV1ZSBhbmQgd3JpdGUgZGF0YSB0byB3ZmlsZQorICAgICAgICAjIGRpcmVjdGx5
LgorICAgICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCgKKyAgICAgICAgICAgIHRhcmdldD1IdHRw
MldlYlRlc3RSZXF1ZXN0SGFuZGxlci5fc3RyZWFtX3dzX3N1Yl90aHJlYWQsCisgICAgICAgICAg
ICBhcmdzPShzZWxmLCByZXF1ZXN0X3dyYXBwZXIsIHN0cmVhbV9oYW5kbGVyLCBxdWV1ZSkKKyAg
ICAgICAgKQorICAgICAgICB0LnN0YXJ0KCkKKworICAgICAgICB3aGlsZSBub3Qgc2VsZi5jbG9z
ZV9jb25uZWN0aW9uOgorICAgICAgICAgICAgZnJhbWUgPSBxdWV1ZS5nZXQoVHJ1ZSwgTm9uZSkK
KworICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShmcmFtZSwgRGF0YVJlY2VpdmVkKToKKyAgICAg
ICAgICAgICAgICB3ZmlsZS53cml0ZShmcmFtZS5kYXRhKQorICAgICAgICAgICAgICAgIGlmIGZy
YW1lLnN0cmVhbV9lbmRlZDoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcigiZnJhbWUuc3RyZWFtX2VuZGVkIikKKyAgICAgICAgICAgICAgICAgICAgd2ZpbGUu
Y2xvc2UoKQorICAgICAgICAgICAgZWxpZiBmcmFtZSBpcyBOb25lIG9yIGlzaW5zdGFuY2UoZnJh
bWUsIChTdHJlYW1SZXNldCwgU3RyZWFtRW5kZWQsIENvbm5lY3Rpb25UZXJtaW5hdGVkKSk6Cisg
ICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoJyglcyAtICVzKSBTdHJlYW0gUmVzZXQs
IFRocmVhZCBDbG9zaW5nJyAlIChzZWxmLnVpZCwgc3RyZWFtX2lkKSkKKyAgICAgICAgICAgICAg
ICBicmVhaworCisgICAgICAgIHQuam9pbigpCisKKyAgICBkZWYgX3N0cmVhbV93c19zdWJfdGhy
ZWFkKHNlbGYsIHJlcXVlc3QsIHN0cmVhbV9oYW5kbGVyLCBxdWV1ZSk6CisgICAgICAgIGRpc3Bh
dGNoZXIgPSByZXF1ZXN0Ll9kaXNwYXRjaGVyCisgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KQorCisgICAgICAgIHN0cmVhbV9pZCA9IHN0cmVhbV9oYW5kbGVyLmgyX3N0
cmVhbV9pZAorICAgICAgICB3aXRoIHN0cmVhbV9oYW5kbGVyLmNvbm4gYXMgY29ubmVjdGlvbjoK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLmVuZF9zdHJlYW0o
c3RyZWFtX2lkKQorICAgICAgICAgICAgICAgIGRhdGEgPSBjb25uZWN0aW9uLmRhdGFfdG9fc2Vu
ZCgpCisgICAgICAgICAgICAgICAgc3RyZWFtX2hhbmRsZXIucmVxdWVzdC5zZW5kYWxsKGRhdGEp
CisgICAgICAgICAgICBleGNlcHQgU3RyZWFtQ2xvc2VkRXJyb3I6ICAjIG1heWJlIHRoZSBzdHJl
YW0gaGFzIGFscmVhZHkgYmVlbiBjbG9zZWQKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
IHF1ZXVlLnB1dChOb25lKQorCiAgICAgZGVmIF9zdHJlYW1fdGhyZWFkKHNlbGYsIHN0cmVhbV9p
ZCwgcXVldWUpOgogICAgICAgICAiIiIKICAgICAgICAgVGhpcyB0aHJlYWQgcHJvY2Vzc2VzIGZy
YW1lcyBmb3IgYSBzcGVjaWZpYyBzdHJlYW0uIEl0IHdhaXRzIGZvciBmcmFtZXMgdG8gYmUgcGxh
Y2VkCkBAIC01OTksNiArNzEzLDcgQEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi1wcm94eS4KICAgICA6cGFyYW0gcm91
dGVyX2NsczogUm91dGVyIGNsYXNzIHRvIHVzZSB3aGVuIG1hdGNoaW5nIFVSTHMgdG8gaGFuZGxl
cnMKICAgICA6cGFyYW0gZG9jX3Jvb3Q6IERvY3VtZW50IHJvb3QgZm9yIHNlcnZpbmcgZmlsZXMK
KyAgICA6cGFyYW0gd3NfZG9jX3Jvb3Q6IERvY3VtZW50IHJvb3QgZm9yIHdlYnNvY2tldHMKICAg
ICA6cGFyYW0gcm91dGVzOiBMaXN0IG9mIHJvdXRlcyB3aXRoIHdoaWNoIHRvIGluaXRpYWxpemUg
dGhlIHJvdXRlcgogICAgIDpwYXJhbSByZXdyaXRlcl9jbHM6IENsYXNzIHRvIHVzZSBmb3IgcmVx
dWVzdCByZXdyaXRlcgogICAgIDpwYXJhbSByZXdyaXRlczogTGlzdCBvZiByZXdyaXRlcyB3aXRo
IHdoaWNoIHRvIGluaXRpYWxpemUgdGhlIHJld3JpdGVyX2NscwpAQCAtNjQxLDcgKzc1Niw3IEBA
IGNsYXNzIFdlYlRlc3RIdHRwZChvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0
PSIxMjcuMC4wLjEiLCBwb3J0PTgwMDAsCiAgICAgICAgICAgICAgICAgIHNlcnZlcl9jbHM9Tm9u
ZSwgaGFuZGxlcl9jbHM9SHR0cDFXZWJUZXN0UmVxdWVzdEhhbmRsZXIsCiAgICAgICAgICAgICAg
ICAgIHVzZV9zc2w9RmFsc2UsIGtleV9maWxlPU5vbmUsIGNlcnRpZmljYXRlPU5vbmUsIGVuY3J5
cHRfYWZ0ZXJfY29ubmVjdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgcm91dGVyX2Nscz1Sb3V0
ZXIsIGRvY19yb290PW9zLmN1cmRpciwgcm91dGVzPU5vbmUsCisgICAgICAgICAgICAgICAgIHJv
dXRlcl9jbHM9Um91dGVyLCBkb2Nfcm9vdD1vcy5jdXJkaXIsIHdzX2RvY19yb290PU5vbmUsIHJv
dXRlcz1Ob25lLAogICAgICAgICAgICAgICAgICByZXdyaXRlcl9jbHM9UmVxdWVzdFJld3JpdGVy
LCBiaW5kX2FkZHJlc3M9VHJ1ZSwgcmV3cml0ZXM9Tm9uZSwKICAgICAgICAgICAgICAgICAgbGF0
ZW5jeT1Ob25lLCBjb25maWc9Tm9uZSwgaHR0cDI9RmFsc2UpOgogCkBAIC02NzMsNiArNzg4LDcg
QEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnJld3JpdGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uZmlnPWNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJpbmRfYWRkcmVzcz1iaW5kX2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3c19kb2Nfcm9vdD13c19kb2Nfcm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVzZV9zc2w9dXNlX3NzbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGtleV9maWxlPWtleV9maWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsCkBAIC03MjcsMyArODQzLDU0IEBAIGNs
YXNzIFdlYlRlc3RIdHRwZChvYmplY3QpOgogICAgICAgICByZXR1cm4gdXJsdW5zcGxpdCgoImh0
dHAiIGlmIG5vdCBzZWxmLnVzZV9zc2wgZWxzZSAiaHR0cHMiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiVzOiVzIiAlIChzZWxmLmhvc3QsIHNlbGYucG9ydCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXRoLCBxdWVyeSwgZnJhZ21lbnQpKQorCisKK2NsYXNzIF9XZWJTb2Nr
ZXRDb25uZWN0aW9uKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3RfaGFu
ZGxlciwgcmVzcG9uc2UpOgorICAgICAgICAiIiJNaW1pYyBtb2RfcHl0aG9uIG1wX2Nvbm4uCisK
KyAgICAgICAgOnBhcmFtIHJlcXVlc3RfaGFuZGxlcjogQSBIMkhhbmRsZXJDb3B5IGluc3RhbmNl
LgorCisgICAgICAgIDpwYXJhbSByZXNwb25zZTogQSBIMlJlc3BvbnNlIGluc3RhbmNlLgorICAg
ICAgICAiIiIKKworICAgICAgICBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIgPSByZXF1ZXN0X2hhbmRs
ZXIKKyAgICAgICAgc2VsZi5fcmVzcG9uc2UgPSByZXNwb25zZQorCisgICAgICAgIHNlbGYucmVt
b3RlX2FkZHIgPSBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIuY2xpZW50X2FkZHJlc3MKKworICAgIGRl
ZiB3cml0ZShzZWxmLCBkYXRhKToKKyAgICAgICAgc2VsZi5fcmVzcG9uc2Uud3JpdGVyLndyaXRl
X2RhdGEoZGF0YSwgRmFsc2UpCisKKyAgICBkZWYgcmVhZChzZWxmLCBsZW5ndGgpOgorICAgICAg
ICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnJmaWxlLnJlYWQobGVuZ3RoKQorCisKK2Ns
YXNzIF9XZWJTb2NrZXRSZXF1ZXN0KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJl
cXVlc3RfaGFuZGxlciwgcmVzcG9uc2UpOgorICAgICAgICAiIiJNaW1pYyBtb2RfcHl0aG9uIHJl
cXVlc3QuCisKKyAgICAgICAgOnBhcmFtIHJlcXVlc3RfaGFuZGxlcjogQSBIMkhhbmRsZXJDb3B5
IGluc3RhbmNlLgorCisgICAgICAgIDpwYXJhbSByZXNwb25zZTogQSBIMlJlc3BvbnNlIGluc3Rh
bmNlLgorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBfV2ViU29ja2V0
Q29ubmVjdGlvbihyZXF1ZXN0X2hhbmRsZXIsIHJlc3BvbnNlKQorICAgICAgICBzZWxmLl9yZXNw
b25zZSA9IHJlc3BvbnNlCisKKyAgICAgICAgc2VsZi51cmkgPSByZXF1ZXN0X2hhbmRsZXIucGF0
aAorICAgICAgICBzZWxmLnVucGFyc2VkX3VyaSA9IHJlcXVlc3RfaGFuZGxlci5wYXRoCisgICAg
ICAgIHNlbGYubWV0aG9kID0gcmVxdWVzdF9oYW5kbGVyLmNvbW1hbmQKKyAgICAgICAgIyByZWFk
IGhlYWRlcnMgZnJvbSByZXF1ZXN0X2hhbmRsZXIKKyAgICAgICAgc2VsZi5oZWFkZXJzX2luID0g
cmVxdWVzdF9oYW5kbGVyLmhlYWRlcnMKKyAgICAgICAgIyB3cml0ZSBoZWFkZXJzIGRpcmVjdGx5
IGludG8gSDJSZXNwb25zZQorICAgICAgICBzZWxmLmhlYWRlcnNfb3V0ID0gcmVzcG9uc2UuaGVh
ZGVycworCisgICAgIyBwcm94aWVzIHN0YXR1cyB0byBIMlJlc3BvbnNlCisgICAgQHByb3BlcnR5
CisgICAgZGVmIHN0YXR1cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3BvbnNlLnN0
YXR1cworCisgICAgQHN0YXR1cy5zZXR0ZXIKKyAgICBkZWYgc3RhdHVzKHNlbGYsIHN0YXR1cyk6
CisgICAgICAgIHNlbGYuX3Jlc3BvbnNlLnN0YXR1cyA9IHN0YXR1cwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS9zdGFzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rhc2gucHkKaW5kZXggNmIzNTE4NDc0OTFi
ZmVlMWY4ZTE3YTQyMTI3Yzg4YmU5N2E2MjkyMy4uYmY2ZTU5OTI3YmU0NGE1MDNhYTljYTE1Yjg0
OTVmNTc3MDRmODllNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dw
dHNlcnZlL3N0YXNoLnB5CkBAIC0xLDggKzEsMTAgQEAKIGltcG9ydCBiYXNlNjQKIGltcG9ydCBq
c29uCiBpbXBvcnQgb3MKLWltcG9ydCB1dWlkCitpbXBvcnQgc2l4CiBpbXBvcnQgdGhyZWFkaW5n
CitpbXBvcnQgdXVpZAorCiBmcm9tIG11bHRpcHJvY2Vzc2luZy5tYW5hZ2VycyBpbXBvcnQgQWNx
dWlyZXJQcm94eSwgQmFzZU1hbmFnZXIsIERpY3RQcm94eQogZnJvbSBzaXggaW1wb3J0IHRleHRf
dHlwZSwgYmluYXJ5X3R5cGUKIApAQCAtMzIsMTMgKzM0LDE2IEBAIENsaWVudERpY3RNYW5hZ2Vy
LnJlZ2lzdGVyKCJMb2NrIikKIAogCiBjbGFzcyBTdGFzaFNlcnZlcihvYmplY3QpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzPU5vbmUsIGF1dGhrZXk9Tm9uZSk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGFkZHJlc3M9Tm9uZSwgYXV0aGtleT1Ob25lLCBtcF9jb250ZXh0PU5vbmUp
OgogICAgICAgICBzZWxmLmFkZHJlc3MgPSBhZGRyZXNzCiAgICAgICAgIHNlbGYuYXV0aGtleSA9
IGF1dGhrZXkKICAgICAgICAgc2VsZi5tYW5hZ2VyID0gTm9uZQorICAgICAgICBzZWxmLm1wX2Nv
bnRleHQgPSBtcF9jb250ZXh0CiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBz
ZWxmLm1hbmFnZXIsIHNlbGYuYWRkcmVzcywgc2VsZi5hdXRoa2V5ID0gc3RhcnRfc2VydmVyKHNl
bGYuYWRkcmVzcywgc2VsZi5hdXRoa2V5KQorICAgICAgICBzZWxmLm1hbmFnZXIsIHNlbGYuYWRk
cmVzcywgc2VsZi5hdXRoa2V5ID0gc3RhcnRfc2VydmVyKHNlbGYuYWRkcmVzcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLmF1dGhrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5tcF9jb250ZXh0KQogICAgICAgICBzdG9yZV9lbnZf
Y29uZmlnKHNlbGYuYWRkcmVzcywgc2VsZi5hdXRoa2V5KQogCiAgICAgZGVmIF9fZXhpdF9fKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6CkBAIC02MSwxMyArNjYsMTkgQEAgZGVmIHN0b3JlX2Vudl9j
b25maWcoYWRkcmVzcywgYXV0aGtleSk6CiAgICAgb3MuZW52aXJvblsiV1BUX1NUQVNIX0NPTkZJ
RyJdID0ganNvbi5kdW1wcygoYWRkcmVzcywgYXV0aGtleS5kZWNvZGUoImFzY2lpIikpKQogCiAK
LWRlZiBzdGFydF9zZXJ2ZXIoYWRkcmVzcz1Ob25lLCBhdXRoa2V5PU5vbmUpOgorZGVmIHN0YXJ0
X3NlcnZlcihhZGRyZXNzPU5vbmUsIGF1dGhrZXk9Tm9uZSwgbXBfY29udGV4dD1Ob25lKToKICAg
ICBpZiBpc2luc3RhbmNlKGF1dGhrZXksIHRleHRfdHlwZSk6CiAgICAgICAgIGF1dGhrZXkgPSBh
dXRoa2V5LmVuY29kZSgiYXNjaWkiKQotICAgIG1hbmFnZXIgPSBTZXJ2ZXJEaWN0TWFuYWdlcihh
ZGRyZXNzLCBhdXRoa2V5KQorICAgIGt3YXJncyA9IHt9CisgICAgaWYgc2l4LlBZMyBhbmQgbXBf
Y29udGV4dCBpcyBub3QgTm9uZToKKyAgICAgICAga3dhcmdzWyJjdHgiXSA9IG1wX2NvbnRleHQK
KyAgICBtYW5hZ2VyID0gU2VydmVyRGljdE1hbmFnZXIoYWRkcmVzcywgYXV0aGtleSwgKiprd2Fy
Z3MpCiAgICAgbWFuYWdlci5zdGFydCgpCiAKLSAgICByZXR1cm4gKG1hbmFnZXIsIG1hbmFnZXIu
X2FkZHJlc3MsIG1hbmFnZXIuX2F1dGhrZXkpCisgICAgYWRkcmVzcyA9IG1hbmFnZXIuX2FkZHJl
c3MKKyAgICBpZiBpc2luc3RhbmNlKGFkZHJlc3MsIGJ5dGVzKToKKyAgICAgICAgYWRkcmVzcyA9
IGFkZHJlc3MuZGVjb2RlKCJhc2NpaSIpCisgICAgcmV0dXJuIChtYW5hZ2VyLCBhZGRyZXNzLCBt
YW5hZ2VyLl9hdXRoa2V5KQogCiAKIGNsYXNzIExvY2tXcmFwcGVyKG9iamVjdCk6CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3V0aWxzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS91dGlscy5weQppbmRleCAwOTFl
OWMyNmI3ZjY3YmRmNDg4N2IwZmZhMGJkYzg5OWFhY2ViNTUyLi4xZWEyZDhjOTAyZmY0MmYwNDMw
MzE5ZDNlNjU4Yzk0OTRhZWNkOWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3V0aWxzLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvd3B0c2VydmUvdXRpbHMucHkKQEAgLTEyMCw2ICsxMjAsNyBAQCBkZWYgaXNfYmFkX3Bv
cnQocG9ydCk6CiAgICAgICAgIDUzMiwgICAjIG5ldG5ld3MKICAgICAgICAgNTQwLCAgICMgdXVj
cAogICAgICAgICA1NDgsICAgIyBhZnAKKyAgICAgICAgNTU0LCAgICMgcnRzcAogICAgICAgICA1
NTYsICAgIyByZW1vdGVmcwogICAgICAgICA1NjMsICAgIyBubnRwK3NzbAogICAgICAgICA1ODcs
ICAgIyBzbXRwIChvdXRnb2luZykKQEAgLTEyNyw2ICsxMjgsOCBAQCBkZWYgaXNfYmFkX3BvcnQo
cG9ydCk6CiAgICAgICAgIDYzNiwgICAjIGxkYXArc3NsCiAgICAgICAgIDk5MywgICAjIGxkYXAr
c3NsCiAgICAgICAgIDk5NSwgICAjIHBvcDMrc3NsCisgICAgICAgIDE3MjAsICAjIGgzMjNob3N0
Y2FsbAorICAgICAgICAxNzIzLCAgIyBwcHRwCiAgICAgICAgIDIwNDksICAjIG5mcwogICAgICAg
ICAzNjU5LCAgIyBhcHBsZS1zYXNsCiAgICAgICAgIDQwNDUsICAjIGxvY2tkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS93M2MtaW1wb3J0LmxvZwpp
bmRleCA2MjM0MmY5MmMxZjgyZmFlMzE5YjMzMzQxZTM3YjQ2MjQ0M2EyYjkwLi5lYTgwNzM1MThm
YzI3MTBhMmMxYjcxMzg4Y2EzNmFmOGUxMTRiZDVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3cz
Yy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdzNjLWltcG9ydC5sb2cKQEAgLTI5LDMgKzI5
LDQgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3N0YXNoLnB5CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS91
dGlscy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvd3B0c2VydmUvd3B0c2VydmUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3dzX2gyX2hhbmRz
aGFrZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS93c19oMl9oYW5kc2hha2UucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dw
dHNlcnZlL3dzX2gyX2hhbmRzaGFrZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODc5NmMwYmFmOWUxODg3YmFk
NTk1ODM0MGI5ZmIxN2QyYzAxNzVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS93c19o
Ml9oYW5kc2hha2UucHkKQEAgLTAsMCArMSwyNDcgQEAKKyIiIlRoaXMgZmlsZSBwcm92aWRlcyB0
aGUgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgQm9vdHN0cmFwcGluZworV2Vi
U29ja2V0cyB3aXRoIEhUVFAvMiBwcm90b2NvbCAoUkZDIDg0NDEpLgorCitTcGVjaWZpY2F0aW9u
OgoraHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzg0NDEKKyIiIgorCitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBv
cnQgY29tbW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQorZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1PcHRpb25zCitmcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgdXRpbAorZnJvbSBzaXgubW92ZXMgaW1wb3J0IG1hcAorZnJvbSBz
aXgubW92ZXMgaW1wb3J0IHJhbmdlCisKKyMgVE9ETzogV2UgYXJlIHVzaW5nICJwcml2YXRlIiBt
ZXRob2RzIG9mIHB5d2Vic29ja2V0LiBXZSBtaWdodCB3YW50IHRvCisjIHJlZmFjdG9yIHB5d2Vi
c29ja2V0IHRvIGV4cG9zZSB0aG9zZSBtZXRob2RzIHB1YmxpY2x5LiBBbHNvLCBfZ2V0X29yaWdp
bgorIyBfY2hlY2tfdmVyc2lvbiBfc2V0X3Byb3RvY29sIF9wYXJzZV9leHRlbnNpb25zIGFuZCBh
IGxhcmdlIHBhcnQgb2YgZG9faGFuZHNoYWtlCisjIGFyZSBpZGVudGljYWwgd2l0aCBoeWJpIGhh
bmRzaGFrZS4gV2UgbmVlZCBzb21lIHJlZmFjdG9yaW5nIHRvIGdldCByZW1vdmUgdGhhdAorIyBj
b2RlIGR1cGxpY2F0aW9uLgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQg
Z2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5f
YmFzZSBpbXBvcnQgZ2V0X21hbmRhdG9yeV9oZWFkZXIKK2Zyb20gbW9kX3B5d2Vic29ja2V0Lmhh
bmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCitmcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHBhcnNlX3Rva2VuX2xpc3QKK2Zyb20gbW9kX3B5
d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRl
cgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0ZV9z
dWJwcm90b2NvbAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBW
ZXJzaW9uRXhjZXB0aW9uCisKKyMgRGVmaW5pbmcgYWxpYXNlcyBmb3IgdmFsdWVzIHVzZWQgZnJl
cXVlbnRseS4KK19WRVJTSU9OX0xBVEVTVCA9IGNvbW1vbi5WRVJTSU9OX0hZQklfTEFURVNUCitf
VkVSU0lPTl9MQVRFU1RfU1RSSU5HID0gc3RyKF9WRVJTSU9OX0xBVEVTVCkKK19TVVBQT1JURURf
VkVSU0lPTlMgPSBbCisgICAgX1ZFUlNJT05fTEFURVNULAorXQorCisKK2RlZiBjaGVja19jb25u
ZWN0X21ldGhvZChyZXF1ZXN0KToKKyAgICBpZiByZXF1ZXN0Lm1ldGhvZCAhPSB1J0NPTk5FQ1Qn
OgorICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ01ldGhvZCBpcyBub3QgQ09OTkVD
VDogJXInICUgcmVxdWVzdC5tZXRob2QpCisKKworY2xhc3MgV3NIMkhhbmRzaGFrZXIob2JqZWN0
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcik6CisgICAgICAg
ICIiIk9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2Nv
bCAoUkZDIDY0NTUpLgorCisgICAgICAgIDpwYXJhbSByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVl
c3QuCisKKyAgICAgICAgOnBhcmFtIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgKGRpc3BhdGNoLkRp
c3BhdGNoZXIpLgorCisgICAgICAgIFdzSDJIYW5kc2hha2VyIHdpbGwgYWRkIGF0dHJpYnV0ZXMg
c3VjaCBhcyB3c19yZXNvdXJjZSBkdXJpbmcgaGFuZHNoYWtlLgorICAgICAgICAiIiIKKworICAg
ICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAg
ICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAorICAgICAgICBzZWxmLl9kaXNwYXRjaGVyID0gZGlz
cGF0Y2hlcgorCisgICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNfcmVxdWVzdGVkKHNl
bGYpOgorICAgICAgICBwcm9jZXNzb3JzID0gW10KKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53
c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZvciBleHRl
bnNpb25fcmVxdWVzdCBpbiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zOgor
ICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9IGdldF9leHRlbnNpb25fcHJvY2Vzc29yKGV4dGVu
c2lvbl9yZXF1ZXN0KQorICAgICAgICAgICAgICAgICMgVW5rbm93biBleHRlbnNpb24gcmVxdWVz
dHMgYXJlIGp1c3QgaWdub3JlZC4KKyAgICAgICAgICAgICAgICBpZiBwcm9jZXNzb3IgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMuYXBwZW5kKHByb2Nlc3NvcikK
KyAgICAgICAgcmV0dXJuIHByb2Nlc3NvcnMKKworICAgIGRlZiBkb19oYW5kc2hha2Uoc2VsZik6
CisgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSA9IE5vbmUKKyAgICAgICAgc2Vs
Zi5fcmVxdWVzdC53c19jbG9zZV9yZWFzb24gPSBOb25lCisKKyAgICAgICAgIyBQYXJzaW5nLgor
CisgICAgICAgIGNoZWNrX2Nvbm5lY3RfbWV0aG9kKHNlbGYuX3JlcXVlc3QpCisKKyAgICAgICAg
dmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LCAnOnByb3RvY29sJywgJ3dl
YnNvY2tldCcpCisKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXNvdXJjZSA9IHNlbGYuX3Jl
cXVlc3QudXJpCisKKyAgICAgICAgZ2V0X21hbmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwg
J2F1dGhvcml0eScpCisKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c192ZXJzaW9uID0gc2VsZi5f
Y2hlY2tfdmVyc2lvbigpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fZ2V0X29y
aWdpbigpCisgICAgICAgICAgICBzZWxmLl9zZXRfcHJvdG9jb2woKQorICAgICAgICAgICAgc2Vs
Zi5fcGFyc2VfZXh0ZW5zaW9ucygpCisKKyAgICAgICAgICAgICMgU2V0dXAgZXh0ZW5zaW9uIHBy
b2Nlc3NvcnMuCisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNz
b3JzID0gc2VsZi5fZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3JzX3JlcXVlc3RlZCgpCisKKyAgICAg
ICAgICAgICMgTGlzdCBvZiBleHRyYSBoZWFkZXJzLiBUaGUgZXh0cmEgaGFuZHNoYWtlIGhhbmRs
ZXIgbWF5IGFkZCBoZWFkZXIKKyAgICAgICAgICAgICMgZGF0YSBhcyBuYW1lL3ZhbHVlIHBhaXJz
IHRvIHRoaXMgbGlzdCBhbmQgcHl3ZWJzb2NrZXQgYXBwZW5kcworICAgICAgICAgICAgIyB0aGVt
IHRvIHRoZSBXZWJTb2NrZXQgaGFuZHNoYWtlLgorICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5l
eHRyYV9oZWFkZXJzID0gW10KKworICAgICAgICAgICAgIyBFeHRyYSBoYW5kc2hha2UgaGFuZGxl
ciBtYXkgbW9kaWZ5L3JlbW92ZSBwcm9jZXNzb3JzLgorICAgICAgICAgICAgc2VsZi5fZGlzcGF0
Y2hlci5kb19leHRyYV9oYW5kc2hha2Uoc2VsZi5fcmVxdWVzdCkKKyAgICAgICAgICAgIHByb2Nl
c3NvcnMgPSBbCisgICAgICAgICAgICAgICAgcHJvY2Vzc29yCisgICAgICAgICAgICAgICAgZm9y
IHByb2Nlc3NvciBpbiBzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzCisgICAg
ICAgICAgICAgICAgaWYgcHJvY2Vzc29yIGlzIG5vdCBOb25lCisgICAgICAgICAgICBdCisKKyAg
ICAgICAgICAgICMgQXNrIGVhY2ggcHJvY2Vzc29yIGlmIHRoZXJlIGFyZSBleHRlbnNpb25zIG9u
IHRoZSByZXF1ZXN0IHdoaWNoCisgICAgICAgICAgICAjIGNhbm5vdCBjby1leGlzdC4gV2hlbiBw
cm9jZXNzb3IgZGVjaWRlZCBvdGhlciBwcm9jZXNzb3JzIGNhbm5vdAorICAgICAgICAgICAgIyBj
by1leGlzdCB3aXRoIGl0LCB0aGUgcHJvY2Vzc29yIG1hcmtzIHRoZW0gKG9yIGl0c2VsZikgYXMK
KyAgICAgICAgICAgICMgImluYWN0aXZlIi4gVGhlIGZpcnN0IGV4dGVuc2lvbiBwcm9jZXNzb3Ig
aGFzIHRoZSByaWdodCB0bworICAgICAgICAgICAgIyBtYWtlIHRoZSBmaW5hbCBjYWxsLgorICAg
ICAgICAgICAgZm9yIHByb2Nlc3NvciBpbiByZXZlcnNlZChwcm9jZXNzb3JzKToKKyAgICAgICAg
ICAgICAgICBpZiBwcm9jZXNzb3IuaXNfYWN0aXZlKCk6CisgICAgICAgICAgICAgICAgICAgIHBy
b2Nlc3Nvci5jaGVja19jb25zaXN0ZW5jeV93aXRoX290aGVyX3Byb2Nlc3NvcnMoCisgICAgICAg
ICAgICAgICAgICAgICAgICBwcm9jZXNzb3JzKQorICAgICAgICAgICAgcHJvY2Vzc29ycyA9IFsK
KyAgICAgICAgICAgICAgICBwcm9jZXNzb3IgZm9yIHByb2Nlc3NvciBpbiBwcm9jZXNzb3JzIGlm
IHByb2Nlc3Nvci5pc19hY3RpdmUoKQorICAgICAgICAgICAgXQorCisgICAgICAgICAgICBhY2Nl
cHRlZF9leHRlbnNpb25zID0gW10KKworICAgICAgICAgICAgc3RyZWFtX29wdGlvbnMgPSBTdHJl
YW1PcHRpb25zKCkKKworICAgICAgICAgICAgZm9yIGluZGV4LCBwcm9jZXNzb3IgaW4gZW51bWVy
YXRlKHByb2Nlc3NvcnMpOgorICAgICAgICAgICAgICAgIGlmIG5vdCBwcm9jZXNzb3IuaXNfYWN0
aXZlKCk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICBl
eHRlbnNpb25fcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCisg
ICAgICAgICAgICAgICAgaWYgZXh0ZW5zaW9uX3Jlc3BvbnNlIGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgICAgICMgUmVqZWN0ZWQuCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAg
ICAgICAgICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zLmFwcGVuZChleHRlbnNpb25fcmVzcG9u
c2UpCisKKyAgICAgICAgICAgICAgICBwcm9jZXNzb3Iuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3Ry
ZWFtX29wdGlvbnMpCisKKyAgICAgICAgICAgICAgICAjIEluYWN0aXZhdGUgYWxsIG9mIHRoZSBm
b2xsb3dpbmcgY29tcHJlc3Npb24gZXh0ZW5zaW9ucy4KKyAgICAgICAgICAgICAgICBmb3IgaiBp
biByYW5nZShpbmRleCArIDEsIGxlbihwcm9jZXNzb3JzKSk6CisgICAgICAgICAgICAgICAgICAg
IHByb2Nlc3NvcnNbal0uc2V0X2FjdGl2ZShGYWxzZSkKKworICAgICAgICAgICAgaWYgbGVuKGFj
Y2VwdGVkX2V4dGVuc2lvbnMpID4gMDoKKyAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lndz
X2V4dGVuc2lvbnMgPSBhY2NlcHRlZF9leHRlbnNpb25zCisgICAgICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAnRXh0ZW5zaW9ucyBhY2NlcHRlZDog
JXInLAorICAgICAgICAgICAgICAgICAgICBsaXN0KAorICAgICAgICAgICAgICAgICAgICAgICAg
bWFwKGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIubmFtZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zKSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyA9IE5vbmUKKworICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC53c19zdHJlYW0gPSBzZWxmLl9jcmVhdGVfc3RyZWFtKHN0cmVhbV9v
cHRpb25zKQorCisgICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90
b2NvbHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19w
cm90b2NvbCBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNl
cHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9fZXh0cmFfaGFuZHNoYWtlIG11c3Qg
Y2hvb3NlIG9uZSBzdWJwcm90b2NvbCBmcm9tICcKKyAgICAgICAgICAgICAgICAgICAgICAgICd3
c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGFuZCBzZXQgaXQgdG8gd3NfcHJvdG9jb2wnKQorICAgICAg
ICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sKHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wp
CisKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1N1YnByb3RvY29sIGFjY2Vw
dGVkOiAlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVl
c3Qud3NfcHJvdG9jb2wpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHNl
bGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAg
IHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICd3c19w
cm90b2NvbCBtdXN0IGJlIE5vbmUgd2hlbiB0aGUgY2xpZW50IGRpZG5cJ3QgJworICAgICAgICAg
ICAgICAgICAgICAgICAgJ3JlcXVlc3QgYW55IHN1YnByb3RvY29sJykKKworICAgICAgICAgICAg
c2VsZi5fcHJlcGFyZV9oYW5kc2hha2VfcmVzcG9uc2UoKQorICAgICAgICBleGNlcHQgSGFuZHNo
YWtlRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBpZiBub3QgZS5zdGF0dXM6CisgICAgICAg
ICAgICAgICAgIyBGYWxsYmFjayB0byA0MDAgYmFkIHJlcXVlc3QgYnkgZGVmYXVsdC4KKyAgICAg
ICAgICAgICAgICBlLnN0YXR1cyA9IGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVAorICAg
ICAgICAgICAgcmFpc2UgZQorCisgICAgZGVmIF9nZXRfb3JpZ2luKHNlbGYpOgorICAgICAgICBv
cmlnaW4gPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KCdvcmlnaW4nKQorICAgICAgICBp
ZiBvcmlnaW4gaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50
IHJlcXVlc3QgZG9lcyBub3QgaGF2ZSBvcmlnaW4gaGVhZGVyJykKKyAgICAgICAgc2VsZi5fcmVx
dWVzdC53c19vcmlnaW4gPSBvcmlnaW4KKworICAgIGRlZiBfY2hlY2tfdmVyc2lvbihzZWxmKToK
KyAgICAgICAgc2VjX3dlYnNvY2tldF92ZXJzaW9uX2hlYWRlciA9ICdzZWMtd2Vic29ja2V0LXZl
cnNpb24nCisgICAgICAgIHZlcnNpb24gPSBnZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1
ZXN0LCBzZWNfd2Vic29ja2V0X3ZlcnNpb25faGVhZGVyKQorICAgICAgICBpZiB2ZXJzaW9uID09
IF9WRVJTSU9OX0xBVEVTVF9TVFJJTkc6CisgICAgICAgICAgICByZXR1cm4gX1ZFUlNJT05fTEFU
RVNUCisKKyAgICAgICAgaWYgdmVyc2lvbi5maW5kKCcsJykgPj0gMDoKKyAgICAgICAgICAgIHJh
aXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnTXVsdGlwbGUgdmVyc2lv
bnMgKCVyKSBhcmUgbm90IGFsbG93ZWQgZm9yIGhlYWRlciAlcycgJQorICAgICAgICAgICAgICAg
ICh2ZXJzaW9uLCBzZWNfd2Vic29ja2V0X3ZlcnNpb25faGVhZGVyKSwKKyAgICAgICAgICAgICAg
ICBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQorICAgICAgICByYWlzZSBW
ZXJzaW9uRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCB2ZXJzaW9uICVyIGZvciBoZWFkZXIgJXMnICUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVyc2lvbiwgc2VjX3dlYnNvY2tldF92
ZXJzaW9uX2hlYWRlciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVk
X3ZlcnNpb25zPScsICcuam9pbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWFwKHN0ciwgX1NVUFBPUlRFRF9WRVJTSU9OUykpKQorCisgICAgZGVmIF9zZXRfcHJvdG9jb2wo
c2VsZik6CisgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgPSBOb25lCisKKyAgICAg
ICAgcHJvdG9jb2xfaGVhZGVyID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldCgnc2VjLXdl
YnNvY2tldC1wcm90b2NvbCcpCisKKyAgICAgICAgaWYgcHJvdG9jb2xfaGVhZGVyIGlzIE5vbmU6
CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgPSBOb25l
CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3Rl
ZF9wcm90b2NvbHMgPSBwYXJzZV90b2tlbl9saXN0KAorICAgICAgICAgICAgcHJvdG9jb2xfaGVh
ZGVyKQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1N1YnByb3RvY29scyByZXF1ZXN0ZWQ6
ICVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVz
dGVkX3Byb3RvY29scykKKworICAgIGRlZiBfcGFyc2VfZXh0ZW5zaW9ucyhzZWxmKToKKyAgICAg
ICAgZXh0ZW5zaW9uc19oZWFkZXIgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KCdzZWMt
d2Vic29ja2V0LWV4dGVuc2lvbnMnKQorICAgICAgICBpZiBub3QgZXh0ZW5zaW9uc19oZWFkZXI6
CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zID0gTm9u
ZQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5f
cmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25z
KAorICAgICAgICAgICAgICAgIGV4dGVuc2lvbnNfaGVhZGVyKQorICAgICAgICBleGNlcHQgY29t
bW9uLkV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJhaXNlIEhh
bmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHBhcnNlIHNlYy13
ZWJzb2NrZXQtZXh0ZW5zaW9ucyBoZWFkZXI6ICVyJyAlIGUpCisKKyAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAorICAgICAgICAgICAgJ0V4dGVuc2lvbnMgcmVxdWVzdGVkOiAlcicsCisgICAg
ICAgICAgICBsaXN0KAorICAgICAgICAgICAgICAgIG1hcChjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyLm5hbWUsCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVk
X2V4dGVuc2lvbnMpKSkKKworICAgIGRlZiBfY3JlYXRlX3N0cmVhbShzZWxmLCBzdHJlYW1fb3B0
aW9ucyk6CisgICAgICAgIHJldHVybiBTdHJlYW0oc2VsZi5fcmVxdWVzdCwgc3RyZWFtX29wdGlv
bnMpCisKKyAgICBkZWYgX3ByZXBhcmVfaGFuZHNoYWtlX3Jlc3BvbnNlKHNlbGYpOgorICAgICAg
ICBzZWxmLl9yZXF1ZXN0LnN0YXR1cyA9IDIwMAorCisgICAgICAgIHNlbGYuX3JlcXVlc3QuaGVh
ZGVyc19vdXRbJ3VwZ3JhZGUnXSA9IGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFCisgICAg
ICAgIHNlbGYuX3JlcXVlc3QuaGVhZGVyc19vdXRbJ2Nvbm5lY3Rpb24nXSA9IGNvbW1vbi5VUEdS
QURFX0NPTk5FQ1RJT05fVFlQRQorCisgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9j
b2wgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfb3V0Wydz
ZWMtd2Vic29ja2V0LXByb3RvY29sJ10gPSBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sCisKKyAg
ICAgICAgaWYgKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyBpcyBub3QgTm9uZSBhbmQKKyAg
ICAgICAgICAgICAgICBsZW4oc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zKSAhPSAwKToKKyAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3QuaGVhZGVyc19vdXRbJ3NlYy13ZWJzb2NrZXQtZXh0ZW5z
aW9ucyddID0gY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5z
aW9ucykKKworICAgICAgICAjIEhlYWRlcnMgbm90IHNwZWNpZmljIGZvciBXZWJTb2NrZXQKKyAg
ICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlbGYuX3JlcXVlc3QuZXh0cmFfaGVhZGVyczoKKyAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3QuaGVhZGVyc19vdXRbbmFtZV0gPSB2YWx1ZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAppbmRleCBhMjRi
YzgzYTkxOTdhMTU2MWRkZjI4YzgxMTZjMGNiMTBiY2RlNzBlLi4zNmQwYmVkNDhlZGFhYmYyMGIx
NjVhMTIxMjhkYTkzY2VlYjY0OTQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdApAQCAtMSw1ICsxLDM0IEBACiAjIS91c3IvYmluL2VudiBw
eXRob24KIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBpbXBvcnQgc3lzCiAgICAg
ZnJvbSB0b29scy53cHQgaW1wb3J0IHdwdAotICAgIHdwdC5tYWluKCkKKyAgICBhcmdzLCBleHRy
YSA9IHdwdC5wYXJzZV9hcmdzKHN5cy5hcmd2WzE6XSkKKyAgICBjb21tYW5kcyA9IHdwdC5sb2Fk
X2NvbW1hbmRzKCkKKyAgICBweTNvbmx5ID0gY29tbWFuZHNbYXJncy5jb21tYW5kXVsicHkzb25s
eSJdCisKKyAgICBpZiAoYXJncy5weTIpIGFuZCBzeXMudmVyc2lvbl9pbmZvLm1ham9yID4gMjoK
KyAgICAgICAgaWYgcHkzb25seToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIlRoaXMg
Y29tbWFuZCBvbmx5IHdvcmtzIHdpdGggUHl0aG9uIDNcbiIpCisgICAgICAgICAgICBzeXMuZXhp
dCgxKQorICAgICAgICBmcm9tIHN1YnByb2Nlc3MgaW1wb3J0IGNhbGwKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgc3lzLmV4aXQoY2FsbChbJ3B5dGhvbjInXSArIHN5cy5hcmd2KSkKKyAgICAg
ICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gMjoKKyAg
ICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJweXRob24yIGlzIG5lZWRlZCB0byBydW4g
dGhpcyBjb21tYW5kXG4iKQorICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgZWxpZiAobm90IGFyZ3MucHkyKSBh
bmQgc3lzLnZlcnNpb25faW5mby5tYWpvciA8IDM6CisgICAgICAgIGZyb20gc3VicHJvY2VzcyBp
bXBvcnQgY2FsbAorICAgICAgICB0cnk6CisgICAgICAgICAgICBzeXMuZXhpdChjYWxsKFsncHl0
aG9uMyddICsgc3lzLmFyZ3YpKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAg
ICAgICAgaWYgZS5lcnJubyA9PSAyOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUo
InB5dGhvbjMgaXMgbmVlZGVkIHRvIHJ1biB0aGlzIGNvbW1hbmRcbiIpCisgICAgICAgICAgICAg
ICAgc3lzLmV4aXQoMSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UK
KyAgICBlbHNlOgorICAgICAgICB3cHQubWFpbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGQ0OWE3NzkyMmE2YzFkMzcxNmNjMTNlMTBmODc2MWYxOWI4
NTdmNzUuLjdiY2FkODA5MTMzM2RkMTg4ZjVmYjg5M2VlOTEwMWFkMmY4ZTUxMTQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODUyLDggKzE4NTIsNiBA
QCB3ZWJraXQub3JnL2IvMTg2MDk5IGVkaXRpbmcvY2FyZXQvY2FyZXQtaW4tZW1wdHktY2VsbC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xODYxNDIgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRleHQvdGV4dC10cmFuc2Zvcm0vdGV4dC10
cmFuc2Zvcm0tdXBwZXJsb3dlci0wMTYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJr
aXQub3JnL2IvMTg2NjE4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2hlYWRlcnMvaGVhZGVyLXZhbHVlcy5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8x
ODY2MDEgZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1sYXllci1kdW1wLmh0bWwgWyBGYWlsdXJlIF0K
IAogd2Via2l0Lm9yZy9iLzE4NzI2OCBjb21wb3NpdGluZy9iYWNraW5nL2JhY2tpbmctc3RvcmUt
YXR0YWNobWVudC1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZmNjMzk5OWM5ZGVkMWU3YmYzOGEz
M2I0NWMxY2Q4MDViN2IyNTdhMS4uZjdjYWE2NTM2MmZiZWMxYWM2MTM5Y2YwNTk3MzJhYTIyODli
ZjFiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIz
MTQsOSArMjMxNCw2IEBAIHdlYmtpdC5vcmcvYi8xNTc1OTIgZmFzdC9pbWFnZXMvY29tcG9zaXRl
ZC1hbmltYXRlZC1naWYtb3V0c2lkZS12aWV3cG9ydC5odG1sIFsKIAogd2Via2l0Lm9yZy9iLzE1
NjU2MSBwZXJmL3JlbC1saXN0LXJlbW92ZS5odG1sIFsgUGFzcyBUaW1lb3V0IEZhaWx1cmUgXQog
Ci13ZWJraXQub3JnL2IvMTYzMzMyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1yZWxvYWQuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMTYzMzMyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jYWNoZS1vbmx5LWlmLWNhY2hlZC5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE3MjQwMyBpbXBvcnRlZC9ibGluay9zdG9yYWdlL2lu
ZGV4ZWRkYi9ibG9iLXZhbGlkLWFmdGVyLWRlbGV0aW9uLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQog
CiB3ZWJraXQub3JnL2IvMTQyOTY5IGVkaXRpbmcvc3BlbGxpbmcvY29weS1wYXN0ZS1jcmFzaC5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggNDhmYmQ1NzhhZjdjZWQ3ZTRmMTU0Y2Q3YjI3MGRmNjJhNzQ2MzJjMi4uYmJmNzk5ZjkzNTFi
ZDE4ZDZkODczYWQ0ZDExZTJiYTk3ODNhN2U3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjQyLDggKzY0Miw2IEBAIHdlYmtpdC5vcmcv
Yi8xNzIwNDQgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL29wZW4tcmVxCiAKIHdlYmtpdC5vcmcvYi8xNzM3NzkgWyBEZWJ1ZyBdIGZhc3Qvc2Nyb2xs
aW5nL2Fycm93LWtleS1zY3JvbGwtaW4tcnRsLWRvY3VtZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQogCi13ZWJraXQub3JnL2IvMTczNjcyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9pbnZhbGlkYXRlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJr
aXQub3JnL2IvMTczNTAwIGh0dHAvdGVzdHMvbG9hZGluZy9iYXNpYy1hdXRoLXJlbW92ZS1jcmVk
ZW50aWFscy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE3NTc4MSBzdmcv
aW4taHRtbC9ieS1yZWZlcmVuY2UuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDRlODMxZjM4MmI5MTJmNDJkMTUzODY4
ZTc5ZmM1MDBmNzc0YTQ3MzkuLjE3ZTAzOGRlNTMxMWQxYWFlMGYzZDQyYjE3NTdjMTgyZjQzMThi
OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjky
LDEwICsxMjkyLDYgQEAgZmFzdC90ZXh0L3N5c3RlbS1mb250LWphcGFuZXNlLXN5bnRoZXRpYy1p
dGFsaWMuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAjIHdlIHNob3VsZCBkZWxldGUg
dGhlIHRlc3QuCiBmYXN0L3RleHQvZm9udC12YXJpYXRpb25zLWZlYXR1cmUtZGV0ZWN0aW9uLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAotIyA8cmRhcjovL3Byb2JsZW0vMzM0Mzc1OTc+IE11
bHRpcGxlIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2ggYXJlIGZhaWxpbmcg
b24gSGlnaCBTaWVycmEKLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnkud29ya2VyLmh0bWwgWyBGYWlsdXJlIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVy
cy5hbnkuaHRtbCBbIEZhaWx1cmUgXQotCiAjIDxyZGFyOi8vcHJvYmxlbS8zMzczMTA4Nj4KIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90aW1lLWxhYmVscy1zdXBwb3J0L2VsYXBzZWQtdGlt
ZS5odG1sIFsgU2tpcCBdCiAKQEAgLTIwMDEsOCArMTk5Nyw2IEBAIHdlYmtpdC5vcmcvYi8yMTU3
MjMgZmFzdC9yZXBhaW50L2xpc3QtaXRlbS1lcXVhbC1zdHlsZS1jaGFuZ2Utbm8tcmVwYWludC5o
dG1sIFsKIAogd2Via2l0Lm9yZy9iLzE4OTY3MiBbIFJlbGVhc2UgXSB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvY2FudmFzL3RleC0yZC1yZzMyZi1yZy1mbG9hdC5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIxNTc4NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtb25seS1pZi1jYWNoZWQu
aHRtbCBbIFBhc3MgXQotCiB3ZWJraXQub3JnL2IvMTkxNjI3IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2FsaWdubWVudC9ncmlkLXNlbGYtYmFzZWxpbmUtbm90
LWFwcGxpZWQtaWYtc2l6aW5nLWN5Y2xpYy1kZXBlbmRlbmN5LTAwMS5odG1sIFsgUGFzcyBdCiAK
IHdlYmtpdC5vcmcvYi8yMTU4MTQgWyBEZWJ1ZyBdIGluc3BlY3Rvci9jb25zb2xlL3F1ZXJ5SW5z
dGFuY2VzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L3JlcXVlc3QtaGVhZGVycy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVl
c3QtaGVhZGVycy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDcwYTdiOWVhYWQ1MjhkOGNjNmZmZjU4
NTViODIzNmU1NzhhMDdjNWEuLmY5ODc0YzQwNDFhMjJkMzIzOTQ2YjNmN2Y1ZDQyMzg5YTEyYmI2
MTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMuYW55LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmFueS1leHBlY3Rl
ZC50eHQKQEAgLTEsNiArMSw2IEBACiAKIFBBU1MgRmV0Y2ggd2l0aCBHRVQKLUZBSUwgRmV0Y2gg
d2l0aCBIRUFEIGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNvbnRl
bnQtbGVuZ3RoOiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAi
MCIKK1BBU1MgRmV0Y2ggd2l0aCBIRUFECiBQQVNTIEZldGNoIHdpdGggUFVUIHdpdGhvdXQgYm9k
eQogUEFTUyBGZXRjaCB3aXRoIFBVVCB3aXRoIGJvZHkKIFBBU1MgRmV0Y2ggd2l0aCBQT1NUIHdp
dGhvdXQgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMu
YW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNzBhN2I5ZWFhZDUyOGQ4Y2M2ZmZmNTg1NWI4
MjM2ZTU3OGEwN2M1YS4uZjk4NzRjNDA0MWEyMmQzMjM5NDZiM2Y3ZjVkNDIzODlhMTJiYjYxNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCiBQQVNTIEZldGNoIHdpdGggR0VUCi1G
QUlMIEZldGNoIHdpdGggSEVBRCBhc3NlcnRfZXF1YWxzOiBSZXF1ZXN0IHNob3VsZCBoYXZlIGhl
YWRlciBjb250ZW50LWxlbmd0aDogbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3Qg
KHN0cmluZykgIjAiCitQQVNTIEZldGNoIHdpdGggSEVBRAogUEFTUyBGZXRjaCB3aXRoIFBVVCB3
aXRob3V0IGJvZHkKIFBBU1MgRmV0Y2ggd2l0aCBQVVQgd2l0aCBib2R5CiBQQVNTIEZldGNoIHdp
dGggUE9TVCB3aXRob3V0IGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggOTZkNDM4MWQwMTg3ZjcwMjgzY2U5MmJlMTM1NDI5MDNmOTk4NDBhZS4uMjcx
MmExZDY5ZjMzY2U1NWE4OGNmY2RhMWRmNGYyM2JjMzAxMzU2OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTcyOCw5ICs3MjgsNiBAQCBodHRwL3Rlc3Rz
L3N0b3JhZ2Uvc3RvcmFnZS1tYXAtbGVha2luZy5odG1sIFsgUGFzcyBdCiAjIER1bXBSZW5kZXJU
cmVlIGRvZXMgbm90IGltcGxlbWVudCBzZXRXaWxsU2VuZFJlcXVlc3RIVFRQQm9keQogaHR0cC90
ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXdpdGgtY2xpZW50LXByb3ZpZGVkLWh0dHAtYm9k
eS5odG1sIFsgUGFzcyBdCiAKLSMgYnVnIDE2MjI4MQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLW9ubHktaWYtY2FjaGVkLmh0
bWwgWyBGYWlsdXJlIF0KLQogcHJpbnRpbmcvcHJpbnRpbmctZXZlbnRzLmh0bWwgWyBQYXNzIF0K
IAogIyBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MgYXJlIG9ubHkgc3VwcG9ydGVkIGluIFdlYktp
dDIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGUyNjRl
OGRlZTc3NWM3M2NkYzFhZWE5OTE5M2U1NmY1YTRhZTU2MTEuLjYxZDNhYTI5MGFhYWIxYWQwNjdh
YWEyZGNmYzg0MGVlNTYyZjZhNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dw
ZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhw
ZWN0YXRpb25zCkBAIC04MjcsMTIgKzgyNyw2IEBAIHdlYmtpdC5vcmcvYi8yMDgxMzkgaHR0cC90
ZXN0cy9jYWNoZS9saW5rLXByZWZldGNoLW1haW4tcmVzb3VyY2UuaHRtbCBbIEZhaWx1cmUKIAog
d2Via2l0Lm9yZy9iLzIwODEzOSBodHRwL3dwdC9wcmVmZXRjaC9saW5rLXByZWZldGNoLXNraXAt
ZGlzay1jYWNoZS5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMDgxMzkgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb3JzLzMwNC5odG0gWyBGYWlsdXJlIFBhc3Mg
XQotd2Via2l0Lm9yZy9iLzIwODEzOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2h0dHAtY2FjaGUvMzA0LXVwZGF0ZS5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5v
cmcvYi8yMDgxMzkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNh
Y2hlL2ZyZXNobmVzcy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8yMDgxMzkg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2hldXJpc3Rp
Yy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8yMDgxMzkgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2ludmFsaWRhdGUuaHRtbCBbIEZh
aWx1cmUgUGFzcyBdCi13ZWJraXQub3JnL2IvMjA4MTM5IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9zdGF0dXMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi13
ZWJraXQub3JnL2IvMjA4MTM5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
aHR0cC1jYWNoZS92YXJ5Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzIwODEz
OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci91cGRhdGUtbm8tY2FjaGUtcmVxdWVzdC1oZWFkZXJzLmh0dHBzLmh0bWwgWyBGYWls
dXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMjA4ODcwIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1j
YWNoZS9kaXNrLWNhY2hlLTIwNC1zdGF0dXMtY29kZS5odG1sIFsgRmFpbHVyZSBQYXNzIF0KQEAg
LTg0MCwxMSArODM0LDYgQEAgd2Via2l0Lm9yZy9iLzIwODg3MCBodHRwL3Rlc3RzL2NhY2hlL2Rp
c2stY2FjaGUvZGlzay1jYWNoZS0zMDctc3RhdHVzLWNvZGUuaHRtbAogd2Via2l0Lm9yZy9iLzIw
ODg3MCBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS00MDQtc3RhdHVzLWNv
ZGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMjA4ODcwIGh0dHAvdGVzdHMv
Y2FjaGUvZGlzay1jYWNoZS9kaXNrLWNhY2hlLWRpc2FibGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBd
CiAKLXdlYmtpdC5vcmcvYi8yMDg5MzcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYmFzaWMvY29uZGl0aW9uYWwtZ2V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotd2Vi
a2l0Lm9yZy9iLzIwODkzNyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtZGVmYXVsdC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdl
YmtpdC5vcmcvYi8yMDg5MzcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNhY2hlLWZvcmNlLWNhY2hlLmh0bWwgWyBGYWlsdXJlIFBhc3Mg
XQotd2Via2l0Lm9yZy9iLzIwODkzNyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2FjaGUtcmVsb2FkLmh0bWwgWyBGYWlsdXJlIFBhc3Mg
XQotCiAjIFNpbmNlIHIyNDk2MjIKIHdlYmtpdC5vcmcvYi8yMDY2MzkgaHR0cC90ZXN0cy9jb250
ZW50ZXh0ZW5zaW9ucy9ibG9jay1jb29raWVzLWJhc2ljLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQog
d2Via2l0Lm9yZy9iLzIwNjYzOSBodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWNv
b2tpZXMtc2VuZC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3Rlc3RzLW9wdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgppbmRl
eCBmMjRlMDU2MDU3ZTY0ZmNmYjEwNDE2NjdiYjdlZjY1YzkwNTljYzE5Li4yNWY3ZTBlMmZjMGMz
MGI4NTFmOTJkMWJlMDcxMWY4YWJmYjJkZDY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90ZXN0
cy1vcHRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCkBAIC0x
MSwzMjMyICsxMSwxNiBAQAogICAgICJodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3RpbWVvdXQt
Z3JlYXRlci10aGFuLWRlZmF1bHQtbmV0d29yay10aW1lb3V0Lmh0bWwiOiBbCiAgICAgICAgICJz
bG93IgogICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9jc3MvY3NzLWNvbG9yL2NvbG9yLXJlc29s
dmluZy1oc2wuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL2Nzcy9jc3MtdmFsdWVzL3ZoX25vdF9yZWZyZXNoaW5nX29uX2Nocm9tZS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlh
L2NsZWFya2V5LW1wNC1wbGF5YmFjay10ZW1wb3JhcnktZW5jcnlwdGVkLWNsZWFyLXNvdXJjZXMu
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L2VuY3J5cHRlZC1tZWRpYS9jbGVhcmtleS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LW11bHRpa2V5
LXNlcXVlbnRpYWwtcmVhZHlTdGF0ZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2NsZWFya2V5LW1wNC1wbGF5
YmFjay10ZW1wb3JhcnktbXVsdGlrZXktc2VxdWVudGlhbC5odHRwcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2NsZWFy
a2V5LW1wNC1wbGF5YmFjay10ZW1wb3JhcnktdHdvLXZpZGVvcy5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2Ns
ZWFya2V5LW1wNC1yZXF1ZXN0bWVkaWFrZXlzeXN0ZW1hY2Nlc3MuaHR0cHMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9k
cm0tZXZlbnRzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLWV4cGlyYXRpb24uaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRp
YS9kcm0ta2V5c3RhdHVzZXMtbXVsdGlwbGUtc2Vzc2lvbnMuaHR0cHMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0t
a2V5c3RhdHVzZXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLWRlc3Ryb3ktcGVy
c2lzdGVudC1saWNlbnNlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay1wZXJzaXN0
ZW50LWxpY2Vuc2UtZXZlbnRzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay1wZXJz
aXN0ZW50LWxpY2Vuc2UuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXBlcnNpc3Rl
bnQtdXNhZ2UtcmVjb3JkLWV2ZW50cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2st
cGVyc2lzdGVudC11c2FnZS1yZWNvcmQuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNr
LXJldHJpZXZlLWRlc3Ryb3ktcGVyc2lzdGVudC1saWNlbnNlLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJt
LW1wNC1wbGF5YmFjay1yZXRyaWV2ZS1wZXJzaXN0ZW50LWxpY2Vuc2UuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRp
YS9kcm0tbXA0LXBsYXliYWNrLXJldHJpZXZlLXBlcnNpc3RlbnQtdXNhZ2UtcmVjb3JkLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktY2xlYXItZW5jcnlwdGVkLmh0
dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9l
bmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktZW5jcnlwdGVkLWNsZWFy
LXNvdXJjZXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1lbmNy
eXB0ZWQtY2xlYXIuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1l
dmVudHMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1leHBpcmVk
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktbXVsdGlrZXktc2Vx
dWVudGlhbC1yZWFkeVN0YXRlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1w
b3JhcnktbXVsdGlrZXktc2VxdWVudGlhbC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJh
Y2stdGVtcG9yYXJ5LW11bHRpa2V5Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10
ZW1wb3JhcnktbXVsdGlzZXNzaW9uLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10
ZW1wb3Jhcnktc2V0TWVkaWFLZXlzLWFmdGVyLXNyYy5odHRwcy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQt
cGxheWJhY2stdGVtcG9yYXJ5LXNldE1lZGlhS2V5cy1hZnRlci11cGRhdGUuaHR0cHMuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1t
ZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1zZXRNZWRpYUtleXMtaW1tZWRpYXRlbHku
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1zZXRNZWRpYUtleXMt
b25lbmNyeXB0ZWQuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS10
d28tdmlkZW9zLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3Jhcnktd2Fp
dGluZ2ZvcmtleS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2MvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5Lmh0
dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy9l
bmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtleXMtYWdhaW4tYWZ0ZXItcGxheWJhY2su
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXNldG1lZGlha2V5cy1hZ2Fpbi1hZnRlci1yZXNldHRp
bmctc3JjLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtleXMtYXQtc2FtZS10aW1l
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtleXMtbXVsdGlwbGUtdGltZXMtd2l0
aC1kaWZmZXJlbnQtbWVkaWFrZXlzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtl
eXMtbXVsdGlwbGUtdGltZXMtd2l0aC10aGUtc2FtZS1tZWRpYWtleXMuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRp
YS9kcm0tbXA0LXNldG1lZGlha2V5cy10by1tdWx0aXBsZS12aWRlby1lbGVtZW50cy5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2MvZW5jcnlw
dGVkLW1lZGlhL2RybS1tcDQtd2FpdGluZy1mb3ItYS1rZXkuaHR0cHMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL2VuY3J5cHRlZC1tZWRpYS9kcm0t
dGVtcG9yYXJ5LWxpY2Vuc2UtdHlwZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL2FuaW1h
dGlvbnMvdXBkYXRpbmctdGhlLWZpbmlzaGVkLXN0YXRlLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItYW5pbWF0aW9ucy90aW1pbmctbW9kZWwv
dGltZWxpbmVzL3VwZGF0ZS1hbmQtc2VuZC1ldmVudHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL3Vy
bC9zYW5kYm94ZWQtaWZyYW1lLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYi1iaW5hcnkta2V5
LXJvdW5kdHJpcC5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvci1jb250aW51ZVByaW1h
cnlLZXktZXhjZXB0aW9uLW9yZGVyLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJzLmh0bSI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiaW5kZXgtbXVsdGllbnRyeS1iaWcuaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRl
eC1yZW5hbWUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmUtcmVuYW1lLXN0
b3JlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTUt
YXV0b2luY3JlbWVudC5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4OC12YWxpZF9rZXlzLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfZ2V0S2V5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2ludGVybGVhdmVkLWN1
cnNvcnMtbGFyZ2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaW50ZXJsZWF2ZWQtY3Vyc29ycy1z
bWFsbC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pbnRlcmxlYXZlZC1jdXJzb3JzLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2tleS1jb252ZXJzaW9uLWV4Y2VwdGlvbnMuaHRtIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9rZXlfdmFsaWQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5cGF0aF9tYXhzaXpl
Lmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvbGFyZ2UtbmVzdGVkLWNsb25pbmcuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvbGFyZ2UtcmVxdWVzdHMtYWJvcnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
bmVzdGVkLWNsb25pbmctbGFyZ2UtbXVsdGlwbGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvbmVz
dGVkLWNsb25pbmctbGFyZ2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvbmVzdGVkLWNsb25pbmct
c21hbGwuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvcGFyYWxsZWwtY3Vyc29ycy11cGdyYWRlLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL3JlcXVlc3QtYWJvcnQtb3JkZXJpbmcuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvcmVxdWVzdC1ldmVudC1vcmRlcmluZy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi93YXNtLW1vZHVsZS12YWx1ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi93cml0ZXItc3RhcnZh
dGlvbi5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2Rlcml2ZV9iaXRzX2tleXMvdGVzdF9lY2Ro
X2JpdHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5cy90ZXN0X2Vj
ZGhfYml0cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVfYml0c19rZXlz
L3Rlc3RfZWNkaF9rZXlzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2Rlcml2ZV9iaXRzX2tl
eXMvdGVzdF9lY2RoX2tleXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZl
X2JpdHNfa2V5cy90ZXN0X2hrZGYuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2Jp
dHNfa2V5cy90ZXN0X2hrZGYuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZl
X2JpdHNfa2V5cy90ZXN0X3Bia2RmMi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVf
Yml0c19rZXlzL3Rlc3RfcGJrZGYyX2VtcHR5X2VtcHR5Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2Vi
Q3J5cHRvQVBJL2Rlcml2ZV9iaXRzX2tleXMvdGVzdF9wYmtkZjJfZW1wdHlfbG9uZy5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVfYml0c19rZXlzL3Rlc3RfcGJrZGYyX2Vt
cHR5X3Nob3J0Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2Rlcml2ZV9iaXRzX2tl
eXMvdGVzdF9wYmtkZjJfbG9uZ19lbXB0eS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9kZXJpdmVfYml0c19rZXlzL3Rlc3RfcGJrZGYyX2xvbmdfbG9uZy5odHRwcy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVfYml0c19rZXlzL3Rlc3RfcGJrZGYyX2xvbmdfc2hvcnQu
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5cy90ZXN0X3Bi
a2RmMl9zaG9ydF9lbXB0eS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kZXJpdmVf
Yml0c19rZXlzL3Rlc3RfcGJrZGYyX3Nob3J0X2xvbmcuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJD
cnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5cy90ZXN0X3Bia2RmMl9zaG9ydF9zaG9ydC5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9kaWdlc3QvdGVzdF9kaWdlc3QuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9XZWJDcnlwdG9BUEkvZGlnZXN0L3Rlc3RfZGlnZXN0Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2Vi
Q3J5cHRvQVBJL2VuY3J5cHRfZGVjcnlwdC90ZXN0X2Flc19jYmMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJD
cnlwdG9BUEkvZW5jcnlwdF9kZWNyeXB0L3Rlc3RfYWVzX2NiYy5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1dlYkNyeXB0b0FQSS9lbmNyeXB0X2RlY3J5cHQvdGVzdF9hZXNfY3RyLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
V2ViQ3J5cHRvQVBJL2VuY3J5cHRfZGVjcnlwdC90ZXN0X2Flc19jdHIuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9XZWJDcnlwdG9BUEkvZW5jcnlwdF9kZWNyeXB0L3Rlc3RfYWVzX2djbS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL1dlYkNyeXB0b0FQSS9lbmNyeXB0X2RlY3J5cHQvdGVzdF9hZXNfZ2NtLmh0dHBzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2VuY3J5cHRfZGVjcnlwdC90ZXN0X3JzYV9vYWVwLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2VuY3J5cHRfZGVjcnlwdC90ZXN0X3JzYV9vYWVwLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfYWVzLWNiYy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2Flcy1jYmMuaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9hZXMtY3RyLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfYWVzLWN0ci5odHRwcy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXMuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19BRVMtQ0JDLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfQUVTLUNCQy5o
dHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVz
X0FFUy1DVFIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWls
dXJlc19BRVMtQ1RSLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5
L3Rlc3RfZmFpbHVyZXNfQUVTLUdDTS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0
ZUtleS90ZXN0X2ZhaWx1cmVzX0FFUy1HQ00uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9B
UEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19BRVMtS1cuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlw
dG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19BRVMtS1cuaHR0cHMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19FQ0RILmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfRUNESC5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX0VDRFNBLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfRUNEU0Eu
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJl
c19ITUFDLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVy
ZXNfSE1BQy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0
X2ZhaWx1cmVzX1JTQS1PQUVQLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5
L3Rlc3RfZmFpbHVyZXNfUlNBLU9BRVAuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkv
Z2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0EtUFNTLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRv
QVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBLVBTUy5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQVNTQS1QS0NTMS12MV81
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNB
U1NBLVBLQ1MxLXYxXzUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVL
ZXkvdGVzdF9zdWNjZXNzZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkv
dGVzdF9zdWNjZXNzZXNfQUVTLUNCQy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0
ZUtleS90ZXN0X3N1Y2Nlc3Nlc19BRVMtQ0JDLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRv
QVBJL2dlbmVyYXRlS2V5L3Rlc3Rfc3VjY2Vzc2VzX0FFUy1DVFIuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJD
cnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNjZXNzZXNfQUVTLUNUUi5odHRwcy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X3N1Y2Nlc3Nlc19BRVMtR0NNLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3Rfc3VjY2Vzc2VzX0FFUy1H
Q00uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNj
ZXNzZXNfQUVTLUtXLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3Rf
c3VjY2Vzc2VzX0FFUy1LVy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0
ZUtleS90ZXN0X3N1Y2Nlc3Nlc19FQ0RILmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVy
YXRlS2V5L3Rlc3Rfc3VjY2Vzc2VzX0VDREguaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9B
UEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNjZXNzZXNfRUNEU0EuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlw
dG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNjZXNzZXNfRUNEU0EuaHR0cHMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9zdWNjZXNzZXNfSE1BQy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X3N1Y2Nlc3Nlc19ITUFDLmh0dHBzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3Rfc3VjY2Vzc2VzX1JTQS1P
QUVQLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3Rfc3VjY2Vzc2Vz
X1JTQS1PQUVQLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rl
c3Rfc3VjY2Vzc2VzX1JTQS1QU1MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVL
ZXkvdGVzdF9zdWNjZXNzZXNfUlNBLVBTUy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9nZW5lcmF0ZUtleS90ZXN0X3N1Y2Nlc3Nlc19SU0FTU0EtUEtDUzEtdjFfNS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X3N1Y2Nlc3Nlc19SU0FTU0EtUEtDUzEt
djFfNS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9zaWduX3ZlcmlmeS90ZXN0X2Vj
ZHNhLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL3NpZ25fdmVyaWZ5L3Rlc3RfZWNkc2EuaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvc2lnbl92ZXJpZnkvdGVzdF9obWFjLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvV2ViQ3J5cHRvQVBJL3NpZ25fdmVyaWZ5L3Rlc3RfaG1hYy5odHRwcy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1dlYkNyeXB0b0FQSS9zaWduX3ZlcmlmeS90ZXN0X3JzYV9wa2NzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL3NpZ25fdmVyaWZ5L3Rlc3RfcnNhX3BrY3MuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9XZWJDcnlwdG9BUEkvc2lnbl92ZXJpZnkvdGVzdF9yc2FfcHNzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
V2ViQ3J5cHRvQVBJL3NpZ25fdmVyaWZ5L3Rlc3RfcnNhX3Bzcy5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1dlYkNyeXB0b0FQSS93cmFwS2V5X3Vud3JhcEtleS90ZXN0X3dyYXBLZXlfdW53cmFwS2V5Lmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL3dyYXBLZXlfdW53cmFwS2V5L3Rlc3Rfd3JhcEtleV91
bndyYXBLZXkuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9wcm9ncmVzcy1ldmVu
dHMtcmVzcG9uc2UtZGF0YS1nemlwLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLXJl
ZGlyZWN0LWJvZ3VzLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10
aW1lb3V0LWFib3J0ZWQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LWFib3J0ZWRvbm1haW4uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hN
TEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtcmV1c2VkLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1haW4uaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJv
cnRlZC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
d29ya2VyLW92ZXJyaWRlcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRw
UmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zaW1wbGUuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3Jr
ZXIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdv
cmtlci10d2ljZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2FjaWQvYWNpZDMvbnVtYmVyZWQtdGVzdHMuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9hdWRpby1vdXRwdXQvc2V0U2lua0lkLW1hbnVhbC5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JlYWNvbi9iZWFjb24tYmFzaWMtYmxvYi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tYmFz
aWMtYmxvYk1heC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tYmFzaWMtYnVmZmVyc291cmNl
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1iYXNpYy1idWZmZXJzb3VyY2VNYXguaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9iZWFjb24vYmVhY29uLWJhc2ljLWZvcm1kYXRhLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29u
L2JlYWNvbi1iYXNpYy1mb3JtZGF0YU1heC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tYmFz
aWMtc3RyaW5nLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1iYXNpYy1zdHJpbmdNYXguaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLW5hdmlnYXRlLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY2xpcGJvYXJk
LWFwaXMvYXN5bmMtaWRsaGFybmVzcy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJp
dHktcG9saWN5L2VtYmVkZGVkLWVuZm9yY2VtZW50L3JlcXVpcmVkX2NzcC1oZWFkZXIuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9mcmFtZS1hbmNlc3RvcnMvcmVwb3J0LWJs
b2NrZWQtZnJhbWUuc3ViLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvZnJh
bWUtYW5jZXN0b3JzL3JlcG9ydC1vbmx5LWZyYW1lLnN1Yi5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQt
c2VjdXJpdHktcG9saWN5L2dlbmVyaWMvbm8tZGVmYXVsdC1zcmMuc3ViLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y29udGVudC1zZWN1cml0eS1wb2xpY3kvbmF2aWdhdGUtdG8vY2hpbGQtbmF2aWdhdGVzLXBhcmVu
dC1hbGxvd2VkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvbmF2aWdhdGUt
dG8vbGluay1jbGljay1hbGxvd2VkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xp
Y3kvbmF2aWdhdGUtdG8vbGluay1jbGljay1jcm9zcy1vcmlnaW4tYWxsb3dlZC5zdWIuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9uYXZpZ2F0ZS10by9saW5rLWNsaWNrLWNy
b3NzLW9yaWdpbi1ibG9ja2VkLnN1Yi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHktcG9s
aWN5L25hdmlnYXRlLXRvL2xpbmstY2xpY2stcmVkaXJlY3RlZC1hbGxvd2VkLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvbmF2aWdhdGUtdG8vbGluay1jbGljay1yZWRpcmVj
dGVkLWJsb2NrZWQuc3ViLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvb2Jq
ZWN0LXNyYy9vYmplY3Qtc3JjLTJfMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHktcG9s
aWN5L29iamVjdC1zcmMvb2JqZWN0LXNyYy0yXzIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3Vy
aXR5LXBvbGljeS9yZXBvcnRpbmctYXBpL3JlcG9ydGluZy1hcGktcmVwb3J0LXRvLW92ZXJyaWRl
cy1yZXBvcnQtdXJpLTIuaHR0cHMuc3ViLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1w
b2xpY3kvcmVwb3J0aW5nL3JlcG9ydC1jcm9zcy1vcmlnaW4tbm8tY29va2llcy5zdWIuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9yZXBvcnRpbmcvcmVwb3J0LW9ubHktaW4t
bWV0YS5zdWIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS9zdHlsZS1zcmMv
c3R5bGUtc3JjLW11bHRpcGxlLXBvbGljaWVzLW11bHRpcGxlLWhhc2hpbmctYWxnb3JpdGhtcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2NvcnMvMzA0Lmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb3JzL29yaWdpbi5odG0iOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY29ycy9wcmVmbGlnaHQtY2FjaGUuaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvcnMvc3RhdHVzLWFzeW5jLmh0
bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvQ1NTQW5pbWF0aW9uLWVmZmVjdC50ZW50YXRp
dmUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvYW5pbWF0aW9uZXZlbnQtdHlwZXMu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWFuaW1hdGlvbnMvZXZlbnQtZGlzcGF0Y2gudGVudGF0aXZl
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRpb25zL2lkbGhhcm5lc3MuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbG9yL2NvbG9yLXJlc29sdmluZy1oc2wuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbG9yL2NvbG9yLXJlc29sdmluZy1od2IuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDguaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWZvbnRzL2ZvbnQtZGlzcGxheS9mb250LWRpc3BsYXkuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWZvbnRzL3ZhcmlhdGlvbnMvYXQtZm9udC1mYWNlLWZvbnQtbWF0Y2hpbmcuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWZvbnRzL3ZhcmlhdGlvbnMvZm9udC1zdHlsZS1pbnRlcnBvbGF0aW9uLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wcm9wZXJ0aWVzLXZhbHVlLTAwMS5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcHJvcGVydGllcy12YWx1ZS0wMDMuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3Byb3BlcnRpZXMtdmFsdWUtaW1wbGljaXQtMDAx
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wcm9wZXJ0aWVzLXZhbHVlLWluaGVy
aXQtMDAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wcm9wZXJ0aWVzLXZhbHVl
LWluaGVyaXQtMDAyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy90cmFuc2l0aW9u
Y2FuY2VsLTAwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1k
ZWZhdWx0LWNzcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1l
bGVtZW50Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsLWJlaGF2aW9yLW1haW4t
ZnJhbWUtcm9vdC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhhdmlvci1t
YWluLWZyYW1lLXdpbmRvdy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbC1iZWhh
dmlvci1zY3JvbGxpbnRvdmlldy1uZXN0ZWQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc21vb3RoLXBvc2l0aW9ucy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbC1iZWhhdmlvci1zbW9vdGguaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9z
Y3JvbGwtYmVoYXZpb3Itc3ViZnJhbWUtcm9vdC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbC1iZWhhdmlvci1zdWJmcmFtZS13aW5kb3cuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20v
aWRsaGFybmVzcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMDIu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LWRpc3BhdGNoLW9uLWRpc2FibGVkLWVsZW1l
bnRzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZp
cmVkLWZvci1wcm9ncmFtbWF0aWMtc2Nyb2xsLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3Jv
bGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVkLWZvci1zY3JvbGxJbnRvVmlldy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jaGFyYWN0ZXJTZXQtbm9ybWFsaXphdGlvbi5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9QYXJlbnROb2RlLXF1ZXJ5U2VsZWN0b3ItQWxsLXhodC54aHQiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL1BhcmVudE5vZGUtcXVlcnlTZWxlY3Rvci1BbGwuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vcmFuZ2VzL1JhbmdlLWF0dHJpYnV0ZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1Jh
bmdlLWNsb25lQ29udGVudHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWNsb25lUmFu
Z2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWNvbGxhcHNlLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL3Jhbmdlcy9SYW5nZS1jb21tb25BbmNlc3RvckNvbnRhaW5lci5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9yYW5nZXMvUmFuZ2UtY29tcGFyZUJvdW5kYXJ5UG9pbnRzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jh
bmdlcy9SYW5nZS1jb21wYXJlUG9pbnQtMi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2Ut
Y29tcGFyZVBvaW50Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1kZWxldGVDb250ZW50
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtZGV0YWNoLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L3Jhbmdlcy9SYW5nZS1leHRyYWN0Q29udGVudHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1Jh
bmdlLWluc2VydE5vZGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWludGVyc2VjdHNO
b2RlLWJpbmRpbmcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWludGVyc2VjdHNOb2Rl
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1pc1BvaW50SW5SYW5nZS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9yYW5nZXMvUmFuZ2UtbXV0YXRpb25zLWFwcGVuZENoaWxkLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMtYXBwZW5kRGF0YS5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9y
YW5nZXMvUmFuZ2UtbXV0YXRpb25zLWRhdGFDaGFuZ2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2Vz
L1JhbmdlLW11dGF0aW9ucy1kZWxldGVEYXRhLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5n
ZS1tdXRhdGlvbnMtaW5zZXJ0QmVmb3JlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1t
dXRhdGlvbnMtaW5zZXJ0RGF0YS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtbXV0YXRp
b25zLXJlbW92ZUNoaWxkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMt
cmVwbGFjZUNoaWxkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMtcmVw
bGFjZURhdGEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLW11dGF0aW9ucy1zcGxpdFRl
eHQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLW11dGF0aW9ucy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9yYW5nZXMvUmFuZ2Utc2VsZWN0Tm9kZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFu
Z2Utc2V0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1zdXJyb3VuZENvbnRlbnRzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9Ob2RlSXRlcmF0b3ItcmVtb3ZhbC5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS90cmF2ZXJzYWwvTm9kZUl0ZXJhdG9yLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNh
bC9UcmVlV2Fsa2VyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvYXBpLWludmFsaWQtbGFiZWwuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvZXVjLWpwL2V1Y2pwLWRlY29k
ZS1jc2V1Y3BrZGZtdGphcGFuZXNlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWph
cGFuZXNlL2V1Yy1qcC9ldWNqcC1kZWNvZGUtZXJyb3JzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2Rpbmcv
bGVnYWN5LW1iLWphcGFuZXNlL2V1Yy1qcC9ldWNqcC1kZWNvZGUteC1ldWMtanAuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvZXVjLWpwL2V1Y2pwLWRlY29kZS5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9ldWMtanAvZXVjanAtZW5jb2Rl
LWZvcm0tY3NldWNwa2RmbXRqYXBhbmVzZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1t
Yi1qYXBhbmVzZS9ldWMtanAvZXVjanAtZW5jb2RlLWZvcm0tZXJyb3JzLWhhbi5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9ldWMtanAvZXVjanAtZW5jb2RlLWZvcm0t
ZXJyb3JzLWhhbmd1bC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9l
dWMtanAvZXVjanAtZW5jb2RlLWZvcm0tZXJyb3JzLW1pc2MuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGlu
Zy9sZWdhY3ktbWItamFwYW5lc2UvZXVjLWpwL2V1Y2pwLWVuY29kZS1mb3JtLXgtZXVjLWpwLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL2V1Yy1qcC9ldWNqcC1lbmNv
ZGUtZm9ybS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9ldWMtanAv
ZXVjanAtZW5jb2RlLWhyZWYtZXJyb3JzLWhhbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2Fj
eS1tYi1qYXBhbmVzZS9ldWMtanAvZXVjanAtZW5jb2RlLWhyZWYtZXJyb3JzLWhhbmd1bC5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9ldWMtanAvZXVjanAtZW5jb2Rl
LWhyZWYtZXJyb3JzLW1pc2MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5l
c2UvZXVjLWpwL2V1Y2pwLWVuY29kZS1ocmVmLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5
LW1iLWphcGFuZXNlL2lzby0yMDIyLWpwL2lzbzIwMjJqcC1kZWNvZGUtY3Npc28yMDIyanAuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvaXNvLTIwMjItanAvaXNvMjAy
MmpwLWRlY29kZS1lcnJvcnMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5l
c2UvaXNvLTIwMjItanAvaXNvMjAyMmpwLWRlY29kZS5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xl
Z2FjeS1tYi1qYXBhbmVzZS9pc28tMjAyMi1qcC9pc28yMDIyanAtZW5jb2RlLWZvcm0tY3Npc28y
MDIyanAuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvaXNvLTIwMjIt
anAvaXNvMjAyMmpwLWVuY29kZS1mb3JtLWVycm9ycy1oYW4uaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGlu
Zy9sZWdhY3ktbWItamFwYW5lc2UvaXNvLTIwMjItanAvaXNvMjAyMmpwLWVuY29kZS1mb3JtLWVy
cm9ycy1oYW5ndWwuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvaXNv
LTIwMjItanAvaXNvMjAyMmpwLWVuY29kZS1mb3JtLWVycm9ycy1taXNjLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL2lzby0yMDIyLWpwL2lzbzIwMjJqcC1lbmNvZGUt
Zm9ybS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9pc28tMjAyMi1q
cC9pc28yMDIyanAtZW5jb2RlLWhyZWYtZXJyb3JzLWhhbi5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5n
L2xlZ2FjeS1tYi1qYXBhbmVzZS9pc28tMjAyMi1qcC9pc28yMDIyanAtZW5jb2RlLWhyZWYtZXJy
b3JzLWhhbmd1bC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9pc28t
MjAyMi1qcC9pc28yMDIyanAtZW5jb2RlLWhyZWYtZXJyb3JzLW1pc2MuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9l
bmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2UvaXNvLTIwMjItanAvaXNvMjAyMmpwLWVuY29kZS1o
cmVmLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0X2ppcy9z
amlzLWRlY29kZS1jc3NoaWZ0amlzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWph
cGFuZXNlL3NoaWZ0X2ppcy9zamlzLWRlY29kZS1lcnJvcnMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGlu
Zy9sZWdhY3ktbWItamFwYW5lc2Uvc2hpZnRfamlzL3NqaXMtZGVjb2RlLW1zOTMyLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0X2ppcy9zamlzLWRlY29kZS1t
c19rYW5qaS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9q
aXMvc2ppcy1kZWNvZGUtc2hpZnQtamlzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1i
LWphcGFuZXNlL3NoaWZ0X2ppcy9zamlzLWRlY29kZS1zamlzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2Rp
bmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0X2ppcy9zamlzLWRlY29kZS13aW5kb3dzLTMxai5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1k
ZWNvZGUteC1zamlzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3No
aWZ0X2ppcy9zamlzLWRlY29kZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBh
bmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUtZm9ybS1jc3NoaWZ0amlzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0X2ppcy9zamlzLWVuY29kZS1mb3JtLWVy
cm9ycy1oYW4uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2Uvc2hpZnRf
amlzL3NqaXMtZW5jb2RlLWZvcm0tZXJyb3JzLWhhbmd1bC5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5n
L2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUtZm9ybS1lcnJvcnMtbWlz
Yy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2pp
cy1lbmNvZGUtZm9ybS1tczkzMi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBh
bmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUtZm9ybS1tc19rYW5qaS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Vu
Y29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUtZm9ybS1zaGlm
dC1qaXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2Uvc2hpZnRfamlz
L3NqaXMtZW5jb2RlLWZvcm0tc2ppcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1q
YXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUtZm9ybS13aW5kb3dzLTMxai5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUtZm9y
bS14LXNqaXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFwYW5lc2Uvc2hpZnRf
amlzL3NqaXMtZW5jb2RlLWZvcm0uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItamFw
YW5lc2Uvc2hpZnRfamlzL3NqaXMtZW5jb2RlLWhyZWYtZXJyb3JzLWhhbi5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2VuY29kaW5nL2xlZ2FjeS1tYi1qYXBhbmVzZS9zaGlmdF9qaXMvc2ppcy1lbmNvZGUtaHJlZi1l
cnJvcnMtaGFuZ3VsLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWphcGFuZXNlL3No
aWZ0X2ppcy9zamlzLWVuY29kZS1ocmVmLWVycm9ycy1taXNjLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2Rp
bmcvbGVnYWN5LW1iLWphcGFuZXNlL3NoaWZ0X2ppcy9zamlzLWVuY29kZS1ocmVmLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWtvcmVhbi9ldWMta3IvZXVja3ItZGVjb2RlLWNzZXVj
a3IuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1k
ZWNvZGUtY3Nrc2M1NjAxMTk4Ny5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3Jl
YW4vZXVjLWtyL2V1Y2tyLWRlY29kZS1lcnJvcnMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdh
Y3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1kZWNvZGUtaXNvLWlyLTE0OS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWRlY29kZS1rb3JlYW4uaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1kZWNvZGUt
a3NfY181NjAxLTE5ODcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1
Yy1rci9ldWNrci1kZWNvZGUta3NfY181NjAxLTE5ODkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9s
ZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1kZWNvZGUta3NjNTYwMS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWRlY29kZS1rc2NfNTYwMS5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWRlY29k
ZS13aW5kb3dzLTk0OS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVj
LWtyL2V1Y2tyLWRlY29kZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4v
ZXVjLWtyL2V1Y2tyLWVuY29kZS1mb3JtLWNzZXVja3IuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9s
ZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1lbmNvZGUtZm9ybS1jc2tzYzU2MDExOTg3Lmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWtvcmVhbi9ldWMta3IvZXVja3ItZW5jb2Rl
LWZvcm0tZXJyb3JzLWhhbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4v
ZXVjLWtyL2V1Y2tyLWVuY29kZS1mb3JtLWVycm9ycy1oYW5ndWwuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNv
ZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1lbmNvZGUtZm9ybS1lcnJvcnMtbWlz
Yy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWVu
Y29kZS1mb3JtLWlzby1pci0xNDkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29y
ZWFuL2V1Yy1rci9ldWNrci1lbmNvZGUtZm9ybS1rb3JlYW4uaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGlu
Zy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1lbmNvZGUtZm9ybS1rc19jXzU2MDEtMTk4
Ny5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWVu
Y29kZS1mb3JtLWtzX2NfNTYwMS0xOTg5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1i
LWtvcmVhbi9ldWMta3IvZXVja3ItZW5jb2RlLWZvcm0ta3NjNTYwMS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Vu
Y29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWVuY29kZS1mb3JtLWtzY181NjAx
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLWtvcmVhbi9ldWMta3IvZXVja3ItZW5j
b2RlLWZvcm0td2luZG93cy05NDkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29y
ZWFuL2V1Yy1rci9ldWNrci1lbmNvZGUtZm9ybS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2Fj
eS1tYi1rb3JlYW4vZXVjLWtyL2V1Y2tyLWVuY29kZS1ocmVmLWVycm9ycy1oYW4uaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIta29yZWFuL2V1Yy1rci9ldWNrci1lbmNvZGUtaHJlZi1l
cnJvcnMtbWlzYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi1rb3JlYW4vZXVjLWty
L2V1Y2tyLWVuY29kZS1ocmVmLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLXRjaGlu
ZXNlL2JpZzUvYmlnNS1kZWNvZGUtYmlnNS1oa3Njcy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xl
Z2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZGVjb2RlLWNuLWJpZzUuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9l
bmNvZGluZy9sZWdhY3ktbWItdGNoaW5lc2UvYmlnNS9iaWc1LWRlY29kZS1jc2JpZzUuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItdGNoaW5lc2UvYmlnNS9iaWc1LWRlY29kZS1lcnJv
cnMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItdGNoaW5lc2UvYmlnNS9iaWc1LWRl
Y29kZS1leHRyYS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1
L2JpZzUtZGVjb2RlLXgteC1iaWc1Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLXRj
aGluZXNlL2JpZzUvYmlnNS1kZWNvZGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWIt
dGNoaW5lc2UvYmlnNS9iaWc1LWVuYy1hc2NpaS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2Fj
eS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5jb2RlLWZvcm0tYmlnNS1oa3Njcy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5jb2RlLWZvcm0tY24t
YmlnNS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUt
ZW5jb2RlLWZvcm0tY3NiaWc1Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2RpbmcvbGVnYWN5LW1iLXRjaGlu
ZXNlL2JpZzUvYmlnNS1lbmNvZGUtZm9ybS1lcnJvcnMtZXh0QmEuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNv
ZGluZy9sZWdhY3ktbWItdGNoaW5lc2UvYmlnNS9iaWc1LWVuY29kZS1mb3JtLWVycm9ycy1leHRC
Yi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5j
b2RlLWZvcm0tZXJyb3JzLWhhbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hp
bmVzZS9iaWc1L2JpZzUtZW5jb2RlLWZvcm0tZXJyb3JzLWhhbmd1bC5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Vu
Y29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5jb2RlLWZvcm0tZXJyb3JzLW1p
c2MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItdGNoaW5lc2UvYmlnNS9iaWc1LWVu
Y29kZS1mb3JtLWVycm9ycy1wdWEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZy9sZWdhY3ktbWItdGNo
aW5lc2UvYmlnNS9iaWc1LWVuY29kZS1mb3JtLXgteC1iaWc1Lmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jb2Rp
bmcvbGVnYWN5LW1iLXRjaGluZXNlL2JpZzUvYmlnNS1lbmNvZGUtZm9ybS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5jb2RlLWhyZWYtZXJyb3Jz
LWhhbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1tYi10Y2hpbmVzZS9iaWc1L2JpZzUt
ZW5jb2RlLWhyZWYtZXJyb3JzLWhhbmd1bC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL2xlZ2FjeS1t
Yi10Y2hpbmVzZS9iaWc1L2JpZzUtZW5jb2RlLWhyZWYtZXJyb3JzLW1pc2MuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9lbmNvZGluZy9sZWdhY3ktbWItdGNoaW5lc2UvYmlnNS9iaWc1LWVuY29kZS1ocmVmLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZW5jb2Rpbmcvc2luZ2xlLWJ5dGUtZGVjb2Rlci5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5
cHRlZC1tZWRpYS9jbGVhcmtleS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LWVuY3J5cHRlZC1jbGVh
ci1zb3VyY2VzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2NsZWFya2V5LW1wNC1wbGF5
YmFjay10ZW1wb3JhcnktZW5jcnlwdGVkLWNsZWFyLXNvdXJjZXMuaHR0cHMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJrZXktbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1tdWx0aWtl
eS1zZXF1ZW50aWFsLXJlYWR5U3RhdGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvY2xl
YXJrZXktbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1tdWx0aWtleS1zZXF1ZW50aWFsLXJlYWR5U3Rh
dGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJrZXktbXA0LXBsYXli
YWNrLXRlbXBvcmFyeS1tdWx0aWtleS1zZXF1ZW50aWFsLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVk
LW1lZGlhL2NsZWFya2V5LW1wNC1wbGF5YmFjay10ZW1wb3JhcnktbXVsdGlrZXktc2VxdWVudGlh
bC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9jbGVhcmtleS1tcDQtcGxheWJh
Y2stdGVtcG9yYXJ5LXR3by12aWRlb3MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvY2xl
YXJrZXktbXA0LXBsYXliYWNrLXRlbXBvcmFyeS10d28tdmlkZW9zLmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZW5jcnlwdGVkLW1lZGlhL2NsZWFya2V5LW1wNC1yZXF1ZXN0bWVkaWFrZXlzeXN0ZW1hY2Nl
c3MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJrZXktbXA0LXJlcXVlc3RtZWRp
YWtleXN5c3RlbWFjY2Vzcy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0t
ZXZlbnRzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1ldmVudHMuaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLWV4cGlyYXRpb24uaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9l
bmNyeXB0ZWQtbWVkaWEvZHJtLWV4cGlyYXRpb24uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0
ZWQtbWVkaWEvZHJtLWtleXN0YXR1c2VzLW11bHRpcGxlLXNlc3Npb25zLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZW5jcnlwdGVkLW1lZGlhL2RybS1rZXlzdGF0dXNlcy1tdWx0aXBsZS1zZXNzaW9ucy5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0ta2V5c3RhdHVzZXMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLWtleXN0YXR1c2VzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5j
cnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stZGVzdHJveS1wZXJzaXN0ZW50LWxpY2Vuc2Uu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay1kZXN0cm95LXBl
cnNpc3RlbnQtbGljZW5zZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0t
bXA0LXBsYXliYWNrLXBlcnNpc3RlbnQtbGljZW5zZS1ldmVudHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay1wZXJzaXN0ZW50LWxpY2Vuc2UtZXZlbnRzLmh0
dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stcGVyc2lz
dGVudC1saWNlbnNlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJh
Y2stcGVyc2lzdGVudC1saWNlbnNlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlh
L2RybS1tcDQtcGxheWJhY2stcGVyc2lzdGVudC11c2FnZS1yZWNvcmQtZXZlbnRzLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stcGVyc2lzdGVudC11c2FnZS1y
ZWNvcmQtZXZlbnRzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQt
cGxheWJhY2stcGVyc2lzdGVudC11c2FnZS1yZWNvcmQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQt
bWVkaWEvZHJtLW1wNC1wbGF5YmFjay1wZXJzaXN0ZW50LXVzYWdlLXJlY29yZC5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXJldHJpZXZlLWRlc3Ry
b3ktcGVyc2lzdGVudC1saWNlbnNlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1t
cDQtcGxheWJhY2stcmV0cmlldmUtZGVzdHJveS1wZXJzaXN0ZW50LWxpY2Vuc2UuaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay1yZXRyaWV2ZS1wZXJz
aXN0ZW50LWxpY2Vuc2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5
YmFjay1yZXRyaWV2ZS1wZXJzaXN0ZW50LWxpY2Vuc2UuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay1yZXRyaWV2ZS1wZXJzaXN0ZW50LXVzYWdlLXJl
Y29yZC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXJldHJp
ZXZlLXBlcnNpc3RlbnQtdXNhZ2UtcmVjb3JkLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVk
LW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LWNsZWFyLWVuY3J5cHRlZC5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1jbGVhci1l
bmNyeXB0ZWQuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5
YmFjay10ZW1wb3JhcnktZW5jcnlwdGVkLWNsZWFyLXNvdXJjZXMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktZW5jcnlwdGVkLWNsZWFyLXNv
dXJjZXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFj
ay10ZW1wb3JhcnktZW5jcnlwdGVkLWNsZWFyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlh
L2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LWVuY3J5cHRlZC1jbGVhci5odHRwcy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1ldmVudHMu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3Jhcnkt
ZXZlbnRzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJh
Y2stdGVtcG9yYXJ5LWV4cGlyZWQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1w
NC1wbGF5YmFjay10ZW1wb3JhcnktZXhwaXJlZC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRl
ZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1tdWx0aWtleS1zZXF1ZW50aWFsLXJl
YWR5U3RhdGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10
ZW1wb3JhcnktbXVsdGlrZXktc2VxdWVudGlhbC1yZWFkeVN0YXRlLmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LW11bHRpa2V5LXNl
cXVlbnRpYWwuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10
ZW1wb3JhcnktbXVsdGlrZXktc2VxdWVudGlhbC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRl
ZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1tdWx0aWtleS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1tdWx0aWtleS5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFy
eS1tdWx0aXNlc3Npb24uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5
YmFjay10ZW1wb3JhcnktbXVsdGlzZXNzaW9uLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVk
LW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LXNldE1lZGlhS2V5cy1hZnRlci1zcmMu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3Jhcnkt
c2V0TWVkaWFLZXlzLWFmdGVyLXNyYy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRp
YS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1zZXRNZWRpYUtleXMtYWZ0ZXItdXBkYXRlLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LXNl
dE1lZGlhS2V5cy1hZnRlci11cGRhdGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVk
aWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3Jhcnktc2V0TWVkaWFLZXlzLWltbWVkaWF0ZWx5Lmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LXNl
dE1lZGlhS2V5cy1pbW1lZGlhdGVseS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRp
YS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS1zZXRNZWRpYUtleXMtb25lbmNyeXB0ZWQuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3Jhcnktc2V0
TWVkaWFLZXlzLW9uZW5jcnlwdGVkLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlh
L2RybS1tcDQtcGxheWJhY2stdGVtcG9yYXJ5LXR3by12aWRlb3MuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnktdHdvLXZpZGVvcy5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXBsYXliYWNrLXRlbXBvcmFyeS13
YWl0aW5nZm9ya2V5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtcGxheWJh
Y2stdGVtcG9yYXJ5LXdhaXRpbmdmb3JrZXkuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQt
bWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQt
bWVkaWEvZHJtLW1wNC1wbGF5YmFjay10ZW1wb3JhcnkuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNy
eXB0ZWQtbWVkaWEvZHJtLW1wNC1yZXF1ZXN0bWVkaWFrZXlzeXN0ZW1hY2Nlc3MuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtleXMtYWdhaW4tYWZ0ZXItcGxh
eWJhY2suaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtleXMt
YWdhaW4tYWZ0ZXItcGxheWJhY2suaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEv
ZHJtLW1wNC1zZXRtZWRpYWtleXMtYWdhaW4tYWZ0ZXItcmVzZXR0aW5nLXNyYy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXNldG1lZGlha2V5cy1hZ2Fpbi1hZnRlci1yZXNl
dHRpbmctc3JjLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtc2V0
bWVkaWFrZXlzLWF0LXNhbWUtdGltZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0t
bXA0LXNldG1lZGlha2V5cy1hdC1zYW1lLXRpbWUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0
ZWQtbWVkaWEvZHJtLW1wNC1zZXRtZWRpYWtleXMtbXVsdGlwbGUtdGltZXMtd2l0aC1kaWZmZXJl
bnQtbWVkaWFrZXlzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtc2V0bWVk
aWFrZXlzLW11bHRpcGxlLXRpbWVzLXdpdGgtZGlmZmVyZW50LW1lZGlha2V5cy5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXNldG1lZGlha2V5cy1tdWx0aXBsZS10
aW1lcy13aXRoLXRoZS1zYW1lLW1lZGlha2V5cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRp
YS9kcm0tbXA0LXNldG1lZGlha2V5cy1tdWx0aXBsZS10aW1lcy13aXRoLXRoZS1zYW1lLW1lZGlh
a2V5cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXNldG1lZGlh
a2V5cy10by1tdWx0aXBsZS12aWRlby1lbGVtZW50cy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1t
ZWRpYS9kcm0tbXA0LXNldG1lZGlha2V5cy10by1tdWx0aXBsZS12aWRlby1lbGVtZW50cy5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYS9kcm0tbXA0LXdhaXRpbmctZm9yLWEta2V5
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZW5jcnlwdGVkLW1lZGlhL2RybS1tcDQtd2FpdGluZy1mb3ItYS1rZXku
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLXRlbXBvcmFyeS1saWNlbnNl
LXR5cGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNyeXB0ZWQtbWVkaWEvZHJtLXRlbXBvcmFyeS1saWNlbnNl
LXR5cGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9kZWRpY2F0ZWQtd29ya2VyL2V2
ZW50c291cmNlLWNvbnN0cnVjdG9yLW5vbi1zYW1lLW9yaWdpbi5odG0iOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRz
b3VyY2UvZXZlbnRzb3VyY2UtY29uc3RydWN0b3Itbm9uLXNhbWUtb3JpZ2luLmh0bSI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQtcmV0cnktYm9ndXMuaHRtIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50
c291cmNlL2Zvcm1hdC1maWVsZC1yZXRyeS5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2Uvc2hhcmVk
LXdvcmtlci9ldmVudHNvdXJjZS1jb25zdHJ1Y3Rvci1ub24tc2FtZS1vcmlnaW4uaHRtIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy9lcnJvci1hZnRlci1yZXNwb25zZS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9oZWFkZXJzL2hlYWRlci12YWx1ZXMtbm9ybWFsaXplLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVyLXZhbHVlcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZWRp
cmVjdC9yZWRpcmVjdC1jb3VudC13b3JrZXIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVkaXJl
Y3QvcmVkaXJlY3QtY291bnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNhY2hlLWRlZmF1bHQtY29uZGl0aW9uYWwuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNhY2hlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1r
ZWVwYWxpdmUtcXVvdGEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
Y2xvbmUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRwLWNhY2hlLzMwNC11cGRhdGUuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9odHRwLWNhY2hlL2NjLXJlcXVlc3QuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9odHRw
LWNhY2hlL2ZyZXNobmVzcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2h0dHAtY2FjaGUvaGV1cmlzdGlj
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9pbnZhbGlkYXRlLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvaHR0cC1jYWNoZS9wYXJ0aWFsLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9w
b3N0LXBhdGNoLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvaHR0cC1jYWNoZS9zdGF0dXMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9tZXRhZGF0YS9wcmVsb2FkLmh0dHBzLnN1Yi5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L3JlZGlyZWN0LW5hdmlnYXRlL3ByZXNlcnZlLWZyYWdtZW50Lmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9j
YXRpb24tQVBJL2dldEN1cnJlbnRQb3NpdGlvbl9JREwuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwvcGVyc2lzdGVkLXVz
ZXItc3RhdGUtcmVzdG9yYXRpb24vcmVzdW1lLXRpbWVyLW9uLWhpc3RvcnktYmFjay5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNhbC9w
ZXJzaXN0ZWQtdXNlci1zdGF0ZS1yZXN0b3JhdGlvbi9zY3JvbGwtcmVzdG9yYXRpb24tZnJhZ21l
bnQtc2Nyb2xsaW5nLWNyb3NzLW9yaWdpbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJv
d3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNhbC9wZXJzaXN0ZWQtdXNlci1zdGF0ZS1yZXN0
b3JhdGlvbi9zY3JvbGwtcmVzdG9yYXRpb24tbmF2aWdhdGlvbi1jcm9zcy1vcmlnaW4uaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvc2Nyb2xsLXRvLWZyYWdpZC8w
MDcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvc2Nyb2xsLXRv
LWZyYWdpZC9zY3JvbGwtZnJhZy1ub24tdXRmOC1lbmNvZGVkLWRvY3VtZW50Lmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL3Njcm9sbC10by1mcmFnaWQvc2Nyb2xs
LWZyYWctcGVyY2VudC1lbmNvZGVkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2lu
Zy10aGUtd2ViL3Njcm9sbC10by1mcmFnaWQvc2Nyb2xsLXRvLWFuY2hvci1uYW1lLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL3Njcm9sbC10by1mcmFnaWQvc2Ny
b2xsLXRvLWlkLXRvcC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdl
Yi9zY3JvbGwtdG8tZnJhZ2lkL3Njcm9sbC10by10b3AuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL2Jyb3dzaW5nLXRoZS13ZWIvdW5sb2FkaW5nLWRvY3VtZW50cy9wcm9tcHQtYW5kLXVubG9h
ZC1zY3JpcHQtY2xvc2VhYmxlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L2pv
aW50LXNlc3Npb24taGlzdG9yeS9qb2ludC1zZXNzaW9uLWhpc3RvcnktaWZyYW1lLXN0YXRlLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L2pvaW50LXNlc3Npb24taGlzdG9yeS9q
b2ludC1zZXNzaW9uLWhpc3RvcnktcmVtb3ZlLWlmcmFtZS5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvaGlzdG9yeS90aGUtaGlzdG9yeS1pbnRlcmZhY2UvMDA3Lmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9vZmZsaW5lL2FwcGxpY2F0aW9uLWNhY2hlLWFwaS9hcGlfc3RhdHVzX2lkbGUu
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL29yaWdpbi9jcm9zcy1vcmlnaW4tb2Jq
ZWN0cy9jcm9zcy1vcmlnaW4tb2JqZWN0cy1leGNlcHRpb25zLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9vcmlnaW4vY3Jvc3Mtb3JpZ2luLW9iamVjdHMvY3Jvc3Mtb3JpZ2luLW9iamVjdHMt
b24tbmV3LXdpbmRvdy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvb3JpZ2luL2Nyb3NzLW9y
aWdpbi1vYmplY3RzL2Nyb3NzLW9yaWdpbi1vYmplY3RzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93
c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1i
cm93c2luZy1jb250ZXh0cy1ieS1uYW1lL2NyZWF0aW5nX2Jyb3dzaW5nX2NvbnRleHRfdGVzdF8w
MS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3It
Y3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZl
YXR1cmVzLW5lZ2F0aXZlLWlubmVyd2lkdGgtaW5uZXJoZWlnaHQuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0
aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1uZWdhdGl2ZS1zY3Jl
ZW54LXNjcmVlbnkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0
L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5h
bWUvb3Blbi1mZWF0dXJlcy1uZWdhdGl2ZS10b3AtbGVmdC5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmct
YnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLW5lZ2F0aXZlLXdpZHRoLWhl
aWdodC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1m
b3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVu
LWZlYXR1cmVzLW5vbi1pbnRlZ2VyLWhlaWdodC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
dGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3Np
bmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLW5vbi1pbnRlZ2VyLWlubmVyaGVpZ2h0
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1j
cmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVh
dHVyZXMtbm9uLWludGVnZXItaW5uZXJ3aWR0aC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
dGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3Np
bmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLW5vbi1pbnRlZ2VyLWxlZnQuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5n
LWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy1u
b24taW50ZWdlci1zY3JlZW54Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93
LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0
cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtbm9uLWludGVnZXItc2NyZWVueS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5h
dmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9vcGVuLWZlYXR1cmVzLW5vbi1pbnRl
Z2VyLXRvcC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3QvYXBp
cy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnktbmFtZS9v
cGVuLWZlYXR1cmVzLW5vbi1pbnRlZ2VyLXdpZHRoLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy90aGUtd2luZG93LW9iamVjdC9hcGlzLWZvci1jcmVhdGluZy1hbmQtbmF2aWdhdGluZy1icm93
c2luZy1jb250ZXh0cy1ieS1uYW1lL29wZW4tZmVhdHVyZXMtdG9rZW5pemF0aW9uLWlubmVyaGVp
Z2h0LWlubmVyd2lkdGguaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2Jq
ZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5
LW5hbWUvb3Blbi1mZWF0dXJlcy10b2tlbml6YXRpb24tbm9vcGVuZXIuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZp
Z2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy10b2tlbml6YXRp
b24tbm9yZWZlcnJlci5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmpl
Y3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4dHMtYnkt
bmFtZS9vcGVuLWZlYXR1cmVzLXRva2VuaXphdGlvbi1zY3JlZW54LXNjcmVlbnkuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFu
ZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy10b2tl
bml6YXRpb24tdG9wLWxlZnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ct
b2JqZWN0L2FwaXMtZm9yLWNyZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRz
LWJ5LW5hbWUvb3Blbi1mZWF0dXJlcy10b2tlbml6YXRpb24td2lkdGgtaGVpZ2h0Lmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctb3Blbi1ub29wZW5l
ci5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93cy9hdXhpbGlhcnktYnJvd3Npbmct
Y29udGV4dHMvb3BlbmVyLXNldHRlci5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2luZG93
cy9jbGVhci13aW5kb3ctbmFtZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvd2lu
ZG93cy9ub3JlZmVycmVyLXdpbmRvdy1uYW1lLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL2NvbXBvc2l0aW5nLzJkLmNvbXBvc2l0ZS51bmNvdmVyZWQuZmlsbC5kZXN0aW5hdGlv
bi1pbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10
by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS4zYXJnLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLjVhcmcu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhl
LWNhbnZhcy8yZC5kcmF3SW1hZ2UuOWFyZy5iYXNpYy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS45YXJn
LmRlc3Rwb3MuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFn
ZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UuOWFyZy5kZXN0c2l6ZS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRy
YXdJbWFnZS45YXJnLnNvdXJjZXBvcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS45YXJnLnNvdXJjZXNp
emUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8t
dGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UuYWxwaGEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9v
ZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UuYW5pbWF0
ZWQucG9zdGVyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2RyYXdpbmctaW1h
Z2VzLXRvLXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLmJyb2tlbi5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFn
ZS5jYW52YXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFn
ZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UuY2xpcC5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS5j
b21wb3NpdGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFn
ZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UuZmxvYXRzb3VyY2UuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3
SW1hZ2UubmVnYXRpdmVkZXN0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2Ry
YXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLm5lZ2F0aXZlZGlyLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52
YXMvMmQuZHJhd0ltYWdlLm5lZ2F0aXZlc291cmNlLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLm5vbmZp
bml0ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10
by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS5ub3dyYXAuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2UubnVs
bC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10
aGUtY2FudmFzLzJkLmRyYXdJbWFnZS5wYXRoLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLnNlbGYuMS5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUt
Y2FudmFzLzJkLmRyYXdJbWFnZS5zZWxmLjIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcy8yZC5kcmF3SW1hZ2Uuc3ZnLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52
YXMvMmQuZHJhd0ltYWdlLnRyYW5zZm9ybS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS53cm9uZ3R5cGUu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZHJhd2luZy1pbWFnZXMtdG8tdGhl
LWNhbnZhcy8yZC5kcmF3SW1hZ2UuemVyb2NhbnZhcy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS56ZXJv
c291cmNlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2RyYXdpbmctaW1hZ2Vz
LXRvLXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLnplcm9zb3VyY2UuaW1hZ2UuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvY2FjaGUtc3RvcmFnZS1yZXBvcnRp
bmctZGVkaWNhdGVkLXdvcmtlci5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2lu
LWVtYmVkZGVyLXBvbGljeS9jYWNoZS1zdG9yYWdlLXJlcG9ydGluZy1kb2N1bWVudC5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9jYWNoZS1zdG9y
YWdlLXJlcG9ydGluZy1zaGFyZWQtd29ya2VyLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9z
cy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L25vbmUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVwb3J0LW9ubHktcmVxdWlyZS1jb3JwLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGlu
Zy1uYXZpZ2F0aW9uLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5L3JlcG9ydGluZy1zdWJyZXNvdXJjZS1jb3JwLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1lbmRwb2ludC5o
dHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXF1
aXJlLWNvcnAuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9s
aWN5L2NvZXAtbmF2aWdhdGUtcG9wdXAuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9y
aWdpbi1vcGVuZXItcG9saWN5L2NvZXAtcmVkaXJlY3QuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3AtbmF2aWdhdGVkLWhpc3RvcnktcG9wdXAu
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2hpc3Rv
cmljYWwvY29lcC1uYXZpZ2F0ZS1wb3B1cC11bnNhZmUtaW5oZXJpdC5odHRwcy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvaGlzdG9yaWNhbC9wb3B1cC1zYW1l
LW9yaWdpbi11bnNhZmUtYWxsb3ctb3V0Z29pbmctd2l0aC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2hpc3RvcmljYWwvcG9w
dXAtc2FtZS1vcmlnaW4tdW5zYWZlLWFsbG93LW91dGdvaW5nLXdpdGgtc2FtZS1vcmlnaW4uaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2hpc3Rvcmlj
YWwvcG9wdXAtc2FtZS1vcmlnaW4tdW5zYWZlLWFsbG93LW91dGdvaW5nLXdpdGgtc2FtZS1zaXRl
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9oaXN0
b3JpY2FsL3BvcHVwLXNhbWUtc2l0ZS11bnNhZmUtYWxsb3ctb3V0Z29pbmctd2l0aC1jcm9zcy1v
cmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5
L2hpc3RvcmljYWwvcG9wdXAtc2FtZS1zaXRlLXVuc2FmZS1hbGxvdy1vdXRnb2luZy13aXRoLXNh
bWUtb3JpZ2luLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBv
bGljeS9oaXN0b3JpY2FsL3BvcHVwLXNhbWUtc2l0ZS11bnNhZmUtYWxsb3ctb3V0Z29pbmctd2l0
aC1zYW1lLXNpdGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXIt
cG9saWN5L2hpc3RvcmljYWwvcG9wdXAtc2FtZS1zaXRlLXdpdGgtY3Jvc3Mtb3JpZ2luLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9oaXN0b3JpY2Fs
L3BvcHVwLXNhbWUtc2l0ZS13aXRoLXNhbWUtb3JpZ2luLmh0dHBzLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9oaXN0b3JpY2FsL3BvcHVwLXNhbWUtc2l0ZS13
aXRoLXNhbWUtc2l0ZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5l
ci1wb2xpY3kvaWZyYW1lLXBvcHVwLXNhbWUtb3JpZ2luLWFsbG93LXBvcHVwcy10by1zYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cHMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1v
cGVuZXItcG9saWN5L2lmcmFtZS1wb3B1cC1zYW1lLW9yaWdpbi1hbGxvdy1wb3B1cHMtdG8tc2Ft
ZS1vcmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9s
aWN5L2lmcmFtZS1wb3B1cC1zYW1lLW9yaWdpbi1hbGxvdy1wb3B1cHMtdG8tdW5zYWZlLW5vbmUu
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2lmcmFt
ZS1wb3B1cC1zYW1lLW9yaWdpbi10by1zYW1lLW9yaWdpbi5odHRwcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvaWZyYW1lLXBvcHVwLXNhbWUtb3JpZ2luLXRv
LXVuc2FmZS1ub25lLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeS9pZnJhbWUtcG9wdXAtdW5zYWZlLW5vbmUtdG8tc2FtZS1vcmlnaW4uaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2lmcmFtZS1wb3B1cC11
bnNhZmUtbm9uZS10by11bnNhZmUtbm9uZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLW9wZW5lci1wb2xpY3kvbm8taHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9y
aWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLXJlZGlyZWN0LWNhY2hlLmh0dHBzLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1zYW1lLW9yaWdpbi1hbGxv
dy1wb3B1cHMtd2l0aC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLXNhbWUtb3JpZ2luLWFsbG93LXBvcHVwcy13aXRo
LXNhbWUtb3JpZ2luLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeS9wb3B1cC1zYW1lLW9yaWdpbi1hbGxvdy1wb3B1cHMtd2l0aC1zYW1lLXNpdGUuaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLXNh
bWUtb3JpZ2luLXdpdGgtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9z
cy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1zYW1lLW9yaWdpbi13aXRoLXNhbWUtb3JpZ2lu
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1
cC1zYW1lLW9yaWdpbi13aXRoLXNhbWUtc2l0ZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtdW5zYWZlLW5vbmUtd2l0aC1jcm9zcy1vcmln
aW4uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3Bv
cHVwLXVuc2FmZS1ub25lLXdpdGgtc2FtZS1vcmlnaW4uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLXVuc2FmZS1ub25lLXdpdGgtc2FtZS1z
aXRlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9w
b3B1cC11bnNwZWNpZmllZC13aXRoLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtdW5zcGVjaWZpZWQtd2l0aC1zYW1l
LW9yaWdpbi5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xp
Y3kvcG9wdXAtdW5zcGVjaWZpZWQtd2l0aC1zYW1lLXNpdGUuaHR0cHMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLXdpdGgtc3RydWN0dXJlZC1oZWFk
ZXIuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3Jl
cG9ydGluZy9hY2Nlc3MtcmVwb3J0aW5nL29wZW5lZS1hY2Nlc3NlZF9vcGVuZWUtY29vcC1yby5o
dHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcmVwb3J0
aW5nL2FjY2Vzcy1yZXBvcnRpbmcvb3BlbmVlLWFjY2Vzc2VkX29wZW5lZS1jb29wLmh0dHBzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9yZXBvcnRpbmcvYWNj
ZXNzLXJlcG9ydGluZy9vcGVuZWUtYWNjZXNzZWRfb3BlbmVyLWNvb3Atcm8uaHR0cHMuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3JlcG9ydGluZy9hY2Nlc3Mt
cmVwb3J0aW5nL29wZW5lZS1hY2Nlc3NlZF9vcGVuZXItY29vcC5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nL2FjY2Vzcy1yZXBvcnRp
bmcvb3BlbmVyLWFjY2Vzc2VkX29wZW5lZS1jb29wLXJvLmh0dHBzLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9yZXBvcnRpbmcvYWNjZXNzLXJlcG9ydGluZy9v
cGVuZXItYWNjZXNzZWRfb3BlbmVlLWNvb3AuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L3JlcG9ydGluZy9hY2Nlc3MtcmVwb3J0aW5nL29wZW5lci1h
Y2Nlc3NlZF9vcGVuZXItY29vcC1yby5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3Jp
Z2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nL2FjY2Vzcy1yZXBvcnRpbmcvb3BlbmVyLWFjY2Vz
c2VkX29wZW5lci1jb29wLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3Bl
bmVyLXBvbGljeS9yZXBvcnRpbmcvYWNjZXNzLXJlcG9ydGluZy9wcm9wZXJ0eS5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nL25hdmln
YXRpb24tcmVwb3J0aW5nL3JlcG9ydC1vbmx5LWZvdXItcmVwb3J0cy5odHRwcy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nL25hdmlnYXRpb24t
cmVwb3J0aW5nL3JlcG9ydC1vbmx5LWZyb20tdW5zYWZlLW5vbmUuaHR0cHMuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3JlcG9ydGluZy9uYXZpZ2F0aW9uLXJl
cG9ydGluZy9yZXBvcnQtb25seS1zYW1lLW9yaWdpbi1yZXBvcnQtdG8uaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3JlcG9ydGluZy9uYXZpZ2F0aW9u
LXJlcG9ydGluZy9yZXBvcnQtb25seS1zYW1lLW9yaWdpbi13aXRoLWNvZXAtcmVwb3J0LW9ubHku
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3JlcG9y
dGluZy9uYXZpZ2F0aW9uLXJlcG9ydGluZy9yZXBvcnQtb25seS1zYW1lLW9yaWdpbi13aXRoLWNv
ZXAuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3Jl
cG9ydGluZy9uYXZpZ2F0aW9uLXJlcG9ydGluZy9yZXBvcnQtb25seS1zYW1lLW9yaWdpbi5odHRw
cy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5n
L25hdmlnYXRpb24tcmVwb3J0aW5nL3JlcG9ydGluZy1wb3B1cC1zYW1lLW9yaWdpbi1hbGxvdy1w
b3B1cHMtcmVwb3J0LXRvLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3Bl
bmVyLXBvbGljeS9yZXBvcnRpbmcvbmF2aWdhdGlvbi1yZXBvcnRpbmcvcmVwb3J0aW5nLXBvcHVw
LXNhbWUtb3JpZ2luLWNvZXAtcmVwb3J0LXRvLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9z
cy1vcmlnaW4tb3BlbmVyLXBvbGljeS9yZXBvcnRpbmcvbmF2aWdhdGlvbi1yZXBvcnRpbmcvcmVw
b3J0aW5nLXBvcHVwLXNhbWUtb3JpZ2luLXJlcG9ydC10by5odHRwcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nL25hdmlnYXRpb24tcmVwb3J0
aW5nL3JlcG9ydGluZy1wb3B1cC1zYW1lLW9yaWdpbi5odHRwcy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcmVwb3J0aW5nL25hdmlnYXRpb24tcmVwb3J0aW5n
L3JlcG9ydGluZy1wb3B1cC11bmFmZS1ub25lLXJlcG9ydC10by5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvZG9tL2RvY3VtZW50cy9yZXNvdXJjZS1tZXRhZGF0YS1tYW5hZ2VtZW50L2RvY3VtZW50
LWxhc3RNb2RpZmllZC0wMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2lkbGhhcm5lc3MuaHR0cHMu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9yZWZsZWN0aW9uLWVtYmVkZGVkLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9kb20vcmVmbGVjdGlvbi1mb3Jtcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL3JlZmxlY3Rp
b24tZ3JvdXBpbmcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9yZWZsZWN0aW9uLW1ldGFkYXRhLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9kb20vcmVmbGVjdGlvbi1taXNjLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9k
b20vcmVmbGVjdGlvbi1vYnNvbGV0ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL3JlZmxlY3Rpb24t
c2VjdGlvbnMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9yZWZsZWN0aW9uLXRhYnVsYXIuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2RvbS9yZWZsZWN0aW9uLXRleHQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJh
c3RydWN0dXJlL3VybHMvcmVzb2x2aW5nLXVybHMvcXVlcnktZW5jb2RpbmcvdXRmLTE2bGUuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3VybHMvcmVzb2x2aW5nLXVybHMvcXVlcnkt
ZW5jb2RpbmcvdXRmLTguaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3VybHMvcmVz
b2x2aW5nLXVybHMvcXVlcnktZW5jb2Rpbmcvd2luZG93cy0xMjUxLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9pbmZyYXN0cnVjdHVyZS91cmxzL3Jlc29sdmluZy11cmxzL3F1ZXJ5LWVuY29kaW5nL3dpbmRv
d3MtMTI1Mi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW50ZXJhY3Rpb24vZm9jdXMvZm9jdXMtMDEuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2ludGVyYWN0aW9uL2ZvY3VzL2ZvY3VzLTAyLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9pbnRlcmFjdGlvbi9mb2N1cy9zZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5kLXRo
ZS10YWJpbmRleC1hdHRyaWJ1dGUvZm9jdXMtdGFiaW5kZXgtbmVnYXRpdmUuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2ludGVyYWN0aW9uL2ZvY3VzL3NlcXVlbnRpYWwtZm9jdXMtbmF2aWdhdGlvbi1hbmQt
dGhlLXRhYmluZGV4LWF0dHJpYnV0ZS9mb2N1cy10YWJpbmRleC1vcmRlci5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvaW50ZXJhY3Rpb24vZm9jdXMvc2VxdWVudGlhbC1mb2N1cy1uYXZpZ2F0aW9uLWFuZC10
aGUtdGFiaW5kZXgtYXR0cmlidXRlL2ZvY3VzLXRhYmluZGV4LXBvc2l0aXZlLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9pbnRlcmFjdGlvbi9mb2N1cy9zZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5k
LXRoZS10YWJpbmRleC1hdHRyaWJ1dGUvZm9jdXMtdGFiaW5kZXgtemVyby5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvcmVuZGVyaW5nL3BpeGVsLWxlbmd0aC1hdHRyaWJ1dGVzLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvc3ZnLWVtYmVkZGVkLXNpemluZy9zdmctaW4t
aWZyYW1lLWF1dG8uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50
cy9zdmctZW1iZWRkZWQtc2l6aW5nL3N2Zy1pbi1pZnJhbWUtZml4ZWQuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9zdmctZW1iZWRkZWQtc2l6aW5nL3N2Zy1p
bi1pZnJhbWUtcGVyY2VudGFnZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2Vk
LWVsZW1lbnRzL3N2Zy1lbWJlZGRlZC1zaXppbmcvc3ZnLWluLWltZy1hdXRvLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvc3ZnLWVtYmVkZGVkLXNpemluZy9z
dmctaW4taW1nLWZpeGVkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxl
bWVudHMvc3ZnLWVtYmVkZGVkLXNpemluZy9zdmctaW4taW1nLXBlcmNlbnRhZ2UuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9zdmctZW1iZWRkZWQtc2l6aW5n
L3N2Zy1pbi1vYmplY3QtYXV0by5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2Vk
LWVsZW1lbnRzL3N2Zy1lbWJlZGRlZC1zaXppbmcvc3ZnLWluLW9iamVjdC1maXhlZC5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVsZW1lbnRzL3N2Zy1lbWJlZGRlZC1zaXpp
bmcvc3ZnLWluLW9iamVjdC1wZXJjZW50YWdlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZG9jdW1lbnQtbWV0YWRhdGEvdGhlLW1ldGEtZWxlbWVudC9wcmFnbWEtZGlyZWN0aXZlcy9hdHRy
LW1ldGEtaHR0cC1lcXVpdi1yZWZyZXNoL25vdC1pbi1zaGFkb3ctdHJlZS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1tZXRhLWVsZW1lbnQvcHJhZ21h
LWRpcmVjdGl2ZXMvYXR0ci1tZXRhLWh0dHAtZXF1aXYtcmVmcmVzaC9wYXJzaW5nLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9tZWRp
YV9mcmFnbWVudF9zZWVrLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9wYXVzZS1yZW1v
dmUtZnJvbS1kb2N1bWVudC1uZXR3b3JrU3RhdGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3NlZWtpbmcvc2Vlay10by1jdXJyZW50
VGltZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvdHJhY2svdHJhY2stZWxlbWVudC90cmFjay1jdWVzLWN1ZWNoYW5nZS1keW5hbWlj
YWxseS1jcmVhdGVkLXRyYWNrLWVsZW1lbnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3RyYWNrLWVsZW1lbnQvdHJhY2st
Y3Vlcy1jdWVjaGFuZ2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3RyYWNrLWVsZW1lbnQvdHJhY2stY3Vlcy1lbnRlci1l
eGl0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy90cmFjay90cmFjay1lbGVtZW50L3RyYWNrLXdlYnZ0dC1jbGFzcy1tYXJrdXAuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L3RyYWNrL3RyYWNrLWVsZW1lbnQvdHJhY2std2VidnR0LW1hcmt1cC5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFtZS1lbGVtZW50L2lmcmFtZV9z
YW5kYm94X25hdmlnYXRpb25fZG93bmxvYWRfYWxsb3dfZG93bmxvYWRzLnN1Yi50ZW50YXRpdmUu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pZnJhbWUt
ZWxlbWVudC9pZnJhbWVfc2FuZGJveF9uYXZpZ2F0aW9uX2Rvd25sb2FkX2FsbG93X2Rvd25sb2Fk
c193aXRob3V0X3VzZXJfYWN0aXZhdGlvbi5zdWIudGVudGF0aXZlLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaWZyYW1lLWVsZW1lbnQvc2FuZGJveF8w
MDIuaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlmcmFt
ZS1lbGVtZW50L3NhbmRib3hfMDA1Lmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L3RoZS1pbWctZWxlbWVudC9kZWNvZGUvaW1hZ2UtZGVjb2RlLWlmcmFtZS5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50
L2RlY29kZS9pbWFnZS1kZWNvZGUtcGF0aC1jaGFuZ2VzLXN2Zy50ZW50YXRpdmUuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1pbWctZWxlbWVudC9kZWNv
ZGUvaW1hZ2UtZGVjb2RlLXBhdGgtY2hhbmdlcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L2RlY29kZS9pbWFnZS1kZWNvZGUtcGlj
dHVyZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWlt
Zy1lbGVtZW50L2RlY29kZS9pbWFnZS1kZWNvZGUtc3ZnLnRlbnRhdGl2ZS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L2RlY29kZS9p
bWFnZS1kZWNvZGUtd2l0aC1xdWljay1hdHRhY2gtc3ZnLnRlbnRhdGl2ZS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWltZy1lbGVtZW50L2RlY29kZS9p
bWFnZS1kZWNvZGUtd2l0aC1xdWljay1hdHRhY2guaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L3RoZS1pbWctZWxlbWVudC9kZWNvZGUvaW1hZ2UtZGVjb2RlLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaW1nLWVsZW1l
bnQvcmVsZXZhbnQtbXV0YXRpb25zLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC90aGUtaW1nLWVsZW1lbnQvc2l6ZXMvcGFyc2UtYS1zaXplcy1hdHRyaWJ1dGUu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1vYmplY3Qt
ZWxlbWVudC9vYmplY3QtZXZlbnRzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMv
Zm9ybS1zdWJtaXNzaW9uLTAvc3VibWl0LWVudGl0eS1ib2R5Lmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdC1ldmVudC5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24uaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9saW5rcy9saW5rcy1jcmVhdGVkLWJ5LWEtYW5kLWFy
ZWEtZWxlbWVudHMvdGFyZ2V0X2JsYW5rX2ltcGxpY2l0X25vb3BlbmVyLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3MtY3JlYXRlZC1ieS1hLWFuZC1hcmVhLWVsZW1lbnRz
L3RhcmdldF9ibGFua19pbXBsaWNpdF9ub29wZW5lcl9iYXNlLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2FzeW5jXzAwMy5odG0iOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2FzeW5j
XzAwNC5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L2FzeW5jXzAwNS5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L2FzeW5jXzAwNi5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2FzeW5jXzAwNy5odG0iOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2FzeW5jXzAxMC5odG0i
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2V4
ZWN1dGlvbi10aW1pbmcvMDE1YS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nLzA1MC5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9leGVjdXRpb24t
dGltaW5nLzA3OC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nLzA4Mi5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9leGVjdXRpb24tdGltaW5nLzEx
MS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9leGVjdXRpb24tdGltaW5nLzExMi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXhlY29yZGVyLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9p
bmxpbmUtYXN5bmMtZXhlY29yZGVyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9hZnRlci1w
cmVwYXJlLWNyZWF0ZUhUTUxEb2N1bWVudC1mZXRjaC1lcnJvci1leHRlcm5hbC1jbGFzc2ljLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9hZnRlci1wcmVwYXJlLWNyZWF0ZUhUTUxEb2N1bWVu
dC1mZXRjaC1lcnJvci1leHRlcm5hbC1tb2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRz
L2FmdGVyLXByZXBhcmUtY3JlYXRlSFRNTERvY3VtZW50LXBhcnNlLWVycm9yLWV4dGVybmFsLWNs
YXNzaWMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2FmdGVyLXByZXBhcmUtY3JlYXRlSFRN
TERvY3VtZW50LXBhcnNlLWVycm9yLWV4dGVybmFsLW1vZHVsZS5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1k
b2N1bWVudHMvYWZ0ZXItcHJlcGFyZS1jcmVhdGVIVE1MRG9jdW1lbnQtc3VjY2Vzcy1leHRlcm5h
bC1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9hZnRlci1wcmVwYXJlLWNyZWF0
ZUhUTUxEb2N1bWVudC1zdWNjZXNzLWV4dGVybmFsLW1vZHVsZS5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1k
b2N1bWVudHMvYWZ0ZXItcHJlcGFyZS1pZnJhbWUtZmV0Y2gtZXJyb3ItZXh0ZXJuYWwtY2xhc3Np
Yy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvYWZ0ZXItcHJlcGFyZS1pZnJhbWUtZmV0Y2gt
ZXJyb3ItZXh0ZXJuYWwtbW9kdWxlLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9hZnRlci1w
cmVwYXJlLWlmcmFtZS1wYXJzZS1lcnJvci1leHRlcm5hbC1jbGFzc2ljLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3
ZWVuLWRvY3VtZW50cy9hZnRlci1wcmVwYXJlLWlmcmFtZS1wYXJzZS1lcnJvci1leHRlcm5hbC1t
b2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2FmdGVyLXByZXBhcmUtaWZyYW1lLXBh
cnNlLWVycm9yLWlubGluZS1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9hZnRl
ci1wcmVwYXJlLWlmcmFtZS1zdWNjZXNzLWV4dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdl
ZW4tZG9jdW1lbnRzL2FmdGVyLXByZXBhcmUtaWZyYW1lLXN1Y2Nlc3MtZXh0ZXJuYWwtbW9kdWxl
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9hZnRlci1wcmVwYXJlLWlmcmFtZS1zdWNjZXNz
LWlubGluZS1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFy
ZS1jcmVhdGVIVE1MRG9jdW1lbnQtZmV0Y2gtZXJyb3ItZXh0ZXJuYWwtY2xhc3NpYy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3Zp
bmctYmV0d2Vlbi1kb2N1bWVudHMvYmVmb3JlLXByZXBhcmUtY3JlYXRlSFRNTERvY3VtZW50LWZl
dGNoLWVycm9yLWV4dGVybmFsLW1vZHVsZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvYmVm
b3JlLXByZXBhcmUtY3JlYXRlSFRNTERvY3VtZW50LXBhcnNlLWVycm9yLWV4dGVybmFsLWNsYXNz
aWMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVwYXJlLWNyZWF0ZUhUTUxE
b2N1bWVudC1wYXJzZS1lcnJvci1leHRlcm5hbC1tb2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9j
dW1lbnRzL2JlZm9yZS1wcmVwYXJlLWNyZWF0ZUhUTUxEb2N1bWVudC1wYXJzZS1lcnJvci1pbmxp
bmUtY2xhc3NpYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvYmVmb3JlLXByZXBhcmUtY3Jl
YXRlSFRNTERvY3VtZW50LXBhcnNlLWVycm9yLWlubGluZS1tb2R1bGUuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdl
ZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVwYXJlLWNyZWF0ZUhUTUxEb2N1bWVudC1zdWNjZXNzLWVt
cHR5LXNyYy1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFy
ZS1jcmVhdGVIVE1MRG9jdW1lbnQtc3VjY2Vzcy1lbXB0eS1zcmMtbW9kdWxlLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1i
ZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1jcmVhdGVIVE1MRG9jdW1lbnQtc3VjY2Vz
cy1leHRlcm5hbC1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJl
cGFyZS1jcmVhdGVIVE1MRG9jdW1lbnQtc3VjY2Vzcy1leHRlcm5hbC1tb2R1bGUuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5n
LWJldHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVwYXJlLWNyZWF0ZUhUTUxEb2N1bWVudC1zdWNj
ZXNzLWlubGluZS1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJl
cGFyZS1jcmVhdGVIVE1MRG9jdW1lbnQtc3VjY2Vzcy1pbmxpbmUtbW9kdWxlLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1i
ZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1pZnJhbWUtZmV0Y2gtZXJyb3ItZXh0ZXJu
YWwtY2xhc3NpYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvYmVmb3JlLXByZXBhcmUtaWZy
YW1lLWZldGNoLWVycm9yLWV4dGVybmFsLW1vZHVsZS5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVu
dHMvYmVmb3JlLXByZXBhcmUtaWZyYW1lLXBhcnNlLWVycm9yLWV4dGVybmFsLWNsYXNzaWMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVwYXJlLWlmcmFtZS1wYXJzZS1lcnJv
ci1leHRlcm5hbC1tb2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVw
YXJlLWlmcmFtZS1wYXJzZS1lcnJvci1pbmxpbmUtY2xhc3NpYy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1k
b2N1bWVudHMvYmVmb3JlLXByZXBhcmUtaWZyYW1lLXBhcnNlLWVycm9yLWlubGluZS1tb2R1bGUu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVwYXJlLWlmcmFtZS1zdWNjZXNz
LWVtcHR5LXNyYy1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJl
cGFyZS1pZnJhbWUtc3VjY2Vzcy1lbXB0eS1zcmMtbW9kdWxlLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRv
Y3VtZW50cy9iZWZvcmUtcHJlcGFyZS1pZnJhbWUtc3VjY2Vzcy1leHRlcm5hbC1jbGFzc2ljLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1pZnJhbWUtc3VjY2Vzcy1l
eHRlcm5hbC1tb2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL2JlZm9yZS1wcmVwYXJl
LWlmcmFtZS1zdWNjZXNzLWlubGluZS1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50
cy9iZWZvcmUtcHJlcGFyZS1pZnJhbWUtc3VjY2Vzcy1pbmxpbmUtbW9kdWxlLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1i
ZXR3ZWVuLWRvY3VtZW50cy9tb3ZlLWJhY2stY3JlYXRlSFRNTERvY3VtZW50LWZldGNoLWVycm9y
LWV4dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL21vdmUtYmFjay1j
cmVhdGVIVE1MRG9jdW1lbnQtZmV0Y2gtZXJyb3ItZXh0ZXJuYWwtbW9kdWxlLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1i
ZXR3ZWVuLWRvY3VtZW50cy9tb3ZlLWJhY2stY3JlYXRlSFRNTERvY3VtZW50LXBhcnNlLWVycm9y
LWV4dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL21vdmUtYmFjay1j
cmVhdGVIVE1MRG9jdW1lbnQtcGFyc2UtZXJyb3ItZXh0ZXJuYWwtbW9kdWxlLmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1i
ZXR3ZWVuLWRvY3VtZW50cy9tb3ZlLWJhY2stY3JlYXRlSFRNTERvY3VtZW50LXN1Y2Nlc3MtZXh0
ZXJuYWwtY2xhc3NpYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvbW92ZS1iYWNrLWNyZWF0
ZUhUTUxEb2N1bWVudC1zdWNjZXNzLWV4dGVybmFsLW1vZHVsZS5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1k
b2N1bWVudHMvbW92ZS1iYWNrLWlmcmFtZS1mZXRjaC1lcnJvci1leHRlcm5hbC1jbGFzc2ljLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9tb3ZlLWJhY2staWZyYW1lLWZldGNoLWVycm9yLWV4
dGVybmFsLW1vZHVsZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvbW92ZS1iYWNrLWlmcmFt
ZS1wYXJzZS1lcnJvci1leHRlcm5hbC1jbGFzc2ljLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50
cy9tb3ZlLWJhY2staWZyYW1lLXBhcnNlLWVycm9yLWV4dGVybmFsLW1vZHVsZS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb3Zpbmct
YmV0d2Vlbi1kb2N1bWVudHMvbW92ZS1iYWNrLWlmcmFtZS1wYXJzZS1lcnJvci1pbmxpbmUtY2xh
c3NpYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb3ZpbmctYmV0d2Vlbi1kb2N1bWVudHMvbW92ZS1iYWNrLWlmcmFtZS1zdWNjZXNz
LWV4dGVybmFsLWNsYXNzaWMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRzL21vdmUtYmFjay1p
ZnJhbWUtc3VjY2Vzcy1leHRlcm5hbC1tb2R1bGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW92aW5nLWJldHdlZW4tZG9jdW1lbnRz
L21vdmUtYmFjay1pZnJhbWUtc3VjY2Vzcy1pbmxpbmUtY2xhc3NpYy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9zY3JpcHQtbm90LWV4
ZWN1dGVkLWFmdGVyLXNodXRkb3duLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxh
ci1kYXRhL3Byb2Nlc3NpbmctbW9kZWwtMS9zcGFuLWxpbWl0cy5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfYWRvcHRpb24wMS5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3lu
dGF4L3BhcnNpbmcvaHRtbDVsaWJfYWRvcHRpb24wMi5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4
L3BhcnNpbmcvaHRtbDVsaWJfYmxvY2tzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2lu
Zy9odG1sNWxpYl9jb21tZW50czAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9o
dG1sNWxpYl9kb2N0eXBlMDEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1
bGliX2RvbWpzLXVuc2FmZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVs
aWJfZW50aXRpZXMwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJf
ZW50aXRpZXMwMi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfaHRt
bDV0ZXN0LWNvbS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfaW5i
b2R5MDEuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX2lubmVySFRN
TF9hZG9wdGlvbjAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl9p
bm5lckhUTUxfZm9yZWlnbi1mcmFnbWVudC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNp
bmcvaHRtbDVsaWJfaW5uZXJIVE1MX21hdGguaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJz
aW5nL2h0bWw1bGliX2lubmVySFRNTF90ZXN0czQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9w
YXJzaW5nL2h0bWw1bGliX2lubmVySFRNTF90ZXN0czYuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRh
eC9wYXJzaW5nL2h0bWw1bGliX2lubmVySFRNTF90ZXN0czcuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5
bnRheC9wYXJzaW5nL2h0bWw1bGliX2lubmVySFRNTF90ZXN0c19pbm5lckhUTUxfMS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfaW5uZXJIVE1MX3dlYmtpdDAyLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl9pc2luZGV4Lmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl9tYWluLWVsZW1lbnQuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX21lbnVpdGVtLWVsZW1lbnQuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX25hbWVzcGFjZS1zZW5zaXRpdml0
eS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfcGVuZGluZy1zcGVj
LWNoYW5nZXMtcGxhaW4tdGV4dC11bnNhZmUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJz
aW5nL2h0bWw1bGliX3BlbmRpbmctc3BlYy1jaGFuZ2VzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50
YXgvcGFyc2luZy9odG1sNWxpYl9wbGFpbi10ZXh0LXVuc2FmZS5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfcnVieS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3Bh
cnNpbmcvaHRtbDVsaWJfc2NyaXB0ZGF0YTAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFy
c2luZy9odG1sNWxpYl9zY3JpcHRlZF9hZG9wdGlvbjAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50
YXgvcGFyc2luZy9odG1sNWxpYl9zY3JpcHRlZF9hcmsuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRh
eC9wYXJzaW5nL2h0bWw1bGliX3NjcmlwdGVkX3dlYmtpdDAxLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
eW50YXgvcGFyc2luZy9odG1sNWxpYl90YWJsZXMwMS5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4
L3BhcnNpbmcvaHRtbDVsaWJfdGVtcGxhdGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJz
aW5nL2h0bWw1bGliX3Rlc3RzMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRt
bDVsaWJfdGVzdHMxMC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJf
dGVzdHMxMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMx
Mi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMxNC5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMxNS5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMxNi5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMxNy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3lu
dGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHMxOC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3Bh
cnNpbmcvaHRtbDVsaWJfdGVzdHMxOS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcv
aHRtbDVsaWJfdGVzdHMyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxp
Yl90ZXN0czIwLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0
czIxLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0czIyLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0czIzLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0czI0Lmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0czI1Lmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
eW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0czI2Lmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgv
cGFyc2luZy9odG1sNWxpYl90ZXN0czMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5n
L2h0bWw1bGliX3Rlc3RzNS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVs
aWJfdGVzdHM2Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90ZXN0
czcuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5bnRheC9wYXJzaW5nL2h0bWw1bGliX3Rlc3RzOC5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfdGVzdHM5Lmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zeW50YXgvcGFyc2luZy9odG1sNWxpYl90cmlja3kwMS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc3ludGF4L3BhcnNpbmcvaHRtbDVsaWJfd2Via2l0MDEuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3N5
bnRheC9wYXJzaW5nL2h0bWw1bGliX3dlYmtpdDAyLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zeW50YXgv
cGFyc2luZy90ZW1wbGF0ZS9jcmVhdGluZy1hbi1lbGVtZW50LWZvci10aGUtdG9rZW4vdGVtcGxh
dGUtb3duZXItZG9jdW1lbnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3RoZS14aHRtbC1zeW50YXgvcGFy
c2luZy14aHRtbC1kb2N1bWVudHMveGh0bWwtbWF0aG1sLWR0ZC1lbnRpdHktMS5odG0iOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC90aGUteGh0bWwtc3ludGF4L3BhcnNpbmcteGh0bWwtZG9jdW1lbnRzL3hodG1sLW1h
dGhtbC1kdGQtZW50aXR5LTEwLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3RoZS14aHRtbC1zeW50YXgvcGFy
c2luZy14aHRtbC1kb2N1bWVudHMveGh0bWwtbWF0aG1sLWR0ZC1lbnRpdHktMi5odG0iOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC90aGUteGh0bWwtc3ludGF4L3BhcnNpbmcteGh0bWwtZG9jdW1lbnRzL3hodG1sLW1h
dGhtbC1kdGQtZW50aXR5LTMuaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvdGhlLXhodG1sLXN5bnRheC9wYXJz
aW5nLXhodG1sLWRvY3VtZW50cy94aHRtbC1tYXRobWwtZHRkLWVudGl0eS00Lmh0bSI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3RoZS14aHRtbC1zeW50YXgvcGFyc2luZy14aHRtbC1kb2N1bWVudHMveGh0bWwtbWF0
aG1sLWR0ZC1lbnRpdHktNS5odG0iOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC90aGUteGh0bWwtc3ludGF4L3BhcnNp
bmcteGh0bWwtZG9jdW1lbnRzL3hodG1sLW1hdGhtbC1kdGQtZW50aXR5LTYuaHRtIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvdGhlLXhodG1sLXN5bnRheC9wYXJzaW5nLXhodG1sLWRvY3VtZW50cy94aHRtbC1tYXRo
bWwtZHRkLWVudGl0eS03Lmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3RoZS14aHRtbC1zeW50YXgvcGFyc2lu
Zy14aHRtbC1kb2N1bWVudHMveGh0bWwtbWF0aG1sLWR0ZC1lbnRpdHktOC5odG0iOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC90aGUteGh0bWwtc3ludGF4L3BhcnNpbmcteGh0bWwtZG9jdW1lbnRzL3hodG1sLW1hdGht
bC1kdGQtZW50aXR5LTkuaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvdG9vbHMvaHRtbDVsaWJfdGVzdC54bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC90b29scy9odG1sNWxpYl90ZXN0X2ZyYWdtZW50LnhtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bWFnZS1kZWNvZGVzL2ltYWdlLWRlY29kZS1pZnJhbWUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZS1kZWNv
ZGVzL2ltYWdlLWRlY29kZS1wYXRoLWNoYW5nZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZS1kZWNvZGVz
L2ltYWdlLWRlY29kZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29w
ZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LTAwMS5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVz
ZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LWxhcmdlb3AtMDAx
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvb3BlcmF0b3JzL29wZXJh
dG9yLWRpY3Rpb25hcnktbGFyZ2VvcC0wMDIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0
aW9uLW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0b3ItZGljdGlvbmFyeS1sYXJnZW9wLTAwMy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1k
aWN0aW9uYXJ5LWxhcmdlb3AtMDA0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1t
YXJrdXAvb3BlcmF0b3JzL29wZXJhdG9yLWRpY3Rpb25hcnktbGFyZ2VvcC0wMDUuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0b3ItZGljdGlv
bmFyeS1sYXJnZW9wLTAwNi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3Vw
L29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LW1vdmFibGVsaW1pdHMtMDAxLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvb3BlcmF0b3JzL29wZXJhdG9yLWRpY3Rp
b25hcnktbW92YWJsZWxpbWl0cy0wMDIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9u
LW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0b3ItZGljdGlvbmFyeS1tb3ZhYmxlbGltaXRzLTAwMy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRv
ci1kaWN0aW9uYXJ5LW1vdmFibGVsaW1pdHMtMDA0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNl
bnRhdGlvbi1tYXJrdXAvb3BlcmF0b3JzL29wZXJhdG9yLWRpY3Rpb25hcnktbW92YWJsZWxpbWl0
cy0wMDUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9vcGVyYXRvcnMv
b3BlcmF0b3ItZGljdGlvbmFyeS1tb3ZhYmxlbGltaXRzLTAwNi5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGht
bC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXNwYWNp
bmctMDAxLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvb3BlcmF0b3Jz
L29wZXJhdG9yLWRpY3Rpb25hcnktc3BhY2luZy0wMDIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcHJl
c2VudGF0aW9uLW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0b3ItZGljdGlvbmFyeS1zcGFjaW5nLTAw
My5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVy
YXRvci1kaWN0aW9uYXJ5LXNwYWNpbmctMDA0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNlbnRh
dGlvbi1tYXJrdXAvb3BlcmF0b3JzL29wZXJhdG9yLWRpY3Rpb25hcnktc3BhY2luZy0wMDUuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0b3It
ZGljdGlvbmFyeS1zcGFjaW5nLTAwNi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24t
bWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXN0cmV0Y2h5LTAwMS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0
aW9uYXJ5LXN0cmV0Y2h5LTAwMi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFy
a3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXN0cmV0Y2h5LTAwMy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9u
YXJ5LXN0cmV0Y2h5LTAwNC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3Vw
L29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXN0cmV0Y2h5LTAwNS5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5
LXN0cmV0Y2h5LTAwNi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29w
ZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXN5bW1ldHJpYy0wMDEuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
YXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9vcGVyYXRvcnMvb3BlcmF0b3ItZGljdGlvbmFyeS1z
eW1tZXRyaWMtMDAyLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvb3Bl
cmF0b3JzL29wZXJhdG9yLWRpY3Rpb25hcnktc3ltbWV0cmljLTAwMy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21h
dGhtbC9wcmVzZW50YXRpb24tbWFya3VwL29wZXJhdG9ycy9vcGVyYXRvci1kaWN0aW9uYXJ5LXN5
bW1ldHJpYy0wMDQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9vcGVy
YXRvcnMvb3BlcmF0b3ItZGljdGlvbmFyeS1zeW1tZXRyaWMtMDA1Lmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0
aG1sL3ByZXNlbnRhdGlvbi1tYXJrdXAvb3BlcmF0b3JzL29wZXJhdG9yLWRpY3Rpb25hcnktc3lt
bWV0cmljLTAwNi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9yZWxhdGlvbnMvaHRtbDUtdHJlZS90YWJp
bmRleC0wMDIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvU291cmNlQnVmZmVyLWFib3J0LXJl
YWR5U3RhdGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1
ZmZlci5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hcHBlbmRidWZmZXIt
cXVvdGEtZXhjZWVkZWQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2hh
bmdldHlwZS1wbGF5LWltcGxpY2l0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLWNoYW5nZXR5cGUtcGxheS1uZWdhdGl2ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jaGFuZ2V0eXBlLXBsYXktd2l0aG91dC1jb2RlY3MtcGFyYW1ldGVyLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNoYW5nZXR5cGUtcGxheS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hLWJpdHJh
dGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1t
cDQtYXYtYXVkaW8tYml0cmF0ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlLW1wNC1hdi1mcmFtZXNpemUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtdmlkZW8tYml0cmF0ZS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1l
cmF0ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LW1wNC12LWZyYW1lc2l6ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1j
b25maWctY2hhbmdlLXdlYm0tYXYtYXVkaW8tYml0cmF0ZS5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtdmlkZW8tYml0cmF0ZS5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1m
cmFtZXJhdGUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29ycmVjdC1m
cmFtZXMtYWZ0ZXItcmVhcHBlbmQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtY29ycmVjdC1mcmFtZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
Z2V0dmlkZW9wbGF5YmFja3F1YWxpdHkuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtcGxheS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1yZWR1bmRh
bnQtc2Vlay5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1yZXBsYXkuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL01lZGlhUmVjb3JkZXItcGVlcmNvbm5lY3Rp
b24uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRy
YWNrLWdldFNldHRpbmdzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93
cGF5bWVudHJlcXVlc3Qvc2V0dGluZy1hbGxvd3BheW1lbnRyZXF1ZXN0LXRpbWluZy5odHRwcy5z
dWIuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jb25zdHJ1Y3Rv
ci1jcmFzaC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtY29uc3RydWN0b3ItdGhjcmFzaC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BpY3R1cmUtaW4tcGlj
dHVyZS9sZWF2ZS1waWN0dXJlLWluLXBpY3R1cmUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9waWN0dXJlLWluLXBp
Y3R1cmUvcGljdHVyZS1pbi1waWN0dXJlLXdpbmRvdy5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BpY3R1cmUtaW4t
cGljdHVyZS9yZXF1ZXN0LXBpY3R1cmUtaW4tcGljdHVyZS10d2ljZS5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bv
aW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3BvaW50ZXJvdXRfcmVjZWl2ZWRfb25jZS5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3JlbGVhc2Vwb2ludGVyY2FwdHVyZV9p
bnZhbGlkX3BvaW50ZXJpZC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50
X3RvdWNoLWFjdGlvbi1rZXlib2FyZC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRl
cmV2ZW50X3RvdWNoLWFjdGlvbi1wYW4teS1jc3NfdG91Y2guaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVy
ZXZlbnRzL3BvaW50ZXJldmVudF90b3VjaC1hY3Rpb24tc3Bhbi1ub25lLXRlc3RfdG91Y2guaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF90b3VjaC1hY3Rpb24tc3ZnLW5v
bmUtdGVzdF90b3VjaC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3Rv
dWNoLWFjdGlvbi10YWJsZS1ub25lLXRlc3RfdG91Y2guaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZl
bnRzL3BvaW50ZXJsb2NrL3BvaW50ZXJldmVudF9tb3ZlbWVudHh5Lmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcXVp
cmtzL2hhc2hsZXNzLWhleC1jb2xvci5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcXVlc3RpZGxlY2FsbGJhY2sv
Y2FsbGJhY2staWZyYW1lLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9jYWxsYmFj
ay1zdXNwZW5kZWQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrL2NhbGxiYWNrLXRp
bWVvdXQtd2hlbi1idXN5Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9jYWxsYmFj
ay10aW1lb3V0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVxdWVzdGlkbGVjYWxsYmFjay9jYWxsYmFjay14aHIt
c3luYy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlLXRpbWluZy9uZXN0ZWQtY29udGV4dC1uYXZpZ2F0
aW9ucy1lbWJlZC5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlLXRpbWluZy9uZXN0ZWQtY29udGV4dC1u
YXZpZ2F0aW9ucy1pZnJhbWUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10aW1pbmcvbmVzdGVkLWNv
bnRleHQtbmF2aWdhdGlvbnMtb2JqZWN0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2UtdGltaW5nL25l
eHRIb3BQcm90b2NvbC10YW8tcHJvdGVjdGVkLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Ut
dGltaW5nL3Jlc291cmNlLXRpbWluZy1sZXZlbDEuc3ViLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2Ut
dGltaW5nL3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF9ldmVudHVhbGx5Lmh0bWwiOiBbCi0g
ICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2UtdGltaW5nL3NpbmdsZS1lbnRyeS1wZXItcmVzb3VyY2UuaHRtbCI6IFsKLSAg
ICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZS10aW1pbmcvd29ya2VyU3RhcnQtdGFvLXByb3RlY3RlZC5odHRwcy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0L3Rlc3RzL3VuaXQvZXhjZXB0aW9uYWwtY2FzZXMtdGltZW91
dHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L2V4Y2VwdGlvbmFsLWNh
c2VzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC9wcm9taXNlX3NldHVw
LXRpbWVvdXQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdC90ZXN0cy91bml0L3NpbmdsZV90
ZXN0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3QvdGVzdHMvdW5pdC90aHJvd2luZy1hc3Nl
cnRpb25zLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2UvY29tbW9u
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2Vydmlj
ZXdvcmtlci9jYWNoZS1hYm9ydC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9j
YWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY2FjaGUtYWRkLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1kZWxldGUu
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNl
d29ya2VyL2NhY2hlLWtleXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2Fj
aGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLW1hdGNoLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1tYXRjaEFs
bC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZp
Y2V3b3JrZXIvY2FjaGUtcHV0Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2Nh
Y2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1zdG9yYWdlLWtleXMuaHR0cHMuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hl
LXN0b3JhZ2UtbWF0Y2guaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUt
c3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLXN0b3JhZ2UuaHR0cHMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtYWJvcnQuaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtYWRk
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93
L2NhY2hlLWRlbGV0ZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1z
dG9yYWdlL3dpbmRvdy9jYWNoZS1rZXlzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLW1hdGNoLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLW1hdGNoQWxsLmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hl
LXB1dC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dp
bmRvdy9jYWNoZS1zdG9yYWdlLWtleXMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtc3RvcmFnZS1tYXRjaC5odHRwcy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1zdG9yYWdl
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93
L3NhbmRib3hlZC1pZnJhbWVzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2Nh
Y2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLWFib3J0Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLWFkZC5odHRwcy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1kZWxldGUuaHR0
cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2Fj
aGUta2V5cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdl
L3dvcmtlci9jYWNoZS1tYXRjaC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9j
YWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1tYXRjaEFsbC5odHRwcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1wdXQuaHR0cHMuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2FjaGUtc3RvcmFn
ZS1rZXlzLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uv
d29ya2VyL2NhY2hlLXN0b3JhZ2UtbWF0Y2guaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2FjaGUtc3RvcmFnZS5odHRwcy5odG1sIjogWwot
ICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hYm91dC1ibGFuay1yZXBsYWNlbWVu
dC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3Rp
dmF0aW9uLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2NsaWVudHMtbWF0Y2hhbGwtb3JkZXIuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuaHR0cHMu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY2FudmFz
LXRhaW50aW5nLXZpZGVvLWNhY2hlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy12aWRlby5odHRwcy5odG1sIjog
WwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWRpcmVj
dC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC1yZXNwb25kLXdpdGgtYm9keS1sb2FkZWQtaW4tY2h1bmsuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLWZyYW1lLXJlc291cmNlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAg
IF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLW1peGVkLWNvbnRlbnQtdG8taW5zY29wZS5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1taXhlZC1jb250
ZW50LXRvLW91dHNjb3BlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVzcG9uc2UtdGFpbnQuaHR0cHMuaHRt
bCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9y
LWFjdGl2YXRlLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ludGVyZmFjZS1yZXF1aXJlbWVudHMtc3cuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy13aW5kb3cuaHR0cHMuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbG9jYWwtdXJsLWluaGVyaXQtY29u
dHJvbGxlci5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9uYXZpZ2F0aW9uLXByZWxvYWQvc2FtZXNpdGUtY29va2llcy5odHRwcy5odG1sIjogWwotICAg
ICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBz
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZmVycmVyLXRv
cGxldmVsLXNjcmlwdC1mZXRjaC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1jbG9zZWQtd2luZG93Lmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1taW1lLXR5cGVzLmh0
dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi11cGRhdGV2aWFjYWNoZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBd
LAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9zYW5kYm94ZWQtaWZyYW1lLWZldGNoLWV2ZW50Lmh0dHBzLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy11c2luZy1y
ZWdpc3RyYXRpb24uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZp
Z2F0aW9uLWZldGNoLWV2ZW50Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0dHBzLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ieXRlY2hlY2su
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRl
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dpbmRv
d2NsaWVudC1uYXZpZ2F0ZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvc3ZnbGVuZ3RobGlzdC1hbmltYXRpb24tMy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VpZXZlbnRz
L21vdXNlL21vdXNlZXZlbnRfbW92ZV9idXR0b24uaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy91cmwvZmFpbHVyZS5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWluZy1tb2RlbC9hbmltYXRpb25zL3VwZGF0
aW5nLXRoZS1maW5pc2hlZC1zdGF0ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3RpbWlu
Zy1tb2RlbC90aW1lbGluZXMvdXBkYXRlLWFuZC1zZW5kLWV2ZW50cy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWFuYWx5c2Vybm9kZS1pbnRlcmZhY2UvdGVzdC1hbmFs
eXNlci1taW5pbXVtLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYW5h
bHlzZXJub2RlLWludGVyZmFjZS90ZXN0LWFuYWx5c2VyLW91dHB1dC5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9uZWNoYW5nZS1sb25nLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLWxvbmcuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDRFRNRlNlbmRlci1vbnRvbmVjaGFuZ2UuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0g
ICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0
YUNoYW5uZWwtY2xvc2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtc2VuZC5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25uZWN0aW9uU3RhdGUtY2FuZGlkYXRlLXBhaXIu
aHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1p
bmcuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0
YUNoYW5uZWwuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVj
dGlvblN0YXRlLWRpc2Nvbm5lY3RlZC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJl
LWxpbmVhci5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJm
ZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy5odG1sIjogWwotICAgICAgICAic2xv
dyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFjay1tdXRlLmh0dHBzLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLXRyYWNr
cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFjay1zdGF0
cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFuc2NlaXZl
cnMuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRl
Y3RvclRlc3QuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0U3luY2hyb25p
emF0aW9uU291cmNlcy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5j
b2RlLXNhbWUtdHJhY2stdHdpY2UuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2Vu
ZGVyLXJlcGxhY2VUcmFjay5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXIt
dHJhbnNwb3J0Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0
dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeS9SVENQZWVyQ29ubmVjdGlvbi1hZGRTdHJl
YW0uaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdl
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2ljZS1zdGF0ZS5odHRwcy5odG1s
IjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2UtdWZyYWdwd2QuaHRtbCI6IFsKLSAgICAgICAg
InNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0s
Ci0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9n
ZXRTdGF0cy5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2V0UGFyYW1ldGVycy1hY3RpdmUuaHR0cHMu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnNvY2tldHMvYmluYXJ5LzAwMi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAg
ICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvYmluYXJ5LzAwNC5o
dG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29uc3RydWN0b3IvMDEzLmh0bWwiOiBbCi0gICAgICAg
ICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
c29ja2V0cy9jb25zdHJ1Y3Rvci8wMTQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2Nvb2tpZXMv
MDA1Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9jb29raWVzLzAwNy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnNvY2tldHMvZXh0ZW5kZWQtcGF5bG9hZC1sZW5ndGguaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRz
L2ludGVyZmFjZXMvV2ViU29ja2V0L2J1ZmZlcmVkQW1vdW50L2J1ZmZlcmVkQW1vdW50LWxhcmdl
Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tldC9jbG9zZS9jbG9z
ZS1jb25uZWN0aW5nLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tl
dC9ldmVudHMvMDE2Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9pbnRlcmZhY2VzL1dlYlNvY2tl
dC9zZW5kLzAwNS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvaW50ZXJmYWNlcy9XZWJTb2NrZXQv
c2VuZC8wMTAuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2tlZXBpbmctY29ubmVjdGlvbi1vcGVu
LzAwMS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvb3BlbmluZy1oYW5kc2hha2UvMDAyLmh0bWwi
OiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2Vic29ja2V0cy9vcGVuaW5nLWhhbmRzaGFrZS8wMDMuaHRtbCI6IFsKLSAgICAg
ICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJzb2NrZXRzL3VubG9hZC1hLWRvY3VtZW50LzAwMi5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMv
dW5sb2FkLWEtZG9jdW1lbnQvMDA0Lmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy91bmxvYWQtYS1k
b2N1bWVudC8wMDUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzdG9yYWdlL2V2ZW50X2Jhc2ljLmh0bWwiOiBb
Ci0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2Vic3RvcmFnZS9ldmVudF9ib2R5X2F0dHJpYnV0ZS5odG1sIjogWwotICAgICAgICAi
c2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnN0
b3JhZ2UvZXZlbnRfY2FzZV9zZW5zaXRpdmUuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAg
XSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzdG9yYWdlL2V2ZW50
X3NldGF0dHJpYnV0ZS5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvV29ya2VyX2Nyb3NzX29yaWdpbl9z
ZWN1cml0eV9lcnIuaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1NoYXJlZFdvcmtl
ci9zYW1lLW9yaWdpbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9z
YW1lLW9yaWdpbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJVdGlscy9p
bXBvcnRTY3JpcHRzLzAwNi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1yZWZlcnJlci5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLW9wdGlvbnMtY3JlZGVudGlhbHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21v
ZHVsZXMvc2hhcmVkLXdvcmtlci1pbXBvcnQtY3NwLmh0bWwiOiBbCi0gICAgICAgICJzbG93Igot
ICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1
bGVzL3NoYXJlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLmh0bWwiOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL3NoYXJlZC13b3JrZXItb3B0aW9ucy1jcmVkZW50aWFscy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvc2VtYW50aWNzL211bHRpcGxlLXdvcmtlcnMvMDAzLmh0bWwiOiBbCi0gICAgICAgICJz
bG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9zZW1hbnRpY3MvbXVsdGlwbGUtd29ya2Vycy8wMDQuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Nl
bWFudGljcy9tdWx0aXBsZS13b3JrZXJzLzAwNy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAg
ICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2FuaW1h
dGlvbi13b3JrbGV0LWNzcC5odHRwcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2FuaW1hdGlvbi13
b3JrbGV0LXJlZmVycmVyLmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0g
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xl
dC1jc3AuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVy
Lmh0dHBzLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0LXdvcmtsZXQtY3NwLmh0dHBzLmh0
bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0LXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMuaHRtbCI6
IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrbGV0cy9wYWludC13b3JrbGV0LWNzcC5odHRwcy5odG1sIjogWwotICAgICAg
ICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtsZXRzL3BhaW50LXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMuaHRtbCI6IFsKLSAgICAgICAgInNs
b3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Zl
cnJpZGVtaW1ldHlwZS1ibG9iLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3Byb2dyZXNzLWV2ZW50cy1yZXNw
b25zZS1kYXRhLWd6aXAuaHRtIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9yZXNwb25zZS1kYXRhLXByb2dyZXNzLmh0
bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy94aHIvc2VuZC1yZWRpcmVjdC1ib2d1cy5odG0iOiBbCi0gICAgICAgICJzbG93
IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3NldHJl
cXVlc3RoZWFkZXItY29udGVudC10eXBlLmh0bSI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwK
LSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3Qt
dGltZW91dC1hYm9ydGVkLmh0bWwiOiBbCi0gICAgICAgICJzbG93IgotICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
YWJvcnRlZG9ubWFpbi5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92
ZXJyaWRlcy5odG1sIjogWwotICAgICAgICAic2xvdyIKLSAgICBdLAotICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRl
c2V4cGlyZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91dC1yZXVzZWQu
aHRtbCI6IFsKLSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91dC1zaW1wbGUuaHRtbCI6IFsK
LSAgICAgICAgInNsb3ciCi0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0bWwiOiBbCi0gICAg
ICAgICJzbG93IgotICAgIF0sCi0gICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
eGhyL3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtdHdpY2UuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC5odG1sIjogWwotICAgICAgICAic2xvdyIK
LSAgICBdLAotICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXMuaHRtbCI6IFsKLSAgICAgICAgInNsb3ci
Ci0gICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0
cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzZXhwaXJlcy5odG1sIjogWworICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
a2VlcGFsaXZlLXF1b3RhLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCi0gICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
d29ya2VyLXNpbXBsZS5odG1sIjogWworICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9uZXR3b3JrLXBhcnRpdGlvbi1rZXkuaHRtbCI6IFsK
ICAgICAgICAgInNsb3ciCiAgICAgXSwKLSAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwi
OiBbCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbWV0YWRhdGEv
cHJlbG9hZC5odHRwcy5zdWIuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKLSAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIveG1saHR0cHJlcXVlc3QtdGltZW91
dC13b3JrZXItdHdpY2UuaHRtbCI6IFsKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9yZWRpcmVjdC1uYXZpZ2F0ZS9wcmVzZXJ2ZS1mcmFnbWVudC5odG1sIjogWwog
ICAgICAgICAic2xvdyIKICAgICBdCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="452437"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>